From 9b21c54fc5ef8f111f2521672ba142146ffffb9a Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Sat, 28 May 2016 16:21:53 +1000 Subject: [PATCH 001/349] MQTTClient select timeout cleanup (closes #123) Also sets example task priorities to maximum 2, as higher priorities seem to mess with the network stack. --- examples/mqtt_client/mqtt_client.c | 4 ++-- extras/paho_mqtt_c/MQTTESP8266.c | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index fdf86c3..c725565 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -216,6 +216,6 @@ void user_init(void) vSemaphoreCreateBinary(wifi_alive); publish_queue = xQueueCreate(3, PUB_MSG_LEN); xTaskCreate(&wifi_task, (int8_t *)"wifi_task", 256, NULL, 2, NULL); - xTaskCreate(&beat_task, (int8_t *)"beat_task", 256, NULL, 3, NULL); - xTaskCreate(&mqtt_task, (int8_t *)"mqtt_task", 1024, NULL, 4, NULL); + xTaskCreate(&beat_task, (int8_t *)"beat_task", 256, NULL, 2, NULL); + xTaskCreate(&mqtt_task, (int8_t *)"mqtt_task", 1024, NULL, 2, NULL); } diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index 09e645b..dc2eb18 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -72,9 +72,8 @@ int mqtt_esp_read(Network* n, unsigned char* buffer, int len, int timeout_ms) int rcvd = 0; FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); - // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_RATE_MS; - tv.tv_usec = 0; + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; rc = select(n->my_socket + 1, &fdset, 0, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) { @@ -97,9 +96,8 @@ int mqtt_esp_write(Network* n, unsigned char* buffer, int len, int timeout_ms) FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); - // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_RATE_MS; - tv.tv_usec = 0; + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; rc = select(n->my_socket + 1, 0, &fdset, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) { From c63b1cfa669a80b1d35a7238396e7ca8bec5a84b Mon Sep 17 00:00:00 2001 From: Sven Date: Tue, 31 May 2016 21:10:14 +0200 Subject: [PATCH 002/349] Set correct base address for register HOST_INF_SEL --- include/espressif/esp8266/eagle_soc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/espressif/esp8266/eagle_soc.h b/include/espressif/esp8266/eagle_soc.h index cf60190..8e3855b 100644 --- a/include/espressif/esp8266/eagle_soc.h +++ b/include/espressif/esp8266/eagle_soc.h @@ -66,7 +66,7 @@ //}} //DPORT{{ -#define HOST_INF_SEL (0x28) +#define HOST_INF_SEL (PERIPHS_DPORT_BASEADDR + 0x28) #define DPORT_LINK_DEVICE_SEL 0x000000FF #define DPORT_LINK_DEVICE_SEL_S 8 #define DPORT_PERI_IO_SWAP 0x000000FF From 3c875cc4189bb2ccf927aa6950597543469a992d Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Tue, 21 Jun 2016 20:43:02 +0200 Subject: [PATCH 003/349] Call DisconnectNetwork(...) before MQTT reconnect --- examples/mqtt_client/mqtt_client.c | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index fdf86c3..3ec50c5 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -157,6 +157,7 @@ static void mqtt_task(void *pvParameters) break; } printf("Connection dropped, request restart\n\r"); + DisconnectNetwork(&network); taskYIELD(); } } From 42880fded560fda04bb9ffadf48f47307efaf345 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Sat, 28 May 2016 16:23:13 +1000 Subject: [PATCH 004/349] Paho MQTT Embedded C client: Use submodule pointing to upstream repo Due to code organisation of upstream repo, MQTTClient still needs copying into our repo. --- .gitmodules | 4 +- examples/blink/Makefile | 4 + examples/blink/blink.c | 34 +- examples/http_get_mbedtls/http_get_mbedtls.c | 18 + examples/mqtt_client/mqtt_client.c | 39 +- extras/paho_mqtt_c/MQTTClient.c | 243 +++++------ extras/paho_mqtt_c/MQTTClient.h | 58 +-- extras/paho_mqtt_c/MQTTConnect.h | 136 ------ extras/paho_mqtt_c/MQTTConnectClient.c | 214 --------- extras/paho_mqtt_c/MQTTDeserializePublish.c | 107 ----- extras/paho_mqtt_c/MQTTFormat.h | 37 -- extras/paho_mqtt_c/MQTTPacket.c | 409 ------------------ extras/paho_mqtt_c/MQTTPacket.h | 133 ------ extras/paho_mqtt_c/MQTTPublish.h | 38 -- extras/paho_mqtt_c/MQTTSerializePublish.c | 169 -------- extras/paho_mqtt_c/MQTTSubscribe.h | 39 -- extras/paho_mqtt_c/MQTTSubscribeClient.c | 137 ------ extras/paho_mqtt_c/MQTTUnsubscribe.h | 38 -- extras/paho_mqtt_c/MQTTUnsubscribeClient.c | 106 ----- extras/paho_mqtt_c/README.md | 16 + extras/paho_mqtt_c/StackTrace.h | 77 ---- extras/paho_mqtt_c/component.mk | 11 +- .../org.eclipse.paho.mqtt.embedded-c | 1 + 23 files changed, 240 insertions(+), 1828 deletions(-) delete mode 100644 extras/paho_mqtt_c/MQTTConnect.h delete mode 100644 extras/paho_mqtt_c/MQTTConnectClient.c delete mode 100644 extras/paho_mqtt_c/MQTTDeserializePublish.c delete mode 100644 extras/paho_mqtt_c/MQTTFormat.h delete mode 100644 extras/paho_mqtt_c/MQTTPacket.c delete mode 100644 extras/paho_mqtt_c/MQTTPacket.h delete mode 100644 extras/paho_mqtt_c/MQTTPublish.h delete mode 100644 extras/paho_mqtt_c/MQTTSerializePublish.c delete mode 100644 extras/paho_mqtt_c/MQTTSubscribe.h delete mode 100644 extras/paho_mqtt_c/MQTTSubscribeClient.c delete mode 100644 extras/paho_mqtt_c/MQTTUnsubscribe.h delete mode 100644 extras/paho_mqtt_c/MQTTUnsubscribeClient.c create mode 100644 extras/paho_mqtt_c/README.md delete mode 100644 extras/paho_mqtt_c/StackTrace.h create mode 160000 extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c diff --git a/.gitmodules b/.gitmodules index 7a3370e..fe22af1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,4 +10,6 @@ [submodule "bootloader/rboot"] path = bootloader/rboot url = https://github.com/raburton/rboot.git - +[submodule "extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c"] + path = extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c + url = https://git.eclipse.org/r/paho/org.eclipse.paho.mqtt.embedded-c diff --git a/examples/blink/Makefile b/examples/blink/Makefile index 4eeb17e..ceda2a3 100644 --- a/examples/blink/Makefile +++ b/examples/blink/Makefile @@ -1,2 +1,6 @@ PROGRAM=blink + +EXTRA_COMPONENTS = extras/mbedtls + include ../../common.mk + diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 9d2ae3c..99a9c42 100644 --- a/examples/blink/blink.c +++ b/examples/blink/blink.c @@ -8,6 +8,10 @@ #include "task.h" #include "esp8266.h" +#include "mbedtls/aes.h" +#include "xtensa_ops.h" +#include + const int gpio = 2; /* This task uses the high level GPIO API (esp_gpio.h) to blink an LED. @@ -53,6 +57,32 @@ void blinkenRegisterTask(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(blinkenTask, (signed char *)"blinkenTask", 256, NULL, 2, NULL); - //xTaskCreate(blinkenRegisterTask, (signed char *)"blinkenRegisterTask", 256, NULL, 2, NULL); + static uint8_t data[1024]; + static uint8_t output[1024]; + static uint8_t iv[16]; + + static uint8_t key[256 / 8]; + + memset(data, 0, sizeof(data)); + memset(iv, 0, sizeof(iv)); + + mbedtls_aes_context ctx; + uint32_t before, after; + RSR(before, CCOUNT) + mbedtls_aes_init(&ctx); + mbedtls_aes_setkey_enc(&ctx, key, 256); + + for(int r = 0; r < 10; r++) { + mbedtls_aes_crypt_cbc(&ctx, + MBEDTLS_AES_ENCRYPT, + sizeof(data), + iv, + data, + output); + memcpy(data, output, 1024); + } + RSR(after, CCOUNT); + printf("cycle count %d\n", after - before); + vPortExitCritical(); + while(1) {} } diff --git a/examples/http_get_mbedtls/http_get_mbedtls.c b/examples/http_get_mbedtls/http_get_mbedtls.c index 7aad0e3..2cc5c6f 100644 --- a/examples/http_get_mbedtls/http_get_mbedtls.c +++ b/examples/http_get_mbedtls/http_get_mbedtls.c @@ -14,6 +14,8 @@ #include +#include + #include "FreeRTOS.h" #include "task.h" @@ -92,6 +94,10 @@ void http_get_task(void *pvParameters) unsigned char buf[1024]; const char *pers = "ssl_client1"; + uint64_t total_delta = 0; + uint32_t delta_count = 0; + uint32_t min_delta = UINT32_MAX; + mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; mbedtls_ssl_context ssl; @@ -210,6 +216,9 @@ void http_get_task(void *pvParameters) */ printf(" . Performing the SSL/TLS handshake..."); + uint32_t before, after; + before = xTaskGetTickCount(); + while((ret = mbedtls_ssl_handshake(&ssl)) != 0) { if(ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) @@ -219,6 +228,15 @@ void http_get_task(void *pvParameters) } } + after = xTaskGetTickCount(); + uint32_t delta = after - before; + total_delta += delta; + delta_count += 1; + if(delta < min_delta) { + min_delta = delta; + } + printf("\n\n**** %d tick handshake - average %d min %d ***\n\n", delta, (uint32_t)(total_delta/delta_count), min_delta); + printf(" ok\n"); /* diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index c725565..422169a 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -1,3 +1,18 @@ +/* + MQTT Example Client + + Connects to mosquitto test server, publishes to /beat and + subscribes to /esptopic + + If using mosquitto, then commands to interact with this example are: + + mosquitto_pub -h test.mosquitto.org -t /esptopic -m "Hello!" + + mosquitto_sub -h test.mosquitto.org -t /beat + + Sample code originally by @baoshi, adapted by Yudi Ludkevich & Angus + Gratton. BSD Licensed. + */ #include "espressif/esp_common.h" #include "esp/uart.h" @@ -10,15 +25,13 @@ #include #include -#include -#include +#include #include - /* You can use http://test.mosquitto.org/ to test mqtt_client instead * of setting up your own MQTT server */ -#define MQTT_HOST ("test.mosquitto.org") +#define MQTT_HOST "test.mosquitto.org" #define MQTT_PORT 1883 #define MQTT_USER NULL @@ -36,21 +49,21 @@ static void beat_task(void *pvParameters) while (1) { vTaskDelayUntil(&xLastWakeTime, 10000 / portTICK_RATE_MS); - printf("beat\r\n"); snprintf(msg, PUB_MSG_LEN, "Beat %d\r\n", count++); + printf(msg); if (xQueueSend(publish_queue, (void *)msg, 0) == pdFALSE) { printf("Publish queue overflow.\r\n"); } } } -static void topic_received(MessageData *md) +static void topic_received(struct MessageData *md) { int i; MQTTMessage *message = md->message; printf("Received: "); - for( i = 0; i < md->topic->lenstring.len; ++i) - printf("%c", md->topic->lenstring.data[ i ]); + for( i = 0; i < md->topicName->lenstring.len; ++i) + printf("%c", md->topicName->lenstring.data[ i ]); printf(" = "); for( i = 0; i < (int)message->payloadlen; ++i) @@ -86,9 +99,9 @@ static const char * get_my_id(void) static void mqtt_task(void *pvParameters) { - int ret = 0; - struct Network network; - MQTTClient client = DefaultClient; + int ret = 0; + Client client; + Network network; char mqtt_client_id[20]; uint8_t mqtt_buf[100]; uint8_t mqtt_readbuf[100]; @@ -111,7 +124,7 @@ static void mqtt_task(void *pvParameters) continue; } printf("done\n\r"); - NewMQTTClient(&client, &network, 5000, mqtt_buf, 100, + MQTTClient(&client, &network, 5000, mqtt_buf, 100, mqtt_readbuf, 100); data.willFlag = 0; @@ -153,7 +166,7 @@ static void mqtt_task(void *pvParameters) } ret = MQTTYield(&client, 1000); - if (ret == DISCONNECTED) + if (ret == FAILURE) break; } printf("Connection dropped, request restart\n\r"); diff --git a/extras/paho_mqtt_c/MQTTClient.c b/extras/paho_mqtt_c/MQTTClient.c index b964250..a807662 100644 --- a/extras/paho_mqtt_c/MQTTClient.c +++ b/extras/paho_mqtt_c/MQTTClient.c @@ -13,26 +13,25 @@ * Contributors: * Allan Stockdill-Mander/Ian Craggs - initial API and implementation and/or initial documentation *******************************************************************************/ -#include -#include + #include "MQTTClient.h" -void NewMessageData(MessageData* md, MQTTString* aTopicName, MQTTMessage* aMessgage) { - md->topic = aTopicName; +void NewMessageData(MessageData* md, MQTTString* aTopicName, MQTTMessage* aMessgage) { + md->topicName = aTopicName; md->message = aMessgage; } -int getNextPacketId(MQTTClient *c) { +int getNextPacketId(Client *c) { return c->next_packetid = (c->next_packetid == MAX_PACKET_ID) ? 1 : c->next_packetid + 1; } -int sendPacket(MQTTClient* c, int length, Timer* timer) +int sendPacket(Client* c, int length, Timer* timer) { - int rc = FAILURE, + int rc = FAILURE, sent = 0; - + while (sent < length && !expired(timer)) { rc = c->ipstack->mqttwrite(c->ipstack, &c->buf[sent], length, left_ms(timer)); @@ -42,7 +41,7 @@ int sendPacket(MQTTClient* c, int length, Timer* timer) } if (sent == length) { - countdown(&(c->ping_timer), c->keepAliveInterval); // record the fact that we have successfully sent the packet + countdown(&c->ping_timer, c->keepAliveInterval); // record the fact that we have successfully sent the packet rc = SUCCESS; } else @@ -51,7 +50,26 @@ int sendPacket(MQTTClient* c, int length, Timer* timer) } -int decodePacket(MQTTClient* c, int* value, int timeout) +void MQTTClient(Client* c, Network* network, unsigned int command_timeout_ms, unsigned char* buf, size_t buf_size, unsigned char* readbuf, size_t readbuf_size) +{ + int i; + c->ipstack = network; + + for (i = 0; i < MAX_MESSAGE_HANDLERS; ++i) + c->messageHandlers[i].topicFilter = 0; + c->command_timeout_ms = command_timeout_ms; + c->buf = buf; + c->buf_size = buf_size; + c->readbuf = readbuf; + c->readbuf_size = readbuf_size; + c->isconnected = 0; + c->ping_outstanding = 0; + c->defaultMessageHandler = NULL; + InitTimer(&c->ping_timer); +} + + +int decodePacket(Client* c, int* value, int timeout) { unsigned char i; int multiplier = 1; @@ -79,7 +97,7 @@ exit: } -int readPacket(MQTTClient* c, Timer* timer) +int readPacket(Client* c, Timer* timer) { int rc = FAILURE; MQTTHeader header = {0}; @@ -102,7 +120,6 @@ int readPacket(MQTTClient* c, Timer* timer) header.byte = c->readbuf[0]; rc = header.bits.type; exit: - //dmsg_printf("readPacket=%d\r\n", rc); return rc; } @@ -110,12 +127,12 @@ exit: // assume topic filter and name is in correct format // # can only be at end // + and # can only be next to separator -char isTopicMatched(char* topicFilter, MQTTString* topicName) +char isTopicMatched(char* topicFilter, MQTTString* topicName) { char* curf = topicFilter; char* curn = topicName->lenstring.data; char* curn_end = curn + topicName->lenstring.len; - + while (*curf && curn < curn_end) { if (*curn == '/' && *curf != '/') @@ -133,12 +150,12 @@ char isTopicMatched(char* topicFilter, MQTTString* topicName) curf++; curn++; }; - + return (curn == curn_end) && (*curf == '\0'); } -int deliverMessage(MQTTClient* c, MQTTString* topicName, MQTTMessage* message) +int deliverMessage(Client* c, MQTTString* topicName, MQTTMessage* message) { int i; int rc = FAILURE; @@ -158,22 +175,22 @@ int deliverMessage(MQTTClient* c, MQTTString* topicName, MQTTMessage* message) } } } - - if (rc == FAILURE && c->defaultMessageHandler != NULL) + + if (rc == FAILURE && c->defaultMessageHandler != NULL) { MessageData md; NewMessageData(&md, topicName, message); c->defaultMessageHandler(&md); rc = SUCCESS; - } - + } + return rc; } -int keepalive(MQTTClient* c) +int keepalive(Client* c) { - int rc = SUCCESS; + int rc = FAILURE; if (c->keepAliveInterval == 0) { @@ -181,30 +198,17 @@ int keepalive(MQTTClient* c) goto exit; } - if (expired(&(c->ping_timer))) + if (expired(&c->ping_timer)) { - if (c->ping_outstanding) - { - // if ping failure accumulated above MAX_FAIL_ALLOWED, the connection is broken - ++(c->fail_count); - if (c->fail_count >= MAX_FAIL_ALLOWED) - { - rc = DISCONNECTED; - goto exit; - } - } - else + if (!c->ping_outstanding) { Timer timer; InitTimer(&timer); countdown_ms(&timer, 1000); - c->ping_outstanding = 1; int len = MQTTSerialize_pingreq(c->buf, c->buf_size); - if (len > 0) - sendPacket(c, len, &timer); + if (len > 0 && (rc = sendPacket(c, len, &timer)) == SUCCESS) // send the ping packet + c->ping_outstanding = 1; } - // re-arm ping counter - countdown(&(c->ping_timer), c->keepAliveInterval); } exit: @@ -212,11 +216,11 @@ exit: } -int cycle(MQTTClient* c, Timer* timer) +int cycle(Client* c, Timer* timer) { // read the socket, see what work is due unsigned short packet_type = readPacket(c, timer); - + int len = 0, rc = SUCCESS; @@ -242,8 +246,8 @@ int cycle(MQTTClient* c, Timer* timer) len = MQTTSerialize_ack(c->buf, c->buf_size, PUBREC, 0, msg.id); if (len <= 0) rc = FAILURE; - else - rc = sendPacket(c, len, timer); + else + rc = sendPacket(c, len, timer); if (rc == FAILURE) goto exit; // there was a problem } @@ -266,14 +270,10 @@ int cycle(MQTTClient* c, Timer* timer) case PUBCOMP: break; case PINGRESP: - { - c->ping_outstanding = 0; - c->fail_count = 0; - } + c->ping_outstanding = 0; break; } - if (c->isconnected) - rc = keepalive(c); + keepalive(c); exit: if (rc == SUCCESS) rc = packet_type; @@ -281,69 +281,49 @@ exit: } -void NewMQTTClient(MQTTClient* c, Network* network, unsigned int command_timeout_ms, unsigned char* buf, size_t buf_size, unsigned char* readbuf, size_t readbuf_size) -{ - int i; - c->ipstack = network; - - for (i = 0; i < MAX_MESSAGE_HANDLERS; ++i) - c->messageHandlers[i].topicFilter = 0; - c->command_timeout_ms = command_timeout_ms; - c->buf = buf; - c->buf_size = buf_size; - c->readbuf = readbuf; - c->readbuf_size = readbuf_size; - c->isconnected = 0; - c->ping_outstanding = 0; - c->fail_count = 0; - c->defaultMessageHandler = NULL; - InitTimer(&(c->ping_timer)); -} - - -int MQTTYield(MQTTClient* c, int timeout_ms) +int MQTTYield(Client* c, int timeout_ms) { int rc = SUCCESS; Timer timer; - InitTimer(&timer); + InitTimer(&timer); countdown_ms(&timer, timeout_ms); while (!expired(&timer)) { - rc = cycle(c, &timer); - // cycle could return 0 or packet_type or 65535 if nothing is read - // cycle returns DISCONNECTED only if keepalive() fails. - if (rc == DISCONNECTED) + if (cycle(c, &timer) == FAILURE) + { + rc = FAILURE; break; - rc = SUCCESS; + } } + return rc; } // only used in single-threaded mode where one command at a time is in process -int waitfor(MQTTClient* c, int packet_type, Timer* timer) +int waitfor(Client* c, int packet_type, Timer* timer) { int rc = FAILURE; - + do { - if (expired(timer)) + if (expired(timer)) break; // we timed out } - while ((rc = cycle(c, timer)) != packet_type); - + while ((rc = cycle(c, timer)) != packet_type); + return rc; } -int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options) +int MQTTConnect(Client* c, MQTTPacket_connectData* options) { Timer connect_timer; int rc = FAILURE; MQTTPacket_connectData default_options = MQTTPacket_connectData_initializer; int len = 0; - + InitTimer(&connect_timer); countdown_ms(&connect_timer, c->command_timeout_ms); @@ -352,15 +332,14 @@ int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options) if (options == 0) options = &default_options; // set default options if none were supplied - + c->keepAliveInterval = options->keepAliveInterval; - countdown(&(c->ping_timer), c->keepAliveInterval); - + countdown(&c->ping_timer, c->keepAliveInterval); if ((len = MQTTSerialize_connect(c->buf, c->buf_size, options)) <= 0) goto exit; if ((rc = sendPacket(c, len, &connect_timer)) != SUCCESS) // send the connect packet goto exit; // there was a problem - + // this will be a blocking call, wait for the connack if (waitfor(c, CONNACK, &connect_timer) == CONNACK) { @@ -373,7 +352,7 @@ int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options) } else rc = FAILURE; - + exit: if (rc == SUCCESS) c->isconnected = 1; @@ -381,33 +360,32 @@ exit: } -int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandler handler) -{ - int rc = FAILURE; +int MQTTSubscribe(Client* c, const char* topicFilter, enum QoS qos, messageHandler messageHandler) +{ + int rc = FAILURE; Timer timer; int len = 0; - MQTTString topicStr = MQTTString_initializer; - topicStr.cstring = (char *)topic; - + MQTTString topic = MQTTString_initializer; + topic.cstring = (char *)topicFilter; + InitTimer(&timer); countdown_ms(&timer, c->command_timeout_ms); + if (!c->isconnected) goto exit; - - len = MQTTSerialize_subscribe(c->buf, c->buf_size, 0, getNextPacketId(c), 1, &topicStr, (int*)&qos); + + len = MQTTSerialize_subscribe(c->buf, c->buf_size, 0, getNextPacketId(c), 1, &topic, (int*)&qos); if (len <= 0) goto exit; if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet - { goto exit; // there was a problem - } - - if (waitfor(c, SUBACK, &timer) == SUBACK) // wait for suback + + if (waitfor(c, SUBACK, &timer) == SUBACK) // wait for suback { int count = 0, grantedQoS = -1; unsigned short mypacketid; if (MQTTDeserialize_suback(&mypacketid, 1, &count, &grantedQoS, c->readbuf, c->readbuf_size) == 1) - rc = grantedQoS; // 0, 1, 2 or 0x80 + rc = grantedQoS; // 0, 1, 2 or 0x80 if (rc != 0x80) { int i; @@ -415,126 +393,111 @@ int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandle { if (c->messageHandlers[i].topicFilter == 0) { - c->messageHandlers[i].topicFilter = topic; - c->messageHandlers[i].fp = handler; + c->messageHandlers[i].topicFilter = topicFilter; + c->messageHandlers[i].fp = messageHandler; rc = 0; break; } } } } - else + else rc = FAILURE; - + exit: return rc; } -int MQTTUnsubscribe(MQTTClient* c, const char* topicFilter) -{ +int MQTTUnsubscribe(Client* c, const char* topicFilter) +{ int rc = FAILURE; - Timer timer; + Timer timer; MQTTString topic = MQTTString_initializer; topic.cstring = (char *)topicFilter; int len = 0; InitTimer(&timer); countdown_ms(&timer, c->command_timeout_ms); - + if (!c->isconnected) goto exit; - + if ((len = MQTTSerialize_unsubscribe(c->buf, c->buf_size, 0, getNextPacketId(c), 1, &topic)) <= 0) goto exit; if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet goto exit; // there was a problem - + if (waitfor(c, UNSUBACK, &timer) == UNSUBACK) { unsigned short mypacketid; // should be the same as the packetid above if (MQTTDeserialize_unsuback(&mypacketid, c->readbuf, c->readbuf_size) == 1) - rc = 0; + rc = 0; } else rc = FAILURE; - + exit: return rc; } -int MQTTPublish(MQTTClient* c, const char* topic, MQTTMessage* message) +int MQTTPublish(Client* c, const char* topicName, MQTTMessage* message) { int rc = FAILURE; - Timer timer; - MQTTString topicStr = MQTTString_initializer; - topicStr.cstring = (char *)topic; + Timer timer; + MQTTString topic = MQTTString_initializer; + topic.cstring = (char *)topicName; int len = 0; InitTimer(&timer); countdown_ms(&timer, c->command_timeout_ms); - + if (!c->isconnected) goto exit; if (message->qos == QOS1 || message->qos == QOS2) message->id = getNextPacketId(c); - + len = MQTTSerialize_publish(c->buf, c->buf_size, 0, message->qos, message->retained, message->id, - topicStr, (unsigned char*)message->payload, message->payloadlen); + topic, (unsigned char*)message->payload, message->payloadlen); if (len <= 0) goto exit; if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet - { goto exit; // there was a problem - } - + if (message->qos == QOS1) { if (waitfor(c, PUBACK, &timer) == PUBACK) { - // We still can receive from broker, treat as recoverable - c->fail_count = 0; unsigned short mypacketid; unsigned char dup, type; if (MQTTDeserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) rc = FAILURE; - else - rc = SUCCESS; } else - { rc = FAILURE; - } - } else if (message->qos == QOS2) { if (waitfor(c, PUBCOMP, &timer) == PUBCOMP) { - // We still can receive from broker, treat as recoverable - c->fail_count = 0; unsigned short mypacketid; unsigned char dup, type; if (MQTTDeserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) rc = FAILURE; - else - rc = SUCCESS; } else - { rc = FAILURE; - } } - + exit: return rc; } -int MQTTDisconnect(MQTTClient* c) -{ +int MQTTDisconnect(Client* c) +{ int rc = FAILURE; Timer timer; // we might wait for incomplete incoming publishes to complete int len = MQTTSerialize_disconnect(c->buf, c->buf_size); @@ -544,7 +507,7 @@ int MQTTDisconnect(MQTTClient* c) if (len > 0) rc = sendPacket(c, len, &timer); // send the disconnect packet - + c->isconnected = 0; return rc; } diff --git a/extras/paho_mqtt_c/MQTTClient.h b/extras/paho_mqtt_c/MQTTClient.h index f7ea424..92a0adb 100644 --- a/extras/paho_mqtt_c/MQTTClient.h +++ b/extras/paho_mqtt_c/MQTTClient.h @@ -18,20 +18,24 @@ #define __MQTT_CLIENT_C_ #include "MQTTPacket.h" -#include "MQTTESP8266.h" +#include "stdio.h" +#include "MQTTESP8266.h" //Platform specific implementation header file #define MAX_PACKET_ID 65535 #define MAX_MESSAGE_HANDLERS 5 -#define MAX_FAIL_ALLOWED 2 enum QoS { QOS0, QOS1, QOS2 }; // all failure return codes must be negative -enum returnCode {DISCONNECTED = -3, BUFFER_OVERFLOW = -2, FAILURE = -1, SUCCESS = 0 }; +enum returnCode { BUFFER_OVERFLOW = -2, FAILURE = -1, SUCCESS = 0 }; void NewTimer(Timer*); -typedef struct _MQTTMessage +typedef struct MQTTMessage MQTTMessage; + +typedef struct MessageData MessageData; + +struct MQTTMessage { enum QoS qos; char retained; @@ -39,26 +43,37 @@ typedef struct _MQTTMessage unsigned short id; void *payload; size_t payloadlen; -} MQTTMessage; +}; -typedef struct _MessageData +struct MessageData { - MQTTString* topic; MQTTMessage* message; -} MessageData; + MQTTString* topicName; +}; typedef void (*messageHandler)(MessageData*); -struct _MQTTClient -{ +typedef struct Client Client; + +int MQTTConnect (Client*, MQTTPacket_connectData*); +int MQTTPublish (Client*, const char*, MQTTMessage*); +int MQTTSubscribe (Client*, const char*, enum QoS, messageHandler); +int MQTTUnsubscribe (Client*, const char*); +int MQTTDisconnect (Client*); +int MQTTYield (Client*, int); + +void setDefaultMessageHandler(Client*, messageHandler); + +void MQTTClient(Client*, Network*, unsigned int, unsigned char*, size_t, unsigned char*, size_t); + +struct Client { unsigned int next_packetid; unsigned int command_timeout_ms; size_t buf_size, readbuf_size; - unsigned char *buf; - unsigned char *readbuf; + unsigned char *buf; + unsigned char *readbuf; unsigned int keepAliveInterval; char ping_outstanding; - int fail_count; int isconnected; struct MessageHandlers @@ -66,26 +81,13 @@ struct _MQTTClient const char* topicFilter; void (*fp) (MessageData*); } messageHandlers[MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic - + void (*defaultMessageHandler) (MessageData*); - + Network* ipstack; Timer ping_timer; }; - -typedef struct _MQTTClient MQTTClient; - - -int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options); -int MQTTPublish(MQTTClient* c, const char* topic, MQTTMessage* message); -int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandler handler); -int MQTTUnsubscribe(MQTTClient* c, const char* topic); -int MQTTDisconnect(MQTTClient* c); -int MQTTYield(MQTTClient* c, int timeout_ms); - -void NewMQTTClient(MQTTClient*, Network*, unsigned int, unsigned char*, size_t, unsigned char*, size_t); - #define DefaultClient {0, 0, 0, 0, NULL, NULL, 0, 0, 0} #endif diff --git a/extras/paho_mqtt_c/MQTTConnect.h b/extras/paho_mqtt_c/MQTTConnect.h deleted file mode 100644 index 3d8addd..0000000 --- a/extras/paho_mqtt_c/MQTTConnect.h +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Xiang Rong - 442039 Add makefile to Embedded C client - *******************************************************************************/ - -#ifndef MQTTCONNECT_H_ -#define MQTTCONNECT_H_ - -#if !defined(DLLImport) - #define DLLImport -#endif -#if !defined(DLLExport) - #define DLLExport -#endif - - -typedef union -{ - unsigned char all; /**< all connect flags */ -#if defined(REVERSED) - struct - { - unsigned int username : 1; /**< 3.1 user name */ - unsigned int password : 1; /**< 3.1 password */ - unsigned int willRetain : 1; /**< will retain setting */ - unsigned int willQoS : 2; /**< will QoS value */ - unsigned int will : 1; /**< will flag */ - unsigned int cleansession : 1; /**< clean session flag */ - unsigned int : 1; /**< unused */ - } bits; -#else - struct - { - unsigned int : 1; /**< unused */ - unsigned int cleansession : 1; /**< cleansession flag */ - unsigned int will : 1; /**< will flag */ - unsigned int willQoS : 2; /**< will QoS value */ - unsigned int willRetain : 1; /**< will retain setting */ - unsigned int password : 1; /**< 3.1 password */ - unsigned int username : 1; /**< 3.1 user name */ - } bits; -#endif -} MQTTConnectFlags; /**< connect flags byte */ - - - -/** - * Defines the MQTT "Last Will and Testament" (LWT) settings for - * the connect packet. - */ -typedef struct -{ - /** The eyecatcher for this structure. must be MQTW. */ - char struct_id[4]; - /** The version number of this structure. Must be 0 */ - int struct_version; - /** The LWT topic to which the LWT message will be published. */ - MQTTString topicName; - /** The LWT payload. */ - MQTTString message; - /** - * The retained flag for the LWT message (see MQTTAsync_message.retained). - */ - unsigned char retained; - /** - * The quality of service setting for the LWT message (see - * MQTTAsync_message.qos and @ref qos). - */ - char qos; -} MQTTPacket_willOptions; - - -#define MQTTPacket_willOptions_initializer { {'M', 'Q', 'T', 'W'}, 0, {NULL, {0, NULL}}, {NULL, {0, NULL}}, 0, 0 } - - -typedef struct -{ - /** The eyecatcher for this structure. must be MQTC. */ - char struct_id[4]; - /** The version number of this structure. Must be 0 */ - int struct_version; - /** Version of MQTT to be used. 3 = 3.1 4 = 3.1.1 - */ - unsigned char MQTTVersion; - MQTTString clientID; - unsigned short keepAliveInterval; - unsigned char cleansession; - unsigned char willFlag; - MQTTPacket_willOptions will; - MQTTString username; - MQTTString password; -} MQTTPacket_connectData; - -typedef union -{ - unsigned char all; /**< all connack flags */ -#if defined(REVERSED) - struct - { - unsigned int sessionpresent : 1; /**< session present flag */ - unsigned int : 7; /**< unused */ - } bits; -#else - struct - { - unsigned int : 7; /**< unused */ - unsigned int sessionpresent : 1; /**< session present flag */ - } bits; -#endif -} MQTTConnackFlags; /**< connack flags byte */ - -#define MQTTPacket_connectData_initializer { {'M', 'Q', 'T', 'C'}, 0, 4, {NULL, {0, NULL}}, 60, 1, 0, \ - MQTTPacket_willOptions_initializer, {NULL, {0, NULL}}, {NULL, {0, NULL}} } - -DLLExport int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options); -DLLExport int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int len); - -DLLExport int MQTTSerialize_connack(unsigned char* buf, int buflen, unsigned char connack_rc, unsigned char sessionPresent); -DLLExport int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen); - -DLLExport int MQTTSerialize_disconnect(unsigned char* buf, int buflen); -DLLExport int MQTTSerialize_pingreq(unsigned char* buf, int buflen); - -#endif /* MQTTCONNECT_H_ */ diff --git a/extras/paho_mqtt_c/MQTTConnectClient.c b/extras/paho_mqtt_c/MQTTConnectClient.c deleted file mode 100644 index 4c1e862..0000000 --- a/extras/paho_mqtt_c/MQTTConnectClient.c +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - *******************************************************************************/ -#include -#include "MQTTPacket.h" -#include "StackTrace.h" - -#include - -/** - * Determines the length of the MQTT connect packet that would be produced using the supplied connect options. - * @param options the options to be used to build the connect packet - * @return the length of buffer needed to contain the serialized version of the packet - */ -int MQTTSerialize_connectLength(MQTTPacket_connectData* options) -{ - int len = 0; - - FUNC_ENTRY; - - if (options->MQTTVersion == 3) - len = 12; /* variable depending on MQTT or MQIsdp */ - else if (options->MQTTVersion == 4) - len = 10; - - len += MQTTstrlen(options->clientID)+2; - if (options->willFlag) - len += MQTTstrlen(options->will.topicName)+2 + MQTTstrlen(options->will.message)+2; - if (options->username.cstring || options->username.lenstring.data) - len += MQTTstrlen(options->username)+2; - if (options->password.cstring || options->password.lenstring.data) - len += MQTTstrlen(options->password)+2; - - FUNC_EXIT_RC(len); - return len; -} - - -/** - * Serializes the connect options into the buffer. - * @param buf the buffer into which the packet will be serialized - * @param len the length in bytes of the supplied buffer - * @param options the options to be used to build the connect packet - * @return serialized length, or error if 0 - */ -int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options) -{ - unsigned char *ptr = buf; - MQTTHeader header = {0}; - MQTTConnectFlags flags = {0}; - int len = 0; - int rc = -1; - - FUNC_ENTRY; - if (MQTTPacket_len(len = MQTTSerialize_connectLength(options)) > buflen) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - - header.byte = 0; - header.bits.type = CONNECT; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, len); /* write remaining length */ - - if (options->MQTTVersion == 4) - { - writeCString(&ptr, "MQTT"); - writeChar(&ptr, (char) 4); - } - else - { - writeCString(&ptr, "MQIsdp"); - writeChar(&ptr, (char) 3); - } - - flags.all = 0; - flags.bits.cleansession = options->cleansession; - flags.bits.will = (options->willFlag) ? 1 : 0; - if (flags.bits.will) - { - flags.bits.willQoS = options->will.qos; - flags.bits.willRetain = options->will.retained; - } - - if (options->username.cstring || options->username.lenstring.data) - flags.bits.username = 1; - if (options->password.cstring || options->password.lenstring.data) - flags.bits.password = 1; - - writeChar(&ptr, flags.all); - writeInt(&ptr, options->keepAliveInterval); - writeMQTTString(&ptr, options->clientID); - if (options->willFlag) - { - writeMQTTString(&ptr, options->will.topicName); - writeMQTTString(&ptr, options->will.message); - } - if (flags.bits.username) - writeMQTTString(&ptr, options->username); - if (flags.bits.password) - writeMQTTString(&ptr, options->password); - - rc = ptr - buf; - - exit: FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Deserializes the supplied (wire) buffer into connack data - return code - * @param sessionPresent the session present flag returned (only for MQTT 3.1.1) - * @param connack_rc returned integer value of the connack return code - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param len the length in bytes of the data in the supplied buffer - * @return error code. 1 is success, 0 is failure - */ -int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen) -{ - MQTTHeader header = {0}; - unsigned char* curdata = buf; - unsigned char* enddata = NULL; - int rc = 0; - int mylen; - MQTTConnackFlags flags = {0}; - - FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != CONNACK) - goto exit; - - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ - enddata = curdata + mylen; - if (enddata - curdata < 2) - goto exit; - - flags.all = readChar(&curdata); - *sessionPresent = flags.bits.sessionpresent; - *connack_rc = readChar(&curdata); - - rc = 1; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Serializes a 0-length packet into the supplied buffer, ready for writing to a socket - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer, to avoid overruns - * @param packettype the message type - * @return serialized length, or error if 0 - */ -int MQTTSerialize_zero(unsigned char* buf, int buflen, unsigned char packettype) -{ - MQTTHeader header = {0}; - int rc = -1; - unsigned char *ptr = buf; - - FUNC_ENTRY; - if (buflen < 2) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - header.byte = 0; - header.bits.type = packettype; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, 0); /* write remaining length */ - rc = ptr - buf; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Serializes a disconnect packet into the supplied buffer, ready for writing to a socket - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer, to avoid overruns - * @return serialized length, or error if 0 - */ -int MQTTSerialize_disconnect(unsigned char* buf, int buflen) -{ - return MQTTSerialize_zero(buf, buflen, DISCONNECT); -} - - -/** - * Serializes a disconnect packet into the supplied buffer, ready for writing to a socket - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer, to avoid overruns - * @return serialized length, or error if 0 - */ -int MQTTSerialize_pingreq(unsigned char* buf, int buflen) -{ - return MQTTSerialize_zero(buf, buflen, PINGREQ); -} diff --git a/extras/paho_mqtt_c/MQTTDeserializePublish.c b/extras/paho_mqtt_c/MQTTDeserializePublish.c deleted file mode 100644 index 21b7314..0000000 --- a/extras/paho_mqtt_c/MQTTDeserializePublish.c +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - *******************************************************************************/ -#include -#include "StackTrace.h" -#include "MQTTPacket.h" -#include - -#define min(a, b) ((a < b) ? 1 : 0) - -/** - * Deserializes the supplied (wire) buffer into publish data - * @param dup returned integer - the MQTT dup flag - * @param qos returned integer - the MQTT QoS value - * @param retained returned integer - the MQTT retained flag - * @param packetid returned integer - the MQTT packet identifier - * @param topicName returned MQTTString - the MQTT topic in the publish - * @param payload returned byte buffer - the MQTT publish payload - * @param payloadlen returned integer - the length of the MQTT payload - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param buflen the length in bytes of the data in the supplied buffer - * @return error code. 1 is success - */ -int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName, - unsigned char** payload, int* payloadlen, unsigned char* buf, int buflen) -{ - MQTTHeader header = {0}; - unsigned char* curdata = buf; - unsigned char* enddata = NULL; - int rc = 0; - int mylen = 0; - - FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != PUBLISH) - goto exit; - *dup = header.bits.dup; - *qos = header.bits.qos; - *retained = header.bits.retain; - - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ - enddata = curdata + mylen; - - if (!readMQTTLenString(topicName, &curdata, enddata) || - enddata - curdata < 0) /* do we have enough data to read the protocol version byte? */ - goto exit; - - if (*qos > 0) - *packetid = readInt(&curdata); - - *payloadlen = enddata - curdata; - *payload = curdata; - rc = 1; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - - -/** - * Deserializes the supplied (wire) buffer into an ack - * @param packettype returned integer - the MQTT packet type - * @param dup returned integer - the MQTT dup flag - * @param packetid returned integer - the MQTT packet identifier - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param buflen the length in bytes of the data in the supplied buffer - * @return error code. 1 is success, 0 is failure - */ -int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen) -{ - MQTTHeader header = {0}; - unsigned char* curdata = buf; - unsigned char* enddata = NULL; - int rc = 0; - int mylen; - - FUNC_ENTRY; - header.byte = readChar(&curdata); - *dup = header.bits.dup; - *packettype = header.bits.type; - - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ - enddata = curdata + mylen; - - if (enddata - curdata < 2) - goto exit; - *packetid = readInt(&curdata); - - rc = 1; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - diff --git a/extras/paho_mqtt_c/MQTTFormat.h b/extras/paho_mqtt_c/MQTTFormat.h deleted file mode 100644 index 47b0c41..0000000 --- a/extras/paho_mqtt_c/MQTTFormat.h +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - *******************************************************************************/ - -#if !defined(MQTTFORMAT_H) -#define MQTTFORMAT_H - -#include "StackTrace.h" -#include "MQTTPacket.h" - -const char* MQTTPacket_getName(unsigned short packetid); -int MQTTStringFormat_connect(char* strbuf, int strbuflen, MQTTPacket_connectData* data); -int MQTTStringFormat_connack(char* strbuf, int strbuflen, unsigned char connack_rc, unsigned char sessionPresent); -int MQTTStringFormat_publish(char* strbuf, int strbuflen, unsigned char dup, int qos, unsigned char retained, - unsigned short packetid, MQTTString topicName, unsigned char* payload, int payloadlen); -int MQTTStringFormat_ack(char* strbuf, int strbuflen, unsigned char packettype, unsigned char dup, unsigned short packetid); -int MQTTStringFormat_subscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, int count, - MQTTString topicFilters[], int requestedQoSs[]); -int MQTTStringFormat_suback(char* strbuf, int strbuflen, unsigned short packetid, int count, int* grantedQoSs); -int MQTTStringFormat_unsubscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]); -char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int buflen); -char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int buflen); - -#endif diff --git a/extras/paho_mqtt_c/MQTTPacket.c b/extras/paho_mqtt_c/MQTTPacket.c deleted file mode 100644 index eb36a50..0000000 --- a/extras/paho_mqtt_c/MQTTPacket.c +++ /dev/null @@ -1,409 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Sergio R. Caprile - non-blocking packet read functions for stream transport - *******************************************************************************/ -#include -#include "StackTrace.h" -#include "MQTTPacket.h" -#include - -/** - * Encodes the message length according to the MQTT algorithm - * @param buf the buffer into which the encoded data is written - * @param length the length to be encoded - * @return the number of bytes written to buffer - */ -int MQTTPacket_encode(unsigned char* buf, int length) -{ - int rc = 0; - - FUNC_ENTRY; - do - { - char d = length % 128; - length /= 128; - /* if there are more digits to encode, set the top bit of this digit */ - if (length > 0) - d |= 0x80; - buf[rc++] = d; - } while (length > 0); - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Decodes the message length according to the MQTT algorithm - * @param getcharfn pointer to function to read the next character from the data source - * @param value the decoded length returned - * @return the number of bytes read from the socket - */ -int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value) -{ - unsigned char c; - int multiplier = 1; - int len = 0; -#define MAX_NO_OF_REMAINING_LENGTH_BYTES 4 - - FUNC_ENTRY; - *value = 0; - do - { - int rc = MQTTPACKET_READ_ERROR; - - if (++len > MAX_NO_OF_REMAINING_LENGTH_BYTES) - { - rc = MQTTPACKET_READ_ERROR; /* bad data */ - goto exit; - } - rc = (*getcharfn)(&c, 1); - if (rc != 1) - goto exit; - *value += (c & 127) * multiplier; - multiplier *= 128; - } while ((c & 128) != 0); -exit: - FUNC_EXIT_RC(len); - return len; -} - - -int MQTTPacket_len(int rem_len) -{ - rem_len += 1; /* header byte */ - - /* now remaining_length field */ - if (rem_len < 128) - rem_len += 1; - else if (rem_len < 16384) - rem_len += 2; - else if (rem_len < 2097151) - rem_len += 3; - else - rem_len += 4; - return rem_len; -} - - -static unsigned char* bufptr; - -int bufchar(unsigned char* c, int count) -{ - int i; - - for (i = 0; i < count; ++i) - *c = *bufptr++; - return count; -} - - -int MQTTPacket_decodeBuf(unsigned char* buf, int* value) -{ - bufptr = buf; - return MQTTPacket_decode(bufchar, value); -} - - -/** - * Calculates an integer from two bytes read from the input buffer - * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned - * @return the integer value calculated - */ -int readInt(unsigned char** pptr) -{ - unsigned char* ptr = *pptr; - int len = 256*(*ptr) + (*(ptr+1)); - *pptr += 2; - return len; -} - - -/** - * Reads one character from the input buffer. - * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned - * @return the character read - */ -char readChar(unsigned char** pptr) -{ - char c = **pptr; - (*pptr)++; - return c; -} - - -/** - * Writes one character to an output buffer. - * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned - * @param c the character to write - */ -void writeChar(unsigned char** pptr, char c) -{ - **pptr = c; - (*pptr)++; -} - - -/** - * Writes an integer as 2 bytes to an output buffer. - * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned - * @param anInt the integer to write - */ -void writeInt(unsigned char** pptr, int anInt) -{ - **pptr = (unsigned char)(anInt / 256); - (*pptr)++; - **pptr = (unsigned char)(anInt % 256); - (*pptr)++; -} - - -/** - * Writes a "UTF" string to an output buffer. Converts C string to length-delimited. - * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned - * @param string the C string to write - */ -void writeCString(unsigned char** pptr, const char* string) -{ - int len = strlen(string); - writeInt(pptr, len); - memcpy(*pptr, string, len); - *pptr += len; -} - - -int getLenStringLen(char* ptr) -{ - int len = 256*((unsigned char)(*ptr)) + (unsigned char)(*(ptr+1)); - return len; -} - - -void writeMQTTString(unsigned char** pptr, MQTTString mqttstring) -{ - if (mqttstring.lenstring.len > 0) - { - writeInt(pptr, mqttstring.lenstring.len); - memcpy(*pptr, mqttstring.lenstring.data, mqttstring.lenstring.len); - *pptr += mqttstring.lenstring.len; - } - else if (mqttstring.cstring) - writeCString(pptr, mqttstring.cstring); - else - writeInt(pptr, 0); -} - - -/** - * @param mqttstring the MQTTString structure into which the data is to be read - * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned - * @param enddata pointer to the end of the data: do not read beyond - * @return 1 if successful, 0 if not - */ -int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned char* enddata) -{ - int rc = 0; - - FUNC_ENTRY; - /* the first two bytes are the length of the string */ - if (enddata - (*pptr) > 1) /* enough length to read the integer? */ - { - mqttstring->lenstring.len = readInt(pptr); /* increments pptr to point past length */ - if (&(*pptr)[mqttstring->lenstring.len] <= enddata) - { - mqttstring->lenstring.data = (char*)*pptr; - *pptr += mqttstring->lenstring.len; - rc = 1; - } - } - mqttstring->cstring = NULL; - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Return the length of the MQTTstring - C string if there is one, otherwise the length delimited string - * @param mqttstring the string to return the length of - * @return the length of the string - */ -int MQTTstrlen(MQTTString mqttstring) -{ - int rc = 0; - - if (mqttstring.cstring) - rc = strlen(mqttstring.cstring); - else - rc = mqttstring.lenstring.len; - return rc; -} - - -/** - * Compares an MQTTString to a C string - * @param a the MQTTString to compare - * @param bptr the C string to compare - * @return boolean - equal or not - */ -int MQTTPacket_equals(MQTTString* a, char* bptr) -{ - int alen = 0, - blen = 0; - char *aptr; - - if (a->cstring) - { - aptr = a->cstring; - alen = strlen(a->cstring); - } - else - { - aptr = a->lenstring.data; - alen = a->lenstring.len; - } - blen = strlen(bptr); - - return (alen == blen) && (strncmp(aptr, bptr, alen) == 0); -} - - -/** - * Helper function to read packet data from some source into a buffer - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param getfn pointer to a function which will read any number of bytes from the needed source - * @return integer MQTT packet type, or -1 on error - * @note the whole message must fit into the caller's buffer - */ -int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)) -{ - int rc = -1; - MQTTHeader header = {0}; - int len = 0; - int rem_len = 0; - - /* 1. read the header byte. This has the packet type in it */ - if ((*getfn)(buf, 1) != 1) - goto exit; - - len = 1; - /* 2. read the remaining length. This is variable in itself */ - MQTTPacket_decode(getfn, &rem_len); - len += MQTTPacket_encode(buf + 1, rem_len); /* put the original remaining length back into the buffer */ - - /* 3. read the rest of the buffer using a callback to supply the rest of the data */ - if((rem_len + len) > buflen) - goto exit; - if ((*getfn)(buf + len, rem_len) != rem_len) - goto exit; - - header.byte = buf[0]; - rc = header.bits.type; -exit: - return rc; -} - -/** - * Decodes the message length according to the MQTT algorithm, non-blocking - * @param trp pointer to a transport structure holding what is needed to solve getting data from it - * @param value the decoded length returned - * @return integer the number of bytes read from the socket, 0 for call again, or -1 on error - */ -static int MQTTPacket_decodenb(MQTTTransport *trp) -{ - unsigned char c; - int rc = MQTTPACKET_READ_ERROR; - - FUNC_ENTRY; - if(trp->len == 0){ /* initialize on first call */ - trp->multiplier = 1; - trp->rem_len = 0; - } - do { - int frc; - if (++(trp->len) > MAX_NO_OF_REMAINING_LENGTH_BYTES) - goto exit; - if ((frc=(*trp->getfn)(trp->sck, &c, 1)) == -1) - goto exit; - if (frc == 0){ - rc = 0; - goto exit; - } - trp->rem_len += (c & 127) * trp->multiplier; - trp->multiplier *= 128; - } while ((c & 128) != 0); - rc = trp->len; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - -/** - * Helper function to read packet data from some source into a buffer, non-blocking - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param trp pointer to a transport structure holding what is needed to solve getting data from it - * @return integer MQTT packet type, 0 for call again, or -1 on error - * @note the whole message must fit into the caller's buffer - */ -int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp) -{ - int rc = -1, frc; - MQTTHeader header = {0}; - - switch(trp->state){ - default: - trp->state = 0; - /*FALLTHROUGH*/ - case 0: - /* read the header byte. This has the packet type in it */ - if ((frc=(*trp->getfn)(trp->sck, buf, 1)) == -1) - goto exit; - if (frc == 0) - return 0; - trp->len = 0; - ++trp->state; - /*FALLTHROUGH*/ - /* read the remaining length. This is variable in itself */ - case 1: - if((frc=MQTTPacket_decodenb(trp)) == MQTTPACKET_READ_ERROR) - goto exit; - if(frc == 0) - return 0; - trp->len = 1 + MQTTPacket_encode(buf + 1, trp->rem_len); /* put the original remaining length back into the buffer */ - if((trp->rem_len + trp->len) > buflen) - goto exit; - ++trp->state; - /*FALLTHROUGH*/ - case 2: - /* read the rest of the buffer using a callback to supply the rest of the data */ - if ((frc=(*trp->getfn)(trp->sck, buf + trp->len, trp->rem_len)) == -1) - goto exit; - if (frc == 0) - return 0; - trp->rem_len -= frc; - trp->len += frc; - if(trp->rem_len) - return 0; - - header.byte = buf[0]; - rc = header.bits.type; - break; - } - -exit: - trp->state = 0; - return rc; -} - diff --git a/extras/paho_mqtt_c/MQTTPacket.h b/extras/paho_mqtt_c/MQTTPacket.h deleted file mode 100644 index c7909d9..0000000 --- a/extras/paho_mqtt_c/MQTTPacket.h +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Xiang Rong - 442039 Add makefile to Embedded C client - *******************************************************************************/ - -#ifndef MQTTPACKET_H_ -#define MQTTPACKET_H_ - -#if defined(__cplusplus) /* If this is a C++ compiler, use C linkage */ -extern "C" { -#endif - -#if defined(WIN32_DLL) || defined(WIN64_DLL) - #define DLLImport __declspec(dllimport) - #define DLLExport __declspec(dllexport) -#elif defined(LINUX_SO) - #define DLLImport extern - #define DLLExport __attribute__ ((visibility ("default"))) -#else - #define DLLImport - #define DLLExport -#endif - -enum errors -{ - MQTTPACKET_BUFFER_TOO_SHORT = -2, - MQTTPACKET_READ_ERROR = -1, - MQTTPACKET_READ_COMPLETE -}; - -enum msgTypes -{ - CONNECT = 1, CONNACK, PUBLISH, PUBACK, PUBREC, PUBREL, - PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK, - PINGREQ, PINGRESP, DISCONNECT -}; - -/** - * Bitfields for the MQTT header byte. - */ -typedef union -{ - unsigned char byte; /**< the whole byte */ -#if defined(REVERSED) - struct - { - unsigned int type : 4; /**< message type nibble */ - unsigned int dup : 1; /**< DUP flag bit */ - unsigned int qos : 2; /**< QoS value, 0, 1 or 2 */ - unsigned int retain : 1; /**< retained flag bit */ - } bits; -#else - struct - { - unsigned int retain : 1; /**< retained flag bit */ - unsigned int qos : 2; /**< QoS value, 0, 1 or 2 */ - unsigned int dup : 1; /**< DUP flag bit */ - unsigned int type : 4; /**< message type nibble */ - } bits; -#endif -} MQTTHeader; - -typedef struct -{ - int len; - char* data; -} MQTTLenString; - -typedef struct -{ - char* cstring; - MQTTLenString lenstring; -} MQTTString; - -#define MQTTString_initializer {NULL, {0, NULL}} - -int MQTTstrlen(MQTTString mqttstring); - -#include "MQTTConnect.h" -#include "MQTTPublish.h" -#include "MQTTSubscribe.h" -#include "MQTTUnsubscribe.h" -#include "MQTTFormat.h" - -int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char type, unsigned char dup, unsigned short packetid); -int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen); - -int MQTTPacket_len(int rem_len); -int MQTTPacket_equals(MQTTString* a, char* b); - -int MQTTPacket_encode(unsigned char* buf, int length); -int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value); -int MQTTPacket_decodeBuf(unsigned char* buf, int* value); - -int readInt(unsigned char** pptr); -char readChar(unsigned char** pptr); -void writeChar(unsigned char** pptr, char c); -void writeInt(unsigned char** pptr, int anInt); -int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned char* enddata); -void writeCString(unsigned char** pptr, const char* string); -void writeMQTTString(unsigned char** pptr, MQTTString mqttstring); - -DLLExport int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)); - -typedef struct { - int (*getfn)(void *, unsigned char*, int); /* must return -1 for error, 0 for call again, or the number of bytes read */ - void *sck; /* pointer to whatever the system may use to identify the transport */ - int multiplier; - int rem_len; - int len; - char state; -}MQTTTransport; - -int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp); - -#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ -} -#endif - - -#endif /* MQTTPACKET_H_ */ diff --git a/extras/paho_mqtt_c/MQTTPublish.h b/extras/paho_mqtt_c/MQTTPublish.h deleted file mode 100644 index ffd8752..0000000 --- a/extras/paho_mqtt_c/MQTTPublish.h +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Xiang Rong - 442039 Add makefile to Embedded C client - *******************************************************************************/ - -#ifndef MQTTPUBLISH_H_ -#define MQTTPUBLISH_H_ - -#if !defined(DLLImport) - #define DLLImport -#endif -#if !defined(DLLExport) - #define DLLExport -#endif - -DLLExport int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, - MQTTString topicName, unsigned char* payload, int payloadlen); - -DLLExport int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName, - unsigned char** payload, int* payloadlen, unsigned char* buf, int len); - -DLLExport int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid); -DLLExport int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid); -DLLExport int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid); - -#endif /* MQTTPUBLISH_H_ */ diff --git a/extras/paho_mqtt_c/MQTTSerializePublish.c b/extras/paho_mqtt_c/MQTTSerializePublish.c deleted file mode 100644 index c3343c8..0000000 --- a/extras/paho_mqtt_c/MQTTSerializePublish.c +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Ian Craggs - fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=453144 - *******************************************************************************/ -#include -#include "MQTTPacket.h" -#include "StackTrace.h" - -#include - - -/** - * Determines the length of the MQTT publish packet that would be produced using the supplied parameters - * @param qos the MQTT QoS of the publish (packetid is omitted for QoS 0) - * @param topicName the topic name to be used in the publish - * @param payloadlen the length of the payload to be sent - * @return the length of buffer needed to contain the serialized version of the packet - */ -int MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen) -{ - int len = 0; - - len += 2 + MQTTstrlen(topicName) + payloadlen; - if (qos > 0) - len += 2; /* packetid */ - return len; -} - - -/** - * Serializes the supplied publish data into the supplied buffer, ready for sending - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param dup integer - the MQTT dup flag - * @param qos integer - the MQTT QoS value - * @param retained integer - the MQTT retained flag - * @param packetid integer - the MQTT packet identifier - * @param topicName MQTTString - the MQTT topic in the publish - * @param payload byte buffer - the MQTT publish payload - * @param payloadlen integer - the length of the MQTT payload - * @return the length of the serialized data. <= 0 indicates error - */ -int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, - MQTTString topicName, unsigned char* payload, int payloadlen) -{ - unsigned char *ptr = buf; - MQTTHeader header = {0}; - int rem_len = 0; - int rc = 0; - - FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_publishLength(qos, topicName, payloadlen)) > buflen) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - - header.bits.type = PUBLISH; - header.bits.dup = dup; - header.bits.qos = qos; - header.bits.retain = retained; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; - - writeMQTTString(&ptr, topicName); - - if (qos > 0) - writeInt(&ptr, packetid); - - memcpy(ptr, payload, payloadlen); - ptr += payloadlen; - - rc = ptr - buf; - -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - - -/** - * Serializes the ack packet into the supplied buffer. - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param type the MQTT packet type - * @param dup the MQTT dup flag - * @param packetid the MQTT packet identifier - * @return serialized length, or error if 0 - */ -int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char packettype, unsigned char dup, unsigned short packetid) -{ - MQTTHeader header = {0}; - int rc = 0; - unsigned char *ptr = buf; - - FUNC_ENTRY; - if (buflen < 4) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - header.bits.type = packettype; - header.bits.dup = dup; - header.bits.qos = (packettype == PUBREL) ? 1 : 0; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, 2); /* write remaining length */ - writeInt(&ptr, packetid); - rc = ptr - buf; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Serializes a puback packet into the supplied buffer. - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param packetid integer - the MQTT packet identifier - * @return serialized length, or error if 0 - */ -int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid) -{ - return MQTTSerialize_ack(buf, buflen, PUBACK, 0, packetid); -} - - -/** - * Serializes a pubrel packet into the supplied buffer. - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param dup integer - the MQTT dup flag - * @param packetid integer - the MQTT packet identifier - * @return serialized length, or error if 0 - */ -int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid) -{ - return MQTTSerialize_ack(buf, buflen, PUBREL, dup, packetid); -} - - -/** - * Serializes a pubrel packet into the supplied buffer. - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied buffer - * @param packetid integer - the MQTT packet identifier - * @return serialized length, or error if 0 - */ -int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid) -{ - return MQTTSerialize_ack(buf, buflen, PUBCOMP, 0, packetid); -} - - diff --git a/extras/paho_mqtt_c/MQTTSubscribe.h b/extras/paho_mqtt_c/MQTTSubscribe.h deleted file mode 100644 index 9b8511d..0000000 --- a/extras/paho_mqtt_c/MQTTSubscribe.h +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Xiang Rong - 442039 Add makefile to Embedded C client - *******************************************************************************/ - -#ifndef MQTTSUBSCRIBE_H_ -#define MQTTSUBSCRIBE_H_ - -#if !defined(DLLImport) - #define DLLImport -#endif -#if !defined(DLLExport) - #define DLLExport -#endif - -DLLExport int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[], int requestedQoSs[]); - -DLLExport int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid, - int maxcount, int* count, MQTTString topicFilters[], int requestedQoSs[], unsigned char* buf, int len); - -DLLExport int MQTTSerialize_suback(unsigned char* buf, int buflen, unsigned short packetid, int count, int* grantedQoSs); - -DLLExport int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int len); - - -#endif /* MQTTSUBSCRIBE_H_ */ diff --git a/extras/paho_mqtt_c/MQTTSubscribeClient.c b/extras/paho_mqtt_c/MQTTSubscribeClient.c deleted file mode 100644 index a76a4d3..0000000 --- a/extras/paho_mqtt_c/MQTTSubscribeClient.c +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - *******************************************************************************/ -#include -#include "MQTTPacket.h" -#include "StackTrace.h" - -#include - -/** - * Determines the length of the MQTT subscribe packet that would be produced using the supplied parameters - * @param count the number of topic filter strings in topicFilters - * @param topicFilters the array of topic filter strings to be used in the publish - * @return the length of buffer needed to contain the serialized version of the packet - */ -int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[]) -{ - int i; - int len = 2; /* packetid */ - - for (i = 0; i < count; ++i) - len += 2 + MQTTstrlen(topicFilters[i]) + 1; /* length + topic + req_qos */ - return len; -} - - -/** - * Serializes the supplied subscribe data into the supplied buffer, ready for sending - * @param buf the buffer into which the packet will be serialized - * @param buflen the length in bytes of the supplied bufferr - * @param dup integer - the MQTT dup flag - * @param packetid integer - the MQTT packet identifier - * @param count - number of members in the topicFilters and reqQos arrays - * @param topicFilters - array of topic filter names - * @param requestedQoSs - array of requested QoS - * @return the length of the serialized data. <= 0 indicates error - */ -int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, int count, - MQTTString topicFilters[], int requestedQoSs[]) -{ - unsigned char *ptr = buf; - MQTTHeader header = {0}; - int rem_len = 0; - int rc = 0; - int i = 0; - - FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_subscribeLength(count, topicFilters)) > buflen) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - - header.byte = 0; - header.bits.type = SUBSCRIBE; - header.bits.dup = dup; - header.bits.qos = 1; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; - - writeInt(&ptr, packetid); - - for (i = 0; i < count; ++i) - { - writeMQTTString(&ptr, topicFilters[i]); - writeChar(&ptr, requestedQoSs[i]); - } - - rc = ptr - buf; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - - -/** - * Deserializes the supplied (wire) buffer into suback data - * @param packetid returned integer - the MQTT packet identifier - * @param maxcount - the maximum number of members allowed in the grantedQoSs array - * @param count returned integer - number of members in the grantedQoSs array - * @param grantedQoSs returned array of integers - the granted qualities of service - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param buflen the length in bytes of the data in the supplied buffer - * @return error code. 1 is success, 0 is failure - */ -int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int buflen) -{ - MQTTHeader header = {0}; - unsigned char* curdata = buf; - unsigned char* enddata = NULL; - int rc = 0; - int mylen; - - FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != SUBACK) - goto exit; - - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ - enddata = curdata + mylen; - if (enddata - curdata < 2) - goto exit; - - *packetid = readInt(&curdata); - - *count = 0; - while (curdata < enddata) - { - if (*count > maxcount) - { - rc = -1; - goto exit; - } - grantedQoSs[(*count)++] = readChar(&curdata); - } - - rc = 1; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - diff --git a/extras/paho_mqtt_c/MQTTUnsubscribe.h b/extras/paho_mqtt_c/MQTTUnsubscribe.h deleted file mode 100644 index 2f8e829..0000000 --- a/extras/paho_mqtt_c/MQTTUnsubscribe.h +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Xiang Rong - 442039 Add makefile to Embedded C client - *******************************************************************************/ - -#ifndef MQTTUNSUBSCRIBE_H_ -#define MQTTUNSUBSCRIBE_H_ - -#if !defined(DLLImport) - #define DLLImport -#endif -#if !defined(DLLExport) - #define DLLExport -#endif - -DLLExport int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]); - -DLLExport int MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int max_count, int* count, MQTTString topicFilters[], - unsigned char* buf, int len); - -DLLExport int MQTTSerialize_unsuback(unsigned char* buf, int buflen, unsigned short packetid); - -DLLExport int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int len); - -#endif /* MQTTUNSUBSCRIBE_H_ */ diff --git a/extras/paho_mqtt_c/MQTTUnsubscribeClient.c b/extras/paho_mqtt_c/MQTTUnsubscribeClient.c deleted file mode 100644 index 40b4733..0000000 --- a/extras/paho_mqtt_c/MQTTUnsubscribeClient.c +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - *******************************************************************************/ -#include -#include "MQTTPacket.h" -#include "StackTrace.h" - -#include - -/** - * Determines the length of the MQTT unsubscribe packet that would be produced using the supplied parameters - * @param count the number of topic filter strings in topicFilters - * @param topicFilters the array of topic filter strings to be used in the publish - * @return the length of buffer needed to contain the serialized version of the packet - */ -int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[]) -{ - int i; - int len = 2; /* packetid */ - - for (i = 0; i < count; ++i) - len += 2 + MQTTstrlen(topicFilters[i]); /* length + topic*/ - return len; -} - - -/** - * Serializes the supplied unsubscribe data into the supplied buffer, ready for sending - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param buflen the length in bytes of the data in the supplied buffer - * @param dup integer - the MQTT dup flag - * @param packetid integer - the MQTT packet identifier - * @param count - number of members in the topicFilters array - * @param topicFilters - array of topic filter names - * @return the length of the serialized data. <= 0 indicates error - */ -int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]) -{ - unsigned char *ptr = buf; - MQTTHeader header = {0}; - int rem_len = 0; - int rc = -1; - int i = 0; - - FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_unsubscribeLength(count, topicFilters)) > buflen) - { - rc = MQTTPACKET_BUFFER_TOO_SHORT; - goto exit; - } - - header.byte = 0; - header.bits.type = UNSUBSCRIBE; - header.bits.dup = dup; - header.bits.qos = 1; - writeChar(&ptr, header.byte); /* write header */ - - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; - - writeInt(&ptr, packetid); - - for (i = 0; i < count; ++i) - writeMQTTString(&ptr, topicFilters[i]); - - rc = ptr - buf; -exit: - FUNC_EXIT_RC(rc); - return rc; -} - - -/** - * Deserializes the supplied (wire) buffer into unsuback data - * @param packetid returned integer - the MQTT packet identifier - * @param buf the raw buffer data, of the correct length determined by the remaining length field - * @param buflen the length in bytes of the data in the supplied buffer - * @return error code. 1 is success, 0 is failure - */ -int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int buflen) -{ - unsigned char type = 0; - unsigned char dup = 0; - int rc = 0; - - FUNC_ENTRY; - rc = MQTTDeserialize_ack(&type, &dup, packetid, buf, buflen); - if (type == UNSUBACK) - rc = 1; - FUNC_EXIT_RC(rc); - return rc; -} - - diff --git a/extras/paho_mqtt_c/README.md b/extras/paho_mqtt_c/README.md new file mode 100644 index 0000000..a43f0e5 --- /dev/null +++ b/extras/paho_mqtt_c/README.md @@ -0,0 +1,16 @@ +# Paho MQTT Embedded C Client + +https://www.eclipse.org/paho/clients/c/embedded/ + +ESP8266 port based on the port done by @baoshi. + +## Directory Organisation + +* org.eclipse.paho.mqtt.embedded-c/ is the upstream project. + +* MQTTClient.c is copied verbatim from org.eclipse.paho.mqtt.embedded-c/MQTTClient-C/src/ (as it needs to be in the same directory as MQTTClient.h) + +* MQTTClient.h is copied from the same place, and has one line changed to include the upstream platform header file. + +... any time the submodule is updated, those two source files should also be refreshed. + diff --git a/extras/paho_mqtt_c/StackTrace.h b/extras/paho_mqtt_c/StackTrace.h deleted file mode 100644 index 517d437..0000000 --- a/extras/paho_mqtt_c/StackTrace.h +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 IBM Corp. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * and Eclipse Distribution License v1.0 which accompany this distribution. - * - * The Eclipse Public License is available at - * http://www.eclipse.org/legal/epl-v10.html - * and the Eclipse Distribution License is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * Contributors: - * Ian Craggs - initial API and implementation and/or initial documentation - * Ian Craggs - fix for bug #434081 - *******************************************************************************/ - -#ifndef STACKTRACE_H_ -#define STACKTRACE_H_ - -#define NOSTACKTRACE 1 - -#if defined(NOSTACKTRACE) -#define FUNC_ENTRY -#define FUNC_ENTRY_NOLOG -#define FUNC_ENTRY_MED -#define FUNC_ENTRY_MAX -#define FUNC_EXIT -#define FUNC_EXIT_NOLOG -#define FUNC_EXIT_MED -#define FUNC_EXIT_MAX -#define FUNC_EXIT_RC(x) -#define FUNC_EXIT_MED_RC(x) -#define FUNC_EXIT_MAX_RC(x) - -#else - -#if defined(WIN32) -#define inline __inline -#define FUNC_ENTRY StackTrace_entry(__FUNCTION__, __LINE__, TRACE_MINIMUM) -#define FUNC_ENTRY_NOLOG StackTrace_entry(__FUNCTION__, __LINE__, -1) -#define FUNC_ENTRY_MED StackTrace_entry(__FUNCTION__, __LINE__, TRACE_MEDIUM) -#define FUNC_ENTRY_MAX StackTrace_entry(__FUNCTION__, __LINE__, TRACE_MAXIMUM) -#define FUNC_EXIT StackTrace_exit(__FUNCTION__, __LINE__, NULL, TRACE_MINIMUM) -#define FUNC_EXIT_NOLOG StackTrace_exit(__FUNCTION__, __LINE__, -1) -#define FUNC_EXIT_MED StackTrace_exit(__FUNCTION__, __LINE__, NULL, TRACE_MEDIUM) -#define FUNC_EXIT_MAX StackTrace_exit(__FUNCTION__, __LINE__, NULL, TRACE_MAXIMUM) -#define FUNC_EXIT_RC(x) StackTrace_exit(__FUNCTION__, __LINE__, &x, TRACE_MINIMUM) -#define FUNC_EXIT_MED_RC(x) StackTrace_exit(__FUNCTION__, __LINE__, &x, TRACE_MEDIUM) -#define FUNC_EXIT_MAX_RC(x) StackTrace_exit(__FUNCTION__, __LINE__, &x, TRACE_MAXIMUM) -#else -#define FUNC_ENTRY StackTrace_entry(__func__, __LINE__, TRACE_MINIMUM) -#define FUNC_ENTRY_NOLOG StackTrace_entry(__func__, __LINE__, -1) -#define FUNC_ENTRY_MED StackTrace_entry(__func__, __LINE__, TRACE_MEDIUM) -#define FUNC_ENTRY_MAX StackTrace_entry(__func__, __LINE__, TRACE_MAXIMUM) -#define FUNC_EXIT StackTrace_exit(__func__, __LINE__, NULL, TRACE_MINIMUM) -#define FUNC_EXIT_NOLOG StackTrace_exit(__func__, __LINE__, NULL, -1) -#define FUNC_EXIT_MED StackTrace_exit(__func__, __LINE__, NULL, TRACE_MEDIUM) -#define FUNC_EXIT_MAX StackTrace_exit(__func__, __LINE__, NULL, TRACE_MAXIMUM) -#define FUNC_EXIT_RC(x) StackTrace_exit(__func__, __LINE__, &x, TRACE_MINIMUM) -#define FUNC_EXIT_MED_RC(x) StackTrace_exit(__func__, __LINE__, &x, TRACE_MEDIUM) -#define FUNC_EXIT_MAX_RC(x) StackTrace_exit(__func__, __LINE__, &x, TRACE_MAXIMUM) - -void StackTrace_entry(const char* name, int line, int trace); -void StackTrace_exit(const char* name, int line, void* return_value, int trace); - -void StackTrace_printStack(FILE* dest); -char* StackTrace_get(unsigned long); - -#endif - -#endif - - - - -#endif /* STACKTRACE_H_ */ diff --git a/extras/paho_mqtt_c/component.mk b/extras/paho_mqtt_c/component.mk index 6ecf410..7c349c6 100644 --- a/extras/paho_mqtt_c/component.mk +++ b/extras/paho_mqtt_c/component.mk @@ -1,9 +1,12 @@ # Component makefile for extras/paho_mqtt_c -# expected anyone using bmp driver includes it as 'paho_mqtt_c/MQTT*.h' -INC_DIRS += $(paho_mqtt_c_ROOT).. +MQTT_PACKET_DIR=$(paho_mqtt_c_ROOT)org.eclipse.paho.mqtt.embedded-c/MQTTPacket/src/ -# args for passing into compile rule generation -paho_mqtt_c_SRC_DIR = $(paho_mqtt_c_ROOT) +paho_mqtt_c_SRC_DIR = $(paho_mqtt_c_ROOT) $(MQTT_PACKET_DIR) + +# upstream MQTT code has some unused variables +paho_mqtt_c_CFLAGS = $(CFLAGS) -Wno-unused-but-set-variable + +INC_DIRS += $(paho_mqtt_c_ROOT) $(MQTT_PACKET_DIR) $(eval $(call component_compile_rules,paho_mqtt_c)) diff --git a/extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c b/extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c new file mode 160000 index 0000000..5714645 --- /dev/null +++ b/extras/paho_mqtt_c/org.eclipse.paho.mqtt.embedded-c @@ -0,0 +1 @@ +Subproject commit 5714645c762177ff08086224a7a9ce0b9d541316 From b73b93c58c99a2270eb0e66f04d44ad9b6ec1253 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Sat, 28 May 2016 17:31:39 +1000 Subject: [PATCH 005/349] MQTT Client: Use LWIP socket options instead of select() --- extras/paho_mqtt_c/MQTTESP8266.c | 137 +++++++++---------------------- extras/paho_mqtt_c/MQTTESP8266.h | 29 +++---- 2 files changed, 50 insertions(+), 116 deletions(-) diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index dc2eb18..048b901 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -1,15 +1,8 @@ /** - ****************************************************************************** - * @file MQTTESP8266.c - * @author Baoshi - * @version 0.1 - * @date Sep 9, 2015 - * @brief Eclipse Paho ported to ESP8266 RTOS + * Paho Embedded MQTT client, esp-open-rtos support. * - ****************************************************************************** - * @copyright - * - * Copyright (c) 2015, Baoshi Zhu. All rights reserved. + * Copyright (c) 2015, Baoshi Zhu & 2016, Angus Gratton + * All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE.txt file. * @@ -28,7 +21,7 @@ #include "MQTTESP8266.h" -char expired(Timer* timer) +char expired(Timer* timer) { portTickType now = xTaskGetTickCount(); int32_t left = timer->end_time - now; @@ -36,20 +29,20 @@ char expired(Timer* timer) } -void countdown_ms(Timer* timer, unsigned int timeout) +void countdown_ms(Timer* timer, unsigned int timeout) { portTickType now = xTaskGetTickCount(); timer->end_time = now + timeout / portTICK_RATE_MS; } -void countdown(Timer* timer, unsigned int timeout) +void countdown(Timer* timer, unsigned int timeout) { countdown_ms(timer, timeout * 1000); } -int left_ms(Timer* timer) +int left_ms(Timer* timer) { portTickType now = xTaskGetTickCount(); int32_t left = timer->end_time - now; @@ -57,119 +50,69 @@ int left_ms(Timer* timer) } -void InitTimer(Timer* timer) +void InitTimer(Timer* timer) { timer->end_time = 0; } - - -int mqtt_esp_read(Network* n, unsigned char* buffer, int len, int timeout_ms) +static int mqtt_esp_read(Network* n, unsigned char* buffer, int len, int timeout_ms) { - struct timeval tv; - fd_set fdset; - int rc = 0; - int rcvd = 0; - FD_ZERO(&fdset); - FD_SET(n->my_socket, &fdset); - tv.tv_sec = timeout_ms / 1000; - tv.tv_usec = (timeout_ms % 1000) * 1000; - rc = select(n->my_socket + 1, &fdset, 0, 0, &tv); - if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) - { - rcvd = recv(n->my_socket, buffer, len, 0); + /* set SO_RCVTIMEO if timeout_ms > 0 otherwise O_NONBLOCK */ + lwip_setsockopt(n->socket, SOL_SOCKET, SO_RCVTIMEO, &timeout_ms, sizeof(int)); + lwip_fcntl(n->socket, F_SETFL, (timeout_ms) > 0 ? 0 : O_NONBLOCK); + int r = recv(n->socket, buffer, len, 0); + if(r == 0) { + r = -1; /* 0 indicates timeout */ } - else - { - // select fail - return -1; - } - return rcvd; + return r; } -int mqtt_esp_write(Network* n, unsigned char* buffer, int len, int timeout_ms) +static int mqtt_esp_write(Network* n, unsigned char* buffer, int len, int timeout_ms) { - struct timeval tv; - fd_set fdset; - int rc = 0; - - FD_ZERO(&fdset); - FD_SET(n->my_socket, &fdset); - tv.tv_sec = timeout_ms / 1000; - tv.tv_usec = (timeout_ms % 1000) * 1000; - rc = select(n->my_socket + 1, 0, &fdset, 0, &tv); - if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) - { - rc = send(n->my_socket, buffer, len, 0); + lwip_setsockopt(n->socket, SOL_SOCKET, SO_SNDTIMEO, &timeout_ms, sizeof(int)); + lwip_fcntl(n->socket, F_SETFL, (timeout_ms > 0) ? 0 : O_NONBLOCK); + int r = send(n->socket, buffer, len, 0); + if(r == 0) { + r = -1; /* 0 indicates timeout */ } - else - { - // select fail - return -1; - } - return rc; + return r; } - - void NewNetwork(Network* n) { - n->my_socket = -1; + n->socket = -1; n->mqttread = mqtt_esp_read; n->mqttwrite = mqtt_esp_write; } -static int host2addr(const char *hostname , struct in_addr *in) -{ - struct addrinfo hints, *servinfo, *p; - struct sockaddr_in *h; - int rv; - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - rv = getaddrinfo(hostname, 0 , &hints , &servinfo); - if (rv != 0) - { - return rv; - } - - // loop through all the results and get the first resolve - for (p = servinfo; p != 0; p = p->ai_next) - { - h = (struct sockaddr_in *)p->ai_addr; - in->s_addr = h->sin_addr.s_addr; - } - freeaddrinfo(servinfo); // all done with this structure - return 0; -} - - int ConnectNetwork(Network* n, const char* host, int port) { struct sockaddr_in addr; + ip_addr_t ipaddr; int ret; - if (host2addr(host, &(addr.sin_addr)) != 0) - { - return -1; + err_t e = netconn_gethostbyname(host, &ipaddr); + if(e) { + return e; } + inet_addr_from_ipaddr(&(addr.sin_addr), &ipaddr); addr.sin_family = AF_INET; addr.sin_port = htons(port); - n->my_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if( n->my_socket < 0 ) + ret = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); + if (ret < 0) { - // error - return -1; + return ret; } - ret = connect(n->my_socket, ( struct sockaddr *)&addr, sizeof(struct sockaddr_in)); - if( ret < 0 ) + n->socket = ret; + + ret = connect(n->socket, ( struct sockaddr *)&addr, sizeof(struct sockaddr_in)); + if (ret < 0) { - // error - close(n->my_socket); + close(n->socket); + n->socket = -1; return ret; } @@ -179,7 +122,7 @@ int ConnectNetwork(Network* n, const char* host, int port) int DisconnectNetwork(Network* n) { - close(n->my_socket); - n->my_socket = -1; + close(n->socket); + n->socket = -1; return 0; } diff --git a/extras/paho_mqtt_c/MQTTESP8266.h b/extras/paho_mqtt_c/MQTTESP8266.h index f29921e..d410c3c 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.h +++ b/extras/paho_mqtt_c/MQTTESP8266.h @@ -1,15 +1,8 @@ /** - ****************************************************************************** - * @file MQTTESP8266.h - * @author Baoshi - * @version 0.1 - * @date Sep 9, 2015 - * @brief Eclipse Paho ported to ESP8266 RTOS + * Paho Embedded MQTT client, esp-open-rtos support. * - ****************************************************************************** - * @copyright - * - * Copyright (c) 2015, Baoshi Zhu. All rights reserved. + * Copyright (c) 2015, Baoshi Zhu & 2016, Angus Gratton. + * All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE.txt file. * @@ -24,20 +17,22 @@ #include #include +#include + typedef struct Timer Timer; +typedef struct Network Network; + struct Timer { portTickType end_time; }; -typedef struct Network Network; - struct Network { - int my_socket; - int (*mqttread) (Network*, unsigned char*, int, int); - int (*mqttwrite) (Network*, unsigned char*, int, int); + int socket; + int (*mqttread) (Network*, unsigned char*, int, int); + int (*mqttwrite) (Network*, unsigned char*, int, int); }; char expired(Timer*); @@ -47,10 +42,6 @@ int left_ms(Timer*); void InitTimer(Timer*); -int mqtt_esp_read(Network*, unsigned char*, int, int); -int mqtt_esp_write(Network*, unsigned char*, int, int); -void mqtt_esp_disconnect(Network*); - void NewNetwork(Network* n); int ConnectNetwork(Network* n, const char* host, int port); int DisconnectNetwork(Network* n); From 37180024f48c80371d271384103ce4267746070a Mon Sep 17 00:00:00 2001 From: iosen Date: Tue, 21 Jun 2016 23:16:10 +1000 Subject: [PATCH 006/349] sntp: free the pbuf after sending the request Fixes a memory leak. --- extras/sntp/sntp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extras/sntp/sntp.c b/extras/sntp/sntp.c index 5654075..48b2f14 100644 --- a/extras/sntp/sntp.c +++ b/extras/sntp/sntp.c @@ -608,6 +608,8 @@ sntp_send_request(ip_addr_t *server_addr) sntp_initialize_request(sntpmsg); /* send request */ udp_sendto(sntp_pcb, p, server_addr, SNTP_PORT); + pbuf_free(p); + /* set up receive timeout: try next server or retry on timeout */ sys_timeout((u32_t)SNTP_RECV_TIMEOUT, sntp_try_next_server, NULL); #if SNTP_CHECK_RESPONSE >= 1 From ab795350fbe920ac86d34bccb9ac354c6d212c92 Mon Sep 17 00:00:00 2001 From: sheinz Date: Mon, 27 Jun 2016 18:06:06 +0300 Subject: [PATCH 007/349] Draft implementation of SPIFFS integration --- .gitmodules | 3 + examples/spiffs/Makefile | 9 ++ examples/spiffs/spiffs_example.c | 180 +++++++++++++++++++++ extras/spiffs/component.mk | 17 ++ extras/spiffs/esp_spiffs.c | 187 ++++++++++++++++++++++ extras/spiffs/esp_spiffs.h | 28 ++++ extras/spiffs/spiffs | 1 + extras/spiffs/spiffs_config.h | 263 +++++++++++++++++++++++++++++++ 8 files changed, 688 insertions(+) create mode 100644 examples/spiffs/Makefile create mode 100644 examples/spiffs/spiffs_example.c create mode 100644 extras/spiffs/component.mk create mode 100644 extras/spiffs/esp_spiffs.c create mode 100644 extras/spiffs/esp_spiffs.h create mode 160000 extras/spiffs/spiffs create mode 100644 extras/spiffs/spiffs_config.h diff --git a/.gitmodules b/.gitmodules index 7a3370e..00dadd8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ path = bootloader/rboot url = https://github.com/raburton/rboot.git +[submodule "extras/spiffs/spiffs"] + path = extras/spiffs/spiffs + url = https://github.com/pellepl/spiffs.git diff --git a/examples/spiffs/Makefile b/examples/spiffs/Makefile new file mode 100644 index 0000000..b342df7 --- /dev/null +++ b/examples/spiffs/Makefile @@ -0,0 +1,9 @@ +PROGRAM=spiffs_example +EXTRA_COMPONENTS = extras/spiffs +FLASH_SIZE = 32 + +# spiffs configuration +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +include ../../common.mk diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c new file mode 100644 index 0000000..226ee51 --- /dev/null +++ b/examples/spiffs/spiffs_example.c @@ -0,0 +1,180 @@ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp8266.h" + +#include "spiffs.h" +#include "esp_spiffs.h" + + +#define TEST_FILE_NAME_LEN 16 +#define TEST_FILES 32 +#define TEST_FILE_MAX_SIZE 8192 + +typedef struct { + char name[TEST_FILE_NAME_LEN]; + uint16_t size; + uint8_t first_data_byte; +} TestFile; + +static TestFile test_files[TEST_FILES]; + +inline static void fill_test_data(uint8_t *src, uint16_t size, uint8_t first_byte) +{ + while (size--) { + *src++ = first_byte++; + } +} + +static bool write_test_files() +{ + uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + sprintf(test_files[i].name, "file_%d.dat", i); + spiffs_file f = SPIFFS_open(&fs, test_files[i].name, + SPIFFS_CREAT|SPIFFS_RDWR|SPIFFS_TRUNC, 0); + if (f < 0) { + printf("Open file operation failed\n"); + result = false; + break; + } + test_files[i].size = rand() % TEST_FILE_MAX_SIZE; + test_files[i].first_data_byte = rand() % 256; + fill_test_data(buf, test_files[i].size, test_files[i].first_data_byte); + + printf("Writing file %s size=%d\n", test_files[i].name, + test_files[i].size); + int32_t written = SPIFFS_write(&fs, f, buf, test_files[i].size); + if (written != test_files[i].size) { + printf("Write file operation failed, written=%d\n", written); + result = false; + break; + } + SPIFFS_close(&fs, f); + } + free(buf); + return result; +} + +inline static bool verify_test_data(uint8_t *data, uint16_t size, + uint8_t first_byte) +{ + while (size--) { + if (*data++ != first_byte++) { + return false; + } + } + return true; +} + +static bool verify_test_files() +{ + uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + printf("Verifying file %s\n", test_files[i].name); + spiffs_file f = SPIFFS_open(&fs, test_files[i].name, SPIFFS_RDONLY, 0); + if (f < 0) { + printf("Open file operation failed\n"); + result = false; + break; + } + + int32_t n = SPIFFS_read(&fs, f, buf, test_files[i].size); + if (n != test_files[i].size) { + printf("Read file operation failed\n"); + result = false; + break; + } + + if (!verify_test_data(buf, test_files[i].size, + test_files[i].first_data_byte)) { + printf("Data verification failed\n"); + result = false; + break; + } + + SPIFFS_close(&fs, f); + } + + free(buf); + return result; +} + +static bool cleanup_test_files() +{ + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + printf("Removing file %s\n", test_files[i].name); + if (SPIFFS_remove(&fs, test_files[i].name) != SPIFFS_OK) { + printf("Remove file operation failed\n"); + result = false; + break; + } + } + return result; +} + +inline static void print_info() +{ + uint32_t total, used; + + SPIFFS_info(&fs, &total, &used); + + printf("FS total=%d bytes, used=%d bytes\n", total, used); + printf("FS %d %% used\n", 100 * used/total); + + // File system structure visualisation + // SPIFFS_vis(&fs); +} + +void test_task(void *pvParameters) +{ + bool result = true; + + esp_spiffs_mount(); + esp_spiffs_unmount(); // FS must be unmounted before formating + if (SPIFFS_format(&fs) == SPIFFS_OK) { + printf("Format complete\n"); + } else { + printf("Format failed\n"); + } + esp_spiffs_mount(); + + while (1) { + vTaskDelay(5000 / portTICK_RATE_MS); + + result = write_test_files(); + + if (result) { + result = verify_test_files(); + } + + print_info(); + + if (result) { + result = cleanup_test_files(); + } + + if (result) { + printf("Test passed!\n"); + } else { + printf("Test failed!\n"); + while (1) { + vTaskDelay(1); + } + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + xTaskCreate(test_task, (signed char *)"test_task", 1024, NULL, 2, NULL); +} diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk new file mode 100644 index 0000000..fcd5572 --- /dev/null +++ b/extras/spiffs/component.mk @@ -0,0 +1,17 @@ +# Component makefile for extras/spiffs + +SPIFFS_BASE_ADDR ?= 0x300000 +SPIFFS_SIZE ?= 0x100000 + +INC_DIRS += $(spiffs_ROOT) +INC_DIRS += $(spiffs_ROOT)spiffs/src + +# args for passing into compile rule generation +spiffs_SRC_DIR = $(spiffs_ROOT)spiffs/src +spiffs_SRC_DIR += $(spiffs_ROOT) + +spiffs_CFLAGS = $(CFLAGS) +spiffs_CFLAGS += -DSPIFFS_BASE_ADDR=$(SPIFFS_BASE_ADDR) +spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) + +$(eval $(call component_compile_rules,spiffs)) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c new file mode 100644 index 0000000..d6ec7d6 --- /dev/null +++ b/extras/spiffs/esp_spiffs.c @@ -0,0 +1,187 @@ +/** + * ESP8266 SPIFFS HAL configuration. + * + * Part of esp-open-rtos + * Copyright (c) 2016 sheinz https://github.com/sheinz + * MIT License + */ +#include "esp_spiffs.h" +#include "spiffs.h" +#include +#include + +spiffs fs; + +static void *work_buf = 0; +static void *fds_buf = 0; +static void *cache_buf = 0; + +/* + * Flash addresses and size alignment is a rip-off of Arduino implementation. + */ + +static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) +{ + uint32_t result = SPIFFS_OK; + uint32_t alignedBegin = (addr + 3) & (~3); + uint32_t alignedEnd = (addr + size) & (~3); + if (alignedEnd < alignedBegin) { + alignedEnd = alignedBegin; + } + + if (addr < alignedBegin) { + uint32_t nb = alignedBegin - addr; + uint32_t tmp; + if (sdk_spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + memcpy(dst, &tmp + 4 - nb, nb); + } + + if (alignedEnd != alignedBegin) { + if (sdk_spi_flash_read(alignedBegin, + (uint32_t*) (dst + alignedBegin - addr), + alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + if (addr + size > alignedEnd) { + uint32_t nb = addr + size - alignedEnd; + uint32_t tmp; + if (sdk_spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + + memcpy(dst + size - nb, &tmp, nb); + } + + return result; +} + +static const int UNALIGNED_WRITE_BUFFER_SIZE = 512; + +static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) +{ + uint32_t alignedBegin = (addr + 3) & (~3); + uint32_t alignedEnd = (addr + size) & (~3); + if (alignedEnd < alignedBegin) { + alignedEnd = alignedBegin; + } + + if (addr < alignedBegin) { + uint32_t ofs = alignedBegin - addr; + uint32_t nb = (size < ofs) ? size : ofs; + uint8_t tmp[4] __attribute__((aligned(4))) = {0xff, 0xff, 0xff, 0xff}; + memcpy(tmp + 4 - ofs, src, nb); + if (sdk_spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) + != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + if (alignedEnd != alignedBegin) { + uint32_t* srcLeftover = (uint32_t*) (src + alignedBegin - addr); + uint32_t srcAlign = ((uint32_t) srcLeftover) & 3; + if (!srcAlign) { + if (sdk_spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, + alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + else { + uint8_t buf[UNALIGNED_WRITE_BUFFER_SIZE]; + for (uint32_t sizeLeft = alignedEnd - alignedBegin; sizeLeft; ) { + size_t willCopy = sizeLeft < sizeof(buf) ? sizeLeft : sizeof(buf); + memcpy(buf, srcLeftover, willCopy); + + if (sdk_spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) + != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + + sizeLeft -= willCopy; + srcLeftover += willCopy; + alignedBegin += willCopy; + } + } + } + + if (addr + size > alignedEnd) { + uint32_t nb = addr + size - alignedEnd; + uint32_t tmp = 0xffffffff; + memcpy(&tmp, src + size - nb, nb); + + if (sdk_spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + return SPIFFS_OK; +} + +static s32_t esp_spiffs_erase(u32_t addr, u32_t size) +{ + if (addr % SPI_FLASH_SEC_SIZE) { + printf("Unaligned erase addr=%x\n", addr); + } + if (size % SPI_FLASH_SEC_SIZE) { + printf("Unaligned erase size=%d\n", size); + } + + const uint32_t sector = addr / SPI_FLASH_SEC_SIZE; + const uint32_t sectorCount = size / SPI_FLASH_SEC_SIZE; + + for (uint32_t i = 0; i < sectorCount; ++i) { + sdk_spi_flash_erase_sector(sector + i); + } + return SPIFFS_OK; +} + +int32_t esp_spiffs_mount() +{ + spiffs_config config = {0}; + + config.hal_read_f = esp_spiffs_read; + config.hal_write_f = esp_spiffs_write; + config.hal_erase_f = esp_spiffs_erase; + + size_t workBufSize = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); + size_t fdsBufSize = SPIFFS_buffer_bytes_for_filedescs(&fs, 5); + size_t cacheBufSize = SPIFFS_buffer_bytes_for_cache(&fs, 5); + + work_buf = malloc(workBufSize); + fds_buf = malloc(fdsBufSize); + cache_buf = malloc(cacheBufSize); + printf("spiffs memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", + workBufSize, fdsBufSize, cacheBufSize); + + int32_t err = SPIFFS_mount(&fs, &config, work_buf, fds_buf, fdsBufSize, + cache_buf, cacheBufSize, 0); + + if (err != SPIFFS_OK) { + printf("Error spiffs mount: %d\n", err); + } + + return err; +} + +void esp_spiffs_unmount() +{ + SPIFFS_unmount(&fs); + + free(work_buf); + free(fds_buf); + free(cache_buf); + + work_buf = 0; + fds_buf = 0; + cache_buf = 0; +} diff --git a/extras/spiffs/esp_spiffs.h b/extras/spiffs/esp_spiffs.h new file mode 100644 index 0000000..3022d51 --- /dev/null +++ b/extras/spiffs/esp_spiffs.h @@ -0,0 +1,28 @@ +/** + * ESP8266 SPIFFS HAL configuration. + * + * Part of esp-open-rtos + * Copyright (c) 2016 sheinz https://github.com/sheinz + * MIT License + */ +#ifndef __ESP_SPIFFS_H__ +#define __ESP_SPIFFS_H__ + +#include "spiffs.h" + +extern spiffs fs; + +/** + * Provide SPIFFS with all necessary configuration, allocate memory buffers + * and mount SPIFFS. + * + * Return SPIFFS return code. + */ +int32_t esp_spiffs_mount(); + +/** + * Unmount SPIFFS and free all allocated buffers. + */ +void esp_spiffs_unmount(); + +#endif // __ESP_SPIFFS_H__ diff --git a/extras/spiffs/spiffs b/extras/spiffs/spiffs new file mode 160000 index 0000000..c6e94fd --- /dev/null +++ b/extras/spiffs/spiffs @@ -0,0 +1 @@ +Subproject commit c6e94fdca5c1601b90c027167f8d453c48e482c4 diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h new file mode 100644 index 0000000..7b8c1a7 --- /dev/null +++ b/extras/spiffs/spiffs_config.h @@ -0,0 +1,263 @@ +/* + * spiffs_config.h + * + * Created on: Jul 3, 2013 + * Author: petera + */ + +#ifndef SPIFFS_CONFIG_H_ +#define SPIFFS_CONFIG_H_ + +// ----------- 8< ------------ +#include +#include +#include +#include +#include +#include +// #include // for vPortEnterCritical/vPortExitCritical +// ----------- >8 ------------ + +typedef signed int s32_t; +typedef unsigned int u32_t; +typedef signed short s16_t; +typedef unsigned short u16_t; +typedef signed char s8_t; +typedef unsigned char u8_t; + +// compile time switches + +// Set generic spiffs debug output call. +#ifndef SPIFFS_DBG +#define SPIFFS_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for garbage collecting. +#ifndef SPIFFS_GC_DBG +#define SPIFFS_GC_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for caching. +#ifndef SPIFFS_CACHE_DBG +#define SPIFFS_CACHE_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for system consistency checks. +#ifndef SPIFFS_CHECK_DBG +#define SPIFFS_CHECK_DBG(...) //printf(__VA_ARGS__) +#endif + +// Enable/disable API functions to determine exact number of bytes +// for filedescriptor and cache buffers. Once decided for a configuration, +// this can be disabled to reduce flash. +#ifndef SPIFFS_BUFFER_HELP +#define SPIFFS_BUFFER_HELP 1 +#endif + +// Enables/disable memory read caching of nucleus file system operations. +// If enabled, memory area must be provided for cache in SPIFFS_mount. +#ifndef SPIFFS_CACHE +#define SPIFFS_CACHE 1 +#endif +#if SPIFFS_CACHE +// Enables memory write caching for file descriptors in hydrogen +#ifndef SPIFFS_CACHE_WR +#define SPIFFS_CACHE_WR 1 +#endif + +// Enable/disable statistics on caching. Debug/test purpose only. +#ifndef SPIFFS_CACHE_STATS +#define SPIFFS_CACHE_STATS 0 +#endif +#endif + +// Always check header of each accessed page to ensure consistent state. +// If enabled it will increase number of reads, will increase flash. +#ifndef SPIFFS_PAGE_CHECK +#define SPIFFS_PAGE_CHECK 1 +#endif + +// Define maximum number of gc runs to perform to reach desired free pages. +#ifndef SPIFFS_GC_MAX_RUNS +#define SPIFFS_GC_MAX_RUNS 3 +#endif + +// Enable/disable statistics on gc. Debug/test purpose only. +#ifndef SPIFFS_GC_STATS +#define SPIFFS_GC_STATS 0 +#endif + +// Garbage collecting examines all pages in a block which and sums up +// to a block score. Deleted pages normally gives positive score and +// used pages normally gives a negative score (as these must be moved). +// To have a fair wear-leveling, the erase age is also included in score, +// whose factor normally is the most positive. +// The larger the score, the more likely it is that the block will +// picked for garbage collection. + +// Garbage collecting heuristics - weight used for deleted pages. +#ifndef SPIFFS_GC_HEUR_W_DELET +#define SPIFFS_GC_HEUR_W_DELET (5) +#endif +// Garbage collecting heuristics - weight used for used pages. +#ifndef SPIFFS_GC_HEUR_W_USED +#define SPIFFS_GC_HEUR_W_USED (-1) +#endif +// Garbage collecting heuristics - weight used for time between +// last erased and erase of this block. +#ifndef SPIFFS_GC_HEUR_W_ERASE_AGE +#define SPIFFS_GC_HEUR_W_ERASE_AGE (50) +#endif + +// Object name maximum length. Note that this length include the +// zero-termination character, meaning maximum string of characters +// can at most be SPIFFS_OBJ_NAME_LEN - 1. +#ifndef SPIFFS_OBJ_NAME_LEN +#define SPIFFS_OBJ_NAME_LEN (32) +#endif + +// Size of buffer allocated on stack used when copying data. +// Lower value generates more read/writes. No meaning having it bigger +// than logical page size. +#ifndef SPIFFS_COPY_BUFFER_STACK +#define SPIFFS_COPY_BUFFER_STACK (64) +#endif + +// Enable this to have an identifiable spiffs filesystem. This will look for +// a magic in all sectors to determine if this is a valid spiffs system or +// not on mount point. If not, SPIFFS_format must be called prior to mounting +// again. +#ifndef SPIFFS_USE_MAGIC +#define SPIFFS_USE_MAGIC (0) +#endif + +#if SPIFFS_USE_MAGIC +// Only valid when SPIFFS_USE_MAGIC is enabled. If SPIFFS_USE_MAGIC_LENGTH is +// enabled, the magic will also be dependent on the length of the filesystem. +// For example, a filesystem configured and formatted for 4 megabytes will not +// be accepted for mounting with a configuration defining the filesystem as 2 +// megabytes. +#ifndef SPIFFS_USE_MAGIC_LENGTH +#define SPIFFS_USE_MAGIC_LENGTH (0) +#endif +#endif + +// SPIFFS_LOCK and SPIFFS_UNLOCK protects spiffs from reentrancy on api level +// These should be defined on a multithreaded system + +// define this to enter a mutex if you're running on a multithreaded system +#ifndef SPIFFS_LOCK +#define SPIFFS_LOCK(fs) // vPortEnterCritical() +#endif +// define this to exit a mutex if you're running on a multithreaded system +#ifndef SPIFFS_UNLOCK +#define SPIFFS_UNLOCK(fs) // vPortExitCritical() +#endif + +// Enable if only one spiffs instance with constant configuration will exist +// on the target. This will reduce calculations, flash and memory accesses. +// Parts of configuration must be defined below instead of at time of mount. +#ifndef SPIFFS_SINGLETON +#define SPIFFS_SINGLETON 1 +#endif + +#if SPIFFS_SINGLETON +// Instead of giving parameters in config struct, singleton build must +// give parameters in defines below. +#ifndef SPIFFS_CFG_PHYS_SZ +#define SPIFFS_CFG_PHYS_SZ(ignore) (SPIFFS_SIZE) +#endif +#ifndef SPIFFS_CFG_PHYS_ERASE_SZ +#define SPIFFS_CFG_PHYS_ERASE_SZ(ignore) (4*1024) +#endif +#ifndef SPIFFS_CFG_PHYS_ADDR +#define SPIFFS_CFG_PHYS_ADDR(ignore) (SPIFFS_BASE_ADDR) +#endif +#ifndef SPIFFS_CFG_LOG_PAGE_SZ +#define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (256) +#endif +#ifndef SPIFFS_CFG_LOG_BLOCK_SZ +#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (4*1024) +#endif +#endif + +// Enable this if your target needs aligned data for index tables +#ifndef SPIFFS_ALIGNED_OBJECT_INDEX_TABLES +#define SPIFFS_ALIGNED_OBJECT_INDEX_TABLES 1 +#endif + +// Enable this if you want the HAL callbacks to be called with the spiffs struct +#ifndef SPIFFS_HAL_CALLBACK_EXTRA +#define SPIFFS_HAL_CALLBACK_EXTRA 0 +#endif + +// Enable this if you want to add an integer offset to all file handles +// (spiffs_file). This is useful if running multiple instances of spiffs on +// same target, in order to recognise to what spiffs instance a file handle +// belongs. +// NB: This adds config field fh_ix_offset in the configuration struct when +// mounting, which must be defined. +#ifndef SPIFFS_FILEHDL_OFFSET +#define SPIFFS_FILEHDL_OFFSET 0 +#endif + +// Enable this to compile a read only version of spiffs. +// This will reduce binary size of spiffs. All code comprising modification +// of the file system will not be compiled. Some config will be ignored. +// HAL functions for erasing and writing to spi-flash may be null. Cache +// can be disabled for even further binary size reduction (and ram savings). +// Functions modifying the fs will return SPIFFS_ERR_RO_NOT_IMPL. +// If the file system cannot be mounted due to aborted erase operation and +// SPIFFS_USE_MAGIC is enabled, SPIFFS_ERR_RO_ABORTED_OPERATION will be +// returned. +// Might be useful for e.g. bootloaders and such. +#ifndef SPIFFS_READ_ONLY +#define SPIFFS_READ_ONLY 0 +#endif + +// Set SPIFFS_TEST_VISUALISATION to non-zero to enable SPIFFS_vis function +// in the api. This function will visualize all filesystem using given printf +// function. +#ifndef SPIFFS_TEST_VISUALISATION +#define SPIFFS_TEST_VISUALISATION 1 +#endif +#if SPIFFS_TEST_VISUALISATION +#ifndef spiffs_printf +#define spiffs_printf(...) printf(__VA_ARGS__) +#endif +// spiffs_printf argument for a free page +#ifndef SPIFFS_TEST_VIS_FREE_STR +#define SPIFFS_TEST_VIS_FREE_STR "_" +#endif +// spiffs_printf argument for a deleted page +#ifndef SPIFFS_TEST_VIS_DELE_STR +#define SPIFFS_TEST_VIS_DELE_STR "/" +#endif +// spiffs_printf argument for an index page for given object id +#ifndef SPIFFS_TEST_VIS_INDX_STR +#define SPIFFS_TEST_VIS_INDX_STR(id) "i" +#endif +// spiffs_printf argument for a data page for given object id +#ifndef SPIFFS_TEST_VIS_DATA_STR +#define SPIFFS_TEST_VIS_DATA_STR(id) "d" +#endif +#endif + +// Types depending on configuration such as the amount of flash bytes +// given to spiffs file system in total (spiffs_file_system_size), +// the logical block size (log_block_size), and the logical page size +// (log_page_size) + +// Block index type. Make sure the size of this type can hold +// the highest number of all blocks - i.e. spiffs_file_system_size / log_block_size +typedef u16_t spiffs_block_ix; +// Page index type. Make sure the size of this type can hold +// the highest page number of all pages - i.e. spiffs_file_system_size / log_page_size +typedef u16_t spiffs_page_ix; +// Object id type - most significant bit is reserved for index flag. Make sure the +// size of this type can hold the highest object id on a full system, +// i.e. 2 + (spiffs_file_system_size / (2*log_page_size))*2 +typedef u16_t spiffs_obj_id; +// Object span index type. Make sure the size of this type can +// hold the largest possible span index on the system - +// i.e. (spiffs_file_system_size / log_page_size) - 1 +typedef u16_t spiffs_span_ix; + +#endif /* SPIFFS_CONFIG_H_ */ From 587c867d4bac6e49155b918f3c8c46f9a62e594b Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Tue, 28 Jun 2016 10:09:08 +1000 Subject: [PATCH 008/349] queue.h: Re-add the BSD Copyright notice to queue.h from Espressif's SDK. Thanks @pfalcon for the heads-up on this: https://groups.google.com/forum/#!topic/esp8266-re/I4iO3fM0mmA --- include/espressif/queue.h | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/include/espressif/queue.h b/include/espressif/queue.h index a760c8d..7725a3b 100644 --- a/include/espressif/queue.h +++ b/include/espressif/queue.h @@ -1,6 +1,61 @@ +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + #ifndef _SYS_QUEUE_H_ #define _SYS_QUEUE_H_ +/* + * Note: This header file comes to us from the Espressif + * SDK. Espressif adapted it from BSD's queue.h. The BSD copyright + * notice and the following extract from the explanatory statement + * were re-added by esp-open-rtos. + * + * FreeBSD version of this header: + * https://svnweb.freebsd.org/base/head/sys/sys/queue.h?view=markup + * + * **** + * + * A singly-linked list is headed by a single forward pointer. The elements + * are singly linked for minimum space and pointer manipulation overhead at + * the expense of O(n) removal for arbitrary elements. New elements can be + * added to the list after an existing element or at the head of the list. + * Elements being removed from the head of the list should use the explicit + * macro for this purpose for optimum efficiency. A singly-linked list may + * only be traversed in the forward direction. Singly-linked lists are ideal + * for applications with large datasets and few or no removals or for + * implementing a LIFO queue. + * + * For details on the use of these macros, see the queue(3) manual page. + * + */ + #define QMD_SAVELINK(name, link) #define TRASHIT(x) From 33b63d46a549dbafb4028b86ccc76008d879ca42 Mon Sep 17 00:00:00 2001 From: sheinz Date: Wed, 29 Jun 2016 00:47:14 +0300 Subject: [PATCH 009/349] Reverse engineered some spi_flash functions --- extras/spiffs/esp_spiffs.c | 157 +++++++++++++++++++++++++++++++++++-- 1 file changed, 149 insertions(+), 8 deletions(-) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index d6ec7d6..a2c1dd1 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -9,6 +9,9 @@ #include "spiffs.h" #include #include +#include "common_macros.h" +#include "FreeRTOS.h" +#include "esp/rom.h" spiffs fs; @@ -16,6 +19,144 @@ static void *work_buf = 0; static void *fds_buf = 0; static void *cache_buf = 0; + +// ROM functions +uint32_t SPI_read_data(sdk_flashchip_t *p, uint32_t dest_addr, void *src, + uint32_t size); +uint32_t SPI_page_program(sdk_flashchip_t *p, uint32_t dest_addr, void *dst, + uint32_t size); +uint32_t SPI_write_enable(sdk_flashchip_t *p); +uint32_t SPI_sector_erase(sdk_flashchip_t *p, uint32_t sector_addr); + + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIRead + */ +uint32_t IRAM spi_read(uint32_t dest_addr, void *src, uint32_t size) +{ + if (SPI_read_data(&sdk_flashchip, dest_addr, src, size)) { + return 1; + } else { + return 0; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_read + */ +uint32_t IRAM spi_flash_read(uint32_t dest_addr, void *src, uint32_t size) +{ + if (src) { + vPortEnterCritical(); + Cache_Read_Disable(); + uint32_t result = spi_read(dest_addr, src, size); + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + return result; + } else { + return 1; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIWrite + */ +uint32_t IRAM spi_write(uint32_t dest_addr, void *dst, uint32_t size) +{ + if (sdk_flashchip.chip_size < (dest_addr + size)) { + return 1; + } + + uint32_t write_bytes_to_page = sdk_flashchip.page_size - + (dest_addr % sdk_flashchip.page_size); + + if (size < write_bytes_to_page) { + if (SPI_page_program(&sdk_flashchip, dest_addr, dst, size)) { + return 1; + } else { + return 0; + } + } + + if (SPI_page_program(&sdk_flashchip, dest_addr, dst, write_bytes_to_page)) { + return 1; + } + + uint32_t offset = write_bytes_to_page; + uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; + for (uint8_t i = 0; i != pages_to_write; i++) { + if (SPI_page_program(&sdk_flashchip, dest_addr + offset, + dst + ((offset>>2)<<2), sdk_flashchip.page_size)) { + return 1; + } + offset += sdk_flashchip.page_size; + } + + if (SPI_page_program(&sdk_flashchip, dest_addr + offset, + dst + ((offset>>2)<<2), size - offset)) { + return 1; + } else { + return 0; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_write + */ +uint32_t IRAM spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size) +{ + if (dst) { + if (size & 0b11) { // not 4-byte aligned + size = size >> 2; + size = (size << 2) + 1; + } + vPortEnterCritical(); + Cache_Read_Disable(); + uint32_t result = spi_write(dest_addr, dst, size); + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + return result; + } else { + return 1; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIEraseSector + */ +uint32_t IRAM spi_erase_sector(uint32_t sector) +{ + if (sector >= (sdk_flashchip.chip_size / sdk_flashchip.sector_size)) { + return 1; + } + + if (SPI_write_enable(&sdk_flashchip)) { + return 1; + } + + if (SPI_sector_erase(&sdk_flashchip, sdk_flashchip.sector_size * sector)) { + return 1; + } + return 0; +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_erase_sector + */ +uint32_t IRAM spi_flash_erase_sector(uint32_t sector) +{ + vPortEnterCritical(); + Cache_Read_Disable(); + + uint32_t result = spi_erase_sector(sector); + + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + + return result; +} + + /* * Flash addresses and size alignment is a rip-off of Arduino implementation. */ @@ -32,7 +173,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) if (addr < alignedBegin) { uint32_t nb = alignedBegin - addr; uint32_t tmp; - if (sdk_spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -40,7 +181,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) } if (alignedEnd != alignedBegin) { - if (sdk_spi_flash_read(alignedBegin, + if (spi_flash_read(alignedBegin, (uint32_t*) (dst + alignedBegin - addr), alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); @@ -51,7 +192,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) if (addr + size > alignedEnd) { uint32_t nb = addr + size - alignedEnd; uint32_t tmp; - if (sdk_spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -77,7 +218,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t nb = (size < ofs) ? size : ofs; uint8_t tmp[4] __attribute__((aligned(4))) = {0xff, 0xff, 0xff, 0xff}; memcpy(tmp + 4 - ofs, src, nb); - if (sdk_spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) + if (spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -88,7 +229,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t* srcLeftover = (uint32_t*) (src + alignedBegin - addr); uint32_t srcAlign = ((uint32_t) srcLeftover) & 3; if (!srcAlign) { - if (sdk_spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, + if (spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -100,7 +241,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) size_t willCopy = sizeLeft < sizeof(buf) ? sizeLeft : sizeof(buf); memcpy(buf, srcLeftover, willCopy); - if (sdk_spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) + if (spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -118,7 +259,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t tmp = 0xffffffff; memcpy(&tmp, src + size - nb, nb); - if (sdk_spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -140,7 +281,7 @@ static s32_t esp_spiffs_erase(u32_t addr, u32_t size) const uint32_t sectorCount = size / SPI_FLASH_SEC_SIZE; for (uint32_t i = 0; i < sectorCount; ++i) { - sdk_spi_flash_erase_sector(sector + i); + spi_flash_erase_sector(sector + i); } return SPIFFS_OK; } From 04b119a61ee614d6475edfb3a1e84ce5989f0d55 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 30 Jun 2016 08:18:10 +1000 Subject: [PATCH 010/349] Seed libc PRNG from hardware RNG on reset --- core/app_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/app_main.c b/core/app_main.c index a38fb5f..ebf9e9a 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -21,6 +21,7 @@ #include "esp/spi_regs.h" #include "esp/dport_regs.h" #include "esp/wdev_regs.h" +#include "esp/hwrand.h" #include "os_version.h" #include "espressif/esp_common.h" @@ -378,6 +379,8 @@ static __attribute__((noinline)) void user_start_phase2(void) { init_networking(&phy_info, sdk_info.sta_mac_addr); + srand(hwrand()); /* seed libc rng */ + // Call gcc constructor functions void (**ctor)(void); for ( ctor = &__init_array_start; ctor != &__init_array_end; ++ctor) { From b71a7ad23758fd3bf23628ed687e5e0aabee7a26 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 30 Jun 2016 17:38:05 +0300 Subject: [PATCH 011/349] Use SPIFFS for POSIX file access. Draft. Not tested. --- .gitmodules | 3 ++ core/newlib_syscalls.c | 20 ++++++++--- examples/posix_fs/Makefile | 11 ++++++ examples/posix_fs/fs-test | 1 + examples/posix_fs/posix_fs_example.c | 41 ++++++++++++++++++++++ extras/spiffs/esp_spiffs.c | 51 ++++++++++++++++++++++++++++ 6 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 examples/posix_fs/Makefile create mode 160000 examples/posix_fs/fs-test create mode 100644 examples/posix_fs/posix_fs_example.c diff --git a/.gitmodules b/.gitmodules index 00dadd8..d3fc285 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,3 +14,6 @@ [submodule "extras/spiffs/spiffs"] path = extras/spiffs/spiffs url = https://github.com/pellepl/spiffs.git +[submodule "examples/posix_fs/fs-test"] + path = examples/posix_fs/fs-test + url = https://github.com/sheinz/fs-test diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 023872c..c8104a9 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -41,7 +41,7 @@ IRAM caddr_t _sbrk_r (struct _reent *r, int incr) } /* syscall implementation for stdio write to UART */ -long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +__attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, int len ) { if(fd != r->_stdout->_file) { r->_errno = EBADF; @@ -79,10 +79,20 @@ __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len /* Stub syscall implementations follow, to allow compiling newlib functions that pull these in via various codepaths */ -__attribute__((alias("syscall_returns_enosys"))) int _open_r(struct _reent *r, const char *pathname, int flags, int mode); -__attribute__((alias("syscall_returns_enosys"))) int _fstat_r(struct _reent *r, int fd, void *buf); -__attribute__((alias("syscall_returns_enosys"))) int _close_r(struct _reent *r, int fd); -__attribute__((alias("syscall_returns_enosys"))) off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence); +__attribute__((weak, alias("syscall_returns_enosys"))) +int _open_r(struct _reent *r, const char *pathname, int flags, int mode); + +__attribute__((weak, alias("syscall_returns_enosys"))) +int _close_r(struct _reent *r, int fd); + +__attribute__((weak, alias("syscall_returns_enosys"))) +int _unlink_r(struct _reent *r, const char *path); + +__attribute__((alias("syscall_returns_enosys"))) +int _fstat_r(struct _reent *r, int fd, void *buf); + +__attribute__((alias("syscall_returns_enosys"))) +off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence); /* Generic stub for any newlib syscall that fails with errno ENOSYS ("Function not implemented") and a return value equivalent to diff --git a/examples/posix_fs/Makefile b/examples/posix_fs/Makefile new file mode 100644 index 0000000..bf45ed7 --- /dev/null +++ b/examples/posix_fs/Makefile @@ -0,0 +1,11 @@ +PROGRAM=posix_fs_example +PROGRAM_EXTRA_SRC_FILES=./fs-test/fs_test.c + +EXTRA_COMPONENTS = extras/spiffs +FLASH_SIZE = 32 + +# spiffs configuration +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +include ../../common.mk diff --git a/examples/posix_fs/fs-test b/examples/posix_fs/fs-test new file mode 160000 index 0000000..983ed83 --- /dev/null +++ b/examples/posix_fs/fs-test @@ -0,0 +1 @@ +Subproject commit 983ed830a8d2bd1a3eaa586ed608530f9d29201e diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c new file mode 100644 index 0000000..7e3ad8f --- /dev/null +++ b/examples/posix_fs/posix_fs_example.c @@ -0,0 +1,41 @@ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp8266.h" +#include + +#include "esp_spiffs.h" +#include "spiffs.h" + +#include "fs-test/fs_test.h" + + +void test_task(void *pvParameters) +{ + esp_spiffs_mount(); + esp_spiffs_unmount(); // FS must be unmounted before formating + if (SPIFFS_format(&fs) == SPIFFS_OK) { + printf("Format complete\n"); + } else { + printf("Format failed\n"); + } + esp_spiffs_mount(); + + while (1) { + vTaskDelay(5000 / portTICK_RATE_MS); + + if (fs_test_run(10000)) { + printf("PASS\n"); + } else { + printf("FAIL\n"); + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + xTaskCreate(test_task, (signed char *)"test_task", 1024, NULL, 2, NULL); +} diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index d6ec7d6..194d697 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -9,6 +9,7 @@ #include "spiffs.h" #include #include +#include spiffs fs; @@ -185,3 +186,53 @@ void esp_spiffs_unmount() fds_buf = 0; cache_buf = 0; } + +/* syscall implementation for stdio write to UART */ +long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +{ + if(fd != r->_stdout->_file) { + return SPIFFS_write(&fs, (spiffs_file)fd, (char*)ptr, len); + } + for(int i = 0; i < len; i++) { + /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ + if(ptr[i] == '\r') + continue; + if(ptr[i] == '\n') + uart_putc(0, '\r'); + uart_putc(0, ptr[i]); + } + return len; +} + +/* syscall implementation for stdio read from UART */ +long _read_r( struct _reent *r, int fd, char *ptr, int len ) +{ + int ch, i; + + if(fd != r->_stdin->_file) { + return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); + } + uart_rxfifo_wait(0, 1); + for(i = 0; i < len; i++) { + ch = uart_getc_nowait(0); + if (ch < 0) break; + ptr[i] = ch; + } + return i; +} + +/* syscall implementation for stdio write to UART */ +int _open_r(struct _reent *r, const char *pathname, int flags, int mode) +{ + return SPIFFS_open(&fs, pathname, flags, mode); +} + +int _close_r(struct _reent *r, int fd) +{ + return SPIFFS_close(&fs, (spiffs_file)fd); +} + +int _unlink_r(struct _reent *r, const char *path) +{ + return SPIFFS_remove(&fs, path); +} From 0f9d991ba7fe84655de9f2a57c98bb89492533c5 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 30 Jun 2016 22:18:07 +0300 Subject: [PATCH 012/349] Fixed libc and SPIFFS integration. Test passes on ESP-12E module. --- examples/posix_fs/fs-test | 2 +- examples/posix_fs/posix_fs_example.c | 2 +- extras/spiffs/esp_spiffs.c | 31 +++++++++++++++++++++------- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/examples/posix_fs/fs-test b/examples/posix_fs/fs-test index 983ed83..218c523 160000 --- a/examples/posix_fs/fs-test +++ b/examples/posix_fs/fs-test @@ -1 +1 @@ -Subproject commit 983ed830a8d2bd1a3eaa586ed608530f9d29201e +Subproject commit 218c5235584429f407d619e5e35f90732ad505f3 diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c index 7e3ad8f..d84be5e 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/examples/posix_fs/posix_fs_example.c @@ -25,7 +25,7 @@ void test_task(void *pvParameters) while (1) { vTaskDelay(5000 / portTICK_RATE_MS); - if (fs_test_run(10000)) { + if (fs_test_run(1000)) { printf("PASS\n"); } else { printf("FAIL\n"); diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 194d697..4b5ef77 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -10,6 +10,7 @@ #include #include #include +#include spiffs fs; @@ -187,11 +188,15 @@ void esp_spiffs_unmount() cache_buf = 0; } -/* syscall implementation for stdio write to UART */ +#define FD_OFFSET 3 + +// This implementation replaces implementation in core/newlib_syscals.c long _write_r(struct _reent *r, int fd, const char *ptr, int len ) { if(fd != r->_stdout->_file) { - return SPIFFS_write(&fs, (spiffs_file)fd, (char*)ptr, len); + long ret = SPIFFS_write(&fs, (spiffs_file)(fd - FD_OFFSET), + (char*)ptr, len); + return ret; } for(int i = 0; i < len; i++) { /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ @@ -204,13 +209,14 @@ long _write_r(struct _reent *r, int fd, const char *ptr, int len ) return len; } -/* syscall implementation for stdio read from UART */ +// This implementation replaces implementation in core/newlib_syscals.c long _read_r( struct _reent *r, int fd, char *ptr, int len ) { int ch, i; if(fd != r->_stdin->_file) { - return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); + long ret = SPIFFS_read(&fs, (spiffs_file)(fd - FD_OFFSET), ptr, len); + return ret; } uart_rxfifo_wait(0, 1); for(i = 0; i < len; i++) { @@ -221,15 +227,26 @@ long _read_r( struct _reent *r, int fd, char *ptr, int len ) return i; } -/* syscall implementation for stdio write to UART */ int _open_r(struct _reent *r, const char *pathname, int flags, int mode) { - return SPIFFS_open(&fs, pathname, flags, mode); + uint32_t spiffs_flags = SPIFFS_RDONLY; + + if (flags & O_CREAT) spiffs_flags |= SPIFFS_CREAT; + if (flags & O_APPEND) spiffs_flags |= SPIFFS_APPEND; + if (flags & O_TRUNC) spiffs_flags |= SPIFFS_TRUNC; + if (flags & O_RDONLY) spiffs_flags |= SPIFFS_RDONLY; + if (flags & O_WRONLY) spiffs_flags |= SPIFFS_WRONLY; + + int ret = SPIFFS_open(&fs, pathname, spiffs_flags, mode); + if (ret > 0) { + return ret + FD_OFFSET; + } + return ret; } int _close_r(struct _reent *r, int fd) { - return SPIFFS_close(&fs, (spiffs_file)fd); + return SPIFFS_close(&fs, (spiffs_file)(fd - FD_OFFSET)); } int _unlink_r(struct _reent *r, const char *path) From 09a5ec062ac1432860bf4fe339b0a25e55049c85 Mon Sep 17 00:00:00 2001 From: baoshi Date: Tue, 5 Jul 2016 21:37:47 +0800 Subject: [PATCH 013/349] Handling MQTT read failure and send buffer length --- extras/paho_mqtt_c/MQTTClient.c | 32 ++++++++++++++++++++------------ extras/paho_mqtt_c/MQTTClient.h | 2 +- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/extras/paho_mqtt_c/MQTTClient.c b/extras/paho_mqtt_c/MQTTClient.c index b964250..4df3d8e 100644 --- a/extras/paho_mqtt_c/MQTTClient.c +++ b/extras/paho_mqtt_c/MQTTClient.c @@ -35,7 +35,7 @@ int sendPacket(MQTTClient* c, int length, Timer* timer) while (sent < length && !expired(timer)) { - rc = c->ipstack->mqttwrite(c->ipstack, &c->buf[sent], length, left_ms(timer)); + rc = c->ipstack->mqttwrite(c->ipstack, &c->buf[sent], length - sent, left_ms(timer)); if (rc < 0) // there was an error writing the data break; sent += rc; @@ -70,7 +70,9 @@ int decodePacket(MQTTClient* c, int* value, int timeout) } rc = c->ipstack->mqttread(c->ipstack, &i, 1, timeout); if (rc != 1) - goto exit; + { + goto exit; + } *value += (i & 127) * multiplier; multiplier *= 128; } while ((i & 128) != 0); @@ -79,6 +81,7 @@ exit: } +// Return packet type. If no packet avilable, return FAILURE, or READ_ERROR if timeout int readPacket(MQTTClient* c, Timer* timer) { int rc = FAILURE; @@ -89,20 +92,19 @@ int readPacket(MQTTClient* c, Timer* timer) /* 1. read the header byte. This has the packet type in it */ if (c->ipstack->mqttread(c->ipstack, c->readbuf, 1, left_ms(timer)) != 1) goto exit; - len = 1; /* 2. read the remaining length. This is variable in itself */ decodePacket(c, &rem_len, left_ms(timer)); len += MQTTPacket_encode(c->readbuf + 1, rem_len); /* put the original remaining length back into the buffer */ - /* 3. read the rest of the buffer using a callback to supply the rest of the data */ if (rem_len > 0 && (c->ipstack->mqttread(c->ipstack, c->readbuf + len, rem_len, left_ms(timer)) != rem_len)) + { + rc = READ_ERROR; goto exit; - + } header.byte = c->readbuf[0]; rc = header.bits.type; exit: - //dmsg_printf("readPacket=%d\r\n", rc); return rc; } @@ -212,10 +214,10 @@ exit: } -int cycle(MQTTClient* c, Timer* timer) +int cycle(MQTTClient* c, Timer* timer) { // read the socket, see what work is due - unsigned short packet_type = readPacket(c, timer); + int packet_type = readPacket(c, timer); int len = 0, rc = SUCCESS; @@ -266,11 +268,17 @@ int cycle(MQTTClient* c, Timer* timer) case PUBCOMP: break; case PINGRESP: - { - c->ping_outstanding = 0; - c->fail_count = 0; - } + { + c->ping_outstanding = 0; + c->fail_count = 0; break; + } + case READ_ERROR: + { + c->isconnected = 0; // we simulate a disconnect if reading error + rc = DISCONNECTED; // so that the outer layer will reconnect and recover + break; + } } if (c->isconnected) rc = keepalive(c); diff --git a/extras/paho_mqtt_c/MQTTClient.h b/extras/paho_mqtt_c/MQTTClient.h index f7ea424..876197c 100644 --- a/extras/paho_mqtt_c/MQTTClient.h +++ b/extras/paho_mqtt_c/MQTTClient.h @@ -27,7 +27,7 @@ enum QoS { QOS0, QOS1, QOS2 }; // all failure return codes must be negative -enum returnCode {DISCONNECTED = -3, BUFFER_OVERFLOW = -2, FAILURE = -1, SUCCESS = 0 }; +enum returnCode {READ_ERROR = -4, DISCONNECTED = -3, BUFFER_OVERFLOW = -2, FAILURE = -1, SUCCESS = 0 }; void NewTimer(Timer*); From 2ecbf1d584a89370b9bcc2fa8a53414bed3522d2 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sat, 10 Oct 2015 21:56:11 -0700 Subject: [PATCH 014/349] First batch of opensdk additions Replacements for: libmain/misc.o libmain/os_cpu_a.o libmain/spi_flash.o libmain/timers.o libmain/uart.o libmain/xtensa_context.o --- core/include/esp/rom.h | 17 ++- core/include/esp/spi_regs.h | 30 +++-- core/include/flashchip.h | 39 +++++++ core/include/xtensa_ops.h | 13 ++- include/espressif/spi_flash.h | 23 +--- include/etstimer.h | 39 +++++++ opensdk/component.mk | 11 ++ opensdk/libmain/misc.c | 59 ++++++++++ opensdk/libmain/os_cpu_a.c | 121 ++++++++++++++++++++ opensdk/libmain/spi_flash.c | 183 +++++++++++++++++++++++++++++++ opensdk/libmain/timers.c | 89 +++++++++++++++ opensdk/libmain/uart.c | 17 +++ opensdk/libmain/xtensa_context.S | 41 +++++++ parameters.mk | 4 +- 14 files changed, 642 insertions(+), 44 deletions(-) create mode 100644 core/include/flashchip.h create mode 100644 include/etstimer.h create mode 100644 opensdk/component.mk create mode 100644 opensdk/libmain/misc.c create mode 100644 opensdk/libmain/os_cpu_a.c create mode 100644 opensdk/libmain/spi_flash.c create mode 100644 opensdk/libmain/timers.c create mode 100644 opensdk/libmain/uart.c create mode 100644 opensdk/libmain/xtensa_context.S diff --git a/core/include/esp/rom.h b/core/include/esp/rom.h index c2f8759..5c41e46 100644 --- a/core/include/esp/rom.h +++ b/core/include/esp/rom.h @@ -5,7 +5,9 @@ */ #ifndef _ESP_ROM_H #define _ESP_ROM_H -#include + +#include "esp/types.h" +#include "flashchip.h" #ifdef __cplusplus extern "C" { @@ -21,8 +23,19 @@ void Cache_Read_Disable(void); */ void Cache_Read_Enable(uint32_t odd_even, uint32_t mb_count, uint32_t no_idea); +/* Low-level SPI flash read/write routines */ +int Enable_QMode(sdk_flashchip_t *chip); +int Disable_QMode(sdk_flashchip_t *chip); +int SPI_page_program(sdk_flashchip_t *chip, uint32_t dest_addr, uint32_t *src_addr, uint32_t size); +int SPI_read_data(sdk_flashchip_t *chip, uint32_t src_addr, uint32_t *dest_addr, uint32_t size); +int SPI_write_enable(sdk_flashchip_t *chip); +int SPI_sector_erase(sdk_flashchip_t *chip, uint32_t addr); +int SPI_read_status(sdk_flashchip_t *chip, uint32_t *status); +int SPI_write_status(sdk_flashchip_t *chip, uint32_t status); +int Wait_SPI_Idle(sdk_flashchip_t *chip); + #ifdef __cplusplus } #endif -#endif +#endif /* _ESP_ROM_H */ diff --git a/core/include/esp/spi_regs.h b/core/include/esp/spi_regs.h index 37eb113..83b61af 100644 --- a/core/include/esp/spi_regs.h +++ b/core/include/esp/spi_regs.h @@ -46,22 +46,7 @@ struct SPI_REGS { uint32_t volatile SLAVE1; // 0x34 uint32_t volatile SLAVE2; // 0x38 uint32_t volatile SLAVE3; // 0x3c - uint32_t volatile W0; // 0x40 - uint32_t volatile W1; // 0x44 - uint32_t volatile W2; // 0x48 - uint32_t volatile W3; // 0x4c - uint32_t volatile W4; // 0x50 - uint32_t volatile W5; // 0x54 - uint32_t volatile W6; // 0x58 - uint32_t volatile W7; // 0x5c - uint32_t volatile W8; // 0x60 - uint32_t volatile W9; // 0x64 - uint32_t volatile W10; // 0x68 - uint32_t volatile W11; // 0x6c - uint32_t volatile W12; // 0x70 - uint32_t volatile W13; // 0x74 - uint32_t volatile W14; // 0x78 - uint32_t volatile W15; // 0x7c + uint32_t volatile W[16]; // 0x40 - 0x7c uint32_t volatile _unused[28]; // 0x80 - 0xec uint32_t volatile EXT0; // 0xf0 uint32_t volatile EXT1; // 0xf4 @@ -73,6 +58,19 @@ _Static_assert(sizeof(struct SPI_REGS) == 0x100, "SPI_REGS is the wrong size"); /* Details for CMD register */ +#define SPI_CMD_READ BIT(31) +#define SPI_CMD_WRITE_ENABLE BIT(30) +#define SPI_CMD_WRITE_DISABLE BIT(29) +#define SPI_CMD_READ_ID BIT(28) +#define SPI_CMD_READ_SR BIT(27) +#define SPI_CMD_WRITE_SR BIT(26) +#define SPI_CMD_PP BIT(25) +#define SPI_CMD_SE BIT(24) +#define SPI_CMD_BE BIT(23) +#define SPI_CMD_CE BIT(22) +#define SPI_CMD_DP BIT(21) +#define SPI_CMD_RES BIT(20) +#define SPI_CMD_HPM BIT(19) #define SPI_CMD_USR BIT(18) /* Details for CTRL0 register */ diff --git a/core/include/flashchip.h b/core/include/flashchip.h new file mode 100644 index 0000000..c14d4a3 --- /dev/null +++ b/core/include/flashchip.h @@ -0,0 +1,39 @@ +/* flashchip.h + * + * sdk_flashchip_t structure used by the SDK and some bootrom routines + * + * This is in a separate include file because it's referenced by several other + * headers which are otherwise independent of each other. + * + * Part of esp-open-rtos + * Copyright (C) 2015 Alex Stewart and Angus Gratton + * BSD Licensed as described in the file LICENSE + */ + +#ifndef _FLASHCHIP_H +#define _FLASHCHIP_H + +/* SDK/bootrom uses this structure internally to account for flash size. + + chip_size field is initialised during startup from the flash size + saved in the image header (on the first 8 bytes of SPI flash). + + Other field are initialised to hardcoded values by the SDK. + + ** NOTE: This structure is passed to some bootrom routines and is therefore + fixed. Be very careful if you want to change it that you do not break + things. ** + + Based on RE work by @foogod at + http://esp8266-re.foogod.com/wiki/Flashchip_%28IoT_RTOS_SDK_0.9.9%29 +*/ +typedef struct { + uint32_t device_id; + uint32_t chip_size; /* in bytes */ + uint32_t block_size; /* in bytes */ + uint32_t sector_size; /* in bytes */ + uint32_t page_size; /* in bytes */ + uint32_t status_mask; +} sdk_flashchip_t; + +#endif /* _FLASHCHIP_H */ diff --git a/core/include/xtensa_ops.h b/core/include/xtensa_ops.h index 52eba2a..6951869 100644 --- a/core/include/xtensa_ops.h +++ b/core/include/xtensa_ops.h @@ -11,9 +11,6 @@ #ifndef _XTENSA_OPS_H #define _XTENSA_OPS_H -// GCC macros for reading, writing, and exchanging Xtensa processor special -// registers: - /* Read stack pointer to variable. * * Note that the compiler will push a stack frame (minimum 16 bytes) @@ -28,8 +25,18 @@ */ #define RETADDR(var) asm volatile ("mov %0, a0" : "=r" (var)) +// GCC macros for reading, writing, and exchanging Xtensa processor special +// registers: + #define RSR(var, reg) asm volatile ("rsr %0, " #reg : "=r" (var)); #define WSR(var, reg) asm volatile ("wsr %0, " #reg : : "r" (var)); #define XSR(var, reg) asm volatile ("xsr %0, " #reg : "+r" (var)); +// GCC macros for performing associated "*sync" opcodes + +#define ISYNC() asm volatile ( "isync" ) +#define RSYNC() asm volatile ( "rsync" ) +#define ESYNC() asm volatile ( "esync" ) +#define DSYNC() asm volatile ( "dsync" ) + #endif /* _XTENSA_OPS_H */ diff --git a/include/espressif/spi_flash.h b/include/espressif/spi_flash.h index 44c8677..f08cda9 100644 --- a/include/espressif/spi_flash.h +++ b/include/espressif/spi_flash.h @@ -6,6 +6,8 @@ #ifndef __SPI_FLASH_H__ #define __SPI_FLASH_H__ +#include "flashchip.h" + #ifdef __cplusplus extern "C" { #endif @@ -44,29 +46,8 @@ sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, const void *src, uin */ sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, void *des, uint32_t size); - -/* SDK uses this structure internally to account for flash size. - - chip_size field is initialised during startup from the flash size - saved in the image header (on the first 8 bytes of SPI flash). - - Other field are initialised to hardcoded values by the SDK. - - Based on RE work by @foogod at - http://esp8266-re.foogod.com/wiki/Flashchip_%28IoT_RTOS_SDK_0.9.9%29 -*/ -typedef struct { - uint32_t device_id; - uint32_t chip_size; /* in bytes */ - uint32_t block_size; /* in bytes */ - uint32_t sector_size; /* in bytes */ - uint32_t page_size; /* in bytes */ - uint32_t status_mask; -} sdk_flashchip_t; - extern sdk_flashchip_t sdk_flashchip; - #ifdef __cplusplus } #endif diff --git a/include/etstimer.h b/include/etstimer.h new file mode 100644 index 0000000..bcc914a --- /dev/null +++ b/include/etstimer.h @@ -0,0 +1,39 @@ +/* Structures and constants used by some SDK routines + * + * Part of esp-open-rtos + * Copyright (C) 2015 Superhouse Automation Pty Ltd + * BSD Licensed as described in the file LICENSE + */ + +/* Note: The following definitions are normally found (in the non-RTOS SDK) in + * the ets_sys.h distributed by Espressif. Unfortunately, they are not found + * anywhere in the RTOS SDK headers, and differ substantially from the non-RTOS + * versions, so the structures defined here had to be obtained by careful + * examination of the code found in the Espressif RTOS SDK. + */ + +/* Note also: These cannot be included in esp8266/ets_sys.h, because it is + * included from FreeRTOS.h, creating an (unnecessary) circular dependency. + * They have therefore been put into their own header file instead. + */ + +#ifndef _ETSTIMER_H +#define _ETSTIMER_H + +#include "FreeRTOS.h" +#include "timers.h" +#include "esp/types.h" + +typedef void ETSTimerFunc(void *); + +typedef struct ETSTimer_st { + struct ETSTimer_st *timer_next; + xTimerHandle timer_handle; + uint32_t _unknown; + uint32_t timer_ms; + ETSTimerFunc *timer_func; + bool timer_repeat; + void *timer_arg; +} ETSTimer; + +#endif /* _ETSTIMER_H */ diff --git a/opensdk/component.mk b/opensdk/component.mk new file mode 100644 index 0000000..26fa5ad --- /dev/null +++ b/opensdk/component.mk @@ -0,0 +1,11 @@ +# Component makefile for "open sdk libs" + +# args for passing into compile rule generation +opensdk_libmain_ROOT = $(opensdk_libmain_DEFAULT_ROOT)libmain +opensdk_libmain_INC_DIR = +opensdk_libmain_SRC_DIR = $(opensdk_libmain_ROOT) +opensdk_libmain_EXTRA_SRC_FILES = + +opensdk_libmain_CFLAGS = $(CFLAGS) + +$(eval $(call component_compile_rules,opensdk_libmain)) diff --git a/opensdk/libmain/misc.c b/opensdk/libmain/misc.c new file mode 100644 index 0000000..25a059d --- /dev/null +++ b/opensdk/libmain/misc.c @@ -0,0 +1,59 @@ +#include "espressif/esp_misc.h" +#include "esp/gpio_regs.h" +#include "esp/rtc_regs.h" +#include "sdk_internal.h" +#include "xtensa/hal.h" + +static int cpu_freq = 80; + +void (*sdk__putc1)(char); + +int IRAM sdk_os_get_cpu_frequency(void) { + return cpu_freq; +} + +void sdk_os_update_cpu_frequency(int freq) { + cpu_freq = freq; +} + +void sdk_ets_update_cpu_frequency(int freq) __attribute__ (( alias ("sdk_os_update_cpu_frequency") )); + +void sdk_os_delay_us(uint16_t us) { + uint32_t start_ccount = xthal_get_ccount(); + uint32_t delay_ccount = cpu_freq * us; + while (xthal_get_ccount() - start_ccount < delay_ccount) {} +} + +void sdk_ets_delay_us(uint16_t us) __attribute__ (( alias ("sdk_os_delay_us") )); + +void sdk_os_install_putc1(void (*p)(char)) { + sdk__putc1 = p; +} + +void sdk_os_putc(char c) { + sdk__putc1(c); +} + +void sdk_gpio_output_set(uint32_t set_mask, uint32_t clear_mask, uint32_t enable_mask, uint32_t disable_mask) { + GPIO.OUT_SET = set_mask; + GPIO.OUT_CLEAR = clear_mask; + GPIO.ENABLE_OUT_SET = enable_mask; + GPIO.ENABLE_OUT_CLEAR = disable_mask; +} + +uint8_t sdk_rtc_get_reset_reason(void) { + uint8_t reason; + + reason = FIELD2VAL(RTC_RESET_REASON1_CODE, RTC.RESET_REASON1); + if (reason == 5) { + if (FIELD2VAL(RTC_RESET_REASON2_CODE, RTC.RESET_REASON2) == 1) { + reason = 6; + } else { + if (FIELD2VAL(RTC_RESET_REASON2_CODE, RTC.RESET_REASON2) != 8) { + reason = 0; + } + } + } + RTC.RESET_REASON0 &= ~RTC_RESET_REASON0_SOMETHING; + return reason; +} diff --git a/opensdk/libmain/os_cpu_a.c b/opensdk/libmain/os_cpu_a.c new file mode 100644 index 0000000..4841ebe --- /dev/null +++ b/opensdk/libmain/os_cpu_a.c @@ -0,0 +1,121 @@ +#include "esp/types.h" +#include "FreeRTOS.h" +#include "task.h" +#include "xtensa_ops.h" +#include "common_macros.h" + +// xPortSysTickHandle is defined in FreeRTOS/Source/portable/esp8266/port.c but +// does not exist in any header files. +void xPortSysTickHandle(void); + +/* The following "functions" manipulate the stack at a low level and thus cannot be coded directly in C */ + +void IRAM vPortYield(void) { + asm(" wsr a0, excsave1 \n\ + addi sp, sp, -80 \n\ + s32i a0, sp, 4 \n\ + addi a0, sp, 80 \n\ + s32i a0, sp, 16 \n\ + rsr a0, ps \n\ + s32i a0, sp, 8 \n\ + rsr a0, excsave1 \n\ + s32i a0, sp, 12 \n\ + movi a0, _xt_user_exit \n\ + s32i a0, sp, 0 \n\ + call0 sdk__xt_int_enter \n\ + call0 vPortEnterCritical \n\ + call0 vTaskSwitchContext \n\ + call0 vPortExitCritical \n\ + call0 sdk__xt_int_exit \n\ + "); +} + +void IRAM sdk__xt_int_enter(void) { + asm(" s32i a12, sp, 60 \n\ + s32i a13, sp, 64 \n\ + mov a12, a0 \n\ + call0 sdk__xt_context_save \n\ + movi a0, pxCurrentTCB \n\ + l32i a0, a0, 0 \n\ + s32i sp, a0, 0 \n\ + mov a0, a12 \n\ + "); +} + +void IRAM sdk__xt_int_exit(void) { + asm(" s32i a14, sp, 68 \n\ + s32i a15, sp, 72 \n\ + movi sp, pxCurrentTCB \n\ + l32i sp, sp, 0 \n\ + l32i sp, sp, 0 \n\ + movi a14, pxCurrentTCB \n\ + l32i a14, a14, 0 \n\ + addi a15, sp, 80 \n\ + s32i a15, a14, 0 \n\ + call0 sdk__xt_context_restore \n\ + l32i a14, sp, 68 \n\ + l32i a15, sp, 72 \n\ + l32i a0, sp, 0 \n\ + "); +} + +void IRAM sdk__xt_timer_int(void) { + uint32_t trigger_ccount; + uint32_t current_ccount; + uint32_t ccount_interval = portTICK_RATE_MS * 80000; //FIXME + + do { + RSR(trigger_ccount, ccompare0); + WSR(trigger_ccount + ccount_interval, ccompare0); + ESYNC(); + xPortSysTickHandle(); + ESYNC(); + RSR(current_ccount, ccount); + } while (current_ccount - trigger_ccount > ccount_interval); +} + +void IRAM sdk__xt_timer_int1(void) { + vTaskSwitchContext(); +} + +#define INTENABLE_CCOMPARE BIT(6) + +void IRAM sdk__xt_tick_timer_init(void) { + uint32_t ints_enabled; + uint32_t current_ccount; + uint32_t ccount_interval = portTICK_RATE_MS * 80000; //FIXME + + RSR(current_ccount, ccount); + WSR(current_ccount + ccount_interval, ccompare0); + ints_enabled = 0; + XSR(ints_enabled, intenable); + WSR(ints_enabled | INTENABLE_CCOMPARE, intenable); +} + +void IRAM sdk__xt_isr_unmask(uint32_t mask) { + uint32_t ints_enabled; + + ints_enabled = 0; + XSR(ints_enabled, intenable); + WSR(ints_enabled | mask, intenable); +} + +void IRAM sdk__xt_isr_mask(uint32_t mask) { + uint32_t ints_enabled; + + ints_enabled = 0; + XSR(ints_enabled, intenable); + WSR(ints_enabled & mask, intenable); +} + +uint32_t IRAM sdk__xt_read_ints(void) { + uint32_t ints_enabled; + + RSR(ints_enabled, intenable); + return ints_enabled; +} + +void IRAM sdk__xt_clear_ints(uint32_t mask) { + WSR(mask, intclear); +} + diff --git a/opensdk/libmain/spi_flash.c b/opensdk/libmain/spi_flash.c new file mode 100644 index 0000000..2915c79 --- /dev/null +++ b/opensdk/libmain/spi_flash.c @@ -0,0 +1,183 @@ +#include "FreeRTOS.h" +#include "common_macros.h" +#include "esp/spi_regs.h" +#include "esp/rom.h" +#include "sdk_internal.h" +#include "espressif/spi_flash.h" + +sdk_flashchip_t sdk_flashchip = { + 0x001640ef, // device_id + 4 * 1024 * 1024, // chip_size + 65536, // block_size + 4096, // sector_size + 256, // page_size + 0x0000ffff, // status_mask +}; + +// NOTE: This routine appears to be completely unused in the SDK + +int IRAM sdk_SPIReadModeCnfig(uint32_t mode) { + uint32_t ctrl_bits; + + SPI(0).CTRL0 &= ~(SPI_CTRL0_FASTRD_MODE | SPI_CTRL0_DOUT_MODE | SPI_CTRL0_QOUT_MODE | SPI_CTRL0_DIO_MODE | SPI_CTRL0_QIO_MODE); + if (mode == 0) { + ctrl_bits = SPI_CTRL0_FASTRD_MODE | SPI_CTRL0_QIO_MODE; + } else if (mode == 1) { + ctrl_bits = SPI_CTRL0_FASTRD_MODE | SPI_CTRL0_QOUT_MODE; + } else if (mode == 2) { + ctrl_bits = SPI_CTRL0_FASTRD_MODE | SPI_CTRL0_DIO_MODE; + } else if (mode == 3) { + ctrl_bits = SPI_CTRL0_FASTRD_MODE | SPI_CTRL0_DOUT_MODE; + } else if (mode == 4) { + ctrl_bits = SPI_CTRL0_FASTRD_MODE; + } else { + ctrl_bits = 0; + } + if (mode == 0 || mode == 1) { + Enable_QMode(&sdk_flashchip); + } else { + Disable_QMode(&sdk_flashchip); + } + SPI(0).CTRL0 |= ctrl_bits; + return 0; +} + +sdk_SpiFlashOpResult IRAM sdk_SPIWrite(uint32_t des_addr, uint32_t *src_addr, uint32_t size) { + uint32_t first_page_portion; + uint32_t pos; + uint32_t full_pages; + uint32_t bytes_remaining; + + if (des_addr + size <= sdk_flashchip.chip_size) { + first_page_portion = sdk_flashchip.page_size - (des_addr % sdk_flashchip.page_size); + if (size < first_page_portion) { + if (SPI_page_program(&sdk_flashchip, des_addr, src_addr, size)) { + return SPI_FLASH_RESULT_ERR; + } else { + return SPI_FLASH_RESULT_OK; + } + } + } else { + return SPI_FLASH_RESULT_ERR; + } + if (SPI_page_program(&sdk_flashchip, des_addr, src_addr, first_page_portion)) { + return SPI_FLASH_RESULT_ERR; + } + pos = first_page_portion; + bytes_remaining = size - first_page_portion; + full_pages = bytes_remaining / sdk_flashchip.page_size; + if (full_pages) { + for (int i = 0; i != full_pages; i++) { + if (SPI_page_program(&sdk_flashchip, des_addr + pos, src_addr + (pos / 4), sdk_flashchip.page_size)) { + return SPI_FLASH_RESULT_ERR; + } + pos += sdk_flashchip.page_size; + } + bytes_remaining = size - pos; + } + if (SPI_page_program(&sdk_flashchip, des_addr + pos, src_addr + (pos / 4), bytes_remaining)) { + return SPI_FLASH_RESULT_ERR; + } + return SPI_FLASH_RESULT_OK; +} + +sdk_SpiFlashOpResult IRAM sdk_SPIRead(uint32_t src_addr, uint32_t *des_addr, uint32_t size) { + if (SPI_read_data(&sdk_flashchip, src_addr, des_addr, size)) { + return SPI_FLASH_RESULT_ERR; + } else { + return SPI_FLASH_RESULT_OK; + } +} + +sdk_SpiFlashOpResult IRAM sdk_SPIEraseSector(uint16_t sec) { + if (sec >= sdk_flashchip.chip_size / sdk_flashchip.sector_size) { + return SPI_FLASH_RESULT_ERR; + } + if (SPI_write_enable(&sdk_flashchip)) { + return SPI_FLASH_RESULT_ERR; + } + if (SPI_sector_erase(&sdk_flashchip, sdk_flashchip.sector_size * sec)) { + return SPI_FLASH_RESULT_ERR; + } + return SPI_FLASH_RESULT_OK; +} + +uint32_t IRAM sdk_spi_flash_get_id(void) { + uint32_t result; + + portENTER_CRITICAL(); + Cache_Read_Disable(); + Wait_SPI_Idle(&sdk_flashchip); + SPI(0).W[0] = 0; + SPI(0).CMD = SPI_CMD_READ_ID; + while (SPI(0).CMD != 0) {} + result = SPI(0).W[0] & 0x00ffffff; + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + +sdk_SpiFlashOpResult IRAM sdk_spi_flash_read_status(uint32_t *status) { + sdk_SpiFlashOpResult result; + + portENTER_CRITICAL(); + Cache_Read_Disable(); + result = SPI_read_status(&sdk_flashchip, status); + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + +sdk_SpiFlashOpResult IRAM sdk_spi_flash_write_status(uint32_t status) { + sdk_SpiFlashOpResult result; + + portENTER_CRITICAL(); + Cache_Read_Disable(); + result = SPI_write_status(&sdk_flashchip, status); + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + +sdk_SpiFlashOpResult IRAM sdk_spi_flash_erase_sector(uint16_t sec) { + sdk_SpiFlashOpResult result; + + portENTER_CRITICAL(); + Cache_Read_Disable(); + result = sdk_SPIEraseSector(sec); + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + +sdk_SpiFlashOpResult IRAM sdk_spi_flash_write(uint32_t des_addr, uint32_t *src_addr, uint32_t size) { + sdk_SpiFlashOpResult result; + + if (!src_addr) { + return SPI_FLASH_RESULT_ERR; + } + if (size & 3) { + size = (size & ~3) + 4; + } + portENTER_CRITICAL(); + Cache_Read_Disable(); + result = sdk_SPIWrite(des_addr, src_addr, size); + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + +sdk_SpiFlashOpResult IRAM sdk_spi_flash_read(uint32_t src_addr, uint32_t *des_addr, uint32_t size) { + sdk_SpiFlashOpResult result; + + if (!des_addr) { + return SPI_FLASH_RESULT_ERR; + } + portENTER_CRITICAL(); + Cache_Read_Disable(); + result = sdk_SPIRead(src_addr, des_addr, size); + Cache_Read_Enable(0, 0, 1); + portEXIT_CRITICAL(); + return result; +} + diff --git a/opensdk/libmain/timers.c b/opensdk/libmain/timers.c new file mode 100644 index 0000000..1359fc1 --- /dev/null +++ b/opensdk/libmain/timers.c @@ -0,0 +1,89 @@ +#include "etstimer.h" + +struct timer_list_st { + struct timer_list_st *next; + ETSTimer *timer; +}; + +static struct timer_list_st *timer_list; +static uint8_t armed_timer_count; + +void sdk_os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg) { + struct timer_list_st *entry = 0; + struct timer_list_st *new_entry; + struct timer_list_st **tailptr; + + if (timer_list) { + for (entry = timer_list; ; entry = entry->next) { + if (entry->timer == ptimer) { + if (ptimer->timer_arg == parg && ptimer->timer_func == pfunction) { + return; + } + if (ptimer->timer_handle) { + if (!xTimerDelete(ptimer->timer_handle, 50)) { + printf("Timer Delete Failed\n"); + } + armed_timer_count--; + } + ptimer->timer_func = pfunction; + ptimer->timer_arg = parg; + ptimer->timer_handle = 0; + ptimer->timer_ms = 0; + return; + } + if (!entry->next) { + break; + } + } + } + ptimer->timer_func = pfunction; + ptimer->timer_arg = parg; + ptimer->timer_handle = 0; + ptimer->timer_ms = 0; + new_entry = (struct timer_list_st *)pvPortMalloc(8); + new_entry->timer = ptimer; + new_entry->next = 0; + tailptr = &entry->next; + if (!timer_list) { + tailptr = &timer_list; + } + *tailptr = new_entry; +} + +void sdk_os_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag) { + if (!ptimer->timer_handle) { + ptimer->timer_repeat = repeat_flag; + ptimer->timer_ms = milliseconds; + ptimer->timer_handle = xTimerCreate(0, milliseconds/10, repeat_flag, ptimer->timer_arg, ptimer->timer_func); + armed_timer_count++; + if (!ptimer->timer_handle) { + //FIXME: should print an error? (original code doesn't) + return; + } + } + if (ptimer->timer_repeat != repeat_flag) { + ptimer->timer_repeat = repeat_flag; + // FIXME: This is wrong. The original code is directly modifying + // internal FreeRTOS structures to try to change the uxAutoReload of an + // existing timer. The correct way to do this is probably to use + // xTimerDelete and then xTimerCreate to recreate the timer with a + // different uxAutoReload setting. + ((uint32_t *)ptimer->timer_handle)[7] = repeat_flag; + } + if (ptimer->timer_ms != milliseconds) { + ptimer->timer_ms = milliseconds; + xTimerChangePeriod(ptimer->timer_handle, milliseconds/10, 10); + } + if (!xTimerStart(ptimer->timer_handle, 50)) { + printf("Timer Start Failed\n"); + } +} + +void sdk_os_timer_disarm(ETSTimer *ptimer) { + if (ptimer->timer_handle) { + if (!xTimerStop(ptimer->timer_handle, 50)) { + printf("Timer Stop Failed\n"); + } + } +} + diff --git a/opensdk/libmain/uart.c b/opensdk/libmain/uart.c new file mode 100644 index 0000000..25ae961 --- /dev/null +++ b/opensdk/libmain/uart.c @@ -0,0 +1,17 @@ +#include "espressif/sdk_private.h" +#include "esp/uart_regs.h" + +void sdk_uart_buff_switch(void) { + /* No-Op */ +} + +void sdk_uart_div_modify(uint32_t uart_no, uint32_t new_divisor) { + UART(uart_no).CLOCK_DIVIDER = new_divisor; + UART(uart_no).CONF0 |= (UART_CONF0_TXFIFO_RESET | UART_CONF0_RXFIFO_RESET); + UART(uart_no).CONF0 &= ~(UART_CONF0_TXFIFO_RESET | UART_CONF0_RXFIFO_RESET); +} + +void sdk_Uart_Init(void) { + /* No-Op */ +} + diff --git a/opensdk/libmain/xtensa_context.S b/opensdk/libmain/xtensa_context.S new file mode 100644 index 0000000..511877e --- /dev/null +++ b/opensdk/libmain/xtensa_context.S @@ -0,0 +1,41 @@ + .section .iram1.text, "ax", @progbits + + .balign 4 + .global sdk__xt_context_save + .type sdk__xt_context_save, @function +sdk__xt_context_save: + + s32i a2, sp, 20 + s32i a3, sp, 24 + s32i a4, sp, 28 + s32i a5, sp, 32 + s32i a6, sp, 36 + s32i a7, sp, 40 + s32i a8, sp, 44 + s32i a9, sp, 48 + s32i a10, sp, 52 + s32i a11, sp, 56 + rsr a3, sar + s32i a3, sp, 76 + ret + + .balign 4 + .global sdk__xt_context_restore + .type sdk__xt_context_restore, @function +sdk__xt_context_restore: + l32i a3, sp, 76 + l32i a2, sp, 20 + wsr a3, sar + l32i a3, sp, 24 + l32i a4, sp, 28 + l32i a5, sp, 32 + l32i a6, sp, 36 + l32i a7, sp, 40 + l32i a8, sp, 44 + l32i a9, sp, 48 + l32i a10, sp, 52 + l32i a11, sp, 56 + l32i a12, sp, 60 + l32i a13, sp, 64 + ret + diff --git a/parameters.mk b/parameters.mk index e750e83..f14a26b 100644 --- a/parameters.mk +++ b/parameters.mk @@ -60,7 +60,7 @@ OBJDUMP = $(CROSS)objdump # Source components to compile and link. Each of these are subdirectories # of the root, with a 'component.mk' file. -COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core +COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core opensdk # binary esp-iot-rtos SDK libraries to link. These are pre-processed prior to linking. SDK_LIBS ?= main net80211 phy pp wpa @@ -114,7 +114,7 @@ else ifeq ($(FLAVOR),sdklike) # the output of the compiler used to build the SDK libs (for comparison of # disassemblies when coding replacement routines). It is not normally # intended to be used otherwise. - CFLAGS += -O2 -Os -fno-inline -fno-ipa-cp -fno-toplevel-reorder + CFLAGS += -O2 -Os -fno-inline -fno-ipa-cp -fno-toplevel-reorder -fno-caller-saves -fconserve-stack LDFLAGS += -O2 else C_CXX_FLAGS += -g -O2 From eee4a3660cd7f52776b02685294dd88ce7712160 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Tue, 22 Mar 2016 16:26:53 -0700 Subject: [PATCH 015/349] Rename opensdk dir to open_esplibs --- {opensdk => open_esplibs}/component.mk | 0 {opensdk => open_esplibs}/libmain/misc.c | 0 {opensdk => open_esplibs}/libmain/os_cpu_a.c | 0 {opensdk => open_esplibs}/libmain/spi_flash.c | 0 {opensdk => open_esplibs}/libmain/timers.c | 0 {opensdk => open_esplibs}/libmain/uart.c | 0 {opensdk => open_esplibs}/libmain/xtensa_context.S | 0 parameters.mk | 2 +- 8 files changed, 1 insertion(+), 1 deletion(-) rename {opensdk => open_esplibs}/component.mk (100%) rename {opensdk => open_esplibs}/libmain/misc.c (100%) rename {opensdk => open_esplibs}/libmain/os_cpu_a.c (100%) rename {opensdk => open_esplibs}/libmain/spi_flash.c (100%) rename {opensdk => open_esplibs}/libmain/timers.c (100%) rename {opensdk => open_esplibs}/libmain/uart.c (100%) rename {opensdk => open_esplibs}/libmain/xtensa_context.S (100%) diff --git a/opensdk/component.mk b/open_esplibs/component.mk similarity index 100% rename from opensdk/component.mk rename to open_esplibs/component.mk diff --git a/opensdk/libmain/misc.c b/open_esplibs/libmain/misc.c similarity index 100% rename from opensdk/libmain/misc.c rename to open_esplibs/libmain/misc.c diff --git a/opensdk/libmain/os_cpu_a.c b/open_esplibs/libmain/os_cpu_a.c similarity index 100% rename from opensdk/libmain/os_cpu_a.c rename to open_esplibs/libmain/os_cpu_a.c diff --git a/opensdk/libmain/spi_flash.c b/open_esplibs/libmain/spi_flash.c similarity index 100% rename from opensdk/libmain/spi_flash.c rename to open_esplibs/libmain/spi_flash.c diff --git a/opensdk/libmain/timers.c b/open_esplibs/libmain/timers.c similarity index 100% rename from opensdk/libmain/timers.c rename to open_esplibs/libmain/timers.c diff --git a/opensdk/libmain/uart.c b/open_esplibs/libmain/uart.c similarity index 100% rename from opensdk/libmain/uart.c rename to open_esplibs/libmain/uart.c diff --git a/opensdk/libmain/xtensa_context.S b/open_esplibs/libmain/xtensa_context.S similarity index 100% rename from opensdk/libmain/xtensa_context.S rename to open_esplibs/libmain/xtensa_context.S diff --git a/parameters.mk b/parameters.mk index f14a26b..8c6a8a3 100644 --- a/parameters.mk +++ b/parameters.mk @@ -60,7 +60,7 @@ OBJDUMP = $(CROSS)objdump # Source components to compile and link. Each of these are subdirectories # of the root, with a 'component.mk' file. -COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core opensdk +COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core open_esplibs # binary esp-iot-rtos SDK libraries to link. These are pre-processed prior to linking. SDK_LIBS ?= main net80211 phy pp wpa From 4d6fa0ccfa593ff9fbe0c789771a2309066b4e85 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Tue, 22 Mar 2016 17:11:18 -0700 Subject: [PATCH 016/349] Misc post-merge fixups --- core/esp_spi.c | 6 +++--- include/espressif/spi_flash.h | 8 ++++++-- open_esplibs/libmain/timers.c | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index c6c0546..7a8704c 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -178,7 +178,7 @@ static void _spi_buf_prepare(uint8_t bus, size_t len, spi_endianness_t e, spi_wo if (e == SPI_LITTLE_ENDIAN || word_size == SPI_32BIT) return; size_t count = word_size == SPI_16BIT ? (len + 1) / 2 : (len + 3) / 4; - uint32_t *data = (uint32_t *)&SPI(bus).W0; + uint32_t *data = (uint32_t *)SPI(bus).W; for (size_t i = 0; i < count; i ++) { data[i] = word_size == SPI_16BIT @@ -193,14 +193,14 @@ static void _spi_buf_transfer(uint8_t bus, const void *out_data, void *in_data, _wait(bus); size_t bytes = len * (uint8_t)word_size; _set_size(bus, bytes); - memcpy((void *)&SPI(bus).W0, out_data, bytes); + memcpy((void *)SPI(bus).W, out_data, bytes); _spi_buf_prepare(bus, len, e, word_size); _start(bus); _wait(bus); if (in_data) { _spi_buf_prepare(bus, len, e, word_size); - memcpy(in_data, (void *)&SPI(bus).W0, bytes); + memcpy(in_data, (void *)SPI(bus).W, bytes); } } diff --git a/include/espressif/spi_flash.h b/include/espressif/spi_flash.h index f08cda9..61f8ae9 100644 --- a/include/espressif/spi_flash.h +++ b/include/espressif/spi_flash.h @@ -36,7 +36,7 @@ sdk_SpiFlashOpResult sdk_spi_flash_erase_sector(uint16_t sec); src is pointer to a buffer to read bytes from. Should be 4-byte aligned. size is length of buffer in bytes. Should be a multiple of 4. */ -sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, const void *src, uint32_t size); +sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, uint32_t *src, uint32_t size); /* Read data from flash. @@ -44,8 +44,12 @@ sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, const void *src, uin des is pointer to a buffer to read bytes into. Should be 4-byte aligned. size is number of bytes to read. Should be a multiple of 4. */ -sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, void *des, uint32_t size); +sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, uint32_t *des, uint32_t size); +/* SDK uses this structure internally to account for flash size. + + See flashchip.h for more info. +*/ extern sdk_flashchip_t sdk_flashchip; #ifdef __cplusplus diff --git a/open_esplibs/libmain/timers.c b/open_esplibs/libmain/timers.c index 1359fc1..1e2a920 100644 --- a/open_esplibs/libmain/timers.c +++ b/open_esplibs/libmain/timers.c @@ -1,4 +1,5 @@ #include "etstimer.h" +#include "stdio.h" struct timer_list_st { struct timer_list_st *next; From 3e5af479bc1f02027db340d57870313d02425987 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Tue, 22 Mar 2016 17:43:07 -0700 Subject: [PATCH 017/349] Add conditional compilation for open_esplib code --- open_esplibs/component.mk | 18 ++++++++------ open_esplibs/include/open_esplibs.h | 36 +++++++++++++++++++++++++++ open_esplibs/libmain/misc.c | 6 +++++ open_esplibs/libmain/os_cpu_a.c | 5 ++++ open_esplibs/libmain/spi_flash.c | 5 ++++ open_esplibs/libmain/timers.c | 5 ++++ open_esplibs/libmain/uart.c | 5 ++++ open_esplibs/libmain/xtensa_context.S | 5 ++++ 8 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 open_esplibs/include/open_esplibs.h diff --git a/open_esplibs/component.mk b/open_esplibs/component.mk index 26fa5ad..23c8b6a 100644 --- a/open_esplibs/component.mk +++ b/open_esplibs/component.mk @@ -1,11 +1,15 @@ -# Component makefile for "open sdk libs" +# Component makefile for "open Espressif libs" + +INC_DIRS += $(open_esplibs_ROOT)include + +$(eval $(call component_compile_rules,open_esplibs)) # args for passing into compile rule generation -opensdk_libmain_ROOT = $(opensdk_libmain_DEFAULT_ROOT)libmain -opensdk_libmain_INC_DIR = -opensdk_libmain_SRC_DIR = $(opensdk_libmain_ROOT) -opensdk_libmain_EXTRA_SRC_FILES = +open_esplibs_libmain_ROOT = $(open_esplibs_libmain_DEFAULT_ROOT)libmain +open_esplibs_libmain_INC_DIR = +open_esplibs_libmain_SRC_DIR = $(open_esplibs_libmain_ROOT) +open_esplibs_libmain_EXTRA_SRC_FILES = -opensdk_libmain_CFLAGS = $(CFLAGS) +open_esplibs_libmain_CFLAGS = $(CFLAGS) -$(eval $(call component_compile_rules,opensdk_libmain)) +$(eval $(call component_compile_rules,open_esplibs_libmain)) diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h new file mode 100644 index 0000000..5443fef --- /dev/null +++ b/open_esplibs/include/open_esplibs.h @@ -0,0 +1,36 @@ +#ifndef _OPEN_ESPLIBS_H +#define _OPEN_ESPLIBS_H + +// This header includes conditional defines to control which bits of the +// Open-Source libraries get built when building esp-open-rtos. This can be +// useful for quickly troubleshooting whether a bug is due to the +// reimplementation of Espressif libraries, or something else. + +#ifndef OPEN_ESPLIBS +#define OPEN_ESPLIBS 1 +#endif + +#ifndef OPEN_LIBMAIN +#define OPEN_LIBMAIN (OPEN_ESPLIBS) +#endif + +#ifndef OPEN_LIBMAIN_MISC +#define OPEN_LIBMAIN_MISC (OPEN_LIBMAIN) +#endif +#ifndef OPEN_LIBMAIN_OS_CPU_A +#define OPEN_LIBMAIN_OS_CPU_A (OPEN_LIBMAIN) +#endif +#ifndef OPEN_LIBMAIN_SPI_FLASH +#define OPEN_LIBMAIN_SPI_FLASH (OPEN_LIBMAIN) +#endif +#ifndef OPEN_LIBMAIN_TIMERS +#define OPEN_LIBMAIN_TIMERS (OPEN_LIBMAIN) +#endif +#ifndef OPEN_LIBMAIN_UART +#define OPEN_LIBMAIN_UART (OPEN_LIBMAIN) +#endif +#ifndef OPEN_LIBMAIN_XTENSA_CONTEXT +#define OPEN_LIBMAIN_XTENSA_CONTEXT (OPEN_LIBMAIN) +#endif + +#endif /* _OPEN_ESPLIBS_H */ diff --git a/open_esplibs/libmain/misc.c b/open_esplibs/libmain/misc.c index 25a059d..8029a38 100644 --- a/open_esplibs/libmain/misc.c +++ b/open_esplibs/libmain/misc.c @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_MISC +// The contents of this file are only built if OPEN_LIBMAIN_MISC is set to true + #include "espressif/esp_misc.h" #include "esp/gpio_regs.h" #include "esp/rtc_regs.h" @@ -57,3 +61,5 @@ uint8_t sdk_rtc_get_reset_reason(void) { RTC.RESET_REASON0 &= ~RTC_RESET_REASON0_SOMETHING; return reason; } + +#endif /* OPEN_LIBMAIN_MISC */ diff --git a/open_esplibs/libmain/os_cpu_a.c b/open_esplibs/libmain/os_cpu_a.c index 4841ebe..7908b6f 100644 --- a/open_esplibs/libmain/os_cpu_a.c +++ b/open_esplibs/libmain/os_cpu_a.c @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_OS_CPU_A +// The contents of this file are only built if OPEN_LIBMAIN_OS_CPU_A is set to true + #include "esp/types.h" #include "FreeRTOS.h" #include "task.h" @@ -119,3 +123,4 @@ void IRAM sdk__xt_clear_ints(uint32_t mask) { WSR(mask, intclear); } +#endif /* OPEN_LIBMAIN_OS_CPU_A */ diff --git a/open_esplibs/libmain/spi_flash.c b/open_esplibs/libmain/spi_flash.c index 2915c79..ee2d2f4 100644 --- a/open_esplibs/libmain/spi_flash.c +++ b/open_esplibs/libmain/spi_flash.c @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_SPI_FLASH +// The contents of this file are only built if OPEN_LIBMAIN_SPI_FLASH is set to true + #include "FreeRTOS.h" #include "common_macros.h" #include "esp/spi_regs.h" @@ -181,3 +185,4 @@ sdk_SpiFlashOpResult IRAM sdk_spi_flash_read(uint32_t src_addr, uint32_t *des_ad return result; } +#endif /* OPEN_LIBMAIN_SPI_FLASH */ diff --git a/open_esplibs/libmain/timers.c b/open_esplibs/libmain/timers.c index 1e2a920..d460088 100644 --- a/open_esplibs/libmain/timers.c +++ b/open_esplibs/libmain/timers.c @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_TIMERS +// The contents of this file are only built if OPEN_LIBMAIN_TIMERS is set to true + #include "etstimer.h" #include "stdio.h" @@ -88,3 +92,4 @@ void sdk_os_timer_disarm(ETSTimer *ptimer) { } } +#endif /* OPEN_LIBMAIN_TIMERS */ diff --git a/open_esplibs/libmain/uart.c b/open_esplibs/libmain/uart.c index 25ae961..5ee2699 100644 --- a/open_esplibs/libmain/uart.c +++ b/open_esplibs/libmain/uart.c @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_UART +// The contents of this file are only built if OPEN_LIBMAIN_UART is set to true + #include "espressif/sdk_private.h" #include "esp/uart_regs.h" @@ -15,3 +19,4 @@ void sdk_Uart_Init(void) { /* No-Op */ } +#endif /* OPEN_LIBMAIN_UART */ diff --git a/open_esplibs/libmain/xtensa_context.S b/open_esplibs/libmain/xtensa_context.S index 511877e..139d5db 100644 --- a/open_esplibs/libmain/xtensa_context.S +++ b/open_esplibs/libmain/xtensa_context.S @@ -1,3 +1,7 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_XTENSA_CONTEXT +// The contents of this file are only built if OPEN_LIBMAIN_XTENSA_CONTEXT is set to true + .section .iram1.text, "ax", @progbits .balign 4 @@ -39,3 +43,4 @@ sdk__xt_context_restore: l32i a13, sp, 64 ret +#endif /* OPEN_LIBMAIN_XTENSA_CONTEXT */ From 8c9a77efe877e3da39cd6b504c3de3fc5e9a421c Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Tue, 5 Apr 2016 09:23:28 -0700 Subject: [PATCH 018/349] Added first half of RE'd user_interface.c --- core/app_main.c | 9 +- core/debug_dumps.c | 2 +- core/include/esp/dport_regs.h | 4 + core/include/esp/rtc_regs.h | 8 +- core/include/esp/sar_regs.h | 39 ++ core/include/sdk_internal.h | 40 +- examples/http_get_mbedtls/Makefile | 2 +- examples/pwm_test/Makefile | 2 +- examples/tls_server/Makefile | 2 +- include/espressif/esp_misc.h | 2 + include/espressif/esp_system.h | 4 +- include/espressif/osapi.h | 8 + include/espressif/user_interface.h | 27 + open_esplibs/include/esplibs/libmain.h | 19 + open_esplibs/include/esplibs/libnet80211.h | 14 + open_esplibs/include/esplibs/libphy.h | 8 + open_esplibs/include/esplibs/libpp.h | 32 ++ open_esplibs/include/open_esplibs.h | 3 + open_esplibs/libmain/misc.c | 2 +- open_esplibs/libmain/user_interface.c | 548 +++++++++++++++++++++ 20 files changed, 745 insertions(+), 30 deletions(-) create mode 100644 core/include/esp/sar_regs.h create mode 100644 include/espressif/osapi.h create mode 100644 include/espressif/user_interface.h create mode 100644 open_esplibs/include/esplibs/libmain.h create mode 100644 open_esplibs/include/esplibs/libnet80211.h create mode 100644 open_esplibs/include/esplibs/libphy.h create mode 100644 open_esplibs/include/esplibs/libpp.h create mode 100644 open_esplibs/libmain/user_interface.c diff --git a/core/app_main.c b/core/app_main.c index ebf9e9a..ac74426 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -27,6 +27,7 @@ #include "espressif/esp_common.h" #include "espressif/phy_info.h" #include "sdk_internal.h" +#include "esplibs/libmain.h" /* This is not declared in any header file (but arguably should be) */ @@ -345,8 +346,8 @@ static __attribute__((noinline)) void user_start_phase2(void) { sdk_phy_info_t phy_info, default_phy_info; sdk_system_rtc_mem_read(0, &sdk_rst_if, sizeof(sdk_rst_if)); - if (sdk_rst_if.version > 3) { - // Bad version number. Probably garbage. + if (sdk_rst_if.reason > 3) { + // Bad reason. Probably garbage. bzero(&sdk_rst_if, sizeof(sdk_rst_if)); } buf = malloc(sizeof(sdk_rst_if)); @@ -357,8 +358,8 @@ static __attribute__((noinline)) void user_start_phase2(void) { get_otp_mac_address(sdk_info.sta_mac_addr); sdk_wifi_softap_cacl_mac(sdk_info.softap_mac_addr, sdk_info.sta_mac_addr); sdk_info._unknown0 = 0x0104a8c0; - sdk_info._unknown1 = 0x00ffffff; - sdk_info._unknown2 = 0x0104a8c0; + sdk_info._unknown4 = 0x00ffffff; + sdk_info._unknown8 = 0x0104a8c0; init_g_ic(); read_saved_phy_info(&phy_info); diff --git a/core/debug_dumps.c b/core/debug_dumps.c index 7f1a1ca..c5af763 100644 --- a/core/debug_dumps.c +++ b/core/debug_dumps.c @@ -20,7 +20,7 @@ #include "esp/rom.h" #include "esp/uart.h" #include "espressif/esp_common.h" -#include "sdk_internal.h" +#include "esplibs/libmain.h" /* Forward declarations */ static void IRAM fatal_handler_prelude(void); diff --git a/core/include/esp/dport_regs.h b/core/include/esp/dport_regs.h index 87efca1..d04de2f 100644 --- a/core/include/esp/dport_regs.h +++ b/core/include/esp/dport_regs.h @@ -90,6 +90,10 @@ _Static_assert(sizeof(struct DPORT_REGS) == 0x60, "DPORT_REGS is the wrong size" /* Details for CLOCKGATE_WATCHDOG register */ +// Set and then cleared during sdk_system_restart_in_nmi(). +// Not sure what this does. May be related to ESPSAR.UNKNOWN_48 +#define DPORT_CLOCKGATE_WATCHDOG_UNKNOWN_8 BIT(8) + /* Comment found in pvvx/mp3_decode headers: "use clockgate_watchdog(flg) { if(flg) 0x3FF00018 &= 0x77; else 0x3FF00018 |= 8; }". Not sure what this means or does. */ #define DPORT_CLOCKGATE_WATCHDOG_DISABLE BIT(3) diff --git a/core/include/esp/rtc_regs.h b/core/include/esp/rtc_regs.h index 4acb2a3..1798498 100644 --- a/core/include/esp/rtc_regs.h +++ b/core/include/esp/rtc_regs.h @@ -31,7 +31,8 @@ struct RTC_REGS { uint32_t volatile CTRL0; // 0x00 uint32_t volatile COUNTER_ALARM; // 0x04 uint32_t volatile RESET_REASON0; // 0x08 //FIXME: need better name - uint32_t volatile _unknownc[2]; // 0x0c - 0x10 + uint32_t volatile _unknownc; // 0x0c + uint32_t volatile _unknown10; // 0x10 uint32_t volatile RESET_REASON1; // 0x14 //FIXME: need better name uint32_t volatile RESET_REASON2; // 0x18 //FIXME: need better name uint32_t volatile COUNTER; // 0x1c @@ -40,7 +41,10 @@ struct RTC_REGS { uint32_t volatile INT_ENABLE; // 0x28 uint32_t volatile _unknown2c; // 0x2c uint32_t volatile SCRATCH[4]; // 0x30 - 3c - uint32_t volatile _unknown40[10]; // 0x40 - 0x64 + uint32_t volatile _unknown40; // 0x40 + uint32_t volatile _unknown44; // 0x44 + uint32_t volatile _unknown48; // 0x48 + uint32_t volatile _unknown4c[7]; // 0x4c - 0x64 uint32_t volatile GPIO_OUT; // 0x68 uint32_t volatile _unknown6c[2]; // 0x6c - 0x70 uint32_t volatile GPIO_ENABLE; // 0x74 diff --git a/core/include/esp/sar_regs.h b/core/include/esp/sar_regs.h new file mode 100644 index 0000000..b0266b7 --- /dev/null +++ b/core/include/esp/sar_regs.h @@ -0,0 +1,39 @@ +/* esp/sar_regs.h + * + * ESP8266 register definitions for the "sar" region (0x3FF2xxx) + * + * The 0x60000D00 register region is referred to as "sar" by some old header + * files. Apparently referenced both by ROM I2C functions as well as ADC + * config/read functions. + * + * Not compatible with ESP SDK register access code. + */ + +#ifndef _ESP_SAR_REGS_H +#define _ESP_SAR_REGS_H + +#include "esp/types.h" +#include "common_macros.h" + +#define SAR_BASE 0x60000d00 +// Unfortunately, +// esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/include/xtensa/config/specreg.h +// already has a "SAR" macro definition which would conflict with this, so +// we'll use "ESPSAR" instead.. +#define ESPSAR (*(struct SAR_REGS *)(SAR_BASE)) + +/* Note: This memory region is not currently well understood. Pretty much all + * of the definitions here are from reverse-engineering the Espressif SDK code, + * many are just educated guesses, and almost certainly some are misleading or + * wrong. If you can improve on any of this, please contribute! + */ + +struct SAR_REGS { + uint32_t volatile _unknown0[18]; // 0x00 - 0x44 + uint32_t volatile UNKNOWN_48; // 0x48 : used by sdk_system_restart_in_nmi() +} __attribute__ (( packed )); + +_Static_assert(sizeof(struct SAR_REGS) == 0x4c, "SAR_REGS is the wrong size"); + +#endif /* _ESP_SAR_REGS_H */ + diff --git a/core/include/sdk_internal.h b/core/include/sdk_internal.h index b8233fd..4e3faa5 100644 --- a/core/include/sdk_internal.h +++ b/core/include/sdk_internal.h @@ -4,6 +4,7 @@ #include "espressif/esp_wifi.h" #include "espressif/spi_flash.h" #include "espressif/phy_info.h" +#include "etstimer.h" #include "lwip/netif.h" /////////////////////////////////////////////////////////////////////////////// @@ -13,31 +14,38 @@ // 'info' is declared in app_main.o at .bss+0x4 struct sdk_info_st { - uint32_t _unknown0; - uint32_t _unknown1; - uint32_t _unknown2; - uint8_t _unknown3[12]; - uint8_t softap_mac_addr[6]; - uint8_t sta_mac_addr[6]; + uint32_t _unknown0; // 0x00 + uint32_t _unknown4; // 0x04 + uint32_t _unknown8; // 0x08 + ip_addr_t ipaddr; // 0x0c + ip_addr_t netmask; // 0x10 + ip_addr_t gw; // 0x14 + uint8_t softap_mac_addr[6]; // 0x18 + uint8_t sta_mac_addr[6]; // 0x1e }; extern struct sdk_info_st sdk_info; // 'rst_if' is declared in user_interface.o at .bss+0xfc - -struct sdk_rst_if_st { - uint32_t version; - uint8_t _unknown[28]; -}; - -extern struct sdk_rst_if_st sdk_rst_if; +extern struct sdk_rst_info sdk_rst_if; // 'g_ic' is declared in libnet80211/ieee80211.o at .bss+0x0 // See also: http://esp8266-re.foogod.com/wiki/G_ic_(IoT_RTOS_SDK_0.9.9) struct sdk_g_ic_netif_info { - struct netif *netif; - //TODO: rest of this structure is unknown. + struct netif *netif; // 0x00 + ETSTimer timer; // 0x04 - 0x20 + uint8_t _unknown20[28]; // 0x20 - 0x3c + uint32_t _unknown3c; // 0x3c (referenced by sdk_wifi_station_disconnect) + uint8_t _unknown40[6]; // 0x40 - 0x46 + uint8_t _unknown46[66]; // 0x46 - 0x88 + struct sdk_netif_conninfo *_unknown88; // 0x88 + uint32_t _unknown8c; // 0x8c + struct sdk_netif_conninfo *conninfo[6]; // 0x90 - 0xa8 + uint8_t _unknowna8[16]; // 0xa8 - 0xb8 + uint8_t _unknownb8; // 0xb8 (referenced by sdk_wifi_station_connect / sdk_wifi_station_disconnect) + uint8_t _unknownb9; // 0xb9 (referenced by sdk_wifi_station_connect / sdk_wifi_station_disconnect) + uint8_t connect_status; // 0xba (referenced by sdk_system_station_got_ip_set / sdk_wifi_station_disconnect) }; // This is the portion of g_ic which is not loaded/saved to the flash ROM, and @@ -197,7 +205,6 @@ extern struct sdk_g_ic_st sdk_g_ic; /////////////////////////////////////////////////////////////////////////////// _Static_assert(sizeof(struct sdk_info_st) == 0x24, "info_st is the wrong size!"); -_Static_assert(sizeof(struct sdk_rst_if_st) == 0x20, "sdk_rst_if_st is the wrong size!"); _Static_assert(sizeof(struct sdk_g_ic_volatile_st) == 0x1d8, "sdk_g_ic_volatile_st is the wrong size!"); _Static_assert(sizeof(struct sdk_g_ic_saved_st) == 0x370, "sdk_g_ic_saved_st is the wrong size!"); _Static_assert(sizeof(struct sdk_g_ic_st) == 0x548, "sdk_g_ic_st is the wrong size!"); @@ -221,7 +228,6 @@ void sdk_pp_soft_wdt_init(void); int sdk_register_chipv6_phy(sdk_phy_info_t *); void sdk_sleep_reset_analog_rtcreg_8266(void); uint32_t sdk_system_get_checksum(uint8_t *, uint32_t); -void sdk_system_restart_in_nmi(void); void sdk_wDevEnableRx(void); void sdk_wDev_Initialize(void); void sdk_wifi_mode_set(uint8_t); diff --git a/examples/http_get_mbedtls/Makefile b/examples/http_get_mbedtls/Makefile index fc9a4fa..7e7a432 100644 --- a/examples/http_get_mbedtls/Makefile +++ b/examples/http_get_mbedtls/Makefile @@ -1,4 +1,4 @@ PROGRAM=http_get_mbedtls -COMPONENTS = FreeRTOS lwip core extras/mbedtls +EXTRA_COMPONENTS = extras/mbedtls include ../../common.mk diff --git a/examples/pwm_test/Makefile b/examples/pwm_test/Makefile index 36ee7d0..574420d 100644 --- a/examples/pwm_test/Makefile +++ b/examples/pwm_test/Makefile @@ -1,4 +1,4 @@ # Simple makefile for simple example PROGRAM=pwm_test -COMPONENTS = FreeRTOS lwip core extras/pwm +EXTRA_COMPONENTS = extras/pwm include ../../common.mk diff --git a/examples/tls_server/Makefile b/examples/tls_server/Makefile index 2c5ef2c..1070e91 100644 --- a/examples/tls_server/Makefile +++ b/examples/tls_server/Makefile @@ -1,4 +1,4 @@ PROGRAM=tls_server -COMPONENTS = FreeRTOS lwip core extras/mbedtls +EXTRA_COMPONENTS = extras/mbedtls include ../../common.mk diff --git a/include/espressif/esp_misc.h b/include/espressif/esp_misc.h index 6490fa5..8427d60 100644 --- a/include/espressif/esp_misc.h +++ b/include/espressif/esp_misc.h @@ -27,6 +27,8 @@ void sdk_os_delay_us(uint16_t us); void sdk_os_install_putc1(void (*p)(char c)); void sdk_os_putc(char c); +void sdk_gpio_output_set(uint32_t set_mask, uint32_t clear_mask, uint32_t enable_mask, uint32_t disable_mask); + #ifdef __cplusplus } #endif diff --git a/include/espressif/esp_system.h b/include/espressif/esp_system.h index 04af582..abeb26a 100644 --- a/include/espressif/esp_system.h +++ b/include/espressif/esp_system.h @@ -54,8 +54,8 @@ uint32_t sdk_system_get_chip_id(void); uint32_t sdk_system_rtc_clock_cali_proc(void); uint32_t sdk_system_get_rtc_time(void); -bool sdk_system_rtc_mem_read(uint8_t src, void *dst, uint16_t n); -bool sdk_system_rtc_mem_write(uint8_t dst, const void *src, uint16_t n); +bool sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t save_size); +bool sdk_system_rtc_mem_write(uint32_t des_addr, void *src_addr, uint16_t save_size); void sdk_system_uart_swap(void); void sdk_system_uart_de_swap(void); diff --git a/include/espressif/osapi.h b/include/espressif/osapi.h new file mode 100644 index 0000000..1c1808f --- /dev/null +++ b/include/espressif/osapi.h @@ -0,0 +1,8 @@ +#ifndef _OSAPI_H_ +#define _OSAPI_H_ + +void sdk_os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg); +void sdk_os_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag); +void sdk_os_timer_disarm(ETSTimer *ptimer); + +#endif diff --git a/include/espressif/user_interface.h b/include/espressif/user_interface.h new file mode 100644 index 0000000..223efba --- /dev/null +++ b/include/espressif/user_interface.h @@ -0,0 +1,27 @@ +#ifndef __USER_INTERFACE_H__ +#define __USER_INTERFACE_H__ + +#include +#include +#include +#include "espressif/esp_wifi.h" + +enum sdk_dhcp_status { + DHCP_STOPPED, + DHCP_STARTED +}; + +uint8_t sdk_system_get_boot_version(void); +uint32_t sdk_system_get_userbin_addr(void); +uint8_t sdk_system_get_boot_mode(void); +bool sdk_system_restart_enhance(uint8_t bin_type, uint32_t bin_addr); +bool sdk_system_upgrade_userbin_set(uint8_t userbin); +uint8_t sdk_system_upgrade_userbin_check(void); +bool sdk_system_upgrade_flag_set(uint8_t flag); +uint8_t sdk_system_upgrade_flag_check(void); +bool sdk_system_upgrade_reboot(void); +bool sdk_wifi_station_dhcpc_start(void); +bool sdk_wifi_station_dhcpc_stop(void); +enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void); + +#endif diff --git a/open_esplibs/include/esplibs/libmain.h b/open_esplibs/include/esplibs/libmain.h new file mode 100644 index 0000000..dc36117 --- /dev/null +++ b/open_esplibs/include/esplibs/libmain.h @@ -0,0 +1,19 @@ +#ifndef _ESPLIBS_LIBMAIN_H +#define _ESPLIBS_LIBMAIN_H + +#include "sdk_internal.h" + +// misc.c +int sdk_os_get_cpu_frequency(void); +void sdk_os_update_cpu_frequency(int freq); + +// user_interface.c +void sdk_system_restart_in_nmi(void); +int sdk_system_get_test_result(void); +void sdk_wifi_param_save_protect(struct sdk_g_ic_saved_st *data); +bool sdk_system_overclock(void); +bool sdk_system_restoreclock(void); +uint32_t sdk_system_relative_time(uint32_t reltime); + +#endif /* _ESPLIBS_LIBMAIN_H */ + diff --git a/open_esplibs/include/esplibs/libnet80211.h b/open_esplibs/include/esplibs/libnet80211.h new file mode 100644 index 0000000..12f5980 --- /dev/null +++ b/open_esplibs/include/esplibs/libnet80211.h @@ -0,0 +1,14 @@ +#ifndef _ESPLIBS_LIBNET80211_H +#define _ESPLIBS_LIBNET80211_H + +// Defined in wl_cnx.o +extern ETSTimer sdk_sta_con_timer; + +// Defined in ieee80211_sta.o: .irom0.text+0xcc4 +bool sdk_wifi_station_stop(void); + +// Defined in ieee80211_hostap.o: .irom0.text+0x1184 +bool sdk_wifi_softap_stop(void); + +#endif /* _ESPLIBS_LIBNET80211_H */ + diff --git a/open_esplibs/include/esplibs/libphy.h b/open_esplibs/include/esplibs/libphy.h new file mode 100644 index 0000000..92ec355 --- /dev/null +++ b/open_esplibs/include/esplibs/libphy.h @@ -0,0 +1,8 @@ +#ifndef _ESPLIBS_LIBPHY_H +#define _ESPLIBS_LIBPHY_H + +// Defined in phy_chip_v6_ana.o: .irom0.text+0x12d8 +uint32_t sdk_test_tout(bool); + +#endif /* _ESPLIBS_LIBPHY_H */ + diff --git a/open_esplibs/include/esplibs/libpp.h b/open_esplibs/include/esplibs/libpp.h new file mode 100644 index 0000000..c2ed458 --- /dev/null +++ b/open_esplibs/include/esplibs/libpp.h @@ -0,0 +1,32 @@ +#ifndef _ESPLIBS_LIBPP_H +#define _ESPLIBS_LIBPP_H + +// Located in wdev.o +extern uint32_t sdk_WdevTimOffSet; + +// Defined in pp.o: .irom0.text+0xa08 +void sdk_ppRecycleRxPkt(void *); + +// Defined in pm.o: .irom0.text+0x74 +uint32_t sdk_pm_rtc_clock_cali_proc(void); + +// Defined in pm.o: .irom0.text+0xb8 +void sdk_pm_set_sleep_time(uint32_t); + +// Defined in pm.o: .irom0.text+0x1758 +uint8_t sdk_pm_is_waked(void); + +// Defined in pm.o: .irom0.text+0x1774 +bool sdk_pm_is_open(void); + +// Defined in pm.o: .irom0.text+0x19ac +bool sdk_pm_post(int); + +// Defined in wdev.o: .irom0.text+0x450 +void sdk_wDev_MacTim1SetFunc(void (*func)(void)); + +// Defined in wdev.o: .text+0x4a8 +void sdk_wDev_MacTim1Arm(uint32_t); + +#endif /* _ESPLIBS_LIBPP_H */ + diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h index 5443fef..8db3127 100644 --- a/open_esplibs/include/open_esplibs.h +++ b/open_esplibs/include/open_esplibs.h @@ -32,5 +32,8 @@ #ifndef OPEN_LIBMAIN_XTENSA_CONTEXT #define OPEN_LIBMAIN_XTENSA_CONTEXT (OPEN_LIBMAIN) #endif +#ifndef OPEN_LIBMAIN_USER_INTERFACE +#define OPEN_LIBMAIN_USER_INTERFACE (OPEN_LIBMAIN) +#endif #endif /* _OPEN_ESPLIBS_H */ diff --git a/open_esplibs/libmain/misc.c b/open_esplibs/libmain/misc.c index 8029a38..3c1cd02 100644 --- a/open_esplibs/libmain/misc.c +++ b/open_esplibs/libmain/misc.c @@ -58,7 +58,7 @@ uint8_t sdk_rtc_get_reset_reason(void) { } } } - RTC.RESET_REASON0 &= ~RTC_RESET_REASON0_SOMETHING; + RTC.RESET_REASON0 &= ~RTC_RESET_REASON0_BIT21; return reason; } diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c new file mode 100644 index 0000000..1533594 --- /dev/null +++ b/open_esplibs/libmain/user_interface.c @@ -0,0 +1,548 @@ +#include "open_esplibs.h" +#if OPEN_LIBMAIN_USER_INTERFACE +// The contents of this file are only built if OPEN_LIBMAIN_USER_INTERFACE is set to true + +#include "FreeRTOS.h" +#include "task.h" +#include "string.h" + +#include "lwip/dhcp.h" + +#include "esp/types.h" +#include "esp/rom.h" +#include "esp/dport_regs.h" +#include "esp/rtcmem_regs.h" +#include "esp/iomux_regs.h" +#include "esp/sar_regs.h" +#include "esp/wdev_regs.h" + +#include "etstimer.h" +#include "espressif/sdk_private.h" +#include "espressif/esp_system.h" +#include "espressif/esp_wifi.h" +#include "espressif/esp_sta.h" +#include "espressif/esp_softap.h" +#include "espressif/esp_misc.h" +#include "espressif/osapi.h" +#include "espressif/user_interface.h" + +#include "sdk_internal.h" +#include "esplibs/libmain.h" +#include "esplibs/libpp.h" +#include "esplibs/libphy.h" +#include "esplibs/libnet80211.h" + +// Structure for the data contained in the last sector of Flash which contains +// meta-info about the saved wifi param sectors. +struct param_dir_st { + uint8_t current_sector; // 0x00 + uint32_t cksum_magic; // 0x04 + uint32_t save_count; // 0x08 + uint32_t cksum_len[2]; // 0x0c + uint32_t cksum_value[2]; // 0x14 +}; +_Static_assert(sizeof(struct param_dir_st) == 28, "param_dir_st is the wrong size"); + +enum sdk_dhcp_status sdk_dhcpc_flag = DHCP_STARTED; +bool sdk_cpu_overclock; +struct sdk_rst_info sdk_rst_if; +sdk_wifi_promiscuous_cb_t sdk_promiscuous_cb; + +static uint8_t _system_upgrade_flag; // Ldata009 + +// Prototypes for static functions +static bool _check_boot_version(void); +static void _deep_sleep_phase2(void *timer_arg); +static struct netif *_get_netif(uint32_t mode); + +// Linker-created values used by sdk_system_print_meminfo +extern uint32_t _data_start, _data_end; +extern uint32_t _rodata_start, _rodata_end; +extern uint32_t _bss_start, _bss_end; +extern uint32_t _heap_start; + +#define _rom_reset_vector ((void (*)(void))0x40000080) + +void IRAM sdk_system_restart_in_nmi(void) { + uint32_t buf[8]; + + sdk_system_rtc_mem_read(0, buf, 32); + if (buf[0] != 2) { + memset(buf, 0, 32); + buf[0] = 3; + sdk_system_rtc_mem_write(0, buf, 32); + } + if (!sdk_NMIIrqIsOn) { + portENTER_CRITICAL(); + do { + DPORT.DPORT0 = SET_FIELD(DPORT.DPORT0, DPORT_DPORT0_FIELD0, 0); + } while (DPORT.DPORT0 & 1); + } + ESPSAR.UNKNOWN_48 |= 3; + DPORT.CLOCKGATE_WATCHDOG |= DPORT_CLOCKGATE_WATCHDOG_UNKNOWN_8; + ESPSAR.UNKNOWN_48 &= ~3; + DPORT.CLOCKGATE_WATCHDOG &= ~DPORT_CLOCKGATE_WATCHDOG_UNKNOWN_8; + Cache_Read_Disable(); + DPORT.SPI_CACHE_RAM &= ~(DPORT_SPI_CACHE_RAM_BANK0 | DPORT_SPI_CACHE_RAM_BANK1); + // This calls directly to 0x40000080, the "reset" exception vector address. + _rom_reset_vector(); +} + +bool IRAM sdk_system_rtc_mem_write(uint32_t des_addr, void *src_addr, uint16_t save_size) { + uint32_t volatile *src_buf = (uint32_t *)src_addr; + + if (des_addr > 191) { + return false; + } + if ((intptr_t)src_addr & 3) { + return false; + } + if ((768 - (des_addr * 4)) < save_size) { + return false; + } + if ((save_size & 3) != 0) { + save_size = (save_size & ~3) + 4; + } + for (uint8_t i = 0; i < (save_size >> 2); i++) { + RTCMEM_SYSTEM[i] = src_buf[i]; + } + return true; +} + +bool IRAM sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t save_size) { + uint32_t volatile *src_buf = (uint32_t *)src_addr; + + if (src_addr > 191) { + return false; + } + if ((intptr_t)des_addr & 3) { + return false; + } + if ((768 - (src_addr * 4)) < save_size) { + return false; + } + if ((save_size & 3) != 0) { + save_size = (save_size & ~3) + 4; + } + for (uint8_t i = 0; i < (save_size >> 2); i++) { + src_buf[i] = RTCMEM_SYSTEM[i]; + } + return true; +} + +void sdk_system_pp_recycle_rx_pkt(void *eb) { + sdk_ppRecycleRxPkt(eb); +} + +uint16_t sdk_system_adc_read(void) { + return sdk_test_tout(false); +} + +void sdk_system_restart(void) { + if (sdk_wifi_get_opmode() != 2) { + sdk_wifi_station_stop(); + } + if (sdk_wifi_get_opmode() != 1) { + sdk_wifi_softap_stop(); + } + vTaskDelay(6); + IOMUX_GPIO12 |= IOMUX_PIN_PULLUP; + sdk_wDev_MacTim1SetFunc(sdk_system_restart_in_nmi); + sdk_wDev_MacTim1Arm(3); +} + +void sdk_system_restore(void) { + struct sdk_g_ic_saved_st *buf; + + buf = malloc(sizeof(struct sdk_g_ic_saved_st)); + memset(buf, 0xff, sizeof(struct sdk_g_ic_saved_st)); + memcpy(buf, &sdk_g_ic.s, 8); + sdk_wifi_param_save_protect(buf); + free(buf); +} + +uint8_t sdk_system_get_boot_version(void) { + return sdk_g_ic.s.boot_info & 0x1f; +} + +static bool _check_boot_version(void) { + uint8_t ver = sdk_system_get_boot_version(); + if (ver < 3 || ver == 31) { + printf("failed: need boot >= 1.3\n"); + return false; + } + return true; +} + +int sdk_system_get_test_result(void) { + if (_check_boot_version()) { + return (sdk_g_ic.s.boot_info >> 5) & 1; + } else { + return -1; + } +} + +uint32_t sdk_system_get_userbin_addr(void) { + uint8_t buf[8]; + uint16_t unknown_var = 0; //FIXME: read but never written? + uint32_t addr; + uint32_t flash_size_code; + + if (!(sdk_g_ic.s.boot_info >> 7)) { + if (sdk_g_ic.s._unknown1d8 & 0x4) { + addr = sdk_g_ic.s.user1_addr[0] | (sdk_g_ic.s.user1_addr[1] << 8) | +(sdk_g_ic.s.user1_addr[2] << 16); + } else { + addr = sdk_g_ic.s.user0_addr[0] | (sdk_g_ic.s.user0_addr[1] << 8) | (sdk_g_ic.s.user0_addr[2] << 16); + } + } else { + if (!sdk_system_upgrade_userbin_check()) { + addr = 0x00001000; + } else { + sdk_spi_flash_read(0, (uint32_t *)buf, 8); + flash_size_code = buf[3] >> 4; + if (flash_size_code >= 2 && flash_size_code < 5) { + flash_size_code = 0x81; + } else if (flash_size_code == 1) { + flash_size_code = 0x41; + } else { + // FIXME: In the original code, this loads from a local stack + // variable, which is never actually assigned to anywhere. + // It's unclear what this value is actually supposed to be. + flash_size_code = unknown_var; + } + addr = flash_size_code << 12; + } + } + return addr; +} + +uint8_t sdk_system_get_boot_mode(void) { + int boot_version = sdk_g_ic.s.boot_info & 0x1f; + if (boot_version < 3 || boot_version == 0x1f) { + return 1; + } + return sdk_g_ic.s.boot_info >> 7; +} + +bool sdk_system_restart_enhance(uint8_t bin_type, uint32_t bin_addr) { + uint32_t current_addr; + + if (!_check_boot_version()) { + return false; + } + if (bin_type == 0) { + current_addr = sdk_system_get_userbin_addr(); + printf("restart to use user bin @ %x\n", bin_addr); + sdk_g_ic.s.user1_addr[0] = bin_addr; + sdk_g_ic.s.user1_addr[1] = bin_addr >> 8; + sdk_g_ic.s.user1_addr[2] = bin_addr >> 16; + sdk_g_ic.s.user0_addr[0] = current_addr; + sdk_g_ic.s.user0_addr[1] = current_addr >> 8; + sdk_g_ic.s.user0_addr[2] = current_addr >> 16; + sdk_g_ic.s._unknown1d8 = (sdk_g_ic.s._unknown1d8 & 0xfb) | 0x04; + sdk_g_ic.s.boot_info &= 0x7f; + sdk_wifi_param_save_protect(&sdk_g_ic.s); + sdk_system_restart(); + return true; + } else { + if (bin_type != 1) { + printf("don't supported type.\n"); + return false; + } + if (!sdk_system_get_test_result()) { + printf("test already passed.\n"); + return false; + } + + printf("reboot to use test bin @ %x\n", bin_addr); + sdk_g_ic.s.user0_addr[0] = bin_addr; + sdk_g_ic.s.user0_addr[1] = bin_addr >> 8; + sdk_g_ic.s.user0_addr[2] = bin_addr >> 16; + sdk_g_ic.s.boot_info &= 0xbf; + sdk_wifi_param_save_protect(&sdk_g_ic.s); + sdk_system_restart(); + + return true; + } +} + +bool sdk_system_upgrade_userbin_set(uint8_t userbin) { + uint8_t userbin_val, userbin_mask; + uint8_t boot_ver = sdk_system_get_boot_version(); + + if (userbin >= 2) { + return false; + } else { + if (boot_ver == 2 || boot_ver == 0x1f) { + userbin_val = userbin & 0x0f; + userbin_mask = 0xf0; + } else { + userbin_val = userbin & 0x03; + userbin_mask = 0xfc; + } + sdk_g_ic.s._unknown1d8 = (sdk_g_ic.s._unknown1d8 & userbin_mask) | userbin_val; + return true; + } +} + +uint8_t sdk_system_upgrade_userbin_check(void) { + uint8_t boot_ver = sdk_system_get_boot_version(); + if (boot_ver != 0x1f && boot_ver != 2) { + if ((sdk_g_ic.s._unknown1d8 & 0x03) == 1) { + if (sdk_g_ic.s._unknown1d8 & 0x4) { + return 1; + } else { + return 0; + } + } else { + if (sdk_g_ic.s._unknown1d8 & 0x4) { + return 0; + } else { + return 1; + } + } + } else { + if ((sdk_g_ic.s._unknown1d8 & 0x0f) == 1) { + return 1; + } else { + return 0; + } + } +} + +bool sdk_system_upgrade_flag_set(uint8_t flag) { + if (flag < 3) { + _system_upgrade_flag = flag; + return true; + } + return false; +} + +uint8_t sdk_system_upgrade_flag_check(void) { + return _system_upgrade_flag; +} + +bool sdk_system_upgrade_reboot(void) { + uint8_t boot_ver = sdk_system_get_boot_version(); + uint8_t new__unknown1d8; + + if (_system_upgrade_flag != 2) { + return false; + } + printf("reboot to use"); + if (boot_ver != 2 && boot_ver != 0x1f) { + sdk_g_ic.s.boot_info = (sdk_g_ic.s.boot_info & 0x7f) | 0x80; + sdk_g_ic.s._unknown1d8 = (sdk_g_ic.s._unknown1d8 & 0xfb) | 0x04; + if ((sdk_g_ic.s._unknown1d8 & 0x03) == 1) { + printf("1\n"); + new__unknown1d8 = sdk_g_ic.s._unknown1d8 & 0xfc; + } else { + printf("2\n"); + new__unknown1d8 = (sdk_g_ic.s._unknown1d8 & 0xfc) | 0x01; + } + } else { + if ((sdk_g_ic.s._unknown1d8 & 0x0f) == 1) { + printf("1\n"); + new__unknown1d8 = sdk_g_ic.s._unknown1d8 & 0xf0; + } else { + printf("2\n"); + new__unknown1d8 = (sdk_g_ic.s._unknown1d8 & 0xf0) | 0x01; + } + } + sdk_g_ic.s._unknown1d8 = new__unknown1d8; + sdk_wifi_param_save_protect(&sdk_g_ic.s); + sdk_system_restart(); + return true; +} + +static void _deep_sleep_phase2(void *timer_arg) { + uint32_t time_in_us = (uint32_t)timer_arg; + + printf("deep sleep %ds\n\n", time_in_us / 1000000); + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(0).STATUS)) {} + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(1).STATUS)) {} + RTC.CTRL0 = 0; + RTC.CTRL0 &= 0xffffbfff; + RTC.CTRL0 |= 0x00000030; + RTC._unknown44 = 0x00000004; + RTC._unknownc = 0x00010010; + RTC._unknown48 = (RTC._unknown48 & 0xffff01ff) | 0x0000fc00; + RTC._unknown48 = (RTC._unknown48 & 0xfffffe00) | 0x00000080; + RTC.COUNTER_ALARM = RTC.COUNTER + 136; + RTC.RESET_REASON2 = 0x00000008; + RTC.RESET_REASON0 = 0x00100000; + sdk_os_delay_us(200); + RTC.GPIO_CFG[2] = 0x00000011; + RTC.GPIO_CFG[3] = 0x00000003; + RTC._unknownc = 0x000640c8; + RTC.CTRL0 &= 0xffffffcf; + sdk_pm_rtc_clock_cali_proc(); + sdk_pm_set_sleep_time(time_in_us); + RTC.GPIO_CFG[2] = 0x00000011; + RTC.GPIO_CFG[3] = 0x00000003; + DPORT.INT_ENABLE &= ~(DPORT_INT_ENABLE_WDT); + _xt_isr_mask(1 << ETS_WDT_INUM); + RTC._unknown40 = 0xffffffff; + RTC._unknown44 = 0x00000020; + RTC._unknown10 = 0x00000000; + if (time_in_us == 0) { + RTC.RESET_REASON2 = 0x00000000; + } else { + RTC.RESET_REASON2 = 0x00000008; + } + RTC.RESET_REASON0 = 0x00100000; +} + +void sdk_system_deep_sleep(uint32_t time_in_us) { + if (sdk_wifi_get_opmode() != 2) { + sdk_wifi_station_stop(); + } + if (sdk_wifi_get_opmode() != 1) { + sdk_wifi_softap_stop(); + } + sdk_os_timer_disarm(&sdk_sta_con_timer); + sdk_os_timer_setfn(&sdk_sta_con_timer, _deep_sleep_phase2, (void *)time_in_us); + sdk_os_timer_arm(&sdk_sta_con_timer, 100, 0); +} + +bool sdk_system_update_cpu_freq(uint8_t freq) { + if (freq == 80) { + DPORT.CPU_CLOCK &= ~(DPORT_CPU_CLOCK_X2); + sdk_os_update_cpu_frequency(80); + } else if (freq == 160) { + DPORT.CPU_CLOCK |= DPORT_CPU_CLOCK_X2; + sdk_os_update_cpu_frequency(160); + } else { + return false; + } + return true; +} + +uint8_t sdk_system_get_cpu_freq(void) { + return sdk_os_get_cpu_frequency(); +} + +bool sdk_system_overclock(void) { + if (sdk_system_get_cpu_freq() == 80) { + sdk_cpu_overclock = true; + sdk_system_update_cpu_freq(160); + return true; + } + return false; +} + +bool sdk_system_restoreclock(void) { + if (sdk_system_get_cpu_freq() == 160 && sdk_cpu_overclock) { + sdk_cpu_overclock = false; + sdk_system_update_cpu_freq(80); + return true; + } + return false; +} + +uint32_t sdk_system_get_time(void) { + return WDEV.SYS_TIME + sdk_WdevTimOffSet; +} + +uint32_t sdk_system_relative_time(uint32_t reltime) { + return WDEV.SYS_TIME - reltime; +} + +void sdk_system_station_got_ip_set(struct ip_addr *ip, struct ip_addr *mask, struct ip_addr *gw) { + uint8_t *ip_bytes = (uint8_t *)&ip->addr; + uint8_t *mask_bytes = (uint8_t *)&mask->addr; + uint8_t *gw_bytes = (uint8_t *)&gw->addr; + uint32_t gpio_mask; + + sdk_g_ic.v.station_netif_info->connect_status = STATION_GOT_IP; + printf("ip:%d.%d.%d.%d,mask:%d.%d.%d.%d,gw:%d.%d.%d.%d", ip_bytes[0], ip_bytes[1], ip_bytes[2], ip_bytes[3], mask_bytes[0], mask_bytes[1], mask_bytes[2], mask_bytes[3], gw_bytes[0], gw_bytes[1], gw_bytes[2], gw_bytes[3]); + printf("\n"); + if ((sdk_g_ic.s.wifi_led_enable == 1) && (sdk_g_ic.s.wifi_mode == 1)) { + sdk_os_timer_disarm(&sdk_sta_con_timer); + gpio_mask = 1 << sdk_g_ic.s.wifi_led_gpio; + sdk_gpio_output_set(0, gpio_mask, gpio_mask, 0); + } +} + +void sdk_system_print_meminfo(void) { + printf("%s: 0x%x ~ 0x%x, len: %d\n", "data ", _data_start, _data_end, _data_end - _data_start); + printf("%s: 0x%x ~ 0x%x, len: %d\n", "rodata", _rodata_start, _rodata_end, _rodata_end - _rodata_start); + printf("%s: 0x%x ~ 0x%x, len: %d\n", "bss ", _bss_start, _bss_end, _bss_end - _bss_start); + printf("%s: 0x%x ~ 0x%x, len: %d\n", "heap ", _heap_start, 0x3fffc000, 0x3fffc000 - _heap_start); +} + +uint32_t sdk_system_get_free_heap_size(void) { + return xPortGetFreeHeapSize(); +} + +uint32_t sdk_system_get_chip_id(void) { + uint32_t mac0 = DPORT.OTP_MAC0 & 0xff000000; + uint32_t mac1 = DPORT.OTP_MAC1 & 0x00ffffff; + return (mac1 << 8) | (mac0 >> 24); +} + +uint32_t sdk_system_rtc_clock_cali_proc(void) { + return sdk_pm_rtc_clock_cali_proc(); +} + +uint32_t sdk_system_get_rtc_time(void) { + return RTC.COUNTER; +} + +struct sdk_rst_info *sdk_system_get_rst_info(void) { + return &sdk_rst_if; +} + +static struct netif *_get_netif(uint32_t mode) { + struct sdk_g_ic_netif_info *info; + + if (mode >= 2) { + return NULL; + } + if (mode == 0) { + info = sdk_g_ic.v.station_netif_info; + } else { + info = sdk_g_ic.v.softap_netif_info; + } + if (info) { + return info->netif; + } + return NULL; +} + +bool sdk_wifi_station_dhcpc_start(void) { + struct netif *netif = _get_netif(0); + if (sdk_wifi_get_opmode() == 2) { + return false; + } + if (netif && sdk_dhcpc_flag == DHCP_STOPPED) { + sdk_info.ipaddr.addr = 0; + sdk_info.netmask.addr = 0; + sdk_info.gw.addr = 0; + netif_set_addr(netif, &sdk_info.ipaddr, &sdk_info.netmask, &sdk_info.gw); + if (dhcp_start(netif)) { + return false; + } + } + sdk_dhcpc_flag = DHCP_STARTED; + return true; +} + +bool sdk_wifi_station_dhcpc_stop(void) { + struct netif *netif = _get_netif(0); + if (sdk_wifi_get_opmode() == 2) { + return false; + } + if (netif && sdk_dhcpc_flag == DHCP_STARTED) { + dhcp_stop(netif); + } + sdk_dhcpc_flag = DHCP_STOPPED; + return true; +} + +enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void) { + return sdk_dhcpc_flag; +} + +#endif /* OPEN_LIBMAIN_USER_INTERFACE */ From e3827b2f1ca5a0c1d0512b18da7e9520fdc3c7a1 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 30 Jun 2016 09:51:02 +1000 Subject: [PATCH 019/349] Fix rboot-api sdk_spi_flash_read pointer types --- extras/rboot-ota/rboot-api.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extras/rboot-ota/rboot-api.c b/extras/rboot-ota/rboot-api.c index b9a5e57..85b459d 100644 --- a/extras/rboot-ota/rboot-api.c +++ b/extras/rboot-ota/rboot-api.c @@ -249,7 +249,7 @@ bool rboot_verify_image(uint32_t initial_offset, uint32_t *image_length, const c /* sanity limit on how far we can read */ uint32_t end_limit = offset + 0x100000; image_header_t image_header __attribute__((aligned(4))); - if(sdk_spi_flash_read(offset, &image_header, sizeof(image_header_t))) { + if(sdk_spi_flash_read(offset, (uint32_t *)&image_header, sizeof(image_header_t))) { error = "Flash fail"; goto fail; } @@ -271,7 +271,7 @@ bool rboot_verify_image(uint32_t initial_offset, uint32_t *image_length, const c { /* read section header */ section_header_t header __attribute__((aligned(4))); - if(sdk_spi_flash_read(offset, &header, sizeof(section_header_t))) { + if(sdk_spi_flash_read(offset, (uint32_t *)&header, sizeof(section_header_t))) { error = "Flash fail"; goto fail; } @@ -359,7 +359,7 @@ bool rboot_digest_image(uint32_t offset, uint32_t image_length, rboot_digest_upd { uint8_t buf[32] __attribute__((aligned(4))); for(int i = 0; i < image_length; i += sizeof(buf)) { - if(sdk_spi_flash_read(offset+i, buf, sizeof(buf))) + if(sdk_spi_flash_read(offset+i, (uint32_t *)buf, sizeof(buf))) return false; uint32_t digest_len = sizeof(buf); if(i + digest_len > image_length) From 701a4c42846c8ac8ffd0b10c4baf1eb3dabfb4a9 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 30 Jun 2016 09:30:21 +1000 Subject: [PATCH 020/349] sdk_system_rtc_mem_read: Fix destination buffer pointer --- open_esplibs/libmain/user_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 1533594..9d6865b 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -110,7 +110,7 @@ bool IRAM sdk_system_rtc_mem_write(uint32_t des_addr, void *src_addr, uint16_t s } bool IRAM sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t save_size) { - uint32_t volatile *src_buf = (uint32_t *)src_addr; + uint32_t *dest_buf = (uint32_t *)des_addr; if (src_addr > 191) { return false; @@ -125,7 +125,7 @@ bool IRAM sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t sa save_size = (save_size & ~3) + 4; } for (uint8_t i = 0; i < (save_size >> 2); i++) { - src_buf[i] = RTCMEM_SYSTEM[i]; + dest_buf[i] = RTCMEM_SYSTEM[i]; } return true; } From 678b59babfdc30b473d43c0b054ad06938e23601 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 30 Jun 2016 09:22:17 +1000 Subject: [PATCH 021/349] Honour values of configCPU_CLOCK_HZ & configTICK_RATE_HZ for tick rate Fixes #147 * Can vary tick rate from 100Hz via configTICK_RATE_HZ. Note that the SDK binary libraries are hard-coded to assume the tick rate is 100Hz, so changing the tick rate may have unexpected consequences for lower layer WiFi behaviour (such as certain kinds of timeouts happening faster/slower.) * Setting configCPU_CLOCK_HZ to 160MHz means ESP will set 160MHz during initialisation. Only 80MHz and 160MHz are supported. * Timing of tasks is no longer affected by current CPU freq (whether set via configCPU_CLOCK_HZ or via sdk_system_update_cpu_freq().) Previously doubling the CPU frequency would double the tick rate. --- FreeRTOS/Source/include/FreeRTOSConfig.h | 7 +++++++ core/app_main.c | 4 ++++ examples/blink/blink.c | 1 + open_esplibs/include/esplibs/libmain.h | 4 ++++ open_esplibs/libmain/os_cpu_a.c | 5 +++-- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index 6604df3..d886828 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -34,6 +34,13 @@ #define configUSE_TICK_HOOK 0 #endif #ifndef configCPU_CLOCK_HZ +/* This is the _default_ clock speed for the CPU. Can be either 80MHz + * or 160MHz, and the system will set the clock speed to match at startup. + +Note that it's possible to change the clock speed at runtime, so you +can/should use sdk_system_get_cpu_frequency() in order to determine the +current CPU frequency, in preference to this macro. +*/ #define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 ) #endif #ifndef configTICK_RATE_HZ diff --git a/core/app_main.c b/core/app_main.c index ac74426..43fed17 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -382,6 +382,10 @@ static __attribute__((noinline)) void user_start_phase2(void) { srand(hwrand()); /* seed libc rng */ + // Set intial CPU clock speed to 160MHz if necessary + _Static_assert(configCPU_CLOCK_HZ == 80000000 || configCPU_CLOCK_HZ == 160000000, "FreeRTOSConfig must define initial clock speed as either 80MHz or 160MHz"); + sdk_system_update_cpu_freq(configCPU_CLOCK_HZ / 1000000); + // Call gcc constructor functions void (**ctor)(void); for ( ctor = &__init_array_start; ctor != &__init_array_end; ++ctor) { diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 9d2ae3c..1539b67 100644 --- a/examples/blink/blink.c +++ b/examples/blink/blink.c @@ -2,6 +2,7 @@ * * This sample code is in the public domain. */ +#include #include "espressif/esp_common.h" #include "esp/uart.h" #include "FreeRTOS.h" diff --git a/open_esplibs/include/esplibs/libmain.h b/open_esplibs/include/esplibs/libmain.h index dc36117..98ccb54 100644 --- a/open_esplibs/include/esplibs/libmain.h +++ b/open_esplibs/include/esplibs/libmain.h @@ -1,3 +1,4 @@ +#include "sdk_internal.h" #ifndef _ESPLIBS_LIBMAIN_H #define _ESPLIBS_LIBMAIN_H @@ -5,6 +6,9 @@ // misc.c int sdk_os_get_cpu_frequency(void); + +/* Don't call this function from user code, it doesn't change the CPU + * speed. Call sdk_system_update_cpu_freq() instead. */ void sdk_os_update_cpu_frequency(int freq); // user_interface.c diff --git a/open_esplibs/libmain/os_cpu_a.c b/open_esplibs/libmain/os_cpu_a.c index 7908b6f..dac5247 100644 --- a/open_esplibs/libmain/os_cpu_a.c +++ b/open_esplibs/libmain/os_cpu_a.c @@ -7,6 +7,7 @@ #include "task.h" #include "xtensa_ops.h" #include "common_macros.h" +#include "esplibs/libmain.h" // xPortSysTickHandle is defined in FreeRTOS/Source/portable/esp8266/port.c but // does not exist in any header files. @@ -66,7 +67,7 @@ void IRAM sdk__xt_int_exit(void) { void IRAM sdk__xt_timer_int(void) { uint32_t trigger_ccount; uint32_t current_ccount; - uint32_t ccount_interval = portTICK_RATE_MS * 80000; //FIXME + uint32_t ccount_interval = portTICK_RATE_MS * sdk_os_get_cpu_frequency() * 1000; do { RSR(trigger_ccount, ccompare0); @@ -87,7 +88,7 @@ void IRAM sdk__xt_timer_int1(void) { void IRAM sdk__xt_tick_timer_init(void) { uint32_t ints_enabled; uint32_t current_ccount; - uint32_t ccount_interval = portTICK_RATE_MS * 80000; //FIXME + uint32_t ccount_interval = portTICK_RATE_MS * sdk_os_get_cpu_frequency() * 1000; RSR(current_ccount, ccount); WSR(current_ccount + ccount_interval, ccompare0); From 6c9d478336e9976d6844cb32241183546465ed9b Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 30 Jun 2016 16:08:59 +1000 Subject: [PATCH 022/349] open_esplibs: Add README and Copyright headers --- open_esplibs/README.md | 15 +++++++++++++++ open_esplibs/include/esplibs/libmain.h | 8 ++++++++ open_esplibs/include/esplibs/libnet80211.h | 8 ++++++++ open_esplibs/include/esplibs/libphy.h | 8 ++++++++ open_esplibs/include/esplibs/libpp.h | 8 ++++++++ open_esplibs/libmain/misc.c | 5 +++++ open_esplibs/libmain/os_cpu_a.c | 5 +++++ open_esplibs/libmain/spi_flash.c | 5 +++++ open_esplibs/libmain/timers.c | 5 +++++ open_esplibs/libmain/uart.c | 5 +++++ open_esplibs/libmain/user_interface.c | 5 +++++ open_esplibs/libmain/xtensa_context.S | 5 +++++ 12 files changed, 82 insertions(+) create mode 100644 open_esplibs/README.md diff --git a/open_esplibs/README.md b/open_esplibs/README.md new file mode 100644 index 0000000..ba11452 --- /dev/null +++ b/open_esplibs/README.md @@ -0,0 +1,15 @@ +# Open Espressif Libs + +These are functional recreations of the MIT licensed binary Espressif SDK libraries found in `lib`. They keep the same functionality as the SDK libraries (possibly with bugfixes or other minor tweaks), but are compiled from source. + +Most of the reverse engineering work so far has been by Alex Stewart (@foogod). + +See http://esp8266-re.foogod.com/wiki/ for more technical details of SDK library internals. + +# Disabling + +The open ESP libs are compiled in by default, and they automatically replace any binary SDK symbols (functions, etc.) with the same names. + +To compile using the binary SDK libraries only, override the COMPONENTS list in parameters.mk to remove the open_esplibs component, or add -DOPEN_ESPLIBS=0 to CPPFLAGS. + +To selectively replace some functionality with binary SDK functionality for debugging, edit the header file open_esplibs/include/open_esplibs.h diff --git a/open_esplibs/include/esplibs/libmain.h b/open_esplibs/include/esplibs/libmain.h index 98ccb54..9bbfe6f 100644 --- a/open_esplibs/include/esplibs/libmain.h +++ b/open_esplibs/include/esplibs/libmain.h @@ -1,3 +1,11 @@ +/* Internal function declarations for Espressif SDK libmain functions. + + These are internal-facing declarations, it is not recommended to include these headers in your program. + (look at the headers in include/espressif/ instead and use these whenever possible.) + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE. +*/ #include "sdk_internal.h" #ifndef _ESPLIBS_LIBMAIN_H #define _ESPLIBS_LIBMAIN_H diff --git a/open_esplibs/include/esplibs/libnet80211.h b/open_esplibs/include/esplibs/libnet80211.h index 12f5980..1c0ac9a 100644 --- a/open_esplibs/include/esplibs/libnet80211.h +++ b/open_esplibs/include/esplibs/libnet80211.h @@ -1,3 +1,11 @@ +/* Internal function declarations for Espressif SDK libnet80211 functions. + + These are internal-facing declarations, it is not recommended to include these headers in your program. + (look at the headers in include/espressif/ instead and use these whenever possible.) + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE. +*/ #ifndef _ESPLIBS_LIBNET80211_H #define _ESPLIBS_LIBNET80211_H diff --git a/open_esplibs/include/esplibs/libphy.h b/open_esplibs/include/esplibs/libphy.h index 92ec355..2c7639c 100644 --- a/open_esplibs/include/esplibs/libphy.h +++ b/open_esplibs/include/esplibs/libphy.h @@ -1,3 +1,11 @@ +/* Internal function declarations for Espressif SDK libphy functions. + + These are internal-facing declarations, it is not recommended to include these headers in your program. + (look at the headers in include/espressif/ instead and use these whenever possible.) + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE. +*/ #ifndef _ESPLIBS_LIBPHY_H #define _ESPLIBS_LIBPHY_H diff --git a/open_esplibs/include/esplibs/libpp.h b/open_esplibs/include/esplibs/libpp.h index c2ed458..238ad02 100644 --- a/open_esplibs/include/esplibs/libpp.h +++ b/open_esplibs/include/esplibs/libpp.h @@ -1,3 +1,11 @@ +/* Internal function declarations for Espressif SDK libpp functions. + + These are internal-facing declarations, it is not recommended to include these headers in your program. + (look at the headers in include/espressif/ instead and use these whenever possible.) + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE. +*/ #ifndef _ESPLIBS_LIBPP_H #define _ESPLIBS_LIBPP_H diff --git a/open_esplibs/libmain/misc.c b/open_esplibs/libmain/misc.c index 3c1cd02..f11d4fd 100644 --- a/open_esplibs/libmain/misc.c +++ b/open_esplibs/libmain/misc.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain misc.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_MISC // The contents of this file are only built if OPEN_LIBMAIN_MISC is set to true diff --git a/open_esplibs/libmain/os_cpu_a.c b/open_esplibs/libmain/os_cpu_a.c index dac5247..9ace3a8 100644 --- a/open_esplibs/libmain/os_cpu_a.c +++ b/open_esplibs/libmain/os_cpu_a.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain os_cpu_o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_OS_CPU_A // The contents of this file are only built if OPEN_LIBMAIN_OS_CPU_A is set to true diff --git a/open_esplibs/libmain/spi_flash.c b/open_esplibs/libmain/spi_flash.c index ee2d2f4..91ee829 100644 --- a/open_esplibs/libmain/spi_flash.c +++ b/open_esplibs/libmain/spi_flash.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain os_cpu_o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_SPI_FLASH // The contents of this file are only built if OPEN_LIBMAIN_SPI_FLASH is set to true diff --git a/open_esplibs/libmain/timers.c b/open_esplibs/libmain/timers.c index d460088..4c1edb9 100644 --- a/open_esplibs/libmain/timers.c +++ b/open_esplibs/libmain/timers.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain timers.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_TIMERS // The contents of this file are only built if OPEN_LIBMAIN_TIMERS is set to true diff --git a/open_esplibs/libmain/uart.c b/open_esplibs/libmain/uart.c index 5ee2699..b93d681 100644 --- a/open_esplibs/libmain/uart.c +++ b/open_esplibs/libmain/uart.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain uart.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_UART // The contents of this file are only built if OPEN_LIBMAIN_UART is set to true diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 9d6865b..5e89424 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain user_interface.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_USER_INTERFACE // The contents of this file are only built if OPEN_LIBMAIN_USER_INTERFACE is set to true diff --git a/open_esplibs/libmain/xtensa_context.S b/open_esplibs/libmain/xtensa_context.S index 139d5db..9e94cfd 100644 --- a/open_esplibs/libmain/xtensa_context.S +++ b/open_esplibs/libmain/xtensa_context.S @@ -1,3 +1,8 @@ +/* Recreated Espressif libmain xtensa_context.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ #include "open_esplibs.h" #if OPEN_LIBMAIN_XTENSA_CONTEXT // The contents of this file are only built if OPEN_LIBMAIN_XTENSA_CONTEXT is set to true From a41407e3d1422f7e339db2165f612d20b73f4a45 Mon Sep 17 00:00:00 2001 From: sheinz Date: Wed, 6 Jul 2016 15:57:00 +0300 Subject: [PATCH 023/349] DHT11/22 library fix Support DHT11/DHT22 modules. Data representation fix. Library refactoring. --- examples/dht_sensor/dht_sensor.c | 35 ++--- extras/dht/dht.c | 221 +++++++++++++++++++------------ extras/dht/dht.h | 31 ++++- 3 files changed, 181 insertions(+), 106 deletions(-) diff --git a/examples/dht_sensor/dht_sensor.c b/examples/dht_sensor/dht_sensor.c index 11f2c43..46292da 100644 --- a/examples/dht_sensor/dht_sensor.c +++ b/examples/dht_sensor/dht_sensor.c @@ -2,6 +2,8 @@ * * This sample code is in the public domain. */ +#include +#include #include "espressif/esp_common.h" #include "esp/uart.h" #include "FreeRTOS.h" @@ -13,29 +15,30 @@ * to read and print a new temperature and humidity measurement * from a sensor attached to GPIO pin 4. */ -int const dht_gpio = 4; +uint8_t const dht_gpio = 12; void dhtMeasurementTask(void *pvParameters) { - int8_t temperature = 0; - int8_t humidity = 0; + int16_t temperature = 0; + int16_t humidity = 0; - // DHT sensors that come mounted on a PCB generally have - // pull-up resistors on the data pin. It is recommended - // to provide an external pull-up resistor otherwise... - gpio_set_pullup(dht_gpio, false, false); + // DHT sensors that come mounted on a PCB generally have + // pull-up resistors on the data pin. It is recommended + // to provide an external pull-up resistor otherwise... + gpio_set_pullup(dht_gpio, false, false); - while(1) { + while(1) { + if (dht_read_data(dht_gpio, &humidity, &temperature)) { + printf("Humidity: %d.%d%% Temp: %d.%dC\n", + humidity / 10, humidity % 10, + temperature / 10, abs(temperature) % 10); + } else { + printf("Could not read data from sensor\n"); + } - if (dht_fetch_data(dht_gpio, &humidity, &temperature)) { - printf("Humidity: %i%% Temp: %iC\n", humidity, temperature); - } else { - printf("Could not read data from sensor..."); + // Three second delay... + vTaskDelay(3000 / portTICK_RATE_MS); } - - // Three second delay... - vTaskDelay(3000 / portTICK_RATE_MS); - } } void user_init(void) diff --git a/extras/dht/dht.c b/extras/dht/dht.c index 100763a..cd84eba 100644 --- a/extras/dht/dht.c +++ b/extras/dht/dht.c @@ -6,23 +6,26 @@ */ #include "dht.h" +#include "FreeRTOS.h" #include "string.h" #include "task.h" #include "esp/gpio.h" #include // sdk_os_delay_us -#ifndef DEBUG_DHT -#define DEBUG_DHT 0 -#endif +// DHT timer precision in microseconds +#define DHT_TIMER_INTERVAL 2 +#define DHT_DATA_BITS 40 -#if DEBUG_DHT +// #define DEBUG_DHT + +#ifdef DEBUG_DHT #define debug(fmt, ...) printf("%s" fmt "\n", "dht: ", ## __VA_ARGS__); #else #define debug(fmt, ...) /* (do nothing) */ #endif -/* +/* * Note: * A suitable pull-up resistor should be connected to the selected GPIO line * @@ -32,17 +35,17 @@ * * * Initializing communications with the DHT requires four 'phases' as follows: - * + * * Phase A - MCU pulls signal low for at least 18000 us * Phase B - MCU allows signal to float back up and waits 20-40us for DHT to pull it low * Phase C - DHT pulls signal low for ~80us * Phase D - DHT lets signal float back up for ~80us - * + * * After this, the DHT transmits its first bit by holding the signal low for 50us * and then letting it float back high for a period of time that depends on the data bit. * duration_data_high is shorter than 50us for a logic '0' and longer than 50us for logic '1'. * - * There are a total of 40 data bits trasnmitted sequentially. These bits are read into a byte array + * There are a total of 40 data bits transmitted sequentially. These bits are read into a byte array * of length 5. The first and third bytes are humidity (%) and temperature (C), respectively. Bytes 2 and 4 * are zero-filled and the fifth is a checksum such that: * @@ -50,95 +53,143 @@ * */ -/* - * @pin the selected GPIO pin - * @interval how frequently the pin state is checked in microseconds - * @timeout maximum length of time to wait for the expected pin state - * @expected_pin_state high (true) or low (false) pin state - * @counter pointer to external uint8_t for tallying the duration waited for the pin state -*/ -bool dht_await_pin_state(uint8_t pin, uint8_t interval, uint8_t timeout, bool expected_pin_state, uint8_t * counter) { - - for (*counter = 0; *counter < timeout; *counter+=interval) { - if (gpio_read(pin) == expected_pin_state) return true; - sdk_os_delay_us(interval); +/** + * Wait specified time for pin to go to a specified state. + * If timeout is reached and pin doesn't go to a requested state + * false is returned. + * The elapsed time is returned in pointer 'duration' if it is not NULL. + */ +static bool dht_await_pin_state(uint8_t pin, uint32_t timeout, + bool expected_pin_state, uint32_t *duration) +{ + for (uint32_t i = 0; i < timeout; i += DHT_TIMER_INTERVAL) { + if (gpio_read(pin) == expected_pin_state) { + if (duration) { + *duration = i; + } + return true; + } + sdk_os_delay_us(DHT_TIMER_INTERVAL); } return false; } -/* - * - * - * @pin the selected GPIO pin - * @humidity pointer to external int8_t to store resulting humidity value - * @temperature pointer to external int8_t to store resulting temperature value -*/ - -bool dht_fetch_data(int8_t pin, int8_t * humidity, int8_t * temperature) { - int8_t data[40] = {0}; - int8_t result[5] = {0}; - uint8_t i = 0; - - uint8_t init_phase_duration = 0; - uint8_t duration_data_low = 0; - uint8_t duration_data_high = 0; - - gpio_enable(pin, GPIO_OUT_OPEN_DRAIN); - - taskENTER_CRITICAL(); +/** + * Request data from DHT and read raw bit stream. + * The function call should be protected from task switching. + * Return false if error occurred. + */ +static inline bool dht_fetch_data(uint8_t pin, bool bits[DHT_DATA_BITS]) +{ + uint32_t low_duration; + uint32_t high_duration; // Phase 'A' pulling signal low to initiate read sequence gpio_write(pin, 0); sdk_os_delay_us(20000); gpio_write(pin, 1); - // Step through Phase 'B' at 2us intervals, 40us max - if (dht_await_pin_state(pin, 2, 40, false, &init_phase_duration)) { - // Step through Phase 'C ' at 2us intervals, 88us max - if (dht_await_pin_state(pin, 2, 88, true, &init_phase_duration)) { - // Step through Phase 'D' at 2us intervals, 88us max - if (dht_await_pin_state(pin, 2, 88, false, &init_phase_duration)) { - - // Read in each of the 40 bits of data... - for (i = 0; i < 40; i++) { - if (dht_await_pin_state(pin, 2, 60, true, &duration_data_low)) { - if (dht_await_pin_state(pin, 2, 75, false, &duration_data_high)) { - data[i] = duration_data_high > duration_data_low; - } - } - } - - taskEXIT_CRITICAL(); - - for (i = 0; i < 40; i++) { - // Read each bit into 'result' byte array... - result[i/8] <<= 1; - result[i/8] |= data[i]; - } - - if (result[4] == ((result[0] + result[1] + result[2] + result[3]) & 0xFF)) { - // Data valid, checksum succeeded... - *humidity = result[0]; - *temperature = result[2]; - debug("Successfully retrieved sensor data..."); - return true; - } else { - debug("Checksum failed, invalid data received from sensor..."); - } - - } else { - debug("Initialization error, problem in phase 'D'..."); - } - } else { - debug("Initialization error, problem in phase 'C'..."); - } - } else { - debug("Initialization error, problem in phase 'B'..."); + // Step through Phase 'B', 40us + if (!dht_await_pin_state(pin, 40, false, NULL)) { + debug("Initialization error, problem in phase 'B'\n"); + return false; } - - taskEXIT_CRITICAL(); - return false; + + // Step through Phase 'C', 88us + if (!dht_await_pin_state(pin, 88, true, NULL)) { + debug("Initialization error, problem in phase 'C'\n"); + return false; + } + + // Step through Phase 'D', 88us + if (!dht_await_pin_state(pin, 88, false, NULL)) { + debug("Initialization error, problem in phase 'D'\n"); + return false; + } + + // Read in each of the 40 bits of data... + for (int i = 0; i < DHT_DATA_BITS; i++) { + if (!dht_await_pin_state(pin, 65, true, &low_duration)) { + debug("LOW bit timeout\n"); + return false; + } + if (!dht_await_pin_state(pin, 75, false, &high_duration)){ + debug("HIGHT bit timeout\n"); + return false; + } + bits[i] = high_duration > low_duration; + } + return true; } +/** + * Pack two data bytes into single value and take into account sign bit. + */ +static inline int16_t dht_convert_data(uint8_t msb, uint8_t lsb) +{ + int16_t data; + +#if DHT_TYPE == DHT22 + data = msb & 0x7F; + data <<= 8; + data |= lsb; + if (msb & BIT(15)) { + data = 0 - data; // convert it to negative + } +#elif DHT_TYPE == DHT11 + data = msb * 10; +#else +#error "Unsupported DHT type" +#endif + + return data; +} + +bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature) +{ + bool bits[DHT_DATA_BITS]; + uint8_t data[DHT_DATA_BITS/8] = {0}; + bool result; + + gpio_enable(pin, GPIO_OUT_OPEN_DRAIN); + + taskENTER_CRITICAL(); + result = dht_fetch_data(pin, bits); + taskEXIT_CRITICAL(); + + if (!result) { + return false; + } + + for (uint8_t i = 0; i < DHT_DATA_BITS; i++) { + // Read each bit into 'result' byte array... + data[i/8] <<= 1; + data[i/8] |= bits[i]; + } + + if (data[4] != (data[0] + data[1] + data[2] + data[3])) { + debug("Checksum failed, invalid data received from sensor\n"); + return false; + } + + *humidity = dht_convert_data(data[0], data[1]); + *temperature = dht_convert_data(data[2], data[3]); + + debug("Sensor data: humidity=%d, temp=%d\n", *humidity, *temperature); + + return true; +} + +bool dht_read_float_data(uint8_t pin, float *humidity, float *temperature) +{ + int16_t i_humidity, i_temp; + + if (dht_read_data(pin, &i_humidity, &i_temp)) { + *humidity = (float)i_humidity / 10; + *temperature = (float)i_temp / 10; + return true; + } + return false; +} diff --git a/extras/dht/dht.h b/extras/dht/dht.h index c8a5ed9..3f69a29 100644 --- a/extras/dht/dht.h +++ b/extras/dht/dht.h @@ -5,13 +5,34 @@ * */ -#ifndef __DTH_H__ +#ifndef __DHT_H__ #define __DHT_H__ -#include "FreeRTOS.h" +#include +#include -bool dht_wait_for_pin_state(uint8_t pin, uint8_t interval, uint8_t timeout, bool expected_pin_sate, uint8_t * counter); -bool dht_fetch_data(int8_t pin, int8_t * humidity, int8_t * temperature); +#define DHT11 11 +#define DHT22 22 -#endif +// Type of sensor to use +#define DHT_TYPE DHT22 +/** + * Read data from sensor on specified pin. + * + * Humidity and temperature is returned as integers. + * For example: humidity=625 is 62.5 % + * temperature=24.4 is 24.4 degrees Celsius + * + */ +bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature); + + +/** + * Float version of dht_read_data. + * + * Return values as floating point values. + */ +bool dht_read_float_data(uint8_t pin, float *humidity, float *temperature); + +#endif // __DHT_H__ From 6ff78f802d3c8b14c225786625770887c0011c81 Mon Sep 17 00:00:00 2001 From: sheinz Date: Wed, 6 Jul 2016 21:01:44 +0300 Subject: [PATCH 024/349] DHT11/DHT22 library fixes. Fixed temperature below zero. Fixed checksum overflow verification. Fixed inconsistent reading of DHT11. --- examples/dht_sensor/dht_sensor.c | 8 ++++---- extras/dht/dht.c | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/dht_sensor/dht_sensor.c b/examples/dht_sensor/dht_sensor.c index 46292da..425d5c0 100644 --- a/examples/dht_sensor/dht_sensor.c +++ b/examples/dht_sensor/dht_sensor.c @@ -15,7 +15,7 @@ * to read and print a new temperature and humidity measurement * from a sensor attached to GPIO pin 4. */ -uint8_t const dht_gpio = 12; +uint8_t const dht_gpio = 4; void dhtMeasurementTask(void *pvParameters) { @@ -29,9 +29,9 @@ void dhtMeasurementTask(void *pvParameters) while(1) { if (dht_read_data(dht_gpio, &humidity, &temperature)) { - printf("Humidity: %d.%d%% Temp: %d.%dC\n", - humidity / 10, humidity % 10, - temperature / 10, abs(temperature) % 10); + printf("Humidity: %d%% Temp: %dC\n", + humidity / 10, + temperature / 10); } else { printf("Could not read data from sensor\n"); } diff --git a/extras/dht/dht.c b/extras/dht/dht.c index cd84eba..3930735 100644 --- a/extras/dht/dht.c +++ b/extras/dht/dht.c @@ -64,13 +64,14 @@ static bool dht_await_pin_state(uint8_t pin, uint32_t timeout, bool expected_pin_state, uint32_t *duration) { for (uint32_t i = 0; i < timeout; i += DHT_TIMER_INTERVAL) { + // need to wait at least a single interval to prevent reading a jitter + sdk_os_delay_us(DHT_TIMER_INTERVAL); if (gpio_read(pin) == expected_pin_state) { if (duration) { *duration = i; } return true; } - sdk_os_delay_us(DHT_TIMER_INTERVAL); } return false; @@ -135,7 +136,7 @@ static inline int16_t dht_convert_data(uint8_t msb, uint8_t lsb) data = msb & 0x7F; data <<= 8; data |= lsb; - if (msb & BIT(15)) { + if (msb & BIT(7)) { data = 0 - data; // convert it to negative } #elif DHT_TYPE == DHT11 @@ -169,7 +170,7 @@ bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature) data[i/8] |= bits[i]; } - if (data[4] != (data[0] + data[1] + data[2] + data[3])) { + if (data[4] != ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) { debug("Checksum failed, invalid data received from sensor\n"); return false; } From 4a2679271e9ab447741d30eeff9e1a9438791e73 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 7 Jul 2016 18:04:17 +0300 Subject: [PATCH 025/349] BMP280 pressure sensor driver draft implementation. --- examples/bmp280/Makefile | 3 + examples/bmp280/bmp280_example.c | 49 ++++++ extras/bmp280/bmp280.c | 257 +++++++++++++++++++++++++++++++ extras/bmp280/bmp280.h | 119 ++++++++++++++ extras/bmp280/component.mk | 9 ++ 5 files changed, 437 insertions(+) create mode 100644 examples/bmp280/Makefile create mode 100644 examples/bmp280/bmp280_example.c create mode 100644 extras/bmp280/bmp280.c create mode 100644 extras/bmp280/bmp280.h create mode 100644 extras/bmp280/component.mk diff --git a/examples/bmp280/Makefile b/examples/bmp280/Makefile new file mode 100644 index 0000000..8340fcc --- /dev/null +++ b/examples/bmp280/Makefile @@ -0,0 +1,3 @@ +PROGRAM=BMP280_example +EXTRA_COMPONENTS = extras/i2c extras/bmp280 +include ../../common.mk diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c new file mode 100644 index 0000000..a9d6325 --- /dev/null +++ b/examples/bmp280/bmp280_example.c @@ -0,0 +1,49 @@ +#include + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +#include "bmp280/bmp280.h" + + +const uint8_t scl_pin = 5; +const uint8_t sda_pin = 4; + + +static void bmp280_task(void *pvParameters) +{ + bmp280_params_t params; + float pressure, temperature; + + bmp280_init_default_params(¶ms); + while (1) { + while (!bmp280_init(¶ms, scl_pin, sda_pin)) { + printf("BMP280 initialization failed\n"); + vTaskDelay(1000 / portTICK_RATE_MS); + } + + while(1) { + vTaskDelay(1000 / portTICK_RATE_MS); + if (!bmp280_read(&temperature, &pressure)) { + printf("Temperature/pressure reading failed\n"); + break; + } + printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + // Just some information + printf("\n"); + printf("SDK version : %s\n", sdk_system_get_sdk_version()); + printf("GIT version : %s\n", GITSHORTREV); + + xTaskCreate(bmp280_task, (signed char *)"bmp280_task", 256, NULL, 2, NULL); +} diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c new file mode 100644 index 0000000..9d8939e --- /dev/null +++ b/extras/bmp280/bmp280.c @@ -0,0 +1,257 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "bmp280.h" +#include "i2c/i2c.h" + + +#ifdef BMP280_DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt "\n", "bmp280: ", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + +/** + * BMP280 registers + */ +#define BMP280_REG_TEMP_XLSB 0xFC /* bits: 7-4 */ +#define BMP280_REG_TEMP_LSB 0xFB +#define BMP280_REG_TEMP_MSB 0xFA +#define BMP280_REG_TEMP (BMP280_REG_TEMP_MSB) +#define BMP280_REG_PRESS_XLSB 0xF9 /* bits: 7-4 */ +#define BMP280_REG_PRESS_LSB 0xF8 +#define BMP280_REG_PRESS_MSB 0xF7 +#define BMP280_REG_PRESSURE (BMP280_REG_PRESS_MSB) +#define BMP280_REG_CONFIG 0xF5 /* bits: 7-5 t_sb; 4-2 filter; 0 spi3w_en */ +#define BMP280_REG_CTRL 0xF4 /* bits: 7-5 osrs_t; 4-2 osrs_p; 1-0 mode */ +#define BMP280_REG_STATUS 0xF3 /* bits: 3 measuring; 0 im_update */ +#define BMP280_REG_RESET 0xE0 +#define BMP280_REG_ID 0xD0 +#define BMP280_REG_CALLIB 0x88 + + +#define BMP280_CHIP_ID 0x58 /* BMP280 has chip-id 0x58 */ +#define BMP280_RESET_VALUE 0xB6 + +typedef struct __attribute__((packed)) { + uint16_t dig_T1; + int16_t dig_T2; + int16_t dig_T3; + uint16_t dig_P1; + int16_t dig_P2; + int16_t dig_P3; + int16_t dig_P4; + int16_t dig_P5; + int16_t dig_P6; + int16_t dig_P7; + int16_t dig_P8; + int16_t dig_P9; +} BMP280_Callib; + +static BMP280_Callib callib_data; + +void bmp280_init_default_params(bmp280_params_t *params) +{ + params->mode = BMP280_MODE_NORMAL; + params->filter = BMP280_FILTER_OFF; + params->oversampling = BMP280_STANDARD; + params->standby = BMP280_STANDBY_250; +} + +static uint8_t read_register8(uint8_t addr) +{ + uint8_t r = 0; + if (!i2c_slave_read(BMP280_ADDRESS, addr, &r, 1)) { + r = 0; + } + return r; +} + +/** + * Even though value is signed the actual value is always positive. + * So, no need to take care of sign bit. + */ +static bool read_register24(uint8_t addr, int32_t *value) +{ + uint8_t d[] = {0, 0, 0}; + if (i2c_slave_read(BMP280_ADDRESS, addr, d, sizeof(d))) { + *value = d[0]; + *value <<= 8; + *value |= d[1]; + *value <<= 4; + *value |= d[2]>>4; + return true; + } + return false; +} + +static bool check_chip_id() +{ + return (read_register8(BMP280_REG_ID)==BMP280_CHIP_ID); +} + +static bool read_callibration_data() +{ + if (!i2c_slave_read(BMP280_ADDRESS, BMP280_REG_CALLIB, + (uint8_t*)&callib_data, sizeof(callib_data))) { + return false; + } + debug("Calibration data received:"); + debug("dig_T1=%d", callib_data.dig_T1); + debug("dig_T2=%d", callib_data.dig_T2); + debug("dig_T3=%d", callib_data.dig_T3); + debug("dig_P1=%d", callib_data.dig_P1); + debug("dig_P2=%d", callib_data.dig_P2); + debug("dig_P3=%d", callib_data.dig_P3); + debug("dig_P4=%d", callib_data.dig_P4); + debug("dig_P5=%d", callib_data.dig_P5); + debug("dig_P6=%d", callib_data.dig_P6); + debug("dig_P7=%d", callib_data.dig_P7); + debug("dig_P8=%d", callib_data.dig_P8); + debug("dig_P9=%d", callib_data.dig_P9); + return true; +} + +static bool write_register8(uint8_t addr, uint8_t value) +{ + uint8_t d[] = {addr, value}; + + return i2c_slave_write(BMP280_ADDRESS, d, 2); +} + +bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) +{ + i2c_init(scl_pin, sda_pin); + if (!check_chip_id()) { + debug("Sensor not found or wrong sensor version"); + return false; + } + + if (!read_callibration_data()) { + debug("Failed to read calibration data"); + return false; + } + + uint8_t config = (params->standby << 5) | (params->filter << 2); + debug("Writing config reg=%x", config); + if (!write_register8(BMP280_REG_CONFIG, config)) { + debug("Failed configuring sensor"); + return false; + } + + uint8_t oversampling_temp = + (params->oversampling == BMP280_ULTRA_HIGH_RES) ? 2 : 1; + + uint8_t ctrl = (oversampling_temp << 5) | (params->oversampling << 2) + | (params->mode); + + debug("Writing ctrl reg=%x", ctrl); + if (!write_register8(BMP280_REG_CTRL, ctrl)) { + debug("Failed controlling sensor"); + return false; + } + return true; +} + +bool bmp280_force_measurement() +{ + // TODO: implement + return false; +} + +/** + * Compensation algorithm is taken from BMP280 datasheet. + * + * Return value is in degrees Celsius. + */ +static inline float compensate_temperature(int32_t raw_temp, int32_t *fine_temp) +{ + int32_t var1, var2, T; + + var1 = ((((raw_temp>>3) - ((int32_t)callib_data.dig_T1<<1))) + * ((int32_t)callib_data.dig_T2)) >> 11; + + var2 = (((((raw_temp>>4) - ((int32_t)callib_data.dig_T1)) + * ((raw_temp>>4) - ((int32_t)callib_data.dig_T1))) >> 12) + * ((int32_t)callib_data.dig_T3)) >> 14; + + *fine_temp = var1 + var2; + T = (*fine_temp * 5 + 128) >> 8; + return (float)T/100; +} + +/** + * Compensation algorithm is taken from BMP280 datasheet. + * + * Return value is in Pa. + */ +static inline float compensate_pressure(int32_t raw_press, int32_t fine_temp) +{ + int64_t var1, var2, p; + + var1 = ((int64_t)fine_temp) - 128000; + var2 = var1 * var1 * (int64_t)callib_data.dig_P6; + var2 = var2 + ((var1*(int64_t)callib_data.dig_P5)<<17); + var2 = var2 + (((int64_t)callib_data.dig_P4)<<35); + var1 = ((var1 * var1 * (int64_t)callib_data.dig_P3)>>8) + + ((var1 * (int64_t)callib_data.dig_P2)<<12); + var1 = (((((int64_t)1)<<47)+var1))*((int64_t)callib_data.dig_P1)>>33; + + if (var1 == 0) { + return 0; // avoid exception caused by division by zero + } + + p = 1048576 - raw_press; + p = (((p<<31) - var2)*3125) / var1; + var1 = (((int64_t)callib_data.dig_P9) * (p>>13) * (p>>13)) >> 25; + var2 = (((int64_t)callib_data.dig_P8) * p) >> 19; + + p = ((p + var1 + var2) >> 8) + (((int64_t)callib_data.dig_P7)<<4); + return (float)p/256; +} + +bool bmp280_read(float *temperature, float *pressure) +{ + int32_t raw_pressure; + int32_t raw_temp; + int32_t fine_temp; + + if (!read_register24(BMP280_REG_TEMP, &raw_temp)) { + debug("Failed reading temperature"); + return false; + } + + if (!read_register24(BMP280_REG_PRESSURE, &raw_pressure)) { + debug("Failed reading pressure"); + return false; + } + + debug("Raw temperature: %d", raw_temp); + debug("Raw pressure: %d", raw_pressure); + + *temperature = compensate_temperature(raw_temp, &fine_temp); + *pressure = compensate_pressure(raw_pressure, fine_temp); + + return true; +} diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h new file mode 100644 index 0000000..fab5a8e --- /dev/null +++ b/extras/bmp280/bmp280.h @@ -0,0 +1,119 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef __BMP280_H__ +#define __BMP280_H__ + +#include +#include + +/** + * Uncomment to enable debug output. + */ +#define BMP280_DEBUG + +/** + * BMP280 address is 0x77 if SDO pin is high, + * Address is 0x76 if SDO pin is low. + */ +#define BMP280_ADDRESS 0x77 + +/** + * Mode of BMP280 module operation. + * Forced - Measurement is initiated by user. + * Normal - Continues measurement. + */ +typedef enum { + BMP280_MODE_FORCED = 1, + BMP280_MODE_NORMAL = 3 +} BMP280_Mode; + +typedef enum { + BMP280_FILTER_OFF = 0, + BMP280_FILTER_2 = 1, + BMP280_FILTER_4 = 2, + BMP280_FILTER_8 = 3, + BMP280_FILTER_16 = 4 +} BMP280_Filter; + +/** + * Pressure oversampling settings + */ +typedef enum { + BMP280_ULTRA_LOW_POWER = 1, /* oversampling x1 */ + BMP280_LOW_POWER = 2, /* oversampling x2 */ + BMP280_STANDARD = 3, /* oversampling x4 */ + BMP280_HIGH_RES = 4, /* oversampling x8 */ + BMP280_ULTRA_HIGH_RES = 5 /* oversampling x16 */ +} BMP280_Oversampling; + +/** + * Stand by time between measurements in normal mode + */ +typedef enum { + BMP280_STANDBY_05 = 0, /* stand by time 0.5ms */ + BMP280_STANDBY_62 = 1, /* stand by time 62.5ms */ + BMP280_STANDBY_125 = 2, /* stand by time 125ms */ + BMP280_STANDBY_250 = 3, /* stand by time 250ms */ + BMP280_STANDBY_500 = 4, /* stand by time 500ms */ + BMP280_STANDBY_1000 = 5, /* stand by time 1s */ + BMP280_STANDBY_2000 = 6, /* stand by time 2s */ + BMP280_STANDBY_4000 = 7, /* stand by time 4s */ +} BMP280_StandbyTime; + +/** + * Configuration parameters for BMP280 module. + * Use function bmp280_init_default_params to use default configuration. + */ +typedef struct { + BMP280_Mode mode; + BMP280_Filter filter; + BMP280_Oversampling oversampling; // pressure oversampling + BMP280_StandbyTime standby; +} bmp280_params_t; + + +/** + * Initialize default parameters. + * Default configuration is NORMAL mode. + */ +void bmp280_init_default_params(bmp280_params_t *params); + +/** + * Initialize BMP280 module. + */ +bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin); + +/** + * Start measurement in forced mode. + * The module remains in forced mode after this call. + * Do not call this method in normal mode. + */ +bool bmp280_force_measurement(); + +/** + * Read compensated temperature and pressure data. + */ +bool bmp280_read(float *temperature, float *pressure); + +#endif // __BMP280_H__ diff --git a/extras/bmp280/component.mk b/extras/bmp280/component.mk new file mode 100644 index 0000000..a075916 --- /dev/null +++ b/extras/bmp280/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/bmp1280 + +# expected anyone using bmp driver includes it as 'bmp280/bmp280.h' +INC_DIRS += $(bmp280_ROOT).. + +# args for passing into compile rule generation +bmp280_SRC_DIR = $(bmp280_ROOT) + +$(eval $(call component_compile_rules,bmp280)) From 440ad6783494fb072abbcbb96ff4ada5e21acf52 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 7 Jul 2016 23:39:25 +0300 Subject: [PATCH 026/349] BMP280 driver: Forced mode. Soft reset. --- examples/bmp280/bmp280_example.c | 43 ++++++++++++++++++++++++++++++-- extras/bmp280/bmp280.c | 33 +++++++++++++++++++++++- extras/bmp280/bmp280.h | 22 ++++++++++++++-- 3 files changed, 93 insertions(+), 5 deletions(-) diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c index a9d6325..625a60e 100644 --- a/examples/bmp280/bmp280_example.c +++ b/examples/bmp280/bmp280_example.c @@ -8,12 +8,46 @@ #include "bmp280/bmp280.h" +// In forced mode user initiate measurement each time. +// In normal mode measurement is done continuously with specified standby time. +// #define MODE_FORCED const uint8_t scl_pin = 5; const uint8_t sda_pin = 4; +#ifdef MODE_FORCED +static void bmp280_task_forced(void *pvParameters) +{ + bmp280_params_t params; + float pressure, temperature; -static void bmp280_task(void *pvParameters) + bmp280_init_default_params(¶ms); + params.mode = BMP280_MODE_FORCED; + + while (1) { + while (!bmp280_init(¶ms, scl_pin, sda_pin)) { + printf("BMP280 initialization failed\n"); + vTaskDelay(1000 / portTICK_RATE_MS); + } + + while(1) { + vTaskDelay(1000 / portTICK_RATE_MS); + if (!bmp280_force_measurement()) { + printf("Failed initiating measurement\n"); + break; + } + while (bmp280_is_measuring()) {}; // wait for measurement to complete + + if (!bmp280_read(&temperature, &pressure)) { + printf("Temperature/pressure reading failed\n"); + break; + } + printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + } + } +} +#else +static void bmp280_task_normal(void *pvParameters) { bmp280_params_t params; float pressure, temperature; @@ -35,6 +69,7 @@ static void bmp280_task(void *pvParameters) } } } +#endif void user_init(void) { @@ -45,5 +80,9 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - xTaskCreate(bmp280_task, (signed char *)"bmp280_task", 256, NULL, 2, NULL); +#ifdef MODE_FORCED + xTaskCreate(bmp280_task_forced, (signed char *)"bmp280_task", 256, NULL, 2, NULL); +#else + xTaskCreate(bmp280_task_normal, (signed char *)"bmp280_task", 256, NULL, 2, NULL); +#endif } diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index 9d8939e..dc07bf5 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -163,6 +163,10 @@ bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) uint8_t oversampling_temp = (params->oversampling == BMP280_ULTRA_HIGH_RES) ? 2 : 1; + if (params->mode == BMP280_MODE_FORCED) { + params->mode = BMP280_MODE_SLEEP; // initial mode for forced is sleep + } + uint8_t ctrl = (oversampling_temp << 5) | (params->oversampling << 2) | (params->mode); @@ -176,7 +180,25 @@ bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) bool bmp280_force_measurement() { - // TODO: implement + uint8_t ctrl = read_register8(BMP280_REG_CTRL); + ctrl &= ~0b11; // clear two lower bits + ctrl |= BMP280_MODE_FORCED; + debug("Writing ctrl reg=%x", ctrl); + if (!write_register8(BMP280_REG_CTRL, ctrl)) { + debug("Failed starting forced mode"); + return false; + } + return true; +} + +bool bmp280_is_measuring() +{ + uint8_t status = read_register8(BMP280_REG_STATUS); + if (status & (1<<3)) { + debug("Status: measuring"); + return true; + } + debug("Status: idle"); return false; } @@ -255,3 +277,12 @@ bool bmp280_read(float *temperature, float *pressure) return true; } + +bool bmp280_soft_reset() +{ + if (!write_register8(BMP280_REG_RESET, BMP280_RESET_VALUE)) { + debug("Failed resetting sensor"); + return false; + } + return true; +} diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h index fab5a8e..9307932 100644 --- a/extras/bmp280/bmp280.h +++ b/extras/bmp280/bmp280.h @@ -30,7 +30,7 @@ /** * Uncomment to enable debug output. */ -#define BMP280_DEBUG +// #define BMP280_DEBUG /** * BMP280 address is 0x77 if SDO pin is high, @@ -44,6 +44,7 @@ * Normal - Continues measurement. */ typedef enum { + BMP280_MODE_SLEEP = 0, BMP280_MODE_FORCED = 1, BMP280_MODE_NORMAL = 3 } BMP280_Mode; @@ -95,7 +96,11 @@ typedef struct { /** * Initialize default parameters. - * Default configuration is NORMAL mode. + * Default configuration: + * mode: NORAML + * filter: OFF + * oversampling: x4 + * standby time: 250ms */ void bmp280_init_default_params(bmp280_params_t *params); @@ -111,9 +116,22 @@ bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin); */ bool bmp280_force_measurement(); +/** + * Check if BMP280 is busy with measuring temperature/pressure. + * Return true if BMP280 is busy. + */ +bool bmp280_is_measuring(); + /** * Read compensated temperature and pressure data. + * Temperature in degrees Celsius. + * Pressure in Pascals. */ bool bmp280_read(float *temperature, float *pressure); +/** + * Restart BMP280 module. + */ +bool bmp280_soft_reset(); + #endif // __BMP280_H__ From c19126fc13eb598455f2bc6f9a8fcc5ee6f73f98 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 8 Jul 2016 12:40:15 +0300 Subject: [PATCH 027/349] BMP280 driver: Add README.md --- extras/bmp280/README.md | 85 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 extras/bmp280/README.md diff --git a/extras/bmp280/README.md b/extras/bmp280/README.md new file mode 100644 index 0000000..ad9ff87 --- /dev/null +++ b/extras/bmp280/README.md @@ -0,0 +1,85 @@ +# Driver for BMP280 absolute barometric pressure sensor + +The driver works only with BMP280 sensor. For BMP080/BMP180 there's a separate +driver. Even though BMP280 is a successor of BMP180 they are not compatible. +They have different registers and different operation modes. +BMP280 supports two ways of communication: spi and i2c. +This driver provides only i2c communication. +The driver is written for [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos) +framework and requires [i2c driver](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras/i2c) +from it. + +## Features + + * I2C communication. + * Forced mode (Similar to BMP180 operation). + * Normal mode. Continuous measurement. + * Soft reset. + +## Usage + +Connect BMP280 module to you ESP8266 module and specify SCL and SDA pins: + +``` +const uint8_t scl_pin = 5; +const uint8_t sda_pin = 4; +``` + +Pull up SDO pin of BMP280 in order to have address 0x77. +Or pull down SDO pin and change `#define BMP280_ADDRESS 0x77` to +`#define BMP280_ADDRESS 0x76`. Otherwise your sensor will not work. +By default address 0x77 is used, so SDO pin should be high. + +BMP280 supports two operation modes. + +### Forced mode + +In forced mode, a single measurement is performed according to selected +configuration. When the measurement is finished, the sensor returns to +sleep mode and the measurement results can be read. + +### Normal mode + +Normal mode continuously cycles between measurement period and standby period, +whose time is defined by standby_time. + +## Example + +### Forced mode + +``` +const uint8_t scl_pin = 5; +const uint8_t sda_pin = 4; +bmp280_params_t params; +float pressure, temperature; + +bmp280_init_default_params(¶ms); +params.mode = BMP280_MODE_FORCED; +bmp280_init(¶ms, scl_pin, sda_pin); + +bmp280_force_measurement(); + +while (bmp280_is_measuring()) {}; // wait for measurement to complete + +bmp280_read(&temperature, &pressure); +printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); +``` + +### Normal mode + +``` +bmp280_params_t params; +float pressure, temperature; + +bmp280_init_default_params(¶ms); +bmp280_init(¶ms, scl_pin, sda_pin); + +bmp280_read(&temperature, &pressure); +printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + +``` + +## License + +The driver is released under MIT license. +Copyright (c) 2016 sheinz (https://github.com/sheinz) From a155928f199ac0ffaae14cc02b448979094aa6ae Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 8 Jul 2016 12:49:51 +0300 Subject: [PATCH 028/349] Update README.md --- extras/bmp280/README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/extras/bmp280/README.md b/extras/bmp280/README.md index ad9ff87..64ffc1c 100644 --- a/extras/bmp280/README.md +++ b/extras/bmp280/README.md @@ -57,12 +57,14 @@ bmp280_init_default_params(¶ms); params.mode = BMP280_MODE_FORCED; bmp280_init(¶ms, scl_pin, sda_pin); -bmp280_force_measurement(); +while (1) { + bmp280_force_measurement(); + while (bmp280_is_measuring()) {}; // wait for measurement to complete -while (bmp280_is_measuring()) {}; // wait for measurement to complete - -bmp280_read(&temperature, &pressure); -printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + bmp280_read(&temperature, &pressure); + printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + vTaskDelay(1000 / portTICK_RATE_MS); +} ``` ### Normal mode @@ -74,12 +76,15 @@ float pressure, temperature; bmp280_init_default_params(¶ms); bmp280_init(¶ms, scl_pin, sda_pin); -bmp280_read(&temperature, &pressure); -printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); - +while (1) { + bmp280_read(&temperature, &pressure); + printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + vTaskDelay(1000 / portTICK_RATE_MS); +} ``` ## License The driver is released under MIT license. + Copyright (c) 2016 sheinz (https://github.com/sheinz) From db4e39b8bdc4afe16b6da713df733b002d875a0c Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 8 Jul 2016 12:52:54 +0300 Subject: [PATCH 029/349] Update component.mk Comment typo fixed. --- extras/bmp280/component.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/bmp280/component.mk b/extras/bmp280/component.mk index a075916..21323ba 100644 --- a/extras/bmp280/component.mk +++ b/extras/bmp280/component.mk @@ -1,4 +1,4 @@ -# Component makefile for extras/bmp1280 +# Component makefile for extras/bmp280 # expected anyone using bmp driver includes it as 'bmp280/bmp280.h' INC_DIRS += $(bmp280_ROOT).. From 91e2f6c0a119ec4bb1c1764124cd05fc8b5100b8 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 8 Jul 2016 14:59:21 +0300 Subject: [PATCH 030/349] BMP280 driver: typo fixed --- extras/bmp280/bmp280.c | 66 +++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index dc07bf5..b880254 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -48,7 +48,7 @@ #define BMP280_REG_STATUS 0xF3 /* bits: 3 measuring; 0 im_update */ #define BMP280_REG_RESET 0xE0 #define BMP280_REG_ID 0xD0 -#define BMP280_REG_CALLIB 0x88 +#define BMP280_REG_CALIB 0x88 #define BMP280_CHIP_ID 0x58 /* BMP280 has chip-id 0x58 */ @@ -67,9 +67,9 @@ typedef struct __attribute__((packed)) { int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; -} BMP280_Callib; +} BMP280_Calib; -static BMP280_Callib callib_data; +static BMP280_Calib calib_data; void bmp280_init_default_params(bmp280_params_t *params) { @@ -111,25 +111,25 @@ static bool check_chip_id() return (read_register8(BMP280_REG_ID)==BMP280_CHIP_ID); } -static bool read_callibration_data() +static bool read_calibration_data() { - if (!i2c_slave_read(BMP280_ADDRESS, BMP280_REG_CALLIB, - (uint8_t*)&callib_data, sizeof(callib_data))) { + if (!i2c_slave_read(BMP280_ADDRESS, BMP280_REG_CALIB, + (uint8_t*)&calib_data, sizeof(calib_data))) { return false; } debug("Calibration data received:"); - debug("dig_T1=%d", callib_data.dig_T1); - debug("dig_T2=%d", callib_data.dig_T2); - debug("dig_T3=%d", callib_data.dig_T3); - debug("dig_P1=%d", callib_data.dig_P1); - debug("dig_P2=%d", callib_data.dig_P2); - debug("dig_P3=%d", callib_data.dig_P3); - debug("dig_P4=%d", callib_data.dig_P4); - debug("dig_P5=%d", callib_data.dig_P5); - debug("dig_P6=%d", callib_data.dig_P6); - debug("dig_P7=%d", callib_data.dig_P7); - debug("dig_P8=%d", callib_data.dig_P8); - debug("dig_P9=%d", callib_data.dig_P9); + debug("dig_T1=%d", calib_data.dig_T1); + debug("dig_T2=%d", calib_data.dig_T2); + debug("dig_T3=%d", calib_data.dig_T3); + debug("dig_P1=%d", calib_data.dig_P1); + debug("dig_P2=%d", calib_data.dig_P2); + debug("dig_P3=%d", calib_data.dig_P3); + debug("dig_P4=%d", calib_data.dig_P4); + debug("dig_P5=%d", calib_data.dig_P5); + debug("dig_P6=%d", calib_data.dig_P6); + debug("dig_P7=%d", calib_data.dig_P7); + debug("dig_P8=%d", calib_data.dig_P8); + debug("dig_P9=%d", calib_data.dig_P9); return true; } @@ -148,7 +148,7 @@ bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) return false; } - if (!read_callibration_data()) { + if (!read_calibration_data()) { debug("Failed to read calibration data"); return false; } @@ -211,12 +211,12 @@ static inline float compensate_temperature(int32_t raw_temp, int32_t *fine_temp) { int32_t var1, var2, T; - var1 = ((((raw_temp>>3) - ((int32_t)callib_data.dig_T1<<1))) - * ((int32_t)callib_data.dig_T2)) >> 11; + var1 = ((((raw_temp>>3) - ((int32_t)calib_data.dig_T1<<1))) + * ((int32_t)calib_data.dig_T2)) >> 11; - var2 = (((((raw_temp>>4) - ((int32_t)callib_data.dig_T1)) - * ((raw_temp>>4) - ((int32_t)callib_data.dig_T1))) >> 12) - * ((int32_t)callib_data.dig_T3)) >> 14; + var2 = (((((raw_temp>>4) - ((int32_t)calib_data.dig_T1)) + * ((raw_temp>>4) - ((int32_t)calib_data.dig_T1))) >> 12) + * ((int32_t)calib_data.dig_T3)) >> 14; *fine_temp = var1 + var2; T = (*fine_temp * 5 + 128) >> 8; @@ -233,12 +233,12 @@ static inline float compensate_pressure(int32_t raw_press, int32_t fine_temp) int64_t var1, var2, p; var1 = ((int64_t)fine_temp) - 128000; - var2 = var1 * var1 * (int64_t)callib_data.dig_P6; - var2 = var2 + ((var1*(int64_t)callib_data.dig_P5)<<17); - var2 = var2 + (((int64_t)callib_data.dig_P4)<<35); - var1 = ((var1 * var1 * (int64_t)callib_data.dig_P3)>>8) + - ((var1 * (int64_t)callib_data.dig_P2)<<12); - var1 = (((((int64_t)1)<<47)+var1))*((int64_t)callib_data.dig_P1)>>33; + var2 = var1 * var1 * (int64_t)calib_data.dig_P6; + var2 = var2 + ((var1*(int64_t)calib_data.dig_P5)<<17); + var2 = var2 + (((int64_t)calib_data.dig_P4)<<35); + var1 = ((var1 * var1 * (int64_t)calib_data.dig_P3)>>8) + + ((var1 * (int64_t)calib_data.dig_P2)<<12); + var1 = (((((int64_t)1)<<47)+var1))*((int64_t)calib_data.dig_P1)>>33; if (var1 == 0) { return 0; // avoid exception caused by division by zero @@ -246,10 +246,10 @@ static inline float compensate_pressure(int32_t raw_press, int32_t fine_temp) p = 1048576 - raw_press; p = (((p<<31) - var2)*3125) / var1; - var1 = (((int64_t)callib_data.dig_P9) * (p>>13) * (p>>13)) >> 25; - var2 = (((int64_t)callib_data.dig_P8) * p) >> 19; + var1 = (((int64_t)calib_data.dig_P9) * (p>>13) * (p>>13)) >> 25; + var2 = (((int64_t)calib_data.dig_P8) * p) >> 19; - p = ((p + var1 + var2) >> 8) + (((int64_t)callib_data.dig_P7)<<4); + p = ((p + var1 + var2) >> 8) + (((int64_t)calib_data.dig_P7)<<4); return (float)p/256; } From 5c12b7c7e92e2317c89f618d1280f8aa042aeb1b Mon Sep 17 00:00:00 2001 From: sheinz Date: Mon, 27 Jun 2016 18:06:06 +0300 Subject: [PATCH 031/349] Draft implementation of SPIFFS integration --- .gitmodules | 3 + examples/spiffs/Makefile | 9 ++ examples/spiffs/spiffs_example.c | 180 +++++++++++++++++++++ extras/spiffs/component.mk | 17 ++ extras/spiffs/esp_spiffs.c | 187 ++++++++++++++++++++++ extras/spiffs/esp_spiffs.h | 28 ++++ extras/spiffs/spiffs | 1 + extras/spiffs/spiffs_config.h | 263 +++++++++++++++++++++++++++++++ 8 files changed, 688 insertions(+) create mode 100644 examples/spiffs/Makefile create mode 100644 examples/spiffs/spiffs_example.c create mode 100644 extras/spiffs/component.mk create mode 100644 extras/spiffs/esp_spiffs.c create mode 100644 extras/spiffs/esp_spiffs.h create mode 160000 extras/spiffs/spiffs create mode 100644 extras/spiffs/spiffs_config.h diff --git a/.gitmodules b/.gitmodules index 7a3370e..00dadd8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ path = bootloader/rboot url = https://github.com/raburton/rboot.git +[submodule "extras/spiffs/spiffs"] + path = extras/spiffs/spiffs + url = https://github.com/pellepl/spiffs.git diff --git a/examples/spiffs/Makefile b/examples/spiffs/Makefile new file mode 100644 index 0000000..b342df7 --- /dev/null +++ b/examples/spiffs/Makefile @@ -0,0 +1,9 @@ +PROGRAM=spiffs_example +EXTRA_COMPONENTS = extras/spiffs +FLASH_SIZE = 32 + +# spiffs configuration +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +include ../../common.mk diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c new file mode 100644 index 0000000..226ee51 --- /dev/null +++ b/examples/spiffs/spiffs_example.c @@ -0,0 +1,180 @@ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp8266.h" + +#include "spiffs.h" +#include "esp_spiffs.h" + + +#define TEST_FILE_NAME_LEN 16 +#define TEST_FILES 32 +#define TEST_FILE_MAX_SIZE 8192 + +typedef struct { + char name[TEST_FILE_NAME_LEN]; + uint16_t size; + uint8_t first_data_byte; +} TestFile; + +static TestFile test_files[TEST_FILES]; + +inline static void fill_test_data(uint8_t *src, uint16_t size, uint8_t first_byte) +{ + while (size--) { + *src++ = first_byte++; + } +} + +static bool write_test_files() +{ + uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + sprintf(test_files[i].name, "file_%d.dat", i); + spiffs_file f = SPIFFS_open(&fs, test_files[i].name, + SPIFFS_CREAT|SPIFFS_RDWR|SPIFFS_TRUNC, 0); + if (f < 0) { + printf("Open file operation failed\n"); + result = false; + break; + } + test_files[i].size = rand() % TEST_FILE_MAX_SIZE; + test_files[i].first_data_byte = rand() % 256; + fill_test_data(buf, test_files[i].size, test_files[i].first_data_byte); + + printf("Writing file %s size=%d\n", test_files[i].name, + test_files[i].size); + int32_t written = SPIFFS_write(&fs, f, buf, test_files[i].size); + if (written != test_files[i].size) { + printf("Write file operation failed, written=%d\n", written); + result = false; + break; + } + SPIFFS_close(&fs, f); + } + free(buf); + return result; +} + +inline static bool verify_test_data(uint8_t *data, uint16_t size, + uint8_t first_byte) +{ + while (size--) { + if (*data++ != first_byte++) { + return false; + } + } + return true; +} + +static bool verify_test_files() +{ + uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + printf("Verifying file %s\n", test_files[i].name); + spiffs_file f = SPIFFS_open(&fs, test_files[i].name, SPIFFS_RDONLY, 0); + if (f < 0) { + printf("Open file operation failed\n"); + result = false; + break; + } + + int32_t n = SPIFFS_read(&fs, f, buf, test_files[i].size); + if (n != test_files[i].size) { + printf("Read file operation failed\n"); + result = false; + break; + } + + if (!verify_test_data(buf, test_files[i].size, + test_files[i].first_data_byte)) { + printf("Data verification failed\n"); + result = false; + break; + } + + SPIFFS_close(&fs, f); + } + + free(buf); + return result; +} + +static bool cleanup_test_files() +{ + bool result = true; + + for (uint8_t i = 0; i < TEST_FILES; i++) { + printf("Removing file %s\n", test_files[i].name); + if (SPIFFS_remove(&fs, test_files[i].name) != SPIFFS_OK) { + printf("Remove file operation failed\n"); + result = false; + break; + } + } + return result; +} + +inline static void print_info() +{ + uint32_t total, used; + + SPIFFS_info(&fs, &total, &used); + + printf("FS total=%d bytes, used=%d bytes\n", total, used); + printf("FS %d %% used\n", 100 * used/total); + + // File system structure visualisation + // SPIFFS_vis(&fs); +} + +void test_task(void *pvParameters) +{ + bool result = true; + + esp_spiffs_mount(); + esp_spiffs_unmount(); // FS must be unmounted before formating + if (SPIFFS_format(&fs) == SPIFFS_OK) { + printf("Format complete\n"); + } else { + printf("Format failed\n"); + } + esp_spiffs_mount(); + + while (1) { + vTaskDelay(5000 / portTICK_RATE_MS); + + result = write_test_files(); + + if (result) { + result = verify_test_files(); + } + + print_info(); + + if (result) { + result = cleanup_test_files(); + } + + if (result) { + printf("Test passed!\n"); + } else { + printf("Test failed!\n"); + while (1) { + vTaskDelay(1); + } + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + xTaskCreate(test_task, (signed char *)"test_task", 1024, NULL, 2, NULL); +} diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk new file mode 100644 index 0000000..fcd5572 --- /dev/null +++ b/extras/spiffs/component.mk @@ -0,0 +1,17 @@ +# Component makefile for extras/spiffs + +SPIFFS_BASE_ADDR ?= 0x300000 +SPIFFS_SIZE ?= 0x100000 + +INC_DIRS += $(spiffs_ROOT) +INC_DIRS += $(spiffs_ROOT)spiffs/src + +# args for passing into compile rule generation +spiffs_SRC_DIR = $(spiffs_ROOT)spiffs/src +spiffs_SRC_DIR += $(spiffs_ROOT) + +spiffs_CFLAGS = $(CFLAGS) +spiffs_CFLAGS += -DSPIFFS_BASE_ADDR=$(SPIFFS_BASE_ADDR) +spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) + +$(eval $(call component_compile_rules,spiffs)) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c new file mode 100644 index 0000000..d6ec7d6 --- /dev/null +++ b/extras/spiffs/esp_spiffs.c @@ -0,0 +1,187 @@ +/** + * ESP8266 SPIFFS HAL configuration. + * + * Part of esp-open-rtos + * Copyright (c) 2016 sheinz https://github.com/sheinz + * MIT License + */ +#include "esp_spiffs.h" +#include "spiffs.h" +#include +#include + +spiffs fs; + +static void *work_buf = 0; +static void *fds_buf = 0; +static void *cache_buf = 0; + +/* + * Flash addresses and size alignment is a rip-off of Arduino implementation. + */ + +static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) +{ + uint32_t result = SPIFFS_OK; + uint32_t alignedBegin = (addr + 3) & (~3); + uint32_t alignedEnd = (addr + size) & (~3); + if (alignedEnd < alignedBegin) { + alignedEnd = alignedBegin; + } + + if (addr < alignedBegin) { + uint32_t nb = alignedBegin - addr; + uint32_t tmp; + if (sdk_spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + memcpy(dst, &tmp + 4 - nb, nb); + } + + if (alignedEnd != alignedBegin) { + if (sdk_spi_flash_read(alignedBegin, + (uint32_t*) (dst + alignedBegin - addr), + alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + if (addr + size > alignedEnd) { + uint32_t nb = addr + size - alignedEnd; + uint32_t tmp; + if (sdk_spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_read failed\n"); + return SPIFFS_ERR_INTERNAL; + } + + memcpy(dst + size - nb, &tmp, nb); + } + + return result; +} + +static const int UNALIGNED_WRITE_BUFFER_SIZE = 512; + +static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) +{ + uint32_t alignedBegin = (addr + 3) & (~3); + uint32_t alignedEnd = (addr + size) & (~3); + if (alignedEnd < alignedBegin) { + alignedEnd = alignedBegin; + } + + if (addr < alignedBegin) { + uint32_t ofs = alignedBegin - addr; + uint32_t nb = (size < ofs) ? size : ofs; + uint8_t tmp[4] __attribute__((aligned(4))) = {0xff, 0xff, 0xff, 0xff}; + memcpy(tmp + 4 - ofs, src, nb); + if (sdk_spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) + != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + if (alignedEnd != alignedBegin) { + uint32_t* srcLeftover = (uint32_t*) (src + alignedBegin - addr); + uint32_t srcAlign = ((uint32_t) srcLeftover) & 3; + if (!srcAlign) { + if (sdk_spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, + alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + else { + uint8_t buf[UNALIGNED_WRITE_BUFFER_SIZE]; + for (uint32_t sizeLeft = alignedEnd - alignedBegin; sizeLeft; ) { + size_t willCopy = sizeLeft < sizeof(buf) ? sizeLeft : sizeof(buf); + memcpy(buf, srcLeftover, willCopy); + + if (sdk_spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) + != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + + sizeLeft -= willCopy; + srcLeftover += willCopy; + alignedBegin += willCopy; + } + } + } + + if (addr + size > alignedEnd) { + uint32_t nb = addr + size - alignedEnd; + uint32_t tmp = 0xffffffff; + memcpy(&tmp, src + size - nb, nb); + + if (sdk_spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + printf("spi_flash_write failed\n"); + return SPIFFS_ERR_INTERNAL; + } + } + + return SPIFFS_OK; +} + +static s32_t esp_spiffs_erase(u32_t addr, u32_t size) +{ + if (addr % SPI_FLASH_SEC_SIZE) { + printf("Unaligned erase addr=%x\n", addr); + } + if (size % SPI_FLASH_SEC_SIZE) { + printf("Unaligned erase size=%d\n", size); + } + + const uint32_t sector = addr / SPI_FLASH_SEC_SIZE; + const uint32_t sectorCount = size / SPI_FLASH_SEC_SIZE; + + for (uint32_t i = 0; i < sectorCount; ++i) { + sdk_spi_flash_erase_sector(sector + i); + } + return SPIFFS_OK; +} + +int32_t esp_spiffs_mount() +{ + spiffs_config config = {0}; + + config.hal_read_f = esp_spiffs_read; + config.hal_write_f = esp_spiffs_write; + config.hal_erase_f = esp_spiffs_erase; + + size_t workBufSize = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); + size_t fdsBufSize = SPIFFS_buffer_bytes_for_filedescs(&fs, 5); + size_t cacheBufSize = SPIFFS_buffer_bytes_for_cache(&fs, 5); + + work_buf = malloc(workBufSize); + fds_buf = malloc(fdsBufSize); + cache_buf = malloc(cacheBufSize); + printf("spiffs memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", + workBufSize, fdsBufSize, cacheBufSize); + + int32_t err = SPIFFS_mount(&fs, &config, work_buf, fds_buf, fdsBufSize, + cache_buf, cacheBufSize, 0); + + if (err != SPIFFS_OK) { + printf("Error spiffs mount: %d\n", err); + } + + return err; +} + +void esp_spiffs_unmount() +{ + SPIFFS_unmount(&fs); + + free(work_buf); + free(fds_buf); + free(cache_buf); + + work_buf = 0; + fds_buf = 0; + cache_buf = 0; +} diff --git a/extras/spiffs/esp_spiffs.h b/extras/spiffs/esp_spiffs.h new file mode 100644 index 0000000..3022d51 --- /dev/null +++ b/extras/spiffs/esp_spiffs.h @@ -0,0 +1,28 @@ +/** + * ESP8266 SPIFFS HAL configuration. + * + * Part of esp-open-rtos + * Copyright (c) 2016 sheinz https://github.com/sheinz + * MIT License + */ +#ifndef __ESP_SPIFFS_H__ +#define __ESP_SPIFFS_H__ + +#include "spiffs.h" + +extern spiffs fs; + +/** + * Provide SPIFFS with all necessary configuration, allocate memory buffers + * and mount SPIFFS. + * + * Return SPIFFS return code. + */ +int32_t esp_spiffs_mount(); + +/** + * Unmount SPIFFS and free all allocated buffers. + */ +void esp_spiffs_unmount(); + +#endif // __ESP_SPIFFS_H__ diff --git a/extras/spiffs/spiffs b/extras/spiffs/spiffs new file mode 160000 index 0000000..c6e94fd --- /dev/null +++ b/extras/spiffs/spiffs @@ -0,0 +1 @@ +Subproject commit c6e94fdca5c1601b90c027167f8d453c48e482c4 diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h new file mode 100644 index 0000000..7b8c1a7 --- /dev/null +++ b/extras/spiffs/spiffs_config.h @@ -0,0 +1,263 @@ +/* + * spiffs_config.h + * + * Created on: Jul 3, 2013 + * Author: petera + */ + +#ifndef SPIFFS_CONFIG_H_ +#define SPIFFS_CONFIG_H_ + +// ----------- 8< ------------ +#include +#include +#include +#include +#include +#include +// #include // for vPortEnterCritical/vPortExitCritical +// ----------- >8 ------------ + +typedef signed int s32_t; +typedef unsigned int u32_t; +typedef signed short s16_t; +typedef unsigned short u16_t; +typedef signed char s8_t; +typedef unsigned char u8_t; + +// compile time switches + +// Set generic spiffs debug output call. +#ifndef SPIFFS_DBG +#define SPIFFS_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for garbage collecting. +#ifndef SPIFFS_GC_DBG +#define SPIFFS_GC_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for caching. +#ifndef SPIFFS_CACHE_DBG +#define SPIFFS_CACHE_DBG(...) //printf(__VA_ARGS__) +#endif +// Set spiffs debug output call for system consistency checks. +#ifndef SPIFFS_CHECK_DBG +#define SPIFFS_CHECK_DBG(...) //printf(__VA_ARGS__) +#endif + +// Enable/disable API functions to determine exact number of bytes +// for filedescriptor and cache buffers. Once decided for a configuration, +// this can be disabled to reduce flash. +#ifndef SPIFFS_BUFFER_HELP +#define SPIFFS_BUFFER_HELP 1 +#endif + +// Enables/disable memory read caching of nucleus file system operations. +// If enabled, memory area must be provided for cache in SPIFFS_mount. +#ifndef SPIFFS_CACHE +#define SPIFFS_CACHE 1 +#endif +#if SPIFFS_CACHE +// Enables memory write caching for file descriptors in hydrogen +#ifndef SPIFFS_CACHE_WR +#define SPIFFS_CACHE_WR 1 +#endif + +// Enable/disable statistics on caching. Debug/test purpose only. +#ifndef SPIFFS_CACHE_STATS +#define SPIFFS_CACHE_STATS 0 +#endif +#endif + +// Always check header of each accessed page to ensure consistent state. +// If enabled it will increase number of reads, will increase flash. +#ifndef SPIFFS_PAGE_CHECK +#define SPIFFS_PAGE_CHECK 1 +#endif + +// Define maximum number of gc runs to perform to reach desired free pages. +#ifndef SPIFFS_GC_MAX_RUNS +#define SPIFFS_GC_MAX_RUNS 3 +#endif + +// Enable/disable statistics on gc. Debug/test purpose only. +#ifndef SPIFFS_GC_STATS +#define SPIFFS_GC_STATS 0 +#endif + +// Garbage collecting examines all pages in a block which and sums up +// to a block score. Deleted pages normally gives positive score and +// used pages normally gives a negative score (as these must be moved). +// To have a fair wear-leveling, the erase age is also included in score, +// whose factor normally is the most positive. +// The larger the score, the more likely it is that the block will +// picked for garbage collection. + +// Garbage collecting heuristics - weight used for deleted pages. +#ifndef SPIFFS_GC_HEUR_W_DELET +#define SPIFFS_GC_HEUR_W_DELET (5) +#endif +// Garbage collecting heuristics - weight used for used pages. +#ifndef SPIFFS_GC_HEUR_W_USED +#define SPIFFS_GC_HEUR_W_USED (-1) +#endif +// Garbage collecting heuristics - weight used for time between +// last erased and erase of this block. +#ifndef SPIFFS_GC_HEUR_W_ERASE_AGE +#define SPIFFS_GC_HEUR_W_ERASE_AGE (50) +#endif + +// Object name maximum length. Note that this length include the +// zero-termination character, meaning maximum string of characters +// can at most be SPIFFS_OBJ_NAME_LEN - 1. +#ifndef SPIFFS_OBJ_NAME_LEN +#define SPIFFS_OBJ_NAME_LEN (32) +#endif + +// Size of buffer allocated on stack used when copying data. +// Lower value generates more read/writes. No meaning having it bigger +// than logical page size. +#ifndef SPIFFS_COPY_BUFFER_STACK +#define SPIFFS_COPY_BUFFER_STACK (64) +#endif + +// Enable this to have an identifiable spiffs filesystem. This will look for +// a magic in all sectors to determine if this is a valid spiffs system or +// not on mount point. If not, SPIFFS_format must be called prior to mounting +// again. +#ifndef SPIFFS_USE_MAGIC +#define SPIFFS_USE_MAGIC (0) +#endif + +#if SPIFFS_USE_MAGIC +// Only valid when SPIFFS_USE_MAGIC is enabled. If SPIFFS_USE_MAGIC_LENGTH is +// enabled, the magic will also be dependent on the length of the filesystem. +// For example, a filesystem configured and formatted for 4 megabytes will not +// be accepted for mounting with a configuration defining the filesystem as 2 +// megabytes. +#ifndef SPIFFS_USE_MAGIC_LENGTH +#define SPIFFS_USE_MAGIC_LENGTH (0) +#endif +#endif + +// SPIFFS_LOCK and SPIFFS_UNLOCK protects spiffs from reentrancy on api level +// These should be defined on a multithreaded system + +// define this to enter a mutex if you're running on a multithreaded system +#ifndef SPIFFS_LOCK +#define SPIFFS_LOCK(fs) // vPortEnterCritical() +#endif +// define this to exit a mutex if you're running on a multithreaded system +#ifndef SPIFFS_UNLOCK +#define SPIFFS_UNLOCK(fs) // vPortExitCritical() +#endif + +// Enable if only one spiffs instance with constant configuration will exist +// on the target. This will reduce calculations, flash and memory accesses. +// Parts of configuration must be defined below instead of at time of mount. +#ifndef SPIFFS_SINGLETON +#define SPIFFS_SINGLETON 1 +#endif + +#if SPIFFS_SINGLETON +// Instead of giving parameters in config struct, singleton build must +// give parameters in defines below. +#ifndef SPIFFS_CFG_PHYS_SZ +#define SPIFFS_CFG_PHYS_SZ(ignore) (SPIFFS_SIZE) +#endif +#ifndef SPIFFS_CFG_PHYS_ERASE_SZ +#define SPIFFS_CFG_PHYS_ERASE_SZ(ignore) (4*1024) +#endif +#ifndef SPIFFS_CFG_PHYS_ADDR +#define SPIFFS_CFG_PHYS_ADDR(ignore) (SPIFFS_BASE_ADDR) +#endif +#ifndef SPIFFS_CFG_LOG_PAGE_SZ +#define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (256) +#endif +#ifndef SPIFFS_CFG_LOG_BLOCK_SZ +#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (4*1024) +#endif +#endif + +// Enable this if your target needs aligned data for index tables +#ifndef SPIFFS_ALIGNED_OBJECT_INDEX_TABLES +#define SPIFFS_ALIGNED_OBJECT_INDEX_TABLES 1 +#endif + +// Enable this if you want the HAL callbacks to be called with the spiffs struct +#ifndef SPIFFS_HAL_CALLBACK_EXTRA +#define SPIFFS_HAL_CALLBACK_EXTRA 0 +#endif + +// Enable this if you want to add an integer offset to all file handles +// (spiffs_file). This is useful if running multiple instances of spiffs on +// same target, in order to recognise to what spiffs instance a file handle +// belongs. +// NB: This adds config field fh_ix_offset in the configuration struct when +// mounting, which must be defined. +#ifndef SPIFFS_FILEHDL_OFFSET +#define SPIFFS_FILEHDL_OFFSET 0 +#endif + +// Enable this to compile a read only version of spiffs. +// This will reduce binary size of spiffs. All code comprising modification +// of the file system will not be compiled. Some config will be ignored. +// HAL functions for erasing and writing to spi-flash may be null. Cache +// can be disabled for even further binary size reduction (and ram savings). +// Functions modifying the fs will return SPIFFS_ERR_RO_NOT_IMPL. +// If the file system cannot be mounted due to aborted erase operation and +// SPIFFS_USE_MAGIC is enabled, SPIFFS_ERR_RO_ABORTED_OPERATION will be +// returned. +// Might be useful for e.g. bootloaders and such. +#ifndef SPIFFS_READ_ONLY +#define SPIFFS_READ_ONLY 0 +#endif + +// Set SPIFFS_TEST_VISUALISATION to non-zero to enable SPIFFS_vis function +// in the api. This function will visualize all filesystem using given printf +// function. +#ifndef SPIFFS_TEST_VISUALISATION +#define SPIFFS_TEST_VISUALISATION 1 +#endif +#if SPIFFS_TEST_VISUALISATION +#ifndef spiffs_printf +#define spiffs_printf(...) printf(__VA_ARGS__) +#endif +// spiffs_printf argument for a free page +#ifndef SPIFFS_TEST_VIS_FREE_STR +#define SPIFFS_TEST_VIS_FREE_STR "_" +#endif +// spiffs_printf argument for a deleted page +#ifndef SPIFFS_TEST_VIS_DELE_STR +#define SPIFFS_TEST_VIS_DELE_STR "/" +#endif +// spiffs_printf argument for an index page for given object id +#ifndef SPIFFS_TEST_VIS_INDX_STR +#define SPIFFS_TEST_VIS_INDX_STR(id) "i" +#endif +// spiffs_printf argument for a data page for given object id +#ifndef SPIFFS_TEST_VIS_DATA_STR +#define SPIFFS_TEST_VIS_DATA_STR(id) "d" +#endif +#endif + +// Types depending on configuration such as the amount of flash bytes +// given to spiffs file system in total (spiffs_file_system_size), +// the logical block size (log_block_size), and the logical page size +// (log_page_size) + +// Block index type. Make sure the size of this type can hold +// the highest number of all blocks - i.e. spiffs_file_system_size / log_block_size +typedef u16_t spiffs_block_ix; +// Page index type. Make sure the size of this type can hold +// the highest page number of all pages - i.e. spiffs_file_system_size / log_page_size +typedef u16_t spiffs_page_ix; +// Object id type - most significant bit is reserved for index flag. Make sure the +// size of this type can hold the highest object id on a full system, +// i.e. 2 + (spiffs_file_system_size / (2*log_page_size))*2 +typedef u16_t spiffs_obj_id; +// Object span index type. Make sure the size of this type can +// hold the largest possible span index on the system - +// i.e. (spiffs_file_system_size / log_page_size) - 1 +typedef u16_t spiffs_span_ix; + +#endif /* SPIFFS_CONFIG_H_ */ From d25b8b2a55be217034f2063bf7943a752e86b6e5 Mon Sep 17 00:00:00 2001 From: sheinz Date: Sun, 10 Jul 2016 01:33:23 +0300 Subject: [PATCH 032/349] Create SPIFFS image and flash it. mkspiffs is added to create SPIFFS image from directory with files. Build process changed to flash SPIFFS image if necessary --- common.mk | 3 +- examples/spiffs/Makefile | 2 + examples/spiffs/files/test.txt | 1 + extras/spiffs/component.mk | 33 ++++ extras/spiffs/mkspiffs/Makefile | 37 +++++ extras/spiffs/mkspiffs/README.md | 34 +++++ extras/spiffs/mkspiffs/mkspiffs.c | 243 ++++++++++++++++++++++++++++++ 7 files changed, 352 insertions(+), 1 deletion(-) create mode 100644 examples/spiffs/files/test.txt create mode 100644 extras/spiffs/mkspiffs/Makefile create mode 100644 extras/spiffs/mkspiffs/README.md create mode 100644 extras/spiffs/mkspiffs/mkspiffs.c diff --git a/common.mk b/common.mk index 172fbe2..f4bfe06 100644 --- a/common.mk +++ b/common.mk @@ -210,7 +210,8 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) $(Q) $(ESPTOOL) elf2image --version=2 $(ESPTOOL_ARGS) $< -o $(FW_FILE) flash: $(FW_FILE) - $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) + $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ + 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) erase_flash: $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) erase_flash diff --git a/examples/spiffs/Makefile b/examples/spiffs/Makefile index b342df7..b0be23f 100644 --- a/examples/spiffs/Makefile +++ b/examples/spiffs/Makefile @@ -7,3 +7,5 @@ SPIFFS_BASE_ADDR = 0x200000 SPIFFS_SIZE = 0x100000 include ../../common.mk + +$(eval $(call make_spiffs_image,files)) diff --git a/examples/spiffs/files/test.txt b/examples/spiffs/files/test.txt new file mode 100644 index 0000000..c86fb0c --- /dev/null +++ b/examples/spiffs/files/test.txt @@ -0,0 +1 @@ +This file will go to SPIFFS image. diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk index fcd5572..cf0a5a0 100644 --- a/extras/spiffs/component.mk +++ b/extras/spiffs/component.mk @@ -14,4 +14,37 @@ spiffs_CFLAGS = $(CFLAGS) spiffs_CFLAGS += -DSPIFFS_BASE_ADDR=$(SPIFFS_BASE_ADDR) spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) + +# Create an SPIFFS image of specified directory and flash it with +# the rest of the firmware. +# +# Argumens: +# $(1) - directory with files which go into spiffs image +# +# Example: +# $(eval $(call make_spiffs_image,files)) +define make_spiffs_image +SPIFFS_IMAGE = $(addprefix $(FIRMWARE_DIR),spiffs.bin) +MKSPIFFS_DIR = $(ROOT)/extras/spiffs/mkspiffs +MKSPIFFS = $$(MKSPIFFS_DIR)/mkspiffs + +all: $$(SPIFFS_IMAGE) + +clean: clean_spiffs_img clean_mkspiffs + +$$(SPIFFS_IMAGE): $$(MKSPIFFS) $(1) + $$< $(1) $$@ + +$$(MKSPIFFS): + $$(MAKE) -C $$(MKSPIFFS_DIR) SPIFFS_SIZE=$(SPIFFS_SIZE) + +clean_spiffs_img: + $$(Q) rm -f spiffs.img + +clean_mkspiffs: + $$(Q) $$(MAKE) -C $$(MKSPIFFS_DIR) clean + +SPIFFS_ESPTOOL_ARGS = $(SPIFFS_BASE_ADDR) $$(SPIFFS_IMAGE) +endef + $(eval $(call component_compile_rules,spiffs)) diff --git a/extras/spiffs/mkspiffs/Makefile b/extras/spiffs/mkspiffs/Makefile new file mode 100644 index 0000000..7517456 --- /dev/null +++ b/extras/spiffs/mkspiffs/Makefile @@ -0,0 +1,37 @@ +# Check if SPIFFS_SIZE defined only if not cleaning +ifneq ($(MAKECMDGOALS),clean) +ifndef SPIFFS_SIZE +define ERROR_MSG +Variable SPIFFS_SIZE is not defined. +Cannot build mkspiffs without SPIFFS_SIZE. +Please specify it in your application Makefile. + +endef +$(error $(ERROR_MSG)) +endif +endif + +SOURCES := spiffs_hydrogen.c +SOURCES += spiffs_cache.c +SOURCES += spiffs_gc.c +SOURCES += spiffs_check.c +SOURCES += spiffs_nucleus.c +SOURCES += mkspiffs.c + +OBJECTS := $(SOURCES:.c=.o) + +VPATH = ../spiffs/src + +CFLAGS += -I.. +CFLAGS += -DSPIFFS_BASE_ADDR=0 # for image base addr is start of the image +CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) + +all: mkspiffs + +mkspiffs: $(OBJECTS) + +clean: + @rm -f mkspiffs + @rm -f *.o + +.PHONY: all clean diff --git a/extras/spiffs/mkspiffs/README.md b/extras/spiffs/mkspiffs/README.md new file mode 100644 index 0000000..5f6943d --- /dev/null +++ b/extras/spiffs/mkspiffs/README.md @@ -0,0 +1,34 @@ +# mkspiffs Create spiffs image + +mkspiffs is a command line utility to create an image of SPIFFS in order +to write to flash. + +## Usage + +mkspiffs will be built automatically if you include the following line in your +makefile: + +``` +$(eval $(call make_spiffs_image,files)) +``` + +where *files* is the directory with files that should go into SPIFFS image. + +Or you can build mkspiffs manually with: + +``` +make SPIFFS_SIZE=0x100000 +``` + +mkspiffs cannot be built without specifying SPIFFS size because it uses the +same SPIFFS sources as the firmware. And for the firmware SPIFFS size is +compile time defined. + +Please note that if you change SPIFFS_SIZE you need to rebuild mkspiffs. +The easiest way is to run `make clean` for you project. + +To manually generate SPIFFS image from directory, run: + +``` +mkspiffs DIRECTORY IMAGE_NAME +``` diff --git a/extras/spiffs/mkspiffs/mkspiffs.c b/extras/spiffs/mkspiffs/mkspiffs.c new file mode 100644 index 0000000..9f231a8 --- /dev/null +++ b/extras/spiffs/mkspiffs/mkspiffs.c @@ -0,0 +1,243 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "spiffs_config.h" +#include "../spiffs/src/spiffs.h" + +static spiffs fs; +static void *image = 0; +static void *work_buf = 0; +static void *fds_buf = 0; +static void *cache_buf = 0; + +static void print_usage(const char *prog_name, const char *error_msg) +{ + if (error_msg) { + printf("Error: %s\n", error_msg); + } + printf("Usage: "); + printf("\t%s DIRECTORY IMAGE_NAME\n\n", prog_name); + printf("Example:\n"); + printf("\t%s ./my_files spiffs.img\n\n", prog_name); +} + +static s32_t _read_data(u32_t addr, u32_t size, u8_t *dst) +{ + memcpy(dst, (uint8_t*)image + addr, size); + return SPIFFS_OK; +} + +static s32_t _write_data(u32_t addr, u32_t size, u8_t *src) +{ + memcpy((uint8_t*)image + addr, src, size); + return SPIFFS_OK; +} + +static s32_t _erase_data(u32_t addr, u32_t size) +{ + memset((uint8_t*)image + addr, 0xFF, size); + return SPIFFS_OK; +} + +static bool init_spiffs(bool allocate_mem) +{ + spiffs_config config = {0}; + printf("Initializing SPIFFS, size=%d\n", SPIFFS_SIZE); + + config.hal_read_f = _read_data; + config.hal_write_f = _write_data; + config.hal_erase_f = _erase_data; + + int workBufSize = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); + int fdsBufSize = SPIFFS_buffer_bytes_for_filedescs(&fs, 5); + int cacheBufSize = SPIFFS_buffer_bytes_for_cache(&fs, 5); + + if (allocate_mem) { + image = malloc(SPIFFS_SIZE); + work_buf = malloc(workBufSize); + fds_buf = malloc(fdsBufSize); + cache_buf = malloc(cacheBufSize); + printf("spiffs memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", + workBufSize, fdsBufSize, cacheBufSize); + } + + int32_t err = SPIFFS_mount(&fs, &config, work_buf, fds_buf, fdsBufSize, + cache_buf, cacheBufSize, 0); + + if (err != SPIFFS_OK) { + printf("Error spiffs mount: %d\n", err); + return false; + } + + return true; +} + +static bool format_spiffs() +{ + SPIFFS_unmount(&fs); + + if (SPIFFS_format(&fs) == SPIFFS_OK) { + printf("Format complete\n"); + } else { + printf("Failed to format SPIFFS\n"); + return false; + } + + if (!init_spiffs(false)) { + printf("Failed to mount SPIFFS\n"); + return false; + } + return true; +} + +static void spiffs_free() +{ + free(image); + image = NULL; + + free(work_buf); + work_buf = NULL; + + free(fds_buf); + fds_buf = NULL; + + free(cache_buf); + cache_buf = NULL; +} + +static bool process_file(const char *src_file, const char *dst_file) +{ + int fd; + const int buf_size = 256; + uint8_t buf[buf_size]; + int data_len; + + fd = open(src_file, O_RDONLY); + if (fd < 0) { + printf("Error openning file: %s\n", src_file); + } + + spiffs_file out_fd = SPIFFS_open(&fs, dst_file, + SPIFFS_O_CREAT | SPIFFS_O_WRONLY, 0); + while ((data_len = read(fd, buf, buf_size)) != 0) { + if (SPIFFS_write(&fs, out_fd, buf, data_len) != data_len) { + printf("Error writing to SPIFFS file\n"); + break; + } + } + SPIFFS_close(&fs, out_fd); + close(fd); + return true; +} + +static bool process_directory(const char *direcotry) +{ + DIR *dp; + struct dirent *ep; + char path[256]; + + dp = opendir(direcotry); + if (dp != NULL) { + while ((ep = readdir(dp)) != 0) { + if (!strcmp(ep->d_name, ".") || + !strcmp(ep->d_name, "..")) { + continue; + } + if (ep->d_type != DT_REG) { + continue; // not a regular file + } + sprintf(path, "%s/%s", direcotry, ep->d_name); + printf("Processing file %s\n", path); + if (!process_file(path, ep->d_name)) { + printf("Error processing file\n"); + break; + } + } + closedir(dp); + } else { + printf("Error reading direcotry: %s\n", direcotry); + } + return true; +} + +static bool write_image(const char *out_file) +{ + int fd; + int size = SPIFFS_SIZE; + uint8_t *p = (uint8_t*)image; + fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0666); + if (fd < 0) { + printf("Error creating file %s\n", out_file); + return false; + } + + printf("Writing image to file: %s\n", out_file); + + while (size != 0) { + write(fd, p, SPIFFS_CFG_LOG_PAGE_SZ()); + p += SPIFFS_CFG_LOG_PAGE_SZ(); + size -= SPIFFS_CFG_LOG_PAGE_SZ(); + } + + close(fd); + return true; +} + +int main(int argc, char *argv[]) +{ + int result = 0; + + if (argc != 3) { + print_usage(argv[0], NULL); + return -1; + } + + if (init_spiffs(/*allocate_mem=*/true)) { + if (format_spiffs()) { + if (process_directory(argv[1])) { + if (!write_image(argv[2])) { + printf("Error writing image\n"); + } + } else { + printf("Error processing direcotry\n"); + } + } else { + printf("Error formating spiffs\n"); + } + } else { + printf("Error initialising SPIFFS\n"); + } + + spiffs_free(); + return result; +} From bfa20af8555719344db9b0a478445f4d218e5fec Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 14 Jul 2016 15:44:02 +0300 Subject: [PATCH 033/349] Fix branch merging. Changes in esp_spiffs.c recovered. --- extras/spiffs/esp_spiffs.c | 68 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index d6ec7d6..4b5ef77 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -9,6 +9,8 @@ #include "spiffs.h" #include #include +#include +#include spiffs fs; @@ -185,3 +187,69 @@ void esp_spiffs_unmount() fds_buf = 0; cache_buf = 0; } + +#define FD_OFFSET 3 + +// This implementation replaces implementation in core/newlib_syscals.c +long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +{ + if(fd != r->_stdout->_file) { + long ret = SPIFFS_write(&fs, (spiffs_file)(fd - FD_OFFSET), + (char*)ptr, len); + return ret; + } + for(int i = 0; i < len; i++) { + /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ + if(ptr[i] == '\r') + continue; + if(ptr[i] == '\n') + uart_putc(0, '\r'); + uart_putc(0, ptr[i]); + } + return len; +} + +// This implementation replaces implementation in core/newlib_syscals.c +long _read_r( struct _reent *r, int fd, char *ptr, int len ) +{ + int ch, i; + + if(fd != r->_stdin->_file) { + long ret = SPIFFS_read(&fs, (spiffs_file)(fd - FD_OFFSET), ptr, len); + return ret; + } + uart_rxfifo_wait(0, 1); + for(i = 0; i < len; i++) { + ch = uart_getc_nowait(0); + if (ch < 0) break; + ptr[i] = ch; + } + return i; +} + +int _open_r(struct _reent *r, const char *pathname, int flags, int mode) +{ + uint32_t spiffs_flags = SPIFFS_RDONLY; + + if (flags & O_CREAT) spiffs_flags |= SPIFFS_CREAT; + if (flags & O_APPEND) spiffs_flags |= SPIFFS_APPEND; + if (flags & O_TRUNC) spiffs_flags |= SPIFFS_TRUNC; + if (flags & O_RDONLY) spiffs_flags |= SPIFFS_RDONLY; + if (flags & O_WRONLY) spiffs_flags |= SPIFFS_WRONLY; + + int ret = SPIFFS_open(&fs, pathname, spiffs_flags, mode); + if (ret > 0) { + return ret + FD_OFFSET; + } + return ret; +} + +int _close_r(struct _reent *r, int fd) +{ + return SPIFFS_close(&fs, (spiffs_file)(fd - FD_OFFSET)); +} + +int _unlink_r(struct _reent *r, const char *path) +{ + return SPIFFS_remove(&fs, path); +} From 22654a4de71a8a4411b2e217f51e88448f619c5c Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 14 Jul 2016 16:13:03 +0300 Subject: [PATCH 034/349] SPIFFS: Support lseek, stat, fstat Support for lseek, stat, fstat added. Test extended to covert those functions. --- core/newlib_syscalls.c | 7 +++++-- examples/posix_fs/fs-test | 2 +- extras/spiffs/esp_spiffs.c | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index c8104a9..577ecda 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -88,10 +88,13 @@ int _close_r(struct _reent *r, int fd); __attribute__((weak, alias("syscall_returns_enosys"))) int _unlink_r(struct _reent *r, const char *path); -__attribute__((alias("syscall_returns_enosys"))) +__attribute__((weak, alias("syscall_returns_enosys"))) int _fstat_r(struct _reent *r, int fd, void *buf); -__attribute__((alias("syscall_returns_enosys"))) +__attribute__((weak, alias("syscall_returns_enosys"))) +int _stat_r(struct _reent *r, const char *pathname, void *buf); + +__attribute__((weak, alias("syscall_returns_enosys"))) off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence); /* Generic stub for any newlib syscall that fails with errno ENOSYS diff --git a/examples/posix_fs/fs-test b/examples/posix_fs/fs-test index 218c523..12b1023 160000 --- a/examples/posix_fs/fs-test +++ b/examples/posix_fs/fs-test @@ -1 +1 @@ -Subproject commit 218c5235584429f407d619e5e35f90732ad505f3 +Subproject commit 12b10230cc56970857e6890bdd5663fbae74c4c3 diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 4b5ef77..72419a1 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -253,3 +253,30 @@ int _unlink_r(struct _reent *r, const char *path) { return SPIFFS_remove(&fs, path); } + +int _fstat_r(struct _reent *r, int fd, void *buf) +{ + spiffs_stat s; + struct stat *sb = (struct stat*)buf; + + int result = SPIFFS_fstat(&fs, (spiffs_file)(fd - FD_OFFSET), &s); + sb->st_size = s.size; + + return result; +} + +int _stat_r(struct _reent *r, const char *pathname, void *buf) +{ + spiffs_stat s; + struct stat *sb = (struct stat*)buf; + + int result = SPIFFS_stat(&fs, pathname, &s); + sb->st_size = s.size; + + return result; +} + +off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence) +{ + return SPIFFS_lseek(&fs, (spiffs_file)(fd - FD_OFFSET), offset, whence); +} From 1db953e0c3e096f9e7ff442f6c50dece002df6e1 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 00:08:34 +0300 Subject: [PATCH 035/349] SPIFFS: Add speed test. --- examples/posix_fs/fs-test | 2 +- examples/posix_fs/posix_fs_example.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/examples/posix_fs/fs-test b/examples/posix_fs/fs-test index 12b1023..2ad547a 160000 --- a/examples/posix_fs/fs-test +++ b/examples/posix_fs/fs-test @@ -1 +1 @@ -Subproject commit 12b10230cc56970857e6890bdd5663fbae74c4c3 +Subproject commit 2ad547adc5f725594b3c6752f036ff4401b221fc diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c index d84be5e..4525be3 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/examples/posix_fs/posix_fs_example.c @@ -1,5 +1,6 @@ #include "espressif/esp_common.h" #include "esp/uart.h" +#include "esp/timer.h" #include "FreeRTOS.h" #include "task.h" #include "esp8266.h" @@ -10,6 +11,10 @@ #include "fs-test/fs_test.h" +static fs_time_t get_current_time() +{ + return timer_get_count(FRC2) / 5000; // to get roughly 1ms resolution +} void test_task(void *pvParameters) { @@ -24,12 +29,20 @@ void test_task(void *pvParameters) while (1) { vTaskDelay(5000 / portTICK_RATE_MS); - - if (fs_test_run(1000)) { + if (fs_load_test_run(100)) { printf("PASS\n"); } else { printf("FAIL\n"); } + + vTaskDelay(5000 / portTICK_RATE_MS); + float write_rate, read_rate; + if (fs_speed_test_run(get_current_time, &write_rate, &read_rate)) { + printf("Read speed: %.0f bytes/s\n", read_rate * 1000); + printf("Write speed: %.0f bytes/s\n", write_rate * 1000); + } else { + printf("FAIL\n"); + } } } From df796947bdfe3b452d93700fd68cf870f2d66f0a Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 00:41:29 +0300 Subject: [PATCH 036/349] SPIFFS: Update README.md --- examples/posix_fs/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 examples/posix_fs/README.md diff --git a/examples/posix_fs/README.md b/examples/posix_fs/README.md new file mode 100644 index 0000000..7f05bd4 --- /dev/null +++ b/examples/posix_fs/README.md @@ -0,0 +1,10 @@ +# POSIX file access example + +This example runs several file system tests on ESP8266. +It uses fs-test library to perform file operations test. fs-test library uses +only POSIX file functions so can be run on host system as well. + +Currently included tests: + * File system load test. Perform multiple file operations in random order. + * File system speed test. Measures files read/write speed. + From 66610c56cb03398c9af035ba57f0f19368f56de4 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 01:21:32 +0300 Subject: [PATCH 037/349] SPIFFS: Improve SPIFFS image build Rebuild SPIFFS image if files change. Rebuild mkspiffs if SPIFFS_SIZE is changed in Makefile. --- extras/spiffs/component.mk | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk index cf0a5a0..b0b34c1 100644 --- a/extras/spiffs/component.mk +++ b/extras/spiffs/component.mk @@ -20,26 +20,29 @@ spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) # # Argumens: # $(1) - directory with files which go into spiffs image -# +# # Example: # $(eval $(call make_spiffs_image,files)) define make_spiffs_image SPIFFS_IMAGE = $(addprefix $(FIRMWARE_DIR),spiffs.bin) MKSPIFFS_DIR = $(ROOT)/extras/spiffs/mkspiffs MKSPIFFS = $$(MKSPIFFS_DIR)/mkspiffs +SPIFFS_FILE_LIST = $(shell find $(1)) all: $$(SPIFFS_IMAGE) clean: clean_spiffs_img clean_mkspiffs -$$(SPIFFS_IMAGE): $$(MKSPIFFS) $(1) +$$(SPIFFS_IMAGE): $$(MKSPIFFS) $$(SPIFFS_FILE_LIST) $$< $(1) $$@ -$$(MKSPIFFS): +# if SPIFFS_SIZE in Makefile is changed rebuild mkspiffs +$$(MKSPIFFS): Makefile + $$(MAKE) -C $$(MKSPIFFS_DIR) clean $$(MAKE) -C $$(MKSPIFFS_DIR) SPIFFS_SIZE=$(SPIFFS_SIZE) clean_spiffs_img: - $$(Q) rm -f spiffs.img + $$(Q) rm -f $$(SPIFFS_IMAGE) clean_mkspiffs: $$(Q) $$(MAKE) -C $$(MKSPIFFS_DIR) clean From 924860a78f389a8ff4c912d3eb8f6e5181d1059c Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 15:22:03 +0300 Subject: [PATCH 038/349] SPIFFS: Update example, README.md Separate method to initialize SPIFFS memory buffers. REDME.md for spiffs component. Simplify spiffs example. --- examples/posix_fs/posix_fs_example.c | 3 +- examples/spiffs/Makefile | 2 +- examples/spiffs/spiffs_example.c | 194 ++++++++------------------- extras/spiffs/README.md | 153 +++++++++++++++++++++ extras/spiffs/esp_spiffs.c | 71 ++++++---- extras/spiffs/esp_spiffs.h | 25 +++- 6 files changed, 277 insertions(+), 171 deletions(-) create mode 100644 extras/spiffs/README.md diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c index 4525be3..2f5ad14 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/examples/posix_fs/posix_fs_example.c @@ -18,8 +18,9 @@ static fs_time_t get_current_time() void test_task(void *pvParameters) { + esp_spiffs_init(); esp_spiffs_mount(); - esp_spiffs_unmount(); // FS must be unmounted before formating + SPIFFS_unmount(&fs); // FS must be unmounted before formating if (SPIFFS_format(&fs) == SPIFFS_OK) { printf("Format complete\n"); } else { diff --git a/examples/spiffs/Makefile b/examples/spiffs/Makefile index b0be23f..7327707 100644 --- a/examples/spiffs/Makefile +++ b/examples/spiffs/Makefile @@ -4,7 +4,7 @@ FLASH_SIZE = 32 # spiffs configuration SPIFFS_BASE_ADDR = 0x200000 -SPIFFS_SIZE = 0x100000 +SPIFFS_SIZE = 0x010000 include ../../common.mk diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c index 226ee51..98decaf 100644 --- a/examples/spiffs/spiffs_example.c +++ b/examples/spiffs/spiffs_example.c @@ -4,171 +4,95 @@ #include "task.h" #include "esp8266.h" +#include "fcntl.h" +#include "unistd.h" + #include "spiffs.h" #include "esp_spiffs.h" -#define TEST_FILE_NAME_LEN 16 -#define TEST_FILES 32 -#define TEST_FILE_MAX_SIZE 8192 - -typedef struct { - char name[TEST_FILE_NAME_LEN]; - uint16_t size; - uint8_t first_data_byte; -} TestFile; - -static TestFile test_files[TEST_FILES]; - -inline static void fill_test_data(uint8_t *src, uint16_t size, uint8_t first_byte) +static void example_read_file_posix() { - while (size--) { - *src++ = first_byte++; - } -} + const int buf_size = 0xFF; + uint8_t buf[buf_size]; -static bool write_test_files() -{ - uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); - bool result = true; - - for (uint8_t i = 0; i < TEST_FILES; i++) { - sprintf(test_files[i].name, "file_%d.dat", i); - spiffs_file f = SPIFFS_open(&fs, test_files[i].name, - SPIFFS_CREAT|SPIFFS_RDWR|SPIFFS_TRUNC, 0); - if (f < 0) { - printf("Open file operation failed\n"); - result = false; - break; - } - test_files[i].size = rand() % TEST_FILE_MAX_SIZE; - test_files[i].first_data_byte = rand() % 256; - fill_test_data(buf, test_files[i].size, test_files[i].first_data_byte); - - printf("Writing file %s size=%d\n", test_files[i].name, - test_files[i].size); - int32_t written = SPIFFS_write(&fs, f, buf, test_files[i].size); - if (written != test_files[i].size) { - printf("Write file operation failed, written=%d\n", written); - result = false; - break; - } - SPIFFS_close(&fs, f); - } - free(buf); - return result; -} - -inline static bool verify_test_data(uint8_t *data, uint16_t size, - uint8_t first_byte) -{ - while (size--) { - if (*data++ != first_byte++) { - return false; - } - } - return true; -} - -static bool verify_test_files() -{ - uint8_t *buf = (uint8_t*)malloc(TEST_FILE_MAX_SIZE); - bool result = true; - - for (uint8_t i = 0; i < TEST_FILES; i++) { - printf("Verifying file %s\n", test_files[i].name); - spiffs_file f = SPIFFS_open(&fs, test_files[i].name, SPIFFS_RDONLY, 0); - if (f < 0) { - printf("Open file operation failed\n"); - result = false; - break; - } - - int32_t n = SPIFFS_read(&fs, f, buf, test_files[i].size); - if (n != test_files[i].size) { - printf("Read file operation failed\n"); - result = false; - break; - } - - if (!verify_test_data(buf, test_files[i].size, - test_files[i].first_data_byte)) { - printf("Data verification failed\n"); - result = false; - break; - } - - SPIFFS_close(&fs, f); + int fd = open("test.txt", O_RDONLY); + if (fd < 0) { + printf("Error opening file\n"); + return; } - free(buf); - return result; + int read_bytes = read(fd, buf, buf_size); + printf("Read %d bytes\n", read_bytes); + + buf[read_bytes] = '\0'; // zero terminate string + printf("Data: %s\n", buf); + + close(fd); } -static bool cleanup_test_files() +static void example_read_file_spiffs() { - bool result = true; + const int buf_size = 0xFF; + uint8_t buf[buf_size]; - for (uint8_t i = 0; i < TEST_FILES; i++) { - printf("Removing file %s\n", test_files[i].name); - if (SPIFFS_remove(&fs, test_files[i].name) != SPIFFS_OK) { - printf("Remove file operation failed\n"); - result = false; - break; - } + spiffs_file fd = SPIFFS_open(&fs, "other.txt", SPIFFS_RDONLY, 0); + if (fd < 0) { + printf("Error opening file\n"); + return; } - return result; + + int read_bytes = SPIFFS_read(&fs, fd, buf, buf_size); + printf("Read %d bytes\n", read_bytes); + + buf[read_bytes] = '\0'; // zero terminate string + printf("Data: %s\n", buf); + + SPIFFS_close(&fs, fd); } -inline static void print_info() +static void example_write_file() +{ + uint8_t buf[] = "Example data, written by ESP8266"; + + int fd = open("other.txt", O_WRONLY|O_CREAT, 0); + if (fd < 0) { + printf("Error opening file\n"); + return; + } + + int written = write(fd, buf, sizeof(buf)); + printf("Written %d bytes\n", written); + + close(fd); +} + +static void example_fs_info() { uint32_t total, used; - SPIFFS_info(&fs, &total, &used); - - printf("FS total=%d bytes, used=%d bytes\n", total, used); - printf("FS %d %% used\n", 100 * used/total); - - // File system structure visualisation - // SPIFFS_vis(&fs); + printf("Total: %d bytes, used: %d bytes", total, used); } void test_task(void *pvParameters) { - bool result = true; - - esp_spiffs_mount(); - esp_spiffs_unmount(); // FS must be unmounted before formating - if (SPIFFS_format(&fs) == SPIFFS_OK) { - printf("Format complete\n"); - } else { - printf("Format failed\n"); + esp_spiffs_init(); + if (esp_spiffs_mount() != SPIFFS_OK) { + printf("Error mount SPIFFS\n"); } - esp_spiffs_mount(); while (1) { - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(2000 / portTICK_RATE_MS); - result = write_test_files(); + example_write_file(); - if (result) { - result = verify_test_files(); - } + example_read_file_posix(); - print_info(); + example_read_file_spiffs(); - if (result) { - result = cleanup_test_files(); - } + example_fs_info(); - if (result) { - printf("Test passed!\n"); - } else { - printf("Test failed!\n"); - while (1) { - vTaskDelay(1); - } - } + printf("\n\n"); } } diff --git a/extras/spiffs/README.md b/extras/spiffs/README.md new file mode 100644 index 0000000..76d2081 --- /dev/null +++ b/extras/spiffs/README.md @@ -0,0 +1,153 @@ +# SPIFFS ESP8266 File system + +This component adds file system support for ESP8266. File system of choice +for ESP8266 is [SPIFFS](https://github.com/pellepl/spiffs). +It was specifically designed to use with SPI NOR flash on embedded systems. +The main advantage of SPIFFS is wear leveling, which prolongs life time +of a flash memory. + +## Features + + * SPIFFS - embedded file system for NOR flash memory. + * POSIX file operations. + * Static files upload to ESP8266 file system within build process. + * SPIFFS singleton configuration. Only one instance of FS on a device. + +## Usage + +In order to use file system in a project the following steps should be made: + * Add SPIFFS component in a project Makefile `EXTRA_COMPONENTS = extras/spiffs` + * Specify your flash size in the Makefile `FLASH_SIZE = 32` + * Specify the start address of file system region on the flash memory +`SPIFFS_BASE_ADDR = 0x200000` + * If you want to upload files to a file system during flash process specify +the directory with files `$(eval $(call make_spiffs_image,files))` + +In the end the Makefile should look like: + +``` +PROGRAM=spiffs_example +EXTRA_COMPONENTS = extras/spiffs +FLASH_SIZE = 32 + +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +include ../../common.mk + +$(eval $(call make_spiffs_image,files)) +``` + +Note: Macro call to prepare SPIFFS image for flashing should go after +`include common.mk` + +### Files upload + +To upload files to a file system during flash process the following macro is +used: + +``` +$(eval $(call make_spiffs_image,files)) +``` + +It enables the build of a helper utility **mkspiffs**. This utility creates +an SPIFFS image with files in the specified directory. + +The SPIFFS image is created during build stage, after `make` is run. +The image is flashed into the device along with firmware during flash stage, +after `make flash` is run. + +**mkspiffs** utility uses the same SPIFFS source code and the same +configuration as ESP8266. So the created image should always be compatible +with SPIFFS on a device. + +The build process will catch any changes in files directory and rebuild the +image each time `make` is run. +The build process will handle SPIFFS_SIZE change and rebuild **mkspiffs** +utility and the image. + +## Example + +### Mount + +``` +esp_spiffs_init(); // allocate memory buffers +if (esp_spiffs_mount() != SPIFFS_OK) { + printf("Error mounting SPIFFS\n"); +} +``` + +### Format + +Formatting SPIFFS is a little bit awkward. Before formatting SPIFFS must be +mounted and unmounted. +``` +esp_spiffs_init(); +if (esp_spiffs_mount() != SPIFFS_OK) { + printf("Error mount SPIFFS\n"); +} +SPIFFS_unmount(&fs); // FS must be unmounted before formating +if (SPIFFS_format(&fs) == SPIFFS_OK) { + printf("Format complete\n"); +} else { + printf("Format failed\n"); +} +esp_spiffs_mount(); +``` + +### POSIX read + +Nothing special here. + +``` +const int buf_size = 0xFF; +uint8_t buf[buf_size]; + +int fd = open("test.txt", O_RDONLY); +if (fd < 0) { + printf("Error opening file\n"); +} + +read(fd, buf, buf_size); +printf("Data: %s\n", buf); + +close(fd); +``` + +### SPIFFS read + +SPIFFS interface is intended to be as close to POSIX as possible. + +``` +const int buf_size = 0xFF; +uint8_t buf[buf_size]; + +spiffs_file fd = SPIFFS_open(&fs, "other.txt", SPIFFS_RDONLY, 0); +if (fd < 0) { + printf("Error opening file\n"); +} + +SPIFFS_read(&fs, fd, buf, buf_size); +printf("Data: %s\n", buf); + +SPIFFS_close(&fs, fd); +``` + +### POSIX write + +``` +uint8_t buf[] = "Example data, written by ESP8266"; + +int fd = open("other.txt", O_WRONLY|O_CREAT, 0); +if (fd < 0) { + printf("Error opening file\n"); +} + +write(fd, buf, sizeof(buf)); + +close(fd); +``` + +## Resources + +[SPIFFS](https://github.com/pellepl/spiffs) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 72419a1..11a84d5 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -14,9 +14,21 @@ spiffs fs; -static void *work_buf = 0; -static void *fds_buf = 0; -static void *cache_buf = 0; +typedef struct { + void *buf; + uint32_t size; +} fs_buf_t; + +static fs_buf_t work_buf = {0}; +static fs_buf_t fds_buf = {0}; +static fs_buf_t cache_buf = {0}; + +/** + * Number of file descriptors opened at the same time + */ +#define ESP_SPIFFS_FD_NUMBER 5 + +#define ESP_SPIFFS_CACHE_PAGES 5 /* * Flash addresses and size alignment is a rip-off of Arduino implementation. @@ -147,6 +159,29 @@ static s32_t esp_spiffs_erase(u32_t addr, u32_t size) return SPIFFS_OK; } +void esp_spiffs_init() +{ + work_buf.size = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); + fds_buf.size = SPIFFS_buffer_bytes_for_filedescs(&fs, ESP_SPIFFS_FD_NUMBER); + cache_buf.size= SPIFFS_buffer_bytes_for_cache(&fs, ESP_SPIFFS_CACHE_PAGES); + + work_buf.buf = malloc(work_buf.size); + fds_buf.buf = malloc(fds_buf.size); + cache_buf.buf = malloc(cache_buf.size); +} + +void esp_spiffs_deinit() +{ + free(work_buf.buf); + work_buf.buf = 0; + + free(fds_buf.buf); + fds_buf.buf = 0; + + free(cache_buf.buf); + cache_buf.buf = 0; +} + int32_t esp_spiffs_mount() { spiffs_config config = {0}; @@ -155,18 +190,13 @@ int32_t esp_spiffs_mount() config.hal_write_f = esp_spiffs_write; config.hal_erase_f = esp_spiffs_erase; - size_t workBufSize = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); - size_t fdsBufSize = SPIFFS_buffer_bytes_for_filedescs(&fs, 5); - size_t cacheBufSize = SPIFFS_buffer_bytes_for_cache(&fs, 5); + printf("SPIFFS size: %d\n", SPIFFS_SIZE); + printf("SPIFFS memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", + work_buf.size, fds_buf.size, cache_buf.size); - work_buf = malloc(workBufSize); - fds_buf = malloc(fdsBufSize); - cache_buf = malloc(cacheBufSize); - printf("spiffs memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", - workBufSize, fdsBufSize, cacheBufSize); - - int32_t err = SPIFFS_mount(&fs, &config, work_buf, fds_buf, fdsBufSize, - cache_buf, cacheBufSize, 0); + int32_t err = SPIFFS_mount(&fs, &config, (uint8_t*)work_buf.buf, + (uint8_t*)fds_buf.buf, fds_buf.size, + cache_buf.buf, cache_buf.size, 0); if (err != SPIFFS_OK) { printf("Error spiffs mount: %d\n", err); @@ -175,19 +205,6 @@ int32_t esp_spiffs_mount() return err; } -void esp_spiffs_unmount() -{ - SPIFFS_unmount(&fs); - - free(work_buf); - free(fds_buf); - free(cache_buf); - - work_buf = 0; - fds_buf = 0; - cache_buf = 0; -} - #define FD_OFFSET 3 // This implementation replaces implementation in core/newlib_syscals.c diff --git a/extras/spiffs/esp_spiffs.h b/extras/spiffs/esp_spiffs.h index 3022d51..f074017 100644 --- a/extras/spiffs/esp_spiffs.h +++ b/extras/spiffs/esp_spiffs.h @@ -13,16 +13,27 @@ extern spiffs fs; /** - * Provide SPIFFS with all necessary configuration, allocate memory buffers - * and mount SPIFFS. + * Prepare for SPIFFS mount. + * + * The function allocates all the necessary buffers. + */ +void esp_spiffs_init(); + +/** + * Free all memory buffers that were used by SPIFFS. + * + * The function should be called after SPIFFS unmount if the file system is not + * going to need any more. + */ +void esp_spiffs_deinit(); + +/** + * Mount SPIFFS. + * + * esp_spiffs_init must be called first. * * Return SPIFFS return code. */ int32_t esp_spiffs_mount(); -/** - * Unmount SPIFFS and free all allocated buffers. - */ -void esp_spiffs_unmount(); - #endif // __ESP_SPIFFS_H__ From 55b7d29767bc78f6575ecc41ab4537adbbe66bc8 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 15:44:22 +0300 Subject: [PATCH 039/349] SPIFFS: Fix SPIFFS rebuild if SIZE is changed. --- extras/spiffs/component.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk index b0b34c1..a0a8928 100644 --- a/extras/spiffs/component.mk +++ b/extras/spiffs/component.mk @@ -36,6 +36,10 @@ clean: clean_spiffs_img clean_mkspiffs $$(SPIFFS_IMAGE): $$(MKSPIFFS) $$(SPIFFS_FILE_LIST) $$< $(1) $$@ +# Rebuild SPIFFS if Makefile is changed, where SPIFF_SIZE is defined +$$(spiffs_ROOT)spiffs_config.h: Makefile + $$(Q) touch $$@ + # if SPIFFS_SIZE in Makefile is changed rebuild mkspiffs $$(MKSPIFFS): Makefile $$(MAKE) -C $$(MKSPIFFS_DIR) clean From 0a98f4390272508487fd6a34c3ee917353dec5ab Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 15 Jul 2016 19:01:17 +0300 Subject: [PATCH 040/349] SPIFFS: Fixed linux build and travis build mkspiffs utility explicitly use gcc to compile --- extras/spiffs/mkspiffs/Makefile | 4 ++++ extras/spiffs/mkspiffs/mkspiffs.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/extras/spiffs/mkspiffs/Makefile b/extras/spiffs/mkspiffs/Makefile index 7517456..a9a9722 100644 --- a/extras/spiffs/mkspiffs/Makefile +++ b/extras/spiffs/mkspiffs/Makefile @@ -11,6 +11,10 @@ $(error $(ERROR_MSG)) endif endif +# explicitly use gcc as in xtensa build environment it might be set to +# cross compiler +CC = gcc + SOURCES := spiffs_hydrogen.c SOURCES += spiffs_cache.c SOURCES += spiffs_gc.c diff --git a/extras/spiffs/mkspiffs/mkspiffs.c b/extras/spiffs/mkspiffs/mkspiffs.c index 9f231a8..65b90e0 100644 --- a/extras/spiffs/mkspiffs/mkspiffs.c +++ b/extras/spiffs/mkspiffs/mkspiffs.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include From 5d5f28a22fcbcdf25ccf057b0d5afdfdec29a398 Mon Sep 17 00:00:00 2001 From: sheinz Date: Sat, 16 Jul 2016 00:22:33 +0300 Subject: [PATCH 041/349] SPIFFS: Bypass SDK and bootrom for flash access. Accessing SPI flash using reversed engineered functions. --- extras/spiffs/esp_spi_flash.c | 336 ++++++++++++++++++++++++++++++++++ extras/spiffs/esp_spi_flash.h | 11 ++ extras/spiffs/esp_spiffs.c | 157 +--------------- 3 files changed, 356 insertions(+), 148 deletions(-) create mode 100644 extras/spiffs/esp_spi_flash.c create mode 100644 extras/spiffs/esp_spi_flash.h diff --git a/extras/spiffs/esp_spi_flash.c b/extras/spiffs/esp_spi_flash.c new file mode 100644 index 0000000..74f8d98 --- /dev/null +++ b/extras/spiffs/esp_spi_flash.c @@ -0,0 +1,336 @@ +#include "esp_spi_flash.h" +#include "flashchip.h" +#include "espressif/spi_flash.h" +#include "FreeRTOS.h" +#include "esp/rom.h" +#include "esp/spi_regs.h" + + +static uint32_t IRAM read_status(sdk_flashchip_t *flashchip, uint32_t *status) +{ + uint32_t _status; + + do { + SPI(0).RSTATUS = 0; + SPI(0).CMD = SPI_CMD_READ_SR; + while (SPI(0).CMD) {} + _status = SPI(0).RSTATUS & flashchip->status_mask; + } while ( _status & 0b1); + + *status = _status; + + return 0; +} + +static uint32_t IRAM wait_idle(sdk_flashchip_t *flashchip) +{ + while (DPORT.SPI_READY & DPORT_SPI_READY_IDLE) {} + uint32_t a3; + return read_status(flashchip, &a3); +} + +static uint32_t IRAM write_enable(sdk_flashchip_t *flashchip) +{ + uint32_t local0 = 0; + + wait_idle(flashchip); + + SPI(0).CMD = SPI_CMD_WRITE_ENABLE; + while (SPI(0).CMD) {} + + if (!(local0 & 0b1)) { + do { + read_status(flashchip, &local0); + } while (!(local0 & (1<<1))); + } + return 0; +} + +static uint32_t IRAM page_program(sdk_flashchip_t *flashchip, uint32_t dest_addr, + uint32_t *buf, uint32_t size) +{ + if (size & 0b11) { + return 1; + } + + // check if block to write doesn't cross page boundary + if (flashchip->page_size < size + (dest_addr % flashchip->page_size)) { + return 1; + } + wait_idle(flashchip); + if (size < 1) { + return 0; + } + + // a12 = 0x60000200 + // a0 = 0x00FFFFFF + // a6 = (dest_addr & 0x00FFFFFF) | 0x20000000 + while (size >= 32) { + SPI(0).ADDR = (dest_addr & 0x00FFFFFF) | 0x20000000; + // a4 - loop variable += 4 + // a5 = buf[0] + for (uint8_t i = 0; i != 8; i++) { + SPI(0).W[i] = buf[i]; + } + size -= 32; + dest_addr += 32; + buf += 8; + if (write_enable(flashchip)) { + return 1; + } + SPI(0).CMD = SPI_CMD_PP; + while (SPI(0).CMD) {} // wait for reg->cmd to be 0 + wait_idle(flashchip); + // a0 = 0x00FFFFFF + if (size < 1) { + return 0; + } + } + // a7 = 0x00FFFFFF & dest_addr + // a4 = size << 24; + // a4 = a7 | a4 + SPI(0).ADDR = (size << 24) | (0x00FFFFFF & dest_addr); + // a6 = 0b11 & size + // a3 = size >> 2; + // a5 = a3 + 1 + uint32_t words = size >> 2; + if (0b11 & size) { + words += 1; + } + words = words & 0xFF; + if (words != 0) { + // a4 = 0 + uint8_t i = 0; + + if (words & 0b1) { // bit 0 is set in a3 + SPI(0).W[0] = buf[0]; + i++; + } + // a6 = a3 >> 1; + if (words >> 1) { + // a6 = 0x600000200 + // buff[0] + for (; i != words; i++) { + SPI(0).W[i] = buf[i]; + } + } + } + + if (write_enable(flashchip)) { + return 1; + } + SPI(0).CMD = SPI_CMD_PP; + while (SPI(0).CMD) {} // wait for reg->cmd to be 0 + wait_idle(flashchip); + // a0 = 0x00FFFFFF + return 0; +} + +static uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, + uint32_t *dst, uint32_t size) +{ + // a12 = dst + if ((addr + size) > flashchip->chip_size) { + return 1; + } + + // a14 = addr + // a13 = size + wait_idle(flashchip); + if (size < 1) { + return 0; + } + // SPI(0).CMD + while (size >= 32) { + // a8 = addr | 0x20000000; + SPI(0).ADDR = addr | 0x20000000; + SPI(0).CMD = SPI_CMD_READ; + while (SPI(0).CMD) {}; + for (uint32_t a2 = 0; a2 < 8; a2++) { + *dst = SPI(0).W[a2]; + dst++; + } + size -= 32; + addr += 32; + } + + if (size >= 1) { + // a7 = size << 24; + // a7 = addr | a7 + SPI(0).ADDR = addr | (size << 24); + SPI(0).CMD = SPI_CMD_READ; + while (SPI(0).CMD) {}; + // a10 = size & 0b11 + uint8_t a7 = size >> 2; + // a9 = a7 + 1 + if (size & 0b11) { + // a7 = a7 + 1 + a7++; + } + // a7 = a7 & 0xFF + if (!a7) { + return 0; + } + uint8_t a2 = 0; + if (a7 & 0b1) { + a2 = 1; + // a11 = SPI(0).W0 + *dst = SPI(0).W[0]; + dst += 1; + } + size = a7 >> 1; + if (!size) { + return 0; + } + for (; a2 != a7; a2++) { + *dst = SPI(0).W[a2]; + dst += 1; + } + } + + return 0; +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIRead + */ +static uint32_t IRAM spi_read(uint32_t dest_addr, void *src, uint32_t size) +{ + if (read_data(&sdk_flashchip, dest_addr, (uint32_t*)src, size)) { + return 1; + } else { + return 0; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_read + */ +uint32_t IRAM esp_spi_flash_read(uint32_t dest_addr, void *src, uint32_t size) +{ + if (src) { + vPortEnterCritical(); + Cache_Read_Disable(); + uint32_t result = spi_read(dest_addr, src, size); + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + return result; + } else { + return 1; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIWrite + */ +static uint32_t IRAM spi_write(uint32_t dest_addr, void *dst, uint32_t size) +{ + if (sdk_flashchip.chip_size < (dest_addr + size)) { + return 1; + } + + uint32_t write_bytes_to_page = sdk_flashchip.page_size - + (dest_addr % sdk_flashchip.page_size); + + if (size < write_bytes_to_page) { + if (page_program(&sdk_flashchip, dest_addr, (uint32_t*)dst, size)) { + return 1; + } else { + return 0; + } + } + + if (page_program(&sdk_flashchip, dest_addr, (uint32_t*)dst, write_bytes_to_page)) { + return 1; + } + + uint32_t offset = write_bytes_to_page; + uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; + for (uint8_t i = 0; i != pages_to_write; i++) { + if (page_program(&sdk_flashchip, dest_addr + offset, + dst + ((offset>>2)<<2), sdk_flashchip.page_size)) { + return 1; + } + offset += sdk_flashchip.page_size; + } + + if (page_program(&sdk_flashchip, dest_addr + offset, + dst + ((offset>>2)<<2), size - offset)) { + return 1; + } else { + return 0; + } +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_write + */ +uint32_t IRAM esp_spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size) +{ + if (dst) { + if (size & 0b11) { // not 4-byte aligned + size = size >> 2; + size = (size << 2) + 1; + } + vPortEnterCritical(); + Cache_Read_Disable(); + uint32_t result = spi_write(dest_addr, dst, size); + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + return result; + } else { + return 1; + } +} + +static uint32_t IRAM sector_erase(sdk_flashchip_t *chip, uint32_t addr) +{ + // a12 -> addr + // a0 = addr & 0xFFF + if (addr & 0xFFF) { + return 1; + } + + wait_idle(chip); + SPI(0).ADDR = addr & 0x00FFFFFF; + SPI(0).CMD = SPI_CMD_SE; + while (SPI(0).CMD) {}; + wait_idle(chip); + + return 0; +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_SPIEraseSector + */ +static uint32_t IRAM spi_erase_sector(uint32_t sector) +{ + if (sector >= (sdk_flashchip.chip_size / sdk_flashchip.sector_size)) { + return 1; + } + + if (write_enable(&sdk_flashchip)) { + return 1; + } + + if (sector_erase(&sdk_flashchip, sdk_flashchip.sector_size * sector)) { + return 1; + } + return 0; +} + +/** + * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_erase_sector + */ +uint32_t IRAM esp_spi_flash_erase(uint32_t sector) +{ + vPortEnterCritical(); + Cache_Read_Disable(); + + uint32_t result = spi_erase_sector(sector); + + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + + return result; +} diff --git a/extras/spiffs/esp_spi_flash.h b/extras/spiffs/esp_spi_flash.h new file mode 100644 index 0000000..6bf43e9 --- /dev/null +++ b/extras/spiffs/esp_spi_flash.h @@ -0,0 +1,11 @@ +#ifndef __ESP_SPI_FLASH_H__ +#define __ESP_SPI_FLASH_H__ + +#include +#include "common_macros.h" + +uint32_t IRAM esp_spi_flash_read(uint32_t dest_addr, void *src, uint32_t size); +uint32_t IRAM esp_spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size); +uint32_t IRAM esp_spi_flash_erase(uint32_t sector); + +#endif // __ESP_SPI_FLASH_H__ diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 9b095c2..a3c6b12 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -9,11 +9,9 @@ #include "spiffs.h" #include #include -#include "common_macros.h" -#include "FreeRTOS.h" -#include "esp/rom.h" #include #include +#include "esp_spi_flash.h" spiffs fs; @@ -34,143 +32,6 @@ static fs_buf_t cache_buf = {0}; #define ESP_SPIFFS_CACHE_PAGES 5 -// ROM functions -uint32_t SPI_read_data(sdk_flashchip_t *p, uint32_t dest_addr, void *src, - uint32_t size); -uint32_t SPI_page_program(sdk_flashchip_t *p, uint32_t dest_addr, void *dst, - uint32_t size); -uint32_t SPI_write_enable(sdk_flashchip_t *p); -uint32_t SPI_sector_erase(sdk_flashchip_t *p, uint32_t sector_addr); - - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIRead - */ -uint32_t IRAM spi_read(uint32_t dest_addr, void *src, uint32_t size) -{ - if (SPI_read_data(&sdk_flashchip, dest_addr, src, size)) { - return 1; - } else { - return 0; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_read - */ -uint32_t IRAM spi_flash_read(uint32_t dest_addr, void *src, uint32_t size) -{ - if (src) { - vPortEnterCritical(); - Cache_Read_Disable(); - uint32_t result = spi_read(dest_addr, src, size); - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - return result; - } else { - return 1; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIWrite - */ -uint32_t IRAM spi_write(uint32_t dest_addr, void *dst, uint32_t size) -{ - if (sdk_flashchip.chip_size < (dest_addr + size)) { - return 1; - } - - uint32_t write_bytes_to_page = sdk_flashchip.page_size - - (dest_addr % sdk_flashchip.page_size); - - if (size < write_bytes_to_page) { - if (SPI_page_program(&sdk_flashchip, dest_addr, dst, size)) { - return 1; - } else { - return 0; - } - } - - if (SPI_page_program(&sdk_flashchip, dest_addr, dst, write_bytes_to_page)) { - return 1; - } - - uint32_t offset = write_bytes_to_page; - uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; - for (uint8_t i = 0; i != pages_to_write; i++) { - if (SPI_page_program(&sdk_flashchip, dest_addr + offset, - dst + ((offset>>2)<<2), sdk_flashchip.page_size)) { - return 1; - } - offset += sdk_flashchip.page_size; - } - - if (SPI_page_program(&sdk_flashchip, dest_addr + offset, - dst + ((offset>>2)<<2), size - offset)) { - return 1; - } else { - return 0; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_write - */ -uint32_t IRAM spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size) -{ - if (dst) { - if (size & 0b11) { // not 4-byte aligned - size = size >> 2; - size = (size << 2) + 1; - } - vPortEnterCritical(); - Cache_Read_Disable(); - uint32_t result = spi_write(dest_addr, dst, size); - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - return result; - } else { - return 1; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIEraseSector - */ -uint32_t IRAM spi_erase_sector(uint32_t sector) -{ - if (sector >= (sdk_flashchip.chip_size / sdk_flashchip.sector_size)) { - return 1; - } - - if (SPI_write_enable(&sdk_flashchip)) { - return 1; - } - - if (SPI_sector_erase(&sdk_flashchip, sdk_flashchip.sector_size * sector)) { - return 1; - } - return 0; -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_erase_sector - */ -uint32_t IRAM spi_flash_erase_sector(uint32_t sector) -{ - vPortEnterCritical(); - Cache_Read_Disable(); - - uint32_t result = spi_erase_sector(sector); - - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - - return result; -} - - /* * Flash addresses and size alignment is a rip-off of Arduino implementation. */ @@ -187,7 +48,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) if (addr < alignedBegin) { uint32_t nb = alignedBegin - addr; uint32_t tmp; - if (spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (esp_spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -195,7 +56,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) } if (alignedEnd != alignedBegin) { - if (spi_flash_read(alignedBegin, + if (esp_spi_flash_read(alignedBegin, (uint32_t*) (dst + alignedBegin - addr), alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); @@ -206,7 +67,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) if (addr + size > alignedEnd) { uint32_t nb = addr + size - alignedEnd; uint32_t tmp; - if (spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (esp_spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_read failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -232,7 +93,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t nb = (size < ofs) ? size : ofs; uint8_t tmp[4] __attribute__((aligned(4))) = {0xff, 0xff, 0xff, 0xff}; memcpy(tmp + 4 - ofs, src, nb); - if (spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) + if (esp_spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -243,7 +104,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t* srcLeftover = (uint32_t*) (src + alignedBegin - addr); uint32_t srcAlign = ((uint32_t) srcLeftover) & 3; if (!srcAlign) { - if (spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, + if (esp_spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -255,7 +116,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) size_t willCopy = sizeLeft < sizeof(buf) ? sizeLeft : sizeof(buf); memcpy(buf, srcLeftover, willCopy); - if (spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) + if (esp_spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; @@ -273,7 +134,7 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) uint32_t tmp = 0xffffffff; memcpy(&tmp, src + size - nb, nb); - if (spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { + if (esp_spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { printf("spi_flash_write failed\n"); return SPIFFS_ERR_INTERNAL; } @@ -295,7 +156,7 @@ static s32_t esp_spiffs_erase(u32_t addr, u32_t size) const uint32_t sectorCount = size / SPI_FLASH_SEC_SIZE; for (uint32_t i = 0; i < sectorCount; ++i) { - spi_flash_erase_sector(sector + i); + esp_spi_flash_erase(sector + i); } return SPIFFS_OK; } From 16157080cd5a07b39734196a427e925ac8cf3fc1 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Sat, 16 Jul 2016 22:18:55 +1000 Subject: [PATCH 042/349] i2c: use open drain outputs. Configure the pins as open-drain just in case the code forces them high although it should be configuring them as inputs to let them float high. Initialize the pins when the driver is initialized. Enable the internal pull-ups to prevent them floating too high if not connected and damaging the circuit. --- extras/i2c/i2c.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index ef19c45..df26ed2 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -44,6 +44,19 @@ void i2c_init(uint8_t scl_pin, uint8_t sda_pin) started = false; g_scl_pin = scl_pin; g_sda_pin = sda_pin; + + // Just to prevent these pins floating too much if not connected. + gpio_set_pullup(g_scl_pin, 1, 1); + gpio_set_pullup(g_sda_pin, 1, 1); + + // I2C bus idle state. + gpio_enable(g_scl_pin, GPIO_INPUT); + gpio_enable(g_scl_pin, GPIO_INPUT); + + // Set the pins to a low output state for when they are configured + // as outputs. + gpio_write(g_scl_pin, 0); + gpio_write(g_sda_pin, 0); } static void i2c_delay(void) @@ -51,7 +64,8 @@ static void i2c_delay(void) sdk_os_delay_us(CLK_HALF_PERIOD_US); } -// Set SCL as input and return current level of line, 0 or 1 +// Set SCL as input, allowing it to float high, and return current +// level of line, 0 or 1 static bool read_scl(void) { gpio_enable(g_scl_pin, GPIO_INPUT); @@ -70,15 +84,13 @@ static bool read_sda(void) // Actively drive SCL signal low static void clear_scl(void) { - gpio_enable(g_scl_pin, GPIO_OUTPUT); - gpio_write(g_scl_pin, 0); + gpio_enable(g_scl_pin, GPIO_OUT_OPEN_DRAIN); } // Actively drive SDA signal low static void clear_sda(void) { - gpio_enable(g_sda_pin, GPIO_OUTPUT); - gpio_write(g_sda_pin, 0); + gpio_enable(g_sda_pin, GPIO_OUT_OPEN_DRAIN); } // Output start condition From 4b1568cbb90eaaa9fb138f5cac22ea60ed7e7136 Mon Sep 17 00:00:00 2001 From: sheinz Date: Mon, 18 Jul 2016 13:12:21 +0300 Subject: [PATCH 043/349] SPIFFS: flash access refactoring. --- extras/spiffs/esp_spi_flash.c | 336 ------------------------------- extras/spiffs/esp_spi_flash.h | 11 - extras/spiffs/esp_spiffs.c | 132 ++---------- extras/spiffs/esp_spiffs.h | 2 +- extras/spiffs/esp_spiffs_flash.c | 250 +++++++++++++++++++++++ extras/spiffs/esp_spiffs_flash.h | 64 ++++++ 6 files changed, 332 insertions(+), 463 deletions(-) delete mode 100644 extras/spiffs/esp_spi_flash.c delete mode 100644 extras/spiffs/esp_spi_flash.h create mode 100644 extras/spiffs/esp_spiffs_flash.c create mode 100644 extras/spiffs/esp_spiffs_flash.h diff --git a/extras/spiffs/esp_spi_flash.c b/extras/spiffs/esp_spi_flash.c deleted file mode 100644 index 74f8d98..0000000 --- a/extras/spiffs/esp_spi_flash.c +++ /dev/null @@ -1,336 +0,0 @@ -#include "esp_spi_flash.h" -#include "flashchip.h" -#include "espressif/spi_flash.h" -#include "FreeRTOS.h" -#include "esp/rom.h" -#include "esp/spi_regs.h" - - -static uint32_t IRAM read_status(sdk_flashchip_t *flashchip, uint32_t *status) -{ - uint32_t _status; - - do { - SPI(0).RSTATUS = 0; - SPI(0).CMD = SPI_CMD_READ_SR; - while (SPI(0).CMD) {} - _status = SPI(0).RSTATUS & flashchip->status_mask; - } while ( _status & 0b1); - - *status = _status; - - return 0; -} - -static uint32_t IRAM wait_idle(sdk_flashchip_t *flashchip) -{ - while (DPORT.SPI_READY & DPORT_SPI_READY_IDLE) {} - uint32_t a3; - return read_status(flashchip, &a3); -} - -static uint32_t IRAM write_enable(sdk_flashchip_t *flashchip) -{ - uint32_t local0 = 0; - - wait_idle(flashchip); - - SPI(0).CMD = SPI_CMD_WRITE_ENABLE; - while (SPI(0).CMD) {} - - if (!(local0 & 0b1)) { - do { - read_status(flashchip, &local0); - } while (!(local0 & (1<<1))); - } - return 0; -} - -static uint32_t IRAM page_program(sdk_flashchip_t *flashchip, uint32_t dest_addr, - uint32_t *buf, uint32_t size) -{ - if (size & 0b11) { - return 1; - } - - // check if block to write doesn't cross page boundary - if (flashchip->page_size < size + (dest_addr % flashchip->page_size)) { - return 1; - } - wait_idle(flashchip); - if (size < 1) { - return 0; - } - - // a12 = 0x60000200 - // a0 = 0x00FFFFFF - // a6 = (dest_addr & 0x00FFFFFF) | 0x20000000 - while (size >= 32) { - SPI(0).ADDR = (dest_addr & 0x00FFFFFF) | 0x20000000; - // a4 - loop variable += 4 - // a5 = buf[0] - for (uint8_t i = 0; i != 8; i++) { - SPI(0).W[i] = buf[i]; - } - size -= 32; - dest_addr += 32; - buf += 8; - if (write_enable(flashchip)) { - return 1; - } - SPI(0).CMD = SPI_CMD_PP; - while (SPI(0).CMD) {} // wait for reg->cmd to be 0 - wait_idle(flashchip); - // a0 = 0x00FFFFFF - if (size < 1) { - return 0; - } - } - // a7 = 0x00FFFFFF & dest_addr - // a4 = size << 24; - // a4 = a7 | a4 - SPI(0).ADDR = (size << 24) | (0x00FFFFFF & dest_addr); - // a6 = 0b11 & size - // a3 = size >> 2; - // a5 = a3 + 1 - uint32_t words = size >> 2; - if (0b11 & size) { - words += 1; - } - words = words & 0xFF; - if (words != 0) { - // a4 = 0 - uint8_t i = 0; - - if (words & 0b1) { // bit 0 is set in a3 - SPI(0).W[0] = buf[0]; - i++; - } - // a6 = a3 >> 1; - if (words >> 1) { - // a6 = 0x600000200 - // buff[0] - for (; i != words; i++) { - SPI(0).W[i] = buf[i]; - } - } - } - - if (write_enable(flashchip)) { - return 1; - } - SPI(0).CMD = SPI_CMD_PP; - while (SPI(0).CMD) {} // wait for reg->cmd to be 0 - wait_idle(flashchip); - // a0 = 0x00FFFFFF - return 0; -} - -static uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, - uint32_t *dst, uint32_t size) -{ - // a12 = dst - if ((addr + size) > flashchip->chip_size) { - return 1; - } - - // a14 = addr - // a13 = size - wait_idle(flashchip); - if (size < 1) { - return 0; - } - // SPI(0).CMD - while (size >= 32) { - // a8 = addr | 0x20000000; - SPI(0).ADDR = addr | 0x20000000; - SPI(0).CMD = SPI_CMD_READ; - while (SPI(0).CMD) {}; - for (uint32_t a2 = 0; a2 < 8; a2++) { - *dst = SPI(0).W[a2]; - dst++; - } - size -= 32; - addr += 32; - } - - if (size >= 1) { - // a7 = size << 24; - // a7 = addr | a7 - SPI(0).ADDR = addr | (size << 24); - SPI(0).CMD = SPI_CMD_READ; - while (SPI(0).CMD) {}; - // a10 = size & 0b11 - uint8_t a7 = size >> 2; - // a9 = a7 + 1 - if (size & 0b11) { - // a7 = a7 + 1 - a7++; - } - // a7 = a7 & 0xFF - if (!a7) { - return 0; - } - uint8_t a2 = 0; - if (a7 & 0b1) { - a2 = 1; - // a11 = SPI(0).W0 - *dst = SPI(0).W[0]; - dst += 1; - } - size = a7 >> 1; - if (!size) { - return 0; - } - for (; a2 != a7; a2++) { - *dst = SPI(0).W[a2]; - dst += 1; - } - } - - return 0; -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIRead - */ -static uint32_t IRAM spi_read(uint32_t dest_addr, void *src, uint32_t size) -{ - if (read_data(&sdk_flashchip, dest_addr, (uint32_t*)src, size)) { - return 1; - } else { - return 0; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_read - */ -uint32_t IRAM esp_spi_flash_read(uint32_t dest_addr, void *src, uint32_t size) -{ - if (src) { - vPortEnterCritical(); - Cache_Read_Disable(); - uint32_t result = spi_read(dest_addr, src, size); - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - return result; - } else { - return 1; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIWrite - */ -static uint32_t IRAM spi_write(uint32_t dest_addr, void *dst, uint32_t size) -{ - if (sdk_flashchip.chip_size < (dest_addr + size)) { - return 1; - } - - uint32_t write_bytes_to_page = sdk_flashchip.page_size - - (dest_addr % sdk_flashchip.page_size); - - if (size < write_bytes_to_page) { - if (page_program(&sdk_flashchip, dest_addr, (uint32_t*)dst, size)) { - return 1; - } else { - return 0; - } - } - - if (page_program(&sdk_flashchip, dest_addr, (uint32_t*)dst, write_bytes_to_page)) { - return 1; - } - - uint32_t offset = write_bytes_to_page; - uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; - for (uint8_t i = 0; i != pages_to_write; i++) { - if (page_program(&sdk_flashchip, dest_addr + offset, - dst + ((offset>>2)<<2), sdk_flashchip.page_size)) { - return 1; - } - offset += sdk_flashchip.page_size; - } - - if (page_program(&sdk_flashchip, dest_addr + offset, - dst + ((offset>>2)<<2), size - offset)) { - return 1; - } else { - return 0; - } -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_write - */ -uint32_t IRAM esp_spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size) -{ - if (dst) { - if (size & 0b11) { // not 4-byte aligned - size = size >> 2; - size = (size << 2) + 1; - } - vPortEnterCritical(); - Cache_Read_Disable(); - uint32_t result = spi_write(dest_addr, dst, size); - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - return result; - } else { - return 1; - } -} - -static uint32_t IRAM sector_erase(sdk_flashchip_t *chip, uint32_t addr) -{ - // a12 -> addr - // a0 = addr & 0xFFF - if (addr & 0xFFF) { - return 1; - } - - wait_idle(chip); - SPI(0).ADDR = addr & 0x00FFFFFF; - SPI(0).CMD = SPI_CMD_SE; - while (SPI(0).CMD) {}; - wait_idle(chip); - - return 0; -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_SPIEraseSector - */ -static uint32_t IRAM spi_erase_sector(uint32_t sector) -{ - if (sector >= (sdk_flashchip.chip_size / sdk_flashchip.sector_size)) { - return 1; - } - - if (write_enable(&sdk_flashchip)) { - return 1; - } - - if (sector_erase(&sdk_flashchip, sdk_flashchip.sector_size * sector)) { - return 1; - } - return 0; -} - -/** - * Reverse engineered implementation of spi_flash.o:sdk_spi_flash_erase_sector - */ -uint32_t IRAM esp_spi_flash_erase(uint32_t sector) -{ - vPortEnterCritical(); - Cache_Read_Disable(); - - uint32_t result = spi_erase_sector(sector); - - Cache_Read_Enable(0, 0, 1); - vPortExitCritical(); - - return result; -} diff --git a/extras/spiffs/esp_spi_flash.h b/extras/spiffs/esp_spi_flash.h deleted file mode 100644 index 6bf43e9..0000000 --- a/extras/spiffs/esp_spi_flash.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ESP_SPI_FLASH_H__ -#define __ESP_SPI_FLASH_H__ - -#include -#include "common_macros.h" - -uint32_t IRAM esp_spi_flash_read(uint32_t dest_addr, void *src, uint32_t size); -uint32_t IRAM esp_spi_flash_write(uint32_t dest_addr, void *dst, uint32_t size); -uint32_t IRAM esp_spi_flash_erase(uint32_t sector); - -#endif // __ESP_SPI_FLASH_H__ diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index a3c6b12..1574be2 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -11,7 +11,7 @@ #include #include #include -#include "esp_spi_flash.h" +#include "esp_spiffs_flash.h" spiffs fs; @@ -31,113 +31,19 @@ static fs_buf_t cache_buf = {0}; #define ESP_SPIFFS_CACHE_PAGES 5 - -/* - * Flash addresses and size alignment is a rip-off of Arduino implementation. - */ - static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) { - uint32_t result = SPIFFS_OK; - uint32_t alignedBegin = (addr + 3) & (~3); - uint32_t alignedEnd = (addr + size) & (~3); - if (alignedEnd < alignedBegin) { - alignedEnd = alignedBegin; + if (esp_spiffs_flash_read(addr, dst, size) == ESP_SPIFFS_FLASH_ERROR) { + return SPIFFS_ERR_INTERNAL; } - if (addr < alignedBegin) { - uint32_t nb = alignedBegin - addr; - uint32_t tmp; - if (esp_spi_flash_read(alignedEnd - 4, &tmp, 4) != SPI_FLASH_RESULT_OK) { - printf("spi_flash_read failed\n"); - return SPIFFS_ERR_INTERNAL; - } - memcpy(dst, &tmp + 4 - nb, nb); - } - - if (alignedEnd != alignedBegin) { - if (esp_spi_flash_read(alignedBegin, - (uint32_t*) (dst + alignedBegin - addr), - alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { - printf("spi_flash_read failed\n"); - return SPIFFS_ERR_INTERNAL; - } - } - - if (addr + size > alignedEnd) { - uint32_t nb = addr + size - alignedEnd; - uint32_t tmp; - if (esp_spi_flash_read(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { - printf("spi_flash_read failed\n"); - return SPIFFS_ERR_INTERNAL; - } - - memcpy(dst + size - nb, &tmp, nb); - } - - return result; + return SPIFFS_OK; } -static const int UNALIGNED_WRITE_BUFFER_SIZE = 512; - static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) { - uint32_t alignedBegin = (addr + 3) & (~3); - uint32_t alignedEnd = (addr + size) & (~3); - if (alignedEnd < alignedBegin) { - alignedEnd = alignedBegin; - } - - if (addr < alignedBegin) { - uint32_t ofs = alignedBegin - addr; - uint32_t nb = (size < ofs) ? size : ofs; - uint8_t tmp[4] __attribute__((aligned(4))) = {0xff, 0xff, 0xff, 0xff}; - memcpy(tmp + 4 - ofs, src, nb); - if (esp_spi_flash_write(alignedBegin - 4, (uint32_t*) tmp, 4) - != SPI_FLASH_RESULT_OK) { - printf("spi_flash_write failed\n"); - return SPIFFS_ERR_INTERNAL; - } - } - - if (alignedEnd != alignedBegin) { - uint32_t* srcLeftover = (uint32_t*) (src + alignedBegin - addr); - uint32_t srcAlign = ((uint32_t) srcLeftover) & 3; - if (!srcAlign) { - if (esp_spi_flash_write(alignedBegin, (uint32_t*) srcLeftover, - alignedEnd - alignedBegin) != SPI_FLASH_RESULT_OK) { - printf("spi_flash_write failed\n"); - return SPIFFS_ERR_INTERNAL; - } - } - else { - uint8_t buf[UNALIGNED_WRITE_BUFFER_SIZE]; - for (uint32_t sizeLeft = alignedEnd - alignedBegin; sizeLeft; ) { - size_t willCopy = sizeLeft < sizeof(buf) ? sizeLeft : sizeof(buf); - memcpy(buf, srcLeftover, willCopy); - - if (esp_spi_flash_write(alignedBegin, (uint32_t*) buf, willCopy) - != SPI_FLASH_RESULT_OK) { - printf("spi_flash_write failed\n"); - return SPIFFS_ERR_INTERNAL; - } - - sizeLeft -= willCopy; - srcLeftover += willCopy; - alignedBegin += willCopy; - } - } - } - - if (addr + size > alignedEnd) { - uint32_t nb = addr + size - alignedEnd; - uint32_t tmp = 0xffffffff; - memcpy(&tmp, src + size - nb, nb); - - if (esp_spi_flash_write(alignedEnd, &tmp, 4) != SPI_FLASH_RESULT_OK) { - printf("spi_flash_write failed\n"); - return SPIFFS_ERR_INTERNAL; - } + if (esp_spiffs_flash_write(addr, src, size) == ESP_SPIFFS_FLASH_ERROR) { + return SPIFFS_ERR_INTERNAL; } return SPIFFS_OK; @@ -145,19 +51,15 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) static s32_t esp_spiffs_erase(u32_t addr, u32_t size) { - if (addr % SPI_FLASH_SEC_SIZE) { - printf("Unaligned erase addr=%x\n", addr); - } - if (size % SPI_FLASH_SEC_SIZE) { - printf("Unaligned erase size=%d\n", size); + uint32_t sectors = size / SPI_FLASH_SEC_SIZE; + + for (uint32_t i = 0; i < sectors; i++) { + if (esp_spiffs_flash_erase_sector(addr + (SPI_FLASH_SEC_SIZE * i)) + == ESP_SPIFFS_FLASH_ERROR) { + return SPIFFS_ERR_INTERNAL; + } } - const uint32_t sector = addr / SPI_FLASH_SEC_SIZE; - const uint32_t sectorCount = size / SPI_FLASH_SEC_SIZE; - - for (uint32_t i = 0; i < sectorCount; ++i) { - esp_spi_flash_erase(sector + i); - } return SPIFFS_OK; } @@ -196,8 +98,8 @@ int32_t esp_spiffs_mount() printf("SPIFFS memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", work_buf.size, fds_buf.size, cache_buf.size); - int32_t err = SPIFFS_mount(&fs, &config, (uint8_t*)work_buf.buf, - (uint8_t*)fds_buf.buf, fds_buf.size, + int32_t err = SPIFFS_mount(&fs, &config, (uint8_t*)work_buf.buf, + (uint8_t*)fds_buf.buf, fds_buf.size, cache_buf.buf, cache_buf.size, 0); if (err != SPIFFS_OK) { @@ -213,7 +115,7 @@ int32_t esp_spiffs_mount() long _write_r(struct _reent *r, int fd, const char *ptr, int len ) { if(fd != r->_stdout->_file) { - long ret = SPIFFS_write(&fs, (spiffs_file)(fd - FD_OFFSET), + long ret = SPIFFS_write(&fs, (spiffs_file)(fd - FD_OFFSET), (char*)ptr, len); return ret; } @@ -296,6 +198,6 @@ int _stat_r(struct _reent *r, const char *pathname, void *buf) } off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence) -{ +{ return SPIFFS_lseek(&fs, (spiffs_file)(fd - FD_OFFSET), offset, whence); } diff --git a/extras/spiffs/esp_spiffs.h b/extras/spiffs/esp_spiffs.h index f074017..60dc7f0 100644 --- a/extras/spiffs/esp_spiffs.h +++ b/extras/spiffs/esp_spiffs.h @@ -14,7 +14,7 @@ extern spiffs fs; /** * Prepare for SPIFFS mount. - * + * * The function allocates all the necessary buffers. */ void esp_spiffs_init(); diff --git a/extras/spiffs/esp_spiffs_flash.c b/extras/spiffs/esp_spiffs_flash.c new file mode 100644 index 0000000..1098551 --- /dev/null +++ b/extras/spiffs/esp_spiffs_flash.c @@ -0,0 +1,250 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "esp_spiffs_flash.h" +#include "flashchip.h" +#include "espressif/spi_flash.h" +#include "FreeRTOS.h" +#include "esp/rom.h" +#include "esp/spi_regs.h" + + +#define SPI_WRITE_MAX_SIZE 32 +#define SPI_READ_MAX_SIZE 32 + +/** + * Low level SPI flash write. Write block of data up to SPI_WRITE_MAX_SIZE. + */ +static inline uint32_t IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, + uint8_t *buf, uint32_t size) +{ + SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); + + uint32_t data = 0; + // Copy more than size, in order not to handle unaligned size. + // The exact size will be written to flash + for (uint32_t i = 0; i != SPI_WRITE_MAX_SIZE; i++) { data >>= 8; + data |= (uint32_t)buf[i] << 24; + + if (i & 0b11) { + SPI(0).W[i >> 2] = data; + } + } + + if (SPI_write_enable(chip)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + SPI(0).CMD = SPI_CMD_PP; + while (SPI(0).CMD) {} + Wait_SPI_Idle(chip); + + return ESP_SPIFFS_FLASH_OK; +} + +/** + * Write a page of flash. Data block should bot cross page boundary. + */ +static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_addr, + uint8_t *buf, uint32_t size) +{ + // check if block to write doesn't cross page boundary + if (flashchip->page_size < size + (dest_addr % flashchip->page_size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + if (size < 1) { + return ESP_SPIFFS_FLASH_OK; + } + + Wait_SPI_Idle(flashchip); + + while (size >= SPI_WRITE_MAX_SIZE) { + if (spi_write_data(flashchip, dest_addr, buf, SPI_WRITE_MAX_SIZE)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + size -= SPI_WRITE_MAX_SIZE; + dest_addr += SPI_WRITE_MAX_SIZE; + buf += SPI_WRITE_MAX_SIZE; + + if (size < 1) { + return ESP_SPIFFS_FLASH_OK; + } + } + + if (spi_write_data(flashchip, dest_addr, buf, size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + return ESP_SPIFFS_FLASH_OK; +} + +/** + * Split block of data into pages and write pages. + */ +static uint32_t IRAM spi_write(uint32_t addr, uint8_t *dst, uint32_t size) +{ + if (sdk_flashchip.chip_size < (addr + size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + uint32_t write_bytes_to_page = sdk_flashchip.page_size - + (addr % sdk_flashchip.page_size); // TODO: place for optimization + + if (size < write_bytes_to_page) { + if (spi_write_page(&sdk_flashchip, addr, dst, size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + return ESP_SPIFFS_FLASH_OK; + } + + if (spi_write_page(&sdk_flashchip, addr, dst, write_bytes_to_page)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + uint32_t offset = write_bytes_to_page; + uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; + for (uint8_t i = 0; i != pages_to_write; i++) { + if (spi_write_page(&sdk_flashchip, addr + offset, + dst + offset, sdk_flashchip.page_size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + offset += sdk_flashchip.page_size; + } + + if (spi_write_page(&sdk_flashchip, addr + offset, + dst + offset, size - offset)) { + return ESP_SPIFFS_FLASH_ERROR; + } + return ESP_SPIFFS_FLASH_OK; +} + +uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size) +{ + uint32_t result = ESP_SPIFFS_FLASH_ERROR; + + if (buf) { + vPortEnterCritical(); + Cache_Read_Disable(); + + result = spi_write(addr, buf, size); + + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + } + + return result; +} + +/** + * Read SPI flash up to SPI_READ_MAX_SIZE size. + */ +static inline void IRAM read_block(sdk_flashchip_t *chip, uint32_t addr, + uint8_t *buf, uint32_t size) +{ + SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); + SPI(0).CMD = SPI_CMD_READ; + while (SPI(0).CMD) {}; + uint32_t data = 0; + for (uint32_t i = 0; i < size; i++) { + if (!(i & 0b11)) { + data = SPI(0).W[i>>2]; + } + buf[i] = 0xFF & data; + data >>= 8; + } +} + +/** + * Read SPI flash data. Data region doesn't need to be page aligned. + */ +static inline uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, + uint8_t *dst, uint32_t size) +{ + if (size < 1) { + return ESP_SPIFFS_FLASH_OK; + } + + if ((addr + size) > flashchip->chip_size) { + return ESP_SPIFFS_FLASH_ERROR; + } + + Wait_SPI_Idle(flashchip); + + while (size >= SPI_READ_MAX_SIZE) { + read_block(flashchip, addr, dst, SPI_READ_MAX_SIZE); + dst += SPI_READ_MAX_SIZE; + size -= SPI_READ_MAX_SIZE; + addr += SPI_READ_MAX_SIZE; + } + + if (size > 0) { + read_block(flashchip, addr, dst, size); + } + + return ESP_SPIFFS_FLASH_OK; +} + +uint32_t IRAM esp_spiffs_flash_read(uint32_t dest_addr, uint8_t *buf, uint32_t size) +{ + uint32_t result = ESP_SPIFFS_FLASH_ERROR; + + if (buf) { + vPortEnterCritical(); + Cache_Read_Disable(); + + result = read_data(&sdk_flashchip, dest_addr, buf, size); + + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + } + + return result; +} + +uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr) +{ + if ((addr + sdk_flashchip.sector_size) > sdk_flashchip.chip_size) { + return ESP_SPIFFS_FLASH_ERROR; + } + + if (addr & 0xFFF) { + return ESP_SPIFFS_FLASH_ERROR; + } + + vPortEnterCritical(); + Cache_Read_Disable(); + + SPI_write_enable(&sdk_flashchip); + + Wait_SPI_Idle(&sdk_flashchip); + SPI(0).ADDR = addr & 0x00FFFFFF; + SPI(0).CMD = SPI_CMD_SE; + while (SPI(0).CMD) {}; + Wait_SPI_Idle(&sdk_flashchip); + + Cache_Read_Enable(0, 0, 1); + vPortExitCritical(); + + return ESP_SPIFFS_FLASH_OK; +} diff --git a/extras/spiffs/esp_spiffs_flash.h b/extras/spiffs/esp_spiffs_flash.h new file mode 100644 index 0000000..abfe864 --- /dev/null +++ b/extras/spiffs/esp_spiffs_flash.h @@ -0,0 +1,64 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef __ESP_SPIFFS_FLASH_H__ +#define __ESP_SPIFFS_FLASH_H__ + +#include +#include "common_macros.h" + +#define ESP_SPIFFS_FLASH_OK 0 +#define ESP_SPIFFS_FLASH_ERROR 1 + +/** + * Read data from SPI flash. + * + * @param addr Address to read from. Can be not aligned. + * @param buf Buffer to read to. Doesn't have to be aligned. + * @param size Size of data to read. Buffer size must be >= than data size. + * + * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + */ +uint32_t IRAM esp_spiffs_flash_read(uint32_t addr, uint8_t *buf, uint32_t size); + +/** + * Write data to SPI flash. + * + * @param addr Address to write to. Can be not aligned. + * @param buf Buffer of data to write to flash. Doesn't have to be aligned. + * @param size Size of data to write. Buffer size must be >= than data size. + * + * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + */ +uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size); + +/** + * Erase a sector. + * + * @param addr Address of sector to erase. Must be sector aligned. + * + * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + */ +uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr); + +#endif // __ESP_SPIFFS_FLASH_H__ From 281faa2cacac65b12a7732b0cc9ea5ac556d7ee6 Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 19 Jul 2016 17:38:21 +0300 Subject: [PATCH 044/349] SPIFFS: Wait SPI idle optimization. --- extras/spiffs/esp_spiffs_flash.c | 79 ++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/extras/spiffs/esp_spiffs_flash.c b/extras/spiffs/esp_spiffs_flash.c index 1098551..fafd167 100644 --- a/extras/spiffs/esp_spiffs_flash.c +++ b/extras/spiffs/esp_spiffs_flash.c @@ -27,25 +27,45 @@ #include "FreeRTOS.h" #include "esp/rom.h" #include "esp/spi_regs.h" +#include +/** + * Note about Wait_SPI_Idle. + * + * Each write/erase flash operation sets BUSY bit in flash status register. + * If attempt to access flash while BUSY bit is set operation will fail. + * Function Wait_SPI_Idle loops until this bit is not cleared. + * + * The approach in the following code is that each write function that is + * accessible from the outside should leave flash in Idle state. + * The read operations doesn't set BUSY bit in a flash. So they do not wait. + * They relay that previous operation is completely finished. + * + * This approach is different from ESP8266 bootrom where Wait_SPI_Idle is + * called where it needed and not. + */ #define SPI_WRITE_MAX_SIZE 32 #define SPI_READ_MAX_SIZE 32 /** - * Low level SPI flash write. Write block of data up to SPI_WRITE_MAX_SIZE. + * Low level SPI flash write. Write block of data up to 64 bytes. */ static inline uint32_t IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, uint8_t *buf, uint32_t size) { + Wait_SPI_Idle(chip); // wait for previous write to finish + SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); + uint32_t words = size >> 2; + if (size & 0b11) { + words++; + } uint32_t data = 0; - // Copy more than size, in order not to handle unaligned size. - // The exact size will be written to flash - for (uint32_t i = 0; i != SPI_WRITE_MAX_SIZE; i++) { data >>= 8; + for (uint32_t i = 0; i < (words << 2); i++) { + data >>= 8; data |= (uint32_t)buf[i] << 24; - if (i & 0b11) { SPI(0).W[i >> 2] = data; } @@ -57,13 +77,12 @@ static inline uint32_t IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, SPI(0).CMD = SPI_CMD_PP; while (SPI(0).CMD) {} - Wait_SPI_Idle(chip); return ESP_SPIFFS_FLASH_OK; } /** - * Write a page of flash. Data block should bot cross page boundary. + * Write a page of flash. Data block should not cross page boundary. */ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_addr, uint8_t *buf, uint32_t size) @@ -77,8 +96,6 @@ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_ad return ESP_SPIFFS_FLASH_OK; } - Wait_SPI_Idle(flashchip); - while (size >= SPI_WRITE_MAX_SIZE) { if (spi_write_data(flashchip, dest_addr, buf, SPI_WRITE_MAX_SIZE)) { return ESP_SPIFFS_FLASH_ERROR; @@ -96,6 +113,7 @@ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_ad if (spi_write_data(flashchip, dest_addr, buf, size)) { return ESP_SPIFFS_FLASH_ERROR; } + return ESP_SPIFFS_FLASH_OK; } @@ -115,27 +133,27 @@ static uint32_t IRAM spi_write(uint32_t addr, uint8_t *dst, uint32_t size) if (spi_write_page(&sdk_flashchip, addr, dst, size)) { return ESP_SPIFFS_FLASH_ERROR; } - return ESP_SPIFFS_FLASH_OK; - } - - if (spi_write_page(&sdk_flashchip, addr, dst, write_bytes_to_page)) { - return ESP_SPIFFS_FLASH_ERROR; - } - - uint32_t offset = write_bytes_to_page; - uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; - for (uint8_t i = 0; i != pages_to_write; i++) { - if (spi_write_page(&sdk_flashchip, addr + offset, - dst + offset, sdk_flashchip.page_size)) { + } else { + if (spi_write_page(&sdk_flashchip, addr, dst, write_bytes_to_page)) { + return ESP_SPIFFS_FLASH_ERROR; + } + + uint32_t offset = write_bytes_to_page; + uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; + for (uint8_t i = 0; i != pages_to_write; i++) { + if (spi_write_page(&sdk_flashchip, addr + offset, + dst + offset, sdk_flashchip.page_size)) { + return ESP_SPIFFS_FLASH_ERROR; + } + offset += sdk_flashchip.page_size; + } + + if (spi_write_page(&sdk_flashchip, addr + offset, + dst + offset, size - offset)) { return ESP_SPIFFS_FLASH_ERROR; } - offset += sdk_flashchip.page_size; } - if (spi_write_page(&sdk_flashchip, addr + offset, - dst + offset, size - offset)) { - return ESP_SPIFFS_FLASH_ERROR; - } return ESP_SPIFFS_FLASH_OK; } @@ -149,6 +167,9 @@ uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size) result = spi_write(addr, buf, size); + // make sure all write operations is finished before exiting + Wait_SPI_Idle(&sdk_flashchip); + Cache_Read_Enable(0, 0, 1); vPortExitCritical(); } @@ -157,7 +178,7 @@ uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size) } /** - * Read SPI flash up to SPI_READ_MAX_SIZE size. + * Read SPI flash up to 64 bytes. */ static inline void IRAM read_block(sdk_flashchip_t *chip, uint32_t addr, uint8_t *buf, uint32_t size) @@ -189,8 +210,6 @@ static inline uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, return ESP_SPIFFS_FLASH_ERROR; } - Wait_SPI_Idle(flashchip); - while (size >= SPI_READ_MAX_SIZE) { read_block(flashchip, addr, dst, SPI_READ_MAX_SIZE); dst += SPI_READ_MAX_SIZE; @@ -237,10 +256,10 @@ uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr) SPI_write_enable(&sdk_flashchip); - Wait_SPI_Idle(&sdk_flashchip); SPI(0).ADDR = addr & 0x00FFFFFF; SPI(0).CMD = SPI_CMD_SE; while (SPI(0).CMD) {}; + Wait_SPI_Idle(&sdk_flashchip); Cache_Read_Enable(0, 0, 1); From 05bbe48bd47b02319613225ab8d5f8ce32939337 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Tue, 19 Jul 2016 00:43:16 +1000 Subject: [PATCH 045/349] bmp180: make a lower level interface available and support oversampling. An application using multiple I2C devices will need it's own loop. This reworks the code to make the detection, calibration constant loading, and measurment functions available too without having to use the bmp810 task which is still retained. Adds support for oversampling. Fixes a bug in the calculation of the temperature. Better error handling. Checks for I2C errors and errors in the loading of the calibration constants and propagates these up. --- examples/bmp180_i2c/bmp180_i2c.c | 2 +- extras/bmp180/bmp180.c | 316 ++++++++++++++++--------------- extras/bmp180/bmp180.h | 27 +++ 3 files changed, 190 insertions(+), 155 deletions(-) diff --git a/examples/bmp180_i2c/bmp180_i2c.c b/examples/bmp180_i2c/bmp180_i2c.c index 64ee961..5aa63f7 100644 --- a/examples/bmp180_i2c/bmp180_i2c.c +++ b/examples/bmp180_i2c/bmp180_i2c.c @@ -73,7 +73,7 @@ void bmp180_task(void *pvParameters) bmp180_trigger_measurement(com_queue); break; case MY_EVT_BMP180: - printf("%s: Received BMP180 Event temp:=%d.%d°C press=%d.%02dhPa\n", __FUNCTION__, \ + printf("%s: Received BMP180 Event temp:=%d.%dC press=%d.%02dhPa\n", __FUNCTION__, \ (int32_t)ev.bmp180_data.temperature, abs((int32_t)(ev.bmp180_data.temperature*10)%10), \ ev.bmp180_data.pressure/100, ev.bmp180_data.pressure%100 ); break; diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index 7291236..e384cfc 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -27,12 +27,7 @@ // Values for BMP180_CONTROL_REG // #define BMP180_MEASURE_TEMP 0x2E -#define BMP180_MEASURE_PRESS_OSS0 0x34 -#define BMP180_MEASURE_PRESS_OSS1 0x74 -#define BMP180_MEASURE_PRESS_OSS2 0xB4 -#define BMP180_MEASURE_PRESS_OSS3 0xF4 - -#define BMP180_DEFAULT_CONV_TIME 5000 +#define BMP180_MEASURE_PRESS 0x34 // // CHIP ID stored in BMP180_VERSION_REG @@ -56,25 +51,9 @@ typedef struct static xQueueHandle bmp180_rx_queue = NULL; static xTaskHandle bmp180_task_handle = NULL; -// Calibration constants -static int16_t AC1; -static int16_t AC2; -static int16_t AC3; -static uint16_t AC4; -static uint16_t AC5; -static uint16_t AC6; - -static int16_t B1; -static int16_t B2; - -static int16_t MB; -static int16_t MC; -static int16_t MD; - // // Forward declarations // -static void bmp180_meassure(const bmp180_command_t* command); static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); // Set default implementation .. User gets result as bmp180_result_t event @@ -85,109 +64,158 @@ static void bmp180_driver_task(void *pvParameters) { // Data to be received from user bmp180_command_t current_command; + bmp180_constants_t bmp180_constants; #ifdef BMP180_DEBUG // Wait for commands from the outside printf("%s: Started Task\n", __FUNCTION__); #endif - while(1) - { + // Initialize all internal constants. + if (!bmp180_fillInternalConstants(&bmp180_constants)) { + printf("%s: reading internal constants failed\n", __FUNCTION__); + vTaskDelete(NULL); + } + + while(1) { // Wait for user to insert commands - if (xQueueReceive(bmp180_rx_queue, ¤t_command, portMAX_DELAY) == pdTRUE) - { + if (xQueueReceive(bmp180_rx_queue, ¤t_command, portMAX_DELAY) == pdTRUE) { #ifdef BMP180_DEBUG printf("%s: Received user command %d 0x%p\n", __FUNCTION__, current_command.cmd, current_command.resultQueue); #endif // use user provided queue - if (current_command.resultQueue != NULL) - { + if (current_command.resultQueue != NULL) { // Work on it ... - bmp180_meassure(¤t_command); + int32_t T = 0; + uint32_t P = 0; + + if (bmp180_measure(&bmp180_constants, &T, (current_command.cmd & BMP180_PRESSURE) ? &P : NULL, 3)) { + // Inform the user ... + if (!bmp180_informUser(current_command.resultQueue, + current_command.cmd, + ((bmp180_temp_t)T)/10.0, + (bmp180_press_t)P)) { + // Failed to send info to user + printf("%s: Unable to inform user bmp180_informUser returned \"false\"\n", __FUNCTION__); + } + } } } } } -static uint8_t bmp180_readRegister8(uint8_t reg) -{ - uint8_t r = 0; - - if (!i2c_slave_read(BMP180_DEVICE_ADDRESS, reg, &r, 1)) - { - r = 0; - } - return r; -} - - -static int16_t bmp180_readRegister16(uint8_t reg) +static bool bmp180_readRegister16(uint8_t reg, int16_t *r) { uint8_t d[] = { 0, 0 }; - int16_t r = 0; - if (i2c_slave_read(BMP180_DEVICE_ADDRESS, reg, d, 2)) - { - r = ((int16_t)d[0]<<8) | (d[1]); - } - return r; + if (!i2c_slave_read(BMP180_DEVICE_ADDRESS, reg, d, 2)) + return false; + + *r = ((int16_t)d[0] << 8) | (d[1]); + return true; } -static void bmp180_start_Messurement(uint8_t cmd) +static bool bmp180_start_Messurement(uint8_t cmd) { uint8_t d[] = { BMP180_CONTROL_REG, cmd }; - i2c_slave_write(BMP180_DEVICE_ADDRESS, d, 2); + return i2c_slave_write(BMP180_DEVICE_ADDRESS, d, 2); } -static int16_t bmp180_getUncompensatedMessurement(uint8_t cmd) +static bool bmp180_get_uncompensated_temperature(int32_t *ut) { - // Write Start Code into reg 0xF4 (Currently without oversampling ...) - bmp180_start_Messurement((cmd==BMP180_TEMPERATURE)?BMP180_MEASURE_TEMP:BMP180_MEASURE_PRESS_OSS0); + // Write Start Code into reg 0xF4. + if (!bmp180_start_Messurement(BMP180_MEASURE_TEMP)) + return false; - // Wait 5ms Datasheet states 4.5ms - sdk_os_delay_us(BMP180_DEFAULT_CONV_TIME); + // Wait 5ms, datasheet states 4.5ms + sdk_os_delay_us(5000); - return (int16_t)bmp180_readRegister16(BMP180_OUT_MSB_REG); + int16_t v; + if (!bmp180_readRegister16(BMP180_OUT_MSB_REG, &v)) + return false; + + *ut = v; + return true; } -static void bmp180_fillInternalConstants(void) +static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) { - AC1 = bmp180_readRegister16(BMP180_CALIBRATION_REG+0); - AC2 = bmp180_readRegister16(BMP180_CALIBRATION_REG+2); - AC3 = bmp180_readRegister16(BMP180_CALIBRATION_REG+4); - AC4 = bmp180_readRegister16(BMP180_CALIBRATION_REG+6); - AC5 = bmp180_readRegister16(BMP180_CALIBRATION_REG+8); - AC6 = bmp180_readRegister16(BMP180_CALIBRATION_REG+10); + uint16_t us; - B1 = bmp180_readRegister16(BMP180_CALIBRATION_REG+12); - B2 = bmp180_readRegister16(BMP180_CALIBRATION_REG+14); + // Limit oss and set the measurement wait time. The datasheet + // states 4.5, 7.5, 13.5, 25.5ms for oss 0 to 3. + switch (oss) { + case 0: us = 5000; break; + case 1: us = 8000; break; + case 2: us = 14000; break; + default: oss = 3; us = 26000; break; + } - MB = bmp180_readRegister16(BMP180_CALIBRATION_REG+16); - MC = bmp180_readRegister16(BMP180_CALIBRATION_REG+18); - MD = bmp180_readRegister16(BMP180_CALIBRATION_REG+20); + // Write Start Code into reg 0xF4 + if (!bmp180_start_Messurement(BMP180_MEASURE_PRESS | (oss << 6))) + return false; + + sdk_os_delay_us(us); + + uint8_t d[] = { 0, 0, 0 }; + if (!i2c_slave_read(BMP180_DEVICE_ADDRESS, BMP180_OUT_MSB_REG, d, 3)) + return false; + + uint32_t r = ((uint32_t)d[0] << 16) | ((uint32_t)d[1] << 8) | d[2]; + r >>= 8 - oss; + *up = r; + return true; +} + +// Returns true of success else false. +bool bmp180_fillInternalConstants(bmp180_constants_t *c) +{ + if (!bmp180_readRegister16(BMP180_CALIBRATION_REG+0, &c->AC1) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+2, &c->AC2) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+4, &c->AC3) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+6, (int16_t *)&c->AC4) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+8, (int16_t *)&c->AC5) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+10, (int16_t *)&c->AC6) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+12, &c->B1) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+14, &c->B2) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+16, &c->MB) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+18, &c->MC) || + !bmp180_readRegister16(BMP180_CALIBRATION_REG+20, &c->MD)) { + return false; + } #ifdef BMP180_DEBUG - printf("%s: AC1:=%d AC2:=%d AC3:=%d AC4:=%u AC5:=%u AC6:=%u \n", __FUNCTION__, AC1, AC2, AC3, AC4, AC5, AC6); - printf("%s: B1:=%d B2:=%d\n", __FUNCTION__, B1, B2); - printf("%s: MB:=%d MC:=%d MD:=%d\n", __FUNCTION__, MB, MC, MD); + printf("%s: AC1:=%d AC2:=%d AC3:=%d AC4:=%u AC5:=%u AC6:=%u \n", __FUNCTION__, c->AC1, c->AC2, c->AC3, c->AC4, c->AC5, c->AC6); + printf("%s: B1:=%d B2:=%d\n", __FUNCTION__, c->B1, c->B2); + printf("%s: MB:=%d MC:=%d MD:=%d\n", __FUNCTION__, c->MB, c->MC, c->MD); #endif + + // Error if any read as 0x0000 or 0xffff. + return !(c->AC1 == 0x0000 || c->AC2 == 0x0000 || c->AC3 == 0x0000 || + c->AC4 == 0x0000 || c->AC5 == 0x0000 || c->AC6 == 0x0000 || + c->B1 == 0x0000 || c->B2 == 0x0000 || + c->MB == 0x0000 || c->MC == 0x0000 || c->MD == 0x0000 || + c->AC1 == 0xffff || c->AC2 == 0xffff || c->AC3 == 0xffff || + c->AC4 == 0xffff || c->AC5 == 0xffff || c->AC6 == 0xffff || + c->B1 == 0xffff || c->B2 == 0xffff || + c->MB == 0xffff || c->MC == 0xffff || c->MD == 0xffff); } static bool bmp180_create_communication_queues() { // Just create them once - if (bmp180_rx_queue==NULL) - { + if (bmp180_rx_queue == NULL) bmp180_rx_queue = xQueueCreate(BMP180_RX_QUEUE_SIZE, sizeof(bmp180_result_t)); - } - return (bmp180_rx_queue!=NULL); + return bmp180_rx_queue != NULL; } -static bool bmp180_is_avaialble() +bool bmp180_is_available() { - return (bmp180_readRegister8(BMP180_VERSION_REG)==BMP180_CHIP_ID); + uint8_t id; + return i2c_slave_read(BMP180_DEVICE_ADDRESS, BMP180_VERSION_REG, &id, 1) && + id == BMP180_CHIP_ID; } static bool bmp180_createTask() @@ -195,87 +223,74 @@ static bool bmp180_createTask() // We already have a task portBASE_TYPE x = pdPASS; - if (bmp180_task_handle==NULL) - { + if (bmp180_task_handle == NULL) { x = xTaskCreate(bmp180_driver_task, (signed char *)"bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); } - return (x==pdPASS); + return x == pdPASS; } -static void bmp180_meassure(const bmp180_command_t* command) +bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, + uint32_t *pressure, uint8_t oss) { int32_t T, P; - // Init result to 0 - T = P = 0; + if (!temperature && !pressure) + return false; - if (command->resultQueue != NULL) - { - int32_t UT, X1, X2, B5; + // Temperature is always needed, allso required for pressure only. + // + // Calculation taken from BMP180 Datasheet + int32_t UT, X1, X2, B5; + if (!bmp180_get_uncompensated_temperature(&UT)) + return false; + + X1 = ((UT - (int32_t)c->AC6) * (int32_t)c->AC5) >> 15; + X2 = ((int32_t)c->MC << 11) / (X1 + (int32_t)c->MD); + B5 = X1 + X2; + T = (B5 + 8) >> 4; + if (temperature) + *temperature = T; +#ifdef BMP180_DEBUG + printf("%s: T:= %ld.%d\n", __FUNCTION__, T/10, abs(T%10)); +#endif + + if (pressure) { + int32_t X3, B3, B6; + uint32_t B4, B7, UP; + + if (!bmp180_get_uncompensated_pressure(oss, &UP)) + return false; - // - // Temperature is always needed ... Also required for pressure only - // // Calculation taken from BMP180 Datasheet - UT = (int32_t)bmp180_getUncompensatedMessurement(BMP180_TEMPERATURE); + B6 = B5 - 4000; + X1 = ((int32_t)c->B2 * ((B6 * B6) >> 12)) >> 11; + X2 = ((int32_t)c->AC2 * B6) >> 11; + X3 = X1 + X2; - X1 = (UT - (int32_t)AC6) * ((int32_t)AC5) >> 15; - X2 = ((int32_t)MC << 11) / (X1 + (int32_t)MD); - B5 = X1 + X2; + B3 = ((((int32_t)c->AC1 * 4 + X3) << oss) + 2) >> 2; + X1 = ((int32_t)c->AC3 * B6) >> 13; + X2 = ((int32_t)c->B1 * ((B6 * B6) >> 12)) >> 16; + X3 = ((X1 + X2) + 2) >> 2; + B4 = ((uint32_t)c->AC4 * (uint32_t)(X3 + 32768)) >> 15; + B7 = ((uint32_t)UP - B3) * (uint32_t)(50000UL >> oss); - T = (B5 + 8) >> 4; - -#ifdef BMP180_DEBUG - printf("%s: T:= %ld.%d\n", __FUNCTION__, T/10, abs(T%10)); -#endif - - // Do we also need pressure? - if (command->cmd & BMP180_PRESSURE) - { - int32_t X3, B3, B6; - uint32_t B4, B7, UP; - - UP = ((uint32_t)bmp180_getUncompensatedMessurement(BMP180_PRESSURE) & 0xFFFF); - - // Calculation taken from BMP180 Datasheet - B6 = B5 - 4000; - X1 = ((int32_t)B2 * ((B6 * B6) >> 12)) >> 11; - X2 = ((int32_t)AC2 * B6) >> 11; - X3 = X1 + X2; - - B3 = (((int32_t)AC1 * 4 + X3) + 2) >> 2; - X1 = ((int32_t)AC3 * B6) >> 13; - X2 = ((int32_t)B1 * ((B6 * B6) >> 12)) >> 16; - X3 = ((X1 + X2) + 2) >> 2; - B4 = ((uint32_t)AC4 * (uint32_t)(X3 + 32768)) >> 15; - B7 = (UP - B3) * (uint32_t)(50000UL); - - if (B7 < 0x80000000) - { - P = (B7 * 2) / B4; - } - else - { - P = (B7 / B4) * 2; - } - - X1 = (P >> 8) * (P >> 8); - X1 = (X1 * 3038) >> 16; - X2 = (-7357 * P) >> 16; - P = P + ((X1 + X2 + (int32_t)3791) >> 4); - -#ifdef BMP180_DEBUG - printf("%s: P:= %ld\n", __FUNCTION__, P); -#endif + if (B7 < 0x80000000UL) { + P = (B7 * 2) / B4; + } else { + P = (B7 / B4) * 2; } - // Inform the user ... - if (!bmp180_informUser(command->resultQueue, command->cmd, ((bmp180_temp_t)T)/10.0, (bmp180_press_t)P)) - { - // Failed to send info to user - printf("%s: Unable to inform user bmp180_informUser returned \"false\"\n", __FUNCTION__); - } + X1 = (P >> 8) * (P >> 8); + X1 = (X1 * 3038) >> 16; + X2 = (-7357 * P) >> 16; + P = P + ((X1 + X2 + (int32_t)3791) >> 4); + if (pressure) + *pressure = P; +#ifdef BMP180_DEBUG + printf("%s: P:= %ld\n", __FUNCTION__, P); +#endif } + return true; } // Default user inform implementation @@ -296,20 +311,13 @@ bool bmp180_init(uint8_t scl, uint8_t sda) // 1. Create required queues bool result = false; - if (bmp180_create_communication_queues()) - { + if (bmp180_create_communication_queues()) { // 2. Init i2c driver i2c_init(scl, sda); - // 3. Check for bmp180 ... - if (bmp180_is_avaialble()) - { - // 4. Init all internal constants ... - bmp180_fillInternalConstants(); - - // 5. Start driver task - if (bmp180_createTask()) - { + if (bmp180_is_available()) { + // 4. Start driver task + if (bmp180_createTask()) { // We are finished result = true; } diff --git a/extras/bmp180/bmp180.h b/extras/bmp180/bmp180.h index b675130..cbdad4a 100644 --- a/extras/bmp180/bmp180.h +++ b/extras/bmp180/bmp180.h @@ -52,4 +52,31 @@ void bmp180_trigger_pressure_measurement(const xQueueHandle* resultQueue); // Give the user the chance to create it's own handler extern bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); +// Calibration constants +typedef struct +{ + int16_t AC1; + int16_t AC2; + int16_t AC3; + uint16_t AC4; + uint16_t AC5; + uint16_t AC6; + + int16_t B1; + int16_t B2; + + int16_t MB; + int16_t MC; + int16_t MD; +} bmp180_constants_t; + +// Returns true if the bmp180 is detected. +bool bmp180_is_available(); +// Reads all the internal constants, returning true on success. +bool bmp180_fillInternalConstants(bmp180_constants_t *c); +// Reads an optional temperature and pressure. The over sampling +// setting, oss, may be 0 to 3. Returns true on success. +bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, + uint32_t *pressure, uint8_t oss); + #endif /* DRIVER_BMP180_H_ */ From 41d4427fba988ed1bc223896ab13b34a5d6ed547 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Wed, 20 Jul 2016 18:46:58 +1000 Subject: [PATCH 046/349] bmp180: separate the task and queue interface from the lower level support. This just separates them in the one file leaving it as possible future change to actually remove the higher level api or move it to an example. --- extras/bmp180/bmp180.c | 171 +++++++++++++++++++++-------------------- 1 file changed, 86 insertions(+), 85 deletions(-) diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index e384cfc..bcd447c 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -39,71 +39,6 @@ // #define BMP180_RESET_VALUE 0xB6 - -// BMP180_Event_Command -typedef struct -{ - uint8_t cmd; - const xQueueHandle* resultQueue; -} bmp180_command_t; - -// Just works due to the fact that xQueueHandle is a "void *" -static xQueueHandle bmp180_rx_queue = NULL; -static xTaskHandle bmp180_task_handle = NULL; - -// -// Forward declarations -// -static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); - -// Set default implementation .. User gets result as bmp180_result_t event -bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) = bmp180_informUser_Impl; - -// I2C Driver Task -static void bmp180_driver_task(void *pvParameters) -{ - // Data to be received from user - bmp180_command_t current_command; - bmp180_constants_t bmp180_constants; - -#ifdef BMP180_DEBUG - // Wait for commands from the outside - printf("%s: Started Task\n", __FUNCTION__); -#endif - - // Initialize all internal constants. - if (!bmp180_fillInternalConstants(&bmp180_constants)) { - printf("%s: reading internal constants failed\n", __FUNCTION__); - vTaskDelete(NULL); - } - - while(1) { - // Wait for user to insert commands - if (xQueueReceive(bmp180_rx_queue, ¤t_command, portMAX_DELAY) == pdTRUE) { -#ifdef BMP180_DEBUG - printf("%s: Received user command %d 0x%p\n", __FUNCTION__, current_command.cmd, current_command.resultQueue); -#endif - // use user provided queue - if (current_command.resultQueue != NULL) { - // Work on it ... - int32_t T = 0; - uint32_t P = 0; - - if (bmp180_measure(&bmp180_constants, &T, (current_command.cmd & BMP180_PRESSURE) ? &P : NULL, 3)) { - // Inform the user ... - if (!bmp180_informUser(current_command.resultQueue, - current_command.cmd, - ((bmp180_temp_t)T)/10.0, - (bmp180_press_t)P)) { - // Failed to send info to user - printf("%s: Unable to inform user bmp180_informUser returned \"false\"\n", __FUNCTION__); - } - } - } - } - } -} - static bool bmp180_readRegister16(uint8_t reg, int16_t *r) { uint8_t d[] = { 0, 0 }; @@ -202,15 +137,6 @@ bool bmp180_fillInternalConstants(bmp180_constants_t *c) c->MB == 0xffff || c->MC == 0xffff || c->MD == 0xffff); } -static bool bmp180_create_communication_queues() -{ - // Just create them once - if (bmp180_rx_queue == NULL) - bmp180_rx_queue = xQueueCreate(BMP180_RX_QUEUE_SIZE, sizeof(bmp180_result_t)); - - return bmp180_rx_queue != NULL; -} - bool bmp180_is_available() { uint8_t id; @@ -218,17 +144,6 @@ bool bmp180_is_available() id == BMP180_CHIP_ID; } -static bool bmp180_createTask() -{ - // We already have a task - portBASE_TYPE x = pdPASS; - - if (bmp180_task_handle == NULL) { - x = xTaskCreate(bmp180_driver_task, (signed char *)"bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); - } - return x == pdPASS; -} - bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, uint32_t *pressure, uint8_t oss) { @@ -293,6 +208,92 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, return true; } + + +// BMP180_Event_Command +typedef struct +{ + uint8_t cmd; + const xQueueHandle* resultQueue; +} bmp180_command_t; + +// Just works due to the fact that xQueueHandle is a "void *" +static xQueueHandle bmp180_rx_queue = NULL; +static xTaskHandle bmp180_task_handle = NULL; + +// +// Forward declarations +// +static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); + +// Set default implementation .. User gets result as bmp180_result_t event +bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) = bmp180_informUser_Impl; + +// I2C Driver Task +static void bmp180_driver_task(void *pvParameters) +{ + // Data to be received from user + bmp180_command_t current_command; + bmp180_constants_t bmp180_constants; + +#ifdef BMP180_DEBUG + // Wait for commands from the outside + printf("%s: Started Task\n", __FUNCTION__); +#endif + + // Initialize all internal constants. + if (!bmp180_fillInternalConstants(&bmp180_constants)) { + printf("%s: reading internal constants failed\n", __FUNCTION__); + vTaskDelete(NULL); + } + + while(1) { + // Wait for user to insert commands + if (xQueueReceive(bmp180_rx_queue, ¤t_command, portMAX_DELAY) == pdTRUE) { +#ifdef BMP180_DEBUG + printf("%s: Received user command %d 0x%p\n", __FUNCTION__, current_command.cmd, current_command.resultQueue); +#endif + // use user provided queue + if (current_command.resultQueue != NULL) { + // Work on it ... + int32_t T = 0; + uint32_t P = 0; + + if (bmp180_measure(&bmp180_constants, &T, (current_command.cmd & BMP180_PRESSURE) ? &P : NULL, 3)) { + // Inform the user ... + if (!bmp180_informUser(current_command.resultQueue, + current_command.cmd, + ((bmp180_temp_t)T)/10.0, + (bmp180_press_t)P)) { + // Failed to send info to user + printf("%s: Unable to inform user bmp180_informUser returned \"false\"\n", __FUNCTION__); + } + } + } + } + } +} + +static bool bmp180_create_communication_queues() +{ + // Just create them once + if (bmp180_rx_queue == NULL) + bmp180_rx_queue = xQueueCreate(BMP180_RX_QUEUE_SIZE, sizeof(bmp180_result_t)); + + return bmp180_rx_queue != NULL; +} + +static bool bmp180_createTask() +{ + // We already have a task + portBASE_TYPE x = pdPASS; + + if (bmp180_task_handle == NULL) { + x = xTaskCreate(bmp180_driver_task, (signed char *)"bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); + } + return x == pdPASS; +} + // Default user inform implementation static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) { From 38cccbd456182c6d30fad2e031fc1aeb8293fa75 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 21 Jul 2016 16:36:55 +0300 Subject: [PATCH 047/349] SPIFFS: Optimized SPI data read/write. Unaligned read/write from/to SPI data registers is rewritten in assembler to improve performance. --- extras/spiffs/esp_spiffs_flash.c | 72 ++++++++++---------- extras/spiffs/unaligned_memcpy.S | 112 +++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+), 34 deletions(-) create mode 100644 extras/spiffs/unaligned_memcpy.S diff --git a/extras/spiffs/esp_spiffs_flash.c b/extras/spiffs/esp_spiffs_flash.c index fafd167..f0a6049 100644 --- a/extras/spiffs/esp_spiffs_flash.c +++ b/extras/spiffs/esp_spiffs_flash.c @@ -45,40 +45,53 @@ * called where it needed and not. */ -#define SPI_WRITE_MAX_SIZE 32 -#define SPI_READ_MAX_SIZE 32 +#define SPI_WRITE_MAX_SIZE 64 + +// 64 bytes read causes hang +// http://bbs.espressif.com/viewtopic.php?f=6&t=2439 +#define SPI_READ_MAX_SIZE 60 + + +/** + * Copy unaligned data to 4-byte aligned destination buffer. + * + * @param words Number of 4-byte words to write. + * + * @see unaligned_memcpy.S + */ +void memcpy_unaligned_src(volatile uint32_t *dst, uint8_t *src, uint8_t words); + +/** + * Copy 4-byte aligned source data to unaligned destination buffer. + * + * @param bytes Number of byte to copy to dst. + * + * @see unaligned_memcpy.S + */ +void memcpy_unaligned_dst(uint8_t *dst, volatile uint32_t *src, uint8_t bytes); + /** * Low level SPI flash write. Write block of data up to 64 bytes. */ -static inline uint32_t IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, +static inline void IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, uint8_t *buf, uint32_t size) { - Wait_SPI_Idle(chip); // wait for previous write to finish - - SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); - uint32_t words = size >> 2; if (size & 0b11) { words++; } - uint32_t data = 0; - for (uint32_t i = 0; i < (words << 2); i++) { - data >>= 8; - data |= (uint32_t)buf[i] << 24; - if (i & 0b11) { - SPI(0).W[i >> 2] = data; - } - } - if (SPI_write_enable(chip)) { - return ESP_SPIFFS_FLASH_ERROR; - } + Wait_SPI_Idle(chip); // wait for previous write to finish + + SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); + + memcpy_unaligned_src(SPI(0).W, buf, words); + + SPI_write_enable(chip); SPI(0).CMD = SPI_CMD_PP; while (SPI(0).CMD) {} - - return ESP_SPIFFS_FLASH_OK; } /** @@ -97,9 +110,7 @@ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_ad } while (size >= SPI_WRITE_MAX_SIZE) { - if (spi_write_data(flashchip, dest_addr, buf, SPI_WRITE_MAX_SIZE)) { - return ESP_SPIFFS_FLASH_ERROR; - } + spi_write_data(flashchip, dest_addr, buf, SPI_WRITE_MAX_SIZE); size -= SPI_WRITE_MAX_SIZE; dest_addr += SPI_WRITE_MAX_SIZE; @@ -110,9 +121,7 @@ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_ad } } - if (spi_write_data(flashchip, dest_addr, buf, size)) { - return ESP_SPIFFS_FLASH_ERROR; - } + spi_write_data(flashchip, dest_addr, buf, size); return ESP_SPIFFS_FLASH_OK; } @@ -185,15 +194,10 @@ static inline void IRAM read_block(sdk_flashchip_t *chip, uint32_t addr, { SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); SPI(0).CMD = SPI_CMD_READ; + while (SPI(0).CMD) {}; - uint32_t data = 0; - for (uint32_t i = 0; i < size; i++) { - if (!(i & 0b11)) { - data = SPI(0).W[i>>2]; - } - buf[i] = 0xFF & data; - data >>= 8; - } + + memcpy_unaligned_dst(buf, SPI(0).W, size); } /** diff --git a/extras/spiffs/unaligned_memcpy.S b/extras/spiffs/unaligned_memcpy.S new file mode 100644 index 0000000..b96c92c --- /dev/null +++ b/extras/spiffs/unaligned_memcpy.S @@ -0,0 +1,112 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + .text + .section .iram1.text, "x" + .literal_position + +/** + * Copy unaligned data to 4-byte aligned buffer. + */ + .align 4 + .global memcpy_unaligned_src + .type memcpy_unaligned_src, @function +memcpy_unaligned_src: +/* a2: dst, a3: src, a4: size */ + ssa8l a3 + srli a3, a3, 2 + slli a3, a3, 2 + beqz a4, u_src_end + l32i a6, a3, 0 +u_src_loop: + l32i a7, a3, 4 + src a8, a7, a6 + memw + s32i a8, a2, 0 + mov a6, a7 + addi a3, a3, 4 + addi a2, a2, 4 + addi a4, a4, -1 + bnez a4, u_src_loop +u_src_end: + movi a2, 0 + ret.n + + +/** + * Copy data from 4-byte aligned source to unaligned destination buffer. + */ + .align 4 + .global memcpy_unaligned_dst + .type memcpy_unaligned_dst, @function +memcpy_unaligned_dst: +/* a2: dst, a3: src, a4: size */ + beqz.n a4, u_dst_end + extui a5, a4, 0, 2 + beqz.n a5, aligned_dst_loop +u_dst_loop: + /* Load data word */ + memw + l32i.n a5, a3, 0 + + /* Save byte number 0 */ + s8i a5, a2, 0 + addi.n a4, a4, -1 + beqz a4, u_dst_end + addi.n a2, a2, 1 + + /* Shift and save byte number 1 */ + srli a5, a5, 8 + s8i a5, a2, 0 + addi.n a4, a4, -1 + beqz a4, u_dst_end + addi.n a2, a2, 1 + + /* Shift and save byte number 2 */ + srli a5, a5, 8 + s8i a5, a2, 0 + addi.n a4, a4, -1 + beqz a4, u_dst_end + addi.n a2, a2, 1 + + /* Shift and save byte number 3 */ + srli a5, a5, 8 + s8i a5, a2, 0 + addi.n a4, a4, -1 + addi.n a2, a2, 1 + + /* Next word */ + addi.n a3, a3, 4 + bnez.n a4, u_dst_loop + ret.n +aligned_dst_loop: + memw + l32i a5, a3, 0 + s32i a5, a2, 0 + addi.n a3, a3, 4 + addi.n a2, a2, 4 + addi.n a4, a4, -4 + bnez.n a4, aligned_dst_loop +u_dst_end: ret.n + From d69b8390d43e851c84d294f585d5534ef54402b4 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 22 Jul 2016 14:09:50 +0300 Subject: [PATCH 048/349] SPIFFS: Fix PR review comments. * Enable SPIFFS_USE_MAGIC * Enable SPIFFS_USE_MAGIC_LENGTH * Enable SPIFFS_FILEHDL_OFFSET * Rebuild mkspiffs if spiffs_config.h is changed * Emulate NOR flash in mkspiffs * Build spiffs image in 'flash' and 'test' targets --- common.mk | 4 ++-- extras/spiffs/component.mk | 8 ++++++++ extras/spiffs/esp_spiffs.c | 25 +++++++++-------------- extras/spiffs/mkspiffs/Makefile | 4 ++++ extras/spiffs/mkspiffs/mkspiffs.c | 34 +++++++++++++++---------------- extras/spiffs/spiffs_config.h | 8 ++++---- 6 files changed, 44 insertions(+), 39 deletions(-) diff --git a/common.mk b/common.mk index f4bfe06..c3923c8 100644 --- a/common.mk +++ b/common.mk @@ -68,7 +68,7 @@ Q := @ vecho := @echo endif -.PHONY: all clean flash erase_flash +.PHONY: all clean flash erase_flash test size rebuild all: $(PROGRAM_OUT) $(FW_FILE_1) $(FW_FILE_2) $(FW_FILE) @@ -209,7 +209,7 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) $(vecho) "FW $@" $(Q) $(ESPTOOL) elf2image --version=2 $(ESPTOOL_ARGS) $< -o $(FW_FILE) -flash: $(FW_FILE) +flash: all $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk index a0a8928..f7f5a49 100644 --- a/extras/spiffs/component.mk +++ b/extras/spiffs/component.mk @@ -40,6 +40,9 @@ $$(SPIFFS_IMAGE): $$(MKSPIFFS) $$(SPIFFS_FILE_LIST) $$(spiffs_ROOT)spiffs_config.h: Makefile $$(Q) touch $$@ +$$(MKSPIFFS)_MAKE: + $$(MAKE) -C $$(MKSPIFFS_DIR) SPIFFS_SIZE=$(SPIFFS_SIZE) + # if SPIFFS_SIZE in Makefile is changed rebuild mkspiffs $$(MKSPIFFS): Makefile $$(MAKE) -C $$(MKSPIFFS_DIR) clean @@ -51,6 +54,11 @@ clean_spiffs_img: clean_mkspiffs: $$(Q) $$(MAKE) -C $$(MKSPIFFS_DIR) clean +# run make for mkspiffs always +all: $$(MKSPIFFS)_MAKE + +.PHONY: $$(MKSPIFFS)_MAKE + SPIFFS_ESPTOOL_ARGS = $(SPIFFS_BASE_ADDR) $$(SPIFFS_IMAGE) endef diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 1574be2..9ae4dea 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -94,6 +94,8 @@ int32_t esp_spiffs_mount() config.hal_write_f = esp_spiffs_write; config.hal_erase_f = esp_spiffs_erase; + config.fh_ix_offset = 3; + printf("SPIFFS size: %d\n", SPIFFS_SIZE); printf("SPIFFS memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", work_buf.size, fds_buf.size, cache_buf.size); @@ -109,15 +111,11 @@ int32_t esp_spiffs_mount() return err; } -#define FD_OFFSET 3 - // This implementation replaces implementation in core/newlib_syscals.c long _write_r(struct _reent *r, int fd, const char *ptr, int len ) { if(fd != r->_stdout->_file) { - long ret = SPIFFS_write(&fs, (spiffs_file)(fd - FD_OFFSET), - (char*)ptr, len); - return ret; + return SPIFFS_write(&fs, (spiffs_file)fd, (char*)ptr, len); } for(int i = 0; i < len; i++) { /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ @@ -136,8 +134,7 @@ long _read_r( struct _reent *r, int fd, char *ptr, int len ) int ch, i; if(fd != r->_stdin->_file) { - long ret = SPIFFS_read(&fs, (spiffs_file)(fd - FD_OFFSET), ptr, len); - return ret; + return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); } uart_rxfifo_wait(0, 1); for(i = 0; i < len; i++) { @@ -157,17 +154,15 @@ int _open_r(struct _reent *r, const char *pathname, int flags, int mode) if (flags & O_TRUNC) spiffs_flags |= SPIFFS_TRUNC; if (flags & O_RDONLY) spiffs_flags |= SPIFFS_RDONLY; if (flags & O_WRONLY) spiffs_flags |= SPIFFS_WRONLY; + if (flags & O_EXCL) spiffs_flags |= SPIFFS_EXCL; + /* if (flags & O_DIRECT) spiffs_flags |= SPIFFS_DIRECT; no support in newlib */ - int ret = SPIFFS_open(&fs, pathname, spiffs_flags, mode); - if (ret > 0) { - return ret + FD_OFFSET; - } - return ret; + return SPIFFS_open(&fs, pathname, spiffs_flags, mode); } int _close_r(struct _reent *r, int fd) { - return SPIFFS_close(&fs, (spiffs_file)(fd - FD_OFFSET)); + return SPIFFS_close(&fs, (spiffs_file)fd); } int _unlink_r(struct _reent *r, const char *path) @@ -180,7 +175,7 @@ int _fstat_r(struct _reent *r, int fd, void *buf) spiffs_stat s; struct stat *sb = (struct stat*)buf; - int result = SPIFFS_fstat(&fs, (spiffs_file)(fd - FD_OFFSET), &s); + int result = SPIFFS_fstat(&fs, (spiffs_file)fd, &s); sb->st_size = s.size; return result; @@ -199,5 +194,5 @@ int _stat_r(struct _reent *r, const char *pathname, void *buf) off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence) { - return SPIFFS_lseek(&fs, (spiffs_file)(fd - FD_OFFSET), offset, whence); + return SPIFFS_lseek(&fs, (spiffs_file)fd, offset, whence); } diff --git a/extras/spiffs/mkspiffs/Makefile b/extras/spiffs/mkspiffs/Makefile index a9a9722..0b8b49e 100644 --- a/extras/spiffs/mkspiffs/Makefile +++ b/extras/spiffs/mkspiffs/Makefile @@ -32,6 +32,10 @@ CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) all: mkspiffs +$(OBJECTS): $(SOURCES) + +$(OBJECTS): ../spiffs_config.h + mkspiffs: $(OBJECTS) clean: diff --git a/extras/spiffs/mkspiffs/mkspiffs.c b/extras/spiffs/mkspiffs/mkspiffs.c index 65b90e0..a1a0513 100644 --- a/extras/spiffs/mkspiffs/mkspiffs.c +++ b/extras/spiffs/mkspiffs/mkspiffs.c @@ -59,7 +59,12 @@ static s32_t _read_data(u32_t addr, u32_t size, u8_t *dst) static s32_t _write_data(u32_t addr, u32_t size, u8_t *src) { - memcpy((uint8_t*)image + addr, src, size); + uint32_t i; + uint8_t *dst = image + addr; + + for (i = 0; i < size; i++) { + dst[i] &= src[i]; // mimic NOR flash, flip only 1 to 0 + } return SPIFFS_OK; } @@ -94,12 +99,7 @@ static bool init_spiffs(bool allocate_mem) int32_t err = SPIFFS_mount(&fs, &config, work_buf, fds_buf, fdsBufSize, cache_buf, cacheBufSize, 0); - if (err != SPIFFS_OK) { - printf("Error spiffs mount: %d\n", err); - return false; - } - - return true; + return err == SPIFFS_OK; } static bool format_spiffs() @@ -222,20 +222,18 @@ int main(int argc, char *argv[]) return -1; } - if (init_spiffs(/*allocate_mem=*/true)) { - if (format_spiffs()) { - if (process_directory(argv[1])) { - if (!write_image(argv[2])) { - printf("Error writing image\n"); - } - } else { - printf("Error processing direcotry\n"); - } + init_spiffs(/*allocate_mem=*/true); + + if (format_spiffs()) { + if (process_directory(argv[1])) { + if (!write_image(argv[2])) { + printf("Error writing image\n"); + } } else { - printf("Error formating spiffs\n"); + printf("Error processing direcotry\n"); } } else { - printf("Error initialising SPIFFS\n"); + printf("Error formating spiffs\n"); } spiffs_free(); diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h index 7b8c1a7..b782d48 100644 --- a/extras/spiffs/spiffs_config.h +++ b/extras/spiffs/spiffs_config.h @@ -125,7 +125,7 @@ typedef unsigned char u8_t; // not on mount point. If not, SPIFFS_format must be called prior to mounting // again. #ifndef SPIFFS_USE_MAGIC -#define SPIFFS_USE_MAGIC (0) +#define SPIFFS_USE_MAGIC (1) #endif #if SPIFFS_USE_MAGIC @@ -135,7 +135,7 @@ typedef unsigned char u8_t; // be accepted for mounting with a configuration defining the filesystem as 2 // megabytes. #ifndef SPIFFS_USE_MAGIC_LENGTH -#define SPIFFS_USE_MAGIC_LENGTH (0) +#define SPIFFS_USE_MAGIC_LENGTH (1) #endif #endif @@ -174,7 +174,7 @@ typedef unsigned char u8_t; #define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (256) #endif #ifndef SPIFFS_CFG_LOG_BLOCK_SZ -#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (4*1024) +#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (8*1024) #endif #endif @@ -195,7 +195,7 @@ typedef unsigned char u8_t; // NB: This adds config field fh_ix_offset in the configuration struct when // mounting, which must be defined. #ifndef SPIFFS_FILEHDL_OFFSET -#define SPIFFS_FILEHDL_OFFSET 0 +#define SPIFFS_FILEHDL_OFFSET 1 #endif // Enable this to compile a read only version of spiffs. From 782cdfd11dff058e0bf275d0814fdb229d7a9700 Mon Sep 17 00:00:00 2001 From: Bhuvanchandra Date: Wed, 13 Jul 2016 02:03:23 +0000 Subject: [PATCH 049/349] extras: ds3231: Add support for DS3231 real-time clock (RTC) Add support for DS3231 extremely accurate I2C real-time clock (RTC). Signed-off-by: Bhuvanchandra DV --- extras/ds3231/LICENSE | 22 +++ extras/ds3231/component.mk | 9 ++ extras/ds3231/ds3231.c | 296 +++++++++++++++++++++++++++++++++++++ extras/ds3231/ds3231.h | 187 +++++++++++++++++++++++ 4 files changed, 514 insertions(+) create mode 100644 extras/ds3231/LICENSE create mode 100644 extras/ds3231/component.mk create mode 100644 extras/ds3231/ds3231.c create mode 100644 extras/ds3231/ds3231.h diff --git a/extras/ds3231/LICENSE b/extras/ds3231/LICENSE new file mode 100644 index 0000000..3e60637 --- /dev/null +++ b/extras/ds3231/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Richard A Burton +Copyright (c) 2016 Bhuvanchandra DV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/extras/ds3231/component.mk b/extras/ds3231/component.mk new file mode 100644 index 0000000..46d9b12 --- /dev/null +++ b/extras/ds3231/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ds3231 + +# expected anyone using bmp driver includes it as 'ds3231/ds3231.h' +INC_DIRS += $(ds3231_ROOT).. + +# args for passing into compile rule generation +ds3231_SRC_DIR = $(ds3231_ROOT) + +$(eval $(call component_compile_rules,ds3231)) diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c new file mode 100644 index 0000000..87ce805 --- /dev/null +++ b/extras/ds3231/ds3231.c @@ -0,0 +1,296 @@ +/* Driver for DS3231 high precision RTC module + * + * Part of esp-open-rtos + * Copyright (C) 2015 Richard A Burton + * Copyright (C) 2016 Bhuvanchandra DV + * MIT Licensed as described in the file LICENSE +*/ + +#include "ds3231.h" +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" +#include "esp8266.h" + +#include "i2c/i2c.h" + +/* Convert normal decimal to binary coded decimal */ +static inline uint8_t decToBcd(uint8_t dec) +{ + return(((dec / 10) * 16) + (dec % 10)); +} + +/* Convert binary coded decimal to normal decimal */ +static inline uint8_t bcdToDec(uint8_t bcd) +{ + return(((bcd / 16) * 10) + (bcd % 16)); +} + +/* Send a number of bytes to the rtc over i2c + * returns true to indicate success + */ +static inline bool ds3231_send(uint8_t *data, uint8_t len) +{ + return i2c_slave_write(DS3231_ADDR, data, len); +} + +/* Read a number of bytes from the rtc over i2c + * returns true to indicate success + */ +static inline bool ds3231_recv(uint8_t *data, uint8_t len) +{ + return i2c_slave_read(DS3231_ADDR, data[0], data, len); +} + +bool ds3231_setTime(struct tm *time) +{ + uint8_t data[8]; + + /* start register */ + data[0] = DS3231_ADDR_TIME; + /* time/date data */ + data[1] = decToBcd(time->tm_sec); + data[2] = decToBcd(time->tm_min); + data[3] = decToBcd(time->tm_hour); + data[4] = decToBcd(time->tm_wday + 1); + data[5] = decToBcd(time->tm_mday); + data[6] = decToBcd(time->tm_mon + 1); + data[7] = decToBcd(time->tm_year - 100); + + return ds3231_send(data, 8); +} + +bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2) +{ + int i = 0; + uint8_t data[8]; + + /* start register */ + data[i++] = (alarms == DS3231_ALARM_2 ? DS3231_ADDR_ALARM2 : DS3231_ADDR_ALARM1); + + /* alarm 1 data */ + if (alarms != DS3231_ALARM_2) { + data[i++] = (option1 >= DS3231_ALARM1_MATCH_SEC ? decToBcd(time1->tm_sec) : DS3231_ALARM_NOTSET); + data[i++] = (option1 >= DS3231_ALARM1_MATCH_SECMIN ? decToBcd(time1->tm_min) : DS3231_ALARM_NOTSET); + data[i++] = (option1 >= DS3231_ALARM1_MATCH_SECMINHOUR ? decToBcd(time1->tm_hour) : DS3231_ALARM_NOTSET); + data[i++] = (option1 == DS3231_ALARM1_MATCH_SECMINHOURDAY ? (decToBcd(time1->tm_wday + 1) & DS3231_ALARM_WDAY) : + (option1 == DS3231_ALARM1_MATCH_SECMINHOURDATE ? decToBcd(time1->tm_mday) : DS3231_ALARM_NOTSET)); + } + + /* alarm 2 data */ + if (alarms != DS3231_ALARM_1) { + data[i++] = (option2 >= DS3231_ALARM2_MATCH_MIN ? decToBcd(time2->tm_min) : DS3231_ALARM_NOTSET); + data[i++] = (option2 >= DS3231_ALARM2_MATCH_MINHOUR ? decToBcd(time2->tm_hour) : DS3231_ALARM_NOTSET); + data[i++] = (option2 == DS3231_ALARM2_MATCH_MINHOURDAY ? (decToBcd(time2->tm_wday + 1) & DS3231_ALARM_WDAY) : + (option2 == DS3231_ALARM2_MATCH_MINHOURDATE ? decToBcd(time2->tm_mday) : DS3231_ALARM_NOTSET)); + } + + return ds3231_send(data, i); +} + +/* Get a byte containing just the requested bits + * pass the register address to read, a mask to apply to the register and + * an uint* for the output + * you can test this value directly as true/false for specific bit mask + * of use a mask of 0xff to just return the whole register byte + * returns true to indicate success + */ +bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag) +{ + uint8_t data[1]; + + /* get register */ + data[0] = addr; + if (ds3231_send(data, 1) && ds3231_recv(data, 1)) { + /* return only requested flag */ + *flag = (data[0] & mask); + return true; + } + + return false; +} + +/* Set/clear bits in a byte register, or replace the byte altogether + * pass the register address to modify, a byte to replace the existing + * value with or containing the bits to set/clear and one of + * DS3231_SET/DS3231_CLEAR/DS3231_REPLACE + * returns true to indicate success + */ +bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode) +{ + uint8_t data[2]; + + data[0] = addr; + /* get status register */ + if (ds3231_send(data, 1) && ds3231_recv(data+1, 1)) { + /* clear the flag */ + if (mode == DS3231_REPLACE) + data[1] = bits; + else if (mode == DS3231_SET) + data[1] |= bits; + else + data[1] &= ~bits; + + if (ds3231_send(data, 2)) { + return true; + } + } + + return false; +} + +bool ds3231_getOscillatorStopFlag(bool *flag) +{ + uint8_t f; + + if (ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, &f)) { + *flag = (f ? true : false); + return true; + } + + return false; +} + +inline bool ds3231_clearOscillatorStopFlag() +{ + return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, DS3231_CLEAR); +} + +inline bool ds3231_getAlarmFlags(uint8_t *alarms) +{ + return ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_ALARM_BOTH, alarms); +} + +inline bool ds3231_clearAlarmFlags(uint8_t alarms) +{ + return ds3231_setFlag(DS3231_ADDR_STATUS, alarms, DS3231_CLEAR); +} + +inline bool ds3231_enableAlarmInts(uint8_t alarms) +{ + return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS | alarms, DS3231_SET); +} + +inline bool ds3231_disableAlarmInts(uint8_t alarms) +{ + /* Just disable specific alarm(s) requested + * does not disable alarm interrupts generally (which would enable the squarewave) + */ + return ds3231_setFlag(DS3231_ADDR_CONTROL, alarms, DS3231_CLEAR); +} + +inline bool ds3231_enable32khz() +{ + return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_SET); +} + +inline bool ds3231_disable32khz() +{ + return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_CLEAR); +} + +inline bool ds3231_enableSquarewave() +{ + return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_CLEAR); +} + +inline bool ds3231_disableSquarewave() +{ + return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_SET); +} + +bool ds3231_setSquarewaveFreq(uint8_t freq) +{ + uint8_t flag = 0; + + if (ds3231_getFlag(DS3231_ADDR_CONTROL, 0xff, &flag)) { + /* clear current rate */ + flag &= ~DS3231_CTRL_SQWAVE_8192HZ; + /* set new rate */ + flag |= freq; + + return ds3231_setFlag(DS3231_ADDR_CONTROL, flag, DS3231_REPLACE); + } + return false; +} + +bool ds3231_getRawTemp(int16_t *temp) +{ + uint8_t data[2]; + + data[0] = DS3231_ADDR_TEMP; + if (ds3231_send(data, 1) && ds3231_recv(data, 2)) { + *temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6; + return true; + } + + return false; +} + +bool ds3231_getTempInteger(int8_t *temp) +{ + int16_t tInt; + + if (ds3231_getRawTemp(&tInt)) { + *temp = tInt >> 2; + return true; + } + + return false; +} + +bool ds3231_getTempFloat(float *temp) +{ + int16_t tInt; + + if (ds3231_getRawTemp(&tInt)) { + *temp = tInt * 0.25; + return true; + } + + return false; +} + +bool ds3231_getTime(struct tm *time) +{ + uint8_t data[7]; + + /* start register address */ + data[0] = DS3231_ADDR_TIME; + if (!ds3231_send(data, 1)) { + return false; + } + + /* read time */ + if (!ds3231_recv(data, 7)) { + return false; + } + + /* convert to unix time structure */ + time->tm_sec = bcdToDec(data[0]); + time->tm_min = bcdToDec(data[1]); + if (data[2] & DS3231_12HOUR_FLAG) { + /* 12H */ + time->tm_hour = bcdToDec(data[2] & DS3231_12HOUR_MASK); + /* AM/PM? */ + if (data[2] & DS3231_PM_FLAG) time->tm_hour += 12; + } else { + /* 24H */ + time->tm_hour = bcdToDec(data[2]); + } + time->tm_wday = bcdToDec(data[3]) - 1; + time->tm_mday = bcdToDec(data[4]); + time->tm_mon = bcdToDec(data[5] & DS3231_MONTH_MASK) - 1; + time->tm_year = bcdToDec(data[6]) + 100; + time->tm_isdst = 0; + + // apply a time zone (if you are not using localtime on the rtc or you want to check/apply DST) + //applyTZ(time); + + return true; + +} + +void ds3231_Init(uint8_t scl, uint8_t sda) +{ + i2c_init(scl, sda); +} diff --git a/extras/ds3231/ds3231.h b/extras/ds3231/ds3231.h new file mode 100644 index 0000000..06cdb62 --- /dev/null +++ b/extras/ds3231/ds3231.h @@ -0,0 +1,187 @@ +/* Driver for DS3231 high precision RTC module + * + * Part of esp-open-rtos + * Copyright (C) 2015 Richard A Burton + * Copyright (C) 2016 Bhuvanchandra DV + * MIT Licensed as described in the file LICENSE +*/ + +#ifndef __DS3231_H__ +#define __DS3231_H__ + +#include +#include +#include + +#define DS3231_ADDR 0x68 + +#define DS3231_STAT_OSCILLATOR 0x80 +#define DS3231_STAT_32KHZ 0x08 +#define DS3231_STAT_BUSY 0x04 +#define DS3231_STAT_ALARM_2 0x02 +#define DS3231_STAT_ALARM_1 0x01 + +#define DS3231_CTRL_OSCILLATOR 0x80 +#define DS3231_CTRL_SQUAREWAVE_BB 0x40 +#define DS3231_CTRL_TEMPCONV 0x20 +#define DS3231_CTRL_SQWAVE_4096HZ 0x10 +#define DS3231_CTRL_SQWAVE_1024HZ 0x08 +#define DS3231_CTRL_SQWAVE_8192HZ 0x18 +#define DS3231_CTRL_SQWAVE_1HZ 0x00 +#define DS3231_CTRL_ALARM_INTS 0x04 +#define DS3231_CTRL_ALARM2_INT 0x02 +#define DS3231_CTRL_ALARM1_INT 0x01 + +#define DS3231_ALARM_WDAY 0x40 +#define DS3231_ALARM_NOTSET 0x80 + +#define DS3231_ADDR_TIME 0x00 +#define DS3231_ADDR_ALARM1 0x07 +#define DS3231_ADDR_ALARM2 0x0b +#define DS3231_ADDR_CONTROL 0x0e +#define DS3231_ADDR_STATUS 0x0f +#define DS3231_ADDR_AGING 0x10 +#define DS3231_ADDR_TEMP 0x11 + +#define DS3231_12HOUR_FLAG 0x40 +#define DS3231_12HOUR_MASK 0x1f +#define DS3231_PM_FLAG 0x20 +#define DS3231_MONTH_MASK 0x1f + +enum { + DS3231_SET = 0, + DS3231_CLEAR, + DS3231_REPLACE +}; + +enum { + DS3231_ALARM_NONE = 0, + DS3231_ALARM_1, + DS3231_ALARM_2, + DS3231_ALARM_BOTH +}; + +enum { + DS3231_ALARM1_EVERY_SECOND = 0, + DS3231_ALARM1_MATCH_SEC, + DS3231_ALARM1_MATCH_SECMIN, + DS3231_ALARM1_MATCH_SECMINHOUR, + DS3231_ALARM1_MATCH_SECMINHOURDAY, + DS3231_ALARM1_MATCH_SECMINHOURDATE +}; + +enum { + DS3231_ALARM2_EVERY_MIN = 0, + DS3231_ALARM2_MATCH_MIN, + DS3231_ALARM2_MATCH_MINHOUR, + DS3231_ALARM2_MATCH_MINHOURDAY, + DS3231_ALARM2_MATCH_MINHOURDATE +}; + +/* Set the time on the rtc + * timezone agnostic, pass whatever you like + * I suggest using GMT and applying timezone and DST when read back + * returns true to indicate success + */ +bool ds3231_setTime(struct tm *time); + +/* Set alarms + * alarm1 works with seconds, minutes, hours and day of week/month, or fires every second + * alarm2 works with minutes, hours and day of week/month, or fires every minute + * not all combinations are supported, see DS3231_ALARM1_* and DS3231_ALARM2_* defines + * for valid options you only need to populate the fields you are using in the tm struct, + * and you can set both alarms at the same time (pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH) + * if only setting one alarm just pass 0 for tm struct and option field for the other alarm + * if using DS3231_ALARM1_EVERY_SECOND/DS3231_ALARM2_EVERY_MIN you can pass 0 for tm stuct + * if you want to enable interrupts for the alarms you need to do that separately + * returns true to indicate success + */ +bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2); + +/* Check if oscillator has previously stopped, e.g. no power/battery or disabled + * sets flag to true if there has been a stop + * returns true to indicate success + */ +bool ds3231_getOscillatorStopFlag(bool *flag); + +/* Clear the oscillator stopped flag + * returns true to indicate success + */ +bool ds3231_clearOscillatorStopFlag(); + +/* Check which alarm(s) have past + * sets alarms to DS3231_ALARM_NONE/DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH + * returns true to indicate success + */ +bool ds3231_getAlarmFlags(uint8_t *alarms); + +/* Clear alarm past flag(s) + * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH + * returns true to indicate success + */ +bool ds3231_clearAlarmFlags(uint8_t alarm); + +/* enable alarm interrupts (and disables squarewave) + * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH + * if you set only one alarm the status of the other is not changed + * you must also clear any alarm past flag(s) for alarms with + * interrupt enabled, else it will trigger immediately + * returns true to indicate success + */ +bool ds3231_enableAlarmInts(uint8_t alarms); + +/* Disable alarm interrupts (does not (re-)enable squarewave) + * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH + * returns true to indicate success + */ +bool ds3231_disableAlarmInts(uint8_t alarms); + +/* Enable the output of 32khz signal + * returns true to indicate success + */ +bool ds3231_enable32khz(); + +/* Disable the output of 32khz signal + * returns true to indicate success + */ +bool ds3231_disable32khz(); + +/* Enable the squarewave output (disables alarm interrupt functionality) + * returns true to indicate success + */ +bool ds3231_enableSquarewave(); + +/* Disable the squarewave output (which re-enables alarm interrupts, but individual + * alarm interrupts also need to be enabled, if not already, before they will trigger) + * returns true to indicate success + */ +bool ds3231_disableSquarewave(); + +/* Set the frequency of the squarewave output (but does not enable it) + * pass DS3231_SQUAREWAVE_RATE_1HZ/DS3231_SQUAREWAVE_RATE_1024HZ/DS3231_SQUAREWAVE_RATE_4096HZ/DS3231_SQUAREWAVE_RATE_8192HZ + * returns true to indicate success + */ +bool ds3231_setSquarewaveFreq(uint8_t freq); + +/* Get the raw value + * returns true to indicate success + */ +bool ds3231_getRawTemp(int16_t *temp); + +/* Get the temperature as an integer + * returns true to indicate success + */ +bool ds3231_getTempInteger(int8_t *temp); + +/* Get the temerapture as a float (in quarter degree increments) + * returns true to indicate success + */ +bool ds3231_getTempFloat(float *temp); + +/* Get the time from the rtc, populates a supplied tm struct + * returns true to indicate success + */ +bool ds3231_getTime(struct tm *time); +void ds3231_Init(uint8_t scl, uint8_t sda); + +#endif From f388bbc7c47c9442463b7512e2380dbc508bbb54 Mon Sep 17 00:00:00 2001 From: Bhuvanchandra Date: Mon, 18 Jul 2016 23:14:23 +0000 Subject: [PATCH 050/349] examples: ds3231: Add simple example for ds3231 Simple example for reading out the time and temperature from ds3231 RTC every second. Signed-off-by: Bhuvanchandra DV --- examples/ds3231_test/Makefile | 3 +++ examples/ds3231_test/ds3231_test.c | 41 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 examples/ds3231_test/Makefile create mode 100644 examples/ds3231_test/ds3231_test.c diff --git a/examples/ds3231_test/Makefile b/examples/ds3231_test/Makefile new file mode 100644 index 0000000..3df6d8d --- /dev/null +++ b/examples/ds3231_test/Makefile @@ -0,0 +1,3 @@ +PROGRAM=ds3231_test +EXTRA_COMPONENTS = extras/ds3231 extras/i2c +include ../../common.mk diff --git a/examples/ds3231_test/ds3231_test.c b/examples/ds3231_test/ds3231_test.c new file mode 100644 index 0000000..77fc167 --- /dev/null +++ b/examples/ds3231_test/ds3231_test.c @@ -0,0 +1,41 @@ +/* Test code for DS3231 high precision RTC module + * + * Part of esp-open-rtos + * Copyright (C) 2016 Bhuvanchandra DV + * MIT Licensed as described in the file LICENSE + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "i2c/i2c.h" + +#include "ds3231/ds3231.h" + +void task1(void *pvParameters) +{ + struct tm time; + float tempFloat; + + while(1) { + vTaskDelay(100); + ds3231_getTime(&time); + ds3231_getTempFloat(&tempFloat); + printf("TIME:%d:%d:%d, TEMPERATURE:%.2f DegC\r\n", time.tm_hour, time.tm_min, time.tm_sec, tempFloat); + } +} + +void user_init(void) +{ + const int scl = 5, sda = 4; + + uart_set_baud(0, 115200); + + printf("\n"); + printf("SDK version : %s\n", sdk_system_get_sdk_version()); + printf("GIT version : %s\n", GITSHORTREV); + + ds3231_Init(scl, sda); + + xTaskCreate(task1, (signed char *)"tsk1", 256, NULL, 2, NULL); +} From 5051c5c52860f6f30e12d725e9c4fda6eb967282 Mon Sep 17 00:00:00 2001 From: sheinz Date: Mon, 8 Aug 2016 18:08:42 +0300 Subject: [PATCH 051/349] SPIFFS: Selectable configuration of SPIFFS --- examples/spiffs/Makefile | 2 + examples/spiffs/spiffs_example.c | 14 ++++ extras/spiffs/README.md | 20 ++++-- extras/spiffs/component.mk | 45 +++++++----- extras/spiffs/esp_spiffs.c | 35 +++++++--- extras/spiffs/esp_spiffs.h | 13 ++++ extras/spiffs/mkspiffs/Makefile | 16 +---- extras/spiffs/mkspiffs/README.md | 31 +++++---- extras/spiffs/mkspiffs/mkspiffs.c | 111 +++++++++++++++++++++--------- extras/spiffs/spiffs_config.h | 13 ++-- 10 files changed, 199 insertions(+), 101 deletions(-) diff --git a/examples/spiffs/Makefile b/examples/spiffs/Makefile index 7327707..813cf79 100644 --- a/examples/spiffs/Makefile +++ b/examples/spiffs/Makefile @@ -6,6 +6,8 @@ FLASH_SIZE = 32 SPIFFS_BASE_ADDR = 0x200000 SPIFFS_SIZE = 0x010000 +# SPIFFS_SINGLETON = 0 # for run-time configuration + include ../../common.mk $(eval $(call make_spiffs_image,files)) diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c index 98decaf..4a907df 100644 --- a/examples/spiffs/spiffs_example.c +++ b/examples/spiffs/spiffs_example.c @@ -10,6 +10,14 @@ #include "spiffs.h" #include "esp_spiffs.h" +/** + * This example shows the default SPIFFS configuration when SPIFFS is + * configured in compile-time (SPIFFS_SINGLETON = 1). + * + * To configure SPIFFS in run-time uncomment SPIFFS_SINGLETON in the Makefile + * and replace the commented esp_spiffs_init in the code below. + * + */ static void example_read_file_posix() { @@ -76,7 +84,13 @@ static void example_fs_info() void test_task(void *pvParameters) { +#if SPIFFS_SINGLETON == 1 esp_spiffs_init(); +#else + // for run-time configuration when SPIFFS_SINGLETON = 0 + esp_spiffs_init(0x200000, 0x10000); +#endif + if (esp_spiffs_mount() != SPIFFS_OK) { printf("Error mount SPIFFS\n"); } diff --git a/extras/spiffs/README.md b/extras/spiffs/README.md index 76d2081..4bc694e 100644 --- a/extras/spiffs/README.md +++ b/extras/spiffs/README.md @@ -11,15 +11,29 @@ of a flash memory. * SPIFFS - embedded file system for NOR flash memory. * POSIX file operations. * Static files upload to ESP8266 file system within build process. - * SPIFFS singleton configuration. Only one instance of FS on a device. + * SPIFFS singleton or run-time configuration. Selectable by +`SPIFFS_SINGLETON` variable in Makefile. ## Usage +### Configuration + +SPIFFS can be configured in two ways. As a SINGLETON with configuration +parameters provided at compile-time. And during run-time. The default +configuration is a SINGLETON. The desired configuration can be selected in +program's Makefile with variable `SPIFFS_SINGLETON = 0`. + +If SPIFFS is configured in runtime (SPIFFS_SINGLETON = 0) the method +`esp_spiffs_init` accepts two arguments: address and size. Where address +and size is the location of SPIFFS region in SPI flash and its size. + In order to use file system in a project the following steps should be made: * Add SPIFFS component in a project Makefile `EXTRA_COMPONENTS = extras/spiffs` * Specify your flash size in the Makefile `FLASH_SIZE = 32` * Specify the start address of file system region on the flash memory -`SPIFFS_BASE_ADDR = 0x200000` +`SPIFFS_BASE_ADDR = 0x200000`. It still needed even for `SPIFFS_SINGLETON = 0` +in order to flash SPIFFS image to the right location during `make flash`. +If no SPIFFS image is going to be flashed this variable can be omitted. * If you want to upload files to a file system during flash process specify the directory with files `$(eval $(call make_spiffs_image,files))` @@ -63,8 +77,6 @@ with SPIFFS on a device. The build process will catch any changes in files directory and rebuild the image each time `make` is run. -The build process will handle SPIFFS_SIZE change and rebuild **mkspiffs** -utility and the image. ## Example diff --git a/extras/spiffs/component.mk b/extras/spiffs/component.mk index f7f5a49..c5c60c3 100644 --- a/extras/spiffs/component.mk +++ b/extras/spiffs/component.mk @@ -1,7 +1,28 @@ # Component makefile for extras/spiffs +# If spiffs is configured as SINGLETON it must be configured in compile time. +SPIFFS_SINGLETON ?= 1 + SPIFFS_BASE_ADDR ?= 0x300000 SPIFFS_SIZE ?= 0x100000 +SPIFFS_LOG_PAGE_SIZE ?= 256 +SPIFFS_LOG_BLOCK_SIZE ?= 8192 + + +spiffs_CFLAGS += -DSPIFFS_SINGLETON=$(SPIFFS_SINGLETON) +ifeq ($(SPIFFS_SINGLETON),1) +# Singleton configuration +spiffs_CFLAGS += -DSPIFFS_BASE_ADDR=$(SPIFFS_BASE_ADDR) +spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) +endif + +spiffs_CFLAGS += -DSPIFFS_LOG_PAGE_SIZE=$(SPIFFS_LOG_PAGE_SIZE) +spiffs_CFLAGS += -DSPIFFS_LOG_BLOCK_SIZE=$(SPIFFS_LOG_BLOCK_SIZE) + +# Main program needs SPIFFS definitions because it includes spiffs_config.h +PROGRAM_CFLAGS += $(spiffs_CFLAGS) + +spiffs_CFLAGS := $(CFLAGS) $(spiffs_CFLAGS) INC_DIRS += $(spiffs_ROOT) INC_DIRS += $(spiffs_ROOT)spiffs/src @@ -10,11 +31,6 @@ INC_DIRS += $(spiffs_ROOT)spiffs/src spiffs_SRC_DIR = $(spiffs_ROOT)spiffs/src spiffs_SRC_DIR += $(spiffs_ROOT) -spiffs_CFLAGS = $(CFLAGS) -spiffs_CFLAGS += -DSPIFFS_BASE_ADDR=$(SPIFFS_BASE_ADDR) -spiffs_CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) - - # Create an SPIFFS image of specified directory and flash it with # the rest of the firmware. # @@ -33,20 +49,16 @@ all: $$(SPIFFS_IMAGE) clean: clean_spiffs_img clean_mkspiffs -$$(SPIFFS_IMAGE): $$(MKSPIFFS) $$(SPIFFS_FILE_LIST) - $$< $(1) $$@ +$$(SPIFFS_IMAGE): $$(MKSPIFFS) $$(SPIFFS_FILE_LIST) Makefile + $$< -D $(1) -f $$@ -s $(SPIFFS_SIZE) -p $(SPIFFS_LOG_PAGE_SIZE) \ + -b $(SPIFFS_LOG_BLOCK_SIZE) # Rebuild SPIFFS if Makefile is changed, where SPIFF_SIZE is defined $$(spiffs_ROOT)spiffs_config.h: Makefile $$(Q) touch $$@ -$$(MKSPIFFS)_MAKE: - $$(MAKE) -C $$(MKSPIFFS_DIR) SPIFFS_SIZE=$(SPIFFS_SIZE) - -# if SPIFFS_SIZE in Makefile is changed rebuild mkspiffs -$$(MKSPIFFS): Makefile - $$(MAKE) -C $$(MKSPIFFS_DIR) clean - $$(MAKE) -C $$(MKSPIFFS_DIR) SPIFFS_SIZE=$(SPIFFS_SIZE) +$$(MKSPIFFS): + $$(MAKE) -C $$(MKSPIFFS_DIR) clean_spiffs_img: $$(Q) rm -f $$(SPIFFS_IMAGE) @@ -54,11 +66,6 @@ clean_spiffs_img: clean_mkspiffs: $$(Q) $$(MAKE) -C $$(MKSPIFFS_DIR) clean -# run make for mkspiffs always -all: $$(MKSPIFFS)_MAKE - -.PHONY: $$(MKSPIFFS)_MAKE - SPIFFS_ESPTOOL_ARGS = $(SPIFFS_BASE_ADDR) $$(SPIFFS_IMAGE) endef diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 9ae4dea..c052c2f 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -20,6 +20,7 @@ typedef struct { uint32_t size; } fs_buf_t; +static spiffs_config config = {0}; static fs_buf_t work_buf = {0}; static fs_buf_t fds_buf = {0}; static fs_buf_t cache_buf = {0}; @@ -63,15 +64,36 @@ static s32_t esp_spiffs_erase(u32_t addr, u32_t size) return SPIFFS_OK; } +#if SPIFFS_SINGLETON == 1 void esp_spiffs_init() { - work_buf.size = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); +#else +void esp_spiffs_init(uint32_t addr, uint32_t size) +{ + config.phys_addr = addr; + config.phys_size = size; + + config.phys_erase_block = SPIFFS_ESP_ERASE_SIZE; + config.log_page_size = SPIFFS_LOG_PAGE_SIZE; + config.log_block_size = SPIFFS_LOG_BLOCK_SIZE; + + // Initialize fs.cfg so the following helper functions work correctly + memcpy(&fs.cfg, &config, sizeof(spiffs_config)); +#endif + work_buf.size = 2 * SPIFFS_LOG_PAGE_SIZE; fds_buf.size = SPIFFS_buffer_bytes_for_filedescs(&fs, ESP_SPIFFS_FD_NUMBER); cache_buf.size= SPIFFS_buffer_bytes_for_cache(&fs, ESP_SPIFFS_CACHE_PAGES); work_buf.buf = malloc(work_buf.size); fds_buf.buf = malloc(fds_buf.size); cache_buf.buf = malloc(cache_buf.size); + + config.hal_read_f = esp_spiffs_read; + config.hal_write_f = esp_spiffs_write; + config.hal_erase_f = esp_spiffs_erase; + + config.fh_ix_offset = 3; + } void esp_spiffs_deinit() @@ -88,15 +110,6 @@ void esp_spiffs_deinit() int32_t esp_spiffs_mount() { - spiffs_config config = {0}; - - config.hal_read_f = esp_spiffs_read; - config.hal_write_f = esp_spiffs_write; - config.hal_erase_f = esp_spiffs_erase; - - config.fh_ix_offset = 3; - - printf("SPIFFS size: %d\n", SPIFFS_SIZE); printf("SPIFFS memory, work_buf_size=%d, fds_buf_size=%d, cache_buf_size=%d\n", work_buf.size, fds_buf.size, cache_buf.size); @@ -154,7 +167,7 @@ int _open_r(struct _reent *r, const char *pathname, int flags, int mode) if (flags & O_TRUNC) spiffs_flags |= SPIFFS_TRUNC; if (flags & O_RDONLY) spiffs_flags |= SPIFFS_RDONLY; if (flags & O_WRONLY) spiffs_flags |= SPIFFS_WRONLY; - if (flags & O_EXCL) spiffs_flags |= SPIFFS_EXCL; + if (flags & O_EXCL) spiffs_flags |= SPIFFS_EXCL; /* if (flags & O_DIRECT) spiffs_flags |= SPIFFS_DIRECT; no support in newlib */ return SPIFFS_open(&fs, pathname, spiffs_flags, mode); diff --git a/extras/spiffs/esp_spiffs.h b/extras/spiffs/esp_spiffs.h index 60dc7f0..faae31b 100644 --- a/extras/spiffs/esp_spiffs.h +++ b/extras/spiffs/esp_spiffs.h @@ -12,12 +12,25 @@ extern spiffs fs; +#if SPIFFS_SINGLETON == 1 /** * Prepare for SPIFFS mount. * * The function allocates all the necessary buffers. */ void esp_spiffs_init(); +#else +/** + * Prepare for SPIFFS mount. + * + * The function allocates all the necessary buffers. + * + * @param addr Base address for spiffs in flash memory. + * @param size File sistem size. + */ +void esp_spiffs_init(uint32_t addr, uint32_t size); +#endif + /** * Free all memory buffers that were used by SPIFFS. diff --git a/extras/spiffs/mkspiffs/Makefile b/extras/spiffs/mkspiffs/Makefile index 0b8b49e..1ca497c 100644 --- a/extras/spiffs/mkspiffs/Makefile +++ b/extras/spiffs/mkspiffs/Makefile @@ -1,16 +1,3 @@ -# Check if SPIFFS_SIZE defined only if not cleaning -ifneq ($(MAKECMDGOALS),clean) -ifndef SPIFFS_SIZE -define ERROR_MSG -Variable SPIFFS_SIZE is not defined. -Cannot build mkspiffs without SPIFFS_SIZE. -Please specify it in your application Makefile. - -endef -$(error $(ERROR_MSG)) -endif -endif - # explicitly use gcc as in xtensa build environment it might be set to # cross compiler CC = gcc @@ -27,8 +14,7 @@ OBJECTS := $(SOURCES:.c=.o) VPATH = ../spiffs/src CFLAGS += -I.. -CFLAGS += -DSPIFFS_BASE_ADDR=0 # for image base addr is start of the image -CFLAGS += -DSPIFFS_SIZE=$(SPIFFS_SIZE) +CFLAGS += -DSPIFFS_SINGLETON=0 all: mkspiffs diff --git a/extras/spiffs/mkspiffs/README.md b/extras/spiffs/mkspiffs/README.md index 5f6943d..57a50d0 100644 --- a/extras/spiffs/mkspiffs/README.md +++ b/extras/spiffs/mkspiffs/README.md @@ -14,21 +14,22 @@ $(eval $(call make_spiffs_image,files)) where *files* is the directory with files that should go into SPIFFS image. -Or you can build mkspiffs manually with: +mkspiffs can be built separately. Simply run `make` in the mkspiffs directory. + +To manually generate SPIFFS image from a directory SPIFFS configuration must be +provided as command line arguments. + +Arguments: + * -D Directory with files that will be put in SPIFFS image. + * -f SPIFFS image file name. + * -s SPIFFS size. + * -p Logical page size. + * -b Logical block size. + +All arguments are mandatory. + +For example: ``` -make SPIFFS_SIZE=0x100000 -``` - -mkspiffs cannot be built without specifying SPIFFS size because it uses the -same SPIFFS sources as the firmware. And for the firmware SPIFFS size is -compile time defined. - -Please note that if you change SPIFFS_SIZE you need to rebuild mkspiffs. -The easiest way is to run `make clean` for you project. - -To manually generate SPIFFS image from directory, run: - -``` -mkspiffs DIRECTORY IMAGE_NAME +mkspiffs -D ./my_files -f spiffs.img -s 0x10000 -p 256 -b 8192 ``` diff --git a/extras/spiffs/mkspiffs/mkspiffs.c b/extras/spiffs/mkspiffs/mkspiffs.c index a1a0513..85fb35f 100644 --- a/extras/spiffs/mkspiffs/mkspiffs.c +++ b/extras/spiffs/mkspiffs/mkspiffs.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "spiffs_config.h" #include "../spiffs/src/spiffs.h" @@ -40,15 +41,23 @@ static void *work_buf = 0; static void *fds_buf = 0; static void *cache_buf = 0; +typedef struct { + uint32_t fs_size; + uint32_t log_page_size; + uint32_t log_block_size; +} fs_config_t; + static void print_usage(const char *prog_name, const char *error_msg) { if (error_msg) { printf("Error: %s\n", error_msg); } printf("Usage: "); - printf("\t%s DIRECTORY IMAGE_NAME\n\n", prog_name); + printf("%s [-D directory] [-f image-name] [-s size]\n", prog_name); + printf("\t[-p page-size] [-b block-size]\n\n"); printf("Example:\n"); - printf("\t%s ./my_files spiffs.img\n\n", prog_name); + printf("\t%s -D ./my_files -f spiffs.img -s 0x10000 -p 256 -b 8192\n\n", + prog_name); } static s32_t _read_data(u32_t addr, u32_t size, u8_t *dst) @@ -74,21 +83,30 @@ static s32_t _erase_data(u32_t addr, u32_t size) return SPIFFS_OK; } -static bool init_spiffs(bool allocate_mem) +static bool init_spiffs(bool allocate_mem, const fs_config_t *fs_config) { spiffs_config config = {0}; - printf("Initializing SPIFFS, size=%d\n", SPIFFS_SIZE); + printf("Initializing SPIFFS, size=%d\n", fs_config->fs_size); config.hal_read_f = _read_data; config.hal_write_f = _write_data; config.hal_erase_f = _erase_data; - int workBufSize = 2 * SPIFFS_CFG_LOG_PAGE_SZ(); + config.phys_addr = 0; + config.phys_size = fs_config->fs_size; + config.log_page_size = fs_config->log_page_size; + config.log_block_size = fs_config->log_block_size; + config.phys_erase_block = SPIFFS_ESP_ERASE_SIZE; + + // initialize fs.cfg so the following helper functions work correctly + memcpy(&fs.cfg, &config, sizeof(spiffs_config)); + + int workBufSize = 2 * fs_config->log_page_size; int fdsBufSize = SPIFFS_buffer_bytes_for_filedescs(&fs, 5); int cacheBufSize = SPIFFS_buffer_bytes_for_cache(&fs, 5); if (allocate_mem) { - image = malloc(SPIFFS_SIZE); + image = malloc(fs_config->fs_size); work_buf = malloc(workBufSize); fds_buf = malloc(fdsBufSize); cache_buf = malloc(cacheBufSize); @@ -107,22 +125,18 @@ static bool format_spiffs() SPIFFS_unmount(&fs); if (SPIFFS_format(&fs) == SPIFFS_OK) { - printf("Format complete\n"); + printf("Format complete\n"); } else { printf("Failed to format SPIFFS\n"); return false; } - if (!init_spiffs(false)) { - printf("Failed to mount SPIFFS\n"); - return false; - } return true; } static void spiffs_free() { - free(image); + free(image); image = NULL; free(work_buf); @@ -141,19 +155,19 @@ static bool process_file(const char *src_file, const char *dst_file) const int buf_size = 256; uint8_t buf[buf_size]; int data_len; - + fd = open(src_file, O_RDONLY); if (fd < 0) { printf("Error openning file: %s\n", src_file); } - - spiffs_file out_fd = SPIFFS_open(&fs, dst_file, + + spiffs_file out_fd = SPIFFS_open(&fs, dst_file, SPIFFS_O_CREAT | SPIFFS_O_WRONLY, 0); while ((data_len = read(fd, buf, buf_size)) != 0) { if (SPIFFS_write(&fs, out_fd, buf, data_len) != data_len) { printf("Error writing to SPIFFS file\n"); break; - } + } } SPIFFS_close(&fs, out_fd); close(fd); @@ -169,7 +183,7 @@ static bool process_directory(const char *direcotry) dp = opendir(direcotry); if (dp != NULL) { while ((ep = readdir(dp)) != 0) { - if (!strcmp(ep->d_name, ".") || + if (!strcmp(ep->d_name, ".") || !strcmp(ep->d_name, "..")) { continue; } @@ -179,7 +193,7 @@ static bool process_directory(const char *direcotry) sprintf(path, "%s/%s", direcotry, ep->d_name); printf("Processing file %s\n", path); if (!process_file(path, ep->d_name)) { - printf("Error processing file\n"); + printf("Error processing file\n"); break; } } @@ -190,10 +204,10 @@ static bool process_directory(const char *direcotry) return true; } -static bool write_image(const char *out_file) +static bool write_image(const char *out_file, const fs_config_t *fs_config) { int fd; - int size = SPIFFS_SIZE; + int size = fs_config->fs_size; uint8_t *p = (uint8_t*)image; fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0666); if (fd < 0) { @@ -204,9 +218,9 @@ static bool write_image(const char *out_file) printf("Writing image to file: %s\n", out_file); while (size != 0) { - write(fd, p, SPIFFS_CFG_LOG_PAGE_SZ()); - p += SPIFFS_CFG_LOG_PAGE_SZ(); - size -= SPIFFS_CFG_LOG_PAGE_SZ(); + write(fd, p, fs_config->log_page_size); + p += fs_config->log_page_size; + size -= fs_config->log_page_size; } close(fd); @@ -216,26 +230,59 @@ static bool write_image(const char *out_file) int main(int argc, char *argv[]) { int result = 0; - - if (argc != 3) { + int option = 0; + fs_config_t fs_config = {0}; + char *image_file_name = 0; + char *directory = 0; + + while ((option = getopt(argc, argv, "D:f:s:p:b:e:")) != -1) { + switch (option) { + case 'D': // directory + directory = optarg; + break; + case 'f': // image file name + image_file_name = optarg; + break; + case 's': // file system size + fs_config.fs_size = (uint32_t)strtol(optarg, NULL, 0); + break; + case 'p': // logical page size + fs_config.log_page_size = (uint32_t)strtol(optarg, NULL, 0); + break; + case 'b': // logical block size + fs_config.log_block_size = (uint32_t)strtol(optarg, NULL, 0); + break; + default: + print_usage(argv[0], NULL); + return -1; + } + } + + if (!image_file_name || !directory || !fs_config.fs_size + || !fs_config.log_page_size || !fs_config.log_block_size) { print_usage(argv[0], NULL); return -1; } - init_spiffs(/*allocate_mem=*/true); + init_spiffs(/*allocate_mem=*/true, &fs_config); if (format_spiffs()) { - if (process_directory(argv[1])) { - if (!write_image(argv[2])) { - printf("Error writing image\n"); - } + if (init_spiffs(/*allocate_mem=*/false, &fs_config)) { + if (process_directory(directory)) { + SPIFFS_unmount(&fs); + if (!write_image(image_file_name, &fs_config)) { + printf("Error writing image\n"); + } + } else { + printf("Error processing direcotry\n"); + } } else { - printf("Error processing direcotry\n"); + printf("Failed to mount SPIFFS\n"); } } else { printf("Error formating spiffs\n"); } - + spiffs_free(); return result; } diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h index b782d48..5af63cf 100644 --- a/extras/spiffs/spiffs_config.h +++ b/extras/spiffs/spiffs_config.h @@ -158,23 +158,26 @@ typedef unsigned char u8_t; #define SPIFFS_SINGLETON 1 #endif +// ESP8266 supports only sector erase, which is 4096 bytes +#define SPIFFS_ESP_ERASE_SIZE (4096) + #if SPIFFS_SINGLETON // Instead of giving parameters in config struct, singleton build must // give parameters in defines below. #ifndef SPIFFS_CFG_PHYS_SZ -#define SPIFFS_CFG_PHYS_SZ(ignore) (SPIFFS_SIZE) +#define SPIFFS_CFG_PHYS_SZ(ignore) (SPIFFS_SIZE) #endif #ifndef SPIFFS_CFG_PHYS_ERASE_SZ -#define SPIFFS_CFG_PHYS_ERASE_SZ(ignore) (4*1024) +#define SPIFFS_CFG_PHYS_ERASE_SZ(ignore) (SPIFFS_ESP_ERASE_SIZE) #endif #ifndef SPIFFS_CFG_PHYS_ADDR -#define SPIFFS_CFG_PHYS_ADDR(ignore) (SPIFFS_BASE_ADDR) +#define SPIFFS_CFG_PHYS_ADDR(ignore) (SPIFFS_BASE_ADDR) #endif #ifndef SPIFFS_CFG_LOG_PAGE_SZ -#define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (256) +#define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (SPIFFS_LOG_PAGE_SIZE) #endif #ifndef SPIFFS_CFG_LOG_BLOCK_SZ -#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (8*1024) +#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (SPIFFS_LOG_BLOCK_SIZE) #endif #endif From a868f9dadbe2babd63c9cb843d869d2ad2ff2474 Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Tue, 9 Aug 2016 20:33:40 +0200 Subject: [PATCH 052/349] Updated SPIFFS to 0.3.6 --- extras/spiffs/spiffs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/spiffs/spiffs b/extras/spiffs/spiffs index c6e94fd..3993774 160000 --- a/extras/spiffs/spiffs +++ b/extras/spiffs/spiffs @@ -1 +1 @@ -Subproject commit c6e94fdca5c1601b90c027167f8d453c48e482c4 +Subproject commit 39937743fbbec4b82308ee08332bf9180408d23b From 5ea02286398aad78b7a16271097d108544f1135d Mon Sep 17 00:00:00 2001 From: Peter Andersson Date: Sun, 14 Aug 2016 15:15:45 +0200 Subject: [PATCH 053/349] spiffs: enable temporal cache for spiffs v 0.3.6 --- extras/spiffs/spiffs_config.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h index 5af63cf..0c848a5 100644 --- a/extras/spiffs/spiffs_config.h +++ b/extras/spiffs/spiffs_config.h @@ -215,6 +215,37 @@ typedef unsigned char u8_t; #define SPIFFS_READ_ONLY 0 #endif +// Enable this to add a temporal file cache using the fd buffer. +// The effects of the cache is that SPIFFS_open will find the file faster in +// certain cases. It will make it a lot easier for spiffs to find files +// opened frequently, reducing number of readings from the spi flash for +// finding those files. +// This will grow each fd by 6 bytes. If your files are opened in patterns +// with a degree of temporal locality, the system is optimized. +// Examples can be letting spiffs serve web content, where one file is the css. +// The css is accessed for each html file that is opened, meaning it is +// accessed almost every second time a file is opened. Another example could be +// a log file that is often opened, written, and closed. +// The size of the cache is number of given file descriptors, as it piggybacks +// on the fd update mechanism. The cache lives in the closed file descriptors. +// When closed, the fd know the whereabouts of the file. Instead of forgetting +// this, the temporal cache will keep handling updates to that file even if the +// fd is closed. If the file is opened again, the location of the file is found +// directly. If all available descriptors become opened, all cache memory is +// lost. +#ifndef SPIFFS_TEMPORAL_FD_CACHE +#define SPIFFS_TEMPORAL_FD_CACHE 1 +#endif + +// Temporal file cache hit score. Each time a file is opened, all cached files +// will lose one point. If the opened file is found in cache, that entry will +// gain SPIFFS_TEMPORAL_CACHE_HIT_SCORE points. One can experiment with this +// value for the specific access patterns of the application. However, it must +// be between 1 (no gain for hitting a cached entry often) and 255. +#ifndef SPIFFS_TEMPORAL_CACHE_HIT_SCORE +#define SPIFFS_TEMPORAL_CACHE_HIT_SCORE 4 +#endif + // Set SPIFFS_TEST_VISUALISATION to non-zero to enable SPIFFS_vis function // in the api. This function will visualize all filesystem using given printf // function. From 8405b989f915f700f3a31d991e257606c70fe9c3 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Mon, 15 Aug 2016 20:58:10 +1000 Subject: [PATCH 054/349] iomux_set_function: remove the IOMUX_FUNC transform of the func argument. The allows the IOMUX_GPIO_FUNC_ definitions to be used here. --- core/esp_spi.c | 4 ++-- core/include/esp/iomux.h | 10 ++++++++-- core/include/esp/iomux_regs.h | 5 ----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 7a8704c..f7d8cf3 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -23,8 +23,8 @@ #define _SPI1_SCK_GPIO 14 #define _SPI1_CS0_GPIO 15 -#define _SPI0_FUNC 1 -#define _SPI1_FUNC 2 +#define _SPI0_FUNC IOMUX_FUNC(1) +#define _SPI1_FUNC IOMUX_FUNC(2) #define _SPI_BUF_SIZE 64 diff --git a/core/include/esp/iomux.h b/core/include/esp/iomux.h index 9948784..96c4346 100644 --- a/core/include/esp/iomux.h +++ b/core/include/esp/iomux.h @@ -43,10 +43,16 @@ inline static esp_reg_t gpio_iomux_reg(const uint8_t gpio_number) return &(IOMUX.PIN[gpio_to_iomux(gpio_number)]); } +/** + * Set the I/O Mux function. The iomux_num is an IOMUX register number, see + * gpio_to_iomux to obtain the IOMUX register number of a GPIO number. + * The 'func' is an IOMUX_GPIO_FUNC_ value, see iomux_regs.h + * + */ inline static void iomux_set_function(uint8_t iomux_num, uint32_t func) { uint32_t prev = IOMUX.PIN[iomux_num] & ~IOMUX_PIN_FUNC_MASK; - IOMUX.PIN[iomux_num] = IOMUX_FUNC(func) | prev; + IOMUX.PIN[iomux_num] = func | prev; } inline static void iomux_set_direction_flags(uint8_t iomux_num, uint32_t dir_flags) @@ -75,7 +81,7 @@ inline static void iomux_set_pullup_flags(uint8_t iomux_num, uint32_t pullup_fla inline static void iomux_set_gpio_function(uint8_t gpio_number, bool output_enable) { const uint8_t iomux_num = gpio_to_iomux(gpio_number); - const uint32_t func = iomux_num > 11 ? 0 : 3; + const uint32_t func = iomux_num > 11 ? IOMUX_FUNC(0) : IOMUX_FUNC(3); iomux_set_function(iomux_num, func); iomux_set_direction_flags(iomux_num, output_enable ? IOMUX_PIN_OUTPUT_ENABLE : 0); } diff --git a/core/include/esp/iomux_regs.h b/core/include/esp/iomux_regs.h index 7cb2cd0..aa2ac10 100644 --- a/core/include/esp/iomux_regs.h +++ b/core/include/esp/iomux_regs.h @@ -47,11 +47,6 @@ _Static_assert(sizeof(struct IOMUX_REGS) == 0x44, "IOMUX_REGS is the wrong size" /* WARNING: Macro evaluates argument twice */ #define IOMUX_FUNC(val) (VAL2FIELD_M(IOMUX_PIN_FUNC_LOW, val) | VAL2FIELD_M(IOMUX_PIN_FUNC_HIGH, val)) -/* WARNING: Macro evaluates argument twice */ -#define IOMUX_FUNC_VALUE(regbits) (FIELD2VAL(IOMUX_PIN_FUNC_LOW, regbits) | FIELD2VAL(IOMUX_PIN_FUNC_HIGH, regbits)) - -#define IOMUX_SET_FUNC(regbits, funcval) (((regbits) & ~IOMUX_PIN_FUNC_MASK) | (funcval)) - #define IOMUX_GPIO0 IOMUX.PIN[12] #define IOMUX_GPIO1 IOMUX.PIN[5] #define IOMUX_GPIO2 IOMUX.PIN[13] From 4b77138f7160f4614b06d74ccc1aded2a7c22074 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Mon, 15 Aug 2016 22:23:45 +1000 Subject: [PATCH 055/349] Add gpio_set_iomux_function(). --- core/esp_spi.c | 25 ++++++++++--------------- core/include/esp/gpio.h | 10 ++++++++++ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index f7d8cf3..ab33ea4 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -30,32 +30,27 @@ static bool _minimal_pins[2] = {false, false}; -inline static void _set_pin_function(uint8_t pin, uint32_t function) -{ - iomux_set_function(gpio_to_iomux(pin), function); -} - bool spi_init(uint8_t bus, spi_mode_t mode, uint32_t freq_divider, bool msb, spi_endianness_t endianness, bool minimal_pins) { switch (bus) { case 0: - _set_pin_function(_SPI0_MISO_GPIO, _SPI0_FUNC); - _set_pin_function(_SPI0_MOSI_GPIO, _SPI0_FUNC); - _set_pin_function(_SPI0_SCK_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_MISO_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_MOSI_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_SCK_GPIO, _SPI0_FUNC); if (!minimal_pins) { - _set_pin_function(_SPI0_HD_GPIO, _SPI0_FUNC); - _set_pin_function(_SPI0_WP_GPIO, _SPI0_FUNC); - _set_pin_function(_SPI0_CS0_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_HD_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_WP_GPIO, _SPI0_FUNC); + gpio_set_iomux_function(_SPI0_CS0_GPIO, _SPI0_FUNC); } break; case 1: - _set_pin_function(_SPI1_MISO_GPIO, _SPI1_FUNC); - _set_pin_function(_SPI1_MOSI_GPIO, _SPI1_FUNC); - _set_pin_function(_SPI1_SCK_GPIO, _SPI1_FUNC); + gpio_set_iomux_function(_SPI1_MISO_GPIO, _SPI1_FUNC); + gpio_set_iomux_function(_SPI1_MOSI_GPIO, _SPI1_FUNC); + gpio_set_iomux_function(_SPI1_SCK_GPIO, _SPI1_FUNC); if (!minimal_pins) - _set_pin_function(_SPI1_CS0_GPIO, _SPI1_FUNC); + gpio_set_iomux_function(_SPI1_CS0_GPIO, _SPI1_FUNC); break; default: return false; diff --git a/core/include/esp/gpio.h b/core/include/esp/gpio.h index 426d1ea..80fd43f 100644 --- a/core/include/esp/gpio.h +++ b/core/include/esp/gpio.h @@ -143,6 +143,16 @@ static inline gpio_inttype_t gpio_get_interrupt(const uint8_t gpio_num) return (gpio_inttype_t)FIELD2VAL(GPIO_CONF_INTTYPE, GPIO.CONF[gpio_num]); } +/* Set GPIO I/O Mux function. + * The 'func' is an IOMUX_GPIO_FUNC_ value, see iomux_regs.h + */ +inline static void gpio_set_iomux_function(const uint8_t gpio_num, uint32_t func) +{ + uint8_t iomux_num = gpio_to_iomux(gpio_num); + uint32_t prev = IOMUX.PIN[iomux_num] & ~IOMUX_PIN_FUNC_MASK; + IOMUX.PIN[iomux_num] = func | prev; +} + #ifdef __cplusplus } #endif From 27135d625282f519158289be683013bb7a4fd057 Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 16 Aug 2016 10:10:35 +0300 Subject: [PATCH 056/349] i2s_dma: Implementation of I2S + DMA wrapper library --- core/include/common_macros.h | 8 ++ core/include/esp/iomux.h | 13 ++- extras/i2s_dma/README.md | 8 ++ extras/i2s_dma/component.mk | 9 ++ extras/i2s_dma/i2s_dma.c | 171 +++++++++++++++++++++++++++++++++++ extras/i2s_dma/i2s_dma.h | 116 ++++++++++++++++++++++++ 6 files changed, 322 insertions(+), 3 deletions(-) create mode 100644 extras/i2s_dma/README.md create mode 100644 extras/i2s_dma/component.mk create mode 100644 extras/i2s_dma/i2s_dma.c create mode 100644 extras/i2s_dma/i2s_dma.h diff --git a/core/include/common_macros.h b/core/include/common_macros.h index d4afe4f..7034787 100644 --- a/core/include/common_macros.h +++ b/core/include/common_macros.h @@ -37,6 +37,14 @@ #define VAL2FIELD_M(fieldname, value) (((value) & fieldname##_M) << fieldname##_S) #define SET_FIELD_M(regbits, fieldname, value) (((regbits) & ~FIELD_MASK(fieldname)) | VAL2FIELD_M(fieldname, value)) +/* Set bits in reg with specified mask. + */ +#define SET_MASK_BITS(reg, mask) (reg) |= (mask) + +/* Clear bits in reg with specified mask + */ +#define CLEAR_MASK_BITS(reg, mask) (reg) &= ~(mask) + /* Use the IRAM macro to place functions into Instruction RAM (IRAM) instead of flash (aka irom). diff --git a/core/include/esp/iomux.h b/core/include/esp/iomux.h index 9948784..7cc0860 100644 --- a/core/include/esp/iomux.h +++ b/core/include/esp/iomux.h @@ -43,10 +43,17 @@ inline static esp_reg_t gpio_iomux_reg(const uint8_t gpio_number) return &(IOMUX.PIN[gpio_to_iomux(gpio_number)]); } -inline static void iomux_set_function(uint8_t iomux_num, uint32_t func) +/** + * Set IOMUX function. + * + * @param iomux_num Index of IOMUX register. Can be converted from GPIO number + * with gpio_to_iomux. + * @param iomux_func GPIO function definition IOMUX_GPIOn_FUNC_* + */ +inline static void iomux_set_function(uint8_t iomux_num, uint32_t iomux_func) { uint32_t prev = IOMUX.PIN[iomux_num] & ~IOMUX_PIN_FUNC_MASK; - IOMUX.PIN[iomux_num] = IOMUX_FUNC(func) | prev; + IOMUX.PIN[iomux_num] = iomux_func | prev; } inline static void iomux_set_direction_flags(uint8_t iomux_num, uint32_t dir_flags) @@ -76,7 +83,7 @@ inline static void iomux_set_gpio_function(uint8_t gpio_number, bool output_enab { const uint8_t iomux_num = gpio_to_iomux(gpio_number); const uint32_t func = iomux_num > 11 ? 0 : 3; - iomux_set_function(iomux_num, func); + iomux_set_function(iomux_num, IOMUX_FUNC(func)); iomux_set_direction_flags(iomux_num, output_enable ? IOMUX_PIN_OUTPUT_ENABLE : 0); } diff --git a/extras/i2s_dma/README.md b/extras/i2s_dma/README.md new file mode 100644 index 0000000..4fb8901 --- /dev/null +++ b/extras/i2s_dma/README.md @@ -0,0 +1,8 @@ +# Wrapper around hardware I2S and DMA subsystems of ESP8266 + +ESP8266 has hardware I2S bus support. I2S is a serial bus interface used for +connecting digital audio devices. But can be used to produce sequence of pulses +with reliable timings for example to control a strip of WS2812 leds. + +This library is just a wrapper around tricky I2S initialization. +It sets necessary registers, enables I2S clock etc. diff --git a/extras/i2s_dma/component.mk b/extras/i2s_dma/component.mk new file mode 100644 index 0000000..f04e6ee --- /dev/null +++ b/extras/i2s_dma/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/i2s_dma + +# expected anyone using i2s_dma driver includes it as 'i2s_dma/i2s_dma.h' +INC_DIRS += $(i2s_dma_ROOT).. + +# args for passing into compile rule generation +i2s_dma_SRC_DIR = $(i2s_dma_ROOT) + +$(eval $(call component_compile_rules,i2s_dma)) diff --git a/extras/i2s_dma/i2s_dma.c b/extras/i2s_dma/i2s_dma.c new file mode 100644 index 0000000..6cccc72 --- /dev/null +++ b/extras/i2s_dma/i2s_dma.c @@ -0,0 +1,171 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "i2s_dma.h" +#include "esp/iomux.h" +#include "esp/i2s_regs.h" +#include "esp/interrupts.h" +#include "common_macros.h" + +#include + +// #define I2S_DMA_DEBUG + +#ifdef I2S_DMA_DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt "\n", "i2s_dma: ", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + +// The following definitions is taken from ESP8266_MP3_DECODER demo +// https://github.com/espressif/ESP8266_MP3_DECODER/blob/master/mp3/driver/i2s_freertos.c +// It is requred to set clock to I2S subsystem +void sdk_rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, + uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata); + +#ifndef i2c_bbpll +#define i2c_bbpll 0x67 +#define i2c_bbpll_en_audio_clock_out 4 +#define i2c_bbpll_en_audio_clock_out_msb 7 +#define i2c_bbpll_en_audio_clock_out_lsb 7 +#define i2c_bbpll_hostid 4 +#endif + +#define i2c_writeReg_Mask(block, host_id, reg_add, Msb, Lsb, indata) \ + sdk_rom_i2c_writeReg_Mask(block, host_id, reg_add, Msb, Lsb, indata) + +#define i2c_writeReg_Mask_def(block, reg_add, indata) \ + i2c_writeReg_Mask(block, block##_hostid, reg_add, reg_add##_msb, \ + reg_add##_lsb, indata) + + +void i2s_dma_init(i2s_dma_isr_t isr, i2s_clock_div_t clock_div, i2s_pins_t pins) +{ + // reset DMA + SET_MASK_BITS(SLC.CONF0, SLC_CONF0_RX_LINK_RESET); + CLEAR_MASK_BITS(SLC.CONF0, SLC_CONF0_RX_LINK_RESET); + + // clear DMA int flags + SLC.INT_CLEAR = 0xFFFFFFFF; + SLC.INT_CLEAR = 0; + + // Enable and configure DMA + SLC.CONF0 = SET_FIELD(SLC.CONF0, SLC_CONF0_MODE, 0); // does it really needed? + SLC.CONF0 = SET_FIELD(SLC.CONF0, SLC_CONF0_MODE, 1); + + // Do we really need to set and clear? + SET_MASK_BITS(SLC.RX_DESCRIPTOR_CONF, SLC_RX_DESCRIPTOR_CONF_INFOR_NO_REPLACE | + SLC_RX_DESCRIPTOR_CONF_TOKEN_NO_REPLACE); + CLEAR_MASK_BITS(SLC.RX_DESCRIPTOR_CONF, SLC_RX_DESCRIPTOR_CONF_RX_FILL_ENABLE | + SLC_RX_DESCRIPTOR_CONF_RX_EOF_MODE | SLC_RX_DESCRIPTOR_CONF_RX_FILL_MODE); + + if (isr) { + _xt_isr_attach(INUM_SLC, isr); + SET_MASK_BITS(SLC.INT_ENABLE, SLC_INT_ENABLE_RX_EOF); + SLC.INT_CLEAR = 0xFFFFFFFF; + _xt_isr_unmask(1< +#include +#include "esp/slc_regs.h" + +typedef void (*i2s_dma_isr_t)(void); + +typedef struct dma_descriptor { + uint32_t blocksize:12; + uint32_t datalen:12; + uint32_t unused:5; + uint32_t sub_sof:1; + uint32_t eof:1; + uint32_t owner:1; + + void* buf_ptr; + struct dma_descriptor *next_link_ptr; +} dma_descriptor_t; + +typedef struct { + uint8_t bclk_div; + uint8_t clkm_div; +} i2s_clock_div_t; + +typedef struct { + bool data; + bool clock; + bool ws; +} i2s_pins_t; + +/** + * Initialize I2S and DMA subsystems. + * + * @param isr ISR handler. Can be NULL if interrupt handling is not needed. + * @param clock_div I2S clock configuration. + * @param pins I2S pin configuration. Specifies which pins are enabled in I2S. + */ +void i2s_dma_init(i2s_dma_isr_t isr, i2s_clock_div_t clock_div, i2s_pins_t pins); + +/** + * Calculate I2S dividers for the specified frequency. + * + * I2S_FREQ = 160000000 / (bclk_div * clkm_div) + * Base frequency is independent from the CPU frequency. + */ +i2s_clock_div_t i2s_get_clock_div(int32_t freq); + +/** + * Start I2S transmittion. + * + * @param descr Pointer to the first descriptor in the linked list of descriptors. + */ +void i2s_dma_start(dma_descriptor_t *descr); + +/** + * Stop I2S transmittion. + */ +void i2s_dma_stop(); + +/** + * Clear interrupt in the I2S ISR handler. + * + * It is intended to be called from ISR. + */ +inline void i2s_dma_clear_interrupt() +{ + SLC.INT_CLEAR = 0xFFFFFFFF; +} + +/** + * Check if it is EOF interrupt. + * + * It is intended to be called from ISR. + */ +inline bool i2s_dma_is_eof_interrupt() +{ + return (SLC.INT_STATUS & SLC_INT_STATUS_RX_EOF); +} + +/** + * Get pointer to a descriptor that caused EOF interrupt. + * It is the last processed descriptor. + * + * It is intended to be called from ISR. + */ +inline dma_descriptor_t *i2s_dma_get_eof_descriptor() +{ + return (dma_descriptor_t*)SLC.RX_EOF_DESCRIPTOR_ADDR; +} + +#endif // __I2S_DMA_H__ From 666f8212635d12be2c22bd4380eba8d154d53cfe Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 16 Aug 2016 10:53:56 +0300 Subject: [PATCH 057/349] ws2812_i2s: WS2812 leds driver implementation using i2s_dma library --- examples/ws2812_i2s/Makefile | 6 + examples/ws2812_i2s/ws2812_i2s_colour_loop.c | 83 +++++++++ extras/ws2812_i2s/README.md | 15 ++ extras/ws2812_i2s/component.mk | 9 + extras/ws2812_i2s/ws2812_i2s.c | 181 +++++++++++++++++++ extras/ws2812_i2s/ws2812_i2s.h | 53 ++++++ 6 files changed, 347 insertions(+) create mode 100644 examples/ws2812_i2s/Makefile create mode 100644 examples/ws2812_i2s/ws2812_i2s_colour_loop.c create mode 100644 extras/ws2812_i2s/README.md create mode 100644 extras/ws2812_i2s/component.mk create mode 100644 extras/ws2812_i2s/ws2812_i2s.c create mode 100644 extras/ws2812_i2s/ws2812_i2s.h diff --git a/examples/ws2812_i2s/Makefile b/examples/ws2812_i2s/Makefile new file mode 100644 index 0000000..e639c57 --- /dev/null +++ b/examples/ws2812_i2s/Makefile @@ -0,0 +1,6 @@ +# Makefile for the ws2812_i2s example + +PROGRAM=ws2812_i2s_example +EXTRA_COMPONENTS = extras/i2s_dma extras/ws2812_i2s + +include ../../common.mk diff --git a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c new file mode 100644 index 0000000..022f010 --- /dev/null +++ b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c @@ -0,0 +1,83 @@ +/** + * Example of ws2812_i2s library usage. + * + * This example shows light that travels in circle with fading tail. + * As ws2812_i2s library using hardware I2S the output pin is GPIO3 and + * can not be changed. + * + * This sample code is in the public domain., + */ +#include "espressif/esp_common.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp/uart.h" +#include +#include +#include + +#include "ws2812_i2s/ws2812_i2s.h" + +const uint32_t led_number = 60; +const uint32_t tail_fade_factor = 2; +const uint32_t tail_length = 8; + +static void fade_pixel(ws2812_pixel_t *pixel, uint32_t factor) +{ + pixel->red = pixel->red / factor; + pixel->green = pixel->green / factor; + pixel->blue = pixel->blue / factor; +} + +static int fix_index(int index) +{ + if (index < 0) { + return (int)led_number + index; + } else if (index >= led_number) { + return index - led_number; + } else { + return index; + } +} + +static ws2812_pixel_t next_colour() +{ + ws2812_pixel_t colour = {0, 0, 0}; + colour.red = rand() % 256; + colour.green = rand() % 256; + colour.blue = rand() % 256; + + return colour; +} + +static void demo(void *pvParameters) +{ + ws2812_pixel_t pixels[led_number]; + int head_index = 0; + + ws2812_i2s_init(led_number); + + memset(pixels, 0, sizeof(ws2812_pixel_t) * led_number); + + while (1) { + pixels[head_index] = next_colour(); + for (int i = 0; i < led_number; i++) { + head_index = fix_index(head_index + 1); + pixels[head_index] = pixels[fix_index(head_index-1)]; + for (int ii = 1; ii < tail_length; ii++) { + fade_pixel(&pixels[fix_index(head_index - ii)], tail_fade_factor); + } + memset(&pixels[fix_index(head_index - tail_length)], 0, + sizeof(ws2812_pixel_t)); + + ws2812_i2s_update(pixels); + vTaskDelay(20 / portTICK_RATE_MS); + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + xTaskCreate(&demo, (signed char *)"ws2812_i2s", 256, NULL, 10, NULL); +} diff --git a/extras/ws2812_i2s/README.md b/extras/ws2812_i2s/README.md new file mode 100644 index 0000000..1cd6953 --- /dev/null +++ b/extras/ws2812_i2s/README.md @@ -0,0 +1,15 @@ +# WS2812 led driver + +This driver uses I2S and DMA subsystems to drive WS2812 leds. +The idea to use I2S to control WS2812 leds belongs to [CNLohr](https://github.com/CNLohr). + +## Pros + + * Not using CPU to generate pulses. + * Interrupt neutral. Reliable operation even with high network load. + +## Cons + + * Using RAM for DMA buffer. 12 bytes per pixel. + * Can not change output PIN. Use I2S DATA output pin which is GPIO3. + diff --git a/extras/ws2812_i2s/component.mk b/extras/ws2812_i2s/component.mk new file mode 100644 index 0000000..08b4449 --- /dev/null +++ b/extras/ws2812_i2s/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ws2812_i2s + +# expected anyone using ws2812_i2s driver includes it as 'ws2812_i2s/ws2812_i2s.h' +INC_DIRS += $(ws2812_i2s_ROOT).. + +# args for passing into compile rule generation +ws2812_i2s_SRC_DIR = $(ws2812_i2s_ROOT) + +$(eval $(call component_compile_rules,ws2812_i2s)) diff --git a/extras/ws2812_i2s/ws2812_i2s.c b/extras/ws2812_i2s/ws2812_i2s.c new file mode 100644 index 0000000..310869b --- /dev/null +++ b/extras/ws2812_i2s/ws2812_i2s.c @@ -0,0 +1,181 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#include "ws2812_i2s.h" +#include "i2s_dma/i2s_dma.h" + +#include +#include + +// #define WS2812_I2S_DEBUG + +#ifdef WS2812_I2S_DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt "\n", "ws2812_i2s: ", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + +#define MAX_DMA_BLOCK_SIZE 4095 +#define DMA_PIXEL_SIZE 12 // each colour takes 4 bytes + +/** + * Amount of zero data to produce WS2812 reset condition. + * DMA data must be multiple of 4 + * 16 bytes of 0 gives ~50 microseconds of low pulse + */ +#define WS2812_ZEROES_LENGTH 16 + +static uint8_t i2s_dma_zero_buf[WS2812_ZEROES_LENGTH] = {0}; + +static dma_descriptor_t *dma_block_list; +static uint32_t dma_block_list_size; + +static void *dma_buffer; +static uint32_t dma_buffer_size; + +#ifdef WS2812_I2S_DEBUG +volatile uint32_t dma_isr_counter = 0; +#endif + +static volatile bool i2s_dma_processing = false; + +static void dma_isr_handler(void) +{ + if (i2s_dma_is_eof_interrupt()) { +#ifdef WS2812_I2S_DEBUG + dma_isr_counter++; +#endif + i2s_dma_processing = false; + } + i2s_dma_clear_interrupt(); +} + +/** + * Form a linked list of descriptors (dma blocks). + * The last two blocks are zero block and stop block. + * The last block is a stop terminal block. It has no data and no next block. + */ +static inline void init_descriptors_list(uint8_t *buf, uint32_t total_dma_data_size) +{ + for (int i = 0; i < dma_block_list_size; i++) { + dma_block_list[i].owner = 1; + dma_block_list[i].eof = 0; + dma_block_list[i].sub_sof = 0; + dma_block_list[i].unused = 0; + dma_block_list[i].buf_ptr = buf; + + if (total_dma_data_size >= MAX_DMA_BLOCK_SIZE) { + dma_block_list[i].datalen = MAX_DMA_BLOCK_SIZE; + dma_block_list[i].blocksize = MAX_DMA_BLOCK_SIZE; + total_dma_data_size -= MAX_DMA_BLOCK_SIZE; + buf += MAX_DMA_BLOCK_SIZE; + } else { + dma_block_list[i].datalen = total_dma_data_size; + dma_block_list[i].blocksize = total_dma_data_size; + total_dma_data_size = 0; + } + + if (i == (dma_block_list_size - 2)) { // zero block + dma_block_list[i].buf_ptr = i2s_dma_zero_buf; + dma_block_list[i].datalen = WS2812_ZEROES_LENGTH; + dma_block_list[i].blocksize = WS2812_ZEROES_LENGTH; + } + + if (i == (dma_block_list_size - 1)) { // stop block + // it needs a valid buffer even if no data to output + dma_block_list[i].buf_ptr = i2s_dma_zero_buf; + dma_block_list[i].datalen = 0; + dma_block_list[i].blocksize = WS2812_ZEROES_LENGTH; + dma_block_list[i].next_link_ptr = 0; + + // the last stop block should trigger interrupt + dma_block_list[i].eof = 1; + } else { + dma_block_list[i].next_link_ptr = &dma_block_list[i + 1]; + } + } +} + +void ws2812_i2s_init(uint32_t pixels_number) +{ + dma_buffer_size = pixels_number * DMA_PIXEL_SIZE; + dma_block_list_size = dma_buffer_size / MAX_DMA_BLOCK_SIZE; + + if (dma_buffer_size % MAX_DMA_BLOCK_SIZE) { + dma_block_list_size += 1; + } + + dma_block_list_size += 2; // zero block and stop block + + debug("allocating %d dma blocks\n", dma_block_list_size); + + dma_block_list = (dma_descriptor_t*)malloc( + dma_block_list_size * sizeof(dma_descriptor_t)); + + debug("allocating %d bytes for DMA buffer\n", dma_buffer_size); + dma_buffer = malloc(dma_buffer_size); + memset(dma_buffer, 0xFA, dma_buffer_size); + + init_descriptors_list(dma_buffer, dma_buffer_size); + + i2s_clock_div_t clock_div = i2s_get_clock_div(3333333); + i2s_pins_t i2s_pins = {.data = true, .clock = false, .ws = false}; + + debug("i2s clock dividers, bclk=%d, clkm=%d\n", + clock_div.bclk_div, clock_div.clkm_div); + + i2s_dma_init(dma_isr_handler, clock_div, i2s_pins); +} + +const IRAM_DATA int16_t bitpatterns[16] = +{ + 0b1000100010001000, 0b1000100010001110, 0b1000100011101000, 0b1000100011101110, + 0b1000111010001000, 0b1000111010001110, 0b1000111011101000, 0b1000111011101110, + 0b1110100010001000, 0b1110100010001110, 0b1110100011101000, 0b1110100011101110, + 0b1110111010001000, 0b1110111010001110, 0b1110111011101000, 0b1110111011101110, +}; + +void ws2812_i2s_update(ws2812_pixel_t *pixels) +{ + while (i2s_dma_processing) {}; + + uint16_t *p_dma_buf = dma_buffer; + + for (uint32_t i = 0; i < (dma_buffer_size / DMA_PIXEL_SIZE); i++) { + // green + *p_dma_buf++ = bitpatterns[pixels[i].green & 0x0F]; + *p_dma_buf++ = bitpatterns[pixels[i].green >> 4]; + + // red + *p_dma_buf++ = bitpatterns[pixels[i].red & 0x0F]; + *p_dma_buf++ = bitpatterns[pixels[i].red >> 4]; + + // blue + *p_dma_buf++ = bitpatterns[pixels[i].blue & 0x0F]; + *p_dma_buf++ = bitpatterns[pixels[i].blue >> 4]; + } + + i2s_dma_processing = true; + i2s_dma_start(dma_block_list); +} diff --git a/extras/ws2812_i2s/ws2812_i2s.h b/extras/ws2812_i2s/ws2812_i2s.h new file mode 100644 index 0000000..fc12e26 --- /dev/null +++ b/extras/ws2812_i2s/ws2812_i2s.h @@ -0,0 +1,53 @@ +/** + * The MIT License (MIT) + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef __WS2812_I2S_H__ +#define __WS2812_I2S_H__ + +#include +#include + +typedef struct { + uint8_t red; + uint8_t green; + uint8_t blue; +} ws2812_pixel_t; + +/** + * Initialize i2s and dma subsystems to work with ws2812 led strip. + * + * Please note that each pixel will take 12 bytes of RAM. + * + * @param pixels_number Number of pixels in the strip. + */ +void ws2812_i2s_init(uint32_t pixels_number); + +/** + * Update ws2812 pixels. + * + * @param pixels Array of 'pixels_number' pixels. The array must contain all + * the pixels. + */ +void ws2812_i2s_update(ws2812_pixel_t *pixels); + +#endif // __WS2812_I2S_H__ From e96dc5c72225ec5592444086bb76af366dbe58f5 Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 16 Aug 2016 11:09:18 +0300 Subject: [PATCH 058/349] is2_audio: Example of using i2s_dma library to output audio --- examples/i2s_audio/Makefile | 11 ++ examples/i2s_audio/i2s_audio_example.c | 197 +++++++++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 examples/i2s_audio/Makefile create mode 100644 examples/i2s_audio/i2s_audio_example.c diff --git a/examples/i2s_audio/Makefile b/examples/i2s_audio/Makefile new file mode 100644 index 0000000..d732ffa --- /dev/null +++ b/examples/i2s_audio/Makefile @@ -0,0 +1,11 @@ +PROGRAM=i2s_audio_example +EXTRA_COMPONENTS = extras/spiffs extras/i2s_dma +FLASH_SIZE = 32 + +# spiffs configuration +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +include ../../common.mk + +$(eval $(call make_spiffs_image,files)) diff --git a/examples/i2s_audio/i2s_audio_example.c b/examples/i2s_audio/i2s_audio_example.c new file mode 100644 index 0000000..78df426 --- /dev/null +++ b/examples/i2s_audio/i2s_audio_example.c @@ -0,0 +1,197 @@ +/* i2s_audio_example.c - Plays wav file from spiffs. + * + * This example demonstrates how to use I2S with DMA to output audio. + * The example is tested with TDA5143 16 bit DAC. But should work with + * any I2S DAC. + * + * The example reads a file with name "sample.wav" from the file system and + * feeds audio samples into DMA subsystem which outputs it into I2S bus. + * Currently only 44100 Hz 16 bit 2 channel audio is supported. + * + * In order to test this example you need to place a file with name "sample.wav" + * into directory "files". This file will be uploaded into spiffs on the device. + * The size of the sample file must be less than 1MB to fit into spiffs image. + * The format of the sample file must be 44100Hz, 16bit, 2 channels. + * Also you need a DAC connected to ESP8266 to convert I2S stream to analog + * output. Three wire must be connected: DATA, WS, CLOCK. + * + * This sample code is in the public domain., + */ +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "queue.h" +#include "task.h" +#include "esp8266.h" + +#include "fcntl.h" +#include "unistd.h" + +#include +#include + +#include "esp_spiffs.h" +#include "i2s_dma/i2s_dma.h" + +// Very simple WAV header, ignores most fields +typedef struct __attribute__((packed)) { + uint8_t ignore_0[22]; + uint16_t num_channels; + uint32_t sample_rate; + uint8_t ignore_1[6]; + uint16_t bits_per_sample; + uint8_t ignore_2[4]; + uint32_t data_size; + uint8_t data[]; +} dumb_wav_header_t; + +// When samples are not sent fast enough underrun condition occurs +volatile uint32_t underrun_counter = 0; + +#define DMA_BUFFER_SIZE 2048 +#define DMA_QUEUE_SIZE 8 + +// Circular list of descriptors +static dma_descriptor_t dma_block_list[DMA_QUEUE_SIZE]; + +// Array of buffers for circular list of descriptors +static uint8_t dma_buffer[DMA_QUEUE_SIZE][DMA_BUFFER_SIZE]; + +// Queue of empty DMA blocks +static xQueueHandle dma_queue; + +/** + * Create a circular list of DMA descriptors + */ +static inline void init_descriptors_list() +{ + memset(dma_buffer, 0, DMA_QUEUE_SIZE * DMA_BUFFER_SIZE); + + for (int i = 0; i < DMA_QUEUE_SIZE; i++) { + dma_block_list[i].owner = 1; + dma_block_list[i].eof = 1; + dma_block_list[i].sub_sof = 0; + dma_block_list[i].unused = 0; + dma_block_list[i].buf_ptr = dma_buffer[i]; + dma_block_list[i].datalen = DMA_BUFFER_SIZE; + dma_block_list[i].blocksize = DMA_BUFFER_SIZE; + if (i == (DMA_QUEUE_SIZE - 1)) { + dma_block_list[i].next_link_ptr = &dma_block_list[0]; + } else { + dma_block_list[i].next_link_ptr = &dma_block_list[i + 1]; + } + } + + // The queue depth is one smaller than the amount of buffers we have, + // because there's always a buffer that is being used by the DMA subsystem + // *right now* and we don't want to be able to write to that simultaneously + dma_queue = xQueueCreate(DMA_QUEUE_SIZE - 1, sizeof(uint8_t*)); +} + +// DMA interrupt handler. It is called each time a DMA block is finished processing. +static void dma_isr_handler(void) +{ + portBASE_TYPE task_awoken = pdFALSE; + + if (i2s_dma_is_eof_interrupt()) { + dma_descriptor_t *descr = i2s_dma_get_eof_descriptor(); + + if (xQueueIsQueueFullFromISR(dma_queue)) { + // List of empty blocks is full. Sender don't send data fast enough. + int dummy; + underrun_counter++; + // Discard top of the queue + xQueueReceiveFromISR(dma_queue, &dummy, &task_awoken); + } + // Push the processed buffer to the queue so sender can refill it. + xQueueSendFromISR(dma_queue, (void*)(&descr->buf_ptr), &task_awoken); + } + i2s_dma_clear_interrupt(); + + portEND_SWITCHING_ISR(task_awoken); +} + +static bool play_data(int fd) +{ + uint8_t *curr_dma_buf; + + // Get a free block from the DMA queue. This call will suspend the task + // until a free block is available in the queue. + if (xQueueReceive(dma_queue, &curr_dma_buf, portMAX_DELAY) == pdFALSE) { + // Or timeout occurs + printf("Cound't get free blocks to push data\n"); + } + + int read_bytes = read(fd, curr_dma_buf, DMA_BUFFER_SIZE); + if (read_bytes <= 0) { + return false; + } + + return true; +} + +void play_task(void *pvParameters) +{ + esp_spiffs_init(); + if (esp_spiffs_mount() != SPIFFS_OK) { + printf("Error mount SPIFFS\n"); + } + + int fd = open("sample.wav", O_RDONLY); + + if (fd < 0) { + printf("Error opening file\n"); + return; + } + + dumb_wav_header_t wav_header; + read(fd, (void*)&wav_header, sizeof(wav_header)); + printf("Number of channels: %d\n", wav_header.num_channels); + printf("Bits per sample: %d\n", wav_header.bits_per_sample); + printf("Sample rate: %d\n", wav_header.sample_rate); + printf("Data size: %d\n", wav_header.data_size); + + if (wav_header.bits_per_sample != 16) { + printf("Only 16 bit per sample is supported\n"); + return; + } + + if (wav_header.num_channels != 2) { + printf("Only 2 channels is supported\n"); + return; + } + + i2s_clock_div_t clock_div = i2s_get_clock_div( + wav_header.sample_rate * 2 * 16); + + printf("i2s clock dividers, bclk=%d, clkm=%d\n", + clock_div.bclk_div, clock_div.clkm_div); + + i2s_pins_t i2s_pins = {.data = true, .clock = true, .ws = true}; + + i2s_dma_init(dma_isr_handler, clock_div, i2s_pins); + + while (1) { + init_descriptors_list(); + + i2s_dma_start(dma_block_list); + lseek(fd, sizeof(dumb_wav_header_t), SEEK_SET); + + while (play_data(fd)) {}; + i2s_dma_stop(); + + vQueueDelete(dma_queue); + + printf("underrun counter: %d\n", underrun_counter); + + vTaskDelay(1000 / portTICK_RATE_MS); + } + + close(fd); +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + xTaskCreate(play_task, (signed char *)"test_task", 1024, NULL, 2, NULL); +} From 62f55d499e8fc0d3e4da0dfaee806383de213f83 Mon Sep 17 00:00:00 2001 From: sheinz Date: Wed, 17 Aug 2016 16:25:17 +0300 Subject: [PATCH 059/349] Fix for system_deep_sleep ignoring argument --- include/etstimer.h | 4 ++++ open_esplibs/libmain/user_interface.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/etstimer.h b/include/etstimer.h index bcc914a..1187ab9 100644 --- a/include/etstimer.h +++ b/include/etstimer.h @@ -36,4 +36,8 @@ typedef struct ETSTimer_st { void *timer_arg; } ETSTimer; +void sdk_ets_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg); +void sdk_ets_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag); +void sdk_ets_timer_disarm(ETSTimer *ptimer); + #endif /* _ETSTIMER_H */ diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 5e89424..c3940b1 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -55,6 +55,9 @@ sdk_wifi_promiscuous_cb_t sdk_promiscuous_cb; static uint8_t _system_upgrade_flag; // Ldata009 +// Timer to execute a second phase of switching to a deep sleep +static ETSTimer deep_sleep_timer; + // Prototypes for static functions static bool _check_boot_version(void); static void _deep_sleep_phase2(void *timer_arg); @@ -407,8 +410,13 @@ void sdk_system_deep_sleep(uint32_t time_in_us) { sdk_wifi_softap_stop(); } sdk_os_timer_disarm(&sdk_sta_con_timer); - sdk_os_timer_setfn(&sdk_sta_con_timer, _deep_sleep_phase2, (void *)time_in_us); - sdk_os_timer_arm(&sdk_sta_con_timer, 100, 0); + + // Originally deep sleep function reused sdk_sta_con_timer + // but we can't mix functions sdk_ets_timer_ with sdk_os_timer_ for the + // same timer. So now deep sleep function uses a separate timer. + sdk_ets_timer_disarm(&deep_sleep_timer); + sdk_ets_timer_setfn(&deep_sleep_timer, _deep_sleep_phase2, (void *)time_in_us); + sdk_ets_timer_arm(&deep_sleep_timer, 100, 0); } bool sdk_system_update_cpu_freq(uint8_t freq) { From f0c43ff5d5212764b5a12af3a67a572c3a027b2d Mon Sep 17 00:00:00 2001 From: ourairquality Date: Mon, 15 Aug 2016 15:36:09 +1000 Subject: [PATCH 060/349] BME280 support. The BME280 is close to compatible with the existing BMP280 and extends it with support for measuring humidity, so support has been bundled into the bmp280 driver. The example now auto-detects the device and displays the humidity for the BME280. The I2C bus initialization has been moved out of the bmp280 driver to support multiple devices. The check-id and reset logic has been bundled into the driver initialization. It needs to be re-initialized after reset anyway and the chip-id is need to initialize it, just re-initialize to reset. Support has been added for multiple devices. The calibration data storage needs to be managed by the caller rather than static data. The caller can choose the I2C address to allow two BMx280 devices to be used on the same I2C bus. An interface has been added to return the measurement values in an integer fixed float format. The float format interface is still there. All the values are read in one I2C transaction to ensure they are a consistent set. Renamed bmp280_calib_t to bmp280_t, and removed read_register8. --- examples/bmp280/bmp280_example.c | 49 +++-- extras/bmp280/README.md | 75 ++++--- extras/bmp280/bmp280.c | 344 ++++++++++++++++++++----------- extras/bmp280/bmp280.h | 80 +++++-- 4 files changed, 369 insertions(+), 179 deletions(-) diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c index 625a60e..6621158 100644 --- a/examples/bmp280/bmp280_example.c +++ b/examples/bmp280/bmp280_example.c @@ -6,43 +6,55 @@ #include "FreeRTOS.h" #include "task.h" +#include "i2c/i2c.h" #include "bmp280/bmp280.h" // In forced mode user initiate measurement each time. // In normal mode measurement is done continuously with specified standby time. // #define MODE_FORCED -const uint8_t scl_pin = 5; -const uint8_t sda_pin = 4; +const uint8_t scl_pin = 0; +const uint8_t sda_pin = 2; #ifdef MODE_FORCED static void bmp280_task_forced(void *pvParameters) { bmp280_params_t params; - float pressure, temperature; + float pressure, temperature, humidity; bmp280_init_default_params(¶ms); params.mode = BMP280_MODE_FORCED; + bmp280_t bmp280_dev; + bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; + while (1) { - while (!bmp280_init(¶ms, scl_pin, sda_pin)) { + while (!bmp280_init(&bmp280_dev, ¶ms)) { printf("BMP280 initialization failed\n"); vTaskDelay(1000 / portTICK_RATE_MS); } + bool bme280p = bmp280_dev.id == BME280_CHIP_ID; + printf("BMP280: found %s\n", bme280p ? "BME280" : "BMP280"); + while(1) { vTaskDelay(1000 / portTICK_RATE_MS); - if (!bmp280_force_measurement()) { + if (!bmp280_force_measurement(&bmp280_dev)) { printf("Failed initiating measurement\n"); break; } - while (bmp280_is_measuring()) {}; // wait for measurement to complete + // wait for measurement to complete + while (bmp280_is_measuring(&bmp280_dev)) {}; - if (!bmp280_read(&temperature, &pressure)) { + if (!bmp280_read_float(&bmp280_dev, &temperature, &pressure, &humidity)) { printf("Temperature/pressure reading failed\n"); break; } - printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); + if (bme280p) + printf(", Humidity: %.2f\n", humidity); + else + printf("\n"); } } } @@ -50,22 +62,33 @@ static void bmp280_task_forced(void *pvParameters) static void bmp280_task_normal(void *pvParameters) { bmp280_params_t params; - float pressure, temperature; + float pressure, temperature, humidity; bmp280_init_default_params(¶ms); + + bmp280_t bmp280_dev; + bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; + while (1) { - while (!bmp280_init(¶ms, scl_pin, sda_pin)) { + while (!bmp280_init(&bmp280_dev, ¶ms)) { printf("BMP280 initialization failed\n"); vTaskDelay(1000 / portTICK_RATE_MS); } + bool bme280p = bmp280_dev.id == BME280_CHIP_ID; + printf("BMP280: found %s\n", bme280p ? "BME280" : "BMP280"); + while(1) { vTaskDelay(1000 / portTICK_RATE_MS); - if (!bmp280_read(&temperature, &pressure)) { + if (!bmp280_read_float(&bmp280_dev, &temperature, &pressure, &humidity)) { printf("Temperature/pressure reading failed\n"); break; } - printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); + printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); + if (bme280p) + printf(", Humidity: %.2f\n", humidity); + else + printf("\n"); } } } @@ -80,6 +103,8 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); + i2c_init(scl_pin, sda_pin); + #ifdef MODE_FORCED xTaskCreate(bmp280_task_forced, (signed char *)"bmp280_task", 256, NULL, 2, NULL); #else diff --git a/extras/bmp280/README.md b/extras/bmp280/README.md index 64ffc1c..9faed88 100644 --- a/extras/bmp280/README.md +++ b/extras/bmp280/README.md @@ -1,10 +1,10 @@ -# Driver for BMP280 absolute barometric pressure sensor +# Driver for BMP280 and BME280 absolute barometric pressure sensors -The driver works only with BMP280 sensor. For BMP080/BMP180 there's a separate -driver. Even though BMP280 is a successor of BMP180 they are not compatible. -They have different registers and different operation modes. -BMP280 supports two ways of communication: spi and i2c. -This driver provides only i2c communication. +The driver works only with BMP280 and BME280 sensors. For BMP080/BMP180 there's +a separate driver. Even though BMP280 is a successor of BMP180 they are not +compatible. They have different registers and different operation modes. +BMP280 supports two ways of communication: spi and i2c. This driver provides +only i2c communication. The driver is written for [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos) framework and requires [i2c driver](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras/i2c) from it. @@ -18,17 +18,21 @@ from it. ## Usage -Connect BMP280 module to you ESP8266 module and specify SCL and SDA pins: +Connect BMP280 or BME280 module to you ESP8266 module and initialize the I2C SCL and SDA pins: ``` -const uint8_t scl_pin = 5; -const uint8_t sda_pin = 4; +const uint8_t scl_pin = 0; +const uint8_t sda_pin = 2; +i2c_init(scl_pin, sda_pin); + ``` -Pull up SDO pin of BMP280 in order to have address 0x77. -Or pull down SDO pin and change `#define BMP280_ADDRESS 0x77` to -`#define BMP280_ADDRESS 0x76`. Otherwise your sensor will not work. -By default address 0x77 is used, so SDO pin should be high. +Pull up SDO pin of BMP280 in order to have address 0x77 `BMP280_I2C_ADDRESS_1`. +Or pull down SDO pin for address 0x76 `BMP280_I2C_ADDRESS_0`. Otherwise your +sensor will not work. + +The BMP280 or BME280 are auto-detected at initialization based on the chip ID +and this ID is stored in the device descriptor. BMP280 supports two operation modes. @@ -48,22 +52,27 @@ whose time is defined by standby_time. ### Forced mode ``` -const uint8_t scl_pin = 5; -const uint8_t sda_pin = 4; bmp280_params_t params; -float pressure, temperature; +float pressure, temperature, humidity; bmp280_init_default_params(¶ms); params.mode = BMP280_MODE_FORCED; -bmp280_init(¶ms, scl_pin, sda_pin); -while (1) { - bmp280_force_measurement(); - while (bmp280_is_measuring()) {}; // wait for measurement to complete +bmp280_t bmp280_dev; +bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; +bmp280_init(&bmp280_dev, ¶ms); +bool bme280p = bmp280_dev.id == BME280_CHIP_ID; - bmp280_read(&temperature, &pressure); - printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); - vTaskDelay(1000 / portTICK_RATE_MS); +while(1) { + bmp280_force_measurement(&bmp280_dev)); + // wait for measurement to complete + while (bmp280_is_measuring(&bmp280_dev)) {}; + + bmp280_read_float(&bmp280_dev, &temperature, &pressure, &humidity); + printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); + if (bme280p) + printf(", Humidity: %.2f\n", humidity); + vTaskDelay(1000 / portTICK_RATE_MS); } ``` @@ -71,15 +80,23 @@ while (1) { ``` bmp280_params_t params; -float pressure, temperature; +float pressure, temperature, humidity; bmp280_init_default_params(¶ms); -bmp280_init(¶ms, scl_pin, sda_pin); -while (1) { - bmp280_read(&temperature, &pressure); - printf("Pressure: %.2f Pa, Temperature: %.2f C\n", pressure, temperature); - vTaskDelay(1000 / portTICK_RATE_MS); +bmp280_t bmp280_dev; +bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; +bmp280_init(&bmp280_dev, ¶ms); +bool bme280p = bmp280_dev.id == BME280_CHIP_ID; + +while(1) { + bmp280_read_float(&bmp280_dev, &temperature, &pressure, &humidity); + printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); + if (bme280p) + printf(", Humidity: %.2f\n", humidity); + else + printf("\n"); + vTaskDelay(1000 / portTICK_RATE_MS); } ``` diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index b880254..ab81dae 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -21,10 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#include #include "bmp280.h" #include "i2c/i2c.h" - #ifdef BMP280_DEBUG #include #define debug(fmt, ...) printf("%s" fmt "\n", "bmp280: ", ## __VA_ARGS__); @@ -46,116 +46,150 @@ #define BMP280_REG_CONFIG 0xF5 /* bits: 7-5 t_sb; 4-2 filter; 0 spi3w_en */ #define BMP280_REG_CTRL 0xF4 /* bits: 7-5 osrs_t; 4-2 osrs_p; 1-0 mode */ #define BMP280_REG_STATUS 0xF3 /* bits: 3 measuring; 0 im_update */ +#define BMP280_REG_CTRL_HUM 0xF2 /* bits: 2-0 osrs_h; */ #define BMP280_REG_RESET 0xE0 #define BMP280_REG_ID 0xD0 #define BMP280_REG_CALIB 0x88 +#define BMP280_REG_HUM_CALIB 0x88 -#define BMP280_CHIP_ID 0x58 /* BMP280 has chip-id 0x58 */ #define BMP280_RESET_VALUE 0xB6 -typedef struct __attribute__((packed)) { - uint16_t dig_T1; - int16_t dig_T2; - int16_t dig_T3; - uint16_t dig_P1; - int16_t dig_P2; - int16_t dig_P3; - int16_t dig_P4; - int16_t dig_P5; - int16_t dig_P6; - int16_t dig_P7; - int16_t dig_P8; - int16_t dig_P9; -} BMP280_Calib; - -static BMP280_Calib calib_data; void bmp280_init_default_params(bmp280_params_t *params) { params->mode = BMP280_MODE_NORMAL; params->filter = BMP280_FILTER_OFF; params->oversampling = BMP280_STANDARD; + params->oversampling_humidity = BMP280_STANDARD; params->standby = BMP280_STANDBY_250; } -static uint8_t read_register8(uint8_t addr) +static bool read_register16(uint8_t i2c_addr, uint8_t addr, uint16_t *value) { - uint8_t r = 0; - if (!i2c_slave_read(BMP280_ADDRESS, addr, &r, 1)) { - r = 0; - } - return r; -} - -/** - * Even though value is signed the actual value is always positive. - * So, no need to take care of sign bit. - */ -static bool read_register24(uint8_t addr, int32_t *value) -{ - uint8_t d[] = {0, 0, 0}; - if (i2c_slave_read(BMP280_ADDRESS, addr, d, sizeof(d))) { - *value = d[0]; - *value <<= 8; - *value |= d[1]; - *value <<= 4; - *value |= d[2]>>4; + uint8_t d[] = {0, 0}; + if (i2c_slave_read(i2c_addr, addr, d, sizeof(d))) { + *value = d[0] | (d[1] << 8); return true; } return false; } -static bool check_chip_id() +static bool read_calibration_data(bmp280_t *dev) { - return (read_register8(BMP280_REG_ID)==BMP280_CHIP_ID); -} + uint8_t i2c_addr = dev->i2c_addr; -static bool read_calibration_data() -{ - if (!i2c_slave_read(BMP280_ADDRESS, BMP280_REG_CALIB, - (uint8_t*)&calib_data, sizeof(calib_data))) { - return false; + if (read_register16(i2c_addr, 0x88, &dev->dig_T1) && + read_register16(i2c_addr, 0x8a, (uint16_t *)&dev->dig_T2) && + read_register16(i2c_addr, 0x8c, (uint16_t *)&dev->dig_T3) && + read_register16(i2c_addr, 0x8e, &dev->dig_P1) && + read_register16(i2c_addr, 0x90, (uint16_t *)&dev->dig_P2) && + read_register16(i2c_addr, 0x92, (uint16_t *)&dev->dig_P3) && + read_register16(i2c_addr, 0x94, (uint16_t *)&dev->dig_P4) && + read_register16(i2c_addr, 0x96, (uint16_t *)&dev->dig_P5) && + read_register16(i2c_addr, 0x98, (uint16_t *)&dev->dig_P6) && + read_register16(i2c_addr, 0x9a, (uint16_t *)&dev->dig_P7) && + read_register16(i2c_addr, 0x9c, (uint16_t *)&dev->dig_P8) && + read_register16(i2c_addr, 0x9e, (uint16_t *)&dev->dig_P9)) { + + debug("Calibration data received:"); + debug("dig_T1=%d", dev->dig_T1); + debug("dig_T2=%d", dev->dig_T2); + debug("dig_T3=%d", dev->dig_T3); + debug("dig_P1=%d", dev->dig_P1); + debug("dig_P2=%d", dev->dig_P2); + debug("dig_P3=%d", dev->dig_P3); + debug("dig_P4=%d", dev->dig_P4); + debug("dig_P5=%d", dev->dig_P5); + debug("dig_P6=%d", dev->dig_P6); + debug("dig_P7=%d", dev->dig_P7); + debug("dig_P8=%d", dev->dig_P8); + debug("dig_P9=%d", dev->dig_P9); + + return true; } - debug("Calibration data received:"); - debug("dig_T1=%d", calib_data.dig_T1); - debug("dig_T2=%d", calib_data.dig_T2); - debug("dig_T3=%d", calib_data.dig_T3); - debug("dig_P1=%d", calib_data.dig_P1); - debug("dig_P2=%d", calib_data.dig_P2); - debug("dig_P3=%d", calib_data.dig_P3); - debug("dig_P4=%d", calib_data.dig_P4); - debug("dig_P5=%d", calib_data.dig_P5); - debug("dig_P6=%d", calib_data.dig_P6); - debug("dig_P7=%d", calib_data.dig_P7); - debug("dig_P8=%d", calib_data.dig_P8); - debug("dig_P9=%d", calib_data.dig_P9); - return true; + + return false; } -static bool write_register8(uint8_t addr, uint8_t value) +static bool read_hum_calibration_data(bmp280_t *dev) +{ + uint8_t i2c_addr = dev->i2c_addr; + uint16_t h4, h5; + + if (i2c_slave_read(i2c_addr, 0xa1, &dev->dig_H1, 1) && + read_register16(i2c_addr, 0xe1, (uint16_t *)&dev->dig_H2) && + i2c_slave_read(i2c_addr, 0xe3, &dev->dig_H3, 1) && + read_register16(i2c_addr, 0xe4, &h4) && + read_register16(i2c_addr, 0xe5, &h5) && + i2c_slave_read(i2c_addr, 0xe7, (uint8_t *)&dev->dig_H6, 1)) { + dev->dig_H4 = (h4 & 0x00ff) << 4 | (h4 & 0x0f00) >> 8; + dev->dig_H5 = h5 >> 4; + debug("Calibration data received:"); + debug("dig_H1=%d", dev->dig_H1); + debug("dig_H2=%d", dev->dig_H2); + debug("dig_H3=%d", dev->dig_H3); + debug("dig_H4=%d", dev->dig_H4); + debug("dig_H5=%d", dev->dig_H5); + debug("dig_H6=%d", dev->dig_H6); + return true; + } + + return false; +} + +static bool write_register8(uint8_t i2c_addr, uint8_t addr, uint8_t value) { uint8_t d[] = {addr, value}; - return i2c_slave_write(BMP280_ADDRESS, d, 2); + return i2c_slave_write(i2c_addr, d, 2); } -bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) +bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) { - i2c_init(scl_pin, sda_pin); - if (!check_chip_id()) { - debug("Sensor not found or wrong sensor version"); + uint8_t i2c_addr = dev->i2c_addr; + + if (i2c_addr != BMP280_I2C_ADDRESS_0 && i2c_addr != BMP280_I2C_ADDRESS_1) { + debug("Invalid I2C address"); return false; } - if (!read_calibration_data()) { + if (!i2c_slave_read(i2c_addr, BMP280_REG_ID, &dev->id, 1)) { + debug("Sensor not found"); + return false; + } + + if (dev->id != BMP280_CHIP_ID && dev->id != BME280_CHIP_ID) { + debug("Sensor wrong version"); + return false; + } + + // Soft reset. + if (!write_register8(i2c_addr, BMP280_REG_RESET, BMP280_RESET_VALUE)) { + debug("Failed resetting sensor"); + return false; + } + + // Wait until finished copying over the NVP data. + while (1) { + uint8_t status; + if (i2c_slave_read(i2c_addr, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) + break; + } + + if (!read_calibration_data(dev)) { debug("Failed to read calibration data"); return false; } + if (dev->id == BME280_CHIP_ID && !read_hum_calibration_data(dev)) { + debug("Failed to read humidity calibration data"); + return false; + } + uint8_t config = (params->standby << 5) | (params->filter << 2); debug("Writing config reg=%x", config); - if (!write_register8(BMP280_REG_CONFIG, config)) { + if (!write_register8(i2c_addr, BMP280_REG_CONFIG, config)) { debug("Failed configuring sensor"); return false; } @@ -170,31 +204,47 @@ bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin) uint8_t ctrl = (oversampling_temp << 5) | (params->oversampling << 2) | (params->mode); + + if (dev->id == BME280_CHIP_ID) { + // Write crtl hum reg first, only active after write to BMP280_REG_CTRL. + uint8_t ctrl_hum = params->oversampling_humidity; + debug("Writing ctrl hum reg=%x", ctrl_hum); + if (!write_register8(i2c_addr, BMP280_REG_CTRL_HUM, ctrl_hum)) { + debug("Failed controlling sensor"); + return false; + } + } + debug("Writing ctrl reg=%x", ctrl); - if (!write_register8(BMP280_REG_CTRL, ctrl)) { + if (!write_register8(i2c_addr, BMP280_REG_CTRL, ctrl)) { debug("Failed controlling sensor"); return false; } + return true; } -bool bmp280_force_measurement() +bool bmp280_force_measurement(bmp280_t *dev) { - uint8_t ctrl = read_register8(BMP280_REG_CTRL); + uint8_t ctrl; + if (!i2c_slave_read(dev->i2c_addr, BMP280_REG_CTRL, &ctrl, 1)) + return false; ctrl &= ~0b11; // clear two lower bits ctrl |= BMP280_MODE_FORCED; debug("Writing ctrl reg=%x", ctrl); - if (!write_register8(BMP280_REG_CTRL, ctrl)) { + if (!write_register8(dev->i2c_addr, BMP280_REG_CTRL, ctrl)) { debug("Failed starting forced mode"); return false; } return true; } -bool bmp280_is_measuring() +bool bmp280_is_measuring(bmp280_t *dev) { - uint8_t status = read_register8(BMP280_REG_STATUS); - if (status & (1<<3)) { + uint8_t status; + if (!i2c_slave_read(dev->i2c_addr, BMP280_REG_STATUS, &status, 1)) + return false; + if (status & (1 << 3)) { debug("Status: measuring"); return true; } @@ -207,82 +257,130 @@ bool bmp280_is_measuring() * * Return value is in degrees Celsius. */ -static inline float compensate_temperature(int32_t raw_temp, int32_t *fine_temp) +static inline int32_t compensate_temperature(bmp280_t *dev, + int32_t adc_temp, int32_t *fine_temp) { - int32_t var1, var2, T; + int32_t var1, var2; - var1 = ((((raw_temp>>3) - ((int32_t)calib_data.dig_T1<<1))) - * ((int32_t)calib_data.dig_T2)) >> 11; - - var2 = (((((raw_temp>>4) - ((int32_t)calib_data.dig_T1)) - * ((raw_temp>>4) - ((int32_t)calib_data.dig_T1))) >> 12) - * ((int32_t)calib_data.dig_T3)) >> 14; + var1 = ((((adc_temp >> 3) - ((int32_t)dev->dig_T1 << 1))) + * (int32_t)dev->dig_T2) >> 11; + var2 = (((((adc_temp >> 4) - (int32_t)dev->dig_T1) + * ((adc_temp >> 4) - (int32_t)dev->dig_T1)) >> 12) + * (int32_t)dev->dig_T3) >> 14; *fine_temp = var1 + var2; - T = (*fine_temp * 5 + 128) >> 8; - return (float)T/100; + return (*fine_temp * 5 + 128) >> 8; } /** * Compensation algorithm is taken from BMP280 datasheet. * - * Return value is in Pa. + * Return value is in Pa, 24 integer bits and 8 fractional bits. */ -static inline float compensate_pressure(int32_t raw_press, int32_t fine_temp) +static inline uint32_t compensate_pressure(bmp280_t *dev, + int32_t adc_press, int32_t fine_temp) { int64_t var1, var2, p; - var1 = ((int64_t)fine_temp) - 128000; - var2 = var1 * var1 * (int64_t)calib_data.dig_P6; - var2 = var2 + ((var1*(int64_t)calib_data.dig_P5)<<17); - var2 = var2 + (((int64_t)calib_data.dig_P4)<<35); - var1 = ((var1 * var1 * (int64_t)calib_data.dig_P3)>>8) + - ((var1 * (int64_t)calib_data.dig_P2)<<12); - var1 = (((((int64_t)1)<<47)+var1))*((int64_t)calib_data.dig_P1)>>33; + var1 = (int64_t)fine_temp - 128000; + var2 = var1 * var1 * (int64_t)dev->dig_P6; + var2 = var2 + ((var1 * (int64_t)dev->dig_P5) << 17); + var2 = var2 + (((int64_t)dev->dig_P4) << 35); + var1 = ((var1 * var1 * (int64_t)dev->dig_P3) >> 8) + + ((var1 * (int64_t)dev->dig_P2) << 12); + var1 = (((int64_t)1 << 47) + var1) * ((int64_t)dev->dig_P1) >> 33; if (var1 == 0) { return 0; // avoid exception caused by division by zero } - p = 1048576 - raw_press; - p = (((p<<31) - var2)*3125) / var1; - var1 = (((int64_t)calib_data.dig_P9) * (p>>13) * (p>>13)) >> 25; - var2 = (((int64_t)calib_data.dig_P8) * p) >> 19; + p = 1048576 - adc_press; + p = (((p << 31) - var2) * 3125) / var1; + var1 = ((int64_t)dev->dig_P9 * (p >> 13) * (p >> 13)) >> 25; + var2 = ((int64_t)dev->dig_P8 * p) >> 19; - p = ((p + var1 + var2) >> 8) + (((int64_t)calib_data.dig_P7)<<4); - return (float)p/256; + p = ((p + var1 + var2) >> 8) + ((int64_t)dev->dig_P7 << 4); + return p; } -bool bmp280_read(float *temperature, float *pressure) +/** + * Compensation algorithm is taken from BME280 datasheet. + * + * Return value is in Pa, 24 integer bits and 8 fractional bits. + */ +static inline uint32_t compensate_humidity(bmp280_t *dev, + int32_t adc_hum, int32_t fine_temp) { - int32_t raw_pressure; - int32_t raw_temp; + int32_t v_x1_u32r; + + v_x1_u32r = fine_temp - (int32_t)76800; + v_x1_u32r = ((((adc_hum << 14) - ((int32_t)dev->dig_H4 << 20) - + ((int32_t)dev->dig_H5 * v_x1_u32r)) + + (int32_t)16384) >> 15) * + (((((((v_x1_u32r * (int32_t)dev->dig_H6) >> 10) * + (((v_x1_u32r * (int32_t)dev->dig_H3) >> 11) + + (int32_t)32768)) >> 10) + (int32_t)2097152) * + (int32_t)dev->dig_H2 + 8192) >> 14); + v_x1_u32r = v_x1_u32r - (((((v_x1_u32r >> 15) * (v_x1_u32r >> 15)) >> 7) * + (int32_t)dev->dig_H1) >> 4); + v_x1_u32r = v_x1_u32r < 0 ? 0 : v_x1_u32r; + v_x1_u32r = v_x1_u32r > 419430400 ? 419430400 : v_x1_u32r; + return v_x1_u32r >> 12; +} + +bool bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, + uint32_t *pressure, uint32_t *humidity) +{ + int32_t adc_pressure; + int32_t adc_temp; + uint8_t data[8]; + + // Only the BME280 supports reading the humidity. + if (dev->id != BME280_CHIP_ID) { + if (humidity) + *humidity = 0; + humidity = NULL; + } + + // Need to read in one sequence to ensure they match. + size_t size = humidity ? 8 : 6; + if (!i2c_slave_read(dev->i2c_addr, 0xf7, data, size)) { + debug("Failed reading"); + return false; + } + + adc_pressure = data[0] << 12 | data[1] << 4 | data[2] >> 4; + adc_temp = data[3] << 12 | data[4] << 4 | data[5] >> 4; + debug("ADC temperature: %d", adc_temp); + debug("ADC pressure: %d", adc_pressure); + int32_t fine_temp; + *temperature = compensate_temperature(dev, adc_temp, &fine_temp); + *pressure = compensate_pressure(dev, adc_pressure, fine_temp); - if (!read_register24(BMP280_REG_TEMP, &raw_temp)) { - debug("Failed reading temperature"); - return false; + if (humidity) { + int32_t adc_humidity = data[6] << 8 | data[7]; + debug("ADC humidity: %d", adc_humidity); + *humidity = compensate_humidity(dev, adc_humidity, fine_temp); } - if (!read_register24(BMP280_REG_PRESSURE, &raw_pressure)) { - debug("Failed reading pressure"); - return false; - } - - debug("Raw temperature: %d", raw_temp); - debug("Raw pressure: %d", raw_pressure); - - *temperature = compensate_temperature(raw_temp, &fine_temp); - *pressure = compensate_pressure(raw_pressure, fine_temp); - return true; } -bool bmp280_soft_reset() +bool bmp280_read_float(bmp280_t *dev, float *temperature, + float *pressure, float *humidity) { - if (!write_register8(BMP280_REG_RESET, BMP280_RESET_VALUE)) { - debug("Failed resetting sensor"); - return false; + int32_t fixed_temperature; + uint32_t fixed_pressure; + uint32_t fixed_humidity; + if (bmp280_read_fixed(dev, &fixed_temperature, &fixed_pressure, + humidity ? &fixed_humidity : NULL)) { + *temperature = (float)fixed_temperature/100; + *pressure = (float)fixed_pressure/256; + if (humidity) + *humidity = (float)fixed_humidity/1024; + return true; } - return true; + + return false; } diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h index 9307932..8a43ad0 100644 --- a/extras/bmp280/bmp280.h +++ b/extras/bmp280/bmp280.h @@ -33,10 +33,14 @@ // #define BMP280_DEBUG /** - * BMP280 address is 0x77 if SDO pin is high, - * Address is 0x76 if SDO pin is low. + * BMP280 or BME280 address is 0x77 if SDO pin is high, and is 0x76 if + * SDO pin is low. */ -#define BMP280_ADDRESS 0x77 +#define BMP280_I2C_ADDRESS_0 0x76 +#define BMP280_I2C_ADDRESS_1 0x77 + +#define BMP280_CHIP_ID 0x58 /* BMP280 has chip-id 0x58 */ +#define BME280_CHIP_ID 0x60 /* BME280 has chip-id 0x60 */ /** * Mode of BMP280 module operation. @@ -78,8 +82,8 @@ typedef enum { BMP280_STANDBY_250 = 3, /* stand by time 250ms */ BMP280_STANDBY_500 = 4, /* stand by time 500ms */ BMP280_STANDBY_1000 = 5, /* stand by time 1s */ - BMP280_STANDBY_2000 = 6, /* stand by time 2s */ - BMP280_STANDBY_4000 = 7, /* stand by time 4s */ + BMP280_STANDBY_2000 = 6, /* stand by time 2s BMP280, 10ms BME280 */ + BMP280_STANDBY_4000 = 7, /* stand by time 4s BMP280, 20ms BME280 */ } BMP280_StandbyTime; /** @@ -90,10 +94,37 @@ typedef struct { BMP280_Mode mode; BMP280_Filter filter; BMP280_Oversampling oversampling; // pressure oversampling + BMP280_Oversampling oversampling_humidity; BMP280_StandbyTime standby; } bmp280_params_t; +typedef struct { + uint16_t dig_T1; + int16_t dig_T2; + int16_t dig_T3; + uint16_t dig_P1; + int16_t dig_P2; + int16_t dig_P3; + int16_t dig_P4; + int16_t dig_P5; + int16_t dig_P6; + int16_t dig_P7; + int16_t dig_P8; + int16_t dig_P9; + + /* Humidity compensation for BME280 */ + uint8_t dig_H1; + int16_t dig_H2; + uint8_t dig_H3; + int16_t dig_H4; + int16_t dig_H5; + int8_t dig_H6; + + uint8_t i2c_addr; /* I2C address. */ + uint8_t id; /* Chip ID */ +} bmp280_t; + /** * Initialize default parameters. * Default configuration: @@ -105,33 +136,52 @@ typedef struct { void bmp280_init_default_params(bmp280_params_t *params); /** - * Initialize BMP280 module. + * Initialize BMP280 module, probes for the device, soft resets the device, + * reads the calibration constants, and configures the device using the supplied + * parameters. Returns true on success otherwise false. + * + * The I2C address is assumed to have been initialized in the dev, and + * may be either BMP280_I2C_ADDRESS_0 or BMP280_I2C_ADDRESS_1. If the I2C + * address is unknown then try initializing each in turn. + * + * This may be called again to soft reset the device and initialize it again. */ -bool bmp280_init(bmp280_params_t *params, uint8_t scl_pin, uint8_t sda_pin); +bool bmp280_init(bmp280_t *dev, bmp280_params_t *params); /** * Start measurement in forced mode. * The module remains in forced mode after this call. * Do not call this method in normal mode. */ -bool bmp280_force_measurement(); +bool bmp280_force_measurement(bmp280_t *dev); /** * Check if BMP280 is busy with measuring temperature/pressure. * Return true if BMP280 is busy. */ -bool bmp280_is_measuring(); +bool bmp280_is_measuring(bmp280_t *dev); /** - * Read compensated temperature and pressure data. - * Temperature in degrees Celsius. - * Pressure in Pascals. + * Read compensated temperature and pressure data: + * + * Temperature in degrees Celsius times 100. + * + * Pressure in Pascals in fixed point 24 bit integer 8 bit fraction format. + * + * Humidity is optional and only read for the BME280, in percent relative + * humidity as a fixed point 22 bit interger and 10 bit fraction format. */ -bool bmp280_read(float *temperature, float *pressure); +bool bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, + uint32_t *pressure, uint32_t *humidity); /** - * Restart BMP280 module. + * Read compensated temperature and pressure data: + * Temperature in degrees Celsius. + * Pressure in Pascals. + * Humidity is optional and only read for the BME280, in percent relative + * humidity. */ -bool bmp280_soft_reset(); +bool bmp280_read_float(bmp280_t *dev, float *temperature, + float *pressure, float *humidity); #endif // __BMP280_H__ From 40dc3bf945ce8dc2a04547efcc6b29e1a56f220c Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Thu, 18 Aug 2016 12:07:46 +0200 Subject: [PATCH 061/349] Sysparam by @foogod (#180) * Sysparam implementation sysparam improvements Mostly done, a few minor cleanups left. Add sysparam_editor example Sysparam code cleanup Add documentation to sysparam.h Fix up sysparam.h docs Added a couple more debug statements Fix potential memory leak if realloc() fails Major sysparam overhaul Add sysparam_get_info function Add sysparam initialization to app_main.c * Fixed warnings, added license --- core/app_main.c | 17 + core/include/esp/types.h | 1 + core/include/sysparam.h | 419 ++++++++ core/sysparam.c | 1056 ++++++++++++++++++++ examples/sysparam_editor/Makefile | 14 + examples/sysparam_editor/sysparam_editor.c | 233 +++++ 6 files changed, 1740 insertions(+) create mode 100644 core/include/sysparam.h create mode 100644 core/sysparam.c create mode 100644 examples/sysparam_editor/Makefile create mode 100644 examples/sysparam_editor/sysparam_editor.c diff --git a/core/app_main.c b/core/app_main.c index 43fed17..ed78025 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -28,6 +28,7 @@ #include "espressif/phy_info.h" #include "sdk_internal.h" #include "esplibs/libmain.h" +#include "sysparam.h" /* This is not declared in any header file (but arguably should be) */ @@ -141,6 +142,8 @@ void IRAM sdk_user_start(void) { uint32_t cksum_len; uint32_t cksum_value; uint32_t ic_flash_addr; + uint32_t sysparam_addr; + sysparam_status_t status; SPI(0).USER0 |= SPI_USER0_CS_SETUP; sdk_SPIRead(0, buf32, 4); @@ -206,6 +209,20 @@ void IRAM sdk_user_start(void) { } memcpy(&sdk_g_ic.s, buf32, sizeof(struct sdk_g_ic_saved_st)); + // By default, put the sysparam region just below the config sectors at the + // top of the flash space + sysparam_addr = flash_size - (4 + DEFAULT_SYSPARAM_SECTORS) * sdk_flashchip.sector_size; + status = sysparam_init(sysparam_addr, flash_size); + if (status == SYSPARAM_NOTFOUND) { + status = sysparam_create_area(sysparam_addr, DEFAULT_SYSPARAM_SECTORS, false); + if (status == SYSPARAM_OK) { + status = sysparam_init(sysparam_addr, 0); + } + } + if (status != SYSPARAM_OK) { + printf("WARNING: Could not initialize sysparams (%d)!\n", status); + } + user_start_phase2(); } diff --git a/core/include/esp/types.h b/core/include/esp/types.h index cb816da..53c4cd4 100644 --- a/core/include/esp/types.h +++ b/core/include/esp/types.h @@ -3,6 +3,7 @@ #include #include +#include typedef volatile uint32_t *esp_reg_t; diff --git a/core/include/sysparam.h b/core/include/sysparam.h new file mode 100644 index 0000000..2894302 --- /dev/null +++ b/core/include/sysparam.h @@ -0,0 +1,419 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2016 Alex Stewart + * BSD Licensed as described in the file LICENSE + */ + +#ifndef _SYSPARAM_H_ +#define _SYSPARAM_H_ + +#include + +#ifndef DEFAULT_SYSPARAM_SECTORS +#define DEFAULT_SYSPARAM_SECTORS 4 +#endif + +/** @file sysparam.h + * + * Read/write "system parameters" to persistent flash. + * + * System parameters are stored as key/value pairs. Keys are string values + * between 1 and 65535 characters long. Values can be any data up to 65535 + * bytes in length (but are most commonly also text strings). Up to 126 key/ + * value pairs can be stored at a time. + * + * Keys and values are stored in flash using a progressive list structure + * which allows space-efficient storage and minimizes flash erase cycles, + * improving write speed and increasing the lifespan of the flash memory. + */ + +/** Status codes returned by all sysparam functions + * + * Error codes (`SYSPARAM_ERR_*`) all have values less than zero, and can be + * returned by any function. Values greater than zero are non-error status + * codes which may be returned by some functions to indicate various results. + */ +typedef enum { + SYSPARAM_OK = 0, ///< Success + SYSPARAM_NOTFOUND = 1, ///< Entry not found matching criteria + SYSPARAM_PARSEFAILED = 2, ///< Unable to parse retrieved value + SYSPARAM_ERR_NOINIT = -1, ///< sysparam_init() must be called first + SYSPARAM_ERR_BADVALUE = -2, ///< One or more arguments were invalid + SYSPARAM_ERR_FULL = -3, ///< No space left in sysparam area (or too many keys in use) + SYSPARAM_ERR_IO = -4, ///< I/O error reading/writing flash + SYSPARAM_ERR_CORRUPT = -5, ///< Sysparam region has bad/corrupted data + SYSPARAM_ERR_NOMEM = -6, ///< Unable to allocate memory +} sysparam_status_t; + +/** Structure used by sysparam_iter_next() to keep track of its current state + * and return its results. This should be initialized by calling + * sysparam_iter_start() and cleaned up afterward by calling + * sysparam_iter_end(). + */ +typedef struct { + char *key; + uint8_t *value; + size_t key_len; + size_t value_len; + bool binary; + size_t bufsize; + struct sysparam_context *ctx; +} sysparam_iter_t; + +/** Initialize sysparam and set up the current area of flash to use. + * + * This must be called (and return successfully) before any other sysparam + * routines (except sysparam_create_area()) are called. + * + * This should normally be taken care of automatically on boot by the OS + * startup routines. It may be necessary to call it specially, however, if + * the normal initialization failed, or after calling sysparam_create_area() + * to reformat the current area. + * + * This routine will start at `base_addr` and scan all sectors up to + * `top_addr` looking for a valid sysparam area. If `top_addr` is zero (or + * equal to `base_addr`, then only the sector at `base_addr` will be checked. + * + * @param[in] base_addr The flash address to start looking for the start of + * the (already present) sysparam area + * @param[in] top_addr The flash address to stop looking for the sysparam + * area + * + * @retval ::SYSPARAM_OK Initialization successful. + * @retval ::SYSPARAM_NOTFOUND The specified address does not appear to + * contain a sysparam area. It may be + * necessary to call sysparam_create_area() to + * create one first. + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr); + +/** Create a new sysparam area in flash at the specified address. + * + * By default, this routine will scan the specified area to make sure it + * appears to be empty (i.e. all 0xFF bytes) before setting it up as a new + * sysparam area. If there appears to be other data already present, it will + * not overwrite it. Setting `force` to `true` will cause it to clobber any + * existing data instead. + * + * @param[in] base_addr The flash address at which it should start + * (must be a multiple of the sector size) + * @param[in] num_sectors The number of flash sectors to use for the sysparam + * area. This should be an even number >= 2. Note + * that the actual amount of useable parameter space + * will be roughly half this amount. + * @param[in] force Proceed even if the space does not appear to be empty + * + * @retval ::SYSPARAM_OK Area (re)created successfully. + * @retval ::SYSPARAM_NOTFOUND `force` was not specified, and the area at + * `base_addr` appears to have other data. No + * action taken. + * @retval ::SYSPARAM_ERR_BADVALUE The `num_sectors` value was not even (or + * was zero) + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + * + * Note: This routine can create a sysparam area in another location than the + * one currently being used, but does not change which area is currently used + * (you will need to call sysparam_init() again if you want to do that). If + * you reformat the area currently being used, you will also need to call + * sysparam_init() again afterward before you will be able to continue using + * it. + */ +sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors, bool force); + +/** Get the start address and size of the currently active sysparam area + * + * Fills in `base_addr` and `num_sectors` with the location and size of the + * currently active sysparam area. The returned values correspond to the + * arguments passed to the sysparam_create_area() call when the area was + * originally created. + * + * @param[out] base_addr The flash address at which the sysparam area starts + * @param[out] num_sectors The number of flash sectors used by the sysparam + * area + * + * @retval ::SYSPARAM_OK Completed successfully + * @retval ::SYSPARAM_ERR_NOINIT No current sysparam area is active + */ +sysparam_status_t sysparam_get_info(uint32_t *base_addr, uint32_t *num_sectors); + +/** Get the value associated with a key + * + * This is the core "get value" function. It will retrieve the value for the + * specified key in a freshly malloc()'d buffer and return it. Raw values can + * contain any data (including zero bytes), so the `actual_length` parameter + * should be used to determine the length of the data in the buffer. + * + * It is up to the caller to free() the returned buffer when done using it. + * + * Note: If the status result is anything other than ::SYSPARAM_OK, the value + * in `destptr` is not changed. This means it is possible to set a default + * value before calling this function which will be left as-is if a sysparam + * value could not be successfully read. + * + * @param[in] key Key name (zero-terminated string) + * @param[out] destptr Pointer to a location to hold the address of the + * returned data buffer + * @param[out] actual_length Pointer to a location to hold the length of the + * returned data buffer (may be NULL) + * @param[out] is_binary Pointer to a bool to hold whether the returned + * value is "binary" or not (may be NULL) + * + * @retval ::SYSPARAM_OK Value successfully retrieved. + * @retval ::SYSPARAM_NOTFOUND Key/value not found. No buffer returned. + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t *actual_length, bool *is_binary); + +/** Get the value associate with a key (static buffers only) + * + * This performs the same function as sysparam_get_data() but without + * performing any memory allocations. It can thus be used before the heap has + * been configured or in other cases where using the heap would be a problem + * (i.e. in an OOM handler, etc). It requires that the caller pass in a + * suitably sized buffer for the value to be read (if the supplied buffer is + * not large enough, the returned value will be truncated and the full + * required length will be returned in `actual_length`). + * + * NOTE: In addition to being large enough for the value, the supplied buffer + * must also be at least as large as the length of the key being requested. + * If it is not, an error will be returned. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] buffer Pointer to a buffer to hold the returned value + * @param[in] buffer_size Length of the supplied buffer in bytes + * @param[out] actual_length pointer to a location to hold the actual length + * of the data which was associated with the key + * (may be NULL). + * @param[out] is_binary Pointer to a bool to hold whether the returned + * value is "binary" or not (may be NULL) + * + * @retval ::SYSPARAM_OK Value successfully retrieved + * @retval ::SYSPARAM_NOTFOUND Key/value not found + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM The supplied buffer is too small + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *buffer, size_t buffer_size, size_t *actual_length, bool *is_binary); + +/** Get the string value associated with a key + * + * This routine can be used if you know that the value in a key will (or at + * least should) be a string. It will return a zero-terminated char buffer + * containing the value retrieved. + * + * It is up to the caller to free() the returned buffer when done using it. + * + * Note: If the status result is anything other than ::SYSPARAM_OK, the value + * in `destptr` is not changed. This means it is possible to set a default + * value before calling this function which will be left as-is if a sysparam + * value could not be successfully read. + * + * @param[in] key Key name (zero-terminated string) + * @param[out] destptr Pointer to a location to hold the address of the + * returned data buffer + * + * @retval ::SYSPARAM_OK Value successfully retrieved. + * @retval ::SYSPARAM_NOTFOUND Key/value not found. + * @retval ::SYSPARAM_PARSEFAILED The retrieved value was a binary value + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_string(const char *key, char **destptr); + +/** Get the int32_t value associated with a key + * + * This routine can be used if you know that the value in a key will (or at + * least should) be an integer value. It will parse the stored data as a + * number (in standard decimal or "0x" hex notation) and return the result. + * + * Note: If the status result is anything other than ::SYSPARAM_OK, the value + * in `result` is not changed. This means it is possible to set a default + * value before calling this function which will be left as-is if a sysparam + * value could not be successfully read. + * + * @param[in] key Key name (zero-terminated string) + * @param[out] result Pointer to a location to hold returned integer value + * + * @retval ::SYSPARAM_OK Value successfully retrieved. + * @retval ::SYSPARAM_NOTFOUND Key/value not found. + * @retval ::SYSPARAM_PARSEFAILED The retrieved value could not be parsed as + * an integer. + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_int(const char *key, int32_t *result); + +/** Get the boolean value associated with a key + * + * This routine can be used if you know that the value in a key will (or at + * least should) be a boolean setting. It will read the specified value as a + * text string and attempt to parse it as a boolean value. + * + * It will recognize the following (case-insensitive) strings: + * * True: "yes", "y", "true", "t", "1" + * * False: "no", "n", "false", "f", "0" + * + * Note: If the status result is anything other than ::SYSPARAM_OK, the value + * in `result` is not changed. This means it is possible to set a default + * value before calling this function which will be left as-is if a sysparam + * value could not be successfully read. + * + * @param[in] key Key name (zero-terminated string) + * @param[out] result Pointer to a location to hold returned boolean value + * + * @retval ::SYSPARAM_OK Value successfully retrieved. + * @retval ::SYSPARAM_NOTFOUND Key/value not found. + * @retval ::SYSPARAM_PARSEFAILED The retrieved value could not be parsed as a + * boolean setting. + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_bool(const char *key, bool *result); + +/** Set the value associated with a key + * + * The supplied value can be any data, up to 255 bytes in length. If `value` + * is NULL or `value_len` is 0, this is treated as a request to delete any + * current entry matching `key`. + * + * If `binary` is true, the data will be considered binary (unprintable) data, + * and this will be annotated in the saved entry. This does not affect the + * saving or loading process in any way, but may be used by some applications + * to (for example) print binary data differently than text entries when + * printing parameter values. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] value Pointer to a buffer containing the value data + * @param[in] value_len Length of the data in the buffer + * @param[in] binary Whether the data should be considered "binary" + * (unprintable) data + * + * @retval ::SYSPARAM_OK Value successfully set. + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_BADVALUE Either an empty key was provided or + * value_len is too large + * @retval ::SYSPARAM_ERR_FULL No space left in sysparam area + * (or too many keys in use) + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_t value_len, bool binary); + +/** Set a key's value from a string + * + * Performs the same function as sysparam_set_data(), but accepts a + * zero-terminated string value instead. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] value Value to set (zero-terminated string) + * + * @retval ::SYSPARAM_OK Value successfully set. + * @retval ::SYSPARAM_ERR_BADVALUE Either an empty key was provided or the + * length of `value` is too large + * @retval ::SYSPARAM_ERR_FULL No space left in sysparam area + * (or too many keys in use) + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_set_string(const char *key, const char *value); + +/** Set a key's value as a number + * + * Converts an int32_t value to a decimal number and writes it to the + * specified key. This does the inverse of the sysparam_get_int() + * function. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] value Value to set + * + * @retval ::SYSPARAM_OK Value successfully set. + * @retval ::SYSPARAM_ERR_BADVALUE An empty key was provided. + * @retval ::SYSPARAM_ERR_FULL No space left in sysparam area + * (or too many keys in use) + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_set_int(const char *key, int32_t value); + +/** Set a key's value as a boolean (yes/no) string + * + * Converts a bool value to a corresponding text string and writes it to the + * specified key. This does the inverse of the sysparam_get_bool() + * function. + * + * Note that if the key already contains a value which parses to the same + * boolean (true/false) value, it is left unchanged. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] value Value to set + * + * @retval ::SYSPARAM_OK Value successfully set. + * @retval ::SYSPARAM_ERR_BADVALUE An empty key was provided. + * @retval ::SYSPARAM_ERR_FULL No space left in sysparam area + * (or too many keys in use) + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_set_bool(const char *key, bool value); + +/** Begin iterating through all key/value pairs + * + * This function initializes a sysparam_iter_t structure to prepare it for + * iterating through the list of key/value pairs using sysparam_iter_next(). + * This does not fetch any items (the first successive call to + * sysparam_iter_next() will return the first key/value in the list). + * + * NOTE: When done, you must call sysparam_iter_end() to free the resources + * associated with `iter`, or you will leak memory. + * + * @param[in] iter A pointer to a sysparam_iter_t structure to initialize + * + * @retval ::SYSPARAM_OK Initialization successful + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + */ +sysparam_status_t sysparam_iter_start(sysparam_iter_t *iter); + +/** Fetch the next key/value pair + * + * This will retrieve the next key and value from the sysparam area, placing + * them in `iter->key`, and `iter->value` (and updating `iter->key_len` and + * `iter->value_len`). + * + * NOTE: `iter->key` and `iter->value` are static buffers local to the `iter` + * structure, and will be overwritten with the next call to + * sysparam_iter_next() using the same `iter`. They should *not* be free()d + * after use. + * + * @param[in] iter The iterator structure to update + * + * @retval ::SYSPARAM_OK Next key/value retrieved + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_iter_next(sysparam_iter_t *iter); + +/** Finish iterating through keys/values + * + * Cleans up and releases resources allocated by sysparam_iter_start() / + * sysparam_iter_next(). + */ +void sysparam_iter_end(sysparam_iter_t *iter); + +#endif /* _SYSPARAM_H_ */ diff --git a/core/sysparam.c b/core/sysparam.c new file mode 100644 index 0000000..c77ad20 --- /dev/null +++ b/core/sysparam.c @@ -0,0 +1,1056 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2016 Alex Stewart + * BSD Licensed as described in the file LICENSE + */ + +#include +#include +#include +#include +#include +#include + +//TODO: make this properly threadsafe +//TODO: reduce stack usage + +/* The "magic" value that indicates the start of a sysparam region in flash. + */ +#define SYSPARAM_MAGIC 0x70524f45 // "EORp" in little-endian + +/* The size of the initial buffer created by sysparam_iter_start, etc, to hold + * returned key-value pairs. Setting this too small may result in a lot of + * unnecessary reallocs. Setting it too large will waste memory when iterating + * through entries. + */ +#define DEFAULT_ITER_BUF_SIZE 64 + +/* The size of the buffer (in words) used by `sysparam_create_area` when + * scanning a potential area to make sure it's currently empty. Note that this + * space is taken from the stack, so it should not be too large. + */ +#define SCAN_BUFFER_SIZE 8 // words + +/* The size of the temporary buffer used for reading back and verifying data + * written to flash. Making this larger will make the write-and-verify + * operation slightly faster, but will use more heap during writes + */ +#define VERIFY_BUF_SIZE 64 + +/* Size of region/entry headers. These should not normally need tweaking (and + * will probably require some code changes if they are tweaked). + */ +#define REGION_HEADER_SIZE 8 // NOTE: Must be multiple of 4 +#define ENTRY_HEADER_SIZE 4 // NOTE: Must be multiple of 4 + +/* These are limited by the format to 0xffff, but could be set lower if desired + */ +#define MAX_KEY_LEN 0xffff +#define MAX_VALUE_LEN 0xffff + +/* Maximum value that can be used for a key_id. This is limited by the format + * to 0xffe (0xfff indicates end/unwritten space) + */ +#define MAX_KEY_ID 0x0ffe + +#define REGION_FLAG_SECOND 0x8000 // First (0) or second (1) region +#define REGION_FLAG_ACTIVE 0x4000 // Stale (0) or active (1) region +#define REGION_MASK_SIZE 0x0fff // Region size in sectors + +#define ENTRY_FLAG_ALIVE 0x8000 // Deleted (0) or active (1) +#define ENTRY_FLAG_INVALID 0x4000 // Valid (0) or invalid (1) entry +#define ENTRY_FLAG_VALUE 0x2000 // Key (0) or value (1) +#define ENTRY_FLAG_BINARY 0x1000 // Text (0) or binary (1) data + +#define ENTRY_MASK_ID 0xfff + +#define ENTRY_ID_END 0xfff +#define ENTRY_ID_ANY 0x1000 + +#ifndef SYSPARAM_DEBUG +#define SYSPARAM_DEBUG 0 +#endif + +/******************************* Useful Macros *******************************/ + +#define ROUND_TO_WORD_BOUNDARY(x) (((x) + 3) & 0xfffffffc) +#define ENTRY_SIZE(payload_len) (ENTRY_HEADER_SIZE + ROUND_TO_WORD_BOUNDARY(payload_len)) + +#define max(x, y) ((x) > (y) ? (x) : (y)) +#define min(x, y) ((x) < (y) ? (x) : (y)) + +#define debug(level, format, ...) if (SYSPARAM_DEBUG >= (level)) { printf("%s" format "\n", "sysparam: ", ## __VA_ARGS__); } + +#define CHECK_FLASH_OP(x) do { int __x = (x); if ((__x) != SPI_FLASH_RESULT_OK) { debug(1, "FLASH ERR: %d", __x); return SYSPARAM_ERR_IO; } } while (0); + +/********************* Internal datatypes and structures *********************/ + +struct region_header { + uint32_t magic; + uint16_t flags_size; + uint16_t reserved; +} __attribute__ ((packed)); + +struct entry_header { + uint16_t idflags; + uint16_t len; +} __attribute__ ((packed)); + +struct sysparam_context { + uint32_t addr; + struct entry_header entry; + int unused_keys; + size_t compactable; + uint16_t max_key_id; +}; + +/*************************** Global variables/data ***************************/ + +static struct { + uint32_t cur_base; + uint32_t alt_base; + uint32_t end_addr; + size_t region_size; + bool force_compact; +} _sysparam_info; + +/***************************** Internal routines *****************************/ + +static inline IRAM sysparam_status_t _do_write(uint32_t addr, const void *data, size_t data_size) { + CHECK_FLASH_OP(sdk_spi_flash_write(addr, (void*) data, data_size)); + return SYSPARAM_OK; +} + +static inline IRAM sysparam_status_t _do_verify(uint32_t addr, const void *data, void *buffer, size_t len) { + CHECK_FLASH_OP(sdk_spi_flash_read(addr, buffer, len)); + if (memcmp(data, buffer, len)) { + return SYSPARAM_ERR_IO; + } + return SYSPARAM_OK; +} + +/*FIXME: Eventually, this should probably be implemented down at the SPI flash library layer, where it can just compare bytes/words straight from the SPI hardware buffer instead of allocating a whole separate temp buffer, reading chunks into that, and then doing a memcmp.. */ +static IRAM sysparam_status_t _write_and_verify(uint32_t addr, const void *data, size_t data_size) { + int i; + size_t count; + sysparam_status_t status = SYSPARAM_OK; + uint8_t *verify_buf = malloc(VERIFY_BUF_SIZE); + + if (!verify_buf) return SYSPARAM_ERR_NOMEM; + do { + status = _do_write(addr, data, data_size); + if (status != SYSPARAM_OK) break; + for (i = 0; i < data_size; i += VERIFY_BUF_SIZE) { + count = min(data_size - i, VERIFY_BUF_SIZE); + status = _do_verify(addr + i, data + i, verify_buf, count); + if (status != SYSPARAM_OK) { + debug(1, "Flash write (@ 0x%08x) verify failed!", addr); + break; + } + } + } while (false); + free(verify_buf); + return status; +} + +/** Erase the sectors of a region */ +static sysparam_status_t _format_region(uint32_t addr, uint16_t num_sectors) { + uint16_t sector = addr / sdk_flashchip.sector_size; + int i; + + for (i = 0; i < num_sectors; i++) { + CHECK_FLASH_OP(sdk_spi_flash_erase_sector(sector + i)); + } + return SYSPARAM_OK; +} + +/** Write the magic data at the beginning of a region */ +static inline sysparam_status_t _write_region_header(uint32_t addr, uint32_t other, bool active) { + struct region_header header; + sysparam_status_t status; + int16_t num_sectors; + + header.magic = SYSPARAM_MAGIC; + if (addr < other) { + num_sectors = (other - addr) / sdk_flashchip.sector_size; + header.flags_size = num_sectors & REGION_MASK_SIZE; + } else { + num_sectors = (addr - other) / sdk_flashchip.sector_size; + header.flags_size = num_sectors & REGION_MASK_SIZE; + header.flags_size |= REGION_FLAG_SECOND; + } + if (active) { + header.flags_size |= REGION_FLAG_ACTIVE; + } + header.reserved = 0; + + debug(3, "write region header (0x%04x) @ 0x%08x", header.flags_size, addr); + status = _write_and_verify(addr, &header, REGION_HEADER_SIZE); + if (status != SYSPARAM_OK) { + // Uh oh.. Something failed, so we don't know whether what we wrote is + // actually in the flash or not. Try to zero it out to be sure and + // return an error. + debug(3, "zero region header @ 0x%08x", addr); + memset(&header, 0, REGION_HEADER_SIZE); + _write_and_verify(addr, &header, REGION_HEADER_SIZE); + return SYSPARAM_ERR_IO; + } + return SYSPARAM_OK; +} + +/** Initialize a context structure at the beginning of the active region */ +static void _init_context(struct sysparam_context *ctx) { + memset(ctx, 0, sizeof(*ctx)); + ctx->addr = _sysparam_info.cur_base; +} + +/** Initialize a context structure at the end of the active region */ +static sysparam_status_t init_write_context(struct sysparam_context *ctx) { + memset(ctx, 0, sizeof(*ctx)); + ctx->addr = _sysparam_info.end_addr; + debug(3, "read entry header @ 0x%08x", ctx->addr); + CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); + return SYSPARAM_OK; +} + +/** Search through the region for an entry matching the specified id + * + * @param match_id The id to match, or 0 to match any key, or 0xfff to scan + * to the end. + */ +static sysparam_status_t _find_entry(struct sysparam_context *ctx, uint16_t match_id, bool find_value) { + uint16_t id; + + while (true) { + if (ctx->addr == _sysparam_info.cur_base) { + ctx->addr += REGION_HEADER_SIZE; + } else { + uint32_t next_addr = ctx->addr + ENTRY_SIZE(ctx->entry.len); + if (next_addr > _sysparam_info.cur_base + _sysparam_info.region_size) { + // This entry has an obviously impossible length, so we need to + // stop reading here. + // We can report this as the end of the valid entries, but then + // any future writes (to the end) will write over + // previously-written data and result in garbage. The best + // workaround is to make sure that the next write operation + // will always start with a compaction, which will leave off + // the invalid data at the end and fix the issue going forward. + debug(1, "Encountered entry with invalid length (0x%04x) @ 0x%08x (region end is 0x%08x). Truncating entries.", ctx->entry.len, ctx->addr, _sysparam_info.end_addr); + _sysparam_info.force_compact = true; + break; + } + ctx->addr = next_addr; + if (ctx->addr == _sysparam_info.cur_base + _sysparam_info.region_size) { + // This is the last entry in the available space, but it + // exactly fits. Stop reading here. + break; + } + } + + debug(3, "read entry header @ 0x%08x", ctx->addr); + CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); + debug(3, " idflags = 0x%04x", ctx->entry.idflags); + if (ctx->entry.idflags == 0xffff) { + // 0xffff is never a valid id field, so this means we've hit the + // end and are looking at unwritten flash space from here on. + break; + } + + id = ctx->entry.idflags & ENTRY_MASK_ID; + if ((ctx->entry.idflags & (ENTRY_FLAG_ALIVE | ENTRY_FLAG_INVALID)) == ENTRY_FLAG_ALIVE) { + debug(3, " entry is alive and valid"); + if (!(ctx->entry.idflags & ENTRY_FLAG_VALUE)) { + debug(3, " entry is a key"); + ctx->max_key_id = id; + ctx->unused_keys++; + if (!find_value) { + if ((id == match_id) || (match_id == ENTRY_ID_ANY)) { + return SYSPARAM_OK; + } + } + } else { + debug(3, " entry is a value"); + ctx->unused_keys--; + if (find_value) { + if ((id == match_id) || (match_id == ENTRY_ID_ANY)) { + return SYSPARAM_OK; + } + } + } + debug(3, " (not a match)"); + } else { + debug(3, " entry is deleted or invalid"); + ctx->compactable += ENTRY_SIZE(ctx->entry.len); + } + } + if (match_id == ENTRY_ID_END) { + return SYSPARAM_OK; + } + ctx->entry.len = 0; + ctx->entry.idflags = 0; + return SYSPARAM_NOTFOUND; +} + +/** Read the payload from the current entry pointed to by `ctx` */ +static inline sysparam_status_t _read_payload(struct sysparam_context *ctx, uint8_t *buffer, size_t buffer_size) { + debug(3, "read payload (%d) @ 0x%08x", min(buffer_size, ctx->entry.len), ctx->addr); + CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr + ENTRY_HEADER_SIZE, (void*) buffer, min(buffer_size, ctx->entry.len))); + return SYSPARAM_OK; +} + +/** Find the entry corresponding to the specified key name */ +static sysparam_status_t _find_key(struct sysparam_context *ctx, const char *key, uint16_t key_len, uint8_t *buffer) { + sysparam_status_t status; + + debug(3, "find key: %s", key ? key : "(null)"); + while (true) { + // Find the next key entry + status = _find_entry(ctx, ENTRY_ID_ANY, false); + if (status != SYSPARAM_OK) return status; + debug(3, "found a key entry @ 0x%08x", ctx->addr); + if (!key) { + // We're looking for the next (any) key, so we're done. + break; + } + if (ctx->entry.len == key_len) { + status = _read_payload(ctx, buffer, key_len); + if (status < 0) return status; + if (!memcmp(key, buffer, key_len)) { + // We have a match + break; + } + debug(3, "entry payload does not match"); + } else { + debug(3, "key length (%d) does not match (%d)", ctx->entry.len, key_len); + } + } + debug(3, "key match @ 0x%08x (idflags = 0x%04x)", ctx->addr, ctx->entry.idflags); + + return SYSPARAM_OK; +} + +/** Find the value entry matching the id field from a particular key */ +static inline sysparam_status_t _find_value(struct sysparam_context *ctx, uint16_t id_field) { + debug(3, "find value: 0x%04x", id_field); + return _find_entry(ctx, id_field & ENTRY_MASK_ID, true); +} + +/** Write an entry at the specified address */ +static inline sysparam_status_t _write_entry(uint32_t addr, uint16_t id, const uint8_t *payload, uint16_t len) { + struct entry_header entry; + sysparam_status_t status; + + debug(2, "Writing entry 0x%02x @ 0x%08x", id, addr); + entry.idflags = id | ENTRY_FLAG_ALIVE | ENTRY_FLAG_INVALID; + entry.len = len; + debug(3, "write initial entry header @ 0x%08x", addr); + status = _write_and_verify(addr, &entry, ENTRY_HEADER_SIZE); + if (status == SYSPARAM_ERR_IO) { + // Uh-oh.. Either the flash call failed in some way or we didn't get + // back what we wrote. This could be a problem because depending on + // how it went wrong it could screw up all reads/writes from this point + // forward. Try to salvage the on-flash structure by overwriting the + // failed header with all zeros, which (if successful) will be + // interpreted on later reads as a deleted empty-payload entry (and it + // will just skip to the next spot). + memset(&entry, 0, ENTRY_HEADER_SIZE); + debug(3, "zeroing entry header @ 0x%08x", addr); + status = _write_and_verify(addr, &entry, ENTRY_HEADER_SIZE); + if (status != SYSPARAM_OK) return status; + + // Make sure future writes skip past this zeroed bit + if (_sysparam_info.end_addr == addr) { + _sysparam_info.end_addr += ENTRY_HEADER_SIZE; + } + // We could just skip to the next space and try again, but + // unfortunately now we can't be sure there's enough space remaining to + // fit the entry, so we just have to fail this operation. Hopefully, + // at least, future requests will still succeed, though. + status = SYSPARAM_ERR_IO; + } + if (status != SYSPARAM_OK) return status; + + // If we've gotten this far, we've committed to writing the full entry. + if (_sysparam_info.end_addr == addr) { + _sysparam_info.end_addr += ENTRY_SIZE(len); + } + debug(3, "write payload (%d) @ 0x%08x", len, addr + ENTRY_HEADER_SIZE); + status = _write_and_verify(addr + ENTRY_HEADER_SIZE, payload, len); + if (status != SYSPARAM_OK) return status; + + debug(3, "set entry valid @ 0x%08x", addr); + entry.idflags &= ~ENTRY_FLAG_INVALID; + status = _write_and_verify(addr, &entry, ENTRY_HEADER_SIZE); + + return status; +} + +/** Mark an entry as "deleted" so it won't be considered in future reads */ +static inline sysparam_status_t _delete_entry(uint32_t addr) { + struct entry_header entry; + + debug(2, "Deleting entry @ 0x%08x", addr); + debug(3, "read entry header @ 0x%08x", addr); + CHECK_FLASH_OP(sdk_spi_flash_read(addr, (void*) &entry, ENTRY_HEADER_SIZE)); + // Set the ID to zero to mark it as "deleted" + entry.idflags &= ~ENTRY_FLAG_ALIVE; + debug(3, "write entry header @ 0x%08x", addr); + CHECK_FLASH_OP(sdk_spi_flash_write(addr, (void*) &entry, ENTRY_HEADER_SIZE)); + + return SYSPARAM_OK; +} + +/** Compact the current region, removing all deleted/unused entries, and write + * the result to the alternate region, then make the new alternate region the + * active one. + * + * @param key_id A pointer to the "current" key ID. + * + * NOTE: The value corresponding to the passed key ID will not be written to + * the output (because it is assumed it will be overwritten as the next step + * in `sysparam_set_data` anyway). When compacting, this routine will + * automatically update *key_id to contain the ID of this key in the new + * compacted result as well. + */ +static sysparam_status_t _compact_params(struct sysparam_context *ctx, int *key_id) { + uint32_t new_base = _sysparam_info.alt_base; + sysparam_status_t status; + uint32_t addr = new_base + REGION_HEADER_SIZE; + uint16_t current_key_id = 0; + sysparam_iter_t iter; + uint16_t binary_flag; + uint16_t num_sectors = _sysparam_info.region_size / sdk_flashchip.sector_size; + + debug(1, "compacting region (current size %d, expect to recover %d%s bytes)...", _sysparam_info.end_addr - _sysparam_info.cur_base, ctx->compactable, (ctx->unused_keys > 0) ? "+ (unused keys present)" : ""); + status = _format_region(new_base, num_sectors); + if (status < 0) return status; + status = sysparam_iter_start(&iter); + if (status < 0) return status; + + while (true) { + status = sysparam_iter_next(&iter); + if (status != SYSPARAM_OK) break; + + current_key_id++; + + // Write the key to the new region + debug(2, "writing %d key @ 0x%08x", current_key_id, addr); + status = _write_entry(addr, current_key_id, (uint8_t *)iter.key, iter.key_len); + if (status < 0) break; + addr += ENTRY_SIZE(iter.key_len); + + if ((iter.ctx->entry.idflags & ENTRY_MASK_ID) == *key_id) { + // Update key_id to have the correct id for the compacted result + *key_id = current_key_id; + // Don't copy the old value, since we'll just be deleting it + // and writing a new one as soon as we return. + continue; + } + + // Copy the value to the new region + debug(2, "writing %d value @ 0x%08x", current_key_id, addr); + binary_flag = iter.binary ? ENTRY_FLAG_BINARY : 0; + status = _write_entry(addr, current_key_id | ENTRY_FLAG_VALUE | binary_flag, iter.value, iter.value_len); + if (status < 0) break; + addr += ENTRY_SIZE(iter.value_len); + } + sysparam_iter_end(&iter); + + // If we broke out with an error, return the error instead of continuing. + if (status < 0) { + debug(1, "error encountered during compacting (%d)", status); + return status; + } + + // Switch to officially using the new region. + status = _write_region_header(new_base, _sysparam_info.cur_base, true); + if (status < 0) return status; + status = _write_region_header(_sysparam_info.cur_base, new_base, false); + if (status < 0) return status; + + _sysparam_info.alt_base = _sysparam_info.cur_base; + _sysparam_info.cur_base = new_base; + _sysparam_info.end_addr = addr; + _sysparam_info.force_compact = false; + + // Fix up ctx so it doesn't point to invalid stuff + memset(ctx, 0, sizeof(*ctx)); + ctx->addr = addr; + ctx->max_key_id = current_key_id; + + debug(1, "done compacting (current size %d)", _sysparam_info.end_addr - _sysparam_info.cur_base); + + return SYSPARAM_OK; +} + +/***************************** Public Functions ******************************/ + +sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { + sysparam_status_t status; + uint32_t addr0, addr1; + struct region_header header0, header1; + struct sysparam_context ctx; + uint16_t num_sectors; + + // Make sure we're starting at the beginning of the sector + base_addr -= (base_addr % sdk_flashchip.sector_size); + + if (!top_addr || top_addr == base_addr) { + // Only scan the specified sector, nowhere else. + top_addr = base_addr + sdk_flashchip.sector_size; + } + for (addr0 = base_addr; addr0 < top_addr; addr0 += sdk_flashchip.sector_size) { + CHECK_FLASH_OP(sdk_spi_flash_read(addr0, (void*) &header0, REGION_HEADER_SIZE)); + if (header0.magic == SYSPARAM_MAGIC) { + // Found a starting point... + break; + } + } + if (addr0 >= top_addr) { + return SYSPARAM_NOTFOUND; + } + + // We've found a valid header at addr0. Now find the other half of the sysparam area. + num_sectors = header0.flags_size & REGION_MASK_SIZE; + + if (header0.flags_size & REGION_FLAG_SECOND) { + addr1 = addr0 - num_sectors * sdk_flashchip.sector_size; + } else { + addr1 = addr0 + num_sectors * sdk_flashchip.sector_size; + } + CHECK_FLASH_OP(sdk_spi_flash_read(addr1, (void*) &header1, REGION_HEADER_SIZE)); + + if (header1.magic == SYSPARAM_MAGIC) { + // Yay! Found the other one. Sanity-check it.. + if ((header0.flags_size & REGION_FLAG_SECOND) == (header1.flags_size & REGION_FLAG_SECOND)) { + // Hmm.. they both say they're the same region. That can't be right... + debug(1, "Found region headers @ 0x%08x and 0x%08x, but both claim to be the same region.", addr0, addr1); + return SYSPARAM_ERR_CORRUPT; + } + } else { + // Didn't find a valid header at the alternate location (which probably means something clobbered it or something went wrong at a critical point when rewriting it. Is the one we did find the active or stale one? + if (header0.flags_size & REGION_FLAG_ACTIVE) { + // Found the active one. We can work with this. Try to recreate the missing stale region... + debug(2, "Found active region header @ 0x%08x but no stale region @ 0x%08x. Trying to recreate stale region.", addr0, addr1); + status = _format_region(addr1, num_sectors); + if (status != SYSPARAM_OK) return status; + status = _write_region_header(addr1, addr0, false); + if (status != SYSPARAM_OK) return status; + } else { + // Found the stale one. We have no idea how old it is, so we shouldn't use it without some sort of confirmation/recovery. We'll have to bail for now. + debug(1, "Found stale-region header @ 0x%08x, but no active region.", addr0); + return SYSPARAM_ERR_CORRUPT; + } + } + // At this point we have confirmed valid regions at addr0 and addr1. + + _sysparam_info.region_size = num_sectors * sdk_flashchip.sector_size; + if (header0.flags_size & REGION_FLAG_ACTIVE) { + _sysparam_info.cur_base = addr0; + _sysparam_info.alt_base = addr1; + debug(3, "Active region @ 0x%08x (0x%04x). Stale region @ 0x%08x (0x%04x).", addr0, header0.flags_size, addr1, header1.flags_size); + + } else { + _sysparam_info.cur_base = addr1; + _sysparam_info.alt_base = addr0; + debug(3, "Active region @ 0x%08x (0x%04x). Stale region @ 0x%08x (0x%04x).", addr1, header1.flags_size, addr0, header0.flags_size); + } + + // Find the actual end + _sysparam_info.end_addr = _sysparam_info.cur_base + _sysparam_info.region_size; + _sysparam_info.force_compact = false; + _init_context(&ctx); + status = _find_entry(&ctx, ENTRY_ID_END, false); + if (status < 0) { + _sysparam_info.cur_base = 0; + _sysparam_info.alt_base = 0; + _sysparam_info.end_addr = 0; + return status; + } + if (status == SYSPARAM_OK) { + _sysparam_info.end_addr = ctx.addr; + } + + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors, bool force) { + size_t region_size; + sysparam_status_t status; + uint32_t buffer[SCAN_BUFFER_SIZE]; + uint32_t addr; + int i; + + // Convert "number of sectors for area" into "number of sectors per region" + if (num_sectors < 1 || (num_sectors & 1)) { + return SYSPARAM_ERR_BADVALUE; + } + num_sectors >>= 1; + region_size = num_sectors * sdk_flashchip.sector_size; + + if (!force) { + // First, scan through the area and make sure it's actually empty and + // we're not going to be clobbering something else important. + for (addr = base_addr; addr < base_addr + region_size * 2; addr += SCAN_BUFFER_SIZE) { + debug(3, "read %d words @ 0x%08x", SCAN_BUFFER_SIZE, addr); + CHECK_FLASH_OP(sdk_spi_flash_read(addr, buffer, SCAN_BUFFER_SIZE * 4)); + for (i = 0; i < SCAN_BUFFER_SIZE; i++) { + if (buffer[i] != 0xffffffff) { + // Uh oh, not empty. + return SYSPARAM_NOTFOUND; + } + } + } + } + + if (_sysparam_info.cur_base == base_addr || _sysparam_info.alt_base == base_addr) { + // We're reformating the same region we're already using. + // De-initialize everything to force the caller to do a clean + // `sysparam_init()` afterwards. + memset(&_sysparam_info, 0, sizeof(_sysparam_info)); + } + status = _format_region(base_addr, num_sectors); + if (status < 0) return status; + status = _format_region(base_addr + region_size, num_sectors); + if (status < 0) return status; + status = _write_region_header(base_addr, base_addr + region_size, true); + if (status < 0) return status; + status = _write_region_header(base_addr + region_size, base_addr, false); + if (status < 0) return status; + + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_get_info(uint32_t *base_addr, uint32_t *num_sectors) { + if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + + *base_addr = min(_sysparam_info.cur_base, _sysparam_info.alt_base); + *num_sectors = (_sysparam_info.region_size / sdk_flashchip.sector_size) * 2; + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t *actual_length, bool *is_binary) { + struct sysparam_context ctx; + sysparam_status_t status; + size_t key_len = strlen(key); + uint8_t *buffer; + uint8_t *newbuf; + + if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + + buffer = malloc(key_len + 2); + if (!buffer) return SYSPARAM_ERR_NOMEM; + do { + _init_context(&ctx); + status = _find_key(&ctx, key, key_len, buffer); + if (status != SYSPARAM_OK) break; + + // Find the associated value + status = _find_value(&ctx, ctx.entry.idflags); + if (status != SYSPARAM_OK) break; + + newbuf = realloc(buffer, ctx.entry.len + 1); + if (!newbuf) { + status = SYSPARAM_ERR_NOMEM; + break; + } + buffer = newbuf; + status = _read_payload(&ctx, buffer, ctx.entry.len); + if (status != SYSPARAM_OK) break; + + // Zero-terminate the result, just in case (doesn't hurt anything for + // non-string data, and can avoid nasty mistakes if the caller wants to + // interpret the result as a string). + buffer[ctx.entry.len] = 0; + + *destptr = buffer; + if (actual_length) *actual_length = ctx.entry.len; + if (is_binary) *is_binary = (bool)(ctx.entry.idflags & ENTRY_FLAG_BINARY); + return SYSPARAM_OK; + } while (false); + + free(buffer); + if (actual_length) *actual_length = 0; + return status; +} + +sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *buffer, size_t buffer_size, size_t *actual_length, bool *is_binary) { + struct sysparam_context ctx; + sysparam_status_t status = SYSPARAM_OK; + size_t key_len = strlen(key); + + if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + + // Supplied buffer must be at least as large as the key, or 2 bytes, + // whichever is larger. + if (buffer_size < max(key_len, 2)) return SYSPARAM_ERR_NOMEM; + + if (actual_length) *actual_length = 0; + + _init_context(&ctx); + status = _find_key(&ctx, key, key_len, buffer); + if (status != SYSPARAM_OK) return status; + status = _find_value(&ctx, ctx.entry.idflags); + if (status != SYSPARAM_OK) return status; + status = _read_payload(&ctx, buffer, buffer_size); + if (status != SYSPARAM_OK) return status; + + if (actual_length) *actual_length = ctx.entry.len; + if (is_binary) *is_binary = (bool)(ctx.entry.idflags & ENTRY_FLAG_BINARY); + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_get_string(const char *key, char **destptr) { + bool is_binary; + sysparam_status_t status; + uint8_t *buf; + + status = sysparam_get_data(key, &buf, NULL, &is_binary); + if (status != SYSPARAM_OK) return status; + if (is_binary) { + // Value was saved as binary data, which means we shouldn't try to + // interpret it as a string. + free(buf); + return SYSPARAM_PARSEFAILED; + } + // `sysparam_get_data` will zero-terminate the result as a matter of course, + // so no need to do that here. + *destptr = (char *)buf; + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_get_int(const char *key, int32_t *result) { + char *buffer; + char *endptr; + int32_t value; + sysparam_status_t status; + + status = sysparam_get_string(key, &buffer); + if (status != SYSPARAM_OK) return status; + value = strtol(buffer, &endptr, 0); + if (*endptr) { + // There was extra crap at the end of the string. + free(buffer); + return SYSPARAM_PARSEFAILED; + } + + *result = value; + free(buffer); + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_get_bool(const char *key, bool *result) { + char *buffer; + sysparam_status_t status; + + status = sysparam_get_string(key, &buffer); + if (status != SYSPARAM_OK) return status; + do { + if (!strcasecmp(buffer, "y") || + !strcasecmp(buffer, "yes") || + !strcasecmp(buffer, "t") || + !strcasecmp(buffer, "true") || + !strcmp(buffer, "1")) { + *result = true; + break; + } + if (!strcasecmp(buffer, "n") || + !strcasecmp(buffer, "no") || + !strcasecmp(buffer, "f") || + !strcasecmp(buffer, "false") || + !strcmp(buffer, "0")) { + *result = false; + break; + } + status = SYSPARAM_PARSEFAILED; + } while (0); + + free(buffer); + return status; +} + +sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_t value_len, bool is_binary) { + struct sysparam_context ctx; + struct sysparam_context write_ctx; + sysparam_status_t status = SYSPARAM_OK; + uint16_t key_len = strlen(key); + uint8_t *buffer; + uint8_t *newbuf; + size_t free_space; + size_t needed_space; + bool free_value = false; + int key_id = -1; + uint32_t old_value_addr = 0; + uint16_t binary_flag; + + if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + if (!key_len) return SYSPARAM_ERR_BADVALUE; + if (key_len > MAX_KEY_LEN) return SYSPARAM_ERR_BADVALUE; + if (value_len > MAX_VALUE_LEN) return SYSPARAM_ERR_BADVALUE; + + if (!value) value_len = 0; + + debug(1, "updating value for '%s' (%d bytes)", key, value_len); + if (value_len && ((intptr_t)value & 0x3)) { + // The passed value isn't word-aligned. This will be a problem later + // when calling `sdk_spi_flash_write`, so make a word-aligned copy. + buffer = malloc(value_len); + if (!buffer) return SYSPARAM_ERR_NOMEM; + memcpy(buffer, value, value_len); + value = buffer; + free_value = true; + } + // Create a working buffer for `_find_key` to use. + buffer = malloc(key_len); + if (!buffer) { + if (free_value) free((void *)value); + return SYSPARAM_ERR_NOMEM; + } + + do { + _init_context(&ctx); + status = _find_key(&ctx, key, key_len, buffer); + if (status == SYSPARAM_OK) { + // Key already exists, see if there's a current value. + key_id = ctx.entry.idflags & ENTRY_MASK_ID; + status = _find_value(&ctx, key_id); + if (status == SYSPARAM_OK) { + old_value_addr = ctx.addr; + } + } + if (status < 0) break; + + binary_flag = is_binary ? ENTRY_FLAG_BINARY : 0; + + if (value_len) { + if (old_value_addr) { + if ((ctx.entry.idflags & ENTRY_FLAG_BINARY) == binary_flag && ctx.entry.len == value_len) { + // Are we trying to write the same value that's already there? + if (value_len > key_len) { + newbuf = realloc(buffer, value_len); + if (!newbuf) { + status = SYSPARAM_ERR_NOMEM; + break; + } + buffer = newbuf; + } + status = _read_payload(&ctx, buffer, value_len); + if (status < 0) break; + if (!memcmp(buffer, value, value_len)) { + // Yup, it's a match! No need to do anything further, + // just leave the current value as-is. + status = SYSPARAM_OK; + break; + } + } + + // Since we will be deleting the old value (if any) make sure + // that the compactable count includes the space taken up by + // that entry too (even though it's not actually deleted yet) + ctx.compactable += ENTRY_SIZE(ctx.entry.len); + } + + // Append new value to the end, but first make sure we have enough + // space. + free_space = _sysparam_info.cur_base + _sysparam_info.region_size - _sysparam_info.end_addr; + needed_space = ENTRY_SIZE(value_len); + if (key_id < 0) { + // We did not find a previous key entry matching this key. We + // will need to add a key entry as well. + key_len = strlen(key); + needed_space += ENTRY_SIZE(key_len); + } + if (needed_space > free_space) { + // Can we compact things? + // First, scan all remaining entries up to the end so we can + // get a reasonably accurate "compactable" reading. + _find_entry(&ctx, ENTRY_ID_END, false); + if (needed_space <= free_space + ctx.compactable) { + // We should be able to get enough space by compacting. + status = _compact_params(&ctx, &key_id); + if (status < 0) break; + old_value_addr = 0; + } else if (ctx.unused_keys > 0) { + // Compacting will gain more space than expected, because + // there are some keys that can be omitted too, but we + // don't know exactly how much that will gain, so all we + // can do is give it a try and see if it gives us enough. + status = _compact_params(&ctx, &key_id); + if (status < 0) break; + old_value_addr = 0; + } + free_space = _sysparam_info.cur_base + _sysparam_info.region_size - _sysparam_info.end_addr; + } + if (needed_space > free_space) { + // Nothing we can do here.. We're full. + // (at least full enough that compacting won't help us store + // this value) + debug(1, "region full (need %d of %d remaining)", needed_space, free_space); + status = SYSPARAM_ERR_FULL; + break; + } + + if (key_id < 0) { + // We need to write a key entry for a new key. + // If we didn't find the key, then we already know _find_entry + // has gone through the entire contents, and thus + // ctx.max_key_id has the largest key_id found in the whole + // region. + if (ctx.max_key_id >= MAX_KEY_ID) { + if (ctx.unused_keys > 0) { + status = _compact_params(&ctx, &key_id); + if (status < 0) break; + old_value_addr = 0; + } else { + debug(1, "out of ids!"); + status = SYSPARAM_ERR_FULL; + break; + } + } + } + + if (_sysparam_info.force_compact) { + // We didn't need to compact above, but due to previously + // detected inconsistencies, we should compact anyway before + // writing anything new, so do that. + status = _compact_params(&ctx, &key_id); + if (status < 0) break; + } + + init_write_context(&write_ctx); + + if (key_id < 0) { + // Write a new key entry + key_id = ctx.max_key_id + 1; + status = _write_entry(write_ctx.addr, key_id, (uint8_t *)key, key_len); + if (status < 0) break; + write_ctx.addr += ENTRY_SIZE(key_len); + } + + // Write new value + status = _write_entry(write_ctx.addr, key_id | ENTRY_FLAG_VALUE | binary_flag, value, value_len); + if (status < 0) break; + write_ctx.addr += ENTRY_SIZE(value_len); + _sysparam_info.end_addr = write_ctx.addr; + } + + // Delete old value (if present) by clearing its "alive" flag + if (old_value_addr) { + status = _delete_entry(old_value_addr); + if (status < 0) break; + } + + debug(1, "New addr is 0x%08x (%d bytes remaining)", _sysparam_info.end_addr, _sysparam_info.cur_base + _sysparam_info.region_size - _sysparam_info.end_addr); + } while (false); + + if (free_value) free((void *)value); + free(buffer); + return status; +} + +sysparam_status_t sysparam_set_string(const char *key, const char *value) { + return sysparam_set_data(key, (const uint8_t *)value, strlen(value), false); +} + +sysparam_status_t sysparam_set_int(const char *key, int32_t value) { + uint8_t buffer[12]; + int len; + + len = snprintf((char *)buffer, 12, "%d", value); + return sysparam_set_data(key, buffer, len, false); +} + +sysparam_status_t sysparam_set_bool(const char *key, bool value) { + uint8_t buf[4] = {0xff, 0xff, 0xff, 0xff}; + bool old_value; + + // Don't write anything if the current setting already evaluates to the + // same thing. + if (sysparam_get_bool(key, &old_value) == SYSPARAM_OK) { + if (old_value == value) return SYSPARAM_OK; + } + + buf[0] = value ? 'y' : 'n'; + return sysparam_set_data(key, buf, 1, false); +} + +sysparam_status_t sysparam_iter_start(sysparam_iter_t *iter) { + if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + + iter->bufsize = DEFAULT_ITER_BUF_SIZE; + iter->key = malloc(iter->bufsize); + if (!iter->key) { + iter->bufsize = 0; + return SYSPARAM_ERR_NOMEM; + } + iter->key_len = 0; + iter->value_len = 0; + iter->ctx = malloc(sizeof(struct sysparam_context)); + if (!iter->ctx) { + free(iter->key); + iter->bufsize = 0; + return SYSPARAM_ERR_NOMEM; + } + _init_context(iter->ctx); + + return SYSPARAM_OK; +} + +sysparam_status_t sysparam_iter_next(sysparam_iter_t *iter) { + uint8_t buffer[2]; + sysparam_status_t status; + size_t required_len; + struct sysparam_context *ctx = iter->ctx; + struct sysparam_context value_ctx; + size_t key_space; + char *newbuf; + + while (true) { + status = _find_key(ctx, NULL, 0, buffer); + if (status != SYSPARAM_OK) return status; + memcpy(&value_ctx, ctx, sizeof(value_ctx)); + + status = _find_value(&value_ctx, ctx->entry.idflags); + if (status < 0) return status; + if (status == SYSPARAM_NOTFOUND) continue; + + key_space = ROUND_TO_WORD_BOUNDARY(ctx->entry.len + 1); + required_len = key_space + value_ctx.entry.len + 1; + if (required_len > iter->bufsize) { + newbuf = realloc(iter->key, required_len); + if (!newbuf) { + return SYSPARAM_ERR_NOMEM; + } + iter->key = newbuf; + iter->bufsize = required_len; + } + + status = _read_payload(ctx, (uint8_t *)iter->key, iter->bufsize); + if (status < 0) return status; + // Null-terminate the key + iter->key[ctx->entry.len] = 0; + iter->key_len = ctx->entry.len; + + iter->value = (uint8_t *)(iter->key + key_space); + status = _read_payload(&value_ctx, iter->value, iter->bufsize - key_space); + if (status < 0) return status; + // Null-terminate the value (just in case) + iter->value[value_ctx.entry.len] = 0; + iter->value_len = value_ctx.entry.len; + if (value_ctx.entry.idflags & ENTRY_FLAG_BINARY) { + iter->binary = true; + debug(2, "iter_next: (0x%08x) '%s' = (0x%08x) (%d)", ctx->addr, iter->key, value_ctx.addr, iter->value_len); + } else { + iter->binary = false; + debug(2, "iter_next: (0x%08x) '%s' = (0x%08x) '%s' (%d)", ctx->addr, iter->key, value_ctx.addr, iter->value, iter->value_len); + } + + return SYSPARAM_OK; + } +} + +void sysparam_iter_end(sysparam_iter_t *iter) { + if (iter->key) free(iter->key); + if (iter->ctx) free(iter->ctx); +} + diff --git a/examples/sysparam_editor/Makefile b/examples/sysparam_editor/Makefile new file mode 100644 index 0000000..a774b68 --- /dev/null +++ b/examples/sysparam_editor/Makefile @@ -0,0 +1,14 @@ +PROGRAM=sysparam_editor + +# Setting this to 1..3 will add extra debugging output to stdout +EXTRA_CFLAGS=-DSYSPARAM_DEBUG=0 + +include ../../common.mk + +# `make dump-flash` can be used to view the current contents of the sysparam +# regions in flash. +dump-flash: + esptool.py read_flash 0x1f8000 8192 r1.bin + hexdump -C r1.bin + esptool.py read_flash 0x1fa000 8192 r2.bin + hexdump -C r2.bin diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c new file mode 100644 index 0000000..22f6190 --- /dev/null +++ b/examples/sysparam_editor/sysparam_editor.c @@ -0,0 +1,233 @@ +#include "FreeRTOS.h" +#include "task.h" +#include +#include +#include +#include + +#include + +#define CMD_BUF_SIZE 5000 + +const int status_base = -6; +const char *status_messages[] = { + "SYSPARAM_ERR_NOMEM", + "SYSPARAM_ERR_CORRUPT", + "SYSPARAM_ERR_IO", + "SYSPARAM_ERR_FULL", + "SYSPARAM_ERR_BADVALUE", + "SYSPARAM_ERR_NOINIT", + "SYSPARAM_OK", + "SYSPARAM_NOTFOUND", + "SYSPARAM_PARSEFAILED", +}; + +void usage(void) { + printf( + "Available commands:\n" + " ? -- Query the value of \n" + " = -- Set to text \n" + " : -- Set to binary value represented as hex\n" + " dump -- Show all currently set keys/values\n" + " reformat -- Reinitialize (clear) the sysparam area\n" + " help -- Show this help screen\n" + ); +} + +size_t tty_readline(char *buffer, size_t buf_size, bool echo) { + size_t i = 0; + int c; + + while (true) { + c = getchar(); + if (c == '\r') { + if (echo) putchar('\n'); + break; + } else if (c == '\b' || c == 0x7f) { + if (i) { + if (echo) printf("\b \b"); + i--; + } + } else if (c < 0x20) { + /* Ignore other control characters */ + } else if (i >= buf_size - 1) { + if (echo) putchar('\a'); + } else { + buffer[i++] = c; + if (echo) putchar(c); + } + } + + buffer[i] = 0; + return i; +} + +void print_text_value(char *key, char *value) { + printf(" '%s' = '%s'\n", key, value); +} + +void print_binary_value(char *key, uint8_t *value, size_t len) { + size_t i; + + printf(" %s:", key); + for (i = 0; i < len; i++) { + if (!(i & 0x0f)) { + printf("\n "); + } + printf(" %02x", value[i]); + } + printf("\n"); +} + +sysparam_status_t dump_params(void) { + sysparam_status_t status; + sysparam_iter_t iter; + + status = sysparam_iter_start(&iter); + if (status < 0) return status; + while (true) { + status = sysparam_iter_next(&iter); + if (status != SYSPARAM_OK) break; + if (!iter.binary) { + print_text_value(iter.key, (char *)iter.value); + } else { + print_binary_value(iter.key, iter.value, iter.value_len); + } + } + sysparam_iter_end(&iter); + + if (status == SYSPARAM_NOTFOUND) { + // This is the normal status when we've reached the end of all entries. + return SYSPARAM_OK; + } else { + // Something apparently went wrong + return status; + } +} + +uint8_t *parse_hexdata(char *string, size_t *result_length) { + size_t string_len = strlen(string); + uint8_t *buf = malloc(string_len / 2); + uint8_t c; + int i, j; + bool digit = false; + + j = 0; + for (i = 0; string[i]; i++) { + c = string[i]; + if (c >= 0x30 && c <= 0x39) { + c &= 0x0f; + } else if (c >= 0x41 && c <= 0x46) { + c -= 0x37; + } else if (c >= 0x61 && c <= 0x66) { + c -= 0x57; + } else if (c == ' ') { + continue; + } else { + free(buf); + return NULL; + } + if (!digit) { + buf[j] = c << 4; + } else { + buf[j++] |= c; + } + digit = !digit; + } + if (digit) { + free(buf); + return NULL; + } + *result_length = j; + return buf; +} + +void sysparam_editor_task(void *pvParameters) { + char *cmd_buffer = malloc(CMD_BUF_SIZE); + sysparam_status_t status; + char *value; + uint8_t *bin_value; + size_t len; + uint8_t *data; + uint32_t base_addr, num_sectors; + + if (!cmd_buffer) { + printf("ERROR: Cannot allocate command buffer!\n"); + return; + } + + printf("\nWelcome to the system parameter editor! Enter 'help' for more information.\n\n"); + + status = sysparam_get_info(&base_addr, &num_sectors); + if (status == SYSPARAM_OK) { + printf("[current sysparam region is at 0x%08x (%d sectors)]\n", base_addr, num_sectors); + } else { + printf("[NOTE: No current sysparam region (initialization problem during boot?)]\n"); + // Default to the same place/size as the normal system initialization + // stuff, so if the user uses this utility to reformat it, it will put + // it somewhere the system will find it later + num_sectors = DEFAULT_SYSPARAM_SECTORS; + base_addr = sdk_flashchip.chip_size - (4 + num_sectors) * sdk_flashchip.sector_size; + } + while (true) { + printf("==> "); + len = tty_readline(cmd_buffer, CMD_BUF_SIZE, true); + status = 0; + if (!len) continue; + if (cmd_buffer[len - 1] == '?') { + cmd_buffer[len - 1] = 0; + printf("Querying '%s'...\n", cmd_buffer); + status = sysparam_get_string(cmd_buffer, &value); + if (status == SYSPARAM_OK) { + print_text_value(cmd_buffer, value); + free(value); + } else if (status == SYSPARAM_PARSEFAILED) { + // This means it's actually a binary value + status = sysparam_get_data(cmd_buffer, &bin_value, &len, NULL); + if (status == SYSPARAM_OK) { + print_binary_value(cmd_buffer, bin_value, len); + free(value); + } + } + } else if ((value = strchr(cmd_buffer, '='))) { + *value++ = 0; + printf("Setting '%s' to '%s'...\n", cmd_buffer, value); + status = sysparam_set_string(cmd_buffer, value); + } else if ((value = strchr(cmd_buffer, ':'))) { + *value++ = 0; + data = parse_hexdata(value, &len); + if (value) { + printf("Setting '%s' to binary data...\n", cmd_buffer); + status = sysparam_set_data(cmd_buffer, data, len, true); + free(data); + } else { + printf("Error: Unable to parse hex data\n"); + } + } else if (!strcmp(cmd_buffer, "dump")) { + printf("Dumping all params:\n"); + status = dump_params(); + } else if (!strcmp(cmd_buffer, "reformat")) { + printf("Re-initializing region...\n"); + status = sysparam_create_area(base_addr, num_sectors, true); + if (status == SYSPARAM_OK) { + // We need to re-init after wiping out the region we've been + // using. + status = sysparam_init(base_addr, 0); + } + } else if (!strcmp(cmd_buffer, "help")) { + usage(); + } else { + printf("Unrecognized command.\n\n"); + usage(); + } + + if (status != SYSPARAM_OK) { + printf("! Operation returned status: %d (%s)\n", status, status_messages[status - status_base]); + } + } +} + +void user_init(void) +{ + xTaskCreate(sysparam_editor_task, (signed char *)"sysparam_editor_task", 512, NULL, 2, NULL); +} From 458a6813c8fd31598e19940697dd1db20bd9d420 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 20 Aug 2016 16:06:09 +0300 Subject: [PATCH 062/349] esp/interrupts.h: Add wDev FIQ interrupt number. 40251dd9 $a2 = 0x0 40251ddb $a3 = wDev_ProcessFiq 40251dde $a4 = 0x0 40251de0 $a0 = ets_isr_attach 40251de3 call $a0 --- core/include/esp/interrupts.h | 1 + 1 file changed, 1 insertion(+) diff --git a/core/include/esp/interrupts.h b/core/include/esp/interrupts.h index a6e779a..e539aa6 100644 --- a/core/include/esp/interrupts.h +++ b/core/include/esp/interrupts.h @@ -17,6 +17,7 @@ /* Interrupt numbers for level 1 exception handler. */ typedef enum { + INUM_WDEV_FIQ = 0, INUM_SLC = 1, INUM_SPI = 2, INUM_GPIO = 4, From 0aabbea16fd4163c81572eaa28cddf7b73836b8e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 20 Aug 2016 16:13:07 +0300 Subject: [PATCH 063/349] esp/wdt_regs.h: Add "current value" register. WDT is countdown timer. Current value is accessible via VAL register. At this time it's unclear if it's RO or RW (common sense says it shoul be RO). Source: looking at the WDT registers on a running chip. --- core/include/esp/wdt_regs.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/include/esp/wdt_regs.h b/core/include/esp/wdt_regs.h index 66bf1d0..6e73769 100644 --- a/core/include/esp/wdt_regs.h +++ b/core/include/esp/wdt_regs.h @@ -25,7 +25,9 @@ struct WDT_REGS { uint32_t volatile CTRL; // 0x00 uint32_t volatile REG1; // 0x04 uint32_t volatile REG2; // 0x08 - uint32_t volatile _unused[2]; // 0x0c - 0x10 + // Current value, decrementing + uint32_t volatile VAL; // 0x0c + uint32_t volatile _unused[1]; // 0x10 uint32_t volatile FEED; // 0x14 }; From 762eced543361b4e8ab933bc45202f692a0c9537 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 21 Aug 2016 15:47:40 +1000 Subject: [PATCH 064/349] sysparam: add a semaphore to synchronize writers. (#194) --- core/sysparam.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/sysparam.c b/core/sysparam.c index c77ad20..723656f 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -10,6 +10,8 @@ #include #include #include +#include "FreeRTOS.h" +#include "semphr.h" //TODO: make this properly threadsafe //TODO: reduce stack usage @@ -112,6 +114,7 @@ static struct { uint32_t end_addr; size_t region_size; bool force_compact; + xSemaphoreHandle sem; } _sysparam_info; /***************************** Internal routines *****************************/ @@ -571,6 +574,8 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { _sysparam_info.end_addr = ctx.addr; } + _sysparam_info.sem = xSemaphoreCreateMutex(); + return SYSPARAM_OK; } @@ -788,6 +793,8 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ if (key_len > MAX_KEY_LEN) return SYSPARAM_ERR_BADVALUE; if (value_len > MAX_VALUE_LEN) return SYSPARAM_ERR_BADVALUE; + xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); + if (!value) value_len = 0; debug(1, "updating value for '%s' (%d bytes)", key, value_len); @@ -795,7 +802,10 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ // The passed value isn't word-aligned. This will be a problem later // when calling `sdk_spi_flash_write`, so make a word-aligned copy. buffer = malloc(value_len); - if (!buffer) return SYSPARAM_ERR_NOMEM; + if (!buffer) { + status = SYSPARAM_ERR_NOMEM; + goto done; + } memcpy(buffer, value, value_len); value = buffer; free_value = true; @@ -804,7 +814,8 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ buffer = malloc(key_len); if (!buffer) { if (free_value) free((void *)value); - return SYSPARAM_ERR_NOMEM; + status = SYSPARAM_ERR_NOMEM; + goto done; } do { @@ -945,6 +956,10 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ if (free_value) free((void *)value); free(buffer); + + done: + xSemaphoreGive(_sysparam_info.sem); + return status; } From fb33995bc4d90f6b0c9c4d867ac90f43e8ce33d8 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 26 Aug 2016 07:11:59 +1000 Subject: [PATCH 065/349] sysparam editor: add echo-on and echo-off commands. (#199) Helpful to be able to disable echo when sending commands fast, so that the editor can consume them fast than they arrive. This adds 'echo-on' and 'echo-off' commands to set the echo state. --- examples/sysparam_editor/sysparam_editor.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index 22f6190..f2244e1 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -6,6 +6,8 @@ #include #include +#include "espressif/esp_common.h" +#include "esp/uart.h" #define CMD_BUF_SIZE 5000 @@ -30,6 +32,8 @@ void usage(void) { " : -- Set to binary value represented as hex\n" " dump -- Show all currently set keys/values\n" " reformat -- Reinitialize (clear) the sysparam area\n" + " echo-off -- Disable input echo\n" + " echo-on -- Enable input echo\n" " help -- Show this help screen\n" ); } @@ -150,6 +154,7 @@ void sysparam_editor_task(void *pvParameters) { size_t len; uint8_t *data; uint32_t base_addr, num_sectors; + bool echo = true; if (!cmd_buffer) { printf("ERROR: Cannot allocate command buffer!\n"); @@ -171,7 +176,7 @@ void sysparam_editor_task(void *pvParameters) { } while (true) { printf("==> "); - len = tty_readline(cmd_buffer, CMD_BUF_SIZE, true); + len = tty_readline(cmd_buffer, CMD_BUF_SIZE, echo); status = 0; if (!len) continue; if (cmd_buffer[len - 1] == '?') { @@ -214,6 +219,12 @@ void sysparam_editor_task(void *pvParameters) { // using. status = sysparam_init(base_addr, 0); } + } else if (!strcmp(cmd_buffer, "echo-on")) { + echo = true; + printf("Echo on\n"); + } else if (!strcmp(cmd_buffer, "echo-off")) { + echo = false; + printf("Echo off\n"); } else if (!strcmp(cmd_buffer, "help")) { usage(); } else { @@ -229,5 +240,7 @@ void sysparam_editor_task(void *pvParameters) { void user_init(void) { + uart_set_baud(0, 115200); + xTaskCreate(sysparam_editor_task, (signed char *)"sysparam_editor_task", 512, NULL, 2, NULL); } From 03248a96c74bdecc385b1c941756915af7e0d48d Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 28 Aug 2016 06:18:13 +1000 Subject: [PATCH 066/349] libmain: add sdk_system_uart_swap and sdk_system_uart_de_swap (#171) --- open_esplibs/libmain/user_interface.c | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index c3940b1..823e88f 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -558,4 +558,38 @@ enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void) { return sdk_dhcpc_flag; } +void sdk_system_uart_swap() +{ + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(0).STATUS)) {}; + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(1).STATUS)) {}; + + /* Disable pullup IO_MUX_MTDO, Alt TX. GPIO15. */ + iomux_set_pullup_flags(3, 0); + /* IO_MUX_MTDO to function UART0_RTS. */ + iomux_set_function(3, IOMUX_GPIO15_FUNC_UART0_RTS); + /* Enable pullup MUX_MTCK. Alt RX. GPIO13. */ + iomux_set_pullup_flags(1, IOMUX_PIN_PULLUP); + /* IO_MUX_MTCK to function UART0_CTS. */ + iomux_set_function(1, IOMUX_GPIO13_FUNC_UART0_CTS); + + DPORT.PERI_IO |= DPORT_PERI_IO_SWAP_UART0_PINS; +} + +void sdk_system_uart_de_swap() +{ + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(0).STATUS)) {}; + while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(1).STATUS)) {}; + + /* Disable pullup IO_MUX_U0TXD, TX. GPIO 1. */ + iomux_set_pullup_flags(5, 0); + /* IO_MUX_U0TXD to function UART0_TXD. */ + iomux_set_function(5, IOMUX_GPIO1_FUNC_UART0_TXD); + /* Enable pullup IO_MUX_U0RXD. RX. GPIO 3. */ + iomux_set_pullup_flags(4, IOMUX_PIN_PULLUP); + /* IO_MUX_U0RXD to function UART0_RXD. */ + iomux_set_function(4, IOMUX_GPIO3_FUNC_UART0_RXD); + + DPORT.PERI_IO &= ~DPORT_PERI_IO_SWAP_UART0_PINS; +} + #endif /* OPEN_LIBMAIN_USER_INTERFACE */ From c9851e9253bd25d2871d8967b58aaa73fe67afb3 Mon Sep 17 00:00:00 2001 From: Vlad Ivanov Date: Sat, 27 Aug 2016 23:23:27 +0300 Subject: [PATCH 067/349] FreeRTOS: Drop reference to xthal_set_intset (#198) --- FreeRTOS/Source/portable/esp8266/port.c | 2 +- ld/program.ld | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index 54bca65..1167aaf 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -143,7 +143,7 @@ void IRAM PendSV(enum SVC_ReqType req) else if(req == SVC_MACLayer) pending_maclayer_sv= 1; - xthal_set_intset(BIT(INUM_SOFT)); + WSR(BIT(INUM_SOFT), interrupt); vPortExitCritical(); } diff --git a/ld/program.ld b/ld/program.ld index 88fa0f4..d040a2f 100644 --- a/ld/program.ld +++ b/ld/program.ld @@ -131,9 +131,6 @@ SECTIONS *libc.a:*findfp.o(.literal .text .literal.* .text.*) *libc.a:*fputwc.o(.literal .text .literal.* .text.*) - /* xthal_set_intset() called from PendSV in NMI context */ - *libhal.a:*set_intset.o(.literal .text .literal.* .text.*) - *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.fini.literal) *(.fini) From 7041c014bb5dc2f697cf209149f5cb7f245185f3 Mon Sep 17 00:00:00 2001 From: rongsaws Date: Mon, 29 Aug 2016 10:55:32 -0700 Subject: [PATCH 068/349] Added a MQTT pub/sub example of using AWS IoT (#173) * Added a MQTT pub/sub example of using AWS IoT (via ECC based TLS1.2 connection). * Fixed a buffer overflow issue when receiving large MQTT packet. * Reset TLS connection on read/write errors. --- examples/aws_iot/Makefile | 3 + examples/aws_iot/README.md | 60 +++++++ examples/aws_iot/aws_iot.c | 280 ++++++++++++++++++++++++++++++ examples/aws_iot/ca_cert.c | 29 ++++ examples/aws_iot/client_config.c | 17 ++ examples/aws_iot/mbedtls/config.h | 119 +++++++++++++ examples/aws_iot/ssl_connection.c | 170 ++++++++++++++++++ examples/aws_iot/ssl_connection.h | 40 +++++ extras/paho_mqtt_c/MQTTClient.c | 9 +- 9 files changed, 725 insertions(+), 2 deletions(-) create mode 100644 examples/aws_iot/Makefile create mode 100644 examples/aws_iot/README.md create mode 100644 examples/aws_iot/aws_iot.c create mode 100644 examples/aws_iot/ca_cert.c create mode 100644 examples/aws_iot/client_config.c create mode 100644 examples/aws_iot/mbedtls/config.h create mode 100644 examples/aws_iot/ssl_connection.c create mode 100644 examples/aws_iot/ssl_connection.h diff --git a/examples/aws_iot/Makefile b/examples/aws_iot/Makefile new file mode 100644 index 0000000..677148a --- /dev/null +++ b/examples/aws_iot/Makefile @@ -0,0 +1,3 @@ +PROGRAM=aws_iot +EXTRA_COMPONENTS = extras/paho_mqtt_c extras/mbedtls +include ../../common.mk diff --git a/examples/aws_iot/README.md b/examples/aws_iot/README.md new file mode 100644 index 0000000..daebef0 --- /dev/null +++ b/examples/aws_iot/README.md @@ -0,0 +1,60 @@ +Please follow the steps below to build and run the example on your ESP8266. + +1. Modify client_config.c to provide your own account-specific AWS IoT + endpoint, ECC-based client certificate, and private key. + + Your endpoint is in the form of ```.iot..amazonaws.com```. + It can be retrieved using the following command: + + ```sh + $ aws iot describe-endpoint + ``` + + Your ECC-based certificate and private key can be generated by using + the following commands: + + ```sh + $ openssl ecparam -out ecckey.key -name prime256v1 -genkey + $ openssl req -new -sha256 -key ecckey.key -nodes -out eccCsr.csr + $ aws iot create-certificate-from-csr --certificate-signing-request file://eccCsr.csr --certificate-pem-outfile eccCert.crt --set-as-active + ``` + + To convert the certificate or key file into C string, you could try + the following example: + + ```sh + $ cat ecckey.key | sed -e 's/^/"/g' | sed -e 's/$/\\r\\n"/g' + ``` + + *Note, more information about using ECC-based certificate with AWS IoT + can be found in the following blog* + + https://aws.amazon.com/blogs/iot/elliptic-curve-cryptography-and-forward-secrecy-support-in-aws-iot-3/ + +2. Create and attach AWS IoT access policy to the certificate + + ```sh + $ aws iot create-policy --policy-name test-thing-policy --policy-document '{ "Version": "2012-10-17", "Statement": [{"Action": ["iot:*"], "Resource": ["*"], "Effect": "Allow" }] }' + $ aws iot attach-principal-policy --policy-name test-thing-policy --principal "arn:aws:iot:eu-west-1:892804553548:cert/2d9c2da32a95b5e95a277c3b8f7af40869727f5259dc2e907fc8aba916c857e" + ``` + + *Note, the 'principal' argument is the certificate ARN generated from the + pervious command 'aws iot create-certificate-from-csr'.* + +3. Modify include/ssid_config.h with your Wifi access Id and credential. + +4. Build and flash the example firmware to the device using the command + below: + + ```sh + $ make flash -C examples/aws_iot ESPPORT=/dev/ttyUSB0 + ``` + + *Note, it assumes your ESP8266 is connected through USB and exposed under + your Linux host as /dev/ttyUSB0.* + +5. Once the ESP8266 is connected to AWS IoT, you can use the MQTT client + on the AWS IoT console to receive the messages published by the ESP8266 + to topic 'esp8266/status'. You could also publish 'on' or 'off' message + to topic 'esp8266/control' to toggle the GPIO/LED (GPIO2 is used by the + example). diff --git a/examples/aws_iot/aws_iot.c b/examples/aws_iot/aws_iot.c new file mode 100644 index 0000000..01ce9a1 --- /dev/null +++ b/examples/aws_iot/aws_iot.c @@ -0,0 +1,280 @@ +/* + * Derived from examples/mqtt_client/mqtt_client.c - added TLS1.2 support and some minor modifications. + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include + +// this must be ahead of any mbedtls header files so the local mbedtls/config.h can be properly referenced +#include "ssl_connection.h" + +#define MQTT_PUB_TOPIC "esp8266/status" +#define MQTT_SUB_TOPIC "esp8266/control" +#define GPIO_LED 2 +#define MQTT_PORT 8883 + +/* certs, key, and endpoint */ +extern char *ca_cert, *client_endpoint, *client_cert, *client_key; + +static int wifi_alive = 0; +static int ssl_reset; +static SSLConnection *ssl_conn; +static xQueueHandle publish_queue; + +static void beat_task(void *pvParameters) { + char msg[16]; + int count = 0; + + while (1) { + if (!wifi_alive) { + vTaskDelay(1000 / portTICK_RATE_MS); + continue; + } + + printf("Schedule to publish\r\n"); + + snprintf(msg, sizeof(msg), "%d", count); + if (xQueueSend(publish_queue, (void *) msg, 0) == pdFALSE) { + printf("Publish queue overflow\r\n"); + } + + vTaskDelay(10000 / portTICK_RATE_MS); + } +} + +static void topic_received(MessageData *md) { + MQTTMessage *message = md->message; + int i; + + printf("Received: "); + for (i = 0; i < md->topic->lenstring.len; ++i) + printf("%c", md->topic->lenstring.data[i]); + + printf(" = "); + for (i = 0; i < (int) message->payloadlen; ++i) + printf("%c", ((char *) (message->payload))[i]); + printf("\r\n"); + + if (!strncmp(message->payload, "on", 2)) { + printf("Turning on LED\r\n"); + gpio_write(GPIO_LED, 0); + } else if (!strncmp(message->payload, "off", 3)) { + printf("Turning off LED\r\n"); + gpio_write(GPIO_LED, 1); + } +} + +static const char *get_my_id(void) { + // Use MAC address for Station as unique ID + static char my_id[13]; + static bool my_id_done = false; + int8_t i; + uint8_t x; + if (my_id_done) + return my_id; + if (!sdk_wifi_get_macaddr(STATION_IF, (uint8_t *) my_id)) + return NULL; + for (i = 5; i >= 0; --i) { + x = my_id[i] & 0x0F; + if (x > 9) + x += 7; + my_id[i * 2 + 1] = x + '0'; + x = my_id[i] >> 4; + if (x > 9) + x += 7; + my_id[i * 2] = x + '0'; + } + my_id[12] = '\0'; + my_id_done = true; + return my_id; +} + +static int mqtt_ssl_read(Network* n, unsigned char* buffer, int len, + int timeout_ms) { + int r = ssl_read(ssl_conn, buffer, len, timeout_ms); + if (r <= 0 + && (r != MBEDTLS_ERR_SSL_WANT_READ + && r != MBEDTLS_ERR_SSL_WANT_WRITE + && r != MBEDTLS_ERR_SSL_TIMEOUT)) { + printf("%s: TLS read error (%d), resetting\n\r", __func__, r); + ssl_reset = 1; + }; + return r; +} + +static int mqtt_ssl_write(Network* n, unsigned char* buffer, int len, + int timeout_ms) { + int r = ssl_write(ssl_conn, buffer, len, timeout_ms); + if (r <= 0 + && (r != MBEDTLS_ERR_SSL_WANT_READ + && r != MBEDTLS_ERR_SSL_WANT_WRITE)) { + printf("%s: TLS write error (%d), resetting\n\r", __func__, r); + ssl_reset = 1; + } + return r; +} + +static void mqtt_task(void *pvParameters) { + int ret = 0; + struct Network network; + MQTTClient client = DefaultClient; + char mqtt_client_id[20]; + uint8_t mqtt_buf[100]; + uint8_t mqtt_readbuf[100]; + MQTTPacket_connectData data = MQTTPacket_connectData_initializer; + + memset(mqtt_client_id, 0, sizeof(mqtt_client_id)); + strcpy(mqtt_client_id, "ESP-"); + strcat(mqtt_client_id, get_my_id()); + + ssl_conn = (SSLConnection *) malloc(sizeof(SSLConnection)); + while (1) { + if (!wifi_alive) { + vTaskDelay(1000 / portTICK_RATE_MS); + continue; + } + + printf("%s: started\n\r", __func__); + ssl_reset = 0; + ssl_init(ssl_conn); + ssl_conn->ca_cert_str = ca_cert; + ssl_conn->client_cert_str = client_cert; + ssl_conn->client_key_str = client_key; + + NewNetwork(&network); + network.mqttread = mqtt_ssl_read; + network.mqttwrite = mqtt_ssl_write; + + printf("%s: connecting to MQTT server %s ... ", __func__, + client_endpoint); + ret = ssl_connect(ssl_conn, client_endpoint, MQTT_PORT); + + if (ret) { + printf("error: %d\n\r", ret); + ssl_destroy(ssl_conn); + continue; + } + printf("done\n\r"); + NewMQTTClient(&client, &network, 5000, mqtt_buf, 100, mqtt_readbuf, + 100); + + data.willFlag = 0; + data.MQTTVersion = 4; + data.cleansession = 1; + data.clientID.cstring = mqtt_client_id; + data.username.cstring = NULL; + data.password.cstring = NULL; + data.keepAliveInterval = 1000; + printf("Send MQTT connect ... "); + ret = MQTTConnect(&client, &data); + if (ret) { + printf("error: %d\n\r", ret); + ssl_destroy(ssl_conn); + continue; + } + printf("done\r\n"); + MQTTSubscribe(&client, MQTT_SUB_TOPIC, QOS1, topic_received); + xQueueReset(publish_queue); + + while (wifi_alive && !ssl_reset) { + char msg[64]; + while (xQueueReceive(publish_queue, (void *) msg, 0) == pdTRUE) { + portTickType task_tick = xTaskGetTickCount(); + uint32_t free_heap = xPortGetFreeHeapSize(); + uint32_t free_stack = uxTaskGetStackHighWaterMark(NULL); + snprintf(msg, sizeof(msg), "%u: free heap %u, free stack %u", + task_tick, free_heap, free_stack * 4); + printf("Publishing: %s\r\n", msg); + + MQTTMessage message; + message.payload = msg; + message.payloadlen = strlen(msg); + message.dup = 0; + message.qos = QOS1; + message.retained = 0; + ret = MQTTPublish(&client, MQTT_PUB_TOPIC, &message); + if (ret != SUCCESS) { + printf("error while publishing message: %d\n", ret); + break; + } + } + + ret = MQTTYield(&client, 1000); + if (ret == DISCONNECTED) + break; + } + printf("Connection dropped, request restart\n\r"); + ssl_destroy(ssl_conn); + } +} + +static void wifi_task(void *pvParameters) { + uint8_t status = 0; + uint8_t retries = 30; + struct sdk_station_config config = { .ssid = WIFI_SSID, .password = + WIFI_PASS, }; + + printf("%s: Connecting to WiFi\n\r", __func__); + sdk_wifi_set_opmode (STATION_MODE); + sdk_wifi_station_set_config(&config); + + while (1) { + wifi_alive = 0; + + while ((status != STATION_GOT_IP) && (retries)) { + status = sdk_wifi_station_get_connect_status(); + printf("%s: status = %d\n\r", __func__, status); + if (status == STATION_WRONG_PASSWORD) { + printf("WiFi: wrong password\n\r"); + break; + } else if (status == STATION_NO_AP_FOUND) { + printf("WiFi: AP not found\n\r"); + break; + } else if (status == STATION_CONNECT_FAIL) { + printf("WiFi: connection failed\r\n"); + break; + } + vTaskDelay(1000 / portTICK_RATE_MS); + --retries; + } + + while ((status = sdk_wifi_station_get_connect_status()) + == STATION_GOT_IP) { + if (wifi_alive == 0) { + printf("WiFi: Connected\n\r"); + wifi_alive = 1; + } + vTaskDelay(500 / portTICK_RATE_MS); + } + + wifi_alive = 0; + printf("WiFi: disconnected\n\r"); + vTaskDelay(1000 / portTICK_RATE_MS); + } +} + +void user_init(void) { + uart_set_baud(0, 115200); + printf("SDK version: %s, free heap %u\n", sdk_system_get_sdk_version(), + xPortGetFreeHeapSize()); + + gpio_enable(GPIO_LED, GPIO_OUTPUT); + gpio_write(GPIO_LED, 1); + + publish_queue = xQueueCreate(3, 16); + xTaskCreate(&wifi_task, (int8_t *) "wifi_task", 256, NULL, 2, NULL); + xTaskCreate(&beat_task, (int8_t *) "beat_task", 256, NULL, 2, NULL); + xTaskCreate(&mqtt_task, (int8_t *) "mqtt_task", 2048, NULL, 2, NULL); +} diff --git a/examples/aws_iot/ca_cert.c b/examples/aws_iot/ca_cert.c new file mode 100644 index 0000000..b2db9fb --- /dev/null +++ b/examples/aws_iot/ca_cert.c @@ -0,0 +1,29 @@ +// trusted root CA certificate - https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem +const char *ca_cert = "-----BEGIN CERTIFICATE-----\r\n" + "MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB\r\n" + "yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" + "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\r\n" + "U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\r\n" + "ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\r\n" + "aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL\r\n" + "MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\r\n" + "ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln\r\n" + "biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp\r\n" + "U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y\r\n" + "aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1\r\n" + "nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex\r\n" + "t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz\r\n" + "SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG\r\n" + "BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+\r\n" + "rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/\r\n" + "NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E\r\n" + "BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH\r\n" + "BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy\r\n" + "aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv\r\n" + "MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE\r\n" + "p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y\r\n" + "5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK\r\n" + "WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ\r\n" + "4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N\r\n" + "hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq\r\n" + "-----END CERTIFICATE-----\r\n"; diff --git a/examples/aws_iot/client_config.c b/examples/aws_iot/client_config.c new file mode 100644 index 0000000..8b587c2 --- /dev/null +++ b/examples/aws_iot/client_config.c @@ -0,0 +1,17 @@ +// AWS IoT client endpoint +const char *client_endpoint = ".iot..amazonaws.com"; + +// AWS IoT device certificate (ECC) +const char *client_cert = +"-----BEGIN CERTIFICATE-----\r\n" +"------------------ -------------------\r\n" +"-----END CERTIFICATE-----\r\n"; + +// AWS IoT device private key (ECC) +const char *client_key = +"-----BEGIN EC PARAMETERS-----\r\n" +"BggqhkjOPQMBBw==\r\n" +"-----END EC PARAMETERS-----\r\n" +"-----BEGIN EC PRIVATE KEY-----\r\n" +"------------------ -------------------\r\n" +"-----END EC PRIVATE KEY-----\r\n"; diff --git a/examples/aws_iot/mbedtls/config.h b/examples/aws_iot/mbedtls/config.h new file mode 100644 index 0000000..f3b4411 --- /dev/null +++ b/examples/aws_iot/mbedtls/config.h @@ -0,0 +1,119 @@ +/** + * \file config.h + * + * \brief Configuration options (set of defines) + * + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) + */ + +/* + * This set of compile-time options may be used to enable + * or disable features selectively, and reduce the global + * memory footprint. + */ +#ifndef MBEDTLS_CONFIG_H +#define MBEDTLS_CONFIG_H + +/* System support */ +#define MBEDTLS_HAVE_ASM +#define MBEDTLS_DEPRECATED_WARNING +#define MBEDTLS_ENTROPY_HARDWARE_ALT +#define MBEDTLS_NO_PLATFORM_ENTROPY + +/* mbed TLS feature support */ +#define MBEDTLS_ECP_DP_SECP256R1_ENABLED +#define MBEDTLS_ECP_DP_SECP384R1_ENABLED +#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED +#define MBEDTLS_SSL_PROTO_TLS1_2 + +/* Debug support (optional) */ +// #define MBEDTLS_ERROR_C +// #define MBEDTLS_DEBUG_C + +/* mbed TLS modules */ +#define MBEDTLS_AES_C +#define MBEDTLS_ASN1_PARSE_C +#define MBEDTLS_ASN1_WRITE_C +#define MBEDTLS_BIGNUM_C +#define MBEDTLS_CIPHER_C +#define MBEDTLS_CTR_DRBG_C +#define MBEDTLS_ECDH_C +#define MBEDTLS_ECDSA_C +#define MBEDTLS_ECP_C +#define MBEDTLS_ENTROPY_C +#define MBEDTLS_GCM_C +#define MBEDTLS_MD_C +#define MBEDTLS_NET_C +#define MBEDTLS_OID_C +#define MBEDTLS_PK_C +#define MBEDTLS_PK_PARSE_C +#define MBEDTLS_SHA256_C +#define MBEDTLS_SHA512_C +#define MBEDTLS_SSL_CLI_C +#define MBEDTLS_SSL_SRV_C +#define MBEDTLS_SSL_TLS_C +#define MBEDTLS_X509_CRT_PARSE_C +#define MBEDTLS_X509_USE_C + +/* For verify RSA based root CA certificate (optional if root CA cert is signed using ECC) */ +#define MBEDTLS_RSA_C +#define MBEDTLS_SHA1_C +#define MBEDTLS_PKCS1_V15 +#define MBEDTLS_PKCS1_V21 + +/* For test certificates */ +#define MBEDTLS_BASE64_C +#define MBEDTLS_CERTS_C +#define MBEDTLS_PEM_PARSE_C + +/* Save RAM at the expense of ROM */ +#define MBEDTLS_AES_ROM_TABLES + +/* Save RAM by adjusting to our exact needs */ +#define MBEDTLS_ECP_MAX_BITS 384 +#define MBEDTLS_MPI_MAX_SIZE 256 // 2048 bits + +/* Save RAM at the expense of speed, see ecp.h */ +#define MBEDTLS_ECP_WINDOW_SIZE 2 +#define MBEDTLS_ECP_FIXED_POINT_OPTIM 0 + +/* Significant speed benefit at the expense of some ROM */ +#define MBEDTLS_ECP_NIST_OPTIM + +/* + * You should adjust this to the exact number of sources you're using: default + * is the "mbedtls_platform_entropy_poll" source, but you may want to add other ones. + * Minimum is 2 for the entropy test suite. + */ +#define MBEDTLS_ENTROPY_MAX_SOURCES 2 + +/* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */ +#define MBEDTLS_SSL_CIPHERSUITES \ + MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 + +/* + * Save RAM at the expense of interoperability: do this only if you control + * both ends of the connection! (See coments in "mbedtls/ssl.h".) + * The minimum size here depends on the certificate chain used as well as the + * typical size of records. + */ +#define MBEDTLS_SSL_MAX_CONTENT_LEN 4096 + +#include "mbedtls/check_config.h" + +#endif /* MBEDTLS_CONFIG_H */ diff --git a/examples/aws_iot/ssl_connection.c b/examples/aws_iot/ssl_connection.c new file mode 100644 index 0000000..be5bb23 --- /dev/null +++ b/examples/aws_iot/ssl_connection.c @@ -0,0 +1,170 @@ +#include +#include +#include +#include +#include +#include + +// this must be ahead of any mbedtls header files so the local mbedtls/config.h can be properly referenced +#include "ssl_connection.h" + +#define SSL_READ_TIMEOUT_MS 2000 + +const char *pers = "esp-tls"; + +static int handle_error(int err) { + +#ifdef MBEDTLS_ERROR_C + char error_buf[100]; + + mbedtls_strerror(err, error_buf, 100); + printf("%s\n", error_buf); +#endif + printf("Error: %d\n", err); + return err; +} + +#ifdef MBEDTLS_DEBUG_C +static void my_debug(void *ctx, int level, const char *file, int line, + const char *str) { + ((void) level); + fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); +} +#endif + +void ssl_init(SSLConnection* conn) { + /* + * Initialize the RNG and the session data + */ + mbedtls_net_init(&conn->net_ctx); + mbedtls_ssl_init(&conn->ssl_ctx); + mbedtls_ssl_config_init(&conn->ssl_conf); + + mbedtls_x509_crt_init(&conn->ca_cert); + mbedtls_x509_crt_init(&conn->client_cert); + mbedtls_pk_init(&conn->client_key); + + mbedtls_ctr_drbg_init(&conn->drbg_ctx); + mbedtls_entropy_init(&conn->entropy_ctx); + +} + +int ssl_connect(SSLConnection* conn, const char* host, int port) { + int ret; + char buffer[8]; + + ret = mbedtls_ctr_drbg_seed(&conn->drbg_ctx, mbedtls_entropy_func, + &conn->entropy_ctx, (const unsigned char *) pers, strlen(pers)); + if (ret < 0) { + return -1; + } + + ret = mbedtls_x509_crt_parse(&conn->ca_cert, + (const unsigned char *) conn->ca_cert_str, + strlen(conn->ca_cert_str) + 1); + if (ret < 0) { + return handle_error(ret); + } + + ret = mbedtls_x509_crt_parse(&conn->client_cert, + (const unsigned char *) conn->client_cert_str, + strlen(conn->client_cert_str) + 1); + if (ret < 0) { + return handle_error(ret); + } + + ret = mbedtls_pk_parse_key(&conn->client_key, + (const unsigned char *) conn->client_key_str, + strlen(conn->client_key_str) + 1, NULL, 0); + if (ret != 0) { + return handle_error(ret); + } + + snprintf(buffer, sizeof(buffer), "%d", port); + ret = mbedtls_net_connect(&conn->net_ctx, host, buffer, + MBEDTLS_NET_PROTO_TCP); + if (ret != 0) { + return handle_error(ret); + } + + ret = mbedtls_ssl_config_defaults(&conn->ssl_conf, MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT); + if (ret != 0) { + return handle_error(ret); + } + +#ifdef MBEDTLS_DEBUG_C + mbedtls_ssl_conf_dbg(&conn->ssl_conf, my_debug, stdout); + mbedtls_debug_set_threshold(5); +#endif + + mbedtls_ssl_conf_authmode(&conn->ssl_conf, MBEDTLS_SSL_VERIFY_REQUIRED); + mbedtls_ssl_conf_rng(&conn->ssl_conf, mbedtls_ctr_drbg_random, + &conn->drbg_ctx); + mbedtls_ssl_conf_read_timeout(&conn->ssl_conf, SSL_READ_TIMEOUT_MS); + mbedtls_ssl_conf_ca_chain(&conn->ssl_conf, &conn->ca_cert, NULL); + + ret = mbedtls_ssl_conf_own_cert(&conn->ssl_conf, &conn->client_cert, + &conn->client_key); + if (ret != 0) { + return handle_error(ret); + } + + ret = mbedtls_ssl_setup(&conn->ssl_ctx, &conn->ssl_conf); + if (ret != 0) { + return handle_error(ret); + } + + ret = mbedtls_ssl_set_hostname(&conn->ssl_ctx, host); + if (ret != 0) { + return handle_error(ret); + } + + mbedtls_ssl_set_bio(&conn->ssl_ctx, &conn->net_ctx, mbedtls_net_send, NULL, + mbedtls_net_recv_timeout); + + while ((ret = mbedtls_ssl_handshake(&conn->ssl_ctx)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ + && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) { + return handle_error(ret); + } + } + handle_error(ret); + + vTaskDelay(5000 / portTICK_RATE_MS); + } + + mbedtls_ssl_get_record_expansion(&conn->ssl_ctx); + ret = mbedtls_ssl_get_verify_result(&conn->ssl_ctx); + if (ret != 0) { + return handle_error(ret); + } + + return ret; +} + +int ssl_destroy(SSLConnection* conn) { + mbedtls_net_free(&conn->net_ctx); + mbedtls_ssl_free(&conn->ssl_ctx); + mbedtls_ssl_config_free(&conn->ssl_conf); + mbedtls_ctr_drbg_free(&conn->drbg_ctx); + mbedtls_entropy_free(&conn->entropy_ctx); + mbedtls_x509_crt_free(&conn->ca_cert); + mbedtls_x509_crt_free(&conn->client_cert); + mbedtls_pk_free(&conn->client_key); + + return 0; +} + +int ssl_read(SSLConnection* n, unsigned char* buffer, int len, int timeout_ms) { + // NB: timeout_ms is ignored, so blocking read will timeout after SSL_READ_TIMEOUT_MS + return mbedtls_ssl_read(&n->ssl_ctx, buffer, len); +} + +int ssl_write(SSLConnection* n, unsigned char* buffer, int len, + int timeout_ms) { + // NB: timeout_ms is ignored, so write is always block write + return mbedtls_ssl_write(&n->ssl_ctx, buffer, len); +} diff --git a/examples/aws_iot/ssl_connection.h b/examples/aws_iot/ssl_connection.h new file mode 100644 index 0000000..b8d1bf1 --- /dev/null +++ b/examples/aws_iot/ssl_connection.h @@ -0,0 +1,40 @@ +#ifndef _SSL_CONNECTION_H_ +#define _SSL_CONNECTION_H_ + +// this must be ahead of any mbedtls header files so the local mbedtls/config.h can be properly referenced +#include "mbedtls/config.h" + +#include "mbedtls/net.h" +#include "mbedtls/debug.h" +#include "mbedtls/ssl.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" +#include "mbedtls/error.h" +#include "mbedtls/certs.h" + +typedef struct SSLConnection { + mbedtls_net_context net_ctx; + mbedtls_ssl_context ssl_ctx; + mbedtls_ssl_config ssl_conf; + + mbedtls_ctr_drbg_context drbg_ctx; + mbedtls_entropy_context entropy_ctx; + + mbedtls_x509_crt ca_cert; + mbedtls_x509_crt client_cert; + mbedtls_pk_context client_key; + + char *ca_cert_str; + char *client_cert_str; + char *client_key_str; +} SSLConnection; + +extern void ssl_init(SSLConnection* n); +extern int ssl_connect(SSLConnection* n, const char* host, int port); +extern int ssl_destroy(SSLConnection* n); +extern int ssl_read(SSLConnection* n, unsigned char* buffer, int len, + int timeout_ms); +extern int ssl_write(SSLConnection* n, unsigned char* buffer, int len, + int timeout_ms); + +#endif /* _SSL_CONNECTION_H_ */ diff --git a/extras/paho_mqtt_c/MQTTClient.c b/extras/paho_mqtt_c/MQTTClient.c index 4df3d8e..9651ca7 100644 --- a/extras/paho_mqtt_c/MQTTClient.c +++ b/extras/paho_mqtt_c/MQTTClient.c @@ -94,8 +94,13 @@ int readPacket(MQTTClient* c, Timer* timer) goto exit; len = 1; /* 2. read the remaining length. This is variable in itself */ - decodePacket(c, &rem_len, left_ms(timer)); - len += MQTTPacket_encode(c->readbuf + 1, rem_len); /* put the original remaining length back into the buffer */ + len += decodePacket(c, &rem_len, left_ms(timer)); + if (len <= 1 || len + rem_len > c->readbuf_size) /* if packet is too big to fit in our readbuf, abort */ + { + rc = READ_ERROR; + goto exit; + } + MQTTPacket_encode(c->readbuf + 1, rem_len); /* put the original remaining length back into the buffer */ /* 3. read the rest of the buffer using a callback to supply the rest of the data */ if (rem_len > 0 && (c->ipstack->mqttread(c->ipstack, c->readbuf + len, rem_len, left_ms(timer)) != rem_len)) { From 0962255d91e84fffb3d063bb32c79a6d4754e2b1 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 31 Aug 2016 01:45:35 +0300 Subject: [PATCH 069/349] esp/interrupts.h: Add RTC interrupt number. 40002a58 $a3 = rtc_intr_handler 40002a5e $a4 = 0x0 40002a60 $a2 = 0x3 40002a62 call ets_isr_attach --- core/include/esp/interrupts.h | 1 + 1 file changed, 1 insertion(+) diff --git a/core/include/esp/interrupts.h b/core/include/esp/interrupts.h index e539aa6..47594a2 100644 --- a/core/include/esp/interrupts.h +++ b/core/include/esp/interrupts.h @@ -20,6 +20,7 @@ typedef enum { INUM_WDEV_FIQ = 0, INUM_SLC = 1, INUM_SPI = 2, + INUM_RTC = 3, INUM_GPIO = 4, INUM_UART = 5, INUM_TICK = 6, /* RTOS timer tick, possibly xtensa CPU CCOMPARE0(?) */ From c52890eed7680f9249909977e3bd26785aa3bd5a Mon Sep 17 00:00:00 2001 From: ourairquality Date: Tue, 30 Aug 2016 21:22:05 +1000 Subject: [PATCH 070/349] GPIO16 support. --- core/esp_gpio.c | 17 +++++++++++++++++ core/include/esp/gpio.h | 14 ++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/core/esp_gpio.c b/core/esp_gpio.c index 8d12be1..f6db1ef 100644 --- a/core/esp_gpio.c +++ b/core/esp_gpio.c @@ -5,9 +5,26 @@ * BSD Licensed as described in the file LICENSE */ #include +#include void gpio_enable(const uint8_t gpio_num, const gpio_direction_t direction) { + if (gpio_num == 16) { + RTC.GPIO_CFG[3] = (RTC.GPIO_CFG[3] & 0xffffffbc) | 1; + RTC.GPIO_CONF = (RTC.GPIO_CONF & 0xfffffffe) | 0; + switch (direction) { + case GPIO_INPUT: + RTC.GPIO_ENABLE = (RTC.GPIO_OUT & 0xfffffffe); + break; + case GPIO_OUTPUT: + case GPIO_OUT_OPEN_DRAIN: + /* TODO open drain? */ + RTC.GPIO_ENABLE = (RTC.GPIO_OUT & 0xfffffffe) | 1; + break; + } + return; + } + switch (direction) { case GPIO_INPUT: GPIO.ENABLE_OUT_CLEAR = BIT(gpio_num); diff --git a/core/include/esp/gpio.h b/core/include/esp/gpio.h index 80fd43f..f3f6308 100644 --- a/core/include/esp/gpio.h +++ b/core/include/esp/gpio.h @@ -10,6 +10,7 @@ #define _ESP_GPIO_H #include #include "esp/gpio_regs.h" +#include "esp/rtc_regs.h" #include "esp/iomux.h" #include "esp/interrupts.h" @@ -23,7 +24,7 @@ typedef enum { GPIO_OUT_OPEN_DRAIN, /* Open drain output */ } gpio_direction_t; -/* Enable GPIO on the specified pin, and set it to input or output mode +/* Enable GPIO on the specified pin, and set it to input or output mode. */ void gpio_enable(const uint8_t gpio_num, const gpio_direction_t direction); @@ -80,7 +81,9 @@ static inline void gpio_set_output_on_sleep(const uint8_t gpio_num, bool enabled */ static inline void gpio_write(const uint8_t gpio_num, const bool set) { - if (set) + if (gpio_num == 16) { + RTC.GPIO_OUT = (RTC.GPIO_OUT & 0xfffffffe) | (set ? 1 : 0); + } else if (set) GPIO.OUT_SET = BIT(gpio_num) & GPIO_OUT_PIN_MASK; else GPIO.OUT_CLEAR = BIT(gpio_num) & GPIO_OUT_PIN_MASK; @@ -101,7 +104,7 @@ static inline void gpio_toggle(const uint8_t gpio_num) get an invalid value. Prevents one task from clobbering another task's pins, without needing to disable/enable interrupts. */ - if(GPIO.OUT & BIT(gpio_num)) + if (GPIO.OUT & BIT(gpio_num)) GPIO.OUT_CLEAR = BIT(gpio_num) & GPIO_OUT_PIN_MASK; else GPIO.OUT_SET = BIT(gpio_num) & GPIO_OUT_PIN_MASK; @@ -118,7 +121,10 @@ static inline void gpio_toggle(const uint8_t gpio_num) */ static inline bool gpio_read(const uint8_t gpio_num) { - return GPIO.IN & BIT(gpio_num); + if (gpio_num == 16) + return RTC.GPIO_IN & 1; + else + return GPIO.IN & BIT(gpio_num); } extern void gpio_interrupt_handler(void); From e6eda5c3ffb58e93420641b0b19e2e8f31e537f6 Mon Sep 17 00:00:00 2001 From: ourairquality Date: Thu, 1 Sep 2016 21:18:09 +1000 Subject: [PATCH 071/349] i2c: use open drain for output rather than flipping between input and output. --- extras/i2c/i2c.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index df26ed2..2d31e8e 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -49,48 +49,47 @@ void i2c_init(uint8_t scl_pin, uint8_t sda_pin) gpio_set_pullup(g_scl_pin, 1, 1); gpio_set_pullup(g_sda_pin, 1, 1); - // I2C bus idle state. - gpio_enable(g_scl_pin, GPIO_INPUT); - gpio_enable(g_scl_pin, GPIO_INPUT); + gpio_enable(g_scl_pin, GPIO_OUT_OPEN_DRAIN); + gpio_enable(g_sda_pin, GPIO_OUT_OPEN_DRAIN); - // Set the pins to a low output state for when they are configured - // as outputs. - gpio_write(g_scl_pin, 0); - gpio_write(g_sda_pin, 0); + // I2C bus idle state. + gpio_write(g_scl_pin, 1); + gpio_write(g_sda_pin, 1); } -static void i2c_delay(void) +static inline void i2c_delay(void) { sdk_os_delay_us(CLK_HALF_PERIOD_US); } // Set SCL as input, allowing it to float high, and return current // level of line, 0 or 1 -static bool read_scl(void) +static inline bool read_scl(void) { - gpio_enable(g_scl_pin, GPIO_INPUT); + gpio_write(g_scl_pin, 1); return gpio_read(g_scl_pin); // Clock high, valid ACK } -// Set SDA as input and return current level of line, 0 or 1 -static bool read_sda(void) +// Set SDA as input, allowing it to float high, and return current +// level of line, 0 or 1 +static inline bool read_sda(void) { - gpio_enable(g_sda_pin, GPIO_INPUT); + gpio_write(g_sda_pin, 1); // TODO: Without this delay we get arbitration lost in i2c_stop i2c_delay(); return gpio_read(g_sda_pin); // Clock high, valid ACK } // Actively drive SCL signal low -static void clear_scl(void) +static inline void clear_scl(void) { - gpio_enable(g_scl_pin, GPIO_OUT_OPEN_DRAIN); + gpio_write(g_scl_pin, 0); } // Actively drive SDA signal low -static void clear_sda(void) +static inline void clear_sda(void) { - gpio_enable(g_sda_pin, GPIO_OUT_OPEN_DRAIN); + gpio_write(g_sda_pin, 0); } // Output start condition From 285dedd8f5ec92ccbd359caa64fcf19c27cc8465 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 4 Sep 2016 23:18:32 +0300 Subject: [PATCH 072/349] esp/gpio_regs.h: Add info about strapping pins captured in GPIO.IN register. Specifically, in the high 16 bits of GPIO.IN register. --- core/include/esp/gpio_regs.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/include/esp/gpio_regs.h b/core/include/esp/gpio_regs.h index 6ff1f92..c5a446c 100644 --- a/core/include/esp/gpio_regs.h +++ b/core/include/esp/gpio_regs.h @@ -40,6 +40,22 @@ * be reset by writing to STATUS or STATUS_CLEAR. * * (_SET/_CLEAR function similarly to OUT registers) + * + * IN: + * + * Low 16 bits represent GPIO0-15 state (see also above). + * + * High 16 bits represent "strapping pins" values captured at reset time: + * bit 31 - GPIO10 (SD_DATA3) + * bit 30 - GPIO9 (SD_DATA2) + * bit 29 - GPIO7 (SD_DATA0) + * bit 18 - GPIO15 (MTDO) + * bit 17 - GPIO0 + * bit 16 - GPIO2 + * (In other words, highest 3 and lowest 3 bits of 16-bit half-word are used). + * BootROM uses strapping pin values to determine boot mode. + * + * Source and more information: 0D-ESP8266__Pin_List*.xlsx document */ struct GPIO_REGS { From 97de07f8b2c0323bcb06c4dc45c261e0c332be7a Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 15 Sep 2016 16:16:54 +1000 Subject: [PATCH 073/349] Comment the sdk_station_config slots. (#217) Note bssid_set should be set to one if the bssid is used otherwise zero. --- include/espressif/esp_sta.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/espressif/esp_sta.h b/include/espressif/esp_sta.h index fdfc1cf..c5f585a 100644 --- a/include/espressif/esp_sta.h +++ b/include/espressif/esp_sta.h @@ -15,10 +15,10 @@ extern "C" { #endif struct sdk_station_config { - uint8_t ssid[32]; - uint8_t password[64]; - uint8_t bssid_set; - uint8_t bssid[6]; + uint8_t ssid[32]; /* Null terminated string */ + uint8_t password[64]; /* Null terminated string */ + uint8_t bssid_set; /* One if bssid is used, otherwise zero. */ + uint8_t bssid[6]; /* The BSSID bytes */ }; bool sdk_wifi_station_get_config(struct sdk_station_config *config); From 4c78db81d8371195b0aca141927b39cdff0638f2 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 15 Sep 2016 16:17:26 +1000 Subject: [PATCH 074/349] sysparams: get/set int32 and int8 apis. (#209) Rename the get/set_int api functions to get/set_int32. Add get/set_int8 api functions too in anticipation of more efficient implementations for these. --- core/include/sysparam.h | 62 +++++++++++++++++++++++++++++++++-------- core/sysparam.c | 19 +++++++++++-- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/core/include/sysparam.h b/core/include/sysparam.h index 2894302..6fe48b8 100644 --- a/core/include/sysparam.h +++ b/core/include/sysparam.h @@ -169,7 +169,7 @@ sysparam_status_t sysparam_get_info(uint32_t *base_addr, uint32_t *num_sectors); */ sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t *actual_length, bool *is_binary); -/** Get the value associate with a key (static buffers only) +/** Get the value associated with a key (static buffers only) * * This performs the same function as sysparam_get_data() but without * performing any memory allocations. It can thus be used before the heap has @@ -231,8 +231,7 @@ sysparam_status_t sysparam_get_string(const char *key, char **destptr); /** Get the int32_t value associated with a key * * This routine can be used if you know that the value in a key will (or at - * least should) be an integer value. It will parse the stored data as a - * number (in standard decimal or "0x" hex notation) and return the result. + * least should) be an int32_t value. * * Note: If the status result is anything other than ::SYSPARAM_OK, the value * in `result` is not changed. This means it is possible to set a default @@ -251,7 +250,31 @@ sysparam_status_t sysparam_get_string(const char *key, char **destptr); * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash */ -sysparam_status_t sysparam_get_int(const char *key, int32_t *result); +sysparam_status_t sysparam_get_int32(const char *key, int32_t *result); + +/** Get the int8_t value associated with a key + * + * This routine can be used if you know that the value in a key will (or at + * least should) be a uint8_t binary value. + * + * Note: If the status result is anything other than ::SYSPARAM_OK, the value + * in `result` is not changed. This means it is possible to set a default + * value before calling this function which will be left as-is if a sysparam + * value could not be successfully read. + * + * @param[in] key Key name (zero-terminated string) + * @param[out] result Pointer to a location to hold returned boolean value + * + * @retval ::SYSPARAM_OK Value successfully retrieved. + * @retval ::SYSPARAM_NOTFOUND Key/value not found. + * @retval ::SYSPARAM_PARSEFAILED The retrieved value could not be parsed as a + * boolean setting. + * @retval ::SYSPARAM_ERR_NOINIT sysparam_init() must be called first + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_get_int8(const char *key, int8_t *result); /** Get the boolean value associated with a key * @@ -333,9 +356,8 @@ sysparam_status_t sysparam_set_string(const char *key, const char *value); /** Set a key's value as a number * - * Converts an int32_t value to a decimal number and writes it to the - * specified key. This does the inverse of the sysparam_get_int() - * function. + * Write an int32_t binary value to the specified key. This does the inverse of + * the sysparam_get_int32() function. * * @param[in] key Key name (zero-terminated string) * @param[in] value Value to set @@ -348,7 +370,28 @@ sysparam_status_t sysparam_set_string(const char *key, const char *value); * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash */ -sysparam_status_t sysparam_set_int(const char *key, int32_t value); +sysparam_status_t sysparam_set_int32(const char *key, int32_t value); + +/** Set a key's value as a number + * + * Write an int8_t binary value to the specified key. This does the inverse of + * the sysparam_get_int8() function. + * + * Note that if the key already contains a value which parses to the same + * boolean (true/false) value, it is left unchanged. + * + * @param[in] key Key name (zero-terminated string) + * @param[in] value Value to set + * + * @retval ::SYSPARAM_OK Value successfully set. + * @retval ::SYSPARAM_ERR_BADVALUE An empty key was provided. + * @retval ::SYSPARAM_ERR_FULL No space left in sysparam area + * (or too many keys in use) + * @retval ::SYSPARAM_ERR_NOMEM Unable to allocate memory + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_set_int8(const char *key, int8_t value); /** Set a key's value as a boolean (yes/no) string * @@ -356,9 +399,6 @@ sysparam_status_t sysparam_set_int(const char *key, int32_t value); * specified key. This does the inverse of the sysparam_get_bool() * function. * - * Note that if the key already contains a value which parses to the same - * boolean (true/false) value, it is left unchanged. - * * @param[in] key Key name (zero-terminated string) * @param[in] value Value to set * diff --git a/core/sysparam.c b/core/sysparam.c index 723656f..290ddb3 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -724,7 +724,7 @@ sysparam_status_t sysparam_get_string(const char *key, char **destptr) { return SYSPARAM_OK; } -sysparam_status_t sysparam_get_int(const char *key, int32_t *result) { +sysparam_status_t sysparam_get_int32(const char *key, int32_t *result) { char *buffer; char *endptr; int32_t value; @@ -744,6 +744,17 @@ sysparam_status_t sysparam_get_int(const char *key, int32_t *result) { return SYSPARAM_OK; } +sysparam_status_t sysparam_get_int8(const char *key, int8_t *result) { + int32_t value; + sysparam_status_t status; + + status = sysparam_get_int32(key, &value); + if (status == SYSPARAM_OK) { + *result = value; + } + return status; +} + sysparam_status_t sysparam_get_bool(const char *key, bool *result) { char *buffer; sysparam_status_t status; @@ -967,7 +978,7 @@ sysparam_status_t sysparam_set_string(const char *key, const char *value) { return sysparam_set_data(key, (const uint8_t *)value, strlen(value), false); } -sysparam_status_t sysparam_set_int(const char *key, int32_t value) { +sysparam_status_t sysparam_set_int32(const char *key, int32_t value) { uint8_t buffer[12]; int len; @@ -975,6 +986,10 @@ sysparam_status_t sysparam_set_int(const char *key, int32_t value) { return sysparam_set_data(key, buffer, len, false); } +sysparam_status_t sysparam_set_int8(const char *key, int8_t value) { + return sysparam_set_int32(key, value); +} + sysparam_status_t sysparam_set_bool(const char *key, bool value) { uint8_t buf[4] = {0xff, 0xff, 0xff, 0xff}; bool old_value; From 12d0da0c5866c71bc11124e3058d0b2926b69fa6 Mon Sep 17 00:00:00 2001 From: Vlad Ivanov Date: Thu, 15 Sep 2016 09:26:38 +0300 Subject: [PATCH 075/349] core: exception_vectors: initial esp-gdbstub support (#205) --- core/exception_vectors.S | 52 +++++++++++++++++++++++++++++++++----- core/include/debug_dumps.h | 2 ++ 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/core/exception_vectors.S b/core/exception_vectors.S index 000e742..df04ab3 100644 --- a/core/exception_vectors.S +++ b/core/exception_vectors.S @@ -45,6 +45,15 @@ LoadStoreErrorHandlerStack: .word 0 # a3 .word 0 # a4 + .balign 4 + .global debug_saved_ctx +debug_saved_ctx: + .word 0 # a0 + .word 0 # a1 + .word 0 # a2 + .word 0 # a3 + .word 0 # a4 + /***************************** Exception Vectors *****************************/ .section .vecbase.text, "x" @@ -66,12 +75,7 @@ VecBase: .org VecBase + 0x10 DebugExceptionVector: .type DebugExceptionVector, @function - - wsr a0, excsave2 - mov a2, a1 - movi a3, 0 - call0 fatal_exception_handler - rfi 2 + j DebugExceptionHandler .org VecBase + 0x20 NMIExceptionVector: @@ -362,6 +366,32 @@ LoadStoreErrorHandler: rsr a1, excsave1 rfe +/*************************** Debug exception handler *************************/ + + .section .vecbase.text, "x" + .literal_position + .balign 4 + +DebugExceptionHandler: + wsr a0, excsave2 + // Save context in case an actual debugger is running + movi a0, debug_saved_ctx + // Save a1 - a4 as we are going to use them later + s32i a1, a0, 0x04 + s32i a2, a0, 0x08 + s32i a3, a0, 0x0C + s32i a4, a0, 0x10 + // Save a0 + rsr a4, excsave2 + s32i a4, a0, 0x00 + // Default handler is fatal_exception_handler(uint32_t * sp, bool registers_saved_on_stack) + // sp + mov a2, a1 + // registers_saved_on_stack + movi a3, 0 + call0 debug_exception_handler + rfi 2 + /****************************** call_user_start ******************************/ .section .vecbase.text, "x" @@ -491,7 +521,15 @@ NMIExceptionHandler: .balign 4 UserExceptionHandler: .type UserExceptionHandler, @function - xsr a0, excsave1 # a0 now contains sp + // save a0, a1 to debug_saved_ctx before stack pointer is affected + // excsave1 contains a1 + // a1 was changed earlier + movi a1, debug_saved_ctx + // store a0 + s32i a0, a1, 0x00 + xsr a0, excsave1 + // store a1 + s32i a0, a1, 0x04 mov sp, a0 addi sp, sp, -0x50 s32i a0, sp, 0x10 diff --git a/core/include/debug_dumps.h b/core/include/debug_dumps.h index ab3c972..8b82b84 100644 --- a/core/include/debug_dumps.h +++ b/core/include/debug_dumps.h @@ -21,5 +21,7 @@ void dump_heapinfo(void); Probably not useful to be called in other contexts. */ void __attribute__((noreturn)) fatal_exception_handler(uint32_t *sp, bool registers_saved_on_stack); +void __attribute__((weak, alias("fatal_exception_handler"))) + debug_exception_handler(uint32_t *sp, bool registers_saved_on_stack); #endif From 8368929a6658082ebe5eee6926232986e7895f60 Mon Sep 17 00:00:00 2001 From: Vlad Ivanov Date: Thu, 15 Sep 2016 20:52:57 +0300 Subject: [PATCH 076/349] paho_mqtt_c: refactor: rename symbols so they all have same prefix (#204) * paho_mqtt_c: refactor: rename symbols so they all have same prefix * Update AWS IOT example after MQTT refactoring --- examples/aws_iot/aws_iot.c | 34 +-- examples/mqtt_client/mqtt_client.c | 36 +-- extras/paho_mqtt_c/MQTTClient.c | 314 ++++++++++---------- extras/paho_mqtt_c/MQTTClient.h | 70 +++-- extras/paho_mqtt_c/MQTTConnect.h | 38 +-- extras/paho_mqtt_c/MQTTConnectClient.c | 78 ++--- extras/paho_mqtt_c/MQTTDeserializePublish.c | 24 +- extras/paho_mqtt_c/MQTTESP8266.c | 22 +- extras/paho_mqtt_c/MQTTESP8266.h | 36 ++- extras/paho_mqtt_c/MQTTFormat.h | 26 +- extras/paho_mqtt_c/MQTTPacket.c | 68 ++--- extras/paho_mqtt_c/MQTTPacket.h | 63 ++-- extras/paho_mqtt_c/MQTTPublish.h | 12 +- extras/paho_mqtt_c/MQTTSerializePublish.c | 46 +-- extras/paho_mqtt_c/MQTTSubscribe.h | 14 +- extras/paho_mqtt_c/MQTTSubscribeClient.c | 39 +-- extras/paho_mqtt_c/MQTTUnsubscribe.h | 10 +- extras/paho_mqtt_c/MQTTUnsubscribeClient.c | 28 +- 18 files changed, 488 insertions(+), 470 deletions(-) diff --git a/examples/aws_iot/aws_iot.c b/examples/aws_iot/aws_iot.c index 01ce9a1..e6b0f35 100644 --- a/examples/aws_iot/aws_iot.c +++ b/examples/aws_iot/aws_iot.c @@ -54,8 +54,8 @@ static void beat_task(void *pvParameters) { } } -static void topic_received(MessageData *md) { - MQTTMessage *message = md->message; +static void topic_received(mqtt_message_data_t *md) { + mqtt_message_t *message = md->message; int i; printf("Received: "); @@ -101,7 +101,7 @@ static const char *get_my_id(void) { return my_id; } -static int mqtt_ssl_read(Network* n, unsigned char* buffer, int len, +static int mqtt_ssl_read(mqtt_network_t * n, unsigned char* buffer, int len, int timeout_ms) { int r = ssl_read(ssl_conn, buffer, len, timeout_ms); if (r <= 0 @@ -114,7 +114,7 @@ static int mqtt_ssl_read(Network* n, unsigned char* buffer, int len, return r; } -static int mqtt_ssl_write(Network* n, unsigned char* buffer, int len, +static int mqtt_ssl_write(mqtt_network_t* n, unsigned char* buffer, int len, int timeout_ms) { int r = ssl_write(ssl_conn, buffer, len, timeout_ms); if (r <= 0 @@ -128,12 +128,12 @@ static int mqtt_ssl_write(Network* n, unsigned char* buffer, int len, static void mqtt_task(void *pvParameters) { int ret = 0; - struct Network network; - MQTTClient client = DefaultClient; + struct mqtt_network network; + mqtt_client_t client = mqtt_client_default; char mqtt_client_id[20]; uint8_t mqtt_buf[100]; uint8_t mqtt_readbuf[100]; - MQTTPacket_connectData data = MQTTPacket_connectData_initializer; + mqtt_packet_connect_data_t data = mqtt_packet_connect_data_initializer; memset(mqtt_client_id, 0, sizeof(mqtt_client_id)); strcpy(mqtt_client_id, "ESP-"); @@ -153,7 +153,7 @@ static void mqtt_task(void *pvParameters) { ssl_conn->client_cert_str = client_cert; ssl_conn->client_key_str = client_key; - NewNetwork(&network); + mqtt_network_new(&network); network.mqttread = mqtt_ssl_read; network.mqttwrite = mqtt_ssl_write; @@ -167,7 +167,7 @@ static void mqtt_task(void *pvParameters) { continue; } printf("done\n\r"); - NewMQTTClient(&client, &network, 5000, mqtt_buf, 100, mqtt_readbuf, + mqtt_client_new(&client, &network, 5000, mqtt_buf, 100, mqtt_readbuf, 100); data.willFlag = 0; @@ -178,14 +178,14 @@ static void mqtt_task(void *pvParameters) { data.password.cstring = NULL; data.keepAliveInterval = 1000; printf("Send MQTT connect ... "); - ret = MQTTConnect(&client, &data); + ret = mqtt_connect(&client, &data); if (ret) { printf("error: %d\n\r", ret); ssl_destroy(ssl_conn); continue; } printf("done\r\n"); - MQTTSubscribe(&client, MQTT_SUB_TOPIC, QOS1, topic_received); + mqtt_subscribe(&client, MQTT_SUB_TOPIC, MQTT_QOS1, topic_received); xQueueReset(publish_queue); while (wifi_alive && !ssl_reset) { @@ -198,21 +198,21 @@ static void mqtt_task(void *pvParameters) { task_tick, free_heap, free_stack * 4); printf("Publishing: %s\r\n", msg); - MQTTMessage message; + mqtt_message_t message; message.payload = msg; message.payloadlen = strlen(msg); message.dup = 0; - message.qos = QOS1; + message.qos = MQTT_QOS1; message.retained = 0; - ret = MQTTPublish(&client, MQTT_PUB_TOPIC, &message); - if (ret != SUCCESS) { + ret = mqtt_publish(&client, MQTT_PUB_TOPIC, &message); + if (ret != MQTT_SUCCESS) { printf("error while publishing message: %d\n", ret); break; } } - ret = MQTTYield(&client, 1000); - if (ret == DISCONNECTED) + ret = mqtt_yield(&client, 1000); + if (ret == MQTT_DISCONNECTED) break; } printf("Connection dropped, request restart\n\r"); diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index 3ec50c5..fe129fd 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -44,10 +44,10 @@ static void beat_task(void *pvParameters) } } -static void topic_received(MessageData *md) +static void topic_received(mqtt_message_data_t *md) { int i; - MQTTMessage *message = md->message; + mqtt_message_t *message = md->message; printf("Received: "); for( i = 0; i < md->topic->lenstring.len; ++i) printf("%c", md->topic->lenstring.data[ i ]); @@ -87,14 +87,14 @@ static const char * get_my_id(void) static void mqtt_task(void *pvParameters) { int ret = 0; - struct Network network; - MQTTClient client = DefaultClient; + struct mqtt_network network; + mqtt_client_t client = mqtt_client_default; char mqtt_client_id[20]; uint8_t mqtt_buf[100]; uint8_t mqtt_readbuf[100]; - MQTTPacket_connectData data = MQTTPacket_connectData_initializer; + mqtt_packet_connect_data_t data = mqtt_packet_connect_data_initializer; - NewNetwork( &network ); + mqtt_network_new( &network ); memset(mqtt_client_id, 0, sizeof(mqtt_client_id)); strcpy(mqtt_client_id, "ESP-"); strcat(mqtt_client_id, get_my_id()); @@ -104,14 +104,14 @@ static void mqtt_task(void *pvParameters) printf("%s: started\n\r", __func__); printf("%s: (Re)connecting to MQTT server %s ... ",__func__, MQTT_HOST); - ret = ConnectNetwork(&network, MQTT_HOST, MQTT_PORT); + ret = mqtt_network_connect(&network, MQTT_HOST, MQTT_PORT); if( ret ){ printf("error: %d\n\r", ret); taskYIELD(); continue; } printf("done\n\r"); - NewMQTTClient(&client, &network, 5000, mqtt_buf, 100, + mqtt_client_new(&client, &network, 5000, mqtt_buf, 100, mqtt_readbuf, 100); data.willFlag = 0; @@ -122,15 +122,15 @@ static void mqtt_task(void *pvParameters) data.keepAliveInterval = 10; data.cleansession = 0; printf("Send MQTT connect ... "); - ret = MQTTConnect(&client, &data); + ret = mqtt_connect(&client, &data); if(ret){ printf("error: %d\n\r", ret); - DisconnectNetwork(&network); + mqtt_network_disconnect(&network); taskYIELD(); continue; } printf("done\r\n"); - MQTTSubscribe(&client, "/esptopic", QOS1, topic_received); + mqtt_subscribe(&client, "/esptopic", MQTT_QOS1, topic_received); xQueueReset(publish_queue); while(1){ @@ -139,25 +139,25 @@ static void mqtt_task(void *pvParameters) while(xQueueReceive(publish_queue, (void *)msg, 0) == pdTRUE){ printf("got message to publish\r\n"); - MQTTMessage message; + mqtt_message_t message; message.payload = msg; message.payloadlen = PUB_MSG_LEN; message.dup = 0; - message.qos = QOS1; + message.qos = MQTT_QOS1; message.retained = 0; - ret = MQTTPublish(&client, "/beat", &message); - if (ret != SUCCESS ){ + ret = mqtt_publish(&client, "/beat", &message); + if (ret != MQTT_SUCCESS ){ printf("error while publishing message: %d\n", ret ); break; } } - ret = MQTTYield(&client, 1000); - if (ret == DISCONNECTED) + ret = mqtt_yield(&client, 1000); + if (ret == MQTT_DISCONNECTED) break; } printf("Connection dropped, request restart\n\r"); - DisconnectNetwork(&network); + mqtt_network_disconnect(&network); taskYIELD(); } } diff --git a/extras/paho_mqtt_c/MQTTClient.c b/extras/paho_mqtt_c/MQTTClient.c index 9651ca7..e8209ea 100644 --- a/extras/paho_mqtt_c/MQTTClient.c +++ b/extras/paho_mqtt_c/MQTTClient.c @@ -17,41 +17,41 @@ #include #include "MQTTClient.h" -void NewMessageData(MessageData* md, MQTTString* aTopicName, MQTTMessage* aMessgage) { +static void new_message_data(mqtt_message_data_t* md, mqtt_string_t* aTopicName, mqtt_message_t* aMessgage) { md->topic = aTopicName; md->message = aMessgage; } -int getNextPacketId(MQTTClient *c) { - return c->next_packetid = (c->next_packetid == MAX_PACKET_ID) ? 1 : c->next_packetid + 1; +static int get_next_packet_id(mqtt_client_t *c) { + return c->next_packetid = (c->next_packetid == MQTT_MAX_PACKET_ID) ? 1 : c->next_packetid + 1; } -int sendPacket(MQTTClient* c, int length, Timer* timer) +static int send_packet(mqtt_client_t* c, int length, mqtt_timer_t* timer) { - int rc = FAILURE, + int rc = MQTT_FAILURE, sent = 0; - while (sent < length && !expired(timer)) + while (sent < length && !mqtt_timer_expired(timer)) { - rc = c->ipstack->mqttwrite(c->ipstack, &c->buf[sent], length - sent, left_ms(timer)); + rc = c->ipstack->mqttwrite(c->ipstack, &c->buf[sent], length - sent, mqtt_timer_left_ms(timer)); if (rc < 0) // there was an error writing the data break; sent += rc; } if (sent == length) { - countdown(&(c->ping_timer), c->keepAliveInterval); // record the fact that we have successfully sent the packet - rc = SUCCESS; + mqtt_timer_countdown(&(c->ping_timer), c->keepAliveInterval); // record the fact that we have successfully sent the packet + rc = MQTT_SUCCESS; } else - rc = FAILURE; + rc = MQTT_FAILURE; return rc; } -int decodePacket(MQTTClient* c, int* value, int timeout) +static int decode_packet(mqtt_client_t* c, int* value, int timeout) { unsigned char i; int multiplier = 1; @@ -82,29 +82,29 @@ exit: // Return packet type. If no packet avilable, return FAILURE, or READ_ERROR if timeout -int readPacket(MQTTClient* c, Timer* timer) +static int read_packet(mqtt_client_t* c, mqtt_timer_t* timer) { - int rc = FAILURE; - MQTTHeader header = {0}; + int rc = MQTT_FAILURE; + mqtt_header_t header = {0}; int len = 0; int rem_len = 0; /* 1. read the header byte. This has the packet type in it */ - if (c->ipstack->mqttread(c->ipstack, c->readbuf, 1, left_ms(timer)) != 1) + if (c->ipstack->mqttread(c->ipstack, c->readbuf, 1, mqtt_timer_left_ms(timer)) != 1) goto exit; len = 1; /* 2. read the remaining length. This is variable in itself */ - len += decodePacket(c, &rem_len, left_ms(timer)); + len += decode_packet(c, &rem_len, mqtt_timer_left_ms(timer)); if (len <= 1 || len + rem_len > c->readbuf_size) /* if packet is too big to fit in our readbuf, abort */ { - rc = READ_ERROR; + rc = MQTT_READ_ERROR; goto exit; } - MQTTPacket_encode(c->readbuf + 1, rem_len); /* put the original remaining length back into the buffer */ + mqtt_packet_encode(c->readbuf + 1, rem_len); /* put the original remaining length back into the buffer */ /* 3. read the rest of the buffer using a callback to supply the rest of the data */ - if (rem_len > 0 && (c->ipstack->mqttread(c->ipstack, c->readbuf + len, rem_len, left_ms(timer)) != rem_len)) + if (rem_len > 0 && (c->ipstack->mqttread(c->ipstack, c->readbuf + len, rem_len, mqtt_timer_left_ms(timer)) != rem_len)) { - rc = READ_ERROR; + rc = MQTT_READ_ERROR; goto exit; } header.byte = c->readbuf[0]; @@ -117,7 +117,7 @@ exit: // assume topic filter and name is in correct format // # can only be at end // + and # can only be next to separator -char isTopicMatched(char* topicFilter, MQTTString* topicName) +static char is_topic_matched(char* topicFilter, mqtt_string_t* topicName) { char* curf = topicFilter; char* curn = topicName->lenstring.data; @@ -145,73 +145,73 @@ char isTopicMatched(char* topicFilter, MQTTString* topicName) } -int deliverMessage(MQTTClient* c, MQTTString* topicName, MQTTMessage* message) +static int deliver_message(mqtt_client_t* c, mqtt_string_t* topicName, mqtt_message_t* message) { int i; - int rc = FAILURE; + int rc = MQTT_FAILURE; // we have to find the right message handler - indexed by topic - for (i = 0; i < MAX_MESSAGE_HANDLERS; ++i) + for (i = 0; i < MQTT_MAX_MESSAGE_HANDLERS; ++i) { - if (c->messageHandlers[i].topicFilter != 0 && (MQTTPacket_equals(topicName, (char*)c->messageHandlers[i].topicFilter) || - isTopicMatched((char*)c->messageHandlers[i].topicFilter, topicName))) + if (c->messageHandlers[i].topicFilter != 0 && (mqtt_packet_equals(topicName, (char*)c->messageHandlers[i].topicFilter) || + is_topic_matched((char*)c->messageHandlers[i].topicFilter, topicName))) { if (c->messageHandlers[i].fp != NULL) { - MessageData md; - NewMessageData(&md, topicName, message); + mqtt_message_data_t md; + new_message_data(&md, topicName, message); c->messageHandlers[i].fp(&md); - rc = SUCCESS; + rc = MQTT_SUCCESS; } } } - if (rc == FAILURE && c->defaultMessageHandler != NULL) + if (rc == MQTT_FAILURE && c->defaultMessageHandler != NULL) { - MessageData md; - NewMessageData(&md, topicName, message); + mqtt_message_data_t md; + new_message_data(&md, topicName, message); c->defaultMessageHandler(&md); - rc = SUCCESS; + rc = MQTT_SUCCESS; } return rc; } -int keepalive(MQTTClient* c) +static int keepalive(mqtt_client_t* c) { - int rc = SUCCESS; + int rc = MQTT_SUCCESS; if (c->keepAliveInterval == 0) { - rc = SUCCESS; + rc = MQTT_SUCCESS; goto exit; } - if (expired(&(c->ping_timer))) + if (mqtt_timer_expired(&(c->ping_timer))) { if (c->ping_outstanding) { // if ping failure accumulated above MAX_FAIL_ALLOWED, the connection is broken ++(c->fail_count); - if (c->fail_count >= MAX_FAIL_ALLOWED) + if (c->fail_count >= MQTT_MAX_FAIL_ALLOWED) { - rc = DISCONNECTED; + rc = MQTT_DISCONNECTED; goto exit; } } else { - Timer timer; - InitTimer(&timer); - countdown_ms(&timer, 1000); + mqtt_timer_t timer; + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, 1000); c->ping_outstanding = 1; - int len = MQTTSerialize_pingreq(c->buf, c->buf_size); + int len = mqtt_serialize_pingreq(c->buf, c->buf_size); if (len > 0) - sendPacket(c, len, &timer); + send_packet(c, len, &timer); } // re-arm ping counter - countdown(&(c->ping_timer), c->keepAliveInterval); + mqtt_timer_countdown(&(c->ping_timer), c->keepAliveInterval); } exit: @@ -219,87 +219,87 @@ exit: } -int cycle(MQTTClient* c, Timer* timer) +static int cycle(mqtt_client_t* c, mqtt_timer_t* timer) { // read the socket, see what work is due - int packet_type = readPacket(c, timer); + int packet_type = read_packet(c, timer); int len = 0, - rc = SUCCESS; + rc = MQTT_SUCCESS; switch (packet_type) { - case CONNACK: - case PUBACK: - case SUBACK: + case MQTTPACKET_CONNACK: + case MQTTPACKET_PUBACK: + case MQTTPACKET_SUBACK: break; - case PUBLISH: + case MQTTPACKET_PUBLISH: { - MQTTString topicName; - MQTTMessage msg; - if (MQTTDeserialize_publish((unsigned char*)&msg.dup, (int*)&msg.qos, (unsigned char*)&msg.retained, (unsigned short*)&msg.id, &topicName, + mqtt_string_t topicName; + mqtt_message_t msg; + if (mqtt_deserialize_publish((unsigned char*)&msg.dup, (int*)&msg.qos, (unsigned char*)&msg.retained, (unsigned short*)&msg.id, &topicName, (unsigned char**)&msg.payload, (int*)&msg.payloadlen, c->readbuf, c->readbuf_size) != 1) goto exit; - deliverMessage(c, &topicName, &msg); - if (msg.qos != QOS0) + deliver_message(c, &topicName, &msg); + if (msg.qos != MQTT_QOS0) { - if (msg.qos == QOS1) - len = MQTTSerialize_ack(c->buf, c->buf_size, PUBACK, 0, msg.id); - else if (msg.qos == QOS2) - len = MQTTSerialize_ack(c->buf, c->buf_size, PUBREC, 0, msg.id); + if (msg.qos == MQTT_QOS1) + len = mqtt_serialize_ack(c->buf, c->buf_size, MQTTPACKET_PUBACK, 0, msg.id); + else if (msg.qos == MQTT_QOS2) + len = mqtt_serialize_ack(c->buf, c->buf_size, MQTTPACKET_PUBREC, 0, msg.id); if (len <= 0) - rc = FAILURE; + rc = MQTT_FAILURE; else - rc = sendPacket(c, len, timer); - if (rc == FAILURE) + rc = send_packet(c, len, timer); + if (rc == MQTT_FAILURE) goto exit; // there was a problem } break; } - case PUBREC: + case MQTTPACKET_PUBREC: { unsigned short mypacketid; unsigned char dup, type; - if (MQTTDeserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) - rc = FAILURE; - else if ((len = MQTTSerialize_ack(c->buf, c->buf_size, PUBREL, 0, mypacketid)) <= 0) - rc = FAILURE; - else if ((rc = sendPacket(c, len, timer)) != SUCCESS) // send the PUBREL packet - rc = FAILURE; // there was a problem - if (rc == FAILURE) + if (mqtt_deserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) + rc = MQTT_FAILURE; + else if ((len = mqtt_serialize_ack(c->buf, c->buf_size, MQTTPACKET_PUBREL, 0, mypacketid)) <= 0) + rc = MQTT_FAILURE; + else if ((rc = send_packet(c, len, timer)) != MQTT_SUCCESS) // send the PUBREL packet + rc = MQTT_FAILURE; // there was a problem + if (rc == MQTT_FAILURE) goto exit; // there was a problem break; } - case PUBCOMP: + case MQTTPACKET_PUBCOMP: break; - case PINGRESP: + case MQTTPACKET_PINGRESP: { c->ping_outstanding = 0; c->fail_count = 0; break; } - case READ_ERROR: + case MQTT_READ_ERROR: { c->isconnected = 0; // we simulate a disconnect if reading error - rc = DISCONNECTED; // so that the outer layer will reconnect and recover + rc = MQTT_DISCONNECTED; // so that the outer layer will reconnect and recover break; } } if (c->isconnected) rc = keepalive(c); exit: - if (rc == SUCCESS) + if (rc == MQTT_SUCCESS) rc = packet_type; return rc; } -void NewMQTTClient(MQTTClient* c, Network* network, unsigned int command_timeout_ms, unsigned char* buf, size_t buf_size, unsigned char* readbuf, size_t readbuf_size) +void mqtt_client_new(mqtt_client_t* c, mqtt_network_t* network, unsigned int command_timeout_ms, unsigned char* buf, size_t buf_size, unsigned char* readbuf, size_t readbuf_size) { int i; c->ipstack = network; - for (i = 0; i < MAX_MESSAGE_HANDLERS; ++i) + for (i = 0; i < MQTT_MAX_MESSAGE_HANDLERS; ++i) c->messageHandlers[i].topicFilter = 0; c->command_timeout_ms = command_timeout_ms; c->buf = buf; @@ -310,38 +310,38 @@ void NewMQTTClient(MQTTClient* c, Network* network, unsigned int command_timeou c->ping_outstanding = 0; c->fail_count = 0; c->defaultMessageHandler = NULL; - InitTimer(&(c->ping_timer)); + mqtt_timer_init(&(c->ping_timer)); } -int MQTTYield(MQTTClient* c, int timeout_ms) +int mqtt_yield(mqtt_client_t* c, int timeout_ms) { - int rc = SUCCESS; - Timer timer; + int rc = MQTT_SUCCESS; + mqtt_timer_t timer; - InitTimer(&timer); - countdown_ms(&timer, timeout_ms); - while (!expired(&timer)) + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, timeout_ms); + while (!mqtt_timer_expired(&timer)) { rc = cycle(c, &timer); // cycle could return 0 or packet_type or 65535 if nothing is read // cycle returns DISCONNECTED only if keepalive() fails. - if (rc == DISCONNECTED) + if (rc == MQTT_DISCONNECTED) break; - rc = SUCCESS; + rc = MQTT_SUCCESS; } return rc; } // only used in single-threaded mode where one command at a time is in process -int waitfor(MQTTClient* c, int packet_type, Timer* timer) +static int waitfor(mqtt_client_t* c, int packet_type, mqtt_timer_t* timer) { - int rc = FAILURE; + int rc = MQTT_FAILURE; do { - if (expired(timer)) + if (mqtt_timer_expired(timer)) break; // we timed out } while ((rc = cycle(c, timer)) != packet_type); @@ -350,15 +350,15 @@ int waitfor(MQTTClient* c, int packet_type, Timer* timer) } -int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options) +int mqtt_connect(mqtt_client_t* c, mqtt_packet_connect_data_t* options) { - Timer connect_timer; - int rc = FAILURE; - MQTTPacket_connectData default_options = MQTTPacket_connectData_initializer; + mqtt_timer_t connect_timer; + int rc = MQTT_FAILURE; + mqtt_packet_connect_data_t default_options = mqtt_packet_connect_data_initializer; int len = 0; - InitTimer(&connect_timer); - countdown_ms(&connect_timer, c->command_timeout_ms); + mqtt_timer_init(&connect_timer); + mqtt_timer_countdown_ms(&connect_timer, c->command_timeout_ms); if (c->isconnected) // don't send connect packet again if we are already connected goto exit; @@ -367,64 +367,64 @@ int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options) options = &default_options; // set default options if none were supplied c->keepAliveInterval = options->keepAliveInterval; - countdown(&(c->ping_timer), c->keepAliveInterval); + mqtt_timer_countdown(&(c->ping_timer), c->keepAliveInterval); - if ((len = MQTTSerialize_connect(c->buf, c->buf_size, options)) <= 0) + if ((len = mqtt_serialize_connect(c->buf, c->buf_size, options)) <= 0) goto exit; - if ((rc = sendPacket(c, len, &connect_timer)) != SUCCESS) // send the connect packet + if ((rc = send_packet(c, len, &connect_timer)) != MQTT_SUCCESS) // send the connect packet goto exit; // there was a problem // this will be a blocking call, wait for the connack - if (waitfor(c, CONNACK, &connect_timer) == CONNACK) + if (waitfor(c, MQTTPACKET_CONNACK, &connect_timer) == MQTTPACKET_CONNACK) { unsigned char connack_rc = 255; char sessionPresent = 0; - if (MQTTDeserialize_connack((unsigned char*)&sessionPresent, &connack_rc, c->readbuf, c->readbuf_size) == 1) + if (mqtt_deserialize_connack((unsigned char*)&sessionPresent, &connack_rc, c->readbuf, c->readbuf_size) == 1) rc = connack_rc; else - rc = FAILURE; + rc = MQTT_FAILURE; } else - rc = FAILURE; + rc = MQTT_FAILURE; exit: - if (rc == SUCCESS) + if (rc == MQTT_SUCCESS) c->isconnected = 1; return rc; } -int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandler handler) +int mqtt_subscribe(mqtt_client_t* c, const char* topic, enum mqtt_qos qos, mqtt_message_handler_t handler) { - int rc = FAILURE; - Timer timer; + int rc = MQTT_FAILURE; + mqtt_timer_t timer; int len = 0; - MQTTString topicStr = MQTTString_initializer; + mqtt_string_t topicStr = mqtt_string_initializer; topicStr.cstring = (char *)topic; - InitTimer(&timer); - countdown_ms(&timer, c->command_timeout_ms); + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, c->command_timeout_ms); if (!c->isconnected) goto exit; - len = MQTTSerialize_subscribe(c->buf, c->buf_size, 0, getNextPacketId(c), 1, &topicStr, (int*)&qos); + len = mqtt_serialize_subscribe(c->buf, c->buf_size, 0, get_next_packet_id(c), 1, &topicStr, (int*)&qos); if (len <= 0) goto exit; - if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet + if ((rc = send_packet(c, len, &timer)) != MQTT_SUCCESS) // send the subscribe packet { goto exit; // there was a problem } - if (waitfor(c, SUBACK, &timer) == SUBACK) // wait for suback + if (waitfor(c, MQTTPACKET_SUBACK, &timer) == MQTTPACKET_SUBACK) // wait for suback { int count = 0, grantedQoS = -1; unsigned short mypacketid; - if (MQTTDeserialize_suback(&mypacketid, 1, &count, &grantedQoS, c->readbuf, c->readbuf_size) == 1) + if (mqtt_deserialize_suback(&mypacketid, 1, &count, &grantedQoS, c->readbuf, c->readbuf_size) == 1) rc = grantedQoS; // 0, 1, 2 or 0x80 if (rc != 0x80) { int i; - for (i = 0; i < MAX_MESSAGE_HANDLERS; ++i) + for (i = 0; i < MQTT_MAX_MESSAGE_HANDLERS; ++i) { if (c->messageHandlers[i].topicFilter == 0) { @@ -437,107 +437,107 @@ int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandle } } else - rc = FAILURE; + rc = MQTT_FAILURE; exit: return rc; } -int MQTTUnsubscribe(MQTTClient* c, const char* topicFilter) +int mqtt_unsubscribe(mqtt_client_t* c, const char* topicFilter) { - int rc = FAILURE; - Timer timer; - MQTTString topic = MQTTString_initializer; + int rc = MQTT_FAILURE; + mqtt_timer_t timer; + mqtt_string_t topic = mqtt_string_initializer; topic.cstring = (char *)topicFilter; int len = 0; - InitTimer(&timer); - countdown_ms(&timer, c->command_timeout_ms); + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, c->command_timeout_ms); if (!c->isconnected) goto exit; - if ((len = MQTTSerialize_unsubscribe(c->buf, c->buf_size, 0, getNextPacketId(c), 1, &topic)) <= 0) + if ((len = mqtt_serialize_unsubscribe(c->buf, c->buf_size, 0, get_next_packet_id(c), 1, &topic)) <= 0) goto exit; - if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet + if ((rc = send_packet(c, len, &timer)) != MQTT_SUCCESS) // send the subscribe packet goto exit; // there was a problem - if (waitfor(c, UNSUBACK, &timer) == UNSUBACK) + if (waitfor(c, MQTTPACKET_UNSUBACK, &timer) == MQTTPACKET_UNSUBACK) { unsigned short mypacketid; // should be the same as the packetid above - if (MQTTDeserialize_unsuback(&mypacketid, c->readbuf, c->readbuf_size) == 1) + if (mqtt_deserialize_unsuback(&mypacketid, c->readbuf, c->readbuf_size) == 1) rc = 0; } else - rc = FAILURE; + rc = MQTT_FAILURE; exit: return rc; } -int MQTTPublish(MQTTClient* c, const char* topic, MQTTMessage* message) +int mqtt_publish(mqtt_client_t* c, const char* topic, mqtt_message_t* message) { - int rc = FAILURE; - Timer timer; - MQTTString topicStr = MQTTString_initializer; + int rc = MQTT_FAILURE; + mqtt_timer_t timer; + mqtt_string_t topicStr = mqtt_string_initializer; topicStr.cstring = (char *)topic; int len = 0; - InitTimer(&timer); - countdown_ms(&timer, c->command_timeout_ms); + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, c->command_timeout_ms); if (!c->isconnected) goto exit; - if (message->qos == QOS1 || message->qos == QOS2) - message->id = getNextPacketId(c); + if (message->qos == MQTT_QOS1 || message->qos == MQTT_QOS2) + message->id = get_next_packet_id(c); - len = MQTTSerialize_publish(c->buf, c->buf_size, 0, message->qos, message->retained, message->id, + len = mqtt_serialize_publish(c->buf, c->buf_size, 0, message->qos, message->retained, message->id, topicStr, (unsigned char*)message->payload, message->payloadlen); if (len <= 0) goto exit; - if ((rc = sendPacket(c, len, &timer)) != SUCCESS) // send the subscribe packet + if ((rc = send_packet(c, len, &timer)) != MQTT_SUCCESS) // send the subscribe packet { goto exit; // there was a problem } - if (message->qos == QOS1) + if (message->qos == MQTT_QOS1) { - if (waitfor(c, PUBACK, &timer) == PUBACK) + if (waitfor(c, MQTTPACKET_PUBACK, &timer) == MQTTPACKET_PUBACK) { // We still can receive from broker, treat as recoverable c->fail_count = 0; unsigned short mypacketid; unsigned char dup, type; - if (MQTTDeserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) - rc = FAILURE; + if (mqtt_deserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) + rc = MQTT_FAILURE; else - rc = SUCCESS; + rc = MQTT_SUCCESS; } else { - rc = FAILURE; + rc = MQTT_FAILURE; } } - else if (message->qos == QOS2) + else if (message->qos == MQTT_QOS2) { - if (waitfor(c, PUBCOMP, &timer) == PUBCOMP) + if (waitfor(c, MQTTPACKET_PUBCOMP, &timer) == MQTTPACKET_PUBCOMP) { // We still can receive from broker, treat as recoverable c->fail_count = 0; unsigned short mypacketid; unsigned char dup, type; - if (MQTTDeserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) - rc = FAILURE; + if (mqtt_deserialize_ack(&type, &dup, &mypacketid, c->readbuf, c->readbuf_size) != 1) + rc = MQTT_FAILURE; else - rc = SUCCESS; + rc = MQTT_SUCCESS; } else { - rc = FAILURE; + rc = MQTT_FAILURE; } } @@ -546,17 +546,17 @@ exit: } -int MQTTDisconnect(MQTTClient* c) +int mqtt_disconnect(mqtt_client_t* c) { - int rc = FAILURE; - Timer timer; // we might wait for incomplete incoming publishes to complete - int len = MQTTSerialize_disconnect(c->buf, c->buf_size); + int rc = MQTT_FAILURE; + mqtt_timer_t timer; // we might wait for incomplete incoming publishes to complete + int len = mqtt_serialize_disconnect(c->buf, c->buf_size); - InitTimer(&timer); - countdown_ms(&timer, c->command_timeout_ms); + mqtt_timer_init(&timer); + mqtt_timer_countdown_ms(&timer, c->command_timeout_ms); if (len > 0) - rc = sendPacket(c, len, &timer); // send the disconnect packet + rc = send_packet(c, len, &timer); // send the disconnect packet c->isconnected = 0; return rc; diff --git a/extras/paho_mqtt_c/MQTTClient.h b/extras/paho_mqtt_c/MQTTClient.h index 876197c..1f3ea8a 100644 --- a/extras/paho_mqtt_c/MQTTClient.h +++ b/extras/paho_mqtt_c/MQTTClient.h @@ -20,36 +20,44 @@ #include "MQTTPacket.h" #include "MQTTESP8266.h" -#define MAX_PACKET_ID 65535 -#define MAX_MESSAGE_HANDLERS 5 -#define MAX_FAIL_ALLOWED 2 +#define MQTT_MAX_PACKET_ID 65535 +#define MQTT_MAX_MESSAGE_HANDLERS 5 +#define MQTT_MAX_FAIL_ALLOWED 2 -enum QoS { QOS0, QOS1, QOS2 }; +enum mqtt_qos { + MQTT_QOS0, + MQTT_QOS1, + MQTT_QOS2 +}; // all failure return codes must be negative -enum returnCode {READ_ERROR = -4, DISCONNECTED = -3, BUFFER_OVERFLOW = -2, FAILURE = -1, SUCCESS = 0 }; +enum mqtt_return_code { + MQTT_READ_ERROR = -4, + MQTT_DISCONNECTED = -3, + MQTT_BUFFER_OVERFLOW = -2, + MQTT_FAILURE = -1, + MQTT_SUCCESS = 0 +}; -void NewTimer(Timer*); - -typedef struct _MQTTMessage +typedef struct mqtt_message { - enum QoS qos; + enum mqtt_qos qos; char retained; char dup; unsigned short id; void *payload; size_t payloadlen; -} MQTTMessage; +} mqtt_message_t; -typedef struct _MessageData +typedef struct mqtt_message_data { - MQTTString* topic; - MQTTMessage* message; -} MessageData; + mqtt_string_t* topic; + mqtt_message_t* message; +} mqtt_message_data_t; -typedef void (*messageHandler)(MessageData*); +typedef void (*mqtt_message_handler_t)(mqtt_message_data_t*); -struct _MQTTClient +struct mqtt_client { unsigned int next_packetid; unsigned int command_timeout_ms; @@ -64,28 +72,26 @@ struct _MQTTClient struct MessageHandlers { const char* topicFilter; - void (*fp) (MessageData*); - } messageHandlers[MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic + void (*fp) (mqtt_message_data_t*); + } messageHandlers[MQTT_MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic - void (*defaultMessageHandler) (MessageData*); + void (*defaultMessageHandler) (mqtt_message_data_t*); - Network* ipstack; - Timer ping_timer; + mqtt_network_t* ipstack; + mqtt_timer_t ping_timer; }; +typedef struct mqtt_client mqtt_client_t; -typedef struct _MQTTClient MQTTClient; +int mqtt_connect(mqtt_client_t* c, mqtt_packet_connect_data_t* options); +int mqtt_publish(mqtt_client_t* c, const char* topic, mqtt_message_t* message); +int mqtt_subscribe(mqtt_client_t* c, const char* topic, enum mqtt_qos qos, mqtt_message_handler_t handler); +int mqtt_unsubscribe(mqtt_client_t* c, const char* topic); +int mqtt_disconnect(mqtt_client_t* c); +int mqtt_yield(mqtt_client_t* c, int timeout_ms); +void mqtt_client_new(mqtt_client_t*, mqtt_network_t*, unsigned int, unsigned char*, size_t, unsigned char*, size_t); -int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options); -int MQTTPublish(MQTTClient* c, const char* topic, MQTTMessage* message); -int MQTTSubscribe(MQTTClient* c, const char* topic, enum QoS qos, messageHandler handler); -int MQTTUnsubscribe(MQTTClient* c, const char* topic); -int MQTTDisconnect(MQTTClient* c); -int MQTTYield(MQTTClient* c, int timeout_ms); - -void NewMQTTClient(MQTTClient*, Network*, unsigned int, unsigned char*, size_t, unsigned char*, size_t); - -#define DefaultClient {0, 0, 0, 0, NULL, NULL, 0, 0, 0} +#define mqtt_client_default {0, 0, 0, 0, NULL, NULL, 0, 0, 0} #endif diff --git a/extras/paho_mqtt_c/MQTTConnect.h b/extras/paho_mqtt_c/MQTTConnect.h index 3d8addd..800187a 100644 --- a/extras/paho_mqtt_c/MQTTConnect.h +++ b/extras/paho_mqtt_c/MQTTConnect.h @@ -52,7 +52,7 @@ typedef union unsigned int username : 1; /**< 3.1 user name */ } bits; #endif -} MQTTConnectFlags; /**< connect flags byte */ +} mqtt_connect_flags_t; /**< connect flags byte */ @@ -67,9 +67,9 @@ typedef struct /** The version number of this structure. Must be 0 */ int struct_version; /** The LWT topic to which the LWT message will be published. */ - MQTTString topicName; + mqtt_string_t topicName; /** The LWT payload. */ - MQTTString message; + mqtt_string_t message; /** * The retained flag for the LWT message (see MQTTAsync_message.retained). */ @@ -79,10 +79,10 @@ typedef struct * MQTTAsync_message.qos and @ref qos). */ char qos; -} MQTTPacket_willOptions; +} mqtt_packet_will_options_t; -#define MQTTPacket_willOptions_initializer { {'M', 'Q', 'T', 'W'}, 0, {NULL, {0, NULL}}, {NULL, {0, NULL}}, 0, 0 } +#define mqtt_packet_will_options_initializer { {'M', 'Q', 'T', 'W'}, 0, {NULL, {0, NULL}}, {NULL, {0, NULL}}, 0, 0 } typedef struct @@ -94,14 +94,14 @@ typedef struct /** Version of MQTT to be used. 3 = 3.1 4 = 3.1.1 */ unsigned char MQTTVersion; - MQTTString clientID; + mqtt_string_t clientID; unsigned short keepAliveInterval; unsigned char cleansession; unsigned char willFlag; - MQTTPacket_willOptions will; - MQTTString username; - MQTTString password; -} MQTTPacket_connectData; + mqtt_packet_will_options_t will; + mqtt_string_t username; + mqtt_string_t password; +} mqtt_packet_connect_data_t; typedef union { @@ -119,18 +119,18 @@ typedef union unsigned int sessionpresent : 1; /**< session present flag */ } bits; #endif -} MQTTConnackFlags; /**< connack flags byte */ +} mqtt_conn_ack_flags_t; /**< connack flags byte */ -#define MQTTPacket_connectData_initializer { {'M', 'Q', 'T', 'C'}, 0, 4, {NULL, {0, NULL}}, 60, 1, 0, \ - MQTTPacket_willOptions_initializer, {NULL, {0, NULL}}, {NULL, {0, NULL}} } +#define mqtt_packet_connect_data_initializer { {'M', 'Q', 'T', 'C'}, 0, 4, {NULL, {0, NULL}}, 60, 1, 0, \ + mqtt_packet_will_options_initializer, {NULL, {0, NULL}}, {NULL, {0, NULL}} } -DLLExport int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options); -DLLExport int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int len); +DLLExport int mqtt_serialize_connect(unsigned char* buf, int buflen, mqtt_packet_connect_data_t* options); +DLLExport int mqtt_deserialize_connect(mqtt_packet_connect_data_t* data, unsigned char* buf, int len); -DLLExport int MQTTSerialize_connack(unsigned char* buf, int buflen, unsigned char connack_rc, unsigned char sessionPresent); -DLLExport int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen); +DLLExport int mqtt_serialize_connack(unsigned char* buf, int buflen, unsigned char connack_rc, unsigned char sessionPresent); +DLLExport int mqtt_deserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen); -DLLExport int MQTTSerialize_disconnect(unsigned char* buf, int buflen); -DLLExport int MQTTSerialize_pingreq(unsigned char* buf, int buflen); +DLLExport int mqtt_serialize_disconnect(unsigned char* buf, int buflen); +DLLExport int mqtt_serialize_pingreq(unsigned char* buf, int buflen); #endif /* MQTTCONNECT_H_ */ diff --git a/extras/paho_mqtt_c/MQTTConnectClient.c b/extras/paho_mqtt_c/MQTTConnectClient.c index 4c1e862..e5bfdc1 100644 --- a/extras/paho_mqtt_c/MQTTConnectClient.c +++ b/extras/paho_mqtt_c/MQTTConnectClient.c @@ -24,7 +24,7 @@ * @param options the options to be used to build the connect packet * @return the length of buffer needed to contain the serialized version of the packet */ -int MQTTSerialize_connectLength(MQTTPacket_connectData* options) +static int connect_length(mqtt_packet_connect_data_t* options) { int len = 0; @@ -35,13 +35,13 @@ int MQTTSerialize_connectLength(MQTTPacket_connectData* options) else if (options->MQTTVersion == 4) len = 10; - len += MQTTstrlen(options->clientID)+2; + len += mqtt_strlen(options->clientID)+2; if (options->willFlag) - len += MQTTstrlen(options->will.topicName)+2 + MQTTstrlen(options->will.message)+2; + len += mqtt_strlen(options->will.topicName)+2 + mqtt_strlen(options->will.message)+2; if (options->username.cstring || options->username.lenstring.data) - len += MQTTstrlen(options->username)+2; + len += mqtt_strlen(options->username)+2; if (options->password.cstring || options->password.lenstring.data) - len += MQTTstrlen(options->password)+2; + len += mqtt_strlen(options->password)+2; FUNC_EXIT_RC(len); return len; @@ -55,36 +55,36 @@ int MQTTSerialize_connectLength(MQTTPacket_connectData* options) * @param options the options to be used to build the connect packet * @return serialized length, or error if 0 */ -int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options) +int mqtt_serialize_connect(unsigned char* buf, int buflen, mqtt_packet_connect_data_t* options) { unsigned char *ptr = buf; - MQTTHeader header = {0}; - MQTTConnectFlags flags = {0}; + mqtt_header_t header = {0}; + mqtt_connect_flags_t flags = {0}; int len = 0; int rc = -1; FUNC_ENTRY; - if (MQTTPacket_len(len = MQTTSerialize_connectLength(options)) > buflen) + if (mqtt_packet_len(len = connect_length(options)) > buflen) { rc = MQTTPACKET_BUFFER_TOO_SHORT; goto exit; } header.byte = 0; - header.bits.type = CONNECT; - writeChar(&ptr, header.byte); /* write header */ + header.bits.type = MQTTPACKET_CONNECT; + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, len); /* write remaining length */ + ptr += mqtt_packet_encode(ptr, len); /* write remaining length */ if (options->MQTTVersion == 4) { - writeCString(&ptr, "MQTT"); - writeChar(&ptr, (char) 4); + mqtt_write_cstr(&ptr, "MQTT"); + mqtt_write_char(&ptr, (char) 4); } else { - writeCString(&ptr, "MQIsdp"); - writeChar(&ptr, (char) 3); + mqtt_write_cstr(&ptr, "MQIsdp"); + mqtt_write_char(&ptr, (char) 3); } flags.all = 0; @@ -101,18 +101,18 @@ int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectDat if (options->password.cstring || options->password.lenstring.data) flags.bits.password = 1; - writeChar(&ptr, flags.all); - writeInt(&ptr, options->keepAliveInterval); - writeMQTTString(&ptr, options->clientID); + mqtt_write_char(&ptr, flags.all); + mqtt_write_int(&ptr, options->keepAliveInterval); + mqtt_write_mqqt_str(&ptr, options->clientID); if (options->willFlag) { - writeMQTTString(&ptr, options->will.topicName); - writeMQTTString(&ptr, options->will.message); + mqtt_write_mqqt_str(&ptr, options->will.topicName); + mqtt_write_mqqt_str(&ptr, options->will.message); } if (flags.bits.username) - writeMQTTString(&ptr, options->username); + mqtt_write_mqqt_str(&ptr, options->username); if (flags.bits.password) - writeMQTTString(&ptr, options->password); + mqtt_write_mqqt_str(&ptr, options->password); rc = ptr - buf; @@ -129,28 +129,28 @@ int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectDat * @param len the length in bytes of the data in the supplied buffer * @return error code. 1 is success, 0 is failure */ -int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen) +int mqtt_deserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; unsigned char* curdata = buf; unsigned char* enddata = NULL; int rc = 0; int mylen; - MQTTConnackFlags flags = {0}; + mqtt_conn_ack_flags_t flags = {0}; FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != CONNACK) + header.byte = mqtt_read_char(&curdata); + if (header.bits.type != MQTTPACKET_CONNACK) goto exit; - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ + curdata += (rc = mqtt_packet_decode_buf(curdata, &mylen)); /* read remaining length */ enddata = curdata + mylen; if (enddata - curdata < 2) goto exit; - flags.all = readChar(&curdata); + flags.all = mqtt_read_char(&curdata); *sessionPresent = flags.bits.sessionpresent; - *connack_rc = readChar(&curdata); + *connack_rc = mqtt_read_char(&curdata); rc = 1; exit: @@ -166,9 +166,9 @@ exit: * @param packettype the message type * @return serialized length, or error if 0 */ -int MQTTSerialize_zero(unsigned char* buf, int buflen, unsigned char packettype) +int mqtt_serialize_zero(unsigned char* buf, int buflen, unsigned char packettype) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int rc = -1; unsigned char *ptr = buf; @@ -180,9 +180,9 @@ int MQTTSerialize_zero(unsigned char* buf, int buflen, unsigned char packettype } header.byte = 0; header.bits.type = packettype; - writeChar(&ptr, header.byte); /* write header */ + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, 0); /* write remaining length */ + ptr += mqtt_packet_encode(ptr, 0); /* write remaining length */ rc = ptr - buf; exit: FUNC_EXIT_RC(rc); @@ -196,9 +196,9 @@ exit: * @param buflen the length in bytes of the supplied buffer, to avoid overruns * @return serialized length, or error if 0 */ -int MQTTSerialize_disconnect(unsigned char* buf, int buflen) +int mqtt_serialize_disconnect(unsigned char* buf, int buflen) { - return MQTTSerialize_zero(buf, buflen, DISCONNECT); + return mqtt_serialize_zero(buf, buflen, MQTTPACKET_DISCONNECT); } @@ -208,7 +208,7 @@ int MQTTSerialize_disconnect(unsigned char* buf, int buflen) * @param buflen the length in bytes of the supplied buffer, to avoid overruns * @return serialized length, or error if 0 */ -int MQTTSerialize_pingreq(unsigned char* buf, int buflen) +int mqtt_serialize_pingreq(unsigned char* buf, int buflen) { - return MQTTSerialize_zero(buf, buflen, PINGREQ); + return mqtt_serialize_zero(buf, buflen, MQTTPACKET_PINGREQ); } diff --git a/extras/paho_mqtt_c/MQTTDeserializePublish.c b/extras/paho_mqtt_c/MQTTDeserializePublish.c index 21b7314..f65a973 100644 --- a/extras/paho_mqtt_c/MQTTDeserializePublish.c +++ b/extras/paho_mqtt_c/MQTTDeserializePublish.c @@ -33,32 +33,32 @@ * @param buflen the length in bytes of the data in the supplied buffer * @return error code. 1 is success */ -int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName, +int mqtt_deserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, mqtt_string_t* topicName, unsigned char** payload, int* payloadlen, unsigned char* buf, int buflen) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; unsigned char* curdata = buf; unsigned char* enddata = NULL; int rc = 0; int mylen = 0; FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != PUBLISH) + header.byte = mqtt_read_char(&curdata); + if (header.bits.type != MQTTPACKET_PUBLISH) goto exit; *dup = header.bits.dup; *qos = header.bits.qos; *retained = header.bits.retain; - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ + curdata += (rc = mqtt_packet_decode_buf(curdata, &mylen)); /* read remaining length */ enddata = curdata + mylen; - if (!readMQTTLenString(topicName, &curdata, enddata) || + if (!mqtt_read_str_len(topicName, &curdata, enddata) || enddata - curdata < 0) /* do we have enough data to read the protocol version byte? */ goto exit; if (*qos > 0) - *packetid = readInt(&curdata); + *packetid = mqtt_read_int(&curdata); *payloadlen = enddata - curdata; *payload = curdata; @@ -79,25 +79,25 @@ exit: * @param buflen the length in bytes of the data in the supplied buffer * @return error code. 1 is success, 0 is failure */ -int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen) +int mqtt_deserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; unsigned char* curdata = buf; unsigned char* enddata = NULL; int rc = 0; int mylen; FUNC_ENTRY; - header.byte = readChar(&curdata); + header.byte = mqtt_read_char(&curdata); *dup = header.bits.dup; *packettype = header.bits.type; - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ + curdata += (rc = mqtt_packet_decode_buf(curdata, &mylen)); /* read remaining length */ enddata = curdata + mylen; if (enddata - curdata < 2) goto exit; - *packetid = readInt(&curdata); + *packetid = mqtt_read_int(&curdata); rc = 1; exit: diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index 09e645b..83e257f 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -28,7 +28,7 @@ #include "MQTTESP8266.h" -char expired(Timer* timer) +char mqtt_timer_expired(mqtt_timer_t* timer) { portTickType now = xTaskGetTickCount(); int32_t left = timer->end_time - now; @@ -36,20 +36,20 @@ char expired(Timer* timer) } -void countdown_ms(Timer* timer, unsigned int timeout) +void mqtt_timer_countdown_ms(mqtt_timer_t* timer, unsigned int timeout) { portTickType now = xTaskGetTickCount(); timer->end_time = now + timeout / portTICK_RATE_MS; } -void countdown(Timer* timer, unsigned int timeout) +void mqtt_timer_countdown(mqtt_timer_t* timer, unsigned int timeout) { - countdown_ms(timer, timeout * 1000); + mqtt_timer_countdown_ms(timer, timeout * 1000); } -int left_ms(Timer* timer) +int mqtt_timer_left_ms(mqtt_timer_t* timer) { portTickType now = xTaskGetTickCount(); int32_t left = timer->end_time - now; @@ -57,14 +57,14 @@ int left_ms(Timer* timer) } -void InitTimer(Timer* timer) +void mqtt_timer_init(mqtt_timer_t* timer) { timer->end_time = 0; } -int mqtt_esp_read(Network* n, unsigned char* buffer, int len, int timeout_ms) +int mqtt_esp_read(mqtt_network_t* n, unsigned char* buffer, int len, int timeout_ms) { struct timeval tv; fd_set fdset; @@ -89,7 +89,7 @@ int mqtt_esp_read(Network* n, unsigned char* buffer, int len, int timeout_ms) } -int mqtt_esp_write(Network* n, unsigned char* buffer, int len, int timeout_ms) +int mqtt_esp_write(mqtt_network_t* n, unsigned char* buffer, int len, int timeout_ms) { struct timeval tv; fd_set fdset; @@ -115,7 +115,7 @@ int mqtt_esp_write(Network* n, unsigned char* buffer, int len, int timeout_ms) -void NewNetwork(Network* n) +void mqtt_network_new(mqtt_network_t* n) { n->my_socket = -1; n->mqttread = mqtt_esp_read; @@ -148,7 +148,7 @@ static int host2addr(const char *hostname , struct in_addr *in) } -int ConnectNetwork(Network* n, const char* host, int port) +int mqtt_network_connect(mqtt_network_t* n, const char* host, int port) { struct sockaddr_in addr; int ret; @@ -179,7 +179,7 @@ int ConnectNetwork(Network* n, const char* host, int port) } -int DisconnectNetwork(Network* n) +int mqtt_network_disconnect(mqtt_network_t* n) { close(n->my_socket); n->my_socket = -1; diff --git a/extras/paho_mqtt_c/MQTTESP8266.h b/extras/paho_mqtt_c/MQTTESP8266.h index f29921e..18e9cdf 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.h +++ b/extras/paho_mqtt_c/MQTTESP8266.h @@ -24,36 +24,34 @@ #include #include -typedef struct Timer Timer; +typedef struct mqtt_timer mqtt_timer_t; -struct Timer +struct mqtt_timer { portTickType end_time; }; -typedef struct Network Network; +typedef struct mqtt_network mqtt_network_t; -struct Network +struct mqtt_network { int my_socket; - int (*mqttread) (Network*, unsigned char*, int, int); - int (*mqttwrite) (Network*, unsigned char*, int, int); + int (*mqttread) (mqtt_network_t*, unsigned char*, int, int); + int (*mqttwrite) (mqtt_network_t*, unsigned char*, int, int); }; -char expired(Timer*); -void countdown_ms(Timer*, unsigned int); -void countdown(Timer*, unsigned int); -int left_ms(Timer*); +char mqtt_timer_expired(mqtt_timer_t*); +void mqtt_timer_countdown_ms(mqtt_timer_t*, unsigned int); +void mqtt_timer_countdown(mqtt_timer_t*, unsigned int); +int mqtt_timer_left_ms(mqtt_timer_t*); +void mqtt_timer_init(mqtt_timer_t*); -void InitTimer(Timer*); - -int mqtt_esp_read(Network*, unsigned char*, int, int); -int mqtt_esp_write(Network*, unsigned char*, int, int); -void mqtt_esp_disconnect(Network*); - -void NewNetwork(Network* n); -int ConnectNetwork(Network* n, const char* host, int port); -int DisconnectNetwork(Network* n); +int mqtt_esp_read(mqtt_network_t*, unsigned char*, int, int); +int mqtt_esp_write(mqtt_network_t*, unsigned char*, int, int); +void mqtt_esp_disconnect(mqtt_network_t*); +void mqtt_network_new(mqtt_network_t* n); +int mqtt_network_connect(mqtt_network_t* n, const char* host, int port); +int mqtt_network_disconnect(mqtt_network_t* n); #endif /* _MQTT_ESP8266_H_ */ diff --git a/extras/paho_mqtt_c/MQTTFormat.h b/extras/paho_mqtt_c/MQTTFormat.h index 47b0c41..9b49b38 100644 --- a/extras/paho_mqtt_c/MQTTFormat.h +++ b/extras/paho_mqtt_c/MQTTFormat.h @@ -20,18 +20,18 @@ #include "StackTrace.h" #include "MQTTPacket.h" -const char* MQTTPacket_getName(unsigned short packetid); -int MQTTStringFormat_connect(char* strbuf, int strbuflen, MQTTPacket_connectData* data); -int MQTTStringFormat_connack(char* strbuf, int strbuflen, unsigned char connack_rc, unsigned char sessionPresent); -int MQTTStringFormat_publish(char* strbuf, int strbuflen, unsigned char dup, int qos, unsigned char retained, - unsigned short packetid, MQTTString topicName, unsigned char* payload, int payloadlen); -int MQTTStringFormat_ack(char* strbuf, int strbuflen, unsigned char packettype, unsigned char dup, unsigned short packetid); -int MQTTStringFormat_subscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, int count, - MQTTString topicFilters[], int requestedQoSs[]); -int MQTTStringFormat_suback(char* strbuf, int strbuflen, unsigned short packetid, int count, int* grantedQoSs); -int MQTTStringFormat_unsubscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]); -char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int buflen); -char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int buflen); +const char* mqtt_packet_get_name(unsigned short packetid); +int mqtt_string_format_connect(char* strbuf, int strbuflen, mqtt_packet_connect_data_t* data); +int mqtt_string_format_connack(char* strbuf, int strbuflen, unsigned char connack_rc, unsigned char sessionPresent); +int mqtt_string_format_publish(char* strbuf, int strbuflen, unsigned char dup, int qos, unsigned char retained, + unsigned short packetid, mqtt_string_t topicName, unsigned char* payload, int payloadlen); +int mqtt_string_format_ack(char* strbuf, int strbuflen, unsigned char packettype, unsigned char dup, unsigned short packetid); +int mqtt_string_format_subscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, int count, + mqtt_string_t topicFilters[], int requestedQoSs[]); +int mqtt_string_format_suback(char* strbuf, int strbuflen, unsigned short packetid, int count, int* grantedQoSs); +int mqtt_string_format_unsubscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid, + int count, mqtt_string_t topicFilters[]); +char* mqtt_format_to_client_string(char* strbuf, int strbuflen, unsigned char* buf, int buflen); +char* mqtt_format_to_server_string(char* strbuf, int strbuflen, unsigned char* buf, int buflen); #endif diff --git a/extras/paho_mqtt_c/MQTTPacket.c b/extras/paho_mqtt_c/MQTTPacket.c index eb36a50..e74d5b7 100644 --- a/extras/paho_mqtt_c/MQTTPacket.c +++ b/extras/paho_mqtt_c/MQTTPacket.c @@ -25,7 +25,7 @@ * @param length the length to be encoded * @return the number of bytes written to buffer */ -int MQTTPacket_encode(unsigned char* buf, int length) +int mqtt_packet_encode(unsigned char* buf, int length) { int rc = 0; @@ -50,7 +50,7 @@ int MQTTPacket_encode(unsigned char* buf, int length) * @param value the decoded length returned * @return the number of bytes read from the socket */ -int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value) +int mqtt_packet_decode(int (*getcharfn)(unsigned char*, int), int* value) { unsigned char c; int multiplier = 1; @@ -80,7 +80,7 @@ exit: } -int MQTTPacket_len(int rem_len) +int mqtt_packet_len(int rem_len) { rem_len += 1; /* header byte */ @@ -99,7 +99,7 @@ int MQTTPacket_len(int rem_len) static unsigned char* bufptr; -int bufchar(unsigned char* c, int count) +static int bufchar(unsigned char* c, int count) { int i; @@ -109,10 +109,10 @@ int bufchar(unsigned char* c, int count) } -int MQTTPacket_decodeBuf(unsigned char* buf, int* value) +int mqtt_packet_decode_buf(unsigned char* buf, int* value) { bufptr = buf; - return MQTTPacket_decode(bufchar, value); + return mqtt_packet_decode(bufchar, value); } @@ -121,7 +121,7 @@ int MQTTPacket_decodeBuf(unsigned char* buf, int* value) * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned * @return the integer value calculated */ -int readInt(unsigned char** pptr) +int mqtt_read_int(unsigned char** pptr) { unsigned char* ptr = *pptr; int len = 256*(*ptr) + (*(ptr+1)); @@ -135,7 +135,7 @@ int readInt(unsigned char** pptr) * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned * @return the character read */ -char readChar(unsigned char** pptr) +char mqtt_read_char(unsigned char** pptr) { char c = **pptr; (*pptr)++; @@ -148,7 +148,7 @@ char readChar(unsigned char** pptr) * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned * @param c the character to write */ -void writeChar(unsigned char** pptr, char c) +void mqtt_write_char(unsigned char** pptr, char c) { **pptr = c; (*pptr)++; @@ -160,7 +160,7 @@ void writeChar(unsigned char** pptr, char c) * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned * @param anInt the integer to write */ -void writeInt(unsigned char** pptr, int anInt) +void mqtt_write_int(unsigned char** pptr, int anInt) { **pptr = (unsigned char)(anInt / 256); (*pptr)++; @@ -174,34 +174,34 @@ void writeInt(unsigned char** pptr, int anInt) * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned * @param string the C string to write */ -void writeCString(unsigned char** pptr, const char* string) +void mqtt_write_cstr(unsigned char** pptr, const char* string) { int len = strlen(string); - writeInt(pptr, len); + mqtt_write_int(pptr, len); memcpy(*pptr, string, len); *pptr += len; } -int getLenStringLen(char* ptr) -{ - int len = 256*((unsigned char)(*ptr)) + (unsigned char)(*(ptr+1)); - return len; -} +//int getLenStringLen(char* ptr) +//{ +// int len = 256*((unsigned char)(*ptr)) + (unsigned char)(*(ptr+1)); +// return len; +//} -void writeMQTTString(unsigned char** pptr, MQTTString mqttstring) +void mqtt_write_mqqt_str(unsigned char** pptr, mqtt_string_t mqttstring) { if (mqttstring.lenstring.len > 0) { - writeInt(pptr, mqttstring.lenstring.len); + mqtt_write_int(pptr, mqttstring.lenstring.len); memcpy(*pptr, mqttstring.lenstring.data, mqttstring.lenstring.len); *pptr += mqttstring.lenstring.len; } else if (mqttstring.cstring) - writeCString(pptr, mqttstring.cstring); + mqtt_write_cstr(pptr, mqttstring.cstring); else - writeInt(pptr, 0); + mqtt_write_int(pptr, 0); } @@ -211,7 +211,7 @@ void writeMQTTString(unsigned char** pptr, MQTTString mqttstring) * @param enddata pointer to the end of the data: do not read beyond * @return 1 if successful, 0 if not */ -int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned char* enddata) +int mqtt_read_str_len(mqtt_string_t* mqttstring, unsigned char** pptr, unsigned char* enddata) { int rc = 0; @@ -219,7 +219,7 @@ int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned ch /* the first two bytes are the length of the string */ if (enddata - (*pptr) > 1) /* enough length to read the integer? */ { - mqttstring->lenstring.len = readInt(pptr); /* increments pptr to point past length */ + mqttstring->lenstring.len = mqtt_read_int(pptr); /* increments pptr to point past length */ if (&(*pptr)[mqttstring->lenstring.len] <= enddata) { mqttstring->lenstring.data = (char*)*pptr; @@ -238,7 +238,7 @@ int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned ch * @param mqttstring the string to return the length of * @return the length of the string */ -int MQTTstrlen(MQTTString mqttstring) +int mqtt_strlen(mqtt_string_t mqttstring) { int rc = 0; @@ -256,7 +256,7 @@ int MQTTstrlen(MQTTString mqttstring) * @param bptr the C string to compare * @return boolean - equal or not */ -int MQTTPacket_equals(MQTTString* a, char* bptr) +int mqtt_packet_equals(mqtt_string_t* a, char* bptr) { int alen = 0, blen = 0; @@ -286,10 +286,10 @@ int MQTTPacket_equals(MQTTString* a, char* bptr) * @return integer MQTT packet type, or -1 on error * @note the whole message must fit into the caller's buffer */ -int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)) +int mqtt_packet_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)) { int rc = -1; - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int len = 0; int rem_len = 0; @@ -299,8 +299,8 @@ int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char* len = 1; /* 2. read the remaining length. This is variable in itself */ - MQTTPacket_decode(getfn, &rem_len); - len += MQTTPacket_encode(buf + 1, rem_len); /* put the original remaining length back into the buffer */ + mqtt_packet_decode(getfn, &rem_len); + len += mqtt_packet_encode(buf + 1, rem_len); /* put the original remaining length back into the buffer */ /* 3. read the rest of the buffer using a callback to supply the rest of the data */ if((rem_len + len) > buflen) @@ -320,7 +320,7 @@ exit: * @param value the decoded length returned * @return integer the number of bytes read from the socket, 0 for call again, or -1 on error */ -static int MQTTPacket_decodenb(MQTTTransport *trp) +static int decodenb(mqtt_transport_t *trp) { unsigned char c; int rc = MQTTPACKET_READ_ERROR; @@ -357,10 +357,10 @@ exit: * @return integer MQTT packet type, 0 for call again, or -1 on error * @note the whole message must fit into the caller's buffer */ -int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp) +int mqtt_packet_readnb(unsigned char* buf, int buflen, mqtt_transport_t *trp) { int rc = -1, frc; - MQTTHeader header = {0}; + mqtt_header_t header = {0}; switch(trp->state){ default: @@ -377,11 +377,11 @@ int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp) /*FALLTHROUGH*/ /* read the remaining length. This is variable in itself */ case 1: - if((frc=MQTTPacket_decodenb(trp)) == MQTTPACKET_READ_ERROR) + if((frc=decodenb(trp)) == MQTTPACKET_READ_ERROR) goto exit; if(frc == 0) return 0; - trp->len = 1 + MQTTPacket_encode(buf + 1, trp->rem_len); /* put the original remaining length back into the buffer */ + trp->len = 1 + mqtt_packet_encode(buf + 1, trp->rem_len); /* put the original remaining length back into the buffer */ if((trp->rem_len + trp->len) > buflen) goto exit; ++trp->state; diff --git a/extras/paho_mqtt_c/MQTTPacket.h b/extras/paho_mqtt_c/MQTTPacket.h index c7909d9..e27c42f 100644 --- a/extras/paho_mqtt_c/MQTTPacket.h +++ b/extras/paho_mqtt_c/MQTTPacket.h @@ -42,9 +42,20 @@ enum errors enum msgTypes { - CONNECT = 1, CONNACK, PUBLISH, PUBACK, PUBREC, PUBREL, - PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK, - PINGREQ, PINGRESP, DISCONNECT + MQTTPACKET_CONNECT = 1, + MQTTPACKET_CONNACK, + MQTTPACKET_PUBLISH, + MQTTPACKET_PUBACK, + MQTTPACKET_PUBREC, + MQTTPACKET_PUBREL, + MQTTPACKET_PUBCOMP, + MQTTPACKET_SUBSCRIBE, + MQTTPACKET_SUBACK, + MQTTPACKET_UNSUBSCRIBE, + MQTTPACKET_UNSUBACK, + MQTTPACKET_PINGREQ, + MQTTPACKET_PINGRESP, + MQTTPACKET_DISCONNECT }; /** @@ -70,23 +81,23 @@ typedef union unsigned int type : 4; /**< message type nibble */ } bits; #endif -} MQTTHeader; +} mqtt_header_t; typedef struct { int len; char* data; -} MQTTLenString; +} mqtt_string_len_t; typedef struct { char* cstring; - MQTTLenString lenstring; -} MQTTString; + mqtt_string_len_t lenstring; +} mqtt_string_t; -#define MQTTString_initializer {NULL, {0, NULL}} +#define mqtt_string_initializer {NULL, {0, NULL}} -int MQTTstrlen(MQTTString mqttstring); +int mqtt_strlen(mqtt_string_t mqttstring); #include "MQTTConnect.h" #include "MQTTPublish.h" @@ -94,25 +105,25 @@ int MQTTstrlen(MQTTString mqttstring); #include "MQTTUnsubscribe.h" #include "MQTTFormat.h" -int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char type, unsigned char dup, unsigned short packetid); -int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen); +int mqtt_serialize_ack(unsigned char* buf, int buflen, unsigned char type, unsigned char dup, unsigned short packetid); +int mqtt_deserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen); -int MQTTPacket_len(int rem_len); -int MQTTPacket_equals(MQTTString* a, char* b); +int mqtt_packet_len(int rem_len); +int mqtt_packet_equals(mqtt_string_t* a, char* b); -int MQTTPacket_encode(unsigned char* buf, int length); -int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value); -int MQTTPacket_decodeBuf(unsigned char* buf, int* value); +int mqtt_packet_encode(unsigned char* buf, int length); +int mqtt_packet_decode(int (*getcharfn)(unsigned char*, int), int* value); +int mqtt_packet_decode_buf(unsigned char* buf, int* value); -int readInt(unsigned char** pptr); -char readChar(unsigned char** pptr); -void writeChar(unsigned char** pptr, char c); -void writeInt(unsigned char** pptr, int anInt); -int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned char* enddata); -void writeCString(unsigned char** pptr, const char* string); -void writeMQTTString(unsigned char** pptr, MQTTString mqttstring); +int mqtt_read_int(unsigned char** pptr); +char mqtt_read_char(unsigned char** pptr); +void mqtt_write_char(unsigned char** pptr, char c); +void mqtt_write_int(unsigned char** pptr, int anInt); +int mqtt_read_str_len(mqtt_string_t* mqttstring, unsigned char** pptr, unsigned char* enddata); +void mqtt_write_cstr(unsigned char** pptr, const char* string); +void mqtt_write_mqqt_str(unsigned char** pptr, mqtt_string_t mqttstring); -DLLExport int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)); +DLLExport int mqtt_packet_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)); typedef struct { int (*getfn)(void *, unsigned char*, int); /* must return -1 for error, 0 for call again, or the number of bytes read */ @@ -121,9 +132,9 @@ typedef struct { int rem_len; int len; char state; -}MQTTTransport; +} mqtt_transport_t; -int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp); +int mqtt_packet_readnb(unsigned char* buf, int buflen, mqtt_transport_t *trp); #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ } diff --git a/extras/paho_mqtt_c/MQTTPublish.h b/extras/paho_mqtt_c/MQTTPublish.h index ffd8752..668c318 100644 --- a/extras/paho_mqtt_c/MQTTPublish.h +++ b/extras/paho_mqtt_c/MQTTPublish.h @@ -25,14 +25,14 @@ #define DLLExport #endif -DLLExport int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, - MQTTString topicName, unsigned char* payload, int payloadlen); +DLLExport int mqtt_serialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, + mqtt_string_t topicName, unsigned char* payload, int payloadlen); -DLLExport int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName, +DLLExport int mqtt_deserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, mqtt_string_t* topicName, unsigned char** payload, int* payloadlen, unsigned char* buf, int len); -DLLExport int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid); -DLLExport int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid); -DLLExport int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid); +DLLExport int mqtt_serialize_puback(unsigned char* buf, int buflen, unsigned short packetid); +DLLExport int mqtt_serialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid); +DLLExport int mqtt_serialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid); #endif /* MQTTPUBLISH_H_ */ diff --git a/extras/paho_mqtt_c/MQTTSerializePublish.c b/extras/paho_mqtt_c/MQTTSerializePublish.c index c3343c8..2758104 100644 --- a/extras/paho_mqtt_c/MQTTSerializePublish.c +++ b/extras/paho_mqtt_c/MQTTSerializePublish.c @@ -28,11 +28,11 @@ * @param payloadlen the length of the payload to be sent * @return the length of buffer needed to contain the serialized version of the packet */ -int MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen) +static int publish_length(int qos, mqtt_string_t topicName, int payloadlen) { int len = 0; - len += 2 + MQTTstrlen(topicName) + payloadlen; + len += 2 + mqtt_strlen(topicName) + payloadlen; if (qos > 0) len += 2; /* packetid */ return len; @@ -52,33 +52,33 @@ int MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen) * @param payloadlen integer - the length of the MQTT payload * @return the length of the serialized data. <= 0 indicates error */ -int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, - MQTTString topicName, unsigned char* payload, int payloadlen) +int mqtt_serialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid, + mqtt_string_t topicName, unsigned char* payload, int payloadlen) { unsigned char *ptr = buf; - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int rem_len = 0; int rc = 0; FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_publishLength(qos, topicName, payloadlen)) > buflen) + if (mqtt_packet_len(rem_len = publish_length(qos, topicName, payloadlen)) > buflen) { rc = MQTTPACKET_BUFFER_TOO_SHORT; goto exit; } - header.bits.type = PUBLISH; + header.bits.type = MQTTPACKET_PUBLISH; header.bits.dup = dup; header.bits.qos = qos; header.bits.retain = retained; - writeChar(&ptr, header.byte); /* write header */ + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; + ptr += mqtt_packet_encode(ptr, rem_len); /* write remaining length */; - writeMQTTString(&ptr, topicName); + mqtt_write_mqqt_str(&ptr, topicName); if (qos > 0) - writeInt(&ptr, packetid); + mqtt_write_int(&ptr, packetid); memcpy(ptr, payload, payloadlen); ptr += payloadlen; @@ -101,9 +101,9 @@ exit: * @param packetid the MQTT packet identifier * @return serialized length, or error if 0 */ -int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char packettype, unsigned char dup, unsigned short packetid) +int mqtt_serialize_ack(unsigned char* buf, int buflen, unsigned char packettype, unsigned char dup, unsigned short packetid) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int rc = 0; unsigned char *ptr = buf; @@ -115,11 +115,11 @@ int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char packettype, } header.bits.type = packettype; header.bits.dup = dup; - header.bits.qos = (packettype == PUBREL) ? 1 : 0; - writeChar(&ptr, header.byte); /* write header */ + header.bits.qos = (packettype == MQTTPACKET_PUBREL) ? 1 : 0; + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, 2); /* write remaining length */ - writeInt(&ptr, packetid); + ptr += mqtt_packet_encode(ptr, 2); /* write remaining length */ + mqtt_write_int(&ptr, packetid); rc = ptr - buf; exit: FUNC_EXIT_RC(rc); @@ -134,9 +134,9 @@ exit: * @param packetid integer - the MQTT packet identifier * @return serialized length, or error if 0 */ -int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid) +int mqtt_serialize_puback(unsigned char* buf, int buflen, unsigned short packetid) { - return MQTTSerialize_ack(buf, buflen, PUBACK, 0, packetid); + return mqtt_serialize_ack(buf, buflen, MQTTPACKET_PUBACK, 0, packetid); } @@ -148,9 +148,9 @@ int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packeti * @param packetid integer - the MQTT packet identifier * @return serialized length, or error if 0 */ -int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid) +int mqtt_serialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid) { - return MQTTSerialize_ack(buf, buflen, PUBREL, dup, packetid); + return mqtt_serialize_ack(buf, buflen, MQTTPACKET_PUBREL, dup, packetid); } @@ -161,9 +161,9 @@ int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, uns * @param packetid integer - the MQTT packet identifier * @return serialized length, or error if 0 */ -int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid) +int mqtt_serialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid) { - return MQTTSerialize_ack(buf, buflen, PUBCOMP, 0, packetid); + return mqtt_serialize_ack(buf, buflen, MQTTPACKET_PUBCOMP, 0, packetid); } diff --git a/extras/paho_mqtt_c/MQTTSubscribe.h b/extras/paho_mqtt_c/MQTTSubscribe.h index 9b8511d..6918a92 100644 --- a/extras/paho_mqtt_c/MQTTSubscribe.h +++ b/extras/paho_mqtt_c/MQTTSubscribe.h @@ -25,15 +25,17 @@ #define DLLExport #endif -DLLExport int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[], int requestedQoSs[]); +#include "MQTTPacket.h" -DLLExport int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid, - int maxcount, int* count, MQTTString topicFilters[], int requestedQoSs[], unsigned char* buf, int len); +DLLExport int mqtt_serialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, + int count, mqtt_string_t topicFilters[], int requestedQoSs[]); -DLLExport int MQTTSerialize_suback(unsigned char* buf, int buflen, unsigned short packetid, int count, int* grantedQoSs); +DLLExport int mqtt_deserialize_subscribe(unsigned char* dup, unsigned short* packetid, + int maxcount, int* count, mqtt_string_t topicFilters[], int requestedQoSs[], unsigned char* buf, int len); -DLLExport int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int len); +DLLExport int mqtt_serialize_suback(unsigned char* buf, int buflen, unsigned short packetid, int count, int* grantedQoSs); + +DLLExport int mqtt_deserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int len); #endif /* MQTTSUBSCRIBE_H_ */ diff --git a/extras/paho_mqtt_c/MQTTSubscribeClient.c b/extras/paho_mqtt_c/MQTTSubscribeClient.c index a76a4d3..ea7c69c 100644 --- a/extras/paho_mqtt_c/MQTTSubscribeClient.c +++ b/extras/paho_mqtt_c/MQTTSubscribeClient.c @@ -14,6 +14,7 @@ * Ian Craggs - initial API and implementation and/or initial documentation *******************************************************************************/ #include + #include "MQTTPacket.h" #include "StackTrace.h" @@ -25,13 +26,13 @@ * @param topicFilters the array of topic filter strings to be used in the publish * @return the length of buffer needed to contain the serialized version of the packet */ -int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[]) +static int subscribe_length(int count, mqtt_string_t topicFilters[]) { int i; int len = 2; /* packetid */ for (i = 0; i < count; ++i) - len += 2 + MQTTstrlen(topicFilters[i]) + 1; /* length + topic + req_qos */ + len += 2 + mqtt_strlen(topicFilters[i]) + 1; /* length + topic + req_qos */ return len; } @@ -47,36 +48,36 @@ int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[]) * @param requestedQoSs - array of requested QoS * @return the length of the serialized data. <= 0 indicates error */ -int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, int count, - MQTTString topicFilters[], int requestedQoSs[]) +int mqtt_serialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, int count, + mqtt_string_t topicFilters[], int requestedQoSs[]) { unsigned char *ptr = buf; - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int rem_len = 0; int rc = 0; int i = 0; FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_subscribeLength(count, topicFilters)) > buflen) + if (mqtt_packet_len(rem_len = subscribe_length(count, topicFilters)) > buflen) { rc = MQTTPACKET_BUFFER_TOO_SHORT; goto exit; } header.byte = 0; - header.bits.type = SUBSCRIBE; + header.bits.type = MQTTPACKET_SUBSCRIBE; header.bits.dup = dup; header.bits.qos = 1; - writeChar(&ptr, header.byte); /* write header */ + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; + ptr += mqtt_packet_encode(ptr, rem_len); /* write remaining length */; - writeInt(&ptr, packetid); + mqtt_write_int(&ptr, packetid); for (i = 0; i < count; ++i) { - writeMQTTString(&ptr, topicFilters[i]); - writeChar(&ptr, requestedQoSs[i]); + mqtt_write_mqqt_str(&ptr, topicFilters[i]); + mqtt_write_char(&ptr, requestedQoSs[i]); } rc = ptr - buf; @@ -97,25 +98,25 @@ exit: * @param buflen the length in bytes of the data in the supplied buffer * @return error code. 1 is success, 0 is failure */ -int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int buflen) +int mqtt_deserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int buflen) { - MQTTHeader header = {0}; + mqtt_header_t header = {0}; unsigned char* curdata = buf; unsigned char* enddata = NULL; int rc = 0; int mylen; FUNC_ENTRY; - header.byte = readChar(&curdata); - if (header.bits.type != SUBACK) + header.byte = mqtt_read_char(&curdata); + if (header.bits.type != MQTTPACKET_SUBACK) goto exit; - curdata += (rc = MQTTPacket_decodeBuf(curdata, &mylen)); /* read remaining length */ + curdata += (rc = mqtt_packet_decode_buf(curdata, &mylen)); /* read remaining length */ enddata = curdata + mylen; if (enddata - curdata < 2) goto exit; - *packetid = readInt(&curdata); + *packetid = mqtt_read_int(&curdata); *count = 0; while (curdata < enddata) @@ -125,7 +126,7 @@ int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, rc = -1; goto exit; } - grantedQoSs[(*count)++] = readChar(&curdata); + grantedQoSs[(*count)++] = mqtt_read_char(&curdata); } rc = 1; diff --git a/extras/paho_mqtt_c/MQTTUnsubscribe.h b/extras/paho_mqtt_c/MQTTUnsubscribe.h index 2f8e829..9ec9671 100644 --- a/extras/paho_mqtt_c/MQTTUnsubscribe.h +++ b/extras/paho_mqtt_c/MQTTUnsubscribe.h @@ -25,14 +25,14 @@ #define DLLExport #endif -DLLExport int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]); +DLLExport int mqtt_serialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, + int count, mqtt_string_t topicFilters[]); -DLLExport int MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int max_count, int* count, MQTTString topicFilters[], +DLLExport int mqtt_deserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int max_count, int* count, mqtt_string_t topicFilters[], unsigned char* buf, int len); -DLLExport int MQTTSerialize_unsuback(unsigned char* buf, int buflen, unsigned short packetid); +DLLExport int mqtt_serialize_unsuback(unsigned char* buf, int buflen, unsigned short packetid); -DLLExport int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int len); +DLLExport int mqtt_deserialize_unsuback(unsigned short* packetid, unsigned char* buf, int len); #endif /* MQTTUNSUBSCRIBE_H_ */ diff --git a/extras/paho_mqtt_c/MQTTUnsubscribeClient.c b/extras/paho_mqtt_c/MQTTUnsubscribeClient.c index 40b4733..a302925 100644 --- a/extras/paho_mqtt_c/MQTTUnsubscribeClient.c +++ b/extras/paho_mqtt_c/MQTTUnsubscribeClient.c @@ -25,13 +25,13 @@ * @param topicFilters the array of topic filter strings to be used in the publish * @return the length of buffer needed to contain the serialized version of the packet */ -int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[]) +static int unsubscribe_length(int count, mqtt_string_t topicFilters[]) { int i; int len = 2; /* packetid */ for (i = 0; i < count; ++i) - len += 2 + MQTTstrlen(topicFilters[i]); /* length + topic*/ + len += 2 + mqtt_strlen(topicFilters[i]); /* length + topic*/ return len; } @@ -46,34 +46,34 @@ int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[]) * @param topicFilters - array of topic filter names * @return the length of the serialized data. <= 0 indicates error */ -int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, - int count, MQTTString topicFilters[]) +int mqtt_serialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, + int count, mqtt_string_t topicFilters[]) { unsigned char *ptr = buf; - MQTTHeader header = {0}; + mqtt_header_t header = {0}; int rem_len = 0; int rc = -1; int i = 0; FUNC_ENTRY; - if (MQTTPacket_len(rem_len = MQTTSerialize_unsubscribeLength(count, topicFilters)) > buflen) + if (mqtt_packet_len(rem_len = unsubscribe_length(count, topicFilters)) > buflen) { rc = MQTTPACKET_BUFFER_TOO_SHORT; goto exit; } header.byte = 0; - header.bits.type = UNSUBSCRIBE; + header.bits.type = MQTTPACKET_UNSUBSCRIBE; header.bits.dup = dup; header.bits.qos = 1; - writeChar(&ptr, header.byte); /* write header */ + mqtt_write_char(&ptr, header.byte); /* write header */ - ptr += MQTTPacket_encode(ptr, rem_len); /* write remaining length */; + ptr += mqtt_packet_encode(ptr, rem_len); /* write remaining length */; - writeInt(&ptr, packetid); + mqtt_write_int(&ptr, packetid); for (i = 0; i < count; ++i) - writeMQTTString(&ptr, topicFilters[i]); + mqtt_write_mqqt_str(&ptr, topicFilters[i]); rc = ptr - buf; exit: @@ -89,15 +89,15 @@ exit: * @param buflen the length in bytes of the data in the supplied buffer * @return error code. 1 is success, 0 is failure */ -int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int buflen) +int mqtt_deserialize_unsuback(unsigned short* packetid, unsigned char* buf, int buflen) { unsigned char type = 0; unsigned char dup = 0; int rc = 0; FUNC_ENTRY; - rc = MQTTDeserialize_ack(&type, &dup, packetid, buf, buflen); - if (type == UNSUBACK) + rc = mqtt_deserialize_ack(&type, &dup, packetid, buf, buflen); + if (type == MQTTPACKET_UNSUBACK) rc = 1; FUNC_EXIT_RC(rc); return rc; From 94237f0ecdba43ea66a4f7ac2efb98f6163df1f9 Mon Sep 17 00:00:00 2001 From: Vlad Ivanov Date: Thu, 15 Sep 2016 22:31:45 +0300 Subject: [PATCH 077/349] core: add phy regs definition --- core/include/esp/phy_regs.h | 74 +++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 core/include/esp/phy_regs.h diff --git a/core/include/esp/phy_regs.h b/core/include/esp/phy_regs.h new file mode 100644 index 0000000..f4ee2d3 --- /dev/null +++ b/core/include/esp/phy_regs.h @@ -0,0 +1,74 @@ +/* esp/phy_regs.h + * + * ESP8266 PHY register definitions + * + * Not compatible with ESP SDK register access code. + */ + +#ifndef _ESP_PHY_REGS_H +#define _ESP_PHY_REGS_H + +#include "esp/types.h" +#include "common_macros.h" + +#define PHY_BASE 0x60000500 +#define PHY (*(struct PHY_REGS *)(PHY_BASE)) + +struct PHY_REGS { + // 0x00 — 0x60 + uint32_t volatile _gap0[24]; + // TX digital predistortion control + // 0x60 + uint32_t volatile TX_DPD; + // 0x64 — 0x7c + uint32_t volatile _gap1[6]; + // IQ imbalance estimation control + // 0x7c + uint32_t volatile IQ_EST; + // Looks like RSSI, + // may be per OFDM subcarrier + // 0x80 + uint32_t volatile RX_IQ_0; + // 0x84 + uint32_t volatile RX_IQ_1; + // 0x88 + uint32_t volatile RX_IQ_2; + // 0x8c + uint32_t volatile RX_IQ_3; + // RX gain control + // 0x90 + uint32_t volatile RX_GAIN_CTL; + // Whatever pbus is, these registers controls it + // 0x94 + uint32_t volatile PBUS_CTL_0; + // 0x98 + uint32_t volatile PBUS_CTL_1; + // 0x9C + uint32_t volatile PBUS_CTL_2; + // 0xA0 + uint32_t volatile PBUS_CTL_3; + uint32_t volatile _gap2[5]; + // Looks like baseband synthesizer control regs + // 0xB8 + uint32_t volatile BB_CTL_0; + // 0xBC + uint32_t volatile BB_CTL_1; + // 0xC0 + uint32_t volatile BB_CTL_2; + // 0xC4 + uint32_t volatile BB_CTL_3; + // These registers do exist but I don't know + // what they are for. + // 0xC8 + uint32_t volatile UNK_0; + uint32_t volatile UNK_1; + uint32_t volatile UNK_2; + uint32_t volatile UNK_3; + uint32_t volatile UNK_4; +}; + +_Static_assert((uintptr_t) &PHY.TX_DPD == 0x60000560, "RF PHY TX_DPD address"); +_Static_assert((uintptr_t) &PHY.IQ_EST == 0x6000057C, "RF PHY IQ_EST address"); +_Static_assert((uintptr_t) &PHY.BB_CTL_3 == 0x600005C4, "RF PHY BB_CTL_3 address"); + +#endif /* _ESP_PHY_REGS_H */ From a15d1bb0021c837dff548d024e6f1904dbd559a9 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 22 Sep 2016 16:56:06 +1000 Subject: [PATCH 078/349] timers: esp library timer callbacks expect their argument not a xTimerHandle (#221) --- open_esplibs/libmain/timers.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/open_esplibs/libmain/timers.c b/open_esplibs/libmain/timers.c index 4c1edb9..b30f6e3 100644 --- a/open_esplibs/libmain/timers.c +++ b/open_esplibs/libmain/timers.c @@ -60,11 +60,17 @@ void sdk_os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg) { *tailptr = new_entry; } +static void timer_tramp(xTimerHandle xTimer) +{ + ETSTimer *ptimer = pvTimerGetTimerID(xTimer); + ptimer->timer_func(ptimer->timer_arg); +} + void sdk_os_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag) { if (!ptimer->timer_handle) { ptimer->timer_repeat = repeat_flag; ptimer->timer_ms = milliseconds; - ptimer->timer_handle = xTimerCreate(0, milliseconds/10, repeat_flag, ptimer->timer_arg, ptimer->timer_func); + ptimer->timer_handle = xTimerCreate(0, milliseconds/10, repeat_flag, ptimer, timer_tramp); armed_timer_count++; if (!ptimer->timer_handle) { //FIXME: should print an error? (original code doesn't) From a3236801156abc595fb2f059436909eee0b93ea7 Mon Sep 17 00:00:00 2001 From: Brian Schwind Date: Fri, 26 Aug 2016 01:39:25 +0900 Subject: [PATCH 079/349] Add a TSL2561 driver and example usage --- examples/tsl2561/Makefile | 3 + examples/tsl2561/tsl2561_example.c | 69 +++++++ extras/tsl2561/component.mk | 9 + extras/tsl2561/tsl2561.c | 287 +++++++++++++++++++++++++++++ extras/tsl2561/tsl2561.h | 125 +++++++++++++ 5 files changed, 493 insertions(+) create mode 100644 examples/tsl2561/Makefile create mode 100644 examples/tsl2561/tsl2561_example.c create mode 100644 extras/tsl2561/component.mk create mode 100644 extras/tsl2561/tsl2561.c create mode 100644 extras/tsl2561/tsl2561.h diff --git a/examples/tsl2561/Makefile b/examples/tsl2561/Makefile new file mode 100644 index 0000000..133e3d1 --- /dev/null +++ b/examples/tsl2561/Makefile @@ -0,0 +1,3 @@ +PROGRAM=tsl2561_example +EXTRA_COMPONENTS = extras/i2c extras/tsl2561 +include ../../common.mk diff --git a/examples/tsl2561/tsl2561_example.c b/examples/tsl2561/tsl2561_example.c new file mode 100644 index 0000000..b6081b8 --- /dev/null +++ b/examples/tsl2561/tsl2561_example.c @@ -0,0 +1,69 @@ +/* + * This sample code is in the public domain. + */ + +#include +#include +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "i2c/i2c.h" +#include "task.h" +#include "tsl2561/tsl2561.h" + +/* An example using the TSL2561 light sensor + * to read and print lux values from a sensor + * attached to GPIO pin 2 (SCL) and GPIO pin 0 (SDA) + * Connect 3.3v from the ESP to Vin and GND to GND + */ + +#define SCL_PIN (2) +#define SDA_PIN (0) + +void tsl2561MeasurementTask(void *pvParameters) +{ + tsl2561_t lightSensor; + + // Options: + // TSL2561_I2C_ADDR_VCC (0x49) + // TSL2561_I2C_ADDR_GND (0x29) + // TSL2561_I2C_ADDR_FLOAT (0x39) Default + lightSensor.i2c_addr = TSL2561_I2C_ADDR_FLOAT; + + tsl2561_init(&lightSensor); + + // Options: + // TSL2561_INTEGRATION_13MS (0x00) + // TSL2561_INTEGRATION_101MS (0x01) + // TSL2561_INTEGRATION_402MS (0x02) Default + tsl2561_set_integration_time(&lightSensor, TSL2561_INTEGRATION_402MS); + + // Options: + // TSL2561_GAIN_1X (0x00) Default + // TSL2561_GAIN_16X (0x10) + tsl2561_set_gain(&lightSensor, TSL2561_GAIN_1X); + + uint32_t lux = 0; + + while (1) + { + if (tsl2561_read_lux(&lightSensor, &lux)) + { + printf("Lux: %u\n", lux); + } + else + { + printf("Could not read data from TSL2561\n"); + } + + // 0.1 second delay + vTaskDelay(100 / portTICK_RATE_MS); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + i2c_init(SCL_PIN, SDA_PIN); + + xTaskCreate(tsl2561MeasurementTask, (signed char *)"tsl2561MeasurementTask", 256, NULL, 2, NULL); +} diff --git a/extras/tsl2561/component.mk b/extras/tsl2561/component.mk new file mode 100644 index 0000000..47cf9cd --- /dev/null +++ b/extras/tsl2561/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/tsl2561 + +# Include the TSL2561 driver as "tsl2561/tsl2561.h" +INC_DIRS += $(tsl2561_ROOT).. + +# args for passing into compile rule generation +tsl2561_SRC_DIR = $(tsl2561_ROOT) + +$(eval $(call component_compile_rules,tsl2561)) diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c new file mode 100644 index 0000000..5c6be57 --- /dev/null +++ b/extras/tsl2561/tsl2561.c @@ -0,0 +1,287 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2016 Brian Schwind (https://github.com/bschwind) + * BSD Licensed as described in the file LICENSE + */ + +#include +#include "FreeRTOS.h" +#include "i2c/i2c.h" +#include "task.h" +#include "tsl2561.h" + +bool write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +{ + uint8_t data[2]; + data[0] = TSL2561_REG_COMMAND | reg; + data[1] = value; + return i2c_slave_write(i2c_addr, data, 2); +} + +uint8_t read_register(uint8_t i2c_addr, uint8_t reg) +{ + uint8_t data[1]; + + if (!i2c_slave_read(i2c_addr, TSL2561_REG_COMMAND | reg, data, 1)) + { + printf("Error in tsl261 read_register\n"); + } + + return data[0]; +} + +uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) +{ + uint16_t value = 0; + uint8_t data[2]; + + if (!i2c_slave_read(i2c_addr, TSL2561_REG_COMMAND | TSL2561_READ_WORD | low_register_addr, data, 2)) + { + printf("Error with i2c_slave_read in read_register_16\n"); + } + + value = ((uint16_t)data[1] << 8) | (data[0]); + + return value; +} + +bool enable(uint8_t i2c_addr) +{ + return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_ON); +} + +bool disable(uint8_t i2c_addr) +{ + return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_OFF); +} + +void tsl2561_init(tsl2561_t *device) +{ + if (!enable(device->i2c_addr)) + { + printf("Error initializing tsl2561\n"); + } + + uint8_t control_reg = (read_register(device->i2c_addr, TSL2561_REG_CONTROL) & TSL2561_ON); + + if (control_reg != TSL2561_ON) + { + printf("Error initializing tsl2561, control register wasn't set to ON\n"); + } + + // Fetch the package type + uint8_t part_reg = read_register(device->i2c_addr, TSL2561_REG_PART_ID); + uint8_t package = part_reg >> 6; + device->package_type = package; + + // Fetch the gain and integration time + uint8_t timing_register = read_register(device->i2c_addr, TSL2561_REG_TIMING); + device->gain = timing_register & 0x10; + device->integration_time = timing_register & 0x03; + + disable(device->i2c_addr); +} + +void tsl2561_set_integration_time(tsl2561_t *device, uint8_t integration_time_id) +{ + enable(device->i2c_addr); + write_register(device->i2c_addr, TSL2561_REG_TIMING, integration_time_id | device->gain); + disable(device->i2c_addr); + + device->integration_time = integration_time_id; +} + +void tsl2561_set_gain(tsl2561_t *device, uint8_t gain) +{ + enable(device->i2c_addr); + write_register(device->i2c_addr, TSL2561_REG_TIMING, gain | device->integration_time); + disable(device->i2c_addr); + + device->gain = gain; +} + +void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *channel1) +{ + enable(device->i2c_addr); + + // Since we just enabled the chip, we need to sleep + // for the chip's integration time so it can gather a reading + switch (device->integration_time) + { + case TSL2561_INTEGRATION_13MS: + vTaskDelay(TSL2561_INTEGRATION_TIME_13MS / portTICK_RATE_MS); + break; + case TSL2561_INTEGRATION_101MS: + vTaskDelay(TSL2561_INTEGRATION_TIME_101MS / portTICK_RATE_MS); + break; + default: + vTaskDelay(TSL2561_INTEGRATION_TIME_402MS / portTICK_RATE_MS); + break; + } + + *channel0 = read_register_16(device->i2c_addr, TSL2561_REG_CHANNEL_0_LOW); + *channel1 = read_register_16(device->i2c_addr, TSL2561_REG_CHANNEL_1_LOW); + + disable(device->i2c_addr); +} + +bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) +{ + uint32_t chScale; + uint32_t channel1; + uint32_t channel0; + + switch (device->integration_time) + { + case TSL2561_INTEGRATION_13MS: + chScale = CHSCALE_TINT0; + break; + case TSL2561_INTEGRATION_101MS: + chScale = CHSCALE_TINT1; + break; + default: + chScale = (1 << CH_SCALE); + break; + } + + // Scale if gain is 1x + if (device->gain == TSL2561_GAIN_1X) + { + // 16x is nominal, so if the gain is set to 1x then + // we need to scale by 16 + chScale = chScale << 4; + } + + uint16_t ch0; + uint16_t ch1; + get_channel_data(device, &ch0, &ch1); + + // Scale the channel values + channel0 = (ch0 * chScale) >> CH_SCALE; + channel1 = (ch1 * chScale) >> CH_SCALE; + + // Find the ratio of the channel values (channel1 / channel0) + // Protect against divide by zero + uint32_t ratio1 = 0; + if (channel0 != 0) + { + ratio1 = (channel1 << (RATIO_SCALE+1)) / channel0; + } + + // Round the ratio value + uint32_t ratio = (ratio1 + 1) >> 1; + + uint32_t b; + uint32_t m; + switch (device->package_type) + { + case TSL2561_PACKAGE_CS: + if ((ratio >= 0) && (ratio <= K1C)) + { + b = B1C; + m = M1C; + } + else if (ratio <= K2C) + { + b = B2C; + m = M2C; + } + else if (ratio <= K3C) + { + b = B3C; + m = M3C; + } + else if (ratio <= K4C) + { + b = B4C; + m = M4C; + } + else if (ratio <= K5C) + { + b = B5C; + m = M5C; + } + else if (ratio <= K6C) + { + b = B6C; + m = M6C; + } + else if (ratio <= K7C) + { + b = B7C; + m = M7C; + } + else if (ratio > K8C) + { + b = B8C; + m = M8C; + } + + break; + case TSL2561_PACKAGE_T_FN_CL: + if ((ratio >= 0) && (ratio <= K1T)) + { + b = B1T; + m = M1T; + } + else if (ratio <= K2T) + { + b = B2T; + m = M2T; + } + else if (ratio <= K3T) + { + b = B3T; + m = M3T; + } + else if (ratio <= K4T) + { + b = B4T; + m = M4T; + } + else if (ratio <= K5T) + { + b = B5T; + m = M5T; + } + else if (ratio <= K6T) + { + b = B6T; + m = M6T; + } + else if (ratio <= K7T) + { + b = B7T; + m = M7T; + } + else if (ratio > K8T) + { + b = B8T; + m = M8T; + } + + break; + default: + printf("Invalid package type in CalculateLux\n"); + b = 0; + m = 0; + break; + } + + uint32_t temp; + temp = ((channel0 * b) - (channel1 * m)); + + // Do not allow negative lux value + if (temp < 0) + { + temp = 0; + } + + // Round lsb (2^(LUX_SCALE−1)) + temp += (1 << (LUX_SCALE - 1)); + + // Strip off fractional portion + *lux = temp >> LUX_SCALE; + + return true; +} diff --git a/extras/tsl2561/tsl2561.h b/extras/tsl2561/tsl2561.h new file mode 100644 index 0000000..5cdf03b --- /dev/null +++ b/extras/tsl2561/tsl2561.h @@ -0,0 +1,125 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2016 Brian Schwind (https://github.com/bschwind) + * BSD Licensed as described in the file LICENSE + */ + +#ifndef __TSL2561_H__ +#define __TSL2561_H__ + +#include +#include + +// I2C Addresses +#define TSL2561_I2C_ADDR_VCC 0x49 +#define TSL2561_I2C_ADDR_GND 0x29 +#define TSL2561_I2C_ADDR_FLOAT 0x39 // Default + +// Registers +#define TSL2561_REG_COMMAND 0x80 +#define TSL2561_REG_CONTROL 0x00 +#define TSL2561_REG_TIMING 0x01 +#define TSL2561_REG_THRESHOLD_LOW_0 0x02 +#define TSL2561_REG_THRESHOLD_LOW_1 0x03 +#define TSL2561_REG_THRESHOLD_HIGH_0 0x04 +#define TSL2561_REG_THRESHOLD_HIGH_1 0x05 +#define TSL2561_REG_INTERRUPT 0x06 +#define TSL2561_REG_PART_ID 0x0A +#define TSL2561_REG_CHANNEL_0_LOW 0x0C +#define TSL2561_REG_CHANNEL_0_HIGH 0x0D +#define TSL2561_REG_CHANNEL_1_LOW 0x0E +#define TSL2561_REG_CHANNEL_1_HIGH 0x0F + +// TSL2561 Misc Values +#define TSL2561_ON 0x03 +#define TSL2561_OFF 0x00 +#define TSL2561_READ_WORD 0x20 + +// Integration time IDs +#define TSL2561_INTEGRATION_13MS 0x00 +#define TSL2561_INTEGRATION_101MS 0x01 +#define TSL2561_INTEGRATION_402MS 0x02 // Default + +// Integration times in milliseconds +#define TSL2561_INTEGRATION_TIME_13MS 20 +#define TSL2561_INTEGRATION_TIME_101MS 110 +#define TSL2561_INTEGRATION_TIME_402MS 410 // Default + +// Gain IDs +#define TSL2561_GAIN_1X 0x00 +#define TSL2561_GAIN_16X 0x10 + +// Calculation constants +#define LUX_SCALE 14 +#define RATIO_SCALE 9 +#define CH_SCALE 10 +#define CHSCALE_TINT0 0x7517 +#define CHSCALE_TINT1 0x0fe7 + +// Package constants +#define TSL2561_PACKAGE_CS 0x00 +#define TSL2561_PACKAGE_T_FN_CL 0x01 + +// Constants from the TSL2561 data sheet +#define K1T 0x0040 // 0.125 * 2^RATIO_SCALE +#define B1T 0x01f2 // 0.0304 * 2^LUX_SCALE +#define M1T 0x01be // 0.0272 * 2^LUX_SCALE +#define K2T 0x0080 // 0.250 * 2^RATIO_SCALE +#define B2T 0x0214 // 0.0325 * 2^LUX_SCALE +#define M2T 0x02d1 // 0.0440 * 2^LUX_SCALE +#define K3T 0x00c0 // 0.375 * 2^RATIO_SCALE +#define B3T 0x023f // 0.0351 * 2^LUX_SCALE +#define M3T 0x037b // 0.0544 * 2^LUX_SCALE +#define K4T 0x0100 // 0.50 * 2^RATIO_SCALE +#define B4T 0x0270 // 0.0381 * 2^LUX_SCALE +#define M4T 0x03fe // 0.0624 * 2^LUX_SCALE +#define K5T 0x0138 // 0.61 * 2^RATIO_SCALE +#define B5T 0x016f // 0.0224 * 2^LUX_SCALE +#define M5T 0x01fc // 0.0310 * 2^LUX_SCALE +#define K6T 0x019a // 0.80 * 2^RATIO_SCALE +#define B6T 0x00d2 // 0.0128 * 2^LUX_SCALE +#define M6T 0x00fb // 0.0153 * 2^LUX_SCALE +#define K7T 0x029a // 1.3 * 2^RATIO_SCALE +#define B7T 0x0018 // 0.00146 * 2^LUX_SCALE +#define M7T 0x0012 // 0.00112 * 2^LUX_SCALE +#define K8T 0x029a // 1.3 * 2^RATIO_SCALE +#define B8T 0x0000 // 0.000 * 2^LUX_SCALE +#define M8T 0x0000 // 0.000 * 2^LUX_SCALE +#define K1C 0x0043 // 0.130 * 2^RATIO_SCALE +#define B1C 0x0204 // 0.0315 * 2^LUX_SCALE +#define M1C 0x01ad // 0.0262 * 2^LUX_SCALE +#define K2C 0x0085 // 0.260 * 2^RATIO_SCALE +#define B2C 0x0228 // 0.0337 * 2^LUX_SCALE +#define M2C 0x02c1 // 0.0430 * 2^LUX_SCALE +#define K3C 0x00c8 // 0.390 * 2^RATIO_SCALE +#define B3C 0x0253 // 0.0363 * 2^LUX_SCALE +#define M3C 0x0363 // 0.0529 * 2^LUX_SCALE +#define K4C 0x010a // 0.520 * 2^RATIO_SCALE +#define B4C 0x0282 // 0.0392 * 2^LUX_SCALE +#define M4C 0x03df // 0.0605 * 2^LUX_SCALE +#define K5C 0x014d // 0.65 * 2^RATIO_SCALE +#define B5C 0x0177 // 0.0229 * 2^LUX_SCALE +#define M5C 0x01dd // 0.0291 * 2^LUX_SCALE +#define K6C 0x019a // 0.80 * 2^RATIO_SCALE +#define B6C 0x0101 // 0.0157 * 2^LUX_SCALE +#define M6C 0x0127 // 0.0180 * 2^LUX_SCALE +#define K7C 0x029a // 1.3 * 2^RATIO_SCALE +#define B7C 0x0037 // 0.00338 * 2^LUX_SCALE +#define M7C 0x002b // 0.00260 * 2^LUX_SCALE +#define K8C 0x029a // 1.3 * 2^RATIO_SCALE +#define B8C 0x0000 // 0.000 * 2^LUX_SCALE +#define M8C 0x0000 // 0.000 * 2^LUX_SCALE + +typedef struct { + uint8_t i2c_addr; + uint8_t integration_time; + uint8_t gain; + uint8_t package_type; +} tsl2561_t; + +void tsl2561_init(tsl2561_t *device); +void tsl2561_set_integration_time(tsl2561_t *device, uint8_t integration_time_id); +void tsl2561_set_gain(tsl2561_t *device, uint8_t gain); +bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux); + +#endif // __TSL2561_H__ From cd594a42962b236152003fe4a04c3a7d0e767ec5 Mon Sep 17 00:00:00 2001 From: Brian Schwind Date: Tue, 11 Oct 2016 20:51:29 +0900 Subject: [PATCH 080/349] Fix according to review comments --- extras/tsl2561/tsl2561.c | 102 ++++++++++++++++++++++++++++++++++++--- extras/tsl2561/tsl2561.h | 86 --------------------------------- 2 files changed, 95 insertions(+), 93 deletions(-) diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index 5c6be57..06e6892 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -10,7 +10,93 @@ #include "task.h" #include "tsl2561.h" -bool write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +// Registers +#define TSL2561_REG_COMMAND 0x80 +#define TSL2561_REG_CONTROL 0x00 +#define TSL2561_REG_TIMING 0x01 +#define TSL2561_REG_THRESHOLD_LOW_0 0x02 +#define TSL2561_REG_THRESHOLD_LOW_1 0x03 +#define TSL2561_REG_THRESHOLD_HIGH_0 0x04 +#define TSL2561_REG_THRESHOLD_HIGH_1 0x05 +#define TSL2561_REG_INTERRUPT 0x06 +#define TSL2561_REG_PART_ID 0x0A +#define TSL2561_REG_CHANNEL_0_LOW 0x0C +#define TSL2561_REG_CHANNEL_0_HIGH 0x0D +#define TSL2561_REG_CHANNEL_1_LOW 0x0E +#define TSL2561_REG_CHANNEL_1_HIGH 0x0F + +// TSL2561 Misc Values +#define TSL2561_ON 0x03 +#define TSL2561_OFF 0x00 +#define TSL2561_READ_WORD 0x20 + +// Integration times in milliseconds +#define TSL2561_INTEGRATION_TIME_13MS 20 +#define TSL2561_INTEGRATION_TIME_101MS 110 +#define TSL2561_INTEGRATION_TIME_402MS 410 // Default + +// Calculation constants +#define LUX_SCALE 14 +#define RATIO_SCALE 9 +#define CH_SCALE 10 +#define CHSCALE_TINT0 0x7517 +#define CHSCALE_TINT1 0x0fe7 + +// Package constants +#define TSL2561_PACKAGE_CS 0x00 +#define TSL2561_PACKAGE_T_FN_CL 0x01 + +// Constants from the TSL2561 data sheet +#define K1T 0x0040 // 0.125 * 2^RATIO_SCALE +#define B1T 0x01f2 // 0.0304 * 2^LUX_SCALE +#define M1T 0x01be // 0.0272 * 2^LUX_SCALE +#define K2T 0x0080 // 0.250 * 2^RATIO_SCALE +#define B2T 0x0214 // 0.0325 * 2^LUX_SCALE +#define M2T 0x02d1 // 0.0440 * 2^LUX_SCALE +#define K3T 0x00c0 // 0.375 * 2^RATIO_SCALE +#define B3T 0x023f // 0.0351 * 2^LUX_SCALE +#define M3T 0x037b // 0.0544 * 2^LUX_SCALE +#define K4T 0x0100 // 0.50 * 2^RATIO_SCALE +#define B4T 0x0270 // 0.0381 * 2^LUX_SCALE +#define M4T 0x03fe // 0.0624 * 2^LUX_SCALE +#define K5T 0x0138 // 0.61 * 2^RATIO_SCALE +#define B5T 0x016f // 0.0224 * 2^LUX_SCALE +#define M5T 0x01fc // 0.0310 * 2^LUX_SCALE +#define K6T 0x019a // 0.80 * 2^RATIO_SCALE +#define B6T 0x00d2 // 0.0128 * 2^LUX_SCALE +#define M6T 0x00fb // 0.0153 * 2^LUX_SCALE +#define K7T 0x029a // 1.3 * 2^RATIO_SCALE +#define B7T 0x0018 // 0.00146 * 2^LUX_SCALE +#define M7T 0x0012 // 0.00112 * 2^LUX_SCALE +#define K8T 0x029a // 1.3 * 2^RATIO_SCALE +#define B8T 0x0000 // 0.000 * 2^LUX_SCALE +#define M8T 0x0000 // 0.000 * 2^LUX_SCALE +#define K1C 0x0043 // 0.130 * 2^RATIO_SCALE +#define B1C 0x0204 // 0.0315 * 2^LUX_SCALE +#define M1C 0x01ad // 0.0262 * 2^LUX_SCALE +#define K2C 0x0085 // 0.260 * 2^RATIO_SCALE +#define B2C 0x0228 // 0.0337 * 2^LUX_SCALE +#define M2C 0x02c1 // 0.0430 * 2^LUX_SCALE +#define K3C 0x00c8 // 0.390 * 2^RATIO_SCALE +#define B3C 0x0253 // 0.0363 * 2^LUX_SCALE +#define M3C 0x0363 // 0.0529 * 2^LUX_SCALE +#define K4C 0x010a // 0.520 * 2^RATIO_SCALE +#define B4C 0x0282 // 0.0392 * 2^LUX_SCALE +#define M4C 0x03df // 0.0605 * 2^LUX_SCALE +#define K5C 0x014d // 0.65 * 2^RATIO_SCALE +#define B5C 0x0177 // 0.0229 * 2^LUX_SCALE +#define M5C 0x01dd // 0.0291 * 2^LUX_SCALE +#define K6C 0x019a // 0.80 * 2^RATIO_SCALE +#define B6C 0x0101 // 0.0157 * 2^LUX_SCALE +#define M6C 0x0127 // 0.0180 * 2^LUX_SCALE +#define K7C 0x029a // 1.3 * 2^RATIO_SCALE +#define B7C 0x0037 // 0.00338 * 2^LUX_SCALE +#define M7C 0x002b // 0.00260 * 2^LUX_SCALE +#define K8C 0x029a // 1.3 * 2^RATIO_SCALE +#define B8C 0x0000 // 0.000 * 2^LUX_SCALE +#define M8C 0x0000 // 0.000 * 2^LUX_SCALE + +static bool write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) { uint8_t data[2]; data[0] = TSL2561_REG_COMMAND | reg; @@ -18,7 +104,7 @@ bool write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) return i2c_slave_write(i2c_addr, data, 2); } -uint8_t read_register(uint8_t i2c_addr, uint8_t reg) +static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) { uint8_t data[1]; @@ -30,7 +116,7 @@ uint8_t read_register(uint8_t i2c_addr, uint8_t reg) return data[0]; } -uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) +static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; @@ -45,12 +131,12 @@ uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) return value; } -bool enable(uint8_t i2c_addr) +static bool enable(uint8_t i2c_addr) { return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_ON); } -bool disable(uint8_t i2c_addr) +static bool disable(uint8_t i2c_addr) { return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_OFF); } @@ -100,7 +186,7 @@ void tsl2561_set_gain(tsl2561_t *device, uint8_t gain) device->gain = gain; } -void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *channel1) +static void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *channel1) { enable(device->i2c_addr); @@ -127,6 +213,7 @@ void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *channel1) bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) { + bool success = true; uint32_t chScale; uint32_t channel1; uint32_t channel0; @@ -265,6 +352,7 @@ bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) printf("Invalid package type in CalculateLux\n"); b = 0; m = 0; + success = false; break; } @@ -283,5 +371,5 @@ bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) // Strip off fractional portion *lux = temp >> LUX_SCALE; - return true; + return success; } diff --git a/extras/tsl2561/tsl2561.h b/extras/tsl2561/tsl2561.h index 5cdf03b..c021630 100644 --- a/extras/tsl2561/tsl2561.h +++ b/extras/tsl2561/tsl2561.h @@ -15,101 +15,15 @@ #define TSL2561_I2C_ADDR_GND 0x29 #define TSL2561_I2C_ADDR_FLOAT 0x39 // Default -// Registers -#define TSL2561_REG_COMMAND 0x80 -#define TSL2561_REG_CONTROL 0x00 -#define TSL2561_REG_TIMING 0x01 -#define TSL2561_REG_THRESHOLD_LOW_0 0x02 -#define TSL2561_REG_THRESHOLD_LOW_1 0x03 -#define TSL2561_REG_THRESHOLD_HIGH_0 0x04 -#define TSL2561_REG_THRESHOLD_HIGH_1 0x05 -#define TSL2561_REG_INTERRUPT 0x06 -#define TSL2561_REG_PART_ID 0x0A -#define TSL2561_REG_CHANNEL_0_LOW 0x0C -#define TSL2561_REG_CHANNEL_0_HIGH 0x0D -#define TSL2561_REG_CHANNEL_1_LOW 0x0E -#define TSL2561_REG_CHANNEL_1_HIGH 0x0F - -// TSL2561 Misc Values -#define TSL2561_ON 0x03 -#define TSL2561_OFF 0x00 -#define TSL2561_READ_WORD 0x20 - // Integration time IDs #define TSL2561_INTEGRATION_13MS 0x00 #define TSL2561_INTEGRATION_101MS 0x01 #define TSL2561_INTEGRATION_402MS 0x02 // Default -// Integration times in milliseconds -#define TSL2561_INTEGRATION_TIME_13MS 20 -#define TSL2561_INTEGRATION_TIME_101MS 110 -#define TSL2561_INTEGRATION_TIME_402MS 410 // Default - // Gain IDs #define TSL2561_GAIN_1X 0x00 #define TSL2561_GAIN_16X 0x10 -// Calculation constants -#define LUX_SCALE 14 -#define RATIO_SCALE 9 -#define CH_SCALE 10 -#define CHSCALE_TINT0 0x7517 -#define CHSCALE_TINT1 0x0fe7 - -// Package constants -#define TSL2561_PACKAGE_CS 0x00 -#define TSL2561_PACKAGE_T_FN_CL 0x01 - -// Constants from the TSL2561 data sheet -#define K1T 0x0040 // 0.125 * 2^RATIO_SCALE -#define B1T 0x01f2 // 0.0304 * 2^LUX_SCALE -#define M1T 0x01be // 0.0272 * 2^LUX_SCALE -#define K2T 0x0080 // 0.250 * 2^RATIO_SCALE -#define B2T 0x0214 // 0.0325 * 2^LUX_SCALE -#define M2T 0x02d1 // 0.0440 * 2^LUX_SCALE -#define K3T 0x00c0 // 0.375 * 2^RATIO_SCALE -#define B3T 0x023f // 0.0351 * 2^LUX_SCALE -#define M3T 0x037b // 0.0544 * 2^LUX_SCALE -#define K4T 0x0100 // 0.50 * 2^RATIO_SCALE -#define B4T 0x0270 // 0.0381 * 2^LUX_SCALE -#define M4T 0x03fe // 0.0624 * 2^LUX_SCALE -#define K5T 0x0138 // 0.61 * 2^RATIO_SCALE -#define B5T 0x016f // 0.0224 * 2^LUX_SCALE -#define M5T 0x01fc // 0.0310 * 2^LUX_SCALE -#define K6T 0x019a // 0.80 * 2^RATIO_SCALE -#define B6T 0x00d2 // 0.0128 * 2^LUX_SCALE -#define M6T 0x00fb // 0.0153 * 2^LUX_SCALE -#define K7T 0x029a // 1.3 * 2^RATIO_SCALE -#define B7T 0x0018 // 0.00146 * 2^LUX_SCALE -#define M7T 0x0012 // 0.00112 * 2^LUX_SCALE -#define K8T 0x029a // 1.3 * 2^RATIO_SCALE -#define B8T 0x0000 // 0.000 * 2^LUX_SCALE -#define M8T 0x0000 // 0.000 * 2^LUX_SCALE -#define K1C 0x0043 // 0.130 * 2^RATIO_SCALE -#define B1C 0x0204 // 0.0315 * 2^LUX_SCALE -#define M1C 0x01ad // 0.0262 * 2^LUX_SCALE -#define K2C 0x0085 // 0.260 * 2^RATIO_SCALE -#define B2C 0x0228 // 0.0337 * 2^LUX_SCALE -#define M2C 0x02c1 // 0.0430 * 2^LUX_SCALE -#define K3C 0x00c8 // 0.390 * 2^RATIO_SCALE -#define B3C 0x0253 // 0.0363 * 2^LUX_SCALE -#define M3C 0x0363 // 0.0529 * 2^LUX_SCALE -#define K4C 0x010a // 0.520 * 2^RATIO_SCALE -#define B4C 0x0282 // 0.0392 * 2^LUX_SCALE -#define M4C 0x03df // 0.0605 * 2^LUX_SCALE -#define K5C 0x014d // 0.65 * 2^RATIO_SCALE -#define B5C 0x0177 // 0.0229 * 2^LUX_SCALE -#define M5C 0x01dd // 0.0291 * 2^LUX_SCALE -#define K6C 0x019a // 0.80 * 2^RATIO_SCALE -#define B6C 0x0101 // 0.0157 * 2^LUX_SCALE -#define M6C 0x0127 // 0.0180 * 2^LUX_SCALE -#define K7C 0x029a // 1.3 * 2^RATIO_SCALE -#define B7C 0x0037 // 0.00338 * 2^LUX_SCALE -#define M7C 0x002b // 0.00260 * 2^LUX_SCALE -#define K8C 0x029a // 1.3 * 2^RATIO_SCALE -#define B8C 0x0000 // 0.000 * 2^LUX_SCALE -#define M8C 0x0000 // 0.000 * 2^LUX_SCALE - typedef struct { uint8_t i2c_addr; uint8_t integration_time; From 6449f243fc60bc804cfc1ae7ea31b463104a3816 Mon Sep 17 00:00:00 2001 From: Brian Schwind Date: Tue, 11 Oct 2016 21:39:22 +0900 Subject: [PATCH 081/349] Move defined constants to enums --- extras/tsl2561/tsl2561.c | 4 ++-- extras/tsl2561/tsl2561.h | 31 ++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index 06e6892..6a8ac74 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -168,7 +168,7 @@ void tsl2561_init(tsl2561_t *device) disable(device->i2c_addr); } -void tsl2561_set_integration_time(tsl2561_t *device, uint8_t integration_time_id) +void tsl2561_set_integration_time(tsl2561_t *device, tsl2561_integration_time_t integration_time_id) { enable(device->i2c_addr); write_register(device->i2c_addr, TSL2561_REG_TIMING, integration_time_id | device->gain); @@ -177,7 +177,7 @@ void tsl2561_set_integration_time(tsl2561_t *device, uint8_t integration_time_id device->integration_time = integration_time_id; } -void tsl2561_set_gain(tsl2561_t *device, uint8_t gain) +void tsl2561_set_gain(tsl2561_t *device, tsl2561_gain_t gain) { enable(device->i2c_addr); write_register(device->i2c_addr, TSL2561_REG_TIMING, gain | device->integration_time); diff --git a/extras/tsl2561/tsl2561.h b/extras/tsl2561/tsl2561.h index c021630..1e6597d 100644 --- a/extras/tsl2561/tsl2561.h +++ b/extras/tsl2561/tsl2561.h @@ -11,29 +11,38 @@ #include // I2C Addresses -#define TSL2561_I2C_ADDR_VCC 0x49 -#define TSL2561_I2C_ADDR_GND 0x29 -#define TSL2561_I2C_ADDR_FLOAT 0x39 // Default +typedef enum +{ + TSL2561_I2C_ADDR_VCC = 0x49, + TSL2561_I2C_ADDR_GND = 0x29, + TSL2561_I2C_ADDR_FLOAT = 0x39 // Default +} tsl2561_i2c_addr_t; // Integration time IDs -#define TSL2561_INTEGRATION_13MS 0x00 -#define TSL2561_INTEGRATION_101MS 0x01 -#define TSL2561_INTEGRATION_402MS 0x02 // Default +typedef enum +{ + TSL2561_INTEGRATION_13MS = 0x00, + TSL2561_INTEGRATION_101MS = 0x01, + TSL2561_INTEGRATION_402MS = 0x02 // Default +} tsl2561_integration_time_t; // Gain IDs -#define TSL2561_GAIN_1X 0x00 -#define TSL2561_GAIN_16X 0x10 +typedef enum +{ + TSL2561_GAIN_1X = 0x00, // Default + TSL2561_GAIN_16X = 0x10 +} tsl2561_gain_t; typedef struct { - uint8_t i2c_addr; + tsl2561_i2c_addr_t i2c_addr; uint8_t integration_time; uint8_t gain; uint8_t package_type; } tsl2561_t; void tsl2561_init(tsl2561_t *device); -void tsl2561_set_integration_time(tsl2561_t *device, uint8_t integration_time_id); -void tsl2561_set_gain(tsl2561_t *device, uint8_t gain); +void tsl2561_set_integration_time(tsl2561_t *device, tsl2561_integration_time_t integration_time_id); +void tsl2561_set_gain(tsl2561_t *device, tsl2561_gain_t gain); bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux); #endif // __TSL2561_H__ From 6dea7abfc06582f170d6fdca5f9a9a56ddac70de Mon Sep 17 00:00:00 2001 From: Brian Schwind Date: Tue, 11 Oct 2016 22:52:11 +0900 Subject: [PATCH 082/349] Add extern C declaration --- extras/tsl2561/tsl2561.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/extras/tsl2561/tsl2561.h b/extras/tsl2561/tsl2561.h index 1e6597d..ad5109f 100644 --- a/extras/tsl2561/tsl2561.h +++ b/extras/tsl2561/tsl2561.h @@ -10,6 +10,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + // I2C Addresses typedef enum { @@ -45,4 +49,8 @@ void tsl2561_set_integration_time(tsl2561_t *device, tsl2561_integration_time_t void tsl2561_set_gain(tsl2561_t *device, tsl2561_gain_t gain); bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux); +#ifdef __cplusplus +} +#endif + #endif // __TSL2561_H__ From 8ded673ec3d168b9bda1a353ace20ce02b18fcae Mon Sep 17 00:00:00 2001 From: UncleRus Date: Sun, 9 Oct 2016 14:14:17 +0500 Subject: [PATCH 083/349] DS1307 RTC driver + example --- examples/ds1307/Makefile | 3 + examples/ds1307/main.c | 45 ++++++++++ extras/ds1307/component.mk | 9 ++ extras/ds1307/ds1307.c | 164 +++++++++++++++++++++++++++++++++++++ extras/ds1307/ds1307.h | 114 ++++++++++++++++++++++++++ 5 files changed, 335 insertions(+) create mode 100644 examples/ds1307/Makefile create mode 100644 examples/ds1307/main.c create mode 100644 extras/ds1307/component.mk create mode 100644 extras/ds1307/ds1307.c create mode 100644 extras/ds1307/ds1307.h diff --git a/examples/ds1307/Makefile b/examples/ds1307/Makefile new file mode 100644 index 0000000..319d007 --- /dev/null +++ b/examples/ds1307/Makefile @@ -0,0 +1,3 @@ +PROGRAM = ds1307 +EXTRA_COMPONENTS = extras/i2c extras/ds1307 +include ../../common.mk diff --git a/examples/ds1307/main.c b/examples/ds1307/main.c new file mode 100644 index 0000000..2f22447 --- /dev/null +++ b/examples/ds1307/main.c @@ -0,0 +1,45 @@ +/* + * Example of using DS1307 RTC driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include + +#define SCL_PIN 5 +#define SDA_PIN 4 + +void user_init (void) +{ + uart_set_baud (0, 115200); + printf ("SDK version:%s\n", sdk_system_get_sdk_version ()); + + i2c_init (SCL_PIN, SDA_PIN); + ds1307_start (true); + + // setup datetime: 2016-10-09 13:50:10 + struct tm time = { + .tm_year = 2016, + .tm_mon = 10, + .tm_mday = 9, + .tm_hour = 13, + .tm_min = 50, + .tm_sec = 10 + }; + ds1307_set_time (&time); + + while (true) + { + ds1307_get_time (&time); + + printf ("%04d-%02d-%02d %02d:%02d:%02d\n", time.tm_year, time.tm_mon, time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); + + for (uint32_t i = 0; i < 1000; i ++) + sdk_os_delay_us (500); + } +} diff --git a/extras/ds1307/component.mk b/extras/ds1307/component.mk new file mode 100644 index 0000000..217716e --- /dev/null +++ b/extras/ds1307/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ds1307 + +# expected anyone using RTC driver includes it as 'ds1307/ds1307.h' +INC_DIRS += $(ds1307_ROOT).. + +# args for passing into compile rule generation +ds1307_SRC_DIR = $(ds1307_ROOT) + +$(eval $(call component_compile_rules,ds1307)) diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c new file mode 100644 index 0000000..cd4472f --- /dev/null +++ b/extras/ds1307/ds1307.c @@ -0,0 +1,164 @@ +/* + * Driver for DS1307 RTC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "ds1307.h" +#include +#include + +#define ADDR 0x68 +#define RAM_SIZE 56 + +#define TIME_REG 0 +#define CONTROL_REG 7 +#define RAM_REG 8 + +#define CH_BIT (1 << 7) +#define HOUR12_BIT (1 << 6) +#define PM_BIT (1 << 5) +#define SQWE_BIT (1 << 4) +#define OUT_BIT (1 << 7) + +#define CH_MASK 0x7f +#define SECONDS_MASK 0x7f +#define HOUR12_MASK 0x1f +#define HOUR24_MASK 0x3f +#define SQWEF_MASK 0x03 +#define SQWE_MASK 0xef +#define OUT_MASK 0x7f + +static uint8_t bcd2dec(uint8_t val) +{ + return (val >> 4) * 10 + (val & 0x0f); +} + +static uint8_t dec2bcd(uint8_t val) +{ + return ((val / 10) << 4) + (val % 10); +} + +static uint8_t read_register(uint8_t reg) +{ + uint8_t val; + i2c_slave_read(ADDR, reg, &val, 1); + return val; +} + +static void update_register(uint8_t reg, uint8_t mask, uint8_t val) +{ + uint8_t buf[2]; + + buf[0] = reg; + buf[1] = (read_register(reg) & mask) | val; + + i2c_slave_write(ADDR, buf, 2); +} + +void ds1307_start(bool start) +{ + update_register(TIME_REG, CH_MASK, start ? 0 : CH_BIT); +} + +bool ds1307_is_running() +{ + return !(read_register(TIME_REG) & CH_BIT); +} + +void ds1307_get_time(struct tm *time) +{ + uint8_t buf[7]; + + i2c_slave_read(ADDR, TIME_REG, buf, 7); + + time->tm_sec = bcd2dec(buf[0] & SECONDS_MASK); + time->tm_min = bcd2dec(buf[1]); + if (buf[2] & HOUR12_BIT) + { + // RTC in 12-hour mode + time->tm_hour = bcd2dec(buf[2] & HOUR12_MASK); + if (buf[2] & PM_BIT) + time->tm_hour += 12; + } + else time->tm_hour = bcd2dec(buf[2] & HOUR24_MASK); + time->tm_wday = bcd2dec(buf[3]) - 1; + time->tm_mday = bcd2dec(buf[4]); + time->tm_mon = bcd2dec(buf[5]); + time->tm_year = bcd2dec(buf[6]) + 2000; +} + +void ds1307_set_time(const struct tm *time) +{ + uint8_t buf[8]; + buf[0] = TIME_REG; + buf[1] = dec2bcd(time->tm_sec); + buf[2] = dec2bcd(time->tm_min); + buf[3] = dec2bcd(time->tm_hour); + buf[4] = dec2bcd(time->tm_wday); + buf[5] = dec2bcd(time->tm_mday); + buf[6] = dec2bcd(time->tm_mon); + buf[7] = dec2bcd(time->tm_year - 2000); + + i2c_slave_write(ADDR, buf, 8); +} + +void ds1307_enable_squarewave(bool enable) +{ + update_register(CONTROL_REG, SQWE_MASK, enable ? SQWE_BIT : 0); +} + +bool ds1307_is_squarewave_enabled() +{ + return read_register(CONTROL_REG) & SQWE_BIT; +} + +void ds1307_set_squarewave_freq(ds1307_squarewave_freq_t freq) +{ + update_register(CONTROL_REG, SQWEF_MASK, (uint8_t)freq); +} + +ds1307_squarewave_freq_t ds1307_get_squarewave_freq() +{ + return (ds1307_squarewave_freq_t)(read_register(CONTROL_REG) & SQWEF_MASK); +} + +bool ds1307_get_output() +{ + return read_register(CONTROL_REG) & OUT_BIT; +} + +void ds1307_set_output(bool value) +{ + update_register(CONTROL_REG, OUT_MASK, value ? OUT_BIT : 0); +} + +bool ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len) +{ + if (offset + len > RAM_SIZE) return false; + + return i2c_slave_read(ADDR, RAM_REG + offset, buf, len); +} + +bool ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len) +{ + if (offset + len > RAM_SIZE) return false; + + // temporary buffer on the stack is not good so copy-paste :( + bool success = false; + do { + i2c_start(); + if (!i2c_write(ADDR << 1)) + break; + if (!i2c_write(RAM_REG + offset)) + break; + while (len--) { + if (!i2c_write(*buf++)) + break; + } + i2c_stop(); + success = true; + } while(0); + return success; +} diff --git a/extras/ds1307/ds1307.h b/extras/ds1307/ds1307.h new file mode 100644 index 0000000..d2daeee --- /dev/null +++ b/extras/ds1307/ds1307.h @@ -0,0 +1,114 @@ +/* + * Driver for DS1307 RTC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_DS1307_H_ +#define EXTRAS_DS1307_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Squarewave frequency + */ +typedef enum _ds1307_squarewave_freq_t +{ + DS1307_1HZ = 0, //!< 1 Hz + DS1307_4096HZ, //!< 4096 Hz + DS1307_8192HZ, //!< 8192 Hz + DS1307_32768HZ //!< 32768 Hz +} ds1307_squarewave_freq_t; + +/** + * \brief Start/stop clock + * \param start Start clock if true + */ +void ds1307_start(bool start); + +/** + * \brief Get current clock state + * \return true if clock running + */ +bool ds1307_is_running(); + +/** + * \brief Get current time + * \param time Pointer to the time struct to fill + */ +void ds1307_get_time(struct tm *time); + +/** + * \brief Set time to RTC + * \param time Pointer to the time struct + */ +void ds1307_set_time(const struct tm *time); + +/** + * \brief Enable or disable square-wave oscillator output + * \param enable Enable oscillator if true + */ +void ds1307_enable_squarewave(bool enable); + +/** + * \brief Get square-wave oscillator output + * \return true if square-wave oscillator enabled + */ +bool ds1307_is_squarewave_enabled(); + +/** + * \brief Set square-wave oscillator frequency + * \param freq Frequency + */ +void ds1307_set_squarewave_freq(ds1307_squarewave_freq_t freq); + +/** + * \brief Get current square-wave oscillator frequency + * \return Frequency + */ +ds1307_squarewave_freq_t ds1307_get_squarewave_freq(); + +/** + * \brief Get current output level of the SQW/OUT pin + * \return true if high + */ +bool ds1307_get_output(); + +/** + * \brief Set output level of the SQW/OUT pin + * Set output level if square-wave output is disabled + * \param value High level if true + */ +void ds1307_set_output(bool value); + +/** + * \brief Read RAM contents into the buffer + * \param offset Start byte, 0..55 + * \param buf Buffer + * \param len Bytes to read, 1..56 + * \return false if error occured + */ +bool ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len); + +/** + * \brief Write buffer to RTC RAM + * \param offset Start byte, 0..55 + * \param buf Buffer + * \param len Bytes to write, 1..56 + * \return false if error occured + */ +bool ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len); + + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_DS1307_H_ */ From f31ea70e1b3341d31c552ac962186f91be9d5bcb Mon Sep 17 00:00:00 2001 From: UncleRus Date: Tue, 11 Oct 2016 09:28:16 +0500 Subject: [PATCH 084/349] Driver for ultrasonic range meters + example --- examples/ultrasonic/Makefile | 4 +++ examples/ultrasonic/main.c | 60 ++++++++++++++++++++++++++++++++++ extras/ultrasonic/component.mk | 9 +++++ extras/ultrasonic/ultrasonic.c | 58 ++++++++++++++++++++++++++++++++ extras/ultrasonic/ultrasonic.h | 48 +++++++++++++++++++++++++++ 5 files changed, 179 insertions(+) create mode 100644 examples/ultrasonic/Makefile create mode 100644 examples/ultrasonic/main.c create mode 100644 extras/ultrasonic/component.mk create mode 100644 extras/ultrasonic/ultrasonic.c create mode 100644 extras/ultrasonic/ultrasonic.h diff --git a/examples/ultrasonic/Makefile b/examples/ultrasonic/Makefile new file mode 100644 index 0000000..fd56901 --- /dev/null +++ b/examples/ultrasonic/Makefile @@ -0,0 +1,4 @@ +PROGRAM = ultrasonic +EXTRA_COMPONENTS = extras/ultrasonic + +include ../../common.mk diff --git a/examples/ultrasonic/main.c b/examples/ultrasonic/main.c new file mode 100644 index 0000000..b4b1ac4 --- /dev/null +++ b/examples/ultrasonic/main.c @@ -0,0 +1,60 @@ +/* + * Example of using ultrasonic rnaghe meter like HC-SR04 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include + +#define TRIGGER_PIN 5 +#define ECHO_PIN 4 + +#define MAX_DISTANCE_CM 500 // 5m max + +void delay_ms(uint32_t ms) +{ + for (uint32_t i = 0; i < ms; i ++) + sdk_os_delay_us(1000); +} + +void user_init() +{ + uart_set_baud(0, 115200); + printf("SDK version : %s\n", sdk_system_get_sdk_version()); + + ultrasonic_sensor_t sensor = { + .trigger_pin = TRIGGER_PIN, + .echo_pin = ECHO_PIN + }; + + ultrasoinc_init(&sensor); + + while (true) + { + int32_t distance = ultrasoinc_measure_cm(&sensor, MAX_DISTANCE_CM); + if (distance < 0) + { + printf("Error: "); + switch (distance) + { + case ULTRASONIC_ERROR_PING: + printf("Cannot ping (device is in invalid state)\n"); + break; + case ULTRASONIC_ERROR_PING_TIMEOUT: + printf("Ping timeout (no device found)\n"); + break; + case ULTRASONIC_ERROR_ECHO_TIMEOUT: + printf("Echo timeout (i.e. distance too big)\n"); + break; + } + } + else + printf("Distance: %d cm, %.02f m\n", distance, distance / 100.0); + + delay_ms(200); + } +} diff --git a/extras/ultrasonic/component.mk b/extras/ultrasonic/component.mk new file mode 100644 index 0000000..9b20df0 --- /dev/null +++ b/extras/ultrasonic/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ultrasonic + +# expected anyone using this driver includes it as 'ultrasonic/ultrasonic.h' +INC_DIRS += $(ultrasonic_ROOT).. + +# args for passing into compile rule generation +ultrasonic_SRC_DIR = $(ultrasonic_ROOT) + +$(eval $(call component_compile_rules,ultrasonic)) diff --git a/extras/ultrasonic/ultrasonic.c b/extras/ultrasonic/ultrasonic.c new file mode 100644 index 0000000..f6a21f6 --- /dev/null +++ b/extras/ultrasonic/ultrasonic.c @@ -0,0 +1,58 @@ +/* + * Driver for ultrasonic range meters, e.g. HC-SR04, HY-SRF05 and so on + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "ultrasonic.h" +#include +#include +#include + +#define TRIGGER_LOW_DELAY 4 +#define TRIGGER_HIGH_DELAY 10 +#define PING_TIMEOUT 6000 +#define ROUNDTRIP 58 + +void ultrasoinc_init(const ultrasonic_sensor_t *dev) +{ + gpio_enable(dev->trigger_pin, GPIO_OUTPUT); + gpio_enable(dev->echo_pin, GPIO_INPUT); + gpio_write(dev->trigger_pin, false); +} + +int32_t ultrasoinc_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_distance) +{ + // Ping: Low for 2..4 us, then high 10 us + gpio_write(dev->trigger_pin, false); + sdk_os_delay_us(TRIGGER_LOW_DELAY); + gpio_write(dev->trigger_pin, true); + sdk_os_delay_us(TRIGGER_HIGH_DELAY); + gpio_write(dev->trigger_pin, false); + + // Previous ping isn't ended + if (gpio_read(dev->echo_pin)) + return ULTRASONIC_ERROR_PING; + + // Wait for echo + uint32_t timeout = sdk_system_get_time() + PING_TIMEOUT; + while (!gpio_read(dev->echo_pin)) + { + if (sdk_system_get_time() >= timeout) + return ULTRASONIC_ERROR_PING_TIMEOUT; + } + + // got echo, measuring + uint32_t echo_start = sdk_system_get_time(); + uint32_t time = echo_start; + timeout = echo_start + max_distance * ROUNDTRIP; + while (gpio_read(dev->echo_pin)) + { + time = sdk_system_get_time(); + if (time >= timeout) + return ULTRASONIC_ERROR_ECHO_TIMEOUT; + } + + return (time - echo_start) / ROUNDTRIP; +} diff --git a/extras/ultrasonic/ultrasonic.h b/extras/ultrasonic/ultrasonic.h new file mode 100644 index 0000000..6ade82d --- /dev/null +++ b/extras/ultrasonic/ultrasonic.h @@ -0,0 +1,48 @@ +/* + * Driver for ultrasonic range meters, e.g. HC-SR04, HY-SRF05 and so on + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_ULTRASONIC_H_ +#define EXTRAS_ULTRASONIC_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define ULTRASONIC_ERROR_PING (-1) +#define ULTRASONIC_ERROR_PING_TIMEOUT (-2) +#define ULTRASONIC_ERROR_ECHO_TIMEOUT (-3) + +/** + * Device descriptor + */ +typedef struct +{ + uint8_t trigger_pin; + uint8_t echo_pin; +} ultrasonic_sensor_t; + +/** + * Init ranging module + * \param dev Pointer to the device descriptor + */ +void ultrasoinc_init(const ultrasonic_sensor_t *dev); + +/** + * Measure distance + * \param dev Pointer to the device descriptor + * \param max_distance Maximal distance to measure, centimeters + * \return Distance in centimeters or ULTRASONIC_ERROR_xxx if error occured + */ +int32_t ultrasoinc_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_distance); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_ULTRASONIC_H_ */ From 4e7362f2d410e78a5487a2b3970668c3c40a3c05 Mon Sep 17 00:00:00 2001 From: rus Date: Wed, 12 Oct 2016 14:34:45 +0500 Subject: [PATCH 085/349] HMC5883L driver + example --- examples/hmc5883l/Makefile | 4 + examples/hmc5883l/main.c | 41 +++++++ extras/hmc5883l/component.mk | 9 ++ extras/hmc5883l/hmc5883l.c | 189 ++++++++++++++++++++++++++++++ extras/hmc5883l/hmc5883l.h | 218 +++++++++++++++++++++++++++++++++++ 5 files changed, 461 insertions(+) create mode 100644 examples/hmc5883l/Makefile create mode 100644 examples/hmc5883l/main.c create mode 100644 extras/hmc5883l/component.mk create mode 100644 extras/hmc5883l/hmc5883l.c create mode 100644 extras/hmc5883l/hmc5883l.h diff --git a/examples/hmc5883l/Makefile b/examples/hmc5883l/Makefile new file mode 100644 index 0000000..c98c6c9 --- /dev/null +++ b/examples/hmc5883l/Makefile @@ -0,0 +1,4 @@ +PROGRAM = hmc5883l +EXTRA_COMPONENTS = extras/i2c extras/hmc5883l +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/hmc5883l/main.c b/examples/hmc5883l/main.c new file mode 100644 index 0000000..c4b0bf4 --- /dev/null +++ b/examples/hmc5883l/main.c @@ -0,0 +1,41 @@ +/* + * Example of using HMC5883L driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include + +#define SCL_PIN 5 +#define SDA_PIN 4 + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + while (!hmc5883l_init()) + printf("Device not found\n"); + + hmc5883l_set_operating_mode(HMC5883L_MODE_CONTINUOUS); + hmc5883l_set_samples_averaged(HMC5883L_SAMPLES_8); + hmc5883l_set_data_rate(HMC5883L_DATA_RATE_07_50); + hmc5883l_set_gain(HMC5883L_GAIN_1090); + + while (true) + { + hmc5883l_data_t data; + hmc5883l_get_data(&data); + printf("Magnetic data: X:%.2f mG, Y:%.2f mG, Z:%.2f mG\n", data.x, data.y, data.z); + + for (uint32_t i = 0; i < 1000; i++) + sdk_os_delay_us(250); + } +} diff --git a/extras/hmc5883l/component.mk b/extras/hmc5883l/component.mk new file mode 100644 index 0000000..c3fad9c --- /dev/null +++ b/extras/hmc5883l/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/hmc5883l + +# expected anyone using this driver includes it as 'hmc5883l/hmc5883l.h' +INC_DIRS += $(hmc5883l_ROOT).. + +# args for passing into compile rule generation +hmc5883l_SRC_DIR = $(hmc5883l_ROOT) + +$(eval $(call component_compile_rules,hmc5883l)) diff --git a/extras/hmc5883l/hmc5883l.c b/extras/hmc5883l/hmc5883l.c new file mode 100644 index 0000000..28d9cf7 --- /dev/null +++ b/extras/hmc5883l/hmc5883l.c @@ -0,0 +1,189 @@ +/* + * Driver for 3-axis digital compass HMC5883L + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "hmc5883l.h" +#include +#include + +#define ADDR 0x1e + +#define REG_CR_A 0x00 +#define REG_CR_B 0x01 +#define REG_MODE 0x02 +#define REG_DX_H 0x03 +#define REG_DX_L 0x04 +#define REG_DZ_H 0x05 +#define REG_DZ_L 0x06 +#define REG_DY_H 0x07 +#define REG_DY_L 0x08 +#define REG_STAT 0x09 +#define REG_ID_A 0x0a +#define REG_ID_B 0x0b +#define REG_ID_C 0x0c + +#define BIT_MA 5 +#define BIT_DO 2 +#define BIT_GN 5 + +#define MASK_MD 0x03 +#define MASK_MA 0x60 +#define MASK_DO 0x1c +#define MASK_MS 0x03 +#define MASK_DR 0x01 +#define MASK_DL 0x02 + +#define MEASUREMENT_TIMEOUT 6000 + +static const float gain_values [] = { + [HMC5883L_GAIN_1370] = 0.73, + [HMC5883L_GAIN_1090] = 0.92, + [HMC5883L_GAIN_820] = 1.22, + [HMC5883L_GAIN_660] = 1.52, + [HMC5883L_GAIN_440] = 2.27, + [HMC5883L_GAIN_390] = 2.56, + [HMC5883L_GAIN_330] = 3.03, + [HMC5883L_GAIN_230] = 4.35 +}; + +static float current_gain; +static hmc5883l_operating_mode_t current_mode; + +static inline void write_register(uint8_t reg, uint8_t val) +{ + uint8_t buf[2] = { reg, val }; + i2c_slave_write(ADDR, buf, 2); +} + +static inline uint8_t read_register(uint8_t reg) +{ + uint8_t res; + i2c_slave_read(ADDR, reg, &res, 1); + return res; +} + +static inline void update_register(uint8_t reg, uint8_t mask, uint8_t val) +{ + write_register(reg, (read_register(reg) & mask) | val); +} + +bool hmc5883l_init() +{ + if (hmc5883l_get_id() != HMC5883L_ID) + return false; + current_gain = gain_values[hmc5883l_get_gain()]; + current_mode = hmc5883l_get_operating_mode(); + return true; +} + +uint32_t hmc5883l_get_id() +{ + uint32_t res = 0; + i2c_slave_read(ADDR, REG_ID_A, (uint8_t *)&res, 3); + return res; +} + +hmc5883l_operating_mode_t hmc5883l_get_operating_mode() +{ + uint8_t res = read_register(REG_MODE) & MASK_MD; + return res == 0 ? HMC5883L_MODE_CONTINUOUS : HMC5883L_MODE_SINGLE; +} + +void hmc5883l_set_operating_mode(hmc5883l_operating_mode_t mode) +{ + write_register(REG_MODE, mode); + current_mode = mode; +} + +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged() +{ + return (read_register(REG_CR_A) & MASK_MA) >> BIT_MA; +} + +void hmc5883l_set_samples_averaged(hmc5883l_samples_averaged_t samples) +{ + update_register(REG_CR_A, MASK_MA, samples << BIT_MA); +} + +hmc5883l_data_rate_t hmc5883l_get_data_rate() +{ + return (read_register(REG_CR_A) & MASK_DO) >> BIT_DO; +} + +void hmc5883l_set_data_rate(hmc5883l_data_rate_t rate) +{ + update_register(REG_CR_A, MASK_DO, rate << BIT_DO); +} + +hmc5883l_bias_t hmc5883l_get_bias() +{ + return read_register(REG_CR_A) & MASK_MS; +} + +void hmc5883l_set_bias(hmc5883l_bias_t bias) +{ + update_register(REG_CR_A, MASK_MS, bias); +} + +hmc5883l_gain_t hmc5883l_get_gain() +{ + return read_register(REG_CR_B) >> BIT_GN; +} + +void hmc5883l_set_gain(hmc5883l_gain_t gain) +{ + write_register(REG_CR_B, gain << BIT_GN); + current_gain = gain_values[gain]; +} + +bool hmc5883l_data_is_locked() +{ + return read_register(REG_STAT) & MASK_DL; +} + +bool hmc5883l_data_is_ready() +{ + return read_register(REG_STAT) & MASK_DR; +} + +bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data) +{ + if (current_mode == HMC5883L_MODE_SINGLE) + { + // overwrite mode register for measurement + hmc5883l_set_operating_mode(current_mode); + // wait for data + uint32_t timeout = sdk_system_get_time() + MEASUREMENT_TIMEOUT; + while (!hmc5883l_data_is_ready()) + { + if (sdk_system_get_time() >= timeout) + return false; + } + } + uint8_t buf[6]; + i2c_slave_read(ADDR, REG_DX_H, buf, 6); + data->x = ((int16_t)buf[REG_DX_H - REG_DX_H] << 8) | buf[REG_DX_L - REG_DX_H]; + data->y = ((int16_t)buf[REG_DY_H - REG_DX_H] << 8) | buf[REG_DY_L - REG_DX_H]; + data->z = ((int16_t)buf[REG_DZ_H - REG_DX_H] << 8) | buf[REG_DZ_L - REG_DX_H]; + return true; +} + +void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg) +{ + mg->x = raw->x * current_gain; + mg->y = raw->y * current_gain; + mg->z = raw->z * current_gain; +} + +bool hmc5883l_get_data(hmc5883l_data_t *data) +{ + hmc5883l_raw_data_t raw; + + if (!hmc5883l_get_raw_data(&raw)) + return false; + hmc5883l_raw_to_mg(&raw, data); + return true; +} diff --git a/extras/hmc5883l/hmc5883l.h b/extras/hmc5883l/hmc5883l.h new file mode 100644 index 0000000..720a385 --- /dev/null +++ b/extras/hmc5883l/hmc5883l.h @@ -0,0 +1,218 @@ +/* + * Driver for 3-axis digital compass HMC5883L + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_HMC5883L_H_ +#define EXTRAS_HMC5883L_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define HMC5883L_ID 0x00333448 // "H43" + +/** + * Device operating mode + */ +typedef enum +{ + HMC5883L_MODE_CONTINUOUS = 0, //!< Continuous mode + HMC5883L_MODE_SINGLE //!< Single measurement mode, default +} hmc5883l_operating_mode_t; + +/** + * Number of samples averaged per measurement + */ +typedef enum +{ + HMC5883L_SAMPLES_1 = 0, //!< 1 sample, default + HMC5883L_SAMPLES_2, //!< 2 samples + HMC5883L_SAMPLES_4, //!< 4 samples + HMC5883L_SAMPLES_8 //!< 8 samples +} hmc5883l_samples_averaged_t; + +/** + * Data output rate in continuous measurement mode + */ +typedef enum +{ + HMC5883L_DATA_RATE_00_75 = 0, //!< 0.75 Hz + HMC5883L_DATA_RATE_01_50, //!< 1.5 Hz + HMC5883L_DATA_RATE_03_00, //!< 3 Hz + HMC5883L_DATA_RATE_07_50, //!< 7.5 Hz + HMC5883L_DATA_RATE_15_00, //!< 15 Hz, default + HMC5883L_DATA_RATE_30_00, //!< 30 Hz + HMC5883L_DATA_RATE_75_00 //!< 75 Hz +} hmc5883l_data_rate_t; + +/** + * Measurement mode of the device (bias) + */ +typedef enum +{ + HMC5883L_BIAS_NORMAL = 0, //!< Default flow, no bias + HMC5883L_BIAS_POSITIVE, //!< Positive bias configuration all axes, used for self test (see datasheet) + HMC5883L_BIAS_NEGATIVE //!< Negative bias configuration all axes, used for self test (see datasheet) +} hmc5883l_bias_t; + +/** + * Device gain + */ +typedef enum +{ + HMC5883L_GAIN_1370 = 0, //!< 0.73 mG/LSb, range -0.88..+0.88 G + HMC5883L_GAIN_1090, //!< 0.92 mG/LSb, range -1.3..+1.3 G, default + HMC5883L_GAIN_820, //!< 1.22 mG/LSb, range -1.9..+1.9 G + HMC5883L_GAIN_660, //!< 1.52 mG/LSb, range -2.5..+2.5 G + HMC5883L_GAIN_440, //!< 2.27 mG/LSb, range -4.0..+4.0 G + HMC5883L_GAIN_390, //!< 2.56 mG/LSb, range -4.7..+4.7 G + HMC5883L_GAIN_330, //!< 3.03 mG/LSb, range -5.6..+5.6 G + HMC5883L_GAIN_230 //!< 4.35 mG/LSb, range -8.1..+8.1 G +} hmc5883l_gain_t; + +/** + * Raw measurement result + */ +typedef struct +{ + int16_t x; + int16_t y; + int16_t z; +} hmc5883l_raw_data_t; + +/** + * Measurement result, milligauss + */ +typedef struct +{ + float x; + float y; + float z; +} hmc5883l_data_t; + +/** + * \brief Init device + * \return false if error occured + */ +bool hmc5883l_init(); + +/** + * \brief Get device ID + * Always returns 0x00333448 if IC functioning properly. + * \return Device ID + */ +uint32_t hmc5883l_get_id(); + +/** + * \brief Get operating mode + * \return Measurement mode + */ +hmc5883l_operating_mode_t hmc5883l_get_operating_mode(); + +/** + * \brief Set operating mode + * \param mode Measurement mode + */ +void hmc5883l_set_operating_mode(hmc5883l_operating_mode_t mode); + +/** + * \brief Get number of samples averaged per measurement output + * \return Number of samples + */ +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(); + +/** + * \brief Set number of samples averaged per measurement output + * \param samples Number of samples + */ +void hmc5883l_set_samples_averaged(hmc5883l_samples_averaged_t samples); + +/** + * \brief Get data output rate in continuous measurement mode + * \return Data output rate + */ +hmc5883l_data_rate_t hmc5883l_get_data_rate(); + +/** + * \brief Set data output rate in continuous measurement mode + * \param rate Data output rate + */ +void hmc5883l_set_data_rate(hmc5883l_data_rate_t rate); + +/** + * \brief Get measurement mode (bias of the axes) + * See datasheet for self test description + * \return Bias + */ +hmc5883l_bias_t hmc5883l_get_bias(); + +/** + * \brief Set measurement mode (bias of the axes) + * See datasheet for self test description + * \param bias Bias + */ +void hmc5883l_set_bias(hmc5883l_bias_t bias); + +/** + * \brief Get device gain + * \return Current gain + */ +hmc5883l_gain_t hmc5883l_get_gain(); + +/** + * \brief Set device gain + * \param gain Gain + */ +void hmc5883l_set_gain(hmc5883l_gain_t gain); + +/** + * \brief Get data state + * \return true when data is written to all six data registers + */ +bool hmc5883l_data_is_ready(); + +/** + * \brief Get lock state. + * If data is locked, any new data will not be placed in data registers until + * one of these conditions are met: + * 1. data have been read, + * 2. operating mode is changed, + * 3. the measurement configuration (bias) is changed, + * 4. power is reset. + * \return true when data registers is locked + */ +bool hmc5883l_data_is_locked(); + +/** + * \brief Get raw magnetic data + * \param data Pointer to the struct to write raw data + * \return false if error occured in single measurement mode, always true in continuous mode + */ +bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data); + +/** + * \brief Convert raw magnetic data to milligausses + * \param raw Pointer to source raw data struct + * \param mg Pointer to target struct to write converted data + */ +void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg); + +/** + * \brief Get magnetic data in milligausses + * \param data Pointer to the struct to write data + * \return false if error occured in single measurement mode, always true in continuous mode + */ +bool hmc5883l_get_data(hmc5883l_data_t *data); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_HMC5883L_H_ */ From 2994a566a699a434e3503f8450990f6d9451cb49 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 20 Oct 2016 13:03:05 +0600 Subject: [PATCH 086/349] Driver for SD/MMC cards (#239) * Driver for SD/MMC cards * SDIO: read_register() bug fixed, schematics resized --- examples/sdio_raw/Makefile | 4 + examples/sdio_raw/main.c | 117 ++++++++ examples/sdio_raw/schematics.png | Bin 0 -> 44483 bytes extras/sdio/component.mk | 7 + extras/sdio/sdio.c | 449 +++++++++++++++++++++++++++++++ extras/sdio/sdio.h | 98 +++++++ extras/sdio/sdio_impl.h | 154 +++++++++++ 7 files changed, 829 insertions(+) create mode 100644 examples/sdio_raw/Makefile create mode 100644 examples/sdio_raw/main.c create mode 100644 examples/sdio_raw/schematics.png create mode 100644 extras/sdio/component.mk create mode 100644 extras/sdio/sdio.c create mode 100644 extras/sdio/sdio.h create mode 100644 extras/sdio/sdio_impl.h diff --git a/examples/sdio_raw/Makefile b/examples/sdio_raw/Makefile new file mode 100644 index 0000000..1629f05 --- /dev/null +++ b/examples/sdio_raw/Makefile @@ -0,0 +1,4 @@ +PROGRAM = sdio_raw +EXTRA_COMPONENTS = extras/sdio +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/sdio_raw/main.c b/examples/sdio_raw/main.c new file mode 100644 index 0000000..0d620fc --- /dev/null +++ b/examples/sdio_raw/main.c @@ -0,0 +1,117 @@ +/* + * Example of using SDIO driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include +#include + +// Blink while IO :) +#define CS_GPIO_PIN 2 +// Set SPI frequency to 20MHz +#define SDIO_SPI_FREQ_DIV SPI_FREQ_DIV_20M + +static const char *errors[] = { + [SDIO_ERR_NONE] = NULL, + [SDIO_ERR_TIMEOUT] = "Timeout", + [SDIO_ERR_UNSUPPORTED] = "Unsupported", + [SDIO_ERR_IO] = "General I/O error", + [SDIO_ERR_CRC] = "CRC check failed" +}; + +static const char *types[] = { + [SDIO_TYPE_UNKNOWN] = "Unknown", + [SDIO_TYPE_MMC] = "MMC", + [SDIO_TYPE_SD1] = "SD v1.x", + [SDIO_TYPE_SD2] = "SD v2.x", + [SDIO_TYPE_SDHC] = "SDHC", +}; + +static void dump_line(const uint8_t *data) +{ + for (uint8_t i = 0; i < 16; i ++) + printf(" %02x", data[i]); + printf("\n"); +} + +static uint8_t buffer[SDIO_BLOCK_SIZE]; + +#define TEST_COUNT 1000 + +inline static void test_read(sdio_card_t *card) +{ + printf("Simple random access test speed: "); + uint32_t start = sdk_system_get_time(); + //sdk_system_update_cpu_freq(160); + for (uint32_t i = 0; i < TEST_COUNT; i ++) + { + printf("%08u / %08u\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08", i + 1, TEST_COUNT); + if (sdio_read_sectors(card, hwrand() % card->sectors, buffer, 1) != SDIO_ERR_NONE) + { + printf("Error: %d (%s)\n", card->error, errors[card->error]); + return; + } + } + uint32_t time = sdk_system_get_time() - start; + float speed = (float)TEST_COUNT / time * 1000000; + float stime = (time / 1000000.0) / TEST_COUNT; + uint32_t bs = (uint32_t)speed * 512; + printf("\nDone. Time: %u ms, speed: %.4f sectors/s, sector in %.4f s, %u bytes/s \n", time, speed, stime, bs); +} + +inline static void dump_card(sdio_card_t *card) +{ + char product_name[6]; + memcpy(product_name, card->cid.bits.product_name, 5); + product_name[5] = 0; + + printf("-------------------------------------------\n"); + printf(" SD/MMC card info\n"); + printf("-------------------------------------------\n"); + printf("%20s : %s\n", "Card type", types[card->type]); + printf("%20s : %s\n", "CRC enabled", card->crc_enabled ? "yes" : "no"); + printf("%20s : %d\n", "512 byte sectors", card->sectors); + printf("%20s : 0x%02x\n", "Manufacturer ID", card->cid.bits.manufacturer_id); + printf("%20s : %c%c\n", "OEM ID", card->cid.bits.oem_id[0], card->cid.bits.oem_id[1]); + printf("%20s : %s\n", "Product name", product_name); + printf("%20s : %d.%d\n", "Product revision", card->cid.bits.product_rev_major, card->cid.bits.product_rev_minor); + printf("%20s : 0x%08x\n", "Serial #", card->cid.bits.product_serial); + printf("%20s : %02d / %04d\n", "Manufacturing date", card->cid.bits.date_month, card->cid.bits.date_year_h * 10 + card->cid.bits.date_year_l + 2000); + printf("%20s : 0x%08x\n", "OCR", card->ocr.data); + printf("%20s :", "CID"); + dump_line(card->cid.data); + printf("%20s :", "CSD"); + dump_line(card->csd.data); + test_read(card); +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + while (true) + { + printf("\nInitializing card...\n"); + do + { + sdio_card_t card; + if (sdio_init(&card, CS_GPIO_PIN, SDIO_SPI_FREQ_DIV)) + { + printf("Error: %d (%s)\n", card.error, errors[card.error]); + break; + } + dump_card(&card); + } while (0); + + for (size_t i = 0; i < 1000; i ++) + sdk_os_delay_us(1000); + } +} diff --git a/examples/sdio_raw/schematics.png b/examples/sdio_raw/schematics.png new file mode 100644 index 0000000000000000000000000000000000000000..93fb22719a32a59a77fccda1c51e5274bc6905a9 GIT binary patch literal 44483 zcmb@tbyU>R*EdQ?cOwibodP0V0#X73(hVYlghS_$iiAUlqyhud-7$nPG)hau5Yj^r zFu)!CJ5%z<7Yd zz`$a_$3{~kgbHlYjoX(mUa4YWVvtji($G=UV%*1JU@)^VJz`YPQxbv0CEi5q9jX*}m zuWXH;3pi-r>#b0Uf1Z+R9(-n00(b&Qw)-Kk&J@zI*NRSu5~)iZhp^d-!KJ zwn-y3V~|jY5B@vPqy!JiE?XlnZ;yB0pDUf8Cin>0eBh@_dmj)+d1Q+*ZTreNN-x7t zs>J<`XJBS5=qWjb6$?fA4b@fEwN;;cz_oQ9N&OBr4Sij8^{owc4bAnf?Ja#R zExR@4=_484?QOxcf$bfz4ru#OM`wF??__ℜ2f)`)5}Vv~wWgM}KeMkHw+BKC@Gc zgU(jiVE@42VX1XXn=E z=4bxQP0laQHS9O`{i$DCSv;GcTUpszU0=CeS%hz{Z*Fg(Hr94`4=#7MM{i*_2ZzTe zM~Ksl`|Inwdz2{zE{I+an08ufDj1(|nAFh?g7@mCo){RsAO8Mh#v9(Pp^1228rrIO ztAv!ajC3ZTVtfn?RtyalrB{CQ`yC`+=Cj`0L=O4&w66W1wKCvlglY{;N=#`Mg4UvX zkH8CYyd{M2lP~t;DKUBCMp57_*}+HLF7xw7z3nFUP0D3Q)88sG4L+w%ajka45xwDmd9(fHOAcxxN6pP*g`gg` zw_xJ-PsHl`BK0Hkjyrg0332E7 zhK-(=f2R0riT{>{=;1#ydTRg2x_=*`84D6at7^LDVT#DqdNem0GH4ariV3SS-!rx! zp=cRV)mtKuHL;*oXwB(R)f?!>gMSSwl;ZB43~s+5APCPNMERfDMPxZ5gPUK6uZTnZ zE&5LvUNYX6ktqXs48LscI@ zHPEW{16D6rC_q|RXtn%GhAo7=mHwZa8-GF6b+%^w=xY8@FoibT-zjEAX<|a}+y96E za$aBYp@O~5VvpV~DW7-L&E4<+B|!*nUTet5Fd&gyiOlyYro)>&EiR;`LCh@NVEfiI zX!nl$uX2#Xull}{pzWxYD_fgY01LqOwLQ&NJbKjr<@7f*9Oo?^XQ)0)?qh)H7ewG2;3ex`J0 zP#V0@L!pl_iE=1sjn;Fd#vn%ZRkRmyKMigNc$fAnrJ~vB2QKZ_oOVpwQ&^wW%=#KC z*dkQ0iBw-kh!kW-VR(@2MiE?CtvC3IPGb?1z?|}(D20)x5JgiS4V^%#@8|yCnlA#p zM~a0^sZs4RTdoB9FAgM&>NnRW3#wI4l8ib5o-&WVjQ}M@Ov6jZ?swRh9%{noEj$52 z-e95~_Q@(tcr59VEz(;uJl`yq{l;rrOM{2xNSN`jFnvfi@aDu&rCMvStj>=}S^-PQK?L)Wp%NjyZfEsCi zf;_X&1zMaGcO!g-nt0{<__nEyUD`pMRkbi`=gY~rc2&0SROj^0Z}dI!T`K$MW`7i3 zkelp_#TQ_5dH1;5O}u1EZj}?h%}BJmD4fT{pU=Qh5F&~j%h@*#)5~BrhLMBb??lOk z0{14yA@OjlRoHd2+B6IU^flf#%9B$0eOYILiGV6%mee8PuHe)WVN8&&9-7r}M(!V%bc zPG9M-MINX5;h#++Kd27;ft#tZl>Oyu6k^m-5YL7}%G0iHPrx*ITUtLfl;A^Y;XrQ; zII;ct$5&)L-H+d346a~Vtp7~HXHgIL1j&5wTsoXWD#=ROKPqOd$#)o z9kqJMtl${e&F}QzQZ?nm(50Dbn?lcgxdaR4NsrnBd`=&%aXTzah$3r zYu76^uwQ4YtuSFMjvR*$)nGuW(dlJPZ7m&#>5Dk@G&VN4Jls0%2p%_w_Mf0SLWCB! z?3duh1CI2Tp?%LV7S9P=0Q6amSmv&atA=v?Sy<*F^brxqMSpYvqu@gx)!lt<&A>40 z`F>AVa(Vtohndv%5O|9`=7Hl9KpE-4O#wpZG(v@M@x7&g=ghTNbK)-}79vE1-_W1o z@~xCei|fnliicri^1v+7;L(QjCEfu(OU=ut(@)QfaN-~KCm&wVZ{5Yc(DcD^&WftV z^7_4UJf`SMBp38ykI%b03U^^|S32L|=ci_#G5o00-`}?86^-@ZXl!|yB=&EwFXyEpnh564G4Kz~P}V$la#le&%$e(3b?wlv^(Xn+2DIW9BfAv4Hn z^D{~NWsQgbqvZ*{GCz7he>&brn$BI2x({_^`{KZcKOVh|H>SVO3XNewyZT_3i`pZl z>jfqWiT5p#)L3|ZfI^F;PYne8s>E}@_F$)ka@*v+JFcbw5A8(vRm{z3gT!(LC5 zu}_HCj}9i3-r78O;$xhyKX)?7_=La2&>(4pwID_RO9?wiQ~R3@!9SoT;bfT)a~>Kw z-kAlg$QGBj4l(`Y53>AaDT@KKoUmP&7Ijq!^gCc7+AEQe&ytS!9=BCWNFdQ4;sTTs z8UShvexW%MKr?fjy((d%^B0?B2i$N3vgR1=Z+}R!;ER{#=k!mz3AQ3yiJ9mf4;Gv7 zFz-*E;9QJ2O&WNm;kn-_He?;C+WA$B-GHVhjBgMJ^!%EeXqS}^rn)lNVq-4ZtNid3 zOMy79kNyzB-yUIsg-8Flvf?8E-TtSHf~Q&jE35tmjsFx{|EaV7hoBwt-}xS0A(JQw zK8%M^O=JzdBk<+jVb@rZ)hJZa=YOAk?npzZKxa%xSriHbq&YMR&7+m*x9A6$r#^wLltR=k_*Fzd zx;`f?ZC6o|H(2(bZJyKDf<&RSskw(VxD@b?03z7bh)A-pD3=;Lk~C9fk4}Ml*?(}c z0fGh1qp?cowLOMwCTfa&${ROv6&ma%kR`4(cnV}-CPR`n7#S;_=nswcw>K(tu^g>& zWkt(vT;fFlugVhN&l2YOKmI4>J2}I`sSUMbeOxVs5{WY4CP1l~!eB1oh*tC<<*Nq9 z>{PJ0H&{GgD)(%6&K#^Y2@C2D^x4N!XaWRASYt{V&7YK5Dfy8|evvDgbF8Gy4q`MO z)AQXUdi;fHDw=l9S9`HckdEMmyH-G?b+|6m;;azZUh!l%LsOnO?ux8))i54-Q9}u; z3?A_%-?x9OyE;U)?Rh@>1(q6M{2^40Dzda?4NySWkQ@B%bZaC5k?d-DDs(3 za*sMZ(o>glL8yk)mw0tM!&E5BT3^b2c@&5>9~0;u_ow$e0I7%SYws4um7z2e|HIn( zsNlU9q&43E2j}z#7Q+5B?JhC$-GbVOyVv^F1!LB;6x7$r4hf_VzS(`Bn z32x%4(PnTyzS#@RCVIZ#5THj;moSA6pv#SBVl1#lV z9Y9?~ETMs#oYaiL?8^S7#5qCIA4x30Bh+I)B2aa_A;PoD`KQv?c$(xEZCP)9+2~+E z-M}<&5>Z$Dg^fB(iID=~T+h7NcU@j*yDH4jakyu{pR+x#%h6E2_Dc5o#PmET%q;Ln zz{qLOIDOv~o)ZI=8Ur_5`1uZ(cW;7VC72DxZner?G?r!0b?%|O31?r z*Us7^aQg~jZ@2_0b)Hi~M`7h*xpNVF>kjS8PeE?(Ni2oSq>a%UTl)(-7zvS|X$!oQ zy9%V#JIGuN;#dmhscGl(31e#X>^Cee$uT(CdxUZKFCV&3W6fa!d_SQ%cR6Mff`B64 zxc~#+w{h~7OgJo*hu~m!g*ee(U6X6o_OAF^=Q%(fBV`$b&&%vRdrT04d$3D#nU-Wf z^_pXC>C+zu?A^X@a(>>L%`YpYXz11JOGd+5q_vZS49t_4W!5OlrTyaLiYRj56CyeN zrEk=(EORixz2Se~M27GTa`X29toY-GcRTiX-ToWSk)~<BNRNY03EEVebtLN=tHG7TQKOEr)Ei zcId|ra6FA(Aw1(OE;ceWl?)iL8fzDM0;25yaVNV#7oi40hEZK}sk}82=(_Amt>R^bM-UL5plJY@-_EBZ+hioxvZ-$8Vi4`nQgK=)HuLi)vaL2w)ak zsxLKPFj#}d9lCUeW7@b#T)q(f9OH%Q7)aBurk`Ly>ocUgfw5B}o)fP@l9=WrK*de^ z-%)yc+_I7A{2xzS`{oSjX;l8t``UWOEojaqk6$wzk>Gm@2KPL5I2YG{$AA^>Y8%zr zI;GL3F)QEe^?h;X1R*J~=HC zX+1M+>#lj#vbmL^VQWO(pu__N?>&G$1nxwI=`Cwn20i;*qFw^0e!;3Ekl}Qzc*n2L zfPn!+Yz}7yZDZxtLnqpVu#Vqr7ezCjaTpvIF~7rRie|#fUksf!JZT_{r3_4c z60;fKBz)pVo<4o7##HHT!SPst>4mnof10e0HV%AkE%7bGJ_E+&x{Ct_s&*N)oHkUd zkH-yDh6yE=*}G`Q4TW3JGomcY7`({;*keFj;2O;}nD>g!^jiL@T-=71ImdjPS2Maw zFRI^7>^efwB~A$y$GLl8cS~uUG+ao3zRte$P?l`TstZu8m1`fL6tGa-F74Cyht)g| z?iKCoztmNtzmXyA*PV6_5xZK6n`LBdmcn%m?4xa3GsZHPpMD+<>FRjiubO!#fG%h* zad_BjmMq=;3K}=r!?Y}8TFYVs91A-ZJQB-K0UHYKN6*r8^mYNonmO=%$}cBdb2qpF zp5;2PpITDFgc$!+#G||N`lYjb{Vjd$(@EEby^jwi3u-r$j~dHgv)TUSgR?^j6ZKnD zMya2CUS3q(u3J33*tFB)9qk=`F=;TAlQ_t&0ieTE5aSe*8cXAYxh0u{Q&aU`un!u& zjsa$e&<(kiG%Y1qcv>U~Hj#{su)%anHV~e`eG*XL9OY%3ZU84xGdQtk_#DoqBz;+Vmjg+Q8yhb8Q}Dcj*U z>`x!(2yxx+Ot{&WuIA_k{LSG6P<8;En9SkT9dZ0R8jH|VA0a|f>&c=B4_W?Cm_=Mn z_=@9y0ZISL8+5??-w~sKaE8IfIMiCSySIwE3RbL>fHWiLkoP`4$f#-yiAN`eHGPDT z>YoWEp|uGm07`R0;of=h0U1=kojFfhY5kp20&;4!3GD%QG`RikAGEsLsK069wM1&+ z0TKKf_p7$T%olbxtG*z7DCYxc{6tr0-}jful3gk^fR*(KB_9)}SG!7Nm4IZY=ID$_ z5&n#ZS5oOgb5-=Q*dP|cM<^kIFRN?De*qhA^&mlf%DmPqpOM)dR$Hi@0435Av8-ef zn_d_~D*S)y#`H?j`__{mh~KH`S> zf3F(#k+yqwuNY8wQfO)uD?hsQBbX68e!7tD-FT0TT*v73N3SGU(C=C zQmG9`jLdn4Or-{?@neHd zQJ6<0pki>EASW@Xe21GVD%oKnuD~ZShlj;y4kS71yuP?r8%+5Ya10K(Gs!kaGN~d3 zm5@w1+YbHgVJmtaJ43$TjWrPVGVo_t@&r!~ZJM5~atBeeqSE?p-LKZvV#-3Rd^E|R z2HQf}GA_Vsi>QvMaVH#>ol$I*PM%fxX?+5#fNlYGnw8SJWS>bA$DZy`uP?q z^h$nml?3FV9rHX&xz2lhr`D~ngi0-*Sq>;|x}1~P{vLb~H@Q93OhY&JD+ieWHAkch zArpl#4@YFV!(uT&^jho)X=po3)%MVJcMQUSdiI0n+q{jI6Km@rwr_?#xy=dXk&)D1 zyLfBG#EogX%#fA0DI!()3aY>yzDMplSy9H@L;ki$Ed^@2PWxF<4`z2RT_(9iR+;?r zbTg`pUEul;oFnS~*z8nb3MkKW9kJtCIPll4-2A&i_)y!_<{#Pn!m{NPHdwNF%PJ3fUq6WN(vo{>j_Csc_P{32fBXEJ>$*bvba7&e}s(T zowZ*I9SHY$j7i?m2w9Ua+b1L;tJj|coHApw;Mw!VxK1}f=2-KtrI)j!VRv`cu5lD6 z_P3Q5kNX~FYu6lUz2|@4o?-CHJBe$x)Ov(loqa~|Q=tC3czAH36OG4QETRk_X$pm~ zmwooQ>xu9X2DXmyD+IUrmX1IV#3z94(Fp!uzn3S`>p(IwTi{4S1|J%O{vy$46_e}H zGcG?QupK3KX)rH(w>WQxqVaNk7@3zIe=Q2iXG2l<8IJ9t$^&@zyg@U}>bXMOs$4UH zdHmZn5;N;$YZ5K5vDUULn$cesNdAWF|6bB)T>n4&(f_{)S;9z8yI<-YTv=!Ndc0=e zQ{rIkDoIOFfrs4gG@sKoJr>0JTyA8$;`igeXH{hA#|#zPt)+)JzTkrt3cv``0qIjB ziJBI9nVknX(laK8=yYW?RN4sO9^Ubz=&Hhp^;~eV+sd(n)k-->lkzpx5+i$IPU?jj zLK?ZL^&D!-oCRrxQkNrnb?*-!o(Kf;d;;#6 z^GIILoB+1J2Gfl0{&#*l-$5rSL8}*ry$20RyXp}+uQESsKpw1^ihb?9c>8Q58-mZc zsYfZAf*g4ikGitH+qAyB%2PNQaI_KOXs#eH<*!Vs7Y?~nOGUM+fB(*l~B zj{I&8pf_#Mz(5$-r~7!;D(Kk#ZtG^{{%)lmxjsv&k45)KazrCsaK*Jr4%vq8N+$2O z;3}_l{YUN+)la1>d&~$0j;kq@@_Ozk4LtJz7}>Dzu&Yi{UK;6%B<2=oJY6xYNLqC9 zPZ`=VnJzcGAvNsgcA}`|<51<9yFT$OkLc8pQBT;vZddz0{@{RhUa>yniD7KWmKf*z zeS-s?wJ=}R)Y?N^y6ymr5m6h+=9!rKeO_|`Z~hzAjm;)6DYO=V989_iuT zlsopRT;$Yq{K+Uh6gFu;S@isA9j&4C{a?k#1Af-q(U z?$B;a=6hv(CH62gscrujSt%z-P=AT|DN-WWfq&F?@U;8bbG*aOn|ws%yKeV!tZ-+k zFS!$Ex5&ym=XYo8XN!~H!gB8tGK`dW)71kg!-M6p*=iEJ>rsfn75}IMy)S2Smh0L{ z90?(Tumohi^Dp?vGi3@RvyF{M)>nk)l=qv)ohSGyb9Kv4^KbwLJII9<{~O8VQ2R{j z#T|~nBk`Hkkt%A;{kLpx!%Bnj3^baHfIoWOSg~PUZruV4B z;LD}{1@;NKyc>W_so%P1UK@8dB1K(Ulxjx`_T+hBAR3N{{W4L#+zMs}9PTjDn$NOs zz0^JWZZd#t_BtsnEiAY5s|j4Ix28AEC;;~LQ5YOvxVq9v$Sf)EM!ObKh#!v)gXINo zrn+Y`c>yFFcTXkMgPEfYwWU9a|Gd<|3(KMSC@Aj>lOH1(9#`yGIU+kFXtBTAAtEmU zVQlH>KGS7N%=~D3=(QWPJ;~8|ru-KSfQRI#`Mh+30o6Iu@>oF8nj!3(Fx@1k{17(8 zfHCtL6?O4j|0wyr?jr&xhbjMUHg>tQr}mGxksF>>vc<*V4a5d;`FM~?c>m|SFzUWR zI54A??%Z8Kom7`uxW)dn?~5Vrsy4KZNF?P!NmD6S7HId#O-|G>1>a0dG4rv)&W}xL!NZ?Q+CG#d(tFOQtBoIS0Q}xo~Q_7QbL{Ez)laWx_4|#>GB;F6tyAGcyFw z5Z{ZamtXnD(hba&u3q&w-=Lb~>$yRSV2+VJSVt88n#7rov?A$`@K4l-0C}i z{lgJj(=VU-wsWwP8H2#Cgz>wB{?cQ0^5pA`b+Wi{0gfK78~NKEVE~?st>QJ6jAM z@s5)_4YXD0%FX7Edu{;cio0mf*%(|0z^1`e?eH77x)^}wf1d?_?}B}UPHxAS>}h7V zb@)7FIRluNBs)L1$F^K}O4W;RPTcCND!(g9k&51HO2M4I(r<@44l zlDVGHCk#I!@;2{C!GUyRKuIW^xd9G}hR=sHC2QW~S~-#Z(sg_}9n>9BDnCZE=6abU zJ18aZf0DYrPr5#fuTr~rnmc|>S+Z+vog&0C(6b)=bKMOr4zag7`Q4T&SJ^whDTGP6 zyuR&`{(!*!#Ir@~BqwlDakv<&Y;FvPurLf2ui&<2GXLqY*F3^_tsmFns;RJn`Aj|= zWOwvMt+U60ZBTD}(i+1>!(+-;WgWnRS8_wpRHo5mJ!dOk_vk6gVk|1R@v zJC7%ZfAHKUOsX<{JEPGtCvQ*pbNX|V59f{#o}4G}l3<6bxQt!DQ}Yjf3-CsHvsr0+ zOdU&LhHiK+T0DdO$_GUG!;~O!MLn>2hYVK-;)AYdUR{vkDUNQb*&RX9LNMxCXm!ld z*Gs9_;be~bdE82dr%W8L#NQsne;QGMgD>u0APA~Rj&G7@o_(K5*zGQhpmg`?8h74h zvI&_0-7gnkSymk1-sR|;4{Y#!JEngWD+#6?lttVmQM0-@T_^DVYA89N4|0>cq;fOv zHJel7ph5WwrF9)IA(SXR?UDBwjcbYk`ux{O+iktsX zRfJ|~kJ1A5oD6QF06dSi7RfMr0C*{2WmPHW1R1cO*J6Rs;?XZ)&zj`nbdB|4#{K)d zBn;@KVcx~BKdhek2iJ(m01IVRza{|%kG8gHhpwbpT097Uy~`eRLrCf&$8{WqpoV^bRim6 zwHTr=ta}<&?`kn9f$FrP$s1&2A_P>d-cF!}FBNWky}#MMfX#<@C3$?&{Z!t#DuLU| zi-djv>lQ^^XQGb1p9{5`Tba%FdKb0WW;uTK;@823$qA|93w}g?&Jai<;os!|P zV*BfFfm!EYhGpLLdB^LS%jR@!NfJ^Lcw|$1yvT=r)fwV_$Wk==@aNQ7l}njWgCmoE zKkAyrO9*?QP^r+WIOTEYCq}Hs4EWAj?=q9$g+>1j0!SA}qy*D%|+MDhw)ZB&Q<2x6$kG9;burT=aZtmGcciMUL|& z`_La_sWV-z+G#1!R$-M$!gzgQDIkHv2(WM+B#&8Pjbc9yjizr81Jy@Ff;r5?pY(nG zu`4txpO8gGsbMehHYYM?7$eE%Y)@UQkf*@fn0BhB^FS#kdVab52ko{=_2w^N(My;{ z^T7+vT8B4n^FT*t*l$W{W*W%wmi{K&H&Z7=D66nvExF%{P|qcIsD0zvB%FpdaUyu7 zbbLH|LU*4u95US0Tv!@K=(7)(t$m>Fge`X~;JL{4P`?)Hs7S?`_O-;%di>=O?=PkR z6uN%et_`KlQCGQMCd;7=p7=o){RA^z>3O&i)sAFpQRoxfgUqUSvd|wGqQ{fIou?PN z+^pU&c3cgxz}(9ce=Z4sPyVF6q5Q#v!(%z4(BgHW?dO#(IDZ^$^!pg>)R1{r(6A{8 z+hO+{VW_Wilzi0nN_f!adz0fUHk`n~2-9!u=gy;X7iS-fRibZ|1DcD4r8!wm()E?) zf`NK`pW%c4zOv;$FI@TnjkQH^6-=-m#M^-Zu@gFH^YABDgyu zgkmA@W{O#VO^C~=|FNH2*MSX&<%Wd=BJ!GcoWvtmIOKed3gt9S8wkKZ6sg=j zGS7a{lyk_ypx__!ECpFH;FqFqrg8H2Wfz2Lg6IiAKW%DI*9yX>sVbeTFRh~oyZn_P zSv0L0;nKG`BDvj#<~U?by5!M@Yd7I4 zd#AxON`>;=wWJzVSogcv9X4h+4g?+5plaT7LfAYKBs=uqojM!->O3~ z6AtE@C5607`E4KfU0Nm9ZA$fSj1L+$rOAS%n-x0gG6+L8dzB>RQYij4Q30&|&Y z83VlpQkO%l%ai;EYv=~oOn4#FV2&`_{uW1A z%e90PJ~`QEG}C9~1SlRMN!gDpN!m79ZXT)8uVs*jvug*WPY5Mp8Co$F^GyPsOV7a5 z=xy5cbBZCrb~@p%J(;0psD0jP;>Nd!Frp0Mq|u?mSD87rNtzE&!c9|EtbXbd^l3S< zCz7OSxnM)|nPFdgm~>lYbm-j5BnMp`)gjdU)H|S|ya6u_s*;qVMM(V#4o$SzU`4_2!M7W|@4S#$`b2 z;bx&O0p(?(ZiT*P>d~AW!$M;RkYTNQs-SQClY<#)e-!@hiJh=QG_ZxE0Au|p9x zdCKDVbF0z(DMyW*{3!>Gj{K=zueB@%WJjBWgCXYe@r^MKviaUk$Bd*9@36K|hQ$v< zmiK)z=Mqjz*DjvCn}%=ita&h0aESQFT86hPLLm-I*%4=H4KxBzLMDJ@1DT;En~^e_&bsG8tEVPwaw(MzI4 zA2NI%{6$wSEJ7?_Qx1H5o@$f##)^tcU3T3|J$n_TCIZdI2}U>qwB?jff2O%vA0!wV z@)k~q1=4-CkJqc?j*c{$K$KY$*)63m?i(S585IUB@7a-L{LCF++8QZPQ8WvVo^*_J zA&bq&@F)qy@yKUJ$Bg>Gr^WYCG&i0t%3C3T2u2^CbQz5M-nftUEx$Vu-O$I@h)Ewq znh|+CLSouQ|B$XQtO%UQ2c*>W0?quZieZD{ZP=vL83N4`{~Csvcx%Mb7-PIUXKhQi zv9cG-s_S!s<^FUOz`ZW_rBp_V&N1?as~Q;d!pPm;utJ;Cx29u92@sd2H53@}?C4jP z1n44zSI&hEJTd-;CH3j)*@8C5EemsF?s){G1kde-3}jTHx%;axk1rgL@xcyE!foG@ z9LYH!W0OaP6Ni)XK!^GRDi?T-~x>lFHLUe9B zlBK|UQ$~oR6fcpYi4ete(|OAgUDbI<`*{|sbdSW=gnnjO%s^sa&q`#RZS7e*Opw%W z6zqFyu5>ERfEFCxvxAau&$*JVoA+M4>*FKHJU6Y@iA zZ44DPCD}zT1`7?PZ#WQ-&dP#dIQ>EFqcJ8ywAjDNJX&I<^a4&78qcs9GaAqA{Wi2#>4Z7{9zL6S>ktav2-qI7anQE9 z7<@@?;vJ$G7T(oC_JEqlZ*@5o3nvWE2!|T&`NGL@A?7qM$%U!|8uZOL>l(}ickX@M z9VC4q*5^a1)9X-@@He$vuCYv2eT47LIucsn5Lc`>)Ww?xL^Sw^h(TT?+TL8U{ z+>zAFhF6!_<3qDrepk8sdGz)^E$zHnnq}s`KiNbJob@19w(pZlLetu>td_+F*nmCr zy^t`vusW!VG&)nrU4^9of$nond>P$P$lZi&??Cs*H$7m56I;qE(u#8}SN>K3X?Mdl z7H$fm)>DG8wMZh=6Hu-Uw5qAA(&TCiKltInnT>fvd-@>>j~+%QO}^p<>{b(}^M`ZQ z1m7l$s%F`=zN%EGxqpEDFl$@;<{6{wDt5*E-Lh`1M=FK!lgfftSxqb@$~C(}Np4kf zUBd&R)J33QCHPwfJCm3>IjF9sgYl^>!JOK75 zX*?7G6-zm7zZG-OB~z^OC&Cu-UIj2{jvMTl9Il(O%Mn2wOT2OcR8%|u#Z&K>Bn^AI z<5@=exhOT|wQFRq@JM_3*_Kyh*p8o*^tkKwRvmve#VT}o=8m8ft9UU$i0{)ti>W`6 z^?((VQJx@|`WH0^Im5E5zTtVHh^TRlB>GG$@6I%^xgFe>x?&VwlkP<-cl%>lhxw5y%H9466BUU{!y2IMq)l;ea#qtmL#Z$ zn+L2!$!_~iq?0F;@9*qB#BtIN{phDWu(VTr(sjhf;6ZJYgpEV?C5Z}WCfTUWdR*1R z&ILT--0(^d3_+CnD@QDOA@37{4vMvUmn=KjYP{h^Q*@N(#=>pi4l6-Xg{Ssk%ibxv zTUN4rtDpILlSNmQ^*))Jot6`zt<`Jouv{u&PyA7;6N92ZINT)|;v5G4So0f*g=+|d z8$S3hu1Bs&oINtTjpS3F7=8eHC%D^Qm}lpJ*X14@!TSItEK^v;Fp*rf7gg~hAX_5@ zqtMYinu!tWB)6x1y*+vT+oDlE=v0GM?wi(lW)eO$p;>IvV?P$ZWY6BW=V*&G#;C zr&M?IYza7-)4uPf5P^SIZlN4^vBWrJw|H6}Uso?n&R7b0kitb9`@USaG9_o$B`Uwy zf6ym0CuzRAsuD#T4o8b}O@a;vRfq?3BHqcm6z4T?XC)8(a?cWc_-KCjd3O?*tx`B? zHI_GBQ}v%qi4TfPH5X4lK5y(vDm-}Ty#72Kro@Ez+4PNNg5WEL$~v|1?JDQhIpH#A z&w=Jx`1R2HMSh?Q7(Y$Mrwe`0i6cin-o4t?0W+F%r=p2@ChQDpK4Uk+I$`eay7l;? znX}^uTe9s)D^|eiyX-UR6u(UU!S(X7)pSmTft1gdB*n$=HinTX_eNjw%g-yY-!Lja z?=*yACE~{YUOO7gAn9wUIv?_35;2a7{j|b8(2&i)P&f)Tkt^~!J3q5gv{H`IrZ0b>UZ4bQSI-x=UlimL5w&X zWS*&O?s$|PUE|r!2SUBC@=B+&C5%* z5I%Ga&-8D8Usixl633-}Qt#&u1p36LO0uaCzx) zdgMlddaQtP)v)(*vC^og&~sYo-IJC-k=C7n1w<@zziq9qZB^on%qT;7PJ^3ief%yEQfRQOB0f6QZ@f;F0h7doWJN|_wDdx5dM z+A)nTFav$ql@W++J8Xq&amd}1ca_`vO3u9sCEHsywlh~XP%{n!%uOH6XtfiO1@uKu z8jn8(zQc)JL4PbhH~@>*U`#lHViyKB=aAupVc}j(vr|4$vCs?`f^bkV&!-H|huBnp z-(Od@IAiwHbB>4`v%(d_2om1d44Y2#@`|>-Hq4nlCa>OHmxLesnH)6d`Jyk#+4I9l zk#e{?+<&-v;*L;}?ni!cawM~{CbF^o}vM);+vQ!vchRpl^aOOj1p-t7sO*2_;q8Q8rSitTbU zv+!Oo>)EJCQ-2qsMa3oVl=Rl1u#aawWab`ULp8_-g;9_5>dkHggp!iqd!`tbL1H`v zdXB0E65oJfqiRkTV5c@%)EjDwuc{o( z31k1)nd#HAs7&R6==9gKR}IY@k^)7hqGUvERv^=Sg-=&wx>SW!vj2u z5jpSA*b+pZHmaVVHc9{{E0wNC$J;NF0LH|mLhGj`GJA&WsZ%Lxyva>o4*K&2DaSlC zJCcT6u13Avk)|>U;mx0bPE@MuWYk8uqrZV zrG0IX1mT7~?hf+6?#PQd)#1Np!WsK1Q{h5>Sbu^xke5jMf|h&B31tE^_eASn%kKjf zO1FGPcdEMMH*P*<$`ePdVp&>bdaceOGD0MD**PjGNda83jBo9=Pmu;5_wYz={3 zTwPy&cZApd(k`RyQdwvBWCx@ZGVRQXIz)p-fm#P9&5-Hlf?}oXl@Exz8{RB^g<&?+ z59z#$nhw;Thc(97UpT}jqCX11&;Aku`>iiC7K4y^oOL6j#PpS=<9>OI<)?_!{#cOg zZSK=U&eY-CP*zVdVL2VhsT5WjOM>IEO<~hOz{wi_tALN{WY8bjV0G)eP)%z(NR&i% zAl}$kr2^NY=^iK7=$5<*cb9P1g+(4%Mygosx69Msj!*(9L-B)L@4_Jsg`EmHh04~3 z?VKU=K>3%86>{#vTW^ZWEZpC;nqflQ=)&yjGx-t&z$;YfEL>~8S#+Y|1W8HMx;7es z#FgS(a$HUry2vDpIuG^%xeUI;+hq!P%n3{ImIwVW_dl~J46f9^g7S)WM6`SRI`I5z z`!pdlj3$mwB{i}P@A!VayU0S3Xx*BUpjqWxdVue6sGgrFriIYU{k3NIJ6m(Y?wy(l|b><4)(dNbY( z`4Y2_M?U37Jx+V^NleyfU!@wXEP5K#VA4gvxR}`H8uz9-9a>i0;c(ar(5k=Pjbu$h zpkO80g`a*U7ZnlBI6G6ZgbWiAdM$QYUbWJUIVV9TCYy^zC->dH8ZC35WM2Gm|J7m% zVEZ&QAbb2)2p;4n{3i5QX*+hD5kDTiVW++PN!)fY-J0)SS9})VYs>me?0$JrX#(f% zTt*IXKn0M{Soh1BRKsz_3=A@&uS;r{(lq*MsTKe> z>$L8H=8i7g;t-u38Q(U`wj}G@PnZ^t1>K$0kV}+^g0rj+CzwE#_%j8b-zG8}35^S% zMwTKcj2IIYhklzBoJEYcHjX_nWR2d>(nY!ggH4`^j>0bt%dVPZp}eJLtyDZ^S1Y4v z$jgw$SSzS)g`_aBL!)Vhh~rM0LZW1yY2ot3Q}>1eeIFJ_Ax4rM*2PEuplM#_k$T&K z;i~HQ_gbwV_rhNb@63!6CIyT77O*Z+|CY!@lmTxij%;Z9*JCEF#(Y^(ZZyb>B~m*H z6WV8^SyRezUusk%=*YN+37Q_>XtZMA7h-i`*MHtN0)SXmS|iE7=O;kEL$>_#LX5>tQ% zC3BvVui?Tx(K|sp&5Jr8HceXFI7zC9_B-34;#=mFe4xfP)yIu;;n4(2(df^Vv6@1S zGZ6I`7v+9W%K4tr@zM@H>a*m~=HvxL#l8nvzl2%xA%l5Z|9{YhAn_P_~_Naj`l$e_84Ln>TNSq8-Dl#&nV)cJPrAW=G{Qog_B8%)jFV4VVo4HD(t9tV zhu(V&A<|0%2m}al8c6y zRUwO`KIU18OzfV=i81_F7hrNk2w4AJ-__N>wFkna)74wW5#d_)7-d8VU8$LaFiCm} z`}FfL4Vue(Z_g{;uvhl}UhaKO3^C7K*~?oWv9YyoIKu9OfdLJ|_T?x@LSyNOA9PgnmXU6^R+O4u2Y_Q(+H-&0R#BueHPGHRZp}K5pH!%fiVo;S z)?&Ju9WYv`S&=h)yA3uXhvrMzPxt~H=^ODm>N7Y)x1>l z7NZ~Is@s9;?_^WiX6s`w8DQI2yqupm#)M?GbJ_KI@1jf6EqFRmYvsk7m*7Q_U$Q$# z<)YW_U+Yf%A^3sh6-r&j;RT25nbo6E8&M<=cix zpuDddi`h~Oh_lco^h@mD;G-I;_uB7W+`BCpU}D zpdpR*MJ}c7oTe5lZwoR)#oDGe0%;}J#bnV#U9PwL$_(54+suzm4c%+Otc1Nc)A{YA zknFgpJCEsh54QKoLpmRr5(so=Lq^-Xkq-D6$zht9t|KQz>hKIDjc9R?Y&@I=+cRDY2NDFHsNWG8|H z=Ek3zXN)p02HX(vnlA~2!5yASoh`7Xo=%@mn;;QvA{Z(UDy(sn%(b3ZGCeqTmJb2D z^cZXJ#DNZP<{}fRmHEcLh;IThhC4M34KY#(6+<%_dpo;lp2Z9d6$u;@e>v4hip67s zXkL(r_St(U94z@MhQUXv?tooZrn&uUI_1RwW_G2gr#q5h`*`vxq=hay(QMN$49+f$ z3pRvL42-@h}IN0zZxfb)j*WM zOK#z(RZa9aXAjb7$_a{Mlilp^y${p(YA~8fK|W__dbdOn@n>C93IHMKl{^#}udbEw|KMXOntnoeKP!_ z%o<*Ku;BAC^C8%9?jdHt;;27`ttBa}t;KU!jncp5Op~RQy8R@VtRUzSZlX@z2Y1c6 z+Rw$hB2&Zhz)3&rr_4gU$RZin1P^V8s4ojHJk{J(-_}hwaODeZs zp*Lgojzmy__2%UL6-Q){!bMh&U$XhQE_EAiSC5FEC#WH(fZf*FHp~~L)^_A2tBDfQRuiV9p@AYG)ydPHf z<{~?|E0f27Q=g?%&Vf10Rrp|9%5C8A9Vo%v938*}WVJs?hcw<|LNB#1MVC=`y%V!o zT6%i1d$jrU+Mm)qXQj9`w7@!d-Nij|u!yN_mnrF8TDr zIjA-1&(}Yccwe6zq))YF-r=Cex%|pHXuKFRT9B2Cz`OG%4loZ4Q{($SC1TfdGeBj) z-WkDMc?F2MBLi64F@!hgn#8=!+|s|Aix^hgqM=8vR<^t(1f()HkV&2OQlHH{XUCtl z`alf|v^=eMeWWtux>PSUdcW57=dE5_NN|7esp(=dxtf_!`2u|%9b2)WfuzGfJ3jKE z0uKBQS6%g&yUL;8T91mvZT_{6rkO{jnrBOcn(jr}3|Q(snm{{iv8lmIzHqFtt@;5) z(O6RRZ`*f)H`Z^L&(6o8`=AHx!x2k2;A0iWY5Nu>lCWtP^=CDn=Ea{TD<6v|f2usl z_mEA8AK6MV(t_hpnqU8I$FG6CpgGPX*gW@JOKoem72G?MwwREmtp*y%)~`6NZvC+K zZXpHNS%4U0FM<)9ob1jun~kxB#n0UkKhU`kITH+^K~-{kkw(`P>?SXB|CPS!RnNV& za-ozsH_hpD)vU8h9OhT=VNCEFU)PdiuPNTE#y(&$K^ud}=l1`3-|jOKn09->bX$?n z>X25?Af~>s%GfOH>KKOE?cJ{pA*eH5eQd9z# z2m6WoK1}W9uUFQ`c$4fX^`<+O1n(m1BO`su> zUx9MMMKEl7PK(Q>R{W+YQJ|j3hfJx%1UNv;f?mTG?ZyX<76*-^GgXY>+1}5w zo8L8B5A5aBt`*LP8lo;Mgxyw$vwS+-OX$IZP_(37k0uq^R5Qa(kNJ!gqWd1=Hvk(U z`EYVFPfMct%s-mB3zZUy;2X@bX*PTagIBYzfRGM z*`VAnSgX{^-}ROT>W72532*H_PS| zPB{yz4cS1;eCd!rHsiV?UjknU!G}w<-K5LgTD<#PtBNqSp_zS?We5V8HHwapF<9nH zOn_hG5mvmHB-T5X5k|W*lIi5<@EjoPEdB&jx^ zES#<95qf^dsU=h}f;TCB83d)v=W8IQWBn;$a$-9nb)ct}_t|1gMY-_3={EIHSXL0C9^+8d=u6_zul=2Ig1zs&uHyBpvmV z2DyWQSv{u+9E^^|+nGNsTROM&F|(;Yo4>O$CV5W`(AZ>przD0Lk|kAd`HAKtN>RGD zq2mO0;bv!|{m=R3YEOY^z}Uz|^+|P%mEYf5yQ+=K+kQ*&&^RnFycF`@$9bli|SkQ9%>&pdWn7Mhq2=}49cgM@- z(1nE)jxCmNmi2Lrv?AREHb;GfC4FC}OFbj#B{0_f>D<^CXJMn62n_ksos+>wT-fq` zdr{#rOJMel!#sH3uING{hamcS3Lduolr0rQgX?d@W``dQoJJD<3SJquS3mcHzwF`Y zJ}0W}0arwY=R4=xO1O%jV7HTpiMKxevYzqr9bq^0HVPSmA;S(WBzyf8=TCTIvK#5<Md^sF%PIFrS>zyZ+^+y@r@P0C#ue2uJYcK=Xn(?tIXz$k+a!6>l2|ApXo|1IcNh zaq<_&tBM|8Rr~oa8n-z#?c#%*-o(f%CmSFLvJif{-wn z@!hc!54MECO1J-MXhZ_`#VfwZf3$P;%e{-%;7p|N8l#eNRTV#6s426p@aJh5SR!bc zc|-{n@cg=TpBUPmgMC7K&T@tih|vrE6}`;i`i)(n2%K_N@2sRoRwtT}?`@`oNk_{4 z)n!N~0bGEo5vkD;QwS=sG}_|@iU`zXHZbdqWJWZIG?dIY7>NdW1?bPT3sZo<1_Xos z5QQA`+LfwrCf_-!MeXUBaVmML>8ecx>#FzNchnIW$mTGpYdcUM=&jo9tTG5k<{>04 zoM0r5_08%e&``d)bN3a@_RZcL{U9YYtyw-xDin<@kTfNreE_Dw=+Er)Fky>jDdy7% zu*FW>{?i}r{g(ioivG+Pj@-#Rs~7Cf;XaD{U5bj*`I&0g$$1Nj&AGoGov`+bZPd4@ zI+?m9MA@KZfghFFit5#osrLn=qpQ_o7>?YbvJ6%vivWG<1yBt zzAil|(FG&Es2lwv{+61UR)6Z^Wz6R5rDDTLDGlfOp~^7o6-N6WI|?b{CliJaB@>7S zyP?Yjvt5zD!YcQhx?=YnB~Mow;{}qbTOS!}#1R7XdroWn@f~*t*)_lMzIsrn7Y~VA zq-!oKr?&jl>b7@Qwl`Z|b|0h0q=DP2Zr6PZ#ot!;ps!M)#ydw)o;3+&dAQx;T?|v+ z!*tkom(zyiwUBkK?~EkFf~lN^Wu3C$_mc@>0& zr1H(4>V(FeoC-gtP8xBZ>4u(SwbnP}`kAEtvP)mR_~{)EJQ5>hr6-$TiAk)3QLk_( z5T{9I@g5eRAT!Hov~QAzBM*{*MPQSRSL^SoiKI=WFPoO1Veex$`d-wTXBd;LHHb6VsNUz&u_1B=u)^45R^}GNz0EuUWCy%x|!{ zNJ(g(3gGPP0(%PjTKaUmLS{t_(2^6f0r}IDzF}WzXac{8srbpD-Sf>I>2lbg(J41; zjY7lNg-b(O7_ylrRbHQUaN5c}u@&`py0UtR^9FXJ=g2z}Y!9S*3P=eta~43Pd<6R8TVEGy1k5c(q;CyoWXE{sw$LyoIUy~Q$lzRq z^R#T@Lo;@k!_}JQt~~85)b!_gN0M%()N#QXI;1aIT$|V!;kwX6lJkt}D z}GOb)#I-}+I(0uk7eFJ^Qo23(w|ztwK;j#Ccs|xX6c>a9KSB)WPR3@Xp$peL(CuV`kgrGYS*QgpF~nV z3P>boX3rqz<_kofu4m+y>RnsJTxC7S?#m#6wsu>iCDNP@50`HtQHhDQqT{QPB9p-ZL z?D<5Pd^yZyA6@g@D8M8sT#7x4ng{%bD6?q7*5EXW`@_hFxoDh-lGJEYAJE`X^6=ww zv8Sw6m(ZH0Stc=9w}~{C(i~Cv(Pbk|BM+BJ?u?b$P6lY+b3} zT>VVC$Dl=;$CS`C=rS1iQsHmRh`1r&Z?KZSshQZqBr?gQ6{l>m0&MB7A_Q!w9YjO& z$)SQxHpY;EWh41!AFfl%0fjF0EJ7&UFSN(JffrkBV4yGYV%N5K)9z=P85GRnqg3r% z-{3^<=MZx-u6!*6I97Kawlou)oD*5?xPe-YILa#I`%_%?5q;sk9n>NO7`&uv^D-6r zA(t*ztifdbRQT)tk9_PecM%4vjtUV)g8m`ws>T5Uh77?EIq07J%}r_ktvk8fTU?L# zo{?H2|7(v+h}1t)#9^Z3A%7Y24qRjfNd48+#|$TEFsmL5_YTTgOZ&iA-d`1)SqY;~ z%1d*JSt_boJNLh(jIeC}fJnVPw~vX5AqM#!`abtA`V1XM9_}9Vv0feeT>CNXX?8sM8)cTWfR?Wjh zF+#$KnFC<@qg;(eNS@V@_j28Hh`;)lq$Z+adFCh~#L~XYA5tTK z^Wxs+XAOabKPuvESlR5iS#{tc1hq=vkV4z8D}Q54Gb4>4$U=CZ6c8Zq{entU%Fb;M z5)FDiqDFV^P{V3LYK)X~N~#EReo_=W-%6{FN!!8BFPD)Dq-PQ1xu7e? zZ$!AYL_@uL>;YJVcQ`YhV#U1%mH67v-7dr6@dF3UI=d?VIGRwk*gI_LkTqXcgPDn} z!EIo42H0#1F<+ZQFa5N-`W2dU&PaBCqLDsOW8a1orVY@Oz#)NLmg}N#P_3IHoN&rg zGNREuW8sH!VbbVeOJZU*wWB)EhiZ@QkIO*ygyQVKRzn-c#v3(}HObjJOT2wR3|pDo z(jh*yjy&febKmEsmP!MwG){NIZ9#pbB@rZ@IFP5CAR~plnR9K7zN<$UN(DfFqf6aw zLHs1&=!2?zlIiy(PMt+1^&(3xaJNNWQbtf-ZL&A;yAGga+|_4+ZqWYpDy3y%7kKTr zRBJ~FXCjwXf$B%uciFPwh z7iFYdn*Bdr5r>AV1R)&w<7;0(wT+FA!chH&4=~5yhBH=iY?-vYT^n!|uE$BbN zes;nLocNJt#d!tCl_kZkv;{=R{Zx&<;WdnX{?EMW*qFQY0`JfDYmqni=-z|oQxUX3 z2H`5G%VBvUNQXT{Ckukh@8HZ_(>UDo_o;f5k1>JUNHN#q(eN{``=@aZz;Bk$SKHcO z+CB3pd84(plcjv_W(p=YDci~WWW*JPZUvUZO) zPy0!xJLd7*o|KKDL!2UsquMb9XZ8?dRp~gzdwt%JBW>&t2IIJybl+nZ|1TaILP zX_D0d`P2AtSr62w4g;a?O_^n+p*b1hasdS0MHH5v}c}f$aCu7(d6E;hoQUhsSn^Y5A=Z=>W)Da2NoM>Gf z`!jRN^d-8cBKgql&?m%F4`I|S`V^aR7HnD4|4%CBd65ifExph{$=mM-BkcaG-mloB zKJQDgMScG2!>pz=lMv`rwPC(a6c<(NQT5mm6}`@Qj*(yAY|KMDW12#OES;U@F-@CB z{V7`Udj4UoSfge6Fe5Bl<5(BHY9l8 zHLK~HlE4dA;Nj#mH`YI4eCTqdGuaDl?19KF9UuDk8}4oTx}mT5w!FZ9%LN6J@d1sZ z(^9jag@plaWtswVX1F}rdw^MopNE?Tv*0Qc<2u5YjLgNbyK04_4)(gbuuAQOPf8R% zVmM7g(uB8JKOqHn=8=&ObPn!Lhoq#6lleEZ1)GO)PwDhmUKLBTcSOG9nx2}RUgV=L zVuy5RGuG_1=6f^VZ<0Ku7$yNLVY_TP*XAldzVTSz!tE#;4>YpmcYcf8j_506R*um& z2Xrp=Fi)5jC1iHVrkT(&d<0T-5X3R?Rjgz4`wV$!f^F|2Y?FX6^qJ}VGhfu@yNEo> zJ5Cg@_O*9|7jc`~*GEoO#EB};;%Fv;?(#6rK%@gR>@$lq1uW_@*xZ~27-pHcEm=AY z6xpw->Cl<$j{T*@ihTgK+sZh(B~thoJt#1lr68yuA0?-I2-;JAxgtD}#?E~2&e!n* zX7N72i`QSrN5x?w4ftOxsU?W>eDF#1yd?1MB{mNWwy|@M&DIA6F=!POi=KK ztIvKve5*jRI6eE_%^=}Nk-uh9EOEG9h1WK_3iDGn|FYLyo5x932~xGKf<0`y?`BeL z|B3ptt2f3;?KS5*z^Eu8Tv0waG_~wHdY~_v{SZ6biBYn2CT_`rFC*+%_aaw!2OFpK zS!tM==*Pd%m^HkoGsbLuvutCFe-1Na4LB1|*l!z#T`XAQ79V0L%ZRW^>EQFIKE{#* z6rQ2L6oCJc=aJU?geLlvb2N1e=i=`9ov>-Qp9;&7d1{hhdY(y@EGAJG=%C_;U#{QK zgbC2XuAN{sh))^^lDz5xoY?OWt*}b}{uPA-AHiB)3j#&GLw9 zYwQ!x<*xh=1t8=ffa-Gb2Yn$by+Hq4!dRHBzzj@mR5h1O!%+n~<0fhKAo>5z1=z>q zai%<oG0A3K&V8uxE-o~C}2)aZSvyv|1mIJ_$e*@e1&hXnj&Q)AA0?qU>=}bx%mriv& z{lO1Qxx61&AXzVF->H|!0}){Qars#Pz)B;B08C@5e&{=ikTm&?Olq+q1FyV=WqtT& z`GvA2APNqw37lM=ELPhvO2H+$1}7hw%av)W@geR()q~&%&=iTo?*Pn)m;Tl3q;rc7 z19<9h$oF(A6zSK-6Nr-1CMhGFRSNuxvuLb@b68;>5WTCe`WkOg?XWXMN-(kj@1&UweEqA3 zlZ4_SyLgTF)?(rvcA0TSCvo;S(3$-9PhVX9_0kvy)FoD!&~x7Gwh6h#uKVmV&evWm zJe@R&>r8bw3R-rZj1B5c_AW5v3W)BA+;A0VP4d3kM~uMGSltHSA$o2`LcF2g$K>3L zB=pzcn^O`b^Owe zPn0t=zU!#-Z0T9nV5Sr7+A4JiB{_^{T9XoJWZn7Lsy0@D%{olyNoRHiLn#}$4)Aam zREh1Z!y(5?Vi5a!m8#?;F(TU2(=*Sh0j1*!H^0ynvIsFBePia|V{*yjRn zwI^hw60K258N;SCZ!e`>igN1WAW=(n&n&Z+>dysNa~d|na!l)W%FjYtX*i;E|}a<0-t<-jRTPJL(4UPvOUk zg#3A8@B0+HNdbr^jcTG4@c9P+5`5%msiGwpA;WtIEZK1n*C3p$lmQ!z*&Y+JZ2u@B z`fr5c{Jw(1`z^R_r6EpK_P;7_%FLHa|CN6Gr@H;`GF(DfgsL~iGc3;U2*^WU)qH-* z;wkYDx4i3nV$|`F8F~rAvG-*E17(0E-w&<{EkUAPxP%J0|7N;9*qx`NB5?DJ75jXU z1PTR^23q`)RsZ!6!PODVOmu6haR>bP5l+jlx~n4a3qsfueKiMty>7X+Bdy%u@~=(* z-c#`{r_eXF3-$INz|4)NGMY)T zufLwKNMG9jVl1O#wDW-)FKfNRKHoE};2$zvWwEhjPm)=+vfU;eLR6xZb@C0K6sA#tD4(JIG%=nQo0 z+0FegtD)#_ZlCXmjA>k$0E58qm!Cdm!KJZDeOG3I_7Rc>Hnp$!{9&f@WAbsyccgr|K}kZw9(GL^XQoWzhcSn z9oPSqP_vNk_W$hexFTHO3D;XT+{1H(SRyeP%!_M)1k=Kw&YSjl`ed;e^6jzLu(!v* z_{zRmh^hu39o4vA<^&O!kpDdB|AZ5BRr~iGd{4l8pr&PxYXA&nf70SUyy0D3>v(LE z^f5;C4`9{^rEoiF>|Vo@y7Zpg5M+b<)nmz^mOEyRHElyFLbz;9di2nabF~I1;Yy$^ zIF=!ASJ*aAg9v+>J9l1n5%m9?1ZIdi2-=hs&A`Wm z?RO^M^u-(ucb+og#?t!e8Osi&LvKPNb2i6Gg$oG9+L9xtFQ#Tft_^8DzBlFnjgp+fT%Vl_b5^ z{MSb$3pP~LUzSV-F@AoKVaSO&NFN=U#>31+Zx?d+xnjk$^KYNG#0J3&H1=QC%r2PX zLyP64)MXgJhE49bxOtv@k@eptP^BTKhm;mGL;Dh-k6ktiwrpB!P$AABgo+!+oYXYY zovf$!Ii4hy5kg%zjhB~wW5@x=yuo=i*!l=E9C}cG2i%=&rrCEvseA!1RJYpu%M47o zu*QdnD2HA8H%psj65KpyF;+xhNqkXWr_2Gy0!)u_d1M2cCup{)RtZl@LTmS9Jvu9PtppoJLM_?uWP#aRgi@D!Z){Sl zzB;!$b&gFI54^AJ3xyAwJ4<3V7(e5LM;|>_p`8$t9j^F`Ge4=kb<+5$ayut}$~P;z z6t{E}tsg(G^YZe##YY&vz)&s6ETNYiEii`quFSO*8HFx}CSh$hO>|f9Q(iEDH<5H$ zCq|VvT$6vjcc{9pPZgl@AE1uUURT}L=rQuG1uY!wbfI3gD_|m0%i{=^PjN|4=_<9h zj*XM==a`XSy`=%zVmlsvJ|-~jb6&vZJtDJT{_k#D%i41JmTO99nZO~z?jn{?v5J_w zcZ1ir2U(U5Y--tC`s8wq`A&u_)5aTN)pLg0b+bYC0W0m_<6`9Gt36D(EPEp zE_zLVKKY&H?v-AQJ^a$(k^eZDj#8ZRV1?Lkp4izIq9bmhq2gyE;Y?<&ZA|F+Ju6B3 z8NY4q_~AM$>us-)2y1eBN>()=m_Ux>OTHeM4GfKC)h)vM1;Ufap^08{-Z-_N--{@8 z$+;~7=yu#h z4LZtUJ&E8mL`$?&gWd07AE0LgyHO4bccI&NTK*=Y6DNGoWOd)-gDv~f4BM?zJH9xs z)$VtACEc{rC_k1_13&_xd&$b+r`4s^h2mce`)Rl8Ns8D}n{K^+bb(;FS?LQ@6DI&O z47+<1qCx!E+?Xs?%mDf=v^qE^7@pqYj_C=6uMK3fFjM}TS?h{uB2pZaHf9Wm94yjG z<(^vGyZw;CKG^@wkg1$&vn@P9#GLMsj7|hDN-|+@sQO^>ikuPej~UleH7!Yq!EBgv z0jMur?uMcpwfP~8#bO{Gw|Y3_jF?85sI(Y70k|*K-g-Qh-%@Eu&wSxMXWx}H#wc`Y zg*Ip>E`YA;&jHG-{-`(Y2X*DALkNcUxT`kX3JW@NLhx}zoA0x;xVHS7>zWm=vz5J5 zfF}+3c{U5veC4wj*2@pZTYp`|gG=sWG^}AlVZ9Qt1axAjBB#gc^4eVD9+nY$+|f|m z1-RP>_0N3q<@{{41r?)?37P5GM%WbZ}R%4Az@ z`*gbd%If&t;z7u?+oz07oZ37(hJNP$?**?PZ1~uZ9WAX+_)1{f_*&luxOg&x z1k~E+&3h$^g;GkCg(#7qt@6!yX`&67`G$6;g*g6GsqNjUsZLam6;>pnzu?_)V~4xl z@}GOFq=Xv$?+_8> z!`j{Mz|$~aZVdrgeNYWGIF%0kaCU@{h&CFIl=oHqHB>Q1#Imd9Un|Lh;6mbeyUX*0 zUo4PO0`!XvN+NlK;pFFya)IlUUG8Y&z0v&4zATMG*%fcAQe^A-5JzB+Nr{1TWZ%2m za%y+~j6e?khZTgeD$Fa+O*K$H`?3*qt8TGoD`E+bP*?}%PV8`V}^g=-GR6$ zAS*%Ci^28FSl_<%oNo>>@Sgn9JxK}4$baSEMN z>{j_A0{TiDqmNoMdxo62uGBg7JLC?TVfrXYD##5YB!QJ311fsGdG*ZnN6x>2 zMvNdXUhFUXT>jgzPV~SdRL|>IZ;}&5?IVzs$__o2d-M41z?+p;HduOTf%ONgi3G7Q z+r{JUMow=tIRNZl6kmLa8zeE60nAZ|ly!%&J+|9DKB+Qt;j|yag)&S5ua9oR{jn<_ zPzYp@6?|hdbWIJo2sM7 zoTemRk!tLkc26Sm+@1+Piqf>FW7RJ!%^nd}WYuvaQakYrRm}^po~oMH{<=>`?Pu1yQPeds7g z#vYS1LsQ~`OJ^3stAAj+@QhV6ifJsT3aPFQ(}?FQhqQE|f^5su(%O8{nYN52(~Mfx zAjYb&3|S$%+yec0w9R_Ng8FgC?#NYrr#lHdt>Er@W4sujLYI>H6LEI4oDbU5eoO*Y zKV_}R1b0i1eoe5FKhSC73l$^5d!^$u5NC&{pkToDRnbV?U6lv#0jnm1&LX1GR@&lp zLz2_;yKtUwETfPTE3P3OC@z+*nd$v~rQn=%sq$wS{mv84k=B|}ldjly3lwpi|KZ(z z!J8MI?liXA$?uc1eR$1LCBo7uvF6n&;YfiG+9)2~!SN*R9a+eRgZcxdwIwjuyIiccf-Kb{ z>0P7l_v!e+fQ3jpAK1U99R+ycvdX&L7lq?z8M&TB1hUXMfdWNlPuQ{B9rFy&AM|&j z)<)QN@%)^eFe05}yj>!{&pGvjb4j_K`0HX=qa_sH*{Ih>Cw+I3%KP*kU+1CrD`5)j zgttYu%*sKJxVZbJsuvT62~K1yXMQkJCjSc_^Twgu8|+)8vo|G~$=4g7^dCjaVCCOT z+X;za??SRb(FjB08mrH>oJ+H%>X>gv-2p>BBcn(>uzPgQ6@7Frk53gsMV=<}n*m=zESNLWZZl(}{m-p&{gvEyHWdl(nZ@-QCAQjE9m;&=&Q3;5D0$+hO z$zhLCqfSa^a+BC53f1^hYLtu#)*|KR3tT4MZIqWf*u}i+MhUH~ZHd5!_8C?7FDC2} zjcFNLn@eZYYM9Qe=2pKNnKR|v#co1y3(o#ZB?RY9E-w7}TVqMCO*z zcXg&Rr$f)}og;8LI-B~gKmXX3+%o#7EXWI7g$)h(;&8ojLyptu1hT`X$JmVLc^Spm_qHXxnY#6}%?TLow zP8c8)h?uQwB=m)N1~vH2ni7-OyCLMrh^A-Ul@lm2GzWRy!Sdo%L1lze@F|x6ZLQ?_ zpsRF3sP*^EX;0pmS)M!^L+Znji(*jaV+=(tmiGBL;dAqrtC=X>0qptlVu0fn)NHVh4`$lWtYjF>07BE$rffw>~rl z?Qe=W?-b&jv62u=i%?9NluTibSA4N0!%Ihk!}K^*Z{3Lsy6DpB$ko0JMGg4)!Bqm4 z)c*%>`J%}_lTvh6D6P$r-h(>gz7G|RDjFfip{r2}FzPMRcP{3mVR^fKZ!$RK9~$Bn z*H1*Z$O@mok0XW_T8=_*Z?LIaa$QAXm`+p<~sTQw^6j3Fzdk0c z8rm#x!Xt!mc_{YE!Yvt~4t1g0_jckqDGj*;()2g0@0#^>c_rDiST1JXOuU=H!$F5pHjq)yc1yQCq;oGwSs64Nv+oYt?Jo}R%ds$%8o&KBK~De5SLvj4mc{h16aOBO&P$Y(T+$tC>*VwqsScX=d?gYpQCpqW zU%h1qfZr+pNCKT;k@m3Ma>y7yIL!yu`v6s7-+Z+92;CBCu{PWBdxovMNMUJOaU-XcHcN}kmd$(sD?2*Z~#95v{XmnUn{SN*N+d6yqjyxy{_ zy;bWoM{i0S(3x3(J7gXhQ2HUKddHkAJiq1i3*%7nnReneN|*W_v69xSNu;ZU*R2Wcwhcx*!RUy4>OVHYSRD8uM{z11i=O%4X!&SPL<_MTCxQ>EC@ z=1%uVZ}K+MBw$omXY(;Mq@eNln3u1+P#&dN3JVtsWiDw>tcWb;Ll4^dm)Y<12w~?B z$}4fhs|!`^Dg0dsVj7MVG+RtcO4%o$R^AT+@#8_9al?-_OBFTPy++2)({|&A^ZOpm z`|yjGZG?5FL?HtWVW%}7Z}N7YLKuYQvHc@8YS$9tJ^h3$b5n#_@ z%`0iG^w)B(byigfiQ^j~@KKaZVYDSS8QXVXGbP z@>2d__}SZIMlI4!$yZ)@vIROK&T^=lRhnO|(;QfL|0X`DzA%nRrikxe4<)RabT&5VC^}w!TjPcxig~2}n|YQyKzd z9LwngPNpK&tzd`ftAVlGG3d=6^kxZ=O$|ONN;b>Cxju)%?MJD=*;`M#D=6#`lCO!x zR_g8ayHM2p*Q)S1l80cefb0`CrFr#TOBN9UJTu!LZ5$d$!b7WA2vSoUS6Lc z^ai!^f83{lPJzi1j7&xh>ET~09vdVgQOc}_GsjrJPWN=t_+L^GZKk8YkfAzHkD@o? z%*p5$%>G`hFICpO+{deWiB0dUoK@NS#w0U?1u){1KkPGa(=XwW0*x{=-ekv0YDbRw z;R2ln8bc>rog%YL*E;o8Q&Tm;4P!Me^AA!@dba+XyE>0Qc!eZ;nr`IVHuo(~<_GRH zj(C~T%DA23=z&shXZ=URbe&^)*(OG6J@B8H6!*MQVsK!DBB*sgsbg$un;AXJ{`U!Z z?g}7?i$~;UosRwrhzCuQK!f+jmaOc)(p0-vPzN;p42`<`XuPO}B)?fAB6G$(-}?b9 z#zL~37`S}A;hRnX_2`ZMa!d($)8=$?g-XUAW49lVDvhbJXH*@pE_9B~S#>Zl)Jn2l z8|(FjK&J^i-QzApU{fXhSLO0vAuQbH^XJT}l{MbT`NZi^32SGf1QS+O1(HMmmE1Co zKaIU%a4qnShN%3_I2X2h1Qnb7`IEdi2R1W3k`Y84)Rd3QI2R*k{kg>R{i# zERpH_9#|Icw|lvyF(Zns0e1m_AjH;-GZDdod_hTS$U`u*n~hMr zT4Tjhn1AG|`_b~R37iW;Pyjnx8Wt9f3oQW3Oe`;M79#f%N8Ta!m^wK{Wbvow-woHj zKXKkDoC8bi%OLye?NKaTs}yIgQ-kp_ZATB_(DO~tqc-@K24+A~0Bd{xf&^;Off~f@ zy!r>za-zvdpa;5r(5qlL6!#UJ>ke3en^rJr-a1aZKS!hOIOO7ga{>PM-z^T$5M15j zp*je2EZ{Z^DyW63L0+BIwZ4E#C0Jy`*uJT?aV%G$PT`i9BC7pGKkh z9(zKL_^5@$r3H68hl@rLnPo4ibmnj8c9D&(#=g-z|7}SxM?@he-G&Gpxd3P?#d&5c z5rxL-@7^&zy7-LrOm1wM^@iskVE8vF%aXs`FO$d0>jAZ+JANIgcum9*+;qr?1rRRzO`q{Hx1G0 zjgN2I@Pr7M69_E)^~nDBHziLp@6D(D4s~p4L4NYz;@6}Tz&d+~At8k9B$WpI;hPPJ zwUbfhcN5!5V&}-+b-uG@HB8$ndWuXSMrP;D=F@mjo)8A*H(S8T-_lH|}XJY)Bs|hufaz~7*@$YT{CmcZaciFp&TPMsw zgq2ETPHiI#+BB*?DHCEIV#MTCT89Pp!tWe9VK7^(!y1pxEw2L{yW!$1IYV$yJya*o8mQK$;AyLs;$a?m|NG?UsmcI%c9y@5sjD<=O7Q zc(+Swf0?O>+(YWmJLh{tLP6D+Aiop5LFPQ399!ZqqkAW!(O%Au6Z4w(e%AlOk3N7? zN79(0NOMLl$wqizD~ZZ!k>RfPyLwpZ1P)Qx1@?e9U9kI&RNy)U3i>lPvUk+HJl%XX zT~3UgbSY(qb)^`rjX%q`TR|A)rZfCDrHgVTM>y){@gTH zRca@XOzM)@@0T`wnclQ~~_-uK790UO~LS zB4A%#P~sXTlj51vsdYw=@nq1xX8o2t2Z!5q(ox|#seMrtiWmu5$Vb)ApZ$6TkL-br zmVz(lO5=wa6RTcVfRE9Mlok)E(-ldmN2XJu}X_)(Lh%26vSOi(Jk4AO1#(!3~q>`9PsqHs|jIJ1jtWQJ$*0}&NI z6|mL({c_(8P+2*>8VbL(b0-xI>2$$VSPih_i;^M7mj&CM_9sXD2O+Dp_KY^hK#SP67%f1TsjW+DSx_-xX^%@ltH2&{@L-{)j>u!7YJqOacX?s{Iu< zEUrsbUJjHf2y2_8Su7n_%Qy+h5pZyOMMk z>n~RkQ4fd=l8&G;Y}0x$ux-xEcEbEGPbK8c}FI4Kk?%% zS-q(QyZT_@YLXhdN`J%Vv@_UD+EFFJe9wJRrKI$s%Oyu#Ypr3Hq4!kQhcg)2JK1AK zX3K+Tx)vtOiZ-pl%A|wzM1E`Xecz{_nIiCI^F@^C|DxyxHsgV}iVBRao>Z*)+RZE^ z>MLCQeZT~QIOB=FZytX|F%xj=$Cj!hM%XN1Z-M~2QNZ*8tviTmO($A8Z_y3nD3tZe zq;_){(vygKf>2EIxCU0o>{8-GL&&7Ap4GNLUY%i&pGJ8x1G-{7@R%zT^QEFoy6W;t zh@d}>ymtoTcUX;&oZ72bi~kV5c@h-S>9U4U@*72fr00R1feMqcVtaKoLCA=%UvNnx zJe@q5`~Gj9H+#ZGYhhmh!ZWN7CyICT99-;f%1x~07$(*m8k>s#jlSO?$!PTr)n(qV zpOdYW#Jum9aTk8#FDrMWLKmGo|M}x_|2#id6Fhc~g<|40e@9+S(cQ+zD=v;wq8IG-(IHE@g!9)mp8kg(a!x^DzV6?sFY3fs`h|&kiRs&KPV^)_^`;eP(#j-MEy_@y^&!`(Moek}T$|_!soJVS=vY(2$15Py=ij4=wzTIo|ya(Vx-@GECFN&QMtx}1@ zucQ^ZhnWL`f^qp9&D0ycFr|A>F< zA?S!;`Fv`^a!6d6>nYm*jDhVg1G!N_+Od0_PH<(%T=x62$G7X($y^xg2`m{zdhbzE zpD-o~`%ulO|B)-xp=zb(Qh_>k+9&9(k-1Rq!glp7%lY2cl;}JA?J0hPdZN-QlZA`O z?o>TP+qaMHrKNk({i%-dOIH9(6tE#gdX@_pR1pP~GKQBQ!&3h^Az|)T@C8x0#MY%w3FTi11D;DO68*rf{Zv}Ul7rv)xFe%*xWAPDa~af?^fJ(&8Ym|X z%AHVpM2jr%W4`B^IEMwBmlL8apS22l~&YSR=E=kHOtPJe}%O3r_GCsnrvd> z&O6{a{cTF-A8Cm}^0-VjS$)Fv3dRyBet7R=LS&7X_9z+0_>!O&<=m)d>E|IKs$c4` z@0D!oc-eUdsRT9%|3;z2J(meL=~w4-`WCRhAVWBG=x$~kdd{uZ+M}C<-rZ;)o)rb2 zi~~=xL8R%wwC!&ae;n(#tZZs>b~Pn@MxK=}winVaTHf8`Yeh`XvR!hy7<^2)uz#4w?~_l_i~TB z&=f8I*9^%8m{jdZW+FBI@4$w&+ghcuKIq)ZYQ!{T+@|Z&&->HXv3xqN)ECMQ_qmGw zbXPwPZ^u1aj+ptWBMQ~(YuB&w&P!ifunT1ycnR9)R?_JPs%YLEPe1OUGvu82a{en_ z3de0wDbj=K|4s)94{q!WX1b=Q?iHk6wyu|=Y%p>~OMnVA0$DzAMFo)V)#FO5HdA$c z)Fi&&kP?mt$G&R2s{J31bXU;&H5WMgfh7tn5jPx1fN;aRl8H0ChF8ScRs8s;cOq_s zbV66~5(J-6i#FP|V2OJTa4NnV#zhOod+?WO_kM(x-1G;?%yHgZtKED@TS?@y!~@VC4S$Yq zR()iz{D;OLZ_WQ#ny^gWadMsCQO2~vWDBCgO@m4S;wGemj9kUX%DqQ|O|S^6*1R&J zuttI@f;>#{0r=2xX!GV*i+fda`1RPF=##zxnGQ7B=Pad5x71*$(58Zk%U|un(CdL$u@*0oCWlUE9_lmHex^_C`~-l`wet% zpxrwQ#&-Ys_Dv>LiLv|Pm+a>c2BA_92#u%VZ&hD!9fj%(rfSgS;+!WY@ZA_-nQ(QL zHd{+1;M^Tsl}7b0L^ZP~dBCwsO2OK@MrQ|&ZtXCB+mp1QY<;gL})+do#rVPM_*Wq^YsAj;{o9OV`Z#77ebknERZ*{>1Z zD^K(H#9A*AK!T3vVMvz@Ds|m|E*STgk_AlFIWgL+ zLxp!A>$7FPAA0jx?&mO;e6CsI5#*V7qJKP$NpXLC(4`bqxV*)G?Zf-KkRoV`j`Gxy%iV|CHeXL%M!mc0*JS8@p?`+*%L!rIDjm`-4^T za1|s>JOwPM4EM=~ImC;BtwWay6r4^fJPC%^Qa5#O_(zTt+O+$i0GiH|N93b;WZ+uv z+T*{@Ddg%-?i!2MU<4NX!~SzJ+>X8}9&{Hvr(ArJ8vhL{5EWV&Q?@W&|68o?>#n?p z1ujv+$)S_N-;+28e@Jf6%WX+%jf)=J#RpC6HjnL>AH&^6Ow?6r)t46bX7c4{DvX0e( ze9#HU;*8L;r2bp+yA|KvCsRWM&QX&BH<-3ytjLFvZ=`3u7z z`g0WSYcKmFJ>~pHca`w#bq-@|h|tBx$1r5wwW3=*wUlheSbE~)cMx2qrr3c}OF`!> zcwyQTO6_!(!b)E5y(#Kq|vtblkr~{T7gle{cm)foyovk%$ z$Yv32N+USnHMTNv$@?LSJLj8Cp_{~Q?nA?=D_sA%fuIx4#@El=JsTO_m!GM3SN>b4 zdq~MrlY0sBT{OHyLW%gw|@1o)GiZS&jJqP5|;Cvrv|h@ zHH^{~?m*ih^r9?5Z#bw5g_xFg_VtuoRf0Rk!VcuUGER@BU)H5_Xh(S_Dyi)I%xn#Z zL-Qp>#BO3bfF2=8p1_z5Dj`CF!H8gs|EyA)d)rP!)b5EC9v97S4d@1|n6l9}D$s!a zo1z-etswaa&X7py_&~=MdRNQwlxRob+>1!55|w2Ss!d4Z(Ck9}8x1|p2yWiu`ZLT9 z9Ik4|^a5!jE(vF0uAgQ7`iO!31P)J6xLsQgS`-;#cG$RufDEUjJm}ygQ?$N%iH=F(5}H{?mzV<)TgaZ^-cy0Ya;2#&I`DHPIrezMt!=!0}Mpq^~Kc1c?pvOU+H555sK z6LN5xZ~e2zcEY@OPRIQ4NJIv9x<0^;OMnj{^#oy8yGe2tJ7S@dOCs-6XB>+*<1Q-7 zH6-6aYTqLY?Ilgz)oyKuzL#z6cK_1s(=y!BEPu&8XW3$V5V&St_f*2|yMI*j*btP0gdFx+!5t>Z-Adzn%btuC+K z)t^i-f8qM!$b_c+Z@Z6x&9`~7^>rREj;QW*s+r8@T z>Y2prKj%$#E)*EaE_2(R1kvzdYO5a#QH81|Z|SlMoAvAw@`V*G)C06X?a$g-G~ofq z((IpYi=N)Drqx(4GjZ%+pmNqypou!ngwFd?dz(3Ht0WKHnHjzver6qkw7SjxErKNw zB|SRz4hA+f>shsujr86b-_0K-2fTB1`pclulJ=}$--OpVV(y$x;(hQl+MVJSbO8n} ze($g8ulf28#+pJ6tSmU!nMO+G<)*G0uz0<+oc9j{r(a1b&aVLOG{u@nSAO1r>U z!LIp2O8r}~@atmepH78`V^{STMxA+UMTmrWl_139S$+QMiFv~@;3%$w;D_Gg5evnG z^3-JuDOw-J%**&@g>>_#|F7&7J$5Xq^{0Wj(|oIkt}nW`E9;3EHD45i9t<`G@o?Xw zPL{OVkadCja@`tp%17{$e&pOSVc|ivhwayW(Xr0|4MVrv5eVuv|ARD^$a*r{|`3+~IBzsZ?T0hz(;AB3aPfAYW zdY8$V28|M|2jbAD(fvlu@c-Qr!oGiIKqcQYmrzvFO_xjl=~udk`Q0%eL2~naO4Nr@ z&ydS3=Lv&f*B&8l-u@NS77CSRvor19Ww`Eu3PD<^Jq^;Y!*uKBkk7#0G@|y+FA&n? zjVb3;Y)RgeLO$JJdz3E1;nX83f$)#$cw#<92!RV5wt_DMXV4C`m7ea0v)A!ZMdu!;g z_EFR7`dw8)BpJbi80TzC)K^Ca!tpA#^KGNcV>H3X@uVfH7vld5v^_7@qI(xVw2Zf^ zw*jJ6`!PTJ35X`CF%ctLzp;M_q2Z~z+km%LObh1YLdMG4FANDF1pLcXJJe7xcBD|Z@&lIB50 zFDdj!4BVt?)jLzbFuyEBz|PH4I{4_q9gxd1$rSdm-9@`LAwntt?7gvYmqLOV&Le^{ z?rr-;2FF9Z@Y5GqN^kPHq@Nk^Rvp$9{xXtz1>drS9dv^#t}J1ic>sLR*H(@`N%U~8 z*SB+)`}S-gA$&;LMHuQF*WLfN3^p_0Hd;tIDBz%vEOZo$AF9&1FdJfhIakCzG9ij0k>z)Jq>*>hJ;KvJ^1Xtr}9S=1*v?&Gd6kT@U89uFH z^98=9zESOb!cZQrCYDJG*!S39y5i1jq=w7YaRkCQ0T704)5G}^2p#M9r!?5(ZMft) zqV|-nng%$l&Fw-x*qijNtCOF33T~xR4jM?tdz$zpH8a$EB)fZ>*guu#im%0r3!RXhpsR;s6ea;vS)pt2m zBy($jbOR$dI81Y9juX!PRSWJKUzDsEIPOi`#;Fl*!eG6>iNiaQ+a@?n&@V{^*4 z8C|5gWABXq?$Igd0l<4i>;bqD1xvRX^S6wY5pMp-N|bJ}>|=)XtQ?3t;P=Crs5(;@ z0JX<+RJFm7mcYqDR4~2&nY4&=a6oSFjrjMlr|Ja)pExAVzED2Zo%+ZwX@S#Lb9v5b z#%&eBF7R>|(&ujY2Uyw#+~I{sCvj!^*kFNlydb7Fj$A#Ek@@{LR2m)JV_)@fh0DjW z9?ul-u3$=jR@^e1`d8^a`5761>I=dx<+=1Q9#+7f*#&_$(2B?wT(^ z)3AXc4BBx> zOC*FVqrY>IHMqS z>X-62)}G@)-K;|JxTk+JNC=}oqZpOo3X2e|S>KBEMssjt42IMkDO;;vGDM69mxJ$A zYD|2w)Ea+gGf1cz8eTEID>+x5S9HWwal(qQEGCXz#G&lcN$yS~Dad}F&y|cdrF#Od zpZQ{~7iJmeHKI`uCPd3vwMtj~{%`i6S-at1grEzs$!qS8lFr)QpnjkKK7%&9pE^s_ zn&U~lDN0B#;M_{nm^Fg^U!1NNl=AkM92la9mgZPE@NJ%hr7r(hI3DhtRq@KWl!Z?~ zp39*dZqHa3$?jaop!&fDOF=BTQHd{Y>RHNRd58a}IoZ5kP2Ptr^!CmnjW40h_uqc3 zu*D+Bn*eph-ATMPm{>D=Dao=>*GZ$*U;RinK`Z*<0u(o4F88m5gxnrkWleGXCanCq zx7O&HUTEe(Bq$zb$-c5pFaNtbaFwk*O`lM+9!!m1P-4WWPz}r%xzmLkPKGcJjQd1U zl73oDBCIVJGCtanMqAS72;R($KTWc{xopR1WR|E|ZxJIc8Y`jCkmC)|E_Tqjr;Z;iRhFM#+o zXpSFneOtG(ws~{ujWkaB{H=gCPC!GhxDYQzfVx$gvhF15V$z|O?uD-t1?iz|{pA#U zhSK@Q%>g=wzJV-njGft~g6f^t`$L04s$@fkSJ(tDD}2Sz?3lv2{0uOD%Up@UCD0jXcWmi%yUe=W2p4Uq0$I*USU(g!+D9c9hGuyNaOZP9||fSuCg(>kv%cDoJM;h@qm5aZX{-6x~~H`jQ|~ zkOjo$KI-{TLR&gGxbjo9L=(o}<);BU(@k9}+`aSPrJ?=k9|b-3wt&|GQoA5?w-Jbm z2wb{pglq+%1`+sVvq}^6m8eH1LGJ|}lfd`Vkx9I`Q>JwOxU+gNa@n?YY6anIKM=Wr}|Av0(!!ycB1hJZi4+;7_6u58-Tc;#^%g@3h)FvKoxT4VqkeHv;oMiK1*A}Tpin%GWu{EB>f+qpjcw2y zLruoSV~>HOF8tzY({ns5bvS90{nm798jE26tauMCM#B0H$1o%Wa(@YueeB(%A3v*g zg+(Q9CXsQ}nQf=N#j~-g#^gHx-4byn=i7L#m@trgZSKazZaTv*V4l zv3<3Wg<_PKgoSgBU^q!hMkQf^;ZqCuT2}7MzbgkjG@AgBBZUr+$g)F0dNjsy0|yVYHLO@TJz718en8rPt2Fm&Us-PkIh6sWRQ z$}raMo0%MhzBFSk`TKHuvc&-Tk;}r7px}M`4CTBGHvCs0{C)ext_!^H(QVmP%>agy z@mRjvZX|#%X*S5)zQ^-RdEu_r_N#+~_4A5Xd}rm|ViL|>la!vp5~ZDYbi}5*)zykY zwHLXDCDIJQa$SgGbzgQ%2fI)n7;#E`>76HJ$JI9T#Sc;6*==M7NYi9B|$Lm{VoG&^dJ)>uzcIL+~h&1pD zI^1DxYNYU&d&Jf6tq(3>CaKeq(m7bVBA_9cnxfTxX>xU0#r}tW6wlr+N)2Ar%XgV_ z_N%@|!f)6=S;;<4e<{_P{OgGkXVU`V=Dfc_i{};0q%9kq%c%y|*cca;irEV|i7!_b zF*&NJzi}7%ZE$UMa0rwd8;9iYz)T*2vd5dtcJ+GFk~uCcD$|uS#O!;1lVyJj>y0Rn z{Y3We0URYOUNs1Zl7-W!665`ld^qf3kx(xFC?{kRRpxvZf$~K&<3xbN%*PS#8LW#kg_-JPXwZBNf{Z>1IZBw5I71v$CHs4nTlun|4d zx>I~`r7j*yj{qVfM0HQvkiB13$FgA_S0JjL%es>3l6FrrGOGqdq^TV_A)g|5QtLrT1Fr!bp zgO&j1W2aDQ`u%C80P`#FtmCg~47v^1G)WAEjM1lrP?ioU#^``&^y@ToizLtJ8#S)# z>$?HO^6F=nUsJMEpFsU)P3@OV*1L7NsG3=<3XdGWM-e&k%i&So95IDZtlFdXYahQX z6I87li1S=^505v?V}-GarFFWH72|6d5Ohq>-AMu#$=4fnZ48JYqbf8$p9ep7kKfuF zg;c>c6ZF=K!MX$|;CP*(BM}9HvcV^nM#5D0htY(7Ti!q4`G%h!6elB7o(pN91-#rv zW`4he%G}S8#}d?+QNirz`8zT*eSgAn&<)+6ogI5z&#h+J|0Hy@H(h?@gry+SyTZz| zn55)y!_&)^`il$?G|6Js#;-ex9+q#=9}W%41FC^#Y5)j_u78e z+xG)>w7H|9rcHZ_Z-ly%Ki~{^XLW3>zWuy5HSfbn1c+WX>;w9!0bBM%7rzFt?)&;V z=IB$>cHucs=ptKtn&wer+v}c{_?{j{Mq+JJJRiRd1`Q-}e=dMnR#$0>;x7>ygV<{S zJn|&0O?sK=%snUUbP2hzxSFbtkmA9l2A9`SZP0jmYKt1uhp}ZjDftBj?p1fRwbAXn zz3Q9uFO^-AeQlv&?i8uSszFbfjFQay3aY^^Wv;sZzTo$yqSo!~Iki z6zf^E1E2hzlzaz{`8$SCl2mwLPD zg*=b)dKsDx4H#x?@8s0FiFcv7Ng(+(;B$^mWuj4*BBh= zAl$35)TLm8 zOQwy!xSX9FFI1I%829UhzRKnXt}C+o6Rg<+QNV9Q*=@gf62CSh@VzzOj6_H;6aInn zZJ!XIT??Ghd-ogR + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include "sdio.h" + +#define BUS 1 + +#define BV(x) (1 << (x)) + +#define MS 1000 + +#define INIT_TIMEOUT_US (2000 * MS) +#define IO_TIMEOUT_US (500 * MS) + +#define MAX_ERR_COUNT 0xff + +#define R1_IDLE_STATE 0 +#define R1_ERASE_RESET 1 +#define R1_ILLEGAL_CMD 2 +#define R1_CRC_ERR 3 +#define R1_ERASE_SEQ_ERR 4 +#define R1_ADDR_ERR 5 +#define R1_PARAM_ERR 6 +#define R1_BUSY 7 +#define R2_LOCKED 8 +#define R2_WPE_SKIP_LF 9 +#define R2_ERROR 10 +#define R2_CC_ERROR 11 +#define R2_ECC_FAILED 12 +#define R2_WP_VIOLATION 13 +#define R2_ERASE_PARAM 14 +#define R2_OUT_OF_RANGE 15 + +#define OCR_CCS 30 +#define OCR_BUSY 31 +#define OCR_SDHC (BV(OCR_CCS) | BV(OCR_BUSY)) + +#define TOKEN_SINGLE_TRAN 0xfe +#define TOKEN_MULTI_TRAN 0xfc +#define TOKEN_STOP_TRAN 0xfd +#define WRITE_RES_MASK 0x1f +#define WRITE_RES_OK 0x05 + + +#define CMD0 0x00 // GO_IDLE_STATE - Resets the SD Memory Card +#define CMD1 0x01 // SEND_OP_COND - Sends host capacity support information + // and activates the card's initialization process. +#define CMD6 0x06 // SWITCH_FUNC - Checks switchable function (mode 0) and + // switches card function (mode 1). +#define CMD8 0x08 // SEND_IF_COND - Sends SD Memory Card interface condition + // that includes host supply voltage information and asks + // the accessed card whether card can operate in supplied + // voltage range. +#define CMD9 0x09 // SEND_CSD - Asks the selected card to send its + // card-specific data (CSD register) +#define CMD10 0x0a // SEND_CID - Asks the selected card to send its card + // identification (CID register) +#define CMD12 0x0c // STOP_TRANSMISSION - Forces the card to stop transmission + // in Multiple Block Read Operation +#define CMD13 0x0d // SEND_STATUS - Asks the selected card to send its + // status register. +#define CMD16 0x10 // SET_BLOCKLEN - Sets a block length (in bytes) for all + // following block commands (read and write) of a Standard + // Capacity Card. Block length of the read and write + // commands are fixed to 512 bytes in a High Capacity Card. + // The length of LOCK_UNLOCK command is set by this command + // in both capacity cards. +#define CMD17 0x11 // READ_SINGLE_BLOCK - Reads a block of the size selected + // by the SET_BLOCKLEN command. +#define CMD18 0x12 // READ_MULTIPLE_BLOCK - Continuously transfers data blocks + // from card to host until interrupted by a + // STOP_TRANSMISSION command. +#define CMD24 0x18 // WRITE_BLOCK - Writes a block of the size selected by the + // SET_BLOCKLEN command. +#define CMD25 0x19 // WRITE_MULTIPLE_BLOCK - Continuously writes blocks of + // data until ’Stop Tran’ token is sent (instead ’Start + // Block’). +#define CMD27 0x1b // PROGRAM_CSD - Programming of the programmable bits of + // the CSD. +#define CMD28 0x1c // SET_WRITE_PROT +#define CMD29 0x1d // CLR_WRITE_PROT +#define CMD32 0x20 // ERASE_WR_BLK_START - Sets the address of the first block + // to be erased. +#define CMD33 0x21 // ERASE_WR_BLK_END - Sets the address of the last block of + // the continuous range to be erased. +#define CMD38 0x26 // ERASE - Erases all previously selected blocks. +#define CMD55 0x37 // APP_CMD - Defines to the card that the next command is + // an application specific command rather than a standard + // command. +#define CMD58 0x3a // READ_OCR - Reads the OCR register of a card. +#define CMD59 0x3b // CRC_ON_OFF - Turns the CRC option on or off. + +#define ACMD23 0x17 // SET_WR_BLK_ERASE_COUNT - Sets the number of write blocks + // to be pre-erased before writing +#define ACMD41 0x29 // SD_SEND_OP_COMD - Sends host capacity support information + // and activates the card's initialization process + +static uint8_t crc7(const uint8_t* data, uint8_t n) +{ + uint8_t crc = 0; + for (uint8_t i = 0; i < n; i++) + { + uint8_t d = data[i]; + for (uint8_t j = 0; j < 8; j++) + { + crc <<= 1; + if ((d & 0x80) ^ (crc & 0x80)) + crc ^= 0x09; + d <<= 1; + } + } + return (crc << 1) | 1; +} + +static uint16_t crc_ccitt(const uint8_t *data, size_t n) +{ + uint16_t crc = 0; + for (size_t i = 0; i < n; i++) + { + crc = (uint8_t)(crc >> 8) | (crc << 8); + crc ^= data[i]; + crc ^= (uint8_t)(crc & 0xff) >> 4; + crc ^= crc << 12; + crc ^= (crc & 0xff) << 5; + } + return crc; +} + +#define spi_cs_low(card) do { gpio_write(card->cs_pin, false); } while(0) +#define spi_cs_high(card) do { gpio_write(card->cs_pin, true); } while(0) +#define spi_read_byte() (spi_transfer_8(BUS, 0xff)) +#define spi_read_word() (((uint16_t)spi_read_byte() << 8) | spi_read_byte()) +#define spi_read_dword() (((uint32_t)spi_read_byte() << 24) | ((uint32_t)spi_read_byte() << 16) | ((uint32_t)spi_read_byte() << 8) | spi_read_byte()) +#define spi_skip_word() do { spi_read_byte(); spi_read_byte(); } while(0) +#define spi_skip_dword() do { spi_read_byte(); spi_read_byte(); spi_read_byte(); spi_read_byte(); } while(0) + +inline static uint16_t spi_write_word(uint16_t word) +{ + return (spi_transfer_8(BUS, word >> 8) << 8) | spi_transfer_8(BUS, word); +} + +inline static void spi_read_bytes(uint8_t *dst, size_t size) +{ + for (uint8_t *offs = dst; offs < dst + size; offs ++) + *offs = spi_read_byte(); +} + +static bool wait() +{ + uint32_t stop = sdk_system_get_time() + IO_TIMEOUT_US; + while (spi_read_byte() != 0xff) + if (sdk_system_get_time() >= stop) + return false; + return true; +} + +static uint8_t command(sdio_card_t *card, uint8_t cmd, uint32_t arg) +{ + uint8_t buf[6] = { + cmd | 0x40, + arg >> 24, + arg >> 16, + arg >> 8, + arg + }; + if (card->crc_enabled) + buf[5] = crc7(buf, 5); + else + buf[5] = cmd == CMD0 ? 0x95 : 0x87; + + spi_cs_low(card); + wait(); + spi_transfer(BUS, buf, NULL, 6, SPI_8BIT); + + // R1b response + if (cmd == CMD12 || cmd == CMD28 || cmd == CMD29) + spi_read_byte(); + + uint8_t res; + for (uint8_t i = 0; i < MAX_ERR_COUNT; i ++) + { + res = spi_read_byte(); + if (!(res & BV(R1_BUSY))) + break; + } + return res; +} + +inline static uint8_t app_command(sdio_card_t *card, uint8_t cmd, uint32_t arg) +{ + command(card, CMD55, 0); + return command(card, cmd, arg); +} + +inline static sdio_error_t set_error(sdio_card_t *card, sdio_error_t err) +{ + card->error = err; + spi_cs_high(card); + return err; +} + +static sdio_error_t read_data(sdio_card_t *card, uint8_t *dst, size_t size) +{ + uint32_t timeout = sdk_system_get_time() + IO_TIMEOUT_US; + + while (true) + { + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + + uint8_t b = spi_read_byte(); + if (b == TOKEN_SINGLE_TRAN) + break; + + if (b != 0xff) + return set_error(card, SDIO_ERR_IO); + } + + spi_read_bytes(dst, size); + + uint16_t crc = spi_read_word(); + if (card->crc_enabled && crc_ccitt(dst, size) != crc) + return set_error(card, SDIO_ERR_CRC); + + return SDIO_ERR_NONE; +} + +static sdio_error_t read_register(sdio_card_t *card, uint8_t cmd, void *dst) +{ + if (command(card, cmd, 0)) + return set_error(card, SDIO_ERR_IO); + return read_data(card, dst, 16); +} + +static sdio_error_t write_data_block(sdio_card_t *card, uint8_t token, uint8_t *src) +{ + if (!wait()) + return set_error(card, SDIO_ERR_TIMEOUT); + spi_transfer_8(BUS, token); + spi_transfer(BUS, src, NULL, SDIO_BLOCK_SIZE, SPI_8BIT); + spi_write_word(card->crc_enabled ? crc_ccitt(src, SDIO_BLOCK_SIZE) : 0xffff); + + if ((spi_read_byte() & WRITE_RES_MASK) != WRITE_RES_OK) + return set_error(card, SDIO_ERR_IO); + + return SDIO_ERR_NONE; +} + +sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_divider) +{ + card->cs_pin = cs_pin; + card->type = SDIO_TYPE_UNKNOWN; + + // setup SPI at 125kHz + spi_settings_t s = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_125K, + .msb = true, + .endianness = SPI_LITTLE_ENDIAN, + .minimal_pins = true + }; + spi_set_settings(BUS, &s); + gpio_enable(card->cs_pin, GPIO_OUTPUT); + + uint32_t timeout = sdk_system_get_time() + INIT_TIMEOUT_US; + + spi_cs_low(card); + spi_cs_high(card); + for (uint8_t i = 0; i < 10; i++) + spi_read_byte(); + + // Set card to the SPI idle mode + while (command(card, CMD0, 0) != BV(R1_IDLE_STATE)) + { + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + } + + // Enable CRC + card->crc_enabled = command(card, CMD59, 1) == BV(R1_IDLE_STATE); + + // Get card type + while (true) + { + if (command(card, CMD8, 0x1aa) & BV(R1_ILLEGAL_CMD)) + { + card->type = SDIO_TYPE_SD1; + break; + } + if ((spi_read_dword() & 0xff) == 0xaa) + { + card->type = SDIO_TYPE_SD2; + break; + } + + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + } + + if (card->type == SDIO_TYPE_SD1) + { + // SD1 or MMC3 + if (app_command(card, ACMD41, 0) > 1) + { + card->type = SDIO_TYPE_MMC; + while (command(card, CMD1, 0)) + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + } + else + { + while (app_command(card, ACMD41, 0)) + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + } + + if (command(card, CMD16, SDIO_BLOCK_SIZE)) + return set_error(card, SDIO_ERR_UNSUPPORTED); + } + else + { + // SD2 or SDHC + while (app_command(card, ACMD41, BV(30)) != 0) + if (sdk_system_get_time() >= timeout) + return set_error(card, SDIO_ERR_TIMEOUT); + } + // read OCR + if (command(card, CMD58, 0)) + return set_error(card, SDIO_ERR_IO); + card->ocr.data = spi_read_dword(); + + if (card->type == SDIO_TYPE_SD2 && (card->ocr.data & OCR_SDHC) == OCR_SDHC) + card->type = SDIO_TYPE_SDHC; + + spi_set_frequency_div(BUS, high_freq_divider); + + if (read_register(card, CMD10, &card->cid.data) != SDIO_ERR_NONE) + return card->error; + if (read_register(card, CMD9, &card->csd.data) != SDIO_ERR_NONE) + return card->error; + + // Card size + if (card->csd.v1.csd_ver == 0) + card->sectors = (uint32_t)(((card->csd.v1.c_size_high << 10) | (card->csd.v1.c_size_mid << 2) | card->csd.v1.c_size_low) + 1) + << (((card->csd.v1.c_size_mult_high << 1) | card->csd.v1.c_size_mult_low) + card->csd.v1.read_bl_len - 7); + else if (card->csd.v2.csd_ver == 1) + card->sectors = (((uint32_t)card->csd.v2.c_size_high << 16) + ((uint32_t)card->csd.v2.c_size_mid << 8) + card->csd.v2.c_size_low + 1) << 10; + else + return set_error(card, SDIO_ERR_UNSUPPORTED); + + return set_error(card, SDIO_ERR_NONE); +} + +sdio_error_t sdio_read_sectors(sdio_card_t *card, uint32_t sector, uint8_t *dst, uint32_t count) +{ + if (!count) + return set_error(card, SDIO_ERR_IO); + + if (card->type != SDIO_TYPE_SDHC) + sector <<= 9; + + bool multi = count > 1; + if (command(card, multi ? CMD18 : CMD17, sector)) + return set_error(card, SDIO_ERR_IO); + + while (count--) + { + if (read_data(card, dst, SDIO_BLOCK_SIZE) != SDIO_ERR_NONE) + return card->error; + dst += SDIO_BLOCK_SIZE; + } + + if (multi && command(card, CMD12, 0)) + return set_error(card, SDIO_ERR_IO); + + return set_error(card, SDIO_ERR_NONE); +} + +sdio_error_t sdio_write_sectors(sdio_card_t *card, uint32_t sector, uint8_t *src, uint32_t count) +{ + if (!count) + return set_error(card, SDIO_ERR_IO); + + if (card->type != SDIO_TYPE_SDHC) + sector <<= 9; + + if (count == 1) + { + // single block + if (command(card, CMD24, sector)) + return set_error(card, SDIO_ERR_IO); + return set_error(card, write_data_block(card, TOKEN_SINGLE_TRAN, src)); + } + + // send pre-erase count + if ((card->type == SDIO_TYPE_SD1 + || card->type == SDIO_TYPE_SD2 + || card->type == SDIO_TYPE_SDHC) + && app_command(card, ACMD23, count)) + { + return set_error(card, SDIO_ERR_IO); + } + + if (command(card, CMD25, sector)) + return set_error(card, SDIO_ERR_IO); + + while (count--) + { + if (write_data_block(card, TOKEN_MULTI_TRAN, src) != SDIO_ERR_NONE) + return card->error; + src += SDIO_BLOCK_SIZE; + } + spi_transfer_8(BUS, TOKEN_STOP_TRAN); + + return set_error(card, SDIO_ERR_NONE); +} + +sdio_error_t sdio_erase_sectors(sdio_card_t *card, uint32_t first, uint32_t last) +{ + if (!card->csd.v1.erase_blk_en) + { + uint8_t mask = (card->csd.v1.sector_size_high << 1) | card->csd.v1.sector_size_low; + if ((first & mask) || ((last + 1) & mask)) + return set_error(card, SDIO_ERR_UNSUPPORTED); + } + + if (card->type != SDIO_TYPE_SDHC) + { + first <<= 9; + last <<= 9; + } + + if (command(card, CMD32, first) + || command(card, CMD33, last) + || command(card, CMD38, 0)) + { + return set_error(card, SDIO_ERR_IO); + } + + return set_error(card, wait() ? SDIO_ERR_NONE : SDIO_ERR_TIMEOUT); +} + diff --git a/extras/sdio/sdio.h b/extras/sdio/sdio.h new file mode 100644 index 0000000..c51200d --- /dev/null +++ b/extras/sdio/sdio.h @@ -0,0 +1,98 @@ +/* + * Hardware SPI driver for MMC/SD/SDHC cards + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_SDIO_H_ +#define _EXTRAS_SDIO_H_ + +#include +#include +#include +#include "sdio_impl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define SDIO_BLOCK_SIZE 512 + +typedef enum { + SDIO_ERR_NONE = 0, + SDIO_ERR_TIMEOUT, + SDIO_ERR_UNSUPPORTED, + SDIO_ERR_IO, + SDIO_ERR_CRC +} sdio_error_t; + +typedef enum { + SDIO_TYPE_UNKNOWN = 0, + SDIO_TYPE_MMC, + SDIO_TYPE_SD1, + SDIO_TYPE_SD2, + SDIO_TYPE_SDHC +} sdio_card_type_t; + +/** + * SD card descriptor + */ +typedef struct +{ + sdio_error_t error; //!< Last operation result + uint8_t cs_pin; //!< Chip Select GPIO pin + sdio_card_type_t type; //!< Card type + bool crc_enabled; //!< True if CRC enabled for IO + sdio_ocr_t ocr; //!< OCR register + sdio_csd_t csd; //!< CSD register + sdio_cid_t cid; //!< CID register + uint32_t sectors; //!< Card size in 512 byte sectors +} sdio_card_t; + +/** + * \brief Init SD card + * Device descriptor (registers, sectors count and so on) will be filled during initialization + * SPI_FREQ_DIV_40M is good for modern SD cards, older SD can use SPI_FREQ_DIV_20M and lower + * \param card Pointer to the device descriptor + * \param cs_pin GPIO pin used for CS + * \param high_freq_divider SPI bus frequency divider + * \return Operation result + */ +sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_divider); + +/** + * \brief Read 512 byte sectors from SD card + * \param card Pointer to the device descriptor + * \param sector Start sector + * \param dst Receive buffer + * \param count Number of sectors to read + * \return Operation result + */ +sdio_error_t sdio_read_sectors(sdio_card_t *card, uint32_t sector, uint8_t *dst, uint32_t count); + +/** + * \brief Write 512 byte sectors to SD card + * \param card Pointer to the device descriptor + * \param sector Start sector + * \param src Data to write + * \param count Number of sectors to read + * \return Operation result + */ +sdio_error_t sdio_write_sectors(sdio_card_t *card, uint32_t sector, uint8_t *src, uint32_t count); + +/** + * \brief Erase 512 byte sectors from SD card + * \param card Pointer to the device descriptor + * \param first First sector to erase + * \param last Last sector to erase + * \return Operation result + */ +sdio_error_t sdio_erase_sectors(sdio_card_t *card, uint32_t first, uint32_t last); + + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_SDIO_H_ */ diff --git a/extras/sdio/sdio_impl.h b/extras/sdio/sdio_impl.h new file mode 100644 index 0000000..fc6a251 --- /dev/null +++ b/extras/sdio/sdio_impl.h @@ -0,0 +1,154 @@ +/* + * Hardware SPI driver for MMC/SD/SDHC cards + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_SDIO_IMPL_H_ +#define _EXTRAS_SDIO_IMPL_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef union +{ + uint32_t data; + struct + { + uint16_t reserverd1 :15; + uint8_t vcc_2v7_2v8 :1; + uint8_t vcc_2v8_2v9 :1; + uint8_t vcc_2v9_3v0 :1; + uint8_t vcc_3v0_3v1 :1; + uint8_t vcc_3v1_3v2 :1; + uint8_t vcc_3v2_3v3 :1; + uint8_t vcc_3v3_3v4 :1; + uint8_t vcc_3v4_3v5 :1; + uint8_t vcc_3v5_3v6 :1; + uint8_t reserverd2 :6; + uint8_t ccs :1; + uint8_t busy :1; + } __attribute__((packed)) bits; +} sdio_ocr_t; + +typedef union +{ + uint8_t data[16]; + struct + { + uint8_t manufacturer_id; + char oem_id[2]; + char product_name[5]; + uint8_t product_rev_minor :4; + uint8_t product_rev_major :4; + uint32_t product_serial; + uint8_t reserved1 :4; + uint8_t date_year_h :4; + uint8_t date_year_l :4; + uint8_t date_month :4; + uint8_t always1 :1; + uint8_t crc :7; + } __attribute__((packed)) bits; +} sdio_cid_t; + +typedef union +{ + uint8_t data[16]; + struct + { + uint8_t reserved1 :6; + uint8_t csd_ver :2; + uint8_t taac; + uint8_t nsac; + uint8_t tran_speed; + uint8_t ccc_high; + uint8_t read_bl_len :4; + uint8_t ccc_low :4; + uint16_t c_size_high :2; + uint8_t reserved2 :2; + uint8_t dsr_imp :1; + uint8_t read_blk_misalign :1; + uint8_t write_blk_misalign :1; + uint8_t read_bl_partial :1; + uint8_t c_size_mid; + uint8_t vdd_r_curr_max :3; + uint8_t vdd_r_curr_min :3; + uint8_t c_size_low :2; + uint8_t c_size_mult_high :2; + uint8_t vdd_w_cur_max :3; + uint8_t vdd_w_curr_min :3; + uint8_t sector_size_high :6; + uint8_t erase_blk_en :1; + uint8_t c_size_mult_low :1; + uint8_t wp_grp_size :7; + uint8_t sector_size_low :1; + uint8_t write_bl_len_high :2; + uint8_t r2w_factor :3; + uint8_t reserved3 :2; + uint8_t wp_grp_enable :1; + uint8_t reserved4 :5; + uint8_t write_partial :1; + uint8_t write_bl_len_low :2; + uint8_t reserved5 :2; + uint8_t file_format :2; + uint8_t tmp_write_protect :1; + uint8_t perm_write_protect :1; + uint8_t copy :1; + uint8_t file_format_grp :1; + uint8_t always1 :1; + uint8_t crc :7; + } __attribute__((packed)) v1; + + struct + { + uint8_t reserved1 :6; + uint8_t csd_ver :2; + uint8_t taac; + uint8_t nsac; + uint8_t tran_speed; + uint8_t ccc_high; + uint8_t read_bl_len :4; + uint8_t ccc_low :4; + uint8_t reserved2 :4; + uint8_t dsr_imp :1; + uint8_t read_blk_misalign :1; + uint8_t write_blk_misalign :1; + uint8_t read_bl_partial :1; + uint16_t c_size_high :6; + uint8_t reserved3 :2; + uint8_t c_size_mid; + uint8_t c_size_low; + uint8_t sector_size_high :6; + uint8_t erase_blk_en :1; + uint8_t reserved4 :1; + uint8_t wp_grp_size :7; + uint8_t sector_size_low :1; + uint8_t write_bl_len_high :2; + uint8_t r2w_factor :3; + uint8_t reserved5 :2; + uint8_t wp_grp_enable :1; + uint8_t reserved6 :5; + uint8_t write_partial :1; + uint8_t write_bl_len_low :2; + uint8_t reserved7 :2; + uint8_t file_format :2; + uint8_t tmp_write_protect :1; + uint8_t perm_write_protect :1; + uint8_t copy :1; + uint8_t file_format_grp :1; + uint8_t always1 :1; + uint8_t crc :7; + } __attribute__((packed)) v2; +} sdio_csd_t; + + +#ifdef __cplusplus +} +#endif + + +#endif /* _EXTRAS_SDIO_IMPL_H_ */ From 57cb9b925c36a33b45f2be881211c49e3ef67358 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Mon, 24 Oct 2016 18:09:17 +0500 Subject: [PATCH 087/349] Make headers in extras more cpp friendly --- extras/bmp180/bmp180.h | 8 ++++ extras/bmp280/bmp280.h | 8 ++++ extras/dhcpserver/include/dhcpserver.h | 8 ++++ extras/dht/dht.h | 8 ++++ extras/ds18b20/ds18b20.h | 8 ++++ extras/ds3231/ds3231.h | 64 +++++++++++++++----------- extras/i2c/i2c.h | 11 ++++- extras/i2s_dma/i2s_dma.h | 8 ++++ extras/onewire/onewire.h | 8 ++++ extras/pwm/pwm.h | 13 ++++++ extras/ws2812/ws2812.h | 7 +++ extras/ws2812_i2s/ws2812_i2s.h | 8 ++++ 12 files changed, 130 insertions(+), 29 deletions(-) diff --git a/extras/bmp180/bmp180.h b/extras/bmp180/bmp180.h index cbdad4a..e7fc470 100644 --- a/extras/bmp180/bmp180.h +++ b/extras/bmp180/bmp180.h @@ -20,6 +20,10 @@ #define BMP180_TEMPERATURE (1<<0) #define BMP180_PRESSURE (1<<1) +#ifdef __cplusplus +extern "C" { +#endif + // // Create bmp180_types // @@ -79,4 +83,8 @@ bool bmp180_fillInternalConstants(bmp180_constants_t *c); bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, uint32_t *pressure, uint8_t oss); +#ifdef __cplusplus +} +#endif + #endif /* DRIVER_BMP180_H_ */ diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h index 8a43ad0..ea8e8f5 100644 --- a/extras/bmp280/bmp280.h +++ b/extras/bmp280/bmp280.h @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + /** * Uncomment to enable debug output. */ @@ -184,4 +188,8 @@ bool bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, bool bmp280_read_float(bmp280_t *dev, float *temperature, float *pressure, float *humidity); +#ifdef __cplusplus +} +#endif + #endif // __BMP280_H__ diff --git a/extras/dhcpserver/include/dhcpserver.h b/extras/dhcpserver/include/dhcpserver.h index 5548c19..95a59b8 100644 --- a/extras/dhcpserver/include/dhcpserver.h +++ b/extras/dhcpserver/include/dhcpserver.h @@ -14,6 +14,10 @@ #define DHCPSERVER_LEASE_TIME 3600 #endif +#ifdef __cplusplus +extern "C" { +#endif + /* Start DHCP server. Static IP of server should already be set and network interface enabled. @@ -30,4 +34,8 @@ void dhcpserver_get_lease(const ip_addr_t *first_client_addr, uint8_t max_leases */ void dhcpserver_stop(void); +#ifdef __cplusplus +} +#endif + #endif diff --git a/extras/dht/dht.h b/extras/dht/dht.h index 3f69a29..ab22269 100644 --- a/extras/dht/dht.h +++ b/extras/dht/dht.h @@ -17,6 +17,10 @@ // Type of sensor to use #define DHT_TYPE DHT22 +#ifdef __cplusplus +extern "C" { +#endif + /** * Read data from sensor on specified pin. * @@ -35,4 +39,8 @@ bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature); */ bool dht_read_float_data(uint8_t pin, float *humidity, float *temperature); +#ifdef __cplusplus +} +#endif + #endif // __DHT_H__ diff --git a/extras/ds18b20/ds18b20.h b/extras/ds18b20/ds18b20.h index 04b4a53..c53d97d 100644 --- a/extras/ds18b20/ds18b20.h +++ b/extras/ds18b20/ds18b20.h @@ -3,6 +3,10 @@ #include "onewire/onewire.h" +#ifdef __cplusplus +extern "C" { +#endif + /** @file ds18b20.h * * Communicate with the DS18B20 family of one-wire temperature sensor ICs. @@ -147,4 +151,8 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result); // temperature from single dallas chip. float ds18b20_read_single(uint8_t pin); +#ifdef __cplusplus +} #endif + +#endif /* DRIVER_DS18B20_H_ */ diff --git a/extras/ds3231/ds3231.h b/extras/ds3231/ds3231.h index 06cdb62..ccc7335 100644 --- a/extras/ds3231/ds3231.h +++ b/extras/ds3231/ds3231.h @@ -13,40 +13,44 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + #define DS3231_ADDR 0x68 -#define DS3231_STAT_OSCILLATOR 0x80 -#define DS3231_STAT_32KHZ 0x08 -#define DS3231_STAT_BUSY 0x04 -#define DS3231_STAT_ALARM_2 0x02 -#define DS3231_STAT_ALARM_1 0x01 +#define DS3231_STAT_OSCILLATOR 0x80 +#define DS3231_STAT_32KHZ 0x08 +#define DS3231_STAT_BUSY 0x04 +#define DS3231_STAT_ALARM_2 0x02 +#define DS3231_STAT_ALARM_1 0x01 -#define DS3231_CTRL_OSCILLATOR 0x80 -#define DS3231_CTRL_SQUAREWAVE_BB 0x40 -#define DS3231_CTRL_TEMPCONV 0x20 -#define DS3231_CTRL_SQWAVE_4096HZ 0x10 -#define DS3231_CTRL_SQWAVE_1024HZ 0x08 -#define DS3231_CTRL_SQWAVE_8192HZ 0x18 -#define DS3231_CTRL_SQWAVE_1HZ 0x00 -#define DS3231_CTRL_ALARM_INTS 0x04 -#define DS3231_CTRL_ALARM2_INT 0x02 -#define DS3231_CTRL_ALARM1_INT 0x01 +#define DS3231_CTRL_OSCILLATOR 0x80 +#define DS3231_CTRL_SQUAREWAVE_BB 0x40 +#define DS3231_CTRL_TEMPCONV 0x20 +#define DS3231_CTRL_SQWAVE_4096HZ 0x10 +#define DS3231_CTRL_SQWAVE_1024HZ 0x08 +#define DS3231_CTRL_SQWAVE_8192HZ 0x18 +#define DS3231_CTRL_SQWAVE_1HZ 0x00 +#define DS3231_CTRL_ALARM_INTS 0x04 +#define DS3231_CTRL_ALARM2_INT 0x02 +#define DS3231_CTRL_ALARM1_INT 0x01 -#define DS3231_ALARM_WDAY 0x40 -#define DS3231_ALARM_NOTSET 0x80 +#define DS3231_ALARM_WDAY 0x40 +#define DS3231_ALARM_NOTSET 0x80 -#define DS3231_ADDR_TIME 0x00 -#define DS3231_ADDR_ALARM1 0x07 -#define DS3231_ADDR_ALARM2 0x0b -#define DS3231_ADDR_CONTROL 0x0e -#define DS3231_ADDR_STATUS 0x0f -#define DS3231_ADDR_AGING 0x10 -#define DS3231_ADDR_TEMP 0x11 +#define DS3231_ADDR_TIME 0x00 +#define DS3231_ADDR_ALARM1 0x07 +#define DS3231_ADDR_ALARM2 0x0b +#define DS3231_ADDR_CONTROL 0x0e +#define DS3231_ADDR_STATUS 0x0f +#define DS3231_ADDR_AGING 0x10 +#define DS3231_ADDR_TEMP 0x11 -#define DS3231_12HOUR_FLAG 0x40 -#define DS3231_12HOUR_MASK 0x1f -#define DS3231_PM_FLAG 0x20 -#define DS3231_MONTH_MASK 0x1f +#define DS3231_12HOUR_FLAG 0x40 +#define DS3231_12HOUR_MASK 0x1f +#define DS3231_PM_FLAG 0x20 +#define DS3231_MONTH_MASK 0x1f enum { DS3231_SET = 0, @@ -184,4 +188,8 @@ bool ds3231_getTempFloat(float *temp); bool ds3231_getTime(struct tm *time); void ds3231_Init(uint8_t scl, uint8_t sda); +#ifdef __cplusplus +} #endif + +#endif /* __DS3231_H__ */ diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index ac3163f..bfb3811 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -24,11 +24,14 @@ #ifndef __I2C_H__ #define __I2C_H__ -#endif #include #include +#ifdef __cplusplus +extern "C" { +#endif + // Init bitbanging I2C driver on given pins void i2c_init(uint8_t scl_pin, uint8_t sda_pin); @@ -49,3 +52,9 @@ bool i2c_slave_read(uint8_t slave_addr, uint8_t data, uint8_t *buf, uint32_t len // devices where the i2c_slave_[read|write] functions above are of no use. void i2c_start(void); void i2c_stop(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __I2C_H__ */ diff --git a/extras/i2s_dma/i2s_dma.h b/extras/i2s_dma/i2s_dma.h index b566b34..ed6e5c0 100644 --- a/extras/i2s_dma/i2s_dma.h +++ b/extras/i2s_dma/i2s_dma.h @@ -28,6 +28,10 @@ #include #include "esp/slc_regs.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*i2s_dma_isr_t)(void); typedef struct dma_descriptor { @@ -113,4 +117,8 @@ inline dma_descriptor_t *i2s_dma_get_eof_descriptor() return (dma_descriptor_t*)SLC.RX_EOF_DESCRIPTOR_ADDR; } +#ifdef __cplusplus +} +#endif + #endif // __I2S_DMA_H__ diff --git a/extras/onewire/onewire.h b/extras/onewire/onewire.h index 89823d7..ddc88dc 100644 --- a/extras/onewire/onewire.h +++ b/extras/onewire/onewire.h @@ -4,6 +4,10 @@ #include // sdk_os_delay_us #include "FreeRTOS.h" +#ifdef __cplusplus +extern "C" { +#endif + /** @file onewire.h * * Routines to access devices using the Dallas Semiconductor 1-Wire(tm) @@ -232,4 +236,8 @@ bool onewire_check_crc16(const uint8_t* input, size_t len, const uint8_t* invert */ uint16_t onewire_crc16(const uint8_t* input, size_t len, uint16_t crc_iv); +#ifdef __cplusplus +} #endif + +#endif /* __ONEWIRE_H__ */ diff --git a/extras/pwm/pwm.h b/extras/pwm/pwm.h index ddf7f2b..55b8761 100644 --- a/extras/pwm/pwm.h +++ b/extras/pwm/pwm.h @@ -5,10 +5,17 @@ * Copyright (C) 2015 Javier Cardona (https://github.com/jcard0na) * BSD Licensed as described in the file LICENSE */ +#ifndef EXTRAS_PWM_H_ +#define EXTRAS_PWM_H_ + #include #define MAX_PWM_PINS 8 +#ifdef __cplusplus +extern "C" { +#endif + void pwm_init(uint8_t npins, uint8_t* pins); void pwm_set_freq(uint16_t freq); void pwm_set_duty(uint16_t duty); @@ -16,3 +23,9 @@ void pwm_set_duty(uint16_t duty); void pwm_restart(); void pwm_start(); void pwm_stop(); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_PWM_H_ */ diff --git a/extras/ws2812/ws2812.h b/extras/ws2812/ws2812.h index d614e60..7ef157a 100644 --- a/extras/ws2812/ws2812.h +++ b/extras/ws2812/ws2812.h @@ -35,6 +35,10 @@ #include "espressif/esp_common.h" // sdk_os_delay_us #include "esp/gpio.h" +#ifdef __cplusplus +extern "C" { +#endif + /** * @brief Struct for easy manipulation of RGB colors. * @@ -204,5 +208,8 @@ void ws2812_seq_end(void) sdk_os_delay_us(50); // display the loaded colors } +#ifdef __cplusplus +} +#endif #endif /* WS2812_DRV_H */ diff --git a/extras/ws2812_i2s/ws2812_i2s.h b/extras/ws2812_i2s/ws2812_i2s.h index fc12e26..f6ebc82 100644 --- a/extras/ws2812_i2s/ws2812_i2s.h +++ b/extras/ws2812_i2s/ws2812_i2s.h @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + typedef struct { uint8_t red; uint8_t green; @@ -50,4 +54,8 @@ void ws2812_i2s_init(uint32_t pixels_number); */ void ws2812_i2s_update(ws2812_pixel_t *pixels); +#ifdef __cplusplus +} +#endif + #endif // __WS2812_I2S_H__ From f1d44f5cbeafdebb27ae170352531d2a7ccae09d Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Tue, 25 Oct 2016 01:30:51 +0600 Subject: [PATCH 088/349] FatFs integration (SDIO backend) (#242) --- examples/fatfs/Makefile | 8 + examples/fatfs/main.c | 132 + examples/fatfs_rtc/Makefile | 8 + examples/fatfs_rtc/README.md | 15 + examples/fatfs_rtc/main.c | 133 + extras/fatfs/README.md | 55 + extras/fatfs/cc932.h | 3869 ++++++++++++ extras/fatfs/cc936.h | 11044 +++++++++++++++++++++++++++++++++ extras/fatfs/cc949.h | 8672 ++++++++++++++++++++++++++ extras/fatfs/cc950.h | 6899 ++++++++++++++++++++ extras/fatfs/ccsbcs.h | 382 ++ extras/fatfs/component.mk | 37 + extras/fatfs/defaults.mk | 128 + extras/fatfs/diskio.c | 108 + extras/fatfs/diskio.h | 80 + extras/fatfs/ff.c | 6041 ++++++++++++++++++ extras/fatfs/ff.h | 366 ++ extras/fatfs/ffconf.h | 309 + extras/fatfs/integer.h | 40 + extras/fatfs/syscall.c | 77 + extras/fatfs/unicode.c | 17 + extras/fatfs/volumes.c | 43 + extras/fatfs/volumes.h | 16 + 23 files changed, 38479 insertions(+) create mode 100644 examples/fatfs/Makefile create mode 100644 examples/fatfs/main.c create mode 100644 examples/fatfs_rtc/Makefile create mode 100644 examples/fatfs_rtc/README.md create mode 100644 examples/fatfs_rtc/main.c create mode 100644 extras/fatfs/README.md create mode 100644 extras/fatfs/cc932.h create mode 100644 extras/fatfs/cc936.h create mode 100644 extras/fatfs/cc949.h create mode 100644 extras/fatfs/cc950.h create mode 100644 extras/fatfs/ccsbcs.h create mode 100644 extras/fatfs/component.mk create mode 100644 extras/fatfs/defaults.mk create mode 100644 extras/fatfs/diskio.c create mode 100644 extras/fatfs/diskio.h create mode 100644 extras/fatfs/ff.c create mode 100644 extras/fatfs/ff.h create mode 100644 extras/fatfs/ffconf.h create mode 100644 extras/fatfs/integer.h create mode 100644 extras/fatfs/syscall.c create mode 100644 extras/fatfs/unicode.c create mode 100644 extras/fatfs/volumes.c create mode 100644 extras/fatfs/volumes.h diff --git a/examples/fatfs/Makefile b/examples/fatfs/Makefile new file mode 100644 index 0000000..8ccdf46 --- /dev/null +++ b/examples/fatfs/Makefile @@ -0,0 +1,8 @@ +PROGRAM = fatfs +EXTRA_COMPONENTS = extras/sdio extras/fatfs +#ESPBAUD = 460800 + +# FatFS parameters, see extras/fatfs/defaults.mk +FATFS_CODE_PAGE = 866 + +include ../../common.mk diff --git a/examples/fatfs/main.c b/examples/fatfs/main.c new file mode 100644 index 0000000..cb0dda8 --- /dev/null +++ b/examples/fatfs/main.c @@ -0,0 +1,132 @@ +/* + * Example of using FatFs + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include + +#define CS_GPIO_PIN 2 +#define TEST_FILENAME "/test_loooong_filename.txt" +#define TEST_CONTENTS "Hello! It's FatFs on esp8266 with ESP Open RTOS!" +#define READBUF_SIZE 256 +#define DELAY_MS 3000 + +static const char contents[] = TEST_CONTENTS; + +static const char *results[] = { + [FR_OK] = "Succeeded", + [FR_DISK_ERR] = "A hard error occurred in the low level disk I/O layer", + [FR_INT_ERR] = "Assertion failed", + [FR_NOT_READY] = "The physical drive cannot work", + [FR_NO_FILE] = "Could not find the file", + [FR_NO_PATH] = "Could not find the path", + [FR_INVALID_NAME] = "The path name format is invalid", + [FR_DENIED] = "Access denied due to prohibited access or directory full", + [FR_EXIST] = "Access denied due to prohibited access", + [FR_INVALID_OBJECT] = "The file/directory object is invalid", + [FR_WRITE_PROTECTED] = "The physical drive is write protected", + [FR_INVALID_DRIVE] = "The logical drive number is invalid", + [FR_NOT_ENABLED] = "The volume has no work area", + [FR_NO_FILESYSTEM] = "There is no valid FAT volume", + [FR_MKFS_ABORTED] = "The f_mkfs() aborted due to any problem", + [FR_TIMEOUT] = "Could not get a grant to access the volume within defined period", + [FR_LOCKED] = "The operation is rejected according to the file sharing policy", + [FR_NOT_ENOUGH_CORE] = "LFN working buffer could not be allocated", + [FR_TOO_MANY_OPEN_FILES] = "Number of open files > _FS_LOCK", + [FR_INVALID_PARAMETER] = "Given parameter is invalid" +}; + +static char readbuf[READBUF_SIZE]; + +static bool failed(FRESULT res) +{ + bool fail = res != FR_OK; + if (fail) + printf("\n Error: "); + printf("\n %s\n", results[res]); + return fail; +} + +void check_fatfs() +{ + const char *vol = f_gpio_to_volume(CS_GPIO_PIN); + + printf("\nCreating test file\n----------------------------\n"); + + FATFS fs; + // Mount filesystem + printf("f_mount(&fs, \"%s\")", vol); + if (failed(f_mount(&fs, vol, 1))) + return; + + // Set default drive + printf("f_chdrive(\"%s\")", vol); + if (failed(f_chdrive(vol))) + return; + + FIL f; + // Create test file + printf("f_open(&f, \"%s\", FA_WRITE | FA_CREATE_ALWAYS)", TEST_FILENAME); + if (failed(f_open(&f, TEST_FILENAME, FA_WRITE | FA_CREATE_ALWAYS))) + return; + + size_t written; + // Write test string + printf("f_write(&f, \"%s\")", contents); + if (failed(f_write(&f, contents, sizeof(contents) - 1, &written))) + return; + printf(" Bytes written: %d\n", written); + + // Close file + printf("f_close(&f)"); + if (failed(f_close(&f))) + return; + + printf("\nReading test file\n----------------------------\n"); + + // Open test file + printf("f_open(&f, \"%s\", FA_READ)", TEST_FILENAME); + if (failed(f_open(&f, TEST_FILENAME, FA_READ))) + return; + + printf(" File size: %u\n", (uint32_t)f_size(&f)); + + size_t readed; + // Read file + printf("f_read(&f, ...)"); + if (failed(f_read(&f, readbuf, sizeof(readbuf) - 1, &readed))) + return; + readbuf[readed] = 0; + + printf(" Readed %u bytes, test file contents: %s\n", readed, readbuf); + + // Close file + printf("f_close(&f)"); + if (failed(f_close(&f))) + return; + + // Unmount + printf("f_mount(NULL, \"%s\")", vol); + if (failed(f_mount(NULL, vol, 0))) + return; +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + while (true) + { + printf("***********************************\nTesting FAT filesystem\n***********************************\n"); + check_fatfs(); + printf("\n\n"); + for (size_t i = 0; i < DELAY_MS; i ++) + sdk_os_delay_us(1000); + } +} diff --git a/examples/fatfs_rtc/Makefile b/examples/fatfs_rtc/Makefile new file mode 100644 index 0000000..8dcac51 --- /dev/null +++ b/examples/fatfs_rtc/Makefile @@ -0,0 +1,8 @@ +PROGRAM = fatfs +EXTRA_COMPONENTS = extras/sdio extras/fatfs extras/i2c extras/ds1307 +ESPBAUD = 460800 + +# We provide uint32_t get_fattime() based on the RTC +FATFS_FS_NORTC = 0 + +include ../../common.mk diff --git a/examples/fatfs_rtc/README.md b/examples/fatfs_rtc/README.md new file mode 100644 index 0000000..c73f144 --- /dev/null +++ b/examples/fatfs_rtc/README.md @@ -0,0 +1,15 @@ +This example shows how to use real-time clock (e.g. ds1307) +with FatFs for real timestamps on the filesystem objects. + +1. Set `FATFS_FS_NORTC` to 0 (it's 1 by default) in application makefile. +2. Define function `uint32_t get_fattime()` which will return current time in +timestamp format: + + Bits | Date part + -------|---------- + 0..4 | Second / 2 (0..29) + 5..10 | Minute (0..59) + 11..15 | Hour (0..23) + 16..20 | Day (1..31) + 21..24 | Month (1..12) + 25..31 | Year origin from 1980 (0..127) diff --git a/examples/fatfs_rtc/main.c b/examples/fatfs_rtc/main.c new file mode 100644 index 0000000..180a943 --- /dev/null +++ b/examples/fatfs_rtc/main.c @@ -0,0 +1,133 @@ +/* + * Example of using FatFs with RTC clock + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include +#include +#include + +// SD card +#define CS_GPIO_PIN 2 + +// ds1307 +#define SCL_PIN 5 +#define SDA_PIN 4 + +#define TEST_FILENAME "/test_rtc_file.txt" +#define TEST_CONTENTS "Hello! It's a test file and it can be deleted!" +#define DELAY_MS 3000 + +// This function called by FatFs +uint32_t get_fattime() +{ + struct tm time; + ds1307_get_time(&time); + + return ((uint32_t)(time.tm_year - 1980) << 25) + | ((uint32_t)time.tm_mon << 21) + | ((uint32_t)time.tm_mday << 16) + | ((uint32_t)time.tm_hour << 11) + | ((uint32_t)time.tm_min << 5) + | ((uint32_t)time.tm_sec >> 1); +} + +static const char contents[] = TEST_CONTENTS; +static FATFS fs; + +static void dump_fileinfo() +{ + FILINFO info; + printf("File: %s\n", TEST_FILENAME); + if (f_stat(TEST_FILENAME, &info) != FR_OK) + { + printf("Cannot get file status\n"); + return; + } + printf("File size: %u bytes\n", (uint32_t)info.fsize); + printf( + "Modified: %04d-%02d-%02d %02d:%02d:%02d\n", + (info.fdate >> 9) + 1980, // year + (info.fdate >> 5) & 0x0f, // month + info.fdate & 0x1f, // day + info.ftime >> 11, // hours + (info.ftime >> 5) & 0x3F, // minutes + (info.ftime & 0x1f) << 1 // seconds + ); + +} + +void rewrite_file_task(void *p) +{ + const char *volume = f_gpio_to_volume(CS_GPIO_PIN); + + while (true) + { + do + { + if (f_mount(&fs, volume, 1) != FR_OK) + { + printf("Cannot mount volume %s\n", volume); + break; + } + + if (f_chdrive(volume) != FR_OK) + { + printf("Cannot set default drive %s\n", volume); + break; + } + + printf("\nTest file\n----------------------------\n"); + + dump_fileinfo(); + + printf("\nRe-creating test file\n----------------------------\n"); + + FIL f; //< It's big and it's on the stack! We need larger stack size + + if (f_open(&f, TEST_FILENAME, FA_WRITE | FA_CREATE_ALWAYS) != FR_OK) + { + printf("Cannot create file %s\n", TEST_FILENAME); + break; + } + + size_t bw; + if (f_write(&f, contents, sizeof(contents) - 1, &bw)) + { + printf("Cannot write to file\n"); + break; + } + printf("Bytes written: %d\n", bw); + + if (f_close(&f) != FR_OK) + { + printf("Cannot close file\n"); + break; + } + + dump_fileinfo(); + + f_mount(NULL, volume, 0); + } + while (false); + + vTaskDelay(DELAY_MS / portTICK_RATE_MS); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + i2c_init (SCL_PIN, SDA_PIN); + + xTaskCreate(rewrite_file_task, (signed char *)"task1", 512, NULL, 2, NULL); +} diff --git a/extras/fatfs/README.md b/extras/fatfs/README.md new file mode 100644 index 0000000..44e11f6 --- /dev/null +++ b/extras/fatfs/README.md @@ -0,0 +1,55 @@ +# FatFs - Generic FAT File System Module + +Current version: R0.12b + +## How to use + +Connect your SD card to ESP module + + SD pin | ESP8266 +--------|------------ +1. DAT2 | - +2. /CS | Any accessible GPIO (15, 5, 4, 0, 2, 16) +3. DI | HMOSI (GPIO13) +4. VDD | +3V3 +5. CLK | HCLK (GPIO14) +6. VSS | GND +7. DO | HMISO (GPIO12) +8. RSV | - + +Add `extras/sdio` and `extras/fatfs` to `EXTRA_COMPONENTS` parameter of your +makefile, e.g. + +```Makefile +EXTRA_COMPONENTS = extras/sdio extras/fatfs +``` + +Use `const char *f_gpio_to_volume(uint8_t gpio)` to get the FatFs volume ID +based on GPIO which is used for CS pin. + +## FatFs configuration + +Almost all of the FatFs parameters are configurable in the Makefile of your +project. See default values and their meaning in `defaults.mk`. + +## Original documentation + +http://elm-chan.org/fsw/ff/00index_e.html + +## License + +Copyright (C) 20xx, ChaN, all right reserved. + +FatFs module is an open source software. Redistribution and use of FatFs in +source and binary forms, with or without modification, are permitted provided +that the following condition is met: + +1. Redistributions of source code must retain the above copyright notice, + this condition and the following disclaimer. + +This software is provided by the copyright holder and contributors "AS IS" +and any warranties related to this software are DISCLAIMED. +The copyright owner or contributors be NOT LIABLE for any damages caused +by use of this software. + + diff --git a/extras/fatfs/cc932.h b/extras/fatfs/cc932.h new file mode 100644 index 0000000..f60bd29 --- /dev/null +++ b/extras/fatfs/cc932.h @@ -0,0 +1,3869 @@ +/*------------------------------------------------------------------------*/ +/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ +/* CP932 (Japanese Shift-JIS) */ +/*------------------------------------------------------------------------*/ + +#include "ff.h" + +#if _USE_LFN && _CODE_PAGE == 932 + +#define _TINY_TABLE 0 + + +static +const WCHAR uni2sjis[] = { +/* Unicode - Sjis, Unicode - Sjis, Unicode - Sjis, Unicode - Sjis, */ + 0x00A7, 0x8198, 0x00A8, 0x814E, 0x00B0, 0x818B, 0x00B1, 0x817D, + 0x00B4, 0x814C, 0x00B6, 0x81F7, 0x00D7, 0x817E, 0x00F7, 0x8180, + 0x0391, 0x839F, 0x0392, 0x83A0, 0x0393, 0x83A1, 0x0394, 0x83A2, + 0x0395, 0x83A3, 0x0396, 0x83A4, 0x0397, 0x83A5, 0x0398, 0x83A6, + 0x0399, 0x83A7, 0x039A, 0x83A8, 0x039B, 0x83A9, 0x039C, 0x83AA, + 0x039D, 0x83AB, 0x039E, 0x83AC, 0x039F, 0x83AD, 0x03A0, 0x83AE, + 0x03A1, 0x83AF, 0x03A3, 0x83B0, 0x03A4, 0x83B1, 0x03A5, 0x83B2, + 0x03A6, 0x83B3, 0x03A7, 0x83B4, 0x03A8, 0x83B5, 0x03A9, 0x83B6, + 0x03B1, 0x83BF, 0x03B2, 0x83C0, 0x03B3, 0x83C1, 0x03B4, 0x83C2, + 0x03B5, 0x83C3, 0x03B6, 0x83C4, 0x03B7, 0x83C5, 0x03B8, 0x83C6, + 0x03B9, 0x83C7, 0x03BA, 0x83C8, 0x03BB, 0x83C9, 0x03BC, 0x83CA, + 0x03BD, 0x83CB, 0x03BE, 0x83CC, 0x03BF, 0x83CD, 0x03C0, 0x83CE, + 0x03C1, 0x83CF, 0x03C3, 0x83D0, 0x03C4, 0x83D1, 0x03C5, 0x83D2, + 0x03C6, 0x83D3, 0x03C7, 0x83D4, 0x03C8, 0x83D5, 0x03C9, 0x83D6, + 0x0401, 0x8446, 0x0410, 0x8440, 0x0411, 0x8441, 0x0412, 0x8442, + 0x0413, 0x8443, 0x0414, 0x8444, 0x0415, 0x8445, 0x0416, 0x8447, + 0x0417, 0x8448, 0x0418, 0x8449, 0x0419, 0x844A, 0x041A, 0x844B, + 0x041B, 0x844C, 0x041C, 0x844D, 0x041D, 0x844E, 0x041E, 0x844F, + 0x041F, 0x8450, 0x0420, 0x8451, 0x0421, 0x8452, 0x0422, 0x8453, + 0x0423, 0x8454, 0x0424, 0x8455, 0x0425, 0x8456, 0x0426, 0x8457, + 0x0427, 0x8458, 0x0428, 0x8459, 0x0429, 0x845A, 0x042A, 0x845B, + 0x042B, 0x845C, 0x042C, 0x845D, 0x042D, 0x845E, 0x042E, 0x845F, + 0x042F, 0x8460, 0x0430, 0x8470, 0x0431, 0x8471, 0x0432, 0x8472, + 0x0433, 0x8473, 0x0434, 0x8474, 0x0435, 0x8475, 0x0436, 0x8477, + 0x0437, 0x8478, 0x0438, 0x8479, 0x0439, 0x847A, 0x043A, 0x847B, + 0x043B, 0x847C, 0x043C, 0x847D, 0x043D, 0x847E, 0x043E, 0x8480, + 0x043F, 0x8481, 0x0440, 0x8482, 0x0441, 0x8483, 0x0442, 0x8484, + 0x0443, 0x8485, 0x0444, 0x8486, 0x0445, 0x8487, 0x0446, 0x8488, + 0x0447, 0x8489, 0x0448, 0x848A, 0x0449, 0x848B, 0x044A, 0x848C, + 0x044B, 0x848D, 0x044C, 0x848E, 0x044D, 0x848F, 0x044E, 0x8490, + 0x044F, 0x8491, 0x0451, 0x8476, 0x2010, 0x815D, 0x2015, 0x815C, + 0x2018, 0x8165, 0x2019, 0x8166, 0x201C, 0x8167, 0x201D, 0x8168, + 0x2020, 0x81F5, 0x2021, 0x81F6, 0x2025, 0x8164, 0x2026, 0x8163, + 0x2030, 0x81F1, 0x2032, 0x818C, 0x2033, 0x818D, 0x203B, 0x81A6, + 0x2103, 0x818E, 0x2116, 0x8782, 0x2121, 0x8784, 0x212B, 0x81F0, + 0x2160, 0x8754, 0x2161, 0x8755, 0x2162, 0x8756, 0x2163, 0x8757, + 0x2164, 0x8758, 0x2165, 0x8759, 0x2166, 0x875A, 0x2167, 0x875B, + 0x2168, 0x875C, 0x2169, 0x875D, 0x2170, 0xFA40, 0x2171, 0xFA41, + 0x2172, 0xFA42, 0x2173, 0xFA43, 0x2174, 0xFA44, 0x2175, 0xFA45, + 0x2176, 0xFA46, 0x2177, 0xFA47, 0x2178, 0xFA48, 0x2179, 0xFA49, + 0x2190, 0x81A9, 0x2191, 0x81AA, 0x2192, 0x81A8, 0x2193, 0x81AB, + 0x21D2, 0x81CB, 0x21D4, 0x81CC, 0x2200, 0x81CD, 0x2202, 0x81DD, + 0x2203, 0x81CE, 0x2207, 0x81DE, 0x2208, 0x81B8, 0x220B, 0x81B9, + 0x2211, 0x8794, 0x221A, 0x81E3, 0x221D, 0x81E5, 0x221E, 0x8187, + 0x221F, 0x8798, 0x2220, 0x81DA, 0x2225, 0x8161, 0x2227, 0x81C8, + 0x2228, 0x81C9, 0x2229, 0x81BF, 0x222A, 0x81BE, 0x222B, 0x81E7, + 0x222C, 0x81E8, 0x222E, 0x8793, 0x2234, 0x8188, 0x2235, 0x81E6, + 0x223D, 0x81E4, 0x2252, 0x81E0, 0x2260, 0x8182, 0x2261, 0x81DF, + 0x2266, 0x8185, 0x2267, 0x8186, 0x226A, 0x81E1, 0x226B, 0x81E2, + 0x2282, 0x81BC, 0x2283, 0x81BD, 0x2286, 0x81BA, 0x2287, 0x81BB, + 0x22A5, 0x81DB, 0x22BF, 0x8799, 0x2312, 0x81DC, 0x2460, 0x8740, + 0x2461, 0x8741, 0x2462, 0x8742, 0x2463, 0x8743, 0x2464, 0x8744, + 0x2465, 0x8745, 0x2466, 0x8746, 0x2467, 0x8747, 0x2468, 0x8748, + 0x2469, 0x8749, 0x246A, 0x874A, 0x246B, 0x874B, 0x246C, 0x874C, + 0x246D, 0x874D, 0x246E, 0x874E, 0x246F, 0x874F, 0x2470, 0x8750, + 0x2471, 0x8751, 0x2472, 0x8752, 0x2473, 0x8753, 0x2500, 0x849F, + 0x2501, 0x84AA, 0x2502, 0x84A0, 0x2503, 0x84AB, 0x250C, 0x84A1, + 0x250F, 0x84AC, 0x2510, 0x84A2, 0x2513, 0x84AD, 0x2514, 0x84A4, + 0x2517, 0x84AF, 0x2518, 0x84A3, 0x251B, 0x84AE, 0x251C, 0x84A5, + 0x251D, 0x84BA, 0x2520, 0x84B5, 0x2523, 0x84B0, 0x2524, 0x84A7, + 0x2525, 0x84BC, 0x2528, 0x84B7, 0x252B, 0x84B2, 0x252C, 0x84A6, + 0x252F, 0x84B6, 0x2530, 0x84BB, 0x2533, 0x84B1, 0x2534, 0x84A8, + 0x2537, 0x84B8, 0x2538, 0x84BD, 0x253B, 0x84B3, 0x253C, 0x84A9, + 0x253F, 0x84B9, 0x2542, 0x84BE, 0x254B, 0x84B4, 0x25A0, 0x81A1, + 0x25A1, 0x81A0, 0x25B2, 0x81A3, 0x25B3, 0x81A2, 0x25BC, 0x81A5, + 0x25BD, 0x81A4, 0x25C6, 0x819F, 0x25C7, 0x819E, 0x25CB, 0x819B, + 0x25CE, 0x819D, 0x25CF, 0x819C, 0x25EF, 0x81FC, 0x2605, 0x819A, + 0x2606, 0x8199, 0x2640, 0x818A, 0x2642, 0x8189, 0x266A, 0x81F4, + 0x266D, 0x81F3, 0x266F, 0x81F2, 0x3000, 0x8140, 0x3001, 0x8141, + 0x3002, 0x8142, 0x3003, 0x8156, 0x3005, 0x8158, 0x3006, 0x8159, + 0x3007, 0x815A, 0x3008, 0x8171, 0x3009, 0x8172, 0x300A, 0x8173, + 0x300B, 0x8174, 0x300C, 0x8175, 0x300D, 0x8176, 0x300E, 0x8177, + 0x300F, 0x8178, 0x3010, 0x8179, 0x3011, 0x817A, 0x3012, 0x81A7, + 0x3013, 0x81AC, 0x3014, 0x816B, 0x3015, 0x816C, 0x301D, 0x8780, + 0x301F, 0x8781, 0x3041, 0x829F, 0x3042, 0x82A0, 0x3043, 0x82A1, + 0x3044, 0x82A2, 0x3045, 0x82A3, 0x3046, 0x82A4, 0x3047, 0x82A5, + 0x3048, 0x82A6, 0x3049, 0x82A7, 0x304A, 0x82A8, 0x304B, 0x82A9, + 0x304C, 0x82AA, 0x304D, 0x82AB, 0x304E, 0x82AC, 0x304F, 0x82AD, + 0x3050, 0x82AE, 0x3051, 0x82AF, 0x3052, 0x82B0, 0x3053, 0x82B1, + 0x3054, 0x82B2, 0x3055, 0x82B3, 0x3056, 0x82B4, 0x3057, 0x82B5, + 0x3058, 0x82B6, 0x3059, 0x82B7, 0x305A, 0x82B8, 0x305B, 0x82B9, + 0x305C, 0x82BA, 0x305D, 0x82BB, 0x305E, 0x82BC, 0x305F, 0x82BD, + 0x3060, 0x82BE, 0x3061, 0x82BF, 0x3062, 0x82C0, 0x3063, 0x82C1, + 0x3064, 0x82C2, 0x3065, 0x82C3, 0x3066, 0x82C4, 0x3067, 0x82C5, + 0x3068, 0x82C6, 0x3069, 0x82C7, 0x306A, 0x82C8, 0x306B, 0x82C9, + 0x306C, 0x82CA, 0x306D, 0x82CB, 0x306E, 0x82CC, 0x306F, 0x82CD, + 0x3070, 0x82CE, 0x3071, 0x82CF, 0x3072, 0x82D0, 0x3073, 0x82D1, + 0x3074, 0x82D2, 0x3075, 0x82D3, 0x3076, 0x82D4, 0x3077, 0x82D5, + 0x3078, 0x82D6, 0x3079, 0x82D7, 0x307A, 0x82D8, 0x307B, 0x82D9, + 0x307C, 0x82DA, 0x307D, 0x82DB, 0x307E, 0x82DC, 0x307F, 0x82DD, + 0x3080, 0x82DE, 0x3081, 0x82DF, 0x3082, 0x82E0, 0x3083, 0x82E1, + 0x3084, 0x82E2, 0x3085, 0x82E3, 0x3086, 0x82E4, 0x3087, 0x82E5, + 0x3088, 0x82E6, 0x3089, 0x82E7, 0x308A, 0x82E8, 0x308B, 0x82E9, + 0x308C, 0x82EA, 0x308D, 0x82EB, 0x308E, 0x82EC, 0x308F, 0x82ED, + 0x3090, 0x82EE, 0x3091, 0x82EF, 0x3092, 0x82F0, 0x3093, 0x82F1, + 0x309B, 0x814A, 0x309C, 0x814B, 0x309D, 0x8154, 0x309E, 0x8155, + 0x30A1, 0x8340, 0x30A2, 0x8341, 0x30A3, 0x8342, 0x30A4, 0x8343, + 0x30A5, 0x8344, 0x30A6, 0x8345, 0x30A7, 0x8346, 0x30A8, 0x8347, + 0x30A9, 0x8348, 0x30AA, 0x8349, 0x30AB, 0x834A, 0x30AC, 0x834B, + 0x30AD, 0x834C, 0x30AE, 0x834D, 0x30AF, 0x834E, 0x30B0, 0x834F, + 0x30B1, 0x8350, 0x30B2, 0x8351, 0x30B3, 0x8352, 0x30B4, 0x8353, + 0x30B5, 0x8354, 0x30B6, 0x8355, 0x30B7, 0x8356, 0x30B8, 0x8357, + 0x30B9, 0x8358, 0x30BA, 0x8359, 0x30BB, 0x835A, 0x30BC, 0x835B, + 0x30BD, 0x835C, 0x30BE, 0x835D, 0x30BF, 0x835E, 0x30C0, 0x835F, + 0x30C1, 0x8360, 0x30C2, 0x8361, 0x30C3, 0x8362, 0x30C4, 0x8363, + 0x30C5, 0x8364, 0x30C6, 0x8365, 0x30C7, 0x8366, 0x30C8, 0x8367, + 0x30C9, 0x8368, 0x30CA, 0x8369, 0x30CB, 0x836A, 0x30CC, 0x836B, + 0x30CD, 0x836C, 0x30CE, 0x836D, 0x30CF, 0x836E, 0x30D0, 0x836F, + 0x30D1, 0x8370, 0x30D2, 0x8371, 0x30D3, 0x8372, 0x30D4, 0x8373, + 0x30D5, 0x8374, 0x30D6, 0x8375, 0x30D7, 0x8376, 0x30D8, 0x8377, + 0x30D9, 0x8378, 0x30DA, 0x8379, 0x30DB, 0x837A, 0x30DC, 0x837B, + 0x30DD, 0x837C, 0x30DE, 0x837D, 0x30DF, 0x837E, 0x30E0, 0x8380, + 0x30E1, 0x8381, 0x30E2, 0x8382, 0x30E3, 0x8383, 0x30E4, 0x8384, + 0x30E5, 0x8385, 0x30E6, 0x8386, 0x30E7, 0x8387, 0x30E8, 0x8388, + 0x30E9, 0x8389, 0x30EA, 0x838A, 0x30EB, 0x838B, 0x30EC, 0x838C, + 0x30ED, 0x838D, 0x30EE, 0x838E, 0x30EF, 0x838F, 0x30F0, 0x8390, + 0x30F1, 0x8391, 0x30F2, 0x8392, 0x30F3, 0x8393, 0x30F4, 0x8394, + 0x30F5, 0x8395, 0x30F6, 0x8396, 0x30FB, 0x8145, 0x30FC, 0x815B, + 0x30FD, 0x8152, 0x30FE, 0x8153, 0x3231, 0x878A, 0x3232, 0x878B, + 0x3239, 0x878C, 0x32A4, 0x8785, 0x32A5, 0x8786, 0x32A6, 0x8787, + 0x32A7, 0x8788, 0x32A8, 0x8789, 0x3303, 0x8765, 0x330D, 0x8769, + 0x3314, 0x8760, 0x3318, 0x8763, 0x3322, 0x8761, 0x3323, 0x876B, + 0x3326, 0x876A, 0x3327, 0x8764, 0x332B, 0x876C, 0x3336, 0x8766, + 0x333B, 0x876E, 0x3349, 0x875F, 0x334A, 0x876D, 0x334D, 0x8762, + 0x3351, 0x8767, 0x3357, 0x8768, 0x337B, 0x877E, 0x337C, 0x878F, + 0x337D, 0x878E, 0x337E, 0x878D, 0x338E, 0x8772, 0x338F, 0x8773, + 0x339C, 0x876F, 0x339D, 0x8770, 0x339E, 0x8771, 0x33A1, 0x8775, + 0x33C4, 0x8774, 0x33CD, 0x8783, 0x4E00, 0x88EA, 0x4E01, 0x929A, + 0x4E03, 0x8EB5, 0x4E07, 0x969C, 0x4E08, 0x8FE4, 0x4E09, 0x8E4F, + 0x4E0A, 0x8FE3, 0x4E0B, 0x89BA, 0x4E0D, 0x9573, 0x4E0E, 0x975E, + 0x4E10, 0x98A0, 0x4E11, 0x894E, 0x4E14, 0x8A8E, 0x4E15, 0x98A1, + 0x4E16, 0x90A2, 0x4E17, 0x99C0, 0x4E18, 0x8B75, 0x4E19, 0x95B8, + 0x4E1E, 0x8FE5, 0x4E21, 0x97BC, 0x4E26, 0x95C0, 0x4E28, 0xFA68, + 0x4E2A, 0x98A2, 0x4E2D, 0x9286, 0x4E31, 0x98A3, 0x4E32, 0x8BF8, + 0x4E36, 0x98A4, 0x4E38, 0x8ADB, 0x4E39, 0x924F, 0x4E3B, 0x8EE5, + 0x4E3C, 0x98A5, 0x4E3F, 0x98A6, 0x4E42, 0x98A7, 0x4E43, 0x9454, + 0x4E45, 0x8B76, 0x4E4B, 0x9456, 0x4E4D, 0x93E1, 0x4E4E, 0x8CC1, + 0x4E4F, 0x9652, 0x4E55, 0xE568, 0x4E56, 0x98A8, 0x4E57, 0x8FE6, + 0x4E58, 0x98A9, 0x4E59, 0x89B3, 0x4E5D, 0x8BE3, 0x4E5E, 0x8CEE, + 0x4E5F, 0x96E7, 0x4E62, 0x9BA4, 0x4E71, 0x9790, 0x4E73, 0x93FB, + 0x4E7E, 0x8AA3, 0x4E80, 0x8B54, 0x4E82, 0x98AA, 0x4E85, 0x98AB, + 0x4E86, 0x97B9, 0x4E88, 0x975C, 0x4E89, 0x9188, 0x4E8A, 0x98AD, + 0x4E8B, 0x8E96, 0x4E8C, 0x93F1, 0x4E8E, 0x98B0, 0x4E91, 0x895D, + 0x4E92, 0x8CDD, 0x4E94, 0x8CDC, 0x4E95, 0x88E4, 0x4E98, 0x986A, + 0x4E99, 0x9869, 0x4E9B, 0x8DB1, 0x4E9C, 0x889F, 0x4E9E, 0x98B1, + 0x4E9F, 0x98B2, 0x4EA0, 0x98B3, 0x4EA1, 0x9653, 0x4EA2, 0x98B4, + 0x4EA4, 0x8CF0, 0x4EA5, 0x88E5, 0x4EA6, 0x9692, 0x4EA8, 0x8B9C, + 0x4EAB, 0x8B9D, 0x4EAC, 0x8B9E, 0x4EAD, 0x92E0, 0x4EAE, 0x97BA, + 0x4EB0, 0x98B5, 0x4EB3, 0x98B6, 0x4EB6, 0x98B7, 0x4EBA, 0x906C, + 0x4EC0, 0x8F59, 0x4EC1, 0x906D, 0x4EC2, 0x98BC, 0x4EC4, 0x98BA, + 0x4EC6, 0x98BB, 0x4EC7, 0x8B77, 0x4ECA, 0x8DA1, 0x4ECB, 0x89EE, + 0x4ECD, 0x98B9, 0x4ECE, 0x98B8, 0x4ECF, 0x95A7, 0x4ED4, 0x8E65, + 0x4ED5, 0x8E64, 0x4ED6, 0x91BC, 0x4ED7, 0x98BD, 0x4ED8, 0x9574, + 0x4ED9, 0x90E5, 0x4EDD, 0x8157, 0x4EDE, 0x98BE, 0x4EDF, 0x98C0, + 0x4EE1, 0xFA69, 0x4EE3, 0x91E3, 0x4EE4, 0x97DF, 0x4EE5, 0x88C8, + 0x4EED, 0x98BF, 0x4EEE, 0x89BC, 0x4EF0, 0x8BC2, 0x4EF2, 0x9287, + 0x4EF6, 0x8C8F, 0x4EF7, 0x98C1, 0x4EFB, 0x9443, 0x4EFC, 0xFA6A, + 0x4F00, 0xFA6B, 0x4F01, 0x8AE9, 0x4F03, 0xFA6C, 0x4F09, 0x98C2, + 0x4F0A, 0x88C9, 0x4F0D, 0x8CDE, 0x4F0E, 0x8AEA, 0x4F0F, 0x959A, + 0x4F10, 0x94B0, 0x4F11, 0x8B78, 0x4F1A, 0x89EF, 0x4F1C, 0x98E5, + 0x4F1D, 0x9360, 0x4F2F, 0x948C, 0x4F30, 0x98C4, 0x4F34, 0x94BA, + 0x4F36, 0x97E0, 0x4F38, 0x904C, 0x4F39, 0xFA6D, 0x4F3A, 0x8E66, + 0x4F3C, 0x8E97, 0x4F3D, 0x89BE, 0x4F43, 0x92CF, 0x4F46, 0x9241, + 0x4F47, 0x98C8, 0x4F4D, 0x88CA, 0x4F4E, 0x92E1, 0x4F4F, 0x8F5A, + 0x4F50, 0x8DB2, 0x4F51, 0x9743, 0x4F53, 0x91CC, 0x4F55, 0x89BD, + 0x4F56, 0xFA6E, 0x4F57, 0x98C7, 0x4F59, 0x975D, 0x4F5A, 0x98C3, + 0x4F5B, 0x98C5, 0x4F5C, 0x8DEC, 0x4F5D, 0x98C6, 0x4F5E, 0x9B43, + 0x4F69, 0x98CE, 0x4F6F, 0x98D1, 0x4F70, 0x98CF, 0x4F73, 0x89C0, + 0x4F75, 0x95B9, 0x4F76, 0x98C9, 0x4F7B, 0x98CD, 0x4F7C, 0x8CF1, + 0x4F7F, 0x8E67, 0x4F83, 0x8AA4, 0x4F86, 0x98D2, 0x4F88, 0x98CA, + 0x4F8A, 0xFA70, 0x4F8B, 0x97E1, 0x4F8D, 0x8E98, 0x4F8F, 0x98CB, + 0x4F91, 0x98D0, 0x4F92, 0xFA6F, 0x4F94, 0xFA72, 0x4F96, 0x98D3, + 0x4F98, 0x98CC, 0x4F9A, 0xFA71, 0x4F9B, 0x8B9F, 0x4F9D, 0x88CB, + 0x4FA0, 0x8BA0, 0x4FA1, 0x89BF, 0x4FAB, 0x9B44, 0x4FAD, 0x9699, + 0x4FAE, 0x958E, 0x4FAF, 0x8CF2, 0x4FB5, 0x904E, 0x4FB6, 0x97B5, + 0x4FBF, 0x95D6, 0x4FC2, 0x8C57, 0x4FC3, 0x91A3, 0x4FC4, 0x89E2, + 0x4FC9, 0xFA61, 0x4FCA, 0x8F72, 0x4FCD, 0xFA73, 0x4FCE, 0x98D7, + 0x4FD0, 0x98DC, 0x4FD1, 0x98DA, 0x4FD4, 0x98D5, 0x4FD7, 0x91AD, + 0x4FD8, 0x98D8, 0x4FDA, 0x98DB, 0x4FDB, 0x98D9, 0x4FDD, 0x95DB, + 0x4FDF, 0x98D6, 0x4FE1, 0x904D, 0x4FE3, 0x9693, 0x4FE4, 0x98DD, + 0x4FE5, 0x98DE, 0x4FEE, 0x8F43, 0x4FEF, 0x98EB, 0x4FF3, 0x946F, + 0x4FF5, 0x9555, 0x4FF6, 0x98E6, 0x4FF8, 0x95EE, 0x4FFA, 0x89B4, + 0x4FFE, 0x98EA, 0x4FFF, 0xFA76, 0x5005, 0x98E4, 0x5006, 0x98ED, + 0x5009, 0x9171, 0x500B, 0x8CC2, 0x500D, 0x947B, 0x500F, 0xE0C5, + 0x5011, 0x98EC, 0x5012, 0x937C, 0x5014, 0x98E1, 0x5016, 0x8CF4, + 0x5019, 0x8CF3, 0x501A, 0x98DF, 0x501E, 0xFA77, 0x501F, 0x8ED8, + 0x5021, 0x98E7, 0x5022, 0xFA75, 0x5023, 0x95ED, 0x5024, 0x926C, + 0x5025, 0x98E3, 0x5026, 0x8C91, 0x5028, 0x98E0, 0x5029, 0x98E8, + 0x502A, 0x98E2, 0x502B, 0x97CF, 0x502C, 0x98E9, 0x502D, 0x9860, + 0x5036, 0x8BE4, 0x5039, 0x8C90, 0x5040, 0xFA74, 0x5042, 0xFA7A, + 0x5043, 0x98EE, 0x5046, 0xFA78, 0x5047, 0x98EF, 0x5048, 0x98F3, + 0x5049, 0x88CC, 0x504F, 0x95CE, 0x5050, 0x98F2, 0x5055, 0x98F1, + 0x5056, 0x98F5, 0x505A, 0x98F4, 0x505C, 0x92E2, 0x5065, 0x8C92, + 0x506C, 0x98F6, 0x5070, 0xFA79, 0x5072, 0x8EC3, 0x5074, 0x91A4, + 0x5075, 0x92E3, 0x5076, 0x8BF4, 0x5078, 0x98F7, 0x507D, 0x8B55, + 0x5080, 0x98F8, 0x5085, 0x98FA, 0x508D, 0x9654, 0x5091, 0x8C86, + 0x5094, 0xFA7B, 0x5098, 0x8E50, 0x5099, 0x94F5, 0x509A, 0x98F9, + 0x50AC, 0x8DC3, 0x50AD, 0x9762, 0x50B2, 0x98FC, 0x50B3, 0x9942, + 0x50B4, 0x98FB, 0x50B5, 0x8DC2, 0x50B7, 0x8F9D, 0x50BE, 0x8C58, + 0x50C2, 0x9943, 0x50C5, 0x8BCD, 0x50C9, 0x9940, 0x50CA, 0x9941, + 0x50CD, 0x93AD, 0x50CF, 0x919C, 0x50D1, 0x8BA1, 0x50D5, 0x966C, + 0x50D6, 0x9944, 0x50D8, 0xFA7D, 0x50DA, 0x97BB, 0x50DE, 0x9945, + 0x50E3, 0x9948, 0x50E5, 0x9946, 0x50E7, 0x916D, 0x50ED, 0x9947, + 0x50EE, 0x9949, 0x50F4, 0xFA7C, 0x50F5, 0x994B, 0x50F9, 0x994A, + 0x50FB, 0x95C6, 0x5100, 0x8B56, 0x5101, 0x994D, 0x5102, 0x994E, + 0x5104, 0x89AD, 0x5109, 0x994C, 0x5112, 0x8EF2, 0x5114, 0x9951, + 0x5115, 0x9950, 0x5116, 0x994F, 0x5118, 0x98D4, 0x511A, 0x9952, + 0x511F, 0x8F9E, 0x5121, 0x9953, 0x512A, 0x9744, 0x5132, 0x96D7, + 0x5137, 0x9955, 0x513A, 0x9954, 0x513B, 0x9957, 0x513C, 0x9956, + 0x513F, 0x9958, 0x5140, 0x9959, 0x5141, 0x88F2, 0x5143, 0x8CB3, + 0x5144, 0x8C5A, 0x5145, 0x8F5B, 0x5146, 0x929B, 0x5147, 0x8BA2, + 0x5148, 0x90E6, 0x5149, 0x8CF5, 0x514A, 0xFA7E, 0x514B, 0x8D8E, + 0x514C, 0x995B, 0x514D, 0x96C6, 0x514E, 0x9365, 0x5150, 0x8E99, + 0x5152, 0x995A, 0x5154, 0x995C, 0x515A, 0x937D, 0x515C, 0x8A95, + 0x5162, 0x995D, 0x5164, 0xFA80, 0x5165, 0x93FC, 0x5168, 0x9153, + 0x5169, 0x995F, 0x516A, 0x9960, 0x516B, 0x94AA, 0x516C, 0x8CF6, + 0x516D, 0x985A, 0x516E, 0x9961, 0x5171, 0x8BA4, 0x5175, 0x95BA, + 0x5176, 0x91B4, 0x5177, 0x8BEF, 0x5178, 0x9354, 0x517C, 0x8C93, + 0x5180, 0x9962, 0x5182, 0x9963, 0x5185, 0x93E0, 0x5186, 0x897E, + 0x5189, 0x9966, 0x518A, 0x8DFB, 0x518C, 0x9965, 0x518D, 0x8DC4, + 0x518F, 0x9967, 0x5190, 0xE3EC, 0x5191, 0x9968, 0x5192, 0x9660, + 0x5193, 0x9969, 0x5195, 0x996A, 0x5196, 0x996B, 0x5197, 0x8FE7, + 0x5199, 0x8ECA, 0x519D, 0xFA81, 0x51A0, 0x8AA5, 0x51A2, 0x996E, + 0x51A4, 0x996C, 0x51A5, 0x96BB, 0x51A6, 0x996D, 0x51A8, 0x9579, + 0x51A9, 0x996F, 0x51AA, 0x9970, 0x51AB, 0x9971, 0x51AC, 0x937E, + 0x51B0, 0x9975, 0x51B1, 0x9973, 0x51B2, 0x9974, 0x51B3, 0x9972, + 0x51B4, 0x8DE1, 0x51B5, 0x9976, 0x51B6, 0x96E8, 0x51B7, 0x97E2, + 0x51BD, 0x9977, 0x51BE, 0xFA82, 0x51C4, 0x90A6, 0x51C5, 0x9978, + 0x51C6, 0x8F79, 0x51C9, 0x9979, 0x51CB, 0x929C, 0x51CC, 0x97BD, + 0x51CD, 0x9380, 0x51D6, 0x99C3, 0x51DB, 0x997A, 0x51DC, 0xEAA3, + 0x51DD, 0x8BC3, 0x51E0, 0x997B, 0x51E1, 0x967D, 0x51E6, 0x8F88, + 0x51E7, 0x91FA, 0x51E9, 0x997D, 0x51EA, 0x93E2, 0x51EC, 0xFA83, + 0x51ED, 0x997E, 0x51F0, 0x9980, 0x51F1, 0x8A4D, 0x51F5, 0x9981, + 0x51F6, 0x8BA5, 0x51F8, 0x93CA, 0x51F9, 0x899A, 0x51FA, 0x8F6F, + 0x51FD, 0x949F, 0x51FE, 0x9982, 0x5200, 0x9381, 0x5203, 0x906E, + 0x5204, 0x9983, 0x5206, 0x95AA, 0x5207, 0x90D8, 0x5208, 0x8AA0, + 0x520A, 0x8AA7, 0x520B, 0x9984, 0x520E, 0x9986, 0x5211, 0x8C59, + 0x5214, 0x9985, 0x5215, 0xFA84, 0x5217, 0x97F1, 0x521D, 0x8F89, + 0x5224, 0x94BB, 0x5225, 0x95CA, 0x5227, 0x9987, 0x5229, 0x9798, + 0x522A, 0x9988, 0x522E, 0x9989, 0x5230, 0x939E, 0x5233, 0x998A, + 0x5236, 0x90A7, 0x5237, 0x8DFC, 0x5238, 0x8C94, 0x5239, 0x998B, + 0x523A, 0x8E68, 0x523B, 0x8D8F, 0x5243, 0x92E4, 0x5244, 0x998D, + 0x5247, 0x91A5, 0x524A, 0x8DED, 0x524B, 0x998E, 0x524C, 0x998F, + 0x524D, 0x914F, 0x524F, 0x998C, 0x5254, 0x9991, 0x5256, 0x9655, + 0x525B, 0x8D84, 0x525E, 0x9990, 0x5263, 0x8C95, 0x5264, 0x8DDC, + 0x5265, 0x948D, 0x5269, 0x9994, 0x526A, 0x9992, 0x526F, 0x959B, + 0x5270, 0x8FE8, 0x5271, 0x999B, 0x5272, 0x8A84, 0x5273, 0x9995, + 0x5274, 0x9993, 0x5275, 0x916E, 0x527D, 0x9997, 0x527F, 0x9996, + 0x5283, 0x8A63, 0x5287, 0x8C80, 0x5288, 0x999C, 0x5289, 0x97AB, + 0x528D, 0x9998, 0x5291, 0x999D, 0x5292, 0x999A, 0x5294, 0x9999, + 0x529B, 0x97CD, 0x529C, 0xFA85, 0x529F, 0x8CF7, 0x52A0, 0x89C1, + 0x52A3, 0x97F2, 0x52A6, 0xFA86, 0x52A9, 0x8F95, 0x52AA, 0x9377, + 0x52AB, 0x8D85, 0x52AC, 0x99A0, 0x52AD, 0x99A1, 0x52AF, 0xFB77, + 0x52B1, 0x97E3, 0x52B4, 0x984A, 0x52B5, 0x99A3, 0x52B9, 0x8CF8, + 0x52BC, 0x99A2, 0x52BE, 0x8A4E, 0x52C0, 0xFA87, 0x52C1, 0x99A4, + 0x52C3, 0x9675, 0x52C5, 0x92BA, 0x52C7, 0x9745, 0x52C9, 0x95D7, + 0x52CD, 0x99A5, 0x52D2, 0xE8D3, 0x52D5, 0x93AE, 0x52D7, 0x99A6, + 0x52D8, 0x8AA8, 0x52D9, 0x96B1, 0x52DB, 0xFA88, 0x52DD, 0x8F9F, + 0x52DE, 0x99A7, 0x52DF, 0x95E5, 0x52E0, 0x99AB, 0x52E2, 0x90A8, + 0x52E3, 0x99A8, 0x52E4, 0x8BCE, 0x52E6, 0x99A9, 0x52E7, 0x8AA9, + 0x52F2, 0x8C4D, 0x52F3, 0x99AC, 0x52F5, 0x99AD, 0x52F8, 0x99AE, + 0x52F9, 0x99AF, 0x52FA, 0x8ED9, 0x52FE, 0x8CF9, 0x52FF, 0x96DC, + 0x5300, 0xFA89, 0x5301, 0x96E6, 0x5302, 0x93F5, 0x5305, 0x95EF, + 0x5306, 0x99B0, 0x5307, 0xFA8A, 0x5308, 0x99B1, 0x530D, 0x99B3, + 0x530F, 0x99B5, 0x5310, 0x99B4, 0x5315, 0x99B6, 0x5316, 0x89BB, + 0x5317, 0x966B, 0x5319, 0x8DFA, 0x531A, 0x99B7, 0x531D, 0x9178, + 0x5320, 0x8FA0, 0x5321, 0x8BA7, 0x5323, 0x99B8, 0x5324, 0xFA8B, + 0x532A, 0x94D9, 0x532F, 0x99B9, 0x5331, 0x99BA, 0x5333, 0x99BB, + 0x5338, 0x99BC, 0x5339, 0x9543, 0x533A, 0x8BE6, 0x533B, 0x88E3, + 0x533F, 0x93BD, 0x5340, 0x99BD, 0x5341, 0x8F5C, 0x5343, 0x90E7, + 0x5345, 0x99BF, 0x5346, 0x99BE, 0x5347, 0x8FA1, 0x5348, 0x8CDF, + 0x5349, 0x99C1, 0x534A, 0x94BC, 0x534D, 0x99C2, 0x5351, 0x94DA, + 0x5352, 0x91B2, 0x5353, 0x91EC, 0x5354, 0x8BA6, 0x5357, 0x93EC, + 0x5358, 0x9250, 0x535A, 0x948E, 0x535C, 0x966D, 0x535E, 0x99C4, + 0x5360, 0x90E8, 0x5366, 0x8C54, 0x5369, 0x99C5, 0x536E, 0x99C6, + 0x536F, 0x894B, 0x5370, 0x88F3, 0x5371, 0x8AEB, 0x5372, 0xFA8C, + 0x5373, 0x91A6, 0x5374, 0x8B70, 0x5375, 0x9791, 0x5377, 0x99C9, + 0x5378, 0x89B5, 0x537B, 0x99C8, 0x537F, 0x8BA8, 0x5382, 0x99CA, + 0x5384, 0x96EF, 0x5393, 0xFA8D, 0x5396, 0x99CB, 0x5398, 0x97D0, + 0x539A, 0x8CFA, 0x539F, 0x8CB4, 0x53A0, 0x99CC, 0x53A5, 0x99CE, + 0x53A6, 0x99CD, 0x53A8, 0x907E, 0x53A9, 0x8958, 0x53AD, 0x897D, + 0x53AE, 0x99CF, 0x53B0, 0x99D0, 0x53B2, 0xFA8E, 0x53B3, 0x8CB5, + 0x53B6, 0x99D1, 0x53BB, 0x8B8E, 0x53C2, 0x8E51, 0x53C3, 0x99D2, + 0x53C8, 0x9694, 0x53C9, 0x8DB3, 0x53CA, 0x8B79, 0x53CB, 0x9746, + 0x53CC, 0x916F, 0x53CD, 0x94BD, 0x53CE, 0x8EFB, 0x53D4, 0x8F66, + 0x53D6, 0x8EE6, 0x53D7, 0x8EF3, 0x53D9, 0x8F96, 0x53DB, 0x94BE, + 0x53DD, 0xFA8F, 0x53DF, 0x99D5, 0x53E1, 0x8962, 0x53E2, 0x9170, + 0x53E3, 0x8CFB, 0x53E4, 0x8CC3, 0x53E5, 0x8BE5, 0x53E8, 0x99D9, + 0x53E9, 0x9240, 0x53EA, 0x91FC, 0x53EB, 0x8BA9, 0x53EC, 0x8FA2, + 0x53ED, 0x99DA, 0x53EE, 0x99D8, 0x53EF, 0x89C2, 0x53F0, 0x91E4, + 0x53F1, 0x8EB6, 0x53F2, 0x8E6A, 0x53F3, 0x8945, 0x53F6, 0x8A90, + 0x53F7, 0x8D86, 0x53F8, 0x8E69, 0x53FA, 0x99DB, 0x5401, 0x99DC, + 0x5403, 0x8B68, 0x5404, 0x8A65, 0x5408, 0x8D87, 0x5409, 0x8B67, + 0x540A, 0x92DD, 0x540B, 0x8944, 0x540C, 0x93AF, 0x540D, 0x96BC, + 0x540E, 0x8D40, 0x540F, 0x9799, 0x5410, 0x9366, 0x5411, 0x8CFC, + 0x541B, 0x8C4E, 0x541D, 0x99E5, 0x541F, 0x8BE1, 0x5420, 0x9669, + 0x5426, 0x94DB, 0x5429, 0x99E4, 0x542B, 0x8ADC, 0x542C, 0x99DF, + 0x542D, 0x99E0, 0x542E, 0x99E2, 0x5436, 0x99E3, 0x5438, 0x8B7A, + 0x5439, 0x9081, 0x543B, 0x95AB, 0x543C, 0x99E1, 0x543D, 0x99DD, + 0x543E, 0x8CE1, 0x5440, 0x99DE, 0x5442, 0x9843, 0x5446, 0x95F0, + 0x5448, 0x92E6, 0x5449, 0x8CE0, 0x544A, 0x8D90, 0x544E, 0x99E6, + 0x5451, 0x93DB, 0x545F, 0x99EA, 0x5468, 0x8EFC, 0x546A, 0x8EF4, + 0x5470, 0x99ED, 0x5471, 0x99EB, 0x5473, 0x96A1, 0x5475, 0x99E8, + 0x5476, 0x99F1, 0x5477, 0x99EC, 0x547B, 0x99EF, 0x547C, 0x8CC4, + 0x547D, 0x96BD, 0x5480, 0x99F0, 0x5484, 0x99F2, 0x5486, 0x99F4, + 0x548A, 0xFA92, 0x548B, 0x8DEE, 0x548C, 0x9861, 0x548E, 0x99E9, + 0x548F, 0x99E7, 0x5490, 0x99F3, 0x5492, 0x99EE, 0x549C, 0xFA91, + 0x54A2, 0x99F6, 0x54A4, 0x9A42, 0x54A5, 0x99F8, 0x54A8, 0x99FC, + 0x54A9, 0xFA93, 0x54AB, 0x9A40, 0x54AC, 0x99F9, 0x54AF, 0x9A5D, + 0x54B2, 0x8DE7, 0x54B3, 0x8A50, 0x54B8, 0x99F7, 0x54BC, 0x9A44, + 0x54BD, 0x88F4, 0x54BE, 0x9A43, 0x54C0, 0x88A3, 0x54C1, 0x9569, + 0x54C2, 0x9A41, 0x54C4, 0x99FA, 0x54C7, 0x99F5, 0x54C8, 0x99FB, + 0x54C9, 0x8DC6, 0x54D8, 0x9A45, 0x54E1, 0x88F5, 0x54E2, 0x9A4E, + 0x54E5, 0x9A46, 0x54E6, 0x9A47, 0x54E8, 0x8FA3, 0x54E9, 0x9689, + 0x54ED, 0x9A4C, 0x54EE, 0x9A4B, 0x54F2, 0x934E, 0x54FA, 0x9A4D, + 0x54FD, 0x9A4A, 0x54FF, 0xFA94, 0x5504, 0x8953, 0x5506, 0x8DB4, + 0x5507, 0x904F, 0x550F, 0x9A48, 0x5510, 0x9382, 0x5514, 0x9A49, + 0x5516, 0x88A0, 0x552E, 0x9A53, 0x552F, 0x9742, 0x5531, 0x8FA5, + 0x5533, 0x9A59, 0x5538, 0x9A58, 0x5539, 0x9A4F, 0x553E, 0x91C1, + 0x5540, 0x9A50, 0x5544, 0x91ED, 0x5545, 0x9A55, 0x5546, 0x8FA4, + 0x554C, 0x9A52, 0x554F, 0x96E2, 0x5553, 0x8C5B, 0x5556, 0x9A56, + 0x5557, 0x9A57, 0x555C, 0x9A54, 0x555D, 0x9A5A, 0x5563, 0x9A51, + 0x557B, 0x9A60, 0x557C, 0x9A65, 0x557E, 0x9A61, 0x5580, 0x9A5C, + 0x5583, 0x9A66, 0x5584, 0x9150, 0x5586, 0xFA95, 0x5587, 0x9A68, + 0x5589, 0x8D41, 0x558A, 0x9A5E, 0x558B, 0x929D, 0x5598, 0x9A62, + 0x5599, 0x9A5B, 0x559A, 0x8AAB, 0x559C, 0x8AEC, 0x559D, 0x8A85, + 0x559E, 0x9A63, 0x559F, 0x9A5F, 0x55A7, 0x8C96, 0x55A8, 0x9A69, + 0x55A9, 0x9A67, 0x55AA, 0x9172, 0x55AB, 0x8B69, 0x55AC, 0x8BAA, + 0x55AE, 0x9A64, 0x55B0, 0x8BF2, 0x55B6, 0x8963, 0x55C4, 0x9A6D, + 0x55C5, 0x9A6B, 0x55C7, 0x9AA5, 0x55D4, 0x9A70, 0x55DA, 0x9A6A, + 0x55DC, 0x9A6E, 0x55DF, 0x9A6C, 0x55E3, 0x8E6B, 0x55E4, 0x9A6F, + 0x55F7, 0x9A72, 0x55F9, 0x9A77, 0x55FD, 0x9A75, 0x55FE, 0x9A74, + 0x5606, 0x9251, 0x5609, 0x89C3, 0x5614, 0x9A71, 0x5616, 0x9A73, + 0x5617, 0x8FA6, 0x5618, 0x8952, 0x561B, 0x9A76, 0x5629, 0x89DC, + 0x562F, 0x9A82, 0x5631, 0x8FFA, 0x5632, 0x9A7D, 0x5634, 0x9A7B, + 0x5636, 0x9A7C, 0x5638, 0x9A7E, 0x5642, 0x895C, 0x564C, 0x9158, + 0x564E, 0x9A78, 0x5650, 0x9A79, 0x565B, 0x8A9A, 0x5664, 0x9A81, + 0x5668, 0x8AED, 0x566A, 0x9A84, 0x566B, 0x9A80, 0x566C, 0x9A83, + 0x5674, 0x95AC, 0x5678, 0x93D3, 0x567A, 0x94B6, 0x5680, 0x9A86, + 0x5686, 0x9A85, 0x5687, 0x8A64, 0x568A, 0x9A87, 0x568F, 0x9A8A, + 0x5694, 0x9A89, 0x56A0, 0x9A88, 0x56A2, 0x9458, 0x56A5, 0x9A8B, + 0x56AE, 0x9A8C, 0x56B4, 0x9A8E, 0x56B6, 0x9A8D, 0x56BC, 0x9A90, + 0x56C0, 0x9A93, 0x56C1, 0x9A91, 0x56C2, 0x9A8F, 0x56C3, 0x9A92, + 0x56C8, 0x9A94, 0x56CE, 0x9A95, 0x56D1, 0x9A96, 0x56D3, 0x9A97, + 0x56D7, 0x9A98, 0x56D8, 0x9964, 0x56DA, 0x8EFA, 0x56DB, 0x8E6C, + 0x56DE, 0x89F1, 0x56E0, 0x88F6, 0x56E3, 0x9263, 0x56EE, 0x9A99, + 0x56F0, 0x8DA2, 0x56F2, 0x88CD, 0x56F3, 0x907D, 0x56F9, 0x9A9A, + 0x56FA, 0x8CC5, 0x56FD, 0x8D91, 0x56FF, 0x9A9C, 0x5700, 0x9A9B, + 0x5703, 0x95DE, 0x5704, 0x9A9D, 0x5708, 0x9A9F, 0x5709, 0x9A9E, + 0x570B, 0x9AA0, 0x570D, 0x9AA1, 0x570F, 0x8C97, 0x5712, 0x8980, + 0x5713, 0x9AA2, 0x5716, 0x9AA4, 0x5718, 0x9AA3, 0x571C, 0x9AA6, + 0x571F, 0x9379, 0x5726, 0x9AA7, 0x5727, 0x88B3, 0x5728, 0x8DDD, + 0x572D, 0x8C5C, 0x5730, 0x926E, 0x5737, 0x9AA8, 0x5738, 0x9AA9, + 0x573B, 0x9AAB, 0x5740, 0x9AAC, 0x5742, 0x8DE2, 0x5747, 0x8BCF, + 0x574A, 0x9656, 0x574E, 0x9AAA, 0x574F, 0x9AAD, 0x5750, 0x8DBF, + 0x5751, 0x8D42, 0x5759, 0xFA96, 0x5761, 0x9AB1, 0x5764, 0x8DA3, + 0x5765, 0xFA97, 0x5766, 0x9252, 0x5769, 0x9AAE, 0x576A, 0x92D8, + 0x577F, 0x9AB2, 0x5782, 0x9082, 0x5788, 0x9AB0, 0x5789, 0x9AB3, + 0x578B, 0x8C5E, 0x5793, 0x9AB4, 0x57A0, 0x9AB5, 0x57A2, 0x8D43, + 0x57A3, 0x8A5F, 0x57A4, 0x9AB7, 0x57AA, 0x9AB8, 0x57AC, 0xFA98, + 0x57B0, 0x9AB9, 0x57B3, 0x9AB6, 0x57C0, 0x9AAF, 0x57C3, 0x9ABA, + 0x57C6, 0x9ABB, 0x57C7, 0xFA9A, 0x57C8, 0xFA99, 0x57CB, 0x9684, + 0x57CE, 0x8FE9, 0x57D2, 0x9ABD, 0x57D3, 0x9ABE, 0x57D4, 0x9ABC, + 0x57D6, 0x9AC0, 0x57DC, 0x9457, 0x57DF, 0x88E6, 0x57E0, 0x9575, + 0x57E3, 0x9AC1, 0x57F4, 0x8FFB, 0x57F7, 0x8EB7, 0x57F9, 0x947C, + 0x57FA, 0x8AEE, 0x57FC, 0x8DE9, 0x5800, 0x9678, 0x5802, 0x93B0, + 0x5805, 0x8C98, 0x5806, 0x91CD, 0x580A, 0x9ABF, 0x580B, 0x9AC2, + 0x5815, 0x91C2, 0x5819, 0x9AC3, 0x581D, 0x9AC4, 0x5821, 0x9AC6, + 0x5824, 0x92E7, 0x582A, 0x8AAC, 0x582F, 0xEA9F, 0x5830, 0x8981, + 0x5831, 0x95F1, 0x5834, 0x8FEA, 0x5835, 0x9367, 0x583A, 0x8DE4, + 0x583D, 0x9ACC, 0x5840, 0x95BB, 0x5841, 0x97DB, 0x584A, 0x89F2, + 0x584B, 0x9AC8, 0x5851, 0x9159, 0x5852, 0x9ACB, 0x5854, 0x9383, + 0x5857, 0x9368, 0x5858, 0x9384, 0x5859, 0x94B7, 0x585A, 0x92CB, + 0x585E, 0x8DC7, 0x5862, 0x9AC7, 0x5869, 0x8996, 0x586B, 0x9355, + 0x5870, 0x9AC9, 0x5872, 0x9AC5, 0x5875, 0x906F, 0x5879, 0x9ACD, + 0x587E, 0x8F6D, 0x5883, 0x8BAB, 0x5885, 0x9ACE, 0x5893, 0x95E6, + 0x5897, 0x919D, 0x589C, 0x92C4, 0x589E, 0xFA9D, 0x589F, 0x9AD0, + 0x58A8, 0x966E, 0x58AB, 0x9AD1, 0x58AE, 0x9AD6, 0x58B2, 0xFA9E, + 0x58B3, 0x95AD, 0x58B8, 0x9AD5, 0x58B9, 0x9ACF, 0x58BA, 0x9AD2, + 0x58BB, 0x9AD4, 0x58BE, 0x8DA4, 0x58C1, 0x95C7, 0x58C5, 0x9AD7, + 0x58C7, 0x9264, 0x58CA, 0x89F3, 0x58CC, 0x8FEB, 0x58D1, 0x9AD9, + 0x58D3, 0x9AD8, 0x58D5, 0x8D88, 0x58D7, 0x9ADA, 0x58D8, 0x9ADC, + 0x58D9, 0x9ADB, 0x58DC, 0x9ADE, 0x58DE, 0x9AD3, 0x58DF, 0x9AE0, + 0x58E4, 0x9ADF, 0x58E5, 0x9ADD, 0x58EB, 0x8E6D, 0x58EC, 0x9070, + 0x58EE, 0x9173, 0x58EF, 0x9AE1, 0x58F0, 0x90BA, 0x58F1, 0x88EB, + 0x58F2, 0x9484, 0x58F7, 0x92D9, 0x58F9, 0x9AE3, 0x58FA, 0x9AE2, + 0x58FB, 0x9AE4, 0x58FC, 0x9AE5, 0x58FD, 0x9AE6, 0x5902, 0x9AE7, + 0x5909, 0x95CF, 0x590A, 0x9AE8, 0x590B, 0xFA9F, 0x590F, 0x89C4, + 0x5910, 0x9AE9, 0x5915, 0x975B, 0x5916, 0x8A4F, 0x5918, 0x99C7, + 0x5919, 0x8F67, 0x591A, 0x91BD, 0x591B, 0x9AEA, 0x591C, 0x96E9, + 0x5922, 0x96B2, 0x5925, 0x9AEC, 0x5927, 0x91E5, 0x5929, 0x9356, + 0x592A, 0x91BE, 0x592B, 0x9576, 0x592C, 0x9AED, 0x592D, 0x9AEE, + 0x592E, 0x899B, 0x5931, 0x8EB8, 0x5932, 0x9AEF, 0x5937, 0x88CE, + 0x5938, 0x9AF0, 0x593E, 0x9AF1, 0x5944, 0x8982, 0x5947, 0x8AEF, + 0x5948, 0x93DE, 0x5949, 0x95F2, 0x594E, 0x9AF5, 0x594F, 0x9174, + 0x5950, 0x9AF4, 0x5951, 0x8C5F, 0x5953, 0xFAA0, 0x5954, 0x967A, + 0x5955, 0x9AF3, 0x5957, 0x9385, 0x5958, 0x9AF7, 0x595A, 0x9AF6, + 0x595B, 0xFAA1, 0x595D, 0xFAA2, 0x5960, 0x9AF9, 0x5962, 0x9AF8, + 0x5963, 0xFAA3, 0x5965, 0x899C, 0x5967, 0x9AFA, 0x5968, 0x8FA7, + 0x5969, 0x9AFC, 0x596A, 0x9244, 0x596C, 0x9AFB, 0x596E, 0x95B1, + 0x5973, 0x8F97, 0x5974, 0x937A, 0x5978, 0x9B40, 0x597D, 0x8D44, + 0x5981, 0x9B41, 0x5982, 0x9440, 0x5983, 0x94DC, 0x5984, 0x96CF, + 0x598A, 0x9444, 0x598D, 0x9B4A, 0x5993, 0x8B57, 0x5996, 0x9764, + 0x5999, 0x96AD, 0x599B, 0x9BAA, 0x599D, 0x9B42, 0x59A3, 0x9B45, + 0x59A4, 0xFAA4, 0x59A5, 0x91C3, 0x59A8, 0x9657, 0x59AC, 0x9369, + 0x59B2, 0x9B46, 0x59B9, 0x9685, 0x59BA, 0xFAA5, 0x59BB, 0x8DC8, + 0x59BE, 0x8FA8, 0x59C6, 0x9B47, 0x59C9, 0x8E6F, 0x59CB, 0x8E6E, + 0x59D0, 0x88B7, 0x59D1, 0x8CC6, 0x59D3, 0x90A9, 0x59D4, 0x88CF, + 0x59D9, 0x9B4B, 0x59DA, 0x9B4C, 0x59DC, 0x9B49, 0x59E5, 0x8957, + 0x59E6, 0x8AAD, 0x59E8, 0x9B48, 0x59EA, 0x96C3, 0x59EB, 0x9550, + 0x59F6, 0x88A6, 0x59FB, 0x88F7, 0x59FF, 0x8E70, 0x5A01, 0x88D0, + 0x5A03, 0x88A1, 0x5A09, 0x9B51, 0x5A11, 0x9B4F, 0x5A18, 0x96BA, + 0x5A1A, 0x9B52, 0x5A1C, 0x9B50, 0x5A1F, 0x9B4E, 0x5A20, 0x9050, + 0x5A25, 0x9B4D, 0x5A29, 0x95D8, 0x5A2F, 0x8CE2, 0x5A35, 0x9B56, + 0x5A36, 0x9B57, 0x5A3C, 0x8FA9, 0x5A40, 0x9B53, 0x5A41, 0x984B, + 0x5A46, 0x946B, 0x5A49, 0x9B55, 0x5A5A, 0x8DA5, 0x5A62, 0x9B58, + 0x5A66, 0x9577, 0x5A6A, 0x9B59, 0x5A6C, 0x9B54, 0x5A7F, 0x96B9, + 0x5A92, 0x947D, 0x5A9A, 0x9B5A, 0x5A9B, 0x9551, 0x5ABC, 0x9B5B, + 0x5ABD, 0x9B5F, 0x5ABE, 0x9B5C, 0x5AC1, 0x89C5, 0x5AC2, 0x9B5E, + 0x5AC9, 0x8EB9, 0x5ACB, 0x9B5D, 0x5ACC, 0x8C99, 0x5AD0, 0x9B6B, + 0x5AD6, 0x9B64, 0x5AD7, 0x9B61, 0x5AE1, 0x9284, 0x5AE3, 0x9B60, + 0x5AE6, 0x9B62, 0x5AE9, 0x9B63, 0x5AFA, 0x9B65, 0x5AFB, 0x9B66, + 0x5B09, 0x8AF0, 0x5B0B, 0x9B68, 0x5B0C, 0x9B67, 0x5B16, 0x9B69, + 0x5B22, 0x8FEC, 0x5B2A, 0x9B6C, 0x5B2C, 0x92DA, 0x5B30, 0x8964, + 0x5B32, 0x9B6A, 0x5B36, 0x9B6D, 0x5B3E, 0x9B6E, 0x5B40, 0x9B71, + 0x5B43, 0x9B6F, 0x5B45, 0x9B70, 0x5B50, 0x8E71, 0x5B51, 0x9B72, + 0x5B54, 0x8D45, 0x5B55, 0x9B73, 0x5B56, 0xFAA6, 0x5B57, 0x8E9A, + 0x5B58, 0x91B6, 0x5B5A, 0x9B74, 0x5B5B, 0x9B75, 0x5B5C, 0x8E79, + 0x5B5D, 0x8D46, 0x5B5F, 0x96D0, 0x5B63, 0x8B47, 0x5B64, 0x8CC7, + 0x5B65, 0x9B76, 0x5B66, 0x8A77, 0x5B69, 0x9B77, 0x5B6B, 0x91B7, + 0x5B70, 0x9B78, 0x5B71, 0x9BA1, 0x5B73, 0x9B79, 0x5B75, 0x9B7A, + 0x5B78, 0x9B7B, 0x5B7A, 0x9B7D, 0x5B80, 0x9B7E, 0x5B83, 0x9B80, + 0x5B85, 0x91EE, 0x5B87, 0x8946, 0x5B88, 0x8EE7, 0x5B89, 0x88C0, + 0x5B8B, 0x9176, 0x5B8C, 0x8AAE, 0x5B8D, 0x8EB3, 0x5B8F, 0x8D47, + 0x5B95, 0x9386, 0x5B97, 0x8F40, 0x5B98, 0x8AAF, 0x5B99, 0x9288, + 0x5B9A, 0x92E8, 0x5B9B, 0x88B6, 0x5B9C, 0x8B58, 0x5B9D, 0x95F3, + 0x5B9F, 0x8EC0, 0x5BA2, 0x8B71, 0x5BA3, 0x90E9, 0x5BA4, 0x8EBA, + 0x5BA5, 0x9747, 0x5BA6, 0x9B81, 0x5BAE, 0x8B7B, 0x5BB0, 0x8DC9, + 0x5BB3, 0x8A51, 0x5BB4, 0x8983, 0x5BB5, 0x8FAA, 0x5BB6, 0x89C6, + 0x5BB8, 0x9B82, 0x5BB9, 0x9765, 0x5BBF, 0x8F68, 0x5BC0, 0xFAA7, + 0x5BC2, 0x8EE2, 0x5BC3, 0x9B83, 0x5BC4, 0x8AF1, 0x5BC5, 0x93D0, + 0x5BC6, 0x96A7, 0x5BC7, 0x9B84, 0x5BC9, 0x9B85, 0x5BCC, 0x9578, + 0x5BD0, 0x9B87, 0x5BD2, 0x8AA6, 0x5BD3, 0x8BF5, 0x5BD4, 0x9B86, + 0x5BD8, 0xFAA9, 0x5BDB, 0x8AB0, 0x5BDD, 0x9051, 0x5BDE, 0x9B8B, + 0x5BDF, 0x8E40, 0x5BE1, 0x89C7, 0x5BE2, 0x9B8A, 0x5BE4, 0x9B88, + 0x5BE5, 0x9B8C, 0x5BE6, 0x9B89, 0x5BE7, 0x944A, 0x5BE8, 0x9ECB, + 0x5BE9, 0x9052, 0x5BEB, 0x9B8D, 0x5BEC, 0xFAAA, 0x5BEE, 0x97BE, + 0x5BF0, 0x9B8E, 0x5BF3, 0x9B90, 0x5BF5, 0x929E, 0x5BF6, 0x9B8F, + 0x5BF8, 0x90A1, 0x5BFA, 0x8E9B, 0x5BFE, 0x91CE, 0x5BFF, 0x8EF5, + 0x5C01, 0x9595, 0x5C02, 0x90EA, 0x5C04, 0x8ECB, 0x5C05, 0x9B91, + 0x5C06, 0x8FAB, 0x5C07, 0x9B92, 0x5C08, 0x9B93, 0x5C09, 0x88D1, + 0x5C0A, 0x91B8, 0x5C0B, 0x9071, 0x5C0D, 0x9B94, 0x5C0E, 0x93B1, + 0x5C0F, 0x8FAC, 0x5C11, 0x8FAD, 0x5C13, 0x9B95, 0x5C16, 0x90EB, + 0x5C1A, 0x8FAE, 0x5C1E, 0xFAAB, 0x5C20, 0x9B96, 0x5C22, 0x9B97, + 0x5C24, 0x96DE, 0x5C28, 0x9B98, 0x5C2D, 0x8BC4, 0x5C31, 0x8F41, + 0x5C38, 0x9B99, 0x5C39, 0x9B9A, 0x5C3A, 0x8EDA, 0x5C3B, 0x904B, + 0x5C3C, 0x93F2, 0x5C3D, 0x9073, 0x5C3E, 0x94F6, 0x5C3F, 0x9441, + 0x5C40, 0x8BC7, 0x5C41, 0x9B9B, 0x5C45, 0x8B8F, 0x5C46, 0x9B9C, + 0x5C48, 0x8BFC, 0x5C4A, 0x93CD, 0x5C4B, 0x89AE, 0x5C4D, 0x8E72, + 0x5C4E, 0x9B9D, 0x5C4F, 0x9BA0, 0x5C50, 0x9B9F, 0x5C51, 0x8BFB, + 0x5C53, 0x9B9E, 0x5C55, 0x9357, 0x5C5E, 0x91AE, 0x5C60, 0x936A, + 0x5C61, 0x8EC6, 0x5C64, 0x9177, 0x5C65, 0x979A, 0x5C6C, 0x9BA2, + 0x5C6E, 0x9BA3, 0x5C6F, 0x93D4, 0x5C71, 0x8E52, 0x5C76, 0x9BA5, + 0x5C79, 0x9BA6, 0x5C8C, 0x9BA7, 0x5C90, 0x8AF2, 0x5C91, 0x9BA8, + 0x5C94, 0x9BA9, 0x5CA1, 0x89AA, 0x5CA6, 0xFAAC, 0x5CA8, 0x915A, + 0x5CA9, 0x8AE2, 0x5CAB, 0x9BAB, 0x5CAC, 0x96A6, 0x5CB1, 0x91D0, + 0x5CB3, 0x8A78, 0x5CB6, 0x9BAD, 0x5CB7, 0x9BAF, 0x5CB8, 0x8ADD, + 0x5CBA, 0xFAAD, 0x5CBB, 0x9BAC, 0x5CBC, 0x9BAE, 0x5CBE, 0x9BB1, + 0x5CC5, 0x9BB0, 0x5CC7, 0x9BB2, 0x5CD9, 0x9BB3, 0x5CE0, 0x93BB, + 0x5CE1, 0x8BAC, 0x5CE8, 0x89E3, 0x5CE9, 0x9BB4, 0x5CEA, 0x9BB9, + 0x5CED, 0x9BB7, 0x5CEF, 0x95F5, 0x5CF0, 0x95F4, 0x5CF5, 0xFAAE, + 0x5CF6, 0x9387, 0x5CFA, 0x9BB6, 0x5CFB, 0x8F73, 0x5CFD, 0x9BB5, + 0x5D07, 0x9092, 0x5D0B, 0x9BBA, 0x5D0E, 0x8DE8, 0x5D11, 0x9BC0, + 0x5D14, 0x9BC1, 0x5D15, 0x9BBB, 0x5D16, 0x8A52, 0x5D17, 0x9BBC, + 0x5D18, 0x9BC5, 0x5D19, 0x9BC4, 0x5D1A, 0x9BC3, 0x5D1B, 0x9BBF, + 0x5D1F, 0x9BBE, 0x5D22, 0x9BC2, 0x5D27, 0xFAAF, 0x5D29, 0x95F6, + 0x5D42, 0xFAB2, 0x5D4B, 0x9BC9, 0x5D4C, 0x9BC6, 0x5D4E, 0x9BC8, + 0x5D50, 0x9792, 0x5D52, 0x9BC7, 0x5D53, 0xFAB0, 0x5D5C, 0x9BBD, + 0x5D69, 0x9093, 0x5D6C, 0x9BCA, 0x5D6D, 0xFAB3, 0x5D6F, 0x8DB5, + 0x5D73, 0x9BCB, 0x5D76, 0x9BCC, 0x5D82, 0x9BCF, 0x5D84, 0x9BCE, + 0x5D87, 0x9BCD, 0x5D8B, 0x9388, 0x5D8C, 0x9BB8, 0x5D90, 0x9BD5, + 0x5D9D, 0x9BD1, 0x5DA2, 0x9BD0, 0x5DAC, 0x9BD2, 0x5DAE, 0x9BD3, + 0x5DB7, 0x9BD6, 0x5DB8, 0xFAB4, 0x5DB9, 0xFAB5, 0x5DBA, 0x97E4, + 0x5DBC, 0x9BD7, 0x5DBD, 0x9BD4, 0x5DC9, 0x9BD8, 0x5DCC, 0x8ADE, + 0x5DCD, 0x9BD9, 0x5DD0, 0xFAB6, 0x5DD2, 0x9BDB, 0x5DD3, 0x9BDA, + 0x5DD6, 0x9BDC, 0x5DDB, 0x9BDD, 0x5DDD, 0x90EC, 0x5DDE, 0x8F42, + 0x5DE1, 0x8F84, 0x5DE3, 0x9183, 0x5DE5, 0x8D48, 0x5DE6, 0x8DB6, + 0x5DE7, 0x8D49, 0x5DE8, 0x8B90, 0x5DEB, 0x9BDE, 0x5DEE, 0x8DB7, + 0x5DF1, 0x8CC8, 0x5DF2, 0x9BDF, 0x5DF3, 0x96A4, 0x5DF4, 0x9462, + 0x5DF5, 0x9BE0, 0x5DF7, 0x8D4A, 0x5DFB, 0x8AAA, 0x5DFD, 0x9246, + 0x5DFE, 0x8BD0, 0x5E02, 0x8E73, 0x5E03, 0x957A, 0x5E06, 0x94BF, + 0x5E0B, 0x9BE1, 0x5E0C, 0x8AF3, 0x5E11, 0x9BE4, 0x5E16, 0x929F, + 0x5E19, 0x9BE3, 0x5E1A, 0x9BE2, 0x5E1B, 0x9BE5, 0x5E1D, 0x92E9, + 0x5E25, 0x9083, 0x5E2B, 0x8E74, 0x5E2D, 0x90C8, 0x5E2F, 0x91D1, + 0x5E30, 0x8B41, 0x5E33, 0x92A0, 0x5E36, 0x9BE6, 0x5E37, 0x9BE7, + 0x5E38, 0x8FED, 0x5E3D, 0x9658, 0x5E40, 0x9BEA, 0x5E43, 0x9BE9, + 0x5E44, 0x9BE8, 0x5E45, 0x959D, 0x5E47, 0x9BF1, 0x5E4C, 0x9679, + 0x5E4E, 0x9BEB, 0x5E54, 0x9BED, 0x5E55, 0x968B, 0x5E57, 0x9BEC, + 0x5E5F, 0x9BEE, 0x5E61, 0x94A6, 0x5E62, 0x9BEF, 0x5E63, 0x95BC, + 0x5E64, 0x9BF0, 0x5E72, 0x8AB1, 0x5E73, 0x95BD, 0x5E74, 0x944E, + 0x5E75, 0x9BF2, 0x5E76, 0x9BF3, 0x5E78, 0x8D4B, 0x5E79, 0x8AB2, + 0x5E7A, 0x9BF4, 0x5E7B, 0x8CB6, 0x5E7C, 0x9763, 0x5E7D, 0x9748, + 0x5E7E, 0x8AF4, 0x5E7F, 0x9BF6, 0x5E81, 0x92A1, 0x5E83, 0x8D4C, + 0x5E84, 0x8FAF, 0x5E87, 0x94DD, 0x5E8A, 0x8FB0, 0x5E8F, 0x8F98, + 0x5E95, 0x92EA, 0x5E96, 0x95F7, 0x5E97, 0x9358, 0x5E9A, 0x8D4D, + 0x5E9C, 0x957B, 0x5EA0, 0x9BF7, 0x5EA6, 0x9378, 0x5EA7, 0x8DC0, + 0x5EAB, 0x8CC9, 0x5EAD, 0x92EB, 0x5EB5, 0x88C1, 0x5EB6, 0x8F8E, + 0x5EB7, 0x8D4E, 0x5EB8, 0x9766, 0x5EC1, 0x9BF8, 0x5EC2, 0x9BF9, + 0x5EC3, 0x9470, 0x5EC8, 0x9BFA, 0x5EC9, 0x97F5, 0x5ECA, 0x984C, + 0x5ECF, 0x9BFC, 0x5ED0, 0x9BFB, 0x5ED3, 0x8A66, 0x5ED6, 0x9C40, + 0x5EDA, 0x9C43, 0x5EDB, 0x9C44, 0x5EDD, 0x9C42, 0x5EDF, 0x955F, + 0x5EE0, 0x8FB1, 0x5EE1, 0x9C46, 0x5EE2, 0x9C45, 0x5EE3, 0x9C41, + 0x5EE8, 0x9C47, 0x5EE9, 0x9C48, 0x5EEC, 0x9C49, 0x5EF0, 0x9C4C, + 0x5EF1, 0x9C4A, 0x5EF3, 0x9C4B, 0x5EF4, 0x9C4D, 0x5EF6, 0x8984, + 0x5EF7, 0x92EC, 0x5EF8, 0x9C4E, 0x5EFA, 0x8C9A, 0x5EFB, 0x89F4, + 0x5EFC, 0x9455, 0x5EFE, 0x9C4F, 0x5EFF, 0x93F9, 0x5F01, 0x95D9, + 0x5F03, 0x9C50, 0x5F04, 0x984D, 0x5F09, 0x9C51, 0x5F0A, 0x95BE, + 0x5F0B, 0x9C54, 0x5F0C, 0x989F, 0x5F0D, 0x98AF, 0x5F0F, 0x8EAE, + 0x5F10, 0x93F3, 0x5F11, 0x9C55, 0x5F13, 0x8B7C, 0x5F14, 0x92A2, + 0x5F15, 0x88F8, 0x5F16, 0x9C56, 0x5F17, 0x95A4, 0x5F18, 0x8D4F, + 0x5F1B, 0x926F, 0x5F1F, 0x92ED, 0x5F21, 0xFAB7, 0x5F25, 0x96ED, + 0x5F26, 0x8CB7, 0x5F27, 0x8CCA, 0x5F29, 0x9C57, 0x5F2D, 0x9C58, + 0x5F2F, 0x9C5E, 0x5F31, 0x8EE3, 0x5F34, 0xFAB8, 0x5F35, 0x92A3, + 0x5F37, 0x8BAD, 0x5F38, 0x9C59, 0x5F3C, 0x954A, 0x5F3E, 0x9265, + 0x5F41, 0x9C5A, 0x5F45, 0xFA67, 0x5F48, 0x9C5B, 0x5F4A, 0x8BAE, + 0x5F4C, 0x9C5C, 0x5F4E, 0x9C5D, 0x5F51, 0x9C5F, 0x5F53, 0x9396, + 0x5F56, 0x9C60, 0x5F57, 0x9C61, 0x5F59, 0x9C62, 0x5F5C, 0x9C53, + 0x5F5D, 0x9C52, 0x5F61, 0x9C63, 0x5F62, 0x8C60, 0x5F66, 0x9546, + 0x5F67, 0xFAB9, 0x5F69, 0x8DCA, 0x5F6A, 0x9556, 0x5F6B, 0x92A4, + 0x5F6C, 0x956A, 0x5F6D, 0x9C64, 0x5F70, 0x8FB2, 0x5F71, 0x8965, + 0x5F73, 0x9C65, 0x5F77, 0x9C66, 0x5F79, 0x96F0, 0x5F7C, 0x94DE, + 0x5F7F, 0x9C69, 0x5F80, 0x899D, 0x5F81, 0x90AA, 0x5F82, 0x9C68, + 0x5F83, 0x9C67, 0x5F84, 0x8C61, 0x5F85, 0x91D2, 0x5F87, 0x9C6D, + 0x5F88, 0x9C6B, 0x5F8A, 0x9C6A, 0x5F8B, 0x97A5, 0x5F8C, 0x8CE3, + 0x5F90, 0x8F99, 0x5F91, 0x9C6C, 0x5F92, 0x936B, 0x5F93, 0x8F5D, + 0x5F97, 0x93BE, 0x5F98, 0x9C70, 0x5F99, 0x9C6F, 0x5F9E, 0x9C6E, + 0x5FA0, 0x9C71, 0x5FA1, 0x8CE4, 0x5FA8, 0x9C72, 0x5FA9, 0x959C, + 0x5FAA, 0x8F7A, 0x5FAD, 0x9C73, 0x5FAE, 0x94F7, 0x5FB3, 0x93BF, + 0x5FB4, 0x92A5, 0x5FB7, 0xFABA, 0x5FB9, 0x934F, 0x5FBC, 0x9C74, + 0x5FBD, 0x8B4A, 0x5FC3, 0x9053, 0x5FC5, 0x954B, 0x5FCC, 0x8AF5, + 0x5FCD, 0x9445, 0x5FD6, 0x9C75, 0x5FD7, 0x8E75, 0x5FD8, 0x9659, + 0x5FD9, 0x965A, 0x5FDC, 0x899E, 0x5FDD, 0x9C7A, 0x5FDE, 0xFABB, + 0x5FE0, 0x9289, 0x5FE4, 0x9C77, 0x5FEB, 0x89F5, 0x5FF0, 0x9CAB, + 0x5FF1, 0x9C79, 0x5FF5, 0x944F, 0x5FF8, 0x9C78, 0x5FFB, 0x9C76, + 0x5FFD, 0x8D9A, 0x5FFF, 0x9C7C, 0x600E, 0x9C83, 0x600F, 0x9C89, + 0x6010, 0x9C81, 0x6012, 0x937B, 0x6015, 0x9C86, 0x6016, 0x957C, + 0x6019, 0x9C80, 0x601B, 0x9C85, 0x601C, 0x97E5, 0x601D, 0x8E76, + 0x6020, 0x91D3, 0x6021, 0x9C7D, 0x6025, 0x8B7D, 0x6026, 0x9C88, + 0x6027, 0x90AB, 0x6028, 0x8985, 0x6029, 0x9C82, 0x602A, 0x89F6, + 0x602B, 0x9C87, 0x602F, 0x8BAF, 0x6031, 0x9C84, 0x603A, 0x9C8A, + 0x6041, 0x9C8C, 0x6042, 0x9C96, 0x6043, 0x9C94, 0x6046, 0x9C91, + 0x604A, 0x9C90, 0x604B, 0x97F6, 0x604D, 0x9C92, 0x6050, 0x8BB0, + 0x6052, 0x8D50, 0x6055, 0x8F9A, 0x6059, 0x9C99, 0x605A, 0x9C8B, + 0x605D, 0xFABC, 0x605F, 0x9C8F, 0x6060, 0x9C7E, 0x6062, 0x89F8, + 0x6063, 0x9C93, 0x6064, 0x9C95, 0x6065, 0x9270, 0x6068, 0x8DA6, + 0x6069, 0x89B6, 0x606A, 0x9C8D, 0x606B, 0x9C98, 0x606C, 0x9C97, + 0x606D, 0x8BB1, 0x606F, 0x91A7, 0x6070, 0x8A86, 0x6075, 0x8C62, + 0x6077, 0x9C8E, 0x6081, 0x9C9A, 0x6083, 0x9C9D, 0x6084, 0x9C9F, + 0x6085, 0xFABD, 0x6089, 0x8EBB, 0x608A, 0xFABE, 0x608B, 0x9CA5, + 0x608C, 0x92EE, 0x608D, 0x9C9B, 0x6092, 0x9CA3, 0x6094, 0x89F7, + 0x6096, 0x9CA1, 0x6097, 0x9CA2, 0x609A, 0x9C9E, 0x609B, 0x9CA0, + 0x609F, 0x8CE5, 0x60A0, 0x9749, 0x60A3, 0x8AB3, 0x60A6, 0x8978, + 0x60A7, 0x9CA4, 0x60A9, 0x9459, 0x60AA, 0x88AB, 0x60B2, 0x94DF, + 0x60B3, 0x9C7B, 0x60B4, 0x9CAA, 0x60B5, 0x9CAE, 0x60B6, 0x96E3, + 0x60B8, 0x9CA7, 0x60BC, 0x9389, 0x60BD, 0x9CAC, 0x60C5, 0x8FEE, + 0x60C6, 0x9CAD, 0x60C7, 0x93D5, 0x60D1, 0x9866, 0x60D3, 0x9CA9, + 0x60D5, 0xFAC0, 0x60D8, 0x9CAF, 0x60DA, 0x8D9B, 0x60DC, 0x90C9, + 0x60DE, 0xFABF, 0x60DF, 0x88D2, 0x60E0, 0x9CA8, 0x60E1, 0x9CA6, + 0x60E3, 0x9179, 0x60E7, 0x9C9C, 0x60E8, 0x8E53, 0x60F0, 0x91C4, + 0x60F1, 0x9CBB, 0x60F2, 0xFAC2, 0x60F3, 0x917A, 0x60F4, 0x9CB6, + 0x60F6, 0x9CB3, 0x60F7, 0x9CB4, 0x60F9, 0x8EE4, 0x60FA, 0x9CB7, + 0x60FB, 0x9CBA, 0x6100, 0x9CB5, 0x6101, 0x8F44, 0x6103, 0x9CB8, + 0x6106, 0x9CB2, 0x6108, 0x96FA, 0x6109, 0x96F9, 0x610D, 0x9CBC, + 0x610E, 0x9CBD, 0x610F, 0x88D3, 0x6111, 0xFAC3, 0x6115, 0x9CB1, + 0x611A, 0x8BF0, 0x611B, 0x88A4, 0x611F, 0x8AB4, 0x6120, 0xFAC1, + 0x6121, 0x9CB9, 0x6127, 0x9CC1, 0x6128, 0x9CC0, 0x612C, 0x9CC5, + 0x6130, 0xFAC5, 0x6134, 0x9CC6, 0x6137, 0xFAC4, 0x613C, 0x9CC4, + 0x613D, 0x9CC7, 0x613E, 0x9CBF, 0x613F, 0x9CC3, 0x6142, 0x9CC8, + 0x6144, 0x9CC9, 0x6147, 0x9CBE, 0x6148, 0x8E9C, 0x614A, 0x9CC2, + 0x614B, 0x91D4, 0x614C, 0x8D51, 0x614D, 0x9CB0, 0x614E, 0x9054, + 0x6153, 0x9CD6, 0x6155, 0x95E7, 0x6158, 0x9CCC, 0x6159, 0x9CCD, + 0x615A, 0x9CCE, 0x615D, 0x9CD5, 0x615F, 0x9CD4, 0x6162, 0x969D, + 0x6163, 0x8AB5, 0x6165, 0x9CD2, 0x6167, 0x8C64, 0x6168, 0x8A53, + 0x616B, 0x9CCF, 0x616E, 0x97B6, 0x616F, 0x9CD1, 0x6170, 0x88D4, + 0x6171, 0x9CD3, 0x6173, 0x9CCA, 0x6174, 0x9CD0, 0x6175, 0x9CD7, + 0x6176, 0x8C63, 0x6177, 0x9CCB, 0x617E, 0x977C, 0x6182, 0x974A, + 0x6187, 0x9CDA, 0x618A, 0x9CDE, 0x618E, 0x919E, 0x6190, 0x97F7, + 0x6191, 0x9CDF, 0x6194, 0x9CDC, 0x6196, 0x9CD9, 0x6198, 0xFAC6, + 0x6199, 0x9CD8, 0x619A, 0x9CDD, 0x61A4, 0x95AE, 0x61A7, 0x93B2, + 0x61A9, 0x8C65, 0x61AB, 0x9CE0, 0x61AC, 0x9CDB, 0x61AE, 0x9CE1, + 0x61B2, 0x8C9B, 0x61B6, 0x89AF, 0x61BA, 0x9CE9, 0x61BE, 0x8AB6, + 0x61C3, 0x9CE7, 0x61C6, 0x9CE8, 0x61C7, 0x8DA7, 0x61C8, 0x9CE6, + 0x61C9, 0x9CE4, 0x61CA, 0x9CE3, 0x61CB, 0x9CEA, 0x61CC, 0x9CE2, + 0x61CD, 0x9CEC, 0x61D0, 0x89F9, 0x61E3, 0x9CEE, 0x61E6, 0x9CED, + 0x61F2, 0x92A6, 0x61F4, 0x9CF1, 0x61F6, 0x9CEF, 0x61F7, 0x9CE5, + 0x61F8, 0x8C9C, 0x61FA, 0x9CF0, 0x61FC, 0x9CF4, 0x61FD, 0x9CF3, + 0x61FE, 0x9CF5, 0x61FF, 0x9CF2, 0x6200, 0x9CF6, 0x6208, 0x9CF7, + 0x6209, 0x9CF8, 0x620A, 0x95E8, 0x620C, 0x9CFA, 0x620D, 0x9CF9, + 0x620E, 0x8F5E, 0x6210, 0x90AC, 0x6211, 0x89E4, 0x6212, 0x89FA, + 0x6213, 0xFAC7, 0x6214, 0x9CFB, 0x6216, 0x88BD, 0x621A, 0x90CA, + 0x621B, 0x9CFC, 0x621D, 0xE6C1, 0x621E, 0x9D40, 0x621F, 0x8C81, + 0x6221, 0x9D41, 0x6226, 0x90ED, 0x622A, 0x9D42, 0x622E, 0x9D43, + 0x622F, 0x8B59, 0x6230, 0x9D44, 0x6232, 0x9D45, 0x6233, 0x9D46, + 0x6234, 0x91D5, 0x6238, 0x8CCB, 0x623B, 0x96DF, 0x623F, 0x965B, + 0x6240, 0x8F8A, 0x6241, 0x9D47, 0x6247, 0x90EE, 0x6248, 0xE7BB, + 0x6249, 0x94E0, 0x624B, 0x8EE8, 0x624D, 0x8DCB, 0x624E, 0x9D48, + 0x6253, 0x91C5, 0x6255, 0x95A5, 0x6258, 0x91EF, 0x625B, 0x9D4B, + 0x625E, 0x9D49, 0x6260, 0x9D4C, 0x6263, 0x9D4A, 0x6268, 0x9D4D, + 0x626E, 0x95AF, 0x6271, 0x88B5, 0x6276, 0x957D, 0x6279, 0x94E1, + 0x627C, 0x9D4E, 0x627E, 0x9D51, 0x627F, 0x8FB3, 0x6280, 0x8B5A, + 0x6282, 0x9D4F, 0x6283, 0x9D56, 0x6284, 0x8FB4, 0x6289, 0x9D50, + 0x628A, 0x9463, 0x6291, 0x977D, 0x6292, 0x9D52, 0x6293, 0x9D53, + 0x6294, 0x9D57, 0x6295, 0x938A, 0x6296, 0x9D54, 0x6297, 0x8D52, + 0x6298, 0x90DC, 0x629B, 0x9D65, 0x629C, 0x94B2, 0x629E, 0x91F0, + 0x62A6, 0xFAC8, 0x62AB, 0x94E2, 0x62AC, 0x9DAB, 0x62B1, 0x95F8, + 0x62B5, 0x92EF, 0x62B9, 0x9695, 0x62BB, 0x9D5A, 0x62BC, 0x899F, + 0x62BD, 0x928A, 0x62C2, 0x9D63, 0x62C5, 0x9253, 0x62C6, 0x9D5D, + 0x62C7, 0x9D64, 0x62C8, 0x9D5F, 0x62C9, 0x9D66, 0x62CA, 0x9D62, + 0x62CC, 0x9D61, 0x62CD, 0x948F, 0x62CF, 0x9D5B, 0x62D0, 0x89FB, + 0x62D1, 0x9D59, 0x62D2, 0x8B91, 0x62D3, 0x91F1, 0x62D4, 0x9D55, + 0x62D7, 0x9D58, 0x62D8, 0x8D53, 0x62D9, 0x90D9, 0x62DB, 0x8FB5, + 0x62DC, 0x9D60, 0x62DD, 0x9471, 0x62E0, 0x8B92, 0x62E1, 0x8A67, + 0x62EC, 0x8A87, 0x62ED, 0x9040, 0x62EE, 0x9D68, 0x62EF, 0x9D6D, + 0x62F1, 0x9D69, 0x62F3, 0x8C9D, 0x62F5, 0x9D6E, 0x62F6, 0x8E41, + 0x62F7, 0x8D89, 0x62FE, 0x8F45, 0x62FF, 0x9D5C, 0x6301, 0x8E9D, + 0x6302, 0x9D6B, 0x6307, 0x8E77, 0x6308, 0x9D6C, 0x6309, 0x88C2, + 0x630C, 0x9D67, 0x6311, 0x92A7, 0x6319, 0x8B93, 0x631F, 0x8BB2, + 0x6327, 0x9D6A, 0x6328, 0x88A5, 0x632B, 0x8DC1, 0x632F, 0x9055, + 0x633A, 0x92F0, 0x633D, 0x94D2, 0x633E, 0x9D70, 0x633F, 0x917D, + 0x6349, 0x91A8, 0x634C, 0x8E4A, 0x634D, 0x9D71, 0x634F, 0x9D73, + 0x6350, 0x9D6F, 0x6355, 0x95DF, 0x6357, 0x92BB, 0x635C, 0x917B, + 0x6367, 0x95F9, 0x6368, 0x8ECC, 0x6369, 0x9D80, 0x636B, 0x9D7E, + 0x636E, 0x9098, 0x6372, 0x8C9E, 0x6376, 0x9D78, 0x6377, 0x8FB7, + 0x637A, 0x93E6, 0x637B, 0x9450, 0x6380, 0x9D76, 0x6383, 0x917C, + 0x6388, 0x8EF6, 0x6389, 0x9D7B, 0x638C, 0x8FB6, 0x638E, 0x9D75, + 0x638F, 0x9D7A, 0x6392, 0x9472, 0x6396, 0x9D74, 0x6398, 0x8C40, + 0x639B, 0x8A7C, 0x639F, 0x9D7C, 0x63A0, 0x97A9, 0x63A1, 0x8DCC, + 0x63A2, 0x9254, 0x63A3, 0x9D79, 0x63A5, 0x90DA, 0x63A7, 0x8D54, + 0x63A8, 0x9084, 0x63A9, 0x8986, 0x63AA, 0x915B, 0x63AB, 0x9D77, + 0x63AC, 0x8B64, 0x63B2, 0x8C66, 0x63B4, 0x92CD, 0x63B5, 0x9D7D, + 0x63BB, 0x917E, 0x63BE, 0x9D81, 0x63C0, 0x9D83, 0x63C3, 0x91B5, + 0x63C4, 0x9D89, 0x63C6, 0x9D84, 0x63C9, 0x9D86, 0x63CF, 0x9560, + 0x63D0, 0x92F1, 0x63D2, 0x9D87, 0x63D6, 0x974B, 0x63DA, 0x9767, + 0x63DB, 0x8AB7, 0x63E1, 0x88AC, 0x63E3, 0x9D85, 0x63E9, 0x9D82, + 0x63EE, 0x8AF6, 0x63F4, 0x8987, 0x63F5, 0xFAC9, 0x63F6, 0x9D88, + 0x63FA, 0x9768, 0x6406, 0x9D8C, 0x640D, 0x91B9, 0x640F, 0x9D93, + 0x6413, 0x9D8D, 0x6416, 0x9D8A, 0x6417, 0x9D91, 0x641C, 0x9D72, + 0x6426, 0x9D8E, 0x6428, 0x9D92, 0x642C, 0x94C0, 0x642D, 0x938B, + 0x6434, 0x9D8B, 0x6436, 0x9D8F, 0x643A, 0x8C67, 0x643E, 0x8DEF, + 0x6442, 0x90DB, 0x644E, 0x9D97, 0x6458, 0x9345, 0x6460, 0xFACA, + 0x6467, 0x9D94, 0x6469, 0x9680, 0x646F, 0x9D95, 0x6476, 0x9D96, + 0x6478, 0x96CC, 0x647A, 0x90A0, 0x6483, 0x8C82, 0x6488, 0x9D9D, + 0x6492, 0x8E54, 0x6493, 0x9D9A, 0x6495, 0x9D99, 0x649A, 0x9451, + 0x649D, 0xFACB, 0x649E, 0x93B3, 0x64A4, 0x9350, 0x64A5, 0x9D9B, + 0x64A9, 0x9D9C, 0x64AB, 0x958F, 0x64AD, 0x9464, 0x64AE, 0x8E42, + 0x64B0, 0x90EF, 0x64B2, 0x966F, 0x64B9, 0x8A68, 0x64BB, 0x9DA3, + 0x64BC, 0x9D9E, 0x64C1, 0x9769, 0x64C2, 0x9DA5, 0x64C5, 0x9DA1, + 0x64C7, 0x9DA2, 0x64CD, 0x9180, 0x64CE, 0xFACC, 0x64D2, 0x9DA0, + 0x64D4, 0x9D5E, 0x64D8, 0x9DA4, 0x64DA, 0x9D9F, 0x64E0, 0x9DA9, + 0x64E1, 0x9DAA, 0x64E2, 0x9346, 0x64E3, 0x9DAC, 0x64E6, 0x8E43, + 0x64E7, 0x9DA7, 0x64EC, 0x8B5B, 0x64EF, 0x9DAD, 0x64F1, 0x9DA6, + 0x64F2, 0x9DB1, 0x64F4, 0x9DB0, 0x64F6, 0x9DAF, 0x64FA, 0x9DB2, + 0x64FD, 0x9DB4, 0x64FE, 0x8FEF, 0x6500, 0x9DB3, 0x6505, 0x9DB7, + 0x6518, 0x9DB5, 0x651C, 0x9DB6, 0x651D, 0x9D90, 0x6523, 0x9DB9, + 0x6524, 0x9DB8, 0x652A, 0x9D98, 0x652B, 0x9DBA, 0x652C, 0x9DAE, + 0x652F, 0x8E78, 0x6534, 0x9DBB, 0x6535, 0x9DBC, 0x6536, 0x9DBE, + 0x6537, 0x9DBD, 0x6538, 0x9DBF, 0x6539, 0x89FC, 0x653B, 0x8D55, + 0x653E, 0x95FA, 0x653F, 0x90AD, 0x6545, 0x8CCC, 0x6548, 0x9DC1, + 0x654D, 0x9DC4, 0x654E, 0xFACD, 0x654F, 0x9571, 0x6551, 0x8B7E, + 0x6555, 0x9DC3, 0x6556, 0x9DC2, 0x6557, 0x9473, 0x6558, 0x9DC5, + 0x6559, 0x8BB3, 0x655D, 0x9DC7, 0x655E, 0x9DC6, 0x6562, 0x8AB8, + 0x6563, 0x8E55, 0x6566, 0x93D6, 0x656C, 0x8C68, 0x6570, 0x9094, + 0x6572, 0x9DC8, 0x6574, 0x90AE, 0x6575, 0x9347, 0x6577, 0x957E, + 0x6578, 0x9DC9, 0x6582, 0x9DCA, 0x6583, 0x9DCB, 0x6587, 0x95B6, + 0x6588, 0x9B7C, 0x6589, 0x90C4, 0x658C, 0x956B, 0x658E, 0x8DD6, + 0x6590, 0x94E3, 0x6591, 0x94C1, 0x6597, 0x936C, 0x6599, 0x97BF, + 0x659B, 0x9DCD, 0x659C, 0x8ECE, 0x659F, 0x9DCE, 0x65A1, 0x88B4, + 0x65A4, 0x8BD2, 0x65A5, 0x90CB, 0x65A7, 0x9580, 0x65AB, 0x9DCF, + 0x65AC, 0x8E61, 0x65AD, 0x9266, 0x65AF, 0x8E7A, 0x65B0, 0x9056, + 0x65B7, 0x9DD0, 0x65B9, 0x95FB, 0x65BC, 0x8997, 0x65BD, 0x8E7B, + 0x65C1, 0x9DD3, 0x65C3, 0x9DD1, 0x65C4, 0x9DD4, 0x65C5, 0x97B7, + 0x65C6, 0x9DD2, 0x65CB, 0x90F9, 0x65CC, 0x9DD5, 0x65CF, 0x91B0, + 0x65D2, 0x9DD6, 0x65D7, 0x8AF8, 0x65D9, 0x9DD8, 0x65DB, 0x9DD7, + 0x65E0, 0x9DD9, 0x65E1, 0x9DDA, 0x65E2, 0x8AF9, 0x65E5, 0x93FA, + 0x65E6, 0x9255, 0x65E7, 0x8B8C, 0x65E8, 0x8E7C, 0x65E9, 0x9181, + 0x65EC, 0x8F7B, 0x65ED, 0x88AE, 0x65F1, 0x9DDB, 0x65FA, 0x89A0, + 0x65FB, 0x9DDF, 0x6600, 0xFACE, 0x6602, 0x8D56, 0x6603, 0x9DDE, + 0x6606, 0x8DA9, 0x6607, 0x8FB8, 0x6609, 0xFAD1, 0x660A, 0x9DDD, + 0x660C, 0x8FB9, 0x660E, 0x96BE, 0x660F, 0x8DA8, 0x6613, 0x88D5, + 0x6614, 0x90CC, 0x6615, 0xFACF, 0x661C, 0x9DE4, 0x661E, 0xFAD3, + 0x661F, 0x90AF, 0x6620, 0x8966, 0x6624, 0xFAD4, 0x6625, 0x8F74, + 0x6627, 0x9686, 0x6628, 0x8DF0, 0x662D, 0x8FBA, 0x662E, 0xFAD2, + 0x662F, 0x90A5, 0x6631, 0xFA63, 0x6634, 0x9DE3, 0x6635, 0x9DE1, + 0x6636, 0x9DE2, 0x663B, 0xFAD0, 0x663C, 0x928B, 0x663F, 0x9E45, + 0x6641, 0x9DE8, 0x6642, 0x8E9E, 0x6643, 0x8D57, 0x6644, 0x9DE6, + 0x6649, 0x9DE7, 0x664B, 0x9057, 0x664F, 0x9DE5, 0x6652, 0x8E4E, + 0x6657, 0xFAD6, 0x6659, 0xFAD7, 0x665D, 0x9DEA, 0x665E, 0x9DE9, + 0x665F, 0x9DEE, 0x6662, 0x9DEF, 0x6664, 0x9DEB, 0x6665, 0xFAD5, + 0x6666, 0x8A41, 0x6667, 0x9DEC, 0x6668, 0x9DED, 0x6669, 0x94D3, + 0x666E, 0x9581, 0x666F, 0x8C69, 0x6670, 0x9DF0, 0x6673, 0xFAD9, + 0x6674, 0x90B0, 0x6676, 0x8FBB, 0x667A, 0x9271, 0x6681, 0x8BC5, + 0x6683, 0x9DF1, 0x6684, 0x9DF5, 0x6687, 0x89C9, 0x6688, 0x9DF2, + 0x6689, 0x9DF4, 0x668E, 0x9DF3, 0x6691, 0x8F8B, 0x6696, 0x9267, + 0x6697, 0x88C3, 0x6698, 0x9DF6, 0x6699, 0xFADA, 0x669D, 0x9DF7, + 0x66A0, 0xFADB, 0x66A2, 0x92A8, 0x66A6, 0x97EF, 0x66AB, 0x8E62, + 0x66AE, 0x95E9, 0x66B2, 0xFADC, 0x66B4, 0x965C, 0x66B8, 0x9E41, + 0x66B9, 0x9DF9, 0x66BC, 0x9DFC, 0x66BE, 0x9DFB, 0x66BF, 0xFADD, + 0x66C1, 0x9DF8, 0x66C4, 0x9E40, 0x66C7, 0x93DC, 0x66C9, 0x9DFA, + 0x66D6, 0x9E42, 0x66D9, 0x8F8C, 0x66DA, 0x9E43, 0x66DC, 0x976A, + 0x66DD, 0x9498, 0x66E0, 0x9E44, 0x66E6, 0x9E46, 0x66E9, 0x9E47, + 0x66F0, 0x9E48, 0x66F2, 0x8BC8, 0x66F3, 0x8967, 0x66F4, 0x8D58, + 0x66F5, 0x9E49, 0x66F7, 0x9E4A, 0x66F8, 0x8F91, 0x66F9, 0x9182, + 0x66FA, 0xFADE, 0x66FB, 0xFA66, 0x66FC, 0x99D6, 0x66FD, 0x915D, + 0x66FE, 0x915C, 0x66FF, 0x91D6, 0x6700, 0x8DC5, 0x6703, 0x98F0, + 0x6708, 0x8C8E, 0x6709, 0x974C, 0x670B, 0x95FC, 0x670D, 0x959E, + 0x670E, 0xFADF, 0x670F, 0x9E4B, 0x6714, 0x8DF1, 0x6715, 0x92BD, + 0x6716, 0x9E4C, 0x6717, 0x984E, 0x671B, 0x965D, 0x671D, 0x92A9, + 0x671E, 0x9E4D, 0x671F, 0x8AFA, 0x6726, 0x9E4E, 0x6727, 0x9E4F, + 0x6728, 0x96D8, 0x672A, 0x96A2, 0x672B, 0x9696, 0x672C, 0x967B, + 0x672D, 0x8E44, 0x672E, 0x9E51, 0x6731, 0x8EE9, 0x6734, 0x9670, + 0x6736, 0x9E53, 0x6737, 0x9E56, 0x6738, 0x9E55, 0x673A, 0x8AF7, + 0x673D, 0x8B80, 0x673F, 0x9E52, 0x6741, 0x9E54, 0x6746, 0x9E57, + 0x6749, 0x9099, 0x674E, 0x979B, 0x674F, 0x88C7, 0x6750, 0x8DDE, + 0x6751, 0x91BA, 0x6753, 0x8EDB, 0x6756, 0x8FF1, 0x6759, 0x9E5A, + 0x675C, 0x936D, 0x675E, 0x9E58, 0x675F, 0x91A9, 0x6760, 0x9E59, + 0x6761, 0x8FF0, 0x6762, 0x96DB, 0x6763, 0x9E5B, 0x6764, 0x9E5C, + 0x6765, 0x9788, 0x6766, 0xFAE1, 0x676A, 0x9E61, 0x676D, 0x8D59, + 0x676F, 0x9474, 0x6770, 0x9E5E, 0x6771, 0x938C, 0x6772, 0x9DDC, + 0x6773, 0x9DE0, 0x6775, 0x8B6E, 0x6777, 0x9466, 0x677C, 0x9E60, + 0x677E, 0x8FBC, 0x677F, 0x94C2, 0x6785, 0x9E66, 0x6787, 0x94F8, + 0x6789, 0x9E5D, 0x678B, 0x9E63, 0x678C, 0x9E62, 0x6790, 0x90CD, + 0x6795, 0x968D, 0x6797, 0x97D1, 0x679A, 0x9687, 0x679C, 0x89CA, + 0x679D, 0x8E7D, 0x67A0, 0x9867, 0x67A1, 0x9E65, 0x67A2, 0x9095, + 0x67A6, 0x9E64, 0x67A9, 0x9E5F, 0x67AF, 0x8CCD, 0x67B3, 0x9E6B, + 0x67B4, 0x9E69, 0x67B6, 0x89CB, 0x67B7, 0x9E67, 0x67B8, 0x9E6D, + 0x67B9, 0x9E73, 0x67BB, 0xFAE2, 0x67C0, 0xFAE4, 0x67C1, 0x91C6, + 0x67C4, 0x95BF, 0x67C6, 0x9E75, 0x67CA, 0x9541, 0x67CE, 0x9E74, + 0x67CF, 0x9490, 0x67D0, 0x965E, 0x67D1, 0x8AB9, 0x67D3, 0x90F5, + 0x67D4, 0x8F5F, 0x67D8, 0x92D1, 0x67DA, 0x974D, 0x67DD, 0x9E70, + 0x67DE, 0x9E6F, 0x67E2, 0x9E71, 0x67E4, 0x9E6E, 0x67E7, 0x9E76, + 0x67E9, 0x9E6C, 0x67EC, 0x9E6A, 0x67EE, 0x9E72, 0x67EF, 0x9E68, + 0x67F1, 0x928C, 0x67F3, 0x96F6, 0x67F4, 0x8EC4, 0x67F5, 0x8DF2, + 0x67FB, 0x8DB8, 0x67FE, 0x968F, 0x67FF, 0x8A60, 0x6801, 0xFAE5, + 0x6802, 0x92CC, 0x6803, 0x93C8, 0x6804, 0x8968, 0x6813, 0x90F0, + 0x6816, 0x90B2, 0x6817, 0x8C49, 0x681E, 0x9E78, 0x6821, 0x8D5A, + 0x6822, 0x8A9C, 0x6829, 0x9E7A, 0x682A, 0x8A94, 0x682B, 0x9E81, + 0x6832, 0x9E7D, 0x6834, 0x90F1, 0x6838, 0x8A6A, 0x6839, 0x8DAA, + 0x683C, 0x8A69, 0x683D, 0x8DCD, 0x6840, 0x9E7B, 0x6841, 0x8C85, + 0x6842, 0x8C6A, 0x6843, 0x938D, 0x6844, 0xFAE6, 0x6846, 0x9E79, + 0x6848, 0x88C4, 0x684D, 0x9E7C, 0x684E, 0x9E7E, 0x6850, 0x8BCB, + 0x6851, 0x8C4B, 0x6852, 0xFAE3, 0x6853, 0x8ABA, 0x6854, 0x8B6A, + 0x6859, 0x9E82, 0x685C, 0x8DF7, 0x685D, 0x9691, 0x685F, 0x8E56, + 0x6863, 0x9E83, 0x6867, 0x954F, 0x6874, 0x9E8F, 0x6876, 0x89B1, + 0x6877, 0x9E84, 0x687E, 0x9E95, 0x687F, 0x9E85, 0x6881, 0x97C0, + 0x6883, 0x9E8C, 0x6885, 0x947E, 0x688D, 0x9E94, 0x688F, 0x9E87, + 0x6893, 0x88B2, 0x6894, 0x9E89, 0x6897, 0x8D5B, 0x689B, 0x9E8B, + 0x689D, 0x9E8A, 0x689F, 0x9E86, 0x68A0, 0x9E91, 0x68A2, 0x8FBD, + 0x68A6, 0x9AEB, 0x68A7, 0x8CE6, 0x68A8, 0x979C, 0x68AD, 0x9E88, + 0x68AF, 0x92F2, 0x68B0, 0x8A42, 0x68B1, 0x8DAB, 0x68B3, 0x9E80, + 0x68B5, 0x9E90, 0x68B6, 0x8A81, 0x68B9, 0x9E8E, 0x68BA, 0x9E92, + 0x68BC, 0x938E, 0x68C4, 0x8AFC, 0x68C6, 0x9EB0, 0x68C8, 0xFA64, + 0x68C9, 0x96C7, 0x68CA, 0x9E97, 0x68CB, 0x8AFB, 0x68CD, 0x9E9E, + 0x68CF, 0xFAE7, 0x68D2, 0x965F, 0x68D4, 0x9E9F, 0x68D5, 0x9EA1, + 0x68D7, 0x9EA5, 0x68D8, 0x9E99, 0x68DA, 0x9249, 0x68DF, 0x938F, + 0x68E0, 0x9EA9, 0x68E1, 0x9E9C, 0x68E3, 0x9EA6, 0x68E7, 0x9EA0, + 0x68EE, 0x9058, 0x68EF, 0x9EAA, 0x68F2, 0x90B1, 0x68F9, 0x9EA8, + 0x68FA, 0x8ABB, 0x6900, 0x986F, 0x6901, 0x9E96, 0x6904, 0x9EA4, + 0x6905, 0x88D6, 0x6908, 0x9E98, 0x690B, 0x96B8, 0x690C, 0x9E9D, + 0x690D, 0x9041, 0x690E, 0x92C5, 0x690F, 0x9E93, 0x6912, 0x9EA3, + 0x6919, 0x909A, 0x691A, 0x9EAD, 0x691B, 0x8A91, 0x691C, 0x8C9F, + 0x6921, 0x9EAF, 0x6922, 0x9E9A, 0x6923, 0x9EAE, 0x6925, 0x9EA7, + 0x6926, 0x9E9B, 0x6928, 0x9EAB, 0x692A, 0x9EAC, 0x6930, 0x9EBD, + 0x6934, 0x93CC, 0x6936, 0x9EA2, 0x6939, 0x9EB9, 0x693D, 0x9EBB, + 0x693F, 0x92D6, 0x694A, 0x976B, 0x6953, 0x9596, 0x6954, 0x9EB6, + 0x6955, 0x91C8, 0x6959, 0x9EBC, 0x695A, 0x915E, 0x695C, 0x9EB3, + 0x695D, 0x9EC0, 0x695E, 0x9EBF, 0x6960, 0x93ED, 0x6961, 0x9EBE, + 0x6962, 0x93E8, 0x6968, 0xFAE9, 0x696A, 0x9EC2, 0x696B, 0x9EB5, + 0x696D, 0x8BC6, 0x696E, 0x9EB8, 0x696F, 0x8F7C, 0x6973, 0x9480, + 0x6974, 0x9EBA, 0x6975, 0x8BC9, 0x6977, 0x9EB2, 0x6978, 0x9EB4, + 0x6979, 0x9EB1, 0x697C, 0x984F, 0x697D, 0x8A79, 0x697E, 0x9EB7, + 0x6981, 0x9EC1, 0x6982, 0x8A54, 0x698A, 0x8DE5, 0x698E, 0x897C, + 0x6991, 0x9ED2, 0x6994, 0x9850, 0x6995, 0x9ED5, 0x6998, 0xFAEB, + 0x699B, 0x9059, 0x699C, 0x9ED4, 0x69A0, 0x9ED3, 0x69A7, 0x9ED0, + 0x69AE, 0x9EC4, 0x69B1, 0x9EE1, 0x69B2, 0x9EC3, 0x69B4, 0x9ED6, + 0x69BB, 0x9ECE, 0x69BE, 0x9EC9, 0x69BF, 0x9EC6, 0x69C1, 0x9EC7, + 0x69C3, 0x9ECF, 0x69C7, 0xEAA0, 0x69CA, 0x9ECC, 0x69CB, 0x8D5C, + 0x69CC, 0x92C6, 0x69CD, 0x9184, 0x69CE, 0x9ECA, 0x69D0, 0x9EC5, + 0x69D3, 0x9EC8, 0x69D8, 0x976C, 0x69D9, 0x968A, 0x69DD, 0x9ECD, + 0x69DE, 0x9ED7, 0x69E2, 0xFAEC, 0x69E7, 0x9EDF, 0x69E8, 0x9ED8, + 0x69EB, 0x9EE5, 0x69ED, 0x9EE3, 0x69F2, 0x9EDE, 0x69F9, 0x9EDD, + 0x69FB, 0x92CE, 0x69FD, 0x9185, 0x69FF, 0x9EDB, 0x6A02, 0x9ED9, + 0x6A05, 0x9EE0, 0x6A0A, 0x9EE6, 0x6A0B, 0x94F3, 0x6A0C, 0x9EEC, + 0x6A12, 0x9EE7, 0x6A13, 0x9EEA, 0x6A14, 0x9EE4, 0x6A17, 0x9294, + 0x6A19, 0x9557, 0x6A1B, 0x9EDA, 0x6A1E, 0x9EE2, 0x6A1F, 0x8FBE, + 0x6A21, 0x96CD, 0x6A22, 0x9EF6, 0x6A23, 0x9EE9, 0x6A29, 0x8CA0, + 0x6A2A, 0x89A1, 0x6A2B, 0x8A7E, 0x6A2E, 0x9ED1, 0x6A30, 0xFAED, + 0x6A35, 0x8FBF, 0x6A36, 0x9EEE, 0x6A38, 0x9EF5, 0x6A39, 0x8EF7, + 0x6A3A, 0x8A92, 0x6A3D, 0x924D, 0x6A44, 0x9EEB, 0x6A46, 0xFAEF, + 0x6A47, 0x9EF0, 0x6A48, 0x9EF4, 0x6A4B, 0x8BB4, 0x6A58, 0x8B6B, + 0x6A59, 0x9EF2, 0x6A5F, 0x8B40, 0x6A61, 0x93C9, 0x6A62, 0x9EF1, + 0x6A66, 0x9EF3, 0x6A6B, 0xFAEE, 0x6A72, 0x9EED, 0x6A73, 0xFAF0, + 0x6A78, 0x9EEF, 0x6A7E, 0xFAF1, 0x6A7F, 0x8A80, 0x6A80, 0x9268, + 0x6A84, 0x9EFA, 0x6A8D, 0x9EF8, 0x6A8E, 0x8CE7, 0x6A90, 0x9EF7, + 0x6A97, 0x9F40, 0x6A9C, 0x9E77, 0x6AA0, 0x9EF9, 0x6AA2, 0x9EFB, + 0x6AA3, 0x9EFC, 0x6AAA, 0x9F4B, 0x6AAC, 0x9F47, 0x6AAE, 0x9E8D, + 0x6AB3, 0x9F46, 0x6AB8, 0x9F45, 0x6ABB, 0x9F42, 0x6AC1, 0x9EE8, + 0x6AC2, 0x9F44, 0x6AC3, 0x9F43, 0x6AD1, 0x9F49, 0x6AD3, 0x9845, + 0x6ADA, 0x9F4C, 0x6ADB, 0x8BF9, 0x6ADE, 0x9F48, 0x6ADF, 0x9F4A, + 0x6AE2, 0xFAF2, 0x6AE4, 0xFAF3, 0x6AE8, 0x94A5, 0x6AEA, 0x9F4D, + 0x6AFA, 0x9F51, 0x6AFB, 0x9F4E, 0x6B04, 0x9793, 0x6B05, 0x9F4F, + 0x6B0A, 0x9EDC, 0x6B12, 0x9F52, 0x6B16, 0x9F53, 0x6B1D, 0x8954, + 0x6B1F, 0x9F55, 0x6B20, 0x8C87, 0x6B21, 0x8E9F, 0x6B23, 0x8BD3, + 0x6B27, 0x89A2, 0x6B32, 0x977E, 0x6B37, 0x9F57, 0x6B38, 0x9F56, + 0x6B39, 0x9F59, 0x6B3A, 0x8B5C, 0x6B3D, 0x8BD4, 0x6B3E, 0x8ABC, + 0x6B43, 0x9F5C, 0x6B47, 0x9F5B, 0x6B49, 0x9F5D, 0x6B4C, 0x89CC, + 0x6B4E, 0x9256, 0x6B50, 0x9F5E, 0x6B53, 0x8ABD, 0x6B54, 0x9F60, + 0x6B59, 0x9F5F, 0x6B5B, 0x9F61, 0x6B5F, 0x9F62, 0x6B61, 0x9F63, + 0x6B62, 0x8E7E, 0x6B63, 0x90B3, 0x6B64, 0x8D9F, 0x6B66, 0x9590, + 0x6B69, 0x95E0, 0x6B6A, 0x9863, 0x6B6F, 0x8E95, 0x6B73, 0x8DCE, + 0x6B74, 0x97F0, 0x6B78, 0x9F64, 0x6B79, 0x9F65, 0x6B7B, 0x8E80, + 0x6B7F, 0x9F66, 0x6B80, 0x9F67, 0x6B83, 0x9F69, 0x6B84, 0x9F68, + 0x6B86, 0x9677, 0x6B89, 0x8F7D, 0x6B8A, 0x8EEA, 0x6B8B, 0x8E63, + 0x6B8D, 0x9F6A, 0x6B95, 0x9F6C, 0x6B96, 0x9042, 0x6B98, 0x9F6B, + 0x6B9E, 0x9F6D, 0x6BA4, 0x9F6E, 0x6BAA, 0x9F6F, 0x6BAB, 0x9F70, + 0x6BAF, 0x9F71, 0x6BB1, 0x9F73, 0x6BB2, 0x9F72, 0x6BB3, 0x9F74, + 0x6BB4, 0x89A3, 0x6BB5, 0x9269, 0x6BB7, 0x9F75, 0x6BBA, 0x8E45, + 0x6BBB, 0x8A6B, 0x6BBC, 0x9F76, 0x6BBF, 0x9361, 0x6BC0, 0x9ACA, + 0x6BC5, 0x8B42, 0x6BC6, 0x9F77, 0x6BCB, 0x9F78, 0x6BCD, 0x95EA, + 0x6BCE, 0x9688, 0x6BD2, 0x93C5, 0x6BD3, 0x9F79, 0x6BD4, 0x94E4, + 0x6BD6, 0xFAF4, 0x6BD8, 0x94F9, 0x6BDB, 0x96D1, 0x6BDF, 0x9F7A, + 0x6BEB, 0x9F7C, 0x6BEC, 0x9F7B, 0x6BEF, 0x9F7E, 0x6BF3, 0x9F7D, + 0x6C08, 0x9F81, 0x6C0F, 0x8E81, 0x6C11, 0x96AF, 0x6C13, 0x9F82, + 0x6C14, 0x9F83, 0x6C17, 0x8B43, 0x6C1B, 0x9F84, 0x6C23, 0x9F86, + 0x6C24, 0x9F85, 0x6C34, 0x9085, 0x6C37, 0x9558, 0x6C38, 0x8969, + 0x6C3E, 0x94C3, 0x6C3F, 0xFAF5, 0x6C40, 0x92F3, 0x6C41, 0x8F60, + 0x6C42, 0x8B81, 0x6C4E, 0x94C4, 0x6C50, 0x8EAC, 0x6C55, 0x9F88, + 0x6C57, 0x8ABE, 0x6C5A, 0x8998, 0x6C5C, 0xFAF6, 0x6C5D, 0x93F0, + 0x6C5E, 0x9F87, 0x6C5F, 0x8D5D, 0x6C60, 0x9272, 0x6C62, 0x9F89, + 0x6C68, 0x9F91, 0x6C6A, 0x9F8A, 0x6C6F, 0xFAF8, 0x6C70, 0x91BF, + 0x6C72, 0x8B82, 0x6C73, 0x9F92, 0x6C7A, 0x8C88, 0x6C7D, 0x8B44, + 0x6C7E, 0x9F90, 0x6C81, 0x9F8E, 0x6C82, 0x9F8B, 0x6C83, 0x9780, + 0x6C86, 0xFAF7, 0x6C88, 0x92BE, 0x6C8C, 0x93D7, 0x6C8D, 0x9F8C, + 0x6C90, 0x9F94, 0x6C92, 0x9F93, 0x6C93, 0x8C42, 0x6C96, 0x89AB, + 0x6C99, 0x8DB9, 0x6C9A, 0x9F8D, 0x6C9B, 0x9F8F, 0x6CA1, 0x9676, + 0x6CA2, 0x91F2, 0x6CAB, 0x9697, 0x6CAE, 0x9F9C, 0x6CB1, 0x9F9D, + 0x6CB3, 0x89CD, 0x6CB8, 0x95A6, 0x6CB9, 0x96FB, 0x6CBA, 0x9F9F, + 0x6CBB, 0x8EA1, 0x6CBC, 0x8FC0, 0x6CBD, 0x9F98, 0x6CBE, 0x9F9E, + 0x6CBF, 0x8988, 0x6CC1, 0x8BB5, 0x6CC4, 0x9F95, 0x6CC5, 0x9F9A, + 0x6CC9, 0x90F2, 0x6CCA, 0x9491, 0x6CCC, 0x94E5, 0x6CD3, 0x9F97, + 0x6CD5, 0x9640, 0x6CD7, 0x9F99, 0x6CD9, 0x9FA2, 0x6CDA, 0xFAF9, + 0x6CDB, 0x9FA0, 0x6CDD, 0x9F9B, 0x6CE1, 0x9641, 0x6CE2, 0x9467, + 0x6CE3, 0x8B83, 0x6CE5, 0x9344, 0x6CE8, 0x928D, 0x6CEA, 0x9FA3, + 0x6CEF, 0x9FA1, 0x6CF0, 0x91D7, 0x6CF1, 0x9F96, 0x6CF3, 0x896A, + 0x6D04, 0xFAFA, 0x6D0B, 0x976D, 0x6D0C, 0x9FAE, 0x6D12, 0x9FAD, + 0x6D17, 0x90F4, 0x6D19, 0x9FAA, 0x6D1B, 0x978C, 0x6D1E, 0x93B4, + 0x6D1F, 0x9FA4, 0x6D25, 0x92C3, 0x6D29, 0x896B, 0x6D2A, 0x8D5E, + 0x6D2B, 0x9FA7, 0x6D32, 0x8F46, 0x6D33, 0x9FAC, 0x6D35, 0x9FAB, + 0x6D36, 0x9FA6, 0x6D38, 0x9FA9, 0x6D3B, 0x8A88, 0x6D3D, 0x9FA8, + 0x6D3E, 0x9468, 0x6D41, 0x97AC, 0x6D44, 0x8FF2, 0x6D45, 0x90F3, + 0x6D59, 0x9FB4, 0x6D5A, 0x9FB2, 0x6D5C, 0x956C, 0x6D63, 0x9FAF, + 0x6D64, 0x9FB1, 0x6D66, 0x8959, 0x6D69, 0x8D5F, 0x6D6A, 0x9851, + 0x6D6C, 0x8A5C, 0x6D6E, 0x9582, 0x6D6F, 0xFAFC, 0x6D74, 0x9781, + 0x6D77, 0x8A43, 0x6D78, 0x905A, 0x6D79, 0x9FB3, 0x6D85, 0x9FB8, + 0x6D87, 0xFAFB, 0x6D88, 0x8FC1, 0x6D8C, 0x974F, 0x6D8E, 0x9FB5, + 0x6D93, 0x9FB0, 0x6D95, 0x9FB6, 0x6D96, 0xFB40, 0x6D99, 0x97DC, + 0x6D9B, 0x9393, 0x6D9C, 0x93C0, 0x6DAC, 0xFB41, 0x6DAF, 0x8A55, + 0x6DB2, 0x8974, 0x6DB5, 0x9FBC, 0x6DB8, 0x9FBF, 0x6DBC, 0x97C1, + 0x6DC0, 0x9784, 0x6DC5, 0x9FC6, 0x6DC6, 0x9FC0, 0x6DC7, 0x9FBD, + 0x6DCB, 0x97D2, 0x6DCC, 0x9FC3, 0x6DCF, 0xFB42, 0x6DD1, 0x8F69, + 0x6DD2, 0x9FC5, 0x6DD5, 0x9FCA, 0x6DD8, 0x9391, 0x6DD9, 0x9FC8, + 0x6DDE, 0x9FC2, 0x6DE1, 0x9257, 0x6DE4, 0x9FC9, 0x6DE6, 0x9FBE, + 0x6DE8, 0x9FC4, 0x6DEA, 0x9FCB, 0x6DEB, 0x88FA, 0x6DEC, 0x9FC1, + 0x6DEE, 0x9FCC, 0x6DF1, 0x905B, 0x6DF2, 0xFB44, 0x6DF3, 0x8F7E, + 0x6DF5, 0x95A3, 0x6DF7, 0x8DAC, 0x6DF8, 0xFB43, 0x6DF9, 0x9FB9, + 0x6DFA, 0x9FC7, 0x6DFB, 0x9359, 0x6DFC, 0xFB45, 0x6E05, 0x90B4, + 0x6E07, 0x8A89, 0x6E08, 0x8DCF, 0x6E09, 0x8FC2, 0x6E0A, 0x9FBB, + 0x6E0B, 0x8F61, 0x6E13, 0x8C6B, 0x6E15, 0x9FBA, 0x6E19, 0x9FD0, + 0x6E1A, 0x8F8D, 0x6E1B, 0x8CB8, 0x6E1D, 0x9FDF, 0x6E1F, 0x9FD9, + 0x6E20, 0x8B94, 0x6E21, 0x936E, 0x6E23, 0x9FD4, 0x6E24, 0x9FDD, + 0x6E25, 0x88AD, 0x6E26, 0x8951, 0x6E27, 0xFB48, 0x6E29, 0x89B7, + 0x6E2B, 0x9FD6, 0x6E2C, 0x91AA, 0x6E2D, 0x9FCD, 0x6E2E, 0x9FCF, + 0x6E2F, 0x8D60, 0x6E38, 0x9FE0, 0x6E39, 0xFB46, 0x6E3A, 0x9FDB, + 0x6E3C, 0xFB49, 0x6E3E, 0x9FD3, 0x6E43, 0x9FDA, 0x6E4A, 0x96A9, + 0x6E4D, 0x9FD8, 0x6E4E, 0x9FDC, 0x6E56, 0x8CCE, 0x6E58, 0x8FC3, + 0x6E5B, 0x9258, 0x6E5C, 0xFB47, 0x6E5F, 0x9FD2, 0x6E67, 0x974E, + 0x6E6B, 0x9FD5, 0x6E6E, 0x9FCE, 0x6E6F, 0x9392, 0x6E72, 0x9FD1, + 0x6E76, 0x9FD7, 0x6E7E, 0x9870, 0x6E7F, 0x8EBC, 0x6E80, 0x969E, + 0x6E82, 0x9FE1, 0x6E8C, 0x94AC, 0x6E8F, 0x9FED, 0x6E90, 0x8CB9, + 0x6E96, 0x8F80, 0x6E98, 0x9FE3, 0x6E9C, 0x97AD, 0x6E9D, 0x8D61, + 0x6E9F, 0x9FF0, 0x6EA2, 0x88EC, 0x6EA5, 0x9FEE, 0x6EAA, 0x9FE2, + 0x6EAF, 0x9FE8, 0x6EB2, 0x9FEA, 0x6EB6, 0x976E, 0x6EB7, 0x9FE5, + 0x6EBA, 0x934D, 0x6EBD, 0x9FE7, 0x6EBF, 0xFB4A, 0x6EC2, 0x9FEF, + 0x6EC4, 0x9FE9, 0x6EC5, 0x96C5, 0x6EC9, 0x9FE4, 0x6ECB, 0x8EA0, + 0x6ECC, 0x9FFC, 0x6ED1, 0x8A8A, 0x6ED3, 0x9FE6, 0x6ED4, 0x9FEB, + 0x6ED5, 0x9FEC, 0x6EDD, 0x91EA, 0x6EDE, 0x91D8, 0x6EEC, 0x9FF4, + 0x6EEF, 0x9FFA, 0x6EF2, 0x9FF8, 0x6EF4, 0x9348, 0x6EF7, 0xE042, + 0x6EF8, 0x9FF5, 0x6EFE, 0x9FF6, 0x6EFF, 0x9FDE, 0x6F01, 0x8B99, + 0x6F02, 0x9559, 0x6F06, 0x8EBD, 0x6F09, 0x8D97, 0x6F0F, 0x9852, + 0x6F11, 0x9FF2, 0x6F13, 0xE041, 0x6F14, 0x8989, 0x6F15, 0x9186, + 0x6F20, 0x9499, 0x6F22, 0x8ABF, 0x6F23, 0x97F8, 0x6F2B, 0x969F, + 0x6F2C, 0x92D0, 0x6F31, 0x9FF9, 0x6F32, 0x9FFB, 0x6F38, 0x9151, + 0x6F3E, 0xE040, 0x6F3F, 0x9FF7, 0x6F41, 0x9FF1, 0x6F45, 0x8AC1, + 0x6F54, 0x8C89, 0x6F58, 0xE04E, 0x6F5B, 0xE049, 0x6F5C, 0x90F6, + 0x6F5F, 0x8A83, 0x6F64, 0x8F81, 0x6F66, 0xE052, 0x6F6D, 0xE04B, + 0x6F6E, 0x92AA, 0x6F6F, 0xE048, 0x6F70, 0x92D7, 0x6F74, 0xE06B, + 0x6F78, 0xE045, 0x6F7A, 0xE044, 0x6F7C, 0xE04D, 0x6F80, 0xE047, + 0x6F81, 0xE046, 0x6F82, 0xE04C, 0x6F84, 0x909F, 0x6F86, 0xE043, + 0x6F88, 0xFB4B, 0x6F8E, 0xE04F, 0x6F91, 0xE050, 0x6F97, 0x8AC0, + 0x6FA1, 0xE055, 0x6FA3, 0xE054, 0x6FA4, 0xE056, 0x6FAA, 0xE059, + 0x6FB1, 0x9362, 0x6FB3, 0xE053, 0x6FB5, 0xFB4C, 0x6FB9, 0xE057, + 0x6FC0, 0x8C83, 0x6FC1, 0x91F7, 0x6FC2, 0xE051, 0x6FC3, 0x945A, + 0x6FC6, 0xE058, 0x6FD4, 0xE05D, 0x6FD5, 0xE05B, 0x6FD8, 0xE05E, + 0x6FDB, 0xE061, 0x6FDF, 0xE05A, 0x6FE0, 0x8D8A, 0x6FE1, 0x9447, + 0x6FE4, 0x9FB7, 0x6FEB, 0x9794, 0x6FEC, 0xE05C, 0x6FEE, 0xE060, + 0x6FEF, 0x91F3, 0x6FF1, 0xE05F, 0x6FF3, 0xE04A, 0x6FF5, 0xFB4D, + 0x6FF6, 0xE889, 0x6FFA, 0xE064, 0x6FFE, 0xE068, 0x7001, 0xE066, + 0x7005, 0xFB4E, 0x7007, 0xFB4F, 0x7009, 0xE062, 0x700B, 0xE063, + 0x700F, 0xE067, 0x7011, 0xE065, 0x7015, 0x956D, 0x7018, 0xE06D, + 0x701A, 0xE06A, 0x701B, 0xE069, 0x701D, 0xE06C, 0x701E, 0x93D2, + 0x701F, 0xE06E, 0x7026, 0x9295, 0x7027, 0x91EB, 0x7028, 0xFB50, + 0x702C, 0x90A3, 0x7030, 0xE06F, 0x7032, 0xE071, 0x703E, 0xE070, + 0x704C, 0x9FF3, 0x7051, 0xE072, 0x7058, 0x93E5, 0x7063, 0xE073, + 0x706B, 0x89CE, 0x706F, 0x9394, 0x7070, 0x8A44, 0x7078, 0x8B84, + 0x707C, 0x8EDC, 0x707D, 0x8DD0, 0x7085, 0xFB51, 0x7089, 0x9846, + 0x708A, 0x9086, 0x708E, 0x898A, 0x7092, 0xE075, 0x7099, 0xE074, + 0x70AB, 0xFB52, 0x70AC, 0xE078, 0x70AD, 0x9259, 0x70AE, 0xE07B, + 0x70AF, 0xE076, 0x70B3, 0xE07A, 0x70B8, 0xE079, 0x70B9, 0x935F, + 0x70BA, 0x88D7, 0x70BB, 0xFA62, 0x70C8, 0x97F3, 0x70CB, 0xE07D, + 0x70CF, 0x8947, 0x70D9, 0xE080, 0x70DD, 0xE07E, 0x70DF, 0xE07C, + 0x70F1, 0xE077, 0x70F9, 0x9642, 0x70FD, 0xE082, 0x7104, 0xFB54, + 0x7109, 0xE081, 0x710F, 0xFB53, 0x7114, 0x898B, 0x7119, 0xE084, + 0x711A, 0x95B0, 0x711C, 0xE083, 0x7121, 0x96B3, 0x7126, 0x8FC5, + 0x7136, 0x9152, 0x713C, 0x8FC4, 0x7146, 0xFB56, 0x7147, 0xFB57, + 0x7149, 0x97F9, 0x714C, 0xE08A, 0x714E, 0x90F7, 0x7155, 0xE086, + 0x7156, 0xE08B, 0x7159, 0x898C, 0x715C, 0xFB55, 0x7162, 0xE089, + 0x7164, 0x9481, 0x7165, 0xE085, 0x7166, 0xE088, 0x7167, 0x8FC6, + 0x7169, 0x94CF, 0x716C, 0xE08C, 0x716E, 0x8ECF, 0x717D, 0x90F8, + 0x7184, 0xE08F, 0x7188, 0xE087, 0x718A, 0x8C46, 0x718F, 0xE08D, + 0x7194, 0x976F, 0x7195, 0xE090, 0x7199, 0xEAA4, 0x719F, 0x8F6E, + 0x71A8, 0xE091, 0x71AC, 0xE092, 0x71B1, 0x944D, 0x71B9, 0xE094, + 0x71BE, 0xE095, 0x71C1, 0xFB59, 0x71C3, 0x9452, 0x71C8, 0x9395, + 0x71C9, 0xE097, 0x71CE, 0xE099, 0x71D0, 0x97D3, 0x71D2, 0xE096, + 0x71D4, 0xE098, 0x71D5, 0x898D, 0x71D7, 0xE093, 0x71DF, 0x9A7A, + 0x71E0, 0xE09A, 0x71E5, 0x9187, 0x71E6, 0x8E57, 0x71E7, 0xE09C, + 0x71EC, 0xE09B, 0x71ED, 0x9043, 0x71EE, 0x99D7, 0x71F5, 0xE09D, + 0x71F9, 0xE09F, 0x71FB, 0xE08E, 0x71FC, 0xE09E, 0x71FE, 0xFB5A, + 0x71FF, 0xE0A0, 0x7206, 0x949A, 0x720D, 0xE0A1, 0x7210, 0xE0A2, + 0x721B, 0xE0A3, 0x7228, 0xE0A4, 0x722A, 0x92DC, 0x722C, 0xE0A6, + 0x722D, 0xE0A5, 0x7230, 0xE0A7, 0x7232, 0xE0A8, 0x7235, 0x8EDD, + 0x7236, 0x9583, 0x723A, 0x96EA, 0x723B, 0xE0A9, 0x723C, 0xE0AA, + 0x723D, 0x9175, 0x723E, 0x8EA2, 0x723F, 0xE0AB, 0x7240, 0xE0AC, + 0x7246, 0xE0AD, 0x7247, 0x95D0, 0x7248, 0x94C5, 0x724B, 0xE0AE, + 0x724C, 0x9476, 0x7252, 0x92AB, 0x7258, 0xE0AF, 0x7259, 0x89E5, + 0x725B, 0x8B8D, 0x725D, 0x96C4, 0x725F, 0x96B4, 0x7261, 0x89B2, + 0x7262, 0x9853, 0x7267, 0x9671, 0x7269, 0x95A8, 0x7272, 0x90B5, + 0x7274, 0xE0B0, 0x7279, 0x93C1, 0x727D, 0x8CA1, 0x727E, 0xE0B1, + 0x7280, 0x8DD2, 0x7281, 0xE0B3, 0x7282, 0xE0B2, 0x7287, 0xE0B4, + 0x7292, 0xE0B5, 0x7296, 0xE0B6, 0x72A0, 0x8B5D, 0x72A2, 0xE0B7, + 0x72A7, 0xE0B8, 0x72AC, 0x8CA2, 0x72AF, 0x94C6, 0x72B1, 0xFB5B, + 0x72B2, 0xE0BA, 0x72B6, 0x8FF3, 0x72B9, 0xE0B9, 0x72BE, 0xFB5C, + 0x72C2, 0x8BB6, 0x72C3, 0xE0BB, 0x72C4, 0xE0BD, 0x72C6, 0xE0BC, + 0x72CE, 0xE0BE, 0x72D0, 0x8CCF, 0x72D2, 0xE0BF, 0x72D7, 0x8BE7, + 0x72D9, 0x915F, 0x72DB, 0x8D9D, 0x72E0, 0xE0C1, 0x72E1, 0xE0C2, + 0x72E2, 0xE0C0, 0x72E9, 0x8EEB, 0x72EC, 0x93C6, 0x72ED, 0x8BB7, + 0x72F7, 0xE0C4, 0x72F8, 0x924B, 0x72F9, 0xE0C3, 0x72FC, 0x9854, + 0x72FD, 0x9482, 0x730A, 0xE0C7, 0x7316, 0xE0C9, 0x7317, 0xE0C6, + 0x731B, 0x96D2, 0x731C, 0xE0C8, 0x731D, 0xE0CA, 0x731F, 0x97C2, + 0x7324, 0xFB5D, 0x7325, 0xE0CE, 0x7329, 0xE0CD, 0x732A, 0x9296, + 0x732B, 0x944C, 0x732E, 0x8CA3, 0x732F, 0xE0CC, 0x7334, 0xE0CB, + 0x7336, 0x9750, 0x7337, 0x9751, 0x733E, 0xE0CF, 0x733F, 0x898E, + 0x7344, 0x8D96, 0x7345, 0x8E82, 0x734E, 0xE0D0, 0x734F, 0xE0D1, + 0x7357, 0xE0D3, 0x7363, 0x8F62, 0x7368, 0xE0D5, 0x736A, 0xE0D4, + 0x7370, 0xE0D6, 0x7372, 0x8A6C, 0x7375, 0xE0D8, 0x7377, 0xFB5F, + 0x7378, 0xE0D7, 0x737A, 0xE0DA, 0x737B, 0xE0D9, 0x7384, 0x8CBA, + 0x7387, 0x97A6, 0x7389, 0x8BCA, 0x738B, 0x89A4, 0x7396, 0x8BE8, + 0x73A9, 0x8ADF, 0x73B2, 0x97E6, 0x73B3, 0xE0DC, 0x73BB, 0xE0DE, + 0x73BD, 0xFB60, 0x73C0, 0xE0DF, 0x73C2, 0x89CF, 0x73C8, 0xE0DB, + 0x73C9, 0xFB61, 0x73CA, 0x8E58, 0x73CD, 0x92BF, 0x73CE, 0xE0DD, + 0x73D2, 0xFB64, 0x73D6, 0xFB62, 0x73DE, 0xE0E2, 0x73E0, 0x8EEC, + 0x73E3, 0xFB63, 0x73E5, 0xE0E0, 0x73EA, 0x8C5D, 0x73ED, 0x94C7, + 0x73EE, 0xE0E1, 0x73F1, 0xE0FC, 0x73F5, 0xFB66, 0x73F8, 0xE0E7, + 0x73FE, 0x8CBB, 0x7403, 0x8B85, 0x7405, 0xE0E4, 0x7406, 0x979D, + 0x7407, 0xFB65, 0x7409, 0x97AE, 0x7422, 0x91F4, 0x7425, 0xE0E6, + 0x7426, 0xFB67, 0x7429, 0xFB69, 0x742A, 0xFB68, 0x742E, 0xFB6A, + 0x7432, 0xE0E8, 0x7433, 0x97D4, 0x7434, 0x8BD5, 0x7435, 0x94FA, + 0x7436, 0x9469, 0x743A, 0xE0E9, 0x743F, 0xE0EB, 0x7441, 0xE0EE, + 0x7455, 0xE0EA, 0x7459, 0xE0ED, 0x745A, 0x8CE8, 0x745B, 0x896C, + 0x745C, 0xE0EF, 0x745E, 0x9090, 0x745F, 0xE0EC, 0x7460, 0x97DA, + 0x7462, 0xFB6B, 0x7463, 0xE0F2, 0x7464, 0xEAA2, 0x7469, 0xE0F0, + 0x746A, 0xE0F3, 0x746F, 0xE0E5, 0x7470, 0xE0F1, 0x7473, 0x8DBA, + 0x7476, 0xE0F4, 0x747E, 0xE0F5, 0x7483, 0x979E, 0x7489, 0xFB6C, + 0x748B, 0xE0F6, 0x749E, 0xE0F7, 0x749F, 0xFB6D, 0x74A2, 0xE0E3, + 0x74A7, 0xE0F8, 0x74B0, 0x8AC2, 0x74BD, 0x8EA3, 0x74CA, 0xE0F9, + 0x74CF, 0xE0FA, 0x74D4, 0xE0FB, 0x74DC, 0x895A, 0x74E0, 0xE140, + 0x74E2, 0x955A, 0x74E3, 0xE141, 0x74E6, 0x8AA2, 0x74E7, 0xE142, + 0x74E9, 0xE143, 0x74EE, 0xE144, 0x74F0, 0xE146, 0x74F1, 0xE147, + 0x74F2, 0xE145, 0x74F6, 0x9572, 0x74F7, 0xE149, 0x74F8, 0xE148, + 0x7501, 0xFB6E, 0x7503, 0xE14B, 0x7504, 0xE14A, 0x7505, 0xE14C, + 0x750C, 0xE14D, 0x750D, 0xE14F, 0x750E, 0xE14E, 0x7511, 0x8D99, + 0x7513, 0xE151, 0x7515, 0xE150, 0x7518, 0x8AC3, 0x751A, 0x9072, + 0x751C, 0x935B, 0x751E, 0xE152, 0x751F, 0x90B6, 0x7523, 0x8E59, + 0x7525, 0x8999, 0x7526, 0xE153, 0x7528, 0x9770, 0x752B, 0x95E1, + 0x752C, 0xE154, 0x752F, 0xFAA8, 0x7530, 0x9363, 0x7531, 0x9752, + 0x7532, 0x8D62, 0x7533, 0x905C, 0x7537, 0x926A, 0x7538, 0x99B2, + 0x753A, 0x92AC, 0x753B, 0x89E6, 0x753C, 0xE155, 0x7544, 0xE156, + 0x7546, 0xE15B, 0x7549, 0xE159, 0x754A, 0xE158, 0x754B, 0x9DC0, + 0x754C, 0x8A45, 0x754D, 0xE157, 0x754F, 0x88D8, 0x7551, 0x94A8, + 0x7554, 0x94C8, 0x7559, 0x97AF, 0x755A, 0xE15C, 0x755B, 0xE15A, + 0x755C, 0x927B, 0x755D, 0x90A4, 0x7560, 0x94A9, 0x7562, 0x954C, + 0x7564, 0xE15E, 0x7565, 0x97AA, 0x7566, 0x8C6C, 0x7567, 0xE15F, + 0x7569, 0xE15D, 0x756A, 0x94D4, 0x756B, 0xE160, 0x756D, 0xE161, + 0x756F, 0xFB6F, 0x7570, 0x88D9, 0x7573, 0x8FF4, 0x7574, 0xE166, + 0x7576, 0xE163, 0x7577, 0x93EB, 0x7578, 0xE162, 0x757F, 0x8B45, + 0x7582, 0xE169, 0x7586, 0xE164, 0x7587, 0xE165, 0x7589, 0xE168, + 0x758A, 0xE167, 0x758B, 0x9544, 0x758E, 0x9161, 0x758F, 0x9160, + 0x7591, 0x8B5E, 0x7594, 0xE16A, 0x759A, 0xE16B, 0x759D, 0xE16C, + 0x75A3, 0xE16E, 0x75A5, 0xE16D, 0x75AB, 0x8975, 0x75B1, 0xE176, + 0x75B2, 0x94E6, 0x75B3, 0xE170, 0x75B5, 0xE172, 0x75B8, 0xE174, + 0x75B9, 0x905D, 0x75BC, 0xE175, 0x75BD, 0xE173, 0x75BE, 0x8EBE, + 0x75C2, 0xE16F, 0x75C3, 0xE171, 0x75C5, 0x9561, 0x75C7, 0x8FC7, + 0x75CA, 0xE178, 0x75CD, 0xE177, 0x75D2, 0xE179, 0x75D4, 0x8EA4, + 0x75D5, 0x8DAD, 0x75D8, 0x9397, 0x75D9, 0xE17A, 0x75DB, 0x92C9, + 0x75DE, 0xE17C, 0x75E2, 0x979F, 0x75E3, 0xE17B, 0x75E9, 0x9189, + 0x75F0, 0xE182, 0x75F2, 0xE184, 0x75F3, 0xE185, 0x75F4, 0x9273, + 0x75FA, 0xE183, 0x75FC, 0xE180, 0x75FE, 0xE17D, 0x75FF, 0xE17E, + 0x7601, 0xE181, 0x7609, 0xE188, 0x760B, 0xE186, 0x760D, 0xE187, + 0x761F, 0xE189, 0x7620, 0xE18B, 0x7621, 0xE18C, 0x7622, 0xE18D, + 0x7624, 0xE18E, 0x7627, 0xE18A, 0x7630, 0xE190, 0x7634, 0xE18F, + 0x763B, 0xE191, 0x7642, 0x97C3, 0x7646, 0xE194, 0x7647, 0xE192, + 0x7648, 0xE193, 0x764C, 0x8AE0, 0x7652, 0x96FC, 0x7656, 0x95C8, + 0x7658, 0xE196, 0x765C, 0xE195, 0x7661, 0xE197, 0x7662, 0xE198, + 0x7667, 0xE19C, 0x7668, 0xE199, 0x7669, 0xE19A, 0x766A, 0xE19B, + 0x766C, 0xE19D, 0x7670, 0xE19E, 0x7672, 0xE19F, 0x7676, 0xE1A0, + 0x7678, 0xE1A1, 0x767A, 0x94AD, 0x767B, 0x936F, 0x767C, 0xE1A2, + 0x767D, 0x9492, 0x767E, 0x9553, 0x7680, 0xE1A3, 0x7682, 0xFB70, + 0x7683, 0xE1A4, 0x7684, 0x9349, 0x7686, 0x8A46, 0x7687, 0x8D63, + 0x7688, 0xE1A5, 0x768B, 0xE1A6, 0x768E, 0xE1A7, 0x7690, 0x8E48, + 0x7693, 0xE1A9, 0x7696, 0xE1A8, 0x7699, 0xE1AA, 0x769A, 0xE1AB, + 0x769B, 0xFB73, 0x769C, 0xFB71, 0x769E, 0xFB72, 0x76A6, 0xFB74, + 0x76AE, 0x94E7, 0x76B0, 0xE1AC, 0x76B4, 0xE1AD, 0x76B7, 0xEA89, + 0x76B8, 0xE1AE, 0x76B9, 0xE1AF, 0x76BA, 0xE1B0, 0x76BF, 0x8E4D, + 0x76C2, 0xE1B1, 0x76C3, 0x9475, 0x76C6, 0x967E, 0x76C8, 0x896D, + 0x76CA, 0x8976, 0x76CD, 0xE1B2, 0x76D2, 0xE1B4, 0x76D6, 0xE1B3, + 0x76D7, 0x9390, 0x76DB, 0x90B7, 0x76DC, 0x9F58, 0x76DE, 0xE1B5, + 0x76DF, 0x96BF, 0x76E1, 0xE1B6, 0x76E3, 0x8AC4, 0x76E4, 0x94D5, + 0x76E5, 0xE1B7, 0x76E7, 0xE1B8, 0x76EA, 0xE1B9, 0x76EE, 0x96DA, + 0x76F2, 0x96D3, 0x76F4, 0x92BC, 0x76F8, 0x918A, 0x76FB, 0xE1BB, + 0x76FE, 0x8F82, 0x7701, 0x8FC8, 0x7704, 0xE1BE, 0x7707, 0xE1BD, + 0x7708, 0xE1BC, 0x7709, 0x94FB, 0x770B, 0x8AC5, 0x770C, 0x8CA7, + 0x771B, 0xE1C4, 0x771E, 0xE1C1, 0x771F, 0x905E, 0x7720, 0x96B0, + 0x7724, 0xE1C0, 0x7725, 0xE1C2, 0x7726, 0xE1C3, 0x7729, 0xE1BF, + 0x7737, 0xE1C5, 0x7738, 0xE1C6, 0x773A, 0x92AD, 0x773C, 0x8AE1, + 0x7740, 0x9285, 0x7746, 0xFB76, 0x7747, 0xE1C7, 0x775A, 0xE1C8, + 0x775B, 0xE1CB, 0x7761, 0x9087, 0x7763, 0x93C2, 0x7765, 0xE1CC, + 0x7766, 0x9672, 0x7768, 0xE1C9, 0x776B, 0xE1CA, 0x7779, 0xE1CF, + 0x777E, 0xE1CE, 0x777F, 0xE1CD, 0x778B, 0xE1D1, 0x778E, 0xE1D0, + 0x7791, 0xE1D2, 0x779E, 0xE1D4, 0x77A0, 0xE1D3, 0x77A5, 0x95CB, + 0x77AC, 0x8F75, 0x77AD, 0x97C4, 0x77B0, 0xE1D5, 0x77B3, 0x93B5, + 0x77B6, 0xE1D6, 0x77B9, 0xE1D7, 0x77BB, 0xE1DB, 0x77BC, 0xE1D9, + 0x77BD, 0xE1DA, 0x77BF, 0xE1D8, 0x77C7, 0xE1DC, 0x77CD, 0xE1DD, + 0x77D7, 0xE1DE, 0x77DA, 0xE1DF, 0x77DB, 0x96B5, 0x77DC, 0xE1E0, + 0x77E2, 0x96EE, 0x77E3, 0xE1E1, 0x77E5, 0x926D, 0x77E7, 0x948A, + 0x77E9, 0x8BE9, 0x77ED, 0x925A, 0x77EE, 0xE1E2, 0x77EF, 0x8BB8, + 0x77F3, 0x90CE, 0x77FC, 0xE1E3, 0x7802, 0x8DBB, 0x780C, 0xE1E4, + 0x7812, 0xE1E5, 0x7814, 0x8CA4, 0x7815, 0x8DD3, 0x7820, 0xE1E7, + 0x7821, 0xFB78, 0x7825, 0x9375, 0x7826, 0x8DD4, 0x7827, 0x8B6D, + 0x7832, 0x9643, 0x7834, 0x946A, 0x783A, 0x9376, 0x783F, 0x8D7B, + 0x7845, 0xE1E9, 0x784E, 0xFB79, 0x785D, 0x8FC9, 0x7864, 0xFB7A, + 0x786B, 0x97B0, 0x786C, 0x8D64, 0x786F, 0x8CA5, 0x7872, 0x94A1, + 0x7874, 0xE1EB, 0x787A, 0xFB7B, 0x787C, 0xE1ED, 0x7881, 0x8CE9, + 0x7886, 0xE1EC, 0x7887, 0x92F4, 0x788C, 0xE1EF, 0x788D, 0x8A56, + 0x788E, 0xE1EA, 0x7891, 0x94E8, 0x7893, 0x894F, 0x7895, 0x8DEA, + 0x7897, 0x9871, 0x789A, 0xE1EE, 0x78A3, 0xE1F0, 0x78A7, 0x95C9, + 0x78A9, 0x90D7, 0x78AA, 0xE1F2, 0x78AF, 0xE1F3, 0x78B5, 0xE1F1, + 0x78BA, 0x8A6D, 0x78BC, 0xE1F9, 0x78BE, 0xE1F8, 0x78C1, 0x8EA5, + 0x78C5, 0xE1FA, 0x78C6, 0xE1F5, 0x78CA, 0xE1FB, 0x78CB, 0xE1F6, + 0x78D0, 0x94D6, 0x78D1, 0xE1F4, 0x78D4, 0xE1F7, 0x78DA, 0xE241, + 0x78E7, 0xE240, 0x78E8, 0x9681, 0x78EC, 0xE1FC, 0x78EF, 0x88E9, + 0x78F4, 0xE243, 0x78FD, 0xE242, 0x7901, 0x8FCA, 0x7907, 0xE244, + 0x790E, 0x9162, 0x7911, 0xE246, 0x7912, 0xE245, 0x7919, 0xE247, + 0x7926, 0xE1E6, 0x792A, 0xE1E8, 0x792B, 0xE249, 0x792C, 0xE248, + 0x7930, 0xFB7C, 0x793A, 0x8EA6, 0x793C, 0x97E7, 0x793E, 0x8ED0, + 0x7940, 0xE24A, 0x7941, 0x8C56, 0x7947, 0x8B5F, 0x7948, 0x8B46, + 0x7949, 0x8E83, 0x7950, 0x9753, 0x7953, 0xE250, 0x7955, 0xE24F, + 0x7956, 0x9163, 0x7957, 0xE24C, 0x795A, 0xE24E, 0x795D, 0x8F6A, + 0x795E, 0x905F, 0x795F, 0xE24D, 0x7960, 0xE24B, 0x7962, 0x9449, + 0x7965, 0x8FCB, 0x7968, 0x955B, 0x796D, 0x8DD5, 0x7977, 0x9398, + 0x797A, 0xE251, 0x797F, 0xE252, 0x7980, 0xE268, 0x7981, 0x8BD6, + 0x7984, 0x985C, 0x7985, 0x9154, 0x798A, 0xE253, 0x798D, 0x89D0, + 0x798E, 0x92F5, 0x798F, 0x959F, 0x7994, 0xFB81, 0x799B, 0xFB83, + 0x799D, 0xE254, 0x79A6, 0x8B9A, 0x79A7, 0xE255, 0x79AA, 0xE257, + 0x79AE, 0xE258, 0x79B0, 0x9448, 0x79B3, 0xE259, 0x79B9, 0xE25A, + 0x79BA, 0xE25B, 0x79BD, 0x8BD7, 0x79BE, 0x89D1, 0x79BF, 0x93C3, + 0x79C0, 0x8F47, 0x79C1, 0x8E84, 0x79C9, 0xE25C, 0x79CB, 0x8F48, + 0x79D1, 0x89C8, 0x79D2, 0x9562, 0x79D5, 0xE25D, 0x79D8, 0x94E9, + 0x79DF, 0x9164, 0x79E1, 0xE260, 0x79E3, 0xE261, 0x79E4, 0x9489, + 0x79E6, 0x9060, 0x79E7, 0xE25E, 0x79E9, 0x9281, 0x79EC, 0xE25F, + 0x79F0, 0x8FCC, 0x79FB, 0x88DA, 0x7A00, 0x8B48, 0x7A08, 0xE262, + 0x7A0B, 0x92F6, 0x7A0D, 0xE263, 0x7A0E, 0x90C5, 0x7A14, 0x96AB, + 0x7A17, 0x9542, 0x7A18, 0xE264, 0x7A19, 0xE265, 0x7A1A, 0x9274, + 0x7A1C, 0x97C5, 0x7A1F, 0xE267, 0x7A20, 0xE266, 0x7A2E, 0x8EED, + 0x7A31, 0xE269, 0x7A32, 0x88EE, 0x7A37, 0xE26C, 0x7A3B, 0xE26A, + 0x7A3C, 0x89D2, 0x7A3D, 0x8C6D, 0x7A3E, 0xE26B, 0x7A3F, 0x8D65, + 0x7A40, 0x8D92, 0x7A42, 0x95E4, 0x7A43, 0xE26D, 0x7A46, 0x9673, + 0x7A49, 0xE26F, 0x7A4D, 0x90CF, 0x7A4E, 0x896E, 0x7A4F, 0x89B8, + 0x7A50, 0x88AA, 0x7A57, 0xE26E, 0x7A61, 0xE270, 0x7A62, 0xE271, + 0x7A63, 0x8FF5, 0x7A69, 0xE272, 0x7A6B, 0x8A6E, 0x7A70, 0xE274, + 0x7A74, 0x8C8A, 0x7A76, 0x8B86, 0x7A79, 0xE275, 0x7A7A, 0x8BF3, + 0x7A7D, 0xE276, 0x7A7F, 0x90FA, 0x7A81, 0x93CB, 0x7A83, 0x90DE, + 0x7A84, 0x8DF3, 0x7A88, 0xE277, 0x7A92, 0x9282, 0x7A93, 0x918B, + 0x7A95, 0xE279, 0x7A96, 0xE27B, 0x7A97, 0xE278, 0x7A98, 0xE27A, + 0x7A9F, 0x8C41, 0x7AA9, 0xE27C, 0x7AAA, 0x8C45, 0x7AAE, 0x8B87, + 0x7AAF, 0x9771, 0x7AB0, 0xE27E, 0x7AB6, 0xE280, 0x7ABA, 0x894D, + 0x7ABF, 0xE283, 0x7AC3, 0x8A96, 0x7AC4, 0xE282, 0x7AC5, 0xE281, + 0x7AC7, 0xE285, 0x7AC8, 0xE27D, 0x7ACA, 0xE286, 0x7ACB, 0x97A7, + 0x7ACD, 0xE287, 0x7ACF, 0xE288, 0x7AD1, 0xFB84, 0x7AD2, 0x9AF2, + 0x7AD3, 0xE28A, 0x7AD5, 0xE289, 0x7AD9, 0xE28B, 0x7ADA, 0xE28C, + 0x7ADC, 0x97B3, 0x7ADD, 0xE28D, 0x7ADF, 0xE8ED, 0x7AE0, 0x8FCD, + 0x7AE1, 0xE28E, 0x7AE2, 0xE28F, 0x7AE3, 0x8F76, 0x7AE5, 0x93B6, + 0x7AE6, 0xE290, 0x7AE7, 0xFB85, 0x7AEA, 0x9247, 0x7AEB, 0xFB87, + 0x7AED, 0xE291, 0x7AEF, 0x925B, 0x7AF0, 0xE292, 0x7AF6, 0x8BA3, + 0x7AF8, 0x995E, 0x7AF9, 0x927C, 0x7AFA, 0x8EB1, 0x7AFF, 0x8AC6, + 0x7B02, 0xE293, 0x7B04, 0xE2A0, 0x7B06, 0xE296, 0x7B08, 0x8B88, + 0x7B0A, 0xE295, 0x7B0B, 0xE2A2, 0x7B0F, 0xE294, 0x7B11, 0x8FCE, + 0x7B18, 0xE298, 0x7B19, 0xE299, 0x7B1B, 0x934A, 0x7B1E, 0xE29A, + 0x7B20, 0x8A7D, 0x7B25, 0x9079, 0x7B26, 0x9584, 0x7B28, 0xE29C, + 0x7B2C, 0x91E6, 0x7B33, 0xE297, 0x7B35, 0xE29B, 0x7B36, 0xE29D, + 0x7B39, 0x8DF9, 0x7B45, 0xE2A4, 0x7B46, 0x954D, 0x7B48, 0x94A4, + 0x7B49, 0x9399, 0x7B4B, 0x8BD8, 0x7B4C, 0xE2A3, 0x7B4D, 0xE2A1, + 0x7B4F, 0x94B3, 0x7B50, 0xE29E, 0x7B51, 0x927D, 0x7B52, 0x939B, + 0x7B54, 0x939A, 0x7B56, 0x8DF4, 0x7B5D, 0xE2B6, 0x7B65, 0xE2A6, + 0x7B67, 0xE2A8, 0x7B6C, 0xE2AB, 0x7B6E, 0xE2AC, 0x7B70, 0xE2A9, + 0x7B71, 0xE2AA, 0x7B74, 0xE2A7, 0x7B75, 0xE2A5, 0x7B7A, 0xE29F, + 0x7B86, 0x95CD, 0x7B87, 0x89D3, 0x7B8B, 0xE2B3, 0x7B8D, 0xE2B0, + 0x7B8F, 0xE2B5, 0x7B92, 0xE2B4, 0x7B94, 0x9493, 0x7B95, 0x96A5, + 0x7B97, 0x8E5A, 0x7B98, 0xE2AE, 0x7B99, 0xE2B7, 0x7B9A, 0xE2B2, + 0x7B9C, 0xE2B1, 0x7B9D, 0xE2AD, 0x7B9E, 0xFB88, 0x7B9F, 0xE2AF, + 0x7BA1, 0x8AC7, 0x7BAA, 0x925C, 0x7BAD, 0x90FB, 0x7BB1, 0x94A0, + 0x7BB4, 0xE2BC, 0x7BB8, 0x94A2, 0x7BC0, 0x90DF, 0x7BC1, 0xE2B9, + 0x7BC4, 0x94CD, 0x7BC6, 0xE2BD, 0x7BC7, 0x95D1, 0x7BC9, 0x927A, + 0x7BCB, 0xE2B8, 0x7BCC, 0xE2BA, 0x7BCF, 0xE2BB, 0x7BDD, 0xE2BE, + 0x7BE0, 0x8EC2, 0x7BE4, 0x93C4, 0x7BE5, 0xE2C3, 0x7BE6, 0xE2C2, + 0x7BE9, 0xE2BF, 0x7BED, 0x9855, 0x7BF3, 0xE2C8, 0x7BF6, 0xE2CC, + 0x7BF7, 0xE2C9, 0x7C00, 0xE2C5, 0x7C07, 0xE2C6, 0x7C0D, 0xE2CB, + 0x7C11, 0xE2C0, 0x7C12, 0x99D3, 0x7C13, 0xE2C7, 0x7C14, 0xE2C1, + 0x7C17, 0xE2CA, 0x7C1F, 0xE2D0, 0x7C21, 0x8AC8, 0x7C23, 0xE2CD, + 0x7C27, 0xE2CE, 0x7C2A, 0xE2CF, 0x7C2B, 0xE2D2, 0x7C37, 0xE2D1, + 0x7C38, 0x94F4, 0x7C3D, 0xE2D3, 0x7C3E, 0x97FA, 0x7C3F, 0x95EB, + 0x7C40, 0xE2D8, 0x7C43, 0xE2D5, 0x7C4C, 0xE2D4, 0x7C4D, 0x90D0, + 0x7C4F, 0xE2D7, 0x7C50, 0xE2D9, 0x7C54, 0xE2D6, 0x7C56, 0xE2DD, + 0x7C58, 0xE2DA, 0x7C5F, 0xE2DB, 0x7C60, 0xE2C4, 0x7C64, 0xE2DC, + 0x7C65, 0xE2DE, 0x7C6C, 0xE2DF, 0x7C73, 0x95C4, 0x7C75, 0xE2E0, + 0x7C7E, 0x96E0, 0x7C81, 0x8BCC, 0x7C82, 0x8C48, 0x7C83, 0xE2E1, + 0x7C89, 0x95B2, 0x7C8B, 0x9088, 0x7C8D, 0x96AE, 0x7C90, 0xE2E2, + 0x7C92, 0x97B1, 0x7C95, 0x9494, 0x7C97, 0x9165, 0x7C98, 0x9453, + 0x7C9B, 0x8F6C, 0x7C9F, 0x88BE, 0x7CA1, 0xE2E7, 0x7CA2, 0xE2E5, + 0x7CA4, 0xE2E3, 0x7CA5, 0x8A9F, 0x7CA7, 0x8FCF, 0x7CA8, 0xE2E8, + 0x7CAB, 0xE2E6, 0x7CAD, 0xE2E4, 0x7CAE, 0xE2EC, 0x7CB1, 0xE2EB, + 0x7CB2, 0xE2EA, 0x7CB3, 0xE2E9, 0x7CB9, 0xE2ED, 0x7CBD, 0xE2EE, + 0x7CBE, 0x90B8, 0x7CC0, 0xE2EF, 0x7CC2, 0xE2F1, 0x7CC5, 0xE2F0, + 0x7CCA, 0x8CD0, 0x7CCE, 0x9157, 0x7CD2, 0xE2F3, 0x7CD6, 0x939C, + 0x7CD8, 0xE2F2, 0x7CDC, 0xE2F4, 0x7CDE, 0x95B3, 0x7CDF, 0x918C, + 0x7CE0, 0x8D66, 0x7CE2, 0xE2F5, 0x7CE7, 0x97C6, 0x7CEF, 0xE2F7, + 0x7CF2, 0xE2F8, 0x7CF4, 0xE2F9, 0x7CF6, 0xE2FA, 0x7CF8, 0x8E85, + 0x7CFA, 0xE2FB, 0x7CFB, 0x8C6E, 0x7CFE, 0x8B8A, 0x7D00, 0x8B49, + 0x7D02, 0xE340, 0x7D04, 0x96F1, 0x7D05, 0x8D67, 0x7D06, 0xE2FC, + 0x7D0A, 0xE343, 0x7D0B, 0x96E4, 0x7D0D, 0x945B, 0x7D10, 0x9552, + 0x7D14, 0x8F83, 0x7D15, 0xE342, 0x7D17, 0x8ED1, 0x7D18, 0x8D68, + 0x7D19, 0x8E86, 0x7D1A, 0x8B89, 0x7D1B, 0x95B4, 0x7D1C, 0xE341, + 0x7D20, 0x9166, 0x7D21, 0x9661, 0x7D22, 0x8DF5, 0x7D2B, 0x8E87, + 0x7D2C, 0x92DB, 0x7D2E, 0xE346, 0x7D2F, 0x97DD, 0x7D30, 0x8DD7, + 0x7D32, 0xE347, 0x7D33, 0x9061, 0x7D35, 0xE349, 0x7D39, 0x8FD0, + 0x7D3A, 0x8DAE, 0x7D3F, 0xE348, 0x7D42, 0x8F49, 0x7D43, 0x8CBC, + 0x7D44, 0x9167, 0x7D45, 0xE344, 0x7D46, 0xE34A, 0x7D48, 0xFB8A, + 0x7D4B, 0xE345, 0x7D4C, 0x8C6F, 0x7D4E, 0xE34D, 0x7D4F, 0xE351, + 0x7D50, 0x8C8B, 0x7D56, 0xE34C, 0x7D5B, 0xE355, 0x7D5C, 0xFB8B, + 0x7D5E, 0x8D69, 0x7D61, 0x978D, 0x7D62, 0x88BA, 0x7D63, 0xE352, + 0x7D66, 0x8B8B, 0x7D68, 0xE34F, 0x7D6E, 0xE350, 0x7D71, 0x939D, + 0x7D72, 0xE34E, 0x7D73, 0xE34B, 0x7D75, 0x8A47, 0x7D76, 0x90E2, + 0x7D79, 0x8CA6, 0x7D7D, 0xE357, 0x7D89, 0xE354, 0x7D8F, 0xE356, + 0x7D93, 0xE353, 0x7D99, 0x8C70, 0x7D9A, 0x91B1, 0x7D9B, 0xE358, + 0x7D9C, 0x918E, 0x7D9F, 0xE365, 0x7DA0, 0xFB8D, 0x7DA2, 0xE361, + 0x7DA3, 0xE35B, 0x7DAB, 0xE35F, 0x7DAC, 0x8EF8, 0x7DAD, 0x88DB, + 0x7DAE, 0xE35A, 0x7DAF, 0xE362, 0x7DB0, 0xE366, 0x7DB1, 0x8D6A, + 0x7DB2, 0x96D4, 0x7DB4, 0x92D4, 0x7DB5, 0xE35C, 0x7DB7, 0xFB8C, + 0x7DB8, 0xE364, 0x7DBA, 0xE359, 0x7DBB, 0x925D, 0x7DBD, 0xE35E, + 0x7DBE, 0x88BB, 0x7DBF, 0x96C8, 0x7DC7, 0xE35D, 0x7DCA, 0x8BD9, + 0x7DCB, 0x94EA, 0x7DCF, 0x918D, 0x7DD1, 0x97CE, 0x7DD2, 0x8F8F, + 0x7DD5, 0xE38E, 0x7DD6, 0xFB8E, 0x7DD8, 0xE367, 0x7DDA, 0x90FC, + 0x7DDC, 0xE363, 0x7DDD, 0xE368, 0x7DDE, 0xE36A, 0x7DE0, 0x92F7, + 0x7DE1, 0xE36D, 0x7DE4, 0xE369, 0x7DE8, 0x95D2, 0x7DE9, 0x8AC9, + 0x7DEC, 0x96C9, 0x7DEF, 0x88DC, 0x7DF2, 0xE36C, 0x7DF4, 0x97FB, + 0x7DFB, 0xE36B, 0x7E01, 0x898F, 0x7E04, 0x93EA, 0x7E05, 0xE36E, + 0x7E09, 0xE375, 0x7E0A, 0xE36F, 0x7E0B, 0xE376, 0x7E12, 0xE372, + 0x7E1B, 0x949B, 0x7E1E, 0x8EC8, 0x7E1F, 0xE374, 0x7E21, 0xE371, + 0x7E22, 0xE377, 0x7E23, 0xE370, 0x7E26, 0x8F63, 0x7E2B, 0x9644, + 0x7E2E, 0x8F6B, 0x7E31, 0xE373, 0x7E32, 0xE380, 0x7E35, 0xE37B, + 0x7E37, 0xE37E, 0x7E39, 0xE37C, 0x7E3A, 0xE381, 0x7E3B, 0xE37A, + 0x7E3D, 0xE360, 0x7E3E, 0x90D1, 0x7E41, 0x94C9, 0x7E43, 0xE37D, + 0x7E46, 0xE378, 0x7E4A, 0x9140, 0x7E4B, 0x8C71, 0x7E4D, 0x8F4A, + 0x7E52, 0xFB8F, 0x7E54, 0x9044, 0x7E55, 0x9155, 0x7E56, 0xE384, + 0x7E59, 0xE386, 0x7E5A, 0xE387, 0x7E5D, 0xE383, 0x7E5E, 0xE385, + 0x7E66, 0xE379, 0x7E67, 0xE382, 0x7E69, 0xE38A, 0x7E6A, 0xE389, + 0x7E6D, 0x969A, 0x7E70, 0x8C4A, 0x7E79, 0xE388, 0x7E7B, 0xE38C, + 0x7E7C, 0xE38B, 0x7E7D, 0xE38F, 0x7E7F, 0xE391, 0x7E82, 0x8E5B, + 0x7E83, 0xE38D, 0x7E88, 0xE392, 0x7E89, 0xE393, 0x7E8A, 0xFA5C, + 0x7E8C, 0xE394, 0x7E8E, 0xE39A, 0x7E8F, 0x935A, 0x7E90, 0xE396, + 0x7E92, 0xE395, 0x7E93, 0xE397, 0x7E94, 0xE398, 0x7E96, 0xE399, + 0x7E9B, 0xE39B, 0x7E9C, 0xE39C, 0x7F36, 0x8ACA, 0x7F38, 0xE39D, + 0x7F3A, 0xE39E, 0x7F45, 0xE39F, 0x7F47, 0xFB90, 0x7F4C, 0xE3A0, + 0x7F4D, 0xE3A1, 0x7F4E, 0xE3A2, 0x7F50, 0xE3A3, 0x7F51, 0xE3A4, + 0x7F54, 0xE3A6, 0x7F55, 0xE3A5, 0x7F58, 0xE3A7, 0x7F5F, 0xE3A8, + 0x7F60, 0xE3A9, 0x7F67, 0xE3AC, 0x7F68, 0xE3AA, 0x7F69, 0xE3AB, + 0x7F6A, 0x8DDF, 0x7F6B, 0x8C72, 0x7F6E, 0x9275, 0x7F70, 0x94B1, + 0x7F72, 0x8F90, 0x7F75, 0x946C, 0x7F77, 0x94EB, 0x7F78, 0xE3AD, + 0x7F79, 0x9CEB, 0x7F82, 0xE3AE, 0x7F83, 0xE3B0, 0x7F85, 0x9785, + 0x7F86, 0xE3AF, 0x7F87, 0xE3B2, 0x7F88, 0xE3B1, 0x7F8A, 0x9772, + 0x7F8C, 0xE3B3, 0x7F8E, 0x94FC, 0x7F94, 0xE3B4, 0x7F9A, 0xE3B7, + 0x7F9D, 0xE3B6, 0x7F9E, 0xE3B5, 0x7FA1, 0xFB91, 0x7FA3, 0xE3B8, + 0x7FA4, 0x8C51, 0x7FA8, 0x9141, 0x7FA9, 0x8B60, 0x7FAE, 0xE3BC, + 0x7FAF, 0xE3B9, 0x7FB2, 0xE3BA, 0x7FB6, 0xE3BD, 0x7FB8, 0xE3BE, + 0x7FB9, 0xE3BB, 0x7FBD, 0x8948, 0x7FC1, 0x89A5, 0x7FC5, 0xE3C0, + 0x7FC6, 0xE3C1, 0x7FCA, 0xE3C2, 0x7FCC, 0x9782, 0x7FD2, 0x8F4B, + 0x7FD4, 0xE3C4, 0x7FD5, 0xE3C3, 0x7FE0, 0x9089, 0x7FE1, 0xE3C5, + 0x7FE6, 0xE3C6, 0x7FE9, 0xE3C7, 0x7FEB, 0x8AE3, 0x7FF0, 0x8ACB, + 0x7FF3, 0xE3C8, 0x7FF9, 0xE3C9, 0x7FFB, 0x967C, 0x7FFC, 0x9783, + 0x8000, 0x9773, 0x8001, 0x9856, 0x8003, 0x8D6C, 0x8004, 0xE3CC, + 0x8005, 0x8ED2, 0x8006, 0xE3CB, 0x800B, 0xE3CD, 0x800C, 0x8EA7, + 0x8010, 0x91CF, 0x8012, 0xE3CE, 0x8015, 0x8D6B, 0x8017, 0x96D5, + 0x8018, 0xE3CF, 0x8019, 0xE3D0, 0x801C, 0xE3D1, 0x8021, 0xE3D2, + 0x8028, 0xE3D3, 0x8033, 0x8EA8, 0x8036, 0x96EB, 0x803B, 0xE3D5, + 0x803D, 0x925E, 0x803F, 0xE3D4, 0x8046, 0xE3D7, 0x804A, 0xE3D6, + 0x8052, 0xE3D8, 0x8056, 0x90B9, 0x8058, 0xE3D9, 0x805A, 0xE3DA, + 0x805E, 0x95B7, 0x805F, 0xE3DB, 0x8061, 0x918F, 0x8062, 0xE3DC, + 0x8068, 0xE3DD, 0x806F, 0x97FC, 0x8070, 0xE3E0, 0x8072, 0xE3DF, + 0x8073, 0xE3DE, 0x8074, 0x92AE, 0x8076, 0xE3E1, 0x8077, 0x9045, + 0x8079, 0xE3E2, 0x807D, 0xE3E3, 0x807E, 0x9857, 0x807F, 0xE3E4, + 0x8084, 0xE3E5, 0x8085, 0xE3E7, 0x8086, 0xE3E6, 0x8087, 0x94A3, + 0x8089, 0x93F7, 0x808B, 0x985D, 0x808C, 0x94A7, 0x8093, 0xE3E9, + 0x8096, 0x8FD1, 0x8098, 0x9549, 0x809A, 0xE3EA, 0x809B, 0xE3E8, + 0x809D, 0x8ACC, 0x80A1, 0x8CD2, 0x80A2, 0x8E88, 0x80A5, 0x94EC, + 0x80A9, 0x8CA8, 0x80AA, 0x9662, 0x80AC, 0xE3ED, 0x80AD, 0xE3EB, + 0x80AF, 0x8D6D, 0x80B1, 0x8D6E, 0x80B2, 0x88E7, 0x80B4, 0x8DE6, + 0x80BA, 0x9478, 0x80C3, 0x88DD, 0x80C4, 0xE3F2, 0x80C6, 0x925F, + 0x80CC, 0x9477, 0x80CE, 0x91D9, 0x80D6, 0xE3F4, 0x80D9, 0xE3F0, + 0x80DA, 0xE3F3, 0x80DB, 0xE3EE, 0x80DD, 0xE3F1, 0x80DE, 0x9645, + 0x80E1, 0x8CD3, 0x80E4, 0x88FB, 0x80E5, 0xE3EF, 0x80EF, 0xE3F6, + 0x80F1, 0xE3F7, 0x80F4, 0x93B7, 0x80F8, 0x8BB9, 0x80FC, 0xE445, + 0x80FD, 0x945C, 0x8102, 0x8E89, 0x8105, 0x8BBA, 0x8106, 0x90C6, + 0x8107, 0x9865, 0x8108, 0x96AC, 0x8109, 0xE3F5, 0x810A, 0x90D2, + 0x811A, 0x8B72, 0x811B, 0xE3F8, 0x8123, 0xE3FA, 0x8129, 0xE3F9, + 0x812F, 0xE3FB, 0x8131, 0x9245, 0x8133, 0x945D, 0x8139, 0x92AF, + 0x813E, 0xE442, 0x8146, 0xE441, 0x814B, 0xE3FC, 0x814E, 0x9074, + 0x8150, 0x9585, 0x8151, 0xE444, 0x8153, 0xE443, 0x8154, 0x8D6F, + 0x8155, 0x9872, 0x815F, 0xE454, 0x8165, 0xE448, 0x8166, 0xE449, + 0x816B, 0x8EEE, 0x816E, 0xE447, 0x8170, 0x8D98, 0x8171, 0xE446, + 0x8174, 0xE44A, 0x8178, 0x92B0, 0x8179, 0x95A0, 0x817A, 0x9142, + 0x817F, 0x91DA, 0x8180, 0xE44E, 0x8182, 0xE44F, 0x8183, 0xE44B, + 0x8188, 0xE44C, 0x818A, 0xE44D, 0x818F, 0x8D70, 0x8193, 0xE455, + 0x8195, 0xE451, 0x819A, 0x9586, 0x819C, 0x968C, 0x819D, 0x9547, + 0x81A0, 0xE450, 0x81A3, 0xE453, 0x81A4, 0xE452, 0x81A8, 0x9663, + 0x81A9, 0xE456, 0x81B0, 0xE457, 0x81B3, 0x9156, 0x81B5, 0xE458, + 0x81B8, 0xE45A, 0x81BA, 0xE45E, 0x81BD, 0xE45B, 0x81BE, 0xE459, + 0x81BF, 0x945E, 0x81C0, 0xE45C, 0x81C2, 0xE45D, 0x81C6, 0x89B0, + 0x81C8, 0xE464, 0x81C9, 0xE45F, 0x81CD, 0xE460, 0x81D1, 0xE461, + 0x81D3, 0x919F, 0x81D8, 0xE463, 0x81D9, 0xE462, 0x81DA, 0xE465, + 0x81DF, 0xE466, 0x81E0, 0xE467, 0x81E3, 0x9062, 0x81E5, 0x89E7, + 0x81E7, 0xE468, 0x81E8, 0x97D5, 0x81EA, 0x8EA9, 0x81ED, 0x8F4C, + 0x81F3, 0x8E8A, 0x81F4, 0x9276, 0x81FA, 0xE469, 0x81FB, 0xE46A, + 0x81FC, 0x8950, 0x81FE, 0xE46B, 0x8201, 0xE46C, 0x8202, 0xE46D, + 0x8205, 0xE46E, 0x8207, 0xE46F, 0x8208, 0x8BBB, 0x8209, 0x9DA8, + 0x820A, 0xE470, 0x820C, 0x90E3, 0x820D, 0xE471, 0x820E, 0x8EC9, + 0x8210, 0xE472, 0x8212, 0x98AE, 0x8216, 0xE473, 0x8217, 0x95DC, + 0x8218, 0x8ADA, 0x821B, 0x9143, 0x821C, 0x8F77, 0x821E, 0x9591, + 0x821F, 0x8F4D, 0x8229, 0xE474, 0x822A, 0x8D71, 0x822B, 0xE475, + 0x822C, 0x94CA, 0x822E, 0xE484, 0x8233, 0xE477, 0x8235, 0x91C7, + 0x8236, 0x9495, 0x8237, 0x8CBD, 0x8238, 0xE476, 0x8239, 0x9144, + 0x8240, 0xE478, 0x8247, 0x92F8, 0x8258, 0xE47A, 0x8259, 0xE479, + 0x825A, 0xE47C, 0x825D, 0xE47B, 0x825F, 0xE47D, 0x8262, 0xE480, + 0x8264, 0xE47E, 0x8266, 0x8ACD, 0x8268, 0xE481, 0x826A, 0xE482, + 0x826B, 0xE483, 0x826E, 0x8DAF, 0x826F, 0x97C7, 0x8271, 0xE485, + 0x8272, 0x9046, 0x8276, 0x8990, 0x8277, 0xE486, 0x8278, 0xE487, + 0x827E, 0xE488, 0x828B, 0x88F0, 0x828D, 0xE489, 0x8292, 0xE48A, + 0x8299, 0x9587, 0x829D, 0x8EC5, 0x829F, 0xE48C, 0x82A5, 0x8A48, + 0x82A6, 0x88B0, 0x82AB, 0xE48B, 0x82AC, 0xE48E, 0x82AD, 0x946D, + 0x82AF, 0x9063, 0x82B1, 0x89D4, 0x82B3, 0x9646, 0x82B8, 0x8C7C, + 0x82B9, 0x8BDA, 0x82BB, 0xE48D, 0x82BD, 0x89E8, 0x82C5, 0x8AA1, + 0x82D1, 0x8991, 0x82D2, 0xE492, 0x82D3, 0x97E8, 0x82D4, 0x91DB, + 0x82D7, 0x9563, 0x82D9, 0xE49E, 0x82DB, 0x89D5, 0x82DC, 0xE49C, + 0x82DE, 0xE49A, 0x82DF, 0xE491, 0x82E1, 0xE48F, 0x82E3, 0xE490, + 0x82E5, 0x8EE1, 0x82E6, 0x8BEA, 0x82E7, 0x9297, 0x82EB, 0x93CF, + 0x82F1, 0x8970, 0x82F3, 0xE494, 0x82F4, 0xE493, 0x82F9, 0xE499, + 0x82FA, 0xE495, 0x82FB, 0xE498, 0x8301, 0xFB93, 0x8302, 0x96CE, + 0x8303, 0xE497, 0x8304, 0x89D6, 0x8305, 0x8A9D, 0x8306, 0xE49B, + 0x8309, 0xE49D, 0x830E, 0x8C73, 0x8316, 0xE4A1, 0x8317, 0xE4AA, + 0x8318, 0xE4AB, 0x831C, 0x88A9, 0x8323, 0xE4B2, 0x8328, 0x88EF, + 0x832B, 0xE4A9, 0x832F, 0xE4A8, 0x8331, 0xE4A3, 0x8332, 0xE4A2, + 0x8334, 0xE4A0, 0x8335, 0xE49F, 0x8336, 0x9283, 0x8338, 0x91F9, + 0x8339, 0xE4A5, 0x8340, 0xE4A4, 0x8345, 0xE4A7, 0x8349, 0x9190, + 0x834A, 0x8C74, 0x834F, 0x8960, 0x8350, 0xE4A6, 0x8352, 0x8D72, + 0x8358, 0x9191, 0x8362, 0xFB94, 0x8373, 0xE4B8, 0x8375, 0xE4B9, + 0x8377, 0x89D7, 0x837B, 0x89AC, 0x837C, 0xE4B6, 0x837F, 0xFB95, + 0x8385, 0xE4AC, 0x8387, 0xE4B4, 0x8389, 0xE4BB, 0x838A, 0xE4B5, + 0x838E, 0xE4B3, 0x8393, 0xE496, 0x8396, 0xE4B1, 0x839A, 0xE4AD, + 0x839E, 0x8ACE, 0x839F, 0xE4AF, 0x83A0, 0xE4BA, 0x83A2, 0xE4B0, + 0x83A8, 0xE4BC, 0x83AA, 0xE4AE, 0x83AB, 0x949C, 0x83B1, 0x9789, + 0x83B5, 0xE4B7, 0x83BD, 0xE4CD, 0x83C1, 0xE4C5, 0x83C5, 0x909B, + 0x83C7, 0xFB96, 0x83CA, 0x8B65, 0x83CC, 0x8BDB, 0x83CE, 0xE4C0, + 0x83D3, 0x89D9, 0x83D6, 0x8FD2, 0x83D8, 0xE4C3, 0x83DC, 0x8DD8, + 0x83DF, 0x9370, 0x83E0, 0xE4C8, 0x83E9, 0x95EC, 0x83EB, 0xE4BF, + 0x83EF, 0x89D8, 0x83F0, 0x8CD4, 0x83F1, 0x9548, 0x83F2, 0xE4C9, + 0x83F4, 0xE4BD, 0x83F6, 0xFB97, 0x83F7, 0xE4C6, 0x83FB, 0xE4D0, + 0x83FD, 0xE4C1, 0x8403, 0xE4C2, 0x8404, 0x93B8, 0x8407, 0xE4C7, + 0x840B, 0xE4C4, 0x840C, 0x9647, 0x840D, 0xE4CA, 0x840E, 0x88DE, + 0x8413, 0xE4BE, 0x8420, 0xE4CC, 0x8422, 0xE4CB, 0x8429, 0x948B, + 0x842A, 0xE4D2, 0x842C, 0xE4DD, 0x8431, 0x8A9E, 0x8435, 0xE4E0, + 0x8438, 0xE4CE, 0x843C, 0xE4D3, 0x843D, 0x978E, 0x8446, 0xE4DC, + 0x8448, 0xFB98, 0x8449, 0x9774, 0x844E, 0x97A8, 0x8457, 0x9298, + 0x845B, 0x8A8B, 0x8461, 0x9592, 0x8462, 0xE4E2, 0x8463, 0x939F, + 0x8466, 0x88AF, 0x8469, 0xE4DB, 0x846B, 0xE4D7, 0x846C, 0x9192, + 0x846D, 0xE4D1, 0x846E, 0xE4D9, 0x846F, 0xE4DE, 0x8471, 0x944B, + 0x8475, 0x88A8, 0x8477, 0xE4D6, 0x8479, 0xE4DF, 0x847A, 0x9598, + 0x8482, 0xE4DA, 0x8484, 0xE4D5, 0x848B, 0x8FD3, 0x8490, 0x8F4E, + 0x8494, 0x8EAA, 0x8499, 0x96D6, 0x849C, 0x9566, 0x849F, 0xE4E5, + 0x84A1, 0xE4EE, 0x84AD, 0xE4D8, 0x84B2, 0x8A97, 0x84B4, 0xFB99, + 0x84B8, 0x8FF6, 0x84B9, 0xE4E3, 0x84BB, 0xE4E8, 0x84BC, 0x9193, + 0x84BF, 0xE4E4, 0x84C1, 0xE4EB, 0x84C4, 0x927E, 0x84C6, 0xE4EC, + 0x84C9, 0x9775, 0x84CA, 0xE4E1, 0x84CB, 0x8A57, 0x84CD, 0xE4E7, + 0x84D0, 0xE4EA, 0x84D1, 0x96AA, 0x84D6, 0xE4ED, 0x84D9, 0xE4E6, + 0x84DA, 0xE4E9, 0x84DC, 0xFA60, 0x84EC, 0x9648, 0x84EE, 0x9840, + 0x84F4, 0xE4F1, 0x84FC, 0xE4F8, 0x84FF, 0xE4F0, 0x8500, 0x8EC1, + 0x8506, 0xE4CF, 0x8511, 0x95CC, 0x8513, 0x96A0, 0x8514, 0xE4F7, + 0x8515, 0xE4F6, 0x8517, 0xE4F2, 0x8518, 0xE4F3, 0x851A, 0x8955, + 0x851F, 0xE4F5, 0x8521, 0xE4EF, 0x8526, 0x92D3, 0x852C, 0xE4F4, + 0x852D, 0x88FC, 0x8535, 0x91A0, 0x853D, 0x95C1, 0x8540, 0xE4F9, + 0x8541, 0xE540, 0x8543, 0x94D7, 0x8548, 0xE4FC, 0x8549, 0x8FD4, + 0x854A, 0x8EC7, 0x854B, 0xE542, 0x854E, 0x8BBC, 0x8553, 0xFB9A, + 0x8555, 0xE543, 0x8557, 0x9599, 0x8558, 0xE4FB, 0x8559, 0xFB9B, + 0x855A, 0xE4D4, 0x8563, 0xE4FA, 0x8568, 0x986E, 0x8569, 0x93A0, + 0x856A, 0x9593, 0x856B, 0xFB9C, 0x856D, 0xE54A, 0x8577, 0xE550, + 0x857E, 0xE551, 0x8580, 0xE544, 0x8584, 0x9496, 0x8587, 0xE54E, + 0x8588, 0xE546, 0x858A, 0xE548, 0x8590, 0xE552, 0x8591, 0xE547, + 0x8594, 0xE54B, 0x8597, 0x8992, 0x8599, 0x93E3, 0x859B, 0xE54C, + 0x859C, 0xE54F, 0x85A4, 0xE545, 0x85A6, 0x9145, 0x85A8, 0xE549, + 0x85A9, 0x8E46, 0x85AA, 0x9064, 0x85AB, 0x8C4F, 0x85AC, 0x96F2, + 0x85AE, 0x96F7, 0x85AF, 0x8F92, 0x85B0, 0xFB9E, 0x85B9, 0xE556, + 0x85BA, 0xE554, 0x85C1, 0x986D, 0x85C9, 0xE553, 0x85CD, 0x9795, + 0x85CF, 0xE555, 0x85D0, 0xE557, 0x85D5, 0xE558, 0x85DC, 0xE55B, + 0x85DD, 0xE559, 0x85E4, 0x93A1, 0x85E5, 0xE55A, 0x85E9, 0x94CB, + 0x85EA, 0xE54D, 0x85F7, 0x8F93, 0x85F9, 0xE55C, 0x85FA, 0xE561, + 0x85FB, 0x9194, 0x85FE, 0xE560, 0x8602, 0xE541, 0x8606, 0xE562, + 0x8607, 0x9168, 0x860A, 0xE55D, 0x860B, 0xE55F, 0x8613, 0xE55E, + 0x8616, 0x9F50, 0x8617, 0x9F41, 0x861A, 0xE564, 0x8622, 0xE563, + 0x862D, 0x9796, 0x862F, 0xE1BA, 0x8630, 0xE565, 0x863F, 0xE566, + 0x864D, 0xE567, 0x864E, 0x8CD5, 0x8650, 0x8B73, 0x8654, 0xE569, + 0x8655, 0x997C, 0x865A, 0x8B95, 0x865C, 0x97B8, 0x865E, 0x8BF1, + 0x865F, 0xE56A, 0x8667, 0xE56B, 0x866B, 0x928E, 0x8671, 0xE56C, + 0x8679, 0x93F8, 0x867B, 0x88B8, 0x868A, 0x89E1, 0x868B, 0xE571, + 0x868C, 0xE572, 0x8693, 0xE56D, 0x8695, 0x8E5C, 0x86A3, 0xE56E, + 0x86A4, 0x9461, 0x86A9, 0xE56F, 0x86AA, 0xE570, 0x86AB, 0xE57A, + 0x86AF, 0xE574, 0x86B0, 0xE577, 0x86B6, 0xE573, 0x86C4, 0xE575, + 0x86C6, 0xE576, 0x86C7, 0x8ED6, 0x86C9, 0xE578, 0x86CB, 0x9260, + 0x86CD, 0x8C75, 0x86CE, 0x8A61, 0x86D4, 0xE57B, 0x86D9, 0x8A5E, + 0x86DB, 0xE581, 0x86DE, 0xE57C, 0x86DF, 0xE580, 0x86E4, 0x94B8, + 0x86E9, 0xE57D, 0x86EC, 0xE57E, 0x86ED, 0x9567, 0x86EE, 0x94D8, + 0x86EF, 0xE582, 0x86F8, 0x91FB, 0x86F9, 0xE58C, 0x86FB, 0xE588, + 0x86FE, 0x89E9, 0x8700, 0xE586, 0x8702, 0x9649, 0x8703, 0xE587, + 0x8706, 0xE584, 0x8708, 0xE585, 0x8709, 0xE58A, 0x870A, 0xE58D, + 0x870D, 0xE58B, 0x8711, 0xE589, 0x8712, 0xE583, 0x8718, 0x9277, + 0x871A, 0xE594, 0x871C, 0x96A8, 0x8725, 0xE592, 0x8729, 0xE593, + 0x8734, 0xE58E, 0x8737, 0xE590, 0x873B, 0xE591, 0x873F, 0xE58F, + 0x8749, 0x90E4, 0x874B, 0x9858, 0x874C, 0xE598, 0x874E, 0xE599, + 0x8753, 0xE59F, 0x8755, 0x9049, 0x8757, 0xE59B, 0x8759, 0xE59E, + 0x875F, 0xE596, 0x8760, 0xE595, 0x8763, 0xE5A0, 0x8766, 0x89DA, + 0x8768, 0xE59C, 0x876A, 0xE5A1, 0x876E, 0xE59D, 0x8774, 0xE59A, + 0x8776, 0x92B1, 0x8778, 0xE597, 0x877F, 0x9488, 0x8782, 0xE5A5, + 0x878D, 0x975A, 0x879F, 0xE5A4, 0x87A2, 0xE5A3, 0x87AB, 0xE5AC, + 0x87AF, 0xE5A6, 0x87B3, 0xE5AE, 0x87BA, 0x9786, 0x87BB, 0xE5B1, + 0x87BD, 0xE5A8, 0x87C0, 0xE5A9, 0x87C4, 0xE5AD, 0x87C6, 0xE5B0, + 0x87C7, 0xE5AF, 0x87CB, 0xE5A7, 0x87D0, 0xE5AA, 0x87D2, 0xE5BB, + 0x87E0, 0xE5B4, 0x87EF, 0xE5B2, 0x87F2, 0xE5B3, 0x87F6, 0xE5B8, + 0x87F7, 0xE5B9, 0x87F9, 0x8A49, 0x87FB, 0x8B61, 0x87FE, 0xE5B7, + 0x8805, 0xE5A2, 0x8807, 0xFBA1, 0x880D, 0xE5B6, 0x880E, 0xE5BA, + 0x880F, 0xE5B5, 0x8811, 0xE5BC, 0x8815, 0xE5BE, 0x8816, 0xE5BD, + 0x8821, 0xE5C0, 0x8822, 0xE5BF, 0x8823, 0xE579, 0x8827, 0xE5C4, + 0x8831, 0xE5C1, 0x8836, 0xE5C2, 0x8839, 0xE5C3, 0x883B, 0xE5C5, + 0x8840, 0x8C8C, 0x8842, 0xE5C7, 0x8844, 0xE5C6, 0x8846, 0x8F4F, + 0x884C, 0x8D73, 0x884D, 0x9FA5, 0x8852, 0xE5C8, 0x8853, 0x8F70, + 0x8857, 0x8A58, 0x8859, 0xE5C9, 0x885B, 0x8971, 0x885D, 0x8FD5, + 0x885E, 0xE5CA, 0x8861, 0x8D74, 0x8862, 0xE5CB, 0x8863, 0x88DF, + 0x8868, 0x955C, 0x886B, 0xE5CC, 0x8870, 0x908A, 0x8872, 0xE5D3, + 0x8875, 0xE5D0, 0x8877, 0x928F, 0x887D, 0xE5D1, 0x887E, 0xE5CE, + 0x887F, 0x8BDC, 0x8881, 0xE5CD, 0x8882, 0xE5D4, 0x8888, 0x8C55, + 0x888B, 0x91DC, 0x888D, 0xE5DA, 0x8892, 0xE5D6, 0x8896, 0x91B3, + 0x8897, 0xE5D5, 0x8899, 0xE5D8, 0x889E, 0xE5CF, 0x88A2, 0xE5D9, + 0x88A4, 0xE5DB, 0x88AB, 0x94ED, 0x88AE, 0xE5D7, 0x88B0, 0xE5DC, + 0x88B1, 0xE5DE, 0x88B4, 0x8CD1, 0x88B5, 0xE5D2, 0x88B7, 0x88BF, + 0x88BF, 0xE5DD, 0x88C1, 0x8DD9, 0x88C2, 0x97F4, 0x88C3, 0xE5DF, + 0x88C4, 0xE5E0, 0x88C5, 0x9195, 0x88CF, 0x97A0, 0x88D4, 0xE5E1, + 0x88D5, 0x9754, 0x88D8, 0xE5E2, 0x88D9, 0xE5E3, 0x88DC, 0x95E2, + 0x88DD, 0xE5E4, 0x88DF, 0x8DBE, 0x88E1, 0x97A1, 0x88E8, 0xE5E9, + 0x88F2, 0xE5EA, 0x88F3, 0x8FD6, 0x88F4, 0xE5E8, 0x88F5, 0xFBA2, + 0x88F8, 0x9787, 0x88F9, 0xE5E5, 0x88FC, 0xE5E7, 0x88FD, 0x90BB, + 0x88FE, 0x909E, 0x8902, 0xE5E6, 0x8904, 0xE5EB, 0x8907, 0x95A1, + 0x890A, 0xE5ED, 0x890C, 0xE5EC, 0x8910, 0x8A8C, 0x8912, 0x964A, + 0x8913, 0xE5EE, 0x891C, 0xFA5D, 0x891D, 0xE5FA, 0x891E, 0xE5F0, + 0x8925, 0xE5F1, 0x892A, 0xE5F2, 0x892B, 0xE5F3, 0x8936, 0xE5F7, + 0x8938, 0xE5F8, 0x893B, 0xE5F6, 0x8941, 0xE5F4, 0x8943, 0xE5EF, + 0x8944, 0xE5F5, 0x894C, 0xE5F9, 0x894D, 0xE8B5, 0x8956, 0x89A6, + 0x895E, 0xE5FC, 0x895F, 0x8BDD, 0x8960, 0xE5FB, 0x8964, 0xE641, + 0x8966, 0xE640, 0x896A, 0xE643, 0x896D, 0xE642, 0x896F, 0xE644, + 0x8972, 0x8F50, 0x8974, 0xE645, 0x8977, 0xE646, 0x897E, 0xE647, + 0x897F, 0x90BC, 0x8981, 0x9776, 0x8983, 0xE648, 0x8986, 0x95A2, + 0x8987, 0x9465, 0x8988, 0xE649, 0x898A, 0xE64A, 0x898B, 0x8CA9, + 0x898F, 0x8B4B, 0x8993, 0xE64B, 0x8996, 0x8E8B, 0x8997, 0x9460, + 0x8998, 0xE64C, 0x899A, 0x8A6F, 0x89A1, 0xE64D, 0x89A6, 0xE64F, + 0x89A7, 0x9797, 0x89A9, 0xE64E, 0x89AA, 0x9065, 0x89AC, 0xE650, + 0x89AF, 0xE651, 0x89B2, 0xE652, 0x89B3, 0x8ACF, 0x89BA, 0xE653, + 0x89BD, 0xE654, 0x89BF, 0xE655, 0x89C0, 0xE656, 0x89D2, 0x8A70, + 0x89DA, 0xE657, 0x89DC, 0xE658, 0x89DD, 0xE659, 0x89E3, 0x89F0, + 0x89E6, 0x9047, 0x89E7, 0xE65A, 0x89F4, 0xE65B, 0x89F8, 0xE65C, + 0x8A00, 0x8CBE, 0x8A02, 0x92F9, 0x8A03, 0xE65D, 0x8A08, 0x8C76, + 0x8A0A, 0x9075, 0x8A0C, 0xE660, 0x8A0E, 0x93A2, 0x8A10, 0xE65F, + 0x8A12, 0xFBA3, 0x8A13, 0x8C50, 0x8A16, 0xE65E, 0x8A17, 0x91F5, + 0x8A18, 0x8B4C, 0x8A1B, 0xE661, 0x8A1D, 0xE662, 0x8A1F, 0x8FD7, + 0x8A23, 0x8C8D, 0x8A25, 0xE663, 0x8A2A, 0x964B, 0x8A2D, 0x90DD, + 0x8A31, 0x8B96, 0x8A33, 0x96F3, 0x8A34, 0x9169, 0x8A36, 0xE664, + 0x8A37, 0xFBA4, 0x8A3A, 0x9066, 0x8A3B, 0x9290, 0x8A3C, 0x8FD8, + 0x8A41, 0xE665, 0x8A46, 0xE668, 0x8A48, 0xE669, 0x8A50, 0x8DBC, + 0x8A51, 0x91C0, 0x8A52, 0xE667, 0x8A54, 0x8FD9, 0x8A55, 0x955D, + 0x8A5B, 0xE666, 0x8A5E, 0x8E8C, 0x8A60, 0x8972, 0x8A62, 0xE66D, + 0x8A63, 0x8C77, 0x8A66, 0x8E8E, 0x8A69, 0x8E8D, 0x8A6B, 0x986C, + 0x8A6C, 0xE66C, 0x8A6D, 0xE66B, 0x8A6E, 0x9146, 0x8A70, 0x8B6C, + 0x8A71, 0x9862, 0x8A72, 0x8A59, 0x8A73, 0x8FDA, 0x8A79, 0xFBA5, + 0x8A7C, 0xE66A, 0x8A82, 0xE66F, 0x8A84, 0xE670, 0x8A85, 0xE66E, + 0x8A87, 0x8CD6, 0x8A89, 0x975F, 0x8A8C, 0x8E8F, 0x8A8D, 0x9446, + 0x8A91, 0xE673, 0x8A93, 0x90BE, 0x8A95, 0x9261, 0x8A98, 0x9755, + 0x8A9A, 0xE676, 0x8A9E, 0x8CEA, 0x8AA0, 0x90BD, 0x8AA1, 0xE672, + 0x8AA3, 0xE677, 0x8AA4, 0x8CEB, 0x8AA5, 0xE674, 0x8AA6, 0xE675, + 0x8AA7, 0xFBA6, 0x8AA8, 0xE671, 0x8AAC, 0x90E0, 0x8AAD, 0x93C7, + 0x8AB0, 0x924E, 0x8AB2, 0x89DB, 0x8AB9, 0x94EE, 0x8ABC, 0x8B62, + 0x8ABE, 0xFBA7, 0x8ABF, 0x92B2, 0x8AC2, 0xE67A, 0x8AC4, 0xE678, + 0x8AC7, 0x926B, 0x8ACB, 0x90BF, 0x8ACC, 0x8AD0, 0x8ACD, 0xE679, + 0x8ACF, 0x907A, 0x8AD2, 0x97C8, 0x8AD6, 0x985F, 0x8ADA, 0xE67B, + 0x8ADB, 0xE687, 0x8ADC, 0x92B3, 0x8ADE, 0xE686, 0x8ADF, 0xFBA8, + 0x8AE0, 0xE683, 0x8AE1, 0xE68B, 0x8AE2, 0xE684, 0x8AE4, 0xE680, + 0x8AE6, 0x92FA, 0x8AE7, 0xE67E, 0x8AEB, 0xE67C, 0x8AED, 0x9740, + 0x8AEE, 0x8E90, 0x8AF1, 0xE681, 0x8AF3, 0xE67D, 0x8AF6, 0xFBAA, + 0x8AF7, 0xE685, 0x8AF8, 0x8F94, 0x8AFA, 0x8CBF, 0x8AFE, 0x91F8, + 0x8B00, 0x9664, 0x8B01, 0x8979, 0x8B02, 0x88E0, 0x8B04, 0x93A3, + 0x8B07, 0xE689, 0x8B0C, 0xE688, 0x8B0E, 0x93E4, 0x8B10, 0xE68D, + 0x8B14, 0xE682, 0x8B16, 0xE68C, 0x8B17, 0xE68E, 0x8B19, 0x8CAA, + 0x8B1A, 0xE68A, 0x8B1B, 0x8D75, 0x8B1D, 0x8ED3, 0x8B20, 0xE68F, + 0x8B21, 0x9777, 0x8B26, 0xE692, 0x8B28, 0xE695, 0x8B2B, 0xE693, + 0x8B2C, 0x9554, 0x8B33, 0xE690, 0x8B39, 0x8BDE, 0x8B3E, 0xE694, + 0x8B41, 0xE696, 0x8B49, 0xE69A, 0x8B4C, 0xE697, 0x8B4E, 0xE699, + 0x8B4F, 0xE698, 0x8B53, 0xFBAB, 0x8B56, 0xE69B, 0x8B58, 0x8EAF, + 0x8B5A, 0xE69D, 0x8B5B, 0xE69C, 0x8B5C, 0x9588, 0x8B5F, 0xE69F, + 0x8B66, 0x8C78, 0x8B6B, 0xE69E, 0x8B6C, 0xE6A0, 0x8B6F, 0xE6A1, + 0x8B70, 0x8B63, 0x8B71, 0xE3BF, 0x8B72, 0x8FF7, 0x8B74, 0xE6A2, + 0x8B77, 0x8CEC, 0x8B7D, 0xE6A3, 0x8B7F, 0xFBAC, 0x8B80, 0xE6A4, + 0x8B83, 0x8E5D, 0x8B8A, 0x9DCC, 0x8B8C, 0xE6A5, 0x8B8E, 0xE6A6, + 0x8B90, 0x8F51, 0x8B92, 0xE6A7, 0x8B93, 0xE6A8, 0x8B96, 0xE6A9, + 0x8B99, 0xE6AA, 0x8B9A, 0xE6AB, 0x8C37, 0x924A, 0x8C3A, 0xE6AC, + 0x8C3F, 0xE6AE, 0x8C41, 0xE6AD, 0x8C46, 0x93A4, 0x8C48, 0xE6AF, + 0x8C4A, 0x964C, 0x8C4C, 0xE6B0, 0x8C4E, 0xE6B1, 0x8C50, 0xE6B2, + 0x8C55, 0xE6B3, 0x8C5A, 0x93D8, 0x8C61, 0x8FDB, 0x8C62, 0xE6B4, + 0x8C6A, 0x8D8B, 0x8C6B, 0x98AC, 0x8C6C, 0xE6B5, 0x8C78, 0xE6B6, + 0x8C79, 0x955E, 0x8C7A, 0xE6B7, 0x8C7C, 0xE6BF, 0x8C82, 0xE6B8, + 0x8C85, 0xE6BA, 0x8C89, 0xE6B9, 0x8C8A, 0xE6BB, 0x8C8C, 0x9665, + 0x8C8D, 0xE6BC, 0x8C8E, 0xE6BD, 0x8C94, 0xE6BE, 0x8C98, 0xE6C0, + 0x8C9D, 0x8A4C, 0x8C9E, 0x92E5, 0x8CA0, 0x9589, 0x8CA1, 0x8DE0, + 0x8CA2, 0x8D76, 0x8CA7, 0x956E, 0x8CA8, 0x89DD, 0x8CA9, 0x94CC, + 0x8CAA, 0xE6C3, 0x8CAB, 0x8AD1, 0x8CAC, 0x90D3, 0x8CAD, 0xE6C2, + 0x8CAE, 0xE6C7, 0x8CAF, 0x9299, 0x8CB0, 0x96E1, 0x8CB2, 0xE6C5, + 0x8CB3, 0xE6C6, 0x8CB4, 0x8B4D, 0x8CB6, 0xE6C8, 0x8CB7, 0x9483, + 0x8CB8, 0x91DD, 0x8CBB, 0x94EF, 0x8CBC, 0x935C, 0x8CBD, 0xE6C4, + 0x8CBF, 0x9666, 0x8CC0, 0x89EA, 0x8CC1, 0xE6CA, 0x8CC2, 0x9847, + 0x8CC3, 0x92C0, 0x8CC4, 0x9864, 0x8CC7, 0x8E91, 0x8CC8, 0xE6C9, + 0x8CCA, 0x91AF, 0x8CCD, 0xE6DA, 0x8CCE, 0x9147, 0x8CD1, 0x93F6, + 0x8CD3, 0x956F, 0x8CDA, 0xE6CD, 0x8CDB, 0x8E5E, 0x8CDC, 0x8E92, + 0x8CDE, 0x8FDC, 0x8CE0, 0x9485, 0x8CE2, 0x8CAB, 0x8CE3, 0xE6CC, + 0x8CE4, 0xE6CB, 0x8CE6, 0x958A, 0x8CEA, 0x8EBF, 0x8CED, 0x9371, + 0x8CF0, 0xFBAD, 0x8CF4, 0xFBAE, 0x8CFA, 0xE6CF, 0x8CFB, 0xE6D0, + 0x8CFC, 0x8D77, 0x8CFD, 0xE6CE, 0x8D04, 0xE6D1, 0x8D05, 0xE6D2, + 0x8D07, 0xE6D4, 0x8D08, 0x91A1, 0x8D0A, 0xE6D3, 0x8D0B, 0x8AE4, + 0x8D0D, 0xE6D6, 0x8D0F, 0xE6D5, 0x8D10, 0xE6D7, 0x8D12, 0xFBAF, + 0x8D13, 0xE6D9, 0x8D14, 0xE6DB, 0x8D16, 0xE6DC, 0x8D64, 0x90D4, + 0x8D66, 0x8ECD, 0x8D67, 0xE6DD, 0x8D6B, 0x8A71, 0x8D6D, 0xE6DE, + 0x8D70, 0x9196, 0x8D71, 0xE6DF, 0x8D73, 0xE6E0, 0x8D74, 0x958B, + 0x8D76, 0xFBB0, 0x8D77, 0x8B4E, 0x8D81, 0xE6E1, 0x8D85, 0x92B4, + 0x8D8A, 0x897A, 0x8D99, 0xE6E2, 0x8DA3, 0x8EEF, 0x8DA8, 0x9096, + 0x8DB3, 0x91AB, 0x8DBA, 0xE6E5, 0x8DBE, 0xE6E4, 0x8DC2, 0xE6E3, + 0x8DCB, 0xE6EB, 0x8DCC, 0xE6E9, 0x8DCF, 0xE6E6, 0x8DD6, 0xE6E8, + 0x8DDA, 0xE6E7, 0x8DDB, 0xE6EA, 0x8DDD, 0x8B97, 0x8DDF, 0xE6EE, + 0x8DE1, 0x90D5, 0x8DE3, 0xE6EF, 0x8DE8, 0x8CD7, 0x8DEA, 0xE6EC, + 0x8DEB, 0xE6ED, 0x8DEF, 0x9848, 0x8DF3, 0x92B5, 0x8DF5, 0x9148, + 0x8DFC, 0xE6F0, 0x8DFF, 0xE6F3, 0x8E08, 0xE6F1, 0x8E09, 0xE6F2, + 0x8E0A, 0x9778, 0x8E0F, 0x93A5, 0x8E10, 0xE6F6, 0x8E1D, 0xE6F4, + 0x8E1E, 0xE6F5, 0x8E1F, 0xE6F7, 0x8E2A, 0xE748, 0x8E30, 0xE6FA, + 0x8E34, 0xE6FB, 0x8E35, 0xE6F9, 0x8E42, 0xE6F8, 0x8E44, 0x92FB, + 0x8E47, 0xE740, 0x8E48, 0xE744, 0x8E49, 0xE741, 0x8E4A, 0xE6FC, + 0x8E4C, 0xE742, 0x8E50, 0xE743, 0x8E55, 0xE74A, 0x8E59, 0xE745, + 0x8E5F, 0x90D6, 0x8E60, 0xE747, 0x8E63, 0xE749, 0x8E64, 0xE746, + 0x8E72, 0xE74C, 0x8E74, 0x8F52, 0x8E76, 0xE74B, 0x8E7C, 0xE74D, + 0x8E81, 0xE74E, 0x8E84, 0xE751, 0x8E85, 0xE750, 0x8E87, 0xE74F, + 0x8E8A, 0xE753, 0x8E8B, 0xE752, 0x8E8D, 0x96F4, 0x8E91, 0xE755, + 0x8E93, 0xE754, 0x8E94, 0xE756, 0x8E99, 0xE757, 0x8EA1, 0xE759, + 0x8EAA, 0xE758, 0x8EAB, 0x9067, 0x8EAC, 0xE75A, 0x8EAF, 0x8BEB, + 0x8EB0, 0xE75B, 0x8EB1, 0xE75D, 0x8EBE, 0xE75E, 0x8EC5, 0xE75F, + 0x8EC6, 0xE75C, 0x8EC8, 0xE760, 0x8ECA, 0x8ED4, 0x8ECB, 0xE761, + 0x8ECC, 0x8B4F, 0x8ECD, 0x8C52, 0x8ECF, 0xFBB2, 0x8ED2, 0x8CAC, + 0x8EDB, 0xE762, 0x8EDF, 0x93EE, 0x8EE2, 0x935D, 0x8EE3, 0xE763, + 0x8EEB, 0xE766, 0x8EF8, 0x8EB2, 0x8EFB, 0xE765, 0x8EFC, 0xE764, + 0x8EFD, 0x8C79, 0x8EFE, 0xE767, 0x8F03, 0x8A72, 0x8F05, 0xE769, + 0x8F09, 0x8DDA, 0x8F0A, 0xE768, 0x8F0C, 0xE771, 0x8F12, 0xE76B, + 0x8F13, 0xE76D, 0x8F14, 0x95E3, 0x8F15, 0xE76A, 0x8F19, 0xE76C, + 0x8F1B, 0xE770, 0x8F1C, 0xE76E, 0x8F1D, 0x8B50, 0x8F1F, 0xE76F, + 0x8F26, 0xE772, 0x8F29, 0x9479, 0x8F2A, 0x97D6, 0x8F2F, 0x8F53, + 0x8F33, 0xE773, 0x8F38, 0x9741, 0x8F39, 0xE775, 0x8F3B, 0xE774, + 0x8F3E, 0xE778, 0x8F3F, 0x9760, 0x8F42, 0xE777, 0x8F44, 0x8A8D, + 0x8F45, 0xE776, 0x8F46, 0xE77B, 0x8F49, 0xE77A, 0x8F4C, 0xE779, + 0x8F4D, 0x9351, 0x8F4E, 0xE77C, 0x8F57, 0xE77D, 0x8F5C, 0xE77E, + 0x8F5F, 0x8D8C, 0x8F61, 0x8C44, 0x8F62, 0xE780, 0x8F63, 0xE781, + 0x8F64, 0xE782, 0x8F9B, 0x9068, 0x8F9C, 0xE783, 0x8F9E, 0x8EAB, + 0x8F9F, 0xE784, 0x8FA3, 0xE785, 0x8FA7, 0x999F, 0x8FA8, 0x999E, + 0x8FAD, 0xE786, 0x8FAE, 0xE390, 0x8FAF, 0xE787, 0x8FB0, 0x9243, + 0x8FB1, 0x904A, 0x8FB2, 0x945F, 0x8FB7, 0xE788, 0x8FBA, 0x95D3, + 0x8FBB, 0x92D2, 0x8FBC, 0x8D9E, 0x8FBF, 0x9248, 0x8FC2, 0x8949, + 0x8FC4, 0x9698, 0x8FC5, 0x9076, 0x8FCE, 0x8C7D, 0x8FD1, 0x8BDF, + 0x8FD4, 0x95D4, 0x8FDA, 0xE789, 0x8FE2, 0xE78B, 0x8FE5, 0xE78A, + 0x8FE6, 0x89DE, 0x8FE9, 0x93F4, 0x8FEA, 0xE78C, 0x8FEB, 0x9497, + 0x8FED, 0x9352, 0x8FEF, 0xE78D, 0x8FF0, 0x8F71, 0x8FF4, 0xE78F, + 0x8FF7, 0x96C0, 0x8FF8, 0xE79E, 0x8FF9, 0xE791, 0x8FFA, 0xE792, + 0x8FFD, 0x92C7, 0x9000, 0x91DE, 0x9001, 0x9197, 0x9003, 0x93A6, + 0x9005, 0xE790, 0x9006, 0x8B74, 0x900B, 0xE799, 0x900D, 0xE796, + 0x900E, 0xE7A3, 0x900F, 0x93A7, 0x9010, 0x9280, 0x9011, 0xE793, + 0x9013, 0x92FC, 0x9014, 0x9372, 0x9015, 0xE794, 0x9016, 0xE798, + 0x9017, 0x9080, 0x9019, 0x9487, 0x901A, 0x92CA, 0x901D, 0x90C0, + 0x901E, 0xE797, 0x901F, 0x91AC, 0x9020, 0x91A2, 0x9021, 0xE795, + 0x9022, 0x88A7, 0x9023, 0x9841, 0x9027, 0xE79A, 0x902E, 0x91DF, + 0x9031, 0x8F54, 0x9032, 0x9069, 0x9035, 0xE79C, 0x9036, 0xE79B, + 0x9038, 0x88ED, 0x9039, 0xE79D, 0x903C, 0x954E, 0x903E, 0xE7A5, + 0x9041, 0x93D9, 0x9042, 0x908B, 0x9045, 0x9278, 0x9047, 0x8BF6, + 0x9049, 0xE7A4, 0x904A, 0x9756, 0x904B, 0x895E, 0x904D, 0x95D5, + 0x904E, 0x89DF, 0x904F, 0xE79F, 0x9050, 0xE7A0, 0x9051, 0xE7A1, + 0x9052, 0xE7A2, 0x9053, 0x93B9, 0x9054, 0x9242, 0x9055, 0x88E1, + 0x9056, 0xE7A6, 0x9058, 0xE7A7, 0x9059, 0xEAA1, 0x905C, 0x91BB, + 0x905E, 0xE7A8, 0x9060, 0x8993, 0x9061, 0x916B, 0x9063, 0x8CAD, + 0x9065, 0x9779, 0x9067, 0xFBB5, 0x9068, 0xE7A9, 0x9069, 0x934B, + 0x906D, 0x9198, 0x906E, 0x8ED5, 0x906F, 0xE7AA, 0x9072, 0xE7AD, + 0x9075, 0x8F85, 0x9076, 0xE7AB, 0x9077, 0x914A, 0x9078, 0x9149, + 0x907A, 0x88E2, 0x907C, 0x97C9, 0x907D, 0xE7AF, 0x907F, 0x94F0, + 0x9080, 0xE7B1, 0x9081, 0xE7B0, 0x9082, 0xE7AE, 0x9083, 0xE284, + 0x9084, 0x8AD2, 0x9087, 0xE78E, 0x9089, 0xE7B3, 0x908A, 0xE7B2, + 0x908F, 0xE7B4, 0x9091, 0x9757, 0x90A3, 0x93DF, 0x90A6, 0x964D, + 0x90A8, 0xE7B5, 0x90AA, 0x8ED7, 0x90AF, 0xE7B6, 0x90B1, 0xE7B7, + 0x90B5, 0xE7B8, 0x90B8, 0x9340, 0x90C1, 0x88E8, 0x90CA, 0x8D78, + 0x90CE, 0x9859, 0x90DB, 0xE7BC, 0x90DE, 0xFBB6, 0x90E1, 0x8C53, + 0x90E2, 0xE7B9, 0x90E4, 0xE7BA, 0x90E8, 0x9594, 0x90ED, 0x8A73, + 0x90F5, 0x9758, 0x90F7, 0x8BBD, 0x90FD, 0x9373, 0x9102, 0xE7BD, + 0x9112, 0xE7BE, 0x9115, 0xFBB8, 0x9119, 0xE7BF, 0x9127, 0xFBB9, + 0x912D, 0x9341, 0x9130, 0xE7C1, 0x9132, 0xE7C0, 0x9149, 0x93D1, + 0x914A, 0xE7C2, 0x914B, 0x8F55, 0x914C, 0x8EDE, 0x914D, 0x947A, + 0x914E, 0x9291, 0x9152, 0x8EF0, 0x9154, 0x908C, 0x9156, 0xE7C3, + 0x9158, 0xE7C4, 0x9162, 0x907C, 0x9163, 0xE7C5, 0x9165, 0xE7C6, + 0x9169, 0xE7C7, 0x916A, 0x978F, 0x916C, 0x8F56, 0x9172, 0xE7C9, + 0x9173, 0xE7C8, 0x9175, 0x8D79, 0x9177, 0x8D93, 0x9178, 0x8E5F, + 0x9182, 0xE7CC, 0x9187, 0x8F86, 0x9189, 0xE7CB, 0x918B, 0xE7CA, + 0x918D, 0x91E7, 0x9190, 0x8CED, 0x9192, 0x90C1, 0x9197, 0x94AE, + 0x919C, 0x8F58, 0x91A2, 0xE7CD, 0x91A4, 0x8FDD, 0x91AA, 0xE7D0, + 0x91AB, 0xE7CE, 0x91AF, 0xE7CF, 0x91B4, 0xE7D2, 0x91B5, 0xE7D1, + 0x91B8, 0x8FF8, 0x91BA, 0xE7D3, 0x91C0, 0xE7D4, 0x91C1, 0xE7D5, + 0x91C6, 0x94CE, 0x91C7, 0x8DD1, 0x91C8, 0x8EDF, 0x91C9, 0xE7D6, + 0x91CB, 0xE7D7, 0x91CC, 0x97A2, 0x91CD, 0x8F64, 0x91CE, 0x96EC, + 0x91CF, 0x97CA, 0x91D0, 0xE7D8, 0x91D1, 0x8BE0, 0x91D6, 0xE7D9, + 0x91D7, 0xFBBB, 0x91D8, 0x9342, 0x91DA, 0xFBBA, 0x91DB, 0xE7DC, + 0x91DC, 0x8A98, 0x91DD, 0x906A, 0x91DE, 0xFBBC, 0x91DF, 0xE7DA, + 0x91E1, 0xE7DB, 0x91E3, 0x92DE, 0x91E4, 0xFBBF, 0x91E5, 0xFBC0, + 0x91E6, 0x9674, 0x91E7, 0x8BFA, 0x91ED, 0xFBBD, 0x91EE, 0xFBBE, + 0x91F5, 0xE7DE, 0x91F6, 0xE7DF, 0x91FC, 0xE7DD, 0x91FF, 0xE7E1, + 0x9206, 0xFBC1, 0x920A, 0xFBC3, 0x920D, 0x93DD, 0x920E, 0x8A62, + 0x9210, 0xFBC2, 0x9211, 0xE7E5, 0x9214, 0xE7E2, 0x9215, 0xE7E4, + 0x921E, 0xE7E0, 0x9229, 0xE86E, 0x922C, 0xE7E3, 0x9234, 0x97E9, + 0x9237, 0x8CD8, 0x9239, 0xFBCA, 0x923A, 0xFBC4, 0x923C, 0xFBC6, + 0x923F, 0xE7ED, 0x9240, 0xFBC5, 0x9244, 0x9353, 0x9245, 0xE7E8, + 0x9248, 0xE7EB, 0x9249, 0xE7E9, 0x924B, 0xE7EE, 0x924E, 0xFBC7, + 0x9250, 0xE7EF, 0x9251, 0xFBC9, 0x9257, 0xE7E7, 0x9259, 0xFBC8, + 0x925A, 0xE7F4, 0x925B, 0x8994, 0x925E, 0xE7E6, 0x9262, 0x94AB, + 0x9264, 0xE7EA, 0x9266, 0x8FDE, 0x9267, 0xFBCB, 0x9271, 0x8D7A, + 0x9277, 0xFBCD, 0x9278, 0xFBCE, 0x927E, 0x9667, 0x9280, 0x8BE2, + 0x9283, 0x8F65, 0x9285, 0x93BA, 0x9288, 0xFA5F, 0x9291, 0x914C, + 0x9293, 0xE7F2, 0x9295, 0xE7EC, 0x9296, 0xE7F1, 0x9298, 0x96C1, + 0x929A, 0x92B6, 0x929B, 0xE7F3, 0x929C, 0xE7F0, 0x92A7, 0xFBCC, + 0x92AD, 0x914B, 0x92B7, 0xE7F7, 0x92B9, 0xE7F6, 0x92CF, 0xE7F5, + 0x92D0, 0xFBD2, 0x92D2, 0x964E, 0x92D3, 0xFBD6, 0x92D5, 0xFBD4, + 0x92D7, 0xFBD0, 0x92D9, 0xFBD1, 0x92E0, 0xFBD5, 0x92E4, 0x8F9B, + 0x92E7, 0xFBCF, 0x92E9, 0xE7F8, 0x92EA, 0x95DD, 0x92ED, 0x8973, + 0x92F2, 0x9565, 0x92F3, 0x9292, 0x92F8, 0x8B98, 0x92F9, 0xFA65, + 0x92FA, 0xE7FA, 0x92FB, 0xFBD9, 0x92FC, 0x8D7C, 0x92FF, 0xFBDC, + 0x9302, 0xFBDE, 0x9306, 0x8E4B, 0x930F, 0xE7F9, 0x9310, 0x908D, + 0x9318, 0x908E, 0x9319, 0xE840, 0x931A, 0xE842, 0x931D, 0xFBDD, + 0x931E, 0xFBDB, 0x9320, 0x8FF9, 0x9321, 0xFBD8, 0x9322, 0xE841, + 0x9323, 0xE843, 0x9325, 0xFBD7, 0x9326, 0x8BD1, 0x9328, 0x9564, + 0x932B, 0x8EE0, 0x932C, 0x9842, 0x932E, 0xE7FC, 0x932F, 0x8DF6, + 0x9332, 0x985E, 0x9335, 0xE845, 0x933A, 0xE844, 0x933B, 0xE846, + 0x9344, 0xE7FB, 0x9348, 0xFA5E, 0x934B, 0x93E7, 0x934D, 0x9374, + 0x9354, 0x92D5, 0x9356, 0xE84B, 0x9357, 0xFBE0, 0x935B, 0x9262, + 0x935C, 0xE847, 0x9360, 0xE848, 0x936C, 0x8C4C, 0x936E, 0xE84A, + 0x9370, 0xFBDF, 0x9375, 0x8CAE, 0x937C, 0xE849, 0x937E, 0x8FDF, + 0x938C, 0x8A99, 0x9394, 0xE84F, 0x9396, 0x8DBD, 0x9397, 0x9199, + 0x939A, 0x92C8, 0x93A4, 0xFBE1, 0x93A7, 0x8A5A, 0x93AC, 0xE84D, + 0x93AD, 0xE84E, 0x93AE, 0x92C1, 0x93B0, 0xE84C, 0x93B9, 0xE850, + 0x93C3, 0xE856, 0x93C6, 0xFBE2, 0x93C8, 0xE859, 0x93D0, 0xE858, + 0x93D1, 0x934C, 0x93D6, 0xE851, 0x93D7, 0xE852, 0x93D8, 0xE855, + 0x93DD, 0xE857, 0x93DE, 0xFBE3, 0x93E1, 0x8BBE, 0x93E4, 0xE85A, + 0x93E5, 0xE854, 0x93E8, 0xE853, 0x93F8, 0xFBE4, 0x9403, 0xE85E, + 0x9407, 0xE85F, 0x9410, 0xE860, 0x9413, 0xE85D, 0x9414, 0xE85C, + 0x9418, 0x8FE0, 0x9419, 0x93A8, 0x941A, 0xE85B, 0x9421, 0xE864, + 0x942B, 0xE862, 0x9431, 0xFBE5, 0x9435, 0xE863, 0x9436, 0xE861, + 0x9438, 0x91F6, 0x943A, 0xE865, 0x9441, 0xE866, 0x9444, 0xE868, + 0x9445, 0xFBE6, 0x9448, 0xFBE7, 0x9451, 0x8AD3, 0x9452, 0xE867, + 0x9453, 0x96F8, 0x945A, 0xE873, 0x945B, 0xE869, 0x945E, 0xE86C, + 0x9460, 0xE86A, 0x9462, 0xE86B, 0x946A, 0xE86D, 0x9470, 0xE86F, + 0x9475, 0xE870, 0x9477, 0xE871, 0x947C, 0xE874, 0x947D, 0xE872, + 0x947E, 0xE875, 0x947F, 0xE877, 0x9481, 0xE876, 0x9577, 0x92B7, + 0x9580, 0x96E5, 0x9582, 0xE878, 0x9583, 0x914D, 0x9587, 0xE879, + 0x9589, 0x95C2, 0x958A, 0xE87A, 0x958B, 0x8A4A, 0x958F, 0x895B, + 0x9591, 0x8AD5, 0x9592, 0xFBE8, 0x9593, 0x8AD4, 0x9594, 0xE87B, + 0x9596, 0xE87C, 0x9598, 0xE87D, 0x9599, 0xE87E, 0x95A0, 0xE880, + 0x95A2, 0x8AD6, 0x95A3, 0x8A74, 0x95A4, 0x8D7D, 0x95A5, 0x94B4, + 0x95A7, 0xE882, 0x95A8, 0xE881, 0x95AD, 0xE883, 0x95B2, 0x897B, + 0x95B9, 0xE886, 0x95BB, 0xE885, 0x95BC, 0xE884, 0x95BE, 0xE887, + 0x95C3, 0xE88A, 0x95C7, 0x88C5, 0x95CA, 0xE888, 0x95CC, 0xE88C, + 0x95CD, 0xE88B, 0x95D4, 0xE88E, 0x95D5, 0xE88D, 0x95D6, 0xE88F, + 0x95D8, 0x93AC, 0x95DC, 0xE890, 0x95E1, 0xE891, 0x95E2, 0xE893, + 0x95E5, 0xE892, 0x961C, 0x958C, 0x9621, 0xE894, 0x9628, 0xE895, + 0x962A, 0x8DE3, 0x962E, 0xE896, 0x962F, 0xE897, 0x9632, 0x9668, + 0x963B, 0x916A, 0x963F, 0x88A2, 0x9640, 0x91C9, 0x9642, 0xE898, + 0x9644, 0x958D, 0x964B, 0xE89B, 0x964C, 0xE899, 0x964D, 0x8D7E, + 0x964F, 0xE89A, 0x9650, 0x8CC0, 0x965B, 0x95C3, 0x965C, 0xE89D, + 0x965D, 0xE89F, 0x965E, 0xE89E, 0x965F, 0xE8A0, 0x9662, 0x8940, + 0x9663, 0x9077, 0x9664, 0x8F9C, 0x9665, 0x8AD7, 0x9666, 0xE8A1, + 0x966A, 0x9486, 0x966C, 0xE8A3, 0x9670, 0x8941, 0x9672, 0xE8A2, + 0x9673, 0x92C2, 0x9675, 0x97CB, 0x9676, 0x93A9, 0x9677, 0xE89C, + 0x9678, 0x97A4, 0x967A, 0x8CAF, 0x967D, 0x977A, 0x9685, 0x8BF7, + 0x9686, 0x97B2, 0x9688, 0x8C47, 0x968A, 0x91E0, 0x968B, 0xE440, + 0x968D, 0xE8A4, 0x968E, 0x8A4B, 0x968F, 0x908F, 0x9694, 0x8A75, + 0x9695, 0xE8A6, 0x9697, 0xE8A7, 0x9698, 0xE8A5, 0x9699, 0x8C84, + 0x969B, 0x8DDB, 0x969C, 0x8FE1, 0x969D, 0xFBEB, 0x96A0, 0x8942, + 0x96A3, 0x97D7, 0x96A7, 0xE8A9, 0x96A8, 0xE7AC, 0x96AA, 0xE8A8, + 0x96AF, 0xFBEC, 0x96B0, 0xE8AC, 0x96B1, 0xE8AA, 0x96B2, 0xE8AB, + 0x96B4, 0xE8AD, 0x96B6, 0xE8AE, 0x96B7, 0x97EA, 0x96B8, 0xE8AF, + 0x96B9, 0xE8B0, 0x96BB, 0x90C7, 0x96BC, 0x94B9, 0x96C0, 0x909D, + 0x96C1, 0x8AE5, 0x96C4, 0x9759, 0x96C5, 0x89EB, 0x96C6, 0x8F57, + 0x96C7, 0x8CD9, 0x96C9, 0xE8B3, 0x96CB, 0xE8B2, 0x96CC, 0x8E93, + 0x96CD, 0xE8B4, 0x96CE, 0xE8B1, 0x96D1, 0x8E47, 0x96D5, 0xE8B8, + 0x96D6, 0xE5AB, 0x96D9, 0x99D4, 0x96DB, 0x9097, 0x96DC, 0xE8B6, + 0x96E2, 0x97A3, 0x96E3, 0x93EF, 0x96E8, 0x894A, 0x96EA, 0x90E1, + 0x96EB, 0x8EB4, 0x96F0, 0x95B5, 0x96F2, 0x895F, 0x96F6, 0x97EB, + 0x96F7, 0x978B, 0x96F9, 0xE8B9, 0x96FB, 0x9364, 0x9700, 0x8EF9, + 0x9704, 0xE8BA, 0x9706, 0xE8BB, 0x9707, 0x906B, 0x9708, 0xE8BC, + 0x970A, 0x97EC, 0x970D, 0xE8B7, 0x970E, 0xE8BE, 0x970F, 0xE8C0, + 0x9711, 0xE8BF, 0x9713, 0xE8BD, 0x9716, 0xE8C1, 0x9719, 0xE8C2, + 0x971C, 0x919A, 0x971E, 0x89E0, 0x9724, 0xE8C3, 0x9727, 0x96B6, + 0x972A, 0xE8C4, 0x9730, 0xE8C5, 0x9732, 0x9849, 0x9733, 0xFBED, + 0x9738, 0x9E50, 0x9739, 0xE8C6, 0x973B, 0xFBEE, 0x973D, 0xE8C7, + 0x973E, 0xE8C8, 0x9742, 0xE8CC, 0x9743, 0xFBEF, 0x9744, 0xE8C9, + 0x9746, 0xE8CA, 0x9748, 0xE8CB, 0x9749, 0xE8CD, 0x974D, 0xFBF0, + 0x974F, 0xFBF1, 0x9751, 0xFBF2, 0x9752, 0x90C2, 0x9755, 0xFBF3, + 0x9756, 0x96F5, 0x9759, 0x90C3, 0x975C, 0xE8CE, 0x975E, 0x94F1, + 0x9760, 0xE8CF, 0x9761, 0xEA72, 0x9762, 0x96CA, 0x9764, 0xE8D0, + 0x9766, 0xE8D1, 0x9768, 0xE8D2, 0x9769, 0x8A76, 0x976B, 0xE8D4, + 0x976D, 0x9078, 0x9771, 0xE8D5, 0x9774, 0x8C43, 0x9779, 0xE8D6, + 0x977A, 0xE8DA, 0x977C, 0xE8D8, 0x9781, 0xE8D9, 0x9784, 0x8A93, + 0x9785, 0xE8D7, 0x9786, 0xE8DB, 0x978B, 0xE8DC, 0x978D, 0x88C6, + 0x978F, 0xE8DD, 0x9790, 0xE8DE, 0x9798, 0x8FE2, 0x979C, 0xE8DF, + 0x97A0, 0x8B66, 0x97A3, 0xE8E2, 0x97A6, 0xE8E1, 0x97A8, 0xE8E0, + 0x97AB, 0xE691, 0x97AD, 0x95DA, 0x97B3, 0xE8E3, 0x97B4, 0xE8E4, + 0x97C3, 0xE8E5, 0x97C6, 0xE8E6, 0x97C8, 0xE8E7, 0x97CB, 0xE8E8, + 0x97D3, 0x8AD8, 0x97DC, 0xE8E9, 0x97ED, 0xE8EA, 0x97EE, 0x9442, + 0x97F2, 0xE8EC, 0x97F3, 0x89B9, 0x97F5, 0xE8EF, 0x97F6, 0xE8EE, + 0x97FB, 0x8943, 0x97FF, 0x8BBF, 0x9801, 0x95C5, 0x9802, 0x92B8, + 0x9803, 0x8DA0, 0x9805, 0x8D80, 0x9806, 0x8F87, 0x9808, 0x907B, + 0x980C, 0xE8F1, 0x980F, 0xE8F0, 0x9810, 0x9761, 0x9811, 0x8AE6, + 0x9812, 0x94D0, 0x9813, 0x93DA, 0x9817, 0x909C, 0x9818, 0x97CC, + 0x981A, 0x8C7A, 0x9821, 0xE8F4, 0x9824, 0xE8F3, 0x982C, 0x966A, + 0x982D, 0x93AA, 0x9834, 0x896F, 0x9837, 0xE8F5, 0x9838, 0xE8F2, + 0x983B, 0x9570, 0x983C, 0x978A, 0x983D, 0xE8F6, 0x9846, 0xE8F7, + 0x984B, 0xE8F9, 0x984C, 0x91E8, 0x984D, 0x8A7A, 0x984E, 0x8A7B, + 0x984F, 0xE8F8, 0x9854, 0x8AE7, 0x9855, 0x8CB0, 0x9857, 0xFBF4, + 0x9858, 0x8AE8, 0x985B, 0x935E, 0x985E, 0x97DE, 0x9865, 0xFBF5, + 0x9867, 0x8CDA, 0x986B, 0xE8FA, 0x986F, 0xE8FB, 0x9870, 0xE8FC, + 0x9871, 0xE940, 0x9873, 0xE942, 0x9874, 0xE941, 0x98A8, 0x9597, + 0x98AA, 0xE943, 0x98AF, 0xE944, 0x98B1, 0xE945, 0x98B6, 0xE946, + 0x98C3, 0xE948, 0x98C4, 0xE947, 0x98C6, 0xE949, 0x98DB, 0x94F2, + 0x98DC, 0xE3CA, 0x98DF, 0x9048, 0x98E2, 0x8B51, 0x98E9, 0xE94A, + 0x98EB, 0xE94B, 0x98ED, 0x99AA, 0x98EE, 0x9F5A, 0x98EF, 0x94D1, + 0x98F2, 0x88F9, 0x98F4, 0x88B9, 0x98FC, 0x8E94, 0x98FD, 0x964F, + 0x98FE, 0x8FFC, 0x9903, 0xE94C, 0x9905, 0x96DD, 0x9909, 0xE94D, + 0x990A, 0x977B, 0x990C, 0x8961, 0x9910, 0x8E60, 0x9912, 0xE94E, + 0x9913, 0x89EC, 0x9914, 0xE94F, 0x9918, 0xE950, 0x991D, 0xE952, + 0x991E, 0xE953, 0x9920, 0xE955, 0x9921, 0xE951, 0x9924, 0xE954, + 0x9927, 0xFBF8, 0x9928, 0x8AD9, 0x992C, 0xE956, 0x992E, 0xE957, + 0x993D, 0xE958, 0x993E, 0xE959, 0x9942, 0xE95A, 0x9945, 0xE95C, + 0x9949, 0xE95B, 0x994B, 0xE95E, 0x994C, 0xE961, 0x9950, 0xE95D, + 0x9951, 0xE95F, 0x9952, 0xE960, 0x9955, 0xE962, 0x9957, 0x8BC0, + 0x9996, 0x8EF1, 0x9997, 0xE963, 0x9998, 0xE964, 0x9999, 0x8D81, + 0x999E, 0xFBFA, 0x99A5, 0xE965, 0x99A8, 0x8A5D, 0x99AC, 0x946E, + 0x99AD, 0xE966, 0x99AE, 0xE967, 0x99B3, 0x9279, 0x99B4, 0x93E9, + 0x99BC, 0xE968, 0x99C1, 0x949D, 0x99C4, 0x91CA, 0x99C5, 0x8977, + 0x99C6, 0x8BEC, 0x99C8, 0x8BED, 0x99D0, 0x9293, 0x99D1, 0xE96D, + 0x99D2, 0x8BEE, 0x99D5, 0x89ED, 0x99D8, 0xE96C, 0x99DB, 0xE96A, + 0x99DD, 0xE96B, 0x99DF, 0xE969, 0x99E2, 0xE977, 0x99ED, 0xE96E, + 0x99EE, 0xE96F, 0x99F1, 0xE970, 0x99F2, 0xE971, 0x99F8, 0xE973, + 0x99FB, 0xE972, 0x99FF, 0x8F78, 0x9A01, 0xE974, 0x9A05, 0xE976, + 0x9A0E, 0x8B52, 0x9A0F, 0xE975, 0x9A12, 0x919B, 0x9A13, 0x8CB1, + 0x9A19, 0xE978, 0x9A28, 0x91CB, 0x9A2B, 0xE979, 0x9A30, 0x93AB, + 0x9A37, 0xE97A, 0x9A3E, 0xE980, 0x9A40, 0xE97D, 0x9A42, 0xE97C, + 0x9A43, 0xE97E, 0x9A45, 0xE97B, 0x9A4D, 0xE982, 0x9A4E, 0xFBFB, + 0x9A55, 0xE981, 0x9A57, 0xE984, 0x9A5A, 0x8BC1, 0x9A5B, 0xE983, + 0x9A5F, 0xE985, 0x9A62, 0xE986, 0x9A64, 0xE988, 0x9A65, 0xE987, + 0x9A69, 0xE989, 0x9A6A, 0xE98B, 0x9A6B, 0xE98A, 0x9AA8, 0x8D9C, + 0x9AAD, 0xE98C, 0x9AB0, 0xE98D, 0x9AB8, 0x8A5B, 0x9ABC, 0xE98E, + 0x9AC0, 0xE98F, 0x9AC4, 0x9091, 0x9ACF, 0xE990, 0x9AD1, 0xE991, + 0x9AD3, 0xE992, 0x9AD4, 0xE993, 0x9AD8, 0x8D82, 0x9AD9, 0xFBFC, + 0x9ADC, 0xFC40, 0x9ADE, 0xE994, 0x9ADF, 0xE995, 0x9AE2, 0xE996, + 0x9AE3, 0xE997, 0x9AE6, 0xE998, 0x9AEA, 0x94AF, 0x9AEB, 0xE99A, + 0x9AED, 0x9545, 0x9AEE, 0xE99B, 0x9AEF, 0xE999, 0x9AF1, 0xE99D, + 0x9AF4, 0xE99C, 0x9AF7, 0xE99E, 0x9AFB, 0xE99F, 0x9B06, 0xE9A0, + 0x9B18, 0xE9A1, 0x9B1A, 0xE9A2, 0x9B1F, 0xE9A3, 0x9B22, 0xE9A4, + 0x9B23, 0xE9A5, 0x9B25, 0xE9A6, 0x9B27, 0xE9A7, 0x9B28, 0xE9A8, + 0x9B29, 0xE9A9, 0x9B2A, 0xE9AA, 0x9B2E, 0xE9AB, 0x9B2F, 0xE9AC, + 0x9B31, 0x9F54, 0x9B32, 0xE9AD, 0x9B3B, 0xE2F6, 0x9B3C, 0x8B53, + 0x9B41, 0x8A40, 0x9B42, 0x8DB0, 0x9B43, 0xE9AF, 0x9B44, 0xE9AE, + 0x9B45, 0x96A3, 0x9B4D, 0xE9B1, 0x9B4E, 0xE9B2, 0x9B4F, 0xE9B0, + 0x9B51, 0xE9B3, 0x9B54, 0x9682, 0x9B58, 0xE9B4, 0x9B5A, 0x8B9B, + 0x9B6F, 0x9844, 0x9B72, 0xFC42, 0x9B74, 0xE9B5, 0x9B75, 0xFC41, + 0x9B83, 0xE9B7, 0x9B8E, 0x88BC, 0x9B8F, 0xFC43, 0x9B91, 0xE9B8, + 0x9B92, 0x95A9, 0x9B93, 0xE9B6, 0x9B96, 0xE9B9, 0x9B97, 0xE9BA, + 0x9B9F, 0xE9BB, 0x9BA0, 0xE9BC, 0x9BA8, 0xE9BD, 0x9BAA, 0x968E, + 0x9BAB, 0x8E4C, 0x9BAD, 0x8DF8, 0x9BAE, 0x914E, 0x9BB1, 0xFC44, + 0x9BB4, 0xE9BE, 0x9BB9, 0xE9C1, 0x9BBB, 0xFC45, 0x9BC0, 0xE9BF, + 0x9BC6, 0xE9C2, 0x9BC9, 0x8CEF, 0x9BCA, 0xE9C0, 0x9BCF, 0xE9C3, + 0x9BD1, 0xE9C4, 0x9BD2, 0xE9C5, 0x9BD4, 0xE9C9, 0x9BD6, 0x8E49, + 0x9BDB, 0x91E2, 0x9BE1, 0xE9CA, 0x9BE2, 0xE9C7, 0x9BE3, 0xE9C6, + 0x9BE4, 0xE9C8, 0x9BE8, 0x8C7E, 0x9BF0, 0xE9CE, 0x9BF1, 0xE9CD, + 0x9BF2, 0xE9CC, 0x9BF5, 0x88B1, 0x9C00, 0xFC46, 0x9C04, 0xE9D8, + 0x9C06, 0xE9D4, 0x9C08, 0xE9D5, 0x9C09, 0xE9D1, 0x9C0A, 0xE9D7, + 0x9C0C, 0xE9D3, 0x9C0D, 0x8A82, 0x9C10, 0x986B, 0x9C12, 0xE9D6, + 0x9C13, 0xE9D2, 0x9C14, 0xE9D0, 0x9C15, 0xE9CF, 0x9C1B, 0xE9DA, + 0x9C21, 0xE9DD, 0x9C24, 0xE9DC, 0x9C25, 0xE9DB, 0x9C2D, 0x9568, + 0x9C2E, 0xE9D9, 0x9C2F, 0x88F1, 0x9C30, 0xE9DE, 0x9C32, 0xE9E0, + 0x9C39, 0x8A8F, 0x9C3A, 0xE9CB, 0x9C3B, 0x8956, 0x9C3E, 0xE9E2, + 0x9C46, 0xE9E1, 0x9C47, 0xE9DF, 0x9C48, 0x924C, 0x9C52, 0x9690, + 0x9C57, 0x97D8, 0x9C5A, 0xE9E3, 0x9C60, 0xE9E4, 0x9C67, 0xE9E5, + 0x9C76, 0xE9E6, 0x9C78, 0xE9E7, 0x9CE5, 0x92B9, 0x9CE7, 0xE9E8, + 0x9CE9, 0x94B5, 0x9CEB, 0xE9ED, 0x9CEC, 0xE9E9, 0x9CF0, 0xE9EA, + 0x9CF3, 0x9650, 0x9CF4, 0x96C2, 0x9CF6, 0x93CE, 0x9D03, 0xE9EE, + 0x9D06, 0xE9EF, 0x9D07, 0x93BC, 0x9D08, 0xE9EC, 0x9D09, 0xE9EB, + 0x9D0E, 0x89A8, 0x9D12, 0xE9F7, 0x9D15, 0xE9F6, 0x9D1B, 0x8995, + 0x9D1F, 0xE9F4, 0x9D23, 0xE9F3, 0x9D26, 0xE9F1, 0x9D28, 0x8A9B, + 0x9D2A, 0xE9F0, 0x9D2B, 0x8EB0, 0x9D2C, 0x89A7, 0x9D3B, 0x8D83, + 0x9D3E, 0xE9FA, 0x9D3F, 0xE9F9, 0x9D41, 0xE9F8, 0x9D44, 0xE9F5, + 0x9D46, 0xE9FB, 0x9D48, 0xE9FC, 0x9D50, 0xEA44, 0x9D51, 0xEA43, + 0x9D59, 0xEA45, 0x9D5C, 0x894C, 0x9D5D, 0xEA40, 0x9D5E, 0xEA41, + 0x9D60, 0x8D94, 0x9D61, 0x96B7, 0x9D64, 0xEA42, 0x9D6B, 0xFC48, + 0x9D6C, 0x9651, 0x9D6F, 0xEA4A, 0x9D70, 0xFC47, 0x9D72, 0xEA46, + 0x9D7A, 0xEA4B, 0x9D87, 0xEA48, 0x9D89, 0xEA47, 0x9D8F, 0x8C7B, + 0x9D9A, 0xEA4C, 0x9DA4, 0xEA4D, 0x9DA9, 0xEA4E, 0x9DAB, 0xEA49, + 0x9DAF, 0xE9F2, 0x9DB2, 0xEA4F, 0x9DB4, 0x92DF, 0x9DB8, 0xEA53, + 0x9DBA, 0xEA54, 0x9DBB, 0xEA52, 0x9DC1, 0xEA51, 0x9DC2, 0xEA57, + 0x9DC4, 0xEA50, 0x9DC6, 0xEA55, 0x9DCF, 0xEA56, 0x9DD3, 0xEA59, + 0x9DD9, 0xEA58, 0x9DE6, 0xEA5B, 0x9DED, 0xEA5C, 0x9DEF, 0xEA5D, + 0x9DF2, 0x9868, 0x9DF8, 0xEA5A, 0x9DF9, 0x91E9, 0x9DFA, 0x8DEB, + 0x9DFD, 0xEA5E, 0x9E19, 0xFC4A, 0x9E1A, 0xEA5F, 0x9E1B, 0xEA60, + 0x9E1E, 0xEA61, 0x9E75, 0xEA62, 0x9E78, 0x8CB2, 0x9E79, 0xEA63, + 0x9E7D, 0xEA64, 0x9E7F, 0x8EAD, 0x9E81, 0xEA65, 0x9E88, 0xEA66, + 0x9E8B, 0xEA67, 0x9E8C, 0xEA68, 0x9E91, 0xEA6B, 0x9E92, 0xEA69, + 0x9E93, 0x985B, 0x9E95, 0xEA6A, 0x9E97, 0x97ED, 0x9E9D, 0xEA6C, + 0x9E9F, 0x97D9, 0x9EA5, 0xEA6D, 0x9EA6, 0x949E, 0x9EA9, 0xEA6E, + 0x9EAA, 0xEA70, 0x9EAD, 0xEA71, 0x9EB8, 0xEA6F, 0x9EB9, 0x8D8D, + 0x9EBA, 0x96CB, 0x9EBB, 0x9683, 0x9EBC, 0x9BF5, 0x9EBE, 0x9F80, + 0x9EBF, 0x969B, 0x9EC4, 0x89A9, 0x9ECC, 0xEA73, 0x9ECD, 0x8B6F, + 0x9ECE, 0xEA74, 0x9ECF, 0xEA75, 0x9ED0, 0xEA76, 0x9ED1, 0xFC4B, + 0x9ED2, 0x8D95, 0x9ED4, 0xEA77, 0x9ED8, 0xE0D2, 0x9ED9, 0x96D9, + 0x9EDB, 0x91E1, 0x9EDC, 0xEA78, 0x9EDD, 0xEA7A, 0x9EDE, 0xEA79, + 0x9EE0, 0xEA7B, 0x9EE5, 0xEA7C, 0x9EE8, 0xEA7D, 0x9EEF, 0xEA7E, + 0x9EF4, 0xEA80, 0x9EF6, 0xEA81, 0x9EF7, 0xEA82, 0x9EF9, 0xEA83, + 0x9EFB, 0xEA84, 0x9EFC, 0xEA85, 0x9EFD, 0xEA86, 0x9F07, 0xEA87, + 0x9F08, 0xEA88, 0x9F0E, 0x9343, 0x9F13, 0x8CDB, 0x9F15, 0xEA8A, + 0x9F20, 0x916C, 0x9F21, 0xEA8B, 0x9F2C, 0xEA8C, 0x9F3B, 0x9540, + 0x9F3E, 0xEA8D, 0x9F4A, 0xEA8E, 0x9F4B, 0xE256, 0x9F4E, 0xE6D8, + 0x9F4F, 0xE8EB, 0x9F52, 0xEA8F, 0x9F54, 0xEA90, 0x9F5F, 0xEA92, + 0x9F60, 0xEA93, 0x9F61, 0xEA94, 0x9F62, 0x97EE, 0x9F63, 0xEA91, + 0x9F66, 0xEA95, 0x9F67, 0xEA96, 0x9F6A, 0xEA98, 0x9F6C, 0xEA97, + 0x9F72, 0xEA9A, 0x9F76, 0xEA9B, 0x9F77, 0xEA99, 0x9F8D, 0x97B4, + 0x9F95, 0xEA9C, 0x9F9C, 0xEA9D, 0x9F9D, 0xE273, 0x9FA0, 0xEA9E, + 0xF929, 0xFAE0, 0xF9DC, 0xFBE9, 0xFA0E, 0xFA90, 0xFA0F, 0xFA9B, + 0xFA10, 0xFA9C, 0xFA11, 0xFAB1, 0xFA12, 0xFAD8, 0xFA13, 0xFAE8, + 0xFA14, 0xFAEA, 0xFA15, 0xFB58, 0xFA16, 0xFB5E, 0xFA17, 0xFB75, + 0xFA18, 0xFB7D, 0xFA19, 0xFB7E, 0xFA1A, 0xFB80, 0xFA1B, 0xFB82, + 0xFA1C, 0xFB86, 0xFA1D, 0xFB89, 0xFA1E, 0xFB92, 0xFA1F, 0xFB9D, + 0xFA20, 0xFB9F, 0xFA21, 0xFBA0, 0xFA22, 0xFBA9, 0xFA23, 0xFBB1, + 0xFA24, 0xFBB3, 0xFA25, 0xFBB4, 0xFA26, 0xFBB7, 0xFA27, 0xFBD3, + 0xFA28, 0xFBDA, 0xFA29, 0xFBEA, 0xFA2A, 0xFBF6, 0xFA2B, 0xFBF7, + 0xFA2C, 0xFBF9, 0xFA2D, 0xFC49, 0xFF01, 0x8149, 0xFF02, 0xFA57, + 0xFF03, 0x8194, 0xFF04, 0x8190, 0xFF05, 0x8193, 0xFF06, 0x8195, + 0xFF07, 0xFA56, 0xFF08, 0x8169, 0xFF09, 0x816A, 0xFF0A, 0x8196, + 0xFF0B, 0x817B, 0xFF0C, 0x8143, 0xFF0D, 0x817C, 0xFF0E, 0x8144, + 0xFF0F, 0x815E, 0xFF10, 0x824F, 0xFF11, 0x8250, 0xFF12, 0x8251, + 0xFF13, 0x8252, 0xFF14, 0x8253, 0xFF15, 0x8254, 0xFF16, 0x8255, + 0xFF17, 0x8256, 0xFF18, 0x8257, 0xFF19, 0x8258, 0xFF1A, 0x8146, + 0xFF1B, 0x8147, 0xFF1C, 0x8183, 0xFF1D, 0x8181, 0xFF1E, 0x8184, + 0xFF1F, 0x8148, 0xFF20, 0x8197, 0xFF21, 0x8260, 0xFF22, 0x8261, + 0xFF23, 0x8262, 0xFF24, 0x8263, 0xFF25, 0x8264, 0xFF26, 0x8265, + 0xFF27, 0x8266, 0xFF28, 0x8267, 0xFF29, 0x8268, 0xFF2A, 0x8269, + 0xFF2B, 0x826A, 0xFF2C, 0x826B, 0xFF2D, 0x826C, 0xFF2E, 0x826D, + 0xFF2F, 0x826E, 0xFF30, 0x826F, 0xFF31, 0x8270, 0xFF32, 0x8271, + 0xFF33, 0x8272, 0xFF34, 0x8273, 0xFF35, 0x8274, 0xFF36, 0x8275, + 0xFF37, 0x8276, 0xFF38, 0x8277, 0xFF39, 0x8278, 0xFF3A, 0x8279, + 0xFF3B, 0x816D, 0xFF3C, 0x815F, 0xFF3D, 0x816E, 0xFF3E, 0x814F, + 0xFF3F, 0x8151, 0xFF40, 0x814D, 0xFF41, 0x8281, 0xFF42, 0x8282, + 0xFF43, 0x8283, 0xFF44, 0x8284, 0xFF45, 0x8285, 0xFF46, 0x8286, + 0xFF47, 0x8287, 0xFF48, 0x8288, 0xFF49, 0x8289, 0xFF4A, 0x828A, + 0xFF4B, 0x828B, 0xFF4C, 0x828C, 0xFF4D, 0x828D, 0xFF4E, 0x828E, + 0xFF4F, 0x828F, 0xFF50, 0x8290, 0xFF51, 0x8291, 0xFF52, 0x8292, + 0xFF53, 0x8293, 0xFF54, 0x8294, 0xFF55, 0x8295, 0xFF56, 0x8296, + 0xFF57, 0x8297, 0xFF58, 0x8298, 0xFF59, 0x8299, 0xFF5A, 0x829A, + 0xFF5B, 0x816F, 0xFF5C, 0x8162, 0xFF5D, 0x8170, 0xFF5E, 0x8160, + 0xFF61, 0x00A1, 0xFF62, 0x00A2, 0xFF63, 0x00A3, 0xFF64, 0x00A4, + 0xFF65, 0x00A5, 0xFF66, 0x00A6, 0xFF67, 0x00A7, 0xFF68, 0x00A8, + 0xFF69, 0x00A9, 0xFF6A, 0x00AA, 0xFF6B, 0x00AB, 0xFF6C, 0x00AC, + 0xFF6D, 0x00AD, 0xFF6E, 0x00AE, 0xFF6F, 0x00AF, 0xFF70, 0x00B0, + 0xFF71, 0x00B1, 0xFF72, 0x00B2, 0xFF73, 0x00B3, 0xFF74, 0x00B4, + 0xFF75, 0x00B5, 0xFF76, 0x00B6, 0xFF77, 0x00B7, 0xFF78, 0x00B8, + 0xFF79, 0x00B9, 0xFF7A, 0x00BA, 0xFF7B, 0x00BB, 0xFF7C, 0x00BC, + 0xFF7D, 0x00BD, 0xFF7E, 0x00BE, 0xFF7F, 0x00BF, 0xFF80, 0x00C0, + 0xFF81, 0x00C1, 0xFF82, 0x00C2, 0xFF83, 0x00C3, 0xFF84, 0x00C4, + 0xFF85, 0x00C5, 0xFF86, 0x00C6, 0xFF87, 0x00C7, 0xFF88, 0x00C8, + 0xFF89, 0x00C9, 0xFF8A, 0x00CA, 0xFF8B, 0x00CB, 0xFF8C, 0x00CC, + 0xFF8D, 0x00CD, 0xFF8E, 0x00CE, 0xFF8F, 0x00CF, 0xFF90, 0x00D0, + 0xFF91, 0x00D1, 0xFF92, 0x00D2, 0xFF93, 0x00D3, 0xFF94, 0x00D4, + 0xFF95, 0x00D5, 0xFF96, 0x00D6, 0xFF97, 0x00D7, 0xFF98, 0x00D8, + 0xFF99, 0x00D9, 0xFF9A, 0x00DA, 0xFF9B, 0x00DB, 0xFF9C, 0x00DC, + 0xFF9D, 0x00DD, 0xFF9E, 0x00DE, 0xFF9F, 0x00DF, 0xFFE0, 0x8191, + 0xFFE1, 0x8192, 0xFFE2, 0x81CA, 0xFFE3, 0x8150, 0xFFE4, 0xFA55, + 0xFFE5, 0x818F, 0, 0 +}; + +#if !_TINY_TABLE +static +const WCHAR sjis2uni[] = { +/* SJIS - Unicode, SJIS - Unicode, SJIS - Unicode, SJIS - Unicode, */ + 0x00A1, 0xFF61, 0x00A2, 0xFF62, 0x00A3, 0xFF63, 0x00A4, 0xFF64, + 0x00A5, 0xFF65, 0x00A6, 0xFF66, 0x00A7, 0xFF67, 0x00A8, 0xFF68, + 0x00A9, 0xFF69, 0x00AA, 0xFF6A, 0x00AB, 0xFF6B, 0x00AC, 0xFF6C, + 0x00AD, 0xFF6D, 0x00AE, 0xFF6E, 0x00AF, 0xFF6F, 0x00B0, 0xFF70, + 0x00B1, 0xFF71, 0x00B2, 0xFF72, 0x00B3, 0xFF73, 0x00B4, 0xFF74, + 0x00B5, 0xFF75, 0x00B6, 0xFF76, 0x00B7, 0xFF77, 0x00B8, 0xFF78, + 0x00B9, 0xFF79, 0x00BA, 0xFF7A, 0x00BB, 0xFF7B, 0x00BC, 0xFF7C, + 0x00BD, 0xFF7D, 0x00BE, 0xFF7E, 0x00BF, 0xFF7F, 0x00C0, 0xFF80, + 0x00C1, 0xFF81, 0x00C2, 0xFF82, 0x00C3, 0xFF83, 0x00C4, 0xFF84, + 0x00C5, 0xFF85, 0x00C6, 0xFF86, 0x00C7, 0xFF87, 0x00C8, 0xFF88, + 0x00C9, 0xFF89, 0x00CA, 0xFF8A, 0x00CB, 0xFF8B, 0x00CC, 0xFF8C, + 0x00CD, 0xFF8D, 0x00CE, 0xFF8E, 0x00CF, 0xFF8F, 0x00D0, 0xFF90, + 0x00D1, 0xFF91, 0x00D2, 0xFF92, 0x00D3, 0xFF93, 0x00D4, 0xFF94, + 0x00D5, 0xFF95, 0x00D6, 0xFF96, 0x00D7, 0xFF97, 0x00D8, 0xFF98, + 0x00D9, 0xFF99, 0x00DA, 0xFF9A, 0x00DB, 0xFF9B, 0x00DC, 0xFF9C, + 0x00DD, 0xFF9D, 0x00DE, 0xFF9E, 0x00DF, 0xFF9F, 0x8140, 0x3000, + 0x8141, 0x3001, 0x8142, 0x3002, 0x8143, 0xFF0C, 0x8144, 0xFF0E, + 0x8145, 0x30FB, 0x8146, 0xFF1A, 0x8147, 0xFF1B, 0x8148, 0xFF1F, + 0x8149, 0xFF01, 0x814A, 0x309B, 0x814B, 0x309C, 0x814C, 0x00B4, + 0x814D, 0xFF40, 0x814E, 0x00A8, 0x814F, 0xFF3E, 0x8150, 0xFFE3, + 0x8151, 0xFF3F, 0x8152, 0x30FD, 0x8153, 0x30FE, 0x8154, 0x309D, + 0x8155, 0x309E, 0x8156, 0x3003, 0x8157, 0x4EDD, 0x8158, 0x3005, + 0x8159, 0x3006, 0x815A, 0x3007, 0x815B, 0x30FC, 0x815C, 0x2015, + 0x815D, 0x2010, 0x815E, 0xFF0F, 0x815F, 0xFF3C, 0x8160, 0xFF5E, + 0x8161, 0x2225, 0x8162, 0xFF5C, 0x8163, 0x2026, 0x8164, 0x2025, + 0x8165, 0x2018, 0x8166, 0x2019, 0x8167, 0x201C, 0x8168, 0x201D, + 0x8169, 0xFF08, 0x816A, 0xFF09, 0x816B, 0x3014, 0x816C, 0x3015, + 0x816D, 0xFF3B, 0x816E, 0xFF3D, 0x816F, 0xFF5B, 0x8170, 0xFF5D, + 0x8171, 0x3008, 0x8172, 0x3009, 0x8173, 0x300A, 0x8174, 0x300B, + 0x8175, 0x300C, 0x8176, 0x300D, 0x8177, 0x300E, 0x8178, 0x300F, + 0x8179, 0x3010, 0x817A, 0x3011, 0x817B, 0xFF0B, 0x817C, 0xFF0D, + 0x817D, 0x00B1, 0x817E, 0x00D7, 0x8180, 0x00F7, 0x8181, 0xFF1D, + 0x8182, 0x2260, 0x8183, 0xFF1C, 0x8184, 0xFF1E, 0x8185, 0x2266, + 0x8186, 0x2267, 0x8187, 0x221E, 0x8188, 0x2234, 0x8189, 0x2642, + 0x818A, 0x2640, 0x818B, 0x00B0, 0x818C, 0x2032, 0x818D, 0x2033, + 0x818E, 0x2103, 0x818F, 0xFFE5, 0x8190, 0xFF04, 0x8191, 0xFFE0, + 0x8192, 0xFFE1, 0x8193, 0xFF05, 0x8194, 0xFF03, 0x8195, 0xFF06, + 0x8196, 0xFF0A, 0x8197, 0xFF20, 0x8198, 0x00A7, 0x8199, 0x2606, + 0x819A, 0x2605, 0x819B, 0x25CB, 0x819C, 0x25CF, 0x819D, 0x25CE, + 0x819E, 0x25C7, 0x819F, 0x25C6, 0x81A0, 0x25A1, 0x81A1, 0x25A0, + 0x81A2, 0x25B3, 0x81A3, 0x25B2, 0x81A4, 0x25BD, 0x81A5, 0x25BC, + 0x81A6, 0x203B, 0x81A7, 0x3012, 0x81A8, 0x2192, 0x81A9, 0x2190, + 0x81AA, 0x2191, 0x81AB, 0x2193, 0x81AC, 0x3013, 0x81B8, 0x2208, + 0x81B9, 0x220B, 0x81BA, 0x2286, 0x81BB, 0x2287, 0x81BC, 0x2282, + 0x81BD, 0x2283, 0x81BE, 0x222A, 0x81BF, 0x2229, 0x81C8, 0x2227, + 0x81C9, 0x2228, 0x81CA, 0xFFE2, 0x81CB, 0x21D2, 0x81CC, 0x21D4, + 0x81CD, 0x2200, 0x81CE, 0x2203, 0x81DA, 0x2220, 0x81DB, 0x22A5, + 0x81DC, 0x2312, 0x81DD, 0x2202, 0x81DE, 0x2207, 0x81DF, 0x2261, + 0x81E0, 0x2252, 0x81E1, 0x226A, 0x81E2, 0x226B, 0x81E3, 0x221A, + 0x81E4, 0x223D, 0x81E5, 0x221D, 0x81E6, 0x2235, 0x81E7, 0x222B, + 0x81E8, 0x222C, 0x81F0, 0x212B, 0x81F1, 0x2030, 0x81F2, 0x266F, + 0x81F3, 0x266D, 0x81F4, 0x266A, 0x81F5, 0x2020, 0x81F6, 0x2021, + 0x81F7, 0x00B6, 0x81FC, 0x25EF, 0x824F, 0xFF10, 0x8250, 0xFF11, + 0x8251, 0xFF12, 0x8252, 0xFF13, 0x8253, 0xFF14, 0x8254, 0xFF15, + 0x8255, 0xFF16, 0x8256, 0xFF17, 0x8257, 0xFF18, 0x8258, 0xFF19, + 0x8260, 0xFF21, 0x8261, 0xFF22, 0x8262, 0xFF23, 0x8263, 0xFF24, + 0x8264, 0xFF25, 0x8265, 0xFF26, 0x8266, 0xFF27, 0x8267, 0xFF28, + 0x8268, 0xFF29, 0x8269, 0xFF2A, 0x826A, 0xFF2B, 0x826B, 0xFF2C, + 0x826C, 0xFF2D, 0x826D, 0xFF2E, 0x826E, 0xFF2F, 0x826F, 0xFF30, + 0x8270, 0xFF31, 0x8271, 0xFF32, 0x8272, 0xFF33, 0x8273, 0xFF34, + 0x8274, 0xFF35, 0x8275, 0xFF36, 0x8276, 0xFF37, 0x8277, 0xFF38, + 0x8278, 0xFF39, 0x8279, 0xFF3A, 0x8281, 0xFF41, 0x8282, 0xFF42, + 0x8283, 0xFF43, 0x8284, 0xFF44, 0x8285, 0xFF45, 0x8286, 0xFF46, + 0x8287, 0xFF47, 0x8288, 0xFF48, 0x8289, 0xFF49, 0x828A, 0xFF4A, + 0x828B, 0xFF4B, 0x828C, 0xFF4C, 0x828D, 0xFF4D, 0x828E, 0xFF4E, + 0x828F, 0xFF4F, 0x8290, 0xFF50, 0x8291, 0xFF51, 0x8292, 0xFF52, + 0x8293, 0xFF53, 0x8294, 0xFF54, 0x8295, 0xFF55, 0x8296, 0xFF56, + 0x8297, 0xFF57, 0x8298, 0xFF58, 0x8299, 0xFF59, 0x829A, 0xFF5A, + 0x829F, 0x3041, 0x82A0, 0x3042, 0x82A1, 0x3043, 0x82A2, 0x3044, + 0x82A3, 0x3045, 0x82A4, 0x3046, 0x82A5, 0x3047, 0x82A6, 0x3048, + 0x82A7, 0x3049, 0x82A8, 0x304A, 0x82A9, 0x304B, 0x82AA, 0x304C, + 0x82AB, 0x304D, 0x82AC, 0x304E, 0x82AD, 0x304F, 0x82AE, 0x3050, + 0x82AF, 0x3051, 0x82B0, 0x3052, 0x82B1, 0x3053, 0x82B2, 0x3054, + 0x82B3, 0x3055, 0x82B4, 0x3056, 0x82B5, 0x3057, 0x82B6, 0x3058, + 0x82B7, 0x3059, 0x82B8, 0x305A, 0x82B9, 0x305B, 0x82BA, 0x305C, + 0x82BB, 0x305D, 0x82BC, 0x305E, 0x82BD, 0x305F, 0x82BE, 0x3060, + 0x82BF, 0x3061, 0x82C0, 0x3062, 0x82C1, 0x3063, 0x82C2, 0x3064, + 0x82C3, 0x3065, 0x82C4, 0x3066, 0x82C5, 0x3067, 0x82C6, 0x3068, + 0x82C7, 0x3069, 0x82C8, 0x306A, 0x82C9, 0x306B, 0x82CA, 0x306C, + 0x82CB, 0x306D, 0x82CC, 0x306E, 0x82CD, 0x306F, 0x82CE, 0x3070, + 0x82CF, 0x3071, 0x82D0, 0x3072, 0x82D1, 0x3073, 0x82D2, 0x3074, + 0x82D3, 0x3075, 0x82D4, 0x3076, 0x82D5, 0x3077, 0x82D6, 0x3078, + 0x82D7, 0x3079, 0x82D8, 0x307A, 0x82D9, 0x307B, 0x82DA, 0x307C, + 0x82DB, 0x307D, 0x82DC, 0x307E, 0x82DD, 0x307F, 0x82DE, 0x3080, + 0x82DF, 0x3081, 0x82E0, 0x3082, 0x82E1, 0x3083, 0x82E2, 0x3084, + 0x82E3, 0x3085, 0x82E4, 0x3086, 0x82E5, 0x3087, 0x82E6, 0x3088, + 0x82E7, 0x3089, 0x82E8, 0x308A, 0x82E9, 0x308B, 0x82EA, 0x308C, + 0x82EB, 0x308D, 0x82EC, 0x308E, 0x82ED, 0x308F, 0x82EE, 0x3090, + 0x82EF, 0x3091, 0x82F0, 0x3092, 0x82F1, 0x3093, 0x8340, 0x30A1, + 0x8341, 0x30A2, 0x8342, 0x30A3, 0x8343, 0x30A4, 0x8344, 0x30A5, + 0x8345, 0x30A6, 0x8346, 0x30A7, 0x8347, 0x30A8, 0x8348, 0x30A9, + 0x8349, 0x30AA, 0x834A, 0x30AB, 0x834B, 0x30AC, 0x834C, 0x30AD, + 0x834D, 0x30AE, 0x834E, 0x30AF, 0x834F, 0x30B0, 0x8350, 0x30B1, + 0x8351, 0x30B2, 0x8352, 0x30B3, 0x8353, 0x30B4, 0x8354, 0x30B5, + 0x8355, 0x30B6, 0x8356, 0x30B7, 0x8357, 0x30B8, 0x8358, 0x30B9, + 0x8359, 0x30BA, 0x835A, 0x30BB, 0x835B, 0x30BC, 0x835C, 0x30BD, + 0x835D, 0x30BE, 0x835E, 0x30BF, 0x835F, 0x30C0, 0x8360, 0x30C1, + 0x8361, 0x30C2, 0x8362, 0x30C3, 0x8363, 0x30C4, 0x8364, 0x30C5, + 0x8365, 0x30C6, 0x8366, 0x30C7, 0x8367, 0x30C8, 0x8368, 0x30C9, + 0x8369, 0x30CA, 0x836A, 0x30CB, 0x836B, 0x30CC, 0x836C, 0x30CD, + 0x836D, 0x30CE, 0x836E, 0x30CF, 0x836F, 0x30D0, 0x8370, 0x30D1, + 0x8371, 0x30D2, 0x8372, 0x30D3, 0x8373, 0x30D4, 0x8374, 0x30D5, + 0x8375, 0x30D6, 0x8376, 0x30D7, 0x8377, 0x30D8, 0x8378, 0x30D9, + 0x8379, 0x30DA, 0x837A, 0x30DB, 0x837B, 0x30DC, 0x837C, 0x30DD, + 0x837D, 0x30DE, 0x837E, 0x30DF, 0x8380, 0x30E0, 0x8381, 0x30E1, + 0x8382, 0x30E2, 0x8383, 0x30E3, 0x8384, 0x30E4, 0x8385, 0x30E5, + 0x8386, 0x30E6, 0x8387, 0x30E7, 0x8388, 0x30E8, 0x8389, 0x30E9, + 0x838A, 0x30EA, 0x838B, 0x30EB, 0x838C, 0x30EC, 0x838D, 0x30ED, + 0x838E, 0x30EE, 0x838F, 0x30EF, 0x8390, 0x30F0, 0x8391, 0x30F1, + 0x8392, 0x30F2, 0x8393, 0x30F3, 0x8394, 0x30F4, 0x8395, 0x30F5, + 0x8396, 0x30F6, 0x839F, 0x0391, 0x83A0, 0x0392, 0x83A1, 0x0393, + 0x83A2, 0x0394, 0x83A3, 0x0395, 0x83A4, 0x0396, 0x83A5, 0x0397, + 0x83A6, 0x0398, 0x83A7, 0x0399, 0x83A8, 0x039A, 0x83A9, 0x039B, + 0x83AA, 0x039C, 0x83AB, 0x039D, 0x83AC, 0x039E, 0x83AD, 0x039F, + 0x83AE, 0x03A0, 0x83AF, 0x03A1, 0x83B0, 0x03A3, 0x83B1, 0x03A4, + 0x83B2, 0x03A5, 0x83B3, 0x03A6, 0x83B4, 0x03A7, 0x83B5, 0x03A8, + 0x83B6, 0x03A9, 0x83BF, 0x03B1, 0x83C0, 0x03B2, 0x83C1, 0x03B3, + 0x83C2, 0x03B4, 0x83C3, 0x03B5, 0x83C4, 0x03B6, 0x83C5, 0x03B7, + 0x83C6, 0x03B8, 0x83C7, 0x03B9, 0x83C8, 0x03BA, 0x83C9, 0x03BB, + 0x83CA, 0x03BC, 0x83CB, 0x03BD, 0x83CC, 0x03BE, 0x83CD, 0x03BF, + 0x83CE, 0x03C0, 0x83CF, 0x03C1, 0x83D0, 0x03C3, 0x83D1, 0x03C4, + 0x83D2, 0x03C5, 0x83D3, 0x03C6, 0x83D4, 0x03C7, 0x83D5, 0x03C8, + 0x83D6, 0x03C9, 0x8440, 0x0410, 0x8441, 0x0411, 0x8442, 0x0412, + 0x8443, 0x0413, 0x8444, 0x0414, 0x8445, 0x0415, 0x8446, 0x0401, + 0x8447, 0x0416, 0x8448, 0x0417, 0x8449, 0x0418, 0x844A, 0x0419, + 0x844B, 0x041A, 0x844C, 0x041B, 0x844D, 0x041C, 0x844E, 0x041D, + 0x844F, 0x041E, 0x8450, 0x041F, 0x8451, 0x0420, 0x8452, 0x0421, + 0x8453, 0x0422, 0x8454, 0x0423, 0x8455, 0x0424, 0x8456, 0x0425, + 0x8457, 0x0426, 0x8458, 0x0427, 0x8459, 0x0428, 0x845A, 0x0429, + 0x845B, 0x042A, 0x845C, 0x042B, 0x845D, 0x042C, 0x845E, 0x042D, + 0x845F, 0x042E, 0x8460, 0x042F, 0x8470, 0x0430, 0x8471, 0x0431, + 0x8472, 0x0432, 0x8473, 0x0433, 0x8474, 0x0434, 0x8475, 0x0435, + 0x8476, 0x0451, 0x8477, 0x0436, 0x8478, 0x0437, 0x8479, 0x0438, + 0x847A, 0x0439, 0x847B, 0x043A, 0x847C, 0x043B, 0x847D, 0x043C, + 0x847E, 0x043D, 0x8480, 0x043E, 0x8481, 0x043F, 0x8482, 0x0440, + 0x8483, 0x0441, 0x8484, 0x0442, 0x8485, 0x0443, 0x8486, 0x0444, + 0x8487, 0x0445, 0x8488, 0x0446, 0x8489, 0x0447, 0x848A, 0x0448, + 0x848B, 0x0449, 0x848C, 0x044A, 0x848D, 0x044B, 0x848E, 0x044C, + 0x848F, 0x044D, 0x8490, 0x044E, 0x8491, 0x044F, 0x849F, 0x2500, + 0x84A0, 0x2502, 0x84A1, 0x250C, 0x84A2, 0x2510, 0x84A3, 0x2518, + 0x84A4, 0x2514, 0x84A5, 0x251C, 0x84A6, 0x252C, 0x84A7, 0x2524, + 0x84A8, 0x2534, 0x84A9, 0x253C, 0x84AA, 0x2501, 0x84AB, 0x2503, + 0x84AC, 0x250F, 0x84AD, 0x2513, 0x84AE, 0x251B, 0x84AF, 0x2517, + 0x84B0, 0x2523, 0x84B1, 0x2533, 0x84B2, 0x252B, 0x84B3, 0x253B, + 0x84B4, 0x254B, 0x84B5, 0x2520, 0x84B6, 0x252F, 0x84B7, 0x2528, + 0x84B8, 0x2537, 0x84B9, 0x253F, 0x84BA, 0x251D, 0x84BB, 0x2530, + 0x84BC, 0x2525, 0x84BD, 0x2538, 0x84BE, 0x2542, 0x8740, 0x2460, + 0x8741, 0x2461, 0x8742, 0x2462, 0x8743, 0x2463, 0x8744, 0x2464, + 0x8745, 0x2465, 0x8746, 0x2466, 0x8747, 0x2467, 0x8748, 0x2468, + 0x8749, 0x2469, 0x874A, 0x246A, 0x874B, 0x246B, 0x874C, 0x246C, + 0x874D, 0x246D, 0x874E, 0x246E, 0x874F, 0x246F, 0x8750, 0x2470, + 0x8751, 0x2471, 0x8752, 0x2472, 0x8753, 0x2473, 0x8754, 0x2160, + 0x8755, 0x2161, 0x8756, 0x2162, 0x8757, 0x2163, 0x8758, 0x2164, + 0x8759, 0x2165, 0x875A, 0x2166, 0x875B, 0x2167, 0x875C, 0x2168, + 0x875D, 0x2169, 0x875F, 0x3349, 0x8760, 0x3314, 0x8761, 0x3322, + 0x8762, 0x334D, 0x8763, 0x3318, 0x8764, 0x3327, 0x8765, 0x3303, + 0x8766, 0x3336, 0x8767, 0x3351, 0x8768, 0x3357, 0x8769, 0x330D, + 0x876A, 0x3326, 0x876B, 0x3323, 0x876C, 0x332B, 0x876D, 0x334A, + 0x876E, 0x333B, 0x876F, 0x339C, 0x8770, 0x339D, 0x8771, 0x339E, + 0x8772, 0x338E, 0x8773, 0x338F, 0x8774, 0x33C4, 0x8775, 0x33A1, + 0x877E, 0x337B, 0x8780, 0x301D, 0x8781, 0x301F, 0x8782, 0x2116, + 0x8783, 0x33CD, 0x8784, 0x2121, 0x8785, 0x32A4, 0x8786, 0x32A5, + 0x8787, 0x32A6, 0x8788, 0x32A7, 0x8789, 0x32A8, 0x878A, 0x3231, + 0x878B, 0x3232, 0x878C, 0x3239, 0x878D, 0x337E, 0x878E, 0x337D, + 0x878F, 0x337C, 0x8793, 0x222E, 0x8794, 0x2211, 0x8798, 0x221F, + 0x8799, 0x22BF, 0x889F, 0x4E9C, 0x88A0, 0x5516, 0x88A1, 0x5A03, + 0x88A2, 0x963F, 0x88A3, 0x54C0, 0x88A4, 0x611B, 0x88A5, 0x6328, + 0x88A6, 0x59F6, 0x88A7, 0x9022, 0x88A8, 0x8475, 0x88A9, 0x831C, + 0x88AA, 0x7A50, 0x88AB, 0x60AA, 0x88AC, 0x63E1, 0x88AD, 0x6E25, + 0x88AE, 0x65ED, 0x88AF, 0x8466, 0x88B0, 0x82A6, 0x88B1, 0x9BF5, + 0x88B2, 0x6893, 0x88B3, 0x5727, 0x88B4, 0x65A1, 0x88B5, 0x6271, + 0x88B6, 0x5B9B, 0x88B7, 0x59D0, 0x88B8, 0x867B, 0x88B9, 0x98F4, + 0x88BA, 0x7D62, 0x88BB, 0x7DBE, 0x88BC, 0x9B8E, 0x88BD, 0x6216, + 0x88BE, 0x7C9F, 0x88BF, 0x88B7, 0x88C0, 0x5B89, 0x88C1, 0x5EB5, + 0x88C2, 0x6309, 0x88C3, 0x6697, 0x88C4, 0x6848, 0x88C5, 0x95C7, + 0x88C6, 0x978D, 0x88C7, 0x674F, 0x88C8, 0x4EE5, 0x88C9, 0x4F0A, + 0x88CA, 0x4F4D, 0x88CB, 0x4F9D, 0x88CC, 0x5049, 0x88CD, 0x56F2, + 0x88CE, 0x5937, 0x88CF, 0x59D4, 0x88D0, 0x5A01, 0x88D1, 0x5C09, + 0x88D2, 0x60DF, 0x88D3, 0x610F, 0x88D4, 0x6170, 0x88D5, 0x6613, + 0x88D6, 0x6905, 0x88D7, 0x70BA, 0x88D8, 0x754F, 0x88D9, 0x7570, + 0x88DA, 0x79FB, 0x88DB, 0x7DAD, 0x88DC, 0x7DEF, 0x88DD, 0x80C3, + 0x88DE, 0x840E, 0x88DF, 0x8863, 0x88E0, 0x8B02, 0x88E1, 0x9055, + 0x88E2, 0x907A, 0x88E3, 0x533B, 0x88E4, 0x4E95, 0x88E5, 0x4EA5, + 0x88E6, 0x57DF, 0x88E7, 0x80B2, 0x88E8, 0x90C1, 0x88E9, 0x78EF, + 0x88EA, 0x4E00, 0x88EB, 0x58F1, 0x88EC, 0x6EA2, 0x88ED, 0x9038, + 0x88EE, 0x7A32, 0x88EF, 0x8328, 0x88F0, 0x828B, 0x88F1, 0x9C2F, + 0x88F2, 0x5141, 0x88F3, 0x5370, 0x88F4, 0x54BD, 0x88F5, 0x54E1, + 0x88F6, 0x56E0, 0x88F7, 0x59FB, 0x88F8, 0x5F15, 0x88F9, 0x98F2, + 0x88FA, 0x6DEB, 0x88FB, 0x80E4, 0x88FC, 0x852D, 0x8940, 0x9662, + 0x8941, 0x9670, 0x8942, 0x96A0, 0x8943, 0x97FB, 0x8944, 0x540B, + 0x8945, 0x53F3, 0x8946, 0x5B87, 0x8947, 0x70CF, 0x8948, 0x7FBD, + 0x8949, 0x8FC2, 0x894A, 0x96E8, 0x894B, 0x536F, 0x894C, 0x9D5C, + 0x894D, 0x7ABA, 0x894E, 0x4E11, 0x894F, 0x7893, 0x8950, 0x81FC, + 0x8951, 0x6E26, 0x8952, 0x5618, 0x8953, 0x5504, 0x8954, 0x6B1D, + 0x8955, 0x851A, 0x8956, 0x9C3B, 0x8957, 0x59E5, 0x8958, 0x53A9, + 0x8959, 0x6D66, 0x895A, 0x74DC, 0x895B, 0x958F, 0x895C, 0x5642, + 0x895D, 0x4E91, 0x895E, 0x904B, 0x895F, 0x96F2, 0x8960, 0x834F, + 0x8961, 0x990C, 0x8962, 0x53E1, 0x8963, 0x55B6, 0x8964, 0x5B30, + 0x8965, 0x5F71, 0x8966, 0x6620, 0x8967, 0x66F3, 0x8968, 0x6804, + 0x8969, 0x6C38, 0x896A, 0x6CF3, 0x896B, 0x6D29, 0x896C, 0x745B, + 0x896D, 0x76C8, 0x896E, 0x7A4E, 0x896F, 0x9834, 0x8970, 0x82F1, + 0x8971, 0x885B, 0x8972, 0x8A60, 0x8973, 0x92ED, 0x8974, 0x6DB2, + 0x8975, 0x75AB, 0x8976, 0x76CA, 0x8977, 0x99C5, 0x8978, 0x60A6, + 0x8979, 0x8B01, 0x897A, 0x8D8A, 0x897B, 0x95B2, 0x897C, 0x698E, + 0x897D, 0x53AD, 0x897E, 0x5186, 0x8980, 0x5712, 0x8981, 0x5830, + 0x8982, 0x5944, 0x8983, 0x5BB4, 0x8984, 0x5EF6, 0x8985, 0x6028, + 0x8986, 0x63A9, 0x8987, 0x63F4, 0x8988, 0x6CBF, 0x8989, 0x6F14, + 0x898A, 0x708E, 0x898B, 0x7114, 0x898C, 0x7159, 0x898D, 0x71D5, + 0x898E, 0x733F, 0x898F, 0x7E01, 0x8990, 0x8276, 0x8991, 0x82D1, + 0x8992, 0x8597, 0x8993, 0x9060, 0x8994, 0x925B, 0x8995, 0x9D1B, + 0x8996, 0x5869, 0x8997, 0x65BC, 0x8998, 0x6C5A, 0x8999, 0x7525, + 0x899A, 0x51F9, 0x899B, 0x592E, 0x899C, 0x5965, 0x899D, 0x5F80, + 0x899E, 0x5FDC, 0x899F, 0x62BC, 0x89A0, 0x65FA, 0x89A1, 0x6A2A, + 0x89A2, 0x6B27, 0x89A3, 0x6BB4, 0x89A4, 0x738B, 0x89A5, 0x7FC1, + 0x89A6, 0x8956, 0x89A7, 0x9D2C, 0x89A8, 0x9D0E, 0x89A9, 0x9EC4, + 0x89AA, 0x5CA1, 0x89AB, 0x6C96, 0x89AC, 0x837B, 0x89AD, 0x5104, + 0x89AE, 0x5C4B, 0x89AF, 0x61B6, 0x89B0, 0x81C6, 0x89B1, 0x6876, + 0x89B2, 0x7261, 0x89B3, 0x4E59, 0x89B4, 0x4FFA, 0x89B5, 0x5378, + 0x89B6, 0x6069, 0x89B7, 0x6E29, 0x89B8, 0x7A4F, 0x89B9, 0x97F3, + 0x89BA, 0x4E0B, 0x89BB, 0x5316, 0x89BC, 0x4EEE, 0x89BD, 0x4F55, + 0x89BE, 0x4F3D, 0x89BF, 0x4FA1, 0x89C0, 0x4F73, 0x89C1, 0x52A0, + 0x89C2, 0x53EF, 0x89C3, 0x5609, 0x89C4, 0x590F, 0x89C5, 0x5AC1, + 0x89C6, 0x5BB6, 0x89C7, 0x5BE1, 0x89C8, 0x79D1, 0x89C9, 0x6687, + 0x89CA, 0x679C, 0x89CB, 0x67B6, 0x89CC, 0x6B4C, 0x89CD, 0x6CB3, + 0x89CE, 0x706B, 0x89CF, 0x73C2, 0x89D0, 0x798D, 0x89D1, 0x79BE, + 0x89D2, 0x7A3C, 0x89D3, 0x7B87, 0x89D4, 0x82B1, 0x89D5, 0x82DB, + 0x89D6, 0x8304, 0x89D7, 0x8377, 0x89D8, 0x83EF, 0x89D9, 0x83D3, + 0x89DA, 0x8766, 0x89DB, 0x8AB2, 0x89DC, 0x5629, 0x89DD, 0x8CA8, + 0x89DE, 0x8FE6, 0x89DF, 0x904E, 0x89E0, 0x971E, 0x89E1, 0x868A, + 0x89E2, 0x4FC4, 0x89E3, 0x5CE8, 0x89E4, 0x6211, 0x89E5, 0x7259, + 0x89E6, 0x753B, 0x89E7, 0x81E5, 0x89E8, 0x82BD, 0x89E9, 0x86FE, + 0x89EA, 0x8CC0, 0x89EB, 0x96C5, 0x89EC, 0x9913, 0x89ED, 0x99D5, + 0x89EE, 0x4ECB, 0x89EF, 0x4F1A, 0x89F0, 0x89E3, 0x89F1, 0x56DE, + 0x89F2, 0x584A, 0x89F3, 0x58CA, 0x89F4, 0x5EFB, 0x89F5, 0x5FEB, + 0x89F6, 0x602A, 0x89F7, 0x6094, 0x89F8, 0x6062, 0x89F9, 0x61D0, + 0x89FA, 0x6212, 0x89FB, 0x62D0, 0x89FC, 0x6539, 0x8A40, 0x9B41, + 0x8A41, 0x6666, 0x8A42, 0x68B0, 0x8A43, 0x6D77, 0x8A44, 0x7070, + 0x8A45, 0x754C, 0x8A46, 0x7686, 0x8A47, 0x7D75, 0x8A48, 0x82A5, + 0x8A49, 0x87F9, 0x8A4A, 0x958B, 0x8A4B, 0x968E, 0x8A4C, 0x8C9D, + 0x8A4D, 0x51F1, 0x8A4E, 0x52BE, 0x8A4F, 0x5916, 0x8A50, 0x54B3, + 0x8A51, 0x5BB3, 0x8A52, 0x5D16, 0x8A53, 0x6168, 0x8A54, 0x6982, + 0x8A55, 0x6DAF, 0x8A56, 0x788D, 0x8A57, 0x84CB, 0x8A58, 0x8857, + 0x8A59, 0x8A72, 0x8A5A, 0x93A7, 0x8A5B, 0x9AB8, 0x8A5C, 0x6D6C, + 0x8A5D, 0x99A8, 0x8A5E, 0x86D9, 0x8A5F, 0x57A3, 0x8A60, 0x67FF, + 0x8A61, 0x86CE, 0x8A62, 0x920E, 0x8A63, 0x5283, 0x8A64, 0x5687, + 0x8A65, 0x5404, 0x8A66, 0x5ED3, 0x8A67, 0x62E1, 0x8A68, 0x64B9, + 0x8A69, 0x683C, 0x8A6A, 0x6838, 0x8A6B, 0x6BBB, 0x8A6C, 0x7372, + 0x8A6D, 0x78BA, 0x8A6E, 0x7A6B, 0x8A6F, 0x899A, 0x8A70, 0x89D2, + 0x8A71, 0x8D6B, 0x8A72, 0x8F03, 0x8A73, 0x90ED, 0x8A74, 0x95A3, + 0x8A75, 0x9694, 0x8A76, 0x9769, 0x8A77, 0x5B66, 0x8A78, 0x5CB3, + 0x8A79, 0x697D, 0x8A7A, 0x984D, 0x8A7B, 0x984E, 0x8A7C, 0x639B, + 0x8A7D, 0x7B20, 0x8A7E, 0x6A2B, 0x8A80, 0x6A7F, 0x8A81, 0x68B6, + 0x8A82, 0x9C0D, 0x8A83, 0x6F5F, 0x8A84, 0x5272, 0x8A85, 0x559D, + 0x8A86, 0x6070, 0x8A87, 0x62EC, 0x8A88, 0x6D3B, 0x8A89, 0x6E07, + 0x8A8A, 0x6ED1, 0x8A8B, 0x845B, 0x8A8C, 0x8910, 0x8A8D, 0x8F44, + 0x8A8E, 0x4E14, 0x8A8F, 0x9C39, 0x8A90, 0x53F6, 0x8A91, 0x691B, + 0x8A92, 0x6A3A, 0x8A93, 0x9784, 0x8A94, 0x682A, 0x8A95, 0x515C, + 0x8A96, 0x7AC3, 0x8A97, 0x84B2, 0x8A98, 0x91DC, 0x8A99, 0x938C, + 0x8A9A, 0x565B, 0x8A9B, 0x9D28, 0x8A9C, 0x6822, 0x8A9D, 0x8305, + 0x8A9E, 0x8431, 0x8A9F, 0x7CA5, 0x8AA0, 0x5208, 0x8AA1, 0x82C5, + 0x8AA2, 0x74E6, 0x8AA3, 0x4E7E, 0x8AA4, 0x4F83, 0x8AA5, 0x51A0, + 0x8AA6, 0x5BD2, 0x8AA7, 0x520A, 0x8AA8, 0x52D8, 0x8AA9, 0x52E7, + 0x8AAA, 0x5DFB, 0x8AAB, 0x559A, 0x8AAC, 0x582A, 0x8AAD, 0x59E6, + 0x8AAE, 0x5B8C, 0x8AAF, 0x5B98, 0x8AB0, 0x5BDB, 0x8AB1, 0x5E72, + 0x8AB2, 0x5E79, 0x8AB3, 0x60A3, 0x8AB4, 0x611F, 0x8AB5, 0x6163, + 0x8AB6, 0x61BE, 0x8AB7, 0x63DB, 0x8AB8, 0x6562, 0x8AB9, 0x67D1, + 0x8ABA, 0x6853, 0x8ABB, 0x68FA, 0x8ABC, 0x6B3E, 0x8ABD, 0x6B53, + 0x8ABE, 0x6C57, 0x8ABF, 0x6F22, 0x8AC0, 0x6F97, 0x8AC1, 0x6F45, + 0x8AC2, 0x74B0, 0x8AC3, 0x7518, 0x8AC4, 0x76E3, 0x8AC5, 0x770B, + 0x8AC6, 0x7AFF, 0x8AC7, 0x7BA1, 0x8AC8, 0x7C21, 0x8AC9, 0x7DE9, + 0x8ACA, 0x7F36, 0x8ACB, 0x7FF0, 0x8ACC, 0x809D, 0x8ACD, 0x8266, + 0x8ACE, 0x839E, 0x8ACF, 0x89B3, 0x8AD0, 0x8ACC, 0x8AD1, 0x8CAB, + 0x8AD2, 0x9084, 0x8AD3, 0x9451, 0x8AD4, 0x9593, 0x8AD5, 0x9591, + 0x8AD6, 0x95A2, 0x8AD7, 0x9665, 0x8AD8, 0x97D3, 0x8AD9, 0x9928, + 0x8ADA, 0x8218, 0x8ADB, 0x4E38, 0x8ADC, 0x542B, 0x8ADD, 0x5CB8, + 0x8ADE, 0x5DCC, 0x8ADF, 0x73A9, 0x8AE0, 0x764C, 0x8AE1, 0x773C, + 0x8AE2, 0x5CA9, 0x8AE3, 0x7FEB, 0x8AE4, 0x8D0B, 0x8AE5, 0x96C1, + 0x8AE6, 0x9811, 0x8AE7, 0x9854, 0x8AE8, 0x9858, 0x8AE9, 0x4F01, + 0x8AEA, 0x4F0E, 0x8AEB, 0x5371, 0x8AEC, 0x559C, 0x8AED, 0x5668, + 0x8AEE, 0x57FA, 0x8AEF, 0x5947, 0x8AF0, 0x5B09, 0x8AF1, 0x5BC4, + 0x8AF2, 0x5C90, 0x8AF3, 0x5E0C, 0x8AF4, 0x5E7E, 0x8AF5, 0x5FCC, + 0x8AF6, 0x63EE, 0x8AF7, 0x673A, 0x8AF8, 0x65D7, 0x8AF9, 0x65E2, + 0x8AFA, 0x671F, 0x8AFB, 0x68CB, 0x8AFC, 0x68C4, 0x8B40, 0x6A5F, + 0x8B41, 0x5E30, 0x8B42, 0x6BC5, 0x8B43, 0x6C17, 0x8B44, 0x6C7D, + 0x8B45, 0x757F, 0x8B46, 0x7948, 0x8B47, 0x5B63, 0x8B48, 0x7A00, + 0x8B49, 0x7D00, 0x8B4A, 0x5FBD, 0x8B4B, 0x898F, 0x8B4C, 0x8A18, + 0x8B4D, 0x8CB4, 0x8B4E, 0x8D77, 0x8B4F, 0x8ECC, 0x8B50, 0x8F1D, + 0x8B51, 0x98E2, 0x8B52, 0x9A0E, 0x8B53, 0x9B3C, 0x8B54, 0x4E80, + 0x8B55, 0x507D, 0x8B56, 0x5100, 0x8B57, 0x5993, 0x8B58, 0x5B9C, + 0x8B59, 0x622F, 0x8B5A, 0x6280, 0x8B5B, 0x64EC, 0x8B5C, 0x6B3A, + 0x8B5D, 0x72A0, 0x8B5E, 0x7591, 0x8B5F, 0x7947, 0x8B60, 0x7FA9, + 0x8B61, 0x87FB, 0x8B62, 0x8ABC, 0x8B63, 0x8B70, 0x8B64, 0x63AC, + 0x8B65, 0x83CA, 0x8B66, 0x97A0, 0x8B67, 0x5409, 0x8B68, 0x5403, + 0x8B69, 0x55AB, 0x8B6A, 0x6854, 0x8B6B, 0x6A58, 0x8B6C, 0x8A70, + 0x8B6D, 0x7827, 0x8B6E, 0x6775, 0x8B6F, 0x9ECD, 0x8B70, 0x5374, + 0x8B71, 0x5BA2, 0x8B72, 0x811A, 0x8B73, 0x8650, 0x8B74, 0x9006, + 0x8B75, 0x4E18, 0x8B76, 0x4E45, 0x8B77, 0x4EC7, 0x8B78, 0x4F11, + 0x8B79, 0x53CA, 0x8B7A, 0x5438, 0x8B7B, 0x5BAE, 0x8B7C, 0x5F13, + 0x8B7D, 0x6025, 0x8B7E, 0x6551, 0x8B80, 0x673D, 0x8B81, 0x6C42, + 0x8B82, 0x6C72, 0x8B83, 0x6CE3, 0x8B84, 0x7078, 0x8B85, 0x7403, + 0x8B86, 0x7A76, 0x8B87, 0x7AAE, 0x8B88, 0x7B08, 0x8B89, 0x7D1A, + 0x8B8A, 0x7CFE, 0x8B8B, 0x7D66, 0x8B8C, 0x65E7, 0x8B8D, 0x725B, + 0x8B8E, 0x53BB, 0x8B8F, 0x5C45, 0x8B90, 0x5DE8, 0x8B91, 0x62D2, + 0x8B92, 0x62E0, 0x8B93, 0x6319, 0x8B94, 0x6E20, 0x8B95, 0x865A, + 0x8B96, 0x8A31, 0x8B97, 0x8DDD, 0x8B98, 0x92F8, 0x8B99, 0x6F01, + 0x8B9A, 0x79A6, 0x8B9B, 0x9B5A, 0x8B9C, 0x4EA8, 0x8B9D, 0x4EAB, + 0x8B9E, 0x4EAC, 0x8B9F, 0x4F9B, 0x8BA0, 0x4FA0, 0x8BA1, 0x50D1, + 0x8BA2, 0x5147, 0x8BA3, 0x7AF6, 0x8BA4, 0x5171, 0x8BA5, 0x51F6, + 0x8BA6, 0x5354, 0x8BA7, 0x5321, 0x8BA8, 0x537F, 0x8BA9, 0x53EB, + 0x8BAA, 0x55AC, 0x8BAB, 0x5883, 0x8BAC, 0x5CE1, 0x8BAD, 0x5F37, + 0x8BAE, 0x5F4A, 0x8BAF, 0x602F, 0x8BB0, 0x6050, 0x8BB1, 0x606D, + 0x8BB2, 0x631F, 0x8BB3, 0x6559, 0x8BB4, 0x6A4B, 0x8BB5, 0x6CC1, + 0x8BB6, 0x72C2, 0x8BB7, 0x72ED, 0x8BB8, 0x77EF, 0x8BB9, 0x80F8, + 0x8BBA, 0x8105, 0x8BBB, 0x8208, 0x8BBC, 0x854E, 0x8BBD, 0x90F7, + 0x8BBE, 0x93E1, 0x8BBF, 0x97FF, 0x8BC0, 0x9957, 0x8BC1, 0x9A5A, + 0x8BC2, 0x4EF0, 0x8BC3, 0x51DD, 0x8BC4, 0x5C2D, 0x8BC5, 0x6681, + 0x8BC6, 0x696D, 0x8BC7, 0x5C40, 0x8BC8, 0x66F2, 0x8BC9, 0x6975, + 0x8BCA, 0x7389, 0x8BCB, 0x6850, 0x8BCC, 0x7C81, 0x8BCD, 0x50C5, + 0x8BCE, 0x52E4, 0x8BCF, 0x5747, 0x8BD0, 0x5DFE, 0x8BD1, 0x9326, + 0x8BD2, 0x65A4, 0x8BD3, 0x6B23, 0x8BD4, 0x6B3D, 0x8BD5, 0x7434, + 0x8BD6, 0x7981, 0x8BD7, 0x79BD, 0x8BD8, 0x7B4B, 0x8BD9, 0x7DCA, + 0x8BDA, 0x82B9, 0x8BDB, 0x83CC, 0x8BDC, 0x887F, 0x8BDD, 0x895F, + 0x8BDE, 0x8B39, 0x8BDF, 0x8FD1, 0x8BE0, 0x91D1, 0x8BE1, 0x541F, + 0x8BE2, 0x9280, 0x8BE3, 0x4E5D, 0x8BE4, 0x5036, 0x8BE5, 0x53E5, + 0x8BE6, 0x533A, 0x8BE7, 0x72D7, 0x8BE8, 0x7396, 0x8BE9, 0x77E9, + 0x8BEA, 0x82E6, 0x8BEB, 0x8EAF, 0x8BEC, 0x99C6, 0x8BED, 0x99C8, + 0x8BEE, 0x99D2, 0x8BEF, 0x5177, 0x8BF0, 0x611A, 0x8BF1, 0x865E, + 0x8BF2, 0x55B0, 0x8BF3, 0x7A7A, 0x8BF4, 0x5076, 0x8BF5, 0x5BD3, + 0x8BF6, 0x9047, 0x8BF7, 0x9685, 0x8BF8, 0x4E32, 0x8BF9, 0x6ADB, + 0x8BFA, 0x91E7, 0x8BFB, 0x5C51, 0x8BFC, 0x5C48, 0x8C40, 0x6398, + 0x8C41, 0x7A9F, 0x8C42, 0x6C93, 0x8C43, 0x9774, 0x8C44, 0x8F61, + 0x8C45, 0x7AAA, 0x8C46, 0x718A, 0x8C47, 0x9688, 0x8C48, 0x7C82, + 0x8C49, 0x6817, 0x8C4A, 0x7E70, 0x8C4B, 0x6851, 0x8C4C, 0x936C, + 0x8C4D, 0x52F2, 0x8C4E, 0x541B, 0x8C4F, 0x85AB, 0x8C50, 0x8A13, + 0x8C51, 0x7FA4, 0x8C52, 0x8ECD, 0x8C53, 0x90E1, 0x8C54, 0x5366, + 0x8C55, 0x8888, 0x8C56, 0x7941, 0x8C57, 0x4FC2, 0x8C58, 0x50BE, + 0x8C59, 0x5211, 0x8C5A, 0x5144, 0x8C5B, 0x5553, 0x8C5C, 0x572D, + 0x8C5D, 0x73EA, 0x8C5E, 0x578B, 0x8C5F, 0x5951, 0x8C60, 0x5F62, + 0x8C61, 0x5F84, 0x8C62, 0x6075, 0x8C63, 0x6176, 0x8C64, 0x6167, + 0x8C65, 0x61A9, 0x8C66, 0x63B2, 0x8C67, 0x643A, 0x8C68, 0x656C, + 0x8C69, 0x666F, 0x8C6A, 0x6842, 0x8C6B, 0x6E13, 0x8C6C, 0x7566, + 0x8C6D, 0x7A3D, 0x8C6E, 0x7CFB, 0x8C6F, 0x7D4C, 0x8C70, 0x7D99, + 0x8C71, 0x7E4B, 0x8C72, 0x7F6B, 0x8C73, 0x830E, 0x8C74, 0x834A, + 0x8C75, 0x86CD, 0x8C76, 0x8A08, 0x8C77, 0x8A63, 0x8C78, 0x8B66, + 0x8C79, 0x8EFD, 0x8C7A, 0x981A, 0x8C7B, 0x9D8F, 0x8C7C, 0x82B8, + 0x8C7D, 0x8FCE, 0x8C7E, 0x9BE8, 0x8C80, 0x5287, 0x8C81, 0x621F, + 0x8C82, 0x6483, 0x8C83, 0x6FC0, 0x8C84, 0x9699, 0x8C85, 0x6841, + 0x8C86, 0x5091, 0x8C87, 0x6B20, 0x8C88, 0x6C7A, 0x8C89, 0x6F54, + 0x8C8A, 0x7A74, 0x8C8B, 0x7D50, 0x8C8C, 0x8840, 0x8C8D, 0x8A23, + 0x8C8E, 0x6708, 0x8C8F, 0x4EF6, 0x8C90, 0x5039, 0x8C91, 0x5026, + 0x8C92, 0x5065, 0x8C93, 0x517C, 0x8C94, 0x5238, 0x8C95, 0x5263, + 0x8C96, 0x55A7, 0x8C97, 0x570F, 0x8C98, 0x5805, 0x8C99, 0x5ACC, + 0x8C9A, 0x5EFA, 0x8C9B, 0x61B2, 0x8C9C, 0x61F8, 0x8C9D, 0x62F3, + 0x8C9E, 0x6372, 0x8C9F, 0x691C, 0x8CA0, 0x6A29, 0x8CA1, 0x727D, + 0x8CA2, 0x72AC, 0x8CA3, 0x732E, 0x8CA4, 0x7814, 0x8CA5, 0x786F, + 0x8CA6, 0x7D79, 0x8CA7, 0x770C, 0x8CA8, 0x80A9, 0x8CA9, 0x898B, + 0x8CAA, 0x8B19, 0x8CAB, 0x8CE2, 0x8CAC, 0x8ED2, 0x8CAD, 0x9063, + 0x8CAE, 0x9375, 0x8CAF, 0x967A, 0x8CB0, 0x9855, 0x8CB1, 0x9A13, + 0x8CB2, 0x9E78, 0x8CB3, 0x5143, 0x8CB4, 0x539F, 0x8CB5, 0x53B3, + 0x8CB6, 0x5E7B, 0x8CB7, 0x5F26, 0x8CB8, 0x6E1B, 0x8CB9, 0x6E90, + 0x8CBA, 0x7384, 0x8CBB, 0x73FE, 0x8CBC, 0x7D43, 0x8CBD, 0x8237, + 0x8CBE, 0x8A00, 0x8CBF, 0x8AFA, 0x8CC0, 0x9650, 0x8CC1, 0x4E4E, + 0x8CC2, 0x500B, 0x8CC3, 0x53E4, 0x8CC4, 0x547C, 0x8CC5, 0x56FA, + 0x8CC6, 0x59D1, 0x8CC7, 0x5B64, 0x8CC8, 0x5DF1, 0x8CC9, 0x5EAB, + 0x8CCA, 0x5F27, 0x8CCB, 0x6238, 0x8CCC, 0x6545, 0x8CCD, 0x67AF, + 0x8CCE, 0x6E56, 0x8CCF, 0x72D0, 0x8CD0, 0x7CCA, 0x8CD1, 0x88B4, + 0x8CD2, 0x80A1, 0x8CD3, 0x80E1, 0x8CD4, 0x83F0, 0x8CD5, 0x864E, + 0x8CD6, 0x8A87, 0x8CD7, 0x8DE8, 0x8CD8, 0x9237, 0x8CD9, 0x96C7, + 0x8CDA, 0x9867, 0x8CDB, 0x9F13, 0x8CDC, 0x4E94, 0x8CDD, 0x4E92, + 0x8CDE, 0x4F0D, 0x8CDF, 0x5348, 0x8CE0, 0x5449, 0x8CE1, 0x543E, + 0x8CE2, 0x5A2F, 0x8CE3, 0x5F8C, 0x8CE4, 0x5FA1, 0x8CE5, 0x609F, + 0x8CE6, 0x68A7, 0x8CE7, 0x6A8E, 0x8CE8, 0x745A, 0x8CE9, 0x7881, + 0x8CEA, 0x8A9E, 0x8CEB, 0x8AA4, 0x8CEC, 0x8B77, 0x8CED, 0x9190, + 0x8CEE, 0x4E5E, 0x8CEF, 0x9BC9, 0x8CF0, 0x4EA4, 0x8CF1, 0x4F7C, + 0x8CF2, 0x4FAF, 0x8CF3, 0x5019, 0x8CF4, 0x5016, 0x8CF5, 0x5149, + 0x8CF6, 0x516C, 0x8CF7, 0x529F, 0x8CF8, 0x52B9, 0x8CF9, 0x52FE, + 0x8CFA, 0x539A, 0x8CFB, 0x53E3, 0x8CFC, 0x5411, 0x8D40, 0x540E, + 0x8D41, 0x5589, 0x8D42, 0x5751, 0x8D43, 0x57A2, 0x8D44, 0x597D, + 0x8D45, 0x5B54, 0x8D46, 0x5B5D, 0x8D47, 0x5B8F, 0x8D48, 0x5DE5, + 0x8D49, 0x5DE7, 0x8D4A, 0x5DF7, 0x8D4B, 0x5E78, 0x8D4C, 0x5E83, + 0x8D4D, 0x5E9A, 0x8D4E, 0x5EB7, 0x8D4F, 0x5F18, 0x8D50, 0x6052, + 0x8D51, 0x614C, 0x8D52, 0x6297, 0x8D53, 0x62D8, 0x8D54, 0x63A7, + 0x8D55, 0x653B, 0x8D56, 0x6602, 0x8D57, 0x6643, 0x8D58, 0x66F4, + 0x8D59, 0x676D, 0x8D5A, 0x6821, 0x8D5B, 0x6897, 0x8D5C, 0x69CB, + 0x8D5D, 0x6C5F, 0x8D5E, 0x6D2A, 0x8D5F, 0x6D69, 0x8D60, 0x6E2F, + 0x8D61, 0x6E9D, 0x8D62, 0x7532, 0x8D63, 0x7687, 0x8D64, 0x786C, + 0x8D65, 0x7A3F, 0x8D66, 0x7CE0, 0x8D67, 0x7D05, 0x8D68, 0x7D18, + 0x8D69, 0x7D5E, 0x8D6A, 0x7DB1, 0x8D6B, 0x8015, 0x8D6C, 0x8003, + 0x8D6D, 0x80AF, 0x8D6E, 0x80B1, 0x8D6F, 0x8154, 0x8D70, 0x818F, + 0x8D71, 0x822A, 0x8D72, 0x8352, 0x8D73, 0x884C, 0x8D74, 0x8861, + 0x8D75, 0x8B1B, 0x8D76, 0x8CA2, 0x8D77, 0x8CFC, 0x8D78, 0x90CA, + 0x8D79, 0x9175, 0x8D7A, 0x9271, 0x8D7B, 0x783F, 0x8D7C, 0x92FC, + 0x8D7D, 0x95A4, 0x8D7E, 0x964D, 0x8D80, 0x9805, 0x8D81, 0x9999, + 0x8D82, 0x9AD8, 0x8D83, 0x9D3B, 0x8D84, 0x525B, 0x8D85, 0x52AB, + 0x8D86, 0x53F7, 0x8D87, 0x5408, 0x8D88, 0x58D5, 0x8D89, 0x62F7, + 0x8D8A, 0x6FE0, 0x8D8B, 0x8C6A, 0x8D8C, 0x8F5F, 0x8D8D, 0x9EB9, + 0x8D8E, 0x514B, 0x8D8F, 0x523B, 0x8D90, 0x544A, 0x8D91, 0x56FD, + 0x8D92, 0x7A40, 0x8D93, 0x9177, 0x8D94, 0x9D60, 0x8D95, 0x9ED2, + 0x8D96, 0x7344, 0x8D97, 0x6F09, 0x8D98, 0x8170, 0x8D99, 0x7511, + 0x8D9A, 0x5FFD, 0x8D9B, 0x60DA, 0x8D9C, 0x9AA8, 0x8D9D, 0x72DB, + 0x8D9E, 0x8FBC, 0x8D9F, 0x6B64, 0x8DA0, 0x9803, 0x8DA1, 0x4ECA, + 0x8DA2, 0x56F0, 0x8DA3, 0x5764, 0x8DA4, 0x58BE, 0x8DA5, 0x5A5A, + 0x8DA6, 0x6068, 0x8DA7, 0x61C7, 0x8DA8, 0x660F, 0x8DA9, 0x6606, + 0x8DAA, 0x6839, 0x8DAB, 0x68B1, 0x8DAC, 0x6DF7, 0x8DAD, 0x75D5, + 0x8DAE, 0x7D3A, 0x8DAF, 0x826E, 0x8DB0, 0x9B42, 0x8DB1, 0x4E9B, + 0x8DB2, 0x4F50, 0x8DB3, 0x53C9, 0x8DB4, 0x5506, 0x8DB5, 0x5D6F, + 0x8DB6, 0x5DE6, 0x8DB7, 0x5DEE, 0x8DB8, 0x67FB, 0x8DB9, 0x6C99, + 0x8DBA, 0x7473, 0x8DBB, 0x7802, 0x8DBC, 0x8A50, 0x8DBD, 0x9396, + 0x8DBE, 0x88DF, 0x8DBF, 0x5750, 0x8DC0, 0x5EA7, 0x8DC1, 0x632B, + 0x8DC2, 0x50B5, 0x8DC3, 0x50AC, 0x8DC4, 0x518D, 0x8DC5, 0x6700, + 0x8DC6, 0x54C9, 0x8DC7, 0x585E, 0x8DC8, 0x59BB, 0x8DC9, 0x5BB0, + 0x8DCA, 0x5F69, 0x8DCB, 0x624D, 0x8DCC, 0x63A1, 0x8DCD, 0x683D, + 0x8DCE, 0x6B73, 0x8DCF, 0x6E08, 0x8DD0, 0x707D, 0x8DD1, 0x91C7, + 0x8DD2, 0x7280, 0x8DD3, 0x7815, 0x8DD4, 0x7826, 0x8DD5, 0x796D, + 0x8DD6, 0x658E, 0x8DD7, 0x7D30, 0x8DD8, 0x83DC, 0x8DD9, 0x88C1, + 0x8DDA, 0x8F09, 0x8DDB, 0x969B, 0x8DDC, 0x5264, 0x8DDD, 0x5728, + 0x8DDE, 0x6750, 0x8DDF, 0x7F6A, 0x8DE0, 0x8CA1, 0x8DE1, 0x51B4, + 0x8DE2, 0x5742, 0x8DE3, 0x962A, 0x8DE4, 0x583A, 0x8DE5, 0x698A, + 0x8DE6, 0x80B4, 0x8DE7, 0x54B2, 0x8DE8, 0x5D0E, 0x8DE9, 0x57FC, + 0x8DEA, 0x7895, 0x8DEB, 0x9DFA, 0x8DEC, 0x4F5C, 0x8DED, 0x524A, + 0x8DEE, 0x548B, 0x8DEF, 0x643E, 0x8DF0, 0x6628, 0x8DF1, 0x6714, + 0x8DF2, 0x67F5, 0x8DF3, 0x7A84, 0x8DF4, 0x7B56, 0x8DF5, 0x7D22, + 0x8DF6, 0x932F, 0x8DF7, 0x685C, 0x8DF8, 0x9BAD, 0x8DF9, 0x7B39, + 0x8DFA, 0x5319, 0x8DFB, 0x518A, 0x8DFC, 0x5237, 0x8E40, 0x5BDF, + 0x8E41, 0x62F6, 0x8E42, 0x64AE, 0x8E43, 0x64E6, 0x8E44, 0x672D, + 0x8E45, 0x6BBA, 0x8E46, 0x85A9, 0x8E47, 0x96D1, 0x8E48, 0x7690, + 0x8E49, 0x9BD6, 0x8E4A, 0x634C, 0x8E4B, 0x9306, 0x8E4C, 0x9BAB, + 0x8E4D, 0x76BF, 0x8E4E, 0x6652, 0x8E4F, 0x4E09, 0x8E50, 0x5098, + 0x8E51, 0x53C2, 0x8E52, 0x5C71, 0x8E53, 0x60E8, 0x8E54, 0x6492, + 0x8E55, 0x6563, 0x8E56, 0x685F, 0x8E57, 0x71E6, 0x8E58, 0x73CA, + 0x8E59, 0x7523, 0x8E5A, 0x7B97, 0x8E5B, 0x7E82, 0x8E5C, 0x8695, + 0x8E5D, 0x8B83, 0x8E5E, 0x8CDB, 0x8E5F, 0x9178, 0x8E60, 0x9910, + 0x8E61, 0x65AC, 0x8E62, 0x66AB, 0x8E63, 0x6B8B, 0x8E64, 0x4ED5, + 0x8E65, 0x4ED4, 0x8E66, 0x4F3A, 0x8E67, 0x4F7F, 0x8E68, 0x523A, + 0x8E69, 0x53F8, 0x8E6A, 0x53F2, 0x8E6B, 0x55E3, 0x8E6C, 0x56DB, + 0x8E6D, 0x58EB, 0x8E6E, 0x59CB, 0x8E6F, 0x59C9, 0x8E70, 0x59FF, + 0x8E71, 0x5B50, 0x8E72, 0x5C4D, 0x8E73, 0x5E02, 0x8E74, 0x5E2B, + 0x8E75, 0x5FD7, 0x8E76, 0x601D, 0x8E77, 0x6307, 0x8E78, 0x652F, + 0x8E79, 0x5B5C, 0x8E7A, 0x65AF, 0x8E7B, 0x65BD, 0x8E7C, 0x65E8, + 0x8E7D, 0x679D, 0x8E7E, 0x6B62, 0x8E80, 0x6B7B, 0x8E81, 0x6C0F, + 0x8E82, 0x7345, 0x8E83, 0x7949, 0x8E84, 0x79C1, 0x8E85, 0x7CF8, + 0x8E86, 0x7D19, 0x8E87, 0x7D2B, 0x8E88, 0x80A2, 0x8E89, 0x8102, + 0x8E8A, 0x81F3, 0x8E8B, 0x8996, 0x8E8C, 0x8A5E, 0x8E8D, 0x8A69, + 0x8E8E, 0x8A66, 0x8E8F, 0x8A8C, 0x8E90, 0x8AEE, 0x8E91, 0x8CC7, + 0x8E92, 0x8CDC, 0x8E93, 0x96CC, 0x8E94, 0x98FC, 0x8E95, 0x6B6F, + 0x8E96, 0x4E8B, 0x8E97, 0x4F3C, 0x8E98, 0x4F8D, 0x8E99, 0x5150, + 0x8E9A, 0x5B57, 0x8E9B, 0x5BFA, 0x8E9C, 0x6148, 0x8E9D, 0x6301, + 0x8E9E, 0x6642, 0x8E9F, 0x6B21, 0x8EA0, 0x6ECB, 0x8EA1, 0x6CBB, + 0x8EA2, 0x723E, 0x8EA3, 0x74BD, 0x8EA4, 0x75D4, 0x8EA5, 0x78C1, + 0x8EA6, 0x793A, 0x8EA7, 0x800C, 0x8EA8, 0x8033, 0x8EA9, 0x81EA, + 0x8EAA, 0x8494, 0x8EAB, 0x8F9E, 0x8EAC, 0x6C50, 0x8EAD, 0x9E7F, + 0x8EAE, 0x5F0F, 0x8EAF, 0x8B58, 0x8EB0, 0x9D2B, 0x8EB1, 0x7AFA, + 0x8EB2, 0x8EF8, 0x8EB3, 0x5B8D, 0x8EB4, 0x96EB, 0x8EB5, 0x4E03, + 0x8EB6, 0x53F1, 0x8EB7, 0x57F7, 0x8EB8, 0x5931, 0x8EB9, 0x5AC9, + 0x8EBA, 0x5BA4, 0x8EBB, 0x6089, 0x8EBC, 0x6E7F, 0x8EBD, 0x6F06, + 0x8EBE, 0x75BE, 0x8EBF, 0x8CEA, 0x8EC0, 0x5B9F, 0x8EC1, 0x8500, + 0x8EC2, 0x7BE0, 0x8EC3, 0x5072, 0x8EC4, 0x67F4, 0x8EC5, 0x829D, + 0x8EC6, 0x5C61, 0x8EC7, 0x854A, 0x8EC8, 0x7E1E, 0x8EC9, 0x820E, + 0x8ECA, 0x5199, 0x8ECB, 0x5C04, 0x8ECC, 0x6368, 0x8ECD, 0x8D66, + 0x8ECE, 0x659C, 0x8ECF, 0x716E, 0x8ED0, 0x793E, 0x8ED1, 0x7D17, + 0x8ED2, 0x8005, 0x8ED3, 0x8B1D, 0x8ED4, 0x8ECA, 0x8ED5, 0x906E, + 0x8ED6, 0x86C7, 0x8ED7, 0x90AA, 0x8ED8, 0x501F, 0x8ED9, 0x52FA, + 0x8EDA, 0x5C3A, 0x8EDB, 0x6753, 0x8EDC, 0x707C, 0x8EDD, 0x7235, + 0x8EDE, 0x914C, 0x8EDF, 0x91C8, 0x8EE0, 0x932B, 0x8EE1, 0x82E5, + 0x8EE2, 0x5BC2, 0x8EE3, 0x5F31, 0x8EE4, 0x60F9, 0x8EE5, 0x4E3B, + 0x8EE6, 0x53D6, 0x8EE7, 0x5B88, 0x8EE8, 0x624B, 0x8EE9, 0x6731, + 0x8EEA, 0x6B8A, 0x8EEB, 0x72E9, 0x8EEC, 0x73E0, 0x8EED, 0x7A2E, + 0x8EEE, 0x816B, 0x8EEF, 0x8DA3, 0x8EF0, 0x9152, 0x8EF1, 0x9996, + 0x8EF2, 0x5112, 0x8EF3, 0x53D7, 0x8EF4, 0x546A, 0x8EF5, 0x5BFF, + 0x8EF6, 0x6388, 0x8EF7, 0x6A39, 0x8EF8, 0x7DAC, 0x8EF9, 0x9700, + 0x8EFA, 0x56DA, 0x8EFB, 0x53CE, 0x8EFC, 0x5468, 0x8F40, 0x5B97, + 0x8F41, 0x5C31, 0x8F42, 0x5DDE, 0x8F43, 0x4FEE, 0x8F44, 0x6101, + 0x8F45, 0x62FE, 0x8F46, 0x6D32, 0x8F47, 0x79C0, 0x8F48, 0x79CB, + 0x8F49, 0x7D42, 0x8F4A, 0x7E4D, 0x8F4B, 0x7FD2, 0x8F4C, 0x81ED, + 0x8F4D, 0x821F, 0x8F4E, 0x8490, 0x8F4F, 0x8846, 0x8F50, 0x8972, + 0x8F51, 0x8B90, 0x8F52, 0x8E74, 0x8F53, 0x8F2F, 0x8F54, 0x9031, + 0x8F55, 0x914B, 0x8F56, 0x916C, 0x8F57, 0x96C6, 0x8F58, 0x919C, + 0x8F59, 0x4EC0, 0x8F5A, 0x4F4F, 0x8F5B, 0x5145, 0x8F5C, 0x5341, + 0x8F5D, 0x5F93, 0x8F5E, 0x620E, 0x8F5F, 0x67D4, 0x8F60, 0x6C41, + 0x8F61, 0x6E0B, 0x8F62, 0x7363, 0x8F63, 0x7E26, 0x8F64, 0x91CD, + 0x8F65, 0x9283, 0x8F66, 0x53D4, 0x8F67, 0x5919, 0x8F68, 0x5BBF, + 0x8F69, 0x6DD1, 0x8F6A, 0x795D, 0x8F6B, 0x7E2E, 0x8F6C, 0x7C9B, + 0x8F6D, 0x587E, 0x8F6E, 0x719F, 0x8F6F, 0x51FA, 0x8F70, 0x8853, + 0x8F71, 0x8FF0, 0x8F72, 0x4FCA, 0x8F73, 0x5CFB, 0x8F74, 0x6625, + 0x8F75, 0x77AC, 0x8F76, 0x7AE3, 0x8F77, 0x821C, 0x8F78, 0x99FF, + 0x8F79, 0x51C6, 0x8F7A, 0x5FAA, 0x8F7B, 0x65EC, 0x8F7C, 0x696F, + 0x8F7D, 0x6B89, 0x8F7E, 0x6DF3, 0x8F80, 0x6E96, 0x8F81, 0x6F64, + 0x8F82, 0x76FE, 0x8F83, 0x7D14, 0x8F84, 0x5DE1, 0x8F85, 0x9075, + 0x8F86, 0x9187, 0x8F87, 0x9806, 0x8F88, 0x51E6, 0x8F89, 0x521D, + 0x8F8A, 0x6240, 0x8F8B, 0x6691, 0x8F8C, 0x66D9, 0x8F8D, 0x6E1A, + 0x8F8E, 0x5EB6, 0x8F8F, 0x7DD2, 0x8F90, 0x7F72, 0x8F91, 0x66F8, + 0x8F92, 0x85AF, 0x8F93, 0x85F7, 0x8F94, 0x8AF8, 0x8F95, 0x52A9, + 0x8F96, 0x53D9, 0x8F97, 0x5973, 0x8F98, 0x5E8F, 0x8F99, 0x5F90, + 0x8F9A, 0x6055, 0x8F9B, 0x92E4, 0x8F9C, 0x9664, 0x8F9D, 0x50B7, + 0x8F9E, 0x511F, 0x8F9F, 0x52DD, 0x8FA0, 0x5320, 0x8FA1, 0x5347, + 0x8FA2, 0x53EC, 0x8FA3, 0x54E8, 0x8FA4, 0x5546, 0x8FA5, 0x5531, + 0x8FA6, 0x5617, 0x8FA7, 0x5968, 0x8FA8, 0x59BE, 0x8FA9, 0x5A3C, + 0x8FAA, 0x5BB5, 0x8FAB, 0x5C06, 0x8FAC, 0x5C0F, 0x8FAD, 0x5C11, + 0x8FAE, 0x5C1A, 0x8FAF, 0x5E84, 0x8FB0, 0x5E8A, 0x8FB1, 0x5EE0, + 0x8FB2, 0x5F70, 0x8FB3, 0x627F, 0x8FB4, 0x6284, 0x8FB5, 0x62DB, + 0x8FB6, 0x638C, 0x8FB7, 0x6377, 0x8FB8, 0x6607, 0x8FB9, 0x660C, + 0x8FBA, 0x662D, 0x8FBB, 0x6676, 0x8FBC, 0x677E, 0x8FBD, 0x68A2, + 0x8FBE, 0x6A1F, 0x8FBF, 0x6A35, 0x8FC0, 0x6CBC, 0x8FC1, 0x6D88, + 0x8FC2, 0x6E09, 0x8FC3, 0x6E58, 0x8FC4, 0x713C, 0x8FC5, 0x7126, + 0x8FC6, 0x7167, 0x8FC7, 0x75C7, 0x8FC8, 0x7701, 0x8FC9, 0x785D, + 0x8FCA, 0x7901, 0x8FCB, 0x7965, 0x8FCC, 0x79F0, 0x8FCD, 0x7AE0, + 0x8FCE, 0x7B11, 0x8FCF, 0x7CA7, 0x8FD0, 0x7D39, 0x8FD1, 0x8096, + 0x8FD2, 0x83D6, 0x8FD3, 0x848B, 0x8FD4, 0x8549, 0x8FD5, 0x885D, + 0x8FD6, 0x88F3, 0x8FD7, 0x8A1F, 0x8FD8, 0x8A3C, 0x8FD9, 0x8A54, + 0x8FDA, 0x8A73, 0x8FDB, 0x8C61, 0x8FDC, 0x8CDE, 0x8FDD, 0x91A4, + 0x8FDE, 0x9266, 0x8FDF, 0x937E, 0x8FE0, 0x9418, 0x8FE1, 0x969C, + 0x8FE2, 0x9798, 0x8FE3, 0x4E0A, 0x8FE4, 0x4E08, 0x8FE5, 0x4E1E, + 0x8FE6, 0x4E57, 0x8FE7, 0x5197, 0x8FE8, 0x5270, 0x8FE9, 0x57CE, + 0x8FEA, 0x5834, 0x8FEB, 0x58CC, 0x8FEC, 0x5B22, 0x8FED, 0x5E38, + 0x8FEE, 0x60C5, 0x8FEF, 0x64FE, 0x8FF0, 0x6761, 0x8FF1, 0x6756, + 0x8FF2, 0x6D44, 0x8FF3, 0x72B6, 0x8FF4, 0x7573, 0x8FF5, 0x7A63, + 0x8FF6, 0x84B8, 0x8FF7, 0x8B72, 0x8FF8, 0x91B8, 0x8FF9, 0x9320, + 0x8FFA, 0x5631, 0x8FFB, 0x57F4, 0x8FFC, 0x98FE, 0x9040, 0x62ED, + 0x9041, 0x690D, 0x9042, 0x6B96, 0x9043, 0x71ED, 0x9044, 0x7E54, + 0x9045, 0x8077, 0x9046, 0x8272, 0x9047, 0x89E6, 0x9048, 0x98DF, + 0x9049, 0x8755, 0x904A, 0x8FB1, 0x904B, 0x5C3B, 0x904C, 0x4F38, + 0x904D, 0x4FE1, 0x904E, 0x4FB5, 0x904F, 0x5507, 0x9050, 0x5A20, + 0x9051, 0x5BDD, 0x9052, 0x5BE9, 0x9053, 0x5FC3, 0x9054, 0x614E, + 0x9055, 0x632F, 0x9056, 0x65B0, 0x9057, 0x664B, 0x9058, 0x68EE, + 0x9059, 0x699B, 0x905A, 0x6D78, 0x905B, 0x6DF1, 0x905C, 0x7533, + 0x905D, 0x75B9, 0x905E, 0x771F, 0x905F, 0x795E, 0x9060, 0x79E6, + 0x9061, 0x7D33, 0x9062, 0x81E3, 0x9063, 0x82AF, 0x9064, 0x85AA, + 0x9065, 0x89AA, 0x9066, 0x8A3A, 0x9067, 0x8EAB, 0x9068, 0x8F9B, + 0x9069, 0x9032, 0x906A, 0x91DD, 0x906B, 0x9707, 0x906C, 0x4EBA, + 0x906D, 0x4EC1, 0x906E, 0x5203, 0x906F, 0x5875, 0x9070, 0x58EC, + 0x9071, 0x5C0B, 0x9072, 0x751A, 0x9073, 0x5C3D, 0x9074, 0x814E, + 0x9075, 0x8A0A, 0x9076, 0x8FC5, 0x9077, 0x9663, 0x9078, 0x976D, + 0x9079, 0x7B25, 0x907A, 0x8ACF, 0x907B, 0x9808, 0x907C, 0x9162, + 0x907D, 0x56F3, 0x907E, 0x53A8, 0x9080, 0x9017, 0x9081, 0x5439, + 0x9082, 0x5782, 0x9083, 0x5E25, 0x9084, 0x63A8, 0x9085, 0x6C34, + 0x9086, 0x708A, 0x9087, 0x7761, 0x9088, 0x7C8B, 0x9089, 0x7FE0, + 0x908A, 0x8870, 0x908B, 0x9042, 0x908C, 0x9154, 0x908D, 0x9310, + 0x908E, 0x9318, 0x908F, 0x968F, 0x9090, 0x745E, 0x9091, 0x9AC4, + 0x9092, 0x5D07, 0x9093, 0x5D69, 0x9094, 0x6570, 0x9095, 0x67A2, + 0x9096, 0x8DA8, 0x9097, 0x96DB, 0x9098, 0x636E, 0x9099, 0x6749, + 0x909A, 0x6919, 0x909B, 0x83C5, 0x909C, 0x9817, 0x909D, 0x96C0, + 0x909E, 0x88FE, 0x909F, 0x6F84, 0x90A0, 0x647A, 0x90A1, 0x5BF8, + 0x90A2, 0x4E16, 0x90A3, 0x702C, 0x90A4, 0x755D, 0x90A5, 0x662F, + 0x90A6, 0x51C4, 0x90A7, 0x5236, 0x90A8, 0x52E2, 0x90A9, 0x59D3, + 0x90AA, 0x5F81, 0x90AB, 0x6027, 0x90AC, 0x6210, 0x90AD, 0x653F, + 0x90AE, 0x6574, 0x90AF, 0x661F, 0x90B0, 0x6674, 0x90B1, 0x68F2, + 0x90B2, 0x6816, 0x90B3, 0x6B63, 0x90B4, 0x6E05, 0x90B5, 0x7272, + 0x90B6, 0x751F, 0x90B7, 0x76DB, 0x90B8, 0x7CBE, 0x90B9, 0x8056, + 0x90BA, 0x58F0, 0x90BB, 0x88FD, 0x90BC, 0x897F, 0x90BD, 0x8AA0, + 0x90BE, 0x8A93, 0x90BF, 0x8ACB, 0x90C0, 0x901D, 0x90C1, 0x9192, + 0x90C2, 0x9752, 0x90C3, 0x9759, 0x90C4, 0x6589, 0x90C5, 0x7A0E, + 0x90C6, 0x8106, 0x90C7, 0x96BB, 0x90C8, 0x5E2D, 0x90C9, 0x60DC, + 0x90CA, 0x621A, 0x90CB, 0x65A5, 0x90CC, 0x6614, 0x90CD, 0x6790, + 0x90CE, 0x77F3, 0x90CF, 0x7A4D, 0x90D0, 0x7C4D, 0x90D1, 0x7E3E, + 0x90D2, 0x810A, 0x90D3, 0x8CAC, 0x90D4, 0x8D64, 0x90D5, 0x8DE1, + 0x90D6, 0x8E5F, 0x90D7, 0x78A9, 0x90D8, 0x5207, 0x90D9, 0x62D9, + 0x90DA, 0x63A5, 0x90DB, 0x6442, 0x90DC, 0x6298, 0x90DD, 0x8A2D, + 0x90DE, 0x7A83, 0x90DF, 0x7BC0, 0x90E0, 0x8AAC, 0x90E1, 0x96EA, + 0x90E2, 0x7D76, 0x90E3, 0x820C, 0x90E4, 0x8749, 0x90E5, 0x4ED9, + 0x90E6, 0x5148, 0x90E7, 0x5343, 0x90E8, 0x5360, 0x90E9, 0x5BA3, + 0x90EA, 0x5C02, 0x90EB, 0x5C16, 0x90EC, 0x5DDD, 0x90ED, 0x6226, + 0x90EE, 0x6247, 0x90EF, 0x64B0, 0x90F0, 0x6813, 0x90F1, 0x6834, + 0x90F2, 0x6CC9, 0x90F3, 0x6D45, 0x90F4, 0x6D17, 0x90F5, 0x67D3, + 0x90F6, 0x6F5C, 0x90F7, 0x714E, 0x90F8, 0x717D, 0x90F9, 0x65CB, + 0x90FA, 0x7A7F, 0x90FB, 0x7BAD, 0x90FC, 0x7DDA, 0x9140, 0x7E4A, + 0x9141, 0x7FA8, 0x9142, 0x817A, 0x9143, 0x821B, 0x9144, 0x8239, + 0x9145, 0x85A6, 0x9146, 0x8A6E, 0x9147, 0x8CCE, 0x9148, 0x8DF5, + 0x9149, 0x9078, 0x914A, 0x9077, 0x914B, 0x92AD, 0x914C, 0x9291, + 0x914D, 0x9583, 0x914E, 0x9BAE, 0x914F, 0x524D, 0x9150, 0x5584, + 0x9151, 0x6F38, 0x9152, 0x7136, 0x9153, 0x5168, 0x9154, 0x7985, + 0x9155, 0x7E55, 0x9156, 0x81B3, 0x9157, 0x7CCE, 0x9158, 0x564C, + 0x9159, 0x5851, 0x915A, 0x5CA8, 0x915B, 0x63AA, 0x915C, 0x66FE, + 0x915D, 0x66FD, 0x915E, 0x695A, 0x915F, 0x72D9, 0x9160, 0x758F, + 0x9161, 0x758E, 0x9162, 0x790E, 0x9163, 0x7956, 0x9164, 0x79DF, + 0x9165, 0x7C97, 0x9166, 0x7D20, 0x9167, 0x7D44, 0x9168, 0x8607, + 0x9169, 0x8A34, 0x916A, 0x963B, 0x916B, 0x9061, 0x916C, 0x9F20, + 0x916D, 0x50E7, 0x916E, 0x5275, 0x916F, 0x53CC, 0x9170, 0x53E2, + 0x9171, 0x5009, 0x9172, 0x55AA, 0x9173, 0x58EE, 0x9174, 0x594F, + 0x9175, 0x723D, 0x9176, 0x5B8B, 0x9177, 0x5C64, 0x9178, 0x531D, + 0x9179, 0x60E3, 0x917A, 0x60F3, 0x917B, 0x635C, 0x917C, 0x6383, + 0x917D, 0x633F, 0x917E, 0x63BB, 0x9180, 0x64CD, 0x9181, 0x65E9, + 0x9182, 0x66F9, 0x9183, 0x5DE3, 0x9184, 0x69CD, 0x9185, 0x69FD, + 0x9186, 0x6F15, 0x9187, 0x71E5, 0x9188, 0x4E89, 0x9189, 0x75E9, + 0x918A, 0x76F8, 0x918B, 0x7A93, 0x918C, 0x7CDF, 0x918D, 0x7DCF, + 0x918E, 0x7D9C, 0x918F, 0x8061, 0x9190, 0x8349, 0x9191, 0x8358, + 0x9192, 0x846C, 0x9193, 0x84BC, 0x9194, 0x85FB, 0x9195, 0x88C5, + 0x9196, 0x8D70, 0x9197, 0x9001, 0x9198, 0x906D, 0x9199, 0x9397, + 0x919A, 0x971C, 0x919B, 0x9A12, 0x919C, 0x50CF, 0x919D, 0x5897, + 0x919E, 0x618E, 0x919F, 0x81D3, 0x91A0, 0x8535, 0x91A1, 0x8D08, + 0x91A2, 0x9020, 0x91A3, 0x4FC3, 0x91A4, 0x5074, 0x91A5, 0x5247, + 0x91A6, 0x5373, 0x91A7, 0x606F, 0x91A8, 0x6349, 0x91A9, 0x675F, + 0x91AA, 0x6E2C, 0x91AB, 0x8DB3, 0x91AC, 0x901F, 0x91AD, 0x4FD7, + 0x91AE, 0x5C5E, 0x91AF, 0x8CCA, 0x91B0, 0x65CF, 0x91B1, 0x7D9A, + 0x91B2, 0x5352, 0x91B3, 0x8896, 0x91B4, 0x5176, 0x91B5, 0x63C3, + 0x91B6, 0x5B58, 0x91B7, 0x5B6B, 0x91B8, 0x5C0A, 0x91B9, 0x640D, + 0x91BA, 0x6751, 0x91BB, 0x905C, 0x91BC, 0x4ED6, 0x91BD, 0x591A, + 0x91BE, 0x592A, 0x91BF, 0x6C70, 0x91C0, 0x8A51, 0x91C1, 0x553E, + 0x91C2, 0x5815, 0x91C3, 0x59A5, 0x91C4, 0x60F0, 0x91C5, 0x6253, + 0x91C6, 0x67C1, 0x91C7, 0x8235, 0x91C8, 0x6955, 0x91C9, 0x9640, + 0x91CA, 0x99C4, 0x91CB, 0x9A28, 0x91CC, 0x4F53, 0x91CD, 0x5806, + 0x91CE, 0x5BFE, 0x91CF, 0x8010, 0x91D0, 0x5CB1, 0x91D1, 0x5E2F, + 0x91D2, 0x5F85, 0x91D3, 0x6020, 0x91D4, 0x614B, 0x91D5, 0x6234, + 0x91D6, 0x66FF, 0x91D7, 0x6CF0, 0x91D8, 0x6EDE, 0x91D9, 0x80CE, + 0x91DA, 0x817F, 0x91DB, 0x82D4, 0x91DC, 0x888B, 0x91DD, 0x8CB8, + 0x91DE, 0x9000, 0x91DF, 0x902E, 0x91E0, 0x968A, 0x91E1, 0x9EDB, + 0x91E2, 0x9BDB, 0x91E3, 0x4EE3, 0x91E4, 0x53F0, 0x91E5, 0x5927, + 0x91E6, 0x7B2C, 0x91E7, 0x918D, 0x91E8, 0x984C, 0x91E9, 0x9DF9, + 0x91EA, 0x6EDD, 0x91EB, 0x7027, 0x91EC, 0x5353, 0x91ED, 0x5544, + 0x91EE, 0x5B85, 0x91EF, 0x6258, 0x91F0, 0x629E, 0x91F1, 0x62D3, + 0x91F2, 0x6CA2, 0x91F3, 0x6FEF, 0x91F4, 0x7422, 0x91F5, 0x8A17, + 0x91F6, 0x9438, 0x91F7, 0x6FC1, 0x91F8, 0x8AFE, 0x91F9, 0x8338, + 0x91FA, 0x51E7, 0x91FB, 0x86F8, 0x91FC, 0x53EA, 0x9240, 0x53E9, + 0x9241, 0x4F46, 0x9242, 0x9054, 0x9243, 0x8FB0, 0x9244, 0x596A, + 0x9245, 0x8131, 0x9246, 0x5DFD, 0x9247, 0x7AEA, 0x9248, 0x8FBF, + 0x9249, 0x68DA, 0x924A, 0x8C37, 0x924B, 0x72F8, 0x924C, 0x9C48, + 0x924D, 0x6A3D, 0x924E, 0x8AB0, 0x924F, 0x4E39, 0x9250, 0x5358, + 0x9251, 0x5606, 0x9252, 0x5766, 0x9253, 0x62C5, 0x9254, 0x63A2, + 0x9255, 0x65E6, 0x9256, 0x6B4E, 0x9257, 0x6DE1, 0x9258, 0x6E5B, + 0x9259, 0x70AD, 0x925A, 0x77ED, 0x925B, 0x7AEF, 0x925C, 0x7BAA, + 0x925D, 0x7DBB, 0x925E, 0x803D, 0x925F, 0x80C6, 0x9260, 0x86CB, + 0x9261, 0x8A95, 0x9262, 0x935B, 0x9263, 0x56E3, 0x9264, 0x58C7, + 0x9265, 0x5F3E, 0x9266, 0x65AD, 0x9267, 0x6696, 0x9268, 0x6A80, + 0x9269, 0x6BB5, 0x926A, 0x7537, 0x926B, 0x8AC7, 0x926C, 0x5024, + 0x926D, 0x77E5, 0x926E, 0x5730, 0x926F, 0x5F1B, 0x9270, 0x6065, + 0x9271, 0x667A, 0x9272, 0x6C60, 0x9273, 0x75F4, 0x9274, 0x7A1A, + 0x9275, 0x7F6E, 0x9276, 0x81F4, 0x9277, 0x8718, 0x9278, 0x9045, + 0x9279, 0x99B3, 0x927A, 0x7BC9, 0x927B, 0x755C, 0x927C, 0x7AF9, + 0x927D, 0x7B51, 0x927E, 0x84C4, 0x9280, 0x9010, 0x9281, 0x79E9, + 0x9282, 0x7A92, 0x9283, 0x8336, 0x9284, 0x5AE1, 0x9285, 0x7740, + 0x9286, 0x4E2D, 0x9287, 0x4EF2, 0x9288, 0x5B99, 0x9289, 0x5FE0, + 0x928A, 0x62BD, 0x928B, 0x663C, 0x928C, 0x67F1, 0x928D, 0x6CE8, + 0x928E, 0x866B, 0x928F, 0x8877, 0x9290, 0x8A3B, 0x9291, 0x914E, + 0x9292, 0x92F3, 0x9293, 0x99D0, 0x9294, 0x6A17, 0x9295, 0x7026, + 0x9296, 0x732A, 0x9297, 0x82E7, 0x9298, 0x8457, 0x9299, 0x8CAF, + 0x929A, 0x4E01, 0x929B, 0x5146, 0x929C, 0x51CB, 0x929D, 0x558B, + 0x929E, 0x5BF5, 0x929F, 0x5E16, 0x92A0, 0x5E33, 0x92A1, 0x5E81, + 0x92A2, 0x5F14, 0x92A3, 0x5F35, 0x92A4, 0x5F6B, 0x92A5, 0x5FB4, + 0x92A6, 0x61F2, 0x92A7, 0x6311, 0x92A8, 0x66A2, 0x92A9, 0x671D, + 0x92AA, 0x6F6E, 0x92AB, 0x7252, 0x92AC, 0x753A, 0x92AD, 0x773A, + 0x92AE, 0x8074, 0x92AF, 0x8139, 0x92B0, 0x8178, 0x92B1, 0x8776, + 0x92B2, 0x8ABF, 0x92B3, 0x8ADC, 0x92B4, 0x8D85, 0x92B5, 0x8DF3, + 0x92B6, 0x929A, 0x92B7, 0x9577, 0x92B8, 0x9802, 0x92B9, 0x9CE5, + 0x92BA, 0x52C5, 0x92BB, 0x6357, 0x92BC, 0x76F4, 0x92BD, 0x6715, + 0x92BE, 0x6C88, 0x92BF, 0x73CD, 0x92C0, 0x8CC3, 0x92C1, 0x93AE, + 0x92C2, 0x9673, 0x92C3, 0x6D25, 0x92C4, 0x589C, 0x92C5, 0x690E, + 0x92C6, 0x69CC, 0x92C7, 0x8FFD, 0x92C8, 0x939A, 0x92C9, 0x75DB, + 0x92CA, 0x901A, 0x92CB, 0x585A, 0x92CC, 0x6802, 0x92CD, 0x63B4, + 0x92CE, 0x69FB, 0x92CF, 0x4F43, 0x92D0, 0x6F2C, 0x92D1, 0x67D8, + 0x92D2, 0x8FBB, 0x92D3, 0x8526, 0x92D4, 0x7DB4, 0x92D5, 0x9354, + 0x92D6, 0x693F, 0x92D7, 0x6F70, 0x92D8, 0x576A, 0x92D9, 0x58F7, + 0x92DA, 0x5B2C, 0x92DB, 0x7D2C, 0x92DC, 0x722A, 0x92DD, 0x540A, + 0x92DE, 0x91E3, 0x92DF, 0x9DB4, 0x92E0, 0x4EAD, 0x92E1, 0x4F4E, + 0x92E2, 0x505C, 0x92E3, 0x5075, 0x92E4, 0x5243, 0x92E5, 0x8C9E, + 0x92E6, 0x5448, 0x92E7, 0x5824, 0x92E8, 0x5B9A, 0x92E9, 0x5E1D, + 0x92EA, 0x5E95, 0x92EB, 0x5EAD, 0x92EC, 0x5EF7, 0x92ED, 0x5F1F, + 0x92EE, 0x608C, 0x92EF, 0x62B5, 0x92F0, 0x633A, 0x92F1, 0x63D0, + 0x92F2, 0x68AF, 0x92F3, 0x6C40, 0x92F4, 0x7887, 0x92F5, 0x798E, + 0x92F6, 0x7A0B, 0x92F7, 0x7DE0, 0x92F8, 0x8247, 0x92F9, 0x8A02, + 0x92FA, 0x8AE6, 0x92FB, 0x8E44, 0x92FC, 0x9013, 0x9340, 0x90B8, + 0x9341, 0x912D, 0x9342, 0x91D8, 0x9343, 0x9F0E, 0x9344, 0x6CE5, + 0x9345, 0x6458, 0x9346, 0x64E2, 0x9347, 0x6575, 0x9348, 0x6EF4, + 0x9349, 0x7684, 0x934A, 0x7B1B, 0x934B, 0x9069, 0x934C, 0x93D1, + 0x934D, 0x6EBA, 0x934E, 0x54F2, 0x934F, 0x5FB9, 0x9350, 0x64A4, + 0x9351, 0x8F4D, 0x9352, 0x8FED, 0x9353, 0x9244, 0x9354, 0x5178, + 0x9355, 0x586B, 0x9356, 0x5929, 0x9357, 0x5C55, 0x9358, 0x5E97, + 0x9359, 0x6DFB, 0x935A, 0x7E8F, 0x935B, 0x751C, 0x935C, 0x8CBC, + 0x935D, 0x8EE2, 0x935E, 0x985B, 0x935F, 0x70B9, 0x9360, 0x4F1D, + 0x9361, 0x6BBF, 0x9362, 0x6FB1, 0x9363, 0x7530, 0x9364, 0x96FB, + 0x9365, 0x514E, 0x9366, 0x5410, 0x9367, 0x5835, 0x9368, 0x5857, + 0x9369, 0x59AC, 0x936A, 0x5C60, 0x936B, 0x5F92, 0x936C, 0x6597, + 0x936D, 0x675C, 0x936E, 0x6E21, 0x936F, 0x767B, 0x9370, 0x83DF, + 0x9371, 0x8CED, 0x9372, 0x9014, 0x9373, 0x90FD, 0x9374, 0x934D, + 0x9375, 0x7825, 0x9376, 0x783A, 0x9377, 0x52AA, 0x9378, 0x5EA6, + 0x9379, 0x571F, 0x937A, 0x5974, 0x937B, 0x6012, 0x937C, 0x5012, + 0x937D, 0x515A, 0x937E, 0x51AC, 0x9380, 0x51CD, 0x9381, 0x5200, + 0x9382, 0x5510, 0x9383, 0x5854, 0x9384, 0x5858, 0x9385, 0x5957, + 0x9386, 0x5B95, 0x9387, 0x5CF6, 0x9388, 0x5D8B, 0x9389, 0x60BC, + 0x938A, 0x6295, 0x938B, 0x642D, 0x938C, 0x6771, 0x938D, 0x6843, + 0x938E, 0x68BC, 0x938F, 0x68DF, 0x9390, 0x76D7, 0x9391, 0x6DD8, + 0x9392, 0x6E6F, 0x9393, 0x6D9B, 0x9394, 0x706F, 0x9395, 0x71C8, + 0x9396, 0x5F53, 0x9397, 0x75D8, 0x9398, 0x7977, 0x9399, 0x7B49, + 0x939A, 0x7B54, 0x939B, 0x7B52, 0x939C, 0x7CD6, 0x939D, 0x7D71, + 0x939E, 0x5230, 0x939F, 0x8463, 0x93A0, 0x8569, 0x93A1, 0x85E4, + 0x93A2, 0x8A0E, 0x93A3, 0x8B04, 0x93A4, 0x8C46, 0x93A5, 0x8E0F, + 0x93A6, 0x9003, 0x93A7, 0x900F, 0x93A8, 0x9419, 0x93A9, 0x9676, + 0x93AA, 0x982D, 0x93AB, 0x9A30, 0x93AC, 0x95D8, 0x93AD, 0x50CD, + 0x93AE, 0x52D5, 0x93AF, 0x540C, 0x93B0, 0x5802, 0x93B1, 0x5C0E, + 0x93B2, 0x61A7, 0x93B3, 0x649E, 0x93B4, 0x6D1E, 0x93B5, 0x77B3, + 0x93B6, 0x7AE5, 0x93B7, 0x80F4, 0x93B8, 0x8404, 0x93B9, 0x9053, + 0x93BA, 0x9285, 0x93BB, 0x5CE0, 0x93BC, 0x9D07, 0x93BD, 0x533F, + 0x93BE, 0x5F97, 0x93BF, 0x5FB3, 0x93C0, 0x6D9C, 0x93C1, 0x7279, + 0x93C2, 0x7763, 0x93C3, 0x79BF, 0x93C4, 0x7BE4, 0x93C5, 0x6BD2, + 0x93C6, 0x72EC, 0x93C7, 0x8AAD, 0x93C8, 0x6803, 0x93C9, 0x6A61, + 0x93CA, 0x51F8, 0x93CB, 0x7A81, 0x93CC, 0x6934, 0x93CD, 0x5C4A, + 0x93CE, 0x9CF6, 0x93CF, 0x82EB, 0x93D0, 0x5BC5, 0x93D1, 0x9149, + 0x93D2, 0x701E, 0x93D3, 0x5678, 0x93D4, 0x5C6F, 0x93D5, 0x60C7, + 0x93D6, 0x6566, 0x93D7, 0x6C8C, 0x93D8, 0x8C5A, 0x93D9, 0x9041, + 0x93DA, 0x9813, 0x93DB, 0x5451, 0x93DC, 0x66C7, 0x93DD, 0x920D, + 0x93DE, 0x5948, 0x93DF, 0x90A3, 0x93E0, 0x5185, 0x93E1, 0x4E4D, + 0x93E2, 0x51EA, 0x93E3, 0x8599, 0x93E4, 0x8B0E, 0x93E5, 0x7058, + 0x93E6, 0x637A, 0x93E7, 0x934B, 0x93E8, 0x6962, 0x93E9, 0x99B4, + 0x93EA, 0x7E04, 0x93EB, 0x7577, 0x93EC, 0x5357, 0x93ED, 0x6960, + 0x93EE, 0x8EDF, 0x93EF, 0x96E3, 0x93F0, 0x6C5D, 0x93F1, 0x4E8C, + 0x93F2, 0x5C3C, 0x93F3, 0x5F10, 0x93F4, 0x8FE9, 0x93F5, 0x5302, + 0x93F6, 0x8CD1, 0x93F7, 0x8089, 0x93F8, 0x8679, 0x93F9, 0x5EFF, + 0x93FA, 0x65E5, 0x93FB, 0x4E73, 0x93FC, 0x5165, 0x9440, 0x5982, + 0x9441, 0x5C3F, 0x9442, 0x97EE, 0x9443, 0x4EFB, 0x9444, 0x598A, + 0x9445, 0x5FCD, 0x9446, 0x8A8D, 0x9447, 0x6FE1, 0x9448, 0x79B0, + 0x9449, 0x7962, 0x944A, 0x5BE7, 0x944B, 0x8471, 0x944C, 0x732B, + 0x944D, 0x71B1, 0x944E, 0x5E74, 0x944F, 0x5FF5, 0x9450, 0x637B, + 0x9451, 0x649A, 0x9452, 0x71C3, 0x9453, 0x7C98, 0x9454, 0x4E43, + 0x9455, 0x5EFC, 0x9456, 0x4E4B, 0x9457, 0x57DC, 0x9458, 0x56A2, + 0x9459, 0x60A9, 0x945A, 0x6FC3, 0x945B, 0x7D0D, 0x945C, 0x80FD, + 0x945D, 0x8133, 0x945E, 0x81BF, 0x945F, 0x8FB2, 0x9460, 0x8997, + 0x9461, 0x86A4, 0x9462, 0x5DF4, 0x9463, 0x628A, 0x9464, 0x64AD, + 0x9465, 0x8987, 0x9466, 0x6777, 0x9467, 0x6CE2, 0x9468, 0x6D3E, + 0x9469, 0x7436, 0x946A, 0x7834, 0x946B, 0x5A46, 0x946C, 0x7F75, + 0x946D, 0x82AD, 0x946E, 0x99AC, 0x946F, 0x4FF3, 0x9470, 0x5EC3, + 0x9471, 0x62DD, 0x9472, 0x6392, 0x9473, 0x6557, 0x9474, 0x676F, + 0x9475, 0x76C3, 0x9476, 0x724C, 0x9477, 0x80CC, 0x9478, 0x80BA, + 0x9479, 0x8F29, 0x947A, 0x914D, 0x947B, 0x500D, 0x947C, 0x57F9, + 0x947D, 0x5A92, 0x947E, 0x6885, 0x9480, 0x6973, 0x9481, 0x7164, + 0x9482, 0x72FD, 0x9483, 0x8CB7, 0x9484, 0x58F2, 0x9485, 0x8CE0, + 0x9486, 0x966A, 0x9487, 0x9019, 0x9488, 0x877F, 0x9489, 0x79E4, + 0x948A, 0x77E7, 0x948B, 0x8429, 0x948C, 0x4F2F, 0x948D, 0x5265, + 0x948E, 0x535A, 0x948F, 0x62CD, 0x9490, 0x67CF, 0x9491, 0x6CCA, + 0x9492, 0x767D, 0x9493, 0x7B94, 0x9494, 0x7C95, 0x9495, 0x8236, + 0x9496, 0x8584, 0x9497, 0x8FEB, 0x9498, 0x66DD, 0x9499, 0x6F20, + 0x949A, 0x7206, 0x949B, 0x7E1B, 0x949C, 0x83AB, 0x949D, 0x99C1, + 0x949E, 0x9EA6, 0x949F, 0x51FD, 0x94A0, 0x7BB1, 0x94A1, 0x7872, + 0x94A2, 0x7BB8, 0x94A3, 0x8087, 0x94A4, 0x7B48, 0x94A5, 0x6AE8, + 0x94A6, 0x5E61, 0x94A7, 0x808C, 0x94A8, 0x7551, 0x94A9, 0x7560, + 0x94AA, 0x516B, 0x94AB, 0x9262, 0x94AC, 0x6E8C, 0x94AD, 0x767A, + 0x94AE, 0x9197, 0x94AF, 0x9AEA, 0x94B0, 0x4F10, 0x94B1, 0x7F70, + 0x94B2, 0x629C, 0x94B3, 0x7B4F, 0x94B4, 0x95A5, 0x94B5, 0x9CE9, + 0x94B6, 0x567A, 0x94B7, 0x5859, 0x94B8, 0x86E4, 0x94B9, 0x96BC, + 0x94BA, 0x4F34, 0x94BB, 0x5224, 0x94BC, 0x534A, 0x94BD, 0x53CD, + 0x94BE, 0x53DB, 0x94BF, 0x5E06, 0x94C0, 0x642C, 0x94C1, 0x6591, + 0x94C2, 0x677F, 0x94C3, 0x6C3E, 0x94C4, 0x6C4E, 0x94C5, 0x7248, + 0x94C6, 0x72AF, 0x94C7, 0x73ED, 0x94C8, 0x7554, 0x94C9, 0x7E41, + 0x94CA, 0x822C, 0x94CB, 0x85E9, 0x94CC, 0x8CA9, 0x94CD, 0x7BC4, + 0x94CE, 0x91C6, 0x94CF, 0x7169, 0x94D0, 0x9812, 0x94D1, 0x98EF, + 0x94D2, 0x633D, 0x94D3, 0x6669, 0x94D4, 0x756A, 0x94D5, 0x76E4, + 0x94D6, 0x78D0, 0x94D7, 0x8543, 0x94D8, 0x86EE, 0x94D9, 0x532A, + 0x94DA, 0x5351, 0x94DB, 0x5426, 0x94DC, 0x5983, 0x94DD, 0x5E87, + 0x94DE, 0x5F7C, 0x94DF, 0x60B2, 0x94E0, 0x6249, 0x94E1, 0x6279, + 0x94E2, 0x62AB, 0x94E3, 0x6590, 0x94E4, 0x6BD4, 0x94E5, 0x6CCC, + 0x94E6, 0x75B2, 0x94E7, 0x76AE, 0x94E8, 0x7891, 0x94E9, 0x79D8, + 0x94EA, 0x7DCB, 0x94EB, 0x7F77, 0x94EC, 0x80A5, 0x94ED, 0x88AB, + 0x94EE, 0x8AB9, 0x94EF, 0x8CBB, 0x94F0, 0x907F, 0x94F1, 0x975E, + 0x94F2, 0x98DB, 0x94F3, 0x6A0B, 0x94F4, 0x7C38, 0x94F5, 0x5099, + 0x94F6, 0x5C3E, 0x94F7, 0x5FAE, 0x94F8, 0x6787, 0x94F9, 0x6BD8, + 0x94FA, 0x7435, 0x94FB, 0x7709, 0x94FC, 0x7F8E, 0x9540, 0x9F3B, + 0x9541, 0x67CA, 0x9542, 0x7A17, 0x9543, 0x5339, 0x9544, 0x758B, + 0x9545, 0x9AED, 0x9546, 0x5F66, 0x9547, 0x819D, 0x9548, 0x83F1, + 0x9549, 0x8098, 0x954A, 0x5F3C, 0x954B, 0x5FC5, 0x954C, 0x7562, + 0x954D, 0x7B46, 0x954E, 0x903C, 0x954F, 0x6867, 0x9550, 0x59EB, + 0x9551, 0x5A9B, 0x9552, 0x7D10, 0x9553, 0x767E, 0x9554, 0x8B2C, + 0x9555, 0x4FF5, 0x9556, 0x5F6A, 0x9557, 0x6A19, 0x9558, 0x6C37, + 0x9559, 0x6F02, 0x955A, 0x74E2, 0x955B, 0x7968, 0x955C, 0x8868, + 0x955D, 0x8A55, 0x955E, 0x8C79, 0x955F, 0x5EDF, 0x9560, 0x63CF, + 0x9561, 0x75C5, 0x9562, 0x79D2, 0x9563, 0x82D7, 0x9564, 0x9328, + 0x9565, 0x92F2, 0x9566, 0x849C, 0x9567, 0x86ED, 0x9568, 0x9C2D, + 0x9569, 0x54C1, 0x956A, 0x5F6C, 0x956B, 0x658C, 0x956C, 0x6D5C, + 0x956D, 0x7015, 0x956E, 0x8CA7, 0x956F, 0x8CD3, 0x9570, 0x983B, + 0x9571, 0x654F, 0x9572, 0x74F6, 0x9573, 0x4E0D, 0x9574, 0x4ED8, + 0x9575, 0x57E0, 0x9576, 0x592B, 0x9577, 0x5A66, 0x9578, 0x5BCC, + 0x9579, 0x51A8, 0x957A, 0x5E03, 0x957B, 0x5E9C, 0x957C, 0x6016, + 0x957D, 0x6276, 0x957E, 0x6577, 0x9580, 0x65A7, 0x9581, 0x666E, + 0x9582, 0x6D6E, 0x9583, 0x7236, 0x9584, 0x7B26, 0x9585, 0x8150, + 0x9586, 0x819A, 0x9587, 0x8299, 0x9588, 0x8B5C, 0x9589, 0x8CA0, + 0x958A, 0x8CE6, 0x958B, 0x8D74, 0x958C, 0x961C, 0x958D, 0x9644, + 0x958E, 0x4FAE, 0x958F, 0x64AB, 0x9590, 0x6B66, 0x9591, 0x821E, + 0x9592, 0x8461, 0x9593, 0x856A, 0x9594, 0x90E8, 0x9595, 0x5C01, + 0x9596, 0x6953, 0x9597, 0x98A8, 0x9598, 0x847A, 0x9599, 0x8557, + 0x959A, 0x4F0F, 0x959B, 0x526F, 0x959C, 0x5FA9, 0x959D, 0x5E45, + 0x959E, 0x670D, 0x959F, 0x798F, 0x95A0, 0x8179, 0x95A1, 0x8907, + 0x95A2, 0x8986, 0x95A3, 0x6DF5, 0x95A4, 0x5F17, 0x95A5, 0x6255, + 0x95A6, 0x6CB8, 0x95A7, 0x4ECF, 0x95A8, 0x7269, 0x95A9, 0x9B92, + 0x95AA, 0x5206, 0x95AB, 0x543B, 0x95AC, 0x5674, 0x95AD, 0x58B3, + 0x95AE, 0x61A4, 0x95AF, 0x626E, 0x95B0, 0x711A, 0x95B1, 0x596E, + 0x95B2, 0x7C89, 0x95B3, 0x7CDE, 0x95B4, 0x7D1B, 0x95B5, 0x96F0, + 0x95B6, 0x6587, 0x95B7, 0x805E, 0x95B8, 0x4E19, 0x95B9, 0x4F75, + 0x95BA, 0x5175, 0x95BB, 0x5840, 0x95BC, 0x5E63, 0x95BD, 0x5E73, + 0x95BE, 0x5F0A, 0x95BF, 0x67C4, 0x95C0, 0x4E26, 0x95C1, 0x853D, + 0x95C2, 0x9589, 0x95C3, 0x965B, 0x95C4, 0x7C73, 0x95C5, 0x9801, + 0x95C6, 0x50FB, 0x95C7, 0x58C1, 0x95C8, 0x7656, 0x95C9, 0x78A7, + 0x95CA, 0x5225, 0x95CB, 0x77A5, 0x95CC, 0x8511, 0x95CD, 0x7B86, + 0x95CE, 0x504F, 0x95CF, 0x5909, 0x95D0, 0x7247, 0x95D1, 0x7BC7, + 0x95D2, 0x7DE8, 0x95D3, 0x8FBA, 0x95D4, 0x8FD4, 0x95D5, 0x904D, + 0x95D6, 0x4FBF, 0x95D7, 0x52C9, 0x95D8, 0x5A29, 0x95D9, 0x5F01, + 0x95DA, 0x97AD, 0x95DB, 0x4FDD, 0x95DC, 0x8217, 0x95DD, 0x92EA, + 0x95DE, 0x5703, 0x95DF, 0x6355, 0x95E0, 0x6B69, 0x95E1, 0x752B, + 0x95E2, 0x88DC, 0x95E3, 0x8F14, 0x95E4, 0x7A42, 0x95E5, 0x52DF, + 0x95E6, 0x5893, 0x95E7, 0x6155, 0x95E8, 0x620A, 0x95E9, 0x66AE, + 0x95EA, 0x6BCD, 0x95EB, 0x7C3F, 0x95EC, 0x83E9, 0x95ED, 0x5023, + 0x95EE, 0x4FF8, 0x95EF, 0x5305, 0x95F0, 0x5446, 0x95F1, 0x5831, + 0x95F2, 0x5949, 0x95F3, 0x5B9D, 0x95F4, 0x5CF0, 0x95F5, 0x5CEF, + 0x95F6, 0x5D29, 0x95F7, 0x5E96, 0x95F8, 0x62B1, 0x95F9, 0x6367, + 0x95FA, 0x653E, 0x95FB, 0x65B9, 0x95FC, 0x670B, 0x9640, 0x6CD5, + 0x9641, 0x6CE1, 0x9642, 0x70F9, 0x9643, 0x7832, 0x9644, 0x7E2B, + 0x9645, 0x80DE, 0x9646, 0x82B3, 0x9647, 0x840C, 0x9648, 0x84EC, + 0x9649, 0x8702, 0x964A, 0x8912, 0x964B, 0x8A2A, 0x964C, 0x8C4A, + 0x964D, 0x90A6, 0x964E, 0x92D2, 0x964F, 0x98FD, 0x9650, 0x9CF3, + 0x9651, 0x9D6C, 0x9652, 0x4E4F, 0x9653, 0x4EA1, 0x9654, 0x508D, + 0x9655, 0x5256, 0x9656, 0x574A, 0x9657, 0x59A8, 0x9658, 0x5E3D, + 0x9659, 0x5FD8, 0x965A, 0x5FD9, 0x965B, 0x623F, 0x965C, 0x66B4, + 0x965D, 0x671B, 0x965E, 0x67D0, 0x965F, 0x68D2, 0x9660, 0x5192, + 0x9661, 0x7D21, 0x9662, 0x80AA, 0x9663, 0x81A8, 0x9664, 0x8B00, + 0x9665, 0x8C8C, 0x9666, 0x8CBF, 0x9667, 0x927E, 0x9668, 0x9632, + 0x9669, 0x5420, 0x966A, 0x982C, 0x966B, 0x5317, 0x966C, 0x50D5, + 0x966D, 0x535C, 0x966E, 0x58A8, 0x966F, 0x64B2, 0x9670, 0x6734, + 0x9671, 0x7267, 0x9672, 0x7766, 0x9673, 0x7A46, 0x9674, 0x91E6, + 0x9675, 0x52C3, 0x9676, 0x6CA1, 0x9677, 0x6B86, 0x9678, 0x5800, + 0x9679, 0x5E4C, 0x967A, 0x5954, 0x967B, 0x672C, 0x967C, 0x7FFB, + 0x967D, 0x51E1, 0x967E, 0x76C6, 0x9680, 0x6469, 0x9681, 0x78E8, + 0x9682, 0x9B54, 0x9683, 0x9EBB, 0x9684, 0x57CB, 0x9685, 0x59B9, + 0x9686, 0x6627, 0x9687, 0x679A, 0x9688, 0x6BCE, 0x9689, 0x54E9, + 0x968A, 0x69D9, 0x968B, 0x5E55, 0x968C, 0x819C, 0x968D, 0x6795, + 0x968E, 0x9BAA, 0x968F, 0x67FE, 0x9690, 0x9C52, 0x9691, 0x685D, + 0x9692, 0x4EA6, 0x9693, 0x4FE3, 0x9694, 0x53C8, 0x9695, 0x62B9, + 0x9696, 0x672B, 0x9697, 0x6CAB, 0x9698, 0x8FC4, 0x9699, 0x4FAD, + 0x969A, 0x7E6D, 0x969B, 0x9EBF, 0x969C, 0x4E07, 0x969D, 0x6162, + 0x969E, 0x6E80, 0x969F, 0x6F2B, 0x96A0, 0x8513, 0x96A1, 0x5473, + 0x96A2, 0x672A, 0x96A3, 0x9B45, 0x96A4, 0x5DF3, 0x96A5, 0x7B95, + 0x96A6, 0x5CAC, 0x96A7, 0x5BC6, 0x96A8, 0x871C, 0x96A9, 0x6E4A, + 0x96AA, 0x84D1, 0x96AB, 0x7A14, 0x96AC, 0x8108, 0x96AD, 0x5999, + 0x96AE, 0x7C8D, 0x96AF, 0x6C11, 0x96B0, 0x7720, 0x96B1, 0x52D9, + 0x96B2, 0x5922, 0x96B3, 0x7121, 0x96B4, 0x725F, 0x96B5, 0x77DB, + 0x96B6, 0x9727, 0x96B7, 0x9D61, 0x96B8, 0x690B, 0x96B9, 0x5A7F, + 0x96BA, 0x5A18, 0x96BB, 0x51A5, 0x96BC, 0x540D, 0x96BD, 0x547D, + 0x96BE, 0x660E, 0x96BF, 0x76DF, 0x96C0, 0x8FF7, 0x96C1, 0x9298, + 0x96C2, 0x9CF4, 0x96C3, 0x59EA, 0x96C4, 0x725D, 0x96C5, 0x6EC5, + 0x96C6, 0x514D, 0x96C7, 0x68C9, 0x96C8, 0x7DBF, 0x96C9, 0x7DEC, + 0x96CA, 0x9762, 0x96CB, 0x9EBA, 0x96CC, 0x6478, 0x96CD, 0x6A21, + 0x96CE, 0x8302, 0x96CF, 0x5984, 0x96D0, 0x5B5F, 0x96D1, 0x6BDB, + 0x96D2, 0x731B, 0x96D3, 0x76F2, 0x96D4, 0x7DB2, 0x96D5, 0x8017, + 0x96D6, 0x8499, 0x96D7, 0x5132, 0x96D8, 0x6728, 0x96D9, 0x9ED9, + 0x96DA, 0x76EE, 0x96DB, 0x6762, 0x96DC, 0x52FF, 0x96DD, 0x9905, + 0x96DE, 0x5C24, 0x96DF, 0x623B, 0x96E0, 0x7C7E, 0x96E1, 0x8CB0, + 0x96E2, 0x554F, 0x96E3, 0x60B6, 0x96E4, 0x7D0B, 0x96E5, 0x9580, + 0x96E6, 0x5301, 0x96E7, 0x4E5F, 0x96E8, 0x51B6, 0x96E9, 0x591C, + 0x96EA, 0x723A, 0x96EB, 0x8036, 0x96EC, 0x91CE, 0x96ED, 0x5F25, + 0x96EE, 0x77E2, 0x96EF, 0x5384, 0x96F0, 0x5F79, 0x96F1, 0x7D04, + 0x96F2, 0x85AC, 0x96F3, 0x8A33, 0x96F4, 0x8E8D, 0x96F5, 0x9756, + 0x96F6, 0x67F3, 0x96F7, 0x85AE, 0x96F8, 0x9453, 0x96F9, 0x6109, + 0x96FA, 0x6108, 0x96FB, 0x6CB9, 0x96FC, 0x7652, 0x9740, 0x8AED, + 0x9741, 0x8F38, 0x9742, 0x552F, 0x9743, 0x4F51, 0x9744, 0x512A, + 0x9745, 0x52C7, 0x9746, 0x53CB, 0x9747, 0x5BA5, 0x9748, 0x5E7D, + 0x9749, 0x60A0, 0x974A, 0x6182, 0x974B, 0x63D6, 0x974C, 0x6709, + 0x974D, 0x67DA, 0x974E, 0x6E67, 0x974F, 0x6D8C, 0x9750, 0x7336, + 0x9751, 0x7337, 0x9752, 0x7531, 0x9753, 0x7950, 0x9754, 0x88D5, + 0x9755, 0x8A98, 0x9756, 0x904A, 0x9757, 0x9091, 0x9758, 0x90F5, + 0x9759, 0x96C4, 0x975A, 0x878D, 0x975B, 0x5915, 0x975C, 0x4E88, + 0x975D, 0x4F59, 0x975E, 0x4E0E, 0x975F, 0x8A89, 0x9760, 0x8F3F, + 0x9761, 0x9810, 0x9762, 0x50AD, 0x9763, 0x5E7C, 0x9764, 0x5996, + 0x9765, 0x5BB9, 0x9766, 0x5EB8, 0x9767, 0x63DA, 0x9768, 0x63FA, + 0x9769, 0x64C1, 0x976A, 0x66DC, 0x976B, 0x694A, 0x976C, 0x69D8, + 0x976D, 0x6D0B, 0x976E, 0x6EB6, 0x976F, 0x7194, 0x9770, 0x7528, + 0x9771, 0x7AAF, 0x9772, 0x7F8A, 0x9773, 0x8000, 0x9774, 0x8449, + 0x9775, 0x84C9, 0x9776, 0x8981, 0x9777, 0x8B21, 0x9778, 0x8E0A, + 0x9779, 0x9065, 0x977A, 0x967D, 0x977B, 0x990A, 0x977C, 0x617E, + 0x977D, 0x6291, 0x977E, 0x6B32, 0x9780, 0x6C83, 0x9781, 0x6D74, + 0x9782, 0x7FCC, 0x9783, 0x7FFC, 0x9784, 0x6DC0, 0x9785, 0x7F85, + 0x9786, 0x87BA, 0x9787, 0x88F8, 0x9788, 0x6765, 0x9789, 0x83B1, + 0x978A, 0x983C, 0x978B, 0x96F7, 0x978C, 0x6D1B, 0x978D, 0x7D61, + 0x978E, 0x843D, 0x978F, 0x916A, 0x9790, 0x4E71, 0x9791, 0x5375, + 0x9792, 0x5D50, 0x9793, 0x6B04, 0x9794, 0x6FEB, 0x9795, 0x85CD, + 0x9796, 0x862D, 0x9797, 0x89A7, 0x9798, 0x5229, 0x9799, 0x540F, + 0x979A, 0x5C65, 0x979B, 0x674E, 0x979C, 0x68A8, 0x979D, 0x7406, + 0x979E, 0x7483, 0x979F, 0x75E2, 0x97A0, 0x88CF, 0x97A1, 0x88E1, + 0x97A2, 0x91CC, 0x97A3, 0x96E2, 0x97A4, 0x9678, 0x97A5, 0x5F8B, + 0x97A6, 0x7387, 0x97A7, 0x7ACB, 0x97A8, 0x844E, 0x97A9, 0x63A0, + 0x97AA, 0x7565, 0x97AB, 0x5289, 0x97AC, 0x6D41, 0x97AD, 0x6E9C, + 0x97AE, 0x7409, 0x97AF, 0x7559, 0x97B0, 0x786B, 0x97B1, 0x7C92, + 0x97B2, 0x9686, 0x97B3, 0x7ADC, 0x97B4, 0x9F8D, 0x97B5, 0x4FB6, + 0x97B6, 0x616E, 0x97B7, 0x65C5, 0x97B8, 0x865C, 0x97B9, 0x4E86, + 0x97BA, 0x4EAE, 0x97BB, 0x50DA, 0x97BC, 0x4E21, 0x97BD, 0x51CC, + 0x97BE, 0x5BEE, 0x97BF, 0x6599, 0x97C0, 0x6881, 0x97C1, 0x6DBC, + 0x97C2, 0x731F, 0x97C3, 0x7642, 0x97C4, 0x77AD, 0x97C5, 0x7A1C, + 0x97C6, 0x7CE7, 0x97C7, 0x826F, 0x97C8, 0x8AD2, 0x97C9, 0x907C, + 0x97CA, 0x91CF, 0x97CB, 0x9675, 0x97CC, 0x9818, 0x97CD, 0x529B, + 0x97CE, 0x7DD1, 0x97CF, 0x502B, 0x97D0, 0x5398, 0x97D1, 0x6797, + 0x97D2, 0x6DCB, 0x97D3, 0x71D0, 0x97D4, 0x7433, 0x97D5, 0x81E8, + 0x97D6, 0x8F2A, 0x97D7, 0x96A3, 0x97D8, 0x9C57, 0x97D9, 0x9E9F, + 0x97DA, 0x7460, 0x97DB, 0x5841, 0x97DC, 0x6D99, 0x97DD, 0x7D2F, + 0x97DE, 0x985E, 0x97DF, 0x4EE4, 0x97E0, 0x4F36, 0x97E1, 0x4F8B, + 0x97E2, 0x51B7, 0x97E3, 0x52B1, 0x97E4, 0x5DBA, 0x97E5, 0x601C, + 0x97E6, 0x73B2, 0x97E7, 0x793C, 0x97E8, 0x82D3, 0x97E9, 0x9234, + 0x97EA, 0x96B7, 0x97EB, 0x96F6, 0x97EC, 0x970A, 0x97ED, 0x9E97, + 0x97EE, 0x9F62, 0x97EF, 0x66A6, 0x97F0, 0x6B74, 0x97F1, 0x5217, + 0x97F2, 0x52A3, 0x97F3, 0x70C8, 0x97F4, 0x88C2, 0x97F5, 0x5EC9, + 0x97F6, 0x604B, 0x97F7, 0x6190, 0x97F8, 0x6F23, 0x97F9, 0x7149, + 0x97FA, 0x7C3E, 0x97FB, 0x7DF4, 0x97FC, 0x806F, 0x9840, 0x84EE, + 0x9841, 0x9023, 0x9842, 0x932C, 0x9843, 0x5442, 0x9844, 0x9B6F, + 0x9845, 0x6AD3, 0x9846, 0x7089, 0x9847, 0x8CC2, 0x9848, 0x8DEF, + 0x9849, 0x9732, 0x984A, 0x52B4, 0x984B, 0x5A41, 0x984C, 0x5ECA, + 0x984D, 0x5F04, 0x984E, 0x6717, 0x984F, 0x697C, 0x9850, 0x6994, + 0x9851, 0x6D6A, 0x9852, 0x6F0F, 0x9853, 0x7262, 0x9854, 0x72FC, + 0x9855, 0x7BED, 0x9856, 0x8001, 0x9857, 0x807E, 0x9858, 0x874B, + 0x9859, 0x90CE, 0x985A, 0x516D, 0x985B, 0x9E93, 0x985C, 0x7984, + 0x985D, 0x808B, 0x985E, 0x9332, 0x985F, 0x8AD6, 0x9860, 0x502D, + 0x9861, 0x548C, 0x9862, 0x8A71, 0x9863, 0x6B6A, 0x9864, 0x8CC4, + 0x9865, 0x8107, 0x9866, 0x60D1, 0x9867, 0x67A0, 0x9868, 0x9DF2, + 0x9869, 0x4E99, 0x986A, 0x4E98, 0x986B, 0x9C10, 0x986C, 0x8A6B, + 0x986D, 0x85C1, 0x986E, 0x8568, 0x986F, 0x6900, 0x9870, 0x6E7E, + 0x9871, 0x7897, 0x9872, 0x8155, 0x989F, 0x5F0C, 0x98A0, 0x4E10, + 0x98A1, 0x4E15, 0x98A2, 0x4E2A, 0x98A3, 0x4E31, 0x98A4, 0x4E36, + 0x98A5, 0x4E3C, 0x98A6, 0x4E3F, 0x98A7, 0x4E42, 0x98A8, 0x4E56, + 0x98A9, 0x4E58, 0x98AA, 0x4E82, 0x98AB, 0x4E85, 0x98AC, 0x8C6B, + 0x98AD, 0x4E8A, 0x98AE, 0x8212, 0x98AF, 0x5F0D, 0x98B0, 0x4E8E, + 0x98B1, 0x4E9E, 0x98B2, 0x4E9F, 0x98B3, 0x4EA0, 0x98B4, 0x4EA2, + 0x98B5, 0x4EB0, 0x98B6, 0x4EB3, 0x98B7, 0x4EB6, 0x98B8, 0x4ECE, + 0x98B9, 0x4ECD, 0x98BA, 0x4EC4, 0x98BB, 0x4EC6, 0x98BC, 0x4EC2, + 0x98BD, 0x4ED7, 0x98BE, 0x4EDE, 0x98BF, 0x4EED, 0x98C0, 0x4EDF, + 0x98C1, 0x4EF7, 0x98C2, 0x4F09, 0x98C3, 0x4F5A, 0x98C4, 0x4F30, + 0x98C5, 0x4F5B, 0x98C6, 0x4F5D, 0x98C7, 0x4F57, 0x98C8, 0x4F47, + 0x98C9, 0x4F76, 0x98CA, 0x4F88, 0x98CB, 0x4F8F, 0x98CC, 0x4F98, + 0x98CD, 0x4F7B, 0x98CE, 0x4F69, 0x98CF, 0x4F70, 0x98D0, 0x4F91, + 0x98D1, 0x4F6F, 0x98D2, 0x4F86, 0x98D3, 0x4F96, 0x98D4, 0x5118, + 0x98D5, 0x4FD4, 0x98D6, 0x4FDF, 0x98D7, 0x4FCE, 0x98D8, 0x4FD8, + 0x98D9, 0x4FDB, 0x98DA, 0x4FD1, 0x98DB, 0x4FDA, 0x98DC, 0x4FD0, + 0x98DD, 0x4FE4, 0x98DE, 0x4FE5, 0x98DF, 0x501A, 0x98E0, 0x5028, + 0x98E1, 0x5014, 0x98E2, 0x502A, 0x98E3, 0x5025, 0x98E4, 0x5005, + 0x98E5, 0x4F1C, 0x98E6, 0x4FF6, 0x98E7, 0x5021, 0x98E8, 0x5029, + 0x98E9, 0x502C, 0x98EA, 0x4FFE, 0x98EB, 0x4FEF, 0x98EC, 0x5011, + 0x98ED, 0x5006, 0x98EE, 0x5043, 0x98EF, 0x5047, 0x98F0, 0x6703, + 0x98F1, 0x5055, 0x98F2, 0x5050, 0x98F3, 0x5048, 0x98F4, 0x505A, + 0x98F5, 0x5056, 0x98F6, 0x506C, 0x98F7, 0x5078, 0x98F8, 0x5080, + 0x98F9, 0x509A, 0x98FA, 0x5085, 0x98FB, 0x50B4, 0x98FC, 0x50B2, + 0x9940, 0x50C9, 0x9941, 0x50CA, 0x9942, 0x50B3, 0x9943, 0x50C2, + 0x9944, 0x50D6, 0x9945, 0x50DE, 0x9946, 0x50E5, 0x9947, 0x50ED, + 0x9948, 0x50E3, 0x9949, 0x50EE, 0x994A, 0x50F9, 0x994B, 0x50F5, + 0x994C, 0x5109, 0x994D, 0x5101, 0x994E, 0x5102, 0x994F, 0x5116, + 0x9950, 0x5115, 0x9951, 0x5114, 0x9952, 0x511A, 0x9953, 0x5121, + 0x9954, 0x513A, 0x9955, 0x5137, 0x9956, 0x513C, 0x9957, 0x513B, + 0x9958, 0x513F, 0x9959, 0x5140, 0x995A, 0x5152, 0x995B, 0x514C, + 0x995C, 0x5154, 0x995D, 0x5162, 0x995E, 0x7AF8, 0x995F, 0x5169, + 0x9960, 0x516A, 0x9961, 0x516E, 0x9962, 0x5180, 0x9963, 0x5182, + 0x9964, 0x56D8, 0x9965, 0x518C, 0x9966, 0x5189, 0x9967, 0x518F, + 0x9968, 0x5191, 0x9969, 0x5193, 0x996A, 0x5195, 0x996B, 0x5196, + 0x996C, 0x51A4, 0x996D, 0x51A6, 0x996E, 0x51A2, 0x996F, 0x51A9, + 0x9970, 0x51AA, 0x9971, 0x51AB, 0x9972, 0x51B3, 0x9973, 0x51B1, + 0x9974, 0x51B2, 0x9975, 0x51B0, 0x9976, 0x51B5, 0x9977, 0x51BD, + 0x9978, 0x51C5, 0x9979, 0x51C9, 0x997A, 0x51DB, 0x997B, 0x51E0, + 0x997C, 0x8655, 0x997D, 0x51E9, 0x997E, 0x51ED, 0x9980, 0x51F0, + 0x9981, 0x51F5, 0x9982, 0x51FE, 0x9983, 0x5204, 0x9984, 0x520B, + 0x9985, 0x5214, 0x9986, 0x520E, 0x9987, 0x5227, 0x9988, 0x522A, + 0x9989, 0x522E, 0x998A, 0x5233, 0x998B, 0x5239, 0x998C, 0x524F, + 0x998D, 0x5244, 0x998E, 0x524B, 0x998F, 0x524C, 0x9990, 0x525E, + 0x9991, 0x5254, 0x9992, 0x526A, 0x9993, 0x5274, 0x9994, 0x5269, + 0x9995, 0x5273, 0x9996, 0x527F, 0x9997, 0x527D, 0x9998, 0x528D, + 0x9999, 0x5294, 0x999A, 0x5292, 0x999B, 0x5271, 0x999C, 0x5288, + 0x999D, 0x5291, 0x999E, 0x8FA8, 0x999F, 0x8FA7, 0x99A0, 0x52AC, + 0x99A1, 0x52AD, 0x99A2, 0x52BC, 0x99A3, 0x52B5, 0x99A4, 0x52C1, + 0x99A5, 0x52CD, 0x99A6, 0x52D7, 0x99A7, 0x52DE, 0x99A8, 0x52E3, + 0x99A9, 0x52E6, 0x99AA, 0x98ED, 0x99AB, 0x52E0, 0x99AC, 0x52F3, + 0x99AD, 0x52F5, 0x99AE, 0x52F8, 0x99AF, 0x52F9, 0x99B0, 0x5306, + 0x99B1, 0x5308, 0x99B2, 0x7538, 0x99B3, 0x530D, 0x99B4, 0x5310, + 0x99B5, 0x530F, 0x99B6, 0x5315, 0x99B7, 0x531A, 0x99B8, 0x5323, + 0x99B9, 0x532F, 0x99BA, 0x5331, 0x99BB, 0x5333, 0x99BC, 0x5338, + 0x99BD, 0x5340, 0x99BE, 0x5346, 0x99BF, 0x5345, 0x99C0, 0x4E17, + 0x99C1, 0x5349, 0x99C2, 0x534D, 0x99C3, 0x51D6, 0x99C4, 0x535E, + 0x99C5, 0x5369, 0x99C6, 0x536E, 0x99C7, 0x5918, 0x99C8, 0x537B, + 0x99C9, 0x5377, 0x99CA, 0x5382, 0x99CB, 0x5396, 0x99CC, 0x53A0, + 0x99CD, 0x53A6, 0x99CE, 0x53A5, 0x99CF, 0x53AE, 0x99D0, 0x53B0, + 0x99D1, 0x53B6, 0x99D2, 0x53C3, 0x99D3, 0x7C12, 0x99D4, 0x96D9, + 0x99D5, 0x53DF, 0x99D6, 0x66FC, 0x99D7, 0x71EE, 0x99D8, 0x53EE, + 0x99D9, 0x53E8, 0x99DA, 0x53ED, 0x99DB, 0x53FA, 0x99DC, 0x5401, + 0x99DD, 0x543D, 0x99DE, 0x5440, 0x99DF, 0x542C, 0x99E0, 0x542D, + 0x99E1, 0x543C, 0x99E2, 0x542E, 0x99E3, 0x5436, 0x99E4, 0x5429, + 0x99E5, 0x541D, 0x99E6, 0x544E, 0x99E7, 0x548F, 0x99E8, 0x5475, + 0x99E9, 0x548E, 0x99EA, 0x545F, 0x99EB, 0x5471, 0x99EC, 0x5477, + 0x99ED, 0x5470, 0x99EE, 0x5492, 0x99EF, 0x547B, 0x99F0, 0x5480, + 0x99F1, 0x5476, 0x99F2, 0x5484, 0x99F3, 0x5490, 0x99F4, 0x5486, + 0x99F5, 0x54C7, 0x99F6, 0x54A2, 0x99F7, 0x54B8, 0x99F8, 0x54A5, + 0x99F9, 0x54AC, 0x99FA, 0x54C4, 0x99FB, 0x54C8, 0x99FC, 0x54A8, + 0x9A40, 0x54AB, 0x9A41, 0x54C2, 0x9A42, 0x54A4, 0x9A43, 0x54BE, + 0x9A44, 0x54BC, 0x9A45, 0x54D8, 0x9A46, 0x54E5, 0x9A47, 0x54E6, + 0x9A48, 0x550F, 0x9A49, 0x5514, 0x9A4A, 0x54FD, 0x9A4B, 0x54EE, + 0x9A4C, 0x54ED, 0x9A4D, 0x54FA, 0x9A4E, 0x54E2, 0x9A4F, 0x5539, + 0x9A50, 0x5540, 0x9A51, 0x5563, 0x9A52, 0x554C, 0x9A53, 0x552E, + 0x9A54, 0x555C, 0x9A55, 0x5545, 0x9A56, 0x5556, 0x9A57, 0x5557, + 0x9A58, 0x5538, 0x9A59, 0x5533, 0x9A5A, 0x555D, 0x9A5B, 0x5599, + 0x9A5C, 0x5580, 0x9A5D, 0x54AF, 0x9A5E, 0x558A, 0x9A5F, 0x559F, + 0x9A60, 0x557B, 0x9A61, 0x557E, 0x9A62, 0x5598, 0x9A63, 0x559E, + 0x9A64, 0x55AE, 0x9A65, 0x557C, 0x9A66, 0x5583, 0x9A67, 0x55A9, + 0x9A68, 0x5587, 0x9A69, 0x55A8, 0x9A6A, 0x55DA, 0x9A6B, 0x55C5, + 0x9A6C, 0x55DF, 0x9A6D, 0x55C4, 0x9A6E, 0x55DC, 0x9A6F, 0x55E4, + 0x9A70, 0x55D4, 0x9A71, 0x5614, 0x9A72, 0x55F7, 0x9A73, 0x5616, + 0x9A74, 0x55FE, 0x9A75, 0x55FD, 0x9A76, 0x561B, 0x9A77, 0x55F9, + 0x9A78, 0x564E, 0x9A79, 0x5650, 0x9A7A, 0x71DF, 0x9A7B, 0x5634, + 0x9A7C, 0x5636, 0x9A7D, 0x5632, 0x9A7E, 0x5638, 0x9A80, 0x566B, + 0x9A81, 0x5664, 0x9A82, 0x562F, 0x9A83, 0x566C, 0x9A84, 0x566A, + 0x9A85, 0x5686, 0x9A86, 0x5680, 0x9A87, 0x568A, 0x9A88, 0x56A0, + 0x9A89, 0x5694, 0x9A8A, 0x568F, 0x9A8B, 0x56A5, 0x9A8C, 0x56AE, + 0x9A8D, 0x56B6, 0x9A8E, 0x56B4, 0x9A8F, 0x56C2, 0x9A90, 0x56BC, + 0x9A91, 0x56C1, 0x9A92, 0x56C3, 0x9A93, 0x56C0, 0x9A94, 0x56C8, + 0x9A95, 0x56CE, 0x9A96, 0x56D1, 0x9A97, 0x56D3, 0x9A98, 0x56D7, + 0x9A99, 0x56EE, 0x9A9A, 0x56F9, 0x9A9B, 0x5700, 0x9A9C, 0x56FF, + 0x9A9D, 0x5704, 0x9A9E, 0x5709, 0x9A9F, 0x5708, 0x9AA0, 0x570B, + 0x9AA1, 0x570D, 0x9AA2, 0x5713, 0x9AA3, 0x5718, 0x9AA4, 0x5716, + 0x9AA5, 0x55C7, 0x9AA6, 0x571C, 0x9AA7, 0x5726, 0x9AA8, 0x5737, + 0x9AA9, 0x5738, 0x9AAA, 0x574E, 0x9AAB, 0x573B, 0x9AAC, 0x5740, + 0x9AAD, 0x574F, 0x9AAE, 0x5769, 0x9AAF, 0x57C0, 0x9AB0, 0x5788, + 0x9AB1, 0x5761, 0x9AB2, 0x577F, 0x9AB3, 0x5789, 0x9AB4, 0x5793, + 0x9AB5, 0x57A0, 0x9AB6, 0x57B3, 0x9AB7, 0x57A4, 0x9AB8, 0x57AA, + 0x9AB9, 0x57B0, 0x9ABA, 0x57C3, 0x9ABB, 0x57C6, 0x9ABC, 0x57D4, + 0x9ABD, 0x57D2, 0x9ABE, 0x57D3, 0x9ABF, 0x580A, 0x9AC0, 0x57D6, + 0x9AC1, 0x57E3, 0x9AC2, 0x580B, 0x9AC3, 0x5819, 0x9AC4, 0x581D, + 0x9AC5, 0x5872, 0x9AC6, 0x5821, 0x9AC7, 0x5862, 0x9AC8, 0x584B, + 0x9AC9, 0x5870, 0x9ACA, 0x6BC0, 0x9ACB, 0x5852, 0x9ACC, 0x583D, + 0x9ACD, 0x5879, 0x9ACE, 0x5885, 0x9ACF, 0x58B9, 0x9AD0, 0x589F, + 0x9AD1, 0x58AB, 0x9AD2, 0x58BA, 0x9AD3, 0x58DE, 0x9AD4, 0x58BB, + 0x9AD5, 0x58B8, 0x9AD6, 0x58AE, 0x9AD7, 0x58C5, 0x9AD8, 0x58D3, + 0x9AD9, 0x58D1, 0x9ADA, 0x58D7, 0x9ADB, 0x58D9, 0x9ADC, 0x58D8, + 0x9ADD, 0x58E5, 0x9ADE, 0x58DC, 0x9ADF, 0x58E4, 0x9AE0, 0x58DF, + 0x9AE1, 0x58EF, 0x9AE2, 0x58FA, 0x9AE3, 0x58F9, 0x9AE4, 0x58FB, + 0x9AE5, 0x58FC, 0x9AE6, 0x58FD, 0x9AE7, 0x5902, 0x9AE8, 0x590A, + 0x9AE9, 0x5910, 0x9AEA, 0x591B, 0x9AEB, 0x68A6, 0x9AEC, 0x5925, + 0x9AED, 0x592C, 0x9AEE, 0x592D, 0x9AEF, 0x5932, 0x9AF0, 0x5938, + 0x9AF1, 0x593E, 0x9AF2, 0x7AD2, 0x9AF3, 0x5955, 0x9AF4, 0x5950, + 0x9AF5, 0x594E, 0x9AF6, 0x595A, 0x9AF7, 0x5958, 0x9AF8, 0x5962, + 0x9AF9, 0x5960, 0x9AFA, 0x5967, 0x9AFB, 0x596C, 0x9AFC, 0x5969, + 0x9B40, 0x5978, 0x9B41, 0x5981, 0x9B42, 0x599D, 0x9B43, 0x4F5E, + 0x9B44, 0x4FAB, 0x9B45, 0x59A3, 0x9B46, 0x59B2, 0x9B47, 0x59C6, + 0x9B48, 0x59E8, 0x9B49, 0x59DC, 0x9B4A, 0x598D, 0x9B4B, 0x59D9, + 0x9B4C, 0x59DA, 0x9B4D, 0x5A25, 0x9B4E, 0x5A1F, 0x9B4F, 0x5A11, + 0x9B50, 0x5A1C, 0x9B51, 0x5A09, 0x9B52, 0x5A1A, 0x9B53, 0x5A40, + 0x9B54, 0x5A6C, 0x9B55, 0x5A49, 0x9B56, 0x5A35, 0x9B57, 0x5A36, + 0x9B58, 0x5A62, 0x9B59, 0x5A6A, 0x9B5A, 0x5A9A, 0x9B5B, 0x5ABC, + 0x9B5C, 0x5ABE, 0x9B5D, 0x5ACB, 0x9B5E, 0x5AC2, 0x9B5F, 0x5ABD, + 0x9B60, 0x5AE3, 0x9B61, 0x5AD7, 0x9B62, 0x5AE6, 0x9B63, 0x5AE9, + 0x9B64, 0x5AD6, 0x9B65, 0x5AFA, 0x9B66, 0x5AFB, 0x9B67, 0x5B0C, + 0x9B68, 0x5B0B, 0x9B69, 0x5B16, 0x9B6A, 0x5B32, 0x9B6B, 0x5AD0, + 0x9B6C, 0x5B2A, 0x9B6D, 0x5B36, 0x9B6E, 0x5B3E, 0x9B6F, 0x5B43, + 0x9B70, 0x5B45, 0x9B71, 0x5B40, 0x9B72, 0x5B51, 0x9B73, 0x5B55, + 0x9B74, 0x5B5A, 0x9B75, 0x5B5B, 0x9B76, 0x5B65, 0x9B77, 0x5B69, + 0x9B78, 0x5B70, 0x9B79, 0x5B73, 0x9B7A, 0x5B75, 0x9B7B, 0x5B78, + 0x9B7C, 0x6588, 0x9B7D, 0x5B7A, 0x9B7E, 0x5B80, 0x9B80, 0x5B83, + 0x9B81, 0x5BA6, 0x9B82, 0x5BB8, 0x9B83, 0x5BC3, 0x9B84, 0x5BC7, + 0x9B85, 0x5BC9, 0x9B86, 0x5BD4, 0x9B87, 0x5BD0, 0x9B88, 0x5BE4, + 0x9B89, 0x5BE6, 0x9B8A, 0x5BE2, 0x9B8B, 0x5BDE, 0x9B8C, 0x5BE5, + 0x9B8D, 0x5BEB, 0x9B8E, 0x5BF0, 0x9B8F, 0x5BF6, 0x9B90, 0x5BF3, + 0x9B91, 0x5C05, 0x9B92, 0x5C07, 0x9B93, 0x5C08, 0x9B94, 0x5C0D, + 0x9B95, 0x5C13, 0x9B96, 0x5C20, 0x9B97, 0x5C22, 0x9B98, 0x5C28, + 0x9B99, 0x5C38, 0x9B9A, 0x5C39, 0x9B9B, 0x5C41, 0x9B9C, 0x5C46, + 0x9B9D, 0x5C4E, 0x9B9E, 0x5C53, 0x9B9F, 0x5C50, 0x9BA0, 0x5C4F, + 0x9BA1, 0x5B71, 0x9BA2, 0x5C6C, 0x9BA3, 0x5C6E, 0x9BA4, 0x4E62, + 0x9BA5, 0x5C76, 0x9BA6, 0x5C79, 0x9BA7, 0x5C8C, 0x9BA8, 0x5C91, + 0x9BA9, 0x5C94, 0x9BAA, 0x599B, 0x9BAB, 0x5CAB, 0x9BAC, 0x5CBB, + 0x9BAD, 0x5CB6, 0x9BAE, 0x5CBC, 0x9BAF, 0x5CB7, 0x9BB0, 0x5CC5, + 0x9BB1, 0x5CBE, 0x9BB2, 0x5CC7, 0x9BB3, 0x5CD9, 0x9BB4, 0x5CE9, + 0x9BB5, 0x5CFD, 0x9BB6, 0x5CFA, 0x9BB7, 0x5CED, 0x9BB8, 0x5D8C, + 0x9BB9, 0x5CEA, 0x9BBA, 0x5D0B, 0x9BBB, 0x5D15, 0x9BBC, 0x5D17, + 0x9BBD, 0x5D5C, 0x9BBE, 0x5D1F, 0x9BBF, 0x5D1B, 0x9BC0, 0x5D11, + 0x9BC1, 0x5D14, 0x9BC2, 0x5D22, 0x9BC3, 0x5D1A, 0x9BC4, 0x5D19, + 0x9BC5, 0x5D18, 0x9BC6, 0x5D4C, 0x9BC7, 0x5D52, 0x9BC8, 0x5D4E, + 0x9BC9, 0x5D4B, 0x9BCA, 0x5D6C, 0x9BCB, 0x5D73, 0x9BCC, 0x5D76, + 0x9BCD, 0x5D87, 0x9BCE, 0x5D84, 0x9BCF, 0x5D82, 0x9BD0, 0x5DA2, + 0x9BD1, 0x5D9D, 0x9BD2, 0x5DAC, 0x9BD3, 0x5DAE, 0x9BD4, 0x5DBD, + 0x9BD5, 0x5D90, 0x9BD6, 0x5DB7, 0x9BD7, 0x5DBC, 0x9BD8, 0x5DC9, + 0x9BD9, 0x5DCD, 0x9BDA, 0x5DD3, 0x9BDB, 0x5DD2, 0x9BDC, 0x5DD6, + 0x9BDD, 0x5DDB, 0x9BDE, 0x5DEB, 0x9BDF, 0x5DF2, 0x9BE0, 0x5DF5, + 0x9BE1, 0x5E0B, 0x9BE2, 0x5E1A, 0x9BE3, 0x5E19, 0x9BE4, 0x5E11, + 0x9BE5, 0x5E1B, 0x9BE6, 0x5E36, 0x9BE7, 0x5E37, 0x9BE8, 0x5E44, + 0x9BE9, 0x5E43, 0x9BEA, 0x5E40, 0x9BEB, 0x5E4E, 0x9BEC, 0x5E57, + 0x9BED, 0x5E54, 0x9BEE, 0x5E5F, 0x9BEF, 0x5E62, 0x9BF0, 0x5E64, + 0x9BF1, 0x5E47, 0x9BF2, 0x5E75, 0x9BF3, 0x5E76, 0x9BF4, 0x5E7A, + 0x9BF5, 0x9EBC, 0x9BF6, 0x5E7F, 0x9BF7, 0x5EA0, 0x9BF8, 0x5EC1, + 0x9BF9, 0x5EC2, 0x9BFA, 0x5EC8, 0x9BFB, 0x5ED0, 0x9BFC, 0x5ECF, + 0x9C40, 0x5ED6, 0x9C41, 0x5EE3, 0x9C42, 0x5EDD, 0x9C43, 0x5EDA, + 0x9C44, 0x5EDB, 0x9C45, 0x5EE2, 0x9C46, 0x5EE1, 0x9C47, 0x5EE8, + 0x9C48, 0x5EE9, 0x9C49, 0x5EEC, 0x9C4A, 0x5EF1, 0x9C4B, 0x5EF3, + 0x9C4C, 0x5EF0, 0x9C4D, 0x5EF4, 0x9C4E, 0x5EF8, 0x9C4F, 0x5EFE, + 0x9C50, 0x5F03, 0x9C51, 0x5F09, 0x9C52, 0x5F5D, 0x9C53, 0x5F5C, + 0x9C54, 0x5F0B, 0x9C55, 0x5F11, 0x9C56, 0x5F16, 0x9C57, 0x5F29, + 0x9C58, 0x5F2D, 0x9C59, 0x5F38, 0x9C5A, 0x5F41, 0x9C5B, 0x5F48, + 0x9C5C, 0x5F4C, 0x9C5D, 0x5F4E, 0x9C5E, 0x5F2F, 0x9C5F, 0x5F51, + 0x9C60, 0x5F56, 0x9C61, 0x5F57, 0x9C62, 0x5F59, 0x9C63, 0x5F61, + 0x9C64, 0x5F6D, 0x9C65, 0x5F73, 0x9C66, 0x5F77, 0x9C67, 0x5F83, + 0x9C68, 0x5F82, 0x9C69, 0x5F7F, 0x9C6A, 0x5F8A, 0x9C6B, 0x5F88, + 0x9C6C, 0x5F91, 0x9C6D, 0x5F87, 0x9C6E, 0x5F9E, 0x9C6F, 0x5F99, + 0x9C70, 0x5F98, 0x9C71, 0x5FA0, 0x9C72, 0x5FA8, 0x9C73, 0x5FAD, + 0x9C74, 0x5FBC, 0x9C75, 0x5FD6, 0x9C76, 0x5FFB, 0x9C77, 0x5FE4, + 0x9C78, 0x5FF8, 0x9C79, 0x5FF1, 0x9C7A, 0x5FDD, 0x9C7B, 0x60B3, + 0x9C7C, 0x5FFF, 0x9C7D, 0x6021, 0x9C7E, 0x6060, 0x9C80, 0x6019, + 0x9C81, 0x6010, 0x9C82, 0x6029, 0x9C83, 0x600E, 0x9C84, 0x6031, + 0x9C85, 0x601B, 0x9C86, 0x6015, 0x9C87, 0x602B, 0x9C88, 0x6026, + 0x9C89, 0x600F, 0x9C8A, 0x603A, 0x9C8B, 0x605A, 0x9C8C, 0x6041, + 0x9C8D, 0x606A, 0x9C8E, 0x6077, 0x9C8F, 0x605F, 0x9C90, 0x604A, + 0x9C91, 0x6046, 0x9C92, 0x604D, 0x9C93, 0x6063, 0x9C94, 0x6043, + 0x9C95, 0x6064, 0x9C96, 0x6042, 0x9C97, 0x606C, 0x9C98, 0x606B, + 0x9C99, 0x6059, 0x9C9A, 0x6081, 0x9C9B, 0x608D, 0x9C9C, 0x60E7, + 0x9C9D, 0x6083, 0x9C9E, 0x609A, 0x9C9F, 0x6084, 0x9CA0, 0x609B, + 0x9CA1, 0x6096, 0x9CA2, 0x6097, 0x9CA3, 0x6092, 0x9CA4, 0x60A7, + 0x9CA5, 0x608B, 0x9CA6, 0x60E1, 0x9CA7, 0x60B8, 0x9CA8, 0x60E0, + 0x9CA9, 0x60D3, 0x9CAA, 0x60B4, 0x9CAB, 0x5FF0, 0x9CAC, 0x60BD, + 0x9CAD, 0x60C6, 0x9CAE, 0x60B5, 0x9CAF, 0x60D8, 0x9CB0, 0x614D, + 0x9CB1, 0x6115, 0x9CB2, 0x6106, 0x9CB3, 0x60F6, 0x9CB4, 0x60F7, + 0x9CB5, 0x6100, 0x9CB6, 0x60F4, 0x9CB7, 0x60FA, 0x9CB8, 0x6103, + 0x9CB9, 0x6121, 0x9CBA, 0x60FB, 0x9CBB, 0x60F1, 0x9CBC, 0x610D, + 0x9CBD, 0x610E, 0x9CBE, 0x6147, 0x9CBF, 0x613E, 0x9CC0, 0x6128, + 0x9CC1, 0x6127, 0x9CC2, 0x614A, 0x9CC3, 0x613F, 0x9CC4, 0x613C, + 0x9CC5, 0x612C, 0x9CC6, 0x6134, 0x9CC7, 0x613D, 0x9CC8, 0x6142, + 0x9CC9, 0x6144, 0x9CCA, 0x6173, 0x9CCB, 0x6177, 0x9CCC, 0x6158, + 0x9CCD, 0x6159, 0x9CCE, 0x615A, 0x9CCF, 0x616B, 0x9CD0, 0x6174, + 0x9CD1, 0x616F, 0x9CD2, 0x6165, 0x9CD3, 0x6171, 0x9CD4, 0x615F, + 0x9CD5, 0x615D, 0x9CD6, 0x6153, 0x9CD7, 0x6175, 0x9CD8, 0x6199, + 0x9CD9, 0x6196, 0x9CDA, 0x6187, 0x9CDB, 0x61AC, 0x9CDC, 0x6194, + 0x9CDD, 0x619A, 0x9CDE, 0x618A, 0x9CDF, 0x6191, 0x9CE0, 0x61AB, + 0x9CE1, 0x61AE, 0x9CE2, 0x61CC, 0x9CE3, 0x61CA, 0x9CE4, 0x61C9, + 0x9CE5, 0x61F7, 0x9CE6, 0x61C8, 0x9CE7, 0x61C3, 0x9CE8, 0x61C6, + 0x9CE9, 0x61BA, 0x9CEA, 0x61CB, 0x9CEB, 0x7F79, 0x9CEC, 0x61CD, + 0x9CED, 0x61E6, 0x9CEE, 0x61E3, 0x9CEF, 0x61F6, 0x9CF0, 0x61FA, + 0x9CF1, 0x61F4, 0x9CF2, 0x61FF, 0x9CF3, 0x61FD, 0x9CF4, 0x61FC, + 0x9CF5, 0x61FE, 0x9CF6, 0x6200, 0x9CF7, 0x6208, 0x9CF8, 0x6209, + 0x9CF9, 0x620D, 0x9CFA, 0x620C, 0x9CFB, 0x6214, 0x9CFC, 0x621B, + 0x9D40, 0x621E, 0x9D41, 0x6221, 0x9D42, 0x622A, 0x9D43, 0x622E, + 0x9D44, 0x6230, 0x9D45, 0x6232, 0x9D46, 0x6233, 0x9D47, 0x6241, + 0x9D48, 0x624E, 0x9D49, 0x625E, 0x9D4A, 0x6263, 0x9D4B, 0x625B, + 0x9D4C, 0x6260, 0x9D4D, 0x6268, 0x9D4E, 0x627C, 0x9D4F, 0x6282, + 0x9D50, 0x6289, 0x9D51, 0x627E, 0x9D52, 0x6292, 0x9D53, 0x6293, + 0x9D54, 0x6296, 0x9D55, 0x62D4, 0x9D56, 0x6283, 0x9D57, 0x6294, + 0x9D58, 0x62D7, 0x9D59, 0x62D1, 0x9D5A, 0x62BB, 0x9D5B, 0x62CF, + 0x9D5C, 0x62FF, 0x9D5D, 0x62C6, 0x9D5E, 0x64D4, 0x9D5F, 0x62C8, + 0x9D60, 0x62DC, 0x9D61, 0x62CC, 0x9D62, 0x62CA, 0x9D63, 0x62C2, + 0x9D64, 0x62C7, 0x9D65, 0x629B, 0x9D66, 0x62C9, 0x9D67, 0x630C, + 0x9D68, 0x62EE, 0x9D69, 0x62F1, 0x9D6A, 0x6327, 0x9D6B, 0x6302, + 0x9D6C, 0x6308, 0x9D6D, 0x62EF, 0x9D6E, 0x62F5, 0x9D6F, 0x6350, + 0x9D70, 0x633E, 0x9D71, 0x634D, 0x9D72, 0x641C, 0x9D73, 0x634F, + 0x9D74, 0x6396, 0x9D75, 0x638E, 0x9D76, 0x6380, 0x9D77, 0x63AB, + 0x9D78, 0x6376, 0x9D79, 0x63A3, 0x9D7A, 0x638F, 0x9D7B, 0x6389, + 0x9D7C, 0x639F, 0x9D7D, 0x63B5, 0x9D7E, 0x636B, 0x9D80, 0x6369, + 0x9D81, 0x63BE, 0x9D82, 0x63E9, 0x9D83, 0x63C0, 0x9D84, 0x63C6, + 0x9D85, 0x63E3, 0x9D86, 0x63C9, 0x9D87, 0x63D2, 0x9D88, 0x63F6, + 0x9D89, 0x63C4, 0x9D8A, 0x6416, 0x9D8B, 0x6434, 0x9D8C, 0x6406, + 0x9D8D, 0x6413, 0x9D8E, 0x6426, 0x9D8F, 0x6436, 0x9D90, 0x651D, + 0x9D91, 0x6417, 0x9D92, 0x6428, 0x9D93, 0x640F, 0x9D94, 0x6467, + 0x9D95, 0x646F, 0x9D96, 0x6476, 0x9D97, 0x644E, 0x9D98, 0x652A, + 0x9D99, 0x6495, 0x9D9A, 0x6493, 0x9D9B, 0x64A5, 0x9D9C, 0x64A9, + 0x9D9D, 0x6488, 0x9D9E, 0x64BC, 0x9D9F, 0x64DA, 0x9DA0, 0x64D2, + 0x9DA1, 0x64C5, 0x9DA2, 0x64C7, 0x9DA3, 0x64BB, 0x9DA4, 0x64D8, + 0x9DA5, 0x64C2, 0x9DA6, 0x64F1, 0x9DA7, 0x64E7, 0x9DA8, 0x8209, + 0x9DA9, 0x64E0, 0x9DAA, 0x64E1, 0x9DAB, 0x62AC, 0x9DAC, 0x64E3, + 0x9DAD, 0x64EF, 0x9DAE, 0x652C, 0x9DAF, 0x64F6, 0x9DB0, 0x64F4, + 0x9DB1, 0x64F2, 0x9DB2, 0x64FA, 0x9DB3, 0x6500, 0x9DB4, 0x64FD, + 0x9DB5, 0x6518, 0x9DB6, 0x651C, 0x9DB7, 0x6505, 0x9DB8, 0x6524, + 0x9DB9, 0x6523, 0x9DBA, 0x652B, 0x9DBB, 0x6534, 0x9DBC, 0x6535, + 0x9DBD, 0x6537, 0x9DBE, 0x6536, 0x9DBF, 0x6538, 0x9DC0, 0x754B, + 0x9DC1, 0x6548, 0x9DC2, 0x6556, 0x9DC3, 0x6555, 0x9DC4, 0x654D, + 0x9DC5, 0x6558, 0x9DC6, 0x655E, 0x9DC7, 0x655D, 0x9DC8, 0x6572, + 0x9DC9, 0x6578, 0x9DCA, 0x6582, 0x9DCB, 0x6583, 0x9DCC, 0x8B8A, + 0x9DCD, 0x659B, 0x9DCE, 0x659F, 0x9DCF, 0x65AB, 0x9DD0, 0x65B7, + 0x9DD1, 0x65C3, 0x9DD2, 0x65C6, 0x9DD3, 0x65C1, 0x9DD4, 0x65C4, + 0x9DD5, 0x65CC, 0x9DD6, 0x65D2, 0x9DD7, 0x65DB, 0x9DD8, 0x65D9, + 0x9DD9, 0x65E0, 0x9DDA, 0x65E1, 0x9DDB, 0x65F1, 0x9DDC, 0x6772, + 0x9DDD, 0x660A, 0x9DDE, 0x6603, 0x9DDF, 0x65FB, 0x9DE0, 0x6773, + 0x9DE1, 0x6635, 0x9DE2, 0x6636, 0x9DE3, 0x6634, 0x9DE4, 0x661C, + 0x9DE5, 0x664F, 0x9DE6, 0x6644, 0x9DE7, 0x6649, 0x9DE8, 0x6641, + 0x9DE9, 0x665E, 0x9DEA, 0x665D, 0x9DEB, 0x6664, 0x9DEC, 0x6667, + 0x9DED, 0x6668, 0x9DEE, 0x665F, 0x9DEF, 0x6662, 0x9DF0, 0x6670, + 0x9DF1, 0x6683, 0x9DF2, 0x6688, 0x9DF3, 0x668E, 0x9DF4, 0x6689, + 0x9DF5, 0x6684, 0x9DF6, 0x6698, 0x9DF7, 0x669D, 0x9DF8, 0x66C1, + 0x9DF9, 0x66B9, 0x9DFA, 0x66C9, 0x9DFB, 0x66BE, 0x9DFC, 0x66BC, + 0x9E40, 0x66C4, 0x9E41, 0x66B8, 0x9E42, 0x66D6, 0x9E43, 0x66DA, + 0x9E44, 0x66E0, 0x9E45, 0x663F, 0x9E46, 0x66E6, 0x9E47, 0x66E9, + 0x9E48, 0x66F0, 0x9E49, 0x66F5, 0x9E4A, 0x66F7, 0x9E4B, 0x670F, + 0x9E4C, 0x6716, 0x9E4D, 0x671E, 0x9E4E, 0x6726, 0x9E4F, 0x6727, + 0x9E50, 0x9738, 0x9E51, 0x672E, 0x9E52, 0x673F, 0x9E53, 0x6736, + 0x9E54, 0x6741, 0x9E55, 0x6738, 0x9E56, 0x6737, 0x9E57, 0x6746, + 0x9E58, 0x675E, 0x9E59, 0x6760, 0x9E5A, 0x6759, 0x9E5B, 0x6763, + 0x9E5C, 0x6764, 0x9E5D, 0x6789, 0x9E5E, 0x6770, 0x9E5F, 0x67A9, + 0x9E60, 0x677C, 0x9E61, 0x676A, 0x9E62, 0x678C, 0x9E63, 0x678B, + 0x9E64, 0x67A6, 0x9E65, 0x67A1, 0x9E66, 0x6785, 0x9E67, 0x67B7, + 0x9E68, 0x67EF, 0x9E69, 0x67B4, 0x9E6A, 0x67EC, 0x9E6B, 0x67B3, + 0x9E6C, 0x67E9, 0x9E6D, 0x67B8, 0x9E6E, 0x67E4, 0x9E6F, 0x67DE, + 0x9E70, 0x67DD, 0x9E71, 0x67E2, 0x9E72, 0x67EE, 0x9E73, 0x67B9, + 0x9E74, 0x67CE, 0x9E75, 0x67C6, 0x9E76, 0x67E7, 0x9E77, 0x6A9C, + 0x9E78, 0x681E, 0x9E79, 0x6846, 0x9E7A, 0x6829, 0x9E7B, 0x6840, + 0x9E7C, 0x684D, 0x9E7D, 0x6832, 0x9E7E, 0x684E, 0x9E80, 0x68B3, + 0x9E81, 0x682B, 0x9E82, 0x6859, 0x9E83, 0x6863, 0x9E84, 0x6877, + 0x9E85, 0x687F, 0x9E86, 0x689F, 0x9E87, 0x688F, 0x9E88, 0x68AD, + 0x9E89, 0x6894, 0x9E8A, 0x689D, 0x9E8B, 0x689B, 0x9E8C, 0x6883, + 0x9E8D, 0x6AAE, 0x9E8E, 0x68B9, 0x9E8F, 0x6874, 0x9E90, 0x68B5, + 0x9E91, 0x68A0, 0x9E92, 0x68BA, 0x9E93, 0x690F, 0x9E94, 0x688D, + 0x9E95, 0x687E, 0x9E96, 0x6901, 0x9E97, 0x68CA, 0x9E98, 0x6908, + 0x9E99, 0x68D8, 0x9E9A, 0x6922, 0x9E9B, 0x6926, 0x9E9C, 0x68E1, + 0x9E9D, 0x690C, 0x9E9E, 0x68CD, 0x9E9F, 0x68D4, 0x9EA0, 0x68E7, + 0x9EA1, 0x68D5, 0x9EA2, 0x6936, 0x9EA3, 0x6912, 0x9EA4, 0x6904, + 0x9EA5, 0x68D7, 0x9EA6, 0x68E3, 0x9EA7, 0x6925, 0x9EA8, 0x68F9, + 0x9EA9, 0x68E0, 0x9EAA, 0x68EF, 0x9EAB, 0x6928, 0x9EAC, 0x692A, + 0x9EAD, 0x691A, 0x9EAE, 0x6923, 0x9EAF, 0x6921, 0x9EB0, 0x68C6, + 0x9EB1, 0x6979, 0x9EB2, 0x6977, 0x9EB3, 0x695C, 0x9EB4, 0x6978, + 0x9EB5, 0x696B, 0x9EB6, 0x6954, 0x9EB7, 0x697E, 0x9EB8, 0x696E, + 0x9EB9, 0x6939, 0x9EBA, 0x6974, 0x9EBB, 0x693D, 0x9EBC, 0x6959, + 0x9EBD, 0x6930, 0x9EBE, 0x6961, 0x9EBF, 0x695E, 0x9EC0, 0x695D, + 0x9EC1, 0x6981, 0x9EC2, 0x696A, 0x9EC3, 0x69B2, 0x9EC4, 0x69AE, + 0x9EC5, 0x69D0, 0x9EC6, 0x69BF, 0x9EC7, 0x69C1, 0x9EC8, 0x69D3, + 0x9EC9, 0x69BE, 0x9ECA, 0x69CE, 0x9ECB, 0x5BE8, 0x9ECC, 0x69CA, + 0x9ECD, 0x69DD, 0x9ECE, 0x69BB, 0x9ECF, 0x69C3, 0x9ED0, 0x69A7, + 0x9ED1, 0x6A2E, 0x9ED2, 0x6991, 0x9ED3, 0x69A0, 0x9ED4, 0x699C, + 0x9ED5, 0x6995, 0x9ED6, 0x69B4, 0x9ED7, 0x69DE, 0x9ED8, 0x69E8, + 0x9ED9, 0x6A02, 0x9EDA, 0x6A1B, 0x9EDB, 0x69FF, 0x9EDC, 0x6B0A, + 0x9EDD, 0x69F9, 0x9EDE, 0x69F2, 0x9EDF, 0x69E7, 0x9EE0, 0x6A05, + 0x9EE1, 0x69B1, 0x9EE2, 0x6A1E, 0x9EE3, 0x69ED, 0x9EE4, 0x6A14, + 0x9EE5, 0x69EB, 0x9EE6, 0x6A0A, 0x9EE7, 0x6A12, 0x9EE8, 0x6AC1, + 0x9EE9, 0x6A23, 0x9EEA, 0x6A13, 0x9EEB, 0x6A44, 0x9EEC, 0x6A0C, + 0x9EED, 0x6A72, 0x9EEE, 0x6A36, 0x9EEF, 0x6A78, 0x9EF0, 0x6A47, + 0x9EF1, 0x6A62, 0x9EF2, 0x6A59, 0x9EF3, 0x6A66, 0x9EF4, 0x6A48, + 0x9EF5, 0x6A38, 0x9EF6, 0x6A22, 0x9EF7, 0x6A90, 0x9EF8, 0x6A8D, + 0x9EF9, 0x6AA0, 0x9EFA, 0x6A84, 0x9EFB, 0x6AA2, 0x9EFC, 0x6AA3, + 0x9F40, 0x6A97, 0x9F41, 0x8617, 0x9F42, 0x6ABB, 0x9F43, 0x6AC3, + 0x9F44, 0x6AC2, 0x9F45, 0x6AB8, 0x9F46, 0x6AB3, 0x9F47, 0x6AAC, + 0x9F48, 0x6ADE, 0x9F49, 0x6AD1, 0x9F4A, 0x6ADF, 0x9F4B, 0x6AAA, + 0x9F4C, 0x6ADA, 0x9F4D, 0x6AEA, 0x9F4E, 0x6AFB, 0x9F4F, 0x6B05, + 0x9F50, 0x8616, 0x9F51, 0x6AFA, 0x9F52, 0x6B12, 0x9F53, 0x6B16, + 0x9F54, 0x9B31, 0x9F55, 0x6B1F, 0x9F56, 0x6B38, 0x9F57, 0x6B37, + 0x9F58, 0x76DC, 0x9F59, 0x6B39, 0x9F5A, 0x98EE, 0x9F5B, 0x6B47, + 0x9F5C, 0x6B43, 0x9F5D, 0x6B49, 0x9F5E, 0x6B50, 0x9F5F, 0x6B59, + 0x9F60, 0x6B54, 0x9F61, 0x6B5B, 0x9F62, 0x6B5F, 0x9F63, 0x6B61, + 0x9F64, 0x6B78, 0x9F65, 0x6B79, 0x9F66, 0x6B7F, 0x9F67, 0x6B80, + 0x9F68, 0x6B84, 0x9F69, 0x6B83, 0x9F6A, 0x6B8D, 0x9F6B, 0x6B98, + 0x9F6C, 0x6B95, 0x9F6D, 0x6B9E, 0x9F6E, 0x6BA4, 0x9F6F, 0x6BAA, + 0x9F70, 0x6BAB, 0x9F71, 0x6BAF, 0x9F72, 0x6BB2, 0x9F73, 0x6BB1, + 0x9F74, 0x6BB3, 0x9F75, 0x6BB7, 0x9F76, 0x6BBC, 0x9F77, 0x6BC6, + 0x9F78, 0x6BCB, 0x9F79, 0x6BD3, 0x9F7A, 0x6BDF, 0x9F7B, 0x6BEC, + 0x9F7C, 0x6BEB, 0x9F7D, 0x6BF3, 0x9F7E, 0x6BEF, 0x9F80, 0x9EBE, + 0x9F81, 0x6C08, 0x9F82, 0x6C13, 0x9F83, 0x6C14, 0x9F84, 0x6C1B, + 0x9F85, 0x6C24, 0x9F86, 0x6C23, 0x9F87, 0x6C5E, 0x9F88, 0x6C55, + 0x9F89, 0x6C62, 0x9F8A, 0x6C6A, 0x9F8B, 0x6C82, 0x9F8C, 0x6C8D, + 0x9F8D, 0x6C9A, 0x9F8E, 0x6C81, 0x9F8F, 0x6C9B, 0x9F90, 0x6C7E, + 0x9F91, 0x6C68, 0x9F92, 0x6C73, 0x9F93, 0x6C92, 0x9F94, 0x6C90, + 0x9F95, 0x6CC4, 0x9F96, 0x6CF1, 0x9F97, 0x6CD3, 0x9F98, 0x6CBD, + 0x9F99, 0x6CD7, 0x9F9A, 0x6CC5, 0x9F9B, 0x6CDD, 0x9F9C, 0x6CAE, + 0x9F9D, 0x6CB1, 0x9F9E, 0x6CBE, 0x9F9F, 0x6CBA, 0x9FA0, 0x6CDB, + 0x9FA1, 0x6CEF, 0x9FA2, 0x6CD9, 0x9FA3, 0x6CEA, 0x9FA4, 0x6D1F, + 0x9FA5, 0x884D, 0x9FA6, 0x6D36, 0x9FA7, 0x6D2B, 0x9FA8, 0x6D3D, + 0x9FA9, 0x6D38, 0x9FAA, 0x6D19, 0x9FAB, 0x6D35, 0x9FAC, 0x6D33, + 0x9FAD, 0x6D12, 0x9FAE, 0x6D0C, 0x9FAF, 0x6D63, 0x9FB0, 0x6D93, + 0x9FB1, 0x6D64, 0x9FB2, 0x6D5A, 0x9FB3, 0x6D79, 0x9FB4, 0x6D59, + 0x9FB5, 0x6D8E, 0x9FB6, 0x6D95, 0x9FB7, 0x6FE4, 0x9FB8, 0x6D85, + 0x9FB9, 0x6DF9, 0x9FBA, 0x6E15, 0x9FBB, 0x6E0A, 0x9FBC, 0x6DB5, + 0x9FBD, 0x6DC7, 0x9FBE, 0x6DE6, 0x9FBF, 0x6DB8, 0x9FC0, 0x6DC6, + 0x9FC1, 0x6DEC, 0x9FC2, 0x6DDE, 0x9FC3, 0x6DCC, 0x9FC4, 0x6DE8, + 0x9FC5, 0x6DD2, 0x9FC6, 0x6DC5, 0x9FC7, 0x6DFA, 0x9FC8, 0x6DD9, + 0x9FC9, 0x6DE4, 0x9FCA, 0x6DD5, 0x9FCB, 0x6DEA, 0x9FCC, 0x6DEE, + 0x9FCD, 0x6E2D, 0x9FCE, 0x6E6E, 0x9FCF, 0x6E2E, 0x9FD0, 0x6E19, + 0x9FD1, 0x6E72, 0x9FD2, 0x6E5F, 0x9FD3, 0x6E3E, 0x9FD4, 0x6E23, + 0x9FD5, 0x6E6B, 0x9FD6, 0x6E2B, 0x9FD7, 0x6E76, 0x9FD8, 0x6E4D, + 0x9FD9, 0x6E1F, 0x9FDA, 0x6E43, 0x9FDB, 0x6E3A, 0x9FDC, 0x6E4E, + 0x9FDD, 0x6E24, 0x9FDE, 0x6EFF, 0x9FDF, 0x6E1D, 0x9FE0, 0x6E38, + 0x9FE1, 0x6E82, 0x9FE2, 0x6EAA, 0x9FE3, 0x6E98, 0x9FE4, 0x6EC9, + 0x9FE5, 0x6EB7, 0x9FE6, 0x6ED3, 0x9FE7, 0x6EBD, 0x9FE8, 0x6EAF, + 0x9FE9, 0x6EC4, 0x9FEA, 0x6EB2, 0x9FEB, 0x6ED4, 0x9FEC, 0x6ED5, + 0x9FED, 0x6E8F, 0x9FEE, 0x6EA5, 0x9FEF, 0x6EC2, 0x9FF0, 0x6E9F, + 0x9FF1, 0x6F41, 0x9FF2, 0x6F11, 0x9FF3, 0x704C, 0x9FF4, 0x6EEC, + 0x9FF5, 0x6EF8, 0x9FF6, 0x6EFE, 0x9FF7, 0x6F3F, 0x9FF8, 0x6EF2, + 0x9FF9, 0x6F31, 0x9FFA, 0x6EEF, 0x9FFB, 0x6F32, 0x9FFC, 0x6ECC, + 0xE040, 0x6F3E, 0xE041, 0x6F13, 0xE042, 0x6EF7, 0xE043, 0x6F86, + 0xE044, 0x6F7A, 0xE045, 0x6F78, 0xE046, 0x6F81, 0xE047, 0x6F80, + 0xE048, 0x6F6F, 0xE049, 0x6F5B, 0xE04A, 0x6FF3, 0xE04B, 0x6F6D, + 0xE04C, 0x6F82, 0xE04D, 0x6F7C, 0xE04E, 0x6F58, 0xE04F, 0x6F8E, + 0xE050, 0x6F91, 0xE051, 0x6FC2, 0xE052, 0x6F66, 0xE053, 0x6FB3, + 0xE054, 0x6FA3, 0xE055, 0x6FA1, 0xE056, 0x6FA4, 0xE057, 0x6FB9, + 0xE058, 0x6FC6, 0xE059, 0x6FAA, 0xE05A, 0x6FDF, 0xE05B, 0x6FD5, + 0xE05C, 0x6FEC, 0xE05D, 0x6FD4, 0xE05E, 0x6FD8, 0xE05F, 0x6FF1, + 0xE060, 0x6FEE, 0xE061, 0x6FDB, 0xE062, 0x7009, 0xE063, 0x700B, + 0xE064, 0x6FFA, 0xE065, 0x7011, 0xE066, 0x7001, 0xE067, 0x700F, + 0xE068, 0x6FFE, 0xE069, 0x701B, 0xE06A, 0x701A, 0xE06B, 0x6F74, + 0xE06C, 0x701D, 0xE06D, 0x7018, 0xE06E, 0x701F, 0xE06F, 0x7030, + 0xE070, 0x703E, 0xE071, 0x7032, 0xE072, 0x7051, 0xE073, 0x7063, + 0xE074, 0x7099, 0xE075, 0x7092, 0xE076, 0x70AF, 0xE077, 0x70F1, + 0xE078, 0x70AC, 0xE079, 0x70B8, 0xE07A, 0x70B3, 0xE07B, 0x70AE, + 0xE07C, 0x70DF, 0xE07D, 0x70CB, 0xE07E, 0x70DD, 0xE080, 0x70D9, + 0xE081, 0x7109, 0xE082, 0x70FD, 0xE083, 0x711C, 0xE084, 0x7119, + 0xE085, 0x7165, 0xE086, 0x7155, 0xE087, 0x7188, 0xE088, 0x7166, + 0xE089, 0x7162, 0xE08A, 0x714C, 0xE08B, 0x7156, 0xE08C, 0x716C, + 0xE08D, 0x718F, 0xE08E, 0x71FB, 0xE08F, 0x7184, 0xE090, 0x7195, + 0xE091, 0x71A8, 0xE092, 0x71AC, 0xE093, 0x71D7, 0xE094, 0x71B9, + 0xE095, 0x71BE, 0xE096, 0x71D2, 0xE097, 0x71C9, 0xE098, 0x71D4, + 0xE099, 0x71CE, 0xE09A, 0x71E0, 0xE09B, 0x71EC, 0xE09C, 0x71E7, + 0xE09D, 0x71F5, 0xE09E, 0x71FC, 0xE09F, 0x71F9, 0xE0A0, 0x71FF, + 0xE0A1, 0x720D, 0xE0A2, 0x7210, 0xE0A3, 0x721B, 0xE0A4, 0x7228, + 0xE0A5, 0x722D, 0xE0A6, 0x722C, 0xE0A7, 0x7230, 0xE0A8, 0x7232, + 0xE0A9, 0x723B, 0xE0AA, 0x723C, 0xE0AB, 0x723F, 0xE0AC, 0x7240, + 0xE0AD, 0x7246, 0xE0AE, 0x724B, 0xE0AF, 0x7258, 0xE0B0, 0x7274, + 0xE0B1, 0x727E, 0xE0B2, 0x7282, 0xE0B3, 0x7281, 0xE0B4, 0x7287, + 0xE0B5, 0x7292, 0xE0B6, 0x7296, 0xE0B7, 0x72A2, 0xE0B8, 0x72A7, + 0xE0B9, 0x72B9, 0xE0BA, 0x72B2, 0xE0BB, 0x72C3, 0xE0BC, 0x72C6, + 0xE0BD, 0x72C4, 0xE0BE, 0x72CE, 0xE0BF, 0x72D2, 0xE0C0, 0x72E2, + 0xE0C1, 0x72E0, 0xE0C2, 0x72E1, 0xE0C3, 0x72F9, 0xE0C4, 0x72F7, + 0xE0C5, 0x500F, 0xE0C6, 0x7317, 0xE0C7, 0x730A, 0xE0C8, 0x731C, + 0xE0C9, 0x7316, 0xE0CA, 0x731D, 0xE0CB, 0x7334, 0xE0CC, 0x732F, + 0xE0CD, 0x7329, 0xE0CE, 0x7325, 0xE0CF, 0x733E, 0xE0D0, 0x734E, + 0xE0D1, 0x734F, 0xE0D2, 0x9ED8, 0xE0D3, 0x7357, 0xE0D4, 0x736A, + 0xE0D5, 0x7368, 0xE0D6, 0x7370, 0xE0D7, 0x7378, 0xE0D8, 0x7375, + 0xE0D9, 0x737B, 0xE0DA, 0x737A, 0xE0DB, 0x73C8, 0xE0DC, 0x73B3, + 0xE0DD, 0x73CE, 0xE0DE, 0x73BB, 0xE0DF, 0x73C0, 0xE0E0, 0x73E5, + 0xE0E1, 0x73EE, 0xE0E2, 0x73DE, 0xE0E3, 0x74A2, 0xE0E4, 0x7405, + 0xE0E5, 0x746F, 0xE0E6, 0x7425, 0xE0E7, 0x73F8, 0xE0E8, 0x7432, + 0xE0E9, 0x743A, 0xE0EA, 0x7455, 0xE0EB, 0x743F, 0xE0EC, 0x745F, + 0xE0ED, 0x7459, 0xE0EE, 0x7441, 0xE0EF, 0x745C, 0xE0F0, 0x7469, + 0xE0F1, 0x7470, 0xE0F2, 0x7463, 0xE0F3, 0x746A, 0xE0F4, 0x7476, + 0xE0F5, 0x747E, 0xE0F6, 0x748B, 0xE0F7, 0x749E, 0xE0F8, 0x74A7, + 0xE0F9, 0x74CA, 0xE0FA, 0x74CF, 0xE0FB, 0x74D4, 0xE0FC, 0x73F1, + 0xE140, 0x74E0, 0xE141, 0x74E3, 0xE142, 0x74E7, 0xE143, 0x74E9, + 0xE144, 0x74EE, 0xE145, 0x74F2, 0xE146, 0x74F0, 0xE147, 0x74F1, + 0xE148, 0x74F8, 0xE149, 0x74F7, 0xE14A, 0x7504, 0xE14B, 0x7503, + 0xE14C, 0x7505, 0xE14D, 0x750C, 0xE14E, 0x750E, 0xE14F, 0x750D, + 0xE150, 0x7515, 0xE151, 0x7513, 0xE152, 0x751E, 0xE153, 0x7526, + 0xE154, 0x752C, 0xE155, 0x753C, 0xE156, 0x7544, 0xE157, 0x754D, + 0xE158, 0x754A, 0xE159, 0x7549, 0xE15A, 0x755B, 0xE15B, 0x7546, + 0xE15C, 0x755A, 0xE15D, 0x7569, 0xE15E, 0x7564, 0xE15F, 0x7567, + 0xE160, 0x756B, 0xE161, 0x756D, 0xE162, 0x7578, 0xE163, 0x7576, + 0xE164, 0x7586, 0xE165, 0x7587, 0xE166, 0x7574, 0xE167, 0x758A, + 0xE168, 0x7589, 0xE169, 0x7582, 0xE16A, 0x7594, 0xE16B, 0x759A, + 0xE16C, 0x759D, 0xE16D, 0x75A5, 0xE16E, 0x75A3, 0xE16F, 0x75C2, + 0xE170, 0x75B3, 0xE171, 0x75C3, 0xE172, 0x75B5, 0xE173, 0x75BD, + 0xE174, 0x75B8, 0xE175, 0x75BC, 0xE176, 0x75B1, 0xE177, 0x75CD, + 0xE178, 0x75CA, 0xE179, 0x75D2, 0xE17A, 0x75D9, 0xE17B, 0x75E3, + 0xE17C, 0x75DE, 0xE17D, 0x75FE, 0xE17E, 0x75FF, 0xE180, 0x75FC, + 0xE181, 0x7601, 0xE182, 0x75F0, 0xE183, 0x75FA, 0xE184, 0x75F2, + 0xE185, 0x75F3, 0xE186, 0x760B, 0xE187, 0x760D, 0xE188, 0x7609, + 0xE189, 0x761F, 0xE18A, 0x7627, 0xE18B, 0x7620, 0xE18C, 0x7621, + 0xE18D, 0x7622, 0xE18E, 0x7624, 0xE18F, 0x7634, 0xE190, 0x7630, + 0xE191, 0x763B, 0xE192, 0x7647, 0xE193, 0x7648, 0xE194, 0x7646, + 0xE195, 0x765C, 0xE196, 0x7658, 0xE197, 0x7661, 0xE198, 0x7662, + 0xE199, 0x7668, 0xE19A, 0x7669, 0xE19B, 0x766A, 0xE19C, 0x7667, + 0xE19D, 0x766C, 0xE19E, 0x7670, 0xE19F, 0x7672, 0xE1A0, 0x7676, + 0xE1A1, 0x7678, 0xE1A2, 0x767C, 0xE1A3, 0x7680, 0xE1A4, 0x7683, + 0xE1A5, 0x7688, 0xE1A6, 0x768B, 0xE1A7, 0x768E, 0xE1A8, 0x7696, + 0xE1A9, 0x7693, 0xE1AA, 0x7699, 0xE1AB, 0x769A, 0xE1AC, 0x76B0, + 0xE1AD, 0x76B4, 0xE1AE, 0x76B8, 0xE1AF, 0x76B9, 0xE1B0, 0x76BA, + 0xE1B1, 0x76C2, 0xE1B2, 0x76CD, 0xE1B3, 0x76D6, 0xE1B4, 0x76D2, + 0xE1B5, 0x76DE, 0xE1B6, 0x76E1, 0xE1B7, 0x76E5, 0xE1B8, 0x76E7, + 0xE1B9, 0x76EA, 0xE1BA, 0x862F, 0xE1BB, 0x76FB, 0xE1BC, 0x7708, + 0xE1BD, 0x7707, 0xE1BE, 0x7704, 0xE1BF, 0x7729, 0xE1C0, 0x7724, + 0xE1C1, 0x771E, 0xE1C2, 0x7725, 0xE1C3, 0x7726, 0xE1C4, 0x771B, + 0xE1C5, 0x7737, 0xE1C6, 0x7738, 0xE1C7, 0x7747, 0xE1C8, 0x775A, + 0xE1C9, 0x7768, 0xE1CA, 0x776B, 0xE1CB, 0x775B, 0xE1CC, 0x7765, + 0xE1CD, 0x777F, 0xE1CE, 0x777E, 0xE1CF, 0x7779, 0xE1D0, 0x778E, + 0xE1D1, 0x778B, 0xE1D2, 0x7791, 0xE1D3, 0x77A0, 0xE1D4, 0x779E, + 0xE1D5, 0x77B0, 0xE1D6, 0x77B6, 0xE1D7, 0x77B9, 0xE1D8, 0x77BF, + 0xE1D9, 0x77BC, 0xE1DA, 0x77BD, 0xE1DB, 0x77BB, 0xE1DC, 0x77C7, + 0xE1DD, 0x77CD, 0xE1DE, 0x77D7, 0xE1DF, 0x77DA, 0xE1E0, 0x77DC, + 0xE1E1, 0x77E3, 0xE1E2, 0x77EE, 0xE1E3, 0x77FC, 0xE1E4, 0x780C, + 0xE1E5, 0x7812, 0xE1E6, 0x7926, 0xE1E7, 0x7820, 0xE1E8, 0x792A, + 0xE1E9, 0x7845, 0xE1EA, 0x788E, 0xE1EB, 0x7874, 0xE1EC, 0x7886, + 0xE1ED, 0x787C, 0xE1EE, 0x789A, 0xE1EF, 0x788C, 0xE1F0, 0x78A3, + 0xE1F1, 0x78B5, 0xE1F2, 0x78AA, 0xE1F3, 0x78AF, 0xE1F4, 0x78D1, + 0xE1F5, 0x78C6, 0xE1F6, 0x78CB, 0xE1F7, 0x78D4, 0xE1F8, 0x78BE, + 0xE1F9, 0x78BC, 0xE1FA, 0x78C5, 0xE1FB, 0x78CA, 0xE1FC, 0x78EC, + 0xE240, 0x78E7, 0xE241, 0x78DA, 0xE242, 0x78FD, 0xE243, 0x78F4, + 0xE244, 0x7907, 0xE245, 0x7912, 0xE246, 0x7911, 0xE247, 0x7919, + 0xE248, 0x792C, 0xE249, 0x792B, 0xE24A, 0x7940, 0xE24B, 0x7960, + 0xE24C, 0x7957, 0xE24D, 0x795F, 0xE24E, 0x795A, 0xE24F, 0x7955, + 0xE250, 0x7953, 0xE251, 0x797A, 0xE252, 0x797F, 0xE253, 0x798A, + 0xE254, 0x799D, 0xE255, 0x79A7, 0xE256, 0x9F4B, 0xE257, 0x79AA, + 0xE258, 0x79AE, 0xE259, 0x79B3, 0xE25A, 0x79B9, 0xE25B, 0x79BA, + 0xE25C, 0x79C9, 0xE25D, 0x79D5, 0xE25E, 0x79E7, 0xE25F, 0x79EC, + 0xE260, 0x79E1, 0xE261, 0x79E3, 0xE262, 0x7A08, 0xE263, 0x7A0D, + 0xE264, 0x7A18, 0xE265, 0x7A19, 0xE266, 0x7A20, 0xE267, 0x7A1F, + 0xE268, 0x7980, 0xE269, 0x7A31, 0xE26A, 0x7A3B, 0xE26B, 0x7A3E, + 0xE26C, 0x7A37, 0xE26D, 0x7A43, 0xE26E, 0x7A57, 0xE26F, 0x7A49, + 0xE270, 0x7A61, 0xE271, 0x7A62, 0xE272, 0x7A69, 0xE273, 0x9F9D, + 0xE274, 0x7A70, 0xE275, 0x7A79, 0xE276, 0x7A7D, 0xE277, 0x7A88, + 0xE278, 0x7A97, 0xE279, 0x7A95, 0xE27A, 0x7A98, 0xE27B, 0x7A96, + 0xE27C, 0x7AA9, 0xE27D, 0x7AC8, 0xE27E, 0x7AB0, 0xE280, 0x7AB6, + 0xE281, 0x7AC5, 0xE282, 0x7AC4, 0xE283, 0x7ABF, 0xE284, 0x9083, + 0xE285, 0x7AC7, 0xE286, 0x7ACA, 0xE287, 0x7ACD, 0xE288, 0x7ACF, + 0xE289, 0x7AD5, 0xE28A, 0x7AD3, 0xE28B, 0x7AD9, 0xE28C, 0x7ADA, + 0xE28D, 0x7ADD, 0xE28E, 0x7AE1, 0xE28F, 0x7AE2, 0xE290, 0x7AE6, + 0xE291, 0x7AED, 0xE292, 0x7AF0, 0xE293, 0x7B02, 0xE294, 0x7B0F, + 0xE295, 0x7B0A, 0xE296, 0x7B06, 0xE297, 0x7B33, 0xE298, 0x7B18, + 0xE299, 0x7B19, 0xE29A, 0x7B1E, 0xE29B, 0x7B35, 0xE29C, 0x7B28, + 0xE29D, 0x7B36, 0xE29E, 0x7B50, 0xE29F, 0x7B7A, 0xE2A0, 0x7B04, + 0xE2A1, 0x7B4D, 0xE2A2, 0x7B0B, 0xE2A3, 0x7B4C, 0xE2A4, 0x7B45, + 0xE2A5, 0x7B75, 0xE2A6, 0x7B65, 0xE2A7, 0x7B74, 0xE2A8, 0x7B67, + 0xE2A9, 0x7B70, 0xE2AA, 0x7B71, 0xE2AB, 0x7B6C, 0xE2AC, 0x7B6E, + 0xE2AD, 0x7B9D, 0xE2AE, 0x7B98, 0xE2AF, 0x7B9F, 0xE2B0, 0x7B8D, + 0xE2B1, 0x7B9C, 0xE2B2, 0x7B9A, 0xE2B3, 0x7B8B, 0xE2B4, 0x7B92, + 0xE2B5, 0x7B8F, 0xE2B6, 0x7B5D, 0xE2B7, 0x7B99, 0xE2B8, 0x7BCB, + 0xE2B9, 0x7BC1, 0xE2BA, 0x7BCC, 0xE2BB, 0x7BCF, 0xE2BC, 0x7BB4, + 0xE2BD, 0x7BC6, 0xE2BE, 0x7BDD, 0xE2BF, 0x7BE9, 0xE2C0, 0x7C11, + 0xE2C1, 0x7C14, 0xE2C2, 0x7BE6, 0xE2C3, 0x7BE5, 0xE2C4, 0x7C60, + 0xE2C5, 0x7C00, 0xE2C6, 0x7C07, 0xE2C7, 0x7C13, 0xE2C8, 0x7BF3, + 0xE2C9, 0x7BF7, 0xE2CA, 0x7C17, 0xE2CB, 0x7C0D, 0xE2CC, 0x7BF6, + 0xE2CD, 0x7C23, 0xE2CE, 0x7C27, 0xE2CF, 0x7C2A, 0xE2D0, 0x7C1F, + 0xE2D1, 0x7C37, 0xE2D2, 0x7C2B, 0xE2D3, 0x7C3D, 0xE2D4, 0x7C4C, + 0xE2D5, 0x7C43, 0xE2D6, 0x7C54, 0xE2D7, 0x7C4F, 0xE2D8, 0x7C40, + 0xE2D9, 0x7C50, 0xE2DA, 0x7C58, 0xE2DB, 0x7C5F, 0xE2DC, 0x7C64, + 0xE2DD, 0x7C56, 0xE2DE, 0x7C65, 0xE2DF, 0x7C6C, 0xE2E0, 0x7C75, + 0xE2E1, 0x7C83, 0xE2E2, 0x7C90, 0xE2E3, 0x7CA4, 0xE2E4, 0x7CAD, + 0xE2E5, 0x7CA2, 0xE2E6, 0x7CAB, 0xE2E7, 0x7CA1, 0xE2E8, 0x7CA8, + 0xE2E9, 0x7CB3, 0xE2EA, 0x7CB2, 0xE2EB, 0x7CB1, 0xE2EC, 0x7CAE, + 0xE2ED, 0x7CB9, 0xE2EE, 0x7CBD, 0xE2EF, 0x7CC0, 0xE2F0, 0x7CC5, + 0xE2F1, 0x7CC2, 0xE2F2, 0x7CD8, 0xE2F3, 0x7CD2, 0xE2F4, 0x7CDC, + 0xE2F5, 0x7CE2, 0xE2F6, 0x9B3B, 0xE2F7, 0x7CEF, 0xE2F8, 0x7CF2, + 0xE2F9, 0x7CF4, 0xE2FA, 0x7CF6, 0xE2FB, 0x7CFA, 0xE2FC, 0x7D06, + 0xE340, 0x7D02, 0xE341, 0x7D1C, 0xE342, 0x7D15, 0xE343, 0x7D0A, + 0xE344, 0x7D45, 0xE345, 0x7D4B, 0xE346, 0x7D2E, 0xE347, 0x7D32, + 0xE348, 0x7D3F, 0xE349, 0x7D35, 0xE34A, 0x7D46, 0xE34B, 0x7D73, + 0xE34C, 0x7D56, 0xE34D, 0x7D4E, 0xE34E, 0x7D72, 0xE34F, 0x7D68, + 0xE350, 0x7D6E, 0xE351, 0x7D4F, 0xE352, 0x7D63, 0xE353, 0x7D93, + 0xE354, 0x7D89, 0xE355, 0x7D5B, 0xE356, 0x7D8F, 0xE357, 0x7D7D, + 0xE358, 0x7D9B, 0xE359, 0x7DBA, 0xE35A, 0x7DAE, 0xE35B, 0x7DA3, + 0xE35C, 0x7DB5, 0xE35D, 0x7DC7, 0xE35E, 0x7DBD, 0xE35F, 0x7DAB, + 0xE360, 0x7E3D, 0xE361, 0x7DA2, 0xE362, 0x7DAF, 0xE363, 0x7DDC, + 0xE364, 0x7DB8, 0xE365, 0x7D9F, 0xE366, 0x7DB0, 0xE367, 0x7DD8, + 0xE368, 0x7DDD, 0xE369, 0x7DE4, 0xE36A, 0x7DDE, 0xE36B, 0x7DFB, + 0xE36C, 0x7DF2, 0xE36D, 0x7DE1, 0xE36E, 0x7E05, 0xE36F, 0x7E0A, + 0xE370, 0x7E23, 0xE371, 0x7E21, 0xE372, 0x7E12, 0xE373, 0x7E31, + 0xE374, 0x7E1F, 0xE375, 0x7E09, 0xE376, 0x7E0B, 0xE377, 0x7E22, + 0xE378, 0x7E46, 0xE379, 0x7E66, 0xE37A, 0x7E3B, 0xE37B, 0x7E35, + 0xE37C, 0x7E39, 0xE37D, 0x7E43, 0xE37E, 0x7E37, 0xE380, 0x7E32, + 0xE381, 0x7E3A, 0xE382, 0x7E67, 0xE383, 0x7E5D, 0xE384, 0x7E56, + 0xE385, 0x7E5E, 0xE386, 0x7E59, 0xE387, 0x7E5A, 0xE388, 0x7E79, + 0xE389, 0x7E6A, 0xE38A, 0x7E69, 0xE38B, 0x7E7C, 0xE38C, 0x7E7B, + 0xE38D, 0x7E83, 0xE38E, 0x7DD5, 0xE38F, 0x7E7D, 0xE390, 0x8FAE, + 0xE391, 0x7E7F, 0xE392, 0x7E88, 0xE393, 0x7E89, 0xE394, 0x7E8C, + 0xE395, 0x7E92, 0xE396, 0x7E90, 0xE397, 0x7E93, 0xE398, 0x7E94, + 0xE399, 0x7E96, 0xE39A, 0x7E8E, 0xE39B, 0x7E9B, 0xE39C, 0x7E9C, + 0xE39D, 0x7F38, 0xE39E, 0x7F3A, 0xE39F, 0x7F45, 0xE3A0, 0x7F4C, + 0xE3A1, 0x7F4D, 0xE3A2, 0x7F4E, 0xE3A3, 0x7F50, 0xE3A4, 0x7F51, + 0xE3A5, 0x7F55, 0xE3A6, 0x7F54, 0xE3A7, 0x7F58, 0xE3A8, 0x7F5F, + 0xE3A9, 0x7F60, 0xE3AA, 0x7F68, 0xE3AB, 0x7F69, 0xE3AC, 0x7F67, + 0xE3AD, 0x7F78, 0xE3AE, 0x7F82, 0xE3AF, 0x7F86, 0xE3B0, 0x7F83, + 0xE3B1, 0x7F88, 0xE3B2, 0x7F87, 0xE3B3, 0x7F8C, 0xE3B4, 0x7F94, + 0xE3B5, 0x7F9E, 0xE3B6, 0x7F9D, 0xE3B7, 0x7F9A, 0xE3B8, 0x7FA3, + 0xE3B9, 0x7FAF, 0xE3BA, 0x7FB2, 0xE3BB, 0x7FB9, 0xE3BC, 0x7FAE, + 0xE3BD, 0x7FB6, 0xE3BE, 0x7FB8, 0xE3BF, 0x8B71, 0xE3C0, 0x7FC5, + 0xE3C1, 0x7FC6, 0xE3C2, 0x7FCA, 0xE3C3, 0x7FD5, 0xE3C4, 0x7FD4, + 0xE3C5, 0x7FE1, 0xE3C6, 0x7FE6, 0xE3C7, 0x7FE9, 0xE3C8, 0x7FF3, + 0xE3C9, 0x7FF9, 0xE3CA, 0x98DC, 0xE3CB, 0x8006, 0xE3CC, 0x8004, + 0xE3CD, 0x800B, 0xE3CE, 0x8012, 0xE3CF, 0x8018, 0xE3D0, 0x8019, + 0xE3D1, 0x801C, 0xE3D2, 0x8021, 0xE3D3, 0x8028, 0xE3D4, 0x803F, + 0xE3D5, 0x803B, 0xE3D6, 0x804A, 0xE3D7, 0x8046, 0xE3D8, 0x8052, + 0xE3D9, 0x8058, 0xE3DA, 0x805A, 0xE3DB, 0x805F, 0xE3DC, 0x8062, + 0xE3DD, 0x8068, 0xE3DE, 0x8073, 0xE3DF, 0x8072, 0xE3E0, 0x8070, + 0xE3E1, 0x8076, 0xE3E2, 0x8079, 0xE3E3, 0x807D, 0xE3E4, 0x807F, + 0xE3E5, 0x8084, 0xE3E6, 0x8086, 0xE3E7, 0x8085, 0xE3E8, 0x809B, + 0xE3E9, 0x8093, 0xE3EA, 0x809A, 0xE3EB, 0x80AD, 0xE3EC, 0x5190, + 0xE3ED, 0x80AC, 0xE3EE, 0x80DB, 0xE3EF, 0x80E5, 0xE3F0, 0x80D9, + 0xE3F1, 0x80DD, 0xE3F2, 0x80C4, 0xE3F3, 0x80DA, 0xE3F4, 0x80D6, + 0xE3F5, 0x8109, 0xE3F6, 0x80EF, 0xE3F7, 0x80F1, 0xE3F8, 0x811B, + 0xE3F9, 0x8129, 0xE3FA, 0x8123, 0xE3FB, 0x812F, 0xE3FC, 0x814B, + 0xE440, 0x968B, 0xE441, 0x8146, 0xE442, 0x813E, 0xE443, 0x8153, + 0xE444, 0x8151, 0xE445, 0x80FC, 0xE446, 0x8171, 0xE447, 0x816E, + 0xE448, 0x8165, 0xE449, 0x8166, 0xE44A, 0x8174, 0xE44B, 0x8183, + 0xE44C, 0x8188, 0xE44D, 0x818A, 0xE44E, 0x8180, 0xE44F, 0x8182, + 0xE450, 0x81A0, 0xE451, 0x8195, 0xE452, 0x81A4, 0xE453, 0x81A3, + 0xE454, 0x815F, 0xE455, 0x8193, 0xE456, 0x81A9, 0xE457, 0x81B0, + 0xE458, 0x81B5, 0xE459, 0x81BE, 0xE45A, 0x81B8, 0xE45B, 0x81BD, + 0xE45C, 0x81C0, 0xE45D, 0x81C2, 0xE45E, 0x81BA, 0xE45F, 0x81C9, + 0xE460, 0x81CD, 0xE461, 0x81D1, 0xE462, 0x81D9, 0xE463, 0x81D8, + 0xE464, 0x81C8, 0xE465, 0x81DA, 0xE466, 0x81DF, 0xE467, 0x81E0, + 0xE468, 0x81E7, 0xE469, 0x81FA, 0xE46A, 0x81FB, 0xE46B, 0x81FE, + 0xE46C, 0x8201, 0xE46D, 0x8202, 0xE46E, 0x8205, 0xE46F, 0x8207, + 0xE470, 0x820A, 0xE471, 0x820D, 0xE472, 0x8210, 0xE473, 0x8216, + 0xE474, 0x8229, 0xE475, 0x822B, 0xE476, 0x8238, 0xE477, 0x8233, + 0xE478, 0x8240, 0xE479, 0x8259, 0xE47A, 0x8258, 0xE47B, 0x825D, + 0xE47C, 0x825A, 0xE47D, 0x825F, 0xE47E, 0x8264, 0xE480, 0x8262, + 0xE481, 0x8268, 0xE482, 0x826A, 0xE483, 0x826B, 0xE484, 0x822E, + 0xE485, 0x8271, 0xE486, 0x8277, 0xE487, 0x8278, 0xE488, 0x827E, + 0xE489, 0x828D, 0xE48A, 0x8292, 0xE48B, 0x82AB, 0xE48C, 0x829F, + 0xE48D, 0x82BB, 0xE48E, 0x82AC, 0xE48F, 0x82E1, 0xE490, 0x82E3, + 0xE491, 0x82DF, 0xE492, 0x82D2, 0xE493, 0x82F4, 0xE494, 0x82F3, + 0xE495, 0x82FA, 0xE496, 0x8393, 0xE497, 0x8303, 0xE498, 0x82FB, + 0xE499, 0x82F9, 0xE49A, 0x82DE, 0xE49B, 0x8306, 0xE49C, 0x82DC, + 0xE49D, 0x8309, 0xE49E, 0x82D9, 0xE49F, 0x8335, 0xE4A0, 0x8334, + 0xE4A1, 0x8316, 0xE4A2, 0x8332, 0xE4A3, 0x8331, 0xE4A4, 0x8340, + 0xE4A5, 0x8339, 0xE4A6, 0x8350, 0xE4A7, 0x8345, 0xE4A8, 0x832F, + 0xE4A9, 0x832B, 0xE4AA, 0x8317, 0xE4AB, 0x8318, 0xE4AC, 0x8385, + 0xE4AD, 0x839A, 0xE4AE, 0x83AA, 0xE4AF, 0x839F, 0xE4B0, 0x83A2, + 0xE4B1, 0x8396, 0xE4B2, 0x8323, 0xE4B3, 0x838E, 0xE4B4, 0x8387, + 0xE4B5, 0x838A, 0xE4B6, 0x837C, 0xE4B7, 0x83B5, 0xE4B8, 0x8373, + 0xE4B9, 0x8375, 0xE4BA, 0x83A0, 0xE4BB, 0x8389, 0xE4BC, 0x83A8, + 0xE4BD, 0x83F4, 0xE4BE, 0x8413, 0xE4BF, 0x83EB, 0xE4C0, 0x83CE, + 0xE4C1, 0x83FD, 0xE4C2, 0x8403, 0xE4C3, 0x83D8, 0xE4C4, 0x840B, + 0xE4C5, 0x83C1, 0xE4C6, 0x83F7, 0xE4C7, 0x8407, 0xE4C8, 0x83E0, + 0xE4C9, 0x83F2, 0xE4CA, 0x840D, 0xE4CB, 0x8422, 0xE4CC, 0x8420, + 0xE4CD, 0x83BD, 0xE4CE, 0x8438, 0xE4CF, 0x8506, 0xE4D0, 0x83FB, + 0xE4D1, 0x846D, 0xE4D2, 0x842A, 0xE4D3, 0x843C, 0xE4D4, 0x855A, + 0xE4D5, 0x8484, 0xE4D6, 0x8477, 0xE4D7, 0x846B, 0xE4D8, 0x84AD, + 0xE4D9, 0x846E, 0xE4DA, 0x8482, 0xE4DB, 0x8469, 0xE4DC, 0x8446, + 0xE4DD, 0x842C, 0xE4DE, 0x846F, 0xE4DF, 0x8479, 0xE4E0, 0x8435, + 0xE4E1, 0x84CA, 0xE4E2, 0x8462, 0xE4E3, 0x84B9, 0xE4E4, 0x84BF, + 0xE4E5, 0x849F, 0xE4E6, 0x84D9, 0xE4E7, 0x84CD, 0xE4E8, 0x84BB, + 0xE4E9, 0x84DA, 0xE4EA, 0x84D0, 0xE4EB, 0x84C1, 0xE4EC, 0x84C6, + 0xE4ED, 0x84D6, 0xE4EE, 0x84A1, 0xE4EF, 0x8521, 0xE4F0, 0x84FF, + 0xE4F1, 0x84F4, 0xE4F2, 0x8517, 0xE4F3, 0x8518, 0xE4F4, 0x852C, + 0xE4F5, 0x851F, 0xE4F6, 0x8515, 0xE4F7, 0x8514, 0xE4F8, 0x84FC, + 0xE4F9, 0x8540, 0xE4FA, 0x8563, 0xE4FB, 0x8558, 0xE4FC, 0x8548, + 0xE540, 0x8541, 0xE541, 0x8602, 0xE542, 0x854B, 0xE543, 0x8555, + 0xE544, 0x8580, 0xE545, 0x85A4, 0xE546, 0x8588, 0xE547, 0x8591, + 0xE548, 0x858A, 0xE549, 0x85A8, 0xE54A, 0x856D, 0xE54B, 0x8594, + 0xE54C, 0x859B, 0xE54D, 0x85EA, 0xE54E, 0x8587, 0xE54F, 0x859C, + 0xE550, 0x8577, 0xE551, 0x857E, 0xE552, 0x8590, 0xE553, 0x85C9, + 0xE554, 0x85BA, 0xE555, 0x85CF, 0xE556, 0x85B9, 0xE557, 0x85D0, + 0xE558, 0x85D5, 0xE559, 0x85DD, 0xE55A, 0x85E5, 0xE55B, 0x85DC, + 0xE55C, 0x85F9, 0xE55D, 0x860A, 0xE55E, 0x8613, 0xE55F, 0x860B, + 0xE560, 0x85FE, 0xE561, 0x85FA, 0xE562, 0x8606, 0xE563, 0x8622, + 0xE564, 0x861A, 0xE565, 0x8630, 0xE566, 0x863F, 0xE567, 0x864D, + 0xE568, 0x4E55, 0xE569, 0x8654, 0xE56A, 0x865F, 0xE56B, 0x8667, + 0xE56C, 0x8671, 0xE56D, 0x8693, 0xE56E, 0x86A3, 0xE56F, 0x86A9, + 0xE570, 0x86AA, 0xE571, 0x868B, 0xE572, 0x868C, 0xE573, 0x86B6, + 0xE574, 0x86AF, 0xE575, 0x86C4, 0xE576, 0x86C6, 0xE577, 0x86B0, + 0xE578, 0x86C9, 0xE579, 0x8823, 0xE57A, 0x86AB, 0xE57B, 0x86D4, + 0xE57C, 0x86DE, 0xE57D, 0x86E9, 0xE57E, 0x86EC, 0xE580, 0x86DF, + 0xE581, 0x86DB, 0xE582, 0x86EF, 0xE583, 0x8712, 0xE584, 0x8706, + 0xE585, 0x8708, 0xE586, 0x8700, 0xE587, 0x8703, 0xE588, 0x86FB, + 0xE589, 0x8711, 0xE58A, 0x8709, 0xE58B, 0x870D, 0xE58C, 0x86F9, + 0xE58D, 0x870A, 0xE58E, 0x8734, 0xE58F, 0x873F, 0xE590, 0x8737, + 0xE591, 0x873B, 0xE592, 0x8725, 0xE593, 0x8729, 0xE594, 0x871A, + 0xE595, 0x8760, 0xE596, 0x875F, 0xE597, 0x8778, 0xE598, 0x874C, + 0xE599, 0x874E, 0xE59A, 0x8774, 0xE59B, 0x8757, 0xE59C, 0x8768, + 0xE59D, 0x876E, 0xE59E, 0x8759, 0xE59F, 0x8753, 0xE5A0, 0x8763, + 0xE5A1, 0x876A, 0xE5A2, 0x8805, 0xE5A3, 0x87A2, 0xE5A4, 0x879F, + 0xE5A5, 0x8782, 0xE5A6, 0x87AF, 0xE5A7, 0x87CB, 0xE5A8, 0x87BD, + 0xE5A9, 0x87C0, 0xE5AA, 0x87D0, 0xE5AB, 0x96D6, 0xE5AC, 0x87AB, + 0xE5AD, 0x87C4, 0xE5AE, 0x87B3, 0xE5AF, 0x87C7, 0xE5B0, 0x87C6, + 0xE5B1, 0x87BB, 0xE5B2, 0x87EF, 0xE5B3, 0x87F2, 0xE5B4, 0x87E0, + 0xE5B5, 0x880F, 0xE5B6, 0x880D, 0xE5B7, 0x87FE, 0xE5B8, 0x87F6, + 0xE5B9, 0x87F7, 0xE5BA, 0x880E, 0xE5BB, 0x87D2, 0xE5BC, 0x8811, + 0xE5BD, 0x8816, 0xE5BE, 0x8815, 0xE5BF, 0x8822, 0xE5C0, 0x8821, + 0xE5C1, 0x8831, 0xE5C2, 0x8836, 0xE5C3, 0x8839, 0xE5C4, 0x8827, + 0xE5C5, 0x883B, 0xE5C6, 0x8844, 0xE5C7, 0x8842, 0xE5C8, 0x8852, + 0xE5C9, 0x8859, 0xE5CA, 0x885E, 0xE5CB, 0x8862, 0xE5CC, 0x886B, + 0xE5CD, 0x8881, 0xE5CE, 0x887E, 0xE5CF, 0x889E, 0xE5D0, 0x8875, + 0xE5D1, 0x887D, 0xE5D2, 0x88B5, 0xE5D3, 0x8872, 0xE5D4, 0x8882, + 0xE5D5, 0x8897, 0xE5D6, 0x8892, 0xE5D7, 0x88AE, 0xE5D8, 0x8899, + 0xE5D9, 0x88A2, 0xE5DA, 0x888D, 0xE5DB, 0x88A4, 0xE5DC, 0x88B0, + 0xE5DD, 0x88BF, 0xE5DE, 0x88B1, 0xE5DF, 0x88C3, 0xE5E0, 0x88C4, + 0xE5E1, 0x88D4, 0xE5E2, 0x88D8, 0xE5E3, 0x88D9, 0xE5E4, 0x88DD, + 0xE5E5, 0x88F9, 0xE5E6, 0x8902, 0xE5E7, 0x88FC, 0xE5E8, 0x88F4, + 0xE5E9, 0x88E8, 0xE5EA, 0x88F2, 0xE5EB, 0x8904, 0xE5EC, 0x890C, + 0xE5ED, 0x890A, 0xE5EE, 0x8913, 0xE5EF, 0x8943, 0xE5F0, 0x891E, + 0xE5F1, 0x8925, 0xE5F2, 0x892A, 0xE5F3, 0x892B, 0xE5F4, 0x8941, + 0xE5F5, 0x8944, 0xE5F6, 0x893B, 0xE5F7, 0x8936, 0xE5F8, 0x8938, + 0xE5F9, 0x894C, 0xE5FA, 0x891D, 0xE5FB, 0x8960, 0xE5FC, 0x895E, + 0xE640, 0x8966, 0xE641, 0x8964, 0xE642, 0x896D, 0xE643, 0x896A, + 0xE644, 0x896F, 0xE645, 0x8974, 0xE646, 0x8977, 0xE647, 0x897E, + 0xE648, 0x8983, 0xE649, 0x8988, 0xE64A, 0x898A, 0xE64B, 0x8993, + 0xE64C, 0x8998, 0xE64D, 0x89A1, 0xE64E, 0x89A9, 0xE64F, 0x89A6, + 0xE650, 0x89AC, 0xE651, 0x89AF, 0xE652, 0x89B2, 0xE653, 0x89BA, + 0xE654, 0x89BD, 0xE655, 0x89BF, 0xE656, 0x89C0, 0xE657, 0x89DA, + 0xE658, 0x89DC, 0xE659, 0x89DD, 0xE65A, 0x89E7, 0xE65B, 0x89F4, + 0xE65C, 0x89F8, 0xE65D, 0x8A03, 0xE65E, 0x8A16, 0xE65F, 0x8A10, + 0xE660, 0x8A0C, 0xE661, 0x8A1B, 0xE662, 0x8A1D, 0xE663, 0x8A25, + 0xE664, 0x8A36, 0xE665, 0x8A41, 0xE666, 0x8A5B, 0xE667, 0x8A52, + 0xE668, 0x8A46, 0xE669, 0x8A48, 0xE66A, 0x8A7C, 0xE66B, 0x8A6D, + 0xE66C, 0x8A6C, 0xE66D, 0x8A62, 0xE66E, 0x8A85, 0xE66F, 0x8A82, + 0xE670, 0x8A84, 0xE671, 0x8AA8, 0xE672, 0x8AA1, 0xE673, 0x8A91, + 0xE674, 0x8AA5, 0xE675, 0x8AA6, 0xE676, 0x8A9A, 0xE677, 0x8AA3, + 0xE678, 0x8AC4, 0xE679, 0x8ACD, 0xE67A, 0x8AC2, 0xE67B, 0x8ADA, + 0xE67C, 0x8AEB, 0xE67D, 0x8AF3, 0xE67E, 0x8AE7, 0xE680, 0x8AE4, + 0xE681, 0x8AF1, 0xE682, 0x8B14, 0xE683, 0x8AE0, 0xE684, 0x8AE2, + 0xE685, 0x8AF7, 0xE686, 0x8ADE, 0xE687, 0x8ADB, 0xE688, 0x8B0C, + 0xE689, 0x8B07, 0xE68A, 0x8B1A, 0xE68B, 0x8AE1, 0xE68C, 0x8B16, + 0xE68D, 0x8B10, 0xE68E, 0x8B17, 0xE68F, 0x8B20, 0xE690, 0x8B33, + 0xE691, 0x97AB, 0xE692, 0x8B26, 0xE693, 0x8B2B, 0xE694, 0x8B3E, + 0xE695, 0x8B28, 0xE696, 0x8B41, 0xE697, 0x8B4C, 0xE698, 0x8B4F, + 0xE699, 0x8B4E, 0xE69A, 0x8B49, 0xE69B, 0x8B56, 0xE69C, 0x8B5B, + 0xE69D, 0x8B5A, 0xE69E, 0x8B6B, 0xE69F, 0x8B5F, 0xE6A0, 0x8B6C, + 0xE6A1, 0x8B6F, 0xE6A2, 0x8B74, 0xE6A3, 0x8B7D, 0xE6A4, 0x8B80, + 0xE6A5, 0x8B8C, 0xE6A6, 0x8B8E, 0xE6A7, 0x8B92, 0xE6A8, 0x8B93, + 0xE6A9, 0x8B96, 0xE6AA, 0x8B99, 0xE6AB, 0x8B9A, 0xE6AC, 0x8C3A, + 0xE6AD, 0x8C41, 0xE6AE, 0x8C3F, 0xE6AF, 0x8C48, 0xE6B0, 0x8C4C, + 0xE6B1, 0x8C4E, 0xE6B2, 0x8C50, 0xE6B3, 0x8C55, 0xE6B4, 0x8C62, + 0xE6B5, 0x8C6C, 0xE6B6, 0x8C78, 0xE6B7, 0x8C7A, 0xE6B8, 0x8C82, + 0xE6B9, 0x8C89, 0xE6BA, 0x8C85, 0xE6BB, 0x8C8A, 0xE6BC, 0x8C8D, + 0xE6BD, 0x8C8E, 0xE6BE, 0x8C94, 0xE6BF, 0x8C7C, 0xE6C0, 0x8C98, + 0xE6C1, 0x621D, 0xE6C2, 0x8CAD, 0xE6C3, 0x8CAA, 0xE6C4, 0x8CBD, + 0xE6C5, 0x8CB2, 0xE6C6, 0x8CB3, 0xE6C7, 0x8CAE, 0xE6C8, 0x8CB6, + 0xE6C9, 0x8CC8, 0xE6CA, 0x8CC1, 0xE6CB, 0x8CE4, 0xE6CC, 0x8CE3, + 0xE6CD, 0x8CDA, 0xE6CE, 0x8CFD, 0xE6CF, 0x8CFA, 0xE6D0, 0x8CFB, + 0xE6D1, 0x8D04, 0xE6D2, 0x8D05, 0xE6D3, 0x8D0A, 0xE6D4, 0x8D07, + 0xE6D5, 0x8D0F, 0xE6D6, 0x8D0D, 0xE6D7, 0x8D10, 0xE6D8, 0x9F4E, + 0xE6D9, 0x8D13, 0xE6DA, 0x8CCD, 0xE6DB, 0x8D14, 0xE6DC, 0x8D16, + 0xE6DD, 0x8D67, 0xE6DE, 0x8D6D, 0xE6DF, 0x8D71, 0xE6E0, 0x8D73, + 0xE6E1, 0x8D81, 0xE6E2, 0x8D99, 0xE6E3, 0x8DC2, 0xE6E4, 0x8DBE, + 0xE6E5, 0x8DBA, 0xE6E6, 0x8DCF, 0xE6E7, 0x8DDA, 0xE6E8, 0x8DD6, + 0xE6E9, 0x8DCC, 0xE6EA, 0x8DDB, 0xE6EB, 0x8DCB, 0xE6EC, 0x8DEA, + 0xE6ED, 0x8DEB, 0xE6EE, 0x8DDF, 0xE6EF, 0x8DE3, 0xE6F0, 0x8DFC, + 0xE6F1, 0x8E08, 0xE6F2, 0x8E09, 0xE6F3, 0x8DFF, 0xE6F4, 0x8E1D, + 0xE6F5, 0x8E1E, 0xE6F6, 0x8E10, 0xE6F7, 0x8E1F, 0xE6F8, 0x8E42, + 0xE6F9, 0x8E35, 0xE6FA, 0x8E30, 0xE6FB, 0x8E34, 0xE6FC, 0x8E4A, + 0xE740, 0x8E47, 0xE741, 0x8E49, 0xE742, 0x8E4C, 0xE743, 0x8E50, + 0xE744, 0x8E48, 0xE745, 0x8E59, 0xE746, 0x8E64, 0xE747, 0x8E60, + 0xE748, 0x8E2A, 0xE749, 0x8E63, 0xE74A, 0x8E55, 0xE74B, 0x8E76, + 0xE74C, 0x8E72, 0xE74D, 0x8E7C, 0xE74E, 0x8E81, 0xE74F, 0x8E87, + 0xE750, 0x8E85, 0xE751, 0x8E84, 0xE752, 0x8E8B, 0xE753, 0x8E8A, + 0xE754, 0x8E93, 0xE755, 0x8E91, 0xE756, 0x8E94, 0xE757, 0x8E99, + 0xE758, 0x8EAA, 0xE759, 0x8EA1, 0xE75A, 0x8EAC, 0xE75B, 0x8EB0, + 0xE75C, 0x8EC6, 0xE75D, 0x8EB1, 0xE75E, 0x8EBE, 0xE75F, 0x8EC5, + 0xE760, 0x8EC8, 0xE761, 0x8ECB, 0xE762, 0x8EDB, 0xE763, 0x8EE3, + 0xE764, 0x8EFC, 0xE765, 0x8EFB, 0xE766, 0x8EEB, 0xE767, 0x8EFE, + 0xE768, 0x8F0A, 0xE769, 0x8F05, 0xE76A, 0x8F15, 0xE76B, 0x8F12, + 0xE76C, 0x8F19, 0xE76D, 0x8F13, 0xE76E, 0x8F1C, 0xE76F, 0x8F1F, + 0xE770, 0x8F1B, 0xE771, 0x8F0C, 0xE772, 0x8F26, 0xE773, 0x8F33, + 0xE774, 0x8F3B, 0xE775, 0x8F39, 0xE776, 0x8F45, 0xE777, 0x8F42, + 0xE778, 0x8F3E, 0xE779, 0x8F4C, 0xE77A, 0x8F49, 0xE77B, 0x8F46, + 0xE77C, 0x8F4E, 0xE77D, 0x8F57, 0xE77E, 0x8F5C, 0xE780, 0x8F62, + 0xE781, 0x8F63, 0xE782, 0x8F64, 0xE783, 0x8F9C, 0xE784, 0x8F9F, + 0xE785, 0x8FA3, 0xE786, 0x8FAD, 0xE787, 0x8FAF, 0xE788, 0x8FB7, + 0xE789, 0x8FDA, 0xE78A, 0x8FE5, 0xE78B, 0x8FE2, 0xE78C, 0x8FEA, + 0xE78D, 0x8FEF, 0xE78E, 0x9087, 0xE78F, 0x8FF4, 0xE790, 0x9005, + 0xE791, 0x8FF9, 0xE792, 0x8FFA, 0xE793, 0x9011, 0xE794, 0x9015, + 0xE795, 0x9021, 0xE796, 0x900D, 0xE797, 0x901E, 0xE798, 0x9016, + 0xE799, 0x900B, 0xE79A, 0x9027, 0xE79B, 0x9036, 0xE79C, 0x9035, + 0xE79D, 0x9039, 0xE79E, 0x8FF8, 0xE79F, 0x904F, 0xE7A0, 0x9050, + 0xE7A1, 0x9051, 0xE7A2, 0x9052, 0xE7A3, 0x900E, 0xE7A4, 0x9049, + 0xE7A5, 0x903E, 0xE7A6, 0x9056, 0xE7A7, 0x9058, 0xE7A8, 0x905E, + 0xE7A9, 0x9068, 0xE7AA, 0x906F, 0xE7AB, 0x9076, 0xE7AC, 0x96A8, + 0xE7AD, 0x9072, 0xE7AE, 0x9082, 0xE7AF, 0x907D, 0xE7B0, 0x9081, + 0xE7B1, 0x9080, 0xE7B2, 0x908A, 0xE7B3, 0x9089, 0xE7B4, 0x908F, + 0xE7B5, 0x90A8, 0xE7B6, 0x90AF, 0xE7B7, 0x90B1, 0xE7B8, 0x90B5, + 0xE7B9, 0x90E2, 0xE7BA, 0x90E4, 0xE7BB, 0x6248, 0xE7BC, 0x90DB, + 0xE7BD, 0x9102, 0xE7BE, 0x9112, 0xE7BF, 0x9119, 0xE7C0, 0x9132, + 0xE7C1, 0x9130, 0xE7C2, 0x914A, 0xE7C3, 0x9156, 0xE7C4, 0x9158, + 0xE7C5, 0x9163, 0xE7C6, 0x9165, 0xE7C7, 0x9169, 0xE7C8, 0x9173, + 0xE7C9, 0x9172, 0xE7CA, 0x918B, 0xE7CB, 0x9189, 0xE7CC, 0x9182, + 0xE7CD, 0x91A2, 0xE7CE, 0x91AB, 0xE7CF, 0x91AF, 0xE7D0, 0x91AA, + 0xE7D1, 0x91B5, 0xE7D2, 0x91B4, 0xE7D3, 0x91BA, 0xE7D4, 0x91C0, + 0xE7D5, 0x91C1, 0xE7D6, 0x91C9, 0xE7D7, 0x91CB, 0xE7D8, 0x91D0, + 0xE7D9, 0x91D6, 0xE7DA, 0x91DF, 0xE7DB, 0x91E1, 0xE7DC, 0x91DB, + 0xE7DD, 0x91FC, 0xE7DE, 0x91F5, 0xE7DF, 0x91F6, 0xE7E0, 0x921E, + 0xE7E1, 0x91FF, 0xE7E2, 0x9214, 0xE7E3, 0x922C, 0xE7E4, 0x9215, + 0xE7E5, 0x9211, 0xE7E6, 0x925E, 0xE7E7, 0x9257, 0xE7E8, 0x9245, + 0xE7E9, 0x9249, 0xE7EA, 0x9264, 0xE7EB, 0x9248, 0xE7EC, 0x9295, + 0xE7ED, 0x923F, 0xE7EE, 0x924B, 0xE7EF, 0x9250, 0xE7F0, 0x929C, + 0xE7F1, 0x9296, 0xE7F2, 0x9293, 0xE7F3, 0x929B, 0xE7F4, 0x925A, + 0xE7F5, 0x92CF, 0xE7F6, 0x92B9, 0xE7F7, 0x92B7, 0xE7F8, 0x92E9, + 0xE7F9, 0x930F, 0xE7FA, 0x92FA, 0xE7FB, 0x9344, 0xE7FC, 0x932E, + 0xE840, 0x9319, 0xE841, 0x9322, 0xE842, 0x931A, 0xE843, 0x9323, + 0xE844, 0x933A, 0xE845, 0x9335, 0xE846, 0x933B, 0xE847, 0x935C, + 0xE848, 0x9360, 0xE849, 0x937C, 0xE84A, 0x936E, 0xE84B, 0x9356, + 0xE84C, 0x93B0, 0xE84D, 0x93AC, 0xE84E, 0x93AD, 0xE84F, 0x9394, + 0xE850, 0x93B9, 0xE851, 0x93D6, 0xE852, 0x93D7, 0xE853, 0x93E8, + 0xE854, 0x93E5, 0xE855, 0x93D8, 0xE856, 0x93C3, 0xE857, 0x93DD, + 0xE858, 0x93D0, 0xE859, 0x93C8, 0xE85A, 0x93E4, 0xE85B, 0x941A, + 0xE85C, 0x9414, 0xE85D, 0x9413, 0xE85E, 0x9403, 0xE85F, 0x9407, + 0xE860, 0x9410, 0xE861, 0x9436, 0xE862, 0x942B, 0xE863, 0x9435, + 0xE864, 0x9421, 0xE865, 0x943A, 0xE866, 0x9441, 0xE867, 0x9452, + 0xE868, 0x9444, 0xE869, 0x945B, 0xE86A, 0x9460, 0xE86B, 0x9462, + 0xE86C, 0x945E, 0xE86D, 0x946A, 0xE86E, 0x9229, 0xE86F, 0x9470, + 0xE870, 0x9475, 0xE871, 0x9477, 0xE872, 0x947D, 0xE873, 0x945A, + 0xE874, 0x947C, 0xE875, 0x947E, 0xE876, 0x9481, 0xE877, 0x947F, + 0xE878, 0x9582, 0xE879, 0x9587, 0xE87A, 0x958A, 0xE87B, 0x9594, + 0xE87C, 0x9596, 0xE87D, 0x9598, 0xE87E, 0x9599, 0xE880, 0x95A0, + 0xE881, 0x95A8, 0xE882, 0x95A7, 0xE883, 0x95AD, 0xE884, 0x95BC, + 0xE885, 0x95BB, 0xE886, 0x95B9, 0xE887, 0x95BE, 0xE888, 0x95CA, + 0xE889, 0x6FF6, 0xE88A, 0x95C3, 0xE88B, 0x95CD, 0xE88C, 0x95CC, + 0xE88D, 0x95D5, 0xE88E, 0x95D4, 0xE88F, 0x95D6, 0xE890, 0x95DC, + 0xE891, 0x95E1, 0xE892, 0x95E5, 0xE893, 0x95E2, 0xE894, 0x9621, + 0xE895, 0x9628, 0xE896, 0x962E, 0xE897, 0x962F, 0xE898, 0x9642, + 0xE899, 0x964C, 0xE89A, 0x964F, 0xE89B, 0x964B, 0xE89C, 0x9677, + 0xE89D, 0x965C, 0xE89E, 0x965E, 0xE89F, 0x965D, 0xE8A0, 0x965F, + 0xE8A1, 0x9666, 0xE8A2, 0x9672, 0xE8A3, 0x966C, 0xE8A4, 0x968D, + 0xE8A5, 0x9698, 0xE8A6, 0x9695, 0xE8A7, 0x9697, 0xE8A8, 0x96AA, + 0xE8A9, 0x96A7, 0xE8AA, 0x96B1, 0xE8AB, 0x96B2, 0xE8AC, 0x96B0, + 0xE8AD, 0x96B4, 0xE8AE, 0x96B6, 0xE8AF, 0x96B8, 0xE8B0, 0x96B9, + 0xE8B1, 0x96CE, 0xE8B2, 0x96CB, 0xE8B3, 0x96C9, 0xE8B4, 0x96CD, + 0xE8B5, 0x894D, 0xE8B6, 0x96DC, 0xE8B7, 0x970D, 0xE8B8, 0x96D5, + 0xE8B9, 0x96F9, 0xE8BA, 0x9704, 0xE8BB, 0x9706, 0xE8BC, 0x9708, + 0xE8BD, 0x9713, 0xE8BE, 0x970E, 0xE8BF, 0x9711, 0xE8C0, 0x970F, + 0xE8C1, 0x9716, 0xE8C2, 0x9719, 0xE8C3, 0x9724, 0xE8C4, 0x972A, + 0xE8C5, 0x9730, 0xE8C6, 0x9739, 0xE8C7, 0x973D, 0xE8C8, 0x973E, + 0xE8C9, 0x9744, 0xE8CA, 0x9746, 0xE8CB, 0x9748, 0xE8CC, 0x9742, + 0xE8CD, 0x9749, 0xE8CE, 0x975C, 0xE8CF, 0x9760, 0xE8D0, 0x9764, + 0xE8D1, 0x9766, 0xE8D2, 0x9768, 0xE8D3, 0x52D2, 0xE8D4, 0x976B, + 0xE8D5, 0x9771, 0xE8D6, 0x9779, 0xE8D7, 0x9785, 0xE8D8, 0x977C, + 0xE8D9, 0x9781, 0xE8DA, 0x977A, 0xE8DB, 0x9786, 0xE8DC, 0x978B, + 0xE8DD, 0x978F, 0xE8DE, 0x9790, 0xE8DF, 0x979C, 0xE8E0, 0x97A8, + 0xE8E1, 0x97A6, 0xE8E2, 0x97A3, 0xE8E3, 0x97B3, 0xE8E4, 0x97B4, + 0xE8E5, 0x97C3, 0xE8E6, 0x97C6, 0xE8E7, 0x97C8, 0xE8E8, 0x97CB, + 0xE8E9, 0x97DC, 0xE8EA, 0x97ED, 0xE8EB, 0x9F4F, 0xE8EC, 0x97F2, + 0xE8ED, 0x7ADF, 0xE8EE, 0x97F6, 0xE8EF, 0x97F5, 0xE8F0, 0x980F, + 0xE8F1, 0x980C, 0xE8F2, 0x9838, 0xE8F3, 0x9824, 0xE8F4, 0x9821, + 0xE8F5, 0x9837, 0xE8F6, 0x983D, 0xE8F7, 0x9846, 0xE8F8, 0x984F, + 0xE8F9, 0x984B, 0xE8FA, 0x986B, 0xE8FB, 0x986F, 0xE8FC, 0x9870, + 0xE940, 0x9871, 0xE941, 0x9874, 0xE942, 0x9873, 0xE943, 0x98AA, + 0xE944, 0x98AF, 0xE945, 0x98B1, 0xE946, 0x98B6, 0xE947, 0x98C4, + 0xE948, 0x98C3, 0xE949, 0x98C6, 0xE94A, 0x98E9, 0xE94B, 0x98EB, + 0xE94C, 0x9903, 0xE94D, 0x9909, 0xE94E, 0x9912, 0xE94F, 0x9914, + 0xE950, 0x9918, 0xE951, 0x9921, 0xE952, 0x991D, 0xE953, 0x991E, + 0xE954, 0x9924, 0xE955, 0x9920, 0xE956, 0x992C, 0xE957, 0x992E, + 0xE958, 0x993D, 0xE959, 0x993E, 0xE95A, 0x9942, 0xE95B, 0x9949, + 0xE95C, 0x9945, 0xE95D, 0x9950, 0xE95E, 0x994B, 0xE95F, 0x9951, + 0xE960, 0x9952, 0xE961, 0x994C, 0xE962, 0x9955, 0xE963, 0x9997, + 0xE964, 0x9998, 0xE965, 0x99A5, 0xE966, 0x99AD, 0xE967, 0x99AE, + 0xE968, 0x99BC, 0xE969, 0x99DF, 0xE96A, 0x99DB, 0xE96B, 0x99DD, + 0xE96C, 0x99D8, 0xE96D, 0x99D1, 0xE96E, 0x99ED, 0xE96F, 0x99EE, + 0xE970, 0x99F1, 0xE971, 0x99F2, 0xE972, 0x99FB, 0xE973, 0x99F8, + 0xE974, 0x9A01, 0xE975, 0x9A0F, 0xE976, 0x9A05, 0xE977, 0x99E2, + 0xE978, 0x9A19, 0xE979, 0x9A2B, 0xE97A, 0x9A37, 0xE97B, 0x9A45, + 0xE97C, 0x9A42, 0xE97D, 0x9A40, 0xE97E, 0x9A43, 0xE980, 0x9A3E, + 0xE981, 0x9A55, 0xE982, 0x9A4D, 0xE983, 0x9A5B, 0xE984, 0x9A57, + 0xE985, 0x9A5F, 0xE986, 0x9A62, 0xE987, 0x9A65, 0xE988, 0x9A64, + 0xE989, 0x9A69, 0xE98A, 0x9A6B, 0xE98B, 0x9A6A, 0xE98C, 0x9AAD, + 0xE98D, 0x9AB0, 0xE98E, 0x9ABC, 0xE98F, 0x9AC0, 0xE990, 0x9ACF, + 0xE991, 0x9AD1, 0xE992, 0x9AD3, 0xE993, 0x9AD4, 0xE994, 0x9ADE, + 0xE995, 0x9ADF, 0xE996, 0x9AE2, 0xE997, 0x9AE3, 0xE998, 0x9AE6, + 0xE999, 0x9AEF, 0xE99A, 0x9AEB, 0xE99B, 0x9AEE, 0xE99C, 0x9AF4, + 0xE99D, 0x9AF1, 0xE99E, 0x9AF7, 0xE99F, 0x9AFB, 0xE9A0, 0x9B06, + 0xE9A1, 0x9B18, 0xE9A2, 0x9B1A, 0xE9A3, 0x9B1F, 0xE9A4, 0x9B22, + 0xE9A5, 0x9B23, 0xE9A6, 0x9B25, 0xE9A7, 0x9B27, 0xE9A8, 0x9B28, + 0xE9A9, 0x9B29, 0xE9AA, 0x9B2A, 0xE9AB, 0x9B2E, 0xE9AC, 0x9B2F, + 0xE9AD, 0x9B32, 0xE9AE, 0x9B44, 0xE9AF, 0x9B43, 0xE9B0, 0x9B4F, + 0xE9B1, 0x9B4D, 0xE9B2, 0x9B4E, 0xE9B3, 0x9B51, 0xE9B4, 0x9B58, + 0xE9B5, 0x9B74, 0xE9B6, 0x9B93, 0xE9B7, 0x9B83, 0xE9B8, 0x9B91, + 0xE9B9, 0x9B96, 0xE9BA, 0x9B97, 0xE9BB, 0x9B9F, 0xE9BC, 0x9BA0, + 0xE9BD, 0x9BA8, 0xE9BE, 0x9BB4, 0xE9BF, 0x9BC0, 0xE9C0, 0x9BCA, + 0xE9C1, 0x9BB9, 0xE9C2, 0x9BC6, 0xE9C3, 0x9BCF, 0xE9C4, 0x9BD1, + 0xE9C5, 0x9BD2, 0xE9C6, 0x9BE3, 0xE9C7, 0x9BE2, 0xE9C8, 0x9BE4, + 0xE9C9, 0x9BD4, 0xE9CA, 0x9BE1, 0xE9CB, 0x9C3A, 0xE9CC, 0x9BF2, + 0xE9CD, 0x9BF1, 0xE9CE, 0x9BF0, 0xE9CF, 0x9C15, 0xE9D0, 0x9C14, + 0xE9D1, 0x9C09, 0xE9D2, 0x9C13, 0xE9D3, 0x9C0C, 0xE9D4, 0x9C06, + 0xE9D5, 0x9C08, 0xE9D6, 0x9C12, 0xE9D7, 0x9C0A, 0xE9D8, 0x9C04, + 0xE9D9, 0x9C2E, 0xE9DA, 0x9C1B, 0xE9DB, 0x9C25, 0xE9DC, 0x9C24, + 0xE9DD, 0x9C21, 0xE9DE, 0x9C30, 0xE9DF, 0x9C47, 0xE9E0, 0x9C32, + 0xE9E1, 0x9C46, 0xE9E2, 0x9C3E, 0xE9E3, 0x9C5A, 0xE9E4, 0x9C60, + 0xE9E5, 0x9C67, 0xE9E6, 0x9C76, 0xE9E7, 0x9C78, 0xE9E8, 0x9CE7, + 0xE9E9, 0x9CEC, 0xE9EA, 0x9CF0, 0xE9EB, 0x9D09, 0xE9EC, 0x9D08, + 0xE9ED, 0x9CEB, 0xE9EE, 0x9D03, 0xE9EF, 0x9D06, 0xE9F0, 0x9D2A, + 0xE9F1, 0x9D26, 0xE9F2, 0x9DAF, 0xE9F3, 0x9D23, 0xE9F4, 0x9D1F, + 0xE9F5, 0x9D44, 0xE9F6, 0x9D15, 0xE9F7, 0x9D12, 0xE9F8, 0x9D41, + 0xE9F9, 0x9D3F, 0xE9FA, 0x9D3E, 0xE9FB, 0x9D46, 0xE9FC, 0x9D48, + 0xEA40, 0x9D5D, 0xEA41, 0x9D5E, 0xEA42, 0x9D64, 0xEA43, 0x9D51, + 0xEA44, 0x9D50, 0xEA45, 0x9D59, 0xEA46, 0x9D72, 0xEA47, 0x9D89, + 0xEA48, 0x9D87, 0xEA49, 0x9DAB, 0xEA4A, 0x9D6F, 0xEA4B, 0x9D7A, + 0xEA4C, 0x9D9A, 0xEA4D, 0x9DA4, 0xEA4E, 0x9DA9, 0xEA4F, 0x9DB2, + 0xEA50, 0x9DC4, 0xEA51, 0x9DC1, 0xEA52, 0x9DBB, 0xEA53, 0x9DB8, + 0xEA54, 0x9DBA, 0xEA55, 0x9DC6, 0xEA56, 0x9DCF, 0xEA57, 0x9DC2, + 0xEA58, 0x9DD9, 0xEA59, 0x9DD3, 0xEA5A, 0x9DF8, 0xEA5B, 0x9DE6, + 0xEA5C, 0x9DED, 0xEA5D, 0x9DEF, 0xEA5E, 0x9DFD, 0xEA5F, 0x9E1A, + 0xEA60, 0x9E1B, 0xEA61, 0x9E1E, 0xEA62, 0x9E75, 0xEA63, 0x9E79, + 0xEA64, 0x9E7D, 0xEA65, 0x9E81, 0xEA66, 0x9E88, 0xEA67, 0x9E8B, + 0xEA68, 0x9E8C, 0xEA69, 0x9E92, 0xEA6A, 0x9E95, 0xEA6B, 0x9E91, + 0xEA6C, 0x9E9D, 0xEA6D, 0x9EA5, 0xEA6E, 0x9EA9, 0xEA6F, 0x9EB8, + 0xEA70, 0x9EAA, 0xEA71, 0x9EAD, 0xEA72, 0x9761, 0xEA73, 0x9ECC, + 0xEA74, 0x9ECE, 0xEA75, 0x9ECF, 0xEA76, 0x9ED0, 0xEA77, 0x9ED4, + 0xEA78, 0x9EDC, 0xEA79, 0x9EDE, 0xEA7A, 0x9EDD, 0xEA7B, 0x9EE0, + 0xEA7C, 0x9EE5, 0xEA7D, 0x9EE8, 0xEA7E, 0x9EEF, 0xEA80, 0x9EF4, + 0xEA81, 0x9EF6, 0xEA82, 0x9EF7, 0xEA83, 0x9EF9, 0xEA84, 0x9EFB, + 0xEA85, 0x9EFC, 0xEA86, 0x9EFD, 0xEA87, 0x9F07, 0xEA88, 0x9F08, + 0xEA89, 0x76B7, 0xEA8A, 0x9F15, 0xEA8B, 0x9F21, 0xEA8C, 0x9F2C, + 0xEA8D, 0x9F3E, 0xEA8E, 0x9F4A, 0xEA8F, 0x9F52, 0xEA90, 0x9F54, + 0xEA91, 0x9F63, 0xEA92, 0x9F5F, 0xEA93, 0x9F60, 0xEA94, 0x9F61, + 0xEA95, 0x9F66, 0xEA96, 0x9F67, 0xEA97, 0x9F6C, 0xEA98, 0x9F6A, + 0xEA99, 0x9F77, 0xEA9A, 0x9F72, 0xEA9B, 0x9F76, 0xEA9C, 0x9F95, + 0xEA9D, 0x9F9C, 0xEA9E, 0x9FA0, 0xEA9F, 0x582F, 0xEAA0, 0x69C7, + 0xEAA1, 0x9059, 0xEAA2, 0x7464, 0xEAA3, 0x51DC, 0xEAA4, 0x7199, + 0xFA40, 0x2170, 0xFA41, 0x2171, 0xFA42, 0x2172, 0xFA43, 0x2173, + 0xFA44, 0x2174, 0xFA45, 0x2175, 0xFA46, 0x2176, 0xFA47, 0x2177, + 0xFA48, 0x2178, 0xFA49, 0x2179, 0xFA55, 0xFFE4, 0xFA56, 0xFF07, + 0xFA57, 0xFF02, 0xFA5C, 0x7E8A, 0xFA5D, 0x891C, 0xFA5E, 0x9348, + 0xFA5F, 0x9288, 0xFA60, 0x84DC, 0xFA61, 0x4FC9, 0xFA62, 0x70BB, + 0xFA63, 0x6631, 0xFA64, 0x68C8, 0xFA65, 0x92F9, 0xFA66, 0x66FB, + 0xFA67, 0x5F45, 0xFA68, 0x4E28, 0xFA69, 0x4EE1, 0xFA6A, 0x4EFC, + 0xFA6B, 0x4F00, 0xFA6C, 0x4F03, 0xFA6D, 0x4F39, 0xFA6E, 0x4F56, + 0xFA6F, 0x4F92, 0xFA70, 0x4F8A, 0xFA71, 0x4F9A, 0xFA72, 0x4F94, + 0xFA73, 0x4FCD, 0xFA74, 0x5040, 0xFA75, 0x5022, 0xFA76, 0x4FFF, + 0xFA77, 0x501E, 0xFA78, 0x5046, 0xFA79, 0x5070, 0xFA7A, 0x5042, + 0xFA7B, 0x5094, 0xFA7C, 0x50F4, 0xFA7D, 0x50D8, 0xFA7E, 0x514A, + 0xFA80, 0x5164, 0xFA81, 0x519D, 0xFA82, 0x51BE, 0xFA83, 0x51EC, + 0xFA84, 0x5215, 0xFA85, 0x529C, 0xFA86, 0x52A6, 0xFA87, 0x52C0, + 0xFA88, 0x52DB, 0xFA89, 0x5300, 0xFA8A, 0x5307, 0xFA8B, 0x5324, + 0xFA8C, 0x5372, 0xFA8D, 0x5393, 0xFA8E, 0x53B2, 0xFA8F, 0x53DD, + 0xFA90, 0xFA0E, 0xFA91, 0x549C, 0xFA92, 0x548A, 0xFA93, 0x54A9, + 0xFA94, 0x54FF, 0xFA95, 0x5586, 0xFA96, 0x5759, 0xFA97, 0x5765, + 0xFA98, 0x57AC, 0xFA99, 0x57C8, 0xFA9A, 0x57C7, 0xFA9B, 0xFA0F, + 0xFA9C, 0xFA10, 0xFA9D, 0x589E, 0xFA9E, 0x58B2, 0xFA9F, 0x590B, + 0xFAA0, 0x5953, 0xFAA1, 0x595B, 0xFAA2, 0x595D, 0xFAA3, 0x5963, + 0xFAA4, 0x59A4, 0xFAA5, 0x59BA, 0xFAA6, 0x5B56, 0xFAA7, 0x5BC0, + 0xFAA8, 0x752F, 0xFAA9, 0x5BD8, 0xFAAA, 0x5BEC, 0xFAAB, 0x5C1E, + 0xFAAC, 0x5CA6, 0xFAAD, 0x5CBA, 0xFAAE, 0x5CF5, 0xFAAF, 0x5D27, + 0xFAB0, 0x5D53, 0xFAB1, 0xFA11, 0xFAB2, 0x5D42, 0xFAB3, 0x5D6D, + 0xFAB4, 0x5DB8, 0xFAB5, 0x5DB9, 0xFAB6, 0x5DD0, 0xFAB7, 0x5F21, + 0xFAB8, 0x5F34, 0xFAB9, 0x5F67, 0xFABA, 0x5FB7, 0xFABB, 0x5FDE, + 0xFABC, 0x605D, 0xFABD, 0x6085, 0xFABE, 0x608A, 0xFABF, 0x60DE, + 0xFAC0, 0x60D5, 0xFAC1, 0x6120, 0xFAC2, 0x60F2, 0xFAC3, 0x6111, + 0xFAC4, 0x6137, 0xFAC5, 0x6130, 0xFAC6, 0x6198, 0xFAC7, 0x6213, + 0xFAC8, 0x62A6, 0xFAC9, 0x63F5, 0xFACA, 0x6460, 0xFACB, 0x649D, + 0xFACC, 0x64CE, 0xFACD, 0x654E, 0xFACE, 0x6600, 0xFACF, 0x6615, + 0xFAD0, 0x663B, 0xFAD1, 0x6609, 0xFAD2, 0x662E, 0xFAD3, 0x661E, + 0xFAD4, 0x6624, 0xFAD5, 0x6665, 0xFAD6, 0x6657, 0xFAD7, 0x6659, + 0xFAD8, 0xFA12, 0xFAD9, 0x6673, 0xFADA, 0x6699, 0xFADB, 0x66A0, + 0xFADC, 0x66B2, 0xFADD, 0x66BF, 0xFADE, 0x66FA, 0xFADF, 0x670E, + 0xFAE0, 0xF929, 0xFAE1, 0x6766, 0xFAE2, 0x67BB, 0xFAE3, 0x6852, + 0xFAE4, 0x67C0, 0xFAE5, 0x6801, 0xFAE6, 0x6844, 0xFAE7, 0x68CF, + 0xFAE8, 0xFA13, 0xFAE9, 0x6968, 0xFAEA, 0xFA14, 0xFAEB, 0x6998, + 0xFAEC, 0x69E2, 0xFAED, 0x6A30, 0xFAEE, 0x6A6B, 0xFAEF, 0x6A46, + 0xFAF0, 0x6A73, 0xFAF1, 0x6A7E, 0xFAF2, 0x6AE2, 0xFAF3, 0x6AE4, + 0xFAF4, 0x6BD6, 0xFAF5, 0x6C3F, 0xFAF6, 0x6C5C, 0xFAF7, 0x6C86, + 0xFAF8, 0x6C6F, 0xFAF9, 0x6CDA, 0xFAFA, 0x6D04, 0xFAFB, 0x6D87, + 0xFAFC, 0x6D6F, 0xFB40, 0x6D96, 0xFB41, 0x6DAC, 0xFB42, 0x6DCF, + 0xFB43, 0x6DF8, 0xFB44, 0x6DF2, 0xFB45, 0x6DFC, 0xFB46, 0x6E39, + 0xFB47, 0x6E5C, 0xFB48, 0x6E27, 0xFB49, 0x6E3C, 0xFB4A, 0x6EBF, + 0xFB4B, 0x6F88, 0xFB4C, 0x6FB5, 0xFB4D, 0x6FF5, 0xFB4E, 0x7005, + 0xFB4F, 0x7007, 0xFB50, 0x7028, 0xFB51, 0x7085, 0xFB52, 0x70AB, + 0xFB53, 0x710F, 0xFB54, 0x7104, 0xFB55, 0x715C, 0xFB56, 0x7146, + 0xFB57, 0x7147, 0xFB58, 0xFA15, 0xFB59, 0x71C1, 0xFB5A, 0x71FE, + 0xFB5B, 0x72B1, 0xFB5C, 0x72BE, 0xFB5D, 0x7324, 0xFB5E, 0xFA16, + 0xFB5F, 0x7377, 0xFB60, 0x73BD, 0xFB61, 0x73C9, 0xFB62, 0x73D6, + 0xFB63, 0x73E3, 0xFB64, 0x73D2, 0xFB65, 0x7407, 0xFB66, 0x73F5, + 0xFB67, 0x7426, 0xFB68, 0x742A, 0xFB69, 0x7429, 0xFB6A, 0x742E, + 0xFB6B, 0x7462, 0xFB6C, 0x7489, 0xFB6D, 0x749F, 0xFB6E, 0x7501, + 0xFB6F, 0x756F, 0xFB70, 0x7682, 0xFB71, 0x769C, 0xFB72, 0x769E, + 0xFB73, 0x769B, 0xFB74, 0x76A6, 0xFB75, 0xFA17, 0xFB76, 0x7746, + 0xFB77, 0x52AF, 0xFB78, 0x7821, 0xFB79, 0x784E, 0xFB7A, 0x7864, + 0xFB7B, 0x787A, 0xFB7C, 0x7930, 0xFB7D, 0xFA18, 0xFB7E, 0xFA19, + 0xFB80, 0xFA1A, 0xFB81, 0x7994, 0xFB82, 0xFA1B, 0xFB83, 0x799B, + 0xFB84, 0x7AD1, 0xFB85, 0x7AE7, 0xFB86, 0xFA1C, 0xFB87, 0x7AEB, + 0xFB88, 0x7B9E, 0xFB89, 0xFA1D, 0xFB8A, 0x7D48, 0xFB8B, 0x7D5C, + 0xFB8C, 0x7DB7, 0xFB8D, 0x7DA0, 0xFB8E, 0x7DD6, 0xFB8F, 0x7E52, + 0xFB90, 0x7F47, 0xFB91, 0x7FA1, 0xFB92, 0xFA1E, 0xFB93, 0x8301, + 0xFB94, 0x8362, 0xFB95, 0x837F, 0xFB96, 0x83C7, 0xFB97, 0x83F6, + 0xFB98, 0x8448, 0xFB99, 0x84B4, 0xFB9A, 0x8553, 0xFB9B, 0x8559, + 0xFB9C, 0x856B, 0xFB9D, 0xFA1F, 0xFB9E, 0x85B0, 0xFB9F, 0xFA20, + 0xFBA0, 0xFA21, 0xFBA1, 0x8807, 0xFBA2, 0x88F5, 0xFBA3, 0x8A12, + 0xFBA4, 0x8A37, 0xFBA5, 0x8A79, 0xFBA6, 0x8AA7, 0xFBA7, 0x8ABE, + 0xFBA8, 0x8ADF, 0xFBA9, 0xFA22, 0xFBAA, 0x8AF6, 0xFBAB, 0x8B53, + 0xFBAC, 0x8B7F, 0xFBAD, 0x8CF0, 0xFBAE, 0x8CF4, 0xFBAF, 0x8D12, + 0xFBB0, 0x8D76, 0xFBB1, 0xFA23, 0xFBB2, 0x8ECF, 0xFBB3, 0xFA24, + 0xFBB4, 0xFA25, 0xFBB5, 0x9067, 0xFBB6, 0x90DE, 0xFBB7, 0xFA26, + 0xFBB8, 0x9115, 0xFBB9, 0x9127, 0xFBBA, 0x91DA, 0xFBBB, 0x91D7, + 0xFBBC, 0x91DE, 0xFBBD, 0x91ED, 0xFBBE, 0x91EE, 0xFBBF, 0x91E4, + 0xFBC0, 0x91E5, 0xFBC1, 0x9206, 0xFBC2, 0x9210, 0xFBC3, 0x920A, + 0xFBC4, 0x923A, 0xFBC5, 0x9240, 0xFBC6, 0x923C, 0xFBC7, 0x924E, + 0xFBC8, 0x9259, 0xFBC9, 0x9251, 0xFBCA, 0x9239, 0xFBCB, 0x9267, + 0xFBCC, 0x92A7, 0xFBCD, 0x9277, 0xFBCE, 0x9278, 0xFBCF, 0x92E7, + 0xFBD0, 0x92D7, 0xFBD1, 0x92D9, 0xFBD2, 0x92D0, 0xFBD3, 0xFA27, + 0xFBD4, 0x92D5, 0xFBD5, 0x92E0, 0xFBD6, 0x92D3, 0xFBD7, 0x9325, + 0xFBD8, 0x9321, 0xFBD9, 0x92FB, 0xFBDA, 0xFA28, 0xFBDB, 0x931E, + 0xFBDC, 0x92FF, 0xFBDD, 0x931D, 0xFBDE, 0x9302, 0xFBDF, 0x9370, + 0xFBE0, 0x9357, 0xFBE1, 0x93A4, 0xFBE2, 0x93C6, 0xFBE3, 0x93DE, + 0xFBE4, 0x93F8, 0xFBE5, 0x9431, 0xFBE6, 0x9445, 0xFBE7, 0x9448, + 0xFBE8, 0x9592, 0xFBE9, 0xF9DC, 0xFBEA, 0xFA29, 0xFBEB, 0x969D, + 0xFBEC, 0x96AF, 0xFBED, 0x9733, 0xFBEE, 0x973B, 0xFBEF, 0x9743, + 0xFBF0, 0x974D, 0xFBF1, 0x974F, 0xFBF2, 0x9751, 0xFBF3, 0x9755, + 0xFBF4, 0x9857, 0xFBF5, 0x9865, 0xFBF6, 0xFA2A, 0xFBF7, 0xFA2B, + 0xFBF8, 0x9927, 0xFBF9, 0xFA2C, 0xFBFA, 0x999E, 0xFBFB, 0x9A4E, + 0xFBFC, 0x9AD9, 0xFC40, 0x9ADC, 0xFC41, 0x9B75, 0xFC42, 0x9B72, + 0xFC43, 0x9B8F, 0xFC44, 0x9BB1, 0xFC45, 0x9BBB, 0xFC46, 0x9C00, + 0xFC47, 0x9D70, 0xFC48, 0x9D6B, 0xFC49, 0xFA2D, 0xFC4A, 0x9E19, + 0xFC4B, 0x9ED1, 0, 0 +}; +#endif + + + +WCHAR ff_convert ( /* Converted code, 0 means conversion error */ + WCHAR chr, /* Character code to be converted */ + UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ +) +{ + const WCHAR *p; + WCHAR c; + int i, n, li, hi; + + + if (chr <= 0x80) { /* ASCII */ + c = chr; + } else { +#if !_TINY_TABLE + if (dir) { /* OEM code to unicode */ + p = sjis2uni; + hi = sizeof sjis2uni / 4 - 1; + } else { /* Unicode to OEM code */ + p = uni2sjis; + hi = sizeof uni2sjis / 4 - 1; + } + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (chr == p[i * 2]) break; + if (chr > p[i * 2]) + li = i; + else + hi = i; + } + c = n ? p[i * 2 + 1] : 0; +#else + if (dir) { /* OEM code to unicode (Incremental search)*/ + p = &uni2sjis[1]; + do { + c = *p; + p += 2; + } while (c && c != chr); + p -= 3; + c = *p; + } else { /* Unicode to OEM code */ + li = 0; hi = sizeof uni2sjis / 4 - 1; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (chr == uni2sjis[i * 2]) break; + if (chr > uni2sjis[i * 2]) + li = i; + else + hi = i; + } + c = n ? uni2sjis[i * 2 + 1] : 0; + } +#endif + } + + return c; +} + + + +WCHAR ff_wtoupper ( /* Returns upper converted character */ + WCHAR chr /* Unicode character to be upper converted (BMP only) */ +) +{ + /* Compressed upper conversion table */ + static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WCHAR *p; + WCHAR bc, nc, cmd; + + + p = chr < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || chr < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (chr < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: chr = p[chr - bc]; break; /* Table conversion */ + case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ + case 2: chr -= 16; break; /* Shift -16 */ + case 3: chr -= 32; break; /* Shift -32 */ + case 4: chr -= 48; break; /* Shift -48 */ + case 5: chr -= 26; break; /* Shift -26 */ + case 6: chr += 8; break; /* Shift +8 */ + case 7: chr -= 80; break; /* Shift -80 */ + case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + + return chr; +} + +#endif diff --git a/extras/fatfs/cc936.h b/extras/fatfs/cc936.h new file mode 100644 index 0000000..123660a --- /dev/null +++ b/extras/fatfs/cc936.h @@ -0,0 +1,11044 @@ +/*------------------------------------------------------------------------*/ +/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ +/* CP936 (Simplified Chinese GBK) */ +/*------------------------------------------------------------------------*/ + +#include "ff.h" + + +#if _USE_LFN && _CODE_PAGE == 936 + +static +const WCHAR uni2oem[] = { +/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ + 0x00A4, 0xA1E8, 0x00A7, 0xA1EC, 0x00A8, 0xA1A7, 0x00B0, 0xA1E3, + 0x00B1, 0xA1C0, 0x00B7, 0xA1A4, 0x00D7, 0xA1C1, 0x00E0, 0xA8A4, + 0x00E1, 0xA8A2, 0x00E8, 0xA8A8, 0x00E9, 0xA8A6, 0x00EA, 0xA8BA, + 0x00EC, 0xA8AC, 0x00ED, 0xA8AA, 0x00F2, 0xA8B0, 0x00F3, 0xA8AE, + 0x00F7, 0xA1C2, 0x00F9, 0xA8B4, 0x00FA, 0xA8B2, 0x00FC, 0xA8B9, + 0x0101, 0xA8A1, 0x0113, 0xA8A5, 0x011B, 0xA8A7, 0x012B, 0xA8A9, + 0x0144, 0xA8BD, 0x0148, 0xA8BE, 0x014D, 0xA8AD, 0x016B, 0xA8B1, + 0x01CE, 0xA8A3, 0x01D0, 0xA8AB, 0x01D2, 0xA8AF, 0x01D4, 0xA8B3, + 0x01D6, 0xA8B5, 0x01D8, 0xA8B6, 0x01DA, 0xA8B7, 0x01DC, 0xA8B8, + 0x0251, 0xA8BB, 0x0261, 0xA8C0, 0x02C7, 0xA1A6, 0x02C9, 0xA1A5, + 0x02CA, 0xA840, 0x02CB, 0xA841, 0x02D9, 0xA842, 0x0391, 0xA6A1, + 0x0392, 0xA6A2, 0x0393, 0xA6A3, 0x0394, 0xA6A4, 0x0395, 0xA6A5, + 0x0396, 0xA6A6, 0x0397, 0xA6A7, 0x0398, 0xA6A8, 0x0399, 0xA6A9, + 0x039A, 0xA6AA, 0x039B, 0xA6AB, 0x039C, 0xA6AC, 0x039D, 0xA6AD, + 0x039E, 0xA6AE, 0x039F, 0xA6AF, 0x03A0, 0xA6B0, 0x03A1, 0xA6B1, + 0x03A3, 0xA6B2, 0x03A4, 0xA6B3, 0x03A5, 0xA6B4, 0x03A6, 0xA6B5, + 0x03A7, 0xA6B6, 0x03A8, 0xA6B7, 0x03A9, 0xA6B8, 0x03B1, 0xA6C1, + 0x03B2, 0xA6C2, 0x03B3, 0xA6C3, 0x03B4, 0xA6C4, 0x03B5, 0xA6C5, + 0x03B6, 0xA6C6, 0x03B7, 0xA6C7, 0x03B8, 0xA6C8, 0x03B9, 0xA6C9, + 0x03BA, 0xA6CA, 0x03BB, 0xA6CB, 0x03BC, 0xA6CC, 0x03BD, 0xA6CD, + 0x03BE, 0xA6CE, 0x03BF, 0xA6CF, 0x03C0, 0xA6D0, 0x03C1, 0xA6D1, + 0x03C3, 0xA6D2, 0x03C4, 0xA6D3, 0x03C5, 0xA6D4, 0x03C6, 0xA6D5, + 0x03C7, 0xA6D6, 0x03C8, 0xA6D7, 0x03C9, 0xA6D8, 0x0401, 0xA7A7, + 0x0410, 0xA7A1, 0x0411, 0xA7A2, 0x0412, 0xA7A3, 0x0413, 0xA7A4, + 0x0414, 0xA7A5, 0x0415, 0xA7A6, 0x0416, 0xA7A8, 0x0417, 0xA7A9, + 0x0418, 0xA7AA, 0x0419, 0xA7AB, 0x041A, 0xA7AC, 0x041B, 0xA7AD, + 0x041C, 0xA7AE, 0x041D, 0xA7AF, 0x041E, 0xA7B0, 0x041F, 0xA7B1, + 0x0420, 0xA7B2, 0x0421, 0xA7B3, 0x0422, 0xA7B4, 0x0423, 0xA7B5, + 0x0424, 0xA7B6, 0x0425, 0xA7B7, 0x0426, 0xA7B8, 0x0427, 0xA7B9, + 0x0428, 0xA7BA, 0x0429, 0xA7BB, 0x042A, 0xA7BC, 0x042B, 0xA7BD, + 0x042C, 0xA7BE, 0x042D, 0xA7BF, 0x042E, 0xA7C0, 0x042F, 0xA7C1, + 0x0430, 0xA7D1, 0x0431, 0xA7D2, 0x0432, 0xA7D3, 0x0433, 0xA7D4, + 0x0434, 0xA7D5, 0x0435, 0xA7D6, 0x0436, 0xA7D8, 0x0437, 0xA7D9, + 0x0438, 0xA7DA, 0x0439, 0xA7DB, 0x043A, 0xA7DC, 0x043B, 0xA7DD, + 0x043C, 0xA7DE, 0x043D, 0xA7DF, 0x043E, 0xA7E0, 0x043F, 0xA7E1, + 0x0440, 0xA7E2, 0x0441, 0xA7E3, 0x0442, 0xA7E4, 0x0443, 0xA7E5, + 0x0444, 0xA7E6, 0x0445, 0xA7E7, 0x0446, 0xA7E8, 0x0447, 0xA7E9, + 0x0448, 0xA7EA, 0x0449, 0xA7EB, 0x044A, 0xA7EC, 0x044B, 0xA7ED, + 0x044C, 0xA7EE, 0x044D, 0xA7EF, 0x044E, 0xA7F0, 0x044F, 0xA7F1, + 0x0451, 0xA7D7, 0x2010, 0xA95C, 0x2013, 0xA843, 0x2014, 0xA1AA, + 0x2015, 0xA844, 0x2016, 0xA1AC, 0x2018, 0xA1AE, 0x2019, 0xA1AF, + 0x201C, 0xA1B0, 0x201D, 0xA1B1, 0x2025, 0xA845, 0x2026, 0xA1AD, + 0x2030, 0xA1EB, 0x2032, 0xA1E4, 0x2033, 0xA1E5, 0x2035, 0xA846, + 0x203B, 0xA1F9, 0x20AC, 0x0080, 0x2103, 0xA1E6, 0x2105, 0xA847, + 0x2109, 0xA848, 0x2116, 0xA1ED, 0x2121, 0xA959, 0x2160, 0xA2F1, + 0x2161, 0xA2F2, 0x2162, 0xA2F3, 0x2163, 0xA2F4, 0x2164, 0xA2F5, + 0x2165, 0xA2F6, 0x2166, 0xA2F7, 0x2167, 0xA2F8, 0x2168, 0xA2F9, + 0x2169, 0xA2FA, 0x216A, 0xA2FB, 0x216B, 0xA2FC, 0x2170, 0xA2A1, + 0x2171, 0xA2A2, 0x2172, 0xA2A3, 0x2173, 0xA2A4, 0x2174, 0xA2A5, + 0x2175, 0xA2A6, 0x2176, 0xA2A7, 0x2177, 0xA2A8, 0x2178, 0xA2A9, + 0x2179, 0xA2AA, 0x2190, 0xA1FB, 0x2191, 0xA1FC, 0x2192, 0xA1FA, + 0x2193, 0xA1FD, 0x2196, 0xA849, 0x2197, 0xA84A, 0x2198, 0xA84B, + 0x2199, 0xA84C, 0x2208, 0xA1CA, 0x220F, 0xA1C7, 0x2211, 0xA1C6, + 0x2215, 0xA84D, 0x221A, 0xA1CC, 0x221D, 0xA1D8, 0x221E, 0xA1DE, + 0x221F, 0xA84E, 0x2220, 0xA1CF, 0x2223, 0xA84F, 0x2225, 0xA1CE, + 0x2227, 0xA1C4, 0x2228, 0xA1C5, 0x2229, 0xA1C9, 0x222A, 0xA1C8, + 0x222B, 0xA1D2, 0x222E, 0xA1D3, 0x2234, 0xA1E0, 0x2235, 0xA1DF, + 0x2236, 0xA1C3, 0x2237, 0xA1CB, 0x223D, 0xA1D7, 0x2248, 0xA1D6, + 0x224C, 0xA1D5, 0x2252, 0xA850, 0x2260, 0xA1D9, 0x2261, 0xA1D4, + 0x2264, 0xA1DC, 0x2265, 0xA1DD, 0x2266, 0xA851, 0x2267, 0xA852, + 0x226E, 0xA1DA, 0x226F, 0xA1DB, 0x2295, 0xA892, 0x2299, 0xA1D1, + 0x22A5, 0xA1CD, 0x22BF, 0xA853, 0x2312, 0xA1D0, 0x2460, 0xA2D9, + 0x2461, 0xA2DA, 0x2462, 0xA2DB, 0x2463, 0xA2DC, 0x2464, 0xA2DD, + 0x2465, 0xA2DE, 0x2466, 0xA2DF, 0x2467, 0xA2E0, 0x2468, 0xA2E1, + 0x2469, 0xA2E2, 0x2474, 0xA2C5, 0x2475, 0xA2C6, 0x2476, 0xA2C7, + 0x2477, 0xA2C8, 0x2478, 0xA2C9, 0x2479, 0xA2CA, 0x247A, 0xA2CB, + 0x247B, 0xA2CC, 0x247C, 0xA2CD, 0x247D, 0xA2CE, 0x247E, 0xA2CF, + 0x247F, 0xA2D0, 0x2480, 0xA2D1, 0x2481, 0xA2D2, 0x2482, 0xA2D3, + 0x2483, 0xA2D4, 0x2484, 0xA2D5, 0x2485, 0xA2D6, 0x2486, 0xA2D7, + 0x2487, 0xA2D8, 0x2488, 0xA2B1, 0x2489, 0xA2B2, 0x248A, 0xA2B3, + 0x248B, 0xA2B4, 0x248C, 0xA2B5, 0x248D, 0xA2B6, 0x248E, 0xA2B7, + 0x248F, 0xA2B8, 0x2490, 0xA2B9, 0x2491, 0xA2BA, 0x2492, 0xA2BB, + 0x2493, 0xA2BC, 0x2494, 0xA2BD, 0x2495, 0xA2BE, 0x2496, 0xA2BF, + 0x2497, 0xA2C0, 0x2498, 0xA2C1, 0x2499, 0xA2C2, 0x249A, 0xA2C3, + 0x249B, 0xA2C4, 0x2500, 0xA9A4, 0x2501, 0xA9A5, 0x2502, 0xA9A6, + 0x2503, 0xA9A7, 0x2504, 0xA9A8, 0x2505, 0xA9A9, 0x2506, 0xA9AA, + 0x2507, 0xA9AB, 0x2508, 0xA9AC, 0x2509, 0xA9AD, 0x250A, 0xA9AE, + 0x250B, 0xA9AF, 0x250C, 0xA9B0, 0x250D, 0xA9B1, 0x250E, 0xA9B2, + 0x250F, 0xA9B3, 0x2510, 0xA9B4, 0x2511, 0xA9B5, 0x2512, 0xA9B6, + 0x2513, 0xA9B7, 0x2514, 0xA9B8, 0x2515, 0xA9B9, 0x2516, 0xA9BA, + 0x2517, 0xA9BB, 0x2518, 0xA9BC, 0x2519, 0xA9BD, 0x251A, 0xA9BE, + 0x251B, 0xA9BF, 0x251C, 0xA9C0, 0x251D, 0xA9C1, 0x251E, 0xA9C2, + 0x251F, 0xA9C3, 0x2520, 0xA9C4, 0x2521, 0xA9C5, 0x2522, 0xA9C6, + 0x2523, 0xA9C7, 0x2524, 0xA9C8, 0x2525, 0xA9C9, 0x2526, 0xA9CA, + 0x2527, 0xA9CB, 0x2528, 0xA9CC, 0x2529, 0xA9CD, 0x252A, 0xA9CE, + 0x252B, 0xA9CF, 0x252C, 0xA9D0, 0x252D, 0xA9D1, 0x252E, 0xA9D2, + 0x252F, 0xA9D3, 0x2530, 0xA9D4, 0x2531, 0xA9D5, 0x2532, 0xA9D6, + 0x2533, 0xA9D7, 0x2534, 0xA9D8, 0x2535, 0xA9D9, 0x2536, 0xA9DA, + 0x2537, 0xA9DB, 0x2538, 0xA9DC, 0x2539, 0xA9DD, 0x253A, 0xA9DE, + 0x253B, 0xA9DF, 0x253C, 0xA9E0, 0x253D, 0xA9E1, 0x253E, 0xA9E2, + 0x253F, 0xA9E3, 0x2540, 0xA9E4, 0x2541, 0xA9E5, 0x2542, 0xA9E6, + 0x2543, 0xA9E7, 0x2544, 0xA9E8, 0x2545, 0xA9E9, 0x2546, 0xA9EA, + 0x2547, 0xA9EB, 0x2548, 0xA9EC, 0x2549, 0xA9ED, 0x254A, 0xA9EE, + 0x254B, 0xA9EF, 0x2550, 0xA854, 0x2551, 0xA855, 0x2552, 0xA856, + 0x2553, 0xA857, 0x2554, 0xA858, 0x2555, 0xA859, 0x2556, 0xA85A, + 0x2557, 0xA85B, 0x2558, 0xA85C, 0x2559, 0xA85D, 0x255A, 0xA85E, + 0x255B, 0xA85F, 0x255C, 0xA860, 0x255D, 0xA861, 0x255E, 0xA862, + 0x255F, 0xA863, 0x2560, 0xA864, 0x2561, 0xA865, 0x2562, 0xA866, + 0x2563, 0xA867, 0x2564, 0xA868, 0x2565, 0xA869, 0x2566, 0xA86A, + 0x2567, 0xA86B, 0x2568, 0xA86C, 0x2569, 0xA86D, 0x256A, 0xA86E, + 0x256B, 0xA86F, 0x256C, 0xA870, 0x256D, 0xA871, 0x256E, 0xA872, + 0x256F, 0xA873, 0x2570, 0xA874, 0x2571, 0xA875, 0x2572, 0xA876, + 0x2573, 0xA877, 0x2581, 0xA878, 0x2582, 0xA879, 0x2583, 0xA87A, + 0x2584, 0xA87B, 0x2585, 0xA87C, 0x2586, 0xA87D, 0x2587, 0xA87E, + 0x2588, 0xA880, 0x2589, 0xA881, 0x258A, 0xA882, 0x258B, 0xA883, + 0x258C, 0xA884, 0x258D, 0xA885, 0x258E, 0xA886, 0x258F, 0xA887, + 0x2593, 0xA888, 0x2594, 0xA889, 0x2595, 0xA88A, 0x25A0, 0xA1F6, + 0x25A1, 0xA1F5, 0x25B2, 0xA1F8, 0x25B3, 0xA1F7, 0x25BC, 0xA88B, + 0x25BD, 0xA88C, 0x25C6, 0xA1F4, 0x25C7, 0xA1F3, 0x25CB, 0xA1F0, + 0x25CE, 0xA1F2, 0x25CF, 0xA1F1, 0x25E2, 0xA88D, 0x25E3, 0xA88E, + 0x25E4, 0xA88F, 0x25E5, 0xA890, 0x2605, 0xA1EF, 0x2606, 0xA1EE, + 0x2609, 0xA891, 0x2640, 0xA1E2, 0x2642, 0xA1E1, 0x3000, 0xA1A1, + 0x3001, 0xA1A2, 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3005, 0xA1A9, + 0x3006, 0xA965, 0x3007, 0xA996, 0x3008, 0xA1B4, 0x3009, 0xA1B5, + 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, + 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BE, 0x3011, 0xA1BF, + 0x3012, 0xA893, 0x3013, 0xA1FE, 0x3014, 0xA1B2, 0x3015, 0xA1B3, + 0x3016, 0xA1BC, 0x3017, 0xA1BD, 0x301D, 0xA894, 0x301E, 0xA895, + 0x3021, 0xA940, 0x3022, 0xA941, 0x3023, 0xA942, 0x3024, 0xA943, + 0x3025, 0xA944, 0x3026, 0xA945, 0x3027, 0xA946, 0x3028, 0xA947, + 0x3029, 0xA948, 0x3041, 0xA4A1, 0x3042, 0xA4A2, 0x3043, 0xA4A3, + 0x3044, 0xA4A4, 0x3045, 0xA4A5, 0x3046, 0xA4A6, 0x3047, 0xA4A7, + 0x3048, 0xA4A8, 0x3049, 0xA4A9, 0x304A, 0xA4AA, 0x304B, 0xA4AB, + 0x304C, 0xA4AC, 0x304D, 0xA4AD, 0x304E, 0xA4AE, 0x304F, 0xA4AF, + 0x3050, 0xA4B0, 0x3051, 0xA4B1, 0x3052, 0xA4B2, 0x3053, 0xA4B3, + 0x3054, 0xA4B4, 0x3055, 0xA4B5, 0x3056, 0xA4B6, 0x3057, 0xA4B7, + 0x3058, 0xA4B8, 0x3059, 0xA4B9, 0x305A, 0xA4BA, 0x305B, 0xA4BB, + 0x305C, 0xA4BC, 0x305D, 0xA4BD, 0x305E, 0xA4BE, 0x305F, 0xA4BF, + 0x3060, 0xA4C0, 0x3061, 0xA4C1, 0x3062, 0xA4C2, 0x3063, 0xA4C3, + 0x3064, 0xA4C4, 0x3065, 0xA4C5, 0x3066, 0xA4C6, 0x3067, 0xA4C7, + 0x3068, 0xA4C8, 0x3069, 0xA4C9, 0x306A, 0xA4CA, 0x306B, 0xA4CB, + 0x306C, 0xA4CC, 0x306D, 0xA4CD, 0x306E, 0xA4CE, 0x306F, 0xA4CF, + 0x3070, 0xA4D0, 0x3071, 0xA4D1, 0x3072, 0xA4D2, 0x3073, 0xA4D3, + 0x3074, 0xA4D4, 0x3075, 0xA4D5, 0x3076, 0xA4D6, 0x3077, 0xA4D7, + 0x3078, 0xA4D8, 0x3079, 0xA4D9, 0x307A, 0xA4DA, 0x307B, 0xA4DB, + 0x307C, 0xA4DC, 0x307D, 0xA4DD, 0x307E, 0xA4DE, 0x307F, 0xA4DF, + 0x3080, 0xA4E0, 0x3081, 0xA4E1, 0x3082, 0xA4E2, 0x3083, 0xA4E3, + 0x3084, 0xA4E4, 0x3085, 0xA4E5, 0x3086, 0xA4E6, 0x3087, 0xA4E7, + 0x3088, 0xA4E8, 0x3089, 0xA4E9, 0x308A, 0xA4EA, 0x308B, 0xA4EB, + 0x308C, 0xA4EC, 0x308D, 0xA4ED, 0x308E, 0xA4EE, 0x308F, 0xA4EF, + 0x3090, 0xA4F0, 0x3091, 0xA4F1, 0x3092, 0xA4F2, 0x3093, 0xA4F3, + 0x309B, 0xA961, 0x309C, 0xA962, 0x309D, 0xA966, 0x309E, 0xA967, + 0x30A1, 0xA5A1, 0x30A2, 0xA5A2, 0x30A3, 0xA5A3, 0x30A4, 0xA5A4, + 0x30A5, 0xA5A5, 0x30A6, 0xA5A6, 0x30A7, 0xA5A7, 0x30A8, 0xA5A8, + 0x30A9, 0xA5A9, 0x30AA, 0xA5AA, 0x30AB, 0xA5AB, 0x30AC, 0xA5AC, + 0x30AD, 0xA5AD, 0x30AE, 0xA5AE, 0x30AF, 0xA5AF, 0x30B0, 0xA5B0, + 0x30B1, 0xA5B1, 0x30B2, 0xA5B2, 0x30B3, 0xA5B3, 0x30B4, 0xA5B4, + 0x30B5, 0xA5B5, 0x30B6, 0xA5B6, 0x30B7, 0xA5B7, 0x30B8, 0xA5B8, + 0x30B9, 0xA5B9, 0x30BA, 0xA5BA, 0x30BB, 0xA5BB, 0x30BC, 0xA5BC, + 0x30BD, 0xA5BD, 0x30BE, 0xA5BE, 0x30BF, 0xA5BF, 0x30C0, 0xA5C0, + 0x30C1, 0xA5C1, 0x30C2, 0xA5C2, 0x30C3, 0xA5C3, 0x30C4, 0xA5C4, + 0x30C5, 0xA5C5, 0x30C6, 0xA5C6, 0x30C7, 0xA5C7, 0x30C8, 0xA5C8, + 0x30C9, 0xA5C9, 0x30CA, 0xA5CA, 0x30CB, 0xA5CB, 0x30CC, 0xA5CC, + 0x30CD, 0xA5CD, 0x30CE, 0xA5CE, 0x30CF, 0xA5CF, 0x30D0, 0xA5D0, + 0x30D1, 0xA5D1, 0x30D2, 0xA5D2, 0x30D3, 0xA5D3, 0x30D4, 0xA5D4, + 0x30D5, 0xA5D5, 0x30D6, 0xA5D6, 0x30D7, 0xA5D7, 0x30D8, 0xA5D8, + 0x30D9, 0xA5D9, 0x30DA, 0xA5DA, 0x30DB, 0xA5DB, 0x30DC, 0xA5DC, + 0x30DD, 0xA5DD, 0x30DE, 0xA5DE, 0x30DF, 0xA5DF, 0x30E0, 0xA5E0, + 0x30E1, 0xA5E1, 0x30E2, 0xA5E2, 0x30E3, 0xA5E3, 0x30E4, 0xA5E4, + 0x30E5, 0xA5E5, 0x30E6, 0xA5E6, 0x30E7, 0xA5E7, 0x30E8, 0xA5E8, + 0x30E9, 0xA5E9, 0x30EA, 0xA5EA, 0x30EB, 0xA5EB, 0x30EC, 0xA5EC, + 0x30ED, 0xA5ED, 0x30EE, 0xA5EE, 0x30EF, 0xA5EF, 0x30F0, 0xA5F0, + 0x30F1, 0xA5F1, 0x30F2, 0xA5F2, 0x30F3, 0xA5F3, 0x30F4, 0xA5F4, + 0x30F5, 0xA5F5, 0x30F6, 0xA5F6, 0x30FC, 0xA960, 0x30FD, 0xA963, + 0x30FE, 0xA964, 0x3105, 0xA8C5, 0x3106, 0xA8C6, 0x3107, 0xA8C7, + 0x3108, 0xA8C8, 0x3109, 0xA8C9, 0x310A, 0xA8CA, 0x310B, 0xA8CB, + 0x310C, 0xA8CC, 0x310D, 0xA8CD, 0x310E, 0xA8CE, 0x310F, 0xA8CF, + 0x3110, 0xA8D0, 0x3111, 0xA8D1, 0x3112, 0xA8D2, 0x3113, 0xA8D3, + 0x3114, 0xA8D4, 0x3115, 0xA8D5, 0x3116, 0xA8D6, 0x3117, 0xA8D7, + 0x3118, 0xA8D8, 0x3119, 0xA8D9, 0x311A, 0xA8DA, 0x311B, 0xA8DB, + 0x311C, 0xA8DC, 0x311D, 0xA8DD, 0x311E, 0xA8DE, 0x311F, 0xA8DF, + 0x3120, 0xA8E0, 0x3121, 0xA8E1, 0x3122, 0xA8E2, 0x3123, 0xA8E3, + 0x3124, 0xA8E4, 0x3125, 0xA8E5, 0x3126, 0xA8E6, 0x3127, 0xA8E7, + 0x3128, 0xA8E8, 0x3129, 0xA8E9, 0x3220, 0xA2E5, 0x3221, 0xA2E6, + 0x3222, 0xA2E7, 0x3223, 0xA2E8, 0x3224, 0xA2E9, 0x3225, 0xA2EA, + 0x3226, 0xA2EB, 0x3227, 0xA2EC, 0x3228, 0xA2ED, 0x3229, 0xA2EE, + 0x3231, 0xA95A, 0x32A3, 0xA949, 0x338E, 0xA94A, 0x338F, 0xA94B, + 0x339C, 0xA94C, 0x339D, 0xA94D, 0x339E, 0xA94E, 0x33A1, 0xA94F, + 0x33C4, 0xA950, 0x33CE, 0xA951, 0x33D1, 0xA952, 0x33D2, 0xA953, + 0x33D5, 0xA954, 0x4E00, 0xD2BB, 0x4E01, 0xB6A1, 0x4E02, 0x8140, + 0x4E03, 0xC6DF, 0x4E04, 0x8141, 0x4E05, 0x8142, 0x4E06, 0x8143, + 0x4E07, 0xCDF2, 0x4E08, 0xD5C9, 0x4E09, 0xC8FD, 0x4E0A, 0xC9CF, + 0x4E0B, 0xCFC2, 0x4E0C, 0xD8A2, 0x4E0D, 0xB2BB, 0x4E0E, 0xD3EB, + 0x4E0F, 0x8144, 0x4E10, 0xD8A4, 0x4E11, 0xB3F3, 0x4E12, 0x8145, + 0x4E13, 0xD7A8, 0x4E14, 0xC7D2, 0x4E15, 0xD8A7, 0x4E16, 0xCAC0, + 0x4E17, 0x8146, 0x4E18, 0xC7F0, 0x4E19, 0xB1FB, 0x4E1A, 0xD2B5, + 0x4E1B, 0xB4D4, 0x4E1C, 0xB6AB, 0x4E1D, 0xCBBF, 0x4E1E, 0xD8A9, + 0x4E1F, 0x8147, 0x4E20, 0x8148, 0x4E21, 0x8149, 0x4E22, 0xB6AA, + 0x4E23, 0x814A, 0x4E24, 0xC1BD, 0x4E25, 0xD1CF, 0x4E26, 0x814B, + 0x4E27, 0xC9A5, 0x4E28, 0xD8AD, 0x4E29, 0x814C, 0x4E2A, 0xB8F6, + 0x4E2B, 0xD1BE, 0x4E2C, 0xE3DC, 0x4E2D, 0xD6D0, 0x4E2E, 0x814D, + 0x4E2F, 0x814E, 0x4E30, 0xB7E1, 0x4E31, 0x814F, 0x4E32, 0xB4AE, + 0x4E33, 0x8150, 0x4E34, 0xC1D9, 0x4E35, 0x8151, 0x4E36, 0xD8BC, + 0x4E37, 0x8152, 0x4E38, 0xCDE8, 0x4E39, 0xB5A4, 0x4E3A, 0xCEAA, + 0x4E3B, 0xD6F7, 0x4E3C, 0x8153, 0x4E3D, 0xC0F6, 0x4E3E, 0xBED9, + 0x4E3F, 0xD8AF, 0x4E40, 0x8154, 0x4E41, 0x8155, 0x4E42, 0x8156, + 0x4E43, 0xC4CB, 0x4E44, 0x8157, 0x4E45, 0xBEC3, 0x4E46, 0x8158, + 0x4E47, 0xD8B1, 0x4E48, 0xC3B4, 0x4E49, 0xD2E5, 0x4E4A, 0x8159, + 0x4E4B, 0xD6AE, 0x4E4C, 0xCEDA, 0x4E4D, 0xD5A7, 0x4E4E, 0xBAF5, + 0x4E4F, 0xB7A6, 0x4E50, 0xC0D6, 0x4E51, 0x815A, 0x4E52, 0xC6B9, + 0x4E53, 0xC5D2, 0x4E54, 0xC7C7, 0x4E55, 0x815B, 0x4E56, 0xB9D4, + 0x4E57, 0x815C, 0x4E58, 0xB3CB, 0x4E59, 0xD2D2, 0x4E5A, 0x815D, + 0x4E5B, 0x815E, 0x4E5C, 0xD8BF, 0x4E5D, 0xBEC5, 0x4E5E, 0xC6F2, + 0x4E5F, 0xD2B2, 0x4E60, 0xCFB0, 0x4E61, 0xCFE7, 0x4E62, 0x815F, + 0x4E63, 0x8160, 0x4E64, 0x8161, 0x4E65, 0x8162, 0x4E66, 0xCAE9, + 0x4E67, 0x8163, 0x4E68, 0x8164, 0x4E69, 0xD8C0, 0x4E6A, 0x8165, + 0x4E6B, 0x8166, 0x4E6C, 0x8167, 0x4E6D, 0x8168, 0x4E6E, 0x8169, + 0x4E6F, 0x816A, 0x4E70, 0xC2F2, 0x4E71, 0xC2D2, 0x4E72, 0x816B, + 0x4E73, 0xC8E9, 0x4E74, 0x816C, 0x4E75, 0x816D, 0x4E76, 0x816E, + 0x4E77, 0x816F, 0x4E78, 0x8170, 0x4E79, 0x8171, 0x4E7A, 0x8172, + 0x4E7B, 0x8173, 0x4E7C, 0x8174, 0x4E7D, 0x8175, 0x4E7E, 0xC7AC, + 0x4E7F, 0x8176, 0x4E80, 0x8177, 0x4E81, 0x8178, 0x4E82, 0x8179, + 0x4E83, 0x817A, 0x4E84, 0x817B, 0x4E85, 0x817C, 0x4E86, 0xC1CB, + 0x4E87, 0x817D, 0x4E88, 0xD3E8, 0x4E89, 0xD5F9, 0x4E8A, 0x817E, + 0x4E8B, 0xCAC2, 0x4E8C, 0xB6FE, 0x4E8D, 0xD8A1, 0x4E8E, 0xD3DA, + 0x4E8F, 0xBFF7, 0x4E90, 0x8180, 0x4E91, 0xD4C6, 0x4E92, 0xBBA5, + 0x4E93, 0xD8C1, 0x4E94, 0xCEE5, 0x4E95, 0xBEAE, 0x4E96, 0x8181, + 0x4E97, 0x8182, 0x4E98, 0xD8A8, 0x4E99, 0x8183, 0x4E9A, 0xD1C7, + 0x4E9B, 0xD0A9, 0x4E9C, 0x8184, 0x4E9D, 0x8185, 0x4E9E, 0x8186, + 0x4E9F, 0xD8BD, 0x4EA0, 0xD9EF, 0x4EA1, 0xCDF6, 0x4EA2, 0xBFBA, + 0x4EA3, 0x8187, 0x4EA4, 0xBDBB, 0x4EA5, 0xBAA5, 0x4EA6, 0xD2E0, + 0x4EA7, 0xB2FA, 0x4EA8, 0xBAE0, 0x4EA9, 0xC4B6, 0x4EAA, 0x8188, + 0x4EAB, 0xCFED, 0x4EAC, 0xBEA9, 0x4EAD, 0xCDA4, 0x4EAE, 0xC1C1, + 0x4EAF, 0x8189, 0x4EB0, 0x818A, 0x4EB1, 0x818B, 0x4EB2, 0xC7D7, + 0x4EB3, 0xD9F1, 0x4EB4, 0x818C, 0x4EB5, 0xD9F4, 0x4EB6, 0x818D, + 0x4EB7, 0x818E, 0x4EB8, 0x818F, 0x4EB9, 0x8190, 0x4EBA, 0xC8CB, + 0x4EBB, 0xD8E9, 0x4EBC, 0x8191, 0x4EBD, 0x8192, 0x4EBE, 0x8193, + 0x4EBF, 0xD2DA, 0x4EC0, 0xCAB2, 0x4EC1, 0xC8CA, 0x4EC2, 0xD8EC, + 0x4EC3, 0xD8EA, 0x4EC4, 0xD8C6, 0x4EC5, 0xBDF6, 0x4EC6, 0xC6CD, + 0x4EC7, 0xB3F0, 0x4EC8, 0x8194, 0x4EC9, 0xD8EB, 0x4ECA, 0xBDF1, + 0x4ECB, 0xBDE9, 0x4ECC, 0x8195, 0x4ECD, 0xC8D4, 0x4ECE, 0xB4D3, + 0x4ECF, 0x8196, 0x4ED0, 0x8197, 0x4ED1, 0xC2D8, 0x4ED2, 0x8198, + 0x4ED3, 0xB2D6, 0x4ED4, 0xD7D0, 0x4ED5, 0xCACB, 0x4ED6, 0xCBFB, + 0x4ED7, 0xD5CC, 0x4ED8, 0xB8B6, 0x4ED9, 0xCFC9, 0x4EDA, 0x8199, + 0x4EDB, 0x819A, 0x4EDC, 0x819B, 0x4EDD, 0xD9DA, 0x4EDE, 0xD8F0, + 0x4EDF, 0xC7AA, 0x4EE0, 0x819C, 0x4EE1, 0xD8EE, 0x4EE2, 0x819D, + 0x4EE3, 0xB4FA, 0x4EE4, 0xC1EE, 0x4EE5, 0xD2D4, 0x4EE6, 0x819E, + 0x4EE7, 0x819F, 0x4EE8, 0xD8ED, 0x4EE9, 0x81A0, 0x4EEA, 0xD2C7, + 0x4EEB, 0xD8EF, 0x4EEC, 0xC3C7, 0x4EED, 0x81A1, 0x4EEE, 0x81A2, + 0x4EEF, 0x81A3, 0x4EF0, 0xD1F6, 0x4EF1, 0x81A4, 0x4EF2, 0xD6D9, + 0x4EF3, 0xD8F2, 0x4EF4, 0x81A5, 0x4EF5, 0xD8F5, 0x4EF6, 0xBCFE, + 0x4EF7, 0xBCDB, 0x4EF8, 0x81A6, 0x4EF9, 0x81A7, 0x4EFA, 0x81A8, + 0x4EFB, 0xC8CE, 0x4EFC, 0x81A9, 0x4EFD, 0xB7DD, 0x4EFE, 0x81AA, + 0x4EFF, 0xB7C2, 0x4F00, 0x81AB, 0x4F01, 0xC6F3, 0x4F02, 0x81AC, + 0x4F03, 0x81AD, 0x4F04, 0x81AE, 0x4F05, 0x81AF, 0x4F06, 0x81B0, + 0x4F07, 0x81B1, 0x4F08, 0x81B2, 0x4F09, 0xD8F8, 0x4F0A, 0xD2C1, + 0x4F0B, 0x81B3, 0x4F0C, 0x81B4, 0x4F0D, 0xCEE9, 0x4F0E, 0xBCBF, + 0x4F0F, 0xB7FC, 0x4F10, 0xB7A5, 0x4F11, 0xD0DD, 0x4F12, 0x81B5, + 0x4F13, 0x81B6, 0x4F14, 0x81B7, 0x4F15, 0x81B8, 0x4F16, 0x81B9, + 0x4F17, 0xD6DA, 0x4F18, 0xD3C5, 0x4F19, 0xBBEF, 0x4F1A, 0xBBE1, + 0x4F1B, 0xD8F1, 0x4F1C, 0x81BA, 0x4F1D, 0x81BB, 0x4F1E, 0xC9A1, + 0x4F1F, 0xCEB0, 0x4F20, 0xB4AB, 0x4F21, 0x81BC, 0x4F22, 0xD8F3, + 0x4F23, 0x81BD, 0x4F24, 0xC9CB, 0x4F25, 0xD8F6, 0x4F26, 0xC2D7, + 0x4F27, 0xD8F7, 0x4F28, 0x81BE, 0x4F29, 0x81BF, 0x4F2A, 0xCEB1, + 0x4F2B, 0xD8F9, 0x4F2C, 0x81C0, 0x4F2D, 0x81C1, 0x4F2E, 0x81C2, + 0x4F2F, 0xB2AE, 0x4F30, 0xB9C0, 0x4F31, 0x81C3, 0x4F32, 0xD9A3, + 0x4F33, 0x81C4, 0x4F34, 0xB0E9, 0x4F35, 0x81C5, 0x4F36, 0xC1E6, + 0x4F37, 0x81C6, 0x4F38, 0xC9EC, 0x4F39, 0x81C7, 0x4F3A, 0xCBC5, + 0x4F3B, 0x81C8, 0x4F3C, 0xCBC6, 0x4F3D, 0xD9A4, 0x4F3E, 0x81C9, + 0x4F3F, 0x81CA, 0x4F40, 0x81CB, 0x4F41, 0x81CC, 0x4F42, 0x81CD, + 0x4F43, 0xB5E8, 0x4F44, 0x81CE, 0x4F45, 0x81CF, 0x4F46, 0xB5AB, + 0x4F47, 0x81D0, 0x4F48, 0x81D1, 0x4F49, 0x81D2, 0x4F4A, 0x81D3, + 0x4F4B, 0x81D4, 0x4F4C, 0x81D5, 0x4F4D, 0xCEBB, 0x4F4E, 0xB5CD, + 0x4F4F, 0xD7A1, 0x4F50, 0xD7F4, 0x4F51, 0xD3D3, 0x4F52, 0x81D6, + 0x4F53, 0xCCE5, 0x4F54, 0x81D7, 0x4F55, 0xBACE, 0x4F56, 0x81D8, + 0x4F57, 0xD9A2, 0x4F58, 0xD9DC, 0x4F59, 0xD3E0, 0x4F5A, 0xD8FD, + 0x4F5B, 0xB7F0, 0x4F5C, 0xD7F7, 0x4F5D, 0xD8FE, 0x4F5E, 0xD8FA, + 0x4F5F, 0xD9A1, 0x4F60, 0xC4E3, 0x4F61, 0x81D9, 0x4F62, 0x81DA, + 0x4F63, 0xD3B6, 0x4F64, 0xD8F4, 0x4F65, 0xD9DD, 0x4F66, 0x81DB, + 0x4F67, 0xD8FB, 0x4F68, 0x81DC, 0x4F69, 0xC5E5, 0x4F6A, 0x81DD, + 0x4F6B, 0x81DE, 0x4F6C, 0xC0D0, 0x4F6D, 0x81DF, 0x4F6E, 0x81E0, + 0x4F6F, 0xD1F0, 0x4F70, 0xB0DB, 0x4F71, 0x81E1, 0x4F72, 0x81E2, + 0x4F73, 0xBCD1, 0x4F74, 0xD9A6, 0x4F75, 0x81E3, 0x4F76, 0xD9A5, + 0x4F77, 0x81E4, 0x4F78, 0x81E5, 0x4F79, 0x81E6, 0x4F7A, 0x81E7, + 0x4F7B, 0xD9AC, 0x4F7C, 0xD9AE, 0x4F7D, 0x81E8, 0x4F7E, 0xD9AB, + 0x4F7F, 0xCAB9, 0x4F80, 0x81E9, 0x4F81, 0x81EA, 0x4F82, 0x81EB, + 0x4F83, 0xD9A9, 0x4F84, 0xD6B6, 0x4F85, 0x81EC, 0x4F86, 0x81ED, + 0x4F87, 0x81EE, 0x4F88, 0xB3DE, 0x4F89, 0xD9A8, 0x4F8A, 0x81EF, + 0x4F8B, 0xC0FD, 0x4F8C, 0x81F0, 0x4F8D, 0xCACC, 0x4F8E, 0x81F1, + 0x4F8F, 0xD9AA, 0x4F90, 0x81F2, 0x4F91, 0xD9A7, 0x4F92, 0x81F3, + 0x4F93, 0x81F4, 0x4F94, 0xD9B0, 0x4F95, 0x81F5, 0x4F96, 0x81F6, + 0x4F97, 0xB6B1, 0x4F98, 0x81F7, 0x4F99, 0x81F8, 0x4F9A, 0x81F9, + 0x4F9B, 0xB9A9, 0x4F9C, 0x81FA, 0x4F9D, 0xD2C0, 0x4F9E, 0x81FB, + 0x4F9F, 0x81FC, 0x4FA0, 0xCFC0, 0x4FA1, 0x81FD, 0x4FA2, 0x81FE, + 0x4FA3, 0xC2C2, 0x4FA4, 0x8240, 0x4FA5, 0xBDC4, 0x4FA6, 0xD5EC, + 0x4FA7, 0xB2E0, 0x4FA8, 0xC7C8, 0x4FA9, 0xBFEB, 0x4FAA, 0xD9AD, + 0x4FAB, 0x8241, 0x4FAC, 0xD9AF, 0x4FAD, 0x8242, 0x4FAE, 0xCEEA, + 0x4FAF, 0xBAEE, 0x4FB0, 0x8243, 0x4FB1, 0x8244, 0x4FB2, 0x8245, + 0x4FB3, 0x8246, 0x4FB4, 0x8247, 0x4FB5, 0xC7D6, 0x4FB6, 0x8248, + 0x4FB7, 0x8249, 0x4FB8, 0x824A, 0x4FB9, 0x824B, 0x4FBA, 0x824C, + 0x4FBB, 0x824D, 0x4FBC, 0x824E, 0x4FBD, 0x824F, 0x4FBE, 0x8250, + 0x4FBF, 0xB1E3, 0x4FC0, 0x8251, 0x4FC1, 0x8252, 0x4FC2, 0x8253, + 0x4FC3, 0xB4D9, 0x4FC4, 0xB6ED, 0x4FC5, 0xD9B4, 0x4FC6, 0x8254, + 0x4FC7, 0x8255, 0x4FC8, 0x8256, 0x4FC9, 0x8257, 0x4FCA, 0xBFA1, + 0x4FCB, 0x8258, 0x4FCC, 0x8259, 0x4FCD, 0x825A, 0x4FCE, 0xD9DE, + 0x4FCF, 0xC7CE, 0x4FD0, 0xC0FE, 0x4FD1, 0xD9B8, 0x4FD2, 0x825B, + 0x4FD3, 0x825C, 0x4FD4, 0x825D, 0x4FD5, 0x825E, 0x4FD6, 0x825F, + 0x4FD7, 0xCBD7, 0x4FD8, 0xB7FD, 0x4FD9, 0x8260, 0x4FDA, 0xD9B5, + 0x4FDB, 0x8261, 0x4FDC, 0xD9B7, 0x4FDD, 0xB1A3, 0x4FDE, 0xD3E1, + 0x4FDF, 0xD9B9, 0x4FE0, 0x8262, 0x4FE1, 0xD0C5, 0x4FE2, 0x8263, + 0x4FE3, 0xD9B6, 0x4FE4, 0x8264, 0x4FE5, 0x8265, 0x4FE6, 0xD9B1, + 0x4FE7, 0x8266, 0x4FE8, 0xD9B2, 0x4FE9, 0xC1A9, 0x4FEA, 0xD9B3, + 0x4FEB, 0x8267, 0x4FEC, 0x8268, 0x4FED, 0xBCF3, 0x4FEE, 0xD0DE, + 0x4FEF, 0xB8A9, 0x4FF0, 0x8269, 0x4FF1, 0xBEE3, 0x4FF2, 0x826A, + 0x4FF3, 0xD9BD, 0x4FF4, 0x826B, 0x4FF5, 0x826C, 0x4FF6, 0x826D, + 0x4FF7, 0x826E, 0x4FF8, 0xD9BA, 0x4FF9, 0x826F, 0x4FFA, 0xB0B3, + 0x4FFB, 0x8270, 0x4FFC, 0x8271, 0x4FFD, 0x8272, 0x4FFE, 0xD9C2, + 0x4FFF, 0x8273, 0x5000, 0x8274, 0x5001, 0x8275, 0x5002, 0x8276, + 0x5003, 0x8277, 0x5004, 0x8278, 0x5005, 0x8279, 0x5006, 0x827A, + 0x5007, 0x827B, 0x5008, 0x827C, 0x5009, 0x827D, 0x500A, 0x827E, + 0x500B, 0x8280, 0x500C, 0xD9C4, 0x500D, 0xB1B6, 0x500E, 0x8281, + 0x500F, 0xD9BF, 0x5010, 0x8282, 0x5011, 0x8283, 0x5012, 0xB5B9, + 0x5013, 0x8284, 0x5014, 0xBEF3, 0x5015, 0x8285, 0x5016, 0x8286, + 0x5017, 0x8287, 0x5018, 0xCCC8, 0x5019, 0xBAF2, 0x501A, 0xD2D0, + 0x501B, 0x8288, 0x501C, 0xD9C3, 0x501D, 0x8289, 0x501E, 0x828A, + 0x501F, 0xBDE8, 0x5020, 0x828B, 0x5021, 0xB3AB, 0x5022, 0x828C, + 0x5023, 0x828D, 0x5024, 0x828E, 0x5025, 0xD9C5, 0x5026, 0xBEEB, + 0x5027, 0x828F, 0x5028, 0xD9C6, 0x5029, 0xD9BB, 0x502A, 0xC4DF, + 0x502B, 0x8290, 0x502C, 0xD9BE, 0x502D, 0xD9C1, 0x502E, 0xD9C0, + 0x502F, 0x8291, 0x5030, 0x8292, 0x5031, 0x8293, 0x5032, 0x8294, + 0x5033, 0x8295, 0x5034, 0x8296, 0x5035, 0x8297, 0x5036, 0x8298, + 0x5037, 0x8299, 0x5038, 0x829A, 0x5039, 0x829B, 0x503A, 0xD5AE, + 0x503B, 0x829C, 0x503C, 0xD6B5, 0x503D, 0x829D, 0x503E, 0xC7E3, + 0x503F, 0x829E, 0x5040, 0x829F, 0x5041, 0x82A0, 0x5042, 0x82A1, + 0x5043, 0xD9C8, 0x5044, 0x82A2, 0x5045, 0x82A3, 0x5046, 0x82A4, + 0x5047, 0xBCD9, 0x5048, 0xD9CA, 0x5049, 0x82A5, 0x504A, 0x82A6, + 0x504B, 0x82A7, 0x504C, 0xD9BC, 0x504D, 0x82A8, 0x504E, 0xD9CB, + 0x504F, 0xC6AB, 0x5050, 0x82A9, 0x5051, 0x82AA, 0x5052, 0x82AB, + 0x5053, 0x82AC, 0x5054, 0x82AD, 0x5055, 0xD9C9, 0x5056, 0x82AE, + 0x5057, 0x82AF, 0x5058, 0x82B0, 0x5059, 0x82B1, 0x505A, 0xD7F6, + 0x505B, 0x82B2, 0x505C, 0xCDA3, 0x505D, 0x82B3, 0x505E, 0x82B4, + 0x505F, 0x82B5, 0x5060, 0x82B6, 0x5061, 0x82B7, 0x5062, 0x82B8, + 0x5063, 0x82B9, 0x5064, 0x82BA, 0x5065, 0xBDA1, 0x5066, 0x82BB, + 0x5067, 0x82BC, 0x5068, 0x82BD, 0x5069, 0x82BE, 0x506A, 0x82BF, + 0x506B, 0x82C0, 0x506C, 0xD9CC, 0x506D, 0x82C1, 0x506E, 0x82C2, + 0x506F, 0x82C3, 0x5070, 0x82C4, 0x5071, 0x82C5, 0x5072, 0x82C6, + 0x5073, 0x82C7, 0x5074, 0x82C8, 0x5075, 0x82C9, 0x5076, 0xC5BC, + 0x5077, 0xCDB5, 0x5078, 0x82CA, 0x5079, 0x82CB, 0x507A, 0x82CC, + 0x507B, 0xD9CD, 0x507C, 0x82CD, 0x507D, 0x82CE, 0x507E, 0xD9C7, + 0x507F, 0xB3A5, 0x5080, 0xBFFE, 0x5081, 0x82CF, 0x5082, 0x82D0, + 0x5083, 0x82D1, 0x5084, 0x82D2, 0x5085, 0xB8B5, 0x5086, 0x82D3, + 0x5087, 0x82D4, 0x5088, 0xC0FC, 0x5089, 0x82D5, 0x508A, 0x82D6, + 0x508B, 0x82D7, 0x508C, 0x82D8, 0x508D, 0xB0F8, 0x508E, 0x82D9, + 0x508F, 0x82DA, 0x5090, 0x82DB, 0x5091, 0x82DC, 0x5092, 0x82DD, + 0x5093, 0x82DE, 0x5094, 0x82DF, 0x5095, 0x82E0, 0x5096, 0x82E1, + 0x5097, 0x82E2, 0x5098, 0x82E3, 0x5099, 0x82E4, 0x509A, 0x82E5, + 0x509B, 0x82E6, 0x509C, 0x82E7, 0x509D, 0x82E8, 0x509E, 0x82E9, + 0x509F, 0x82EA, 0x50A0, 0x82EB, 0x50A1, 0x82EC, 0x50A2, 0x82ED, + 0x50A3, 0xB4F6, 0x50A4, 0x82EE, 0x50A5, 0xD9CE, 0x50A6, 0x82EF, + 0x50A7, 0xD9CF, 0x50A8, 0xB4A2, 0x50A9, 0xD9D0, 0x50AA, 0x82F0, + 0x50AB, 0x82F1, 0x50AC, 0xB4DF, 0x50AD, 0x82F2, 0x50AE, 0x82F3, + 0x50AF, 0x82F4, 0x50B0, 0x82F5, 0x50B1, 0x82F6, 0x50B2, 0xB0C1, + 0x50B3, 0x82F7, 0x50B4, 0x82F8, 0x50B5, 0x82F9, 0x50B6, 0x82FA, + 0x50B7, 0x82FB, 0x50B8, 0x82FC, 0x50B9, 0x82FD, 0x50BA, 0xD9D1, + 0x50BB, 0xC9B5, 0x50BC, 0x82FE, 0x50BD, 0x8340, 0x50BE, 0x8341, + 0x50BF, 0x8342, 0x50C0, 0x8343, 0x50C1, 0x8344, 0x50C2, 0x8345, + 0x50C3, 0x8346, 0x50C4, 0x8347, 0x50C5, 0x8348, 0x50C6, 0x8349, + 0x50C7, 0x834A, 0x50C8, 0x834B, 0x50C9, 0x834C, 0x50CA, 0x834D, + 0x50CB, 0x834E, 0x50CC, 0x834F, 0x50CD, 0x8350, 0x50CE, 0x8351, + 0x50CF, 0xCFF1, 0x50D0, 0x8352, 0x50D1, 0x8353, 0x50D2, 0x8354, + 0x50D3, 0x8355, 0x50D4, 0x8356, 0x50D5, 0x8357, 0x50D6, 0xD9D2, + 0x50D7, 0x8358, 0x50D8, 0x8359, 0x50D9, 0x835A, 0x50DA, 0xC1C5, + 0x50DB, 0x835B, 0x50DC, 0x835C, 0x50DD, 0x835D, 0x50DE, 0x835E, + 0x50DF, 0x835F, 0x50E0, 0x8360, 0x50E1, 0x8361, 0x50E2, 0x8362, + 0x50E3, 0x8363, 0x50E4, 0x8364, 0x50E5, 0x8365, 0x50E6, 0xD9D6, + 0x50E7, 0xC9AE, 0x50E8, 0x8366, 0x50E9, 0x8367, 0x50EA, 0x8368, + 0x50EB, 0x8369, 0x50EC, 0xD9D5, 0x50ED, 0xD9D4, 0x50EE, 0xD9D7, + 0x50EF, 0x836A, 0x50F0, 0x836B, 0x50F1, 0x836C, 0x50F2, 0x836D, + 0x50F3, 0xCBDB, 0x50F4, 0x836E, 0x50F5, 0xBDA9, 0x50F6, 0x836F, + 0x50F7, 0x8370, 0x50F8, 0x8371, 0x50F9, 0x8372, 0x50FA, 0x8373, + 0x50FB, 0xC6A7, 0x50FC, 0x8374, 0x50FD, 0x8375, 0x50FE, 0x8376, + 0x50FF, 0x8377, 0x5100, 0x8378, 0x5101, 0x8379, 0x5102, 0x837A, + 0x5103, 0x837B, 0x5104, 0x837C, 0x5105, 0x837D, 0x5106, 0xD9D3, + 0x5107, 0xD9D8, 0x5108, 0x837E, 0x5109, 0x8380, 0x510A, 0x8381, + 0x510B, 0xD9D9, 0x510C, 0x8382, 0x510D, 0x8383, 0x510E, 0x8384, + 0x510F, 0x8385, 0x5110, 0x8386, 0x5111, 0x8387, 0x5112, 0xC8E5, + 0x5113, 0x8388, 0x5114, 0x8389, 0x5115, 0x838A, 0x5116, 0x838B, + 0x5117, 0x838C, 0x5118, 0x838D, 0x5119, 0x838E, 0x511A, 0x838F, + 0x511B, 0x8390, 0x511C, 0x8391, 0x511D, 0x8392, 0x511E, 0x8393, + 0x511F, 0x8394, 0x5120, 0x8395, 0x5121, 0xC0DC, 0x5122, 0x8396, + 0x5123, 0x8397, 0x5124, 0x8398, 0x5125, 0x8399, 0x5126, 0x839A, + 0x5127, 0x839B, 0x5128, 0x839C, 0x5129, 0x839D, 0x512A, 0x839E, + 0x512B, 0x839F, 0x512C, 0x83A0, 0x512D, 0x83A1, 0x512E, 0x83A2, + 0x512F, 0x83A3, 0x5130, 0x83A4, 0x5131, 0x83A5, 0x5132, 0x83A6, + 0x5133, 0x83A7, 0x5134, 0x83A8, 0x5135, 0x83A9, 0x5136, 0x83AA, + 0x5137, 0x83AB, 0x5138, 0x83AC, 0x5139, 0x83AD, 0x513A, 0x83AE, + 0x513B, 0x83AF, 0x513C, 0x83B0, 0x513D, 0x83B1, 0x513E, 0x83B2, + 0x513F, 0xB6F9, 0x5140, 0xD8A3, 0x5141, 0xD4CA, 0x5142, 0x83B3, + 0x5143, 0xD4AA, 0x5144, 0xD0D6, 0x5145, 0xB3E4, 0x5146, 0xD5D7, + 0x5147, 0x83B4, 0x5148, 0xCFC8, 0x5149, 0xB9E2, 0x514A, 0x83B5, + 0x514B, 0xBFCB, 0x514C, 0x83B6, 0x514D, 0xC3E2, 0x514E, 0x83B7, + 0x514F, 0x83B8, 0x5150, 0x83B9, 0x5151, 0xB6D2, 0x5152, 0x83BA, + 0x5153, 0x83BB, 0x5154, 0xCDC3, 0x5155, 0xD9EE, 0x5156, 0xD9F0, + 0x5157, 0x83BC, 0x5158, 0x83BD, 0x5159, 0x83BE, 0x515A, 0xB5B3, + 0x515B, 0x83BF, 0x515C, 0xB6B5, 0x515D, 0x83C0, 0x515E, 0x83C1, + 0x515F, 0x83C2, 0x5160, 0x83C3, 0x5161, 0x83C4, 0x5162, 0xBEA4, + 0x5163, 0x83C5, 0x5164, 0x83C6, 0x5165, 0xC8EB, 0x5166, 0x83C7, + 0x5167, 0x83C8, 0x5168, 0xC8AB, 0x5169, 0x83C9, 0x516A, 0x83CA, + 0x516B, 0xB0CB, 0x516C, 0xB9AB, 0x516D, 0xC1F9, 0x516E, 0xD9E2, + 0x516F, 0x83CB, 0x5170, 0xC0BC, 0x5171, 0xB9B2, 0x5172, 0x83CC, + 0x5173, 0xB9D8, 0x5174, 0xD0CB, 0x5175, 0xB1F8, 0x5176, 0xC6E4, + 0x5177, 0xBEDF, 0x5178, 0xB5E4, 0x5179, 0xD7C8, 0x517A, 0x83CD, + 0x517B, 0xD1F8, 0x517C, 0xBCE6, 0x517D, 0xCADE, 0x517E, 0x83CE, + 0x517F, 0x83CF, 0x5180, 0xBCBD, 0x5181, 0xD9E6, 0x5182, 0xD8E7, + 0x5183, 0x83D0, 0x5184, 0x83D1, 0x5185, 0xC4DA, 0x5186, 0x83D2, + 0x5187, 0x83D3, 0x5188, 0xB8D4, 0x5189, 0xC8BD, 0x518A, 0x83D4, + 0x518B, 0x83D5, 0x518C, 0xB2E1, 0x518D, 0xD4D9, 0x518E, 0x83D6, + 0x518F, 0x83D7, 0x5190, 0x83D8, 0x5191, 0x83D9, 0x5192, 0xC3B0, + 0x5193, 0x83DA, 0x5194, 0x83DB, 0x5195, 0xC3E1, 0x5196, 0xDAA2, + 0x5197, 0xC8DF, 0x5198, 0x83DC, 0x5199, 0xD0B4, 0x519A, 0x83DD, + 0x519B, 0xBEFC, 0x519C, 0xC5A9, 0x519D, 0x83DE, 0x519E, 0x83DF, + 0x519F, 0x83E0, 0x51A0, 0xB9DA, 0x51A1, 0x83E1, 0x51A2, 0xDAA3, + 0x51A3, 0x83E2, 0x51A4, 0xD4A9, 0x51A5, 0xDAA4, 0x51A6, 0x83E3, + 0x51A7, 0x83E4, 0x51A8, 0x83E5, 0x51A9, 0x83E6, 0x51AA, 0x83E7, + 0x51AB, 0xD9FB, 0x51AC, 0xB6AC, 0x51AD, 0x83E8, 0x51AE, 0x83E9, + 0x51AF, 0xB7EB, 0x51B0, 0xB1F9, 0x51B1, 0xD9FC, 0x51B2, 0xB3E5, + 0x51B3, 0xBEF6, 0x51B4, 0x83EA, 0x51B5, 0xBFF6, 0x51B6, 0xD2B1, + 0x51B7, 0xC0E4, 0x51B8, 0x83EB, 0x51B9, 0x83EC, 0x51BA, 0x83ED, + 0x51BB, 0xB6B3, 0x51BC, 0xD9FE, 0x51BD, 0xD9FD, 0x51BE, 0x83EE, + 0x51BF, 0x83EF, 0x51C0, 0xBEBB, 0x51C1, 0x83F0, 0x51C2, 0x83F1, + 0x51C3, 0x83F2, 0x51C4, 0xC6E0, 0x51C5, 0x83F3, 0x51C6, 0xD7BC, + 0x51C7, 0xDAA1, 0x51C8, 0x83F4, 0x51C9, 0xC1B9, 0x51CA, 0x83F5, + 0x51CB, 0xB5F2, 0x51CC, 0xC1E8, 0x51CD, 0x83F6, 0x51CE, 0x83F7, + 0x51CF, 0xBCF5, 0x51D0, 0x83F8, 0x51D1, 0xB4D5, 0x51D2, 0x83F9, + 0x51D3, 0x83FA, 0x51D4, 0x83FB, 0x51D5, 0x83FC, 0x51D6, 0x83FD, + 0x51D7, 0x83FE, 0x51D8, 0x8440, 0x51D9, 0x8441, 0x51DA, 0x8442, + 0x51DB, 0xC1DD, 0x51DC, 0x8443, 0x51DD, 0xC4FD, 0x51DE, 0x8444, + 0x51DF, 0x8445, 0x51E0, 0xBCB8, 0x51E1, 0xB7B2, 0x51E2, 0x8446, + 0x51E3, 0x8447, 0x51E4, 0xB7EF, 0x51E5, 0x8448, 0x51E6, 0x8449, + 0x51E7, 0x844A, 0x51E8, 0x844B, 0x51E9, 0x844C, 0x51EA, 0x844D, + 0x51EB, 0xD9EC, 0x51EC, 0x844E, 0x51ED, 0xC6BE, 0x51EE, 0x844F, + 0x51EF, 0xBFAD, 0x51F0, 0xBBCB, 0x51F1, 0x8450, 0x51F2, 0x8451, + 0x51F3, 0xB5CA, 0x51F4, 0x8452, 0x51F5, 0xDBC9, 0x51F6, 0xD0D7, + 0x51F7, 0x8453, 0x51F8, 0xCDB9, 0x51F9, 0xB0BC, 0x51FA, 0xB3F6, + 0x51FB, 0xBBF7, 0x51FC, 0xDBCA, 0x51FD, 0xBAAF, 0x51FE, 0x8454, + 0x51FF, 0xD4E4, 0x5200, 0xB5B6, 0x5201, 0xB5F3, 0x5202, 0xD8D6, + 0x5203, 0xC8D0, 0x5204, 0x8455, 0x5205, 0x8456, 0x5206, 0xB7D6, + 0x5207, 0xC7D0, 0x5208, 0xD8D7, 0x5209, 0x8457, 0x520A, 0xBFAF, + 0x520B, 0x8458, 0x520C, 0x8459, 0x520D, 0xDBBB, 0x520E, 0xD8D8, + 0x520F, 0x845A, 0x5210, 0x845B, 0x5211, 0xD0CC, 0x5212, 0xBBAE, + 0x5213, 0x845C, 0x5214, 0x845D, 0x5215, 0x845E, 0x5216, 0xEBBE, + 0x5217, 0xC1D0, 0x5218, 0xC1F5, 0x5219, 0xD4F2, 0x521A, 0xB8D5, + 0x521B, 0xB4B4, 0x521C, 0x845F, 0x521D, 0xB3F5, 0x521E, 0x8460, + 0x521F, 0x8461, 0x5220, 0xC9BE, 0x5221, 0x8462, 0x5222, 0x8463, + 0x5223, 0x8464, 0x5224, 0xC5D0, 0x5225, 0x8465, 0x5226, 0x8466, + 0x5227, 0x8467, 0x5228, 0xC5D9, 0x5229, 0xC0FB, 0x522A, 0x8468, + 0x522B, 0xB1F0, 0x522C, 0x8469, 0x522D, 0xD8D9, 0x522E, 0xB9CE, + 0x522F, 0x846A, 0x5230, 0xB5BD, 0x5231, 0x846B, 0x5232, 0x846C, + 0x5233, 0xD8DA, 0x5234, 0x846D, 0x5235, 0x846E, 0x5236, 0xD6C6, + 0x5237, 0xCBA2, 0x5238, 0xC8AF, 0x5239, 0xC9B2, 0x523A, 0xB4CC, + 0x523B, 0xBFCC, 0x523C, 0x846F, 0x523D, 0xB9F4, 0x523E, 0x8470, + 0x523F, 0xD8DB, 0x5240, 0xD8DC, 0x5241, 0xB6E7, 0x5242, 0xBCC1, + 0x5243, 0xCCEA, 0x5244, 0x8471, 0x5245, 0x8472, 0x5246, 0x8473, + 0x5247, 0x8474, 0x5248, 0x8475, 0x5249, 0x8476, 0x524A, 0xCFF7, + 0x524B, 0x8477, 0x524C, 0xD8DD, 0x524D, 0xC7B0, 0x524E, 0x8478, + 0x524F, 0x8479, 0x5250, 0xB9D0, 0x5251, 0xBDA3, 0x5252, 0x847A, + 0x5253, 0x847B, 0x5254, 0xCCDE, 0x5255, 0x847C, 0x5256, 0xC6CA, + 0x5257, 0x847D, 0x5258, 0x847E, 0x5259, 0x8480, 0x525A, 0x8481, + 0x525B, 0x8482, 0x525C, 0xD8E0, 0x525D, 0x8483, 0x525E, 0xD8DE, + 0x525F, 0x8484, 0x5260, 0x8485, 0x5261, 0xD8DF, 0x5262, 0x8486, + 0x5263, 0x8487, 0x5264, 0x8488, 0x5265, 0xB0FE, 0x5266, 0x8489, + 0x5267, 0xBEE7, 0x5268, 0x848A, 0x5269, 0xCAA3, 0x526A, 0xBCF4, + 0x526B, 0x848B, 0x526C, 0x848C, 0x526D, 0x848D, 0x526E, 0x848E, + 0x526F, 0xB8B1, 0x5270, 0x848F, 0x5271, 0x8490, 0x5272, 0xB8EE, + 0x5273, 0x8491, 0x5274, 0x8492, 0x5275, 0x8493, 0x5276, 0x8494, + 0x5277, 0x8495, 0x5278, 0x8496, 0x5279, 0x8497, 0x527A, 0x8498, + 0x527B, 0x8499, 0x527C, 0x849A, 0x527D, 0xD8E2, 0x527E, 0x849B, + 0x527F, 0xBDCB, 0x5280, 0x849C, 0x5281, 0xD8E4, 0x5282, 0xD8E3, + 0x5283, 0x849D, 0x5284, 0x849E, 0x5285, 0x849F, 0x5286, 0x84A0, + 0x5287, 0x84A1, 0x5288, 0xC5FC, 0x5289, 0x84A2, 0x528A, 0x84A3, + 0x528B, 0x84A4, 0x528C, 0x84A5, 0x528D, 0x84A6, 0x528E, 0x84A7, + 0x528F, 0x84A8, 0x5290, 0xD8E5, 0x5291, 0x84A9, 0x5292, 0x84AA, + 0x5293, 0xD8E6, 0x5294, 0x84AB, 0x5295, 0x84AC, 0x5296, 0x84AD, + 0x5297, 0x84AE, 0x5298, 0x84AF, 0x5299, 0x84B0, 0x529A, 0x84B1, + 0x529B, 0xC1A6, 0x529C, 0x84B2, 0x529D, 0xC8B0, 0x529E, 0xB0EC, + 0x529F, 0xB9A6, 0x52A0, 0xBCD3, 0x52A1, 0xCEF1, 0x52A2, 0xDBBD, + 0x52A3, 0xC1D3, 0x52A4, 0x84B3, 0x52A5, 0x84B4, 0x52A6, 0x84B5, + 0x52A7, 0x84B6, 0x52A8, 0xB6AF, 0x52A9, 0xD6FA, 0x52AA, 0xC5AC, + 0x52AB, 0xBDD9, 0x52AC, 0xDBBE, 0x52AD, 0xDBBF, 0x52AE, 0x84B7, + 0x52AF, 0x84B8, 0x52B0, 0x84B9, 0x52B1, 0xC0F8, 0x52B2, 0xBEA2, + 0x52B3, 0xC0CD, 0x52B4, 0x84BA, 0x52B5, 0x84BB, 0x52B6, 0x84BC, + 0x52B7, 0x84BD, 0x52B8, 0x84BE, 0x52B9, 0x84BF, 0x52BA, 0x84C0, + 0x52BB, 0x84C1, 0x52BC, 0x84C2, 0x52BD, 0x84C3, 0x52BE, 0xDBC0, + 0x52BF, 0xCAC6, 0x52C0, 0x84C4, 0x52C1, 0x84C5, 0x52C2, 0x84C6, + 0x52C3, 0xB2AA, 0x52C4, 0x84C7, 0x52C5, 0x84C8, 0x52C6, 0x84C9, + 0x52C7, 0xD3C2, 0x52C8, 0x84CA, 0x52C9, 0xC3E3, 0x52CA, 0x84CB, + 0x52CB, 0xD1AB, 0x52CC, 0x84CC, 0x52CD, 0x84CD, 0x52CE, 0x84CE, + 0x52CF, 0x84CF, 0x52D0, 0xDBC2, 0x52D1, 0x84D0, 0x52D2, 0xC0D5, + 0x52D3, 0x84D1, 0x52D4, 0x84D2, 0x52D5, 0x84D3, 0x52D6, 0xDBC3, + 0x52D7, 0x84D4, 0x52D8, 0xBFB1, 0x52D9, 0x84D5, 0x52DA, 0x84D6, + 0x52DB, 0x84D7, 0x52DC, 0x84D8, 0x52DD, 0x84D9, 0x52DE, 0x84DA, + 0x52DF, 0xC4BC, 0x52E0, 0x84DB, 0x52E1, 0x84DC, 0x52E2, 0x84DD, + 0x52E3, 0x84DE, 0x52E4, 0xC7DA, 0x52E5, 0x84DF, 0x52E6, 0x84E0, + 0x52E7, 0x84E1, 0x52E8, 0x84E2, 0x52E9, 0x84E3, 0x52EA, 0x84E4, + 0x52EB, 0x84E5, 0x52EC, 0x84E6, 0x52ED, 0x84E7, 0x52EE, 0x84E8, + 0x52EF, 0x84E9, 0x52F0, 0xDBC4, 0x52F1, 0x84EA, 0x52F2, 0x84EB, + 0x52F3, 0x84EC, 0x52F4, 0x84ED, 0x52F5, 0x84EE, 0x52F6, 0x84EF, + 0x52F7, 0x84F0, 0x52F8, 0x84F1, 0x52F9, 0xD9E8, 0x52FA, 0xC9D7, + 0x52FB, 0x84F2, 0x52FC, 0x84F3, 0x52FD, 0x84F4, 0x52FE, 0xB9B4, + 0x52FF, 0xCEF0, 0x5300, 0xD4C8, 0x5301, 0x84F5, 0x5302, 0x84F6, + 0x5303, 0x84F7, 0x5304, 0x84F8, 0x5305, 0xB0FC, 0x5306, 0xB4D2, + 0x5307, 0x84F9, 0x5308, 0xD0D9, 0x5309, 0x84FA, 0x530A, 0x84FB, + 0x530B, 0x84FC, 0x530C, 0x84FD, 0x530D, 0xD9E9, 0x530E, 0x84FE, + 0x530F, 0xDECB, 0x5310, 0xD9EB, 0x5311, 0x8540, 0x5312, 0x8541, + 0x5313, 0x8542, 0x5314, 0x8543, 0x5315, 0xD8B0, 0x5316, 0xBBAF, + 0x5317, 0xB1B1, 0x5318, 0x8544, 0x5319, 0xB3D7, 0x531A, 0xD8CE, + 0x531B, 0x8545, 0x531C, 0x8546, 0x531D, 0xD4D1, 0x531E, 0x8547, + 0x531F, 0x8548, 0x5320, 0xBDB3, 0x5321, 0xBFEF, 0x5322, 0x8549, + 0x5323, 0xCFBB, 0x5324, 0x854A, 0x5325, 0x854B, 0x5326, 0xD8D0, + 0x5327, 0x854C, 0x5328, 0x854D, 0x5329, 0x854E, 0x532A, 0xB7CB, + 0x532B, 0x854F, 0x532C, 0x8550, 0x532D, 0x8551, 0x532E, 0xD8D1, + 0x532F, 0x8552, 0x5330, 0x8553, 0x5331, 0x8554, 0x5332, 0x8555, + 0x5333, 0x8556, 0x5334, 0x8557, 0x5335, 0x8558, 0x5336, 0x8559, + 0x5337, 0x855A, 0x5338, 0x855B, 0x5339, 0xC6A5, 0x533A, 0xC7F8, + 0x533B, 0xD2BD, 0x533C, 0x855C, 0x533D, 0x855D, 0x533E, 0xD8D2, + 0x533F, 0xC4E4, 0x5340, 0x855E, 0x5341, 0xCAAE, 0x5342, 0x855F, + 0x5343, 0xC7A7, 0x5344, 0x8560, 0x5345, 0xD8A6, 0x5346, 0x8561, + 0x5347, 0xC9FD, 0x5348, 0xCEE7, 0x5349, 0xBBDC, 0x534A, 0xB0EB, + 0x534B, 0x8562, 0x534C, 0x8563, 0x534D, 0x8564, 0x534E, 0xBBAA, + 0x534F, 0xD0AD, 0x5350, 0x8565, 0x5351, 0xB1B0, 0x5352, 0xD7E4, + 0x5353, 0xD7BF, 0x5354, 0x8566, 0x5355, 0xB5A5, 0x5356, 0xC2F4, + 0x5357, 0xC4CF, 0x5358, 0x8567, 0x5359, 0x8568, 0x535A, 0xB2A9, + 0x535B, 0x8569, 0x535C, 0xB2B7, 0x535D, 0x856A, 0x535E, 0xB1E5, + 0x535F, 0xDFB2, 0x5360, 0xD5BC, 0x5361, 0xBFA8, 0x5362, 0xC2AC, + 0x5363, 0xD8D5, 0x5364, 0xC2B1, 0x5365, 0x856B, 0x5366, 0xD8D4, + 0x5367, 0xCED4, 0x5368, 0x856C, 0x5369, 0xDAE0, 0x536A, 0x856D, + 0x536B, 0xCEC0, 0x536C, 0x856E, 0x536D, 0x856F, 0x536E, 0xD8B4, + 0x536F, 0xC3AE, 0x5370, 0xD3A1, 0x5371, 0xCEA3, 0x5372, 0x8570, + 0x5373, 0xBCB4, 0x5374, 0xC8B4, 0x5375, 0xC2D1, 0x5376, 0x8571, + 0x5377, 0xBEED, 0x5378, 0xD0B6, 0x5379, 0x8572, 0x537A, 0xDAE1, + 0x537B, 0x8573, 0x537C, 0x8574, 0x537D, 0x8575, 0x537E, 0x8576, + 0x537F, 0xC7E4, 0x5380, 0x8577, 0x5381, 0x8578, 0x5382, 0xB3A7, + 0x5383, 0x8579, 0x5384, 0xB6F2, 0x5385, 0xCCFC, 0x5386, 0xC0FA, + 0x5387, 0x857A, 0x5388, 0x857B, 0x5389, 0xC0F7, 0x538A, 0x857C, + 0x538B, 0xD1B9, 0x538C, 0xD1E1, 0x538D, 0xD8C7, 0x538E, 0x857D, + 0x538F, 0x857E, 0x5390, 0x8580, 0x5391, 0x8581, 0x5392, 0x8582, + 0x5393, 0x8583, 0x5394, 0x8584, 0x5395, 0xB2DE, 0x5396, 0x8585, + 0x5397, 0x8586, 0x5398, 0xC0E5, 0x5399, 0x8587, 0x539A, 0xBAF1, + 0x539B, 0x8588, 0x539C, 0x8589, 0x539D, 0xD8C8, 0x539E, 0x858A, + 0x539F, 0xD4AD, 0x53A0, 0x858B, 0x53A1, 0x858C, 0x53A2, 0xCFE1, + 0x53A3, 0xD8C9, 0x53A4, 0x858D, 0x53A5, 0xD8CA, 0x53A6, 0xCFC3, + 0x53A7, 0x858E, 0x53A8, 0xB3F8, 0x53A9, 0xBEC7, 0x53AA, 0x858F, + 0x53AB, 0x8590, 0x53AC, 0x8591, 0x53AD, 0x8592, 0x53AE, 0xD8CB, + 0x53AF, 0x8593, 0x53B0, 0x8594, 0x53B1, 0x8595, 0x53B2, 0x8596, + 0x53B3, 0x8597, 0x53B4, 0x8598, 0x53B5, 0x8599, 0x53B6, 0xDBCC, + 0x53B7, 0x859A, 0x53B8, 0x859B, 0x53B9, 0x859C, 0x53BA, 0x859D, + 0x53BB, 0xC8A5, 0x53BC, 0x859E, 0x53BD, 0x859F, 0x53BE, 0x85A0, + 0x53BF, 0xCFD8, 0x53C0, 0x85A1, 0x53C1, 0xC8FE, 0x53C2, 0xB2CE, + 0x53C3, 0x85A2, 0x53C4, 0x85A3, 0x53C5, 0x85A4, 0x53C6, 0x85A5, + 0x53C7, 0x85A6, 0x53C8, 0xD3D6, 0x53C9, 0xB2E6, 0x53CA, 0xBCB0, + 0x53CB, 0xD3D1, 0x53CC, 0xCBAB, 0x53CD, 0xB7B4, 0x53CE, 0x85A7, + 0x53CF, 0x85A8, 0x53D0, 0x85A9, 0x53D1, 0xB7A2, 0x53D2, 0x85AA, + 0x53D3, 0x85AB, 0x53D4, 0xCAE5, 0x53D5, 0x85AC, 0x53D6, 0xC8A1, + 0x53D7, 0xCADC, 0x53D8, 0xB1E4, 0x53D9, 0xD0F0, 0x53DA, 0x85AD, + 0x53DB, 0xC5D1, 0x53DC, 0x85AE, 0x53DD, 0x85AF, 0x53DE, 0x85B0, + 0x53DF, 0xDBC5, 0x53E0, 0xB5FE, 0x53E1, 0x85B1, 0x53E2, 0x85B2, + 0x53E3, 0xBFDA, 0x53E4, 0xB9C5, 0x53E5, 0xBEE4, 0x53E6, 0xC1ED, + 0x53E7, 0x85B3, 0x53E8, 0xDFB6, 0x53E9, 0xDFB5, 0x53EA, 0xD6BB, + 0x53EB, 0xBDD0, 0x53EC, 0xD5D9, 0x53ED, 0xB0C8, 0x53EE, 0xB6A3, + 0x53EF, 0xBFC9, 0x53F0, 0xCCA8, 0x53F1, 0xDFB3, 0x53F2, 0xCAB7, + 0x53F3, 0xD3D2, 0x53F4, 0x85B4, 0x53F5, 0xD8CF, 0x53F6, 0xD2B6, + 0x53F7, 0xBAC5, 0x53F8, 0xCBBE, 0x53F9, 0xCCBE, 0x53FA, 0x85B5, + 0x53FB, 0xDFB7, 0x53FC, 0xB5F0, 0x53FD, 0xDFB4, 0x53FE, 0x85B6, + 0x53FF, 0x85B7, 0x5400, 0x85B8, 0x5401, 0xD3F5, 0x5402, 0x85B9, + 0x5403, 0xB3D4, 0x5404, 0xB8F7, 0x5405, 0x85BA, 0x5406, 0xDFBA, + 0x5407, 0x85BB, 0x5408, 0xBACF, 0x5409, 0xBCAA, 0x540A, 0xB5F5, + 0x540B, 0x85BC, 0x540C, 0xCDAC, 0x540D, 0xC3FB, 0x540E, 0xBAF3, + 0x540F, 0xC0F4, 0x5410, 0xCDC2, 0x5411, 0xCFF2, 0x5412, 0xDFB8, + 0x5413, 0xCFC5, 0x5414, 0x85BD, 0x5415, 0xC2C0, 0x5416, 0xDFB9, + 0x5417, 0xC2F0, 0x5418, 0x85BE, 0x5419, 0x85BF, 0x541A, 0x85C0, + 0x541B, 0xBEFD, 0x541C, 0x85C1, 0x541D, 0xC1DF, 0x541E, 0xCDCC, + 0x541F, 0xD2F7, 0x5420, 0xB7CD, 0x5421, 0xDFC1, 0x5422, 0x85C2, + 0x5423, 0xDFC4, 0x5424, 0x85C3, 0x5425, 0x85C4, 0x5426, 0xB7F1, + 0x5427, 0xB0C9, 0x5428, 0xB6D6, 0x5429, 0xB7D4, 0x542A, 0x85C5, + 0x542B, 0xBAAC, 0x542C, 0xCCFD, 0x542D, 0xBFD4, 0x542E, 0xCBB1, + 0x542F, 0xC6F4, 0x5430, 0x85C6, 0x5431, 0xD6A8, 0x5432, 0xDFC5, + 0x5433, 0x85C7, 0x5434, 0xCEE2, 0x5435, 0xB3B3, 0x5436, 0x85C8, + 0x5437, 0x85C9, 0x5438, 0xCEFC, 0x5439, 0xB4B5, 0x543A, 0x85CA, + 0x543B, 0xCEC7, 0x543C, 0xBAF0, 0x543D, 0x85CB, 0x543E, 0xCEE1, + 0x543F, 0x85CC, 0x5440, 0xD1BD, 0x5441, 0x85CD, 0x5442, 0x85CE, + 0x5443, 0xDFC0, 0x5444, 0x85CF, 0x5445, 0x85D0, 0x5446, 0xB4F4, + 0x5447, 0x85D1, 0x5448, 0xB3CA, 0x5449, 0x85D2, 0x544A, 0xB8E6, + 0x544B, 0xDFBB, 0x544C, 0x85D3, 0x544D, 0x85D4, 0x544E, 0x85D5, + 0x544F, 0x85D6, 0x5450, 0xC4C5, 0x5451, 0x85D7, 0x5452, 0xDFBC, + 0x5453, 0xDFBD, 0x5454, 0xDFBE, 0x5455, 0xC5BB, 0x5456, 0xDFBF, + 0x5457, 0xDFC2, 0x5458, 0xD4B1, 0x5459, 0xDFC3, 0x545A, 0x85D8, + 0x545B, 0xC7BA, 0x545C, 0xCED8, 0x545D, 0x85D9, 0x545E, 0x85DA, + 0x545F, 0x85DB, 0x5460, 0x85DC, 0x5461, 0x85DD, 0x5462, 0xC4D8, + 0x5463, 0x85DE, 0x5464, 0xDFCA, 0x5465, 0x85DF, 0x5466, 0xDFCF, + 0x5467, 0x85E0, 0x5468, 0xD6DC, 0x5469, 0x85E1, 0x546A, 0x85E2, + 0x546B, 0x85E3, 0x546C, 0x85E4, 0x546D, 0x85E5, 0x546E, 0x85E6, + 0x546F, 0x85E7, 0x5470, 0x85E8, 0x5471, 0xDFC9, 0x5472, 0xDFDA, + 0x5473, 0xCEB6, 0x5474, 0x85E9, 0x5475, 0xBAC7, 0x5476, 0xDFCE, + 0x5477, 0xDFC8, 0x5478, 0xC5DE, 0x5479, 0x85EA, 0x547A, 0x85EB, + 0x547B, 0xC9EB, 0x547C, 0xBAF4, 0x547D, 0xC3FC, 0x547E, 0x85EC, + 0x547F, 0x85ED, 0x5480, 0xBED7, 0x5481, 0x85EE, 0x5482, 0xDFC6, + 0x5483, 0x85EF, 0x5484, 0xDFCD, 0x5485, 0x85F0, 0x5486, 0xC5D8, + 0x5487, 0x85F1, 0x5488, 0x85F2, 0x5489, 0x85F3, 0x548A, 0x85F4, + 0x548B, 0xD5A6, 0x548C, 0xBACD, 0x548D, 0x85F5, 0x548E, 0xBECC, + 0x548F, 0xD3BD, 0x5490, 0xB8C0, 0x5491, 0x85F6, 0x5492, 0xD6E4, + 0x5493, 0x85F7, 0x5494, 0xDFC7, 0x5495, 0xB9BE, 0x5496, 0xBFA7, + 0x5497, 0x85F8, 0x5498, 0x85F9, 0x5499, 0xC1FC, 0x549A, 0xDFCB, + 0x549B, 0xDFCC, 0x549C, 0x85FA, 0x549D, 0xDFD0, 0x549E, 0x85FB, + 0x549F, 0x85FC, 0x54A0, 0x85FD, 0x54A1, 0x85FE, 0x54A2, 0x8640, + 0x54A3, 0xDFDB, 0x54A4, 0xDFE5, 0x54A5, 0x8641, 0x54A6, 0xDFD7, + 0x54A7, 0xDFD6, 0x54A8, 0xD7C9, 0x54A9, 0xDFE3, 0x54AA, 0xDFE4, + 0x54AB, 0xE5EB, 0x54AC, 0xD2A7, 0x54AD, 0xDFD2, 0x54AE, 0x8642, + 0x54AF, 0xBFA9, 0x54B0, 0x8643, 0x54B1, 0xD4DB, 0x54B2, 0x8644, + 0x54B3, 0xBFC8, 0x54B4, 0xDFD4, 0x54B5, 0x8645, 0x54B6, 0x8646, + 0x54B7, 0x8647, 0x54B8, 0xCFCC, 0x54B9, 0x8648, 0x54BA, 0x8649, + 0x54BB, 0xDFDD, 0x54BC, 0x864A, 0x54BD, 0xD1CA, 0x54BE, 0x864B, + 0x54BF, 0xDFDE, 0x54C0, 0xB0A7, 0x54C1, 0xC6B7, 0x54C2, 0xDFD3, + 0x54C3, 0x864C, 0x54C4, 0xBAE5, 0x54C5, 0x864D, 0x54C6, 0xB6DF, + 0x54C7, 0xCDDB, 0x54C8, 0xB9FE, 0x54C9, 0xD4D5, 0x54CA, 0x864E, + 0x54CB, 0x864F, 0x54CC, 0xDFDF, 0x54CD, 0xCFEC, 0x54CE, 0xB0A5, + 0x54CF, 0xDFE7, 0x54D0, 0xDFD1, 0x54D1, 0xD1C6, 0x54D2, 0xDFD5, + 0x54D3, 0xDFD8, 0x54D4, 0xDFD9, 0x54D5, 0xDFDC, 0x54D6, 0x8650, + 0x54D7, 0xBBA9, 0x54D8, 0x8651, 0x54D9, 0xDFE0, 0x54DA, 0xDFE1, + 0x54DB, 0x8652, 0x54DC, 0xDFE2, 0x54DD, 0xDFE6, 0x54DE, 0xDFE8, + 0x54DF, 0xD3B4, 0x54E0, 0x8653, 0x54E1, 0x8654, 0x54E2, 0x8655, + 0x54E3, 0x8656, 0x54E4, 0x8657, 0x54E5, 0xB8E7, 0x54E6, 0xC5B6, + 0x54E7, 0xDFEA, 0x54E8, 0xC9DA, 0x54E9, 0xC1A8, 0x54EA, 0xC4C4, + 0x54EB, 0x8658, 0x54EC, 0x8659, 0x54ED, 0xBFDE, 0x54EE, 0xCFF8, + 0x54EF, 0x865A, 0x54F0, 0x865B, 0x54F1, 0x865C, 0x54F2, 0xD5DC, + 0x54F3, 0xDFEE, 0x54F4, 0x865D, 0x54F5, 0x865E, 0x54F6, 0x865F, + 0x54F7, 0x8660, 0x54F8, 0x8661, 0x54F9, 0x8662, 0x54FA, 0xB2B8, + 0x54FB, 0x8663, 0x54FC, 0xBADF, 0x54FD, 0xDFEC, 0x54FE, 0x8664, + 0x54FF, 0xDBC1, 0x5500, 0x8665, 0x5501, 0xD1E4, 0x5502, 0x8666, + 0x5503, 0x8667, 0x5504, 0x8668, 0x5505, 0x8669, 0x5506, 0xCBF4, + 0x5507, 0xB4BD, 0x5508, 0x866A, 0x5509, 0xB0A6, 0x550A, 0x866B, + 0x550B, 0x866C, 0x550C, 0x866D, 0x550D, 0x866E, 0x550E, 0x866F, + 0x550F, 0xDFF1, 0x5510, 0xCCC6, 0x5511, 0xDFF2, 0x5512, 0x8670, + 0x5513, 0x8671, 0x5514, 0xDFED, 0x5515, 0x8672, 0x5516, 0x8673, + 0x5517, 0x8674, 0x5518, 0x8675, 0x5519, 0x8676, 0x551A, 0x8677, + 0x551B, 0xDFE9, 0x551C, 0x8678, 0x551D, 0x8679, 0x551E, 0x867A, + 0x551F, 0x867B, 0x5520, 0xDFEB, 0x5521, 0x867C, 0x5522, 0xDFEF, + 0x5523, 0xDFF0, 0x5524, 0xBBBD, 0x5525, 0x867D, 0x5526, 0x867E, + 0x5527, 0xDFF3, 0x5528, 0x8680, 0x5529, 0x8681, 0x552A, 0xDFF4, + 0x552B, 0x8682, 0x552C, 0xBBA3, 0x552D, 0x8683, 0x552E, 0xCADB, + 0x552F, 0xCEA8, 0x5530, 0xE0A7, 0x5531, 0xB3AA, 0x5532, 0x8684, + 0x5533, 0xE0A6, 0x5534, 0x8685, 0x5535, 0x8686, 0x5536, 0x8687, + 0x5537, 0xE0A1, 0x5538, 0x8688, 0x5539, 0x8689, 0x553A, 0x868A, + 0x553B, 0x868B, 0x553C, 0xDFFE, 0x553D, 0x868C, 0x553E, 0xCDD9, + 0x553F, 0xDFFC, 0x5540, 0x868D, 0x5541, 0xDFFA, 0x5542, 0x868E, + 0x5543, 0xBFD0, 0x5544, 0xD7C4, 0x5545, 0x868F, 0x5546, 0xC9CC, + 0x5547, 0x8690, 0x5548, 0x8691, 0x5549, 0xDFF8, 0x554A, 0xB0A1, + 0x554B, 0x8692, 0x554C, 0x8693, 0x554D, 0x8694, 0x554E, 0x8695, + 0x554F, 0x8696, 0x5550, 0xDFFD, 0x5551, 0x8697, 0x5552, 0x8698, + 0x5553, 0x8699, 0x5554, 0x869A, 0x5555, 0xDFFB, 0x5556, 0xE0A2, + 0x5557, 0x869B, 0x5558, 0x869C, 0x5559, 0x869D, 0x555A, 0x869E, + 0x555B, 0x869F, 0x555C, 0xE0A8, 0x555D, 0x86A0, 0x555E, 0x86A1, + 0x555F, 0x86A2, 0x5560, 0x86A3, 0x5561, 0xB7C8, 0x5562, 0x86A4, + 0x5563, 0x86A5, 0x5564, 0xC6A1, 0x5565, 0xC9B6, 0x5566, 0xC0B2, + 0x5567, 0xDFF5, 0x5568, 0x86A6, 0x5569, 0x86A7, 0x556A, 0xC5BE, + 0x556B, 0x86A8, 0x556C, 0xD8C4, 0x556D, 0xDFF9, 0x556E, 0xC4F6, + 0x556F, 0x86A9, 0x5570, 0x86AA, 0x5571, 0x86AB, 0x5572, 0x86AC, + 0x5573, 0x86AD, 0x5574, 0x86AE, 0x5575, 0xE0A3, 0x5576, 0xE0A4, + 0x5577, 0xE0A5, 0x5578, 0xD0A5, 0x5579, 0x86AF, 0x557A, 0x86B0, + 0x557B, 0xE0B4, 0x557C, 0xCCE4, 0x557D, 0x86B1, 0x557E, 0xE0B1, + 0x557F, 0x86B2, 0x5580, 0xBFA6, 0x5581, 0xE0AF, 0x5582, 0xCEB9, + 0x5583, 0xE0AB, 0x5584, 0xC9C6, 0x5585, 0x86B3, 0x5586, 0x86B4, + 0x5587, 0xC0AE, 0x5588, 0xE0AE, 0x5589, 0xBAED, 0x558A, 0xBAB0, + 0x558B, 0xE0A9, 0x558C, 0x86B5, 0x558D, 0x86B6, 0x558E, 0x86B7, + 0x558F, 0xDFF6, 0x5590, 0x86B8, 0x5591, 0xE0B3, 0x5592, 0x86B9, + 0x5593, 0x86BA, 0x5594, 0xE0B8, 0x5595, 0x86BB, 0x5596, 0x86BC, + 0x5597, 0x86BD, 0x5598, 0xB4AD, 0x5599, 0xE0B9, 0x559A, 0x86BE, + 0x559B, 0x86BF, 0x559C, 0xCFB2, 0x559D, 0xBAC8, 0x559E, 0x86C0, + 0x559F, 0xE0B0, 0x55A0, 0x86C1, 0x55A1, 0x86C2, 0x55A2, 0x86C3, + 0x55A3, 0x86C4, 0x55A4, 0x86C5, 0x55A5, 0x86C6, 0x55A6, 0x86C7, + 0x55A7, 0xD0FA, 0x55A8, 0x86C8, 0x55A9, 0x86C9, 0x55AA, 0x86CA, + 0x55AB, 0x86CB, 0x55AC, 0x86CC, 0x55AD, 0x86CD, 0x55AE, 0x86CE, + 0x55AF, 0x86CF, 0x55B0, 0x86D0, 0x55B1, 0xE0AC, 0x55B2, 0x86D1, + 0x55B3, 0xD4FB, 0x55B4, 0x86D2, 0x55B5, 0xDFF7, 0x55B6, 0x86D3, + 0x55B7, 0xC5E7, 0x55B8, 0x86D4, 0x55B9, 0xE0AD, 0x55BA, 0x86D5, + 0x55BB, 0xD3F7, 0x55BC, 0x86D6, 0x55BD, 0xE0B6, 0x55BE, 0xE0B7, + 0x55BF, 0x86D7, 0x55C0, 0x86D8, 0x55C1, 0x86D9, 0x55C2, 0x86DA, + 0x55C3, 0x86DB, 0x55C4, 0xE0C4, 0x55C5, 0xD0E1, 0x55C6, 0x86DC, + 0x55C7, 0x86DD, 0x55C8, 0x86DE, 0x55C9, 0xE0BC, 0x55CA, 0x86DF, + 0x55CB, 0x86E0, 0x55CC, 0xE0C9, 0x55CD, 0xE0CA, 0x55CE, 0x86E1, + 0x55CF, 0x86E2, 0x55D0, 0x86E3, 0x55D1, 0xE0BE, 0x55D2, 0xE0AA, + 0x55D3, 0xC9A4, 0x55D4, 0xE0C1, 0x55D5, 0x86E4, 0x55D6, 0xE0B2, + 0x55D7, 0x86E5, 0x55D8, 0x86E6, 0x55D9, 0x86E7, 0x55DA, 0x86E8, + 0x55DB, 0x86E9, 0x55DC, 0xCAC8, 0x55DD, 0xE0C3, 0x55DE, 0x86EA, + 0x55DF, 0xE0B5, 0x55E0, 0x86EB, 0x55E1, 0xCECB, 0x55E2, 0x86EC, + 0x55E3, 0xCBC3, 0x55E4, 0xE0CD, 0x55E5, 0xE0C6, 0x55E6, 0xE0C2, + 0x55E7, 0x86ED, 0x55E8, 0xE0CB, 0x55E9, 0x86EE, 0x55EA, 0xE0BA, + 0x55EB, 0xE0BF, 0x55EC, 0xE0C0, 0x55ED, 0x86EF, 0x55EE, 0x86F0, + 0x55EF, 0xE0C5, 0x55F0, 0x86F1, 0x55F1, 0x86F2, 0x55F2, 0xE0C7, + 0x55F3, 0xE0C8, 0x55F4, 0x86F3, 0x55F5, 0xE0CC, 0x55F6, 0x86F4, + 0x55F7, 0xE0BB, 0x55F8, 0x86F5, 0x55F9, 0x86F6, 0x55FA, 0x86F7, + 0x55FB, 0x86F8, 0x55FC, 0x86F9, 0x55FD, 0xCBD4, 0x55FE, 0xE0D5, + 0x55FF, 0x86FA, 0x5600, 0xE0D6, 0x5601, 0xE0D2, 0x5602, 0x86FB, + 0x5603, 0x86FC, 0x5604, 0x86FD, 0x5605, 0x86FE, 0x5606, 0x8740, + 0x5607, 0x8741, 0x5608, 0xE0D0, 0x5609, 0xBCCE, 0x560A, 0x8742, + 0x560B, 0x8743, 0x560C, 0xE0D1, 0x560D, 0x8744, 0x560E, 0xB8C2, + 0x560F, 0xD8C5, 0x5610, 0x8745, 0x5611, 0x8746, 0x5612, 0x8747, + 0x5613, 0x8748, 0x5614, 0x8749, 0x5615, 0x874A, 0x5616, 0x874B, + 0x5617, 0x874C, 0x5618, 0xD0EA, 0x5619, 0x874D, 0x561A, 0x874E, + 0x561B, 0xC2EF, 0x561C, 0x874F, 0x561D, 0x8750, 0x561E, 0xE0CF, + 0x561F, 0xE0BD, 0x5620, 0x8751, 0x5621, 0x8752, 0x5622, 0x8753, + 0x5623, 0xE0D4, 0x5624, 0xE0D3, 0x5625, 0x8754, 0x5626, 0x8755, + 0x5627, 0xE0D7, 0x5628, 0x8756, 0x5629, 0x8757, 0x562A, 0x8758, + 0x562B, 0x8759, 0x562C, 0xE0DC, 0x562D, 0xE0D8, 0x562E, 0x875A, + 0x562F, 0x875B, 0x5630, 0x875C, 0x5631, 0xD6F6, 0x5632, 0xB3B0, + 0x5633, 0x875D, 0x5634, 0xD7EC, 0x5635, 0x875E, 0x5636, 0xCBBB, + 0x5637, 0x875F, 0x5638, 0x8760, 0x5639, 0xE0DA, 0x563A, 0x8761, + 0x563B, 0xCEFB, 0x563C, 0x8762, 0x563D, 0x8763, 0x563E, 0x8764, + 0x563F, 0xBAD9, 0x5640, 0x8765, 0x5641, 0x8766, 0x5642, 0x8767, + 0x5643, 0x8768, 0x5644, 0x8769, 0x5645, 0x876A, 0x5646, 0x876B, + 0x5647, 0x876C, 0x5648, 0x876D, 0x5649, 0x876E, 0x564A, 0x876F, + 0x564B, 0x8770, 0x564C, 0xE0E1, 0x564D, 0xE0DD, 0x564E, 0xD2AD, + 0x564F, 0x8771, 0x5650, 0x8772, 0x5651, 0x8773, 0x5652, 0x8774, + 0x5653, 0x8775, 0x5654, 0xE0E2, 0x5655, 0x8776, 0x5656, 0x8777, + 0x5657, 0xE0DB, 0x5658, 0xE0D9, 0x5659, 0xE0DF, 0x565A, 0x8778, + 0x565B, 0x8779, 0x565C, 0xE0E0, 0x565D, 0x877A, 0x565E, 0x877B, + 0x565F, 0x877C, 0x5660, 0x877D, 0x5661, 0x877E, 0x5662, 0xE0DE, + 0x5663, 0x8780, 0x5664, 0xE0E4, 0x5665, 0x8781, 0x5666, 0x8782, + 0x5667, 0x8783, 0x5668, 0xC6F7, 0x5669, 0xD8AC, 0x566A, 0xD4EB, + 0x566B, 0xE0E6, 0x566C, 0xCAC9, 0x566D, 0x8784, 0x566E, 0x8785, + 0x566F, 0x8786, 0x5670, 0x8787, 0x5671, 0xE0E5, 0x5672, 0x8788, + 0x5673, 0x8789, 0x5674, 0x878A, 0x5675, 0x878B, 0x5676, 0xB8C1, + 0x5677, 0x878C, 0x5678, 0x878D, 0x5679, 0x878E, 0x567A, 0x878F, + 0x567B, 0xE0E7, 0x567C, 0xE0E8, 0x567D, 0x8790, 0x567E, 0x8791, + 0x567F, 0x8792, 0x5680, 0x8793, 0x5681, 0x8794, 0x5682, 0x8795, + 0x5683, 0x8796, 0x5684, 0x8797, 0x5685, 0xE0E9, 0x5686, 0xE0E3, + 0x5687, 0x8798, 0x5688, 0x8799, 0x5689, 0x879A, 0x568A, 0x879B, + 0x568B, 0x879C, 0x568C, 0x879D, 0x568D, 0x879E, 0x568E, 0xBABF, + 0x568F, 0xCCE7, 0x5690, 0x879F, 0x5691, 0x87A0, 0x5692, 0x87A1, + 0x5693, 0xE0EA, 0x5694, 0x87A2, 0x5695, 0x87A3, 0x5696, 0x87A4, + 0x5697, 0x87A5, 0x5698, 0x87A6, 0x5699, 0x87A7, 0x569A, 0x87A8, + 0x569B, 0x87A9, 0x569C, 0x87AA, 0x569D, 0x87AB, 0x569E, 0x87AC, + 0x569F, 0x87AD, 0x56A0, 0x87AE, 0x56A1, 0x87AF, 0x56A2, 0x87B0, + 0x56A3, 0xCFF9, 0x56A4, 0x87B1, 0x56A5, 0x87B2, 0x56A6, 0x87B3, + 0x56A7, 0x87B4, 0x56A8, 0x87B5, 0x56A9, 0x87B6, 0x56AA, 0x87B7, + 0x56AB, 0x87B8, 0x56AC, 0x87B9, 0x56AD, 0x87BA, 0x56AE, 0x87BB, + 0x56AF, 0xE0EB, 0x56B0, 0x87BC, 0x56B1, 0x87BD, 0x56B2, 0x87BE, + 0x56B3, 0x87BF, 0x56B4, 0x87C0, 0x56B5, 0x87C1, 0x56B6, 0x87C2, + 0x56B7, 0xC8C2, 0x56B8, 0x87C3, 0x56B9, 0x87C4, 0x56BA, 0x87C5, + 0x56BB, 0x87C6, 0x56BC, 0xBDC0, 0x56BD, 0x87C7, 0x56BE, 0x87C8, + 0x56BF, 0x87C9, 0x56C0, 0x87CA, 0x56C1, 0x87CB, 0x56C2, 0x87CC, + 0x56C3, 0x87CD, 0x56C4, 0x87CE, 0x56C5, 0x87CF, 0x56C6, 0x87D0, + 0x56C7, 0x87D1, 0x56C8, 0x87D2, 0x56C9, 0x87D3, 0x56CA, 0xC4D2, + 0x56CB, 0x87D4, 0x56CC, 0x87D5, 0x56CD, 0x87D6, 0x56CE, 0x87D7, + 0x56CF, 0x87D8, 0x56D0, 0x87D9, 0x56D1, 0x87DA, 0x56D2, 0x87DB, + 0x56D3, 0x87DC, 0x56D4, 0xE0EC, 0x56D5, 0x87DD, 0x56D6, 0x87DE, + 0x56D7, 0xE0ED, 0x56D8, 0x87DF, 0x56D9, 0x87E0, 0x56DA, 0xC7F4, + 0x56DB, 0xCBC4, 0x56DC, 0x87E1, 0x56DD, 0xE0EE, 0x56DE, 0xBBD8, + 0x56DF, 0xD8B6, 0x56E0, 0xD2F2, 0x56E1, 0xE0EF, 0x56E2, 0xCDC5, + 0x56E3, 0x87E2, 0x56E4, 0xB6DA, 0x56E5, 0x87E3, 0x56E6, 0x87E4, + 0x56E7, 0x87E5, 0x56E8, 0x87E6, 0x56E9, 0x87E7, 0x56EA, 0x87E8, + 0x56EB, 0xE0F1, 0x56EC, 0x87E9, 0x56ED, 0xD4B0, 0x56EE, 0x87EA, + 0x56EF, 0x87EB, 0x56F0, 0xC0A7, 0x56F1, 0xB4D1, 0x56F2, 0x87EC, + 0x56F3, 0x87ED, 0x56F4, 0xCEA7, 0x56F5, 0xE0F0, 0x56F6, 0x87EE, + 0x56F7, 0x87EF, 0x56F8, 0x87F0, 0x56F9, 0xE0F2, 0x56FA, 0xB9CC, + 0x56FB, 0x87F1, 0x56FC, 0x87F2, 0x56FD, 0xB9FA, 0x56FE, 0xCDBC, + 0x56FF, 0xE0F3, 0x5700, 0x87F3, 0x5701, 0x87F4, 0x5702, 0x87F5, + 0x5703, 0xC6D4, 0x5704, 0xE0F4, 0x5705, 0x87F6, 0x5706, 0xD4B2, + 0x5707, 0x87F7, 0x5708, 0xC8A6, 0x5709, 0xE0F6, 0x570A, 0xE0F5, + 0x570B, 0x87F8, 0x570C, 0x87F9, 0x570D, 0x87FA, 0x570E, 0x87FB, + 0x570F, 0x87FC, 0x5710, 0x87FD, 0x5711, 0x87FE, 0x5712, 0x8840, + 0x5713, 0x8841, 0x5714, 0x8842, 0x5715, 0x8843, 0x5716, 0x8844, + 0x5717, 0x8845, 0x5718, 0x8846, 0x5719, 0x8847, 0x571A, 0x8848, + 0x571B, 0x8849, 0x571C, 0xE0F7, 0x571D, 0x884A, 0x571E, 0x884B, + 0x571F, 0xCDC1, 0x5720, 0x884C, 0x5721, 0x884D, 0x5722, 0x884E, + 0x5723, 0xCAA5, 0x5724, 0x884F, 0x5725, 0x8850, 0x5726, 0x8851, + 0x5727, 0x8852, 0x5728, 0xD4DA, 0x5729, 0xDBD7, 0x572A, 0xDBD9, + 0x572B, 0x8853, 0x572C, 0xDBD8, 0x572D, 0xB9E7, 0x572E, 0xDBDC, + 0x572F, 0xDBDD, 0x5730, 0xB5D8, 0x5731, 0x8854, 0x5732, 0x8855, + 0x5733, 0xDBDA, 0x5734, 0x8856, 0x5735, 0x8857, 0x5736, 0x8858, + 0x5737, 0x8859, 0x5738, 0x885A, 0x5739, 0xDBDB, 0x573A, 0xB3A1, + 0x573B, 0xDBDF, 0x573C, 0x885B, 0x573D, 0x885C, 0x573E, 0xBBF8, + 0x573F, 0x885D, 0x5740, 0xD6B7, 0x5741, 0x885E, 0x5742, 0xDBE0, + 0x5743, 0x885F, 0x5744, 0x8860, 0x5745, 0x8861, 0x5746, 0x8862, + 0x5747, 0xBEF9, 0x5748, 0x8863, 0x5749, 0x8864, 0x574A, 0xB7BB, + 0x574B, 0x8865, 0x574C, 0xDBD0, 0x574D, 0xCCAE, 0x574E, 0xBFB2, + 0x574F, 0xBBB5, 0x5750, 0xD7F8, 0x5751, 0xBFD3, 0x5752, 0x8866, + 0x5753, 0x8867, 0x5754, 0x8868, 0x5755, 0x8869, 0x5756, 0x886A, + 0x5757, 0xBFE9, 0x5758, 0x886B, 0x5759, 0x886C, 0x575A, 0xBCE1, + 0x575B, 0xCCB3, 0x575C, 0xDBDE, 0x575D, 0xB0D3, 0x575E, 0xCEEB, + 0x575F, 0xB7D8, 0x5760, 0xD7B9, 0x5761, 0xC6C2, 0x5762, 0x886D, + 0x5763, 0x886E, 0x5764, 0xC0A4, 0x5765, 0x886F, 0x5766, 0xCCB9, + 0x5767, 0x8870, 0x5768, 0xDBE7, 0x5769, 0xDBE1, 0x576A, 0xC6BA, + 0x576B, 0xDBE3, 0x576C, 0x8871, 0x576D, 0xDBE8, 0x576E, 0x8872, + 0x576F, 0xC5F7, 0x5770, 0x8873, 0x5771, 0x8874, 0x5772, 0x8875, + 0x5773, 0xDBEA, 0x5774, 0x8876, 0x5775, 0x8877, 0x5776, 0xDBE9, + 0x5777, 0xBFC0, 0x5778, 0x8878, 0x5779, 0x8879, 0x577A, 0x887A, + 0x577B, 0xDBE6, 0x577C, 0xDBE5, 0x577D, 0x887B, 0x577E, 0x887C, + 0x577F, 0x887D, 0x5780, 0x887E, 0x5781, 0x8880, 0x5782, 0xB4B9, + 0x5783, 0xC0AC, 0x5784, 0xC2A2, 0x5785, 0xDBE2, 0x5786, 0xDBE4, + 0x5787, 0x8881, 0x5788, 0x8882, 0x5789, 0x8883, 0x578A, 0x8884, + 0x578B, 0xD0CD, 0x578C, 0xDBED, 0x578D, 0x8885, 0x578E, 0x8886, + 0x578F, 0x8887, 0x5790, 0x8888, 0x5791, 0x8889, 0x5792, 0xC0DD, + 0x5793, 0xDBF2, 0x5794, 0x888A, 0x5795, 0x888B, 0x5796, 0x888C, + 0x5797, 0x888D, 0x5798, 0x888E, 0x5799, 0x888F, 0x579A, 0x8890, + 0x579B, 0xB6E2, 0x579C, 0x8891, 0x579D, 0x8892, 0x579E, 0x8893, + 0x579F, 0x8894, 0x57A0, 0xDBF3, 0x57A1, 0xDBD2, 0x57A2, 0xB9B8, + 0x57A3, 0xD4AB, 0x57A4, 0xDBEC, 0x57A5, 0x8895, 0x57A6, 0xBFD1, + 0x57A7, 0xDBF0, 0x57A8, 0x8896, 0x57A9, 0xDBD1, 0x57AA, 0x8897, + 0x57AB, 0xB5E6, 0x57AC, 0x8898, 0x57AD, 0xDBEB, 0x57AE, 0xBFE5, + 0x57AF, 0x8899, 0x57B0, 0x889A, 0x57B1, 0x889B, 0x57B2, 0xDBEE, + 0x57B3, 0x889C, 0x57B4, 0xDBF1, 0x57B5, 0x889D, 0x57B6, 0x889E, + 0x57B7, 0x889F, 0x57B8, 0xDBF9, 0x57B9, 0x88A0, 0x57BA, 0x88A1, + 0x57BB, 0x88A2, 0x57BC, 0x88A3, 0x57BD, 0x88A4, 0x57BE, 0x88A5, + 0x57BF, 0x88A6, 0x57C0, 0x88A7, 0x57C1, 0x88A8, 0x57C2, 0xB9A1, + 0x57C3, 0xB0A3, 0x57C4, 0x88A9, 0x57C5, 0x88AA, 0x57C6, 0x88AB, + 0x57C7, 0x88AC, 0x57C8, 0x88AD, 0x57C9, 0x88AE, 0x57CA, 0x88AF, + 0x57CB, 0xC2F1, 0x57CC, 0x88B0, 0x57CD, 0x88B1, 0x57CE, 0xB3C7, + 0x57CF, 0xDBEF, 0x57D0, 0x88B2, 0x57D1, 0x88B3, 0x57D2, 0xDBF8, + 0x57D3, 0x88B4, 0x57D4, 0xC6D2, 0x57D5, 0xDBF4, 0x57D6, 0x88B5, + 0x57D7, 0x88B6, 0x57D8, 0xDBF5, 0x57D9, 0xDBF7, 0x57DA, 0xDBF6, + 0x57DB, 0x88B7, 0x57DC, 0x88B8, 0x57DD, 0xDBFE, 0x57DE, 0x88B9, + 0x57DF, 0xD3F2, 0x57E0, 0xB2BA, 0x57E1, 0x88BA, 0x57E2, 0x88BB, + 0x57E3, 0x88BC, 0x57E4, 0xDBFD, 0x57E5, 0x88BD, 0x57E6, 0x88BE, + 0x57E7, 0x88BF, 0x57E8, 0x88C0, 0x57E9, 0x88C1, 0x57EA, 0x88C2, + 0x57EB, 0x88C3, 0x57EC, 0x88C4, 0x57ED, 0xDCA4, 0x57EE, 0x88C5, + 0x57EF, 0xDBFB, 0x57F0, 0x88C6, 0x57F1, 0x88C7, 0x57F2, 0x88C8, + 0x57F3, 0x88C9, 0x57F4, 0xDBFA, 0x57F5, 0x88CA, 0x57F6, 0x88CB, + 0x57F7, 0x88CC, 0x57F8, 0xDBFC, 0x57F9, 0xC5E0, 0x57FA, 0xBBF9, + 0x57FB, 0x88CD, 0x57FC, 0x88CE, 0x57FD, 0xDCA3, 0x57FE, 0x88CF, + 0x57FF, 0x88D0, 0x5800, 0xDCA5, 0x5801, 0x88D1, 0x5802, 0xCCC3, + 0x5803, 0x88D2, 0x5804, 0x88D3, 0x5805, 0x88D4, 0x5806, 0xB6D1, + 0x5807, 0xDDC0, 0x5808, 0x88D5, 0x5809, 0x88D6, 0x580A, 0x88D7, + 0x580B, 0xDCA1, 0x580C, 0x88D8, 0x580D, 0xDCA2, 0x580E, 0x88D9, + 0x580F, 0x88DA, 0x5810, 0x88DB, 0x5811, 0xC7B5, 0x5812, 0x88DC, + 0x5813, 0x88DD, 0x5814, 0x88DE, 0x5815, 0xB6E9, 0x5816, 0x88DF, + 0x5817, 0x88E0, 0x5818, 0x88E1, 0x5819, 0xDCA7, 0x581A, 0x88E2, + 0x581B, 0x88E3, 0x581C, 0x88E4, 0x581D, 0x88E5, 0x581E, 0xDCA6, + 0x581F, 0x88E6, 0x5820, 0xDCA9, 0x5821, 0xB1A4, 0x5822, 0x88E7, + 0x5823, 0x88E8, 0x5824, 0xB5CC, 0x5825, 0x88E9, 0x5826, 0x88EA, + 0x5827, 0x88EB, 0x5828, 0x88EC, 0x5829, 0x88ED, 0x582A, 0xBFB0, + 0x582B, 0x88EE, 0x582C, 0x88EF, 0x582D, 0x88F0, 0x582E, 0x88F1, + 0x582F, 0x88F2, 0x5830, 0xD1DF, 0x5831, 0x88F3, 0x5832, 0x88F4, + 0x5833, 0x88F5, 0x5834, 0x88F6, 0x5835, 0xB6C2, 0x5836, 0x88F7, + 0x5837, 0x88F8, 0x5838, 0x88F9, 0x5839, 0x88FA, 0x583A, 0x88FB, + 0x583B, 0x88FC, 0x583C, 0x88FD, 0x583D, 0x88FE, 0x583E, 0x8940, + 0x583F, 0x8941, 0x5840, 0x8942, 0x5841, 0x8943, 0x5842, 0x8944, + 0x5843, 0x8945, 0x5844, 0xDCA8, 0x5845, 0x8946, 0x5846, 0x8947, + 0x5847, 0x8948, 0x5848, 0x8949, 0x5849, 0x894A, 0x584A, 0x894B, + 0x584B, 0x894C, 0x584C, 0xCBFA, 0x584D, 0xEBF3, 0x584E, 0x894D, + 0x584F, 0x894E, 0x5850, 0x894F, 0x5851, 0xCBDC, 0x5852, 0x8950, + 0x5853, 0x8951, 0x5854, 0xCBFE, 0x5855, 0x8952, 0x5856, 0x8953, + 0x5857, 0x8954, 0x5858, 0xCCC1, 0x5859, 0x8955, 0x585A, 0x8956, + 0x585B, 0x8957, 0x585C, 0x8958, 0x585D, 0x8959, 0x585E, 0xC8FB, + 0x585F, 0x895A, 0x5860, 0x895B, 0x5861, 0x895C, 0x5862, 0x895D, + 0x5863, 0x895E, 0x5864, 0x895F, 0x5865, 0xDCAA, 0x5866, 0x8960, + 0x5867, 0x8961, 0x5868, 0x8962, 0x5869, 0x8963, 0x586A, 0x8964, + 0x586B, 0xCCEE, 0x586C, 0xDCAB, 0x586D, 0x8965, 0x586E, 0x8966, + 0x586F, 0x8967, 0x5870, 0x8968, 0x5871, 0x8969, 0x5872, 0x896A, + 0x5873, 0x896B, 0x5874, 0x896C, 0x5875, 0x896D, 0x5876, 0x896E, + 0x5877, 0x896F, 0x5878, 0x8970, 0x5879, 0x8971, 0x587A, 0x8972, + 0x587B, 0x8973, 0x587C, 0x8974, 0x587D, 0x8975, 0x587E, 0xDBD3, + 0x587F, 0x8976, 0x5880, 0xDCAF, 0x5881, 0xDCAC, 0x5882, 0x8977, + 0x5883, 0xBEB3, 0x5884, 0x8978, 0x5885, 0xCAFB, 0x5886, 0x8979, + 0x5887, 0x897A, 0x5888, 0x897B, 0x5889, 0xDCAD, 0x588A, 0x897C, + 0x588B, 0x897D, 0x588C, 0x897E, 0x588D, 0x8980, 0x588E, 0x8981, + 0x588F, 0x8982, 0x5890, 0x8983, 0x5891, 0x8984, 0x5892, 0xC9CA, + 0x5893, 0xC4B9, 0x5894, 0x8985, 0x5895, 0x8986, 0x5896, 0x8987, + 0x5897, 0x8988, 0x5898, 0x8989, 0x5899, 0xC7BD, 0x589A, 0xDCAE, + 0x589B, 0x898A, 0x589C, 0x898B, 0x589D, 0x898C, 0x589E, 0xD4F6, + 0x589F, 0xD0E6, 0x58A0, 0x898D, 0x58A1, 0x898E, 0x58A2, 0x898F, + 0x58A3, 0x8990, 0x58A4, 0x8991, 0x58A5, 0x8992, 0x58A6, 0x8993, + 0x58A7, 0x8994, 0x58A8, 0xC4AB, 0x58A9, 0xB6D5, 0x58AA, 0x8995, + 0x58AB, 0x8996, 0x58AC, 0x8997, 0x58AD, 0x8998, 0x58AE, 0x8999, + 0x58AF, 0x899A, 0x58B0, 0x899B, 0x58B1, 0x899C, 0x58B2, 0x899D, + 0x58B3, 0x899E, 0x58B4, 0x899F, 0x58B5, 0x89A0, 0x58B6, 0x89A1, + 0x58B7, 0x89A2, 0x58B8, 0x89A3, 0x58B9, 0x89A4, 0x58BA, 0x89A5, + 0x58BB, 0x89A6, 0x58BC, 0xDBD4, 0x58BD, 0x89A7, 0x58BE, 0x89A8, + 0x58BF, 0x89A9, 0x58C0, 0x89AA, 0x58C1, 0xB1DA, 0x58C2, 0x89AB, + 0x58C3, 0x89AC, 0x58C4, 0x89AD, 0x58C5, 0xDBD5, 0x58C6, 0x89AE, + 0x58C7, 0x89AF, 0x58C8, 0x89B0, 0x58C9, 0x89B1, 0x58CA, 0x89B2, + 0x58CB, 0x89B3, 0x58CC, 0x89B4, 0x58CD, 0x89B5, 0x58CE, 0x89B6, + 0x58CF, 0x89B7, 0x58D0, 0x89B8, 0x58D1, 0xDBD6, 0x58D2, 0x89B9, + 0x58D3, 0x89BA, 0x58D4, 0x89BB, 0x58D5, 0xBABE, 0x58D6, 0x89BC, + 0x58D7, 0x89BD, 0x58D8, 0x89BE, 0x58D9, 0x89BF, 0x58DA, 0x89C0, + 0x58DB, 0x89C1, 0x58DC, 0x89C2, 0x58DD, 0x89C3, 0x58DE, 0x89C4, + 0x58DF, 0x89C5, 0x58E0, 0x89C6, 0x58E1, 0x89C7, 0x58E2, 0x89C8, + 0x58E3, 0x89C9, 0x58E4, 0xC8C0, 0x58E5, 0x89CA, 0x58E6, 0x89CB, + 0x58E7, 0x89CC, 0x58E8, 0x89CD, 0x58E9, 0x89CE, 0x58EA, 0x89CF, + 0x58EB, 0xCABF, 0x58EC, 0xC8C9, 0x58ED, 0x89D0, 0x58EE, 0xD7B3, + 0x58EF, 0x89D1, 0x58F0, 0xC9F9, 0x58F1, 0x89D2, 0x58F2, 0x89D3, + 0x58F3, 0xBFC7, 0x58F4, 0x89D4, 0x58F5, 0x89D5, 0x58F6, 0xBAF8, + 0x58F7, 0x89D6, 0x58F8, 0x89D7, 0x58F9, 0xD2BC, 0x58FA, 0x89D8, + 0x58FB, 0x89D9, 0x58FC, 0x89DA, 0x58FD, 0x89DB, 0x58FE, 0x89DC, + 0x58FF, 0x89DD, 0x5900, 0x89DE, 0x5901, 0x89DF, 0x5902, 0xE2BA, + 0x5903, 0x89E0, 0x5904, 0xB4A6, 0x5905, 0x89E1, 0x5906, 0x89E2, + 0x5907, 0xB1B8, 0x5908, 0x89E3, 0x5909, 0x89E4, 0x590A, 0x89E5, + 0x590B, 0x89E6, 0x590C, 0x89E7, 0x590D, 0xB8B4, 0x590E, 0x89E8, + 0x590F, 0xCFC4, 0x5910, 0x89E9, 0x5911, 0x89EA, 0x5912, 0x89EB, + 0x5913, 0x89EC, 0x5914, 0xD9E7, 0x5915, 0xCFA6, 0x5916, 0xCDE2, + 0x5917, 0x89ED, 0x5918, 0x89EE, 0x5919, 0xD9ED, 0x591A, 0xB6E0, + 0x591B, 0x89EF, 0x591C, 0xD2B9, 0x591D, 0x89F0, 0x591E, 0x89F1, + 0x591F, 0xB9BB, 0x5920, 0x89F2, 0x5921, 0x89F3, 0x5922, 0x89F4, + 0x5923, 0x89F5, 0x5924, 0xE2B9, 0x5925, 0xE2B7, 0x5926, 0x89F6, + 0x5927, 0xB4F3, 0x5928, 0x89F7, 0x5929, 0xCCEC, 0x592A, 0xCCAB, + 0x592B, 0xB7F2, 0x592C, 0x89F8, 0x592D, 0xD8B2, 0x592E, 0xD1EB, + 0x592F, 0xBABB, 0x5930, 0x89F9, 0x5931, 0xCAA7, 0x5932, 0x89FA, + 0x5933, 0x89FB, 0x5934, 0xCDB7, 0x5935, 0x89FC, 0x5936, 0x89FD, + 0x5937, 0xD2C4, 0x5938, 0xBFE4, 0x5939, 0xBCD0, 0x593A, 0xB6E1, + 0x593B, 0x89FE, 0x593C, 0xDEC5, 0x593D, 0x8A40, 0x593E, 0x8A41, + 0x593F, 0x8A42, 0x5940, 0x8A43, 0x5941, 0xDEC6, 0x5942, 0xDBBC, + 0x5943, 0x8A44, 0x5944, 0xD1D9, 0x5945, 0x8A45, 0x5946, 0x8A46, + 0x5947, 0xC6E6, 0x5948, 0xC4CE, 0x5949, 0xB7EE, 0x594A, 0x8A47, + 0x594B, 0xB7DC, 0x594C, 0x8A48, 0x594D, 0x8A49, 0x594E, 0xBFFC, + 0x594F, 0xD7E0, 0x5950, 0x8A4A, 0x5951, 0xC6F5, 0x5952, 0x8A4B, + 0x5953, 0x8A4C, 0x5954, 0xB1BC, 0x5955, 0xDEC8, 0x5956, 0xBDB1, + 0x5957, 0xCCD7, 0x5958, 0xDECA, 0x5959, 0x8A4D, 0x595A, 0xDEC9, + 0x595B, 0x8A4E, 0x595C, 0x8A4F, 0x595D, 0x8A50, 0x595E, 0x8A51, + 0x595F, 0x8A52, 0x5960, 0xB5EC, 0x5961, 0x8A53, 0x5962, 0xC9DD, + 0x5963, 0x8A54, 0x5964, 0x8A55, 0x5965, 0xB0C2, 0x5966, 0x8A56, + 0x5967, 0x8A57, 0x5968, 0x8A58, 0x5969, 0x8A59, 0x596A, 0x8A5A, + 0x596B, 0x8A5B, 0x596C, 0x8A5C, 0x596D, 0x8A5D, 0x596E, 0x8A5E, + 0x596F, 0x8A5F, 0x5970, 0x8A60, 0x5971, 0x8A61, 0x5972, 0x8A62, + 0x5973, 0xC5AE, 0x5974, 0xC5AB, 0x5975, 0x8A63, 0x5976, 0xC4CC, + 0x5977, 0x8A64, 0x5978, 0xBCE9, 0x5979, 0xCBFD, 0x597A, 0x8A65, + 0x597B, 0x8A66, 0x597C, 0x8A67, 0x597D, 0xBAC3, 0x597E, 0x8A68, + 0x597F, 0x8A69, 0x5980, 0x8A6A, 0x5981, 0xE5F9, 0x5982, 0xC8E7, + 0x5983, 0xE5FA, 0x5984, 0xCDFD, 0x5985, 0x8A6B, 0x5986, 0xD7B1, + 0x5987, 0xB8BE, 0x5988, 0xC2E8, 0x5989, 0x8A6C, 0x598A, 0xC8D1, + 0x598B, 0x8A6D, 0x598C, 0x8A6E, 0x598D, 0xE5FB, 0x598E, 0x8A6F, + 0x598F, 0x8A70, 0x5990, 0x8A71, 0x5991, 0x8A72, 0x5992, 0xB6CA, + 0x5993, 0xBCCB, 0x5994, 0x8A73, 0x5995, 0x8A74, 0x5996, 0xD1FD, + 0x5997, 0xE6A1, 0x5998, 0x8A75, 0x5999, 0xC3EE, 0x599A, 0x8A76, + 0x599B, 0x8A77, 0x599C, 0x8A78, 0x599D, 0x8A79, 0x599E, 0xE6A4, + 0x599F, 0x8A7A, 0x59A0, 0x8A7B, 0x59A1, 0x8A7C, 0x59A2, 0x8A7D, + 0x59A3, 0xE5FE, 0x59A4, 0xE6A5, 0x59A5, 0xCDD7, 0x59A6, 0x8A7E, + 0x59A7, 0x8A80, 0x59A8, 0xB7C1, 0x59A9, 0xE5FC, 0x59AA, 0xE5FD, + 0x59AB, 0xE6A3, 0x59AC, 0x8A81, 0x59AD, 0x8A82, 0x59AE, 0xC4DD, + 0x59AF, 0xE6A8, 0x59B0, 0x8A83, 0x59B1, 0x8A84, 0x59B2, 0xE6A7, + 0x59B3, 0x8A85, 0x59B4, 0x8A86, 0x59B5, 0x8A87, 0x59B6, 0x8A88, + 0x59B7, 0x8A89, 0x59B8, 0x8A8A, 0x59B9, 0xC3C3, 0x59BA, 0x8A8B, + 0x59BB, 0xC6DE, 0x59BC, 0x8A8C, 0x59BD, 0x8A8D, 0x59BE, 0xE6AA, + 0x59BF, 0x8A8E, 0x59C0, 0x8A8F, 0x59C1, 0x8A90, 0x59C2, 0x8A91, + 0x59C3, 0x8A92, 0x59C4, 0x8A93, 0x59C5, 0x8A94, 0x59C6, 0xC4B7, + 0x59C7, 0x8A95, 0x59C8, 0x8A96, 0x59C9, 0x8A97, 0x59CA, 0xE6A2, + 0x59CB, 0xCABC, 0x59CC, 0x8A98, 0x59CD, 0x8A99, 0x59CE, 0x8A9A, + 0x59CF, 0x8A9B, 0x59D0, 0xBDE3, 0x59D1, 0xB9C3, 0x59D2, 0xE6A6, + 0x59D3, 0xD0D5, 0x59D4, 0xCEAF, 0x59D5, 0x8A9C, 0x59D6, 0x8A9D, + 0x59D7, 0xE6A9, 0x59D8, 0xE6B0, 0x59D9, 0x8A9E, 0x59DA, 0xD2A6, + 0x59DB, 0x8A9F, 0x59DC, 0xBDAA, 0x59DD, 0xE6AD, 0x59DE, 0x8AA0, + 0x59DF, 0x8AA1, 0x59E0, 0x8AA2, 0x59E1, 0x8AA3, 0x59E2, 0x8AA4, + 0x59E3, 0xE6AF, 0x59E4, 0x8AA5, 0x59E5, 0xC0D1, 0x59E6, 0x8AA6, + 0x59E7, 0x8AA7, 0x59E8, 0xD2CC, 0x59E9, 0x8AA8, 0x59EA, 0x8AA9, + 0x59EB, 0x8AAA, 0x59EC, 0xBCA7, 0x59ED, 0x8AAB, 0x59EE, 0x8AAC, + 0x59EF, 0x8AAD, 0x59F0, 0x8AAE, 0x59F1, 0x8AAF, 0x59F2, 0x8AB0, + 0x59F3, 0x8AB1, 0x59F4, 0x8AB2, 0x59F5, 0x8AB3, 0x59F6, 0x8AB4, + 0x59F7, 0x8AB5, 0x59F8, 0x8AB6, 0x59F9, 0xE6B1, 0x59FA, 0x8AB7, + 0x59FB, 0xD2F6, 0x59FC, 0x8AB8, 0x59FD, 0x8AB9, 0x59FE, 0x8ABA, + 0x59FF, 0xD7CB, 0x5A00, 0x8ABB, 0x5A01, 0xCDFE, 0x5A02, 0x8ABC, + 0x5A03, 0xCDDE, 0x5A04, 0xC2A6, 0x5A05, 0xE6AB, 0x5A06, 0xE6AC, + 0x5A07, 0xBDBF, 0x5A08, 0xE6AE, 0x5A09, 0xE6B3, 0x5A0A, 0x8ABD, + 0x5A0B, 0x8ABE, 0x5A0C, 0xE6B2, 0x5A0D, 0x8ABF, 0x5A0E, 0x8AC0, + 0x5A0F, 0x8AC1, 0x5A10, 0x8AC2, 0x5A11, 0xE6B6, 0x5A12, 0x8AC3, + 0x5A13, 0xE6B8, 0x5A14, 0x8AC4, 0x5A15, 0x8AC5, 0x5A16, 0x8AC6, + 0x5A17, 0x8AC7, 0x5A18, 0xC4EF, 0x5A19, 0x8AC8, 0x5A1A, 0x8AC9, + 0x5A1B, 0x8ACA, 0x5A1C, 0xC4C8, 0x5A1D, 0x8ACB, 0x5A1E, 0x8ACC, + 0x5A1F, 0xBEEA, 0x5A20, 0xC9EF, 0x5A21, 0x8ACD, 0x5A22, 0x8ACE, + 0x5A23, 0xE6B7, 0x5A24, 0x8ACF, 0x5A25, 0xB6F0, 0x5A26, 0x8AD0, + 0x5A27, 0x8AD1, 0x5A28, 0x8AD2, 0x5A29, 0xC3E4, 0x5A2A, 0x8AD3, + 0x5A2B, 0x8AD4, 0x5A2C, 0x8AD5, 0x5A2D, 0x8AD6, 0x5A2E, 0x8AD7, + 0x5A2F, 0x8AD8, 0x5A30, 0x8AD9, 0x5A31, 0xD3E9, 0x5A32, 0xE6B4, + 0x5A33, 0x8ADA, 0x5A34, 0xE6B5, 0x5A35, 0x8ADB, 0x5A36, 0xC8A2, + 0x5A37, 0x8ADC, 0x5A38, 0x8ADD, 0x5A39, 0x8ADE, 0x5A3A, 0x8ADF, + 0x5A3B, 0x8AE0, 0x5A3C, 0xE6BD, 0x5A3D, 0x8AE1, 0x5A3E, 0x8AE2, + 0x5A3F, 0x8AE3, 0x5A40, 0xE6B9, 0x5A41, 0x8AE4, 0x5A42, 0x8AE5, + 0x5A43, 0x8AE6, 0x5A44, 0x8AE7, 0x5A45, 0x8AE8, 0x5A46, 0xC6C5, + 0x5A47, 0x8AE9, 0x5A48, 0x8AEA, 0x5A49, 0xCDF1, 0x5A4A, 0xE6BB, + 0x5A4B, 0x8AEB, 0x5A4C, 0x8AEC, 0x5A4D, 0x8AED, 0x5A4E, 0x8AEE, + 0x5A4F, 0x8AEF, 0x5A50, 0x8AF0, 0x5A51, 0x8AF1, 0x5A52, 0x8AF2, + 0x5A53, 0x8AF3, 0x5A54, 0x8AF4, 0x5A55, 0xE6BC, 0x5A56, 0x8AF5, + 0x5A57, 0x8AF6, 0x5A58, 0x8AF7, 0x5A59, 0x8AF8, 0x5A5A, 0xBBE9, + 0x5A5B, 0x8AF9, 0x5A5C, 0x8AFA, 0x5A5D, 0x8AFB, 0x5A5E, 0x8AFC, + 0x5A5F, 0x8AFD, 0x5A60, 0x8AFE, 0x5A61, 0x8B40, 0x5A62, 0xE6BE, + 0x5A63, 0x8B41, 0x5A64, 0x8B42, 0x5A65, 0x8B43, 0x5A66, 0x8B44, + 0x5A67, 0xE6BA, 0x5A68, 0x8B45, 0x5A69, 0x8B46, 0x5A6A, 0xC0B7, + 0x5A6B, 0x8B47, 0x5A6C, 0x8B48, 0x5A6D, 0x8B49, 0x5A6E, 0x8B4A, + 0x5A6F, 0x8B4B, 0x5A70, 0x8B4C, 0x5A71, 0x8B4D, 0x5A72, 0x8B4E, + 0x5A73, 0x8B4F, 0x5A74, 0xD3A4, 0x5A75, 0xE6BF, 0x5A76, 0xC9F4, + 0x5A77, 0xE6C3, 0x5A78, 0x8B50, 0x5A79, 0x8B51, 0x5A7A, 0xE6C4, + 0x5A7B, 0x8B52, 0x5A7C, 0x8B53, 0x5A7D, 0x8B54, 0x5A7E, 0x8B55, + 0x5A7F, 0xD0F6, 0x5A80, 0x8B56, 0x5A81, 0x8B57, 0x5A82, 0x8B58, + 0x5A83, 0x8B59, 0x5A84, 0x8B5A, 0x5A85, 0x8B5B, 0x5A86, 0x8B5C, + 0x5A87, 0x8B5D, 0x5A88, 0x8B5E, 0x5A89, 0x8B5F, 0x5A8A, 0x8B60, + 0x5A8B, 0x8B61, 0x5A8C, 0x8B62, 0x5A8D, 0x8B63, 0x5A8E, 0x8B64, + 0x5A8F, 0x8B65, 0x5A90, 0x8B66, 0x5A91, 0x8B67, 0x5A92, 0xC3BD, + 0x5A93, 0x8B68, 0x5A94, 0x8B69, 0x5A95, 0x8B6A, 0x5A96, 0x8B6B, + 0x5A97, 0x8B6C, 0x5A98, 0x8B6D, 0x5A99, 0x8B6E, 0x5A9A, 0xC3C4, + 0x5A9B, 0xE6C2, 0x5A9C, 0x8B6F, 0x5A9D, 0x8B70, 0x5A9E, 0x8B71, + 0x5A9F, 0x8B72, 0x5AA0, 0x8B73, 0x5AA1, 0x8B74, 0x5AA2, 0x8B75, + 0x5AA3, 0x8B76, 0x5AA4, 0x8B77, 0x5AA5, 0x8B78, 0x5AA6, 0x8B79, + 0x5AA7, 0x8B7A, 0x5AA8, 0x8B7B, 0x5AA9, 0x8B7C, 0x5AAA, 0xE6C1, + 0x5AAB, 0x8B7D, 0x5AAC, 0x8B7E, 0x5AAD, 0x8B80, 0x5AAE, 0x8B81, + 0x5AAF, 0x8B82, 0x5AB0, 0x8B83, 0x5AB1, 0x8B84, 0x5AB2, 0xE6C7, + 0x5AB3, 0xCFB1, 0x5AB4, 0x8B85, 0x5AB5, 0xEBF4, 0x5AB6, 0x8B86, + 0x5AB7, 0x8B87, 0x5AB8, 0xE6CA, 0x5AB9, 0x8B88, 0x5ABA, 0x8B89, + 0x5ABB, 0x8B8A, 0x5ABC, 0x8B8B, 0x5ABD, 0x8B8C, 0x5ABE, 0xE6C5, + 0x5ABF, 0x8B8D, 0x5AC0, 0x8B8E, 0x5AC1, 0xBCDE, 0x5AC2, 0xC9A9, + 0x5AC3, 0x8B8F, 0x5AC4, 0x8B90, 0x5AC5, 0x8B91, 0x5AC6, 0x8B92, + 0x5AC7, 0x8B93, 0x5AC8, 0x8B94, 0x5AC9, 0xBCB5, 0x5ACA, 0x8B95, + 0x5ACB, 0x8B96, 0x5ACC, 0xCFD3, 0x5ACD, 0x8B97, 0x5ACE, 0x8B98, + 0x5ACF, 0x8B99, 0x5AD0, 0x8B9A, 0x5AD1, 0x8B9B, 0x5AD2, 0xE6C8, + 0x5AD3, 0x8B9C, 0x5AD4, 0xE6C9, 0x5AD5, 0x8B9D, 0x5AD6, 0xE6CE, + 0x5AD7, 0x8B9E, 0x5AD8, 0xE6D0, 0x5AD9, 0x8B9F, 0x5ADA, 0x8BA0, + 0x5ADB, 0x8BA1, 0x5ADC, 0xE6D1, 0x5ADD, 0x8BA2, 0x5ADE, 0x8BA3, + 0x5ADF, 0x8BA4, 0x5AE0, 0xE6CB, 0x5AE1, 0xB5D5, 0x5AE2, 0x8BA5, + 0x5AE3, 0xE6CC, 0x5AE4, 0x8BA6, 0x5AE5, 0x8BA7, 0x5AE6, 0xE6CF, + 0x5AE7, 0x8BA8, 0x5AE8, 0x8BA9, 0x5AE9, 0xC4DB, 0x5AEA, 0x8BAA, + 0x5AEB, 0xE6C6, 0x5AEC, 0x8BAB, 0x5AED, 0x8BAC, 0x5AEE, 0x8BAD, + 0x5AEF, 0x8BAE, 0x5AF0, 0x8BAF, 0x5AF1, 0xE6CD, 0x5AF2, 0x8BB0, + 0x5AF3, 0x8BB1, 0x5AF4, 0x8BB2, 0x5AF5, 0x8BB3, 0x5AF6, 0x8BB4, + 0x5AF7, 0x8BB5, 0x5AF8, 0x8BB6, 0x5AF9, 0x8BB7, 0x5AFA, 0x8BB8, + 0x5AFB, 0x8BB9, 0x5AFC, 0x8BBA, 0x5AFD, 0x8BBB, 0x5AFE, 0x8BBC, + 0x5AFF, 0x8BBD, 0x5B00, 0x8BBE, 0x5B01, 0x8BBF, 0x5B02, 0x8BC0, + 0x5B03, 0x8BC1, 0x5B04, 0x8BC2, 0x5B05, 0x8BC3, 0x5B06, 0x8BC4, + 0x5B07, 0x8BC5, 0x5B08, 0x8BC6, 0x5B09, 0xE6D2, 0x5B0A, 0x8BC7, + 0x5B0B, 0x8BC8, 0x5B0C, 0x8BC9, 0x5B0D, 0x8BCA, 0x5B0E, 0x8BCB, + 0x5B0F, 0x8BCC, 0x5B10, 0x8BCD, 0x5B11, 0x8BCE, 0x5B12, 0x8BCF, + 0x5B13, 0x8BD0, 0x5B14, 0x8BD1, 0x5B15, 0x8BD2, 0x5B16, 0xE6D4, + 0x5B17, 0xE6D3, 0x5B18, 0x8BD3, 0x5B19, 0x8BD4, 0x5B1A, 0x8BD5, + 0x5B1B, 0x8BD6, 0x5B1C, 0x8BD7, 0x5B1D, 0x8BD8, 0x5B1E, 0x8BD9, + 0x5B1F, 0x8BDA, 0x5B20, 0x8BDB, 0x5B21, 0x8BDC, 0x5B22, 0x8BDD, + 0x5B23, 0x8BDE, 0x5B24, 0x8BDF, 0x5B25, 0x8BE0, 0x5B26, 0x8BE1, + 0x5B27, 0x8BE2, 0x5B28, 0x8BE3, 0x5B29, 0x8BE4, 0x5B2A, 0x8BE5, + 0x5B2B, 0x8BE6, 0x5B2C, 0x8BE7, 0x5B2D, 0x8BE8, 0x5B2E, 0x8BE9, + 0x5B2F, 0x8BEA, 0x5B30, 0x8BEB, 0x5B31, 0x8BEC, 0x5B32, 0xE6D5, + 0x5B33, 0x8BED, 0x5B34, 0xD9F8, 0x5B35, 0x8BEE, 0x5B36, 0x8BEF, + 0x5B37, 0xE6D6, 0x5B38, 0x8BF0, 0x5B39, 0x8BF1, 0x5B3A, 0x8BF2, + 0x5B3B, 0x8BF3, 0x5B3C, 0x8BF4, 0x5B3D, 0x8BF5, 0x5B3E, 0x8BF6, + 0x5B3F, 0x8BF7, 0x5B40, 0xE6D7, 0x5B41, 0x8BF8, 0x5B42, 0x8BF9, + 0x5B43, 0x8BFA, 0x5B44, 0x8BFB, 0x5B45, 0x8BFC, 0x5B46, 0x8BFD, + 0x5B47, 0x8BFE, 0x5B48, 0x8C40, 0x5B49, 0x8C41, 0x5B4A, 0x8C42, + 0x5B4B, 0x8C43, 0x5B4C, 0x8C44, 0x5B4D, 0x8C45, 0x5B4E, 0x8C46, + 0x5B4F, 0x8C47, 0x5B50, 0xD7D3, 0x5B51, 0xE6DD, 0x5B52, 0x8C48, + 0x5B53, 0xE6DE, 0x5B54, 0xBFD7, 0x5B55, 0xD4D0, 0x5B56, 0x8C49, + 0x5B57, 0xD7D6, 0x5B58, 0xB4E6, 0x5B59, 0xCBEF, 0x5B5A, 0xE6DA, + 0x5B5B, 0xD8C3, 0x5B5C, 0xD7CE, 0x5B5D, 0xD0A2, 0x5B5E, 0x8C4A, + 0x5B5F, 0xC3CF, 0x5B60, 0x8C4B, 0x5B61, 0x8C4C, 0x5B62, 0xE6DF, + 0x5B63, 0xBCBE, 0x5B64, 0xB9C2, 0x5B65, 0xE6DB, 0x5B66, 0xD1A7, + 0x5B67, 0x8C4D, 0x5B68, 0x8C4E, 0x5B69, 0xBAA2, 0x5B6A, 0xC2CF, + 0x5B6B, 0x8C4F, 0x5B6C, 0xD8AB, 0x5B6D, 0x8C50, 0x5B6E, 0x8C51, + 0x5B6F, 0x8C52, 0x5B70, 0xCAEB, 0x5B71, 0xE5EE, 0x5B72, 0x8C53, + 0x5B73, 0xE6DC, 0x5B74, 0x8C54, 0x5B75, 0xB7F5, 0x5B76, 0x8C55, + 0x5B77, 0x8C56, 0x5B78, 0x8C57, 0x5B79, 0x8C58, 0x5B7A, 0xC8E6, + 0x5B7B, 0x8C59, 0x5B7C, 0x8C5A, 0x5B7D, 0xC4F5, 0x5B7E, 0x8C5B, + 0x5B7F, 0x8C5C, 0x5B80, 0xE5B2, 0x5B81, 0xC4FE, 0x5B82, 0x8C5D, + 0x5B83, 0xCBFC, 0x5B84, 0xE5B3, 0x5B85, 0xD5AC, 0x5B86, 0x8C5E, + 0x5B87, 0xD3EE, 0x5B88, 0xCAD8, 0x5B89, 0xB0B2, 0x5B8A, 0x8C5F, + 0x5B8B, 0xCBCE, 0x5B8C, 0xCDEA, 0x5B8D, 0x8C60, 0x5B8E, 0x8C61, + 0x5B8F, 0xBAEA, 0x5B90, 0x8C62, 0x5B91, 0x8C63, 0x5B92, 0x8C64, + 0x5B93, 0xE5B5, 0x5B94, 0x8C65, 0x5B95, 0xE5B4, 0x5B96, 0x8C66, + 0x5B97, 0xD7DA, 0x5B98, 0xB9D9, 0x5B99, 0xD6E6, 0x5B9A, 0xB6A8, + 0x5B9B, 0xCDF0, 0x5B9C, 0xD2CB, 0x5B9D, 0xB1A6, 0x5B9E, 0xCAB5, + 0x5B9F, 0x8C67, 0x5BA0, 0xB3E8, 0x5BA1, 0xC9F3, 0x5BA2, 0xBFCD, + 0x5BA3, 0xD0FB, 0x5BA4, 0xCAD2, 0x5BA5, 0xE5B6, 0x5BA6, 0xBBC2, + 0x5BA7, 0x8C68, 0x5BA8, 0x8C69, 0x5BA9, 0x8C6A, 0x5BAA, 0xCFDC, + 0x5BAB, 0xB9AC, 0x5BAC, 0x8C6B, 0x5BAD, 0x8C6C, 0x5BAE, 0x8C6D, + 0x5BAF, 0x8C6E, 0x5BB0, 0xD4D7, 0x5BB1, 0x8C6F, 0x5BB2, 0x8C70, + 0x5BB3, 0xBAA6, 0x5BB4, 0xD1E7, 0x5BB5, 0xCFFC, 0x5BB6, 0xBCD2, + 0x5BB7, 0x8C71, 0x5BB8, 0xE5B7, 0x5BB9, 0xC8DD, 0x5BBA, 0x8C72, + 0x5BBB, 0x8C73, 0x5BBC, 0x8C74, 0x5BBD, 0xBFED, 0x5BBE, 0xB1F6, + 0x5BBF, 0xCBDE, 0x5BC0, 0x8C75, 0x5BC1, 0x8C76, 0x5BC2, 0xBCC5, + 0x5BC3, 0x8C77, 0x5BC4, 0xBCC4, 0x5BC5, 0xD2FA, 0x5BC6, 0xC3DC, + 0x5BC7, 0xBFDC, 0x5BC8, 0x8C78, 0x5BC9, 0x8C79, 0x5BCA, 0x8C7A, + 0x5BCB, 0x8C7B, 0x5BCC, 0xB8BB, 0x5BCD, 0x8C7C, 0x5BCE, 0x8C7D, + 0x5BCF, 0x8C7E, 0x5BD0, 0xC3C2, 0x5BD1, 0x8C80, 0x5BD2, 0xBAAE, + 0x5BD3, 0xD4A2, 0x5BD4, 0x8C81, 0x5BD5, 0x8C82, 0x5BD6, 0x8C83, + 0x5BD7, 0x8C84, 0x5BD8, 0x8C85, 0x5BD9, 0x8C86, 0x5BDA, 0x8C87, + 0x5BDB, 0x8C88, 0x5BDC, 0x8C89, 0x5BDD, 0xC7DE, 0x5BDE, 0xC4AF, + 0x5BDF, 0xB2EC, 0x5BE0, 0x8C8A, 0x5BE1, 0xB9D1, 0x5BE2, 0x8C8B, + 0x5BE3, 0x8C8C, 0x5BE4, 0xE5BB, 0x5BE5, 0xC1C8, 0x5BE6, 0x8C8D, + 0x5BE7, 0x8C8E, 0x5BE8, 0xD5AF, 0x5BE9, 0x8C8F, 0x5BEA, 0x8C90, + 0x5BEB, 0x8C91, 0x5BEC, 0x8C92, 0x5BED, 0x8C93, 0x5BEE, 0xE5BC, + 0x5BEF, 0x8C94, 0x5BF0, 0xE5BE, 0x5BF1, 0x8C95, 0x5BF2, 0x8C96, + 0x5BF3, 0x8C97, 0x5BF4, 0x8C98, 0x5BF5, 0x8C99, 0x5BF6, 0x8C9A, + 0x5BF7, 0x8C9B, 0x5BF8, 0xB4E7, 0x5BF9, 0xB6D4, 0x5BFA, 0xCBC2, + 0x5BFB, 0xD1B0, 0x5BFC, 0xB5BC, 0x5BFD, 0x8C9C, 0x5BFE, 0x8C9D, + 0x5BFF, 0xCAD9, 0x5C00, 0x8C9E, 0x5C01, 0xB7E2, 0x5C02, 0x8C9F, + 0x5C03, 0x8CA0, 0x5C04, 0xC9E4, 0x5C05, 0x8CA1, 0x5C06, 0xBDAB, + 0x5C07, 0x8CA2, 0x5C08, 0x8CA3, 0x5C09, 0xCEBE, 0x5C0A, 0xD7F0, + 0x5C0B, 0x8CA4, 0x5C0C, 0x8CA5, 0x5C0D, 0x8CA6, 0x5C0E, 0x8CA7, + 0x5C0F, 0xD0A1, 0x5C10, 0x8CA8, 0x5C11, 0xC9D9, 0x5C12, 0x8CA9, + 0x5C13, 0x8CAA, 0x5C14, 0xB6FB, 0x5C15, 0xE6D8, 0x5C16, 0xBCE2, + 0x5C17, 0x8CAB, 0x5C18, 0xB3BE, 0x5C19, 0x8CAC, 0x5C1A, 0xC9D0, + 0x5C1B, 0x8CAD, 0x5C1C, 0xE6D9, 0x5C1D, 0xB3A2, 0x5C1E, 0x8CAE, + 0x5C1F, 0x8CAF, 0x5C20, 0x8CB0, 0x5C21, 0x8CB1, 0x5C22, 0xDECC, + 0x5C23, 0x8CB2, 0x5C24, 0xD3C8, 0x5C25, 0xDECD, 0x5C26, 0x8CB3, + 0x5C27, 0xD2A2, 0x5C28, 0x8CB4, 0x5C29, 0x8CB5, 0x5C2A, 0x8CB6, + 0x5C2B, 0x8CB7, 0x5C2C, 0xDECE, 0x5C2D, 0x8CB8, 0x5C2E, 0x8CB9, + 0x5C2F, 0x8CBA, 0x5C30, 0x8CBB, 0x5C31, 0xBECD, 0x5C32, 0x8CBC, + 0x5C33, 0x8CBD, 0x5C34, 0xDECF, 0x5C35, 0x8CBE, 0x5C36, 0x8CBF, + 0x5C37, 0x8CC0, 0x5C38, 0xCAAC, 0x5C39, 0xD2FC, 0x5C3A, 0xB3DF, + 0x5C3B, 0xE5EA, 0x5C3C, 0xC4E1, 0x5C3D, 0xBEA1, 0x5C3E, 0xCEB2, + 0x5C3F, 0xC4F2, 0x5C40, 0xBED6, 0x5C41, 0xC6A8, 0x5C42, 0xB2E3, + 0x5C43, 0x8CC1, 0x5C44, 0x8CC2, 0x5C45, 0xBED3, 0x5C46, 0x8CC3, + 0x5C47, 0x8CC4, 0x5C48, 0xC7FC, 0x5C49, 0xCCEB, 0x5C4A, 0xBDEC, + 0x5C4B, 0xCEDD, 0x5C4C, 0x8CC5, 0x5C4D, 0x8CC6, 0x5C4E, 0xCABA, + 0x5C4F, 0xC6C1, 0x5C50, 0xE5EC, 0x5C51, 0xD0BC, 0x5C52, 0x8CC7, + 0x5C53, 0x8CC8, 0x5C54, 0x8CC9, 0x5C55, 0xD5B9, 0x5C56, 0x8CCA, + 0x5C57, 0x8CCB, 0x5C58, 0x8CCC, 0x5C59, 0xE5ED, 0x5C5A, 0x8CCD, + 0x5C5B, 0x8CCE, 0x5C5C, 0x8CCF, 0x5C5D, 0x8CD0, 0x5C5E, 0xCAF4, + 0x5C5F, 0x8CD1, 0x5C60, 0xCDC0, 0x5C61, 0xC2C5, 0x5C62, 0x8CD2, + 0x5C63, 0xE5EF, 0x5C64, 0x8CD3, 0x5C65, 0xC2C4, 0x5C66, 0xE5F0, + 0x5C67, 0x8CD4, 0x5C68, 0x8CD5, 0x5C69, 0x8CD6, 0x5C6A, 0x8CD7, + 0x5C6B, 0x8CD8, 0x5C6C, 0x8CD9, 0x5C6D, 0x8CDA, 0x5C6E, 0xE5F8, + 0x5C6F, 0xCDCD, 0x5C70, 0x8CDB, 0x5C71, 0xC9BD, 0x5C72, 0x8CDC, + 0x5C73, 0x8CDD, 0x5C74, 0x8CDE, 0x5C75, 0x8CDF, 0x5C76, 0x8CE0, + 0x5C77, 0x8CE1, 0x5C78, 0x8CE2, 0x5C79, 0xD2D9, 0x5C7A, 0xE1A8, + 0x5C7B, 0x8CE3, 0x5C7C, 0x8CE4, 0x5C7D, 0x8CE5, 0x5C7E, 0x8CE6, + 0x5C7F, 0xD3EC, 0x5C80, 0x8CE7, 0x5C81, 0xCBEA, 0x5C82, 0xC6F1, + 0x5C83, 0x8CE8, 0x5C84, 0x8CE9, 0x5C85, 0x8CEA, 0x5C86, 0x8CEB, + 0x5C87, 0x8CEC, 0x5C88, 0xE1AC, 0x5C89, 0x8CED, 0x5C8A, 0x8CEE, + 0x5C8B, 0x8CEF, 0x5C8C, 0xE1A7, 0x5C8D, 0xE1A9, 0x5C8E, 0x8CF0, + 0x5C8F, 0x8CF1, 0x5C90, 0xE1AA, 0x5C91, 0xE1AF, 0x5C92, 0x8CF2, + 0x5C93, 0x8CF3, 0x5C94, 0xB2ED, 0x5C95, 0x8CF4, 0x5C96, 0xE1AB, + 0x5C97, 0xB8DA, 0x5C98, 0xE1AD, 0x5C99, 0xE1AE, 0x5C9A, 0xE1B0, + 0x5C9B, 0xB5BA, 0x5C9C, 0xE1B1, 0x5C9D, 0x8CF5, 0x5C9E, 0x8CF6, + 0x5C9F, 0x8CF7, 0x5CA0, 0x8CF8, 0x5CA1, 0x8CF9, 0x5CA2, 0xE1B3, + 0x5CA3, 0xE1B8, 0x5CA4, 0x8CFA, 0x5CA5, 0x8CFB, 0x5CA6, 0x8CFC, + 0x5CA7, 0x8CFD, 0x5CA8, 0x8CFE, 0x5CA9, 0xD1D2, 0x5CAA, 0x8D40, + 0x5CAB, 0xE1B6, 0x5CAC, 0xE1B5, 0x5CAD, 0xC1EB, 0x5CAE, 0x8D41, + 0x5CAF, 0x8D42, 0x5CB0, 0x8D43, 0x5CB1, 0xE1B7, 0x5CB2, 0x8D44, + 0x5CB3, 0xD4C0, 0x5CB4, 0x8D45, 0x5CB5, 0xE1B2, 0x5CB6, 0x8D46, + 0x5CB7, 0xE1BA, 0x5CB8, 0xB0B6, 0x5CB9, 0x8D47, 0x5CBA, 0x8D48, + 0x5CBB, 0x8D49, 0x5CBC, 0x8D4A, 0x5CBD, 0xE1B4, 0x5CBE, 0x8D4B, + 0x5CBF, 0xBFF9, 0x5CC0, 0x8D4C, 0x5CC1, 0xE1B9, 0x5CC2, 0x8D4D, + 0x5CC3, 0x8D4E, 0x5CC4, 0xE1BB, 0x5CC5, 0x8D4F, 0x5CC6, 0x8D50, + 0x5CC7, 0x8D51, 0x5CC8, 0x8D52, 0x5CC9, 0x8D53, 0x5CCA, 0x8D54, + 0x5CCB, 0xE1BE, 0x5CCC, 0x8D55, 0x5CCD, 0x8D56, 0x5CCE, 0x8D57, + 0x5CCF, 0x8D58, 0x5CD0, 0x8D59, 0x5CD1, 0x8D5A, 0x5CD2, 0xE1BC, + 0x5CD3, 0x8D5B, 0x5CD4, 0x8D5C, 0x5CD5, 0x8D5D, 0x5CD6, 0x8D5E, + 0x5CD7, 0x8D5F, 0x5CD8, 0x8D60, 0x5CD9, 0xD6C5, 0x5CDA, 0x8D61, + 0x5CDB, 0x8D62, 0x5CDC, 0x8D63, 0x5CDD, 0x8D64, 0x5CDE, 0x8D65, + 0x5CDF, 0x8D66, 0x5CE0, 0x8D67, 0x5CE1, 0xCFBF, 0x5CE2, 0x8D68, + 0x5CE3, 0x8D69, 0x5CE4, 0xE1BD, 0x5CE5, 0xE1BF, 0x5CE6, 0xC2CD, + 0x5CE7, 0x8D6A, 0x5CE8, 0xB6EB, 0x5CE9, 0x8D6B, 0x5CEA, 0xD3F8, + 0x5CEB, 0x8D6C, 0x5CEC, 0x8D6D, 0x5CED, 0xC7CD, 0x5CEE, 0x8D6E, + 0x5CEF, 0x8D6F, 0x5CF0, 0xB7E5, 0x5CF1, 0x8D70, 0x5CF2, 0x8D71, + 0x5CF3, 0x8D72, 0x5CF4, 0x8D73, 0x5CF5, 0x8D74, 0x5CF6, 0x8D75, + 0x5CF7, 0x8D76, 0x5CF8, 0x8D77, 0x5CF9, 0x8D78, 0x5CFA, 0x8D79, + 0x5CFB, 0xBEFE, 0x5CFC, 0x8D7A, 0x5CFD, 0x8D7B, 0x5CFE, 0x8D7C, + 0x5CFF, 0x8D7D, 0x5D00, 0x8D7E, 0x5D01, 0x8D80, 0x5D02, 0xE1C0, + 0x5D03, 0xE1C1, 0x5D04, 0x8D81, 0x5D05, 0x8D82, 0x5D06, 0xE1C7, + 0x5D07, 0xB3E7, 0x5D08, 0x8D83, 0x5D09, 0x8D84, 0x5D0A, 0x8D85, + 0x5D0B, 0x8D86, 0x5D0C, 0x8D87, 0x5D0D, 0x8D88, 0x5D0E, 0xC6E9, + 0x5D0F, 0x8D89, 0x5D10, 0x8D8A, 0x5D11, 0x8D8B, 0x5D12, 0x8D8C, + 0x5D13, 0x8D8D, 0x5D14, 0xB4DE, 0x5D15, 0x8D8E, 0x5D16, 0xD1C2, + 0x5D17, 0x8D8F, 0x5D18, 0x8D90, 0x5D19, 0x8D91, 0x5D1A, 0x8D92, + 0x5D1B, 0xE1C8, 0x5D1C, 0x8D93, 0x5D1D, 0x8D94, 0x5D1E, 0xE1C6, + 0x5D1F, 0x8D95, 0x5D20, 0x8D96, 0x5D21, 0x8D97, 0x5D22, 0x8D98, + 0x5D23, 0x8D99, 0x5D24, 0xE1C5, 0x5D25, 0x8D9A, 0x5D26, 0xE1C3, + 0x5D27, 0xE1C2, 0x5D28, 0x8D9B, 0x5D29, 0xB1C0, 0x5D2A, 0x8D9C, + 0x5D2B, 0x8D9D, 0x5D2C, 0x8D9E, 0x5D2D, 0xD5B8, 0x5D2E, 0xE1C4, + 0x5D2F, 0x8D9F, 0x5D30, 0x8DA0, 0x5D31, 0x8DA1, 0x5D32, 0x8DA2, + 0x5D33, 0x8DA3, 0x5D34, 0xE1CB, 0x5D35, 0x8DA4, 0x5D36, 0x8DA5, + 0x5D37, 0x8DA6, 0x5D38, 0x8DA7, 0x5D39, 0x8DA8, 0x5D3A, 0x8DA9, + 0x5D3B, 0x8DAA, 0x5D3C, 0x8DAB, 0x5D3D, 0xE1CC, 0x5D3E, 0xE1CA, + 0x5D3F, 0x8DAC, 0x5D40, 0x8DAD, 0x5D41, 0x8DAE, 0x5D42, 0x8DAF, + 0x5D43, 0x8DB0, 0x5D44, 0x8DB1, 0x5D45, 0x8DB2, 0x5D46, 0x8DB3, + 0x5D47, 0xEFFA, 0x5D48, 0x8DB4, 0x5D49, 0x8DB5, 0x5D4A, 0xE1D3, + 0x5D4B, 0xE1D2, 0x5D4C, 0xC7B6, 0x5D4D, 0x8DB6, 0x5D4E, 0x8DB7, + 0x5D4F, 0x8DB8, 0x5D50, 0x8DB9, 0x5D51, 0x8DBA, 0x5D52, 0x8DBB, + 0x5D53, 0x8DBC, 0x5D54, 0x8DBD, 0x5D55, 0x8DBE, 0x5D56, 0x8DBF, + 0x5D57, 0x8DC0, 0x5D58, 0xE1C9, 0x5D59, 0x8DC1, 0x5D5A, 0x8DC2, + 0x5D5B, 0xE1CE, 0x5D5C, 0x8DC3, 0x5D5D, 0xE1D0, 0x5D5E, 0x8DC4, + 0x5D5F, 0x8DC5, 0x5D60, 0x8DC6, 0x5D61, 0x8DC7, 0x5D62, 0x8DC8, + 0x5D63, 0x8DC9, 0x5D64, 0x8DCA, 0x5D65, 0x8DCB, 0x5D66, 0x8DCC, + 0x5D67, 0x8DCD, 0x5D68, 0x8DCE, 0x5D69, 0xE1D4, 0x5D6A, 0x8DCF, + 0x5D6B, 0xE1D1, 0x5D6C, 0xE1CD, 0x5D6D, 0x8DD0, 0x5D6E, 0x8DD1, + 0x5D6F, 0xE1CF, 0x5D70, 0x8DD2, 0x5D71, 0x8DD3, 0x5D72, 0x8DD4, + 0x5D73, 0x8DD5, 0x5D74, 0xE1D5, 0x5D75, 0x8DD6, 0x5D76, 0x8DD7, + 0x5D77, 0x8DD8, 0x5D78, 0x8DD9, 0x5D79, 0x8DDA, 0x5D7A, 0x8DDB, + 0x5D7B, 0x8DDC, 0x5D7C, 0x8DDD, 0x5D7D, 0x8DDE, 0x5D7E, 0x8DDF, + 0x5D7F, 0x8DE0, 0x5D80, 0x8DE1, 0x5D81, 0x8DE2, 0x5D82, 0xE1D6, + 0x5D83, 0x8DE3, 0x5D84, 0x8DE4, 0x5D85, 0x8DE5, 0x5D86, 0x8DE6, + 0x5D87, 0x8DE7, 0x5D88, 0x8DE8, 0x5D89, 0x8DE9, 0x5D8A, 0x8DEA, + 0x5D8B, 0x8DEB, 0x5D8C, 0x8DEC, 0x5D8D, 0x8DED, 0x5D8E, 0x8DEE, + 0x5D8F, 0x8DEF, 0x5D90, 0x8DF0, 0x5D91, 0x8DF1, 0x5D92, 0x8DF2, + 0x5D93, 0x8DF3, 0x5D94, 0x8DF4, 0x5D95, 0x8DF5, 0x5D96, 0x8DF6, + 0x5D97, 0x8DF7, 0x5D98, 0x8DF8, 0x5D99, 0xE1D7, 0x5D9A, 0x8DF9, + 0x5D9B, 0x8DFA, 0x5D9C, 0x8DFB, 0x5D9D, 0xE1D8, 0x5D9E, 0x8DFC, + 0x5D9F, 0x8DFD, 0x5DA0, 0x8DFE, 0x5DA1, 0x8E40, 0x5DA2, 0x8E41, + 0x5DA3, 0x8E42, 0x5DA4, 0x8E43, 0x5DA5, 0x8E44, 0x5DA6, 0x8E45, + 0x5DA7, 0x8E46, 0x5DA8, 0x8E47, 0x5DA9, 0x8E48, 0x5DAA, 0x8E49, + 0x5DAB, 0x8E4A, 0x5DAC, 0x8E4B, 0x5DAD, 0x8E4C, 0x5DAE, 0x8E4D, + 0x5DAF, 0x8E4E, 0x5DB0, 0x8E4F, 0x5DB1, 0x8E50, 0x5DB2, 0x8E51, + 0x5DB3, 0x8E52, 0x5DB4, 0x8E53, 0x5DB5, 0x8E54, 0x5DB6, 0x8E55, + 0x5DB7, 0xE1DA, 0x5DB8, 0x8E56, 0x5DB9, 0x8E57, 0x5DBA, 0x8E58, + 0x5DBB, 0x8E59, 0x5DBC, 0x8E5A, 0x5DBD, 0x8E5B, 0x5DBE, 0x8E5C, + 0x5DBF, 0x8E5D, 0x5DC0, 0x8E5E, 0x5DC1, 0x8E5F, 0x5DC2, 0x8E60, + 0x5DC3, 0x8E61, 0x5DC4, 0x8E62, 0x5DC5, 0xE1DB, 0x5DC6, 0x8E63, + 0x5DC7, 0x8E64, 0x5DC8, 0x8E65, 0x5DC9, 0x8E66, 0x5DCA, 0x8E67, + 0x5DCB, 0x8E68, 0x5DCC, 0x8E69, 0x5DCD, 0xCEA1, 0x5DCE, 0x8E6A, + 0x5DCF, 0x8E6B, 0x5DD0, 0x8E6C, 0x5DD1, 0x8E6D, 0x5DD2, 0x8E6E, + 0x5DD3, 0x8E6F, 0x5DD4, 0x8E70, 0x5DD5, 0x8E71, 0x5DD6, 0x8E72, + 0x5DD7, 0x8E73, 0x5DD8, 0x8E74, 0x5DD9, 0x8E75, 0x5DDA, 0x8E76, + 0x5DDB, 0xE7DD, 0x5DDC, 0x8E77, 0x5DDD, 0xB4A8, 0x5DDE, 0xD6DD, + 0x5DDF, 0x8E78, 0x5DE0, 0x8E79, 0x5DE1, 0xD1B2, 0x5DE2, 0xB3B2, + 0x5DE3, 0x8E7A, 0x5DE4, 0x8E7B, 0x5DE5, 0xB9A4, 0x5DE6, 0xD7F3, + 0x5DE7, 0xC7C9, 0x5DE8, 0xBEDE, 0x5DE9, 0xB9AE, 0x5DEA, 0x8E7C, + 0x5DEB, 0xCED7, 0x5DEC, 0x8E7D, 0x5DED, 0x8E7E, 0x5DEE, 0xB2EE, + 0x5DEF, 0xDBCF, 0x5DF0, 0x8E80, 0x5DF1, 0xBCBA, 0x5DF2, 0xD2D1, + 0x5DF3, 0xCBC8, 0x5DF4, 0xB0CD, 0x5DF5, 0x8E81, 0x5DF6, 0x8E82, + 0x5DF7, 0xCFEF, 0x5DF8, 0x8E83, 0x5DF9, 0x8E84, 0x5DFA, 0x8E85, + 0x5DFB, 0x8E86, 0x5DFC, 0x8E87, 0x5DFD, 0xD9E3, 0x5DFE, 0xBDED, + 0x5DFF, 0x8E88, 0x5E00, 0x8E89, 0x5E01, 0xB1D2, 0x5E02, 0xCAD0, + 0x5E03, 0xB2BC, 0x5E04, 0x8E8A, 0x5E05, 0xCBA7, 0x5E06, 0xB7AB, + 0x5E07, 0x8E8B, 0x5E08, 0xCAA6, 0x5E09, 0x8E8C, 0x5E0A, 0x8E8D, + 0x5E0B, 0x8E8E, 0x5E0C, 0xCFA3, 0x5E0D, 0x8E8F, 0x5E0E, 0x8E90, + 0x5E0F, 0xE0F8, 0x5E10, 0xD5CA, 0x5E11, 0xE0FB, 0x5E12, 0x8E91, + 0x5E13, 0x8E92, 0x5E14, 0xE0FA, 0x5E15, 0xC5C1, 0x5E16, 0xCCFB, + 0x5E17, 0x8E93, 0x5E18, 0xC1B1, 0x5E19, 0xE0F9, 0x5E1A, 0xD6E3, + 0x5E1B, 0xB2AF, 0x5E1C, 0xD6C4, 0x5E1D, 0xB5DB, 0x5E1E, 0x8E94, + 0x5E1F, 0x8E95, 0x5E20, 0x8E96, 0x5E21, 0x8E97, 0x5E22, 0x8E98, + 0x5E23, 0x8E99, 0x5E24, 0x8E9A, 0x5E25, 0x8E9B, 0x5E26, 0xB4F8, + 0x5E27, 0xD6A1, 0x5E28, 0x8E9C, 0x5E29, 0x8E9D, 0x5E2A, 0x8E9E, + 0x5E2B, 0x8E9F, 0x5E2C, 0x8EA0, 0x5E2D, 0xCFAF, 0x5E2E, 0xB0EF, + 0x5E2F, 0x8EA1, 0x5E30, 0x8EA2, 0x5E31, 0xE0FC, 0x5E32, 0x8EA3, + 0x5E33, 0x8EA4, 0x5E34, 0x8EA5, 0x5E35, 0x8EA6, 0x5E36, 0x8EA7, + 0x5E37, 0xE1A1, 0x5E38, 0xB3A3, 0x5E39, 0x8EA8, 0x5E3A, 0x8EA9, + 0x5E3B, 0xE0FD, 0x5E3C, 0xE0FE, 0x5E3D, 0xC3B1, 0x5E3E, 0x8EAA, + 0x5E3F, 0x8EAB, 0x5E40, 0x8EAC, 0x5E41, 0x8EAD, 0x5E42, 0xC3DD, + 0x5E43, 0x8EAE, 0x5E44, 0xE1A2, 0x5E45, 0xB7F9, 0x5E46, 0x8EAF, + 0x5E47, 0x8EB0, 0x5E48, 0x8EB1, 0x5E49, 0x8EB2, 0x5E4A, 0x8EB3, + 0x5E4B, 0x8EB4, 0x5E4C, 0xBBCF, 0x5E4D, 0x8EB5, 0x5E4E, 0x8EB6, + 0x5E4F, 0x8EB7, 0x5E50, 0x8EB8, 0x5E51, 0x8EB9, 0x5E52, 0x8EBA, + 0x5E53, 0x8EBB, 0x5E54, 0xE1A3, 0x5E55, 0xC4BB, 0x5E56, 0x8EBC, + 0x5E57, 0x8EBD, 0x5E58, 0x8EBE, 0x5E59, 0x8EBF, 0x5E5A, 0x8EC0, + 0x5E5B, 0xE1A4, 0x5E5C, 0x8EC1, 0x5E5D, 0x8EC2, 0x5E5E, 0xE1A5, + 0x5E5F, 0x8EC3, 0x5E60, 0x8EC4, 0x5E61, 0xE1A6, 0x5E62, 0xB4B1, + 0x5E63, 0x8EC5, 0x5E64, 0x8EC6, 0x5E65, 0x8EC7, 0x5E66, 0x8EC8, + 0x5E67, 0x8EC9, 0x5E68, 0x8ECA, 0x5E69, 0x8ECB, 0x5E6A, 0x8ECC, + 0x5E6B, 0x8ECD, 0x5E6C, 0x8ECE, 0x5E6D, 0x8ECF, 0x5E6E, 0x8ED0, + 0x5E6F, 0x8ED1, 0x5E70, 0x8ED2, 0x5E71, 0x8ED3, 0x5E72, 0xB8C9, + 0x5E73, 0xC6BD, 0x5E74, 0xC4EA, 0x5E75, 0x8ED4, 0x5E76, 0xB2A2, + 0x5E77, 0x8ED5, 0x5E78, 0xD0D2, 0x5E79, 0x8ED6, 0x5E7A, 0xE7DB, + 0x5E7B, 0xBBC3, 0x5E7C, 0xD3D7, 0x5E7D, 0xD3C4, 0x5E7E, 0x8ED7, + 0x5E7F, 0xB9E3, 0x5E80, 0xE2CF, 0x5E81, 0x8ED8, 0x5E82, 0x8ED9, + 0x5E83, 0x8EDA, 0x5E84, 0xD7AF, 0x5E85, 0x8EDB, 0x5E86, 0xC7EC, + 0x5E87, 0xB1D3, 0x5E88, 0x8EDC, 0x5E89, 0x8EDD, 0x5E8A, 0xB4B2, + 0x5E8B, 0xE2D1, 0x5E8C, 0x8EDE, 0x5E8D, 0x8EDF, 0x5E8E, 0x8EE0, + 0x5E8F, 0xD0F2, 0x5E90, 0xC2AE, 0x5E91, 0xE2D0, 0x5E92, 0x8EE1, + 0x5E93, 0xBFE2, 0x5E94, 0xD3A6, 0x5E95, 0xB5D7, 0x5E96, 0xE2D2, + 0x5E97, 0xB5EA, 0x5E98, 0x8EE2, 0x5E99, 0xC3ED, 0x5E9A, 0xB8FD, + 0x5E9B, 0x8EE3, 0x5E9C, 0xB8AE, 0x5E9D, 0x8EE4, 0x5E9E, 0xC5D3, + 0x5E9F, 0xB7CF, 0x5EA0, 0xE2D4, 0x5EA1, 0x8EE5, 0x5EA2, 0x8EE6, + 0x5EA3, 0x8EE7, 0x5EA4, 0x8EE8, 0x5EA5, 0xE2D3, 0x5EA6, 0xB6C8, + 0x5EA7, 0xD7F9, 0x5EA8, 0x8EE9, 0x5EA9, 0x8EEA, 0x5EAA, 0x8EEB, + 0x5EAB, 0x8EEC, 0x5EAC, 0x8EED, 0x5EAD, 0xCDA5, 0x5EAE, 0x8EEE, + 0x5EAF, 0x8EEF, 0x5EB0, 0x8EF0, 0x5EB1, 0x8EF1, 0x5EB2, 0x8EF2, + 0x5EB3, 0xE2D8, 0x5EB4, 0x8EF3, 0x5EB5, 0xE2D6, 0x5EB6, 0xCAFC, + 0x5EB7, 0xBFB5, 0x5EB8, 0xD3B9, 0x5EB9, 0xE2D5, 0x5EBA, 0x8EF4, + 0x5EBB, 0x8EF5, 0x5EBC, 0x8EF6, 0x5EBD, 0x8EF7, 0x5EBE, 0xE2D7, + 0x5EBF, 0x8EF8, 0x5EC0, 0x8EF9, 0x5EC1, 0x8EFA, 0x5EC2, 0x8EFB, + 0x5EC3, 0x8EFC, 0x5EC4, 0x8EFD, 0x5EC5, 0x8EFE, 0x5EC6, 0x8F40, + 0x5EC7, 0x8F41, 0x5EC8, 0x8F42, 0x5EC9, 0xC1AE, 0x5ECA, 0xC0C8, + 0x5ECB, 0x8F43, 0x5ECC, 0x8F44, 0x5ECD, 0x8F45, 0x5ECE, 0x8F46, + 0x5ECF, 0x8F47, 0x5ED0, 0x8F48, 0x5ED1, 0xE2DB, 0x5ED2, 0xE2DA, + 0x5ED3, 0xC0AA, 0x5ED4, 0x8F49, 0x5ED5, 0x8F4A, 0x5ED6, 0xC1CE, + 0x5ED7, 0x8F4B, 0x5ED8, 0x8F4C, 0x5ED9, 0x8F4D, 0x5EDA, 0x8F4E, + 0x5EDB, 0xE2DC, 0x5EDC, 0x8F4F, 0x5EDD, 0x8F50, 0x5EDE, 0x8F51, + 0x5EDF, 0x8F52, 0x5EE0, 0x8F53, 0x5EE1, 0x8F54, 0x5EE2, 0x8F55, + 0x5EE3, 0x8F56, 0x5EE4, 0x8F57, 0x5EE5, 0x8F58, 0x5EE6, 0x8F59, + 0x5EE7, 0x8F5A, 0x5EE8, 0xE2DD, 0x5EE9, 0x8F5B, 0x5EEA, 0xE2DE, + 0x5EEB, 0x8F5C, 0x5EEC, 0x8F5D, 0x5EED, 0x8F5E, 0x5EEE, 0x8F5F, + 0x5EEF, 0x8F60, 0x5EF0, 0x8F61, 0x5EF1, 0x8F62, 0x5EF2, 0x8F63, + 0x5EF3, 0x8F64, 0x5EF4, 0xDBC8, 0x5EF5, 0x8F65, 0x5EF6, 0xD1D3, + 0x5EF7, 0xCDA2, 0x5EF8, 0x8F66, 0x5EF9, 0x8F67, 0x5EFA, 0xBDA8, + 0x5EFB, 0x8F68, 0x5EFC, 0x8F69, 0x5EFD, 0x8F6A, 0x5EFE, 0xDEC3, + 0x5EFF, 0xD8A5, 0x5F00, 0xBFAA, 0x5F01, 0xDBCD, 0x5F02, 0xD2EC, + 0x5F03, 0xC6FA, 0x5F04, 0xC5AA, 0x5F05, 0x8F6B, 0x5F06, 0x8F6C, + 0x5F07, 0x8F6D, 0x5F08, 0xDEC4, 0x5F09, 0x8F6E, 0x5F0A, 0xB1D7, + 0x5F0B, 0xDFAE, 0x5F0C, 0x8F6F, 0x5F0D, 0x8F70, 0x5F0E, 0x8F71, + 0x5F0F, 0xCABD, 0x5F10, 0x8F72, 0x5F11, 0xDFB1, 0x5F12, 0x8F73, + 0x5F13, 0xB9AD, 0x5F14, 0x8F74, 0x5F15, 0xD2FD, 0x5F16, 0x8F75, + 0x5F17, 0xB8A5, 0x5F18, 0xBAEB, 0x5F19, 0x8F76, 0x5F1A, 0x8F77, + 0x5F1B, 0xB3DA, 0x5F1C, 0x8F78, 0x5F1D, 0x8F79, 0x5F1E, 0x8F7A, + 0x5F1F, 0xB5DC, 0x5F20, 0xD5C5, 0x5F21, 0x8F7B, 0x5F22, 0x8F7C, + 0x5F23, 0x8F7D, 0x5F24, 0x8F7E, 0x5F25, 0xC3D6, 0x5F26, 0xCFD2, + 0x5F27, 0xBBA1, 0x5F28, 0x8F80, 0x5F29, 0xE5F3, 0x5F2A, 0xE5F2, + 0x5F2B, 0x8F81, 0x5F2C, 0x8F82, 0x5F2D, 0xE5F4, 0x5F2E, 0x8F83, + 0x5F2F, 0xCDE4, 0x5F30, 0x8F84, 0x5F31, 0xC8F5, 0x5F32, 0x8F85, + 0x5F33, 0x8F86, 0x5F34, 0x8F87, 0x5F35, 0x8F88, 0x5F36, 0x8F89, + 0x5F37, 0x8F8A, 0x5F38, 0x8F8B, 0x5F39, 0xB5AF, 0x5F3A, 0xC7BF, + 0x5F3B, 0x8F8C, 0x5F3C, 0xE5F6, 0x5F3D, 0x8F8D, 0x5F3E, 0x8F8E, + 0x5F3F, 0x8F8F, 0x5F40, 0xECB0, 0x5F41, 0x8F90, 0x5F42, 0x8F91, + 0x5F43, 0x8F92, 0x5F44, 0x8F93, 0x5F45, 0x8F94, 0x5F46, 0x8F95, + 0x5F47, 0x8F96, 0x5F48, 0x8F97, 0x5F49, 0x8F98, 0x5F4A, 0x8F99, + 0x5F4B, 0x8F9A, 0x5F4C, 0x8F9B, 0x5F4D, 0x8F9C, 0x5F4E, 0x8F9D, + 0x5F4F, 0x8F9E, 0x5F50, 0xE5E6, 0x5F51, 0x8F9F, 0x5F52, 0xB9E9, + 0x5F53, 0xB5B1, 0x5F54, 0x8FA0, 0x5F55, 0xC2BC, 0x5F56, 0xE5E8, + 0x5F57, 0xE5E7, 0x5F58, 0xE5E9, 0x5F59, 0x8FA1, 0x5F5A, 0x8FA2, + 0x5F5B, 0x8FA3, 0x5F5C, 0x8FA4, 0x5F5D, 0xD2CD, 0x5F5E, 0x8FA5, + 0x5F5F, 0x8FA6, 0x5F60, 0x8FA7, 0x5F61, 0xE1EA, 0x5F62, 0xD0CE, + 0x5F63, 0x8FA8, 0x5F64, 0xCDAE, 0x5F65, 0x8FA9, 0x5F66, 0xD1E5, + 0x5F67, 0x8FAA, 0x5F68, 0x8FAB, 0x5F69, 0xB2CA, 0x5F6A, 0xB1EB, + 0x5F6B, 0x8FAC, 0x5F6C, 0xB1F2, 0x5F6D, 0xC5ED, 0x5F6E, 0x8FAD, + 0x5F6F, 0x8FAE, 0x5F70, 0xD5C3, 0x5F71, 0xD3B0, 0x5F72, 0x8FAF, + 0x5F73, 0xE1DC, 0x5F74, 0x8FB0, 0x5F75, 0x8FB1, 0x5F76, 0x8FB2, + 0x5F77, 0xE1DD, 0x5F78, 0x8FB3, 0x5F79, 0xD2DB, 0x5F7A, 0x8FB4, + 0x5F7B, 0xB3B9, 0x5F7C, 0xB1CB, 0x5F7D, 0x8FB5, 0x5F7E, 0x8FB6, + 0x5F7F, 0x8FB7, 0x5F80, 0xCDF9, 0x5F81, 0xD5F7, 0x5F82, 0xE1DE, + 0x5F83, 0x8FB8, 0x5F84, 0xBEB6, 0x5F85, 0xB4FD, 0x5F86, 0x8FB9, + 0x5F87, 0xE1DF, 0x5F88, 0xBADC, 0x5F89, 0xE1E0, 0x5F8A, 0xBBB2, + 0x5F8B, 0xC2C9, 0x5F8C, 0xE1E1, 0x5F8D, 0x8FBA, 0x5F8E, 0x8FBB, + 0x5F8F, 0x8FBC, 0x5F90, 0xD0EC, 0x5F91, 0x8FBD, 0x5F92, 0xCDBD, + 0x5F93, 0x8FBE, 0x5F94, 0x8FBF, 0x5F95, 0xE1E2, 0x5F96, 0x8FC0, + 0x5F97, 0xB5C3, 0x5F98, 0xC5C7, 0x5F99, 0xE1E3, 0x5F9A, 0x8FC1, + 0x5F9B, 0x8FC2, 0x5F9C, 0xE1E4, 0x5F9D, 0x8FC3, 0x5F9E, 0x8FC4, + 0x5F9F, 0x8FC5, 0x5FA0, 0x8FC6, 0x5FA1, 0xD3F9, 0x5FA2, 0x8FC7, + 0x5FA3, 0x8FC8, 0x5FA4, 0x8FC9, 0x5FA5, 0x8FCA, 0x5FA6, 0x8FCB, + 0x5FA7, 0x8FCC, 0x5FA8, 0xE1E5, 0x5FA9, 0x8FCD, 0x5FAA, 0xD1AD, + 0x5FAB, 0x8FCE, 0x5FAC, 0x8FCF, 0x5FAD, 0xE1E6, 0x5FAE, 0xCEA2, + 0x5FAF, 0x8FD0, 0x5FB0, 0x8FD1, 0x5FB1, 0x8FD2, 0x5FB2, 0x8FD3, + 0x5FB3, 0x8FD4, 0x5FB4, 0x8FD5, 0x5FB5, 0xE1E7, 0x5FB6, 0x8FD6, + 0x5FB7, 0xB5C2, 0x5FB8, 0x8FD7, 0x5FB9, 0x8FD8, 0x5FBA, 0x8FD9, + 0x5FBB, 0x8FDA, 0x5FBC, 0xE1E8, 0x5FBD, 0xBBD5, 0x5FBE, 0x8FDB, + 0x5FBF, 0x8FDC, 0x5FC0, 0x8FDD, 0x5FC1, 0x8FDE, 0x5FC2, 0x8FDF, + 0x5FC3, 0xD0C4, 0x5FC4, 0xE2E0, 0x5FC5, 0xB1D8, 0x5FC6, 0xD2E4, + 0x5FC7, 0x8FE0, 0x5FC8, 0x8FE1, 0x5FC9, 0xE2E1, 0x5FCA, 0x8FE2, + 0x5FCB, 0x8FE3, 0x5FCC, 0xBCC9, 0x5FCD, 0xC8CC, 0x5FCE, 0x8FE4, + 0x5FCF, 0xE2E3, 0x5FD0, 0xECFE, 0x5FD1, 0xECFD, 0x5FD2, 0xDFAF, + 0x5FD3, 0x8FE5, 0x5FD4, 0x8FE6, 0x5FD5, 0x8FE7, 0x5FD6, 0xE2E2, + 0x5FD7, 0xD6BE, 0x5FD8, 0xCDFC, 0x5FD9, 0xC3A6, 0x5FDA, 0x8FE8, + 0x5FDB, 0x8FE9, 0x5FDC, 0x8FEA, 0x5FDD, 0xE3C3, 0x5FDE, 0x8FEB, + 0x5FDF, 0x8FEC, 0x5FE0, 0xD6D2, 0x5FE1, 0xE2E7, 0x5FE2, 0x8FED, + 0x5FE3, 0x8FEE, 0x5FE4, 0xE2E8, 0x5FE5, 0x8FEF, 0x5FE6, 0x8FF0, + 0x5FE7, 0xD3C7, 0x5FE8, 0x8FF1, 0x5FE9, 0x8FF2, 0x5FEA, 0xE2EC, + 0x5FEB, 0xBFEC, 0x5FEC, 0x8FF3, 0x5FED, 0xE2ED, 0x5FEE, 0xE2E5, + 0x5FEF, 0x8FF4, 0x5FF0, 0x8FF5, 0x5FF1, 0xB3C0, 0x5FF2, 0x8FF6, + 0x5FF3, 0x8FF7, 0x5FF4, 0x8FF8, 0x5FF5, 0xC4EE, 0x5FF6, 0x8FF9, + 0x5FF7, 0x8FFA, 0x5FF8, 0xE2EE, 0x5FF9, 0x8FFB, 0x5FFA, 0x8FFC, + 0x5FFB, 0xD0C3, 0x5FFC, 0x8FFD, 0x5FFD, 0xBAF6, 0x5FFE, 0xE2E9, + 0x5FFF, 0xB7DE, 0x6000, 0xBBB3, 0x6001, 0xCCAC, 0x6002, 0xCBCB, + 0x6003, 0xE2E4, 0x6004, 0xE2E6, 0x6005, 0xE2EA, 0x6006, 0xE2EB, + 0x6007, 0x8FFE, 0x6008, 0x9040, 0x6009, 0x9041, 0x600A, 0xE2F7, + 0x600B, 0x9042, 0x600C, 0x9043, 0x600D, 0xE2F4, 0x600E, 0xD4F5, + 0x600F, 0xE2F3, 0x6010, 0x9044, 0x6011, 0x9045, 0x6012, 0xC5AD, + 0x6013, 0x9046, 0x6014, 0xD5FA, 0x6015, 0xC5C2, 0x6016, 0xB2C0, + 0x6017, 0x9047, 0x6018, 0x9048, 0x6019, 0xE2EF, 0x601A, 0x9049, + 0x601B, 0xE2F2, 0x601C, 0xC1AF, 0x601D, 0xCBBC, 0x601E, 0x904A, + 0x601F, 0x904B, 0x6020, 0xB5A1, 0x6021, 0xE2F9, 0x6022, 0x904C, + 0x6023, 0x904D, 0x6024, 0x904E, 0x6025, 0xBCB1, 0x6026, 0xE2F1, + 0x6027, 0xD0D4, 0x6028, 0xD4B9, 0x6029, 0xE2F5, 0x602A, 0xB9D6, + 0x602B, 0xE2F6, 0x602C, 0x904F, 0x602D, 0x9050, 0x602E, 0x9051, + 0x602F, 0xC7D3, 0x6030, 0x9052, 0x6031, 0x9053, 0x6032, 0x9054, + 0x6033, 0x9055, 0x6034, 0x9056, 0x6035, 0xE2F0, 0x6036, 0x9057, + 0x6037, 0x9058, 0x6038, 0x9059, 0x6039, 0x905A, 0x603A, 0x905B, + 0x603B, 0xD7DC, 0x603C, 0xEDA1, 0x603D, 0x905C, 0x603E, 0x905D, + 0x603F, 0xE2F8, 0x6040, 0x905E, 0x6041, 0xEDA5, 0x6042, 0xE2FE, + 0x6043, 0xCAD1, 0x6044, 0x905F, 0x6045, 0x9060, 0x6046, 0x9061, + 0x6047, 0x9062, 0x6048, 0x9063, 0x6049, 0x9064, 0x604A, 0x9065, + 0x604B, 0xC1B5, 0x604C, 0x9066, 0x604D, 0xBBD0, 0x604E, 0x9067, + 0x604F, 0x9068, 0x6050, 0xBFD6, 0x6051, 0x9069, 0x6052, 0xBAE3, + 0x6053, 0x906A, 0x6054, 0x906B, 0x6055, 0xCBA1, 0x6056, 0x906C, + 0x6057, 0x906D, 0x6058, 0x906E, 0x6059, 0xEDA6, 0x605A, 0xEDA3, + 0x605B, 0x906F, 0x605C, 0x9070, 0x605D, 0xEDA2, 0x605E, 0x9071, + 0x605F, 0x9072, 0x6060, 0x9073, 0x6061, 0x9074, 0x6062, 0xBBD6, + 0x6063, 0xEDA7, 0x6064, 0xD0F4, 0x6065, 0x9075, 0x6066, 0x9076, + 0x6067, 0xEDA4, 0x6068, 0xBADE, 0x6069, 0xB6F7, 0x606A, 0xE3A1, + 0x606B, 0xB6B2, 0x606C, 0xCCF1, 0x606D, 0xB9A7, 0x606E, 0x9077, + 0x606F, 0xCFA2, 0x6070, 0xC7A1, 0x6071, 0x9078, 0x6072, 0x9079, + 0x6073, 0xBFD2, 0x6074, 0x907A, 0x6075, 0x907B, 0x6076, 0xB6F1, + 0x6077, 0x907C, 0x6078, 0xE2FA, 0x6079, 0xE2FB, 0x607A, 0xE2FD, + 0x607B, 0xE2FC, 0x607C, 0xC4D5, 0x607D, 0xE3A2, 0x607E, 0x907D, + 0x607F, 0xD3C1, 0x6080, 0x907E, 0x6081, 0x9080, 0x6082, 0x9081, + 0x6083, 0xE3A7, 0x6084, 0xC7C4, 0x6085, 0x9082, 0x6086, 0x9083, + 0x6087, 0x9084, 0x6088, 0x9085, 0x6089, 0xCFA4, 0x608A, 0x9086, + 0x608B, 0x9087, 0x608C, 0xE3A9, 0x608D, 0xBAB7, 0x608E, 0x9088, + 0x608F, 0x9089, 0x6090, 0x908A, 0x6091, 0x908B, 0x6092, 0xE3A8, + 0x6093, 0x908C, 0x6094, 0xBBDA, 0x6095, 0x908D, 0x6096, 0xE3A3, + 0x6097, 0x908E, 0x6098, 0x908F, 0x6099, 0x9090, 0x609A, 0xE3A4, + 0x609B, 0xE3AA, 0x609C, 0x9091, 0x609D, 0xE3A6, 0x609E, 0x9092, + 0x609F, 0xCEF2, 0x60A0, 0xD3C6, 0x60A1, 0x9093, 0x60A2, 0x9094, + 0x60A3, 0xBBBC, 0x60A4, 0x9095, 0x60A5, 0x9096, 0x60A6, 0xD4C3, + 0x60A7, 0x9097, 0x60A8, 0xC4FA, 0x60A9, 0x9098, 0x60AA, 0x9099, + 0x60AB, 0xEDA8, 0x60AC, 0xD0FC, 0x60AD, 0xE3A5, 0x60AE, 0x909A, + 0x60AF, 0xC3F5, 0x60B0, 0x909B, 0x60B1, 0xE3AD, 0x60B2, 0xB1AF, + 0x60B3, 0x909C, 0x60B4, 0xE3B2, 0x60B5, 0x909D, 0x60B6, 0x909E, + 0x60B7, 0x909F, 0x60B8, 0xBCC2, 0x60B9, 0x90A0, 0x60BA, 0x90A1, + 0x60BB, 0xE3AC, 0x60BC, 0xB5BF, 0x60BD, 0x90A2, 0x60BE, 0x90A3, + 0x60BF, 0x90A4, 0x60C0, 0x90A5, 0x60C1, 0x90A6, 0x60C2, 0x90A7, + 0x60C3, 0x90A8, 0x60C4, 0x90A9, 0x60C5, 0xC7E9, 0x60C6, 0xE3B0, + 0x60C7, 0x90AA, 0x60C8, 0x90AB, 0x60C9, 0x90AC, 0x60CA, 0xBEAA, + 0x60CB, 0xCDEF, 0x60CC, 0x90AD, 0x60CD, 0x90AE, 0x60CE, 0x90AF, + 0x60CF, 0x90B0, 0x60D0, 0x90B1, 0x60D1, 0xBBF3, 0x60D2, 0x90B2, + 0x60D3, 0x90B3, 0x60D4, 0x90B4, 0x60D5, 0xCCE8, 0x60D6, 0x90B5, + 0x60D7, 0x90B6, 0x60D8, 0xE3AF, 0x60D9, 0x90B7, 0x60DA, 0xE3B1, + 0x60DB, 0x90B8, 0x60DC, 0xCFA7, 0x60DD, 0xE3AE, 0x60DE, 0x90B9, + 0x60DF, 0xCEA9, 0x60E0, 0xBBDD, 0x60E1, 0x90BA, 0x60E2, 0x90BB, + 0x60E3, 0x90BC, 0x60E4, 0x90BD, 0x60E5, 0x90BE, 0x60E6, 0xB5EB, + 0x60E7, 0xBEE5, 0x60E8, 0xB2D2, 0x60E9, 0xB3CD, 0x60EA, 0x90BF, + 0x60EB, 0xB1B9, 0x60EC, 0xE3AB, 0x60ED, 0xB2D1, 0x60EE, 0xB5AC, + 0x60EF, 0xB9DF, 0x60F0, 0xB6E8, 0x60F1, 0x90C0, 0x60F2, 0x90C1, + 0x60F3, 0xCFEB, 0x60F4, 0xE3B7, 0x60F5, 0x90C2, 0x60F6, 0xBBCC, + 0x60F7, 0x90C3, 0x60F8, 0x90C4, 0x60F9, 0xC8C7, 0x60FA, 0xD0CA, + 0x60FB, 0x90C5, 0x60FC, 0x90C6, 0x60FD, 0x90C7, 0x60FE, 0x90C8, + 0x60FF, 0x90C9, 0x6100, 0xE3B8, 0x6101, 0xB3EE, 0x6102, 0x90CA, + 0x6103, 0x90CB, 0x6104, 0x90CC, 0x6105, 0x90CD, 0x6106, 0xEDA9, + 0x6107, 0x90CE, 0x6108, 0xD3FA, 0x6109, 0xD3E4, 0x610A, 0x90CF, + 0x610B, 0x90D0, 0x610C, 0x90D1, 0x610D, 0xEDAA, 0x610E, 0xE3B9, + 0x610F, 0xD2E2, 0x6110, 0x90D2, 0x6111, 0x90D3, 0x6112, 0x90D4, + 0x6113, 0x90D5, 0x6114, 0x90D6, 0x6115, 0xE3B5, 0x6116, 0x90D7, + 0x6117, 0x90D8, 0x6118, 0x90D9, 0x6119, 0x90DA, 0x611A, 0xD3DE, + 0x611B, 0x90DB, 0x611C, 0x90DC, 0x611D, 0x90DD, 0x611E, 0x90DE, + 0x611F, 0xB8D0, 0x6120, 0xE3B3, 0x6121, 0x90DF, 0x6122, 0x90E0, + 0x6123, 0xE3B6, 0x6124, 0xB7DF, 0x6125, 0x90E1, 0x6126, 0xE3B4, + 0x6127, 0xC0A2, 0x6128, 0x90E2, 0x6129, 0x90E3, 0x612A, 0x90E4, + 0x612B, 0xE3BA, 0x612C, 0x90E5, 0x612D, 0x90E6, 0x612E, 0x90E7, + 0x612F, 0x90E8, 0x6130, 0x90E9, 0x6131, 0x90EA, 0x6132, 0x90EB, + 0x6133, 0x90EC, 0x6134, 0x90ED, 0x6135, 0x90EE, 0x6136, 0x90EF, + 0x6137, 0x90F0, 0x6138, 0x90F1, 0x6139, 0x90F2, 0x613A, 0x90F3, + 0x613B, 0x90F4, 0x613C, 0x90F5, 0x613D, 0x90F6, 0x613E, 0x90F7, + 0x613F, 0xD4B8, 0x6140, 0x90F8, 0x6141, 0x90F9, 0x6142, 0x90FA, + 0x6143, 0x90FB, 0x6144, 0x90FC, 0x6145, 0x90FD, 0x6146, 0x90FE, + 0x6147, 0x9140, 0x6148, 0xB4C8, 0x6149, 0x9141, 0x614A, 0xE3BB, + 0x614B, 0x9142, 0x614C, 0xBBC5, 0x614D, 0x9143, 0x614E, 0xC9F7, + 0x614F, 0x9144, 0x6150, 0x9145, 0x6151, 0xC9E5, 0x6152, 0x9146, + 0x6153, 0x9147, 0x6154, 0x9148, 0x6155, 0xC4BD, 0x6156, 0x9149, + 0x6157, 0x914A, 0x6158, 0x914B, 0x6159, 0x914C, 0x615A, 0x914D, + 0x615B, 0x914E, 0x615C, 0x914F, 0x615D, 0xEDAB, 0x615E, 0x9150, + 0x615F, 0x9151, 0x6160, 0x9152, 0x6161, 0x9153, 0x6162, 0xC2FD, + 0x6163, 0x9154, 0x6164, 0x9155, 0x6165, 0x9156, 0x6166, 0x9157, + 0x6167, 0xBBDB, 0x6168, 0xBFAE, 0x6169, 0x9158, 0x616A, 0x9159, + 0x616B, 0x915A, 0x616C, 0x915B, 0x616D, 0x915C, 0x616E, 0x915D, + 0x616F, 0x915E, 0x6170, 0xCEBF, 0x6171, 0x915F, 0x6172, 0x9160, + 0x6173, 0x9161, 0x6174, 0x9162, 0x6175, 0xE3BC, 0x6176, 0x9163, + 0x6177, 0xBFB6, 0x6178, 0x9164, 0x6179, 0x9165, 0x617A, 0x9166, + 0x617B, 0x9167, 0x617C, 0x9168, 0x617D, 0x9169, 0x617E, 0x916A, + 0x617F, 0x916B, 0x6180, 0x916C, 0x6181, 0x916D, 0x6182, 0x916E, + 0x6183, 0x916F, 0x6184, 0x9170, 0x6185, 0x9171, 0x6186, 0x9172, + 0x6187, 0x9173, 0x6188, 0x9174, 0x6189, 0x9175, 0x618A, 0x9176, + 0x618B, 0xB1EF, 0x618C, 0x9177, 0x618D, 0x9178, 0x618E, 0xD4F7, + 0x618F, 0x9179, 0x6190, 0x917A, 0x6191, 0x917B, 0x6192, 0x917C, + 0x6193, 0x917D, 0x6194, 0xE3BE, 0x6195, 0x917E, 0x6196, 0x9180, + 0x6197, 0x9181, 0x6198, 0x9182, 0x6199, 0x9183, 0x619A, 0x9184, + 0x619B, 0x9185, 0x619C, 0x9186, 0x619D, 0xEDAD, 0x619E, 0x9187, + 0x619F, 0x9188, 0x61A0, 0x9189, 0x61A1, 0x918A, 0x61A2, 0x918B, + 0x61A3, 0x918C, 0x61A4, 0x918D, 0x61A5, 0x918E, 0x61A6, 0x918F, + 0x61A7, 0xE3BF, 0x61A8, 0xBAA9, 0x61A9, 0xEDAC, 0x61AA, 0x9190, + 0x61AB, 0x9191, 0x61AC, 0xE3BD, 0x61AD, 0x9192, 0x61AE, 0x9193, + 0x61AF, 0x9194, 0x61B0, 0x9195, 0x61B1, 0x9196, 0x61B2, 0x9197, + 0x61B3, 0x9198, 0x61B4, 0x9199, 0x61B5, 0x919A, 0x61B6, 0x919B, + 0x61B7, 0xE3C0, 0x61B8, 0x919C, 0x61B9, 0x919D, 0x61BA, 0x919E, + 0x61BB, 0x919F, 0x61BC, 0x91A0, 0x61BD, 0x91A1, 0x61BE, 0xBAB6, + 0x61BF, 0x91A2, 0x61C0, 0x91A3, 0x61C1, 0x91A4, 0x61C2, 0xB6AE, + 0x61C3, 0x91A5, 0x61C4, 0x91A6, 0x61C5, 0x91A7, 0x61C6, 0x91A8, + 0x61C7, 0x91A9, 0x61C8, 0xD0B8, 0x61C9, 0x91AA, 0x61CA, 0xB0C3, + 0x61CB, 0xEDAE, 0x61CC, 0x91AB, 0x61CD, 0x91AC, 0x61CE, 0x91AD, + 0x61CF, 0x91AE, 0x61D0, 0x91AF, 0x61D1, 0xEDAF, 0x61D2, 0xC0C1, + 0x61D3, 0x91B0, 0x61D4, 0xE3C1, 0x61D5, 0x91B1, 0x61D6, 0x91B2, + 0x61D7, 0x91B3, 0x61D8, 0x91B4, 0x61D9, 0x91B5, 0x61DA, 0x91B6, + 0x61DB, 0x91B7, 0x61DC, 0x91B8, 0x61DD, 0x91B9, 0x61DE, 0x91BA, + 0x61DF, 0x91BB, 0x61E0, 0x91BC, 0x61E1, 0x91BD, 0x61E2, 0x91BE, + 0x61E3, 0x91BF, 0x61E4, 0x91C0, 0x61E5, 0x91C1, 0x61E6, 0xC5B3, + 0x61E7, 0x91C2, 0x61E8, 0x91C3, 0x61E9, 0x91C4, 0x61EA, 0x91C5, + 0x61EB, 0x91C6, 0x61EC, 0x91C7, 0x61ED, 0x91C8, 0x61EE, 0x91C9, + 0x61EF, 0x91CA, 0x61F0, 0x91CB, 0x61F1, 0x91CC, 0x61F2, 0x91CD, + 0x61F3, 0x91CE, 0x61F4, 0x91CF, 0x61F5, 0xE3C2, 0x61F6, 0x91D0, + 0x61F7, 0x91D1, 0x61F8, 0x91D2, 0x61F9, 0x91D3, 0x61FA, 0x91D4, + 0x61FB, 0x91D5, 0x61FC, 0x91D6, 0x61FD, 0x91D7, 0x61FE, 0x91D8, + 0x61FF, 0xDCB2, 0x6200, 0x91D9, 0x6201, 0x91DA, 0x6202, 0x91DB, + 0x6203, 0x91DC, 0x6204, 0x91DD, 0x6205, 0x91DE, 0x6206, 0xEDB0, + 0x6207, 0x91DF, 0x6208, 0xB8EA, 0x6209, 0x91E0, 0x620A, 0xCEEC, + 0x620B, 0xEAA7, 0x620C, 0xD0E7, 0x620D, 0xCAF9, 0x620E, 0xC8D6, + 0x620F, 0xCFB7, 0x6210, 0xB3C9, 0x6211, 0xCED2, 0x6212, 0xBDE4, + 0x6213, 0x91E1, 0x6214, 0x91E2, 0x6215, 0xE3DE, 0x6216, 0xBBF2, + 0x6217, 0xEAA8, 0x6218, 0xD5BD, 0x6219, 0x91E3, 0x621A, 0xC6DD, + 0x621B, 0xEAA9, 0x621C, 0x91E4, 0x621D, 0x91E5, 0x621E, 0x91E6, + 0x621F, 0xEAAA, 0x6220, 0x91E7, 0x6221, 0xEAAC, 0x6222, 0xEAAB, + 0x6223, 0x91E8, 0x6224, 0xEAAE, 0x6225, 0xEAAD, 0x6226, 0x91E9, + 0x6227, 0x91EA, 0x6228, 0x91EB, 0x6229, 0x91EC, 0x622A, 0xBDD8, + 0x622B, 0x91ED, 0x622C, 0xEAAF, 0x622D, 0x91EE, 0x622E, 0xC2BE, + 0x622F, 0x91EF, 0x6230, 0x91F0, 0x6231, 0x91F1, 0x6232, 0x91F2, + 0x6233, 0xB4C1, 0x6234, 0xB4F7, 0x6235, 0x91F3, 0x6236, 0x91F4, + 0x6237, 0xBBA7, 0x6238, 0x91F5, 0x6239, 0x91F6, 0x623A, 0x91F7, + 0x623B, 0x91F8, 0x623C, 0x91F9, 0x623D, 0xECE6, 0x623E, 0xECE5, + 0x623F, 0xB7BF, 0x6240, 0xCBF9, 0x6241, 0xB1E2, 0x6242, 0x91FA, + 0x6243, 0xECE7, 0x6244, 0x91FB, 0x6245, 0x91FC, 0x6246, 0x91FD, + 0x6247, 0xC9C8, 0x6248, 0xECE8, 0x6249, 0xECE9, 0x624A, 0x91FE, + 0x624B, 0xCAD6, 0x624C, 0xDED0, 0x624D, 0xB2C5, 0x624E, 0xD4FA, + 0x624F, 0x9240, 0x6250, 0x9241, 0x6251, 0xC6CB, 0x6252, 0xB0C7, + 0x6253, 0xB4F2, 0x6254, 0xC8D3, 0x6255, 0x9242, 0x6256, 0x9243, + 0x6257, 0x9244, 0x6258, 0xCDD0, 0x6259, 0x9245, 0x625A, 0x9246, + 0x625B, 0xBFB8, 0x625C, 0x9247, 0x625D, 0x9248, 0x625E, 0x9249, + 0x625F, 0x924A, 0x6260, 0x924B, 0x6261, 0x924C, 0x6262, 0x924D, + 0x6263, 0xBFDB, 0x6264, 0x924E, 0x6265, 0x924F, 0x6266, 0xC7A4, + 0x6267, 0xD6B4, 0x6268, 0x9250, 0x6269, 0xC0A9, 0x626A, 0xDED1, + 0x626B, 0xC9A8, 0x626C, 0xD1EF, 0x626D, 0xC5A4, 0x626E, 0xB0E7, + 0x626F, 0xB3B6, 0x6270, 0xC8C5, 0x6271, 0x9251, 0x6272, 0x9252, + 0x6273, 0xB0E2, 0x6274, 0x9253, 0x6275, 0x9254, 0x6276, 0xB7F6, + 0x6277, 0x9255, 0x6278, 0x9256, 0x6279, 0xC5FA, 0x627A, 0x9257, + 0x627B, 0x9258, 0x627C, 0xB6F3, 0x627D, 0x9259, 0x627E, 0xD5D2, + 0x627F, 0xB3D0, 0x6280, 0xBCBC, 0x6281, 0x925A, 0x6282, 0x925B, + 0x6283, 0x925C, 0x6284, 0xB3AD, 0x6285, 0x925D, 0x6286, 0x925E, + 0x6287, 0x925F, 0x6288, 0x9260, 0x6289, 0xBEF1, 0x628A, 0xB0D1, + 0x628B, 0x9261, 0x628C, 0x9262, 0x628D, 0x9263, 0x628E, 0x9264, + 0x628F, 0x9265, 0x6290, 0x9266, 0x6291, 0xD2D6, 0x6292, 0xCAE3, + 0x6293, 0xD7A5, 0x6294, 0x9267, 0x6295, 0xCDB6, 0x6296, 0xB6B6, + 0x6297, 0xBFB9, 0x6298, 0xD5DB, 0x6299, 0x9268, 0x629A, 0xB8A7, + 0x629B, 0xC5D7, 0x629C, 0x9269, 0x629D, 0x926A, 0x629E, 0x926B, + 0x629F, 0xDED2, 0x62A0, 0xBFD9, 0x62A1, 0xC2D5, 0x62A2, 0xC7C0, + 0x62A3, 0x926C, 0x62A4, 0xBBA4, 0x62A5, 0xB1A8, 0x62A6, 0x926D, + 0x62A7, 0x926E, 0x62A8, 0xC5EA, 0x62A9, 0x926F, 0x62AA, 0x9270, + 0x62AB, 0xC5FB, 0x62AC, 0xCCA7, 0x62AD, 0x9271, 0x62AE, 0x9272, + 0x62AF, 0x9273, 0x62B0, 0x9274, 0x62B1, 0xB1A7, 0x62B2, 0x9275, + 0x62B3, 0x9276, 0x62B4, 0x9277, 0x62B5, 0xB5D6, 0x62B6, 0x9278, + 0x62B7, 0x9279, 0x62B8, 0x927A, 0x62B9, 0xC4A8, 0x62BA, 0x927B, + 0x62BB, 0xDED3, 0x62BC, 0xD1BA, 0x62BD, 0xB3E9, 0x62BE, 0x927C, + 0x62BF, 0xC3F2, 0x62C0, 0x927D, 0x62C1, 0x927E, 0x62C2, 0xB7F7, + 0x62C3, 0x9280, 0x62C4, 0xD6F4, 0x62C5, 0xB5A3, 0x62C6, 0xB2F0, + 0x62C7, 0xC4B4, 0x62C8, 0xC4E9, 0x62C9, 0xC0AD, 0x62CA, 0xDED4, + 0x62CB, 0x9281, 0x62CC, 0xB0E8, 0x62CD, 0xC5C4, 0x62CE, 0xC1E0, + 0x62CF, 0x9282, 0x62D0, 0xB9D5, 0x62D1, 0x9283, 0x62D2, 0xBEDC, + 0x62D3, 0xCDD8, 0x62D4, 0xB0CE, 0x62D5, 0x9284, 0x62D6, 0xCDCF, + 0x62D7, 0xDED6, 0x62D8, 0xBED0, 0x62D9, 0xD7BE, 0x62DA, 0xDED5, + 0x62DB, 0xD5D0, 0x62DC, 0xB0DD, 0x62DD, 0x9285, 0x62DE, 0x9286, + 0x62DF, 0xC4E2, 0x62E0, 0x9287, 0x62E1, 0x9288, 0x62E2, 0xC2A3, + 0x62E3, 0xBCF0, 0x62E4, 0x9289, 0x62E5, 0xD3B5, 0x62E6, 0xC0B9, + 0x62E7, 0xC5A1, 0x62E8, 0xB2A6, 0x62E9, 0xD4F1, 0x62EA, 0x928A, + 0x62EB, 0x928B, 0x62EC, 0xC0A8, 0x62ED, 0xCAC3, 0x62EE, 0xDED7, + 0x62EF, 0xD5FC, 0x62F0, 0x928C, 0x62F1, 0xB9B0, 0x62F2, 0x928D, + 0x62F3, 0xC8AD, 0x62F4, 0xCBA9, 0x62F5, 0x928E, 0x62F6, 0xDED9, + 0x62F7, 0xBFBD, 0x62F8, 0x928F, 0x62F9, 0x9290, 0x62FA, 0x9291, + 0x62FB, 0x9292, 0x62FC, 0xC6B4, 0x62FD, 0xD7A7, 0x62FE, 0xCAB0, + 0x62FF, 0xC4C3, 0x6300, 0x9293, 0x6301, 0xB3D6, 0x6302, 0xB9D2, + 0x6303, 0x9294, 0x6304, 0x9295, 0x6305, 0x9296, 0x6306, 0x9297, + 0x6307, 0xD6B8, 0x6308, 0xEAFC, 0x6309, 0xB0B4, 0x630A, 0x9298, + 0x630B, 0x9299, 0x630C, 0x929A, 0x630D, 0x929B, 0x630E, 0xBFE6, + 0x630F, 0x929C, 0x6310, 0x929D, 0x6311, 0xCCF4, 0x6312, 0x929E, + 0x6313, 0x929F, 0x6314, 0x92A0, 0x6315, 0x92A1, 0x6316, 0xCDDA, + 0x6317, 0x92A2, 0x6318, 0x92A3, 0x6319, 0x92A4, 0x631A, 0xD6BF, + 0x631B, 0xC2CE, 0x631C, 0x92A5, 0x631D, 0xCECE, 0x631E, 0xCCA2, + 0x631F, 0xD0AE, 0x6320, 0xC4D3, 0x6321, 0xB5B2, 0x6322, 0xDED8, + 0x6323, 0xD5F5, 0x6324, 0xBCB7, 0x6325, 0xBBD3, 0x6326, 0x92A6, + 0x6327, 0x92A7, 0x6328, 0xB0A4, 0x6329, 0x92A8, 0x632A, 0xC5B2, + 0x632B, 0xB4EC, 0x632C, 0x92A9, 0x632D, 0x92AA, 0x632E, 0x92AB, + 0x632F, 0xD5F1, 0x6330, 0x92AC, 0x6331, 0x92AD, 0x6332, 0xEAFD, + 0x6333, 0x92AE, 0x6334, 0x92AF, 0x6335, 0x92B0, 0x6336, 0x92B1, + 0x6337, 0x92B2, 0x6338, 0x92B3, 0x6339, 0xDEDA, 0x633A, 0xCDA6, + 0x633B, 0x92B4, 0x633C, 0x92B5, 0x633D, 0xCDEC, 0x633E, 0x92B6, + 0x633F, 0x92B7, 0x6340, 0x92B8, 0x6341, 0x92B9, 0x6342, 0xCEE6, + 0x6343, 0xDEDC, 0x6344, 0x92BA, 0x6345, 0xCDB1, 0x6346, 0xC0A6, + 0x6347, 0x92BB, 0x6348, 0x92BC, 0x6349, 0xD7BD, 0x634A, 0x92BD, + 0x634B, 0xDEDB, 0x634C, 0xB0C6, 0x634D, 0xBAB4, 0x634E, 0xC9D3, + 0x634F, 0xC4F3, 0x6350, 0xBEE8, 0x6351, 0x92BE, 0x6352, 0x92BF, + 0x6353, 0x92C0, 0x6354, 0x92C1, 0x6355, 0xB2B6, 0x6356, 0x92C2, + 0x6357, 0x92C3, 0x6358, 0x92C4, 0x6359, 0x92C5, 0x635A, 0x92C6, + 0x635B, 0x92C7, 0x635C, 0x92C8, 0x635D, 0x92C9, 0x635E, 0xC0CC, + 0x635F, 0xCBF0, 0x6360, 0x92CA, 0x6361, 0xBCF1, 0x6362, 0xBBBB, + 0x6363, 0xB5B7, 0x6364, 0x92CB, 0x6365, 0x92CC, 0x6366, 0x92CD, + 0x6367, 0xC5F5, 0x6368, 0x92CE, 0x6369, 0xDEE6, 0x636A, 0x92CF, + 0x636B, 0x92D0, 0x636C, 0x92D1, 0x636D, 0xDEE3, 0x636E, 0xBEDD, + 0x636F, 0x92D2, 0x6370, 0x92D3, 0x6371, 0xDEDF, 0x6372, 0x92D4, + 0x6373, 0x92D5, 0x6374, 0x92D6, 0x6375, 0x92D7, 0x6376, 0xB4B7, + 0x6377, 0xBDDD, 0x6378, 0x92D8, 0x6379, 0x92D9, 0x637A, 0xDEE0, + 0x637B, 0xC4ED, 0x637C, 0x92DA, 0x637D, 0x92DB, 0x637E, 0x92DC, + 0x637F, 0x92DD, 0x6380, 0xCFC6, 0x6381, 0x92DE, 0x6382, 0xB5E0, + 0x6383, 0x92DF, 0x6384, 0x92E0, 0x6385, 0x92E1, 0x6386, 0x92E2, + 0x6387, 0xB6DE, 0x6388, 0xCADA, 0x6389, 0xB5F4, 0x638A, 0xDEE5, + 0x638B, 0x92E3, 0x638C, 0xD5C6, 0x638D, 0x92E4, 0x638E, 0xDEE1, + 0x638F, 0xCCCD, 0x6390, 0xC6FE, 0x6391, 0x92E5, 0x6392, 0xC5C5, + 0x6393, 0x92E6, 0x6394, 0x92E7, 0x6395, 0x92E8, 0x6396, 0xD2B4, + 0x6397, 0x92E9, 0x6398, 0xBEF2, 0x6399, 0x92EA, 0x639A, 0x92EB, + 0x639B, 0x92EC, 0x639C, 0x92ED, 0x639D, 0x92EE, 0x639E, 0x92EF, + 0x639F, 0x92F0, 0x63A0, 0xC2D3, 0x63A1, 0x92F1, 0x63A2, 0xCCBD, + 0x63A3, 0xB3B8, 0x63A4, 0x92F2, 0x63A5, 0xBDD3, 0x63A6, 0x92F3, + 0x63A7, 0xBFD8, 0x63A8, 0xCDC6, 0x63A9, 0xD1DA, 0x63AA, 0xB4EB, + 0x63AB, 0x92F4, 0x63AC, 0xDEE4, 0x63AD, 0xDEDD, 0x63AE, 0xDEE7, + 0x63AF, 0x92F5, 0x63B0, 0xEAFE, 0x63B1, 0x92F6, 0x63B2, 0x92F7, + 0x63B3, 0xC2B0, 0x63B4, 0xDEE2, 0x63B5, 0x92F8, 0x63B6, 0x92F9, + 0x63B7, 0xD6C0, 0x63B8, 0xB5A7, 0x63B9, 0x92FA, 0x63BA, 0xB2F4, + 0x63BB, 0x92FB, 0x63BC, 0xDEE8, 0x63BD, 0x92FC, 0x63BE, 0xDEF2, + 0x63BF, 0x92FD, 0x63C0, 0x92FE, 0x63C1, 0x9340, 0x63C2, 0x9341, + 0x63C3, 0x9342, 0x63C4, 0xDEED, 0x63C5, 0x9343, 0x63C6, 0xDEF1, + 0x63C7, 0x9344, 0x63C8, 0x9345, 0x63C9, 0xC8E0, 0x63CA, 0x9346, + 0x63CB, 0x9347, 0x63CC, 0x9348, 0x63CD, 0xD7E1, 0x63CE, 0xDEEF, + 0x63CF, 0xC3E8, 0x63D0, 0xCCE1, 0x63D1, 0x9349, 0x63D2, 0xB2E5, + 0x63D3, 0x934A, 0x63D4, 0x934B, 0x63D5, 0x934C, 0x63D6, 0xD2BE, + 0x63D7, 0x934D, 0x63D8, 0x934E, 0x63D9, 0x934F, 0x63DA, 0x9350, + 0x63DB, 0x9351, 0x63DC, 0x9352, 0x63DD, 0x9353, 0x63DE, 0xDEEE, + 0x63DF, 0x9354, 0x63E0, 0xDEEB, 0x63E1, 0xCED5, 0x63E2, 0x9355, + 0x63E3, 0xB4A7, 0x63E4, 0x9356, 0x63E5, 0x9357, 0x63E6, 0x9358, + 0x63E7, 0x9359, 0x63E8, 0x935A, 0x63E9, 0xBFAB, 0x63EA, 0xBEBE, + 0x63EB, 0x935B, 0x63EC, 0x935C, 0x63ED, 0xBDD2, 0x63EE, 0x935D, + 0x63EF, 0x935E, 0x63F0, 0x935F, 0x63F1, 0x9360, 0x63F2, 0xDEE9, + 0x63F3, 0x9361, 0x63F4, 0xD4AE, 0x63F5, 0x9362, 0x63F6, 0xDEDE, + 0x63F7, 0x9363, 0x63F8, 0xDEEA, 0x63F9, 0x9364, 0x63FA, 0x9365, + 0x63FB, 0x9366, 0x63FC, 0x9367, 0x63FD, 0xC0BF, 0x63FE, 0x9368, + 0x63FF, 0xDEEC, 0x6400, 0xB2F3, 0x6401, 0xB8E9, 0x6402, 0xC2A7, + 0x6403, 0x9369, 0x6404, 0x936A, 0x6405, 0xBDC1, 0x6406, 0x936B, + 0x6407, 0x936C, 0x6408, 0x936D, 0x6409, 0x936E, 0x640A, 0x936F, + 0x640B, 0xDEF5, 0x640C, 0xDEF8, 0x640D, 0x9370, 0x640E, 0x9371, + 0x640F, 0xB2AB, 0x6410, 0xB4A4, 0x6411, 0x9372, 0x6412, 0x9373, + 0x6413, 0xB4EA, 0x6414, 0xC9A6, 0x6415, 0x9374, 0x6416, 0x9375, + 0x6417, 0x9376, 0x6418, 0x9377, 0x6419, 0x9378, 0x641A, 0x9379, + 0x641B, 0xDEF6, 0x641C, 0xCBD1, 0x641D, 0x937A, 0x641E, 0xB8E3, + 0x641F, 0x937B, 0x6420, 0xDEF7, 0x6421, 0xDEFA, 0x6422, 0x937C, + 0x6423, 0x937D, 0x6424, 0x937E, 0x6425, 0x9380, 0x6426, 0xDEF9, + 0x6427, 0x9381, 0x6428, 0x9382, 0x6429, 0x9383, 0x642A, 0xCCC2, + 0x642B, 0x9384, 0x642C, 0xB0E1, 0x642D, 0xB4EE, 0x642E, 0x9385, + 0x642F, 0x9386, 0x6430, 0x9387, 0x6431, 0x9388, 0x6432, 0x9389, + 0x6433, 0x938A, 0x6434, 0xE5BA, 0x6435, 0x938B, 0x6436, 0x938C, + 0x6437, 0x938D, 0x6438, 0x938E, 0x6439, 0x938F, 0x643A, 0xD0AF, + 0x643B, 0x9390, 0x643C, 0x9391, 0x643D, 0xB2EB, 0x643E, 0x9392, + 0x643F, 0xEBA1, 0x6440, 0x9393, 0x6441, 0xDEF4, 0x6442, 0x9394, + 0x6443, 0x9395, 0x6444, 0xC9E3, 0x6445, 0xDEF3, 0x6446, 0xB0DA, + 0x6447, 0xD2A1, 0x6448, 0xB1F7, 0x6449, 0x9396, 0x644A, 0xCCAF, + 0x644B, 0x9397, 0x644C, 0x9398, 0x644D, 0x9399, 0x644E, 0x939A, + 0x644F, 0x939B, 0x6450, 0x939C, 0x6451, 0x939D, 0x6452, 0xDEF0, + 0x6453, 0x939E, 0x6454, 0xCBA4, 0x6455, 0x939F, 0x6456, 0x93A0, + 0x6457, 0x93A1, 0x6458, 0xD5AA, 0x6459, 0x93A2, 0x645A, 0x93A3, + 0x645B, 0x93A4, 0x645C, 0x93A5, 0x645D, 0x93A6, 0x645E, 0xDEFB, + 0x645F, 0x93A7, 0x6460, 0x93A8, 0x6461, 0x93A9, 0x6462, 0x93AA, + 0x6463, 0x93AB, 0x6464, 0x93AC, 0x6465, 0x93AD, 0x6466, 0x93AE, + 0x6467, 0xB4DD, 0x6468, 0x93AF, 0x6469, 0xC4A6, 0x646A, 0x93B0, + 0x646B, 0x93B1, 0x646C, 0x93B2, 0x646D, 0xDEFD, 0x646E, 0x93B3, + 0x646F, 0x93B4, 0x6470, 0x93B5, 0x6471, 0x93B6, 0x6472, 0x93B7, + 0x6473, 0x93B8, 0x6474, 0x93B9, 0x6475, 0x93BA, 0x6476, 0x93BB, + 0x6477, 0x93BC, 0x6478, 0xC3FE, 0x6479, 0xC4A1, 0x647A, 0xDFA1, + 0x647B, 0x93BD, 0x647C, 0x93BE, 0x647D, 0x93BF, 0x647E, 0x93C0, + 0x647F, 0x93C1, 0x6480, 0x93C2, 0x6481, 0x93C3, 0x6482, 0xC1CC, + 0x6483, 0x93C4, 0x6484, 0xDEFC, 0x6485, 0xBEEF, 0x6486, 0x93C5, + 0x6487, 0xC6B2, 0x6488, 0x93C6, 0x6489, 0x93C7, 0x648A, 0x93C8, + 0x648B, 0x93C9, 0x648C, 0x93CA, 0x648D, 0x93CB, 0x648E, 0x93CC, + 0x648F, 0x93CD, 0x6490, 0x93CE, 0x6491, 0xB3C5, 0x6492, 0xC8F6, + 0x6493, 0x93CF, 0x6494, 0x93D0, 0x6495, 0xCBBA, 0x6496, 0xDEFE, + 0x6497, 0x93D1, 0x6498, 0x93D2, 0x6499, 0xDFA4, 0x649A, 0x93D3, + 0x649B, 0x93D4, 0x649C, 0x93D5, 0x649D, 0x93D6, 0x649E, 0xD7B2, + 0x649F, 0x93D7, 0x64A0, 0x93D8, 0x64A1, 0x93D9, 0x64A2, 0x93DA, + 0x64A3, 0x93DB, 0x64A4, 0xB3B7, 0x64A5, 0x93DC, 0x64A6, 0x93DD, + 0x64A7, 0x93DE, 0x64A8, 0x93DF, 0x64A9, 0xC1C3, 0x64AA, 0x93E0, + 0x64AB, 0x93E1, 0x64AC, 0xC7CB, 0x64AD, 0xB2A5, 0x64AE, 0xB4E9, + 0x64AF, 0x93E2, 0x64B0, 0xD7AB, 0x64B1, 0x93E3, 0x64B2, 0x93E4, + 0x64B3, 0x93E5, 0x64B4, 0x93E6, 0x64B5, 0xC4EC, 0x64B6, 0x93E7, + 0x64B7, 0xDFA2, 0x64B8, 0xDFA3, 0x64B9, 0x93E8, 0x64BA, 0xDFA5, + 0x64BB, 0x93E9, 0x64BC, 0xBAB3, 0x64BD, 0x93EA, 0x64BE, 0x93EB, + 0x64BF, 0x93EC, 0x64C0, 0xDFA6, 0x64C1, 0x93ED, 0x64C2, 0xC0DE, + 0x64C3, 0x93EE, 0x64C4, 0x93EF, 0x64C5, 0xC9C3, 0x64C6, 0x93F0, + 0x64C7, 0x93F1, 0x64C8, 0x93F2, 0x64C9, 0x93F3, 0x64CA, 0x93F4, + 0x64CB, 0x93F5, 0x64CC, 0x93F6, 0x64CD, 0xB2D9, 0x64CE, 0xC7E6, + 0x64CF, 0x93F7, 0x64D0, 0xDFA7, 0x64D1, 0x93F8, 0x64D2, 0xC7DC, + 0x64D3, 0x93F9, 0x64D4, 0x93FA, 0x64D5, 0x93FB, 0x64D6, 0x93FC, + 0x64D7, 0xDFA8, 0x64D8, 0xEBA2, 0x64D9, 0x93FD, 0x64DA, 0x93FE, + 0x64DB, 0x9440, 0x64DC, 0x9441, 0x64DD, 0x9442, 0x64DE, 0xCBD3, + 0x64DF, 0x9443, 0x64E0, 0x9444, 0x64E1, 0x9445, 0x64E2, 0xDFAA, + 0x64E3, 0x9446, 0x64E4, 0xDFA9, 0x64E5, 0x9447, 0x64E6, 0xB2C1, + 0x64E7, 0x9448, 0x64E8, 0x9449, 0x64E9, 0x944A, 0x64EA, 0x944B, + 0x64EB, 0x944C, 0x64EC, 0x944D, 0x64ED, 0x944E, 0x64EE, 0x944F, + 0x64EF, 0x9450, 0x64F0, 0x9451, 0x64F1, 0x9452, 0x64F2, 0x9453, + 0x64F3, 0x9454, 0x64F4, 0x9455, 0x64F5, 0x9456, 0x64F6, 0x9457, + 0x64F7, 0x9458, 0x64F8, 0x9459, 0x64F9, 0x945A, 0x64FA, 0x945B, + 0x64FB, 0x945C, 0x64FC, 0x945D, 0x64FD, 0x945E, 0x64FE, 0x945F, + 0x64FF, 0x9460, 0x6500, 0xC5CA, 0x6501, 0x9461, 0x6502, 0x9462, + 0x6503, 0x9463, 0x6504, 0x9464, 0x6505, 0x9465, 0x6506, 0x9466, + 0x6507, 0x9467, 0x6508, 0x9468, 0x6509, 0xDFAB, 0x650A, 0x9469, + 0x650B, 0x946A, 0x650C, 0x946B, 0x650D, 0x946C, 0x650E, 0x946D, + 0x650F, 0x946E, 0x6510, 0x946F, 0x6511, 0x9470, 0x6512, 0xD4DC, + 0x6513, 0x9471, 0x6514, 0x9472, 0x6515, 0x9473, 0x6516, 0x9474, + 0x6517, 0x9475, 0x6518, 0xC8C1, 0x6519, 0x9476, 0x651A, 0x9477, + 0x651B, 0x9478, 0x651C, 0x9479, 0x651D, 0x947A, 0x651E, 0x947B, + 0x651F, 0x947C, 0x6520, 0x947D, 0x6521, 0x947E, 0x6522, 0x9480, + 0x6523, 0x9481, 0x6524, 0x9482, 0x6525, 0xDFAC, 0x6526, 0x9483, + 0x6527, 0x9484, 0x6528, 0x9485, 0x6529, 0x9486, 0x652A, 0x9487, + 0x652B, 0xBEF0, 0x652C, 0x9488, 0x652D, 0x9489, 0x652E, 0xDFAD, + 0x652F, 0xD6A7, 0x6530, 0x948A, 0x6531, 0x948B, 0x6532, 0x948C, + 0x6533, 0x948D, 0x6534, 0xEAB7, 0x6535, 0xEBB6, 0x6536, 0xCAD5, + 0x6537, 0x948E, 0x6538, 0xD8FC, 0x6539, 0xB8C4, 0x653A, 0x948F, + 0x653B, 0xB9A5, 0x653C, 0x9490, 0x653D, 0x9491, 0x653E, 0xB7C5, + 0x653F, 0xD5FE, 0x6540, 0x9492, 0x6541, 0x9493, 0x6542, 0x9494, + 0x6543, 0x9495, 0x6544, 0x9496, 0x6545, 0xB9CA, 0x6546, 0x9497, + 0x6547, 0x9498, 0x6548, 0xD0A7, 0x6549, 0xF4CD, 0x654A, 0x9499, + 0x654B, 0x949A, 0x654C, 0xB5D0, 0x654D, 0x949B, 0x654E, 0x949C, + 0x654F, 0xC3F4, 0x6550, 0x949D, 0x6551, 0xBEC8, 0x6552, 0x949E, + 0x6553, 0x949F, 0x6554, 0x94A0, 0x6555, 0xEBB7, 0x6556, 0xB0BD, + 0x6557, 0x94A1, 0x6558, 0x94A2, 0x6559, 0xBDCC, 0x655A, 0x94A3, + 0x655B, 0xC1B2, 0x655C, 0x94A4, 0x655D, 0xB1D6, 0x655E, 0xB3A8, + 0x655F, 0x94A5, 0x6560, 0x94A6, 0x6561, 0x94A7, 0x6562, 0xB8D2, + 0x6563, 0xC9A2, 0x6564, 0x94A8, 0x6565, 0x94A9, 0x6566, 0xB6D8, + 0x6567, 0x94AA, 0x6568, 0x94AB, 0x6569, 0x94AC, 0x656A, 0x94AD, + 0x656B, 0xEBB8, 0x656C, 0xBEB4, 0x656D, 0x94AE, 0x656E, 0x94AF, + 0x656F, 0x94B0, 0x6570, 0xCAFD, 0x6571, 0x94B1, 0x6572, 0xC7C3, + 0x6573, 0x94B2, 0x6574, 0xD5FB, 0x6575, 0x94B3, 0x6576, 0x94B4, + 0x6577, 0xB7F3, 0x6578, 0x94B5, 0x6579, 0x94B6, 0x657A, 0x94B7, + 0x657B, 0x94B8, 0x657C, 0x94B9, 0x657D, 0x94BA, 0x657E, 0x94BB, + 0x657F, 0x94BC, 0x6580, 0x94BD, 0x6581, 0x94BE, 0x6582, 0x94BF, + 0x6583, 0x94C0, 0x6584, 0x94C1, 0x6585, 0x94C2, 0x6586, 0x94C3, + 0x6587, 0xCEC4, 0x6588, 0x94C4, 0x6589, 0x94C5, 0x658A, 0x94C6, + 0x658B, 0xD5AB, 0x658C, 0xB1F3, 0x658D, 0x94C7, 0x658E, 0x94C8, + 0x658F, 0x94C9, 0x6590, 0xECB3, 0x6591, 0xB0DF, 0x6592, 0x94CA, + 0x6593, 0xECB5, 0x6594, 0x94CB, 0x6595, 0x94CC, 0x6596, 0x94CD, + 0x6597, 0xB6B7, 0x6598, 0x94CE, 0x6599, 0xC1CF, 0x659A, 0x94CF, + 0x659B, 0xF5FA, 0x659C, 0xD0B1, 0x659D, 0x94D0, 0x659E, 0x94D1, + 0x659F, 0xD5E5, 0x65A0, 0x94D2, 0x65A1, 0xCED3, 0x65A2, 0x94D3, + 0x65A3, 0x94D4, 0x65A4, 0xBDEF, 0x65A5, 0xB3E2, 0x65A6, 0x94D5, + 0x65A7, 0xB8AB, 0x65A8, 0x94D6, 0x65A9, 0xD5B6, 0x65AA, 0x94D7, + 0x65AB, 0xEDBD, 0x65AC, 0x94D8, 0x65AD, 0xB6CF, 0x65AE, 0x94D9, + 0x65AF, 0xCBB9, 0x65B0, 0xD0C2, 0x65B1, 0x94DA, 0x65B2, 0x94DB, + 0x65B3, 0x94DC, 0x65B4, 0x94DD, 0x65B5, 0x94DE, 0x65B6, 0x94DF, + 0x65B7, 0x94E0, 0x65B8, 0x94E1, 0x65B9, 0xB7BD, 0x65BA, 0x94E2, + 0x65BB, 0x94E3, 0x65BC, 0xECB6, 0x65BD, 0xCAA9, 0x65BE, 0x94E4, + 0x65BF, 0x94E5, 0x65C0, 0x94E6, 0x65C1, 0xC5D4, 0x65C2, 0x94E7, + 0x65C3, 0xECB9, 0x65C4, 0xECB8, 0x65C5, 0xC2C3, 0x65C6, 0xECB7, + 0x65C7, 0x94E8, 0x65C8, 0x94E9, 0x65C9, 0x94EA, 0x65CA, 0x94EB, + 0x65CB, 0xD0FD, 0x65CC, 0xECBA, 0x65CD, 0x94EC, 0x65CE, 0xECBB, + 0x65CF, 0xD7E5, 0x65D0, 0x94ED, 0x65D1, 0x94EE, 0x65D2, 0xECBC, + 0x65D3, 0x94EF, 0x65D4, 0x94F0, 0x65D5, 0x94F1, 0x65D6, 0xECBD, + 0x65D7, 0xC6EC, 0x65D8, 0x94F2, 0x65D9, 0x94F3, 0x65DA, 0x94F4, + 0x65DB, 0x94F5, 0x65DC, 0x94F6, 0x65DD, 0x94F7, 0x65DE, 0x94F8, + 0x65DF, 0x94F9, 0x65E0, 0xCEDE, 0x65E1, 0x94FA, 0x65E2, 0xBCC8, + 0x65E3, 0x94FB, 0x65E4, 0x94FC, 0x65E5, 0xC8D5, 0x65E6, 0xB5A9, + 0x65E7, 0xBEC9, 0x65E8, 0xD6BC, 0x65E9, 0xD4E7, 0x65EA, 0x94FD, + 0x65EB, 0x94FE, 0x65EC, 0xD1AE, 0x65ED, 0xD0F1, 0x65EE, 0xEAB8, + 0x65EF, 0xEAB9, 0x65F0, 0xEABA, 0x65F1, 0xBAB5, 0x65F2, 0x9540, + 0x65F3, 0x9541, 0x65F4, 0x9542, 0x65F5, 0x9543, 0x65F6, 0xCAB1, + 0x65F7, 0xBFF5, 0x65F8, 0x9544, 0x65F9, 0x9545, 0x65FA, 0xCDFA, + 0x65FB, 0x9546, 0x65FC, 0x9547, 0x65FD, 0x9548, 0x65FE, 0x9549, + 0x65FF, 0x954A, 0x6600, 0xEAC0, 0x6601, 0x954B, 0x6602, 0xB0BA, + 0x6603, 0xEABE, 0x6604, 0x954C, 0x6605, 0x954D, 0x6606, 0xC0A5, + 0x6607, 0x954E, 0x6608, 0x954F, 0x6609, 0x9550, 0x660A, 0xEABB, + 0x660B, 0x9551, 0x660C, 0xB2FD, 0x660D, 0x9552, 0x660E, 0xC3F7, + 0x660F, 0xBBE8, 0x6610, 0x9553, 0x6611, 0x9554, 0x6612, 0x9555, + 0x6613, 0xD2D7, 0x6614, 0xCEF4, 0x6615, 0xEABF, 0x6616, 0x9556, + 0x6617, 0x9557, 0x6618, 0x9558, 0x6619, 0xEABC, 0x661A, 0x9559, + 0x661B, 0x955A, 0x661C, 0x955B, 0x661D, 0xEAC3, 0x661E, 0x955C, + 0x661F, 0xD0C7, 0x6620, 0xD3B3, 0x6621, 0x955D, 0x6622, 0x955E, + 0x6623, 0x955F, 0x6624, 0x9560, 0x6625, 0xB4BA, 0x6626, 0x9561, + 0x6627, 0xC3C1, 0x6628, 0xD7F2, 0x6629, 0x9562, 0x662A, 0x9563, + 0x662B, 0x9564, 0x662C, 0x9565, 0x662D, 0xD5D1, 0x662E, 0x9566, + 0x662F, 0xCAC7, 0x6630, 0x9567, 0x6631, 0xEAC5, 0x6632, 0x9568, + 0x6633, 0x9569, 0x6634, 0xEAC4, 0x6635, 0xEAC7, 0x6636, 0xEAC6, + 0x6637, 0x956A, 0x6638, 0x956B, 0x6639, 0x956C, 0x663A, 0x956D, + 0x663B, 0x956E, 0x663C, 0xD6E7, 0x663D, 0x956F, 0x663E, 0xCFD4, + 0x663F, 0x9570, 0x6640, 0x9571, 0x6641, 0xEACB, 0x6642, 0x9572, + 0x6643, 0xBBCE, 0x6644, 0x9573, 0x6645, 0x9574, 0x6646, 0x9575, + 0x6647, 0x9576, 0x6648, 0x9577, 0x6649, 0x9578, 0x664A, 0x9579, + 0x664B, 0xBDFA, 0x664C, 0xC9CE, 0x664D, 0x957A, 0x664E, 0x957B, + 0x664F, 0xEACC, 0x6650, 0x957C, 0x6651, 0x957D, 0x6652, 0xC9B9, + 0x6653, 0xCFFE, 0x6654, 0xEACA, 0x6655, 0xD4CE, 0x6656, 0xEACD, + 0x6657, 0xEACF, 0x6658, 0x957E, 0x6659, 0x9580, 0x665A, 0xCDED, + 0x665B, 0x9581, 0x665C, 0x9582, 0x665D, 0x9583, 0x665E, 0x9584, + 0x665F, 0xEAC9, 0x6660, 0x9585, 0x6661, 0xEACE, 0x6662, 0x9586, + 0x6663, 0x9587, 0x6664, 0xCEEE, 0x6665, 0x9588, 0x6666, 0xBBDE, + 0x6667, 0x9589, 0x6668, 0xB3BF, 0x6669, 0x958A, 0x666A, 0x958B, + 0x666B, 0x958C, 0x666C, 0x958D, 0x666D, 0x958E, 0x666E, 0xC6D5, + 0x666F, 0xBEB0, 0x6670, 0xCEFA, 0x6671, 0x958F, 0x6672, 0x9590, + 0x6673, 0x9591, 0x6674, 0xC7E7, 0x6675, 0x9592, 0x6676, 0xBEA7, + 0x6677, 0xEAD0, 0x6678, 0x9593, 0x6679, 0x9594, 0x667A, 0xD6C7, + 0x667B, 0x9595, 0x667C, 0x9596, 0x667D, 0x9597, 0x667E, 0xC1C0, + 0x667F, 0x9598, 0x6680, 0x9599, 0x6681, 0x959A, 0x6682, 0xD4DD, + 0x6683, 0x959B, 0x6684, 0xEAD1, 0x6685, 0x959C, 0x6686, 0x959D, + 0x6687, 0xCFBE, 0x6688, 0x959E, 0x6689, 0x959F, 0x668A, 0x95A0, + 0x668B, 0x95A1, 0x668C, 0xEAD2, 0x668D, 0x95A2, 0x668E, 0x95A3, + 0x668F, 0x95A4, 0x6690, 0x95A5, 0x6691, 0xCAEE, 0x6692, 0x95A6, + 0x6693, 0x95A7, 0x6694, 0x95A8, 0x6695, 0x95A9, 0x6696, 0xC5AF, + 0x6697, 0xB0B5, 0x6698, 0x95AA, 0x6699, 0x95AB, 0x669A, 0x95AC, + 0x669B, 0x95AD, 0x669C, 0x95AE, 0x669D, 0xEAD4, 0x669E, 0x95AF, + 0x669F, 0x95B0, 0x66A0, 0x95B1, 0x66A1, 0x95B2, 0x66A2, 0x95B3, + 0x66A3, 0x95B4, 0x66A4, 0x95B5, 0x66A5, 0x95B6, 0x66A6, 0x95B7, + 0x66A7, 0xEAD3, 0x66A8, 0xF4DF, 0x66A9, 0x95B8, 0x66AA, 0x95B9, + 0x66AB, 0x95BA, 0x66AC, 0x95BB, 0x66AD, 0x95BC, 0x66AE, 0xC4BA, + 0x66AF, 0x95BD, 0x66B0, 0x95BE, 0x66B1, 0x95BF, 0x66B2, 0x95C0, + 0x66B3, 0x95C1, 0x66B4, 0xB1A9, 0x66B5, 0x95C2, 0x66B6, 0x95C3, + 0x66B7, 0x95C4, 0x66B8, 0x95C5, 0x66B9, 0xE5DF, 0x66BA, 0x95C6, + 0x66BB, 0x95C7, 0x66BC, 0x95C8, 0x66BD, 0x95C9, 0x66BE, 0xEAD5, + 0x66BF, 0x95CA, 0x66C0, 0x95CB, 0x66C1, 0x95CC, 0x66C2, 0x95CD, + 0x66C3, 0x95CE, 0x66C4, 0x95CF, 0x66C5, 0x95D0, 0x66C6, 0x95D1, + 0x66C7, 0x95D2, 0x66C8, 0x95D3, 0x66C9, 0x95D4, 0x66CA, 0x95D5, + 0x66CB, 0x95D6, 0x66CC, 0x95D7, 0x66CD, 0x95D8, 0x66CE, 0x95D9, + 0x66CF, 0x95DA, 0x66D0, 0x95DB, 0x66D1, 0x95DC, 0x66D2, 0x95DD, + 0x66D3, 0x95DE, 0x66D4, 0x95DF, 0x66D5, 0x95E0, 0x66D6, 0x95E1, + 0x66D7, 0x95E2, 0x66D8, 0x95E3, 0x66D9, 0xCAEF, 0x66DA, 0x95E4, + 0x66DB, 0xEAD6, 0x66DC, 0xEAD7, 0x66DD, 0xC6D8, 0x66DE, 0x95E5, + 0x66DF, 0x95E6, 0x66E0, 0x95E7, 0x66E1, 0x95E8, 0x66E2, 0x95E9, + 0x66E3, 0x95EA, 0x66E4, 0x95EB, 0x66E5, 0x95EC, 0x66E6, 0xEAD8, + 0x66E7, 0x95ED, 0x66E8, 0x95EE, 0x66E9, 0xEAD9, 0x66EA, 0x95EF, + 0x66EB, 0x95F0, 0x66EC, 0x95F1, 0x66ED, 0x95F2, 0x66EE, 0x95F3, + 0x66EF, 0x95F4, 0x66F0, 0xD4BB, 0x66F1, 0x95F5, 0x66F2, 0xC7FA, + 0x66F3, 0xD2B7, 0x66F4, 0xB8FC, 0x66F5, 0x95F6, 0x66F6, 0x95F7, + 0x66F7, 0xEAC2, 0x66F8, 0x95F8, 0x66F9, 0xB2DC, 0x66FA, 0x95F9, + 0x66FB, 0x95FA, 0x66FC, 0xC2FC, 0x66FD, 0x95FB, 0x66FE, 0xD4F8, + 0x66FF, 0xCCE6, 0x6700, 0xD7EE, 0x6701, 0x95FC, 0x6702, 0x95FD, + 0x6703, 0x95FE, 0x6704, 0x9640, 0x6705, 0x9641, 0x6706, 0x9642, + 0x6707, 0x9643, 0x6708, 0xD4C2, 0x6709, 0xD3D0, 0x670A, 0xEBC3, + 0x670B, 0xC5F3, 0x670C, 0x9644, 0x670D, 0xB7FE, 0x670E, 0x9645, + 0x670F, 0x9646, 0x6710, 0xEBD4, 0x6711, 0x9647, 0x6712, 0x9648, + 0x6713, 0x9649, 0x6714, 0xCBB7, 0x6715, 0xEBDE, 0x6716, 0x964A, + 0x6717, 0xC0CA, 0x6718, 0x964B, 0x6719, 0x964C, 0x671A, 0x964D, + 0x671B, 0xCDFB, 0x671C, 0x964E, 0x671D, 0xB3AF, 0x671E, 0x964F, + 0x671F, 0xC6DA, 0x6720, 0x9650, 0x6721, 0x9651, 0x6722, 0x9652, + 0x6723, 0x9653, 0x6724, 0x9654, 0x6725, 0x9655, 0x6726, 0xEBFC, + 0x6727, 0x9656, 0x6728, 0xC4BE, 0x6729, 0x9657, 0x672A, 0xCEB4, + 0x672B, 0xC4A9, 0x672C, 0xB1BE, 0x672D, 0xD4FD, 0x672E, 0x9658, + 0x672F, 0xCAF5, 0x6730, 0x9659, 0x6731, 0xD6EC, 0x6732, 0x965A, + 0x6733, 0x965B, 0x6734, 0xC6D3, 0x6735, 0xB6E4, 0x6736, 0x965C, + 0x6737, 0x965D, 0x6738, 0x965E, 0x6739, 0x965F, 0x673A, 0xBBFA, + 0x673B, 0x9660, 0x673C, 0x9661, 0x673D, 0xD0E0, 0x673E, 0x9662, + 0x673F, 0x9663, 0x6740, 0xC9B1, 0x6741, 0x9664, 0x6742, 0xD4D3, + 0x6743, 0xC8A8, 0x6744, 0x9665, 0x6745, 0x9666, 0x6746, 0xB8CB, + 0x6747, 0x9667, 0x6748, 0xE8BE, 0x6749, 0xC9BC, 0x674A, 0x9668, + 0x674B, 0x9669, 0x674C, 0xE8BB, 0x674D, 0x966A, 0x674E, 0xC0EE, + 0x674F, 0xD0D3, 0x6750, 0xB2C4, 0x6751, 0xB4E5, 0x6752, 0x966B, + 0x6753, 0xE8BC, 0x6754, 0x966C, 0x6755, 0x966D, 0x6756, 0xD5C8, + 0x6757, 0x966E, 0x6758, 0x966F, 0x6759, 0x9670, 0x675A, 0x9671, + 0x675B, 0x9672, 0x675C, 0xB6C5, 0x675D, 0x9673, 0x675E, 0xE8BD, + 0x675F, 0xCAF8, 0x6760, 0xB8DC, 0x6761, 0xCCF5, 0x6762, 0x9674, + 0x6763, 0x9675, 0x6764, 0x9676, 0x6765, 0xC0B4, 0x6766, 0x9677, + 0x6767, 0x9678, 0x6768, 0xD1EE, 0x6769, 0xE8BF, 0x676A, 0xE8C2, + 0x676B, 0x9679, 0x676C, 0x967A, 0x676D, 0xBABC, 0x676E, 0x967B, + 0x676F, 0xB1AD, 0x6770, 0xBDDC, 0x6771, 0x967C, 0x6772, 0xEABD, + 0x6773, 0xE8C3, 0x6774, 0x967D, 0x6775, 0xE8C6, 0x6776, 0x967E, + 0x6777, 0xE8CB, 0x6778, 0x9680, 0x6779, 0x9681, 0x677A, 0x9682, + 0x677B, 0x9683, 0x677C, 0xE8CC, 0x677D, 0x9684, 0x677E, 0xCBC9, + 0x677F, 0xB0E5, 0x6780, 0x9685, 0x6781, 0xBCAB, 0x6782, 0x9686, + 0x6783, 0x9687, 0x6784, 0xB9B9, 0x6785, 0x9688, 0x6786, 0x9689, + 0x6787, 0xE8C1, 0x6788, 0x968A, 0x6789, 0xCDF7, 0x678A, 0x968B, + 0x678B, 0xE8CA, 0x678C, 0x968C, 0x678D, 0x968D, 0x678E, 0x968E, + 0x678F, 0x968F, 0x6790, 0xCEF6, 0x6791, 0x9690, 0x6792, 0x9691, + 0x6793, 0x9692, 0x6794, 0x9693, 0x6795, 0xD5ED, 0x6796, 0x9694, + 0x6797, 0xC1D6, 0x6798, 0xE8C4, 0x6799, 0x9695, 0x679A, 0xC3B6, + 0x679B, 0x9696, 0x679C, 0xB9FB, 0x679D, 0xD6A6, 0x679E, 0xE8C8, + 0x679F, 0x9697, 0x67A0, 0x9698, 0x67A1, 0x9699, 0x67A2, 0xCAE0, + 0x67A3, 0xD4E6, 0x67A4, 0x969A, 0x67A5, 0xE8C0, 0x67A6, 0x969B, + 0x67A7, 0xE8C5, 0x67A8, 0xE8C7, 0x67A9, 0x969C, 0x67AA, 0xC7B9, + 0x67AB, 0xB7E3, 0x67AC, 0x969D, 0x67AD, 0xE8C9, 0x67AE, 0x969E, + 0x67AF, 0xBFDD, 0x67B0, 0xE8D2, 0x67B1, 0x969F, 0x67B2, 0x96A0, + 0x67B3, 0xE8D7, 0x67B4, 0x96A1, 0x67B5, 0xE8D5, 0x67B6, 0xBCDC, + 0x67B7, 0xBCCF, 0x67B8, 0xE8DB, 0x67B9, 0x96A2, 0x67BA, 0x96A3, + 0x67BB, 0x96A4, 0x67BC, 0x96A5, 0x67BD, 0x96A6, 0x67BE, 0x96A7, + 0x67BF, 0x96A8, 0x67C0, 0x96A9, 0x67C1, 0xE8DE, 0x67C2, 0x96AA, + 0x67C3, 0xE8DA, 0x67C4, 0xB1FA, 0x67C5, 0x96AB, 0x67C6, 0x96AC, + 0x67C7, 0x96AD, 0x67C8, 0x96AE, 0x67C9, 0x96AF, 0x67CA, 0x96B0, + 0x67CB, 0x96B1, 0x67CC, 0x96B2, 0x67CD, 0x96B3, 0x67CE, 0x96B4, + 0x67CF, 0xB0D8, 0x67D0, 0xC4B3, 0x67D1, 0xB8CC, 0x67D2, 0xC6E2, + 0x67D3, 0xC8BE, 0x67D4, 0xC8E1, 0x67D5, 0x96B5, 0x67D6, 0x96B6, + 0x67D7, 0x96B7, 0x67D8, 0xE8CF, 0x67D9, 0xE8D4, 0x67DA, 0xE8D6, + 0x67DB, 0x96B8, 0x67DC, 0xB9F1, 0x67DD, 0xE8D8, 0x67DE, 0xD7F5, + 0x67DF, 0x96B9, 0x67E0, 0xC4FB, 0x67E1, 0x96BA, 0x67E2, 0xE8DC, + 0x67E3, 0x96BB, 0x67E4, 0x96BC, 0x67E5, 0xB2E9, 0x67E6, 0x96BD, + 0x67E7, 0x96BE, 0x67E8, 0x96BF, 0x67E9, 0xE8D1, 0x67EA, 0x96C0, + 0x67EB, 0x96C1, 0x67EC, 0xBCED, 0x67ED, 0x96C2, 0x67EE, 0x96C3, + 0x67EF, 0xBFC2, 0x67F0, 0xE8CD, 0x67F1, 0xD6F9, 0x67F2, 0x96C4, + 0x67F3, 0xC1F8, 0x67F4, 0xB2F1, 0x67F5, 0x96C5, 0x67F6, 0x96C6, + 0x67F7, 0x96C7, 0x67F8, 0x96C8, 0x67F9, 0x96C9, 0x67FA, 0x96CA, + 0x67FB, 0x96CB, 0x67FC, 0x96CC, 0x67FD, 0xE8DF, 0x67FE, 0x96CD, + 0x67FF, 0xCAC1, 0x6800, 0xE8D9, 0x6801, 0x96CE, 0x6802, 0x96CF, + 0x6803, 0x96D0, 0x6804, 0x96D1, 0x6805, 0xD5A4, 0x6806, 0x96D2, + 0x6807, 0xB1EA, 0x6808, 0xD5BB, 0x6809, 0xE8CE, 0x680A, 0xE8D0, + 0x680B, 0xB6B0, 0x680C, 0xE8D3, 0x680D, 0x96D3, 0x680E, 0xE8DD, + 0x680F, 0xC0B8, 0x6810, 0x96D4, 0x6811, 0xCAF7, 0x6812, 0x96D5, + 0x6813, 0xCBA8, 0x6814, 0x96D6, 0x6815, 0x96D7, 0x6816, 0xC6DC, + 0x6817, 0xC0F5, 0x6818, 0x96D8, 0x6819, 0x96D9, 0x681A, 0x96DA, + 0x681B, 0x96DB, 0x681C, 0x96DC, 0x681D, 0xE8E9, 0x681E, 0x96DD, + 0x681F, 0x96DE, 0x6820, 0x96DF, 0x6821, 0xD0A3, 0x6822, 0x96E0, + 0x6823, 0x96E1, 0x6824, 0x96E2, 0x6825, 0x96E3, 0x6826, 0x96E4, + 0x6827, 0x96E5, 0x6828, 0x96E6, 0x6829, 0xE8F2, 0x682A, 0xD6EA, + 0x682B, 0x96E7, 0x682C, 0x96E8, 0x682D, 0x96E9, 0x682E, 0x96EA, + 0x682F, 0x96EB, 0x6830, 0x96EC, 0x6831, 0x96ED, 0x6832, 0xE8E0, + 0x6833, 0xE8E1, 0x6834, 0x96EE, 0x6835, 0x96EF, 0x6836, 0x96F0, + 0x6837, 0xD1F9, 0x6838, 0xBACB, 0x6839, 0xB8F9, 0x683A, 0x96F1, + 0x683B, 0x96F2, 0x683C, 0xB8F1, 0x683D, 0xD4D4, 0x683E, 0xE8EF, + 0x683F, 0x96F3, 0x6840, 0xE8EE, 0x6841, 0xE8EC, 0x6842, 0xB9F0, + 0x6843, 0xCCD2, 0x6844, 0xE8E6, 0x6845, 0xCEA6, 0x6846, 0xBFF2, + 0x6847, 0x96F4, 0x6848, 0xB0B8, 0x6849, 0xE8F1, 0x684A, 0xE8F0, + 0x684B, 0x96F5, 0x684C, 0xD7C0, 0x684D, 0x96F6, 0x684E, 0xE8E4, + 0x684F, 0x96F7, 0x6850, 0xCDA9, 0x6851, 0xC9A3, 0x6852, 0x96F8, + 0x6853, 0xBBB8, 0x6854, 0xBDDB, 0x6855, 0xE8EA, 0x6856, 0x96F9, + 0x6857, 0x96FA, 0x6858, 0x96FB, 0x6859, 0x96FC, 0x685A, 0x96FD, + 0x685B, 0x96FE, 0x685C, 0x9740, 0x685D, 0x9741, 0x685E, 0x9742, + 0x685F, 0x9743, 0x6860, 0xE8E2, 0x6861, 0xE8E3, 0x6862, 0xE8E5, + 0x6863, 0xB5B5, 0x6864, 0xE8E7, 0x6865, 0xC7C5, 0x6866, 0xE8EB, + 0x6867, 0xE8ED, 0x6868, 0xBDB0, 0x6869, 0xD7AE, 0x686A, 0x9744, + 0x686B, 0xE8F8, 0x686C, 0x9745, 0x686D, 0x9746, 0x686E, 0x9747, + 0x686F, 0x9748, 0x6870, 0x9749, 0x6871, 0x974A, 0x6872, 0x974B, + 0x6873, 0x974C, 0x6874, 0xE8F5, 0x6875, 0x974D, 0x6876, 0xCDB0, + 0x6877, 0xE8F6, 0x6878, 0x974E, 0x6879, 0x974F, 0x687A, 0x9750, + 0x687B, 0x9751, 0x687C, 0x9752, 0x687D, 0x9753, 0x687E, 0x9754, + 0x687F, 0x9755, 0x6880, 0x9756, 0x6881, 0xC1BA, 0x6882, 0x9757, + 0x6883, 0xE8E8, 0x6884, 0x9758, 0x6885, 0xC3B7, 0x6886, 0xB0F0, + 0x6887, 0x9759, 0x6888, 0x975A, 0x6889, 0x975B, 0x688A, 0x975C, + 0x688B, 0x975D, 0x688C, 0x975E, 0x688D, 0x975F, 0x688E, 0x9760, + 0x688F, 0xE8F4, 0x6890, 0x9761, 0x6891, 0x9762, 0x6892, 0x9763, + 0x6893, 0xE8F7, 0x6894, 0x9764, 0x6895, 0x9765, 0x6896, 0x9766, + 0x6897, 0xB9A3, 0x6898, 0x9767, 0x6899, 0x9768, 0x689A, 0x9769, + 0x689B, 0x976A, 0x689C, 0x976B, 0x689D, 0x976C, 0x689E, 0x976D, + 0x689F, 0x976E, 0x68A0, 0x976F, 0x68A1, 0x9770, 0x68A2, 0xC9D2, + 0x68A3, 0x9771, 0x68A4, 0x9772, 0x68A5, 0x9773, 0x68A6, 0xC3CE, + 0x68A7, 0xCEE0, 0x68A8, 0xC0E6, 0x68A9, 0x9774, 0x68AA, 0x9775, + 0x68AB, 0x9776, 0x68AC, 0x9777, 0x68AD, 0xCBF3, 0x68AE, 0x9778, + 0x68AF, 0xCCDD, 0x68B0, 0xD0B5, 0x68B1, 0x9779, 0x68B2, 0x977A, + 0x68B3, 0xCAE1, 0x68B4, 0x977B, 0x68B5, 0xE8F3, 0x68B6, 0x977C, + 0x68B7, 0x977D, 0x68B8, 0x977E, 0x68B9, 0x9780, 0x68BA, 0x9781, + 0x68BB, 0x9782, 0x68BC, 0x9783, 0x68BD, 0x9784, 0x68BE, 0x9785, + 0x68BF, 0x9786, 0x68C0, 0xBCEC, 0x68C1, 0x9787, 0x68C2, 0xE8F9, + 0x68C3, 0x9788, 0x68C4, 0x9789, 0x68C5, 0x978A, 0x68C6, 0x978B, + 0x68C7, 0x978C, 0x68C8, 0x978D, 0x68C9, 0xC3DE, 0x68CA, 0x978E, + 0x68CB, 0xC6E5, 0x68CC, 0x978F, 0x68CD, 0xB9F7, 0x68CE, 0x9790, + 0x68CF, 0x9791, 0x68D0, 0x9792, 0x68D1, 0x9793, 0x68D2, 0xB0F4, + 0x68D3, 0x9794, 0x68D4, 0x9795, 0x68D5, 0xD7D8, 0x68D6, 0x9796, + 0x68D7, 0x9797, 0x68D8, 0xBCAC, 0x68D9, 0x9798, 0x68DA, 0xC5EF, + 0x68DB, 0x9799, 0x68DC, 0x979A, 0x68DD, 0x979B, 0x68DE, 0x979C, + 0x68DF, 0x979D, 0x68E0, 0xCCC4, 0x68E1, 0x979E, 0x68E2, 0x979F, + 0x68E3, 0xE9A6, 0x68E4, 0x97A0, 0x68E5, 0x97A1, 0x68E6, 0x97A2, + 0x68E7, 0x97A3, 0x68E8, 0x97A4, 0x68E9, 0x97A5, 0x68EA, 0x97A6, + 0x68EB, 0x97A7, 0x68EC, 0x97A8, 0x68ED, 0x97A9, 0x68EE, 0xC9AD, + 0x68EF, 0x97AA, 0x68F0, 0xE9A2, 0x68F1, 0xC0E2, 0x68F2, 0x97AB, + 0x68F3, 0x97AC, 0x68F4, 0x97AD, 0x68F5, 0xBFC3, 0x68F6, 0x97AE, + 0x68F7, 0x97AF, 0x68F8, 0x97B0, 0x68F9, 0xE8FE, 0x68FA, 0xB9D7, + 0x68FB, 0x97B1, 0x68FC, 0xE8FB, 0x68FD, 0x97B2, 0x68FE, 0x97B3, + 0x68FF, 0x97B4, 0x6900, 0x97B5, 0x6901, 0xE9A4, 0x6902, 0x97B6, + 0x6903, 0x97B7, 0x6904, 0x97B8, 0x6905, 0xD2CE, 0x6906, 0x97B9, + 0x6907, 0x97BA, 0x6908, 0x97BB, 0x6909, 0x97BC, 0x690A, 0x97BD, + 0x690B, 0xE9A3, 0x690C, 0x97BE, 0x690D, 0xD6B2, 0x690E, 0xD7B5, + 0x690F, 0x97BF, 0x6910, 0xE9A7, 0x6911, 0x97C0, 0x6912, 0xBDB7, + 0x6913, 0x97C1, 0x6914, 0x97C2, 0x6915, 0x97C3, 0x6916, 0x97C4, + 0x6917, 0x97C5, 0x6918, 0x97C6, 0x6919, 0x97C7, 0x691A, 0x97C8, + 0x691B, 0x97C9, 0x691C, 0x97CA, 0x691D, 0x97CB, 0x691E, 0x97CC, + 0x691F, 0xE8FC, 0x6920, 0xE8FD, 0x6921, 0x97CD, 0x6922, 0x97CE, + 0x6923, 0x97CF, 0x6924, 0xE9A1, 0x6925, 0x97D0, 0x6926, 0x97D1, + 0x6927, 0x97D2, 0x6928, 0x97D3, 0x6929, 0x97D4, 0x692A, 0x97D5, + 0x692B, 0x97D6, 0x692C, 0x97D7, 0x692D, 0xCDD6, 0x692E, 0x97D8, + 0x692F, 0x97D9, 0x6930, 0xD2AC, 0x6931, 0x97DA, 0x6932, 0x97DB, + 0x6933, 0x97DC, 0x6934, 0xE9B2, 0x6935, 0x97DD, 0x6936, 0x97DE, + 0x6937, 0x97DF, 0x6938, 0x97E0, 0x6939, 0xE9A9, 0x693A, 0x97E1, + 0x693B, 0x97E2, 0x693C, 0x97E3, 0x693D, 0xB4AA, 0x693E, 0x97E4, + 0x693F, 0xB4BB, 0x6940, 0x97E5, 0x6941, 0x97E6, 0x6942, 0xE9AB, + 0x6943, 0x97E7, 0x6944, 0x97E8, 0x6945, 0x97E9, 0x6946, 0x97EA, + 0x6947, 0x97EB, 0x6948, 0x97EC, 0x6949, 0x97ED, 0x694A, 0x97EE, + 0x694B, 0x97EF, 0x694C, 0x97F0, 0x694D, 0x97F1, 0x694E, 0x97F2, + 0x694F, 0x97F3, 0x6950, 0x97F4, 0x6951, 0x97F5, 0x6952, 0x97F6, + 0x6953, 0x97F7, 0x6954, 0xD0A8, 0x6955, 0x97F8, 0x6956, 0x97F9, + 0x6957, 0xE9A5, 0x6958, 0x97FA, 0x6959, 0x97FB, 0x695A, 0xB3FE, + 0x695B, 0x97FC, 0x695C, 0x97FD, 0x695D, 0xE9AC, 0x695E, 0xC0E3, + 0x695F, 0x97FE, 0x6960, 0xE9AA, 0x6961, 0x9840, 0x6962, 0x9841, + 0x6963, 0xE9B9, 0x6964, 0x9842, 0x6965, 0x9843, 0x6966, 0xE9B8, + 0x6967, 0x9844, 0x6968, 0x9845, 0x6969, 0x9846, 0x696A, 0x9847, + 0x696B, 0xE9AE, 0x696C, 0x9848, 0x696D, 0x9849, 0x696E, 0xE8FA, + 0x696F, 0x984A, 0x6970, 0x984B, 0x6971, 0xE9A8, 0x6972, 0x984C, + 0x6973, 0x984D, 0x6974, 0x984E, 0x6975, 0x984F, 0x6976, 0x9850, + 0x6977, 0xBFAC, 0x6978, 0xE9B1, 0x6979, 0xE9BA, 0x697A, 0x9851, + 0x697B, 0x9852, 0x697C, 0xC2A5, 0x697D, 0x9853, 0x697E, 0x9854, + 0x697F, 0x9855, 0x6980, 0xE9AF, 0x6981, 0x9856, 0x6982, 0xB8C5, + 0x6983, 0x9857, 0x6984, 0xE9AD, 0x6985, 0x9858, 0x6986, 0xD3DC, + 0x6987, 0xE9B4, 0x6988, 0xE9B5, 0x6989, 0xE9B7, 0x698A, 0x9859, + 0x698B, 0x985A, 0x698C, 0x985B, 0x698D, 0xE9C7, 0x698E, 0x985C, + 0x698F, 0x985D, 0x6990, 0x985E, 0x6991, 0x985F, 0x6992, 0x9860, + 0x6993, 0x9861, 0x6994, 0xC0C6, 0x6995, 0xE9C5, 0x6996, 0x9862, + 0x6997, 0x9863, 0x6998, 0xE9B0, 0x6999, 0x9864, 0x699A, 0x9865, + 0x699B, 0xE9BB, 0x699C, 0xB0F1, 0x699D, 0x9866, 0x699E, 0x9867, + 0x699F, 0x9868, 0x69A0, 0x9869, 0x69A1, 0x986A, 0x69A2, 0x986B, + 0x69A3, 0x986C, 0x69A4, 0x986D, 0x69A5, 0x986E, 0x69A6, 0x986F, + 0x69A7, 0xE9BC, 0x69A8, 0xD5A5, 0x69A9, 0x9870, 0x69AA, 0x9871, + 0x69AB, 0xE9BE, 0x69AC, 0x9872, 0x69AD, 0xE9BF, 0x69AE, 0x9873, + 0x69AF, 0x9874, 0x69B0, 0x9875, 0x69B1, 0xE9C1, 0x69B2, 0x9876, + 0x69B3, 0x9877, 0x69B4, 0xC1F1, 0x69B5, 0x9878, 0x69B6, 0x9879, + 0x69B7, 0xC8B6, 0x69B8, 0x987A, 0x69B9, 0x987B, 0x69BA, 0x987C, + 0x69BB, 0xE9BD, 0x69BC, 0x987D, 0x69BD, 0x987E, 0x69BE, 0x9880, + 0x69BF, 0x9881, 0x69C0, 0x9882, 0x69C1, 0xE9C2, 0x69C2, 0x9883, + 0x69C3, 0x9884, 0x69C4, 0x9885, 0x69C5, 0x9886, 0x69C6, 0x9887, + 0x69C7, 0x9888, 0x69C8, 0x9889, 0x69C9, 0x988A, 0x69CA, 0xE9C3, + 0x69CB, 0x988B, 0x69CC, 0xE9B3, 0x69CD, 0x988C, 0x69CE, 0xE9B6, + 0x69CF, 0x988D, 0x69D0, 0xBBB1, 0x69D1, 0x988E, 0x69D2, 0x988F, + 0x69D3, 0x9890, 0x69D4, 0xE9C0, 0x69D5, 0x9891, 0x69D6, 0x9892, + 0x69D7, 0x9893, 0x69D8, 0x9894, 0x69D9, 0x9895, 0x69DA, 0x9896, + 0x69DB, 0xBCF7, 0x69DC, 0x9897, 0x69DD, 0x9898, 0x69DE, 0x9899, + 0x69DF, 0xE9C4, 0x69E0, 0xE9C6, 0x69E1, 0x989A, 0x69E2, 0x989B, + 0x69E3, 0x989C, 0x69E4, 0x989D, 0x69E5, 0x989E, 0x69E6, 0x989F, + 0x69E7, 0x98A0, 0x69E8, 0x98A1, 0x69E9, 0x98A2, 0x69EA, 0x98A3, + 0x69EB, 0x98A4, 0x69EC, 0x98A5, 0x69ED, 0xE9CA, 0x69EE, 0x98A6, + 0x69EF, 0x98A7, 0x69F0, 0x98A8, 0x69F1, 0x98A9, 0x69F2, 0xE9CE, + 0x69F3, 0x98AA, 0x69F4, 0x98AB, 0x69F5, 0x98AC, 0x69F6, 0x98AD, + 0x69F7, 0x98AE, 0x69F8, 0x98AF, 0x69F9, 0x98B0, 0x69FA, 0x98B1, + 0x69FB, 0x98B2, 0x69FC, 0x98B3, 0x69FD, 0xB2DB, 0x69FE, 0x98B4, + 0x69FF, 0xE9C8, 0x6A00, 0x98B5, 0x6A01, 0x98B6, 0x6A02, 0x98B7, + 0x6A03, 0x98B8, 0x6A04, 0x98B9, 0x6A05, 0x98BA, 0x6A06, 0x98BB, + 0x6A07, 0x98BC, 0x6A08, 0x98BD, 0x6A09, 0x98BE, 0x6A0A, 0xB7AE, + 0x6A0B, 0x98BF, 0x6A0C, 0x98C0, 0x6A0D, 0x98C1, 0x6A0E, 0x98C2, + 0x6A0F, 0x98C3, 0x6A10, 0x98C4, 0x6A11, 0x98C5, 0x6A12, 0x98C6, + 0x6A13, 0x98C7, 0x6A14, 0x98C8, 0x6A15, 0x98C9, 0x6A16, 0x98CA, + 0x6A17, 0xE9CB, 0x6A18, 0xE9CC, 0x6A19, 0x98CB, 0x6A1A, 0x98CC, + 0x6A1B, 0x98CD, 0x6A1C, 0x98CE, 0x6A1D, 0x98CF, 0x6A1E, 0x98D0, + 0x6A1F, 0xD5C1, 0x6A20, 0x98D1, 0x6A21, 0xC4A3, 0x6A22, 0x98D2, + 0x6A23, 0x98D3, 0x6A24, 0x98D4, 0x6A25, 0x98D5, 0x6A26, 0x98D6, + 0x6A27, 0x98D7, 0x6A28, 0xE9D8, 0x6A29, 0x98D8, 0x6A2A, 0xBAE1, + 0x6A2B, 0x98D9, 0x6A2C, 0x98DA, 0x6A2D, 0x98DB, 0x6A2E, 0x98DC, + 0x6A2F, 0xE9C9, 0x6A30, 0x98DD, 0x6A31, 0xD3A3, 0x6A32, 0x98DE, + 0x6A33, 0x98DF, 0x6A34, 0x98E0, 0x6A35, 0xE9D4, 0x6A36, 0x98E1, + 0x6A37, 0x98E2, 0x6A38, 0x98E3, 0x6A39, 0x98E4, 0x6A3A, 0x98E5, + 0x6A3B, 0x98E6, 0x6A3C, 0x98E7, 0x6A3D, 0xE9D7, 0x6A3E, 0xE9D0, + 0x6A3F, 0x98E8, 0x6A40, 0x98E9, 0x6A41, 0x98EA, 0x6A42, 0x98EB, + 0x6A43, 0x98EC, 0x6A44, 0xE9CF, 0x6A45, 0x98ED, 0x6A46, 0x98EE, + 0x6A47, 0xC7C1, 0x6A48, 0x98EF, 0x6A49, 0x98F0, 0x6A4A, 0x98F1, + 0x6A4B, 0x98F2, 0x6A4C, 0x98F3, 0x6A4D, 0x98F4, 0x6A4E, 0x98F5, + 0x6A4F, 0x98F6, 0x6A50, 0xE9D2, 0x6A51, 0x98F7, 0x6A52, 0x98F8, + 0x6A53, 0x98F9, 0x6A54, 0x98FA, 0x6A55, 0x98FB, 0x6A56, 0x98FC, + 0x6A57, 0x98FD, 0x6A58, 0xE9D9, 0x6A59, 0xB3C8, 0x6A5A, 0x98FE, + 0x6A5B, 0xE9D3, 0x6A5C, 0x9940, 0x6A5D, 0x9941, 0x6A5E, 0x9942, + 0x6A5F, 0x9943, 0x6A60, 0x9944, 0x6A61, 0xCFF0, 0x6A62, 0x9945, + 0x6A63, 0x9946, 0x6A64, 0x9947, 0x6A65, 0xE9CD, 0x6A66, 0x9948, + 0x6A67, 0x9949, 0x6A68, 0x994A, 0x6A69, 0x994B, 0x6A6A, 0x994C, + 0x6A6B, 0x994D, 0x6A6C, 0x994E, 0x6A6D, 0x994F, 0x6A6E, 0x9950, + 0x6A6F, 0x9951, 0x6A70, 0x9952, 0x6A71, 0xB3F7, 0x6A72, 0x9953, + 0x6A73, 0x9954, 0x6A74, 0x9955, 0x6A75, 0x9956, 0x6A76, 0x9957, + 0x6A77, 0x9958, 0x6A78, 0x9959, 0x6A79, 0xE9D6, 0x6A7A, 0x995A, + 0x6A7B, 0x995B, 0x6A7C, 0xE9DA, 0x6A7D, 0x995C, 0x6A7E, 0x995D, + 0x6A7F, 0x995E, 0x6A80, 0xCCB4, 0x6A81, 0x995F, 0x6A82, 0x9960, + 0x6A83, 0x9961, 0x6A84, 0xCFAD, 0x6A85, 0x9962, 0x6A86, 0x9963, + 0x6A87, 0x9964, 0x6A88, 0x9965, 0x6A89, 0x9966, 0x6A8A, 0x9967, + 0x6A8B, 0x9968, 0x6A8C, 0x9969, 0x6A8D, 0x996A, 0x6A8E, 0xE9D5, + 0x6A8F, 0x996B, 0x6A90, 0xE9DC, 0x6A91, 0xE9DB, 0x6A92, 0x996C, + 0x6A93, 0x996D, 0x6A94, 0x996E, 0x6A95, 0x996F, 0x6A96, 0x9970, + 0x6A97, 0xE9DE, 0x6A98, 0x9971, 0x6A99, 0x9972, 0x6A9A, 0x9973, + 0x6A9B, 0x9974, 0x6A9C, 0x9975, 0x6A9D, 0x9976, 0x6A9E, 0x9977, + 0x6A9F, 0x9978, 0x6AA0, 0xE9D1, 0x6AA1, 0x9979, 0x6AA2, 0x997A, + 0x6AA3, 0x997B, 0x6AA4, 0x997C, 0x6AA5, 0x997D, 0x6AA6, 0x997E, + 0x6AA7, 0x9980, 0x6AA8, 0x9981, 0x6AA9, 0xE9DD, 0x6AAA, 0x9982, + 0x6AAB, 0xE9DF, 0x6AAC, 0xC3CA, 0x6AAD, 0x9983, 0x6AAE, 0x9984, + 0x6AAF, 0x9985, 0x6AB0, 0x9986, 0x6AB1, 0x9987, 0x6AB2, 0x9988, + 0x6AB3, 0x9989, 0x6AB4, 0x998A, 0x6AB5, 0x998B, 0x6AB6, 0x998C, + 0x6AB7, 0x998D, 0x6AB8, 0x998E, 0x6AB9, 0x998F, 0x6ABA, 0x9990, + 0x6ABB, 0x9991, 0x6ABC, 0x9992, 0x6ABD, 0x9993, 0x6ABE, 0x9994, + 0x6ABF, 0x9995, 0x6AC0, 0x9996, 0x6AC1, 0x9997, 0x6AC2, 0x9998, + 0x6AC3, 0x9999, 0x6AC4, 0x999A, 0x6AC5, 0x999B, 0x6AC6, 0x999C, + 0x6AC7, 0x999D, 0x6AC8, 0x999E, 0x6AC9, 0x999F, 0x6ACA, 0x99A0, + 0x6ACB, 0x99A1, 0x6ACC, 0x99A2, 0x6ACD, 0x99A3, 0x6ACE, 0x99A4, + 0x6ACF, 0x99A5, 0x6AD0, 0x99A6, 0x6AD1, 0x99A7, 0x6AD2, 0x99A8, + 0x6AD3, 0x99A9, 0x6AD4, 0x99AA, 0x6AD5, 0x99AB, 0x6AD6, 0x99AC, + 0x6AD7, 0x99AD, 0x6AD8, 0x99AE, 0x6AD9, 0x99AF, 0x6ADA, 0x99B0, + 0x6ADB, 0x99B1, 0x6ADC, 0x99B2, 0x6ADD, 0x99B3, 0x6ADE, 0x99B4, + 0x6ADF, 0x99B5, 0x6AE0, 0x99B6, 0x6AE1, 0x99B7, 0x6AE2, 0x99B8, + 0x6AE3, 0x99B9, 0x6AE4, 0x99BA, 0x6AE5, 0x99BB, 0x6AE6, 0x99BC, + 0x6AE7, 0x99BD, 0x6AE8, 0x99BE, 0x6AE9, 0x99BF, 0x6AEA, 0x99C0, + 0x6AEB, 0x99C1, 0x6AEC, 0x99C2, 0x6AED, 0x99C3, 0x6AEE, 0x99C4, + 0x6AEF, 0x99C5, 0x6AF0, 0x99C6, 0x6AF1, 0x99C7, 0x6AF2, 0x99C8, + 0x6AF3, 0x99C9, 0x6AF4, 0x99CA, 0x6AF5, 0x99CB, 0x6AF6, 0x99CC, + 0x6AF7, 0x99CD, 0x6AF8, 0x99CE, 0x6AF9, 0x99CF, 0x6AFA, 0x99D0, + 0x6AFB, 0x99D1, 0x6AFC, 0x99D2, 0x6AFD, 0x99D3, 0x6AFE, 0x99D4, + 0x6AFF, 0x99D5, 0x6B00, 0x99D6, 0x6B01, 0x99D7, 0x6B02, 0x99D8, + 0x6B03, 0x99D9, 0x6B04, 0x99DA, 0x6B05, 0x99DB, 0x6B06, 0x99DC, + 0x6B07, 0x99DD, 0x6B08, 0x99DE, 0x6B09, 0x99DF, 0x6B0A, 0x99E0, + 0x6B0B, 0x99E1, 0x6B0C, 0x99E2, 0x6B0D, 0x99E3, 0x6B0E, 0x99E4, + 0x6B0F, 0x99E5, 0x6B10, 0x99E6, 0x6B11, 0x99E7, 0x6B12, 0x99E8, + 0x6B13, 0x99E9, 0x6B14, 0x99EA, 0x6B15, 0x99EB, 0x6B16, 0x99EC, + 0x6B17, 0x99ED, 0x6B18, 0x99EE, 0x6B19, 0x99EF, 0x6B1A, 0x99F0, + 0x6B1B, 0x99F1, 0x6B1C, 0x99F2, 0x6B1D, 0x99F3, 0x6B1E, 0x99F4, + 0x6B1F, 0x99F5, 0x6B20, 0xC7B7, 0x6B21, 0xB4CE, 0x6B22, 0xBBB6, + 0x6B23, 0xD0C0, 0x6B24, 0xECA3, 0x6B25, 0x99F6, 0x6B26, 0x99F7, + 0x6B27, 0xC5B7, 0x6B28, 0x99F8, 0x6B29, 0x99F9, 0x6B2A, 0x99FA, + 0x6B2B, 0x99FB, 0x6B2C, 0x99FC, 0x6B2D, 0x99FD, 0x6B2E, 0x99FE, + 0x6B2F, 0x9A40, 0x6B30, 0x9A41, 0x6B31, 0x9A42, 0x6B32, 0xD3FB, + 0x6B33, 0x9A43, 0x6B34, 0x9A44, 0x6B35, 0x9A45, 0x6B36, 0x9A46, + 0x6B37, 0xECA4, 0x6B38, 0x9A47, 0x6B39, 0xECA5, 0x6B3A, 0xC6DB, + 0x6B3B, 0x9A48, 0x6B3C, 0x9A49, 0x6B3D, 0x9A4A, 0x6B3E, 0xBFEE, + 0x6B3F, 0x9A4B, 0x6B40, 0x9A4C, 0x6B41, 0x9A4D, 0x6B42, 0x9A4E, + 0x6B43, 0xECA6, 0x6B44, 0x9A4F, 0x6B45, 0x9A50, 0x6B46, 0xECA7, + 0x6B47, 0xD0AA, 0x6B48, 0x9A51, 0x6B49, 0xC7B8, 0x6B4A, 0x9A52, + 0x6B4B, 0x9A53, 0x6B4C, 0xB8E8, 0x6B4D, 0x9A54, 0x6B4E, 0x9A55, + 0x6B4F, 0x9A56, 0x6B50, 0x9A57, 0x6B51, 0x9A58, 0x6B52, 0x9A59, + 0x6B53, 0x9A5A, 0x6B54, 0x9A5B, 0x6B55, 0x9A5C, 0x6B56, 0x9A5D, + 0x6B57, 0x9A5E, 0x6B58, 0x9A5F, 0x6B59, 0xECA8, 0x6B5A, 0x9A60, + 0x6B5B, 0x9A61, 0x6B5C, 0x9A62, 0x6B5D, 0x9A63, 0x6B5E, 0x9A64, + 0x6B5F, 0x9A65, 0x6B60, 0x9A66, 0x6B61, 0x9A67, 0x6B62, 0xD6B9, + 0x6B63, 0xD5FD, 0x6B64, 0xB4CB, 0x6B65, 0xB2BD, 0x6B66, 0xCEE4, + 0x6B67, 0xC6E7, 0x6B68, 0x9A68, 0x6B69, 0x9A69, 0x6B6A, 0xCDE1, + 0x6B6B, 0x9A6A, 0x6B6C, 0x9A6B, 0x6B6D, 0x9A6C, 0x6B6E, 0x9A6D, + 0x6B6F, 0x9A6E, 0x6B70, 0x9A6F, 0x6B71, 0x9A70, 0x6B72, 0x9A71, + 0x6B73, 0x9A72, 0x6B74, 0x9A73, 0x6B75, 0x9A74, 0x6B76, 0x9A75, + 0x6B77, 0x9A76, 0x6B78, 0x9A77, 0x6B79, 0xB4F5, 0x6B7A, 0x9A78, + 0x6B7B, 0xCBC0, 0x6B7C, 0xBCDF, 0x6B7D, 0x9A79, 0x6B7E, 0x9A7A, + 0x6B7F, 0x9A7B, 0x6B80, 0x9A7C, 0x6B81, 0xE9E2, 0x6B82, 0xE9E3, + 0x6B83, 0xD1EA, 0x6B84, 0xE9E5, 0x6B85, 0x9A7D, 0x6B86, 0xB4F9, + 0x6B87, 0xE9E4, 0x6B88, 0x9A7E, 0x6B89, 0xD1B3, 0x6B8A, 0xCAE2, + 0x6B8B, 0xB2D0, 0x6B8C, 0x9A80, 0x6B8D, 0xE9E8, 0x6B8E, 0x9A81, + 0x6B8F, 0x9A82, 0x6B90, 0x9A83, 0x6B91, 0x9A84, 0x6B92, 0xE9E6, + 0x6B93, 0xE9E7, 0x6B94, 0x9A85, 0x6B95, 0x9A86, 0x6B96, 0xD6B3, + 0x6B97, 0x9A87, 0x6B98, 0x9A88, 0x6B99, 0x9A89, 0x6B9A, 0xE9E9, + 0x6B9B, 0xE9EA, 0x6B9C, 0x9A8A, 0x6B9D, 0x9A8B, 0x6B9E, 0x9A8C, + 0x6B9F, 0x9A8D, 0x6BA0, 0x9A8E, 0x6BA1, 0xE9EB, 0x6BA2, 0x9A8F, + 0x6BA3, 0x9A90, 0x6BA4, 0x9A91, 0x6BA5, 0x9A92, 0x6BA6, 0x9A93, + 0x6BA7, 0x9A94, 0x6BA8, 0x9A95, 0x6BA9, 0x9A96, 0x6BAA, 0xE9EC, + 0x6BAB, 0x9A97, 0x6BAC, 0x9A98, 0x6BAD, 0x9A99, 0x6BAE, 0x9A9A, + 0x6BAF, 0x9A9B, 0x6BB0, 0x9A9C, 0x6BB1, 0x9A9D, 0x6BB2, 0x9A9E, + 0x6BB3, 0xECAF, 0x6BB4, 0xC5B9, 0x6BB5, 0xB6CE, 0x6BB6, 0x9A9F, + 0x6BB7, 0xD2F3, 0x6BB8, 0x9AA0, 0x6BB9, 0x9AA1, 0x6BBA, 0x9AA2, + 0x6BBB, 0x9AA3, 0x6BBC, 0x9AA4, 0x6BBD, 0x9AA5, 0x6BBE, 0x9AA6, + 0x6BBF, 0xB5EE, 0x6BC0, 0x9AA7, 0x6BC1, 0xBBD9, 0x6BC2, 0xECB1, + 0x6BC3, 0x9AA8, 0x6BC4, 0x9AA9, 0x6BC5, 0xD2E3, 0x6BC6, 0x9AAA, + 0x6BC7, 0x9AAB, 0x6BC8, 0x9AAC, 0x6BC9, 0x9AAD, 0x6BCA, 0x9AAE, + 0x6BCB, 0xCEE3, 0x6BCC, 0x9AAF, 0x6BCD, 0xC4B8, 0x6BCE, 0x9AB0, + 0x6BCF, 0xC3BF, 0x6BD0, 0x9AB1, 0x6BD1, 0x9AB2, 0x6BD2, 0xB6BE, + 0x6BD3, 0xD8B9, 0x6BD4, 0xB1C8, 0x6BD5, 0xB1CF, 0x6BD6, 0xB1D1, + 0x6BD7, 0xC5FE, 0x6BD8, 0x9AB3, 0x6BD9, 0xB1D0, 0x6BDA, 0x9AB4, + 0x6BDB, 0xC3AB, 0x6BDC, 0x9AB5, 0x6BDD, 0x9AB6, 0x6BDE, 0x9AB7, + 0x6BDF, 0x9AB8, 0x6BE0, 0x9AB9, 0x6BE1, 0xD5B1, 0x6BE2, 0x9ABA, + 0x6BE3, 0x9ABB, 0x6BE4, 0x9ABC, 0x6BE5, 0x9ABD, 0x6BE6, 0x9ABE, + 0x6BE7, 0x9ABF, 0x6BE8, 0x9AC0, 0x6BE9, 0x9AC1, 0x6BEA, 0xEBA4, + 0x6BEB, 0xBAC1, 0x6BEC, 0x9AC2, 0x6BED, 0x9AC3, 0x6BEE, 0x9AC4, + 0x6BEF, 0xCCBA, 0x6BF0, 0x9AC5, 0x6BF1, 0x9AC6, 0x6BF2, 0x9AC7, + 0x6BF3, 0xEBA5, 0x6BF4, 0x9AC8, 0x6BF5, 0xEBA7, 0x6BF6, 0x9AC9, + 0x6BF7, 0x9ACA, 0x6BF8, 0x9ACB, 0x6BF9, 0xEBA8, 0x6BFA, 0x9ACC, + 0x6BFB, 0x9ACD, 0x6BFC, 0x9ACE, 0x6BFD, 0xEBA6, 0x6BFE, 0x9ACF, + 0x6BFF, 0x9AD0, 0x6C00, 0x9AD1, 0x6C01, 0x9AD2, 0x6C02, 0x9AD3, + 0x6C03, 0x9AD4, 0x6C04, 0x9AD5, 0x6C05, 0xEBA9, 0x6C06, 0xEBAB, + 0x6C07, 0xEBAA, 0x6C08, 0x9AD6, 0x6C09, 0x9AD7, 0x6C0A, 0x9AD8, + 0x6C0B, 0x9AD9, 0x6C0C, 0x9ADA, 0x6C0D, 0xEBAC, 0x6C0E, 0x9ADB, + 0x6C0F, 0xCACF, 0x6C10, 0xD8B5, 0x6C11, 0xC3F1, 0x6C12, 0x9ADC, + 0x6C13, 0xC3A5, 0x6C14, 0xC6F8, 0x6C15, 0xEBAD, 0x6C16, 0xC4CA, + 0x6C17, 0x9ADD, 0x6C18, 0xEBAE, 0x6C19, 0xEBAF, 0x6C1A, 0xEBB0, + 0x6C1B, 0xB7D5, 0x6C1C, 0x9ADE, 0x6C1D, 0x9ADF, 0x6C1E, 0x9AE0, + 0x6C1F, 0xB7FA, 0x6C20, 0x9AE1, 0x6C21, 0xEBB1, 0x6C22, 0xC7E2, + 0x6C23, 0x9AE2, 0x6C24, 0xEBB3, 0x6C25, 0x9AE3, 0x6C26, 0xBAA4, + 0x6C27, 0xD1F5, 0x6C28, 0xB0B1, 0x6C29, 0xEBB2, 0x6C2A, 0xEBB4, + 0x6C2B, 0x9AE4, 0x6C2C, 0x9AE5, 0x6C2D, 0x9AE6, 0x6C2E, 0xB5AA, + 0x6C2F, 0xC2C8, 0x6C30, 0xC7E8, 0x6C31, 0x9AE7, 0x6C32, 0xEBB5, + 0x6C33, 0x9AE8, 0x6C34, 0xCBAE, 0x6C35, 0xE3DF, 0x6C36, 0x9AE9, + 0x6C37, 0x9AEA, 0x6C38, 0xD3C0, 0x6C39, 0x9AEB, 0x6C3A, 0x9AEC, + 0x6C3B, 0x9AED, 0x6C3C, 0x9AEE, 0x6C3D, 0xD9DB, 0x6C3E, 0x9AEF, + 0x6C3F, 0x9AF0, 0x6C40, 0xCDA1, 0x6C41, 0xD6AD, 0x6C42, 0xC7F3, + 0x6C43, 0x9AF1, 0x6C44, 0x9AF2, 0x6C45, 0x9AF3, 0x6C46, 0xD9E0, + 0x6C47, 0xBBE3, 0x6C48, 0x9AF4, 0x6C49, 0xBABA, 0x6C4A, 0xE3E2, + 0x6C4B, 0x9AF5, 0x6C4C, 0x9AF6, 0x6C4D, 0x9AF7, 0x6C4E, 0x9AF8, + 0x6C4F, 0x9AF9, 0x6C50, 0xCFAB, 0x6C51, 0x9AFA, 0x6C52, 0x9AFB, + 0x6C53, 0x9AFC, 0x6C54, 0xE3E0, 0x6C55, 0xC9C7, 0x6C56, 0x9AFD, + 0x6C57, 0xBAB9, 0x6C58, 0x9AFE, 0x6C59, 0x9B40, 0x6C5A, 0x9B41, + 0x6C5B, 0xD1B4, 0x6C5C, 0xE3E1, 0x6C5D, 0xC8EA, 0x6C5E, 0xB9AF, + 0x6C5F, 0xBDAD, 0x6C60, 0xB3D8, 0x6C61, 0xCEDB, 0x6C62, 0x9B42, + 0x6C63, 0x9B43, 0x6C64, 0xCCC0, 0x6C65, 0x9B44, 0x6C66, 0x9B45, + 0x6C67, 0x9B46, 0x6C68, 0xE3E8, 0x6C69, 0xE3E9, 0x6C6A, 0xCDF4, + 0x6C6B, 0x9B47, 0x6C6C, 0x9B48, 0x6C6D, 0x9B49, 0x6C6E, 0x9B4A, + 0x6C6F, 0x9B4B, 0x6C70, 0xCCAD, 0x6C71, 0x9B4C, 0x6C72, 0xBCB3, + 0x6C73, 0x9B4D, 0x6C74, 0xE3EA, 0x6C75, 0x9B4E, 0x6C76, 0xE3EB, + 0x6C77, 0x9B4F, 0x6C78, 0x9B50, 0x6C79, 0xD0DA, 0x6C7A, 0x9B51, + 0x6C7B, 0x9B52, 0x6C7C, 0x9B53, 0x6C7D, 0xC6FB, 0x6C7E, 0xB7DA, + 0x6C7F, 0x9B54, 0x6C80, 0x9B55, 0x6C81, 0xC7DF, 0x6C82, 0xD2CA, + 0x6C83, 0xCED6, 0x6C84, 0x9B56, 0x6C85, 0xE3E4, 0x6C86, 0xE3EC, + 0x6C87, 0x9B57, 0x6C88, 0xC9F2, 0x6C89, 0xB3C1, 0x6C8A, 0x9B58, + 0x6C8B, 0x9B59, 0x6C8C, 0xE3E7, 0x6C8D, 0x9B5A, 0x6C8E, 0x9B5B, + 0x6C8F, 0xC6E3, 0x6C90, 0xE3E5, 0x6C91, 0x9B5C, 0x6C92, 0x9B5D, + 0x6C93, 0xEDB3, 0x6C94, 0xE3E6, 0x6C95, 0x9B5E, 0x6C96, 0x9B5F, + 0x6C97, 0x9B60, 0x6C98, 0x9B61, 0x6C99, 0xC9B3, 0x6C9A, 0x9B62, + 0x6C9B, 0xC5E6, 0x6C9C, 0x9B63, 0x6C9D, 0x9B64, 0x6C9E, 0x9B65, + 0x6C9F, 0xB9B5, 0x6CA0, 0x9B66, 0x6CA1, 0xC3BB, 0x6CA2, 0x9B67, + 0x6CA3, 0xE3E3, 0x6CA4, 0xC5BD, 0x6CA5, 0xC1A4, 0x6CA6, 0xC2D9, + 0x6CA7, 0xB2D7, 0x6CA8, 0x9B68, 0x6CA9, 0xE3ED, 0x6CAA, 0xBBA6, + 0x6CAB, 0xC4AD, 0x6CAC, 0x9B69, 0x6CAD, 0xE3F0, 0x6CAE, 0xBEDA, + 0x6CAF, 0x9B6A, 0x6CB0, 0x9B6B, 0x6CB1, 0xE3FB, 0x6CB2, 0xE3F5, + 0x6CB3, 0xBAD3, 0x6CB4, 0x9B6C, 0x6CB5, 0x9B6D, 0x6CB6, 0x9B6E, + 0x6CB7, 0x9B6F, 0x6CB8, 0xB7D0, 0x6CB9, 0xD3CD, 0x6CBA, 0x9B70, + 0x6CBB, 0xD6CE, 0x6CBC, 0xD5D3, 0x6CBD, 0xB9C1, 0x6CBE, 0xD5B4, + 0x6CBF, 0xD1D8, 0x6CC0, 0x9B71, 0x6CC1, 0x9B72, 0x6CC2, 0x9B73, + 0x6CC3, 0x9B74, 0x6CC4, 0xD0B9, 0x6CC5, 0xC7F6, 0x6CC6, 0x9B75, + 0x6CC7, 0x9B76, 0x6CC8, 0x9B77, 0x6CC9, 0xC8AA, 0x6CCA, 0xB2B4, + 0x6CCB, 0x9B78, 0x6CCC, 0xC3DA, 0x6CCD, 0x9B79, 0x6CCE, 0x9B7A, + 0x6CCF, 0x9B7B, 0x6CD0, 0xE3EE, 0x6CD1, 0x9B7C, 0x6CD2, 0x9B7D, + 0x6CD3, 0xE3FC, 0x6CD4, 0xE3EF, 0x6CD5, 0xB7A8, 0x6CD6, 0xE3F7, + 0x6CD7, 0xE3F4, 0x6CD8, 0x9B7E, 0x6CD9, 0x9B80, 0x6CDA, 0x9B81, + 0x6CDB, 0xB7BA, 0x6CDC, 0x9B82, 0x6CDD, 0x9B83, 0x6CDE, 0xC5A2, + 0x6CDF, 0x9B84, 0x6CE0, 0xE3F6, 0x6CE1, 0xC5DD, 0x6CE2, 0xB2A8, + 0x6CE3, 0xC6FC, 0x6CE4, 0x9B85, 0x6CE5, 0xC4E0, 0x6CE6, 0x9B86, + 0x6CE7, 0x9B87, 0x6CE8, 0xD7A2, 0x6CE9, 0x9B88, 0x6CEA, 0xC0E1, + 0x6CEB, 0xE3F9, 0x6CEC, 0x9B89, 0x6CED, 0x9B8A, 0x6CEE, 0xE3FA, + 0x6CEF, 0xE3FD, 0x6CF0, 0xCCA9, 0x6CF1, 0xE3F3, 0x6CF2, 0x9B8B, + 0x6CF3, 0xD3BE, 0x6CF4, 0x9B8C, 0x6CF5, 0xB1C3, 0x6CF6, 0xEDB4, + 0x6CF7, 0xE3F1, 0x6CF8, 0xE3F2, 0x6CF9, 0x9B8D, 0x6CFA, 0xE3F8, + 0x6CFB, 0xD0BA, 0x6CFC, 0xC6C3, 0x6CFD, 0xD4F3, 0x6CFE, 0xE3FE, + 0x6CFF, 0x9B8E, 0x6D00, 0x9B8F, 0x6D01, 0xBDE0, 0x6D02, 0x9B90, + 0x6D03, 0x9B91, 0x6D04, 0xE4A7, 0x6D05, 0x9B92, 0x6D06, 0x9B93, + 0x6D07, 0xE4A6, 0x6D08, 0x9B94, 0x6D09, 0x9B95, 0x6D0A, 0x9B96, + 0x6D0B, 0xD1F3, 0x6D0C, 0xE4A3, 0x6D0D, 0x9B97, 0x6D0E, 0xE4A9, + 0x6D0F, 0x9B98, 0x6D10, 0x9B99, 0x6D11, 0x9B9A, 0x6D12, 0xC8F7, + 0x6D13, 0x9B9B, 0x6D14, 0x9B9C, 0x6D15, 0x9B9D, 0x6D16, 0x9B9E, + 0x6D17, 0xCFB4, 0x6D18, 0x9B9F, 0x6D19, 0xE4A8, 0x6D1A, 0xE4AE, + 0x6D1B, 0xC2E5, 0x6D1C, 0x9BA0, 0x6D1D, 0x9BA1, 0x6D1E, 0xB6B4, + 0x6D1F, 0x9BA2, 0x6D20, 0x9BA3, 0x6D21, 0x9BA4, 0x6D22, 0x9BA5, + 0x6D23, 0x9BA6, 0x6D24, 0x9BA7, 0x6D25, 0xBDF2, 0x6D26, 0x9BA8, + 0x6D27, 0xE4A2, 0x6D28, 0x9BA9, 0x6D29, 0x9BAA, 0x6D2A, 0xBAE9, + 0x6D2B, 0xE4AA, 0x6D2C, 0x9BAB, 0x6D2D, 0x9BAC, 0x6D2E, 0xE4AC, + 0x6D2F, 0x9BAD, 0x6D30, 0x9BAE, 0x6D31, 0xB6FD, 0x6D32, 0xD6DE, + 0x6D33, 0xE4B2, 0x6D34, 0x9BAF, 0x6D35, 0xE4AD, 0x6D36, 0x9BB0, + 0x6D37, 0x9BB1, 0x6D38, 0x9BB2, 0x6D39, 0xE4A1, 0x6D3A, 0x9BB3, + 0x6D3B, 0xBBEE, 0x6D3C, 0xCDDD, 0x6D3D, 0xC7A2, 0x6D3E, 0xC5C9, + 0x6D3F, 0x9BB4, 0x6D40, 0x9BB5, 0x6D41, 0xC1F7, 0x6D42, 0x9BB6, + 0x6D43, 0xE4A4, 0x6D44, 0x9BB7, 0x6D45, 0xC7B3, 0x6D46, 0xBDAC, + 0x6D47, 0xBDBD, 0x6D48, 0xE4A5, 0x6D49, 0x9BB8, 0x6D4A, 0xD7C7, + 0x6D4B, 0xB2E2, 0x6D4C, 0x9BB9, 0x6D4D, 0xE4AB, 0x6D4E, 0xBCC3, + 0x6D4F, 0xE4AF, 0x6D50, 0x9BBA, 0x6D51, 0xBBEB, 0x6D52, 0xE4B0, + 0x6D53, 0xC5A8, 0x6D54, 0xE4B1, 0x6D55, 0x9BBB, 0x6D56, 0x9BBC, + 0x6D57, 0x9BBD, 0x6D58, 0x9BBE, 0x6D59, 0xD5E3, 0x6D5A, 0xBFA3, + 0x6D5B, 0x9BBF, 0x6D5C, 0xE4BA, 0x6D5D, 0x9BC0, 0x6D5E, 0xE4B7, + 0x6D5F, 0x9BC1, 0x6D60, 0xE4BB, 0x6D61, 0x9BC2, 0x6D62, 0x9BC3, + 0x6D63, 0xE4BD, 0x6D64, 0x9BC4, 0x6D65, 0x9BC5, 0x6D66, 0xC6D6, + 0x6D67, 0x9BC6, 0x6D68, 0x9BC7, 0x6D69, 0xBAC6, 0x6D6A, 0xC0CB, + 0x6D6B, 0x9BC8, 0x6D6C, 0x9BC9, 0x6D6D, 0x9BCA, 0x6D6E, 0xB8A1, + 0x6D6F, 0xE4B4, 0x6D70, 0x9BCB, 0x6D71, 0x9BCC, 0x6D72, 0x9BCD, + 0x6D73, 0x9BCE, 0x6D74, 0xD4A1, 0x6D75, 0x9BCF, 0x6D76, 0x9BD0, + 0x6D77, 0xBAA3, 0x6D78, 0xBDFE, 0x6D79, 0x9BD1, 0x6D7A, 0x9BD2, + 0x6D7B, 0x9BD3, 0x6D7C, 0xE4BC, 0x6D7D, 0x9BD4, 0x6D7E, 0x9BD5, + 0x6D7F, 0x9BD6, 0x6D80, 0x9BD7, 0x6D81, 0x9BD8, 0x6D82, 0xCDBF, + 0x6D83, 0x9BD9, 0x6D84, 0x9BDA, 0x6D85, 0xC4F9, 0x6D86, 0x9BDB, + 0x6D87, 0x9BDC, 0x6D88, 0xCFFB, 0x6D89, 0xC9E6, 0x6D8A, 0x9BDD, + 0x6D8B, 0x9BDE, 0x6D8C, 0xD3BF, 0x6D8D, 0x9BDF, 0x6D8E, 0xCFD1, + 0x6D8F, 0x9BE0, 0x6D90, 0x9BE1, 0x6D91, 0xE4B3, 0x6D92, 0x9BE2, + 0x6D93, 0xE4B8, 0x6D94, 0xE4B9, 0x6D95, 0xCCE9, 0x6D96, 0x9BE3, + 0x6D97, 0x9BE4, 0x6D98, 0x9BE5, 0x6D99, 0x9BE6, 0x6D9A, 0x9BE7, + 0x6D9B, 0xCCCE, 0x6D9C, 0x9BE8, 0x6D9D, 0xC0D4, 0x6D9E, 0xE4B5, + 0x6D9F, 0xC1B0, 0x6DA0, 0xE4B6, 0x6DA1, 0xCED0, 0x6DA2, 0x9BE9, + 0x6DA3, 0xBBC1, 0x6DA4, 0xB5D3, 0x6DA5, 0x9BEA, 0x6DA6, 0xC8F3, + 0x6DA7, 0xBDA7, 0x6DA8, 0xD5C7, 0x6DA9, 0xC9AC, 0x6DAA, 0xB8A2, + 0x6DAB, 0xE4CA, 0x6DAC, 0x9BEB, 0x6DAD, 0x9BEC, 0x6DAE, 0xE4CC, + 0x6DAF, 0xD1C4, 0x6DB0, 0x9BED, 0x6DB1, 0x9BEE, 0x6DB2, 0xD2BA, + 0x6DB3, 0x9BEF, 0x6DB4, 0x9BF0, 0x6DB5, 0xBAAD, 0x6DB6, 0x9BF1, + 0x6DB7, 0x9BF2, 0x6DB8, 0xBAD4, 0x6DB9, 0x9BF3, 0x6DBA, 0x9BF4, + 0x6DBB, 0x9BF5, 0x6DBC, 0x9BF6, 0x6DBD, 0x9BF7, 0x6DBE, 0x9BF8, + 0x6DBF, 0xE4C3, 0x6DC0, 0xB5ED, 0x6DC1, 0x9BF9, 0x6DC2, 0x9BFA, + 0x6DC3, 0x9BFB, 0x6DC4, 0xD7CD, 0x6DC5, 0xE4C0, 0x6DC6, 0xCFFD, + 0x6DC7, 0xE4BF, 0x6DC8, 0x9BFC, 0x6DC9, 0x9BFD, 0x6DCA, 0x9BFE, + 0x6DCB, 0xC1DC, 0x6DCC, 0xCCCA, 0x6DCD, 0x9C40, 0x6DCE, 0x9C41, + 0x6DCF, 0x9C42, 0x6DD0, 0x9C43, 0x6DD1, 0xCAE7, 0x6DD2, 0x9C44, + 0x6DD3, 0x9C45, 0x6DD4, 0x9C46, 0x6DD5, 0x9C47, 0x6DD6, 0xC4D7, + 0x6DD7, 0x9C48, 0x6DD8, 0xCCD4, 0x6DD9, 0xE4C8, 0x6DDA, 0x9C49, + 0x6DDB, 0x9C4A, 0x6DDC, 0x9C4B, 0x6DDD, 0xE4C7, 0x6DDE, 0xE4C1, + 0x6DDF, 0x9C4C, 0x6DE0, 0xE4C4, 0x6DE1, 0xB5AD, 0x6DE2, 0x9C4D, + 0x6DE3, 0x9C4E, 0x6DE4, 0xD3D9, 0x6DE5, 0x9C4F, 0x6DE6, 0xE4C6, + 0x6DE7, 0x9C50, 0x6DE8, 0x9C51, 0x6DE9, 0x9C52, 0x6DEA, 0x9C53, + 0x6DEB, 0xD2F9, 0x6DEC, 0xB4E3, 0x6DED, 0x9C54, 0x6DEE, 0xBBB4, + 0x6DEF, 0x9C55, 0x6DF0, 0x9C56, 0x6DF1, 0xC9EE, 0x6DF2, 0x9C57, + 0x6DF3, 0xB4BE, 0x6DF4, 0x9C58, 0x6DF5, 0x9C59, 0x6DF6, 0x9C5A, + 0x6DF7, 0xBBEC, 0x6DF8, 0x9C5B, 0x6DF9, 0xD1CD, 0x6DFA, 0x9C5C, + 0x6DFB, 0xCCED, 0x6DFC, 0xEDB5, 0x6DFD, 0x9C5D, 0x6DFE, 0x9C5E, + 0x6DFF, 0x9C5F, 0x6E00, 0x9C60, 0x6E01, 0x9C61, 0x6E02, 0x9C62, + 0x6E03, 0x9C63, 0x6E04, 0x9C64, 0x6E05, 0xC7E5, 0x6E06, 0x9C65, + 0x6E07, 0x9C66, 0x6E08, 0x9C67, 0x6E09, 0x9C68, 0x6E0A, 0xD4A8, + 0x6E0B, 0x9C69, 0x6E0C, 0xE4CB, 0x6E0D, 0xD7D5, 0x6E0E, 0xE4C2, + 0x6E0F, 0x9C6A, 0x6E10, 0xBDA5, 0x6E11, 0xE4C5, 0x6E12, 0x9C6B, + 0x6E13, 0x9C6C, 0x6E14, 0xD3E6, 0x6E15, 0x9C6D, 0x6E16, 0xE4C9, + 0x6E17, 0xC9F8, 0x6E18, 0x9C6E, 0x6E19, 0x9C6F, 0x6E1A, 0xE4BE, + 0x6E1B, 0x9C70, 0x6E1C, 0x9C71, 0x6E1D, 0xD3E5, 0x6E1E, 0x9C72, + 0x6E1F, 0x9C73, 0x6E20, 0xC7FE, 0x6E21, 0xB6C9, 0x6E22, 0x9C74, + 0x6E23, 0xD4FC, 0x6E24, 0xB2B3, 0x6E25, 0xE4D7, 0x6E26, 0x9C75, + 0x6E27, 0x9C76, 0x6E28, 0x9C77, 0x6E29, 0xCEC2, 0x6E2A, 0x9C78, + 0x6E2B, 0xE4CD, 0x6E2C, 0x9C79, 0x6E2D, 0xCEBC, 0x6E2E, 0x9C7A, + 0x6E2F, 0xB8DB, 0x6E30, 0x9C7B, 0x6E31, 0x9C7C, 0x6E32, 0xE4D6, + 0x6E33, 0x9C7D, 0x6E34, 0xBFCA, 0x6E35, 0x9C7E, 0x6E36, 0x9C80, + 0x6E37, 0x9C81, 0x6E38, 0xD3CE, 0x6E39, 0x9C82, 0x6E3A, 0xC3EC, + 0x6E3B, 0x9C83, 0x6E3C, 0x9C84, 0x6E3D, 0x9C85, 0x6E3E, 0x9C86, + 0x6E3F, 0x9C87, 0x6E40, 0x9C88, 0x6E41, 0x9C89, 0x6E42, 0x9C8A, + 0x6E43, 0xC5C8, 0x6E44, 0xE4D8, 0x6E45, 0x9C8B, 0x6E46, 0x9C8C, + 0x6E47, 0x9C8D, 0x6E48, 0x9C8E, 0x6E49, 0x9C8F, 0x6E4A, 0x9C90, + 0x6E4B, 0x9C91, 0x6E4C, 0x9C92, 0x6E4D, 0xCDC4, 0x6E4E, 0xE4CF, + 0x6E4F, 0x9C93, 0x6E50, 0x9C94, 0x6E51, 0x9C95, 0x6E52, 0x9C96, + 0x6E53, 0xE4D4, 0x6E54, 0xE4D5, 0x6E55, 0x9C97, 0x6E56, 0xBAFE, + 0x6E57, 0x9C98, 0x6E58, 0xCFE6, 0x6E59, 0x9C99, 0x6E5A, 0x9C9A, + 0x6E5B, 0xD5BF, 0x6E5C, 0x9C9B, 0x6E5D, 0x9C9C, 0x6E5E, 0x9C9D, + 0x6E5F, 0xE4D2, 0x6E60, 0x9C9E, 0x6E61, 0x9C9F, 0x6E62, 0x9CA0, + 0x6E63, 0x9CA1, 0x6E64, 0x9CA2, 0x6E65, 0x9CA3, 0x6E66, 0x9CA4, + 0x6E67, 0x9CA5, 0x6E68, 0x9CA6, 0x6E69, 0x9CA7, 0x6E6A, 0x9CA8, + 0x6E6B, 0xE4D0, 0x6E6C, 0x9CA9, 0x6E6D, 0x9CAA, 0x6E6E, 0xE4CE, + 0x6E6F, 0x9CAB, 0x6E70, 0x9CAC, 0x6E71, 0x9CAD, 0x6E72, 0x9CAE, + 0x6E73, 0x9CAF, 0x6E74, 0x9CB0, 0x6E75, 0x9CB1, 0x6E76, 0x9CB2, + 0x6E77, 0x9CB3, 0x6E78, 0x9CB4, 0x6E79, 0x9CB5, 0x6E7A, 0x9CB6, + 0x6E7B, 0x9CB7, 0x6E7C, 0x9CB8, 0x6E7D, 0x9CB9, 0x6E7E, 0xCDE5, + 0x6E7F, 0xCAAA, 0x6E80, 0x9CBA, 0x6E81, 0x9CBB, 0x6E82, 0x9CBC, + 0x6E83, 0xC0A3, 0x6E84, 0x9CBD, 0x6E85, 0xBDA6, 0x6E86, 0xE4D3, + 0x6E87, 0x9CBE, 0x6E88, 0x9CBF, 0x6E89, 0xB8C8, 0x6E8A, 0x9CC0, + 0x6E8B, 0x9CC1, 0x6E8C, 0x9CC2, 0x6E8D, 0x9CC3, 0x6E8E, 0x9CC4, + 0x6E8F, 0xE4E7, 0x6E90, 0xD4B4, 0x6E91, 0x9CC5, 0x6E92, 0x9CC6, + 0x6E93, 0x9CC7, 0x6E94, 0x9CC8, 0x6E95, 0x9CC9, 0x6E96, 0x9CCA, + 0x6E97, 0x9CCB, 0x6E98, 0xE4DB, 0x6E99, 0x9CCC, 0x6E9A, 0x9CCD, + 0x6E9B, 0x9CCE, 0x6E9C, 0xC1EF, 0x6E9D, 0x9CCF, 0x6E9E, 0x9CD0, + 0x6E9F, 0xE4E9, 0x6EA0, 0x9CD1, 0x6EA1, 0x9CD2, 0x6EA2, 0xD2E7, + 0x6EA3, 0x9CD3, 0x6EA4, 0x9CD4, 0x6EA5, 0xE4DF, 0x6EA6, 0x9CD5, + 0x6EA7, 0xE4E0, 0x6EA8, 0x9CD6, 0x6EA9, 0x9CD7, 0x6EAA, 0xCFAA, + 0x6EAB, 0x9CD8, 0x6EAC, 0x9CD9, 0x6EAD, 0x9CDA, 0x6EAE, 0x9CDB, + 0x6EAF, 0xCBDD, 0x6EB0, 0x9CDC, 0x6EB1, 0xE4DA, 0x6EB2, 0xE4D1, + 0x6EB3, 0x9CDD, 0x6EB4, 0xE4E5, 0x6EB5, 0x9CDE, 0x6EB6, 0xC8DC, + 0x6EB7, 0xE4E3, 0x6EB8, 0x9CDF, 0x6EB9, 0x9CE0, 0x6EBA, 0xC4E7, + 0x6EBB, 0xE4E2, 0x6EBC, 0x9CE1, 0x6EBD, 0xE4E1, 0x6EBE, 0x9CE2, + 0x6EBF, 0x9CE3, 0x6EC0, 0x9CE4, 0x6EC1, 0xB3FC, 0x6EC2, 0xE4E8, + 0x6EC3, 0x9CE5, 0x6EC4, 0x9CE6, 0x6EC5, 0x9CE7, 0x6EC6, 0x9CE8, + 0x6EC7, 0xB5E1, 0x6EC8, 0x9CE9, 0x6EC9, 0x9CEA, 0x6ECA, 0x9CEB, + 0x6ECB, 0xD7CC, 0x6ECC, 0x9CEC, 0x6ECD, 0x9CED, 0x6ECE, 0x9CEE, + 0x6ECF, 0xE4E6, 0x6ED0, 0x9CEF, 0x6ED1, 0xBBAC, 0x6ED2, 0x9CF0, + 0x6ED3, 0xD7D2, 0x6ED4, 0xCCCF, 0x6ED5, 0xEBF8, 0x6ED6, 0x9CF1, + 0x6ED7, 0xE4E4, 0x6ED8, 0x9CF2, 0x6ED9, 0x9CF3, 0x6EDA, 0xB9F6, + 0x6EDB, 0x9CF4, 0x6EDC, 0x9CF5, 0x6EDD, 0x9CF6, 0x6EDE, 0xD6CD, + 0x6EDF, 0xE4D9, 0x6EE0, 0xE4DC, 0x6EE1, 0xC2FA, 0x6EE2, 0xE4DE, + 0x6EE3, 0x9CF7, 0x6EE4, 0xC2CB, 0x6EE5, 0xC0C4, 0x6EE6, 0xC2D0, + 0x6EE7, 0x9CF8, 0x6EE8, 0xB1F5, 0x6EE9, 0xCCB2, 0x6EEA, 0x9CF9, + 0x6EEB, 0x9CFA, 0x6EEC, 0x9CFB, 0x6EED, 0x9CFC, 0x6EEE, 0x9CFD, + 0x6EEF, 0x9CFE, 0x6EF0, 0x9D40, 0x6EF1, 0x9D41, 0x6EF2, 0x9D42, + 0x6EF3, 0x9D43, 0x6EF4, 0xB5CE, 0x6EF5, 0x9D44, 0x6EF6, 0x9D45, + 0x6EF7, 0x9D46, 0x6EF8, 0x9D47, 0x6EF9, 0xE4EF, 0x6EFA, 0x9D48, + 0x6EFB, 0x9D49, 0x6EFC, 0x9D4A, 0x6EFD, 0x9D4B, 0x6EFE, 0x9D4C, + 0x6EFF, 0x9D4D, 0x6F00, 0x9D4E, 0x6F01, 0x9D4F, 0x6F02, 0xC6AF, + 0x6F03, 0x9D50, 0x6F04, 0x9D51, 0x6F05, 0x9D52, 0x6F06, 0xC6E1, + 0x6F07, 0x9D53, 0x6F08, 0x9D54, 0x6F09, 0xE4F5, 0x6F0A, 0x9D55, + 0x6F0B, 0x9D56, 0x6F0C, 0x9D57, 0x6F0D, 0x9D58, 0x6F0E, 0x9D59, + 0x6F0F, 0xC2A9, 0x6F10, 0x9D5A, 0x6F11, 0x9D5B, 0x6F12, 0x9D5C, + 0x6F13, 0xC0EC, 0x6F14, 0xD1DD, 0x6F15, 0xE4EE, 0x6F16, 0x9D5D, + 0x6F17, 0x9D5E, 0x6F18, 0x9D5F, 0x6F19, 0x9D60, 0x6F1A, 0x9D61, + 0x6F1B, 0x9D62, 0x6F1C, 0x9D63, 0x6F1D, 0x9D64, 0x6F1E, 0x9D65, + 0x6F1F, 0x9D66, 0x6F20, 0xC4AE, 0x6F21, 0x9D67, 0x6F22, 0x9D68, + 0x6F23, 0x9D69, 0x6F24, 0xE4ED, 0x6F25, 0x9D6A, 0x6F26, 0x9D6B, + 0x6F27, 0x9D6C, 0x6F28, 0x9D6D, 0x6F29, 0xE4F6, 0x6F2A, 0xE4F4, + 0x6F2B, 0xC2FE, 0x6F2C, 0x9D6E, 0x6F2D, 0xE4DD, 0x6F2E, 0x9D6F, + 0x6F2F, 0xE4F0, 0x6F30, 0x9D70, 0x6F31, 0xCAFE, 0x6F32, 0x9D71, + 0x6F33, 0xD5C4, 0x6F34, 0x9D72, 0x6F35, 0x9D73, 0x6F36, 0xE4F1, + 0x6F37, 0x9D74, 0x6F38, 0x9D75, 0x6F39, 0x9D76, 0x6F3A, 0x9D77, + 0x6F3B, 0x9D78, 0x6F3C, 0x9D79, 0x6F3D, 0x9D7A, 0x6F3E, 0xD1FA, + 0x6F3F, 0x9D7B, 0x6F40, 0x9D7C, 0x6F41, 0x9D7D, 0x6F42, 0x9D7E, + 0x6F43, 0x9D80, 0x6F44, 0x9D81, 0x6F45, 0x9D82, 0x6F46, 0xE4EB, + 0x6F47, 0xE4EC, 0x6F48, 0x9D83, 0x6F49, 0x9D84, 0x6F4A, 0x9D85, + 0x6F4B, 0xE4F2, 0x6F4C, 0x9D86, 0x6F4D, 0xCEAB, 0x6F4E, 0x9D87, + 0x6F4F, 0x9D88, 0x6F50, 0x9D89, 0x6F51, 0x9D8A, 0x6F52, 0x9D8B, + 0x6F53, 0x9D8C, 0x6F54, 0x9D8D, 0x6F55, 0x9D8E, 0x6F56, 0x9D8F, + 0x6F57, 0x9D90, 0x6F58, 0xC5CB, 0x6F59, 0x9D91, 0x6F5A, 0x9D92, + 0x6F5B, 0x9D93, 0x6F5C, 0xC7B1, 0x6F5D, 0x9D94, 0x6F5E, 0xC2BA, + 0x6F5F, 0x9D95, 0x6F60, 0x9D96, 0x6F61, 0x9D97, 0x6F62, 0xE4EA, + 0x6F63, 0x9D98, 0x6F64, 0x9D99, 0x6F65, 0x9D9A, 0x6F66, 0xC1CA, + 0x6F67, 0x9D9B, 0x6F68, 0x9D9C, 0x6F69, 0x9D9D, 0x6F6A, 0x9D9E, + 0x6F6B, 0x9D9F, 0x6F6C, 0x9DA0, 0x6F6D, 0xCCB6, 0x6F6E, 0xB3B1, + 0x6F6F, 0x9DA1, 0x6F70, 0x9DA2, 0x6F71, 0x9DA3, 0x6F72, 0xE4FB, + 0x6F73, 0x9DA4, 0x6F74, 0xE4F3, 0x6F75, 0x9DA5, 0x6F76, 0x9DA6, + 0x6F77, 0x9DA7, 0x6F78, 0xE4FA, 0x6F79, 0x9DA8, 0x6F7A, 0xE4FD, + 0x6F7B, 0x9DA9, 0x6F7C, 0xE4FC, 0x6F7D, 0x9DAA, 0x6F7E, 0x9DAB, + 0x6F7F, 0x9DAC, 0x6F80, 0x9DAD, 0x6F81, 0x9DAE, 0x6F82, 0x9DAF, + 0x6F83, 0x9DB0, 0x6F84, 0xB3CE, 0x6F85, 0x9DB1, 0x6F86, 0x9DB2, + 0x6F87, 0x9DB3, 0x6F88, 0xB3BA, 0x6F89, 0xE4F7, 0x6F8A, 0x9DB4, + 0x6F8B, 0x9DB5, 0x6F8C, 0xE4F9, 0x6F8D, 0xE4F8, 0x6F8E, 0xC5EC, + 0x6F8F, 0x9DB6, 0x6F90, 0x9DB7, 0x6F91, 0x9DB8, 0x6F92, 0x9DB9, + 0x6F93, 0x9DBA, 0x6F94, 0x9DBB, 0x6F95, 0x9DBC, 0x6F96, 0x9DBD, + 0x6F97, 0x9DBE, 0x6F98, 0x9DBF, 0x6F99, 0x9DC0, 0x6F9A, 0x9DC1, + 0x6F9B, 0x9DC2, 0x6F9C, 0xC0BD, 0x6F9D, 0x9DC3, 0x6F9E, 0x9DC4, + 0x6F9F, 0x9DC5, 0x6FA0, 0x9DC6, 0x6FA1, 0xD4E8, 0x6FA2, 0x9DC7, + 0x6FA3, 0x9DC8, 0x6FA4, 0x9DC9, 0x6FA5, 0x9DCA, 0x6FA6, 0x9DCB, + 0x6FA7, 0xE5A2, 0x6FA8, 0x9DCC, 0x6FA9, 0x9DCD, 0x6FAA, 0x9DCE, + 0x6FAB, 0x9DCF, 0x6FAC, 0x9DD0, 0x6FAD, 0x9DD1, 0x6FAE, 0x9DD2, + 0x6FAF, 0x9DD3, 0x6FB0, 0x9DD4, 0x6FB1, 0x9DD5, 0x6FB2, 0x9DD6, + 0x6FB3, 0xB0C4, 0x6FB4, 0x9DD7, 0x6FB5, 0x9DD8, 0x6FB6, 0xE5A4, + 0x6FB7, 0x9DD9, 0x6FB8, 0x9DDA, 0x6FB9, 0xE5A3, 0x6FBA, 0x9DDB, + 0x6FBB, 0x9DDC, 0x6FBC, 0x9DDD, 0x6FBD, 0x9DDE, 0x6FBE, 0x9DDF, + 0x6FBF, 0x9DE0, 0x6FC0, 0xBCA4, 0x6FC1, 0x9DE1, 0x6FC2, 0xE5A5, + 0x6FC3, 0x9DE2, 0x6FC4, 0x9DE3, 0x6FC5, 0x9DE4, 0x6FC6, 0x9DE5, + 0x6FC7, 0x9DE6, 0x6FC8, 0x9DE7, 0x6FC9, 0xE5A1, 0x6FCA, 0x9DE8, + 0x6FCB, 0x9DE9, 0x6FCC, 0x9DEA, 0x6FCD, 0x9DEB, 0x6FCE, 0x9DEC, + 0x6FCF, 0x9DED, 0x6FD0, 0x9DEE, 0x6FD1, 0xE4FE, 0x6FD2, 0xB1F4, + 0x6FD3, 0x9DEF, 0x6FD4, 0x9DF0, 0x6FD5, 0x9DF1, 0x6FD6, 0x9DF2, + 0x6FD7, 0x9DF3, 0x6FD8, 0x9DF4, 0x6FD9, 0x9DF5, 0x6FDA, 0x9DF6, + 0x6FDB, 0x9DF7, 0x6FDC, 0x9DF8, 0x6FDD, 0x9DF9, 0x6FDE, 0xE5A8, + 0x6FDF, 0x9DFA, 0x6FE0, 0xE5A9, 0x6FE1, 0xE5A6, 0x6FE2, 0x9DFB, + 0x6FE3, 0x9DFC, 0x6FE4, 0x9DFD, 0x6FE5, 0x9DFE, 0x6FE6, 0x9E40, + 0x6FE7, 0x9E41, 0x6FE8, 0x9E42, 0x6FE9, 0x9E43, 0x6FEA, 0x9E44, + 0x6FEB, 0x9E45, 0x6FEC, 0x9E46, 0x6FED, 0x9E47, 0x6FEE, 0xE5A7, + 0x6FEF, 0xE5AA, 0x6FF0, 0x9E48, 0x6FF1, 0x9E49, 0x6FF2, 0x9E4A, + 0x6FF3, 0x9E4B, 0x6FF4, 0x9E4C, 0x6FF5, 0x9E4D, 0x6FF6, 0x9E4E, + 0x6FF7, 0x9E4F, 0x6FF8, 0x9E50, 0x6FF9, 0x9E51, 0x6FFA, 0x9E52, + 0x6FFB, 0x9E53, 0x6FFC, 0x9E54, 0x6FFD, 0x9E55, 0x6FFE, 0x9E56, + 0x6FFF, 0x9E57, 0x7000, 0x9E58, 0x7001, 0x9E59, 0x7002, 0x9E5A, + 0x7003, 0x9E5B, 0x7004, 0x9E5C, 0x7005, 0x9E5D, 0x7006, 0x9E5E, + 0x7007, 0x9E5F, 0x7008, 0x9E60, 0x7009, 0x9E61, 0x700A, 0x9E62, + 0x700B, 0x9E63, 0x700C, 0x9E64, 0x700D, 0x9E65, 0x700E, 0x9E66, + 0x700F, 0x9E67, 0x7010, 0x9E68, 0x7011, 0xC6D9, 0x7012, 0x9E69, + 0x7013, 0x9E6A, 0x7014, 0x9E6B, 0x7015, 0x9E6C, 0x7016, 0x9E6D, + 0x7017, 0x9E6E, 0x7018, 0x9E6F, 0x7019, 0x9E70, 0x701A, 0xE5AB, + 0x701B, 0xE5AD, 0x701C, 0x9E71, 0x701D, 0x9E72, 0x701E, 0x9E73, + 0x701F, 0x9E74, 0x7020, 0x9E75, 0x7021, 0x9E76, 0x7022, 0x9E77, + 0x7023, 0xE5AC, 0x7024, 0x9E78, 0x7025, 0x9E79, 0x7026, 0x9E7A, + 0x7027, 0x9E7B, 0x7028, 0x9E7C, 0x7029, 0x9E7D, 0x702A, 0x9E7E, + 0x702B, 0x9E80, 0x702C, 0x9E81, 0x702D, 0x9E82, 0x702E, 0x9E83, + 0x702F, 0x9E84, 0x7030, 0x9E85, 0x7031, 0x9E86, 0x7032, 0x9E87, + 0x7033, 0x9E88, 0x7034, 0x9E89, 0x7035, 0xE5AF, 0x7036, 0x9E8A, + 0x7037, 0x9E8B, 0x7038, 0x9E8C, 0x7039, 0xE5AE, 0x703A, 0x9E8D, + 0x703B, 0x9E8E, 0x703C, 0x9E8F, 0x703D, 0x9E90, 0x703E, 0x9E91, + 0x703F, 0x9E92, 0x7040, 0x9E93, 0x7041, 0x9E94, 0x7042, 0x9E95, + 0x7043, 0x9E96, 0x7044, 0x9E97, 0x7045, 0x9E98, 0x7046, 0x9E99, + 0x7047, 0x9E9A, 0x7048, 0x9E9B, 0x7049, 0x9E9C, 0x704A, 0x9E9D, + 0x704B, 0x9E9E, 0x704C, 0xB9E0, 0x704D, 0x9E9F, 0x704E, 0x9EA0, + 0x704F, 0xE5B0, 0x7050, 0x9EA1, 0x7051, 0x9EA2, 0x7052, 0x9EA3, + 0x7053, 0x9EA4, 0x7054, 0x9EA5, 0x7055, 0x9EA6, 0x7056, 0x9EA7, + 0x7057, 0x9EA8, 0x7058, 0x9EA9, 0x7059, 0x9EAA, 0x705A, 0x9EAB, + 0x705B, 0x9EAC, 0x705C, 0x9EAD, 0x705D, 0x9EAE, 0x705E, 0xE5B1, + 0x705F, 0x9EAF, 0x7060, 0x9EB0, 0x7061, 0x9EB1, 0x7062, 0x9EB2, + 0x7063, 0x9EB3, 0x7064, 0x9EB4, 0x7065, 0x9EB5, 0x7066, 0x9EB6, + 0x7067, 0x9EB7, 0x7068, 0x9EB8, 0x7069, 0x9EB9, 0x706A, 0x9EBA, + 0x706B, 0xBBF0, 0x706C, 0xECE1, 0x706D, 0xC3F0, 0x706E, 0x9EBB, + 0x706F, 0xB5C6, 0x7070, 0xBBD2, 0x7071, 0x9EBC, 0x7072, 0x9EBD, + 0x7073, 0x9EBE, 0x7074, 0x9EBF, 0x7075, 0xC1E9, 0x7076, 0xD4EE, + 0x7077, 0x9EC0, 0x7078, 0xBEC4, 0x7079, 0x9EC1, 0x707A, 0x9EC2, + 0x707B, 0x9EC3, 0x707C, 0xD7C6, 0x707D, 0x9EC4, 0x707E, 0xD4D6, + 0x707F, 0xB2D3, 0x7080, 0xECBE, 0x7081, 0x9EC5, 0x7082, 0x9EC6, + 0x7083, 0x9EC7, 0x7084, 0x9EC8, 0x7085, 0xEAC1, 0x7086, 0x9EC9, + 0x7087, 0x9ECA, 0x7088, 0x9ECB, 0x7089, 0xC2AF, 0x708A, 0xB4B6, + 0x708B, 0x9ECC, 0x708C, 0x9ECD, 0x708D, 0x9ECE, 0x708E, 0xD1D7, + 0x708F, 0x9ECF, 0x7090, 0x9ED0, 0x7091, 0x9ED1, 0x7092, 0xB3B4, + 0x7093, 0x9ED2, 0x7094, 0xC8B2, 0x7095, 0xBFBB, 0x7096, 0xECC0, + 0x7097, 0x9ED3, 0x7098, 0x9ED4, 0x7099, 0xD6CB, 0x709A, 0x9ED5, + 0x709B, 0x9ED6, 0x709C, 0xECBF, 0x709D, 0xECC1, 0x709E, 0x9ED7, + 0x709F, 0x9ED8, 0x70A0, 0x9ED9, 0x70A1, 0x9EDA, 0x70A2, 0x9EDB, + 0x70A3, 0x9EDC, 0x70A4, 0x9EDD, 0x70A5, 0x9EDE, 0x70A6, 0x9EDF, + 0x70A7, 0x9EE0, 0x70A8, 0x9EE1, 0x70A9, 0x9EE2, 0x70AA, 0x9EE3, + 0x70AB, 0xECC5, 0x70AC, 0xBEE6, 0x70AD, 0xCCBF, 0x70AE, 0xC5DA, + 0x70AF, 0xBEBC, 0x70B0, 0x9EE4, 0x70B1, 0xECC6, 0x70B2, 0x9EE5, + 0x70B3, 0xB1FE, 0x70B4, 0x9EE6, 0x70B5, 0x9EE7, 0x70B6, 0x9EE8, + 0x70B7, 0xECC4, 0x70B8, 0xD5A8, 0x70B9, 0xB5E3, 0x70BA, 0x9EE9, + 0x70BB, 0xECC2, 0x70BC, 0xC1B6, 0x70BD, 0xB3E3, 0x70BE, 0x9EEA, + 0x70BF, 0x9EEB, 0x70C0, 0xECC3, 0x70C1, 0xCBB8, 0x70C2, 0xC0C3, + 0x70C3, 0xCCFE, 0x70C4, 0x9EEC, 0x70C5, 0x9EED, 0x70C6, 0x9EEE, + 0x70C7, 0x9EEF, 0x70C8, 0xC1D2, 0x70C9, 0x9EF0, 0x70CA, 0xECC8, + 0x70CB, 0x9EF1, 0x70CC, 0x9EF2, 0x70CD, 0x9EF3, 0x70CE, 0x9EF4, + 0x70CF, 0x9EF5, 0x70D0, 0x9EF6, 0x70D1, 0x9EF7, 0x70D2, 0x9EF8, + 0x70D3, 0x9EF9, 0x70D4, 0x9EFA, 0x70D5, 0x9EFB, 0x70D6, 0x9EFC, + 0x70D7, 0x9EFD, 0x70D8, 0xBAE6, 0x70D9, 0xC0D3, 0x70DA, 0x9EFE, + 0x70DB, 0xD6F2, 0x70DC, 0x9F40, 0x70DD, 0x9F41, 0x70DE, 0x9F42, + 0x70DF, 0xD1CC, 0x70E0, 0x9F43, 0x70E1, 0x9F44, 0x70E2, 0x9F45, + 0x70E3, 0x9F46, 0x70E4, 0xBFBE, 0x70E5, 0x9F47, 0x70E6, 0xB7B3, + 0x70E7, 0xC9D5, 0x70E8, 0xECC7, 0x70E9, 0xBBE2, 0x70EA, 0x9F48, + 0x70EB, 0xCCCC, 0x70EC, 0xBDFD, 0x70ED, 0xC8C8, 0x70EE, 0x9F49, + 0x70EF, 0xCFA9, 0x70F0, 0x9F4A, 0x70F1, 0x9F4B, 0x70F2, 0x9F4C, + 0x70F3, 0x9F4D, 0x70F4, 0x9F4E, 0x70F5, 0x9F4F, 0x70F6, 0x9F50, + 0x70F7, 0xCDE9, 0x70F8, 0x9F51, 0x70F9, 0xC5EB, 0x70FA, 0x9F52, + 0x70FB, 0x9F53, 0x70FC, 0x9F54, 0x70FD, 0xB7E9, 0x70FE, 0x9F55, + 0x70FF, 0x9F56, 0x7100, 0x9F57, 0x7101, 0x9F58, 0x7102, 0x9F59, + 0x7103, 0x9F5A, 0x7104, 0x9F5B, 0x7105, 0x9F5C, 0x7106, 0x9F5D, + 0x7107, 0x9F5E, 0x7108, 0x9F5F, 0x7109, 0xD1C9, 0x710A, 0xBAB8, + 0x710B, 0x9F60, 0x710C, 0x9F61, 0x710D, 0x9F62, 0x710E, 0x9F63, + 0x710F, 0x9F64, 0x7110, 0xECC9, 0x7111, 0x9F65, 0x7112, 0x9F66, + 0x7113, 0xECCA, 0x7114, 0x9F67, 0x7115, 0xBBC0, 0x7116, 0xECCB, + 0x7117, 0x9F68, 0x7118, 0xECE2, 0x7119, 0xB1BA, 0x711A, 0xB7D9, + 0x711B, 0x9F69, 0x711C, 0x9F6A, 0x711D, 0x9F6B, 0x711E, 0x9F6C, + 0x711F, 0x9F6D, 0x7120, 0x9F6E, 0x7121, 0x9F6F, 0x7122, 0x9F70, + 0x7123, 0x9F71, 0x7124, 0x9F72, 0x7125, 0x9F73, 0x7126, 0xBDB9, + 0x7127, 0x9F74, 0x7128, 0x9F75, 0x7129, 0x9F76, 0x712A, 0x9F77, + 0x712B, 0x9F78, 0x712C, 0x9F79, 0x712D, 0x9F7A, 0x712E, 0x9F7B, + 0x712F, 0xECCC, 0x7130, 0xD1E6, 0x7131, 0xECCD, 0x7132, 0x9F7C, + 0x7133, 0x9F7D, 0x7134, 0x9F7E, 0x7135, 0x9F80, 0x7136, 0xC8BB, + 0x7137, 0x9F81, 0x7138, 0x9F82, 0x7139, 0x9F83, 0x713A, 0x9F84, + 0x713B, 0x9F85, 0x713C, 0x9F86, 0x713D, 0x9F87, 0x713E, 0x9F88, + 0x713F, 0x9F89, 0x7140, 0x9F8A, 0x7141, 0x9F8B, 0x7142, 0x9F8C, + 0x7143, 0x9F8D, 0x7144, 0x9F8E, 0x7145, 0xECD1, 0x7146, 0x9F8F, + 0x7147, 0x9F90, 0x7148, 0x9F91, 0x7149, 0x9F92, 0x714A, 0xECD3, + 0x714B, 0x9F93, 0x714C, 0xBBCD, 0x714D, 0x9F94, 0x714E, 0xBCE5, + 0x714F, 0x9F95, 0x7150, 0x9F96, 0x7151, 0x9F97, 0x7152, 0x9F98, + 0x7153, 0x9F99, 0x7154, 0x9F9A, 0x7155, 0x9F9B, 0x7156, 0x9F9C, + 0x7157, 0x9F9D, 0x7158, 0x9F9E, 0x7159, 0x9F9F, 0x715A, 0x9FA0, + 0x715B, 0x9FA1, 0x715C, 0xECCF, 0x715D, 0x9FA2, 0x715E, 0xC9B7, + 0x715F, 0x9FA3, 0x7160, 0x9FA4, 0x7161, 0x9FA5, 0x7162, 0x9FA6, + 0x7163, 0x9FA7, 0x7164, 0xC3BA, 0x7165, 0x9FA8, 0x7166, 0xECE3, + 0x7167, 0xD5D5, 0x7168, 0xECD0, 0x7169, 0x9FA9, 0x716A, 0x9FAA, + 0x716B, 0x9FAB, 0x716C, 0x9FAC, 0x716D, 0x9FAD, 0x716E, 0xD6F3, + 0x716F, 0x9FAE, 0x7170, 0x9FAF, 0x7171, 0x9FB0, 0x7172, 0xECD2, + 0x7173, 0xECCE, 0x7174, 0x9FB1, 0x7175, 0x9FB2, 0x7176, 0x9FB3, + 0x7177, 0x9FB4, 0x7178, 0xECD4, 0x7179, 0x9FB5, 0x717A, 0xECD5, + 0x717B, 0x9FB6, 0x717C, 0x9FB7, 0x717D, 0xC9BF, 0x717E, 0x9FB8, + 0x717F, 0x9FB9, 0x7180, 0x9FBA, 0x7181, 0x9FBB, 0x7182, 0x9FBC, + 0x7183, 0x9FBD, 0x7184, 0xCFA8, 0x7185, 0x9FBE, 0x7186, 0x9FBF, + 0x7187, 0x9FC0, 0x7188, 0x9FC1, 0x7189, 0x9FC2, 0x718A, 0xD0DC, + 0x718B, 0x9FC3, 0x718C, 0x9FC4, 0x718D, 0x9FC5, 0x718E, 0x9FC6, + 0x718F, 0xD1AC, 0x7190, 0x9FC7, 0x7191, 0x9FC8, 0x7192, 0x9FC9, + 0x7193, 0x9FCA, 0x7194, 0xC8DB, 0x7195, 0x9FCB, 0x7196, 0x9FCC, + 0x7197, 0x9FCD, 0x7198, 0xECD6, 0x7199, 0xCEF5, 0x719A, 0x9FCE, + 0x719B, 0x9FCF, 0x719C, 0x9FD0, 0x719D, 0x9FD1, 0x719E, 0x9FD2, + 0x719F, 0xCAEC, 0x71A0, 0xECDA, 0x71A1, 0x9FD3, 0x71A2, 0x9FD4, + 0x71A3, 0x9FD5, 0x71A4, 0x9FD6, 0x71A5, 0x9FD7, 0x71A6, 0x9FD8, + 0x71A7, 0x9FD9, 0x71A8, 0xECD9, 0x71A9, 0x9FDA, 0x71AA, 0x9FDB, + 0x71AB, 0x9FDC, 0x71AC, 0xB0BE, 0x71AD, 0x9FDD, 0x71AE, 0x9FDE, + 0x71AF, 0x9FDF, 0x71B0, 0x9FE0, 0x71B1, 0x9FE1, 0x71B2, 0x9FE2, + 0x71B3, 0xECD7, 0x71B4, 0x9FE3, 0x71B5, 0xECD8, 0x71B6, 0x9FE4, + 0x71B7, 0x9FE5, 0x71B8, 0x9FE6, 0x71B9, 0xECE4, 0x71BA, 0x9FE7, + 0x71BB, 0x9FE8, 0x71BC, 0x9FE9, 0x71BD, 0x9FEA, 0x71BE, 0x9FEB, + 0x71BF, 0x9FEC, 0x71C0, 0x9FED, 0x71C1, 0x9FEE, 0x71C2, 0x9FEF, + 0x71C3, 0xC8BC, 0x71C4, 0x9FF0, 0x71C5, 0x9FF1, 0x71C6, 0x9FF2, + 0x71C7, 0x9FF3, 0x71C8, 0x9FF4, 0x71C9, 0x9FF5, 0x71CA, 0x9FF6, + 0x71CB, 0x9FF7, 0x71CC, 0x9FF8, 0x71CD, 0x9FF9, 0x71CE, 0xC1C7, + 0x71CF, 0x9FFA, 0x71D0, 0x9FFB, 0x71D1, 0x9FFC, 0x71D2, 0x9FFD, + 0x71D3, 0x9FFE, 0x71D4, 0xECDC, 0x71D5, 0xD1E0, 0x71D6, 0xA040, + 0x71D7, 0xA041, 0x71D8, 0xA042, 0x71D9, 0xA043, 0x71DA, 0xA044, + 0x71DB, 0xA045, 0x71DC, 0xA046, 0x71DD, 0xA047, 0x71DE, 0xA048, + 0x71DF, 0xA049, 0x71E0, 0xECDB, 0x71E1, 0xA04A, 0x71E2, 0xA04B, + 0x71E3, 0xA04C, 0x71E4, 0xA04D, 0x71E5, 0xD4EF, 0x71E6, 0xA04E, + 0x71E7, 0xECDD, 0x71E8, 0xA04F, 0x71E9, 0xA050, 0x71EA, 0xA051, + 0x71EB, 0xA052, 0x71EC, 0xA053, 0x71ED, 0xA054, 0x71EE, 0xDBC6, + 0x71EF, 0xA055, 0x71F0, 0xA056, 0x71F1, 0xA057, 0x71F2, 0xA058, + 0x71F3, 0xA059, 0x71F4, 0xA05A, 0x71F5, 0xA05B, 0x71F6, 0xA05C, + 0x71F7, 0xA05D, 0x71F8, 0xA05E, 0x71F9, 0xECDE, 0x71FA, 0xA05F, + 0x71FB, 0xA060, 0x71FC, 0xA061, 0x71FD, 0xA062, 0x71FE, 0xA063, + 0x71FF, 0xA064, 0x7200, 0xA065, 0x7201, 0xA066, 0x7202, 0xA067, + 0x7203, 0xA068, 0x7204, 0xA069, 0x7205, 0xA06A, 0x7206, 0xB1AC, + 0x7207, 0xA06B, 0x7208, 0xA06C, 0x7209, 0xA06D, 0x720A, 0xA06E, + 0x720B, 0xA06F, 0x720C, 0xA070, 0x720D, 0xA071, 0x720E, 0xA072, + 0x720F, 0xA073, 0x7210, 0xA074, 0x7211, 0xA075, 0x7212, 0xA076, + 0x7213, 0xA077, 0x7214, 0xA078, 0x7215, 0xA079, 0x7216, 0xA07A, + 0x7217, 0xA07B, 0x7218, 0xA07C, 0x7219, 0xA07D, 0x721A, 0xA07E, + 0x721B, 0xA080, 0x721C, 0xA081, 0x721D, 0xECDF, 0x721E, 0xA082, + 0x721F, 0xA083, 0x7220, 0xA084, 0x7221, 0xA085, 0x7222, 0xA086, + 0x7223, 0xA087, 0x7224, 0xA088, 0x7225, 0xA089, 0x7226, 0xA08A, + 0x7227, 0xA08B, 0x7228, 0xECE0, 0x7229, 0xA08C, 0x722A, 0xD7A6, + 0x722B, 0xA08D, 0x722C, 0xC5C0, 0x722D, 0xA08E, 0x722E, 0xA08F, + 0x722F, 0xA090, 0x7230, 0xEBBC, 0x7231, 0xB0AE, 0x7232, 0xA091, + 0x7233, 0xA092, 0x7234, 0xA093, 0x7235, 0xBEF4, 0x7236, 0xB8B8, + 0x7237, 0xD2AF, 0x7238, 0xB0D6, 0x7239, 0xB5F9, 0x723A, 0xA094, + 0x723B, 0xD8B3, 0x723C, 0xA095, 0x723D, 0xCBAC, 0x723E, 0xA096, + 0x723F, 0xE3DD, 0x7240, 0xA097, 0x7241, 0xA098, 0x7242, 0xA099, + 0x7243, 0xA09A, 0x7244, 0xA09B, 0x7245, 0xA09C, 0x7246, 0xA09D, + 0x7247, 0xC6AC, 0x7248, 0xB0E6, 0x7249, 0xA09E, 0x724A, 0xA09F, + 0x724B, 0xA0A0, 0x724C, 0xC5C6, 0x724D, 0xEBB9, 0x724E, 0xA0A1, + 0x724F, 0xA0A2, 0x7250, 0xA0A3, 0x7251, 0xA0A4, 0x7252, 0xEBBA, + 0x7253, 0xA0A5, 0x7254, 0xA0A6, 0x7255, 0xA0A7, 0x7256, 0xEBBB, + 0x7257, 0xA0A8, 0x7258, 0xA0A9, 0x7259, 0xD1C0, 0x725A, 0xA0AA, + 0x725B, 0xC5A3, 0x725C, 0xA0AB, 0x725D, 0xEAF2, 0x725E, 0xA0AC, + 0x725F, 0xC4B2, 0x7260, 0xA0AD, 0x7261, 0xC4B5, 0x7262, 0xC0CE, + 0x7263, 0xA0AE, 0x7264, 0xA0AF, 0x7265, 0xA0B0, 0x7266, 0xEAF3, + 0x7267, 0xC4C1, 0x7268, 0xA0B1, 0x7269, 0xCEEF, 0x726A, 0xA0B2, + 0x726B, 0xA0B3, 0x726C, 0xA0B4, 0x726D, 0xA0B5, 0x726E, 0xEAF0, + 0x726F, 0xEAF4, 0x7270, 0xA0B6, 0x7271, 0xA0B7, 0x7272, 0xC9FC, + 0x7273, 0xA0B8, 0x7274, 0xA0B9, 0x7275, 0xC7A3, 0x7276, 0xA0BA, + 0x7277, 0xA0BB, 0x7278, 0xA0BC, 0x7279, 0xCCD8, 0x727A, 0xCEFE, + 0x727B, 0xA0BD, 0x727C, 0xA0BE, 0x727D, 0xA0BF, 0x727E, 0xEAF5, + 0x727F, 0xEAF6, 0x7280, 0xCFAC, 0x7281, 0xC0E7, 0x7282, 0xA0C0, + 0x7283, 0xA0C1, 0x7284, 0xEAF7, 0x7285, 0xA0C2, 0x7286, 0xA0C3, + 0x7287, 0xA0C4, 0x7288, 0xA0C5, 0x7289, 0xA0C6, 0x728A, 0xB6BF, + 0x728B, 0xEAF8, 0x728C, 0xA0C7, 0x728D, 0xEAF9, 0x728E, 0xA0C8, + 0x728F, 0xEAFA, 0x7290, 0xA0C9, 0x7291, 0xA0CA, 0x7292, 0xEAFB, + 0x7293, 0xA0CB, 0x7294, 0xA0CC, 0x7295, 0xA0CD, 0x7296, 0xA0CE, + 0x7297, 0xA0CF, 0x7298, 0xA0D0, 0x7299, 0xA0D1, 0x729A, 0xA0D2, + 0x729B, 0xA0D3, 0x729C, 0xA0D4, 0x729D, 0xA0D5, 0x729E, 0xA0D6, + 0x729F, 0xEAF1, 0x72A0, 0xA0D7, 0x72A1, 0xA0D8, 0x72A2, 0xA0D9, + 0x72A3, 0xA0DA, 0x72A4, 0xA0DB, 0x72A5, 0xA0DC, 0x72A6, 0xA0DD, + 0x72A7, 0xA0DE, 0x72A8, 0xA0DF, 0x72A9, 0xA0E0, 0x72AA, 0xA0E1, + 0x72AB, 0xA0E2, 0x72AC, 0xC8AE, 0x72AD, 0xE1EB, 0x72AE, 0xA0E3, + 0x72AF, 0xB7B8, 0x72B0, 0xE1EC, 0x72B1, 0xA0E4, 0x72B2, 0xA0E5, + 0x72B3, 0xA0E6, 0x72B4, 0xE1ED, 0x72B5, 0xA0E7, 0x72B6, 0xD7B4, + 0x72B7, 0xE1EE, 0x72B8, 0xE1EF, 0x72B9, 0xD3CC, 0x72BA, 0xA0E8, + 0x72BB, 0xA0E9, 0x72BC, 0xA0EA, 0x72BD, 0xA0EB, 0x72BE, 0xA0EC, + 0x72BF, 0xA0ED, 0x72C0, 0xA0EE, 0x72C1, 0xE1F1, 0x72C2, 0xBFF1, + 0x72C3, 0xE1F0, 0x72C4, 0xB5D2, 0x72C5, 0xA0EF, 0x72C6, 0xA0F0, + 0x72C7, 0xA0F1, 0x72C8, 0xB1B7, 0x72C9, 0xA0F2, 0x72CA, 0xA0F3, + 0x72CB, 0xA0F4, 0x72CC, 0xA0F5, 0x72CD, 0xE1F3, 0x72CE, 0xE1F2, + 0x72CF, 0xA0F6, 0x72D0, 0xBAFC, 0x72D1, 0xA0F7, 0x72D2, 0xE1F4, + 0x72D3, 0xA0F8, 0x72D4, 0xA0F9, 0x72D5, 0xA0FA, 0x72D6, 0xA0FB, + 0x72D7, 0xB9B7, 0x72D8, 0xA0FC, 0x72D9, 0xBED1, 0x72DA, 0xA0FD, + 0x72DB, 0xA0FE, 0x72DC, 0xAA40, 0x72DD, 0xAA41, 0x72DE, 0xC4FC, + 0x72DF, 0xAA42, 0x72E0, 0xBADD, 0x72E1, 0xBDC6, 0x72E2, 0xAA43, + 0x72E3, 0xAA44, 0x72E4, 0xAA45, 0x72E5, 0xAA46, 0x72E6, 0xAA47, + 0x72E7, 0xAA48, 0x72E8, 0xE1F5, 0x72E9, 0xE1F7, 0x72EA, 0xAA49, + 0x72EB, 0xAA4A, 0x72EC, 0xB6C0, 0x72ED, 0xCFC1, 0x72EE, 0xCAA8, + 0x72EF, 0xE1F6, 0x72F0, 0xD5F8, 0x72F1, 0xD3FC, 0x72F2, 0xE1F8, + 0x72F3, 0xE1FC, 0x72F4, 0xE1F9, 0x72F5, 0xAA4B, 0x72F6, 0xAA4C, + 0x72F7, 0xE1FA, 0x72F8, 0xC0EA, 0x72F9, 0xAA4D, 0x72FA, 0xE1FE, + 0x72FB, 0xE2A1, 0x72FC, 0xC0C7, 0x72FD, 0xAA4E, 0x72FE, 0xAA4F, + 0x72FF, 0xAA50, 0x7300, 0xAA51, 0x7301, 0xE1FB, 0x7302, 0xAA52, + 0x7303, 0xE1FD, 0x7304, 0xAA53, 0x7305, 0xAA54, 0x7306, 0xAA55, + 0x7307, 0xAA56, 0x7308, 0xAA57, 0x7309, 0xAA58, 0x730A, 0xE2A5, + 0x730B, 0xAA59, 0x730C, 0xAA5A, 0x730D, 0xAA5B, 0x730E, 0xC1D4, + 0x730F, 0xAA5C, 0x7310, 0xAA5D, 0x7311, 0xAA5E, 0x7312, 0xAA5F, + 0x7313, 0xE2A3, 0x7314, 0xAA60, 0x7315, 0xE2A8, 0x7316, 0xB2FE, + 0x7317, 0xE2A2, 0x7318, 0xAA61, 0x7319, 0xAA62, 0x731A, 0xAA63, + 0x731B, 0xC3CD, 0x731C, 0xB2C2, 0x731D, 0xE2A7, 0x731E, 0xE2A6, + 0x731F, 0xAA64, 0x7320, 0xAA65, 0x7321, 0xE2A4, 0x7322, 0xE2A9, + 0x7323, 0xAA66, 0x7324, 0xAA67, 0x7325, 0xE2AB, 0x7326, 0xAA68, + 0x7327, 0xAA69, 0x7328, 0xAA6A, 0x7329, 0xD0C9, 0x732A, 0xD6ED, + 0x732B, 0xC3A8, 0x732C, 0xE2AC, 0x732D, 0xAA6B, 0x732E, 0xCFD7, + 0x732F, 0xAA6C, 0x7330, 0xAA6D, 0x7331, 0xE2AE, 0x7332, 0xAA6E, + 0x7333, 0xAA6F, 0x7334, 0xBAEF, 0x7335, 0xAA70, 0x7336, 0xAA71, + 0x7337, 0xE9E0, 0x7338, 0xE2AD, 0x7339, 0xE2AA, 0x733A, 0xAA72, + 0x733B, 0xAA73, 0x733C, 0xAA74, 0x733D, 0xAA75, 0x733E, 0xBBAB, + 0x733F, 0xD4B3, 0x7340, 0xAA76, 0x7341, 0xAA77, 0x7342, 0xAA78, + 0x7343, 0xAA79, 0x7344, 0xAA7A, 0x7345, 0xAA7B, 0x7346, 0xAA7C, + 0x7347, 0xAA7D, 0x7348, 0xAA7E, 0x7349, 0xAA80, 0x734A, 0xAA81, + 0x734B, 0xAA82, 0x734C, 0xAA83, 0x734D, 0xE2B0, 0x734E, 0xAA84, + 0x734F, 0xAA85, 0x7350, 0xE2AF, 0x7351, 0xAA86, 0x7352, 0xE9E1, + 0x7353, 0xAA87, 0x7354, 0xAA88, 0x7355, 0xAA89, 0x7356, 0xAA8A, + 0x7357, 0xE2B1, 0x7358, 0xAA8B, 0x7359, 0xAA8C, 0x735A, 0xAA8D, + 0x735B, 0xAA8E, 0x735C, 0xAA8F, 0x735D, 0xAA90, 0x735E, 0xAA91, + 0x735F, 0xAA92, 0x7360, 0xE2B2, 0x7361, 0xAA93, 0x7362, 0xAA94, + 0x7363, 0xAA95, 0x7364, 0xAA96, 0x7365, 0xAA97, 0x7366, 0xAA98, + 0x7367, 0xAA99, 0x7368, 0xAA9A, 0x7369, 0xAA9B, 0x736A, 0xAA9C, + 0x736B, 0xAA9D, 0x736C, 0xE2B3, 0x736D, 0xCCA1, 0x736E, 0xAA9E, + 0x736F, 0xE2B4, 0x7370, 0xAA9F, 0x7371, 0xAAA0, 0x7372, 0xAB40, + 0x7373, 0xAB41, 0x7374, 0xAB42, 0x7375, 0xAB43, 0x7376, 0xAB44, + 0x7377, 0xAB45, 0x7378, 0xAB46, 0x7379, 0xAB47, 0x737A, 0xAB48, + 0x737B, 0xAB49, 0x737C, 0xAB4A, 0x737D, 0xAB4B, 0x737E, 0xE2B5, + 0x737F, 0xAB4C, 0x7380, 0xAB4D, 0x7381, 0xAB4E, 0x7382, 0xAB4F, + 0x7383, 0xAB50, 0x7384, 0xD0FE, 0x7385, 0xAB51, 0x7386, 0xAB52, + 0x7387, 0xC2CA, 0x7388, 0xAB53, 0x7389, 0xD3F1, 0x738A, 0xAB54, + 0x738B, 0xCDF5, 0x738C, 0xAB55, 0x738D, 0xAB56, 0x738E, 0xE7E0, + 0x738F, 0xAB57, 0x7390, 0xAB58, 0x7391, 0xE7E1, 0x7392, 0xAB59, + 0x7393, 0xAB5A, 0x7394, 0xAB5B, 0x7395, 0xAB5C, 0x7396, 0xBEC1, + 0x7397, 0xAB5D, 0x7398, 0xAB5E, 0x7399, 0xAB5F, 0x739A, 0xAB60, + 0x739B, 0xC2EA, 0x739C, 0xAB61, 0x739D, 0xAB62, 0x739E, 0xAB63, + 0x739F, 0xE7E4, 0x73A0, 0xAB64, 0x73A1, 0xAB65, 0x73A2, 0xE7E3, + 0x73A3, 0xAB66, 0x73A4, 0xAB67, 0x73A5, 0xAB68, 0x73A6, 0xAB69, + 0x73A7, 0xAB6A, 0x73A8, 0xAB6B, 0x73A9, 0xCDE6, 0x73AA, 0xAB6C, + 0x73AB, 0xC3B5, 0x73AC, 0xAB6D, 0x73AD, 0xAB6E, 0x73AE, 0xE7E2, + 0x73AF, 0xBBB7, 0x73B0, 0xCFD6, 0x73B1, 0xAB6F, 0x73B2, 0xC1E1, + 0x73B3, 0xE7E9, 0x73B4, 0xAB70, 0x73B5, 0xAB71, 0x73B6, 0xAB72, + 0x73B7, 0xE7E8, 0x73B8, 0xAB73, 0x73B9, 0xAB74, 0x73BA, 0xE7F4, + 0x73BB, 0xB2A3, 0x73BC, 0xAB75, 0x73BD, 0xAB76, 0x73BE, 0xAB77, + 0x73BF, 0xAB78, 0x73C0, 0xE7EA, 0x73C1, 0xAB79, 0x73C2, 0xE7E6, + 0x73C3, 0xAB7A, 0x73C4, 0xAB7B, 0x73C5, 0xAB7C, 0x73C6, 0xAB7D, + 0x73C7, 0xAB7E, 0x73C8, 0xE7EC, 0x73C9, 0xE7EB, 0x73CA, 0xC9BA, + 0x73CB, 0xAB80, 0x73CC, 0xAB81, 0x73CD, 0xD5E4, 0x73CE, 0xAB82, + 0x73CF, 0xE7E5, 0x73D0, 0xB7A9, 0x73D1, 0xE7E7, 0x73D2, 0xAB83, + 0x73D3, 0xAB84, 0x73D4, 0xAB85, 0x73D5, 0xAB86, 0x73D6, 0xAB87, + 0x73D7, 0xAB88, 0x73D8, 0xAB89, 0x73D9, 0xE7EE, 0x73DA, 0xAB8A, + 0x73DB, 0xAB8B, 0x73DC, 0xAB8C, 0x73DD, 0xAB8D, 0x73DE, 0xE7F3, + 0x73DF, 0xAB8E, 0x73E0, 0xD6E9, 0x73E1, 0xAB8F, 0x73E2, 0xAB90, + 0x73E3, 0xAB91, 0x73E4, 0xAB92, 0x73E5, 0xE7ED, 0x73E6, 0xAB93, + 0x73E7, 0xE7F2, 0x73E8, 0xAB94, 0x73E9, 0xE7F1, 0x73EA, 0xAB95, + 0x73EB, 0xAB96, 0x73EC, 0xAB97, 0x73ED, 0xB0E0, 0x73EE, 0xAB98, + 0x73EF, 0xAB99, 0x73F0, 0xAB9A, 0x73F1, 0xAB9B, 0x73F2, 0xE7F5, + 0x73F3, 0xAB9C, 0x73F4, 0xAB9D, 0x73F5, 0xAB9E, 0x73F6, 0xAB9F, + 0x73F7, 0xABA0, 0x73F8, 0xAC40, 0x73F9, 0xAC41, 0x73FA, 0xAC42, + 0x73FB, 0xAC43, 0x73FC, 0xAC44, 0x73FD, 0xAC45, 0x73FE, 0xAC46, + 0x73FF, 0xAC47, 0x7400, 0xAC48, 0x7401, 0xAC49, 0x7402, 0xAC4A, + 0x7403, 0xC7F2, 0x7404, 0xAC4B, 0x7405, 0xC0C5, 0x7406, 0xC0ED, + 0x7407, 0xAC4C, 0x7408, 0xAC4D, 0x7409, 0xC1F0, 0x740A, 0xE7F0, + 0x740B, 0xAC4E, 0x740C, 0xAC4F, 0x740D, 0xAC50, 0x740E, 0xAC51, + 0x740F, 0xE7F6, 0x7410, 0xCBF6, 0x7411, 0xAC52, 0x7412, 0xAC53, + 0x7413, 0xAC54, 0x7414, 0xAC55, 0x7415, 0xAC56, 0x7416, 0xAC57, + 0x7417, 0xAC58, 0x7418, 0xAC59, 0x7419, 0xAC5A, 0x741A, 0xE8A2, + 0x741B, 0xE8A1, 0x741C, 0xAC5B, 0x741D, 0xAC5C, 0x741E, 0xAC5D, + 0x741F, 0xAC5E, 0x7420, 0xAC5F, 0x7421, 0xAC60, 0x7422, 0xD7C1, + 0x7423, 0xAC61, 0x7424, 0xAC62, 0x7425, 0xE7FA, 0x7426, 0xE7F9, + 0x7427, 0xAC63, 0x7428, 0xE7FB, 0x7429, 0xAC64, 0x742A, 0xE7F7, + 0x742B, 0xAC65, 0x742C, 0xE7FE, 0x742D, 0xAC66, 0x742E, 0xE7FD, + 0x742F, 0xAC67, 0x7430, 0xE7FC, 0x7431, 0xAC68, 0x7432, 0xAC69, + 0x7433, 0xC1D5, 0x7434, 0xC7D9, 0x7435, 0xC5FD, 0x7436, 0xC5C3, + 0x7437, 0xAC6A, 0x7438, 0xAC6B, 0x7439, 0xAC6C, 0x743A, 0xAC6D, + 0x743B, 0xAC6E, 0x743C, 0xC7ED, 0x743D, 0xAC6F, 0x743E, 0xAC70, + 0x743F, 0xAC71, 0x7440, 0xAC72, 0x7441, 0xE8A3, 0x7442, 0xAC73, + 0x7443, 0xAC74, 0x7444, 0xAC75, 0x7445, 0xAC76, 0x7446, 0xAC77, + 0x7447, 0xAC78, 0x7448, 0xAC79, 0x7449, 0xAC7A, 0x744A, 0xAC7B, + 0x744B, 0xAC7C, 0x744C, 0xAC7D, 0x744D, 0xAC7E, 0x744E, 0xAC80, + 0x744F, 0xAC81, 0x7450, 0xAC82, 0x7451, 0xAC83, 0x7452, 0xAC84, + 0x7453, 0xAC85, 0x7454, 0xAC86, 0x7455, 0xE8A6, 0x7456, 0xAC87, + 0x7457, 0xE8A5, 0x7458, 0xAC88, 0x7459, 0xE8A7, 0x745A, 0xBAF7, + 0x745B, 0xE7F8, 0x745C, 0xE8A4, 0x745D, 0xAC89, 0x745E, 0xC8F0, + 0x745F, 0xC9AA, 0x7460, 0xAC8A, 0x7461, 0xAC8B, 0x7462, 0xAC8C, + 0x7463, 0xAC8D, 0x7464, 0xAC8E, 0x7465, 0xAC8F, 0x7466, 0xAC90, + 0x7467, 0xAC91, 0x7468, 0xAC92, 0x7469, 0xAC93, 0x746A, 0xAC94, + 0x746B, 0xAC95, 0x746C, 0xAC96, 0x746D, 0xE8A9, 0x746E, 0xAC97, + 0x746F, 0xAC98, 0x7470, 0xB9E5, 0x7471, 0xAC99, 0x7472, 0xAC9A, + 0x7473, 0xAC9B, 0x7474, 0xAC9C, 0x7475, 0xAC9D, 0x7476, 0xD1FE, + 0x7477, 0xE8A8, 0x7478, 0xAC9E, 0x7479, 0xAC9F, 0x747A, 0xACA0, + 0x747B, 0xAD40, 0x747C, 0xAD41, 0x747D, 0xAD42, 0x747E, 0xE8AA, + 0x747F, 0xAD43, 0x7480, 0xE8AD, 0x7481, 0xE8AE, 0x7482, 0xAD44, + 0x7483, 0xC1A7, 0x7484, 0xAD45, 0x7485, 0xAD46, 0x7486, 0xAD47, + 0x7487, 0xE8AF, 0x7488, 0xAD48, 0x7489, 0xAD49, 0x748A, 0xAD4A, + 0x748B, 0xE8B0, 0x748C, 0xAD4B, 0x748D, 0xAD4C, 0x748E, 0xE8AC, + 0x748F, 0xAD4D, 0x7490, 0xE8B4, 0x7491, 0xAD4E, 0x7492, 0xAD4F, + 0x7493, 0xAD50, 0x7494, 0xAD51, 0x7495, 0xAD52, 0x7496, 0xAD53, + 0x7497, 0xAD54, 0x7498, 0xAD55, 0x7499, 0xAD56, 0x749A, 0xAD57, + 0x749B, 0xAD58, 0x749C, 0xE8AB, 0x749D, 0xAD59, 0x749E, 0xE8B1, + 0x749F, 0xAD5A, 0x74A0, 0xAD5B, 0x74A1, 0xAD5C, 0x74A2, 0xAD5D, + 0x74A3, 0xAD5E, 0x74A4, 0xAD5F, 0x74A5, 0xAD60, 0x74A6, 0xAD61, + 0x74A7, 0xE8B5, 0x74A8, 0xE8B2, 0x74A9, 0xE8B3, 0x74AA, 0xAD62, + 0x74AB, 0xAD63, 0x74AC, 0xAD64, 0x74AD, 0xAD65, 0x74AE, 0xAD66, + 0x74AF, 0xAD67, 0x74B0, 0xAD68, 0x74B1, 0xAD69, 0x74B2, 0xAD6A, + 0x74B3, 0xAD6B, 0x74B4, 0xAD6C, 0x74B5, 0xAD6D, 0x74B6, 0xAD6E, + 0x74B7, 0xAD6F, 0x74B8, 0xAD70, 0x74B9, 0xAD71, 0x74BA, 0xE8B7, + 0x74BB, 0xAD72, 0x74BC, 0xAD73, 0x74BD, 0xAD74, 0x74BE, 0xAD75, + 0x74BF, 0xAD76, 0x74C0, 0xAD77, 0x74C1, 0xAD78, 0x74C2, 0xAD79, + 0x74C3, 0xAD7A, 0x74C4, 0xAD7B, 0x74C5, 0xAD7C, 0x74C6, 0xAD7D, + 0x74C7, 0xAD7E, 0x74C8, 0xAD80, 0x74C9, 0xAD81, 0x74CA, 0xAD82, + 0x74CB, 0xAD83, 0x74CC, 0xAD84, 0x74CD, 0xAD85, 0x74CE, 0xAD86, + 0x74CF, 0xAD87, 0x74D0, 0xAD88, 0x74D1, 0xAD89, 0x74D2, 0xE8B6, + 0x74D3, 0xAD8A, 0x74D4, 0xAD8B, 0x74D5, 0xAD8C, 0x74D6, 0xAD8D, + 0x74D7, 0xAD8E, 0x74D8, 0xAD8F, 0x74D9, 0xAD90, 0x74DA, 0xAD91, + 0x74DB, 0xAD92, 0x74DC, 0xB9CF, 0x74DD, 0xAD93, 0x74DE, 0xF0AC, + 0x74DF, 0xAD94, 0x74E0, 0xF0AD, 0x74E1, 0xAD95, 0x74E2, 0xC6B0, + 0x74E3, 0xB0EA, 0x74E4, 0xC8BF, 0x74E5, 0xAD96, 0x74E6, 0xCDDF, + 0x74E7, 0xAD97, 0x74E8, 0xAD98, 0x74E9, 0xAD99, 0x74EA, 0xAD9A, + 0x74EB, 0xAD9B, 0x74EC, 0xAD9C, 0x74ED, 0xAD9D, 0x74EE, 0xCECD, + 0x74EF, 0xEAB1, 0x74F0, 0xAD9E, 0x74F1, 0xAD9F, 0x74F2, 0xADA0, + 0x74F3, 0xAE40, 0x74F4, 0xEAB2, 0x74F5, 0xAE41, 0x74F6, 0xC6BF, + 0x74F7, 0xB4C9, 0x74F8, 0xAE42, 0x74F9, 0xAE43, 0x74FA, 0xAE44, + 0x74FB, 0xAE45, 0x74FC, 0xAE46, 0x74FD, 0xAE47, 0x74FE, 0xAE48, + 0x74FF, 0xEAB3, 0x7500, 0xAE49, 0x7501, 0xAE4A, 0x7502, 0xAE4B, + 0x7503, 0xAE4C, 0x7504, 0xD5E7, 0x7505, 0xAE4D, 0x7506, 0xAE4E, + 0x7507, 0xAE4F, 0x7508, 0xAE50, 0x7509, 0xAE51, 0x750A, 0xAE52, + 0x750B, 0xAE53, 0x750C, 0xAE54, 0x750D, 0xDDF9, 0x750E, 0xAE55, + 0x750F, 0xEAB4, 0x7510, 0xAE56, 0x7511, 0xEAB5, 0x7512, 0xAE57, + 0x7513, 0xEAB6, 0x7514, 0xAE58, 0x7515, 0xAE59, 0x7516, 0xAE5A, + 0x7517, 0xAE5B, 0x7518, 0xB8CA, 0x7519, 0xDFB0, 0x751A, 0xC9F5, + 0x751B, 0xAE5C, 0x751C, 0xCCF0, 0x751D, 0xAE5D, 0x751E, 0xAE5E, + 0x751F, 0xC9FA, 0x7520, 0xAE5F, 0x7521, 0xAE60, 0x7522, 0xAE61, + 0x7523, 0xAE62, 0x7524, 0xAE63, 0x7525, 0xC9FB, 0x7526, 0xAE64, + 0x7527, 0xAE65, 0x7528, 0xD3C3, 0x7529, 0xCBA6, 0x752A, 0xAE66, + 0x752B, 0xB8A6, 0x752C, 0xF0AE, 0x752D, 0xB1C2, 0x752E, 0xAE67, + 0x752F, 0xE5B8, 0x7530, 0xCCEF, 0x7531, 0xD3C9, 0x7532, 0xBCD7, + 0x7533, 0xC9EA, 0x7534, 0xAE68, 0x7535, 0xB5E7, 0x7536, 0xAE69, + 0x7537, 0xC4D0, 0x7538, 0xB5E9, 0x7539, 0xAE6A, 0x753A, 0xEEAE, + 0x753B, 0xBBAD, 0x753C, 0xAE6B, 0x753D, 0xAE6C, 0x753E, 0xE7DE, + 0x753F, 0xAE6D, 0x7540, 0xEEAF, 0x7541, 0xAE6E, 0x7542, 0xAE6F, + 0x7543, 0xAE70, 0x7544, 0xAE71, 0x7545, 0xB3A9, 0x7546, 0xAE72, + 0x7547, 0xAE73, 0x7548, 0xEEB2, 0x7549, 0xAE74, 0x754A, 0xAE75, + 0x754B, 0xEEB1, 0x754C, 0xBDE7, 0x754D, 0xAE76, 0x754E, 0xEEB0, + 0x754F, 0xCEB7, 0x7550, 0xAE77, 0x7551, 0xAE78, 0x7552, 0xAE79, + 0x7553, 0xAE7A, 0x7554, 0xC5CF, 0x7555, 0xAE7B, 0x7556, 0xAE7C, + 0x7557, 0xAE7D, 0x7558, 0xAE7E, 0x7559, 0xC1F4, 0x755A, 0xDBCE, + 0x755B, 0xEEB3, 0x755C, 0xD0F3, 0x755D, 0xAE80, 0x755E, 0xAE81, + 0x755F, 0xAE82, 0x7560, 0xAE83, 0x7561, 0xAE84, 0x7562, 0xAE85, + 0x7563, 0xAE86, 0x7564, 0xAE87, 0x7565, 0xC2D4, 0x7566, 0xC6E8, + 0x7567, 0xAE88, 0x7568, 0xAE89, 0x7569, 0xAE8A, 0x756A, 0xB7AC, + 0x756B, 0xAE8B, 0x756C, 0xAE8C, 0x756D, 0xAE8D, 0x756E, 0xAE8E, + 0x756F, 0xAE8F, 0x7570, 0xAE90, 0x7571, 0xAE91, 0x7572, 0xEEB4, + 0x7573, 0xAE92, 0x7574, 0xB3EB, 0x7575, 0xAE93, 0x7576, 0xAE94, + 0x7577, 0xAE95, 0x7578, 0xBBFB, 0x7579, 0xEEB5, 0x757A, 0xAE96, + 0x757B, 0xAE97, 0x757C, 0xAE98, 0x757D, 0xAE99, 0x757E, 0xAE9A, + 0x757F, 0xE7DC, 0x7580, 0xAE9B, 0x7581, 0xAE9C, 0x7582, 0xAE9D, + 0x7583, 0xEEB6, 0x7584, 0xAE9E, 0x7585, 0xAE9F, 0x7586, 0xBDAE, + 0x7587, 0xAEA0, 0x7588, 0xAF40, 0x7589, 0xAF41, 0x758A, 0xAF42, + 0x758B, 0xF1E2, 0x758C, 0xAF43, 0x758D, 0xAF44, 0x758E, 0xAF45, + 0x758F, 0xCAE8, 0x7590, 0xAF46, 0x7591, 0xD2C9, 0x7592, 0xF0DA, + 0x7593, 0xAF47, 0x7594, 0xF0DB, 0x7595, 0xAF48, 0x7596, 0xF0DC, + 0x7597, 0xC1C6, 0x7598, 0xAF49, 0x7599, 0xB8ED, 0x759A, 0xBECE, + 0x759B, 0xAF4A, 0x759C, 0xAF4B, 0x759D, 0xF0DE, 0x759E, 0xAF4C, + 0x759F, 0xC5B1, 0x75A0, 0xF0DD, 0x75A1, 0xD1F1, 0x75A2, 0xAF4D, + 0x75A3, 0xF0E0, 0x75A4, 0xB0CC, 0x75A5, 0xBDEA, 0x75A6, 0xAF4E, + 0x75A7, 0xAF4F, 0x75A8, 0xAF50, 0x75A9, 0xAF51, 0x75AA, 0xAF52, + 0x75AB, 0xD2DF, 0x75AC, 0xF0DF, 0x75AD, 0xAF53, 0x75AE, 0xB4AF, + 0x75AF, 0xB7E8, 0x75B0, 0xF0E6, 0x75B1, 0xF0E5, 0x75B2, 0xC6A3, + 0x75B3, 0xF0E1, 0x75B4, 0xF0E2, 0x75B5, 0xB4C3, 0x75B6, 0xAF54, + 0x75B7, 0xAF55, 0x75B8, 0xF0E3, 0x75B9, 0xD5EE, 0x75BA, 0xAF56, + 0x75BB, 0xAF57, 0x75BC, 0xCCDB, 0x75BD, 0xBED2, 0x75BE, 0xBCB2, + 0x75BF, 0xAF58, 0x75C0, 0xAF59, 0x75C1, 0xAF5A, 0x75C2, 0xF0E8, + 0x75C3, 0xF0E7, 0x75C4, 0xF0E4, 0x75C5, 0xB2A1, 0x75C6, 0xAF5B, + 0x75C7, 0xD6A2, 0x75C8, 0xD3B8, 0x75C9, 0xBEB7, 0x75CA, 0xC8AC, + 0x75CB, 0xAF5C, 0x75CC, 0xAF5D, 0x75CD, 0xF0EA, 0x75CE, 0xAF5E, + 0x75CF, 0xAF5F, 0x75D0, 0xAF60, 0x75D1, 0xAF61, 0x75D2, 0xD1F7, + 0x75D3, 0xAF62, 0x75D4, 0xD6CC, 0x75D5, 0xBADB, 0x75D6, 0xF0E9, + 0x75D7, 0xAF63, 0x75D8, 0xB6BB, 0x75D9, 0xAF64, 0x75DA, 0xAF65, + 0x75DB, 0xCDB4, 0x75DC, 0xAF66, 0x75DD, 0xAF67, 0x75DE, 0xC6A6, + 0x75DF, 0xAF68, 0x75E0, 0xAF69, 0x75E1, 0xAF6A, 0x75E2, 0xC1A1, + 0x75E3, 0xF0EB, 0x75E4, 0xF0EE, 0x75E5, 0xAF6B, 0x75E6, 0xF0ED, + 0x75E7, 0xF0F0, 0x75E8, 0xF0EC, 0x75E9, 0xAF6C, 0x75EA, 0xBBBE, + 0x75EB, 0xF0EF, 0x75EC, 0xAF6D, 0x75ED, 0xAF6E, 0x75EE, 0xAF6F, + 0x75EF, 0xAF70, 0x75F0, 0xCCB5, 0x75F1, 0xF0F2, 0x75F2, 0xAF71, + 0x75F3, 0xAF72, 0x75F4, 0xB3D5, 0x75F5, 0xAF73, 0x75F6, 0xAF74, + 0x75F7, 0xAF75, 0x75F8, 0xAF76, 0x75F9, 0xB1D4, 0x75FA, 0xAF77, + 0x75FB, 0xAF78, 0x75FC, 0xF0F3, 0x75FD, 0xAF79, 0x75FE, 0xAF7A, + 0x75FF, 0xF0F4, 0x7600, 0xF0F6, 0x7601, 0xB4E1, 0x7602, 0xAF7B, + 0x7603, 0xF0F1, 0x7604, 0xAF7C, 0x7605, 0xF0F7, 0x7606, 0xAF7D, + 0x7607, 0xAF7E, 0x7608, 0xAF80, 0x7609, 0xAF81, 0x760A, 0xF0FA, + 0x760B, 0xAF82, 0x760C, 0xF0F8, 0x760D, 0xAF83, 0x760E, 0xAF84, + 0x760F, 0xAF85, 0x7610, 0xF0F5, 0x7611, 0xAF86, 0x7612, 0xAF87, + 0x7613, 0xAF88, 0x7614, 0xAF89, 0x7615, 0xF0FD, 0x7616, 0xAF8A, + 0x7617, 0xF0F9, 0x7618, 0xF0FC, 0x7619, 0xF0FE, 0x761A, 0xAF8B, + 0x761B, 0xF1A1, 0x761C, 0xAF8C, 0x761D, 0xAF8D, 0x761E, 0xAF8E, + 0x761F, 0xCEC1, 0x7620, 0xF1A4, 0x7621, 0xAF8F, 0x7622, 0xF1A3, + 0x7623, 0xAF90, 0x7624, 0xC1F6, 0x7625, 0xF0FB, 0x7626, 0xCADD, + 0x7627, 0xAF91, 0x7628, 0xAF92, 0x7629, 0xB4F1, 0x762A, 0xB1F1, + 0x762B, 0xCCB1, 0x762C, 0xAF93, 0x762D, 0xF1A6, 0x762E, 0xAF94, + 0x762F, 0xAF95, 0x7630, 0xF1A7, 0x7631, 0xAF96, 0x7632, 0xAF97, + 0x7633, 0xF1AC, 0x7634, 0xD5CE, 0x7635, 0xF1A9, 0x7636, 0xAF98, + 0x7637, 0xAF99, 0x7638, 0xC8B3, 0x7639, 0xAF9A, 0x763A, 0xAF9B, + 0x763B, 0xAF9C, 0x763C, 0xF1A2, 0x763D, 0xAF9D, 0x763E, 0xF1AB, + 0x763F, 0xF1A8, 0x7640, 0xF1A5, 0x7641, 0xAF9E, 0x7642, 0xAF9F, + 0x7643, 0xF1AA, 0x7644, 0xAFA0, 0x7645, 0xB040, 0x7646, 0xB041, + 0x7647, 0xB042, 0x7648, 0xB043, 0x7649, 0xB044, 0x764A, 0xB045, + 0x764B, 0xB046, 0x764C, 0xB0A9, 0x764D, 0xF1AD, 0x764E, 0xB047, + 0x764F, 0xB048, 0x7650, 0xB049, 0x7651, 0xB04A, 0x7652, 0xB04B, + 0x7653, 0xB04C, 0x7654, 0xF1AF, 0x7655, 0xB04D, 0x7656, 0xF1B1, + 0x7657, 0xB04E, 0x7658, 0xB04F, 0x7659, 0xB050, 0x765A, 0xB051, + 0x765B, 0xB052, 0x765C, 0xF1B0, 0x765D, 0xB053, 0x765E, 0xF1AE, + 0x765F, 0xB054, 0x7660, 0xB055, 0x7661, 0xB056, 0x7662, 0xB057, + 0x7663, 0xD1A2, 0x7664, 0xB058, 0x7665, 0xB059, 0x7666, 0xB05A, + 0x7667, 0xB05B, 0x7668, 0xB05C, 0x7669, 0xB05D, 0x766A, 0xB05E, + 0x766B, 0xF1B2, 0x766C, 0xB05F, 0x766D, 0xB060, 0x766E, 0xB061, + 0x766F, 0xF1B3, 0x7670, 0xB062, 0x7671, 0xB063, 0x7672, 0xB064, + 0x7673, 0xB065, 0x7674, 0xB066, 0x7675, 0xB067, 0x7676, 0xB068, + 0x7677, 0xB069, 0x7678, 0xB9EF, 0x7679, 0xB06A, 0x767A, 0xB06B, + 0x767B, 0xB5C7, 0x767C, 0xB06C, 0x767D, 0xB0D7, 0x767E, 0xB0D9, + 0x767F, 0xB06D, 0x7680, 0xB06E, 0x7681, 0xB06F, 0x7682, 0xD4ED, + 0x7683, 0xB070, 0x7684, 0xB5C4, 0x7685, 0xB071, 0x7686, 0xBDD4, + 0x7687, 0xBBCA, 0x7688, 0xF0A7, 0x7689, 0xB072, 0x768A, 0xB073, + 0x768B, 0xB8DE, 0x768C, 0xB074, 0x768D, 0xB075, 0x768E, 0xF0A8, + 0x768F, 0xB076, 0x7690, 0xB077, 0x7691, 0xB0A8, 0x7692, 0xB078, + 0x7693, 0xF0A9, 0x7694, 0xB079, 0x7695, 0xB07A, 0x7696, 0xCDEE, + 0x7697, 0xB07B, 0x7698, 0xB07C, 0x7699, 0xF0AA, 0x769A, 0xB07D, + 0x769B, 0xB07E, 0x769C, 0xB080, 0x769D, 0xB081, 0x769E, 0xB082, + 0x769F, 0xB083, 0x76A0, 0xB084, 0x76A1, 0xB085, 0x76A2, 0xB086, + 0x76A3, 0xB087, 0x76A4, 0xF0AB, 0x76A5, 0xB088, 0x76A6, 0xB089, + 0x76A7, 0xB08A, 0x76A8, 0xB08B, 0x76A9, 0xB08C, 0x76AA, 0xB08D, + 0x76AB, 0xB08E, 0x76AC, 0xB08F, 0x76AD, 0xB090, 0x76AE, 0xC6A4, + 0x76AF, 0xB091, 0x76B0, 0xB092, 0x76B1, 0xD6E5, 0x76B2, 0xF1E4, + 0x76B3, 0xB093, 0x76B4, 0xF1E5, 0x76B5, 0xB094, 0x76B6, 0xB095, + 0x76B7, 0xB096, 0x76B8, 0xB097, 0x76B9, 0xB098, 0x76BA, 0xB099, + 0x76BB, 0xB09A, 0x76BC, 0xB09B, 0x76BD, 0xB09C, 0x76BE, 0xB09D, + 0x76BF, 0xC3F3, 0x76C0, 0xB09E, 0x76C1, 0xB09F, 0x76C2, 0xD3DB, + 0x76C3, 0xB0A0, 0x76C4, 0xB140, 0x76C5, 0xD6D1, 0x76C6, 0xC5E8, + 0x76C7, 0xB141, 0x76C8, 0xD3AF, 0x76C9, 0xB142, 0x76CA, 0xD2E6, + 0x76CB, 0xB143, 0x76CC, 0xB144, 0x76CD, 0xEEC1, 0x76CE, 0xB0BB, + 0x76CF, 0xD5B5, 0x76D0, 0xD1CE, 0x76D1, 0xBCE0, 0x76D2, 0xBAD0, + 0x76D3, 0xB145, 0x76D4, 0xBFF8, 0x76D5, 0xB146, 0x76D6, 0xB8C7, + 0x76D7, 0xB5C1, 0x76D8, 0xC5CC, 0x76D9, 0xB147, 0x76DA, 0xB148, + 0x76DB, 0xCAA2, 0x76DC, 0xB149, 0x76DD, 0xB14A, 0x76DE, 0xB14B, + 0x76DF, 0xC3CB, 0x76E0, 0xB14C, 0x76E1, 0xB14D, 0x76E2, 0xB14E, + 0x76E3, 0xB14F, 0x76E4, 0xB150, 0x76E5, 0xEEC2, 0x76E6, 0xB151, + 0x76E7, 0xB152, 0x76E8, 0xB153, 0x76E9, 0xB154, 0x76EA, 0xB155, + 0x76EB, 0xB156, 0x76EC, 0xB157, 0x76ED, 0xB158, 0x76EE, 0xC4BF, + 0x76EF, 0xB6A2, 0x76F0, 0xB159, 0x76F1, 0xEDEC, 0x76F2, 0xC3A4, + 0x76F3, 0xB15A, 0x76F4, 0xD6B1, 0x76F5, 0xB15B, 0x76F6, 0xB15C, + 0x76F7, 0xB15D, 0x76F8, 0xCFE0, 0x76F9, 0xEDEF, 0x76FA, 0xB15E, + 0x76FB, 0xB15F, 0x76FC, 0xC5CE, 0x76FD, 0xB160, 0x76FE, 0xB6DC, + 0x76FF, 0xB161, 0x7700, 0xB162, 0x7701, 0xCAA1, 0x7702, 0xB163, + 0x7703, 0xB164, 0x7704, 0xEDED, 0x7705, 0xB165, 0x7706, 0xB166, + 0x7707, 0xEDF0, 0x7708, 0xEDF1, 0x7709, 0xC3BC, 0x770A, 0xB167, + 0x770B, 0xBFB4, 0x770C, 0xB168, 0x770D, 0xEDEE, 0x770E, 0xB169, + 0x770F, 0xB16A, 0x7710, 0xB16B, 0x7711, 0xB16C, 0x7712, 0xB16D, + 0x7713, 0xB16E, 0x7714, 0xB16F, 0x7715, 0xB170, 0x7716, 0xB171, + 0x7717, 0xB172, 0x7718, 0xB173, 0x7719, 0xEDF4, 0x771A, 0xEDF2, + 0x771B, 0xB174, 0x771C, 0xB175, 0x771D, 0xB176, 0x771E, 0xB177, + 0x771F, 0xD5E6, 0x7720, 0xC3DF, 0x7721, 0xB178, 0x7722, 0xEDF3, + 0x7723, 0xB179, 0x7724, 0xB17A, 0x7725, 0xB17B, 0x7726, 0xEDF6, + 0x7727, 0xB17C, 0x7728, 0xD5A3, 0x7729, 0xD1A3, 0x772A, 0xB17D, + 0x772B, 0xB17E, 0x772C, 0xB180, 0x772D, 0xEDF5, 0x772E, 0xB181, + 0x772F, 0xC3D0, 0x7730, 0xB182, 0x7731, 0xB183, 0x7732, 0xB184, + 0x7733, 0xB185, 0x7734, 0xB186, 0x7735, 0xEDF7, 0x7736, 0xBFF4, + 0x7737, 0xBEEC, 0x7738, 0xEDF8, 0x7739, 0xB187, 0x773A, 0xCCF7, + 0x773B, 0xB188, 0x773C, 0xD1DB, 0x773D, 0xB189, 0x773E, 0xB18A, + 0x773F, 0xB18B, 0x7740, 0xD7C5, 0x7741, 0xD5F6, 0x7742, 0xB18C, + 0x7743, 0xEDFC, 0x7744, 0xB18D, 0x7745, 0xB18E, 0x7746, 0xB18F, + 0x7747, 0xEDFB, 0x7748, 0xB190, 0x7749, 0xB191, 0x774A, 0xB192, + 0x774B, 0xB193, 0x774C, 0xB194, 0x774D, 0xB195, 0x774E, 0xB196, + 0x774F, 0xB197, 0x7750, 0xEDF9, 0x7751, 0xEDFA, 0x7752, 0xB198, + 0x7753, 0xB199, 0x7754, 0xB19A, 0x7755, 0xB19B, 0x7756, 0xB19C, + 0x7757, 0xB19D, 0x7758, 0xB19E, 0x7759, 0xB19F, 0x775A, 0xEDFD, + 0x775B, 0xBEA6, 0x775C, 0xB1A0, 0x775D, 0xB240, 0x775E, 0xB241, + 0x775F, 0xB242, 0x7760, 0xB243, 0x7761, 0xCBAF, 0x7762, 0xEEA1, + 0x7763, 0xB6BD, 0x7764, 0xB244, 0x7765, 0xEEA2, 0x7766, 0xC4C0, + 0x7767, 0xB245, 0x7768, 0xEDFE, 0x7769, 0xB246, 0x776A, 0xB247, + 0x776B, 0xBDDE, 0x776C, 0xB2C7, 0x776D, 0xB248, 0x776E, 0xB249, + 0x776F, 0xB24A, 0x7770, 0xB24B, 0x7771, 0xB24C, 0x7772, 0xB24D, + 0x7773, 0xB24E, 0x7774, 0xB24F, 0x7775, 0xB250, 0x7776, 0xB251, + 0x7777, 0xB252, 0x7778, 0xB253, 0x7779, 0xB6C3, 0x777A, 0xB254, + 0x777B, 0xB255, 0x777C, 0xB256, 0x777D, 0xEEA5, 0x777E, 0xD8BA, + 0x777F, 0xEEA3, 0x7780, 0xEEA6, 0x7781, 0xB257, 0x7782, 0xB258, + 0x7783, 0xB259, 0x7784, 0xC3E9, 0x7785, 0xB3F2, 0x7786, 0xB25A, + 0x7787, 0xB25B, 0x7788, 0xB25C, 0x7789, 0xB25D, 0x778A, 0xB25E, + 0x778B, 0xB25F, 0x778C, 0xEEA7, 0x778D, 0xEEA4, 0x778E, 0xCFB9, + 0x778F, 0xB260, 0x7790, 0xB261, 0x7791, 0xEEA8, 0x7792, 0xC2F7, + 0x7793, 0xB262, 0x7794, 0xB263, 0x7795, 0xB264, 0x7796, 0xB265, + 0x7797, 0xB266, 0x7798, 0xB267, 0x7799, 0xB268, 0x779A, 0xB269, + 0x779B, 0xB26A, 0x779C, 0xB26B, 0x779D, 0xB26C, 0x779E, 0xB26D, + 0x779F, 0xEEA9, 0x77A0, 0xEEAA, 0x77A1, 0xB26E, 0x77A2, 0xDEAB, + 0x77A3, 0xB26F, 0x77A4, 0xB270, 0x77A5, 0xC6B3, 0x77A6, 0xB271, + 0x77A7, 0xC7C6, 0x77A8, 0xB272, 0x77A9, 0xD6F5, 0x77AA, 0xB5C9, + 0x77AB, 0xB273, 0x77AC, 0xCBB2, 0x77AD, 0xB274, 0x77AE, 0xB275, + 0x77AF, 0xB276, 0x77B0, 0xEEAB, 0x77B1, 0xB277, 0x77B2, 0xB278, + 0x77B3, 0xCDAB, 0x77B4, 0xB279, 0x77B5, 0xEEAC, 0x77B6, 0xB27A, + 0x77B7, 0xB27B, 0x77B8, 0xB27C, 0x77B9, 0xB27D, 0x77BA, 0xB27E, + 0x77BB, 0xD5B0, 0x77BC, 0xB280, 0x77BD, 0xEEAD, 0x77BE, 0xB281, + 0x77BF, 0xF6C4, 0x77C0, 0xB282, 0x77C1, 0xB283, 0x77C2, 0xB284, + 0x77C3, 0xB285, 0x77C4, 0xB286, 0x77C5, 0xB287, 0x77C6, 0xB288, + 0x77C7, 0xB289, 0x77C8, 0xB28A, 0x77C9, 0xB28B, 0x77CA, 0xB28C, + 0x77CB, 0xB28D, 0x77CC, 0xB28E, 0x77CD, 0xDBC7, 0x77CE, 0xB28F, + 0x77CF, 0xB290, 0x77D0, 0xB291, 0x77D1, 0xB292, 0x77D2, 0xB293, + 0x77D3, 0xB294, 0x77D4, 0xB295, 0x77D5, 0xB296, 0x77D6, 0xB297, + 0x77D7, 0xB4A3, 0x77D8, 0xB298, 0x77D9, 0xB299, 0x77DA, 0xB29A, + 0x77DB, 0xC3AC, 0x77DC, 0xF1E6, 0x77DD, 0xB29B, 0x77DE, 0xB29C, + 0x77DF, 0xB29D, 0x77E0, 0xB29E, 0x77E1, 0xB29F, 0x77E2, 0xCAB8, + 0x77E3, 0xD2D3, 0x77E4, 0xB2A0, 0x77E5, 0xD6AA, 0x77E6, 0xB340, + 0x77E7, 0xEFF2, 0x77E8, 0xB341, 0x77E9, 0xBED8, 0x77EA, 0xB342, + 0x77EB, 0xBDC3, 0x77EC, 0xEFF3, 0x77ED, 0xB6CC, 0x77EE, 0xB0AB, + 0x77EF, 0xB343, 0x77F0, 0xB344, 0x77F1, 0xB345, 0x77F2, 0xB346, + 0x77F3, 0xCAAF, 0x77F4, 0xB347, 0x77F5, 0xB348, 0x77F6, 0xEDB6, + 0x77F7, 0xB349, 0x77F8, 0xEDB7, 0x77F9, 0xB34A, 0x77FA, 0xB34B, + 0x77FB, 0xB34C, 0x77FC, 0xB34D, 0x77FD, 0xCEF9, 0x77FE, 0xB7AF, + 0x77FF, 0xBFF3, 0x7800, 0xEDB8, 0x7801, 0xC2EB, 0x7802, 0xC9B0, + 0x7803, 0xB34E, 0x7804, 0xB34F, 0x7805, 0xB350, 0x7806, 0xB351, + 0x7807, 0xB352, 0x7808, 0xB353, 0x7809, 0xEDB9, 0x780A, 0xB354, + 0x780B, 0xB355, 0x780C, 0xC6F6, 0x780D, 0xBFB3, 0x780E, 0xB356, + 0x780F, 0xB357, 0x7810, 0xB358, 0x7811, 0xEDBC, 0x7812, 0xC5F8, + 0x7813, 0xB359, 0x7814, 0xD1D0, 0x7815, 0xB35A, 0x7816, 0xD7A9, + 0x7817, 0xEDBA, 0x7818, 0xEDBB, 0x7819, 0xB35B, 0x781A, 0xD1E2, + 0x781B, 0xB35C, 0x781C, 0xEDBF, 0x781D, 0xEDC0, 0x781E, 0xB35D, + 0x781F, 0xEDC4, 0x7820, 0xB35E, 0x7821, 0xB35F, 0x7822, 0xB360, + 0x7823, 0xEDC8, 0x7824, 0xB361, 0x7825, 0xEDC6, 0x7826, 0xEDCE, + 0x7827, 0xD5E8, 0x7828, 0xB362, 0x7829, 0xEDC9, 0x782A, 0xB363, + 0x782B, 0xB364, 0x782C, 0xEDC7, 0x782D, 0xEDBE, 0x782E, 0xB365, + 0x782F, 0xB366, 0x7830, 0xC5E9, 0x7831, 0xB367, 0x7832, 0xB368, + 0x7833, 0xB369, 0x7834, 0xC6C6, 0x7835, 0xB36A, 0x7836, 0xB36B, + 0x7837, 0xC9E9, 0x7838, 0xD4D2, 0x7839, 0xEDC1, 0x783A, 0xEDC2, + 0x783B, 0xEDC3, 0x783C, 0xEDC5, 0x783D, 0xB36C, 0x783E, 0xC0F9, + 0x783F, 0xB36D, 0x7840, 0xB4A1, 0x7841, 0xB36E, 0x7842, 0xB36F, + 0x7843, 0xB370, 0x7844, 0xB371, 0x7845, 0xB9E8, 0x7846, 0xB372, + 0x7847, 0xEDD0, 0x7848, 0xB373, 0x7849, 0xB374, 0x784A, 0xB375, + 0x784B, 0xB376, 0x784C, 0xEDD1, 0x784D, 0xB377, 0x784E, 0xEDCA, + 0x784F, 0xB378, 0x7850, 0xEDCF, 0x7851, 0xB379, 0x7852, 0xCEF8, + 0x7853, 0xB37A, 0x7854, 0xB37B, 0x7855, 0xCBB6, 0x7856, 0xEDCC, + 0x7857, 0xEDCD, 0x7858, 0xB37C, 0x7859, 0xB37D, 0x785A, 0xB37E, + 0x785B, 0xB380, 0x785C, 0xB381, 0x785D, 0xCFF5, 0x785E, 0xB382, + 0x785F, 0xB383, 0x7860, 0xB384, 0x7861, 0xB385, 0x7862, 0xB386, + 0x7863, 0xB387, 0x7864, 0xB388, 0x7865, 0xB389, 0x7866, 0xB38A, + 0x7867, 0xB38B, 0x7868, 0xB38C, 0x7869, 0xB38D, 0x786A, 0xEDD2, + 0x786B, 0xC1F2, 0x786C, 0xD3B2, 0x786D, 0xEDCB, 0x786E, 0xC8B7, + 0x786F, 0xB38E, 0x7870, 0xB38F, 0x7871, 0xB390, 0x7872, 0xB391, + 0x7873, 0xB392, 0x7874, 0xB393, 0x7875, 0xB394, 0x7876, 0xB395, + 0x7877, 0xBCEF, 0x7878, 0xB396, 0x7879, 0xB397, 0x787A, 0xB398, + 0x787B, 0xB399, 0x787C, 0xC5F0, 0x787D, 0xB39A, 0x787E, 0xB39B, + 0x787F, 0xB39C, 0x7880, 0xB39D, 0x7881, 0xB39E, 0x7882, 0xB39F, + 0x7883, 0xB3A0, 0x7884, 0xB440, 0x7885, 0xB441, 0x7886, 0xB442, + 0x7887, 0xEDD6, 0x7888, 0xB443, 0x7889, 0xB5EF, 0x788A, 0xB444, + 0x788B, 0xB445, 0x788C, 0xC2B5, 0x788D, 0xB0AD, 0x788E, 0xCBE9, + 0x788F, 0xB446, 0x7890, 0xB447, 0x7891, 0xB1AE, 0x7892, 0xB448, + 0x7893, 0xEDD4, 0x7894, 0xB449, 0x7895, 0xB44A, 0x7896, 0xB44B, + 0x7897, 0xCDEB, 0x7898, 0xB5E2, 0x7899, 0xB44C, 0x789A, 0xEDD5, + 0x789B, 0xEDD3, 0x789C, 0xEDD7, 0x789D, 0xB44D, 0x789E, 0xB44E, + 0x789F, 0xB5FA, 0x78A0, 0xB44F, 0x78A1, 0xEDD8, 0x78A2, 0xB450, + 0x78A3, 0xEDD9, 0x78A4, 0xB451, 0x78A5, 0xEDDC, 0x78A6, 0xB452, + 0x78A7, 0xB1CC, 0x78A8, 0xB453, 0x78A9, 0xB454, 0x78AA, 0xB455, + 0x78AB, 0xB456, 0x78AC, 0xB457, 0x78AD, 0xB458, 0x78AE, 0xB459, + 0x78AF, 0xB45A, 0x78B0, 0xC5F6, 0x78B1, 0xBCEE, 0x78B2, 0xEDDA, + 0x78B3, 0xCCBC, 0x78B4, 0xB2EA, 0x78B5, 0xB45B, 0x78B6, 0xB45C, + 0x78B7, 0xB45D, 0x78B8, 0xB45E, 0x78B9, 0xEDDB, 0x78BA, 0xB45F, + 0x78BB, 0xB460, 0x78BC, 0xB461, 0x78BD, 0xB462, 0x78BE, 0xC4EB, + 0x78BF, 0xB463, 0x78C0, 0xB464, 0x78C1, 0xB4C5, 0x78C2, 0xB465, + 0x78C3, 0xB466, 0x78C4, 0xB467, 0x78C5, 0xB0F5, 0x78C6, 0xB468, + 0x78C7, 0xB469, 0x78C8, 0xB46A, 0x78C9, 0xEDDF, 0x78CA, 0xC0DA, + 0x78CB, 0xB4E8, 0x78CC, 0xB46B, 0x78CD, 0xB46C, 0x78CE, 0xB46D, + 0x78CF, 0xB46E, 0x78D0, 0xC5CD, 0x78D1, 0xB46F, 0x78D2, 0xB470, + 0x78D3, 0xB471, 0x78D4, 0xEDDD, 0x78D5, 0xBFC4, 0x78D6, 0xB472, + 0x78D7, 0xB473, 0x78D8, 0xB474, 0x78D9, 0xEDDE, 0x78DA, 0xB475, + 0x78DB, 0xB476, 0x78DC, 0xB477, 0x78DD, 0xB478, 0x78DE, 0xB479, + 0x78DF, 0xB47A, 0x78E0, 0xB47B, 0x78E1, 0xB47C, 0x78E2, 0xB47D, + 0x78E3, 0xB47E, 0x78E4, 0xB480, 0x78E5, 0xB481, 0x78E6, 0xB482, + 0x78E7, 0xB483, 0x78E8, 0xC4A5, 0x78E9, 0xB484, 0x78EA, 0xB485, + 0x78EB, 0xB486, 0x78EC, 0xEDE0, 0x78ED, 0xB487, 0x78EE, 0xB488, + 0x78EF, 0xB489, 0x78F0, 0xB48A, 0x78F1, 0xB48B, 0x78F2, 0xEDE1, + 0x78F3, 0xB48C, 0x78F4, 0xEDE3, 0x78F5, 0xB48D, 0x78F6, 0xB48E, + 0x78F7, 0xC1D7, 0x78F8, 0xB48F, 0x78F9, 0xB490, 0x78FA, 0xBBC7, + 0x78FB, 0xB491, 0x78FC, 0xB492, 0x78FD, 0xB493, 0x78FE, 0xB494, + 0x78FF, 0xB495, 0x7900, 0xB496, 0x7901, 0xBDB8, 0x7902, 0xB497, + 0x7903, 0xB498, 0x7904, 0xB499, 0x7905, 0xEDE2, 0x7906, 0xB49A, + 0x7907, 0xB49B, 0x7908, 0xB49C, 0x7909, 0xB49D, 0x790A, 0xB49E, + 0x790B, 0xB49F, 0x790C, 0xB4A0, 0x790D, 0xB540, 0x790E, 0xB541, + 0x790F, 0xB542, 0x7910, 0xB543, 0x7911, 0xB544, 0x7912, 0xB545, + 0x7913, 0xEDE4, 0x7914, 0xB546, 0x7915, 0xB547, 0x7916, 0xB548, + 0x7917, 0xB549, 0x7918, 0xB54A, 0x7919, 0xB54B, 0x791A, 0xB54C, + 0x791B, 0xB54D, 0x791C, 0xB54E, 0x791D, 0xB54F, 0x791E, 0xEDE6, + 0x791F, 0xB550, 0x7920, 0xB551, 0x7921, 0xB552, 0x7922, 0xB553, + 0x7923, 0xB554, 0x7924, 0xEDE5, 0x7925, 0xB555, 0x7926, 0xB556, + 0x7927, 0xB557, 0x7928, 0xB558, 0x7929, 0xB559, 0x792A, 0xB55A, + 0x792B, 0xB55B, 0x792C, 0xB55C, 0x792D, 0xB55D, 0x792E, 0xB55E, + 0x792F, 0xB55F, 0x7930, 0xB560, 0x7931, 0xB561, 0x7932, 0xB562, + 0x7933, 0xB563, 0x7934, 0xEDE7, 0x7935, 0xB564, 0x7936, 0xB565, + 0x7937, 0xB566, 0x7938, 0xB567, 0x7939, 0xB568, 0x793A, 0xCABE, + 0x793B, 0xECEA, 0x793C, 0xC0F1, 0x793D, 0xB569, 0x793E, 0xC9E7, + 0x793F, 0xB56A, 0x7940, 0xECEB, 0x7941, 0xC6EE, 0x7942, 0xB56B, + 0x7943, 0xB56C, 0x7944, 0xB56D, 0x7945, 0xB56E, 0x7946, 0xECEC, + 0x7947, 0xB56F, 0x7948, 0xC6ED, 0x7949, 0xECED, 0x794A, 0xB570, + 0x794B, 0xB571, 0x794C, 0xB572, 0x794D, 0xB573, 0x794E, 0xB574, + 0x794F, 0xB575, 0x7950, 0xB576, 0x7951, 0xB577, 0x7952, 0xB578, + 0x7953, 0xECF0, 0x7954, 0xB579, 0x7955, 0xB57A, 0x7956, 0xD7E6, + 0x7957, 0xECF3, 0x7958, 0xB57B, 0x7959, 0xB57C, 0x795A, 0xECF1, + 0x795B, 0xECEE, 0x795C, 0xECEF, 0x795D, 0xD7A3, 0x795E, 0xC9F1, + 0x795F, 0xCBEE, 0x7960, 0xECF4, 0x7961, 0xB57D, 0x7962, 0xECF2, + 0x7963, 0xB57E, 0x7964, 0xB580, 0x7965, 0xCFE9, 0x7966, 0xB581, + 0x7967, 0xECF6, 0x7968, 0xC6B1, 0x7969, 0xB582, 0x796A, 0xB583, + 0x796B, 0xB584, 0x796C, 0xB585, 0x796D, 0xBCC0, 0x796E, 0xB586, + 0x796F, 0xECF5, 0x7970, 0xB587, 0x7971, 0xB588, 0x7972, 0xB589, + 0x7973, 0xB58A, 0x7974, 0xB58B, 0x7975, 0xB58C, 0x7976, 0xB58D, + 0x7977, 0xB5BB, 0x7978, 0xBBF6, 0x7979, 0xB58E, 0x797A, 0xECF7, + 0x797B, 0xB58F, 0x797C, 0xB590, 0x797D, 0xB591, 0x797E, 0xB592, + 0x797F, 0xB593, 0x7980, 0xD9F7, 0x7981, 0xBDFB, 0x7982, 0xB594, + 0x7983, 0xB595, 0x7984, 0xC2BB, 0x7985, 0xECF8, 0x7986, 0xB596, + 0x7987, 0xB597, 0x7988, 0xB598, 0x7989, 0xB599, 0x798A, 0xECF9, + 0x798B, 0xB59A, 0x798C, 0xB59B, 0x798D, 0xB59C, 0x798E, 0xB59D, + 0x798F, 0xB8A3, 0x7990, 0xB59E, 0x7991, 0xB59F, 0x7992, 0xB5A0, + 0x7993, 0xB640, 0x7994, 0xB641, 0x7995, 0xB642, 0x7996, 0xB643, + 0x7997, 0xB644, 0x7998, 0xB645, 0x7999, 0xB646, 0x799A, 0xECFA, + 0x799B, 0xB647, 0x799C, 0xB648, 0x799D, 0xB649, 0x799E, 0xB64A, + 0x799F, 0xB64B, 0x79A0, 0xB64C, 0x79A1, 0xB64D, 0x79A2, 0xB64E, + 0x79A3, 0xB64F, 0x79A4, 0xB650, 0x79A5, 0xB651, 0x79A6, 0xB652, + 0x79A7, 0xECFB, 0x79A8, 0xB653, 0x79A9, 0xB654, 0x79AA, 0xB655, + 0x79AB, 0xB656, 0x79AC, 0xB657, 0x79AD, 0xB658, 0x79AE, 0xB659, + 0x79AF, 0xB65A, 0x79B0, 0xB65B, 0x79B1, 0xB65C, 0x79B2, 0xB65D, + 0x79B3, 0xECFC, 0x79B4, 0xB65E, 0x79B5, 0xB65F, 0x79B6, 0xB660, + 0x79B7, 0xB661, 0x79B8, 0xB662, 0x79B9, 0xD3ED, 0x79BA, 0xD8AE, + 0x79BB, 0xC0EB, 0x79BC, 0xB663, 0x79BD, 0xC7DD, 0x79BE, 0xBACC, + 0x79BF, 0xB664, 0x79C0, 0xD0E3, 0x79C1, 0xCBBD, 0x79C2, 0xB665, + 0x79C3, 0xCDBA, 0x79C4, 0xB666, 0x79C5, 0xB667, 0x79C6, 0xB8D1, + 0x79C7, 0xB668, 0x79C8, 0xB669, 0x79C9, 0xB1FC, 0x79CA, 0xB66A, + 0x79CB, 0xC7EF, 0x79CC, 0xB66B, 0x79CD, 0xD6D6, 0x79CE, 0xB66C, + 0x79CF, 0xB66D, 0x79D0, 0xB66E, 0x79D1, 0xBFC6, 0x79D2, 0xC3EB, + 0x79D3, 0xB66F, 0x79D4, 0xB670, 0x79D5, 0xEFF5, 0x79D6, 0xB671, + 0x79D7, 0xB672, 0x79D8, 0xC3D8, 0x79D9, 0xB673, 0x79DA, 0xB674, + 0x79DB, 0xB675, 0x79DC, 0xB676, 0x79DD, 0xB677, 0x79DE, 0xB678, + 0x79DF, 0xD7E2, 0x79E0, 0xB679, 0x79E1, 0xB67A, 0x79E2, 0xB67B, + 0x79E3, 0xEFF7, 0x79E4, 0xB3D3, 0x79E5, 0xB67C, 0x79E6, 0xC7D8, + 0x79E7, 0xD1ED, 0x79E8, 0xB67D, 0x79E9, 0xD6C8, 0x79EA, 0xB67E, + 0x79EB, 0xEFF8, 0x79EC, 0xB680, 0x79ED, 0xEFF6, 0x79EE, 0xB681, + 0x79EF, 0xBBFD, 0x79F0, 0xB3C6, 0x79F1, 0xB682, 0x79F2, 0xB683, + 0x79F3, 0xB684, 0x79F4, 0xB685, 0x79F5, 0xB686, 0x79F6, 0xB687, + 0x79F7, 0xB688, 0x79F8, 0xBDD5, 0x79F9, 0xB689, 0x79FA, 0xB68A, + 0x79FB, 0xD2C6, 0x79FC, 0xB68B, 0x79FD, 0xBBE0, 0x79FE, 0xB68C, + 0x79FF, 0xB68D, 0x7A00, 0xCFA1, 0x7A01, 0xB68E, 0x7A02, 0xEFFC, + 0x7A03, 0xEFFB, 0x7A04, 0xB68F, 0x7A05, 0xB690, 0x7A06, 0xEFF9, + 0x7A07, 0xB691, 0x7A08, 0xB692, 0x7A09, 0xB693, 0x7A0A, 0xB694, + 0x7A0B, 0xB3CC, 0x7A0C, 0xB695, 0x7A0D, 0xC9D4, 0x7A0E, 0xCBB0, + 0x7A0F, 0xB696, 0x7A10, 0xB697, 0x7A11, 0xB698, 0x7A12, 0xB699, + 0x7A13, 0xB69A, 0x7A14, 0xEFFE, 0x7A15, 0xB69B, 0x7A16, 0xB69C, + 0x7A17, 0xB0DE, 0x7A18, 0xB69D, 0x7A19, 0xB69E, 0x7A1A, 0xD6C9, + 0x7A1B, 0xB69F, 0x7A1C, 0xB6A0, 0x7A1D, 0xB740, 0x7A1E, 0xEFFD, + 0x7A1F, 0xB741, 0x7A20, 0xB3ED, 0x7A21, 0xB742, 0x7A22, 0xB743, + 0x7A23, 0xF6D5, 0x7A24, 0xB744, 0x7A25, 0xB745, 0x7A26, 0xB746, + 0x7A27, 0xB747, 0x7A28, 0xB748, 0x7A29, 0xB749, 0x7A2A, 0xB74A, + 0x7A2B, 0xB74B, 0x7A2C, 0xB74C, 0x7A2D, 0xB74D, 0x7A2E, 0xB74E, + 0x7A2F, 0xB74F, 0x7A30, 0xB750, 0x7A31, 0xB751, 0x7A32, 0xB752, + 0x7A33, 0xCEC8, 0x7A34, 0xB753, 0x7A35, 0xB754, 0x7A36, 0xB755, + 0x7A37, 0xF0A2, 0x7A38, 0xB756, 0x7A39, 0xF0A1, 0x7A3A, 0xB757, + 0x7A3B, 0xB5BE, 0x7A3C, 0xBCDA, 0x7A3D, 0xBBFC, 0x7A3E, 0xB758, + 0x7A3F, 0xB8E5, 0x7A40, 0xB759, 0x7A41, 0xB75A, 0x7A42, 0xB75B, + 0x7A43, 0xB75C, 0x7A44, 0xB75D, 0x7A45, 0xB75E, 0x7A46, 0xC4C2, + 0x7A47, 0xB75F, 0x7A48, 0xB760, 0x7A49, 0xB761, 0x7A4A, 0xB762, + 0x7A4B, 0xB763, 0x7A4C, 0xB764, 0x7A4D, 0xB765, 0x7A4E, 0xB766, + 0x7A4F, 0xB767, 0x7A50, 0xB768, 0x7A51, 0xF0A3, 0x7A52, 0xB769, + 0x7A53, 0xB76A, 0x7A54, 0xB76B, 0x7A55, 0xB76C, 0x7A56, 0xB76D, + 0x7A57, 0xCBEB, 0x7A58, 0xB76E, 0x7A59, 0xB76F, 0x7A5A, 0xB770, + 0x7A5B, 0xB771, 0x7A5C, 0xB772, 0x7A5D, 0xB773, 0x7A5E, 0xB774, + 0x7A5F, 0xB775, 0x7A60, 0xB776, 0x7A61, 0xB777, 0x7A62, 0xB778, + 0x7A63, 0xB779, 0x7A64, 0xB77A, 0x7A65, 0xB77B, 0x7A66, 0xB77C, + 0x7A67, 0xB77D, 0x7A68, 0xB77E, 0x7A69, 0xB780, 0x7A6A, 0xB781, + 0x7A6B, 0xB782, 0x7A6C, 0xB783, 0x7A6D, 0xB784, 0x7A6E, 0xB785, + 0x7A6F, 0xB786, 0x7A70, 0xF0A6, 0x7A71, 0xB787, 0x7A72, 0xB788, + 0x7A73, 0xB789, 0x7A74, 0xD1A8, 0x7A75, 0xB78A, 0x7A76, 0xBEBF, + 0x7A77, 0xC7EE, 0x7A78, 0xF1B6, 0x7A79, 0xF1B7, 0x7A7A, 0xBFD5, + 0x7A7B, 0xB78B, 0x7A7C, 0xB78C, 0x7A7D, 0xB78D, 0x7A7E, 0xB78E, + 0x7A7F, 0xB4A9, 0x7A80, 0xF1B8, 0x7A81, 0xCDBB, 0x7A82, 0xB78F, + 0x7A83, 0xC7D4, 0x7A84, 0xD5AD, 0x7A85, 0xB790, 0x7A86, 0xF1B9, + 0x7A87, 0xB791, 0x7A88, 0xF1BA, 0x7A89, 0xB792, 0x7A8A, 0xB793, + 0x7A8B, 0xB794, 0x7A8C, 0xB795, 0x7A8D, 0xC7CF, 0x7A8E, 0xB796, + 0x7A8F, 0xB797, 0x7A90, 0xB798, 0x7A91, 0xD2A4, 0x7A92, 0xD6CF, + 0x7A93, 0xB799, 0x7A94, 0xB79A, 0x7A95, 0xF1BB, 0x7A96, 0xBDD1, + 0x7A97, 0xB4B0, 0x7A98, 0xBEBD, 0x7A99, 0xB79B, 0x7A9A, 0xB79C, + 0x7A9B, 0xB79D, 0x7A9C, 0xB4DC, 0x7A9D, 0xCED1, 0x7A9E, 0xB79E, + 0x7A9F, 0xBFDF, 0x7AA0, 0xF1BD, 0x7AA1, 0xB79F, 0x7AA2, 0xB7A0, + 0x7AA3, 0xB840, 0x7AA4, 0xB841, 0x7AA5, 0xBFFA, 0x7AA6, 0xF1BC, + 0x7AA7, 0xB842, 0x7AA8, 0xF1BF, 0x7AA9, 0xB843, 0x7AAA, 0xB844, + 0x7AAB, 0xB845, 0x7AAC, 0xF1BE, 0x7AAD, 0xF1C0, 0x7AAE, 0xB846, + 0x7AAF, 0xB847, 0x7AB0, 0xB848, 0x7AB1, 0xB849, 0x7AB2, 0xB84A, + 0x7AB3, 0xF1C1, 0x7AB4, 0xB84B, 0x7AB5, 0xB84C, 0x7AB6, 0xB84D, + 0x7AB7, 0xB84E, 0x7AB8, 0xB84F, 0x7AB9, 0xB850, 0x7ABA, 0xB851, + 0x7ABB, 0xB852, 0x7ABC, 0xB853, 0x7ABD, 0xB854, 0x7ABE, 0xB855, + 0x7ABF, 0xC1FE, 0x7AC0, 0xB856, 0x7AC1, 0xB857, 0x7AC2, 0xB858, + 0x7AC3, 0xB859, 0x7AC4, 0xB85A, 0x7AC5, 0xB85B, 0x7AC6, 0xB85C, + 0x7AC7, 0xB85D, 0x7AC8, 0xB85E, 0x7AC9, 0xB85F, 0x7ACA, 0xB860, + 0x7ACB, 0xC1A2, 0x7ACC, 0xB861, 0x7ACD, 0xB862, 0x7ACE, 0xB863, + 0x7ACF, 0xB864, 0x7AD0, 0xB865, 0x7AD1, 0xB866, 0x7AD2, 0xB867, + 0x7AD3, 0xB868, 0x7AD4, 0xB869, 0x7AD5, 0xB86A, 0x7AD6, 0xCAFA, + 0x7AD7, 0xB86B, 0x7AD8, 0xB86C, 0x7AD9, 0xD5BE, 0x7ADA, 0xB86D, + 0x7ADB, 0xB86E, 0x7ADC, 0xB86F, 0x7ADD, 0xB870, 0x7ADE, 0xBEBA, + 0x7ADF, 0xBEB9, 0x7AE0, 0xD5C2, 0x7AE1, 0xB871, 0x7AE2, 0xB872, + 0x7AE3, 0xBFA2, 0x7AE4, 0xB873, 0x7AE5, 0xCDAF, 0x7AE6, 0xF1B5, + 0x7AE7, 0xB874, 0x7AE8, 0xB875, 0x7AE9, 0xB876, 0x7AEA, 0xB877, + 0x7AEB, 0xB878, 0x7AEC, 0xB879, 0x7AED, 0xBDDF, 0x7AEE, 0xB87A, + 0x7AEF, 0xB6CB, 0x7AF0, 0xB87B, 0x7AF1, 0xB87C, 0x7AF2, 0xB87D, + 0x7AF3, 0xB87E, 0x7AF4, 0xB880, 0x7AF5, 0xB881, 0x7AF6, 0xB882, + 0x7AF7, 0xB883, 0x7AF8, 0xB884, 0x7AF9, 0xD6F1, 0x7AFA, 0xF3C3, + 0x7AFB, 0xB885, 0x7AFC, 0xB886, 0x7AFD, 0xF3C4, 0x7AFE, 0xB887, + 0x7AFF, 0xB8CD, 0x7B00, 0xB888, 0x7B01, 0xB889, 0x7B02, 0xB88A, + 0x7B03, 0xF3C6, 0x7B04, 0xF3C7, 0x7B05, 0xB88B, 0x7B06, 0xB0CA, + 0x7B07, 0xB88C, 0x7B08, 0xF3C5, 0x7B09, 0xB88D, 0x7B0A, 0xF3C9, + 0x7B0B, 0xCBF1, 0x7B0C, 0xB88E, 0x7B0D, 0xB88F, 0x7B0E, 0xB890, + 0x7B0F, 0xF3CB, 0x7B10, 0xB891, 0x7B11, 0xD0A6, 0x7B12, 0xB892, + 0x7B13, 0xB893, 0x7B14, 0xB1CA, 0x7B15, 0xF3C8, 0x7B16, 0xB894, + 0x7B17, 0xB895, 0x7B18, 0xB896, 0x7B19, 0xF3CF, 0x7B1A, 0xB897, + 0x7B1B, 0xB5D1, 0x7B1C, 0xB898, 0x7B1D, 0xB899, 0x7B1E, 0xF3D7, + 0x7B1F, 0xB89A, 0x7B20, 0xF3D2, 0x7B21, 0xB89B, 0x7B22, 0xB89C, + 0x7B23, 0xB89D, 0x7B24, 0xF3D4, 0x7B25, 0xF3D3, 0x7B26, 0xB7FB, + 0x7B27, 0xB89E, 0x7B28, 0xB1BF, 0x7B29, 0xB89F, 0x7B2A, 0xF3CE, + 0x7B2B, 0xF3CA, 0x7B2C, 0xB5DA, 0x7B2D, 0xB8A0, 0x7B2E, 0xF3D0, + 0x7B2F, 0xB940, 0x7B30, 0xB941, 0x7B31, 0xF3D1, 0x7B32, 0xB942, + 0x7B33, 0xF3D5, 0x7B34, 0xB943, 0x7B35, 0xB944, 0x7B36, 0xB945, + 0x7B37, 0xB946, 0x7B38, 0xF3CD, 0x7B39, 0xB947, 0x7B3A, 0xBCE3, + 0x7B3B, 0xB948, 0x7B3C, 0xC1FD, 0x7B3D, 0xB949, 0x7B3E, 0xF3D6, + 0x7B3F, 0xB94A, 0x7B40, 0xB94B, 0x7B41, 0xB94C, 0x7B42, 0xB94D, + 0x7B43, 0xB94E, 0x7B44, 0xB94F, 0x7B45, 0xF3DA, 0x7B46, 0xB950, + 0x7B47, 0xF3CC, 0x7B48, 0xB951, 0x7B49, 0xB5C8, 0x7B4A, 0xB952, + 0x7B4B, 0xBDEE, 0x7B4C, 0xF3DC, 0x7B4D, 0xB953, 0x7B4E, 0xB954, + 0x7B4F, 0xB7A4, 0x7B50, 0xBFF0, 0x7B51, 0xD6FE, 0x7B52, 0xCDB2, + 0x7B53, 0xB955, 0x7B54, 0xB4F0, 0x7B55, 0xB956, 0x7B56, 0xB2DF, + 0x7B57, 0xB957, 0x7B58, 0xF3D8, 0x7B59, 0xB958, 0x7B5A, 0xF3D9, + 0x7B5B, 0xC9B8, 0x7B5C, 0xB959, 0x7B5D, 0xF3DD, 0x7B5E, 0xB95A, + 0x7B5F, 0xB95B, 0x7B60, 0xF3DE, 0x7B61, 0xB95C, 0x7B62, 0xF3E1, + 0x7B63, 0xB95D, 0x7B64, 0xB95E, 0x7B65, 0xB95F, 0x7B66, 0xB960, + 0x7B67, 0xB961, 0x7B68, 0xB962, 0x7B69, 0xB963, 0x7B6A, 0xB964, + 0x7B6B, 0xB965, 0x7B6C, 0xB966, 0x7B6D, 0xB967, 0x7B6E, 0xF3DF, + 0x7B6F, 0xB968, 0x7B70, 0xB969, 0x7B71, 0xF3E3, 0x7B72, 0xF3E2, + 0x7B73, 0xB96A, 0x7B74, 0xB96B, 0x7B75, 0xF3DB, 0x7B76, 0xB96C, + 0x7B77, 0xBFEA, 0x7B78, 0xB96D, 0x7B79, 0xB3EF, 0x7B7A, 0xB96E, + 0x7B7B, 0xF3E0, 0x7B7C, 0xB96F, 0x7B7D, 0xB970, 0x7B7E, 0xC7A9, + 0x7B7F, 0xB971, 0x7B80, 0xBCF2, 0x7B81, 0xB972, 0x7B82, 0xB973, + 0x7B83, 0xB974, 0x7B84, 0xB975, 0x7B85, 0xF3EB, 0x7B86, 0xB976, + 0x7B87, 0xB977, 0x7B88, 0xB978, 0x7B89, 0xB979, 0x7B8A, 0xB97A, + 0x7B8B, 0xB97B, 0x7B8C, 0xB97C, 0x7B8D, 0xB9BF, 0x7B8E, 0xB97D, + 0x7B8F, 0xB97E, 0x7B90, 0xF3E4, 0x7B91, 0xB980, 0x7B92, 0xB981, + 0x7B93, 0xB982, 0x7B94, 0xB2AD, 0x7B95, 0xBBFE, 0x7B96, 0xB983, + 0x7B97, 0xCBE3, 0x7B98, 0xB984, 0x7B99, 0xB985, 0x7B9A, 0xB986, + 0x7B9B, 0xB987, 0x7B9C, 0xF3ED, 0x7B9D, 0xF3E9, 0x7B9E, 0xB988, + 0x7B9F, 0xB989, 0x7BA0, 0xB98A, 0x7BA1, 0xB9DC, 0x7BA2, 0xF3EE, + 0x7BA3, 0xB98B, 0x7BA4, 0xB98C, 0x7BA5, 0xB98D, 0x7BA6, 0xF3E5, + 0x7BA7, 0xF3E6, 0x7BA8, 0xF3EA, 0x7BA9, 0xC2E1, 0x7BAA, 0xF3EC, + 0x7BAB, 0xF3EF, 0x7BAC, 0xF3E8, 0x7BAD, 0xBCFD, 0x7BAE, 0xB98E, + 0x7BAF, 0xB98F, 0x7BB0, 0xB990, 0x7BB1, 0xCFE4, 0x7BB2, 0xB991, + 0x7BB3, 0xB992, 0x7BB4, 0xF3F0, 0x7BB5, 0xB993, 0x7BB6, 0xB994, + 0x7BB7, 0xB995, 0x7BB8, 0xF3E7, 0x7BB9, 0xB996, 0x7BBA, 0xB997, + 0x7BBB, 0xB998, 0x7BBC, 0xB999, 0x7BBD, 0xB99A, 0x7BBE, 0xB99B, + 0x7BBF, 0xB99C, 0x7BC0, 0xB99D, 0x7BC1, 0xF3F2, 0x7BC2, 0xB99E, + 0x7BC3, 0xB99F, 0x7BC4, 0xB9A0, 0x7BC5, 0xBA40, 0x7BC6, 0xD7AD, + 0x7BC7, 0xC6AA, 0x7BC8, 0xBA41, 0x7BC9, 0xBA42, 0x7BCA, 0xBA43, + 0x7BCB, 0xBA44, 0x7BCC, 0xF3F3, 0x7BCD, 0xBA45, 0x7BCE, 0xBA46, + 0x7BCF, 0xBA47, 0x7BD0, 0xBA48, 0x7BD1, 0xF3F1, 0x7BD2, 0xBA49, + 0x7BD3, 0xC2A8, 0x7BD4, 0xBA4A, 0x7BD5, 0xBA4B, 0x7BD6, 0xBA4C, + 0x7BD7, 0xBA4D, 0x7BD8, 0xBA4E, 0x7BD9, 0xB8DD, 0x7BDA, 0xF3F5, + 0x7BDB, 0xBA4F, 0x7BDC, 0xBA50, 0x7BDD, 0xF3F4, 0x7BDE, 0xBA51, + 0x7BDF, 0xBA52, 0x7BE0, 0xBA53, 0x7BE1, 0xB4DB, 0x7BE2, 0xBA54, + 0x7BE3, 0xBA55, 0x7BE4, 0xBA56, 0x7BE5, 0xF3F6, 0x7BE6, 0xF3F7, + 0x7BE7, 0xBA57, 0x7BE8, 0xBA58, 0x7BE9, 0xBA59, 0x7BEA, 0xF3F8, + 0x7BEB, 0xBA5A, 0x7BEC, 0xBA5B, 0x7BED, 0xBA5C, 0x7BEE, 0xC0BA, + 0x7BEF, 0xBA5D, 0x7BF0, 0xBA5E, 0x7BF1, 0xC0E9, 0x7BF2, 0xBA5F, + 0x7BF3, 0xBA60, 0x7BF4, 0xBA61, 0x7BF5, 0xBA62, 0x7BF6, 0xBA63, + 0x7BF7, 0xC5F1, 0x7BF8, 0xBA64, 0x7BF9, 0xBA65, 0x7BFA, 0xBA66, + 0x7BFB, 0xBA67, 0x7BFC, 0xF3FB, 0x7BFD, 0xBA68, 0x7BFE, 0xF3FA, + 0x7BFF, 0xBA69, 0x7C00, 0xBA6A, 0x7C01, 0xBA6B, 0x7C02, 0xBA6C, + 0x7C03, 0xBA6D, 0x7C04, 0xBA6E, 0x7C05, 0xBA6F, 0x7C06, 0xBA70, + 0x7C07, 0xB4D8, 0x7C08, 0xBA71, 0x7C09, 0xBA72, 0x7C0A, 0xBA73, + 0x7C0B, 0xF3FE, 0x7C0C, 0xF3F9, 0x7C0D, 0xBA74, 0x7C0E, 0xBA75, + 0x7C0F, 0xF3FC, 0x7C10, 0xBA76, 0x7C11, 0xBA77, 0x7C12, 0xBA78, + 0x7C13, 0xBA79, 0x7C14, 0xBA7A, 0x7C15, 0xBA7B, 0x7C16, 0xF3FD, + 0x7C17, 0xBA7C, 0x7C18, 0xBA7D, 0x7C19, 0xBA7E, 0x7C1A, 0xBA80, + 0x7C1B, 0xBA81, 0x7C1C, 0xBA82, 0x7C1D, 0xBA83, 0x7C1E, 0xBA84, + 0x7C1F, 0xF4A1, 0x7C20, 0xBA85, 0x7C21, 0xBA86, 0x7C22, 0xBA87, + 0x7C23, 0xBA88, 0x7C24, 0xBA89, 0x7C25, 0xBA8A, 0x7C26, 0xF4A3, + 0x7C27, 0xBBC9, 0x7C28, 0xBA8B, 0x7C29, 0xBA8C, 0x7C2A, 0xF4A2, + 0x7C2B, 0xBA8D, 0x7C2C, 0xBA8E, 0x7C2D, 0xBA8F, 0x7C2E, 0xBA90, + 0x7C2F, 0xBA91, 0x7C30, 0xBA92, 0x7C31, 0xBA93, 0x7C32, 0xBA94, + 0x7C33, 0xBA95, 0x7C34, 0xBA96, 0x7C35, 0xBA97, 0x7C36, 0xBA98, + 0x7C37, 0xBA99, 0x7C38, 0xF4A4, 0x7C39, 0xBA9A, 0x7C3A, 0xBA9B, + 0x7C3B, 0xBA9C, 0x7C3C, 0xBA9D, 0x7C3D, 0xBA9E, 0x7C3E, 0xBA9F, + 0x7C3F, 0xB2BE, 0x7C40, 0xF4A6, 0x7C41, 0xF4A5, 0x7C42, 0xBAA0, + 0x7C43, 0xBB40, 0x7C44, 0xBB41, 0x7C45, 0xBB42, 0x7C46, 0xBB43, + 0x7C47, 0xBB44, 0x7C48, 0xBB45, 0x7C49, 0xBB46, 0x7C4A, 0xBB47, + 0x7C4B, 0xBB48, 0x7C4C, 0xBB49, 0x7C4D, 0xBCAE, 0x7C4E, 0xBB4A, + 0x7C4F, 0xBB4B, 0x7C50, 0xBB4C, 0x7C51, 0xBB4D, 0x7C52, 0xBB4E, + 0x7C53, 0xBB4F, 0x7C54, 0xBB50, 0x7C55, 0xBB51, 0x7C56, 0xBB52, + 0x7C57, 0xBB53, 0x7C58, 0xBB54, 0x7C59, 0xBB55, 0x7C5A, 0xBB56, + 0x7C5B, 0xBB57, 0x7C5C, 0xBB58, 0x7C5D, 0xBB59, 0x7C5E, 0xBB5A, + 0x7C5F, 0xBB5B, 0x7C60, 0xBB5C, 0x7C61, 0xBB5D, 0x7C62, 0xBB5E, + 0x7C63, 0xBB5F, 0x7C64, 0xBB60, 0x7C65, 0xBB61, 0x7C66, 0xBB62, + 0x7C67, 0xBB63, 0x7C68, 0xBB64, 0x7C69, 0xBB65, 0x7C6A, 0xBB66, + 0x7C6B, 0xBB67, 0x7C6C, 0xBB68, 0x7C6D, 0xBB69, 0x7C6E, 0xBB6A, + 0x7C6F, 0xBB6B, 0x7C70, 0xBB6C, 0x7C71, 0xBB6D, 0x7C72, 0xBB6E, + 0x7C73, 0xC3D7, 0x7C74, 0xD9E1, 0x7C75, 0xBB6F, 0x7C76, 0xBB70, + 0x7C77, 0xBB71, 0x7C78, 0xBB72, 0x7C79, 0xBB73, 0x7C7A, 0xBB74, + 0x7C7B, 0xC0E0, 0x7C7C, 0xF4CC, 0x7C7D, 0xD7D1, 0x7C7E, 0xBB75, + 0x7C7F, 0xBB76, 0x7C80, 0xBB77, 0x7C81, 0xBB78, 0x7C82, 0xBB79, + 0x7C83, 0xBB7A, 0x7C84, 0xBB7B, 0x7C85, 0xBB7C, 0x7C86, 0xBB7D, + 0x7C87, 0xBB7E, 0x7C88, 0xBB80, 0x7C89, 0xB7DB, 0x7C8A, 0xBB81, + 0x7C8B, 0xBB82, 0x7C8C, 0xBB83, 0x7C8D, 0xBB84, 0x7C8E, 0xBB85, + 0x7C8F, 0xBB86, 0x7C90, 0xBB87, 0x7C91, 0xF4CE, 0x7C92, 0xC1A3, + 0x7C93, 0xBB88, 0x7C94, 0xBB89, 0x7C95, 0xC6C9, 0x7C96, 0xBB8A, + 0x7C97, 0xB4D6, 0x7C98, 0xD5B3, 0x7C99, 0xBB8B, 0x7C9A, 0xBB8C, + 0x7C9B, 0xBB8D, 0x7C9C, 0xF4D0, 0x7C9D, 0xF4CF, 0x7C9E, 0xF4D1, + 0x7C9F, 0xCBDA, 0x7CA0, 0xBB8E, 0x7CA1, 0xBB8F, 0x7CA2, 0xF4D2, + 0x7CA3, 0xBB90, 0x7CA4, 0xD4C1, 0x7CA5, 0xD6E0, 0x7CA6, 0xBB91, + 0x7CA7, 0xBB92, 0x7CA8, 0xBB93, 0x7CA9, 0xBB94, 0x7CAA, 0xB7E0, + 0x7CAB, 0xBB95, 0x7CAC, 0xBB96, 0x7CAD, 0xBB97, 0x7CAE, 0xC1B8, + 0x7CAF, 0xBB98, 0x7CB0, 0xBB99, 0x7CB1, 0xC1BB, 0x7CB2, 0xF4D3, + 0x7CB3, 0xBEAC, 0x7CB4, 0xBB9A, 0x7CB5, 0xBB9B, 0x7CB6, 0xBB9C, + 0x7CB7, 0xBB9D, 0x7CB8, 0xBB9E, 0x7CB9, 0xB4E2, 0x7CBA, 0xBB9F, + 0x7CBB, 0xBBA0, 0x7CBC, 0xF4D4, 0x7CBD, 0xF4D5, 0x7CBE, 0xBEAB, + 0x7CBF, 0xBC40, 0x7CC0, 0xBC41, 0x7CC1, 0xF4D6, 0x7CC2, 0xBC42, + 0x7CC3, 0xBC43, 0x7CC4, 0xBC44, 0x7CC5, 0xF4DB, 0x7CC6, 0xBC45, + 0x7CC7, 0xF4D7, 0x7CC8, 0xF4DA, 0x7CC9, 0xBC46, 0x7CCA, 0xBAFD, + 0x7CCB, 0xBC47, 0x7CCC, 0xF4D8, 0x7CCD, 0xF4D9, 0x7CCE, 0xBC48, + 0x7CCF, 0xBC49, 0x7CD0, 0xBC4A, 0x7CD1, 0xBC4B, 0x7CD2, 0xBC4C, + 0x7CD3, 0xBC4D, 0x7CD4, 0xBC4E, 0x7CD5, 0xB8E2, 0x7CD6, 0xCCC7, + 0x7CD7, 0xF4DC, 0x7CD8, 0xBC4F, 0x7CD9, 0xB2DA, 0x7CDA, 0xBC50, + 0x7CDB, 0xBC51, 0x7CDC, 0xC3D3, 0x7CDD, 0xBC52, 0x7CDE, 0xBC53, + 0x7CDF, 0xD4E3, 0x7CE0, 0xBFB7, 0x7CE1, 0xBC54, 0x7CE2, 0xBC55, + 0x7CE3, 0xBC56, 0x7CE4, 0xBC57, 0x7CE5, 0xBC58, 0x7CE6, 0xBC59, + 0x7CE7, 0xBC5A, 0x7CE8, 0xF4DD, 0x7CE9, 0xBC5B, 0x7CEA, 0xBC5C, + 0x7CEB, 0xBC5D, 0x7CEC, 0xBC5E, 0x7CED, 0xBC5F, 0x7CEE, 0xBC60, + 0x7CEF, 0xC5B4, 0x7CF0, 0xBC61, 0x7CF1, 0xBC62, 0x7CF2, 0xBC63, + 0x7CF3, 0xBC64, 0x7CF4, 0xBC65, 0x7CF5, 0xBC66, 0x7CF6, 0xBC67, + 0x7CF7, 0xBC68, 0x7CF8, 0xF4E9, 0x7CF9, 0xBC69, 0x7CFA, 0xBC6A, + 0x7CFB, 0xCFB5, 0x7CFC, 0xBC6B, 0x7CFD, 0xBC6C, 0x7CFE, 0xBC6D, + 0x7CFF, 0xBC6E, 0x7D00, 0xBC6F, 0x7D01, 0xBC70, 0x7D02, 0xBC71, + 0x7D03, 0xBC72, 0x7D04, 0xBC73, 0x7D05, 0xBC74, 0x7D06, 0xBC75, + 0x7D07, 0xBC76, 0x7D08, 0xBC77, 0x7D09, 0xBC78, 0x7D0A, 0xCEC9, + 0x7D0B, 0xBC79, 0x7D0C, 0xBC7A, 0x7D0D, 0xBC7B, 0x7D0E, 0xBC7C, + 0x7D0F, 0xBC7D, 0x7D10, 0xBC7E, 0x7D11, 0xBC80, 0x7D12, 0xBC81, + 0x7D13, 0xBC82, 0x7D14, 0xBC83, 0x7D15, 0xBC84, 0x7D16, 0xBC85, + 0x7D17, 0xBC86, 0x7D18, 0xBC87, 0x7D19, 0xBC88, 0x7D1A, 0xBC89, + 0x7D1B, 0xBC8A, 0x7D1C, 0xBC8B, 0x7D1D, 0xBC8C, 0x7D1E, 0xBC8D, + 0x7D1F, 0xBC8E, 0x7D20, 0xCBD8, 0x7D21, 0xBC8F, 0x7D22, 0xCBF7, + 0x7D23, 0xBC90, 0x7D24, 0xBC91, 0x7D25, 0xBC92, 0x7D26, 0xBC93, + 0x7D27, 0xBDF4, 0x7D28, 0xBC94, 0x7D29, 0xBC95, 0x7D2A, 0xBC96, + 0x7D2B, 0xD7CF, 0x7D2C, 0xBC97, 0x7D2D, 0xBC98, 0x7D2E, 0xBC99, + 0x7D2F, 0xC0DB, 0x7D30, 0xBC9A, 0x7D31, 0xBC9B, 0x7D32, 0xBC9C, + 0x7D33, 0xBC9D, 0x7D34, 0xBC9E, 0x7D35, 0xBC9F, 0x7D36, 0xBCA0, + 0x7D37, 0xBD40, 0x7D38, 0xBD41, 0x7D39, 0xBD42, 0x7D3A, 0xBD43, + 0x7D3B, 0xBD44, 0x7D3C, 0xBD45, 0x7D3D, 0xBD46, 0x7D3E, 0xBD47, + 0x7D3F, 0xBD48, 0x7D40, 0xBD49, 0x7D41, 0xBD4A, 0x7D42, 0xBD4B, + 0x7D43, 0xBD4C, 0x7D44, 0xBD4D, 0x7D45, 0xBD4E, 0x7D46, 0xBD4F, + 0x7D47, 0xBD50, 0x7D48, 0xBD51, 0x7D49, 0xBD52, 0x7D4A, 0xBD53, + 0x7D4B, 0xBD54, 0x7D4C, 0xBD55, 0x7D4D, 0xBD56, 0x7D4E, 0xBD57, + 0x7D4F, 0xBD58, 0x7D50, 0xBD59, 0x7D51, 0xBD5A, 0x7D52, 0xBD5B, + 0x7D53, 0xBD5C, 0x7D54, 0xBD5D, 0x7D55, 0xBD5E, 0x7D56, 0xBD5F, + 0x7D57, 0xBD60, 0x7D58, 0xBD61, 0x7D59, 0xBD62, 0x7D5A, 0xBD63, + 0x7D5B, 0xBD64, 0x7D5C, 0xBD65, 0x7D5D, 0xBD66, 0x7D5E, 0xBD67, + 0x7D5F, 0xBD68, 0x7D60, 0xBD69, 0x7D61, 0xBD6A, 0x7D62, 0xBD6B, + 0x7D63, 0xBD6C, 0x7D64, 0xBD6D, 0x7D65, 0xBD6E, 0x7D66, 0xBD6F, + 0x7D67, 0xBD70, 0x7D68, 0xBD71, 0x7D69, 0xBD72, 0x7D6A, 0xBD73, + 0x7D6B, 0xBD74, 0x7D6C, 0xBD75, 0x7D6D, 0xBD76, 0x7D6E, 0xD0F5, + 0x7D6F, 0xBD77, 0x7D70, 0xBD78, 0x7D71, 0xBD79, 0x7D72, 0xBD7A, + 0x7D73, 0xBD7B, 0x7D74, 0xBD7C, 0x7D75, 0xBD7D, 0x7D76, 0xBD7E, + 0x7D77, 0xF4EA, 0x7D78, 0xBD80, 0x7D79, 0xBD81, 0x7D7A, 0xBD82, + 0x7D7B, 0xBD83, 0x7D7C, 0xBD84, 0x7D7D, 0xBD85, 0x7D7E, 0xBD86, + 0x7D7F, 0xBD87, 0x7D80, 0xBD88, 0x7D81, 0xBD89, 0x7D82, 0xBD8A, + 0x7D83, 0xBD8B, 0x7D84, 0xBD8C, 0x7D85, 0xBD8D, 0x7D86, 0xBD8E, + 0x7D87, 0xBD8F, 0x7D88, 0xBD90, 0x7D89, 0xBD91, 0x7D8A, 0xBD92, + 0x7D8B, 0xBD93, 0x7D8C, 0xBD94, 0x7D8D, 0xBD95, 0x7D8E, 0xBD96, + 0x7D8F, 0xBD97, 0x7D90, 0xBD98, 0x7D91, 0xBD99, 0x7D92, 0xBD9A, + 0x7D93, 0xBD9B, 0x7D94, 0xBD9C, 0x7D95, 0xBD9D, 0x7D96, 0xBD9E, + 0x7D97, 0xBD9F, 0x7D98, 0xBDA0, 0x7D99, 0xBE40, 0x7D9A, 0xBE41, + 0x7D9B, 0xBE42, 0x7D9C, 0xBE43, 0x7D9D, 0xBE44, 0x7D9E, 0xBE45, + 0x7D9F, 0xBE46, 0x7DA0, 0xBE47, 0x7DA1, 0xBE48, 0x7DA2, 0xBE49, + 0x7DA3, 0xBE4A, 0x7DA4, 0xBE4B, 0x7DA5, 0xBE4C, 0x7DA6, 0xF4EB, + 0x7DA7, 0xBE4D, 0x7DA8, 0xBE4E, 0x7DA9, 0xBE4F, 0x7DAA, 0xBE50, + 0x7DAB, 0xBE51, 0x7DAC, 0xBE52, 0x7DAD, 0xBE53, 0x7DAE, 0xF4EC, + 0x7DAF, 0xBE54, 0x7DB0, 0xBE55, 0x7DB1, 0xBE56, 0x7DB2, 0xBE57, + 0x7DB3, 0xBE58, 0x7DB4, 0xBE59, 0x7DB5, 0xBE5A, 0x7DB6, 0xBE5B, + 0x7DB7, 0xBE5C, 0x7DB8, 0xBE5D, 0x7DB9, 0xBE5E, 0x7DBA, 0xBE5F, + 0x7DBB, 0xBE60, 0x7DBC, 0xBE61, 0x7DBD, 0xBE62, 0x7DBE, 0xBE63, + 0x7DBF, 0xBE64, 0x7DC0, 0xBE65, 0x7DC1, 0xBE66, 0x7DC2, 0xBE67, + 0x7DC3, 0xBE68, 0x7DC4, 0xBE69, 0x7DC5, 0xBE6A, 0x7DC6, 0xBE6B, + 0x7DC7, 0xBE6C, 0x7DC8, 0xBE6D, 0x7DC9, 0xBE6E, 0x7DCA, 0xBE6F, + 0x7DCB, 0xBE70, 0x7DCC, 0xBE71, 0x7DCD, 0xBE72, 0x7DCE, 0xBE73, + 0x7DCF, 0xBE74, 0x7DD0, 0xBE75, 0x7DD1, 0xBE76, 0x7DD2, 0xBE77, + 0x7DD3, 0xBE78, 0x7DD4, 0xBE79, 0x7DD5, 0xBE7A, 0x7DD6, 0xBE7B, + 0x7DD7, 0xBE7C, 0x7DD8, 0xBE7D, 0x7DD9, 0xBE7E, 0x7DDA, 0xBE80, + 0x7DDB, 0xBE81, 0x7DDC, 0xBE82, 0x7DDD, 0xBE83, 0x7DDE, 0xBE84, + 0x7DDF, 0xBE85, 0x7DE0, 0xBE86, 0x7DE1, 0xBE87, 0x7DE2, 0xBE88, + 0x7DE3, 0xBE89, 0x7DE4, 0xBE8A, 0x7DE5, 0xBE8B, 0x7DE6, 0xBE8C, + 0x7DE7, 0xBE8D, 0x7DE8, 0xBE8E, 0x7DE9, 0xBE8F, 0x7DEA, 0xBE90, + 0x7DEB, 0xBE91, 0x7DEC, 0xBE92, 0x7DED, 0xBE93, 0x7DEE, 0xBE94, + 0x7DEF, 0xBE95, 0x7DF0, 0xBE96, 0x7DF1, 0xBE97, 0x7DF2, 0xBE98, + 0x7DF3, 0xBE99, 0x7DF4, 0xBE9A, 0x7DF5, 0xBE9B, 0x7DF6, 0xBE9C, + 0x7DF7, 0xBE9D, 0x7DF8, 0xBE9E, 0x7DF9, 0xBE9F, 0x7DFA, 0xBEA0, + 0x7DFB, 0xBF40, 0x7DFC, 0xBF41, 0x7DFD, 0xBF42, 0x7DFE, 0xBF43, + 0x7DFF, 0xBF44, 0x7E00, 0xBF45, 0x7E01, 0xBF46, 0x7E02, 0xBF47, + 0x7E03, 0xBF48, 0x7E04, 0xBF49, 0x7E05, 0xBF4A, 0x7E06, 0xBF4B, + 0x7E07, 0xBF4C, 0x7E08, 0xBF4D, 0x7E09, 0xBF4E, 0x7E0A, 0xBF4F, + 0x7E0B, 0xBF50, 0x7E0C, 0xBF51, 0x7E0D, 0xBF52, 0x7E0E, 0xBF53, + 0x7E0F, 0xBF54, 0x7E10, 0xBF55, 0x7E11, 0xBF56, 0x7E12, 0xBF57, + 0x7E13, 0xBF58, 0x7E14, 0xBF59, 0x7E15, 0xBF5A, 0x7E16, 0xBF5B, + 0x7E17, 0xBF5C, 0x7E18, 0xBF5D, 0x7E19, 0xBF5E, 0x7E1A, 0xBF5F, + 0x7E1B, 0xBF60, 0x7E1C, 0xBF61, 0x7E1D, 0xBF62, 0x7E1E, 0xBF63, + 0x7E1F, 0xBF64, 0x7E20, 0xBF65, 0x7E21, 0xBF66, 0x7E22, 0xBF67, + 0x7E23, 0xBF68, 0x7E24, 0xBF69, 0x7E25, 0xBF6A, 0x7E26, 0xBF6B, + 0x7E27, 0xBF6C, 0x7E28, 0xBF6D, 0x7E29, 0xBF6E, 0x7E2A, 0xBF6F, + 0x7E2B, 0xBF70, 0x7E2C, 0xBF71, 0x7E2D, 0xBF72, 0x7E2E, 0xBF73, + 0x7E2F, 0xBF74, 0x7E30, 0xBF75, 0x7E31, 0xBF76, 0x7E32, 0xBF77, + 0x7E33, 0xBF78, 0x7E34, 0xBF79, 0x7E35, 0xBF7A, 0x7E36, 0xBF7B, + 0x7E37, 0xBF7C, 0x7E38, 0xBF7D, 0x7E39, 0xBF7E, 0x7E3A, 0xBF80, + 0x7E3B, 0xF7E3, 0x7E3C, 0xBF81, 0x7E3D, 0xBF82, 0x7E3E, 0xBF83, + 0x7E3F, 0xBF84, 0x7E40, 0xBF85, 0x7E41, 0xB7B1, 0x7E42, 0xBF86, + 0x7E43, 0xBF87, 0x7E44, 0xBF88, 0x7E45, 0xBF89, 0x7E46, 0xBF8A, + 0x7E47, 0xF4ED, 0x7E48, 0xBF8B, 0x7E49, 0xBF8C, 0x7E4A, 0xBF8D, + 0x7E4B, 0xBF8E, 0x7E4C, 0xBF8F, 0x7E4D, 0xBF90, 0x7E4E, 0xBF91, + 0x7E4F, 0xBF92, 0x7E50, 0xBF93, 0x7E51, 0xBF94, 0x7E52, 0xBF95, + 0x7E53, 0xBF96, 0x7E54, 0xBF97, 0x7E55, 0xBF98, 0x7E56, 0xBF99, + 0x7E57, 0xBF9A, 0x7E58, 0xBF9B, 0x7E59, 0xBF9C, 0x7E5A, 0xBF9D, + 0x7E5B, 0xBF9E, 0x7E5C, 0xBF9F, 0x7E5D, 0xBFA0, 0x7E5E, 0xC040, + 0x7E5F, 0xC041, 0x7E60, 0xC042, 0x7E61, 0xC043, 0x7E62, 0xC044, + 0x7E63, 0xC045, 0x7E64, 0xC046, 0x7E65, 0xC047, 0x7E66, 0xC048, + 0x7E67, 0xC049, 0x7E68, 0xC04A, 0x7E69, 0xC04B, 0x7E6A, 0xC04C, + 0x7E6B, 0xC04D, 0x7E6C, 0xC04E, 0x7E6D, 0xC04F, 0x7E6E, 0xC050, + 0x7E6F, 0xC051, 0x7E70, 0xC052, 0x7E71, 0xC053, 0x7E72, 0xC054, + 0x7E73, 0xC055, 0x7E74, 0xC056, 0x7E75, 0xC057, 0x7E76, 0xC058, + 0x7E77, 0xC059, 0x7E78, 0xC05A, 0x7E79, 0xC05B, 0x7E7A, 0xC05C, + 0x7E7B, 0xC05D, 0x7E7C, 0xC05E, 0x7E7D, 0xC05F, 0x7E7E, 0xC060, + 0x7E7F, 0xC061, 0x7E80, 0xC062, 0x7E81, 0xC063, 0x7E82, 0xD7EB, + 0x7E83, 0xC064, 0x7E84, 0xC065, 0x7E85, 0xC066, 0x7E86, 0xC067, + 0x7E87, 0xC068, 0x7E88, 0xC069, 0x7E89, 0xC06A, 0x7E8A, 0xC06B, + 0x7E8B, 0xC06C, 0x7E8C, 0xC06D, 0x7E8D, 0xC06E, 0x7E8E, 0xC06F, + 0x7E8F, 0xC070, 0x7E90, 0xC071, 0x7E91, 0xC072, 0x7E92, 0xC073, + 0x7E93, 0xC074, 0x7E94, 0xC075, 0x7E95, 0xC076, 0x7E96, 0xC077, + 0x7E97, 0xC078, 0x7E98, 0xC079, 0x7E99, 0xC07A, 0x7E9A, 0xC07B, + 0x7E9B, 0xF4EE, 0x7E9C, 0xC07C, 0x7E9D, 0xC07D, 0x7E9E, 0xC07E, + 0x7E9F, 0xE6F9, 0x7EA0, 0xBEC0, 0x7EA1, 0xE6FA, 0x7EA2, 0xBAEC, + 0x7EA3, 0xE6FB, 0x7EA4, 0xCFCB, 0x7EA5, 0xE6FC, 0x7EA6, 0xD4BC, + 0x7EA7, 0xBCB6, 0x7EA8, 0xE6FD, 0x7EA9, 0xE6FE, 0x7EAA, 0xBCCD, + 0x7EAB, 0xC8D2, 0x7EAC, 0xCEB3, 0x7EAD, 0xE7A1, 0x7EAE, 0xC080, + 0x7EAF, 0xB4BF, 0x7EB0, 0xE7A2, 0x7EB1, 0xC9B4, 0x7EB2, 0xB8D9, + 0x7EB3, 0xC4C9, 0x7EB4, 0xC081, 0x7EB5, 0xD7DD, 0x7EB6, 0xC2DA, + 0x7EB7, 0xB7D7, 0x7EB8, 0xD6BD, 0x7EB9, 0xCEC6, 0x7EBA, 0xB7C4, + 0x7EBB, 0xC082, 0x7EBC, 0xC083, 0x7EBD, 0xC5A6, 0x7EBE, 0xE7A3, + 0x7EBF, 0xCFDF, 0x7EC0, 0xE7A4, 0x7EC1, 0xE7A5, 0x7EC2, 0xE7A6, + 0x7EC3, 0xC1B7, 0x7EC4, 0xD7E9, 0x7EC5, 0xC9F0, 0x7EC6, 0xCFB8, + 0x7EC7, 0xD6AF, 0x7EC8, 0xD6D5, 0x7EC9, 0xE7A7, 0x7ECA, 0xB0ED, + 0x7ECB, 0xE7A8, 0x7ECC, 0xE7A9, 0x7ECD, 0xC9DC, 0x7ECE, 0xD2EF, + 0x7ECF, 0xBEAD, 0x7ED0, 0xE7AA, 0x7ED1, 0xB0F3, 0x7ED2, 0xC8DE, + 0x7ED3, 0xBDE1, 0x7ED4, 0xE7AB, 0x7ED5, 0xC8C6, 0x7ED6, 0xC084, + 0x7ED7, 0xE7AC, 0x7ED8, 0xBBE6, 0x7ED9, 0xB8F8, 0x7EDA, 0xD1A4, + 0x7EDB, 0xE7AD, 0x7EDC, 0xC2E7, 0x7EDD, 0xBEF8, 0x7EDE, 0xBDCA, + 0x7EDF, 0xCDB3, 0x7EE0, 0xE7AE, 0x7EE1, 0xE7AF, 0x7EE2, 0xBEEE, + 0x7EE3, 0xD0E5, 0x7EE4, 0xC085, 0x7EE5, 0xCBE7, 0x7EE6, 0xCCD0, + 0x7EE7, 0xBCCC, 0x7EE8, 0xE7B0, 0x7EE9, 0xBCA8, 0x7EEA, 0xD0F7, + 0x7EEB, 0xE7B1, 0x7EEC, 0xC086, 0x7EED, 0xD0F8, 0x7EEE, 0xE7B2, + 0x7EEF, 0xE7B3, 0x7EF0, 0xB4C2, 0x7EF1, 0xE7B4, 0x7EF2, 0xE7B5, + 0x7EF3, 0xC9FE, 0x7EF4, 0xCEAC, 0x7EF5, 0xC3E0, 0x7EF6, 0xE7B7, + 0x7EF7, 0xB1C1, 0x7EF8, 0xB3F1, 0x7EF9, 0xC087, 0x7EFA, 0xE7B8, + 0x7EFB, 0xE7B9, 0x7EFC, 0xD7DB, 0x7EFD, 0xD5C0, 0x7EFE, 0xE7BA, + 0x7EFF, 0xC2CC, 0x7F00, 0xD7BA, 0x7F01, 0xE7BB, 0x7F02, 0xE7BC, + 0x7F03, 0xE7BD, 0x7F04, 0xBCEA, 0x7F05, 0xC3E5, 0x7F06, 0xC0C2, + 0x7F07, 0xE7BE, 0x7F08, 0xE7BF, 0x7F09, 0xBCA9, 0x7F0A, 0xC088, + 0x7F0B, 0xE7C0, 0x7F0C, 0xE7C1, 0x7F0D, 0xE7B6, 0x7F0E, 0xB6D0, + 0x7F0F, 0xE7C2, 0x7F10, 0xC089, 0x7F11, 0xE7C3, 0x7F12, 0xE7C4, + 0x7F13, 0xBBBA, 0x7F14, 0xB5DE, 0x7F15, 0xC2C6, 0x7F16, 0xB1E0, + 0x7F17, 0xE7C5, 0x7F18, 0xD4B5, 0x7F19, 0xE7C6, 0x7F1A, 0xB8BF, + 0x7F1B, 0xE7C8, 0x7F1C, 0xE7C7, 0x7F1D, 0xB7EC, 0x7F1E, 0xC08A, + 0x7F1F, 0xE7C9, 0x7F20, 0xB2F8, 0x7F21, 0xE7CA, 0x7F22, 0xE7CB, + 0x7F23, 0xE7CC, 0x7F24, 0xE7CD, 0x7F25, 0xE7CE, 0x7F26, 0xE7CF, + 0x7F27, 0xE7D0, 0x7F28, 0xD3A7, 0x7F29, 0xCBF5, 0x7F2A, 0xE7D1, + 0x7F2B, 0xE7D2, 0x7F2C, 0xE7D3, 0x7F2D, 0xE7D4, 0x7F2E, 0xC9C9, + 0x7F2F, 0xE7D5, 0x7F30, 0xE7D6, 0x7F31, 0xE7D7, 0x7F32, 0xE7D8, + 0x7F33, 0xE7D9, 0x7F34, 0xBDC9, 0x7F35, 0xE7DA, 0x7F36, 0xF3BE, + 0x7F37, 0xC08B, 0x7F38, 0xB8D7, 0x7F39, 0xC08C, 0x7F3A, 0xC8B1, + 0x7F3B, 0xC08D, 0x7F3C, 0xC08E, 0x7F3D, 0xC08F, 0x7F3E, 0xC090, + 0x7F3F, 0xC091, 0x7F40, 0xC092, 0x7F41, 0xC093, 0x7F42, 0xF3BF, + 0x7F43, 0xC094, 0x7F44, 0xF3C0, 0x7F45, 0xF3C1, 0x7F46, 0xC095, + 0x7F47, 0xC096, 0x7F48, 0xC097, 0x7F49, 0xC098, 0x7F4A, 0xC099, + 0x7F4B, 0xC09A, 0x7F4C, 0xC09B, 0x7F4D, 0xC09C, 0x7F4E, 0xC09D, + 0x7F4F, 0xC09E, 0x7F50, 0xB9DE, 0x7F51, 0xCDF8, 0x7F52, 0xC09F, + 0x7F53, 0xC0A0, 0x7F54, 0xD8E8, 0x7F55, 0xBAB1, 0x7F56, 0xC140, + 0x7F57, 0xC2DE, 0x7F58, 0xEEB7, 0x7F59, 0xC141, 0x7F5A, 0xB7A3, + 0x7F5B, 0xC142, 0x7F5C, 0xC143, 0x7F5D, 0xC144, 0x7F5E, 0xC145, + 0x7F5F, 0xEEB9, 0x7F60, 0xC146, 0x7F61, 0xEEB8, 0x7F62, 0xB0D5, + 0x7F63, 0xC147, 0x7F64, 0xC148, 0x7F65, 0xC149, 0x7F66, 0xC14A, + 0x7F67, 0xC14B, 0x7F68, 0xEEBB, 0x7F69, 0xD5D6, 0x7F6A, 0xD7EF, + 0x7F6B, 0xC14C, 0x7F6C, 0xC14D, 0x7F6D, 0xC14E, 0x7F6E, 0xD6C3, + 0x7F6F, 0xC14F, 0x7F70, 0xC150, 0x7F71, 0xEEBD, 0x7F72, 0xCAF0, + 0x7F73, 0xC151, 0x7F74, 0xEEBC, 0x7F75, 0xC152, 0x7F76, 0xC153, + 0x7F77, 0xC154, 0x7F78, 0xC155, 0x7F79, 0xEEBE, 0x7F7A, 0xC156, + 0x7F7B, 0xC157, 0x7F7C, 0xC158, 0x7F7D, 0xC159, 0x7F7E, 0xEEC0, + 0x7F7F, 0xC15A, 0x7F80, 0xC15B, 0x7F81, 0xEEBF, 0x7F82, 0xC15C, + 0x7F83, 0xC15D, 0x7F84, 0xC15E, 0x7F85, 0xC15F, 0x7F86, 0xC160, + 0x7F87, 0xC161, 0x7F88, 0xC162, 0x7F89, 0xC163, 0x7F8A, 0xD1F2, + 0x7F8B, 0xC164, 0x7F8C, 0xC7BC, 0x7F8D, 0xC165, 0x7F8E, 0xC3C0, + 0x7F8F, 0xC166, 0x7F90, 0xC167, 0x7F91, 0xC168, 0x7F92, 0xC169, + 0x7F93, 0xC16A, 0x7F94, 0xB8E1, 0x7F95, 0xC16B, 0x7F96, 0xC16C, + 0x7F97, 0xC16D, 0x7F98, 0xC16E, 0x7F99, 0xC16F, 0x7F9A, 0xC1E7, + 0x7F9B, 0xC170, 0x7F9C, 0xC171, 0x7F9D, 0xF4C6, 0x7F9E, 0xD0DF, + 0x7F9F, 0xF4C7, 0x7FA0, 0xC172, 0x7FA1, 0xCFDB, 0x7FA2, 0xC173, + 0x7FA3, 0xC174, 0x7FA4, 0xC8BA, 0x7FA5, 0xC175, 0x7FA6, 0xC176, + 0x7FA7, 0xF4C8, 0x7FA8, 0xC177, 0x7FA9, 0xC178, 0x7FAA, 0xC179, + 0x7FAB, 0xC17A, 0x7FAC, 0xC17B, 0x7FAD, 0xC17C, 0x7FAE, 0xC17D, + 0x7FAF, 0xF4C9, 0x7FB0, 0xF4CA, 0x7FB1, 0xC17E, 0x7FB2, 0xF4CB, + 0x7FB3, 0xC180, 0x7FB4, 0xC181, 0x7FB5, 0xC182, 0x7FB6, 0xC183, + 0x7FB7, 0xC184, 0x7FB8, 0xD9FA, 0x7FB9, 0xB8FE, 0x7FBA, 0xC185, + 0x7FBB, 0xC186, 0x7FBC, 0xE5F1, 0x7FBD, 0xD3F0, 0x7FBE, 0xC187, + 0x7FBF, 0xF4E0, 0x7FC0, 0xC188, 0x7FC1, 0xCECC, 0x7FC2, 0xC189, + 0x7FC3, 0xC18A, 0x7FC4, 0xC18B, 0x7FC5, 0xB3E1, 0x7FC6, 0xC18C, + 0x7FC7, 0xC18D, 0x7FC8, 0xC18E, 0x7FC9, 0xC18F, 0x7FCA, 0xF1B4, + 0x7FCB, 0xC190, 0x7FCC, 0xD2EE, 0x7FCD, 0xC191, 0x7FCE, 0xF4E1, + 0x7FCF, 0xC192, 0x7FD0, 0xC193, 0x7FD1, 0xC194, 0x7FD2, 0xC195, + 0x7FD3, 0xC196, 0x7FD4, 0xCFE8, 0x7FD5, 0xF4E2, 0x7FD6, 0xC197, + 0x7FD7, 0xC198, 0x7FD8, 0xC7CC, 0x7FD9, 0xC199, 0x7FDA, 0xC19A, + 0x7FDB, 0xC19B, 0x7FDC, 0xC19C, 0x7FDD, 0xC19D, 0x7FDE, 0xC19E, + 0x7FDF, 0xB5D4, 0x7FE0, 0xB4E4, 0x7FE1, 0xF4E4, 0x7FE2, 0xC19F, + 0x7FE3, 0xC1A0, 0x7FE4, 0xC240, 0x7FE5, 0xF4E3, 0x7FE6, 0xF4E5, + 0x7FE7, 0xC241, 0x7FE8, 0xC242, 0x7FE9, 0xF4E6, 0x7FEA, 0xC243, + 0x7FEB, 0xC244, 0x7FEC, 0xC245, 0x7FED, 0xC246, 0x7FEE, 0xF4E7, + 0x7FEF, 0xC247, 0x7FF0, 0xBAB2, 0x7FF1, 0xB0BF, 0x7FF2, 0xC248, + 0x7FF3, 0xF4E8, 0x7FF4, 0xC249, 0x7FF5, 0xC24A, 0x7FF6, 0xC24B, + 0x7FF7, 0xC24C, 0x7FF8, 0xC24D, 0x7FF9, 0xC24E, 0x7FFA, 0xC24F, + 0x7FFB, 0xB7AD, 0x7FFC, 0xD2ED, 0x7FFD, 0xC250, 0x7FFE, 0xC251, + 0x7FFF, 0xC252, 0x8000, 0xD2AB, 0x8001, 0xC0CF, 0x8002, 0xC253, + 0x8003, 0xBFBC, 0x8004, 0xEBA3, 0x8005, 0xD5DF, 0x8006, 0xEAC8, + 0x8007, 0xC254, 0x8008, 0xC255, 0x8009, 0xC256, 0x800A, 0xC257, + 0x800B, 0xF1F3, 0x800C, 0xB6F8, 0x800D, 0xCBA3, 0x800E, 0xC258, + 0x800F, 0xC259, 0x8010, 0xC4CD, 0x8011, 0xC25A, 0x8012, 0xF1E7, + 0x8013, 0xC25B, 0x8014, 0xF1E8, 0x8015, 0xB8FB, 0x8016, 0xF1E9, + 0x8017, 0xBAC4, 0x8018, 0xD4C5, 0x8019, 0xB0D2, 0x801A, 0xC25C, + 0x801B, 0xC25D, 0x801C, 0xF1EA, 0x801D, 0xC25E, 0x801E, 0xC25F, + 0x801F, 0xC260, 0x8020, 0xF1EB, 0x8021, 0xC261, 0x8022, 0xF1EC, + 0x8023, 0xC262, 0x8024, 0xC263, 0x8025, 0xF1ED, 0x8026, 0xF1EE, + 0x8027, 0xF1EF, 0x8028, 0xF1F1, 0x8029, 0xF1F0, 0x802A, 0xC5D5, + 0x802B, 0xC264, 0x802C, 0xC265, 0x802D, 0xC266, 0x802E, 0xC267, + 0x802F, 0xC268, 0x8030, 0xC269, 0x8031, 0xF1F2, 0x8032, 0xC26A, + 0x8033, 0xB6FA, 0x8034, 0xC26B, 0x8035, 0xF1F4, 0x8036, 0xD2AE, + 0x8037, 0xDEC7, 0x8038, 0xCBCA, 0x8039, 0xC26C, 0x803A, 0xC26D, + 0x803B, 0xB3DC, 0x803C, 0xC26E, 0x803D, 0xB5A2, 0x803E, 0xC26F, + 0x803F, 0xB9A2, 0x8040, 0xC270, 0x8041, 0xC271, 0x8042, 0xC4F4, + 0x8043, 0xF1F5, 0x8044, 0xC272, 0x8045, 0xC273, 0x8046, 0xF1F6, + 0x8047, 0xC274, 0x8048, 0xC275, 0x8049, 0xC276, 0x804A, 0xC1C4, + 0x804B, 0xC1FB, 0x804C, 0xD6B0, 0x804D, 0xF1F7, 0x804E, 0xC277, + 0x804F, 0xC278, 0x8050, 0xC279, 0x8051, 0xC27A, 0x8052, 0xF1F8, + 0x8053, 0xC27B, 0x8054, 0xC1AA, 0x8055, 0xC27C, 0x8056, 0xC27D, + 0x8057, 0xC27E, 0x8058, 0xC6B8, 0x8059, 0xC280, 0x805A, 0xBEDB, + 0x805B, 0xC281, 0x805C, 0xC282, 0x805D, 0xC283, 0x805E, 0xC284, + 0x805F, 0xC285, 0x8060, 0xC286, 0x8061, 0xC287, 0x8062, 0xC288, + 0x8063, 0xC289, 0x8064, 0xC28A, 0x8065, 0xC28B, 0x8066, 0xC28C, + 0x8067, 0xC28D, 0x8068, 0xC28E, 0x8069, 0xF1F9, 0x806A, 0xB4CF, + 0x806B, 0xC28F, 0x806C, 0xC290, 0x806D, 0xC291, 0x806E, 0xC292, + 0x806F, 0xC293, 0x8070, 0xC294, 0x8071, 0xF1FA, 0x8072, 0xC295, + 0x8073, 0xC296, 0x8074, 0xC297, 0x8075, 0xC298, 0x8076, 0xC299, + 0x8077, 0xC29A, 0x8078, 0xC29B, 0x8079, 0xC29C, 0x807A, 0xC29D, + 0x807B, 0xC29E, 0x807C, 0xC29F, 0x807D, 0xC2A0, 0x807E, 0xC340, + 0x807F, 0xEDB2, 0x8080, 0xEDB1, 0x8081, 0xC341, 0x8082, 0xC342, + 0x8083, 0xCBE0, 0x8084, 0xD2DE, 0x8085, 0xC343, 0x8086, 0xCBC1, + 0x8087, 0xD5D8, 0x8088, 0xC344, 0x8089, 0xC8E2, 0x808A, 0xC345, + 0x808B, 0xC0DF, 0x808C, 0xBCA1, 0x808D, 0xC346, 0x808E, 0xC347, + 0x808F, 0xC348, 0x8090, 0xC349, 0x8091, 0xC34A, 0x8092, 0xC34B, + 0x8093, 0xEBC1, 0x8094, 0xC34C, 0x8095, 0xC34D, 0x8096, 0xD0A4, + 0x8097, 0xC34E, 0x8098, 0xD6E2, 0x8099, 0xC34F, 0x809A, 0xB6C7, + 0x809B, 0xB8D8, 0x809C, 0xEBC0, 0x809D, 0xB8CE, 0x809E, 0xC350, + 0x809F, 0xEBBF, 0x80A0, 0xB3A6, 0x80A1, 0xB9C9, 0x80A2, 0xD6AB, + 0x80A3, 0xC351, 0x80A4, 0xB7F4, 0x80A5, 0xB7CA, 0x80A6, 0xC352, + 0x80A7, 0xC353, 0x80A8, 0xC354, 0x80A9, 0xBCE7, 0x80AA, 0xB7BE, + 0x80AB, 0xEBC6, 0x80AC, 0xC355, 0x80AD, 0xEBC7, 0x80AE, 0xB0B9, + 0x80AF, 0xBFCF, 0x80B0, 0xC356, 0x80B1, 0xEBC5, 0x80B2, 0xD3FD, + 0x80B3, 0xC357, 0x80B4, 0xEBC8, 0x80B5, 0xC358, 0x80B6, 0xC359, + 0x80B7, 0xEBC9, 0x80B8, 0xC35A, 0x80B9, 0xC35B, 0x80BA, 0xB7CE, + 0x80BB, 0xC35C, 0x80BC, 0xEBC2, 0x80BD, 0xEBC4, 0x80BE, 0xC9F6, + 0x80BF, 0xD6D7, 0x80C0, 0xD5CD, 0x80C1, 0xD0B2, 0x80C2, 0xEBCF, + 0x80C3, 0xCEB8, 0x80C4, 0xEBD0, 0x80C5, 0xC35D, 0x80C6, 0xB5A8, + 0x80C7, 0xC35E, 0x80C8, 0xC35F, 0x80C9, 0xC360, 0x80CA, 0xC361, + 0x80CB, 0xC362, 0x80CC, 0xB1B3, 0x80CD, 0xEBD2, 0x80CE, 0xCCA5, + 0x80CF, 0xC363, 0x80D0, 0xC364, 0x80D1, 0xC365, 0x80D2, 0xC366, + 0x80D3, 0xC367, 0x80D4, 0xC368, 0x80D5, 0xC369, 0x80D6, 0xC5D6, + 0x80D7, 0xEBD3, 0x80D8, 0xC36A, 0x80D9, 0xEBD1, 0x80DA, 0xC5DF, + 0x80DB, 0xEBCE, 0x80DC, 0xCAA4, 0x80DD, 0xEBD5, 0x80DE, 0xB0FB, + 0x80DF, 0xC36B, 0x80E0, 0xC36C, 0x80E1, 0xBAFA, 0x80E2, 0xC36D, + 0x80E3, 0xC36E, 0x80E4, 0xD8B7, 0x80E5, 0xF1E3, 0x80E6, 0xC36F, + 0x80E7, 0xEBCA, 0x80E8, 0xEBCB, 0x80E9, 0xEBCC, 0x80EA, 0xEBCD, + 0x80EB, 0xEBD6, 0x80EC, 0xE6C0, 0x80ED, 0xEBD9, 0x80EE, 0xC370, + 0x80EF, 0xBFE8, 0x80F0, 0xD2C8, 0x80F1, 0xEBD7, 0x80F2, 0xEBDC, + 0x80F3, 0xB8EC, 0x80F4, 0xEBD8, 0x80F5, 0xC371, 0x80F6, 0xBDBA, + 0x80F7, 0xC372, 0x80F8, 0xD0D8, 0x80F9, 0xC373, 0x80FA, 0xB0B7, + 0x80FB, 0xC374, 0x80FC, 0xEBDD, 0x80FD, 0xC4DC, 0x80FE, 0xC375, + 0x80FF, 0xC376, 0x8100, 0xC377, 0x8101, 0xC378, 0x8102, 0xD6AC, + 0x8103, 0xC379, 0x8104, 0xC37A, 0x8105, 0xC37B, 0x8106, 0xB4E0, + 0x8107, 0xC37C, 0x8108, 0xC37D, 0x8109, 0xC2F6, 0x810A, 0xBCB9, + 0x810B, 0xC37E, 0x810C, 0xC380, 0x810D, 0xEBDA, 0x810E, 0xEBDB, + 0x810F, 0xD4E0, 0x8110, 0xC6EA, 0x8111, 0xC4D4, 0x8112, 0xEBDF, + 0x8113, 0xC5A7, 0x8114, 0xD9F5, 0x8115, 0xC381, 0x8116, 0xB2B1, + 0x8117, 0xC382, 0x8118, 0xEBE4, 0x8119, 0xC383, 0x811A, 0xBDC5, + 0x811B, 0xC384, 0x811C, 0xC385, 0x811D, 0xC386, 0x811E, 0xEBE2, + 0x811F, 0xC387, 0x8120, 0xC388, 0x8121, 0xC389, 0x8122, 0xC38A, + 0x8123, 0xC38B, 0x8124, 0xC38C, 0x8125, 0xC38D, 0x8126, 0xC38E, + 0x8127, 0xC38F, 0x8128, 0xC390, 0x8129, 0xC391, 0x812A, 0xC392, + 0x812B, 0xC393, 0x812C, 0xEBE3, 0x812D, 0xC394, 0x812E, 0xC395, + 0x812F, 0xB8AC, 0x8130, 0xC396, 0x8131, 0xCDD1, 0x8132, 0xEBE5, + 0x8133, 0xC397, 0x8134, 0xC398, 0x8135, 0xC399, 0x8136, 0xEBE1, + 0x8137, 0xC39A, 0x8138, 0xC1B3, 0x8139, 0xC39B, 0x813A, 0xC39C, + 0x813B, 0xC39D, 0x813C, 0xC39E, 0x813D, 0xC39F, 0x813E, 0xC6A2, + 0x813F, 0xC3A0, 0x8140, 0xC440, 0x8141, 0xC441, 0x8142, 0xC442, + 0x8143, 0xC443, 0x8144, 0xC444, 0x8145, 0xC445, 0x8146, 0xCCF3, + 0x8147, 0xC446, 0x8148, 0xEBE6, 0x8149, 0xC447, 0x814A, 0xC0B0, + 0x814B, 0xD2B8, 0x814C, 0xEBE7, 0x814D, 0xC448, 0x814E, 0xC449, + 0x814F, 0xC44A, 0x8150, 0xB8AF, 0x8151, 0xB8AD, 0x8152, 0xC44B, + 0x8153, 0xEBE8, 0x8154, 0xC7BB, 0x8155, 0xCDF3, 0x8156, 0xC44C, + 0x8157, 0xC44D, 0x8158, 0xC44E, 0x8159, 0xEBEA, 0x815A, 0xEBEB, + 0x815B, 0xC44F, 0x815C, 0xC450, 0x815D, 0xC451, 0x815E, 0xC452, + 0x815F, 0xC453, 0x8160, 0xEBED, 0x8161, 0xC454, 0x8162, 0xC455, + 0x8163, 0xC456, 0x8164, 0xC457, 0x8165, 0xD0C8, 0x8166, 0xC458, + 0x8167, 0xEBF2, 0x8168, 0xC459, 0x8169, 0xEBEE, 0x816A, 0xC45A, + 0x816B, 0xC45B, 0x816C, 0xC45C, 0x816D, 0xEBF1, 0x816E, 0xC8F9, + 0x816F, 0xC45D, 0x8170, 0xD1FC, 0x8171, 0xEBEC, 0x8172, 0xC45E, + 0x8173, 0xC45F, 0x8174, 0xEBE9, 0x8175, 0xC460, 0x8176, 0xC461, + 0x8177, 0xC462, 0x8178, 0xC463, 0x8179, 0xB8B9, 0x817A, 0xCFD9, + 0x817B, 0xC4E5, 0x817C, 0xEBEF, 0x817D, 0xEBF0, 0x817E, 0xCCDA, + 0x817F, 0xCDC8, 0x8180, 0xB0F2, 0x8181, 0xC464, 0x8182, 0xEBF6, + 0x8183, 0xC465, 0x8184, 0xC466, 0x8185, 0xC467, 0x8186, 0xC468, + 0x8187, 0xC469, 0x8188, 0xEBF5, 0x8189, 0xC46A, 0x818A, 0xB2B2, + 0x818B, 0xC46B, 0x818C, 0xC46C, 0x818D, 0xC46D, 0x818E, 0xC46E, + 0x818F, 0xB8E0, 0x8190, 0xC46F, 0x8191, 0xEBF7, 0x8192, 0xC470, + 0x8193, 0xC471, 0x8194, 0xC472, 0x8195, 0xC473, 0x8196, 0xC474, + 0x8197, 0xC475, 0x8198, 0xB1EC, 0x8199, 0xC476, 0x819A, 0xC477, + 0x819B, 0xCCC5, 0x819C, 0xC4A4, 0x819D, 0xCFA5, 0x819E, 0xC478, + 0x819F, 0xC479, 0x81A0, 0xC47A, 0x81A1, 0xC47B, 0x81A2, 0xC47C, + 0x81A3, 0xEBF9, 0x81A4, 0xC47D, 0x81A5, 0xC47E, 0x81A6, 0xECA2, + 0x81A7, 0xC480, 0x81A8, 0xC5F2, 0x81A9, 0xC481, 0x81AA, 0xEBFA, + 0x81AB, 0xC482, 0x81AC, 0xC483, 0x81AD, 0xC484, 0x81AE, 0xC485, + 0x81AF, 0xC486, 0x81B0, 0xC487, 0x81B1, 0xC488, 0x81B2, 0xC489, + 0x81B3, 0xC9C5, 0x81B4, 0xC48A, 0x81B5, 0xC48B, 0x81B6, 0xC48C, + 0x81B7, 0xC48D, 0x81B8, 0xC48E, 0x81B9, 0xC48F, 0x81BA, 0xE2DF, + 0x81BB, 0xEBFE, 0x81BC, 0xC490, 0x81BD, 0xC491, 0x81BE, 0xC492, + 0x81BF, 0xC493, 0x81C0, 0xCDCE, 0x81C1, 0xECA1, 0x81C2, 0xB1DB, + 0x81C3, 0xD3B7, 0x81C4, 0xC494, 0x81C5, 0xC495, 0x81C6, 0xD2DC, + 0x81C7, 0xC496, 0x81C8, 0xC497, 0x81C9, 0xC498, 0x81CA, 0xEBFD, + 0x81CB, 0xC499, 0x81CC, 0xEBFB, 0x81CD, 0xC49A, 0x81CE, 0xC49B, + 0x81CF, 0xC49C, 0x81D0, 0xC49D, 0x81D1, 0xC49E, 0x81D2, 0xC49F, + 0x81D3, 0xC4A0, 0x81D4, 0xC540, 0x81D5, 0xC541, 0x81D6, 0xC542, + 0x81D7, 0xC543, 0x81D8, 0xC544, 0x81D9, 0xC545, 0x81DA, 0xC546, + 0x81DB, 0xC547, 0x81DC, 0xC548, 0x81DD, 0xC549, 0x81DE, 0xC54A, + 0x81DF, 0xC54B, 0x81E0, 0xC54C, 0x81E1, 0xC54D, 0x81E2, 0xC54E, + 0x81E3, 0xB3BC, 0x81E4, 0xC54F, 0x81E5, 0xC550, 0x81E6, 0xC551, + 0x81E7, 0xEAB0, 0x81E8, 0xC552, 0x81E9, 0xC553, 0x81EA, 0xD7D4, + 0x81EB, 0xC554, 0x81EC, 0xF4AB, 0x81ED, 0xB3F4, 0x81EE, 0xC555, + 0x81EF, 0xC556, 0x81F0, 0xC557, 0x81F1, 0xC558, 0x81F2, 0xC559, + 0x81F3, 0xD6C1, 0x81F4, 0xD6C2, 0x81F5, 0xC55A, 0x81F6, 0xC55B, + 0x81F7, 0xC55C, 0x81F8, 0xC55D, 0x81F9, 0xC55E, 0x81FA, 0xC55F, + 0x81FB, 0xD5E9, 0x81FC, 0xBECA, 0x81FD, 0xC560, 0x81FE, 0xF4A7, + 0x81FF, 0xC561, 0x8200, 0xD2A8, 0x8201, 0xF4A8, 0x8202, 0xF4A9, + 0x8203, 0xC562, 0x8204, 0xF4AA, 0x8205, 0xBECB, 0x8206, 0xD3DF, + 0x8207, 0xC563, 0x8208, 0xC564, 0x8209, 0xC565, 0x820A, 0xC566, + 0x820B, 0xC567, 0x820C, 0xC9E0, 0x820D, 0xC9E1, 0x820E, 0xC568, + 0x820F, 0xC569, 0x8210, 0xF3C2, 0x8211, 0xC56A, 0x8212, 0xCAE6, + 0x8213, 0xC56B, 0x8214, 0xCCF2, 0x8215, 0xC56C, 0x8216, 0xC56D, + 0x8217, 0xC56E, 0x8218, 0xC56F, 0x8219, 0xC570, 0x821A, 0xC571, + 0x821B, 0xE2B6, 0x821C, 0xCBB4, 0x821D, 0xC572, 0x821E, 0xCEE8, + 0x821F, 0xD6DB, 0x8220, 0xC573, 0x8221, 0xF4AD, 0x8222, 0xF4AE, + 0x8223, 0xF4AF, 0x8224, 0xC574, 0x8225, 0xC575, 0x8226, 0xC576, + 0x8227, 0xC577, 0x8228, 0xF4B2, 0x8229, 0xC578, 0x822A, 0xBABD, + 0x822B, 0xF4B3, 0x822C, 0xB0E3, 0x822D, 0xF4B0, 0x822E, 0xC579, + 0x822F, 0xF4B1, 0x8230, 0xBDA2, 0x8231, 0xB2D5, 0x8232, 0xC57A, + 0x8233, 0xF4B6, 0x8234, 0xF4B7, 0x8235, 0xB6E6, 0x8236, 0xB2B0, + 0x8237, 0xCFCF, 0x8238, 0xF4B4, 0x8239, 0xB4AC, 0x823A, 0xC57B, + 0x823B, 0xF4B5, 0x823C, 0xC57C, 0x823D, 0xC57D, 0x823E, 0xF4B8, + 0x823F, 0xC57E, 0x8240, 0xC580, 0x8241, 0xC581, 0x8242, 0xC582, + 0x8243, 0xC583, 0x8244, 0xF4B9, 0x8245, 0xC584, 0x8246, 0xC585, + 0x8247, 0xCDA7, 0x8248, 0xC586, 0x8249, 0xF4BA, 0x824A, 0xC587, + 0x824B, 0xF4BB, 0x824C, 0xC588, 0x824D, 0xC589, 0x824E, 0xC58A, + 0x824F, 0xF4BC, 0x8250, 0xC58B, 0x8251, 0xC58C, 0x8252, 0xC58D, + 0x8253, 0xC58E, 0x8254, 0xC58F, 0x8255, 0xC590, 0x8256, 0xC591, + 0x8257, 0xC592, 0x8258, 0xCBD2, 0x8259, 0xC593, 0x825A, 0xF4BD, + 0x825B, 0xC594, 0x825C, 0xC595, 0x825D, 0xC596, 0x825E, 0xC597, + 0x825F, 0xF4BE, 0x8260, 0xC598, 0x8261, 0xC599, 0x8262, 0xC59A, + 0x8263, 0xC59B, 0x8264, 0xC59C, 0x8265, 0xC59D, 0x8266, 0xC59E, + 0x8267, 0xC59F, 0x8268, 0xF4BF, 0x8269, 0xC5A0, 0x826A, 0xC640, + 0x826B, 0xC641, 0x826C, 0xC642, 0x826D, 0xC643, 0x826E, 0xF4DE, + 0x826F, 0xC1BC, 0x8270, 0xBCE8, 0x8271, 0xC644, 0x8272, 0xC9AB, + 0x8273, 0xD1DE, 0x8274, 0xE5F5, 0x8275, 0xC645, 0x8276, 0xC646, + 0x8277, 0xC647, 0x8278, 0xC648, 0x8279, 0xDCB3, 0x827A, 0xD2D5, + 0x827B, 0xC649, 0x827C, 0xC64A, 0x827D, 0xDCB4, 0x827E, 0xB0AC, + 0x827F, 0xDCB5, 0x8280, 0xC64B, 0x8281, 0xC64C, 0x8282, 0xBDDA, + 0x8283, 0xC64D, 0x8284, 0xDCB9, 0x8285, 0xC64E, 0x8286, 0xC64F, + 0x8287, 0xC650, 0x8288, 0xD8C2, 0x8289, 0xC651, 0x828A, 0xDCB7, + 0x828B, 0xD3F3, 0x828C, 0xC652, 0x828D, 0xC9D6, 0x828E, 0xDCBA, + 0x828F, 0xDCB6, 0x8290, 0xC653, 0x8291, 0xDCBB, 0x8292, 0xC3A2, + 0x8293, 0xC654, 0x8294, 0xC655, 0x8295, 0xC656, 0x8296, 0xC657, + 0x8297, 0xDCBC, 0x8298, 0xDCC5, 0x8299, 0xDCBD, 0x829A, 0xC658, + 0x829B, 0xC659, 0x829C, 0xCEDF, 0x829D, 0xD6A5, 0x829E, 0xC65A, + 0x829F, 0xDCCF, 0x82A0, 0xC65B, 0x82A1, 0xDCCD, 0x82A2, 0xC65C, + 0x82A3, 0xC65D, 0x82A4, 0xDCD2, 0x82A5, 0xBDE6, 0x82A6, 0xC2AB, + 0x82A7, 0xC65E, 0x82A8, 0xDCB8, 0x82A9, 0xDCCB, 0x82AA, 0xDCCE, + 0x82AB, 0xDCBE, 0x82AC, 0xB7D2, 0x82AD, 0xB0C5, 0x82AE, 0xDCC7, + 0x82AF, 0xD0BE, 0x82B0, 0xDCC1, 0x82B1, 0xBBA8, 0x82B2, 0xC65F, + 0x82B3, 0xB7BC, 0x82B4, 0xDCCC, 0x82B5, 0xC660, 0x82B6, 0xC661, + 0x82B7, 0xDCC6, 0x82B8, 0xDCBF, 0x82B9, 0xC7DB, 0x82BA, 0xC662, + 0x82BB, 0xC663, 0x82BC, 0xC664, 0x82BD, 0xD1BF, 0x82BE, 0xDCC0, + 0x82BF, 0xC665, 0x82C0, 0xC666, 0x82C1, 0xDCCA, 0x82C2, 0xC667, + 0x82C3, 0xC668, 0x82C4, 0xDCD0, 0x82C5, 0xC669, 0x82C6, 0xC66A, + 0x82C7, 0xCEAD, 0x82C8, 0xDCC2, 0x82C9, 0xC66B, 0x82CA, 0xDCC3, + 0x82CB, 0xDCC8, 0x82CC, 0xDCC9, 0x82CD, 0xB2D4, 0x82CE, 0xDCD1, + 0x82CF, 0xCBD5, 0x82D0, 0xC66C, 0x82D1, 0xD4B7, 0x82D2, 0xDCDB, + 0x82D3, 0xDCDF, 0x82D4, 0xCCA6, 0x82D5, 0xDCE6, 0x82D6, 0xC66D, + 0x82D7, 0xC3E7, 0x82D8, 0xDCDC, 0x82D9, 0xC66E, 0x82DA, 0xC66F, + 0x82DB, 0xBFC1, 0x82DC, 0xDCD9, 0x82DD, 0xC670, 0x82DE, 0xB0FA, + 0x82DF, 0xB9B6, 0x82E0, 0xDCE5, 0x82E1, 0xDCD3, 0x82E2, 0xC671, + 0x82E3, 0xDCC4, 0x82E4, 0xDCD6, 0x82E5, 0xC8F4, 0x82E6, 0xBFE0, + 0x82E7, 0xC672, 0x82E8, 0xC673, 0x82E9, 0xC674, 0x82EA, 0xC675, + 0x82EB, 0xC9BB, 0x82EC, 0xC676, 0x82ED, 0xC677, 0x82EE, 0xC678, + 0x82EF, 0xB1BD, 0x82F0, 0xC679, 0x82F1, 0xD3A2, 0x82F2, 0xC67A, + 0x82F3, 0xC67B, 0x82F4, 0xDCDA, 0x82F5, 0xC67C, 0x82F6, 0xC67D, + 0x82F7, 0xDCD5, 0x82F8, 0xC67E, 0x82F9, 0xC6BB, 0x82FA, 0xC680, + 0x82FB, 0xDCDE, 0x82FC, 0xC681, 0x82FD, 0xC682, 0x82FE, 0xC683, + 0x82FF, 0xC684, 0x8300, 0xC685, 0x8301, 0xD7C2, 0x8302, 0xC3AF, + 0x8303, 0xB7B6, 0x8304, 0xC7D1, 0x8305, 0xC3A9, 0x8306, 0xDCE2, + 0x8307, 0xDCD8, 0x8308, 0xDCEB, 0x8309, 0xDCD4, 0x830A, 0xC686, + 0x830B, 0xC687, 0x830C, 0xDCDD, 0x830D, 0xC688, 0x830E, 0xBEA5, + 0x830F, 0xDCD7, 0x8310, 0xC689, 0x8311, 0xDCE0, 0x8312, 0xC68A, + 0x8313, 0xC68B, 0x8314, 0xDCE3, 0x8315, 0xDCE4, 0x8316, 0xC68C, + 0x8317, 0xDCF8, 0x8318, 0xC68D, 0x8319, 0xC68E, 0x831A, 0xDCE1, + 0x831B, 0xDDA2, 0x831C, 0xDCE7, 0x831D, 0xC68F, 0x831E, 0xC690, + 0x831F, 0xC691, 0x8320, 0xC692, 0x8321, 0xC693, 0x8322, 0xC694, + 0x8323, 0xC695, 0x8324, 0xC696, 0x8325, 0xC697, 0x8326, 0xC698, + 0x8327, 0xBCEB, 0x8328, 0xB4C4, 0x8329, 0xC699, 0x832A, 0xC69A, + 0x832B, 0xC3A3, 0x832C, 0xB2E7, 0x832D, 0xDCFA, 0x832E, 0xC69B, + 0x832F, 0xDCF2, 0x8330, 0xC69C, 0x8331, 0xDCEF, 0x8332, 0xC69D, + 0x8333, 0xDCFC, 0x8334, 0xDCEE, 0x8335, 0xD2F0, 0x8336, 0xB2E8, + 0x8337, 0xC69E, 0x8338, 0xC8D7, 0x8339, 0xC8E3, 0x833A, 0xDCFB, + 0x833B, 0xC69F, 0x833C, 0xDCED, 0x833D, 0xC6A0, 0x833E, 0xC740, + 0x833F, 0xC741, 0x8340, 0xDCF7, 0x8341, 0xC742, 0x8342, 0xC743, + 0x8343, 0xDCF5, 0x8344, 0xC744, 0x8345, 0xC745, 0x8346, 0xBEA3, + 0x8347, 0xDCF4, 0x8348, 0xC746, 0x8349, 0xB2DD, 0x834A, 0xC747, + 0x834B, 0xC748, 0x834C, 0xC749, 0x834D, 0xC74A, 0x834E, 0xC74B, + 0x834F, 0xDCF3, 0x8350, 0xBCF6, 0x8351, 0xDCE8, 0x8352, 0xBBC4, + 0x8353, 0xC74C, 0x8354, 0xC0F3, 0x8355, 0xC74D, 0x8356, 0xC74E, + 0x8357, 0xC74F, 0x8358, 0xC750, 0x8359, 0xC751, 0x835A, 0xBCD4, + 0x835B, 0xDCE9, 0x835C, 0xDCEA, 0x835D, 0xC752, 0x835E, 0xDCF1, + 0x835F, 0xDCF6, 0x8360, 0xDCF9, 0x8361, 0xB5B4, 0x8362, 0xC753, + 0x8363, 0xC8D9, 0x8364, 0xBBE7, 0x8365, 0xDCFE, 0x8366, 0xDCFD, + 0x8367, 0xD3AB, 0x8368, 0xDDA1, 0x8369, 0xDDA3, 0x836A, 0xDDA5, + 0x836B, 0xD2F1, 0x836C, 0xDDA4, 0x836D, 0xDDA6, 0x836E, 0xDDA7, + 0x836F, 0xD2A9, 0x8370, 0xC754, 0x8371, 0xC755, 0x8372, 0xC756, + 0x8373, 0xC757, 0x8374, 0xC758, 0x8375, 0xC759, 0x8376, 0xC75A, + 0x8377, 0xBAC9, 0x8378, 0xDDA9, 0x8379, 0xC75B, 0x837A, 0xC75C, + 0x837B, 0xDDB6, 0x837C, 0xDDB1, 0x837D, 0xDDB4, 0x837E, 0xC75D, + 0x837F, 0xC75E, 0x8380, 0xC75F, 0x8381, 0xC760, 0x8382, 0xC761, + 0x8383, 0xC762, 0x8384, 0xC763, 0x8385, 0xDDB0, 0x8386, 0xC6CE, + 0x8387, 0xC764, 0x8388, 0xC765, 0x8389, 0xC0F2, 0x838A, 0xC766, + 0x838B, 0xC767, 0x838C, 0xC768, 0x838D, 0xC769, 0x838E, 0xC9AF, + 0x838F, 0xC76A, 0x8390, 0xC76B, 0x8391, 0xC76C, 0x8392, 0xDCEC, + 0x8393, 0xDDAE, 0x8394, 0xC76D, 0x8395, 0xC76E, 0x8396, 0xC76F, + 0x8397, 0xC770, 0x8398, 0xDDB7, 0x8399, 0xC771, 0x839A, 0xC772, + 0x839B, 0xDCF0, 0x839C, 0xDDAF, 0x839D, 0xC773, 0x839E, 0xDDB8, + 0x839F, 0xC774, 0x83A0, 0xDDAC, 0x83A1, 0xC775, 0x83A2, 0xC776, + 0x83A3, 0xC777, 0x83A4, 0xC778, 0x83A5, 0xC779, 0x83A6, 0xC77A, + 0x83A7, 0xC77B, 0x83A8, 0xDDB9, 0x83A9, 0xDDB3, 0x83AA, 0xDDAD, + 0x83AB, 0xC4AA, 0x83AC, 0xC77C, 0x83AD, 0xC77D, 0x83AE, 0xC77E, + 0x83AF, 0xC780, 0x83B0, 0xDDA8, 0x83B1, 0xC0B3, 0x83B2, 0xC1AB, + 0x83B3, 0xDDAA, 0x83B4, 0xDDAB, 0x83B5, 0xC781, 0x83B6, 0xDDB2, + 0x83B7, 0xBBF1, 0x83B8, 0xDDB5, 0x83B9, 0xD3A8, 0x83BA, 0xDDBA, + 0x83BB, 0xC782, 0x83BC, 0xDDBB, 0x83BD, 0xC3A7, 0x83BE, 0xC783, + 0x83BF, 0xC784, 0x83C0, 0xDDD2, 0x83C1, 0xDDBC, 0x83C2, 0xC785, + 0x83C3, 0xC786, 0x83C4, 0xC787, 0x83C5, 0xDDD1, 0x83C6, 0xC788, + 0x83C7, 0xB9BD, 0x83C8, 0xC789, 0x83C9, 0xC78A, 0x83CA, 0xBED5, + 0x83CB, 0xC78B, 0x83CC, 0xBEFA, 0x83CD, 0xC78C, 0x83CE, 0xC78D, + 0x83CF, 0xBACA, 0x83D0, 0xC78E, 0x83D1, 0xC78F, 0x83D2, 0xC790, + 0x83D3, 0xC791, 0x83D4, 0xDDCA, 0x83D5, 0xC792, 0x83D6, 0xDDC5, + 0x83D7, 0xC793, 0x83D8, 0xDDBF, 0x83D9, 0xC794, 0x83DA, 0xC795, + 0x83DB, 0xC796, 0x83DC, 0xB2CB, 0x83DD, 0xDDC3, 0x83DE, 0xC797, + 0x83DF, 0xDDCB, 0x83E0, 0xB2A4, 0x83E1, 0xDDD5, 0x83E2, 0xC798, + 0x83E3, 0xC799, 0x83E4, 0xC79A, 0x83E5, 0xDDBE, 0x83E6, 0xC79B, + 0x83E7, 0xC79C, 0x83E8, 0xC79D, 0x83E9, 0xC6D0, 0x83EA, 0xDDD0, + 0x83EB, 0xC79E, 0x83EC, 0xC79F, 0x83ED, 0xC7A0, 0x83EE, 0xC840, + 0x83EF, 0xC841, 0x83F0, 0xDDD4, 0x83F1, 0xC1E2, 0x83F2, 0xB7C6, + 0x83F3, 0xC842, 0x83F4, 0xC843, 0x83F5, 0xC844, 0x83F6, 0xC845, + 0x83F7, 0xC846, 0x83F8, 0xDDCE, 0x83F9, 0xDDCF, 0x83FA, 0xC847, + 0x83FB, 0xC848, 0x83FC, 0xC849, 0x83FD, 0xDDC4, 0x83FE, 0xC84A, + 0x83FF, 0xC84B, 0x8400, 0xC84C, 0x8401, 0xDDBD, 0x8402, 0xC84D, + 0x8403, 0xDDCD, 0x8404, 0xCCD1, 0x8405, 0xC84E, 0x8406, 0xDDC9, + 0x8407, 0xC84F, 0x8408, 0xC850, 0x8409, 0xC851, 0x840A, 0xC852, + 0x840B, 0xDDC2, 0x840C, 0xC3C8, 0x840D, 0xC6BC, 0x840E, 0xCEAE, + 0x840F, 0xDDCC, 0x8410, 0xC853, 0x8411, 0xDDC8, 0x8412, 0xC854, + 0x8413, 0xC855, 0x8414, 0xC856, 0x8415, 0xC857, 0x8416, 0xC858, + 0x8417, 0xC859, 0x8418, 0xDDC1, 0x8419, 0xC85A, 0x841A, 0xC85B, + 0x841B, 0xC85C, 0x841C, 0xDDC6, 0x841D, 0xC2DC, 0x841E, 0xC85D, + 0x841F, 0xC85E, 0x8420, 0xC85F, 0x8421, 0xC860, 0x8422, 0xC861, + 0x8423, 0xC862, 0x8424, 0xD3A9, 0x8425, 0xD3AA, 0x8426, 0xDDD3, + 0x8427, 0xCFF4, 0x8428, 0xC8F8, 0x8429, 0xC863, 0x842A, 0xC864, + 0x842B, 0xC865, 0x842C, 0xC866, 0x842D, 0xC867, 0x842E, 0xC868, + 0x842F, 0xC869, 0x8430, 0xC86A, 0x8431, 0xDDE6, 0x8432, 0xC86B, + 0x8433, 0xC86C, 0x8434, 0xC86D, 0x8435, 0xC86E, 0x8436, 0xC86F, + 0x8437, 0xC870, 0x8438, 0xDDC7, 0x8439, 0xC871, 0x843A, 0xC872, + 0x843B, 0xC873, 0x843C, 0xDDE0, 0x843D, 0xC2E4, 0x843E, 0xC874, + 0x843F, 0xC875, 0x8440, 0xC876, 0x8441, 0xC877, 0x8442, 0xC878, + 0x8443, 0xC879, 0x8444, 0xC87A, 0x8445, 0xC87B, 0x8446, 0xDDE1, + 0x8447, 0xC87C, 0x8448, 0xC87D, 0x8449, 0xC87E, 0x844A, 0xC880, + 0x844B, 0xC881, 0x844C, 0xC882, 0x844D, 0xC883, 0x844E, 0xC884, + 0x844F, 0xC885, 0x8450, 0xC886, 0x8451, 0xDDD7, 0x8452, 0xC887, + 0x8453, 0xC888, 0x8454, 0xC889, 0x8455, 0xC88A, 0x8456, 0xC88B, + 0x8457, 0xD6F8, 0x8458, 0xC88C, 0x8459, 0xDDD9, 0x845A, 0xDDD8, + 0x845B, 0xB8F0, 0x845C, 0xDDD6, 0x845D, 0xC88D, 0x845E, 0xC88E, + 0x845F, 0xC88F, 0x8460, 0xC890, 0x8461, 0xC6CF, 0x8462, 0xC891, + 0x8463, 0xB6AD, 0x8464, 0xC892, 0x8465, 0xC893, 0x8466, 0xC894, + 0x8467, 0xC895, 0x8468, 0xC896, 0x8469, 0xDDE2, 0x846A, 0xC897, + 0x846B, 0xBAF9, 0x846C, 0xD4E1, 0x846D, 0xDDE7, 0x846E, 0xC898, + 0x846F, 0xC899, 0x8470, 0xC89A, 0x8471, 0xB4D0, 0x8472, 0xC89B, + 0x8473, 0xDDDA, 0x8474, 0xC89C, 0x8475, 0xBFFB, 0x8476, 0xDDE3, + 0x8477, 0xC89D, 0x8478, 0xDDDF, 0x8479, 0xC89E, 0x847A, 0xDDDD, + 0x847B, 0xC89F, 0x847C, 0xC8A0, 0x847D, 0xC940, 0x847E, 0xC941, + 0x847F, 0xC942, 0x8480, 0xC943, 0x8481, 0xC944, 0x8482, 0xB5D9, + 0x8483, 0xC945, 0x8484, 0xC946, 0x8485, 0xC947, 0x8486, 0xC948, + 0x8487, 0xDDDB, 0x8488, 0xDDDC, 0x8489, 0xDDDE, 0x848A, 0xC949, + 0x848B, 0xBDAF, 0x848C, 0xDDE4, 0x848D, 0xC94A, 0x848E, 0xDDE5, + 0x848F, 0xC94B, 0x8490, 0xC94C, 0x8491, 0xC94D, 0x8492, 0xC94E, + 0x8493, 0xC94F, 0x8494, 0xC950, 0x8495, 0xC951, 0x8496, 0xC952, + 0x8497, 0xDDF5, 0x8498, 0xC953, 0x8499, 0xC3C9, 0x849A, 0xC954, + 0x849B, 0xC955, 0x849C, 0xCBE2, 0x849D, 0xC956, 0x849E, 0xC957, + 0x849F, 0xC958, 0x84A0, 0xC959, 0x84A1, 0xDDF2, 0x84A2, 0xC95A, + 0x84A3, 0xC95B, 0x84A4, 0xC95C, 0x84A5, 0xC95D, 0x84A6, 0xC95E, + 0x84A7, 0xC95F, 0x84A8, 0xC960, 0x84A9, 0xC961, 0x84AA, 0xC962, + 0x84AB, 0xC963, 0x84AC, 0xC964, 0x84AD, 0xC965, 0x84AE, 0xC966, + 0x84AF, 0xD8E1, 0x84B0, 0xC967, 0x84B1, 0xC968, 0x84B2, 0xC6D1, + 0x84B3, 0xC969, 0x84B4, 0xDDF4, 0x84B5, 0xC96A, 0x84B6, 0xC96B, + 0x84B7, 0xC96C, 0x84B8, 0xD5F4, 0x84B9, 0xDDF3, 0x84BA, 0xDDF0, + 0x84BB, 0xC96D, 0x84BC, 0xC96E, 0x84BD, 0xDDEC, 0x84BE, 0xC96F, + 0x84BF, 0xDDEF, 0x84C0, 0xC970, 0x84C1, 0xDDE8, 0x84C2, 0xC971, + 0x84C3, 0xC972, 0x84C4, 0xD0EE, 0x84C5, 0xC973, 0x84C6, 0xC974, + 0x84C7, 0xC975, 0x84C8, 0xC976, 0x84C9, 0xC8D8, 0x84CA, 0xDDEE, + 0x84CB, 0xC977, 0x84CC, 0xC978, 0x84CD, 0xDDE9, 0x84CE, 0xC979, + 0x84CF, 0xC97A, 0x84D0, 0xDDEA, 0x84D1, 0xCBF2, 0x84D2, 0xC97B, + 0x84D3, 0xDDED, 0x84D4, 0xC97C, 0x84D5, 0xC97D, 0x84D6, 0xB1CD, + 0x84D7, 0xC97E, 0x84D8, 0xC980, 0x84D9, 0xC981, 0x84DA, 0xC982, + 0x84DB, 0xC983, 0x84DC, 0xC984, 0x84DD, 0xC0B6, 0x84DE, 0xC985, + 0x84DF, 0xBCBB, 0x84E0, 0xDDF1, 0x84E1, 0xC986, 0x84E2, 0xC987, + 0x84E3, 0xDDF7, 0x84E4, 0xC988, 0x84E5, 0xDDF6, 0x84E6, 0xDDEB, + 0x84E7, 0xC989, 0x84E8, 0xC98A, 0x84E9, 0xC98B, 0x84EA, 0xC98C, + 0x84EB, 0xC98D, 0x84EC, 0xC5EE, 0x84ED, 0xC98E, 0x84EE, 0xC98F, + 0x84EF, 0xC990, 0x84F0, 0xDDFB, 0x84F1, 0xC991, 0x84F2, 0xC992, + 0x84F3, 0xC993, 0x84F4, 0xC994, 0x84F5, 0xC995, 0x84F6, 0xC996, + 0x84F7, 0xC997, 0x84F8, 0xC998, 0x84F9, 0xC999, 0x84FA, 0xC99A, + 0x84FB, 0xC99B, 0x84FC, 0xDEA4, 0x84FD, 0xC99C, 0x84FE, 0xC99D, + 0x84FF, 0xDEA3, 0x8500, 0xC99E, 0x8501, 0xC99F, 0x8502, 0xC9A0, + 0x8503, 0xCA40, 0x8504, 0xCA41, 0x8505, 0xCA42, 0x8506, 0xCA43, + 0x8507, 0xCA44, 0x8508, 0xCA45, 0x8509, 0xCA46, 0x850A, 0xCA47, + 0x850B, 0xCA48, 0x850C, 0xDDF8, 0x850D, 0xCA49, 0x850E, 0xCA4A, + 0x850F, 0xCA4B, 0x8510, 0xCA4C, 0x8511, 0xC3EF, 0x8512, 0xCA4D, + 0x8513, 0xC2FB, 0x8514, 0xCA4E, 0x8515, 0xCA4F, 0x8516, 0xCA50, + 0x8517, 0xD5E1, 0x8518, 0xCA51, 0x8519, 0xCA52, 0x851A, 0xCEB5, + 0x851B, 0xCA53, 0x851C, 0xCA54, 0x851D, 0xCA55, 0x851E, 0xCA56, + 0x851F, 0xDDFD, 0x8520, 0xCA57, 0x8521, 0xB2CC, 0x8522, 0xCA58, + 0x8523, 0xCA59, 0x8524, 0xCA5A, 0x8525, 0xCA5B, 0x8526, 0xCA5C, + 0x8527, 0xCA5D, 0x8528, 0xCA5E, 0x8529, 0xCA5F, 0x852A, 0xCA60, + 0x852B, 0xC4E8, 0x852C, 0xCADF, 0x852D, 0xCA61, 0x852E, 0xCA62, + 0x852F, 0xCA63, 0x8530, 0xCA64, 0x8531, 0xCA65, 0x8532, 0xCA66, + 0x8533, 0xCA67, 0x8534, 0xCA68, 0x8535, 0xCA69, 0x8536, 0xCA6A, + 0x8537, 0xC7BE, 0x8538, 0xDDFA, 0x8539, 0xDDFC, 0x853A, 0xDDFE, + 0x853B, 0xDEA2, 0x853C, 0xB0AA, 0x853D, 0xB1CE, 0x853E, 0xCA6B, + 0x853F, 0xCA6C, 0x8540, 0xCA6D, 0x8541, 0xCA6E, 0x8542, 0xCA6F, + 0x8543, 0xDEAC, 0x8544, 0xCA70, 0x8545, 0xCA71, 0x8546, 0xCA72, + 0x8547, 0xCA73, 0x8548, 0xDEA6, 0x8549, 0xBDB6, 0x854A, 0xC8EF, + 0x854B, 0xCA74, 0x854C, 0xCA75, 0x854D, 0xCA76, 0x854E, 0xCA77, + 0x854F, 0xCA78, 0x8550, 0xCA79, 0x8551, 0xCA7A, 0x8552, 0xCA7B, + 0x8553, 0xCA7C, 0x8554, 0xCA7D, 0x8555, 0xCA7E, 0x8556, 0xDEA1, + 0x8557, 0xCA80, 0x8558, 0xCA81, 0x8559, 0xDEA5, 0x855A, 0xCA82, + 0x855B, 0xCA83, 0x855C, 0xCA84, 0x855D, 0xCA85, 0x855E, 0xDEA9, + 0x855F, 0xCA86, 0x8560, 0xCA87, 0x8561, 0xCA88, 0x8562, 0xCA89, + 0x8563, 0xCA8A, 0x8564, 0xDEA8, 0x8565, 0xCA8B, 0x8566, 0xCA8C, + 0x8567, 0xCA8D, 0x8568, 0xDEA7, 0x8569, 0xCA8E, 0x856A, 0xCA8F, + 0x856B, 0xCA90, 0x856C, 0xCA91, 0x856D, 0xCA92, 0x856E, 0xCA93, + 0x856F, 0xCA94, 0x8570, 0xCA95, 0x8571, 0xCA96, 0x8572, 0xDEAD, + 0x8573, 0xCA97, 0x8574, 0xD4CC, 0x8575, 0xCA98, 0x8576, 0xCA99, + 0x8577, 0xCA9A, 0x8578, 0xCA9B, 0x8579, 0xDEB3, 0x857A, 0xDEAA, + 0x857B, 0xDEAE, 0x857C, 0xCA9C, 0x857D, 0xCA9D, 0x857E, 0xC0D9, + 0x857F, 0xCA9E, 0x8580, 0xCA9F, 0x8581, 0xCAA0, 0x8582, 0xCB40, + 0x8583, 0xCB41, 0x8584, 0xB1A1, 0x8585, 0xDEB6, 0x8586, 0xCB42, + 0x8587, 0xDEB1, 0x8588, 0xCB43, 0x8589, 0xCB44, 0x858A, 0xCB45, + 0x858B, 0xCB46, 0x858C, 0xCB47, 0x858D, 0xCB48, 0x858E, 0xCB49, + 0x858F, 0xDEB2, 0x8590, 0xCB4A, 0x8591, 0xCB4B, 0x8592, 0xCB4C, + 0x8593, 0xCB4D, 0x8594, 0xCB4E, 0x8595, 0xCB4F, 0x8596, 0xCB50, + 0x8597, 0xCB51, 0x8598, 0xCB52, 0x8599, 0xCB53, 0x859A, 0xCB54, + 0x859B, 0xD1A6, 0x859C, 0xDEB5, 0x859D, 0xCB55, 0x859E, 0xCB56, + 0x859F, 0xCB57, 0x85A0, 0xCB58, 0x85A1, 0xCB59, 0x85A2, 0xCB5A, + 0x85A3, 0xCB5B, 0x85A4, 0xDEAF, 0x85A5, 0xCB5C, 0x85A6, 0xCB5D, + 0x85A7, 0xCB5E, 0x85A8, 0xDEB0, 0x85A9, 0xCB5F, 0x85AA, 0xD0BD, + 0x85AB, 0xCB60, 0x85AC, 0xCB61, 0x85AD, 0xCB62, 0x85AE, 0xDEB4, + 0x85AF, 0xCAED, 0x85B0, 0xDEB9, 0x85B1, 0xCB63, 0x85B2, 0xCB64, + 0x85B3, 0xCB65, 0x85B4, 0xCB66, 0x85B5, 0xCB67, 0x85B6, 0xCB68, + 0x85B7, 0xDEB8, 0x85B8, 0xCB69, 0x85B9, 0xDEB7, 0x85BA, 0xCB6A, + 0x85BB, 0xCB6B, 0x85BC, 0xCB6C, 0x85BD, 0xCB6D, 0x85BE, 0xCB6E, + 0x85BF, 0xCB6F, 0x85C0, 0xCB70, 0x85C1, 0xDEBB, 0x85C2, 0xCB71, + 0x85C3, 0xCB72, 0x85C4, 0xCB73, 0x85C5, 0xCB74, 0x85C6, 0xCB75, + 0x85C7, 0xCB76, 0x85C8, 0xCB77, 0x85C9, 0xBDE5, 0x85CA, 0xCB78, + 0x85CB, 0xCB79, 0x85CC, 0xCB7A, 0x85CD, 0xCB7B, 0x85CE, 0xCB7C, + 0x85CF, 0xB2D8, 0x85D0, 0xC3EA, 0x85D1, 0xCB7D, 0x85D2, 0xCB7E, + 0x85D3, 0xDEBA, 0x85D4, 0xCB80, 0x85D5, 0xC5BA, 0x85D6, 0xCB81, + 0x85D7, 0xCB82, 0x85D8, 0xCB83, 0x85D9, 0xCB84, 0x85DA, 0xCB85, + 0x85DB, 0xCB86, 0x85DC, 0xDEBC, 0x85DD, 0xCB87, 0x85DE, 0xCB88, + 0x85DF, 0xCB89, 0x85E0, 0xCB8A, 0x85E1, 0xCB8B, 0x85E2, 0xCB8C, + 0x85E3, 0xCB8D, 0x85E4, 0xCCD9, 0x85E5, 0xCB8E, 0x85E6, 0xCB8F, + 0x85E7, 0xCB90, 0x85E8, 0xCB91, 0x85E9, 0xB7AA, 0x85EA, 0xCB92, + 0x85EB, 0xCB93, 0x85EC, 0xCB94, 0x85ED, 0xCB95, 0x85EE, 0xCB96, + 0x85EF, 0xCB97, 0x85F0, 0xCB98, 0x85F1, 0xCB99, 0x85F2, 0xCB9A, + 0x85F3, 0xCB9B, 0x85F4, 0xCB9C, 0x85F5, 0xCB9D, 0x85F6, 0xCB9E, + 0x85F7, 0xCB9F, 0x85F8, 0xCBA0, 0x85F9, 0xCC40, 0x85FA, 0xCC41, + 0x85FB, 0xD4E5, 0x85FC, 0xCC42, 0x85FD, 0xCC43, 0x85FE, 0xCC44, + 0x85FF, 0xDEBD, 0x8600, 0xCC45, 0x8601, 0xCC46, 0x8602, 0xCC47, + 0x8603, 0xCC48, 0x8604, 0xCC49, 0x8605, 0xDEBF, 0x8606, 0xCC4A, + 0x8607, 0xCC4B, 0x8608, 0xCC4C, 0x8609, 0xCC4D, 0x860A, 0xCC4E, + 0x860B, 0xCC4F, 0x860C, 0xCC50, 0x860D, 0xCC51, 0x860E, 0xCC52, + 0x860F, 0xCC53, 0x8610, 0xCC54, 0x8611, 0xC4A2, 0x8612, 0xCC55, + 0x8613, 0xCC56, 0x8614, 0xCC57, 0x8615, 0xCC58, 0x8616, 0xDEC1, + 0x8617, 0xCC59, 0x8618, 0xCC5A, 0x8619, 0xCC5B, 0x861A, 0xCC5C, + 0x861B, 0xCC5D, 0x861C, 0xCC5E, 0x861D, 0xCC5F, 0x861E, 0xCC60, + 0x861F, 0xCC61, 0x8620, 0xCC62, 0x8621, 0xCC63, 0x8622, 0xCC64, + 0x8623, 0xCC65, 0x8624, 0xCC66, 0x8625, 0xCC67, 0x8626, 0xCC68, + 0x8627, 0xDEBE, 0x8628, 0xCC69, 0x8629, 0xDEC0, 0x862A, 0xCC6A, + 0x862B, 0xCC6B, 0x862C, 0xCC6C, 0x862D, 0xCC6D, 0x862E, 0xCC6E, + 0x862F, 0xCC6F, 0x8630, 0xCC70, 0x8631, 0xCC71, 0x8632, 0xCC72, + 0x8633, 0xCC73, 0x8634, 0xCC74, 0x8635, 0xCC75, 0x8636, 0xCC76, + 0x8637, 0xCC77, 0x8638, 0xD5BA, 0x8639, 0xCC78, 0x863A, 0xCC79, + 0x863B, 0xCC7A, 0x863C, 0xDEC2, 0x863D, 0xCC7B, 0x863E, 0xCC7C, + 0x863F, 0xCC7D, 0x8640, 0xCC7E, 0x8641, 0xCC80, 0x8642, 0xCC81, + 0x8643, 0xCC82, 0x8644, 0xCC83, 0x8645, 0xCC84, 0x8646, 0xCC85, + 0x8647, 0xCC86, 0x8648, 0xCC87, 0x8649, 0xCC88, 0x864A, 0xCC89, + 0x864B, 0xCC8A, 0x864C, 0xCC8B, 0x864D, 0xF2AE, 0x864E, 0xBBA2, + 0x864F, 0xC2B2, 0x8650, 0xC5B0, 0x8651, 0xC2C7, 0x8652, 0xCC8C, + 0x8653, 0xCC8D, 0x8654, 0xF2AF, 0x8655, 0xCC8E, 0x8656, 0xCC8F, + 0x8657, 0xCC90, 0x8658, 0xCC91, 0x8659, 0xCC92, 0x865A, 0xD0E9, + 0x865B, 0xCC93, 0x865C, 0xCC94, 0x865D, 0xCC95, 0x865E, 0xD3DD, + 0x865F, 0xCC96, 0x8660, 0xCC97, 0x8661, 0xCC98, 0x8662, 0xEBBD, + 0x8663, 0xCC99, 0x8664, 0xCC9A, 0x8665, 0xCC9B, 0x8666, 0xCC9C, + 0x8667, 0xCC9D, 0x8668, 0xCC9E, 0x8669, 0xCC9F, 0x866A, 0xCCA0, + 0x866B, 0xB3E6, 0x866C, 0xF2B0, 0x866D, 0xCD40, 0x866E, 0xF2B1, + 0x866F, 0xCD41, 0x8670, 0xCD42, 0x8671, 0xCAAD, 0x8672, 0xCD43, + 0x8673, 0xCD44, 0x8674, 0xCD45, 0x8675, 0xCD46, 0x8676, 0xCD47, + 0x8677, 0xCD48, 0x8678, 0xCD49, 0x8679, 0xBAE7, 0x867A, 0xF2B3, + 0x867B, 0xF2B5, 0x867C, 0xF2B4, 0x867D, 0xCBE4, 0x867E, 0xCFBA, + 0x867F, 0xF2B2, 0x8680, 0xCAB4, 0x8681, 0xD2CF, 0x8682, 0xC2EC, + 0x8683, 0xCD4A, 0x8684, 0xCD4B, 0x8685, 0xCD4C, 0x8686, 0xCD4D, + 0x8687, 0xCD4E, 0x8688, 0xCD4F, 0x8689, 0xCD50, 0x868A, 0xCEC3, + 0x868B, 0xF2B8, 0x868C, 0xB0F6, 0x868D, 0xF2B7, 0x868E, 0xCD51, + 0x868F, 0xCD52, 0x8690, 0xCD53, 0x8691, 0xCD54, 0x8692, 0xCD55, + 0x8693, 0xF2BE, 0x8694, 0xCD56, 0x8695, 0xB2CF, 0x8696, 0xCD57, + 0x8697, 0xCD58, 0x8698, 0xCD59, 0x8699, 0xCD5A, 0x869A, 0xCD5B, + 0x869B, 0xCD5C, 0x869C, 0xD1C1, 0x869D, 0xF2BA, 0x869E, 0xCD5D, + 0x869F, 0xCD5E, 0x86A0, 0xCD5F, 0x86A1, 0xCD60, 0x86A2, 0xCD61, + 0x86A3, 0xF2BC, 0x86A4, 0xD4E9, 0x86A5, 0xCD62, 0x86A6, 0xCD63, + 0x86A7, 0xF2BB, 0x86A8, 0xF2B6, 0x86A9, 0xF2BF, 0x86AA, 0xF2BD, + 0x86AB, 0xCD64, 0x86AC, 0xF2B9, 0x86AD, 0xCD65, 0x86AE, 0xCD66, + 0x86AF, 0xF2C7, 0x86B0, 0xF2C4, 0x86B1, 0xF2C6, 0x86B2, 0xCD67, + 0x86B3, 0xCD68, 0x86B4, 0xF2CA, 0x86B5, 0xF2C2, 0x86B6, 0xF2C0, + 0x86B7, 0xCD69, 0x86B8, 0xCD6A, 0x86B9, 0xCD6B, 0x86BA, 0xF2C5, + 0x86BB, 0xCD6C, 0x86BC, 0xCD6D, 0x86BD, 0xCD6E, 0x86BE, 0xCD6F, + 0x86BF, 0xCD70, 0x86C0, 0xD6FB, 0x86C1, 0xCD71, 0x86C2, 0xCD72, + 0x86C3, 0xCD73, 0x86C4, 0xF2C1, 0x86C5, 0xCD74, 0x86C6, 0xC7F9, + 0x86C7, 0xC9DF, 0x86C8, 0xCD75, 0x86C9, 0xF2C8, 0x86CA, 0xB9C6, + 0x86CB, 0xB5B0, 0x86CC, 0xCD76, 0x86CD, 0xCD77, 0x86CE, 0xF2C3, + 0x86CF, 0xF2C9, 0x86D0, 0xF2D0, 0x86D1, 0xF2D6, 0x86D2, 0xCD78, + 0x86D3, 0xCD79, 0x86D4, 0xBBD7, 0x86D5, 0xCD7A, 0x86D6, 0xCD7B, + 0x86D7, 0xCD7C, 0x86D8, 0xF2D5, 0x86D9, 0xCDDC, 0x86DA, 0xCD7D, + 0x86DB, 0xD6EB, 0x86DC, 0xCD7E, 0x86DD, 0xCD80, 0x86DE, 0xF2D2, + 0x86DF, 0xF2D4, 0x86E0, 0xCD81, 0x86E1, 0xCD82, 0x86E2, 0xCD83, + 0x86E3, 0xCD84, 0x86E4, 0xB8F2, 0x86E5, 0xCD85, 0x86E6, 0xCD86, + 0x86E7, 0xCD87, 0x86E8, 0xCD88, 0x86E9, 0xF2CB, 0x86EA, 0xCD89, + 0x86EB, 0xCD8A, 0x86EC, 0xCD8B, 0x86ED, 0xF2CE, 0x86EE, 0xC2F9, + 0x86EF, 0xCD8C, 0x86F0, 0xD5DD, 0x86F1, 0xF2CC, 0x86F2, 0xF2CD, + 0x86F3, 0xF2CF, 0x86F4, 0xF2D3, 0x86F5, 0xCD8D, 0x86F6, 0xCD8E, + 0x86F7, 0xCD8F, 0x86F8, 0xF2D9, 0x86F9, 0xD3BC, 0x86FA, 0xCD90, + 0x86FB, 0xCD91, 0x86FC, 0xCD92, 0x86FD, 0xCD93, 0x86FE, 0xB6EA, + 0x86FF, 0xCD94, 0x8700, 0xCAF1, 0x8701, 0xCD95, 0x8702, 0xB7E4, + 0x8703, 0xF2D7, 0x8704, 0xCD96, 0x8705, 0xCD97, 0x8706, 0xCD98, + 0x8707, 0xF2D8, 0x8708, 0xF2DA, 0x8709, 0xF2DD, 0x870A, 0xF2DB, + 0x870B, 0xCD99, 0x870C, 0xCD9A, 0x870D, 0xF2DC, 0x870E, 0xCD9B, + 0x870F, 0xCD9C, 0x8710, 0xCD9D, 0x8711, 0xCD9E, 0x8712, 0xD1D1, + 0x8713, 0xF2D1, 0x8714, 0xCD9F, 0x8715, 0xCDC9, 0x8716, 0xCDA0, + 0x8717, 0xCECF, 0x8718, 0xD6A9, 0x8719, 0xCE40, 0x871A, 0xF2E3, + 0x871B, 0xCE41, 0x871C, 0xC3DB, 0x871D, 0xCE42, 0x871E, 0xF2E0, + 0x871F, 0xCE43, 0x8720, 0xCE44, 0x8721, 0xC0AF, 0x8722, 0xF2EC, + 0x8723, 0xF2DE, 0x8724, 0xCE45, 0x8725, 0xF2E1, 0x8726, 0xCE46, + 0x8727, 0xCE47, 0x8728, 0xCE48, 0x8729, 0xF2E8, 0x872A, 0xCE49, + 0x872B, 0xCE4A, 0x872C, 0xCE4B, 0x872D, 0xCE4C, 0x872E, 0xF2E2, + 0x872F, 0xCE4D, 0x8730, 0xCE4E, 0x8731, 0xF2E7, 0x8732, 0xCE4F, + 0x8733, 0xCE50, 0x8734, 0xF2E6, 0x8735, 0xCE51, 0x8736, 0xCE52, + 0x8737, 0xF2E9, 0x8738, 0xCE53, 0x8739, 0xCE54, 0x873A, 0xCE55, + 0x873B, 0xF2DF, 0x873C, 0xCE56, 0x873D, 0xCE57, 0x873E, 0xF2E4, + 0x873F, 0xF2EA, 0x8740, 0xCE58, 0x8741, 0xCE59, 0x8742, 0xCE5A, + 0x8743, 0xCE5B, 0x8744, 0xCE5C, 0x8745, 0xCE5D, 0x8746, 0xCE5E, + 0x8747, 0xD3AC, 0x8748, 0xF2E5, 0x8749, 0xB2F5, 0x874A, 0xCE5F, + 0x874B, 0xCE60, 0x874C, 0xF2F2, 0x874D, 0xCE61, 0x874E, 0xD0AB, + 0x874F, 0xCE62, 0x8750, 0xCE63, 0x8751, 0xCE64, 0x8752, 0xCE65, + 0x8753, 0xF2F5, 0x8754, 0xCE66, 0x8755, 0xCE67, 0x8756, 0xCE68, + 0x8757, 0xBBC8, 0x8758, 0xCE69, 0x8759, 0xF2F9, 0x875A, 0xCE6A, + 0x875B, 0xCE6B, 0x875C, 0xCE6C, 0x875D, 0xCE6D, 0x875E, 0xCE6E, + 0x875F, 0xCE6F, 0x8760, 0xF2F0, 0x8761, 0xCE70, 0x8762, 0xCE71, + 0x8763, 0xF2F6, 0x8764, 0xF2F8, 0x8765, 0xF2FA, 0x8766, 0xCE72, + 0x8767, 0xCE73, 0x8768, 0xCE74, 0x8769, 0xCE75, 0x876A, 0xCE76, + 0x876B, 0xCE77, 0x876C, 0xCE78, 0x876D, 0xCE79, 0x876E, 0xF2F3, + 0x876F, 0xCE7A, 0x8770, 0xF2F1, 0x8771, 0xCE7B, 0x8772, 0xCE7C, + 0x8773, 0xCE7D, 0x8774, 0xBAFB, 0x8775, 0xCE7E, 0x8776, 0xB5FB, + 0x8777, 0xCE80, 0x8778, 0xCE81, 0x8779, 0xCE82, 0x877A, 0xCE83, + 0x877B, 0xF2EF, 0x877C, 0xF2F7, 0x877D, 0xF2ED, 0x877E, 0xF2EE, + 0x877F, 0xCE84, 0x8780, 0xCE85, 0x8781, 0xCE86, 0x8782, 0xF2EB, + 0x8783, 0xF3A6, 0x8784, 0xCE87, 0x8785, 0xF3A3, 0x8786, 0xCE88, + 0x8787, 0xCE89, 0x8788, 0xF3A2, 0x8789, 0xCE8A, 0x878A, 0xCE8B, + 0x878B, 0xF2F4, 0x878C, 0xCE8C, 0x878D, 0xC8DA, 0x878E, 0xCE8D, + 0x878F, 0xCE8E, 0x8790, 0xCE8F, 0x8791, 0xCE90, 0x8792, 0xCE91, + 0x8793, 0xF2FB, 0x8794, 0xCE92, 0x8795, 0xCE93, 0x8796, 0xCE94, + 0x8797, 0xF3A5, 0x8798, 0xCE95, 0x8799, 0xCE96, 0x879A, 0xCE97, + 0x879B, 0xCE98, 0x879C, 0xCE99, 0x879D, 0xCE9A, 0x879E, 0xCE9B, + 0x879F, 0xC3F8, 0x87A0, 0xCE9C, 0x87A1, 0xCE9D, 0x87A2, 0xCE9E, + 0x87A3, 0xCE9F, 0x87A4, 0xCEA0, 0x87A5, 0xCF40, 0x87A6, 0xCF41, + 0x87A7, 0xCF42, 0x87A8, 0xF2FD, 0x87A9, 0xCF43, 0x87AA, 0xCF44, + 0x87AB, 0xF3A7, 0x87AC, 0xF3A9, 0x87AD, 0xF3A4, 0x87AE, 0xCF45, + 0x87AF, 0xF2FC, 0x87B0, 0xCF46, 0x87B1, 0xCF47, 0x87B2, 0xCF48, + 0x87B3, 0xF3AB, 0x87B4, 0xCF49, 0x87B5, 0xF3AA, 0x87B6, 0xCF4A, + 0x87B7, 0xCF4B, 0x87B8, 0xCF4C, 0x87B9, 0xCF4D, 0x87BA, 0xC2DD, + 0x87BB, 0xCF4E, 0x87BC, 0xCF4F, 0x87BD, 0xF3AE, 0x87BE, 0xCF50, + 0x87BF, 0xCF51, 0x87C0, 0xF3B0, 0x87C1, 0xCF52, 0x87C2, 0xCF53, + 0x87C3, 0xCF54, 0x87C4, 0xCF55, 0x87C5, 0xCF56, 0x87C6, 0xF3A1, + 0x87C7, 0xCF57, 0x87C8, 0xCF58, 0x87C9, 0xCF59, 0x87CA, 0xF3B1, + 0x87CB, 0xF3AC, 0x87CC, 0xCF5A, 0x87CD, 0xCF5B, 0x87CE, 0xCF5C, + 0x87CF, 0xCF5D, 0x87D0, 0xCF5E, 0x87D1, 0xF3AF, 0x87D2, 0xF2FE, + 0x87D3, 0xF3AD, 0x87D4, 0xCF5F, 0x87D5, 0xCF60, 0x87D6, 0xCF61, + 0x87D7, 0xCF62, 0x87D8, 0xCF63, 0x87D9, 0xCF64, 0x87DA, 0xCF65, + 0x87DB, 0xF3B2, 0x87DC, 0xCF66, 0x87DD, 0xCF67, 0x87DE, 0xCF68, + 0x87DF, 0xCF69, 0x87E0, 0xF3B4, 0x87E1, 0xCF6A, 0x87E2, 0xCF6B, + 0x87E3, 0xCF6C, 0x87E4, 0xCF6D, 0x87E5, 0xF3A8, 0x87E6, 0xCF6E, + 0x87E7, 0xCF6F, 0x87E8, 0xCF70, 0x87E9, 0xCF71, 0x87EA, 0xF3B3, + 0x87EB, 0xCF72, 0x87EC, 0xCF73, 0x87ED, 0xCF74, 0x87EE, 0xF3B5, + 0x87EF, 0xCF75, 0x87F0, 0xCF76, 0x87F1, 0xCF77, 0x87F2, 0xCF78, + 0x87F3, 0xCF79, 0x87F4, 0xCF7A, 0x87F5, 0xCF7B, 0x87F6, 0xCF7C, + 0x87F7, 0xCF7D, 0x87F8, 0xCF7E, 0x87F9, 0xD0B7, 0x87FA, 0xCF80, + 0x87FB, 0xCF81, 0x87FC, 0xCF82, 0x87FD, 0xCF83, 0x87FE, 0xF3B8, + 0x87FF, 0xCF84, 0x8800, 0xCF85, 0x8801, 0xCF86, 0x8802, 0xCF87, + 0x8803, 0xD9F9, 0x8804, 0xCF88, 0x8805, 0xCF89, 0x8806, 0xCF8A, + 0x8807, 0xCF8B, 0x8808, 0xCF8C, 0x8809, 0xCF8D, 0x880A, 0xF3B9, + 0x880B, 0xCF8E, 0x880C, 0xCF8F, 0x880D, 0xCF90, 0x880E, 0xCF91, + 0x880F, 0xCF92, 0x8810, 0xCF93, 0x8811, 0xCF94, 0x8812, 0xCF95, + 0x8813, 0xF3B7, 0x8814, 0xCF96, 0x8815, 0xC8E4, 0x8816, 0xF3B6, + 0x8817, 0xCF97, 0x8818, 0xCF98, 0x8819, 0xCF99, 0x881A, 0xCF9A, + 0x881B, 0xF3BA, 0x881C, 0xCF9B, 0x881D, 0xCF9C, 0x881E, 0xCF9D, + 0x881F, 0xCF9E, 0x8820, 0xCF9F, 0x8821, 0xF3BB, 0x8822, 0xB4C0, + 0x8823, 0xCFA0, 0x8824, 0xD040, 0x8825, 0xD041, 0x8826, 0xD042, + 0x8827, 0xD043, 0x8828, 0xD044, 0x8829, 0xD045, 0x882A, 0xD046, + 0x882B, 0xD047, 0x882C, 0xD048, 0x882D, 0xD049, 0x882E, 0xD04A, + 0x882F, 0xD04B, 0x8830, 0xD04C, 0x8831, 0xD04D, 0x8832, 0xEEC3, + 0x8833, 0xD04E, 0x8834, 0xD04F, 0x8835, 0xD050, 0x8836, 0xD051, + 0x8837, 0xD052, 0x8838, 0xD053, 0x8839, 0xF3BC, 0x883A, 0xD054, + 0x883B, 0xD055, 0x883C, 0xF3BD, 0x883D, 0xD056, 0x883E, 0xD057, + 0x883F, 0xD058, 0x8840, 0xD1AA, 0x8841, 0xD059, 0x8842, 0xD05A, + 0x8843, 0xD05B, 0x8844, 0xF4AC, 0x8845, 0xD0C6, 0x8846, 0xD05C, + 0x8847, 0xD05D, 0x8848, 0xD05E, 0x8849, 0xD05F, 0x884A, 0xD060, + 0x884B, 0xD061, 0x884C, 0xD0D0, 0x884D, 0xD1DC, 0x884E, 0xD062, + 0x884F, 0xD063, 0x8850, 0xD064, 0x8851, 0xD065, 0x8852, 0xD066, + 0x8853, 0xD067, 0x8854, 0xCFCE, 0x8855, 0xD068, 0x8856, 0xD069, + 0x8857, 0xBDD6, 0x8858, 0xD06A, 0x8859, 0xD1C3, 0x885A, 0xD06B, + 0x885B, 0xD06C, 0x885C, 0xD06D, 0x885D, 0xD06E, 0x885E, 0xD06F, + 0x885F, 0xD070, 0x8860, 0xD071, 0x8861, 0xBAE2, 0x8862, 0xE1E9, + 0x8863, 0xD2C2, 0x8864, 0xF1C2, 0x8865, 0xB2B9, 0x8866, 0xD072, + 0x8867, 0xD073, 0x8868, 0xB1ED, 0x8869, 0xF1C3, 0x886A, 0xD074, + 0x886B, 0xC9C0, 0x886C, 0xB3C4, 0x886D, 0xD075, 0x886E, 0xD9F2, + 0x886F, 0xD076, 0x8870, 0xCBA5, 0x8871, 0xD077, 0x8872, 0xF1C4, + 0x8873, 0xD078, 0x8874, 0xD079, 0x8875, 0xD07A, 0x8876, 0xD07B, + 0x8877, 0xD6D4, 0x8878, 0xD07C, 0x8879, 0xD07D, 0x887A, 0xD07E, + 0x887B, 0xD080, 0x887C, 0xD081, 0x887D, 0xF1C5, 0x887E, 0xF4C0, + 0x887F, 0xF1C6, 0x8880, 0xD082, 0x8881, 0xD4AC, 0x8882, 0xF1C7, + 0x8883, 0xD083, 0x8884, 0xB0C0, 0x8885, 0xF4C1, 0x8886, 0xD084, + 0x8887, 0xD085, 0x8888, 0xF4C2, 0x8889, 0xD086, 0x888A, 0xD087, + 0x888B, 0xB4FC, 0x888C, 0xD088, 0x888D, 0xC5DB, 0x888E, 0xD089, + 0x888F, 0xD08A, 0x8890, 0xD08B, 0x8891, 0xD08C, 0x8892, 0xCCBB, + 0x8893, 0xD08D, 0x8894, 0xD08E, 0x8895, 0xD08F, 0x8896, 0xD0E4, + 0x8897, 0xD090, 0x8898, 0xD091, 0x8899, 0xD092, 0x889A, 0xD093, + 0x889B, 0xD094, 0x889C, 0xCDE0, 0x889D, 0xD095, 0x889E, 0xD096, + 0x889F, 0xD097, 0x88A0, 0xD098, 0x88A1, 0xD099, 0x88A2, 0xF1C8, + 0x88A3, 0xD09A, 0x88A4, 0xD9F3, 0x88A5, 0xD09B, 0x88A6, 0xD09C, + 0x88A7, 0xD09D, 0x88A8, 0xD09E, 0x88A9, 0xD09F, 0x88AA, 0xD0A0, + 0x88AB, 0xB1BB, 0x88AC, 0xD140, 0x88AD, 0xCFAE, 0x88AE, 0xD141, + 0x88AF, 0xD142, 0x88B0, 0xD143, 0x88B1, 0xB8A4, 0x88B2, 0xD144, + 0x88B3, 0xD145, 0x88B4, 0xD146, 0x88B5, 0xD147, 0x88B6, 0xD148, + 0x88B7, 0xF1CA, 0x88B8, 0xD149, 0x88B9, 0xD14A, 0x88BA, 0xD14B, + 0x88BB, 0xD14C, 0x88BC, 0xF1CB, 0x88BD, 0xD14D, 0x88BE, 0xD14E, + 0x88BF, 0xD14F, 0x88C0, 0xD150, 0x88C1, 0xB2C3, 0x88C2, 0xC1D1, + 0x88C3, 0xD151, 0x88C4, 0xD152, 0x88C5, 0xD7B0, 0x88C6, 0xF1C9, + 0x88C7, 0xD153, 0x88C8, 0xD154, 0x88C9, 0xF1CC, 0x88CA, 0xD155, + 0x88CB, 0xD156, 0x88CC, 0xD157, 0x88CD, 0xD158, 0x88CE, 0xF1CE, + 0x88CF, 0xD159, 0x88D0, 0xD15A, 0x88D1, 0xD15B, 0x88D2, 0xD9F6, + 0x88D3, 0xD15C, 0x88D4, 0xD2E1, 0x88D5, 0xD4A3, 0x88D6, 0xD15D, + 0x88D7, 0xD15E, 0x88D8, 0xF4C3, 0x88D9, 0xC8B9, 0x88DA, 0xD15F, + 0x88DB, 0xD160, 0x88DC, 0xD161, 0x88DD, 0xD162, 0x88DE, 0xD163, + 0x88DF, 0xF4C4, 0x88E0, 0xD164, 0x88E1, 0xD165, 0x88E2, 0xF1CD, + 0x88E3, 0xF1CF, 0x88E4, 0xBFE3, 0x88E5, 0xF1D0, 0x88E6, 0xD166, + 0x88E7, 0xD167, 0x88E8, 0xF1D4, 0x88E9, 0xD168, 0x88EA, 0xD169, + 0x88EB, 0xD16A, 0x88EC, 0xD16B, 0x88ED, 0xD16C, 0x88EE, 0xD16D, + 0x88EF, 0xD16E, 0x88F0, 0xF1D6, 0x88F1, 0xF1D1, 0x88F2, 0xD16F, + 0x88F3, 0xC9D1, 0x88F4, 0xC5E1, 0x88F5, 0xD170, 0x88F6, 0xD171, + 0x88F7, 0xD172, 0x88F8, 0xC2E3, 0x88F9, 0xB9FC, 0x88FA, 0xD173, + 0x88FB, 0xD174, 0x88FC, 0xF1D3, 0x88FD, 0xD175, 0x88FE, 0xF1D5, + 0x88FF, 0xD176, 0x8900, 0xD177, 0x8901, 0xD178, 0x8902, 0xB9D3, + 0x8903, 0xD179, 0x8904, 0xD17A, 0x8905, 0xD17B, 0x8906, 0xD17C, + 0x8907, 0xD17D, 0x8908, 0xD17E, 0x8909, 0xD180, 0x890A, 0xF1DB, + 0x890B, 0xD181, 0x890C, 0xD182, 0x890D, 0xD183, 0x890E, 0xD184, + 0x890F, 0xD185, 0x8910, 0xBAD6, 0x8911, 0xD186, 0x8912, 0xB0FD, + 0x8913, 0xF1D9, 0x8914, 0xD187, 0x8915, 0xD188, 0x8916, 0xD189, + 0x8917, 0xD18A, 0x8918, 0xD18B, 0x8919, 0xF1D8, 0x891A, 0xF1D2, + 0x891B, 0xF1DA, 0x891C, 0xD18C, 0x891D, 0xD18D, 0x891E, 0xD18E, + 0x891F, 0xD18F, 0x8920, 0xD190, 0x8921, 0xF1D7, 0x8922, 0xD191, + 0x8923, 0xD192, 0x8924, 0xD193, 0x8925, 0xC8EC, 0x8926, 0xD194, + 0x8927, 0xD195, 0x8928, 0xD196, 0x8929, 0xD197, 0x892A, 0xCDCA, + 0x892B, 0xF1DD, 0x892C, 0xD198, 0x892D, 0xD199, 0x892E, 0xD19A, + 0x892F, 0xD19B, 0x8930, 0xE5BD, 0x8931, 0xD19C, 0x8932, 0xD19D, + 0x8933, 0xD19E, 0x8934, 0xF1DC, 0x8935, 0xD19F, 0x8936, 0xF1DE, + 0x8937, 0xD1A0, 0x8938, 0xD240, 0x8939, 0xD241, 0x893A, 0xD242, + 0x893B, 0xD243, 0x893C, 0xD244, 0x893D, 0xD245, 0x893E, 0xD246, + 0x893F, 0xD247, 0x8940, 0xD248, 0x8941, 0xF1DF, 0x8942, 0xD249, + 0x8943, 0xD24A, 0x8944, 0xCFE5, 0x8945, 0xD24B, 0x8946, 0xD24C, + 0x8947, 0xD24D, 0x8948, 0xD24E, 0x8949, 0xD24F, 0x894A, 0xD250, + 0x894B, 0xD251, 0x894C, 0xD252, 0x894D, 0xD253, 0x894E, 0xD254, + 0x894F, 0xD255, 0x8950, 0xD256, 0x8951, 0xD257, 0x8952, 0xD258, + 0x8953, 0xD259, 0x8954, 0xD25A, 0x8955, 0xD25B, 0x8956, 0xD25C, + 0x8957, 0xD25D, 0x8958, 0xD25E, 0x8959, 0xD25F, 0x895A, 0xD260, + 0x895B, 0xD261, 0x895C, 0xD262, 0x895D, 0xD263, 0x895E, 0xF4C5, + 0x895F, 0xBDF3, 0x8960, 0xD264, 0x8961, 0xD265, 0x8962, 0xD266, + 0x8963, 0xD267, 0x8964, 0xD268, 0x8965, 0xD269, 0x8966, 0xF1E0, + 0x8967, 0xD26A, 0x8968, 0xD26B, 0x8969, 0xD26C, 0x896A, 0xD26D, + 0x896B, 0xD26E, 0x896C, 0xD26F, 0x896D, 0xD270, 0x896E, 0xD271, + 0x896F, 0xD272, 0x8970, 0xD273, 0x8971, 0xD274, 0x8972, 0xD275, + 0x8973, 0xD276, 0x8974, 0xD277, 0x8975, 0xD278, 0x8976, 0xD279, + 0x8977, 0xD27A, 0x8978, 0xD27B, 0x8979, 0xD27C, 0x897A, 0xD27D, + 0x897B, 0xF1E1, 0x897C, 0xD27E, 0x897D, 0xD280, 0x897E, 0xD281, + 0x897F, 0xCEF7, 0x8980, 0xD282, 0x8981, 0xD2AA, 0x8982, 0xD283, + 0x8983, 0xF1FB, 0x8984, 0xD284, 0x8985, 0xD285, 0x8986, 0xB8B2, + 0x8987, 0xD286, 0x8988, 0xD287, 0x8989, 0xD288, 0x898A, 0xD289, + 0x898B, 0xD28A, 0x898C, 0xD28B, 0x898D, 0xD28C, 0x898E, 0xD28D, + 0x898F, 0xD28E, 0x8990, 0xD28F, 0x8991, 0xD290, 0x8992, 0xD291, + 0x8993, 0xD292, 0x8994, 0xD293, 0x8995, 0xD294, 0x8996, 0xD295, + 0x8997, 0xD296, 0x8998, 0xD297, 0x8999, 0xD298, 0x899A, 0xD299, + 0x899B, 0xD29A, 0x899C, 0xD29B, 0x899D, 0xD29C, 0x899E, 0xD29D, + 0x899F, 0xD29E, 0x89A0, 0xD29F, 0x89A1, 0xD2A0, 0x89A2, 0xD340, + 0x89A3, 0xD341, 0x89A4, 0xD342, 0x89A5, 0xD343, 0x89A6, 0xD344, + 0x89A7, 0xD345, 0x89A8, 0xD346, 0x89A9, 0xD347, 0x89AA, 0xD348, + 0x89AB, 0xD349, 0x89AC, 0xD34A, 0x89AD, 0xD34B, 0x89AE, 0xD34C, + 0x89AF, 0xD34D, 0x89B0, 0xD34E, 0x89B1, 0xD34F, 0x89B2, 0xD350, + 0x89B3, 0xD351, 0x89B4, 0xD352, 0x89B5, 0xD353, 0x89B6, 0xD354, + 0x89B7, 0xD355, 0x89B8, 0xD356, 0x89B9, 0xD357, 0x89BA, 0xD358, + 0x89BB, 0xD359, 0x89BC, 0xD35A, 0x89BD, 0xD35B, 0x89BE, 0xD35C, + 0x89BF, 0xD35D, 0x89C0, 0xD35E, 0x89C1, 0xBCFB, 0x89C2, 0xB9DB, + 0x89C3, 0xD35F, 0x89C4, 0xB9E6, 0x89C5, 0xC3D9, 0x89C6, 0xCAD3, + 0x89C7, 0xEAE8, 0x89C8, 0xC0C0, 0x89C9, 0xBEF5, 0x89CA, 0xEAE9, + 0x89CB, 0xEAEA, 0x89CC, 0xEAEB, 0x89CD, 0xD360, 0x89CE, 0xEAEC, + 0x89CF, 0xEAED, 0x89D0, 0xEAEE, 0x89D1, 0xEAEF, 0x89D2, 0xBDC7, + 0x89D3, 0xD361, 0x89D4, 0xD362, 0x89D5, 0xD363, 0x89D6, 0xF5FB, + 0x89D7, 0xD364, 0x89D8, 0xD365, 0x89D9, 0xD366, 0x89DA, 0xF5FD, + 0x89DB, 0xD367, 0x89DC, 0xF5FE, 0x89DD, 0xD368, 0x89DE, 0xF5FC, + 0x89DF, 0xD369, 0x89E0, 0xD36A, 0x89E1, 0xD36B, 0x89E2, 0xD36C, + 0x89E3, 0xBDE2, 0x89E4, 0xD36D, 0x89E5, 0xF6A1, 0x89E6, 0xB4A5, + 0x89E7, 0xD36E, 0x89E8, 0xD36F, 0x89E9, 0xD370, 0x89EA, 0xD371, + 0x89EB, 0xF6A2, 0x89EC, 0xD372, 0x89ED, 0xD373, 0x89EE, 0xD374, + 0x89EF, 0xF6A3, 0x89F0, 0xD375, 0x89F1, 0xD376, 0x89F2, 0xD377, + 0x89F3, 0xECB2, 0x89F4, 0xD378, 0x89F5, 0xD379, 0x89F6, 0xD37A, + 0x89F7, 0xD37B, 0x89F8, 0xD37C, 0x89F9, 0xD37D, 0x89FA, 0xD37E, + 0x89FB, 0xD380, 0x89FC, 0xD381, 0x89FD, 0xD382, 0x89FE, 0xD383, + 0x89FF, 0xD384, 0x8A00, 0xD1D4, 0x8A01, 0xD385, 0x8A02, 0xD386, + 0x8A03, 0xD387, 0x8A04, 0xD388, 0x8A05, 0xD389, 0x8A06, 0xD38A, + 0x8A07, 0xD9EA, 0x8A08, 0xD38B, 0x8A09, 0xD38C, 0x8A0A, 0xD38D, + 0x8A0B, 0xD38E, 0x8A0C, 0xD38F, 0x8A0D, 0xD390, 0x8A0E, 0xD391, + 0x8A0F, 0xD392, 0x8A10, 0xD393, 0x8A11, 0xD394, 0x8A12, 0xD395, + 0x8A13, 0xD396, 0x8A14, 0xD397, 0x8A15, 0xD398, 0x8A16, 0xD399, + 0x8A17, 0xD39A, 0x8A18, 0xD39B, 0x8A19, 0xD39C, 0x8A1A, 0xD39D, + 0x8A1B, 0xD39E, 0x8A1C, 0xD39F, 0x8A1D, 0xD3A0, 0x8A1E, 0xD440, + 0x8A1F, 0xD441, 0x8A20, 0xD442, 0x8A21, 0xD443, 0x8A22, 0xD444, + 0x8A23, 0xD445, 0x8A24, 0xD446, 0x8A25, 0xD447, 0x8A26, 0xD448, + 0x8A27, 0xD449, 0x8A28, 0xD44A, 0x8A29, 0xD44B, 0x8A2A, 0xD44C, + 0x8A2B, 0xD44D, 0x8A2C, 0xD44E, 0x8A2D, 0xD44F, 0x8A2E, 0xD450, + 0x8A2F, 0xD451, 0x8A30, 0xD452, 0x8A31, 0xD453, 0x8A32, 0xD454, + 0x8A33, 0xD455, 0x8A34, 0xD456, 0x8A35, 0xD457, 0x8A36, 0xD458, + 0x8A37, 0xD459, 0x8A38, 0xD45A, 0x8A39, 0xD45B, 0x8A3A, 0xD45C, + 0x8A3B, 0xD45D, 0x8A3C, 0xD45E, 0x8A3D, 0xD45F, 0x8A3E, 0xF6A4, + 0x8A3F, 0xD460, 0x8A40, 0xD461, 0x8A41, 0xD462, 0x8A42, 0xD463, + 0x8A43, 0xD464, 0x8A44, 0xD465, 0x8A45, 0xD466, 0x8A46, 0xD467, + 0x8A47, 0xD468, 0x8A48, 0xEEBA, 0x8A49, 0xD469, 0x8A4A, 0xD46A, + 0x8A4B, 0xD46B, 0x8A4C, 0xD46C, 0x8A4D, 0xD46D, 0x8A4E, 0xD46E, + 0x8A4F, 0xD46F, 0x8A50, 0xD470, 0x8A51, 0xD471, 0x8A52, 0xD472, + 0x8A53, 0xD473, 0x8A54, 0xD474, 0x8A55, 0xD475, 0x8A56, 0xD476, + 0x8A57, 0xD477, 0x8A58, 0xD478, 0x8A59, 0xD479, 0x8A5A, 0xD47A, + 0x8A5B, 0xD47B, 0x8A5C, 0xD47C, 0x8A5D, 0xD47D, 0x8A5E, 0xD47E, + 0x8A5F, 0xD480, 0x8A60, 0xD481, 0x8A61, 0xD482, 0x8A62, 0xD483, + 0x8A63, 0xD484, 0x8A64, 0xD485, 0x8A65, 0xD486, 0x8A66, 0xD487, + 0x8A67, 0xD488, 0x8A68, 0xD489, 0x8A69, 0xD48A, 0x8A6A, 0xD48B, + 0x8A6B, 0xD48C, 0x8A6C, 0xD48D, 0x8A6D, 0xD48E, 0x8A6E, 0xD48F, + 0x8A6F, 0xD490, 0x8A70, 0xD491, 0x8A71, 0xD492, 0x8A72, 0xD493, + 0x8A73, 0xD494, 0x8A74, 0xD495, 0x8A75, 0xD496, 0x8A76, 0xD497, + 0x8A77, 0xD498, 0x8A78, 0xD499, 0x8A79, 0xD5B2, 0x8A7A, 0xD49A, + 0x8A7B, 0xD49B, 0x8A7C, 0xD49C, 0x8A7D, 0xD49D, 0x8A7E, 0xD49E, + 0x8A7F, 0xD49F, 0x8A80, 0xD4A0, 0x8A81, 0xD540, 0x8A82, 0xD541, + 0x8A83, 0xD542, 0x8A84, 0xD543, 0x8A85, 0xD544, 0x8A86, 0xD545, + 0x8A87, 0xD546, 0x8A88, 0xD547, 0x8A89, 0xD3FE, 0x8A8A, 0xCCDC, + 0x8A8B, 0xD548, 0x8A8C, 0xD549, 0x8A8D, 0xD54A, 0x8A8E, 0xD54B, + 0x8A8F, 0xD54C, 0x8A90, 0xD54D, 0x8A91, 0xD54E, 0x8A92, 0xD54F, + 0x8A93, 0xCAC4, 0x8A94, 0xD550, 0x8A95, 0xD551, 0x8A96, 0xD552, + 0x8A97, 0xD553, 0x8A98, 0xD554, 0x8A99, 0xD555, 0x8A9A, 0xD556, + 0x8A9B, 0xD557, 0x8A9C, 0xD558, 0x8A9D, 0xD559, 0x8A9E, 0xD55A, + 0x8A9F, 0xD55B, 0x8AA0, 0xD55C, 0x8AA1, 0xD55D, 0x8AA2, 0xD55E, + 0x8AA3, 0xD55F, 0x8AA4, 0xD560, 0x8AA5, 0xD561, 0x8AA6, 0xD562, + 0x8AA7, 0xD563, 0x8AA8, 0xD564, 0x8AA9, 0xD565, 0x8AAA, 0xD566, + 0x8AAB, 0xD567, 0x8AAC, 0xD568, 0x8AAD, 0xD569, 0x8AAE, 0xD56A, + 0x8AAF, 0xD56B, 0x8AB0, 0xD56C, 0x8AB1, 0xD56D, 0x8AB2, 0xD56E, + 0x8AB3, 0xD56F, 0x8AB4, 0xD570, 0x8AB5, 0xD571, 0x8AB6, 0xD572, + 0x8AB7, 0xD573, 0x8AB8, 0xD574, 0x8AB9, 0xD575, 0x8ABA, 0xD576, + 0x8ABB, 0xD577, 0x8ABC, 0xD578, 0x8ABD, 0xD579, 0x8ABE, 0xD57A, + 0x8ABF, 0xD57B, 0x8AC0, 0xD57C, 0x8AC1, 0xD57D, 0x8AC2, 0xD57E, + 0x8AC3, 0xD580, 0x8AC4, 0xD581, 0x8AC5, 0xD582, 0x8AC6, 0xD583, + 0x8AC7, 0xD584, 0x8AC8, 0xD585, 0x8AC9, 0xD586, 0x8ACA, 0xD587, + 0x8ACB, 0xD588, 0x8ACC, 0xD589, 0x8ACD, 0xD58A, 0x8ACE, 0xD58B, + 0x8ACF, 0xD58C, 0x8AD0, 0xD58D, 0x8AD1, 0xD58E, 0x8AD2, 0xD58F, + 0x8AD3, 0xD590, 0x8AD4, 0xD591, 0x8AD5, 0xD592, 0x8AD6, 0xD593, + 0x8AD7, 0xD594, 0x8AD8, 0xD595, 0x8AD9, 0xD596, 0x8ADA, 0xD597, + 0x8ADB, 0xD598, 0x8ADC, 0xD599, 0x8ADD, 0xD59A, 0x8ADE, 0xD59B, + 0x8ADF, 0xD59C, 0x8AE0, 0xD59D, 0x8AE1, 0xD59E, 0x8AE2, 0xD59F, + 0x8AE3, 0xD5A0, 0x8AE4, 0xD640, 0x8AE5, 0xD641, 0x8AE6, 0xD642, + 0x8AE7, 0xD643, 0x8AE8, 0xD644, 0x8AE9, 0xD645, 0x8AEA, 0xD646, + 0x8AEB, 0xD647, 0x8AEC, 0xD648, 0x8AED, 0xD649, 0x8AEE, 0xD64A, + 0x8AEF, 0xD64B, 0x8AF0, 0xD64C, 0x8AF1, 0xD64D, 0x8AF2, 0xD64E, + 0x8AF3, 0xD64F, 0x8AF4, 0xD650, 0x8AF5, 0xD651, 0x8AF6, 0xD652, + 0x8AF7, 0xD653, 0x8AF8, 0xD654, 0x8AF9, 0xD655, 0x8AFA, 0xD656, + 0x8AFB, 0xD657, 0x8AFC, 0xD658, 0x8AFD, 0xD659, 0x8AFE, 0xD65A, + 0x8AFF, 0xD65B, 0x8B00, 0xD65C, 0x8B01, 0xD65D, 0x8B02, 0xD65E, + 0x8B03, 0xD65F, 0x8B04, 0xD660, 0x8B05, 0xD661, 0x8B06, 0xD662, + 0x8B07, 0xE5C0, 0x8B08, 0xD663, 0x8B09, 0xD664, 0x8B0A, 0xD665, + 0x8B0B, 0xD666, 0x8B0C, 0xD667, 0x8B0D, 0xD668, 0x8B0E, 0xD669, + 0x8B0F, 0xD66A, 0x8B10, 0xD66B, 0x8B11, 0xD66C, 0x8B12, 0xD66D, + 0x8B13, 0xD66E, 0x8B14, 0xD66F, 0x8B15, 0xD670, 0x8B16, 0xD671, + 0x8B17, 0xD672, 0x8B18, 0xD673, 0x8B19, 0xD674, 0x8B1A, 0xD675, + 0x8B1B, 0xD676, 0x8B1C, 0xD677, 0x8B1D, 0xD678, 0x8B1E, 0xD679, + 0x8B1F, 0xD67A, 0x8B20, 0xD67B, 0x8B21, 0xD67C, 0x8B22, 0xD67D, + 0x8B23, 0xD67E, 0x8B24, 0xD680, 0x8B25, 0xD681, 0x8B26, 0xF6A5, + 0x8B27, 0xD682, 0x8B28, 0xD683, 0x8B29, 0xD684, 0x8B2A, 0xD685, + 0x8B2B, 0xD686, 0x8B2C, 0xD687, 0x8B2D, 0xD688, 0x8B2E, 0xD689, + 0x8B2F, 0xD68A, 0x8B30, 0xD68B, 0x8B31, 0xD68C, 0x8B32, 0xD68D, + 0x8B33, 0xD68E, 0x8B34, 0xD68F, 0x8B35, 0xD690, 0x8B36, 0xD691, + 0x8B37, 0xD692, 0x8B38, 0xD693, 0x8B39, 0xD694, 0x8B3A, 0xD695, + 0x8B3B, 0xD696, 0x8B3C, 0xD697, 0x8B3D, 0xD698, 0x8B3E, 0xD699, + 0x8B3F, 0xD69A, 0x8B40, 0xD69B, 0x8B41, 0xD69C, 0x8B42, 0xD69D, + 0x8B43, 0xD69E, 0x8B44, 0xD69F, 0x8B45, 0xD6A0, 0x8B46, 0xD740, + 0x8B47, 0xD741, 0x8B48, 0xD742, 0x8B49, 0xD743, 0x8B4A, 0xD744, + 0x8B4B, 0xD745, 0x8B4C, 0xD746, 0x8B4D, 0xD747, 0x8B4E, 0xD748, + 0x8B4F, 0xD749, 0x8B50, 0xD74A, 0x8B51, 0xD74B, 0x8B52, 0xD74C, + 0x8B53, 0xD74D, 0x8B54, 0xD74E, 0x8B55, 0xD74F, 0x8B56, 0xD750, + 0x8B57, 0xD751, 0x8B58, 0xD752, 0x8B59, 0xD753, 0x8B5A, 0xD754, + 0x8B5B, 0xD755, 0x8B5C, 0xD756, 0x8B5D, 0xD757, 0x8B5E, 0xD758, + 0x8B5F, 0xD759, 0x8B60, 0xD75A, 0x8B61, 0xD75B, 0x8B62, 0xD75C, + 0x8B63, 0xD75D, 0x8B64, 0xD75E, 0x8B65, 0xD75F, 0x8B66, 0xBEAF, + 0x8B67, 0xD760, 0x8B68, 0xD761, 0x8B69, 0xD762, 0x8B6A, 0xD763, + 0x8B6B, 0xD764, 0x8B6C, 0xC6A9, 0x8B6D, 0xD765, 0x8B6E, 0xD766, + 0x8B6F, 0xD767, 0x8B70, 0xD768, 0x8B71, 0xD769, 0x8B72, 0xD76A, + 0x8B73, 0xD76B, 0x8B74, 0xD76C, 0x8B75, 0xD76D, 0x8B76, 0xD76E, + 0x8B77, 0xD76F, 0x8B78, 0xD770, 0x8B79, 0xD771, 0x8B7A, 0xD772, + 0x8B7B, 0xD773, 0x8B7C, 0xD774, 0x8B7D, 0xD775, 0x8B7E, 0xD776, + 0x8B7F, 0xD777, 0x8B80, 0xD778, 0x8B81, 0xD779, 0x8B82, 0xD77A, + 0x8B83, 0xD77B, 0x8B84, 0xD77C, 0x8B85, 0xD77D, 0x8B86, 0xD77E, + 0x8B87, 0xD780, 0x8B88, 0xD781, 0x8B89, 0xD782, 0x8B8A, 0xD783, + 0x8B8B, 0xD784, 0x8B8C, 0xD785, 0x8B8D, 0xD786, 0x8B8E, 0xD787, + 0x8B8F, 0xD788, 0x8B90, 0xD789, 0x8B91, 0xD78A, 0x8B92, 0xD78B, + 0x8B93, 0xD78C, 0x8B94, 0xD78D, 0x8B95, 0xD78E, 0x8B96, 0xD78F, + 0x8B97, 0xD790, 0x8B98, 0xD791, 0x8B99, 0xD792, 0x8B9A, 0xD793, + 0x8B9B, 0xD794, 0x8B9C, 0xD795, 0x8B9D, 0xD796, 0x8B9E, 0xD797, + 0x8B9F, 0xD798, 0x8BA0, 0xDAA5, 0x8BA1, 0xBCC6, 0x8BA2, 0xB6A9, + 0x8BA3, 0xB8BC, 0x8BA4, 0xC8CF, 0x8BA5, 0xBCA5, 0x8BA6, 0xDAA6, + 0x8BA7, 0xDAA7, 0x8BA8, 0xCCD6, 0x8BA9, 0xC8C3, 0x8BAA, 0xDAA8, + 0x8BAB, 0xC6FD, 0x8BAC, 0xD799, 0x8BAD, 0xD1B5, 0x8BAE, 0xD2E9, + 0x8BAF, 0xD1B6, 0x8BB0, 0xBCC7, 0x8BB1, 0xD79A, 0x8BB2, 0xBDB2, + 0x8BB3, 0xBBE4, 0x8BB4, 0xDAA9, 0x8BB5, 0xDAAA, 0x8BB6, 0xD1C8, + 0x8BB7, 0xDAAB, 0x8BB8, 0xD0ED, 0x8BB9, 0xB6EF, 0x8BBA, 0xC2DB, + 0x8BBB, 0xD79B, 0x8BBC, 0xCBCF, 0x8BBD, 0xB7ED, 0x8BBE, 0xC9E8, + 0x8BBF, 0xB7C3, 0x8BC0, 0xBEF7, 0x8BC1, 0xD6A4, 0x8BC2, 0xDAAC, + 0x8BC3, 0xDAAD, 0x8BC4, 0xC6C0, 0x8BC5, 0xD7E7, 0x8BC6, 0xCAB6, + 0x8BC7, 0xD79C, 0x8BC8, 0xD5A9, 0x8BC9, 0xCBDF, 0x8BCA, 0xD5EF, + 0x8BCB, 0xDAAE, 0x8BCC, 0xD6DF, 0x8BCD, 0xB4CA, 0x8BCE, 0xDAB0, + 0x8BCF, 0xDAAF, 0x8BD0, 0xD79D, 0x8BD1, 0xD2EB, 0x8BD2, 0xDAB1, + 0x8BD3, 0xDAB2, 0x8BD4, 0xDAB3, 0x8BD5, 0xCAD4, 0x8BD6, 0xDAB4, + 0x8BD7, 0xCAAB, 0x8BD8, 0xDAB5, 0x8BD9, 0xDAB6, 0x8BDA, 0xB3CF, + 0x8BDB, 0xD6EF, 0x8BDC, 0xDAB7, 0x8BDD, 0xBBB0, 0x8BDE, 0xB5AE, + 0x8BDF, 0xDAB8, 0x8BE0, 0xDAB9, 0x8BE1, 0xB9EE, 0x8BE2, 0xD1AF, + 0x8BE3, 0xD2E8, 0x8BE4, 0xDABA, 0x8BE5, 0xB8C3, 0x8BE6, 0xCFEA, + 0x8BE7, 0xB2EF, 0x8BE8, 0xDABB, 0x8BE9, 0xDABC, 0x8BEA, 0xD79E, + 0x8BEB, 0xBDEB, 0x8BEC, 0xCEDC, 0x8BED, 0xD3EF, 0x8BEE, 0xDABD, + 0x8BEF, 0xCEF3, 0x8BF0, 0xDABE, 0x8BF1, 0xD3D5, 0x8BF2, 0xBBE5, + 0x8BF3, 0xDABF, 0x8BF4, 0xCBB5, 0x8BF5, 0xCBD0, 0x8BF6, 0xDAC0, + 0x8BF7, 0xC7EB, 0x8BF8, 0xD6EE, 0x8BF9, 0xDAC1, 0x8BFA, 0xC5B5, + 0x8BFB, 0xB6C1, 0x8BFC, 0xDAC2, 0x8BFD, 0xB7CC, 0x8BFE, 0xBFCE, + 0x8BFF, 0xDAC3, 0x8C00, 0xDAC4, 0x8C01, 0xCBAD, 0x8C02, 0xDAC5, + 0x8C03, 0xB5F7, 0x8C04, 0xDAC6, 0x8C05, 0xC1C2, 0x8C06, 0xD7BB, + 0x8C07, 0xDAC7, 0x8C08, 0xCCB8, 0x8C09, 0xD79F, 0x8C0A, 0xD2EA, + 0x8C0B, 0xC4B1, 0x8C0C, 0xDAC8, 0x8C0D, 0xB5FD, 0x8C0E, 0xBBD1, + 0x8C0F, 0xDAC9, 0x8C10, 0xD0B3, 0x8C11, 0xDACA, 0x8C12, 0xDACB, + 0x8C13, 0xCEBD, 0x8C14, 0xDACC, 0x8C15, 0xDACD, 0x8C16, 0xDACE, + 0x8C17, 0xB2F7, 0x8C18, 0xDAD1, 0x8C19, 0xDACF, 0x8C1A, 0xD1E8, + 0x8C1B, 0xDAD0, 0x8C1C, 0xC3D5, 0x8C1D, 0xDAD2, 0x8C1E, 0xD7A0, + 0x8C1F, 0xDAD3, 0x8C20, 0xDAD4, 0x8C21, 0xDAD5, 0x8C22, 0xD0BB, + 0x8C23, 0xD2A5, 0x8C24, 0xB0F9, 0x8C25, 0xDAD6, 0x8C26, 0xC7AB, + 0x8C27, 0xDAD7, 0x8C28, 0xBDF7, 0x8C29, 0xC3A1, 0x8C2A, 0xDAD8, + 0x8C2B, 0xDAD9, 0x8C2C, 0xC3FD, 0x8C2D, 0xCCB7, 0x8C2E, 0xDADA, + 0x8C2F, 0xDADB, 0x8C30, 0xC0BE, 0x8C31, 0xC6D7, 0x8C32, 0xDADC, + 0x8C33, 0xDADD, 0x8C34, 0xC7B4, 0x8C35, 0xDADE, 0x8C36, 0xDADF, + 0x8C37, 0xB9C8, 0x8C38, 0xD840, 0x8C39, 0xD841, 0x8C3A, 0xD842, + 0x8C3B, 0xD843, 0x8C3C, 0xD844, 0x8C3D, 0xD845, 0x8C3E, 0xD846, + 0x8C3F, 0xD847, 0x8C40, 0xD848, 0x8C41, 0xBBED, 0x8C42, 0xD849, + 0x8C43, 0xD84A, 0x8C44, 0xD84B, 0x8C45, 0xD84C, 0x8C46, 0xB6B9, + 0x8C47, 0xF4F8, 0x8C48, 0xD84D, 0x8C49, 0xF4F9, 0x8C4A, 0xD84E, + 0x8C4B, 0xD84F, 0x8C4C, 0xCDE3, 0x8C4D, 0xD850, 0x8C4E, 0xD851, + 0x8C4F, 0xD852, 0x8C50, 0xD853, 0x8C51, 0xD854, 0x8C52, 0xD855, + 0x8C53, 0xD856, 0x8C54, 0xD857, 0x8C55, 0xF5B9, 0x8C56, 0xD858, + 0x8C57, 0xD859, 0x8C58, 0xD85A, 0x8C59, 0xD85B, 0x8C5A, 0xEBE0, + 0x8C5B, 0xD85C, 0x8C5C, 0xD85D, 0x8C5D, 0xD85E, 0x8C5E, 0xD85F, + 0x8C5F, 0xD860, 0x8C60, 0xD861, 0x8C61, 0xCFF3, 0x8C62, 0xBBBF, + 0x8C63, 0xD862, 0x8C64, 0xD863, 0x8C65, 0xD864, 0x8C66, 0xD865, + 0x8C67, 0xD866, 0x8C68, 0xD867, 0x8C69, 0xD868, 0x8C6A, 0xBAC0, + 0x8C6B, 0xD4A5, 0x8C6C, 0xD869, 0x8C6D, 0xD86A, 0x8C6E, 0xD86B, + 0x8C6F, 0xD86C, 0x8C70, 0xD86D, 0x8C71, 0xD86E, 0x8C72, 0xD86F, + 0x8C73, 0xE1D9, 0x8C74, 0xD870, 0x8C75, 0xD871, 0x8C76, 0xD872, + 0x8C77, 0xD873, 0x8C78, 0xF5F4, 0x8C79, 0xB1AA, 0x8C7A, 0xB2F2, + 0x8C7B, 0xD874, 0x8C7C, 0xD875, 0x8C7D, 0xD876, 0x8C7E, 0xD877, + 0x8C7F, 0xD878, 0x8C80, 0xD879, 0x8C81, 0xD87A, 0x8C82, 0xF5F5, + 0x8C83, 0xD87B, 0x8C84, 0xD87C, 0x8C85, 0xF5F7, 0x8C86, 0xD87D, + 0x8C87, 0xD87E, 0x8C88, 0xD880, 0x8C89, 0xBAD1, 0x8C8A, 0xF5F6, + 0x8C8B, 0xD881, 0x8C8C, 0xC3B2, 0x8C8D, 0xD882, 0x8C8E, 0xD883, + 0x8C8F, 0xD884, 0x8C90, 0xD885, 0x8C91, 0xD886, 0x8C92, 0xD887, + 0x8C93, 0xD888, 0x8C94, 0xF5F9, 0x8C95, 0xD889, 0x8C96, 0xD88A, + 0x8C97, 0xD88B, 0x8C98, 0xF5F8, 0x8C99, 0xD88C, 0x8C9A, 0xD88D, + 0x8C9B, 0xD88E, 0x8C9C, 0xD88F, 0x8C9D, 0xD890, 0x8C9E, 0xD891, + 0x8C9F, 0xD892, 0x8CA0, 0xD893, 0x8CA1, 0xD894, 0x8CA2, 0xD895, + 0x8CA3, 0xD896, 0x8CA4, 0xD897, 0x8CA5, 0xD898, 0x8CA6, 0xD899, + 0x8CA7, 0xD89A, 0x8CA8, 0xD89B, 0x8CA9, 0xD89C, 0x8CAA, 0xD89D, + 0x8CAB, 0xD89E, 0x8CAC, 0xD89F, 0x8CAD, 0xD8A0, 0x8CAE, 0xD940, + 0x8CAF, 0xD941, 0x8CB0, 0xD942, 0x8CB1, 0xD943, 0x8CB2, 0xD944, + 0x8CB3, 0xD945, 0x8CB4, 0xD946, 0x8CB5, 0xD947, 0x8CB6, 0xD948, + 0x8CB7, 0xD949, 0x8CB8, 0xD94A, 0x8CB9, 0xD94B, 0x8CBA, 0xD94C, + 0x8CBB, 0xD94D, 0x8CBC, 0xD94E, 0x8CBD, 0xD94F, 0x8CBE, 0xD950, + 0x8CBF, 0xD951, 0x8CC0, 0xD952, 0x8CC1, 0xD953, 0x8CC2, 0xD954, + 0x8CC3, 0xD955, 0x8CC4, 0xD956, 0x8CC5, 0xD957, 0x8CC6, 0xD958, + 0x8CC7, 0xD959, 0x8CC8, 0xD95A, 0x8CC9, 0xD95B, 0x8CCA, 0xD95C, + 0x8CCB, 0xD95D, 0x8CCC, 0xD95E, 0x8CCD, 0xD95F, 0x8CCE, 0xD960, + 0x8CCF, 0xD961, 0x8CD0, 0xD962, 0x8CD1, 0xD963, 0x8CD2, 0xD964, + 0x8CD3, 0xD965, 0x8CD4, 0xD966, 0x8CD5, 0xD967, 0x8CD6, 0xD968, + 0x8CD7, 0xD969, 0x8CD8, 0xD96A, 0x8CD9, 0xD96B, 0x8CDA, 0xD96C, + 0x8CDB, 0xD96D, 0x8CDC, 0xD96E, 0x8CDD, 0xD96F, 0x8CDE, 0xD970, + 0x8CDF, 0xD971, 0x8CE0, 0xD972, 0x8CE1, 0xD973, 0x8CE2, 0xD974, + 0x8CE3, 0xD975, 0x8CE4, 0xD976, 0x8CE5, 0xD977, 0x8CE6, 0xD978, + 0x8CE7, 0xD979, 0x8CE8, 0xD97A, 0x8CE9, 0xD97B, 0x8CEA, 0xD97C, + 0x8CEB, 0xD97D, 0x8CEC, 0xD97E, 0x8CED, 0xD980, 0x8CEE, 0xD981, + 0x8CEF, 0xD982, 0x8CF0, 0xD983, 0x8CF1, 0xD984, 0x8CF2, 0xD985, + 0x8CF3, 0xD986, 0x8CF4, 0xD987, 0x8CF5, 0xD988, 0x8CF6, 0xD989, + 0x8CF7, 0xD98A, 0x8CF8, 0xD98B, 0x8CF9, 0xD98C, 0x8CFA, 0xD98D, + 0x8CFB, 0xD98E, 0x8CFC, 0xD98F, 0x8CFD, 0xD990, 0x8CFE, 0xD991, + 0x8CFF, 0xD992, 0x8D00, 0xD993, 0x8D01, 0xD994, 0x8D02, 0xD995, + 0x8D03, 0xD996, 0x8D04, 0xD997, 0x8D05, 0xD998, 0x8D06, 0xD999, + 0x8D07, 0xD99A, 0x8D08, 0xD99B, 0x8D09, 0xD99C, 0x8D0A, 0xD99D, + 0x8D0B, 0xD99E, 0x8D0C, 0xD99F, 0x8D0D, 0xD9A0, 0x8D0E, 0xDA40, + 0x8D0F, 0xDA41, 0x8D10, 0xDA42, 0x8D11, 0xDA43, 0x8D12, 0xDA44, + 0x8D13, 0xDA45, 0x8D14, 0xDA46, 0x8D15, 0xDA47, 0x8D16, 0xDA48, + 0x8D17, 0xDA49, 0x8D18, 0xDA4A, 0x8D19, 0xDA4B, 0x8D1A, 0xDA4C, + 0x8D1B, 0xDA4D, 0x8D1C, 0xDA4E, 0x8D1D, 0xB1B4, 0x8D1E, 0xD5EA, + 0x8D1F, 0xB8BA, 0x8D20, 0xDA4F, 0x8D21, 0xB9B1, 0x8D22, 0xB2C6, + 0x8D23, 0xD4F0, 0x8D24, 0xCFCD, 0x8D25, 0xB0DC, 0x8D26, 0xD5CB, + 0x8D27, 0xBBF5, 0x8D28, 0xD6CA, 0x8D29, 0xB7B7, 0x8D2A, 0xCCB0, + 0x8D2B, 0xC6B6, 0x8D2C, 0xB1E1, 0x8D2D, 0xB9BA, 0x8D2E, 0xD6FC, + 0x8D2F, 0xB9E1, 0x8D30, 0xB7A1, 0x8D31, 0xBCFA, 0x8D32, 0xEADA, + 0x8D33, 0xEADB, 0x8D34, 0xCCF9, 0x8D35, 0xB9F3, 0x8D36, 0xEADC, + 0x8D37, 0xB4FB, 0x8D38, 0xC3B3, 0x8D39, 0xB7D1, 0x8D3A, 0xBAD8, + 0x8D3B, 0xEADD, 0x8D3C, 0xD4F4, 0x8D3D, 0xEADE, 0x8D3E, 0xBCD6, + 0x8D3F, 0xBBDF, 0x8D40, 0xEADF, 0x8D41, 0xC1DE, 0x8D42, 0xC2B8, + 0x8D43, 0xD4DF, 0x8D44, 0xD7CA, 0x8D45, 0xEAE0, 0x8D46, 0xEAE1, + 0x8D47, 0xEAE4, 0x8D48, 0xEAE2, 0x8D49, 0xEAE3, 0x8D4A, 0xC9DE, + 0x8D4B, 0xB8B3, 0x8D4C, 0xB6C4, 0x8D4D, 0xEAE5, 0x8D4E, 0xCAEA, + 0x8D4F, 0xC9CD, 0x8D50, 0xB4CD, 0x8D51, 0xDA50, 0x8D52, 0xDA51, + 0x8D53, 0xE2D9, 0x8D54, 0xC5E2, 0x8D55, 0xEAE6, 0x8D56, 0xC0B5, + 0x8D57, 0xDA52, 0x8D58, 0xD7B8, 0x8D59, 0xEAE7, 0x8D5A, 0xD7AC, + 0x8D5B, 0xC8FC, 0x8D5C, 0xD8D3, 0x8D5D, 0xD8CD, 0x8D5E, 0xD4DE, + 0x8D5F, 0xDA53, 0x8D60, 0xD4F9, 0x8D61, 0xC9C4, 0x8D62, 0xD3AE, + 0x8D63, 0xB8D3, 0x8D64, 0xB3E0, 0x8D65, 0xDA54, 0x8D66, 0xC9E2, + 0x8D67, 0xF4F6, 0x8D68, 0xDA55, 0x8D69, 0xDA56, 0x8D6A, 0xDA57, + 0x8D6B, 0xBAD5, 0x8D6C, 0xDA58, 0x8D6D, 0xF4F7, 0x8D6E, 0xDA59, + 0x8D6F, 0xDA5A, 0x8D70, 0xD7DF, 0x8D71, 0xDA5B, 0x8D72, 0xDA5C, + 0x8D73, 0xF4F1, 0x8D74, 0xB8B0, 0x8D75, 0xD5D4, 0x8D76, 0xB8CF, + 0x8D77, 0xC6F0, 0x8D78, 0xDA5D, 0x8D79, 0xDA5E, 0x8D7A, 0xDA5F, + 0x8D7B, 0xDA60, 0x8D7C, 0xDA61, 0x8D7D, 0xDA62, 0x8D7E, 0xDA63, + 0x8D7F, 0xDA64, 0x8D80, 0xDA65, 0x8D81, 0xB3C3, 0x8D82, 0xDA66, + 0x8D83, 0xDA67, 0x8D84, 0xF4F2, 0x8D85, 0xB3AC, 0x8D86, 0xDA68, + 0x8D87, 0xDA69, 0x8D88, 0xDA6A, 0x8D89, 0xDA6B, 0x8D8A, 0xD4BD, + 0x8D8B, 0xC7F7, 0x8D8C, 0xDA6C, 0x8D8D, 0xDA6D, 0x8D8E, 0xDA6E, + 0x8D8F, 0xDA6F, 0x8D90, 0xDA70, 0x8D91, 0xF4F4, 0x8D92, 0xDA71, + 0x8D93, 0xDA72, 0x8D94, 0xF4F3, 0x8D95, 0xDA73, 0x8D96, 0xDA74, + 0x8D97, 0xDA75, 0x8D98, 0xDA76, 0x8D99, 0xDA77, 0x8D9A, 0xDA78, + 0x8D9B, 0xDA79, 0x8D9C, 0xDA7A, 0x8D9D, 0xDA7B, 0x8D9E, 0xDA7C, + 0x8D9F, 0xCCCB, 0x8DA0, 0xDA7D, 0x8DA1, 0xDA7E, 0x8DA2, 0xDA80, + 0x8DA3, 0xC8A4, 0x8DA4, 0xDA81, 0x8DA5, 0xDA82, 0x8DA6, 0xDA83, + 0x8DA7, 0xDA84, 0x8DA8, 0xDA85, 0x8DA9, 0xDA86, 0x8DAA, 0xDA87, + 0x8DAB, 0xDA88, 0x8DAC, 0xDA89, 0x8DAD, 0xDA8A, 0x8DAE, 0xDA8B, + 0x8DAF, 0xDA8C, 0x8DB0, 0xDA8D, 0x8DB1, 0xF4F5, 0x8DB2, 0xDA8E, + 0x8DB3, 0xD7E3, 0x8DB4, 0xC5BF, 0x8DB5, 0xF5C0, 0x8DB6, 0xDA8F, + 0x8DB7, 0xDA90, 0x8DB8, 0xF5BB, 0x8DB9, 0xDA91, 0x8DBA, 0xF5C3, + 0x8DBB, 0xDA92, 0x8DBC, 0xF5C2, 0x8DBD, 0xDA93, 0x8DBE, 0xD6BA, + 0x8DBF, 0xF5C1, 0x8DC0, 0xDA94, 0x8DC1, 0xDA95, 0x8DC2, 0xDA96, + 0x8DC3, 0xD4BE, 0x8DC4, 0xF5C4, 0x8DC5, 0xDA97, 0x8DC6, 0xF5CC, + 0x8DC7, 0xDA98, 0x8DC8, 0xDA99, 0x8DC9, 0xDA9A, 0x8DCA, 0xDA9B, + 0x8DCB, 0xB0CF, 0x8DCC, 0xB5F8, 0x8DCD, 0xDA9C, 0x8DCE, 0xF5C9, + 0x8DCF, 0xF5CA, 0x8DD0, 0xDA9D, 0x8DD1, 0xC5DC, 0x8DD2, 0xDA9E, + 0x8DD3, 0xDA9F, 0x8DD4, 0xDAA0, 0x8DD5, 0xDB40, 0x8DD6, 0xF5C5, + 0x8DD7, 0xF5C6, 0x8DD8, 0xDB41, 0x8DD9, 0xDB42, 0x8DDA, 0xF5C7, + 0x8DDB, 0xF5CB, 0x8DDC, 0xDB43, 0x8DDD, 0xBEE0, 0x8DDE, 0xF5C8, + 0x8DDF, 0xB8FA, 0x8DE0, 0xDB44, 0x8DE1, 0xDB45, 0x8DE2, 0xDB46, + 0x8DE3, 0xF5D0, 0x8DE4, 0xF5D3, 0x8DE5, 0xDB47, 0x8DE6, 0xDB48, + 0x8DE7, 0xDB49, 0x8DE8, 0xBFE7, 0x8DE9, 0xDB4A, 0x8DEA, 0xB9F2, + 0x8DEB, 0xF5BC, 0x8DEC, 0xF5CD, 0x8DED, 0xDB4B, 0x8DEE, 0xDB4C, + 0x8DEF, 0xC2B7, 0x8DF0, 0xDB4D, 0x8DF1, 0xDB4E, 0x8DF2, 0xDB4F, + 0x8DF3, 0xCCF8, 0x8DF4, 0xDB50, 0x8DF5, 0xBCF9, 0x8DF6, 0xDB51, + 0x8DF7, 0xF5CE, 0x8DF8, 0xF5CF, 0x8DF9, 0xF5D1, 0x8DFA, 0xB6E5, + 0x8DFB, 0xF5D2, 0x8DFC, 0xDB52, 0x8DFD, 0xF5D5, 0x8DFE, 0xDB53, + 0x8DFF, 0xDB54, 0x8E00, 0xDB55, 0x8E01, 0xDB56, 0x8E02, 0xDB57, + 0x8E03, 0xDB58, 0x8E04, 0xDB59, 0x8E05, 0xF5BD, 0x8E06, 0xDB5A, + 0x8E07, 0xDB5B, 0x8E08, 0xDB5C, 0x8E09, 0xF5D4, 0x8E0A, 0xD3BB, + 0x8E0B, 0xDB5D, 0x8E0C, 0xB3EC, 0x8E0D, 0xDB5E, 0x8E0E, 0xDB5F, + 0x8E0F, 0xCCA4, 0x8E10, 0xDB60, 0x8E11, 0xDB61, 0x8E12, 0xDB62, + 0x8E13, 0xDB63, 0x8E14, 0xF5D6, 0x8E15, 0xDB64, 0x8E16, 0xDB65, + 0x8E17, 0xDB66, 0x8E18, 0xDB67, 0x8E19, 0xDB68, 0x8E1A, 0xDB69, + 0x8E1B, 0xDB6A, 0x8E1C, 0xDB6B, 0x8E1D, 0xF5D7, 0x8E1E, 0xBEE1, + 0x8E1F, 0xF5D8, 0x8E20, 0xDB6C, 0x8E21, 0xDB6D, 0x8E22, 0xCCDF, + 0x8E23, 0xF5DB, 0x8E24, 0xDB6E, 0x8E25, 0xDB6F, 0x8E26, 0xDB70, + 0x8E27, 0xDB71, 0x8E28, 0xDB72, 0x8E29, 0xB2C8, 0x8E2A, 0xD7D9, + 0x8E2B, 0xDB73, 0x8E2C, 0xF5D9, 0x8E2D, 0xDB74, 0x8E2E, 0xF5DA, + 0x8E2F, 0xF5DC, 0x8E30, 0xDB75, 0x8E31, 0xF5E2, 0x8E32, 0xDB76, + 0x8E33, 0xDB77, 0x8E34, 0xDB78, 0x8E35, 0xF5E0, 0x8E36, 0xDB79, + 0x8E37, 0xDB7A, 0x8E38, 0xDB7B, 0x8E39, 0xF5DF, 0x8E3A, 0xF5DD, + 0x8E3B, 0xDB7C, 0x8E3C, 0xDB7D, 0x8E3D, 0xF5E1, 0x8E3E, 0xDB7E, + 0x8E3F, 0xDB80, 0x8E40, 0xF5DE, 0x8E41, 0xF5E4, 0x8E42, 0xF5E5, + 0x8E43, 0xDB81, 0x8E44, 0xCCE3, 0x8E45, 0xDB82, 0x8E46, 0xDB83, + 0x8E47, 0xE5BF, 0x8E48, 0xB5B8, 0x8E49, 0xF5E3, 0x8E4A, 0xF5E8, + 0x8E4B, 0xCCA3, 0x8E4C, 0xDB84, 0x8E4D, 0xDB85, 0x8E4E, 0xDB86, + 0x8E4F, 0xDB87, 0x8E50, 0xDB88, 0x8E51, 0xF5E6, 0x8E52, 0xF5E7, + 0x8E53, 0xDB89, 0x8E54, 0xDB8A, 0x8E55, 0xDB8B, 0x8E56, 0xDB8C, + 0x8E57, 0xDB8D, 0x8E58, 0xDB8E, 0x8E59, 0xF5BE, 0x8E5A, 0xDB8F, + 0x8E5B, 0xDB90, 0x8E5C, 0xDB91, 0x8E5D, 0xDB92, 0x8E5E, 0xDB93, + 0x8E5F, 0xDB94, 0x8E60, 0xDB95, 0x8E61, 0xDB96, 0x8E62, 0xDB97, + 0x8E63, 0xDB98, 0x8E64, 0xDB99, 0x8E65, 0xDB9A, 0x8E66, 0xB1C4, + 0x8E67, 0xDB9B, 0x8E68, 0xDB9C, 0x8E69, 0xF5BF, 0x8E6A, 0xDB9D, + 0x8E6B, 0xDB9E, 0x8E6C, 0xB5C5, 0x8E6D, 0xB2E4, 0x8E6E, 0xDB9F, + 0x8E6F, 0xF5EC, 0x8E70, 0xF5E9, 0x8E71, 0xDBA0, 0x8E72, 0xB6D7, + 0x8E73, 0xDC40, 0x8E74, 0xF5ED, 0x8E75, 0xDC41, 0x8E76, 0xF5EA, + 0x8E77, 0xDC42, 0x8E78, 0xDC43, 0x8E79, 0xDC44, 0x8E7A, 0xDC45, + 0x8E7B, 0xDC46, 0x8E7C, 0xF5EB, 0x8E7D, 0xDC47, 0x8E7E, 0xDC48, + 0x8E7F, 0xB4DA, 0x8E80, 0xDC49, 0x8E81, 0xD4EA, 0x8E82, 0xDC4A, + 0x8E83, 0xDC4B, 0x8E84, 0xDC4C, 0x8E85, 0xF5EE, 0x8E86, 0xDC4D, + 0x8E87, 0xB3F9, 0x8E88, 0xDC4E, 0x8E89, 0xDC4F, 0x8E8A, 0xDC50, + 0x8E8B, 0xDC51, 0x8E8C, 0xDC52, 0x8E8D, 0xDC53, 0x8E8E, 0xDC54, + 0x8E8F, 0xF5EF, 0x8E90, 0xF5F1, 0x8E91, 0xDC55, 0x8E92, 0xDC56, + 0x8E93, 0xDC57, 0x8E94, 0xF5F0, 0x8E95, 0xDC58, 0x8E96, 0xDC59, + 0x8E97, 0xDC5A, 0x8E98, 0xDC5B, 0x8E99, 0xDC5C, 0x8E9A, 0xDC5D, + 0x8E9B, 0xDC5E, 0x8E9C, 0xF5F2, 0x8E9D, 0xDC5F, 0x8E9E, 0xF5F3, + 0x8E9F, 0xDC60, 0x8EA0, 0xDC61, 0x8EA1, 0xDC62, 0x8EA2, 0xDC63, + 0x8EA3, 0xDC64, 0x8EA4, 0xDC65, 0x8EA5, 0xDC66, 0x8EA6, 0xDC67, + 0x8EA7, 0xDC68, 0x8EA8, 0xDC69, 0x8EA9, 0xDC6A, 0x8EAA, 0xDC6B, + 0x8EAB, 0xC9ED, 0x8EAC, 0xB9AA, 0x8EAD, 0xDC6C, 0x8EAE, 0xDC6D, + 0x8EAF, 0xC7FB, 0x8EB0, 0xDC6E, 0x8EB1, 0xDC6F, 0x8EB2, 0xB6E3, + 0x8EB3, 0xDC70, 0x8EB4, 0xDC71, 0x8EB5, 0xDC72, 0x8EB6, 0xDC73, + 0x8EB7, 0xDC74, 0x8EB8, 0xDC75, 0x8EB9, 0xDC76, 0x8EBA, 0xCCC9, + 0x8EBB, 0xDC77, 0x8EBC, 0xDC78, 0x8EBD, 0xDC79, 0x8EBE, 0xDC7A, + 0x8EBF, 0xDC7B, 0x8EC0, 0xDC7C, 0x8EC1, 0xDC7D, 0x8EC2, 0xDC7E, + 0x8EC3, 0xDC80, 0x8EC4, 0xDC81, 0x8EC5, 0xDC82, 0x8EC6, 0xDC83, + 0x8EC7, 0xDC84, 0x8EC8, 0xDC85, 0x8EC9, 0xDC86, 0x8ECA, 0xDC87, + 0x8ECB, 0xDC88, 0x8ECC, 0xDC89, 0x8ECD, 0xDC8A, 0x8ECE, 0xEAA6, + 0x8ECF, 0xDC8B, 0x8ED0, 0xDC8C, 0x8ED1, 0xDC8D, 0x8ED2, 0xDC8E, + 0x8ED3, 0xDC8F, 0x8ED4, 0xDC90, 0x8ED5, 0xDC91, 0x8ED6, 0xDC92, + 0x8ED7, 0xDC93, 0x8ED8, 0xDC94, 0x8ED9, 0xDC95, 0x8EDA, 0xDC96, + 0x8EDB, 0xDC97, 0x8EDC, 0xDC98, 0x8EDD, 0xDC99, 0x8EDE, 0xDC9A, + 0x8EDF, 0xDC9B, 0x8EE0, 0xDC9C, 0x8EE1, 0xDC9D, 0x8EE2, 0xDC9E, + 0x8EE3, 0xDC9F, 0x8EE4, 0xDCA0, 0x8EE5, 0xDD40, 0x8EE6, 0xDD41, + 0x8EE7, 0xDD42, 0x8EE8, 0xDD43, 0x8EE9, 0xDD44, 0x8EEA, 0xDD45, + 0x8EEB, 0xDD46, 0x8EEC, 0xDD47, 0x8EED, 0xDD48, 0x8EEE, 0xDD49, + 0x8EEF, 0xDD4A, 0x8EF0, 0xDD4B, 0x8EF1, 0xDD4C, 0x8EF2, 0xDD4D, + 0x8EF3, 0xDD4E, 0x8EF4, 0xDD4F, 0x8EF5, 0xDD50, 0x8EF6, 0xDD51, + 0x8EF7, 0xDD52, 0x8EF8, 0xDD53, 0x8EF9, 0xDD54, 0x8EFA, 0xDD55, + 0x8EFB, 0xDD56, 0x8EFC, 0xDD57, 0x8EFD, 0xDD58, 0x8EFE, 0xDD59, + 0x8EFF, 0xDD5A, 0x8F00, 0xDD5B, 0x8F01, 0xDD5C, 0x8F02, 0xDD5D, + 0x8F03, 0xDD5E, 0x8F04, 0xDD5F, 0x8F05, 0xDD60, 0x8F06, 0xDD61, + 0x8F07, 0xDD62, 0x8F08, 0xDD63, 0x8F09, 0xDD64, 0x8F0A, 0xDD65, + 0x8F0B, 0xDD66, 0x8F0C, 0xDD67, 0x8F0D, 0xDD68, 0x8F0E, 0xDD69, + 0x8F0F, 0xDD6A, 0x8F10, 0xDD6B, 0x8F11, 0xDD6C, 0x8F12, 0xDD6D, + 0x8F13, 0xDD6E, 0x8F14, 0xDD6F, 0x8F15, 0xDD70, 0x8F16, 0xDD71, + 0x8F17, 0xDD72, 0x8F18, 0xDD73, 0x8F19, 0xDD74, 0x8F1A, 0xDD75, + 0x8F1B, 0xDD76, 0x8F1C, 0xDD77, 0x8F1D, 0xDD78, 0x8F1E, 0xDD79, + 0x8F1F, 0xDD7A, 0x8F20, 0xDD7B, 0x8F21, 0xDD7C, 0x8F22, 0xDD7D, + 0x8F23, 0xDD7E, 0x8F24, 0xDD80, 0x8F25, 0xDD81, 0x8F26, 0xDD82, + 0x8F27, 0xDD83, 0x8F28, 0xDD84, 0x8F29, 0xDD85, 0x8F2A, 0xDD86, + 0x8F2B, 0xDD87, 0x8F2C, 0xDD88, 0x8F2D, 0xDD89, 0x8F2E, 0xDD8A, + 0x8F2F, 0xDD8B, 0x8F30, 0xDD8C, 0x8F31, 0xDD8D, 0x8F32, 0xDD8E, + 0x8F33, 0xDD8F, 0x8F34, 0xDD90, 0x8F35, 0xDD91, 0x8F36, 0xDD92, + 0x8F37, 0xDD93, 0x8F38, 0xDD94, 0x8F39, 0xDD95, 0x8F3A, 0xDD96, + 0x8F3B, 0xDD97, 0x8F3C, 0xDD98, 0x8F3D, 0xDD99, 0x8F3E, 0xDD9A, + 0x8F3F, 0xDD9B, 0x8F40, 0xDD9C, 0x8F41, 0xDD9D, 0x8F42, 0xDD9E, + 0x8F43, 0xDD9F, 0x8F44, 0xDDA0, 0x8F45, 0xDE40, 0x8F46, 0xDE41, + 0x8F47, 0xDE42, 0x8F48, 0xDE43, 0x8F49, 0xDE44, 0x8F4A, 0xDE45, + 0x8F4B, 0xDE46, 0x8F4C, 0xDE47, 0x8F4D, 0xDE48, 0x8F4E, 0xDE49, + 0x8F4F, 0xDE4A, 0x8F50, 0xDE4B, 0x8F51, 0xDE4C, 0x8F52, 0xDE4D, + 0x8F53, 0xDE4E, 0x8F54, 0xDE4F, 0x8F55, 0xDE50, 0x8F56, 0xDE51, + 0x8F57, 0xDE52, 0x8F58, 0xDE53, 0x8F59, 0xDE54, 0x8F5A, 0xDE55, + 0x8F5B, 0xDE56, 0x8F5C, 0xDE57, 0x8F5D, 0xDE58, 0x8F5E, 0xDE59, + 0x8F5F, 0xDE5A, 0x8F60, 0xDE5B, 0x8F61, 0xDE5C, 0x8F62, 0xDE5D, + 0x8F63, 0xDE5E, 0x8F64, 0xDE5F, 0x8F65, 0xDE60, 0x8F66, 0xB3B5, + 0x8F67, 0xD4FE, 0x8F68, 0xB9EC, 0x8F69, 0xD0F9, 0x8F6A, 0xDE61, + 0x8F6B, 0xE9ED, 0x8F6C, 0xD7AA, 0x8F6D, 0xE9EE, 0x8F6E, 0xC2D6, + 0x8F6F, 0xC8ED, 0x8F70, 0xBAE4, 0x8F71, 0xE9EF, 0x8F72, 0xE9F0, + 0x8F73, 0xE9F1, 0x8F74, 0xD6E1, 0x8F75, 0xE9F2, 0x8F76, 0xE9F3, + 0x8F77, 0xE9F5, 0x8F78, 0xE9F4, 0x8F79, 0xE9F6, 0x8F7A, 0xE9F7, + 0x8F7B, 0xC7E1, 0x8F7C, 0xE9F8, 0x8F7D, 0xD4D8, 0x8F7E, 0xE9F9, + 0x8F7F, 0xBDCE, 0x8F80, 0xDE62, 0x8F81, 0xE9FA, 0x8F82, 0xE9FB, + 0x8F83, 0xBDCF, 0x8F84, 0xE9FC, 0x8F85, 0xB8A8, 0x8F86, 0xC1BE, + 0x8F87, 0xE9FD, 0x8F88, 0xB1B2, 0x8F89, 0xBBD4, 0x8F8A, 0xB9F5, + 0x8F8B, 0xE9FE, 0x8F8C, 0xDE63, 0x8F8D, 0xEAA1, 0x8F8E, 0xEAA2, + 0x8F8F, 0xEAA3, 0x8F90, 0xB7F8, 0x8F91, 0xBCAD, 0x8F92, 0xDE64, + 0x8F93, 0xCAE4, 0x8F94, 0xE0CE, 0x8F95, 0xD4AF, 0x8F96, 0xCFBD, + 0x8F97, 0xD5B7, 0x8F98, 0xEAA4, 0x8F99, 0xD5DE, 0x8F9A, 0xEAA5, + 0x8F9B, 0xD0C1, 0x8F9C, 0xB9BC, 0x8F9D, 0xDE65, 0x8F9E, 0xB4C7, + 0x8F9F, 0xB1D9, 0x8FA0, 0xDE66, 0x8FA1, 0xDE67, 0x8FA2, 0xDE68, + 0x8FA3, 0xC0B1, 0x8FA4, 0xDE69, 0x8FA5, 0xDE6A, 0x8FA6, 0xDE6B, + 0x8FA7, 0xDE6C, 0x8FA8, 0xB1E6, 0x8FA9, 0xB1E7, 0x8FAA, 0xDE6D, + 0x8FAB, 0xB1E8, 0x8FAC, 0xDE6E, 0x8FAD, 0xDE6F, 0x8FAE, 0xDE70, + 0x8FAF, 0xDE71, 0x8FB0, 0xB3BD, 0x8FB1, 0xC8E8, 0x8FB2, 0xDE72, + 0x8FB3, 0xDE73, 0x8FB4, 0xDE74, 0x8FB5, 0xDE75, 0x8FB6, 0xE5C1, + 0x8FB7, 0xDE76, 0x8FB8, 0xDE77, 0x8FB9, 0xB1DF, 0x8FBA, 0xDE78, + 0x8FBB, 0xDE79, 0x8FBC, 0xDE7A, 0x8FBD, 0xC1C9, 0x8FBE, 0xB4EF, + 0x8FBF, 0xDE7B, 0x8FC0, 0xDE7C, 0x8FC1, 0xC7A8, 0x8FC2, 0xD3D8, + 0x8FC3, 0xDE7D, 0x8FC4, 0xC6F9, 0x8FC5, 0xD1B8, 0x8FC6, 0xDE7E, + 0x8FC7, 0xB9FD, 0x8FC8, 0xC2F5, 0x8FC9, 0xDE80, 0x8FCA, 0xDE81, + 0x8FCB, 0xDE82, 0x8FCC, 0xDE83, 0x8FCD, 0xDE84, 0x8FCE, 0xD3AD, + 0x8FCF, 0xDE85, 0x8FD0, 0xD4CB, 0x8FD1, 0xBDFC, 0x8FD2, 0xDE86, + 0x8FD3, 0xE5C2, 0x8FD4, 0xB7B5, 0x8FD5, 0xE5C3, 0x8FD6, 0xDE87, + 0x8FD7, 0xDE88, 0x8FD8, 0xBBB9, 0x8FD9, 0xD5E2, 0x8FDA, 0xDE89, + 0x8FDB, 0xBDF8, 0x8FDC, 0xD4B6, 0x8FDD, 0xCEA5, 0x8FDE, 0xC1AC, + 0x8FDF, 0xB3D9, 0x8FE0, 0xDE8A, 0x8FE1, 0xDE8B, 0x8FE2, 0xCCF6, + 0x8FE3, 0xDE8C, 0x8FE4, 0xE5C6, 0x8FE5, 0xE5C4, 0x8FE6, 0xE5C8, + 0x8FE7, 0xDE8D, 0x8FE8, 0xE5CA, 0x8FE9, 0xE5C7, 0x8FEA, 0xB5CF, + 0x8FEB, 0xC6C8, 0x8FEC, 0xDE8E, 0x8FED, 0xB5FC, 0x8FEE, 0xE5C5, + 0x8FEF, 0xDE8F, 0x8FF0, 0xCAF6, 0x8FF1, 0xDE90, 0x8FF2, 0xDE91, + 0x8FF3, 0xE5C9, 0x8FF4, 0xDE92, 0x8FF5, 0xDE93, 0x8FF6, 0xDE94, + 0x8FF7, 0xC3D4, 0x8FF8, 0xB1C5, 0x8FF9, 0xBCA3, 0x8FFA, 0xDE95, + 0x8FFB, 0xDE96, 0x8FFC, 0xDE97, 0x8FFD, 0xD7B7, 0x8FFE, 0xDE98, + 0x8FFF, 0xDE99, 0x9000, 0xCDCB, 0x9001, 0xCBCD, 0x9002, 0xCACA, + 0x9003, 0xCCD3, 0x9004, 0xE5CC, 0x9005, 0xE5CB, 0x9006, 0xC4E6, + 0x9007, 0xDE9A, 0x9008, 0xDE9B, 0x9009, 0xD1A1, 0x900A, 0xD1B7, + 0x900B, 0xE5CD, 0x900C, 0xDE9C, 0x900D, 0xE5D0, 0x900E, 0xDE9D, + 0x900F, 0xCDB8, 0x9010, 0xD6F0, 0x9011, 0xE5CF, 0x9012, 0xB5DD, + 0x9013, 0xDE9E, 0x9014, 0xCDBE, 0x9015, 0xDE9F, 0x9016, 0xE5D1, + 0x9017, 0xB6BA, 0x9018, 0xDEA0, 0x9019, 0xDF40, 0x901A, 0xCDA8, + 0x901B, 0xB9E4, 0x901C, 0xDF41, 0x901D, 0xCAC5, 0x901E, 0xB3D1, + 0x901F, 0xCBD9, 0x9020, 0xD4EC, 0x9021, 0xE5D2, 0x9022, 0xB7EA, + 0x9023, 0xDF42, 0x9024, 0xDF43, 0x9025, 0xDF44, 0x9026, 0xE5CE, + 0x9027, 0xDF45, 0x9028, 0xDF46, 0x9029, 0xDF47, 0x902A, 0xDF48, + 0x902B, 0xDF49, 0x902C, 0xDF4A, 0x902D, 0xE5D5, 0x902E, 0xB4FE, + 0x902F, 0xE5D6, 0x9030, 0xDF4B, 0x9031, 0xDF4C, 0x9032, 0xDF4D, + 0x9033, 0xDF4E, 0x9034, 0xDF4F, 0x9035, 0xE5D3, 0x9036, 0xE5D4, + 0x9037, 0xDF50, 0x9038, 0xD2DD, 0x9039, 0xDF51, 0x903A, 0xDF52, + 0x903B, 0xC2DF, 0x903C, 0xB1C6, 0x903D, 0xDF53, 0x903E, 0xD3E2, + 0x903F, 0xDF54, 0x9040, 0xDF55, 0x9041, 0xB6DD, 0x9042, 0xCBEC, + 0x9043, 0xDF56, 0x9044, 0xE5D7, 0x9045, 0xDF57, 0x9046, 0xDF58, + 0x9047, 0xD3F6, 0x9048, 0xDF59, 0x9049, 0xDF5A, 0x904A, 0xDF5B, + 0x904B, 0xDF5C, 0x904C, 0xDF5D, 0x904D, 0xB1E9, 0x904E, 0xDF5E, + 0x904F, 0xB6F4, 0x9050, 0xE5DA, 0x9051, 0xE5D8, 0x9052, 0xE5D9, + 0x9053, 0xB5C0, 0x9054, 0xDF5F, 0x9055, 0xDF60, 0x9056, 0xDF61, + 0x9057, 0xD2C5, 0x9058, 0xE5DC, 0x9059, 0xDF62, 0x905A, 0xDF63, + 0x905B, 0xE5DE, 0x905C, 0xDF64, 0x905D, 0xDF65, 0x905E, 0xDF66, + 0x905F, 0xDF67, 0x9060, 0xDF68, 0x9061, 0xDF69, 0x9062, 0xE5DD, + 0x9063, 0xC7B2, 0x9064, 0xDF6A, 0x9065, 0xD2A3, 0x9066, 0xDF6B, + 0x9067, 0xDF6C, 0x9068, 0xE5DB, 0x9069, 0xDF6D, 0x906A, 0xDF6E, + 0x906B, 0xDF6F, 0x906C, 0xDF70, 0x906D, 0xD4E2, 0x906E, 0xD5DA, + 0x906F, 0xDF71, 0x9070, 0xDF72, 0x9071, 0xDF73, 0x9072, 0xDF74, + 0x9073, 0xDF75, 0x9074, 0xE5E0, 0x9075, 0xD7F1, 0x9076, 0xDF76, + 0x9077, 0xDF77, 0x9078, 0xDF78, 0x9079, 0xDF79, 0x907A, 0xDF7A, + 0x907B, 0xDF7B, 0x907C, 0xDF7C, 0x907D, 0xE5E1, 0x907E, 0xDF7D, + 0x907F, 0xB1DC, 0x9080, 0xD1FB, 0x9081, 0xDF7E, 0x9082, 0xE5E2, + 0x9083, 0xE5E4, 0x9084, 0xDF80, 0x9085, 0xDF81, 0x9086, 0xDF82, + 0x9087, 0xDF83, 0x9088, 0xE5E3, 0x9089, 0xDF84, 0x908A, 0xDF85, + 0x908B, 0xE5E5, 0x908C, 0xDF86, 0x908D, 0xDF87, 0x908E, 0xDF88, + 0x908F, 0xDF89, 0x9090, 0xDF8A, 0x9091, 0xD2D8, 0x9092, 0xDF8B, + 0x9093, 0xB5CB, 0x9094, 0xDF8C, 0x9095, 0xE7DF, 0x9096, 0xDF8D, + 0x9097, 0xDAF5, 0x9098, 0xDF8E, 0x9099, 0xDAF8, 0x909A, 0xDF8F, + 0x909B, 0xDAF6, 0x909C, 0xDF90, 0x909D, 0xDAF7, 0x909E, 0xDF91, + 0x909F, 0xDF92, 0x90A0, 0xDF93, 0x90A1, 0xDAFA, 0x90A2, 0xD0CF, + 0x90A3, 0xC4C7, 0x90A4, 0xDF94, 0x90A5, 0xDF95, 0x90A6, 0xB0EE, + 0x90A7, 0xDF96, 0x90A8, 0xDF97, 0x90A9, 0xDF98, 0x90AA, 0xD0B0, + 0x90AB, 0xDF99, 0x90AC, 0xDAF9, 0x90AD, 0xDF9A, 0x90AE, 0xD3CA, + 0x90AF, 0xBAAA, 0x90B0, 0xDBA2, 0x90B1, 0xC7F1, 0x90B2, 0xDF9B, + 0x90B3, 0xDAFC, 0x90B4, 0xDAFB, 0x90B5, 0xC9DB, 0x90B6, 0xDAFD, + 0x90B7, 0xDF9C, 0x90B8, 0xDBA1, 0x90B9, 0xD7DE, 0x90BA, 0xDAFE, + 0x90BB, 0xC1DA, 0x90BC, 0xDF9D, 0x90BD, 0xDF9E, 0x90BE, 0xDBA5, + 0x90BF, 0xDF9F, 0x90C0, 0xDFA0, 0x90C1, 0xD3F4, 0x90C2, 0xE040, + 0x90C3, 0xE041, 0x90C4, 0xDBA7, 0x90C5, 0xDBA4, 0x90C6, 0xE042, + 0x90C7, 0xDBA8, 0x90C8, 0xE043, 0x90C9, 0xE044, 0x90CA, 0xBDBC, + 0x90CB, 0xE045, 0x90CC, 0xE046, 0x90CD, 0xE047, 0x90CE, 0xC0C9, + 0x90CF, 0xDBA3, 0x90D0, 0xDBA6, 0x90D1, 0xD6A3, 0x90D2, 0xE048, + 0x90D3, 0xDBA9, 0x90D4, 0xE049, 0x90D5, 0xE04A, 0x90D6, 0xE04B, + 0x90D7, 0xDBAD, 0x90D8, 0xE04C, 0x90D9, 0xE04D, 0x90DA, 0xE04E, + 0x90DB, 0xDBAE, 0x90DC, 0xDBAC, 0x90DD, 0xBAC2, 0x90DE, 0xE04F, + 0x90DF, 0xE050, 0x90E0, 0xE051, 0x90E1, 0xBFA4, 0x90E2, 0xDBAB, + 0x90E3, 0xE052, 0x90E4, 0xE053, 0x90E5, 0xE054, 0x90E6, 0xDBAA, + 0x90E7, 0xD4C7, 0x90E8, 0xB2BF, 0x90E9, 0xE055, 0x90EA, 0xE056, + 0x90EB, 0xDBAF, 0x90EC, 0xE057, 0x90ED, 0xB9F9, 0x90EE, 0xE058, + 0x90EF, 0xDBB0, 0x90F0, 0xE059, 0x90F1, 0xE05A, 0x90F2, 0xE05B, + 0x90F3, 0xE05C, 0x90F4, 0xB3BB, 0x90F5, 0xE05D, 0x90F6, 0xE05E, + 0x90F7, 0xE05F, 0x90F8, 0xB5A6, 0x90F9, 0xE060, 0x90FA, 0xE061, + 0x90FB, 0xE062, 0x90FC, 0xE063, 0x90FD, 0xB6BC, 0x90FE, 0xDBB1, + 0x90FF, 0xE064, 0x9100, 0xE065, 0x9101, 0xE066, 0x9102, 0xB6F5, + 0x9103, 0xE067, 0x9104, 0xDBB2, 0x9105, 0xE068, 0x9106, 0xE069, + 0x9107, 0xE06A, 0x9108, 0xE06B, 0x9109, 0xE06C, 0x910A, 0xE06D, + 0x910B, 0xE06E, 0x910C, 0xE06F, 0x910D, 0xE070, 0x910E, 0xE071, + 0x910F, 0xE072, 0x9110, 0xE073, 0x9111, 0xE074, 0x9112, 0xE075, + 0x9113, 0xE076, 0x9114, 0xE077, 0x9115, 0xE078, 0x9116, 0xE079, + 0x9117, 0xE07A, 0x9118, 0xE07B, 0x9119, 0xB1C9, 0x911A, 0xE07C, + 0x911B, 0xE07D, 0x911C, 0xE07E, 0x911D, 0xE080, 0x911E, 0xDBB4, + 0x911F, 0xE081, 0x9120, 0xE082, 0x9121, 0xE083, 0x9122, 0xDBB3, + 0x9123, 0xDBB5, 0x9124, 0xE084, 0x9125, 0xE085, 0x9126, 0xE086, + 0x9127, 0xE087, 0x9128, 0xE088, 0x9129, 0xE089, 0x912A, 0xE08A, + 0x912B, 0xE08B, 0x912C, 0xE08C, 0x912D, 0xE08D, 0x912E, 0xE08E, + 0x912F, 0xDBB7, 0x9130, 0xE08F, 0x9131, 0xDBB6, 0x9132, 0xE090, + 0x9133, 0xE091, 0x9134, 0xE092, 0x9135, 0xE093, 0x9136, 0xE094, + 0x9137, 0xE095, 0x9138, 0xE096, 0x9139, 0xDBB8, 0x913A, 0xE097, + 0x913B, 0xE098, 0x913C, 0xE099, 0x913D, 0xE09A, 0x913E, 0xE09B, + 0x913F, 0xE09C, 0x9140, 0xE09D, 0x9141, 0xE09E, 0x9142, 0xE09F, + 0x9143, 0xDBB9, 0x9144, 0xE0A0, 0x9145, 0xE140, 0x9146, 0xDBBA, + 0x9147, 0xE141, 0x9148, 0xE142, 0x9149, 0xD3CF, 0x914A, 0xF4FA, + 0x914B, 0xC7F5, 0x914C, 0xD7C3, 0x914D, 0xC5E4, 0x914E, 0xF4FC, + 0x914F, 0xF4FD, 0x9150, 0xF4FB, 0x9151, 0xE143, 0x9152, 0xBEC6, + 0x9153, 0xE144, 0x9154, 0xE145, 0x9155, 0xE146, 0x9156, 0xE147, + 0x9157, 0xD0EF, 0x9158, 0xE148, 0x9159, 0xE149, 0x915A, 0xB7D3, + 0x915B, 0xE14A, 0x915C, 0xE14B, 0x915D, 0xD4CD, 0x915E, 0xCCAA, + 0x915F, 0xE14C, 0x9160, 0xE14D, 0x9161, 0xF5A2, 0x9162, 0xF5A1, + 0x9163, 0xBAA8, 0x9164, 0xF4FE, 0x9165, 0xCBD6, 0x9166, 0xE14E, + 0x9167, 0xE14F, 0x9168, 0xE150, 0x9169, 0xF5A4, 0x916A, 0xC0D2, + 0x916B, 0xE151, 0x916C, 0xB3EA, 0x916D, 0xE152, 0x916E, 0xCDAA, + 0x916F, 0xF5A5, 0x9170, 0xF5A3, 0x9171, 0xBDB4, 0x9172, 0xF5A8, + 0x9173, 0xE153, 0x9174, 0xF5A9, 0x9175, 0xBDCD, 0x9176, 0xC3B8, + 0x9177, 0xBFE1, 0x9178, 0xCBE1, 0x9179, 0xF5AA, 0x917A, 0xE154, + 0x917B, 0xE155, 0x917C, 0xE156, 0x917D, 0xF5A6, 0x917E, 0xF5A7, + 0x917F, 0xC4F0, 0x9180, 0xE157, 0x9181, 0xE158, 0x9182, 0xE159, + 0x9183, 0xE15A, 0x9184, 0xE15B, 0x9185, 0xF5AC, 0x9186, 0xE15C, + 0x9187, 0xB4BC, 0x9188, 0xE15D, 0x9189, 0xD7ED, 0x918A, 0xE15E, + 0x918B, 0xB4D7, 0x918C, 0xF5AB, 0x918D, 0xF5AE, 0x918E, 0xE15F, + 0x918F, 0xE160, 0x9190, 0xF5AD, 0x9191, 0xF5AF, 0x9192, 0xD0D1, + 0x9193, 0xE161, 0x9194, 0xE162, 0x9195, 0xE163, 0x9196, 0xE164, + 0x9197, 0xE165, 0x9198, 0xE166, 0x9199, 0xE167, 0x919A, 0xC3D1, + 0x919B, 0xC8A9, 0x919C, 0xE168, 0x919D, 0xE169, 0x919E, 0xE16A, + 0x919F, 0xE16B, 0x91A0, 0xE16C, 0x91A1, 0xE16D, 0x91A2, 0xF5B0, + 0x91A3, 0xF5B1, 0x91A4, 0xE16E, 0x91A5, 0xE16F, 0x91A6, 0xE170, + 0x91A7, 0xE171, 0x91A8, 0xE172, 0x91A9, 0xE173, 0x91AA, 0xF5B2, + 0x91AB, 0xE174, 0x91AC, 0xE175, 0x91AD, 0xF5B3, 0x91AE, 0xF5B4, + 0x91AF, 0xF5B5, 0x91B0, 0xE176, 0x91B1, 0xE177, 0x91B2, 0xE178, + 0x91B3, 0xE179, 0x91B4, 0xF5B7, 0x91B5, 0xF5B6, 0x91B6, 0xE17A, + 0x91B7, 0xE17B, 0x91B8, 0xE17C, 0x91B9, 0xE17D, 0x91BA, 0xF5B8, + 0x91BB, 0xE17E, 0x91BC, 0xE180, 0x91BD, 0xE181, 0x91BE, 0xE182, + 0x91BF, 0xE183, 0x91C0, 0xE184, 0x91C1, 0xE185, 0x91C2, 0xE186, + 0x91C3, 0xE187, 0x91C4, 0xE188, 0x91C5, 0xE189, 0x91C6, 0xE18A, + 0x91C7, 0xB2C9, 0x91C8, 0xE18B, 0x91C9, 0xD3D4, 0x91CA, 0xCACD, + 0x91CB, 0xE18C, 0x91CC, 0xC0EF, 0x91CD, 0xD6D8, 0x91CE, 0xD2B0, + 0x91CF, 0xC1BF, 0x91D0, 0xE18D, 0x91D1, 0xBDF0, 0x91D2, 0xE18E, + 0x91D3, 0xE18F, 0x91D4, 0xE190, 0x91D5, 0xE191, 0x91D6, 0xE192, + 0x91D7, 0xE193, 0x91D8, 0xE194, 0x91D9, 0xE195, 0x91DA, 0xE196, + 0x91DB, 0xE197, 0x91DC, 0xB8AA, 0x91DD, 0xE198, 0x91DE, 0xE199, + 0x91DF, 0xE19A, 0x91E0, 0xE19B, 0x91E1, 0xE19C, 0x91E2, 0xE19D, + 0x91E3, 0xE19E, 0x91E4, 0xE19F, 0x91E5, 0xE1A0, 0x91E6, 0xE240, + 0x91E7, 0xE241, 0x91E8, 0xE242, 0x91E9, 0xE243, 0x91EA, 0xE244, + 0x91EB, 0xE245, 0x91EC, 0xE246, 0x91ED, 0xE247, 0x91EE, 0xE248, + 0x91EF, 0xE249, 0x91F0, 0xE24A, 0x91F1, 0xE24B, 0x91F2, 0xE24C, + 0x91F3, 0xE24D, 0x91F4, 0xE24E, 0x91F5, 0xE24F, 0x91F6, 0xE250, + 0x91F7, 0xE251, 0x91F8, 0xE252, 0x91F9, 0xE253, 0x91FA, 0xE254, + 0x91FB, 0xE255, 0x91FC, 0xE256, 0x91FD, 0xE257, 0x91FE, 0xE258, + 0x91FF, 0xE259, 0x9200, 0xE25A, 0x9201, 0xE25B, 0x9202, 0xE25C, + 0x9203, 0xE25D, 0x9204, 0xE25E, 0x9205, 0xE25F, 0x9206, 0xE260, + 0x9207, 0xE261, 0x9208, 0xE262, 0x9209, 0xE263, 0x920A, 0xE264, + 0x920B, 0xE265, 0x920C, 0xE266, 0x920D, 0xE267, 0x920E, 0xE268, + 0x920F, 0xE269, 0x9210, 0xE26A, 0x9211, 0xE26B, 0x9212, 0xE26C, + 0x9213, 0xE26D, 0x9214, 0xE26E, 0x9215, 0xE26F, 0x9216, 0xE270, + 0x9217, 0xE271, 0x9218, 0xE272, 0x9219, 0xE273, 0x921A, 0xE274, + 0x921B, 0xE275, 0x921C, 0xE276, 0x921D, 0xE277, 0x921E, 0xE278, + 0x921F, 0xE279, 0x9220, 0xE27A, 0x9221, 0xE27B, 0x9222, 0xE27C, + 0x9223, 0xE27D, 0x9224, 0xE27E, 0x9225, 0xE280, 0x9226, 0xE281, + 0x9227, 0xE282, 0x9228, 0xE283, 0x9229, 0xE284, 0x922A, 0xE285, + 0x922B, 0xE286, 0x922C, 0xE287, 0x922D, 0xE288, 0x922E, 0xE289, + 0x922F, 0xE28A, 0x9230, 0xE28B, 0x9231, 0xE28C, 0x9232, 0xE28D, + 0x9233, 0xE28E, 0x9234, 0xE28F, 0x9235, 0xE290, 0x9236, 0xE291, + 0x9237, 0xE292, 0x9238, 0xE293, 0x9239, 0xE294, 0x923A, 0xE295, + 0x923B, 0xE296, 0x923C, 0xE297, 0x923D, 0xE298, 0x923E, 0xE299, + 0x923F, 0xE29A, 0x9240, 0xE29B, 0x9241, 0xE29C, 0x9242, 0xE29D, + 0x9243, 0xE29E, 0x9244, 0xE29F, 0x9245, 0xE2A0, 0x9246, 0xE340, + 0x9247, 0xE341, 0x9248, 0xE342, 0x9249, 0xE343, 0x924A, 0xE344, + 0x924B, 0xE345, 0x924C, 0xE346, 0x924D, 0xE347, 0x924E, 0xE348, + 0x924F, 0xE349, 0x9250, 0xE34A, 0x9251, 0xE34B, 0x9252, 0xE34C, + 0x9253, 0xE34D, 0x9254, 0xE34E, 0x9255, 0xE34F, 0x9256, 0xE350, + 0x9257, 0xE351, 0x9258, 0xE352, 0x9259, 0xE353, 0x925A, 0xE354, + 0x925B, 0xE355, 0x925C, 0xE356, 0x925D, 0xE357, 0x925E, 0xE358, + 0x925F, 0xE359, 0x9260, 0xE35A, 0x9261, 0xE35B, 0x9262, 0xE35C, + 0x9263, 0xE35D, 0x9264, 0xE35E, 0x9265, 0xE35F, 0x9266, 0xE360, + 0x9267, 0xE361, 0x9268, 0xE362, 0x9269, 0xE363, 0x926A, 0xE364, + 0x926B, 0xE365, 0x926C, 0xE366, 0x926D, 0xE367, 0x926E, 0xE368, + 0x926F, 0xE369, 0x9270, 0xE36A, 0x9271, 0xE36B, 0x9272, 0xE36C, + 0x9273, 0xE36D, 0x9274, 0xBCF8, 0x9275, 0xE36E, 0x9276, 0xE36F, + 0x9277, 0xE370, 0x9278, 0xE371, 0x9279, 0xE372, 0x927A, 0xE373, + 0x927B, 0xE374, 0x927C, 0xE375, 0x927D, 0xE376, 0x927E, 0xE377, + 0x927F, 0xE378, 0x9280, 0xE379, 0x9281, 0xE37A, 0x9282, 0xE37B, + 0x9283, 0xE37C, 0x9284, 0xE37D, 0x9285, 0xE37E, 0x9286, 0xE380, + 0x9287, 0xE381, 0x9288, 0xE382, 0x9289, 0xE383, 0x928A, 0xE384, + 0x928B, 0xE385, 0x928C, 0xE386, 0x928D, 0xE387, 0x928E, 0xF6C6, + 0x928F, 0xE388, 0x9290, 0xE389, 0x9291, 0xE38A, 0x9292, 0xE38B, + 0x9293, 0xE38C, 0x9294, 0xE38D, 0x9295, 0xE38E, 0x9296, 0xE38F, + 0x9297, 0xE390, 0x9298, 0xE391, 0x9299, 0xE392, 0x929A, 0xE393, + 0x929B, 0xE394, 0x929C, 0xE395, 0x929D, 0xE396, 0x929E, 0xE397, + 0x929F, 0xE398, 0x92A0, 0xE399, 0x92A1, 0xE39A, 0x92A2, 0xE39B, + 0x92A3, 0xE39C, 0x92A4, 0xE39D, 0x92A5, 0xE39E, 0x92A6, 0xE39F, + 0x92A7, 0xE3A0, 0x92A8, 0xE440, 0x92A9, 0xE441, 0x92AA, 0xE442, + 0x92AB, 0xE443, 0x92AC, 0xE444, 0x92AD, 0xE445, 0x92AE, 0xF6C7, + 0x92AF, 0xE446, 0x92B0, 0xE447, 0x92B1, 0xE448, 0x92B2, 0xE449, + 0x92B3, 0xE44A, 0x92B4, 0xE44B, 0x92B5, 0xE44C, 0x92B6, 0xE44D, + 0x92B7, 0xE44E, 0x92B8, 0xE44F, 0x92B9, 0xE450, 0x92BA, 0xE451, + 0x92BB, 0xE452, 0x92BC, 0xE453, 0x92BD, 0xE454, 0x92BE, 0xE455, + 0x92BF, 0xE456, 0x92C0, 0xE457, 0x92C1, 0xE458, 0x92C2, 0xE459, + 0x92C3, 0xE45A, 0x92C4, 0xE45B, 0x92C5, 0xE45C, 0x92C6, 0xE45D, + 0x92C7, 0xE45E, 0x92C8, 0xF6C8, 0x92C9, 0xE45F, 0x92CA, 0xE460, + 0x92CB, 0xE461, 0x92CC, 0xE462, 0x92CD, 0xE463, 0x92CE, 0xE464, + 0x92CF, 0xE465, 0x92D0, 0xE466, 0x92D1, 0xE467, 0x92D2, 0xE468, + 0x92D3, 0xE469, 0x92D4, 0xE46A, 0x92D5, 0xE46B, 0x92D6, 0xE46C, + 0x92D7, 0xE46D, 0x92D8, 0xE46E, 0x92D9, 0xE46F, 0x92DA, 0xE470, + 0x92DB, 0xE471, 0x92DC, 0xE472, 0x92DD, 0xE473, 0x92DE, 0xE474, + 0x92DF, 0xE475, 0x92E0, 0xE476, 0x92E1, 0xE477, 0x92E2, 0xE478, + 0x92E3, 0xE479, 0x92E4, 0xE47A, 0x92E5, 0xE47B, 0x92E6, 0xE47C, + 0x92E7, 0xE47D, 0x92E8, 0xE47E, 0x92E9, 0xE480, 0x92EA, 0xE481, + 0x92EB, 0xE482, 0x92EC, 0xE483, 0x92ED, 0xE484, 0x92EE, 0xE485, + 0x92EF, 0xE486, 0x92F0, 0xE487, 0x92F1, 0xE488, 0x92F2, 0xE489, + 0x92F3, 0xE48A, 0x92F4, 0xE48B, 0x92F5, 0xE48C, 0x92F6, 0xE48D, + 0x92F7, 0xE48E, 0x92F8, 0xE48F, 0x92F9, 0xE490, 0x92FA, 0xE491, + 0x92FB, 0xE492, 0x92FC, 0xE493, 0x92FD, 0xE494, 0x92FE, 0xE495, + 0x92FF, 0xE496, 0x9300, 0xE497, 0x9301, 0xE498, 0x9302, 0xE499, + 0x9303, 0xE49A, 0x9304, 0xE49B, 0x9305, 0xE49C, 0x9306, 0xE49D, + 0x9307, 0xE49E, 0x9308, 0xE49F, 0x9309, 0xE4A0, 0x930A, 0xE540, + 0x930B, 0xE541, 0x930C, 0xE542, 0x930D, 0xE543, 0x930E, 0xE544, + 0x930F, 0xE545, 0x9310, 0xE546, 0x9311, 0xE547, 0x9312, 0xE548, + 0x9313, 0xE549, 0x9314, 0xE54A, 0x9315, 0xE54B, 0x9316, 0xE54C, + 0x9317, 0xE54D, 0x9318, 0xE54E, 0x9319, 0xE54F, 0x931A, 0xE550, + 0x931B, 0xE551, 0x931C, 0xE552, 0x931D, 0xE553, 0x931E, 0xE554, + 0x931F, 0xE555, 0x9320, 0xE556, 0x9321, 0xE557, 0x9322, 0xE558, + 0x9323, 0xE559, 0x9324, 0xE55A, 0x9325, 0xE55B, 0x9326, 0xE55C, + 0x9327, 0xE55D, 0x9328, 0xE55E, 0x9329, 0xE55F, 0x932A, 0xE560, + 0x932B, 0xE561, 0x932C, 0xE562, 0x932D, 0xE563, 0x932E, 0xE564, + 0x932F, 0xE565, 0x9330, 0xE566, 0x9331, 0xE567, 0x9332, 0xE568, + 0x9333, 0xE569, 0x9334, 0xE56A, 0x9335, 0xE56B, 0x9336, 0xE56C, + 0x9337, 0xE56D, 0x9338, 0xE56E, 0x9339, 0xE56F, 0x933A, 0xE570, + 0x933B, 0xE571, 0x933C, 0xE572, 0x933D, 0xE573, 0x933E, 0xF6C9, + 0x933F, 0xE574, 0x9340, 0xE575, 0x9341, 0xE576, 0x9342, 0xE577, + 0x9343, 0xE578, 0x9344, 0xE579, 0x9345, 0xE57A, 0x9346, 0xE57B, + 0x9347, 0xE57C, 0x9348, 0xE57D, 0x9349, 0xE57E, 0x934A, 0xE580, + 0x934B, 0xE581, 0x934C, 0xE582, 0x934D, 0xE583, 0x934E, 0xE584, + 0x934F, 0xE585, 0x9350, 0xE586, 0x9351, 0xE587, 0x9352, 0xE588, + 0x9353, 0xE589, 0x9354, 0xE58A, 0x9355, 0xE58B, 0x9356, 0xE58C, + 0x9357, 0xE58D, 0x9358, 0xE58E, 0x9359, 0xE58F, 0x935A, 0xE590, + 0x935B, 0xE591, 0x935C, 0xE592, 0x935D, 0xE593, 0x935E, 0xE594, + 0x935F, 0xE595, 0x9360, 0xE596, 0x9361, 0xE597, 0x9362, 0xE598, + 0x9363, 0xE599, 0x9364, 0xE59A, 0x9365, 0xE59B, 0x9366, 0xE59C, + 0x9367, 0xE59D, 0x9368, 0xE59E, 0x9369, 0xE59F, 0x936A, 0xF6CA, + 0x936B, 0xE5A0, 0x936C, 0xE640, 0x936D, 0xE641, 0x936E, 0xE642, + 0x936F, 0xE643, 0x9370, 0xE644, 0x9371, 0xE645, 0x9372, 0xE646, + 0x9373, 0xE647, 0x9374, 0xE648, 0x9375, 0xE649, 0x9376, 0xE64A, + 0x9377, 0xE64B, 0x9378, 0xE64C, 0x9379, 0xE64D, 0x937A, 0xE64E, + 0x937B, 0xE64F, 0x937C, 0xE650, 0x937D, 0xE651, 0x937E, 0xE652, + 0x937F, 0xE653, 0x9380, 0xE654, 0x9381, 0xE655, 0x9382, 0xE656, + 0x9383, 0xE657, 0x9384, 0xE658, 0x9385, 0xE659, 0x9386, 0xE65A, + 0x9387, 0xE65B, 0x9388, 0xE65C, 0x9389, 0xE65D, 0x938A, 0xE65E, + 0x938B, 0xE65F, 0x938C, 0xE660, 0x938D, 0xE661, 0x938E, 0xE662, + 0x938F, 0xF6CC, 0x9390, 0xE663, 0x9391, 0xE664, 0x9392, 0xE665, + 0x9393, 0xE666, 0x9394, 0xE667, 0x9395, 0xE668, 0x9396, 0xE669, + 0x9397, 0xE66A, 0x9398, 0xE66B, 0x9399, 0xE66C, 0x939A, 0xE66D, + 0x939B, 0xE66E, 0x939C, 0xE66F, 0x939D, 0xE670, 0x939E, 0xE671, + 0x939F, 0xE672, 0x93A0, 0xE673, 0x93A1, 0xE674, 0x93A2, 0xE675, + 0x93A3, 0xE676, 0x93A4, 0xE677, 0x93A5, 0xE678, 0x93A6, 0xE679, + 0x93A7, 0xE67A, 0x93A8, 0xE67B, 0x93A9, 0xE67C, 0x93AA, 0xE67D, + 0x93AB, 0xE67E, 0x93AC, 0xE680, 0x93AD, 0xE681, 0x93AE, 0xE682, + 0x93AF, 0xE683, 0x93B0, 0xE684, 0x93B1, 0xE685, 0x93B2, 0xE686, + 0x93B3, 0xE687, 0x93B4, 0xE688, 0x93B5, 0xE689, 0x93B6, 0xE68A, + 0x93B7, 0xE68B, 0x93B8, 0xE68C, 0x93B9, 0xE68D, 0x93BA, 0xE68E, + 0x93BB, 0xE68F, 0x93BC, 0xE690, 0x93BD, 0xE691, 0x93BE, 0xE692, + 0x93BF, 0xE693, 0x93C0, 0xE694, 0x93C1, 0xE695, 0x93C2, 0xE696, + 0x93C3, 0xE697, 0x93C4, 0xE698, 0x93C5, 0xE699, 0x93C6, 0xE69A, + 0x93C7, 0xE69B, 0x93C8, 0xE69C, 0x93C9, 0xE69D, 0x93CA, 0xF6CB, + 0x93CB, 0xE69E, 0x93CC, 0xE69F, 0x93CD, 0xE6A0, 0x93CE, 0xE740, + 0x93CF, 0xE741, 0x93D0, 0xE742, 0x93D1, 0xE743, 0x93D2, 0xE744, + 0x93D3, 0xE745, 0x93D4, 0xE746, 0x93D5, 0xE747, 0x93D6, 0xF7E9, + 0x93D7, 0xE748, 0x93D8, 0xE749, 0x93D9, 0xE74A, 0x93DA, 0xE74B, + 0x93DB, 0xE74C, 0x93DC, 0xE74D, 0x93DD, 0xE74E, 0x93DE, 0xE74F, + 0x93DF, 0xE750, 0x93E0, 0xE751, 0x93E1, 0xE752, 0x93E2, 0xE753, + 0x93E3, 0xE754, 0x93E4, 0xE755, 0x93E5, 0xE756, 0x93E6, 0xE757, + 0x93E7, 0xE758, 0x93E8, 0xE759, 0x93E9, 0xE75A, 0x93EA, 0xE75B, + 0x93EB, 0xE75C, 0x93EC, 0xE75D, 0x93ED, 0xE75E, 0x93EE, 0xE75F, + 0x93EF, 0xE760, 0x93F0, 0xE761, 0x93F1, 0xE762, 0x93F2, 0xE763, + 0x93F3, 0xE764, 0x93F4, 0xE765, 0x93F5, 0xE766, 0x93F6, 0xE767, + 0x93F7, 0xE768, 0x93F8, 0xE769, 0x93F9, 0xE76A, 0x93FA, 0xE76B, + 0x93FB, 0xE76C, 0x93FC, 0xE76D, 0x93FD, 0xE76E, 0x93FE, 0xE76F, + 0x93FF, 0xE770, 0x9400, 0xE771, 0x9401, 0xE772, 0x9402, 0xE773, + 0x9403, 0xE774, 0x9404, 0xE775, 0x9405, 0xE776, 0x9406, 0xE777, + 0x9407, 0xE778, 0x9408, 0xE779, 0x9409, 0xE77A, 0x940A, 0xE77B, + 0x940B, 0xE77C, 0x940C, 0xE77D, 0x940D, 0xE77E, 0x940E, 0xE780, + 0x940F, 0xE781, 0x9410, 0xE782, 0x9411, 0xE783, 0x9412, 0xE784, + 0x9413, 0xE785, 0x9414, 0xE786, 0x9415, 0xE787, 0x9416, 0xE788, + 0x9417, 0xE789, 0x9418, 0xE78A, 0x9419, 0xE78B, 0x941A, 0xE78C, + 0x941B, 0xE78D, 0x941C, 0xE78E, 0x941D, 0xE78F, 0x941E, 0xE790, + 0x941F, 0xE791, 0x9420, 0xE792, 0x9421, 0xE793, 0x9422, 0xE794, + 0x9423, 0xE795, 0x9424, 0xE796, 0x9425, 0xE797, 0x9426, 0xE798, + 0x9427, 0xE799, 0x9428, 0xE79A, 0x9429, 0xE79B, 0x942A, 0xE79C, + 0x942B, 0xE79D, 0x942C, 0xE79E, 0x942D, 0xE79F, 0x942E, 0xE7A0, + 0x942F, 0xE840, 0x9430, 0xE841, 0x9431, 0xE842, 0x9432, 0xE843, + 0x9433, 0xE844, 0x9434, 0xE845, 0x9435, 0xE846, 0x9436, 0xE847, + 0x9437, 0xE848, 0x9438, 0xE849, 0x9439, 0xE84A, 0x943A, 0xE84B, + 0x943B, 0xE84C, 0x943C, 0xE84D, 0x943D, 0xE84E, 0x943E, 0xF6CD, + 0x943F, 0xE84F, 0x9440, 0xE850, 0x9441, 0xE851, 0x9442, 0xE852, + 0x9443, 0xE853, 0x9444, 0xE854, 0x9445, 0xE855, 0x9446, 0xE856, + 0x9447, 0xE857, 0x9448, 0xE858, 0x9449, 0xE859, 0x944A, 0xE85A, + 0x944B, 0xE85B, 0x944C, 0xE85C, 0x944D, 0xE85D, 0x944E, 0xE85E, + 0x944F, 0xE85F, 0x9450, 0xE860, 0x9451, 0xE861, 0x9452, 0xE862, + 0x9453, 0xE863, 0x9454, 0xE864, 0x9455, 0xE865, 0x9456, 0xE866, + 0x9457, 0xE867, 0x9458, 0xE868, 0x9459, 0xE869, 0x945A, 0xE86A, + 0x945B, 0xE86B, 0x945C, 0xE86C, 0x945D, 0xE86D, 0x945E, 0xE86E, + 0x945F, 0xE86F, 0x9460, 0xE870, 0x9461, 0xE871, 0x9462, 0xE872, + 0x9463, 0xE873, 0x9464, 0xE874, 0x9465, 0xE875, 0x9466, 0xE876, + 0x9467, 0xE877, 0x9468, 0xE878, 0x9469, 0xE879, 0x946A, 0xE87A, + 0x946B, 0xF6CE, 0x946C, 0xE87B, 0x946D, 0xE87C, 0x946E, 0xE87D, + 0x946F, 0xE87E, 0x9470, 0xE880, 0x9471, 0xE881, 0x9472, 0xE882, + 0x9473, 0xE883, 0x9474, 0xE884, 0x9475, 0xE885, 0x9476, 0xE886, + 0x9477, 0xE887, 0x9478, 0xE888, 0x9479, 0xE889, 0x947A, 0xE88A, + 0x947B, 0xE88B, 0x947C, 0xE88C, 0x947D, 0xE88D, 0x947E, 0xE88E, + 0x947F, 0xE88F, 0x9480, 0xE890, 0x9481, 0xE891, 0x9482, 0xE892, + 0x9483, 0xE893, 0x9484, 0xE894, 0x9485, 0xEEC4, 0x9486, 0xEEC5, + 0x9487, 0xEEC6, 0x9488, 0xD5EB, 0x9489, 0xB6A4, 0x948A, 0xEEC8, + 0x948B, 0xEEC7, 0x948C, 0xEEC9, 0x948D, 0xEECA, 0x948E, 0xC7A5, + 0x948F, 0xEECB, 0x9490, 0xEECC, 0x9491, 0xE895, 0x9492, 0xB7B0, + 0x9493, 0xB5F6, 0x9494, 0xEECD, 0x9495, 0xEECF, 0x9496, 0xE896, + 0x9497, 0xEECE, 0x9498, 0xE897, 0x9499, 0xB8C6, 0x949A, 0xEED0, + 0x949B, 0xEED1, 0x949C, 0xEED2, 0x949D, 0xB6DB, 0x949E, 0xB3AE, + 0x949F, 0xD6D3, 0x94A0, 0xC4C6, 0x94A1, 0xB1B5, 0x94A2, 0xB8D6, + 0x94A3, 0xEED3, 0x94A4, 0xEED4, 0x94A5, 0xD4BF, 0x94A6, 0xC7D5, + 0x94A7, 0xBEFB, 0x94A8, 0xCED9, 0x94A9, 0xB9B3, 0x94AA, 0xEED6, + 0x94AB, 0xEED5, 0x94AC, 0xEED8, 0x94AD, 0xEED7, 0x94AE, 0xC5A5, + 0x94AF, 0xEED9, 0x94B0, 0xEEDA, 0x94B1, 0xC7AE, 0x94B2, 0xEEDB, + 0x94B3, 0xC7AF, 0x94B4, 0xEEDC, 0x94B5, 0xB2A7, 0x94B6, 0xEEDD, + 0x94B7, 0xEEDE, 0x94B8, 0xEEDF, 0x94B9, 0xEEE0, 0x94BA, 0xEEE1, + 0x94BB, 0xD7EA, 0x94BC, 0xEEE2, 0x94BD, 0xEEE3, 0x94BE, 0xBCD8, + 0x94BF, 0xEEE4, 0x94C0, 0xD3CB, 0x94C1, 0xCCFA, 0x94C2, 0xB2AC, + 0x94C3, 0xC1E5, 0x94C4, 0xEEE5, 0x94C5, 0xC7A6, 0x94C6, 0xC3AD, + 0x94C7, 0xE898, 0x94C8, 0xEEE6, 0x94C9, 0xEEE7, 0x94CA, 0xEEE8, + 0x94CB, 0xEEE9, 0x94CC, 0xEEEA, 0x94CD, 0xEEEB, 0x94CE, 0xEEEC, + 0x94CF, 0xE899, 0x94D0, 0xEEED, 0x94D1, 0xEEEE, 0x94D2, 0xEEEF, + 0x94D3, 0xE89A, 0x94D4, 0xE89B, 0x94D5, 0xEEF0, 0x94D6, 0xEEF1, + 0x94D7, 0xEEF2, 0x94D8, 0xEEF4, 0x94D9, 0xEEF3, 0x94DA, 0xE89C, + 0x94DB, 0xEEF5, 0x94DC, 0xCDAD, 0x94DD, 0xC2C1, 0x94DE, 0xEEF6, + 0x94DF, 0xEEF7, 0x94E0, 0xEEF8, 0x94E1, 0xD5A1, 0x94E2, 0xEEF9, + 0x94E3, 0xCFB3, 0x94E4, 0xEEFA, 0x94E5, 0xEEFB, 0x94E6, 0xE89D, + 0x94E7, 0xEEFC, 0x94E8, 0xEEFD, 0x94E9, 0xEFA1, 0x94EA, 0xEEFE, + 0x94EB, 0xEFA2, 0x94EC, 0xB8F5, 0x94ED, 0xC3FA, 0x94EE, 0xEFA3, + 0x94EF, 0xEFA4, 0x94F0, 0xBDC2, 0x94F1, 0xD2BF, 0x94F2, 0xB2F9, + 0x94F3, 0xEFA5, 0x94F4, 0xEFA6, 0x94F5, 0xEFA7, 0x94F6, 0xD2F8, + 0x94F7, 0xEFA8, 0x94F8, 0xD6FD, 0x94F9, 0xEFA9, 0x94FA, 0xC6CC, + 0x94FB, 0xE89E, 0x94FC, 0xEFAA, 0x94FD, 0xEFAB, 0x94FE, 0xC1B4, + 0x94FF, 0xEFAC, 0x9500, 0xCFFA, 0x9501, 0xCBF8, 0x9502, 0xEFAE, + 0x9503, 0xEFAD, 0x9504, 0xB3FA, 0x9505, 0xB9F8, 0x9506, 0xEFAF, + 0x9507, 0xEFB0, 0x9508, 0xD0E2, 0x9509, 0xEFB1, 0x950A, 0xEFB2, + 0x950B, 0xB7E6, 0x950C, 0xD0BF, 0x950D, 0xEFB3, 0x950E, 0xEFB4, + 0x950F, 0xEFB5, 0x9510, 0xC8F1, 0x9511, 0xCCE0, 0x9512, 0xEFB6, + 0x9513, 0xEFB7, 0x9514, 0xEFB8, 0x9515, 0xEFB9, 0x9516, 0xEFBA, + 0x9517, 0xD5E0, 0x9518, 0xEFBB, 0x9519, 0xB4ED, 0x951A, 0xC3AA, + 0x951B, 0xEFBC, 0x951C, 0xE89F, 0x951D, 0xEFBD, 0x951E, 0xEFBE, + 0x951F, 0xEFBF, 0x9520, 0xE8A0, 0x9521, 0xCEFD, 0x9522, 0xEFC0, + 0x9523, 0xC2E0, 0x9524, 0xB4B8, 0x9525, 0xD7B6, 0x9526, 0xBDF5, + 0x9527, 0xE940, 0x9528, 0xCFC7, 0x9529, 0xEFC3, 0x952A, 0xEFC1, + 0x952B, 0xEFC2, 0x952C, 0xEFC4, 0x952D, 0xB6A7, 0x952E, 0xBCFC, + 0x952F, 0xBEE2, 0x9530, 0xC3CC, 0x9531, 0xEFC5, 0x9532, 0xEFC6, + 0x9533, 0xE941, 0x9534, 0xEFC7, 0x9535, 0xEFCF, 0x9536, 0xEFC8, + 0x9537, 0xEFC9, 0x9538, 0xEFCA, 0x9539, 0xC7C2, 0x953A, 0xEFF1, + 0x953B, 0xB6CD, 0x953C, 0xEFCB, 0x953D, 0xE942, 0x953E, 0xEFCC, + 0x953F, 0xEFCD, 0x9540, 0xB6C6, 0x9541, 0xC3BE, 0x9542, 0xEFCE, + 0x9543, 0xE943, 0x9544, 0xEFD0, 0x9545, 0xEFD1, 0x9546, 0xEFD2, + 0x9547, 0xD5F2, 0x9548, 0xE944, 0x9549, 0xEFD3, 0x954A, 0xC4F7, + 0x954B, 0xE945, 0x954C, 0xEFD4, 0x954D, 0xC4F8, 0x954E, 0xEFD5, + 0x954F, 0xEFD6, 0x9550, 0xB8E4, 0x9551, 0xB0F7, 0x9552, 0xEFD7, + 0x9553, 0xEFD8, 0x9554, 0xEFD9, 0x9555, 0xE946, 0x9556, 0xEFDA, + 0x9557, 0xEFDB, 0x9558, 0xEFDC, 0x9559, 0xEFDD, 0x955A, 0xE947, + 0x955B, 0xEFDE, 0x955C, 0xBEB5, 0x955D, 0xEFE1, 0x955E, 0xEFDF, + 0x955F, 0xEFE0, 0x9560, 0xE948, 0x9561, 0xEFE2, 0x9562, 0xEFE3, + 0x9563, 0xC1CD, 0x9564, 0xEFE4, 0x9565, 0xEFE5, 0x9566, 0xEFE6, + 0x9567, 0xEFE7, 0x9568, 0xEFE8, 0x9569, 0xEFE9, 0x956A, 0xEFEA, + 0x956B, 0xEFEB, 0x956C, 0xEFEC, 0x956D, 0xC0D8, 0x956E, 0xE949, + 0x956F, 0xEFED, 0x9570, 0xC1AD, 0x9571, 0xEFEE, 0x9572, 0xEFEF, + 0x9573, 0xEFF0, 0x9574, 0xE94A, 0x9575, 0xE94B, 0x9576, 0xCFE2, + 0x9577, 0xE94C, 0x9578, 0xE94D, 0x9579, 0xE94E, 0x957A, 0xE94F, + 0x957B, 0xE950, 0x957C, 0xE951, 0x957D, 0xE952, 0x957E, 0xE953, + 0x957F, 0xB3A4, 0x9580, 0xE954, 0x9581, 0xE955, 0x9582, 0xE956, + 0x9583, 0xE957, 0x9584, 0xE958, 0x9585, 0xE959, 0x9586, 0xE95A, + 0x9587, 0xE95B, 0x9588, 0xE95C, 0x9589, 0xE95D, 0x958A, 0xE95E, + 0x958B, 0xE95F, 0x958C, 0xE960, 0x958D, 0xE961, 0x958E, 0xE962, + 0x958F, 0xE963, 0x9590, 0xE964, 0x9591, 0xE965, 0x9592, 0xE966, + 0x9593, 0xE967, 0x9594, 0xE968, 0x9595, 0xE969, 0x9596, 0xE96A, + 0x9597, 0xE96B, 0x9598, 0xE96C, 0x9599, 0xE96D, 0x959A, 0xE96E, + 0x959B, 0xE96F, 0x959C, 0xE970, 0x959D, 0xE971, 0x959E, 0xE972, + 0x959F, 0xE973, 0x95A0, 0xE974, 0x95A1, 0xE975, 0x95A2, 0xE976, + 0x95A3, 0xE977, 0x95A4, 0xE978, 0x95A5, 0xE979, 0x95A6, 0xE97A, + 0x95A7, 0xE97B, 0x95A8, 0xE97C, 0x95A9, 0xE97D, 0x95AA, 0xE97E, + 0x95AB, 0xE980, 0x95AC, 0xE981, 0x95AD, 0xE982, 0x95AE, 0xE983, + 0x95AF, 0xE984, 0x95B0, 0xE985, 0x95B1, 0xE986, 0x95B2, 0xE987, + 0x95B3, 0xE988, 0x95B4, 0xE989, 0x95B5, 0xE98A, 0x95B6, 0xE98B, + 0x95B7, 0xE98C, 0x95B8, 0xE98D, 0x95B9, 0xE98E, 0x95BA, 0xE98F, + 0x95BB, 0xE990, 0x95BC, 0xE991, 0x95BD, 0xE992, 0x95BE, 0xE993, + 0x95BF, 0xE994, 0x95C0, 0xE995, 0x95C1, 0xE996, 0x95C2, 0xE997, + 0x95C3, 0xE998, 0x95C4, 0xE999, 0x95C5, 0xE99A, 0x95C6, 0xE99B, + 0x95C7, 0xE99C, 0x95C8, 0xE99D, 0x95C9, 0xE99E, 0x95CA, 0xE99F, + 0x95CB, 0xE9A0, 0x95CC, 0xEA40, 0x95CD, 0xEA41, 0x95CE, 0xEA42, + 0x95CF, 0xEA43, 0x95D0, 0xEA44, 0x95D1, 0xEA45, 0x95D2, 0xEA46, + 0x95D3, 0xEA47, 0x95D4, 0xEA48, 0x95D5, 0xEA49, 0x95D6, 0xEA4A, + 0x95D7, 0xEA4B, 0x95D8, 0xEA4C, 0x95D9, 0xEA4D, 0x95DA, 0xEA4E, + 0x95DB, 0xEA4F, 0x95DC, 0xEA50, 0x95DD, 0xEA51, 0x95DE, 0xEA52, + 0x95DF, 0xEA53, 0x95E0, 0xEA54, 0x95E1, 0xEA55, 0x95E2, 0xEA56, + 0x95E3, 0xEA57, 0x95E4, 0xEA58, 0x95E5, 0xEA59, 0x95E6, 0xEA5A, + 0x95E7, 0xEA5B, 0x95E8, 0xC3C5, 0x95E9, 0xE3C5, 0x95EA, 0xC9C1, + 0x95EB, 0xE3C6, 0x95EC, 0xEA5C, 0x95ED, 0xB1D5, 0x95EE, 0xCECA, + 0x95EF, 0xB4B3, 0x95F0, 0xC8F2, 0x95F1, 0xE3C7, 0x95F2, 0xCFD0, + 0x95F3, 0xE3C8, 0x95F4, 0xBCE4, 0x95F5, 0xE3C9, 0x95F6, 0xE3CA, + 0x95F7, 0xC3C6, 0x95F8, 0xD5A2, 0x95F9, 0xC4D6, 0x95FA, 0xB9EB, + 0x95FB, 0xCEC5, 0x95FC, 0xE3CB, 0x95FD, 0xC3F6, 0x95FE, 0xE3CC, + 0x95FF, 0xEA5D, 0x9600, 0xB7A7, 0x9601, 0xB8F3, 0x9602, 0xBAD2, + 0x9603, 0xE3CD, 0x9604, 0xE3CE, 0x9605, 0xD4C4, 0x9606, 0xE3CF, + 0x9607, 0xEA5E, 0x9608, 0xE3D0, 0x9609, 0xD1CB, 0x960A, 0xE3D1, + 0x960B, 0xE3D2, 0x960C, 0xE3D3, 0x960D, 0xE3D4, 0x960E, 0xD1D6, + 0x960F, 0xE3D5, 0x9610, 0xB2FB, 0x9611, 0xC0BB, 0x9612, 0xE3D6, + 0x9613, 0xEA5F, 0x9614, 0xC0AB, 0x9615, 0xE3D7, 0x9616, 0xE3D8, + 0x9617, 0xE3D9, 0x9618, 0xEA60, 0x9619, 0xE3DA, 0x961A, 0xE3DB, + 0x961B, 0xEA61, 0x961C, 0xB8B7, 0x961D, 0xDAE2, 0x961E, 0xEA62, + 0x961F, 0xB6D3, 0x9620, 0xEA63, 0x9621, 0xDAE4, 0x9622, 0xDAE3, + 0x9623, 0xEA64, 0x9624, 0xEA65, 0x9625, 0xEA66, 0x9626, 0xEA67, + 0x9627, 0xEA68, 0x9628, 0xEA69, 0x9629, 0xEA6A, 0x962A, 0xDAE6, + 0x962B, 0xEA6B, 0x962C, 0xEA6C, 0x962D, 0xEA6D, 0x962E, 0xC8EE, + 0x962F, 0xEA6E, 0x9630, 0xEA6F, 0x9631, 0xDAE5, 0x9632, 0xB7C0, + 0x9633, 0xD1F4, 0x9634, 0xD2F5, 0x9635, 0xD5F3, 0x9636, 0xBDD7, + 0x9637, 0xEA70, 0x9638, 0xEA71, 0x9639, 0xEA72, 0x963A, 0xEA73, + 0x963B, 0xD7E8, 0x963C, 0xDAE8, 0x963D, 0xDAE7, 0x963E, 0xEA74, + 0x963F, 0xB0A2, 0x9640, 0xCDD3, 0x9641, 0xEA75, 0x9642, 0xDAE9, + 0x9643, 0xEA76, 0x9644, 0xB8BD, 0x9645, 0xBCCA, 0x9646, 0xC2BD, + 0x9647, 0xC2A4, 0x9648, 0xB3C2, 0x9649, 0xDAEA, 0x964A, 0xEA77, + 0x964B, 0xC2AA, 0x964C, 0xC4B0, 0x964D, 0xBDB5, 0x964E, 0xEA78, + 0x964F, 0xEA79, 0x9650, 0xCFDE, 0x9651, 0xEA7A, 0x9652, 0xEA7B, + 0x9653, 0xEA7C, 0x9654, 0xDAEB, 0x9655, 0xC9C2, 0x9656, 0xEA7D, + 0x9657, 0xEA7E, 0x9658, 0xEA80, 0x9659, 0xEA81, 0x965A, 0xEA82, + 0x965B, 0xB1DD, 0x965C, 0xEA83, 0x965D, 0xEA84, 0x965E, 0xEA85, + 0x965F, 0xDAEC, 0x9660, 0xEA86, 0x9661, 0xB6B8, 0x9662, 0xD4BA, + 0x9663, 0xEA87, 0x9664, 0xB3FD, 0x9665, 0xEA88, 0x9666, 0xEA89, + 0x9667, 0xDAED, 0x9668, 0xD4C9, 0x9669, 0xCFD5, 0x966A, 0xC5E3, + 0x966B, 0xEA8A, 0x966C, 0xDAEE, 0x966D, 0xEA8B, 0x966E, 0xEA8C, + 0x966F, 0xEA8D, 0x9670, 0xEA8E, 0x9671, 0xEA8F, 0x9672, 0xDAEF, + 0x9673, 0xEA90, 0x9674, 0xDAF0, 0x9675, 0xC1EA, 0x9676, 0xCCD5, + 0x9677, 0xCFDD, 0x9678, 0xEA91, 0x9679, 0xEA92, 0x967A, 0xEA93, + 0x967B, 0xEA94, 0x967C, 0xEA95, 0x967D, 0xEA96, 0x967E, 0xEA97, + 0x967F, 0xEA98, 0x9680, 0xEA99, 0x9681, 0xEA9A, 0x9682, 0xEA9B, + 0x9683, 0xEA9C, 0x9684, 0xEA9D, 0x9685, 0xD3E7, 0x9686, 0xC2A1, + 0x9687, 0xEA9E, 0x9688, 0xDAF1, 0x9689, 0xEA9F, 0x968A, 0xEAA0, + 0x968B, 0xCBE5, 0x968C, 0xEB40, 0x968D, 0xDAF2, 0x968E, 0xEB41, + 0x968F, 0xCBE6, 0x9690, 0xD2FE, 0x9691, 0xEB42, 0x9692, 0xEB43, + 0x9693, 0xEB44, 0x9694, 0xB8F4, 0x9695, 0xEB45, 0x9696, 0xEB46, + 0x9697, 0xDAF3, 0x9698, 0xB0AF, 0x9699, 0xCFB6, 0x969A, 0xEB47, + 0x969B, 0xEB48, 0x969C, 0xD5CF, 0x969D, 0xEB49, 0x969E, 0xEB4A, + 0x969F, 0xEB4B, 0x96A0, 0xEB4C, 0x96A1, 0xEB4D, 0x96A2, 0xEB4E, + 0x96A3, 0xEB4F, 0x96A4, 0xEB50, 0x96A5, 0xEB51, 0x96A6, 0xEB52, + 0x96A7, 0xCBED, 0x96A8, 0xEB53, 0x96A9, 0xEB54, 0x96AA, 0xEB55, + 0x96AB, 0xEB56, 0x96AC, 0xEB57, 0x96AD, 0xEB58, 0x96AE, 0xEB59, + 0x96AF, 0xEB5A, 0x96B0, 0xDAF4, 0x96B1, 0xEB5B, 0x96B2, 0xEB5C, + 0x96B3, 0xE3C4, 0x96B4, 0xEB5D, 0x96B5, 0xEB5E, 0x96B6, 0xC1A5, + 0x96B7, 0xEB5F, 0x96B8, 0xEB60, 0x96B9, 0xF6BF, 0x96BA, 0xEB61, + 0x96BB, 0xEB62, 0x96BC, 0xF6C0, 0x96BD, 0xF6C1, 0x96BE, 0xC4D1, + 0x96BF, 0xEB63, 0x96C0, 0xC8B8, 0x96C1, 0xD1E3, 0x96C2, 0xEB64, + 0x96C3, 0xEB65, 0x96C4, 0xD0DB, 0x96C5, 0xD1C5, 0x96C6, 0xBCAF, + 0x96C7, 0xB9CD, 0x96C8, 0xEB66, 0x96C9, 0xEFF4, 0x96CA, 0xEB67, + 0x96CB, 0xEB68, 0x96CC, 0xB4C6, 0x96CD, 0xD3BA, 0x96CE, 0xF6C2, + 0x96CF, 0xB3FB, 0x96D0, 0xEB69, 0x96D1, 0xEB6A, 0x96D2, 0xF6C3, + 0x96D3, 0xEB6B, 0x96D4, 0xEB6C, 0x96D5, 0xB5F1, 0x96D6, 0xEB6D, + 0x96D7, 0xEB6E, 0x96D8, 0xEB6F, 0x96D9, 0xEB70, 0x96DA, 0xEB71, + 0x96DB, 0xEB72, 0x96DC, 0xEB73, 0x96DD, 0xEB74, 0x96DE, 0xEB75, + 0x96DF, 0xEB76, 0x96E0, 0xF6C5, 0x96E1, 0xEB77, 0x96E2, 0xEB78, + 0x96E3, 0xEB79, 0x96E4, 0xEB7A, 0x96E5, 0xEB7B, 0x96E6, 0xEB7C, + 0x96E7, 0xEB7D, 0x96E8, 0xD3EA, 0x96E9, 0xF6A7, 0x96EA, 0xD1A9, + 0x96EB, 0xEB7E, 0x96EC, 0xEB80, 0x96ED, 0xEB81, 0x96EE, 0xEB82, + 0x96EF, 0xF6A9, 0x96F0, 0xEB83, 0x96F1, 0xEB84, 0x96F2, 0xEB85, + 0x96F3, 0xF6A8, 0x96F4, 0xEB86, 0x96F5, 0xEB87, 0x96F6, 0xC1E3, + 0x96F7, 0xC0D7, 0x96F8, 0xEB88, 0x96F9, 0xB1A2, 0x96FA, 0xEB89, + 0x96FB, 0xEB8A, 0x96FC, 0xEB8B, 0x96FD, 0xEB8C, 0x96FE, 0xCEED, + 0x96FF, 0xEB8D, 0x9700, 0xD0E8, 0x9701, 0xF6AB, 0x9702, 0xEB8E, + 0x9703, 0xEB8F, 0x9704, 0xCFF6, 0x9705, 0xEB90, 0x9706, 0xF6AA, + 0x9707, 0xD5F0, 0x9708, 0xF6AC, 0x9709, 0xC3B9, 0x970A, 0xEB91, + 0x970B, 0xEB92, 0x970C, 0xEB93, 0x970D, 0xBBF4, 0x970E, 0xF6AE, + 0x970F, 0xF6AD, 0x9710, 0xEB94, 0x9711, 0xEB95, 0x9712, 0xEB96, + 0x9713, 0xC4DE, 0x9714, 0xEB97, 0x9715, 0xEB98, 0x9716, 0xC1D8, + 0x9717, 0xEB99, 0x9718, 0xEB9A, 0x9719, 0xEB9B, 0x971A, 0xEB9C, + 0x971B, 0xEB9D, 0x971C, 0xCBAA, 0x971D, 0xEB9E, 0x971E, 0xCFBC, + 0x971F, 0xEB9F, 0x9720, 0xEBA0, 0x9721, 0xEC40, 0x9722, 0xEC41, + 0x9723, 0xEC42, 0x9724, 0xEC43, 0x9725, 0xEC44, 0x9726, 0xEC45, + 0x9727, 0xEC46, 0x9728, 0xEC47, 0x9729, 0xEC48, 0x972A, 0xF6AF, + 0x972B, 0xEC49, 0x972C, 0xEC4A, 0x972D, 0xF6B0, 0x972E, 0xEC4B, + 0x972F, 0xEC4C, 0x9730, 0xF6B1, 0x9731, 0xEC4D, 0x9732, 0xC2B6, + 0x9733, 0xEC4E, 0x9734, 0xEC4F, 0x9735, 0xEC50, 0x9736, 0xEC51, + 0x9737, 0xEC52, 0x9738, 0xB0D4, 0x9739, 0xC5F9, 0x973A, 0xEC53, + 0x973B, 0xEC54, 0x973C, 0xEC55, 0x973D, 0xEC56, 0x973E, 0xF6B2, + 0x973F, 0xEC57, 0x9740, 0xEC58, 0x9741, 0xEC59, 0x9742, 0xEC5A, + 0x9743, 0xEC5B, 0x9744, 0xEC5C, 0x9745, 0xEC5D, 0x9746, 0xEC5E, + 0x9747, 0xEC5F, 0x9748, 0xEC60, 0x9749, 0xEC61, 0x974A, 0xEC62, + 0x974B, 0xEC63, 0x974C, 0xEC64, 0x974D, 0xEC65, 0x974E, 0xEC66, + 0x974F, 0xEC67, 0x9750, 0xEC68, 0x9751, 0xEC69, 0x9752, 0xC7E0, + 0x9753, 0xF6A6, 0x9754, 0xEC6A, 0x9755, 0xEC6B, 0x9756, 0xBEB8, + 0x9757, 0xEC6C, 0x9758, 0xEC6D, 0x9759, 0xBEB2, 0x975A, 0xEC6E, + 0x975B, 0xB5E5, 0x975C, 0xEC6F, 0x975D, 0xEC70, 0x975E, 0xB7C7, + 0x975F, 0xEC71, 0x9760, 0xBFBF, 0x9761, 0xC3D2, 0x9762, 0xC3E6, + 0x9763, 0xEC72, 0x9764, 0xEC73, 0x9765, 0xD8CC, 0x9766, 0xEC74, + 0x9767, 0xEC75, 0x9768, 0xEC76, 0x9769, 0xB8EF, 0x976A, 0xEC77, + 0x976B, 0xEC78, 0x976C, 0xEC79, 0x976D, 0xEC7A, 0x976E, 0xEC7B, + 0x976F, 0xEC7C, 0x9770, 0xEC7D, 0x9771, 0xEC7E, 0x9772, 0xEC80, + 0x9773, 0xBDF9, 0x9774, 0xD1A5, 0x9775, 0xEC81, 0x9776, 0xB0D0, + 0x9777, 0xEC82, 0x9778, 0xEC83, 0x9779, 0xEC84, 0x977A, 0xEC85, + 0x977B, 0xEC86, 0x977C, 0xF7B0, 0x977D, 0xEC87, 0x977E, 0xEC88, + 0x977F, 0xEC89, 0x9780, 0xEC8A, 0x9781, 0xEC8B, 0x9782, 0xEC8C, + 0x9783, 0xEC8D, 0x9784, 0xEC8E, 0x9785, 0xF7B1, 0x9786, 0xEC8F, + 0x9787, 0xEC90, 0x9788, 0xEC91, 0x9789, 0xEC92, 0x978A, 0xEC93, + 0x978B, 0xD0AC, 0x978C, 0xEC94, 0x978D, 0xB0B0, 0x978E, 0xEC95, + 0x978F, 0xEC96, 0x9790, 0xEC97, 0x9791, 0xF7B2, 0x9792, 0xF7B3, + 0x9793, 0xEC98, 0x9794, 0xF7B4, 0x9795, 0xEC99, 0x9796, 0xEC9A, + 0x9797, 0xEC9B, 0x9798, 0xC7CA, 0x9799, 0xEC9C, 0x979A, 0xEC9D, + 0x979B, 0xEC9E, 0x979C, 0xEC9F, 0x979D, 0xECA0, 0x979E, 0xED40, + 0x979F, 0xED41, 0x97A0, 0xBECF, 0x97A1, 0xED42, 0x97A2, 0xED43, + 0x97A3, 0xF7B7, 0x97A4, 0xED44, 0x97A5, 0xED45, 0x97A6, 0xED46, + 0x97A7, 0xED47, 0x97A8, 0xED48, 0x97A9, 0xED49, 0x97AA, 0xED4A, + 0x97AB, 0xF7B6, 0x97AC, 0xED4B, 0x97AD, 0xB1DE, 0x97AE, 0xED4C, + 0x97AF, 0xF7B5, 0x97B0, 0xED4D, 0x97B1, 0xED4E, 0x97B2, 0xF7B8, + 0x97B3, 0xED4F, 0x97B4, 0xF7B9, 0x97B5, 0xED50, 0x97B6, 0xED51, + 0x97B7, 0xED52, 0x97B8, 0xED53, 0x97B9, 0xED54, 0x97BA, 0xED55, + 0x97BB, 0xED56, 0x97BC, 0xED57, 0x97BD, 0xED58, 0x97BE, 0xED59, + 0x97BF, 0xED5A, 0x97C0, 0xED5B, 0x97C1, 0xED5C, 0x97C2, 0xED5D, + 0x97C3, 0xED5E, 0x97C4, 0xED5F, 0x97C5, 0xED60, 0x97C6, 0xED61, + 0x97C7, 0xED62, 0x97C8, 0xED63, 0x97C9, 0xED64, 0x97CA, 0xED65, + 0x97CB, 0xED66, 0x97CC, 0xED67, 0x97CD, 0xED68, 0x97CE, 0xED69, + 0x97CF, 0xED6A, 0x97D0, 0xED6B, 0x97D1, 0xED6C, 0x97D2, 0xED6D, + 0x97D3, 0xED6E, 0x97D4, 0xED6F, 0x97D5, 0xED70, 0x97D6, 0xED71, + 0x97D7, 0xED72, 0x97D8, 0xED73, 0x97D9, 0xED74, 0x97DA, 0xED75, + 0x97DB, 0xED76, 0x97DC, 0xED77, 0x97DD, 0xED78, 0x97DE, 0xED79, + 0x97DF, 0xED7A, 0x97E0, 0xED7B, 0x97E1, 0xED7C, 0x97E2, 0xED7D, + 0x97E3, 0xED7E, 0x97E4, 0xED80, 0x97E5, 0xED81, 0x97E6, 0xCEA4, + 0x97E7, 0xC8CD, 0x97E8, 0xED82, 0x97E9, 0xBAAB, 0x97EA, 0xE8B8, + 0x97EB, 0xE8B9, 0x97EC, 0xE8BA, 0x97ED, 0xBEC2, 0x97EE, 0xED83, + 0x97EF, 0xED84, 0x97F0, 0xED85, 0x97F1, 0xED86, 0x97F2, 0xED87, + 0x97F3, 0xD2F4, 0x97F4, 0xED88, 0x97F5, 0xD4CF, 0x97F6, 0xC9D8, + 0x97F7, 0xED89, 0x97F8, 0xED8A, 0x97F9, 0xED8B, 0x97FA, 0xED8C, + 0x97FB, 0xED8D, 0x97FC, 0xED8E, 0x97FD, 0xED8F, 0x97FE, 0xED90, + 0x97FF, 0xED91, 0x9800, 0xED92, 0x9801, 0xED93, 0x9802, 0xED94, + 0x9803, 0xED95, 0x9804, 0xED96, 0x9805, 0xED97, 0x9806, 0xED98, + 0x9807, 0xED99, 0x9808, 0xED9A, 0x9809, 0xED9B, 0x980A, 0xED9C, + 0x980B, 0xED9D, 0x980C, 0xED9E, 0x980D, 0xED9F, 0x980E, 0xEDA0, + 0x980F, 0xEE40, 0x9810, 0xEE41, 0x9811, 0xEE42, 0x9812, 0xEE43, + 0x9813, 0xEE44, 0x9814, 0xEE45, 0x9815, 0xEE46, 0x9816, 0xEE47, + 0x9817, 0xEE48, 0x9818, 0xEE49, 0x9819, 0xEE4A, 0x981A, 0xEE4B, + 0x981B, 0xEE4C, 0x981C, 0xEE4D, 0x981D, 0xEE4E, 0x981E, 0xEE4F, + 0x981F, 0xEE50, 0x9820, 0xEE51, 0x9821, 0xEE52, 0x9822, 0xEE53, + 0x9823, 0xEE54, 0x9824, 0xEE55, 0x9825, 0xEE56, 0x9826, 0xEE57, + 0x9827, 0xEE58, 0x9828, 0xEE59, 0x9829, 0xEE5A, 0x982A, 0xEE5B, + 0x982B, 0xEE5C, 0x982C, 0xEE5D, 0x982D, 0xEE5E, 0x982E, 0xEE5F, + 0x982F, 0xEE60, 0x9830, 0xEE61, 0x9831, 0xEE62, 0x9832, 0xEE63, + 0x9833, 0xEE64, 0x9834, 0xEE65, 0x9835, 0xEE66, 0x9836, 0xEE67, + 0x9837, 0xEE68, 0x9838, 0xEE69, 0x9839, 0xEE6A, 0x983A, 0xEE6B, + 0x983B, 0xEE6C, 0x983C, 0xEE6D, 0x983D, 0xEE6E, 0x983E, 0xEE6F, + 0x983F, 0xEE70, 0x9840, 0xEE71, 0x9841, 0xEE72, 0x9842, 0xEE73, + 0x9843, 0xEE74, 0x9844, 0xEE75, 0x9845, 0xEE76, 0x9846, 0xEE77, + 0x9847, 0xEE78, 0x9848, 0xEE79, 0x9849, 0xEE7A, 0x984A, 0xEE7B, + 0x984B, 0xEE7C, 0x984C, 0xEE7D, 0x984D, 0xEE7E, 0x984E, 0xEE80, + 0x984F, 0xEE81, 0x9850, 0xEE82, 0x9851, 0xEE83, 0x9852, 0xEE84, + 0x9853, 0xEE85, 0x9854, 0xEE86, 0x9855, 0xEE87, 0x9856, 0xEE88, + 0x9857, 0xEE89, 0x9858, 0xEE8A, 0x9859, 0xEE8B, 0x985A, 0xEE8C, + 0x985B, 0xEE8D, 0x985C, 0xEE8E, 0x985D, 0xEE8F, 0x985E, 0xEE90, + 0x985F, 0xEE91, 0x9860, 0xEE92, 0x9861, 0xEE93, 0x9862, 0xEE94, + 0x9863, 0xEE95, 0x9864, 0xEE96, 0x9865, 0xEE97, 0x9866, 0xEE98, + 0x9867, 0xEE99, 0x9868, 0xEE9A, 0x9869, 0xEE9B, 0x986A, 0xEE9C, + 0x986B, 0xEE9D, 0x986C, 0xEE9E, 0x986D, 0xEE9F, 0x986E, 0xEEA0, + 0x986F, 0xEF40, 0x9870, 0xEF41, 0x9871, 0xEF42, 0x9872, 0xEF43, + 0x9873, 0xEF44, 0x9874, 0xEF45, 0x9875, 0xD2B3, 0x9876, 0xB6A5, + 0x9877, 0xC7EA, 0x9878, 0xF1FC, 0x9879, 0xCFEE, 0x987A, 0xCBB3, + 0x987B, 0xD0EB, 0x987C, 0xE7EF, 0x987D, 0xCDE7, 0x987E, 0xB9CB, + 0x987F, 0xB6D9, 0x9880, 0xF1FD, 0x9881, 0xB0E4, 0x9882, 0xCBCC, + 0x9883, 0xF1FE, 0x9884, 0xD4A4, 0x9885, 0xC2AD, 0x9886, 0xC1EC, + 0x9887, 0xC6C4, 0x9888, 0xBEB1, 0x9889, 0xF2A1, 0x988A, 0xBCD5, + 0x988B, 0xEF46, 0x988C, 0xF2A2, 0x988D, 0xF2A3, 0x988E, 0xEF47, + 0x988F, 0xF2A4, 0x9890, 0xD2C3, 0x9891, 0xC6B5, 0x9892, 0xEF48, + 0x9893, 0xCDC7, 0x9894, 0xF2A5, 0x9895, 0xEF49, 0x9896, 0xD3B1, + 0x9897, 0xBFC5, 0x9898, 0xCCE2, 0x9899, 0xEF4A, 0x989A, 0xF2A6, + 0x989B, 0xF2A7, 0x989C, 0xD1D5, 0x989D, 0xB6EE, 0x989E, 0xF2A8, + 0x989F, 0xF2A9, 0x98A0, 0xB5DF, 0x98A1, 0xF2AA, 0x98A2, 0xF2AB, + 0x98A3, 0xEF4B, 0x98A4, 0xB2FC, 0x98A5, 0xF2AC, 0x98A6, 0xF2AD, + 0x98A7, 0xC8A7, 0x98A8, 0xEF4C, 0x98A9, 0xEF4D, 0x98AA, 0xEF4E, + 0x98AB, 0xEF4F, 0x98AC, 0xEF50, 0x98AD, 0xEF51, 0x98AE, 0xEF52, + 0x98AF, 0xEF53, 0x98B0, 0xEF54, 0x98B1, 0xEF55, 0x98B2, 0xEF56, + 0x98B3, 0xEF57, 0x98B4, 0xEF58, 0x98B5, 0xEF59, 0x98B6, 0xEF5A, + 0x98B7, 0xEF5B, 0x98B8, 0xEF5C, 0x98B9, 0xEF5D, 0x98BA, 0xEF5E, + 0x98BB, 0xEF5F, 0x98BC, 0xEF60, 0x98BD, 0xEF61, 0x98BE, 0xEF62, + 0x98BF, 0xEF63, 0x98C0, 0xEF64, 0x98C1, 0xEF65, 0x98C2, 0xEF66, + 0x98C3, 0xEF67, 0x98C4, 0xEF68, 0x98C5, 0xEF69, 0x98C6, 0xEF6A, + 0x98C7, 0xEF6B, 0x98C8, 0xEF6C, 0x98C9, 0xEF6D, 0x98CA, 0xEF6E, + 0x98CB, 0xEF6F, 0x98CC, 0xEF70, 0x98CD, 0xEF71, 0x98CE, 0xB7E7, + 0x98CF, 0xEF72, 0x98D0, 0xEF73, 0x98D1, 0xECA9, 0x98D2, 0xECAA, + 0x98D3, 0xECAB, 0x98D4, 0xEF74, 0x98D5, 0xECAC, 0x98D6, 0xEF75, + 0x98D7, 0xEF76, 0x98D8, 0xC6AE, 0x98D9, 0xECAD, 0x98DA, 0xECAE, + 0x98DB, 0xEF77, 0x98DC, 0xEF78, 0x98DD, 0xEF79, 0x98DE, 0xB7C9, + 0x98DF, 0xCAB3, 0x98E0, 0xEF7A, 0x98E1, 0xEF7B, 0x98E2, 0xEF7C, + 0x98E3, 0xEF7D, 0x98E4, 0xEF7E, 0x98E5, 0xEF80, 0x98E6, 0xEF81, + 0x98E7, 0xE2B8, 0x98E8, 0xF7CF, 0x98E9, 0xEF82, 0x98EA, 0xEF83, + 0x98EB, 0xEF84, 0x98EC, 0xEF85, 0x98ED, 0xEF86, 0x98EE, 0xEF87, + 0x98EF, 0xEF88, 0x98F0, 0xEF89, 0x98F1, 0xEF8A, 0x98F2, 0xEF8B, + 0x98F3, 0xEF8C, 0x98F4, 0xEF8D, 0x98F5, 0xEF8E, 0x98F6, 0xEF8F, + 0x98F7, 0xEF90, 0x98F8, 0xEF91, 0x98F9, 0xEF92, 0x98FA, 0xEF93, + 0x98FB, 0xEF94, 0x98FC, 0xEF95, 0x98FD, 0xEF96, 0x98FE, 0xEF97, + 0x98FF, 0xEF98, 0x9900, 0xEF99, 0x9901, 0xEF9A, 0x9902, 0xEF9B, + 0x9903, 0xEF9C, 0x9904, 0xEF9D, 0x9905, 0xEF9E, 0x9906, 0xEF9F, + 0x9907, 0xEFA0, 0x9908, 0xF040, 0x9909, 0xF041, 0x990A, 0xF042, + 0x990B, 0xF043, 0x990C, 0xF044, 0x990D, 0xF7D0, 0x990E, 0xF045, + 0x990F, 0xF046, 0x9910, 0xB2CD, 0x9911, 0xF047, 0x9912, 0xF048, + 0x9913, 0xF049, 0x9914, 0xF04A, 0x9915, 0xF04B, 0x9916, 0xF04C, + 0x9917, 0xF04D, 0x9918, 0xF04E, 0x9919, 0xF04F, 0x991A, 0xF050, + 0x991B, 0xF051, 0x991C, 0xF052, 0x991D, 0xF053, 0x991E, 0xF054, + 0x991F, 0xF055, 0x9920, 0xF056, 0x9921, 0xF057, 0x9922, 0xF058, + 0x9923, 0xF059, 0x9924, 0xF05A, 0x9925, 0xF05B, 0x9926, 0xF05C, + 0x9927, 0xF05D, 0x9928, 0xF05E, 0x9929, 0xF05F, 0x992A, 0xF060, + 0x992B, 0xF061, 0x992C, 0xF062, 0x992D, 0xF063, 0x992E, 0xF7D1, + 0x992F, 0xF064, 0x9930, 0xF065, 0x9931, 0xF066, 0x9932, 0xF067, + 0x9933, 0xF068, 0x9934, 0xF069, 0x9935, 0xF06A, 0x9936, 0xF06B, + 0x9937, 0xF06C, 0x9938, 0xF06D, 0x9939, 0xF06E, 0x993A, 0xF06F, + 0x993B, 0xF070, 0x993C, 0xF071, 0x993D, 0xF072, 0x993E, 0xF073, + 0x993F, 0xF074, 0x9940, 0xF075, 0x9941, 0xF076, 0x9942, 0xF077, + 0x9943, 0xF078, 0x9944, 0xF079, 0x9945, 0xF07A, 0x9946, 0xF07B, + 0x9947, 0xF07C, 0x9948, 0xF07D, 0x9949, 0xF07E, 0x994A, 0xF080, + 0x994B, 0xF081, 0x994C, 0xF082, 0x994D, 0xF083, 0x994E, 0xF084, + 0x994F, 0xF085, 0x9950, 0xF086, 0x9951, 0xF087, 0x9952, 0xF088, + 0x9953, 0xF089, 0x9954, 0xF7D3, 0x9955, 0xF7D2, 0x9956, 0xF08A, + 0x9957, 0xF08B, 0x9958, 0xF08C, 0x9959, 0xF08D, 0x995A, 0xF08E, + 0x995B, 0xF08F, 0x995C, 0xF090, 0x995D, 0xF091, 0x995E, 0xF092, + 0x995F, 0xF093, 0x9960, 0xF094, 0x9961, 0xF095, 0x9962, 0xF096, + 0x9963, 0xE2BB, 0x9964, 0xF097, 0x9965, 0xBCA2, 0x9966, 0xF098, + 0x9967, 0xE2BC, 0x9968, 0xE2BD, 0x9969, 0xE2BE, 0x996A, 0xE2BF, + 0x996B, 0xE2C0, 0x996C, 0xE2C1, 0x996D, 0xB7B9, 0x996E, 0xD2FB, + 0x996F, 0xBDA4, 0x9970, 0xCACE, 0x9971, 0xB1A5, 0x9972, 0xCBC7, + 0x9973, 0xF099, 0x9974, 0xE2C2, 0x9975, 0xB6FC, 0x9976, 0xC8C4, + 0x9977, 0xE2C3, 0x9978, 0xF09A, 0x9979, 0xF09B, 0x997A, 0xBDC8, + 0x997B, 0xF09C, 0x997C, 0xB1FD, 0x997D, 0xE2C4, 0x997E, 0xF09D, + 0x997F, 0xB6F6, 0x9980, 0xE2C5, 0x9981, 0xC4D9, 0x9982, 0xF09E, + 0x9983, 0xF09F, 0x9984, 0xE2C6, 0x9985, 0xCFDA, 0x9986, 0xB9DD, + 0x9987, 0xE2C7, 0x9988, 0xC0A1, 0x9989, 0xF0A0, 0x998A, 0xE2C8, + 0x998B, 0xB2F6, 0x998C, 0xF140, 0x998D, 0xE2C9, 0x998E, 0xF141, + 0x998F, 0xC1F3, 0x9990, 0xE2CA, 0x9991, 0xE2CB, 0x9992, 0xC2F8, + 0x9993, 0xE2CC, 0x9994, 0xE2CD, 0x9995, 0xE2CE, 0x9996, 0xCAD7, + 0x9997, 0xD8B8, 0x9998, 0xD9E5, 0x9999, 0xCFE3, 0x999A, 0xF142, + 0x999B, 0xF143, 0x999C, 0xF144, 0x999D, 0xF145, 0x999E, 0xF146, + 0x999F, 0xF147, 0x99A0, 0xF148, 0x99A1, 0xF149, 0x99A2, 0xF14A, + 0x99A3, 0xF14B, 0x99A4, 0xF14C, 0x99A5, 0xF0A5, 0x99A6, 0xF14D, + 0x99A7, 0xF14E, 0x99A8, 0xDCB0, 0x99A9, 0xF14F, 0x99AA, 0xF150, + 0x99AB, 0xF151, 0x99AC, 0xF152, 0x99AD, 0xF153, 0x99AE, 0xF154, + 0x99AF, 0xF155, 0x99B0, 0xF156, 0x99B1, 0xF157, 0x99B2, 0xF158, + 0x99B3, 0xF159, 0x99B4, 0xF15A, 0x99B5, 0xF15B, 0x99B6, 0xF15C, + 0x99B7, 0xF15D, 0x99B8, 0xF15E, 0x99B9, 0xF15F, 0x99BA, 0xF160, + 0x99BB, 0xF161, 0x99BC, 0xF162, 0x99BD, 0xF163, 0x99BE, 0xF164, + 0x99BF, 0xF165, 0x99C0, 0xF166, 0x99C1, 0xF167, 0x99C2, 0xF168, + 0x99C3, 0xF169, 0x99C4, 0xF16A, 0x99C5, 0xF16B, 0x99C6, 0xF16C, + 0x99C7, 0xF16D, 0x99C8, 0xF16E, 0x99C9, 0xF16F, 0x99CA, 0xF170, + 0x99CB, 0xF171, 0x99CC, 0xF172, 0x99CD, 0xF173, 0x99CE, 0xF174, + 0x99CF, 0xF175, 0x99D0, 0xF176, 0x99D1, 0xF177, 0x99D2, 0xF178, + 0x99D3, 0xF179, 0x99D4, 0xF17A, 0x99D5, 0xF17B, 0x99D6, 0xF17C, + 0x99D7, 0xF17D, 0x99D8, 0xF17E, 0x99D9, 0xF180, 0x99DA, 0xF181, + 0x99DB, 0xF182, 0x99DC, 0xF183, 0x99DD, 0xF184, 0x99DE, 0xF185, + 0x99DF, 0xF186, 0x99E0, 0xF187, 0x99E1, 0xF188, 0x99E2, 0xF189, + 0x99E3, 0xF18A, 0x99E4, 0xF18B, 0x99E5, 0xF18C, 0x99E6, 0xF18D, + 0x99E7, 0xF18E, 0x99E8, 0xF18F, 0x99E9, 0xF190, 0x99EA, 0xF191, + 0x99EB, 0xF192, 0x99EC, 0xF193, 0x99ED, 0xF194, 0x99EE, 0xF195, + 0x99EF, 0xF196, 0x99F0, 0xF197, 0x99F1, 0xF198, 0x99F2, 0xF199, + 0x99F3, 0xF19A, 0x99F4, 0xF19B, 0x99F5, 0xF19C, 0x99F6, 0xF19D, + 0x99F7, 0xF19E, 0x99F8, 0xF19F, 0x99F9, 0xF1A0, 0x99FA, 0xF240, + 0x99FB, 0xF241, 0x99FC, 0xF242, 0x99FD, 0xF243, 0x99FE, 0xF244, + 0x99FF, 0xF245, 0x9A00, 0xF246, 0x9A01, 0xF247, 0x9A02, 0xF248, + 0x9A03, 0xF249, 0x9A04, 0xF24A, 0x9A05, 0xF24B, 0x9A06, 0xF24C, + 0x9A07, 0xF24D, 0x9A08, 0xF24E, 0x9A09, 0xF24F, 0x9A0A, 0xF250, + 0x9A0B, 0xF251, 0x9A0C, 0xF252, 0x9A0D, 0xF253, 0x9A0E, 0xF254, + 0x9A0F, 0xF255, 0x9A10, 0xF256, 0x9A11, 0xF257, 0x9A12, 0xF258, + 0x9A13, 0xF259, 0x9A14, 0xF25A, 0x9A15, 0xF25B, 0x9A16, 0xF25C, + 0x9A17, 0xF25D, 0x9A18, 0xF25E, 0x9A19, 0xF25F, 0x9A1A, 0xF260, + 0x9A1B, 0xF261, 0x9A1C, 0xF262, 0x9A1D, 0xF263, 0x9A1E, 0xF264, + 0x9A1F, 0xF265, 0x9A20, 0xF266, 0x9A21, 0xF267, 0x9A22, 0xF268, + 0x9A23, 0xF269, 0x9A24, 0xF26A, 0x9A25, 0xF26B, 0x9A26, 0xF26C, + 0x9A27, 0xF26D, 0x9A28, 0xF26E, 0x9A29, 0xF26F, 0x9A2A, 0xF270, + 0x9A2B, 0xF271, 0x9A2C, 0xF272, 0x9A2D, 0xF273, 0x9A2E, 0xF274, + 0x9A2F, 0xF275, 0x9A30, 0xF276, 0x9A31, 0xF277, 0x9A32, 0xF278, + 0x9A33, 0xF279, 0x9A34, 0xF27A, 0x9A35, 0xF27B, 0x9A36, 0xF27C, + 0x9A37, 0xF27D, 0x9A38, 0xF27E, 0x9A39, 0xF280, 0x9A3A, 0xF281, + 0x9A3B, 0xF282, 0x9A3C, 0xF283, 0x9A3D, 0xF284, 0x9A3E, 0xF285, + 0x9A3F, 0xF286, 0x9A40, 0xF287, 0x9A41, 0xF288, 0x9A42, 0xF289, + 0x9A43, 0xF28A, 0x9A44, 0xF28B, 0x9A45, 0xF28C, 0x9A46, 0xF28D, + 0x9A47, 0xF28E, 0x9A48, 0xF28F, 0x9A49, 0xF290, 0x9A4A, 0xF291, + 0x9A4B, 0xF292, 0x9A4C, 0xF293, 0x9A4D, 0xF294, 0x9A4E, 0xF295, + 0x9A4F, 0xF296, 0x9A50, 0xF297, 0x9A51, 0xF298, 0x9A52, 0xF299, + 0x9A53, 0xF29A, 0x9A54, 0xF29B, 0x9A55, 0xF29C, 0x9A56, 0xF29D, + 0x9A57, 0xF29E, 0x9A58, 0xF29F, 0x9A59, 0xF2A0, 0x9A5A, 0xF340, + 0x9A5B, 0xF341, 0x9A5C, 0xF342, 0x9A5D, 0xF343, 0x9A5E, 0xF344, + 0x9A5F, 0xF345, 0x9A60, 0xF346, 0x9A61, 0xF347, 0x9A62, 0xF348, + 0x9A63, 0xF349, 0x9A64, 0xF34A, 0x9A65, 0xF34B, 0x9A66, 0xF34C, + 0x9A67, 0xF34D, 0x9A68, 0xF34E, 0x9A69, 0xF34F, 0x9A6A, 0xF350, + 0x9A6B, 0xF351, 0x9A6C, 0xC2ED, 0x9A6D, 0xD4A6, 0x9A6E, 0xCDD4, + 0x9A6F, 0xD1B1, 0x9A70, 0xB3DB, 0x9A71, 0xC7FD, 0x9A72, 0xF352, + 0x9A73, 0xB2B5, 0x9A74, 0xC2BF, 0x9A75, 0xE6E0, 0x9A76, 0xCABB, + 0x9A77, 0xE6E1, 0x9A78, 0xE6E2, 0x9A79, 0xBED4, 0x9A7A, 0xE6E3, + 0x9A7B, 0xD7A4, 0x9A7C, 0xCDD5, 0x9A7D, 0xE6E5, 0x9A7E, 0xBCDD, + 0x9A7F, 0xE6E4, 0x9A80, 0xE6E6, 0x9A81, 0xE6E7, 0x9A82, 0xC2EE, + 0x9A83, 0xF353, 0x9A84, 0xBDBE, 0x9A85, 0xE6E8, 0x9A86, 0xC2E6, + 0x9A87, 0xBAA7, 0x9A88, 0xE6E9, 0x9A89, 0xF354, 0x9A8A, 0xE6EA, + 0x9A8B, 0xB3D2, 0x9A8C, 0xD1E9, 0x9A8D, 0xF355, 0x9A8E, 0xF356, + 0x9A8F, 0xBFA5, 0x9A90, 0xE6EB, 0x9A91, 0xC6EF, 0x9A92, 0xE6EC, + 0x9A93, 0xE6ED, 0x9A94, 0xF357, 0x9A95, 0xF358, 0x9A96, 0xE6EE, + 0x9A97, 0xC6AD, 0x9A98, 0xE6EF, 0x9A99, 0xF359, 0x9A9A, 0xC9A7, + 0x9A9B, 0xE6F0, 0x9A9C, 0xE6F1, 0x9A9D, 0xE6F2, 0x9A9E, 0xE5B9, + 0x9A9F, 0xE6F3, 0x9AA0, 0xE6F4, 0x9AA1, 0xC2E2, 0x9AA2, 0xE6F5, + 0x9AA3, 0xE6F6, 0x9AA4, 0xD6E8, 0x9AA5, 0xE6F7, 0x9AA6, 0xF35A, + 0x9AA7, 0xE6F8, 0x9AA8, 0xB9C7, 0x9AA9, 0xF35B, 0x9AAA, 0xF35C, + 0x9AAB, 0xF35D, 0x9AAC, 0xF35E, 0x9AAD, 0xF35F, 0x9AAE, 0xF360, + 0x9AAF, 0xF361, 0x9AB0, 0xF7BB, 0x9AB1, 0xF7BA, 0x9AB2, 0xF362, + 0x9AB3, 0xF363, 0x9AB4, 0xF364, 0x9AB5, 0xF365, 0x9AB6, 0xF7BE, + 0x9AB7, 0xF7BC, 0x9AB8, 0xBAA1, 0x9AB9, 0xF366, 0x9ABA, 0xF7BF, + 0x9ABB, 0xF367, 0x9ABC, 0xF7C0, 0x9ABD, 0xF368, 0x9ABE, 0xF369, + 0x9ABF, 0xF36A, 0x9AC0, 0xF7C2, 0x9AC1, 0xF7C1, 0x9AC2, 0xF7C4, + 0x9AC3, 0xF36B, 0x9AC4, 0xF36C, 0x9AC5, 0xF7C3, 0x9AC6, 0xF36D, + 0x9AC7, 0xF36E, 0x9AC8, 0xF36F, 0x9AC9, 0xF370, 0x9ACA, 0xF371, + 0x9ACB, 0xF7C5, 0x9ACC, 0xF7C6, 0x9ACD, 0xF372, 0x9ACE, 0xF373, + 0x9ACF, 0xF374, 0x9AD0, 0xF375, 0x9AD1, 0xF7C7, 0x9AD2, 0xF376, + 0x9AD3, 0xCBE8, 0x9AD4, 0xF377, 0x9AD5, 0xF378, 0x9AD6, 0xF379, + 0x9AD7, 0xF37A, 0x9AD8, 0xB8DF, 0x9AD9, 0xF37B, 0x9ADA, 0xF37C, + 0x9ADB, 0xF37D, 0x9ADC, 0xF37E, 0x9ADD, 0xF380, 0x9ADE, 0xF381, + 0x9ADF, 0xF7D4, 0x9AE0, 0xF382, 0x9AE1, 0xF7D5, 0x9AE2, 0xF383, + 0x9AE3, 0xF384, 0x9AE4, 0xF385, 0x9AE5, 0xF386, 0x9AE6, 0xF7D6, + 0x9AE7, 0xF387, 0x9AE8, 0xF388, 0x9AE9, 0xF389, 0x9AEA, 0xF38A, + 0x9AEB, 0xF7D8, 0x9AEC, 0xF38B, 0x9AED, 0xF7DA, 0x9AEE, 0xF38C, + 0x9AEF, 0xF7D7, 0x9AF0, 0xF38D, 0x9AF1, 0xF38E, 0x9AF2, 0xF38F, + 0x9AF3, 0xF390, 0x9AF4, 0xF391, 0x9AF5, 0xF392, 0x9AF6, 0xF393, + 0x9AF7, 0xF394, 0x9AF8, 0xF395, 0x9AF9, 0xF7DB, 0x9AFA, 0xF396, + 0x9AFB, 0xF7D9, 0x9AFC, 0xF397, 0x9AFD, 0xF398, 0x9AFE, 0xF399, + 0x9AFF, 0xF39A, 0x9B00, 0xF39B, 0x9B01, 0xF39C, 0x9B02, 0xF39D, + 0x9B03, 0xD7D7, 0x9B04, 0xF39E, 0x9B05, 0xF39F, 0x9B06, 0xF3A0, + 0x9B07, 0xF440, 0x9B08, 0xF7DC, 0x9B09, 0xF441, 0x9B0A, 0xF442, + 0x9B0B, 0xF443, 0x9B0C, 0xF444, 0x9B0D, 0xF445, 0x9B0E, 0xF446, + 0x9B0F, 0xF7DD, 0x9B10, 0xF447, 0x9B11, 0xF448, 0x9B12, 0xF449, + 0x9B13, 0xF7DE, 0x9B14, 0xF44A, 0x9B15, 0xF44B, 0x9B16, 0xF44C, + 0x9B17, 0xF44D, 0x9B18, 0xF44E, 0x9B19, 0xF44F, 0x9B1A, 0xF450, + 0x9B1B, 0xF451, 0x9B1C, 0xF452, 0x9B1D, 0xF453, 0x9B1E, 0xF454, + 0x9B1F, 0xF7DF, 0x9B20, 0xF455, 0x9B21, 0xF456, 0x9B22, 0xF457, + 0x9B23, 0xF7E0, 0x9B24, 0xF458, 0x9B25, 0xF459, 0x9B26, 0xF45A, + 0x9B27, 0xF45B, 0x9B28, 0xF45C, 0x9B29, 0xF45D, 0x9B2A, 0xF45E, + 0x9B2B, 0xF45F, 0x9B2C, 0xF460, 0x9B2D, 0xF461, 0x9B2E, 0xF462, + 0x9B2F, 0xDBCB, 0x9B30, 0xF463, 0x9B31, 0xF464, 0x9B32, 0xD8AA, + 0x9B33, 0xF465, 0x9B34, 0xF466, 0x9B35, 0xF467, 0x9B36, 0xF468, + 0x9B37, 0xF469, 0x9B38, 0xF46A, 0x9B39, 0xF46B, 0x9B3A, 0xF46C, + 0x9B3B, 0xE5F7, 0x9B3C, 0xB9ED, 0x9B3D, 0xF46D, 0x9B3E, 0xF46E, + 0x9B3F, 0xF46F, 0x9B40, 0xF470, 0x9B41, 0xBFFD, 0x9B42, 0xBBEA, + 0x9B43, 0xF7C9, 0x9B44, 0xC6C7, 0x9B45, 0xF7C8, 0x9B46, 0xF471, + 0x9B47, 0xF7CA, 0x9B48, 0xF7CC, 0x9B49, 0xF7CB, 0x9B4A, 0xF472, + 0x9B4B, 0xF473, 0x9B4C, 0xF474, 0x9B4D, 0xF7CD, 0x9B4E, 0xF475, + 0x9B4F, 0xCEBA, 0x9B50, 0xF476, 0x9B51, 0xF7CE, 0x9B52, 0xF477, + 0x9B53, 0xF478, 0x9B54, 0xC4A7, 0x9B55, 0xF479, 0x9B56, 0xF47A, + 0x9B57, 0xF47B, 0x9B58, 0xF47C, 0x9B59, 0xF47D, 0x9B5A, 0xF47E, + 0x9B5B, 0xF480, 0x9B5C, 0xF481, 0x9B5D, 0xF482, 0x9B5E, 0xF483, + 0x9B5F, 0xF484, 0x9B60, 0xF485, 0x9B61, 0xF486, 0x9B62, 0xF487, + 0x9B63, 0xF488, 0x9B64, 0xF489, 0x9B65, 0xF48A, 0x9B66, 0xF48B, + 0x9B67, 0xF48C, 0x9B68, 0xF48D, 0x9B69, 0xF48E, 0x9B6A, 0xF48F, + 0x9B6B, 0xF490, 0x9B6C, 0xF491, 0x9B6D, 0xF492, 0x9B6E, 0xF493, + 0x9B6F, 0xF494, 0x9B70, 0xF495, 0x9B71, 0xF496, 0x9B72, 0xF497, + 0x9B73, 0xF498, 0x9B74, 0xF499, 0x9B75, 0xF49A, 0x9B76, 0xF49B, + 0x9B77, 0xF49C, 0x9B78, 0xF49D, 0x9B79, 0xF49E, 0x9B7A, 0xF49F, + 0x9B7B, 0xF4A0, 0x9B7C, 0xF540, 0x9B7D, 0xF541, 0x9B7E, 0xF542, + 0x9B7F, 0xF543, 0x9B80, 0xF544, 0x9B81, 0xF545, 0x9B82, 0xF546, + 0x9B83, 0xF547, 0x9B84, 0xF548, 0x9B85, 0xF549, 0x9B86, 0xF54A, + 0x9B87, 0xF54B, 0x9B88, 0xF54C, 0x9B89, 0xF54D, 0x9B8A, 0xF54E, + 0x9B8B, 0xF54F, 0x9B8C, 0xF550, 0x9B8D, 0xF551, 0x9B8E, 0xF552, + 0x9B8F, 0xF553, 0x9B90, 0xF554, 0x9B91, 0xF555, 0x9B92, 0xF556, + 0x9B93, 0xF557, 0x9B94, 0xF558, 0x9B95, 0xF559, 0x9B96, 0xF55A, + 0x9B97, 0xF55B, 0x9B98, 0xF55C, 0x9B99, 0xF55D, 0x9B9A, 0xF55E, + 0x9B9B, 0xF55F, 0x9B9C, 0xF560, 0x9B9D, 0xF561, 0x9B9E, 0xF562, + 0x9B9F, 0xF563, 0x9BA0, 0xF564, 0x9BA1, 0xF565, 0x9BA2, 0xF566, + 0x9BA3, 0xF567, 0x9BA4, 0xF568, 0x9BA5, 0xF569, 0x9BA6, 0xF56A, + 0x9BA7, 0xF56B, 0x9BA8, 0xF56C, 0x9BA9, 0xF56D, 0x9BAA, 0xF56E, + 0x9BAB, 0xF56F, 0x9BAC, 0xF570, 0x9BAD, 0xF571, 0x9BAE, 0xF572, + 0x9BAF, 0xF573, 0x9BB0, 0xF574, 0x9BB1, 0xF575, 0x9BB2, 0xF576, + 0x9BB3, 0xF577, 0x9BB4, 0xF578, 0x9BB5, 0xF579, 0x9BB6, 0xF57A, + 0x9BB7, 0xF57B, 0x9BB8, 0xF57C, 0x9BB9, 0xF57D, 0x9BBA, 0xF57E, + 0x9BBB, 0xF580, 0x9BBC, 0xF581, 0x9BBD, 0xF582, 0x9BBE, 0xF583, + 0x9BBF, 0xF584, 0x9BC0, 0xF585, 0x9BC1, 0xF586, 0x9BC2, 0xF587, + 0x9BC3, 0xF588, 0x9BC4, 0xF589, 0x9BC5, 0xF58A, 0x9BC6, 0xF58B, + 0x9BC7, 0xF58C, 0x9BC8, 0xF58D, 0x9BC9, 0xF58E, 0x9BCA, 0xF58F, + 0x9BCB, 0xF590, 0x9BCC, 0xF591, 0x9BCD, 0xF592, 0x9BCE, 0xF593, + 0x9BCF, 0xF594, 0x9BD0, 0xF595, 0x9BD1, 0xF596, 0x9BD2, 0xF597, + 0x9BD3, 0xF598, 0x9BD4, 0xF599, 0x9BD5, 0xF59A, 0x9BD6, 0xF59B, + 0x9BD7, 0xF59C, 0x9BD8, 0xF59D, 0x9BD9, 0xF59E, 0x9BDA, 0xF59F, + 0x9BDB, 0xF5A0, 0x9BDC, 0xF640, 0x9BDD, 0xF641, 0x9BDE, 0xF642, + 0x9BDF, 0xF643, 0x9BE0, 0xF644, 0x9BE1, 0xF645, 0x9BE2, 0xF646, + 0x9BE3, 0xF647, 0x9BE4, 0xF648, 0x9BE5, 0xF649, 0x9BE6, 0xF64A, + 0x9BE7, 0xF64B, 0x9BE8, 0xF64C, 0x9BE9, 0xF64D, 0x9BEA, 0xF64E, + 0x9BEB, 0xF64F, 0x9BEC, 0xF650, 0x9BED, 0xF651, 0x9BEE, 0xF652, + 0x9BEF, 0xF653, 0x9BF0, 0xF654, 0x9BF1, 0xF655, 0x9BF2, 0xF656, + 0x9BF3, 0xF657, 0x9BF4, 0xF658, 0x9BF5, 0xF659, 0x9BF6, 0xF65A, + 0x9BF7, 0xF65B, 0x9BF8, 0xF65C, 0x9BF9, 0xF65D, 0x9BFA, 0xF65E, + 0x9BFB, 0xF65F, 0x9BFC, 0xF660, 0x9BFD, 0xF661, 0x9BFE, 0xF662, + 0x9BFF, 0xF663, 0x9C00, 0xF664, 0x9C01, 0xF665, 0x9C02, 0xF666, + 0x9C03, 0xF667, 0x9C04, 0xF668, 0x9C05, 0xF669, 0x9C06, 0xF66A, + 0x9C07, 0xF66B, 0x9C08, 0xF66C, 0x9C09, 0xF66D, 0x9C0A, 0xF66E, + 0x9C0B, 0xF66F, 0x9C0C, 0xF670, 0x9C0D, 0xF671, 0x9C0E, 0xF672, + 0x9C0F, 0xF673, 0x9C10, 0xF674, 0x9C11, 0xF675, 0x9C12, 0xF676, + 0x9C13, 0xF677, 0x9C14, 0xF678, 0x9C15, 0xF679, 0x9C16, 0xF67A, + 0x9C17, 0xF67B, 0x9C18, 0xF67C, 0x9C19, 0xF67D, 0x9C1A, 0xF67E, + 0x9C1B, 0xF680, 0x9C1C, 0xF681, 0x9C1D, 0xF682, 0x9C1E, 0xF683, + 0x9C1F, 0xF684, 0x9C20, 0xF685, 0x9C21, 0xF686, 0x9C22, 0xF687, + 0x9C23, 0xF688, 0x9C24, 0xF689, 0x9C25, 0xF68A, 0x9C26, 0xF68B, + 0x9C27, 0xF68C, 0x9C28, 0xF68D, 0x9C29, 0xF68E, 0x9C2A, 0xF68F, + 0x9C2B, 0xF690, 0x9C2C, 0xF691, 0x9C2D, 0xF692, 0x9C2E, 0xF693, + 0x9C2F, 0xF694, 0x9C30, 0xF695, 0x9C31, 0xF696, 0x9C32, 0xF697, + 0x9C33, 0xF698, 0x9C34, 0xF699, 0x9C35, 0xF69A, 0x9C36, 0xF69B, + 0x9C37, 0xF69C, 0x9C38, 0xF69D, 0x9C39, 0xF69E, 0x9C3A, 0xF69F, + 0x9C3B, 0xF6A0, 0x9C3C, 0xF740, 0x9C3D, 0xF741, 0x9C3E, 0xF742, + 0x9C3F, 0xF743, 0x9C40, 0xF744, 0x9C41, 0xF745, 0x9C42, 0xF746, + 0x9C43, 0xF747, 0x9C44, 0xF748, 0x9C45, 0xF749, 0x9C46, 0xF74A, + 0x9C47, 0xF74B, 0x9C48, 0xF74C, 0x9C49, 0xF74D, 0x9C4A, 0xF74E, + 0x9C4B, 0xF74F, 0x9C4C, 0xF750, 0x9C4D, 0xF751, 0x9C4E, 0xF752, + 0x9C4F, 0xF753, 0x9C50, 0xF754, 0x9C51, 0xF755, 0x9C52, 0xF756, + 0x9C53, 0xF757, 0x9C54, 0xF758, 0x9C55, 0xF759, 0x9C56, 0xF75A, + 0x9C57, 0xF75B, 0x9C58, 0xF75C, 0x9C59, 0xF75D, 0x9C5A, 0xF75E, + 0x9C5B, 0xF75F, 0x9C5C, 0xF760, 0x9C5D, 0xF761, 0x9C5E, 0xF762, + 0x9C5F, 0xF763, 0x9C60, 0xF764, 0x9C61, 0xF765, 0x9C62, 0xF766, + 0x9C63, 0xF767, 0x9C64, 0xF768, 0x9C65, 0xF769, 0x9C66, 0xF76A, + 0x9C67, 0xF76B, 0x9C68, 0xF76C, 0x9C69, 0xF76D, 0x9C6A, 0xF76E, + 0x9C6B, 0xF76F, 0x9C6C, 0xF770, 0x9C6D, 0xF771, 0x9C6E, 0xF772, + 0x9C6F, 0xF773, 0x9C70, 0xF774, 0x9C71, 0xF775, 0x9C72, 0xF776, + 0x9C73, 0xF777, 0x9C74, 0xF778, 0x9C75, 0xF779, 0x9C76, 0xF77A, + 0x9C77, 0xF77B, 0x9C78, 0xF77C, 0x9C79, 0xF77D, 0x9C7A, 0xF77E, + 0x9C7B, 0xF780, 0x9C7C, 0xD3E3, 0x9C7D, 0xF781, 0x9C7E, 0xF782, + 0x9C7F, 0xF6CF, 0x9C80, 0xF783, 0x9C81, 0xC2B3, 0x9C82, 0xF6D0, + 0x9C83, 0xF784, 0x9C84, 0xF785, 0x9C85, 0xF6D1, 0x9C86, 0xF6D2, + 0x9C87, 0xF6D3, 0x9C88, 0xF6D4, 0x9C89, 0xF786, 0x9C8A, 0xF787, + 0x9C8B, 0xF6D6, 0x9C8C, 0xF788, 0x9C8D, 0xB1AB, 0x9C8E, 0xF6D7, + 0x9C8F, 0xF789, 0x9C90, 0xF6D8, 0x9C91, 0xF6D9, 0x9C92, 0xF6DA, + 0x9C93, 0xF78A, 0x9C94, 0xF6DB, 0x9C95, 0xF6DC, 0x9C96, 0xF78B, + 0x9C97, 0xF78C, 0x9C98, 0xF78D, 0x9C99, 0xF78E, 0x9C9A, 0xF6DD, + 0x9C9B, 0xF6DE, 0x9C9C, 0xCFCA, 0x9C9D, 0xF78F, 0x9C9E, 0xF6DF, + 0x9C9F, 0xF6E0, 0x9CA0, 0xF6E1, 0x9CA1, 0xF6E2, 0x9CA2, 0xF6E3, + 0x9CA3, 0xF6E4, 0x9CA4, 0xC0F0, 0x9CA5, 0xF6E5, 0x9CA6, 0xF6E6, + 0x9CA7, 0xF6E7, 0x9CA8, 0xF6E8, 0x9CA9, 0xF6E9, 0x9CAA, 0xF790, + 0x9CAB, 0xF6EA, 0x9CAC, 0xF791, 0x9CAD, 0xF6EB, 0x9CAE, 0xF6EC, + 0x9CAF, 0xF792, 0x9CB0, 0xF6ED, 0x9CB1, 0xF6EE, 0x9CB2, 0xF6EF, + 0x9CB3, 0xF6F0, 0x9CB4, 0xF6F1, 0x9CB5, 0xF6F2, 0x9CB6, 0xF6F3, + 0x9CB7, 0xF6F4, 0x9CB8, 0xBEA8, 0x9CB9, 0xF793, 0x9CBA, 0xF6F5, + 0x9CBB, 0xF6F6, 0x9CBC, 0xF6F7, 0x9CBD, 0xF6F8, 0x9CBE, 0xF794, + 0x9CBF, 0xF795, 0x9CC0, 0xF796, 0x9CC1, 0xF797, 0x9CC2, 0xF798, + 0x9CC3, 0xC8FA, 0x9CC4, 0xF6F9, 0x9CC5, 0xF6FA, 0x9CC6, 0xF6FB, + 0x9CC7, 0xF6FC, 0x9CC8, 0xF799, 0x9CC9, 0xF79A, 0x9CCA, 0xF6FD, + 0x9CCB, 0xF6FE, 0x9CCC, 0xF7A1, 0x9CCD, 0xF7A2, 0x9CCE, 0xF7A3, + 0x9CCF, 0xF7A4, 0x9CD0, 0xF7A5, 0x9CD1, 0xF79B, 0x9CD2, 0xF79C, + 0x9CD3, 0xF7A6, 0x9CD4, 0xF7A7, 0x9CD5, 0xF7A8, 0x9CD6, 0xB1EE, + 0x9CD7, 0xF7A9, 0x9CD8, 0xF7AA, 0x9CD9, 0xF7AB, 0x9CDA, 0xF79D, + 0x9CDB, 0xF79E, 0x9CDC, 0xF7AC, 0x9CDD, 0xF7AD, 0x9CDE, 0xC1DB, + 0x9CDF, 0xF7AE, 0x9CE0, 0xF79F, 0x9CE1, 0xF7A0, 0x9CE2, 0xF7AF, + 0x9CE3, 0xF840, 0x9CE4, 0xF841, 0x9CE5, 0xF842, 0x9CE6, 0xF843, + 0x9CE7, 0xF844, 0x9CE8, 0xF845, 0x9CE9, 0xF846, 0x9CEA, 0xF847, + 0x9CEB, 0xF848, 0x9CEC, 0xF849, 0x9CED, 0xF84A, 0x9CEE, 0xF84B, + 0x9CEF, 0xF84C, 0x9CF0, 0xF84D, 0x9CF1, 0xF84E, 0x9CF2, 0xF84F, + 0x9CF3, 0xF850, 0x9CF4, 0xF851, 0x9CF5, 0xF852, 0x9CF6, 0xF853, + 0x9CF7, 0xF854, 0x9CF8, 0xF855, 0x9CF9, 0xF856, 0x9CFA, 0xF857, + 0x9CFB, 0xF858, 0x9CFC, 0xF859, 0x9CFD, 0xF85A, 0x9CFE, 0xF85B, + 0x9CFF, 0xF85C, 0x9D00, 0xF85D, 0x9D01, 0xF85E, 0x9D02, 0xF85F, + 0x9D03, 0xF860, 0x9D04, 0xF861, 0x9D05, 0xF862, 0x9D06, 0xF863, + 0x9D07, 0xF864, 0x9D08, 0xF865, 0x9D09, 0xF866, 0x9D0A, 0xF867, + 0x9D0B, 0xF868, 0x9D0C, 0xF869, 0x9D0D, 0xF86A, 0x9D0E, 0xF86B, + 0x9D0F, 0xF86C, 0x9D10, 0xF86D, 0x9D11, 0xF86E, 0x9D12, 0xF86F, + 0x9D13, 0xF870, 0x9D14, 0xF871, 0x9D15, 0xF872, 0x9D16, 0xF873, + 0x9D17, 0xF874, 0x9D18, 0xF875, 0x9D19, 0xF876, 0x9D1A, 0xF877, + 0x9D1B, 0xF878, 0x9D1C, 0xF879, 0x9D1D, 0xF87A, 0x9D1E, 0xF87B, + 0x9D1F, 0xF87C, 0x9D20, 0xF87D, 0x9D21, 0xF87E, 0x9D22, 0xF880, + 0x9D23, 0xF881, 0x9D24, 0xF882, 0x9D25, 0xF883, 0x9D26, 0xF884, + 0x9D27, 0xF885, 0x9D28, 0xF886, 0x9D29, 0xF887, 0x9D2A, 0xF888, + 0x9D2B, 0xF889, 0x9D2C, 0xF88A, 0x9D2D, 0xF88B, 0x9D2E, 0xF88C, + 0x9D2F, 0xF88D, 0x9D30, 0xF88E, 0x9D31, 0xF88F, 0x9D32, 0xF890, + 0x9D33, 0xF891, 0x9D34, 0xF892, 0x9D35, 0xF893, 0x9D36, 0xF894, + 0x9D37, 0xF895, 0x9D38, 0xF896, 0x9D39, 0xF897, 0x9D3A, 0xF898, + 0x9D3B, 0xF899, 0x9D3C, 0xF89A, 0x9D3D, 0xF89B, 0x9D3E, 0xF89C, + 0x9D3F, 0xF89D, 0x9D40, 0xF89E, 0x9D41, 0xF89F, 0x9D42, 0xF8A0, + 0x9D43, 0xF940, 0x9D44, 0xF941, 0x9D45, 0xF942, 0x9D46, 0xF943, + 0x9D47, 0xF944, 0x9D48, 0xF945, 0x9D49, 0xF946, 0x9D4A, 0xF947, + 0x9D4B, 0xF948, 0x9D4C, 0xF949, 0x9D4D, 0xF94A, 0x9D4E, 0xF94B, + 0x9D4F, 0xF94C, 0x9D50, 0xF94D, 0x9D51, 0xF94E, 0x9D52, 0xF94F, + 0x9D53, 0xF950, 0x9D54, 0xF951, 0x9D55, 0xF952, 0x9D56, 0xF953, + 0x9D57, 0xF954, 0x9D58, 0xF955, 0x9D59, 0xF956, 0x9D5A, 0xF957, + 0x9D5B, 0xF958, 0x9D5C, 0xF959, 0x9D5D, 0xF95A, 0x9D5E, 0xF95B, + 0x9D5F, 0xF95C, 0x9D60, 0xF95D, 0x9D61, 0xF95E, 0x9D62, 0xF95F, + 0x9D63, 0xF960, 0x9D64, 0xF961, 0x9D65, 0xF962, 0x9D66, 0xF963, + 0x9D67, 0xF964, 0x9D68, 0xF965, 0x9D69, 0xF966, 0x9D6A, 0xF967, + 0x9D6B, 0xF968, 0x9D6C, 0xF969, 0x9D6D, 0xF96A, 0x9D6E, 0xF96B, + 0x9D6F, 0xF96C, 0x9D70, 0xF96D, 0x9D71, 0xF96E, 0x9D72, 0xF96F, + 0x9D73, 0xF970, 0x9D74, 0xF971, 0x9D75, 0xF972, 0x9D76, 0xF973, + 0x9D77, 0xF974, 0x9D78, 0xF975, 0x9D79, 0xF976, 0x9D7A, 0xF977, + 0x9D7B, 0xF978, 0x9D7C, 0xF979, 0x9D7D, 0xF97A, 0x9D7E, 0xF97B, + 0x9D7F, 0xF97C, 0x9D80, 0xF97D, 0x9D81, 0xF97E, 0x9D82, 0xF980, + 0x9D83, 0xF981, 0x9D84, 0xF982, 0x9D85, 0xF983, 0x9D86, 0xF984, + 0x9D87, 0xF985, 0x9D88, 0xF986, 0x9D89, 0xF987, 0x9D8A, 0xF988, + 0x9D8B, 0xF989, 0x9D8C, 0xF98A, 0x9D8D, 0xF98B, 0x9D8E, 0xF98C, + 0x9D8F, 0xF98D, 0x9D90, 0xF98E, 0x9D91, 0xF98F, 0x9D92, 0xF990, + 0x9D93, 0xF991, 0x9D94, 0xF992, 0x9D95, 0xF993, 0x9D96, 0xF994, + 0x9D97, 0xF995, 0x9D98, 0xF996, 0x9D99, 0xF997, 0x9D9A, 0xF998, + 0x9D9B, 0xF999, 0x9D9C, 0xF99A, 0x9D9D, 0xF99B, 0x9D9E, 0xF99C, + 0x9D9F, 0xF99D, 0x9DA0, 0xF99E, 0x9DA1, 0xF99F, 0x9DA2, 0xF9A0, + 0x9DA3, 0xFA40, 0x9DA4, 0xFA41, 0x9DA5, 0xFA42, 0x9DA6, 0xFA43, + 0x9DA7, 0xFA44, 0x9DA8, 0xFA45, 0x9DA9, 0xFA46, 0x9DAA, 0xFA47, + 0x9DAB, 0xFA48, 0x9DAC, 0xFA49, 0x9DAD, 0xFA4A, 0x9DAE, 0xFA4B, + 0x9DAF, 0xFA4C, 0x9DB0, 0xFA4D, 0x9DB1, 0xFA4E, 0x9DB2, 0xFA4F, + 0x9DB3, 0xFA50, 0x9DB4, 0xFA51, 0x9DB5, 0xFA52, 0x9DB6, 0xFA53, + 0x9DB7, 0xFA54, 0x9DB8, 0xFA55, 0x9DB9, 0xFA56, 0x9DBA, 0xFA57, + 0x9DBB, 0xFA58, 0x9DBC, 0xFA59, 0x9DBD, 0xFA5A, 0x9DBE, 0xFA5B, + 0x9DBF, 0xFA5C, 0x9DC0, 0xFA5D, 0x9DC1, 0xFA5E, 0x9DC2, 0xFA5F, + 0x9DC3, 0xFA60, 0x9DC4, 0xFA61, 0x9DC5, 0xFA62, 0x9DC6, 0xFA63, + 0x9DC7, 0xFA64, 0x9DC8, 0xFA65, 0x9DC9, 0xFA66, 0x9DCA, 0xFA67, + 0x9DCB, 0xFA68, 0x9DCC, 0xFA69, 0x9DCD, 0xFA6A, 0x9DCE, 0xFA6B, + 0x9DCF, 0xFA6C, 0x9DD0, 0xFA6D, 0x9DD1, 0xFA6E, 0x9DD2, 0xFA6F, + 0x9DD3, 0xFA70, 0x9DD4, 0xFA71, 0x9DD5, 0xFA72, 0x9DD6, 0xFA73, + 0x9DD7, 0xFA74, 0x9DD8, 0xFA75, 0x9DD9, 0xFA76, 0x9DDA, 0xFA77, + 0x9DDB, 0xFA78, 0x9DDC, 0xFA79, 0x9DDD, 0xFA7A, 0x9DDE, 0xFA7B, + 0x9DDF, 0xFA7C, 0x9DE0, 0xFA7D, 0x9DE1, 0xFA7E, 0x9DE2, 0xFA80, + 0x9DE3, 0xFA81, 0x9DE4, 0xFA82, 0x9DE5, 0xFA83, 0x9DE6, 0xFA84, + 0x9DE7, 0xFA85, 0x9DE8, 0xFA86, 0x9DE9, 0xFA87, 0x9DEA, 0xFA88, + 0x9DEB, 0xFA89, 0x9DEC, 0xFA8A, 0x9DED, 0xFA8B, 0x9DEE, 0xFA8C, + 0x9DEF, 0xFA8D, 0x9DF0, 0xFA8E, 0x9DF1, 0xFA8F, 0x9DF2, 0xFA90, + 0x9DF3, 0xFA91, 0x9DF4, 0xFA92, 0x9DF5, 0xFA93, 0x9DF6, 0xFA94, + 0x9DF7, 0xFA95, 0x9DF8, 0xFA96, 0x9DF9, 0xFA97, 0x9DFA, 0xFA98, + 0x9DFB, 0xFA99, 0x9DFC, 0xFA9A, 0x9DFD, 0xFA9B, 0x9DFE, 0xFA9C, + 0x9DFF, 0xFA9D, 0x9E00, 0xFA9E, 0x9E01, 0xFA9F, 0x9E02, 0xFAA0, + 0x9E03, 0xFB40, 0x9E04, 0xFB41, 0x9E05, 0xFB42, 0x9E06, 0xFB43, + 0x9E07, 0xFB44, 0x9E08, 0xFB45, 0x9E09, 0xFB46, 0x9E0A, 0xFB47, + 0x9E0B, 0xFB48, 0x9E0C, 0xFB49, 0x9E0D, 0xFB4A, 0x9E0E, 0xFB4B, + 0x9E0F, 0xFB4C, 0x9E10, 0xFB4D, 0x9E11, 0xFB4E, 0x9E12, 0xFB4F, + 0x9E13, 0xFB50, 0x9E14, 0xFB51, 0x9E15, 0xFB52, 0x9E16, 0xFB53, + 0x9E17, 0xFB54, 0x9E18, 0xFB55, 0x9E19, 0xFB56, 0x9E1A, 0xFB57, + 0x9E1B, 0xFB58, 0x9E1C, 0xFB59, 0x9E1D, 0xFB5A, 0x9E1E, 0xFB5B, + 0x9E1F, 0xC4F1, 0x9E20, 0xF0AF, 0x9E21, 0xBCA6, 0x9E22, 0xF0B0, + 0x9E23, 0xC3F9, 0x9E24, 0xFB5C, 0x9E25, 0xC5B8, 0x9E26, 0xD1BB, + 0x9E27, 0xFB5D, 0x9E28, 0xF0B1, 0x9E29, 0xF0B2, 0x9E2A, 0xF0B3, + 0x9E2B, 0xF0B4, 0x9E2C, 0xF0B5, 0x9E2D, 0xD1BC, 0x9E2E, 0xFB5E, + 0x9E2F, 0xD1EC, 0x9E30, 0xFB5F, 0x9E31, 0xF0B7, 0x9E32, 0xF0B6, + 0x9E33, 0xD4A7, 0x9E34, 0xFB60, 0x9E35, 0xCDD2, 0x9E36, 0xF0B8, + 0x9E37, 0xF0BA, 0x9E38, 0xF0B9, 0x9E39, 0xF0BB, 0x9E3A, 0xF0BC, + 0x9E3B, 0xFB61, 0x9E3C, 0xFB62, 0x9E3D, 0xB8EB, 0x9E3E, 0xF0BD, + 0x9E3F, 0xBAE8, 0x9E40, 0xFB63, 0x9E41, 0xF0BE, 0x9E42, 0xF0BF, + 0x9E43, 0xBEE9, 0x9E44, 0xF0C0, 0x9E45, 0xB6EC, 0x9E46, 0xF0C1, + 0x9E47, 0xF0C2, 0x9E48, 0xF0C3, 0x9E49, 0xF0C4, 0x9E4A, 0xC8B5, + 0x9E4B, 0xF0C5, 0x9E4C, 0xF0C6, 0x9E4D, 0xFB64, 0x9E4E, 0xF0C7, + 0x9E4F, 0xC5F4, 0x9E50, 0xFB65, 0x9E51, 0xF0C8, 0x9E52, 0xFB66, + 0x9E53, 0xFB67, 0x9E54, 0xFB68, 0x9E55, 0xF0C9, 0x9E56, 0xFB69, + 0x9E57, 0xF0CA, 0x9E58, 0xF7BD, 0x9E59, 0xFB6A, 0x9E5A, 0xF0CB, + 0x9E5B, 0xF0CC, 0x9E5C, 0xF0CD, 0x9E5D, 0xFB6B, 0x9E5E, 0xF0CE, + 0x9E5F, 0xFB6C, 0x9E60, 0xFB6D, 0x9E61, 0xFB6E, 0x9E62, 0xFB6F, + 0x9E63, 0xF0CF, 0x9E64, 0xBAD7, 0x9E65, 0xFB70, 0x9E66, 0xF0D0, + 0x9E67, 0xF0D1, 0x9E68, 0xF0D2, 0x9E69, 0xF0D3, 0x9E6A, 0xF0D4, + 0x9E6B, 0xF0D5, 0x9E6C, 0xF0D6, 0x9E6D, 0xF0D8, 0x9E6E, 0xFB71, + 0x9E6F, 0xFB72, 0x9E70, 0xD3A5, 0x9E71, 0xF0D7, 0x9E72, 0xFB73, + 0x9E73, 0xF0D9, 0x9E74, 0xFB74, 0x9E75, 0xFB75, 0x9E76, 0xFB76, + 0x9E77, 0xFB77, 0x9E78, 0xFB78, 0x9E79, 0xFB79, 0x9E7A, 0xFB7A, + 0x9E7B, 0xFB7B, 0x9E7C, 0xFB7C, 0x9E7D, 0xFB7D, 0x9E7E, 0xF5BA, + 0x9E7F, 0xC2B9, 0x9E80, 0xFB7E, 0x9E81, 0xFB80, 0x9E82, 0xF7E4, + 0x9E83, 0xFB81, 0x9E84, 0xFB82, 0x9E85, 0xFB83, 0x9E86, 0xFB84, + 0x9E87, 0xF7E5, 0x9E88, 0xF7E6, 0x9E89, 0xFB85, 0x9E8A, 0xFB86, + 0x9E8B, 0xF7E7, 0x9E8C, 0xFB87, 0x9E8D, 0xFB88, 0x9E8E, 0xFB89, + 0x9E8F, 0xFB8A, 0x9E90, 0xFB8B, 0x9E91, 0xFB8C, 0x9E92, 0xF7E8, + 0x9E93, 0xC2B4, 0x9E94, 0xFB8D, 0x9E95, 0xFB8E, 0x9E96, 0xFB8F, + 0x9E97, 0xFB90, 0x9E98, 0xFB91, 0x9E99, 0xFB92, 0x9E9A, 0xFB93, + 0x9E9B, 0xFB94, 0x9E9C, 0xFB95, 0x9E9D, 0xF7EA, 0x9E9E, 0xFB96, + 0x9E9F, 0xF7EB, 0x9EA0, 0xFB97, 0x9EA1, 0xFB98, 0x9EA2, 0xFB99, + 0x9EA3, 0xFB9A, 0x9EA4, 0xFB9B, 0x9EA5, 0xFB9C, 0x9EA6, 0xC2F3, + 0x9EA7, 0xFB9D, 0x9EA8, 0xFB9E, 0x9EA9, 0xFB9F, 0x9EAA, 0xFBA0, + 0x9EAB, 0xFC40, 0x9EAC, 0xFC41, 0x9EAD, 0xFC42, 0x9EAE, 0xFC43, + 0x9EAF, 0xFC44, 0x9EB0, 0xFC45, 0x9EB1, 0xFC46, 0x9EB2, 0xFC47, + 0x9EB3, 0xFC48, 0x9EB4, 0xF4F0, 0x9EB5, 0xFC49, 0x9EB6, 0xFC4A, + 0x9EB7, 0xFC4B, 0x9EB8, 0xF4EF, 0x9EB9, 0xFC4C, 0x9EBA, 0xFC4D, + 0x9EBB, 0xC2E9, 0x9EBC, 0xFC4E, 0x9EBD, 0xF7E1, 0x9EBE, 0xF7E2, + 0x9EBF, 0xFC4F, 0x9EC0, 0xFC50, 0x9EC1, 0xFC51, 0x9EC2, 0xFC52, + 0x9EC3, 0xFC53, 0x9EC4, 0xBBC6, 0x9EC5, 0xFC54, 0x9EC6, 0xFC55, + 0x9EC7, 0xFC56, 0x9EC8, 0xFC57, 0x9EC9, 0xD9E4, 0x9ECA, 0xFC58, + 0x9ECB, 0xFC59, 0x9ECC, 0xFC5A, 0x9ECD, 0xCAF2, 0x9ECE, 0xC0E8, + 0x9ECF, 0xF0A4, 0x9ED0, 0xFC5B, 0x9ED1, 0xBADA, 0x9ED2, 0xFC5C, + 0x9ED3, 0xFC5D, 0x9ED4, 0xC7AD, 0x9ED5, 0xFC5E, 0x9ED6, 0xFC5F, + 0x9ED7, 0xFC60, 0x9ED8, 0xC4AC, 0x9ED9, 0xFC61, 0x9EDA, 0xFC62, + 0x9EDB, 0xF7EC, 0x9EDC, 0xF7ED, 0x9EDD, 0xF7EE, 0x9EDE, 0xFC63, + 0x9EDF, 0xF7F0, 0x9EE0, 0xF7EF, 0x9EE1, 0xFC64, 0x9EE2, 0xF7F1, + 0x9EE3, 0xFC65, 0x9EE4, 0xFC66, 0x9EE5, 0xF7F4, 0x9EE6, 0xFC67, + 0x9EE7, 0xF7F3, 0x9EE8, 0xFC68, 0x9EE9, 0xF7F2, 0x9EEA, 0xF7F5, + 0x9EEB, 0xFC69, 0x9EEC, 0xFC6A, 0x9EED, 0xFC6B, 0x9EEE, 0xFC6C, + 0x9EEF, 0xF7F6, 0x9EF0, 0xFC6D, 0x9EF1, 0xFC6E, 0x9EF2, 0xFC6F, + 0x9EF3, 0xFC70, 0x9EF4, 0xFC71, 0x9EF5, 0xFC72, 0x9EF6, 0xFC73, + 0x9EF7, 0xFC74, 0x9EF8, 0xFC75, 0x9EF9, 0xEDE9, 0x9EFA, 0xFC76, + 0x9EFB, 0xEDEA, 0x9EFC, 0xEDEB, 0x9EFD, 0xFC77, 0x9EFE, 0xF6BC, + 0x9EFF, 0xFC78, 0x9F00, 0xFC79, 0x9F01, 0xFC7A, 0x9F02, 0xFC7B, + 0x9F03, 0xFC7C, 0x9F04, 0xFC7D, 0x9F05, 0xFC7E, 0x9F06, 0xFC80, + 0x9F07, 0xFC81, 0x9F08, 0xFC82, 0x9F09, 0xFC83, 0x9F0A, 0xFC84, + 0x9F0B, 0xF6BD, 0x9F0C, 0xFC85, 0x9F0D, 0xF6BE, 0x9F0E, 0xB6A6, + 0x9F0F, 0xFC86, 0x9F10, 0xD8BE, 0x9F11, 0xFC87, 0x9F12, 0xFC88, + 0x9F13, 0xB9C4, 0x9F14, 0xFC89, 0x9F15, 0xFC8A, 0x9F16, 0xFC8B, + 0x9F17, 0xD8BB, 0x9F18, 0xFC8C, 0x9F19, 0xDCB1, 0x9F1A, 0xFC8D, + 0x9F1B, 0xFC8E, 0x9F1C, 0xFC8F, 0x9F1D, 0xFC90, 0x9F1E, 0xFC91, + 0x9F1F, 0xFC92, 0x9F20, 0xCAF3, 0x9F21, 0xFC93, 0x9F22, 0xF7F7, + 0x9F23, 0xFC94, 0x9F24, 0xFC95, 0x9F25, 0xFC96, 0x9F26, 0xFC97, + 0x9F27, 0xFC98, 0x9F28, 0xFC99, 0x9F29, 0xFC9A, 0x9F2A, 0xFC9B, + 0x9F2B, 0xFC9C, 0x9F2C, 0xF7F8, 0x9F2D, 0xFC9D, 0x9F2E, 0xFC9E, + 0x9F2F, 0xF7F9, 0x9F30, 0xFC9F, 0x9F31, 0xFCA0, 0x9F32, 0xFD40, + 0x9F33, 0xFD41, 0x9F34, 0xFD42, 0x9F35, 0xFD43, 0x9F36, 0xFD44, + 0x9F37, 0xF7FB, 0x9F38, 0xFD45, 0x9F39, 0xF7FA, 0x9F3A, 0xFD46, + 0x9F3B, 0xB1C7, 0x9F3C, 0xFD47, 0x9F3D, 0xF7FC, 0x9F3E, 0xF7FD, + 0x9F3F, 0xFD48, 0x9F40, 0xFD49, 0x9F41, 0xFD4A, 0x9F42, 0xFD4B, + 0x9F43, 0xFD4C, 0x9F44, 0xF7FE, 0x9F45, 0xFD4D, 0x9F46, 0xFD4E, + 0x9F47, 0xFD4F, 0x9F48, 0xFD50, 0x9F49, 0xFD51, 0x9F4A, 0xFD52, + 0x9F4B, 0xFD53, 0x9F4C, 0xFD54, 0x9F4D, 0xFD55, 0x9F4E, 0xFD56, + 0x9F4F, 0xFD57, 0x9F50, 0xC6EB, 0x9F51, 0xECB4, 0x9F52, 0xFD58, + 0x9F53, 0xFD59, 0x9F54, 0xFD5A, 0x9F55, 0xFD5B, 0x9F56, 0xFD5C, + 0x9F57, 0xFD5D, 0x9F58, 0xFD5E, 0x9F59, 0xFD5F, 0x9F5A, 0xFD60, + 0x9F5B, 0xFD61, 0x9F5C, 0xFD62, 0x9F5D, 0xFD63, 0x9F5E, 0xFD64, + 0x9F5F, 0xFD65, 0x9F60, 0xFD66, 0x9F61, 0xFD67, 0x9F62, 0xFD68, + 0x9F63, 0xFD69, 0x9F64, 0xFD6A, 0x9F65, 0xFD6B, 0x9F66, 0xFD6C, + 0x9F67, 0xFD6D, 0x9F68, 0xFD6E, 0x9F69, 0xFD6F, 0x9F6A, 0xFD70, + 0x9F6B, 0xFD71, 0x9F6C, 0xFD72, 0x9F6D, 0xFD73, 0x9F6E, 0xFD74, + 0x9F6F, 0xFD75, 0x9F70, 0xFD76, 0x9F71, 0xFD77, 0x9F72, 0xFD78, + 0x9F73, 0xFD79, 0x9F74, 0xFD7A, 0x9F75, 0xFD7B, 0x9F76, 0xFD7C, + 0x9F77, 0xFD7D, 0x9F78, 0xFD7E, 0x9F79, 0xFD80, 0x9F7A, 0xFD81, + 0x9F7B, 0xFD82, 0x9F7C, 0xFD83, 0x9F7D, 0xFD84, 0x9F7E, 0xFD85, + 0x9F7F, 0xB3DD, 0x9F80, 0xF6B3, 0x9F81, 0xFD86, 0x9F82, 0xFD87, + 0x9F83, 0xF6B4, 0x9F84, 0xC1E4, 0x9F85, 0xF6B5, 0x9F86, 0xF6B6, + 0x9F87, 0xF6B7, 0x9F88, 0xF6B8, 0x9F89, 0xF6B9, 0x9F8A, 0xF6BA, + 0x9F8B, 0xC8A3, 0x9F8C, 0xF6BB, 0x9F8D, 0xFD88, 0x9F8E, 0xFD89, + 0x9F8F, 0xFD8A, 0x9F90, 0xFD8B, 0x9F91, 0xFD8C, 0x9F92, 0xFD8D, + 0x9F93, 0xFD8E, 0x9F94, 0xFD8F, 0x9F95, 0xFD90, 0x9F96, 0xFD91, + 0x9F97, 0xFD92, 0x9F98, 0xFD93, 0x9F99, 0xC1FA, 0x9F9A, 0xB9A8, + 0x9F9B, 0xEDE8, 0x9F9C, 0xFD94, 0x9F9D, 0xFD95, 0x9F9E, 0xFD96, + 0x9F9F, 0xB9EA, 0x9FA0, 0xD9DF, 0x9FA1, 0xFD97, 0x9FA2, 0xFD98, + 0x9FA3, 0xFD99, 0x9FA4, 0xFD9A, 0x9FA5, 0xFD9B, 0xF92C, 0xFD9C, + 0xF979, 0xFD9D, 0xF995, 0xFD9E, 0xF9E7, 0xFD9F, 0xF9F1, 0xFDA0, + 0xFA0C, 0xFE40, 0xFA0D, 0xFE41, 0xFA0E, 0xFE42, 0xFA0F, 0xFE43, + 0xFA11, 0xFE44, 0xFA13, 0xFE45, 0xFA14, 0xFE46, 0xFA18, 0xFE47, + 0xFA1F, 0xFE48, 0xFA20, 0xFE49, 0xFA21, 0xFE4A, 0xFA23, 0xFE4B, + 0xFA24, 0xFE4C, 0xFA27, 0xFE4D, 0xFA28, 0xFE4E, 0xFA29, 0xFE4F, + 0xFE30, 0xA955, 0xFE31, 0xA6F2, 0xFE33, 0xA6F4, 0xFE34, 0xA6F5, + 0xFE35, 0xA6E0, 0xFE36, 0xA6E1, 0xFE37, 0xA6F0, 0xFE38, 0xA6F1, + 0xFE39, 0xA6E2, 0xFE3A, 0xA6E3, 0xFE3B, 0xA6EE, 0xFE3C, 0xA6EF, + 0xFE3D, 0xA6E6, 0xFE3E, 0xA6E7, 0xFE3F, 0xA6E4, 0xFE40, 0xA6E5, + 0xFE41, 0xA6E8, 0xFE42, 0xA6E9, 0xFE43, 0xA6EA, 0xFE44, 0xA6EB, + 0xFE49, 0xA968, 0xFE4A, 0xA969, 0xFE4B, 0xA96A, 0xFE4C, 0xA96B, + 0xFE4D, 0xA96C, 0xFE4E, 0xA96D, 0xFE4F, 0xA96E, 0xFE50, 0xA96F, + 0xFE51, 0xA970, 0xFE52, 0xA971, 0xFE54, 0xA972, 0xFE55, 0xA973, + 0xFE56, 0xA974, 0xFE57, 0xA975, 0xFE59, 0xA976, 0xFE5A, 0xA977, + 0xFE5B, 0xA978, 0xFE5C, 0xA979, 0xFE5D, 0xA97A, 0xFE5E, 0xA97B, + 0xFE5F, 0xA97C, 0xFE60, 0xA97D, 0xFE61, 0xA97E, 0xFE62, 0xA980, + 0xFE63, 0xA981, 0xFE64, 0xA982, 0xFE65, 0xA983, 0xFE66, 0xA984, + 0xFE68, 0xA985, 0xFE69, 0xA986, 0xFE6A, 0xA987, 0xFE6B, 0xA988, + 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA1E7, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, + 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, + 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, + 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, + 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, + 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, + 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, + 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA3DC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, + 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, + 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, + 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, + 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA1AB, 0xFFE0, 0xA1E9, 0xFFE1, 0xA1EA, + 0xFFE2, 0xA956, 0xFFE3, 0xA3FE, 0xFFE4, 0xA957, 0xFFE5, 0xA3A4, + 0, 0 +}; + +static +const WCHAR oem2uni[] = { +/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ + 0x0080, 0x20AC, 0x8140, 0x4E02, 0x8141, 0x4E04, 0x8142, 0x4E05, + 0x8143, 0x4E06, 0x8144, 0x4E0F, 0x8145, 0x4E12, 0x8146, 0x4E17, + 0x8147, 0x4E1F, 0x8148, 0x4E20, 0x8149, 0x4E21, 0x814A, 0x4E23, + 0x814B, 0x4E26, 0x814C, 0x4E29, 0x814D, 0x4E2E, 0x814E, 0x4E2F, + 0x814F, 0x4E31, 0x8150, 0x4E33, 0x8151, 0x4E35, 0x8152, 0x4E37, + 0x8153, 0x4E3C, 0x8154, 0x4E40, 0x8155, 0x4E41, 0x8156, 0x4E42, + 0x8157, 0x4E44, 0x8158, 0x4E46, 0x8159, 0x4E4A, 0x815A, 0x4E51, + 0x815B, 0x4E55, 0x815C, 0x4E57, 0x815D, 0x4E5A, 0x815E, 0x4E5B, + 0x815F, 0x4E62, 0x8160, 0x4E63, 0x8161, 0x4E64, 0x8162, 0x4E65, + 0x8163, 0x4E67, 0x8164, 0x4E68, 0x8165, 0x4E6A, 0x8166, 0x4E6B, + 0x8167, 0x4E6C, 0x8168, 0x4E6D, 0x8169, 0x4E6E, 0x816A, 0x4E6F, + 0x816B, 0x4E72, 0x816C, 0x4E74, 0x816D, 0x4E75, 0x816E, 0x4E76, + 0x816F, 0x4E77, 0x8170, 0x4E78, 0x8171, 0x4E79, 0x8172, 0x4E7A, + 0x8173, 0x4E7B, 0x8174, 0x4E7C, 0x8175, 0x4E7D, 0x8176, 0x4E7F, + 0x8177, 0x4E80, 0x8178, 0x4E81, 0x8179, 0x4E82, 0x817A, 0x4E83, + 0x817B, 0x4E84, 0x817C, 0x4E85, 0x817D, 0x4E87, 0x817E, 0x4E8A, + 0x8180, 0x4E90, 0x8181, 0x4E96, 0x8182, 0x4E97, 0x8183, 0x4E99, + 0x8184, 0x4E9C, 0x8185, 0x4E9D, 0x8186, 0x4E9E, 0x8187, 0x4EA3, + 0x8188, 0x4EAA, 0x8189, 0x4EAF, 0x818A, 0x4EB0, 0x818B, 0x4EB1, + 0x818C, 0x4EB4, 0x818D, 0x4EB6, 0x818E, 0x4EB7, 0x818F, 0x4EB8, + 0x8190, 0x4EB9, 0x8191, 0x4EBC, 0x8192, 0x4EBD, 0x8193, 0x4EBE, + 0x8194, 0x4EC8, 0x8195, 0x4ECC, 0x8196, 0x4ECF, 0x8197, 0x4ED0, + 0x8198, 0x4ED2, 0x8199, 0x4EDA, 0x819A, 0x4EDB, 0x819B, 0x4EDC, + 0x819C, 0x4EE0, 0x819D, 0x4EE2, 0x819E, 0x4EE6, 0x819F, 0x4EE7, + 0x81A0, 0x4EE9, 0x81A1, 0x4EED, 0x81A2, 0x4EEE, 0x81A3, 0x4EEF, + 0x81A4, 0x4EF1, 0x81A5, 0x4EF4, 0x81A6, 0x4EF8, 0x81A7, 0x4EF9, + 0x81A8, 0x4EFA, 0x81A9, 0x4EFC, 0x81AA, 0x4EFE, 0x81AB, 0x4F00, + 0x81AC, 0x4F02, 0x81AD, 0x4F03, 0x81AE, 0x4F04, 0x81AF, 0x4F05, + 0x81B0, 0x4F06, 0x81B1, 0x4F07, 0x81B2, 0x4F08, 0x81B3, 0x4F0B, + 0x81B4, 0x4F0C, 0x81B5, 0x4F12, 0x81B6, 0x4F13, 0x81B7, 0x4F14, + 0x81B8, 0x4F15, 0x81B9, 0x4F16, 0x81BA, 0x4F1C, 0x81BB, 0x4F1D, + 0x81BC, 0x4F21, 0x81BD, 0x4F23, 0x81BE, 0x4F28, 0x81BF, 0x4F29, + 0x81C0, 0x4F2C, 0x81C1, 0x4F2D, 0x81C2, 0x4F2E, 0x81C3, 0x4F31, + 0x81C4, 0x4F33, 0x81C5, 0x4F35, 0x81C6, 0x4F37, 0x81C7, 0x4F39, + 0x81C8, 0x4F3B, 0x81C9, 0x4F3E, 0x81CA, 0x4F3F, 0x81CB, 0x4F40, + 0x81CC, 0x4F41, 0x81CD, 0x4F42, 0x81CE, 0x4F44, 0x81CF, 0x4F45, + 0x81D0, 0x4F47, 0x81D1, 0x4F48, 0x81D2, 0x4F49, 0x81D3, 0x4F4A, + 0x81D4, 0x4F4B, 0x81D5, 0x4F4C, 0x81D6, 0x4F52, 0x81D7, 0x4F54, + 0x81D8, 0x4F56, 0x81D9, 0x4F61, 0x81DA, 0x4F62, 0x81DB, 0x4F66, + 0x81DC, 0x4F68, 0x81DD, 0x4F6A, 0x81DE, 0x4F6B, 0x81DF, 0x4F6D, + 0x81E0, 0x4F6E, 0x81E1, 0x4F71, 0x81E2, 0x4F72, 0x81E3, 0x4F75, + 0x81E4, 0x4F77, 0x81E5, 0x4F78, 0x81E6, 0x4F79, 0x81E7, 0x4F7A, + 0x81E8, 0x4F7D, 0x81E9, 0x4F80, 0x81EA, 0x4F81, 0x81EB, 0x4F82, + 0x81EC, 0x4F85, 0x81ED, 0x4F86, 0x81EE, 0x4F87, 0x81EF, 0x4F8A, + 0x81F0, 0x4F8C, 0x81F1, 0x4F8E, 0x81F2, 0x4F90, 0x81F3, 0x4F92, + 0x81F4, 0x4F93, 0x81F5, 0x4F95, 0x81F6, 0x4F96, 0x81F7, 0x4F98, + 0x81F8, 0x4F99, 0x81F9, 0x4F9A, 0x81FA, 0x4F9C, 0x81FB, 0x4F9E, + 0x81FC, 0x4F9F, 0x81FD, 0x4FA1, 0x81FE, 0x4FA2, 0x8240, 0x4FA4, + 0x8241, 0x4FAB, 0x8242, 0x4FAD, 0x8243, 0x4FB0, 0x8244, 0x4FB1, + 0x8245, 0x4FB2, 0x8246, 0x4FB3, 0x8247, 0x4FB4, 0x8248, 0x4FB6, + 0x8249, 0x4FB7, 0x824A, 0x4FB8, 0x824B, 0x4FB9, 0x824C, 0x4FBA, + 0x824D, 0x4FBB, 0x824E, 0x4FBC, 0x824F, 0x4FBD, 0x8250, 0x4FBE, + 0x8251, 0x4FC0, 0x8252, 0x4FC1, 0x8253, 0x4FC2, 0x8254, 0x4FC6, + 0x8255, 0x4FC7, 0x8256, 0x4FC8, 0x8257, 0x4FC9, 0x8258, 0x4FCB, + 0x8259, 0x4FCC, 0x825A, 0x4FCD, 0x825B, 0x4FD2, 0x825C, 0x4FD3, + 0x825D, 0x4FD4, 0x825E, 0x4FD5, 0x825F, 0x4FD6, 0x8260, 0x4FD9, + 0x8261, 0x4FDB, 0x8262, 0x4FE0, 0x8263, 0x4FE2, 0x8264, 0x4FE4, + 0x8265, 0x4FE5, 0x8266, 0x4FE7, 0x8267, 0x4FEB, 0x8268, 0x4FEC, + 0x8269, 0x4FF0, 0x826A, 0x4FF2, 0x826B, 0x4FF4, 0x826C, 0x4FF5, + 0x826D, 0x4FF6, 0x826E, 0x4FF7, 0x826F, 0x4FF9, 0x8270, 0x4FFB, + 0x8271, 0x4FFC, 0x8272, 0x4FFD, 0x8273, 0x4FFF, 0x8274, 0x5000, + 0x8275, 0x5001, 0x8276, 0x5002, 0x8277, 0x5003, 0x8278, 0x5004, + 0x8279, 0x5005, 0x827A, 0x5006, 0x827B, 0x5007, 0x827C, 0x5008, + 0x827D, 0x5009, 0x827E, 0x500A, 0x8280, 0x500B, 0x8281, 0x500E, + 0x8282, 0x5010, 0x8283, 0x5011, 0x8284, 0x5013, 0x8285, 0x5015, + 0x8286, 0x5016, 0x8287, 0x5017, 0x8288, 0x501B, 0x8289, 0x501D, + 0x828A, 0x501E, 0x828B, 0x5020, 0x828C, 0x5022, 0x828D, 0x5023, + 0x828E, 0x5024, 0x828F, 0x5027, 0x8290, 0x502B, 0x8291, 0x502F, + 0x8292, 0x5030, 0x8293, 0x5031, 0x8294, 0x5032, 0x8295, 0x5033, + 0x8296, 0x5034, 0x8297, 0x5035, 0x8298, 0x5036, 0x8299, 0x5037, + 0x829A, 0x5038, 0x829B, 0x5039, 0x829C, 0x503B, 0x829D, 0x503D, + 0x829E, 0x503F, 0x829F, 0x5040, 0x82A0, 0x5041, 0x82A1, 0x5042, + 0x82A2, 0x5044, 0x82A3, 0x5045, 0x82A4, 0x5046, 0x82A5, 0x5049, + 0x82A6, 0x504A, 0x82A7, 0x504B, 0x82A8, 0x504D, 0x82A9, 0x5050, + 0x82AA, 0x5051, 0x82AB, 0x5052, 0x82AC, 0x5053, 0x82AD, 0x5054, + 0x82AE, 0x5056, 0x82AF, 0x5057, 0x82B0, 0x5058, 0x82B1, 0x5059, + 0x82B2, 0x505B, 0x82B3, 0x505D, 0x82B4, 0x505E, 0x82B5, 0x505F, + 0x82B6, 0x5060, 0x82B7, 0x5061, 0x82B8, 0x5062, 0x82B9, 0x5063, + 0x82BA, 0x5064, 0x82BB, 0x5066, 0x82BC, 0x5067, 0x82BD, 0x5068, + 0x82BE, 0x5069, 0x82BF, 0x506A, 0x82C0, 0x506B, 0x82C1, 0x506D, + 0x82C2, 0x506E, 0x82C3, 0x506F, 0x82C4, 0x5070, 0x82C5, 0x5071, + 0x82C6, 0x5072, 0x82C7, 0x5073, 0x82C8, 0x5074, 0x82C9, 0x5075, + 0x82CA, 0x5078, 0x82CB, 0x5079, 0x82CC, 0x507A, 0x82CD, 0x507C, + 0x82CE, 0x507D, 0x82CF, 0x5081, 0x82D0, 0x5082, 0x82D1, 0x5083, + 0x82D2, 0x5084, 0x82D3, 0x5086, 0x82D4, 0x5087, 0x82D5, 0x5089, + 0x82D6, 0x508A, 0x82D7, 0x508B, 0x82D8, 0x508C, 0x82D9, 0x508E, + 0x82DA, 0x508F, 0x82DB, 0x5090, 0x82DC, 0x5091, 0x82DD, 0x5092, + 0x82DE, 0x5093, 0x82DF, 0x5094, 0x82E0, 0x5095, 0x82E1, 0x5096, + 0x82E2, 0x5097, 0x82E3, 0x5098, 0x82E4, 0x5099, 0x82E5, 0x509A, + 0x82E6, 0x509B, 0x82E7, 0x509C, 0x82E8, 0x509D, 0x82E9, 0x509E, + 0x82EA, 0x509F, 0x82EB, 0x50A0, 0x82EC, 0x50A1, 0x82ED, 0x50A2, + 0x82EE, 0x50A4, 0x82EF, 0x50A6, 0x82F0, 0x50AA, 0x82F1, 0x50AB, + 0x82F2, 0x50AD, 0x82F3, 0x50AE, 0x82F4, 0x50AF, 0x82F5, 0x50B0, + 0x82F6, 0x50B1, 0x82F7, 0x50B3, 0x82F8, 0x50B4, 0x82F9, 0x50B5, + 0x82FA, 0x50B6, 0x82FB, 0x50B7, 0x82FC, 0x50B8, 0x82FD, 0x50B9, + 0x82FE, 0x50BC, 0x8340, 0x50BD, 0x8341, 0x50BE, 0x8342, 0x50BF, + 0x8343, 0x50C0, 0x8344, 0x50C1, 0x8345, 0x50C2, 0x8346, 0x50C3, + 0x8347, 0x50C4, 0x8348, 0x50C5, 0x8349, 0x50C6, 0x834A, 0x50C7, + 0x834B, 0x50C8, 0x834C, 0x50C9, 0x834D, 0x50CA, 0x834E, 0x50CB, + 0x834F, 0x50CC, 0x8350, 0x50CD, 0x8351, 0x50CE, 0x8352, 0x50D0, + 0x8353, 0x50D1, 0x8354, 0x50D2, 0x8355, 0x50D3, 0x8356, 0x50D4, + 0x8357, 0x50D5, 0x8358, 0x50D7, 0x8359, 0x50D8, 0x835A, 0x50D9, + 0x835B, 0x50DB, 0x835C, 0x50DC, 0x835D, 0x50DD, 0x835E, 0x50DE, + 0x835F, 0x50DF, 0x8360, 0x50E0, 0x8361, 0x50E1, 0x8362, 0x50E2, + 0x8363, 0x50E3, 0x8364, 0x50E4, 0x8365, 0x50E5, 0x8366, 0x50E8, + 0x8367, 0x50E9, 0x8368, 0x50EA, 0x8369, 0x50EB, 0x836A, 0x50EF, + 0x836B, 0x50F0, 0x836C, 0x50F1, 0x836D, 0x50F2, 0x836E, 0x50F4, + 0x836F, 0x50F6, 0x8370, 0x50F7, 0x8371, 0x50F8, 0x8372, 0x50F9, + 0x8373, 0x50FA, 0x8374, 0x50FC, 0x8375, 0x50FD, 0x8376, 0x50FE, + 0x8377, 0x50FF, 0x8378, 0x5100, 0x8379, 0x5101, 0x837A, 0x5102, + 0x837B, 0x5103, 0x837C, 0x5104, 0x837D, 0x5105, 0x837E, 0x5108, + 0x8380, 0x5109, 0x8381, 0x510A, 0x8382, 0x510C, 0x8383, 0x510D, + 0x8384, 0x510E, 0x8385, 0x510F, 0x8386, 0x5110, 0x8387, 0x5111, + 0x8388, 0x5113, 0x8389, 0x5114, 0x838A, 0x5115, 0x838B, 0x5116, + 0x838C, 0x5117, 0x838D, 0x5118, 0x838E, 0x5119, 0x838F, 0x511A, + 0x8390, 0x511B, 0x8391, 0x511C, 0x8392, 0x511D, 0x8393, 0x511E, + 0x8394, 0x511F, 0x8395, 0x5120, 0x8396, 0x5122, 0x8397, 0x5123, + 0x8398, 0x5124, 0x8399, 0x5125, 0x839A, 0x5126, 0x839B, 0x5127, + 0x839C, 0x5128, 0x839D, 0x5129, 0x839E, 0x512A, 0x839F, 0x512B, + 0x83A0, 0x512C, 0x83A1, 0x512D, 0x83A2, 0x512E, 0x83A3, 0x512F, + 0x83A4, 0x5130, 0x83A5, 0x5131, 0x83A6, 0x5132, 0x83A7, 0x5133, + 0x83A8, 0x5134, 0x83A9, 0x5135, 0x83AA, 0x5136, 0x83AB, 0x5137, + 0x83AC, 0x5138, 0x83AD, 0x5139, 0x83AE, 0x513A, 0x83AF, 0x513B, + 0x83B0, 0x513C, 0x83B1, 0x513D, 0x83B2, 0x513E, 0x83B3, 0x5142, + 0x83B4, 0x5147, 0x83B5, 0x514A, 0x83B6, 0x514C, 0x83B7, 0x514E, + 0x83B8, 0x514F, 0x83B9, 0x5150, 0x83BA, 0x5152, 0x83BB, 0x5153, + 0x83BC, 0x5157, 0x83BD, 0x5158, 0x83BE, 0x5159, 0x83BF, 0x515B, + 0x83C0, 0x515D, 0x83C1, 0x515E, 0x83C2, 0x515F, 0x83C3, 0x5160, + 0x83C4, 0x5161, 0x83C5, 0x5163, 0x83C6, 0x5164, 0x83C7, 0x5166, + 0x83C8, 0x5167, 0x83C9, 0x5169, 0x83CA, 0x516A, 0x83CB, 0x516F, + 0x83CC, 0x5172, 0x83CD, 0x517A, 0x83CE, 0x517E, 0x83CF, 0x517F, + 0x83D0, 0x5183, 0x83D1, 0x5184, 0x83D2, 0x5186, 0x83D3, 0x5187, + 0x83D4, 0x518A, 0x83D5, 0x518B, 0x83D6, 0x518E, 0x83D7, 0x518F, + 0x83D8, 0x5190, 0x83D9, 0x5191, 0x83DA, 0x5193, 0x83DB, 0x5194, + 0x83DC, 0x5198, 0x83DD, 0x519A, 0x83DE, 0x519D, 0x83DF, 0x519E, + 0x83E0, 0x519F, 0x83E1, 0x51A1, 0x83E2, 0x51A3, 0x83E3, 0x51A6, + 0x83E4, 0x51A7, 0x83E5, 0x51A8, 0x83E6, 0x51A9, 0x83E7, 0x51AA, + 0x83E8, 0x51AD, 0x83E9, 0x51AE, 0x83EA, 0x51B4, 0x83EB, 0x51B8, + 0x83EC, 0x51B9, 0x83ED, 0x51BA, 0x83EE, 0x51BE, 0x83EF, 0x51BF, + 0x83F0, 0x51C1, 0x83F1, 0x51C2, 0x83F2, 0x51C3, 0x83F3, 0x51C5, + 0x83F4, 0x51C8, 0x83F5, 0x51CA, 0x83F6, 0x51CD, 0x83F7, 0x51CE, + 0x83F8, 0x51D0, 0x83F9, 0x51D2, 0x83FA, 0x51D3, 0x83FB, 0x51D4, + 0x83FC, 0x51D5, 0x83FD, 0x51D6, 0x83FE, 0x51D7, 0x8440, 0x51D8, + 0x8441, 0x51D9, 0x8442, 0x51DA, 0x8443, 0x51DC, 0x8444, 0x51DE, + 0x8445, 0x51DF, 0x8446, 0x51E2, 0x8447, 0x51E3, 0x8448, 0x51E5, + 0x8449, 0x51E6, 0x844A, 0x51E7, 0x844B, 0x51E8, 0x844C, 0x51E9, + 0x844D, 0x51EA, 0x844E, 0x51EC, 0x844F, 0x51EE, 0x8450, 0x51F1, + 0x8451, 0x51F2, 0x8452, 0x51F4, 0x8453, 0x51F7, 0x8454, 0x51FE, + 0x8455, 0x5204, 0x8456, 0x5205, 0x8457, 0x5209, 0x8458, 0x520B, + 0x8459, 0x520C, 0x845A, 0x520F, 0x845B, 0x5210, 0x845C, 0x5213, + 0x845D, 0x5214, 0x845E, 0x5215, 0x845F, 0x521C, 0x8460, 0x521E, + 0x8461, 0x521F, 0x8462, 0x5221, 0x8463, 0x5222, 0x8464, 0x5223, + 0x8465, 0x5225, 0x8466, 0x5226, 0x8467, 0x5227, 0x8468, 0x522A, + 0x8469, 0x522C, 0x846A, 0x522F, 0x846B, 0x5231, 0x846C, 0x5232, + 0x846D, 0x5234, 0x846E, 0x5235, 0x846F, 0x523C, 0x8470, 0x523E, + 0x8471, 0x5244, 0x8472, 0x5245, 0x8473, 0x5246, 0x8474, 0x5247, + 0x8475, 0x5248, 0x8476, 0x5249, 0x8477, 0x524B, 0x8478, 0x524E, + 0x8479, 0x524F, 0x847A, 0x5252, 0x847B, 0x5253, 0x847C, 0x5255, + 0x847D, 0x5257, 0x847E, 0x5258, 0x8480, 0x5259, 0x8481, 0x525A, + 0x8482, 0x525B, 0x8483, 0x525D, 0x8484, 0x525F, 0x8485, 0x5260, + 0x8486, 0x5262, 0x8487, 0x5263, 0x8488, 0x5264, 0x8489, 0x5266, + 0x848A, 0x5268, 0x848B, 0x526B, 0x848C, 0x526C, 0x848D, 0x526D, + 0x848E, 0x526E, 0x848F, 0x5270, 0x8490, 0x5271, 0x8491, 0x5273, + 0x8492, 0x5274, 0x8493, 0x5275, 0x8494, 0x5276, 0x8495, 0x5277, + 0x8496, 0x5278, 0x8497, 0x5279, 0x8498, 0x527A, 0x8499, 0x527B, + 0x849A, 0x527C, 0x849B, 0x527E, 0x849C, 0x5280, 0x849D, 0x5283, + 0x849E, 0x5284, 0x849F, 0x5285, 0x84A0, 0x5286, 0x84A1, 0x5287, + 0x84A2, 0x5289, 0x84A3, 0x528A, 0x84A4, 0x528B, 0x84A5, 0x528C, + 0x84A6, 0x528D, 0x84A7, 0x528E, 0x84A8, 0x528F, 0x84A9, 0x5291, + 0x84AA, 0x5292, 0x84AB, 0x5294, 0x84AC, 0x5295, 0x84AD, 0x5296, + 0x84AE, 0x5297, 0x84AF, 0x5298, 0x84B0, 0x5299, 0x84B1, 0x529A, + 0x84B2, 0x529C, 0x84B3, 0x52A4, 0x84B4, 0x52A5, 0x84B5, 0x52A6, + 0x84B6, 0x52A7, 0x84B7, 0x52AE, 0x84B8, 0x52AF, 0x84B9, 0x52B0, + 0x84BA, 0x52B4, 0x84BB, 0x52B5, 0x84BC, 0x52B6, 0x84BD, 0x52B7, + 0x84BE, 0x52B8, 0x84BF, 0x52B9, 0x84C0, 0x52BA, 0x84C1, 0x52BB, + 0x84C2, 0x52BC, 0x84C3, 0x52BD, 0x84C4, 0x52C0, 0x84C5, 0x52C1, + 0x84C6, 0x52C2, 0x84C7, 0x52C4, 0x84C8, 0x52C5, 0x84C9, 0x52C6, + 0x84CA, 0x52C8, 0x84CB, 0x52CA, 0x84CC, 0x52CC, 0x84CD, 0x52CD, + 0x84CE, 0x52CE, 0x84CF, 0x52CF, 0x84D0, 0x52D1, 0x84D1, 0x52D3, + 0x84D2, 0x52D4, 0x84D3, 0x52D5, 0x84D4, 0x52D7, 0x84D5, 0x52D9, + 0x84D6, 0x52DA, 0x84D7, 0x52DB, 0x84D8, 0x52DC, 0x84D9, 0x52DD, + 0x84DA, 0x52DE, 0x84DB, 0x52E0, 0x84DC, 0x52E1, 0x84DD, 0x52E2, + 0x84DE, 0x52E3, 0x84DF, 0x52E5, 0x84E0, 0x52E6, 0x84E1, 0x52E7, + 0x84E2, 0x52E8, 0x84E3, 0x52E9, 0x84E4, 0x52EA, 0x84E5, 0x52EB, + 0x84E6, 0x52EC, 0x84E7, 0x52ED, 0x84E8, 0x52EE, 0x84E9, 0x52EF, + 0x84EA, 0x52F1, 0x84EB, 0x52F2, 0x84EC, 0x52F3, 0x84ED, 0x52F4, + 0x84EE, 0x52F5, 0x84EF, 0x52F6, 0x84F0, 0x52F7, 0x84F1, 0x52F8, + 0x84F2, 0x52FB, 0x84F3, 0x52FC, 0x84F4, 0x52FD, 0x84F5, 0x5301, + 0x84F6, 0x5302, 0x84F7, 0x5303, 0x84F8, 0x5304, 0x84F9, 0x5307, + 0x84FA, 0x5309, 0x84FB, 0x530A, 0x84FC, 0x530B, 0x84FD, 0x530C, + 0x84FE, 0x530E, 0x8540, 0x5311, 0x8541, 0x5312, 0x8542, 0x5313, + 0x8543, 0x5314, 0x8544, 0x5318, 0x8545, 0x531B, 0x8546, 0x531C, + 0x8547, 0x531E, 0x8548, 0x531F, 0x8549, 0x5322, 0x854A, 0x5324, + 0x854B, 0x5325, 0x854C, 0x5327, 0x854D, 0x5328, 0x854E, 0x5329, + 0x854F, 0x532B, 0x8550, 0x532C, 0x8551, 0x532D, 0x8552, 0x532F, + 0x8553, 0x5330, 0x8554, 0x5331, 0x8555, 0x5332, 0x8556, 0x5333, + 0x8557, 0x5334, 0x8558, 0x5335, 0x8559, 0x5336, 0x855A, 0x5337, + 0x855B, 0x5338, 0x855C, 0x533C, 0x855D, 0x533D, 0x855E, 0x5340, + 0x855F, 0x5342, 0x8560, 0x5344, 0x8561, 0x5346, 0x8562, 0x534B, + 0x8563, 0x534C, 0x8564, 0x534D, 0x8565, 0x5350, 0x8566, 0x5354, + 0x8567, 0x5358, 0x8568, 0x5359, 0x8569, 0x535B, 0x856A, 0x535D, + 0x856B, 0x5365, 0x856C, 0x5368, 0x856D, 0x536A, 0x856E, 0x536C, + 0x856F, 0x536D, 0x8570, 0x5372, 0x8571, 0x5376, 0x8572, 0x5379, + 0x8573, 0x537B, 0x8574, 0x537C, 0x8575, 0x537D, 0x8576, 0x537E, + 0x8577, 0x5380, 0x8578, 0x5381, 0x8579, 0x5383, 0x857A, 0x5387, + 0x857B, 0x5388, 0x857C, 0x538A, 0x857D, 0x538E, 0x857E, 0x538F, + 0x8580, 0x5390, 0x8581, 0x5391, 0x8582, 0x5392, 0x8583, 0x5393, + 0x8584, 0x5394, 0x8585, 0x5396, 0x8586, 0x5397, 0x8587, 0x5399, + 0x8588, 0x539B, 0x8589, 0x539C, 0x858A, 0x539E, 0x858B, 0x53A0, + 0x858C, 0x53A1, 0x858D, 0x53A4, 0x858E, 0x53A7, 0x858F, 0x53AA, + 0x8590, 0x53AB, 0x8591, 0x53AC, 0x8592, 0x53AD, 0x8593, 0x53AF, + 0x8594, 0x53B0, 0x8595, 0x53B1, 0x8596, 0x53B2, 0x8597, 0x53B3, + 0x8598, 0x53B4, 0x8599, 0x53B5, 0x859A, 0x53B7, 0x859B, 0x53B8, + 0x859C, 0x53B9, 0x859D, 0x53BA, 0x859E, 0x53BC, 0x859F, 0x53BD, + 0x85A0, 0x53BE, 0x85A1, 0x53C0, 0x85A2, 0x53C3, 0x85A3, 0x53C4, + 0x85A4, 0x53C5, 0x85A5, 0x53C6, 0x85A6, 0x53C7, 0x85A7, 0x53CE, + 0x85A8, 0x53CF, 0x85A9, 0x53D0, 0x85AA, 0x53D2, 0x85AB, 0x53D3, + 0x85AC, 0x53D5, 0x85AD, 0x53DA, 0x85AE, 0x53DC, 0x85AF, 0x53DD, + 0x85B0, 0x53DE, 0x85B1, 0x53E1, 0x85B2, 0x53E2, 0x85B3, 0x53E7, + 0x85B4, 0x53F4, 0x85B5, 0x53FA, 0x85B6, 0x53FE, 0x85B7, 0x53FF, + 0x85B8, 0x5400, 0x85B9, 0x5402, 0x85BA, 0x5405, 0x85BB, 0x5407, + 0x85BC, 0x540B, 0x85BD, 0x5414, 0x85BE, 0x5418, 0x85BF, 0x5419, + 0x85C0, 0x541A, 0x85C1, 0x541C, 0x85C2, 0x5422, 0x85C3, 0x5424, + 0x85C4, 0x5425, 0x85C5, 0x542A, 0x85C6, 0x5430, 0x85C7, 0x5433, + 0x85C8, 0x5436, 0x85C9, 0x5437, 0x85CA, 0x543A, 0x85CB, 0x543D, + 0x85CC, 0x543F, 0x85CD, 0x5441, 0x85CE, 0x5442, 0x85CF, 0x5444, + 0x85D0, 0x5445, 0x85D1, 0x5447, 0x85D2, 0x5449, 0x85D3, 0x544C, + 0x85D4, 0x544D, 0x85D5, 0x544E, 0x85D6, 0x544F, 0x85D7, 0x5451, + 0x85D8, 0x545A, 0x85D9, 0x545D, 0x85DA, 0x545E, 0x85DB, 0x545F, + 0x85DC, 0x5460, 0x85DD, 0x5461, 0x85DE, 0x5463, 0x85DF, 0x5465, + 0x85E0, 0x5467, 0x85E1, 0x5469, 0x85E2, 0x546A, 0x85E3, 0x546B, + 0x85E4, 0x546C, 0x85E5, 0x546D, 0x85E6, 0x546E, 0x85E7, 0x546F, + 0x85E8, 0x5470, 0x85E9, 0x5474, 0x85EA, 0x5479, 0x85EB, 0x547A, + 0x85EC, 0x547E, 0x85ED, 0x547F, 0x85EE, 0x5481, 0x85EF, 0x5483, + 0x85F0, 0x5485, 0x85F1, 0x5487, 0x85F2, 0x5488, 0x85F3, 0x5489, + 0x85F4, 0x548A, 0x85F5, 0x548D, 0x85F6, 0x5491, 0x85F7, 0x5493, + 0x85F8, 0x5497, 0x85F9, 0x5498, 0x85FA, 0x549C, 0x85FB, 0x549E, + 0x85FC, 0x549F, 0x85FD, 0x54A0, 0x85FE, 0x54A1, 0x8640, 0x54A2, + 0x8641, 0x54A5, 0x8642, 0x54AE, 0x8643, 0x54B0, 0x8644, 0x54B2, + 0x8645, 0x54B5, 0x8646, 0x54B6, 0x8647, 0x54B7, 0x8648, 0x54B9, + 0x8649, 0x54BA, 0x864A, 0x54BC, 0x864B, 0x54BE, 0x864C, 0x54C3, + 0x864D, 0x54C5, 0x864E, 0x54CA, 0x864F, 0x54CB, 0x8650, 0x54D6, + 0x8651, 0x54D8, 0x8652, 0x54DB, 0x8653, 0x54E0, 0x8654, 0x54E1, + 0x8655, 0x54E2, 0x8656, 0x54E3, 0x8657, 0x54E4, 0x8658, 0x54EB, + 0x8659, 0x54EC, 0x865A, 0x54EF, 0x865B, 0x54F0, 0x865C, 0x54F1, + 0x865D, 0x54F4, 0x865E, 0x54F5, 0x865F, 0x54F6, 0x8660, 0x54F7, + 0x8661, 0x54F8, 0x8662, 0x54F9, 0x8663, 0x54FB, 0x8664, 0x54FE, + 0x8665, 0x5500, 0x8666, 0x5502, 0x8667, 0x5503, 0x8668, 0x5504, + 0x8669, 0x5505, 0x866A, 0x5508, 0x866B, 0x550A, 0x866C, 0x550B, + 0x866D, 0x550C, 0x866E, 0x550D, 0x866F, 0x550E, 0x8670, 0x5512, + 0x8671, 0x5513, 0x8672, 0x5515, 0x8673, 0x5516, 0x8674, 0x5517, + 0x8675, 0x5518, 0x8676, 0x5519, 0x8677, 0x551A, 0x8678, 0x551C, + 0x8679, 0x551D, 0x867A, 0x551E, 0x867B, 0x551F, 0x867C, 0x5521, + 0x867D, 0x5525, 0x867E, 0x5526, 0x8680, 0x5528, 0x8681, 0x5529, + 0x8682, 0x552B, 0x8683, 0x552D, 0x8684, 0x5532, 0x8685, 0x5534, + 0x8686, 0x5535, 0x8687, 0x5536, 0x8688, 0x5538, 0x8689, 0x5539, + 0x868A, 0x553A, 0x868B, 0x553B, 0x868C, 0x553D, 0x868D, 0x5540, + 0x868E, 0x5542, 0x868F, 0x5545, 0x8690, 0x5547, 0x8691, 0x5548, + 0x8692, 0x554B, 0x8693, 0x554C, 0x8694, 0x554D, 0x8695, 0x554E, + 0x8696, 0x554F, 0x8697, 0x5551, 0x8698, 0x5552, 0x8699, 0x5553, + 0x869A, 0x5554, 0x869B, 0x5557, 0x869C, 0x5558, 0x869D, 0x5559, + 0x869E, 0x555A, 0x869F, 0x555B, 0x86A0, 0x555D, 0x86A1, 0x555E, + 0x86A2, 0x555F, 0x86A3, 0x5560, 0x86A4, 0x5562, 0x86A5, 0x5563, + 0x86A6, 0x5568, 0x86A7, 0x5569, 0x86A8, 0x556B, 0x86A9, 0x556F, + 0x86AA, 0x5570, 0x86AB, 0x5571, 0x86AC, 0x5572, 0x86AD, 0x5573, + 0x86AE, 0x5574, 0x86AF, 0x5579, 0x86B0, 0x557A, 0x86B1, 0x557D, + 0x86B2, 0x557F, 0x86B3, 0x5585, 0x86B4, 0x5586, 0x86B5, 0x558C, + 0x86B6, 0x558D, 0x86B7, 0x558E, 0x86B8, 0x5590, 0x86B9, 0x5592, + 0x86BA, 0x5593, 0x86BB, 0x5595, 0x86BC, 0x5596, 0x86BD, 0x5597, + 0x86BE, 0x559A, 0x86BF, 0x559B, 0x86C0, 0x559E, 0x86C1, 0x55A0, + 0x86C2, 0x55A1, 0x86C3, 0x55A2, 0x86C4, 0x55A3, 0x86C5, 0x55A4, + 0x86C6, 0x55A5, 0x86C7, 0x55A6, 0x86C8, 0x55A8, 0x86C9, 0x55A9, + 0x86CA, 0x55AA, 0x86CB, 0x55AB, 0x86CC, 0x55AC, 0x86CD, 0x55AD, + 0x86CE, 0x55AE, 0x86CF, 0x55AF, 0x86D0, 0x55B0, 0x86D1, 0x55B2, + 0x86D2, 0x55B4, 0x86D3, 0x55B6, 0x86D4, 0x55B8, 0x86D5, 0x55BA, + 0x86D6, 0x55BC, 0x86D7, 0x55BF, 0x86D8, 0x55C0, 0x86D9, 0x55C1, + 0x86DA, 0x55C2, 0x86DB, 0x55C3, 0x86DC, 0x55C6, 0x86DD, 0x55C7, + 0x86DE, 0x55C8, 0x86DF, 0x55CA, 0x86E0, 0x55CB, 0x86E1, 0x55CE, + 0x86E2, 0x55CF, 0x86E3, 0x55D0, 0x86E4, 0x55D5, 0x86E5, 0x55D7, + 0x86E6, 0x55D8, 0x86E7, 0x55D9, 0x86E8, 0x55DA, 0x86E9, 0x55DB, + 0x86EA, 0x55DE, 0x86EB, 0x55E0, 0x86EC, 0x55E2, 0x86ED, 0x55E7, + 0x86EE, 0x55E9, 0x86EF, 0x55ED, 0x86F0, 0x55EE, 0x86F1, 0x55F0, + 0x86F2, 0x55F1, 0x86F3, 0x55F4, 0x86F4, 0x55F6, 0x86F5, 0x55F8, + 0x86F6, 0x55F9, 0x86F7, 0x55FA, 0x86F8, 0x55FB, 0x86F9, 0x55FC, + 0x86FA, 0x55FF, 0x86FB, 0x5602, 0x86FC, 0x5603, 0x86FD, 0x5604, + 0x86FE, 0x5605, 0x8740, 0x5606, 0x8741, 0x5607, 0x8742, 0x560A, + 0x8743, 0x560B, 0x8744, 0x560D, 0x8745, 0x5610, 0x8746, 0x5611, + 0x8747, 0x5612, 0x8748, 0x5613, 0x8749, 0x5614, 0x874A, 0x5615, + 0x874B, 0x5616, 0x874C, 0x5617, 0x874D, 0x5619, 0x874E, 0x561A, + 0x874F, 0x561C, 0x8750, 0x561D, 0x8751, 0x5620, 0x8752, 0x5621, + 0x8753, 0x5622, 0x8754, 0x5625, 0x8755, 0x5626, 0x8756, 0x5628, + 0x8757, 0x5629, 0x8758, 0x562A, 0x8759, 0x562B, 0x875A, 0x562E, + 0x875B, 0x562F, 0x875C, 0x5630, 0x875D, 0x5633, 0x875E, 0x5635, + 0x875F, 0x5637, 0x8760, 0x5638, 0x8761, 0x563A, 0x8762, 0x563C, + 0x8763, 0x563D, 0x8764, 0x563E, 0x8765, 0x5640, 0x8766, 0x5641, + 0x8767, 0x5642, 0x8768, 0x5643, 0x8769, 0x5644, 0x876A, 0x5645, + 0x876B, 0x5646, 0x876C, 0x5647, 0x876D, 0x5648, 0x876E, 0x5649, + 0x876F, 0x564A, 0x8770, 0x564B, 0x8771, 0x564F, 0x8772, 0x5650, + 0x8773, 0x5651, 0x8774, 0x5652, 0x8775, 0x5653, 0x8776, 0x5655, + 0x8777, 0x5656, 0x8778, 0x565A, 0x8779, 0x565B, 0x877A, 0x565D, + 0x877B, 0x565E, 0x877C, 0x565F, 0x877D, 0x5660, 0x877E, 0x5661, + 0x8780, 0x5663, 0x8781, 0x5665, 0x8782, 0x5666, 0x8783, 0x5667, + 0x8784, 0x566D, 0x8785, 0x566E, 0x8786, 0x566F, 0x8787, 0x5670, + 0x8788, 0x5672, 0x8789, 0x5673, 0x878A, 0x5674, 0x878B, 0x5675, + 0x878C, 0x5677, 0x878D, 0x5678, 0x878E, 0x5679, 0x878F, 0x567A, + 0x8790, 0x567D, 0x8791, 0x567E, 0x8792, 0x567F, 0x8793, 0x5680, + 0x8794, 0x5681, 0x8795, 0x5682, 0x8796, 0x5683, 0x8797, 0x5684, + 0x8798, 0x5687, 0x8799, 0x5688, 0x879A, 0x5689, 0x879B, 0x568A, + 0x879C, 0x568B, 0x879D, 0x568C, 0x879E, 0x568D, 0x879F, 0x5690, + 0x87A0, 0x5691, 0x87A1, 0x5692, 0x87A2, 0x5694, 0x87A3, 0x5695, + 0x87A4, 0x5696, 0x87A5, 0x5697, 0x87A6, 0x5698, 0x87A7, 0x5699, + 0x87A8, 0x569A, 0x87A9, 0x569B, 0x87AA, 0x569C, 0x87AB, 0x569D, + 0x87AC, 0x569E, 0x87AD, 0x569F, 0x87AE, 0x56A0, 0x87AF, 0x56A1, + 0x87B0, 0x56A2, 0x87B1, 0x56A4, 0x87B2, 0x56A5, 0x87B3, 0x56A6, + 0x87B4, 0x56A7, 0x87B5, 0x56A8, 0x87B6, 0x56A9, 0x87B7, 0x56AA, + 0x87B8, 0x56AB, 0x87B9, 0x56AC, 0x87BA, 0x56AD, 0x87BB, 0x56AE, + 0x87BC, 0x56B0, 0x87BD, 0x56B1, 0x87BE, 0x56B2, 0x87BF, 0x56B3, + 0x87C0, 0x56B4, 0x87C1, 0x56B5, 0x87C2, 0x56B6, 0x87C3, 0x56B8, + 0x87C4, 0x56B9, 0x87C5, 0x56BA, 0x87C6, 0x56BB, 0x87C7, 0x56BD, + 0x87C8, 0x56BE, 0x87C9, 0x56BF, 0x87CA, 0x56C0, 0x87CB, 0x56C1, + 0x87CC, 0x56C2, 0x87CD, 0x56C3, 0x87CE, 0x56C4, 0x87CF, 0x56C5, + 0x87D0, 0x56C6, 0x87D1, 0x56C7, 0x87D2, 0x56C8, 0x87D3, 0x56C9, + 0x87D4, 0x56CB, 0x87D5, 0x56CC, 0x87D6, 0x56CD, 0x87D7, 0x56CE, + 0x87D8, 0x56CF, 0x87D9, 0x56D0, 0x87DA, 0x56D1, 0x87DB, 0x56D2, + 0x87DC, 0x56D3, 0x87DD, 0x56D5, 0x87DE, 0x56D6, 0x87DF, 0x56D8, + 0x87E0, 0x56D9, 0x87E1, 0x56DC, 0x87E2, 0x56E3, 0x87E3, 0x56E5, + 0x87E4, 0x56E6, 0x87E5, 0x56E7, 0x87E6, 0x56E8, 0x87E7, 0x56E9, + 0x87E8, 0x56EA, 0x87E9, 0x56EC, 0x87EA, 0x56EE, 0x87EB, 0x56EF, + 0x87EC, 0x56F2, 0x87ED, 0x56F3, 0x87EE, 0x56F6, 0x87EF, 0x56F7, + 0x87F0, 0x56F8, 0x87F1, 0x56FB, 0x87F2, 0x56FC, 0x87F3, 0x5700, + 0x87F4, 0x5701, 0x87F5, 0x5702, 0x87F6, 0x5705, 0x87F7, 0x5707, + 0x87F8, 0x570B, 0x87F9, 0x570C, 0x87FA, 0x570D, 0x87FB, 0x570E, + 0x87FC, 0x570F, 0x87FD, 0x5710, 0x87FE, 0x5711, 0x8840, 0x5712, + 0x8841, 0x5713, 0x8842, 0x5714, 0x8843, 0x5715, 0x8844, 0x5716, + 0x8845, 0x5717, 0x8846, 0x5718, 0x8847, 0x5719, 0x8848, 0x571A, + 0x8849, 0x571B, 0x884A, 0x571D, 0x884B, 0x571E, 0x884C, 0x5720, + 0x884D, 0x5721, 0x884E, 0x5722, 0x884F, 0x5724, 0x8850, 0x5725, + 0x8851, 0x5726, 0x8852, 0x5727, 0x8853, 0x572B, 0x8854, 0x5731, + 0x8855, 0x5732, 0x8856, 0x5734, 0x8857, 0x5735, 0x8858, 0x5736, + 0x8859, 0x5737, 0x885A, 0x5738, 0x885B, 0x573C, 0x885C, 0x573D, + 0x885D, 0x573F, 0x885E, 0x5741, 0x885F, 0x5743, 0x8860, 0x5744, + 0x8861, 0x5745, 0x8862, 0x5746, 0x8863, 0x5748, 0x8864, 0x5749, + 0x8865, 0x574B, 0x8866, 0x5752, 0x8867, 0x5753, 0x8868, 0x5754, + 0x8869, 0x5755, 0x886A, 0x5756, 0x886B, 0x5758, 0x886C, 0x5759, + 0x886D, 0x5762, 0x886E, 0x5763, 0x886F, 0x5765, 0x8870, 0x5767, + 0x8871, 0x576C, 0x8872, 0x576E, 0x8873, 0x5770, 0x8874, 0x5771, + 0x8875, 0x5772, 0x8876, 0x5774, 0x8877, 0x5775, 0x8878, 0x5778, + 0x8879, 0x5779, 0x887A, 0x577A, 0x887B, 0x577D, 0x887C, 0x577E, + 0x887D, 0x577F, 0x887E, 0x5780, 0x8880, 0x5781, 0x8881, 0x5787, + 0x8882, 0x5788, 0x8883, 0x5789, 0x8884, 0x578A, 0x8885, 0x578D, + 0x8886, 0x578E, 0x8887, 0x578F, 0x8888, 0x5790, 0x8889, 0x5791, + 0x888A, 0x5794, 0x888B, 0x5795, 0x888C, 0x5796, 0x888D, 0x5797, + 0x888E, 0x5798, 0x888F, 0x5799, 0x8890, 0x579A, 0x8891, 0x579C, + 0x8892, 0x579D, 0x8893, 0x579E, 0x8894, 0x579F, 0x8895, 0x57A5, + 0x8896, 0x57A8, 0x8897, 0x57AA, 0x8898, 0x57AC, 0x8899, 0x57AF, + 0x889A, 0x57B0, 0x889B, 0x57B1, 0x889C, 0x57B3, 0x889D, 0x57B5, + 0x889E, 0x57B6, 0x889F, 0x57B7, 0x88A0, 0x57B9, 0x88A1, 0x57BA, + 0x88A2, 0x57BB, 0x88A3, 0x57BC, 0x88A4, 0x57BD, 0x88A5, 0x57BE, + 0x88A6, 0x57BF, 0x88A7, 0x57C0, 0x88A8, 0x57C1, 0x88A9, 0x57C4, + 0x88AA, 0x57C5, 0x88AB, 0x57C6, 0x88AC, 0x57C7, 0x88AD, 0x57C8, + 0x88AE, 0x57C9, 0x88AF, 0x57CA, 0x88B0, 0x57CC, 0x88B1, 0x57CD, + 0x88B2, 0x57D0, 0x88B3, 0x57D1, 0x88B4, 0x57D3, 0x88B5, 0x57D6, + 0x88B6, 0x57D7, 0x88B7, 0x57DB, 0x88B8, 0x57DC, 0x88B9, 0x57DE, + 0x88BA, 0x57E1, 0x88BB, 0x57E2, 0x88BC, 0x57E3, 0x88BD, 0x57E5, + 0x88BE, 0x57E6, 0x88BF, 0x57E7, 0x88C0, 0x57E8, 0x88C1, 0x57E9, + 0x88C2, 0x57EA, 0x88C3, 0x57EB, 0x88C4, 0x57EC, 0x88C5, 0x57EE, + 0x88C6, 0x57F0, 0x88C7, 0x57F1, 0x88C8, 0x57F2, 0x88C9, 0x57F3, + 0x88CA, 0x57F5, 0x88CB, 0x57F6, 0x88CC, 0x57F7, 0x88CD, 0x57FB, + 0x88CE, 0x57FC, 0x88CF, 0x57FE, 0x88D0, 0x57FF, 0x88D1, 0x5801, + 0x88D2, 0x5803, 0x88D3, 0x5804, 0x88D4, 0x5805, 0x88D5, 0x5808, + 0x88D6, 0x5809, 0x88D7, 0x580A, 0x88D8, 0x580C, 0x88D9, 0x580E, + 0x88DA, 0x580F, 0x88DB, 0x5810, 0x88DC, 0x5812, 0x88DD, 0x5813, + 0x88DE, 0x5814, 0x88DF, 0x5816, 0x88E0, 0x5817, 0x88E1, 0x5818, + 0x88E2, 0x581A, 0x88E3, 0x581B, 0x88E4, 0x581C, 0x88E5, 0x581D, + 0x88E6, 0x581F, 0x88E7, 0x5822, 0x88E8, 0x5823, 0x88E9, 0x5825, + 0x88EA, 0x5826, 0x88EB, 0x5827, 0x88EC, 0x5828, 0x88ED, 0x5829, + 0x88EE, 0x582B, 0x88EF, 0x582C, 0x88F0, 0x582D, 0x88F1, 0x582E, + 0x88F2, 0x582F, 0x88F3, 0x5831, 0x88F4, 0x5832, 0x88F5, 0x5833, + 0x88F6, 0x5834, 0x88F7, 0x5836, 0x88F8, 0x5837, 0x88F9, 0x5838, + 0x88FA, 0x5839, 0x88FB, 0x583A, 0x88FC, 0x583B, 0x88FD, 0x583C, + 0x88FE, 0x583D, 0x8940, 0x583E, 0x8941, 0x583F, 0x8942, 0x5840, + 0x8943, 0x5841, 0x8944, 0x5842, 0x8945, 0x5843, 0x8946, 0x5845, + 0x8947, 0x5846, 0x8948, 0x5847, 0x8949, 0x5848, 0x894A, 0x5849, + 0x894B, 0x584A, 0x894C, 0x584B, 0x894D, 0x584E, 0x894E, 0x584F, + 0x894F, 0x5850, 0x8950, 0x5852, 0x8951, 0x5853, 0x8952, 0x5855, + 0x8953, 0x5856, 0x8954, 0x5857, 0x8955, 0x5859, 0x8956, 0x585A, + 0x8957, 0x585B, 0x8958, 0x585C, 0x8959, 0x585D, 0x895A, 0x585F, + 0x895B, 0x5860, 0x895C, 0x5861, 0x895D, 0x5862, 0x895E, 0x5863, + 0x895F, 0x5864, 0x8960, 0x5866, 0x8961, 0x5867, 0x8962, 0x5868, + 0x8963, 0x5869, 0x8964, 0x586A, 0x8965, 0x586D, 0x8966, 0x586E, + 0x8967, 0x586F, 0x8968, 0x5870, 0x8969, 0x5871, 0x896A, 0x5872, + 0x896B, 0x5873, 0x896C, 0x5874, 0x896D, 0x5875, 0x896E, 0x5876, + 0x896F, 0x5877, 0x8970, 0x5878, 0x8971, 0x5879, 0x8972, 0x587A, + 0x8973, 0x587B, 0x8974, 0x587C, 0x8975, 0x587D, 0x8976, 0x587F, + 0x8977, 0x5882, 0x8978, 0x5884, 0x8979, 0x5886, 0x897A, 0x5887, + 0x897B, 0x5888, 0x897C, 0x588A, 0x897D, 0x588B, 0x897E, 0x588C, + 0x8980, 0x588D, 0x8981, 0x588E, 0x8982, 0x588F, 0x8983, 0x5890, + 0x8984, 0x5891, 0x8985, 0x5894, 0x8986, 0x5895, 0x8987, 0x5896, + 0x8988, 0x5897, 0x8989, 0x5898, 0x898A, 0x589B, 0x898B, 0x589C, + 0x898C, 0x589D, 0x898D, 0x58A0, 0x898E, 0x58A1, 0x898F, 0x58A2, + 0x8990, 0x58A3, 0x8991, 0x58A4, 0x8992, 0x58A5, 0x8993, 0x58A6, + 0x8994, 0x58A7, 0x8995, 0x58AA, 0x8996, 0x58AB, 0x8997, 0x58AC, + 0x8998, 0x58AD, 0x8999, 0x58AE, 0x899A, 0x58AF, 0x899B, 0x58B0, + 0x899C, 0x58B1, 0x899D, 0x58B2, 0x899E, 0x58B3, 0x899F, 0x58B4, + 0x89A0, 0x58B5, 0x89A1, 0x58B6, 0x89A2, 0x58B7, 0x89A3, 0x58B8, + 0x89A4, 0x58B9, 0x89A5, 0x58BA, 0x89A6, 0x58BB, 0x89A7, 0x58BD, + 0x89A8, 0x58BE, 0x89A9, 0x58BF, 0x89AA, 0x58C0, 0x89AB, 0x58C2, + 0x89AC, 0x58C3, 0x89AD, 0x58C4, 0x89AE, 0x58C6, 0x89AF, 0x58C7, + 0x89B0, 0x58C8, 0x89B1, 0x58C9, 0x89B2, 0x58CA, 0x89B3, 0x58CB, + 0x89B4, 0x58CC, 0x89B5, 0x58CD, 0x89B6, 0x58CE, 0x89B7, 0x58CF, + 0x89B8, 0x58D0, 0x89B9, 0x58D2, 0x89BA, 0x58D3, 0x89BB, 0x58D4, + 0x89BC, 0x58D6, 0x89BD, 0x58D7, 0x89BE, 0x58D8, 0x89BF, 0x58D9, + 0x89C0, 0x58DA, 0x89C1, 0x58DB, 0x89C2, 0x58DC, 0x89C3, 0x58DD, + 0x89C4, 0x58DE, 0x89C5, 0x58DF, 0x89C6, 0x58E0, 0x89C7, 0x58E1, + 0x89C8, 0x58E2, 0x89C9, 0x58E3, 0x89CA, 0x58E5, 0x89CB, 0x58E6, + 0x89CC, 0x58E7, 0x89CD, 0x58E8, 0x89CE, 0x58E9, 0x89CF, 0x58EA, + 0x89D0, 0x58ED, 0x89D1, 0x58EF, 0x89D2, 0x58F1, 0x89D3, 0x58F2, + 0x89D4, 0x58F4, 0x89D5, 0x58F5, 0x89D6, 0x58F7, 0x89D7, 0x58F8, + 0x89D8, 0x58FA, 0x89D9, 0x58FB, 0x89DA, 0x58FC, 0x89DB, 0x58FD, + 0x89DC, 0x58FE, 0x89DD, 0x58FF, 0x89DE, 0x5900, 0x89DF, 0x5901, + 0x89E0, 0x5903, 0x89E1, 0x5905, 0x89E2, 0x5906, 0x89E3, 0x5908, + 0x89E4, 0x5909, 0x89E5, 0x590A, 0x89E6, 0x590B, 0x89E7, 0x590C, + 0x89E8, 0x590E, 0x89E9, 0x5910, 0x89EA, 0x5911, 0x89EB, 0x5912, + 0x89EC, 0x5913, 0x89ED, 0x5917, 0x89EE, 0x5918, 0x89EF, 0x591B, + 0x89F0, 0x591D, 0x89F1, 0x591E, 0x89F2, 0x5920, 0x89F3, 0x5921, + 0x89F4, 0x5922, 0x89F5, 0x5923, 0x89F6, 0x5926, 0x89F7, 0x5928, + 0x89F8, 0x592C, 0x89F9, 0x5930, 0x89FA, 0x5932, 0x89FB, 0x5933, + 0x89FC, 0x5935, 0x89FD, 0x5936, 0x89FE, 0x593B, 0x8A40, 0x593D, + 0x8A41, 0x593E, 0x8A42, 0x593F, 0x8A43, 0x5940, 0x8A44, 0x5943, + 0x8A45, 0x5945, 0x8A46, 0x5946, 0x8A47, 0x594A, 0x8A48, 0x594C, + 0x8A49, 0x594D, 0x8A4A, 0x5950, 0x8A4B, 0x5952, 0x8A4C, 0x5953, + 0x8A4D, 0x5959, 0x8A4E, 0x595B, 0x8A4F, 0x595C, 0x8A50, 0x595D, + 0x8A51, 0x595E, 0x8A52, 0x595F, 0x8A53, 0x5961, 0x8A54, 0x5963, + 0x8A55, 0x5964, 0x8A56, 0x5966, 0x8A57, 0x5967, 0x8A58, 0x5968, + 0x8A59, 0x5969, 0x8A5A, 0x596A, 0x8A5B, 0x596B, 0x8A5C, 0x596C, + 0x8A5D, 0x596D, 0x8A5E, 0x596E, 0x8A5F, 0x596F, 0x8A60, 0x5970, + 0x8A61, 0x5971, 0x8A62, 0x5972, 0x8A63, 0x5975, 0x8A64, 0x5977, + 0x8A65, 0x597A, 0x8A66, 0x597B, 0x8A67, 0x597C, 0x8A68, 0x597E, + 0x8A69, 0x597F, 0x8A6A, 0x5980, 0x8A6B, 0x5985, 0x8A6C, 0x5989, + 0x8A6D, 0x598B, 0x8A6E, 0x598C, 0x8A6F, 0x598E, 0x8A70, 0x598F, + 0x8A71, 0x5990, 0x8A72, 0x5991, 0x8A73, 0x5994, 0x8A74, 0x5995, + 0x8A75, 0x5998, 0x8A76, 0x599A, 0x8A77, 0x599B, 0x8A78, 0x599C, + 0x8A79, 0x599D, 0x8A7A, 0x599F, 0x8A7B, 0x59A0, 0x8A7C, 0x59A1, + 0x8A7D, 0x59A2, 0x8A7E, 0x59A6, 0x8A80, 0x59A7, 0x8A81, 0x59AC, + 0x8A82, 0x59AD, 0x8A83, 0x59B0, 0x8A84, 0x59B1, 0x8A85, 0x59B3, + 0x8A86, 0x59B4, 0x8A87, 0x59B5, 0x8A88, 0x59B6, 0x8A89, 0x59B7, + 0x8A8A, 0x59B8, 0x8A8B, 0x59BA, 0x8A8C, 0x59BC, 0x8A8D, 0x59BD, + 0x8A8E, 0x59BF, 0x8A8F, 0x59C0, 0x8A90, 0x59C1, 0x8A91, 0x59C2, + 0x8A92, 0x59C3, 0x8A93, 0x59C4, 0x8A94, 0x59C5, 0x8A95, 0x59C7, + 0x8A96, 0x59C8, 0x8A97, 0x59C9, 0x8A98, 0x59CC, 0x8A99, 0x59CD, + 0x8A9A, 0x59CE, 0x8A9B, 0x59CF, 0x8A9C, 0x59D5, 0x8A9D, 0x59D6, + 0x8A9E, 0x59D9, 0x8A9F, 0x59DB, 0x8AA0, 0x59DE, 0x8AA1, 0x59DF, + 0x8AA2, 0x59E0, 0x8AA3, 0x59E1, 0x8AA4, 0x59E2, 0x8AA5, 0x59E4, + 0x8AA6, 0x59E6, 0x8AA7, 0x59E7, 0x8AA8, 0x59E9, 0x8AA9, 0x59EA, + 0x8AAA, 0x59EB, 0x8AAB, 0x59ED, 0x8AAC, 0x59EE, 0x8AAD, 0x59EF, + 0x8AAE, 0x59F0, 0x8AAF, 0x59F1, 0x8AB0, 0x59F2, 0x8AB1, 0x59F3, + 0x8AB2, 0x59F4, 0x8AB3, 0x59F5, 0x8AB4, 0x59F6, 0x8AB5, 0x59F7, + 0x8AB6, 0x59F8, 0x8AB7, 0x59FA, 0x8AB8, 0x59FC, 0x8AB9, 0x59FD, + 0x8ABA, 0x59FE, 0x8ABB, 0x5A00, 0x8ABC, 0x5A02, 0x8ABD, 0x5A0A, + 0x8ABE, 0x5A0B, 0x8ABF, 0x5A0D, 0x8AC0, 0x5A0E, 0x8AC1, 0x5A0F, + 0x8AC2, 0x5A10, 0x8AC3, 0x5A12, 0x8AC4, 0x5A14, 0x8AC5, 0x5A15, + 0x8AC6, 0x5A16, 0x8AC7, 0x5A17, 0x8AC8, 0x5A19, 0x8AC9, 0x5A1A, + 0x8ACA, 0x5A1B, 0x8ACB, 0x5A1D, 0x8ACC, 0x5A1E, 0x8ACD, 0x5A21, + 0x8ACE, 0x5A22, 0x8ACF, 0x5A24, 0x8AD0, 0x5A26, 0x8AD1, 0x5A27, + 0x8AD2, 0x5A28, 0x8AD3, 0x5A2A, 0x8AD4, 0x5A2B, 0x8AD5, 0x5A2C, + 0x8AD6, 0x5A2D, 0x8AD7, 0x5A2E, 0x8AD8, 0x5A2F, 0x8AD9, 0x5A30, + 0x8ADA, 0x5A33, 0x8ADB, 0x5A35, 0x8ADC, 0x5A37, 0x8ADD, 0x5A38, + 0x8ADE, 0x5A39, 0x8ADF, 0x5A3A, 0x8AE0, 0x5A3B, 0x8AE1, 0x5A3D, + 0x8AE2, 0x5A3E, 0x8AE3, 0x5A3F, 0x8AE4, 0x5A41, 0x8AE5, 0x5A42, + 0x8AE6, 0x5A43, 0x8AE7, 0x5A44, 0x8AE8, 0x5A45, 0x8AE9, 0x5A47, + 0x8AEA, 0x5A48, 0x8AEB, 0x5A4B, 0x8AEC, 0x5A4C, 0x8AED, 0x5A4D, + 0x8AEE, 0x5A4E, 0x8AEF, 0x5A4F, 0x8AF0, 0x5A50, 0x8AF1, 0x5A51, + 0x8AF2, 0x5A52, 0x8AF3, 0x5A53, 0x8AF4, 0x5A54, 0x8AF5, 0x5A56, + 0x8AF6, 0x5A57, 0x8AF7, 0x5A58, 0x8AF8, 0x5A59, 0x8AF9, 0x5A5B, + 0x8AFA, 0x5A5C, 0x8AFB, 0x5A5D, 0x8AFC, 0x5A5E, 0x8AFD, 0x5A5F, + 0x8AFE, 0x5A60, 0x8B40, 0x5A61, 0x8B41, 0x5A63, 0x8B42, 0x5A64, + 0x8B43, 0x5A65, 0x8B44, 0x5A66, 0x8B45, 0x5A68, 0x8B46, 0x5A69, + 0x8B47, 0x5A6B, 0x8B48, 0x5A6C, 0x8B49, 0x5A6D, 0x8B4A, 0x5A6E, + 0x8B4B, 0x5A6F, 0x8B4C, 0x5A70, 0x8B4D, 0x5A71, 0x8B4E, 0x5A72, + 0x8B4F, 0x5A73, 0x8B50, 0x5A78, 0x8B51, 0x5A79, 0x8B52, 0x5A7B, + 0x8B53, 0x5A7C, 0x8B54, 0x5A7D, 0x8B55, 0x5A7E, 0x8B56, 0x5A80, + 0x8B57, 0x5A81, 0x8B58, 0x5A82, 0x8B59, 0x5A83, 0x8B5A, 0x5A84, + 0x8B5B, 0x5A85, 0x8B5C, 0x5A86, 0x8B5D, 0x5A87, 0x8B5E, 0x5A88, + 0x8B5F, 0x5A89, 0x8B60, 0x5A8A, 0x8B61, 0x5A8B, 0x8B62, 0x5A8C, + 0x8B63, 0x5A8D, 0x8B64, 0x5A8E, 0x8B65, 0x5A8F, 0x8B66, 0x5A90, + 0x8B67, 0x5A91, 0x8B68, 0x5A93, 0x8B69, 0x5A94, 0x8B6A, 0x5A95, + 0x8B6B, 0x5A96, 0x8B6C, 0x5A97, 0x8B6D, 0x5A98, 0x8B6E, 0x5A99, + 0x8B6F, 0x5A9C, 0x8B70, 0x5A9D, 0x8B71, 0x5A9E, 0x8B72, 0x5A9F, + 0x8B73, 0x5AA0, 0x8B74, 0x5AA1, 0x8B75, 0x5AA2, 0x8B76, 0x5AA3, + 0x8B77, 0x5AA4, 0x8B78, 0x5AA5, 0x8B79, 0x5AA6, 0x8B7A, 0x5AA7, + 0x8B7B, 0x5AA8, 0x8B7C, 0x5AA9, 0x8B7D, 0x5AAB, 0x8B7E, 0x5AAC, + 0x8B80, 0x5AAD, 0x8B81, 0x5AAE, 0x8B82, 0x5AAF, 0x8B83, 0x5AB0, + 0x8B84, 0x5AB1, 0x8B85, 0x5AB4, 0x8B86, 0x5AB6, 0x8B87, 0x5AB7, + 0x8B88, 0x5AB9, 0x8B89, 0x5ABA, 0x8B8A, 0x5ABB, 0x8B8B, 0x5ABC, + 0x8B8C, 0x5ABD, 0x8B8D, 0x5ABF, 0x8B8E, 0x5AC0, 0x8B8F, 0x5AC3, + 0x8B90, 0x5AC4, 0x8B91, 0x5AC5, 0x8B92, 0x5AC6, 0x8B93, 0x5AC7, + 0x8B94, 0x5AC8, 0x8B95, 0x5ACA, 0x8B96, 0x5ACB, 0x8B97, 0x5ACD, + 0x8B98, 0x5ACE, 0x8B99, 0x5ACF, 0x8B9A, 0x5AD0, 0x8B9B, 0x5AD1, + 0x8B9C, 0x5AD3, 0x8B9D, 0x5AD5, 0x8B9E, 0x5AD7, 0x8B9F, 0x5AD9, + 0x8BA0, 0x5ADA, 0x8BA1, 0x5ADB, 0x8BA2, 0x5ADD, 0x8BA3, 0x5ADE, + 0x8BA4, 0x5ADF, 0x8BA5, 0x5AE2, 0x8BA6, 0x5AE4, 0x8BA7, 0x5AE5, + 0x8BA8, 0x5AE7, 0x8BA9, 0x5AE8, 0x8BAA, 0x5AEA, 0x8BAB, 0x5AEC, + 0x8BAC, 0x5AED, 0x8BAD, 0x5AEE, 0x8BAE, 0x5AEF, 0x8BAF, 0x5AF0, + 0x8BB0, 0x5AF2, 0x8BB1, 0x5AF3, 0x8BB2, 0x5AF4, 0x8BB3, 0x5AF5, + 0x8BB4, 0x5AF6, 0x8BB5, 0x5AF7, 0x8BB6, 0x5AF8, 0x8BB7, 0x5AF9, + 0x8BB8, 0x5AFA, 0x8BB9, 0x5AFB, 0x8BBA, 0x5AFC, 0x8BBB, 0x5AFD, + 0x8BBC, 0x5AFE, 0x8BBD, 0x5AFF, 0x8BBE, 0x5B00, 0x8BBF, 0x5B01, + 0x8BC0, 0x5B02, 0x8BC1, 0x5B03, 0x8BC2, 0x5B04, 0x8BC3, 0x5B05, + 0x8BC4, 0x5B06, 0x8BC5, 0x5B07, 0x8BC6, 0x5B08, 0x8BC7, 0x5B0A, + 0x8BC8, 0x5B0B, 0x8BC9, 0x5B0C, 0x8BCA, 0x5B0D, 0x8BCB, 0x5B0E, + 0x8BCC, 0x5B0F, 0x8BCD, 0x5B10, 0x8BCE, 0x5B11, 0x8BCF, 0x5B12, + 0x8BD0, 0x5B13, 0x8BD1, 0x5B14, 0x8BD2, 0x5B15, 0x8BD3, 0x5B18, + 0x8BD4, 0x5B19, 0x8BD5, 0x5B1A, 0x8BD6, 0x5B1B, 0x8BD7, 0x5B1C, + 0x8BD8, 0x5B1D, 0x8BD9, 0x5B1E, 0x8BDA, 0x5B1F, 0x8BDB, 0x5B20, + 0x8BDC, 0x5B21, 0x8BDD, 0x5B22, 0x8BDE, 0x5B23, 0x8BDF, 0x5B24, + 0x8BE0, 0x5B25, 0x8BE1, 0x5B26, 0x8BE2, 0x5B27, 0x8BE3, 0x5B28, + 0x8BE4, 0x5B29, 0x8BE5, 0x5B2A, 0x8BE6, 0x5B2B, 0x8BE7, 0x5B2C, + 0x8BE8, 0x5B2D, 0x8BE9, 0x5B2E, 0x8BEA, 0x5B2F, 0x8BEB, 0x5B30, + 0x8BEC, 0x5B31, 0x8BED, 0x5B33, 0x8BEE, 0x5B35, 0x8BEF, 0x5B36, + 0x8BF0, 0x5B38, 0x8BF1, 0x5B39, 0x8BF2, 0x5B3A, 0x8BF3, 0x5B3B, + 0x8BF4, 0x5B3C, 0x8BF5, 0x5B3D, 0x8BF6, 0x5B3E, 0x8BF7, 0x5B3F, + 0x8BF8, 0x5B41, 0x8BF9, 0x5B42, 0x8BFA, 0x5B43, 0x8BFB, 0x5B44, + 0x8BFC, 0x5B45, 0x8BFD, 0x5B46, 0x8BFE, 0x5B47, 0x8C40, 0x5B48, + 0x8C41, 0x5B49, 0x8C42, 0x5B4A, 0x8C43, 0x5B4B, 0x8C44, 0x5B4C, + 0x8C45, 0x5B4D, 0x8C46, 0x5B4E, 0x8C47, 0x5B4F, 0x8C48, 0x5B52, + 0x8C49, 0x5B56, 0x8C4A, 0x5B5E, 0x8C4B, 0x5B60, 0x8C4C, 0x5B61, + 0x8C4D, 0x5B67, 0x8C4E, 0x5B68, 0x8C4F, 0x5B6B, 0x8C50, 0x5B6D, + 0x8C51, 0x5B6E, 0x8C52, 0x5B6F, 0x8C53, 0x5B72, 0x8C54, 0x5B74, + 0x8C55, 0x5B76, 0x8C56, 0x5B77, 0x8C57, 0x5B78, 0x8C58, 0x5B79, + 0x8C59, 0x5B7B, 0x8C5A, 0x5B7C, 0x8C5B, 0x5B7E, 0x8C5C, 0x5B7F, + 0x8C5D, 0x5B82, 0x8C5E, 0x5B86, 0x8C5F, 0x5B8A, 0x8C60, 0x5B8D, + 0x8C61, 0x5B8E, 0x8C62, 0x5B90, 0x8C63, 0x5B91, 0x8C64, 0x5B92, + 0x8C65, 0x5B94, 0x8C66, 0x5B96, 0x8C67, 0x5B9F, 0x8C68, 0x5BA7, + 0x8C69, 0x5BA8, 0x8C6A, 0x5BA9, 0x8C6B, 0x5BAC, 0x8C6C, 0x5BAD, + 0x8C6D, 0x5BAE, 0x8C6E, 0x5BAF, 0x8C6F, 0x5BB1, 0x8C70, 0x5BB2, + 0x8C71, 0x5BB7, 0x8C72, 0x5BBA, 0x8C73, 0x5BBB, 0x8C74, 0x5BBC, + 0x8C75, 0x5BC0, 0x8C76, 0x5BC1, 0x8C77, 0x5BC3, 0x8C78, 0x5BC8, + 0x8C79, 0x5BC9, 0x8C7A, 0x5BCA, 0x8C7B, 0x5BCB, 0x8C7C, 0x5BCD, + 0x8C7D, 0x5BCE, 0x8C7E, 0x5BCF, 0x8C80, 0x5BD1, 0x8C81, 0x5BD4, + 0x8C82, 0x5BD5, 0x8C83, 0x5BD6, 0x8C84, 0x5BD7, 0x8C85, 0x5BD8, + 0x8C86, 0x5BD9, 0x8C87, 0x5BDA, 0x8C88, 0x5BDB, 0x8C89, 0x5BDC, + 0x8C8A, 0x5BE0, 0x8C8B, 0x5BE2, 0x8C8C, 0x5BE3, 0x8C8D, 0x5BE6, + 0x8C8E, 0x5BE7, 0x8C8F, 0x5BE9, 0x8C90, 0x5BEA, 0x8C91, 0x5BEB, + 0x8C92, 0x5BEC, 0x8C93, 0x5BED, 0x8C94, 0x5BEF, 0x8C95, 0x5BF1, + 0x8C96, 0x5BF2, 0x8C97, 0x5BF3, 0x8C98, 0x5BF4, 0x8C99, 0x5BF5, + 0x8C9A, 0x5BF6, 0x8C9B, 0x5BF7, 0x8C9C, 0x5BFD, 0x8C9D, 0x5BFE, + 0x8C9E, 0x5C00, 0x8C9F, 0x5C02, 0x8CA0, 0x5C03, 0x8CA1, 0x5C05, + 0x8CA2, 0x5C07, 0x8CA3, 0x5C08, 0x8CA4, 0x5C0B, 0x8CA5, 0x5C0C, + 0x8CA6, 0x5C0D, 0x8CA7, 0x5C0E, 0x8CA8, 0x5C10, 0x8CA9, 0x5C12, + 0x8CAA, 0x5C13, 0x8CAB, 0x5C17, 0x8CAC, 0x5C19, 0x8CAD, 0x5C1B, + 0x8CAE, 0x5C1E, 0x8CAF, 0x5C1F, 0x8CB0, 0x5C20, 0x8CB1, 0x5C21, + 0x8CB2, 0x5C23, 0x8CB3, 0x5C26, 0x8CB4, 0x5C28, 0x8CB5, 0x5C29, + 0x8CB6, 0x5C2A, 0x8CB7, 0x5C2B, 0x8CB8, 0x5C2D, 0x8CB9, 0x5C2E, + 0x8CBA, 0x5C2F, 0x8CBB, 0x5C30, 0x8CBC, 0x5C32, 0x8CBD, 0x5C33, + 0x8CBE, 0x5C35, 0x8CBF, 0x5C36, 0x8CC0, 0x5C37, 0x8CC1, 0x5C43, + 0x8CC2, 0x5C44, 0x8CC3, 0x5C46, 0x8CC4, 0x5C47, 0x8CC5, 0x5C4C, + 0x8CC6, 0x5C4D, 0x8CC7, 0x5C52, 0x8CC8, 0x5C53, 0x8CC9, 0x5C54, + 0x8CCA, 0x5C56, 0x8CCB, 0x5C57, 0x8CCC, 0x5C58, 0x8CCD, 0x5C5A, + 0x8CCE, 0x5C5B, 0x8CCF, 0x5C5C, 0x8CD0, 0x5C5D, 0x8CD1, 0x5C5F, + 0x8CD2, 0x5C62, 0x8CD3, 0x5C64, 0x8CD4, 0x5C67, 0x8CD5, 0x5C68, + 0x8CD6, 0x5C69, 0x8CD7, 0x5C6A, 0x8CD8, 0x5C6B, 0x8CD9, 0x5C6C, + 0x8CDA, 0x5C6D, 0x8CDB, 0x5C70, 0x8CDC, 0x5C72, 0x8CDD, 0x5C73, + 0x8CDE, 0x5C74, 0x8CDF, 0x5C75, 0x8CE0, 0x5C76, 0x8CE1, 0x5C77, + 0x8CE2, 0x5C78, 0x8CE3, 0x5C7B, 0x8CE4, 0x5C7C, 0x8CE5, 0x5C7D, + 0x8CE6, 0x5C7E, 0x8CE7, 0x5C80, 0x8CE8, 0x5C83, 0x8CE9, 0x5C84, + 0x8CEA, 0x5C85, 0x8CEB, 0x5C86, 0x8CEC, 0x5C87, 0x8CED, 0x5C89, + 0x8CEE, 0x5C8A, 0x8CEF, 0x5C8B, 0x8CF0, 0x5C8E, 0x8CF1, 0x5C8F, + 0x8CF2, 0x5C92, 0x8CF3, 0x5C93, 0x8CF4, 0x5C95, 0x8CF5, 0x5C9D, + 0x8CF6, 0x5C9E, 0x8CF7, 0x5C9F, 0x8CF8, 0x5CA0, 0x8CF9, 0x5CA1, + 0x8CFA, 0x5CA4, 0x8CFB, 0x5CA5, 0x8CFC, 0x5CA6, 0x8CFD, 0x5CA7, + 0x8CFE, 0x5CA8, 0x8D40, 0x5CAA, 0x8D41, 0x5CAE, 0x8D42, 0x5CAF, + 0x8D43, 0x5CB0, 0x8D44, 0x5CB2, 0x8D45, 0x5CB4, 0x8D46, 0x5CB6, + 0x8D47, 0x5CB9, 0x8D48, 0x5CBA, 0x8D49, 0x5CBB, 0x8D4A, 0x5CBC, + 0x8D4B, 0x5CBE, 0x8D4C, 0x5CC0, 0x8D4D, 0x5CC2, 0x8D4E, 0x5CC3, + 0x8D4F, 0x5CC5, 0x8D50, 0x5CC6, 0x8D51, 0x5CC7, 0x8D52, 0x5CC8, + 0x8D53, 0x5CC9, 0x8D54, 0x5CCA, 0x8D55, 0x5CCC, 0x8D56, 0x5CCD, + 0x8D57, 0x5CCE, 0x8D58, 0x5CCF, 0x8D59, 0x5CD0, 0x8D5A, 0x5CD1, + 0x8D5B, 0x5CD3, 0x8D5C, 0x5CD4, 0x8D5D, 0x5CD5, 0x8D5E, 0x5CD6, + 0x8D5F, 0x5CD7, 0x8D60, 0x5CD8, 0x8D61, 0x5CDA, 0x8D62, 0x5CDB, + 0x8D63, 0x5CDC, 0x8D64, 0x5CDD, 0x8D65, 0x5CDE, 0x8D66, 0x5CDF, + 0x8D67, 0x5CE0, 0x8D68, 0x5CE2, 0x8D69, 0x5CE3, 0x8D6A, 0x5CE7, + 0x8D6B, 0x5CE9, 0x8D6C, 0x5CEB, 0x8D6D, 0x5CEC, 0x8D6E, 0x5CEE, + 0x8D6F, 0x5CEF, 0x8D70, 0x5CF1, 0x8D71, 0x5CF2, 0x8D72, 0x5CF3, + 0x8D73, 0x5CF4, 0x8D74, 0x5CF5, 0x8D75, 0x5CF6, 0x8D76, 0x5CF7, + 0x8D77, 0x5CF8, 0x8D78, 0x5CF9, 0x8D79, 0x5CFA, 0x8D7A, 0x5CFC, + 0x8D7B, 0x5CFD, 0x8D7C, 0x5CFE, 0x8D7D, 0x5CFF, 0x8D7E, 0x5D00, + 0x8D80, 0x5D01, 0x8D81, 0x5D04, 0x8D82, 0x5D05, 0x8D83, 0x5D08, + 0x8D84, 0x5D09, 0x8D85, 0x5D0A, 0x8D86, 0x5D0B, 0x8D87, 0x5D0C, + 0x8D88, 0x5D0D, 0x8D89, 0x5D0F, 0x8D8A, 0x5D10, 0x8D8B, 0x5D11, + 0x8D8C, 0x5D12, 0x8D8D, 0x5D13, 0x8D8E, 0x5D15, 0x8D8F, 0x5D17, + 0x8D90, 0x5D18, 0x8D91, 0x5D19, 0x8D92, 0x5D1A, 0x8D93, 0x5D1C, + 0x8D94, 0x5D1D, 0x8D95, 0x5D1F, 0x8D96, 0x5D20, 0x8D97, 0x5D21, + 0x8D98, 0x5D22, 0x8D99, 0x5D23, 0x8D9A, 0x5D25, 0x8D9B, 0x5D28, + 0x8D9C, 0x5D2A, 0x8D9D, 0x5D2B, 0x8D9E, 0x5D2C, 0x8D9F, 0x5D2F, + 0x8DA0, 0x5D30, 0x8DA1, 0x5D31, 0x8DA2, 0x5D32, 0x8DA3, 0x5D33, + 0x8DA4, 0x5D35, 0x8DA5, 0x5D36, 0x8DA6, 0x5D37, 0x8DA7, 0x5D38, + 0x8DA8, 0x5D39, 0x8DA9, 0x5D3A, 0x8DAA, 0x5D3B, 0x8DAB, 0x5D3C, + 0x8DAC, 0x5D3F, 0x8DAD, 0x5D40, 0x8DAE, 0x5D41, 0x8DAF, 0x5D42, + 0x8DB0, 0x5D43, 0x8DB1, 0x5D44, 0x8DB2, 0x5D45, 0x8DB3, 0x5D46, + 0x8DB4, 0x5D48, 0x8DB5, 0x5D49, 0x8DB6, 0x5D4D, 0x8DB7, 0x5D4E, + 0x8DB8, 0x5D4F, 0x8DB9, 0x5D50, 0x8DBA, 0x5D51, 0x8DBB, 0x5D52, + 0x8DBC, 0x5D53, 0x8DBD, 0x5D54, 0x8DBE, 0x5D55, 0x8DBF, 0x5D56, + 0x8DC0, 0x5D57, 0x8DC1, 0x5D59, 0x8DC2, 0x5D5A, 0x8DC3, 0x5D5C, + 0x8DC4, 0x5D5E, 0x8DC5, 0x5D5F, 0x8DC6, 0x5D60, 0x8DC7, 0x5D61, + 0x8DC8, 0x5D62, 0x8DC9, 0x5D63, 0x8DCA, 0x5D64, 0x8DCB, 0x5D65, + 0x8DCC, 0x5D66, 0x8DCD, 0x5D67, 0x8DCE, 0x5D68, 0x8DCF, 0x5D6A, + 0x8DD0, 0x5D6D, 0x8DD1, 0x5D6E, 0x8DD2, 0x5D70, 0x8DD3, 0x5D71, + 0x8DD4, 0x5D72, 0x8DD5, 0x5D73, 0x8DD6, 0x5D75, 0x8DD7, 0x5D76, + 0x8DD8, 0x5D77, 0x8DD9, 0x5D78, 0x8DDA, 0x5D79, 0x8DDB, 0x5D7A, + 0x8DDC, 0x5D7B, 0x8DDD, 0x5D7C, 0x8DDE, 0x5D7D, 0x8DDF, 0x5D7E, + 0x8DE0, 0x5D7F, 0x8DE1, 0x5D80, 0x8DE2, 0x5D81, 0x8DE3, 0x5D83, + 0x8DE4, 0x5D84, 0x8DE5, 0x5D85, 0x8DE6, 0x5D86, 0x8DE7, 0x5D87, + 0x8DE8, 0x5D88, 0x8DE9, 0x5D89, 0x8DEA, 0x5D8A, 0x8DEB, 0x5D8B, + 0x8DEC, 0x5D8C, 0x8DED, 0x5D8D, 0x8DEE, 0x5D8E, 0x8DEF, 0x5D8F, + 0x8DF0, 0x5D90, 0x8DF1, 0x5D91, 0x8DF2, 0x5D92, 0x8DF3, 0x5D93, + 0x8DF4, 0x5D94, 0x8DF5, 0x5D95, 0x8DF6, 0x5D96, 0x8DF7, 0x5D97, + 0x8DF8, 0x5D98, 0x8DF9, 0x5D9A, 0x8DFA, 0x5D9B, 0x8DFB, 0x5D9C, + 0x8DFC, 0x5D9E, 0x8DFD, 0x5D9F, 0x8DFE, 0x5DA0, 0x8E40, 0x5DA1, + 0x8E41, 0x5DA2, 0x8E42, 0x5DA3, 0x8E43, 0x5DA4, 0x8E44, 0x5DA5, + 0x8E45, 0x5DA6, 0x8E46, 0x5DA7, 0x8E47, 0x5DA8, 0x8E48, 0x5DA9, + 0x8E49, 0x5DAA, 0x8E4A, 0x5DAB, 0x8E4B, 0x5DAC, 0x8E4C, 0x5DAD, + 0x8E4D, 0x5DAE, 0x8E4E, 0x5DAF, 0x8E4F, 0x5DB0, 0x8E50, 0x5DB1, + 0x8E51, 0x5DB2, 0x8E52, 0x5DB3, 0x8E53, 0x5DB4, 0x8E54, 0x5DB5, + 0x8E55, 0x5DB6, 0x8E56, 0x5DB8, 0x8E57, 0x5DB9, 0x8E58, 0x5DBA, + 0x8E59, 0x5DBB, 0x8E5A, 0x5DBC, 0x8E5B, 0x5DBD, 0x8E5C, 0x5DBE, + 0x8E5D, 0x5DBF, 0x8E5E, 0x5DC0, 0x8E5F, 0x5DC1, 0x8E60, 0x5DC2, + 0x8E61, 0x5DC3, 0x8E62, 0x5DC4, 0x8E63, 0x5DC6, 0x8E64, 0x5DC7, + 0x8E65, 0x5DC8, 0x8E66, 0x5DC9, 0x8E67, 0x5DCA, 0x8E68, 0x5DCB, + 0x8E69, 0x5DCC, 0x8E6A, 0x5DCE, 0x8E6B, 0x5DCF, 0x8E6C, 0x5DD0, + 0x8E6D, 0x5DD1, 0x8E6E, 0x5DD2, 0x8E6F, 0x5DD3, 0x8E70, 0x5DD4, + 0x8E71, 0x5DD5, 0x8E72, 0x5DD6, 0x8E73, 0x5DD7, 0x8E74, 0x5DD8, + 0x8E75, 0x5DD9, 0x8E76, 0x5DDA, 0x8E77, 0x5DDC, 0x8E78, 0x5DDF, + 0x8E79, 0x5DE0, 0x8E7A, 0x5DE3, 0x8E7B, 0x5DE4, 0x8E7C, 0x5DEA, + 0x8E7D, 0x5DEC, 0x8E7E, 0x5DED, 0x8E80, 0x5DF0, 0x8E81, 0x5DF5, + 0x8E82, 0x5DF6, 0x8E83, 0x5DF8, 0x8E84, 0x5DF9, 0x8E85, 0x5DFA, + 0x8E86, 0x5DFB, 0x8E87, 0x5DFC, 0x8E88, 0x5DFF, 0x8E89, 0x5E00, + 0x8E8A, 0x5E04, 0x8E8B, 0x5E07, 0x8E8C, 0x5E09, 0x8E8D, 0x5E0A, + 0x8E8E, 0x5E0B, 0x8E8F, 0x5E0D, 0x8E90, 0x5E0E, 0x8E91, 0x5E12, + 0x8E92, 0x5E13, 0x8E93, 0x5E17, 0x8E94, 0x5E1E, 0x8E95, 0x5E1F, + 0x8E96, 0x5E20, 0x8E97, 0x5E21, 0x8E98, 0x5E22, 0x8E99, 0x5E23, + 0x8E9A, 0x5E24, 0x8E9B, 0x5E25, 0x8E9C, 0x5E28, 0x8E9D, 0x5E29, + 0x8E9E, 0x5E2A, 0x8E9F, 0x5E2B, 0x8EA0, 0x5E2C, 0x8EA1, 0x5E2F, + 0x8EA2, 0x5E30, 0x8EA3, 0x5E32, 0x8EA4, 0x5E33, 0x8EA5, 0x5E34, + 0x8EA6, 0x5E35, 0x8EA7, 0x5E36, 0x8EA8, 0x5E39, 0x8EA9, 0x5E3A, + 0x8EAA, 0x5E3E, 0x8EAB, 0x5E3F, 0x8EAC, 0x5E40, 0x8EAD, 0x5E41, + 0x8EAE, 0x5E43, 0x8EAF, 0x5E46, 0x8EB0, 0x5E47, 0x8EB1, 0x5E48, + 0x8EB2, 0x5E49, 0x8EB3, 0x5E4A, 0x8EB4, 0x5E4B, 0x8EB5, 0x5E4D, + 0x8EB6, 0x5E4E, 0x8EB7, 0x5E4F, 0x8EB8, 0x5E50, 0x8EB9, 0x5E51, + 0x8EBA, 0x5E52, 0x8EBB, 0x5E53, 0x8EBC, 0x5E56, 0x8EBD, 0x5E57, + 0x8EBE, 0x5E58, 0x8EBF, 0x5E59, 0x8EC0, 0x5E5A, 0x8EC1, 0x5E5C, + 0x8EC2, 0x5E5D, 0x8EC3, 0x5E5F, 0x8EC4, 0x5E60, 0x8EC5, 0x5E63, + 0x8EC6, 0x5E64, 0x8EC7, 0x5E65, 0x8EC8, 0x5E66, 0x8EC9, 0x5E67, + 0x8ECA, 0x5E68, 0x8ECB, 0x5E69, 0x8ECC, 0x5E6A, 0x8ECD, 0x5E6B, + 0x8ECE, 0x5E6C, 0x8ECF, 0x5E6D, 0x8ED0, 0x5E6E, 0x8ED1, 0x5E6F, + 0x8ED2, 0x5E70, 0x8ED3, 0x5E71, 0x8ED4, 0x5E75, 0x8ED5, 0x5E77, + 0x8ED6, 0x5E79, 0x8ED7, 0x5E7E, 0x8ED8, 0x5E81, 0x8ED9, 0x5E82, + 0x8EDA, 0x5E83, 0x8EDB, 0x5E85, 0x8EDC, 0x5E88, 0x8EDD, 0x5E89, + 0x8EDE, 0x5E8C, 0x8EDF, 0x5E8D, 0x8EE0, 0x5E8E, 0x8EE1, 0x5E92, + 0x8EE2, 0x5E98, 0x8EE3, 0x5E9B, 0x8EE4, 0x5E9D, 0x8EE5, 0x5EA1, + 0x8EE6, 0x5EA2, 0x8EE7, 0x5EA3, 0x8EE8, 0x5EA4, 0x8EE9, 0x5EA8, + 0x8EEA, 0x5EA9, 0x8EEB, 0x5EAA, 0x8EEC, 0x5EAB, 0x8EED, 0x5EAC, + 0x8EEE, 0x5EAE, 0x8EEF, 0x5EAF, 0x8EF0, 0x5EB0, 0x8EF1, 0x5EB1, + 0x8EF2, 0x5EB2, 0x8EF3, 0x5EB4, 0x8EF4, 0x5EBA, 0x8EF5, 0x5EBB, + 0x8EF6, 0x5EBC, 0x8EF7, 0x5EBD, 0x8EF8, 0x5EBF, 0x8EF9, 0x5EC0, + 0x8EFA, 0x5EC1, 0x8EFB, 0x5EC2, 0x8EFC, 0x5EC3, 0x8EFD, 0x5EC4, + 0x8EFE, 0x5EC5, 0x8F40, 0x5EC6, 0x8F41, 0x5EC7, 0x8F42, 0x5EC8, + 0x8F43, 0x5ECB, 0x8F44, 0x5ECC, 0x8F45, 0x5ECD, 0x8F46, 0x5ECE, + 0x8F47, 0x5ECF, 0x8F48, 0x5ED0, 0x8F49, 0x5ED4, 0x8F4A, 0x5ED5, + 0x8F4B, 0x5ED7, 0x8F4C, 0x5ED8, 0x8F4D, 0x5ED9, 0x8F4E, 0x5EDA, + 0x8F4F, 0x5EDC, 0x8F50, 0x5EDD, 0x8F51, 0x5EDE, 0x8F52, 0x5EDF, + 0x8F53, 0x5EE0, 0x8F54, 0x5EE1, 0x8F55, 0x5EE2, 0x8F56, 0x5EE3, + 0x8F57, 0x5EE4, 0x8F58, 0x5EE5, 0x8F59, 0x5EE6, 0x8F5A, 0x5EE7, + 0x8F5B, 0x5EE9, 0x8F5C, 0x5EEB, 0x8F5D, 0x5EEC, 0x8F5E, 0x5EED, + 0x8F5F, 0x5EEE, 0x8F60, 0x5EEF, 0x8F61, 0x5EF0, 0x8F62, 0x5EF1, + 0x8F63, 0x5EF2, 0x8F64, 0x5EF3, 0x8F65, 0x5EF5, 0x8F66, 0x5EF8, + 0x8F67, 0x5EF9, 0x8F68, 0x5EFB, 0x8F69, 0x5EFC, 0x8F6A, 0x5EFD, + 0x8F6B, 0x5F05, 0x8F6C, 0x5F06, 0x8F6D, 0x5F07, 0x8F6E, 0x5F09, + 0x8F6F, 0x5F0C, 0x8F70, 0x5F0D, 0x8F71, 0x5F0E, 0x8F72, 0x5F10, + 0x8F73, 0x5F12, 0x8F74, 0x5F14, 0x8F75, 0x5F16, 0x8F76, 0x5F19, + 0x8F77, 0x5F1A, 0x8F78, 0x5F1C, 0x8F79, 0x5F1D, 0x8F7A, 0x5F1E, + 0x8F7B, 0x5F21, 0x8F7C, 0x5F22, 0x8F7D, 0x5F23, 0x8F7E, 0x5F24, + 0x8F80, 0x5F28, 0x8F81, 0x5F2B, 0x8F82, 0x5F2C, 0x8F83, 0x5F2E, + 0x8F84, 0x5F30, 0x8F85, 0x5F32, 0x8F86, 0x5F33, 0x8F87, 0x5F34, + 0x8F88, 0x5F35, 0x8F89, 0x5F36, 0x8F8A, 0x5F37, 0x8F8B, 0x5F38, + 0x8F8C, 0x5F3B, 0x8F8D, 0x5F3D, 0x8F8E, 0x5F3E, 0x8F8F, 0x5F3F, + 0x8F90, 0x5F41, 0x8F91, 0x5F42, 0x8F92, 0x5F43, 0x8F93, 0x5F44, + 0x8F94, 0x5F45, 0x8F95, 0x5F46, 0x8F96, 0x5F47, 0x8F97, 0x5F48, + 0x8F98, 0x5F49, 0x8F99, 0x5F4A, 0x8F9A, 0x5F4B, 0x8F9B, 0x5F4C, + 0x8F9C, 0x5F4D, 0x8F9D, 0x5F4E, 0x8F9E, 0x5F4F, 0x8F9F, 0x5F51, + 0x8FA0, 0x5F54, 0x8FA1, 0x5F59, 0x8FA2, 0x5F5A, 0x8FA3, 0x5F5B, + 0x8FA4, 0x5F5C, 0x8FA5, 0x5F5E, 0x8FA6, 0x5F5F, 0x8FA7, 0x5F60, + 0x8FA8, 0x5F63, 0x8FA9, 0x5F65, 0x8FAA, 0x5F67, 0x8FAB, 0x5F68, + 0x8FAC, 0x5F6B, 0x8FAD, 0x5F6E, 0x8FAE, 0x5F6F, 0x8FAF, 0x5F72, + 0x8FB0, 0x5F74, 0x8FB1, 0x5F75, 0x8FB2, 0x5F76, 0x8FB3, 0x5F78, + 0x8FB4, 0x5F7A, 0x8FB5, 0x5F7D, 0x8FB6, 0x5F7E, 0x8FB7, 0x5F7F, + 0x8FB8, 0x5F83, 0x8FB9, 0x5F86, 0x8FBA, 0x5F8D, 0x8FBB, 0x5F8E, + 0x8FBC, 0x5F8F, 0x8FBD, 0x5F91, 0x8FBE, 0x5F93, 0x8FBF, 0x5F94, + 0x8FC0, 0x5F96, 0x8FC1, 0x5F9A, 0x8FC2, 0x5F9B, 0x8FC3, 0x5F9D, + 0x8FC4, 0x5F9E, 0x8FC5, 0x5F9F, 0x8FC6, 0x5FA0, 0x8FC7, 0x5FA2, + 0x8FC8, 0x5FA3, 0x8FC9, 0x5FA4, 0x8FCA, 0x5FA5, 0x8FCB, 0x5FA6, + 0x8FCC, 0x5FA7, 0x8FCD, 0x5FA9, 0x8FCE, 0x5FAB, 0x8FCF, 0x5FAC, + 0x8FD0, 0x5FAF, 0x8FD1, 0x5FB0, 0x8FD2, 0x5FB1, 0x8FD3, 0x5FB2, + 0x8FD4, 0x5FB3, 0x8FD5, 0x5FB4, 0x8FD6, 0x5FB6, 0x8FD7, 0x5FB8, + 0x8FD8, 0x5FB9, 0x8FD9, 0x5FBA, 0x8FDA, 0x5FBB, 0x8FDB, 0x5FBE, + 0x8FDC, 0x5FBF, 0x8FDD, 0x5FC0, 0x8FDE, 0x5FC1, 0x8FDF, 0x5FC2, + 0x8FE0, 0x5FC7, 0x8FE1, 0x5FC8, 0x8FE2, 0x5FCA, 0x8FE3, 0x5FCB, + 0x8FE4, 0x5FCE, 0x8FE5, 0x5FD3, 0x8FE6, 0x5FD4, 0x8FE7, 0x5FD5, + 0x8FE8, 0x5FDA, 0x8FE9, 0x5FDB, 0x8FEA, 0x5FDC, 0x8FEB, 0x5FDE, + 0x8FEC, 0x5FDF, 0x8FED, 0x5FE2, 0x8FEE, 0x5FE3, 0x8FEF, 0x5FE5, + 0x8FF0, 0x5FE6, 0x8FF1, 0x5FE8, 0x8FF2, 0x5FE9, 0x8FF3, 0x5FEC, + 0x8FF4, 0x5FEF, 0x8FF5, 0x5FF0, 0x8FF6, 0x5FF2, 0x8FF7, 0x5FF3, + 0x8FF8, 0x5FF4, 0x8FF9, 0x5FF6, 0x8FFA, 0x5FF7, 0x8FFB, 0x5FF9, + 0x8FFC, 0x5FFA, 0x8FFD, 0x5FFC, 0x8FFE, 0x6007, 0x9040, 0x6008, + 0x9041, 0x6009, 0x9042, 0x600B, 0x9043, 0x600C, 0x9044, 0x6010, + 0x9045, 0x6011, 0x9046, 0x6013, 0x9047, 0x6017, 0x9048, 0x6018, + 0x9049, 0x601A, 0x904A, 0x601E, 0x904B, 0x601F, 0x904C, 0x6022, + 0x904D, 0x6023, 0x904E, 0x6024, 0x904F, 0x602C, 0x9050, 0x602D, + 0x9051, 0x602E, 0x9052, 0x6030, 0x9053, 0x6031, 0x9054, 0x6032, + 0x9055, 0x6033, 0x9056, 0x6034, 0x9057, 0x6036, 0x9058, 0x6037, + 0x9059, 0x6038, 0x905A, 0x6039, 0x905B, 0x603A, 0x905C, 0x603D, + 0x905D, 0x603E, 0x905E, 0x6040, 0x905F, 0x6044, 0x9060, 0x6045, + 0x9061, 0x6046, 0x9062, 0x6047, 0x9063, 0x6048, 0x9064, 0x6049, + 0x9065, 0x604A, 0x9066, 0x604C, 0x9067, 0x604E, 0x9068, 0x604F, + 0x9069, 0x6051, 0x906A, 0x6053, 0x906B, 0x6054, 0x906C, 0x6056, + 0x906D, 0x6057, 0x906E, 0x6058, 0x906F, 0x605B, 0x9070, 0x605C, + 0x9071, 0x605E, 0x9072, 0x605F, 0x9073, 0x6060, 0x9074, 0x6061, + 0x9075, 0x6065, 0x9076, 0x6066, 0x9077, 0x606E, 0x9078, 0x6071, + 0x9079, 0x6072, 0x907A, 0x6074, 0x907B, 0x6075, 0x907C, 0x6077, + 0x907D, 0x607E, 0x907E, 0x6080, 0x9080, 0x6081, 0x9081, 0x6082, + 0x9082, 0x6085, 0x9083, 0x6086, 0x9084, 0x6087, 0x9085, 0x6088, + 0x9086, 0x608A, 0x9087, 0x608B, 0x9088, 0x608E, 0x9089, 0x608F, + 0x908A, 0x6090, 0x908B, 0x6091, 0x908C, 0x6093, 0x908D, 0x6095, + 0x908E, 0x6097, 0x908F, 0x6098, 0x9090, 0x6099, 0x9091, 0x609C, + 0x9092, 0x609E, 0x9093, 0x60A1, 0x9094, 0x60A2, 0x9095, 0x60A4, + 0x9096, 0x60A5, 0x9097, 0x60A7, 0x9098, 0x60A9, 0x9099, 0x60AA, + 0x909A, 0x60AE, 0x909B, 0x60B0, 0x909C, 0x60B3, 0x909D, 0x60B5, + 0x909E, 0x60B6, 0x909F, 0x60B7, 0x90A0, 0x60B9, 0x90A1, 0x60BA, + 0x90A2, 0x60BD, 0x90A3, 0x60BE, 0x90A4, 0x60BF, 0x90A5, 0x60C0, + 0x90A6, 0x60C1, 0x90A7, 0x60C2, 0x90A8, 0x60C3, 0x90A9, 0x60C4, + 0x90AA, 0x60C7, 0x90AB, 0x60C8, 0x90AC, 0x60C9, 0x90AD, 0x60CC, + 0x90AE, 0x60CD, 0x90AF, 0x60CE, 0x90B0, 0x60CF, 0x90B1, 0x60D0, + 0x90B2, 0x60D2, 0x90B3, 0x60D3, 0x90B4, 0x60D4, 0x90B5, 0x60D6, + 0x90B6, 0x60D7, 0x90B7, 0x60D9, 0x90B8, 0x60DB, 0x90B9, 0x60DE, + 0x90BA, 0x60E1, 0x90BB, 0x60E2, 0x90BC, 0x60E3, 0x90BD, 0x60E4, + 0x90BE, 0x60E5, 0x90BF, 0x60EA, 0x90C0, 0x60F1, 0x90C1, 0x60F2, + 0x90C2, 0x60F5, 0x90C3, 0x60F7, 0x90C4, 0x60F8, 0x90C5, 0x60FB, + 0x90C6, 0x60FC, 0x90C7, 0x60FD, 0x90C8, 0x60FE, 0x90C9, 0x60FF, + 0x90CA, 0x6102, 0x90CB, 0x6103, 0x90CC, 0x6104, 0x90CD, 0x6105, + 0x90CE, 0x6107, 0x90CF, 0x610A, 0x90D0, 0x610B, 0x90D1, 0x610C, + 0x90D2, 0x6110, 0x90D3, 0x6111, 0x90D4, 0x6112, 0x90D5, 0x6113, + 0x90D6, 0x6114, 0x90D7, 0x6116, 0x90D8, 0x6117, 0x90D9, 0x6118, + 0x90DA, 0x6119, 0x90DB, 0x611B, 0x90DC, 0x611C, 0x90DD, 0x611D, + 0x90DE, 0x611E, 0x90DF, 0x6121, 0x90E0, 0x6122, 0x90E1, 0x6125, + 0x90E2, 0x6128, 0x90E3, 0x6129, 0x90E4, 0x612A, 0x90E5, 0x612C, + 0x90E6, 0x612D, 0x90E7, 0x612E, 0x90E8, 0x612F, 0x90E9, 0x6130, + 0x90EA, 0x6131, 0x90EB, 0x6132, 0x90EC, 0x6133, 0x90ED, 0x6134, + 0x90EE, 0x6135, 0x90EF, 0x6136, 0x90F0, 0x6137, 0x90F1, 0x6138, + 0x90F2, 0x6139, 0x90F3, 0x613A, 0x90F4, 0x613B, 0x90F5, 0x613C, + 0x90F6, 0x613D, 0x90F7, 0x613E, 0x90F8, 0x6140, 0x90F9, 0x6141, + 0x90FA, 0x6142, 0x90FB, 0x6143, 0x90FC, 0x6144, 0x90FD, 0x6145, + 0x90FE, 0x6146, 0x9140, 0x6147, 0x9141, 0x6149, 0x9142, 0x614B, + 0x9143, 0x614D, 0x9144, 0x614F, 0x9145, 0x6150, 0x9146, 0x6152, + 0x9147, 0x6153, 0x9148, 0x6154, 0x9149, 0x6156, 0x914A, 0x6157, + 0x914B, 0x6158, 0x914C, 0x6159, 0x914D, 0x615A, 0x914E, 0x615B, + 0x914F, 0x615C, 0x9150, 0x615E, 0x9151, 0x615F, 0x9152, 0x6160, + 0x9153, 0x6161, 0x9154, 0x6163, 0x9155, 0x6164, 0x9156, 0x6165, + 0x9157, 0x6166, 0x9158, 0x6169, 0x9159, 0x616A, 0x915A, 0x616B, + 0x915B, 0x616C, 0x915C, 0x616D, 0x915D, 0x616E, 0x915E, 0x616F, + 0x915F, 0x6171, 0x9160, 0x6172, 0x9161, 0x6173, 0x9162, 0x6174, + 0x9163, 0x6176, 0x9164, 0x6178, 0x9165, 0x6179, 0x9166, 0x617A, + 0x9167, 0x617B, 0x9168, 0x617C, 0x9169, 0x617D, 0x916A, 0x617E, + 0x916B, 0x617F, 0x916C, 0x6180, 0x916D, 0x6181, 0x916E, 0x6182, + 0x916F, 0x6183, 0x9170, 0x6184, 0x9171, 0x6185, 0x9172, 0x6186, + 0x9173, 0x6187, 0x9174, 0x6188, 0x9175, 0x6189, 0x9176, 0x618A, + 0x9177, 0x618C, 0x9178, 0x618D, 0x9179, 0x618F, 0x917A, 0x6190, + 0x917B, 0x6191, 0x917C, 0x6192, 0x917D, 0x6193, 0x917E, 0x6195, + 0x9180, 0x6196, 0x9181, 0x6197, 0x9182, 0x6198, 0x9183, 0x6199, + 0x9184, 0x619A, 0x9185, 0x619B, 0x9186, 0x619C, 0x9187, 0x619E, + 0x9188, 0x619F, 0x9189, 0x61A0, 0x918A, 0x61A1, 0x918B, 0x61A2, + 0x918C, 0x61A3, 0x918D, 0x61A4, 0x918E, 0x61A5, 0x918F, 0x61A6, + 0x9190, 0x61AA, 0x9191, 0x61AB, 0x9192, 0x61AD, 0x9193, 0x61AE, + 0x9194, 0x61AF, 0x9195, 0x61B0, 0x9196, 0x61B1, 0x9197, 0x61B2, + 0x9198, 0x61B3, 0x9199, 0x61B4, 0x919A, 0x61B5, 0x919B, 0x61B6, + 0x919C, 0x61B8, 0x919D, 0x61B9, 0x919E, 0x61BA, 0x919F, 0x61BB, + 0x91A0, 0x61BC, 0x91A1, 0x61BD, 0x91A2, 0x61BF, 0x91A3, 0x61C0, + 0x91A4, 0x61C1, 0x91A5, 0x61C3, 0x91A6, 0x61C4, 0x91A7, 0x61C5, + 0x91A8, 0x61C6, 0x91A9, 0x61C7, 0x91AA, 0x61C9, 0x91AB, 0x61CC, + 0x91AC, 0x61CD, 0x91AD, 0x61CE, 0x91AE, 0x61CF, 0x91AF, 0x61D0, + 0x91B0, 0x61D3, 0x91B1, 0x61D5, 0x91B2, 0x61D6, 0x91B3, 0x61D7, + 0x91B4, 0x61D8, 0x91B5, 0x61D9, 0x91B6, 0x61DA, 0x91B7, 0x61DB, + 0x91B8, 0x61DC, 0x91B9, 0x61DD, 0x91BA, 0x61DE, 0x91BB, 0x61DF, + 0x91BC, 0x61E0, 0x91BD, 0x61E1, 0x91BE, 0x61E2, 0x91BF, 0x61E3, + 0x91C0, 0x61E4, 0x91C1, 0x61E5, 0x91C2, 0x61E7, 0x91C3, 0x61E8, + 0x91C4, 0x61E9, 0x91C5, 0x61EA, 0x91C6, 0x61EB, 0x91C7, 0x61EC, + 0x91C8, 0x61ED, 0x91C9, 0x61EE, 0x91CA, 0x61EF, 0x91CB, 0x61F0, + 0x91CC, 0x61F1, 0x91CD, 0x61F2, 0x91CE, 0x61F3, 0x91CF, 0x61F4, + 0x91D0, 0x61F6, 0x91D1, 0x61F7, 0x91D2, 0x61F8, 0x91D3, 0x61F9, + 0x91D4, 0x61FA, 0x91D5, 0x61FB, 0x91D6, 0x61FC, 0x91D7, 0x61FD, + 0x91D8, 0x61FE, 0x91D9, 0x6200, 0x91DA, 0x6201, 0x91DB, 0x6202, + 0x91DC, 0x6203, 0x91DD, 0x6204, 0x91DE, 0x6205, 0x91DF, 0x6207, + 0x91E0, 0x6209, 0x91E1, 0x6213, 0x91E2, 0x6214, 0x91E3, 0x6219, + 0x91E4, 0x621C, 0x91E5, 0x621D, 0x91E6, 0x621E, 0x91E7, 0x6220, + 0x91E8, 0x6223, 0x91E9, 0x6226, 0x91EA, 0x6227, 0x91EB, 0x6228, + 0x91EC, 0x6229, 0x91ED, 0x622B, 0x91EE, 0x622D, 0x91EF, 0x622F, + 0x91F0, 0x6230, 0x91F1, 0x6231, 0x91F2, 0x6232, 0x91F3, 0x6235, + 0x91F4, 0x6236, 0x91F5, 0x6238, 0x91F6, 0x6239, 0x91F7, 0x623A, + 0x91F8, 0x623B, 0x91F9, 0x623C, 0x91FA, 0x6242, 0x91FB, 0x6244, + 0x91FC, 0x6245, 0x91FD, 0x6246, 0x91FE, 0x624A, 0x9240, 0x624F, + 0x9241, 0x6250, 0x9242, 0x6255, 0x9243, 0x6256, 0x9244, 0x6257, + 0x9245, 0x6259, 0x9246, 0x625A, 0x9247, 0x625C, 0x9248, 0x625D, + 0x9249, 0x625E, 0x924A, 0x625F, 0x924B, 0x6260, 0x924C, 0x6261, + 0x924D, 0x6262, 0x924E, 0x6264, 0x924F, 0x6265, 0x9250, 0x6268, + 0x9251, 0x6271, 0x9252, 0x6272, 0x9253, 0x6274, 0x9254, 0x6275, + 0x9255, 0x6277, 0x9256, 0x6278, 0x9257, 0x627A, 0x9258, 0x627B, + 0x9259, 0x627D, 0x925A, 0x6281, 0x925B, 0x6282, 0x925C, 0x6283, + 0x925D, 0x6285, 0x925E, 0x6286, 0x925F, 0x6287, 0x9260, 0x6288, + 0x9261, 0x628B, 0x9262, 0x628C, 0x9263, 0x628D, 0x9264, 0x628E, + 0x9265, 0x628F, 0x9266, 0x6290, 0x9267, 0x6294, 0x9268, 0x6299, + 0x9269, 0x629C, 0x926A, 0x629D, 0x926B, 0x629E, 0x926C, 0x62A3, + 0x926D, 0x62A6, 0x926E, 0x62A7, 0x926F, 0x62A9, 0x9270, 0x62AA, + 0x9271, 0x62AD, 0x9272, 0x62AE, 0x9273, 0x62AF, 0x9274, 0x62B0, + 0x9275, 0x62B2, 0x9276, 0x62B3, 0x9277, 0x62B4, 0x9278, 0x62B6, + 0x9279, 0x62B7, 0x927A, 0x62B8, 0x927B, 0x62BA, 0x927C, 0x62BE, + 0x927D, 0x62C0, 0x927E, 0x62C1, 0x9280, 0x62C3, 0x9281, 0x62CB, + 0x9282, 0x62CF, 0x9283, 0x62D1, 0x9284, 0x62D5, 0x9285, 0x62DD, + 0x9286, 0x62DE, 0x9287, 0x62E0, 0x9288, 0x62E1, 0x9289, 0x62E4, + 0x928A, 0x62EA, 0x928B, 0x62EB, 0x928C, 0x62F0, 0x928D, 0x62F2, + 0x928E, 0x62F5, 0x928F, 0x62F8, 0x9290, 0x62F9, 0x9291, 0x62FA, + 0x9292, 0x62FB, 0x9293, 0x6300, 0x9294, 0x6303, 0x9295, 0x6304, + 0x9296, 0x6305, 0x9297, 0x6306, 0x9298, 0x630A, 0x9299, 0x630B, + 0x929A, 0x630C, 0x929B, 0x630D, 0x929C, 0x630F, 0x929D, 0x6310, + 0x929E, 0x6312, 0x929F, 0x6313, 0x92A0, 0x6314, 0x92A1, 0x6315, + 0x92A2, 0x6317, 0x92A3, 0x6318, 0x92A4, 0x6319, 0x92A5, 0x631C, + 0x92A6, 0x6326, 0x92A7, 0x6327, 0x92A8, 0x6329, 0x92A9, 0x632C, + 0x92AA, 0x632D, 0x92AB, 0x632E, 0x92AC, 0x6330, 0x92AD, 0x6331, + 0x92AE, 0x6333, 0x92AF, 0x6334, 0x92B0, 0x6335, 0x92B1, 0x6336, + 0x92B2, 0x6337, 0x92B3, 0x6338, 0x92B4, 0x633B, 0x92B5, 0x633C, + 0x92B6, 0x633E, 0x92B7, 0x633F, 0x92B8, 0x6340, 0x92B9, 0x6341, + 0x92BA, 0x6344, 0x92BB, 0x6347, 0x92BC, 0x6348, 0x92BD, 0x634A, + 0x92BE, 0x6351, 0x92BF, 0x6352, 0x92C0, 0x6353, 0x92C1, 0x6354, + 0x92C2, 0x6356, 0x92C3, 0x6357, 0x92C4, 0x6358, 0x92C5, 0x6359, + 0x92C6, 0x635A, 0x92C7, 0x635B, 0x92C8, 0x635C, 0x92C9, 0x635D, + 0x92CA, 0x6360, 0x92CB, 0x6364, 0x92CC, 0x6365, 0x92CD, 0x6366, + 0x92CE, 0x6368, 0x92CF, 0x636A, 0x92D0, 0x636B, 0x92D1, 0x636C, + 0x92D2, 0x636F, 0x92D3, 0x6370, 0x92D4, 0x6372, 0x92D5, 0x6373, + 0x92D6, 0x6374, 0x92D7, 0x6375, 0x92D8, 0x6378, 0x92D9, 0x6379, + 0x92DA, 0x637C, 0x92DB, 0x637D, 0x92DC, 0x637E, 0x92DD, 0x637F, + 0x92DE, 0x6381, 0x92DF, 0x6383, 0x92E0, 0x6384, 0x92E1, 0x6385, + 0x92E2, 0x6386, 0x92E3, 0x638B, 0x92E4, 0x638D, 0x92E5, 0x6391, + 0x92E6, 0x6393, 0x92E7, 0x6394, 0x92E8, 0x6395, 0x92E9, 0x6397, + 0x92EA, 0x6399, 0x92EB, 0x639A, 0x92EC, 0x639B, 0x92ED, 0x639C, + 0x92EE, 0x639D, 0x92EF, 0x639E, 0x92F0, 0x639F, 0x92F1, 0x63A1, + 0x92F2, 0x63A4, 0x92F3, 0x63A6, 0x92F4, 0x63AB, 0x92F5, 0x63AF, + 0x92F6, 0x63B1, 0x92F7, 0x63B2, 0x92F8, 0x63B5, 0x92F9, 0x63B6, + 0x92FA, 0x63B9, 0x92FB, 0x63BB, 0x92FC, 0x63BD, 0x92FD, 0x63BF, + 0x92FE, 0x63C0, 0x9340, 0x63C1, 0x9341, 0x63C2, 0x9342, 0x63C3, + 0x9343, 0x63C5, 0x9344, 0x63C7, 0x9345, 0x63C8, 0x9346, 0x63CA, + 0x9347, 0x63CB, 0x9348, 0x63CC, 0x9349, 0x63D1, 0x934A, 0x63D3, + 0x934B, 0x63D4, 0x934C, 0x63D5, 0x934D, 0x63D7, 0x934E, 0x63D8, + 0x934F, 0x63D9, 0x9350, 0x63DA, 0x9351, 0x63DB, 0x9352, 0x63DC, + 0x9353, 0x63DD, 0x9354, 0x63DF, 0x9355, 0x63E2, 0x9356, 0x63E4, + 0x9357, 0x63E5, 0x9358, 0x63E6, 0x9359, 0x63E7, 0x935A, 0x63E8, + 0x935B, 0x63EB, 0x935C, 0x63EC, 0x935D, 0x63EE, 0x935E, 0x63EF, + 0x935F, 0x63F0, 0x9360, 0x63F1, 0x9361, 0x63F3, 0x9362, 0x63F5, + 0x9363, 0x63F7, 0x9364, 0x63F9, 0x9365, 0x63FA, 0x9366, 0x63FB, + 0x9367, 0x63FC, 0x9368, 0x63FE, 0x9369, 0x6403, 0x936A, 0x6404, + 0x936B, 0x6406, 0x936C, 0x6407, 0x936D, 0x6408, 0x936E, 0x6409, + 0x936F, 0x640A, 0x9370, 0x640D, 0x9371, 0x640E, 0x9372, 0x6411, + 0x9373, 0x6412, 0x9374, 0x6415, 0x9375, 0x6416, 0x9376, 0x6417, + 0x9377, 0x6418, 0x9378, 0x6419, 0x9379, 0x641A, 0x937A, 0x641D, + 0x937B, 0x641F, 0x937C, 0x6422, 0x937D, 0x6423, 0x937E, 0x6424, + 0x9380, 0x6425, 0x9381, 0x6427, 0x9382, 0x6428, 0x9383, 0x6429, + 0x9384, 0x642B, 0x9385, 0x642E, 0x9386, 0x642F, 0x9387, 0x6430, + 0x9388, 0x6431, 0x9389, 0x6432, 0x938A, 0x6433, 0x938B, 0x6435, + 0x938C, 0x6436, 0x938D, 0x6437, 0x938E, 0x6438, 0x938F, 0x6439, + 0x9390, 0x643B, 0x9391, 0x643C, 0x9392, 0x643E, 0x9393, 0x6440, + 0x9394, 0x6442, 0x9395, 0x6443, 0x9396, 0x6449, 0x9397, 0x644B, + 0x9398, 0x644C, 0x9399, 0x644D, 0x939A, 0x644E, 0x939B, 0x644F, + 0x939C, 0x6450, 0x939D, 0x6451, 0x939E, 0x6453, 0x939F, 0x6455, + 0x93A0, 0x6456, 0x93A1, 0x6457, 0x93A2, 0x6459, 0x93A3, 0x645A, + 0x93A4, 0x645B, 0x93A5, 0x645C, 0x93A6, 0x645D, 0x93A7, 0x645F, + 0x93A8, 0x6460, 0x93A9, 0x6461, 0x93AA, 0x6462, 0x93AB, 0x6463, + 0x93AC, 0x6464, 0x93AD, 0x6465, 0x93AE, 0x6466, 0x93AF, 0x6468, + 0x93B0, 0x646A, 0x93B1, 0x646B, 0x93B2, 0x646C, 0x93B3, 0x646E, + 0x93B4, 0x646F, 0x93B5, 0x6470, 0x93B6, 0x6471, 0x93B7, 0x6472, + 0x93B8, 0x6473, 0x93B9, 0x6474, 0x93BA, 0x6475, 0x93BB, 0x6476, + 0x93BC, 0x6477, 0x93BD, 0x647B, 0x93BE, 0x647C, 0x93BF, 0x647D, + 0x93C0, 0x647E, 0x93C1, 0x647F, 0x93C2, 0x6480, 0x93C3, 0x6481, + 0x93C4, 0x6483, 0x93C5, 0x6486, 0x93C6, 0x6488, 0x93C7, 0x6489, + 0x93C8, 0x648A, 0x93C9, 0x648B, 0x93CA, 0x648C, 0x93CB, 0x648D, + 0x93CC, 0x648E, 0x93CD, 0x648F, 0x93CE, 0x6490, 0x93CF, 0x6493, + 0x93D0, 0x6494, 0x93D1, 0x6497, 0x93D2, 0x6498, 0x93D3, 0x649A, + 0x93D4, 0x649B, 0x93D5, 0x649C, 0x93D6, 0x649D, 0x93D7, 0x649F, + 0x93D8, 0x64A0, 0x93D9, 0x64A1, 0x93DA, 0x64A2, 0x93DB, 0x64A3, + 0x93DC, 0x64A5, 0x93DD, 0x64A6, 0x93DE, 0x64A7, 0x93DF, 0x64A8, + 0x93E0, 0x64AA, 0x93E1, 0x64AB, 0x93E2, 0x64AF, 0x93E3, 0x64B1, + 0x93E4, 0x64B2, 0x93E5, 0x64B3, 0x93E6, 0x64B4, 0x93E7, 0x64B6, + 0x93E8, 0x64B9, 0x93E9, 0x64BB, 0x93EA, 0x64BD, 0x93EB, 0x64BE, + 0x93EC, 0x64BF, 0x93ED, 0x64C1, 0x93EE, 0x64C3, 0x93EF, 0x64C4, + 0x93F0, 0x64C6, 0x93F1, 0x64C7, 0x93F2, 0x64C8, 0x93F3, 0x64C9, + 0x93F4, 0x64CA, 0x93F5, 0x64CB, 0x93F6, 0x64CC, 0x93F7, 0x64CF, + 0x93F8, 0x64D1, 0x93F9, 0x64D3, 0x93FA, 0x64D4, 0x93FB, 0x64D5, + 0x93FC, 0x64D6, 0x93FD, 0x64D9, 0x93FE, 0x64DA, 0x9440, 0x64DB, + 0x9441, 0x64DC, 0x9442, 0x64DD, 0x9443, 0x64DF, 0x9444, 0x64E0, + 0x9445, 0x64E1, 0x9446, 0x64E3, 0x9447, 0x64E5, 0x9448, 0x64E7, + 0x9449, 0x64E8, 0x944A, 0x64E9, 0x944B, 0x64EA, 0x944C, 0x64EB, + 0x944D, 0x64EC, 0x944E, 0x64ED, 0x944F, 0x64EE, 0x9450, 0x64EF, + 0x9451, 0x64F0, 0x9452, 0x64F1, 0x9453, 0x64F2, 0x9454, 0x64F3, + 0x9455, 0x64F4, 0x9456, 0x64F5, 0x9457, 0x64F6, 0x9458, 0x64F7, + 0x9459, 0x64F8, 0x945A, 0x64F9, 0x945B, 0x64FA, 0x945C, 0x64FB, + 0x945D, 0x64FC, 0x945E, 0x64FD, 0x945F, 0x64FE, 0x9460, 0x64FF, + 0x9461, 0x6501, 0x9462, 0x6502, 0x9463, 0x6503, 0x9464, 0x6504, + 0x9465, 0x6505, 0x9466, 0x6506, 0x9467, 0x6507, 0x9468, 0x6508, + 0x9469, 0x650A, 0x946A, 0x650B, 0x946B, 0x650C, 0x946C, 0x650D, + 0x946D, 0x650E, 0x946E, 0x650F, 0x946F, 0x6510, 0x9470, 0x6511, + 0x9471, 0x6513, 0x9472, 0x6514, 0x9473, 0x6515, 0x9474, 0x6516, + 0x9475, 0x6517, 0x9476, 0x6519, 0x9477, 0x651A, 0x9478, 0x651B, + 0x9479, 0x651C, 0x947A, 0x651D, 0x947B, 0x651E, 0x947C, 0x651F, + 0x947D, 0x6520, 0x947E, 0x6521, 0x9480, 0x6522, 0x9481, 0x6523, + 0x9482, 0x6524, 0x9483, 0x6526, 0x9484, 0x6527, 0x9485, 0x6528, + 0x9486, 0x6529, 0x9487, 0x652A, 0x9488, 0x652C, 0x9489, 0x652D, + 0x948A, 0x6530, 0x948B, 0x6531, 0x948C, 0x6532, 0x948D, 0x6533, + 0x948E, 0x6537, 0x948F, 0x653A, 0x9490, 0x653C, 0x9491, 0x653D, + 0x9492, 0x6540, 0x9493, 0x6541, 0x9494, 0x6542, 0x9495, 0x6543, + 0x9496, 0x6544, 0x9497, 0x6546, 0x9498, 0x6547, 0x9499, 0x654A, + 0x949A, 0x654B, 0x949B, 0x654D, 0x949C, 0x654E, 0x949D, 0x6550, + 0x949E, 0x6552, 0x949F, 0x6553, 0x94A0, 0x6554, 0x94A1, 0x6557, + 0x94A2, 0x6558, 0x94A3, 0x655A, 0x94A4, 0x655C, 0x94A5, 0x655F, + 0x94A6, 0x6560, 0x94A7, 0x6561, 0x94A8, 0x6564, 0x94A9, 0x6565, + 0x94AA, 0x6567, 0x94AB, 0x6568, 0x94AC, 0x6569, 0x94AD, 0x656A, + 0x94AE, 0x656D, 0x94AF, 0x656E, 0x94B0, 0x656F, 0x94B1, 0x6571, + 0x94B2, 0x6573, 0x94B3, 0x6575, 0x94B4, 0x6576, 0x94B5, 0x6578, + 0x94B6, 0x6579, 0x94B7, 0x657A, 0x94B8, 0x657B, 0x94B9, 0x657C, + 0x94BA, 0x657D, 0x94BB, 0x657E, 0x94BC, 0x657F, 0x94BD, 0x6580, + 0x94BE, 0x6581, 0x94BF, 0x6582, 0x94C0, 0x6583, 0x94C1, 0x6584, + 0x94C2, 0x6585, 0x94C3, 0x6586, 0x94C4, 0x6588, 0x94C5, 0x6589, + 0x94C6, 0x658A, 0x94C7, 0x658D, 0x94C8, 0x658E, 0x94C9, 0x658F, + 0x94CA, 0x6592, 0x94CB, 0x6594, 0x94CC, 0x6595, 0x94CD, 0x6596, + 0x94CE, 0x6598, 0x94CF, 0x659A, 0x94D0, 0x659D, 0x94D1, 0x659E, + 0x94D2, 0x65A0, 0x94D3, 0x65A2, 0x94D4, 0x65A3, 0x94D5, 0x65A6, + 0x94D6, 0x65A8, 0x94D7, 0x65AA, 0x94D8, 0x65AC, 0x94D9, 0x65AE, + 0x94DA, 0x65B1, 0x94DB, 0x65B2, 0x94DC, 0x65B3, 0x94DD, 0x65B4, + 0x94DE, 0x65B5, 0x94DF, 0x65B6, 0x94E0, 0x65B7, 0x94E1, 0x65B8, + 0x94E2, 0x65BA, 0x94E3, 0x65BB, 0x94E4, 0x65BE, 0x94E5, 0x65BF, + 0x94E6, 0x65C0, 0x94E7, 0x65C2, 0x94E8, 0x65C7, 0x94E9, 0x65C8, + 0x94EA, 0x65C9, 0x94EB, 0x65CA, 0x94EC, 0x65CD, 0x94ED, 0x65D0, + 0x94EE, 0x65D1, 0x94EF, 0x65D3, 0x94F0, 0x65D4, 0x94F1, 0x65D5, + 0x94F2, 0x65D8, 0x94F3, 0x65D9, 0x94F4, 0x65DA, 0x94F5, 0x65DB, + 0x94F6, 0x65DC, 0x94F7, 0x65DD, 0x94F8, 0x65DE, 0x94F9, 0x65DF, + 0x94FA, 0x65E1, 0x94FB, 0x65E3, 0x94FC, 0x65E4, 0x94FD, 0x65EA, + 0x94FE, 0x65EB, 0x9540, 0x65F2, 0x9541, 0x65F3, 0x9542, 0x65F4, + 0x9543, 0x65F5, 0x9544, 0x65F8, 0x9545, 0x65F9, 0x9546, 0x65FB, + 0x9547, 0x65FC, 0x9548, 0x65FD, 0x9549, 0x65FE, 0x954A, 0x65FF, + 0x954B, 0x6601, 0x954C, 0x6604, 0x954D, 0x6605, 0x954E, 0x6607, + 0x954F, 0x6608, 0x9550, 0x6609, 0x9551, 0x660B, 0x9552, 0x660D, + 0x9553, 0x6610, 0x9554, 0x6611, 0x9555, 0x6612, 0x9556, 0x6616, + 0x9557, 0x6617, 0x9558, 0x6618, 0x9559, 0x661A, 0x955A, 0x661B, + 0x955B, 0x661C, 0x955C, 0x661E, 0x955D, 0x6621, 0x955E, 0x6622, + 0x955F, 0x6623, 0x9560, 0x6624, 0x9561, 0x6626, 0x9562, 0x6629, + 0x9563, 0x662A, 0x9564, 0x662B, 0x9565, 0x662C, 0x9566, 0x662E, + 0x9567, 0x6630, 0x9568, 0x6632, 0x9569, 0x6633, 0x956A, 0x6637, + 0x956B, 0x6638, 0x956C, 0x6639, 0x956D, 0x663A, 0x956E, 0x663B, + 0x956F, 0x663D, 0x9570, 0x663F, 0x9571, 0x6640, 0x9572, 0x6642, + 0x9573, 0x6644, 0x9574, 0x6645, 0x9575, 0x6646, 0x9576, 0x6647, + 0x9577, 0x6648, 0x9578, 0x6649, 0x9579, 0x664A, 0x957A, 0x664D, + 0x957B, 0x664E, 0x957C, 0x6650, 0x957D, 0x6651, 0x957E, 0x6658, + 0x9580, 0x6659, 0x9581, 0x665B, 0x9582, 0x665C, 0x9583, 0x665D, + 0x9584, 0x665E, 0x9585, 0x6660, 0x9586, 0x6662, 0x9587, 0x6663, + 0x9588, 0x6665, 0x9589, 0x6667, 0x958A, 0x6669, 0x958B, 0x666A, + 0x958C, 0x666B, 0x958D, 0x666C, 0x958E, 0x666D, 0x958F, 0x6671, + 0x9590, 0x6672, 0x9591, 0x6673, 0x9592, 0x6675, 0x9593, 0x6678, + 0x9594, 0x6679, 0x9595, 0x667B, 0x9596, 0x667C, 0x9597, 0x667D, + 0x9598, 0x667F, 0x9599, 0x6680, 0x959A, 0x6681, 0x959B, 0x6683, + 0x959C, 0x6685, 0x959D, 0x6686, 0x959E, 0x6688, 0x959F, 0x6689, + 0x95A0, 0x668A, 0x95A1, 0x668B, 0x95A2, 0x668D, 0x95A3, 0x668E, + 0x95A4, 0x668F, 0x95A5, 0x6690, 0x95A6, 0x6692, 0x95A7, 0x6693, + 0x95A8, 0x6694, 0x95A9, 0x6695, 0x95AA, 0x6698, 0x95AB, 0x6699, + 0x95AC, 0x669A, 0x95AD, 0x669B, 0x95AE, 0x669C, 0x95AF, 0x669E, + 0x95B0, 0x669F, 0x95B1, 0x66A0, 0x95B2, 0x66A1, 0x95B3, 0x66A2, + 0x95B4, 0x66A3, 0x95B5, 0x66A4, 0x95B6, 0x66A5, 0x95B7, 0x66A6, + 0x95B8, 0x66A9, 0x95B9, 0x66AA, 0x95BA, 0x66AB, 0x95BB, 0x66AC, + 0x95BC, 0x66AD, 0x95BD, 0x66AF, 0x95BE, 0x66B0, 0x95BF, 0x66B1, + 0x95C0, 0x66B2, 0x95C1, 0x66B3, 0x95C2, 0x66B5, 0x95C3, 0x66B6, + 0x95C4, 0x66B7, 0x95C5, 0x66B8, 0x95C6, 0x66BA, 0x95C7, 0x66BB, + 0x95C8, 0x66BC, 0x95C9, 0x66BD, 0x95CA, 0x66BF, 0x95CB, 0x66C0, + 0x95CC, 0x66C1, 0x95CD, 0x66C2, 0x95CE, 0x66C3, 0x95CF, 0x66C4, + 0x95D0, 0x66C5, 0x95D1, 0x66C6, 0x95D2, 0x66C7, 0x95D3, 0x66C8, + 0x95D4, 0x66C9, 0x95D5, 0x66CA, 0x95D6, 0x66CB, 0x95D7, 0x66CC, + 0x95D8, 0x66CD, 0x95D9, 0x66CE, 0x95DA, 0x66CF, 0x95DB, 0x66D0, + 0x95DC, 0x66D1, 0x95DD, 0x66D2, 0x95DE, 0x66D3, 0x95DF, 0x66D4, + 0x95E0, 0x66D5, 0x95E1, 0x66D6, 0x95E2, 0x66D7, 0x95E3, 0x66D8, + 0x95E4, 0x66DA, 0x95E5, 0x66DE, 0x95E6, 0x66DF, 0x95E7, 0x66E0, + 0x95E8, 0x66E1, 0x95E9, 0x66E2, 0x95EA, 0x66E3, 0x95EB, 0x66E4, + 0x95EC, 0x66E5, 0x95ED, 0x66E7, 0x95EE, 0x66E8, 0x95EF, 0x66EA, + 0x95F0, 0x66EB, 0x95F1, 0x66EC, 0x95F2, 0x66ED, 0x95F3, 0x66EE, + 0x95F4, 0x66EF, 0x95F5, 0x66F1, 0x95F6, 0x66F5, 0x95F7, 0x66F6, + 0x95F8, 0x66F8, 0x95F9, 0x66FA, 0x95FA, 0x66FB, 0x95FB, 0x66FD, + 0x95FC, 0x6701, 0x95FD, 0x6702, 0x95FE, 0x6703, 0x9640, 0x6704, + 0x9641, 0x6705, 0x9642, 0x6706, 0x9643, 0x6707, 0x9644, 0x670C, + 0x9645, 0x670E, 0x9646, 0x670F, 0x9647, 0x6711, 0x9648, 0x6712, + 0x9649, 0x6713, 0x964A, 0x6716, 0x964B, 0x6718, 0x964C, 0x6719, + 0x964D, 0x671A, 0x964E, 0x671C, 0x964F, 0x671E, 0x9650, 0x6720, + 0x9651, 0x6721, 0x9652, 0x6722, 0x9653, 0x6723, 0x9654, 0x6724, + 0x9655, 0x6725, 0x9656, 0x6727, 0x9657, 0x6729, 0x9658, 0x672E, + 0x9659, 0x6730, 0x965A, 0x6732, 0x965B, 0x6733, 0x965C, 0x6736, + 0x965D, 0x6737, 0x965E, 0x6738, 0x965F, 0x6739, 0x9660, 0x673B, + 0x9661, 0x673C, 0x9662, 0x673E, 0x9663, 0x673F, 0x9664, 0x6741, + 0x9665, 0x6744, 0x9666, 0x6745, 0x9667, 0x6747, 0x9668, 0x674A, + 0x9669, 0x674B, 0x966A, 0x674D, 0x966B, 0x6752, 0x966C, 0x6754, + 0x966D, 0x6755, 0x966E, 0x6757, 0x966F, 0x6758, 0x9670, 0x6759, + 0x9671, 0x675A, 0x9672, 0x675B, 0x9673, 0x675D, 0x9674, 0x6762, + 0x9675, 0x6763, 0x9676, 0x6764, 0x9677, 0x6766, 0x9678, 0x6767, + 0x9679, 0x676B, 0x967A, 0x676C, 0x967B, 0x676E, 0x967C, 0x6771, + 0x967D, 0x6774, 0x967E, 0x6776, 0x9680, 0x6778, 0x9681, 0x6779, + 0x9682, 0x677A, 0x9683, 0x677B, 0x9684, 0x677D, 0x9685, 0x6780, + 0x9686, 0x6782, 0x9687, 0x6783, 0x9688, 0x6785, 0x9689, 0x6786, + 0x968A, 0x6788, 0x968B, 0x678A, 0x968C, 0x678C, 0x968D, 0x678D, + 0x968E, 0x678E, 0x968F, 0x678F, 0x9690, 0x6791, 0x9691, 0x6792, + 0x9692, 0x6793, 0x9693, 0x6794, 0x9694, 0x6796, 0x9695, 0x6799, + 0x9696, 0x679B, 0x9697, 0x679F, 0x9698, 0x67A0, 0x9699, 0x67A1, + 0x969A, 0x67A4, 0x969B, 0x67A6, 0x969C, 0x67A9, 0x969D, 0x67AC, + 0x969E, 0x67AE, 0x969F, 0x67B1, 0x96A0, 0x67B2, 0x96A1, 0x67B4, + 0x96A2, 0x67B9, 0x96A3, 0x67BA, 0x96A4, 0x67BB, 0x96A5, 0x67BC, + 0x96A6, 0x67BD, 0x96A7, 0x67BE, 0x96A8, 0x67BF, 0x96A9, 0x67C0, + 0x96AA, 0x67C2, 0x96AB, 0x67C5, 0x96AC, 0x67C6, 0x96AD, 0x67C7, + 0x96AE, 0x67C8, 0x96AF, 0x67C9, 0x96B0, 0x67CA, 0x96B1, 0x67CB, + 0x96B2, 0x67CC, 0x96B3, 0x67CD, 0x96B4, 0x67CE, 0x96B5, 0x67D5, + 0x96B6, 0x67D6, 0x96B7, 0x67D7, 0x96B8, 0x67DB, 0x96B9, 0x67DF, + 0x96BA, 0x67E1, 0x96BB, 0x67E3, 0x96BC, 0x67E4, 0x96BD, 0x67E6, + 0x96BE, 0x67E7, 0x96BF, 0x67E8, 0x96C0, 0x67EA, 0x96C1, 0x67EB, + 0x96C2, 0x67ED, 0x96C3, 0x67EE, 0x96C4, 0x67F2, 0x96C5, 0x67F5, + 0x96C6, 0x67F6, 0x96C7, 0x67F7, 0x96C8, 0x67F8, 0x96C9, 0x67F9, + 0x96CA, 0x67FA, 0x96CB, 0x67FB, 0x96CC, 0x67FC, 0x96CD, 0x67FE, + 0x96CE, 0x6801, 0x96CF, 0x6802, 0x96D0, 0x6803, 0x96D1, 0x6804, + 0x96D2, 0x6806, 0x96D3, 0x680D, 0x96D4, 0x6810, 0x96D5, 0x6812, + 0x96D6, 0x6814, 0x96D7, 0x6815, 0x96D8, 0x6818, 0x96D9, 0x6819, + 0x96DA, 0x681A, 0x96DB, 0x681B, 0x96DC, 0x681C, 0x96DD, 0x681E, + 0x96DE, 0x681F, 0x96DF, 0x6820, 0x96E0, 0x6822, 0x96E1, 0x6823, + 0x96E2, 0x6824, 0x96E3, 0x6825, 0x96E4, 0x6826, 0x96E5, 0x6827, + 0x96E6, 0x6828, 0x96E7, 0x682B, 0x96E8, 0x682C, 0x96E9, 0x682D, + 0x96EA, 0x682E, 0x96EB, 0x682F, 0x96EC, 0x6830, 0x96ED, 0x6831, + 0x96EE, 0x6834, 0x96EF, 0x6835, 0x96F0, 0x6836, 0x96F1, 0x683A, + 0x96F2, 0x683B, 0x96F3, 0x683F, 0x96F4, 0x6847, 0x96F5, 0x684B, + 0x96F6, 0x684D, 0x96F7, 0x684F, 0x96F8, 0x6852, 0x96F9, 0x6856, + 0x96FA, 0x6857, 0x96FB, 0x6858, 0x96FC, 0x6859, 0x96FD, 0x685A, + 0x96FE, 0x685B, 0x9740, 0x685C, 0x9741, 0x685D, 0x9742, 0x685E, + 0x9743, 0x685F, 0x9744, 0x686A, 0x9745, 0x686C, 0x9746, 0x686D, + 0x9747, 0x686E, 0x9748, 0x686F, 0x9749, 0x6870, 0x974A, 0x6871, + 0x974B, 0x6872, 0x974C, 0x6873, 0x974D, 0x6875, 0x974E, 0x6878, + 0x974F, 0x6879, 0x9750, 0x687A, 0x9751, 0x687B, 0x9752, 0x687C, + 0x9753, 0x687D, 0x9754, 0x687E, 0x9755, 0x687F, 0x9756, 0x6880, + 0x9757, 0x6882, 0x9758, 0x6884, 0x9759, 0x6887, 0x975A, 0x6888, + 0x975B, 0x6889, 0x975C, 0x688A, 0x975D, 0x688B, 0x975E, 0x688C, + 0x975F, 0x688D, 0x9760, 0x688E, 0x9761, 0x6890, 0x9762, 0x6891, + 0x9763, 0x6892, 0x9764, 0x6894, 0x9765, 0x6895, 0x9766, 0x6896, + 0x9767, 0x6898, 0x9768, 0x6899, 0x9769, 0x689A, 0x976A, 0x689B, + 0x976B, 0x689C, 0x976C, 0x689D, 0x976D, 0x689E, 0x976E, 0x689F, + 0x976F, 0x68A0, 0x9770, 0x68A1, 0x9771, 0x68A3, 0x9772, 0x68A4, + 0x9773, 0x68A5, 0x9774, 0x68A9, 0x9775, 0x68AA, 0x9776, 0x68AB, + 0x9777, 0x68AC, 0x9778, 0x68AE, 0x9779, 0x68B1, 0x977A, 0x68B2, + 0x977B, 0x68B4, 0x977C, 0x68B6, 0x977D, 0x68B7, 0x977E, 0x68B8, + 0x9780, 0x68B9, 0x9781, 0x68BA, 0x9782, 0x68BB, 0x9783, 0x68BC, + 0x9784, 0x68BD, 0x9785, 0x68BE, 0x9786, 0x68BF, 0x9787, 0x68C1, + 0x9788, 0x68C3, 0x9789, 0x68C4, 0x978A, 0x68C5, 0x978B, 0x68C6, + 0x978C, 0x68C7, 0x978D, 0x68C8, 0x978E, 0x68CA, 0x978F, 0x68CC, + 0x9790, 0x68CE, 0x9791, 0x68CF, 0x9792, 0x68D0, 0x9793, 0x68D1, + 0x9794, 0x68D3, 0x9795, 0x68D4, 0x9796, 0x68D6, 0x9797, 0x68D7, + 0x9798, 0x68D9, 0x9799, 0x68DB, 0x979A, 0x68DC, 0x979B, 0x68DD, + 0x979C, 0x68DE, 0x979D, 0x68DF, 0x979E, 0x68E1, 0x979F, 0x68E2, + 0x97A0, 0x68E4, 0x97A1, 0x68E5, 0x97A2, 0x68E6, 0x97A3, 0x68E7, + 0x97A4, 0x68E8, 0x97A5, 0x68E9, 0x97A6, 0x68EA, 0x97A7, 0x68EB, + 0x97A8, 0x68EC, 0x97A9, 0x68ED, 0x97AA, 0x68EF, 0x97AB, 0x68F2, + 0x97AC, 0x68F3, 0x97AD, 0x68F4, 0x97AE, 0x68F6, 0x97AF, 0x68F7, + 0x97B0, 0x68F8, 0x97B1, 0x68FB, 0x97B2, 0x68FD, 0x97B3, 0x68FE, + 0x97B4, 0x68FF, 0x97B5, 0x6900, 0x97B6, 0x6902, 0x97B7, 0x6903, + 0x97B8, 0x6904, 0x97B9, 0x6906, 0x97BA, 0x6907, 0x97BB, 0x6908, + 0x97BC, 0x6909, 0x97BD, 0x690A, 0x97BE, 0x690C, 0x97BF, 0x690F, + 0x97C0, 0x6911, 0x97C1, 0x6913, 0x97C2, 0x6914, 0x97C3, 0x6915, + 0x97C4, 0x6916, 0x97C5, 0x6917, 0x97C6, 0x6918, 0x97C7, 0x6919, + 0x97C8, 0x691A, 0x97C9, 0x691B, 0x97CA, 0x691C, 0x97CB, 0x691D, + 0x97CC, 0x691E, 0x97CD, 0x6921, 0x97CE, 0x6922, 0x97CF, 0x6923, + 0x97D0, 0x6925, 0x97D1, 0x6926, 0x97D2, 0x6927, 0x97D3, 0x6928, + 0x97D4, 0x6929, 0x97D5, 0x692A, 0x97D6, 0x692B, 0x97D7, 0x692C, + 0x97D8, 0x692E, 0x97D9, 0x692F, 0x97DA, 0x6931, 0x97DB, 0x6932, + 0x97DC, 0x6933, 0x97DD, 0x6935, 0x97DE, 0x6936, 0x97DF, 0x6937, + 0x97E0, 0x6938, 0x97E1, 0x693A, 0x97E2, 0x693B, 0x97E3, 0x693C, + 0x97E4, 0x693E, 0x97E5, 0x6940, 0x97E6, 0x6941, 0x97E7, 0x6943, + 0x97E8, 0x6944, 0x97E9, 0x6945, 0x97EA, 0x6946, 0x97EB, 0x6947, + 0x97EC, 0x6948, 0x97ED, 0x6949, 0x97EE, 0x694A, 0x97EF, 0x694B, + 0x97F0, 0x694C, 0x97F1, 0x694D, 0x97F2, 0x694E, 0x97F3, 0x694F, + 0x97F4, 0x6950, 0x97F5, 0x6951, 0x97F6, 0x6952, 0x97F7, 0x6953, + 0x97F8, 0x6955, 0x97F9, 0x6956, 0x97FA, 0x6958, 0x97FB, 0x6959, + 0x97FC, 0x695B, 0x97FD, 0x695C, 0x97FE, 0x695F, 0x9840, 0x6961, + 0x9841, 0x6962, 0x9842, 0x6964, 0x9843, 0x6965, 0x9844, 0x6967, + 0x9845, 0x6968, 0x9846, 0x6969, 0x9847, 0x696A, 0x9848, 0x696C, + 0x9849, 0x696D, 0x984A, 0x696F, 0x984B, 0x6970, 0x984C, 0x6972, + 0x984D, 0x6973, 0x984E, 0x6974, 0x984F, 0x6975, 0x9850, 0x6976, + 0x9851, 0x697A, 0x9852, 0x697B, 0x9853, 0x697D, 0x9854, 0x697E, + 0x9855, 0x697F, 0x9856, 0x6981, 0x9857, 0x6983, 0x9858, 0x6985, + 0x9859, 0x698A, 0x985A, 0x698B, 0x985B, 0x698C, 0x985C, 0x698E, + 0x985D, 0x698F, 0x985E, 0x6990, 0x985F, 0x6991, 0x9860, 0x6992, + 0x9861, 0x6993, 0x9862, 0x6996, 0x9863, 0x6997, 0x9864, 0x6999, + 0x9865, 0x699A, 0x9866, 0x699D, 0x9867, 0x699E, 0x9868, 0x699F, + 0x9869, 0x69A0, 0x986A, 0x69A1, 0x986B, 0x69A2, 0x986C, 0x69A3, + 0x986D, 0x69A4, 0x986E, 0x69A5, 0x986F, 0x69A6, 0x9870, 0x69A9, + 0x9871, 0x69AA, 0x9872, 0x69AC, 0x9873, 0x69AE, 0x9874, 0x69AF, + 0x9875, 0x69B0, 0x9876, 0x69B2, 0x9877, 0x69B3, 0x9878, 0x69B5, + 0x9879, 0x69B6, 0x987A, 0x69B8, 0x987B, 0x69B9, 0x987C, 0x69BA, + 0x987D, 0x69BC, 0x987E, 0x69BD, 0x9880, 0x69BE, 0x9881, 0x69BF, + 0x9882, 0x69C0, 0x9883, 0x69C2, 0x9884, 0x69C3, 0x9885, 0x69C4, + 0x9886, 0x69C5, 0x9887, 0x69C6, 0x9888, 0x69C7, 0x9889, 0x69C8, + 0x988A, 0x69C9, 0x988B, 0x69CB, 0x988C, 0x69CD, 0x988D, 0x69CF, + 0x988E, 0x69D1, 0x988F, 0x69D2, 0x9890, 0x69D3, 0x9891, 0x69D5, + 0x9892, 0x69D6, 0x9893, 0x69D7, 0x9894, 0x69D8, 0x9895, 0x69D9, + 0x9896, 0x69DA, 0x9897, 0x69DC, 0x9898, 0x69DD, 0x9899, 0x69DE, + 0x989A, 0x69E1, 0x989B, 0x69E2, 0x989C, 0x69E3, 0x989D, 0x69E4, + 0x989E, 0x69E5, 0x989F, 0x69E6, 0x98A0, 0x69E7, 0x98A1, 0x69E8, + 0x98A2, 0x69E9, 0x98A3, 0x69EA, 0x98A4, 0x69EB, 0x98A5, 0x69EC, + 0x98A6, 0x69EE, 0x98A7, 0x69EF, 0x98A8, 0x69F0, 0x98A9, 0x69F1, + 0x98AA, 0x69F3, 0x98AB, 0x69F4, 0x98AC, 0x69F5, 0x98AD, 0x69F6, + 0x98AE, 0x69F7, 0x98AF, 0x69F8, 0x98B0, 0x69F9, 0x98B1, 0x69FA, + 0x98B2, 0x69FB, 0x98B3, 0x69FC, 0x98B4, 0x69FE, 0x98B5, 0x6A00, + 0x98B6, 0x6A01, 0x98B7, 0x6A02, 0x98B8, 0x6A03, 0x98B9, 0x6A04, + 0x98BA, 0x6A05, 0x98BB, 0x6A06, 0x98BC, 0x6A07, 0x98BD, 0x6A08, + 0x98BE, 0x6A09, 0x98BF, 0x6A0B, 0x98C0, 0x6A0C, 0x98C1, 0x6A0D, + 0x98C2, 0x6A0E, 0x98C3, 0x6A0F, 0x98C4, 0x6A10, 0x98C5, 0x6A11, + 0x98C6, 0x6A12, 0x98C7, 0x6A13, 0x98C8, 0x6A14, 0x98C9, 0x6A15, + 0x98CA, 0x6A16, 0x98CB, 0x6A19, 0x98CC, 0x6A1A, 0x98CD, 0x6A1B, + 0x98CE, 0x6A1C, 0x98CF, 0x6A1D, 0x98D0, 0x6A1E, 0x98D1, 0x6A20, + 0x98D2, 0x6A22, 0x98D3, 0x6A23, 0x98D4, 0x6A24, 0x98D5, 0x6A25, + 0x98D6, 0x6A26, 0x98D7, 0x6A27, 0x98D8, 0x6A29, 0x98D9, 0x6A2B, + 0x98DA, 0x6A2C, 0x98DB, 0x6A2D, 0x98DC, 0x6A2E, 0x98DD, 0x6A30, + 0x98DE, 0x6A32, 0x98DF, 0x6A33, 0x98E0, 0x6A34, 0x98E1, 0x6A36, + 0x98E2, 0x6A37, 0x98E3, 0x6A38, 0x98E4, 0x6A39, 0x98E5, 0x6A3A, + 0x98E6, 0x6A3B, 0x98E7, 0x6A3C, 0x98E8, 0x6A3F, 0x98E9, 0x6A40, + 0x98EA, 0x6A41, 0x98EB, 0x6A42, 0x98EC, 0x6A43, 0x98ED, 0x6A45, + 0x98EE, 0x6A46, 0x98EF, 0x6A48, 0x98F0, 0x6A49, 0x98F1, 0x6A4A, + 0x98F2, 0x6A4B, 0x98F3, 0x6A4C, 0x98F4, 0x6A4D, 0x98F5, 0x6A4E, + 0x98F6, 0x6A4F, 0x98F7, 0x6A51, 0x98F8, 0x6A52, 0x98F9, 0x6A53, + 0x98FA, 0x6A54, 0x98FB, 0x6A55, 0x98FC, 0x6A56, 0x98FD, 0x6A57, + 0x98FE, 0x6A5A, 0x9940, 0x6A5C, 0x9941, 0x6A5D, 0x9942, 0x6A5E, + 0x9943, 0x6A5F, 0x9944, 0x6A60, 0x9945, 0x6A62, 0x9946, 0x6A63, + 0x9947, 0x6A64, 0x9948, 0x6A66, 0x9949, 0x6A67, 0x994A, 0x6A68, + 0x994B, 0x6A69, 0x994C, 0x6A6A, 0x994D, 0x6A6B, 0x994E, 0x6A6C, + 0x994F, 0x6A6D, 0x9950, 0x6A6E, 0x9951, 0x6A6F, 0x9952, 0x6A70, + 0x9953, 0x6A72, 0x9954, 0x6A73, 0x9955, 0x6A74, 0x9956, 0x6A75, + 0x9957, 0x6A76, 0x9958, 0x6A77, 0x9959, 0x6A78, 0x995A, 0x6A7A, + 0x995B, 0x6A7B, 0x995C, 0x6A7D, 0x995D, 0x6A7E, 0x995E, 0x6A7F, + 0x995F, 0x6A81, 0x9960, 0x6A82, 0x9961, 0x6A83, 0x9962, 0x6A85, + 0x9963, 0x6A86, 0x9964, 0x6A87, 0x9965, 0x6A88, 0x9966, 0x6A89, + 0x9967, 0x6A8A, 0x9968, 0x6A8B, 0x9969, 0x6A8C, 0x996A, 0x6A8D, + 0x996B, 0x6A8F, 0x996C, 0x6A92, 0x996D, 0x6A93, 0x996E, 0x6A94, + 0x996F, 0x6A95, 0x9970, 0x6A96, 0x9971, 0x6A98, 0x9972, 0x6A99, + 0x9973, 0x6A9A, 0x9974, 0x6A9B, 0x9975, 0x6A9C, 0x9976, 0x6A9D, + 0x9977, 0x6A9E, 0x9978, 0x6A9F, 0x9979, 0x6AA1, 0x997A, 0x6AA2, + 0x997B, 0x6AA3, 0x997C, 0x6AA4, 0x997D, 0x6AA5, 0x997E, 0x6AA6, + 0x9980, 0x6AA7, 0x9981, 0x6AA8, 0x9982, 0x6AAA, 0x9983, 0x6AAD, + 0x9984, 0x6AAE, 0x9985, 0x6AAF, 0x9986, 0x6AB0, 0x9987, 0x6AB1, + 0x9988, 0x6AB2, 0x9989, 0x6AB3, 0x998A, 0x6AB4, 0x998B, 0x6AB5, + 0x998C, 0x6AB6, 0x998D, 0x6AB7, 0x998E, 0x6AB8, 0x998F, 0x6AB9, + 0x9990, 0x6ABA, 0x9991, 0x6ABB, 0x9992, 0x6ABC, 0x9993, 0x6ABD, + 0x9994, 0x6ABE, 0x9995, 0x6ABF, 0x9996, 0x6AC0, 0x9997, 0x6AC1, + 0x9998, 0x6AC2, 0x9999, 0x6AC3, 0x999A, 0x6AC4, 0x999B, 0x6AC5, + 0x999C, 0x6AC6, 0x999D, 0x6AC7, 0x999E, 0x6AC8, 0x999F, 0x6AC9, + 0x99A0, 0x6ACA, 0x99A1, 0x6ACB, 0x99A2, 0x6ACC, 0x99A3, 0x6ACD, + 0x99A4, 0x6ACE, 0x99A5, 0x6ACF, 0x99A6, 0x6AD0, 0x99A7, 0x6AD1, + 0x99A8, 0x6AD2, 0x99A9, 0x6AD3, 0x99AA, 0x6AD4, 0x99AB, 0x6AD5, + 0x99AC, 0x6AD6, 0x99AD, 0x6AD7, 0x99AE, 0x6AD8, 0x99AF, 0x6AD9, + 0x99B0, 0x6ADA, 0x99B1, 0x6ADB, 0x99B2, 0x6ADC, 0x99B3, 0x6ADD, + 0x99B4, 0x6ADE, 0x99B5, 0x6ADF, 0x99B6, 0x6AE0, 0x99B7, 0x6AE1, + 0x99B8, 0x6AE2, 0x99B9, 0x6AE3, 0x99BA, 0x6AE4, 0x99BB, 0x6AE5, + 0x99BC, 0x6AE6, 0x99BD, 0x6AE7, 0x99BE, 0x6AE8, 0x99BF, 0x6AE9, + 0x99C0, 0x6AEA, 0x99C1, 0x6AEB, 0x99C2, 0x6AEC, 0x99C3, 0x6AED, + 0x99C4, 0x6AEE, 0x99C5, 0x6AEF, 0x99C6, 0x6AF0, 0x99C7, 0x6AF1, + 0x99C8, 0x6AF2, 0x99C9, 0x6AF3, 0x99CA, 0x6AF4, 0x99CB, 0x6AF5, + 0x99CC, 0x6AF6, 0x99CD, 0x6AF7, 0x99CE, 0x6AF8, 0x99CF, 0x6AF9, + 0x99D0, 0x6AFA, 0x99D1, 0x6AFB, 0x99D2, 0x6AFC, 0x99D3, 0x6AFD, + 0x99D4, 0x6AFE, 0x99D5, 0x6AFF, 0x99D6, 0x6B00, 0x99D7, 0x6B01, + 0x99D8, 0x6B02, 0x99D9, 0x6B03, 0x99DA, 0x6B04, 0x99DB, 0x6B05, + 0x99DC, 0x6B06, 0x99DD, 0x6B07, 0x99DE, 0x6B08, 0x99DF, 0x6B09, + 0x99E0, 0x6B0A, 0x99E1, 0x6B0B, 0x99E2, 0x6B0C, 0x99E3, 0x6B0D, + 0x99E4, 0x6B0E, 0x99E5, 0x6B0F, 0x99E6, 0x6B10, 0x99E7, 0x6B11, + 0x99E8, 0x6B12, 0x99E9, 0x6B13, 0x99EA, 0x6B14, 0x99EB, 0x6B15, + 0x99EC, 0x6B16, 0x99ED, 0x6B17, 0x99EE, 0x6B18, 0x99EF, 0x6B19, + 0x99F0, 0x6B1A, 0x99F1, 0x6B1B, 0x99F2, 0x6B1C, 0x99F3, 0x6B1D, + 0x99F4, 0x6B1E, 0x99F5, 0x6B1F, 0x99F6, 0x6B25, 0x99F7, 0x6B26, + 0x99F8, 0x6B28, 0x99F9, 0x6B29, 0x99FA, 0x6B2A, 0x99FB, 0x6B2B, + 0x99FC, 0x6B2C, 0x99FD, 0x6B2D, 0x99FE, 0x6B2E, 0x9A40, 0x6B2F, + 0x9A41, 0x6B30, 0x9A42, 0x6B31, 0x9A43, 0x6B33, 0x9A44, 0x6B34, + 0x9A45, 0x6B35, 0x9A46, 0x6B36, 0x9A47, 0x6B38, 0x9A48, 0x6B3B, + 0x9A49, 0x6B3C, 0x9A4A, 0x6B3D, 0x9A4B, 0x6B3F, 0x9A4C, 0x6B40, + 0x9A4D, 0x6B41, 0x9A4E, 0x6B42, 0x9A4F, 0x6B44, 0x9A50, 0x6B45, + 0x9A51, 0x6B48, 0x9A52, 0x6B4A, 0x9A53, 0x6B4B, 0x9A54, 0x6B4D, + 0x9A55, 0x6B4E, 0x9A56, 0x6B4F, 0x9A57, 0x6B50, 0x9A58, 0x6B51, + 0x9A59, 0x6B52, 0x9A5A, 0x6B53, 0x9A5B, 0x6B54, 0x9A5C, 0x6B55, + 0x9A5D, 0x6B56, 0x9A5E, 0x6B57, 0x9A5F, 0x6B58, 0x9A60, 0x6B5A, + 0x9A61, 0x6B5B, 0x9A62, 0x6B5C, 0x9A63, 0x6B5D, 0x9A64, 0x6B5E, + 0x9A65, 0x6B5F, 0x9A66, 0x6B60, 0x9A67, 0x6B61, 0x9A68, 0x6B68, + 0x9A69, 0x6B69, 0x9A6A, 0x6B6B, 0x9A6B, 0x6B6C, 0x9A6C, 0x6B6D, + 0x9A6D, 0x6B6E, 0x9A6E, 0x6B6F, 0x9A6F, 0x6B70, 0x9A70, 0x6B71, + 0x9A71, 0x6B72, 0x9A72, 0x6B73, 0x9A73, 0x6B74, 0x9A74, 0x6B75, + 0x9A75, 0x6B76, 0x9A76, 0x6B77, 0x9A77, 0x6B78, 0x9A78, 0x6B7A, + 0x9A79, 0x6B7D, 0x9A7A, 0x6B7E, 0x9A7B, 0x6B7F, 0x9A7C, 0x6B80, + 0x9A7D, 0x6B85, 0x9A7E, 0x6B88, 0x9A80, 0x6B8C, 0x9A81, 0x6B8E, + 0x9A82, 0x6B8F, 0x9A83, 0x6B90, 0x9A84, 0x6B91, 0x9A85, 0x6B94, + 0x9A86, 0x6B95, 0x9A87, 0x6B97, 0x9A88, 0x6B98, 0x9A89, 0x6B99, + 0x9A8A, 0x6B9C, 0x9A8B, 0x6B9D, 0x9A8C, 0x6B9E, 0x9A8D, 0x6B9F, + 0x9A8E, 0x6BA0, 0x9A8F, 0x6BA2, 0x9A90, 0x6BA3, 0x9A91, 0x6BA4, + 0x9A92, 0x6BA5, 0x9A93, 0x6BA6, 0x9A94, 0x6BA7, 0x9A95, 0x6BA8, + 0x9A96, 0x6BA9, 0x9A97, 0x6BAB, 0x9A98, 0x6BAC, 0x9A99, 0x6BAD, + 0x9A9A, 0x6BAE, 0x9A9B, 0x6BAF, 0x9A9C, 0x6BB0, 0x9A9D, 0x6BB1, + 0x9A9E, 0x6BB2, 0x9A9F, 0x6BB6, 0x9AA0, 0x6BB8, 0x9AA1, 0x6BB9, + 0x9AA2, 0x6BBA, 0x9AA3, 0x6BBB, 0x9AA4, 0x6BBC, 0x9AA5, 0x6BBD, + 0x9AA6, 0x6BBE, 0x9AA7, 0x6BC0, 0x9AA8, 0x6BC3, 0x9AA9, 0x6BC4, + 0x9AAA, 0x6BC6, 0x9AAB, 0x6BC7, 0x9AAC, 0x6BC8, 0x9AAD, 0x6BC9, + 0x9AAE, 0x6BCA, 0x9AAF, 0x6BCC, 0x9AB0, 0x6BCE, 0x9AB1, 0x6BD0, + 0x9AB2, 0x6BD1, 0x9AB3, 0x6BD8, 0x9AB4, 0x6BDA, 0x9AB5, 0x6BDC, + 0x9AB6, 0x6BDD, 0x9AB7, 0x6BDE, 0x9AB8, 0x6BDF, 0x9AB9, 0x6BE0, + 0x9ABA, 0x6BE2, 0x9ABB, 0x6BE3, 0x9ABC, 0x6BE4, 0x9ABD, 0x6BE5, + 0x9ABE, 0x6BE6, 0x9ABF, 0x6BE7, 0x9AC0, 0x6BE8, 0x9AC1, 0x6BE9, + 0x9AC2, 0x6BEC, 0x9AC3, 0x6BED, 0x9AC4, 0x6BEE, 0x9AC5, 0x6BF0, + 0x9AC6, 0x6BF1, 0x9AC7, 0x6BF2, 0x9AC8, 0x6BF4, 0x9AC9, 0x6BF6, + 0x9ACA, 0x6BF7, 0x9ACB, 0x6BF8, 0x9ACC, 0x6BFA, 0x9ACD, 0x6BFB, + 0x9ACE, 0x6BFC, 0x9ACF, 0x6BFE, 0x9AD0, 0x6BFF, 0x9AD1, 0x6C00, + 0x9AD2, 0x6C01, 0x9AD3, 0x6C02, 0x9AD4, 0x6C03, 0x9AD5, 0x6C04, + 0x9AD6, 0x6C08, 0x9AD7, 0x6C09, 0x9AD8, 0x6C0A, 0x9AD9, 0x6C0B, + 0x9ADA, 0x6C0C, 0x9ADB, 0x6C0E, 0x9ADC, 0x6C12, 0x9ADD, 0x6C17, + 0x9ADE, 0x6C1C, 0x9ADF, 0x6C1D, 0x9AE0, 0x6C1E, 0x9AE1, 0x6C20, + 0x9AE2, 0x6C23, 0x9AE3, 0x6C25, 0x9AE4, 0x6C2B, 0x9AE5, 0x6C2C, + 0x9AE6, 0x6C2D, 0x9AE7, 0x6C31, 0x9AE8, 0x6C33, 0x9AE9, 0x6C36, + 0x9AEA, 0x6C37, 0x9AEB, 0x6C39, 0x9AEC, 0x6C3A, 0x9AED, 0x6C3B, + 0x9AEE, 0x6C3C, 0x9AEF, 0x6C3E, 0x9AF0, 0x6C3F, 0x9AF1, 0x6C43, + 0x9AF2, 0x6C44, 0x9AF3, 0x6C45, 0x9AF4, 0x6C48, 0x9AF5, 0x6C4B, + 0x9AF6, 0x6C4C, 0x9AF7, 0x6C4D, 0x9AF8, 0x6C4E, 0x9AF9, 0x6C4F, + 0x9AFA, 0x6C51, 0x9AFB, 0x6C52, 0x9AFC, 0x6C53, 0x9AFD, 0x6C56, + 0x9AFE, 0x6C58, 0x9B40, 0x6C59, 0x9B41, 0x6C5A, 0x9B42, 0x6C62, + 0x9B43, 0x6C63, 0x9B44, 0x6C65, 0x9B45, 0x6C66, 0x9B46, 0x6C67, + 0x9B47, 0x6C6B, 0x9B48, 0x6C6C, 0x9B49, 0x6C6D, 0x9B4A, 0x6C6E, + 0x9B4B, 0x6C6F, 0x9B4C, 0x6C71, 0x9B4D, 0x6C73, 0x9B4E, 0x6C75, + 0x9B4F, 0x6C77, 0x9B50, 0x6C78, 0x9B51, 0x6C7A, 0x9B52, 0x6C7B, + 0x9B53, 0x6C7C, 0x9B54, 0x6C7F, 0x9B55, 0x6C80, 0x9B56, 0x6C84, + 0x9B57, 0x6C87, 0x9B58, 0x6C8A, 0x9B59, 0x6C8B, 0x9B5A, 0x6C8D, + 0x9B5B, 0x6C8E, 0x9B5C, 0x6C91, 0x9B5D, 0x6C92, 0x9B5E, 0x6C95, + 0x9B5F, 0x6C96, 0x9B60, 0x6C97, 0x9B61, 0x6C98, 0x9B62, 0x6C9A, + 0x9B63, 0x6C9C, 0x9B64, 0x6C9D, 0x9B65, 0x6C9E, 0x9B66, 0x6CA0, + 0x9B67, 0x6CA2, 0x9B68, 0x6CA8, 0x9B69, 0x6CAC, 0x9B6A, 0x6CAF, + 0x9B6B, 0x6CB0, 0x9B6C, 0x6CB4, 0x9B6D, 0x6CB5, 0x9B6E, 0x6CB6, + 0x9B6F, 0x6CB7, 0x9B70, 0x6CBA, 0x9B71, 0x6CC0, 0x9B72, 0x6CC1, + 0x9B73, 0x6CC2, 0x9B74, 0x6CC3, 0x9B75, 0x6CC6, 0x9B76, 0x6CC7, + 0x9B77, 0x6CC8, 0x9B78, 0x6CCB, 0x9B79, 0x6CCD, 0x9B7A, 0x6CCE, + 0x9B7B, 0x6CCF, 0x9B7C, 0x6CD1, 0x9B7D, 0x6CD2, 0x9B7E, 0x6CD8, + 0x9B80, 0x6CD9, 0x9B81, 0x6CDA, 0x9B82, 0x6CDC, 0x9B83, 0x6CDD, + 0x9B84, 0x6CDF, 0x9B85, 0x6CE4, 0x9B86, 0x6CE6, 0x9B87, 0x6CE7, + 0x9B88, 0x6CE9, 0x9B89, 0x6CEC, 0x9B8A, 0x6CED, 0x9B8B, 0x6CF2, + 0x9B8C, 0x6CF4, 0x9B8D, 0x6CF9, 0x9B8E, 0x6CFF, 0x9B8F, 0x6D00, + 0x9B90, 0x6D02, 0x9B91, 0x6D03, 0x9B92, 0x6D05, 0x9B93, 0x6D06, + 0x9B94, 0x6D08, 0x9B95, 0x6D09, 0x9B96, 0x6D0A, 0x9B97, 0x6D0D, + 0x9B98, 0x6D0F, 0x9B99, 0x6D10, 0x9B9A, 0x6D11, 0x9B9B, 0x6D13, + 0x9B9C, 0x6D14, 0x9B9D, 0x6D15, 0x9B9E, 0x6D16, 0x9B9F, 0x6D18, + 0x9BA0, 0x6D1C, 0x9BA1, 0x6D1D, 0x9BA2, 0x6D1F, 0x9BA3, 0x6D20, + 0x9BA4, 0x6D21, 0x9BA5, 0x6D22, 0x9BA6, 0x6D23, 0x9BA7, 0x6D24, + 0x9BA8, 0x6D26, 0x9BA9, 0x6D28, 0x9BAA, 0x6D29, 0x9BAB, 0x6D2C, + 0x9BAC, 0x6D2D, 0x9BAD, 0x6D2F, 0x9BAE, 0x6D30, 0x9BAF, 0x6D34, + 0x9BB0, 0x6D36, 0x9BB1, 0x6D37, 0x9BB2, 0x6D38, 0x9BB3, 0x6D3A, + 0x9BB4, 0x6D3F, 0x9BB5, 0x6D40, 0x9BB6, 0x6D42, 0x9BB7, 0x6D44, + 0x9BB8, 0x6D49, 0x9BB9, 0x6D4C, 0x9BBA, 0x6D50, 0x9BBB, 0x6D55, + 0x9BBC, 0x6D56, 0x9BBD, 0x6D57, 0x9BBE, 0x6D58, 0x9BBF, 0x6D5B, + 0x9BC0, 0x6D5D, 0x9BC1, 0x6D5F, 0x9BC2, 0x6D61, 0x9BC3, 0x6D62, + 0x9BC4, 0x6D64, 0x9BC5, 0x6D65, 0x9BC6, 0x6D67, 0x9BC7, 0x6D68, + 0x9BC8, 0x6D6B, 0x9BC9, 0x6D6C, 0x9BCA, 0x6D6D, 0x9BCB, 0x6D70, + 0x9BCC, 0x6D71, 0x9BCD, 0x6D72, 0x9BCE, 0x6D73, 0x9BCF, 0x6D75, + 0x9BD0, 0x6D76, 0x9BD1, 0x6D79, 0x9BD2, 0x6D7A, 0x9BD3, 0x6D7B, + 0x9BD4, 0x6D7D, 0x9BD5, 0x6D7E, 0x9BD6, 0x6D7F, 0x9BD7, 0x6D80, + 0x9BD8, 0x6D81, 0x9BD9, 0x6D83, 0x9BDA, 0x6D84, 0x9BDB, 0x6D86, + 0x9BDC, 0x6D87, 0x9BDD, 0x6D8A, 0x9BDE, 0x6D8B, 0x9BDF, 0x6D8D, + 0x9BE0, 0x6D8F, 0x9BE1, 0x6D90, 0x9BE2, 0x6D92, 0x9BE3, 0x6D96, + 0x9BE4, 0x6D97, 0x9BE5, 0x6D98, 0x9BE6, 0x6D99, 0x9BE7, 0x6D9A, + 0x9BE8, 0x6D9C, 0x9BE9, 0x6DA2, 0x9BEA, 0x6DA5, 0x9BEB, 0x6DAC, + 0x9BEC, 0x6DAD, 0x9BED, 0x6DB0, 0x9BEE, 0x6DB1, 0x9BEF, 0x6DB3, + 0x9BF0, 0x6DB4, 0x9BF1, 0x6DB6, 0x9BF2, 0x6DB7, 0x9BF3, 0x6DB9, + 0x9BF4, 0x6DBA, 0x9BF5, 0x6DBB, 0x9BF6, 0x6DBC, 0x9BF7, 0x6DBD, + 0x9BF8, 0x6DBE, 0x9BF9, 0x6DC1, 0x9BFA, 0x6DC2, 0x9BFB, 0x6DC3, + 0x9BFC, 0x6DC8, 0x9BFD, 0x6DC9, 0x9BFE, 0x6DCA, 0x9C40, 0x6DCD, + 0x9C41, 0x6DCE, 0x9C42, 0x6DCF, 0x9C43, 0x6DD0, 0x9C44, 0x6DD2, + 0x9C45, 0x6DD3, 0x9C46, 0x6DD4, 0x9C47, 0x6DD5, 0x9C48, 0x6DD7, + 0x9C49, 0x6DDA, 0x9C4A, 0x6DDB, 0x9C4B, 0x6DDC, 0x9C4C, 0x6DDF, + 0x9C4D, 0x6DE2, 0x9C4E, 0x6DE3, 0x9C4F, 0x6DE5, 0x9C50, 0x6DE7, + 0x9C51, 0x6DE8, 0x9C52, 0x6DE9, 0x9C53, 0x6DEA, 0x9C54, 0x6DED, + 0x9C55, 0x6DEF, 0x9C56, 0x6DF0, 0x9C57, 0x6DF2, 0x9C58, 0x6DF4, + 0x9C59, 0x6DF5, 0x9C5A, 0x6DF6, 0x9C5B, 0x6DF8, 0x9C5C, 0x6DFA, + 0x9C5D, 0x6DFD, 0x9C5E, 0x6DFE, 0x9C5F, 0x6DFF, 0x9C60, 0x6E00, + 0x9C61, 0x6E01, 0x9C62, 0x6E02, 0x9C63, 0x6E03, 0x9C64, 0x6E04, + 0x9C65, 0x6E06, 0x9C66, 0x6E07, 0x9C67, 0x6E08, 0x9C68, 0x6E09, + 0x9C69, 0x6E0B, 0x9C6A, 0x6E0F, 0x9C6B, 0x6E12, 0x9C6C, 0x6E13, + 0x9C6D, 0x6E15, 0x9C6E, 0x6E18, 0x9C6F, 0x6E19, 0x9C70, 0x6E1B, + 0x9C71, 0x6E1C, 0x9C72, 0x6E1E, 0x9C73, 0x6E1F, 0x9C74, 0x6E22, + 0x9C75, 0x6E26, 0x9C76, 0x6E27, 0x9C77, 0x6E28, 0x9C78, 0x6E2A, + 0x9C79, 0x6E2C, 0x9C7A, 0x6E2E, 0x9C7B, 0x6E30, 0x9C7C, 0x6E31, + 0x9C7D, 0x6E33, 0x9C7E, 0x6E35, 0x9C80, 0x6E36, 0x9C81, 0x6E37, + 0x9C82, 0x6E39, 0x9C83, 0x6E3B, 0x9C84, 0x6E3C, 0x9C85, 0x6E3D, + 0x9C86, 0x6E3E, 0x9C87, 0x6E3F, 0x9C88, 0x6E40, 0x9C89, 0x6E41, + 0x9C8A, 0x6E42, 0x9C8B, 0x6E45, 0x9C8C, 0x6E46, 0x9C8D, 0x6E47, + 0x9C8E, 0x6E48, 0x9C8F, 0x6E49, 0x9C90, 0x6E4A, 0x9C91, 0x6E4B, + 0x9C92, 0x6E4C, 0x9C93, 0x6E4F, 0x9C94, 0x6E50, 0x9C95, 0x6E51, + 0x9C96, 0x6E52, 0x9C97, 0x6E55, 0x9C98, 0x6E57, 0x9C99, 0x6E59, + 0x9C9A, 0x6E5A, 0x9C9B, 0x6E5C, 0x9C9C, 0x6E5D, 0x9C9D, 0x6E5E, + 0x9C9E, 0x6E60, 0x9C9F, 0x6E61, 0x9CA0, 0x6E62, 0x9CA1, 0x6E63, + 0x9CA2, 0x6E64, 0x9CA3, 0x6E65, 0x9CA4, 0x6E66, 0x9CA5, 0x6E67, + 0x9CA6, 0x6E68, 0x9CA7, 0x6E69, 0x9CA8, 0x6E6A, 0x9CA9, 0x6E6C, + 0x9CAA, 0x6E6D, 0x9CAB, 0x6E6F, 0x9CAC, 0x6E70, 0x9CAD, 0x6E71, + 0x9CAE, 0x6E72, 0x9CAF, 0x6E73, 0x9CB0, 0x6E74, 0x9CB1, 0x6E75, + 0x9CB2, 0x6E76, 0x9CB3, 0x6E77, 0x9CB4, 0x6E78, 0x9CB5, 0x6E79, + 0x9CB6, 0x6E7A, 0x9CB7, 0x6E7B, 0x9CB8, 0x6E7C, 0x9CB9, 0x6E7D, + 0x9CBA, 0x6E80, 0x9CBB, 0x6E81, 0x9CBC, 0x6E82, 0x9CBD, 0x6E84, + 0x9CBE, 0x6E87, 0x9CBF, 0x6E88, 0x9CC0, 0x6E8A, 0x9CC1, 0x6E8B, + 0x9CC2, 0x6E8C, 0x9CC3, 0x6E8D, 0x9CC4, 0x6E8E, 0x9CC5, 0x6E91, + 0x9CC6, 0x6E92, 0x9CC7, 0x6E93, 0x9CC8, 0x6E94, 0x9CC9, 0x6E95, + 0x9CCA, 0x6E96, 0x9CCB, 0x6E97, 0x9CCC, 0x6E99, 0x9CCD, 0x6E9A, + 0x9CCE, 0x6E9B, 0x9CCF, 0x6E9D, 0x9CD0, 0x6E9E, 0x9CD1, 0x6EA0, + 0x9CD2, 0x6EA1, 0x9CD3, 0x6EA3, 0x9CD4, 0x6EA4, 0x9CD5, 0x6EA6, + 0x9CD6, 0x6EA8, 0x9CD7, 0x6EA9, 0x9CD8, 0x6EAB, 0x9CD9, 0x6EAC, + 0x9CDA, 0x6EAD, 0x9CDB, 0x6EAE, 0x9CDC, 0x6EB0, 0x9CDD, 0x6EB3, + 0x9CDE, 0x6EB5, 0x9CDF, 0x6EB8, 0x9CE0, 0x6EB9, 0x9CE1, 0x6EBC, + 0x9CE2, 0x6EBE, 0x9CE3, 0x6EBF, 0x9CE4, 0x6EC0, 0x9CE5, 0x6EC3, + 0x9CE6, 0x6EC4, 0x9CE7, 0x6EC5, 0x9CE8, 0x6EC6, 0x9CE9, 0x6EC8, + 0x9CEA, 0x6EC9, 0x9CEB, 0x6ECA, 0x9CEC, 0x6ECC, 0x9CED, 0x6ECD, + 0x9CEE, 0x6ECE, 0x9CEF, 0x6ED0, 0x9CF0, 0x6ED2, 0x9CF1, 0x6ED6, + 0x9CF2, 0x6ED8, 0x9CF3, 0x6ED9, 0x9CF4, 0x6EDB, 0x9CF5, 0x6EDC, + 0x9CF6, 0x6EDD, 0x9CF7, 0x6EE3, 0x9CF8, 0x6EE7, 0x9CF9, 0x6EEA, + 0x9CFA, 0x6EEB, 0x9CFB, 0x6EEC, 0x9CFC, 0x6EED, 0x9CFD, 0x6EEE, + 0x9CFE, 0x6EEF, 0x9D40, 0x6EF0, 0x9D41, 0x6EF1, 0x9D42, 0x6EF2, + 0x9D43, 0x6EF3, 0x9D44, 0x6EF5, 0x9D45, 0x6EF6, 0x9D46, 0x6EF7, + 0x9D47, 0x6EF8, 0x9D48, 0x6EFA, 0x9D49, 0x6EFB, 0x9D4A, 0x6EFC, + 0x9D4B, 0x6EFD, 0x9D4C, 0x6EFE, 0x9D4D, 0x6EFF, 0x9D4E, 0x6F00, + 0x9D4F, 0x6F01, 0x9D50, 0x6F03, 0x9D51, 0x6F04, 0x9D52, 0x6F05, + 0x9D53, 0x6F07, 0x9D54, 0x6F08, 0x9D55, 0x6F0A, 0x9D56, 0x6F0B, + 0x9D57, 0x6F0C, 0x9D58, 0x6F0D, 0x9D59, 0x6F0E, 0x9D5A, 0x6F10, + 0x9D5B, 0x6F11, 0x9D5C, 0x6F12, 0x9D5D, 0x6F16, 0x9D5E, 0x6F17, + 0x9D5F, 0x6F18, 0x9D60, 0x6F19, 0x9D61, 0x6F1A, 0x9D62, 0x6F1B, + 0x9D63, 0x6F1C, 0x9D64, 0x6F1D, 0x9D65, 0x6F1E, 0x9D66, 0x6F1F, + 0x9D67, 0x6F21, 0x9D68, 0x6F22, 0x9D69, 0x6F23, 0x9D6A, 0x6F25, + 0x9D6B, 0x6F26, 0x9D6C, 0x6F27, 0x9D6D, 0x6F28, 0x9D6E, 0x6F2C, + 0x9D6F, 0x6F2E, 0x9D70, 0x6F30, 0x9D71, 0x6F32, 0x9D72, 0x6F34, + 0x9D73, 0x6F35, 0x9D74, 0x6F37, 0x9D75, 0x6F38, 0x9D76, 0x6F39, + 0x9D77, 0x6F3A, 0x9D78, 0x6F3B, 0x9D79, 0x6F3C, 0x9D7A, 0x6F3D, + 0x9D7B, 0x6F3F, 0x9D7C, 0x6F40, 0x9D7D, 0x6F41, 0x9D7E, 0x6F42, + 0x9D80, 0x6F43, 0x9D81, 0x6F44, 0x9D82, 0x6F45, 0x9D83, 0x6F48, + 0x9D84, 0x6F49, 0x9D85, 0x6F4A, 0x9D86, 0x6F4C, 0x9D87, 0x6F4E, + 0x9D88, 0x6F4F, 0x9D89, 0x6F50, 0x9D8A, 0x6F51, 0x9D8B, 0x6F52, + 0x9D8C, 0x6F53, 0x9D8D, 0x6F54, 0x9D8E, 0x6F55, 0x9D8F, 0x6F56, + 0x9D90, 0x6F57, 0x9D91, 0x6F59, 0x9D92, 0x6F5A, 0x9D93, 0x6F5B, + 0x9D94, 0x6F5D, 0x9D95, 0x6F5F, 0x9D96, 0x6F60, 0x9D97, 0x6F61, + 0x9D98, 0x6F63, 0x9D99, 0x6F64, 0x9D9A, 0x6F65, 0x9D9B, 0x6F67, + 0x9D9C, 0x6F68, 0x9D9D, 0x6F69, 0x9D9E, 0x6F6A, 0x9D9F, 0x6F6B, + 0x9DA0, 0x6F6C, 0x9DA1, 0x6F6F, 0x9DA2, 0x6F70, 0x9DA3, 0x6F71, + 0x9DA4, 0x6F73, 0x9DA5, 0x6F75, 0x9DA6, 0x6F76, 0x9DA7, 0x6F77, + 0x9DA8, 0x6F79, 0x9DA9, 0x6F7B, 0x9DAA, 0x6F7D, 0x9DAB, 0x6F7E, + 0x9DAC, 0x6F7F, 0x9DAD, 0x6F80, 0x9DAE, 0x6F81, 0x9DAF, 0x6F82, + 0x9DB0, 0x6F83, 0x9DB1, 0x6F85, 0x9DB2, 0x6F86, 0x9DB3, 0x6F87, + 0x9DB4, 0x6F8A, 0x9DB5, 0x6F8B, 0x9DB6, 0x6F8F, 0x9DB7, 0x6F90, + 0x9DB8, 0x6F91, 0x9DB9, 0x6F92, 0x9DBA, 0x6F93, 0x9DBB, 0x6F94, + 0x9DBC, 0x6F95, 0x9DBD, 0x6F96, 0x9DBE, 0x6F97, 0x9DBF, 0x6F98, + 0x9DC0, 0x6F99, 0x9DC1, 0x6F9A, 0x9DC2, 0x6F9B, 0x9DC3, 0x6F9D, + 0x9DC4, 0x6F9E, 0x9DC5, 0x6F9F, 0x9DC6, 0x6FA0, 0x9DC7, 0x6FA2, + 0x9DC8, 0x6FA3, 0x9DC9, 0x6FA4, 0x9DCA, 0x6FA5, 0x9DCB, 0x6FA6, + 0x9DCC, 0x6FA8, 0x9DCD, 0x6FA9, 0x9DCE, 0x6FAA, 0x9DCF, 0x6FAB, + 0x9DD0, 0x6FAC, 0x9DD1, 0x6FAD, 0x9DD2, 0x6FAE, 0x9DD3, 0x6FAF, + 0x9DD4, 0x6FB0, 0x9DD5, 0x6FB1, 0x9DD6, 0x6FB2, 0x9DD7, 0x6FB4, + 0x9DD8, 0x6FB5, 0x9DD9, 0x6FB7, 0x9DDA, 0x6FB8, 0x9DDB, 0x6FBA, + 0x9DDC, 0x6FBB, 0x9DDD, 0x6FBC, 0x9DDE, 0x6FBD, 0x9DDF, 0x6FBE, + 0x9DE0, 0x6FBF, 0x9DE1, 0x6FC1, 0x9DE2, 0x6FC3, 0x9DE3, 0x6FC4, + 0x9DE4, 0x6FC5, 0x9DE5, 0x6FC6, 0x9DE6, 0x6FC7, 0x9DE7, 0x6FC8, + 0x9DE8, 0x6FCA, 0x9DE9, 0x6FCB, 0x9DEA, 0x6FCC, 0x9DEB, 0x6FCD, + 0x9DEC, 0x6FCE, 0x9DED, 0x6FCF, 0x9DEE, 0x6FD0, 0x9DEF, 0x6FD3, + 0x9DF0, 0x6FD4, 0x9DF1, 0x6FD5, 0x9DF2, 0x6FD6, 0x9DF3, 0x6FD7, + 0x9DF4, 0x6FD8, 0x9DF5, 0x6FD9, 0x9DF6, 0x6FDA, 0x9DF7, 0x6FDB, + 0x9DF8, 0x6FDC, 0x9DF9, 0x6FDD, 0x9DFA, 0x6FDF, 0x9DFB, 0x6FE2, + 0x9DFC, 0x6FE3, 0x9DFD, 0x6FE4, 0x9DFE, 0x6FE5, 0x9E40, 0x6FE6, + 0x9E41, 0x6FE7, 0x9E42, 0x6FE8, 0x9E43, 0x6FE9, 0x9E44, 0x6FEA, + 0x9E45, 0x6FEB, 0x9E46, 0x6FEC, 0x9E47, 0x6FED, 0x9E48, 0x6FF0, + 0x9E49, 0x6FF1, 0x9E4A, 0x6FF2, 0x9E4B, 0x6FF3, 0x9E4C, 0x6FF4, + 0x9E4D, 0x6FF5, 0x9E4E, 0x6FF6, 0x9E4F, 0x6FF7, 0x9E50, 0x6FF8, + 0x9E51, 0x6FF9, 0x9E52, 0x6FFA, 0x9E53, 0x6FFB, 0x9E54, 0x6FFC, + 0x9E55, 0x6FFD, 0x9E56, 0x6FFE, 0x9E57, 0x6FFF, 0x9E58, 0x7000, + 0x9E59, 0x7001, 0x9E5A, 0x7002, 0x9E5B, 0x7003, 0x9E5C, 0x7004, + 0x9E5D, 0x7005, 0x9E5E, 0x7006, 0x9E5F, 0x7007, 0x9E60, 0x7008, + 0x9E61, 0x7009, 0x9E62, 0x700A, 0x9E63, 0x700B, 0x9E64, 0x700C, + 0x9E65, 0x700D, 0x9E66, 0x700E, 0x9E67, 0x700F, 0x9E68, 0x7010, + 0x9E69, 0x7012, 0x9E6A, 0x7013, 0x9E6B, 0x7014, 0x9E6C, 0x7015, + 0x9E6D, 0x7016, 0x9E6E, 0x7017, 0x9E6F, 0x7018, 0x9E70, 0x7019, + 0x9E71, 0x701C, 0x9E72, 0x701D, 0x9E73, 0x701E, 0x9E74, 0x701F, + 0x9E75, 0x7020, 0x9E76, 0x7021, 0x9E77, 0x7022, 0x9E78, 0x7024, + 0x9E79, 0x7025, 0x9E7A, 0x7026, 0x9E7B, 0x7027, 0x9E7C, 0x7028, + 0x9E7D, 0x7029, 0x9E7E, 0x702A, 0x9E80, 0x702B, 0x9E81, 0x702C, + 0x9E82, 0x702D, 0x9E83, 0x702E, 0x9E84, 0x702F, 0x9E85, 0x7030, + 0x9E86, 0x7031, 0x9E87, 0x7032, 0x9E88, 0x7033, 0x9E89, 0x7034, + 0x9E8A, 0x7036, 0x9E8B, 0x7037, 0x9E8C, 0x7038, 0x9E8D, 0x703A, + 0x9E8E, 0x703B, 0x9E8F, 0x703C, 0x9E90, 0x703D, 0x9E91, 0x703E, + 0x9E92, 0x703F, 0x9E93, 0x7040, 0x9E94, 0x7041, 0x9E95, 0x7042, + 0x9E96, 0x7043, 0x9E97, 0x7044, 0x9E98, 0x7045, 0x9E99, 0x7046, + 0x9E9A, 0x7047, 0x9E9B, 0x7048, 0x9E9C, 0x7049, 0x9E9D, 0x704A, + 0x9E9E, 0x704B, 0x9E9F, 0x704D, 0x9EA0, 0x704E, 0x9EA1, 0x7050, + 0x9EA2, 0x7051, 0x9EA3, 0x7052, 0x9EA4, 0x7053, 0x9EA5, 0x7054, + 0x9EA6, 0x7055, 0x9EA7, 0x7056, 0x9EA8, 0x7057, 0x9EA9, 0x7058, + 0x9EAA, 0x7059, 0x9EAB, 0x705A, 0x9EAC, 0x705B, 0x9EAD, 0x705C, + 0x9EAE, 0x705D, 0x9EAF, 0x705F, 0x9EB0, 0x7060, 0x9EB1, 0x7061, + 0x9EB2, 0x7062, 0x9EB3, 0x7063, 0x9EB4, 0x7064, 0x9EB5, 0x7065, + 0x9EB6, 0x7066, 0x9EB7, 0x7067, 0x9EB8, 0x7068, 0x9EB9, 0x7069, + 0x9EBA, 0x706A, 0x9EBB, 0x706E, 0x9EBC, 0x7071, 0x9EBD, 0x7072, + 0x9EBE, 0x7073, 0x9EBF, 0x7074, 0x9EC0, 0x7077, 0x9EC1, 0x7079, + 0x9EC2, 0x707A, 0x9EC3, 0x707B, 0x9EC4, 0x707D, 0x9EC5, 0x7081, + 0x9EC6, 0x7082, 0x9EC7, 0x7083, 0x9EC8, 0x7084, 0x9EC9, 0x7086, + 0x9ECA, 0x7087, 0x9ECB, 0x7088, 0x9ECC, 0x708B, 0x9ECD, 0x708C, + 0x9ECE, 0x708D, 0x9ECF, 0x708F, 0x9ED0, 0x7090, 0x9ED1, 0x7091, + 0x9ED2, 0x7093, 0x9ED3, 0x7097, 0x9ED4, 0x7098, 0x9ED5, 0x709A, + 0x9ED6, 0x709B, 0x9ED7, 0x709E, 0x9ED8, 0x709F, 0x9ED9, 0x70A0, + 0x9EDA, 0x70A1, 0x9EDB, 0x70A2, 0x9EDC, 0x70A3, 0x9EDD, 0x70A4, + 0x9EDE, 0x70A5, 0x9EDF, 0x70A6, 0x9EE0, 0x70A7, 0x9EE1, 0x70A8, + 0x9EE2, 0x70A9, 0x9EE3, 0x70AA, 0x9EE4, 0x70B0, 0x9EE5, 0x70B2, + 0x9EE6, 0x70B4, 0x9EE7, 0x70B5, 0x9EE8, 0x70B6, 0x9EE9, 0x70BA, + 0x9EEA, 0x70BE, 0x9EEB, 0x70BF, 0x9EEC, 0x70C4, 0x9EED, 0x70C5, + 0x9EEE, 0x70C6, 0x9EEF, 0x70C7, 0x9EF0, 0x70C9, 0x9EF1, 0x70CB, + 0x9EF2, 0x70CC, 0x9EF3, 0x70CD, 0x9EF4, 0x70CE, 0x9EF5, 0x70CF, + 0x9EF6, 0x70D0, 0x9EF7, 0x70D1, 0x9EF8, 0x70D2, 0x9EF9, 0x70D3, + 0x9EFA, 0x70D4, 0x9EFB, 0x70D5, 0x9EFC, 0x70D6, 0x9EFD, 0x70D7, + 0x9EFE, 0x70DA, 0x9F40, 0x70DC, 0x9F41, 0x70DD, 0x9F42, 0x70DE, + 0x9F43, 0x70E0, 0x9F44, 0x70E1, 0x9F45, 0x70E2, 0x9F46, 0x70E3, + 0x9F47, 0x70E5, 0x9F48, 0x70EA, 0x9F49, 0x70EE, 0x9F4A, 0x70F0, + 0x9F4B, 0x70F1, 0x9F4C, 0x70F2, 0x9F4D, 0x70F3, 0x9F4E, 0x70F4, + 0x9F4F, 0x70F5, 0x9F50, 0x70F6, 0x9F51, 0x70F8, 0x9F52, 0x70FA, + 0x9F53, 0x70FB, 0x9F54, 0x70FC, 0x9F55, 0x70FE, 0x9F56, 0x70FF, + 0x9F57, 0x7100, 0x9F58, 0x7101, 0x9F59, 0x7102, 0x9F5A, 0x7103, + 0x9F5B, 0x7104, 0x9F5C, 0x7105, 0x9F5D, 0x7106, 0x9F5E, 0x7107, + 0x9F5F, 0x7108, 0x9F60, 0x710B, 0x9F61, 0x710C, 0x9F62, 0x710D, + 0x9F63, 0x710E, 0x9F64, 0x710F, 0x9F65, 0x7111, 0x9F66, 0x7112, + 0x9F67, 0x7114, 0x9F68, 0x7117, 0x9F69, 0x711B, 0x9F6A, 0x711C, + 0x9F6B, 0x711D, 0x9F6C, 0x711E, 0x9F6D, 0x711F, 0x9F6E, 0x7120, + 0x9F6F, 0x7121, 0x9F70, 0x7122, 0x9F71, 0x7123, 0x9F72, 0x7124, + 0x9F73, 0x7125, 0x9F74, 0x7127, 0x9F75, 0x7128, 0x9F76, 0x7129, + 0x9F77, 0x712A, 0x9F78, 0x712B, 0x9F79, 0x712C, 0x9F7A, 0x712D, + 0x9F7B, 0x712E, 0x9F7C, 0x7132, 0x9F7D, 0x7133, 0x9F7E, 0x7134, + 0x9F80, 0x7135, 0x9F81, 0x7137, 0x9F82, 0x7138, 0x9F83, 0x7139, + 0x9F84, 0x713A, 0x9F85, 0x713B, 0x9F86, 0x713C, 0x9F87, 0x713D, + 0x9F88, 0x713E, 0x9F89, 0x713F, 0x9F8A, 0x7140, 0x9F8B, 0x7141, + 0x9F8C, 0x7142, 0x9F8D, 0x7143, 0x9F8E, 0x7144, 0x9F8F, 0x7146, + 0x9F90, 0x7147, 0x9F91, 0x7148, 0x9F92, 0x7149, 0x9F93, 0x714B, + 0x9F94, 0x714D, 0x9F95, 0x714F, 0x9F96, 0x7150, 0x9F97, 0x7151, + 0x9F98, 0x7152, 0x9F99, 0x7153, 0x9F9A, 0x7154, 0x9F9B, 0x7155, + 0x9F9C, 0x7156, 0x9F9D, 0x7157, 0x9F9E, 0x7158, 0x9F9F, 0x7159, + 0x9FA0, 0x715A, 0x9FA1, 0x715B, 0x9FA2, 0x715D, 0x9FA3, 0x715F, + 0x9FA4, 0x7160, 0x9FA5, 0x7161, 0x9FA6, 0x7162, 0x9FA7, 0x7163, + 0x9FA8, 0x7165, 0x9FA9, 0x7169, 0x9FAA, 0x716A, 0x9FAB, 0x716B, + 0x9FAC, 0x716C, 0x9FAD, 0x716D, 0x9FAE, 0x716F, 0x9FAF, 0x7170, + 0x9FB0, 0x7171, 0x9FB1, 0x7174, 0x9FB2, 0x7175, 0x9FB3, 0x7176, + 0x9FB4, 0x7177, 0x9FB5, 0x7179, 0x9FB6, 0x717B, 0x9FB7, 0x717C, + 0x9FB8, 0x717E, 0x9FB9, 0x717F, 0x9FBA, 0x7180, 0x9FBB, 0x7181, + 0x9FBC, 0x7182, 0x9FBD, 0x7183, 0x9FBE, 0x7185, 0x9FBF, 0x7186, + 0x9FC0, 0x7187, 0x9FC1, 0x7188, 0x9FC2, 0x7189, 0x9FC3, 0x718B, + 0x9FC4, 0x718C, 0x9FC5, 0x718D, 0x9FC6, 0x718E, 0x9FC7, 0x7190, + 0x9FC8, 0x7191, 0x9FC9, 0x7192, 0x9FCA, 0x7193, 0x9FCB, 0x7195, + 0x9FCC, 0x7196, 0x9FCD, 0x7197, 0x9FCE, 0x719A, 0x9FCF, 0x719B, + 0x9FD0, 0x719C, 0x9FD1, 0x719D, 0x9FD2, 0x719E, 0x9FD3, 0x71A1, + 0x9FD4, 0x71A2, 0x9FD5, 0x71A3, 0x9FD6, 0x71A4, 0x9FD7, 0x71A5, + 0x9FD8, 0x71A6, 0x9FD9, 0x71A7, 0x9FDA, 0x71A9, 0x9FDB, 0x71AA, + 0x9FDC, 0x71AB, 0x9FDD, 0x71AD, 0x9FDE, 0x71AE, 0x9FDF, 0x71AF, + 0x9FE0, 0x71B0, 0x9FE1, 0x71B1, 0x9FE2, 0x71B2, 0x9FE3, 0x71B4, + 0x9FE4, 0x71B6, 0x9FE5, 0x71B7, 0x9FE6, 0x71B8, 0x9FE7, 0x71BA, + 0x9FE8, 0x71BB, 0x9FE9, 0x71BC, 0x9FEA, 0x71BD, 0x9FEB, 0x71BE, + 0x9FEC, 0x71BF, 0x9FED, 0x71C0, 0x9FEE, 0x71C1, 0x9FEF, 0x71C2, + 0x9FF0, 0x71C4, 0x9FF1, 0x71C5, 0x9FF2, 0x71C6, 0x9FF3, 0x71C7, + 0x9FF4, 0x71C8, 0x9FF5, 0x71C9, 0x9FF6, 0x71CA, 0x9FF7, 0x71CB, + 0x9FF8, 0x71CC, 0x9FF9, 0x71CD, 0x9FFA, 0x71CF, 0x9FFB, 0x71D0, + 0x9FFC, 0x71D1, 0x9FFD, 0x71D2, 0x9FFE, 0x71D3, 0xA040, 0x71D6, + 0xA041, 0x71D7, 0xA042, 0x71D8, 0xA043, 0x71D9, 0xA044, 0x71DA, + 0xA045, 0x71DB, 0xA046, 0x71DC, 0xA047, 0x71DD, 0xA048, 0x71DE, + 0xA049, 0x71DF, 0xA04A, 0x71E1, 0xA04B, 0x71E2, 0xA04C, 0x71E3, + 0xA04D, 0x71E4, 0xA04E, 0x71E6, 0xA04F, 0x71E8, 0xA050, 0x71E9, + 0xA051, 0x71EA, 0xA052, 0x71EB, 0xA053, 0x71EC, 0xA054, 0x71ED, + 0xA055, 0x71EF, 0xA056, 0x71F0, 0xA057, 0x71F1, 0xA058, 0x71F2, + 0xA059, 0x71F3, 0xA05A, 0x71F4, 0xA05B, 0x71F5, 0xA05C, 0x71F6, + 0xA05D, 0x71F7, 0xA05E, 0x71F8, 0xA05F, 0x71FA, 0xA060, 0x71FB, + 0xA061, 0x71FC, 0xA062, 0x71FD, 0xA063, 0x71FE, 0xA064, 0x71FF, + 0xA065, 0x7200, 0xA066, 0x7201, 0xA067, 0x7202, 0xA068, 0x7203, + 0xA069, 0x7204, 0xA06A, 0x7205, 0xA06B, 0x7207, 0xA06C, 0x7208, + 0xA06D, 0x7209, 0xA06E, 0x720A, 0xA06F, 0x720B, 0xA070, 0x720C, + 0xA071, 0x720D, 0xA072, 0x720E, 0xA073, 0x720F, 0xA074, 0x7210, + 0xA075, 0x7211, 0xA076, 0x7212, 0xA077, 0x7213, 0xA078, 0x7214, + 0xA079, 0x7215, 0xA07A, 0x7216, 0xA07B, 0x7217, 0xA07C, 0x7218, + 0xA07D, 0x7219, 0xA07E, 0x721A, 0xA080, 0x721B, 0xA081, 0x721C, + 0xA082, 0x721E, 0xA083, 0x721F, 0xA084, 0x7220, 0xA085, 0x7221, + 0xA086, 0x7222, 0xA087, 0x7223, 0xA088, 0x7224, 0xA089, 0x7225, + 0xA08A, 0x7226, 0xA08B, 0x7227, 0xA08C, 0x7229, 0xA08D, 0x722B, + 0xA08E, 0x722D, 0xA08F, 0x722E, 0xA090, 0x722F, 0xA091, 0x7232, + 0xA092, 0x7233, 0xA093, 0x7234, 0xA094, 0x723A, 0xA095, 0x723C, + 0xA096, 0x723E, 0xA097, 0x7240, 0xA098, 0x7241, 0xA099, 0x7242, + 0xA09A, 0x7243, 0xA09B, 0x7244, 0xA09C, 0x7245, 0xA09D, 0x7246, + 0xA09E, 0x7249, 0xA09F, 0x724A, 0xA0A0, 0x724B, 0xA0A1, 0x724E, + 0xA0A2, 0x724F, 0xA0A3, 0x7250, 0xA0A4, 0x7251, 0xA0A5, 0x7253, + 0xA0A6, 0x7254, 0xA0A7, 0x7255, 0xA0A8, 0x7257, 0xA0A9, 0x7258, + 0xA0AA, 0x725A, 0xA0AB, 0x725C, 0xA0AC, 0x725E, 0xA0AD, 0x7260, + 0xA0AE, 0x7263, 0xA0AF, 0x7264, 0xA0B0, 0x7265, 0xA0B1, 0x7268, + 0xA0B2, 0x726A, 0xA0B3, 0x726B, 0xA0B4, 0x726C, 0xA0B5, 0x726D, + 0xA0B6, 0x7270, 0xA0B7, 0x7271, 0xA0B8, 0x7273, 0xA0B9, 0x7274, + 0xA0BA, 0x7276, 0xA0BB, 0x7277, 0xA0BC, 0x7278, 0xA0BD, 0x727B, + 0xA0BE, 0x727C, 0xA0BF, 0x727D, 0xA0C0, 0x7282, 0xA0C1, 0x7283, + 0xA0C2, 0x7285, 0xA0C3, 0x7286, 0xA0C4, 0x7287, 0xA0C5, 0x7288, + 0xA0C6, 0x7289, 0xA0C7, 0x728C, 0xA0C8, 0x728E, 0xA0C9, 0x7290, + 0xA0CA, 0x7291, 0xA0CB, 0x7293, 0xA0CC, 0x7294, 0xA0CD, 0x7295, + 0xA0CE, 0x7296, 0xA0CF, 0x7297, 0xA0D0, 0x7298, 0xA0D1, 0x7299, + 0xA0D2, 0x729A, 0xA0D3, 0x729B, 0xA0D4, 0x729C, 0xA0D5, 0x729D, + 0xA0D6, 0x729E, 0xA0D7, 0x72A0, 0xA0D8, 0x72A1, 0xA0D9, 0x72A2, + 0xA0DA, 0x72A3, 0xA0DB, 0x72A4, 0xA0DC, 0x72A5, 0xA0DD, 0x72A6, + 0xA0DE, 0x72A7, 0xA0DF, 0x72A8, 0xA0E0, 0x72A9, 0xA0E1, 0x72AA, + 0xA0E2, 0x72AB, 0xA0E3, 0x72AE, 0xA0E4, 0x72B1, 0xA0E5, 0x72B2, + 0xA0E6, 0x72B3, 0xA0E7, 0x72B5, 0xA0E8, 0x72BA, 0xA0E9, 0x72BB, + 0xA0EA, 0x72BC, 0xA0EB, 0x72BD, 0xA0EC, 0x72BE, 0xA0ED, 0x72BF, + 0xA0EE, 0x72C0, 0xA0EF, 0x72C5, 0xA0F0, 0x72C6, 0xA0F1, 0x72C7, + 0xA0F2, 0x72C9, 0xA0F3, 0x72CA, 0xA0F4, 0x72CB, 0xA0F5, 0x72CC, + 0xA0F6, 0x72CF, 0xA0F7, 0x72D1, 0xA0F8, 0x72D3, 0xA0F9, 0x72D4, + 0xA0FA, 0x72D5, 0xA0FB, 0x72D6, 0xA0FC, 0x72D8, 0xA0FD, 0x72DA, + 0xA0FE, 0x72DB, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, + 0xA1A4, 0x00B7, 0xA1A5, 0x02C9, 0xA1A6, 0x02C7, 0xA1A7, 0x00A8, + 0xA1A8, 0x3003, 0xA1A9, 0x3005, 0xA1AA, 0x2014, 0xA1AB, 0xFF5E, + 0xA1AC, 0x2016, 0xA1AD, 0x2026, 0xA1AE, 0x2018, 0xA1AF, 0x2019, + 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, + 0xA1B4, 0x3008, 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, + 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, + 0xA1BC, 0x3016, 0xA1BD, 0x3017, 0xA1BE, 0x3010, 0xA1BF, 0x3011, + 0xA1C0, 0x00B1, 0xA1C1, 0x00D7, 0xA1C2, 0x00F7, 0xA1C3, 0x2236, + 0xA1C4, 0x2227, 0xA1C5, 0x2228, 0xA1C6, 0x2211, 0xA1C7, 0x220F, + 0xA1C8, 0x222A, 0xA1C9, 0x2229, 0xA1CA, 0x2208, 0xA1CB, 0x2237, + 0xA1CC, 0x221A, 0xA1CD, 0x22A5, 0xA1CE, 0x2225, 0xA1CF, 0x2220, + 0xA1D0, 0x2312, 0xA1D1, 0x2299, 0xA1D2, 0x222B, 0xA1D3, 0x222E, + 0xA1D4, 0x2261, 0xA1D5, 0x224C, 0xA1D6, 0x2248, 0xA1D7, 0x223D, + 0xA1D8, 0x221D, 0xA1D9, 0x2260, 0xA1DA, 0x226E, 0xA1DB, 0x226F, + 0xA1DC, 0x2264, 0xA1DD, 0x2265, 0xA1DE, 0x221E, 0xA1DF, 0x2235, + 0xA1E0, 0x2234, 0xA1E1, 0x2642, 0xA1E2, 0x2640, 0xA1E3, 0x00B0, + 0xA1E4, 0x2032, 0xA1E5, 0x2033, 0xA1E6, 0x2103, 0xA1E7, 0xFF04, + 0xA1E8, 0x00A4, 0xA1E9, 0xFFE0, 0xA1EA, 0xFFE1, 0xA1EB, 0x2030, + 0xA1EC, 0x00A7, 0xA1ED, 0x2116, 0xA1EE, 0x2606, 0xA1EF, 0x2605, + 0xA1F0, 0x25CB, 0xA1F1, 0x25CF, 0xA1F2, 0x25CE, 0xA1F3, 0x25C7, + 0xA1F4, 0x25C6, 0xA1F5, 0x25A1, 0xA1F6, 0x25A0, 0xA1F7, 0x25B3, + 0xA1F8, 0x25B2, 0xA1F9, 0x203B, 0xA1FA, 0x2192, 0xA1FB, 0x2190, + 0xA1FC, 0x2191, 0xA1FD, 0x2193, 0xA1FE, 0x3013, 0xA2A1, 0x2170, + 0xA2A2, 0x2171, 0xA2A3, 0x2172, 0xA2A4, 0x2173, 0xA2A5, 0x2174, + 0xA2A6, 0x2175, 0xA2A7, 0x2176, 0xA2A8, 0x2177, 0xA2A9, 0x2178, + 0xA2AA, 0x2179, 0xA2B1, 0x2488, 0xA2B2, 0x2489, 0xA2B3, 0x248A, + 0xA2B4, 0x248B, 0xA2B5, 0x248C, 0xA2B6, 0x248D, 0xA2B7, 0x248E, + 0xA2B8, 0x248F, 0xA2B9, 0x2490, 0xA2BA, 0x2491, 0xA2BB, 0x2492, + 0xA2BC, 0x2493, 0xA2BD, 0x2494, 0xA2BE, 0x2495, 0xA2BF, 0x2496, + 0xA2C0, 0x2497, 0xA2C1, 0x2498, 0xA2C2, 0x2499, 0xA2C3, 0x249A, + 0xA2C4, 0x249B, 0xA2C5, 0x2474, 0xA2C6, 0x2475, 0xA2C7, 0x2476, + 0xA2C8, 0x2477, 0xA2C9, 0x2478, 0xA2CA, 0x2479, 0xA2CB, 0x247A, + 0xA2CC, 0x247B, 0xA2CD, 0x247C, 0xA2CE, 0x247D, 0xA2CF, 0x247E, + 0xA2D0, 0x247F, 0xA2D1, 0x2480, 0xA2D2, 0x2481, 0xA2D3, 0x2482, + 0xA2D4, 0x2483, 0xA2D5, 0x2484, 0xA2D6, 0x2485, 0xA2D7, 0x2486, + 0xA2D8, 0x2487, 0xA2D9, 0x2460, 0xA2DA, 0x2461, 0xA2DB, 0x2462, + 0xA2DC, 0x2463, 0xA2DD, 0x2464, 0xA2DE, 0x2465, 0xA2DF, 0x2466, + 0xA2E0, 0x2467, 0xA2E1, 0x2468, 0xA2E2, 0x2469, 0xA2E5, 0x3220, + 0xA2E6, 0x3221, 0xA2E7, 0x3222, 0xA2E8, 0x3223, 0xA2E9, 0x3224, + 0xA2EA, 0x3225, 0xA2EB, 0x3226, 0xA2EC, 0x3227, 0xA2ED, 0x3228, + 0xA2EE, 0x3229, 0xA2F1, 0x2160, 0xA2F2, 0x2161, 0xA2F3, 0x2162, + 0xA2F4, 0x2163, 0xA2F5, 0x2164, 0xA2F6, 0x2165, 0xA2F7, 0x2166, + 0xA2F8, 0x2167, 0xA2F9, 0x2168, 0xA2FA, 0x2169, 0xA2FB, 0x216A, + 0xA2FC, 0x216B, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, + 0xA3A4, 0xFFE5, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, + 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, + 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, + 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, + 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, + 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, + 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, + 0xA3DC, 0xFF3C, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, + 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, + 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, + 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, + 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA4A1, 0x3041, + 0xA4A2, 0x3042, 0xA4A3, 0x3043, 0xA4A4, 0x3044, 0xA4A5, 0x3045, + 0xA4A6, 0x3046, 0xA4A7, 0x3047, 0xA4A8, 0x3048, 0xA4A9, 0x3049, + 0xA4AA, 0x304A, 0xA4AB, 0x304B, 0xA4AC, 0x304C, 0xA4AD, 0x304D, + 0xA4AE, 0x304E, 0xA4AF, 0x304F, 0xA4B0, 0x3050, 0xA4B1, 0x3051, + 0xA4B2, 0x3052, 0xA4B3, 0x3053, 0xA4B4, 0x3054, 0xA4B5, 0x3055, + 0xA4B6, 0x3056, 0xA4B7, 0x3057, 0xA4B8, 0x3058, 0xA4B9, 0x3059, + 0xA4BA, 0x305A, 0xA4BB, 0x305B, 0xA4BC, 0x305C, 0xA4BD, 0x305D, + 0xA4BE, 0x305E, 0xA4BF, 0x305F, 0xA4C0, 0x3060, 0xA4C1, 0x3061, + 0xA4C2, 0x3062, 0xA4C3, 0x3063, 0xA4C4, 0x3064, 0xA4C5, 0x3065, + 0xA4C6, 0x3066, 0xA4C7, 0x3067, 0xA4C8, 0x3068, 0xA4C9, 0x3069, + 0xA4CA, 0x306A, 0xA4CB, 0x306B, 0xA4CC, 0x306C, 0xA4CD, 0x306D, + 0xA4CE, 0x306E, 0xA4CF, 0x306F, 0xA4D0, 0x3070, 0xA4D1, 0x3071, + 0xA4D2, 0x3072, 0xA4D3, 0x3073, 0xA4D4, 0x3074, 0xA4D5, 0x3075, + 0xA4D6, 0x3076, 0xA4D7, 0x3077, 0xA4D8, 0x3078, 0xA4D9, 0x3079, + 0xA4DA, 0x307A, 0xA4DB, 0x307B, 0xA4DC, 0x307C, 0xA4DD, 0x307D, + 0xA4DE, 0x307E, 0xA4DF, 0x307F, 0xA4E0, 0x3080, 0xA4E1, 0x3081, + 0xA4E2, 0x3082, 0xA4E3, 0x3083, 0xA4E4, 0x3084, 0xA4E5, 0x3085, + 0xA4E6, 0x3086, 0xA4E7, 0x3087, 0xA4E8, 0x3088, 0xA4E9, 0x3089, + 0xA4EA, 0x308A, 0xA4EB, 0x308B, 0xA4EC, 0x308C, 0xA4ED, 0x308D, + 0xA4EE, 0x308E, 0xA4EF, 0x308F, 0xA4F0, 0x3090, 0xA4F1, 0x3091, + 0xA4F2, 0x3092, 0xA4F3, 0x3093, 0xA5A1, 0x30A1, 0xA5A2, 0x30A2, + 0xA5A3, 0x30A3, 0xA5A4, 0x30A4, 0xA5A5, 0x30A5, 0xA5A6, 0x30A6, + 0xA5A7, 0x30A7, 0xA5A8, 0x30A8, 0xA5A9, 0x30A9, 0xA5AA, 0x30AA, + 0xA5AB, 0x30AB, 0xA5AC, 0x30AC, 0xA5AD, 0x30AD, 0xA5AE, 0x30AE, + 0xA5AF, 0x30AF, 0xA5B0, 0x30B0, 0xA5B1, 0x30B1, 0xA5B2, 0x30B2, + 0xA5B3, 0x30B3, 0xA5B4, 0x30B4, 0xA5B5, 0x30B5, 0xA5B6, 0x30B6, + 0xA5B7, 0x30B7, 0xA5B8, 0x30B8, 0xA5B9, 0x30B9, 0xA5BA, 0x30BA, + 0xA5BB, 0x30BB, 0xA5BC, 0x30BC, 0xA5BD, 0x30BD, 0xA5BE, 0x30BE, + 0xA5BF, 0x30BF, 0xA5C0, 0x30C0, 0xA5C1, 0x30C1, 0xA5C2, 0x30C2, + 0xA5C3, 0x30C3, 0xA5C4, 0x30C4, 0xA5C5, 0x30C5, 0xA5C6, 0x30C6, + 0xA5C7, 0x30C7, 0xA5C8, 0x30C8, 0xA5C9, 0x30C9, 0xA5CA, 0x30CA, + 0xA5CB, 0x30CB, 0xA5CC, 0x30CC, 0xA5CD, 0x30CD, 0xA5CE, 0x30CE, + 0xA5CF, 0x30CF, 0xA5D0, 0x30D0, 0xA5D1, 0x30D1, 0xA5D2, 0x30D2, + 0xA5D3, 0x30D3, 0xA5D4, 0x30D4, 0xA5D5, 0x30D5, 0xA5D6, 0x30D6, + 0xA5D7, 0x30D7, 0xA5D8, 0x30D8, 0xA5D9, 0x30D9, 0xA5DA, 0x30DA, + 0xA5DB, 0x30DB, 0xA5DC, 0x30DC, 0xA5DD, 0x30DD, 0xA5DE, 0x30DE, + 0xA5DF, 0x30DF, 0xA5E0, 0x30E0, 0xA5E1, 0x30E1, 0xA5E2, 0x30E2, + 0xA5E3, 0x30E3, 0xA5E4, 0x30E4, 0xA5E5, 0x30E5, 0xA5E6, 0x30E6, + 0xA5E7, 0x30E7, 0xA5E8, 0x30E8, 0xA5E9, 0x30E9, 0xA5EA, 0x30EA, + 0xA5EB, 0x30EB, 0xA5EC, 0x30EC, 0xA5ED, 0x30ED, 0xA5EE, 0x30EE, + 0xA5EF, 0x30EF, 0xA5F0, 0x30F0, 0xA5F1, 0x30F1, 0xA5F2, 0x30F2, + 0xA5F3, 0x30F3, 0xA5F4, 0x30F4, 0xA5F5, 0x30F5, 0xA5F6, 0x30F6, + 0xA6A1, 0x0391, 0xA6A2, 0x0392, 0xA6A3, 0x0393, 0xA6A4, 0x0394, + 0xA6A5, 0x0395, 0xA6A6, 0x0396, 0xA6A7, 0x0397, 0xA6A8, 0x0398, + 0xA6A9, 0x0399, 0xA6AA, 0x039A, 0xA6AB, 0x039B, 0xA6AC, 0x039C, + 0xA6AD, 0x039D, 0xA6AE, 0x039E, 0xA6AF, 0x039F, 0xA6B0, 0x03A0, + 0xA6B1, 0x03A1, 0xA6B2, 0x03A3, 0xA6B3, 0x03A4, 0xA6B4, 0x03A5, + 0xA6B5, 0x03A6, 0xA6B6, 0x03A7, 0xA6B7, 0x03A8, 0xA6B8, 0x03A9, + 0xA6C1, 0x03B1, 0xA6C2, 0x03B2, 0xA6C3, 0x03B3, 0xA6C4, 0x03B4, + 0xA6C5, 0x03B5, 0xA6C6, 0x03B6, 0xA6C7, 0x03B7, 0xA6C8, 0x03B8, + 0xA6C9, 0x03B9, 0xA6CA, 0x03BA, 0xA6CB, 0x03BB, 0xA6CC, 0x03BC, + 0xA6CD, 0x03BD, 0xA6CE, 0x03BE, 0xA6CF, 0x03BF, 0xA6D0, 0x03C0, + 0xA6D1, 0x03C1, 0xA6D2, 0x03C3, 0xA6D3, 0x03C4, 0xA6D4, 0x03C5, + 0xA6D5, 0x03C6, 0xA6D6, 0x03C7, 0xA6D7, 0x03C8, 0xA6D8, 0x03C9, + 0xA6E0, 0xFE35, 0xA6E1, 0xFE36, 0xA6E2, 0xFE39, 0xA6E3, 0xFE3A, + 0xA6E4, 0xFE3F, 0xA6E5, 0xFE40, 0xA6E6, 0xFE3D, 0xA6E7, 0xFE3E, + 0xA6E8, 0xFE41, 0xA6E9, 0xFE42, 0xA6EA, 0xFE43, 0xA6EB, 0xFE44, + 0xA6EE, 0xFE3B, 0xA6EF, 0xFE3C, 0xA6F0, 0xFE37, 0xA6F1, 0xFE38, + 0xA6F2, 0xFE31, 0xA6F4, 0xFE33, 0xA6F5, 0xFE34, 0xA7A1, 0x0410, + 0xA7A2, 0x0411, 0xA7A3, 0x0412, 0xA7A4, 0x0413, 0xA7A5, 0x0414, + 0xA7A6, 0x0415, 0xA7A7, 0x0401, 0xA7A8, 0x0416, 0xA7A9, 0x0417, + 0xA7AA, 0x0418, 0xA7AB, 0x0419, 0xA7AC, 0x041A, 0xA7AD, 0x041B, + 0xA7AE, 0x041C, 0xA7AF, 0x041D, 0xA7B0, 0x041E, 0xA7B1, 0x041F, + 0xA7B2, 0x0420, 0xA7B3, 0x0421, 0xA7B4, 0x0422, 0xA7B5, 0x0423, + 0xA7B6, 0x0424, 0xA7B7, 0x0425, 0xA7B8, 0x0426, 0xA7B9, 0x0427, + 0xA7BA, 0x0428, 0xA7BB, 0x0429, 0xA7BC, 0x042A, 0xA7BD, 0x042B, + 0xA7BE, 0x042C, 0xA7BF, 0x042D, 0xA7C0, 0x042E, 0xA7C1, 0x042F, + 0xA7D1, 0x0430, 0xA7D2, 0x0431, 0xA7D3, 0x0432, 0xA7D4, 0x0433, + 0xA7D5, 0x0434, 0xA7D6, 0x0435, 0xA7D7, 0x0451, 0xA7D8, 0x0436, + 0xA7D9, 0x0437, 0xA7DA, 0x0438, 0xA7DB, 0x0439, 0xA7DC, 0x043A, + 0xA7DD, 0x043B, 0xA7DE, 0x043C, 0xA7DF, 0x043D, 0xA7E0, 0x043E, + 0xA7E1, 0x043F, 0xA7E2, 0x0440, 0xA7E3, 0x0441, 0xA7E4, 0x0442, + 0xA7E5, 0x0443, 0xA7E6, 0x0444, 0xA7E7, 0x0445, 0xA7E8, 0x0446, + 0xA7E9, 0x0447, 0xA7EA, 0x0448, 0xA7EB, 0x0449, 0xA7EC, 0x044A, + 0xA7ED, 0x044B, 0xA7EE, 0x044C, 0xA7EF, 0x044D, 0xA7F0, 0x044E, + 0xA7F1, 0x044F, 0xA840, 0x02CA, 0xA841, 0x02CB, 0xA842, 0x02D9, + 0xA843, 0x2013, 0xA844, 0x2015, 0xA845, 0x2025, 0xA846, 0x2035, + 0xA847, 0x2105, 0xA848, 0x2109, 0xA849, 0x2196, 0xA84A, 0x2197, + 0xA84B, 0x2198, 0xA84C, 0x2199, 0xA84D, 0x2215, 0xA84E, 0x221F, + 0xA84F, 0x2223, 0xA850, 0x2252, 0xA851, 0x2266, 0xA852, 0x2267, + 0xA853, 0x22BF, 0xA854, 0x2550, 0xA855, 0x2551, 0xA856, 0x2552, + 0xA857, 0x2553, 0xA858, 0x2554, 0xA859, 0x2555, 0xA85A, 0x2556, + 0xA85B, 0x2557, 0xA85C, 0x2558, 0xA85D, 0x2559, 0xA85E, 0x255A, + 0xA85F, 0x255B, 0xA860, 0x255C, 0xA861, 0x255D, 0xA862, 0x255E, + 0xA863, 0x255F, 0xA864, 0x2560, 0xA865, 0x2561, 0xA866, 0x2562, + 0xA867, 0x2563, 0xA868, 0x2564, 0xA869, 0x2565, 0xA86A, 0x2566, + 0xA86B, 0x2567, 0xA86C, 0x2568, 0xA86D, 0x2569, 0xA86E, 0x256A, + 0xA86F, 0x256B, 0xA870, 0x256C, 0xA871, 0x256D, 0xA872, 0x256E, + 0xA873, 0x256F, 0xA874, 0x2570, 0xA875, 0x2571, 0xA876, 0x2572, + 0xA877, 0x2573, 0xA878, 0x2581, 0xA879, 0x2582, 0xA87A, 0x2583, + 0xA87B, 0x2584, 0xA87C, 0x2585, 0xA87D, 0x2586, 0xA87E, 0x2587, + 0xA880, 0x2588, 0xA881, 0x2589, 0xA882, 0x258A, 0xA883, 0x258B, + 0xA884, 0x258C, 0xA885, 0x258D, 0xA886, 0x258E, 0xA887, 0x258F, + 0xA888, 0x2593, 0xA889, 0x2594, 0xA88A, 0x2595, 0xA88B, 0x25BC, + 0xA88C, 0x25BD, 0xA88D, 0x25E2, 0xA88E, 0x25E3, 0xA88F, 0x25E4, + 0xA890, 0x25E5, 0xA891, 0x2609, 0xA892, 0x2295, 0xA893, 0x3012, + 0xA894, 0x301D, 0xA895, 0x301E, 0xA8A1, 0x0101, 0xA8A2, 0x00E1, + 0xA8A3, 0x01CE, 0xA8A4, 0x00E0, 0xA8A5, 0x0113, 0xA8A6, 0x00E9, + 0xA8A7, 0x011B, 0xA8A8, 0x00E8, 0xA8A9, 0x012B, 0xA8AA, 0x00ED, + 0xA8AB, 0x01D0, 0xA8AC, 0x00EC, 0xA8AD, 0x014D, 0xA8AE, 0x00F3, + 0xA8AF, 0x01D2, 0xA8B0, 0x00F2, 0xA8B1, 0x016B, 0xA8B2, 0x00FA, + 0xA8B3, 0x01D4, 0xA8B4, 0x00F9, 0xA8B5, 0x01D6, 0xA8B6, 0x01D8, + 0xA8B7, 0x01DA, 0xA8B8, 0x01DC, 0xA8B9, 0x00FC, 0xA8BA, 0x00EA, + 0xA8BB, 0x0251, 0xA8BD, 0x0144, 0xA8BE, 0x0148, 0xA8C0, 0x0261, + 0xA8C5, 0x3105, 0xA8C6, 0x3106, 0xA8C7, 0x3107, 0xA8C8, 0x3108, + 0xA8C9, 0x3109, 0xA8CA, 0x310A, 0xA8CB, 0x310B, 0xA8CC, 0x310C, + 0xA8CD, 0x310D, 0xA8CE, 0x310E, 0xA8CF, 0x310F, 0xA8D0, 0x3110, + 0xA8D1, 0x3111, 0xA8D2, 0x3112, 0xA8D3, 0x3113, 0xA8D4, 0x3114, + 0xA8D5, 0x3115, 0xA8D6, 0x3116, 0xA8D7, 0x3117, 0xA8D8, 0x3118, + 0xA8D9, 0x3119, 0xA8DA, 0x311A, 0xA8DB, 0x311B, 0xA8DC, 0x311C, + 0xA8DD, 0x311D, 0xA8DE, 0x311E, 0xA8DF, 0x311F, 0xA8E0, 0x3120, + 0xA8E1, 0x3121, 0xA8E2, 0x3122, 0xA8E3, 0x3123, 0xA8E4, 0x3124, + 0xA8E5, 0x3125, 0xA8E6, 0x3126, 0xA8E7, 0x3127, 0xA8E8, 0x3128, + 0xA8E9, 0x3129, 0xA940, 0x3021, 0xA941, 0x3022, 0xA942, 0x3023, + 0xA943, 0x3024, 0xA944, 0x3025, 0xA945, 0x3026, 0xA946, 0x3027, + 0xA947, 0x3028, 0xA948, 0x3029, 0xA949, 0x32A3, 0xA94A, 0x338E, + 0xA94B, 0x338F, 0xA94C, 0x339C, 0xA94D, 0x339D, 0xA94E, 0x339E, + 0xA94F, 0x33A1, 0xA950, 0x33C4, 0xA951, 0x33CE, 0xA952, 0x33D1, + 0xA953, 0x33D2, 0xA954, 0x33D5, 0xA955, 0xFE30, 0xA956, 0xFFE2, + 0xA957, 0xFFE4, 0xA959, 0x2121, 0xA95A, 0x3231, 0xA95C, 0x2010, + 0xA960, 0x30FC, 0xA961, 0x309B, 0xA962, 0x309C, 0xA963, 0x30FD, + 0xA964, 0x30FE, 0xA965, 0x3006, 0xA966, 0x309D, 0xA967, 0x309E, + 0xA968, 0xFE49, 0xA969, 0xFE4A, 0xA96A, 0xFE4B, 0xA96B, 0xFE4C, + 0xA96C, 0xFE4D, 0xA96D, 0xFE4E, 0xA96E, 0xFE4F, 0xA96F, 0xFE50, + 0xA970, 0xFE51, 0xA971, 0xFE52, 0xA972, 0xFE54, 0xA973, 0xFE55, + 0xA974, 0xFE56, 0xA975, 0xFE57, 0xA976, 0xFE59, 0xA977, 0xFE5A, + 0xA978, 0xFE5B, 0xA979, 0xFE5C, 0xA97A, 0xFE5D, 0xA97B, 0xFE5E, + 0xA97C, 0xFE5F, 0xA97D, 0xFE60, 0xA97E, 0xFE61, 0xA980, 0xFE62, + 0xA981, 0xFE63, 0xA982, 0xFE64, 0xA983, 0xFE65, 0xA984, 0xFE66, + 0xA985, 0xFE68, 0xA986, 0xFE69, 0xA987, 0xFE6A, 0xA988, 0xFE6B, + 0xA996, 0x3007, 0xA9A4, 0x2500, 0xA9A5, 0x2501, 0xA9A6, 0x2502, + 0xA9A7, 0x2503, 0xA9A8, 0x2504, 0xA9A9, 0x2505, 0xA9AA, 0x2506, + 0xA9AB, 0x2507, 0xA9AC, 0x2508, 0xA9AD, 0x2509, 0xA9AE, 0x250A, + 0xA9AF, 0x250B, 0xA9B0, 0x250C, 0xA9B1, 0x250D, 0xA9B2, 0x250E, + 0xA9B3, 0x250F, 0xA9B4, 0x2510, 0xA9B5, 0x2511, 0xA9B6, 0x2512, + 0xA9B7, 0x2513, 0xA9B8, 0x2514, 0xA9B9, 0x2515, 0xA9BA, 0x2516, + 0xA9BB, 0x2517, 0xA9BC, 0x2518, 0xA9BD, 0x2519, 0xA9BE, 0x251A, + 0xA9BF, 0x251B, 0xA9C0, 0x251C, 0xA9C1, 0x251D, 0xA9C2, 0x251E, + 0xA9C3, 0x251F, 0xA9C4, 0x2520, 0xA9C5, 0x2521, 0xA9C6, 0x2522, + 0xA9C7, 0x2523, 0xA9C8, 0x2524, 0xA9C9, 0x2525, 0xA9CA, 0x2526, + 0xA9CB, 0x2527, 0xA9CC, 0x2528, 0xA9CD, 0x2529, 0xA9CE, 0x252A, + 0xA9CF, 0x252B, 0xA9D0, 0x252C, 0xA9D1, 0x252D, 0xA9D2, 0x252E, + 0xA9D3, 0x252F, 0xA9D4, 0x2530, 0xA9D5, 0x2531, 0xA9D6, 0x2532, + 0xA9D7, 0x2533, 0xA9D8, 0x2534, 0xA9D9, 0x2535, 0xA9DA, 0x2536, + 0xA9DB, 0x2537, 0xA9DC, 0x2538, 0xA9DD, 0x2539, 0xA9DE, 0x253A, + 0xA9DF, 0x253B, 0xA9E0, 0x253C, 0xA9E1, 0x253D, 0xA9E2, 0x253E, + 0xA9E3, 0x253F, 0xA9E4, 0x2540, 0xA9E5, 0x2541, 0xA9E6, 0x2542, + 0xA9E7, 0x2543, 0xA9E8, 0x2544, 0xA9E9, 0x2545, 0xA9EA, 0x2546, + 0xA9EB, 0x2547, 0xA9EC, 0x2548, 0xA9ED, 0x2549, 0xA9EE, 0x254A, + 0xA9EF, 0x254B, 0xAA40, 0x72DC, 0xAA41, 0x72DD, 0xAA42, 0x72DF, + 0xAA43, 0x72E2, 0xAA44, 0x72E3, 0xAA45, 0x72E4, 0xAA46, 0x72E5, + 0xAA47, 0x72E6, 0xAA48, 0x72E7, 0xAA49, 0x72EA, 0xAA4A, 0x72EB, + 0xAA4B, 0x72F5, 0xAA4C, 0x72F6, 0xAA4D, 0x72F9, 0xAA4E, 0x72FD, + 0xAA4F, 0x72FE, 0xAA50, 0x72FF, 0xAA51, 0x7300, 0xAA52, 0x7302, + 0xAA53, 0x7304, 0xAA54, 0x7305, 0xAA55, 0x7306, 0xAA56, 0x7307, + 0xAA57, 0x7308, 0xAA58, 0x7309, 0xAA59, 0x730B, 0xAA5A, 0x730C, + 0xAA5B, 0x730D, 0xAA5C, 0x730F, 0xAA5D, 0x7310, 0xAA5E, 0x7311, + 0xAA5F, 0x7312, 0xAA60, 0x7314, 0xAA61, 0x7318, 0xAA62, 0x7319, + 0xAA63, 0x731A, 0xAA64, 0x731F, 0xAA65, 0x7320, 0xAA66, 0x7323, + 0xAA67, 0x7324, 0xAA68, 0x7326, 0xAA69, 0x7327, 0xAA6A, 0x7328, + 0xAA6B, 0x732D, 0xAA6C, 0x732F, 0xAA6D, 0x7330, 0xAA6E, 0x7332, + 0xAA6F, 0x7333, 0xAA70, 0x7335, 0xAA71, 0x7336, 0xAA72, 0x733A, + 0xAA73, 0x733B, 0xAA74, 0x733C, 0xAA75, 0x733D, 0xAA76, 0x7340, + 0xAA77, 0x7341, 0xAA78, 0x7342, 0xAA79, 0x7343, 0xAA7A, 0x7344, + 0xAA7B, 0x7345, 0xAA7C, 0x7346, 0xAA7D, 0x7347, 0xAA7E, 0x7348, + 0xAA80, 0x7349, 0xAA81, 0x734A, 0xAA82, 0x734B, 0xAA83, 0x734C, + 0xAA84, 0x734E, 0xAA85, 0x734F, 0xAA86, 0x7351, 0xAA87, 0x7353, + 0xAA88, 0x7354, 0xAA89, 0x7355, 0xAA8A, 0x7356, 0xAA8B, 0x7358, + 0xAA8C, 0x7359, 0xAA8D, 0x735A, 0xAA8E, 0x735B, 0xAA8F, 0x735C, + 0xAA90, 0x735D, 0xAA91, 0x735E, 0xAA92, 0x735F, 0xAA93, 0x7361, + 0xAA94, 0x7362, 0xAA95, 0x7363, 0xAA96, 0x7364, 0xAA97, 0x7365, + 0xAA98, 0x7366, 0xAA99, 0x7367, 0xAA9A, 0x7368, 0xAA9B, 0x7369, + 0xAA9C, 0x736A, 0xAA9D, 0x736B, 0xAA9E, 0x736E, 0xAA9F, 0x7370, + 0xAAA0, 0x7371, 0xAB40, 0x7372, 0xAB41, 0x7373, 0xAB42, 0x7374, + 0xAB43, 0x7375, 0xAB44, 0x7376, 0xAB45, 0x7377, 0xAB46, 0x7378, + 0xAB47, 0x7379, 0xAB48, 0x737A, 0xAB49, 0x737B, 0xAB4A, 0x737C, + 0xAB4B, 0x737D, 0xAB4C, 0x737F, 0xAB4D, 0x7380, 0xAB4E, 0x7381, + 0xAB4F, 0x7382, 0xAB50, 0x7383, 0xAB51, 0x7385, 0xAB52, 0x7386, + 0xAB53, 0x7388, 0xAB54, 0x738A, 0xAB55, 0x738C, 0xAB56, 0x738D, + 0xAB57, 0x738F, 0xAB58, 0x7390, 0xAB59, 0x7392, 0xAB5A, 0x7393, + 0xAB5B, 0x7394, 0xAB5C, 0x7395, 0xAB5D, 0x7397, 0xAB5E, 0x7398, + 0xAB5F, 0x7399, 0xAB60, 0x739A, 0xAB61, 0x739C, 0xAB62, 0x739D, + 0xAB63, 0x739E, 0xAB64, 0x73A0, 0xAB65, 0x73A1, 0xAB66, 0x73A3, + 0xAB67, 0x73A4, 0xAB68, 0x73A5, 0xAB69, 0x73A6, 0xAB6A, 0x73A7, + 0xAB6B, 0x73A8, 0xAB6C, 0x73AA, 0xAB6D, 0x73AC, 0xAB6E, 0x73AD, + 0xAB6F, 0x73B1, 0xAB70, 0x73B4, 0xAB71, 0x73B5, 0xAB72, 0x73B6, + 0xAB73, 0x73B8, 0xAB74, 0x73B9, 0xAB75, 0x73BC, 0xAB76, 0x73BD, + 0xAB77, 0x73BE, 0xAB78, 0x73BF, 0xAB79, 0x73C1, 0xAB7A, 0x73C3, + 0xAB7B, 0x73C4, 0xAB7C, 0x73C5, 0xAB7D, 0x73C6, 0xAB7E, 0x73C7, + 0xAB80, 0x73CB, 0xAB81, 0x73CC, 0xAB82, 0x73CE, 0xAB83, 0x73D2, + 0xAB84, 0x73D3, 0xAB85, 0x73D4, 0xAB86, 0x73D5, 0xAB87, 0x73D6, + 0xAB88, 0x73D7, 0xAB89, 0x73D8, 0xAB8A, 0x73DA, 0xAB8B, 0x73DB, + 0xAB8C, 0x73DC, 0xAB8D, 0x73DD, 0xAB8E, 0x73DF, 0xAB8F, 0x73E1, + 0xAB90, 0x73E2, 0xAB91, 0x73E3, 0xAB92, 0x73E4, 0xAB93, 0x73E6, + 0xAB94, 0x73E8, 0xAB95, 0x73EA, 0xAB96, 0x73EB, 0xAB97, 0x73EC, + 0xAB98, 0x73EE, 0xAB99, 0x73EF, 0xAB9A, 0x73F0, 0xAB9B, 0x73F1, + 0xAB9C, 0x73F3, 0xAB9D, 0x73F4, 0xAB9E, 0x73F5, 0xAB9F, 0x73F6, + 0xABA0, 0x73F7, 0xAC40, 0x73F8, 0xAC41, 0x73F9, 0xAC42, 0x73FA, + 0xAC43, 0x73FB, 0xAC44, 0x73FC, 0xAC45, 0x73FD, 0xAC46, 0x73FE, + 0xAC47, 0x73FF, 0xAC48, 0x7400, 0xAC49, 0x7401, 0xAC4A, 0x7402, + 0xAC4B, 0x7404, 0xAC4C, 0x7407, 0xAC4D, 0x7408, 0xAC4E, 0x740B, + 0xAC4F, 0x740C, 0xAC50, 0x740D, 0xAC51, 0x740E, 0xAC52, 0x7411, + 0xAC53, 0x7412, 0xAC54, 0x7413, 0xAC55, 0x7414, 0xAC56, 0x7415, + 0xAC57, 0x7416, 0xAC58, 0x7417, 0xAC59, 0x7418, 0xAC5A, 0x7419, + 0xAC5B, 0x741C, 0xAC5C, 0x741D, 0xAC5D, 0x741E, 0xAC5E, 0x741F, + 0xAC5F, 0x7420, 0xAC60, 0x7421, 0xAC61, 0x7423, 0xAC62, 0x7424, + 0xAC63, 0x7427, 0xAC64, 0x7429, 0xAC65, 0x742B, 0xAC66, 0x742D, + 0xAC67, 0x742F, 0xAC68, 0x7431, 0xAC69, 0x7432, 0xAC6A, 0x7437, + 0xAC6B, 0x7438, 0xAC6C, 0x7439, 0xAC6D, 0x743A, 0xAC6E, 0x743B, + 0xAC6F, 0x743D, 0xAC70, 0x743E, 0xAC71, 0x743F, 0xAC72, 0x7440, + 0xAC73, 0x7442, 0xAC74, 0x7443, 0xAC75, 0x7444, 0xAC76, 0x7445, + 0xAC77, 0x7446, 0xAC78, 0x7447, 0xAC79, 0x7448, 0xAC7A, 0x7449, + 0xAC7B, 0x744A, 0xAC7C, 0x744B, 0xAC7D, 0x744C, 0xAC7E, 0x744D, + 0xAC80, 0x744E, 0xAC81, 0x744F, 0xAC82, 0x7450, 0xAC83, 0x7451, + 0xAC84, 0x7452, 0xAC85, 0x7453, 0xAC86, 0x7454, 0xAC87, 0x7456, + 0xAC88, 0x7458, 0xAC89, 0x745D, 0xAC8A, 0x7460, 0xAC8B, 0x7461, + 0xAC8C, 0x7462, 0xAC8D, 0x7463, 0xAC8E, 0x7464, 0xAC8F, 0x7465, + 0xAC90, 0x7466, 0xAC91, 0x7467, 0xAC92, 0x7468, 0xAC93, 0x7469, + 0xAC94, 0x746A, 0xAC95, 0x746B, 0xAC96, 0x746C, 0xAC97, 0x746E, + 0xAC98, 0x746F, 0xAC99, 0x7471, 0xAC9A, 0x7472, 0xAC9B, 0x7473, + 0xAC9C, 0x7474, 0xAC9D, 0x7475, 0xAC9E, 0x7478, 0xAC9F, 0x7479, + 0xACA0, 0x747A, 0xAD40, 0x747B, 0xAD41, 0x747C, 0xAD42, 0x747D, + 0xAD43, 0x747F, 0xAD44, 0x7482, 0xAD45, 0x7484, 0xAD46, 0x7485, + 0xAD47, 0x7486, 0xAD48, 0x7488, 0xAD49, 0x7489, 0xAD4A, 0x748A, + 0xAD4B, 0x748C, 0xAD4C, 0x748D, 0xAD4D, 0x748F, 0xAD4E, 0x7491, + 0xAD4F, 0x7492, 0xAD50, 0x7493, 0xAD51, 0x7494, 0xAD52, 0x7495, + 0xAD53, 0x7496, 0xAD54, 0x7497, 0xAD55, 0x7498, 0xAD56, 0x7499, + 0xAD57, 0x749A, 0xAD58, 0x749B, 0xAD59, 0x749D, 0xAD5A, 0x749F, + 0xAD5B, 0x74A0, 0xAD5C, 0x74A1, 0xAD5D, 0x74A2, 0xAD5E, 0x74A3, + 0xAD5F, 0x74A4, 0xAD60, 0x74A5, 0xAD61, 0x74A6, 0xAD62, 0x74AA, + 0xAD63, 0x74AB, 0xAD64, 0x74AC, 0xAD65, 0x74AD, 0xAD66, 0x74AE, + 0xAD67, 0x74AF, 0xAD68, 0x74B0, 0xAD69, 0x74B1, 0xAD6A, 0x74B2, + 0xAD6B, 0x74B3, 0xAD6C, 0x74B4, 0xAD6D, 0x74B5, 0xAD6E, 0x74B6, + 0xAD6F, 0x74B7, 0xAD70, 0x74B8, 0xAD71, 0x74B9, 0xAD72, 0x74BB, + 0xAD73, 0x74BC, 0xAD74, 0x74BD, 0xAD75, 0x74BE, 0xAD76, 0x74BF, + 0xAD77, 0x74C0, 0xAD78, 0x74C1, 0xAD79, 0x74C2, 0xAD7A, 0x74C3, + 0xAD7B, 0x74C4, 0xAD7C, 0x74C5, 0xAD7D, 0x74C6, 0xAD7E, 0x74C7, + 0xAD80, 0x74C8, 0xAD81, 0x74C9, 0xAD82, 0x74CA, 0xAD83, 0x74CB, + 0xAD84, 0x74CC, 0xAD85, 0x74CD, 0xAD86, 0x74CE, 0xAD87, 0x74CF, + 0xAD88, 0x74D0, 0xAD89, 0x74D1, 0xAD8A, 0x74D3, 0xAD8B, 0x74D4, + 0xAD8C, 0x74D5, 0xAD8D, 0x74D6, 0xAD8E, 0x74D7, 0xAD8F, 0x74D8, + 0xAD90, 0x74D9, 0xAD91, 0x74DA, 0xAD92, 0x74DB, 0xAD93, 0x74DD, + 0xAD94, 0x74DF, 0xAD95, 0x74E1, 0xAD96, 0x74E5, 0xAD97, 0x74E7, + 0xAD98, 0x74E8, 0xAD99, 0x74E9, 0xAD9A, 0x74EA, 0xAD9B, 0x74EB, + 0xAD9C, 0x74EC, 0xAD9D, 0x74ED, 0xAD9E, 0x74F0, 0xAD9F, 0x74F1, + 0xADA0, 0x74F2, 0xAE40, 0x74F3, 0xAE41, 0x74F5, 0xAE42, 0x74F8, + 0xAE43, 0x74F9, 0xAE44, 0x74FA, 0xAE45, 0x74FB, 0xAE46, 0x74FC, + 0xAE47, 0x74FD, 0xAE48, 0x74FE, 0xAE49, 0x7500, 0xAE4A, 0x7501, + 0xAE4B, 0x7502, 0xAE4C, 0x7503, 0xAE4D, 0x7505, 0xAE4E, 0x7506, + 0xAE4F, 0x7507, 0xAE50, 0x7508, 0xAE51, 0x7509, 0xAE52, 0x750A, + 0xAE53, 0x750B, 0xAE54, 0x750C, 0xAE55, 0x750E, 0xAE56, 0x7510, + 0xAE57, 0x7512, 0xAE58, 0x7514, 0xAE59, 0x7515, 0xAE5A, 0x7516, + 0xAE5B, 0x7517, 0xAE5C, 0x751B, 0xAE5D, 0x751D, 0xAE5E, 0x751E, + 0xAE5F, 0x7520, 0xAE60, 0x7521, 0xAE61, 0x7522, 0xAE62, 0x7523, + 0xAE63, 0x7524, 0xAE64, 0x7526, 0xAE65, 0x7527, 0xAE66, 0x752A, + 0xAE67, 0x752E, 0xAE68, 0x7534, 0xAE69, 0x7536, 0xAE6A, 0x7539, + 0xAE6B, 0x753C, 0xAE6C, 0x753D, 0xAE6D, 0x753F, 0xAE6E, 0x7541, + 0xAE6F, 0x7542, 0xAE70, 0x7543, 0xAE71, 0x7544, 0xAE72, 0x7546, + 0xAE73, 0x7547, 0xAE74, 0x7549, 0xAE75, 0x754A, 0xAE76, 0x754D, + 0xAE77, 0x7550, 0xAE78, 0x7551, 0xAE79, 0x7552, 0xAE7A, 0x7553, + 0xAE7B, 0x7555, 0xAE7C, 0x7556, 0xAE7D, 0x7557, 0xAE7E, 0x7558, + 0xAE80, 0x755D, 0xAE81, 0x755E, 0xAE82, 0x755F, 0xAE83, 0x7560, + 0xAE84, 0x7561, 0xAE85, 0x7562, 0xAE86, 0x7563, 0xAE87, 0x7564, + 0xAE88, 0x7567, 0xAE89, 0x7568, 0xAE8A, 0x7569, 0xAE8B, 0x756B, + 0xAE8C, 0x756C, 0xAE8D, 0x756D, 0xAE8E, 0x756E, 0xAE8F, 0x756F, + 0xAE90, 0x7570, 0xAE91, 0x7571, 0xAE92, 0x7573, 0xAE93, 0x7575, + 0xAE94, 0x7576, 0xAE95, 0x7577, 0xAE96, 0x757A, 0xAE97, 0x757B, + 0xAE98, 0x757C, 0xAE99, 0x757D, 0xAE9A, 0x757E, 0xAE9B, 0x7580, + 0xAE9C, 0x7581, 0xAE9D, 0x7582, 0xAE9E, 0x7584, 0xAE9F, 0x7585, + 0xAEA0, 0x7587, 0xAF40, 0x7588, 0xAF41, 0x7589, 0xAF42, 0x758A, + 0xAF43, 0x758C, 0xAF44, 0x758D, 0xAF45, 0x758E, 0xAF46, 0x7590, + 0xAF47, 0x7593, 0xAF48, 0x7595, 0xAF49, 0x7598, 0xAF4A, 0x759B, + 0xAF4B, 0x759C, 0xAF4C, 0x759E, 0xAF4D, 0x75A2, 0xAF4E, 0x75A6, + 0xAF4F, 0x75A7, 0xAF50, 0x75A8, 0xAF51, 0x75A9, 0xAF52, 0x75AA, + 0xAF53, 0x75AD, 0xAF54, 0x75B6, 0xAF55, 0x75B7, 0xAF56, 0x75BA, + 0xAF57, 0x75BB, 0xAF58, 0x75BF, 0xAF59, 0x75C0, 0xAF5A, 0x75C1, + 0xAF5B, 0x75C6, 0xAF5C, 0x75CB, 0xAF5D, 0x75CC, 0xAF5E, 0x75CE, + 0xAF5F, 0x75CF, 0xAF60, 0x75D0, 0xAF61, 0x75D1, 0xAF62, 0x75D3, + 0xAF63, 0x75D7, 0xAF64, 0x75D9, 0xAF65, 0x75DA, 0xAF66, 0x75DC, + 0xAF67, 0x75DD, 0xAF68, 0x75DF, 0xAF69, 0x75E0, 0xAF6A, 0x75E1, + 0xAF6B, 0x75E5, 0xAF6C, 0x75E9, 0xAF6D, 0x75EC, 0xAF6E, 0x75ED, + 0xAF6F, 0x75EE, 0xAF70, 0x75EF, 0xAF71, 0x75F2, 0xAF72, 0x75F3, + 0xAF73, 0x75F5, 0xAF74, 0x75F6, 0xAF75, 0x75F7, 0xAF76, 0x75F8, + 0xAF77, 0x75FA, 0xAF78, 0x75FB, 0xAF79, 0x75FD, 0xAF7A, 0x75FE, + 0xAF7B, 0x7602, 0xAF7C, 0x7604, 0xAF7D, 0x7606, 0xAF7E, 0x7607, + 0xAF80, 0x7608, 0xAF81, 0x7609, 0xAF82, 0x760B, 0xAF83, 0x760D, + 0xAF84, 0x760E, 0xAF85, 0x760F, 0xAF86, 0x7611, 0xAF87, 0x7612, + 0xAF88, 0x7613, 0xAF89, 0x7614, 0xAF8A, 0x7616, 0xAF8B, 0x761A, + 0xAF8C, 0x761C, 0xAF8D, 0x761D, 0xAF8E, 0x761E, 0xAF8F, 0x7621, + 0xAF90, 0x7623, 0xAF91, 0x7627, 0xAF92, 0x7628, 0xAF93, 0x762C, + 0xAF94, 0x762E, 0xAF95, 0x762F, 0xAF96, 0x7631, 0xAF97, 0x7632, + 0xAF98, 0x7636, 0xAF99, 0x7637, 0xAF9A, 0x7639, 0xAF9B, 0x763A, + 0xAF9C, 0x763B, 0xAF9D, 0x763D, 0xAF9E, 0x7641, 0xAF9F, 0x7642, + 0xAFA0, 0x7644, 0xB040, 0x7645, 0xB041, 0x7646, 0xB042, 0x7647, + 0xB043, 0x7648, 0xB044, 0x7649, 0xB045, 0x764A, 0xB046, 0x764B, + 0xB047, 0x764E, 0xB048, 0x764F, 0xB049, 0x7650, 0xB04A, 0x7651, + 0xB04B, 0x7652, 0xB04C, 0x7653, 0xB04D, 0x7655, 0xB04E, 0x7657, + 0xB04F, 0x7658, 0xB050, 0x7659, 0xB051, 0x765A, 0xB052, 0x765B, + 0xB053, 0x765D, 0xB054, 0x765F, 0xB055, 0x7660, 0xB056, 0x7661, + 0xB057, 0x7662, 0xB058, 0x7664, 0xB059, 0x7665, 0xB05A, 0x7666, + 0xB05B, 0x7667, 0xB05C, 0x7668, 0xB05D, 0x7669, 0xB05E, 0x766A, + 0xB05F, 0x766C, 0xB060, 0x766D, 0xB061, 0x766E, 0xB062, 0x7670, + 0xB063, 0x7671, 0xB064, 0x7672, 0xB065, 0x7673, 0xB066, 0x7674, + 0xB067, 0x7675, 0xB068, 0x7676, 0xB069, 0x7677, 0xB06A, 0x7679, + 0xB06B, 0x767A, 0xB06C, 0x767C, 0xB06D, 0x767F, 0xB06E, 0x7680, + 0xB06F, 0x7681, 0xB070, 0x7683, 0xB071, 0x7685, 0xB072, 0x7689, + 0xB073, 0x768A, 0xB074, 0x768C, 0xB075, 0x768D, 0xB076, 0x768F, + 0xB077, 0x7690, 0xB078, 0x7692, 0xB079, 0x7694, 0xB07A, 0x7695, + 0xB07B, 0x7697, 0xB07C, 0x7698, 0xB07D, 0x769A, 0xB07E, 0x769B, + 0xB080, 0x769C, 0xB081, 0x769D, 0xB082, 0x769E, 0xB083, 0x769F, + 0xB084, 0x76A0, 0xB085, 0x76A1, 0xB086, 0x76A2, 0xB087, 0x76A3, + 0xB088, 0x76A5, 0xB089, 0x76A6, 0xB08A, 0x76A7, 0xB08B, 0x76A8, + 0xB08C, 0x76A9, 0xB08D, 0x76AA, 0xB08E, 0x76AB, 0xB08F, 0x76AC, + 0xB090, 0x76AD, 0xB091, 0x76AF, 0xB092, 0x76B0, 0xB093, 0x76B3, + 0xB094, 0x76B5, 0xB095, 0x76B6, 0xB096, 0x76B7, 0xB097, 0x76B8, + 0xB098, 0x76B9, 0xB099, 0x76BA, 0xB09A, 0x76BB, 0xB09B, 0x76BC, + 0xB09C, 0x76BD, 0xB09D, 0x76BE, 0xB09E, 0x76C0, 0xB09F, 0x76C1, + 0xB0A0, 0x76C3, 0xB0A1, 0x554A, 0xB0A2, 0x963F, 0xB0A3, 0x57C3, + 0xB0A4, 0x6328, 0xB0A5, 0x54CE, 0xB0A6, 0x5509, 0xB0A7, 0x54C0, + 0xB0A8, 0x7691, 0xB0A9, 0x764C, 0xB0AA, 0x853C, 0xB0AB, 0x77EE, + 0xB0AC, 0x827E, 0xB0AD, 0x788D, 0xB0AE, 0x7231, 0xB0AF, 0x9698, + 0xB0B0, 0x978D, 0xB0B1, 0x6C28, 0xB0B2, 0x5B89, 0xB0B3, 0x4FFA, + 0xB0B4, 0x6309, 0xB0B5, 0x6697, 0xB0B6, 0x5CB8, 0xB0B7, 0x80FA, + 0xB0B8, 0x6848, 0xB0B9, 0x80AE, 0xB0BA, 0x6602, 0xB0BB, 0x76CE, + 0xB0BC, 0x51F9, 0xB0BD, 0x6556, 0xB0BE, 0x71AC, 0xB0BF, 0x7FF1, + 0xB0C0, 0x8884, 0xB0C1, 0x50B2, 0xB0C2, 0x5965, 0xB0C3, 0x61CA, + 0xB0C4, 0x6FB3, 0xB0C5, 0x82AD, 0xB0C6, 0x634C, 0xB0C7, 0x6252, + 0xB0C8, 0x53ED, 0xB0C9, 0x5427, 0xB0CA, 0x7B06, 0xB0CB, 0x516B, + 0xB0CC, 0x75A4, 0xB0CD, 0x5DF4, 0xB0CE, 0x62D4, 0xB0CF, 0x8DCB, + 0xB0D0, 0x9776, 0xB0D1, 0x628A, 0xB0D2, 0x8019, 0xB0D3, 0x575D, + 0xB0D4, 0x9738, 0xB0D5, 0x7F62, 0xB0D6, 0x7238, 0xB0D7, 0x767D, + 0xB0D8, 0x67CF, 0xB0D9, 0x767E, 0xB0DA, 0x6446, 0xB0DB, 0x4F70, + 0xB0DC, 0x8D25, 0xB0DD, 0x62DC, 0xB0DE, 0x7A17, 0xB0DF, 0x6591, + 0xB0E0, 0x73ED, 0xB0E1, 0x642C, 0xB0E2, 0x6273, 0xB0E3, 0x822C, + 0xB0E4, 0x9881, 0xB0E5, 0x677F, 0xB0E6, 0x7248, 0xB0E7, 0x626E, + 0xB0E8, 0x62CC, 0xB0E9, 0x4F34, 0xB0EA, 0x74E3, 0xB0EB, 0x534A, + 0xB0EC, 0x529E, 0xB0ED, 0x7ECA, 0xB0EE, 0x90A6, 0xB0EF, 0x5E2E, + 0xB0F0, 0x6886, 0xB0F1, 0x699C, 0xB0F2, 0x8180, 0xB0F3, 0x7ED1, + 0xB0F4, 0x68D2, 0xB0F5, 0x78C5, 0xB0F6, 0x868C, 0xB0F7, 0x9551, + 0xB0F8, 0x508D, 0xB0F9, 0x8C24, 0xB0FA, 0x82DE, 0xB0FB, 0x80DE, + 0xB0FC, 0x5305, 0xB0FD, 0x8912, 0xB0FE, 0x5265, 0xB140, 0x76C4, + 0xB141, 0x76C7, 0xB142, 0x76C9, 0xB143, 0x76CB, 0xB144, 0x76CC, + 0xB145, 0x76D3, 0xB146, 0x76D5, 0xB147, 0x76D9, 0xB148, 0x76DA, + 0xB149, 0x76DC, 0xB14A, 0x76DD, 0xB14B, 0x76DE, 0xB14C, 0x76E0, + 0xB14D, 0x76E1, 0xB14E, 0x76E2, 0xB14F, 0x76E3, 0xB150, 0x76E4, + 0xB151, 0x76E6, 0xB152, 0x76E7, 0xB153, 0x76E8, 0xB154, 0x76E9, + 0xB155, 0x76EA, 0xB156, 0x76EB, 0xB157, 0x76EC, 0xB158, 0x76ED, + 0xB159, 0x76F0, 0xB15A, 0x76F3, 0xB15B, 0x76F5, 0xB15C, 0x76F6, + 0xB15D, 0x76F7, 0xB15E, 0x76FA, 0xB15F, 0x76FB, 0xB160, 0x76FD, + 0xB161, 0x76FF, 0xB162, 0x7700, 0xB163, 0x7702, 0xB164, 0x7703, + 0xB165, 0x7705, 0xB166, 0x7706, 0xB167, 0x770A, 0xB168, 0x770C, + 0xB169, 0x770E, 0xB16A, 0x770F, 0xB16B, 0x7710, 0xB16C, 0x7711, + 0xB16D, 0x7712, 0xB16E, 0x7713, 0xB16F, 0x7714, 0xB170, 0x7715, + 0xB171, 0x7716, 0xB172, 0x7717, 0xB173, 0x7718, 0xB174, 0x771B, + 0xB175, 0x771C, 0xB176, 0x771D, 0xB177, 0x771E, 0xB178, 0x7721, + 0xB179, 0x7723, 0xB17A, 0x7724, 0xB17B, 0x7725, 0xB17C, 0x7727, + 0xB17D, 0x772A, 0xB17E, 0x772B, 0xB180, 0x772C, 0xB181, 0x772E, + 0xB182, 0x7730, 0xB183, 0x7731, 0xB184, 0x7732, 0xB185, 0x7733, + 0xB186, 0x7734, 0xB187, 0x7739, 0xB188, 0x773B, 0xB189, 0x773D, + 0xB18A, 0x773E, 0xB18B, 0x773F, 0xB18C, 0x7742, 0xB18D, 0x7744, + 0xB18E, 0x7745, 0xB18F, 0x7746, 0xB190, 0x7748, 0xB191, 0x7749, + 0xB192, 0x774A, 0xB193, 0x774B, 0xB194, 0x774C, 0xB195, 0x774D, + 0xB196, 0x774E, 0xB197, 0x774F, 0xB198, 0x7752, 0xB199, 0x7753, + 0xB19A, 0x7754, 0xB19B, 0x7755, 0xB19C, 0x7756, 0xB19D, 0x7757, + 0xB19E, 0x7758, 0xB19F, 0x7759, 0xB1A0, 0x775C, 0xB1A1, 0x8584, + 0xB1A2, 0x96F9, 0xB1A3, 0x4FDD, 0xB1A4, 0x5821, 0xB1A5, 0x9971, + 0xB1A6, 0x5B9D, 0xB1A7, 0x62B1, 0xB1A8, 0x62A5, 0xB1A9, 0x66B4, + 0xB1AA, 0x8C79, 0xB1AB, 0x9C8D, 0xB1AC, 0x7206, 0xB1AD, 0x676F, + 0xB1AE, 0x7891, 0xB1AF, 0x60B2, 0xB1B0, 0x5351, 0xB1B1, 0x5317, + 0xB1B2, 0x8F88, 0xB1B3, 0x80CC, 0xB1B4, 0x8D1D, 0xB1B5, 0x94A1, + 0xB1B6, 0x500D, 0xB1B7, 0x72C8, 0xB1B8, 0x5907, 0xB1B9, 0x60EB, + 0xB1BA, 0x7119, 0xB1BB, 0x88AB, 0xB1BC, 0x5954, 0xB1BD, 0x82EF, + 0xB1BE, 0x672C, 0xB1BF, 0x7B28, 0xB1C0, 0x5D29, 0xB1C1, 0x7EF7, + 0xB1C2, 0x752D, 0xB1C3, 0x6CF5, 0xB1C4, 0x8E66, 0xB1C5, 0x8FF8, + 0xB1C6, 0x903C, 0xB1C7, 0x9F3B, 0xB1C8, 0x6BD4, 0xB1C9, 0x9119, + 0xB1CA, 0x7B14, 0xB1CB, 0x5F7C, 0xB1CC, 0x78A7, 0xB1CD, 0x84D6, + 0xB1CE, 0x853D, 0xB1CF, 0x6BD5, 0xB1D0, 0x6BD9, 0xB1D1, 0x6BD6, + 0xB1D2, 0x5E01, 0xB1D3, 0x5E87, 0xB1D4, 0x75F9, 0xB1D5, 0x95ED, + 0xB1D6, 0x655D, 0xB1D7, 0x5F0A, 0xB1D8, 0x5FC5, 0xB1D9, 0x8F9F, + 0xB1DA, 0x58C1, 0xB1DB, 0x81C2, 0xB1DC, 0x907F, 0xB1DD, 0x965B, + 0xB1DE, 0x97AD, 0xB1DF, 0x8FB9, 0xB1E0, 0x7F16, 0xB1E1, 0x8D2C, + 0xB1E2, 0x6241, 0xB1E3, 0x4FBF, 0xB1E4, 0x53D8, 0xB1E5, 0x535E, + 0xB1E6, 0x8FA8, 0xB1E7, 0x8FA9, 0xB1E8, 0x8FAB, 0xB1E9, 0x904D, + 0xB1EA, 0x6807, 0xB1EB, 0x5F6A, 0xB1EC, 0x8198, 0xB1ED, 0x8868, + 0xB1EE, 0x9CD6, 0xB1EF, 0x618B, 0xB1F0, 0x522B, 0xB1F1, 0x762A, + 0xB1F2, 0x5F6C, 0xB1F3, 0x658C, 0xB1F4, 0x6FD2, 0xB1F5, 0x6EE8, + 0xB1F6, 0x5BBE, 0xB1F7, 0x6448, 0xB1F8, 0x5175, 0xB1F9, 0x51B0, + 0xB1FA, 0x67C4, 0xB1FB, 0x4E19, 0xB1FC, 0x79C9, 0xB1FD, 0x997C, + 0xB1FE, 0x70B3, 0xB240, 0x775D, 0xB241, 0x775E, 0xB242, 0x775F, + 0xB243, 0x7760, 0xB244, 0x7764, 0xB245, 0x7767, 0xB246, 0x7769, + 0xB247, 0x776A, 0xB248, 0x776D, 0xB249, 0x776E, 0xB24A, 0x776F, + 0xB24B, 0x7770, 0xB24C, 0x7771, 0xB24D, 0x7772, 0xB24E, 0x7773, + 0xB24F, 0x7774, 0xB250, 0x7775, 0xB251, 0x7776, 0xB252, 0x7777, + 0xB253, 0x7778, 0xB254, 0x777A, 0xB255, 0x777B, 0xB256, 0x777C, + 0xB257, 0x7781, 0xB258, 0x7782, 0xB259, 0x7783, 0xB25A, 0x7786, + 0xB25B, 0x7787, 0xB25C, 0x7788, 0xB25D, 0x7789, 0xB25E, 0x778A, + 0xB25F, 0x778B, 0xB260, 0x778F, 0xB261, 0x7790, 0xB262, 0x7793, + 0xB263, 0x7794, 0xB264, 0x7795, 0xB265, 0x7796, 0xB266, 0x7797, + 0xB267, 0x7798, 0xB268, 0x7799, 0xB269, 0x779A, 0xB26A, 0x779B, + 0xB26B, 0x779C, 0xB26C, 0x779D, 0xB26D, 0x779E, 0xB26E, 0x77A1, + 0xB26F, 0x77A3, 0xB270, 0x77A4, 0xB271, 0x77A6, 0xB272, 0x77A8, + 0xB273, 0x77AB, 0xB274, 0x77AD, 0xB275, 0x77AE, 0xB276, 0x77AF, + 0xB277, 0x77B1, 0xB278, 0x77B2, 0xB279, 0x77B4, 0xB27A, 0x77B6, + 0xB27B, 0x77B7, 0xB27C, 0x77B8, 0xB27D, 0x77B9, 0xB27E, 0x77BA, + 0xB280, 0x77BC, 0xB281, 0x77BE, 0xB282, 0x77C0, 0xB283, 0x77C1, + 0xB284, 0x77C2, 0xB285, 0x77C3, 0xB286, 0x77C4, 0xB287, 0x77C5, + 0xB288, 0x77C6, 0xB289, 0x77C7, 0xB28A, 0x77C8, 0xB28B, 0x77C9, + 0xB28C, 0x77CA, 0xB28D, 0x77CB, 0xB28E, 0x77CC, 0xB28F, 0x77CE, + 0xB290, 0x77CF, 0xB291, 0x77D0, 0xB292, 0x77D1, 0xB293, 0x77D2, + 0xB294, 0x77D3, 0xB295, 0x77D4, 0xB296, 0x77D5, 0xB297, 0x77D6, + 0xB298, 0x77D8, 0xB299, 0x77D9, 0xB29A, 0x77DA, 0xB29B, 0x77DD, + 0xB29C, 0x77DE, 0xB29D, 0x77DF, 0xB29E, 0x77E0, 0xB29F, 0x77E1, + 0xB2A0, 0x77E4, 0xB2A1, 0x75C5, 0xB2A2, 0x5E76, 0xB2A3, 0x73BB, + 0xB2A4, 0x83E0, 0xB2A5, 0x64AD, 0xB2A6, 0x62E8, 0xB2A7, 0x94B5, + 0xB2A8, 0x6CE2, 0xB2A9, 0x535A, 0xB2AA, 0x52C3, 0xB2AB, 0x640F, + 0xB2AC, 0x94C2, 0xB2AD, 0x7B94, 0xB2AE, 0x4F2F, 0xB2AF, 0x5E1B, + 0xB2B0, 0x8236, 0xB2B1, 0x8116, 0xB2B2, 0x818A, 0xB2B3, 0x6E24, + 0xB2B4, 0x6CCA, 0xB2B5, 0x9A73, 0xB2B6, 0x6355, 0xB2B7, 0x535C, + 0xB2B8, 0x54FA, 0xB2B9, 0x8865, 0xB2BA, 0x57E0, 0xB2BB, 0x4E0D, + 0xB2BC, 0x5E03, 0xB2BD, 0x6B65, 0xB2BE, 0x7C3F, 0xB2BF, 0x90E8, + 0xB2C0, 0x6016, 0xB2C1, 0x64E6, 0xB2C2, 0x731C, 0xB2C3, 0x88C1, + 0xB2C4, 0x6750, 0xB2C5, 0x624D, 0xB2C6, 0x8D22, 0xB2C7, 0x776C, + 0xB2C8, 0x8E29, 0xB2C9, 0x91C7, 0xB2CA, 0x5F69, 0xB2CB, 0x83DC, + 0xB2CC, 0x8521, 0xB2CD, 0x9910, 0xB2CE, 0x53C2, 0xB2CF, 0x8695, + 0xB2D0, 0x6B8B, 0xB2D1, 0x60ED, 0xB2D2, 0x60E8, 0xB2D3, 0x707F, + 0xB2D4, 0x82CD, 0xB2D5, 0x8231, 0xB2D6, 0x4ED3, 0xB2D7, 0x6CA7, + 0xB2D8, 0x85CF, 0xB2D9, 0x64CD, 0xB2DA, 0x7CD9, 0xB2DB, 0x69FD, + 0xB2DC, 0x66F9, 0xB2DD, 0x8349, 0xB2DE, 0x5395, 0xB2DF, 0x7B56, + 0xB2E0, 0x4FA7, 0xB2E1, 0x518C, 0xB2E2, 0x6D4B, 0xB2E3, 0x5C42, + 0xB2E4, 0x8E6D, 0xB2E5, 0x63D2, 0xB2E6, 0x53C9, 0xB2E7, 0x832C, + 0xB2E8, 0x8336, 0xB2E9, 0x67E5, 0xB2EA, 0x78B4, 0xB2EB, 0x643D, + 0xB2EC, 0x5BDF, 0xB2ED, 0x5C94, 0xB2EE, 0x5DEE, 0xB2EF, 0x8BE7, + 0xB2F0, 0x62C6, 0xB2F1, 0x67F4, 0xB2F2, 0x8C7A, 0xB2F3, 0x6400, + 0xB2F4, 0x63BA, 0xB2F5, 0x8749, 0xB2F6, 0x998B, 0xB2F7, 0x8C17, + 0xB2F8, 0x7F20, 0xB2F9, 0x94F2, 0xB2FA, 0x4EA7, 0xB2FB, 0x9610, + 0xB2FC, 0x98A4, 0xB2FD, 0x660C, 0xB2FE, 0x7316, 0xB340, 0x77E6, + 0xB341, 0x77E8, 0xB342, 0x77EA, 0xB343, 0x77EF, 0xB344, 0x77F0, + 0xB345, 0x77F1, 0xB346, 0x77F2, 0xB347, 0x77F4, 0xB348, 0x77F5, + 0xB349, 0x77F7, 0xB34A, 0x77F9, 0xB34B, 0x77FA, 0xB34C, 0x77FB, + 0xB34D, 0x77FC, 0xB34E, 0x7803, 0xB34F, 0x7804, 0xB350, 0x7805, + 0xB351, 0x7806, 0xB352, 0x7807, 0xB353, 0x7808, 0xB354, 0x780A, + 0xB355, 0x780B, 0xB356, 0x780E, 0xB357, 0x780F, 0xB358, 0x7810, + 0xB359, 0x7813, 0xB35A, 0x7815, 0xB35B, 0x7819, 0xB35C, 0x781B, + 0xB35D, 0x781E, 0xB35E, 0x7820, 0xB35F, 0x7821, 0xB360, 0x7822, + 0xB361, 0x7824, 0xB362, 0x7828, 0xB363, 0x782A, 0xB364, 0x782B, + 0xB365, 0x782E, 0xB366, 0x782F, 0xB367, 0x7831, 0xB368, 0x7832, + 0xB369, 0x7833, 0xB36A, 0x7835, 0xB36B, 0x7836, 0xB36C, 0x783D, + 0xB36D, 0x783F, 0xB36E, 0x7841, 0xB36F, 0x7842, 0xB370, 0x7843, + 0xB371, 0x7844, 0xB372, 0x7846, 0xB373, 0x7848, 0xB374, 0x7849, + 0xB375, 0x784A, 0xB376, 0x784B, 0xB377, 0x784D, 0xB378, 0x784F, + 0xB379, 0x7851, 0xB37A, 0x7853, 0xB37B, 0x7854, 0xB37C, 0x7858, + 0xB37D, 0x7859, 0xB37E, 0x785A, 0xB380, 0x785B, 0xB381, 0x785C, + 0xB382, 0x785E, 0xB383, 0x785F, 0xB384, 0x7860, 0xB385, 0x7861, + 0xB386, 0x7862, 0xB387, 0x7863, 0xB388, 0x7864, 0xB389, 0x7865, + 0xB38A, 0x7866, 0xB38B, 0x7867, 0xB38C, 0x7868, 0xB38D, 0x7869, + 0xB38E, 0x786F, 0xB38F, 0x7870, 0xB390, 0x7871, 0xB391, 0x7872, + 0xB392, 0x7873, 0xB393, 0x7874, 0xB394, 0x7875, 0xB395, 0x7876, + 0xB396, 0x7878, 0xB397, 0x7879, 0xB398, 0x787A, 0xB399, 0x787B, + 0xB39A, 0x787D, 0xB39B, 0x787E, 0xB39C, 0x787F, 0xB39D, 0x7880, + 0xB39E, 0x7881, 0xB39F, 0x7882, 0xB3A0, 0x7883, 0xB3A1, 0x573A, + 0xB3A2, 0x5C1D, 0xB3A3, 0x5E38, 0xB3A4, 0x957F, 0xB3A5, 0x507F, + 0xB3A6, 0x80A0, 0xB3A7, 0x5382, 0xB3A8, 0x655E, 0xB3A9, 0x7545, + 0xB3AA, 0x5531, 0xB3AB, 0x5021, 0xB3AC, 0x8D85, 0xB3AD, 0x6284, + 0xB3AE, 0x949E, 0xB3AF, 0x671D, 0xB3B0, 0x5632, 0xB3B1, 0x6F6E, + 0xB3B2, 0x5DE2, 0xB3B3, 0x5435, 0xB3B4, 0x7092, 0xB3B5, 0x8F66, + 0xB3B6, 0x626F, 0xB3B7, 0x64A4, 0xB3B8, 0x63A3, 0xB3B9, 0x5F7B, + 0xB3BA, 0x6F88, 0xB3BB, 0x90F4, 0xB3BC, 0x81E3, 0xB3BD, 0x8FB0, + 0xB3BE, 0x5C18, 0xB3BF, 0x6668, 0xB3C0, 0x5FF1, 0xB3C1, 0x6C89, + 0xB3C2, 0x9648, 0xB3C3, 0x8D81, 0xB3C4, 0x886C, 0xB3C5, 0x6491, + 0xB3C6, 0x79F0, 0xB3C7, 0x57CE, 0xB3C8, 0x6A59, 0xB3C9, 0x6210, + 0xB3CA, 0x5448, 0xB3CB, 0x4E58, 0xB3CC, 0x7A0B, 0xB3CD, 0x60E9, + 0xB3CE, 0x6F84, 0xB3CF, 0x8BDA, 0xB3D0, 0x627F, 0xB3D1, 0x901E, + 0xB3D2, 0x9A8B, 0xB3D3, 0x79E4, 0xB3D4, 0x5403, 0xB3D5, 0x75F4, + 0xB3D6, 0x6301, 0xB3D7, 0x5319, 0xB3D8, 0x6C60, 0xB3D9, 0x8FDF, + 0xB3DA, 0x5F1B, 0xB3DB, 0x9A70, 0xB3DC, 0x803B, 0xB3DD, 0x9F7F, + 0xB3DE, 0x4F88, 0xB3DF, 0x5C3A, 0xB3E0, 0x8D64, 0xB3E1, 0x7FC5, + 0xB3E2, 0x65A5, 0xB3E3, 0x70BD, 0xB3E4, 0x5145, 0xB3E5, 0x51B2, + 0xB3E6, 0x866B, 0xB3E7, 0x5D07, 0xB3E8, 0x5BA0, 0xB3E9, 0x62BD, + 0xB3EA, 0x916C, 0xB3EB, 0x7574, 0xB3EC, 0x8E0C, 0xB3ED, 0x7A20, + 0xB3EE, 0x6101, 0xB3EF, 0x7B79, 0xB3F0, 0x4EC7, 0xB3F1, 0x7EF8, + 0xB3F2, 0x7785, 0xB3F3, 0x4E11, 0xB3F4, 0x81ED, 0xB3F5, 0x521D, + 0xB3F6, 0x51FA, 0xB3F7, 0x6A71, 0xB3F8, 0x53A8, 0xB3F9, 0x8E87, + 0xB3FA, 0x9504, 0xB3FB, 0x96CF, 0xB3FC, 0x6EC1, 0xB3FD, 0x9664, + 0xB3FE, 0x695A, 0xB440, 0x7884, 0xB441, 0x7885, 0xB442, 0x7886, + 0xB443, 0x7888, 0xB444, 0x788A, 0xB445, 0x788B, 0xB446, 0x788F, + 0xB447, 0x7890, 0xB448, 0x7892, 0xB449, 0x7894, 0xB44A, 0x7895, + 0xB44B, 0x7896, 0xB44C, 0x7899, 0xB44D, 0x789D, 0xB44E, 0x789E, + 0xB44F, 0x78A0, 0xB450, 0x78A2, 0xB451, 0x78A4, 0xB452, 0x78A6, + 0xB453, 0x78A8, 0xB454, 0x78A9, 0xB455, 0x78AA, 0xB456, 0x78AB, + 0xB457, 0x78AC, 0xB458, 0x78AD, 0xB459, 0x78AE, 0xB45A, 0x78AF, + 0xB45B, 0x78B5, 0xB45C, 0x78B6, 0xB45D, 0x78B7, 0xB45E, 0x78B8, + 0xB45F, 0x78BA, 0xB460, 0x78BB, 0xB461, 0x78BC, 0xB462, 0x78BD, + 0xB463, 0x78BF, 0xB464, 0x78C0, 0xB465, 0x78C2, 0xB466, 0x78C3, + 0xB467, 0x78C4, 0xB468, 0x78C6, 0xB469, 0x78C7, 0xB46A, 0x78C8, + 0xB46B, 0x78CC, 0xB46C, 0x78CD, 0xB46D, 0x78CE, 0xB46E, 0x78CF, + 0xB46F, 0x78D1, 0xB470, 0x78D2, 0xB471, 0x78D3, 0xB472, 0x78D6, + 0xB473, 0x78D7, 0xB474, 0x78D8, 0xB475, 0x78DA, 0xB476, 0x78DB, + 0xB477, 0x78DC, 0xB478, 0x78DD, 0xB479, 0x78DE, 0xB47A, 0x78DF, + 0xB47B, 0x78E0, 0xB47C, 0x78E1, 0xB47D, 0x78E2, 0xB47E, 0x78E3, + 0xB480, 0x78E4, 0xB481, 0x78E5, 0xB482, 0x78E6, 0xB483, 0x78E7, + 0xB484, 0x78E9, 0xB485, 0x78EA, 0xB486, 0x78EB, 0xB487, 0x78ED, + 0xB488, 0x78EE, 0xB489, 0x78EF, 0xB48A, 0x78F0, 0xB48B, 0x78F1, + 0xB48C, 0x78F3, 0xB48D, 0x78F5, 0xB48E, 0x78F6, 0xB48F, 0x78F8, + 0xB490, 0x78F9, 0xB491, 0x78FB, 0xB492, 0x78FC, 0xB493, 0x78FD, + 0xB494, 0x78FE, 0xB495, 0x78FF, 0xB496, 0x7900, 0xB497, 0x7902, + 0xB498, 0x7903, 0xB499, 0x7904, 0xB49A, 0x7906, 0xB49B, 0x7907, + 0xB49C, 0x7908, 0xB49D, 0x7909, 0xB49E, 0x790A, 0xB49F, 0x790B, + 0xB4A0, 0x790C, 0xB4A1, 0x7840, 0xB4A2, 0x50A8, 0xB4A3, 0x77D7, + 0xB4A4, 0x6410, 0xB4A5, 0x89E6, 0xB4A6, 0x5904, 0xB4A7, 0x63E3, + 0xB4A8, 0x5DDD, 0xB4A9, 0x7A7F, 0xB4AA, 0x693D, 0xB4AB, 0x4F20, + 0xB4AC, 0x8239, 0xB4AD, 0x5598, 0xB4AE, 0x4E32, 0xB4AF, 0x75AE, + 0xB4B0, 0x7A97, 0xB4B1, 0x5E62, 0xB4B2, 0x5E8A, 0xB4B3, 0x95EF, + 0xB4B4, 0x521B, 0xB4B5, 0x5439, 0xB4B6, 0x708A, 0xB4B7, 0x6376, + 0xB4B8, 0x9524, 0xB4B9, 0x5782, 0xB4BA, 0x6625, 0xB4BB, 0x693F, + 0xB4BC, 0x9187, 0xB4BD, 0x5507, 0xB4BE, 0x6DF3, 0xB4BF, 0x7EAF, + 0xB4C0, 0x8822, 0xB4C1, 0x6233, 0xB4C2, 0x7EF0, 0xB4C3, 0x75B5, + 0xB4C4, 0x8328, 0xB4C5, 0x78C1, 0xB4C6, 0x96CC, 0xB4C7, 0x8F9E, + 0xB4C8, 0x6148, 0xB4C9, 0x74F7, 0xB4CA, 0x8BCD, 0xB4CB, 0x6B64, + 0xB4CC, 0x523A, 0xB4CD, 0x8D50, 0xB4CE, 0x6B21, 0xB4CF, 0x806A, + 0xB4D0, 0x8471, 0xB4D1, 0x56F1, 0xB4D2, 0x5306, 0xB4D3, 0x4ECE, + 0xB4D4, 0x4E1B, 0xB4D5, 0x51D1, 0xB4D6, 0x7C97, 0xB4D7, 0x918B, + 0xB4D8, 0x7C07, 0xB4D9, 0x4FC3, 0xB4DA, 0x8E7F, 0xB4DB, 0x7BE1, + 0xB4DC, 0x7A9C, 0xB4DD, 0x6467, 0xB4DE, 0x5D14, 0xB4DF, 0x50AC, + 0xB4E0, 0x8106, 0xB4E1, 0x7601, 0xB4E2, 0x7CB9, 0xB4E3, 0x6DEC, + 0xB4E4, 0x7FE0, 0xB4E5, 0x6751, 0xB4E6, 0x5B58, 0xB4E7, 0x5BF8, + 0xB4E8, 0x78CB, 0xB4E9, 0x64AE, 0xB4EA, 0x6413, 0xB4EB, 0x63AA, + 0xB4EC, 0x632B, 0xB4ED, 0x9519, 0xB4EE, 0x642D, 0xB4EF, 0x8FBE, + 0xB4F0, 0x7B54, 0xB4F1, 0x7629, 0xB4F2, 0x6253, 0xB4F3, 0x5927, + 0xB4F4, 0x5446, 0xB4F5, 0x6B79, 0xB4F6, 0x50A3, 0xB4F7, 0x6234, + 0xB4F8, 0x5E26, 0xB4F9, 0x6B86, 0xB4FA, 0x4EE3, 0xB4FB, 0x8D37, + 0xB4FC, 0x888B, 0xB4FD, 0x5F85, 0xB4FE, 0x902E, 0xB540, 0x790D, + 0xB541, 0x790E, 0xB542, 0x790F, 0xB543, 0x7910, 0xB544, 0x7911, + 0xB545, 0x7912, 0xB546, 0x7914, 0xB547, 0x7915, 0xB548, 0x7916, + 0xB549, 0x7917, 0xB54A, 0x7918, 0xB54B, 0x7919, 0xB54C, 0x791A, + 0xB54D, 0x791B, 0xB54E, 0x791C, 0xB54F, 0x791D, 0xB550, 0x791F, + 0xB551, 0x7920, 0xB552, 0x7921, 0xB553, 0x7922, 0xB554, 0x7923, + 0xB555, 0x7925, 0xB556, 0x7926, 0xB557, 0x7927, 0xB558, 0x7928, + 0xB559, 0x7929, 0xB55A, 0x792A, 0xB55B, 0x792B, 0xB55C, 0x792C, + 0xB55D, 0x792D, 0xB55E, 0x792E, 0xB55F, 0x792F, 0xB560, 0x7930, + 0xB561, 0x7931, 0xB562, 0x7932, 0xB563, 0x7933, 0xB564, 0x7935, + 0xB565, 0x7936, 0xB566, 0x7937, 0xB567, 0x7938, 0xB568, 0x7939, + 0xB569, 0x793D, 0xB56A, 0x793F, 0xB56B, 0x7942, 0xB56C, 0x7943, + 0xB56D, 0x7944, 0xB56E, 0x7945, 0xB56F, 0x7947, 0xB570, 0x794A, + 0xB571, 0x794B, 0xB572, 0x794C, 0xB573, 0x794D, 0xB574, 0x794E, + 0xB575, 0x794F, 0xB576, 0x7950, 0xB577, 0x7951, 0xB578, 0x7952, + 0xB579, 0x7954, 0xB57A, 0x7955, 0xB57B, 0x7958, 0xB57C, 0x7959, + 0xB57D, 0x7961, 0xB57E, 0x7963, 0xB580, 0x7964, 0xB581, 0x7966, + 0xB582, 0x7969, 0xB583, 0x796A, 0xB584, 0x796B, 0xB585, 0x796C, + 0xB586, 0x796E, 0xB587, 0x7970, 0xB588, 0x7971, 0xB589, 0x7972, + 0xB58A, 0x7973, 0xB58B, 0x7974, 0xB58C, 0x7975, 0xB58D, 0x7976, + 0xB58E, 0x7979, 0xB58F, 0x797B, 0xB590, 0x797C, 0xB591, 0x797D, + 0xB592, 0x797E, 0xB593, 0x797F, 0xB594, 0x7982, 0xB595, 0x7983, + 0xB596, 0x7986, 0xB597, 0x7987, 0xB598, 0x7988, 0xB599, 0x7989, + 0xB59A, 0x798B, 0xB59B, 0x798C, 0xB59C, 0x798D, 0xB59D, 0x798E, + 0xB59E, 0x7990, 0xB59F, 0x7991, 0xB5A0, 0x7992, 0xB5A1, 0x6020, + 0xB5A2, 0x803D, 0xB5A3, 0x62C5, 0xB5A4, 0x4E39, 0xB5A5, 0x5355, + 0xB5A6, 0x90F8, 0xB5A7, 0x63B8, 0xB5A8, 0x80C6, 0xB5A9, 0x65E6, + 0xB5AA, 0x6C2E, 0xB5AB, 0x4F46, 0xB5AC, 0x60EE, 0xB5AD, 0x6DE1, + 0xB5AE, 0x8BDE, 0xB5AF, 0x5F39, 0xB5B0, 0x86CB, 0xB5B1, 0x5F53, + 0xB5B2, 0x6321, 0xB5B3, 0x515A, 0xB5B4, 0x8361, 0xB5B5, 0x6863, + 0xB5B6, 0x5200, 0xB5B7, 0x6363, 0xB5B8, 0x8E48, 0xB5B9, 0x5012, + 0xB5BA, 0x5C9B, 0xB5BB, 0x7977, 0xB5BC, 0x5BFC, 0xB5BD, 0x5230, + 0xB5BE, 0x7A3B, 0xB5BF, 0x60BC, 0xB5C0, 0x9053, 0xB5C1, 0x76D7, + 0xB5C2, 0x5FB7, 0xB5C3, 0x5F97, 0xB5C4, 0x7684, 0xB5C5, 0x8E6C, + 0xB5C6, 0x706F, 0xB5C7, 0x767B, 0xB5C8, 0x7B49, 0xB5C9, 0x77AA, + 0xB5CA, 0x51F3, 0xB5CB, 0x9093, 0xB5CC, 0x5824, 0xB5CD, 0x4F4E, + 0xB5CE, 0x6EF4, 0xB5CF, 0x8FEA, 0xB5D0, 0x654C, 0xB5D1, 0x7B1B, + 0xB5D2, 0x72C4, 0xB5D3, 0x6DA4, 0xB5D4, 0x7FDF, 0xB5D5, 0x5AE1, + 0xB5D6, 0x62B5, 0xB5D7, 0x5E95, 0xB5D8, 0x5730, 0xB5D9, 0x8482, + 0xB5DA, 0x7B2C, 0xB5DB, 0x5E1D, 0xB5DC, 0x5F1F, 0xB5DD, 0x9012, + 0xB5DE, 0x7F14, 0xB5DF, 0x98A0, 0xB5E0, 0x6382, 0xB5E1, 0x6EC7, + 0xB5E2, 0x7898, 0xB5E3, 0x70B9, 0xB5E4, 0x5178, 0xB5E5, 0x975B, + 0xB5E6, 0x57AB, 0xB5E7, 0x7535, 0xB5E8, 0x4F43, 0xB5E9, 0x7538, + 0xB5EA, 0x5E97, 0xB5EB, 0x60E6, 0xB5EC, 0x5960, 0xB5ED, 0x6DC0, + 0xB5EE, 0x6BBF, 0xB5EF, 0x7889, 0xB5F0, 0x53FC, 0xB5F1, 0x96D5, + 0xB5F2, 0x51CB, 0xB5F3, 0x5201, 0xB5F4, 0x6389, 0xB5F5, 0x540A, + 0xB5F6, 0x9493, 0xB5F7, 0x8C03, 0xB5F8, 0x8DCC, 0xB5F9, 0x7239, + 0xB5FA, 0x789F, 0xB5FB, 0x8776, 0xB5FC, 0x8FED, 0xB5FD, 0x8C0D, + 0xB5FE, 0x53E0, 0xB640, 0x7993, 0xB641, 0x7994, 0xB642, 0x7995, + 0xB643, 0x7996, 0xB644, 0x7997, 0xB645, 0x7998, 0xB646, 0x7999, + 0xB647, 0x799B, 0xB648, 0x799C, 0xB649, 0x799D, 0xB64A, 0x799E, + 0xB64B, 0x799F, 0xB64C, 0x79A0, 0xB64D, 0x79A1, 0xB64E, 0x79A2, + 0xB64F, 0x79A3, 0xB650, 0x79A4, 0xB651, 0x79A5, 0xB652, 0x79A6, + 0xB653, 0x79A8, 0xB654, 0x79A9, 0xB655, 0x79AA, 0xB656, 0x79AB, + 0xB657, 0x79AC, 0xB658, 0x79AD, 0xB659, 0x79AE, 0xB65A, 0x79AF, + 0xB65B, 0x79B0, 0xB65C, 0x79B1, 0xB65D, 0x79B2, 0xB65E, 0x79B4, + 0xB65F, 0x79B5, 0xB660, 0x79B6, 0xB661, 0x79B7, 0xB662, 0x79B8, + 0xB663, 0x79BC, 0xB664, 0x79BF, 0xB665, 0x79C2, 0xB666, 0x79C4, + 0xB667, 0x79C5, 0xB668, 0x79C7, 0xB669, 0x79C8, 0xB66A, 0x79CA, + 0xB66B, 0x79CC, 0xB66C, 0x79CE, 0xB66D, 0x79CF, 0xB66E, 0x79D0, + 0xB66F, 0x79D3, 0xB670, 0x79D4, 0xB671, 0x79D6, 0xB672, 0x79D7, + 0xB673, 0x79D9, 0xB674, 0x79DA, 0xB675, 0x79DB, 0xB676, 0x79DC, + 0xB677, 0x79DD, 0xB678, 0x79DE, 0xB679, 0x79E0, 0xB67A, 0x79E1, + 0xB67B, 0x79E2, 0xB67C, 0x79E5, 0xB67D, 0x79E8, 0xB67E, 0x79EA, + 0xB680, 0x79EC, 0xB681, 0x79EE, 0xB682, 0x79F1, 0xB683, 0x79F2, + 0xB684, 0x79F3, 0xB685, 0x79F4, 0xB686, 0x79F5, 0xB687, 0x79F6, + 0xB688, 0x79F7, 0xB689, 0x79F9, 0xB68A, 0x79FA, 0xB68B, 0x79FC, + 0xB68C, 0x79FE, 0xB68D, 0x79FF, 0xB68E, 0x7A01, 0xB68F, 0x7A04, + 0xB690, 0x7A05, 0xB691, 0x7A07, 0xB692, 0x7A08, 0xB693, 0x7A09, + 0xB694, 0x7A0A, 0xB695, 0x7A0C, 0xB696, 0x7A0F, 0xB697, 0x7A10, + 0xB698, 0x7A11, 0xB699, 0x7A12, 0xB69A, 0x7A13, 0xB69B, 0x7A15, + 0xB69C, 0x7A16, 0xB69D, 0x7A18, 0xB69E, 0x7A19, 0xB69F, 0x7A1B, + 0xB6A0, 0x7A1C, 0xB6A1, 0x4E01, 0xB6A2, 0x76EF, 0xB6A3, 0x53EE, + 0xB6A4, 0x9489, 0xB6A5, 0x9876, 0xB6A6, 0x9F0E, 0xB6A7, 0x952D, + 0xB6A8, 0x5B9A, 0xB6A9, 0x8BA2, 0xB6AA, 0x4E22, 0xB6AB, 0x4E1C, + 0xB6AC, 0x51AC, 0xB6AD, 0x8463, 0xB6AE, 0x61C2, 0xB6AF, 0x52A8, + 0xB6B0, 0x680B, 0xB6B1, 0x4F97, 0xB6B2, 0x606B, 0xB6B3, 0x51BB, + 0xB6B4, 0x6D1E, 0xB6B5, 0x515C, 0xB6B6, 0x6296, 0xB6B7, 0x6597, + 0xB6B8, 0x9661, 0xB6B9, 0x8C46, 0xB6BA, 0x9017, 0xB6BB, 0x75D8, + 0xB6BC, 0x90FD, 0xB6BD, 0x7763, 0xB6BE, 0x6BD2, 0xB6BF, 0x728A, + 0xB6C0, 0x72EC, 0xB6C1, 0x8BFB, 0xB6C2, 0x5835, 0xB6C3, 0x7779, + 0xB6C4, 0x8D4C, 0xB6C5, 0x675C, 0xB6C6, 0x9540, 0xB6C7, 0x809A, + 0xB6C8, 0x5EA6, 0xB6C9, 0x6E21, 0xB6CA, 0x5992, 0xB6CB, 0x7AEF, + 0xB6CC, 0x77ED, 0xB6CD, 0x953B, 0xB6CE, 0x6BB5, 0xB6CF, 0x65AD, + 0xB6D0, 0x7F0E, 0xB6D1, 0x5806, 0xB6D2, 0x5151, 0xB6D3, 0x961F, + 0xB6D4, 0x5BF9, 0xB6D5, 0x58A9, 0xB6D6, 0x5428, 0xB6D7, 0x8E72, + 0xB6D8, 0x6566, 0xB6D9, 0x987F, 0xB6DA, 0x56E4, 0xB6DB, 0x949D, + 0xB6DC, 0x76FE, 0xB6DD, 0x9041, 0xB6DE, 0x6387, 0xB6DF, 0x54C6, + 0xB6E0, 0x591A, 0xB6E1, 0x593A, 0xB6E2, 0x579B, 0xB6E3, 0x8EB2, + 0xB6E4, 0x6735, 0xB6E5, 0x8DFA, 0xB6E6, 0x8235, 0xB6E7, 0x5241, + 0xB6E8, 0x60F0, 0xB6E9, 0x5815, 0xB6EA, 0x86FE, 0xB6EB, 0x5CE8, + 0xB6EC, 0x9E45, 0xB6ED, 0x4FC4, 0xB6EE, 0x989D, 0xB6EF, 0x8BB9, + 0xB6F0, 0x5A25, 0xB6F1, 0x6076, 0xB6F2, 0x5384, 0xB6F3, 0x627C, + 0xB6F4, 0x904F, 0xB6F5, 0x9102, 0xB6F6, 0x997F, 0xB6F7, 0x6069, + 0xB6F8, 0x800C, 0xB6F9, 0x513F, 0xB6FA, 0x8033, 0xB6FB, 0x5C14, + 0xB6FC, 0x9975, 0xB6FD, 0x6D31, 0xB6FE, 0x4E8C, 0xB740, 0x7A1D, + 0xB741, 0x7A1F, 0xB742, 0x7A21, 0xB743, 0x7A22, 0xB744, 0x7A24, + 0xB745, 0x7A25, 0xB746, 0x7A26, 0xB747, 0x7A27, 0xB748, 0x7A28, + 0xB749, 0x7A29, 0xB74A, 0x7A2A, 0xB74B, 0x7A2B, 0xB74C, 0x7A2C, + 0xB74D, 0x7A2D, 0xB74E, 0x7A2E, 0xB74F, 0x7A2F, 0xB750, 0x7A30, + 0xB751, 0x7A31, 0xB752, 0x7A32, 0xB753, 0x7A34, 0xB754, 0x7A35, + 0xB755, 0x7A36, 0xB756, 0x7A38, 0xB757, 0x7A3A, 0xB758, 0x7A3E, + 0xB759, 0x7A40, 0xB75A, 0x7A41, 0xB75B, 0x7A42, 0xB75C, 0x7A43, + 0xB75D, 0x7A44, 0xB75E, 0x7A45, 0xB75F, 0x7A47, 0xB760, 0x7A48, + 0xB761, 0x7A49, 0xB762, 0x7A4A, 0xB763, 0x7A4B, 0xB764, 0x7A4C, + 0xB765, 0x7A4D, 0xB766, 0x7A4E, 0xB767, 0x7A4F, 0xB768, 0x7A50, + 0xB769, 0x7A52, 0xB76A, 0x7A53, 0xB76B, 0x7A54, 0xB76C, 0x7A55, + 0xB76D, 0x7A56, 0xB76E, 0x7A58, 0xB76F, 0x7A59, 0xB770, 0x7A5A, + 0xB771, 0x7A5B, 0xB772, 0x7A5C, 0xB773, 0x7A5D, 0xB774, 0x7A5E, + 0xB775, 0x7A5F, 0xB776, 0x7A60, 0xB777, 0x7A61, 0xB778, 0x7A62, + 0xB779, 0x7A63, 0xB77A, 0x7A64, 0xB77B, 0x7A65, 0xB77C, 0x7A66, + 0xB77D, 0x7A67, 0xB77E, 0x7A68, 0xB780, 0x7A69, 0xB781, 0x7A6A, + 0xB782, 0x7A6B, 0xB783, 0x7A6C, 0xB784, 0x7A6D, 0xB785, 0x7A6E, + 0xB786, 0x7A6F, 0xB787, 0x7A71, 0xB788, 0x7A72, 0xB789, 0x7A73, + 0xB78A, 0x7A75, 0xB78B, 0x7A7B, 0xB78C, 0x7A7C, 0xB78D, 0x7A7D, + 0xB78E, 0x7A7E, 0xB78F, 0x7A82, 0xB790, 0x7A85, 0xB791, 0x7A87, + 0xB792, 0x7A89, 0xB793, 0x7A8A, 0xB794, 0x7A8B, 0xB795, 0x7A8C, + 0xB796, 0x7A8E, 0xB797, 0x7A8F, 0xB798, 0x7A90, 0xB799, 0x7A93, + 0xB79A, 0x7A94, 0xB79B, 0x7A99, 0xB79C, 0x7A9A, 0xB79D, 0x7A9B, + 0xB79E, 0x7A9E, 0xB79F, 0x7AA1, 0xB7A0, 0x7AA2, 0xB7A1, 0x8D30, + 0xB7A2, 0x53D1, 0xB7A3, 0x7F5A, 0xB7A4, 0x7B4F, 0xB7A5, 0x4F10, + 0xB7A6, 0x4E4F, 0xB7A7, 0x9600, 0xB7A8, 0x6CD5, 0xB7A9, 0x73D0, + 0xB7AA, 0x85E9, 0xB7AB, 0x5E06, 0xB7AC, 0x756A, 0xB7AD, 0x7FFB, + 0xB7AE, 0x6A0A, 0xB7AF, 0x77FE, 0xB7B0, 0x9492, 0xB7B1, 0x7E41, + 0xB7B2, 0x51E1, 0xB7B3, 0x70E6, 0xB7B4, 0x53CD, 0xB7B5, 0x8FD4, + 0xB7B6, 0x8303, 0xB7B7, 0x8D29, 0xB7B8, 0x72AF, 0xB7B9, 0x996D, + 0xB7BA, 0x6CDB, 0xB7BB, 0x574A, 0xB7BC, 0x82B3, 0xB7BD, 0x65B9, + 0xB7BE, 0x80AA, 0xB7BF, 0x623F, 0xB7C0, 0x9632, 0xB7C1, 0x59A8, + 0xB7C2, 0x4EFF, 0xB7C3, 0x8BBF, 0xB7C4, 0x7EBA, 0xB7C5, 0x653E, + 0xB7C6, 0x83F2, 0xB7C7, 0x975E, 0xB7C8, 0x5561, 0xB7C9, 0x98DE, + 0xB7CA, 0x80A5, 0xB7CB, 0x532A, 0xB7CC, 0x8BFD, 0xB7CD, 0x5420, + 0xB7CE, 0x80BA, 0xB7CF, 0x5E9F, 0xB7D0, 0x6CB8, 0xB7D1, 0x8D39, + 0xB7D2, 0x82AC, 0xB7D3, 0x915A, 0xB7D4, 0x5429, 0xB7D5, 0x6C1B, + 0xB7D6, 0x5206, 0xB7D7, 0x7EB7, 0xB7D8, 0x575F, 0xB7D9, 0x711A, + 0xB7DA, 0x6C7E, 0xB7DB, 0x7C89, 0xB7DC, 0x594B, 0xB7DD, 0x4EFD, + 0xB7DE, 0x5FFF, 0xB7DF, 0x6124, 0xB7E0, 0x7CAA, 0xB7E1, 0x4E30, + 0xB7E2, 0x5C01, 0xB7E3, 0x67AB, 0xB7E4, 0x8702, 0xB7E5, 0x5CF0, + 0xB7E6, 0x950B, 0xB7E7, 0x98CE, 0xB7E8, 0x75AF, 0xB7E9, 0x70FD, + 0xB7EA, 0x9022, 0xB7EB, 0x51AF, 0xB7EC, 0x7F1D, 0xB7ED, 0x8BBD, + 0xB7EE, 0x5949, 0xB7EF, 0x51E4, 0xB7F0, 0x4F5B, 0xB7F1, 0x5426, + 0xB7F2, 0x592B, 0xB7F3, 0x6577, 0xB7F4, 0x80A4, 0xB7F5, 0x5B75, + 0xB7F6, 0x6276, 0xB7F7, 0x62C2, 0xB7F8, 0x8F90, 0xB7F9, 0x5E45, + 0xB7FA, 0x6C1F, 0xB7FB, 0x7B26, 0xB7FC, 0x4F0F, 0xB7FD, 0x4FD8, + 0xB7FE, 0x670D, 0xB840, 0x7AA3, 0xB841, 0x7AA4, 0xB842, 0x7AA7, + 0xB843, 0x7AA9, 0xB844, 0x7AAA, 0xB845, 0x7AAB, 0xB846, 0x7AAE, + 0xB847, 0x7AAF, 0xB848, 0x7AB0, 0xB849, 0x7AB1, 0xB84A, 0x7AB2, + 0xB84B, 0x7AB4, 0xB84C, 0x7AB5, 0xB84D, 0x7AB6, 0xB84E, 0x7AB7, + 0xB84F, 0x7AB8, 0xB850, 0x7AB9, 0xB851, 0x7ABA, 0xB852, 0x7ABB, + 0xB853, 0x7ABC, 0xB854, 0x7ABD, 0xB855, 0x7ABE, 0xB856, 0x7AC0, + 0xB857, 0x7AC1, 0xB858, 0x7AC2, 0xB859, 0x7AC3, 0xB85A, 0x7AC4, + 0xB85B, 0x7AC5, 0xB85C, 0x7AC6, 0xB85D, 0x7AC7, 0xB85E, 0x7AC8, + 0xB85F, 0x7AC9, 0xB860, 0x7ACA, 0xB861, 0x7ACC, 0xB862, 0x7ACD, + 0xB863, 0x7ACE, 0xB864, 0x7ACF, 0xB865, 0x7AD0, 0xB866, 0x7AD1, + 0xB867, 0x7AD2, 0xB868, 0x7AD3, 0xB869, 0x7AD4, 0xB86A, 0x7AD5, + 0xB86B, 0x7AD7, 0xB86C, 0x7AD8, 0xB86D, 0x7ADA, 0xB86E, 0x7ADB, + 0xB86F, 0x7ADC, 0xB870, 0x7ADD, 0xB871, 0x7AE1, 0xB872, 0x7AE2, + 0xB873, 0x7AE4, 0xB874, 0x7AE7, 0xB875, 0x7AE8, 0xB876, 0x7AE9, + 0xB877, 0x7AEA, 0xB878, 0x7AEB, 0xB879, 0x7AEC, 0xB87A, 0x7AEE, + 0xB87B, 0x7AF0, 0xB87C, 0x7AF1, 0xB87D, 0x7AF2, 0xB87E, 0x7AF3, + 0xB880, 0x7AF4, 0xB881, 0x7AF5, 0xB882, 0x7AF6, 0xB883, 0x7AF7, + 0xB884, 0x7AF8, 0xB885, 0x7AFB, 0xB886, 0x7AFC, 0xB887, 0x7AFE, + 0xB888, 0x7B00, 0xB889, 0x7B01, 0xB88A, 0x7B02, 0xB88B, 0x7B05, + 0xB88C, 0x7B07, 0xB88D, 0x7B09, 0xB88E, 0x7B0C, 0xB88F, 0x7B0D, + 0xB890, 0x7B0E, 0xB891, 0x7B10, 0xB892, 0x7B12, 0xB893, 0x7B13, + 0xB894, 0x7B16, 0xB895, 0x7B17, 0xB896, 0x7B18, 0xB897, 0x7B1A, + 0xB898, 0x7B1C, 0xB899, 0x7B1D, 0xB89A, 0x7B1F, 0xB89B, 0x7B21, + 0xB89C, 0x7B22, 0xB89D, 0x7B23, 0xB89E, 0x7B27, 0xB89F, 0x7B29, + 0xB8A0, 0x7B2D, 0xB8A1, 0x6D6E, 0xB8A2, 0x6DAA, 0xB8A3, 0x798F, + 0xB8A4, 0x88B1, 0xB8A5, 0x5F17, 0xB8A6, 0x752B, 0xB8A7, 0x629A, + 0xB8A8, 0x8F85, 0xB8A9, 0x4FEF, 0xB8AA, 0x91DC, 0xB8AB, 0x65A7, + 0xB8AC, 0x812F, 0xB8AD, 0x8151, 0xB8AE, 0x5E9C, 0xB8AF, 0x8150, + 0xB8B0, 0x8D74, 0xB8B1, 0x526F, 0xB8B2, 0x8986, 0xB8B3, 0x8D4B, + 0xB8B4, 0x590D, 0xB8B5, 0x5085, 0xB8B6, 0x4ED8, 0xB8B7, 0x961C, + 0xB8B8, 0x7236, 0xB8B9, 0x8179, 0xB8BA, 0x8D1F, 0xB8BB, 0x5BCC, + 0xB8BC, 0x8BA3, 0xB8BD, 0x9644, 0xB8BE, 0x5987, 0xB8BF, 0x7F1A, + 0xB8C0, 0x5490, 0xB8C1, 0x5676, 0xB8C2, 0x560E, 0xB8C3, 0x8BE5, + 0xB8C4, 0x6539, 0xB8C5, 0x6982, 0xB8C6, 0x9499, 0xB8C7, 0x76D6, + 0xB8C8, 0x6E89, 0xB8C9, 0x5E72, 0xB8CA, 0x7518, 0xB8CB, 0x6746, + 0xB8CC, 0x67D1, 0xB8CD, 0x7AFF, 0xB8CE, 0x809D, 0xB8CF, 0x8D76, + 0xB8D0, 0x611F, 0xB8D1, 0x79C6, 0xB8D2, 0x6562, 0xB8D3, 0x8D63, + 0xB8D4, 0x5188, 0xB8D5, 0x521A, 0xB8D6, 0x94A2, 0xB8D7, 0x7F38, + 0xB8D8, 0x809B, 0xB8D9, 0x7EB2, 0xB8DA, 0x5C97, 0xB8DB, 0x6E2F, + 0xB8DC, 0x6760, 0xB8DD, 0x7BD9, 0xB8DE, 0x768B, 0xB8DF, 0x9AD8, + 0xB8E0, 0x818F, 0xB8E1, 0x7F94, 0xB8E2, 0x7CD5, 0xB8E3, 0x641E, + 0xB8E4, 0x9550, 0xB8E5, 0x7A3F, 0xB8E6, 0x544A, 0xB8E7, 0x54E5, + 0xB8E8, 0x6B4C, 0xB8E9, 0x6401, 0xB8EA, 0x6208, 0xB8EB, 0x9E3D, + 0xB8EC, 0x80F3, 0xB8ED, 0x7599, 0xB8EE, 0x5272, 0xB8EF, 0x9769, + 0xB8F0, 0x845B, 0xB8F1, 0x683C, 0xB8F2, 0x86E4, 0xB8F3, 0x9601, + 0xB8F4, 0x9694, 0xB8F5, 0x94EC, 0xB8F6, 0x4E2A, 0xB8F7, 0x5404, + 0xB8F8, 0x7ED9, 0xB8F9, 0x6839, 0xB8FA, 0x8DDF, 0xB8FB, 0x8015, + 0xB8FC, 0x66F4, 0xB8FD, 0x5E9A, 0xB8FE, 0x7FB9, 0xB940, 0x7B2F, + 0xB941, 0x7B30, 0xB942, 0x7B32, 0xB943, 0x7B34, 0xB944, 0x7B35, + 0xB945, 0x7B36, 0xB946, 0x7B37, 0xB947, 0x7B39, 0xB948, 0x7B3B, + 0xB949, 0x7B3D, 0xB94A, 0x7B3F, 0xB94B, 0x7B40, 0xB94C, 0x7B41, + 0xB94D, 0x7B42, 0xB94E, 0x7B43, 0xB94F, 0x7B44, 0xB950, 0x7B46, + 0xB951, 0x7B48, 0xB952, 0x7B4A, 0xB953, 0x7B4D, 0xB954, 0x7B4E, + 0xB955, 0x7B53, 0xB956, 0x7B55, 0xB957, 0x7B57, 0xB958, 0x7B59, + 0xB959, 0x7B5C, 0xB95A, 0x7B5E, 0xB95B, 0x7B5F, 0xB95C, 0x7B61, + 0xB95D, 0x7B63, 0xB95E, 0x7B64, 0xB95F, 0x7B65, 0xB960, 0x7B66, + 0xB961, 0x7B67, 0xB962, 0x7B68, 0xB963, 0x7B69, 0xB964, 0x7B6A, + 0xB965, 0x7B6B, 0xB966, 0x7B6C, 0xB967, 0x7B6D, 0xB968, 0x7B6F, + 0xB969, 0x7B70, 0xB96A, 0x7B73, 0xB96B, 0x7B74, 0xB96C, 0x7B76, + 0xB96D, 0x7B78, 0xB96E, 0x7B7A, 0xB96F, 0x7B7C, 0xB970, 0x7B7D, + 0xB971, 0x7B7F, 0xB972, 0x7B81, 0xB973, 0x7B82, 0xB974, 0x7B83, + 0xB975, 0x7B84, 0xB976, 0x7B86, 0xB977, 0x7B87, 0xB978, 0x7B88, + 0xB979, 0x7B89, 0xB97A, 0x7B8A, 0xB97B, 0x7B8B, 0xB97C, 0x7B8C, + 0xB97D, 0x7B8E, 0xB97E, 0x7B8F, 0xB980, 0x7B91, 0xB981, 0x7B92, + 0xB982, 0x7B93, 0xB983, 0x7B96, 0xB984, 0x7B98, 0xB985, 0x7B99, + 0xB986, 0x7B9A, 0xB987, 0x7B9B, 0xB988, 0x7B9E, 0xB989, 0x7B9F, + 0xB98A, 0x7BA0, 0xB98B, 0x7BA3, 0xB98C, 0x7BA4, 0xB98D, 0x7BA5, + 0xB98E, 0x7BAE, 0xB98F, 0x7BAF, 0xB990, 0x7BB0, 0xB991, 0x7BB2, + 0xB992, 0x7BB3, 0xB993, 0x7BB5, 0xB994, 0x7BB6, 0xB995, 0x7BB7, + 0xB996, 0x7BB9, 0xB997, 0x7BBA, 0xB998, 0x7BBB, 0xB999, 0x7BBC, + 0xB99A, 0x7BBD, 0xB99B, 0x7BBE, 0xB99C, 0x7BBF, 0xB99D, 0x7BC0, + 0xB99E, 0x7BC2, 0xB99F, 0x7BC3, 0xB9A0, 0x7BC4, 0xB9A1, 0x57C2, + 0xB9A2, 0x803F, 0xB9A3, 0x6897, 0xB9A4, 0x5DE5, 0xB9A5, 0x653B, + 0xB9A6, 0x529F, 0xB9A7, 0x606D, 0xB9A8, 0x9F9A, 0xB9A9, 0x4F9B, + 0xB9AA, 0x8EAC, 0xB9AB, 0x516C, 0xB9AC, 0x5BAB, 0xB9AD, 0x5F13, + 0xB9AE, 0x5DE9, 0xB9AF, 0x6C5E, 0xB9B0, 0x62F1, 0xB9B1, 0x8D21, + 0xB9B2, 0x5171, 0xB9B3, 0x94A9, 0xB9B4, 0x52FE, 0xB9B5, 0x6C9F, + 0xB9B6, 0x82DF, 0xB9B7, 0x72D7, 0xB9B8, 0x57A2, 0xB9B9, 0x6784, + 0xB9BA, 0x8D2D, 0xB9BB, 0x591F, 0xB9BC, 0x8F9C, 0xB9BD, 0x83C7, + 0xB9BE, 0x5495, 0xB9BF, 0x7B8D, 0xB9C0, 0x4F30, 0xB9C1, 0x6CBD, + 0xB9C2, 0x5B64, 0xB9C3, 0x59D1, 0xB9C4, 0x9F13, 0xB9C5, 0x53E4, + 0xB9C6, 0x86CA, 0xB9C7, 0x9AA8, 0xB9C8, 0x8C37, 0xB9C9, 0x80A1, + 0xB9CA, 0x6545, 0xB9CB, 0x987E, 0xB9CC, 0x56FA, 0xB9CD, 0x96C7, + 0xB9CE, 0x522E, 0xB9CF, 0x74DC, 0xB9D0, 0x5250, 0xB9D1, 0x5BE1, + 0xB9D2, 0x6302, 0xB9D3, 0x8902, 0xB9D4, 0x4E56, 0xB9D5, 0x62D0, + 0xB9D6, 0x602A, 0xB9D7, 0x68FA, 0xB9D8, 0x5173, 0xB9D9, 0x5B98, + 0xB9DA, 0x51A0, 0xB9DB, 0x89C2, 0xB9DC, 0x7BA1, 0xB9DD, 0x9986, + 0xB9DE, 0x7F50, 0xB9DF, 0x60EF, 0xB9E0, 0x704C, 0xB9E1, 0x8D2F, + 0xB9E2, 0x5149, 0xB9E3, 0x5E7F, 0xB9E4, 0x901B, 0xB9E5, 0x7470, + 0xB9E6, 0x89C4, 0xB9E7, 0x572D, 0xB9E8, 0x7845, 0xB9E9, 0x5F52, + 0xB9EA, 0x9F9F, 0xB9EB, 0x95FA, 0xB9EC, 0x8F68, 0xB9ED, 0x9B3C, + 0xB9EE, 0x8BE1, 0xB9EF, 0x7678, 0xB9F0, 0x6842, 0xB9F1, 0x67DC, + 0xB9F2, 0x8DEA, 0xB9F3, 0x8D35, 0xB9F4, 0x523D, 0xB9F5, 0x8F8A, + 0xB9F6, 0x6EDA, 0xB9F7, 0x68CD, 0xB9F8, 0x9505, 0xB9F9, 0x90ED, + 0xB9FA, 0x56FD, 0xB9FB, 0x679C, 0xB9FC, 0x88F9, 0xB9FD, 0x8FC7, + 0xB9FE, 0x54C8, 0xBA40, 0x7BC5, 0xBA41, 0x7BC8, 0xBA42, 0x7BC9, + 0xBA43, 0x7BCA, 0xBA44, 0x7BCB, 0xBA45, 0x7BCD, 0xBA46, 0x7BCE, + 0xBA47, 0x7BCF, 0xBA48, 0x7BD0, 0xBA49, 0x7BD2, 0xBA4A, 0x7BD4, + 0xBA4B, 0x7BD5, 0xBA4C, 0x7BD6, 0xBA4D, 0x7BD7, 0xBA4E, 0x7BD8, + 0xBA4F, 0x7BDB, 0xBA50, 0x7BDC, 0xBA51, 0x7BDE, 0xBA52, 0x7BDF, + 0xBA53, 0x7BE0, 0xBA54, 0x7BE2, 0xBA55, 0x7BE3, 0xBA56, 0x7BE4, + 0xBA57, 0x7BE7, 0xBA58, 0x7BE8, 0xBA59, 0x7BE9, 0xBA5A, 0x7BEB, + 0xBA5B, 0x7BEC, 0xBA5C, 0x7BED, 0xBA5D, 0x7BEF, 0xBA5E, 0x7BF0, + 0xBA5F, 0x7BF2, 0xBA60, 0x7BF3, 0xBA61, 0x7BF4, 0xBA62, 0x7BF5, + 0xBA63, 0x7BF6, 0xBA64, 0x7BF8, 0xBA65, 0x7BF9, 0xBA66, 0x7BFA, + 0xBA67, 0x7BFB, 0xBA68, 0x7BFD, 0xBA69, 0x7BFF, 0xBA6A, 0x7C00, + 0xBA6B, 0x7C01, 0xBA6C, 0x7C02, 0xBA6D, 0x7C03, 0xBA6E, 0x7C04, + 0xBA6F, 0x7C05, 0xBA70, 0x7C06, 0xBA71, 0x7C08, 0xBA72, 0x7C09, + 0xBA73, 0x7C0A, 0xBA74, 0x7C0D, 0xBA75, 0x7C0E, 0xBA76, 0x7C10, + 0xBA77, 0x7C11, 0xBA78, 0x7C12, 0xBA79, 0x7C13, 0xBA7A, 0x7C14, + 0xBA7B, 0x7C15, 0xBA7C, 0x7C17, 0xBA7D, 0x7C18, 0xBA7E, 0x7C19, + 0xBA80, 0x7C1A, 0xBA81, 0x7C1B, 0xBA82, 0x7C1C, 0xBA83, 0x7C1D, + 0xBA84, 0x7C1E, 0xBA85, 0x7C20, 0xBA86, 0x7C21, 0xBA87, 0x7C22, + 0xBA88, 0x7C23, 0xBA89, 0x7C24, 0xBA8A, 0x7C25, 0xBA8B, 0x7C28, + 0xBA8C, 0x7C29, 0xBA8D, 0x7C2B, 0xBA8E, 0x7C2C, 0xBA8F, 0x7C2D, + 0xBA90, 0x7C2E, 0xBA91, 0x7C2F, 0xBA92, 0x7C30, 0xBA93, 0x7C31, + 0xBA94, 0x7C32, 0xBA95, 0x7C33, 0xBA96, 0x7C34, 0xBA97, 0x7C35, + 0xBA98, 0x7C36, 0xBA99, 0x7C37, 0xBA9A, 0x7C39, 0xBA9B, 0x7C3A, + 0xBA9C, 0x7C3B, 0xBA9D, 0x7C3C, 0xBA9E, 0x7C3D, 0xBA9F, 0x7C3E, + 0xBAA0, 0x7C42, 0xBAA1, 0x9AB8, 0xBAA2, 0x5B69, 0xBAA3, 0x6D77, + 0xBAA4, 0x6C26, 0xBAA5, 0x4EA5, 0xBAA6, 0x5BB3, 0xBAA7, 0x9A87, + 0xBAA8, 0x9163, 0xBAA9, 0x61A8, 0xBAAA, 0x90AF, 0xBAAB, 0x97E9, + 0xBAAC, 0x542B, 0xBAAD, 0x6DB5, 0xBAAE, 0x5BD2, 0xBAAF, 0x51FD, + 0xBAB0, 0x558A, 0xBAB1, 0x7F55, 0xBAB2, 0x7FF0, 0xBAB3, 0x64BC, + 0xBAB4, 0x634D, 0xBAB5, 0x65F1, 0xBAB6, 0x61BE, 0xBAB7, 0x608D, + 0xBAB8, 0x710A, 0xBAB9, 0x6C57, 0xBABA, 0x6C49, 0xBABB, 0x592F, + 0xBABC, 0x676D, 0xBABD, 0x822A, 0xBABE, 0x58D5, 0xBABF, 0x568E, + 0xBAC0, 0x8C6A, 0xBAC1, 0x6BEB, 0xBAC2, 0x90DD, 0xBAC3, 0x597D, + 0xBAC4, 0x8017, 0xBAC5, 0x53F7, 0xBAC6, 0x6D69, 0xBAC7, 0x5475, + 0xBAC8, 0x559D, 0xBAC9, 0x8377, 0xBACA, 0x83CF, 0xBACB, 0x6838, + 0xBACC, 0x79BE, 0xBACD, 0x548C, 0xBACE, 0x4F55, 0xBACF, 0x5408, + 0xBAD0, 0x76D2, 0xBAD1, 0x8C89, 0xBAD2, 0x9602, 0xBAD3, 0x6CB3, + 0xBAD4, 0x6DB8, 0xBAD5, 0x8D6B, 0xBAD6, 0x8910, 0xBAD7, 0x9E64, + 0xBAD8, 0x8D3A, 0xBAD9, 0x563F, 0xBADA, 0x9ED1, 0xBADB, 0x75D5, + 0xBADC, 0x5F88, 0xBADD, 0x72E0, 0xBADE, 0x6068, 0xBADF, 0x54FC, + 0xBAE0, 0x4EA8, 0xBAE1, 0x6A2A, 0xBAE2, 0x8861, 0xBAE3, 0x6052, + 0xBAE4, 0x8F70, 0xBAE5, 0x54C4, 0xBAE6, 0x70D8, 0xBAE7, 0x8679, + 0xBAE8, 0x9E3F, 0xBAE9, 0x6D2A, 0xBAEA, 0x5B8F, 0xBAEB, 0x5F18, + 0xBAEC, 0x7EA2, 0xBAED, 0x5589, 0xBAEE, 0x4FAF, 0xBAEF, 0x7334, + 0xBAF0, 0x543C, 0xBAF1, 0x539A, 0xBAF2, 0x5019, 0xBAF3, 0x540E, + 0xBAF4, 0x547C, 0xBAF5, 0x4E4E, 0xBAF6, 0x5FFD, 0xBAF7, 0x745A, + 0xBAF8, 0x58F6, 0xBAF9, 0x846B, 0xBAFA, 0x80E1, 0xBAFB, 0x8774, + 0xBAFC, 0x72D0, 0xBAFD, 0x7CCA, 0xBAFE, 0x6E56, 0xBB40, 0x7C43, + 0xBB41, 0x7C44, 0xBB42, 0x7C45, 0xBB43, 0x7C46, 0xBB44, 0x7C47, + 0xBB45, 0x7C48, 0xBB46, 0x7C49, 0xBB47, 0x7C4A, 0xBB48, 0x7C4B, + 0xBB49, 0x7C4C, 0xBB4A, 0x7C4E, 0xBB4B, 0x7C4F, 0xBB4C, 0x7C50, + 0xBB4D, 0x7C51, 0xBB4E, 0x7C52, 0xBB4F, 0x7C53, 0xBB50, 0x7C54, + 0xBB51, 0x7C55, 0xBB52, 0x7C56, 0xBB53, 0x7C57, 0xBB54, 0x7C58, + 0xBB55, 0x7C59, 0xBB56, 0x7C5A, 0xBB57, 0x7C5B, 0xBB58, 0x7C5C, + 0xBB59, 0x7C5D, 0xBB5A, 0x7C5E, 0xBB5B, 0x7C5F, 0xBB5C, 0x7C60, + 0xBB5D, 0x7C61, 0xBB5E, 0x7C62, 0xBB5F, 0x7C63, 0xBB60, 0x7C64, + 0xBB61, 0x7C65, 0xBB62, 0x7C66, 0xBB63, 0x7C67, 0xBB64, 0x7C68, + 0xBB65, 0x7C69, 0xBB66, 0x7C6A, 0xBB67, 0x7C6B, 0xBB68, 0x7C6C, + 0xBB69, 0x7C6D, 0xBB6A, 0x7C6E, 0xBB6B, 0x7C6F, 0xBB6C, 0x7C70, + 0xBB6D, 0x7C71, 0xBB6E, 0x7C72, 0xBB6F, 0x7C75, 0xBB70, 0x7C76, + 0xBB71, 0x7C77, 0xBB72, 0x7C78, 0xBB73, 0x7C79, 0xBB74, 0x7C7A, + 0xBB75, 0x7C7E, 0xBB76, 0x7C7F, 0xBB77, 0x7C80, 0xBB78, 0x7C81, + 0xBB79, 0x7C82, 0xBB7A, 0x7C83, 0xBB7B, 0x7C84, 0xBB7C, 0x7C85, + 0xBB7D, 0x7C86, 0xBB7E, 0x7C87, 0xBB80, 0x7C88, 0xBB81, 0x7C8A, + 0xBB82, 0x7C8B, 0xBB83, 0x7C8C, 0xBB84, 0x7C8D, 0xBB85, 0x7C8E, + 0xBB86, 0x7C8F, 0xBB87, 0x7C90, 0xBB88, 0x7C93, 0xBB89, 0x7C94, + 0xBB8A, 0x7C96, 0xBB8B, 0x7C99, 0xBB8C, 0x7C9A, 0xBB8D, 0x7C9B, + 0xBB8E, 0x7CA0, 0xBB8F, 0x7CA1, 0xBB90, 0x7CA3, 0xBB91, 0x7CA6, + 0xBB92, 0x7CA7, 0xBB93, 0x7CA8, 0xBB94, 0x7CA9, 0xBB95, 0x7CAB, + 0xBB96, 0x7CAC, 0xBB97, 0x7CAD, 0xBB98, 0x7CAF, 0xBB99, 0x7CB0, + 0xBB9A, 0x7CB4, 0xBB9B, 0x7CB5, 0xBB9C, 0x7CB6, 0xBB9D, 0x7CB7, + 0xBB9E, 0x7CB8, 0xBB9F, 0x7CBA, 0xBBA0, 0x7CBB, 0xBBA1, 0x5F27, + 0xBBA2, 0x864E, 0xBBA3, 0x552C, 0xBBA4, 0x62A4, 0xBBA5, 0x4E92, + 0xBBA6, 0x6CAA, 0xBBA7, 0x6237, 0xBBA8, 0x82B1, 0xBBA9, 0x54D7, + 0xBBAA, 0x534E, 0xBBAB, 0x733E, 0xBBAC, 0x6ED1, 0xBBAD, 0x753B, + 0xBBAE, 0x5212, 0xBBAF, 0x5316, 0xBBB0, 0x8BDD, 0xBBB1, 0x69D0, + 0xBBB2, 0x5F8A, 0xBBB3, 0x6000, 0xBBB4, 0x6DEE, 0xBBB5, 0x574F, + 0xBBB6, 0x6B22, 0xBBB7, 0x73AF, 0xBBB8, 0x6853, 0xBBB9, 0x8FD8, + 0xBBBA, 0x7F13, 0xBBBB, 0x6362, 0xBBBC, 0x60A3, 0xBBBD, 0x5524, + 0xBBBE, 0x75EA, 0xBBBF, 0x8C62, 0xBBC0, 0x7115, 0xBBC1, 0x6DA3, + 0xBBC2, 0x5BA6, 0xBBC3, 0x5E7B, 0xBBC4, 0x8352, 0xBBC5, 0x614C, + 0xBBC6, 0x9EC4, 0xBBC7, 0x78FA, 0xBBC8, 0x8757, 0xBBC9, 0x7C27, + 0xBBCA, 0x7687, 0xBBCB, 0x51F0, 0xBBCC, 0x60F6, 0xBBCD, 0x714C, + 0xBBCE, 0x6643, 0xBBCF, 0x5E4C, 0xBBD0, 0x604D, 0xBBD1, 0x8C0E, + 0xBBD2, 0x7070, 0xBBD3, 0x6325, 0xBBD4, 0x8F89, 0xBBD5, 0x5FBD, + 0xBBD6, 0x6062, 0xBBD7, 0x86D4, 0xBBD8, 0x56DE, 0xBBD9, 0x6BC1, + 0xBBDA, 0x6094, 0xBBDB, 0x6167, 0xBBDC, 0x5349, 0xBBDD, 0x60E0, + 0xBBDE, 0x6666, 0xBBDF, 0x8D3F, 0xBBE0, 0x79FD, 0xBBE1, 0x4F1A, + 0xBBE2, 0x70E9, 0xBBE3, 0x6C47, 0xBBE4, 0x8BB3, 0xBBE5, 0x8BF2, + 0xBBE6, 0x7ED8, 0xBBE7, 0x8364, 0xBBE8, 0x660F, 0xBBE9, 0x5A5A, + 0xBBEA, 0x9B42, 0xBBEB, 0x6D51, 0xBBEC, 0x6DF7, 0xBBED, 0x8C41, + 0xBBEE, 0x6D3B, 0xBBEF, 0x4F19, 0xBBF0, 0x706B, 0xBBF1, 0x83B7, + 0xBBF2, 0x6216, 0xBBF3, 0x60D1, 0xBBF4, 0x970D, 0xBBF5, 0x8D27, + 0xBBF6, 0x7978, 0xBBF7, 0x51FB, 0xBBF8, 0x573E, 0xBBF9, 0x57FA, + 0xBBFA, 0x673A, 0xBBFB, 0x7578, 0xBBFC, 0x7A3D, 0xBBFD, 0x79EF, + 0xBBFE, 0x7B95, 0xBC40, 0x7CBF, 0xBC41, 0x7CC0, 0xBC42, 0x7CC2, + 0xBC43, 0x7CC3, 0xBC44, 0x7CC4, 0xBC45, 0x7CC6, 0xBC46, 0x7CC9, + 0xBC47, 0x7CCB, 0xBC48, 0x7CCE, 0xBC49, 0x7CCF, 0xBC4A, 0x7CD0, + 0xBC4B, 0x7CD1, 0xBC4C, 0x7CD2, 0xBC4D, 0x7CD3, 0xBC4E, 0x7CD4, + 0xBC4F, 0x7CD8, 0xBC50, 0x7CDA, 0xBC51, 0x7CDB, 0xBC52, 0x7CDD, + 0xBC53, 0x7CDE, 0xBC54, 0x7CE1, 0xBC55, 0x7CE2, 0xBC56, 0x7CE3, + 0xBC57, 0x7CE4, 0xBC58, 0x7CE5, 0xBC59, 0x7CE6, 0xBC5A, 0x7CE7, + 0xBC5B, 0x7CE9, 0xBC5C, 0x7CEA, 0xBC5D, 0x7CEB, 0xBC5E, 0x7CEC, + 0xBC5F, 0x7CED, 0xBC60, 0x7CEE, 0xBC61, 0x7CF0, 0xBC62, 0x7CF1, + 0xBC63, 0x7CF2, 0xBC64, 0x7CF3, 0xBC65, 0x7CF4, 0xBC66, 0x7CF5, + 0xBC67, 0x7CF6, 0xBC68, 0x7CF7, 0xBC69, 0x7CF9, 0xBC6A, 0x7CFA, + 0xBC6B, 0x7CFC, 0xBC6C, 0x7CFD, 0xBC6D, 0x7CFE, 0xBC6E, 0x7CFF, + 0xBC6F, 0x7D00, 0xBC70, 0x7D01, 0xBC71, 0x7D02, 0xBC72, 0x7D03, + 0xBC73, 0x7D04, 0xBC74, 0x7D05, 0xBC75, 0x7D06, 0xBC76, 0x7D07, + 0xBC77, 0x7D08, 0xBC78, 0x7D09, 0xBC79, 0x7D0B, 0xBC7A, 0x7D0C, + 0xBC7B, 0x7D0D, 0xBC7C, 0x7D0E, 0xBC7D, 0x7D0F, 0xBC7E, 0x7D10, + 0xBC80, 0x7D11, 0xBC81, 0x7D12, 0xBC82, 0x7D13, 0xBC83, 0x7D14, + 0xBC84, 0x7D15, 0xBC85, 0x7D16, 0xBC86, 0x7D17, 0xBC87, 0x7D18, + 0xBC88, 0x7D19, 0xBC89, 0x7D1A, 0xBC8A, 0x7D1B, 0xBC8B, 0x7D1C, + 0xBC8C, 0x7D1D, 0xBC8D, 0x7D1E, 0xBC8E, 0x7D1F, 0xBC8F, 0x7D21, + 0xBC90, 0x7D23, 0xBC91, 0x7D24, 0xBC92, 0x7D25, 0xBC93, 0x7D26, + 0xBC94, 0x7D28, 0xBC95, 0x7D29, 0xBC96, 0x7D2A, 0xBC97, 0x7D2C, + 0xBC98, 0x7D2D, 0xBC99, 0x7D2E, 0xBC9A, 0x7D30, 0xBC9B, 0x7D31, + 0xBC9C, 0x7D32, 0xBC9D, 0x7D33, 0xBC9E, 0x7D34, 0xBC9F, 0x7D35, + 0xBCA0, 0x7D36, 0xBCA1, 0x808C, 0xBCA2, 0x9965, 0xBCA3, 0x8FF9, + 0xBCA4, 0x6FC0, 0xBCA5, 0x8BA5, 0xBCA6, 0x9E21, 0xBCA7, 0x59EC, + 0xBCA8, 0x7EE9, 0xBCA9, 0x7F09, 0xBCAA, 0x5409, 0xBCAB, 0x6781, + 0xBCAC, 0x68D8, 0xBCAD, 0x8F91, 0xBCAE, 0x7C4D, 0xBCAF, 0x96C6, + 0xBCB0, 0x53CA, 0xBCB1, 0x6025, 0xBCB2, 0x75BE, 0xBCB3, 0x6C72, + 0xBCB4, 0x5373, 0xBCB5, 0x5AC9, 0xBCB6, 0x7EA7, 0xBCB7, 0x6324, + 0xBCB8, 0x51E0, 0xBCB9, 0x810A, 0xBCBA, 0x5DF1, 0xBCBB, 0x84DF, + 0xBCBC, 0x6280, 0xBCBD, 0x5180, 0xBCBE, 0x5B63, 0xBCBF, 0x4F0E, + 0xBCC0, 0x796D, 0xBCC1, 0x5242, 0xBCC2, 0x60B8, 0xBCC3, 0x6D4E, + 0xBCC4, 0x5BC4, 0xBCC5, 0x5BC2, 0xBCC6, 0x8BA1, 0xBCC7, 0x8BB0, + 0xBCC8, 0x65E2, 0xBCC9, 0x5FCC, 0xBCCA, 0x9645, 0xBCCB, 0x5993, + 0xBCCC, 0x7EE7, 0xBCCD, 0x7EAA, 0xBCCE, 0x5609, 0xBCCF, 0x67B7, + 0xBCD0, 0x5939, 0xBCD1, 0x4F73, 0xBCD2, 0x5BB6, 0xBCD3, 0x52A0, + 0xBCD4, 0x835A, 0xBCD5, 0x988A, 0xBCD6, 0x8D3E, 0xBCD7, 0x7532, + 0xBCD8, 0x94BE, 0xBCD9, 0x5047, 0xBCDA, 0x7A3C, 0xBCDB, 0x4EF7, + 0xBCDC, 0x67B6, 0xBCDD, 0x9A7E, 0xBCDE, 0x5AC1, 0xBCDF, 0x6B7C, + 0xBCE0, 0x76D1, 0xBCE1, 0x575A, 0xBCE2, 0x5C16, 0xBCE3, 0x7B3A, + 0xBCE4, 0x95F4, 0xBCE5, 0x714E, 0xBCE6, 0x517C, 0xBCE7, 0x80A9, + 0xBCE8, 0x8270, 0xBCE9, 0x5978, 0xBCEA, 0x7F04, 0xBCEB, 0x8327, + 0xBCEC, 0x68C0, 0xBCED, 0x67EC, 0xBCEE, 0x78B1, 0xBCEF, 0x7877, + 0xBCF0, 0x62E3, 0xBCF1, 0x6361, 0xBCF2, 0x7B80, 0xBCF3, 0x4FED, + 0xBCF4, 0x526A, 0xBCF5, 0x51CF, 0xBCF6, 0x8350, 0xBCF7, 0x69DB, + 0xBCF8, 0x9274, 0xBCF9, 0x8DF5, 0xBCFA, 0x8D31, 0xBCFB, 0x89C1, + 0xBCFC, 0x952E, 0xBCFD, 0x7BAD, 0xBCFE, 0x4EF6, 0xBD40, 0x7D37, + 0xBD41, 0x7D38, 0xBD42, 0x7D39, 0xBD43, 0x7D3A, 0xBD44, 0x7D3B, + 0xBD45, 0x7D3C, 0xBD46, 0x7D3D, 0xBD47, 0x7D3E, 0xBD48, 0x7D3F, + 0xBD49, 0x7D40, 0xBD4A, 0x7D41, 0xBD4B, 0x7D42, 0xBD4C, 0x7D43, + 0xBD4D, 0x7D44, 0xBD4E, 0x7D45, 0xBD4F, 0x7D46, 0xBD50, 0x7D47, + 0xBD51, 0x7D48, 0xBD52, 0x7D49, 0xBD53, 0x7D4A, 0xBD54, 0x7D4B, + 0xBD55, 0x7D4C, 0xBD56, 0x7D4D, 0xBD57, 0x7D4E, 0xBD58, 0x7D4F, + 0xBD59, 0x7D50, 0xBD5A, 0x7D51, 0xBD5B, 0x7D52, 0xBD5C, 0x7D53, + 0xBD5D, 0x7D54, 0xBD5E, 0x7D55, 0xBD5F, 0x7D56, 0xBD60, 0x7D57, + 0xBD61, 0x7D58, 0xBD62, 0x7D59, 0xBD63, 0x7D5A, 0xBD64, 0x7D5B, + 0xBD65, 0x7D5C, 0xBD66, 0x7D5D, 0xBD67, 0x7D5E, 0xBD68, 0x7D5F, + 0xBD69, 0x7D60, 0xBD6A, 0x7D61, 0xBD6B, 0x7D62, 0xBD6C, 0x7D63, + 0xBD6D, 0x7D64, 0xBD6E, 0x7D65, 0xBD6F, 0x7D66, 0xBD70, 0x7D67, + 0xBD71, 0x7D68, 0xBD72, 0x7D69, 0xBD73, 0x7D6A, 0xBD74, 0x7D6B, + 0xBD75, 0x7D6C, 0xBD76, 0x7D6D, 0xBD77, 0x7D6F, 0xBD78, 0x7D70, + 0xBD79, 0x7D71, 0xBD7A, 0x7D72, 0xBD7B, 0x7D73, 0xBD7C, 0x7D74, + 0xBD7D, 0x7D75, 0xBD7E, 0x7D76, 0xBD80, 0x7D78, 0xBD81, 0x7D79, + 0xBD82, 0x7D7A, 0xBD83, 0x7D7B, 0xBD84, 0x7D7C, 0xBD85, 0x7D7D, + 0xBD86, 0x7D7E, 0xBD87, 0x7D7F, 0xBD88, 0x7D80, 0xBD89, 0x7D81, + 0xBD8A, 0x7D82, 0xBD8B, 0x7D83, 0xBD8C, 0x7D84, 0xBD8D, 0x7D85, + 0xBD8E, 0x7D86, 0xBD8F, 0x7D87, 0xBD90, 0x7D88, 0xBD91, 0x7D89, + 0xBD92, 0x7D8A, 0xBD93, 0x7D8B, 0xBD94, 0x7D8C, 0xBD95, 0x7D8D, + 0xBD96, 0x7D8E, 0xBD97, 0x7D8F, 0xBD98, 0x7D90, 0xBD99, 0x7D91, + 0xBD9A, 0x7D92, 0xBD9B, 0x7D93, 0xBD9C, 0x7D94, 0xBD9D, 0x7D95, + 0xBD9E, 0x7D96, 0xBD9F, 0x7D97, 0xBDA0, 0x7D98, 0xBDA1, 0x5065, + 0xBDA2, 0x8230, 0xBDA3, 0x5251, 0xBDA4, 0x996F, 0xBDA5, 0x6E10, + 0xBDA6, 0x6E85, 0xBDA7, 0x6DA7, 0xBDA8, 0x5EFA, 0xBDA9, 0x50F5, + 0xBDAA, 0x59DC, 0xBDAB, 0x5C06, 0xBDAC, 0x6D46, 0xBDAD, 0x6C5F, + 0xBDAE, 0x7586, 0xBDAF, 0x848B, 0xBDB0, 0x6868, 0xBDB1, 0x5956, + 0xBDB2, 0x8BB2, 0xBDB3, 0x5320, 0xBDB4, 0x9171, 0xBDB5, 0x964D, + 0xBDB6, 0x8549, 0xBDB7, 0x6912, 0xBDB8, 0x7901, 0xBDB9, 0x7126, + 0xBDBA, 0x80F6, 0xBDBB, 0x4EA4, 0xBDBC, 0x90CA, 0xBDBD, 0x6D47, + 0xBDBE, 0x9A84, 0xBDBF, 0x5A07, 0xBDC0, 0x56BC, 0xBDC1, 0x6405, + 0xBDC2, 0x94F0, 0xBDC3, 0x77EB, 0xBDC4, 0x4FA5, 0xBDC5, 0x811A, + 0xBDC6, 0x72E1, 0xBDC7, 0x89D2, 0xBDC8, 0x997A, 0xBDC9, 0x7F34, + 0xBDCA, 0x7EDE, 0xBDCB, 0x527F, 0xBDCC, 0x6559, 0xBDCD, 0x9175, + 0xBDCE, 0x8F7F, 0xBDCF, 0x8F83, 0xBDD0, 0x53EB, 0xBDD1, 0x7A96, + 0xBDD2, 0x63ED, 0xBDD3, 0x63A5, 0xBDD4, 0x7686, 0xBDD5, 0x79F8, + 0xBDD6, 0x8857, 0xBDD7, 0x9636, 0xBDD8, 0x622A, 0xBDD9, 0x52AB, + 0xBDDA, 0x8282, 0xBDDB, 0x6854, 0xBDDC, 0x6770, 0xBDDD, 0x6377, + 0xBDDE, 0x776B, 0xBDDF, 0x7AED, 0xBDE0, 0x6D01, 0xBDE1, 0x7ED3, + 0xBDE2, 0x89E3, 0xBDE3, 0x59D0, 0xBDE4, 0x6212, 0xBDE5, 0x85C9, + 0xBDE6, 0x82A5, 0xBDE7, 0x754C, 0xBDE8, 0x501F, 0xBDE9, 0x4ECB, + 0xBDEA, 0x75A5, 0xBDEB, 0x8BEB, 0xBDEC, 0x5C4A, 0xBDED, 0x5DFE, + 0xBDEE, 0x7B4B, 0xBDEF, 0x65A4, 0xBDF0, 0x91D1, 0xBDF1, 0x4ECA, + 0xBDF2, 0x6D25, 0xBDF3, 0x895F, 0xBDF4, 0x7D27, 0xBDF5, 0x9526, + 0xBDF6, 0x4EC5, 0xBDF7, 0x8C28, 0xBDF8, 0x8FDB, 0xBDF9, 0x9773, + 0xBDFA, 0x664B, 0xBDFB, 0x7981, 0xBDFC, 0x8FD1, 0xBDFD, 0x70EC, + 0xBDFE, 0x6D78, 0xBE40, 0x7D99, 0xBE41, 0x7D9A, 0xBE42, 0x7D9B, + 0xBE43, 0x7D9C, 0xBE44, 0x7D9D, 0xBE45, 0x7D9E, 0xBE46, 0x7D9F, + 0xBE47, 0x7DA0, 0xBE48, 0x7DA1, 0xBE49, 0x7DA2, 0xBE4A, 0x7DA3, + 0xBE4B, 0x7DA4, 0xBE4C, 0x7DA5, 0xBE4D, 0x7DA7, 0xBE4E, 0x7DA8, + 0xBE4F, 0x7DA9, 0xBE50, 0x7DAA, 0xBE51, 0x7DAB, 0xBE52, 0x7DAC, + 0xBE53, 0x7DAD, 0xBE54, 0x7DAF, 0xBE55, 0x7DB0, 0xBE56, 0x7DB1, + 0xBE57, 0x7DB2, 0xBE58, 0x7DB3, 0xBE59, 0x7DB4, 0xBE5A, 0x7DB5, + 0xBE5B, 0x7DB6, 0xBE5C, 0x7DB7, 0xBE5D, 0x7DB8, 0xBE5E, 0x7DB9, + 0xBE5F, 0x7DBA, 0xBE60, 0x7DBB, 0xBE61, 0x7DBC, 0xBE62, 0x7DBD, + 0xBE63, 0x7DBE, 0xBE64, 0x7DBF, 0xBE65, 0x7DC0, 0xBE66, 0x7DC1, + 0xBE67, 0x7DC2, 0xBE68, 0x7DC3, 0xBE69, 0x7DC4, 0xBE6A, 0x7DC5, + 0xBE6B, 0x7DC6, 0xBE6C, 0x7DC7, 0xBE6D, 0x7DC8, 0xBE6E, 0x7DC9, + 0xBE6F, 0x7DCA, 0xBE70, 0x7DCB, 0xBE71, 0x7DCC, 0xBE72, 0x7DCD, + 0xBE73, 0x7DCE, 0xBE74, 0x7DCF, 0xBE75, 0x7DD0, 0xBE76, 0x7DD1, + 0xBE77, 0x7DD2, 0xBE78, 0x7DD3, 0xBE79, 0x7DD4, 0xBE7A, 0x7DD5, + 0xBE7B, 0x7DD6, 0xBE7C, 0x7DD7, 0xBE7D, 0x7DD8, 0xBE7E, 0x7DD9, + 0xBE80, 0x7DDA, 0xBE81, 0x7DDB, 0xBE82, 0x7DDC, 0xBE83, 0x7DDD, + 0xBE84, 0x7DDE, 0xBE85, 0x7DDF, 0xBE86, 0x7DE0, 0xBE87, 0x7DE1, + 0xBE88, 0x7DE2, 0xBE89, 0x7DE3, 0xBE8A, 0x7DE4, 0xBE8B, 0x7DE5, + 0xBE8C, 0x7DE6, 0xBE8D, 0x7DE7, 0xBE8E, 0x7DE8, 0xBE8F, 0x7DE9, + 0xBE90, 0x7DEA, 0xBE91, 0x7DEB, 0xBE92, 0x7DEC, 0xBE93, 0x7DED, + 0xBE94, 0x7DEE, 0xBE95, 0x7DEF, 0xBE96, 0x7DF0, 0xBE97, 0x7DF1, + 0xBE98, 0x7DF2, 0xBE99, 0x7DF3, 0xBE9A, 0x7DF4, 0xBE9B, 0x7DF5, + 0xBE9C, 0x7DF6, 0xBE9D, 0x7DF7, 0xBE9E, 0x7DF8, 0xBE9F, 0x7DF9, + 0xBEA0, 0x7DFA, 0xBEA1, 0x5C3D, 0xBEA2, 0x52B2, 0xBEA3, 0x8346, + 0xBEA4, 0x5162, 0xBEA5, 0x830E, 0xBEA6, 0x775B, 0xBEA7, 0x6676, + 0xBEA8, 0x9CB8, 0xBEA9, 0x4EAC, 0xBEAA, 0x60CA, 0xBEAB, 0x7CBE, + 0xBEAC, 0x7CB3, 0xBEAD, 0x7ECF, 0xBEAE, 0x4E95, 0xBEAF, 0x8B66, + 0xBEB0, 0x666F, 0xBEB1, 0x9888, 0xBEB2, 0x9759, 0xBEB3, 0x5883, + 0xBEB4, 0x656C, 0xBEB5, 0x955C, 0xBEB6, 0x5F84, 0xBEB7, 0x75C9, + 0xBEB8, 0x9756, 0xBEB9, 0x7ADF, 0xBEBA, 0x7ADE, 0xBEBB, 0x51C0, + 0xBEBC, 0x70AF, 0xBEBD, 0x7A98, 0xBEBE, 0x63EA, 0xBEBF, 0x7A76, + 0xBEC0, 0x7EA0, 0xBEC1, 0x7396, 0xBEC2, 0x97ED, 0xBEC3, 0x4E45, + 0xBEC4, 0x7078, 0xBEC5, 0x4E5D, 0xBEC6, 0x9152, 0xBEC7, 0x53A9, + 0xBEC8, 0x6551, 0xBEC9, 0x65E7, 0xBECA, 0x81FC, 0xBECB, 0x8205, + 0xBECC, 0x548E, 0xBECD, 0x5C31, 0xBECE, 0x759A, 0xBECF, 0x97A0, + 0xBED0, 0x62D8, 0xBED1, 0x72D9, 0xBED2, 0x75BD, 0xBED3, 0x5C45, + 0xBED4, 0x9A79, 0xBED5, 0x83CA, 0xBED6, 0x5C40, 0xBED7, 0x5480, + 0xBED8, 0x77E9, 0xBED9, 0x4E3E, 0xBEDA, 0x6CAE, 0xBEDB, 0x805A, + 0xBEDC, 0x62D2, 0xBEDD, 0x636E, 0xBEDE, 0x5DE8, 0xBEDF, 0x5177, + 0xBEE0, 0x8DDD, 0xBEE1, 0x8E1E, 0xBEE2, 0x952F, 0xBEE3, 0x4FF1, + 0xBEE4, 0x53E5, 0xBEE5, 0x60E7, 0xBEE6, 0x70AC, 0xBEE7, 0x5267, + 0xBEE8, 0x6350, 0xBEE9, 0x9E43, 0xBEEA, 0x5A1F, 0xBEEB, 0x5026, + 0xBEEC, 0x7737, 0xBEED, 0x5377, 0xBEEE, 0x7EE2, 0xBEEF, 0x6485, + 0xBEF0, 0x652B, 0xBEF1, 0x6289, 0xBEF2, 0x6398, 0xBEF3, 0x5014, + 0xBEF4, 0x7235, 0xBEF5, 0x89C9, 0xBEF6, 0x51B3, 0xBEF7, 0x8BC0, + 0xBEF8, 0x7EDD, 0xBEF9, 0x5747, 0xBEFA, 0x83CC, 0xBEFB, 0x94A7, + 0xBEFC, 0x519B, 0xBEFD, 0x541B, 0xBEFE, 0x5CFB, 0xBF40, 0x7DFB, + 0xBF41, 0x7DFC, 0xBF42, 0x7DFD, 0xBF43, 0x7DFE, 0xBF44, 0x7DFF, + 0xBF45, 0x7E00, 0xBF46, 0x7E01, 0xBF47, 0x7E02, 0xBF48, 0x7E03, + 0xBF49, 0x7E04, 0xBF4A, 0x7E05, 0xBF4B, 0x7E06, 0xBF4C, 0x7E07, + 0xBF4D, 0x7E08, 0xBF4E, 0x7E09, 0xBF4F, 0x7E0A, 0xBF50, 0x7E0B, + 0xBF51, 0x7E0C, 0xBF52, 0x7E0D, 0xBF53, 0x7E0E, 0xBF54, 0x7E0F, + 0xBF55, 0x7E10, 0xBF56, 0x7E11, 0xBF57, 0x7E12, 0xBF58, 0x7E13, + 0xBF59, 0x7E14, 0xBF5A, 0x7E15, 0xBF5B, 0x7E16, 0xBF5C, 0x7E17, + 0xBF5D, 0x7E18, 0xBF5E, 0x7E19, 0xBF5F, 0x7E1A, 0xBF60, 0x7E1B, + 0xBF61, 0x7E1C, 0xBF62, 0x7E1D, 0xBF63, 0x7E1E, 0xBF64, 0x7E1F, + 0xBF65, 0x7E20, 0xBF66, 0x7E21, 0xBF67, 0x7E22, 0xBF68, 0x7E23, + 0xBF69, 0x7E24, 0xBF6A, 0x7E25, 0xBF6B, 0x7E26, 0xBF6C, 0x7E27, + 0xBF6D, 0x7E28, 0xBF6E, 0x7E29, 0xBF6F, 0x7E2A, 0xBF70, 0x7E2B, + 0xBF71, 0x7E2C, 0xBF72, 0x7E2D, 0xBF73, 0x7E2E, 0xBF74, 0x7E2F, + 0xBF75, 0x7E30, 0xBF76, 0x7E31, 0xBF77, 0x7E32, 0xBF78, 0x7E33, + 0xBF79, 0x7E34, 0xBF7A, 0x7E35, 0xBF7B, 0x7E36, 0xBF7C, 0x7E37, + 0xBF7D, 0x7E38, 0xBF7E, 0x7E39, 0xBF80, 0x7E3A, 0xBF81, 0x7E3C, + 0xBF82, 0x7E3D, 0xBF83, 0x7E3E, 0xBF84, 0x7E3F, 0xBF85, 0x7E40, + 0xBF86, 0x7E42, 0xBF87, 0x7E43, 0xBF88, 0x7E44, 0xBF89, 0x7E45, + 0xBF8A, 0x7E46, 0xBF8B, 0x7E48, 0xBF8C, 0x7E49, 0xBF8D, 0x7E4A, + 0xBF8E, 0x7E4B, 0xBF8F, 0x7E4C, 0xBF90, 0x7E4D, 0xBF91, 0x7E4E, + 0xBF92, 0x7E4F, 0xBF93, 0x7E50, 0xBF94, 0x7E51, 0xBF95, 0x7E52, + 0xBF96, 0x7E53, 0xBF97, 0x7E54, 0xBF98, 0x7E55, 0xBF99, 0x7E56, + 0xBF9A, 0x7E57, 0xBF9B, 0x7E58, 0xBF9C, 0x7E59, 0xBF9D, 0x7E5A, + 0xBF9E, 0x7E5B, 0xBF9F, 0x7E5C, 0xBFA0, 0x7E5D, 0xBFA1, 0x4FCA, + 0xBFA2, 0x7AE3, 0xBFA3, 0x6D5A, 0xBFA4, 0x90E1, 0xBFA5, 0x9A8F, + 0xBFA6, 0x5580, 0xBFA7, 0x5496, 0xBFA8, 0x5361, 0xBFA9, 0x54AF, + 0xBFAA, 0x5F00, 0xBFAB, 0x63E9, 0xBFAC, 0x6977, 0xBFAD, 0x51EF, + 0xBFAE, 0x6168, 0xBFAF, 0x520A, 0xBFB0, 0x582A, 0xBFB1, 0x52D8, + 0xBFB2, 0x574E, 0xBFB3, 0x780D, 0xBFB4, 0x770B, 0xBFB5, 0x5EB7, + 0xBFB6, 0x6177, 0xBFB7, 0x7CE0, 0xBFB8, 0x625B, 0xBFB9, 0x6297, + 0xBFBA, 0x4EA2, 0xBFBB, 0x7095, 0xBFBC, 0x8003, 0xBFBD, 0x62F7, + 0xBFBE, 0x70E4, 0xBFBF, 0x9760, 0xBFC0, 0x5777, 0xBFC1, 0x82DB, + 0xBFC2, 0x67EF, 0xBFC3, 0x68F5, 0xBFC4, 0x78D5, 0xBFC5, 0x9897, + 0xBFC6, 0x79D1, 0xBFC7, 0x58F3, 0xBFC8, 0x54B3, 0xBFC9, 0x53EF, + 0xBFCA, 0x6E34, 0xBFCB, 0x514B, 0xBFCC, 0x523B, 0xBFCD, 0x5BA2, + 0xBFCE, 0x8BFE, 0xBFCF, 0x80AF, 0xBFD0, 0x5543, 0xBFD1, 0x57A6, + 0xBFD2, 0x6073, 0xBFD3, 0x5751, 0xBFD4, 0x542D, 0xBFD5, 0x7A7A, + 0xBFD6, 0x6050, 0xBFD7, 0x5B54, 0xBFD8, 0x63A7, 0xBFD9, 0x62A0, + 0xBFDA, 0x53E3, 0xBFDB, 0x6263, 0xBFDC, 0x5BC7, 0xBFDD, 0x67AF, + 0xBFDE, 0x54ED, 0xBFDF, 0x7A9F, 0xBFE0, 0x82E6, 0xBFE1, 0x9177, + 0xBFE2, 0x5E93, 0xBFE3, 0x88E4, 0xBFE4, 0x5938, 0xBFE5, 0x57AE, + 0xBFE6, 0x630E, 0xBFE7, 0x8DE8, 0xBFE8, 0x80EF, 0xBFE9, 0x5757, + 0xBFEA, 0x7B77, 0xBFEB, 0x4FA9, 0xBFEC, 0x5FEB, 0xBFED, 0x5BBD, + 0xBFEE, 0x6B3E, 0xBFEF, 0x5321, 0xBFF0, 0x7B50, 0xBFF1, 0x72C2, + 0xBFF2, 0x6846, 0xBFF3, 0x77FF, 0xBFF4, 0x7736, 0xBFF5, 0x65F7, + 0xBFF6, 0x51B5, 0xBFF7, 0x4E8F, 0xBFF8, 0x76D4, 0xBFF9, 0x5CBF, + 0xBFFA, 0x7AA5, 0xBFFB, 0x8475, 0xBFFC, 0x594E, 0xBFFD, 0x9B41, + 0xBFFE, 0x5080, 0xC040, 0x7E5E, 0xC041, 0x7E5F, 0xC042, 0x7E60, + 0xC043, 0x7E61, 0xC044, 0x7E62, 0xC045, 0x7E63, 0xC046, 0x7E64, + 0xC047, 0x7E65, 0xC048, 0x7E66, 0xC049, 0x7E67, 0xC04A, 0x7E68, + 0xC04B, 0x7E69, 0xC04C, 0x7E6A, 0xC04D, 0x7E6B, 0xC04E, 0x7E6C, + 0xC04F, 0x7E6D, 0xC050, 0x7E6E, 0xC051, 0x7E6F, 0xC052, 0x7E70, + 0xC053, 0x7E71, 0xC054, 0x7E72, 0xC055, 0x7E73, 0xC056, 0x7E74, + 0xC057, 0x7E75, 0xC058, 0x7E76, 0xC059, 0x7E77, 0xC05A, 0x7E78, + 0xC05B, 0x7E79, 0xC05C, 0x7E7A, 0xC05D, 0x7E7B, 0xC05E, 0x7E7C, + 0xC05F, 0x7E7D, 0xC060, 0x7E7E, 0xC061, 0x7E7F, 0xC062, 0x7E80, + 0xC063, 0x7E81, 0xC064, 0x7E83, 0xC065, 0x7E84, 0xC066, 0x7E85, + 0xC067, 0x7E86, 0xC068, 0x7E87, 0xC069, 0x7E88, 0xC06A, 0x7E89, + 0xC06B, 0x7E8A, 0xC06C, 0x7E8B, 0xC06D, 0x7E8C, 0xC06E, 0x7E8D, + 0xC06F, 0x7E8E, 0xC070, 0x7E8F, 0xC071, 0x7E90, 0xC072, 0x7E91, + 0xC073, 0x7E92, 0xC074, 0x7E93, 0xC075, 0x7E94, 0xC076, 0x7E95, + 0xC077, 0x7E96, 0xC078, 0x7E97, 0xC079, 0x7E98, 0xC07A, 0x7E99, + 0xC07B, 0x7E9A, 0xC07C, 0x7E9C, 0xC07D, 0x7E9D, 0xC07E, 0x7E9E, + 0xC080, 0x7EAE, 0xC081, 0x7EB4, 0xC082, 0x7EBB, 0xC083, 0x7EBC, + 0xC084, 0x7ED6, 0xC085, 0x7EE4, 0xC086, 0x7EEC, 0xC087, 0x7EF9, + 0xC088, 0x7F0A, 0xC089, 0x7F10, 0xC08A, 0x7F1E, 0xC08B, 0x7F37, + 0xC08C, 0x7F39, 0xC08D, 0x7F3B, 0xC08E, 0x7F3C, 0xC08F, 0x7F3D, + 0xC090, 0x7F3E, 0xC091, 0x7F3F, 0xC092, 0x7F40, 0xC093, 0x7F41, + 0xC094, 0x7F43, 0xC095, 0x7F46, 0xC096, 0x7F47, 0xC097, 0x7F48, + 0xC098, 0x7F49, 0xC099, 0x7F4A, 0xC09A, 0x7F4B, 0xC09B, 0x7F4C, + 0xC09C, 0x7F4D, 0xC09D, 0x7F4E, 0xC09E, 0x7F4F, 0xC09F, 0x7F52, + 0xC0A0, 0x7F53, 0xC0A1, 0x9988, 0xC0A2, 0x6127, 0xC0A3, 0x6E83, + 0xC0A4, 0x5764, 0xC0A5, 0x6606, 0xC0A6, 0x6346, 0xC0A7, 0x56F0, + 0xC0A8, 0x62EC, 0xC0A9, 0x6269, 0xC0AA, 0x5ED3, 0xC0AB, 0x9614, + 0xC0AC, 0x5783, 0xC0AD, 0x62C9, 0xC0AE, 0x5587, 0xC0AF, 0x8721, + 0xC0B0, 0x814A, 0xC0B1, 0x8FA3, 0xC0B2, 0x5566, 0xC0B3, 0x83B1, + 0xC0B4, 0x6765, 0xC0B5, 0x8D56, 0xC0B6, 0x84DD, 0xC0B7, 0x5A6A, + 0xC0B8, 0x680F, 0xC0B9, 0x62E6, 0xC0BA, 0x7BEE, 0xC0BB, 0x9611, + 0xC0BC, 0x5170, 0xC0BD, 0x6F9C, 0xC0BE, 0x8C30, 0xC0BF, 0x63FD, + 0xC0C0, 0x89C8, 0xC0C1, 0x61D2, 0xC0C2, 0x7F06, 0xC0C3, 0x70C2, + 0xC0C4, 0x6EE5, 0xC0C5, 0x7405, 0xC0C6, 0x6994, 0xC0C7, 0x72FC, + 0xC0C8, 0x5ECA, 0xC0C9, 0x90CE, 0xC0CA, 0x6717, 0xC0CB, 0x6D6A, + 0xC0CC, 0x635E, 0xC0CD, 0x52B3, 0xC0CE, 0x7262, 0xC0CF, 0x8001, + 0xC0D0, 0x4F6C, 0xC0D1, 0x59E5, 0xC0D2, 0x916A, 0xC0D3, 0x70D9, + 0xC0D4, 0x6D9D, 0xC0D5, 0x52D2, 0xC0D6, 0x4E50, 0xC0D7, 0x96F7, + 0xC0D8, 0x956D, 0xC0D9, 0x857E, 0xC0DA, 0x78CA, 0xC0DB, 0x7D2F, + 0xC0DC, 0x5121, 0xC0DD, 0x5792, 0xC0DE, 0x64C2, 0xC0DF, 0x808B, + 0xC0E0, 0x7C7B, 0xC0E1, 0x6CEA, 0xC0E2, 0x68F1, 0xC0E3, 0x695E, + 0xC0E4, 0x51B7, 0xC0E5, 0x5398, 0xC0E6, 0x68A8, 0xC0E7, 0x7281, + 0xC0E8, 0x9ECE, 0xC0E9, 0x7BF1, 0xC0EA, 0x72F8, 0xC0EB, 0x79BB, + 0xC0EC, 0x6F13, 0xC0ED, 0x7406, 0xC0EE, 0x674E, 0xC0EF, 0x91CC, + 0xC0F0, 0x9CA4, 0xC0F1, 0x793C, 0xC0F2, 0x8389, 0xC0F3, 0x8354, + 0xC0F4, 0x540F, 0xC0F5, 0x6817, 0xC0F6, 0x4E3D, 0xC0F7, 0x5389, + 0xC0F8, 0x52B1, 0xC0F9, 0x783E, 0xC0FA, 0x5386, 0xC0FB, 0x5229, + 0xC0FC, 0x5088, 0xC0FD, 0x4F8B, 0xC0FE, 0x4FD0, 0xC140, 0x7F56, + 0xC141, 0x7F59, 0xC142, 0x7F5B, 0xC143, 0x7F5C, 0xC144, 0x7F5D, + 0xC145, 0x7F5E, 0xC146, 0x7F60, 0xC147, 0x7F63, 0xC148, 0x7F64, + 0xC149, 0x7F65, 0xC14A, 0x7F66, 0xC14B, 0x7F67, 0xC14C, 0x7F6B, + 0xC14D, 0x7F6C, 0xC14E, 0x7F6D, 0xC14F, 0x7F6F, 0xC150, 0x7F70, + 0xC151, 0x7F73, 0xC152, 0x7F75, 0xC153, 0x7F76, 0xC154, 0x7F77, + 0xC155, 0x7F78, 0xC156, 0x7F7A, 0xC157, 0x7F7B, 0xC158, 0x7F7C, + 0xC159, 0x7F7D, 0xC15A, 0x7F7F, 0xC15B, 0x7F80, 0xC15C, 0x7F82, + 0xC15D, 0x7F83, 0xC15E, 0x7F84, 0xC15F, 0x7F85, 0xC160, 0x7F86, + 0xC161, 0x7F87, 0xC162, 0x7F88, 0xC163, 0x7F89, 0xC164, 0x7F8B, + 0xC165, 0x7F8D, 0xC166, 0x7F8F, 0xC167, 0x7F90, 0xC168, 0x7F91, + 0xC169, 0x7F92, 0xC16A, 0x7F93, 0xC16B, 0x7F95, 0xC16C, 0x7F96, + 0xC16D, 0x7F97, 0xC16E, 0x7F98, 0xC16F, 0x7F99, 0xC170, 0x7F9B, + 0xC171, 0x7F9C, 0xC172, 0x7FA0, 0xC173, 0x7FA2, 0xC174, 0x7FA3, + 0xC175, 0x7FA5, 0xC176, 0x7FA6, 0xC177, 0x7FA8, 0xC178, 0x7FA9, + 0xC179, 0x7FAA, 0xC17A, 0x7FAB, 0xC17B, 0x7FAC, 0xC17C, 0x7FAD, + 0xC17D, 0x7FAE, 0xC17E, 0x7FB1, 0xC180, 0x7FB3, 0xC181, 0x7FB4, + 0xC182, 0x7FB5, 0xC183, 0x7FB6, 0xC184, 0x7FB7, 0xC185, 0x7FBA, + 0xC186, 0x7FBB, 0xC187, 0x7FBE, 0xC188, 0x7FC0, 0xC189, 0x7FC2, + 0xC18A, 0x7FC3, 0xC18B, 0x7FC4, 0xC18C, 0x7FC6, 0xC18D, 0x7FC7, + 0xC18E, 0x7FC8, 0xC18F, 0x7FC9, 0xC190, 0x7FCB, 0xC191, 0x7FCD, + 0xC192, 0x7FCF, 0xC193, 0x7FD0, 0xC194, 0x7FD1, 0xC195, 0x7FD2, + 0xC196, 0x7FD3, 0xC197, 0x7FD6, 0xC198, 0x7FD7, 0xC199, 0x7FD9, + 0xC19A, 0x7FDA, 0xC19B, 0x7FDB, 0xC19C, 0x7FDC, 0xC19D, 0x7FDD, + 0xC19E, 0x7FDE, 0xC19F, 0x7FE2, 0xC1A0, 0x7FE3, 0xC1A1, 0x75E2, + 0xC1A2, 0x7ACB, 0xC1A3, 0x7C92, 0xC1A4, 0x6CA5, 0xC1A5, 0x96B6, + 0xC1A6, 0x529B, 0xC1A7, 0x7483, 0xC1A8, 0x54E9, 0xC1A9, 0x4FE9, + 0xC1AA, 0x8054, 0xC1AB, 0x83B2, 0xC1AC, 0x8FDE, 0xC1AD, 0x9570, + 0xC1AE, 0x5EC9, 0xC1AF, 0x601C, 0xC1B0, 0x6D9F, 0xC1B1, 0x5E18, + 0xC1B2, 0x655B, 0xC1B3, 0x8138, 0xC1B4, 0x94FE, 0xC1B5, 0x604B, + 0xC1B6, 0x70BC, 0xC1B7, 0x7EC3, 0xC1B8, 0x7CAE, 0xC1B9, 0x51C9, + 0xC1BA, 0x6881, 0xC1BB, 0x7CB1, 0xC1BC, 0x826F, 0xC1BD, 0x4E24, + 0xC1BE, 0x8F86, 0xC1BF, 0x91CF, 0xC1C0, 0x667E, 0xC1C1, 0x4EAE, + 0xC1C2, 0x8C05, 0xC1C3, 0x64A9, 0xC1C4, 0x804A, 0xC1C5, 0x50DA, + 0xC1C6, 0x7597, 0xC1C7, 0x71CE, 0xC1C8, 0x5BE5, 0xC1C9, 0x8FBD, + 0xC1CA, 0x6F66, 0xC1CB, 0x4E86, 0xC1CC, 0x6482, 0xC1CD, 0x9563, + 0xC1CE, 0x5ED6, 0xC1CF, 0x6599, 0xC1D0, 0x5217, 0xC1D1, 0x88C2, + 0xC1D2, 0x70C8, 0xC1D3, 0x52A3, 0xC1D4, 0x730E, 0xC1D5, 0x7433, + 0xC1D6, 0x6797, 0xC1D7, 0x78F7, 0xC1D8, 0x9716, 0xC1D9, 0x4E34, + 0xC1DA, 0x90BB, 0xC1DB, 0x9CDE, 0xC1DC, 0x6DCB, 0xC1DD, 0x51DB, + 0xC1DE, 0x8D41, 0xC1DF, 0x541D, 0xC1E0, 0x62CE, 0xC1E1, 0x73B2, + 0xC1E2, 0x83F1, 0xC1E3, 0x96F6, 0xC1E4, 0x9F84, 0xC1E5, 0x94C3, + 0xC1E6, 0x4F36, 0xC1E7, 0x7F9A, 0xC1E8, 0x51CC, 0xC1E9, 0x7075, + 0xC1EA, 0x9675, 0xC1EB, 0x5CAD, 0xC1EC, 0x9886, 0xC1ED, 0x53E6, + 0xC1EE, 0x4EE4, 0xC1EF, 0x6E9C, 0xC1F0, 0x7409, 0xC1F1, 0x69B4, + 0xC1F2, 0x786B, 0xC1F3, 0x998F, 0xC1F4, 0x7559, 0xC1F5, 0x5218, + 0xC1F6, 0x7624, 0xC1F7, 0x6D41, 0xC1F8, 0x67F3, 0xC1F9, 0x516D, + 0xC1FA, 0x9F99, 0xC1FB, 0x804B, 0xC1FC, 0x5499, 0xC1FD, 0x7B3C, + 0xC1FE, 0x7ABF, 0xC240, 0x7FE4, 0xC241, 0x7FE7, 0xC242, 0x7FE8, + 0xC243, 0x7FEA, 0xC244, 0x7FEB, 0xC245, 0x7FEC, 0xC246, 0x7FED, + 0xC247, 0x7FEF, 0xC248, 0x7FF2, 0xC249, 0x7FF4, 0xC24A, 0x7FF5, + 0xC24B, 0x7FF6, 0xC24C, 0x7FF7, 0xC24D, 0x7FF8, 0xC24E, 0x7FF9, + 0xC24F, 0x7FFA, 0xC250, 0x7FFD, 0xC251, 0x7FFE, 0xC252, 0x7FFF, + 0xC253, 0x8002, 0xC254, 0x8007, 0xC255, 0x8008, 0xC256, 0x8009, + 0xC257, 0x800A, 0xC258, 0x800E, 0xC259, 0x800F, 0xC25A, 0x8011, + 0xC25B, 0x8013, 0xC25C, 0x801A, 0xC25D, 0x801B, 0xC25E, 0x801D, + 0xC25F, 0x801E, 0xC260, 0x801F, 0xC261, 0x8021, 0xC262, 0x8023, + 0xC263, 0x8024, 0xC264, 0x802B, 0xC265, 0x802C, 0xC266, 0x802D, + 0xC267, 0x802E, 0xC268, 0x802F, 0xC269, 0x8030, 0xC26A, 0x8032, + 0xC26B, 0x8034, 0xC26C, 0x8039, 0xC26D, 0x803A, 0xC26E, 0x803C, + 0xC26F, 0x803E, 0xC270, 0x8040, 0xC271, 0x8041, 0xC272, 0x8044, + 0xC273, 0x8045, 0xC274, 0x8047, 0xC275, 0x8048, 0xC276, 0x8049, + 0xC277, 0x804E, 0xC278, 0x804F, 0xC279, 0x8050, 0xC27A, 0x8051, + 0xC27B, 0x8053, 0xC27C, 0x8055, 0xC27D, 0x8056, 0xC27E, 0x8057, + 0xC280, 0x8059, 0xC281, 0x805B, 0xC282, 0x805C, 0xC283, 0x805D, + 0xC284, 0x805E, 0xC285, 0x805F, 0xC286, 0x8060, 0xC287, 0x8061, + 0xC288, 0x8062, 0xC289, 0x8063, 0xC28A, 0x8064, 0xC28B, 0x8065, + 0xC28C, 0x8066, 0xC28D, 0x8067, 0xC28E, 0x8068, 0xC28F, 0x806B, + 0xC290, 0x806C, 0xC291, 0x806D, 0xC292, 0x806E, 0xC293, 0x806F, + 0xC294, 0x8070, 0xC295, 0x8072, 0xC296, 0x8073, 0xC297, 0x8074, + 0xC298, 0x8075, 0xC299, 0x8076, 0xC29A, 0x8077, 0xC29B, 0x8078, + 0xC29C, 0x8079, 0xC29D, 0x807A, 0xC29E, 0x807B, 0xC29F, 0x807C, + 0xC2A0, 0x807D, 0xC2A1, 0x9686, 0xC2A2, 0x5784, 0xC2A3, 0x62E2, + 0xC2A4, 0x9647, 0xC2A5, 0x697C, 0xC2A6, 0x5A04, 0xC2A7, 0x6402, + 0xC2A8, 0x7BD3, 0xC2A9, 0x6F0F, 0xC2AA, 0x964B, 0xC2AB, 0x82A6, + 0xC2AC, 0x5362, 0xC2AD, 0x9885, 0xC2AE, 0x5E90, 0xC2AF, 0x7089, + 0xC2B0, 0x63B3, 0xC2B1, 0x5364, 0xC2B2, 0x864F, 0xC2B3, 0x9C81, + 0xC2B4, 0x9E93, 0xC2B5, 0x788C, 0xC2B6, 0x9732, 0xC2B7, 0x8DEF, + 0xC2B8, 0x8D42, 0xC2B9, 0x9E7F, 0xC2BA, 0x6F5E, 0xC2BB, 0x7984, + 0xC2BC, 0x5F55, 0xC2BD, 0x9646, 0xC2BE, 0x622E, 0xC2BF, 0x9A74, + 0xC2C0, 0x5415, 0xC2C1, 0x94DD, 0xC2C2, 0x4FA3, 0xC2C3, 0x65C5, + 0xC2C4, 0x5C65, 0xC2C5, 0x5C61, 0xC2C6, 0x7F15, 0xC2C7, 0x8651, + 0xC2C8, 0x6C2F, 0xC2C9, 0x5F8B, 0xC2CA, 0x7387, 0xC2CB, 0x6EE4, + 0xC2CC, 0x7EFF, 0xC2CD, 0x5CE6, 0xC2CE, 0x631B, 0xC2CF, 0x5B6A, + 0xC2D0, 0x6EE6, 0xC2D1, 0x5375, 0xC2D2, 0x4E71, 0xC2D3, 0x63A0, + 0xC2D4, 0x7565, 0xC2D5, 0x62A1, 0xC2D6, 0x8F6E, 0xC2D7, 0x4F26, + 0xC2D8, 0x4ED1, 0xC2D9, 0x6CA6, 0xC2DA, 0x7EB6, 0xC2DB, 0x8BBA, + 0xC2DC, 0x841D, 0xC2DD, 0x87BA, 0xC2DE, 0x7F57, 0xC2DF, 0x903B, + 0xC2E0, 0x9523, 0xC2E1, 0x7BA9, 0xC2E2, 0x9AA1, 0xC2E3, 0x88F8, + 0xC2E4, 0x843D, 0xC2E5, 0x6D1B, 0xC2E6, 0x9A86, 0xC2E7, 0x7EDC, + 0xC2E8, 0x5988, 0xC2E9, 0x9EBB, 0xC2EA, 0x739B, 0xC2EB, 0x7801, + 0xC2EC, 0x8682, 0xC2ED, 0x9A6C, 0xC2EE, 0x9A82, 0xC2EF, 0x561B, + 0xC2F0, 0x5417, 0xC2F1, 0x57CB, 0xC2F2, 0x4E70, 0xC2F3, 0x9EA6, + 0xC2F4, 0x5356, 0xC2F5, 0x8FC8, 0xC2F6, 0x8109, 0xC2F7, 0x7792, + 0xC2F8, 0x9992, 0xC2F9, 0x86EE, 0xC2FA, 0x6EE1, 0xC2FB, 0x8513, + 0xC2FC, 0x66FC, 0xC2FD, 0x6162, 0xC2FE, 0x6F2B, 0xC340, 0x807E, + 0xC341, 0x8081, 0xC342, 0x8082, 0xC343, 0x8085, 0xC344, 0x8088, + 0xC345, 0x808A, 0xC346, 0x808D, 0xC347, 0x808E, 0xC348, 0x808F, + 0xC349, 0x8090, 0xC34A, 0x8091, 0xC34B, 0x8092, 0xC34C, 0x8094, + 0xC34D, 0x8095, 0xC34E, 0x8097, 0xC34F, 0x8099, 0xC350, 0x809E, + 0xC351, 0x80A3, 0xC352, 0x80A6, 0xC353, 0x80A7, 0xC354, 0x80A8, + 0xC355, 0x80AC, 0xC356, 0x80B0, 0xC357, 0x80B3, 0xC358, 0x80B5, + 0xC359, 0x80B6, 0xC35A, 0x80B8, 0xC35B, 0x80B9, 0xC35C, 0x80BB, + 0xC35D, 0x80C5, 0xC35E, 0x80C7, 0xC35F, 0x80C8, 0xC360, 0x80C9, + 0xC361, 0x80CA, 0xC362, 0x80CB, 0xC363, 0x80CF, 0xC364, 0x80D0, + 0xC365, 0x80D1, 0xC366, 0x80D2, 0xC367, 0x80D3, 0xC368, 0x80D4, + 0xC369, 0x80D5, 0xC36A, 0x80D8, 0xC36B, 0x80DF, 0xC36C, 0x80E0, + 0xC36D, 0x80E2, 0xC36E, 0x80E3, 0xC36F, 0x80E6, 0xC370, 0x80EE, + 0xC371, 0x80F5, 0xC372, 0x80F7, 0xC373, 0x80F9, 0xC374, 0x80FB, + 0xC375, 0x80FE, 0xC376, 0x80FF, 0xC377, 0x8100, 0xC378, 0x8101, + 0xC379, 0x8103, 0xC37A, 0x8104, 0xC37B, 0x8105, 0xC37C, 0x8107, + 0xC37D, 0x8108, 0xC37E, 0x810B, 0xC380, 0x810C, 0xC381, 0x8115, + 0xC382, 0x8117, 0xC383, 0x8119, 0xC384, 0x811B, 0xC385, 0x811C, + 0xC386, 0x811D, 0xC387, 0x811F, 0xC388, 0x8120, 0xC389, 0x8121, + 0xC38A, 0x8122, 0xC38B, 0x8123, 0xC38C, 0x8124, 0xC38D, 0x8125, + 0xC38E, 0x8126, 0xC38F, 0x8127, 0xC390, 0x8128, 0xC391, 0x8129, + 0xC392, 0x812A, 0xC393, 0x812B, 0xC394, 0x812D, 0xC395, 0x812E, + 0xC396, 0x8130, 0xC397, 0x8133, 0xC398, 0x8134, 0xC399, 0x8135, + 0xC39A, 0x8137, 0xC39B, 0x8139, 0xC39C, 0x813A, 0xC39D, 0x813B, + 0xC39E, 0x813C, 0xC39F, 0x813D, 0xC3A0, 0x813F, 0xC3A1, 0x8C29, + 0xC3A2, 0x8292, 0xC3A3, 0x832B, 0xC3A4, 0x76F2, 0xC3A5, 0x6C13, + 0xC3A6, 0x5FD9, 0xC3A7, 0x83BD, 0xC3A8, 0x732B, 0xC3A9, 0x8305, + 0xC3AA, 0x951A, 0xC3AB, 0x6BDB, 0xC3AC, 0x77DB, 0xC3AD, 0x94C6, + 0xC3AE, 0x536F, 0xC3AF, 0x8302, 0xC3B0, 0x5192, 0xC3B1, 0x5E3D, + 0xC3B2, 0x8C8C, 0xC3B3, 0x8D38, 0xC3B4, 0x4E48, 0xC3B5, 0x73AB, + 0xC3B6, 0x679A, 0xC3B7, 0x6885, 0xC3B8, 0x9176, 0xC3B9, 0x9709, + 0xC3BA, 0x7164, 0xC3BB, 0x6CA1, 0xC3BC, 0x7709, 0xC3BD, 0x5A92, + 0xC3BE, 0x9541, 0xC3BF, 0x6BCF, 0xC3C0, 0x7F8E, 0xC3C1, 0x6627, + 0xC3C2, 0x5BD0, 0xC3C3, 0x59B9, 0xC3C4, 0x5A9A, 0xC3C5, 0x95E8, + 0xC3C6, 0x95F7, 0xC3C7, 0x4EEC, 0xC3C8, 0x840C, 0xC3C9, 0x8499, + 0xC3CA, 0x6AAC, 0xC3CB, 0x76DF, 0xC3CC, 0x9530, 0xC3CD, 0x731B, + 0xC3CE, 0x68A6, 0xC3CF, 0x5B5F, 0xC3D0, 0x772F, 0xC3D1, 0x919A, + 0xC3D2, 0x9761, 0xC3D3, 0x7CDC, 0xC3D4, 0x8FF7, 0xC3D5, 0x8C1C, + 0xC3D6, 0x5F25, 0xC3D7, 0x7C73, 0xC3D8, 0x79D8, 0xC3D9, 0x89C5, + 0xC3DA, 0x6CCC, 0xC3DB, 0x871C, 0xC3DC, 0x5BC6, 0xC3DD, 0x5E42, + 0xC3DE, 0x68C9, 0xC3DF, 0x7720, 0xC3E0, 0x7EF5, 0xC3E1, 0x5195, + 0xC3E2, 0x514D, 0xC3E3, 0x52C9, 0xC3E4, 0x5A29, 0xC3E5, 0x7F05, + 0xC3E6, 0x9762, 0xC3E7, 0x82D7, 0xC3E8, 0x63CF, 0xC3E9, 0x7784, + 0xC3EA, 0x85D0, 0xC3EB, 0x79D2, 0xC3EC, 0x6E3A, 0xC3ED, 0x5E99, + 0xC3EE, 0x5999, 0xC3EF, 0x8511, 0xC3F0, 0x706D, 0xC3F1, 0x6C11, + 0xC3F2, 0x62BF, 0xC3F3, 0x76BF, 0xC3F4, 0x654F, 0xC3F5, 0x60AF, + 0xC3F6, 0x95FD, 0xC3F7, 0x660E, 0xC3F8, 0x879F, 0xC3F9, 0x9E23, + 0xC3FA, 0x94ED, 0xC3FB, 0x540D, 0xC3FC, 0x547D, 0xC3FD, 0x8C2C, + 0xC3FE, 0x6478, 0xC440, 0x8140, 0xC441, 0x8141, 0xC442, 0x8142, + 0xC443, 0x8143, 0xC444, 0x8144, 0xC445, 0x8145, 0xC446, 0x8147, + 0xC447, 0x8149, 0xC448, 0x814D, 0xC449, 0x814E, 0xC44A, 0x814F, + 0xC44B, 0x8152, 0xC44C, 0x8156, 0xC44D, 0x8157, 0xC44E, 0x8158, + 0xC44F, 0x815B, 0xC450, 0x815C, 0xC451, 0x815D, 0xC452, 0x815E, + 0xC453, 0x815F, 0xC454, 0x8161, 0xC455, 0x8162, 0xC456, 0x8163, + 0xC457, 0x8164, 0xC458, 0x8166, 0xC459, 0x8168, 0xC45A, 0x816A, + 0xC45B, 0x816B, 0xC45C, 0x816C, 0xC45D, 0x816F, 0xC45E, 0x8172, + 0xC45F, 0x8173, 0xC460, 0x8175, 0xC461, 0x8176, 0xC462, 0x8177, + 0xC463, 0x8178, 0xC464, 0x8181, 0xC465, 0x8183, 0xC466, 0x8184, + 0xC467, 0x8185, 0xC468, 0x8186, 0xC469, 0x8187, 0xC46A, 0x8189, + 0xC46B, 0x818B, 0xC46C, 0x818C, 0xC46D, 0x818D, 0xC46E, 0x818E, + 0xC46F, 0x8190, 0xC470, 0x8192, 0xC471, 0x8193, 0xC472, 0x8194, + 0xC473, 0x8195, 0xC474, 0x8196, 0xC475, 0x8197, 0xC476, 0x8199, + 0xC477, 0x819A, 0xC478, 0x819E, 0xC479, 0x819F, 0xC47A, 0x81A0, + 0xC47B, 0x81A1, 0xC47C, 0x81A2, 0xC47D, 0x81A4, 0xC47E, 0x81A5, + 0xC480, 0x81A7, 0xC481, 0x81A9, 0xC482, 0x81AB, 0xC483, 0x81AC, + 0xC484, 0x81AD, 0xC485, 0x81AE, 0xC486, 0x81AF, 0xC487, 0x81B0, + 0xC488, 0x81B1, 0xC489, 0x81B2, 0xC48A, 0x81B4, 0xC48B, 0x81B5, + 0xC48C, 0x81B6, 0xC48D, 0x81B7, 0xC48E, 0x81B8, 0xC48F, 0x81B9, + 0xC490, 0x81BC, 0xC491, 0x81BD, 0xC492, 0x81BE, 0xC493, 0x81BF, + 0xC494, 0x81C4, 0xC495, 0x81C5, 0xC496, 0x81C7, 0xC497, 0x81C8, + 0xC498, 0x81C9, 0xC499, 0x81CB, 0xC49A, 0x81CD, 0xC49B, 0x81CE, + 0xC49C, 0x81CF, 0xC49D, 0x81D0, 0xC49E, 0x81D1, 0xC49F, 0x81D2, + 0xC4A0, 0x81D3, 0xC4A1, 0x6479, 0xC4A2, 0x8611, 0xC4A3, 0x6A21, + 0xC4A4, 0x819C, 0xC4A5, 0x78E8, 0xC4A6, 0x6469, 0xC4A7, 0x9B54, + 0xC4A8, 0x62B9, 0xC4A9, 0x672B, 0xC4AA, 0x83AB, 0xC4AB, 0x58A8, + 0xC4AC, 0x9ED8, 0xC4AD, 0x6CAB, 0xC4AE, 0x6F20, 0xC4AF, 0x5BDE, + 0xC4B0, 0x964C, 0xC4B1, 0x8C0B, 0xC4B2, 0x725F, 0xC4B3, 0x67D0, + 0xC4B4, 0x62C7, 0xC4B5, 0x7261, 0xC4B6, 0x4EA9, 0xC4B7, 0x59C6, + 0xC4B8, 0x6BCD, 0xC4B9, 0x5893, 0xC4BA, 0x66AE, 0xC4BB, 0x5E55, + 0xC4BC, 0x52DF, 0xC4BD, 0x6155, 0xC4BE, 0x6728, 0xC4BF, 0x76EE, + 0xC4C0, 0x7766, 0xC4C1, 0x7267, 0xC4C2, 0x7A46, 0xC4C3, 0x62FF, + 0xC4C4, 0x54EA, 0xC4C5, 0x5450, 0xC4C6, 0x94A0, 0xC4C7, 0x90A3, + 0xC4C8, 0x5A1C, 0xC4C9, 0x7EB3, 0xC4CA, 0x6C16, 0xC4CB, 0x4E43, + 0xC4CC, 0x5976, 0xC4CD, 0x8010, 0xC4CE, 0x5948, 0xC4CF, 0x5357, + 0xC4D0, 0x7537, 0xC4D1, 0x96BE, 0xC4D2, 0x56CA, 0xC4D3, 0x6320, + 0xC4D4, 0x8111, 0xC4D5, 0x607C, 0xC4D6, 0x95F9, 0xC4D7, 0x6DD6, + 0xC4D8, 0x5462, 0xC4D9, 0x9981, 0xC4DA, 0x5185, 0xC4DB, 0x5AE9, + 0xC4DC, 0x80FD, 0xC4DD, 0x59AE, 0xC4DE, 0x9713, 0xC4DF, 0x502A, + 0xC4E0, 0x6CE5, 0xC4E1, 0x5C3C, 0xC4E2, 0x62DF, 0xC4E3, 0x4F60, + 0xC4E4, 0x533F, 0xC4E5, 0x817B, 0xC4E6, 0x9006, 0xC4E7, 0x6EBA, + 0xC4E8, 0x852B, 0xC4E9, 0x62C8, 0xC4EA, 0x5E74, 0xC4EB, 0x78BE, + 0xC4EC, 0x64B5, 0xC4ED, 0x637B, 0xC4EE, 0x5FF5, 0xC4EF, 0x5A18, + 0xC4F0, 0x917F, 0xC4F1, 0x9E1F, 0xC4F2, 0x5C3F, 0xC4F3, 0x634F, + 0xC4F4, 0x8042, 0xC4F5, 0x5B7D, 0xC4F6, 0x556E, 0xC4F7, 0x954A, + 0xC4F8, 0x954D, 0xC4F9, 0x6D85, 0xC4FA, 0x60A8, 0xC4FB, 0x67E0, + 0xC4FC, 0x72DE, 0xC4FD, 0x51DD, 0xC4FE, 0x5B81, 0xC540, 0x81D4, + 0xC541, 0x81D5, 0xC542, 0x81D6, 0xC543, 0x81D7, 0xC544, 0x81D8, + 0xC545, 0x81D9, 0xC546, 0x81DA, 0xC547, 0x81DB, 0xC548, 0x81DC, + 0xC549, 0x81DD, 0xC54A, 0x81DE, 0xC54B, 0x81DF, 0xC54C, 0x81E0, + 0xC54D, 0x81E1, 0xC54E, 0x81E2, 0xC54F, 0x81E4, 0xC550, 0x81E5, + 0xC551, 0x81E6, 0xC552, 0x81E8, 0xC553, 0x81E9, 0xC554, 0x81EB, + 0xC555, 0x81EE, 0xC556, 0x81EF, 0xC557, 0x81F0, 0xC558, 0x81F1, + 0xC559, 0x81F2, 0xC55A, 0x81F5, 0xC55B, 0x81F6, 0xC55C, 0x81F7, + 0xC55D, 0x81F8, 0xC55E, 0x81F9, 0xC55F, 0x81FA, 0xC560, 0x81FD, + 0xC561, 0x81FF, 0xC562, 0x8203, 0xC563, 0x8207, 0xC564, 0x8208, + 0xC565, 0x8209, 0xC566, 0x820A, 0xC567, 0x820B, 0xC568, 0x820E, + 0xC569, 0x820F, 0xC56A, 0x8211, 0xC56B, 0x8213, 0xC56C, 0x8215, + 0xC56D, 0x8216, 0xC56E, 0x8217, 0xC56F, 0x8218, 0xC570, 0x8219, + 0xC571, 0x821A, 0xC572, 0x821D, 0xC573, 0x8220, 0xC574, 0x8224, + 0xC575, 0x8225, 0xC576, 0x8226, 0xC577, 0x8227, 0xC578, 0x8229, + 0xC579, 0x822E, 0xC57A, 0x8232, 0xC57B, 0x823A, 0xC57C, 0x823C, + 0xC57D, 0x823D, 0xC57E, 0x823F, 0xC580, 0x8240, 0xC581, 0x8241, + 0xC582, 0x8242, 0xC583, 0x8243, 0xC584, 0x8245, 0xC585, 0x8246, + 0xC586, 0x8248, 0xC587, 0x824A, 0xC588, 0x824C, 0xC589, 0x824D, + 0xC58A, 0x824E, 0xC58B, 0x8250, 0xC58C, 0x8251, 0xC58D, 0x8252, + 0xC58E, 0x8253, 0xC58F, 0x8254, 0xC590, 0x8255, 0xC591, 0x8256, + 0xC592, 0x8257, 0xC593, 0x8259, 0xC594, 0x825B, 0xC595, 0x825C, + 0xC596, 0x825D, 0xC597, 0x825E, 0xC598, 0x8260, 0xC599, 0x8261, + 0xC59A, 0x8262, 0xC59B, 0x8263, 0xC59C, 0x8264, 0xC59D, 0x8265, + 0xC59E, 0x8266, 0xC59F, 0x8267, 0xC5A0, 0x8269, 0xC5A1, 0x62E7, + 0xC5A2, 0x6CDE, 0xC5A3, 0x725B, 0xC5A4, 0x626D, 0xC5A5, 0x94AE, + 0xC5A6, 0x7EBD, 0xC5A7, 0x8113, 0xC5A8, 0x6D53, 0xC5A9, 0x519C, + 0xC5AA, 0x5F04, 0xC5AB, 0x5974, 0xC5AC, 0x52AA, 0xC5AD, 0x6012, + 0xC5AE, 0x5973, 0xC5AF, 0x6696, 0xC5B0, 0x8650, 0xC5B1, 0x759F, + 0xC5B2, 0x632A, 0xC5B3, 0x61E6, 0xC5B4, 0x7CEF, 0xC5B5, 0x8BFA, + 0xC5B6, 0x54E6, 0xC5B7, 0x6B27, 0xC5B8, 0x9E25, 0xC5B9, 0x6BB4, + 0xC5BA, 0x85D5, 0xC5BB, 0x5455, 0xC5BC, 0x5076, 0xC5BD, 0x6CA4, + 0xC5BE, 0x556A, 0xC5BF, 0x8DB4, 0xC5C0, 0x722C, 0xC5C1, 0x5E15, + 0xC5C2, 0x6015, 0xC5C3, 0x7436, 0xC5C4, 0x62CD, 0xC5C5, 0x6392, + 0xC5C6, 0x724C, 0xC5C7, 0x5F98, 0xC5C8, 0x6E43, 0xC5C9, 0x6D3E, + 0xC5CA, 0x6500, 0xC5CB, 0x6F58, 0xC5CC, 0x76D8, 0xC5CD, 0x78D0, + 0xC5CE, 0x76FC, 0xC5CF, 0x7554, 0xC5D0, 0x5224, 0xC5D1, 0x53DB, + 0xC5D2, 0x4E53, 0xC5D3, 0x5E9E, 0xC5D4, 0x65C1, 0xC5D5, 0x802A, + 0xC5D6, 0x80D6, 0xC5D7, 0x629B, 0xC5D8, 0x5486, 0xC5D9, 0x5228, + 0xC5DA, 0x70AE, 0xC5DB, 0x888D, 0xC5DC, 0x8DD1, 0xC5DD, 0x6CE1, + 0xC5DE, 0x5478, 0xC5DF, 0x80DA, 0xC5E0, 0x57F9, 0xC5E1, 0x88F4, + 0xC5E2, 0x8D54, 0xC5E3, 0x966A, 0xC5E4, 0x914D, 0xC5E5, 0x4F69, + 0xC5E6, 0x6C9B, 0xC5E7, 0x55B7, 0xC5E8, 0x76C6, 0xC5E9, 0x7830, + 0xC5EA, 0x62A8, 0xC5EB, 0x70F9, 0xC5EC, 0x6F8E, 0xC5ED, 0x5F6D, + 0xC5EE, 0x84EC, 0xC5EF, 0x68DA, 0xC5F0, 0x787C, 0xC5F1, 0x7BF7, + 0xC5F2, 0x81A8, 0xC5F3, 0x670B, 0xC5F4, 0x9E4F, 0xC5F5, 0x6367, + 0xC5F6, 0x78B0, 0xC5F7, 0x576F, 0xC5F8, 0x7812, 0xC5F9, 0x9739, + 0xC5FA, 0x6279, 0xC5FB, 0x62AB, 0xC5FC, 0x5288, 0xC5FD, 0x7435, + 0xC5FE, 0x6BD7, 0xC640, 0x826A, 0xC641, 0x826B, 0xC642, 0x826C, + 0xC643, 0x826D, 0xC644, 0x8271, 0xC645, 0x8275, 0xC646, 0x8276, + 0xC647, 0x8277, 0xC648, 0x8278, 0xC649, 0x827B, 0xC64A, 0x827C, + 0xC64B, 0x8280, 0xC64C, 0x8281, 0xC64D, 0x8283, 0xC64E, 0x8285, + 0xC64F, 0x8286, 0xC650, 0x8287, 0xC651, 0x8289, 0xC652, 0x828C, + 0xC653, 0x8290, 0xC654, 0x8293, 0xC655, 0x8294, 0xC656, 0x8295, + 0xC657, 0x8296, 0xC658, 0x829A, 0xC659, 0x829B, 0xC65A, 0x829E, + 0xC65B, 0x82A0, 0xC65C, 0x82A2, 0xC65D, 0x82A3, 0xC65E, 0x82A7, + 0xC65F, 0x82B2, 0xC660, 0x82B5, 0xC661, 0x82B6, 0xC662, 0x82BA, + 0xC663, 0x82BB, 0xC664, 0x82BC, 0xC665, 0x82BF, 0xC666, 0x82C0, + 0xC667, 0x82C2, 0xC668, 0x82C3, 0xC669, 0x82C5, 0xC66A, 0x82C6, + 0xC66B, 0x82C9, 0xC66C, 0x82D0, 0xC66D, 0x82D6, 0xC66E, 0x82D9, + 0xC66F, 0x82DA, 0xC670, 0x82DD, 0xC671, 0x82E2, 0xC672, 0x82E7, + 0xC673, 0x82E8, 0xC674, 0x82E9, 0xC675, 0x82EA, 0xC676, 0x82EC, + 0xC677, 0x82ED, 0xC678, 0x82EE, 0xC679, 0x82F0, 0xC67A, 0x82F2, + 0xC67B, 0x82F3, 0xC67C, 0x82F5, 0xC67D, 0x82F6, 0xC67E, 0x82F8, + 0xC680, 0x82FA, 0xC681, 0x82FC, 0xC682, 0x82FD, 0xC683, 0x82FE, + 0xC684, 0x82FF, 0xC685, 0x8300, 0xC686, 0x830A, 0xC687, 0x830B, + 0xC688, 0x830D, 0xC689, 0x8310, 0xC68A, 0x8312, 0xC68B, 0x8313, + 0xC68C, 0x8316, 0xC68D, 0x8318, 0xC68E, 0x8319, 0xC68F, 0x831D, + 0xC690, 0x831E, 0xC691, 0x831F, 0xC692, 0x8320, 0xC693, 0x8321, + 0xC694, 0x8322, 0xC695, 0x8323, 0xC696, 0x8324, 0xC697, 0x8325, + 0xC698, 0x8326, 0xC699, 0x8329, 0xC69A, 0x832A, 0xC69B, 0x832E, + 0xC69C, 0x8330, 0xC69D, 0x8332, 0xC69E, 0x8337, 0xC69F, 0x833B, + 0xC6A0, 0x833D, 0xC6A1, 0x5564, 0xC6A2, 0x813E, 0xC6A3, 0x75B2, + 0xC6A4, 0x76AE, 0xC6A5, 0x5339, 0xC6A6, 0x75DE, 0xC6A7, 0x50FB, + 0xC6A8, 0x5C41, 0xC6A9, 0x8B6C, 0xC6AA, 0x7BC7, 0xC6AB, 0x504F, + 0xC6AC, 0x7247, 0xC6AD, 0x9A97, 0xC6AE, 0x98D8, 0xC6AF, 0x6F02, + 0xC6B0, 0x74E2, 0xC6B1, 0x7968, 0xC6B2, 0x6487, 0xC6B3, 0x77A5, + 0xC6B4, 0x62FC, 0xC6B5, 0x9891, 0xC6B6, 0x8D2B, 0xC6B7, 0x54C1, + 0xC6B8, 0x8058, 0xC6B9, 0x4E52, 0xC6BA, 0x576A, 0xC6BB, 0x82F9, + 0xC6BC, 0x840D, 0xC6BD, 0x5E73, 0xC6BE, 0x51ED, 0xC6BF, 0x74F6, + 0xC6C0, 0x8BC4, 0xC6C1, 0x5C4F, 0xC6C2, 0x5761, 0xC6C3, 0x6CFC, + 0xC6C4, 0x9887, 0xC6C5, 0x5A46, 0xC6C6, 0x7834, 0xC6C7, 0x9B44, + 0xC6C8, 0x8FEB, 0xC6C9, 0x7C95, 0xC6CA, 0x5256, 0xC6CB, 0x6251, + 0xC6CC, 0x94FA, 0xC6CD, 0x4EC6, 0xC6CE, 0x8386, 0xC6CF, 0x8461, + 0xC6D0, 0x83E9, 0xC6D1, 0x84B2, 0xC6D2, 0x57D4, 0xC6D3, 0x6734, + 0xC6D4, 0x5703, 0xC6D5, 0x666E, 0xC6D6, 0x6D66, 0xC6D7, 0x8C31, + 0xC6D8, 0x66DD, 0xC6D9, 0x7011, 0xC6DA, 0x671F, 0xC6DB, 0x6B3A, + 0xC6DC, 0x6816, 0xC6DD, 0x621A, 0xC6DE, 0x59BB, 0xC6DF, 0x4E03, + 0xC6E0, 0x51C4, 0xC6E1, 0x6F06, 0xC6E2, 0x67D2, 0xC6E3, 0x6C8F, + 0xC6E4, 0x5176, 0xC6E5, 0x68CB, 0xC6E6, 0x5947, 0xC6E7, 0x6B67, + 0xC6E8, 0x7566, 0xC6E9, 0x5D0E, 0xC6EA, 0x8110, 0xC6EB, 0x9F50, + 0xC6EC, 0x65D7, 0xC6ED, 0x7948, 0xC6EE, 0x7941, 0xC6EF, 0x9A91, + 0xC6F0, 0x8D77, 0xC6F1, 0x5C82, 0xC6F2, 0x4E5E, 0xC6F3, 0x4F01, + 0xC6F4, 0x542F, 0xC6F5, 0x5951, 0xC6F6, 0x780C, 0xC6F7, 0x5668, + 0xC6F8, 0x6C14, 0xC6F9, 0x8FC4, 0xC6FA, 0x5F03, 0xC6FB, 0x6C7D, + 0xC6FC, 0x6CE3, 0xC6FD, 0x8BAB, 0xC6FE, 0x6390, 0xC740, 0x833E, + 0xC741, 0x833F, 0xC742, 0x8341, 0xC743, 0x8342, 0xC744, 0x8344, + 0xC745, 0x8345, 0xC746, 0x8348, 0xC747, 0x834A, 0xC748, 0x834B, + 0xC749, 0x834C, 0xC74A, 0x834D, 0xC74B, 0x834E, 0xC74C, 0x8353, + 0xC74D, 0x8355, 0xC74E, 0x8356, 0xC74F, 0x8357, 0xC750, 0x8358, + 0xC751, 0x8359, 0xC752, 0x835D, 0xC753, 0x8362, 0xC754, 0x8370, + 0xC755, 0x8371, 0xC756, 0x8372, 0xC757, 0x8373, 0xC758, 0x8374, + 0xC759, 0x8375, 0xC75A, 0x8376, 0xC75B, 0x8379, 0xC75C, 0x837A, + 0xC75D, 0x837E, 0xC75E, 0x837F, 0xC75F, 0x8380, 0xC760, 0x8381, + 0xC761, 0x8382, 0xC762, 0x8383, 0xC763, 0x8384, 0xC764, 0x8387, + 0xC765, 0x8388, 0xC766, 0x838A, 0xC767, 0x838B, 0xC768, 0x838C, + 0xC769, 0x838D, 0xC76A, 0x838F, 0xC76B, 0x8390, 0xC76C, 0x8391, + 0xC76D, 0x8394, 0xC76E, 0x8395, 0xC76F, 0x8396, 0xC770, 0x8397, + 0xC771, 0x8399, 0xC772, 0x839A, 0xC773, 0x839D, 0xC774, 0x839F, + 0xC775, 0x83A1, 0xC776, 0x83A2, 0xC777, 0x83A3, 0xC778, 0x83A4, + 0xC779, 0x83A5, 0xC77A, 0x83A6, 0xC77B, 0x83A7, 0xC77C, 0x83AC, + 0xC77D, 0x83AD, 0xC77E, 0x83AE, 0xC780, 0x83AF, 0xC781, 0x83B5, + 0xC782, 0x83BB, 0xC783, 0x83BE, 0xC784, 0x83BF, 0xC785, 0x83C2, + 0xC786, 0x83C3, 0xC787, 0x83C4, 0xC788, 0x83C6, 0xC789, 0x83C8, + 0xC78A, 0x83C9, 0xC78B, 0x83CB, 0xC78C, 0x83CD, 0xC78D, 0x83CE, + 0xC78E, 0x83D0, 0xC78F, 0x83D1, 0xC790, 0x83D2, 0xC791, 0x83D3, + 0xC792, 0x83D5, 0xC793, 0x83D7, 0xC794, 0x83D9, 0xC795, 0x83DA, + 0xC796, 0x83DB, 0xC797, 0x83DE, 0xC798, 0x83E2, 0xC799, 0x83E3, + 0xC79A, 0x83E4, 0xC79B, 0x83E6, 0xC79C, 0x83E7, 0xC79D, 0x83E8, + 0xC79E, 0x83EB, 0xC79F, 0x83EC, 0xC7A0, 0x83ED, 0xC7A1, 0x6070, + 0xC7A2, 0x6D3D, 0xC7A3, 0x7275, 0xC7A4, 0x6266, 0xC7A5, 0x948E, + 0xC7A6, 0x94C5, 0xC7A7, 0x5343, 0xC7A8, 0x8FC1, 0xC7A9, 0x7B7E, + 0xC7AA, 0x4EDF, 0xC7AB, 0x8C26, 0xC7AC, 0x4E7E, 0xC7AD, 0x9ED4, + 0xC7AE, 0x94B1, 0xC7AF, 0x94B3, 0xC7B0, 0x524D, 0xC7B1, 0x6F5C, + 0xC7B2, 0x9063, 0xC7B3, 0x6D45, 0xC7B4, 0x8C34, 0xC7B5, 0x5811, + 0xC7B6, 0x5D4C, 0xC7B7, 0x6B20, 0xC7B8, 0x6B49, 0xC7B9, 0x67AA, + 0xC7BA, 0x545B, 0xC7BB, 0x8154, 0xC7BC, 0x7F8C, 0xC7BD, 0x5899, + 0xC7BE, 0x8537, 0xC7BF, 0x5F3A, 0xC7C0, 0x62A2, 0xC7C1, 0x6A47, + 0xC7C2, 0x9539, 0xC7C3, 0x6572, 0xC7C4, 0x6084, 0xC7C5, 0x6865, + 0xC7C6, 0x77A7, 0xC7C7, 0x4E54, 0xC7C8, 0x4FA8, 0xC7C9, 0x5DE7, + 0xC7CA, 0x9798, 0xC7CB, 0x64AC, 0xC7CC, 0x7FD8, 0xC7CD, 0x5CED, + 0xC7CE, 0x4FCF, 0xC7CF, 0x7A8D, 0xC7D0, 0x5207, 0xC7D1, 0x8304, + 0xC7D2, 0x4E14, 0xC7D3, 0x602F, 0xC7D4, 0x7A83, 0xC7D5, 0x94A6, + 0xC7D6, 0x4FB5, 0xC7D7, 0x4EB2, 0xC7D8, 0x79E6, 0xC7D9, 0x7434, + 0xC7DA, 0x52E4, 0xC7DB, 0x82B9, 0xC7DC, 0x64D2, 0xC7DD, 0x79BD, + 0xC7DE, 0x5BDD, 0xC7DF, 0x6C81, 0xC7E0, 0x9752, 0xC7E1, 0x8F7B, + 0xC7E2, 0x6C22, 0xC7E3, 0x503E, 0xC7E4, 0x537F, 0xC7E5, 0x6E05, + 0xC7E6, 0x64CE, 0xC7E7, 0x6674, 0xC7E8, 0x6C30, 0xC7E9, 0x60C5, + 0xC7EA, 0x9877, 0xC7EB, 0x8BF7, 0xC7EC, 0x5E86, 0xC7ED, 0x743C, + 0xC7EE, 0x7A77, 0xC7EF, 0x79CB, 0xC7F0, 0x4E18, 0xC7F1, 0x90B1, + 0xC7F2, 0x7403, 0xC7F3, 0x6C42, 0xC7F4, 0x56DA, 0xC7F5, 0x914B, + 0xC7F6, 0x6CC5, 0xC7F7, 0x8D8B, 0xC7F8, 0x533A, 0xC7F9, 0x86C6, + 0xC7FA, 0x66F2, 0xC7FB, 0x8EAF, 0xC7FC, 0x5C48, 0xC7FD, 0x9A71, + 0xC7FE, 0x6E20, 0xC840, 0x83EE, 0xC841, 0x83EF, 0xC842, 0x83F3, + 0xC843, 0x83F4, 0xC844, 0x83F5, 0xC845, 0x83F6, 0xC846, 0x83F7, + 0xC847, 0x83FA, 0xC848, 0x83FB, 0xC849, 0x83FC, 0xC84A, 0x83FE, + 0xC84B, 0x83FF, 0xC84C, 0x8400, 0xC84D, 0x8402, 0xC84E, 0x8405, + 0xC84F, 0x8407, 0xC850, 0x8408, 0xC851, 0x8409, 0xC852, 0x840A, + 0xC853, 0x8410, 0xC854, 0x8412, 0xC855, 0x8413, 0xC856, 0x8414, + 0xC857, 0x8415, 0xC858, 0x8416, 0xC859, 0x8417, 0xC85A, 0x8419, + 0xC85B, 0x841A, 0xC85C, 0x841B, 0xC85D, 0x841E, 0xC85E, 0x841F, + 0xC85F, 0x8420, 0xC860, 0x8421, 0xC861, 0x8422, 0xC862, 0x8423, + 0xC863, 0x8429, 0xC864, 0x842A, 0xC865, 0x842B, 0xC866, 0x842C, + 0xC867, 0x842D, 0xC868, 0x842E, 0xC869, 0x842F, 0xC86A, 0x8430, + 0xC86B, 0x8432, 0xC86C, 0x8433, 0xC86D, 0x8434, 0xC86E, 0x8435, + 0xC86F, 0x8436, 0xC870, 0x8437, 0xC871, 0x8439, 0xC872, 0x843A, + 0xC873, 0x843B, 0xC874, 0x843E, 0xC875, 0x843F, 0xC876, 0x8440, + 0xC877, 0x8441, 0xC878, 0x8442, 0xC879, 0x8443, 0xC87A, 0x8444, + 0xC87B, 0x8445, 0xC87C, 0x8447, 0xC87D, 0x8448, 0xC87E, 0x8449, + 0xC880, 0x844A, 0xC881, 0x844B, 0xC882, 0x844C, 0xC883, 0x844D, + 0xC884, 0x844E, 0xC885, 0x844F, 0xC886, 0x8450, 0xC887, 0x8452, + 0xC888, 0x8453, 0xC889, 0x8454, 0xC88A, 0x8455, 0xC88B, 0x8456, + 0xC88C, 0x8458, 0xC88D, 0x845D, 0xC88E, 0x845E, 0xC88F, 0x845F, + 0xC890, 0x8460, 0xC891, 0x8462, 0xC892, 0x8464, 0xC893, 0x8465, + 0xC894, 0x8466, 0xC895, 0x8467, 0xC896, 0x8468, 0xC897, 0x846A, + 0xC898, 0x846E, 0xC899, 0x846F, 0xC89A, 0x8470, 0xC89B, 0x8472, + 0xC89C, 0x8474, 0xC89D, 0x8477, 0xC89E, 0x8479, 0xC89F, 0x847B, + 0xC8A0, 0x847C, 0xC8A1, 0x53D6, 0xC8A2, 0x5A36, 0xC8A3, 0x9F8B, + 0xC8A4, 0x8DA3, 0xC8A5, 0x53BB, 0xC8A6, 0x5708, 0xC8A7, 0x98A7, + 0xC8A8, 0x6743, 0xC8A9, 0x919B, 0xC8AA, 0x6CC9, 0xC8AB, 0x5168, + 0xC8AC, 0x75CA, 0xC8AD, 0x62F3, 0xC8AE, 0x72AC, 0xC8AF, 0x5238, + 0xC8B0, 0x529D, 0xC8B1, 0x7F3A, 0xC8B2, 0x7094, 0xC8B3, 0x7638, + 0xC8B4, 0x5374, 0xC8B5, 0x9E4A, 0xC8B6, 0x69B7, 0xC8B7, 0x786E, + 0xC8B8, 0x96C0, 0xC8B9, 0x88D9, 0xC8BA, 0x7FA4, 0xC8BB, 0x7136, + 0xC8BC, 0x71C3, 0xC8BD, 0x5189, 0xC8BE, 0x67D3, 0xC8BF, 0x74E4, + 0xC8C0, 0x58E4, 0xC8C1, 0x6518, 0xC8C2, 0x56B7, 0xC8C3, 0x8BA9, + 0xC8C4, 0x9976, 0xC8C5, 0x6270, 0xC8C6, 0x7ED5, 0xC8C7, 0x60F9, + 0xC8C8, 0x70ED, 0xC8C9, 0x58EC, 0xC8CA, 0x4EC1, 0xC8CB, 0x4EBA, + 0xC8CC, 0x5FCD, 0xC8CD, 0x97E7, 0xC8CE, 0x4EFB, 0xC8CF, 0x8BA4, + 0xC8D0, 0x5203, 0xC8D1, 0x598A, 0xC8D2, 0x7EAB, 0xC8D3, 0x6254, + 0xC8D4, 0x4ECD, 0xC8D5, 0x65E5, 0xC8D6, 0x620E, 0xC8D7, 0x8338, + 0xC8D8, 0x84C9, 0xC8D9, 0x8363, 0xC8DA, 0x878D, 0xC8DB, 0x7194, + 0xC8DC, 0x6EB6, 0xC8DD, 0x5BB9, 0xC8DE, 0x7ED2, 0xC8DF, 0x5197, + 0xC8E0, 0x63C9, 0xC8E1, 0x67D4, 0xC8E2, 0x8089, 0xC8E3, 0x8339, + 0xC8E4, 0x8815, 0xC8E5, 0x5112, 0xC8E6, 0x5B7A, 0xC8E7, 0x5982, + 0xC8E8, 0x8FB1, 0xC8E9, 0x4E73, 0xC8EA, 0x6C5D, 0xC8EB, 0x5165, + 0xC8EC, 0x8925, 0xC8ED, 0x8F6F, 0xC8EE, 0x962E, 0xC8EF, 0x854A, + 0xC8F0, 0x745E, 0xC8F1, 0x9510, 0xC8F2, 0x95F0, 0xC8F3, 0x6DA6, + 0xC8F4, 0x82E5, 0xC8F5, 0x5F31, 0xC8F6, 0x6492, 0xC8F7, 0x6D12, + 0xC8F8, 0x8428, 0xC8F9, 0x816E, 0xC8FA, 0x9CC3, 0xC8FB, 0x585E, + 0xC8FC, 0x8D5B, 0xC8FD, 0x4E09, 0xC8FE, 0x53C1, 0xC940, 0x847D, + 0xC941, 0x847E, 0xC942, 0x847F, 0xC943, 0x8480, 0xC944, 0x8481, + 0xC945, 0x8483, 0xC946, 0x8484, 0xC947, 0x8485, 0xC948, 0x8486, + 0xC949, 0x848A, 0xC94A, 0x848D, 0xC94B, 0x848F, 0xC94C, 0x8490, + 0xC94D, 0x8491, 0xC94E, 0x8492, 0xC94F, 0x8493, 0xC950, 0x8494, + 0xC951, 0x8495, 0xC952, 0x8496, 0xC953, 0x8498, 0xC954, 0x849A, + 0xC955, 0x849B, 0xC956, 0x849D, 0xC957, 0x849E, 0xC958, 0x849F, + 0xC959, 0x84A0, 0xC95A, 0x84A2, 0xC95B, 0x84A3, 0xC95C, 0x84A4, + 0xC95D, 0x84A5, 0xC95E, 0x84A6, 0xC95F, 0x84A7, 0xC960, 0x84A8, + 0xC961, 0x84A9, 0xC962, 0x84AA, 0xC963, 0x84AB, 0xC964, 0x84AC, + 0xC965, 0x84AD, 0xC966, 0x84AE, 0xC967, 0x84B0, 0xC968, 0x84B1, + 0xC969, 0x84B3, 0xC96A, 0x84B5, 0xC96B, 0x84B6, 0xC96C, 0x84B7, + 0xC96D, 0x84BB, 0xC96E, 0x84BC, 0xC96F, 0x84BE, 0xC970, 0x84C0, + 0xC971, 0x84C2, 0xC972, 0x84C3, 0xC973, 0x84C5, 0xC974, 0x84C6, + 0xC975, 0x84C7, 0xC976, 0x84C8, 0xC977, 0x84CB, 0xC978, 0x84CC, + 0xC979, 0x84CE, 0xC97A, 0x84CF, 0xC97B, 0x84D2, 0xC97C, 0x84D4, + 0xC97D, 0x84D5, 0xC97E, 0x84D7, 0xC980, 0x84D8, 0xC981, 0x84D9, + 0xC982, 0x84DA, 0xC983, 0x84DB, 0xC984, 0x84DC, 0xC985, 0x84DE, + 0xC986, 0x84E1, 0xC987, 0x84E2, 0xC988, 0x84E4, 0xC989, 0x84E7, + 0xC98A, 0x84E8, 0xC98B, 0x84E9, 0xC98C, 0x84EA, 0xC98D, 0x84EB, + 0xC98E, 0x84ED, 0xC98F, 0x84EE, 0xC990, 0x84EF, 0xC991, 0x84F1, + 0xC992, 0x84F2, 0xC993, 0x84F3, 0xC994, 0x84F4, 0xC995, 0x84F5, + 0xC996, 0x84F6, 0xC997, 0x84F7, 0xC998, 0x84F8, 0xC999, 0x84F9, + 0xC99A, 0x84FA, 0xC99B, 0x84FB, 0xC99C, 0x84FD, 0xC99D, 0x84FE, + 0xC99E, 0x8500, 0xC99F, 0x8501, 0xC9A0, 0x8502, 0xC9A1, 0x4F1E, + 0xC9A2, 0x6563, 0xC9A3, 0x6851, 0xC9A4, 0x55D3, 0xC9A5, 0x4E27, + 0xC9A6, 0x6414, 0xC9A7, 0x9A9A, 0xC9A8, 0x626B, 0xC9A9, 0x5AC2, + 0xC9AA, 0x745F, 0xC9AB, 0x8272, 0xC9AC, 0x6DA9, 0xC9AD, 0x68EE, + 0xC9AE, 0x50E7, 0xC9AF, 0x838E, 0xC9B0, 0x7802, 0xC9B1, 0x6740, + 0xC9B2, 0x5239, 0xC9B3, 0x6C99, 0xC9B4, 0x7EB1, 0xC9B5, 0x50BB, + 0xC9B6, 0x5565, 0xC9B7, 0x715E, 0xC9B8, 0x7B5B, 0xC9B9, 0x6652, + 0xC9BA, 0x73CA, 0xC9BB, 0x82EB, 0xC9BC, 0x6749, 0xC9BD, 0x5C71, + 0xC9BE, 0x5220, 0xC9BF, 0x717D, 0xC9C0, 0x886B, 0xC9C1, 0x95EA, + 0xC9C2, 0x9655, 0xC9C3, 0x64C5, 0xC9C4, 0x8D61, 0xC9C5, 0x81B3, + 0xC9C6, 0x5584, 0xC9C7, 0x6C55, 0xC9C8, 0x6247, 0xC9C9, 0x7F2E, + 0xC9CA, 0x5892, 0xC9CB, 0x4F24, 0xC9CC, 0x5546, 0xC9CD, 0x8D4F, + 0xC9CE, 0x664C, 0xC9CF, 0x4E0A, 0xC9D0, 0x5C1A, 0xC9D1, 0x88F3, + 0xC9D2, 0x68A2, 0xC9D3, 0x634E, 0xC9D4, 0x7A0D, 0xC9D5, 0x70E7, + 0xC9D6, 0x828D, 0xC9D7, 0x52FA, 0xC9D8, 0x97F6, 0xC9D9, 0x5C11, + 0xC9DA, 0x54E8, 0xC9DB, 0x90B5, 0xC9DC, 0x7ECD, 0xC9DD, 0x5962, + 0xC9DE, 0x8D4A, 0xC9DF, 0x86C7, 0xC9E0, 0x820C, 0xC9E1, 0x820D, + 0xC9E2, 0x8D66, 0xC9E3, 0x6444, 0xC9E4, 0x5C04, 0xC9E5, 0x6151, + 0xC9E6, 0x6D89, 0xC9E7, 0x793E, 0xC9E8, 0x8BBE, 0xC9E9, 0x7837, + 0xC9EA, 0x7533, 0xC9EB, 0x547B, 0xC9EC, 0x4F38, 0xC9ED, 0x8EAB, + 0xC9EE, 0x6DF1, 0xC9EF, 0x5A20, 0xC9F0, 0x7EC5, 0xC9F1, 0x795E, + 0xC9F2, 0x6C88, 0xC9F3, 0x5BA1, 0xC9F4, 0x5A76, 0xC9F5, 0x751A, + 0xC9F6, 0x80BE, 0xC9F7, 0x614E, 0xC9F8, 0x6E17, 0xC9F9, 0x58F0, + 0xC9FA, 0x751F, 0xC9FB, 0x7525, 0xC9FC, 0x7272, 0xC9FD, 0x5347, + 0xC9FE, 0x7EF3, 0xCA40, 0x8503, 0xCA41, 0x8504, 0xCA42, 0x8505, + 0xCA43, 0x8506, 0xCA44, 0x8507, 0xCA45, 0x8508, 0xCA46, 0x8509, + 0xCA47, 0x850A, 0xCA48, 0x850B, 0xCA49, 0x850D, 0xCA4A, 0x850E, + 0xCA4B, 0x850F, 0xCA4C, 0x8510, 0xCA4D, 0x8512, 0xCA4E, 0x8514, + 0xCA4F, 0x8515, 0xCA50, 0x8516, 0xCA51, 0x8518, 0xCA52, 0x8519, + 0xCA53, 0x851B, 0xCA54, 0x851C, 0xCA55, 0x851D, 0xCA56, 0x851E, + 0xCA57, 0x8520, 0xCA58, 0x8522, 0xCA59, 0x8523, 0xCA5A, 0x8524, + 0xCA5B, 0x8525, 0xCA5C, 0x8526, 0xCA5D, 0x8527, 0xCA5E, 0x8528, + 0xCA5F, 0x8529, 0xCA60, 0x852A, 0xCA61, 0x852D, 0xCA62, 0x852E, + 0xCA63, 0x852F, 0xCA64, 0x8530, 0xCA65, 0x8531, 0xCA66, 0x8532, + 0xCA67, 0x8533, 0xCA68, 0x8534, 0xCA69, 0x8535, 0xCA6A, 0x8536, + 0xCA6B, 0x853E, 0xCA6C, 0x853F, 0xCA6D, 0x8540, 0xCA6E, 0x8541, + 0xCA6F, 0x8542, 0xCA70, 0x8544, 0xCA71, 0x8545, 0xCA72, 0x8546, + 0xCA73, 0x8547, 0xCA74, 0x854B, 0xCA75, 0x854C, 0xCA76, 0x854D, + 0xCA77, 0x854E, 0xCA78, 0x854F, 0xCA79, 0x8550, 0xCA7A, 0x8551, + 0xCA7B, 0x8552, 0xCA7C, 0x8553, 0xCA7D, 0x8554, 0xCA7E, 0x8555, + 0xCA80, 0x8557, 0xCA81, 0x8558, 0xCA82, 0x855A, 0xCA83, 0x855B, + 0xCA84, 0x855C, 0xCA85, 0x855D, 0xCA86, 0x855F, 0xCA87, 0x8560, + 0xCA88, 0x8561, 0xCA89, 0x8562, 0xCA8A, 0x8563, 0xCA8B, 0x8565, + 0xCA8C, 0x8566, 0xCA8D, 0x8567, 0xCA8E, 0x8569, 0xCA8F, 0x856A, + 0xCA90, 0x856B, 0xCA91, 0x856C, 0xCA92, 0x856D, 0xCA93, 0x856E, + 0xCA94, 0x856F, 0xCA95, 0x8570, 0xCA96, 0x8571, 0xCA97, 0x8573, + 0xCA98, 0x8575, 0xCA99, 0x8576, 0xCA9A, 0x8577, 0xCA9B, 0x8578, + 0xCA9C, 0x857C, 0xCA9D, 0x857D, 0xCA9E, 0x857F, 0xCA9F, 0x8580, + 0xCAA0, 0x8581, 0xCAA1, 0x7701, 0xCAA2, 0x76DB, 0xCAA3, 0x5269, + 0xCAA4, 0x80DC, 0xCAA5, 0x5723, 0xCAA6, 0x5E08, 0xCAA7, 0x5931, + 0xCAA8, 0x72EE, 0xCAA9, 0x65BD, 0xCAAA, 0x6E7F, 0xCAAB, 0x8BD7, + 0xCAAC, 0x5C38, 0xCAAD, 0x8671, 0xCAAE, 0x5341, 0xCAAF, 0x77F3, + 0xCAB0, 0x62FE, 0xCAB1, 0x65F6, 0xCAB2, 0x4EC0, 0xCAB3, 0x98DF, + 0xCAB4, 0x8680, 0xCAB5, 0x5B9E, 0xCAB6, 0x8BC6, 0xCAB7, 0x53F2, + 0xCAB8, 0x77E2, 0xCAB9, 0x4F7F, 0xCABA, 0x5C4E, 0xCABB, 0x9A76, + 0xCABC, 0x59CB, 0xCABD, 0x5F0F, 0xCABE, 0x793A, 0xCABF, 0x58EB, + 0xCAC0, 0x4E16, 0xCAC1, 0x67FF, 0xCAC2, 0x4E8B, 0xCAC3, 0x62ED, + 0xCAC4, 0x8A93, 0xCAC5, 0x901D, 0xCAC6, 0x52BF, 0xCAC7, 0x662F, + 0xCAC8, 0x55DC, 0xCAC9, 0x566C, 0xCACA, 0x9002, 0xCACB, 0x4ED5, + 0xCACC, 0x4F8D, 0xCACD, 0x91CA, 0xCACE, 0x9970, 0xCACF, 0x6C0F, + 0xCAD0, 0x5E02, 0xCAD1, 0x6043, 0xCAD2, 0x5BA4, 0xCAD3, 0x89C6, + 0xCAD4, 0x8BD5, 0xCAD5, 0x6536, 0xCAD6, 0x624B, 0xCAD7, 0x9996, + 0xCAD8, 0x5B88, 0xCAD9, 0x5BFF, 0xCADA, 0x6388, 0xCADB, 0x552E, + 0xCADC, 0x53D7, 0xCADD, 0x7626, 0xCADE, 0x517D, 0xCADF, 0x852C, + 0xCAE0, 0x67A2, 0xCAE1, 0x68B3, 0xCAE2, 0x6B8A, 0xCAE3, 0x6292, + 0xCAE4, 0x8F93, 0xCAE5, 0x53D4, 0xCAE6, 0x8212, 0xCAE7, 0x6DD1, + 0xCAE8, 0x758F, 0xCAE9, 0x4E66, 0xCAEA, 0x8D4E, 0xCAEB, 0x5B70, + 0xCAEC, 0x719F, 0xCAED, 0x85AF, 0xCAEE, 0x6691, 0xCAEF, 0x66D9, + 0xCAF0, 0x7F72, 0xCAF1, 0x8700, 0xCAF2, 0x9ECD, 0xCAF3, 0x9F20, + 0xCAF4, 0x5C5E, 0xCAF5, 0x672F, 0xCAF6, 0x8FF0, 0xCAF7, 0x6811, + 0xCAF8, 0x675F, 0xCAF9, 0x620D, 0xCAFA, 0x7AD6, 0xCAFB, 0x5885, + 0xCAFC, 0x5EB6, 0xCAFD, 0x6570, 0xCAFE, 0x6F31, 0xCB40, 0x8582, + 0xCB41, 0x8583, 0xCB42, 0x8586, 0xCB43, 0x8588, 0xCB44, 0x8589, + 0xCB45, 0x858A, 0xCB46, 0x858B, 0xCB47, 0x858C, 0xCB48, 0x858D, + 0xCB49, 0x858E, 0xCB4A, 0x8590, 0xCB4B, 0x8591, 0xCB4C, 0x8592, + 0xCB4D, 0x8593, 0xCB4E, 0x8594, 0xCB4F, 0x8595, 0xCB50, 0x8596, + 0xCB51, 0x8597, 0xCB52, 0x8598, 0xCB53, 0x8599, 0xCB54, 0x859A, + 0xCB55, 0x859D, 0xCB56, 0x859E, 0xCB57, 0x859F, 0xCB58, 0x85A0, + 0xCB59, 0x85A1, 0xCB5A, 0x85A2, 0xCB5B, 0x85A3, 0xCB5C, 0x85A5, + 0xCB5D, 0x85A6, 0xCB5E, 0x85A7, 0xCB5F, 0x85A9, 0xCB60, 0x85AB, + 0xCB61, 0x85AC, 0xCB62, 0x85AD, 0xCB63, 0x85B1, 0xCB64, 0x85B2, + 0xCB65, 0x85B3, 0xCB66, 0x85B4, 0xCB67, 0x85B5, 0xCB68, 0x85B6, + 0xCB69, 0x85B8, 0xCB6A, 0x85BA, 0xCB6B, 0x85BB, 0xCB6C, 0x85BC, + 0xCB6D, 0x85BD, 0xCB6E, 0x85BE, 0xCB6F, 0x85BF, 0xCB70, 0x85C0, + 0xCB71, 0x85C2, 0xCB72, 0x85C3, 0xCB73, 0x85C4, 0xCB74, 0x85C5, + 0xCB75, 0x85C6, 0xCB76, 0x85C7, 0xCB77, 0x85C8, 0xCB78, 0x85CA, + 0xCB79, 0x85CB, 0xCB7A, 0x85CC, 0xCB7B, 0x85CD, 0xCB7C, 0x85CE, + 0xCB7D, 0x85D1, 0xCB7E, 0x85D2, 0xCB80, 0x85D4, 0xCB81, 0x85D6, + 0xCB82, 0x85D7, 0xCB83, 0x85D8, 0xCB84, 0x85D9, 0xCB85, 0x85DA, + 0xCB86, 0x85DB, 0xCB87, 0x85DD, 0xCB88, 0x85DE, 0xCB89, 0x85DF, + 0xCB8A, 0x85E0, 0xCB8B, 0x85E1, 0xCB8C, 0x85E2, 0xCB8D, 0x85E3, + 0xCB8E, 0x85E5, 0xCB8F, 0x85E6, 0xCB90, 0x85E7, 0xCB91, 0x85E8, + 0xCB92, 0x85EA, 0xCB93, 0x85EB, 0xCB94, 0x85EC, 0xCB95, 0x85ED, + 0xCB96, 0x85EE, 0xCB97, 0x85EF, 0xCB98, 0x85F0, 0xCB99, 0x85F1, + 0xCB9A, 0x85F2, 0xCB9B, 0x85F3, 0xCB9C, 0x85F4, 0xCB9D, 0x85F5, + 0xCB9E, 0x85F6, 0xCB9F, 0x85F7, 0xCBA0, 0x85F8, 0xCBA1, 0x6055, + 0xCBA2, 0x5237, 0xCBA3, 0x800D, 0xCBA4, 0x6454, 0xCBA5, 0x8870, + 0xCBA6, 0x7529, 0xCBA7, 0x5E05, 0xCBA8, 0x6813, 0xCBA9, 0x62F4, + 0xCBAA, 0x971C, 0xCBAB, 0x53CC, 0xCBAC, 0x723D, 0xCBAD, 0x8C01, + 0xCBAE, 0x6C34, 0xCBAF, 0x7761, 0xCBB0, 0x7A0E, 0xCBB1, 0x542E, + 0xCBB2, 0x77AC, 0xCBB3, 0x987A, 0xCBB4, 0x821C, 0xCBB5, 0x8BF4, + 0xCBB6, 0x7855, 0xCBB7, 0x6714, 0xCBB8, 0x70C1, 0xCBB9, 0x65AF, + 0xCBBA, 0x6495, 0xCBBB, 0x5636, 0xCBBC, 0x601D, 0xCBBD, 0x79C1, + 0xCBBE, 0x53F8, 0xCBBF, 0x4E1D, 0xCBC0, 0x6B7B, 0xCBC1, 0x8086, + 0xCBC2, 0x5BFA, 0xCBC3, 0x55E3, 0xCBC4, 0x56DB, 0xCBC5, 0x4F3A, + 0xCBC6, 0x4F3C, 0xCBC7, 0x9972, 0xCBC8, 0x5DF3, 0xCBC9, 0x677E, + 0xCBCA, 0x8038, 0xCBCB, 0x6002, 0xCBCC, 0x9882, 0xCBCD, 0x9001, + 0xCBCE, 0x5B8B, 0xCBCF, 0x8BBC, 0xCBD0, 0x8BF5, 0xCBD1, 0x641C, + 0xCBD2, 0x8258, 0xCBD3, 0x64DE, 0xCBD4, 0x55FD, 0xCBD5, 0x82CF, + 0xCBD6, 0x9165, 0xCBD7, 0x4FD7, 0xCBD8, 0x7D20, 0xCBD9, 0x901F, + 0xCBDA, 0x7C9F, 0xCBDB, 0x50F3, 0xCBDC, 0x5851, 0xCBDD, 0x6EAF, + 0xCBDE, 0x5BBF, 0xCBDF, 0x8BC9, 0xCBE0, 0x8083, 0xCBE1, 0x9178, + 0xCBE2, 0x849C, 0xCBE3, 0x7B97, 0xCBE4, 0x867D, 0xCBE5, 0x968B, + 0xCBE6, 0x968F, 0xCBE7, 0x7EE5, 0xCBE8, 0x9AD3, 0xCBE9, 0x788E, + 0xCBEA, 0x5C81, 0xCBEB, 0x7A57, 0xCBEC, 0x9042, 0xCBED, 0x96A7, + 0xCBEE, 0x795F, 0xCBEF, 0x5B59, 0xCBF0, 0x635F, 0xCBF1, 0x7B0B, + 0xCBF2, 0x84D1, 0xCBF3, 0x68AD, 0xCBF4, 0x5506, 0xCBF5, 0x7F29, + 0xCBF6, 0x7410, 0xCBF7, 0x7D22, 0xCBF8, 0x9501, 0xCBF9, 0x6240, + 0xCBFA, 0x584C, 0xCBFB, 0x4ED6, 0xCBFC, 0x5B83, 0xCBFD, 0x5979, + 0xCBFE, 0x5854, 0xCC40, 0x85F9, 0xCC41, 0x85FA, 0xCC42, 0x85FC, + 0xCC43, 0x85FD, 0xCC44, 0x85FE, 0xCC45, 0x8600, 0xCC46, 0x8601, + 0xCC47, 0x8602, 0xCC48, 0x8603, 0xCC49, 0x8604, 0xCC4A, 0x8606, + 0xCC4B, 0x8607, 0xCC4C, 0x8608, 0xCC4D, 0x8609, 0xCC4E, 0x860A, + 0xCC4F, 0x860B, 0xCC50, 0x860C, 0xCC51, 0x860D, 0xCC52, 0x860E, + 0xCC53, 0x860F, 0xCC54, 0x8610, 0xCC55, 0x8612, 0xCC56, 0x8613, + 0xCC57, 0x8614, 0xCC58, 0x8615, 0xCC59, 0x8617, 0xCC5A, 0x8618, + 0xCC5B, 0x8619, 0xCC5C, 0x861A, 0xCC5D, 0x861B, 0xCC5E, 0x861C, + 0xCC5F, 0x861D, 0xCC60, 0x861E, 0xCC61, 0x861F, 0xCC62, 0x8620, + 0xCC63, 0x8621, 0xCC64, 0x8622, 0xCC65, 0x8623, 0xCC66, 0x8624, + 0xCC67, 0x8625, 0xCC68, 0x8626, 0xCC69, 0x8628, 0xCC6A, 0x862A, + 0xCC6B, 0x862B, 0xCC6C, 0x862C, 0xCC6D, 0x862D, 0xCC6E, 0x862E, + 0xCC6F, 0x862F, 0xCC70, 0x8630, 0xCC71, 0x8631, 0xCC72, 0x8632, + 0xCC73, 0x8633, 0xCC74, 0x8634, 0xCC75, 0x8635, 0xCC76, 0x8636, + 0xCC77, 0x8637, 0xCC78, 0x8639, 0xCC79, 0x863A, 0xCC7A, 0x863B, + 0xCC7B, 0x863D, 0xCC7C, 0x863E, 0xCC7D, 0x863F, 0xCC7E, 0x8640, + 0xCC80, 0x8641, 0xCC81, 0x8642, 0xCC82, 0x8643, 0xCC83, 0x8644, + 0xCC84, 0x8645, 0xCC85, 0x8646, 0xCC86, 0x8647, 0xCC87, 0x8648, + 0xCC88, 0x8649, 0xCC89, 0x864A, 0xCC8A, 0x864B, 0xCC8B, 0x864C, + 0xCC8C, 0x8652, 0xCC8D, 0x8653, 0xCC8E, 0x8655, 0xCC8F, 0x8656, + 0xCC90, 0x8657, 0xCC91, 0x8658, 0xCC92, 0x8659, 0xCC93, 0x865B, + 0xCC94, 0x865C, 0xCC95, 0x865D, 0xCC96, 0x865F, 0xCC97, 0x8660, + 0xCC98, 0x8661, 0xCC99, 0x8663, 0xCC9A, 0x8664, 0xCC9B, 0x8665, + 0xCC9C, 0x8666, 0xCC9D, 0x8667, 0xCC9E, 0x8668, 0xCC9F, 0x8669, + 0xCCA0, 0x866A, 0xCCA1, 0x736D, 0xCCA2, 0x631E, 0xCCA3, 0x8E4B, + 0xCCA4, 0x8E0F, 0xCCA5, 0x80CE, 0xCCA6, 0x82D4, 0xCCA7, 0x62AC, + 0xCCA8, 0x53F0, 0xCCA9, 0x6CF0, 0xCCAA, 0x915E, 0xCCAB, 0x592A, + 0xCCAC, 0x6001, 0xCCAD, 0x6C70, 0xCCAE, 0x574D, 0xCCAF, 0x644A, + 0xCCB0, 0x8D2A, 0xCCB1, 0x762B, 0xCCB2, 0x6EE9, 0xCCB3, 0x575B, + 0xCCB4, 0x6A80, 0xCCB5, 0x75F0, 0xCCB6, 0x6F6D, 0xCCB7, 0x8C2D, + 0xCCB8, 0x8C08, 0xCCB9, 0x5766, 0xCCBA, 0x6BEF, 0xCCBB, 0x8892, + 0xCCBC, 0x78B3, 0xCCBD, 0x63A2, 0xCCBE, 0x53F9, 0xCCBF, 0x70AD, + 0xCCC0, 0x6C64, 0xCCC1, 0x5858, 0xCCC2, 0x642A, 0xCCC3, 0x5802, + 0xCCC4, 0x68E0, 0xCCC5, 0x819B, 0xCCC6, 0x5510, 0xCCC7, 0x7CD6, + 0xCCC8, 0x5018, 0xCCC9, 0x8EBA, 0xCCCA, 0x6DCC, 0xCCCB, 0x8D9F, + 0xCCCC, 0x70EB, 0xCCCD, 0x638F, 0xCCCE, 0x6D9B, 0xCCCF, 0x6ED4, + 0xCCD0, 0x7EE6, 0xCCD1, 0x8404, 0xCCD2, 0x6843, 0xCCD3, 0x9003, + 0xCCD4, 0x6DD8, 0xCCD5, 0x9676, 0xCCD6, 0x8BA8, 0xCCD7, 0x5957, + 0xCCD8, 0x7279, 0xCCD9, 0x85E4, 0xCCDA, 0x817E, 0xCCDB, 0x75BC, + 0xCCDC, 0x8A8A, 0xCCDD, 0x68AF, 0xCCDE, 0x5254, 0xCCDF, 0x8E22, + 0xCCE0, 0x9511, 0xCCE1, 0x63D0, 0xCCE2, 0x9898, 0xCCE3, 0x8E44, + 0xCCE4, 0x557C, 0xCCE5, 0x4F53, 0xCCE6, 0x66FF, 0xCCE7, 0x568F, + 0xCCE8, 0x60D5, 0xCCE9, 0x6D95, 0xCCEA, 0x5243, 0xCCEB, 0x5C49, + 0xCCEC, 0x5929, 0xCCED, 0x6DFB, 0xCCEE, 0x586B, 0xCCEF, 0x7530, + 0xCCF0, 0x751C, 0xCCF1, 0x606C, 0xCCF2, 0x8214, 0xCCF3, 0x8146, + 0xCCF4, 0x6311, 0xCCF5, 0x6761, 0xCCF6, 0x8FE2, 0xCCF7, 0x773A, + 0xCCF8, 0x8DF3, 0xCCF9, 0x8D34, 0xCCFA, 0x94C1, 0xCCFB, 0x5E16, + 0xCCFC, 0x5385, 0xCCFD, 0x542C, 0xCCFE, 0x70C3, 0xCD40, 0x866D, + 0xCD41, 0x866F, 0xCD42, 0x8670, 0xCD43, 0x8672, 0xCD44, 0x8673, + 0xCD45, 0x8674, 0xCD46, 0x8675, 0xCD47, 0x8676, 0xCD48, 0x8677, + 0xCD49, 0x8678, 0xCD4A, 0x8683, 0xCD4B, 0x8684, 0xCD4C, 0x8685, + 0xCD4D, 0x8686, 0xCD4E, 0x8687, 0xCD4F, 0x8688, 0xCD50, 0x8689, + 0xCD51, 0x868E, 0xCD52, 0x868F, 0xCD53, 0x8690, 0xCD54, 0x8691, + 0xCD55, 0x8692, 0xCD56, 0x8694, 0xCD57, 0x8696, 0xCD58, 0x8697, + 0xCD59, 0x8698, 0xCD5A, 0x8699, 0xCD5B, 0x869A, 0xCD5C, 0x869B, + 0xCD5D, 0x869E, 0xCD5E, 0x869F, 0xCD5F, 0x86A0, 0xCD60, 0x86A1, + 0xCD61, 0x86A2, 0xCD62, 0x86A5, 0xCD63, 0x86A6, 0xCD64, 0x86AB, + 0xCD65, 0x86AD, 0xCD66, 0x86AE, 0xCD67, 0x86B2, 0xCD68, 0x86B3, + 0xCD69, 0x86B7, 0xCD6A, 0x86B8, 0xCD6B, 0x86B9, 0xCD6C, 0x86BB, + 0xCD6D, 0x86BC, 0xCD6E, 0x86BD, 0xCD6F, 0x86BE, 0xCD70, 0x86BF, + 0xCD71, 0x86C1, 0xCD72, 0x86C2, 0xCD73, 0x86C3, 0xCD74, 0x86C5, + 0xCD75, 0x86C8, 0xCD76, 0x86CC, 0xCD77, 0x86CD, 0xCD78, 0x86D2, + 0xCD79, 0x86D3, 0xCD7A, 0x86D5, 0xCD7B, 0x86D6, 0xCD7C, 0x86D7, + 0xCD7D, 0x86DA, 0xCD7E, 0x86DC, 0xCD80, 0x86DD, 0xCD81, 0x86E0, + 0xCD82, 0x86E1, 0xCD83, 0x86E2, 0xCD84, 0x86E3, 0xCD85, 0x86E5, + 0xCD86, 0x86E6, 0xCD87, 0x86E7, 0xCD88, 0x86E8, 0xCD89, 0x86EA, + 0xCD8A, 0x86EB, 0xCD8B, 0x86EC, 0xCD8C, 0x86EF, 0xCD8D, 0x86F5, + 0xCD8E, 0x86F6, 0xCD8F, 0x86F7, 0xCD90, 0x86FA, 0xCD91, 0x86FB, + 0xCD92, 0x86FC, 0xCD93, 0x86FD, 0xCD94, 0x86FF, 0xCD95, 0x8701, + 0xCD96, 0x8704, 0xCD97, 0x8705, 0xCD98, 0x8706, 0xCD99, 0x870B, + 0xCD9A, 0x870C, 0xCD9B, 0x870E, 0xCD9C, 0x870F, 0xCD9D, 0x8710, + 0xCD9E, 0x8711, 0xCD9F, 0x8714, 0xCDA0, 0x8716, 0xCDA1, 0x6C40, + 0xCDA2, 0x5EF7, 0xCDA3, 0x505C, 0xCDA4, 0x4EAD, 0xCDA5, 0x5EAD, + 0xCDA6, 0x633A, 0xCDA7, 0x8247, 0xCDA8, 0x901A, 0xCDA9, 0x6850, + 0xCDAA, 0x916E, 0xCDAB, 0x77B3, 0xCDAC, 0x540C, 0xCDAD, 0x94DC, + 0xCDAE, 0x5F64, 0xCDAF, 0x7AE5, 0xCDB0, 0x6876, 0xCDB1, 0x6345, + 0xCDB2, 0x7B52, 0xCDB3, 0x7EDF, 0xCDB4, 0x75DB, 0xCDB5, 0x5077, + 0xCDB6, 0x6295, 0xCDB7, 0x5934, 0xCDB8, 0x900F, 0xCDB9, 0x51F8, + 0xCDBA, 0x79C3, 0xCDBB, 0x7A81, 0xCDBC, 0x56FE, 0xCDBD, 0x5F92, + 0xCDBE, 0x9014, 0xCDBF, 0x6D82, 0xCDC0, 0x5C60, 0xCDC1, 0x571F, + 0xCDC2, 0x5410, 0xCDC3, 0x5154, 0xCDC4, 0x6E4D, 0xCDC5, 0x56E2, + 0xCDC6, 0x63A8, 0xCDC7, 0x9893, 0xCDC8, 0x817F, 0xCDC9, 0x8715, + 0xCDCA, 0x892A, 0xCDCB, 0x9000, 0xCDCC, 0x541E, 0xCDCD, 0x5C6F, + 0xCDCE, 0x81C0, 0xCDCF, 0x62D6, 0xCDD0, 0x6258, 0xCDD1, 0x8131, + 0xCDD2, 0x9E35, 0xCDD3, 0x9640, 0xCDD4, 0x9A6E, 0xCDD5, 0x9A7C, + 0xCDD6, 0x692D, 0xCDD7, 0x59A5, 0xCDD8, 0x62D3, 0xCDD9, 0x553E, + 0xCDDA, 0x6316, 0xCDDB, 0x54C7, 0xCDDC, 0x86D9, 0xCDDD, 0x6D3C, + 0xCDDE, 0x5A03, 0xCDDF, 0x74E6, 0xCDE0, 0x889C, 0xCDE1, 0x6B6A, + 0xCDE2, 0x5916, 0xCDE3, 0x8C4C, 0xCDE4, 0x5F2F, 0xCDE5, 0x6E7E, + 0xCDE6, 0x73A9, 0xCDE7, 0x987D, 0xCDE8, 0x4E38, 0xCDE9, 0x70F7, + 0xCDEA, 0x5B8C, 0xCDEB, 0x7897, 0xCDEC, 0x633D, 0xCDED, 0x665A, + 0xCDEE, 0x7696, 0xCDEF, 0x60CB, 0xCDF0, 0x5B9B, 0xCDF1, 0x5A49, + 0xCDF2, 0x4E07, 0xCDF3, 0x8155, 0xCDF4, 0x6C6A, 0xCDF5, 0x738B, + 0xCDF6, 0x4EA1, 0xCDF7, 0x6789, 0xCDF8, 0x7F51, 0xCDF9, 0x5F80, + 0xCDFA, 0x65FA, 0xCDFB, 0x671B, 0xCDFC, 0x5FD8, 0xCDFD, 0x5984, + 0xCDFE, 0x5A01, 0xCE40, 0x8719, 0xCE41, 0x871B, 0xCE42, 0x871D, + 0xCE43, 0x871F, 0xCE44, 0x8720, 0xCE45, 0x8724, 0xCE46, 0x8726, + 0xCE47, 0x8727, 0xCE48, 0x8728, 0xCE49, 0x872A, 0xCE4A, 0x872B, + 0xCE4B, 0x872C, 0xCE4C, 0x872D, 0xCE4D, 0x872F, 0xCE4E, 0x8730, + 0xCE4F, 0x8732, 0xCE50, 0x8733, 0xCE51, 0x8735, 0xCE52, 0x8736, + 0xCE53, 0x8738, 0xCE54, 0x8739, 0xCE55, 0x873A, 0xCE56, 0x873C, + 0xCE57, 0x873D, 0xCE58, 0x8740, 0xCE59, 0x8741, 0xCE5A, 0x8742, + 0xCE5B, 0x8743, 0xCE5C, 0x8744, 0xCE5D, 0x8745, 0xCE5E, 0x8746, + 0xCE5F, 0x874A, 0xCE60, 0x874B, 0xCE61, 0x874D, 0xCE62, 0x874F, + 0xCE63, 0x8750, 0xCE64, 0x8751, 0xCE65, 0x8752, 0xCE66, 0x8754, + 0xCE67, 0x8755, 0xCE68, 0x8756, 0xCE69, 0x8758, 0xCE6A, 0x875A, + 0xCE6B, 0x875B, 0xCE6C, 0x875C, 0xCE6D, 0x875D, 0xCE6E, 0x875E, + 0xCE6F, 0x875F, 0xCE70, 0x8761, 0xCE71, 0x8762, 0xCE72, 0x8766, + 0xCE73, 0x8767, 0xCE74, 0x8768, 0xCE75, 0x8769, 0xCE76, 0x876A, + 0xCE77, 0x876B, 0xCE78, 0x876C, 0xCE79, 0x876D, 0xCE7A, 0x876F, + 0xCE7B, 0x8771, 0xCE7C, 0x8772, 0xCE7D, 0x8773, 0xCE7E, 0x8775, + 0xCE80, 0x8777, 0xCE81, 0x8778, 0xCE82, 0x8779, 0xCE83, 0x877A, + 0xCE84, 0x877F, 0xCE85, 0x8780, 0xCE86, 0x8781, 0xCE87, 0x8784, + 0xCE88, 0x8786, 0xCE89, 0x8787, 0xCE8A, 0x8789, 0xCE8B, 0x878A, + 0xCE8C, 0x878C, 0xCE8D, 0x878E, 0xCE8E, 0x878F, 0xCE8F, 0x8790, + 0xCE90, 0x8791, 0xCE91, 0x8792, 0xCE92, 0x8794, 0xCE93, 0x8795, + 0xCE94, 0x8796, 0xCE95, 0x8798, 0xCE96, 0x8799, 0xCE97, 0x879A, + 0xCE98, 0x879B, 0xCE99, 0x879C, 0xCE9A, 0x879D, 0xCE9B, 0x879E, + 0xCE9C, 0x87A0, 0xCE9D, 0x87A1, 0xCE9E, 0x87A2, 0xCE9F, 0x87A3, + 0xCEA0, 0x87A4, 0xCEA1, 0x5DCD, 0xCEA2, 0x5FAE, 0xCEA3, 0x5371, + 0xCEA4, 0x97E6, 0xCEA5, 0x8FDD, 0xCEA6, 0x6845, 0xCEA7, 0x56F4, + 0xCEA8, 0x552F, 0xCEA9, 0x60DF, 0xCEAA, 0x4E3A, 0xCEAB, 0x6F4D, + 0xCEAC, 0x7EF4, 0xCEAD, 0x82C7, 0xCEAE, 0x840E, 0xCEAF, 0x59D4, + 0xCEB0, 0x4F1F, 0xCEB1, 0x4F2A, 0xCEB2, 0x5C3E, 0xCEB3, 0x7EAC, + 0xCEB4, 0x672A, 0xCEB5, 0x851A, 0xCEB6, 0x5473, 0xCEB7, 0x754F, + 0xCEB8, 0x80C3, 0xCEB9, 0x5582, 0xCEBA, 0x9B4F, 0xCEBB, 0x4F4D, + 0xCEBC, 0x6E2D, 0xCEBD, 0x8C13, 0xCEBE, 0x5C09, 0xCEBF, 0x6170, + 0xCEC0, 0x536B, 0xCEC1, 0x761F, 0xCEC2, 0x6E29, 0xCEC3, 0x868A, + 0xCEC4, 0x6587, 0xCEC5, 0x95FB, 0xCEC6, 0x7EB9, 0xCEC7, 0x543B, + 0xCEC8, 0x7A33, 0xCEC9, 0x7D0A, 0xCECA, 0x95EE, 0xCECB, 0x55E1, + 0xCECC, 0x7FC1, 0xCECD, 0x74EE, 0xCECE, 0x631D, 0xCECF, 0x8717, + 0xCED0, 0x6DA1, 0xCED1, 0x7A9D, 0xCED2, 0x6211, 0xCED3, 0x65A1, + 0xCED4, 0x5367, 0xCED5, 0x63E1, 0xCED6, 0x6C83, 0xCED7, 0x5DEB, + 0xCED8, 0x545C, 0xCED9, 0x94A8, 0xCEDA, 0x4E4C, 0xCEDB, 0x6C61, + 0xCEDC, 0x8BEC, 0xCEDD, 0x5C4B, 0xCEDE, 0x65E0, 0xCEDF, 0x829C, + 0xCEE0, 0x68A7, 0xCEE1, 0x543E, 0xCEE2, 0x5434, 0xCEE3, 0x6BCB, + 0xCEE4, 0x6B66, 0xCEE5, 0x4E94, 0xCEE6, 0x6342, 0xCEE7, 0x5348, + 0xCEE8, 0x821E, 0xCEE9, 0x4F0D, 0xCEEA, 0x4FAE, 0xCEEB, 0x575E, + 0xCEEC, 0x620A, 0xCEED, 0x96FE, 0xCEEE, 0x6664, 0xCEEF, 0x7269, + 0xCEF0, 0x52FF, 0xCEF1, 0x52A1, 0xCEF2, 0x609F, 0xCEF3, 0x8BEF, + 0xCEF4, 0x6614, 0xCEF5, 0x7199, 0xCEF6, 0x6790, 0xCEF7, 0x897F, + 0xCEF8, 0x7852, 0xCEF9, 0x77FD, 0xCEFA, 0x6670, 0xCEFB, 0x563B, + 0xCEFC, 0x5438, 0xCEFD, 0x9521, 0xCEFE, 0x727A, 0xCF40, 0x87A5, + 0xCF41, 0x87A6, 0xCF42, 0x87A7, 0xCF43, 0x87A9, 0xCF44, 0x87AA, + 0xCF45, 0x87AE, 0xCF46, 0x87B0, 0xCF47, 0x87B1, 0xCF48, 0x87B2, + 0xCF49, 0x87B4, 0xCF4A, 0x87B6, 0xCF4B, 0x87B7, 0xCF4C, 0x87B8, + 0xCF4D, 0x87B9, 0xCF4E, 0x87BB, 0xCF4F, 0x87BC, 0xCF50, 0x87BE, + 0xCF51, 0x87BF, 0xCF52, 0x87C1, 0xCF53, 0x87C2, 0xCF54, 0x87C3, + 0xCF55, 0x87C4, 0xCF56, 0x87C5, 0xCF57, 0x87C7, 0xCF58, 0x87C8, + 0xCF59, 0x87C9, 0xCF5A, 0x87CC, 0xCF5B, 0x87CD, 0xCF5C, 0x87CE, + 0xCF5D, 0x87CF, 0xCF5E, 0x87D0, 0xCF5F, 0x87D4, 0xCF60, 0x87D5, + 0xCF61, 0x87D6, 0xCF62, 0x87D7, 0xCF63, 0x87D8, 0xCF64, 0x87D9, + 0xCF65, 0x87DA, 0xCF66, 0x87DC, 0xCF67, 0x87DD, 0xCF68, 0x87DE, + 0xCF69, 0x87DF, 0xCF6A, 0x87E1, 0xCF6B, 0x87E2, 0xCF6C, 0x87E3, + 0xCF6D, 0x87E4, 0xCF6E, 0x87E6, 0xCF6F, 0x87E7, 0xCF70, 0x87E8, + 0xCF71, 0x87E9, 0xCF72, 0x87EB, 0xCF73, 0x87EC, 0xCF74, 0x87ED, + 0xCF75, 0x87EF, 0xCF76, 0x87F0, 0xCF77, 0x87F1, 0xCF78, 0x87F2, + 0xCF79, 0x87F3, 0xCF7A, 0x87F4, 0xCF7B, 0x87F5, 0xCF7C, 0x87F6, + 0xCF7D, 0x87F7, 0xCF7E, 0x87F8, 0xCF80, 0x87FA, 0xCF81, 0x87FB, + 0xCF82, 0x87FC, 0xCF83, 0x87FD, 0xCF84, 0x87FF, 0xCF85, 0x8800, + 0xCF86, 0x8801, 0xCF87, 0x8802, 0xCF88, 0x8804, 0xCF89, 0x8805, + 0xCF8A, 0x8806, 0xCF8B, 0x8807, 0xCF8C, 0x8808, 0xCF8D, 0x8809, + 0xCF8E, 0x880B, 0xCF8F, 0x880C, 0xCF90, 0x880D, 0xCF91, 0x880E, + 0xCF92, 0x880F, 0xCF93, 0x8810, 0xCF94, 0x8811, 0xCF95, 0x8812, + 0xCF96, 0x8814, 0xCF97, 0x8817, 0xCF98, 0x8818, 0xCF99, 0x8819, + 0xCF9A, 0x881A, 0xCF9B, 0x881C, 0xCF9C, 0x881D, 0xCF9D, 0x881E, + 0xCF9E, 0x881F, 0xCF9F, 0x8820, 0xCFA0, 0x8823, 0xCFA1, 0x7A00, + 0xCFA2, 0x606F, 0xCFA3, 0x5E0C, 0xCFA4, 0x6089, 0xCFA5, 0x819D, + 0xCFA6, 0x5915, 0xCFA7, 0x60DC, 0xCFA8, 0x7184, 0xCFA9, 0x70EF, + 0xCFAA, 0x6EAA, 0xCFAB, 0x6C50, 0xCFAC, 0x7280, 0xCFAD, 0x6A84, + 0xCFAE, 0x88AD, 0xCFAF, 0x5E2D, 0xCFB0, 0x4E60, 0xCFB1, 0x5AB3, + 0xCFB2, 0x559C, 0xCFB3, 0x94E3, 0xCFB4, 0x6D17, 0xCFB5, 0x7CFB, + 0xCFB6, 0x9699, 0xCFB7, 0x620F, 0xCFB8, 0x7EC6, 0xCFB9, 0x778E, + 0xCFBA, 0x867E, 0xCFBB, 0x5323, 0xCFBC, 0x971E, 0xCFBD, 0x8F96, + 0xCFBE, 0x6687, 0xCFBF, 0x5CE1, 0xCFC0, 0x4FA0, 0xCFC1, 0x72ED, + 0xCFC2, 0x4E0B, 0xCFC3, 0x53A6, 0xCFC4, 0x590F, 0xCFC5, 0x5413, + 0xCFC6, 0x6380, 0xCFC7, 0x9528, 0xCFC8, 0x5148, 0xCFC9, 0x4ED9, + 0xCFCA, 0x9C9C, 0xCFCB, 0x7EA4, 0xCFCC, 0x54B8, 0xCFCD, 0x8D24, + 0xCFCE, 0x8854, 0xCFCF, 0x8237, 0xCFD0, 0x95F2, 0xCFD1, 0x6D8E, + 0xCFD2, 0x5F26, 0xCFD3, 0x5ACC, 0xCFD4, 0x663E, 0xCFD5, 0x9669, + 0xCFD6, 0x73B0, 0xCFD7, 0x732E, 0xCFD8, 0x53BF, 0xCFD9, 0x817A, + 0xCFDA, 0x9985, 0xCFDB, 0x7FA1, 0xCFDC, 0x5BAA, 0xCFDD, 0x9677, + 0xCFDE, 0x9650, 0xCFDF, 0x7EBF, 0xCFE0, 0x76F8, 0xCFE1, 0x53A2, + 0xCFE2, 0x9576, 0xCFE3, 0x9999, 0xCFE4, 0x7BB1, 0xCFE5, 0x8944, + 0xCFE6, 0x6E58, 0xCFE7, 0x4E61, 0xCFE8, 0x7FD4, 0xCFE9, 0x7965, + 0xCFEA, 0x8BE6, 0xCFEB, 0x60F3, 0xCFEC, 0x54CD, 0xCFED, 0x4EAB, + 0xCFEE, 0x9879, 0xCFEF, 0x5DF7, 0xCFF0, 0x6A61, 0xCFF1, 0x50CF, + 0xCFF2, 0x5411, 0xCFF3, 0x8C61, 0xCFF4, 0x8427, 0xCFF5, 0x785D, + 0xCFF6, 0x9704, 0xCFF7, 0x524A, 0xCFF8, 0x54EE, 0xCFF9, 0x56A3, + 0xCFFA, 0x9500, 0xCFFB, 0x6D88, 0xCFFC, 0x5BB5, 0xCFFD, 0x6DC6, + 0xCFFE, 0x6653, 0xD040, 0x8824, 0xD041, 0x8825, 0xD042, 0x8826, + 0xD043, 0x8827, 0xD044, 0x8828, 0xD045, 0x8829, 0xD046, 0x882A, + 0xD047, 0x882B, 0xD048, 0x882C, 0xD049, 0x882D, 0xD04A, 0x882E, + 0xD04B, 0x882F, 0xD04C, 0x8830, 0xD04D, 0x8831, 0xD04E, 0x8833, + 0xD04F, 0x8834, 0xD050, 0x8835, 0xD051, 0x8836, 0xD052, 0x8837, + 0xD053, 0x8838, 0xD054, 0x883A, 0xD055, 0x883B, 0xD056, 0x883D, + 0xD057, 0x883E, 0xD058, 0x883F, 0xD059, 0x8841, 0xD05A, 0x8842, + 0xD05B, 0x8843, 0xD05C, 0x8846, 0xD05D, 0x8847, 0xD05E, 0x8848, + 0xD05F, 0x8849, 0xD060, 0x884A, 0xD061, 0x884B, 0xD062, 0x884E, + 0xD063, 0x884F, 0xD064, 0x8850, 0xD065, 0x8851, 0xD066, 0x8852, + 0xD067, 0x8853, 0xD068, 0x8855, 0xD069, 0x8856, 0xD06A, 0x8858, + 0xD06B, 0x885A, 0xD06C, 0x885B, 0xD06D, 0x885C, 0xD06E, 0x885D, + 0xD06F, 0x885E, 0xD070, 0x885F, 0xD071, 0x8860, 0xD072, 0x8866, + 0xD073, 0x8867, 0xD074, 0x886A, 0xD075, 0x886D, 0xD076, 0x886F, + 0xD077, 0x8871, 0xD078, 0x8873, 0xD079, 0x8874, 0xD07A, 0x8875, + 0xD07B, 0x8876, 0xD07C, 0x8878, 0xD07D, 0x8879, 0xD07E, 0x887A, + 0xD080, 0x887B, 0xD081, 0x887C, 0xD082, 0x8880, 0xD083, 0x8883, + 0xD084, 0x8886, 0xD085, 0x8887, 0xD086, 0x8889, 0xD087, 0x888A, + 0xD088, 0x888C, 0xD089, 0x888E, 0xD08A, 0x888F, 0xD08B, 0x8890, + 0xD08C, 0x8891, 0xD08D, 0x8893, 0xD08E, 0x8894, 0xD08F, 0x8895, + 0xD090, 0x8897, 0xD091, 0x8898, 0xD092, 0x8899, 0xD093, 0x889A, + 0xD094, 0x889B, 0xD095, 0x889D, 0xD096, 0x889E, 0xD097, 0x889F, + 0xD098, 0x88A0, 0xD099, 0x88A1, 0xD09A, 0x88A3, 0xD09B, 0x88A5, + 0xD09C, 0x88A6, 0xD09D, 0x88A7, 0xD09E, 0x88A8, 0xD09F, 0x88A9, + 0xD0A0, 0x88AA, 0xD0A1, 0x5C0F, 0xD0A2, 0x5B5D, 0xD0A3, 0x6821, + 0xD0A4, 0x8096, 0xD0A5, 0x5578, 0xD0A6, 0x7B11, 0xD0A7, 0x6548, + 0xD0A8, 0x6954, 0xD0A9, 0x4E9B, 0xD0AA, 0x6B47, 0xD0AB, 0x874E, + 0xD0AC, 0x978B, 0xD0AD, 0x534F, 0xD0AE, 0x631F, 0xD0AF, 0x643A, + 0xD0B0, 0x90AA, 0xD0B1, 0x659C, 0xD0B2, 0x80C1, 0xD0B3, 0x8C10, + 0xD0B4, 0x5199, 0xD0B5, 0x68B0, 0xD0B6, 0x5378, 0xD0B7, 0x87F9, + 0xD0B8, 0x61C8, 0xD0B9, 0x6CC4, 0xD0BA, 0x6CFB, 0xD0BB, 0x8C22, + 0xD0BC, 0x5C51, 0xD0BD, 0x85AA, 0xD0BE, 0x82AF, 0xD0BF, 0x950C, + 0xD0C0, 0x6B23, 0xD0C1, 0x8F9B, 0xD0C2, 0x65B0, 0xD0C3, 0x5FFB, + 0xD0C4, 0x5FC3, 0xD0C5, 0x4FE1, 0xD0C6, 0x8845, 0xD0C7, 0x661F, + 0xD0C8, 0x8165, 0xD0C9, 0x7329, 0xD0CA, 0x60FA, 0xD0CB, 0x5174, + 0xD0CC, 0x5211, 0xD0CD, 0x578B, 0xD0CE, 0x5F62, 0xD0CF, 0x90A2, + 0xD0D0, 0x884C, 0xD0D1, 0x9192, 0xD0D2, 0x5E78, 0xD0D3, 0x674F, + 0xD0D4, 0x6027, 0xD0D5, 0x59D3, 0xD0D6, 0x5144, 0xD0D7, 0x51F6, + 0xD0D8, 0x80F8, 0xD0D9, 0x5308, 0xD0DA, 0x6C79, 0xD0DB, 0x96C4, + 0xD0DC, 0x718A, 0xD0DD, 0x4F11, 0xD0DE, 0x4FEE, 0xD0DF, 0x7F9E, + 0xD0E0, 0x673D, 0xD0E1, 0x55C5, 0xD0E2, 0x9508, 0xD0E3, 0x79C0, + 0xD0E4, 0x8896, 0xD0E5, 0x7EE3, 0xD0E6, 0x589F, 0xD0E7, 0x620C, + 0xD0E8, 0x9700, 0xD0E9, 0x865A, 0xD0EA, 0x5618, 0xD0EB, 0x987B, + 0xD0EC, 0x5F90, 0xD0ED, 0x8BB8, 0xD0EE, 0x84C4, 0xD0EF, 0x9157, + 0xD0F0, 0x53D9, 0xD0F1, 0x65ED, 0xD0F2, 0x5E8F, 0xD0F3, 0x755C, + 0xD0F4, 0x6064, 0xD0F5, 0x7D6E, 0xD0F6, 0x5A7F, 0xD0F7, 0x7EEA, + 0xD0F8, 0x7EED, 0xD0F9, 0x8F69, 0xD0FA, 0x55A7, 0xD0FB, 0x5BA3, + 0xD0FC, 0x60AC, 0xD0FD, 0x65CB, 0xD0FE, 0x7384, 0xD140, 0x88AC, + 0xD141, 0x88AE, 0xD142, 0x88AF, 0xD143, 0x88B0, 0xD144, 0x88B2, + 0xD145, 0x88B3, 0xD146, 0x88B4, 0xD147, 0x88B5, 0xD148, 0x88B6, + 0xD149, 0x88B8, 0xD14A, 0x88B9, 0xD14B, 0x88BA, 0xD14C, 0x88BB, + 0xD14D, 0x88BD, 0xD14E, 0x88BE, 0xD14F, 0x88BF, 0xD150, 0x88C0, + 0xD151, 0x88C3, 0xD152, 0x88C4, 0xD153, 0x88C7, 0xD154, 0x88C8, + 0xD155, 0x88CA, 0xD156, 0x88CB, 0xD157, 0x88CC, 0xD158, 0x88CD, + 0xD159, 0x88CF, 0xD15A, 0x88D0, 0xD15B, 0x88D1, 0xD15C, 0x88D3, + 0xD15D, 0x88D6, 0xD15E, 0x88D7, 0xD15F, 0x88DA, 0xD160, 0x88DB, + 0xD161, 0x88DC, 0xD162, 0x88DD, 0xD163, 0x88DE, 0xD164, 0x88E0, + 0xD165, 0x88E1, 0xD166, 0x88E6, 0xD167, 0x88E7, 0xD168, 0x88E9, + 0xD169, 0x88EA, 0xD16A, 0x88EB, 0xD16B, 0x88EC, 0xD16C, 0x88ED, + 0xD16D, 0x88EE, 0xD16E, 0x88EF, 0xD16F, 0x88F2, 0xD170, 0x88F5, + 0xD171, 0x88F6, 0xD172, 0x88F7, 0xD173, 0x88FA, 0xD174, 0x88FB, + 0xD175, 0x88FD, 0xD176, 0x88FF, 0xD177, 0x8900, 0xD178, 0x8901, + 0xD179, 0x8903, 0xD17A, 0x8904, 0xD17B, 0x8905, 0xD17C, 0x8906, + 0xD17D, 0x8907, 0xD17E, 0x8908, 0xD180, 0x8909, 0xD181, 0x890B, + 0xD182, 0x890C, 0xD183, 0x890D, 0xD184, 0x890E, 0xD185, 0x890F, + 0xD186, 0x8911, 0xD187, 0x8914, 0xD188, 0x8915, 0xD189, 0x8916, + 0xD18A, 0x8917, 0xD18B, 0x8918, 0xD18C, 0x891C, 0xD18D, 0x891D, + 0xD18E, 0x891E, 0xD18F, 0x891F, 0xD190, 0x8920, 0xD191, 0x8922, + 0xD192, 0x8923, 0xD193, 0x8924, 0xD194, 0x8926, 0xD195, 0x8927, + 0xD196, 0x8928, 0xD197, 0x8929, 0xD198, 0x892C, 0xD199, 0x892D, + 0xD19A, 0x892E, 0xD19B, 0x892F, 0xD19C, 0x8931, 0xD19D, 0x8932, + 0xD19E, 0x8933, 0xD19F, 0x8935, 0xD1A0, 0x8937, 0xD1A1, 0x9009, + 0xD1A2, 0x7663, 0xD1A3, 0x7729, 0xD1A4, 0x7EDA, 0xD1A5, 0x9774, + 0xD1A6, 0x859B, 0xD1A7, 0x5B66, 0xD1A8, 0x7A74, 0xD1A9, 0x96EA, + 0xD1AA, 0x8840, 0xD1AB, 0x52CB, 0xD1AC, 0x718F, 0xD1AD, 0x5FAA, + 0xD1AE, 0x65EC, 0xD1AF, 0x8BE2, 0xD1B0, 0x5BFB, 0xD1B1, 0x9A6F, + 0xD1B2, 0x5DE1, 0xD1B3, 0x6B89, 0xD1B4, 0x6C5B, 0xD1B5, 0x8BAD, + 0xD1B6, 0x8BAF, 0xD1B7, 0x900A, 0xD1B8, 0x8FC5, 0xD1B9, 0x538B, + 0xD1BA, 0x62BC, 0xD1BB, 0x9E26, 0xD1BC, 0x9E2D, 0xD1BD, 0x5440, + 0xD1BE, 0x4E2B, 0xD1BF, 0x82BD, 0xD1C0, 0x7259, 0xD1C1, 0x869C, + 0xD1C2, 0x5D16, 0xD1C3, 0x8859, 0xD1C4, 0x6DAF, 0xD1C5, 0x96C5, + 0xD1C6, 0x54D1, 0xD1C7, 0x4E9A, 0xD1C8, 0x8BB6, 0xD1C9, 0x7109, + 0xD1CA, 0x54BD, 0xD1CB, 0x9609, 0xD1CC, 0x70DF, 0xD1CD, 0x6DF9, + 0xD1CE, 0x76D0, 0xD1CF, 0x4E25, 0xD1D0, 0x7814, 0xD1D1, 0x8712, + 0xD1D2, 0x5CA9, 0xD1D3, 0x5EF6, 0xD1D4, 0x8A00, 0xD1D5, 0x989C, + 0xD1D6, 0x960E, 0xD1D7, 0x708E, 0xD1D8, 0x6CBF, 0xD1D9, 0x5944, + 0xD1DA, 0x63A9, 0xD1DB, 0x773C, 0xD1DC, 0x884D, 0xD1DD, 0x6F14, + 0xD1DE, 0x8273, 0xD1DF, 0x5830, 0xD1E0, 0x71D5, 0xD1E1, 0x538C, + 0xD1E2, 0x781A, 0xD1E3, 0x96C1, 0xD1E4, 0x5501, 0xD1E5, 0x5F66, + 0xD1E6, 0x7130, 0xD1E7, 0x5BB4, 0xD1E8, 0x8C1A, 0xD1E9, 0x9A8C, + 0xD1EA, 0x6B83, 0xD1EB, 0x592E, 0xD1EC, 0x9E2F, 0xD1ED, 0x79E7, + 0xD1EE, 0x6768, 0xD1EF, 0x626C, 0xD1F0, 0x4F6F, 0xD1F1, 0x75A1, + 0xD1F2, 0x7F8A, 0xD1F3, 0x6D0B, 0xD1F4, 0x9633, 0xD1F5, 0x6C27, + 0xD1F6, 0x4EF0, 0xD1F7, 0x75D2, 0xD1F8, 0x517B, 0xD1F9, 0x6837, + 0xD1FA, 0x6F3E, 0xD1FB, 0x9080, 0xD1FC, 0x8170, 0xD1FD, 0x5996, + 0xD1FE, 0x7476, 0xD240, 0x8938, 0xD241, 0x8939, 0xD242, 0x893A, + 0xD243, 0x893B, 0xD244, 0x893C, 0xD245, 0x893D, 0xD246, 0x893E, + 0xD247, 0x893F, 0xD248, 0x8940, 0xD249, 0x8942, 0xD24A, 0x8943, + 0xD24B, 0x8945, 0xD24C, 0x8946, 0xD24D, 0x8947, 0xD24E, 0x8948, + 0xD24F, 0x8949, 0xD250, 0x894A, 0xD251, 0x894B, 0xD252, 0x894C, + 0xD253, 0x894D, 0xD254, 0x894E, 0xD255, 0x894F, 0xD256, 0x8950, + 0xD257, 0x8951, 0xD258, 0x8952, 0xD259, 0x8953, 0xD25A, 0x8954, + 0xD25B, 0x8955, 0xD25C, 0x8956, 0xD25D, 0x8957, 0xD25E, 0x8958, + 0xD25F, 0x8959, 0xD260, 0x895A, 0xD261, 0x895B, 0xD262, 0x895C, + 0xD263, 0x895D, 0xD264, 0x8960, 0xD265, 0x8961, 0xD266, 0x8962, + 0xD267, 0x8963, 0xD268, 0x8964, 0xD269, 0x8965, 0xD26A, 0x8967, + 0xD26B, 0x8968, 0xD26C, 0x8969, 0xD26D, 0x896A, 0xD26E, 0x896B, + 0xD26F, 0x896C, 0xD270, 0x896D, 0xD271, 0x896E, 0xD272, 0x896F, + 0xD273, 0x8970, 0xD274, 0x8971, 0xD275, 0x8972, 0xD276, 0x8973, + 0xD277, 0x8974, 0xD278, 0x8975, 0xD279, 0x8976, 0xD27A, 0x8977, + 0xD27B, 0x8978, 0xD27C, 0x8979, 0xD27D, 0x897A, 0xD27E, 0x897C, + 0xD280, 0x897D, 0xD281, 0x897E, 0xD282, 0x8980, 0xD283, 0x8982, + 0xD284, 0x8984, 0xD285, 0x8985, 0xD286, 0x8987, 0xD287, 0x8988, + 0xD288, 0x8989, 0xD289, 0x898A, 0xD28A, 0x898B, 0xD28B, 0x898C, + 0xD28C, 0x898D, 0xD28D, 0x898E, 0xD28E, 0x898F, 0xD28F, 0x8990, + 0xD290, 0x8991, 0xD291, 0x8992, 0xD292, 0x8993, 0xD293, 0x8994, + 0xD294, 0x8995, 0xD295, 0x8996, 0xD296, 0x8997, 0xD297, 0x8998, + 0xD298, 0x8999, 0xD299, 0x899A, 0xD29A, 0x899B, 0xD29B, 0x899C, + 0xD29C, 0x899D, 0xD29D, 0x899E, 0xD29E, 0x899F, 0xD29F, 0x89A0, + 0xD2A0, 0x89A1, 0xD2A1, 0x6447, 0xD2A2, 0x5C27, 0xD2A3, 0x9065, + 0xD2A4, 0x7A91, 0xD2A5, 0x8C23, 0xD2A6, 0x59DA, 0xD2A7, 0x54AC, + 0xD2A8, 0x8200, 0xD2A9, 0x836F, 0xD2AA, 0x8981, 0xD2AB, 0x8000, + 0xD2AC, 0x6930, 0xD2AD, 0x564E, 0xD2AE, 0x8036, 0xD2AF, 0x7237, + 0xD2B0, 0x91CE, 0xD2B1, 0x51B6, 0xD2B2, 0x4E5F, 0xD2B3, 0x9875, + 0xD2B4, 0x6396, 0xD2B5, 0x4E1A, 0xD2B6, 0x53F6, 0xD2B7, 0x66F3, + 0xD2B8, 0x814B, 0xD2B9, 0x591C, 0xD2BA, 0x6DB2, 0xD2BB, 0x4E00, + 0xD2BC, 0x58F9, 0xD2BD, 0x533B, 0xD2BE, 0x63D6, 0xD2BF, 0x94F1, + 0xD2C0, 0x4F9D, 0xD2C1, 0x4F0A, 0xD2C2, 0x8863, 0xD2C3, 0x9890, + 0xD2C4, 0x5937, 0xD2C5, 0x9057, 0xD2C6, 0x79FB, 0xD2C7, 0x4EEA, + 0xD2C8, 0x80F0, 0xD2C9, 0x7591, 0xD2CA, 0x6C82, 0xD2CB, 0x5B9C, + 0xD2CC, 0x59E8, 0xD2CD, 0x5F5D, 0xD2CE, 0x6905, 0xD2CF, 0x8681, + 0xD2D0, 0x501A, 0xD2D1, 0x5DF2, 0xD2D2, 0x4E59, 0xD2D3, 0x77E3, + 0xD2D4, 0x4EE5, 0xD2D5, 0x827A, 0xD2D6, 0x6291, 0xD2D7, 0x6613, + 0xD2D8, 0x9091, 0xD2D9, 0x5C79, 0xD2DA, 0x4EBF, 0xD2DB, 0x5F79, + 0xD2DC, 0x81C6, 0xD2DD, 0x9038, 0xD2DE, 0x8084, 0xD2DF, 0x75AB, + 0xD2E0, 0x4EA6, 0xD2E1, 0x88D4, 0xD2E2, 0x610F, 0xD2E3, 0x6BC5, + 0xD2E4, 0x5FC6, 0xD2E5, 0x4E49, 0xD2E6, 0x76CA, 0xD2E7, 0x6EA2, + 0xD2E8, 0x8BE3, 0xD2E9, 0x8BAE, 0xD2EA, 0x8C0A, 0xD2EB, 0x8BD1, + 0xD2EC, 0x5F02, 0xD2ED, 0x7FFC, 0xD2EE, 0x7FCC, 0xD2EF, 0x7ECE, + 0xD2F0, 0x8335, 0xD2F1, 0x836B, 0xD2F2, 0x56E0, 0xD2F3, 0x6BB7, + 0xD2F4, 0x97F3, 0xD2F5, 0x9634, 0xD2F6, 0x59FB, 0xD2F7, 0x541F, + 0xD2F8, 0x94F6, 0xD2F9, 0x6DEB, 0xD2FA, 0x5BC5, 0xD2FB, 0x996E, + 0xD2FC, 0x5C39, 0xD2FD, 0x5F15, 0xD2FE, 0x9690, 0xD340, 0x89A2, + 0xD341, 0x89A3, 0xD342, 0x89A4, 0xD343, 0x89A5, 0xD344, 0x89A6, + 0xD345, 0x89A7, 0xD346, 0x89A8, 0xD347, 0x89A9, 0xD348, 0x89AA, + 0xD349, 0x89AB, 0xD34A, 0x89AC, 0xD34B, 0x89AD, 0xD34C, 0x89AE, + 0xD34D, 0x89AF, 0xD34E, 0x89B0, 0xD34F, 0x89B1, 0xD350, 0x89B2, + 0xD351, 0x89B3, 0xD352, 0x89B4, 0xD353, 0x89B5, 0xD354, 0x89B6, + 0xD355, 0x89B7, 0xD356, 0x89B8, 0xD357, 0x89B9, 0xD358, 0x89BA, + 0xD359, 0x89BB, 0xD35A, 0x89BC, 0xD35B, 0x89BD, 0xD35C, 0x89BE, + 0xD35D, 0x89BF, 0xD35E, 0x89C0, 0xD35F, 0x89C3, 0xD360, 0x89CD, + 0xD361, 0x89D3, 0xD362, 0x89D4, 0xD363, 0x89D5, 0xD364, 0x89D7, + 0xD365, 0x89D8, 0xD366, 0x89D9, 0xD367, 0x89DB, 0xD368, 0x89DD, + 0xD369, 0x89DF, 0xD36A, 0x89E0, 0xD36B, 0x89E1, 0xD36C, 0x89E2, + 0xD36D, 0x89E4, 0xD36E, 0x89E7, 0xD36F, 0x89E8, 0xD370, 0x89E9, + 0xD371, 0x89EA, 0xD372, 0x89EC, 0xD373, 0x89ED, 0xD374, 0x89EE, + 0xD375, 0x89F0, 0xD376, 0x89F1, 0xD377, 0x89F2, 0xD378, 0x89F4, + 0xD379, 0x89F5, 0xD37A, 0x89F6, 0xD37B, 0x89F7, 0xD37C, 0x89F8, + 0xD37D, 0x89F9, 0xD37E, 0x89FA, 0xD380, 0x89FB, 0xD381, 0x89FC, + 0xD382, 0x89FD, 0xD383, 0x89FE, 0xD384, 0x89FF, 0xD385, 0x8A01, + 0xD386, 0x8A02, 0xD387, 0x8A03, 0xD388, 0x8A04, 0xD389, 0x8A05, + 0xD38A, 0x8A06, 0xD38B, 0x8A08, 0xD38C, 0x8A09, 0xD38D, 0x8A0A, + 0xD38E, 0x8A0B, 0xD38F, 0x8A0C, 0xD390, 0x8A0D, 0xD391, 0x8A0E, + 0xD392, 0x8A0F, 0xD393, 0x8A10, 0xD394, 0x8A11, 0xD395, 0x8A12, + 0xD396, 0x8A13, 0xD397, 0x8A14, 0xD398, 0x8A15, 0xD399, 0x8A16, + 0xD39A, 0x8A17, 0xD39B, 0x8A18, 0xD39C, 0x8A19, 0xD39D, 0x8A1A, + 0xD39E, 0x8A1B, 0xD39F, 0x8A1C, 0xD3A0, 0x8A1D, 0xD3A1, 0x5370, + 0xD3A2, 0x82F1, 0xD3A3, 0x6A31, 0xD3A4, 0x5A74, 0xD3A5, 0x9E70, + 0xD3A6, 0x5E94, 0xD3A7, 0x7F28, 0xD3A8, 0x83B9, 0xD3A9, 0x8424, + 0xD3AA, 0x8425, 0xD3AB, 0x8367, 0xD3AC, 0x8747, 0xD3AD, 0x8FCE, + 0xD3AE, 0x8D62, 0xD3AF, 0x76C8, 0xD3B0, 0x5F71, 0xD3B1, 0x9896, + 0xD3B2, 0x786C, 0xD3B3, 0x6620, 0xD3B4, 0x54DF, 0xD3B5, 0x62E5, + 0xD3B6, 0x4F63, 0xD3B7, 0x81C3, 0xD3B8, 0x75C8, 0xD3B9, 0x5EB8, + 0xD3BA, 0x96CD, 0xD3BB, 0x8E0A, 0xD3BC, 0x86F9, 0xD3BD, 0x548F, + 0xD3BE, 0x6CF3, 0xD3BF, 0x6D8C, 0xD3C0, 0x6C38, 0xD3C1, 0x607F, + 0xD3C2, 0x52C7, 0xD3C3, 0x7528, 0xD3C4, 0x5E7D, 0xD3C5, 0x4F18, + 0xD3C6, 0x60A0, 0xD3C7, 0x5FE7, 0xD3C8, 0x5C24, 0xD3C9, 0x7531, + 0xD3CA, 0x90AE, 0xD3CB, 0x94C0, 0xD3CC, 0x72B9, 0xD3CD, 0x6CB9, + 0xD3CE, 0x6E38, 0xD3CF, 0x9149, 0xD3D0, 0x6709, 0xD3D1, 0x53CB, + 0xD3D2, 0x53F3, 0xD3D3, 0x4F51, 0xD3D4, 0x91C9, 0xD3D5, 0x8BF1, + 0xD3D6, 0x53C8, 0xD3D7, 0x5E7C, 0xD3D8, 0x8FC2, 0xD3D9, 0x6DE4, + 0xD3DA, 0x4E8E, 0xD3DB, 0x76C2, 0xD3DC, 0x6986, 0xD3DD, 0x865E, + 0xD3DE, 0x611A, 0xD3DF, 0x8206, 0xD3E0, 0x4F59, 0xD3E1, 0x4FDE, + 0xD3E2, 0x903E, 0xD3E3, 0x9C7C, 0xD3E4, 0x6109, 0xD3E5, 0x6E1D, + 0xD3E6, 0x6E14, 0xD3E7, 0x9685, 0xD3E8, 0x4E88, 0xD3E9, 0x5A31, + 0xD3EA, 0x96E8, 0xD3EB, 0x4E0E, 0xD3EC, 0x5C7F, 0xD3ED, 0x79B9, + 0xD3EE, 0x5B87, 0xD3EF, 0x8BED, 0xD3F0, 0x7FBD, 0xD3F1, 0x7389, + 0xD3F2, 0x57DF, 0xD3F3, 0x828B, 0xD3F4, 0x90C1, 0xD3F5, 0x5401, + 0xD3F6, 0x9047, 0xD3F7, 0x55BB, 0xD3F8, 0x5CEA, 0xD3F9, 0x5FA1, + 0xD3FA, 0x6108, 0xD3FB, 0x6B32, 0xD3FC, 0x72F1, 0xD3FD, 0x80B2, + 0xD3FE, 0x8A89, 0xD440, 0x8A1E, 0xD441, 0x8A1F, 0xD442, 0x8A20, + 0xD443, 0x8A21, 0xD444, 0x8A22, 0xD445, 0x8A23, 0xD446, 0x8A24, + 0xD447, 0x8A25, 0xD448, 0x8A26, 0xD449, 0x8A27, 0xD44A, 0x8A28, + 0xD44B, 0x8A29, 0xD44C, 0x8A2A, 0xD44D, 0x8A2B, 0xD44E, 0x8A2C, + 0xD44F, 0x8A2D, 0xD450, 0x8A2E, 0xD451, 0x8A2F, 0xD452, 0x8A30, + 0xD453, 0x8A31, 0xD454, 0x8A32, 0xD455, 0x8A33, 0xD456, 0x8A34, + 0xD457, 0x8A35, 0xD458, 0x8A36, 0xD459, 0x8A37, 0xD45A, 0x8A38, + 0xD45B, 0x8A39, 0xD45C, 0x8A3A, 0xD45D, 0x8A3B, 0xD45E, 0x8A3C, + 0xD45F, 0x8A3D, 0xD460, 0x8A3F, 0xD461, 0x8A40, 0xD462, 0x8A41, + 0xD463, 0x8A42, 0xD464, 0x8A43, 0xD465, 0x8A44, 0xD466, 0x8A45, + 0xD467, 0x8A46, 0xD468, 0x8A47, 0xD469, 0x8A49, 0xD46A, 0x8A4A, + 0xD46B, 0x8A4B, 0xD46C, 0x8A4C, 0xD46D, 0x8A4D, 0xD46E, 0x8A4E, + 0xD46F, 0x8A4F, 0xD470, 0x8A50, 0xD471, 0x8A51, 0xD472, 0x8A52, + 0xD473, 0x8A53, 0xD474, 0x8A54, 0xD475, 0x8A55, 0xD476, 0x8A56, + 0xD477, 0x8A57, 0xD478, 0x8A58, 0xD479, 0x8A59, 0xD47A, 0x8A5A, + 0xD47B, 0x8A5B, 0xD47C, 0x8A5C, 0xD47D, 0x8A5D, 0xD47E, 0x8A5E, + 0xD480, 0x8A5F, 0xD481, 0x8A60, 0xD482, 0x8A61, 0xD483, 0x8A62, + 0xD484, 0x8A63, 0xD485, 0x8A64, 0xD486, 0x8A65, 0xD487, 0x8A66, + 0xD488, 0x8A67, 0xD489, 0x8A68, 0xD48A, 0x8A69, 0xD48B, 0x8A6A, + 0xD48C, 0x8A6B, 0xD48D, 0x8A6C, 0xD48E, 0x8A6D, 0xD48F, 0x8A6E, + 0xD490, 0x8A6F, 0xD491, 0x8A70, 0xD492, 0x8A71, 0xD493, 0x8A72, + 0xD494, 0x8A73, 0xD495, 0x8A74, 0xD496, 0x8A75, 0xD497, 0x8A76, + 0xD498, 0x8A77, 0xD499, 0x8A78, 0xD49A, 0x8A7A, 0xD49B, 0x8A7B, + 0xD49C, 0x8A7C, 0xD49D, 0x8A7D, 0xD49E, 0x8A7E, 0xD49F, 0x8A7F, + 0xD4A0, 0x8A80, 0xD4A1, 0x6D74, 0xD4A2, 0x5BD3, 0xD4A3, 0x88D5, + 0xD4A4, 0x9884, 0xD4A5, 0x8C6B, 0xD4A6, 0x9A6D, 0xD4A7, 0x9E33, + 0xD4A8, 0x6E0A, 0xD4A9, 0x51A4, 0xD4AA, 0x5143, 0xD4AB, 0x57A3, + 0xD4AC, 0x8881, 0xD4AD, 0x539F, 0xD4AE, 0x63F4, 0xD4AF, 0x8F95, + 0xD4B0, 0x56ED, 0xD4B1, 0x5458, 0xD4B2, 0x5706, 0xD4B3, 0x733F, + 0xD4B4, 0x6E90, 0xD4B5, 0x7F18, 0xD4B6, 0x8FDC, 0xD4B7, 0x82D1, + 0xD4B8, 0x613F, 0xD4B9, 0x6028, 0xD4BA, 0x9662, 0xD4BB, 0x66F0, + 0xD4BC, 0x7EA6, 0xD4BD, 0x8D8A, 0xD4BE, 0x8DC3, 0xD4BF, 0x94A5, + 0xD4C0, 0x5CB3, 0xD4C1, 0x7CA4, 0xD4C2, 0x6708, 0xD4C3, 0x60A6, + 0xD4C4, 0x9605, 0xD4C5, 0x8018, 0xD4C6, 0x4E91, 0xD4C7, 0x90E7, + 0xD4C8, 0x5300, 0xD4C9, 0x9668, 0xD4CA, 0x5141, 0xD4CB, 0x8FD0, + 0xD4CC, 0x8574, 0xD4CD, 0x915D, 0xD4CE, 0x6655, 0xD4CF, 0x97F5, + 0xD4D0, 0x5B55, 0xD4D1, 0x531D, 0xD4D2, 0x7838, 0xD4D3, 0x6742, + 0xD4D4, 0x683D, 0xD4D5, 0x54C9, 0xD4D6, 0x707E, 0xD4D7, 0x5BB0, + 0xD4D8, 0x8F7D, 0xD4D9, 0x518D, 0xD4DA, 0x5728, 0xD4DB, 0x54B1, + 0xD4DC, 0x6512, 0xD4DD, 0x6682, 0xD4DE, 0x8D5E, 0xD4DF, 0x8D43, + 0xD4E0, 0x810F, 0xD4E1, 0x846C, 0xD4E2, 0x906D, 0xD4E3, 0x7CDF, + 0xD4E4, 0x51FF, 0xD4E5, 0x85FB, 0xD4E6, 0x67A3, 0xD4E7, 0x65E9, + 0xD4E8, 0x6FA1, 0xD4E9, 0x86A4, 0xD4EA, 0x8E81, 0xD4EB, 0x566A, + 0xD4EC, 0x9020, 0xD4ED, 0x7682, 0xD4EE, 0x7076, 0xD4EF, 0x71E5, + 0xD4F0, 0x8D23, 0xD4F1, 0x62E9, 0xD4F2, 0x5219, 0xD4F3, 0x6CFD, + 0xD4F4, 0x8D3C, 0xD4F5, 0x600E, 0xD4F6, 0x589E, 0xD4F7, 0x618E, + 0xD4F8, 0x66FE, 0xD4F9, 0x8D60, 0xD4FA, 0x624E, 0xD4FB, 0x55B3, + 0xD4FC, 0x6E23, 0xD4FD, 0x672D, 0xD4FE, 0x8F67, 0xD540, 0x8A81, + 0xD541, 0x8A82, 0xD542, 0x8A83, 0xD543, 0x8A84, 0xD544, 0x8A85, + 0xD545, 0x8A86, 0xD546, 0x8A87, 0xD547, 0x8A88, 0xD548, 0x8A8B, + 0xD549, 0x8A8C, 0xD54A, 0x8A8D, 0xD54B, 0x8A8E, 0xD54C, 0x8A8F, + 0xD54D, 0x8A90, 0xD54E, 0x8A91, 0xD54F, 0x8A92, 0xD550, 0x8A94, + 0xD551, 0x8A95, 0xD552, 0x8A96, 0xD553, 0x8A97, 0xD554, 0x8A98, + 0xD555, 0x8A99, 0xD556, 0x8A9A, 0xD557, 0x8A9B, 0xD558, 0x8A9C, + 0xD559, 0x8A9D, 0xD55A, 0x8A9E, 0xD55B, 0x8A9F, 0xD55C, 0x8AA0, + 0xD55D, 0x8AA1, 0xD55E, 0x8AA2, 0xD55F, 0x8AA3, 0xD560, 0x8AA4, + 0xD561, 0x8AA5, 0xD562, 0x8AA6, 0xD563, 0x8AA7, 0xD564, 0x8AA8, + 0xD565, 0x8AA9, 0xD566, 0x8AAA, 0xD567, 0x8AAB, 0xD568, 0x8AAC, + 0xD569, 0x8AAD, 0xD56A, 0x8AAE, 0xD56B, 0x8AAF, 0xD56C, 0x8AB0, + 0xD56D, 0x8AB1, 0xD56E, 0x8AB2, 0xD56F, 0x8AB3, 0xD570, 0x8AB4, + 0xD571, 0x8AB5, 0xD572, 0x8AB6, 0xD573, 0x8AB7, 0xD574, 0x8AB8, + 0xD575, 0x8AB9, 0xD576, 0x8ABA, 0xD577, 0x8ABB, 0xD578, 0x8ABC, + 0xD579, 0x8ABD, 0xD57A, 0x8ABE, 0xD57B, 0x8ABF, 0xD57C, 0x8AC0, + 0xD57D, 0x8AC1, 0xD57E, 0x8AC2, 0xD580, 0x8AC3, 0xD581, 0x8AC4, + 0xD582, 0x8AC5, 0xD583, 0x8AC6, 0xD584, 0x8AC7, 0xD585, 0x8AC8, + 0xD586, 0x8AC9, 0xD587, 0x8ACA, 0xD588, 0x8ACB, 0xD589, 0x8ACC, + 0xD58A, 0x8ACD, 0xD58B, 0x8ACE, 0xD58C, 0x8ACF, 0xD58D, 0x8AD0, + 0xD58E, 0x8AD1, 0xD58F, 0x8AD2, 0xD590, 0x8AD3, 0xD591, 0x8AD4, + 0xD592, 0x8AD5, 0xD593, 0x8AD6, 0xD594, 0x8AD7, 0xD595, 0x8AD8, + 0xD596, 0x8AD9, 0xD597, 0x8ADA, 0xD598, 0x8ADB, 0xD599, 0x8ADC, + 0xD59A, 0x8ADD, 0xD59B, 0x8ADE, 0xD59C, 0x8ADF, 0xD59D, 0x8AE0, + 0xD59E, 0x8AE1, 0xD59F, 0x8AE2, 0xD5A0, 0x8AE3, 0xD5A1, 0x94E1, + 0xD5A2, 0x95F8, 0xD5A3, 0x7728, 0xD5A4, 0x6805, 0xD5A5, 0x69A8, + 0xD5A6, 0x548B, 0xD5A7, 0x4E4D, 0xD5A8, 0x70B8, 0xD5A9, 0x8BC8, + 0xD5AA, 0x6458, 0xD5AB, 0x658B, 0xD5AC, 0x5B85, 0xD5AD, 0x7A84, + 0xD5AE, 0x503A, 0xD5AF, 0x5BE8, 0xD5B0, 0x77BB, 0xD5B1, 0x6BE1, + 0xD5B2, 0x8A79, 0xD5B3, 0x7C98, 0xD5B4, 0x6CBE, 0xD5B5, 0x76CF, + 0xD5B6, 0x65A9, 0xD5B7, 0x8F97, 0xD5B8, 0x5D2D, 0xD5B9, 0x5C55, + 0xD5BA, 0x8638, 0xD5BB, 0x6808, 0xD5BC, 0x5360, 0xD5BD, 0x6218, + 0xD5BE, 0x7AD9, 0xD5BF, 0x6E5B, 0xD5C0, 0x7EFD, 0xD5C1, 0x6A1F, + 0xD5C2, 0x7AE0, 0xD5C3, 0x5F70, 0xD5C4, 0x6F33, 0xD5C5, 0x5F20, + 0xD5C6, 0x638C, 0xD5C7, 0x6DA8, 0xD5C8, 0x6756, 0xD5C9, 0x4E08, + 0xD5CA, 0x5E10, 0xD5CB, 0x8D26, 0xD5CC, 0x4ED7, 0xD5CD, 0x80C0, + 0xD5CE, 0x7634, 0xD5CF, 0x969C, 0xD5D0, 0x62DB, 0xD5D1, 0x662D, + 0xD5D2, 0x627E, 0xD5D3, 0x6CBC, 0xD5D4, 0x8D75, 0xD5D5, 0x7167, + 0xD5D6, 0x7F69, 0xD5D7, 0x5146, 0xD5D8, 0x8087, 0xD5D9, 0x53EC, + 0xD5DA, 0x906E, 0xD5DB, 0x6298, 0xD5DC, 0x54F2, 0xD5DD, 0x86F0, + 0xD5DE, 0x8F99, 0xD5DF, 0x8005, 0xD5E0, 0x9517, 0xD5E1, 0x8517, + 0xD5E2, 0x8FD9, 0xD5E3, 0x6D59, 0xD5E4, 0x73CD, 0xD5E5, 0x659F, + 0xD5E6, 0x771F, 0xD5E7, 0x7504, 0xD5E8, 0x7827, 0xD5E9, 0x81FB, + 0xD5EA, 0x8D1E, 0xD5EB, 0x9488, 0xD5EC, 0x4FA6, 0xD5ED, 0x6795, + 0xD5EE, 0x75B9, 0xD5EF, 0x8BCA, 0xD5F0, 0x9707, 0xD5F1, 0x632F, + 0xD5F2, 0x9547, 0xD5F3, 0x9635, 0xD5F4, 0x84B8, 0xD5F5, 0x6323, + 0xD5F6, 0x7741, 0xD5F7, 0x5F81, 0xD5F8, 0x72F0, 0xD5F9, 0x4E89, + 0xD5FA, 0x6014, 0xD5FB, 0x6574, 0xD5FC, 0x62EF, 0xD5FD, 0x6B63, + 0xD5FE, 0x653F, 0xD640, 0x8AE4, 0xD641, 0x8AE5, 0xD642, 0x8AE6, + 0xD643, 0x8AE7, 0xD644, 0x8AE8, 0xD645, 0x8AE9, 0xD646, 0x8AEA, + 0xD647, 0x8AEB, 0xD648, 0x8AEC, 0xD649, 0x8AED, 0xD64A, 0x8AEE, + 0xD64B, 0x8AEF, 0xD64C, 0x8AF0, 0xD64D, 0x8AF1, 0xD64E, 0x8AF2, + 0xD64F, 0x8AF3, 0xD650, 0x8AF4, 0xD651, 0x8AF5, 0xD652, 0x8AF6, + 0xD653, 0x8AF7, 0xD654, 0x8AF8, 0xD655, 0x8AF9, 0xD656, 0x8AFA, + 0xD657, 0x8AFB, 0xD658, 0x8AFC, 0xD659, 0x8AFD, 0xD65A, 0x8AFE, + 0xD65B, 0x8AFF, 0xD65C, 0x8B00, 0xD65D, 0x8B01, 0xD65E, 0x8B02, + 0xD65F, 0x8B03, 0xD660, 0x8B04, 0xD661, 0x8B05, 0xD662, 0x8B06, + 0xD663, 0x8B08, 0xD664, 0x8B09, 0xD665, 0x8B0A, 0xD666, 0x8B0B, + 0xD667, 0x8B0C, 0xD668, 0x8B0D, 0xD669, 0x8B0E, 0xD66A, 0x8B0F, + 0xD66B, 0x8B10, 0xD66C, 0x8B11, 0xD66D, 0x8B12, 0xD66E, 0x8B13, + 0xD66F, 0x8B14, 0xD670, 0x8B15, 0xD671, 0x8B16, 0xD672, 0x8B17, + 0xD673, 0x8B18, 0xD674, 0x8B19, 0xD675, 0x8B1A, 0xD676, 0x8B1B, + 0xD677, 0x8B1C, 0xD678, 0x8B1D, 0xD679, 0x8B1E, 0xD67A, 0x8B1F, + 0xD67B, 0x8B20, 0xD67C, 0x8B21, 0xD67D, 0x8B22, 0xD67E, 0x8B23, + 0xD680, 0x8B24, 0xD681, 0x8B25, 0xD682, 0x8B27, 0xD683, 0x8B28, + 0xD684, 0x8B29, 0xD685, 0x8B2A, 0xD686, 0x8B2B, 0xD687, 0x8B2C, + 0xD688, 0x8B2D, 0xD689, 0x8B2E, 0xD68A, 0x8B2F, 0xD68B, 0x8B30, + 0xD68C, 0x8B31, 0xD68D, 0x8B32, 0xD68E, 0x8B33, 0xD68F, 0x8B34, + 0xD690, 0x8B35, 0xD691, 0x8B36, 0xD692, 0x8B37, 0xD693, 0x8B38, + 0xD694, 0x8B39, 0xD695, 0x8B3A, 0xD696, 0x8B3B, 0xD697, 0x8B3C, + 0xD698, 0x8B3D, 0xD699, 0x8B3E, 0xD69A, 0x8B3F, 0xD69B, 0x8B40, + 0xD69C, 0x8B41, 0xD69D, 0x8B42, 0xD69E, 0x8B43, 0xD69F, 0x8B44, + 0xD6A0, 0x8B45, 0xD6A1, 0x5E27, 0xD6A2, 0x75C7, 0xD6A3, 0x90D1, + 0xD6A4, 0x8BC1, 0xD6A5, 0x829D, 0xD6A6, 0x679D, 0xD6A7, 0x652F, + 0xD6A8, 0x5431, 0xD6A9, 0x8718, 0xD6AA, 0x77E5, 0xD6AB, 0x80A2, + 0xD6AC, 0x8102, 0xD6AD, 0x6C41, 0xD6AE, 0x4E4B, 0xD6AF, 0x7EC7, + 0xD6B0, 0x804C, 0xD6B1, 0x76F4, 0xD6B2, 0x690D, 0xD6B3, 0x6B96, + 0xD6B4, 0x6267, 0xD6B5, 0x503C, 0xD6B6, 0x4F84, 0xD6B7, 0x5740, + 0xD6B8, 0x6307, 0xD6B9, 0x6B62, 0xD6BA, 0x8DBE, 0xD6BB, 0x53EA, + 0xD6BC, 0x65E8, 0xD6BD, 0x7EB8, 0xD6BE, 0x5FD7, 0xD6BF, 0x631A, + 0xD6C0, 0x63B7, 0xD6C1, 0x81F3, 0xD6C2, 0x81F4, 0xD6C3, 0x7F6E, + 0xD6C4, 0x5E1C, 0xD6C5, 0x5CD9, 0xD6C6, 0x5236, 0xD6C7, 0x667A, + 0xD6C8, 0x79E9, 0xD6C9, 0x7A1A, 0xD6CA, 0x8D28, 0xD6CB, 0x7099, + 0xD6CC, 0x75D4, 0xD6CD, 0x6EDE, 0xD6CE, 0x6CBB, 0xD6CF, 0x7A92, + 0xD6D0, 0x4E2D, 0xD6D1, 0x76C5, 0xD6D2, 0x5FE0, 0xD6D3, 0x949F, + 0xD6D4, 0x8877, 0xD6D5, 0x7EC8, 0xD6D6, 0x79CD, 0xD6D7, 0x80BF, + 0xD6D8, 0x91CD, 0xD6D9, 0x4EF2, 0xD6DA, 0x4F17, 0xD6DB, 0x821F, + 0xD6DC, 0x5468, 0xD6DD, 0x5DDE, 0xD6DE, 0x6D32, 0xD6DF, 0x8BCC, + 0xD6E0, 0x7CA5, 0xD6E1, 0x8F74, 0xD6E2, 0x8098, 0xD6E3, 0x5E1A, + 0xD6E4, 0x5492, 0xD6E5, 0x76B1, 0xD6E6, 0x5B99, 0xD6E7, 0x663C, + 0xD6E8, 0x9AA4, 0xD6E9, 0x73E0, 0xD6EA, 0x682A, 0xD6EB, 0x86DB, + 0xD6EC, 0x6731, 0xD6ED, 0x732A, 0xD6EE, 0x8BF8, 0xD6EF, 0x8BDB, + 0xD6F0, 0x9010, 0xD6F1, 0x7AF9, 0xD6F2, 0x70DB, 0xD6F3, 0x716E, + 0xD6F4, 0x62C4, 0xD6F5, 0x77A9, 0xD6F6, 0x5631, 0xD6F7, 0x4E3B, + 0xD6F8, 0x8457, 0xD6F9, 0x67F1, 0xD6FA, 0x52A9, 0xD6FB, 0x86C0, + 0xD6FC, 0x8D2E, 0xD6FD, 0x94F8, 0xD6FE, 0x7B51, 0xD740, 0x8B46, + 0xD741, 0x8B47, 0xD742, 0x8B48, 0xD743, 0x8B49, 0xD744, 0x8B4A, + 0xD745, 0x8B4B, 0xD746, 0x8B4C, 0xD747, 0x8B4D, 0xD748, 0x8B4E, + 0xD749, 0x8B4F, 0xD74A, 0x8B50, 0xD74B, 0x8B51, 0xD74C, 0x8B52, + 0xD74D, 0x8B53, 0xD74E, 0x8B54, 0xD74F, 0x8B55, 0xD750, 0x8B56, + 0xD751, 0x8B57, 0xD752, 0x8B58, 0xD753, 0x8B59, 0xD754, 0x8B5A, + 0xD755, 0x8B5B, 0xD756, 0x8B5C, 0xD757, 0x8B5D, 0xD758, 0x8B5E, + 0xD759, 0x8B5F, 0xD75A, 0x8B60, 0xD75B, 0x8B61, 0xD75C, 0x8B62, + 0xD75D, 0x8B63, 0xD75E, 0x8B64, 0xD75F, 0x8B65, 0xD760, 0x8B67, + 0xD761, 0x8B68, 0xD762, 0x8B69, 0xD763, 0x8B6A, 0xD764, 0x8B6B, + 0xD765, 0x8B6D, 0xD766, 0x8B6E, 0xD767, 0x8B6F, 0xD768, 0x8B70, + 0xD769, 0x8B71, 0xD76A, 0x8B72, 0xD76B, 0x8B73, 0xD76C, 0x8B74, + 0xD76D, 0x8B75, 0xD76E, 0x8B76, 0xD76F, 0x8B77, 0xD770, 0x8B78, + 0xD771, 0x8B79, 0xD772, 0x8B7A, 0xD773, 0x8B7B, 0xD774, 0x8B7C, + 0xD775, 0x8B7D, 0xD776, 0x8B7E, 0xD777, 0x8B7F, 0xD778, 0x8B80, + 0xD779, 0x8B81, 0xD77A, 0x8B82, 0xD77B, 0x8B83, 0xD77C, 0x8B84, + 0xD77D, 0x8B85, 0xD77E, 0x8B86, 0xD780, 0x8B87, 0xD781, 0x8B88, + 0xD782, 0x8B89, 0xD783, 0x8B8A, 0xD784, 0x8B8B, 0xD785, 0x8B8C, + 0xD786, 0x8B8D, 0xD787, 0x8B8E, 0xD788, 0x8B8F, 0xD789, 0x8B90, + 0xD78A, 0x8B91, 0xD78B, 0x8B92, 0xD78C, 0x8B93, 0xD78D, 0x8B94, + 0xD78E, 0x8B95, 0xD78F, 0x8B96, 0xD790, 0x8B97, 0xD791, 0x8B98, + 0xD792, 0x8B99, 0xD793, 0x8B9A, 0xD794, 0x8B9B, 0xD795, 0x8B9C, + 0xD796, 0x8B9D, 0xD797, 0x8B9E, 0xD798, 0x8B9F, 0xD799, 0x8BAC, + 0xD79A, 0x8BB1, 0xD79B, 0x8BBB, 0xD79C, 0x8BC7, 0xD79D, 0x8BD0, + 0xD79E, 0x8BEA, 0xD79F, 0x8C09, 0xD7A0, 0x8C1E, 0xD7A1, 0x4F4F, + 0xD7A2, 0x6CE8, 0xD7A3, 0x795D, 0xD7A4, 0x9A7B, 0xD7A5, 0x6293, + 0xD7A6, 0x722A, 0xD7A7, 0x62FD, 0xD7A8, 0x4E13, 0xD7A9, 0x7816, + 0xD7AA, 0x8F6C, 0xD7AB, 0x64B0, 0xD7AC, 0x8D5A, 0xD7AD, 0x7BC6, + 0xD7AE, 0x6869, 0xD7AF, 0x5E84, 0xD7B0, 0x88C5, 0xD7B1, 0x5986, + 0xD7B2, 0x649E, 0xD7B3, 0x58EE, 0xD7B4, 0x72B6, 0xD7B5, 0x690E, + 0xD7B6, 0x9525, 0xD7B7, 0x8FFD, 0xD7B8, 0x8D58, 0xD7B9, 0x5760, + 0xD7BA, 0x7F00, 0xD7BB, 0x8C06, 0xD7BC, 0x51C6, 0xD7BD, 0x6349, + 0xD7BE, 0x62D9, 0xD7BF, 0x5353, 0xD7C0, 0x684C, 0xD7C1, 0x7422, + 0xD7C2, 0x8301, 0xD7C3, 0x914C, 0xD7C4, 0x5544, 0xD7C5, 0x7740, + 0xD7C6, 0x707C, 0xD7C7, 0x6D4A, 0xD7C8, 0x5179, 0xD7C9, 0x54A8, + 0xD7CA, 0x8D44, 0xD7CB, 0x59FF, 0xD7CC, 0x6ECB, 0xD7CD, 0x6DC4, + 0xD7CE, 0x5B5C, 0xD7CF, 0x7D2B, 0xD7D0, 0x4ED4, 0xD7D1, 0x7C7D, + 0xD7D2, 0x6ED3, 0xD7D3, 0x5B50, 0xD7D4, 0x81EA, 0xD7D5, 0x6E0D, + 0xD7D6, 0x5B57, 0xD7D7, 0x9B03, 0xD7D8, 0x68D5, 0xD7D9, 0x8E2A, + 0xD7DA, 0x5B97, 0xD7DB, 0x7EFC, 0xD7DC, 0x603B, 0xD7DD, 0x7EB5, + 0xD7DE, 0x90B9, 0xD7DF, 0x8D70, 0xD7E0, 0x594F, 0xD7E1, 0x63CD, + 0xD7E2, 0x79DF, 0xD7E3, 0x8DB3, 0xD7E4, 0x5352, 0xD7E5, 0x65CF, + 0xD7E6, 0x7956, 0xD7E7, 0x8BC5, 0xD7E8, 0x963B, 0xD7E9, 0x7EC4, + 0xD7EA, 0x94BB, 0xD7EB, 0x7E82, 0xD7EC, 0x5634, 0xD7ED, 0x9189, + 0xD7EE, 0x6700, 0xD7EF, 0x7F6A, 0xD7F0, 0x5C0A, 0xD7F1, 0x9075, + 0xD7F2, 0x6628, 0xD7F3, 0x5DE6, 0xD7F4, 0x4F50, 0xD7F5, 0x67DE, + 0xD7F6, 0x505A, 0xD7F7, 0x4F5C, 0xD7F8, 0x5750, 0xD7F9, 0x5EA7, + 0xD840, 0x8C38, 0xD841, 0x8C39, 0xD842, 0x8C3A, 0xD843, 0x8C3B, + 0xD844, 0x8C3C, 0xD845, 0x8C3D, 0xD846, 0x8C3E, 0xD847, 0x8C3F, + 0xD848, 0x8C40, 0xD849, 0x8C42, 0xD84A, 0x8C43, 0xD84B, 0x8C44, + 0xD84C, 0x8C45, 0xD84D, 0x8C48, 0xD84E, 0x8C4A, 0xD84F, 0x8C4B, + 0xD850, 0x8C4D, 0xD851, 0x8C4E, 0xD852, 0x8C4F, 0xD853, 0x8C50, + 0xD854, 0x8C51, 0xD855, 0x8C52, 0xD856, 0x8C53, 0xD857, 0x8C54, + 0xD858, 0x8C56, 0xD859, 0x8C57, 0xD85A, 0x8C58, 0xD85B, 0x8C59, + 0xD85C, 0x8C5B, 0xD85D, 0x8C5C, 0xD85E, 0x8C5D, 0xD85F, 0x8C5E, + 0xD860, 0x8C5F, 0xD861, 0x8C60, 0xD862, 0x8C63, 0xD863, 0x8C64, + 0xD864, 0x8C65, 0xD865, 0x8C66, 0xD866, 0x8C67, 0xD867, 0x8C68, + 0xD868, 0x8C69, 0xD869, 0x8C6C, 0xD86A, 0x8C6D, 0xD86B, 0x8C6E, + 0xD86C, 0x8C6F, 0xD86D, 0x8C70, 0xD86E, 0x8C71, 0xD86F, 0x8C72, + 0xD870, 0x8C74, 0xD871, 0x8C75, 0xD872, 0x8C76, 0xD873, 0x8C77, + 0xD874, 0x8C7B, 0xD875, 0x8C7C, 0xD876, 0x8C7D, 0xD877, 0x8C7E, + 0xD878, 0x8C7F, 0xD879, 0x8C80, 0xD87A, 0x8C81, 0xD87B, 0x8C83, + 0xD87C, 0x8C84, 0xD87D, 0x8C86, 0xD87E, 0x8C87, 0xD880, 0x8C88, + 0xD881, 0x8C8B, 0xD882, 0x8C8D, 0xD883, 0x8C8E, 0xD884, 0x8C8F, + 0xD885, 0x8C90, 0xD886, 0x8C91, 0xD887, 0x8C92, 0xD888, 0x8C93, + 0xD889, 0x8C95, 0xD88A, 0x8C96, 0xD88B, 0x8C97, 0xD88C, 0x8C99, + 0xD88D, 0x8C9A, 0xD88E, 0x8C9B, 0xD88F, 0x8C9C, 0xD890, 0x8C9D, + 0xD891, 0x8C9E, 0xD892, 0x8C9F, 0xD893, 0x8CA0, 0xD894, 0x8CA1, + 0xD895, 0x8CA2, 0xD896, 0x8CA3, 0xD897, 0x8CA4, 0xD898, 0x8CA5, + 0xD899, 0x8CA6, 0xD89A, 0x8CA7, 0xD89B, 0x8CA8, 0xD89C, 0x8CA9, + 0xD89D, 0x8CAA, 0xD89E, 0x8CAB, 0xD89F, 0x8CAC, 0xD8A0, 0x8CAD, + 0xD8A1, 0x4E8D, 0xD8A2, 0x4E0C, 0xD8A3, 0x5140, 0xD8A4, 0x4E10, + 0xD8A5, 0x5EFF, 0xD8A6, 0x5345, 0xD8A7, 0x4E15, 0xD8A8, 0x4E98, + 0xD8A9, 0x4E1E, 0xD8AA, 0x9B32, 0xD8AB, 0x5B6C, 0xD8AC, 0x5669, + 0xD8AD, 0x4E28, 0xD8AE, 0x79BA, 0xD8AF, 0x4E3F, 0xD8B0, 0x5315, + 0xD8B1, 0x4E47, 0xD8B2, 0x592D, 0xD8B3, 0x723B, 0xD8B4, 0x536E, + 0xD8B5, 0x6C10, 0xD8B6, 0x56DF, 0xD8B7, 0x80E4, 0xD8B8, 0x9997, + 0xD8B9, 0x6BD3, 0xD8BA, 0x777E, 0xD8BB, 0x9F17, 0xD8BC, 0x4E36, + 0xD8BD, 0x4E9F, 0xD8BE, 0x9F10, 0xD8BF, 0x4E5C, 0xD8C0, 0x4E69, + 0xD8C1, 0x4E93, 0xD8C2, 0x8288, 0xD8C3, 0x5B5B, 0xD8C4, 0x556C, + 0xD8C5, 0x560F, 0xD8C6, 0x4EC4, 0xD8C7, 0x538D, 0xD8C8, 0x539D, + 0xD8C9, 0x53A3, 0xD8CA, 0x53A5, 0xD8CB, 0x53AE, 0xD8CC, 0x9765, + 0xD8CD, 0x8D5D, 0xD8CE, 0x531A, 0xD8CF, 0x53F5, 0xD8D0, 0x5326, + 0xD8D1, 0x532E, 0xD8D2, 0x533E, 0xD8D3, 0x8D5C, 0xD8D4, 0x5366, + 0xD8D5, 0x5363, 0xD8D6, 0x5202, 0xD8D7, 0x5208, 0xD8D8, 0x520E, + 0xD8D9, 0x522D, 0xD8DA, 0x5233, 0xD8DB, 0x523F, 0xD8DC, 0x5240, + 0xD8DD, 0x524C, 0xD8DE, 0x525E, 0xD8DF, 0x5261, 0xD8E0, 0x525C, + 0xD8E1, 0x84AF, 0xD8E2, 0x527D, 0xD8E3, 0x5282, 0xD8E4, 0x5281, + 0xD8E5, 0x5290, 0xD8E6, 0x5293, 0xD8E7, 0x5182, 0xD8E8, 0x7F54, + 0xD8E9, 0x4EBB, 0xD8EA, 0x4EC3, 0xD8EB, 0x4EC9, 0xD8EC, 0x4EC2, + 0xD8ED, 0x4EE8, 0xD8EE, 0x4EE1, 0xD8EF, 0x4EEB, 0xD8F0, 0x4EDE, + 0xD8F1, 0x4F1B, 0xD8F2, 0x4EF3, 0xD8F3, 0x4F22, 0xD8F4, 0x4F64, + 0xD8F5, 0x4EF5, 0xD8F6, 0x4F25, 0xD8F7, 0x4F27, 0xD8F8, 0x4F09, + 0xD8F9, 0x4F2B, 0xD8FA, 0x4F5E, 0xD8FB, 0x4F67, 0xD8FC, 0x6538, + 0xD8FD, 0x4F5A, 0xD8FE, 0x4F5D, 0xD940, 0x8CAE, 0xD941, 0x8CAF, + 0xD942, 0x8CB0, 0xD943, 0x8CB1, 0xD944, 0x8CB2, 0xD945, 0x8CB3, + 0xD946, 0x8CB4, 0xD947, 0x8CB5, 0xD948, 0x8CB6, 0xD949, 0x8CB7, + 0xD94A, 0x8CB8, 0xD94B, 0x8CB9, 0xD94C, 0x8CBA, 0xD94D, 0x8CBB, + 0xD94E, 0x8CBC, 0xD94F, 0x8CBD, 0xD950, 0x8CBE, 0xD951, 0x8CBF, + 0xD952, 0x8CC0, 0xD953, 0x8CC1, 0xD954, 0x8CC2, 0xD955, 0x8CC3, + 0xD956, 0x8CC4, 0xD957, 0x8CC5, 0xD958, 0x8CC6, 0xD959, 0x8CC7, + 0xD95A, 0x8CC8, 0xD95B, 0x8CC9, 0xD95C, 0x8CCA, 0xD95D, 0x8CCB, + 0xD95E, 0x8CCC, 0xD95F, 0x8CCD, 0xD960, 0x8CCE, 0xD961, 0x8CCF, + 0xD962, 0x8CD0, 0xD963, 0x8CD1, 0xD964, 0x8CD2, 0xD965, 0x8CD3, + 0xD966, 0x8CD4, 0xD967, 0x8CD5, 0xD968, 0x8CD6, 0xD969, 0x8CD7, + 0xD96A, 0x8CD8, 0xD96B, 0x8CD9, 0xD96C, 0x8CDA, 0xD96D, 0x8CDB, + 0xD96E, 0x8CDC, 0xD96F, 0x8CDD, 0xD970, 0x8CDE, 0xD971, 0x8CDF, + 0xD972, 0x8CE0, 0xD973, 0x8CE1, 0xD974, 0x8CE2, 0xD975, 0x8CE3, + 0xD976, 0x8CE4, 0xD977, 0x8CE5, 0xD978, 0x8CE6, 0xD979, 0x8CE7, + 0xD97A, 0x8CE8, 0xD97B, 0x8CE9, 0xD97C, 0x8CEA, 0xD97D, 0x8CEB, + 0xD97E, 0x8CEC, 0xD980, 0x8CED, 0xD981, 0x8CEE, 0xD982, 0x8CEF, + 0xD983, 0x8CF0, 0xD984, 0x8CF1, 0xD985, 0x8CF2, 0xD986, 0x8CF3, + 0xD987, 0x8CF4, 0xD988, 0x8CF5, 0xD989, 0x8CF6, 0xD98A, 0x8CF7, + 0xD98B, 0x8CF8, 0xD98C, 0x8CF9, 0xD98D, 0x8CFA, 0xD98E, 0x8CFB, + 0xD98F, 0x8CFC, 0xD990, 0x8CFD, 0xD991, 0x8CFE, 0xD992, 0x8CFF, + 0xD993, 0x8D00, 0xD994, 0x8D01, 0xD995, 0x8D02, 0xD996, 0x8D03, + 0xD997, 0x8D04, 0xD998, 0x8D05, 0xD999, 0x8D06, 0xD99A, 0x8D07, + 0xD99B, 0x8D08, 0xD99C, 0x8D09, 0xD99D, 0x8D0A, 0xD99E, 0x8D0B, + 0xD99F, 0x8D0C, 0xD9A0, 0x8D0D, 0xD9A1, 0x4F5F, 0xD9A2, 0x4F57, + 0xD9A3, 0x4F32, 0xD9A4, 0x4F3D, 0xD9A5, 0x4F76, 0xD9A6, 0x4F74, + 0xD9A7, 0x4F91, 0xD9A8, 0x4F89, 0xD9A9, 0x4F83, 0xD9AA, 0x4F8F, + 0xD9AB, 0x4F7E, 0xD9AC, 0x4F7B, 0xD9AD, 0x4FAA, 0xD9AE, 0x4F7C, + 0xD9AF, 0x4FAC, 0xD9B0, 0x4F94, 0xD9B1, 0x4FE6, 0xD9B2, 0x4FE8, + 0xD9B3, 0x4FEA, 0xD9B4, 0x4FC5, 0xD9B5, 0x4FDA, 0xD9B6, 0x4FE3, + 0xD9B7, 0x4FDC, 0xD9B8, 0x4FD1, 0xD9B9, 0x4FDF, 0xD9BA, 0x4FF8, + 0xD9BB, 0x5029, 0xD9BC, 0x504C, 0xD9BD, 0x4FF3, 0xD9BE, 0x502C, + 0xD9BF, 0x500F, 0xD9C0, 0x502E, 0xD9C1, 0x502D, 0xD9C2, 0x4FFE, + 0xD9C3, 0x501C, 0xD9C4, 0x500C, 0xD9C5, 0x5025, 0xD9C6, 0x5028, + 0xD9C7, 0x507E, 0xD9C8, 0x5043, 0xD9C9, 0x5055, 0xD9CA, 0x5048, + 0xD9CB, 0x504E, 0xD9CC, 0x506C, 0xD9CD, 0x507B, 0xD9CE, 0x50A5, + 0xD9CF, 0x50A7, 0xD9D0, 0x50A9, 0xD9D1, 0x50BA, 0xD9D2, 0x50D6, + 0xD9D3, 0x5106, 0xD9D4, 0x50ED, 0xD9D5, 0x50EC, 0xD9D6, 0x50E6, + 0xD9D7, 0x50EE, 0xD9D8, 0x5107, 0xD9D9, 0x510B, 0xD9DA, 0x4EDD, + 0xD9DB, 0x6C3D, 0xD9DC, 0x4F58, 0xD9DD, 0x4F65, 0xD9DE, 0x4FCE, + 0xD9DF, 0x9FA0, 0xD9E0, 0x6C46, 0xD9E1, 0x7C74, 0xD9E2, 0x516E, + 0xD9E3, 0x5DFD, 0xD9E4, 0x9EC9, 0xD9E5, 0x9998, 0xD9E6, 0x5181, + 0xD9E7, 0x5914, 0xD9E8, 0x52F9, 0xD9E9, 0x530D, 0xD9EA, 0x8A07, + 0xD9EB, 0x5310, 0xD9EC, 0x51EB, 0xD9ED, 0x5919, 0xD9EE, 0x5155, + 0xD9EF, 0x4EA0, 0xD9F0, 0x5156, 0xD9F1, 0x4EB3, 0xD9F2, 0x886E, + 0xD9F3, 0x88A4, 0xD9F4, 0x4EB5, 0xD9F5, 0x8114, 0xD9F6, 0x88D2, + 0xD9F7, 0x7980, 0xD9F8, 0x5B34, 0xD9F9, 0x8803, 0xD9FA, 0x7FB8, + 0xD9FB, 0x51AB, 0xD9FC, 0x51B1, 0xD9FD, 0x51BD, 0xD9FE, 0x51BC, + 0xDA40, 0x8D0E, 0xDA41, 0x8D0F, 0xDA42, 0x8D10, 0xDA43, 0x8D11, + 0xDA44, 0x8D12, 0xDA45, 0x8D13, 0xDA46, 0x8D14, 0xDA47, 0x8D15, + 0xDA48, 0x8D16, 0xDA49, 0x8D17, 0xDA4A, 0x8D18, 0xDA4B, 0x8D19, + 0xDA4C, 0x8D1A, 0xDA4D, 0x8D1B, 0xDA4E, 0x8D1C, 0xDA4F, 0x8D20, + 0xDA50, 0x8D51, 0xDA51, 0x8D52, 0xDA52, 0x8D57, 0xDA53, 0x8D5F, + 0xDA54, 0x8D65, 0xDA55, 0x8D68, 0xDA56, 0x8D69, 0xDA57, 0x8D6A, + 0xDA58, 0x8D6C, 0xDA59, 0x8D6E, 0xDA5A, 0x8D6F, 0xDA5B, 0x8D71, + 0xDA5C, 0x8D72, 0xDA5D, 0x8D78, 0xDA5E, 0x8D79, 0xDA5F, 0x8D7A, + 0xDA60, 0x8D7B, 0xDA61, 0x8D7C, 0xDA62, 0x8D7D, 0xDA63, 0x8D7E, + 0xDA64, 0x8D7F, 0xDA65, 0x8D80, 0xDA66, 0x8D82, 0xDA67, 0x8D83, + 0xDA68, 0x8D86, 0xDA69, 0x8D87, 0xDA6A, 0x8D88, 0xDA6B, 0x8D89, + 0xDA6C, 0x8D8C, 0xDA6D, 0x8D8D, 0xDA6E, 0x8D8E, 0xDA6F, 0x8D8F, + 0xDA70, 0x8D90, 0xDA71, 0x8D92, 0xDA72, 0x8D93, 0xDA73, 0x8D95, + 0xDA74, 0x8D96, 0xDA75, 0x8D97, 0xDA76, 0x8D98, 0xDA77, 0x8D99, + 0xDA78, 0x8D9A, 0xDA79, 0x8D9B, 0xDA7A, 0x8D9C, 0xDA7B, 0x8D9D, + 0xDA7C, 0x8D9E, 0xDA7D, 0x8DA0, 0xDA7E, 0x8DA1, 0xDA80, 0x8DA2, + 0xDA81, 0x8DA4, 0xDA82, 0x8DA5, 0xDA83, 0x8DA6, 0xDA84, 0x8DA7, + 0xDA85, 0x8DA8, 0xDA86, 0x8DA9, 0xDA87, 0x8DAA, 0xDA88, 0x8DAB, + 0xDA89, 0x8DAC, 0xDA8A, 0x8DAD, 0xDA8B, 0x8DAE, 0xDA8C, 0x8DAF, + 0xDA8D, 0x8DB0, 0xDA8E, 0x8DB2, 0xDA8F, 0x8DB6, 0xDA90, 0x8DB7, + 0xDA91, 0x8DB9, 0xDA92, 0x8DBB, 0xDA93, 0x8DBD, 0xDA94, 0x8DC0, + 0xDA95, 0x8DC1, 0xDA96, 0x8DC2, 0xDA97, 0x8DC5, 0xDA98, 0x8DC7, + 0xDA99, 0x8DC8, 0xDA9A, 0x8DC9, 0xDA9B, 0x8DCA, 0xDA9C, 0x8DCD, + 0xDA9D, 0x8DD0, 0xDA9E, 0x8DD2, 0xDA9F, 0x8DD3, 0xDAA0, 0x8DD4, + 0xDAA1, 0x51C7, 0xDAA2, 0x5196, 0xDAA3, 0x51A2, 0xDAA4, 0x51A5, + 0xDAA5, 0x8BA0, 0xDAA6, 0x8BA6, 0xDAA7, 0x8BA7, 0xDAA8, 0x8BAA, + 0xDAA9, 0x8BB4, 0xDAAA, 0x8BB5, 0xDAAB, 0x8BB7, 0xDAAC, 0x8BC2, + 0xDAAD, 0x8BC3, 0xDAAE, 0x8BCB, 0xDAAF, 0x8BCF, 0xDAB0, 0x8BCE, + 0xDAB1, 0x8BD2, 0xDAB2, 0x8BD3, 0xDAB3, 0x8BD4, 0xDAB4, 0x8BD6, + 0xDAB5, 0x8BD8, 0xDAB6, 0x8BD9, 0xDAB7, 0x8BDC, 0xDAB8, 0x8BDF, + 0xDAB9, 0x8BE0, 0xDABA, 0x8BE4, 0xDABB, 0x8BE8, 0xDABC, 0x8BE9, + 0xDABD, 0x8BEE, 0xDABE, 0x8BF0, 0xDABF, 0x8BF3, 0xDAC0, 0x8BF6, + 0xDAC1, 0x8BF9, 0xDAC2, 0x8BFC, 0xDAC3, 0x8BFF, 0xDAC4, 0x8C00, + 0xDAC5, 0x8C02, 0xDAC6, 0x8C04, 0xDAC7, 0x8C07, 0xDAC8, 0x8C0C, + 0xDAC9, 0x8C0F, 0xDACA, 0x8C11, 0xDACB, 0x8C12, 0xDACC, 0x8C14, + 0xDACD, 0x8C15, 0xDACE, 0x8C16, 0xDACF, 0x8C19, 0xDAD0, 0x8C1B, + 0xDAD1, 0x8C18, 0xDAD2, 0x8C1D, 0xDAD3, 0x8C1F, 0xDAD4, 0x8C20, + 0xDAD5, 0x8C21, 0xDAD6, 0x8C25, 0xDAD7, 0x8C27, 0xDAD8, 0x8C2A, + 0xDAD9, 0x8C2B, 0xDADA, 0x8C2E, 0xDADB, 0x8C2F, 0xDADC, 0x8C32, + 0xDADD, 0x8C33, 0xDADE, 0x8C35, 0xDADF, 0x8C36, 0xDAE0, 0x5369, + 0xDAE1, 0x537A, 0xDAE2, 0x961D, 0xDAE3, 0x9622, 0xDAE4, 0x9621, + 0xDAE5, 0x9631, 0xDAE6, 0x962A, 0xDAE7, 0x963D, 0xDAE8, 0x963C, + 0xDAE9, 0x9642, 0xDAEA, 0x9649, 0xDAEB, 0x9654, 0xDAEC, 0x965F, + 0xDAED, 0x9667, 0xDAEE, 0x966C, 0xDAEF, 0x9672, 0xDAF0, 0x9674, + 0xDAF1, 0x9688, 0xDAF2, 0x968D, 0xDAF3, 0x9697, 0xDAF4, 0x96B0, + 0xDAF5, 0x9097, 0xDAF6, 0x909B, 0xDAF7, 0x909D, 0xDAF8, 0x9099, + 0xDAF9, 0x90AC, 0xDAFA, 0x90A1, 0xDAFB, 0x90B4, 0xDAFC, 0x90B3, + 0xDAFD, 0x90B6, 0xDAFE, 0x90BA, 0xDB40, 0x8DD5, 0xDB41, 0x8DD8, + 0xDB42, 0x8DD9, 0xDB43, 0x8DDC, 0xDB44, 0x8DE0, 0xDB45, 0x8DE1, + 0xDB46, 0x8DE2, 0xDB47, 0x8DE5, 0xDB48, 0x8DE6, 0xDB49, 0x8DE7, + 0xDB4A, 0x8DE9, 0xDB4B, 0x8DED, 0xDB4C, 0x8DEE, 0xDB4D, 0x8DF0, + 0xDB4E, 0x8DF1, 0xDB4F, 0x8DF2, 0xDB50, 0x8DF4, 0xDB51, 0x8DF6, + 0xDB52, 0x8DFC, 0xDB53, 0x8DFE, 0xDB54, 0x8DFF, 0xDB55, 0x8E00, + 0xDB56, 0x8E01, 0xDB57, 0x8E02, 0xDB58, 0x8E03, 0xDB59, 0x8E04, + 0xDB5A, 0x8E06, 0xDB5B, 0x8E07, 0xDB5C, 0x8E08, 0xDB5D, 0x8E0B, + 0xDB5E, 0x8E0D, 0xDB5F, 0x8E0E, 0xDB60, 0x8E10, 0xDB61, 0x8E11, + 0xDB62, 0x8E12, 0xDB63, 0x8E13, 0xDB64, 0x8E15, 0xDB65, 0x8E16, + 0xDB66, 0x8E17, 0xDB67, 0x8E18, 0xDB68, 0x8E19, 0xDB69, 0x8E1A, + 0xDB6A, 0x8E1B, 0xDB6B, 0x8E1C, 0xDB6C, 0x8E20, 0xDB6D, 0x8E21, + 0xDB6E, 0x8E24, 0xDB6F, 0x8E25, 0xDB70, 0x8E26, 0xDB71, 0x8E27, + 0xDB72, 0x8E28, 0xDB73, 0x8E2B, 0xDB74, 0x8E2D, 0xDB75, 0x8E30, + 0xDB76, 0x8E32, 0xDB77, 0x8E33, 0xDB78, 0x8E34, 0xDB79, 0x8E36, + 0xDB7A, 0x8E37, 0xDB7B, 0x8E38, 0xDB7C, 0x8E3B, 0xDB7D, 0x8E3C, + 0xDB7E, 0x8E3E, 0xDB80, 0x8E3F, 0xDB81, 0x8E43, 0xDB82, 0x8E45, + 0xDB83, 0x8E46, 0xDB84, 0x8E4C, 0xDB85, 0x8E4D, 0xDB86, 0x8E4E, + 0xDB87, 0x8E4F, 0xDB88, 0x8E50, 0xDB89, 0x8E53, 0xDB8A, 0x8E54, + 0xDB8B, 0x8E55, 0xDB8C, 0x8E56, 0xDB8D, 0x8E57, 0xDB8E, 0x8E58, + 0xDB8F, 0x8E5A, 0xDB90, 0x8E5B, 0xDB91, 0x8E5C, 0xDB92, 0x8E5D, + 0xDB93, 0x8E5E, 0xDB94, 0x8E5F, 0xDB95, 0x8E60, 0xDB96, 0x8E61, + 0xDB97, 0x8E62, 0xDB98, 0x8E63, 0xDB99, 0x8E64, 0xDB9A, 0x8E65, + 0xDB9B, 0x8E67, 0xDB9C, 0x8E68, 0xDB9D, 0x8E6A, 0xDB9E, 0x8E6B, + 0xDB9F, 0x8E6E, 0xDBA0, 0x8E71, 0xDBA1, 0x90B8, 0xDBA2, 0x90B0, + 0xDBA3, 0x90CF, 0xDBA4, 0x90C5, 0xDBA5, 0x90BE, 0xDBA6, 0x90D0, + 0xDBA7, 0x90C4, 0xDBA8, 0x90C7, 0xDBA9, 0x90D3, 0xDBAA, 0x90E6, + 0xDBAB, 0x90E2, 0xDBAC, 0x90DC, 0xDBAD, 0x90D7, 0xDBAE, 0x90DB, + 0xDBAF, 0x90EB, 0xDBB0, 0x90EF, 0xDBB1, 0x90FE, 0xDBB2, 0x9104, + 0xDBB3, 0x9122, 0xDBB4, 0x911E, 0xDBB5, 0x9123, 0xDBB6, 0x9131, + 0xDBB7, 0x912F, 0xDBB8, 0x9139, 0xDBB9, 0x9143, 0xDBBA, 0x9146, + 0xDBBB, 0x520D, 0xDBBC, 0x5942, 0xDBBD, 0x52A2, 0xDBBE, 0x52AC, + 0xDBBF, 0x52AD, 0xDBC0, 0x52BE, 0xDBC1, 0x54FF, 0xDBC2, 0x52D0, + 0xDBC3, 0x52D6, 0xDBC4, 0x52F0, 0xDBC5, 0x53DF, 0xDBC6, 0x71EE, + 0xDBC7, 0x77CD, 0xDBC8, 0x5EF4, 0xDBC9, 0x51F5, 0xDBCA, 0x51FC, + 0xDBCB, 0x9B2F, 0xDBCC, 0x53B6, 0xDBCD, 0x5F01, 0xDBCE, 0x755A, + 0xDBCF, 0x5DEF, 0xDBD0, 0x574C, 0xDBD1, 0x57A9, 0xDBD2, 0x57A1, + 0xDBD3, 0x587E, 0xDBD4, 0x58BC, 0xDBD5, 0x58C5, 0xDBD6, 0x58D1, + 0xDBD7, 0x5729, 0xDBD8, 0x572C, 0xDBD9, 0x572A, 0xDBDA, 0x5733, + 0xDBDB, 0x5739, 0xDBDC, 0x572E, 0xDBDD, 0x572F, 0xDBDE, 0x575C, + 0xDBDF, 0x573B, 0xDBE0, 0x5742, 0xDBE1, 0x5769, 0xDBE2, 0x5785, + 0xDBE3, 0x576B, 0xDBE4, 0x5786, 0xDBE5, 0x577C, 0xDBE6, 0x577B, + 0xDBE7, 0x5768, 0xDBE8, 0x576D, 0xDBE9, 0x5776, 0xDBEA, 0x5773, + 0xDBEB, 0x57AD, 0xDBEC, 0x57A4, 0xDBED, 0x578C, 0xDBEE, 0x57B2, + 0xDBEF, 0x57CF, 0xDBF0, 0x57A7, 0xDBF1, 0x57B4, 0xDBF2, 0x5793, + 0xDBF3, 0x57A0, 0xDBF4, 0x57D5, 0xDBF5, 0x57D8, 0xDBF6, 0x57DA, + 0xDBF7, 0x57D9, 0xDBF8, 0x57D2, 0xDBF9, 0x57B8, 0xDBFA, 0x57F4, + 0xDBFB, 0x57EF, 0xDBFC, 0x57F8, 0xDBFD, 0x57E4, 0xDBFE, 0x57DD, + 0xDC40, 0x8E73, 0xDC41, 0x8E75, 0xDC42, 0x8E77, 0xDC43, 0x8E78, + 0xDC44, 0x8E79, 0xDC45, 0x8E7A, 0xDC46, 0x8E7B, 0xDC47, 0x8E7D, + 0xDC48, 0x8E7E, 0xDC49, 0x8E80, 0xDC4A, 0x8E82, 0xDC4B, 0x8E83, + 0xDC4C, 0x8E84, 0xDC4D, 0x8E86, 0xDC4E, 0x8E88, 0xDC4F, 0x8E89, + 0xDC50, 0x8E8A, 0xDC51, 0x8E8B, 0xDC52, 0x8E8C, 0xDC53, 0x8E8D, + 0xDC54, 0x8E8E, 0xDC55, 0x8E91, 0xDC56, 0x8E92, 0xDC57, 0x8E93, + 0xDC58, 0x8E95, 0xDC59, 0x8E96, 0xDC5A, 0x8E97, 0xDC5B, 0x8E98, + 0xDC5C, 0x8E99, 0xDC5D, 0x8E9A, 0xDC5E, 0x8E9B, 0xDC5F, 0x8E9D, + 0xDC60, 0x8E9F, 0xDC61, 0x8EA0, 0xDC62, 0x8EA1, 0xDC63, 0x8EA2, + 0xDC64, 0x8EA3, 0xDC65, 0x8EA4, 0xDC66, 0x8EA5, 0xDC67, 0x8EA6, + 0xDC68, 0x8EA7, 0xDC69, 0x8EA8, 0xDC6A, 0x8EA9, 0xDC6B, 0x8EAA, + 0xDC6C, 0x8EAD, 0xDC6D, 0x8EAE, 0xDC6E, 0x8EB0, 0xDC6F, 0x8EB1, + 0xDC70, 0x8EB3, 0xDC71, 0x8EB4, 0xDC72, 0x8EB5, 0xDC73, 0x8EB6, + 0xDC74, 0x8EB7, 0xDC75, 0x8EB8, 0xDC76, 0x8EB9, 0xDC77, 0x8EBB, + 0xDC78, 0x8EBC, 0xDC79, 0x8EBD, 0xDC7A, 0x8EBE, 0xDC7B, 0x8EBF, + 0xDC7C, 0x8EC0, 0xDC7D, 0x8EC1, 0xDC7E, 0x8EC2, 0xDC80, 0x8EC3, + 0xDC81, 0x8EC4, 0xDC82, 0x8EC5, 0xDC83, 0x8EC6, 0xDC84, 0x8EC7, + 0xDC85, 0x8EC8, 0xDC86, 0x8EC9, 0xDC87, 0x8ECA, 0xDC88, 0x8ECB, + 0xDC89, 0x8ECC, 0xDC8A, 0x8ECD, 0xDC8B, 0x8ECF, 0xDC8C, 0x8ED0, + 0xDC8D, 0x8ED1, 0xDC8E, 0x8ED2, 0xDC8F, 0x8ED3, 0xDC90, 0x8ED4, + 0xDC91, 0x8ED5, 0xDC92, 0x8ED6, 0xDC93, 0x8ED7, 0xDC94, 0x8ED8, + 0xDC95, 0x8ED9, 0xDC96, 0x8EDA, 0xDC97, 0x8EDB, 0xDC98, 0x8EDC, + 0xDC99, 0x8EDD, 0xDC9A, 0x8EDE, 0xDC9B, 0x8EDF, 0xDC9C, 0x8EE0, + 0xDC9D, 0x8EE1, 0xDC9E, 0x8EE2, 0xDC9F, 0x8EE3, 0xDCA0, 0x8EE4, + 0xDCA1, 0x580B, 0xDCA2, 0x580D, 0xDCA3, 0x57FD, 0xDCA4, 0x57ED, + 0xDCA5, 0x5800, 0xDCA6, 0x581E, 0xDCA7, 0x5819, 0xDCA8, 0x5844, + 0xDCA9, 0x5820, 0xDCAA, 0x5865, 0xDCAB, 0x586C, 0xDCAC, 0x5881, + 0xDCAD, 0x5889, 0xDCAE, 0x589A, 0xDCAF, 0x5880, 0xDCB0, 0x99A8, + 0xDCB1, 0x9F19, 0xDCB2, 0x61FF, 0xDCB3, 0x8279, 0xDCB4, 0x827D, + 0xDCB5, 0x827F, 0xDCB6, 0x828F, 0xDCB7, 0x828A, 0xDCB8, 0x82A8, + 0xDCB9, 0x8284, 0xDCBA, 0x828E, 0xDCBB, 0x8291, 0xDCBC, 0x8297, + 0xDCBD, 0x8299, 0xDCBE, 0x82AB, 0xDCBF, 0x82B8, 0xDCC0, 0x82BE, + 0xDCC1, 0x82B0, 0xDCC2, 0x82C8, 0xDCC3, 0x82CA, 0xDCC4, 0x82E3, + 0xDCC5, 0x8298, 0xDCC6, 0x82B7, 0xDCC7, 0x82AE, 0xDCC8, 0x82CB, + 0xDCC9, 0x82CC, 0xDCCA, 0x82C1, 0xDCCB, 0x82A9, 0xDCCC, 0x82B4, + 0xDCCD, 0x82A1, 0xDCCE, 0x82AA, 0xDCCF, 0x829F, 0xDCD0, 0x82C4, + 0xDCD1, 0x82CE, 0xDCD2, 0x82A4, 0xDCD3, 0x82E1, 0xDCD4, 0x8309, + 0xDCD5, 0x82F7, 0xDCD6, 0x82E4, 0xDCD7, 0x830F, 0xDCD8, 0x8307, + 0xDCD9, 0x82DC, 0xDCDA, 0x82F4, 0xDCDB, 0x82D2, 0xDCDC, 0x82D8, + 0xDCDD, 0x830C, 0xDCDE, 0x82FB, 0xDCDF, 0x82D3, 0xDCE0, 0x8311, + 0xDCE1, 0x831A, 0xDCE2, 0x8306, 0xDCE3, 0x8314, 0xDCE4, 0x8315, + 0xDCE5, 0x82E0, 0xDCE6, 0x82D5, 0xDCE7, 0x831C, 0xDCE8, 0x8351, + 0xDCE9, 0x835B, 0xDCEA, 0x835C, 0xDCEB, 0x8308, 0xDCEC, 0x8392, + 0xDCED, 0x833C, 0xDCEE, 0x8334, 0xDCEF, 0x8331, 0xDCF0, 0x839B, + 0xDCF1, 0x835E, 0xDCF2, 0x832F, 0xDCF3, 0x834F, 0xDCF4, 0x8347, + 0xDCF5, 0x8343, 0xDCF6, 0x835F, 0xDCF7, 0x8340, 0xDCF8, 0x8317, + 0xDCF9, 0x8360, 0xDCFA, 0x832D, 0xDCFB, 0x833A, 0xDCFC, 0x8333, + 0xDCFD, 0x8366, 0xDCFE, 0x8365, 0xDD40, 0x8EE5, 0xDD41, 0x8EE6, + 0xDD42, 0x8EE7, 0xDD43, 0x8EE8, 0xDD44, 0x8EE9, 0xDD45, 0x8EEA, + 0xDD46, 0x8EEB, 0xDD47, 0x8EEC, 0xDD48, 0x8EED, 0xDD49, 0x8EEE, + 0xDD4A, 0x8EEF, 0xDD4B, 0x8EF0, 0xDD4C, 0x8EF1, 0xDD4D, 0x8EF2, + 0xDD4E, 0x8EF3, 0xDD4F, 0x8EF4, 0xDD50, 0x8EF5, 0xDD51, 0x8EF6, + 0xDD52, 0x8EF7, 0xDD53, 0x8EF8, 0xDD54, 0x8EF9, 0xDD55, 0x8EFA, + 0xDD56, 0x8EFB, 0xDD57, 0x8EFC, 0xDD58, 0x8EFD, 0xDD59, 0x8EFE, + 0xDD5A, 0x8EFF, 0xDD5B, 0x8F00, 0xDD5C, 0x8F01, 0xDD5D, 0x8F02, + 0xDD5E, 0x8F03, 0xDD5F, 0x8F04, 0xDD60, 0x8F05, 0xDD61, 0x8F06, + 0xDD62, 0x8F07, 0xDD63, 0x8F08, 0xDD64, 0x8F09, 0xDD65, 0x8F0A, + 0xDD66, 0x8F0B, 0xDD67, 0x8F0C, 0xDD68, 0x8F0D, 0xDD69, 0x8F0E, + 0xDD6A, 0x8F0F, 0xDD6B, 0x8F10, 0xDD6C, 0x8F11, 0xDD6D, 0x8F12, + 0xDD6E, 0x8F13, 0xDD6F, 0x8F14, 0xDD70, 0x8F15, 0xDD71, 0x8F16, + 0xDD72, 0x8F17, 0xDD73, 0x8F18, 0xDD74, 0x8F19, 0xDD75, 0x8F1A, + 0xDD76, 0x8F1B, 0xDD77, 0x8F1C, 0xDD78, 0x8F1D, 0xDD79, 0x8F1E, + 0xDD7A, 0x8F1F, 0xDD7B, 0x8F20, 0xDD7C, 0x8F21, 0xDD7D, 0x8F22, + 0xDD7E, 0x8F23, 0xDD80, 0x8F24, 0xDD81, 0x8F25, 0xDD82, 0x8F26, + 0xDD83, 0x8F27, 0xDD84, 0x8F28, 0xDD85, 0x8F29, 0xDD86, 0x8F2A, + 0xDD87, 0x8F2B, 0xDD88, 0x8F2C, 0xDD89, 0x8F2D, 0xDD8A, 0x8F2E, + 0xDD8B, 0x8F2F, 0xDD8C, 0x8F30, 0xDD8D, 0x8F31, 0xDD8E, 0x8F32, + 0xDD8F, 0x8F33, 0xDD90, 0x8F34, 0xDD91, 0x8F35, 0xDD92, 0x8F36, + 0xDD93, 0x8F37, 0xDD94, 0x8F38, 0xDD95, 0x8F39, 0xDD96, 0x8F3A, + 0xDD97, 0x8F3B, 0xDD98, 0x8F3C, 0xDD99, 0x8F3D, 0xDD9A, 0x8F3E, + 0xDD9B, 0x8F3F, 0xDD9C, 0x8F40, 0xDD9D, 0x8F41, 0xDD9E, 0x8F42, + 0xDD9F, 0x8F43, 0xDDA0, 0x8F44, 0xDDA1, 0x8368, 0xDDA2, 0x831B, + 0xDDA3, 0x8369, 0xDDA4, 0x836C, 0xDDA5, 0x836A, 0xDDA6, 0x836D, + 0xDDA7, 0x836E, 0xDDA8, 0x83B0, 0xDDA9, 0x8378, 0xDDAA, 0x83B3, + 0xDDAB, 0x83B4, 0xDDAC, 0x83A0, 0xDDAD, 0x83AA, 0xDDAE, 0x8393, + 0xDDAF, 0x839C, 0xDDB0, 0x8385, 0xDDB1, 0x837C, 0xDDB2, 0x83B6, + 0xDDB3, 0x83A9, 0xDDB4, 0x837D, 0xDDB5, 0x83B8, 0xDDB6, 0x837B, + 0xDDB7, 0x8398, 0xDDB8, 0x839E, 0xDDB9, 0x83A8, 0xDDBA, 0x83BA, + 0xDDBB, 0x83BC, 0xDDBC, 0x83C1, 0xDDBD, 0x8401, 0xDDBE, 0x83E5, + 0xDDBF, 0x83D8, 0xDDC0, 0x5807, 0xDDC1, 0x8418, 0xDDC2, 0x840B, + 0xDDC3, 0x83DD, 0xDDC4, 0x83FD, 0xDDC5, 0x83D6, 0xDDC6, 0x841C, + 0xDDC7, 0x8438, 0xDDC8, 0x8411, 0xDDC9, 0x8406, 0xDDCA, 0x83D4, + 0xDDCB, 0x83DF, 0xDDCC, 0x840F, 0xDDCD, 0x8403, 0xDDCE, 0x83F8, + 0xDDCF, 0x83F9, 0xDDD0, 0x83EA, 0xDDD1, 0x83C5, 0xDDD2, 0x83C0, + 0xDDD3, 0x8426, 0xDDD4, 0x83F0, 0xDDD5, 0x83E1, 0xDDD6, 0x845C, + 0xDDD7, 0x8451, 0xDDD8, 0x845A, 0xDDD9, 0x8459, 0xDDDA, 0x8473, + 0xDDDB, 0x8487, 0xDDDC, 0x8488, 0xDDDD, 0x847A, 0xDDDE, 0x8489, + 0xDDDF, 0x8478, 0xDDE0, 0x843C, 0xDDE1, 0x8446, 0xDDE2, 0x8469, + 0xDDE3, 0x8476, 0xDDE4, 0x848C, 0xDDE5, 0x848E, 0xDDE6, 0x8431, + 0xDDE7, 0x846D, 0xDDE8, 0x84C1, 0xDDE9, 0x84CD, 0xDDEA, 0x84D0, + 0xDDEB, 0x84E6, 0xDDEC, 0x84BD, 0xDDED, 0x84D3, 0xDDEE, 0x84CA, + 0xDDEF, 0x84BF, 0xDDF0, 0x84BA, 0xDDF1, 0x84E0, 0xDDF2, 0x84A1, + 0xDDF3, 0x84B9, 0xDDF4, 0x84B4, 0xDDF5, 0x8497, 0xDDF6, 0x84E5, + 0xDDF7, 0x84E3, 0xDDF8, 0x850C, 0xDDF9, 0x750D, 0xDDFA, 0x8538, + 0xDDFB, 0x84F0, 0xDDFC, 0x8539, 0xDDFD, 0x851F, 0xDDFE, 0x853A, + 0xDE40, 0x8F45, 0xDE41, 0x8F46, 0xDE42, 0x8F47, 0xDE43, 0x8F48, + 0xDE44, 0x8F49, 0xDE45, 0x8F4A, 0xDE46, 0x8F4B, 0xDE47, 0x8F4C, + 0xDE48, 0x8F4D, 0xDE49, 0x8F4E, 0xDE4A, 0x8F4F, 0xDE4B, 0x8F50, + 0xDE4C, 0x8F51, 0xDE4D, 0x8F52, 0xDE4E, 0x8F53, 0xDE4F, 0x8F54, + 0xDE50, 0x8F55, 0xDE51, 0x8F56, 0xDE52, 0x8F57, 0xDE53, 0x8F58, + 0xDE54, 0x8F59, 0xDE55, 0x8F5A, 0xDE56, 0x8F5B, 0xDE57, 0x8F5C, + 0xDE58, 0x8F5D, 0xDE59, 0x8F5E, 0xDE5A, 0x8F5F, 0xDE5B, 0x8F60, + 0xDE5C, 0x8F61, 0xDE5D, 0x8F62, 0xDE5E, 0x8F63, 0xDE5F, 0x8F64, + 0xDE60, 0x8F65, 0xDE61, 0x8F6A, 0xDE62, 0x8F80, 0xDE63, 0x8F8C, + 0xDE64, 0x8F92, 0xDE65, 0x8F9D, 0xDE66, 0x8FA0, 0xDE67, 0x8FA1, + 0xDE68, 0x8FA2, 0xDE69, 0x8FA4, 0xDE6A, 0x8FA5, 0xDE6B, 0x8FA6, + 0xDE6C, 0x8FA7, 0xDE6D, 0x8FAA, 0xDE6E, 0x8FAC, 0xDE6F, 0x8FAD, + 0xDE70, 0x8FAE, 0xDE71, 0x8FAF, 0xDE72, 0x8FB2, 0xDE73, 0x8FB3, + 0xDE74, 0x8FB4, 0xDE75, 0x8FB5, 0xDE76, 0x8FB7, 0xDE77, 0x8FB8, + 0xDE78, 0x8FBA, 0xDE79, 0x8FBB, 0xDE7A, 0x8FBC, 0xDE7B, 0x8FBF, + 0xDE7C, 0x8FC0, 0xDE7D, 0x8FC3, 0xDE7E, 0x8FC6, 0xDE80, 0x8FC9, + 0xDE81, 0x8FCA, 0xDE82, 0x8FCB, 0xDE83, 0x8FCC, 0xDE84, 0x8FCD, + 0xDE85, 0x8FCF, 0xDE86, 0x8FD2, 0xDE87, 0x8FD6, 0xDE88, 0x8FD7, + 0xDE89, 0x8FDA, 0xDE8A, 0x8FE0, 0xDE8B, 0x8FE1, 0xDE8C, 0x8FE3, + 0xDE8D, 0x8FE7, 0xDE8E, 0x8FEC, 0xDE8F, 0x8FEF, 0xDE90, 0x8FF1, + 0xDE91, 0x8FF2, 0xDE92, 0x8FF4, 0xDE93, 0x8FF5, 0xDE94, 0x8FF6, + 0xDE95, 0x8FFA, 0xDE96, 0x8FFB, 0xDE97, 0x8FFC, 0xDE98, 0x8FFE, + 0xDE99, 0x8FFF, 0xDE9A, 0x9007, 0xDE9B, 0x9008, 0xDE9C, 0x900C, + 0xDE9D, 0x900E, 0xDE9E, 0x9013, 0xDE9F, 0x9015, 0xDEA0, 0x9018, + 0xDEA1, 0x8556, 0xDEA2, 0x853B, 0xDEA3, 0x84FF, 0xDEA4, 0x84FC, + 0xDEA5, 0x8559, 0xDEA6, 0x8548, 0xDEA7, 0x8568, 0xDEA8, 0x8564, + 0xDEA9, 0x855E, 0xDEAA, 0x857A, 0xDEAB, 0x77A2, 0xDEAC, 0x8543, + 0xDEAD, 0x8572, 0xDEAE, 0x857B, 0xDEAF, 0x85A4, 0xDEB0, 0x85A8, + 0xDEB1, 0x8587, 0xDEB2, 0x858F, 0xDEB3, 0x8579, 0xDEB4, 0x85AE, + 0xDEB5, 0x859C, 0xDEB6, 0x8585, 0xDEB7, 0x85B9, 0xDEB8, 0x85B7, + 0xDEB9, 0x85B0, 0xDEBA, 0x85D3, 0xDEBB, 0x85C1, 0xDEBC, 0x85DC, + 0xDEBD, 0x85FF, 0xDEBE, 0x8627, 0xDEBF, 0x8605, 0xDEC0, 0x8629, + 0xDEC1, 0x8616, 0xDEC2, 0x863C, 0xDEC3, 0x5EFE, 0xDEC4, 0x5F08, + 0xDEC5, 0x593C, 0xDEC6, 0x5941, 0xDEC7, 0x8037, 0xDEC8, 0x5955, + 0xDEC9, 0x595A, 0xDECA, 0x5958, 0xDECB, 0x530F, 0xDECC, 0x5C22, + 0xDECD, 0x5C25, 0xDECE, 0x5C2C, 0xDECF, 0x5C34, 0xDED0, 0x624C, + 0xDED1, 0x626A, 0xDED2, 0x629F, 0xDED3, 0x62BB, 0xDED4, 0x62CA, + 0xDED5, 0x62DA, 0xDED6, 0x62D7, 0xDED7, 0x62EE, 0xDED8, 0x6322, + 0xDED9, 0x62F6, 0xDEDA, 0x6339, 0xDEDB, 0x634B, 0xDEDC, 0x6343, + 0xDEDD, 0x63AD, 0xDEDE, 0x63F6, 0xDEDF, 0x6371, 0xDEE0, 0x637A, + 0xDEE1, 0x638E, 0xDEE2, 0x63B4, 0xDEE3, 0x636D, 0xDEE4, 0x63AC, + 0xDEE5, 0x638A, 0xDEE6, 0x6369, 0xDEE7, 0x63AE, 0xDEE8, 0x63BC, + 0xDEE9, 0x63F2, 0xDEEA, 0x63F8, 0xDEEB, 0x63E0, 0xDEEC, 0x63FF, + 0xDEED, 0x63C4, 0xDEEE, 0x63DE, 0xDEEF, 0x63CE, 0xDEF0, 0x6452, + 0xDEF1, 0x63C6, 0xDEF2, 0x63BE, 0xDEF3, 0x6445, 0xDEF4, 0x6441, + 0xDEF5, 0x640B, 0xDEF6, 0x641B, 0xDEF7, 0x6420, 0xDEF8, 0x640C, + 0xDEF9, 0x6426, 0xDEFA, 0x6421, 0xDEFB, 0x645E, 0xDEFC, 0x6484, + 0xDEFD, 0x646D, 0xDEFE, 0x6496, 0xDF40, 0x9019, 0xDF41, 0x901C, + 0xDF42, 0x9023, 0xDF43, 0x9024, 0xDF44, 0x9025, 0xDF45, 0x9027, + 0xDF46, 0x9028, 0xDF47, 0x9029, 0xDF48, 0x902A, 0xDF49, 0x902B, + 0xDF4A, 0x902C, 0xDF4B, 0x9030, 0xDF4C, 0x9031, 0xDF4D, 0x9032, + 0xDF4E, 0x9033, 0xDF4F, 0x9034, 0xDF50, 0x9037, 0xDF51, 0x9039, + 0xDF52, 0x903A, 0xDF53, 0x903D, 0xDF54, 0x903F, 0xDF55, 0x9040, + 0xDF56, 0x9043, 0xDF57, 0x9045, 0xDF58, 0x9046, 0xDF59, 0x9048, + 0xDF5A, 0x9049, 0xDF5B, 0x904A, 0xDF5C, 0x904B, 0xDF5D, 0x904C, + 0xDF5E, 0x904E, 0xDF5F, 0x9054, 0xDF60, 0x9055, 0xDF61, 0x9056, + 0xDF62, 0x9059, 0xDF63, 0x905A, 0xDF64, 0x905C, 0xDF65, 0x905D, + 0xDF66, 0x905E, 0xDF67, 0x905F, 0xDF68, 0x9060, 0xDF69, 0x9061, + 0xDF6A, 0x9064, 0xDF6B, 0x9066, 0xDF6C, 0x9067, 0xDF6D, 0x9069, + 0xDF6E, 0x906A, 0xDF6F, 0x906B, 0xDF70, 0x906C, 0xDF71, 0x906F, + 0xDF72, 0x9070, 0xDF73, 0x9071, 0xDF74, 0x9072, 0xDF75, 0x9073, + 0xDF76, 0x9076, 0xDF77, 0x9077, 0xDF78, 0x9078, 0xDF79, 0x9079, + 0xDF7A, 0x907A, 0xDF7B, 0x907B, 0xDF7C, 0x907C, 0xDF7D, 0x907E, + 0xDF7E, 0x9081, 0xDF80, 0x9084, 0xDF81, 0x9085, 0xDF82, 0x9086, + 0xDF83, 0x9087, 0xDF84, 0x9089, 0xDF85, 0x908A, 0xDF86, 0x908C, + 0xDF87, 0x908D, 0xDF88, 0x908E, 0xDF89, 0x908F, 0xDF8A, 0x9090, + 0xDF8B, 0x9092, 0xDF8C, 0x9094, 0xDF8D, 0x9096, 0xDF8E, 0x9098, + 0xDF8F, 0x909A, 0xDF90, 0x909C, 0xDF91, 0x909E, 0xDF92, 0x909F, + 0xDF93, 0x90A0, 0xDF94, 0x90A4, 0xDF95, 0x90A5, 0xDF96, 0x90A7, + 0xDF97, 0x90A8, 0xDF98, 0x90A9, 0xDF99, 0x90AB, 0xDF9A, 0x90AD, + 0xDF9B, 0x90B2, 0xDF9C, 0x90B7, 0xDF9D, 0x90BC, 0xDF9E, 0x90BD, + 0xDF9F, 0x90BF, 0xDFA0, 0x90C0, 0xDFA1, 0x647A, 0xDFA2, 0x64B7, + 0xDFA3, 0x64B8, 0xDFA4, 0x6499, 0xDFA5, 0x64BA, 0xDFA6, 0x64C0, + 0xDFA7, 0x64D0, 0xDFA8, 0x64D7, 0xDFA9, 0x64E4, 0xDFAA, 0x64E2, + 0xDFAB, 0x6509, 0xDFAC, 0x6525, 0xDFAD, 0x652E, 0xDFAE, 0x5F0B, + 0xDFAF, 0x5FD2, 0xDFB0, 0x7519, 0xDFB1, 0x5F11, 0xDFB2, 0x535F, + 0xDFB3, 0x53F1, 0xDFB4, 0x53FD, 0xDFB5, 0x53E9, 0xDFB6, 0x53E8, + 0xDFB7, 0x53FB, 0xDFB8, 0x5412, 0xDFB9, 0x5416, 0xDFBA, 0x5406, + 0xDFBB, 0x544B, 0xDFBC, 0x5452, 0xDFBD, 0x5453, 0xDFBE, 0x5454, + 0xDFBF, 0x5456, 0xDFC0, 0x5443, 0xDFC1, 0x5421, 0xDFC2, 0x5457, + 0xDFC3, 0x5459, 0xDFC4, 0x5423, 0xDFC5, 0x5432, 0xDFC6, 0x5482, + 0xDFC7, 0x5494, 0xDFC8, 0x5477, 0xDFC9, 0x5471, 0xDFCA, 0x5464, + 0xDFCB, 0x549A, 0xDFCC, 0x549B, 0xDFCD, 0x5484, 0xDFCE, 0x5476, + 0xDFCF, 0x5466, 0xDFD0, 0x549D, 0xDFD1, 0x54D0, 0xDFD2, 0x54AD, + 0xDFD3, 0x54C2, 0xDFD4, 0x54B4, 0xDFD5, 0x54D2, 0xDFD6, 0x54A7, + 0xDFD7, 0x54A6, 0xDFD8, 0x54D3, 0xDFD9, 0x54D4, 0xDFDA, 0x5472, + 0xDFDB, 0x54A3, 0xDFDC, 0x54D5, 0xDFDD, 0x54BB, 0xDFDE, 0x54BF, + 0xDFDF, 0x54CC, 0xDFE0, 0x54D9, 0xDFE1, 0x54DA, 0xDFE2, 0x54DC, + 0xDFE3, 0x54A9, 0xDFE4, 0x54AA, 0xDFE5, 0x54A4, 0xDFE6, 0x54DD, + 0xDFE7, 0x54CF, 0xDFE8, 0x54DE, 0xDFE9, 0x551B, 0xDFEA, 0x54E7, + 0xDFEB, 0x5520, 0xDFEC, 0x54FD, 0xDFED, 0x5514, 0xDFEE, 0x54F3, + 0xDFEF, 0x5522, 0xDFF0, 0x5523, 0xDFF1, 0x550F, 0xDFF2, 0x5511, + 0xDFF3, 0x5527, 0xDFF4, 0x552A, 0xDFF5, 0x5567, 0xDFF6, 0x558F, + 0xDFF7, 0x55B5, 0xDFF8, 0x5549, 0xDFF9, 0x556D, 0xDFFA, 0x5541, + 0xDFFB, 0x5555, 0xDFFC, 0x553F, 0xDFFD, 0x5550, 0xDFFE, 0x553C, + 0xE040, 0x90C2, 0xE041, 0x90C3, 0xE042, 0x90C6, 0xE043, 0x90C8, + 0xE044, 0x90C9, 0xE045, 0x90CB, 0xE046, 0x90CC, 0xE047, 0x90CD, + 0xE048, 0x90D2, 0xE049, 0x90D4, 0xE04A, 0x90D5, 0xE04B, 0x90D6, + 0xE04C, 0x90D8, 0xE04D, 0x90D9, 0xE04E, 0x90DA, 0xE04F, 0x90DE, + 0xE050, 0x90DF, 0xE051, 0x90E0, 0xE052, 0x90E3, 0xE053, 0x90E4, + 0xE054, 0x90E5, 0xE055, 0x90E9, 0xE056, 0x90EA, 0xE057, 0x90EC, + 0xE058, 0x90EE, 0xE059, 0x90F0, 0xE05A, 0x90F1, 0xE05B, 0x90F2, + 0xE05C, 0x90F3, 0xE05D, 0x90F5, 0xE05E, 0x90F6, 0xE05F, 0x90F7, + 0xE060, 0x90F9, 0xE061, 0x90FA, 0xE062, 0x90FB, 0xE063, 0x90FC, + 0xE064, 0x90FF, 0xE065, 0x9100, 0xE066, 0x9101, 0xE067, 0x9103, + 0xE068, 0x9105, 0xE069, 0x9106, 0xE06A, 0x9107, 0xE06B, 0x9108, + 0xE06C, 0x9109, 0xE06D, 0x910A, 0xE06E, 0x910B, 0xE06F, 0x910C, + 0xE070, 0x910D, 0xE071, 0x910E, 0xE072, 0x910F, 0xE073, 0x9110, + 0xE074, 0x9111, 0xE075, 0x9112, 0xE076, 0x9113, 0xE077, 0x9114, + 0xE078, 0x9115, 0xE079, 0x9116, 0xE07A, 0x9117, 0xE07B, 0x9118, + 0xE07C, 0x911A, 0xE07D, 0x911B, 0xE07E, 0x911C, 0xE080, 0x911D, + 0xE081, 0x911F, 0xE082, 0x9120, 0xE083, 0x9121, 0xE084, 0x9124, + 0xE085, 0x9125, 0xE086, 0x9126, 0xE087, 0x9127, 0xE088, 0x9128, + 0xE089, 0x9129, 0xE08A, 0x912A, 0xE08B, 0x912B, 0xE08C, 0x912C, + 0xE08D, 0x912D, 0xE08E, 0x912E, 0xE08F, 0x9130, 0xE090, 0x9132, + 0xE091, 0x9133, 0xE092, 0x9134, 0xE093, 0x9135, 0xE094, 0x9136, + 0xE095, 0x9137, 0xE096, 0x9138, 0xE097, 0x913A, 0xE098, 0x913B, + 0xE099, 0x913C, 0xE09A, 0x913D, 0xE09B, 0x913E, 0xE09C, 0x913F, + 0xE09D, 0x9140, 0xE09E, 0x9141, 0xE09F, 0x9142, 0xE0A0, 0x9144, + 0xE0A1, 0x5537, 0xE0A2, 0x5556, 0xE0A3, 0x5575, 0xE0A4, 0x5576, + 0xE0A5, 0x5577, 0xE0A6, 0x5533, 0xE0A7, 0x5530, 0xE0A8, 0x555C, + 0xE0A9, 0x558B, 0xE0AA, 0x55D2, 0xE0AB, 0x5583, 0xE0AC, 0x55B1, + 0xE0AD, 0x55B9, 0xE0AE, 0x5588, 0xE0AF, 0x5581, 0xE0B0, 0x559F, + 0xE0B1, 0x557E, 0xE0B2, 0x55D6, 0xE0B3, 0x5591, 0xE0B4, 0x557B, + 0xE0B5, 0x55DF, 0xE0B6, 0x55BD, 0xE0B7, 0x55BE, 0xE0B8, 0x5594, + 0xE0B9, 0x5599, 0xE0BA, 0x55EA, 0xE0BB, 0x55F7, 0xE0BC, 0x55C9, + 0xE0BD, 0x561F, 0xE0BE, 0x55D1, 0xE0BF, 0x55EB, 0xE0C0, 0x55EC, + 0xE0C1, 0x55D4, 0xE0C2, 0x55E6, 0xE0C3, 0x55DD, 0xE0C4, 0x55C4, + 0xE0C5, 0x55EF, 0xE0C6, 0x55E5, 0xE0C7, 0x55F2, 0xE0C8, 0x55F3, + 0xE0C9, 0x55CC, 0xE0CA, 0x55CD, 0xE0CB, 0x55E8, 0xE0CC, 0x55F5, + 0xE0CD, 0x55E4, 0xE0CE, 0x8F94, 0xE0CF, 0x561E, 0xE0D0, 0x5608, + 0xE0D1, 0x560C, 0xE0D2, 0x5601, 0xE0D3, 0x5624, 0xE0D4, 0x5623, + 0xE0D5, 0x55FE, 0xE0D6, 0x5600, 0xE0D7, 0x5627, 0xE0D8, 0x562D, + 0xE0D9, 0x5658, 0xE0DA, 0x5639, 0xE0DB, 0x5657, 0xE0DC, 0x562C, + 0xE0DD, 0x564D, 0xE0DE, 0x5662, 0xE0DF, 0x5659, 0xE0E0, 0x565C, + 0xE0E1, 0x564C, 0xE0E2, 0x5654, 0xE0E3, 0x5686, 0xE0E4, 0x5664, + 0xE0E5, 0x5671, 0xE0E6, 0x566B, 0xE0E7, 0x567B, 0xE0E8, 0x567C, + 0xE0E9, 0x5685, 0xE0EA, 0x5693, 0xE0EB, 0x56AF, 0xE0EC, 0x56D4, + 0xE0ED, 0x56D7, 0xE0EE, 0x56DD, 0xE0EF, 0x56E1, 0xE0F0, 0x56F5, + 0xE0F1, 0x56EB, 0xE0F2, 0x56F9, 0xE0F3, 0x56FF, 0xE0F4, 0x5704, + 0xE0F5, 0x570A, 0xE0F6, 0x5709, 0xE0F7, 0x571C, 0xE0F8, 0x5E0F, + 0xE0F9, 0x5E19, 0xE0FA, 0x5E14, 0xE0FB, 0x5E11, 0xE0FC, 0x5E31, + 0xE0FD, 0x5E3B, 0xE0FE, 0x5E3C, 0xE140, 0x9145, 0xE141, 0x9147, + 0xE142, 0x9148, 0xE143, 0x9151, 0xE144, 0x9153, 0xE145, 0x9154, + 0xE146, 0x9155, 0xE147, 0x9156, 0xE148, 0x9158, 0xE149, 0x9159, + 0xE14A, 0x915B, 0xE14B, 0x915C, 0xE14C, 0x915F, 0xE14D, 0x9160, + 0xE14E, 0x9166, 0xE14F, 0x9167, 0xE150, 0x9168, 0xE151, 0x916B, + 0xE152, 0x916D, 0xE153, 0x9173, 0xE154, 0x917A, 0xE155, 0x917B, + 0xE156, 0x917C, 0xE157, 0x9180, 0xE158, 0x9181, 0xE159, 0x9182, + 0xE15A, 0x9183, 0xE15B, 0x9184, 0xE15C, 0x9186, 0xE15D, 0x9188, + 0xE15E, 0x918A, 0xE15F, 0x918E, 0xE160, 0x918F, 0xE161, 0x9193, + 0xE162, 0x9194, 0xE163, 0x9195, 0xE164, 0x9196, 0xE165, 0x9197, + 0xE166, 0x9198, 0xE167, 0x9199, 0xE168, 0x919C, 0xE169, 0x919D, + 0xE16A, 0x919E, 0xE16B, 0x919F, 0xE16C, 0x91A0, 0xE16D, 0x91A1, + 0xE16E, 0x91A4, 0xE16F, 0x91A5, 0xE170, 0x91A6, 0xE171, 0x91A7, + 0xE172, 0x91A8, 0xE173, 0x91A9, 0xE174, 0x91AB, 0xE175, 0x91AC, + 0xE176, 0x91B0, 0xE177, 0x91B1, 0xE178, 0x91B2, 0xE179, 0x91B3, + 0xE17A, 0x91B6, 0xE17B, 0x91B7, 0xE17C, 0x91B8, 0xE17D, 0x91B9, + 0xE17E, 0x91BB, 0xE180, 0x91BC, 0xE181, 0x91BD, 0xE182, 0x91BE, + 0xE183, 0x91BF, 0xE184, 0x91C0, 0xE185, 0x91C1, 0xE186, 0x91C2, + 0xE187, 0x91C3, 0xE188, 0x91C4, 0xE189, 0x91C5, 0xE18A, 0x91C6, + 0xE18B, 0x91C8, 0xE18C, 0x91CB, 0xE18D, 0x91D0, 0xE18E, 0x91D2, + 0xE18F, 0x91D3, 0xE190, 0x91D4, 0xE191, 0x91D5, 0xE192, 0x91D6, + 0xE193, 0x91D7, 0xE194, 0x91D8, 0xE195, 0x91D9, 0xE196, 0x91DA, + 0xE197, 0x91DB, 0xE198, 0x91DD, 0xE199, 0x91DE, 0xE19A, 0x91DF, + 0xE19B, 0x91E0, 0xE19C, 0x91E1, 0xE19D, 0x91E2, 0xE19E, 0x91E3, + 0xE19F, 0x91E4, 0xE1A0, 0x91E5, 0xE1A1, 0x5E37, 0xE1A2, 0x5E44, + 0xE1A3, 0x5E54, 0xE1A4, 0x5E5B, 0xE1A5, 0x5E5E, 0xE1A6, 0x5E61, + 0xE1A7, 0x5C8C, 0xE1A8, 0x5C7A, 0xE1A9, 0x5C8D, 0xE1AA, 0x5C90, + 0xE1AB, 0x5C96, 0xE1AC, 0x5C88, 0xE1AD, 0x5C98, 0xE1AE, 0x5C99, + 0xE1AF, 0x5C91, 0xE1B0, 0x5C9A, 0xE1B1, 0x5C9C, 0xE1B2, 0x5CB5, + 0xE1B3, 0x5CA2, 0xE1B4, 0x5CBD, 0xE1B5, 0x5CAC, 0xE1B6, 0x5CAB, + 0xE1B7, 0x5CB1, 0xE1B8, 0x5CA3, 0xE1B9, 0x5CC1, 0xE1BA, 0x5CB7, + 0xE1BB, 0x5CC4, 0xE1BC, 0x5CD2, 0xE1BD, 0x5CE4, 0xE1BE, 0x5CCB, + 0xE1BF, 0x5CE5, 0xE1C0, 0x5D02, 0xE1C1, 0x5D03, 0xE1C2, 0x5D27, + 0xE1C3, 0x5D26, 0xE1C4, 0x5D2E, 0xE1C5, 0x5D24, 0xE1C6, 0x5D1E, + 0xE1C7, 0x5D06, 0xE1C8, 0x5D1B, 0xE1C9, 0x5D58, 0xE1CA, 0x5D3E, + 0xE1CB, 0x5D34, 0xE1CC, 0x5D3D, 0xE1CD, 0x5D6C, 0xE1CE, 0x5D5B, + 0xE1CF, 0x5D6F, 0xE1D0, 0x5D5D, 0xE1D1, 0x5D6B, 0xE1D2, 0x5D4B, + 0xE1D3, 0x5D4A, 0xE1D4, 0x5D69, 0xE1D5, 0x5D74, 0xE1D6, 0x5D82, + 0xE1D7, 0x5D99, 0xE1D8, 0x5D9D, 0xE1D9, 0x8C73, 0xE1DA, 0x5DB7, + 0xE1DB, 0x5DC5, 0xE1DC, 0x5F73, 0xE1DD, 0x5F77, 0xE1DE, 0x5F82, + 0xE1DF, 0x5F87, 0xE1E0, 0x5F89, 0xE1E1, 0x5F8C, 0xE1E2, 0x5F95, + 0xE1E3, 0x5F99, 0xE1E4, 0x5F9C, 0xE1E5, 0x5FA8, 0xE1E6, 0x5FAD, + 0xE1E7, 0x5FB5, 0xE1E8, 0x5FBC, 0xE1E9, 0x8862, 0xE1EA, 0x5F61, + 0xE1EB, 0x72AD, 0xE1EC, 0x72B0, 0xE1ED, 0x72B4, 0xE1EE, 0x72B7, + 0xE1EF, 0x72B8, 0xE1F0, 0x72C3, 0xE1F1, 0x72C1, 0xE1F2, 0x72CE, + 0xE1F3, 0x72CD, 0xE1F4, 0x72D2, 0xE1F5, 0x72E8, 0xE1F6, 0x72EF, + 0xE1F7, 0x72E9, 0xE1F8, 0x72F2, 0xE1F9, 0x72F4, 0xE1FA, 0x72F7, + 0xE1FB, 0x7301, 0xE1FC, 0x72F3, 0xE1FD, 0x7303, 0xE1FE, 0x72FA, + 0xE240, 0x91E6, 0xE241, 0x91E7, 0xE242, 0x91E8, 0xE243, 0x91E9, + 0xE244, 0x91EA, 0xE245, 0x91EB, 0xE246, 0x91EC, 0xE247, 0x91ED, + 0xE248, 0x91EE, 0xE249, 0x91EF, 0xE24A, 0x91F0, 0xE24B, 0x91F1, + 0xE24C, 0x91F2, 0xE24D, 0x91F3, 0xE24E, 0x91F4, 0xE24F, 0x91F5, + 0xE250, 0x91F6, 0xE251, 0x91F7, 0xE252, 0x91F8, 0xE253, 0x91F9, + 0xE254, 0x91FA, 0xE255, 0x91FB, 0xE256, 0x91FC, 0xE257, 0x91FD, + 0xE258, 0x91FE, 0xE259, 0x91FF, 0xE25A, 0x9200, 0xE25B, 0x9201, + 0xE25C, 0x9202, 0xE25D, 0x9203, 0xE25E, 0x9204, 0xE25F, 0x9205, + 0xE260, 0x9206, 0xE261, 0x9207, 0xE262, 0x9208, 0xE263, 0x9209, + 0xE264, 0x920A, 0xE265, 0x920B, 0xE266, 0x920C, 0xE267, 0x920D, + 0xE268, 0x920E, 0xE269, 0x920F, 0xE26A, 0x9210, 0xE26B, 0x9211, + 0xE26C, 0x9212, 0xE26D, 0x9213, 0xE26E, 0x9214, 0xE26F, 0x9215, + 0xE270, 0x9216, 0xE271, 0x9217, 0xE272, 0x9218, 0xE273, 0x9219, + 0xE274, 0x921A, 0xE275, 0x921B, 0xE276, 0x921C, 0xE277, 0x921D, + 0xE278, 0x921E, 0xE279, 0x921F, 0xE27A, 0x9220, 0xE27B, 0x9221, + 0xE27C, 0x9222, 0xE27D, 0x9223, 0xE27E, 0x9224, 0xE280, 0x9225, + 0xE281, 0x9226, 0xE282, 0x9227, 0xE283, 0x9228, 0xE284, 0x9229, + 0xE285, 0x922A, 0xE286, 0x922B, 0xE287, 0x922C, 0xE288, 0x922D, + 0xE289, 0x922E, 0xE28A, 0x922F, 0xE28B, 0x9230, 0xE28C, 0x9231, + 0xE28D, 0x9232, 0xE28E, 0x9233, 0xE28F, 0x9234, 0xE290, 0x9235, + 0xE291, 0x9236, 0xE292, 0x9237, 0xE293, 0x9238, 0xE294, 0x9239, + 0xE295, 0x923A, 0xE296, 0x923B, 0xE297, 0x923C, 0xE298, 0x923D, + 0xE299, 0x923E, 0xE29A, 0x923F, 0xE29B, 0x9240, 0xE29C, 0x9241, + 0xE29D, 0x9242, 0xE29E, 0x9243, 0xE29F, 0x9244, 0xE2A0, 0x9245, + 0xE2A1, 0x72FB, 0xE2A2, 0x7317, 0xE2A3, 0x7313, 0xE2A4, 0x7321, + 0xE2A5, 0x730A, 0xE2A6, 0x731E, 0xE2A7, 0x731D, 0xE2A8, 0x7315, + 0xE2A9, 0x7322, 0xE2AA, 0x7339, 0xE2AB, 0x7325, 0xE2AC, 0x732C, + 0xE2AD, 0x7338, 0xE2AE, 0x7331, 0xE2AF, 0x7350, 0xE2B0, 0x734D, + 0xE2B1, 0x7357, 0xE2B2, 0x7360, 0xE2B3, 0x736C, 0xE2B4, 0x736F, + 0xE2B5, 0x737E, 0xE2B6, 0x821B, 0xE2B7, 0x5925, 0xE2B8, 0x98E7, + 0xE2B9, 0x5924, 0xE2BA, 0x5902, 0xE2BB, 0x9963, 0xE2BC, 0x9967, + 0xE2BD, 0x9968, 0xE2BE, 0x9969, 0xE2BF, 0x996A, 0xE2C0, 0x996B, + 0xE2C1, 0x996C, 0xE2C2, 0x9974, 0xE2C3, 0x9977, 0xE2C4, 0x997D, + 0xE2C5, 0x9980, 0xE2C6, 0x9984, 0xE2C7, 0x9987, 0xE2C8, 0x998A, + 0xE2C9, 0x998D, 0xE2CA, 0x9990, 0xE2CB, 0x9991, 0xE2CC, 0x9993, + 0xE2CD, 0x9994, 0xE2CE, 0x9995, 0xE2CF, 0x5E80, 0xE2D0, 0x5E91, + 0xE2D1, 0x5E8B, 0xE2D2, 0x5E96, 0xE2D3, 0x5EA5, 0xE2D4, 0x5EA0, + 0xE2D5, 0x5EB9, 0xE2D6, 0x5EB5, 0xE2D7, 0x5EBE, 0xE2D8, 0x5EB3, + 0xE2D9, 0x8D53, 0xE2DA, 0x5ED2, 0xE2DB, 0x5ED1, 0xE2DC, 0x5EDB, + 0xE2DD, 0x5EE8, 0xE2DE, 0x5EEA, 0xE2DF, 0x81BA, 0xE2E0, 0x5FC4, + 0xE2E1, 0x5FC9, 0xE2E2, 0x5FD6, 0xE2E3, 0x5FCF, 0xE2E4, 0x6003, + 0xE2E5, 0x5FEE, 0xE2E6, 0x6004, 0xE2E7, 0x5FE1, 0xE2E8, 0x5FE4, + 0xE2E9, 0x5FFE, 0xE2EA, 0x6005, 0xE2EB, 0x6006, 0xE2EC, 0x5FEA, + 0xE2ED, 0x5FED, 0xE2EE, 0x5FF8, 0xE2EF, 0x6019, 0xE2F0, 0x6035, + 0xE2F1, 0x6026, 0xE2F2, 0x601B, 0xE2F3, 0x600F, 0xE2F4, 0x600D, + 0xE2F5, 0x6029, 0xE2F6, 0x602B, 0xE2F7, 0x600A, 0xE2F8, 0x603F, + 0xE2F9, 0x6021, 0xE2FA, 0x6078, 0xE2FB, 0x6079, 0xE2FC, 0x607B, + 0xE2FD, 0x607A, 0xE2FE, 0x6042, 0xE340, 0x9246, 0xE341, 0x9247, + 0xE342, 0x9248, 0xE343, 0x9249, 0xE344, 0x924A, 0xE345, 0x924B, + 0xE346, 0x924C, 0xE347, 0x924D, 0xE348, 0x924E, 0xE349, 0x924F, + 0xE34A, 0x9250, 0xE34B, 0x9251, 0xE34C, 0x9252, 0xE34D, 0x9253, + 0xE34E, 0x9254, 0xE34F, 0x9255, 0xE350, 0x9256, 0xE351, 0x9257, + 0xE352, 0x9258, 0xE353, 0x9259, 0xE354, 0x925A, 0xE355, 0x925B, + 0xE356, 0x925C, 0xE357, 0x925D, 0xE358, 0x925E, 0xE359, 0x925F, + 0xE35A, 0x9260, 0xE35B, 0x9261, 0xE35C, 0x9262, 0xE35D, 0x9263, + 0xE35E, 0x9264, 0xE35F, 0x9265, 0xE360, 0x9266, 0xE361, 0x9267, + 0xE362, 0x9268, 0xE363, 0x9269, 0xE364, 0x926A, 0xE365, 0x926B, + 0xE366, 0x926C, 0xE367, 0x926D, 0xE368, 0x926E, 0xE369, 0x926F, + 0xE36A, 0x9270, 0xE36B, 0x9271, 0xE36C, 0x9272, 0xE36D, 0x9273, + 0xE36E, 0x9275, 0xE36F, 0x9276, 0xE370, 0x9277, 0xE371, 0x9278, + 0xE372, 0x9279, 0xE373, 0x927A, 0xE374, 0x927B, 0xE375, 0x927C, + 0xE376, 0x927D, 0xE377, 0x927E, 0xE378, 0x927F, 0xE379, 0x9280, + 0xE37A, 0x9281, 0xE37B, 0x9282, 0xE37C, 0x9283, 0xE37D, 0x9284, + 0xE37E, 0x9285, 0xE380, 0x9286, 0xE381, 0x9287, 0xE382, 0x9288, + 0xE383, 0x9289, 0xE384, 0x928A, 0xE385, 0x928B, 0xE386, 0x928C, + 0xE387, 0x928D, 0xE388, 0x928F, 0xE389, 0x9290, 0xE38A, 0x9291, + 0xE38B, 0x9292, 0xE38C, 0x9293, 0xE38D, 0x9294, 0xE38E, 0x9295, + 0xE38F, 0x9296, 0xE390, 0x9297, 0xE391, 0x9298, 0xE392, 0x9299, + 0xE393, 0x929A, 0xE394, 0x929B, 0xE395, 0x929C, 0xE396, 0x929D, + 0xE397, 0x929E, 0xE398, 0x929F, 0xE399, 0x92A0, 0xE39A, 0x92A1, + 0xE39B, 0x92A2, 0xE39C, 0x92A3, 0xE39D, 0x92A4, 0xE39E, 0x92A5, + 0xE39F, 0x92A6, 0xE3A0, 0x92A7, 0xE3A1, 0x606A, 0xE3A2, 0x607D, + 0xE3A3, 0x6096, 0xE3A4, 0x609A, 0xE3A5, 0x60AD, 0xE3A6, 0x609D, + 0xE3A7, 0x6083, 0xE3A8, 0x6092, 0xE3A9, 0x608C, 0xE3AA, 0x609B, + 0xE3AB, 0x60EC, 0xE3AC, 0x60BB, 0xE3AD, 0x60B1, 0xE3AE, 0x60DD, + 0xE3AF, 0x60D8, 0xE3B0, 0x60C6, 0xE3B1, 0x60DA, 0xE3B2, 0x60B4, + 0xE3B3, 0x6120, 0xE3B4, 0x6126, 0xE3B5, 0x6115, 0xE3B6, 0x6123, + 0xE3B7, 0x60F4, 0xE3B8, 0x6100, 0xE3B9, 0x610E, 0xE3BA, 0x612B, + 0xE3BB, 0x614A, 0xE3BC, 0x6175, 0xE3BD, 0x61AC, 0xE3BE, 0x6194, + 0xE3BF, 0x61A7, 0xE3C0, 0x61B7, 0xE3C1, 0x61D4, 0xE3C2, 0x61F5, + 0xE3C3, 0x5FDD, 0xE3C4, 0x96B3, 0xE3C5, 0x95E9, 0xE3C6, 0x95EB, + 0xE3C7, 0x95F1, 0xE3C8, 0x95F3, 0xE3C9, 0x95F5, 0xE3CA, 0x95F6, + 0xE3CB, 0x95FC, 0xE3CC, 0x95FE, 0xE3CD, 0x9603, 0xE3CE, 0x9604, + 0xE3CF, 0x9606, 0xE3D0, 0x9608, 0xE3D1, 0x960A, 0xE3D2, 0x960B, + 0xE3D3, 0x960C, 0xE3D4, 0x960D, 0xE3D5, 0x960F, 0xE3D6, 0x9612, + 0xE3D7, 0x9615, 0xE3D8, 0x9616, 0xE3D9, 0x9617, 0xE3DA, 0x9619, + 0xE3DB, 0x961A, 0xE3DC, 0x4E2C, 0xE3DD, 0x723F, 0xE3DE, 0x6215, + 0xE3DF, 0x6C35, 0xE3E0, 0x6C54, 0xE3E1, 0x6C5C, 0xE3E2, 0x6C4A, + 0xE3E3, 0x6CA3, 0xE3E4, 0x6C85, 0xE3E5, 0x6C90, 0xE3E6, 0x6C94, + 0xE3E7, 0x6C8C, 0xE3E8, 0x6C68, 0xE3E9, 0x6C69, 0xE3EA, 0x6C74, + 0xE3EB, 0x6C76, 0xE3EC, 0x6C86, 0xE3ED, 0x6CA9, 0xE3EE, 0x6CD0, + 0xE3EF, 0x6CD4, 0xE3F0, 0x6CAD, 0xE3F1, 0x6CF7, 0xE3F2, 0x6CF8, + 0xE3F3, 0x6CF1, 0xE3F4, 0x6CD7, 0xE3F5, 0x6CB2, 0xE3F6, 0x6CE0, + 0xE3F7, 0x6CD6, 0xE3F8, 0x6CFA, 0xE3F9, 0x6CEB, 0xE3FA, 0x6CEE, + 0xE3FB, 0x6CB1, 0xE3FC, 0x6CD3, 0xE3FD, 0x6CEF, 0xE3FE, 0x6CFE, + 0xE440, 0x92A8, 0xE441, 0x92A9, 0xE442, 0x92AA, 0xE443, 0x92AB, + 0xE444, 0x92AC, 0xE445, 0x92AD, 0xE446, 0x92AF, 0xE447, 0x92B0, + 0xE448, 0x92B1, 0xE449, 0x92B2, 0xE44A, 0x92B3, 0xE44B, 0x92B4, + 0xE44C, 0x92B5, 0xE44D, 0x92B6, 0xE44E, 0x92B7, 0xE44F, 0x92B8, + 0xE450, 0x92B9, 0xE451, 0x92BA, 0xE452, 0x92BB, 0xE453, 0x92BC, + 0xE454, 0x92BD, 0xE455, 0x92BE, 0xE456, 0x92BF, 0xE457, 0x92C0, + 0xE458, 0x92C1, 0xE459, 0x92C2, 0xE45A, 0x92C3, 0xE45B, 0x92C4, + 0xE45C, 0x92C5, 0xE45D, 0x92C6, 0xE45E, 0x92C7, 0xE45F, 0x92C9, + 0xE460, 0x92CA, 0xE461, 0x92CB, 0xE462, 0x92CC, 0xE463, 0x92CD, + 0xE464, 0x92CE, 0xE465, 0x92CF, 0xE466, 0x92D0, 0xE467, 0x92D1, + 0xE468, 0x92D2, 0xE469, 0x92D3, 0xE46A, 0x92D4, 0xE46B, 0x92D5, + 0xE46C, 0x92D6, 0xE46D, 0x92D7, 0xE46E, 0x92D8, 0xE46F, 0x92D9, + 0xE470, 0x92DA, 0xE471, 0x92DB, 0xE472, 0x92DC, 0xE473, 0x92DD, + 0xE474, 0x92DE, 0xE475, 0x92DF, 0xE476, 0x92E0, 0xE477, 0x92E1, + 0xE478, 0x92E2, 0xE479, 0x92E3, 0xE47A, 0x92E4, 0xE47B, 0x92E5, + 0xE47C, 0x92E6, 0xE47D, 0x92E7, 0xE47E, 0x92E8, 0xE480, 0x92E9, + 0xE481, 0x92EA, 0xE482, 0x92EB, 0xE483, 0x92EC, 0xE484, 0x92ED, + 0xE485, 0x92EE, 0xE486, 0x92EF, 0xE487, 0x92F0, 0xE488, 0x92F1, + 0xE489, 0x92F2, 0xE48A, 0x92F3, 0xE48B, 0x92F4, 0xE48C, 0x92F5, + 0xE48D, 0x92F6, 0xE48E, 0x92F7, 0xE48F, 0x92F8, 0xE490, 0x92F9, + 0xE491, 0x92FA, 0xE492, 0x92FB, 0xE493, 0x92FC, 0xE494, 0x92FD, + 0xE495, 0x92FE, 0xE496, 0x92FF, 0xE497, 0x9300, 0xE498, 0x9301, + 0xE499, 0x9302, 0xE49A, 0x9303, 0xE49B, 0x9304, 0xE49C, 0x9305, + 0xE49D, 0x9306, 0xE49E, 0x9307, 0xE49F, 0x9308, 0xE4A0, 0x9309, + 0xE4A1, 0x6D39, 0xE4A2, 0x6D27, 0xE4A3, 0x6D0C, 0xE4A4, 0x6D43, + 0xE4A5, 0x6D48, 0xE4A6, 0x6D07, 0xE4A7, 0x6D04, 0xE4A8, 0x6D19, + 0xE4A9, 0x6D0E, 0xE4AA, 0x6D2B, 0xE4AB, 0x6D4D, 0xE4AC, 0x6D2E, + 0xE4AD, 0x6D35, 0xE4AE, 0x6D1A, 0xE4AF, 0x6D4F, 0xE4B0, 0x6D52, + 0xE4B1, 0x6D54, 0xE4B2, 0x6D33, 0xE4B3, 0x6D91, 0xE4B4, 0x6D6F, + 0xE4B5, 0x6D9E, 0xE4B6, 0x6DA0, 0xE4B7, 0x6D5E, 0xE4B8, 0x6D93, + 0xE4B9, 0x6D94, 0xE4BA, 0x6D5C, 0xE4BB, 0x6D60, 0xE4BC, 0x6D7C, + 0xE4BD, 0x6D63, 0xE4BE, 0x6E1A, 0xE4BF, 0x6DC7, 0xE4C0, 0x6DC5, + 0xE4C1, 0x6DDE, 0xE4C2, 0x6E0E, 0xE4C3, 0x6DBF, 0xE4C4, 0x6DE0, + 0xE4C5, 0x6E11, 0xE4C6, 0x6DE6, 0xE4C7, 0x6DDD, 0xE4C8, 0x6DD9, + 0xE4C9, 0x6E16, 0xE4CA, 0x6DAB, 0xE4CB, 0x6E0C, 0xE4CC, 0x6DAE, + 0xE4CD, 0x6E2B, 0xE4CE, 0x6E6E, 0xE4CF, 0x6E4E, 0xE4D0, 0x6E6B, + 0xE4D1, 0x6EB2, 0xE4D2, 0x6E5F, 0xE4D3, 0x6E86, 0xE4D4, 0x6E53, + 0xE4D5, 0x6E54, 0xE4D6, 0x6E32, 0xE4D7, 0x6E25, 0xE4D8, 0x6E44, + 0xE4D9, 0x6EDF, 0xE4DA, 0x6EB1, 0xE4DB, 0x6E98, 0xE4DC, 0x6EE0, + 0xE4DD, 0x6F2D, 0xE4DE, 0x6EE2, 0xE4DF, 0x6EA5, 0xE4E0, 0x6EA7, + 0xE4E1, 0x6EBD, 0xE4E2, 0x6EBB, 0xE4E3, 0x6EB7, 0xE4E4, 0x6ED7, + 0xE4E5, 0x6EB4, 0xE4E6, 0x6ECF, 0xE4E7, 0x6E8F, 0xE4E8, 0x6EC2, + 0xE4E9, 0x6E9F, 0xE4EA, 0x6F62, 0xE4EB, 0x6F46, 0xE4EC, 0x6F47, + 0xE4ED, 0x6F24, 0xE4EE, 0x6F15, 0xE4EF, 0x6EF9, 0xE4F0, 0x6F2F, + 0xE4F1, 0x6F36, 0xE4F2, 0x6F4B, 0xE4F3, 0x6F74, 0xE4F4, 0x6F2A, + 0xE4F5, 0x6F09, 0xE4F6, 0x6F29, 0xE4F7, 0x6F89, 0xE4F8, 0x6F8D, + 0xE4F9, 0x6F8C, 0xE4FA, 0x6F78, 0xE4FB, 0x6F72, 0xE4FC, 0x6F7C, + 0xE4FD, 0x6F7A, 0xE4FE, 0x6FD1, 0xE540, 0x930A, 0xE541, 0x930B, + 0xE542, 0x930C, 0xE543, 0x930D, 0xE544, 0x930E, 0xE545, 0x930F, + 0xE546, 0x9310, 0xE547, 0x9311, 0xE548, 0x9312, 0xE549, 0x9313, + 0xE54A, 0x9314, 0xE54B, 0x9315, 0xE54C, 0x9316, 0xE54D, 0x9317, + 0xE54E, 0x9318, 0xE54F, 0x9319, 0xE550, 0x931A, 0xE551, 0x931B, + 0xE552, 0x931C, 0xE553, 0x931D, 0xE554, 0x931E, 0xE555, 0x931F, + 0xE556, 0x9320, 0xE557, 0x9321, 0xE558, 0x9322, 0xE559, 0x9323, + 0xE55A, 0x9324, 0xE55B, 0x9325, 0xE55C, 0x9326, 0xE55D, 0x9327, + 0xE55E, 0x9328, 0xE55F, 0x9329, 0xE560, 0x932A, 0xE561, 0x932B, + 0xE562, 0x932C, 0xE563, 0x932D, 0xE564, 0x932E, 0xE565, 0x932F, + 0xE566, 0x9330, 0xE567, 0x9331, 0xE568, 0x9332, 0xE569, 0x9333, + 0xE56A, 0x9334, 0xE56B, 0x9335, 0xE56C, 0x9336, 0xE56D, 0x9337, + 0xE56E, 0x9338, 0xE56F, 0x9339, 0xE570, 0x933A, 0xE571, 0x933B, + 0xE572, 0x933C, 0xE573, 0x933D, 0xE574, 0x933F, 0xE575, 0x9340, + 0xE576, 0x9341, 0xE577, 0x9342, 0xE578, 0x9343, 0xE579, 0x9344, + 0xE57A, 0x9345, 0xE57B, 0x9346, 0xE57C, 0x9347, 0xE57D, 0x9348, + 0xE57E, 0x9349, 0xE580, 0x934A, 0xE581, 0x934B, 0xE582, 0x934C, + 0xE583, 0x934D, 0xE584, 0x934E, 0xE585, 0x934F, 0xE586, 0x9350, + 0xE587, 0x9351, 0xE588, 0x9352, 0xE589, 0x9353, 0xE58A, 0x9354, + 0xE58B, 0x9355, 0xE58C, 0x9356, 0xE58D, 0x9357, 0xE58E, 0x9358, + 0xE58F, 0x9359, 0xE590, 0x935A, 0xE591, 0x935B, 0xE592, 0x935C, + 0xE593, 0x935D, 0xE594, 0x935E, 0xE595, 0x935F, 0xE596, 0x9360, + 0xE597, 0x9361, 0xE598, 0x9362, 0xE599, 0x9363, 0xE59A, 0x9364, + 0xE59B, 0x9365, 0xE59C, 0x9366, 0xE59D, 0x9367, 0xE59E, 0x9368, + 0xE59F, 0x9369, 0xE5A0, 0x936B, 0xE5A1, 0x6FC9, 0xE5A2, 0x6FA7, + 0xE5A3, 0x6FB9, 0xE5A4, 0x6FB6, 0xE5A5, 0x6FC2, 0xE5A6, 0x6FE1, + 0xE5A7, 0x6FEE, 0xE5A8, 0x6FDE, 0xE5A9, 0x6FE0, 0xE5AA, 0x6FEF, + 0xE5AB, 0x701A, 0xE5AC, 0x7023, 0xE5AD, 0x701B, 0xE5AE, 0x7039, + 0xE5AF, 0x7035, 0xE5B0, 0x704F, 0xE5B1, 0x705E, 0xE5B2, 0x5B80, + 0xE5B3, 0x5B84, 0xE5B4, 0x5B95, 0xE5B5, 0x5B93, 0xE5B6, 0x5BA5, + 0xE5B7, 0x5BB8, 0xE5B8, 0x752F, 0xE5B9, 0x9A9E, 0xE5BA, 0x6434, + 0xE5BB, 0x5BE4, 0xE5BC, 0x5BEE, 0xE5BD, 0x8930, 0xE5BE, 0x5BF0, + 0xE5BF, 0x8E47, 0xE5C0, 0x8B07, 0xE5C1, 0x8FB6, 0xE5C2, 0x8FD3, + 0xE5C3, 0x8FD5, 0xE5C4, 0x8FE5, 0xE5C5, 0x8FEE, 0xE5C6, 0x8FE4, + 0xE5C7, 0x8FE9, 0xE5C8, 0x8FE6, 0xE5C9, 0x8FF3, 0xE5CA, 0x8FE8, + 0xE5CB, 0x9005, 0xE5CC, 0x9004, 0xE5CD, 0x900B, 0xE5CE, 0x9026, + 0xE5CF, 0x9011, 0xE5D0, 0x900D, 0xE5D1, 0x9016, 0xE5D2, 0x9021, + 0xE5D3, 0x9035, 0xE5D4, 0x9036, 0xE5D5, 0x902D, 0xE5D6, 0x902F, + 0xE5D7, 0x9044, 0xE5D8, 0x9051, 0xE5D9, 0x9052, 0xE5DA, 0x9050, + 0xE5DB, 0x9068, 0xE5DC, 0x9058, 0xE5DD, 0x9062, 0xE5DE, 0x905B, + 0xE5DF, 0x66B9, 0xE5E0, 0x9074, 0xE5E1, 0x907D, 0xE5E2, 0x9082, + 0xE5E3, 0x9088, 0xE5E4, 0x9083, 0xE5E5, 0x908B, 0xE5E6, 0x5F50, + 0xE5E7, 0x5F57, 0xE5E8, 0x5F56, 0xE5E9, 0x5F58, 0xE5EA, 0x5C3B, + 0xE5EB, 0x54AB, 0xE5EC, 0x5C50, 0xE5ED, 0x5C59, 0xE5EE, 0x5B71, + 0xE5EF, 0x5C63, 0xE5F0, 0x5C66, 0xE5F1, 0x7FBC, 0xE5F2, 0x5F2A, + 0xE5F3, 0x5F29, 0xE5F4, 0x5F2D, 0xE5F5, 0x8274, 0xE5F6, 0x5F3C, + 0xE5F7, 0x9B3B, 0xE5F8, 0x5C6E, 0xE5F9, 0x5981, 0xE5FA, 0x5983, + 0xE5FB, 0x598D, 0xE5FC, 0x59A9, 0xE5FD, 0x59AA, 0xE5FE, 0x59A3, + 0xE640, 0x936C, 0xE641, 0x936D, 0xE642, 0x936E, 0xE643, 0x936F, + 0xE644, 0x9370, 0xE645, 0x9371, 0xE646, 0x9372, 0xE647, 0x9373, + 0xE648, 0x9374, 0xE649, 0x9375, 0xE64A, 0x9376, 0xE64B, 0x9377, + 0xE64C, 0x9378, 0xE64D, 0x9379, 0xE64E, 0x937A, 0xE64F, 0x937B, + 0xE650, 0x937C, 0xE651, 0x937D, 0xE652, 0x937E, 0xE653, 0x937F, + 0xE654, 0x9380, 0xE655, 0x9381, 0xE656, 0x9382, 0xE657, 0x9383, + 0xE658, 0x9384, 0xE659, 0x9385, 0xE65A, 0x9386, 0xE65B, 0x9387, + 0xE65C, 0x9388, 0xE65D, 0x9389, 0xE65E, 0x938A, 0xE65F, 0x938B, + 0xE660, 0x938C, 0xE661, 0x938D, 0xE662, 0x938E, 0xE663, 0x9390, + 0xE664, 0x9391, 0xE665, 0x9392, 0xE666, 0x9393, 0xE667, 0x9394, + 0xE668, 0x9395, 0xE669, 0x9396, 0xE66A, 0x9397, 0xE66B, 0x9398, + 0xE66C, 0x9399, 0xE66D, 0x939A, 0xE66E, 0x939B, 0xE66F, 0x939C, + 0xE670, 0x939D, 0xE671, 0x939E, 0xE672, 0x939F, 0xE673, 0x93A0, + 0xE674, 0x93A1, 0xE675, 0x93A2, 0xE676, 0x93A3, 0xE677, 0x93A4, + 0xE678, 0x93A5, 0xE679, 0x93A6, 0xE67A, 0x93A7, 0xE67B, 0x93A8, + 0xE67C, 0x93A9, 0xE67D, 0x93AA, 0xE67E, 0x93AB, 0xE680, 0x93AC, + 0xE681, 0x93AD, 0xE682, 0x93AE, 0xE683, 0x93AF, 0xE684, 0x93B0, + 0xE685, 0x93B1, 0xE686, 0x93B2, 0xE687, 0x93B3, 0xE688, 0x93B4, + 0xE689, 0x93B5, 0xE68A, 0x93B6, 0xE68B, 0x93B7, 0xE68C, 0x93B8, + 0xE68D, 0x93B9, 0xE68E, 0x93BA, 0xE68F, 0x93BB, 0xE690, 0x93BC, + 0xE691, 0x93BD, 0xE692, 0x93BE, 0xE693, 0x93BF, 0xE694, 0x93C0, + 0xE695, 0x93C1, 0xE696, 0x93C2, 0xE697, 0x93C3, 0xE698, 0x93C4, + 0xE699, 0x93C5, 0xE69A, 0x93C6, 0xE69B, 0x93C7, 0xE69C, 0x93C8, + 0xE69D, 0x93C9, 0xE69E, 0x93CB, 0xE69F, 0x93CC, 0xE6A0, 0x93CD, + 0xE6A1, 0x5997, 0xE6A2, 0x59CA, 0xE6A3, 0x59AB, 0xE6A4, 0x599E, + 0xE6A5, 0x59A4, 0xE6A6, 0x59D2, 0xE6A7, 0x59B2, 0xE6A8, 0x59AF, + 0xE6A9, 0x59D7, 0xE6AA, 0x59BE, 0xE6AB, 0x5A05, 0xE6AC, 0x5A06, + 0xE6AD, 0x59DD, 0xE6AE, 0x5A08, 0xE6AF, 0x59E3, 0xE6B0, 0x59D8, + 0xE6B1, 0x59F9, 0xE6B2, 0x5A0C, 0xE6B3, 0x5A09, 0xE6B4, 0x5A32, + 0xE6B5, 0x5A34, 0xE6B6, 0x5A11, 0xE6B7, 0x5A23, 0xE6B8, 0x5A13, + 0xE6B9, 0x5A40, 0xE6BA, 0x5A67, 0xE6BB, 0x5A4A, 0xE6BC, 0x5A55, + 0xE6BD, 0x5A3C, 0xE6BE, 0x5A62, 0xE6BF, 0x5A75, 0xE6C0, 0x80EC, + 0xE6C1, 0x5AAA, 0xE6C2, 0x5A9B, 0xE6C3, 0x5A77, 0xE6C4, 0x5A7A, + 0xE6C5, 0x5ABE, 0xE6C6, 0x5AEB, 0xE6C7, 0x5AB2, 0xE6C8, 0x5AD2, + 0xE6C9, 0x5AD4, 0xE6CA, 0x5AB8, 0xE6CB, 0x5AE0, 0xE6CC, 0x5AE3, + 0xE6CD, 0x5AF1, 0xE6CE, 0x5AD6, 0xE6CF, 0x5AE6, 0xE6D0, 0x5AD8, + 0xE6D1, 0x5ADC, 0xE6D2, 0x5B09, 0xE6D3, 0x5B17, 0xE6D4, 0x5B16, + 0xE6D5, 0x5B32, 0xE6D6, 0x5B37, 0xE6D7, 0x5B40, 0xE6D8, 0x5C15, + 0xE6D9, 0x5C1C, 0xE6DA, 0x5B5A, 0xE6DB, 0x5B65, 0xE6DC, 0x5B73, + 0xE6DD, 0x5B51, 0xE6DE, 0x5B53, 0xE6DF, 0x5B62, 0xE6E0, 0x9A75, + 0xE6E1, 0x9A77, 0xE6E2, 0x9A78, 0xE6E3, 0x9A7A, 0xE6E4, 0x9A7F, + 0xE6E5, 0x9A7D, 0xE6E6, 0x9A80, 0xE6E7, 0x9A81, 0xE6E8, 0x9A85, + 0xE6E9, 0x9A88, 0xE6EA, 0x9A8A, 0xE6EB, 0x9A90, 0xE6EC, 0x9A92, + 0xE6ED, 0x9A93, 0xE6EE, 0x9A96, 0xE6EF, 0x9A98, 0xE6F0, 0x9A9B, + 0xE6F1, 0x9A9C, 0xE6F2, 0x9A9D, 0xE6F3, 0x9A9F, 0xE6F4, 0x9AA0, + 0xE6F5, 0x9AA2, 0xE6F6, 0x9AA3, 0xE6F7, 0x9AA5, 0xE6F8, 0x9AA7, + 0xE6F9, 0x7E9F, 0xE6FA, 0x7EA1, 0xE6FB, 0x7EA3, 0xE6FC, 0x7EA5, + 0xE6FD, 0x7EA8, 0xE6FE, 0x7EA9, 0xE740, 0x93CE, 0xE741, 0x93CF, + 0xE742, 0x93D0, 0xE743, 0x93D1, 0xE744, 0x93D2, 0xE745, 0x93D3, + 0xE746, 0x93D4, 0xE747, 0x93D5, 0xE748, 0x93D7, 0xE749, 0x93D8, + 0xE74A, 0x93D9, 0xE74B, 0x93DA, 0xE74C, 0x93DB, 0xE74D, 0x93DC, + 0xE74E, 0x93DD, 0xE74F, 0x93DE, 0xE750, 0x93DF, 0xE751, 0x93E0, + 0xE752, 0x93E1, 0xE753, 0x93E2, 0xE754, 0x93E3, 0xE755, 0x93E4, + 0xE756, 0x93E5, 0xE757, 0x93E6, 0xE758, 0x93E7, 0xE759, 0x93E8, + 0xE75A, 0x93E9, 0xE75B, 0x93EA, 0xE75C, 0x93EB, 0xE75D, 0x93EC, + 0xE75E, 0x93ED, 0xE75F, 0x93EE, 0xE760, 0x93EF, 0xE761, 0x93F0, + 0xE762, 0x93F1, 0xE763, 0x93F2, 0xE764, 0x93F3, 0xE765, 0x93F4, + 0xE766, 0x93F5, 0xE767, 0x93F6, 0xE768, 0x93F7, 0xE769, 0x93F8, + 0xE76A, 0x93F9, 0xE76B, 0x93FA, 0xE76C, 0x93FB, 0xE76D, 0x93FC, + 0xE76E, 0x93FD, 0xE76F, 0x93FE, 0xE770, 0x93FF, 0xE771, 0x9400, + 0xE772, 0x9401, 0xE773, 0x9402, 0xE774, 0x9403, 0xE775, 0x9404, + 0xE776, 0x9405, 0xE777, 0x9406, 0xE778, 0x9407, 0xE779, 0x9408, + 0xE77A, 0x9409, 0xE77B, 0x940A, 0xE77C, 0x940B, 0xE77D, 0x940C, + 0xE77E, 0x940D, 0xE780, 0x940E, 0xE781, 0x940F, 0xE782, 0x9410, + 0xE783, 0x9411, 0xE784, 0x9412, 0xE785, 0x9413, 0xE786, 0x9414, + 0xE787, 0x9415, 0xE788, 0x9416, 0xE789, 0x9417, 0xE78A, 0x9418, + 0xE78B, 0x9419, 0xE78C, 0x941A, 0xE78D, 0x941B, 0xE78E, 0x941C, + 0xE78F, 0x941D, 0xE790, 0x941E, 0xE791, 0x941F, 0xE792, 0x9420, + 0xE793, 0x9421, 0xE794, 0x9422, 0xE795, 0x9423, 0xE796, 0x9424, + 0xE797, 0x9425, 0xE798, 0x9426, 0xE799, 0x9427, 0xE79A, 0x9428, + 0xE79B, 0x9429, 0xE79C, 0x942A, 0xE79D, 0x942B, 0xE79E, 0x942C, + 0xE79F, 0x942D, 0xE7A0, 0x942E, 0xE7A1, 0x7EAD, 0xE7A2, 0x7EB0, + 0xE7A3, 0x7EBE, 0xE7A4, 0x7EC0, 0xE7A5, 0x7EC1, 0xE7A6, 0x7EC2, + 0xE7A7, 0x7EC9, 0xE7A8, 0x7ECB, 0xE7A9, 0x7ECC, 0xE7AA, 0x7ED0, + 0xE7AB, 0x7ED4, 0xE7AC, 0x7ED7, 0xE7AD, 0x7EDB, 0xE7AE, 0x7EE0, + 0xE7AF, 0x7EE1, 0xE7B0, 0x7EE8, 0xE7B1, 0x7EEB, 0xE7B2, 0x7EEE, + 0xE7B3, 0x7EEF, 0xE7B4, 0x7EF1, 0xE7B5, 0x7EF2, 0xE7B6, 0x7F0D, + 0xE7B7, 0x7EF6, 0xE7B8, 0x7EFA, 0xE7B9, 0x7EFB, 0xE7BA, 0x7EFE, + 0xE7BB, 0x7F01, 0xE7BC, 0x7F02, 0xE7BD, 0x7F03, 0xE7BE, 0x7F07, + 0xE7BF, 0x7F08, 0xE7C0, 0x7F0B, 0xE7C1, 0x7F0C, 0xE7C2, 0x7F0F, + 0xE7C3, 0x7F11, 0xE7C4, 0x7F12, 0xE7C5, 0x7F17, 0xE7C6, 0x7F19, + 0xE7C7, 0x7F1C, 0xE7C8, 0x7F1B, 0xE7C9, 0x7F1F, 0xE7CA, 0x7F21, + 0xE7CB, 0x7F22, 0xE7CC, 0x7F23, 0xE7CD, 0x7F24, 0xE7CE, 0x7F25, + 0xE7CF, 0x7F26, 0xE7D0, 0x7F27, 0xE7D1, 0x7F2A, 0xE7D2, 0x7F2B, + 0xE7D3, 0x7F2C, 0xE7D4, 0x7F2D, 0xE7D5, 0x7F2F, 0xE7D6, 0x7F30, + 0xE7D7, 0x7F31, 0xE7D8, 0x7F32, 0xE7D9, 0x7F33, 0xE7DA, 0x7F35, + 0xE7DB, 0x5E7A, 0xE7DC, 0x757F, 0xE7DD, 0x5DDB, 0xE7DE, 0x753E, + 0xE7DF, 0x9095, 0xE7E0, 0x738E, 0xE7E1, 0x7391, 0xE7E2, 0x73AE, + 0xE7E3, 0x73A2, 0xE7E4, 0x739F, 0xE7E5, 0x73CF, 0xE7E6, 0x73C2, + 0xE7E7, 0x73D1, 0xE7E8, 0x73B7, 0xE7E9, 0x73B3, 0xE7EA, 0x73C0, + 0xE7EB, 0x73C9, 0xE7EC, 0x73C8, 0xE7ED, 0x73E5, 0xE7EE, 0x73D9, + 0xE7EF, 0x987C, 0xE7F0, 0x740A, 0xE7F1, 0x73E9, 0xE7F2, 0x73E7, + 0xE7F3, 0x73DE, 0xE7F4, 0x73BA, 0xE7F5, 0x73F2, 0xE7F6, 0x740F, + 0xE7F7, 0x742A, 0xE7F8, 0x745B, 0xE7F9, 0x7426, 0xE7FA, 0x7425, + 0xE7FB, 0x7428, 0xE7FC, 0x7430, 0xE7FD, 0x742E, 0xE7FE, 0x742C, + 0xE840, 0x942F, 0xE841, 0x9430, 0xE842, 0x9431, 0xE843, 0x9432, + 0xE844, 0x9433, 0xE845, 0x9434, 0xE846, 0x9435, 0xE847, 0x9436, + 0xE848, 0x9437, 0xE849, 0x9438, 0xE84A, 0x9439, 0xE84B, 0x943A, + 0xE84C, 0x943B, 0xE84D, 0x943C, 0xE84E, 0x943D, 0xE84F, 0x943F, + 0xE850, 0x9440, 0xE851, 0x9441, 0xE852, 0x9442, 0xE853, 0x9443, + 0xE854, 0x9444, 0xE855, 0x9445, 0xE856, 0x9446, 0xE857, 0x9447, + 0xE858, 0x9448, 0xE859, 0x9449, 0xE85A, 0x944A, 0xE85B, 0x944B, + 0xE85C, 0x944C, 0xE85D, 0x944D, 0xE85E, 0x944E, 0xE85F, 0x944F, + 0xE860, 0x9450, 0xE861, 0x9451, 0xE862, 0x9452, 0xE863, 0x9453, + 0xE864, 0x9454, 0xE865, 0x9455, 0xE866, 0x9456, 0xE867, 0x9457, + 0xE868, 0x9458, 0xE869, 0x9459, 0xE86A, 0x945A, 0xE86B, 0x945B, + 0xE86C, 0x945C, 0xE86D, 0x945D, 0xE86E, 0x945E, 0xE86F, 0x945F, + 0xE870, 0x9460, 0xE871, 0x9461, 0xE872, 0x9462, 0xE873, 0x9463, + 0xE874, 0x9464, 0xE875, 0x9465, 0xE876, 0x9466, 0xE877, 0x9467, + 0xE878, 0x9468, 0xE879, 0x9469, 0xE87A, 0x946A, 0xE87B, 0x946C, + 0xE87C, 0x946D, 0xE87D, 0x946E, 0xE87E, 0x946F, 0xE880, 0x9470, + 0xE881, 0x9471, 0xE882, 0x9472, 0xE883, 0x9473, 0xE884, 0x9474, + 0xE885, 0x9475, 0xE886, 0x9476, 0xE887, 0x9477, 0xE888, 0x9478, + 0xE889, 0x9479, 0xE88A, 0x947A, 0xE88B, 0x947B, 0xE88C, 0x947C, + 0xE88D, 0x947D, 0xE88E, 0x947E, 0xE88F, 0x947F, 0xE890, 0x9480, + 0xE891, 0x9481, 0xE892, 0x9482, 0xE893, 0x9483, 0xE894, 0x9484, + 0xE895, 0x9491, 0xE896, 0x9496, 0xE897, 0x9498, 0xE898, 0x94C7, + 0xE899, 0x94CF, 0xE89A, 0x94D3, 0xE89B, 0x94D4, 0xE89C, 0x94DA, + 0xE89D, 0x94E6, 0xE89E, 0x94FB, 0xE89F, 0x951C, 0xE8A0, 0x9520, + 0xE8A1, 0x741B, 0xE8A2, 0x741A, 0xE8A3, 0x7441, 0xE8A4, 0x745C, + 0xE8A5, 0x7457, 0xE8A6, 0x7455, 0xE8A7, 0x7459, 0xE8A8, 0x7477, + 0xE8A9, 0x746D, 0xE8AA, 0x747E, 0xE8AB, 0x749C, 0xE8AC, 0x748E, + 0xE8AD, 0x7480, 0xE8AE, 0x7481, 0xE8AF, 0x7487, 0xE8B0, 0x748B, + 0xE8B1, 0x749E, 0xE8B2, 0x74A8, 0xE8B3, 0x74A9, 0xE8B4, 0x7490, + 0xE8B5, 0x74A7, 0xE8B6, 0x74D2, 0xE8B7, 0x74BA, 0xE8B8, 0x97EA, + 0xE8B9, 0x97EB, 0xE8BA, 0x97EC, 0xE8BB, 0x674C, 0xE8BC, 0x6753, + 0xE8BD, 0x675E, 0xE8BE, 0x6748, 0xE8BF, 0x6769, 0xE8C0, 0x67A5, + 0xE8C1, 0x6787, 0xE8C2, 0x676A, 0xE8C3, 0x6773, 0xE8C4, 0x6798, + 0xE8C5, 0x67A7, 0xE8C6, 0x6775, 0xE8C7, 0x67A8, 0xE8C8, 0x679E, + 0xE8C9, 0x67AD, 0xE8CA, 0x678B, 0xE8CB, 0x6777, 0xE8CC, 0x677C, + 0xE8CD, 0x67F0, 0xE8CE, 0x6809, 0xE8CF, 0x67D8, 0xE8D0, 0x680A, + 0xE8D1, 0x67E9, 0xE8D2, 0x67B0, 0xE8D3, 0x680C, 0xE8D4, 0x67D9, + 0xE8D5, 0x67B5, 0xE8D6, 0x67DA, 0xE8D7, 0x67B3, 0xE8D8, 0x67DD, + 0xE8D9, 0x6800, 0xE8DA, 0x67C3, 0xE8DB, 0x67B8, 0xE8DC, 0x67E2, + 0xE8DD, 0x680E, 0xE8DE, 0x67C1, 0xE8DF, 0x67FD, 0xE8E0, 0x6832, + 0xE8E1, 0x6833, 0xE8E2, 0x6860, 0xE8E3, 0x6861, 0xE8E4, 0x684E, + 0xE8E5, 0x6862, 0xE8E6, 0x6844, 0xE8E7, 0x6864, 0xE8E8, 0x6883, + 0xE8E9, 0x681D, 0xE8EA, 0x6855, 0xE8EB, 0x6866, 0xE8EC, 0x6841, + 0xE8ED, 0x6867, 0xE8EE, 0x6840, 0xE8EF, 0x683E, 0xE8F0, 0x684A, + 0xE8F1, 0x6849, 0xE8F2, 0x6829, 0xE8F3, 0x68B5, 0xE8F4, 0x688F, + 0xE8F5, 0x6874, 0xE8F6, 0x6877, 0xE8F7, 0x6893, 0xE8F8, 0x686B, + 0xE8F9, 0x68C2, 0xE8FA, 0x696E, 0xE8FB, 0x68FC, 0xE8FC, 0x691F, + 0xE8FD, 0x6920, 0xE8FE, 0x68F9, 0xE940, 0x9527, 0xE941, 0x9533, + 0xE942, 0x953D, 0xE943, 0x9543, 0xE944, 0x9548, 0xE945, 0x954B, + 0xE946, 0x9555, 0xE947, 0x955A, 0xE948, 0x9560, 0xE949, 0x956E, + 0xE94A, 0x9574, 0xE94B, 0x9575, 0xE94C, 0x9577, 0xE94D, 0x9578, + 0xE94E, 0x9579, 0xE94F, 0x957A, 0xE950, 0x957B, 0xE951, 0x957C, + 0xE952, 0x957D, 0xE953, 0x957E, 0xE954, 0x9580, 0xE955, 0x9581, + 0xE956, 0x9582, 0xE957, 0x9583, 0xE958, 0x9584, 0xE959, 0x9585, + 0xE95A, 0x9586, 0xE95B, 0x9587, 0xE95C, 0x9588, 0xE95D, 0x9589, + 0xE95E, 0x958A, 0xE95F, 0x958B, 0xE960, 0x958C, 0xE961, 0x958D, + 0xE962, 0x958E, 0xE963, 0x958F, 0xE964, 0x9590, 0xE965, 0x9591, + 0xE966, 0x9592, 0xE967, 0x9593, 0xE968, 0x9594, 0xE969, 0x9595, + 0xE96A, 0x9596, 0xE96B, 0x9597, 0xE96C, 0x9598, 0xE96D, 0x9599, + 0xE96E, 0x959A, 0xE96F, 0x959B, 0xE970, 0x959C, 0xE971, 0x959D, + 0xE972, 0x959E, 0xE973, 0x959F, 0xE974, 0x95A0, 0xE975, 0x95A1, + 0xE976, 0x95A2, 0xE977, 0x95A3, 0xE978, 0x95A4, 0xE979, 0x95A5, + 0xE97A, 0x95A6, 0xE97B, 0x95A7, 0xE97C, 0x95A8, 0xE97D, 0x95A9, + 0xE97E, 0x95AA, 0xE980, 0x95AB, 0xE981, 0x95AC, 0xE982, 0x95AD, + 0xE983, 0x95AE, 0xE984, 0x95AF, 0xE985, 0x95B0, 0xE986, 0x95B1, + 0xE987, 0x95B2, 0xE988, 0x95B3, 0xE989, 0x95B4, 0xE98A, 0x95B5, + 0xE98B, 0x95B6, 0xE98C, 0x95B7, 0xE98D, 0x95B8, 0xE98E, 0x95B9, + 0xE98F, 0x95BA, 0xE990, 0x95BB, 0xE991, 0x95BC, 0xE992, 0x95BD, + 0xE993, 0x95BE, 0xE994, 0x95BF, 0xE995, 0x95C0, 0xE996, 0x95C1, + 0xE997, 0x95C2, 0xE998, 0x95C3, 0xE999, 0x95C4, 0xE99A, 0x95C5, + 0xE99B, 0x95C6, 0xE99C, 0x95C7, 0xE99D, 0x95C8, 0xE99E, 0x95C9, + 0xE99F, 0x95CA, 0xE9A0, 0x95CB, 0xE9A1, 0x6924, 0xE9A2, 0x68F0, + 0xE9A3, 0x690B, 0xE9A4, 0x6901, 0xE9A5, 0x6957, 0xE9A6, 0x68E3, + 0xE9A7, 0x6910, 0xE9A8, 0x6971, 0xE9A9, 0x6939, 0xE9AA, 0x6960, + 0xE9AB, 0x6942, 0xE9AC, 0x695D, 0xE9AD, 0x6984, 0xE9AE, 0x696B, + 0xE9AF, 0x6980, 0xE9B0, 0x6998, 0xE9B1, 0x6978, 0xE9B2, 0x6934, + 0xE9B3, 0x69CC, 0xE9B4, 0x6987, 0xE9B5, 0x6988, 0xE9B6, 0x69CE, + 0xE9B7, 0x6989, 0xE9B8, 0x6966, 0xE9B9, 0x6963, 0xE9BA, 0x6979, + 0xE9BB, 0x699B, 0xE9BC, 0x69A7, 0xE9BD, 0x69BB, 0xE9BE, 0x69AB, + 0xE9BF, 0x69AD, 0xE9C0, 0x69D4, 0xE9C1, 0x69B1, 0xE9C2, 0x69C1, + 0xE9C3, 0x69CA, 0xE9C4, 0x69DF, 0xE9C5, 0x6995, 0xE9C6, 0x69E0, + 0xE9C7, 0x698D, 0xE9C8, 0x69FF, 0xE9C9, 0x6A2F, 0xE9CA, 0x69ED, + 0xE9CB, 0x6A17, 0xE9CC, 0x6A18, 0xE9CD, 0x6A65, 0xE9CE, 0x69F2, + 0xE9CF, 0x6A44, 0xE9D0, 0x6A3E, 0xE9D1, 0x6AA0, 0xE9D2, 0x6A50, + 0xE9D3, 0x6A5B, 0xE9D4, 0x6A35, 0xE9D5, 0x6A8E, 0xE9D6, 0x6A79, + 0xE9D7, 0x6A3D, 0xE9D8, 0x6A28, 0xE9D9, 0x6A58, 0xE9DA, 0x6A7C, + 0xE9DB, 0x6A91, 0xE9DC, 0x6A90, 0xE9DD, 0x6AA9, 0xE9DE, 0x6A97, + 0xE9DF, 0x6AAB, 0xE9E0, 0x7337, 0xE9E1, 0x7352, 0xE9E2, 0x6B81, + 0xE9E3, 0x6B82, 0xE9E4, 0x6B87, 0xE9E5, 0x6B84, 0xE9E6, 0x6B92, + 0xE9E7, 0x6B93, 0xE9E8, 0x6B8D, 0xE9E9, 0x6B9A, 0xE9EA, 0x6B9B, + 0xE9EB, 0x6BA1, 0xE9EC, 0x6BAA, 0xE9ED, 0x8F6B, 0xE9EE, 0x8F6D, + 0xE9EF, 0x8F71, 0xE9F0, 0x8F72, 0xE9F1, 0x8F73, 0xE9F2, 0x8F75, + 0xE9F3, 0x8F76, 0xE9F4, 0x8F78, 0xE9F5, 0x8F77, 0xE9F6, 0x8F79, + 0xE9F7, 0x8F7A, 0xE9F8, 0x8F7C, 0xE9F9, 0x8F7E, 0xE9FA, 0x8F81, + 0xE9FB, 0x8F82, 0xE9FC, 0x8F84, 0xE9FD, 0x8F87, 0xE9FE, 0x8F8B, + 0xEA40, 0x95CC, 0xEA41, 0x95CD, 0xEA42, 0x95CE, 0xEA43, 0x95CF, + 0xEA44, 0x95D0, 0xEA45, 0x95D1, 0xEA46, 0x95D2, 0xEA47, 0x95D3, + 0xEA48, 0x95D4, 0xEA49, 0x95D5, 0xEA4A, 0x95D6, 0xEA4B, 0x95D7, + 0xEA4C, 0x95D8, 0xEA4D, 0x95D9, 0xEA4E, 0x95DA, 0xEA4F, 0x95DB, + 0xEA50, 0x95DC, 0xEA51, 0x95DD, 0xEA52, 0x95DE, 0xEA53, 0x95DF, + 0xEA54, 0x95E0, 0xEA55, 0x95E1, 0xEA56, 0x95E2, 0xEA57, 0x95E3, + 0xEA58, 0x95E4, 0xEA59, 0x95E5, 0xEA5A, 0x95E6, 0xEA5B, 0x95E7, + 0xEA5C, 0x95EC, 0xEA5D, 0x95FF, 0xEA5E, 0x9607, 0xEA5F, 0x9613, + 0xEA60, 0x9618, 0xEA61, 0x961B, 0xEA62, 0x961E, 0xEA63, 0x9620, + 0xEA64, 0x9623, 0xEA65, 0x9624, 0xEA66, 0x9625, 0xEA67, 0x9626, + 0xEA68, 0x9627, 0xEA69, 0x9628, 0xEA6A, 0x9629, 0xEA6B, 0x962B, + 0xEA6C, 0x962C, 0xEA6D, 0x962D, 0xEA6E, 0x962F, 0xEA6F, 0x9630, + 0xEA70, 0x9637, 0xEA71, 0x9638, 0xEA72, 0x9639, 0xEA73, 0x963A, + 0xEA74, 0x963E, 0xEA75, 0x9641, 0xEA76, 0x9643, 0xEA77, 0x964A, + 0xEA78, 0x964E, 0xEA79, 0x964F, 0xEA7A, 0x9651, 0xEA7B, 0x9652, + 0xEA7C, 0x9653, 0xEA7D, 0x9656, 0xEA7E, 0x9657, 0xEA80, 0x9658, + 0xEA81, 0x9659, 0xEA82, 0x965A, 0xEA83, 0x965C, 0xEA84, 0x965D, + 0xEA85, 0x965E, 0xEA86, 0x9660, 0xEA87, 0x9663, 0xEA88, 0x9665, + 0xEA89, 0x9666, 0xEA8A, 0x966B, 0xEA8B, 0x966D, 0xEA8C, 0x966E, + 0xEA8D, 0x966F, 0xEA8E, 0x9670, 0xEA8F, 0x9671, 0xEA90, 0x9673, + 0xEA91, 0x9678, 0xEA92, 0x9679, 0xEA93, 0x967A, 0xEA94, 0x967B, + 0xEA95, 0x967C, 0xEA96, 0x967D, 0xEA97, 0x967E, 0xEA98, 0x967F, + 0xEA99, 0x9680, 0xEA9A, 0x9681, 0xEA9B, 0x9682, 0xEA9C, 0x9683, + 0xEA9D, 0x9684, 0xEA9E, 0x9687, 0xEA9F, 0x9689, 0xEAA0, 0x968A, + 0xEAA1, 0x8F8D, 0xEAA2, 0x8F8E, 0xEAA3, 0x8F8F, 0xEAA4, 0x8F98, + 0xEAA5, 0x8F9A, 0xEAA6, 0x8ECE, 0xEAA7, 0x620B, 0xEAA8, 0x6217, + 0xEAA9, 0x621B, 0xEAAA, 0x621F, 0xEAAB, 0x6222, 0xEAAC, 0x6221, + 0xEAAD, 0x6225, 0xEAAE, 0x6224, 0xEAAF, 0x622C, 0xEAB0, 0x81E7, + 0xEAB1, 0x74EF, 0xEAB2, 0x74F4, 0xEAB3, 0x74FF, 0xEAB4, 0x750F, + 0xEAB5, 0x7511, 0xEAB6, 0x7513, 0xEAB7, 0x6534, 0xEAB8, 0x65EE, + 0xEAB9, 0x65EF, 0xEABA, 0x65F0, 0xEABB, 0x660A, 0xEABC, 0x6619, + 0xEABD, 0x6772, 0xEABE, 0x6603, 0xEABF, 0x6615, 0xEAC0, 0x6600, + 0xEAC1, 0x7085, 0xEAC2, 0x66F7, 0xEAC3, 0x661D, 0xEAC4, 0x6634, + 0xEAC5, 0x6631, 0xEAC6, 0x6636, 0xEAC7, 0x6635, 0xEAC8, 0x8006, + 0xEAC9, 0x665F, 0xEACA, 0x6654, 0xEACB, 0x6641, 0xEACC, 0x664F, + 0xEACD, 0x6656, 0xEACE, 0x6661, 0xEACF, 0x6657, 0xEAD0, 0x6677, + 0xEAD1, 0x6684, 0xEAD2, 0x668C, 0xEAD3, 0x66A7, 0xEAD4, 0x669D, + 0xEAD5, 0x66BE, 0xEAD6, 0x66DB, 0xEAD7, 0x66DC, 0xEAD8, 0x66E6, + 0xEAD9, 0x66E9, 0xEADA, 0x8D32, 0xEADB, 0x8D33, 0xEADC, 0x8D36, + 0xEADD, 0x8D3B, 0xEADE, 0x8D3D, 0xEADF, 0x8D40, 0xEAE0, 0x8D45, + 0xEAE1, 0x8D46, 0xEAE2, 0x8D48, 0xEAE3, 0x8D49, 0xEAE4, 0x8D47, + 0xEAE5, 0x8D4D, 0xEAE6, 0x8D55, 0xEAE7, 0x8D59, 0xEAE8, 0x89C7, + 0xEAE9, 0x89CA, 0xEAEA, 0x89CB, 0xEAEB, 0x89CC, 0xEAEC, 0x89CE, + 0xEAED, 0x89CF, 0xEAEE, 0x89D0, 0xEAEF, 0x89D1, 0xEAF0, 0x726E, + 0xEAF1, 0x729F, 0xEAF2, 0x725D, 0xEAF3, 0x7266, 0xEAF4, 0x726F, + 0xEAF5, 0x727E, 0xEAF6, 0x727F, 0xEAF7, 0x7284, 0xEAF8, 0x728B, + 0xEAF9, 0x728D, 0xEAFA, 0x728F, 0xEAFB, 0x7292, 0xEAFC, 0x6308, + 0xEAFD, 0x6332, 0xEAFE, 0x63B0, 0xEB40, 0x968C, 0xEB41, 0x968E, + 0xEB42, 0x9691, 0xEB43, 0x9692, 0xEB44, 0x9693, 0xEB45, 0x9695, + 0xEB46, 0x9696, 0xEB47, 0x969A, 0xEB48, 0x969B, 0xEB49, 0x969D, + 0xEB4A, 0x969E, 0xEB4B, 0x969F, 0xEB4C, 0x96A0, 0xEB4D, 0x96A1, + 0xEB4E, 0x96A2, 0xEB4F, 0x96A3, 0xEB50, 0x96A4, 0xEB51, 0x96A5, + 0xEB52, 0x96A6, 0xEB53, 0x96A8, 0xEB54, 0x96A9, 0xEB55, 0x96AA, + 0xEB56, 0x96AB, 0xEB57, 0x96AC, 0xEB58, 0x96AD, 0xEB59, 0x96AE, + 0xEB5A, 0x96AF, 0xEB5B, 0x96B1, 0xEB5C, 0x96B2, 0xEB5D, 0x96B4, + 0xEB5E, 0x96B5, 0xEB5F, 0x96B7, 0xEB60, 0x96B8, 0xEB61, 0x96BA, + 0xEB62, 0x96BB, 0xEB63, 0x96BF, 0xEB64, 0x96C2, 0xEB65, 0x96C3, + 0xEB66, 0x96C8, 0xEB67, 0x96CA, 0xEB68, 0x96CB, 0xEB69, 0x96D0, + 0xEB6A, 0x96D1, 0xEB6B, 0x96D3, 0xEB6C, 0x96D4, 0xEB6D, 0x96D6, + 0xEB6E, 0x96D7, 0xEB6F, 0x96D8, 0xEB70, 0x96D9, 0xEB71, 0x96DA, + 0xEB72, 0x96DB, 0xEB73, 0x96DC, 0xEB74, 0x96DD, 0xEB75, 0x96DE, + 0xEB76, 0x96DF, 0xEB77, 0x96E1, 0xEB78, 0x96E2, 0xEB79, 0x96E3, + 0xEB7A, 0x96E4, 0xEB7B, 0x96E5, 0xEB7C, 0x96E6, 0xEB7D, 0x96E7, + 0xEB7E, 0x96EB, 0xEB80, 0x96EC, 0xEB81, 0x96ED, 0xEB82, 0x96EE, + 0xEB83, 0x96F0, 0xEB84, 0x96F1, 0xEB85, 0x96F2, 0xEB86, 0x96F4, + 0xEB87, 0x96F5, 0xEB88, 0x96F8, 0xEB89, 0x96FA, 0xEB8A, 0x96FB, + 0xEB8B, 0x96FC, 0xEB8C, 0x96FD, 0xEB8D, 0x96FF, 0xEB8E, 0x9702, + 0xEB8F, 0x9703, 0xEB90, 0x9705, 0xEB91, 0x970A, 0xEB92, 0x970B, + 0xEB93, 0x970C, 0xEB94, 0x9710, 0xEB95, 0x9711, 0xEB96, 0x9712, + 0xEB97, 0x9714, 0xEB98, 0x9715, 0xEB99, 0x9717, 0xEB9A, 0x9718, + 0xEB9B, 0x9719, 0xEB9C, 0x971A, 0xEB9D, 0x971B, 0xEB9E, 0x971D, + 0xEB9F, 0x971F, 0xEBA0, 0x9720, 0xEBA1, 0x643F, 0xEBA2, 0x64D8, + 0xEBA3, 0x8004, 0xEBA4, 0x6BEA, 0xEBA5, 0x6BF3, 0xEBA6, 0x6BFD, + 0xEBA7, 0x6BF5, 0xEBA8, 0x6BF9, 0xEBA9, 0x6C05, 0xEBAA, 0x6C07, + 0xEBAB, 0x6C06, 0xEBAC, 0x6C0D, 0xEBAD, 0x6C15, 0xEBAE, 0x6C18, + 0xEBAF, 0x6C19, 0xEBB0, 0x6C1A, 0xEBB1, 0x6C21, 0xEBB2, 0x6C29, + 0xEBB3, 0x6C24, 0xEBB4, 0x6C2A, 0xEBB5, 0x6C32, 0xEBB6, 0x6535, + 0xEBB7, 0x6555, 0xEBB8, 0x656B, 0xEBB9, 0x724D, 0xEBBA, 0x7252, + 0xEBBB, 0x7256, 0xEBBC, 0x7230, 0xEBBD, 0x8662, 0xEBBE, 0x5216, + 0xEBBF, 0x809F, 0xEBC0, 0x809C, 0xEBC1, 0x8093, 0xEBC2, 0x80BC, + 0xEBC3, 0x670A, 0xEBC4, 0x80BD, 0xEBC5, 0x80B1, 0xEBC6, 0x80AB, + 0xEBC7, 0x80AD, 0xEBC8, 0x80B4, 0xEBC9, 0x80B7, 0xEBCA, 0x80E7, + 0xEBCB, 0x80E8, 0xEBCC, 0x80E9, 0xEBCD, 0x80EA, 0xEBCE, 0x80DB, + 0xEBCF, 0x80C2, 0xEBD0, 0x80C4, 0xEBD1, 0x80D9, 0xEBD2, 0x80CD, + 0xEBD3, 0x80D7, 0xEBD4, 0x6710, 0xEBD5, 0x80DD, 0xEBD6, 0x80EB, + 0xEBD7, 0x80F1, 0xEBD8, 0x80F4, 0xEBD9, 0x80ED, 0xEBDA, 0x810D, + 0xEBDB, 0x810E, 0xEBDC, 0x80F2, 0xEBDD, 0x80FC, 0xEBDE, 0x6715, + 0xEBDF, 0x8112, 0xEBE0, 0x8C5A, 0xEBE1, 0x8136, 0xEBE2, 0x811E, + 0xEBE3, 0x812C, 0xEBE4, 0x8118, 0xEBE5, 0x8132, 0xEBE6, 0x8148, + 0xEBE7, 0x814C, 0xEBE8, 0x8153, 0xEBE9, 0x8174, 0xEBEA, 0x8159, + 0xEBEB, 0x815A, 0xEBEC, 0x8171, 0xEBED, 0x8160, 0xEBEE, 0x8169, + 0xEBEF, 0x817C, 0xEBF0, 0x817D, 0xEBF1, 0x816D, 0xEBF2, 0x8167, + 0xEBF3, 0x584D, 0xEBF4, 0x5AB5, 0xEBF5, 0x8188, 0xEBF6, 0x8182, + 0xEBF7, 0x8191, 0xEBF8, 0x6ED5, 0xEBF9, 0x81A3, 0xEBFA, 0x81AA, + 0xEBFB, 0x81CC, 0xEBFC, 0x6726, 0xEBFD, 0x81CA, 0xEBFE, 0x81BB, + 0xEC40, 0x9721, 0xEC41, 0x9722, 0xEC42, 0x9723, 0xEC43, 0x9724, + 0xEC44, 0x9725, 0xEC45, 0x9726, 0xEC46, 0x9727, 0xEC47, 0x9728, + 0xEC48, 0x9729, 0xEC49, 0x972B, 0xEC4A, 0x972C, 0xEC4B, 0x972E, + 0xEC4C, 0x972F, 0xEC4D, 0x9731, 0xEC4E, 0x9733, 0xEC4F, 0x9734, + 0xEC50, 0x9735, 0xEC51, 0x9736, 0xEC52, 0x9737, 0xEC53, 0x973A, + 0xEC54, 0x973B, 0xEC55, 0x973C, 0xEC56, 0x973D, 0xEC57, 0x973F, + 0xEC58, 0x9740, 0xEC59, 0x9741, 0xEC5A, 0x9742, 0xEC5B, 0x9743, + 0xEC5C, 0x9744, 0xEC5D, 0x9745, 0xEC5E, 0x9746, 0xEC5F, 0x9747, + 0xEC60, 0x9748, 0xEC61, 0x9749, 0xEC62, 0x974A, 0xEC63, 0x974B, + 0xEC64, 0x974C, 0xEC65, 0x974D, 0xEC66, 0x974E, 0xEC67, 0x974F, + 0xEC68, 0x9750, 0xEC69, 0x9751, 0xEC6A, 0x9754, 0xEC6B, 0x9755, + 0xEC6C, 0x9757, 0xEC6D, 0x9758, 0xEC6E, 0x975A, 0xEC6F, 0x975C, + 0xEC70, 0x975D, 0xEC71, 0x975F, 0xEC72, 0x9763, 0xEC73, 0x9764, + 0xEC74, 0x9766, 0xEC75, 0x9767, 0xEC76, 0x9768, 0xEC77, 0x976A, + 0xEC78, 0x976B, 0xEC79, 0x976C, 0xEC7A, 0x976D, 0xEC7B, 0x976E, + 0xEC7C, 0x976F, 0xEC7D, 0x9770, 0xEC7E, 0x9771, 0xEC80, 0x9772, + 0xEC81, 0x9775, 0xEC82, 0x9777, 0xEC83, 0x9778, 0xEC84, 0x9779, + 0xEC85, 0x977A, 0xEC86, 0x977B, 0xEC87, 0x977D, 0xEC88, 0x977E, + 0xEC89, 0x977F, 0xEC8A, 0x9780, 0xEC8B, 0x9781, 0xEC8C, 0x9782, + 0xEC8D, 0x9783, 0xEC8E, 0x9784, 0xEC8F, 0x9786, 0xEC90, 0x9787, + 0xEC91, 0x9788, 0xEC92, 0x9789, 0xEC93, 0x978A, 0xEC94, 0x978C, + 0xEC95, 0x978E, 0xEC96, 0x978F, 0xEC97, 0x9790, 0xEC98, 0x9793, + 0xEC99, 0x9795, 0xEC9A, 0x9796, 0xEC9B, 0x9797, 0xEC9C, 0x9799, + 0xEC9D, 0x979A, 0xEC9E, 0x979B, 0xEC9F, 0x979C, 0xECA0, 0x979D, + 0xECA1, 0x81C1, 0xECA2, 0x81A6, 0xECA3, 0x6B24, 0xECA4, 0x6B37, + 0xECA5, 0x6B39, 0xECA6, 0x6B43, 0xECA7, 0x6B46, 0xECA8, 0x6B59, + 0xECA9, 0x98D1, 0xECAA, 0x98D2, 0xECAB, 0x98D3, 0xECAC, 0x98D5, + 0xECAD, 0x98D9, 0xECAE, 0x98DA, 0xECAF, 0x6BB3, 0xECB0, 0x5F40, + 0xECB1, 0x6BC2, 0xECB2, 0x89F3, 0xECB3, 0x6590, 0xECB4, 0x9F51, + 0xECB5, 0x6593, 0xECB6, 0x65BC, 0xECB7, 0x65C6, 0xECB8, 0x65C4, + 0xECB9, 0x65C3, 0xECBA, 0x65CC, 0xECBB, 0x65CE, 0xECBC, 0x65D2, + 0xECBD, 0x65D6, 0xECBE, 0x7080, 0xECBF, 0x709C, 0xECC0, 0x7096, + 0xECC1, 0x709D, 0xECC2, 0x70BB, 0xECC3, 0x70C0, 0xECC4, 0x70B7, + 0xECC5, 0x70AB, 0xECC6, 0x70B1, 0xECC7, 0x70E8, 0xECC8, 0x70CA, + 0xECC9, 0x7110, 0xECCA, 0x7113, 0xECCB, 0x7116, 0xECCC, 0x712F, + 0xECCD, 0x7131, 0xECCE, 0x7173, 0xECCF, 0x715C, 0xECD0, 0x7168, + 0xECD1, 0x7145, 0xECD2, 0x7172, 0xECD3, 0x714A, 0xECD4, 0x7178, + 0xECD5, 0x717A, 0xECD6, 0x7198, 0xECD7, 0x71B3, 0xECD8, 0x71B5, + 0xECD9, 0x71A8, 0xECDA, 0x71A0, 0xECDB, 0x71E0, 0xECDC, 0x71D4, + 0xECDD, 0x71E7, 0xECDE, 0x71F9, 0xECDF, 0x721D, 0xECE0, 0x7228, + 0xECE1, 0x706C, 0xECE2, 0x7118, 0xECE3, 0x7166, 0xECE4, 0x71B9, + 0xECE5, 0x623E, 0xECE6, 0x623D, 0xECE7, 0x6243, 0xECE8, 0x6248, + 0xECE9, 0x6249, 0xECEA, 0x793B, 0xECEB, 0x7940, 0xECEC, 0x7946, + 0xECED, 0x7949, 0xECEE, 0x795B, 0xECEF, 0x795C, 0xECF0, 0x7953, + 0xECF1, 0x795A, 0xECF2, 0x7962, 0xECF3, 0x7957, 0xECF4, 0x7960, + 0xECF5, 0x796F, 0xECF6, 0x7967, 0xECF7, 0x797A, 0xECF8, 0x7985, + 0xECF9, 0x798A, 0xECFA, 0x799A, 0xECFB, 0x79A7, 0xECFC, 0x79B3, + 0xECFD, 0x5FD1, 0xECFE, 0x5FD0, 0xED40, 0x979E, 0xED41, 0x979F, + 0xED42, 0x97A1, 0xED43, 0x97A2, 0xED44, 0x97A4, 0xED45, 0x97A5, + 0xED46, 0x97A6, 0xED47, 0x97A7, 0xED48, 0x97A8, 0xED49, 0x97A9, + 0xED4A, 0x97AA, 0xED4B, 0x97AC, 0xED4C, 0x97AE, 0xED4D, 0x97B0, + 0xED4E, 0x97B1, 0xED4F, 0x97B3, 0xED50, 0x97B5, 0xED51, 0x97B6, + 0xED52, 0x97B7, 0xED53, 0x97B8, 0xED54, 0x97B9, 0xED55, 0x97BA, + 0xED56, 0x97BB, 0xED57, 0x97BC, 0xED58, 0x97BD, 0xED59, 0x97BE, + 0xED5A, 0x97BF, 0xED5B, 0x97C0, 0xED5C, 0x97C1, 0xED5D, 0x97C2, + 0xED5E, 0x97C3, 0xED5F, 0x97C4, 0xED60, 0x97C5, 0xED61, 0x97C6, + 0xED62, 0x97C7, 0xED63, 0x97C8, 0xED64, 0x97C9, 0xED65, 0x97CA, + 0xED66, 0x97CB, 0xED67, 0x97CC, 0xED68, 0x97CD, 0xED69, 0x97CE, + 0xED6A, 0x97CF, 0xED6B, 0x97D0, 0xED6C, 0x97D1, 0xED6D, 0x97D2, + 0xED6E, 0x97D3, 0xED6F, 0x97D4, 0xED70, 0x97D5, 0xED71, 0x97D6, + 0xED72, 0x97D7, 0xED73, 0x97D8, 0xED74, 0x97D9, 0xED75, 0x97DA, + 0xED76, 0x97DB, 0xED77, 0x97DC, 0xED78, 0x97DD, 0xED79, 0x97DE, + 0xED7A, 0x97DF, 0xED7B, 0x97E0, 0xED7C, 0x97E1, 0xED7D, 0x97E2, + 0xED7E, 0x97E3, 0xED80, 0x97E4, 0xED81, 0x97E5, 0xED82, 0x97E8, + 0xED83, 0x97EE, 0xED84, 0x97EF, 0xED85, 0x97F0, 0xED86, 0x97F1, + 0xED87, 0x97F2, 0xED88, 0x97F4, 0xED89, 0x97F7, 0xED8A, 0x97F8, + 0xED8B, 0x97F9, 0xED8C, 0x97FA, 0xED8D, 0x97FB, 0xED8E, 0x97FC, + 0xED8F, 0x97FD, 0xED90, 0x97FE, 0xED91, 0x97FF, 0xED92, 0x9800, + 0xED93, 0x9801, 0xED94, 0x9802, 0xED95, 0x9803, 0xED96, 0x9804, + 0xED97, 0x9805, 0xED98, 0x9806, 0xED99, 0x9807, 0xED9A, 0x9808, + 0xED9B, 0x9809, 0xED9C, 0x980A, 0xED9D, 0x980B, 0xED9E, 0x980C, + 0xED9F, 0x980D, 0xEDA0, 0x980E, 0xEDA1, 0x603C, 0xEDA2, 0x605D, + 0xEDA3, 0x605A, 0xEDA4, 0x6067, 0xEDA5, 0x6041, 0xEDA6, 0x6059, + 0xEDA7, 0x6063, 0xEDA8, 0x60AB, 0xEDA9, 0x6106, 0xEDAA, 0x610D, + 0xEDAB, 0x615D, 0xEDAC, 0x61A9, 0xEDAD, 0x619D, 0xEDAE, 0x61CB, + 0xEDAF, 0x61D1, 0xEDB0, 0x6206, 0xEDB1, 0x8080, 0xEDB2, 0x807F, + 0xEDB3, 0x6C93, 0xEDB4, 0x6CF6, 0xEDB5, 0x6DFC, 0xEDB6, 0x77F6, + 0xEDB7, 0x77F8, 0xEDB8, 0x7800, 0xEDB9, 0x7809, 0xEDBA, 0x7817, + 0xEDBB, 0x7818, 0xEDBC, 0x7811, 0xEDBD, 0x65AB, 0xEDBE, 0x782D, + 0xEDBF, 0x781C, 0xEDC0, 0x781D, 0xEDC1, 0x7839, 0xEDC2, 0x783A, + 0xEDC3, 0x783B, 0xEDC4, 0x781F, 0xEDC5, 0x783C, 0xEDC6, 0x7825, + 0xEDC7, 0x782C, 0xEDC8, 0x7823, 0xEDC9, 0x7829, 0xEDCA, 0x784E, + 0xEDCB, 0x786D, 0xEDCC, 0x7856, 0xEDCD, 0x7857, 0xEDCE, 0x7826, + 0xEDCF, 0x7850, 0xEDD0, 0x7847, 0xEDD1, 0x784C, 0xEDD2, 0x786A, + 0xEDD3, 0x789B, 0xEDD4, 0x7893, 0xEDD5, 0x789A, 0xEDD6, 0x7887, + 0xEDD7, 0x789C, 0xEDD8, 0x78A1, 0xEDD9, 0x78A3, 0xEDDA, 0x78B2, + 0xEDDB, 0x78B9, 0xEDDC, 0x78A5, 0xEDDD, 0x78D4, 0xEDDE, 0x78D9, + 0xEDDF, 0x78C9, 0xEDE0, 0x78EC, 0xEDE1, 0x78F2, 0xEDE2, 0x7905, + 0xEDE3, 0x78F4, 0xEDE4, 0x7913, 0xEDE5, 0x7924, 0xEDE6, 0x791E, + 0xEDE7, 0x7934, 0xEDE8, 0x9F9B, 0xEDE9, 0x9EF9, 0xEDEA, 0x9EFB, + 0xEDEB, 0x9EFC, 0xEDEC, 0x76F1, 0xEDED, 0x7704, 0xEDEE, 0x770D, + 0xEDEF, 0x76F9, 0xEDF0, 0x7707, 0xEDF1, 0x7708, 0xEDF2, 0x771A, + 0xEDF3, 0x7722, 0xEDF4, 0x7719, 0xEDF5, 0x772D, 0xEDF6, 0x7726, + 0xEDF7, 0x7735, 0xEDF8, 0x7738, 0xEDF9, 0x7750, 0xEDFA, 0x7751, + 0xEDFB, 0x7747, 0xEDFC, 0x7743, 0xEDFD, 0x775A, 0xEDFE, 0x7768, + 0xEE40, 0x980F, 0xEE41, 0x9810, 0xEE42, 0x9811, 0xEE43, 0x9812, + 0xEE44, 0x9813, 0xEE45, 0x9814, 0xEE46, 0x9815, 0xEE47, 0x9816, + 0xEE48, 0x9817, 0xEE49, 0x9818, 0xEE4A, 0x9819, 0xEE4B, 0x981A, + 0xEE4C, 0x981B, 0xEE4D, 0x981C, 0xEE4E, 0x981D, 0xEE4F, 0x981E, + 0xEE50, 0x981F, 0xEE51, 0x9820, 0xEE52, 0x9821, 0xEE53, 0x9822, + 0xEE54, 0x9823, 0xEE55, 0x9824, 0xEE56, 0x9825, 0xEE57, 0x9826, + 0xEE58, 0x9827, 0xEE59, 0x9828, 0xEE5A, 0x9829, 0xEE5B, 0x982A, + 0xEE5C, 0x982B, 0xEE5D, 0x982C, 0xEE5E, 0x982D, 0xEE5F, 0x982E, + 0xEE60, 0x982F, 0xEE61, 0x9830, 0xEE62, 0x9831, 0xEE63, 0x9832, + 0xEE64, 0x9833, 0xEE65, 0x9834, 0xEE66, 0x9835, 0xEE67, 0x9836, + 0xEE68, 0x9837, 0xEE69, 0x9838, 0xEE6A, 0x9839, 0xEE6B, 0x983A, + 0xEE6C, 0x983B, 0xEE6D, 0x983C, 0xEE6E, 0x983D, 0xEE6F, 0x983E, + 0xEE70, 0x983F, 0xEE71, 0x9840, 0xEE72, 0x9841, 0xEE73, 0x9842, + 0xEE74, 0x9843, 0xEE75, 0x9844, 0xEE76, 0x9845, 0xEE77, 0x9846, + 0xEE78, 0x9847, 0xEE79, 0x9848, 0xEE7A, 0x9849, 0xEE7B, 0x984A, + 0xEE7C, 0x984B, 0xEE7D, 0x984C, 0xEE7E, 0x984D, 0xEE80, 0x984E, + 0xEE81, 0x984F, 0xEE82, 0x9850, 0xEE83, 0x9851, 0xEE84, 0x9852, + 0xEE85, 0x9853, 0xEE86, 0x9854, 0xEE87, 0x9855, 0xEE88, 0x9856, + 0xEE89, 0x9857, 0xEE8A, 0x9858, 0xEE8B, 0x9859, 0xEE8C, 0x985A, + 0xEE8D, 0x985B, 0xEE8E, 0x985C, 0xEE8F, 0x985D, 0xEE90, 0x985E, + 0xEE91, 0x985F, 0xEE92, 0x9860, 0xEE93, 0x9861, 0xEE94, 0x9862, + 0xEE95, 0x9863, 0xEE96, 0x9864, 0xEE97, 0x9865, 0xEE98, 0x9866, + 0xEE99, 0x9867, 0xEE9A, 0x9868, 0xEE9B, 0x9869, 0xEE9C, 0x986A, + 0xEE9D, 0x986B, 0xEE9E, 0x986C, 0xEE9F, 0x986D, 0xEEA0, 0x986E, + 0xEEA1, 0x7762, 0xEEA2, 0x7765, 0xEEA3, 0x777F, 0xEEA4, 0x778D, + 0xEEA5, 0x777D, 0xEEA6, 0x7780, 0xEEA7, 0x778C, 0xEEA8, 0x7791, + 0xEEA9, 0x779F, 0xEEAA, 0x77A0, 0xEEAB, 0x77B0, 0xEEAC, 0x77B5, + 0xEEAD, 0x77BD, 0xEEAE, 0x753A, 0xEEAF, 0x7540, 0xEEB0, 0x754E, + 0xEEB1, 0x754B, 0xEEB2, 0x7548, 0xEEB3, 0x755B, 0xEEB4, 0x7572, + 0xEEB5, 0x7579, 0xEEB6, 0x7583, 0xEEB7, 0x7F58, 0xEEB8, 0x7F61, + 0xEEB9, 0x7F5F, 0xEEBA, 0x8A48, 0xEEBB, 0x7F68, 0xEEBC, 0x7F74, + 0xEEBD, 0x7F71, 0xEEBE, 0x7F79, 0xEEBF, 0x7F81, 0xEEC0, 0x7F7E, + 0xEEC1, 0x76CD, 0xEEC2, 0x76E5, 0xEEC3, 0x8832, 0xEEC4, 0x9485, + 0xEEC5, 0x9486, 0xEEC6, 0x9487, 0xEEC7, 0x948B, 0xEEC8, 0x948A, + 0xEEC9, 0x948C, 0xEECA, 0x948D, 0xEECB, 0x948F, 0xEECC, 0x9490, + 0xEECD, 0x9494, 0xEECE, 0x9497, 0xEECF, 0x9495, 0xEED0, 0x949A, + 0xEED1, 0x949B, 0xEED2, 0x949C, 0xEED3, 0x94A3, 0xEED4, 0x94A4, + 0xEED5, 0x94AB, 0xEED6, 0x94AA, 0xEED7, 0x94AD, 0xEED8, 0x94AC, + 0xEED9, 0x94AF, 0xEEDA, 0x94B0, 0xEEDB, 0x94B2, 0xEEDC, 0x94B4, + 0xEEDD, 0x94B6, 0xEEDE, 0x94B7, 0xEEDF, 0x94B8, 0xEEE0, 0x94B9, + 0xEEE1, 0x94BA, 0xEEE2, 0x94BC, 0xEEE3, 0x94BD, 0xEEE4, 0x94BF, + 0xEEE5, 0x94C4, 0xEEE6, 0x94C8, 0xEEE7, 0x94C9, 0xEEE8, 0x94CA, + 0xEEE9, 0x94CB, 0xEEEA, 0x94CC, 0xEEEB, 0x94CD, 0xEEEC, 0x94CE, + 0xEEED, 0x94D0, 0xEEEE, 0x94D1, 0xEEEF, 0x94D2, 0xEEF0, 0x94D5, + 0xEEF1, 0x94D6, 0xEEF2, 0x94D7, 0xEEF3, 0x94D9, 0xEEF4, 0x94D8, + 0xEEF5, 0x94DB, 0xEEF6, 0x94DE, 0xEEF7, 0x94DF, 0xEEF8, 0x94E0, + 0xEEF9, 0x94E2, 0xEEFA, 0x94E4, 0xEEFB, 0x94E5, 0xEEFC, 0x94E7, + 0xEEFD, 0x94E8, 0xEEFE, 0x94EA, 0xEF40, 0x986F, 0xEF41, 0x9870, + 0xEF42, 0x9871, 0xEF43, 0x9872, 0xEF44, 0x9873, 0xEF45, 0x9874, + 0xEF46, 0x988B, 0xEF47, 0x988E, 0xEF48, 0x9892, 0xEF49, 0x9895, + 0xEF4A, 0x9899, 0xEF4B, 0x98A3, 0xEF4C, 0x98A8, 0xEF4D, 0x98A9, + 0xEF4E, 0x98AA, 0xEF4F, 0x98AB, 0xEF50, 0x98AC, 0xEF51, 0x98AD, + 0xEF52, 0x98AE, 0xEF53, 0x98AF, 0xEF54, 0x98B0, 0xEF55, 0x98B1, + 0xEF56, 0x98B2, 0xEF57, 0x98B3, 0xEF58, 0x98B4, 0xEF59, 0x98B5, + 0xEF5A, 0x98B6, 0xEF5B, 0x98B7, 0xEF5C, 0x98B8, 0xEF5D, 0x98B9, + 0xEF5E, 0x98BA, 0xEF5F, 0x98BB, 0xEF60, 0x98BC, 0xEF61, 0x98BD, + 0xEF62, 0x98BE, 0xEF63, 0x98BF, 0xEF64, 0x98C0, 0xEF65, 0x98C1, + 0xEF66, 0x98C2, 0xEF67, 0x98C3, 0xEF68, 0x98C4, 0xEF69, 0x98C5, + 0xEF6A, 0x98C6, 0xEF6B, 0x98C7, 0xEF6C, 0x98C8, 0xEF6D, 0x98C9, + 0xEF6E, 0x98CA, 0xEF6F, 0x98CB, 0xEF70, 0x98CC, 0xEF71, 0x98CD, + 0xEF72, 0x98CF, 0xEF73, 0x98D0, 0xEF74, 0x98D4, 0xEF75, 0x98D6, + 0xEF76, 0x98D7, 0xEF77, 0x98DB, 0xEF78, 0x98DC, 0xEF79, 0x98DD, + 0xEF7A, 0x98E0, 0xEF7B, 0x98E1, 0xEF7C, 0x98E2, 0xEF7D, 0x98E3, + 0xEF7E, 0x98E4, 0xEF80, 0x98E5, 0xEF81, 0x98E6, 0xEF82, 0x98E9, + 0xEF83, 0x98EA, 0xEF84, 0x98EB, 0xEF85, 0x98EC, 0xEF86, 0x98ED, + 0xEF87, 0x98EE, 0xEF88, 0x98EF, 0xEF89, 0x98F0, 0xEF8A, 0x98F1, + 0xEF8B, 0x98F2, 0xEF8C, 0x98F3, 0xEF8D, 0x98F4, 0xEF8E, 0x98F5, + 0xEF8F, 0x98F6, 0xEF90, 0x98F7, 0xEF91, 0x98F8, 0xEF92, 0x98F9, + 0xEF93, 0x98FA, 0xEF94, 0x98FB, 0xEF95, 0x98FC, 0xEF96, 0x98FD, + 0xEF97, 0x98FE, 0xEF98, 0x98FF, 0xEF99, 0x9900, 0xEF9A, 0x9901, + 0xEF9B, 0x9902, 0xEF9C, 0x9903, 0xEF9D, 0x9904, 0xEF9E, 0x9905, + 0xEF9F, 0x9906, 0xEFA0, 0x9907, 0xEFA1, 0x94E9, 0xEFA2, 0x94EB, + 0xEFA3, 0x94EE, 0xEFA4, 0x94EF, 0xEFA5, 0x94F3, 0xEFA6, 0x94F4, + 0xEFA7, 0x94F5, 0xEFA8, 0x94F7, 0xEFA9, 0x94F9, 0xEFAA, 0x94FC, + 0xEFAB, 0x94FD, 0xEFAC, 0x94FF, 0xEFAD, 0x9503, 0xEFAE, 0x9502, + 0xEFAF, 0x9506, 0xEFB0, 0x9507, 0xEFB1, 0x9509, 0xEFB2, 0x950A, + 0xEFB3, 0x950D, 0xEFB4, 0x950E, 0xEFB5, 0x950F, 0xEFB6, 0x9512, + 0xEFB7, 0x9513, 0xEFB8, 0x9514, 0xEFB9, 0x9515, 0xEFBA, 0x9516, + 0xEFBB, 0x9518, 0xEFBC, 0x951B, 0xEFBD, 0x951D, 0xEFBE, 0x951E, + 0xEFBF, 0x951F, 0xEFC0, 0x9522, 0xEFC1, 0x952A, 0xEFC2, 0x952B, + 0xEFC3, 0x9529, 0xEFC4, 0x952C, 0xEFC5, 0x9531, 0xEFC6, 0x9532, + 0xEFC7, 0x9534, 0xEFC8, 0x9536, 0xEFC9, 0x9537, 0xEFCA, 0x9538, + 0xEFCB, 0x953C, 0xEFCC, 0x953E, 0xEFCD, 0x953F, 0xEFCE, 0x9542, + 0xEFCF, 0x9535, 0xEFD0, 0x9544, 0xEFD1, 0x9545, 0xEFD2, 0x9546, + 0xEFD3, 0x9549, 0xEFD4, 0x954C, 0xEFD5, 0x954E, 0xEFD6, 0x954F, + 0xEFD7, 0x9552, 0xEFD8, 0x9553, 0xEFD9, 0x9554, 0xEFDA, 0x9556, + 0xEFDB, 0x9557, 0xEFDC, 0x9558, 0xEFDD, 0x9559, 0xEFDE, 0x955B, + 0xEFDF, 0x955E, 0xEFE0, 0x955F, 0xEFE1, 0x955D, 0xEFE2, 0x9561, + 0xEFE3, 0x9562, 0xEFE4, 0x9564, 0xEFE5, 0x9565, 0xEFE6, 0x9566, + 0xEFE7, 0x9567, 0xEFE8, 0x9568, 0xEFE9, 0x9569, 0xEFEA, 0x956A, + 0xEFEB, 0x956B, 0xEFEC, 0x956C, 0xEFED, 0x956F, 0xEFEE, 0x9571, + 0xEFEF, 0x9572, 0xEFF0, 0x9573, 0xEFF1, 0x953A, 0xEFF2, 0x77E7, + 0xEFF3, 0x77EC, 0xEFF4, 0x96C9, 0xEFF5, 0x79D5, 0xEFF6, 0x79ED, + 0xEFF7, 0x79E3, 0xEFF8, 0x79EB, 0xEFF9, 0x7A06, 0xEFFA, 0x5D47, + 0xEFFB, 0x7A03, 0xEFFC, 0x7A02, 0xEFFD, 0x7A1E, 0xEFFE, 0x7A14, + 0xF040, 0x9908, 0xF041, 0x9909, 0xF042, 0x990A, 0xF043, 0x990B, + 0xF044, 0x990C, 0xF045, 0x990E, 0xF046, 0x990F, 0xF047, 0x9911, + 0xF048, 0x9912, 0xF049, 0x9913, 0xF04A, 0x9914, 0xF04B, 0x9915, + 0xF04C, 0x9916, 0xF04D, 0x9917, 0xF04E, 0x9918, 0xF04F, 0x9919, + 0xF050, 0x991A, 0xF051, 0x991B, 0xF052, 0x991C, 0xF053, 0x991D, + 0xF054, 0x991E, 0xF055, 0x991F, 0xF056, 0x9920, 0xF057, 0x9921, + 0xF058, 0x9922, 0xF059, 0x9923, 0xF05A, 0x9924, 0xF05B, 0x9925, + 0xF05C, 0x9926, 0xF05D, 0x9927, 0xF05E, 0x9928, 0xF05F, 0x9929, + 0xF060, 0x992A, 0xF061, 0x992B, 0xF062, 0x992C, 0xF063, 0x992D, + 0xF064, 0x992F, 0xF065, 0x9930, 0xF066, 0x9931, 0xF067, 0x9932, + 0xF068, 0x9933, 0xF069, 0x9934, 0xF06A, 0x9935, 0xF06B, 0x9936, + 0xF06C, 0x9937, 0xF06D, 0x9938, 0xF06E, 0x9939, 0xF06F, 0x993A, + 0xF070, 0x993B, 0xF071, 0x993C, 0xF072, 0x993D, 0xF073, 0x993E, + 0xF074, 0x993F, 0xF075, 0x9940, 0xF076, 0x9941, 0xF077, 0x9942, + 0xF078, 0x9943, 0xF079, 0x9944, 0xF07A, 0x9945, 0xF07B, 0x9946, + 0xF07C, 0x9947, 0xF07D, 0x9948, 0xF07E, 0x9949, 0xF080, 0x994A, + 0xF081, 0x994B, 0xF082, 0x994C, 0xF083, 0x994D, 0xF084, 0x994E, + 0xF085, 0x994F, 0xF086, 0x9950, 0xF087, 0x9951, 0xF088, 0x9952, + 0xF089, 0x9953, 0xF08A, 0x9956, 0xF08B, 0x9957, 0xF08C, 0x9958, + 0xF08D, 0x9959, 0xF08E, 0x995A, 0xF08F, 0x995B, 0xF090, 0x995C, + 0xF091, 0x995D, 0xF092, 0x995E, 0xF093, 0x995F, 0xF094, 0x9960, + 0xF095, 0x9961, 0xF096, 0x9962, 0xF097, 0x9964, 0xF098, 0x9966, + 0xF099, 0x9973, 0xF09A, 0x9978, 0xF09B, 0x9979, 0xF09C, 0x997B, + 0xF09D, 0x997E, 0xF09E, 0x9982, 0xF09F, 0x9983, 0xF0A0, 0x9989, + 0xF0A1, 0x7A39, 0xF0A2, 0x7A37, 0xF0A3, 0x7A51, 0xF0A4, 0x9ECF, + 0xF0A5, 0x99A5, 0xF0A6, 0x7A70, 0xF0A7, 0x7688, 0xF0A8, 0x768E, + 0xF0A9, 0x7693, 0xF0AA, 0x7699, 0xF0AB, 0x76A4, 0xF0AC, 0x74DE, + 0xF0AD, 0x74E0, 0xF0AE, 0x752C, 0xF0AF, 0x9E20, 0xF0B0, 0x9E22, + 0xF0B1, 0x9E28, 0xF0B2, 0x9E29, 0xF0B3, 0x9E2A, 0xF0B4, 0x9E2B, + 0xF0B5, 0x9E2C, 0xF0B6, 0x9E32, 0xF0B7, 0x9E31, 0xF0B8, 0x9E36, + 0xF0B9, 0x9E38, 0xF0BA, 0x9E37, 0xF0BB, 0x9E39, 0xF0BC, 0x9E3A, + 0xF0BD, 0x9E3E, 0xF0BE, 0x9E41, 0xF0BF, 0x9E42, 0xF0C0, 0x9E44, + 0xF0C1, 0x9E46, 0xF0C2, 0x9E47, 0xF0C3, 0x9E48, 0xF0C4, 0x9E49, + 0xF0C5, 0x9E4B, 0xF0C6, 0x9E4C, 0xF0C7, 0x9E4E, 0xF0C8, 0x9E51, + 0xF0C9, 0x9E55, 0xF0CA, 0x9E57, 0xF0CB, 0x9E5A, 0xF0CC, 0x9E5B, + 0xF0CD, 0x9E5C, 0xF0CE, 0x9E5E, 0xF0CF, 0x9E63, 0xF0D0, 0x9E66, + 0xF0D1, 0x9E67, 0xF0D2, 0x9E68, 0xF0D3, 0x9E69, 0xF0D4, 0x9E6A, + 0xF0D5, 0x9E6B, 0xF0D6, 0x9E6C, 0xF0D7, 0x9E71, 0xF0D8, 0x9E6D, + 0xF0D9, 0x9E73, 0xF0DA, 0x7592, 0xF0DB, 0x7594, 0xF0DC, 0x7596, + 0xF0DD, 0x75A0, 0xF0DE, 0x759D, 0xF0DF, 0x75AC, 0xF0E0, 0x75A3, + 0xF0E1, 0x75B3, 0xF0E2, 0x75B4, 0xF0E3, 0x75B8, 0xF0E4, 0x75C4, + 0xF0E5, 0x75B1, 0xF0E6, 0x75B0, 0xF0E7, 0x75C3, 0xF0E8, 0x75C2, + 0xF0E9, 0x75D6, 0xF0EA, 0x75CD, 0xF0EB, 0x75E3, 0xF0EC, 0x75E8, + 0xF0ED, 0x75E6, 0xF0EE, 0x75E4, 0xF0EF, 0x75EB, 0xF0F0, 0x75E7, + 0xF0F1, 0x7603, 0xF0F2, 0x75F1, 0xF0F3, 0x75FC, 0xF0F4, 0x75FF, + 0xF0F5, 0x7610, 0xF0F6, 0x7600, 0xF0F7, 0x7605, 0xF0F8, 0x760C, + 0xF0F9, 0x7617, 0xF0FA, 0x760A, 0xF0FB, 0x7625, 0xF0FC, 0x7618, + 0xF0FD, 0x7615, 0xF0FE, 0x7619, 0xF140, 0x998C, 0xF141, 0x998E, + 0xF142, 0x999A, 0xF143, 0x999B, 0xF144, 0x999C, 0xF145, 0x999D, + 0xF146, 0x999E, 0xF147, 0x999F, 0xF148, 0x99A0, 0xF149, 0x99A1, + 0xF14A, 0x99A2, 0xF14B, 0x99A3, 0xF14C, 0x99A4, 0xF14D, 0x99A6, + 0xF14E, 0x99A7, 0xF14F, 0x99A9, 0xF150, 0x99AA, 0xF151, 0x99AB, + 0xF152, 0x99AC, 0xF153, 0x99AD, 0xF154, 0x99AE, 0xF155, 0x99AF, + 0xF156, 0x99B0, 0xF157, 0x99B1, 0xF158, 0x99B2, 0xF159, 0x99B3, + 0xF15A, 0x99B4, 0xF15B, 0x99B5, 0xF15C, 0x99B6, 0xF15D, 0x99B7, + 0xF15E, 0x99B8, 0xF15F, 0x99B9, 0xF160, 0x99BA, 0xF161, 0x99BB, + 0xF162, 0x99BC, 0xF163, 0x99BD, 0xF164, 0x99BE, 0xF165, 0x99BF, + 0xF166, 0x99C0, 0xF167, 0x99C1, 0xF168, 0x99C2, 0xF169, 0x99C3, + 0xF16A, 0x99C4, 0xF16B, 0x99C5, 0xF16C, 0x99C6, 0xF16D, 0x99C7, + 0xF16E, 0x99C8, 0xF16F, 0x99C9, 0xF170, 0x99CA, 0xF171, 0x99CB, + 0xF172, 0x99CC, 0xF173, 0x99CD, 0xF174, 0x99CE, 0xF175, 0x99CF, + 0xF176, 0x99D0, 0xF177, 0x99D1, 0xF178, 0x99D2, 0xF179, 0x99D3, + 0xF17A, 0x99D4, 0xF17B, 0x99D5, 0xF17C, 0x99D6, 0xF17D, 0x99D7, + 0xF17E, 0x99D8, 0xF180, 0x99D9, 0xF181, 0x99DA, 0xF182, 0x99DB, + 0xF183, 0x99DC, 0xF184, 0x99DD, 0xF185, 0x99DE, 0xF186, 0x99DF, + 0xF187, 0x99E0, 0xF188, 0x99E1, 0xF189, 0x99E2, 0xF18A, 0x99E3, + 0xF18B, 0x99E4, 0xF18C, 0x99E5, 0xF18D, 0x99E6, 0xF18E, 0x99E7, + 0xF18F, 0x99E8, 0xF190, 0x99E9, 0xF191, 0x99EA, 0xF192, 0x99EB, + 0xF193, 0x99EC, 0xF194, 0x99ED, 0xF195, 0x99EE, 0xF196, 0x99EF, + 0xF197, 0x99F0, 0xF198, 0x99F1, 0xF199, 0x99F2, 0xF19A, 0x99F3, + 0xF19B, 0x99F4, 0xF19C, 0x99F5, 0xF19D, 0x99F6, 0xF19E, 0x99F7, + 0xF19F, 0x99F8, 0xF1A0, 0x99F9, 0xF1A1, 0x761B, 0xF1A2, 0x763C, + 0xF1A3, 0x7622, 0xF1A4, 0x7620, 0xF1A5, 0x7640, 0xF1A6, 0x762D, + 0xF1A7, 0x7630, 0xF1A8, 0x763F, 0xF1A9, 0x7635, 0xF1AA, 0x7643, + 0xF1AB, 0x763E, 0xF1AC, 0x7633, 0xF1AD, 0x764D, 0xF1AE, 0x765E, + 0xF1AF, 0x7654, 0xF1B0, 0x765C, 0xF1B1, 0x7656, 0xF1B2, 0x766B, + 0xF1B3, 0x766F, 0xF1B4, 0x7FCA, 0xF1B5, 0x7AE6, 0xF1B6, 0x7A78, + 0xF1B7, 0x7A79, 0xF1B8, 0x7A80, 0xF1B9, 0x7A86, 0xF1BA, 0x7A88, + 0xF1BB, 0x7A95, 0xF1BC, 0x7AA6, 0xF1BD, 0x7AA0, 0xF1BE, 0x7AAC, + 0xF1BF, 0x7AA8, 0xF1C0, 0x7AAD, 0xF1C1, 0x7AB3, 0xF1C2, 0x8864, + 0xF1C3, 0x8869, 0xF1C4, 0x8872, 0xF1C5, 0x887D, 0xF1C6, 0x887F, + 0xF1C7, 0x8882, 0xF1C8, 0x88A2, 0xF1C9, 0x88C6, 0xF1CA, 0x88B7, + 0xF1CB, 0x88BC, 0xF1CC, 0x88C9, 0xF1CD, 0x88E2, 0xF1CE, 0x88CE, + 0xF1CF, 0x88E3, 0xF1D0, 0x88E5, 0xF1D1, 0x88F1, 0xF1D2, 0x891A, + 0xF1D3, 0x88FC, 0xF1D4, 0x88E8, 0xF1D5, 0x88FE, 0xF1D6, 0x88F0, + 0xF1D7, 0x8921, 0xF1D8, 0x8919, 0xF1D9, 0x8913, 0xF1DA, 0x891B, + 0xF1DB, 0x890A, 0xF1DC, 0x8934, 0xF1DD, 0x892B, 0xF1DE, 0x8936, + 0xF1DF, 0x8941, 0xF1E0, 0x8966, 0xF1E1, 0x897B, 0xF1E2, 0x758B, + 0xF1E3, 0x80E5, 0xF1E4, 0x76B2, 0xF1E5, 0x76B4, 0xF1E6, 0x77DC, + 0xF1E7, 0x8012, 0xF1E8, 0x8014, 0xF1E9, 0x8016, 0xF1EA, 0x801C, + 0xF1EB, 0x8020, 0xF1EC, 0x8022, 0xF1ED, 0x8025, 0xF1EE, 0x8026, + 0xF1EF, 0x8027, 0xF1F0, 0x8029, 0xF1F1, 0x8028, 0xF1F2, 0x8031, + 0xF1F3, 0x800B, 0xF1F4, 0x8035, 0xF1F5, 0x8043, 0xF1F6, 0x8046, + 0xF1F7, 0x804D, 0xF1F8, 0x8052, 0xF1F9, 0x8069, 0xF1FA, 0x8071, + 0xF1FB, 0x8983, 0xF1FC, 0x9878, 0xF1FD, 0x9880, 0xF1FE, 0x9883, + 0xF240, 0x99FA, 0xF241, 0x99FB, 0xF242, 0x99FC, 0xF243, 0x99FD, + 0xF244, 0x99FE, 0xF245, 0x99FF, 0xF246, 0x9A00, 0xF247, 0x9A01, + 0xF248, 0x9A02, 0xF249, 0x9A03, 0xF24A, 0x9A04, 0xF24B, 0x9A05, + 0xF24C, 0x9A06, 0xF24D, 0x9A07, 0xF24E, 0x9A08, 0xF24F, 0x9A09, + 0xF250, 0x9A0A, 0xF251, 0x9A0B, 0xF252, 0x9A0C, 0xF253, 0x9A0D, + 0xF254, 0x9A0E, 0xF255, 0x9A0F, 0xF256, 0x9A10, 0xF257, 0x9A11, + 0xF258, 0x9A12, 0xF259, 0x9A13, 0xF25A, 0x9A14, 0xF25B, 0x9A15, + 0xF25C, 0x9A16, 0xF25D, 0x9A17, 0xF25E, 0x9A18, 0xF25F, 0x9A19, + 0xF260, 0x9A1A, 0xF261, 0x9A1B, 0xF262, 0x9A1C, 0xF263, 0x9A1D, + 0xF264, 0x9A1E, 0xF265, 0x9A1F, 0xF266, 0x9A20, 0xF267, 0x9A21, + 0xF268, 0x9A22, 0xF269, 0x9A23, 0xF26A, 0x9A24, 0xF26B, 0x9A25, + 0xF26C, 0x9A26, 0xF26D, 0x9A27, 0xF26E, 0x9A28, 0xF26F, 0x9A29, + 0xF270, 0x9A2A, 0xF271, 0x9A2B, 0xF272, 0x9A2C, 0xF273, 0x9A2D, + 0xF274, 0x9A2E, 0xF275, 0x9A2F, 0xF276, 0x9A30, 0xF277, 0x9A31, + 0xF278, 0x9A32, 0xF279, 0x9A33, 0xF27A, 0x9A34, 0xF27B, 0x9A35, + 0xF27C, 0x9A36, 0xF27D, 0x9A37, 0xF27E, 0x9A38, 0xF280, 0x9A39, + 0xF281, 0x9A3A, 0xF282, 0x9A3B, 0xF283, 0x9A3C, 0xF284, 0x9A3D, + 0xF285, 0x9A3E, 0xF286, 0x9A3F, 0xF287, 0x9A40, 0xF288, 0x9A41, + 0xF289, 0x9A42, 0xF28A, 0x9A43, 0xF28B, 0x9A44, 0xF28C, 0x9A45, + 0xF28D, 0x9A46, 0xF28E, 0x9A47, 0xF28F, 0x9A48, 0xF290, 0x9A49, + 0xF291, 0x9A4A, 0xF292, 0x9A4B, 0xF293, 0x9A4C, 0xF294, 0x9A4D, + 0xF295, 0x9A4E, 0xF296, 0x9A4F, 0xF297, 0x9A50, 0xF298, 0x9A51, + 0xF299, 0x9A52, 0xF29A, 0x9A53, 0xF29B, 0x9A54, 0xF29C, 0x9A55, + 0xF29D, 0x9A56, 0xF29E, 0x9A57, 0xF29F, 0x9A58, 0xF2A0, 0x9A59, + 0xF2A1, 0x9889, 0xF2A2, 0x988C, 0xF2A3, 0x988D, 0xF2A4, 0x988F, + 0xF2A5, 0x9894, 0xF2A6, 0x989A, 0xF2A7, 0x989B, 0xF2A8, 0x989E, + 0xF2A9, 0x989F, 0xF2AA, 0x98A1, 0xF2AB, 0x98A2, 0xF2AC, 0x98A5, + 0xF2AD, 0x98A6, 0xF2AE, 0x864D, 0xF2AF, 0x8654, 0xF2B0, 0x866C, + 0xF2B1, 0x866E, 0xF2B2, 0x867F, 0xF2B3, 0x867A, 0xF2B4, 0x867C, + 0xF2B5, 0x867B, 0xF2B6, 0x86A8, 0xF2B7, 0x868D, 0xF2B8, 0x868B, + 0xF2B9, 0x86AC, 0xF2BA, 0x869D, 0xF2BB, 0x86A7, 0xF2BC, 0x86A3, + 0xF2BD, 0x86AA, 0xF2BE, 0x8693, 0xF2BF, 0x86A9, 0xF2C0, 0x86B6, + 0xF2C1, 0x86C4, 0xF2C2, 0x86B5, 0xF2C3, 0x86CE, 0xF2C4, 0x86B0, + 0xF2C5, 0x86BA, 0xF2C6, 0x86B1, 0xF2C7, 0x86AF, 0xF2C8, 0x86C9, + 0xF2C9, 0x86CF, 0xF2CA, 0x86B4, 0xF2CB, 0x86E9, 0xF2CC, 0x86F1, + 0xF2CD, 0x86F2, 0xF2CE, 0x86ED, 0xF2CF, 0x86F3, 0xF2D0, 0x86D0, + 0xF2D1, 0x8713, 0xF2D2, 0x86DE, 0xF2D3, 0x86F4, 0xF2D4, 0x86DF, + 0xF2D5, 0x86D8, 0xF2D6, 0x86D1, 0xF2D7, 0x8703, 0xF2D8, 0x8707, + 0xF2D9, 0x86F8, 0xF2DA, 0x8708, 0xF2DB, 0x870A, 0xF2DC, 0x870D, + 0xF2DD, 0x8709, 0xF2DE, 0x8723, 0xF2DF, 0x873B, 0xF2E0, 0x871E, + 0xF2E1, 0x8725, 0xF2E2, 0x872E, 0xF2E3, 0x871A, 0xF2E4, 0x873E, + 0xF2E5, 0x8748, 0xF2E6, 0x8734, 0xF2E7, 0x8731, 0xF2E8, 0x8729, + 0xF2E9, 0x8737, 0xF2EA, 0x873F, 0xF2EB, 0x8782, 0xF2EC, 0x8722, + 0xF2ED, 0x877D, 0xF2EE, 0x877E, 0xF2EF, 0x877B, 0xF2F0, 0x8760, + 0xF2F1, 0x8770, 0xF2F2, 0x874C, 0xF2F3, 0x876E, 0xF2F4, 0x878B, + 0xF2F5, 0x8753, 0xF2F6, 0x8763, 0xF2F7, 0x877C, 0xF2F8, 0x8764, + 0xF2F9, 0x8759, 0xF2FA, 0x8765, 0xF2FB, 0x8793, 0xF2FC, 0x87AF, + 0xF2FD, 0x87A8, 0xF2FE, 0x87D2, 0xF340, 0x9A5A, 0xF341, 0x9A5B, + 0xF342, 0x9A5C, 0xF343, 0x9A5D, 0xF344, 0x9A5E, 0xF345, 0x9A5F, + 0xF346, 0x9A60, 0xF347, 0x9A61, 0xF348, 0x9A62, 0xF349, 0x9A63, + 0xF34A, 0x9A64, 0xF34B, 0x9A65, 0xF34C, 0x9A66, 0xF34D, 0x9A67, + 0xF34E, 0x9A68, 0xF34F, 0x9A69, 0xF350, 0x9A6A, 0xF351, 0x9A6B, + 0xF352, 0x9A72, 0xF353, 0x9A83, 0xF354, 0x9A89, 0xF355, 0x9A8D, + 0xF356, 0x9A8E, 0xF357, 0x9A94, 0xF358, 0x9A95, 0xF359, 0x9A99, + 0xF35A, 0x9AA6, 0xF35B, 0x9AA9, 0xF35C, 0x9AAA, 0xF35D, 0x9AAB, + 0xF35E, 0x9AAC, 0xF35F, 0x9AAD, 0xF360, 0x9AAE, 0xF361, 0x9AAF, + 0xF362, 0x9AB2, 0xF363, 0x9AB3, 0xF364, 0x9AB4, 0xF365, 0x9AB5, + 0xF366, 0x9AB9, 0xF367, 0x9ABB, 0xF368, 0x9ABD, 0xF369, 0x9ABE, + 0xF36A, 0x9ABF, 0xF36B, 0x9AC3, 0xF36C, 0x9AC4, 0xF36D, 0x9AC6, + 0xF36E, 0x9AC7, 0xF36F, 0x9AC8, 0xF370, 0x9AC9, 0xF371, 0x9ACA, + 0xF372, 0x9ACD, 0xF373, 0x9ACE, 0xF374, 0x9ACF, 0xF375, 0x9AD0, + 0xF376, 0x9AD2, 0xF377, 0x9AD4, 0xF378, 0x9AD5, 0xF379, 0x9AD6, + 0xF37A, 0x9AD7, 0xF37B, 0x9AD9, 0xF37C, 0x9ADA, 0xF37D, 0x9ADB, + 0xF37E, 0x9ADC, 0xF380, 0x9ADD, 0xF381, 0x9ADE, 0xF382, 0x9AE0, + 0xF383, 0x9AE2, 0xF384, 0x9AE3, 0xF385, 0x9AE4, 0xF386, 0x9AE5, + 0xF387, 0x9AE7, 0xF388, 0x9AE8, 0xF389, 0x9AE9, 0xF38A, 0x9AEA, + 0xF38B, 0x9AEC, 0xF38C, 0x9AEE, 0xF38D, 0x9AF0, 0xF38E, 0x9AF1, + 0xF38F, 0x9AF2, 0xF390, 0x9AF3, 0xF391, 0x9AF4, 0xF392, 0x9AF5, + 0xF393, 0x9AF6, 0xF394, 0x9AF7, 0xF395, 0x9AF8, 0xF396, 0x9AFA, + 0xF397, 0x9AFC, 0xF398, 0x9AFD, 0xF399, 0x9AFE, 0xF39A, 0x9AFF, + 0xF39B, 0x9B00, 0xF39C, 0x9B01, 0xF39D, 0x9B02, 0xF39E, 0x9B04, + 0xF39F, 0x9B05, 0xF3A0, 0x9B06, 0xF3A1, 0x87C6, 0xF3A2, 0x8788, + 0xF3A3, 0x8785, 0xF3A4, 0x87AD, 0xF3A5, 0x8797, 0xF3A6, 0x8783, + 0xF3A7, 0x87AB, 0xF3A8, 0x87E5, 0xF3A9, 0x87AC, 0xF3AA, 0x87B5, + 0xF3AB, 0x87B3, 0xF3AC, 0x87CB, 0xF3AD, 0x87D3, 0xF3AE, 0x87BD, + 0xF3AF, 0x87D1, 0xF3B0, 0x87C0, 0xF3B1, 0x87CA, 0xF3B2, 0x87DB, + 0xF3B3, 0x87EA, 0xF3B4, 0x87E0, 0xF3B5, 0x87EE, 0xF3B6, 0x8816, + 0xF3B7, 0x8813, 0xF3B8, 0x87FE, 0xF3B9, 0x880A, 0xF3BA, 0x881B, + 0xF3BB, 0x8821, 0xF3BC, 0x8839, 0xF3BD, 0x883C, 0xF3BE, 0x7F36, + 0xF3BF, 0x7F42, 0xF3C0, 0x7F44, 0xF3C1, 0x7F45, 0xF3C2, 0x8210, + 0xF3C3, 0x7AFA, 0xF3C4, 0x7AFD, 0xF3C5, 0x7B08, 0xF3C6, 0x7B03, + 0xF3C7, 0x7B04, 0xF3C8, 0x7B15, 0xF3C9, 0x7B0A, 0xF3CA, 0x7B2B, + 0xF3CB, 0x7B0F, 0xF3CC, 0x7B47, 0xF3CD, 0x7B38, 0xF3CE, 0x7B2A, + 0xF3CF, 0x7B19, 0xF3D0, 0x7B2E, 0xF3D1, 0x7B31, 0xF3D2, 0x7B20, + 0xF3D3, 0x7B25, 0xF3D4, 0x7B24, 0xF3D5, 0x7B33, 0xF3D6, 0x7B3E, + 0xF3D7, 0x7B1E, 0xF3D8, 0x7B58, 0xF3D9, 0x7B5A, 0xF3DA, 0x7B45, + 0xF3DB, 0x7B75, 0xF3DC, 0x7B4C, 0xF3DD, 0x7B5D, 0xF3DE, 0x7B60, + 0xF3DF, 0x7B6E, 0xF3E0, 0x7B7B, 0xF3E1, 0x7B62, 0xF3E2, 0x7B72, + 0xF3E3, 0x7B71, 0xF3E4, 0x7B90, 0xF3E5, 0x7BA6, 0xF3E6, 0x7BA7, + 0xF3E7, 0x7BB8, 0xF3E8, 0x7BAC, 0xF3E9, 0x7B9D, 0xF3EA, 0x7BA8, + 0xF3EB, 0x7B85, 0xF3EC, 0x7BAA, 0xF3ED, 0x7B9C, 0xF3EE, 0x7BA2, + 0xF3EF, 0x7BAB, 0xF3F0, 0x7BB4, 0xF3F1, 0x7BD1, 0xF3F2, 0x7BC1, + 0xF3F3, 0x7BCC, 0xF3F4, 0x7BDD, 0xF3F5, 0x7BDA, 0xF3F6, 0x7BE5, + 0xF3F7, 0x7BE6, 0xF3F8, 0x7BEA, 0xF3F9, 0x7C0C, 0xF3FA, 0x7BFE, + 0xF3FB, 0x7BFC, 0xF3FC, 0x7C0F, 0xF3FD, 0x7C16, 0xF3FE, 0x7C0B, + 0xF440, 0x9B07, 0xF441, 0x9B09, 0xF442, 0x9B0A, 0xF443, 0x9B0B, + 0xF444, 0x9B0C, 0xF445, 0x9B0D, 0xF446, 0x9B0E, 0xF447, 0x9B10, + 0xF448, 0x9B11, 0xF449, 0x9B12, 0xF44A, 0x9B14, 0xF44B, 0x9B15, + 0xF44C, 0x9B16, 0xF44D, 0x9B17, 0xF44E, 0x9B18, 0xF44F, 0x9B19, + 0xF450, 0x9B1A, 0xF451, 0x9B1B, 0xF452, 0x9B1C, 0xF453, 0x9B1D, + 0xF454, 0x9B1E, 0xF455, 0x9B20, 0xF456, 0x9B21, 0xF457, 0x9B22, + 0xF458, 0x9B24, 0xF459, 0x9B25, 0xF45A, 0x9B26, 0xF45B, 0x9B27, + 0xF45C, 0x9B28, 0xF45D, 0x9B29, 0xF45E, 0x9B2A, 0xF45F, 0x9B2B, + 0xF460, 0x9B2C, 0xF461, 0x9B2D, 0xF462, 0x9B2E, 0xF463, 0x9B30, + 0xF464, 0x9B31, 0xF465, 0x9B33, 0xF466, 0x9B34, 0xF467, 0x9B35, + 0xF468, 0x9B36, 0xF469, 0x9B37, 0xF46A, 0x9B38, 0xF46B, 0x9B39, + 0xF46C, 0x9B3A, 0xF46D, 0x9B3D, 0xF46E, 0x9B3E, 0xF46F, 0x9B3F, + 0xF470, 0x9B40, 0xF471, 0x9B46, 0xF472, 0x9B4A, 0xF473, 0x9B4B, + 0xF474, 0x9B4C, 0xF475, 0x9B4E, 0xF476, 0x9B50, 0xF477, 0x9B52, + 0xF478, 0x9B53, 0xF479, 0x9B55, 0xF47A, 0x9B56, 0xF47B, 0x9B57, + 0xF47C, 0x9B58, 0xF47D, 0x9B59, 0xF47E, 0x9B5A, 0xF480, 0x9B5B, + 0xF481, 0x9B5C, 0xF482, 0x9B5D, 0xF483, 0x9B5E, 0xF484, 0x9B5F, + 0xF485, 0x9B60, 0xF486, 0x9B61, 0xF487, 0x9B62, 0xF488, 0x9B63, + 0xF489, 0x9B64, 0xF48A, 0x9B65, 0xF48B, 0x9B66, 0xF48C, 0x9B67, + 0xF48D, 0x9B68, 0xF48E, 0x9B69, 0xF48F, 0x9B6A, 0xF490, 0x9B6B, + 0xF491, 0x9B6C, 0xF492, 0x9B6D, 0xF493, 0x9B6E, 0xF494, 0x9B6F, + 0xF495, 0x9B70, 0xF496, 0x9B71, 0xF497, 0x9B72, 0xF498, 0x9B73, + 0xF499, 0x9B74, 0xF49A, 0x9B75, 0xF49B, 0x9B76, 0xF49C, 0x9B77, + 0xF49D, 0x9B78, 0xF49E, 0x9B79, 0xF49F, 0x9B7A, 0xF4A0, 0x9B7B, + 0xF4A1, 0x7C1F, 0xF4A2, 0x7C2A, 0xF4A3, 0x7C26, 0xF4A4, 0x7C38, + 0xF4A5, 0x7C41, 0xF4A6, 0x7C40, 0xF4A7, 0x81FE, 0xF4A8, 0x8201, + 0xF4A9, 0x8202, 0xF4AA, 0x8204, 0xF4AB, 0x81EC, 0xF4AC, 0x8844, + 0xF4AD, 0x8221, 0xF4AE, 0x8222, 0xF4AF, 0x8223, 0xF4B0, 0x822D, + 0xF4B1, 0x822F, 0xF4B2, 0x8228, 0xF4B3, 0x822B, 0xF4B4, 0x8238, + 0xF4B5, 0x823B, 0xF4B6, 0x8233, 0xF4B7, 0x8234, 0xF4B8, 0x823E, + 0xF4B9, 0x8244, 0xF4BA, 0x8249, 0xF4BB, 0x824B, 0xF4BC, 0x824F, + 0xF4BD, 0x825A, 0xF4BE, 0x825F, 0xF4BF, 0x8268, 0xF4C0, 0x887E, + 0xF4C1, 0x8885, 0xF4C2, 0x8888, 0xF4C3, 0x88D8, 0xF4C4, 0x88DF, + 0xF4C5, 0x895E, 0xF4C6, 0x7F9D, 0xF4C7, 0x7F9F, 0xF4C8, 0x7FA7, + 0xF4C9, 0x7FAF, 0xF4CA, 0x7FB0, 0xF4CB, 0x7FB2, 0xF4CC, 0x7C7C, + 0xF4CD, 0x6549, 0xF4CE, 0x7C91, 0xF4CF, 0x7C9D, 0xF4D0, 0x7C9C, + 0xF4D1, 0x7C9E, 0xF4D2, 0x7CA2, 0xF4D3, 0x7CB2, 0xF4D4, 0x7CBC, + 0xF4D5, 0x7CBD, 0xF4D6, 0x7CC1, 0xF4D7, 0x7CC7, 0xF4D8, 0x7CCC, + 0xF4D9, 0x7CCD, 0xF4DA, 0x7CC8, 0xF4DB, 0x7CC5, 0xF4DC, 0x7CD7, + 0xF4DD, 0x7CE8, 0xF4DE, 0x826E, 0xF4DF, 0x66A8, 0xF4E0, 0x7FBF, + 0xF4E1, 0x7FCE, 0xF4E2, 0x7FD5, 0xF4E3, 0x7FE5, 0xF4E4, 0x7FE1, + 0xF4E5, 0x7FE6, 0xF4E6, 0x7FE9, 0xF4E7, 0x7FEE, 0xF4E8, 0x7FF3, + 0xF4E9, 0x7CF8, 0xF4EA, 0x7D77, 0xF4EB, 0x7DA6, 0xF4EC, 0x7DAE, + 0xF4ED, 0x7E47, 0xF4EE, 0x7E9B, 0xF4EF, 0x9EB8, 0xF4F0, 0x9EB4, + 0xF4F1, 0x8D73, 0xF4F2, 0x8D84, 0xF4F3, 0x8D94, 0xF4F4, 0x8D91, + 0xF4F5, 0x8DB1, 0xF4F6, 0x8D67, 0xF4F7, 0x8D6D, 0xF4F8, 0x8C47, + 0xF4F9, 0x8C49, 0xF4FA, 0x914A, 0xF4FB, 0x9150, 0xF4FC, 0x914E, + 0xF4FD, 0x914F, 0xF4FE, 0x9164, 0xF540, 0x9B7C, 0xF541, 0x9B7D, + 0xF542, 0x9B7E, 0xF543, 0x9B7F, 0xF544, 0x9B80, 0xF545, 0x9B81, + 0xF546, 0x9B82, 0xF547, 0x9B83, 0xF548, 0x9B84, 0xF549, 0x9B85, + 0xF54A, 0x9B86, 0xF54B, 0x9B87, 0xF54C, 0x9B88, 0xF54D, 0x9B89, + 0xF54E, 0x9B8A, 0xF54F, 0x9B8B, 0xF550, 0x9B8C, 0xF551, 0x9B8D, + 0xF552, 0x9B8E, 0xF553, 0x9B8F, 0xF554, 0x9B90, 0xF555, 0x9B91, + 0xF556, 0x9B92, 0xF557, 0x9B93, 0xF558, 0x9B94, 0xF559, 0x9B95, + 0xF55A, 0x9B96, 0xF55B, 0x9B97, 0xF55C, 0x9B98, 0xF55D, 0x9B99, + 0xF55E, 0x9B9A, 0xF55F, 0x9B9B, 0xF560, 0x9B9C, 0xF561, 0x9B9D, + 0xF562, 0x9B9E, 0xF563, 0x9B9F, 0xF564, 0x9BA0, 0xF565, 0x9BA1, + 0xF566, 0x9BA2, 0xF567, 0x9BA3, 0xF568, 0x9BA4, 0xF569, 0x9BA5, + 0xF56A, 0x9BA6, 0xF56B, 0x9BA7, 0xF56C, 0x9BA8, 0xF56D, 0x9BA9, + 0xF56E, 0x9BAA, 0xF56F, 0x9BAB, 0xF570, 0x9BAC, 0xF571, 0x9BAD, + 0xF572, 0x9BAE, 0xF573, 0x9BAF, 0xF574, 0x9BB0, 0xF575, 0x9BB1, + 0xF576, 0x9BB2, 0xF577, 0x9BB3, 0xF578, 0x9BB4, 0xF579, 0x9BB5, + 0xF57A, 0x9BB6, 0xF57B, 0x9BB7, 0xF57C, 0x9BB8, 0xF57D, 0x9BB9, + 0xF57E, 0x9BBA, 0xF580, 0x9BBB, 0xF581, 0x9BBC, 0xF582, 0x9BBD, + 0xF583, 0x9BBE, 0xF584, 0x9BBF, 0xF585, 0x9BC0, 0xF586, 0x9BC1, + 0xF587, 0x9BC2, 0xF588, 0x9BC3, 0xF589, 0x9BC4, 0xF58A, 0x9BC5, + 0xF58B, 0x9BC6, 0xF58C, 0x9BC7, 0xF58D, 0x9BC8, 0xF58E, 0x9BC9, + 0xF58F, 0x9BCA, 0xF590, 0x9BCB, 0xF591, 0x9BCC, 0xF592, 0x9BCD, + 0xF593, 0x9BCE, 0xF594, 0x9BCF, 0xF595, 0x9BD0, 0xF596, 0x9BD1, + 0xF597, 0x9BD2, 0xF598, 0x9BD3, 0xF599, 0x9BD4, 0xF59A, 0x9BD5, + 0xF59B, 0x9BD6, 0xF59C, 0x9BD7, 0xF59D, 0x9BD8, 0xF59E, 0x9BD9, + 0xF59F, 0x9BDA, 0xF5A0, 0x9BDB, 0xF5A1, 0x9162, 0xF5A2, 0x9161, + 0xF5A3, 0x9170, 0xF5A4, 0x9169, 0xF5A5, 0x916F, 0xF5A6, 0x917D, + 0xF5A7, 0x917E, 0xF5A8, 0x9172, 0xF5A9, 0x9174, 0xF5AA, 0x9179, + 0xF5AB, 0x918C, 0xF5AC, 0x9185, 0xF5AD, 0x9190, 0xF5AE, 0x918D, + 0xF5AF, 0x9191, 0xF5B0, 0x91A2, 0xF5B1, 0x91A3, 0xF5B2, 0x91AA, + 0xF5B3, 0x91AD, 0xF5B4, 0x91AE, 0xF5B5, 0x91AF, 0xF5B6, 0x91B5, + 0xF5B7, 0x91B4, 0xF5B8, 0x91BA, 0xF5B9, 0x8C55, 0xF5BA, 0x9E7E, + 0xF5BB, 0x8DB8, 0xF5BC, 0x8DEB, 0xF5BD, 0x8E05, 0xF5BE, 0x8E59, + 0xF5BF, 0x8E69, 0xF5C0, 0x8DB5, 0xF5C1, 0x8DBF, 0xF5C2, 0x8DBC, + 0xF5C3, 0x8DBA, 0xF5C4, 0x8DC4, 0xF5C5, 0x8DD6, 0xF5C6, 0x8DD7, + 0xF5C7, 0x8DDA, 0xF5C8, 0x8DDE, 0xF5C9, 0x8DCE, 0xF5CA, 0x8DCF, + 0xF5CB, 0x8DDB, 0xF5CC, 0x8DC6, 0xF5CD, 0x8DEC, 0xF5CE, 0x8DF7, + 0xF5CF, 0x8DF8, 0xF5D0, 0x8DE3, 0xF5D1, 0x8DF9, 0xF5D2, 0x8DFB, + 0xF5D3, 0x8DE4, 0xF5D4, 0x8E09, 0xF5D5, 0x8DFD, 0xF5D6, 0x8E14, + 0xF5D7, 0x8E1D, 0xF5D8, 0x8E1F, 0xF5D9, 0x8E2C, 0xF5DA, 0x8E2E, + 0xF5DB, 0x8E23, 0xF5DC, 0x8E2F, 0xF5DD, 0x8E3A, 0xF5DE, 0x8E40, + 0xF5DF, 0x8E39, 0xF5E0, 0x8E35, 0xF5E1, 0x8E3D, 0xF5E2, 0x8E31, + 0xF5E3, 0x8E49, 0xF5E4, 0x8E41, 0xF5E5, 0x8E42, 0xF5E6, 0x8E51, + 0xF5E7, 0x8E52, 0xF5E8, 0x8E4A, 0xF5E9, 0x8E70, 0xF5EA, 0x8E76, + 0xF5EB, 0x8E7C, 0xF5EC, 0x8E6F, 0xF5ED, 0x8E74, 0xF5EE, 0x8E85, + 0xF5EF, 0x8E8F, 0xF5F0, 0x8E94, 0xF5F1, 0x8E90, 0xF5F2, 0x8E9C, + 0xF5F3, 0x8E9E, 0xF5F4, 0x8C78, 0xF5F5, 0x8C82, 0xF5F6, 0x8C8A, + 0xF5F7, 0x8C85, 0xF5F8, 0x8C98, 0xF5F9, 0x8C94, 0xF5FA, 0x659B, + 0xF5FB, 0x89D6, 0xF5FC, 0x89DE, 0xF5FD, 0x89DA, 0xF5FE, 0x89DC, + 0xF640, 0x9BDC, 0xF641, 0x9BDD, 0xF642, 0x9BDE, 0xF643, 0x9BDF, + 0xF644, 0x9BE0, 0xF645, 0x9BE1, 0xF646, 0x9BE2, 0xF647, 0x9BE3, + 0xF648, 0x9BE4, 0xF649, 0x9BE5, 0xF64A, 0x9BE6, 0xF64B, 0x9BE7, + 0xF64C, 0x9BE8, 0xF64D, 0x9BE9, 0xF64E, 0x9BEA, 0xF64F, 0x9BEB, + 0xF650, 0x9BEC, 0xF651, 0x9BED, 0xF652, 0x9BEE, 0xF653, 0x9BEF, + 0xF654, 0x9BF0, 0xF655, 0x9BF1, 0xF656, 0x9BF2, 0xF657, 0x9BF3, + 0xF658, 0x9BF4, 0xF659, 0x9BF5, 0xF65A, 0x9BF6, 0xF65B, 0x9BF7, + 0xF65C, 0x9BF8, 0xF65D, 0x9BF9, 0xF65E, 0x9BFA, 0xF65F, 0x9BFB, + 0xF660, 0x9BFC, 0xF661, 0x9BFD, 0xF662, 0x9BFE, 0xF663, 0x9BFF, + 0xF664, 0x9C00, 0xF665, 0x9C01, 0xF666, 0x9C02, 0xF667, 0x9C03, + 0xF668, 0x9C04, 0xF669, 0x9C05, 0xF66A, 0x9C06, 0xF66B, 0x9C07, + 0xF66C, 0x9C08, 0xF66D, 0x9C09, 0xF66E, 0x9C0A, 0xF66F, 0x9C0B, + 0xF670, 0x9C0C, 0xF671, 0x9C0D, 0xF672, 0x9C0E, 0xF673, 0x9C0F, + 0xF674, 0x9C10, 0xF675, 0x9C11, 0xF676, 0x9C12, 0xF677, 0x9C13, + 0xF678, 0x9C14, 0xF679, 0x9C15, 0xF67A, 0x9C16, 0xF67B, 0x9C17, + 0xF67C, 0x9C18, 0xF67D, 0x9C19, 0xF67E, 0x9C1A, 0xF680, 0x9C1B, + 0xF681, 0x9C1C, 0xF682, 0x9C1D, 0xF683, 0x9C1E, 0xF684, 0x9C1F, + 0xF685, 0x9C20, 0xF686, 0x9C21, 0xF687, 0x9C22, 0xF688, 0x9C23, + 0xF689, 0x9C24, 0xF68A, 0x9C25, 0xF68B, 0x9C26, 0xF68C, 0x9C27, + 0xF68D, 0x9C28, 0xF68E, 0x9C29, 0xF68F, 0x9C2A, 0xF690, 0x9C2B, + 0xF691, 0x9C2C, 0xF692, 0x9C2D, 0xF693, 0x9C2E, 0xF694, 0x9C2F, + 0xF695, 0x9C30, 0xF696, 0x9C31, 0xF697, 0x9C32, 0xF698, 0x9C33, + 0xF699, 0x9C34, 0xF69A, 0x9C35, 0xF69B, 0x9C36, 0xF69C, 0x9C37, + 0xF69D, 0x9C38, 0xF69E, 0x9C39, 0xF69F, 0x9C3A, 0xF6A0, 0x9C3B, + 0xF6A1, 0x89E5, 0xF6A2, 0x89EB, 0xF6A3, 0x89EF, 0xF6A4, 0x8A3E, + 0xF6A5, 0x8B26, 0xF6A6, 0x9753, 0xF6A7, 0x96E9, 0xF6A8, 0x96F3, + 0xF6A9, 0x96EF, 0xF6AA, 0x9706, 0xF6AB, 0x9701, 0xF6AC, 0x9708, + 0xF6AD, 0x970F, 0xF6AE, 0x970E, 0xF6AF, 0x972A, 0xF6B0, 0x972D, + 0xF6B1, 0x9730, 0xF6B2, 0x973E, 0xF6B3, 0x9F80, 0xF6B4, 0x9F83, + 0xF6B5, 0x9F85, 0xF6B6, 0x9F86, 0xF6B7, 0x9F87, 0xF6B8, 0x9F88, + 0xF6B9, 0x9F89, 0xF6BA, 0x9F8A, 0xF6BB, 0x9F8C, 0xF6BC, 0x9EFE, + 0xF6BD, 0x9F0B, 0xF6BE, 0x9F0D, 0xF6BF, 0x96B9, 0xF6C0, 0x96BC, + 0xF6C1, 0x96BD, 0xF6C2, 0x96CE, 0xF6C3, 0x96D2, 0xF6C4, 0x77BF, + 0xF6C5, 0x96E0, 0xF6C6, 0x928E, 0xF6C7, 0x92AE, 0xF6C8, 0x92C8, + 0xF6C9, 0x933E, 0xF6CA, 0x936A, 0xF6CB, 0x93CA, 0xF6CC, 0x938F, + 0xF6CD, 0x943E, 0xF6CE, 0x946B, 0xF6CF, 0x9C7F, 0xF6D0, 0x9C82, + 0xF6D1, 0x9C85, 0xF6D2, 0x9C86, 0xF6D3, 0x9C87, 0xF6D4, 0x9C88, + 0xF6D5, 0x7A23, 0xF6D6, 0x9C8B, 0xF6D7, 0x9C8E, 0xF6D8, 0x9C90, + 0xF6D9, 0x9C91, 0xF6DA, 0x9C92, 0xF6DB, 0x9C94, 0xF6DC, 0x9C95, + 0xF6DD, 0x9C9A, 0xF6DE, 0x9C9B, 0xF6DF, 0x9C9E, 0xF6E0, 0x9C9F, + 0xF6E1, 0x9CA0, 0xF6E2, 0x9CA1, 0xF6E3, 0x9CA2, 0xF6E4, 0x9CA3, + 0xF6E5, 0x9CA5, 0xF6E6, 0x9CA6, 0xF6E7, 0x9CA7, 0xF6E8, 0x9CA8, + 0xF6E9, 0x9CA9, 0xF6EA, 0x9CAB, 0xF6EB, 0x9CAD, 0xF6EC, 0x9CAE, + 0xF6ED, 0x9CB0, 0xF6EE, 0x9CB1, 0xF6EF, 0x9CB2, 0xF6F0, 0x9CB3, + 0xF6F1, 0x9CB4, 0xF6F2, 0x9CB5, 0xF6F3, 0x9CB6, 0xF6F4, 0x9CB7, + 0xF6F5, 0x9CBA, 0xF6F6, 0x9CBB, 0xF6F7, 0x9CBC, 0xF6F8, 0x9CBD, + 0xF6F9, 0x9CC4, 0xF6FA, 0x9CC5, 0xF6FB, 0x9CC6, 0xF6FC, 0x9CC7, + 0xF6FD, 0x9CCA, 0xF6FE, 0x9CCB, 0xF740, 0x9C3C, 0xF741, 0x9C3D, + 0xF742, 0x9C3E, 0xF743, 0x9C3F, 0xF744, 0x9C40, 0xF745, 0x9C41, + 0xF746, 0x9C42, 0xF747, 0x9C43, 0xF748, 0x9C44, 0xF749, 0x9C45, + 0xF74A, 0x9C46, 0xF74B, 0x9C47, 0xF74C, 0x9C48, 0xF74D, 0x9C49, + 0xF74E, 0x9C4A, 0xF74F, 0x9C4B, 0xF750, 0x9C4C, 0xF751, 0x9C4D, + 0xF752, 0x9C4E, 0xF753, 0x9C4F, 0xF754, 0x9C50, 0xF755, 0x9C51, + 0xF756, 0x9C52, 0xF757, 0x9C53, 0xF758, 0x9C54, 0xF759, 0x9C55, + 0xF75A, 0x9C56, 0xF75B, 0x9C57, 0xF75C, 0x9C58, 0xF75D, 0x9C59, + 0xF75E, 0x9C5A, 0xF75F, 0x9C5B, 0xF760, 0x9C5C, 0xF761, 0x9C5D, + 0xF762, 0x9C5E, 0xF763, 0x9C5F, 0xF764, 0x9C60, 0xF765, 0x9C61, + 0xF766, 0x9C62, 0xF767, 0x9C63, 0xF768, 0x9C64, 0xF769, 0x9C65, + 0xF76A, 0x9C66, 0xF76B, 0x9C67, 0xF76C, 0x9C68, 0xF76D, 0x9C69, + 0xF76E, 0x9C6A, 0xF76F, 0x9C6B, 0xF770, 0x9C6C, 0xF771, 0x9C6D, + 0xF772, 0x9C6E, 0xF773, 0x9C6F, 0xF774, 0x9C70, 0xF775, 0x9C71, + 0xF776, 0x9C72, 0xF777, 0x9C73, 0xF778, 0x9C74, 0xF779, 0x9C75, + 0xF77A, 0x9C76, 0xF77B, 0x9C77, 0xF77C, 0x9C78, 0xF77D, 0x9C79, + 0xF77E, 0x9C7A, 0xF780, 0x9C7B, 0xF781, 0x9C7D, 0xF782, 0x9C7E, + 0xF783, 0x9C80, 0xF784, 0x9C83, 0xF785, 0x9C84, 0xF786, 0x9C89, + 0xF787, 0x9C8A, 0xF788, 0x9C8C, 0xF789, 0x9C8F, 0xF78A, 0x9C93, + 0xF78B, 0x9C96, 0xF78C, 0x9C97, 0xF78D, 0x9C98, 0xF78E, 0x9C99, + 0xF78F, 0x9C9D, 0xF790, 0x9CAA, 0xF791, 0x9CAC, 0xF792, 0x9CAF, + 0xF793, 0x9CB9, 0xF794, 0x9CBE, 0xF795, 0x9CBF, 0xF796, 0x9CC0, + 0xF797, 0x9CC1, 0xF798, 0x9CC2, 0xF799, 0x9CC8, 0xF79A, 0x9CC9, + 0xF79B, 0x9CD1, 0xF79C, 0x9CD2, 0xF79D, 0x9CDA, 0xF79E, 0x9CDB, + 0xF79F, 0x9CE0, 0xF7A0, 0x9CE1, 0xF7A1, 0x9CCC, 0xF7A2, 0x9CCD, + 0xF7A3, 0x9CCE, 0xF7A4, 0x9CCF, 0xF7A5, 0x9CD0, 0xF7A6, 0x9CD3, + 0xF7A7, 0x9CD4, 0xF7A8, 0x9CD5, 0xF7A9, 0x9CD7, 0xF7AA, 0x9CD8, + 0xF7AB, 0x9CD9, 0xF7AC, 0x9CDC, 0xF7AD, 0x9CDD, 0xF7AE, 0x9CDF, + 0xF7AF, 0x9CE2, 0xF7B0, 0x977C, 0xF7B1, 0x9785, 0xF7B2, 0x9791, + 0xF7B3, 0x9792, 0xF7B4, 0x9794, 0xF7B5, 0x97AF, 0xF7B6, 0x97AB, + 0xF7B7, 0x97A3, 0xF7B8, 0x97B2, 0xF7B9, 0x97B4, 0xF7BA, 0x9AB1, + 0xF7BB, 0x9AB0, 0xF7BC, 0x9AB7, 0xF7BD, 0x9E58, 0xF7BE, 0x9AB6, + 0xF7BF, 0x9ABA, 0xF7C0, 0x9ABC, 0xF7C1, 0x9AC1, 0xF7C2, 0x9AC0, + 0xF7C3, 0x9AC5, 0xF7C4, 0x9AC2, 0xF7C5, 0x9ACB, 0xF7C6, 0x9ACC, + 0xF7C7, 0x9AD1, 0xF7C8, 0x9B45, 0xF7C9, 0x9B43, 0xF7CA, 0x9B47, + 0xF7CB, 0x9B49, 0xF7CC, 0x9B48, 0xF7CD, 0x9B4D, 0xF7CE, 0x9B51, + 0xF7CF, 0x98E8, 0xF7D0, 0x990D, 0xF7D1, 0x992E, 0xF7D2, 0x9955, + 0xF7D3, 0x9954, 0xF7D4, 0x9ADF, 0xF7D5, 0x9AE1, 0xF7D6, 0x9AE6, + 0xF7D7, 0x9AEF, 0xF7D8, 0x9AEB, 0xF7D9, 0x9AFB, 0xF7DA, 0x9AED, + 0xF7DB, 0x9AF9, 0xF7DC, 0x9B08, 0xF7DD, 0x9B0F, 0xF7DE, 0x9B13, + 0xF7DF, 0x9B1F, 0xF7E0, 0x9B23, 0xF7E1, 0x9EBD, 0xF7E2, 0x9EBE, + 0xF7E3, 0x7E3B, 0xF7E4, 0x9E82, 0xF7E5, 0x9E87, 0xF7E6, 0x9E88, + 0xF7E7, 0x9E8B, 0xF7E8, 0x9E92, 0xF7E9, 0x93D6, 0xF7EA, 0x9E9D, + 0xF7EB, 0x9E9F, 0xF7EC, 0x9EDB, 0xF7ED, 0x9EDC, 0xF7EE, 0x9EDD, + 0xF7EF, 0x9EE0, 0xF7F0, 0x9EDF, 0xF7F1, 0x9EE2, 0xF7F2, 0x9EE9, + 0xF7F3, 0x9EE7, 0xF7F4, 0x9EE5, 0xF7F5, 0x9EEA, 0xF7F6, 0x9EEF, + 0xF7F7, 0x9F22, 0xF7F8, 0x9F2C, 0xF7F9, 0x9F2F, 0xF7FA, 0x9F39, + 0xF7FB, 0x9F37, 0xF7FC, 0x9F3D, 0xF7FD, 0x9F3E, 0xF7FE, 0x9F44, + 0xF840, 0x9CE3, 0xF841, 0x9CE4, 0xF842, 0x9CE5, 0xF843, 0x9CE6, + 0xF844, 0x9CE7, 0xF845, 0x9CE8, 0xF846, 0x9CE9, 0xF847, 0x9CEA, + 0xF848, 0x9CEB, 0xF849, 0x9CEC, 0xF84A, 0x9CED, 0xF84B, 0x9CEE, + 0xF84C, 0x9CEF, 0xF84D, 0x9CF0, 0xF84E, 0x9CF1, 0xF84F, 0x9CF2, + 0xF850, 0x9CF3, 0xF851, 0x9CF4, 0xF852, 0x9CF5, 0xF853, 0x9CF6, + 0xF854, 0x9CF7, 0xF855, 0x9CF8, 0xF856, 0x9CF9, 0xF857, 0x9CFA, + 0xF858, 0x9CFB, 0xF859, 0x9CFC, 0xF85A, 0x9CFD, 0xF85B, 0x9CFE, + 0xF85C, 0x9CFF, 0xF85D, 0x9D00, 0xF85E, 0x9D01, 0xF85F, 0x9D02, + 0xF860, 0x9D03, 0xF861, 0x9D04, 0xF862, 0x9D05, 0xF863, 0x9D06, + 0xF864, 0x9D07, 0xF865, 0x9D08, 0xF866, 0x9D09, 0xF867, 0x9D0A, + 0xF868, 0x9D0B, 0xF869, 0x9D0C, 0xF86A, 0x9D0D, 0xF86B, 0x9D0E, + 0xF86C, 0x9D0F, 0xF86D, 0x9D10, 0xF86E, 0x9D11, 0xF86F, 0x9D12, + 0xF870, 0x9D13, 0xF871, 0x9D14, 0xF872, 0x9D15, 0xF873, 0x9D16, + 0xF874, 0x9D17, 0xF875, 0x9D18, 0xF876, 0x9D19, 0xF877, 0x9D1A, + 0xF878, 0x9D1B, 0xF879, 0x9D1C, 0xF87A, 0x9D1D, 0xF87B, 0x9D1E, + 0xF87C, 0x9D1F, 0xF87D, 0x9D20, 0xF87E, 0x9D21, 0xF880, 0x9D22, + 0xF881, 0x9D23, 0xF882, 0x9D24, 0xF883, 0x9D25, 0xF884, 0x9D26, + 0xF885, 0x9D27, 0xF886, 0x9D28, 0xF887, 0x9D29, 0xF888, 0x9D2A, + 0xF889, 0x9D2B, 0xF88A, 0x9D2C, 0xF88B, 0x9D2D, 0xF88C, 0x9D2E, + 0xF88D, 0x9D2F, 0xF88E, 0x9D30, 0xF88F, 0x9D31, 0xF890, 0x9D32, + 0xF891, 0x9D33, 0xF892, 0x9D34, 0xF893, 0x9D35, 0xF894, 0x9D36, + 0xF895, 0x9D37, 0xF896, 0x9D38, 0xF897, 0x9D39, 0xF898, 0x9D3A, + 0xF899, 0x9D3B, 0xF89A, 0x9D3C, 0xF89B, 0x9D3D, 0xF89C, 0x9D3E, + 0xF89D, 0x9D3F, 0xF89E, 0x9D40, 0xF89F, 0x9D41, 0xF8A0, 0x9D42, + 0xF940, 0x9D43, 0xF941, 0x9D44, 0xF942, 0x9D45, 0xF943, 0x9D46, + 0xF944, 0x9D47, 0xF945, 0x9D48, 0xF946, 0x9D49, 0xF947, 0x9D4A, + 0xF948, 0x9D4B, 0xF949, 0x9D4C, 0xF94A, 0x9D4D, 0xF94B, 0x9D4E, + 0xF94C, 0x9D4F, 0xF94D, 0x9D50, 0xF94E, 0x9D51, 0xF94F, 0x9D52, + 0xF950, 0x9D53, 0xF951, 0x9D54, 0xF952, 0x9D55, 0xF953, 0x9D56, + 0xF954, 0x9D57, 0xF955, 0x9D58, 0xF956, 0x9D59, 0xF957, 0x9D5A, + 0xF958, 0x9D5B, 0xF959, 0x9D5C, 0xF95A, 0x9D5D, 0xF95B, 0x9D5E, + 0xF95C, 0x9D5F, 0xF95D, 0x9D60, 0xF95E, 0x9D61, 0xF95F, 0x9D62, + 0xF960, 0x9D63, 0xF961, 0x9D64, 0xF962, 0x9D65, 0xF963, 0x9D66, + 0xF964, 0x9D67, 0xF965, 0x9D68, 0xF966, 0x9D69, 0xF967, 0x9D6A, + 0xF968, 0x9D6B, 0xF969, 0x9D6C, 0xF96A, 0x9D6D, 0xF96B, 0x9D6E, + 0xF96C, 0x9D6F, 0xF96D, 0x9D70, 0xF96E, 0x9D71, 0xF96F, 0x9D72, + 0xF970, 0x9D73, 0xF971, 0x9D74, 0xF972, 0x9D75, 0xF973, 0x9D76, + 0xF974, 0x9D77, 0xF975, 0x9D78, 0xF976, 0x9D79, 0xF977, 0x9D7A, + 0xF978, 0x9D7B, 0xF979, 0x9D7C, 0xF97A, 0x9D7D, 0xF97B, 0x9D7E, + 0xF97C, 0x9D7F, 0xF97D, 0x9D80, 0xF97E, 0x9D81, 0xF980, 0x9D82, + 0xF981, 0x9D83, 0xF982, 0x9D84, 0xF983, 0x9D85, 0xF984, 0x9D86, + 0xF985, 0x9D87, 0xF986, 0x9D88, 0xF987, 0x9D89, 0xF988, 0x9D8A, + 0xF989, 0x9D8B, 0xF98A, 0x9D8C, 0xF98B, 0x9D8D, 0xF98C, 0x9D8E, + 0xF98D, 0x9D8F, 0xF98E, 0x9D90, 0xF98F, 0x9D91, 0xF990, 0x9D92, + 0xF991, 0x9D93, 0xF992, 0x9D94, 0xF993, 0x9D95, 0xF994, 0x9D96, + 0xF995, 0x9D97, 0xF996, 0x9D98, 0xF997, 0x9D99, 0xF998, 0x9D9A, + 0xF999, 0x9D9B, 0xF99A, 0x9D9C, 0xF99B, 0x9D9D, 0xF99C, 0x9D9E, + 0xF99D, 0x9D9F, 0xF99E, 0x9DA0, 0xF99F, 0x9DA1, 0xF9A0, 0x9DA2, + 0xFA40, 0x9DA3, 0xFA41, 0x9DA4, 0xFA42, 0x9DA5, 0xFA43, 0x9DA6, + 0xFA44, 0x9DA7, 0xFA45, 0x9DA8, 0xFA46, 0x9DA9, 0xFA47, 0x9DAA, + 0xFA48, 0x9DAB, 0xFA49, 0x9DAC, 0xFA4A, 0x9DAD, 0xFA4B, 0x9DAE, + 0xFA4C, 0x9DAF, 0xFA4D, 0x9DB0, 0xFA4E, 0x9DB1, 0xFA4F, 0x9DB2, + 0xFA50, 0x9DB3, 0xFA51, 0x9DB4, 0xFA52, 0x9DB5, 0xFA53, 0x9DB6, + 0xFA54, 0x9DB7, 0xFA55, 0x9DB8, 0xFA56, 0x9DB9, 0xFA57, 0x9DBA, + 0xFA58, 0x9DBB, 0xFA59, 0x9DBC, 0xFA5A, 0x9DBD, 0xFA5B, 0x9DBE, + 0xFA5C, 0x9DBF, 0xFA5D, 0x9DC0, 0xFA5E, 0x9DC1, 0xFA5F, 0x9DC2, + 0xFA60, 0x9DC3, 0xFA61, 0x9DC4, 0xFA62, 0x9DC5, 0xFA63, 0x9DC6, + 0xFA64, 0x9DC7, 0xFA65, 0x9DC8, 0xFA66, 0x9DC9, 0xFA67, 0x9DCA, + 0xFA68, 0x9DCB, 0xFA69, 0x9DCC, 0xFA6A, 0x9DCD, 0xFA6B, 0x9DCE, + 0xFA6C, 0x9DCF, 0xFA6D, 0x9DD0, 0xFA6E, 0x9DD1, 0xFA6F, 0x9DD2, + 0xFA70, 0x9DD3, 0xFA71, 0x9DD4, 0xFA72, 0x9DD5, 0xFA73, 0x9DD6, + 0xFA74, 0x9DD7, 0xFA75, 0x9DD8, 0xFA76, 0x9DD9, 0xFA77, 0x9DDA, + 0xFA78, 0x9DDB, 0xFA79, 0x9DDC, 0xFA7A, 0x9DDD, 0xFA7B, 0x9DDE, + 0xFA7C, 0x9DDF, 0xFA7D, 0x9DE0, 0xFA7E, 0x9DE1, 0xFA80, 0x9DE2, + 0xFA81, 0x9DE3, 0xFA82, 0x9DE4, 0xFA83, 0x9DE5, 0xFA84, 0x9DE6, + 0xFA85, 0x9DE7, 0xFA86, 0x9DE8, 0xFA87, 0x9DE9, 0xFA88, 0x9DEA, + 0xFA89, 0x9DEB, 0xFA8A, 0x9DEC, 0xFA8B, 0x9DED, 0xFA8C, 0x9DEE, + 0xFA8D, 0x9DEF, 0xFA8E, 0x9DF0, 0xFA8F, 0x9DF1, 0xFA90, 0x9DF2, + 0xFA91, 0x9DF3, 0xFA92, 0x9DF4, 0xFA93, 0x9DF5, 0xFA94, 0x9DF6, + 0xFA95, 0x9DF7, 0xFA96, 0x9DF8, 0xFA97, 0x9DF9, 0xFA98, 0x9DFA, + 0xFA99, 0x9DFB, 0xFA9A, 0x9DFC, 0xFA9B, 0x9DFD, 0xFA9C, 0x9DFE, + 0xFA9D, 0x9DFF, 0xFA9E, 0x9E00, 0xFA9F, 0x9E01, 0xFAA0, 0x9E02, + 0xFB40, 0x9E03, 0xFB41, 0x9E04, 0xFB42, 0x9E05, 0xFB43, 0x9E06, + 0xFB44, 0x9E07, 0xFB45, 0x9E08, 0xFB46, 0x9E09, 0xFB47, 0x9E0A, + 0xFB48, 0x9E0B, 0xFB49, 0x9E0C, 0xFB4A, 0x9E0D, 0xFB4B, 0x9E0E, + 0xFB4C, 0x9E0F, 0xFB4D, 0x9E10, 0xFB4E, 0x9E11, 0xFB4F, 0x9E12, + 0xFB50, 0x9E13, 0xFB51, 0x9E14, 0xFB52, 0x9E15, 0xFB53, 0x9E16, + 0xFB54, 0x9E17, 0xFB55, 0x9E18, 0xFB56, 0x9E19, 0xFB57, 0x9E1A, + 0xFB58, 0x9E1B, 0xFB59, 0x9E1C, 0xFB5A, 0x9E1D, 0xFB5B, 0x9E1E, + 0xFB5C, 0x9E24, 0xFB5D, 0x9E27, 0xFB5E, 0x9E2E, 0xFB5F, 0x9E30, + 0xFB60, 0x9E34, 0xFB61, 0x9E3B, 0xFB62, 0x9E3C, 0xFB63, 0x9E40, + 0xFB64, 0x9E4D, 0xFB65, 0x9E50, 0xFB66, 0x9E52, 0xFB67, 0x9E53, + 0xFB68, 0x9E54, 0xFB69, 0x9E56, 0xFB6A, 0x9E59, 0xFB6B, 0x9E5D, + 0xFB6C, 0x9E5F, 0xFB6D, 0x9E60, 0xFB6E, 0x9E61, 0xFB6F, 0x9E62, + 0xFB70, 0x9E65, 0xFB71, 0x9E6E, 0xFB72, 0x9E6F, 0xFB73, 0x9E72, + 0xFB74, 0x9E74, 0xFB75, 0x9E75, 0xFB76, 0x9E76, 0xFB77, 0x9E77, + 0xFB78, 0x9E78, 0xFB79, 0x9E79, 0xFB7A, 0x9E7A, 0xFB7B, 0x9E7B, + 0xFB7C, 0x9E7C, 0xFB7D, 0x9E7D, 0xFB7E, 0x9E80, 0xFB80, 0x9E81, + 0xFB81, 0x9E83, 0xFB82, 0x9E84, 0xFB83, 0x9E85, 0xFB84, 0x9E86, + 0xFB85, 0x9E89, 0xFB86, 0x9E8A, 0xFB87, 0x9E8C, 0xFB88, 0x9E8D, + 0xFB89, 0x9E8E, 0xFB8A, 0x9E8F, 0xFB8B, 0x9E90, 0xFB8C, 0x9E91, + 0xFB8D, 0x9E94, 0xFB8E, 0x9E95, 0xFB8F, 0x9E96, 0xFB90, 0x9E97, + 0xFB91, 0x9E98, 0xFB92, 0x9E99, 0xFB93, 0x9E9A, 0xFB94, 0x9E9B, + 0xFB95, 0x9E9C, 0xFB96, 0x9E9E, 0xFB97, 0x9EA0, 0xFB98, 0x9EA1, + 0xFB99, 0x9EA2, 0xFB9A, 0x9EA3, 0xFB9B, 0x9EA4, 0xFB9C, 0x9EA5, + 0xFB9D, 0x9EA7, 0xFB9E, 0x9EA8, 0xFB9F, 0x9EA9, 0xFBA0, 0x9EAA, + 0xFC40, 0x9EAB, 0xFC41, 0x9EAC, 0xFC42, 0x9EAD, 0xFC43, 0x9EAE, + 0xFC44, 0x9EAF, 0xFC45, 0x9EB0, 0xFC46, 0x9EB1, 0xFC47, 0x9EB2, + 0xFC48, 0x9EB3, 0xFC49, 0x9EB5, 0xFC4A, 0x9EB6, 0xFC4B, 0x9EB7, + 0xFC4C, 0x9EB9, 0xFC4D, 0x9EBA, 0xFC4E, 0x9EBC, 0xFC4F, 0x9EBF, + 0xFC50, 0x9EC0, 0xFC51, 0x9EC1, 0xFC52, 0x9EC2, 0xFC53, 0x9EC3, + 0xFC54, 0x9EC5, 0xFC55, 0x9EC6, 0xFC56, 0x9EC7, 0xFC57, 0x9EC8, + 0xFC58, 0x9ECA, 0xFC59, 0x9ECB, 0xFC5A, 0x9ECC, 0xFC5B, 0x9ED0, + 0xFC5C, 0x9ED2, 0xFC5D, 0x9ED3, 0xFC5E, 0x9ED5, 0xFC5F, 0x9ED6, + 0xFC60, 0x9ED7, 0xFC61, 0x9ED9, 0xFC62, 0x9EDA, 0xFC63, 0x9EDE, + 0xFC64, 0x9EE1, 0xFC65, 0x9EE3, 0xFC66, 0x9EE4, 0xFC67, 0x9EE6, + 0xFC68, 0x9EE8, 0xFC69, 0x9EEB, 0xFC6A, 0x9EEC, 0xFC6B, 0x9EED, + 0xFC6C, 0x9EEE, 0xFC6D, 0x9EF0, 0xFC6E, 0x9EF1, 0xFC6F, 0x9EF2, + 0xFC70, 0x9EF3, 0xFC71, 0x9EF4, 0xFC72, 0x9EF5, 0xFC73, 0x9EF6, + 0xFC74, 0x9EF7, 0xFC75, 0x9EF8, 0xFC76, 0x9EFA, 0xFC77, 0x9EFD, + 0xFC78, 0x9EFF, 0xFC79, 0x9F00, 0xFC7A, 0x9F01, 0xFC7B, 0x9F02, + 0xFC7C, 0x9F03, 0xFC7D, 0x9F04, 0xFC7E, 0x9F05, 0xFC80, 0x9F06, + 0xFC81, 0x9F07, 0xFC82, 0x9F08, 0xFC83, 0x9F09, 0xFC84, 0x9F0A, + 0xFC85, 0x9F0C, 0xFC86, 0x9F0F, 0xFC87, 0x9F11, 0xFC88, 0x9F12, + 0xFC89, 0x9F14, 0xFC8A, 0x9F15, 0xFC8B, 0x9F16, 0xFC8C, 0x9F18, + 0xFC8D, 0x9F1A, 0xFC8E, 0x9F1B, 0xFC8F, 0x9F1C, 0xFC90, 0x9F1D, + 0xFC91, 0x9F1E, 0xFC92, 0x9F1F, 0xFC93, 0x9F21, 0xFC94, 0x9F23, + 0xFC95, 0x9F24, 0xFC96, 0x9F25, 0xFC97, 0x9F26, 0xFC98, 0x9F27, + 0xFC99, 0x9F28, 0xFC9A, 0x9F29, 0xFC9B, 0x9F2A, 0xFC9C, 0x9F2B, + 0xFC9D, 0x9F2D, 0xFC9E, 0x9F2E, 0xFC9F, 0x9F30, 0xFCA0, 0x9F31, + 0xFD40, 0x9F32, 0xFD41, 0x9F33, 0xFD42, 0x9F34, 0xFD43, 0x9F35, + 0xFD44, 0x9F36, 0xFD45, 0x9F38, 0xFD46, 0x9F3A, 0xFD47, 0x9F3C, + 0xFD48, 0x9F3F, 0xFD49, 0x9F40, 0xFD4A, 0x9F41, 0xFD4B, 0x9F42, + 0xFD4C, 0x9F43, 0xFD4D, 0x9F45, 0xFD4E, 0x9F46, 0xFD4F, 0x9F47, + 0xFD50, 0x9F48, 0xFD51, 0x9F49, 0xFD52, 0x9F4A, 0xFD53, 0x9F4B, + 0xFD54, 0x9F4C, 0xFD55, 0x9F4D, 0xFD56, 0x9F4E, 0xFD57, 0x9F4F, + 0xFD58, 0x9F52, 0xFD59, 0x9F53, 0xFD5A, 0x9F54, 0xFD5B, 0x9F55, + 0xFD5C, 0x9F56, 0xFD5D, 0x9F57, 0xFD5E, 0x9F58, 0xFD5F, 0x9F59, + 0xFD60, 0x9F5A, 0xFD61, 0x9F5B, 0xFD62, 0x9F5C, 0xFD63, 0x9F5D, + 0xFD64, 0x9F5E, 0xFD65, 0x9F5F, 0xFD66, 0x9F60, 0xFD67, 0x9F61, + 0xFD68, 0x9F62, 0xFD69, 0x9F63, 0xFD6A, 0x9F64, 0xFD6B, 0x9F65, + 0xFD6C, 0x9F66, 0xFD6D, 0x9F67, 0xFD6E, 0x9F68, 0xFD6F, 0x9F69, + 0xFD70, 0x9F6A, 0xFD71, 0x9F6B, 0xFD72, 0x9F6C, 0xFD73, 0x9F6D, + 0xFD74, 0x9F6E, 0xFD75, 0x9F6F, 0xFD76, 0x9F70, 0xFD77, 0x9F71, + 0xFD78, 0x9F72, 0xFD79, 0x9F73, 0xFD7A, 0x9F74, 0xFD7B, 0x9F75, + 0xFD7C, 0x9F76, 0xFD7D, 0x9F77, 0xFD7E, 0x9F78, 0xFD80, 0x9F79, + 0xFD81, 0x9F7A, 0xFD82, 0x9F7B, 0xFD83, 0x9F7C, 0xFD84, 0x9F7D, + 0xFD85, 0x9F7E, 0xFD86, 0x9F81, 0xFD87, 0x9F82, 0xFD88, 0x9F8D, + 0xFD89, 0x9F8E, 0xFD8A, 0x9F8F, 0xFD8B, 0x9F90, 0xFD8C, 0x9F91, + 0xFD8D, 0x9F92, 0xFD8E, 0x9F93, 0xFD8F, 0x9F94, 0xFD90, 0x9F95, + 0xFD91, 0x9F96, 0xFD92, 0x9F97, 0xFD93, 0x9F98, 0xFD94, 0x9F9C, + 0xFD95, 0x9F9D, 0xFD96, 0x9F9E, 0xFD97, 0x9FA1, 0xFD98, 0x9FA2, + 0xFD99, 0x9FA3, 0xFD9A, 0x9FA4, 0xFD9B, 0x9FA5, 0xFD9C, 0xF92C, + 0xFD9D, 0xF979, 0xFD9E, 0xF995, 0xFD9F, 0xF9E7, 0xFDA0, 0xF9F1, + 0xFE40, 0xFA0C, 0xFE41, 0xFA0D, 0xFE42, 0xFA0E, 0xFE43, 0xFA0F, + 0xFE44, 0xFA11, 0xFE45, 0xFA13, 0xFE46, 0xFA14, 0xFE47, 0xFA18, + 0xFE48, 0xFA1F, 0xFE49, 0xFA20, 0xFE4A, 0xFA21, 0xFE4B, 0xFA23, + 0xFE4C, 0xFA24, 0xFE4D, 0xFA27, 0xFE4E, 0xFA28, 0xFE4F, 0xFA29, + 0, 0 +}; + + + +WCHAR ff_convert ( /* Converted code, 0 means conversion error */ + WCHAR chr, /* Character code to be converted */ + UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ +) +{ + const WCHAR *p; + WCHAR c; + int i, n, li, hi; + + + if (chr < 0x80) { /* ASCII */ + c = chr; + } else { + if (dir) { /* OEM code to unicode */ + p = oem2uni; + hi = sizeof oem2uni / 4 - 1; + } else { /* Unicode to OEM code */ + p = uni2oem; + hi = sizeof uni2oem / 4 - 1; + } + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (chr == p[i * 2]) break; + if (chr > p[i * 2]) + li = i; + else + hi = i; + } + c = n ? p[i * 2 + 1] : 0; + } + + return c; +} + + + +WCHAR ff_wtoupper ( /* Returns upper converted character */ + WCHAR chr /* Unicode character to be upper converted (BMP only) */ +) +{ + /* Compressed upper conversion table */ + static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WCHAR *p; + WCHAR bc, nc, cmd; + + + p = chr < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || chr < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (chr < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: chr = p[chr - bc]; break; /* Table conversion */ + case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ + case 2: chr -= 16; break; /* Shift -16 */ + case 3: chr -= 32; break; /* Shift -32 */ + case 4: chr -= 48; break; /* Shift -48 */ + case 5: chr -= 26; break; /* Shift -26 */ + case 6: chr += 8; break; /* Shift +8 */ + case 7: chr -= 80; break; /* Shift -80 */ + case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + + return chr; +} + +#endif diff --git a/extras/fatfs/cc949.h b/extras/fatfs/cc949.h new file mode 100644 index 0000000..1e95ec3 --- /dev/null +++ b/extras/fatfs/cc949.h @@ -0,0 +1,8672 @@ +/*------------------------------------------------------------------------*/ +/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ +/* CP949 (Korean EUC-KR) */ +/*------------------------------------------------------------------------*/ + +#include "ff.h" + + +#if _USE_LFN && _CODE_PAGE == 949 + +static +const WCHAR uni2oem[] = { +/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ + 0x00A1, 0xA2AE, 0x00A4, 0xA2B4, 0x00A7, 0xA1D7, 0x00A8, 0xA1A7, + 0x00AA, 0xA8A3, 0x00AD, 0xA1A9, 0x00AE, 0xA2E7, 0x00B0, 0xA1C6, + 0x00B1, 0xA1BE, 0x00B2, 0xA9F7, 0x00B3, 0xA9F8, 0x00B4, 0xA2A5, + 0x00B6, 0xA2D2, 0x00B7, 0xA1A4, 0x00B8, 0xA2AC, 0x00B9, 0xA9F6, + 0x00BA, 0xA8AC, 0x00BC, 0xA8F9, 0x00BD, 0xA8F6, 0x00BE, 0xA8FA, + 0x00BF, 0xA2AF, 0x00C6, 0xA8A1, 0x00D0, 0xA8A2, 0x00D7, 0xA1BF, + 0x00D8, 0xA8AA, 0x00DE, 0xA8AD, 0x00DF, 0xA9AC, 0x00E6, 0xA9A1, + 0x00F0, 0xA9A3, 0x00F7, 0xA1C0, 0x00F8, 0xA9AA, 0x00FE, 0xA9AD, + 0x0111, 0xA9A2, 0x0126, 0xA8A4, 0x0127, 0xA9A4, 0x0131, 0xA9A5, + 0x0132, 0xA8A6, 0x0133, 0xA9A6, 0x0138, 0xA9A7, 0x013F, 0xA8A8, + 0x0140, 0xA9A8, 0x0141, 0xA8A9, 0x0142, 0xA9A9, 0x0149, 0xA9B0, + 0x014A, 0xA8AF, 0x014B, 0xA9AF, 0x0152, 0xA8AB, 0x0153, 0xA9AB, + 0x0166, 0xA8AE, 0x0167, 0xA9AE, 0x02C7, 0xA2A7, 0x02D0, 0xA2B0, + 0x02D8, 0xA2A8, 0x02D9, 0xA2AB, 0x02DA, 0xA2AA, 0x02DB, 0xA2AD, + 0x02DD, 0xA2A9, 0x0391, 0xA5C1, 0x0392, 0xA5C2, 0x0393, 0xA5C3, + 0x0394, 0xA5C4, 0x0395, 0xA5C5, 0x0396, 0xA5C6, 0x0397, 0xA5C7, + 0x0398, 0xA5C8, 0x0399, 0xA5C9, 0x039A, 0xA5CA, 0x039B, 0xA5CB, + 0x039C, 0xA5CC, 0x039D, 0xA5CD, 0x039E, 0xA5CE, 0x039F, 0xA5CF, + 0x03A0, 0xA5D0, 0x03A1, 0xA5D1, 0x03A3, 0xA5D2, 0x03A4, 0xA5D3, + 0x03A5, 0xA5D4, 0x03A6, 0xA5D5, 0x03A7, 0xA5D6, 0x03A8, 0xA5D7, + 0x03A9, 0xA5D8, 0x03B1, 0xA5E1, 0x03B2, 0xA5E2, 0x03B3, 0xA5E3, + 0x03B4, 0xA5E4, 0x03B5, 0xA5E5, 0x03B6, 0xA5E6, 0x03B7, 0xA5E7, + 0x03B8, 0xA5E8, 0x03B9, 0xA5E9, 0x03BA, 0xA5EA, 0x03BB, 0xA5EB, + 0x03BC, 0xA5EC, 0x03BD, 0xA5ED, 0x03BE, 0xA5EE, 0x03BF, 0xA5EF, + 0x03C0, 0xA5F0, 0x03C1, 0xA5F1, 0x03C3, 0xA5F2, 0x03C4, 0xA5F3, + 0x03C5, 0xA5F4, 0x03C6, 0xA5F5, 0x03C7, 0xA5F6, 0x03C8, 0xA5F7, + 0x03C9, 0xA5F8, 0x0401, 0xACA7, 0x0410, 0xACA1, 0x0411, 0xACA2, + 0x0412, 0xACA3, 0x0413, 0xACA4, 0x0414, 0xACA5, 0x0415, 0xACA6, + 0x0416, 0xACA8, 0x0417, 0xACA9, 0x0418, 0xACAA, 0x0419, 0xACAB, + 0x041A, 0xACAC, 0x041B, 0xACAD, 0x041C, 0xACAE, 0x041D, 0xACAF, + 0x041E, 0xACB0, 0x041F, 0xACB1, 0x0420, 0xACB2, 0x0421, 0xACB3, + 0x0422, 0xACB4, 0x0423, 0xACB5, 0x0424, 0xACB6, 0x0425, 0xACB7, + 0x0426, 0xACB8, 0x0427, 0xACB9, 0x0428, 0xACBA, 0x0429, 0xACBB, + 0x042A, 0xACBC, 0x042B, 0xACBD, 0x042C, 0xACBE, 0x042D, 0xACBF, + 0x042E, 0xACC0, 0x042F, 0xACC1, 0x0430, 0xACD1, 0x0431, 0xACD2, + 0x0432, 0xACD3, 0x0433, 0xACD4, 0x0434, 0xACD5, 0x0435, 0xACD6, + 0x0436, 0xACD8, 0x0437, 0xACD9, 0x0438, 0xACDA, 0x0439, 0xACDB, + 0x043A, 0xACDC, 0x043B, 0xACDD, 0x043C, 0xACDE, 0x043D, 0xACDF, + 0x043E, 0xACE0, 0x043F, 0xACE1, 0x0440, 0xACE2, 0x0441, 0xACE3, + 0x0442, 0xACE4, 0x0443, 0xACE5, 0x0444, 0xACE6, 0x0445, 0xACE7, + 0x0446, 0xACE8, 0x0447, 0xACE9, 0x0448, 0xACEA, 0x0449, 0xACEB, + 0x044A, 0xACEC, 0x044B, 0xACED, 0x044C, 0xACEE, 0x044D, 0xACEF, + 0x044E, 0xACF0, 0x044F, 0xACF1, 0x0451, 0xACD7, 0x2015, 0xA1AA, + 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, + 0x2020, 0xA2D3, 0x2021, 0xA2D4, 0x2025, 0xA1A5, 0x2026, 0xA1A6, + 0x2030, 0xA2B6, 0x2032, 0xA1C7, 0x2033, 0xA1C8, 0x203B, 0xA1D8, + 0x2074, 0xA9F9, 0x207F, 0xA9FA, 0x2081, 0xA9FB, 0x2082, 0xA9FC, + 0x2083, 0xA9FD, 0x2084, 0xA9FE, 0x20AC, 0xA2E6, 0x2103, 0xA1C9, + 0x2109, 0xA2B5, 0x2113, 0xA7A4, 0x2116, 0xA2E0, 0x2121, 0xA2E5, + 0x2122, 0xA2E2, 0x2126, 0xA7D9, 0x212B, 0xA1CA, 0x2153, 0xA8F7, + 0x2154, 0xA8F8, 0x215B, 0xA8FB, 0x215C, 0xA8FC, 0x215D, 0xA8FD, + 0x215E, 0xA8FE, 0x2160, 0xA5B0, 0x2161, 0xA5B1, 0x2162, 0xA5B2, + 0x2163, 0xA5B3, 0x2164, 0xA5B4, 0x2165, 0xA5B5, 0x2166, 0xA5B6, + 0x2167, 0xA5B7, 0x2168, 0xA5B8, 0x2169, 0xA5B9, 0x2170, 0xA5A1, + 0x2171, 0xA5A2, 0x2172, 0xA5A3, 0x2173, 0xA5A4, 0x2174, 0xA5A5, + 0x2175, 0xA5A6, 0x2176, 0xA5A7, 0x2177, 0xA5A8, 0x2178, 0xA5A9, + 0x2179, 0xA5AA, 0x2190, 0xA1E7, 0x2191, 0xA1E8, 0x2192, 0xA1E6, + 0x2193, 0xA1E9, 0x2194, 0xA1EA, 0x2195, 0xA2D5, 0x2196, 0xA2D8, + 0x2197, 0xA2D6, 0x2198, 0xA2D9, 0x2199, 0xA2D7, 0x21D2, 0xA2A1, + 0x21D4, 0xA2A2, 0x2200, 0xA2A3, 0x2202, 0xA1D3, 0x2203, 0xA2A4, + 0x2207, 0xA1D4, 0x2208, 0xA1F4, 0x220B, 0xA1F5, 0x220F, 0xA2B3, + 0x2211, 0xA2B2, 0x221A, 0xA1EE, 0x221D, 0xA1F0, 0x221E, 0xA1C4, + 0x2220, 0xA1D0, 0x2225, 0xA1AB, 0x2227, 0xA1FC, 0x2228, 0xA1FD, + 0x2229, 0xA1FB, 0x222A, 0xA1FA, 0x222B, 0xA1F2, 0x222C, 0xA1F3, + 0x222E, 0xA2B1, 0x2234, 0xA1C5, 0x2235, 0xA1F1, 0x223C, 0xA1AD, + 0x223D, 0xA1EF, 0x2252, 0xA1D6, 0x2260, 0xA1C1, 0x2261, 0xA1D5, + 0x2264, 0xA1C2, 0x2265, 0xA1C3, 0x226A, 0xA1EC, 0x226B, 0xA1ED, + 0x2282, 0xA1F8, 0x2283, 0xA1F9, 0x2286, 0xA1F6, 0x2287, 0xA1F7, + 0x2299, 0xA2C1, 0x22A5, 0xA1D1, 0x2312, 0xA1D2, 0x2460, 0xA8E7, + 0x2461, 0xA8E8, 0x2462, 0xA8E9, 0x2463, 0xA8EA, 0x2464, 0xA8EB, + 0x2465, 0xA8EC, 0x2466, 0xA8ED, 0x2467, 0xA8EE, 0x2468, 0xA8EF, + 0x2469, 0xA8F0, 0x246A, 0xA8F1, 0x246B, 0xA8F2, 0x246C, 0xA8F3, + 0x246D, 0xA8F4, 0x246E, 0xA8F5, 0x2474, 0xA9E7, 0x2475, 0xA9E8, + 0x2476, 0xA9E9, 0x2477, 0xA9EA, 0x2478, 0xA9EB, 0x2479, 0xA9EC, + 0x247A, 0xA9ED, 0x247B, 0xA9EE, 0x247C, 0xA9EF, 0x247D, 0xA9F0, + 0x247E, 0xA9F1, 0x247F, 0xA9F2, 0x2480, 0xA9F3, 0x2481, 0xA9F4, + 0x2482, 0xA9F5, 0x249C, 0xA9CD, 0x249D, 0xA9CE, 0x249E, 0xA9CF, + 0x249F, 0xA9D0, 0x24A0, 0xA9D1, 0x24A1, 0xA9D2, 0x24A2, 0xA9D3, + 0x24A3, 0xA9D4, 0x24A4, 0xA9D5, 0x24A5, 0xA9D6, 0x24A6, 0xA9D7, + 0x24A7, 0xA9D8, 0x24A8, 0xA9D9, 0x24A9, 0xA9DA, 0x24AA, 0xA9DB, + 0x24AB, 0xA9DC, 0x24AC, 0xA9DD, 0x24AD, 0xA9DE, 0x24AE, 0xA9DF, + 0x24AF, 0xA9E0, 0x24B0, 0xA9E1, 0x24B1, 0xA9E2, 0x24B2, 0xA9E3, + 0x24B3, 0xA9E4, 0x24B4, 0xA9E5, 0x24B5, 0xA9E6, 0x24D0, 0xA8CD, + 0x24D1, 0xA8CE, 0x24D2, 0xA8CF, 0x24D3, 0xA8D0, 0x24D4, 0xA8D1, + 0x24D5, 0xA8D2, 0x24D6, 0xA8D3, 0x24D7, 0xA8D4, 0x24D8, 0xA8D5, + 0x24D9, 0xA8D6, 0x24DA, 0xA8D7, 0x24DB, 0xA8D8, 0x24DC, 0xA8D9, + 0x24DD, 0xA8DA, 0x24DE, 0xA8DB, 0x24DF, 0xA8DC, 0x24E0, 0xA8DD, + 0x24E1, 0xA8DE, 0x24E2, 0xA8DF, 0x24E3, 0xA8E0, 0x24E4, 0xA8E1, + 0x24E5, 0xA8E2, 0x24E6, 0xA8E3, 0x24E7, 0xA8E4, 0x24E8, 0xA8E5, + 0x24E9, 0xA8E6, 0x2500, 0xA6A1, 0x2501, 0xA6AC, 0x2502, 0xA6A2, + 0x2503, 0xA6AD, 0x250C, 0xA6A3, 0x250D, 0xA6C8, 0x250E, 0xA6C7, + 0x250F, 0xA6AE, 0x2510, 0xA6A4, 0x2511, 0xA6C2, 0x2512, 0xA6C1, + 0x2513, 0xA6AF, 0x2514, 0xA6A6, 0x2515, 0xA6C6, 0x2516, 0xA6C5, + 0x2517, 0xA6B1, 0x2518, 0xA6A5, 0x2519, 0xA6C4, 0x251A, 0xA6C3, + 0x251B, 0xA6B0, 0x251C, 0xA6A7, 0x251D, 0xA6BC, 0x251E, 0xA6C9, + 0x251F, 0xA6CA, 0x2520, 0xA6B7, 0x2521, 0xA6CB, 0x2522, 0xA6CC, + 0x2523, 0xA6B2, 0x2524, 0xA6A9, 0x2525, 0xA6BE, 0x2526, 0xA6CD, + 0x2527, 0xA6CE, 0x2528, 0xA6B9, 0x2529, 0xA6CF, 0x252A, 0xA6D0, + 0x252B, 0xA6B4, 0x252C, 0xA6A8, 0x252D, 0xA6D1, 0x252E, 0xA6D2, + 0x252F, 0xA6B8, 0x2530, 0xA6BD, 0x2531, 0xA6D3, 0x2532, 0xA6D4, + 0x2533, 0xA6B3, 0x2534, 0xA6AA, 0x2535, 0xA6D5, 0x2536, 0xA6D6, + 0x2537, 0xA6BA, 0x2538, 0xA6BF, 0x2539, 0xA6D7, 0x253A, 0xA6D8, + 0x253B, 0xA6B5, 0x253C, 0xA6AB, 0x253D, 0xA6D9, 0x253E, 0xA6DA, + 0x253F, 0xA6BB, 0x2540, 0xA6DB, 0x2541, 0xA6DC, 0x2542, 0xA6C0, + 0x2543, 0xA6DD, 0x2544, 0xA6DE, 0x2545, 0xA6DF, 0x2546, 0xA6E0, + 0x2547, 0xA6E1, 0x2548, 0xA6E2, 0x2549, 0xA6E3, 0x254A, 0xA6E4, + 0x254B, 0xA6B6, 0x2592, 0xA2C6, 0x25A0, 0xA1E1, 0x25A1, 0xA1E0, + 0x25A3, 0xA2C3, 0x25A4, 0xA2C7, 0x25A5, 0xA2C8, 0x25A6, 0xA2CB, + 0x25A7, 0xA2CA, 0x25A8, 0xA2C9, 0x25A9, 0xA2CC, 0x25B2, 0xA1E3, + 0x25B3, 0xA1E2, 0x25B6, 0xA2BA, 0x25B7, 0xA2B9, 0x25BC, 0xA1E5, + 0x25BD, 0xA1E4, 0x25C0, 0xA2B8, 0x25C1, 0xA2B7, 0x25C6, 0xA1DF, + 0x25C7, 0xA1DE, 0x25C8, 0xA2C2, 0x25CB, 0xA1DB, 0x25CE, 0xA1DD, + 0x25CF, 0xA1DC, 0x25D0, 0xA2C4, 0x25D1, 0xA2C5, 0x2605, 0xA1DA, + 0x2606, 0xA1D9, 0x260E, 0xA2CF, 0x260F, 0xA2CE, 0x261C, 0xA2D0, + 0x261E, 0xA2D1, 0x2640, 0xA1CF, 0x2642, 0xA1CE, 0x2660, 0xA2BC, + 0x2661, 0xA2BD, 0x2663, 0xA2C0, 0x2664, 0xA2BB, 0x2665, 0xA2BE, + 0x2667, 0xA2BF, 0x2668, 0xA2CD, 0x2669, 0xA2DB, 0x266A, 0xA2DC, + 0x266C, 0xA2DD, 0x266D, 0xA2DA, 0x3000, 0xA1A1, 0x3001, 0xA1A2, + 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3008, 0xA1B4, 0x3009, 0xA1B5, + 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, + 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BC, 0x3011, 0xA1BD, + 0x3013, 0xA1EB, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3041, 0xAAA1, + 0x3042, 0xAAA2, 0x3043, 0xAAA3, 0x3044, 0xAAA4, 0x3045, 0xAAA5, + 0x3046, 0xAAA6, 0x3047, 0xAAA7, 0x3048, 0xAAA8, 0x3049, 0xAAA9, + 0x304A, 0xAAAA, 0x304B, 0xAAAB, 0x304C, 0xAAAC, 0x304D, 0xAAAD, + 0x304E, 0xAAAE, 0x304F, 0xAAAF, 0x3050, 0xAAB0, 0x3051, 0xAAB1, + 0x3052, 0xAAB2, 0x3053, 0xAAB3, 0x3054, 0xAAB4, 0x3055, 0xAAB5, + 0x3056, 0xAAB6, 0x3057, 0xAAB7, 0x3058, 0xAAB8, 0x3059, 0xAAB9, + 0x305A, 0xAABA, 0x305B, 0xAABB, 0x305C, 0xAABC, 0x305D, 0xAABD, + 0x305E, 0xAABE, 0x305F, 0xAABF, 0x3060, 0xAAC0, 0x3061, 0xAAC1, + 0x3062, 0xAAC2, 0x3063, 0xAAC3, 0x3064, 0xAAC4, 0x3065, 0xAAC5, + 0x3066, 0xAAC6, 0x3067, 0xAAC7, 0x3068, 0xAAC8, 0x3069, 0xAAC9, + 0x306A, 0xAACA, 0x306B, 0xAACB, 0x306C, 0xAACC, 0x306D, 0xAACD, + 0x306E, 0xAACE, 0x306F, 0xAACF, 0x3070, 0xAAD0, 0x3071, 0xAAD1, + 0x3072, 0xAAD2, 0x3073, 0xAAD3, 0x3074, 0xAAD4, 0x3075, 0xAAD5, + 0x3076, 0xAAD6, 0x3077, 0xAAD7, 0x3078, 0xAAD8, 0x3079, 0xAAD9, + 0x307A, 0xAADA, 0x307B, 0xAADB, 0x307C, 0xAADC, 0x307D, 0xAADD, + 0x307E, 0xAADE, 0x307F, 0xAADF, 0x3080, 0xAAE0, 0x3081, 0xAAE1, + 0x3082, 0xAAE2, 0x3083, 0xAAE3, 0x3084, 0xAAE4, 0x3085, 0xAAE5, + 0x3086, 0xAAE6, 0x3087, 0xAAE7, 0x3088, 0xAAE8, 0x3089, 0xAAE9, + 0x308A, 0xAAEA, 0x308B, 0xAAEB, 0x308C, 0xAAEC, 0x308D, 0xAAED, + 0x308E, 0xAAEE, 0x308F, 0xAAEF, 0x3090, 0xAAF0, 0x3091, 0xAAF1, + 0x3092, 0xAAF2, 0x3093, 0xAAF3, 0x30A1, 0xABA1, 0x30A2, 0xABA2, + 0x30A3, 0xABA3, 0x30A4, 0xABA4, 0x30A5, 0xABA5, 0x30A6, 0xABA6, + 0x30A7, 0xABA7, 0x30A8, 0xABA8, 0x30A9, 0xABA9, 0x30AA, 0xABAA, + 0x30AB, 0xABAB, 0x30AC, 0xABAC, 0x30AD, 0xABAD, 0x30AE, 0xABAE, + 0x30AF, 0xABAF, 0x30B0, 0xABB0, 0x30B1, 0xABB1, 0x30B2, 0xABB2, + 0x30B3, 0xABB3, 0x30B4, 0xABB4, 0x30B5, 0xABB5, 0x30B6, 0xABB6, + 0x30B7, 0xABB7, 0x30B8, 0xABB8, 0x30B9, 0xABB9, 0x30BA, 0xABBA, + 0x30BB, 0xABBB, 0x30BC, 0xABBC, 0x30BD, 0xABBD, 0x30BE, 0xABBE, + 0x30BF, 0xABBF, 0x30C0, 0xABC0, 0x30C1, 0xABC1, 0x30C2, 0xABC2, + 0x30C3, 0xABC3, 0x30C4, 0xABC4, 0x30C5, 0xABC5, 0x30C6, 0xABC6, + 0x30C7, 0xABC7, 0x30C8, 0xABC8, 0x30C9, 0xABC9, 0x30CA, 0xABCA, + 0x30CB, 0xABCB, 0x30CC, 0xABCC, 0x30CD, 0xABCD, 0x30CE, 0xABCE, + 0x30CF, 0xABCF, 0x30D0, 0xABD0, 0x30D1, 0xABD1, 0x30D2, 0xABD2, + 0x30D3, 0xABD3, 0x30D4, 0xABD4, 0x30D5, 0xABD5, 0x30D6, 0xABD6, + 0x30D7, 0xABD7, 0x30D8, 0xABD8, 0x30D9, 0xABD9, 0x30DA, 0xABDA, + 0x30DB, 0xABDB, 0x30DC, 0xABDC, 0x30DD, 0xABDD, 0x30DE, 0xABDE, + 0x30DF, 0xABDF, 0x30E0, 0xABE0, 0x30E1, 0xABE1, 0x30E2, 0xABE2, + 0x30E3, 0xABE3, 0x30E4, 0xABE4, 0x30E5, 0xABE5, 0x30E6, 0xABE6, + 0x30E7, 0xABE7, 0x30E8, 0xABE8, 0x30E9, 0xABE9, 0x30EA, 0xABEA, + 0x30EB, 0xABEB, 0x30EC, 0xABEC, 0x30ED, 0xABED, 0x30EE, 0xABEE, + 0x30EF, 0xABEF, 0x30F0, 0xABF0, 0x30F1, 0xABF1, 0x30F2, 0xABF2, + 0x30F3, 0xABF3, 0x30F4, 0xABF4, 0x30F5, 0xABF5, 0x30F6, 0xABF6, + 0x3131, 0xA4A1, 0x3132, 0xA4A2, 0x3133, 0xA4A3, 0x3134, 0xA4A4, + 0x3135, 0xA4A5, 0x3136, 0xA4A6, 0x3137, 0xA4A7, 0x3138, 0xA4A8, + 0x3139, 0xA4A9, 0x313A, 0xA4AA, 0x313B, 0xA4AB, 0x313C, 0xA4AC, + 0x313D, 0xA4AD, 0x313E, 0xA4AE, 0x313F, 0xA4AF, 0x3140, 0xA4B0, + 0x3141, 0xA4B1, 0x3142, 0xA4B2, 0x3143, 0xA4B3, 0x3144, 0xA4B4, + 0x3145, 0xA4B5, 0x3146, 0xA4B6, 0x3147, 0xA4B7, 0x3148, 0xA4B8, + 0x3149, 0xA4B9, 0x314A, 0xA4BA, 0x314B, 0xA4BB, 0x314C, 0xA4BC, + 0x314D, 0xA4BD, 0x314E, 0xA4BE, 0x314F, 0xA4BF, 0x3150, 0xA4C0, + 0x3151, 0xA4C1, 0x3152, 0xA4C2, 0x3153, 0xA4C3, 0x3154, 0xA4C4, + 0x3155, 0xA4C5, 0x3156, 0xA4C6, 0x3157, 0xA4C7, 0x3158, 0xA4C8, + 0x3159, 0xA4C9, 0x315A, 0xA4CA, 0x315B, 0xA4CB, 0x315C, 0xA4CC, + 0x315D, 0xA4CD, 0x315E, 0xA4CE, 0x315F, 0xA4CF, 0x3160, 0xA4D0, + 0x3161, 0xA4D1, 0x3162, 0xA4D2, 0x3163, 0xA4D3, 0x3164, 0xA4D4, + 0x3165, 0xA4D5, 0x3166, 0xA4D6, 0x3167, 0xA4D7, 0x3168, 0xA4D8, + 0x3169, 0xA4D9, 0x316A, 0xA4DA, 0x316B, 0xA4DB, 0x316C, 0xA4DC, + 0x316D, 0xA4DD, 0x316E, 0xA4DE, 0x316F, 0xA4DF, 0x3170, 0xA4E0, + 0x3171, 0xA4E1, 0x3172, 0xA4E2, 0x3173, 0xA4E3, 0x3174, 0xA4E4, + 0x3175, 0xA4E5, 0x3176, 0xA4E6, 0x3177, 0xA4E7, 0x3178, 0xA4E8, + 0x3179, 0xA4E9, 0x317A, 0xA4EA, 0x317B, 0xA4EB, 0x317C, 0xA4EC, + 0x317D, 0xA4ED, 0x317E, 0xA4EE, 0x317F, 0xA4EF, 0x3180, 0xA4F0, + 0x3181, 0xA4F1, 0x3182, 0xA4F2, 0x3183, 0xA4F3, 0x3184, 0xA4F4, + 0x3185, 0xA4F5, 0x3186, 0xA4F6, 0x3187, 0xA4F7, 0x3188, 0xA4F8, + 0x3189, 0xA4F9, 0x318A, 0xA4FA, 0x318B, 0xA4FB, 0x318C, 0xA4FC, + 0x318D, 0xA4FD, 0x318E, 0xA4FE, 0x3200, 0xA9B1, 0x3201, 0xA9B2, + 0x3202, 0xA9B3, 0x3203, 0xA9B4, 0x3204, 0xA9B5, 0x3205, 0xA9B6, + 0x3206, 0xA9B7, 0x3207, 0xA9B8, 0x3208, 0xA9B9, 0x3209, 0xA9BA, + 0x320A, 0xA9BB, 0x320B, 0xA9BC, 0x320C, 0xA9BD, 0x320D, 0xA9BE, + 0x320E, 0xA9BF, 0x320F, 0xA9C0, 0x3210, 0xA9C1, 0x3211, 0xA9C2, + 0x3212, 0xA9C3, 0x3213, 0xA9C4, 0x3214, 0xA9C5, 0x3215, 0xA9C6, + 0x3216, 0xA9C7, 0x3217, 0xA9C8, 0x3218, 0xA9C9, 0x3219, 0xA9CA, + 0x321A, 0xA9CB, 0x321B, 0xA9CC, 0x321C, 0xA2DF, 0x3260, 0xA8B1, + 0x3261, 0xA8B2, 0x3262, 0xA8B3, 0x3263, 0xA8B4, 0x3264, 0xA8B5, + 0x3265, 0xA8B6, 0x3266, 0xA8B7, 0x3267, 0xA8B8, 0x3268, 0xA8B9, + 0x3269, 0xA8BA, 0x326A, 0xA8BB, 0x326B, 0xA8BC, 0x326C, 0xA8BD, + 0x326D, 0xA8BE, 0x326E, 0xA8BF, 0x326F, 0xA8C0, 0x3270, 0xA8C1, + 0x3271, 0xA8C2, 0x3272, 0xA8C3, 0x3273, 0xA8C4, 0x3274, 0xA8C5, + 0x3275, 0xA8C6, 0x3276, 0xA8C7, 0x3277, 0xA8C8, 0x3278, 0xA8C9, + 0x3279, 0xA8CA, 0x327A, 0xA8CB, 0x327B, 0xA8CC, 0x327F, 0xA2DE, + 0x3380, 0xA7C9, 0x3381, 0xA7CA, 0x3382, 0xA7CB, 0x3383, 0xA7CC, + 0x3384, 0xA7CD, 0x3388, 0xA7BA, 0x3389, 0xA7BB, 0x338A, 0xA7DC, + 0x338B, 0xA7DD, 0x338C, 0xA7DE, 0x338D, 0xA7B6, 0x338E, 0xA7B7, + 0x338F, 0xA7B8, 0x3390, 0xA7D4, 0x3391, 0xA7D5, 0x3392, 0xA7D6, + 0x3393, 0xA7D7, 0x3394, 0xA7D8, 0x3395, 0xA7A1, 0x3396, 0xA7A2, + 0x3397, 0xA7A3, 0x3398, 0xA7A5, 0x3399, 0xA7AB, 0x339A, 0xA7AC, + 0x339B, 0xA7AD, 0x339C, 0xA7AE, 0x339D, 0xA7AF, 0x339E, 0xA7B0, + 0x339F, 0xA7B1, 0x33A0, 0xA7B2, 0x33A1, 0xA7B3, 0x33A2, 0xA7B4, + 0x33A3, 0xA7A7, 0x33A4, 0xA7A8, 0x33A5, 0xA7A9, 0x33A6, 0xA7AA, + 0x33A7, 0xA7BD, 0x33A8, 0xA7BE, 0x33A9, 0xA7E5, 0x33AA, 0xA7E6, + 0x33AB, 0xA7E7, 0x33AC, 0xA7E8, 0x33AD, 0xA7E1, 0x33AE, 0xA7E2, + 0x33AF, 0xA7E3, 0x33B0, 0xA7BF, 0x33B1, 0xA7C0, 0x33B2, 0xA7C1, + 0x33B3, 0xA7C2, 0x33B4, 0xA7C3, 0x33B5, 0xA7C4, 0x33B6, 0xA7C5, + 0x33B7, 0xA7C6, 0x33B8, 0xA7C7, 0x33B9, 0xA7C8, 0x33BA, 0xA7CE, + 0x33BB, 0xA7CF, 0x33BC, 0xA7D0, 0x33BD, 0xA7D1, 0x33BE, 0xA7D2, + 0x33BF, 0xA7D3, 0x33C0, 0xA7DA, 0x33C1, 0xA7DB, 0x33C2, 0xA2E3, + 0x33C3, 0xA7EC, 0x33C4, 0xA7A6, 0x33C5, 0xA7E0, 0x33C6, 0xA7EF, + 0x33C7, 0xA2E1, 0x33C8, 0xA7BC, 0x33C9, 0xA7ED, 0x33CA, 0xA7B5, + 0x33CF, 0xA7B9, 0x33D0, 0xA7EA, 0x33D3, 0xA7EB, 0x33D6, 0xA7DF, + 0x33D8, 0xA2E4, 0x33DB, 0xA7E4, 0x33DC, 0xA7EE, 0x33DD, 0xA7E9, + 0x4E00, 0xECE9, 0x4E01, 0xEFCB, 0x4E03, 0xF6D2, 0x4E07, 0xD8B2, + 0x4E08, 0xEDDB, 0x4E09, 0xDFB2, 0x4E0A, 0xDFBE, 0x4E0B, 0xF9BB, + 0x4E0D, 0xDCF4, 0x4E11, 0xF5E4, 0x4E14, 0xF3A6, 0x4E15, 0xDDE0, + 0x4E16, 0xE1A6, 0x4E18, 0xCEF8, 0x4E19, 0xDCB0, 0x4E1E, 0xE3AA, + 0x4E2D, 0xF1E9, 0x4E32, 0xCDFA, 0x4E38, 0xFCAF, 0x4E39, 0xD3A1, + 0x4E3B, 0xF1AB, 0x4E42, 0xE7D1, 0x4E43, 0xD2AC, 0x4E45, 0xCEF9, + 0x4E4B, 0xF1FD, 0x4E4D, 0xDEBF, 0x4E4E, 0xFBBA, 0x4E4F, 0xF9B9, + 0x4E56, 0xCED2, 0x4E58, 0xE3AB, 0x4E59, 0xEBE0, 0x4E5D, 0xCEFA, + 0x4E5E, 0xCBF7, 0x4E5F, 0xE5A5, 0x4E6B, 0xCAE1, 0x4E6D, 0xD4CC, + 0x4E73, 0xEAE1, 0x4E76, 0xDCE3, 0x4E77, 0xDFAD, 0x4E7E, 0xCBEB, + 0x4E82, 0xD5AF, 0x4E86, 0xD6F5, 0x4E88, 0xE5F8, 0x4E8B, 0xDEC0, + 0x4E8C, 0xECA3, 0x4E8E, 0xE9CD, 0x4E90, 0xEAA7, 0x4E91, 0xE9F6, + 0x4E92, 0xFBBB, 0x4E94, 0xE7E9, 0x4E95, 0xEFCC, 0x4E98, 0xD0E6, + 0x4E9B, 0xDEC1, 0x4E9E, 0xE4AC, 0x4EA1, 0xD8CC, 0x4EA2, 0xF9F1, + 0x4EA4, 0xCEDF, 0x4EA5, 0xFAA4, 0x4EA6, 0xE6B2, 0x4EA8, 0xFAFB, + 0x4EAB, 0xFABD, 0x4EAC, 0xCCC8, 0x4EAD, 0xEFCD, 0x4EAE, 0xD5D5, + 0x4EB6, 0xD3A2, 0x4EBA, 0xECD1, 0x4EC0, 0xE4A7, 0x4EC1, 0xECD2, + 0x4EC4, 0xF6B1, 0x4EC7, 0xCEFB, 0x4ECA, 0xD0D1, 0x4ECB, 0xCBBF, + 0x4ECD, 0xEDA4, 0x4ED4, 0xEDA8, 0x4ED5, 0xDEC2, 0x4ED6, 0xF6E2, + 0x4ED7, 0xEDDC, 0x4ED8, 0xDCF5, 0x4ED9, 0xE0B9, 0x4EDD, 0xD4CE, + 0x4EDF, 0xF4B5, 0x4EE3, 0xD3DB, 0x4EE4, 0xD6B5, 0x4EE5, 0xECA4, + 0x4EF0, 0xE4E6, 0x4EF2, 0xF1EA, 0x4EF6, 0xCBEC, 0x4EF7, 0xCBC0, + 0x4EFB, 0xECF2, 0x4F01, 0xD0EA, 0x4F09, 0xF9F2, 0x4F0A, 0xECA5, + 0x4F0B, 0xD0DF, 0x4F0D, 0xE7EA, 0x4F0E, 0xD0EB, 0x4F0F, 0xDCD1, + 0x4F10, 0xDBE9, 0x4F11, 0xFDCC, 0x4F2F, 0xDBD7, 0x4F34, 0xDAE1, + 0x4F36, 0xD6B6, 0x4F38, 0xE3DF, 0x4F3A, 0xDEC3, 0x4F3C, 0xDEC4, + 0x4F3D, 0xCAA1, 0x4F43, 0xEEEC, 0x4F46, 0xD3A3, 0x4F47, 0xEEB7, + 0x4F48, 0xF8CF, 0x4F4D, 0xEAC8, 0x4F4E, 0xEEB8, 0x4F4F, 0xF1AC, + 0x4F50, 0xF1A5, 0x4F51, 0xE9CE, 0x4F55, 0xF9BC, 0x4F59, 0xE5F9, + 0x4F5A, 0xECEA, 0x4F5B, 0xDDD6, 0x4F5C, 0xEDC2, 0x4F69, 0xF8A5, + 0x4F6F, 0xE5BA, 0x4F70, 0xDBD8, 0x4F73, 0xCAA2, 0x4F76, 0xD1CD, + 0x4F7A, 0xEEED, 0x4F7E, 0xECEB, 0x4F7F, 0xDEC5, 0x4F81, 0xE3E0, + 0x4F83, 0xCAC9, 0x4F84, 0xF2E9, 0x4F86, 0xD5CE, 0x4F88, 0xF6B6, + 0x4F8A, 0xCEC2, 0x4F8B, 0xD6C7, 0x4F8D, 0xE3B4, 0x4F8F, 0xF1AD, + 0x4F91, 0xEAE2, 0x4F96, 0xD7C2, 0x4F98, 0xF3A7, 0x4F9B, 0xCDEA, + 0x4F9D, 0xEBEE, 0x4FAE, 0xD9B2, 0x4FAF, 0xFDA5, 0x4FB5, 0xF6D5, + 0x4FB6, 0xD5E2, 0x4FBF, 0xF8B5, 0x4FC2, 0xCCF5, 0x4FC3, 0xF5B5, + 0x4FC4, 0xE4AD, 0x4FC9, 0xE7EB, 0x4FCA, 0xF1D5, 0x4FCE, 0xF0BB, + 0x4FD1, 0xE9B5, 0x4FD3, 0xCCC9, 0x4FD4, 0xFAD5, 0x4FD7, 0xE1D4, + 0x4FDA, 0xD7D6, 0x4FDD, 0xDCC1, 0x4FDF, 0xDEC6, 0x4FE0, 0xFAEF, + 0x4FE1, 0xE3E1, 0x4FEE, 0xE1F3, 0x4FEF, 0xDCF6, 0x4FF1, 0xCEFC, + 0x4FF3, 0xDBC4, 0x4FF5, 0xF8F1, 0x4FF8, 0xDCE4, 0x4FFA, 0xE5EF, + 0x5002, 0xDCB1, 0x5006, 0xD5D6, 0x5009, 0xF3DA, 0x500B, 0xCBC1, + 0x500D, 0xDBC3, 0x5011, 0xD9FA, 0x5012, 0xD3EE, 0x5016, 0xFAB8, + 0x5019, 0xFDA6, 0x501A, 0xEBEF, 0x501C, 0xF4A6, 0x501E, 0xCCCA, + 0x501F, 0xF3A8, 0x5021, 0xF3DB, 0x5023, 0xDBA7, 0x5024, 0xF6B7, + 0x5026, 0xCFE6, 0x5027, 0xF0F2, 0x5028, 0xCBDA, 0x502A, 0xE7D2, + 0x502B, 0xD7C3, 0x502C, 0xF6F0, 0x502D, 0xE8DE, 0x503B, 0xE5A6, + 0x5043, 0xE5E7, 0x5047, 0xCAA3, 0x5048, 0xCCA7, 0x5049, 0xEAC9, + 0x504F, 0xF8B6, 0x5055, 0xFAA5, 0x505A, 0xF1AE, 0x505C, 0xEFCE, + 0x5065, 0xCBED, 0x5074, 0xF6B0, 0x5075, 0xEFCF, 0x5076, 0xE9CF, + 0x5078, 0xF7DE, 0x5080, 0xCED3, 0x5085, 0xDCF7, 0x508D, 0xDBA8, + 0x5091, 0xCBF8, 0x5098, 0xDFA1, 0x5099, 0xDDE1, 0x50AC, 0xF5CA, + 0x50AD, 0xE9B6, 0x50B2, 0xE7EC, 0x50B3, 0xEEEE, 0x50B5, 0xF3F0, + 0x50B7, 0xDFBF, 0x50BE, 0xCCCB, 0x50C5, 0xD0C1, 0x50C9, 0xF4D2, + 0x50CA, 0xE0BA, 0x50CF, 0xDFC0, 0x50D1, 0xCEE0, 0x50D5, 0xDCD2, + 0x50D6, 0xFDEA, 0x50DA, 0xD6F6, 0x50DE, 0xEACA, 0x50E5, 0xE8E9, + 0x50E7, 0xE3AC, 0x50ED, 0xF3D0, 0x50F9, 0xCAA4, 0x50FB, 0xDBF8, + 0x50FF, 0xDEC7, 0x5100, 0xEBF0, 0x5101, 0xF1D6, 0x5104, 0xE5E2, + 0x5106, 0xCCCC, 0x5109, 0xCBFB, 0x5112, 0xEAE3, 0x511F, 0xDFC1, + 0x5121, 0xD6ED, 0x512A, 0xE9D0, 0x5132, 0xEEB9, 0x5137, 0xD5E3, + 0x513A, 0xD1D3, 0x513C, 0xE5F0, 0x5140, 0xE8B4, 0x5141, 0xEBC3, + 0x5143, 0xEAAA, 0x5144, 0xFAFC, 0x5145, 0xF5F6, 0x5146, 0xF0BC, + 0x5147, 0xFDD4, 0x5148, 0xE0BB, 0x5149, 0xCEC3, 0x514B, 0xD0BA, + 0x514C, 0xF7BA, 0x514D, 0xD8F3, 0x514E, 0xF7CD, 0x5152, 0xE4AE, + 0x515C, 0xD4DF, 0x5162, 0xD0E7, 0x5165, 0xECFD, 0x5167, 0xD2AE, + 0x5168, 0xEEEF, 0x5169, 0xD5D7, 0x516A, 0xEAE4, 0x516B, 0xF8A2, + 0x516C, 0xCDEB, 0x516D, 0xD7BF, 0x516E, 0xFBB1, 0x5171, 0xCDEC, + 0x5175, 0xDCB2, 0x5176, 0xD0EC, 0x5177, 0xCEFD, 0x5178, 0xEEF0, + 0x517C, 0xCCC2, 0x5180, 0xD0ED, 0x5186, 0xE5F7, 0x518A, 0xF3FC, + 0x518D, 0xEEA2, 0x5192, 0xD9B3, 0x5195, 0xD8F4, 0x5197, 0xE9B7, + 0x51A0, 0xCEAE, 0x51A5, 0xD9A2, 0x51AA, 0xD8F1, 0x51AC, 0xD4CF, + 0x51B6, 0xE5A7, 0x51B7, 0xD5D2, 0x51BD, 0xD6A9, 0x51C4, 0xF4A2, + 0x51C6, 0xF1D7, 0x51C9, 0xD5D8, 0x51CB, 0xF0BD, 0x51CC, 0xD7D0, + 0x51CD, 0xD4D0, 0x51DC, 0xD7CF, 0x51DD, 0xEBEA, 0x51DE, 0xFDEB, + 0x51E1, 0xDBED, 0x51F0, 0xFCC5, 0x51F1, 0xCBC2, 0x51F6, 0xFDD5, + 0x51F8, 0xF4C8, 0x51F9, 0xE8EA, 0x51FA, 0xF5F3, 0x51FD, 0xF9DE, + 0x5200, 0xD3EF, 0x5203, 0xECD3, 0x5206, 0xDDC2, 0x5207, 0xEFB7, + 0x5208, 0xE7D4, 0x520A, 0xCACA, 0x520E, 0xD9FB, 0x5211, 0xFAFD, + 0x5217, 0xD6AA, 0x521D, 0xF4F8, 0x5224, 0xF7F7, 0x5225, 0xDCAC, + 0x5229, 0xD7D7, 0x522A, 0xDFA2, 0x522E, 0xCEBE, 0x5230, 0xD3F0, + 0x5236, 0xF0A4, 0x5237, 0xE1EC, 0x5238, 0xCFE7, 0x5239, 0xF3CB, + 0x523A, 0xEDA9, 0x523B, 0xCABE, 0x5243, 0xF4EF, 0x5247, 0xF6CE, + 0x524A, 0xDEFB, 0x524B, 0xD0BB, 0x524C, 0xD5B7, 0x524D, 0xEEF1, + 0x5254, 0xF4A8, 0x5256, 0xDCF8, 0x525B, 0xCBA7, 0x525D, 0xDACE, + 0x5261, 0xE0E6, 0x5269, 0xEDA5, 0x526A, 0xEEF2, 0x526F, 0xDCF9, + 0x5272, 0xF9DC, 0x5275, 0xF3DC, 0x527D, 0xF8F2, 0x527F, 0xF4F9, + 0x5283, 0xFCF1, 0x5287, 0xD0BC, 0x5288, 0xDBF9, 0x5289, 0xD7B1, + 0x528D, 0xCBFC, 0x5291, 0xF0A5, 0x5292, 0xCBFD, 0x529B, 0xD5F4, + 0x529F, 0xCDED, 0x52A0, 0xCAA5, 0x52A3, 0xD6AB, 0x52A4, 0xD0C2, + 0x52A9, 0xF0BE, 0x52AA, 0xD2BD, 0x52AB, 0xCCA4, 0x52BE, 0xFAB6, + 0x52C1, 0xCCCD, 0x52C3, 0xDAFA, 0x52C5, 0xF6CF, 0x52C7, 0xE9B8, + 0x52C9, 0xD8F5, 0x52CD, 0xCCCE, 0x52D2, 0xD7CD, 0x52D5, 0xD4D1, + 0x52D6, 0xE9ED, 0x52D8, 0xCAEB, 0x52D9, 0xD9E2, 0x52DB, 0xFDB2, + 0x52DD, 0xE3AD, 0x52DE, 0xD6CC, 0x52DF, 0xD9B4, 0x52E2, 0xE1A7, + 0x52E3, 0xEED3, 0x52E4, 0xD0C3, 0x52F3, 0xFDB3, 0x52F5, 0xD5E4, + 0x52F8, 0xCFE8, 0x52FA, 0xEDC3, 0x52FB, 0xD0B2, 0x52FE, 0xCEFE, + 0x52FF, 0xDAA8, 0x5305, 0xF8D0, 0x5308, 0xFDD6, 0x530D, 0xF8D1, + 0x530F, 0xF8D2, 0x5310, 0xDCD3, 0x5315, 0xDDE2, 0x5316, 0xFBF9, + 0x5317, 0xDDC1, 0x5319, 0xE3B5, 0x5320, 0xEDDD, 0x5321, 0xCEC4, + 0x5323, 0xCBA1, 0x532A, 0xDDE3, 0x532F, 0xFCDD, 0x5339, 0xF9AF, + 0x533F, 0xD2FB, 0x5340, 0xCFA1, 0x5341, 0xE4A8, 0x5343, 0xF4B6, + 0x5344, 0xECFE, 0x5347, 0xE3AE, 0x5348, 0xE7ED, 0x5349, 0xFDC1, + 0x534A, 0xDAE2, 0x534D, 0xD8B3, 0x5351, 0xDDE4, 0x5352, 0xF0EF, + 0x5353, 0xF6F1, 0x5354, 0xFAF0, 0x5357, 0xD1F5, 0x535A, 0xDACF, + 0x535C, 0xDCD4, 0x535E, 0xDCA6, 0x5360, 0xEFBF, 0x5366, 0xCECF, + 0x5368, 0xE0D9, 0x536F, 0xD9D6, 0x5370, 0xECD4, 0x5371, 0xEACB, + 0x5374, 0xCABF, 0x5375, 0xD5B0, 0x5377, 0xCFE9, 0x537D, 0xF1ED, + 0x537F, 0xCCCF, 0x5384, 0xE4F8, 0x5393, 0xE4ED, 0x5398, 0xD7D8, + 0x539A, 0xFDA7, 0x539F, 0xEAAB, 0x53A0, 0xF6B2, 0x53A5, 0xCFF0, + 0x53A6, 0xF9BD, 0x53AD, 0xE6F4, 0x53BB, 0xCBDB, 0x53C3, 0xF3D1, + 0x53C8, 0xE9D1, 0x53C9, 0xF3A9, 0x53CA, 0xD0E0, 0x53CB, 0xE9D2, + 0x53CD, 0xDAE3, 0x53D4, 0xE2D2, 0x53D6, 0xF6A2, 0x53D7, 0xE1F4, + 0x53DB, 0xDAE4, 0x53E1, 0xE7D5, 0x53E2, 0xF5BF, 0x53E3, 0xCFA2, + 0x53E4, 0xCDAF, 0x53E5, 0xCFA3, 0x53E9, 0xCDB0, 0x53EA, 0xF1FE, + 0x53EB, 0xD0A3, 0x53EC, 0xE1AF, 0x53ED, 0xF8A3, 0x53EF, 0xCAA6, + 0x53F0, 0xF7BB, 0x53F1, 0xF2EA, 0x53F2, 0xDEC8, 0x53F3, 0xE9D3, + 0x53F8, 0xDEC9, 0x5403, 0xFDDE, 0x5404, 0xCAC0, 0x5408, 0xF9EA, + 0x5409, 0xD1CE, 0x540A, 0xEED4, 0x540C, 0xD4D2, 0x540D, 0xD9A3, + 0x540E, 0xFDA8, 0x540F, 0xD7D9, 0x5410, 0xF7CE, 0x5411, 0xFABE, + 0x541B, 0xCFD6, 0x541D, 0xD7F0, 0x541F, 0xEBE1, 0x5420, 0xF8C5, + 0x5426, 0xDCFA, 0x5429, 0xDDC3, 0x542B, 0xF9DF, 0x5433, 0xE7EF, + 0x5438, 0xFDE5, 0x5439, 0xF6A3, 0x543B, 0xD9FC, 0x543C, 0xFDA9, + 0x543E, 0xE7EE, 0x5442, 0xD5E5, 0x5448, 0xEFD0, 0x544A, 0xCDB1, + 0x5451, 0xF7A2, 0x5468, 0xF1B2, 0x546A, 0xF1B1, 0x5471, 0xCDB2, + 0x5473, 0xDAAB, 0x5475, 0xCAA7, 0x547B, 0xE3E2, 0x547C, 0xFBBC, + 0x547D, 0xD9A4, 0x5480, 0xEEBA, 0x5486, 0xF8D3, 0x548C, 0xFBFA, + 0x548E, 0xCFA4, 0x5490, 0xDCFB, 0x54A4, 0xF6E3, 0x54A8, 0xEDAA, + 0x54AB, 0xF2A1, 0x54AC, 0xCEE1, 0x54B3, 0xFAA6, 0x54B8, 0xF9E0, + 0x54BD, 0xECD6, 0x54C0, 0xE4EE, 0x54C1, 0xF9A1, 0x54C4, 0xFBEF, + 0x54C8, 0xF9EB, 0x54C9, 0xEEA3, 0x54E1, 0xEAAC, 0x54E5, 0xCAA8, + 0x54E8, 0xF4FA, 0x54ED, 0xCDD6, 0x54EE, 0xFCF6, 0x54F2, 0xF4C9, + 0x54FA, 0xF8D4, 0x5504, 0xF8A6, 0x5506, 0xDECA, 0x5507, 0xF2C6, + 0x550E, 0xD7DA, 0x5510, 0xD3D0, 0x551C, 0xD8C5, 0x552F, 0xEAE6, + 0x5531, 0xF3DD, 0x5535, 0xE4DA, 0x553E, 0xF6E4, 0x5544, 0xF6F2, + 0x5546, 0xDFC2, 0x554F, 0xD9FD, 0x5553, 0xCCF6, 0x5556, 0xD3BA, + 0x555E, 0xE4AF, 0x5563, 0xF9E1, 0x557C, 0xF0A6, 0x5580, 0xCBD3, + 0x5584, 0xE0BC, 0x5586, 0xF4CA, 0x5587, 0xD4FA, 0x5589, 0xFDAA, + 0x558A, 0xF9E2, 0x5598, 0xF4B7, 0x5599, 0xFDC2, 0x559A, 0xFCB0, + 0x559C, 0xFDEC, 0x559D, 0xCAE2, 0x55A7, 0xFDBD, 0x55A9, 0xEAE7, + 0x55AA, 0xDFC3, 0x55AB, 0xD1D2, 0x55AC, 0xCEE2, 0x55AE, 0xD3A4, + 0x55C5, 0xFDAB, 0x55C7, 0xDFE0, 0x55D4, 0xF2C7, 0x55DA, 0xE7F0, + 0x55DC, 0xD0EE, 0x55DF, 0xF3AA, 0x55E3, 0xDECB, 0x55E4, 0xF6B8, + 0x55FD, 0xE1F5, 0x55FE, 0xF1B3, 0x5606, 0xF7A3, 0x5609, 0xCAA9, + 0x5614, 0xCFA5, 0x5617, 0xDFC4, 0x562F, 0xE1B0, 0x5632, 0xF0BF, + 0x5634, 0xF6A4, 0x5636, 0xE3B6, 0x5653, 0xFAC6, 0x5668, 0xD0EF, + 0x566B, 0xFDED, 0x5674, 0xDDC4, 0x5686, 0xFCF7, 0x56A5, 0xE6BF, + 0x56AC, 0xDEAD, 0x56AE, 0xFABF, 0x56B4, 0xE5F1, 0x56BC, 0xEDC4, + 0x56CA, 0xD2A5, 0x56CD, 0xFDEE, 0x56D1, 0xF5B6, 0x56DA, 0xE1F6, + 0x56DB, 0xDECC, 0x56DE, 0xFCDE, 0x56E0, 0xECD7, 0x56F0, 0xCDDD, + 0x56F9, 0xD6B7, 0x56FA, 0xCDB3, 0x5703, 0xF8D5, 0x5704, 0xE5D8, + 0x5708, 0xCFEA, 0x570B, 0xCFD0, 0x570D, 0xEACC, 0x5712, 0xEAAE, + 0x5713, 0xEAAD, 0x5716, 0xD3F1, 0x5718, 0xD3A5, 0x571F, 0xF7CF, + 0x5728, 0xEEA4, 0x572D, 0xD0A4, 0x5730, 0xF2A2, 0x573B, 0xD0F0, + 0x5740, 0xF2A3, 0x5742, 0xF7F8, 0x5747, 0xD0B3, 0x574A, 0xDBA9, + 0x574D, 0xD3BB, 0x574E, 0xCAEC, 0x5750, 0xF1A6, 0x5751, 0xCBD5, + 0x5761, 0xF7E7, 0x5764, 0xCDDE, 0x5766, 0xF7A4, 0x576A, 0xF8C0, + 0x576E, 0xD3DD, 0x5770, 0xCCD0, 0x5775, 0xCFA6, 0x577C, 0xF6F3, + 0x5782, 0xE1F7, 0x5788, 0xD3DC, 0x578B, 0xFAFE, 0x5793, 0xFAA7, + 0x57A0, 0xEBD9, 0x57A2, 0xCFA7, 0x57A3, 0xEAAF, 0x57C3, 0xE4EF, + 0x57C7, 0xE9B9, 0x57C8, 0xF1D8, 0x57CB, 0xD8D8, 0x57CE, 0xE0F2, + 0x57DF, 0xE6B4, 0x57E0, 0xDCFC, 0x57F0, 0xF3F1, 0x57F4, 0xE3D0, + 0x57F7, 0xF2FB, 0x57F9, 0xDBC6, 0x57FA, 0xD0F1, 0x57FC, 0xD0F2, + 0x5800, 0xCFDC, 0x5802, 0xD3D1, 0x5805, 0xCCB1, 0x5806, 0xF7D8, + 0x5808, 0xCBA8, 0x5809, 0xEBBC, 0x580A, 0xE4BE, 0x581E, 0xF4DC, + 0x5821, 0xDCC2, 0x5824, 0xF0A7, 0x5827, 0xE6C0, 0x582A, 0xCAED, + 0x582F, 0xE8EB, 0x5830, 0xE5E8, 0x5831, 0xDCC3, 0x5834, 0xEDDE, + 0x5835, 0xD3F2, 0x583A, 0xCCF7, 0x584A, 0xCED4, 0x584B, 0xE7AB, + 0x584F, 0xCBC3, 0x5851, 0xE1B1, 0x5854, 0xF7B2, 0x5857, 0xD3F3, + 0x5858, 0xD3D2, 0x585A, 0xF5C0, 0x585E, 0xDFDD, 0x5861, 0xEEF3, + 0x5862, 0xE7F1, 0x5864, 0xFDB4, 0x5875, 0xF2C8, 0x5879, 0xF3D2, + 0x587C, 0xEEF4, 0x587E, 0xE2D3, 0x5883, 0xCCD1, 0x5885, 0xDFEA, + 0x5889, 0xE9BA, 0x5893, 0xD9D7, 0x589C, 0xF5CD, 0x589E, 0xF1F2, + 0x589F, 0xFAC7, 0x58A8, 0xD9F8, 0x58A9, 0xD4C2, 0x58AE, 0xF6E5, + 0x58B3, 0xDDC5, 0x58BA, 0xE7F2, 0x58BB, 0xEDDF, 0x58BE, 0xCACB, + 0x58C1, 0xDBFA, 0x58C5, 0xE8B5, 0x58C7, 0xD3A6, 0x58CE, 0xFDB5, + 0x58D1, 0xF9C9, 0x58D3, 0xE4E2, 0x58D5, 0xFBBD, 0x58D8, 0xD7A4, + 0x58D9, 0xCEC5, 0x58DE, 0xCED5, 0x58DF, 0xD6E6, 0x58E4, 0xE5BD, + 0x58EB, 0xDECD, 0x58EC, 0xECF3, 0x58EF, 0xEDE0, 0x58F9, 0xECEC, + 0x58FA, 0xFBBE, 0x58FB, 0xDFEB, 0x58FD, 0xE1F8, 0x590F, 0xF9BE, + 0x5914, 0xD0F3, 0x5915, 0xE0AA, 0x5916, 0xE8E2, 0x5919, 0xE2D4, + 0x591A, 0xD2FD, 0x591C, 0xE5A8, 0x5922, 0xD9D3, 0x5927, 0xD3DE, + 0x5929, 0xF4B8, 0x592A, 0xF7BC, 0x592B, 0xDCFD, 0x592D, 0xE8EC, + 0x592E, 0xE4E7, 0x5931, 0xE3F7, 0x5937, 0xECA8, 0x593E, 0xFAF1, + 0x5944, 0xE5F2, 0x5947, 0xD0F4, 0x5948, 0xD2AF, 0x5949, 0xDCE5, + 0x594E, 0xD0A5, 0x594F, 0xF1B4, 0x5950, 0xFCB1, 0x5951, 0xCCF8, + 0x5954, 0xDDC6, 0x5955, 0xFAD1, 0x5957, 0xF7DF, 0x595A, 0xFAA8, + 0x5960, 0xEEF5, 0x5962, 0xDECE, 0x5967, 0xE7F3, 0x596A, 0xF7AC, + 0x596B, 0xEBC4, 0x596C, 0xEDE1, 0x596D, 0xE0AB, 0x596E, 0xDDC7, + 0x5973, 0xD2B3, 0x5974, 0xD2BF, 0x5978, 0xCACC, 0x597D, 0xFBBF, + 0x5982, 0xE5FD, 0x5983, 0xDDE5, 0x5984, 0xD8CD, 0x598A, 0xECF4, + 0x5993, 0xD0F5, 0x5996, 0xE8ED, 0x5997, 0xD0D2, 0x5999, 0xD9D8, + 0x59A5, 0xF6E6, 0x59A8, 0xDBAA, 0x59AC, 0xF7E0, 0x59B9, 0xD8D9, + 0x59BB, 0xF4A3, 0x59BE, 0xF4DD, 0x59C3, 0xEFD1, 0x59C6, 0xD9B5, + 0x59C9, 0xEDAB, 0x59CB, 0xE3B7, 0x59D0, 0xEEBB, 0x59D1, 0xCDB4, + 0x59D3, 0xE0F3, 0x59D4, 0xEACD, 0x59D9, 0xECF5, 0x59DA, 0xE8EE, + 0x59DC, 0xCBA9, 0x59DD, 0xF1AF, 0x59E6, 0xCACD, 0x59E8, 0xECA9, + 0x59EA, 0xF2EB, 0x59EC, 0xFDEF, 0x59EE, 0xF9F3, 0x59F8, 0xE6C1, + 0x59FB, 0xECD8, 0x59FF, 0xEDAC, 0x5A01, 0xEACE, 0x5A03, 0xE8DF, + 0x5A11, 0xDECF, 0x5A18, 0xD2A6, 0x5A1B, 0xE7F4, 0x5A1C, 0xD1D6, + 0x5A1F, 0xE6C2, 0x5A20, 0xE3E3, 0x5A25, 0xE4B0, 0x5A29, 0xD8B4, + 0x5A36, 0xF6A5, 0x5A3C, 0xF3DE, 0x5A41, 0xD7A5, 0x5A46, 0xF7E8, + 0x5A49, 0xE8C6, 0x5A5A, 0xFBE6, 0x5A62, 0xDDE6, 0x5A66, 0xDCFE, + 0x5A92, 0xD8DA, 0x5A9A, 0xDAAC, 0x5A9B, 0xEAB0, 0x5AA4, 0xE3B8, + 0x5AC1, 0xCAAA, 0x5AC2, 0xE1F9, 0x5AC4, 0xEAB1, 0x5AC9, 0xF2EC, + 0x5ACC, 0xFAEE, 0x5AE1, 0xEED5, 0x5AE6, 0xF9F4, 0x5AE9, 0xD2EC, + 0x5B05, 0xFBFB, 0x5B09, 0xFDF0, 0x5B0B, 0xE0BD, 0x5B0C, 0xCEE3, + 0x5B16, 0xF8C6, 0x5B2A, 0xDEAE, 0x5B40, 0xDFC5, 0x5B43, 0xE5BE, + 0x5B50, 0xEDAD, 0x5B51, 0xFAEA, 0x5B54, 0xCDEE, 0x5B55, 0xEDA6, + 0x5B57, 0xEDAE, 0x5B58, 0xF0ED, 0x5B5A, 0xDDA1, 0x5B5C, 0xEDAF, + 0x5B5D, 0xFCF8, 0x5B5F, 0xD8EB, 0x5B63, 0xCCF9, 0x5B64, 0xCDB5, + 0x5B69, 0xFAA9, 0x5B6B, 0xE1DD, 0x5B70, 0xE2D5, 0x5B71, 0xEDCF, + 0x5B75, 0xDDA2, 0x5B78, 0xF9CA, 0x5B7A, 0xEAE8, 0x5B7C, 0xE5ED, + 0x5B85, 0xD3EB, 0x5B87, 0xE9D4, 0x5B88, 0xE1FA, 0x5B89, 0xE4CC, + 0x5B8B, 0xE1E4, 0x5B8C, 0xE8C7, 0x5B8F, 0xCEDB, 0x5B93, 0xDCD5, + 0x5B95, 0xF7B5, 0x5B96, 0xFCF3, 0x5B97, 0xF0F3, 0x5B98, 0xCEAF, + 0x5B99, 0xF1B5, 0x5B9A, 0xEFD2, 0x5B9B, 0xE8C8, 0x5B9C, 0xEBF1, + 0x5BA2, 0xCBD4, 0x5BA3, 0xE0BE, 0x5BA4, 0xE3F8, 0x5BA5, 0xEAE9, + 0x5BA6, 0xFCB2, 0x5BAC, 0xE0F4, 0x5BAE, 0xCFE0, 0x5BB0, 0xEEA5, + 0x5BB3, 0xFAAA, 0x5BB4, 0xE6C3, 0x5BB5, 0xE1B2, 0x5BB6, 0xCAAB, + 0x5BB8, 0xE3E4, 0x5BB9, 0xE9BB, 0x5BBF, 0xE2D6, 0x5BC0, 0xF3F2, + 0x5BC2, 0xEED6, 0x5BC3, 0xEAB2, 0x5BC4, 0xD0F6, 0x5BC5, 0xECD9, + 0x5BC6, 0xDACB, 0x5BC7, 0xCFA8, 0x5BCC, 0xDDA3, 0x5BD0, 0xD8DB, + 0x5BD2, 0xF9CE, 0x5BD3, 0xE9D5, 0x5BD4, 0xE3D1, 0x5BD7, 0xD2BC, + 0x5BDE, 0xD8AC, 0x5BDF, 0xF3CC, 0x5BE1, 0xCDFB, 0x5BE2, 0xF6D6, + 0x5BE4, 0xE7F5, 0x5BE5, 0xE8EF, 0x5BE6, 0xE3F9, 0x5BE7, 0xD2BB, + 0x5BE8, 0xF3F3, 0x5BE9, 0xE3FB, 0x5BEB, 0xDED0, 0x5BEC, 0xCEB0, + 0x5BEE, 0xD6F7, 0x5BEF, 0xF1D9, 0x5BF5, 0xF5C1, 0x5BF6, 0xDCC4, + 0x5BF8, 0xF5BB, 0x5BFA, 0xDED1, 0x5C01, 0xDCE6, 0x5C04, 0xDED2, + 0x5C07, 0xEDE2, 0x5C08, 0xEEF6, 0x5C09, 0xEACF, 0x5C0A, 0xF0EE, + 0x5C0B, 0xE3FC, 0x5C0D, 0xD3DF, 0x5C0E, 0xD3F4, 0x5C0F, 0xE1B3, + 0x5C11, 0xE1B4, 0x5C16, 0xF4D3, 0x5C19, 0xDFC6, 0x5C24, 0xE9D6, + 0x5C28, 0xDBAB, 0x5C31, 0xF6A6, 0x5C38, 0xE3B9, 0x5C39, 0xEBC5, + 0x5C3A, 0xF4A9, 0x5C3B, 0xCDB6, 0x5C3C, 0xD2F9, 0x5C3E, 0xDAAD, + 0x5C3F, 0xD2E3, 0x5C40, 0xCFD1, 0x5C45, 0xCBDC, 0x5C46, 0xCCFA, + 0x5C48, 0xCFDD, 0x5C4B, 0xE8A9, 0x5C4D, 0xE3BB, 0x5C4E, 0xE3BA, + 0x5C51, 0xE0DA, 0x5C55, 0xEEF7, 0x5C5B, 0xDCB3, 0x5C60, 0xD3F5, + 0x5C62, 0xD7A6, 0x5C64, 0xF6B5, 0x5C65, 0xD7DB, 0x5C6C, 0xE1D5, + 0x5C6F, 0xD4EA, 0x5C71, 0xDFA3, 0x5C79, 0xFDDF, 0x5C90, 0xD0F7, + 0x5C91, 0xEDD4, 0x5CA1, 0xCBAA, 0x5CA9, 0xE4DB, 0x5CAB, 0xE1FB, + 0x5CAC, 0xCBA2, 0x5CB1, 0xD3E0, 0x5CB3, 0xE4BF, 0x5CB5, 0xFBC0, + 0x5CB7, 0xDABE, 0x5CB8, 0xE4CD, 0x5CBA, 0xD6B9, 0x5CBE, 0xEFC0, + 0x5CC0, 0xE1FC, 0x5CD9, 0xF6B9, 0x5CE0, 0xDFC7, 0x5CE8, 0xE4B1, + 0x5CEF, 0xDCE7, 0x5CF0, 0xDCE8, 0x5CF4, 0xFAD6, 0x5CF6, 0xD3F6, + 0x5CFB, 0xF1DA, 0x5CFD, 0xFAF2, 0x5D07, 0xE2FD, 0x5D0D, 0xD5CF, + 0x5D0E, 0xD0F8, 0x5D11, 0xCDDF, 0x5D14, 0xF5CB, 0x5D16, 0xE4F0, + 0x5D17, 0xCBAB, 0x5D19, 0xD7C4, 0x5D27, 0xE2FE, 0x5D29, 0xDDDA, + 0x5D4B, 0xDAAE, 0x5D4C, 0xCAEE, 0x5D50, 0xD5B9, 0x5D69, 0xE3A1, + 0x5D6C, 0xE8E3, 0x5D6F, 0xF3AB, 0x5D87, 0xCFA9, 0x5D8B, 0xD3F7, + 0x5D9D, 0xD4F1, 0x5DA0, 0xCEE4, 0x5DA2, 0xE8F2, 0x5DAA, 0xE5F5, + 0x5DB8, 0xE7AE, 0x5DBA, 0xD6BA, 0x5DBC, 0xDFEC, 0x5DBD, 0xE4C0, + 0x5DCD, 0xE8E4, 0x5DD2, 0xD8B5, 0x5DD6, 0xE4DC, 0x5DDD, 0xF4B9, + 0x5DDE, 0xF1B6, 0x5DE1, 0xE2DE, 0x5DE2, 0xE1B5, 0x5DE5, 0xCDEF, + 0x5DE6, 0xF1A7, 0x5DE7, 0xCEE5, 0x5DE8, 0xCBDD, 0x5DEB, 0xD9E3, + 0x5DEE, 0xF3AC, 0x5DF1, 0xD0F9, 0x5DF2, 0xECAB, 0x5DF3, 0xDED3, + 0x5DF4, 0xF7E9, 0x5DF7, 0xF9F5, 0x5DFD, 0xE1DE, 0x5DFE, 0xCBEE, + 0x5E02, 0xE3BC, 0x5E03, 0xF8D6, 0x5E06, 0xDBEE, 0x5E0C, 0xFDF1, + 0x5E11, 0xF7B6, 0x5E16, 0xF4DE, 0x5E19, 0xF2ED, 0x5E1B, 0xDBD9, + 0x5E1D, 0xF0A8, 0x5E25, 0xE1FD, 0x5E2B, 0xDED4, 0x5E2D, 0xE0AC, + 0x5E33, 0xEDE3, 0x5E36, 0xD3E1, 0x5E38, 0xDFC8, 0x5E3D, 0xD9B6, + 0x5E3F, 0xFDAC, 0x5E40, 0xEFD3, 0x5E44, 0xE4C1, 0x5E45, 0xF8EB, + 0x5E47, 0xDBAC, 0x5E4C, 0xFCC6, 0x5E55, 0xD8AD, 0x5E5F, 0xF6BA, + 0x5E61, 0xDBDF, 0x5E62, 0xD3D3, 0x5E63, 0xF8C7, 0x5E72, 0xCACE, + 0x5E73, 0xF8C1, 0x5E74, 0xD2B4, 0x5E77, 0xDCB4, 0x5E78, 0xFAB9, + 0x5E79, 0xCACF, 0x5E7B, 0xFCB3, 0x5E7C, 0xEAEA, 0x5E7D, 0xEAEB, + 0x5E7E, 0xD0FA, 0x5E84, 0xEDE4, 0x5E87, 0xDDE7, 0x5E8A, 0xDFC9, + 0x5E8F, 0xDFED, 0x5E95, 0xEEBC, 0x5E97, 0xEFC1, 0x5E9A, 0xCCD2, + 0x5E9C, 0xDDA4, 0x5EA0, 0xDFCA, 0x5EA6, 0xD3F8, 0x5EA7, 0xF1A8, + 0x5EAB, 0xCDB7, 0x5EAD, 0xEFD4, 0x5EB5, 0xE4DD, 0x5EB6, 0xDFEE, + 0x5EB7, 0xCBAC, 0x5EB8, 0xE9BC, 0x5EBE, 0xEAEC, 0x5EC2, 0xDFCB, + 0x5EC8, 0xF9BF, 0x5EC9, 0xD6AF, 0x5ECA, 0xD5C6, 0x5ED0, 0xCFAA, + 0x5ED3, 0xCEA9, 0x5ED6, 0xD6F8, 0x5EDA, 0xF1B7, 0x5EDB, 0xEEF8, + 0x5EDF, 0xD9D9, 0x5EE0, 0xF3DF, 0x5EE2, 0xF8C8, 0x5EE3, 0xCEC6, + 0x5EEC, 0xD5E6, 0x5EF3, 0xF4E6, 0x5EF6, 0xE6C5, 0x5EF7, 0xEFD5, + 0x5EFA, 0xCBEF, 0x5EFB, 0xFCDF, 0x5F01, 0xDCA7, 0x5F04, 0xD6E7, + 0x5F0A, 0xF8C9, 0x5F0F, 0xE3D2, 0x5F11, 0xE3BD, 0x5F13, 0xCFE1, + 0x5F14, 0xF0C0, 0x5F15, 0xECDA, 0x5F17, 0xDDD7, 0x5F18, 0xFBF0, + 0x5F1B, 0xECAC, 0x5F1F, 0xF0A9, 0x5F26, 0xFAD7, 0x5F27, 0xFBC1, + 0x5F29, 0xD2C0, 0x5F31, 0xE5B0, 0x5F35, 0xEDE5, 0x5F3A, 0xCBAD, + 0x5F3C, 0xF9B0, 0x5F48, 0xF7A5, 0x5F4A, 0xCBAE, 0x5F4C, 0xDAAF, + 0x5F4E, 0xD8B6, 0x5F56, 0xD3A7, 0x5F57, 0xFBB2, 0x5F59, 0xFDC4, + 0x5F5B, 0xECAD, 0x5F62, 0xFBA1, 0x5F66, 0xE5E9, 0x5F67, 0xE9EE, + 0x5F69, 0xF3F4, 0x5F6A, 0xF8F3, 0x5F6B, 0xF0C1, 0x5F6C, 0xDEAF, + 0x5F6D, 0xF8B0, 0x5F70, 0xF3E0, 0x5F71, 0xE7AF, 0x5F77, 0xDBAD, + 0x5F79, 0xE6B5, 0x5F7C, 0xF9A8, 0x5F7F, 0xDDD8, 0x5F80, 0xE8D9, + 0x5F81, 0xEFD6, 0x5F85, 0xD3E2, 0x5F87, 0xE2DF, 0x5F8A, 0xFCE0, + 0x5F8B, 0xD7C8, 0x5F8C, 0xFDAD, 0x5F90, 0xDFEF, 0x5F91, 0xCCD3, + 0x5F92, 0xD3F9, 0x5F97, 0xD4F0, 0x5F98, 0xDBC7, 0x5F99, 0xDED5, + 0x5F9E, 0xF0F4, 0x5FA0, 0xD5D0, 0x5FA1, 0xE5D9, 0x5FA8, 0xFCC7, + 0x5FA9, 0xDCD6, 0x5FAA, 0xE2E0, 0x5FAE, 0xDAB0, 0x5FB5, 0xF3A3, + 0x5FB7, 0xD3EC, 0x5FB9, 0xF4CB, 0x5FBD, 0xFDC5, 0x5FC3, 0xE3FD, + 0x5FC5, 0xF9B1, 0x5FCC, 0xD0FB, 0x5FCD, 0xECDB, 0x5FD6, 0xF5BC, + 0x5FD7, 0xF2A4, 0x5FD8, 0xD8CE, 0x5FD9, 0xD8CF, 0x5FE0, 0xF5F7, + 0x5FEB, 0xF6E1, 0x5FF5, 0xD2B7, 0x5FFD, 0xFBEC, 0x5FFF, 0xDDC8, + 0x600F, 0xE4E8, 0x6012, 0xD2C1, 0x6016, 0xF8D7, 0x601C, 0xD6BB, + 0x601D, 0xDED6, 0x6020, 0xF7BD, 0x6021, 0xECAE, 0x6025, 0xD0E1, + 0x6027, 0xE0F5, 0x6028, 0xEAB3, 0x602A, 0xCED6, 0x602F, 0xCCA5, + 0x6041, 0xECF6, 0x6042, 0xE2E1, 0x6043, 0xE3BE, 0x604D, 0xFCC8, + 0x6050, 0xCDF0, 0x6052, 0xF9F6, 0x6055, 0xDFF0, 0x6059, 0xE5BF, + 0x605D, 0xCEBF, 0x6062, 0xFCE1, 0x6063, 0xEDB0, 0x6064, 0xFDD1, + 0x6065, 0xF6BB, 0x6068, 0xF9CF, 0x6069, 0xEBDA, 0x606A, 0xCAC1, + 0x606C, 0xD2B8, 0x606D, 0xCDF1, 0x606F, 0xE3D3, 0x6070, 0xFDE6, + 0x6085, 0xE6ED, 0x6089, 0xE3FA, 0x608C, 0xF0AA, 0x608D, 0xF9D0, + 0x6094, 0xFCE2, 0x6096, 0xF8A7, 0x609A, 0xE1E5, 0x609B, 0xEEF9, + 0x609F, 0xE7F6, 0x60A0, 0xEAED, 0x60A3, 0xFCB4, 0x60A4, 0xF5C2, + 0x60A7, 0xD7DC, 0x60B0, 0xF0F5, 0x60B2, 0xDDE8, 0x60B3, 0xD3ED, + 0x60B4, 0xF5FC, 0x60B6, 0xDABF, 0x60B8, 0xCCFB, 0x60BC, 0xD3FA, + 0x60BD, 0xF4A4, 0x60C5, 0xEFD7, 0x60C7, 0xD4C3, 0x60D1, 0xFBE3, + 0x60DA, 0xFBED, 0x60DC, 0xE0AD, 0x60DF, 0xEAEE, 0x60E0, 0xFBB3, + 0x60E1, 0xE4C2, 0x60F0, 0xF6E7, 0x60F1, 0xD2DD, 0x60F3, 0xDFCC, + 0x60F6, 0xFCC9, 0x60F9, 0xE5A9, 0x60FA, 0xE0F6, 0x60FB, 0xF6B3, + 0x6101, 0xE1FE, 0x6106, 0xCBF0, 0x6108, 0xEAEF, 0x6109, 0xEAF0, + 0x610D, 0xDAC0, 0x610E, 0xF8B4, 0x610F, 0xEBF2, 0x6115, 0xE4C3, + 0x611A, 0xE9D7, 0x611B, 0xE4F1, 0x611F, 0xCAEF, 0x6127, 0xCED7, + 0x6130, 0xFCCA, 0x6134, 0xF3E1, 0x6137, 0xCBC4, 0x613C, 0xE3E5, + 0x613E, 0xCBC5, 0x613F, 0xEAB4, 0x6142, 0xE9BD, 0x6144, 0xD7C9, + 0x6147, 0xEBDB, 0x6148, 0xEDB1, 0x614A, 0xCCC3, 0x614B, 0xF7BE, + 0x614C, 0xFCCB, 0x6153, 0xF8F4, 0x6155, 0xD9B7, 0x6158, 0xF3D3, + 0x6159, 0xF3D4, 0x615D, 0xF7E4, 0x615F, 0xF7D1, 0x6162, 0xD8B7, + 0x6163, 0xCEB1, 0x6164, 0xCAC2, 0x6167, 0xFBB4, 0x6168, 0xCBC6, + 0x616B, 0xF0F6, 0x616E, 0xD5E7, 0x6170, 0xEAD0, 0x6176, 0xCCD4, + 0x6177, 0xCBAF, 0x617D, 0xF4AA, 0x617E, 0xE9AF, 0x6181, 0xF5C3, + 0x6182, 0xE9D8, 0x618A, 0xDDE9, 0x618E, 0xF1F3, 0x6190, 0xD5FB, + 0x6191, 0xDEBB, 0x6194, 0xF4FB, 0x6198, 0xFDF3, 0x6199, 0xFDF2, + 0x619A, 0xF7A6, 0x61A4, 0xDDC9, 0x61A7, 0xD4D3, 0x61A9, 0xCCA8, + 0x61AB, 0xDAC1, 0x61AC, 0xCCD5, 0x61AE, 0xD9E4, 0x61B2, 0xFACA, + 0x61B6, 0xE5E3, 0x61BA, 0xD3BC, 0x61BE, 0xCAF0, 0x61C3, 0xD0C4, + 0x61C7, 0xCAD0, 0x61C8, 0xFAAB, 0x61C9, 0xEBEB, 0x61CA, 0xE7F8, + 0x61CB, 0xD9E5, 0x61E6, 0xD1D7, 0x61F2, 0xF3A4, 0x61F6, 0xD4FB, + 0x61F7, 0xFCE3, 0x61F8, 0xFAD8, 0x61FA, 0xF3D5, 0x61FC, 0xCFAB, + 0x61FF, 0xEBF3, 0x6200, 0xD5FC, 0x6207, 0xD3D4, 0x6208, 0xCDFC, + 0x620A, 0xD9E6, 0x620C, 0xE2F9, 0x620D, 0xE2A1, 0x620E, 0xEBD4, + 0x6210, 0xE0F7, 0x6211, 0xE4B2, 0x6212, 0xCCFC, 0x6216, 0xFBE4, + 0x621A, 0xF4AB, 0x621F, 0xD0BD, 0x6221, 0xCAF1, 0x622A, 0xEFB8, + 0x622E, 0xD7C0, 0x6230, 0xEEFA, 0x6231, 0xFDF4, 0x6234, 0xD3E3, + 0x6236, 0xFBC2, 0x623E, 0xD5E8, 0x623F, 0xDBAE, 0x6240, 0xE1B6, + 0x6241, 0xF8B7, 0x6247, 0xE0BF, 0x6248, 0xFBC3, 0x6249, 0xDDEA, + 0x624B, 0xE2A2, 0x624D, 0xEEA6, 0x6253, 0xF6E8, 0x6258, 0xF6F5, + 0x626E, 0xDDCA, 0x6271, 0xD0E2, 0x6276, 0xDDA6, 0x6279, 0xDDEB, + 0x627C, 0xE4F9, 0x627F, 0xE3AF, 0x6280, 0xD0FC, 0x6284, 0xF4FC, + 0x6289, 0xCCBC, 0x628A, 0xF7EA, 0x6291, 0xE5E4, 0x6292, 0xDFF1, + 0x6295, 0xF7E1, 0x6297, 0xF9F7, 0x6298, 0xEFB9, 0x629B, 0xF8D8, + 0x62AB, 0xF9A9, 0x62B1, 0xF8D9, 0x62B5, 0xEEBD, 0x62B9, 0xD8C6, + 0x62BC, 0xE4E3, 0x62BD, 0xF5CE, 0x62C2, 0xDDD9, 0x62C7, 0xD9E7, + 0x62C8, 0xD2B9, 0x62C9, 0xD5C3, 0x62CC, 0xDAE5, 0x62CD, 0xDAD0, + 0x62CF, 0xD1D9, 0x62D0, 0xCED8, 0x62D2, 0xCBDE, 0x62D3, 0xF4AC, + 0x62D4, 0xDAFB, 0x62D6, 0xF6E9, 0x62D7, 0xE8F3, 0x62D8, 0xCFAC, + 0x62D9, 0xF0F0, 0x62DB, 0xF4FD, 0x62DC, 0xDBC8, 0x62EC, 0xCEC0, + 0x62ED, 0xE3D4, 0x62EE, 0xD1CF, 0x62EF, 0xF1F5, 0x62F1, 0xCDF2, + 0x62F3, 0xCFEB, 0x62F7, 0xCDB8, 0x62FE, 0xE3A6, 0x62FF, 0xD1DA, + 0x6301, 0xF2A5, 0x6307, 0xF2A6, 0x6309, 0xE4CE, 0x6311, 0xD3FB, + 0x632B, 0xF1A9, 0x632F, 0xF2C9, 0x633A, 0xEFD8, 0x633B, 0xE6C9, + 0x633D, 0xD8B8, 0x633E, 0xFAF3, 0x6349, 0xF3B5, 0x634C, 0xF8A4, + 0x634F, 0xD1F3, 0x6350, 0xE6C8, 0x6355, 0xF8DA, 0x6367, 0xDCE9, + 0x6368, 0xDED7, 0x636E, 0xCBDF, 0x6372, 0xCFEC, 0x6377, 0xF4DF, + 0x637A, 0xD1F4, 0x637B, 0xD2BA, 0x637F, 0xDFF2, 0x6383, 0xE1B7, + 0x6388, 0xE2A3, 0x6389, 0xD3FC, 0x638C, 0xEDE6, 0x6392, 0xDBC9, + 0x6396, 0xE4FA, 0x6398, 0xCFDE, 0x639B, 0xCED0, 0x63A0, 0xD5D3, + 0x63A1, 0xF3F5, 0x63A2, 0xF7AE, 0x63A5, 0xEFC8, 0x63A7, 0xCDF3, + 0x63A8, 0xF5CF, 0x63A9, 0xE5F3, 0x63AA, 0xF0C2, 0x63C0, 0xCAD1, + 0x63C4, 0xEAF1, 0x63C6, 0xD0A6, 0x63CF, 0xD9DA, 0x63D0, 0xF0AB, + 0x63D6, 0xEBE7, 0x63DA, 0xE5C0, 0x63DB, 0xFCB5, 0x63E1, 0xE4C4, + 0x63ED, 0xCCA9, 0x63EE, 0xFDC6, 0x63F4, 0xEAB5, 0x63F6, 0xE5AA, + 0x63F7, 0xDFBA, 0x640D, 0xE1DF, 0x640F, 0xDAD1, 0x6414, 0xE1B8, + 0x6416, 0xE8F4, 0x6417, 0xD3FD, 0x641C, 0xE2A4, 0x6422, 0xF2CA, + 0x642C, 0xDAE6, 0x642D, 0xF7B3, 0x643A, 0xFDCD, 0x643E, 0xF3B6, + 0x6458, 0xEED7, 0x6460, 0xF5C4, 0x6469, 0xD8A4, 0x646F, 0xF2A7, + 0x6478, 0xD9B8, 0x6479, 0xD9B9, 0x647A, 0xEFC9, 0x6488, 0xD6CE, + 0x6491, 0xF7CB, 0x6492, 0xDFAE, 0x6493, 0xE8F5, 0x649A, 0xD2B5, + 0x649E, 0xD3D5, 0x64A4, 0xF4CC, 0x64A5, 0xDAFC, 0x64AB, 0xD9E8, + 0x64AD, 0xF7EB, 0x64AE, 0xF5C9, 0x64B0, 0xF3BC, 0x64B2, 0xDAD2, + 0x64BB, 0xD3B5, 0x64C1, 0xE8B6, 0x64C4, 0xD6CF, 0x64C5, 0xF4BA, + 0x64C7, 0xF7C9, 0x64CA, 0xCCAA, 0x64CD, 0xF0C3, 0x64CE, 0xCCD6, + 0x64D2, 0xD0D3, 0x64D4, 0xD3BD, 0x64D8, 0xDBFB, 0x64DA, 0xCBE0, + 0x64E1, 0xD3E4, 0x64E2, 0xF6F7, 0x64E5, 0xD5BA, 0x64E6, 0xF3CD, + 0x64E7, 0xCBE1, 0x64EC, 0xEBF4, 0x64F2, 0xF4AD, 0x64F4, 0xFCAA, + 0x64FA, 0xF7EC, 0x64FE, 0xE8F6, 0x6500, 0xDAE7, 0x6504, 0xF7CC, + 0x6518, 0xE5C1, 0x651D, 0xE0EE, 0x6523, 0xD5FD, 0x652A, 0xCEE6, + 0x652B, 0xFCAB, 0x652C, 0xD5BB, 0x652F, 0xF2A8, 0x6536, 0xE2A5, + 0x6537, 0xCDB9, 0x6538, 0xEAF2, 0x6539, 0xCBC7, 0x653B, 0xCDF4, + 0x653E, 0xDBAF, 0x653F, 0xEFD9, 0x6545, 0xCDBA, 0x6548, 0xFCF9, + 0x654D, 0xDFF3, 0x654E, 0xCEE7, 0x654F, 0xDAC2, 0x6551, 0xCFAD, + 0x6556, 0xE7F9, 0x6557, 0xF8A8, 0x655E, 0xF3E2, 0x6562, 0xCAF2, + 0x6563, 0xDFA4, 0x6566, 0xD4C4, 0x656C, 0xCCD7, 0x656D, 0xE5C2, + 0x6572, 0xCDBB, 0x6574, 0xEFDA, 0x6575, 0xEED8, 0x6577, 0xDDA7, + 0x6578, 0xE2A6, 0x657E, 0xE0C0, 0x6582, 0xD6B0, 0x6583, 0xF8CA, + 0x6585, 0xFCFA, 0x6587, 0xD9FE, 0x658C, 0xDEB0, 0x6590, 0xDDEC, + 0x6591, 0xDAE8, 0x6597, 0xD4E0, 0x6599, 0xD6F9, 0x659B, 0xCDD7, + 0x659C, 0xDED8, 0x659F, 0xF2F8, 0x65A1, 0xE4D6, 0x65A4, 0xD0C5, + 0x65A5, 0xF4AE, 0x65A7, 0xDDA8, 0x65AB, 0xEDC5, 0x65AC, 0xF3D6, + 0x65AF, 0xDED9, 0x65B0, 0xE3E6, 0x65B7, 0xD3A8, 0x65B9, 0xDBB0, + 0x65BC, 0xE5DA, 0x65BD, 0xE3BF, 0x65C1, 0xDBB1, 0x65C5, 0xD5E9, + 0x65CB, 0xE0C1, 0x65CC, 0xEFDB, 0x65CF, 0xF0E9, 0x65D2, 0xD7B2, + 0x65D7, 0xD0FD, 0x65E0, 0xD9E9, 0x65E3, 0xD0FE, 0x65E5, 0xECED, + 0x65E6, 0xD3A9, 0x65E8, 0xF2A9, 0x65E9, 0xF0C4, 0x65EC, 0xE2E2, + 0x65ED, 0xE9EF, 0x65F1, 0xF9D1, 0x65F4, 0xE9D9, 0x65FA, 0xE8DA, + 0x65FB, 0xDAC3, 0x65FC, 0xDAC4, 0x65FD, 0xD4C5, 0x65FF, 0xE7FA, + 0x6606, 0xCDE0, 0x6607, 0xE3B0, 0x6609, 0xDBB2, 0x660A, 0xFBC4, + 0x660C, 0xF3E3, 0x660E, 0xD9A5, 0x660F, 0xFBE7, 0x6610, 0xDDCB, + 0x6611, 0xD0D4, 0x6613, 0xE6B6, 0x6614, 0xE0AE, 0x6615, 0xFDDA, + 0x661E, 0xDCB5, 0x661F, 0xE0F8, 0x6620, 0xE7B1, 0x6625, 0xF5F0, + 0x6627, 0xD8DC, 0x6628, 0xEDC6, 0x662D, 0xE1B9, 0x662F, 0xE3C0, + 0x6630, 0xF9C0, 0x6631, 0xE9F0, 0x6634, 0xD9DB, 0x6636, 0xF3E4, + 0x663A, 0xDCB6, 0x663B, 0xE4E9, 0x6641, 0xF0C5, 0x6642, 0xE3C1, + 0x6643, 0xFCCC, 0x6644, 0xFCCD, 0x6649, 0xF2CB, 0x664B, 0xF2CC, + 0x664F, 0xE4CF, 0x6659, 0xF1DB, 0x665B, 0xFAD9, 0x665D, 0xF1B8, + 0x665E, 0xFDF5, 0x665F, 0xE0F9, 0x6664, 0xE7FB, 0x6665, 0xFCB7, + 0x6666, 0xFCE4, 0x6667, 0xFBC5, 0x6668, 0xE3E7, 0x6669, 0xD8B9, + 0x666B, 0xF6F8, 0x666E, 0xDCC5, 0x666F, 0xCCD8, 0x6673, 0xE0AF, + 0x6674, 0xF4E7, 0x6676, 0xEFDC, 0x6677, 0xCFFC, 0x6678, 0xEFDD, + 0x667A, 0xF2AA, 0x6684, 0xFDBE, 0x6687, 0xCAAC, 0x6688, 0xFDBB, + 0x6689, 0xFDC7, 0x668E, 0xE7B2, 0x6690, 0xEAD1, 0x6691, 0xDFF4, + 0x6696, 0xD1EC, 0x6697, 0xE4DE, 0x6698, 0xE5C3, 0x669D, 0xD9A6, + 0x66A0, 0xCDBC, 0x66A2, 0xF3E5, 0x66AB, 0xEDD5, 0x66AE, 0xD9BA, + 0x66B2, 0xEDE7, 0x66B3, 0xFBB5, 0x66B4, 0xF8EC, 0x66B9, 0xE0E7, + 0x66BB, 0xCCD9, 0x66BE, 0xD4C6, 0x66C4, 0xE7A5, 0x66C6, 0xD5F5, + 0x66C7, 0xD3BE, 0x66C9, 0xFCFB, 0x66D6, 0xE4F2, 0x66D9, 0xDFF5, + 0x66DC, 0xE8F8, 0x66DD, 0xF8ED, 0x66E0, 0xCEC7, 0x66E6, 0xFDF6, + 0x66F0, 0xE8D8, 0x66F2, 0xCDD8, 0x66F3, 0xE7D6, 0x66F4, 0xCCDA, + 0x66F7, 0xCAE3, 0x66F8, 0xDFF6, 0x66F9, 0xF0C7, 0x66FA, 0xF0C6, + 0x66FC, 0xD8BA, 0x66FE, 0xF1F4, 0x66FF, 0xF4F0, 0x6700, 0xF5CC, + 0x6703, 0xFCE5, 0x6708, 0xEAC5, 0x6709, 0xEAF3, 0x670B, 0xDDDB, + 0x670D, 0xDCD7, 0x6714, 0xDEFD, 0x6715, 0xF2F9, 0x6717, 0xD5C7, + 0x671B, 0xD8D0, 0x671D, 0xF0C8, 0x671E, 0xD1A1, 0x671F, 0xD1A2, + 0x6726, 0xD9D4, 0x6727, 0xD6E8, 0x6728, 0xD9CA, 0x672A, 0xDAB1, + 0x672B, 0xD8C7, 0x672C, 0xDCE2, 0x672D, 0xF3CE, 0x672E, 0xF5F4, + 0x6731, 0xF1B9, 0x6734, 0xDAD3, 0x6736, 0xF6EA, 0x673A, 0xCFF5, + 0x673D, 0xFDAE, 0x6746, 0xCAD2, 0x6749, 0xDFB4, 0x674E, 0xD7DD, + 0x674F, 0xFABA, 0x6750, 0xEEA7, 0x6751, 0xF5BD, 0x6753, 0xF8F5, + 0x6756, 0xEDE8, 0x675C, 0xD4E1, 0x675E, 0xD1A3, 0x675F, 0xE1D6, + 0x676D, 0xF9F8, 0x676F, 0xDBCA, 0x6770, 0xCBF9, 0x6771, 0xD4D4, + 0x6773, 0xD9DC, 0x6775, 0xEEBE, 0x6777, 0xF7ED, 0x677B, 0xD2EE, + 0x677E, 0xE1E6, 0x677F, 0xF7F9, 0x6787, 0xDDED, 0x6789, 0xE8DB, + 0x678B, 0xDBB3, 0x678F, 0xD1F7, 0x6790, 0xE0B0, 0x6793, 0xD4E2, + 0x6795, 0xF6D7, 0x6797, 0xD7F9, 0x679A, 0xD8DD, 0x679C, 0xCDFD, + 0x679D, 0xF2AB, 0x67AF, 0xCDBD, 0x67B0, 0xF8C2, 0x67B3, 0xF2AC, + 0x67B6, 0xCAAD, 0x67B7, 0xCAAE, 0x67B8, 0xCFAE, 0x67BE, 0xE3C2, + 0x67C4, 0xDCB7, 0x67CF, 0xDBDA, 0x67D0, 0xD9BB, 0x67D1, 0xCAF3, + 0x67D2, 0xF6D3, 0x67D3, 0xE6F8, 0x67D4, 0xEAF5, 0x67DA, 0xEAF6, + 0x67DD, 0xF6F9, 0x67E9, 0xCFAF, 0x67EC, 0xCAD3, 0x67EF, 0xCAAF, + 0x67F0, 0xD2B0, 0x67F1, 0xF1BA, 0x67F3, 0xD7B3, 0x67F4, 0xE3C3, + 0x67F5, 0xF3FD, 0x67F6, 0xDEDA, 0x67FB, 0xDEDB, 0x67FE, 0xEFDE, + 0x6812, 0xE2E3, 0x6813, 0xEEFB, 0x6816, 0xDFF7, 0x6817, 0xD7CA, + 0x6821, 0xCEE8, 0x6822, 0xDBDB, 0x682A, 0xF1BB, 0x682F, 0xE9F1, + 0x6838, 0xFAB7, 0x6839, 0xD0C6, 0x683C, 0xCCAB, 0x683D, 0xEEA8, + 0x6840, 0xCBFA, 0x6841, 0xF9F9, 0x6842, 0xCCFD, 0x6843, 0xD3FE, + 0x6848, 0xE4D0, 0x684E, 0xF2EE, 0x6850, 0xD4D5, 0x6851, 0xDFCD, + 0x6853, 0xFCB8, 0x6854, 0xD1D0, 0x686D, 0xF2CD, 0x6876, 0xF7D2, + 0x687F, 0xCAD4, 0x6881, 0xD5D9, 0x6885, 0xD8DE, 0x688F, 0xCDD9, + 0x6893, 0xEEA9, 0x6894, 0xF6BC, 0x6897, 0xCCDB, 0x689D, 0xF0C9, + 0x689F, 0xFCFC, 0x68A1, 0xE8C9, 0x68A2, 0xF4FE, 0x68A7, 0xE7FC, + 0x68A8, 0xD7DE, 0x68AD, 0xDEDC, 0x68AF, 0xF0AC, 0x68B0, 0xCCFE, + 0x68B1, 0xCDE1, 0x68B3, 0xE1BA, 0x68B5, 0xDBEF, 0x68B6, 0xDAB2, + 0x68C4, 0xD1A5, 0x68C5, 0xDCB8, 0x68C9, 0xD8F6, 0x68CB, 0xD1A4, + 0x68CD, 0xCDE2, 0x68D2, 0xDCEA, 0x68D5, 0xF0F7, 0x68D7, 0xF0CA, + 0x68D8, 0xD0BE, 0x68DA, 0xDDDC, 0x68DF, 0xD4D6, 0x68E0, 0xD3D6, + 0x68E7, 0xEDD0, 0x68E8, 0xCDA1, 0x68EE, 0xDFB5, 0x68F2, 0xDFF8, + 0x68F9, 0xD4A1, 0x68FA, 0xCEB2, 0x6900, 0xE8CA, 0x6905, 0xEBF5, + 0x690D, 0xE3D5, 0x690E, 0xF5D0, 0x6912, 0xF5A1, 0x6927, 0xD9A7, + 0x6930, 0xE5AB, 0x693D, 0xE6CB, 0x693F, 0xF5F1, 0x694A, 0xE5C5, + 0x6953, 0xF9A3, 0x6954, 0xE0DB, 0x6955, 0xF6EB, 0x6957, 0xCBF1, + 0x6959, 0xD9EA, 0x695A, 0xF5A2, 0x695E, 0xD7D1, 0x6960, 0xD1F8, + 0x6961, 0xEAF8, 0x6962, 0xEAF9, 0x6963, 0xDAB3, 0x6968, 0xEFDF, + 0x696B, 0xF1EF, 0x696D, 0xE5F6, 0x696E, 0xEEBF, 0x696F, 0xE2E4, + 0x6975, 0xD0BF, 0x6977, 0xFAAC, 0x6978, 0xF5D1, 0x6979, 0xE7B3, + 0x6995, 0xE9BE, 0x699B, 0xF2CE, 0x699C, 0xDBB4, 0x69A5, 0xFCCE, + 0x69A7, 0xDDEE, 0x69AE, 0xE7B4, 0x69B4, 0xD7B4, 0x69BB, 0xF7B4, + 0x69C1, 0xCDBE, 0x69C3, 0xDAE9, 0x69CB, 0xCFB0, 0x69CC, 0xF7D9, + 0x69CD, 0xF3E6, 0x69D0, 0xCED9, 0x69E8, 0xCEAA, 0x69EA, 0xCBC8, + 0x69FB, 0xD0A7, 0x69FD, 0xF0CB, 0x69FF, 0xD0C7, 0x6A02, 0xE4C5, + 0x6A0A, 0xDBE0, 0x6A11, 0xD5DA, 0x6A13, 0xD7A7, 0x6A17, 0xEEC0, + 0x6A19, 0xF8F6, 0x6A1E, 0xF5D2, 0x6A1F, 0xEDE9, 0x6A21, 0xD9BC, + 0x6A23, 0xE5C6, 0x6A35, 0xF5A3, 0x6A38, 0xDAD4, 0x6A39, 0xE2A7, + 0x6A3A, 0xFBFC, 0x6A3D, 0xF1DC, 0x6A44, 0xCAF4, 0x6A48, 0xE8FA, + 0x6A4B, 0xCEE9, 0x6A52, 0xE9F8, 0x6A53, 0xE2E5, 0x6A58, 0xD0B9, + 0x6A59, 0xD4F2, 0x6A5F, 0xD1A6, 0x6A61, 0xDFCE, 0x6A6B, 0xFCF4, + 0x6A80, 0xD3AA, 0x6A84, 0xCCAC, 0x6A89, 0xEFE0, 0x6A8D, 0xE5E5, + 0x6A8E, 0xD0D5, 0x6A97, 0xDBFC, 0x6A9C, 0xFCE6, 0x6AA2, 0xCBFE, + 0x6AA3, 0xEDEA, 0x6AB3, 0xDEB1, 0x6ABB, 0xF9E3, 0x6AC2, 0xD4A2, + 0x6AC3, 0xCFF6, 0x6AD3, 0xD6D0, 0x6ADA, 0xD5EA, 0x6ADB, 0xF1EE, + 0x6AF6, 0xFACB, 0x6AFB, 0xE5A1, 0x6B04, 0xD5B1, 0x6B0A, 0xCFED, + 0x6B0C, 0xEDEB, 0x6B12, 0xD5B2, 0x6B16, 0xD5BC, 0x6B20, 0xFDE2, + 0x6B21, 0xF3AD, 0x6B23, 0xFDDB, 0x6B32, 0xE9B0, 0x6B3A, 0xD1A7, + 0x6B3D, 0xFDE3, 0x6B3E, 0xCEB3, 0x6B46, 0xFDE4, 0x6B47, 0xFACE, + 0x6B4C, 0xCAB0, 0x6B4E, 0xF7A7, 0x6B50, 0xCFB1, 0x6B5F, 0xE6A2, + 0x6B61, 0xFCB6, 0x6B62, 0xF2AD, 0x6B63, 0xEFE1, 0x6B64, 0xF3AE, + 0x6B65, 0xDCC6, 0x6B66, 0xD9EB, 0x6B6A, 0xE8E0, 0x6B72, 0xE1A8, + 0x6B77, 0xD5F6, 0x6B78, 0xCFFD, 0x6B7B, 0xDEDD, 0x6B7F, 0xD9D1, + 0x6B83, 0xE4EA, 0x6B84, 0xF2CF, 0x6B86, 0xF7BF, 0x6B89, 0xE2E6, + 0x6B8A, 0xE2A8, 0x6B96, 0xE3D6, 0x6B98, 0xEDD1, 0x6B9E, 0xE9F9, + 0x6BAE, 0xD6B1, 0x6BAF, 0xDEB2, 0x6BB2, 0xE0E8, 0x6BB5, 0xD3AB, + 0x6BB7, 0xEBDC, 0x6BBA, 0xDFAF, 0x6BBC, 0xCAC3, 0x6BBF, 0xEEFC, + 0x6BC1, 0xFDC3, 0x6BC5, 0xEBF6, 0x6BC6, 0xCFB2, 0x6BCB, 0xD9EC, + 0x6BCD, 0xD9BD, 0x6BCF, 0xD8DF, 0x6BD2, 0xD4B8, 0x6BD3, 0xEBBE, + 0x6BD4, 0xDDEF, 0x6BD6, 0xDDF0, 0x6BD7, 0xDDF1, 0x6BD8, 0xDDF2, + 0x6BDB, 0xD9BE, 0x6BEB, 0xFBC6, 0x6BEC, 0xCFB3, 0x6C08, 0xEEFD, + 0x6C0F, 0xE4AB, 0x6C11, 0xDAC5, 0x6C13, 0xD8EC, 0x6C23, 0xD1A8, + 0x6C34, 0xE2A9, 0x6C37, 0xDEBC, 0x6C38, 0xE7B5, 0x6C3E, 0xDBF0, + 0x6C40, 0xEFE2, 0x6C41, 0xF1F0, 0x6C42, 0xCFB4, 0x6C4E, 0xDBF1, + 0x6C50, 0xE0B1, 0x6C55, 0xDFA5, 0x6C57, 0xF9D2, 0x6C5A, 0xE7FD, + 0x6C5D, 0xE6A3, 0x6C5E, 0xFBF1, 0x6C5F, 0xCBB0, 0x6C60, 0xF2AE, + 0x6C68, 0xCDE7, 0x6C6A, 0xE8DC, 0x6C6D, 0xE7D7, 0x6C70, 0xF7C0, + 0x6C72, 0xD0E3, 0x6C76, 0xDAA1, 0x6C7A, 0xCCBD, 0x6C7D, 0xD1A9, + 0x6C7E, 0xDDCC, 0x6C81, 0xE3FE, 0x6C82, 0xD1AA, 0x6C83, 0xE8AA, + 0x6C85, 0xEAB6, 0x6C86, 0xF9FA, 0x6C87, 0xE6CC, 0x6C88, 0xF6D8, + 0x6C8C, 0xD4C7, 0x6C90, 0xD9CB, 0x6C92, 0xD9D2, 0x6C93, 0xD3CB, + 0x6C94, 0xD8F7, 0x6C95, 0xDAA9, 0x6C96, 0xF5F8, 0x6C99, 0xDEDE, + 0x6C9A, 0xF2AF, 0x6C9B, 0xF8A9, 0x6CAB, 0xD8C8, 0x6CAE, 0xEEC1, + 0x6CB3, 0xF9C1, 0x6CB8, 0xDDF3, 0x6CB9, 0xEAFA, 0x6CBB, 0xF6BD, + 0x6CBC, 0xE1BB, 0x6CBD, 0xCDBF, 0x6CBE, 0xF4D4, 0x6CBF, 0xE6CD, + 0x6CC1, 0xFCCF, 0x6CC2, 0xFBA2, 0x6CC4, 0xE0DC, 0x6CC9, 0xF4BB, + 0x6CCA, 0xDAD5, 0x6CCC, 0xF9B2, 0x6CD3, 0xFBF2, 0x6CD5, 0xDBF6, + 0x6CD7, 0xDEDF, 0x6CDB, 0xDBF2, 0x6CE1, 0xF8DC, 0x6CE2, 0xF7EE, + 0x6CE3, 0xEBE8, 0x6CE5, 0xD2FA, 0x6CE8, 0xF1BC, 0x6CEB, 0xFADA, + 0x6CEE, 0xDAEA, 0x6CEF, 0xDAC6, 0x6CF0, 0xF7C1, 0x6CF3, 0xE7B6, + 0x6D0B, 0xE5C7, 0x6D0C, 0xD6AC, 0x6D11, 0xDCC7, 0x6D17, 0xE1A9, + 0x6D19, 0xE2AA, 0x6D1B, 0xD5A6, 0x6D1E, 0xD4D7, 0x6D25, 0xF2D0, + 0x6D27, 0xEAFB, 0x6D29, 0xE0DD, 0x6D2A, 0xFBF3, 0x6D32, 0xF1BD, + 0x6D35, 0xE2E7, 0x6D36, 0xFDD7, 0x6D38, 0xCEC8, 0x6D39, 0xEAB7, + 0x6D3B, 0xFCC0, 0x6D3D, 0xFDE7, 0x6D3E, 0xF7EF, 0x6D41, 0xD7B5, + 0x6D59, 0xEFBA, 0x6D5A, 0xF1DD, 0x6D5C, 0xDEB3, 0x6D63, 0xE8CB, + 0x6D66, 0xF8DD, 0x6D69, 0xFBC7, 0x6D6A, 0xD5C8, 0x6D6C, 0xD7DF, + 0x6D6E, 0xDDA9, 0x6D74, 0xE9B1, 0x6D77, 0xFAAD, 0x6D78, 0xF6D9, + 0x6D79, 0xFAF4, 0x6D7F, 0xF8AA, 0x6D85, 0xE6EE, 0x6D87, 0xCCDC, + 0x6D88, 0xE1BC, 0x6D89, 0xE0EF, 0x6D8C, 0xE9BF, 0x6D8D, 0xFCFD, + 0x6D8E, 0xE6CE, 0x6D91, 0xE1D7, 0x6D93, 0xE6CF, 0x6D95, 0xF4F1, + 0x6DAF, 0xE4F3, 0x6DB2, 0xE4FB, 0x6DB5, 0xF9E4, 0x6DC0, 0xEFE3, + 0x6DC3, 0xCFEE, 0x6DC4, 0xF6BE, 0x6DC5, 0xE0B2, 0x6DC6, 0xFCFE, + 0x6DC7, 0xD1AB, 0x6DCB, 0xD7FA, 0x6DCF, 0xFBC8, 0x6DD1, 0xE2D7, + 0x6DD8, 0xD4A3, 0x6DD9, 0xF0F8, 0x6DDA, 0xD7A8, 0x6DDE, 0xE1E7, + 0x6DE1, 0xD3BF, 0x6DE8, 0xEFE4, 0x6DEA, 0xD7C5, 0x6DEB, 0xEBE2, + 0x6DEE, 0xFCE7, 0x6DF1, 0xE4A2, 0x6DF3, 0xE2E8, 0x6DF5, 0xE6D0, + 0x6DF7, 0xFBE8, 0x6DF8, 0xF4E8, 0x6DF9, 0xE5F4, 0x6DFA, 0xF4BC, + 0x6DFB, 0xF4D5, 0x6E17, 0xDFB6, 0x6E19, 0xFCB9, 0x6E1A, 0xEEC2, + 0x6E1B, 0xCAF5, 0x6E1F, 0xEFE5, 0x6E20, 0xCBE2, 0x6E21, 0xD4A4, + 0x6E23, 0xDEE0, 0x6E24, 0xDAFD, 0x6E25, 0xE4C6, 0x6E26, 0xE8BE, + 0x6E2B, 0xE0DE, 0x6E2C, 0xF6B4, 0x6E2D, 0xEAD2, 0x6E2F, 0xF9FB, + 0x6E32, 0xE0C2, 0x6E34, 0xCAE4, 0x6E36, 0xE7B7, 0x6E38, 0xEAFD, + 0x6E3A, 0xD9DD, 0x6E3C, 0xDAB4, 0x6E3D, 0xEEAA, 0x6E3E, 0xFBE9, + 0x6E43, 0xDBCB, 0x6E44, 0xDAB5, 0x6E4A, 0xF1BE, 0x6E4D, 0xD3AC, + 0x6E56, 0xFBC9, 0x6E58, 0xDFCF, 0x6E5B, 0xD3C0, 0x6E5C, 0xE3D7, + 0x6E5E, 0xEFE6, 0x6E5F, 0xFCD0, 0x6E67, 0xE9C0, 0x6E6B, 0xF5D3, + 0x6E6E, 0xECDC, 0x6E6F, 0xF7B7, 0x6E72, 0xEAB8, 0x6E73, 0xD1F9, + 0x6E7A, 0xDCC8, 0x6E90, 0xEAB9, 0x6E96, 0xF1DE, 0x6E9C, 0xD7B6, + 0x6E9D, 0xCFB5, 0x6E9F, 0xD9A8, 0x6EA2, 0xECEE, 0x6EA5, 0xDDAA, + 0x6EAA, 0xCDA2, 0x6EAB, 0xE8AE, 0x6EAF, 0xE1BD, 0x6EB1, 0xF2D1, + 0x6EB6, 0xE9C1, 0x6EBA, 0xD2FC, 0x6EC2, 0xDBB5, 0x6EC4, 0xF3E7, + 0x6EC5, 0xD8FE, 0x6EC9, 0xFCD1, 0x6ECB, 0xEDB2, 0x6ECC, 0xF4AF, + 0x6ECE, 0xFBA3, 0x6ED1, 0xFCC1, 0x6ED3, 0xEEAB, 0x6ED4, 0xD4A5, + 0x6EEF, 0xF4F2, 0x6EF4, 0xEED9, 0x6EF8, 0xFBCA, 0x6EFE, 0xCDE3, + 0x6EFF, 0xD8BB, 0x6F01, 0xE5DB, 0x6F02, 0xF8F7, 0x6F06, 0xF6D4, + 0x6F0F, 0xD7A9, 0x6F11, 0xCBC9, 0x6F14, 0xE6D1, 0x6F15, 0xF0CC, + 0x6F20, 0xD8AE, 0x6F22, 0xF9D3, 0x6F23, 0xD5FE, 0x6F2B, 0xD8BC, + 0x6F2C, 0xF2B0, 0x6F31, 0xE2AB, 0x6F32, 0xF3E8, 0x6F38, 0xEFC2, + 0x6F3F, 0xEDEC, 0x6F41, 0xE7B8, 0x6F51, 0xDAFE, 0x6F54, 0xCCBE, + 0x6F57, 0xF2FC, 0x6F58, 0xDAEB, 0x6F5A, 0xE2D8, 0x6F5B, 0xEDD6, + 0x6F5E, 0xD6D1, 0x6F5F, 0xE0B3, 0x6F62, 0xFCD2, 0x6F64, 0xEBC8, + 0x6F6D, 0xD3C1, 0x6F6E, 0xF0CD, 0x6F70, 0xCFF7, 0x6F7A, 0xEDD2, + 0x6F7C, 0xD4D8, 0x6F7D, 0xDCC9, 0x6F7E, 0xD7F1, 0x6F81, 0xDFBB, + 0x6F84, 0xF3A5, 0x6F88, 0xF4CD, 0x6F8D, 0xF1BF, 0x6F8E, 0xF8B1, + 0x6F90, 0xE9FA, 0x6F94, 0xFBCB, 0x6F97, 0xCAD5, 0x6FA3, 0xF9D4, + 0x6FA4, 0xF7CA, 0x6FA7, 0xD6C8, 0x6FAE, 0xFCE8, 0x6FAF, 0xF3BD, + 0x6FB1, 0xEEFE, 0x6FB3, 0xE7FE, 0x6FB9, 0xD3C2, 0x6FBE, 0xD3B6, + 0x6FC0, 0xCCAD, 0x6FC1, 0xF6FA, 0x6FC2, 0xD6B2, 0x6FC3, 0xD2D8, + 0x6FCA, 0xE7D8, 0x6FD5, 0xE3A5, 0x6FDA, 0xE7B9, 0x6FDF, 0xF0AD, + 0x6FE0, 0xFBCC, 0x6FE1, 0xEBA1, 0x6FE4, 0xD4A6, 0x6FE9, 0xFBCD, + 0x6FEB, 0xD5BD, 0x6FEC, 0xF1DF, 0x6FEF, 0xF6FB, 0x6FF1, 0xDEB4, + 0x6FFE, 0xD5EB, 0x7001, 0xE5C8, 0x7005, 0xFBA4, 0x7006, 0xD4B9, + 0x7009, 0xDEE1, 0x700B, 0xE4A3, 0x700F, 0xD7B7, 0x7011, 0xF8EE, + 0x7015, 0xDEB5, 0x7018, 0xD6D2, 0x701A, 0xF9D5, 0x701B, 0xE7BA, + 0x701C, 0xEBD5, 0x701D, 0xD5F7, 0x701E, 0xEFE7, 0x701F, 0xE1BE, + 0x7023, 0xFAAE, 0x7027, 0xD6E9, 0x7028, 0xD6EE, 0x702F, 0xE7BB, + 0x7037, 0xECCB, 0x703E, 0xD5B3, 0x704C, 0xCEB4, 0x7050, 0xFBA5, + 0x7051, 0xE1EE, 0x7058, 0xF7A8, 0x705D, 0xFBCE, 0x7063, 0xD8BD, + 0x706B, 0xFBFD, 0x7070, 0xFCE9, 0x7078, 0xCFB6, 0x707C, 0xEDC7, + 0x707D, 0xEEAC, 0x7085, 0xCCDD, 0x708A, 0xF6A7, 0x708E, 0xE6FA, + 0x7092, 0xF5A4, 0x7098, 0xFDDC, 0x7099, 0xEDB3, 0x709A, 0xCEC9, + 0x70A1, 0xEFE8, 0x70A4, 0xE1BF, 0x70AB, 0xFADB, 0x70AC, 0xCBE3, + 0x70AD, 0xF7A9, 0x70AF, 0xFBA6, 0x70B3, 0xDCB9, 0x70B7, 0xF1C0, + 0x70B8, 0xEDC8, 0x70B9, 0xEFC3, 0x70C8, 0xD6AD, 0x70CB, 0xFDCE, + 0x70CF, 0xE8A1, 0x70D8, 0xFBF4, 0x70D9, 0xD5A7, 0x70DD, 0xF1F6, + 0x70DF, 0xE6D3, 0x70F1, 0xCCDE, 0x70F9, 0xF8B2, 0x70FD, 0xDCEB, + 0x7104, 0xFDB6, 0x7109, 0xE5EA, 0x710C, 0xF1E0, 0x7119, 0xDBCC, + 0x711A, 0xDDCD, 0x711E, 0xD4C8, 0x7121, 0xD9ED, 0x7126, 0xF5A5, + 0x7130, 0xE6FB, 0x7136, 0xE6D4, 0x7147, 0xFDC8, 0x7149, 0xD6A1, + 0x714A, 0xFDBF, 0x714C, 0xFCD3, 0x714E, 0xEFA1, 0x7150, 0xE7BC, + 0x7156, 0xD1EE, 0x7159, 0xE6D5, 0x715C, 0xE9F2, 0x715E, 0xDFB0, + 0x7164, 0xD8E0, 0x7165, 0xFCBA, 0x7166, 0xFDAF, 0x7167, 0xF0CE, + 0x7169, 0xDBE1, 0x716C, 0xE5C9, 0x716E, 0xEDB4, 0x717D, 0xE0C3, + 0x7184, 0xE3D8, 0x7189, 0xE9FB, 0x718A, 0xEAA8, 0x718F, 0xFDB7, + 0x7192, 0xFBA7, 0x7194, 0xE9C2, 0x7199, 0xFDF7, 0x719F, 0xE2D9, + 0x71A2, 0xDCEC, 0x71AC, 0xE8A2, 0x71B1, 0xE6F0, 0x71B9, 0xFDF8, + 0x71BA, 0xFDF9, 0x71BE, 0xF6BF, 0x71C1, 0xE7A7, 0x71C3, 0xE6D7, + 0x71C8, 0xD4F3, 0x71C9, 0xD4C9, 0x71CE, 0xD6FA, 0x71D0, 0xD7F2, + 0x71D2, 0xE1C0, 0x71D4, 0xDBE2, 0x71D5, 0xE6D8, 0x71DF, 0xE7BD, + 0x71E5, 0xF0CF, 0x71E6, 0xF3BE, 0x71E7, 0xE2AC, 0x71ED, 0xF5B7, + 0x71EE, 0xE0F0, 0x71FB, 0xFDB8, 0x71FC, 0xE3E8, 0x71FE, 0xD4A7, + 0x71FF, 0xE8FC, 0x7200, 0xFAD2, 0x7206, 0xF8EF, 0x7210, 0xD6D3, + 0x721B, 0xD5B4, 0x722A, 0xF0D0, 0x722C, 0xF7F0, 0x722D, 0xEEB3, + 0x7230, 0xEABA, 0x7232, 0xEAD3, 0x7235, 0xEDC9, 0x7236, 0xDDAB, + 0x723A, 0xE5AC, 0x723B, 0xFDA1, 0x723D, 0xDFD0, 0x723E, 0xECB3, + 0x7240, 0xDFD1, 0x7246, 0xEDED, 0x7247, 0xF8B8, 0x7248, 0xF7FA, + 0x724C, 0xF8AB, 0x7252, 0xF4E0, 0x7258, 0xD4BA, 0x7259, 0xE4B3, + 0x725B, 0xE9DA, 0x725D, 0xDEB6, 0x725F, 0xD9BF, 0x7261, 0xD9C0, + 0x7262, 0xD6EF, 0x7267, 0xD9CC, 0x7269, 0xDAAA, 0x7272, 0xDFE5, + 0x7279, 0xF7E5, 0x727D, 0xCCB2, 0x7280, 0xDFF9, 0x7281, 0xD7E0, + 0x72A2, 0xD4BB, 0x72A7, 0xFDFA, 0x72AC, 0xCCB3, 0x72AF, 0xDBF3, + 0x72C0, 0xDFD2, 0x72C2, 0xCECA, 0x72C4, 0xEEDA, 0x72CE, 0xE4E4, + 0x72D0, 0xFBCF, 0x72D7, 0xCFB7, 0x72D9, 0xEEC3, 0x72E1, 0xCEEA, + 0x72E9, 0xE2AD, 0x72F8, 0xD7E1, 0x72F9, 0xFAF5, 0x72FC, 0xD5C9, + 0x72FD, 0xF8AC, 0x730A, 0xE7D9, 0x7316, 0xF3E9, 0x731B, 0xD8ED, + 0x731C, 0xE3C4, 0x731D, 0xF0F1, 0x7325, 0xE8E5, 0x7329, 0xE0FA, + 0x732A, 0xEEC4, 0x732B, 0xD9DE, 0x7336, 0xEBA2, 0x7337, 0xEBA3, + 0x733E, 0xFCC2, 0x733F, 0xEABB, 0x7344, 0xE8AB, 0x7345, 0xDEE2, + 0x7350, 0xEDEF, 0x7352, 0xE8A3, 0x7357, 0xCFF1, 0x7368, 0xD4BC, + 0x736A, 0xFCEA, 0x7370, 0xE7BE, 0x7372, 0xFCF2, 0x7375, 0xD6B4, + 0x7378, 0xE2AE, 0x737A, 0xD3B7, 0x737B, 0xFACC, 0x7384, 0xFADC, + 0x7386, 0xEDB5, 0x7387, 0xE1E3, 0x7389, 0xE8AC, 0x738B, 0xE8DD, + 0x738E, 0xEFE9, 0x7394, 0xF4BD, 0x7396, 0xCFB8, 0x7397, 0xE9DB, + 0x7398, 0xD1AC, 0x739F, 0xDAC7, 0x73A7, 0xEBC9, 0x73A9, 0xE8CC, + 0x73AD, 0xDEB7, 0x73B2, 0xD6BC, 0x73B3, 0xD3E5, 0x73B9, 0xFADD, + 0x73C0, 0xDAD6, 0x73C2, 0xCAB1, 0x73C9, 0xDAC8, 0x73CA, 0xDFA6, + 0x73CC, 0xF9B3, 0x73CD, 0xF2D2, 0x73CF, 0xCAC4, 0x73D6, 0xCECB, + 0x73D9, 0xCDF5, 0x73DD, 0xFDB0, 0x73DE, 0xD5A8, 0x73E0, 0xF1C1, + 0x73E3, 0xE2E9, 0x73E4, 0xDCCA, 0x73E5, 0xECB4, 0x73E6, 0xFAC0, + 0x73E9, 0xFBA8, 0x73EA, 0xD0A8, 0x73ED, 0xDAEC, 0x73F7, 0xD9EE, + 0x73F9, 0xE0FB, 0x73FD, 0xEFEA, 0x73FE, 0xFADE, 0x7401, 0xE0C4, + 0x7403, 0xCFB9, 0x7405, 0xD5CA, 0x7406, 0xD7E2, 0x7407, 0xE2AF, + 0x7409, 0xD7B8, 0x7413, 0xE8CD, 0x741B, 0xF6DA, 0x7420, 0xEFA2, + 0x7421, 0xE2DA, 0x7422, 0xF6FC, 0x7425, 0xFBD0, 0x7426, 0xD1AD, + 0x7428, 0xCDE4, 0x742A, 0xD1AE, 0x742B, 0xDCED, 0x742C, 0xE8CE, + 0x742E, 0xF0F9, 0x742F, 0xCEB5, 0x7430, 0xE6FC, 0x7433, 0xD7FB, + 0x7434, 0xD0D6, 0x7435, 0xDDF5, 0x7436, 0xF7F1, 0x7438, 0xF6FD, + 0x743A, 0xDBF7, 0x743F, 0xFBEA, 0x7440, 0xE9DC, 0x7441, 0xD9C1, + 0x7443, 0xF5F2, 0x7444, 0xE0C5, 0x744B, 0xEAD4, 0x7455, 0xF9C2, + 0x7457, 0xEABC, 0x7459, 0xD2C5, 0x745A, 0xFBD1, 0x745B, 0xE7C0, + 0x745C, 0xEBA5, 0x745E, 0xDFFA, 0x745F, 0xE3A2, 0x7460, 0xD7B9, + 0x7462, 0xE9C3, 0x7464, 0xE8FD, 0x7465, 0xE8AF, 0x7468, 0xF2D3, + 0x7469, 0xFBA9, 0x746A, 0xD8A5, 0x746F, 0xD5CB, 0x747E, 0xD0C8, + 0x7482, 0xD1AF, 0x7483, 0xD7E3, 0x7487, 0xE0C6, 0x7489, 0xD6A2, + 0x748B, 0xEDF0, 0x7498, 0xD7F3, 0x749C, 0xFCD4, 0x749E, 0xDAD7, + 0x749F, 0xCCDF, 0x74A1, 0xF2D4, 0x74A3, 0xD1B0, 0x74A5, 0xCCE0, + 0x74A7, 0xDBFD, 0x74A8, 0xF3BF, 0x74AA, 0xF0D1, 0x74B0, 0xFCBB, + 0x74B2, 0xE2B0, 0x74B5, 0xE6A5, 0x74B9, 0xE2DB, 0x74BD, 0xDFDE, + 0x74BF, 0xE0C7, 0x74C6, 0xF2EF, 0x74CA, 0xCCE1, 0x74CF, 0xD6EA, + 0x74D4, 0xE7C2, 0x74D8, 0xCEB6, 0x74DA, 0xF3C0, 0x74DC, 0xCDFE, + 0x74E0, 0xFBD2, 0x74E2, 0xF8F8, 0x74E3, 0xF7FB, 0x74E6, 0xE8BF, + 0x74EE, 0xE8B7, 0x74F7, 0xEDB6, 0x7501, 0xDCBA, 0x7504, 0xCCB4, + 0x7511, 0xF1F7, 0x7515, 0xE8B8, 0x7518, 0xCAF6, 0x751A, 0xE4A4, + 0x751B, 0xF4D6, 0x751F, 0xDFE6, 0x7523, 0xDFA7, 0x7525, 0xDFE7, + 0x7526, 0xE1C1, 0x7528, 0xE9C4, 0x752B, 0xDCCB, 0x752C, 0xE9C5, + 0x7530, 0xEFA3, 0x7531, 0xEBA6, 0x7532, 0xCBA3, 0x7533, 0xE3E9, + 0x7537, 0xD1FB, 0x7538, 0xEFA4, 0x753A, 0xEFEB, 0x7547, 0xD0B4, + 0x754C, 0xCDA3, 0x754F, 0xE8E6, 0x7551, 0xEFA5, 0x7553, 0xD3CC, + 0x7554, 0xDAED, 0x7559, 0xD7BA, 0x755B, 0xF2D5, 0x755C, 0xF5E5, + 0x755D, 0xD9EF, 0x7562, 0xF9B4, 0x7565, 0xD5D4, 0x7566, 0xFDCF, + 0x756A, 0xDBE3, 0x756F, 0xF1E1, 0x7570, 0xECB6, 0x7575, 0xFBFE, + 0x7576, 0xD3D7, 0x7578, 0xD1B1, 0x757A, 0xCBB1, 0x757F, 0xD1B2, + 0x7586, 0xCBB2, 0x7587, 0xF1C2, 0x758A, 0xF4E1, 0x758B, 0xF9B5, + 0x758E, 0xE1C3, 0x758F, 0xE1C2, 0x7591, 0xEBF7, 0x759D, 0xDFA8, + 0x75A5, 0xCBCA, 0x75AB, 0xE6B9, 0x75B1, 0xF8DE, 0x75B2, 0xF9AA, + 0x75B3, 0xCAF7, 0x75B5, 0xEDB7, 0x75B8, 0xD3B8, 0x75B9, 0xF2D6, + 0x75BC, 0xD4D9, 0x75BD, 0xEEC5, 0x75BE, 0xF2F0, 0x75C2, 0xCAB2, + 0x75C5, 0xDCBB, 0x75C7, 0xF1F8, 0x75CD, 0xECB7, 0x75D2, 0xE5CA, + 0x75D4, 0xF6C0, 0x75D5, 0xFDDD, 0x75D8, 0xD4E3, 0x75D9, 0xCCE2, + 0x75DB, 0xF7D4, 0x75E2, 0xD7E5, 0x75F0, 0xD3C3, 0x75F2, 0xD8A6, + 0x75F4, 0xF6C1, 0x75FA, 0xDDF6, 0x75FC, 0xCDC0, 0x7600, 0xE5DC, + 0x760D, 0xE5CB, 0x7619, 0xE1C4, 0x761F, 0xE8B0, 0x7620, 0xF4B0, + 0x7621, 0xF3EA, 0x7622, 0xDAEE, 0x7624, 0xD7BB, 0x7626, 0xE2B1, + 0x763B, 0xD7AA, 0x7642, 0xD6FB, 0x764C, 0xE4DF, 0x764E, 0xCAD6, + 0x7652, 0xEBA8, 0x7656, 0xDBFE, 0x7661, 0xF6C2, 0x7664, 0xEFBB, + 0x7669, 0xD4FD, 0x766C, 0xE0C8, 0x7670, 0xE8B9, 0x7672, 0xEFA6, + 0x7678, 0xCDA4, 0x767B, 0xD4F4, 0x767C, 0xDBA1, 0x767D, 0xDBDC, + 0x767E, 0xDBDD, 0x7684, 0xEEDC, 0x7686, 0xCBCB, 0x7687, 0xFCD5, + 0x768E, 0xCEEB, 0x7690, 0xCDC1, 0x7693, 0xFBD3, 0x76AE, 0xF9AB, + 0x76BA, 0xF5D4, 0x76BF, 0xD9A9, 0x76C2, 0xE9DD, 0x76C3, 0xDBCD, + 0x76C6, 0xDDCE, 0x76C8, 0xE7C3, 0x76CA, 0xECCC, 0x76D2, 0xF9EC, + 0x76D6, 0xCBCC, 0x76DB, 0xE0FC, 0x76DC, 0xD4A8, 0x76DE, 0xEDD3, + 0x76DF, 0xD8EF, 0x76E1, 0xF2D7, 0x76E3, 0xCAF8, 0x76E4, 0xDAEF, + 0x76E7, 0xD6D4, 0x76EE, 0xD9CD, 0x76F2, 0xD8EE, 0x76F4, 0xF2C1, + 0x76F8, 0xDFD3, 0x76FC, 0xDAF0, 0x76FE, 0xE2EA, 0x7701, 0xE0FD, + 0x7704, 0xD8F8, 0x7708, 0xF7AF, 0x7709, 0xDAB6, 0x770B, 0xCAD7, + 0x771E, 0xF2D8, 0x7720, 0xD8F9, 0x7729, 0xFADF, 0x7737, 0xCFEF, + 0x7738, 0xD9C2, 0x773A, 0xF0D2, 0x773C, 0xE4D1, 0x7740, 0xF3B7, + 0x774D, 0xFAE0, 0x775B, 0xEFEC, 0x7761, 0xE2B2, 0x7763, 0xD4BD, + 0x7766, 0xD9CE, 0x776B, 0xF4E2, 0x7779, 0xD4A9, 0x777E, 0xCDC2, + 0x777F, 0xE7DA, 0x778B, 0xF2D9, 0x7791, 0xD9AA, 0x779E, 0xD8BE, + 0x77A5, 0xDCAD, 0x77AC, 0xE2EB, 0x77AD, 0xD6FC, 0x77B0, 0xCAF9, + 0x77B3, 0xD4DA, 0x77BB, 0xF4D7, 0x77BC, 0xCCA1, 0x77BF, 0xCFBA, + 0x77D7, 0xF5B8, 0x77DB, 0xD9C3, 0x77DC, 0xD0E8, 0x77E2, 0xE3C5, + 0x77E3, 0xEBF8, 0x77E5, 0xF2B1, 0x77E9, 0xCFBB, 0x77ED, 0xD3AD, + 0x77EE, 0xE8E1, 0x77EF, 0xCEEC, 0x77F3, 0xE0B4, 0x7802, 0xDEE3, + 0x7812, 0xDDF7, 0x7825, 0xF2B2, 0x7826, 0xF3F6, 0x7827, 0xF6DB, + 0x782C, 0xD7FE, 0x7832, 0xF8DF, 0x7834, 0xF7F2, 0x7845, 0xD0A9, + 0x784F, 0xE6DA, 0x785D, 0xF5A6, 0x786B, 0xD7BC, 0x786C, 0xCCE3, + 0x786F, 0xE6DB, 0x787C, 0xDDDD, 0x7881, 0xD1B3, 0x7887, 0xEFED, + 0x788C, 0xD6DE, 0x788D, 0xE4F4, 0x788E, 0xE1EF, 0x7891, 0xDDF8, + 0x7897, 0xE8CF, 0x78A3, 0xCAE5, 0x78A7, 0xDCA1, 0x78A9, 0xE0B5, + 0x78BA, 0xFCAC, 0x78BB, 0xFCAD, 0x78BC, 0xD8A7, 0x78C1, 0xEDB8, + 0x78C5, 0xDBB6, 0x78CA, 0xD6F0, 0x78CB, 0xF3AF, 0x78CE, 0xCDA5, + 0x78D0, 0xDAF1, 0x78E8, 0xD8A8, 0x78EC, 0xCCE4, 0x78EF, 0xD1B4, + 0x78F5, 0xCAD8, 0x78FB, 0xDAF2, 0x7901, 0xF5A7, 0x790E, 0xF5A8, + 0x7916, 0xE6A6, 0x792A, 0xD5EC, 0x792B, 0xD5F8, 0x792C, 0xDAF3, + 0x793A, 0xE3C6, 0x793E, 0xDEE4, 0x7940, 0xDEE5, 0x7941, 0xD1B5, + 0x7947, 0xD1B6, 0x7948, 0xD1B7, 0x7949, 0xF2B3, 0x7950, 0xE9DE, + 0x7956, 0xF0D3, 0x7957, 0xF2B4, 0x795A, 0xF0D4, 0x795B, 0xCBE4, + 0x795C, 0xFBD4, 0x795D, 0xF5E6, 0x795E, 0xE3EA, 0x7960, 0xDEE6, + 0x7965, 0xDFD4, 0x7968, 0xF8F9, 0x796D, 0xF0AE, 0x797A, 0xD1B8, + 0x797F, 0xD6DF, 0x7981, 0xD0D7, 0x798D, 0xFCA1, 0x798E, 0xEFEE, + 0x798F, 0xDCD8, 0x7991, 0xE9DF, 0x79A6, 0xE5DD, 0x79A7, 0xFDFB, + 0x79AA, 0xE0C9, 0x79AE, 0xD6C9, 0x79B1, 0xD4AA, 0x79B3, 0xE5CC, + 0x79B9, 0xE9E0, 0x79BD, 0xD0D8, 0x79BE, 0xFCA2, 0x79BF, 0xD4BE, + 0x79C0, 0xE2B3, 0x79C1, 0xDEE7, 0x79C9, 0xDCBC, 0x79CA, 0xD2B6, + 0x79CB, 0xF5D5, 0x79D1, 0xCEA1, 0x79D2, 0xF5A9, 0x79D5, 0xDDF9, + 0x79D8, 0xDDFA, 0x79DF, 0xF0D5, 0x79E4, 0xF6DF, 0x79E6, 0xF2DA, + 0x79E7, 0xE4EB, 0x79E9, 0xF2F1, 0x79FB, 0xECB9, 0x7A00, 0xFDFC, + 0x7A05, 0xE1AA, 0x7A08, 0xCAD9, 0x7A0B, 0xEFEF, 0x7A0D, 0xF5AA, + 0x7A14, 0xECF9, 0x7A17, 0xF8AD, 0x7A19, 0xF2C2, 0x7A1A, 0xF6C3, + 0x7A1C, 0xD7D2, 0x7A1F, 0xF9A2, 0x7A20, 0xF0D6, 0x7A2E, 0xF0FA, + 0x7A31, 0xF6E0, 0x7A36, 0xE9F3, 0x7A37, 0xF2C3, 0x7A3B, 0xD4AB, + 0x7A3C, 0xCAB3, 0x7A3D, 0xCDA6, 0x7A3F, 0xCDC3, 0x7A40, 0xCDDA, + 0x7A46, 0xD9CF, 0x7A49, 0xF6C4, 0x7A4D, 0xEEDD, 0x7A4E, 0xE7C4, + 0x7A57, 0xE2B4, 0x7A61, 0xDFE2, 0x7A62, 0xE7DB, 0x7A69, 0xE8B1, + 0x7A6B, 0xFCAE, 0x7A70, 0xE5CD, 0x7A74, 0xFAEB, 0x7A76, 0xCFBC, + 0x7A79, 0xCFE2, 0x7A7A, 0xCDF6, 0x7A7D, 0xEFF0, 0x7A7F, 0xF4BE, + 0x7A81, 0xD4CD, 0x7A84, 0xF3B8, 0x7A88, 0xE9A1, 0x7A92, 0xF2F2, + 0x7A93, 0xF3EB, 0x7A95, 0xF0D7, 0x7A98, 0xCFD7, 0x7A9F, 0xCFDF, + 0x7AA9, 0xE8C0, 0x7AAA, 0xE8C1, 0x7AAE, 0xCFE3, 0x7AAF, 0xE9A2, + 0x7ABA, 0xD0AA, 0x7AC4, 0xF3C1, 0x7AC5, 0xD0AB, 0x7AC7, 0xD4E4, + 0x7ACA, 0xEFBC, 0x7ACB, 0xD8A1, 0x7AD7, 0xD9DF, 0x7AD9, 0xF3D7, + 0x7ADD, 0xDCBD, 0x7ADF, 0xCCE5, 0x7AE0, 0xEDF1, 0x7AE3, 0xF1E2, + 0x7AE5, 0xD4DB, 0x7AEA, 0xE2B5, 0x7AED, 0xCAE6, 0x7AEF, 0xD3AE, + 0x7AF6, 0xCCE6, 0x7AF9, 0xF1D3, 0x7AFA, 0xF5E7, 0x7AFF, 0xCADA, + 0x7B0F, 0xFBEE, 0x7B11, 0xE1C5, 0x7B19, 0xDFE9, 0x7B1B, 0xEEDE, + 0x7B1E, 0xF7C2, 0x7B20, 0xD8A2, 0x7B26, 0xDDAC, 0x7B2C, 0xF0AF, + 0x7B2D, 0xD6BD, 0x7B39, 0xE1AB, 0x7B46, 0xF9B6, 0x7B49, 0xD4F5, + 0x7B4B, 0xD0C9, 0x7B4C, 0xEFA7, 0x7B4D, 0xE2EC, 0x7B4F, 0xDBEA, + 0x7B50, 0xCECC, 0x7B51, 0xF5E8, 0x7B52, 0xF7D5, 0x7B54, 0xD3CD, + 0x7B56, 0xF3FE, 0x7B60, 0xD0B5, 0x7B6C, 0xE0FE, 0x7B6E, 0xDFFB, + 0x7B75, 0xE6DD, 0x7B7D, 0xE8A4, 0x7B87, 0xCBCD, 0x7B8B, 0xEFA8, + 0x7B8F, 0xEEB4, 0x7B94, 0xDAD8, 0x7B95, 0xD1B9, 0x7B97, 0xDFA9, + 0x7B9A, 0xF3B0, 0x7B9D, 0xCCC4, 0x7BA1, 0xCEB7, 0x7BAD, 0xEFA9, + 0x7BB1, 0xDFD5, 0x7BB4, 0xEDD7, 0x7BB8, 0xEEC6, 0x7BC0, 0xEFBD, + 0x7BC1, 0xFCD6, 0x7BC4, 0xDBF4, 0x7BC6, 0xEFAA, 0x7BC7, 0xF8B9, + 0x7BC9, 0xF5E9, 0x7BD2, 0xE3D9, 0x7BE0, 0xE1C6, 0x7BE4, 0xD4BF, + 0x7BE9, 0xDEE8, 0x7C07, 0xF0EA, 0x7C12, 0xF3C2, 0x7C1E, 0xD3AF, + 0x7C21, 0xCADB, 0x7C27, 0xFCD7, 0x7C2A, 0xEDD8, 0x7C2B, 0xE1C7, + 0x7C3D, 0xF4D8, 0x7C3E, 0xD6B3, 0x7C3F, 0xDDAD, 0x7C43, 0xD5BE, + 0x7C4C, 0xF1C3, 0x7C4D, 0xEEDF, 0x7C60, 0xD6EB, 0x7C64, 0xF4D9, + 0x7C6C, 0xD7E6, 0x7C73, 0xDAB7, 0x7C83, 0xDDFB, 0x7C89, 0xDDCF, + 0x7C92, 0xD8A3, 0x7C95, 0xDAD9, 0x7C97, 0xF0D8, 0x7C98, 0xEFC4, + 0x7C9F, 0xE1D8, 0x7CA5, 0xF1D4, 0x7CA7, 0xEDF2, 0x7CAE, 0xD5DB, + 0x7CB1, 0xD5DC, 0x7CB2, 0xF3C4, 0x7CB3, 0xCBD7, 0x7CB9, 0xE2B6, + 0x7CBE, 0xEFF1, 0x7CCA, 0xFBD5, 0x7CD6, 0xD3D8, 0x7CDE, 0xDDD0, + 0x7CDF, 0xF0D9, 0x7CE0, 0xCBB3, 0x7CE7, 0xD5DD, 0x7CFB, 0xCDA7, + 0x7CFE, 0xD0AC, 0x7D00, 0xD1BA, 0x7D02, 0xF1C4, 0x7D04, 0xE5B3, + 0x7D05, 0xFBF5, 0x7D06, 0xE9E1, 0x7D07, 0xFDE0, 0x7D08, 0xFCBC, + 0x7D0A, 0xDAA2, 0x7D0B, 0xDAA3, 0x7D0D, 0xD2A1, 0x7D10, 0xD2EF, + 0x7D14, 0xE2ED, 0x7D17, 0xDEE9, 0x7D18, 0xCEDC, 0x7D19, 0xF2B5, + 0x7D1A, 0xD0E4, 0x7D1B, 0xDDD1, 0x7D20, 0xE1C8, 0x7D21, 0xDBB7, + 0x7D22, 0xDFE3, 0x7D2B, 0xEDB9, 0x7D2C, 0xF1C5, 0x7D2E, 0xF3CF, + 0x7D2F, 0xD7AB, 0x7D30, 0xE1AC, 0x7D33, 0xE3EB, 0x7D35, 0xEEC7, + 0x7D39, 0xE1C9, 0x7D3A, 0xCAFA, 0x7D42, 0xF0FB, 0x7D43, 0xFAE1, + 0x7D44, 0xF0DA, 0x7D45, 0xCCE7, 0x7D46, 0xDAF4, 0x7D50, 0xCCBF, + 0x7D5E, 0xCEED, 0x7D61, 0xD5A9, 0x7D62, 0xFAE2, 0x7D66, 0xD0E5, + 0x7D68, 0xEBD6, 0x7D6A, 0xECDF, 0x7D6E, 0xDFFC, 0x7D71, 0xF7D6, + 0x7D72, 0xDEEA, 0x7D73, 0xCBB4, 0x7D76, 0xEFBE, 0x7D79, 0xCCB5, + 0x7D7F, 0xCFBD, 0x7D8E, 0xEFF2, 0x7D8F, 0xE2B7, 0x7D93, 0xCCE8, + 0x7D9C, 0xF0FC, 0x7DA0, 0xD6E0, 0x7DA2, 0xF1C6, 0x7DAC, 0xE2B8, + 0x7DAD, 0xEBAB, 0x7DB1, 0xCBB5, 0x7DB2, 0xD8D1, 0x7DB4, 0xF4CE, + 0x7DB5, 0xF3F7, 0x7DB8, 0xD7C6, 0x7DBA, 0xD1BB, 0x7DBB, 0xF7AA, + 0x7DBD, 0xEDCA, 0x7DBE, 0xD7D3, 0x7DBF, 0xD8FA, 0x7DC7, 0xF6C5, + 0x7DCA, 0xD1CC, 0x7DCB, 0xDDFC, 0x7DD6, 0xDFFD, 0x7DD8, 0xF9E5, + 0x7DDA, 0xE0CA, 0x7DDD, 0xF2FD, 0x7DDE, 0xD3B0, 0x7DE0, 0xF4F3, + 0x7DE1, 0xDAC9, 0x7DE3, 0xE6DE, 0x7DE8, 0xF8BA, 0x7DE9, 0xE8D0, + 0x7DEC, 0xD8FB, 0x7DEF, 0xEAD5, 0x7DF4, 0xD6A3, 0x7DFB, 0xF6C6, + 0x7E09, 0xF2DB, 0x7E0A, 0xE4FC, 0x7E15, 0xE8B2, 0x7E1B, 0xDADA, + 0x7E1D, 0xF2DC, 0x7E1E, 0xFBD6, 0x7E1F, 0xE9B2, 0x7E21, 0xEEAD, + 0x7E23, 0xFAE3, 0x7E2B, 0xDCEE, 0x7E2E, 0xF5EA, 0x7E2F, 0xE6E0, + 0x7E31, 0xF0FD, 0x7E37, 0xD7AC, 0x7E3D, 0xF5C5, 0x7E3E, 0xEEE0, + 0x7E41, 0xDBE5, 0x7E43, 0xDDDE, 0x7E46, 0xD9F0, 0x7E47, 0xE9A3, + 0x7E52, 0xF1F9, 0x7E54, 0xF2C4, 0x7E55, 0xE0CB, 0x7E5E, 0xE9A4, + 0x7E61, 0xE2B9, 0x7E69, 0xE3B1, 0x7E6A, 0xFCEB, 0x7E6B, 0xCDA8, + 0x7E6D, 0xCCB6, 0x7E70, 0xF0DB, 0x7E79, 0xE6BA, 0x7E7C, 0xCDA9, + 0x7E82, 0xF3C3, 0x7E8C, 0xE1D9, 0x7E8F, 0xEFAB, 0x7E93, 0xE7C5, + 0x7E96, 0xE0E9, 0x7E98, 0xF3C5, 0x7E9B, 0xD4C0, 0x7E9C, 0xD5BF, + 0x7F36, 0xDDAE, 0x7F38, 0xF9FC, 0x7F3A, 0xCCC0, 0x7F4C, 0xE5A2, + 0x7F50, 0xCEB8, 0x7F54, 0xD8D2, 0x7F55, 0xF9D6, 0x7F6A, 0xF1AA, + 0x7F6B, 0xCED1, 0x7F6E, 0xF6C7, 0x7F70, 0xDBEB, 0x7F72, 0xDFFE, + 0x7F75, 0xD8E1, 0x7F77, 0xF7F3, 0x7F79, 0xD7E7, 0x7F85, 0xD4FE, + 0x7F88, 0xD1BC, 0x7F8A, 0xE5CF, 0x7F8C, 0xCBB6, 0x7F8E, 0xDAB8, + 0x7F94, 0xCDC4, 0x7F9A, 0xD6BE, 0x7F9E, 0xE2BA, 0x7FA4, 0xCFD8, + 0x7FA8, 0xE0CC, 0x7FA9, 0xEBF9, 0x7FB2, 0xFDFD, 0x7FB8, 0xD7E8, + 0x7FB9, 0xCBD8, 0x7FBD, 0xE9E2, 0x7FC1, 0xE8BA, 0x7FC5, 0xE3C7, + 0x7FCA, 0xECCD, 0x7FCC, 0xECCE, 0x7FCE, 0xD6BF, 0x7FD2, 0xE3A7, + 0x7FD4, 0xDFD6, 0x7FD5, 0xFDE8, 0x7FDF, 0xEEE1, 0x7FE0, 0xF6A8, + 0x7FE1, 0xDDFD, 0x7FE9, 0xF8BB, 0x7FEB, 0xE8D1, 0x7FF0, 0xF9D7, + 0x7FF9, 0xCEEE, 0x7FFC, 0xECCF, 0x8000, 0xE9A5, 0x8001, 0xD6D5, + 0x8003, 0xCDC5, 0x8005, 0xEDBA, 0x8006, 0xD1BD, 0x8009, 0xCFBE, + 0x800C, 0xECBB, 0x8010, 0xD2B1, 0x8015, 0xCCE9, 0x8017, 0xD9C4, + 0x8018, 0xE9FC, 0x802D, 0xD1BE, 0x8033, 0xECBC, 0x8036, 0xE5AD, + 0x803D, 0xF7B0, 0x803F, 0xCCEA, 0x8043, 0xD3C4, 0x8046, 0xD6C0, + 0x804A, 0xD6FD, 0x8056, 0xE1A1, 0x8058, 0xDEBD, 0x805A, 0xF6A9, + 0x805E, 0xDAA4, 0x806F, 0xD6A4, 0x8070, 0xF5C6, 0x8072, 0xE1A2, + 0x8073, 0xE9C6, 0x8077, 0xF2C5, 0x807D, 0xF4E9, 0x807E, 0xD6EC, + 0x807F, 0xEBD3, 0x8084, 0xECBD, 0x8085, 0xE2DC, 0x8086, 0xDEEB, + 0x8087, 0xF0DC, 0x8089, 0xEBBF, 0x808B, 0xD7CE, 0x808C, 0xD1BF, + 0x8096, 0xF5AB, 0x809B, 0xF9FD, 0x809D, 0xCADC, 0x80A1, 0xCDC6, + 0x80A2, 0xF2B6, 0x80A5, 0xDDFE, 0x80A9, 0xCCB7, 0x80AA, 0xDBB8, + 0x80AF, 0xD0E9, 0x80B1, 0xCEDD, 0x80B2, 0xEBC0, 0x80B4, 0xFDA2, + 0x80BA, 0xF8CB, 0x80C3, 0xEAD6, 0x80C4, 0xF1B0, 0x80CC, 0xDBCE, + 0x80CE, 0xF7C3, 0x80DA, 0xDBCF, 0x80DB, 0xCBA4, 0x80DE, 0xF8E0, + 0x80E1, 0xFBD7, 0x80E4, 0xEBCA, 0x80E5, 0xE0A1, 0x80F1, 0xCECD, + 0x80F4, 0xD4DC, 0x80F8, 0xFDD8, 0x80FD, 0xD2F6, 0x8102, 0xF2B7, + 0x8105, 0xFAF6, 0x8106, 0xF6AA, 0x8107, 0xFAF7, 0x8108, 0xD8E6, + 0x810A, 0xF4B1, 0x8118, 0xE8D2, 0x811A, 0xCAC5, 0x811B, 0xCCEB, + 0x8123, 0xE2EE, 0x8129, 0xE2BB, 0x812B, 0xF7AD, 0x812F, 0xF8E1, + 0x8139, 0xF3EC, 0x813E, 0xDEA1, 0x814B, 0xE4FD, 0x814E, 0xE3EC, + 0x8150, 0xDDAF, 0x8151, 0xDDB0, 0x8154, 0xCBB7, 0x8155, 0xE8D3, + 0x8165, 0xE1A3, 0x8166, 0xD2E0, 0x816B, 0xF0FE, 0x8170, 0xE9A6, + 0x8171, 0xCBF2, 0x8178, 0xEDF3, 0x8179, 0xDCD9, 0x817A, 0xE0CD, + 0x817F, 0xF7DA, 0x8180, 0xDBB9, 0x8188, 0xCCAE, 0x818A, 0xDADB, + 0x818F, 0xCDC7, 0x819A, 0xDDB1, 0x819C, 0xD8AF, 0x819D, 0xE3A3, + 0x81A0, 0xCEEF, 0x81A3, 0xF2F3, 0x81A8, 0xF8B3, 0x81B3, 0xE0CE, + 0x81B5, 0xF5FD, 0x81BA, 0xEBEC, 0x81BD, 0xD3C5, 0x81BE, 0xFCEC, + 0x81BF, 0xD2DB, 0x81C0, 0xD4EB, 0x81C2, 0xDEA2, 0x81C6, 0xE5E6, + 0x81CD, 0xF0B0, 0x81D8, 0xD5C4, 0x81DF, 0xEDF4, 0x81E3, 0xE3ED, + 0x81E5, 0xE8C2, 0x81E7, 0xEDF5, 0x81E8, 0xD7FC, 0x81EA, 0xEDBB, + 0x81ED, 0xF6AB, 0x81F3, 0xF2B8, 0x81F4, 0xF6C8, 0x81FA, 0xD3E6, + 0x81FB, 0xF2DD, 0x81FC, 0xCFBF, 0x81FE, 0xEBAC, 0x8205, 0xCFC0, + 0x8207, 0xE6A8, 0x8208, 0xFDE9, 0x820A, 0xCFC1, 0x820C, 0xE0DF, + 0x820D, 0xDEEC, 0x8212, 0xE0A2, 0x821B, 0xF4BF, 0x821C, 0xE2EF, + 0x821E, 0xD9F1, 0x821F, 0xF1C7, 0x8221, 0xCBB8, 0x822A, 0xF9FE, + 0x822B, 0xDBBA, 0x822C, 0xDAF5, 0x8235, 0xF6EC, 0x8236, 0xDADC, + 0x8237, 0xFAE4, 0x8239, 0xE0CF, 0x8240, 0xDDB2, 0x8245, 0xE6A9, + 0x8247, 0xEFF3, 0x8259, 0xF3ED, 0x8264, 0xEBFA, 0x8266, 0xF9E6, + 0x826E, 0xCADD, 0x826F, 0xD5DE, 0x8271, 0xCADE, 0x8272, 0xDFE4, + 0x8276, 0xE6FD, 0x8278, 0xF5AC, 0x827E, 0xE4F5, 0x828B, 0xE9E3, + 0x828D, 0xEDCB, 0x828E, 0xCFE4, 0x8292, 0xD8D3, 0x8299, 0xDDB3, + 0x829A, 0xD4EC, 0x829D, 0xF2B9, 0x829F, 0xDFB7, 0x82A5, 0xCBCE, + 0x82A6, 0xFBD8, 0x82A9, 0xD0D9, 0x82AC, 0xDDD2, 0x82AD, 0xF7F4, + 0x82AE, 0xE7DC, 0x82AF, 0xE4A5, 0x82B1, 0xFCA3, 0x82B3, 0xDBBB, + 0x82B7, 0xF2BA, 0x82B8, 0xE9FD, 0x82B9, 0xD0CA, 0x82BB, 0xF5D6, + 0x82BC, 0xD9C5, 0x82BD, 0xE4B4, 0x82BF, 0xEDA7, 0x82D1, 0xEABD, + 0x82D2, 0xE6FE, 0x82D4, 0xF7C4, 0x82D5, 0xF5AD, 0x82D7, 0xD9E0, + 0x82DB, 0xCAB4, 0x82DE, 0xF8E2, 0x82DF, 0xCFC2, 0x82E1, 0xECBE, + 0x82E5, 0xE5B4, 0x82E6, 0xCDC8, 0x82E7, 0xEEC8, 0x82F1, 0xE7C8, + 0x82FD, 0xCDC9, 0x82FE, 0xF9B7, 0x8301, 0xF1E8, 0x8302, 0xD9F2, + 0x8303, 0xDBF5, 0x8304, 0xCAB5, 0x8305, 0xD9C6, 0x8309, 0xD8C9, + 0x8317, 0xD9AB, 0x8328, 0xEDBC, 0x832B, 0xD8D4, 0x832F, 0xDCDA, + 0x8331, 0xE2BC, 0x8334, 0xFCED, 0x8335, 0xECE0, 0x8336, 0xD2FE, + 0x8338, 0xE9C7, 0x8339, 0xE6AA, 0x8340, 0xE2F0, 0x8347, 0xFABB, + 0x8349, 0xF5AE, 0x834A, 0xFBAA, 0x834F, 0xECFB, 0x8351, 0xECBF, + 0x8352, 0xFCD8, 0x8373, 0xD4E5, 0x8377, 0xF9C3, 0x837B, 0xEEE2, + 0x8389, 0xD7E9, 0x838A, 0xEDF6, 0x838E, 0xDEED, 0x8396, 0xCCEC, + 0x8398, 0xE3EE, 0x839E, 0xE8D4, 0x83A2, 0xFAF8, 0x83A9, 0xDDB4, + 0x83AA, 0xE4B5, 0x83AB, 0xD8B0, 0x83BD, 0xD8D5, 0x83C1, 0xF4EA, + 0x83C5, 0xCEB9, 0x83C9, 0xD6E1, 0x83CA, 0xCFD2, 0x83CC, 0xD0B6, + 0x83D3, 0xCEA2, 0x83D6, 0xF3EE, 0x83DC, 0xF3F8, 0x83E9, 0xDCCC, + 0x83EB, 0xD0CB, 0x83EF, 0xFCA4, 0x83F0, 0xCDCA, 0x83F1, 0xD7D4, + 0x83F2, 0xDEA3, 0x83F4, 0xE4E0, 0x83F9, 0xEEC9, 0x83FD, 0xE2DD, + 0x8403, 0xF5FE, 0x8404, 0xD4AC, 0x840A, 0xD5D1, 0x840C, 0xD8F0, + 0x840D, 0xF8C3, 0x840E, 0xEAD7, 0x8429, 0xF5D7, 0x842C, 0xD8BF, + 0x8431, 0xFDC0, 0x8438, 0xEBAD, 0x843D, 0xD5AA, 0x8449, 0xE7A8, + 0x8457, 0xEECA, 0x845B, 0xCAE7, 0x8461, 0xF8E3, 0x8463, 0xD4DD, + 0x8466, 0xEAD8, 0x846B, 0xFBD9, 0x846C, 0xEDF7, 0x846F, 0xE5B5, + 0x8475, 0xD0AD, 0x847A, 0xF1F1, 0x8490, 0xE2BD, 0x8494, 0xE3C8, + 0x8499, 0xD9D5, 0x849C, 0xDFAA, 0x84A1, 0xDBBC, 0x84B2, 0xF8E4, + 0x84B8, 0xF1FA, 0x84BB, 0xE5B6, 0x84BC, 0xF3EF, 0x84BF, 0xFBDA, + 0x84C0, 0xE1E0, 0x84C2, 0xD9AC, 0x84C4, 0xF5EB, 0x84C6, 0xE0B6, + 0x84C9, 0xE9C8, 0x84CB, 0xCBCF, 0x84CD, 0xE3C9, 0x84D1, 0xDEEE, + 0x84DA, 0xE2BE, 0x84EC, 0xDCEF, 0x84EE, 0xD6A5, 0x84F4, 0xE2F1, + 0x84FC, 0xD6FE, 0x8511, 0xD9A1, 0x8513, 0xD8C0, 0x8514, 0xDCDB, + 0x8517, 0xEDBD, 0x8518, 0xDFB8, 0x851A, 0xEAA5, 0x851E, 0xD7AD, + 0x8521, 0xF3F9, 0x8523, 0xEDF8, 0x8525, 0xF5C7, 0x852C, 0xE1CA, + 0x852D, 0xEBE3, 0x852F, 0xF2DE, 0x853D, 0xF8CC, 0x853F, 0xEAD9, + 0x8541, 0xD3C6, 0x8543, 0xDBE6, 0x8549, 0xF5AF, 0x854E, 0xCEF0, + 0x8553, 0xE9FE, 0x8559, 0xFBB6, 0x8563, 0xE2F2, 0x8568, 0xCFF2, + 0x8569, 0xF7B9, 0x856A, 0xD9F3, 0x856D, 0xE1CB, 0x8584, 0xDADD, + 0x8587, 0xDAB9, 0x858F, 0xEBFB, 0x8591, 0xCBB9, 0x8594, 0xEDF9, + 0x859B, 0xE0E0, 0x85A6, 0xF4C0, 0x85A8, 0xFDBC, 0x85A9, 0xDFB1, + 0x85AA, 0xE3EF, 0x85AF, 0xE0A3, 0x85B0, 0xFDB9, 0x85BA, 0xF0B1, + 0x85C1, 0xCDCB, 0x85C9, 0xEDBE, 0x85CD, 0xD5C0, 0x85CE, 0xE3F0, + 0x85CF, 0xEDFA, 0x85D5, 0xE9E4, 0x85DC, 0xD5ED, 0x85DD, 0xE7DD, + 0x85E4, 0xD4F6, 0x85E5, 0xE5B7, 0x85E9, 0xDBE7, 0x85EA, 0xE2BF, + 0x85F7, 0xEECB, 0x85FA, 0xD7F4, 0x85FB, 0xF0DD, 0x85FF, 0xCEAB, + 0x8602, 0xE7DE, 0x8606, 0xD6D6, 0x8607, 0xE1CC, 0x860A, 0xE8B3, + 0x8616, 0xE5EE, 0x8617, 0xDCA2, 0x861A, 0xE0D0, 0x862D, 0xD5B5, + 0x863F, 0xD5A1, 0x864E, 0xFBDB, 0x8650, 0xF9CB, 0x8654, 0xCBF3, + 0x8655, 0xF4A5, 0x865B, 0xFAC8, 0x865C, 0xD6D7, 0x865E, 0xE9E5, + 0x865F, 0xFBDC, 0x8667, 0xFDD0, 0x8679, 0xFBF6, 0x868A, 0xDAA5, + 0x868C, 0xDBBD, 0x8693, 0xECE2, 0x86A3, 0xCDF7, 0x86A4, 0xF0DE, + 0x86A9, 0xF6C9, 0x86C7, 0xDEEF, 0x86CB, 0xD3B1, 0x86D4, 0xFCEE, + 0x86D9, 0xE8C3, 0x86DB, 0xF1C8, 0x86DF, 0xCEF1, 0x86E4, 0xF9ED, + 0x86ED, 0xF2F4, 0x86FE, 0xE4B6, 0x8700, 0xF5B9, 0x8702, 0xDCF0, + 0x8703, 0xE3F1, 0x8708, 0xE8A5, 0x8718, 0xF2BB, 0x871A, 0xDEA4, + 0x871C, 0xDACC, 0x874E, 0xCAE9, 0x8755, 0xE3DA, 0x8757, 0xFCD9, + 0x875F, 0xEADA, 0x8766, 0xF9C4, 0x8768, 0xE3A4, 0x8774, 0xFBDD, + 0x8776, 0xEFCA, 0x8778, 0xE8C4, 0x8782, 0xD5CC, 0x878D, 0xEBD7, + 0x879F, 0xD9AD, 0x87A2, 0xFBAB, 0x87B3, 0xD3D9, 0x87BA, 0xD5A2, + 0x87C4, 0xF6DE, 0x87E0, 0xDAF6, 0x87EC, 0xE0D1, 0x87EF, 0xE9A8, + 0x87F2, 0xF5F9, 0x87F9, 0xFAAF, 0x87FB, 0xEBFC, 0x87FE, 0xE0EA, + 0x8805, 0xE3B2, 0x881F, 0xD5C5, 0x8822, 0xF1E3, 0x8823, 0xD5EE, + 0x8831, 0xCDCC, 0x8836, 0xEDD9, 0x883B, 0xD8C1, 0x8840, 0xFAEC, + 0x8846, 0xF1EB, 0x884C, 0xFABC, 0x884D, 0xE6E2, 0x8852, 0xFAE5, + 0x8853, 0xE2FA, 0x8857, 0xCAB6, 0x8859, 0xE4B7, 0x885B, 0xEADB, + 0x885D, 0xF5FA, 0x8861, 0xFBAC, 0x8862, 0xCFC3, 0x8863, 0xEBFD, + 0x8868, 0xF8FA, 0x886B, 0xDFB9, 0x8870, 0xE1F1, 0x8872, 0xD2A4, + 0x8877, 0xF5FB, 0x887E, 0xD0DA, 0x887F, 0xD0DB, 0x8881, 0xEABE, + 0x8882, 0xD9B1, 0x8888, 0xCAB7, 0x888B, 0xD3E7, 0x888D, 0xF8E5, + 0x8892, 0xD3B2, 0x8896, 0xE2C0, 0x8897, 0xF2DF, 0x889E, 0xCDE5, + 0x88AB, 0xF9AC, 0x88B4, 0xCDCD, 0x88C1, 0xEEAE, 0x88C2, 0xD6AE, + 0x88CF, 0xD7EA, 0x88D4, 0xE7E0, 0x88D5, 0xEBAE, 0x88D9, 0xCFD9, + 0x88DC, 0xDCCD, 0x88DD, 0xEDFB, 0x88DF, 0xDEF0, 0x88E1, 0xD7EB, + 0x88E8, 0xDEA5, 0x88F3, 0xDFD7, 0x88F4, 0xDBD0, 0x88F5, 0xDBD1, + 0x88F8, 0xD5A3, 0x88FD, 0xF0B2, 0x8907, 0xDCDC, 0x8910, 0xCAE8, + 0x8912, 0xF8E6, 0x8913, 0xDCCE, 0x8918, 0xEADC, 0x8919, 0xDBD2, + 0x8925, 0xE9B3, 0x892A, 0xF7DB, 0x8936, 0xE3A8, 0x8938, 0xD7AE, + 0x893B, 0xE0E1, 0x8941, 0xCBBA, 0x8944, 0xE5D1, 0x895F, 0xD0DC, + 0x8964, 0xD5C1, 0x896A, 0xD8CA, 0x8972, 0xE3A9, 0x897F, 0xE0A4, + 0x8981, 0xE9A9, 0x8983, 0xD3C7, 0x8986, 0xDCDD, 0x8987, 0xF8AE, + 0x898B, 0xCCB8, 0x898F, 0xD0AE, 0x8993, 0xD8F2, 0x8996, 0xE3CA, + 0x89A1, 0xCCAF, 0x89A9, 0xD4AD, 0x89AA, 0xF6D1, 0x89B2, 0xD0CC, + 0x89BA, 0xCAC6, 0x89BD, 0xD5C2, 0x89C0, 0xCEBA, 0x89D2, 0xCAC7, + 0x89E3, 0xFAB0, 0x89F4, 0xDFD8, 0x89F8, 0xF5BA, 0x8A00, 0xE5EB, + 0x8A02, 0xEFF4, 0x8A03, 0xDDB5, 0x8A08, 0xCDAA, 0x8A0A, 0xE3F2, + 0x8A0C, 0xFBF7, 0x8A0E, 0xF7D0, 0x8A13, 0xFDBA, 0x8A16, 0xFDE1, + 0x8A17, 0xF6FE, 0x8A18, 0xD1C0, 0x8A1B, 0xE8C5, 0x8A1D, 0xE4B8, + 0x8A1F, 0xE1E8, 0x8A23, 0xCCC1, 0x8A25, 0xD2ED, 0x8A2A, 0xDBBE, + 0x8A2D, 0xE0E2, 0x8A31, 0xFAC9, 0x8A34, 0xE1CD, 0x8A36, 0xCAB8, + 0x8A3A, 0xF2E0, 0x8A3B, 0xF1C9, 0x8A50, 0xDEF1, 0x8A54, 0xF0DF, + 0x8A55, 0xF8C4, 0x8A5B, 0xEECC, 0x8A5E, 0xDEF2, 0x8A60, 0xE7C9, + 0x8A62, 0xE2F3, 0x8A63, 0xE7E1, 0x8A66, 0xE3CB, 0x8A69, 0xE3CC, + 0x8A6D, 0xCFF8, 0x8A6E, 0xEFAC, 0x8A70, 0xFDFE, 0x8A71, 0xFCA5, + 0x8A72, 0xFAB1, 0x8A73, 0xDFD9, 0x8A75, 0xE0D2, 0x8A79, 0xF4DA, + 0x8A85, 0xF1CA, 0x8A87, 0xCEA3, 0x8A8C, 0xF2BC, 0x8A8D, 0xECE3, + 0x8A93, 0xE0A5, 0x8A95, 0xF7AB, 0x8A98, 0xEBAF, 0x8A9E, 0xE5DE, + 0x8AA0, 0xE1A4, 0x8AA1, 0xCDAB, 0x8AA3, 0xD9F4, 0x8AA4, 0xE8A6, + 0x8AA5, 0xCDCE, 0x8AA6, 0xE1E9, 0x8AA8, 0xFCEF, 0x8AAA, 0xE0E3, + 0x8AB0, 0xE2C1, 0x8AB2, 0xCEA4, 0x8AB9, 0xDEA6, 0x8ABC, 0xEBFE, + 0x8ABE, 0xEBDD, 0x8ABF, 0xF0E0, 0x8AC2, 0xF4DB, 0x8AC4, 0xE2F4, + 0x8AC7, 0xD3C8, 0x8ACB, 0xF4EB, 0x8ACD, 0xEEB5, 0x8ACF, 0xF5D8, + 0x8AD2, 0xD5DF, 0x8AD6, 0xD6E5, 0x8ADB, 0xEBB0, 0x8ADC, 0xF4E3, + 0x8AE1, 0xE3CD, 0x8AE6, 0xF4F4, 0x8AE7, 0xFAB2, 0x8AEA, 0xEFF5, + 0x8AEB, 0xCADF, 0x8AED, 0xEBB1, 0x8AEE, 0xEDBF, 0x8AF1, 0xFDC9, + 0x8AF6, 0xE4A6, 0x8AF7, 0xF9A4, 0x8AF8, 0xF0B3, 0x8AFA, 0xE5EC, + 0x8AFE, 0xD1E7, 0x8B00, 0xD9C7, 0x8B01, 0xE4D7, 0x8B02, 0xEADD, + 0x8B04, 0xD4F7, 0x8B0E, 0xDABA, 0x8B10, 0xDACD, 0x8B14, 0xF9CC, + 0x8B16, 0xE1DA, 0x8B17, 0xDBBF, 0x8B19, 0xCCC5, 0x8B1A, 0xECD0, + 0x8B1B, 0xCBBB, 0x8B1D, 0xDEF3, 0x8B20, 0xE9AA, 0x8B28, 0xD9C8, + 0x8B2B, 0xEEE3, 0x8B2C, 0xD7BD, 0x8B33, 0xCFC4, 0x8B39, 0xD0CD, + 0x8B41, 0xFCA6, 0x8B49, 0xF1FB, 0x8B4E, 0xFDD2, 0x8B4F, 0xD1C1, + 0x8B58, 0xE3DB, 0x8B5A, 0xD3C9, 0x8B5C, 0xDCCF, 0x8B66, 0xCCED, + 0x8B6C, 0xDEA7, 0x8B6F, 0xE6BB, 0x8B70, 0xECA1, 0x8B74, 0xCCB9, + 0x8B77, 0xFBDE, 0x8B7D, 0xE7E2, 0x8B80, 0xD4C1, 0x8B8A, 0xDCA8, + 0x8B90, 0xE2C2, 0x8B92, 0xF3D8, 0x8B93, 0xE5D3, 0x8B96, 0xF3D9, + 0x8B9A, 0xF3C6, 0x8C37, 0xCDDB, 0x8C3F, 0xCDAC, 0x8C41, 0xFCC3, + 0x8C46, 0xD4E7, 0x8C48, 0xD1C2, 0x8C4A, 0xF9A5, 0x8C4C, 0xE8D5, + 0x8C55, 0xE3CE, 0x8C5A, 0xD4CA, 0x8C61, 0xDFDA, 0x8C6A, 0xFBDF, + 0x8C6B, 0xE7E3, 0x8C79, 0xF8FB, 0x8C7A, 0xE3CF, 0x8C82, 0xF5B0, + 0x8C8A, 0xD8E7, 0x8C8C, 0xD9C9, 0x8C9D, 0xF8AF, 0x8C9E, 0xEFF6, + 0x8CA0, 0xDDB6, 0x8CA1, 0xEEAF, 0x8CA2, 0xCDF8, 0x8CA7, 0xDEB8, + 0x8CA8, 0xFCA7, 0x8CA9, 0xF7FC, 0x8CAA, 0xF7B1, 0x8CAB, 0xCEBB, + 0x8CAC, 0xF4A1, 0x8CAF, 0xEECD, 0x8CB0, 0xE1AE, 0x8CB3, 0xECC3, + 0x8CB4, 0xCFFE, 0x8CB6, 0xF8BF, 0x8CB7, 0xD8E2, 0x8CB8, 0xD3E8, + 0x8CBB, 0xDEA8, 0x8CBC, 0xF4E4, 0x8CBD, 0xECC2, 0x8CBF, 0xD9F5, + 0x8CC0, 0xF9C5, 0x8CC1, 0xDDD3, 0x8CC2, 0xD6F1, 0x8CC3, 0xECFC, + 0x8CC4, 0xFCF0, 0x8CC7, 0xEDC0, 0x8CC8, 0xCAB9, 0x8CCA, 0xEEE4, + 0x8CD1, 0xF2E1, 0x8CD3, 0xDEB9, 0x8CDA, 0xD6F2, 0x8CDC, 0xDEF4, + 0x8CDE, 0xDFDB, 0x8CE0, 0xDBD3, 0x8CE2, 0xFAE7, 0x8CE3, 0xD8E3, + 0x8CE4, 0xF4C1, 0x8CE6, 0xDDB7, 0x8CEA, 0xF2F5, 0x8CED, 0xD4AE, + 0x8CF4, 0xD6F3, 0x8CFB, 0xDDB8, 0x8CFC, 0xCFC5, 0x8CFD, 0xDFDF, + 0x8D04, 0xF2BE, 0x8D05, 0xF6A1, 0x8D07, 0xEBCB, 0x8D08, 0xF1FC, + 0x8D0A, 0xF3C7, 0x8D0D, 0xE0EB, 0x8D13, 0xEDFC, 0x8D16, 0xE1DB, + 0x8D64, 0xEEE5, 0x8D66, 0xDEF5, 0x8D6B, 0xFAD3, 0x8D70, 0xF1CB, + 0x8D73, 0xD0AF, 0x8D74, 0xDDB9, 0x8D77, 0xD1C3, 0x8D85, 0xF5B1, + 0x8D8A, 0xEAC6, 0x8D99, 0xF0E1, 0x8DA3, 0xF6AC, 0x8DA8, 0xF5D9, + 0x8DB3, 0xF0EB, 0x8DBA, 0xDDBA, 0x8DBE, 0xF2BF, 0x8DC6, 0xF7C5, + 0x8DCB, 0xDBA2, 0x8DCC, 0xF2F6, 0x8DCF, 0xCABA, 0x8DDB, 0xF7F5, + 0x8DDD, 0xCBE5, 0x8DE1, 0xEEE6, 0x8DE3, 0xE0D3, 0x8DE8, 0xCEA5, + 0x8DEF, 0xD6D8, 0x8DF3, 0xD4AF, 0x8E0A, 0xE9C9, 0x8E0F, 0xD3CE, + 0x8E10, 0xF4C2, 0x8E1E, 0xCBE6, 0x8E2A, 0xF1A1, 0x8E30, 0xEBB2, + 0x8E35, 0xF1A2, 0x8E42, 0xEBB3, 0x8E44, 0xF0B4, 0x8E47, 0xCBF4, + 0x8E48, 0xD4B0, 0x8E49, 0xF3B2, 0x8E4A, 0xFBB7, 0x8E59, 0xF5EC, + 0x8E5F, 0xEEE7, 0x8E60, 0xF4B2, 0x8E74, 0xF5ED, 0x8E76, 0xCFF3, + 0x8E81, 0xF0E2, 0x8E87, 0xEECE, 0x8E8A, 0xF1CC, 0x8E8D, 0xE5B8, + 0x8EAA, 0xD7F5, 0x8EAB, 0xE3F3, 0x8EAC, 0xCFE5, 0x8EC0, 0xCFC6, + 0x8ECA, 0xF3B3, 0x8ECB, 0xE4D8, 0x8ECC, 0xCFF9, 0x8ECD, 0xCFDA, + 0x8ED2, 0xFACD, 0x8EDF, 0xE6E3, 0x8EEB, 0xF2E2, 0x8EF8, 0xF5EE, + 0x8EFB, 0xCABB, 0x8EFE, 0xE3DC, 0x8F03, 0xCEF2, 0x8F05, 0xD6D9, + 0x8F09, 0xEEB0, 0x8F12, 0xF4E5, 0x8F13, 0xD8C2, 0x8F14, 0xDCD0, + 0x8F15, 0xCCEE, 0x8F1B, 0xD5E0, 0x8F1C, 0xF6CA, 0x8F1D, 0xFDCA, + 0x8F1E, 0xD8D6, 0x8F1F, 0xF4CF, 0x8F26, 0xD6A6, 0x8F27, 0xDCBE, + 0x8F29, 0xDBD4, 0x8F2A, 0xD7C7, 0x8F2F, 0xF2FE, 0x8F33, 0xF1CD, + 0x8F38, 0xE2C3, 0x8F39, 0xDCDE, 0x8F3B, 0xDCDF, 0x8F3E, 0xEFAD, + 0x8F3F, 0xE6AB, 0x8F44, 0xF9DD, 0x8F45, 0xEABF, 0x8F49, 0xEFAE, + 0x8F4D, 0xF4D0, 0x8F4E, 0xCEF3, 0x8F5D, 0xE6AC, 0x8F5F, 0xCEDE, + 0x8F62, 0xD5F9, 0x8F9B, 0xE3F4, 0x8F9C, 0xCDD0, 0x8FA3, 0xD5B8, + 0x8FA6, 0xF7FD, 0x8FA8, 0xDCA9, 0x8FAD, 0xDEF6, 0x8FAF, 0xDCAA, + 0x8FB0, 0xF2E3, 0x8FB1, 0xE9B4, 0x8FB2, 0xD2DC, 0x8FC2, 0xE9E6, + 0x8FC5, 0xE3F6, 0x8FCE, 0xE7CA, 0x8FD1, 0xD0CE, 0x8FD4, 0xDAF7, + 0x8FE6, 0xCABC, 0x8FEA, 0xEEE8, 0x8FEB, 0xDADE, 0x8FED, 0xF2F7, + 0x8FF0, 0xE2FB, 0x8FF2, 0xCCA6, 0x8FF7, 0xDABB, 0x8FF9, 0xEEE9, + 0x8FFD, 0xF5DA, 0x9000, 0xF7DC, 0x9001, 0xE1EA, 0x9002, 0xCEC1, + 0x9003, 0xD4B1, 0x9005, 0xFDB1, 0x9006, 0xE6BD, 0x9008, 0xFBAD, + 0x900B, 0xF8E7, 0x900D, 0xE1CE, 0x900F, 0xF7E2, 0x9010, 0xF5EF, + 0x9011, 0xCFC7, 0x9014, 0xD4B2, 0x9015, 0xCCEF, 0x9017, 0xD4E8, + 0x9019, 0xEECF, 0x901A, 0xF7D7, 0x901D, 0xE0A6, 0x901E, 0xD6C1, + 0x901F, 0xE1DC, 0x9020, 0xF0E3, 0x9021, 0xF1E4, 0x9022, 0xDCF1, + 0x9023, 0xD6A7, 0x902E, 0xF4F5, 0x9031, 0xF1CE, 0x9032, 0xF2E4, + 0x9035, 0xD0B0, 0x9038, 0xECEF, 0x903C, 0xF9BA, 0x903E, 0xEBB5, + 0x9041, 0xD4ED, 0x9042, 0xE2C4, 0x9047, 0xE9E7, 0x904A, 0xEBB4, + 0x904B, 0xEAA1, 0x904D, 0xF8BC, 0x904E, 0xCEA6, 0x9050, 0xF9C6, + 0x9051, 0xFCDA, 0x9053, 0xD4B3, 0x9054, 0xD3B9, 0x9055, 0xEADE, + 0x9059, 0xE9AB, 0x905C, 0xE1E1, 0x905D, 0xD3CF, 0x905E, 0xF4F6, + 0x9060, 0xEAC0, 0x9061, 0xE1CF, 0x9063, 0xCCBA, 0x9069, 0xEEEA, + 0x906D, 0xF0E4, 0x906E, 0xF3B4, 0x906F, 0xD4EE, 0x9072, 0xF2C0, + 0x9075, 0xF1E5, 0x9077, 0xF4C3, 0x9078, 0xE0D4, 0x907A, 0xEBB6, + 0x907C, 0xD7A1, 0x907D, 0xCBE8, 0x907F, 0xF9AD, 0x9080, 0xE9AD, + 0x9081, 0xD8E4, 0x9082, 0xFAB3, 0x9083, 0xE2C5, 0x9084, 0xFCBD, + 0x9087, 0xECC4, 0x9088, 0xD8B1, 0x908A, 0xDCAB, 0x908F, 0xD5A4, + 0x9091, 0xEBE9, 0x9095, 0xE8BB, 0x9099, 0xD8D7, 0x90A2, 0xFBAE, + 0x90A3, 0xD1E1, 0x90A6, 0xDBC0, 0x90A8, 0xF5BE, 0x90AA, 0xDEF7, + 0x90AF, 0xCAFB, 0x90B0, 0xF7C6, 0x90B1, 0xCFC8, 0x90B5, 0xE1D0, + 0x90B8, 0xEED0, 0x90C1, 0xE9F4, 0x90CA, 0xCEF4, 0x90DE, 0xD5CD, + 0x90E1, 0xCFDB, 0x90E8, 0xDDBB, 0x90ED, 0xCEAC, 0x90F5, 0xE9E8, + 0x90FD, 0xD4B4, 0x9102, 0xE4C7, 0x9112, 0xF5DB, 0x9115, 0xFAC1, + 0x9119, 0xDEA9, 0x9127, 0xD4F8, 0x912D, 0xEFF7, 0x9132, 0xD3B3, + 0x9149, 0xEBB7, 0x914A, 0xEFF8, 0x914B, 0xF5DC, 0x914C, 0xEDCC, + 0x914D, 0xDBD5, 0x914E, 0xF1CF, 0x9152, 0xF1D0, 0x9162, 0xF5B2, + 0x9169, 0xD9AE, 0x916A, 0xD5AC, 0x916C, 0xE2C6, 0x9175, 0xFDA3, + 0x9177, 0xFBE5, 0x9178, 0xDFAB, 0x9187, 0xE2F5, 0x9189, 0xF6AD, + 0x918B, 0xF5B3, 0x918D, 0xF0B5, 0x9192, 0xE1A5, 0x919C, 0xF5DD, + 0x91AB, 0xECA2, 0x91AC, 0xEDFD, 0x91AE, 0xF5B4, 0x91AF, 0xFBB8, + 0x91B1, 0xDBA3, 0x91B4, 0xD6CA, 0x91B5, 0xCBD9, 0x91C0, 0xE5D4, + 0x91C7, 0xF3FA, 0x91C9, 0xEBB8, 0x91CB, 0xE0B7, 0x91CC, 0xD7EC, + 0x91CD, 0xF1EC, 0x91CE, 0xE5AF, 0x91CF, 0xD5E1, 0x91D0, 0xD7ED, + 0x91D1, 0xD1D1, 0x91D7, 0xE1F2, 0x91D8, 0xEFF9, 0x91DC, 0xDDBC, + 0x91DD, 0xF6DC, 0x91E3, 0xF0E5, 0x91E7, 0xF4C4, 0x91EA, 0xE9E9, + 0x91F5, 0xF3FB, 0x920D, 0xD4EF, 0x9210, 0xCCA2, 0x9211, 0xF7FE, + 0x9212, 0xDFBC, 0x9217, 0xEBCD, 0x921E, 0xD0B7, 0x9234, 0xD6C2, + 0x923A, 0xE8AD, 0x923F, 0xEFAF, 0x9240, 0xCBA5, 0x9245, 0xCBE9, + 0x9249, 0xFAE8, 0x9257, 0xCCC6, 0x925B, 0xE6E7, 0x925E, 0xEAC7, + 0x9262, 0xDBA4, 0x9264, 0xCFC9, 0x9265, 0xE2FC, 0x9266, 0xEFFA, + 0x9280, 0xEBDE, 0x9283, 0xF5C8, 0x9285, 0xD4DE, 0x9291, 0xE0D5, + 0x9293, 0xEFB0, 0x9296, 0xE2C7, 0x9298, 0xD9AF, 0x929C, 0xF9E7, + 0x92B3, 0xE7E5, 0x92B6, 0xCFCA, 0x92B7, 0xE1D1, 0x92B9, 0xE2C8, + 0x92CC, 0xEFFB, 0x92CF, 0xFAF9, 0x92D2, 0xDCF2, 0x92E4, 0xE0A7, + 0x92EA, 0xF8E8, 0x92F8, 0xCBEA, 0x92FC, 0xCBBC, 0x9304, 0xD6E2, + 0x9310, 0xF5DE, 0x9318, 0xF5DF, 0x931A, 0xEEB6, 0x931E, 0xE2F6, + 0x931F, 0xD3CA, 0x9320, 0xEFFC, 0x9321, 0xD1C4, 0x9322, 0xEFB1, + 0x9324, 0xD1C5, 0x9326, 0xD0DE, 0x9328, 0xD9E1, 0x932B, 0xE0B8, + 0x932E, 0xCDD1, 0x932F, 0xF3B9, 0x9348, 0xE7CC, 0x934A, 0xD6A8, + 0x934B, 0xCEA7, 0x934D, 0xD4B5, 0x9354, 0xE4C8, 0x935B, 0xD3B4, + 0x936E, 0xEBB9, 0x9375, 0xCBF5, 0x937C, 0xF6DD, 0x937E, 0xF1A3, + 0x938C, 0xCCC7, 0x9394, 0xE9CA, 0x9396, 0xE1F0, 0x939A, 0xF5E0, + 0x93A3, 0xFBAF, 0x93A7, 0xCBD1, 0x93AC, 0xFBE0, 0x93AD, 0xF2E5, + 0x93B0, 0xECF0, 0x93C3, 0xF0EC, 0x93D1, 0xEEEB, 0x93DE, 0xE9CB, + 0x93E1, 0xCCF0, 0x93E4, 0xD7AF, 0x93F6, 0xF3A1, 0x9404, 0xFCF5, + 0x9418, 0xF1A4, 0x9425, 0xE0D6, 0x942B, 0xEFB2, 0x9435, 0xF4D1, + 0x9438, 0xF7A1, 0x9444, 0xF1D1, 0x9451, 0xCAFC, 0x9452, 0xCAFD, + 0x945B, 0xCECE, 0x947D, 0xF3C8, 0x947F, 0xF3BA, 0x9577, 0xEDFE, + 0x9580, 0xDAA6, 0x9583, 0xE0EC, 0x9589, 0xF8CD, 0x958B, 0xCBD2, + 0x958F, 0xEBCE, 0x9591, 0xF9D8, 0x9592, 0xF9D9, 0x9593, 0xCAE0, + 0x9594, 0xDACA, 0x9598, 0xCBA6, 0x95A3, 0xCAC8, 0x95A4, 0xF9EE, + 0x95A5, 0xDBEC, 0x95A8, 0xD0B1, 0x95AD, 0xD5EF, 0x95B1, 0xE6F3, + 0x95BB, 0xE7A2, 0x95BC, 0xE4D9, 0x95C7, 0xE4E1, 0x95CA, 0xFCC4, + 0x95D4, 0xF9EF, 0x95D5, 0xCFF4, 0x95D6, 0xF7E6, 0x95DC, 0xCEBC, + 0x95E1, 0xF4C5, 0x95E2, 0xDCA3, 0x961C, 0xDDBD, 0x9621, 0xF4C6, + 0x962A, 0xF8A1, 0x962E, 0xE8D6, 0x9632, 0xDBC1, 0x963B, 0xF0E6, + 0x963F, 0xE4B9, 0x9640, 0xF6ED, 0x9642, 0xF9AE, 0x9644, 0xDDBE, + 0x964B, 0xD7B0, 0x964C, 0xD8E8, 0x964D, 0xCBBD, 0x9650, 0xF9DA, + 0x965B, 0xF8CE, 0x965C, 0xF9F0, 0x965D, 0xE0ED, 0x965E, 0xE3B3, + 0x965F, 0xF4B3, 0x9662, 0xEAC2, 0x9663, 0xF2E6, 0x9664, 0xF0B6, + 0x966A, 0xDBD6, 0x9670, 0xEBE4, 0x9673, 0xF2E7, 0x9675, 0xD7D5, + 0x9676, 0xD4B6, 0x9677, 0xF9E8, 0x9678, 0xD7C1, 0x967D, 0xE5D5, + 0x9685, 0xE9EA, 0x9686, 0xD7CC, 0x968A, 0xD3E9, 0x968B, 0xE2C9, + 0x968D, 0xFCDB, 0x968E, 0xCDAD, 0x9694, 0xCCB0, 0x9695, 0xEAA2, + 0x9698, 0xE4F6, 0x9699, 0xD0C0, 0x969B, 0xF0B7, 0x969C, 0xEEA1, + 0x96A3, 0xD7F6, 0x96A7, 0xE2CA, 0x96A8, 0xE2CB, 0x96AA, 0xFACF, + 0x96B1, 0xEBDF, 0x96B7, 0xD6CB, 0x96BB, 0xF4B4, 0x96C0, 0xEDCD, + 0x96C1, 0xE4D2, 0x96C4, 0xEAA9, 0x96C5, 0xE4BA, 0x96C6, 0xF3A2, + 0x96C7, 0xCDD2, 0x96C9, 0xF6CB, 0x96CB, 0xF1E6, 0x96CC, 0xEDC1, + 0x96CD, 0xE8BC, 0x96CE, 0xEED1, 0x96D5, 0xF0E7, 0x96D6, 0xE2CC, + 0x96D9, 0xE4AA, 0x96DB, 0xF5E1, 0x96DC, 0xEDDA, 0x96E2, 0xD7EE, + 0x96E3, 0xD1F1, 0x96E8, 0xE9EB, 0x96E9, 0xE9EC, 0x96EA, 0xE0E4, + 0x96EF, 0xDAA7, 0x96F0, 0xDDD4, 0x96F2, 0xEAA3, 0x96F6, 0xD6C3, + 0x96F7, 0xD6F4, 0x96F9, 0xDADF, 0x96FB, 0xEFB3, 0x9700, 0xE2CD, + 0x9706, 0xEFFD, 0x9707, 0xF2E8, 0x9711, 0xEFC5, 0x9713, 0xE7E7, + 0x9716, 0xD7FD, 0x9719, 0xE7CE, 0x971C, 0xDFDC, 0x971E, 0xF9C7, + 0x9727, 0xD9F6, 0x9730, 0xDFAC, 0x9732, 0xD6DA, 0x9739, 0xDCA4, + 0x973D, 0xF0B8, 0x9742, 0xD5FA, 0x9744, 0xE4F7, 0x9748, 0xD6C4, + 0x9751, 0xF4EC, 0x9756, 0xEFFE, 0x975C, 0xF0A1, 0x975E, 0xDEAA, + 0x9761, 0xDABC, 0x9762, 0xD8FC, 0x9769, 0xFAD4, 0x976D, 0xECE5, + 0x9774, 0xFCA8, 0x9777, 0xECE6, 0x977A, 0xD8CB, 0x978B, 0xFBB9, + 0x978D, 0xE4D3, 0x978F, 0xCDF9, 0x97A0, 0xCFD3, 0x97A8, 0xCAEA, + 0x97AB, 0xCFD4, 0x97AD, 0xF8BD, 0x97C6, 0xF4C7, 0x97CB, 0xEADF, + 0x97D3, 0xF9DB, 0x97DC, 0xD4B7, 0x97F3, 0xEBE5, 0x97F6, 0xE1D2, + 0x97FB, 0xEAA4, 0x97FF, 0xFAC2, 0x9800, 0xFBE1, 0x9801, 0xFAED, + 0x9802, 0xF0A2, 0x9803, 0xCCF1, 0x9805, 0xFAA3, 0x9806, 0xE2F7, + 0x9808, 0xE2CE, 0x980A, 0xE9F5, 0x980C, 0xE1EB, 0x9810, 0xE7E8, + 0x9811, 0xE8D7, 0x9812, 0xDAF8, 0x9813, 0xD4CB, 0x9817, 0xF7F6, + 0x9818, 0xD6C5, 0x982D, 0xD4E9, 0x9830, 0xFAFA, 0x9838, 0xCCF2, + 0x9839, 0xF7DD, 0x983B, 0xDEBA, 0x9846, 0xCEA8, 0x984C, 0xF0B9, + 0x984D, 0xE4FE, 0x984E, 0xE4C9, 0x9854, 0xE4D4, 0x9858, 0xEAC3, + 0x985A, 0xEFB4, 0x985E, 0xD7BE, 0x9865, 0xFBE2, 0x9867, 0xCDD3, + 0x986B, 0xEFB5, 0x986F, 0xFAE9, 0x98A8, 0xF9A6, 0x98AF, 0xDFBD, + 0x98B1, 0xF7C7, 0x98C4, 0xF8FD, 0x98C7, 0xF8FC, 0x98DB, 0xDEAB, + 0x98DC, 0xDBE8, 0x98DF, 0xE3DD, 0x98E1, 0xE1E2, 0x98E2, 0xD1C6, + 0x98ED, 0xF6D0, 0x98EE, 0xEBE6, 0x98EF, 0xDAF9, 0x98F4, 0xECC7, + 0x98FC, 0xDEF8, 0x98FD, 0xF8E9, 0x98FE, 0xE3DE, 0x9903, 0xCEF5, + 0x9909, 0xFAC3, 0x990A, 0xE5D7, 0x990C, 0xECC8, 0x9910, 0xF3C9, + 0x9913, 0xE4BB, 0x9918, 0xE6AE, 0x991E, 0xEFB6, 0x9920, 0xDCBF, + 0x9928, 0xCEBD, 0x9945, 0xD8C3, 0x9949, 0xD0CF, 0x994B, 0xCFFA, + 0x994C, 0xF3CA, 0x994D, 0xE0D7, 0x9951, 0xD1C7, 0x9952, 0xE9AE, + 0x9954, 0xE8BD, 0x9957, 0xFAC4, 0x9996, 0xE2CF, 0x9999, 0xFAC5, + 0x999D, 0xF9B8, 0x99A5, 0xDCE0, 0x99A8, 0xFBB0, 0x99AC, 0xD8A9, + 0x99AD, 0xE5DF, 0x99AE, 0xF9A7, 0x99B1, 0xF6EE, 0x99B3, 0xF6CC, + 0x99B4, 0xE2F8, 0x99B9, 0xECF1, 0x99C1, 0xDAE0, 0x99D0, 0xF1D2, + 0x99D1, 0xD2CC, 0x99D2, 0xCFCB, 0x99D5, 0xCABD, 0x99D9, 0xDDBF, + 0x99DD, 0xF6EF, 0x99DF, 0xDEF9, 0x99ED, 0xFAB4, 0x99F1, 0xD5AD, + 0x99FF, 0xF1E7, 0x9A01, 0xDEBE, 0x9A08, 0xDCC0, 0x9A0E, 0xD1C8, + 0x9A0F, 0xD1C9, 0x9A19, 0xF8BE, 0x9A2B, 0xCBF6, 0x9A30, 0xD4F9, + 0x9A36, 0xF5E2, 0x9A37, 0xE1D3, 0x9A40, 0xD8E9, 0x9A43, 0xF8FE, + 0x9A45, 0xCFCC, 0x9A4D, 0xFDA4, 0x9A55, 0xCEF6, 0x9A57, 0xFAD0, + 0x9A5A, 0xCCF3, 0x9A5B, 0xE6BE, 0x9A5F, 0xF6AE, 0x9A62, 0xD5F0, + 0x9A65, 0xD1CA, 0x9A69, 0xFCBE, 0x9A6A, 0xD5F1, 0x9AA8, 0xCDE9, + 0x9AB8, 0xFAB5, 0x9AD3, 0xE2D0, 0x9AD4, 0xF4F7, 0x9AD8, 0xCDD4, + 0x9AE5, 0xE7A3, 0x9AEE, 0xDBA5, 0x9B1A, 0xE2D1, 0x9B27, 0xD7A2, + 0x9B2A, 0xF7E3, 0x9B31, 0xEAA6, 0x9B3C, 0xD0A1, 0x9B41, 0xCEDA, + 0x9B42, 0xFBEB, 0x9B43, 0xDBA6, 0x9B44, 0xDBDE, 0x9B45, 0xD8E5, + 0x9B4F, 0xEAE0, 0x9B54, 0xD8AA, 0x9B5A, 0xE5E0, 0x9B6F, 0xD6DB, + 0x9B8E, 0xEFC6, 0x9B91, 0xF8EA, 0x9B9F, 0xE4D5, 0x9BAB, 0xCEF7, + 0x9BAE, 0xE0D8, 0x9BC9, 0xD7EF, 0x9BD6, 0xF4ED, 0x9BE4, 0xCDE6, + 0x9BE8, 0xCCF4, 0x9C0D, 0xF5E3, 0x9C10, 0xE4CA, 0x9C12, 0xDCE1, + 0x9C15, 0xF9C8, 0x9C25, 0xFCBF, 0x9C32, 0xE8A7, 0x9C3B, 0xD8C4, + 0x9C47, 0xCBBE, 0x9C49, 0xDCAE, 0x9C57, 0xD7F7, 0x9CE5, 0xF0E8, + 0x9CE7, 0xDDC0, 0x9CE9, 0xCFCD, 0x9CF3, 0xDCF3, 0x9CF4, 0xD9B0, + 0x9CF6, 0xE6E9, 0x9D09, 0xE4BC, 0x9D1B, 0xEAC4, 0x9D26, 0xE4EC, + 0x9D28, 0xE4E5, 0x9D3B, 0xFBF8, 0x9D51, 0xCCBB, 0x9D5D, 0xE4BD, + 0x9D60, 0xCDDC, 0x9D61, 0xD9F7, 0x9D6C, 0xDDDF, 0x9D72, 0xEDCE, + 0x9DA9, 0xD9D0, 0x9DAF, 0xE5A3, 0x9DB4, 0xF9CD, 0x9DC4, 0xCDAE, + 0x9DD7, 0xCFCE, 0x9DF2, 0xF6AF, 0x9DF8, 0xFDD3, 0x9DF9, 0xEBED, + 0x9DFA, 0xD6DC, 0x9E1A, 0xE5A4, 0x9E1E, 0xD5B6, 0x9E75, 0xD6DD, + 0x9E79, 0xF9E9, 0x9E7D, 0xE7A4, 0x9E7F, 0xD6E3, 0x9E92, 0xD1CB, + 0x9E93, 0xD6E4, 0x9E97, 0xD5F2, 0x9E9D, 0xDEFA, 0x9E9F, 0xD7F8, + 0x9EA5, 0xD8EA, 0x9EB4, 0xCFD5, 0x9EB5, 0xD8FD, 0x9EBB, 0xD8AB, + 0x9EBE, 0xFDCB, 0x9EC3, 0xFCDC, 0x9ECD, 0xE0A8, 0x9ECE, 0xD5F3, + 0x9ED1, 0xFDD9, 0x9ED4, 0xCCA3, 0x9ED8, 0xD9F9, 0x9EDB, 0xD3EA, + 0x9EDC, 0xF5F5, 0x9EDE, 0xEFC7, 0x9EE8, 0xD3DA, 0x9EF4, 0xDABD, + 0x9F07, 0xE8A8, 0x9F08, 0xDCAF, 0x9F0E, 0xF0A3, 0x9F13, 0xCDD5, + 0x9F20, 0xE0A9, 0x9F3B, 0xDEAC, 0x9F4A, 0xF0BA, 0x9F4B, 0xEEB1, + 0x9F4E, 0xEEB2, 0x9F52, 0xF6CD, 0x9F5F, 0xEED2, 0x9F61, 0xD6C6, + 0x9F67, 0xE0E5, 0x9F6A, 0xF3BB, 0x9F6C, 0xE5E1, 0x9F77, 0xE4CB, + 0x9F8D, 0xD7A3, 0x9F90, 0xDBC2, 0x9F95, 0xCAFE, 0x9F9C, 0xCFCF, + 0xAC00, 0xB0A1, 0xAC01, 0xB0A2, 0xAC02, 0x8141, 0xAC03, 0x8142, + 0xAC04, 0xB0A3, 0xAC05, 0x8143, 0xAC06, 0x8144, 0xAC07, 0xB0A4, + 0xAC08, 0xB0A5, 0xAC09, 0xB0A6, 0xAC0A, 0xB0A7, 0xAC0B, 0x8145, + 0xAC0C, 0x8146, 0xAC0D, 0x8147, 0xAC0E, 0x8148, 0xAC0F, 0x8149, + 0xAC10, 0xB0A8, 0xAC11, 0xB0A9, 0xAC12, 0xB0AA, 0xAC13, 0xB0AB, + 0xAC14, 0xB0AC, 0xAC15, 0xB0AD, 0xAC16, 0xB0AE, 0xAC17, 0xB0AF, + 0xAC18, 0x814A, 0xAC19, 0xB0B0, 0xAC1A, 0xB0B1, 0xAC1B, 0xB0B2, + 0xAC1C, 0xB0B3, 0xAC1D, 0xB0B4, 0xAC1E, 0x814B, 0xAC1F, 0x814C, + 0xAC20, 0xB0B5, 0xAC21, 0x814D, 0xAC22, 0x814E, 0xAC23, 0x814F, + 0xAC24, 0xB0B6, 0xAC25, 0x8150, 0xAC26, 0x8151, 0xAC27, 0x8152, + 0xAC28, 0x8153, 0xAC29, 0x8154, 0xAC2A, 0x8155, 0xAC2B, 0x8156, + 0xAC2C, 0xB0B7, 0xAC2D, 0xB0B8, 0xAC2E, 0x8157, 0xAC2F, 0xB0B9, + 0xAC30, 0xB0BA, 0xAC31, 0xB0BB, 0xAC32, 0x8158, 0xAC33, 0x8159, + 0xAC34, 0x815A, 0xAC35, 0x8161, 0xAC36, 0x8162, 0xAC37, 0x8163, + 0xAC38, 0xB0BC, 0xAC39, 0xB0BD, 0xAC3A, 0x8164, 0xAC3B, 0x8165, + 0xAC3C, 0xB0BE, 0xAC3D, 0x8166, 0xAC3E, 0x8167, 0xAC3F, 0x8168, + 0xAC40, 0xB0BF, 0xAC41, 0x8169, 0xAC42, 0x816A, 0xAC43, 0x816B, + 0xAC44, 0x816C, 0xAC45, 0x816D, 0xAC46, 0x816E, 0xAC47, 0x816F, + 0xAC48, 0x8170, 0xAC49, 0x8171, 0xAC4A, 0x8172, 0xAC4B, 0xB0C0, + 0xAC4C, 0x8173, 0xAC4D, 0xB0C1, 0xAC4E, 0x8174, 0xAC4F, 0x8175, + 0xAC50, 0x8176, 0xAC51, 0x8177, 0xAC52, 0x8178, 0xAC53, 0x8179, + 0xAC54, 0xB0C2, 0xAC55, 0x817A, 0xAC56, 0x8181, 0xAC57, 0x8182, + 0xAC58, 0xB0C3, 0xAC59, 0x8183, 0xAC5A, 0x8184, 0xAC5B, 0x8185, + 0xAC5C, 0xB0C4, 0xAC5D, 0x8186, 0xAC5E, 0x8187, 0xAC5F, 0x8188, + 0xAC60, 0x8189, 0xAC61, 0x818A, 0xAC62, 0x818B, 0xAC63, 0x818C, + 0xAC64, 0x818D, 0xAC65, 0x818E, 0xAC66, 0x818F, 0xAC67, 0x8190, + 0xAC68, 0x8191, 0xAC69, 0x8192, 0xAC6A, 0x8193, 0xAC6B, 0x8194, + 0xAC6C, 0x8195, 0xAC6D, 0x8196, 0xAC6E, 0x8197, 0xAC6F, 0x8198, + 0xAC70, 0xB0C5, 0xAC71, 0xB0C6, 0xAC72, 0x8199, 0xAC73, 0x819A, + 0xAC74, 0xB0C7, 0xAC75, 0x819B, 0xAC76, 0x819C, 0xAC77, 0xB0C8, + 0xAC78, 0xB0C9, 0xAC79, 0x819D, 0xAC7A, 0xB0CA, 0xAC7B, 0x819E, + 0xAC7C, 0x819F, 0xAC7D, 0x81A0, 0xAC7E, 0x81A1, 0xAC7F, 0x81A2, + 0xAC80, 0xB0CB, 0xAC81, 0xB0CC, 0xAC82, 0x81A3, 0xAC83, 0xB0CD, + 0xAC84, 0xB0CE, 0xAC85, 0xB0CF, 0xAC86, 0xB0D0, 0xAC87, 0x81A4, + 0xAC88, 0x81A5, 0xAC89, 0xB0D1, 0xAC8A, 0xB0D2, 0xAC8B, 0xB0D3, + 0xAC8C, 0xB0D4, 0xAC8D, 0x81A6, 0xAC8E, 0x81A7, 0xAC8F, 0x81A8, + 0xAC90, 0xB0D5, 0xAC91, 0x81A9, 0xAC92, 0x81AA, 0xAC93, 0x81AB, + 0xAC94, 0xB0D6, 0xAC95, 0x81AC, 0xAC96, 0x81AD, 0xAC97, 0x81AE, + 0xAC98, 0x81AF, 0xAC99, 0x81B0, 0xAC9A, 0x81B1, 0xAC9B, 0x81B2, + 0xAC9C, 0xB0D7, 0xAC9D, 0xB0D8, 0xAC9E, 0x81B3, 0xAC9F, 0xB0D9, + 0xACA0, 0xB0DA, 0xACA1, 0xB0DB, 0xACA2, 0x81B4, 0xACA3, 0x81B5, + 0xACA4, 0x81B6, 0xACA5, 0x81B7, 0xACA6, 0x81B8, 0xACA7, 0x81B9, + 0xACA8, 0xB0DC, 0xACA9, 0xB0DD, 0xACAA, 0xB0DE, 0xACAB, 0x81BA, + 0xACAC, 0xB0DF, 0xACAD, 0x81BB, 0xACAE, 0x81BC, 0xACAF, 0xB0E0, + 0xACB0, 0xB0E1, 0xACB1, 0x81BD, 0xACB2, 0x81BE, 0xACB3, 0x81BF, + 0xACB4, 0x81C0, 0xACB5, 0x81C1, 0xACB6, 0x81C2, 0xACB7, 0x81C3, + 0xACB8, 0xB0E2, 0xACB9, 0xB0E3, 0xACBA, 0x81C4, 0xACBB, 0xB0E4, + 0xACBC, 0xB0E5, 0xACBD, 0xB0E6, 0xACBE, 0x81C5, 0xACBF, 0x81C6, + 0xACC0, 0x81C7, 0xACC1, 0xB0E7, 0xACC2, 0x81C8, 0xACC3, 0x81C9, + 0xACC4, 0xB0E8, 0xACC5, 0x81CA, 0xACC6, 0x81CB, 0xACC7, 0x81CC, + 0xACC8, 0xB0E9, 0xACC9, 0x81CD, 0xACCA, 0x81CE, 0xACCB, 0x81CF, + 0xACCC, 0xB0EA, 0xACCD, 0x81D0, 0xACCE, 0x81D1, 0xACCF, 0x81D2, + 0xACD0, 0x81D3, 0xACD1, 0x81D4, 0xACD2, 0x81D5, 0xACD3, 0x81D6, + 0xACD4, 0x81D7, 0xACD5, 0xB0EB, 0xACD6, 0x81D8, 0xACD7, 0xB0EC, + 0xACD8, 0x81D9, 0xACD9, 0x81DA, 0xACDA, 0x81DB, 0xACDB, 0x81DC, + 0xACDC, 0x81DD, 0xACDD, 0x81DE, 0xACDE, 0x81DF, 0xACDF, 0x81E0, + 0xACE0, 0xB0ED, 0xACE1, 0xB0EE, 0xACE2, 0x81E1, 0xACE3, 0x81E2, + 0xACE4, 0xB0EF, 0xACE5, 0x81E3, 0xACE6, 0x81E4, 0xACE7, 0xB0F0, + 0xACE8, 0xB0F1, 0xACE9, 0x81E5, 0xACEA, 0xB0F2, 0xACEB, 0x81E6, + 0xACEC, 0xB0F3, 0xACED, 0x81E7, 0xACEE, 0x81E8, 0xACEF, 0xB0F4, + 0xACF0, 0xB0F5, 0xACF1, 0xB0F6, 0xACF2, 0x81E9, 0xACF3, 0xB0F7, + 0xACF4, 0x81EA, 0xACF5, 0xB0F8, 0xACF6, 0xB0F9, 0xACF7, 0x81EB, + 0xACF8, 0x81EC, 0xACF9, 0x81ED, 0xACFA, 0x81EE, 0xACFB, 0x81EF, + 0xACFC, 0xB0FA, 0xACFD, 0xB0FB, 0xACFE, 0x81F0, 0xACFF, 0x81F1, + 0xAD00, 0xB0FC, 0xAD01, 0x81F2, 0xAD02, 0x81F3, 0xAD03, 0x81F4, + 0xAD04, 0xB0FD, 0xAD05, 0x81F5, 0xAD06, 0xB0FE, 0xAD07, 0x81F6, + 0xAD08, 0x81F7, 0xAD09, 0x81F8, 0xAD0A, 0x81F9, 0xAD0B, 0x81FA, + 0xAD0C, 0xB1A1, 0xAD0D, 0xB1A2, 0xAD0E, 0x81FB, 0xAD0F, 0xB1A3, + 0xAD10, 0x81FC, 0xAD11, 0xB1A4, 0xAD12, 0x81FD, 0xAD13, 0x81FE, + 0xAD14, 0x8241, 0xAD15, 0x8242, 0xAD16, 0x8243, 0xAD17, 0x8244, + 0xAD18, 0xB1A5, 0xAD19, 0x8245, 0xAD1A, 0x8246, 0xAD1B, 0x8247, + 0xAD1C, 0xB1A6, 0xAD1D, 0x8248, 0xAD1E, 0x8249, 0xAD1F, 0x824A, + 0xAD20, 0xB1A7, 0xAD21, 0x824B, 0xAD22, 0x824C, 0xAD23, 0x824D, + 0xAD24, 0x824E, 0xAD25, 0x824F, 0xAD26, 0x8250, 0xAD27, 0x8251, + 0xAD28, 0x8252, 0xAD29, 0xB1A8, 0xAD2A, 0x8253, 0xAD2B, 0x8254, + 0xAD2C, 0xB1A9, 0xAD2D, 0xB1AA, 0xAD2E, 0x8255, 0xAD2F, 0x8256, + 0xAD30, 0x8257, 0xAD31, 0x8258, 0xAD32, 0x8259, 0xAD33, 0x825A, + 0xAD34, 0xB1AB, 0xAD35, 0xB1AC, 0xAD36, 0x8261, 0xAD37, 0x8262, + 0xAD38, 0xB1AD, 0xAD39, 0x8263, 0xAD3A, 0x8264, 0xAD3B, 0x8265, + 0xAD3C, 0xB1AE, 0xAD3D, 0x8266, 0xAD3E, 0x8267, 0xAD3F, 0x8268, + 0xAD40, 0x8269, 0xAD41, 0x826A, 0xAD42, 0x826B, 0xAD43, 0x826C, + 0xAD44, 0xB1AF, 0xAD45, 0xB1B0, 0xAD46, 0x826D, 0xAD47, 0xB1B1, + 0xAD48, 0x826E, 0xAD49, 0xB1B2, 0xAD4A, 0x826F, 0xAD4B, 0x8270, + 0xAD4C, 0x8271, 0xAD4D, 0x8272, 0xAD4E, 0x8273, 0xAD4F, 0x8274, + 0xAD50, 0xB1B3, 0xAD51, 0x8275, 0xAD52, 0x8276, 0xAD53, 0x8277, + 0xAD54, 0xB1B4, 0xAD55, 0x8278, 0xAD56, 0x8279, 0xAD57, 0x827A, + 0xAD58, 0xB1B5, 0xAD59, 0x8281, 0xAD5A, 0x8282, 0xAD5B, 0x8283, + 0xAD5C, 0x8284, 0xAD5D, 0x8285, 0xAD5E, 0x8286, 0xAD5F, 0x8287, + 0xAD60, 0x8288, 0xAD61, 0xB1B6, 0xAD62, 0x8289, 0xAD63, 0xB1B7, + 0xAD64, 0x828A, 0xAD65, 0x828B, 0xAD66, 0x828C, 0xAD67, 0x828D, + 0xAD68, 0x828E, 0xAD69, 0x828F, 0xAD6A, 0x8290, 0xAD6B, 0x8291, + 0xAD6C, 0xB1B8, 0xAD6D, 0xB1B9, 0xAD6E, 0x8292, 0xAD6F, 0x8293, + 0xAD70, 0xB1BA, 0xAD71, 0x8294, 0xAD72, 0x8295, 0xAD73, 0xB1BB, + 0xAD74, 0xB1BC, 0xAD75, 0xB1BD, 0xAD76, 0xB1BE, 0xAD77, 0x8296, + 0xAD78, 0x8297, 0xAD79, 0x8298, 0xAD7A, 0x8299, 0xAD7B, 0xB1BF, + 0xAD7C, 0xB1C0, 0xAD7D, 0xB1C1, 0xAD7E, 0x829A, 0xAD7F, 0xB1C2, + 0xAD80, 0x829B, 0xAD81, 0xB1C3, 0xAD82, 0xB1C4, 0xAD83, 0x829C, + 0xAD84, 0x829D, 0xAD85, 0x829E, 0xAD86, 0x829F, 0xAD87, 0x82A0, + 0xAD88, 0xB1C5, 0xAD89, 0xB1C6, 0xAD8A, 0x82A1, 0xAD8B, 0x82A2, + 0xAD8C, 0xB1C7, 0xAD8D, 0x82A3, 0xAD8E, 0x82A4, 0xAD8F, 0x82A5, + 0xAD90, 0xB1C8, 0xAD91, 0x82A6, 0xAD92, 0x82A7, 0xAD93, 0x82A8, + 0xAD94, 0x82A9, 0xAD95, 0x82AA, 0xAD96, 0x82AB, 0xAD97, 0x82AC, + 0xAD98, 0x82AD, 0xAD99, 0x82AE, 0xAD9A, 0x82AF, 0xAD9B, 0x82B0, + 0xAD9C, 0xB1C9, 0xAD9D, 0xB1CA, 0xAD9E, 0x82B1, 0xAD9F, 0x82B2, + 0xADA0, 0x82B3, 0xADA1, 0x82B4, 0xADA2, 0x82B5, 0xADA3, 0x82B6, + 0xADA4, 0xB1CB, 0xADA5, 0x82B7, 0xADA6, 0x82B8, 0xADA7, 0x82B9, + 0xADA8, 0x82BA, 0xADA9, 0x82BB, 0xADAA, 0x82BC, 0xADAB, 0x82BD, + 0xADAC, 0x82BE, 0xADAD, 0x82BF, 0xADAE, 0x82C0, 0xADAF, 0x82C1, + 0xADB0, 0x82C2, 0xADB1, 0x82C3, 0xADB2, 0x82C4, 0xADB3, 0x82C5, + 0xADB4, 0x82C6, 0xADB5, 0x82C7, 0xADB6, 0x82C8, 0xADB7, 0xB1CC, + 0xADB8, 0x82C9, 0xADB9, 0x82CA, 0xADBA, 0x82CB, 0xADBB, 0x82CC, + 0xADBC, 0x82CD, 0xADBD, 0x82CE, 0xADBE, 0x82CF, 0xADBF, 0x82D0, + 0xADC0, 0xB1CD, 0xADC1, 0xB1CE, 0xADC2, 0x82D1, 0xADC3, 0x82D2, + 0xADC4, 0xB1CF, 0xADC5, 0x82D3, 0xADC6, 0x82D4, 0xADC7, 0x82D5, + 0xADC8, 0xB1D0, 0xADC9, 0x82D6, 0xADCA, 0x82D7, 0xADCB, 0x82D8, + 0xADCC, 0x82D9, 0xADCD, 0x82DA, 0xADCE, 0x82DB, 0xADCF, 0x82DC, + 0xADD0, 0xB1D1, 0xADD1, 0xB1D2, 0xADD2, 0x82DD, 0xADD3, 0xB1D3, + 0xADD4, 0x82DE, 0xADD5, 0x82DF, 0xADD6, 0x82E0, 0xADD7, 0x82E1, + 0xADD8, 0x82E2, 0xADD9, 0x82E3, 0xADDA, 0x82E4, 0xADDB, 0x82E5, + 0xADDC, 0xB1D4, 0xADDD, 0x82E6, 0xADDE, 0x82E7, 0xADDF, 0x82E8, + 0xADE0, 0xB1D5, 0xADE1, 0x82E9, 0xADE2, 0x82EA, 0xADE3, 0x82EB, + 0xADE4, 0xB1D6, 0xADE5, 0x82EC, 0xADE6, 0x82ED, 0xADE7, 0x82EE, + 0xADE8, 0x82EF, 0xADE9, 0x82F0, 0xADEA, 0x82F1, 0xADEB, 0x82F2, + 0xADEC, 0x82F3, 0xADED, 0x82F4, 0xADEE, 0x82F5, 0xADEF, 0x82F6, + 0xADF0, 0x82F7, 0xADF1, 0x82F8, 0xADF2, 0x82F9, 0xADF3, 0x82FA, + 0xADF4, 0x82FB, 0xADF5, 0x82FC, 0xADF6, 0x82FD, 0xADF7, 0x82FE, + 0xADF8, 0xB1D7, 0xADF9, 0xB1D8, 0xADFA, 0x8341, 0xADFB, 0x8342, + 0xADFC, 0xB1D9, 0xADFD, 0x8343, 0xADFE, 0x8344, 0xADFF, 0xB1DA, + 0xAE00, 0xB1DB, 0xAE01, 0xB1DC, 0xAE02, 0x8345, 0xAE03, 0x8346, + 0xAE04, 0x8347, 0xAE05, 0x8348, 0xAE06, 0x8349, 0xAE07, 0x834A, + 0xAE08, 0xB1DD, 0xAE09, 0xB1DE, 0xAE0A, 0x834B, 0xAE0B, 0xB1DF, + 0xAE0C, 0x834C, 0xAE0D, 0xB1E0, 0xAE0E, 0x834D, 0xAE0F, 0x834E, + 0xAE10, 0x834F, 0xAE11, 0x8350, 0xAE12, 0x8351, 0xAE13, 0x8352, + 0xAE14, 0xB1E1, 0xAE15, 0x8353, 0xAE16, 0x8354, 0xAE17, 0x8355, + 0xAE18, 0x8356, 0xAE19, 0x8357, 0xAE1A, 0x8358, 0xAE1B, 0x8359, + 0xAE1C, 0x835A, 0xAE1D, 0x8361, 0xAE1E, 0x8362, 0xAE1F, 0x8363, + 0xAE20, 0x8364, 0xAE21, 0x8365, 0xAE22, 0x8366, 0xAE23, 0x8367, + 0xAE24, 0x8368, 0xAE25, 0x8369, 0xAE26, 0x836A, 0xAE27, 0x836B, + 0xAE28, 0x836C, 0xAE29, 0x836D, 0xAE2A, 0x836E, 0xAE2B, 0x836F, + 0xAE2C, 0x8370, 0xAE2D, 0x8371, 0xAE2E, 0x8372, 0xAE2F, 0x8373, + 0xAE30, 0xB1E2, 0xAE31, 0xB1E3, 0xAE32, 0x8374, 0xAE33, 0x8375, + 0xAE34, 0xB1E4, 0xAE35, 0x8376, 0xAE36, 0x8377, 0xAE37, 0xB1E5, + 0xAE38, 0xB1E6, 0xAE39, 0x8378, 0xAE3A, 0xB1E7, 0xAE3B, 0x8379, + 0xAE3C, 0x837A, 0xAE3D, 0x8381, 0xAE3E, 0x8382, 0xAE3F, 0x8383, + 0xAE40, 0xB1E8, 0xAE41, 0xB1E9, 0xAE42, 0x8384, 0xAE43, 0xB1EA, + 0xAE44, 0x8385, 0xAE45, 0xB1EB, 0xAE46, 0xB1EC, 0xAE47, 0x8386, + 0xAE48, 0x8387, 0xAE49, 0x8388, 0xAE4A, 0xB1ED, 0xAE4B, 0x8389, + 0xAE4C, 0xB1EE, 0xAE4D, 0xB1EF, 0xAE4E, 0xB1F0, 0xAE4F, 0x838A, + 0xAE50, 0xB1F1, 0xAE51, 0x838B, 0xAE52, 0x838C, 0xAE53, 0x838D, + 0xAE54, 0xB1F2, 0xAE55, 0x838E, 0xAE56, 0xB1F3, 0xAE57, 0x838F, + 0xAE58, 0x8390, 0xAE59, 0x8391, 0xAE5A, 0x8392, 0xAE5B, 0x8393, + 0xAE5C, 0xB1F4, 0xAE5D, 0xB1F5, 0xAE5E, 0x8394, 0xAE5F, 0xB1F6, + 0xAE60, 0xB1F7, 0xAE61, 0xB1F8, 0xAE62, 0x8395, 0xAE63, 0x8396, + 0xAE64, 0x8397, 0xAE65, 0xB1F9, 0xAE66, 0x8398, 0xAE67, 0x8399, + 0xAE68, 0xB1FA, 0xAE69, 0xB1FB, 0xAE6A, 0x839A, 0xAE6B, 0x839B, + 0xAE6C, 0xB1FC, 0xAE6D, 0x839C, 0xAE6E, 0x839D, 0xAE6F, 0x839E, + 0xAE70, 0xB1FD, 0xAE71, 0x839F, 0xAE72, 0x83A0, 0xAE73, 0x83A1, + 0xAE74, 0x83A2, 0xAE75, 0x83A3, 0xAE76, 0x83A4, 0xAE77, 0x83A5, + 0xAE78, 0xB1FE, 0xAE79, 0xB2A1, 0xAE7A, 0x83A6, 0xAE7B, 0xB2A2, + 0xAE7C, 0xB2A3, 0xAE7D, 0xB2A4, 0xAE7E, 0x83A7, 0xAE7F, 0x83A8, + 0xAE80, 0x83A9, 0xAE81, 0x83AA, 0xAE82, 0x83AB, 0xAE83, 0x83AC, + 0xAE84, 0xB2A5, 0xAE85, 0xB2A6, 0xAE86, 0x83AD, 0xAE87, 0x83AE, + 0xAE88, 0x83AF, 0xAE89, 0x83B0, 0xAE8A, 0x83B1, 0xAE8B, 0x83B2, + 0xAE8C, 0xB2A7, 0xAE8D, 0x83B3, 0xAE8E, 0x83B4, 0xAE8F, 0x83B5, + 0xAE90, 0x83B6, 0xAE91, 0x83B7, 0xAE92, 0x83B8, 0xAE93, 0x83B9, + 0xAE94, 0x83BA, 0xAE95, 0x83BB, 0xAE96, 0x83BC, 0xAE97, 0x83BD, + 0xAE98, 0x83BE, 0xAE99, 0x83BF, 0xAE9A, 0x83C0, 0xAE9B, 0x83C1, + 0xAE9C, 0x83C2, 0xAE9D, 0x83C3, 0xAE9E, 0x83C4, 0xAE9F, 0x83C5, + 0xAEA0, 0x83C6, 0xAEA1, 0x83C7, 0xAEA2, 0x83C8, 0xAEA3, 0x83C9, + 0xAEA4, 0x83CA, 0xAEA5, 0x83CB, 0xAEA6, 0x83CC, 0xAEA7, 0x83CD, + 0xAEA8, 0x83CE, 0xAEA9, 0x83CF, 0xAEAA, 0x83D0, 0xAEAB, 0x83D1, + 0xAEAC, 0x83D2, 0xAEAD, 0x83D3, 0xAEAE, 0x83D4, 0xAEAF, 0x83D5, + 0xAEB0, 0x83D6, 0xAEB1, 0x83D7, 0xAEB2, 0x83D8, 0xAEB3, 0x83D9, + 0xAEB4, 0x83DA, 0xAEB5, 0x83DB, 0xAEB6, 0x83DC, 0xAEB7, 0x83DD, + 0xAEB8, 0x83DE, 0xAEB9, 0x83DF, 0xAEBA, 0x83E0, 0xAEBB, 0x83E1, + 0xAEBC, 0xB2A8, 0xAEBD, 0xB2A9, 0xAEBE, 0xB2AA, 0xAEBF, 0x83E2, + 0xAEC0, 0xB2AB, 0xAEC1, 0x83E3, 0xAEC2, 0x83E4, 0xAEC3, 0x83E5, + 0xAEC4, 0xB2AC, 0xAEC5, 0x83E6, 0xAEC6, 0x83E7, 0xAEC7, 0x83E8, + 0xAEC8, 0x83E9, 0xAEC9, 0x83EA, 0xAECA, 0x83EB, 0xAECB, 0x83EC, + 0xAECC, 0xB2AD, 0xAECD, 0xB2AE, 0xAECE, 0x83ED, 0xAECF, 0xB2AF, + 0xAED0, 0xB2B0, 0xAED1, 0xB2B1, 0xAED2, 0x83EE, 0xAED3, 0x83EF, + 0xAED4, 0x83F0, 0xAED5, 0x83F1, 0xAED6, 0x83F2, 0xAED7, 0x83F3, + 0xAED8, 0xB2B2, 0xAED9, 0xB2B3, 0xAEDA, 0x83F4, 0xAEDB, 0x83F5, + 0xAEDC, 0xB2B4, 0xAEDD, 0x83F6, 0xAEDE, 0x83F7, 0xAEDF, 0x83F8, + 0xAEE0, 0x83F9, 0xAEE1, 0x83FA, 0xAEE2, 0x83FB, 0xAEE3, 0x83FC, + 0xAEE4, 0x83FD, 0xAEE5, 0x83FE, 0xAEE6, 0x8441, 0xAEE7, 0x8442, + 0xAEE8, 0xB2B5, 0xAEE9, 0x8443, 0xAEEA, 0x8444, 0xAEEB, 0xB2B6, + 0xAEEC, 0x8445, 0xAEED, 0xB2B7, 0xAEEE, 0x8446, 0xAEEF, 0x8447, + 0xAEF0, 0x8448, 0xAEF1, 0x8449, 0xAEF2, 0x844A, 0xAEF3, 0x844B, + 0xAEF4, 0xB2B8, 0xAEF5, 0x844C, 0xAEF6, 0x844D, 0xAEF7, 0x844E, + 0xAEF8, 0xB2B9, 0xAEF9, 0x844F, 0xAEFA, 0x8450, 0xAEFB, 0x8451, + 0xAEFC, 0xB2BA, 0xAEFD, 0x8452, 0xAEFE, 0x8453, 0xAEFF, 0x8454, + 0xAF00, 0x8455, 0xAF01, 0x8456, 0xAF02, 0x8457, 0xAF03, 0x8458, + 0xAF04, 0x8459, 0xAF05, 0x845A, 0xAF06, 0x8461, 0xAF07, 0xB2BB, + 0xAF08, 0xB2BC, 0xAF09, 0x8462, 0xAF0A, 0x8463, 0xAF0B, 0x8464, + 0xAF0C, 0x8465, 0xAF0D, 0xB2BD, 0xAF0E, 0x8466, 0xAF0F, 0x8467, + 0xAF10, 0xB2BE, 0xAF11, 0x8468, 0xAF12, 0x8469, 0xAF13, 0x846A, + 0xAF14, 0x846B, 0xAF15, 0x846C, 0xAF16, 0x846D, 0xAF17, 0x846E, + 0xAF18, 0x846F, 0xAF19, 0x8470, 0xAF1A, 0x8471, 0xAF1B, 0x8472, + 0xAF1C, 0x8473, 0xAF1D, 0x8474, 0xAF1E, 0x8475, 0xAF1F, 0x8476, + 0xAF20, 0x8477, 0xAF21, 0x8478, 0xAF22, 0x8479, 0xAF23, 0x847A, + 0xAF24, 0x8481, 0xAF25, 0x8482, 0xAF26, 0x8483, 0xAF27, 0x8484, + 0xAF28, 0x8485, 0xAF29, 0x8486, 0xAF2A, 0x8487, 0xAF2B, 0x8488, + 0xAF2C, 0xB2BF, 0xAF2D, 0xB2C0, 0xAF2E, 0x8489, 0xAF2F, 0x848A, + 0xAF30, 0xB2C1, 0xAF31, 0x848B, 0xAF32, 0xB2C2, 0xAF33, 0x848C, + 0xAF34, 0xB2C3, 0xAF35, 0x848D, 0xAF36, 0x848E, 0xAF37, 0x848F, + 0xAF38, 0x8490, 0xAF39, 0x8491, 0xAF3A, 0x8492, 0xAF3B, 0x8493, + 0xAF3C, 0xB2C4, 0xAF3D, 0xB2C5, 0xAF3E, 0x8494, 0xAF3F, 0xB2C6, + 0xAF40, 0x8495, 0xAF41, 0xB2C7, 0xAF42, 0xB2C8, 0xAF43, 0xB2C9, + 0xAF44, 0x8496, 0xAF45, 0x8497, 0xAF46, 0x8498, 0xAF47, 0x8499, + 0xAF48, 0xB2CA, 0xAF49, 0xB2CB, 0xAF4A, 0x849A, 0xAF4B, 0x849B, + 0xAF4C, 0x849C, 0xAF4D, 0x849D, 0xAF4E, 0x849E, 0xAF4F, 0x849F, + 0xAF50, 0xB2CC, 0xAF51, 0x84A0, 0xAF52, 0x84A1, 0xAF53, 0x84A2, + 0xAF54, 0x84A3, 0xAF55, 0x84A4, 0xAF56, 0x84A5, 0xAF57, 0x84A6, + 0xAF58, 0x84A7, 0xAF59, 0x84A8, 0xAF5A, 0x84A9, 0xAF5B, 0x84AA, + 0xAF5C, 0xB2CD, 0xAF5D, 0xB2CE, 0xAF5E, 0x84AB, 0xAF5F, 0x84AC, + 0xAF60, 0x84AD, 0xAF61, 0x84AE, 0xAF62, 0x84AF, 0xAF63, 0x84B0, + 0xAF64, 0xB2CF, 0xAF65, 0xB2D0, 0xAF66, 0x84B1, 0xAF67, 0x84B2, + 0xAF68, 0x84B3, 0xAF69, 0x84B4, 0xAF6A, 0x84B5, 0xAF6B, 0x84B6, + 0xAF6C, 0x84B7, 0xAF6D, 0x84B8, 0xAF6E, 0x84B9, 0xAF6F, 0x84BA, + 0xAF70, 0x84BB, 0xAF71, 0x84BC, 0xAF72, 0x84BD, 0xAF73, 0x84BE, + 0xAF74, 0x84BF, 0xAF75, 0x84C0, 0xAF76, 0x84C1, 0xAF77, 0x84C2, + 0xAF78, 0x84C3, 0xAF79, 0xB2D1, 0xAF7A, 0x84C4, 0xAF7B, 0x84C5, + 0xAF7C, 0x84C6, 0xAF7D, 0x84C7, 0xAF7E, 0x84C8, 0xAF7F, 0x84C9, + 0xAF80, 0xB2D2, 0xAF81, 0x84CA, 0xAF82, 0x84CB, 0xAF83, 0x84CC, + 0xAF84, 0xB2D3, 0xAF85, 0x84CD, 0xAF86, 0x84CE, 0xAF87, 0x84CF, + 0xAF88, 0xB2D4, 0xAF89, 0x84D0, 0xAF8A, 0x84D1, 0xAF8B, 0x84D2, + 0xAF8C, 0x84D3, 0xAF8D, 0x84D4, 0xAF8E, 0x84D5, 0xAF8F, 0x84D6, + 0xAF90, 0xB2D5, 0xAF91, 0xB2D6, 0xAF92, 0x84D7, 0xAF93, 0x84D8, + 0xAF94, 0x84D9, 0xAF95, 0xB2D7, 0xAF96, 0x84DA, 0xAF97, 0x84DB, + 0xAF98, 0x84DC, 0xAF99, 0x84DD, 0xAF9A, 0x84DE, 0xAF9B, 0x84DF, + 0xAF9C, 0xB2D8, 0xAF9D, 0x84E0, 0xAF9E, 0x84E1, 0xAF9F, 0x84E2, + 0xAFA0, 0x84E3, 0xAFA1, 0x84E4, 0xAFA2, 0x84E5, 0xAFA3, 0x84E6, + 0xAFA4, 0x84E7, 0xAFA5, 0x84E8, 0xAFA6, 0x84E9, 0xAFA7, 0x84EA, + 0xAFA8, 0x84EB, 0xAFA9, 0x84EC, 0xAFAA, 0x84ED, 0xAFAB, 0x84EE, + 0xAFAC, 0x84EF, 0xAFAD, 0x84F0, 0xAFAE, 0x84F1, 0xAFAF, 0x84F2, + 0xAFB0, 0x84F3, 0xAFB1, 0x84F4, 0xAFB2, 0x84F5, 0xAFB3, 0x84F6, + 0xAFB4, 0x84F7, 0xAFB5, 0x84F8, 0xAFB6, 0x84F9, 0xAFB7, 0x84FA, + 0xAFB8, 0xB2D9, 0xAFB9, 0xB2DA, 0xAFBA, 0x84FB, 0xAFBB, 0x84FC, + 0xAFBC, 0xB2DB, 0xAFBD, 0x84FD, 0xAFBE, 0x84FE, 0xAFBF, 0x8541, + 0xAFC0, 0xB2DC, 0xAFC1, 0x8542, 0xAFC2, 0x8543, 0xAFC3, 0x8544, + 0xAFC4, 0x8545, 0xAFC5, 0x8546, 0xAFC6, 0x8547, 0xAFC7, 0xB2DD, + 0xAFC8, 0xB2DE, 0xAFC9, 0xB2DF, 0xAFCA, 0x8548, 0xAFCB, 0xB2E0, + 0xAFCC, 0x8549, 0xAFCD, 0xB2E1, 0xAFCE, 0xB2E2, 0xAFCF, 0x854A, + 0xAFD0, 0x854B, 0xAFD1, 0x854C, 0xAFD2, 0x854D, 0xAFD3, 0x854E, + 0xAFD4, 0xB2E3, 0xAFD5, 0x854F, 0xAFD6, 0x8550, 0xAFD7, 0x8551, + 0xAFD8, 0x8552, 0xAFD9, 0x8553, 0xAFDA, 0x8554, 0xAFDB, 0x8555, + 0xAFDC, 0xB2E4, 0xAFDD, 0x8556, 0xAFDE, 0x8557, 0xAFDF, 0x8558, + 0xAFE0, 0x8559, 0xAFE1, 0x855A, 0xAFE2, 0x8561, 0xAFE3, 0x8562, + 0xAFE4, 0x8563, 0xAFE5, 0x8564, 0xAFE6, 0x8565, 0xAFE7, 0x8566, + 0xAFE8, 0xB2E5, 0xAFE9, 0xB2E6, 0xAFEA, 0x8567, 0xAFEB, 0x8568, + 0xAFEC, 0x8569, 0xAFED, 0x856A, 0xAFEE, 0x856B, 0xAFEF, 0x856C, + 0xAFF0, 0xB2E7, 0xAFF1, 0xB2E8, 0xAFF2, 0x856D, 0xAFF3, 0x856E, + 0xAFF4, 0xB2E9, 0xAFF5, 0x856F, 0xAFF6, 0x8570, 0xAFF7, 0x8571, + 0xAFF8, 0xB2EA, 0xAFF9, 0x8572, 0xAFFA, 0x8573, 0xAFFB, 0x8574, + 0xAFFC, 0x8575, 0xAFFD, 0x8576, 0xAFFE, 0x8577, 0xAFFF, 0x8578, + 0xB000, 0xB2EB, 0xB001, 0xB2EC, 0xB002, 0x8579, 0xB003, 0x857A, + 0xB004, 0xB2ED, 0xB005, 0x8581, 0xB006, 0x8582, 0xB007, 0x8583, + 0xB008, 0x8584, 0xB009, 0x8585, 0xB00A, 0x8586, 0xB00B, 0x8587, + 0xB00C, 0xB2EE, 0xB00D, 0x8588, 0xB00E, 0x8589, 0xB00F, 0x858A, + 0xB010, 0xB2EF, 0xB011, 0x858B, 0xB012, 0x858C, 0xB013, 0x858D, + 0xB014, 0xB2F0, 0xB015, 0x858E, 0xB016, 0x858F, 0xB017, 0x8590, + 0xB018, 0x8591, 0xB019, 0x8592, 0xB01A, 0x8593, 0xB01B, 0x8594, + 0xB01C, 0xB2F1, 0xB01D, 0xB2F2, 0xB01E, 0x8595, 0xB01F, 0x8596, + 0xB020, 0x8597, 0xB021, 0x8598, 0xB022, 0x8599, 0xB023, 0x859A, + 0xB024, 0x859B, 0xB025, 0x859C, 0xB026, 0x859D, 0xB027, 0x859E, + 0xB028, 0xB2F3, 0xB029, 0x859F, 0xB02A, 0x85A0, 0xB02B, 0x85A1, + 0xB02C, 0x85A2, 0xB02D, 0x85A3, 0xB02E, 0x85A4, 0xB02F, 0x85A5, + 0xB030, 0x85A6, 0xB031, 0x85A7, 0xB032, 0x85A8, 0xB033, 0x85A9, + 0xB034, 0x85AA, 0xB035, 0x85AB, 0xB036, 0x85AC, 0xB037, 0x85AD, + 0xB038, 0x85AE, 0xB039, 0x85AF, 0xB03A, 0x85B0, 0xB03B, 0x85B1, + 0xB03C, 0x85B2, 0xB03D, 0x85B3, 0xB03E, 0x85B4, 0xB03F, 0x85B5, + 0xB040, 0x85B6, 0xB041, 0x85B7, 0xB042, 0x85B8, 0xB043, 0x85B9, + 0xB044, 0xB2F4, 0xB045, 0xB2F5, 0xB046, 0x85BA, 0xB047, 0x85BB, + 0xB048, 0xB2F6, 0xB049, 0x85BC, 0xB04A, 0xB2F7, 0xB04B, 0x85BD, + 0xB04C, 0xB2F8, 0xB04D, 0x85BE, 0xB04E, 0xB2F9, 0xB04F, 0x85BF, + 0xB050, 0x85C0, 0xB051, 0x85C1, 0xB052, 0x85C2, 0xB053, 0xB2FA, + 0xB054, 0xB2FB, 0xB055, 0xB2FC, 0xB056, 0x85C3, 0xB057, 0xB2FD, + 0xB058, 0x85C4, 0xB059, 0xB2FE, 0xB05A, 0x85C5, 0xB05B, 0x85C6, + 0xB05C, 0x85C7, 0xB05D, 0xB3A1, 0xB05E, 0x85C8, 0xB05F, 0x85C9, + 0xB060, 0x85CA, 0xB061, 0x85CB, 0xB062, 0x85CC, 0xB063, 0x85CD, + 0xB064, 0x85CE, 0xB065, 0x85CF, 0xB066, 0x85D0, 0xB067, 0x85D1, + 0xB068, 0x85D2, 0xB069, 0x85D3, 0xB06A, 0x85D4, 0xB06B, 0x85D5, + 0xB06C, 0x85D6, 0xB06D, 0x85D7, 0xB06E, 0x85D8, 0xB06F, 0x85D9, + 0xB070, 0x85DA, 0xB071, 0x85DB, 0xB072, 0x85DC, 0xB073, 0x85DD, + 0xB074, 0x85DE, 0xB075, 0x85DF, 0xB076, 0x85E0, 0xB077, 0x85E1, + 0xB078, 0x85E2, 0xB079, 0x85E3, 0xB07A, 0x85E4, 0xB07B, 0x85E5, + 0xB07C, 0xB3A2, 0xB07D, 0xB3A3, 0xB07E, 0x85E6, 0xB07F, 0x85E7, + 0xB080, 0xB3A4, 0xB081, 0x85E8, 0xB082, 0x85E9, 0xB083, 0x85EA, + 0xB084, 0xB3A5, 0xB085, 0x85EB, 0xB086, 0x85EC, 0xB087, 0x85ED, + 0xB088, 0x85EE, 0xB089, 0x85EF, 0xB08A, 0x85F0, 0xB08B, 0x85F1, + 0xB08C, 0xB3A6, 0xB08D, 0xB3A7, 0xB08E, 0x85F2, 0xB08F, 0xB3A8, + 0xB090, 0x85F3, 0xB091, 0xB3A9, 0xB092, 0x85F4, 0xB093, 0x85F5, + 0xB094, 0x85F6, 0xB095, 0x85F7, 0xB096, 0x85F8, 0xB097, 0x85F9, + 0xB098, 0xB3AA, 0xB099, 0xB3AB, 0xB09A, 0xB3AC, 0xB09B, 0x85FA, + 0xB09C, 0xB3AD, 0xB09D, 0x85FB, 0xB09E, 0x85FC, 0xB09F, 0xB3AE, + 0xB0A0, 0xB3AF, 0xB0A1, 0xB3B0, 0xB0A2, 0xB3B1, 0xB0A3, 0x85FD, + 0xB0A4, 0x85FE, 0xB0A5, 0x8641, 0xB0A6, 0x8642, 0xB0A7, 0x8643, + 0xB0A8, 0xB3B2, 0xB0A9, 0xB3B3, 0xB0AA, 0x8644, 0xB0AB, 0xB3B4, + 0xB0AC, 0xB3B5, 0xB0AD, 0xB3B6, 0xB0AE, 0xB3B7, 0xB0AF, 0xB3B8, + 0xB0B0, 0x8645, 0xB0B1, 0xB3B9, 0xB0B2, 0x8646, 0xB0B3, 0xB3BA, + 0xB0B4, 0xB3BB, 0xB0B5, 0xB3BC, 0xB0B6, 0x8647, 0xB0B7, 0x8648, + 0xB0B8, 0xB3BD, 0xB0B9, 0x8649, 0xB0BA, 0x864A, 0xB0BB, 0x864B, + 0xB0BC, 0xB3BE, 0xB0BD, 0x864C, 0xB0BE, 0x864D, 0xB0BF, 0x864E, + 0xB0C0, 0x864F, 0xB0C1, 0x8650, 0xB0C2, 0x8651, 0xB0C3, 0x8652, + 0xB0C4, 0xB3BF, 0xB0C5, 0xB3C0, 0xB0C6, 0x8653, 0xB0C7, 0xB3C1, + 0xB0C8, 0xB3C2, 0xB0C9, 0xB3C3, 0xB0CA, 0x8654, 0xB0CB, 0x8655, + 0xB0CC, 0x8656, 0xB0CD, 0x8657, 0xB0CE, 0x8658, 0xB0CF, 0x8659, + 0xB0D0, 0xB3C4, 0xB0D1, 0xB3C5, 0xB0D2, 0x865A, 0xB0D3, 0x8661, + 0xB0D4, 0xB3C6, 0xB0D5, 0x8662, 0xB0D6, 0x8663, 0xB0D7, 0x8664, + 0xB0D8, 0xB3C7, 0xB0D9, 0x8665, 0xB0DA, 0x8666, 0xB0DB, 0x8667, + 0xB0DC, 0x8668, 0xB0DD, 0x8669, 0xB0DE, 0x866A, 0xB0DF, 0x866B, + 0xB0E0, 0xB3C8, 0xB0E1, 0x866C, 0xB0E2, 0x866D, 0xB0E3, 0x866E, + 0xB0E4, 0x866F, 0xB0E5, 0xB3C9, 0xB0E6, 0x8670, 0xB0E7, 0x8671, + 0xB0E8, 0x8672, 0xB0E9, 0x8673, 0xB0EA, 0x8674, 0xB0EB, 0x8675, + 0xB0EC, 0x8676, 0xB0ED, 0x8677, 0xB0EE, 0x8678, 0xB0EF, 0x8679, + 0xB0F0, 0x867A, 0xB0F1, 0x8681, 0xB0F2, 0x8682, 0xB0F3, 0x8683, + 0xB0F4, 0x8684, 0xB0F5, 0x8685, 0xB0F6, 0x8686, 0xB0F7, 0x8687, + 0xB0F8, 0x8688, 0xB0F9, 0x8689, 0xB0FA, 0x868A, 0xB0FB, 0x868B, + 0xB0FC, 0x868C, 0xB0FD, 0x868D, 0xB0FE, 0x868E, 0xB0FF, 0x868F, + 0xB100, 0x8690, 0xB101, 0x8691, 0xB102, 0x8692, 0xB103, 0x8693, + 0xB104, 0x8694, 0xB105, 0x8695, 0xB106, 0x8696, 0xB107, 0x8697, + 0xB108, 0xB3CA, 0xB109, 0xB3CB, 0xB10A, 0x8698, 0xB10B, 0xB3CC, + 0xB10C, 0xB3CD, 0xB10D, 0x8699, 0xB10E, 0x869A, 0xB10F, 0x869B, + 0xB110, 0xB3CE, 0xB111, 0x869C, 0xB112, 0xB3CF, 0xB113, 0xB3D0, + 0xB114, 0x869D, 0xB115, 0x869E, 0xB116, 0x869F, 0xB117, 0x86A0, + 0xB118, 0xB3D1, 0xB119, 0xB3D2, 0xB11A, 0x86A1, 0xB11B, 0xB3D3, + 0xB11C, 0xB3D4, 0xB11D, 0xB3D5, 0xB11E, 0x86A2, 0xB11F, 0x86A3, + 0xB120, 0x86A4, 0xB121, 0x86A5, 0xB122, 0x86A6, 0xB123, 0xB3D6, + 0xB124, 0xB3D7, 0xB125, 0xB3D8, 0xB126, 0x86A7, 0xB127, 0x86A8, + 0xB128, 0xB3D9, 0xB129, 0x86A9, 0xB12A, 0x86AA, 0xB12B, 0x86AB, + 0xB12C, 0xB3DA, 0xB12D, 0x86AC, 0xB12E, 0x86AD, 0xB12F, 0x86AE, + 0xB130, 0x86AF, 0xB131, 0x86B0, 0xB132, 0x86B1, 0xB133, 0x86B2, + 0xB134, 0xB3DB, 0xB135, 0xB3DC, 0xB136, 0x86B3, 0xB137, 0xB3DD, + 0xB138, 0xB3DE, 0xB139, 0xB3DF, 0xB13A, 0x86B4, 0xB13B, 0x86B5, + 0xB13C, 0x86B6, 0xB13D, 0x86B7, 0xB13E, 0x86B8, 0xB13F, 0x86B9, + 0xB140, 0xB3E0, 0xB141, 0xB3E1, 0xB142, 0x86BA, 0xB143, 0x86BB, + 0xB144, 0xB3E2, 0xB145, 0x86BC, 0xB146, 0x86BD, 0xB147, 0x86BE, + 0xB148, 0xB3E3, 0xB149, 0x86BF, 0xB14A, 0x86C0, 0xB14B, 0x86C1, + 0xB14C, 0x86C2, 0xB14D, 0x86C3, 0xB14E, 0x86C4, 0xB14F, 0x86C5, + 0xB150, 0xB3E4, 0xB151, 0xB3E5, 0xB152, 0x86C6, 0xB153, 0x86C7, + 0xB154, 0xB3E6, 0xB155, 0xB3E7, 0xB156, 0x86C8, 0xB157, 0x86C9, + 0xB158, 0xB3E8, 0xB159, 0x86CA, 0xB15A, 0x86CB, 0xB15B, 0x86CC, + 0xB15C, 0xB3E9, 0xB15D, 0x86CD, 0xB15E, 0x86CE, 0xB15F, 0x86CF, + 0xB160, 0xB3EA, 0xB161, 0x86D0, 0xB162, 0x86D1, 0xB163, 0x86D2, + 0xB164, 0x86D3, 0xB165, 0x86D4, 0xB166, 0x86D5, 0xB167, 0x86D6, + 0xB168, 0x86D7, 0xB169, 0x86D8, 0xB16A, 0x86D9, 0xB16B, 0x86DA, + 0xB16C, 0x86DB, 0xB16D, 0x86DC, 0xB16E, 0x86DD, 0xB16F, 0x86DE, + 0xB170, 0x86DF, 0xB171, 0x86E0, 0xB172, 0x86E1, 0xB173, 0x86E2, + 0xB174, 0x86E3, 0xB175, 0x86E4, 0xB176, 0x86E5, 0xB177, 0x86E6, + 0xB178, 0xB3EB, 0xB179, 0xB3EC, 0xB17A, 0x86E7, 0xB17B, 0x86E8, + 0xB17C, 0xB3ED, 0xB17D, 0x86E9, 0xB17E, 0x86EA, 0xB17F, 0x86EB, + 0xB180, 0xB3EE, 0xB181, 0x86EC, 0xB182, 0xB3EF, 0xB183, 0x86ED, + 0xB184, 0x86EE, 0xB185, 0x86EF, 0xB186, 0x86F0, 0xB187, 0x86F1, + 0xB188, 0xB3F0, 0xB189, 0xB3F1, 0xB18A, 0x86F2, 0xB18B, 0xB3F2, + 0xB18C, 0x86F3, 0xB18D, 0xB3F3, 0xB18E, 0x86F4, 0xB18F, 0x86F5, + 0xB190, 0x86F6, 0xB191, 0x86F7, 0xB192, 0xB3F4, 0xB193, 0xB3F5, + 0xB194, 0xB3F6, 0xB195, 0x86F8, 0xB196, 0x86F9, 0xB197, 0x86FA, + 0xB198, 0xB3F7, 0xB199, 0x86FB, 0xB19A, 0x86FC, 0xB19B, 0x86FD, + 0xB19C, 0xB3F8, 0xB19D, 0x86FE, 0xB19E, 0x8741, 0xB19F, 0x8742, + 0xB1A0, 0x8743, 0xB1A1, 0x8744, 0xB1A2, 0x8745, 0xB1A3, 0x8746, + 0xB1A4, 0x8747, 0xB1A5, 0x8748, 0xB1A6, 0x8749, 0xB1A7, 0x874A, + 0xB1A8, 0xB3F9, 0xB1A9, 0x874B, 0xB1AA, 0x874C, 0xB1AB, 0x874D, + 0xB1AC, 0x874E, 0xB1AD, 0x874F, 0xB1AE, 0x8750, 0xB1AF, 0x8751, + 0xB1B0, 0x8752, 0xB1B1, 0x8753, 0xB1B2, 0x8754, 0xB1B3, 0x8755, + 0xB1B4, 0x8756, 0xB1B5, 0x8757, 0xB1B6, 0x8758, 0xB1B7, 0x8759, + 0xB1B8, 0x875A, 0xB1B9, 0x8761, 0xB1BA, 0x8762, 0xB1BB, 0x8763, + 0xB1BC, 0x8764, 0xB1BD, 0x8765, 0xB1BE, 0x8766, 0xB1BF, 0x8767, + 0xB1C0, 0x8768, 0xB1C1, 0x8769, 0xB1C2, 0x876A, 0xB1C3, 0x876B, + 0xB1C4, 0x876C, 0xB1C5, 0x876D, 0xB1C6, 0x876E, 0xB1C7, 0x876F, + 0xB1C8, 0x8770, 0xB1C9, 0x8771, 0xB1CA, 0x8772, 0xB1CB, 0x8773, + 0xB1CC, 0xB3FA, 0xB1CD, 0x8774, 0xB1CE, 0x8775, 0xB1CF, 0x8776, + 0xB1D0, 0xB3FB, 0xB1D1, 0x8777, 0xB1D2, 0x8778, 0xB1D3, 0x8779, + 0xB1D4, 0xB3FC, 0xB1D5, 0x877A, 0xB1D6, 0x8781, 0xB1D7, 0x8782, + 0xB1D8, 0x8783, 0xB1D9, 0x8784, 0xB1DA, 0x8785, 0xB1DB, 0x8786, + 0xB1DC, 0xB3FD, 0xB1DD, 0xB3FE, 0xB1DE, 0x8787, 0xB1DF, 0xB4A1, + 0xB1E0, 0x8788, 0xB1E1, 0x8789, 0xB1E2, 0x878A, 0xB1E3, 0x878B, + 0xB1E4, 0x878C, 0xB1E5, 0x878D, 0xB1E6, 0x878E, 0xB1E7, 0x878F, + 0xB1E8, 0xB4A2, 0xB1E9, 0xB4A3, 0xB1EA, 0x8790, 0xB1EB, 0x8791, + 0xB1EC, 0xB4A4, 0xB1ED, 0x8792, 0xB1EE, 0x8793, 0xB1EF, 0x8794, + 0xB1F0, 0xB4A5, 0xB1F1, 0x8795, 0xB1F2, 0x8796, 0xB1F3, 0x8797, + 0xB1F4, 0x8798, 0xB1F5, 0x8799, 0xB1F6, 0x879A, 0xB1F7, 0x879B, + 0xB1F8, 0x879C, 0xB1F9, 0xB4A6, 0xB1FA, 0x879D, 0xB1FB, 0xB4A7, + 0xB1FC, 0x879E, 0xB1FD, 0xB4A8, 0xB1FE, 0x879F, 0xB1FF, 0x87A0, + 0xB200, 0x87A1, 0xB201, 0x87A2, 0xB202, 0x87A3, 0xB203, 0x87A4, + 0xB204, 0xB4A9, 0xB205, 0xB4AA, 0xB206, 0x87A5, 0xB207, 0x87A6, + 0xB208, 0xB4AB, 0xB209, 0x87A7, 0xB20A, 0x87A8, 0xB20B, 0xB4AC, + 0xB20C, 0xB4AD, 0xB20D, 0x87A9, 0xB20E, 0x87AA, 0xB20F, 0x87AB, + 0xB210, 0x87AC, 0xB211, 0x87AD, 0xB212, 0x87AE, 0xB213, 0x87AF, + 0xB214, 0xB4AE, 0xB215, 0xB4AF, 0xB216, 0x87B0, 0xB217, 0xB4B0, + 0xB218, 0x87B1, 0xB219, 0xB4B1, 0xB21A, 0x87B2, 0xB21B, 0x87B3, + 0xB21C, 0x87B4, 0xB21D, 0x87B5, 0xB21E, 0x87B6, 0xB21F, 0x87B7, + 0xB220, 0xB4B2, 0xB221, 0x87B8, 0xB222, 0x87B9, 0xB223, 0x87BA, + 0xB224, 0x87BB, 0xB225, 0x87BC, 0xB226, 0x87BD, 0xB227, 0x87BE, + 0xB228, 0x87BF, 0xB229, 0x87C0, 0xB22A, 0x87C1, 0xB22B, 0x87C2, + 0xB22C, 0x87C3, 0xB22D, 0x87C4, 0xB22E, 0x87C5, 0xB22F, 0x87C6, + 0xB230, 0x87C7, 0xB231, 0x87C8, 0xB232, 0x87C9, 0xB233, 0x87CA, + 0xB234, 0xB4B3, 0xB235, 0x87CB, 0xB236, 0x87CC, 0xB237, 0x87CD, + 0xB238, 0x87CE, 0xB239, 0x87CF, 0xB23A, 0x87D0, 0xB23B, 0x87D1, + 0xB23C, 0xB4B4, 0xB23D, 0x87D2, 0xB23E, 0x87D3, 0xB23F, 0x87D4, + 0xB240, 0x87D5, 0xB241, 0x87D6, 0xB242, 0x87D7, 0xB243, 0x87D8, + 0xB244, 0x87D9, 0xB245, 0x87DA, 0xB246, 0x87DB, 0xB247, 0x87DC, + 0xB248, 0x87DD, 0xB249, 0x87DE, 0xB24A, 0x87DF, 0xB24B, 0x87E0, + 0xB24C, 0x87E1, 0xB24D, 0x87E2, 0xB24E, 0x87E3, 0xB24F, 0x87E4, + 0xB250, 0x87E5, 0xB251, 0x87E6, 0xB252, 0x87E7, 0xB253, 0x87E8, + 0xB254, 0x87E9, 0xB255, 0x87EA, 0xB256, 0x87EB, 0xB257, 0x87EC, + 0xB258, 0xB4B5, 0xB259, 0x87ED, 0xB25A, 0x87EE, 0xB25B, 0x87EF, + 0xB25C, 0xB4B6, 0xB25D, 0x87F0, 0xB25E, 0x87F1, 0xB25F, 0x87F2, + 0xB260, 0xB4B7, 0xB261, 0x87F3, 0xB262, 0x87F4, 0xB263, 0x87F5, + 0xB264, 0x87F6, 0xB265, 0x87F7, 0xB266, 0x87F8, 0xB267, 0x87F9, + 0xB268, 0xB4B8, 0xB269, 0xB4B9, 0xB26A, 0x87FA, 0xB26B, 0x87FB, + 0xB26C, 0x87FC, 0xB26D, 0x87FD, 0xB26E, 0x87FE, 0xB26F, 0x8841, + 0xB270, 0x8842, 0xB271, 0x8843, 0xB272, 0x8844, 0xB273, 0x8845, + 0xB274, 0xB4BA, 0xB275, 0xB4BB, 0xB276, 0x8846, 0xB277, 0x8847, + 0xB278, 0x8848, 0xB279, 0x8849, 0xB27A, 0x884A, 0xB27B, 0x884B, + 0xB27C, 0xB4BC, 0xB27D, 0x884C, 0xB27E, 0x884D, 0xB27F, 0x884E, + 0xB280, 0x884F, 0xB281, 0x8850, 0xB282, 0x8851, 0xB283, 0x8852, + 0xB284, 0xB4BD, 0xB285, 0xB4BE, 0xB286, 0x8853, 0xB287, 0x8854, + 0xB288, 0x8855, 0xB289, 0xB4BF, 0xB28A, 0x8856, 0xB28B, 0x8857, + 0xB28C, 0x8858, 0xB28D, 0x8859, 0xB28E, 0x885A, 0xB28F, 0x8861, + 0xB290, 0xB4C0, 0xB291, 0xB4C1, 0xB292, 0x8862, 0xB293, 0x8863, + 0xB294, 0xB4C2, 0xB295, 0x8864, 0xB296, 0x8865, 0xB297, 0x8866, + 0xB298, 0xB4C3, 0xB299, 0xB4C4, 0xB29A, 0xB4C5, 0xB29B, 0x8867, + 0xB29C, 0x8868, 0xB29D, 0x8869, 0xB29E, 0x886A, 0xB29F, 0x886B, + 0xB2A0, 0xB4C6, 0xB2A1, 0xB4C7, 0xB2A2, 0x886C, 0xB2A3, 0xB4C8, + 0xB2A4, 0x886D, 0xB2A5, 0xB4C9, 0xB2A6, 0xB4CA, 0xB2A7, 0x886E, + 0xB2A8, 0x886F, 0xB2A9, 0x8870, 0xB2AA, 0xB4CB, 0xB2AB, 0x8871, + 0xB2AC, 0xB4CC, 0xB2AD, 0x8872, 0xB2AE, 0x8873, 0xB2AF, 0x8874, + 0xB2B0, 0xB4CD, 0xB2B1, 0x8875, 0xB2B2, 0x8876, 0xB2B3, 0x8877, + 0xB2B4, 0xB4CE, 0xB2B5, 0x8878, 0xB2B6, 0x8879, 0xB2B7, 0x887A, + 0xB2B8, 0x8881, 0xB2B9, 0x8882, 0xB2BA, 0x8883, 0xB2BB, 0x8884, + 0xB2BC, 0x8885, 0xB2BD, 0x8886, 0xB2BE, 0x8887, 0xB2BF, 0x8888, + 0xB2C0, 0x8889, 0xB2C1, 0x888A, 0xB2C2, 0x888B, 0xB2C3, 0x888C, + 0xB2C4, 0x888D, 0xB2C5, 0x888E, 0xB2C6, 0x888F, 0xB2C7, 0x8890, + 0xB2C8, 0xB4CF, 0xB2C9, 0xB4D0, 0xB2CA, 0x8891, 0xB2CB, 0x8892, + 0xB2CC, 0xB4D1, 0xB2CD, 0x8893, 0xB2CE, 0x8894, 0xB2CF, 0x8895, + 0xB2D0, 0xB4D2, 0xB2D1, 0x8896, 0xB2D2, 0xB4D3, 0xB2D3, 0x8897, + 0xB2D4, 0x8898, 0xB2D5, 0x8899, 0xB2D6, 0x889A, 0xB2D7, 0x889B, + 0xB2D8, 0xB4D4, 0xB2D9, 0xB4D5, 0xB2DA, 0x889C, 0xB2DB, 0xB4D6, + 0xB2DC, 0x889D, 0xB2DD, 0xB4D7, 0xB2DE, 0x889E, 0xB2DF, 0x889F, + 0xB2E0, 0x88A0, 0xB2E1, 0x88A1, 0xB2E2, 0xB4D8, 0xB2E3, 0x88A2, + 0xB2E4, 0xB4D9, 0xB2E5, 0xB4DA, 0xB2E6, 0xB4DB, 0xB2E7, 0x88A3, + 0xB2E8, 0xB4DC, 0xB2E9, 0x88A4, 0xB2EA, 0x88A5, 0xB2EB, 0xB4DD, + 0xB2EC, 0xB4DE, 0xB2ED, 0xB4DF, 0xB2EE, 0xB4E0, 0xB2EF, 0xB4E1, + 0xB2F0, 0x88A6, 0xB2F1, 0x88A7, 0xB2F2, 0x88A8, 0xB2F3, 0xB4E2, + 0xB2F4, 0xB4E3, 0xB2F5, 0xB4E4, 0xB2F6, 0x88A9, 0xB2F7, 0xB4E5, + 0xB2F8, 0xB4E6, 0xB2F9, 0xB4E7, 0xB2FA, 0xB4E8, 0xB2FB, 0xB4E9, + 0xB2FC, 0x88AA, 0xB2FD, 0x88AB, 0xB2FE, 0x88AC, 0xB2FF, 0xB4EA, + 0xB300, 0xB4EB, 0xB301, 0xB4EC, 0xB302, 0x88AD, 0xB303, 0x88AE, + 0xB304, 0xB4ED, 0xB305, 0x88AF, 0xB306, 0x88B0, 0xB307, 0x88B1, + 0xB308, 0xB4EE, 0xB309, 0x88B2, 0xB30A, 0x88B3, 0xB30B, 0x88B4, + 0xB30C, 0x88B5, 0xB30D, 0x88B6, 0xB30E, 0x88B7, 0xB30F, 0x88B8, + 0xB310, 0xB4EF, 0xB311, 0xB4F0, 0xB312, 0x88B9, 0xB313, 0xB4F1, + 0xB314, 0xB4F2, 0xB315, 0xB4F3, 0xB316, 0x88BA, 0xB317, 0x88BB, + 0xB318, 0x88BC, 0xB319, 0x88BD, 0xB31A, 0x88BE, 0xB31B, 0x88BF, + 0xB31C, 0xB4F4, 0xB31D, 0x88C0, 0xB31E, 0x88C1, 0xB31F, 0x88C2, + 0xB320, 0x88C3, 0xB321, 0x88C4, 0xB322, 0x88C5, 0xB323, 0x88C6, + 0xB324, 0x88C7, 0xB325, 0x88C8, 0xB326, 0x88C9, 0xB327, 0x88CA, + 0xB328, 0x88CB, 0xB329, 0x88CC, 0xB32A, 0x88CD, 0xB32B, 0x88CE, + 0xB32C, 0x88CF, 0xB32D, 0x88D0, 0xB32E, 0x88D1, 0xB32F, 0x88D2, + 0xB330, 0x88D3, 0xB331, 0x88D4, 0xB332, 0x88D5, 0xB333, 0x88D6, + 0xB334, 0x88D7, 0xB335, 0x88D8, 0xB336, 0x88D9, 0xB337, 0x88DA, + 0xB338, 0x88DB, 0xB339, 0x88DC, 0xB33A, 0x88DD, 0xB33B, 0x88DE, + 0xB33C, 0x88DF, 0xB33D, 0x88E0, 0xB33E, 0x88E1, 0xB33F, 0x88E2, + 0xB340, 0x88E3, 0xB341, 0x88E4, 0xB342, 0x88E5, 0xB343, 0x88E6, + 0xB344, 0x88E7, 0xB345, 0x88E8, 0xB346, 0x88E9, 0xB347, 0x88EA, + 0xB348, 0x88EB, 0xB349, 0x88EC, 0xB34A, 0x88ED, 0xB34B, 0x88EE, + 0xB34C, 0x88EF, 0xB34D, 0x88F0, 0xB34E, 0x88F1, 0xB34F, 0x88F2, + 0xB350, 0x88F3, 0xB351, 0x88F4, 0xB352, 0x88F5, 0xB353, 0x88F6, + 0xB354, 0xB4F5, 0xB355, 0xB4F6, 0xB356, 0xB4F7, 0xB357, 0x88F7, + 0xB358, 0xB4F8, 0xB359, 0x88F8, 0xB35A, 0x88F9, 0xB35B, 0xB4F9, + 0xB35C, 0xB4FA, 0xB35D, 0x88FA, 0xB35E, 0xB4FB, 0xB35F, 0xB4FC, + 0xB360, 0x88FB, 0xB361, 0x88FC, 0xB362, 0x88FD, 0xB363, 0x88FE, + 0xB364, 0xB4FD, 0xB365, 0xB4FE, 0xB366, 0x8941, 0xB367, 0xB5A1, + 0xB368, 0x8942, 0xB369, 0xB5A2, 0xB36A, 0x8943, 0xB36B, 0xB5A3, + 0xB36C, 0x8944, 0xB36D, 0x8945, 0xB36E, 0xB5A4, 0xB36F, 0x8946, + 0xB370, 0xB5A5, 0xB371, 0xB5A6, 0xB372, 0x8947, 0xB373, 0x8948, + 0xB374, 0xB5A7, 0xB375, 0x8949, 0xB376, 0x894A, 0xB377, 0x894B, + 0xB378, 0xB5A8, 0xB379, 0x894C, 0xB37A, 0x894D, 0xB37B, 0x894E, + 0xB37C, 0x894F, 0xB37D, 0x8950, 0xB37E, 0x8951, 0xB37F, 0x8952, + 0xB380, 0xB5A9, 0xB381, 0xB5AA, 0xB382, 0x8953, 0xB383, 0xB5AB, + 0xB384, 0xB5AC, 0xB385, 0xB5AD, 0xB386, 0x8954, 0xB387, 0x8955, + 0xB388, 0x8956, 0xB389, 0x8957, 0xB38A, 0x8958, 0xB38B, 0x8959, + 0xB38C, 0xB5AE, 0xB38D, 0x895A, 0xB38E, 0x8961, 0xB38F, 0x8962, + 0xB390, 0xB5AF, 0xB391, 0x8963, 0xB392, 0x8964, 0xB393, 0x8965, + 0xB394, 0xB5B0, 0xB395, 0x8966, 0xB396, 0x8967, 0xB397, 0x8968, + 0xB398, 0x8969, 0xB399, 0x896A, 0xB39A, 0x896B, 0xB39B, 0x896C, + 0xB39C, 0x896D, 0xB39D, 0x896E, 0xB39E, 0x896F, 0xB39F, 0x8970, + 0xB3A0, 0xB5B1, 0xB3A1, 0xB5B2, 0xB3A2, 0x8971, 0xB3A3, 0x8972, + 0xB3A4, 0x8973, 0xB3A5, 0x8974, 0xB3A6, 0x8975, 0xB3A7, 0x8976, + 0xB3A8, 0xB5B3, 0xB3A9, 0x8977, 0xB3AA, 0x8978, 0xB3AB, 0x8979, + 0xB3AC, 0xB5B4, 0xB3AD, 0x897A, 0xB3AE, 0x8981, 0xB3AF, 0x8982, + 0xB3B0, 0x8983, 0xB3B1, 0x8984, 0xB3B2, 0x8985, 0xB3B3, 0x8986, + 0xB3B4, 0x8987, 0xB3B5, 0x8988, 0xB3B6, 0x8989, 0xB3B7, 0x898A, + 0xB3B8, 0x898B, 0xB3B9, 0x898C, 0xB3BA, 0x898D, 0xB3BB, 0x898E, + 0xB3BC, 0x898F, 0xB3BD, 0x8990, 0xB3BE, 0x8991, 0xB3BF, 0x8992, + 0xB3C0, 0x8993, 0xB3C1, 0x8994, 0xB3C2, 0x8995, 0xB3C3, 0x8996, + 0xB3C4, 0xB5B5, 0xB3C5, 0xB5B6, 0xB3C6, 0x8997, 0xB3C7, 0x8998, + 0xB3C8, 0xB5B7, 0xB3C9, 0x8999, 0xB3CA, 0x899A, 0xB3CB, 0xB5B8, + 0xB3CC, 0xB5B9, 0xB3CD, 0x899B, 0xB3CE, 0xB5BA, 0xB3CF, 0x899C, + 0xB3D0, 0xB5BB, 0xB3D1, 0x899D, 0xB3D2, 0x899E, 0xB3D3, 0x899F, + 0xB3D4, 0xB5BC, 0xB3D5, 0xB5BD, 0xB3D6, 0x89A0, 0xB3D7, 0xB5BE, + 0xB3D8, 0x89A1, 0xB3D9, 0xB5BF, 0xB3DA, 0x89A2, 0xB3DB, 0xB5C0, + 0xB3DC, 0x89A3, 0xB3DD, 0xB5C1, 0xB3DE, 0x89A4, 0xB3DF, 0x89A5, + 0xB3E0, 0xB5C2, 0xB3E1, 0x89A6, 0xB3E2, 0x89A7, 0xB3E3, 0x89A8, + 0xB3E4, 0xB5C3, 0xB3E5, 0x89A9, 0xB3E6, 0x89AA, 0xB3E7, 0x89AB, + 0xB3E8, 0xB5C4, 0xB3E9, 0x89AC, 0xB3EA, 0x89AD, 0xB3EB, 0x89AE, + 0xB3EC, 0x89AF, 0xB3ED, 0x89B0, 0xB3EE, 0x89B1, 0xB3EF, 0x89B2, + 0xB3F0, 0x89B3, 0xB3F1, 0x89B4, 0xB3F2, 0x89B5, 0xB3F3, 0x89B6, + 0xB3F4, 0x89B7, 0xB3F5, 0x89B8, 0xB3F6, 0x89B9, 0xB3F7, 0x89BA, + 0xB3F8, 0x89BB, 0xB3F9, 0x89BC, 0xB3FA, 0x89BD, 0xB3FB, 0x89BE, + 0xB3FC, 0xB5C5, 0xB3FD, 0x89BF, 0xB3FE, 0x89C0, 0xB3FF, 0x89C1, + 0xB400, 0x89C2, 0xB401, 0x89C3, 0xB402, 0x89C4, 0xB403, 0x89C5, + 0xB404, 0x89C6, 0xB405, 0x89C7, 0xB406, 0x89C8, 0xB407, 0x89C9, + 0xB408, 0x89CA, 0xB409, 0x89CB, 0xB40A, 0x89CC, 0xB40B, 0x89CD, + 0xB40C, 0x89CE, 0xB40D, 0x89CF, 0xB40E, 0x89D0, 0xB40F, 0x89D1, + 0xB410, 0xB5C6, 0xB411, 0x89D2, 0xB412, 0x89D3, 0xB413, 0x89D4, + 0xB414, 0x89D5, 0xB415, 0x89D6, 0xB416, 0x89D7, 0xB417, 0x89D8, + 0xB418, 0xB5C7, 0xB419, 0x89D9, 0xB41A, 0x89DA, 0xB41B, 0x89DB, + 0xB41C, 0xB5C8, 0xB41D, 0x89DC, 0xB41E, 0x89DD, 0xB41F, 0x89DE, + 0xB420, 0xB5C9, 0xB421, 0x89DF, 0xB422, 0x89E0, 0xB423, 0x89E1, + 0xB424, 0x89E2, 0xB425, 0x89E3, 0xB426, 0x89E4, 0xB427, 0x89E5, + 0xB428, 0xB5CA, 0xB429, 0xB5CB, 0xB42A, 0x89E6, 0xB42B, 0xB5CC, + 0xB42C, 0x89E7, 0xB42D, 0x89E8, 0xB42E, 0x89E9, 0xB42F, 0x89EA, + 0xB430, 0x89EB, 0xB431, 0x89EC, 0xB432, 0x89ED, 0xB433, 0x89EE, + 0xB434, 0xB5CD, 0xB435, 0x89EF, 0xB436, 0x89F0, 0xB437, 0x89F1, + 0xB438, 0x89F2, 0xB439, 0x89F3, 0xB43A, 0x89F4, 0xB43B, 0x89F5, + 0xB43C, 0x89F6, 0xB43D, 0x89F7, 0xB43E, 0x89F8, 0xB43F, 0x89F9, + 0xB440, 0x89FA, 0xB441, 0x89FB, 0xB442, 0x89FC, 0xB443, 0x89FD, + 0xB444, 0x89FE, 0xB445, 0x8A41, 0xB446, 0x8A42, 0xB447, 0x8A43, + 0xB448, 0x8A44, 0xB449, 0x8A45, 0xB44A, 0x8A46, 0xB44B, 0x8A47, + 0xB44C, 0x8A48, 0xB44D, 0x8A49, 0xB44E, 0x8A4A, 0xB44F, 0x8A4B, + 0xB450, 0xB5CE, 0xB451, 0xB5CF, 0xB452, 0x8A4C, 0xB453, 0x8A4D, + 0xB454, 0xB5D0, 0xB455, 0x8A4E, 0xB456, 0x8A4F, 0xB457, 0x8A50, + 0xB458, 0xB5D1, 0xB459, 0x8A51, 0xB45A, 0x8A52, 0xB45B, 0x8A53, + 0xB45C, 0x8A54, 0xB45D, 0x8A55, 0xB45E, 0x8A56, 0xB45F, 0x8A57, + 0xB460, 0xB5D2, 0xB461, 0xB5D3, 0xB462, 0x8A58, 0xB463, 0xB5D4, + 0xB464, 0x8A59, 0xB465, 0xB5D5, 0xB466, 0x8A5A, 0xB467, 0x8A61, + 0xB468, 0x8A62, 0xB469, 0x8A63, 0xB46A, 0x8A64, 0xB46B, 0x8A65, + 0xB46C, 0xB5D6, 0xB46D, 0x8A66, 0xB46E, 0x8A67, 0xB46F, 0x8A68, + 0xB470, 0x8A69, 0xB471, 0x8A6A, 0xB472, 0x8A6B, 0xB473, 0x8A6C, + 0xB474, 0x8A6D, 0xB475, 0x8A6E, 0xB476, 0x8A6F, 0xB477, 0x8A70, + 0xB478, 0x8A71, 0xB479, 0x8A72, 0xB47A, 0x8A73, 0xB47B, 0x8A74, + 0xB47C, 0x8A75, 0xB47D, 0x8A76, 0xB47E, 0x8A77, 0xB47F, 0x8A78, + 0xB480, 0xB5D7, 0xB481, 0x8A79, 0xB482, 0x8A7A, 0xB483, 0x8A81, + 0xB484, 0x8A82, 0xB485, 0x8A83, 0xB486, 0x8A84, 0xB487, 0x8A85, + 0xB488, 0xB5D8, 0xB489, 0x8A86, 0xB48A, 0x8A87, 0xB48B, 0x8A88, + 0xB48C, 0x8A89, 0xB48D, 0x8A8A, 0xB48E, 0x8A8B, 0xB48F, 0x8A8C, + 0xB490, 0x8A8D, 0xB491, 0x8A8E, 0xB492, 0x8A8F, 0xB493, 0x8A90, + 0xB494, 0x8A91, 0xB495, 0x8A92, 0xB496, 0x8A93, 0xB497, 0x8A94, + 0xB498, 0x8A95, 0xB499, 0x8A96, 0xB49A, 0x8A97, 0xB49B, 0x8A98, + 0xB49C, 0x8A99, 0xB49D, 0xB5D9, 0xB49E, 0x8A9A, 0xB49F, 0x8A9B, + 0xB4A0, 0x8A9C, 0xB4A1, 0x8A9D, 0xB4A2, 0x8A9E, 0xB4A3, 0x8A9F, + 0xB4A4, 0xB5DA, 0xB4A5, 0x8AA0, 0xB4A6, 0x8AA1, 0xB4A7, 0x8AA2, + 0xB4A8, 0xB5DB, 0xB4A9, 0x8AA3, 0xB4AA, 0x8AA4, 0xB4AB, 0x8AA5, + 0xB4AC, 0xB5DC, 0xB4AD, 0x8AA6, 0xB4AE, 0x8AA7, 0xB4AF, 0x8AA8, + 0xB4B0, 0x8AA9, 0xB4B1, 0x8AAA, 0xB4B2, 0x8AAB, 0xB4B3, 0x8AAC, + 0xB4B4, 0x8AAD, 0xB4B5, 0xB5DD, 0xB4B6, 0x8AAE, 0xB4B7, 0xB5DE, + 0xB4B8, 0x8AAF, 0xB4B9, 0xB5DF, 0xB4BA, 0x8AB0, 0xB4BB, 0x8AB1, + 0xB4BC, 0x8AB2, 0xB4BD, 0x8AB3, 0xB4BE, 0x8AB4, 0xB4BF, 0x8AB5, + 0xB4C0, 0xB5E0, 0xB4C1, 0x8AB6, 0xB4C2, 0x8AB7, 0xB4C3, 0x8AB8, + 0xB4C4, 0xB5E1, 0xB4C5, 0x8AB9, 0xB4C6, 0x8ABA, 0xB4C7, 0x8ABB, + 0xB4C8, 0xB5E2, 0xB4C9, 0x8ABC, 0xB4CA, 0x8ABD, 0xB4CB, 0x8ABE, + 0xB4CC, 0x8ABF, 0xB4CD, 0x8AC0, 0xB4CE, 0x8AC1, 0xB4CF, 0x8AC2, + 0xB4D0, 0xB5E3, 0xB4D1, 0x8AC3, 0xB4D2, 0x8AC4, 0xB4D3, 0x8AC5, + 0xB4D4, 0x8AC6, 0xB4D5, 0xB5E4, 0xB4D6, 0x8AC7, 0xB4D7, 0x8AC8, + 0xB4D8, 0x8AC9, 0xB4D9, 0x8ACA, 0xB4DA, 0x8ACB, 0xB4DB, 0x8ACC, + 0xB4DC, 0xB5E5, 0xB4DD, 0xB5E6, 0xB4DE, 0x8ACD, 0xB4DF, 0x8ACE, + 0xB4E0, 0xB5E7, 0xB4E1, 0x8ACF, 0xB4E2, 0x8AD0, 0xB4E3, 0xB5E8, + 0xB4E4, 0xB5E9, 0xB4E5, 0x8AD1, 0xB4E6, 0xB5EA, 0xB4E7, 0x8AD2, + 0xB4E8, 0x8AD3, 0xB4E9, 0x8AD4, 0xB4EA, 0x8AD5, 0xB4EB, 0x8AD6, + 0xB4EC, 0xB5EB, 0xB4ED, 0xB5EC, 0xB4EE, 0x8AD7, 0xB4EF, 0xB5ED, + 0xB4F0, 0x8AD8, 0xB4F1, 0xB5EE, 0xB4F2, 0x8AD9, 0xB4F3, 0x8ADA, + 0xB4F4, 0x8ADB, 0xB4F5, 0x8ADC, 0xB4F6, 0x8ADD, 0xB4F7, 0x8ADE, + 0xB4F8, 0xB5EF, 0xB4F9, 0x8ADF, 0xB4FA, 0x8AE0, 0xB4FB, 0x8AE1, + 0xB4FC, 0x8AE2, 0xB4FD, 0x8AE3, 0xB4FE, 0x8AE4, 0xB4FF, 0x8AE5, + 0xB500, 0x8AE6, 0xB501, 0x8AE7, 0xB502, 0x8AE8, 0xB503, 0x8AE9, + 0xB504, 0x8AEA, 0xB505, 0x8AEB, 0xB506, 0x8AEC, 0xB507, 0x8AED, + 0xB508, 0x8AEE, 0xB509, 0x8AEF, 0xB50A, 0x8AF0, 0xB50B, 0x8AF1, + 0xB50C, 0x8AF2, 0xB50D, 0x8AF3, 0xB50E, 0x8AF4, 0xB50F, 0x8AF5, + 0xB510, 0x8AF6, 0xB511, 0x8AF7, 0xB512, 0x8AF8, 0xB513, 0x8AF9, + 0xB514, 0xB5F0, 0xB515, 0xB5F1, 0xB516, 0x8AFA, 0xB517, 0x8AFB, + 0xB518, 0xB5F2, 0xB519, 0x8AFC, 0xB51A, 0x8AFD, 0xB51B, 0xB5F3, + 0xB51C, 0xB5F4, 0xB51D, 0x8AFE, 0xB51E, 0x8B41, 0xB51F, 0x8B42, + 0xB520, 0x8B43, 0xB521, 0x8B44, 0xB522, 0x8B45, 0xB523, 0x8B46, + 0xB524, 0xB5F5, 0xB525, 0xB5F6, 0xB526, 0x8B47, 0xB527, 0xB5F7, + 0xB528, 0xB5F8, 0xB529, 0xB5F9, 0xB52A, 0xB5FA, 0xB52B, 0x8B48, + 0xB52C, 0x8B49, 0xB52D, 0x8B4A, 0xB52E, 0x8B4B, 0xB52F, 0x8B4C, + 0xB530, 0xB5FB, 0xB531, 0xB5FC, 0xB532, 0x8B4D, 0xB533, 0x8B4E, + 0xB534, 0xB5FD, 0xB535, 0x8B4F, 0xB536, 0x8B50, 0xB537, 0x8B51, + 0xB538, 0xB5FE, 0xB539, 0x8B52, 0xB53A, 0x8B53, 0xB53B, 0x8B54, + 0xB53C, 0x8B55, 0xB53D, 0x8B56, 0xB53E, 0x8B57, 0xB53F, 0x8B58, + 0xB540, 0xB6A1, 0xB541, 0xB6A2, 0xB542, 0x8B59, 0xB543, 0xB6A3, + 0xB544, 0xB6A4, 0xB545, 0xB6A5, 0xB546, 0x8B5A, 0xB547, 0x8B61, + 0xB548, 0x8B62, 0xB549, 0x8B63, 0xB54A, 0x8B64, 0xB54B, 0xB6A6, + 0xB54C, 0xB6A7, 0xB54D, 0xB6A8, 0xB54E, 0x8B65, 0xB54F, 0x8B66, + 0xB550, 0xB6A9, 0xB551, 0x8B67, 0xB552, 0x8B68, 0xB553, 0x8B69, + 0xB554, 0xB6AA, 0xB555, 0x8B6A, 0xB556, 0x8B6B, 0xB557, 0x8B6C, + 0xB558, 0x8B6D, 0xB559, 0x8B6E, 0xB55A, 0x8B6F, 0xB55B, 0x8B70, + 0xB55C, 0xB6AB, 0xB55D, 0xB6AC, 0xB55E, 0x8B71, 0xB55F, 0xB6AD, + 0xB560, 0xB6AE, 0xB561, 0xB6AF, 0xB562, 0x8B72, 0xB563, 0x8B73, + 0xB564, 0x8B74, 0xB565, 0x8B75, 0xB566, 0x8B76, 0xB567, 0x8B77, + 0xB568, 0x8B78, 0xB569, 0x8B79, 0xB56A, 0x8B7A, 0xB56B, 0x8B81, + 0xB56C, 0x8B82, 0xB56D, 0x8B83, 0xB56E, 0x8B84, 0xB56F, 0x8B85, + 0xB570, 0x8B86, 0xB571, 0x8B87, 0xB572, 0x8B88, 0xB573, 0x8B89, + 0xB574, 0x8B8A, 0xB575, 0x8B8B, 0xB576, 0x8B8C, 0xB577, 0x8B8D, + 0xB578, 0x8B8E, 0xB579, 0x8B8F, 0xB57A, 0x8B90, 0xB57B, 0x8B91, + 0xB57C, 0x8B92, 0xB57D, 0x8B93, 0xB57E, 0x8B94, 0xB57F, 0x8B95, + 0xB580, 0x8B96, 0xB581, 0x8B97, 0xB582, 0x8B98, 0xB583, 0x8B99, + 0xB584, 0x8B9A, 0xB585, 0x8B9B, 0xB586, 0x8B9C, 0xB587, 0x8B9D, + 0xB588, 0x8B9E, 0xB589, 0x8B9F, 0xB58A, 0x8BA0, 0xB58B, 0x8BA1, + 0xB58C, 0x8BA2, 0xB58D, 0x8BA3, 0xB58E, 0x8BA4, 0xB58F, 0x8BA5, + 0xB590, 0x8BA6, 0xB591, 0x8BA7, 0xB592, 0x8BA8, 0xB593, 0x8BA9, + 0xB594, 0x8BAA, 0xB595, 0x8BAB, 0xB596, 0x8BAC, 0xB597, 0x8BAD, + 0xB598, 0x8BAE, 0xB599, 0x8BAF, 0xB59A, 0x8BB0, 0xB59B, 0x8BB1, + 0xB59C, 0x8BB2, 0xB59D, 0x8BB3, 0xB59E, 0x8BB4, 0xB59F, 0x8BB5, + 0xB5A0, 0xB6B0, 0xB5A1, 0xB6B1, 0xB5A2, 0x8BB6, 0xB5A3, 0x8BB7, + 0xB5A4, 0xB6B2, 0xB5A5, 0x8BB8, 0xB5A6, 0x8BB9, 0xB5A7, 0x8BBA, + 0xB5A8, 0xB6B3, 0xB5A9, 0x8BBB, 0xB5AA, 0xB6B4, 0xB5AB, 0xB6B5, + 0xB5AC, 0x8BBC, 0xB5AD, 0x8BBD, 0xB5AE, 0x8BBE, 0xB5AF, 0x8BBF, + 0xB5B0, 0xB6B6, 0xB5B1, 0xB6B7, 0xB5B2, 0x8BC0, 0xB5B3, 0xB6B8, + 0xB5B4, 0xB6B9, 0xB5B5, 0xB6BA, 0xB5B6, 0x8BC1, 0xB5B7, 0x8BC2, + 0xB5B8, 0x8BC3, 0xB5B9, 0x8BC4, 0xB5BA, 0x8BC5, 0xB5BB, 0xB6BB, + 0xB5BC, 0xB6BC, 0xB5BD, 0xB6BD, 0xB5BE, 0x8BC6, 0xB5BF, 0x8BC7, + 0xB5C0, 0xB6BE, 0xB5C1, 0x8BC8, 0xB5C2, 0x8BC9, 0xB5C3, 0x8BCA, + 0xB5C4, 0xB6BF, 0xB5C5, 0x8BCB, 0xB5C6, 0x8BCC, 0xB5C7, 0x8BCD, + 0xB5C8, 0x8BCE, 0xB5C9, 0x8BCF, 0xB5CA, 0x8BD0, 0xB5CB, 0x8BD1, + 0xB5CC, 0xB6C0, 0xB5CD, 0xB6C1, 0xB5CE, 0x8BD2, 0xB5CF, 0xB6C2, + 0xB5D0, 0xB6C3, 0xB5D1, 0xB6C4, 0xB5D2, 0x8BD3, 0xB5D3, 0x8BD4, + 0xB5D4, 0x8BD5, 0xB5D5, 0x8BD6, 0xB5D6, 0x8BD7, 0xB5D7, 0x8BD8, + 0xB5D8, 0xB6C5, 0xB5D9, 0x8BD9, 0xB5DA, 0x8BDA, 0xB5DB, 0x8BDB, + 0xB5DC, 0x8BDC, 0xB5DD, 0x8BDD, 0xB5DE, 0x8BDE, 0xB5DF, 0x8BDF, + 0xB5E0, 0x8BE0, 0xB5E1, 0x8BE1, 0xB5E2, 0x8BE2, 0xB5E3, 0x8BE3, + 0xB5E4, 0x8BE4, 0xB5E5, 0x8BE5, 0xB5E6, 0x8BE6, 0xB5E7, 0x8BE7, + 0xB5E8, 0x8BE8, 0xB5E9, 0x8BE9, 0xB5EA, 0x8BEA, 0xB5EB, 0x8BEB, + 0xB5EC, 0xB6C6, 0xB5ED, 0x8BEC, 0xB5EE, 0x8BED, 0xB5EF, 0x8BEE, + 0xB5F0, 0x8BEF, 0xB5F1, 0x8BF0, 0xB5F2, 0x8BF1, 0xB5F3, 0x8BF2, + 0xB5F4, 0x8BF3, 0xB5F5, 0x8BF4, 0xB5F6, 0x8BF5, 0xB5F7, 0x8BF6, + 0xB5F8, 0x8BF7, 0xB5F9, 0x8BF8, 0xB5FA, 0x8BF9, 0xB5FB, 0x8BFA, + 0xB5FC, 0x8BFB, 0xB5FD, 0x8BFC, 0xB5FE, 0x8BFD, 0xB5FF, 0x8BFE, + 0xB600, 0x8C41, 0xB601, 0x8C42, 0xB602, 0x8C43, 0xB603, 0x8C44, + 0xB604, 0x8C45, 0xB605, 0x8C46, 0xB606, 0x8C47, 0xB607, 0x8C48, + 0xB608, 0x8C49, 0xB609, 0x8C4A, 0xB60A, 0x8C4B, 0xB60B, 0x8C4C, + 0xB60C, 0x8C4D, 0xB60D, 0x8C4E, 0xB60E, 0x8C4F, 0xB60F, 0x8C50, + 0xB610, 0xB6C7, 0xB611, 0xB6C8, 0xB612, 0x8C51, 0xB613, 0x8C52, + 0xB614, 0xB6C9, 0xB615, 0x8C53, 0xB616, 0x8C54, 0xB617, 0x8C55, + 0xB618, 0xB6CA, 0xB619, 0x8C56, 0xB61A, 0x8C57, 0xB61B, 0x8C58, + 0xB61C, 0x8C59, 0xB61D, 0x8C5A, 0xB61E, 0x8C61, 0xB61F, 0x8C62, + 0xB620, 0x8C63, 0xB621, 0x8C64, 0xB622, 0x8C65, 0xB623, 0x8C66, + 0xB624, 0x8C67, 0xB625, 0xB6CB, 0xB626, 0x8C68, 0xB627, 0x8C69, + 0xB628, 0x8C6A, 0xB629, 0x8C6B, 0xB62A, 0x8C6C, 0xB62B, 0x8C6D, + 0xB62C, 0xB6CC, 0xB62D, 0x8C6E, 0xB62E, 0x8C6F, 0xB62F, 0x8C70, + 0xB630, 0x8C71, 0xB631, 0x8C72, 0xB632, 0x8C73, 0xB633, 0x8C74, + 0xB634, 0xB6CD, 0xB635, 0x8C75, 0xB636, 0x8C76, 0xB637, 0x8C77, + 0xB638, 0x8C78, 0xB639, 0x8C79, 0xB63A, 0x8C7A, 0xB63B, 0x8C81, + 0xB63C, 0x8C82, 0xB63D, 0x8C83, 0xB63E, 0x8C84, 0xB63F, 0x8C85, + 0xB640, 0x8C86, 0xB641, 0x8C87, 0xB642, 0x8C88, 0xB643, 0x8C89, + 0xB644, 0x8C8A, 0xB645, 0x8C8B, 0xB646, 0x8C8C, 0xB647, 0x8C8D, + 0xB648, 0xB6CE, 0xB649, 0x8C8E, 0xB64A, 0x8C8F, 0xB64B, 0x8C90, + 0xB64C, 0x8C91, 0xB64D, 0x8C92, 0xB64E, 0x8C93, 0xB64F, 0x8C94, + 0xB650, 0x8C95, 0xB651, 0x8C96, 0xB652, 0x8C97, 0xB653, 0x8C98, + 0xB654, 0x8C99, 0xB655, 0x8C9A, 0xB656, 0x8C9B, 0xB657, 0x8C9C, + 0xB658, 0x8C9D, 0xB659, 0x8C9E, 0xB65A, 0x8C9F, 0xB65B, 0x8CA0, + 0xB65C, 0x8CA1, 0xB65D, 0x8CA2, 0xB65E, 0x8CA3, 0xB65F, 0x8CA4, + 0xB660, 0x8CA5, 0xB661, 0x8CA6, 0xB662, 0x8CA7, 0xB663, 0x8CA8, + 0xB664, 0xB6CF, 0xB665, 0x8CA9, 0xB666, 0x8CAA, 0xB667, 0x8CAB, + 0xB668, 0xB6D0, 0xB669, 0x8CAC, 0xB66A, 0x8CAD, 0xB66B, 0x8CAE, + 0xB66C, 0x8CAF, 0xB66D, 0x8CB0, 0xB66E, 0x8CB1, 0xB66F, 0x8CB2, + 0xB670, 0x8CB3, 0xB671, 0x8CB4, 0xB672, 0x8CB5, 0xB673, 0x8CB6, + 0xB674, 0x8CB7, 0xB675, 0x8CB8, 0xB676, 0x8CB9, 0xB677, 0x8CBA, + 0xB678, 0x8CBB, 0xB679, 0x8CBC, 0xB67A, 0x8CBD, 0xB67B, 0x8CBE, + 0xB67C, 0x8CBF, 0xB67D, 0x8CC0, 0xB67E, 0x8CC1, 0xB67F, 0x8CC2, + 0xB680, 0x8CC3, 0xB681, 0x8CC4, 0xB682, 0x8CC5, 0xB683, 0x8CC6, + 0xB684, 0x8CC7, 0xB685, 0x8CC8, 0xB686, 0x8CC9, 0xB687, 0x8CCA, + 0xB688, 0x8CCB, 0xB689, 0x8CCC, 0xB68A, 0x8CCD, 0xB68B, 0x8CCE, + 0xB68C, 0x8CCF, 0xB68D, 0x8CD0, 0xB68E, 0x8CD1, 0xB68F, 0x8CD2, + 0xB690, 0x8CD3, 0xB691, 0x8CD4, 0xB692, 0x8CD5, 0xB693, 0x8CD6, + 0xB694, 0x8CD7, 0xB695, 0x8CD8, 0xB696, 0x8CD9, 0xB697, 0x8CDA, + 0xB698, 0x8CDB, 0xB699, 0x8CDC, 0xB69A, 0x8CDD, 0xB69B, 0x8CDE, + 0xB69C, 0xB6D1, 0xB69D, 0xB6D2, 0xB69E, 0x8CDF, 0xB69F, 0x8CE0, + 0xB6A0, 0xB6D3, 0xB6A1, 0x8CE1, 0xB6A2, 0x8CE2, 0xB6A3, 0x8CE3, + 0xB6A4, 0xB6D4, 0xB6A5, 0x8CE4, 0xB6A6, 0x8CE5, 0xB6A7, 0x8CE6, + 0xB6A8, 0x8CE7, 0xB6A9, 0x8CE8, 0xB6AA, 0x8CE9, 0xB6AB, 0xB6D5, + 0xB6AC, 0xB6D6, 0xB6AD, 0x8CEA, 0xB6AE, 0x8CEB, 0xB6AF, 0x8CEC, + 0xB6B0, 0x8CED, 0xB6B1, 0xB6D7, 0xB6B2, 0x8CEE, 0xB6B3, 0x8CEF, + 0xB6B4, 0x8CF0, 0xB6B5, 0x8CF1, 0xB6B6, 0x8CF2, 0xB6B7, 0x8CF3, + 0xB6B8, 0x8CF4, 0xB6B9, 0x8CF5, 0xB6BA, 0x8CF6, 0xB6BB, 0x8CF7, + 0xB6BC, 0x8CF8, 0xB6BD, 0x8CF9, 0xB6BE, 0x8CFA, 0xB6BF, 0x8CFB, + 0xB6C0, 0x8CFC, 0xB6C1, 0x8CFD, 0xB6C2, 0x8CFE, 0xB6C3, 0x8D41, + 0xB6C4, 0x8D42, 0xB6C5, 0x8D43, 0xB6C6, 0x8D44, 0xB6C7, 0x8D45, + 0xB6C8, 0x8D46, 0xB6C9, 0x8D47, 0xB6CA, 0x8D48, 0xB6CB, 0x8D49, + 0xB6CC, 0x8D4A, 0xB6CD, 0x8D4B, 0xB6CE, 0x8D4C, 0xB6CF, 0x8D4D, + 0xB6D0, 0x8D4E, 0xB6D1, 0x8D4F, 0xB6D2, 0x8D50, 0xB6D3, 0x8D51, + 0xB6D4, 0xB6D8, 0xB6D5, 0x8D52, 0xB6D6, 0x8D53, 0xB6D7, 0x8D54, + 0xB6D8, 0x8D55, 0xB6D9, 0x8D56, 0xB6DA, 0x8D57, 0xB6DB, 0x8D58, + 0xB6DC, 0x8D59, 0xB6DD, 0x8D5A, 0xB6DE, 0x8D61, 0xB6DF, 0x8D62, + 0xB6E0, 0x8D63, 0xB6E1, 0x8D64, 0xB6E2, 0x8D65, 0xB6E3, 0x8D66, + 0xB6E4, 0x8D67, 0xB6E5, 0x8D68, 0xB6E6, 0x8D69, 0xB6E7, 0x8D6A, + 0xB6E8, 0x8D6B, 0xB6E9, 0x8D6C, 0xB6EA, 0x8D6D, 0xB6EB, 0x8D6E, + 0xB6EC, 0x8D6F, 0xB6ED, 0x8D70, 0xB6EE, 0x8D71, 0xB6EF, 0x8D72, + 0xB6F0, 0xB6D9, 0xB6F1, 0x8D73, 0xB6F2, 0x8D74, 0xB6F3, 0x8D75, + 0xB6F4, 0xB6DA, 0xB6F5, 0x8D76, 0xB6F6, 0x8D77, 0xB6F7, 0x8D78, + 0xB6F8, 0xB6DB, 0xB6F9, 0x8D79, 0xB6FA, 0x8D7A, 0xB6FB, 0x8D81, + 0xB6FC, 0x8D82, 0xB6FD, 0x8D83, 0xB6FE, 0x8D84, 0xB6FF, 0x8D85, + 0xB700, 0xB6DC, 0xB701, 0xB6DD, 0xB702, 0x8D86, 0xB703, 0x8D87, + 0xB704, 0x8D88, 0xB705, 0xB6DE, 0xB706, 0x8D89, 0xB707, 0x8D8A, + 0xB708, 0x8D8B, 0xB709, 0x8D8C, 0xB70A, 0x8D8D, 0xB70B, 0x8D8E, + 0xB70C, 0x8D8F, 0xB70D, 0x8D90, 0xB70E, 0x8D91, 0xB70F, 0x8D92, + 0xB710, 0x8D93, 0xB711, 0x8D94, 0xB712, 0x8D95, 0xB713, 0x8D96, + 0xB714, 0x8D97, 0xB715, 0x8D98, 0xB716, 0x8D99, 0xB717, 0x8D9A, + 0xB718, 0x8D9B, 0xB719, 0x8D9C, 0xB71A, 0x8D9D, 0xB71B, 0x8D9E, + 0xB71C, 0x8D9F, 0xB71D, 0x8DA0, 0xB71E, 0x8DA1, 0xB71F, 0x8DA2, + 0xB720, 0x8DA3, 0xB721, 0x8DA4, 0xB722, 0x8DA5, 0xB723, 0x8DA6, + 0xB724, 0x8DA7, 0xB725, 0x8DA8, 0xB726, 0x8DA9, 0xB727, 0x8DAA, + 0xB728, 0xB6DF, 0xB729, 0xB6E0, 0xB72A, 0x8DAB, 0xB72B, 0x8DAC, + 0xB72C, 0xB6E1, 0xB72D, 0x8DAD, 0xB72E, 0x8DAE, 0xB72F, 0xB6E2, + 0xB730, 0xB6E3, 0xB731, 0x8DAF, 0xB732, 0x8DB0, 0xB733, 0x8DB1, + 0xB734, 0x8DB2, 0xB735, 0x8DB3, 0xB736, 0x8DB4, 0xB737, 0x8DB5, + 0xB738, 0xB6E4, 0xB739, 0xB6E5, 0xB73A, 0x8DB6, 0xB73B, 0xB6E6, + 0xB73C, 0x8DB7, 0xB73D, 0x8DB8, 0xB73E, 0x8DB9, 0xB73F, 0x8DBA, + 0xB740, 0x8DBB, 0xB741, 0x8DBC, 0xB742, 0x8DBD, 0xB743, 0x8DBE, + 0xB744, 0xB6E7, 0xB745, 0x8DBF, 0xB746, 0x8DC0, 0xB747, 0x8DC1, + 0xB748, 0xB6E8, 0xB749, 0x8DC2, 0xB74A, 0x8DC3, 0xB74B, 0x8DC4, + 0xB74C, 0xB6E9, 0xB74D, 0x8DC5, 0xB74E, 0x8DC6, 0xB74F, 0x8DC7, + 0xB750, 0x8DC8, 0xB751, 0x8DC9, 0xB752, 0x8DCA, 0xB753, 0x8DCB, + 0xB754, 0xB6EA, 0xB755, 0xB6EB, 0xB756, 0x8DCC, 0xB757, 0x8DCD, + 0xB758, 0x8DCE, 0xB759, 0x8DCF, 0xB75A, 0x8DD0, 0xB75B, 0x8DD1, + 0xB75C, 0x8DD2, 0xB75D, 0x8DD3, 0xB75E, 0x8DD4, 0xB75F, 0x8DD5, + 0xB760, 0xB6EC, 0xB761, 0x8DD6, 0xB762, 0x8DD7, 0xB763, 0x8DD8, + 0xB764, 0xB6ED, 0xB765, 0x8DD9, 0xB766, 0x8DDA, 0xB767, 0x8DDB, + 0xB768, 0xB6EE, 0xB769, 0x8DDC, 0xB76A, 0x8DDD, 0xB76B, 0x8DDE, + 0xB76C, 0x8DDF, 0xB76D, 0x8DE0, 0xB76E, 0x8DE1, 0xB76F, 0x8DE2, + 0xB770, 0xB6EF, 0xB771, 0xB6F0, 0xB772, 0x8DE3, 0xB773, 0xB6F1, + 0xB774, 0x8DE4, 0xB775, 0xB6F2, 0xB776, 0x8DE5, 0xB777, 0x8DE6, + 0xB778, 0x8DE7, 0xB779, 0x8DE8, 0xB77A, 0x8DE9, 0xB77B, 0x8DEA, + 0xB77C, 0xB6F3, 0xB77D, 0xB6F4, 0xB77E, 0x8DEB, 0xB77F, 0x8DEC, + 0xB780, 0xB6F5, 0xB781, 0x8DED, 0xB782, 0x8DEE, 0xB783, 0x8DEF, + 0xB784, 0xB6F6, 0xB785, 0x8DF0, 0xB786, 0x8DF1, 0xB787, 0x8DF2, + 0xB788, 0x8DF3, 0xB789, 0x8DF4, 0xB78A, 0x8DF5, 0xB78B, 0x8DF6, + 0xB78C, 0xB6F7, 0xB78D, 0xB6F8, 0xB78E, 0x8DF7, 0xB78F, 0xB6F9, + 0xB790, 0xB6FA, 0xB791, 0xB6FB, 0xB792, 0xB6FC, 0xB793, 0x8DF8, + 0xB794, 0x8DF9, 0xB795, 0x8DFA, 0xB796, 0xB6FD, 0xB797, 0xB6FE, + 0xB798, 0xB7A1, 0xB799, 0xB7A2, 0xB79A, 0x8DFB, 0xB79B, 0x8DFC, + 0xB79C, 0xB7A3, 0xB79D, 0x8DFD, 0xB79E, 0x8DFE, 0xB79F, 0x8E41, + 0xB7A0, 0xB7A4, 0xB7A1, 0x8E42, 0xB7A2, 0x8E43, 0xB7A3, 0x8E44, + 0xB7A4, 0x8E45, 0xB7A5, 0x8E46, 0xB7A6, 0x8E47, 0xB7A7, 0x8E48, + 0xB7A8, 0xB7A5, 0xB7A9, 0xB7A6, 0xB7AA, 0x8E49, 0xB7AB, 0xB7A7, + 0xB7AC, 0xB7A8, 0xB7AD, 0xB7A9, 0xB7AE, 0x8E4A, 0xB7AF, 0x8E4B, + 0xB7B0, 0x8E4C, 0xB7B1, 0x8E4D, 0xB7B2, 0x8E4E, 0xB7B3, 0x8E4F, + 0xB7B4, 0xB7AA, 0xB7B5, 0xB7AB, 0xB7B6, 0x8E50, 0xB7B7, 0x8E51, + 0xB7B8, 0xB7AC, 0xB7B9, 0x8E52, 0xB7BA, 0x8E53, 0xB7BB, 0x8E54, + 0xB7BC, 0x8E55, 0xB7BD, 0x8E56, 0xB7BE, 0x8E57, 0xB7BF, 0x8E58, + 0xB7C0, 0x8E59, 0xB7C1, 0x8E5A, 0xB7C2, 0x8E61, 0xB7C3, 0x8E62, + 0xB7C4, 0x8E63, 0xB7C5, 0x8E64, 0xB7C6, 0x8E65, 0xB7C7, 0xB7AD, + 0xB7C8, 0x8E66, 0xB7C9, 0xB7AE, 0xB7CA, 0x8E67, 0xB7CB, 0x8E68, + 0xB7CC, 0x8E69, 0xB7CD, 0x8E6A, 0xB7CE, 0x8E6B, 0xB7CF, 0x8E6C, + 0xB7D0, 0x8E6D, 0xB7D1, 0x8E6E, 0xB7D2, 0x8E6F, 0xB7D3, 0x8E70, + 0xB7D4, 0x8E71, 0xB7D5, 0x8E72, 0xB7D6, 0x8E73, 0xB7D7, 0x8E74, + 0xB7D8, 0x8E75, 0xB7D9, 0x8E76, 0xB7DA, 0x8E77, 0xB7DB, 0x8E78, + 0xB7DC, 0x8E79, 0xB7DD, 0x8E7A, 0xB7DE, 0x8E81, 0xB7DF, 0x8E82, + 0xB7E0, 0x8E83, 0xB7E1, 0x8E84, 0xB7E2, 0x8E85, 0xB7E3, 0x8E86, + 0xB7E4, 0x8E87, 0xB7E5, 0x8E88, 0xB7E6, 0x8E89, 0xB7E7, 0x8E8A, + 0xB7E8, 0x8E8B, 0xB7E9, 0x8E8C, 0xB7EA, 0x8E8D, 0xB7EB, 0x8E8E, + 0xB7EC, 0xB7AF, 0xB7ED, 0xB7B0, 0xB7EE, 0x8E8F, 0xB7EF, 0x8E90, + 0xB7F0, 0xB7B1, 0xB7F1, 0x8E91, 0xB7F2, 0x8E92, 0xB7F3, 0x8E93, + 0xB7F4, 0xB7B2, 0xB7F5, 0x8E94, 0xB7F6, 0x8E95, 0xB7F7, 0x8E96, + 0xB7F8, 0x8E97, 0xB7F9, 0x8E98, 0xB7FA, 0x8E99, 0xB7FB, 0x8E9A, + 0xB7FC, 0xB7B3, 0xB7FD, 0xB7B4, 0xB7FE, 0x8E9B, 0xB7FF, 0xB7B5, + 0xB800, 0xB7B6, 0xB801, 0xB7B7, 0xB802, 0x8E9C, 0xB803, 0x8E9D, + 0xB804, 0x8E9E, 0xB805, 0x8E9F, 0xB806, 0x8EA0, 0xB807, 0xB7B8, + 0xB808, 0xB7B9, 0xB809, 0xB7BA, 0xB80A, 0x8EA1, 0xB80B, 0x8EA2, + 0xB80C, 0xB7BB, 0xB80D, 0x8EA3, 0xB80E, 0x8EA4, 0xB80F, 0x8EA5, + 0xB810, 0xB7BC, 0xB811, 0x8EA6, 0xB812, 0x8EA7, 0xB813, 0x8EA8, + 0xB814, 0x8EA9, 0xB815, 0x8EAA, 0xB816, 0x8EAB, 0xB817, 0x8EAC, + 0xB818, 0xB7BD, 0xB819, 0xB7BE, 0xB81A, 0x8EAD, 0xB81B, 0xB7BF, + 0xB81C, 0x8EAE, 0xB81D, 0xB7C0, 0xB81E, 0x8EAF, 0xB81F, 0x8EB0, + 0xB820, 0x8EB1, 0xB821, 0x8EB2, 0xB822, 0x8EB3, 0xB823, 0x8EB4, + 0xB824, 0xB7C1, 0xB825, 0xB7C2, 0xB826, 0x8EB5, 0xB827, 0x8EB6, + 0xB828, 0xB7C3, 0xB829, 0x8EB7, 0xB82A, 0x8EB8, 0xB82B, 0x8EB9, + 0xB82C, 0xB7C4, 0xB82D, 0x8EBA, 0xB82E, 0x8EBB, 0xB82F, 0x8EBC, + 0xB830, 0x8EBD, 0xB831, 0x8EBE, 0xB832, 0x8EBF, 0xB833, 0x8EC0, + 0xB834, 0xB7C5, 0xB835, 0xB7C6, 0xB836, 0x8EC1, 0xB837, 0xB7C7, + 0xB838, 0xB7C8, 0xB839, 0xB7C9, 0xB83A, 0x8EC2, 0xB83B, 0x8EC3, + 0xB83C, 0x8EC4, 0xB83D, 0x8EC5, 0xB83E, 0x8EC6, 0xB83F, 0x8EC7, + 0xB840, 0xB7CA, 0xB841, 0x8EC8, 0xB842, 0x8EC9, 0xB843, 0x8ECA, + 0xB844, 0xB7CB, 0xB845, 0x8ECB, 0xB846, 0x8ECC, 0xB847, 0x8ECD, + 0xB848, 0x8ECE, 0xB849, 0x8ECF, 0xB84A, 0x8ED0, 0xB84B, 0x8ED1, + 0xB84C, 0x8ED2, 0xB84D, 0x8ED3, 0xB84E, 0x8ED4, 0xB84F, 0x8ED5, + 0xB850, 0x8ED6, 0xB851, 0xB7CC, 0xB852, 0x8ED7, 0xB853, 0xB7CD, + 0xB854, 0x8ED8, 0xB855, 0x8ED9, 0xB856, 0x8EDA, 0xB857, 0x8EDB, + 0xB858, 0x8EDC, 0xB859, 0x8EDD, 0xB85A, 0x8EDE, 0xB85B, 0x8EDF, + 0xB85C, 0xB7CE, 0xB85D, 0xB7CF, 0xB85E, 0x8EE0, 0xB85F, 0x8EE1, + 0xB860, 0xB7D0, 0xB861, 0x8EE2, 0xB862, 0x8EE3, 0xB863, 0x8EE4, + 0xB864, 0xB7D1, 0xB865, 0x8EE5, 0xB866, 0x8EE6, 0xB867, 0x8EE7, + 0xB868, 0x8EE8, 0xB869, 0x8EE9, 0xB86A, 0x8EEA, 0xB86B, 0x8EEB, + 0xB86C, 0xB7D2, 0xB86D, 0xB7D3, 0xB86E, 0x8EEC, 0xB86F, 0xB7D4, + 0xB870, 0x8EED, 0xB871, 0xB7D5, 0xB872, 0x8EEE, 0xB873, 0x8EEF, + 0xB874, 0x8EF0, 0xB875, 0x8EF1, 0xB876, 0x8EF2, 0xB877, 0x8EF3, + 0xB878, 0xB7D6, 0xB879, 0x8EF4, 0xB87A, 0x8EF5, 0xB87B, 0x8EF6, + 0xB87C, 0xB7D7, 0xB87D, 0x8EF7, 0xB87E, 0x8EF8, 0xB87F, 0x8EF9, + 0xB880, 0x8EFA, 0xB881, 0x8EFB, 0xB882, 0x8EFC, 0xB883, 0x8EFD, + 0xB884, 0x8EFE, 0xB885, 0x8F41, 0xB886, 0x8F42, 0xB887, 0x8F43, + 0xB888, 0x8F44, 0xB889, 0x8F45, 0xB88A, 0x8F46, 0xB88B, 0x8F47, + 0xB88C, 0x8F48, 0xB88D, 0xB7D8, 0xB88E, 0x8F49, 0xB88F, 0x8F4A, + 0xB890, 0x8F4B, 0xB891, 0x8F4C, 0xB892, 0x8F4D, 0xB893, 0x8F4E, + 0xB894, 0x8F4F, 0xB895, 0x8F50, 0xB896, 0x8F51, 0xB897, 0x8F52, + 0xB898, 0x8F53, 0xB899, 0x8F54, 0xB89A, 0x8F55, 0xB89B, 0x8F56, + 0xB89C, 0x8F57, 0xB89D, 0x8F58, 0xB89E, 0x8F59, 0xB89F, 0x8F5A, + 0xB8A0, 0x8F61, 0xB8A1, 0x8F62, 0xB8A2, 0x8F63, 0xB8A3, 0x8F64, + 0xB8A4, 0x8F65, 0xB8A5, 0x8F66, 0xB8A6, 0x8F67, 0xB8A7, 0x8F68, + 0xB8A8, 0xB7D9, 0xB8A9, 0x8F69, 0xB8AA, 0x8F6A, 0xB8AB, 0x8F6B, + 0xB8AC, 0x8F6C, 0xB8AD, 0x8F6D, 0xB8AE, 0x8F6E, 0xB8AF, 0x8F6F, + 0xB8B0, 0xB7DA, 0xB8B1, 0x8F70, 0xB8B2, 0x8F71, 0xB8B3, 0x8F72, + 0xB8B4, 0xB7DB, 0xB8B5, 0x8F73, 0xB8B6, 0x8F74, 0xB8B7, 0x8F75, + 0xB8B8, 0xB7DC, 0xB8B9, 0x8F76, 0xB8BA, 0x8F77, 0xB8BB, 0x8F78, + 0xB8BC, 0x8F79, 0xB8BD, 0x8F7A, 0xB8BE, 0x8F81, 0xB8BF, 0x8F82, + 0xB8C0, 0xB7DD, 0xB8C1, 0xB7DE, 0xB8C2, 0x8F83, 0xB8C3, 0xB7DF, + 0xB8C4, 0x8F84, 0xB8C5, 0xB7E0, 0xB8C6, 0x8F85, 0xB8C7, 0x8F86, + 0xB8C8, 0x8F87, 0xB8C9, 0x8F88, 0xB8CA, 0x8F89, 0xB8CB, 0x8F8A, + 0xB8CC, 0xB7E1, 0xB8CD, 0x8F8B, 0xB8CE, 0x8F8C, 0xB8CF, 0x8F8D, + 0xB8D0, 0xB7E2, 0xB8D1, 0x8F8E, 0xB8D2, 0x8F8F, 0xB8D3, 0x8F90, + 0xB8D4, 0xB7E3, 0xB8D5, 0x8F91, 0xB8D6, 0x8F92, 0xB8D7, 0x8F93, + 0xB8D8, 0x8F94, 0xB8D9, 0x8F95, 0xB8DA, 0x8F96, 0xB8DB, 0x8F97, + 0xB8DC, 0x8F98, 0xB8DD, 0xB7E4, 0xB8DE, 0x8F99, 0xB8DF, 0xB7E5, + 0xB8E0, 0x8F9A, 0xB8E1, 0xB7E6, 0xB8E2, 0x8F9B, 0xB8E3, 0x8F9C, + 0xB8E4, 0x8F9D, 0xB8E5, 0x8F9E, 0xB8E6, 0x8F9F, 0xB8E7, 0x8FA0, + 0xB8E8, 0xB7E7, 0xB8E9, 0xB7E8, 0xB8EA, 0x8FA1, 0xB8EB, 0x8FA2, + 0xB8EC, 0xB7E9, 0xB8ED, 0x8FA3, 0xB8EE, 0x8FA4, 0xB8EF, 0x8FA5, + 0xB8F0, 0xB7EA, 0xB8F1, 0x8FA6, 0xB8F2, 0x8FA7, 0xB8F3, 0x8FA8, + 0xB8F4, 0x8FA9, 0xB8F5, 0x8FAA, 0xB8F6, 0x8FAB, 0xB8F7, 0x8FAC, + 0xB8F8, 0xB7EB, 0xB8F9, 0xB7EC, 0xB8FA, 0x8FAD, 0xB8FB, 0xB7ED, + 0xB8FC, 0x8FAE, 0xB8FD, 0xB7EE, 0xB8FE, 0x8FAF, 0xB8FF, 0x8FB0, + 0xB900, 0x8FB1, 0xB901, 0x8FB2, 0xB902, 0x8FB3, 0xB903, 0x8FB4, + 0xB904, 0xB7EF, 0xB905, 0x8FB5, 0xB906, 0x8FB6, 0xB907, 0x8FB7, + 0xB908, 0x8FB8, 0xB909, 0x8FB9, 0xB90A, 0x8FBA, 0xB90B, 0x8FBB, + 0xB90C, 0x8FBC, 0xB90D, 0x8FBD, 0xB90E, 0x8FBE, 0xB90F, 0x8FBF, + 0xB910, 0x8FC0, 0xB911, 0x8FC1, 0xB912, 0x8FC2, 0xB913, 0x8FC3, + 0xB914, 0x8FC4, 0xB915, 0x8FC5, 0xB916, 0x8FC6, 0xB917, 0x8FC7, + 0xB918, 0xB7F0, 0xB919, 0x8FC8, 0xB91A, 0x8FC9, 0xB91B, 0x8FCA, + 0xB91C, 0x8FCB, 0xB91D, 0x8FCC, 0xB91E, 0x8FCD, 0xB91F, 0x8FCE, + 0xB920, 0xB7F1, 0xB921, 0x8FCF, 0xB922, 0x8FD0, 0xB923, 0x8FD1, + 0xB924, 0x8FD2, 0xB925, 0x8FD3, 0xB926, 0x8FD4, 0xB927, 0x8FD5, + 0xB928, 0x8FD6, 0xB929, 0x8FD7, 0xB92A, 0x8FD8, 0xB92B, 0x8FD9, + 0xB92C, 0x8FDA, 0xB92D, 0x8FDB, 0xB92E, 0x8FDC, 0xB92F, 0x8FDD, + 0xB930, 0x8FDE, 0xB931, 0x8FDF, 0xB932, 0x8FE0, 0xB933, 0x8FE1, + 0xB934, 0x8FE2, 0xB935, 0x8FE3, 0xB936, 0x8FE4, 0xB937, 0x8FE5, + 0xB938, 0x8FE6, 0xB939, 0x8FE7, 0xB93A, 0x8FE8, 0xB93B, 0x8FE9, + 0xB93C, 0xB7F2, 0xB93D, 0xB7F3, 0xB93E, 0x8FEA, 0xB93F, 0x8FEB, + 0xB940, 0xB7F4, 0xB941, 0x8FEC, 0xB942, 0x8FED, 0xB943, 0x8FEE, + 0xB944, 0xB7F5, 0xB945, 0x8FEF, 0xB946, 0x8FF0, 0xB947, 0x8FF1, + 0xB948, 0x8FF2, 0xB949, 0x8FF3, 0xB94A, 0x8FF4, 0xB94B, 0x8FF5, + 0xB94C, 0xB7F6, 0xB94D, 0x8FF6, 0xB94E, 0x8FF7, 0xB94F, 0xB7F7, + 0xB950, 0x8FF8, 0xB951, 0xB7F8, 0xB952, 0x8FF9, 0xB953, 0x8FFA, + 0xB954, 0x8FFB, 0xB955, 0x8FFC, 0xB956, 0x8FFD, 0xB957, 0x8FFE, + 0xB958, 0xB7F9, 0xB959, 0xB7FA, 0xB95A, 0x9041, 0xB95B, 0x9042, + 0xB95C, 0xB7FB, 0xB95D, 0x9043, 0xB95E, 0x9044, 0xB95F, 0x9045, + 0xB960, 0xB7FC, 0xB961, 0x9046, 0xB962, 0x9047, 0xB963, 0x9048, + 0xB964, 0x9049, 0xB965, 0x904A, 0xB966, 0x904B, 0xB967, 0x904C, + 0xB968, 0xB7FD, 0xB969, 0xB7FE, 0xB96A, 0x904D, 0xB96B, 0xB8A1, + 0xB96C, 0x904E, 0xB96D, 0xB8A2, 0xB96E, 0x904F, 0xB96F, 0x9050, + 0xB970, 0x9051, 0xB971, 0x9052, 0xB972, 0x9053, 0xB973, 0x9054, + 0xB974, 0xB8A3, 0xB975, 0xB8A4, 0xB976, 0x9055, 0xB977, 0x9056, + 0xB978, 0xB8A5, 0xB979, 0x9057, 0xB97A, 0x9058, 0xB97B, 0x9059, + 0xB97C, 0xB8A6, 0xB97D, 0x905A, 0xB97E, 0x9061, 0xB97F, 0x9062, + 0xB980, 0x9063, 0xB981, 0x9064, 0xB982, 0x9065, 0xB983, 0x9066, + 0xB984, 0xB8A7, 0xB985, 0xB8A8, 0xB986, 0x9067, 0xB987, 0xB8A9, + 0xB988, 0x9068, 0xB989, 0xB8AA, 0xB98A, 0xB8AB, 0xB98B, 0x9069, + 0xB98C, 0x906A, 0xB98D, 0xB8AC, 0xB98E, 0xB8AD, 0xB98F, 0x906B, + 0xB990, 0x906C, 0xB991, 0x906D, 0xB992, 0x906E, 0xB993, 0x906F, + 0xB994, 0x9070, 0xB995, 0x9071, 0xB996, 0x9072, 0xB997, 0x9073, + 0xB998, 0x9074, 0xB999, 0x9075, 0xB99A, 0x9076, 0xB99B, 0x9077, + 0xB99C, 0x9078, 0xB99D, 0x9079, 0xB99E, 0x907A, 0xB99F, 0x9081, + 0xB9A0, 0x9082, 0xB9A1, 0x9083, 0xB9A2, 0x9084, 0xB9A3, 0x9085, + 0xB9A4, 0x9086, 0xB9A5, 0x9087, 0xB9A6, 0x9088, 0xB9A7, 0x9089, + 0xB9A8, 0x908A, 0xB9A9, 0x908B, 0xB9AA, 0x908C, 0xB9AB, 0x908D, + 0xB9AC, 0xB8AE, 0xB9AD, 0xB8AF, 0xB9AE, 0x908E, 0xB9AF, 0x908F, + 0xB9B0, 0xB8B0, 0xB9B1, 0x9090, 0xB9B2, 0x9091, 0xB9B3, 0x9092, + 0xB9B4, 0xB8B1, 0xB9B5, 0x9093, 0xB9B6, 0x9094, 0xB9B7, 0x9095, + 0xB9B8, 0x9096, 0xB9B9, 0x9097, 0xB9BA, 0x9098, 0xB9BB, 0x9099, + 0xB9BC, 0xB8B2, 0xB9BD, 0xB8B3, 0xB9BE, 0x909A, 0xB9BF, 0xB8B4, + 0xB9C0, 0x909B, 0xB9C1, 0xB8B5, 0xB9C2, 0x909C, 0xB9C3, 0x909D, + 0xB9C4, 0x909E, 0xB9C5, 0x909F, 0xB9C6, 0x90A0, 0xB9C7, 0x90A1, + 0xB9C8, 0xB8B6, 0xB9C9, 0xB8B7, 0xB9CA, 0x90A2, 0xB9CB, 0x90A3, + 0xB9CC, 0xB8B8, 0xB9CD, 0x90A4, 0xB9CE, 0xB8B9, 0xB9CF, 0xB8BA, + 0xB9D0, 0xB8BB, 0xB9D1, 0xB8BC, 0xB9D2, 0xB8BD, 0xB9D3, 0x90A5, + 0xB9D4, 0x90A6, 0xB9D5, 0x90A7, 0xB9D6, 0x90A8, 0xB9D7, 0x90A9, + 0xB9D8, 0xB8BE, 0xB9D9, 0xB8BF, 0xB9DA, 0x90AA, 0xB9DB, 0xB8C0, + 0xB9DC, 0x90AB, 0xB9DD, 0xB8C1, 0xB9DE, 0xB8C2, 0xB9DF, 0x90AC, + 0xB9E0, 0x90AD, 0xB9E1, 0xB8C3, 0xB9E2, 0x90AE, 0xB9E3, 0xB8C4, + 0xB9E4, 0xB8C5, 0xB9E5, 0xB8C6, 0xB9E6, 0x90AF, 0xB9E7, 0x90B0, + 0xB9E8, 0xB8C7, 0xB9E9, 0x90B1, 0xB9EA, 0x90B2, 0xB9EB, 0x90B3, + 0xB9EC, 0xB8C8, 0xB9ED, 0x90B4, 0xB9EE, 0x90B5, 0xB9EF, 0x90B6, + 0xB9F0, 0x90B7, 0xB9F1, 0x90B8, 0xB9F2, 0x90B9, 0xB9F3, 0x90BA, + 0xB9F4, 0xB8C9, 0xB9F5, 0xB8CA, 0xB9F6, 0x90BB, 0xB9F7, 0xB8CB, + 0xB9F8, 0xB8CC, 0xB9F9, 0xB8CD, 0xB9FA, 0xB8CE, 0xB9FB, 0x90BC, + 0xB9FC, 0x90BD, 0xB9FD, 0x90BE, 0xB9FE, 0x90BF, 0xB9FF, 0x90C0, + 0xBA00, 0xB8CF, 0xBA01, 0xB8D0, 0xBA02, 0x90C1, 0xBA03, 0x90C2, + 0xBA04, 0x90C3, 0xBA05, 0x90C4, 0xBA06, 0x90C5, 0xBA07, 0x90C6, + 0xBA08, 0xB8D1, 0xBA09, 0x90C7, 0xBA0A, 0x90C8, 0xBA0B, 0x90C9, + 0xBA0C, 0x90CA, 0xBA0D, 0x90CB, 0xBA0E, 0x90CC, 0xBA0F, 0x90CD, + 0xBA10, 0x90CE, 0xBA11, 0x90CF, 0xBA12, 0x90D0, 0xBA13, 0x90D1, + 0xBA14, 0x90D2, 0xBA15, 0xB8D2, 0xBA16, 0x90D3, 0xBA17, 0x90D4, + 0xBA18, 0x90D5, 0xBA19, 0x90D6, 0xBA1A, 0x90D7, 0xBA1B, 0x90D8, + 0xBA1C, 0x90D9, 0xBA1D, 0x90DA, 0xBA1E, 0x90DB, 0xBA1F, 0x90DC, + 0xBA20, 0x90DD, 0xBA21, 0x90DE, 0xBA22, 0x90DF, 0xBA23, 0x90E0, + 0xBA24, 0x90E1, 0xBA25, 0x90E2, 0xBA26, 0x90E3, 0xBA27, 0x90E4, + 0xBA28, 0x90E5, 0xBA29, 0x90E6, 0xBA2A, 0x90E7, 0xBA2B, 0x90E8, + 0xBA2C, 0x90E9, 0xBA2D, 0x90EA, 0xBA2E, 0x90EB, 0xBA2F, 0x90EC, + 0xBA30, 0x90ED, 0xBA31, 0x90EE, 0xBA32, 0x90EF, 0xBA33, 0x90F0, + 0xBA34, 0x90F1, 0xBA35, 0x90F2, 0xBA36, 0x90F3, 0xBA37, 0x90F4, + 0xBA38, 0xB8D3, 0xBA39, 0xB8D4, 0xBA3A, 0x90F5, 0xBA3B, 0x90F6, + 0xBA3C, 0xB8D5, 0xBA3D, 0x90F7, 0xBA3E, 0x90F8, 0xBA3F, 0x90F9, + 0xBA40, 0xB8D6, 0xBA41, 0x90FA, 0xBA42, 0xB8D7, 0xBA43, 0x90FB, + 0xBA44, 0x90FC, 0xBA45, 0x90FD, 0xBA46, 0x90FE, 0xBA47, 0x9141, + 0xBA48, 0xB8D8, 0xBA49, 0xB8D9, 0xBA4A, 0x9142, 0xBA4B, 0xB8DA, + 0xBA4C, 0x9143, 0xBA4D, 0xB8DB, 0xBA4E, 0xB8DC, 0xBA4F, 0x9144, + 0xBA50, 0x9145, 0xBA51, 0x9146, 0xBA52, 0x9147, 0xBA53, 0xB8DD, + 0xBA54, 0xB8DE, 0xBA55, 0xB8DF, 0xBA56, 0x9148, 0xBA57, 0x9149, + 0xBA58, 0xB8E0, 0xBA59, 0x914A, 0xBA5A, 0x914B, 0xBA5B, 0x914C, + 0xBA5C, 0xB8E1, 0xBA5D, 0x914D, 0xBA5E, 0x914E, 0xBA5F, 0x914F, + 0xBA60, 0x9150, 0xBA61, 0x9151, 0xBA62, 0x9152, 0xBA63, 0x9153, + 0xBA64, 0xB8E2, 0xBA65, 0xB8E3, 0xBA66, 0x9154, 0xBA67, 0xB8E4, + 0xBA68, 0xB8E5, 0xBA69, 0xB8E6, 0xBA6A, 0x9155, 0xBA6B, 0x9156, + 0xBA6C, 0x9157, 0xBA6D, 0x9158, 0xBA6E, 0x9159, 0xBA6F, 0x915A, + 0xBA70, 0xB8E7, 0xBA71, 0xB8E8, 0xBA72, 0x9161, 0xBA73, 0x9162, + 0xBA74, 0xB8E9, 0xBA75, 0x9163, 0xBA76, 0x9164, 0xBA77, 0x9165, + 0xBA78, 0xB8EA, 0xBA79, 0x9166, 0xBA7A, 0x9167, 0xBA7B, 0x9168, + 0xBA7C, 0x9169, 0xBA7D, 0x916A, 0xBA7E, 0x916B, 0xBA7F, 0x916C, + 0xBA80, 0x916D, 0xBA81, 0x916E, 0xBA82, 0x916F, 0xBA83, 0xB8EB, + 0xBA84, 0xB8EC, 0xBA85, 0xB8ED, 0xBA86, 0x9170, 0xBA87, 0xB8EE, + 0xBA88, 0x9171, 0xBA89, 0x9172, 0xBA8A, 0x9173, 0xBA8B, 0x9174, + 0xBA8C, 0xB8EF, 0xBA8D, 0x9175, 0xBA8E, 0x9176, 0xBA8F, 0x9177, + 0xBA90, 0x9178, 0xBA91, 0x9179, 0xBA92, 0x917A, 0xBA93, 0x9181, + 0xBA94, 0x9182, 0xBA95, 0x9183, 0xBA96, 0x9184, 0xBA97, 0x9185, + 0xBA98, 0x9186, 0xBA99, 0x9187, 0xBA9A, 0x9188, 0xBA9B, 0x9189, + 0xBA9C, 0x918A, 0xBA9D, 0x918B, 0xBA9E, 0x918C, 0xBA9F, 0x918D, + 0xBAA0, 0x918E, 0xBAA1, 0x918F, 0xBAA2, 0x9190, 0xBAA3, 0x9191, + 0xBAA4, 0x9192, 0xBAA5, 0x9193, 0xBAA6, 0x9194, 0xBAA7, 0x9195, + 0xBAA8, 0xB8F0, 0xBAA9, 0xB8F1, 0xBAAA, 0x9196, 0xBAAB, 0xB8F2, + 0xBAAC, 0xB8F3, 0xBAAD, 0x9197, 0xBAAE, 0x9198, 0xBAAF, 0x9199, + 0xBAB0, 0xB8F4, 0xBAB1, 0x919A, 0xBAB2, 0xB8F5, 0xBAB3, 0x919B, + 0xBAB4, 0x919C, 0xBAB5, 0x919D, 0xBAB6, 0x919E, 0xBAB7, 0x919F, + 0xBAB8, 0xB8F6, 0xBAB9, 0xB8F7, 0xBABA, 0x91A0, 0xBABB, 0xB8F8, + 0xBABC, 0x91A1, 0xBABD, 0xB8F9, 0xBABE, 0x91A2, 0xBABF, 0x91A3, + 0xBAC0, 0x91A4, 0xBAC1, 0x91A5, 0xBAC2, 0x91A6, 0xBAC3, 0x91A7, + 0xBAC4, 0xB8FA, 0xBAC5, 0x91A8, 0xBAC6, 0x91A9, 0xBAC7, 0x91AA, + 0xBAC8, 0xB8FB, 0xBAC9, 0x91AB, 0xBACA, 0x91AC, 0xBACB, 0x91AD, + 0xBACC, 0x91AE, 0xBACD, 0x91AF, 0xBACE, 0x91B0, 0xBACF, 0x91B1, + 0xBAD0, 0x91B2, 0xBAD1, 0x91B3, 0xBAD2, 0x91B4, 0xBAD3, 0x91B5, + 0xBAD4, 0x91B6, 0xBAD5, 0x91B7, 0xBAD6, 0x91B8, 0xBAD7, 0x91B9, + 0xBAD8, 0xB8FC, 0xBAD9, 0xB8FD, 0xBADA, 0x91BA, 0xBADB, 0x91BB, + 0xBADC, 0x91BC, 0xBADD, 0x91BD, 0xBADE, 0x91BE, 0xBADF, 0x91BF, + 0xBAE0, 0x91C0, 0xBAE1, 0x91C1, 0xBAE2, 0x91C2, 0xBAE3, 0x91C3, + 0xBAE4, 0x91C4, 0xBAE5, 0x91C5, 0xBAE6, 0x91C6, 0xBAE7, 0x91C7, + 0xBAE8, 0x91C8, 0xBAE9, 0x91C9, 0xBAEA, 0x91CA, 0xBAEB, 0x91CB, + 0xBAEC, 0x91CC, 0xBAED, 0x91CD, 0xBAEE, 0x91CE, 0xBAEF, 0x91CF, + 0xBAF0, 0x91D0, 0xBAF1, 0x91D1, 0xBAF2, 0x91D2, 0xBAF3, 0x91D3, + 0xBAF4, 0x91D4, 0xBAF5, 0x91D5, 0xBAF6, 0x91D6, 0xBAF7, 0x91D7, + 0xBAF8, 0x91D8, 0xBAF9, 0x91D9, 0xBAFA, 0x91DA, 0xBAFB, 0x91DB, + 0xBAFC, 0xB8FE, 0xBAFD, 0x91DC, 0xBAFE, 0x91DD, 0xBAFF, 0x91DE, + 0xBB00, 0xB9A1, 0xBB01, 0x91DF, 0xBB02, 0x91E0, 0xBB03, 0x91E1, + 0xBB04, 0xB9A2, 0xBB05, 0x91E2, 0xBB06, 0x91E3, 0xBB07, 0x91E4, + 0xBB08, 0x91E5, 0xBB09, 0x91E6, 0xBB0A, 0x91E7, 0xBB0B, 0x91E8, + 0xBB0C, 0x91E9, 0xBB0D, 0xB9A3, 0xBB0E, 0x91EA, 0xBB0F, 0xB9A4, + 0xBB10, 0x91EB, 0xBB11, 0xB9A5, 0xBB12, 0x91EC, 0xBB13, 0x91ED, + 0xBB14, 0x91EE, 0xBB15, 0x91EF, 0xBB16, 0x91F0, 0xBB17, 0x91F1, + 0xBB18, 0xB9A6, 0xBB19, 0x91F2, 0xBB1A, 0x91F3, 0xBB1B, 0x91F4, + 0xBB1C, 0xB9A7, 0xBB1D, 0x91F5, 0xBB1E, 0x91F6, 0xBB1F, 0x91F7, + 0xBB20, 0xB9A8, 0xBB21, 0x91F8, 0xBB22, 0x91F9, 0xBB23, 0x91FA, + 0xBB24, 0x91FB, 0xBB25, 0x91FC, 0xBB26, 0x91FD, 0xBB27, 0x91FE, + 0xBB28, 0x9241, 0xBB29, 0xB9A9, 0xBB2A, 0x9242, 0xBB2B, 0xB9AA, + 0xBB2C, 0x9243, 0xBB2D, 0x9244, 0xBB2E, 0x9245, 0xBB2F, 0x9246, + 0xBB30, 0x9247, 0xBB31, 0x9248, 0xBB32, 0x9249, 0xBB33, 0x924A, + 0xBB34, 0xB9AB, 0xBB35, 0xB9AC, 0xBB36, 0xB9AD, 0xBB37, 0x924B, + 0xBB38, 0xB9AE, 0xBB39, 0x924C, 0xBB3A, 0x924D, 0xBB3B, 0xB9AF, + 0xBB3C, 0xB9B0, 0xBB3D, 0xB9B1, 0xBB3E, 0xB9B2, 0xBB3F, 0x924E, + 0xBB40, 0x924F, 0xBB41, 0x9250, 0xBB42, 0x9251, 0xBB43, 0x9252, + 0xBB44, 0xB9B3, 0xBB45, 0xB9B4, 0xBB46, 0x9253, 0xBB47, 0xB9B5, + 0xBB48, 0x9254, 0xBB49, 0xB9B6, 0xBB4A, 0x9255, 0xBB4B, 0x9256, + 0xBB4C, 0x9257, 0xBB4D, 0xB9B7, 0xBB4E, 0x9258, 0xBB4F, 0xB9B8, + 0xBB50, 0xB9B9, 0xBB51, 0x9259, 0xBB52, 0x925A, 0xBB53, 0x9261, + 0xBB54, 0xB9BA, 0xBB55, 0x9262, 0xBB56, 0x9263, 0xBB57, 0x9264, + 0xBB58, 0xB9BB, 0xBB59, 0x9265, 0xBB5A, 0x9266, 0xBB5B, 0x9267, + 0xBB5C, 0x9268, 0xBB5D, 0x9269, 0xBB5E, 0x926A, 0xBB5F, 0x926B, + 0xBB60, 0x926C, 0xBB61, 0xB9BC, 0xBB62, 0x926D, 0xBB63, 0xB9BD, + 0xBB64, 0x926E, 0xBB65, 0x926F, 0xBB66, 0x9270, 0xBB67, 0x9271, + 0xBB68, 0x9272, 0xBB69, 0x9273, 0xBB6A, 0x9274, 0xBB6B, 0x9275, + 0xBB6C, 0xB9BE, 0xBB6D, 0x9276, 0xBB6E, 0x9277, 0xBB6F, 0x9278, + 0xBB70, 0x9279, 0xBB71, 0x927A, 0xBB72, 0x9281, 0xBB73, 0x9282, + 0xBB74, 0x9283, 0xBB75, 0x9284, 0xBB76, 0x9285, 0xBB77, 0x9286, + 0xBB78, 0x9287, 0xBB79, 0x9288, 0xBB7A, 0x9289, 0xBB7B, 0x928A, + 0xBB7C, 0x928B, 0xBB7D, 0x928C, 0xBB7E, 0x928D, 0xBB7F, 0x928E, + 0xBB80, 0x928F, 0xBB81, 0x9290, 0xBB82, 0x9291, 0xBB83, 0x9292, + 0xBB84, 0x9293, 0xBB85, 0x9294, 0xBB86, 0x9295, 0xBB87, 0x9296, + 0xBB88, 0xB9BF, 0xBB89, 0x9297, 0xBB8A, 0x9298, 0xBB8B, 0x9299, + 0xBB8C, 0xB9C0, 0xBB8D, 0x929A, 0xBB8E, 0x929B, 0xBB8F, 0x929C, + 0xBB90, 0xB9C1, 0xBB91, 0x929D, 0xBB92, 0x929E, 0xBB93, 0x929F, + 0xBB94, 0x92A0, 0xBB95, 0x92A1, 0xBB96, 0x92A2, 0xBB97, 0x92A3, + 0xBB98, 0x92A4, 0xBB99, 0x92A5, 0xBB9A, 0x92A6, 0xBB9B, 0x92A7, + 0xBB9C, 0x92A8, 0xBB9D, 0x92A9, 0xBB9E, 0x92AA, 0xBB9F, 0x92AB, + 0xBBA0, 0x92AC, 0xBBA1, 0x92AD, 0xBBA2, 0x92AE, 0xBBA3, 0x92AF, + 0xBBA4, 0xB9C2, 0xBBA5, 0x92B0, 0xBBA6, 0x92B1, 0xBBA7, 0x92B2, + 0xBBA8, 0xB9C3, 0xBBA9, 0x92B3, 0xBBAA, 0x92B4, 0xBBAB, 0x92B5, + 0xBBAC, 0xB9C4, 0xBBAD, 0x92B6, 0xBBAE, 0x92B7, 0xBBAF, 0x92B8, + 0xBBB0, 0x92B9, 0xBBB1, 0x92BA, 0xBBB2, 0x92BB, 0xBBB3, 0x92BC, + 0xBBB4, 0xB9C5, 0xBBB5, 0x92BD, 0xBBB6, 0x92BE, 0xBBB7, 0xB9C6, + 0xBBB8, 0x92BF, 0xBBB9, 0x92C0, 0xBBBA, 0x92C1, 0xBBBB, 0x92C2, + 0xBBBC, 0x92C3, 0xBBBD, 0x92C4, 0xBBBE, 0x92C5, 0xBBBF, 0x92C6, + 0xBBC0, 0xB9C7, 0xBBC1, 0x92C7, 0xBBC2, 0x92C8, 0xBBC3, 0x92C9, + 0xBBC4, 0xB9C8, 0xBBC5, 0x92CA, 0xBBC6, 0x92CB, 0xBBC7, 0x92CC, + 0xBBC8, 0xB9C9, 0xBBC9, 0x92CD, 0xBBCA, 0x92CE, 0xBBCB, 0x92CF, + 0xBBCC, 0x92D0, 0xBBCD, 0x92D1, 0xBBCE, 0x92D2, 0xBBCF, 0x92D3, + 0xBBD0, 0xB9CA, 0xBBD1, 0x92D4, 0xBBD2, 0x92D5, 0xBBD3, 0xB9CB, + 0xBBD4, 0x92D6, 0xBBD5, 0x92D7, 0xBBD6, 0x92D8, 0xBBD7, 0x92D9, + 0xBBD8, 0x92DA, 0xBBD9, 0x92DB, 0xBBDA, 0x92DC, 0xBBDB, 0x92DD, + 0xBBDC, 0x92DE, 0xBBDD, 0x92DF, 0xBBDE, 0x92E0, 0xBBDF, 0x92E1, + 0xBBE0, 0x92E2, 0xBBE1, 0x92E3, 0xBBE2, 0x92E4, 0xBBE3, 0x92E5, + 0xBBE4, 0x92E6, 0xBBE5, 0x92E7, 0xBBE6, 0x92E8, 0xBBE7, 0x92E9, + 0xBBE8, 0x92EA, 0xBBE9, 0x92EB, 0xBBEA, 0x92EC, 0xBBEB, 0x92ED, + 0xBBEC, 0x92EE, 0xBBED, 0x92EF, 0xBBEE, 0x92F0, 0xBBEF, 0x92F1, + 0xBBF0, 0x92F2, 0xBBF1, 0x92F3, 0xBBF2, 0x92F4, 0xBBF3, 0x92F5, + 0xBBF4, 0x92F6, 0xBBF5, 0x92F7, 0xBBF6, 0x92F8, 0xBBF7, 0x92F9, + 0xBBF8, 0xB9CC, 0xBBF9, 0xB9CD, 0xBBFA, 0x92FA, 0xBBFB, 0x92FB, + 0xBBFC, 0xB9CE, 0xBBFD, 0x92FC, 0xBBFE, 0x92FD, 0xBBFF, 0xB9CF, + 0xBC00, 0xB9D0, 0xBC01, 0x92FE, 0xBC02, 0xB9D1, 0xBC03, 0x9341, + 0xBC04, 0x9342, 0xBC05, 0x9343, 0xBC06, 0x9344, 0xBC07, 0x9345, + 0xBC08, 0xB9D2, 0xBC09, 0xB9D3, 0xBC0A, 0x9346, 0xBC0B, 0xB9D4, + 0xBC0C, 0xB9D5, 0xBC0D, 0xB9D6, 0xBC0E, 0x9347, 0xBC0F, 0xB9D7, + 0xBC10, 0x9348, 0xBC11, 0xB9D8, 0xBC12, 0x9349, 0xBC13, 0x934A, + 0xBC14, 0xB9D9, 0xBC15, 0xB9DA, 0xBC16, 0xB9DB, 0xBC17, 0xB9DC, + 0xBC18, 0xB9DD, 0xBC19, 0x934B, 0xBC1A, 0x934C, 0xBC1B, 0xB9DE, + 0xBC1C, 0xB9DF, 0xBC1D, 0xB9E0, 0xBC1E, 0xB9E1, 0xBC1F, 0xB9E2, + 0xBC20, 0x934D, 0xBC21, 0x934E, 0xBC22, 0x934F, 0xBC23, 0x9350, + 0xBC24, 0xB9E3, 0xBC25, 0xB9E4, 0xBC26, 0x9351, 0xBC27, 0xB9E5, + 0xBC28, 0x9352, 0xBC29, 0xB9E6, 0xBC2A, 0x9353, 0xBC2B, 0x9354, + 0xBC2C, 0x9355, 0xBC2D, 0xB9E7, 0xBC2E, 0x9356, 0xBC2F, 0x9357, + 0xBC30, 0xB9E8, 0xBC31, 0xB9E9, 0xBC32, 0x9358, 0xBC33, 0x9359, + 0xBC34, 0xB9EA, 0xBC35, 0x935A, 0xBC36, 0x9361, 0xBC37, 0x9362, + 0xBC38, 0xB9EB, 0xBC39, 0x9363, 0xBC3A, 0x9364, 0xBC3B, 0x9365, + 0xBC3C, 0x9366, 0xBC3D, 0x9367, 0xBC3E, 0x9368, 0xBC3F, 0x9369, + 0xBC40, 0xB9EC, 0xBC41, 0xB9ED, 0xBC42, 0x936A, 0xBC43, 0xB9EE, + 0xBC44, 0xB9EF, 0xBC45, 0xB9F0, 0xBC46, 0x936B, 0xBC47, 0x936C, + 0xBC48, 0x936D, 0xBC49, 0xB9F1, 0xBC4A, 0x936E, 0xBC4B, 0x936F, + 0xBC4C, 0xB9F2, 0xBC4D, 0xB9F3, 0xBC4E, 0x9370, 0xBC4F, 0x9371, + 0xBC50, 0xB9F4, 0xBC51, 0x9372, 0xBC52, 0x9373, 0xBC53, 0x9374, + 0xBC54, 0x9375, 0xBC55, 0x9376, 0xBC56, 0x9377, 0xBC57, 0x9378, + 0xBC58, 0x9379, 0xBC59, 0x937A, 0xBC5A, 0x9381, 0xBC5B, 0x9382, + 0xBC5C, 0x9383, 0xBC5D, 0xB9F5, 0xBC5E, 0x9384, 0xBC5F, 0x9385, + 0xBC60, 0x9386, 0xBC61, 0x9387, 0xBC62, 0x9388, 0xBC63, 0x9389, + 0xBC64, 0x938A, 0xBC65, 0x938B, 0xBC66, 0x938C, 0xBC67, 0x938D, + 0xBC68, 0x938E, 0xBC69, 0x938F, 0xBC6A, 0x9390, 0xBC6B, 0x9391, + 0xBC6C, 0x9392, 0xBC6D, 0x9393, 0xBC6E, 0x9394, 0xBC6F, 0x9395, + 0xBC70, 0x9396, 0xBC71, 0x9397, 0xBC72, 0x9398, 0xBC73, 0x9399, + 0xBC74, 0x939A, 0xBC75, 0x939B, 0xBC76, 0x939C, 0xBC77, 0x939D, + 0xBC78, 0x939E, 0xBC79, 0x939F, 0xBC7A, 0x93A0, 0xBC7B, 0x93A1, + 0xBC7C, 0x93A2, 0xBC7D, 0x93A3, 0xBC7E, 0x93A4, 0xBC7F, 0x93A5, + 0xBC80, 0x93A6, 0xBC81, 0x93A7, 0xBC82, 0x93A8, 0xBC83, 0x93A9, + 0xBC84, 0xB9F6, 0xBC85, 0xB9F7, 0xBC86, 0x93AA, 0xBC87, 0x93AB, + 0xBC88, 0xB9F8, 0xBC89, 0x93AC, 0xBC8A, 0x93AD, 0xBC8B, 0xB9F9, + 0xBC8C, 0xB9FA, 0xBC8D, 0x93AE, 0xBC8E, 0xB9FB, 0xBC8F, 0x93AF, + 0xBC90, 0x93B0, 0xBC91, 0x93B1, 0xBC92, 0x93B2, 0xBC93, 0x93B3, + 0xBC94, 0xB9FC, 0xBC95, 0xB9FD, 0xBC96, 0x93B4, 0xBC97, 0xB9FE, + 0xBC98, 0x93B5, 0xBC99, 0xBAA1, 0xBC9A, 0xBAA2, 0xBC9B, 0x93B6, + 0xBC9C, 0x93B7, 0xBC9D, 0x93B8, 0xBC9E, 0x93B9, 0xBC9F, 0x93BA, + 0xBCA0, 0xBAA3, 0xBCA1, 0xBAA4, 0xBCA2, 0x93BB, 0xBCA3, 0x93BC, + 0xBCA4, 0xBAA5, 0xBCA5, 0x93BD, 0xBCA6, 0x93BE, 0xBCA7, 0xBAA6, + 0xBCA8, 0xBAA7, 0xBCA9, 0x93BF, 0xBCAA, 0x93C0, 0xBCAB, 0x93C1, + 0xBCAC, 0x93C2, 0xBCAD, 0x93C3, 0xBCAE, 0x93C4, 0xBCAF, 0x93C5, + 0xBCB0, 0xBAA8, 0xBCB1, 0xBAA9, 0xBCB2, 0x93C6, 0xBCB3, 0xBAAA, + 0xBCB4, 0xBAAB, 0xBCB5, 0xBAAC, 0xBCB6, 0x93C7, 0xBCB7, 0x93C8, + 0xBCB8, 0x93C9, 0xBCB9, 0x93CA, 0xBCBA, 0x93CB, 0xBCBB, 0x93CC, + 0xBCBC, 0xBAAD, 0xBCBD, 0xBAAE, 0xBCBE, 0x93CD, 0xBCBF, 0x93CE, + 0xBCC0, 0xBAAF, 0xBCC1, 0x93CF, 0xBCC2, 0x93D0, 0xBCC3, 0x93D1, + 0xBCC4, 0xBAB0, 0xBCC5, 0x93D2, 0xBCC6, 0x93D3, 0xBCC7, 0x93D4, + 0xBCC8, 0x93D5, 0xBCC9, 0x93D6, 0xBCCA, 0x93D7, 0xBCCB, 0x93D8, + 0xBCCC, 0x93D9, 0xBCCD, 0xBAB1, 0xBCCE, 0x93DA, 0xBCCF, 0xBAB2, + 0xBCD0, 0xBAB3, 0xBCD1, 0xBAB4, 0xBCD2, 0x93DB, 0xBCD3, 0x93DC, + 0xBCD4, 0x93DD, 0xBCD5, 0xBAB5, 0xBCD6, 0x93DE, 0xBCD7, 0x93DF, + 0xBCD8, 0xBAB6, 0xBCD9, 0x93E0, 0xBCDA, 0x93E1, 0xBCDB, 0x93E2, + 0xBCDC, 0xBAB7, 0xBCDD, 0x93E3, 0xBCDE, 0x93E4, 0xBCDF, 0x93E5, + 0xBCE0, 0x93E6, 0xBCE1, 0x93E7, 0xBCE2, 0x93E8, 0xBCE3, 0x93E9, + 0xBCE4, 0x93EA, 0xBCE5, 0x93EB, 0xBCE6, 0x93EC, 0xBCE7, 0x93ED, + 0xBCE8, 0x93EE, 0xBCE9, 0x93EF, 0xBCEA, 0x93F0, 0xBCEB, 0x93F1, + 0xBCEC, 0x93F2, 0xBCED, 0x93F3, 0xBCEE, 0x93F4, 0xBCEF, 0x93F5, + 0xBCF0, 0x93F6, 0xBCF1, 0x93F7, 0xBCF2, 0x93F8, 0xBCF3, 0x93F9, + 0xBCF4, 0xBAB8, 0xBCF5, 0xBAB9, 0xBCF6, 0xBABA, 0xBCF7, 0x93FA, + 0xBCF8, 0xBABB, 0xBCF9, 0x93FB, 0xBCFA, 0x93FC, 0xBCFB, 0x93FD, + 0xBCFC, 0xBABC, 0xBCFD, 0x93FE, 0xBCFE, 0x9441, 0xBCFF, 0x9442, + 0xBD00, 0x9443, 0xBD01, 0x9444, 0xBD02, 0x9445, 0xBD03, 0x9446, + 0xBD04, 0xBABD, 0xBD05, 0xBABE, 0xBD06, 0x9447, 0xBD07, 0xBABF, + 0xBD08, 0x9448, 0xBD09, 0xBAC0, 0xBD0A, 0x9449, 0xBD0B, 0x944A, + 0xBD0C, 0x944B, 0xBD0D, 0x944C, 0xBD0E, 0x944D, 0xBD0F, 0x944E, + 0xBD10, 0xBAC1, 0xBD11, 0x944F, 0xBD12, 0x9450, 0xBD13, 0x9451, + 0xBD14, 0xBAC2, 0xBD15, 0x9452, 0xBD16, 0x9453, 0xBD17, 0x9454, + 0xBD18, 0x9455, 0xBD19, 0x9456, 0xBD1A, 0x9457, 0xBD1B, 0x9458, + 0xBD1C, 0x9459, 0xBD1D, 0x945A, 0xBD1E, 0x9461, 0xBD1F, 0x9462, + 0xBD20, 0x9463, 0xBD21, 0x9464, 0xBD22, 0x9465, 0xBD23, 0x9466, + 0xBD24, 0xBAC3, 0xBD25, 0x9467, 0xBD26, 0x9468, 0xBD27, 0x9469, + 0xBD28, 0x946A, 0xBD29, 0x946B, 0xBD2A, 0x946C, 0xBD2B, 0x946D, + 0xBD2C, 0xBAC4, 0xBD2D, 0x946E, 0xBD2E, 0x946F, 0xBD2F, 0x9470, + 0xBD30, 0x9471, 0xBD31, 0x9472, 0xBD32, 0x9473, 0xBD33, 0x9474, + 0xBD34, 0x9475, 0xBD35, 0x9476, 0xBD36, 0x9477, 0xBD37, 0x9478, + 0xBD38, 0x9479, 0xBD39, 0x947A, 0xBD3A, 0x9481, 0xBD3B, 0x9482, + 0xBD3C, 0x9483, 0xBD3D, 0x9484, 0xBD3E, 0x9485, 0xBD3F, 0x9486, + 0xBD40, 0xBAC5, 0xBD41, 0x9487, 0xBD42, 0x9488, 0xBD43, 0x9489, + 0xBD44, 0x948A, 0xBD45, 0x948B, 0xBD46, 0x948C, 0xBD47, 0x948D, + 0xBD48, 0xBAC6, 0xBD49, 0xBAC7, 0xBD4A, 0x948E, 0xBD4B, 0x948F, + 0xBD4C, 0xBAC8, 0xBD4D, 0x9490, 0xBD4E, 0x9491, 0xBD4F, 0x9492, + 0xBD50, 0xBAC9, 0xBD51, 0x9493, 0xBD52, 0x9494, 0xBD53, 0x9495, + 0xBD54, 0x9496, 0xBD55, 0x9497, 0xBD56, 0x9498, 0xBD57, 0x9499, + 0xBD58, 0xBACA, 0xBD59, 0xBACB, 0xBD5A, 0x949A, 0xBD5B, 0x949B, + 0xBD5C, 0x949C, 0xBD5D, 0x949D, 0xBD5E, 0x949E, 0xBD5F, 0x949F, + 0xBD60, 0x94A0, 0xBD61, 0x94A1, 0xBD62, 0x94A2, 0xBD63, 0x94A3, + 0xBD64, 0xBACC, 0xBD65, 0x94A4, 0xBD66, 0x94A5, 0xBD67, 0x94A6, + 0xBD68, 0xBACD, 0xBD69, 0x94A7, 0xBD6A, 0x94A8, 0xBD6B, 0x94A9, + 0xBD6C, 0x94AA, 0xBD6D, 0x94AB, 0xBD6E, 0x94AC, 0xBD6F, 0x94AD, + 0xBD70, 0x94AE, 0xBD71, 0x94AF, 0xBD72, 0x94B0, 0xBD73, 0x94B1, + 0xBD74, 0x94B2, 0xBD75, 0x94B3, 0xBD76, 0x94B4, 0xBD77, 0x94B5, + 0xBD78, 0x94B6, 0xBD79, 0x94B7, 0xBD7A, 0x94B8, 0xBD7B, 0x94B9, + 0xBD7C, 0x94BA, 0xBD7D, 0x94BB, 0xBD7E, 0x94BC, 0xBD7F, 0x94BD, + 0xBD80, 0xBACE, 0xBD81, 0xBACF, 0xBD82, 0x94BE, 0xBD83, 0x94BF, + 0xBD84, 0xBAD0, 0xBD85, 0x94C0, 0xBD86, 0x94C1, 0xBD87, 0xBAD1, + 0xBD88, 0xBAD2, 0xBD89, 0xBAD3, 0xBD8A, 0xBAD4, 0xBD8B, 0x94C2, + 0xBD8C, 0x94C3, 0xBD8D, 0x94C4, 0xBD8E, 0x94C5, 0xBD8F, 0x94C6, + 0xBD90, 0xBAD5, 0xBD91, 0xBAD6, 0xBD92, 0x94C7, 0xBD93, 0xBAD7, + 0xBD94, 0x94C8, 0xBD95, 0xBAD8, 0xBD96, 0x94C9, 0xBD97, 0x94CA, + 0xBD98, 0x94CB, 0xBD99, 0xBAD9, 0xBD9A, 0xBADA, 0xBD9B, 0x94CC, + 0xBD9C, 0xBADB, 0xBD9D, 0x94CD, 0xBD9E, 0x94CE, 0xBD9F, 0x94CF, + 0xBDA0, 0x94D0, 0xBDA1, 0x94D1, 0xBDA2, 0x94D2, 0xBDA3, 0x94D3, + 0xBDA4, 0xBADC, 0xBDA5, 0x94D4, 0xBDA6, 0x94D5, 0xBDA7, 0x94D6, + 0xBDA8, 0x94D7, 0xBDA9, 0x94D8, 0xBDAA, 0x94D9, 0xBDAB, 0x94DA, + 0xBDAC, 0x94DB, 0xBDAD, 0x94DC, 0xBDAE, 0x94DD, 0xBDAF, 0x94DE, + 0xBDB0, 0xBADD, 0xBDB1, 0x94DF, 0xBDB2, 0x94E0, 0xBDB3, 0x94E1, + 0xBDB4, 0x94E2, 0xBDB5, 0x94E3, 0xBDB6, 0x94E4, 0xBDB7, 0x94E5, + 0xBDB8, 0xBADE, 0xBDB9, 0x94E6, 0xBDBA, 0x94E7, 0xBDBB, 0x94E8, + 0xBDBC, 0x94E9, 0xBDBD, 0x94EA, 0xBDBE, 0x94EB, 0xBDBF, 0x94EC, + 0xBDC0, 0x94ED, 0xBDC1, 0x94EE, 0xBDC2, 0x94EF, 0xBDC3, 0x94F0, + 0xBDC4, 0x94F1, 0xBDC5, 0x94F2, 0xBDC6, 0x94F3, 0xBDC7, 0x94F4, + 0xBDC8, 0x94F5, 0xBDC9, 0x94F6, 0xBDCA, 0x94F7, 0xBDCB, 0x94F8, + 0xBDCC, 0x94F9, 0xBDCD, 0x94FA, 0xBDCE, 0x94FB, 0xBDCF, 0x94FC, + 0xBDD0, 0x94FD, 0xBDD1, 0x94FE, 0xBDD2, 0x9541, 0xBDD3, 0x9542, + 0xBDD4, 0xBADF, 0xBDD5, 0xBAE0, 0xBDD6, 0x9543, 0xBDD7, 0x9544, + 0xBDD8, 0xBAE1, 0xBDD9, 0x9545, 0xBDDA, 0x9546, 0xBDDB, 0x9547, + 0xBDDC, 0xBAE2, 0xBDDD, 0x9548, 0xBDDE, 0x9549, 0xBDDF, 0x954A, + 0xBDE0, 0x954B, 0xBDE1, 0x954C, 0xBDE2, 0x954D, 0xBDE3, 0x954E, + 0xBDE4, 0x954F, 0xBDE5, 0x9550, 0xBDE6, 0x9551, 0xBDE7, 0x9552, + 0xBDE8, 0x9553, 0xBDE9, 0xBAE3, 0xBDEA, 0x9554, 0xBDEB, 0x9555, + 0xBDEC, 0x9556, 0xBDED, 0x9557, 0xBDEE, 0x9558, 0xBDEF, 0x9559, + 0xBDF0, 0xBAE4, 0xBDF1, 0x955A, 0xBDF2, 0x9561, 0xBDF3, 0x9562, + 0xBDF4, 0xBAE5, 0xBDF5, 0x9563, 0xBDF6, 0x9564, 0xBDF7, 0x9565, + 0xBDF8, 0xBAE6, 0xBDF9, 0x9566, 0xBDFA, 0x9567, 0xBDFB, 0x9568, + 0xBDFC, 0x9569, 0xBDFD, 0x956A, 0xBDFE, 0x956B, 0xBDFF, 0x956C, + 0xBE00, 0xBAE7, 0xBE01, 0x956D, 0xBE02, 0x956E, 0xBE03, 0xBAE8, + 0xBE04, 0x956F, 0xBE05, 0xBAE9, 0xBE06, 0x9570, 0xBE07, 0x9571, + 0xBE08, 0x9572, 0xBE09, 0x9573, 0xBE0A, 0x9574, 0xBE0B, 0x9575, + 0xBE0C, 0xBAEA, 0xBE0D, 0xBAEB, 0xBE0E, 0x9576, 0xBE0F, 0x9577, + 0xBE10, 0xBAEC, 0xBE11, 0x9578, 0xBE12, 0x9579, 0xBE13, 0x957A, + 0xBE14, 0xBAED, 0xBE15, 0x9581, 0xBE16, 0x9582, 0xBE17, 0x9583, + 0xBE18, 0x9584, 0xBE19, 0x9585, 0xBE1A, 0x9586, 0xBE1B, 0x9587, + 0xBE1C, 0xBAEE, 0xBE1D, 0xBAEF, 0xBE1E, 0x9588, 0xBE1F, 0xBAF0, + 0xBE20, 0x9589, 0xBE21, 0x958A, 0xBE22, 0x958B, 0xBE23, 0x958C, + 0xBE24, 0x958D, 0xBE25, 0x958E, 0xBE26, 0x958F, 0xBE27, 0x9590, + 0xBE28, 0x9591, 0xBE29, 0x9592, 0xBE2A, 0x9593, 0xBE2B, 0x9594, + 0xBE2C, 0x9595, 0xBE2D, 0x9596, 0xBE2E, 0x9597, 0xBE2F, 0x9598, + 0xBE30, 0x9599, 0xBE31, 0x959A, 0xBE32, 0x959B, 0xBE33, 0x959C, + 0xBE34, 0x959D, 0xBE35, 0x959E, 0xBE36, 0x959F, 0xBE37, 0x95A0, + 0xBE38, 0x95A1, 0xBE39, 0x95A2, 0xBE3A, 0x95A3, 0xBE3B, 0x95A4, + 0xBE3C, 0x95A5, 0xBE3D, 0x95A6, 0xBE3E, 0x95A7, 0xBE3F, 0x95A8, + 0xBE40, 0x95A9, 0xBE41, 0x95AA, 0xBE42, 0x95AB, 0xBE43, 0x95AC, + 0xBE44, 0xBAF1, 0xBE45, 0xBAF2, 0xBE46, 0x95AD, 0xBE47, 0x95AE, + 0xBE48, 0xBAF3, 0xBE49, 0x95AF, 0xBE4A, 0x95B0, 0xBE4B, 0x95B1, + 0xBE4C, 0xBAF4, 0xBE4D, 0x95B2, 0xBE4E, 0xBAF5, 0xBE4F, 0x95B3, + 0xBE50, 0x95B4, 0xBE51, 0x95B5, 0xBE52, 0x95B6, 0xBE53, 0x95B7, + 0xBE54, 0xBAF6, 0xBE55, 0xBAF7, 0xBE56, 0x95B8, 0xBE57, 0xBAF8, + 0xBE58, 0x95B9, 0xBE59, 0xBAF9, 0xBE5A, 0xBAFA, 0xBE5B, 0xBAFB, + 0xBE5C, 0x95BA, 0xBE5D, 0x95BB, 0xBE5E, 0x95BC, 0xBE5F, 0x95BD, + 0xBE60, 0xBAFC, 0xBE61, 0xBAFD, 0xBE62, 0x95BE, 0xBE63, 0x95BF, + 0xBE64, 0xBAFE, 0xBE65, 0x95C0, 0xBE66, 0x95C1, 0xBE67, 0x95C2, + 0xBE68, 0xBBA1, 0xBE69, 0x95C3, 0xBE6A, 0xBBA2, 0xBE6B, 0x95C4, + 0xBE6C, 0x95C5, 0xBE6D, 0x95C6, 0xBE6E, 0x95C7, 0xBE6F, 0x95C8, + 0xBE70, 0xBBA3, 0xBE71, 0xBBA4, 0xBE72, 0x95C9, 0xBE73, 0xBBA5, + 0xBE74, 0xBBA6, 0xBE75, 0xBBA7, 0xBE76, 0x95CA, 0xBE77, 0x95CB, + 0xBE78, 0x95CC, 0xBE79, 0x95CD, 0xBE7A, 0x95CE, 0xBE7B, 0xBBA8, + 0xBE7C, 0xBBA9, 0xBE7D, 0xBBAA, 0xBE7E, 0x95CF, 0xBE7F, 0x95D0, + 0xBE80, 0xBBAB, 0xBE81, 0x95D1, 0xBE82, 0x95D2, 0xBE83, 0x95D3, + 0xBE84, 0xBBAC, 0xBE85, 0x95D4, 0xBE86, 0x95D5, 0xBE87, 0x95D6, + 0xBE88, 0x95D7, 0xBE89, 0x95D8, 0xBE8A, 0x95D9, 0xBE8B, 0x95DA, + 0xBE8C, 0xBBAD, 0xBE8D, 0xBBAE, 0xBE8E, 0x95DB, 0xBE8F, 0xBBAF, + 0xBE90, 0xBBB0, 0xBE91, 0xBBB1, 0xBE92, 0x95DC, 0xBE93, 0x95DD, + 0xBE94, 0x95DE, 0xBE95, 0x95DF, 0xBE96, 0x95E0, 0xBE97, 0x95E1, + 0xBE98, 0xBBB2, 0xBE99, 0xBBB3, 0xBE9A, 0x95E2, 0xBE9B, 0x95E3, + 0xBE9C, 0x95E4, 0xBE9D, 0x95E5, 0xBE9E, 0x95E6, 0xBE9F, 0x95E7, + 0xBEA0, 0x95E8, 0xBEA1, 0x95E9, 0xBEA2, 0x95EA, 0xBEA3, 0x95EB, + 0xBEA4, 0x95EC, 0xBEA5, 0x95ED, 0xBEA6, 0x95EE, 0xBEA7, 0x95EF, + 0xBEA8, 0xBBB4, 0xBEA9, 0x95F0, 0xBEAA, 0x95F1, 0xBEAB, 0x95F2, + 0xBEAC, 0x95F3, 0xBEAD, 0x95F4, 0xBEAE, 0x95F5, 0xBEAF, 0x95F6, + 0xBEB0, 0x95F7, 0xBEB1, 0x95F8, 0xBEB2, 0x95F9, 0xBEB3, 0x95FA, + 0xBEB4, 0x95FB, 0xBEB5, 0x95FC, 0xBEB6, 0x95FD, 0xBEB7, 0x95FE, + 0xBEB8, 0x9641, 0xBEB9, 0x9642, 0xBEBA, 0x9643, 0xBEBB, 0x9644, + 0xBEBC, 0x9645, 0xBEBD, 0x9646, 0xBEBE, 0x9647, 0xBEBF, 0x9648, + 0xBEC0, 0x9649, 0xBEC1, 0x964A, 0xBEC2, 0x964B, 0xBEC3, 0x964C, + 0xBEC4, 0x964D, 0xBEC5, 0x964E, 0xBEC6, 0x964F, 0xBEC7, 0x9650, + 0xBEC8, 0x9651, 0xBEC9, 0x9652, 0xBECA, 0x9653, 0xBECB, 0x9654, + 0xBECC, 0x9655, 0xBECD, 0x9656, 0xBECE, 0x9657, 0xBECF, 0x9658, + 0xBED0, 0xBBB5, 0xBED1, 0xBBB6, 0xBED2, 0x9659, 0xBED3, 0x965A, + 0xBED4, 0xBBB7, 0xBED5, 0x9661, 0xBED6, 0x9662, 0xBED7, 0xBBB8, + 0xBED8, 0xBBB9, 0xBED9, 0x9663, 0xBEDA, 0x9664, 0xBEDB, 0x9665, + 0xBEDC, 0x9666, 0xBEDD, 0x9667, 0xBEDE, 0x9668, 0xBEDF, 0x9669, + 0xBEE0, 0xBBBA, 0xBEE1, 0x966A, 0xBEE2, 0x966B, 0xBEE3, 0xBBBB, + 0xBEE4, 0xBBBC, 0xBEE5, 0xBBBD, 0xBEE6, 0x966C, 0xBEE7, 0x966D, + 0xBEE8, 0x966E, 0xBEE9, 0x966F, 0xBEEA, 0x9670, 0xBEEB, 0x9671, + 0xBEEC, 0xBBBE, 0xBEED, 0x9672, 0xBEEE, 0x9673, 0xBEEF, 0x9674, + 0xBEF0, 0x9675, 0xBEF1, 0x9676, 0xBEF2, 0x9677, 0xBEF3, 0x9678, + 0xBEF4, 0x9679, 0xBEF5, 0x967A, 0xBEF6, 0x9681, 0xBEF7, 0x9682, + 0xBEF8, 0x9683, 0xBEF9, 0x9684, 0xBEFA, 0x9685, 0xBEFB, 0x9686, + 0xBEFC, 0x9687, 0xBEFD, 0x9688, 0xBEFE, 0x9689, 0xBEFF, 0x968A, + 0xBF00, 0x968B, 0xBF01, 0xBBBF, 0xBF02, 0x968C, 0xBF03, 0x968D, + 0xBF04, 0x968E, 0xBF05, 0x968F, 0xBF06, 0x9690, 0xBF07, 0x9691, + 0xBF08, 0xBBC0, 0xBF09, 0xBBC1, 0xBF0A, 0x9692, 0xBF0B, 0x9693, + 0xBF0C, 0x9694, 0xBF0D, 0x9695, 0xBF0E, 0x9696, 0xBF0F, 0x9697, + 0xBF10, 0x9698, 0xBF11, 0x9699, 0xBF12, 0x969A, 0xBF13, 0x969B, + 0xBF14, 0x969C, 0xBF15, 0x969D, 0xBF16, 0x969E, 0xBF17, 0x969F, + 0xBF18, 0xBBC2, 0xBF19, 0xBBC3, 0xBF1A, 0x96A0, 0xBF1B, 0xBBC4, + 0xBF1C, 0xBBC5, 0xBF1D, 0xBBC6, 0xBF1E, 0x96A1, 0xBF1F, 0x96A2, + 0xBF20, 0x96A3, 0xBF21, 0x96A4, 0xBF22, 0x96A5, 0xBF23, 0x96A6, + 0xBF24, 0x96A7, 0xBF25, 0x96A8, 0xBF26, 0x96A9, 0xBF27, 0x96AA, + 0xBF28, 0x96AB, 0xBF29, 0x96AC, 0xBF2A, 0x96AD, 0xBF2B, 0x96AE, + 0xBF2C, 0x96AF, 0xBF2D, 0x96B0, 0xBF2E, 0x96B1, 0xBF2F, 0x96B2, + 0xBF30, 0x96B3, 0xBF31, 0x96B4, 0xBF32, 0x96B5, 0xBF33, 0x96B6, + 0xBF34, 0x96B7, 0xBF35, 0x96B8, 0xBF36, 0x96B9, 0xBF37, 0x96BA, + 0xBF38, 0x96BB, 0xBF39, 0x96BC, 0xBF3A, 0x96BD, 0xBF3B, 0x96BE, + 0xBF3C, 0x96BF, 0xBF3D, 0x96C0, 0xBF3E, 0x96C1, 0xBF3F, 0x96C2, + 0xBF40, 0xBBC7, 0xBF41, 0xBBC8, 0xBF42, 0x96C3, 0xBF43, 0x96C4, + 0xBF44, 0xBBC9, 0xBF45, 0x96C5, 0xBF46, 0x96C6, 0xBF47, 0x96C7, + 0xBF48, 0xBBCA, 0xBF49, 0x96C8, 0xBF4A, 0x96C9, 0xBF4B, 0x96CA, + 0xBF4C, 0x96CB, 0xBF4D, 0x96CC, 0xBF4E, 0x96CD, 0xBF4F, 0x96CE, + 0xBF50, 0xBBCB, 0xBF51, 0xBBCC, 0xBF52, 0x96CF, 0xBF53, 0x96D0, + 0xBF54, 0x96D1, 0xBF55, 0xBBCD, 0xBF56, 0x96D2, 0xBF57, 0x96D3, + 0xBF58, 0x96D4, 0xBF59, 0x96D5, 0xBF5A, 0x96D6, 0xBF5B, 0x96D7, + 0xBF5C, 0x96D8, 0xBF5D, 0x96D9, 0xBF5E, 0x96DA, 0xBF5F, 0x96DB, + 0xBF60, 0x96DC, 0xBF61, 0x96DD, 0xBF62, 0x96DE, 0xBF63, 0x96DF, + 0xBF64, 0x96E0, 0xBF65, 0x96E1, 0xBF66, 0x96E2, 0xBF67, 0x96E3, + 0xBF68, 0x96E4, 0xBF69, 0x96E5, 0xBF6A, 0x96E6, 0xBF6B, 0x96E7, + 0xBF6C, 0x96E8, 0xBF6D, 0x96E9, 0xBF6E, 0x96EA, 0xBF6F, 0x96EB, + 0xBF70, 0x96EC, 0xBF71, 0x96ED, 0xBF72, 0x96EE, 0xBF73, 0x96EF, + 0xBF74, 0x96F0, 0xBF75, 0x96F1, 0xBF76, 0x96F2, 0xBF77, 0x96F3, + 0xBF78, 0x96F4, 0xBF79, 0x96F5, 0xBF7A, 0x96F6, 0xBF7B, 0x96F7, + 0xBF7C, 0x96F8, 0xBF7D, 0x96F9, 0xBF7E, 0x96FA, 0xBF7F, 0x96FB, + 0xBF80, 0x96FC, 0xBF81, 0x96FD, 0xBF82, 0x96FE, 0xBF83, 0x9741, + 0xBF84, 0x9742, 0xBF85, 0x9743, 0xBF86, 0x9744, 0xBF87, 0x9745, + 0xBF88, 0x9746, 0xBF89, 0x9747, 0xBF8A, 0x9748, 0xBF8B, 0x9749, + 0xBF8C, 0x974A, 0xBF8D, 0x974B, 0xBF8E, 0x974C, 0xBF8F, 0x974D, + 0xBF90, 0x974E, 0xBF91, 0x974F, 0xBF92, 0x9750, 0xBF93, 0x9751, + 0xBF94, 0xBBCE, 0xBF95, 0x9752, 0xBF96, 0x9753, 0xBF97, 0x9754, + 0xBF98, 0x9755, 0xBF99, 0x9756, 0xBF9A, 0x9757, 0xBF9B, 0x9758, + 0xBF9C, 0x9759, 0xBF9D, 0x975A, 0xBF9E, 0x9761, 0xBF9F, 0x9762, + 0xBFA0, 0x9763, 0xBFA1, 0x9764, 0xBFA2, 0x9765, 0xBFA3, 0x9766, + 0xBFA4, 0x9767, 0xBFA5, 0x9768, 0xBFA6, 0x9769, 0xBFA7, 0x976A, + 0xBFA8, 0x976B, 0xBFA9, 0x976C, 0xBFAA, 0x976D, 0xBFAB, 0x976E, + 0xBFAC, 0x976F, 0xBFAD, 0x9770, 0xBFAE, 0x9771, 0xBFAF, 0x9772, + 0xBFB0, 0xBBCF, 0xBFB1, 0x9773, 0xBFB2, 0x9774, 0xBFB3, 0x9775, + 0xBFB4, 0x9776, 0xBFB5, 0x9777, 0xBFB6, 0x9778, 0xBFB7, 0x9779, + 0xBFB8, 0x977A, 0xBFB9, 0x9781, 0xBFBA, 0x9782, 0xBFBB, 0x9783, + 0xBFBC, 0x9784, 0xBFBD, 0x9785, 0xBFBE, 0x9786, 0xBFBF, 0x9787, + 0xBFC0, 0x9788, 0xBFC1, 0x9789, 0xBFC2, 0x978A, 0xBFC3, 0x978B, + 0xBFC4, 0x978C, 0xBFC5, 0xBBD0, 0xBFC6, 0x978D, 0xBFC7, 0x978E, + 0xBFC8, 0x978F, 0xBFC9, 0x9790, 0xBFCA, 0x9791, 0xBFCB, 0x9792, + 0xBFCC, 0xBBD1, 0xBFCD, 0xBBD2, 0xBFCE, 0x9793, 0xBFCF, 0x9794, + 0xBFD0, 0xBBD3, 0xBFD1, 0x9795, 0xBFD2, 0x9796, 0xBFD3, 0x9797, + 0xBFD4, 0xBBD4, 0xBFD5, 0x9798, 0xBFD6, 0x9799, 0xBFD7, 0x979A, + 0xBFD8, 0x979B, 0xBFD9, 0x979C, 0xBFDA, 0x979D, 0xBFDB, 0x979E, + 0xBFDC, 0xBBD5, 0xBFDD, 0x979F, 0xBFDE, 0x97A0, 0xBFDF, 0xBBD6, + 0xBFE0, 0x97A1, 0xBFE1, 0xBBD7, 0xBFE2, 0x97A2, 0xBFE3, 0x97A3, + 0xBFE4, 0x97A4, 0xBFE5, 0x97A5, 0xBFE6, 0x97A6, 0xBFE7, 0x97A7, + 0xBFE8, 0x97A8, 0xBFE9, 0x97A9, 0xBFEA, 0x97AA, 0xBFEB, 0x97AB, + 0xBFEC, 0x97AC, 0xBFED, 0x97AD, 0xBFEE, 0x97AE, 0xBFEF, 0x97AF, + 0xBFF0, 0x97B0, 0xBFF1, 0x97B1, 0xBFF2, 0x97B2, 0xBFF3, 0x97B3, + 0xBFF4, 0x97B4, 0xBFF5, 0x97B5, 0xBFF6, 0x97B6, 0xBFF7, 0x97B7, + 0xBFF8, 0x97B8, 0xBFF9, 0x97B9, 0xBFFA, 0x97BA, 0xBFFB, 0x97BB, + 0xBFFC, 0x97BC, 0xBFFD, 0x97BD, 0xBFFE, 0x97BE, 0xBFFF, 0x97BF, + 0xC000, 0x97C0, 0xC001, 0x97C1, 0xC002, 0x97C2, 0xC003, 0x97C3, + 0xC004, 0x97C4, 0xC005, 0x97C5, 0xC006, 0x97C6, 0xC007, 0x97C7, + 0xC008, 0x97C8, 0xC009, 0x97C9, 0xC00A, 0x97CA, 0xC00B, 0x97CB, + 0xC00C, 0x97CC, 0xC00D, 0x97CD, 0xC00E, 0x97CE, 0xC00F, 0x97CF, + 0xC010, 0x97D0, 0xC011, 0x97D1, 0xC012, 0x97D2, 0xC013, 0x97D3, + 0xC014, 0x97D4, 0xC015, 0x97D5, 0xC016, 0x97D6, 0xC017, 0x97D7, + 0xC018, 0x97D8, 0xC019, 0x97D9, 0xC01A, 0x97DA, 0xC01B, 0x97DB, + 0xC01C, 0x97DC, 0xC01D, 0x97DD, 0xC01E, 0x97DE, 0xC01F, 0x97DF, + 0xC020, 0x97E0, 0xC021, 0x97E1, 0xC022, 0x97E2, 0xC023, 0x97E3, + 0xC024, 0x97E4, 0xC025, 0x97E5, 0xC026, 0x97E6, 0xC027, 0x97E7, + 0xC028, 0x97E8, 0xC029, 0x97E9, 0xC02A, 0x97EA, 0xC02B, 0x97EB, + 0xC02C, 0x97EC, 0xC02D, 0x97ED, 0xC02E, 0x97EE, 0xC02F, 0x97EF, + 0xC030, 0x97F0, 0xC031, 0x97F1, 0xC032, 0x97F2, 0xC033, 0x97F3, + 0xC034, 0x97F4, 0xC035, 0x97F5, 0xC036, 0x97F6, 0xC037, 0x97F7, + 0xC038, 0x97F8, 0xC039, 0x97F9, 0xC03A, 0x97FA, 0xC03B, 0x97FB, + 0xC03C, 0xBBD8, 0xC03D, 0x97FC, 0xC03E, 0x97FD, 0xC03F, 0x97FE, + 0xC040, 0x9841, 0xC041, 0x9842, 0xC042, 0x9843, 0xC043, 0x9844, + 0xC044, 0x9845, 0xC045, 0x9846, 0xC046, 0x9847, 0xC047, 0x9848, + 0xC048, 0x9849, 0xC049, 0x984A, 0xC04A, 0x984B, 0xC04B, 0x984C, + 0xC04C, 0x984D, 0xC04D, 0x984E, 0xC04E, 0x984F, 0xC04F, 0x9850, + 0xC050, 0x9851, 0xC051, 0xBBD9, 0xC052, 0x9852, 0xC053, 0x9853, + 0xC054, 0x9854, 0xC055, 0x9855, 0xC056, 0x9856, 0xC057, 0x9857, + 0xC058, 0xBBDA, 0xC059, 0x9858, 0xC05A, 0x9859, 0xC05B, 0x985A, + 0xC05C, 0xBBDB, 0xC05D, 0x9861, 0xC05E, 0x9862, 0xC05F, 0x9863, + 0xC060, 0xBBDC, 0xC061, 0x9864, 0xC062, 0x9865, 0xC063, 0x9866, + 0xC064, 0x9867, 0xC065, 0x9868, 0xC066, 0x9869, 0xC067, 0x986A, + 0xC068, 0xBBDD, 0xC069, 0xBBDE, 0xC06A, 0x986B, 0xC06B, 0x986C, + 0xC06C, 0x986D, 0xC06D, 0x986E, 0xC06E, 0x986F, 0xC06F, 0x9870, + 0xC070, 0x9871, 0xC071, 0x9872, 0xC072, 0x9873, 0xC073, 0x9874, + 0xC074, 0x9875, 0xC075, 0x9876, 0xC076, 0x9877, 0xC077, 0x9878, + 0xC078, 0x9879, 0xC079, 0x987A, 0xC07A, 0x9881, 0xC07B, 0x9882, + 0xC07C, 0x9883, 0xC07D, 0x9884, 0xC07E, 0x9885, 0xC07F, 0x9886, + 0xC080, 0x9887, 0xC081, 0x9888, 0xC082, 0x9889, 0xC083, 0x988A, + 0xC084, 0x988B, 0xC085, 0x988C, 0xC086, 0x988D, 0xC087, 0x988E, + 0xC088, 0x988F, 0xC089, 0x9890, 0xC08A, 0x9891, 0xC08B, 0x9892, + 0xC08C, 0x9893, 0xC08D, 0x9894, 0xC08E, 0x9895, 0xC08F, 0x9896, + 0xC090, 0xBBDF, 0xC091, 0xBBE0, 0xC092, 0x9897, 0xC093, 0x9898, + 0xC094, 0xBBE1, 0xC095, 0x9899, 0xC096, 0x989A, 0xC097, 0x989B, + 0xC098, 0xBBE2, 0xC099, 0x989C, 0xC09A, 0x989D, 0xC09B, 0x989E, + 0xC09C, 0x989F, 0xC09D, 0x98A0, 0xC09E, 0x98A1, 0xC09F, 0x98A2, + 0xC0A0, 0xBBE3, 0xC0A1, 0xBBE4, 0xC0A2, 0x98A3, 0xC0A3, 0xBBE5, + 0xC0A4, 0x98A4, 0xC0A5, 0xBBE6, 0xC0A6, 0x98A5, 0xC0A7, 0x98A6, + 0xC0A8, 0x98A7, 0xC0A9, 0x98A8, 0xC0AA, 0x98A9, 0xC0AB, 0x98AA, + 0xC0AC, 0xBBE7, 0xC0AD, 0xBBE8, 0xC0AE, 0x98AB, 0xC0AF, 0xBBE9, + 0xC0B0, 0xBBEA, 0xC0B1, 0x98AC, 0xC0B2, 0x98AD, 0xC0B3, 0xBBEB, + 0xC0B4, 0xBBEC, 0xC0B5, 0xBBED, 0xC0B6, 0xBBEE, 0xC0B7, 0x98AE, + 0xC0B8, 0x98AF, 0xC0B9, 0x98B0, 0xC0BA, 0x98B1, 0xC0BB, 0x98B2, + 0xC0BC, 0xBBEF, 0xC0BD, 0xBBF0, 0xC0BE, 0x98B3, 0xC0BF, 0xBBF1, + 0xC0C0, 0xBBF2, 0xC0C1, 0xBBF3, 0xC0C2, 0x98B4, 0xC0C3, 0x98B5, + 0xC0C4, 0x98B6, 0xC0C5, 0xBBF4, 0xC0C6, 0x98B7, 0xC0C7, 0x98B8, + 0xC0C8, 0xBBF5, 0xC0C9, 0xBBF6, 0xC0CA, 0x98B9, 0xC0CB, 0x98BA, + 0xC0CC, 0xBBF7, 0xC0CD, 0x98BB, 0xC0CE, 0x98BC, 0xC0CF, 0x98BD, + 0xC0D0, 0xBBF8, 0xC0D1, 0x98BE, 0xC0D2, 0x98BF, 0xC0D3, 0x98C0, + 0xC0D4, 0x98C1, 0xC0D5, 0x98C2, 0xC0D6, 0x98C3, 0xC0D7, 0x98C4, + 0xC0D8, 0xBBF9, 0xC0D9, 0xBBFA, 0xC0DA, 0x98C5, 0xC0DB, 0xBBFB, + 0xC0DC, 0xBBFC, 0xC0DD, 0xBBFD, 0xC0DE, 0x98C6, 0xC0DF, 0x98C7, + 0xC0E0, 0x98C8, 0xC0E1, 0x98C9, 0xC0E2, 0x98CA, 0xC0E3, 0x98CB, + 0xC0E4, 0xBBFE, 0xC0E5, 0xBCA1, 0xC0E6, 0x98CC, 0xC0E7, 0x98CD, + 0xC0E8, 0xBCA2, 0xC0E9, 0x98CE, 0xC0EA, 0x98CF, 0xC0EB, 0x98D0, + 0xC0EC, 0xBCA3, 0xC0ED, 0x98D1, 0xC0EE, 0x98D2, 0xC0EF, 0x98D3, + 0xC0F0, 0x98D4, 0xC0F1, 0x98D5, 0xC0F2, 0x98D6, 0xC0F3, 0x98D7, + 0xC0F4, 0xBCA4, 0xC0F5, 0xBCA5, 0xC0F6, 0x98D8, 0xC0F7, 0xBCA6, + 0xC0F8, 0x98D9, 0xC0F9, 0xBCA7, 0xC0FA, 0x98DA, 0xC0FB, 0x98DB, + 0xC0FC, 0x98DC, 0xC0FD, 0x98DD, 0xC0FE, 0x98DE, 0xC0FF, 0x98DF, + 0xC100, 0xBCA8, 0xC101, 0x98E0, 0xC102, 0x98E1, 0xC103, 0x98E2, + 0xC104, 0xBCA9, 0xC105, 0x98E3, 0xC106, 0x98E4, 0xC107, 0x98E5, + 0xC108, 0xBCAA, 0xC109, 0x98E6, 0xC10A, 0x98E7, 0xC10B, 0x98E8, + 0xC10C, 0x98E9, 0xC10D, 0x98EA, 0xC10E, 0x98EB, 0xC10F, 0x98EC, + 0xC110, 0xBCAB, 0xC111, 0x98ED, 0xC112, 0x98EE, 0xC113, 0x98EF, + 0xC114, 0x98F0, 0xC115, 0xBCAC, 0xC116, 0x98F1, 0xC117, 0x98F2, + 0xC118, 0x98F3, 0xC119, 0x98F4, 0xC11A, 0x98F5, 0xC11B, 0x98F6, + 0xC11C, 0xBCAD, 0xC11D, 0xBCAE, 0xC11E, 0xBCAF, 0xC11F, 0xBCB0, + 0xC120, 0xBCB1, 0xC121, 0x98F7, 0xC122, 0x98F8, 0xC123, 0xBCB2, + 0xC124, 0xBCB3, 0xC125, 0x98F9, 0xC126, 0xBCB4, 0xC127, 0xBCB5, + 0xC128, 0x98FA, 0xC129, 0x98FB, 0xC12A, 0x98FC, 0xC12B, 0x98FD, + 0xC12C, 0xBCB6, 0xC12D, 0xBCB7, 0xC12E, 0x98FE, 0xC12F, 0xBCB8, + 0xC130, 0xBCB9, 0xC131, 0xBCBA, 0xC132, 0x9941, 0xC133, 0x9942, + 0xC134, 0x9943, 0xC135, 0x9944, 0xC136, 0xBCBB, 0xC137, 0x9945, + 0xC138, 0xBCBC, 0xC139, 0xBCBD, 0xC13A, 0x9946, 0xC13B, 0x9947, + 0xC13C, 0xBCBE, 0xC13D, 0x9948, 0xC13E, 0x9949, 0xC13F, 0x994A, + 0xC140, 0xBCBF, 0xC141, 0x994B, 0xC142, 0x994C, 0xC143, 0x994D, + 0xC144, 0x994E, 0xC145, 0x994F, 0xC146, 0x9950, 0xC147, 0x9951, + 0xC148, 0xBCC0, 0xC149, 0xBCC1, 0xC14A, 0x9952, 0xC14B, 0xBCC2, + 0xC14C, 0xBCC3, 0xC14D, 0xBCC4, 0xC14E, 0x9953, 0xC14F, 0x9954, + 0xC150, 0x9955, 0xC151, 0x9956, 0xC152, 0x9957, 0xC153, 0x9958, + 0xC154, 0xBCC5, 0xC155, 0xBCC6, 0xC156, 0x9959, 0xC157, 0x995A, + 0xC158, 0xBCC7, 0xC159, 0x9961, 0xC15A, 0x9962, 0xC15B, 0x9963, + 0xC15C, 0xBCC8, 0xC15D, 0x9964, 0xC15E, 0x9965, 0xC15F, 0x9966, + 0xC160, 0x9967, 0xC161, 0x9968, 0xC162, 0x9969, 0xC163, 0x996A, + 0xC164, 0xBCC9, 0xC165, 0xBCCA, 0xC166, 0x996B, 0xC167, 0xBCCB, + 0xC168, 0xBCCC, 0xC169, 0xBCCD, 0xC16A, 0x996C, 0xC16B, 0x996D, + 0xC16C, 0x996E, 0xC16D, 0x996F, 0xC16E, 0x9970, 0xC16F, 0x9971, + 0xC170, 0xBCCE, 0xC171, 0x9972, 0xC172, 0x9973, 0xC173, 0x9974, + 0xC174, 0xBCCF, 0xC175, 0x9975, 0xC176, 0x9976, 0xC177, 0x9977, + 0xC178, 0xBCD0, 0xC179, 0x9978, 0xC17A, 0x9979, 0xC17B, 0x997A, + 0xC17C, 0x9981, 0xC17D, 0x9982, 0xC17E, 0x9983, 0xC17F, 0x9984, + 0xC180, 0x9985, 0xC181, 0x9986, 0xC182, 0x9987, 0xC183, 0x9988, + 0xC184, 0x9989, 0xC185, 0xBCD1, 0xC186, 0x998A, 0xC187, 0x998B, + 0xC188, 0x998C, 0xC189, 0x998D, 0xC18A, 0x998E, 0xC18B, 0x998F, + 0xC18C, 0xBCD2, 0xC18D, 0xBCD3, 0xC18E, 0xBCD4, 0xC18F, 0x9990, + 0xC190, 0xBCD5, 0xC191, 0x9991, 0xC192, 0x9992, 0xC193, 0x9993, + 0xC194, 0xBCD6, 0xC195, 0x9994, 0xC196, 0xBCD7, 0xC197, 0x9995, + 0xC198, 0x9996, 0xC199, 0x9997, 0xC19A, 0x9998, 0xC19B, 0x9999, + 0xC19C, 0xBCD8, 0xC19D, 0xBCD9, 0xC19E, 0x999A, 0xC19F, 0xBCDA, + 0xC1A0, 0x999B, 0xC1A1, 0xBCDB, 0xC1A2, 0x999C, 0xC1A3, 0x999D, + 0xC1A4, 0x999E, 0xC1A5, 0xBCDC, 0xC1A6, 0x999F, 0xC1A7, 0x99A0, + 0xC1A8, 0xBCDD, 0xC1A9, 0xBCDE, 0xC1AA, 0x99A1, 0xC1AB, 0x99A2, + 0xC1AC, 0xBCDF, 0xC1AD, 0x99A3, 0xC1AE, 0x99A4, 0xC1AF, 0x99A5, + 0xC1B0, 0xBCE0, 0xC1B1, 0x99A6, 0xC1B2, 0x99A7, 0xC1B3, 0x99A8, + 0xC1B4, 0x99A9, 0xC1B5, 0x99AA, 0xC1B6, 0x99AB, 0xC1B7, 0x99AC, + 0xC1B8, 0x99AD, 0xC1B9, 0x99AE, 0xC1BA, 0x99AF, 0xC1BB, 0x99B0, + 0xC1BC, 0x99B1, 0xC1BD, 0xBCE1, 0xC1BE, 0x99B2, 0xC1BF, 0x99B3, + 0xC1C0, 0x99B4, 0xC1C1, 0x99B5, 0xC1C2, 0x99B6, 0xC1C3, 0x99B7, + 0xC1C4, 0xBCE2, 0xC1C5, 0x99B8, 0xC1C6, 0x99B9, 0xC1C7, 0x99BA, + 0xC1C8, 0xBCE3, 0xC1C9, 0x99BB, 0xC1CA, 0x99BC, 0xC1CB, 0x99BD, + 0xC1CC, 0xBCE4, 0xC1CD, 0x99BE, 0xC1CE, 0x99BF, 0xC1CF, 0x99C0, + 0xC1D0, 0x99C1, 0xC1D1, 0x99C2, 0xC1D2, 0x99C3, 0xC1D3, 0x99C4, + 0xC1D4, 0xBCE5, 0xC1D5, 0x99C5, 0xC1D6, 0x99C6, 0xC1D7, 0xBCE6, + 0xC1D8, 0xBCE7, 0xC1D9, 0x99C7, 0xC1DA, 0x99C8, 0xC1DB, 0x99C9, + 0xC1DC, 0x99CA, 0xC1DD, 0x99CB, 0xC1DE, 0x99CC, 0xC1DF, 0x99CD, + 0xC1E0, 0xBCE8, 0xC1E1, 0x99CE, 0xC1E2, 0x99CF, 0xC1E3, 0x99D0, + 0xC1E4, 0xBCE9, 0xC1E5, 0x99D1, 0xC1E6, 0x99D2, 0xC1E7, 0x99D3, + 0xC1E8, 0xBCEA, 0xC1E9, 0x99D4, 0xC1EA, 0x99D5, 0xC1EB, 0x99D6, + 0xC1EC, 0x99D7, 0xC1ED, 0x99D8, 0xC1EE, 0x99D9, 0xC1EF, 0x99DA, + 0xC1F0, 0xBCEB, 0xC1F1, 0xBCEC, 0xC1F2, 0x99DB, 0xC1F3, 0xBCED, + 0xC1F4, 0x99DC, 0xC1F5, 0x99DD, 0xC1F6, 0x99DE, 0xC1F7, 0x99DF, + 0xC1F8, 0x99E0, 0xC1F9, 0x99E1, 0xC1FA, 0x99E2, 0xC1FB, 0x99E3, + 0xC1FC, 0xBCEE, 0xC1FD, 0xBCEF, 0xC1FE, 0x99E4, 0xC1FF, 0x99E5, + 0xC200, 0xBCF0, 0xC201, 0x99E6, 0xC202, 0x99E7, 0xC203, 0x99E8, + 0xC204, 0xBCF1, 0xC205, 0x99E9, 0xC206, 0x99EA, 0xC207, 0x99EB, + 0xC208, 0x99EC, 0xC209, 0x99ED, 0xC20A, 0x99EE, 0xC20B, 0x99EF, + 0xC20C, 0xBCF2, 0xC20D, 0xBCF3, 0xC20E, 0x99F0, 0xC20F, 0xBCF4, + 0xC210, 0x99F1, 0xC211, 0xBCF5, 0xC212, 0x99F2, 0xC213, 0x99F3, + 0xC214, 0x99F4, 0xC215, 0x99F5, 0xC216, 0x99F6, 0xC217, 0x99F7, + 0xC218, 0xBCF6, 0xC219, 0xBCF7, 0xC21A, 0x99F8, 0xC21B, 0x99F9, + 0xC21C, 0xBCF8, 0xC21D, 0x99FA, 0xC21E, 0x99FB, 0xC21F, 0xBCF9, + 0xC220, 0xBCFA, 0xC221, 0x99FC, 0xC222, 0x99FD, 0xC223, 0x99FE, + 0xC224, 0x9A41, 0xC225, 0x9A42, 0xC226, 0x9A43, 0xC227, 0x9A44, + 0xC228, 0xBCFB, 0xC229, 0xBCFC, 0xC22A, 0x9A45, 0xC22B, 0xBCFD, + 0xC22C, 0x9A46, 0xC22D, 0xBCFE, 0xC22E, 0x9A47, 0xC22F, 0xBDA1, + 0xC230, 0x9A48, 0xC231, 0xBDA2, 0xC232, 0xBDA3, 0xC233, 0x9A49, + 0xC234, 0xBDA4, 0xC235, 0x9A4A, 0xC236, 0x9A4B, 0xC237, 0x9A4C, + 0xC238, 0x9A4D, 0xC239, 0x9A4E, 0xC23A, 0x9A4F, 0xC23B, 0x9A50, + 0xC23C, 0x9A51, 0xC23D, 0x9A52, 0xC23E, 0x9A53, 0xC23F, 0x9A54, + 0xC240, 0x9A55, 0xC241, 0x9A56, 0xC242, 0x9A57, 0xC243, 0x9A58, + 0xC244, 0x9A59, 0xC245, 0x9A5A, 0xC246, 0x9A61, 0xC247, 0x9A62, + 0xC248, 0xBDA5, 0xC249, 0x9A63, 0xC24A, 0x9A64, 0xC24B, 0x9A65, + 0xC24C, 0x9A66, 0xC24D, 0x9A67, 0xC24E, 0x9A68, 0xC24F, 0x9A69, + 0xC250, 0xBDA6, 0xC251, 0xBDA7, 0xC252, 0x9A6A, 0xC253, 0x9A6B, + 0xC254, 0xBDA8, 0xC255, 0x9A6C, 0xC256, 0x9A6D, 0xC257, 0x9A6E, + 0xC258, 0xBDA9, 0xC259, 0x9A6F, 0xC25A, 0x9A70, 0xC25B, 0x9A71, + 0xC25C, 0x9A72, 0xC25D, 0x9A73, 0xC25E, 0x9A74, 0xC25F, 0x9A75, + 0xC260, 0xBDAA, 0xC261, 0x9A76, 0xC262, 0x9A77, 0xC263, 0x9A78, + 0xC264, 0x9A79, 0xC265, 0xBDAB, 0xC266, 0x9A7A, 0xC267, 0x9A81, + 0xC268, 0x9A82, 0xC269, 0x9A83, 0xC26A, 0x9A84, 0xC26B, 0x9A85, + 0xC26C, 0xBDAC, 0xC26D, 0xBDAD, 0xC26E, 0x9A86, 0xC26F, 0x9A87, + 0xC270, 0xBDAE, 0xC271, 0x9A88, 0xC272, 0x9A89, 0xC273, 0x9A8A, + 0xC274, 0xBDAF, 0xC275, 0x9A8B, 0xC276, 0x9A8C, 0xC277, 0x9A8D, + 0xC278, 0x9A8E, 0xC279, 0x9A8F, 0xC27A, 0x9A90, 0xC27B, 0x9A91, + 0xC27C, 0xBDB0, 0xC27D, 0xBDB1, 0xC27E, 0x9A92, 0xC27F, 0xBDB2, + 0xC280, 0x9A93, 0xC281, 0xBDB3, 0xC282, 0x9A94, 0xC283, 0x9A95, + 0xC284, 0x9A96, 0xC285, 0x9A97, 0xC286, 0x9A98, 0xC287, 0x9A99, + 0xC288, 0xBDB4, 0xC289, 0xBDB5, 0xC28A, 0x9A9A, 0xC28B, 0x9A9B, + 0xC28C, 0x9A9C, 0xC28D, 0x9A9D, 0xC28E, 0x9A9E, 0xC28F, 0x9A9F, + 0xC290, 0xBDB6, 0xC291, 0x9AA0, 0xC292, 0x9AA1, 0xC293, 0x9AA2, + 0xC294, 0x9AA3, 0xC295, 0x9AA4, 0xC296, 0x9AA5, 0xC297, 0x9AA6, + 0xC298, 0xBDB7, 0xC299, 0x9AA7, 0xC29A, 0x9AA8, 0xC29B, 0xBDB8, + 0xC29C, 0x9AA9, 0xC29D, 0xBDB9, 0xC29E, 0x9AAA, 0xC29F, 0x9AAB, + 0xC2A0, 0x9AAC, 0xC2A1, 0x9AAD, 0xC2A2, 0x9AAE, 0xC2A3, 0x9AAF, + 0xC2A4, 0xBDBA, 0xC2A5, 0xBDBB, 0xC2A6, 0x9AB0, 0xC2A7, 0x9AB1, + 0xC2A8, 0xBDBC, 0xC2A9, 0x9AB2, 0xC2AA, 0x9AB3, 0xC2AB, 0x9AB4, + 0xC2AC, 0xBDBD, 0xC2AD, 0xBDBE, 0xC2AE, 0x9AB5, 0xC2AF, 0x9AB6, + 0xC2B0, 0x9AB7, 0xC2B1, 0x9AB8, 0xC2B2, 0x9AB9, 0xC2B3, 0x9ABA, + 0xC2B4, 0xBDBF, 0xC2B5, 0xBDC0, 0xC2B6, 0x9ABB, 0xC2B7, 0xBDC1, + 0xC2B8, 0x9ABC, 0xC2B9, 0xBDC2, 0xC2BA, 0x9ABD, 0xC2BB, 0x9ABE, + 0xC2BC, 0x9ABF, 0xC2BD, 0x9AC0, 0xC2BE, 0x9AC1, 0xC2BF, 0x9AC2, + 0xC2C0, 0x9AC3, 0xC2C1, 0x9AC4, 0xC2C2, 0x9AC5, 0xC2C3, 0x9AC6, + 0xC2C4, 0x9AC7, 0xC2C5, 0x9AC8, 0xC2C6, 0x9AC9, 0xC2C7, 0x9ACA, + 0xC2C8, 0x9ACB, 0xC2C9, 0x9ACC, 0xC2CA, 0x9ACD, 0xC2CB, 0x9ACE, + 0xC2CC, 0x9ACF, 0xC2CD, 0x9AD0, 0xC2CE, 0x9AD1, 0xC2CF, 0x9AD2, + 0xC2D0, 0x9AD3, 0xC2D1, 0x9AD4, 0xC2D2, 0x9AD5, 0xC2D3, 0x9AD6, + 0xC2D4, 0x9AD7, 0xC2D5, 0x9AD8, 0xC2D6, 0x9AD9, 0xC2D7, 0x9ADA, + 0xC2D8, 0x9ADB, 0xC2D9, 0x9ADC, 0xC2DA, 0x9ADD, 0xC2DB, 0x9ADE, + 0xC2DC, 0xBDC3, 0xC2DD, 0xBDC4, 0xC2DE, 0x9ADF, 0xC2DF, 0x9AE0, + 0xC2E0, 0xBDC5, 0xC2E1, 0x9AE1, 0xC2E2, 0x9AE2, 0xC2E3, 0xBDC6, + 0xC2E4, 0xBDC7, 0xC2E5, 0x9AE3, 0xC2E6, 0x9AE4, 0xC2E7, 0x9AE5, + 0xC2E8, 0x9AE6, 0xC2E9, 0x9AE7, 0xC2EA, 0x9AE8, 0xC2EB, 0xBDC8, + 0xC2EC, 0xBDC9, 0xC2ED, 0xBDCA, 0xC2EE, 0x9AE9, 0xC2EF, 0xBDCB, + 0xC2F0, 0x9AEA, 0xC2F1, 0xBDCC, 0xC2F2, 0x9AEB, 0xC2F3, 0x9AEC, + 0xC2F4, 0x9AED, 0xC2F5, 0x9AEE, 0xC2F6, 0xBDCD, 0xC2F7, 0x9AEF, + 0xC2F8, 0xBDCE, 0xC2F9, 0xBDCF, 0xC2FA, 0x9AF0, 0xC2FB, 0xBDD0, + 0xC2FC, 0xBDD1, 0xC2FD, 0x9AF1, 0xC2FE, 0x9AF2, 0xC2FF, 0x9AF3, + 0xC300, 0xBDD2, 0xC301, 0x9AF4, 0xC302, 0x9AF5, 0xC303, 0x9AF6, + 0xC304, 0x9AF7, 0xC305, 0x9AF8, 0xC306, 0x9AF9, 0xC307, 0x9AFA, + 0xC308, 0xBDD3, 0xC309, 0xBDD4, 0xC30A, 0x9AFB, 0xC30B, 0x9AFC, + 0xC30C, 0xBDD5, 0xC30D, 0xBDD6, 0xC30E, 0x9AFD, 0xC30F, 0x9AFE, + 0xC310, 0x9B41, 0xC311, 0x9B42, 0xC312, 0x9B43, 0xC313, 0xBDD7, + 0xC314, 0xBDD8, 0xC315, 0xBDD9, 0xC316, 0x9B44, 0xC317, 0x9B45, + 0xC318, 0xBDDA, 0xC319, 0x9B46, 0xC31A, 0x9B47, 0xC31B, 0x9B48, + 0xC31C, 0xBDDB, 0xC31D, 0x9B49, 0xC31E, 0x9B4A, 0xC31F, 0x9B4B, + 0xC320, 0x9B4C, 0xC321, 0x9B4D, 0xC322, 0x9B4E, 0xC323, 0x9B4F, + 0xC324, 0xBDDC, 0xC325, 0xBDDD, 0xC326, 0x9B50, 0xC327, 0x9B51, + 0xC328, 0xBDDE, 0xC329, 0xBDDF, 0xC32A, 0x9B52, 0xC32B, 0x9B53, + 0xC32C, 0x9B54, 0xC32D, 0x9B55, 0xC32E, 0x9B56, 0xC32F, 0x9B57, + 0xC330, 0x9B58, 0xC331, 0x9B59, 0xC332, 0x9B5A, 0xC333, 0x9B61, + 0xC334, 0x9B62, 0xC335, 0x9B63, 0xC336, 0x9B64, 0xC337, 0x9B65, + 0xC338, 0x9B66, 0xC339, 0x9B67, 0xC33A, 0x9B68, 0xC33B, 0x9B69, + 0xC33C, 0x9B6A, 0xC33D, 0x9B6B, 0xC33E, 0x9B6C, 0xC33F, 0x9B6D, + 0xC340, 0x9B6E, 0xC341, 0x9B6F, 0xC342, 0x9B70, 0xC343, 0x9B71, + 0xC344, 0x9B72, 0xC345, 0xBDE0, 0xC346, 0x9B73, 0xC347, 0x9B74, + 0xC348, 0x9B75, 0xC349, 0x9B76, 0xC34A, 0x9B77, 0xC34B, 0x9B78, + 0xC34C, 0x9B79, 0xC34D, 0x9B7A, 0xC34E, 0x9B81, 0xC34F, 0x9B82, + 0xC350, 0x9B83, 0xC351, 0x9B84, 0xC352, 0x9B85, 0xC353, 0x9B86, + 0xC354, 0x9B87, 0xC355, 0x9B88, 0xC356, 0x9B89, 0xC357, 0x9B8A, + 0xC358, 0x9B8B, 0xC359, 0x9B8C, 0xC35A, 0x9B8D, 0xC35B, 0x9B8E, + 0xC35C, 0x9B8F, 0xC35D, 0x9B90, 0xC35E, 0x9B91, 0xC35F, 0x9B92, + 0xC360, 0x9B93, 0xC361, 0x9B94, 0xC362, 0x9B95, 0xC363, 0x9B96, + 0xC364, 0x9B97, 0xC365, 0x9B98, 0xC366, 0x9B99, 0xC367, 0x9B9A, + 0xC368, 0xBDE1, 0xC369, 0xBDE2, 0xC36A, 0x9B9B, 0xC36B, 0x9B9C, + 0xC36C, 0xBDE3, 0xC36D, 0x9B9D, 0xC36E, 0x9B9E, 0xC36F, 0x9B9F, + 0xC370, 0xBDE4, 0xC371, 0x9BA0, 0xC372, 0xBDE5, 0xC373, 0x9BA1, + 0xC374, 0x9BA2, 0xC375, 0x9BA3, 0xC376, 0x9BA4, 0xC377, 0x9BA5, + 0xC378, 0xBDE6, 0xC379, 0xBDE7, 0xC37A, 0x9BA6, 0xC37B, 0x9BA7, + 0xC37C, 0xBDE8, 0xC37D, 0xBDE9, 0xC37E, 0x9BA8, 0xC37F, 0x9BA9, + 0xC380, 0x9BAA, 0xC381, 0x9BAB, 0xC382, 0x9BAC, 0xC383, 0x9BAD, + 0xC384, 0xBDEA, 0xC385, 0x9BAE, 0xC386, 0x9BAF, 0xC387, 0x9BB0, + 0xC388, 0xBDEB, 0xC389, 0x9BB1, 0xC38A, 0x9BB2, 0xC38B, 0x9BB3, + 0xC38C, 0xBDEC, 0xC38D, 0x9BB4, 0xC38E, 0x9BB5, 0xC38F, 0x9BB6, + 0xC390, 0x9BB7, 0xC391, 0x9BB8, 0xC392, 0x9BB9, 0xC393, 0x9BBA, + 0xC394, 0x9BBB, 0xC395, 0x9BBC, 0xC396, 0x9BBD, 0xC397, 0x9BBE, + 0xC398, 0x9BBF, 0xC399, 0x9BC0, 0xC39A, 0x9BC1, 0xC39B, 0x9BC2, + 0xC39C, 0x9BC3, 0xC39D, 0x9BC4, 0xC39E, 0x9BC5, 0xC39F, 0x9BC6, + 0xC3A0, 0x9BC7, 0xC3A1, 0x9BC8, 0xC3A2, 0x9BC9, 0xC3A3, 0x9BCA, + 0xC3A4, 0x9BCB, 0xC3A5, 0x9BCC, 0xC3A6, 0x9BCD, 0xC3A7, 0x9BCE, + 0xC3A8, 0x9BCF, 0xC3A9, 0x9BD0, 0xC3AA, 0x9BD1, 0xC3AB, 0x9BD2, + 0xC3AC, 0x9BD3, 0xC3AD, 0x9BD4, 0xC3AE, 0x9BD5, 0xC3AF, 0x9BD6, + 0xC3B0, 0x9BD7, 0xC3B1, 0x9BD8, 0xC3B2, 0x9BD9, 0xC3B3, 0x9BDA, + 0xC3B4, 0x9BDB, 0xC3B5, 0x9BDC, 0xC3B6, 0x9BDD, 0xC3B7, 0x9BDE, + 0xC3B8, 0x9BDF, 0xC3B9, 0x9BE0, 0xC3BA, 0x9BE1, 0xC3BB, 0x9BE2, + 0xC3BC, 0x9BE3, 0xC3BD, 0x9BE4, 0xC3BE, 0x9BE5, 0xC3BF, 0x9BE6, + 0xC3C0, 0xBDED, 0xC3C1, 0x9BE7, 0xC3C2, 0x9BE8, 0xC3C3, 0x9BE9, + 0xC3C4, 0x9BEA, 0xC3C5, 0x9BEB, 0xC3C6, 0x9BEC, 0xC3C7, 0x9BED, + 0xC3C8, 0x9BEE, 0xC3C9, 0x9BEF, 0xC3CA, 0x9BF0, 0xC3CB, 0x9BF1, + 0xC3CC, 0x9BF2, 0xC3CD, 0x9BF3, 0xC3CE, 0x9BF4, 0xC3CF, 0x9BF5, + 0xC3D0, 0x9BF6, 0xC3D1, 0x9BF7, 0xC3D2, 0x9BF8, 0xC3D3, 0x9BF9, + 0xC3D4, 0x9BFA, 0xC3D5, 0x9BFB, 0xC3D6, 0x9BFC, 0xC3D7, 0x9BFD, + 0xC3D8, 0xBDEE, 0xC3D9, 0xBDEF, 0xC3DA, 0x9BFE, 0xC3DB, 0x9C41, + 0xC3DC, 0xBDF0, 0xC3DD, 0x9C42, 0xC3DE, 0x9C43, 0xC3DF, 0xBDF1, + 0xC3E0, 0xBDF2, 0xC3E1, 0x9C44, 0xC3E2, 0xBDF3, 0xC3E3, 0x9C45, + 0xC3E4, 0x9C46, 0xC3E5, 0x9C47, 0xC3E6, 0x9C48, 0xC3E7, 0x9C49, + 0xC3E8, 0xBDF4, 0xC3E9, 0xBDF5, 0xC3EA, 0x9C4A, 0xC3EB, 0x9C4B, + 0xC3EC, 0x9C4C, 0xC3ED, 0xBDF6, 0xC3EE, 0x9C4D, 0xC3EF, 0x9C4E, + 0xC3F0, 0x9C4F, 0xC3F1, 0x9C50, 0xC3F2, 0x9C51, 0xC3F3, 0x9C52, + 0xC3F4, 0xBDF7, 0xC3F5, 0xBDF8, 0xC3F6, 0x9C53, 0xC3F7, 0x9C54, + 0xC3F8, 0xBDF9, 0xC3F9, 0x9C55, 0xC3FA, 0x9C56, 0xC3FB, 0x9C57, + 0xC3FC, 0x9C58, 0xC3FD, 0x9C59, 0xC3FE, 0x9C5A, 0xC3FF, 0x9C61, + 0xC400, 0x9C62, 0xC401, 0x9C63, 0xC402, 0x9C64, 0xC403, 0x9C65, + 0xC404, 0x9C66, 0xC405, 0x9C67, 0xC406, 0x9C68, 0xC407, 0x9C69, + 0xC408, 0xBDFA, 0xC409, 0x9C6A, 0xC40A, 0x9C6B, 0xC40B, 0x9C6C, + 0xC40C, 0x9C6D, 0xC40D, 0x9C6E, 0xC40E, 0x9C6F, 0xC40F, 0x9C70, + 0xC410, 0xBDFB, 0xC411, 0x9C71, 0xC412, 0x9C72, 0xC413, 0x9C73, + 0xC414, 0x9C74, 0xC415, 0x9C75, 0xC416, 0x9C76, 0xC417, 0x9C77, + 0xC418, 0x9C78, 0xC419, 0x9C79, 0xC41A, 0x9C7A, 0xC41B, 0x9C81, + 0xC41C, 0x9C82, 0xC41D, 0x9C83, 0xC41E, 0x9C84, 0xC41F, 0x9C85, + 0xC420, 0x9C86, 0xC421, 0x9C87, 0xC422, 0x9C88, 0xC423, 0x9C89, + 0xC424, 0xBDFC, 0xC425, 0x9C8A, 0xC426, 0x9C8B, 0xC427, 0x9C8C, + 0xC428, 0x9C8D, 0xC429, 0x9C8E, 0xC42A, 0x9C8F, 0xC42B, 0x9C90, + 0xC42C, 0xBDFD, 0xC42D, 0x9C91, 0xC42E, 0x9C92, 0xC42F, 0x9C93, + 0xC430, 0xBDFE, 0xC431, 0x9C94, 0xC432, 0x9C95, 0xC433, 0x9C96, + 0xC434, 0xBEA1, 0xC435, 0x9C97, 0xC436, 0x9C98, 0xC437, 0x9C99, + 0xC438, 0x9C9A, 0xC439, 0x9C9B, 0xC43A, 0x9C9C, 0xC43B, 0x9C9D, + 0xC43C, 0xBEA2, 0xC43D, 0xBEA3, 0xC43E, 0x9C9E, 0xC43F, 0x9C9F, + 0xC440, 0x9CA0, 0xC441, 0x9CA1, 0xC442, 0x9CA2, 0xC443, 0x9CA3, + 0xC444, 0x9CA4, 0xC445, 0x9CA5, 0xC446, 0x9CA6, 0xC447, 0x9CA7, + 0xC448, 0xBEA4, 0xC449, 0x9CA8, 0xC44A, 0x9CA9, 0xC44B, 0x9CAA, + 0xC44C, 0x9CAB, 0xC44D, 0x9CAC, 0xC44E, 0x9CAD, 0xC44F, 0x9CAE, + 0xC450, 0x9CAF, 0xC451, 0x9CB0, 0xC452, 0x9CB1, 0xC453, 0x9CB2, + 0xC454, 0x9CB3, 0xC455, 0x9CB4, 0xC456, 0x9CB5, 0xC457, 0x9CB6, + 0xC458, 0x9CB7, 0xC459, 0x9CB8, 0xC45A, 0x9CB9, 0xC45B, 0x9CBA, + 0xC45C, 0x9CBB, 0xC45D, 0x9CBC, 0xC45E, 0x9CBD, 0xC45F, 0x9CBE, + 0xC460, 0x9CBF, 0xC461, 0x9CC0, 0xC462, 0x9CC1, 0xC463, 0x9CC2, + 0xC464, 0xBEA5, 0xC465, 0xBEA6, 0xC466, 0x9CC3, 0xC467, 0x9CC4, + 0xC468, 0xBEA7, 0xC469, 0x9CC5, 0xC46A, 0x9CC6, 0xC46B, 0x9CC7, + 0xC46C, 0xBEA8, 0xC46D, 0x9CC8, 0xC46E, 0x9CC9, 0xC46F, 0x9CCA, + 0xC470, 0x9CCB, 0xC471, 0x9CCC, 0xC472, 0x9CCD, 0xC473, 0x9CCE, + 0xC474, 0xBEA9, 0xC475, 0xBEAA, 0xC476, 0x9CCF, 0xC477, 0x9CD0, + 0xC478, 0x9CD1, 0xC479, 0xBEAB, 0xC47A, 0x9CD2, 0xC47B, 0x9CD3, + 0xC47C, 0x9CD4, 0xC47D, 0x9CD5, 0xC47E, 0x9CD6, 0xC47F, 0x9CD7, + 0xC480, 0xBEAC, 0xC481, 0x9CD8, 0xC482, 0x9CD9, 0xC483, 0x9CDA, + 0xC484, 0x9CDB, 0xC485, 0x9CDC, 0xC486, 0x9CDD, 0xC487, 0x9CDE, + 0xC488, 0x9CDF, 0xC489, 0x9CE0, 0xC48A, 0x9CE1, 0xC48B, 0x9CE2, + 0xC48C, 0x9CE3, 0xC48D, 0x9CE4, 0xC48E, 0x9CE5, 0xC48F, 0x9CE6, + 0xC490, 0x9CE7, 0xC491, 0x9CE8, 0xC492, 0x9CE9, 0xC493, 0x9CEA, + 0xC494, 0xBEAD, 0xC495, 0x9CEB, 0xC496, 0x9CEC, 0xC497, 0x9CED, + 0xC498, 0x9CEE, 0xC499, 0x9CEF, 0xC49A, 0x9CF0, 0xC49B, 0x9CF1, + 0xC49C, 0xBEAE, 0xC49D, 0x9CF2, 0xC49E, 0x9CF3, 0xC49F, 0x9CF4, + 0xC4A0, 0x9CF5, 0xC4A1, 0x9CF6, 0xC4A2, 0x9CF7, 0xC4A3, 0x9CF8, + 0xC4A4, 0x9CF9, 0xC4A5, 0x9CFA, 0xC4A6, 0x9CFB, 0xC4A7, 0x9CFC, + 0xC4A8, 0x9CFD, 0xC4A9, 0x9CFE, 0xC4AA, 0x9D41, 0xC4AB, 0x9D42, + 0xC4AC, 0x9D43, 0xC4AD, 0x9D44, 0xC4AE, 0x9D45, 0xC4AF, 0x9D46, + 0xC4B0, 0x9D47, 0xC4B1, 0x9D48, 0xC4B2, 0x9D49, 0xC4B3, 0x9D4A, + 0xC4B4, 0x9D4B, 0xC4B5, 0x9D4C, 0xC4B6, 0x9D4D, 0xC4B7, 0x9D4E, + 0xC4B8, 0xBEAF, 0xC4B9, 0x9D4F, 0xC4BA, 0x9D50, 0xC4BB, 0x9D51, + 0xC4BC, 0xBEB0, 0xC4BD, 0x9D52, 0xC4BE, 0x9D53, 0xC4BF, 0x9D54, + 0xC4C0, 0x9D55, 0xC4C1, 0x9D56, 0xC4C2, 0x9D57, 0xC4C3, 0x9D58, + 0xC4C4, 0x9D59, 0xC4C5, 0x9D5A, 0xC4C6, 0x9D61, 0xC4C7, 0x9D62, + 0xC4C8, 0x9D63, 0xC4C9, 0x9D64, 0xC4CA, 0x9D65, 0xC4CB, 0x9D66, + 0xC4CC, 0x9D67, 0xC4CD, 0x9D68, 0xC4CE, 0x9D69, 0xC4CF, 0x9D6A, + 0xC4D0, 0x9D6B, 0xC4D1, 0x9D6C, 0xC4D2, 0x9D6D, 0xC4D3, 0x9D6E, + 0xC4D4, 0x9D6F, 0xC4D5, 0x9D70, 0xC4D6, 0x9D71, 0xC4D7, 0x9D72, + 0xC4D8, 0x9D73, 0xC4D9, 0x9D74, 0xC4DA, 0x9D75, 0xC4DB, 0x9D76, + 0xC4DC, 0x9D77, 0xC4DD, 0x9D78, 0xC4DE, 0x9D79, 0xC4DF, 0x9D7A, + 0xC4E0, 0x9D81, 0xC4E1, 0x9D82, 0xC4E2, 0x9D83, 0xC4E3, 0x9D84, + 0xC4E4, 0x9D85, 0xC4E5, 0x9D86, 0xC4E6, 0x9D87, 0xC4E7, 0x9D88, + 0xC4E8, 0x9D89, 0xC4E9, 0xBEB1, 0xC4EA, 0x9D8A, 0xC4EB, 0x9D8B, + 0xC4EC, 0x9D8C, 0xC4ED, 0x9D8D, 0xC4EE, 0x9D8E, 0xC4EF, 0x9D8F, + 0xC4F0, 0xBEB2, 0xC4F1, 0xBEB3, 0xC4F2, 0x9D90, 0xC4F3, 0x9D91, + 0xC4F4, 0xBEB4, 0xC4F5, 0x9D92, 0xC4F6, 0x9D93, 0xC4F7, 0x9D94, + 0xC4F8, 0xBEB5, 0xC4F9, 0x9D95, 0xC4FA, 0xBEB6, 0xC4FB, 0x9D96, + 0xC4FC, 0x9D97, 0xC4FD, 0x9D98, 0xC4FE, 0x9D99, 0xC4FF, 0xBEB7, + 0xC500, 0xBEB8, 0xC501, 0xBEB9, 0xC502, 0x9D9A, 0xC503, 0x9D9B, + 0xC504, 0x9D9C, 0xC505, 0x9D9D, 0xC506, 0x9D9E, 0xC507, 0x9D9F, + 0xC508, 0x9DA0, 0xC509, 0x9DA1, 0xC50A, 0x9DA2, 0xC50B, 0x9DA3, + 0xC50C, 0xBEBA, 0xC50D, 0x9DA4, 0xC50E, 0x9DA5, 0xC50F, 0x9DA6, + 0xC510, 0xBEBB, 0xC511, 0x9DA7, 0xC512, 0x9DA8, 0xC513, 0x9DA9, + 0xC514, 0xBEBC, 0xC515, 0x9DAA, 0xC516, 0x9DAB, 0xC517, 0x9DAC, + 0xC518, 0x9DAD, 0xC519, 0x9DAE, 0xC51A, 0x9DAF, 0xC51B, 0x9DB0, + 0xC51C, 0xBEBD, 0xC51D, 0x9DB1, 0xC51E, 0x9DB2, 0xC51F, 0x9DB3, + 0xC520, 0x9DB4, 0xC521, 0x9DB5, 0xC522, 0x9DB6, 0xC523, 0x9DB7, + 0xC524, 0x9DB8, 0xC525, 0x9DB9, 0xC526, 0x9DBA, 0xC527, 0x9DBB, + 0xC528, 0xBEBE, 0xC529, 0xBEBF, 0xC52A, 0x9DBC, 0xC52B, 0x9DBD, + 0xC52C, 0xBEC0, 0xC52D, 0x9DBE, 0xC52E, 0x9DBF, 0xC52F, 0x9DC0, + 0xC530, 0xBEC1, 0xC531, 0x9DC1, 0xC532, 0x9DC2, 0xC533, 0x9DC3, + 0xC534, 0x9DC4, 0xC535, 0x9DC5, 0xC536, 0x9DC6, 0xC537, 0x9DC7, + 0xC538, 0xBEC2, 0xC539, 0xBEC3, 0xC53A, 0x9DC8, 0xC53B, 0xBEC4, + 0xC53C, 0x9DC9, 0xC53D, 0xBEC5, 0xC53E, 0x9DCA, 0xC53F, 0x9DCB, + 0xC540, 0x9DCC, 0xC541, 0x9DCD, 0xC542, 0x9DCE, 0xC543, 0x9DCF, + 0xC544, 0xBEC6, 0xC545, 0xBEC7, 0xC546, 0x9DD0, 0xC547, 0x9DD1, + 0xC548, 0xBEC8, 0xC549, 0xBEC9, 0xC54A, 0xBECA, 0xC54B, 0x9DD2, + 0xC54C, 0xBECB, 0xC54D, 0xBECC, 0xC54E, 0xBECD, 0xC54F, 0x9DD3, + 0xC550, 0x9DD4, 0xC551, 0x9DD5, 0xC552, 0x9DD6, 0xC553, 0xBECE, + 0xC554, 0xBECF, 0xC555, 0xBED0, 0xC556, 0x9DD7, 0xC557, 0xBED1, + 0xC558, 0xBED2, 0xC559, 0xBED3, 0xC55A, 0x9DD8, 0xC55B, 0x9DD9, + 0xC55C, 0x9DDA, 0xC55D, 0xBED4, 0xC55E, 0xBED5, 0xC55F, 0x9DDB, + 0xC560, 0xBED6, 0xC561, 0xBED7, 0xC562, 0x9DDC, 0xC563, 0x9DDD, + 0xC564, 0xBED8, 0xC565, 0x9DDE, 0xC566, 0x9DDF, 0xC567, 0x9DE0, + 0xC568, 0xBED9, 0xC569, 0x9DE1, 0xC56A, 0x9DE2, 0xC56B, 0x9DE3, + 0xC56C, 0x9DE4, 0xC56D, 0x9DE5, 0xC56E, 0x9DE6, 0xC56F, 0x9DE7, + 0xC570, 0xBEDA, 0xC571, 0xBEDB, 0xC572, 0x9DE8, 0xC573, 0xBEDC, + 0xC574, 0xBEDD, 0xC575, 0xBEDE, 0xC576, 0x9DE9, 0xC577, 0x9DEA, + 0xC578, 0x9DEB, 0xC579, 0x9DEC, 0xC57A, 0x9DED, 0xC57B, 0x9DEE, + 0xC57C, 0xBEDF, 0xC57D, 0xBEE0, 0xC57E, 0x9DEF, 0xC57F, 0x9DF0, + 0xC580, 0xBEE1, 0xC581, 0x9DF1, 0xC582, 0x9DF2, 0xC583, 0x9DF3, + 0xC584, 0xBEE2, 0xC585, 0x9DF4, 0xC586, 0x9DF5, 0xC587, 0xBEE3, + 0xC588, 0x9DF6, 0xC589, 0x9DF7, 0xC58A, 0x9DF8, 0xC58B, 0x9DF9, + 0xC58C, 0xBEE4, 0xC58D, 0xBEE5, 0xC58E, 0x9DFA, 0xC58F, 0xBEE6, + 0xC590, 0x9DFB, 0xC591, 0xBEE7, 0xC592, 0x9DFC, 0xC593, 0x9DFD, + 0xC594, 0x9DFE, 0xC595, 0xBEE8, 0xC596, 0x9E41, 0xC597, 0xBEE9, + 0xC598, 0xBEEA, 0xC599, 0x9E42, 0xC59A, 0x9E43, 0xC59B, 0x9E44, + 0xC59C, 0xBEEB, 0xC59D, 0x9E45, 0xC59E, 0x9E46, 0xC59F, 0x9E47, + 0xC5A0, 0xBEEC, 0xC5A1, 0x9E48, 0xC5A2, 0x9E49, 0xC5A3, 0x9E4A, + 0xC5A4, 0x9E4B, 0xC5A5, 0x9E4C, 0xC5A6, 0x9E4D, 0xC5A7, 0x9E4E, + 0xC5A8, 0x9E4F, 0xC5A9, 0xBEED, 0xC5AA, 0x9E50, 0xC5AB, 0x9E51, + 0xC5AC, 0x9E52, 0xC5AD, 0x9E53, 0xC5AE, 0x9E54, 0xC5AF, 0x9E55, + 0xC5B0, 0x9E56, 0xC5B1, 0x9E57, 0xC5B2, 0x9E58, 0xC5B3, 0x9E59, + 0xC5B4, 0xBEEE, 0xC5B5, 0xBEEF, 0xC5B6, 0x9E5A, 0xC5B7, 0x9E61, + 0xC5B8, 0xBEF0, 0xC5B9, 0xBEF1, 0xC5BA, 0x9E62, 0xC5BB, 0xBEF2, + 0xC5BC, 0xBEF3, 0xC5BD, 0xBEF4, 0xC5BE, 0xBEF5, 0xC5BF, 0x9E63, + 0xC5C0, 0x9E64, 0xC5C1, 0x9E65, 0xC5C2, 0x9E66, 0xC5C3, 0x9E67, + 0xC5C4, 0xBEF6, 0xC5C5, 0xBEF7, 0xC5C6, 0xBEF8, 0xC5C7, 0xBEF9, + 0xC5C8, 0xBEFA, 0xC5C9, 0xBEFB, 0xC5CA, 0xBEFC, 0xC5CB, 0x9E68, + 0xC5CC, 0xBEFD, 0xC5CD, 0x9E69, 0xC5CE, 0xBEFE, 0xC5CF, 0x9E6A, + 0xC5D0, 0xBFA1, 0xC5D1, 0xBFA2, 0xC5D2, 0x9E6B, 0xC5D3, 0x9E6C, + 0xC5D4, 0xBFA3, 0xC5D5, 0x9E6D, 0xC5D6, 0x9E6E, 0xC5D7, 0x9E6F, + 0xC5D8, 0xBFA4, 0xC5D9, 0x9E70, 0xC5DA, 0x9E71, 0xC5DB, 0x9E72, + 0xC5DC, 0x9E73, 0xC5DD, 0x9E74, 0xC5DE, 0x9E75, 0xC5DF, 0x9E76, + 0xC5E0, 0xBFA5, 0xC5E1, 0xBFA6, 0xC5E2, 0x9E77, 0xC5E3, 0xBFA7, + 0xC5E4, 0x9E78, 0xC5E5, 0xBFA8, 0xC5E6, 0x9E79, 0xC5E7, 0x9E7A, + 0xC5E8, 0x9E81, 0xC5E9, 0x9E82, 0xC5EA, 0x9E83, 0xC5EB, 0x9E84, + 0xC5EC, 0xBFA9, 0xC5ED, 0xBFAA, 0xC5EE, 0xBFAB, 0xC5EF, 0x9E85, + 0xC5F0, 0xBFAC, 0xC5F1, 0x9E86, 0xC5F2, 0x9E87, 0xC5F3, 0x9E88, + 0xC5F4, 0xBFAD, 0xC5F5, 0x9E89, 0xC5F6, 0xBFAE, 0xC5F7, 0xBFAF, + 0xC5F8, 0x9E8A, 0xC5F9, 0x9E8B, 0xC5FA, 0x9E8C, 0xC5FB, 0x9E8D, + 0xC5FC, 0xBFB0, 0xC5FD, 0xBFB1, 0xC5FE, 0xBFB2, 0xC5FF, 0xBFB3, + 0xC600, 0xBFB4, 0xC601, 0xBFB5, 0xC602, 0x9E8E, 0xC603, 0x9E8F, + 0xC604, 0x9E90, 0xC605, 0xBFB6, 0xC606, 0xBFB7, 0xC607, 0xBFB8, + 0xC608, 0xBFB9, 0xC609, 0x9E91, 0xC60A, 0x9E92, 0xC60B, 0x9E93, + 0xC60C, 0xBFBA, 0xC60D, 0x9E94, 0xC60E, 0x9E95, 0xC60F, 0x9E96, + 0xC610, 0xBFBB, 0xC611, 0x9E97, 0xC612, 0x9E98, 0xC613, 0x9E99, + 0xC614, 0x9E9A, 0xC615, 0x9E9B, 0xC616, 0x9E9C, 0xC617, 0x9E9D, + 0xC618, 0xBFBC, 0xC619, 0xBFBD, 0xC61A, 0x9E9E, 0xC61B, 0xBFBE, + 0xC61C, 0xBFBF, 0xC61D, 0x9E9F, 0xC61E, 0x9EA0, 0xC61F, 0x9EA1, + 0xC620, 0x9EA2, 0xC621, 0x9EA3, 0xC622, 0x9EA4, 0xC623, 0x9EA5, + 0xC624, 0xBFC0, 0xC625, 0xBFC1, 0xC626, 0x9EA6, 0xC627, 0x9EA7, + 0xC628, 0xBFC2, 0xC629, 0x9EA8, 0xC62A, 0x9EA9, 0xC62B, 0x9EAA, + 0xC62C, 0xBFC3, 0xC62D, 0xBFC4, 0xC62E, 0xBFC5, 0xC62F, 0x9EAB, + 0xC630, 0xBFC6, 0xC631, 0x9EAC, 0xC632, 0x9EAD, 0xC633, 0xBFC7, + 0xC634, 0xBFC8, 0xC635, 0xBFC9, 0xC636, 0x9EAE, 0xC637, 0xBFCA, + 0xC638, 0x9EAF, 0xC639, 0xBFCB, 0xC63A, 0x9EB0, 0xC63B, 0xBFCC, + 0xC63C, 0x9EB1, 0xC63D, 0x9EB2, 0xC63E, 0x9EB3, 0xC63F, 0x9EB4, + 0xC640, 0xBFCD, 0xC641, 0xBFCE, 0xC642, 0x9EB5, 0xC643, 0x9EB6, + 0xC644, 0xBFCF, 0xC645, 0x9EB7, 0xC646, 0x9EB8, 0xC647, 0x9EB9, + 0xC648, 0xBFD0, 0xC649, 0x9EBA, 0xC64A, 0x9EBB, 0xC64B, 0x9EBC, + 0xC64C, 0x9EBD, 0xC64D, 0x9EBE, 0xC64E, 0x9EBF, 0xC64F, 0x9EC0, + 0xC650, 0xBFD1, 0xC651, 0xBFD2, 0xC652, 0x9EC1, 0xC653, 0xBFD3, + 0xC654, 0xBFD4, 0xC655, 0xBFD5, 0xC656, 0x9EC2, 0xC657, 0x9EC3, + 0xC658, 0x9EC4, 0xC659, 0x9EC5, 0xC65A, 0x9EC6, 0xC65B, 0x9EC7, + 0xC65C, 0xBFD6, 0xC65D, 0xBFD7, 0xC65E, 0x9EC8, 0xC65F, 0x9EC9, + 0xC660, 0xBFD8, 0xC661, 0x9ECA, 0xC662, 0x9ECB, 0xC663, 0x9ECC, + 0xC664, 0x9ECD, 0xC665, 0x9ECE, 0xC666, 0x9ECF, 0xC667, 0x9ED0, + 0xC668, 0x9ED1, 0xC669, 0x9ED2, 0xC66A, 0x9ED3, 0xC66B, 0x9ED4, + 0xC66C, 0xBFD9, 0xC66D, 0x9ED5, 0xC66E, 0x9ED6, 0xC66F, 0xBFDA, + 0xC670, 0x9ED7, 0xC671, 0xBFDB, 0xC672, 0x9ED8, 0xC673, 0x9ED9, + 0xC674, 0x9EDA, 0xC675, 0x9EDB, 0xC676, 0x9EDC, 0xC677, 0x9EDD, + 0xC678, 0xBFDC, 0xC679, 0xBFDD, 0xC67A, 0x9EDE, 0xC67B, 0x9EDF, + 0xC67C, 0xBFDE, 0xC67D, 0x9EE0, 0xC67E, 0x9EE1, 0xC67F, 0x9EE2, + 0xC680, 0xBFDF, 0xC681, 0x9EE3, 0xC682, 0x9EE4, 0xC683, 0x9EE5, + 0xC684, 0x9EE6, 0xC685, 0x9EE7, 0xC686, 0x9EE8, 0xC687, 0x9EE9, + 0xC688, 0xBFE0, 0xC689, 0xBFE1, 0xC68A, 0x9EEA, 0xC68B, 0xBFE2, + 0xC68C, 0x9EEB, 0xC68D, 0xBFE3, 0xC68E, 0x9EEC, 0xC68F, 0x9EED, + 0xC690, 0x9EEE, 0xC691, 0x9EEF, 0xC692, 0x9EF0, 0xC693, 0x9EF1, + 0xC694, 0xBFE4, 0xC695, 0xBFE5, 0xC696, 0x9EF2, 0xC697, 0x9EF3, + 0xC698, 0xBFE6, 0xC699, 0x9EF4, 0xC69A, 0x9EF5, 0xC69B, 0x9EF6, + 0xC69C, 0xBFE7, 0xC69D, 0x9EF7, 0xC69E, 0x9EF8, 0xC69F, 0x9EF9, + 0xC6A0, 0x9EFA, 0xC6A1, 0x9EFB, 0xC6A2, 0x9EFC, 0xC6A3, 0x9EFD, + 0xC6A4, 0xBFE8, 0xC6A5, 0xBFE9, 0xC6A6, 0x9EFE, 0xC6A7, 0xBFEA, + 0xC6A8, 0x9F41, 0xC6A9, 0xBFEB, 0xC6AA, 0x9F42, 0xC6AB, 0x9F43, + 0xC6AC, 0x9F44, 0xC6AD, 0x9F45, 0xC6AE, 0x9F46, 0xC6AF, 0x9F47, + 0xC6B0, 0xBFEC, 0xC6B1, 0xBFED, 0xC6B2, 0x9F48, 0xC6B3, 0x9F49, + 0xC6B4, 0xBFEE, 0xC6B5, 0x9F4A, 0xC6B6, 0x9F4B, 0xC6B7, 0x9F4C, + 0xC6B8, 0xBFEF, 0xC6B9, 0xBFF0, 0xC6BA, 0xBFF1, 0xC6BB, 0x9F4D, + 0xC6BC, 0x9F4E, 0xC6BD, 0x9F4F, 0xC6BE, 0x9F50, 0xC6BF, 0x9F51, + 0xC6C0, 0xBFF2, 0xC6C1, 0xBFF3, 0xC6C2, 0x9F52, 0xC6C3, 0xBFF4, + 0xC6C4, 0x9F53, 0xC6C5, 0xBFF5, 0xC6C6, 0x9F54, 0xC6C7, 0x9F55, + 0xC6C8, 0x9F56, 0xC6C9, 0x9F57, 0xC6CA, 0x9F58, 0xC6CB, 0x9F59, + 0xC6CC, 0xBFF6, 0xC6CD, 0xBFF7, 0xC6CE, 0x9F5A, 0xC6CF, 0x9F61, + 0xC6D0, 0xBFF8, 0xC6D1, 0x9F62, 0xC6D2, 0x9F63, 0xC6D3, 0x9F64, + 0xC6D4, 0xBFF9, 0xC6D5, 0x9F65, 0xC6D6, 0x9F66, 0xC6D7, 0x9F67, + 0xC6D8, 0x9F68, 0xC6D9, 0x9F69, 0xC6DA, 0x9F6A, 0xC6DB, 0x9F6B, + 0xC6DC, 0xBFFA, 0xC6DD, 0xBFFB, 0xC6DE, 0x9F6C, 0xC6DF, 0x9F6D, + 0xC6E0, 0xBFFC, 0xC6E1, 0xBFFD, 0xC6E2, 0x9F6E, 0xC6E3, 0x9F6F, + 0xC6E4, 0x9F70, 0xC6E5, 0x9F71, 0xC6E6, 0x9F72, 0xC6E7, 0x9F73, + 0xC6E8, 0xBFFE, 0xC6E9, 0xC0A1, 0xC6EA, 0x9F74, 0xC6EB, 0x9F75, + 0xC6EC, 0xC0A2, 0xC6ED, 0x9F76, 0xC6EE, 0x9F77, 0xC6EF, 0x9F78, + 0xC6F0, 0xC0A3, 0xC6F1, 0x9F79, 0xC6F2, 0x9F7A, 0xC6F3, 0x9F81, + 0xC6F4, 0x9F82, 0xC6F5, 0x9F83, 0xC6F6, 0x9F84, 0xC6F7, 0x9F85, + 0xC6F8, 0xC0A4, 0xC6F9, 0xC0A5, 0xC6FA, 0x9F86, 0xC6FB, 0x9F87, + 0xC6FC, 0x9F88, 0xC6FD, 0xC0A6, 0xC6FE, 0x9F89, 0xC6FF, 0x9F8A, + 0xC700, 0x9F8B, 0xC701, 0x9F8C, 0xC702, 0x9F8D, 0xC703, 0x9F8E, + 0xC704, 0xC0A7, 0xC705, 0xC0A8, 0xC706, 0x9F8F, 0xC707, 0x9F90, + 0xC708, 0xC0A9, 0xC709, 0x9F91, 0xC70A, 0x9F92, 0xC70B, 0x9F93, + 0xC70C, 0xC0AA, 0xC70D, 0x9F94, 0xC70E, 0x9F95, 0xC70F, 0x9F96, + 0xC710, 0x9F97, 0xC711, 0x9F98, 0xC712, 0x9F99, 0xC713, 0x9F9A, + 0xC714, 0xC0AB, 0xC715, 0xC0AC, 0xC716, 0x9F9B, 0xC717, 0xC0AD, + 0xC718, 0x9F9C, 0xC719, 0xC0AE, 0xC71A, 0x9F9D, 0xC71B, 0x9F9E, + 0xC71C, 0x9F9F, 0xC71D, 0x9FA0, 0xC71E, 0x9FA1, 0xC71F, 0x9FA2, + 0xC720, 0xC0AF, 0xC721, 0xC0B0, 0xC722, 0x9FA3, 0xC723, 0x9FA4, + 0xC724, 0xC0B1, 0xC725, 0x9FA5, 0xC726, 0x9FA6, 0xC727, 0x9FA7, + 0xC728, 0xC0B2, 0xC729, 0x9FA8, 0xC72A, 0x9FA9, 0xC72B, 0x9FAA, + 0xC72C, 0x9FAB, 0xC72D, 0x9FAC, 0xC72E, 0x9FAD, 0xC72F, 0x9FAE, + 0xC730, 0xC0B3, 0xC731, 0xC0B4, 0xC732, 0x9FAF, 0xC733, 0xC0B5, + 0xC734, 0x9FB0, 0xC735, 0xC0B6, 0xC736, 0x9FB1, 0xC737, 0xC0B7, + 0xC738, 0x9FB2, 0xC739, 0x9FB3, 0xC73A, 0x9FB4, 0xC73B, 0x9FB5, + 0xC73C, 0xC0B8, 0xC73D, 0xC0B9, 0xC73E, 0x9FB6, 0xC73F, 0x9FB7, + 0xC740, 0xC0BA, 0xC741, 0x9FB8, 0xC742, 0x9FB9, 0xC743, 0x9FBA, + 0xC744, 0xC0BB, 0xC745, 0x9FBB, 0xC746, 0x9FBC, 0xC747, 0x9FBD, + 0xC748, 0x9FBE, 0xC749, 0x9FBF, 0xC74A, 0xC0BC, 0xC74B, 0x9FC0, + 0xC74C, 0xC0BD, 0xC74D, 0xC0BE, 0xC74E, 0x9FC1, 0xC74F, 0xC0BF, + 0xC750, 0x9FC2, 0xC751, 0xC0C0, 0xC752, 0xC0C1, 0xC753, 0xC0C2, + 0xC754, 0xC0C3, 0xC755, 0xC0C4, 0xC756, 0xC0C5, 0xC757, 0xC0C6, + 0xC758, 0xC0C7, 0xC759, 0x9FC3, 0xC75A, 0x9FC4, 0xC75B, 0x9FC5, + 0xC75C, 0xC0C8, 0xC75D, 0x9FC6, 0xC75E, 0x9FC7, 0xC75F, 0x9FC8, + 0xC760, 0xC0C9, 0xC761, 0x9FC9, 0xC762, 0x9FCA, 0xC763, 0x9FCB, + 0xC764, 0x9FCC, 0xC765, 0x9FCD, 0xC766, 0x9FCE, 0xC767, 0x9FCF, + 0xC768, 0xC0CA, 0xC769, 0x9FD0, 0xC76A, 0x9FD1, 0xC76B, 0xC0CB, + 0xC76C, 0x9FD2, 0xC76D, 0x9FD3, 0xC76E, 0x9FD4, 0xC76F, 0x9FD5, + 0xC770, 0x9FD6, 0xC771, 0x9FD7, 0xC772, 0x9FD8, 0xC773, 0x9FD9, + 0xC774, 0xC0CC, 0xC775, 0xC0CD, 0xC776, 0x9FDA, 0xC777, 0x9FDB, + 0xC778, 0xC0CE, 0xC779, 0x9FDC, 0xC77A, 0x9FDD, 0xC77B, 0x9FDE, + 0xC77C, 0xC0CF, 0xC77D, 0xC0D0, 0xC77E, 0xC0D1, 0xC77F, 0x9FDF, + 0xC780, 0x9FE0, 0xC781, 0x9FE1, 0xC782, 0x9FE2, 0xC783, 0xC0D2, + 0xC784, 0xC0D3, 0xC785, 0xC0D4, 0xC786, 0x9FE3, 0xC787, 0xC0D5, + 0xC788, 0xC0D6, 0xC789, 0xC0D7, 0xC78A, 0xC0D8, 0xC78B, 0x9FE4, + 0xC78C, 0x9FE5, 0xC78D, 0x9FE6, 0xC78E, 0xC0D9, 0xC78F, 0x9FE7, + 0xC790, 0xC0DA, 0xC791, 0xC0DB, 0xC792, 0x9FE8, 0xC793, 0x9FE9, + 0xC794, 0xC0DC, 0xC795, 0x9FEA, 0xC796, 0xC0DD, 0xC797, 0xC0DE, + 0xC798, 0xC0DF, 0xC799, 0x9FEB, 0xC79A, 0xC0E0, 0xC79B, 0x9FEC, + 0xC79C, 0x9FED, 0xC79D, 0x9FEE, 0xC79E, 0x9FEF, 0xC79F, 0x9FF0, + 0xC7A0, 0xC0E1, 0xC7A1, 0xC0E2, 0xC7A2, 0x9FF1, 0xC7A3, 0xC0E3, + 0xC7A4, 0xC0E4, 0xC7A5, 0xC0E5, 0xC7A6, 0xC0E6, 0xC7A7, 0x9FF2, + 0xC7A8, 0x9FF3, 0xC7A9, 0x9FF4, 0xC7AA, 0x9FF5, 0xC7AB, 0x9FF6, + 0xC7AC, 0xC0E7, 0xC7AD, 0xC0E8, 0xC7AE, 0x9FF7, 0xC7AF, 0x9FF8, + 0xC7B0, 0xC0E9, 0xC7B1, 0x9FF9, 0xC7B2, 0x9FFA, 0xC7B3, 0x9FFB, + 0xC7B4, 0xC0EA, 0xC7B5, 0x9FFC, 0xC7B6, 0x9FFD, 0xC7B7, 0x9FFE, + 0xC7B8, 0xA041, 0xC7B9, 0xA042, 0xC7BA, 0xA043, 0xC7BB, 0xA044, + 0xC7BC, 0xC0EB, 0xC7BD, 0xC0EC, 0xC7BE, 0xA045, 0xC7BF, 0xC0ED, + 0xC7C0, 0xC0EE, 0xC7C1, 0xC0EF, 0xC7C2, 0xA046, 0xC7C3, 0xA047, + 0xC7C4, 0xA048, 0xC7C5, 0xA049, 0xC7C6, 0xA04A, 0xC7C7, 0xA04B, + 0xC7C8, 0xC0F0, 0xC7C9, 0xC0F1, 0xC7CA, 0xA04C, 0xC7CB, 0xA04D, + 0xC7CC, 0xC0F2, 0xC7CD, 0xA04E, 0xC7CE, 0xC0F3, 0xC7CF, 0xA04F, + 0xC7D0, 0xC0F4, 0xC7D1, 0xA050, 0xC7D2, 0xA051, 0xC7D3, 0xA052, + 0xC7D4, 0xA053, 0xC7D5, 0xA054, 0xC7D6, 0xA055, 0xC7D7, 0xA056, + 0xC7D8, 0xC0F5, 0xC7D9, 0xA057, 0xC7DA, 0xA058, 0xC7DB, 0xA059, + 0xC7DC, 0xA05A, 0xC7DD, 0xC0F6, 0xC7DE, 0xA061, 0xC7DF, 0xA062, + 0xC7E0, 0xA063, 0xC7E1, 0xA064, 0xC7E2, 0xA065, 0xC7E3, 0xA066, + 0xC7E4, 0xC0F7, 0xC7E5, 0xA067, 0xC7E6, 0xA068, 0xC7E7, 0xA069, + 0xC7E8, 0xC0F8, 0xC7E9, 0xA06A, 0xC7EA, 0xA06B, 0xC7EB, 0xA06C, + 0xC7EC, 0xC0F9, 0xC7ED, 0xA06D, 0xC7EE, 0xA06E, 0xC7EF, 0xA06F, + 0xC7F0, 0xA070, 0xC7F1, 0xA071, 0xC7F2, 0xA072, 0xC7F3, 0xA073, + 0xC7F4, 0xA074, 0xC7F5, 0xA075, 0xC7F6, 0xA076, 0xC7F7, 0xA077, + 0xC7F8, 0xA078, 0xC7F9, 0xA079, 0xC7FA, 0xA07A, 0xC7FB, 0xA081, + 0xC7FC, 0xA082, 0xC7FD, 0xA083, 0xC7FE, 0xA084, 0xC7FF, 0xA085, + 0xC800, 0xC0FA, 0xC801, 0xC0FB, 0xC802, 0xA086, 0xC803, 0xA087, + 0xC804, 0xC0FC, 0xC805, 0xA088, 0xC806, 0xA089, 0xC807, 0xA08A, + 0xC808, 0xC0FD, 0xC809, 0xA08B, 0xC80A, 0xC0FE, 0xC80B, 0xA08C, + 0xC80C, 0xA08D, 0xC80D, 0xA08E, 0xC80E, 0xA08F, 0xC80F, 0xA090, + 0xC810, 0xC1A1, 0xC811, 0xC1A2, 0xC812, 0xA091, 0xC813, 0xC1A3, + 0xC814, 0xA092, 0xC815, 0xC1A4, 0xC816, 0xC1A5, 0xC817, 0xA093, + 0xC818, 0xA094, 0xC819, 0xA095, 0xC81A, 0xA096, 0xC81B, 0xA097, + 0xC81C, 0xC1A6, 0xC81D, 0xC1A7, 0xC81E, 0xA098, 0xC81F, 0xA099, + 0xC820, 0xC1A8, 0xC821, 0xA09A, 0xC822, 0xA09B, 0xC823, 0xA09C, + 0xC824, 0xC1A9, 0xC825, 0xA09D, 0xC826, 0xA09E, 0xC827, 0xA09F, + 0xC828, 0xA0A0, 0xC829, 0xA0A1, 0xC82A, 0xA0A2, 0xC82B, 0xA0A3, + 0xC82C, 0xC1AA, 0xC82D, 0xC1AB, 0xC82E, 0xA0A4, 0xC82F, 0xC1AC, + 0xC830, 0xA0A5, 0xC831, 0xC1AD, 0xC832, 0xA0A6, 0xC833, 0xA0A7, + 0xC834, 0xA0A8, 0xC835, 0xA0A9, 0xC836, 0xA0AA, 0xC837, 0xA0AB, + 0xC838, 0xC1AE, 0xC839, 0xA0AC, 0xC83A, 0xA0AD, 0xC83B, 0xA0AE, + 0xC83C, 0xC1AF, 0xC83D, 0xA0AF, 0xC83E, 0xA0B0, 0xC83F, 0xA0B1, + 0xC840, 0xC1B0, 0xC841, 0xA0B2, 0xC842, 0xA0B3, 0xC843, 0xA0B4, + 0xC844, 0xA0B5, 0xC845, 0xA0B6, 0xC846, 0xA0B7, 0xC847, 0xA0B8, + 0xC848, 0xC1B1, 0xC849, 0xC1B2, 0xC84A, 0xA0B9, 0xC84B, 0xA0BA, + 0xC84C, 0xC1B3, 0xC84D, 0xC1B4, 0xC84E, 0xA0BB, 0xC84F, 0xA0BC, + 0xC850, 0xA0BD, 0xC851, 0xA0BE, 0xC852, 0xA0BF, 0xC853, 0xA0C0, + 0xC854, 0xC1B5, 0xC855, 0xA0C1, 0xC856, 0xA0C2, 0xC857, 0xA0C3, + 0xC858, 0xA0C4, 0xC859, 0xA0C5, 0xC85A, 0xA0C6, 0xC85B, 0xA0C7, + 0xC85C, 0xA0C8, 0xC85D, 0xA0C9, 0xC85E, 0xA0CA, 0xC85F, 0xA0CB, + 0xC860, 0xA0CC, 0xC861, 0xA0CD, 0xC862, 0xA0CE, 0xC863, 0xA0CF, + 0xC864, 0xA0D0, 0xC865, 0xA0D1, 0xC866, 0xA0D2, 0xC867, 0xA0D3, + 0xC868, 0xA0D4, 0xC869, 0xA0D5, 0xC86A, 0xA0D6, 0xC86B, 0xA0D7, + 0xC86C, 0xA0D8, 0xC86D, 0xA0D9, 0xC86E, 0xA0DA, 0xC86F, 0xA0DB, + 0xC870, 0xC1B6, 0xC871, 0xC1B7, 0xC872, 0xA0DC, 0xC873, 0xA0DD, + 0xC874, 0xC1B8, 0xC875, 0xA0DE, 0xC876, 0xA0DF, 0xC877, 0xA0E0, + 0xC878, 0xC1B9, 0xC879, 0xA0E1, 0xC87A, 0xC1BA, 0xC87B, 0xA0E2, + 0xC87C, 0xA0E3, 0xC87D, 0xA0E4, 0xC87E, 0xA0E5, 0xC87F, 0xA0E6, + 0xC880, 0xC1BB, 0xC881, 0xC1BC, 0xC882, 0xA0E7, 0xC883, 0xC1BD, + 0xC884, 0xA0E8, 0xC885, 0xC1BE, 0xC886, 0xC1BF, 0xC887, 0xC1C0, + 0xC888, 0xA0E9, 0xC889, 0xA0EA, 0xC88A, 0xA0EB, 0xC88B, 0xC1C1, + 0xC88C, 0xC1C2, 0xC88D, 0xC1C3, 0xC88E, 0xA0EC, 0xC88F, 0xA0ED, + 0xC890, 0xA0EE, 0xC891, 0xA0EF, 0xC892, 0xA0F0, 0xC893, 0xA0F1, + 0xC894, 0xC1C4, 0xC895, 0xA0F2, 0xC896, 0xA0F3, 0xC897, 0xA0F4, + 0xC898, 0xA0F5, 0xC899, 0xA0F6, 0xC89A, 0xA0F7, 0xC89B, 0xA0F8, + 0xC89C, 0xA0F9, 0xC89D, 0xC1C5, 0xC89E, 0xA0FA, 0xC89F, 0xC1C6, + 0xC8A0, 0xA0FB, 0xC8A1, 0xC1C7, 0xC8A2, 0xA0FC, 0xC8A3, 0xA0FD, + 0xC8A4, 0xA0FE, 0xC8A5, 0xA141, 0xC8A6, 0xA142, 0xC8A7, 0xA143, + 0xC8A8, 0xC1C8, 0xC8A9, 0xA144, 0xC8AA, 0xA145, 0xC8AB, 0xA146, + 0xC8AC, 0xA147, 0xC8AD, 0xA148, 0xC8AE, 0xA149, 0xC8AF, 0xA14A, + 0xC8B0, 0xA14B, 0xC8B1, 0xA14C, 0xC8B2, 0xA14D, 0xC8B3, 0xA14E, + 0xC8B4, 0xA14F, 0xC8B5, 0xA150, 0xC8B6, 0xA151, 0xC8B7, 0xA152, + 0xC8B8, 0xA153, 0xC8B9, 0xA154, 0xC8BA, 0xA155, 0xC8BB, 0xA156, + 0xC8BC, 0xC1C9, 0xC8BD, 0xC1CA, 0xC8BE, 0xA157, 0xC8BF, 0xA158, + 0xC8C0, 0xA159, 0xC8C1, 0xA15A, 0xC8C2, 0xA161, 0xC8C3, 0xA162, + 0xC8C4, 0xC1CB, 0xC8C5, 0xA163, 0xC8C6, 0xA164, 0xC8C7, 0xA165, + 0xC8C8, 0xC1CC, 0xC8C9, 0xA166, 0xC8CA, 0xA167, 0xC8CB, 0xA168, + 0xC8CC, 0xC1CD, 0xC8CD, 0xA169, 0xC8CE, 0xA16A, 0xC8CF, 0xA16B, + 0xC8D0, 0xA16C, 0xC8D1, 0xA16D, 0xC8D2, 0xA16E, 0xC8D3, 0xA16F, + 0xC8D4, 0xC1CE, 0xC8D5, 0xC1CF, 0xC8D6, 0xA170, 0xC8D7, 0xC1D0, + 0xC8D8, 0xA171, 0xC8D9, 0xC1D1, 0xC8DA, 0xA172, 0xC8DB, 0xA173, + 0xC8DC, 0xA174, 0xC8DD, 0xA175, 0xC8DE, 0xA176, 0xC8DF, 0xA177, + 0xC8E0, 0xC1D2, 0xC8E1, 0xC1D3, 0xC8E2, 0xA178, 0xC8E3, 0xA179, + 0xC8E4, 0xC1D4, 0xC8E5, 0xA17A, 0xC8E6, 0xA181, 0xC8E7, 0xA182, + 0xC8E8, 0xA183, 0xC8E9, 0xA184, 0xC8EA, 0xA185, 0xC8EB, 0xA186, + 0xC8EC, 0xA187, 0xC8ED, 0xA188, 0xC8EE, 0xA189, 0xC8EF, 0xA18A, + 0xC8F0, 0xA18B, 0xC8F1, 0xA18C, 0xC8F2, 0xA18D, 0xC8F3, 0xA18E, + 0xC8F4, 0xA18F, 0xC8F5, 0xC1D5, 0xC8F6, 0xA190, 0xC8F7, 0xA191, + 0xC8F8, 0xA192, 0xC8F9, 0xA193, 0xC8FA, 0xA194, 0xC8FB, 0xA195, + 0xC8FC, 0xC1D6, 0xC8FD, 0xC1D7, 0xC8FE, 0xA196, 0xC8FF, 0xA197, + 0xC900, 0xC1D8, 0xC901, 0xA198, 0xC902, 0xA199, 0xC903, 0xA19A, + 0xC904, 0xC1D9, 0xC905, 0xC1DA, 0xC906, 0xC1DB, 0xC907, 0xA19B, + 0xC908, 0xA19C, 0xC909, 0xA19D, 0xC90A, 0xA19E, 0xC90B, 0xA19F, + 0xC90C, 0xC1DC, 0xC90D, 0xC1DD, 0xC90E, 0xA1A0, 0xC90F, 0xC1DE, + 0xC910, 0xA241, 0xC911, 0xC1DF, 0xC912, 0xA242, 0xC913, 0xA243, + 0xC914, 0xA244, 0xC915, 0xA245, 0xC916, 0xA246, 0xC917, 0xA247, + 0xC918, 0xC1E0, 0xC919, 0xA248, 0xC91A, 0xA249, 0xC91B, 0xA24A, + 0xC91C, 0xA24B, 0xC91D, 0xA24C, 0xC91E, 0xA24D, 0xC91F, 0xA24E, + 0xC920, 0xA24F, 0xC921, 0xA250, 0xC922, 0xA251, 0xC923, 0xA252, + 0xC924, 0xA253, 0xC925, 0xA254, 0xC926, 0xA255, 0xC927, 0xA256, + 0xC928, 0xA257, 0xC929, 0xA258, 0xC92A, 0xA259, 0xC92B, 0xA25A, + 0xC92C, 0xC1E1, 0xC92D, 0xA261, 0xC92E, 0xA262, 0xC92F, 0xA263, + 0xC930, 0xA264, 0xC931, 0xA265, 0xC932, 0xA266, 0xC933, 0xA267, + 0xC934, 0xC1E2, 0xC935, 0xA268, 0xC936, 0xA269, 0xC937, 0xA26A, + 0xC938, 0xA26B, 0xC939, 0xA26C, 0xC93A, 0xA26D, 0xC93B, 0xA26E, + 0xC93C, 0xA26F, 0xC93D, 0xA270, 0xC93E, 0xA271, 0xC93F, 0xA272, + 0xC940, 0xA273, 0xC941, 0xA274, 0xC942, 0xA275, 0xC943, 0xA276, + 0xC944, 0xA277, 0xC945, 0xA278, 0xC946, 0xA279, 0xC947, 0xA27A, + 0xC948, 0xA281, 0xC949, 0xA282, 0xC94A, 0xA283, 0xC94B, 0xA284, + 0xC94C, 0xA285, 0xC94D, 0xA286, 0xC94E, 0xA287, 0xC94F, 0xA288, + 0xC950, 0xC1E3, 0xC951, 0xC1E4, 0xC952, 0xA289, 0xC953, 0xA28A, + 0xC954, 0xC1E5, 0xC955, 0xA28B, 0xC956, 0xA28C, 0xC957, 0xA28D, + 0xC958, 0xC1E6, 0xC959, 0xA28E, 0xC95A, 0xA28F, 0xC95B, 0xA290, + 0xC95C, 0xA291, 0xC95D, 0xA292, 0xC95E, 0xA293, 0xC95F, 0xA294, + 0xC960, 0xC1E7, 0xC961, 0xC1E8, 0xC962, 0xA295, 0xC963, 0xC1E9, + 0xC964, 0xA296, 0xC965, 0xA297, 0xC966, 0xA298, 0xC967, 0xA299, + 0xC968, 0xA29A, 0xC969, 0xA29B, 0xC96A, 0xA29C, 0xC96B, 0xA29D, + 0xC96C, 0xC1EA, 0xC96D, 0xA29E, 0xC96E, 0xA29F, 0xC96F, 0xA2A0, + 0xC970, 0xC1EB, 0xC971, 0xA341, 0xC972, 0xA342, 0xC973, 0xA343, + 0xC974, 0xC1EC, 0xC975, 0xA344, 0xC976, 0xA345, 0xC977, 0xA346, + 0xC978, 0xA347, 0xC979, 0xA348, 0xC97A, 0xA349, 0xC97B, 0xA34A, + 0xC97C, 0xC1ED, 0xC97D, 0xA34B, 0xC97E, 0xA34C, 0xC97F, 0xA34D, + 0xC980, 0xA34E, 0xC981, 0xA34F, 0xC982, 0xA350, 0xC983, 0xA351, + 0xC984, 0xA352, 0xC985, 0xA353, 0xC986, 0xA354, 0xC987, 0xA355, + 0xC988, 0xC1EE, 0xC989, 0xC1EF, 0xC98A, 0xA356, 0xC98B, 0xA357, + 0xC98C, 0xC1F0, 0xC98D, 0xA358, 0xC98E, 0xA359, 0xC98F, 0xA35A, + 0xC990, 0xC1F1, 0xC991, 0xA361, 0xC992, 0xA362, 0xC993, 0xA363, + 0xC994, 0xA364, 0xC995, 0xA365, 0xC996, 0xA366, 0xC997, 0xA367, + 0xC998, 0xC1F2, 0xC999, 0xC1F3, 0xC99A, 0xA368, 0xC99B, 0xC1F4, + 0xC99C, 0xA369, 0xC99D, 0xC1F5, 0xC99E, 0xA36A, 0xC99F, 0xA36B, + 0xC9A0, 0xA36C, 0xC9A1, 0xA36D, 0xC9A2, 0xA36E, 0xC9A3, 0xA36F, + 0xC9A4, 0xA370, 0xC9A5, 0xA371, 0xC9A6, 0xA372, 0xC9A7, 0xA373, + 0xC9A8, 0xA374, 0xC9A9, 0xA375, 0xC9AA, 0xA376, 0xC9AB, 0xA377, + 0xC9AC, 0xA378, 0xC9AD, 0xA379, 0xC9AE, 0xA37A, 0xC9AF, 0xA381, + 0xC9B0, 0xA382, 0xC9B1, 0xA383, 0xC9B2, 0xA384, 0xC9B3, 0xA385, + 0xC9B4, 0xA386, 0xC9B5, 0xA387, 0xC9B6, 0xA388, 0xC9B7, 0xA389, + 0xC9B8, 0xA38A, 0xC9B9, 0xA38B, 0xC9BA, 0xA38C, 0xC9BB, 0xA38D, + 0xC9BC, 0xA38E, 0xC9BD, 0xA38F, 0xC9BE, 0xA390, 0xC9BF, 0xA391, + 0xC9C0, 0xC1F6, 0xC9C1, 0xC1F7, 0xC9C2, 0xA392, 0xC9C3, 0xA393, + 0xC9C4, 0xC1F8, 0xC9C5, 0xA394, 0xC9C6, 0xA395, 0xC9C7, 0xC1F9, + 0xC9C8, 0xC1FA, 0xC9C9, 0xA396, 0xC9CA, 0xC1FB, 0xC9CB, 0xA397, + 0xC9CC, 0xA398, 0xC9CD, 0xA399, 0xC9CE, 0xA39A, 0xC9CF, 0xA39B, + 0xC9D0, 0xC1FC, 0xC9D1, 0xC1FD, 0xC9D2, 0xA39C, 0xC9D3, 0xC1FE, + 0xC9D4, 0xA39D, 0xC9D5, 0xC2A1, 0xC9D6, 0xC2A2, 0xC9D7, 0xA39E, + 0xC9D8, 0xA39F, 0xC9D9, 0xC2A3, 0xC9DA, 0xC2A4, 0xC9DB, 0xA3A0, + 0xC9DC, 0xC2A5, 0xC9DD, 0xC2A6, 0xC9DE, 0xA441, 0xC9DF, 0xA442, + 0xC9E0, 0xC2A7, 0xC9E1, 0xA443, 0xC9E2, 0xC2A8, 0xC9E3, 0xA444, + 0xC9E4, 0xC2A9, 0xC9E5, 0xA445, 0xC9E6, 0xA446, 0xC9E7, 0xC2AA, + 0xC9E8, 0xA447, 0xC9E9, 0xA448, 0xC9EA, 0xA449, 0xC9EB, 0xA44A, + 0xC9EC, 0xC2AB, 0xC9ED, 0xC2AC, 0xC9EE, 0xA44B, 0xC9EF, 0xC2AD, + 0xC9F0, 0xC2AE, 0xC9F1, 0xC2AF, 0xC9F2, 0xA44C, 0xC9F3, 0xA44D, + 0xC9F4, 0xA44E, 0xC9F5, 0xA44F, 0xC9F6, 0xA450, 0xC9F7, 0xA451, + 0xC9F8, 0xC2B0, 0xC9F9, 0xC2B1, 0xC9FA, 0xA452, 0xC9FB, 0xA453, + 0xC9FC, 0xC2B2, 0xC9FD, 0xA454, 0xC9FE, 0xA455, 0xC9FF, 0xA456, + 0xCA00, 0xC2B3, 0xCA01, 0xA457, 0xCA02, 0xA458, 0xCA03, 0xA459, + 0xCA04, 0xA45A, 0xCA05, 0xA461, 0xCA06, 0xA462, 0xCA07, 0xA463, + 0xCA08, 0xC2B4, 0xCA09, 0xC2B5, 0xCA0A, 0xA464, 0xCA0B, 0xC2B6, + 0xCA0C, 0xC2B7, 0xCA0D, 0xC2B8, 0xCA0E, 0xA465, 0xCA0F, 0xA466, + 0xCA10, 0xA467, 0xCA11, 0xA468, 0xCA12, 0xA469, 0xCA13, 0xA46A, + 0xCA14, 0xC2B9, 0xCA15, 0xA46B, 0xCA16, 0xA46C, 0xCA17, 0xA46D, + 0xCA18, 0xC2BA, 0xCA19, 0xA46E, 0xCA1A, 0xA46F, 0xCA1B, 0xA470, + 0xCA1C, 0xA471, 0xCA1D, 0xA472, 0xCA1E, 0xA473, 0xCA1F, 0xA474, + 0xCA20, 0xA475, 0xCA21, 0xA476, 0xCA22, 0xA477, 0xCA23, 0xA478, + 0xCA24, 0xA479, 0xCA25, 0xA47A, 0xCA26, 0xA481, 0xCA27, 0xA482, + 0xCA28, 0xA483, 0xCA29, 0xC2BB, 0xCA2A, 0xA484, 0xCA2B, 0xA485, + 0xCA2C, 0xA486, 0xCA2D, 0xA487, 0xCA2E, 0xA488, 0xCA2F, 0xA489, + 0xCA30, 0xA48A, 0xCA31, 0xA48B, 0xCA32, 0xA48C, 0xCA33, 0xA48D, + 0xCA34, 0xA48E, 0xCA35, 0xA48F, 0xCA36, 0xA490, 0xCA37, 0xA491, + 0xCA38, 0xA492, 0xCA39, 0xA493, 0xCA3A, 0xA494, 0xCA3B, 0xA495, + 0xCA3C, 0xA496, 0xCA3D, 0xA497, 0xCA3E, 0xA498, 0xCA3F, 0xA499, + 0xCA40, 0xA49A, 0xCA41, 0xA49B, 0xCA42, 0xA49C, 0xCA43, 0xA49D, + 0xCA44, 0xA49E, 0xCA45, 0xA49F, 0xCA46, 0xA4A0, 0xCA47, 0xA541, + 0xCA48, 0xA542, 0xCA49, 0xA543, 0xCA4A, 0xA544, 0xCA4B, 0xA545, + 0xCA4C, 0xC2BC, 0xCA4D, 0xC2BD, 0xCA4E, 0xA546, 0xCA4F, 0xA547, + 0xCA50, 0xC2BE, 0xCA51, 0xA548, 0xCA52, 0xA549, 0xCA53, 0xA54A, + 0xCA54, 0xC2BF, 0xCA55, 0xA54B, 0xCA56, 0xA54C, 0xCA57, 0xA54D, + 0xCA58, 0xA54E, 0xCA59, 0xA54F, 0xCA5A, 0xA550, 0xCA5B, 0xA551, + 0xCA5C, 0xC2C0, 0xCA5D, 0xC2C1, 0xCA5E, 0xA552, 0xCA5F, 0xC2C2, + 0xCA60, 0xC2C3, 0xCA61, 0xC2C4, 0xCA62, 0xA553, 0xCA63, 0xA554, + 0xCA64, 0xA555, 0xCA65, 0xA556, 0xCA66, 0xA557, 0xCA67, 0xA558, + 0xCA68, 0xC2C5, 0xCA69, 0xA559, 0xCA6A, 0xA55A, 0xCA6B, 0xA561, + 0xCA6C, 0xA562, 0xCA6D, 0xA563, 0xCA6E, 0xA564, 0xCA6F, 0xA565, + 0xCA70, 0xA566, 0xCA71, 0xA567, 0xCA72, 0xA568, 0xCA73, 0xA569, + 0xCA74, 0xA56A, 0xCA75, 0xA56B, 0xCA76, 0xA56C, 0xCA77, 0xA56D, + 0xCA78, 0xA56E, 0xCA79, 0xA56F, 0xCA7A, 0xA570, 0xCA7B, 0xA571, + 0xCA7C, 0xA572, 0xCA7D, 0xC2C6, 0xCA7E, 0xA573, 0xCA7F, 0xA574, + 0xCA80, 0xA575, 0xCA81, 0xA576, 0xCA82, 0xA577, 0xCA83, 0xA578, + 0xCA84, 0xC2C7, 0xCA85, 0xA579, 0xCA86, 0xA57A, 0xCA87, 0xA581, + 0xCA88, 0xA582, 0xCA89, 0xA583, 0xCA8A, 0xA584, 0xCA8B, 0xA585, + 0xCA8C, 0xA586, 0xCA8D, 0xA587, 0xCA8E, 0xA588, 0xCA8F, 0xA589, + 0xCA90, 0xA58A, 0xCA91, 0xA58B, 0xCA92, 0xA58C, 0xCA93, 0xA58D, + 0xCA94, 0xA58E, 0xCA95, 0xA58F, 0xCA96, 0xA590, 0xCA97, 0xA591, + 0xCA98, 0xC2C8, 0xCA99, 0xA592, 0xCA9A, 0xA593, 0xCA9B, 0xA594, + 0xCA9C, 0xA595, 0xCA9D, 0xA596, 0xCA9E, 0xA597, 0xCA9F, 0xA598, + 0xCAA0, 0xA599, 0xCAA1, 0xA59A, 0xCAA2, 0xA59B, 0xCAA3, 0xA59C, + 0xCAA4, 0xA59D, 0xCAA5, 0xA59E, 0xCAA6, 0xA59F, 0xCAA7, 0xA5A0, + 0xCAA8, 0xA641, 0xCAA9, 0xA642, 0xCAAA, 0xA643, 0xCAAB, 0xA644, + 0xCAAC, 0xA645, 0xCAAD, 0xA646, 0xCAAE, 0xA647, 0xCAAF, 0xA648, + 0xCAB0, 0xA649, 0xCAB1, 0xA64A, 0xCAB2, 0xA64B, 0xCAB3, 0xA64C, + 0xCAB4, 0xA64D, 0xCAB5, 0xA64E, 0xCAB6, 0xA64F, 0xCAB7, 0xA650, + 0xCAB8, 0xA651, 0xCAB9, 0xA652, 0xCABA, 0xA653, 0xCABB, 0xA654, + 0xCABC, 0xC2C9, 0xCABD, 0xC2CA, 0xCABE, 0xA655, 0xCABF, 0xA656, + 0xCAC0, 0xC2CB, 0xCAC1, 0xA657, 0xCAC2, 0xA658, 0xCAC3, 0xA659, + 0xCAC4, 0xC2CC, 0xCAC5, 0xA65A, 0xCAC6, 0xA661, 0xCAC7, 0xA662, + 0xCAC8, 0xA663, 0xCAC9, 0xA664, 0xCACA, 0xA665, 0xCACB, 0xA666, + 0xCACC, 0xC2CD, 0xCACD, 0xC2CE, 0xCACE, 0xA667, 0xCACF, 0xC2CF, + 0xCAD0, 0xA668, 0xCAD1, 0xC2D0, 0xCAD2, 0xA669, 0xCAD3, 0xC2D1, + 0xCAD4, 0xA66A, 0xCAD5, 0xA66B, 0xCAD6, 0xA66C, 0xCAD7, 0xA66D, + 0xCAD8, 0xC2D2, 0xCAD9, 0xC2D3, 0xCADA, 0xA66E, 0xCADB, 0xA66F, + 0xCADC, 0xA670, 0xCADD, 0xA671, 0xCADE, 0xA672, 0xCADF, 0xA673, + 0xCAE0, 0xC2D4, 0xCAE1, 0xA674, 0xCAE2, 0xA675, 0xCAE3, 0xA676, + 0xCAE4, 0xA677, 0xCAE5, 0xA678, 0xCAE6, 0xA679, 0xCAE7, 0xA67A, + 0xCAE8, 0xA681, 0xCAE9, 0xA682, 0xCAEA, 0xA683, 0xCAEB, 0xA684, + 0xCAEC, 0xC2D5, 0xCAED, 0xA685, 0xCAEE, 0xA686, 0xCAEF, 0xA687, + 0xCAF0, 0xA688, 0xCAF1, 0xA689, 0xCAF2, 0xA68A, 0xCAF3, 0xA68B, + 0xCAF4, 0xC2D6, 0xCAF5, 0xA68C, 0xCAF6, 0xA68D, 0xCAF7, 0xA68E, + 0xCAF8, 0xA68F, 0xCAF9, 0xA690, 0xCAFA, 0xA691, 0xCAFB, 0xA692, + 0xCAFC, 0xA693, 0xCAFD, 0xA694, 0xCAFE, 0xA695, 0xCAFF, 0xA696, + 0xCB00, 0xA697, 0xCB01, 0xA698, 0xCB02, 0xA699, 0xCB03, 0xA69A, + 0xCB04, 0xA69B, 0xCB05, 0xA69C, 0xCB06, 0xA69D, 0xCB07, 0xA69E, + 0xCB08, 0xC2D7, 0xCB09, 0xA69F, 0xCB0A, 0xA6A0, 0xCB0B, 0xA741, + 0xCB0C, 0xA742, 0xCB0D, 0xA743, 0xCB0E, 0xA744, 0xCB0F, 0xA745, + 0xCB10, 0xC2D8, 0xCB11, 0xA746, 0xCB12, 0xA747, 0xCB13, 0xA748, + 0xCB14, 0xC2D9, 0xCB15, 0xA749, 0xCB16, 0xA74A, 0xCB17, 0xA74B, + 0xCB18, 0xC2DA, 0xCB19, 0xA74C, 0xCB1A, 0xA74D, 0xCB1B, 0xA74E, + 0xCB1C, 0xA74F, 0xCB1D, 0xA750, 0xCB1E, 0xA751, 0xCB1F, 0xA752, + 0xCB20, 0xC2DB, 0xCB21, 0xC2DC, 0xCB22, 0xA753, 0xCB23, 0xA754, + 0xCB24, 0xA755, 0xCB25, 0xA756, 0xCB26, 0xA757, 0xCB27, 0xA758, + 0xCB28, 0xA759, 0xCB29, 0xA75A, 0xCB2A, 0xA761, 0xCB2B, 0xA762, + 0xCB2C, 0xA763, 0xCB2D, 0xA764, 0xCB2E, 0xA765, 0xCB2F, 0xA766, + 0xCB30, 0xA767, 0xCB31, 0xA768, 0xCB32, 0xA769, 0xCB33, 0xA76A, + 0xCB34, 0xA76B, 0xCB35, 0xA76C, 0xCB36, 0xA76D, 0xCB37, 0xA76E, + 0xCB38, 0xA76F, 0xCB39, 0xA770, 0xCB3A, 0xA771, 0xCB3B, 0xA772, + 0xCB3C, 0xA773, 0xCB3D, 0xA774, 0xCB3E, 0xA775, 0xCB3F, 0xA776, + 0xCB40, 0xA777, 0xCB41, 0xC2DD, 0xCB42, 0xA778, 0xCB43, 0xA779, + 0xCB44, 0xA77A, 0xCB45, 0xA781, 0xCB46, 0xA782, 0xCB47, 0xA783, + 0xCB48, 0xC2DE, 0xCB49, 0xC2DF, 0xCB4A, 0xA784, 0xCB4B, 0xA785, + 0xCB4C, 0xC2E0, 0xCB4D, 0xA786, 0xCB4E, 0xA787, 0xCB4F, 0xA788, + 0xCB50, 0xC2E1, 0xCB51, 0xA789, 0xCB52, 0xA78A, 0xCB53, 0xA78B, + 0xCB54, 0xA78C, 0xCB55, 0xA78D, 0xCB56, 0xA78E, 0xCB57, 0xA78F, + 0xCB58, 0xC2E2, 0xCB59, 0xC2E3, 0xCB5A, 0xA790, 0xCB5B, 0xA791, + 0xCB5C, 0xA792, 0xCB5D, 0xC2E4, 0xCB5E, 0xA793, 0xCB5F, 0xA794, + 0xCB60, 0xA795, 0xCB61, 0xA796, 0xCB62, 0xA797, 0xCB63, 0xA798, + 0xCB64, 0xC2E5, 0xCB65, 0xA799, 0xCB66, 0xA79A, 0xCB67, 0xA79B, + 0xCB68, 0xA79C, 0xCB69, 0xA79D, 0xCB6A, 0xA79E, 0xCB6B, 0xA79F, + 0xCB6C, 0xA7A0, 0xCB6D, 0xA841, 0xCB6E, 0xA842, 0xCB6F, 0xA843, + 0xCB70, 0xA844, 0xCB71, 0xA845, 0xCB72, 0xA846, 0xCB73, 0xA847, + 0xCB74, 0xA848, 0xCB75, 0xA849, 0xCB76, 0xA84A, 0xCB77, 0xA84B, + 0xCB78, 0xC2E6, 0xCB79, 0xC2E7, 0xCB7A, 0xA84C, 0xCB7B, 0xA84D, + 0xCB7C, 0xA84E, 0xCB7D, 0xA84F, 0xCB7E, 0xA850, 0xCB7F, 0xA851, + 0xCB80, 0xA852, 0xCB81, 0xA853, 0xCB82, 0xA854, 0xCB83, 0xA855, + 0xCB84, 0xA856, 0xCB85, 0xA857, 0xCB86, 0xA858, 0xCB87, 0xA859, + 0xCB88, 0xA85A, 0xCB89, 0xA861, 0xCB8A, 0xA862, 0xCB8B, 0xA863, + 0xCB8C, 0xA864, 0xCB8D, 0xA865, 0xCB8E, 0xA866, 0xCB8F, 0xA867, + 0xCB90, 0xA868, 0xCB91, 0xA869, 0xCB92, 0xA86A, 0xCB93, 0xA86B, + 0xCB94, 0xA86C, 0xCB95, 0xA86D, 0xCB96, 0xA86E, 0xCB97, 0xA86F, + 0xCB98, 0xA870, 0xCB99, 0xA871, 0xCB9A, 0xA872, 0xCB9B, 0xA873, + 0xCB9C, 0xC2E8, 0xCB9D, 0xA874, 0xCB9E, 0xA875, 0xCB9F, 0xA876, + 0xCBA0, 0xA877, 0xCBA1, 0xA878, 0xCBA2, 0xA879, 0xCBA3, 0xA87A, + 0xCBA4, 0xA881, 0xCBA5, 0xA882, 0xCBA6, 0xA883, 0xCBA7, 0xA884, + 0xCBA8, 0xA885, 0xCBA9, 0xA886, 0xCBAA, 0xA887, 0xCBAB, 0xA888, + 0xCBAC, 0xA889, 0xCBAD, 0xA88A, 0xCBAE, 0xA88B, 0xCBAF, 0xA88C, + 0xCBB0, 0xA88D, 0xCBB1, 0xA88E, 0xCBB2, 0xA88F, 0xCBB3, 0xA890, + 0xCBB4, 0xA891, 0xCBB5, 0xA892, 0xCBB6, 0xA893, 0xCBB7, 0xA894, + 0xCBB8, 0xC2E9, 0xCBB9, 0xA895, 0xCBBA, 0xA896, 0xCBBB, 0xA897, + 0xCBBC, 0xA898, 0xCBBD, 0xA899, 0xCBBE, 0xA89A, 0xCBBF, 0xA89B, + 0xCBC0, 0xA89C, 0xCBC1, 0xA89D, 0xCBC2, 0xA89E, 0xCBC3, 0xA89F, + 0xCBC4, 0xA8A0, 0xCBC5, 0xA941, 0xCBC6, 0xA942, 0xCBC7, 0xA943, + 0xCBC8, 0xA944, 0xCBC9, 0xA945, 0xCBCA, 0xA946, 0xCBCB, 0xA947, + 0xCBCC, 0xA948, 0xCBCD, 0xA949, 0xCBCE, 0xA94A, 0xCBCF, 0xA94B, + 0xCBD0, 0xA94C, 0xCBD1, 0xA94D, 0xCBD2, 0xA94E, 0xCBD3, 0xA94F, + 0xCBD4, 0xC2EA, 0xCBD5, 0xA950, 0xCBD6, 0xA951, 0xCBD7, 0xA952, + 0xCBD8, 0xA953, 0xCBD9, 0xA954, 0xCBDA, 0xA955, 0xCBDB, 0xA956, + 0xCBDC, 0xA957, 0xCBDD, 0xA958, 0xCBDE, 0xA959, 0xCBDF, 0xA95A, + 0xCBE0, 0xA961, 0xCBE1, 0xA962, 0xCBE2, 0xA963, 0xCBE3, 0xA964, + 0xCBE4, 0xC2EB, 0xCBE5, 0xA965, 0xCBE6, 0xA966, 0xCBE7, 0xC2EC, + 0xCBE8, 0xA967, 0xCBE9, 0xC2ED, 0xCBEA, 0xA968, 0xCBEB, 0xA969, + 0xCBEC, 0xA96A, 0xCBED, 0xA96B, 0xCBEE, 0xA96C, 0xCBEF, 0xA96D, + 0xCBF0, 0xA96E, 0xCBF1, 0xA96F, 0xCBF2, 0xA970, 0xCBF3, 0xA971, + 0xCBF4, 0xA972, 0xCBF5, 0xA973, 0xCBF6, 0xA974, 0xCBF7, 0xA975, + 0xCBF8, 0xA976, 0xCBF9, 0xA977, 0xCBFA, 0xA978, 0xCBFB, 0xA979, + 0xCBFC, 0xA97A, 0xCBFD, 0xA981, 0xCBFE, 0xA982, 0xCBFF, 0xA983, + 0xCC00, 0xA984, 0xCC01, 0xA985, 0xCC02, 0xA986, 0xCC03, 0xA987, + 0xCC04, 0xA988, 0xCC05, 0xA989, 0xCC06, 0xA98A, 0xCC07, 0xA98B, + 0xCC08, 0xA98C, 0xCC09, 0xA98D, 0xCC0A, 0xA98E, 0xCC0B, 0xA98F, + 0xCC0C, 0xC2EE, 0xCC0D, 0xC2EF, 0xCC0E, 0xA990, 0xCC0F, 0xA991, + 0xCC10, 0xC2F0, 0xCC11, 0xA992, 0xCC12, 0xA993, 0xCC13, 0xA994, + 0xCC14, 0xC2F1, 0xCC15, 0xA995, 0xCC16, 0xA996, 0xCC17, 0xA997, + 0xCC18, 0xA998, 0xCC19, 0xA999, 0xCC1A, 0xA99A, 0xCC1B, 0xA99B, + 0xCC1C, 0xC2F2, 0xCC1D, 0xC2F3, 0xCC1E, 0xA99C, 0xCC1F, 0xA99D, + 0xCC20, 0xA99E, 0xCC21, 0xC2F4, 0xCC22, 0xC2F5, 0xCC23, 0xA99F, + 0xCC24, 0xA9A0, 0xCC25, 0xAA41, 0xCC26, 0xAA42, 0xCC27, 0xC2F6, + 0xCC28, 0xC2F7, 0xCC29, 0xC2F8, 0xCC2A, 0xAA43, 0xCC2B, 0xAA44, + 0xCC2C, 0xC2F9, 0xCC2D, 0xAA45, 0xCC2E, 0xC2FA, 0xCC2F, 0xAA46, + 0xCC30, 0xC2FB, 0xCC31, 0xAA47, 0xCC32, 0xAA48, 0xCC33, 0xAA49, + 0xCC34, 0xAA4A, 0xCC35, 0xAA4B, 0xCC36, 0xAA4C, 0xCC37, 0xAA4D, + 0xCC38, 0xC2FC, 0xCC39, 0xC2FD, 0xCC3A, 0xAA4E, 0xCC3B, 0xC2FE, + 0xCC3C, 0xC3A1, 0xCC3D, 0xC3A2, 0xCC3E, 0xC3A3, 0xCC3F, 0xAA4F, + 0xCC40, 0xAA50, 0xCC41, 0xAA51, 0xCC42, 0xAA52, 0xCC43, 0xAA53, + 0xCC44, 0xC3A4, 0xCC45, 0xC3A5, 0xCC46, 0xAA54, 0xCC47, 0xAA55, + 0xCC48, 0xC3A6, 0xCC49, 0xAA56, 0xCC4A, 0xAA57, 0xCC4B, 0xAA58, + 0xCC4C, 0xC3A7, 0xCC4D, 0xAA59, 0xCC4E, 0xAA5A, 0xCC4F, 0xAA61, + 0xCC50, 0xAA62, 0xCC51, 0xAA63, 0xCC52, 0xAA64, 0xCC53, 0xAA65, + 0xCC54, 0xC3A8, 0xCC55, 0xC3A9, 0xCC56, 0xAA66, 0xCC57, 0xC3AA, + 0xCC58, 0xC3AB, 0xCC59, 0xC3AC, 0xCC5A, 0xAA67, 0xCC5B, 0xAA68, + 0xCC5C, 0xAA69, 0xCC5D, 0xAA6A, 0xCC5E, 0xAA6B, 0xCC5F, 0xAA6C, + 0xCC60, 0xC3AD, 0xCC61, 0xAA6D, 0xCC62, 0xAA6E, 0xCC63, 0xAA6F, + 0xCC64, 0xC3AE, 0xCC65, 0xAA70, 0xCC66, 0xC3AF, 0xCC67, 0xAA71, + 0xCC68, 0xC3B0, 0xCC69, 0xAA72, 0xCC6A, 0xAA73, 0xCC6B, 0xAA74, + 0xCC6C, 0xAA75, 0xCC6D, 0xAA76, 0xCC6E, 0xAA77, 0xCC6F, 0xAA78, + 0xCC70, 0xC3B1, 0xCC71, 0xAA79, 0xCC72, 0xAA7A, 0xCC73, 0xAA81, + 0xCC74, 0xAA82, 0xCC75, 0xC3B2, 0xCC76, 0xAA83, 0xCC77, 0xAA84, + 0xCC78, 0xAA85, 0xCC79, 0xAA86, 0xCC7A, 0xAA87, 0xCC7B, 0xAA88, + 0xCC7C, 0xAA89, 0xCC7D, 0xAA8A, 0xCC7E, 0xAA8B, 0xCC7F, 0xAA8C, + 0xCC80, 0xAA8D, 0xCC81, 0xAA8E, 0xCC82, 0xAA8F, 0xCC83, 0xAA90, + 0xCC84, 0xAA91, 0xCC85, 0xAA92, 0xCC86, 0xAA93, 0xCC87, 0xAA94, + 0xCC88, 0xAA95, 0xCC89, 0xAA96, 0xCC8A, 0xAA97, 0xCC8B, 0xAA98, + 0xCC8C, 0xAA99, 0xCC8D, 0xAA9A, 0xCC8E, 0xAA9B, 0xCC8F, 0xAA9C, + 0xCC90, 0xAA9D, 0xCC91, 0xAA9E, 0xCC92, 0xAA9F, 0xCC93, 0xAAA0, + 0xCC94, 0xAB41, 0xCC95, 0xAB42, 0xCC96, 0xAB43, 0xCC97, 0xAB44, + 0xCC98, 0xC3B3, 0xCC99, 0xC3B4, 0xCC9A, 0xAB45, 0xCC9B, 0xAB46, + 0xCC9C, 0xC3B5, 0xCC9D, 0xAB47, 0xCC9E, 0xAB48, 0xCC9F, 0xAB49, + 0xCCA0, 0xC3B6, 0xCCA1, 0xAB4A, 0xCCA2, 0xAB4B, 0xCCA3, 0xAB4C, + 0xCCA4, 0xAB4D, 0xCCA5, 0xAB4E, 0xCCA6, 0xAB4F, 0xCCA7, 0xAB50, + 0xCCA8, 0xC3B7, 0xCCA9, 0xC3B8, 0xCCAA, 0xAB51, 0xCCAB, 0xC3B9, + 0xCCAC, 0xC3BA, 0xCCAD, 0xC3BB, 0xCCAE, 0xAB52, 0xCCAF, 0xAB53, + 0xCCB0, 0xAB54, 0xCCB1, 0xAB55, 0xCCB2, 0xAB56, 0xCCB3, 0xAB57, + 0xCCB4, 0xC3BC, 0xCCB5, 0xC3BD, 0xCCB6, 0xAB58, 0xCCB7, 0xAB59, + 0xCCB8, 0xC3BE, 0xCCB9, 0xAB5A, 0xCCBA, 0xAB61, 0xCCBB, 0xAB62, + 0xCCBC, 0xC3BF, 0xCCBD, 0xAB63, 0xCCBE, 0xAB64, 0xCCBF, 0xAB65, + 0xCCC0, 0xAB66, 0xCCC1, 0xAB67, 0xCCC2, 0xAB68, 0xCCC3, 0xAB69, + 0xCCC4, 0xC3C0, 0xCCC5, 0xC3C1, 0xCCC6, 0xAB6A, 0xCCC7, 0xC3C2, + 0xCCC8, 0xAB6B, 0xCCC9, 0xC3C3, 0xCCCA, 0xAB6C, 0xCCCB, 0xAB6D, + 0xCCCC, 0xAB6E, 0xCCCD, 0xAB6F, 0xCCCE, 0xAB70, 0xCCCF, 0xAB71, + 0xCCD0, 0xC3C4, 0xCCD1, 0xAB72, 0xCCD2, 0xAB73, 0xCCD3, 0xAB74, + 0xCCD4, 0xC3C5, 0xCCD5, 0xAB75, 0xCCD6, 0xAB76, 0xCCD7, 0xAB77, + 0xCCD8, 0xAB78, 0xCCD9, 0xAB79, 0xCCDA, 0xAB7A, 0xCCDB, 0xAB81, + 0xCCDC, 0xAB82, 0xCCDD, 0xAB83, 0xCCDE, 0xAB84, 0xCCDF, 0xAB85, + 0xCCE0, 0xAB86, 0xCCE1, 0xAB87, 0xCCE2, 0xAB88, 0xCCE3, 0xAB89, + 0xCCE4, 0xC3C6, 0xCCE5, 0xAB8A, 0xCCE6, 0xAB8B, 0xCCE7, 0xAB8C, + 0xCCE8, 0xAB8D, 0xCCE9, 0xAB8E, 0xCCEA, 0xAB8F, 0xCCEB, 0xAB90, + 0xCCEC, 0xC3C7, 0xCCED, 0xAB91, 0xCCEE, 0xAB92, 0xCCEF, 0xAB93, + 0xCCF0, 0xC3C8, 0xCCF1, 0xAB94, 0xCCF2, 0xAB95, 0xCCF3, 0xAB96, + 0xCCF4, 0xAB97, 0xCCF5, 0xAB98, 0xCCF6, 0xAB99, 0xCCF7, 0xAB9A, + 0xCCF8, 0xAB9B, 0xCCF9, 0xAB9C, 0xCCFA, 0xAB9D, 0xCCFB, 0xAB9E, + 0xCCFC, 0xAB9F, 0xCCFD, 0xABA0, 0xCCFE, 0xAC41, 0xCCFF, 0xAC42, + 0xCD00, 0xAC43, 0xCD01, 0xC3C9, 0xCD02, 0xAC44, 0xCD03, 0xAC45, + 0xCD04, 0xAC46, 0xCD05, 0xAC47, 0xCD06, 0xAC48, 0xCD07, 0xAC49, + 0xCD08, 0xC3CA, 0xCD09, 0xC3CB, 0xCD0A, 0xAC4A, 0xCD0B, 0xAC4B, + 0xCD0C, 0xC3CC, 0xCD0D, 0xAC4C, 0xCD0E, 0xAC4D, 0xCD0F, 0xAC4E, + 0xCD10, 0xC3CD, 0xCD11, 0xAC4F, 0xCD12, 0xAC50, 0xCD13, 0xAC51, + 0xCD14, 0xAC52, 0xCD15, 0xAC53, 0xCD16, 0xAC54, 0xCD17, 0xAC55, + 0xCD18, 0xC3CE, 0xCD19, 0xC3CF, 0xCD1A, 0xAC56, 0xCD1B, 0xC3D0, + 0xCD1C, 0xAC57, 0xCD1D, 0xC3D1, 0xCD1E, 0xAC58, 0xCD1F, 0xAC59, + 0xCD20, 0xAC5A, 0xCD21, 0xAC61, 0xCD22, 0xAC62, 0xCD23, 0xAC63, + 0xCD24, 0xC3D2, 0xCD25, 0xAC64, 0xCD26, 0xAC65, 0xCD27, 0xAC66, + 0xCD28, 0xC3D3, 0xCD29, 0xAC67, 0xCD2A, 0xAC68, 0xCD2B, 0xAC69, + 0xCD2C, 0xC3D4, 0xCD2D, 0xAC6A, 0xCD2E, 0xAC6B, 0xCD2F, 0xAC6C, + 0xCD30, 0xAC6D, 0xCD31, 0xAC6E, 0xCD32, 0xAC6F, 0xCD33, 0xAC70, + 0xCD34, 0xAC71, 0xCD35, 0xAC72, 0xCD36, 0xAC73, 0xCD37, 0xAC74, + 0xCD38, 0xAC75, 0xCD39, 0xC3D5, 0xCD3A, 0xAC76, 0xCD3B, 0xAC77, + 0xCD3C, 0xAC78, 0xCD3D, 0xAC79, 0xCD3E, 0xAC7A, 0xCD3F, 0xAC81, + 0xCD40, 0xAC82, 0xCD41, 0xAC83, 0xCD42, 0xAC84, 0xCD43, 0xAC85, + 0xCD44, 0xAC86, 0xCD45, 0xAC87, 0xCD46, 0xAC88, 0xCD47, 0xAC89, + 0xCD48, 0xAC8A, 0xCD49, 0xAC8B, 0xCD4A, 0xAC8C, 0xCD4B, 0xAC8D, + 0xCD4C, 0xAC8E, 0xCD4D, 0xAC8F, 0xCD4E, 0xAC90, 0xCD4F, 0xAC91, + 0xCD50, 0xAC92, 0xCD51, 0xAC93, 0xCD52, 0xAC94, 0xCD53, 0xAC95, + 0xCD54, 0xAC96, 0xCD55, 0xAC97, 0xCD56, 0xAC98, 0xCD57, 0xAC99, + 0xCD58, 0xAC9A, 0xCD59, 0xAC9B, 0xCD5A, 0xAC9C, 0xCD5B, 0xAC9D, + 0xCD5C, 0xC3D6, 0xCD5D, 0xAC9E, 0xCD5E, 0xAC9F, 0xCD5F, 0xACA0, + 0xCD60, 0xC3D7, 0xCD61, 0xAD41, 0xCD62, 0xAD42, 0xCD63, 0xAD43, + 0xCD64, 0xC3D8, 0xCD65, 0xAD44, 0xCD66, 0xAD45, 0xCD67, 0xAD46, + 0xCD68, 0xAD47, 0xCD69, 0xAD48, 0xCD6A, 0xAD49, 0xCD6B, 0xAD4A, + 0xCD6C, 0xC3D9, 0xCD6D, 0xC3DA, 0xCD6E, 0xAD4B, 0xCD6F, 0xC3DB, + 0xCD70, 0xAD4C, 0xCD71, 0xC3DC, 0xCD72, 0xAD4D, 0xCD73, 0xAD4E, + 0xCD74, 0xAD4F, 0xCD75, 0xAD50, 0xCD76, 0xAD51, 0xCD77, 0xAD52, + 0xCD78, 0xC3DD, 0xCD79, 0xAD53, 0xCD7A, 0xAD54, 0xCD7B, 0xAD55, + 0xCD7C, 0xAD56, 0xCD7D, 0xAD57, 0xCD7E, 0xAD58, 0xCD7F, 0xAD59, + 0xCD80, 0xAD5A, 0xCD81, 0xAD61, 0xCD82, 0xAD62, 0xCD83, 0xAD63, + 0xCD84, 0xAD64, 0xCD85, 0xAD65, 0xCD86, 0xAD66, 0xCD87, 0xAD67, + 0xCD88, 0xC3DE, 0xCD89, 0xAD68, 0xCD8A, 0xAD69, 0xCD8B, 0xAD6A, + 0xCD8C, 0xAD6B, 0xCD8D, 0xAD6C, 0xCD8E, 0xAD6D, 0xCD8F, 0xAD6E, + 0xCD90, 0xAD6F, 0xCD91, 0xAD70, 0xCD92, 0xAD71, 0xCD93, 0xAD72, + 0xCD94, 0xC3DF, 0xCD95, 0xC3E0, 0xCD96, 0xAD73, 0xCD97, 0xAD74, + 0xCD98, 0xC3E1, 0xCD99, 0xAD75, 0xCD9A, 0xAD76, 0xCD9B, 0xAD77, + 0xCD9C, 0xC3E2, 0xCD9D, 0xAD78, 0xCD9E, 0xAD79, 0xCD9F, 0xAD7A, + 0xCDA0, 0xAD81, 0xCDA1, 0xAD82, 0xCDA2, 0xAD83, 0xCDA3, 0xAD84, + 0xCDA4, 0xC3E3, 0xCDA5, 0xC3E4, 0xCDA6, 0xAD85, 0xCDA7, 0xC3E5, + 0xCDA8, 0xAD86, 0xCDA9, 0xC3E6, 0xCDAA, 0xAD87, 0xCDAB, 0xAD88, + 0xCDAC, 0xAD89, 0xCDAD, 0xAD8A, 0xCDAE, 0xAD8B, 0xCDAF, 0xAD8C, + 0xCDB0, 0xC3E7, 0xCDB1, 0xAD8D, 0xCDB2, 0xAD8E, 0xCDB3, 0xAD8F, + 0xCDB4, 0xAD90, 0xCDB5, 0xAD91, 0xCDB6, 0xAD92, 0xCDB7, 0xAD93, + 0xCDB8, 0xAD94, 0xCDB9, 0xAD95, 0xCDBA, 0xAD96, 0xCDBB, 0xAD97, + 0xCDBC, 0xAD98, 0xCDBD, 0xAD99, 0xCDBE, 0xAD9A, 0xCDBF, 0xAD9B, + 0xCDC0, 0xAD9C, 0xCDC1, 0xAD9D, 0xCDC2, 0xAD9E, 0xCDC3, 0xAD9F, + 0xCDC4, 0xC3E8, 0xCDC5, 0xADA0, 0xCDC6, 0xAE41, 0xCDC7, 0xAE42, + 0xCDC8, 0xAE43, 0xCDC9, 0xAE44, 0xCDCA, 0xAE45, 0xCDCB, 0xAE46, + 0xCDCC, 0xC3E9, 0xCDCD, 0xAE47, 0xCDCE, 0xAE48, 0xCDCF, 0xAE49, + 0xCDD0, 0xC3EA, 0xCDD1, 0xAE4A, 0xCDD2, 0xAE4B, 0xCDD3, 0xAE4C, + 0xCDD4, 0xAE4D, 0xCDD5, 0xAE4E, 0xCDD6, 0xAE4F, 0xCDD7, 0xAE50, + 0xCDD8, 0xAE51, 0xCDD9, 0xAE52, 0xCDDA, 0xAE53, 0xCDDB, 0xAE54, + 0xCDDC, 0xAE55, 0xCDDD, 0xAE56, 0xCDDE, 0xAE57, 0xCDDF, 0xAE58, + 0xCDE0, 0xAE59, 0xCDE1, 0xAE5A, 0xCDE2, 0xAE61, 0xCDE3, 0xAE62, + 0xCDE4, 0xAE63, 0xCDE5, 0xAE64, 0xCDE6, 0xAE65, 0xCDE7, 0xAE66, + 0xCDE8, 0xC3EB, 0xCDE9, 0xAE67, 0xCDEA, 0xAE68, 0xCDEB, 0xAE69, + 0xCDEC, 0xC3EC, 0xCDED, 0xAE6A, 0xCDEE, 0xAE6B, 0xCDEF, 0xAE6C, + 0xCDF0, 0xC3ED, 0xCDF1, 0xAE6D, 0xCDF2, 0xAE6E, 0xCDF3, 0xAE6F, + 0xCDF4, 0xAE70, 0xCDF5, 0xAE71, 0xCDF6, 0xAE72, 0xCDF7, 0xAE73, + 0xCDF8, 0xC3EE, 0xCDF9, 0xC3EF, 0xCDFA, 0xAE74, 0xCDFB, 0xC3F0, + 0xCDFC, 0xAE75, 0xCDFD, 0xC3F1, 0xCDFE, 0xAE76, 0xCDFF, 0xAE77, + 0xCE00, 0xAE78, 0xCE01, 0xAE79, 0xCE02, 0xAE7A, 0xCE03, 0xAE81, + 0xCE04, 0xC3F2, 0xCE05, 0xAE82, 0xCE06, 0xAE83, 0xCE07, 0xAE84, + 0xCE08, 0xC3F3, 0xCE09, 0xAE85, 0xCE0A, 0xAE86, 0xCE0B, 0xAE87, + 0xCE0C, 0xC3F4, 0xCE0D, 0xAE88, 0xCE0E, 0xAE89, 0xCE0F, 0xAE8A, + 0xCE10, 0xAE8B, 0xCE11, 0xAE8C, 0xCE12, 0xAE8D, 0xCE13, 0xAE8E, + 0xCE14, 0xC3F5, 0xCE15, 0xAE8F, 0xCE16, 0xAE90, 0xCE17, 0xAE91, + 0xCE18, 0xAE92, 0xCE19, 0xC3F6, 0xCE1A, 0xAE93, 0xCE1B, 0xAE94, + 0xCE1C, 0xAE95, 0xCE1D, 0xAE96, 0xCE1E, 0xAE97, 0xCE1F, 0xAE98, + 0xCE20, 0xC3F7, 0xCE21, 0xC3F8, 0xCE22, 0xAE99, 0xCE23, 0xAE9A, + 0xCE24, 0xC3F9, 0xCE25, 0xAE9B, 0xCE26, 0xAE9C, 0xCE27, 0xAE9D, + 0xCE28, 0xC3FA, 0xCE29, 0xAE9E, 0xCE2A, 0xAE9F, 0xCE2B, 0xAEA0, + 0xCE2C, 0xAF41, 0xCE2D, 0xAF42, 0xCE2E, 0xAF43, 0xCE2F, 0xAF44, + 0xCE30, 0xC3FB, 0xCE31, 0xC3FC, 0xCE32, 0xAF45, 0xCE33, 0xC3FD, + 0xCE34, 0xAF46, 0xCE35, 0xC3FE, 0xCE36, 0xAF47, 0xCE37, 0xAF48, + 0xCE38, 0xAF49, 0xCE39, 0xAF4A, 0xCE3A, 0xAF4B, 0xCE3B, 0xAF4C, + 0xCE3C, 0xAF4D, 0xCE3D, 0xAF4E, 0xCE3E, 0xAF4F, 0xCE3F, 0xAF50, + 0xCE40, 0xAF51, 0xCE41, 0xAF52, 0xCE42, 0xAF53, 0xCE43, 0xAF54, + 0xCE44, 0xAF55, 0xCE45, 0xAF56, 0xCE46, 0xAF57, 0xCE47, 0xAF58, + 0xCE48, 0xAF59, 0xCE49, 0xAF5A, 0xCE4A, 0xAF61, 0xCE4B, 0xAF62, + 0xCE4C, 0xAF63, 0xCE4D, 0xAF64, 0xCE4E, 0xAF65, 0xCE4F, 0xAF66, + 0xCE50, 0xAF67, 0xCE51, 0xAF68, 0xCE52, 0xAF69, 0xCE53, 0xAF6A, + 0xCE54, 0xAF6B, 0xCE55, 0xAF6C, 0xCE56, 0xAF6D, 0xCE57, 0xAF6E, + 0xCE58, 0xC4A1, 0xCE59, 0xC4A2, 0xCE5A, 0xAF6F, 0xCE5B, 0xAF70, + 0xCE5C, 0xC4A3, 0xCE5D, 0xAF71, 0xCE5E, 0xAF72, 0xCE5F, 0xC4A4, + 0xCE60, 0xC4A5, 0xCE61, 0xC4A6, 0xCE62, 0xAF73, 0xCE63, 0xAF74, + 0xCE64, 0xAF75, 0xCE65, 0xAF76, 0xCE66, 0xAF77, 0xCE67, 0xAF78, + 0xCE68, 0xC4A7, 0xCE69, 0xC4A8, 0xCE6A, 0xAF79, 0xCE6B, 0xC4A9, + 0xCE6C, 0xAF7A, 0xCE6D, 0xC4AA, 0xCE6E, 0xAF81, 0xCE6F, 0xAF82, + 0xCE70, 0xAF83, 0xCE71, 0xAF84, 0xCE72, 0xAF85, 0xCE73, 0xAF86, + 0xCE74, 0xC4AB, 0xCE75, 0xC4AC, 0xCE76, 0xAF87, 0xCE77, 0xAF88, + 0xCE78, 0xC4AD, 0xCE79, 0xAF89, 0xCE7A, 0xAF8A, 0xCE7B, 0xAF8B, + 0xCE7C, 0xC4AE, 0xCE7D, 0xAF8C, 0xCE7E, 0xAF8D, 0xCE7F, 0xAF8E, + 0xCE80, 0xAF8F, 0xCE81, 0xAF90, 0xCE82, 0xAF91, 0xCE83, 0xAF92, + 0xCE84, 0xC4AF, 0xCE85, 0xC4B0, 0xCE86, 0xAF93, 0xCE87, 0xC4B1, + 0xCE88, 0xAF94, 0xCE89, 0xC4B2, 0xCE8A, 0xAF95, 0xCE8B, 0xAF96, + 0xCE8C, 0xAF97, 0xCE8D, 0xAF98, 0xCE8E, 0xAF99, 0xCE8F, 0xAF9A, + 0xCE90, 0xC4B3, 0xCE91, 0xC4B4, 0xCE92, 0xAF9B, 0xCE93, 0xAF9C, + 0xCE94, 0xC4B5, 0xCE95, 0xAF9D, 0xCE96, 0xAF9E, 0xCE97, 0xAF9F, + 0xCE98, 0xC4B6, 0xCE99, 0xAFA0, 0xCE9A, 0xB041, 0xCE9B, 0xB042, + 0xCE9C, 0xB043, 0xCE9D, 0xB044, 0xCE9E, 0xB045, 0xCE9F, 0xB046, + 0xCEA0, 0xC4B7, 0xCEA1, 0xC4B8, 0xCEA2, 0xB047, 0xCEA3, 0xC4B9, + 0xCEA4, 0xC4BA, 0xCEA5, 0xC4BB, 0xCEA6, 0xB048, 0xCEA7, 0xB049, + 0xCEA8, 0xB04A, 0xCEA9, 0xB04B, 0xCEAA, 0xB04C, 0xCEAB, 0xB04D, + 0xCEAC, 0xC4BC, 0xCEAD, 0xC4BD, 0xCEAE, 0xB04E, 0xCEAF, 0xB04F, + 0xCEB0, 0xB050, 0xCEB1, 0xB051, 0xCEB2, 0xB052, 0xCEB3, 0xB053, + 0xCEB4, 0xB054, 0xCEB5, 0xB055, 0xCEB6, 0xB056, 0xCEB7, 0xB057, + 0xCEB8, 0xB058, 0xCEB9, 0xB059, 0xCEBA, 0xB05A, 0xCEBB, 0xB061, + 0xCEBC, 0xB062, 0xCEBD, 0xB063, 0xCEBE, 0xB064, 0xCEBF, 0xB065, + 0xCEC0, 0xB066, 0xCEC1, 0xC4BE, 0xCEC2, 0xB067, 0xCEC3, 0xB068, + 0xCEC4, 0xB069, 0xCEC5, 0xB06A, 0xCEC6, 0xB06B, 0xCEC7, 0xB06C, + 0xCEC8, 0xB06D, 0xCEC9, 0xB06E, 0xCECA, 0xB06F, 0xCECB, 0xB070, + 0xCECC, 0xB071, 0xCECD, 0xB072, 0xCECE, 0xB073, 0xCECF, 0xB074, + 0xCED0, 0xB075, 0xCED1, 0xB076, 0xCED2, 0xB077, 0xCED3, 0xB078, + 0xCED4, 0xB079, 0xCED5, 0xB07A, 0xCED6, 0xB081, 0xCED7, 0xB082, + 0xCED8, 0xB083, 0xCED9, 0xB084, 0xCEDA, 0xB085, 0xCEDB, 0xB086, + 0xCEDC, 0xB087, 0xCEDD, 0xB088, 0xCEDE, 0xB089, 0xCEDF, 0xB08A, + 0xCEE0, 0xB08B, 0xCEE1, 0xB08C, 0xCEE2, 0xB08D, 0xCEE3, 0xB08E, + 0xCEE4, 0xC4BF, 0xCEE5, 0xC4C0, 0xCEE6, 0xB08F, 0xCEE7, 0xB090, + 0xCEE8, 0xC4C1, 0xCEE9, 0xB091, 0xCEEA, 0xB092, 0xCEEB, 0xC4C2, + 0xCEEC, 0xC4C3, 0xCEED, 0xB093, 0xCEEE, 0xB094, 0xCEEF, 0xB095, + 0xCEF0, 0xB096, 0xCEF1, 0xB097, 0xCEF2, 0xB098, 0xCEF3, 0xB099, + 0xCEF4, 0xC4C4, 0xCEF5, 0xC4C5, 0xCEF6, 0xB09A, 0xCEF7, 0xC4C6, + 0xCEF8, 0xC4C7, 0xCEF9, 0xC4C8, 0xCEFA, 0xB09B, 0xCEFB, 0xB09C, + 0xCEFC, 0xB09D, 0xCEFD, 0xB09E, 0xCEFE, 0xB09F, 0xCEFF, 0xB0A0, + 0xCF00, 0xC4C9, 0xCF01, 0xC4CA, 0xCF02, 0xB141, 0xCF03, 0xB142, + 0xCF04, 0xC4CB, 0xCF05, 0xB143, 0xCF06, 0xB144, 0xCF07, 0xB145, + 0xCF08, 0xC4CC, 0xCF09, 0xB146, 0xCF0A, 0xB147, 0xCF0B, 0xB148, + 0xCF0C, 0xB149, 0xCF0D, 0xB14A, 0xCF0E, 0xB14B, 0xCF0F, 0xB14C, + 0xCF10, 0xC4CD, 0xCF11, 0xC4CE, 0xCF12, 0xB14D, 0xCF13, 0xC4CF, + 0xCF14, 0xB14E, 0xCF15, 0xC4D0, 0xCF16, 0xB14F, 0xCF17, 0xB150, + 0xCF18, 0xB151, 0xCF19, 0xB152, 0xCF1A, 0xB153, 0xCF1B, 0xB154, + 0xCF1C, 0xC4D1, 0xCF1D, 0xB155, 0xCF1E, 0xB156, 0xCF1F, 0xB157, + 0xCF20, 0xC4D2, 0xCF21, 0xB158, 0xCF22, 0xB159, 0xCF23, 0xB15A, + 0xCF24, 0xC4D3, 0xCF25, 0xB161, 0xCF26, 0xB162, 0xCF27, 0xB163, + 0xCF28, 0xB164, 0xCF29, 0xB165, 0xCF2A, 0xB166, 0xCF2B, 0xB167, + 0xCF2C, 0xC4D4, 0xCF2D, 0xC4D5, 0xCF2E, 0xB168, 0xCF2F, 0xC4D6, + 0xCF30, 0xC4D7, 0xCF31, 0xC4D8, 0xCF32, 0xB169, 0xCF33, 0xB16A, + 0xCF34, 0xB16B, 0xCF35, 0xB16C, 0xCF36, 0xB16D, 0xCF37, 0xB16E, + 0xCF38, 0xC4D9, 0xCF39, 0xB16F, 0xCF3A, 0xB170, 0xCF3B, 0xB171, + 0xCF3C, 0xB172, 0xCF3D, 0xB173, 0xCF3E, 0xB174, 0xCF3F, 0xB175, + 0xCF40, 0xB176, 0xCF41, 0xB177, 0xCF42, 0xB178, 0xCF43, 0xB179, + 0xCF44, 0xB17A, 0xCF45, 0xB181, 0xCF46, 0xB182, 0xCF47, 0xB183, + 0xCF48, 0xB184, 0xCF49, 0xB185, 0xCF4A, 0xB186, 0xCF4B, 0xB187, + 0xCF4C, 0xB188, 0xCF4D, 0xB189, 0xCF4E, 0xB18A, 0xCF4F, 0xB18B, + 0xCF50, 0xB18C, 0xCF51, 0xB18D, 0xCF52, 0xB18E, 0xCF53, 0xB18F, + 0xCF54, 0xC4DA, 0xCF55, 0xC4DB, 0xCF56, 0xB190, 0xCF57, 0xB191, + 0xCF58, 0xC4DC, 0xCF59, 0xB192, 0xCF5A, 0xB193, 0xCF5B, 0xB194, + 0xCF5C, 0xC4DD, 0xCF5D, 0xB195, 0xCF5E, 0xB196, 0xCF5F, 0xB197, + 0xCF60, 0xB198, 0xCF61, 0xB199, 0xCF62, 0xB19A, 0xCF63, 0xB19B, + 0xCF64, 0xC4DE, 0xCF65, 0xC4DF, 0xCF66, 0xB19C, 0xCF67, 0xC4E0, + 0xCF68, 0xB19D, 0xCF69, 0xC4E1, 0xCF6A, 0xB19E, 0xCF6B, 0xB19F, + 0xCF6C, 0xB1A0, 0xCF6D, 0xB241, 0xCF6E, 0xB242, 0xCF6F, 0xB243, + 0xCF70, 0xC4E2, 0xCF71, 0xC4E3, 0xCF72, 0xB244, 0xCF73, 0xB245, + 0xCF74, 0xC4E4, 0xCF75, 0xB246, 0xCF76, 0xB247, 0xCF77, 0xB248, + 0xCF78, 0xC4E5, 0xCF79, 0xB249, 0xCF7A, 0xB24A, 0xCF7B, 0xB24B, + 0xCF7C, 0xB24C, 0xCF7D, 0xB24D, 0xCF7E, 0xB24E, 0xCF7F, 0xB24F, + 0xCF80, 0xC4E6, 0xCF81, 0xB250, 0xCF82, 0xB251, 0xCF83, 0xB252, + 0xCF84, 0xB253, 0xCF85, 0xC4E7, 0xCF86, 0xB254, 0xCF87, 0xB255, + 0xCF88, 0xB256, 0xCF89, 0xB257, 0xCF8A, 0xB258, 0xCF8B, 0xB259, + 0xCF8C, 0xC4E8, 0xCF8D, 0xB25A, 0xCF8E, 0xB261, 0xCF8F, 0xB262, + 0xCF90, 0xB263, 0xCF91, 0xB264, 0xCF92, 0xB265, 0xCF93, 0xB266, + 0xCF94, 0xB267, 0xCF95, 0xB268, 0xCF96, 0xB269, 0xCF97, 0xB26A, + 0xCF98, 0xB26B, 0xCF99, 0xB26C, 0xCF9A, 0xB26D, 0xCF9B, 0xB26E, + 0xCF9C, 0xB26F, 0xCF9D, 0xB270, 0xCF9E, 0xB271, 0xCF9F, 0xB272, + 0xCFA0, 0xB273, 0xCFA1, 0xC4E9, 0xCFA2, 0xB274, 0xCFA3, 0xB275, + 0xCFA4, 0xB276, 0xCFA5, 0xB277, 0xCFA6, 0xB278, 0xCFA7, 0xB279, + 0xCFA8, 0xC4EA, 0xCFA9, 0xB27A, 0xCFAA, 0xB281, 0xCFAB, 0xB282, + 0xCFAC, 0xB283, 0xCFAD, 0xB284, 0xCFAE, 0xB285, 0xCFAF, 0xB286, + 0xCFB0, 0xC4EB, 0xCFB1, 0xB287, 0xCFB2, 0xB288, 0xCFB3, 0xB289, + 0xCFB4, 0xB28A, 0xCFB5, 0xB28B, 0xCFB6, 0xB28C, 0xCFB7, 0xB28D, + 0xCFB8, 0xB28E, 0xCFB9, 0xB28F, 0xCFBA, 0xB290, 0xCFBB, 0xB291, + 0xCFBC, 0xB292, 0xCFBD, 0xB293, 0xCFBE, 0xB294, 0xCFBF, 0xB295, + 0xCFC0, 0xB296, 0xCFC1, 0xB297, 0xCFC2, 0xB298, 0xCFC3, 0xB299, + 0xCFC4, 0xC4EC, 0xCFC5, 0xB29A, 0xCFC6, 0xB29B, 0xCFC7, 0xB29C, + 0xCFC8, 0xB29D, 0xCFC9, 0xB29E, 0xCFCA, 0xB29F, 0xCFCB, 0xB2A0, + 0xCFCC, 0xB341, 0xCFCD, 0xB342, 0xCFCE, 0xB343, 0xCFCF, 0xB344, + 0xCFD0, 0xB345, 0xCFD1, 0xB346, 0xCFD2, 0xB347, 0xCFD3, 0xB348, + 0xCFD4, 0xB349, 0xCFD5, 0xB34A, 0xCFD6, 0xB34B, 0xCFD7, 0xB34C, + 0xCFD8, 0xB34D, 0xCFD9, 0xB34E, 0xCFDA, 0xB34F, 0xCFDB, 0xB350, + 0xCFDC, 0xB351, 0xCFDD, 0xB352, 0xCFDE, 0xB353, 0xCFDF, 0xB354, + 0xCFE0, 0xC4ED, 0xCFE1, 0xC4EE, 0xCFE2, 0xB355, 0xCFE3, 0xB356, + 0xCFE4, 0xC4EF, 0xCFE5, 0xB357, 0xCFE6, 0xB358, 0xCFE7, 0xB359, + 0xCFE8, 0xC4F0, 0xCFE9, 0xB35A, 0xCFEA, 0xB361, 0xCFEB, 0xB362, + 0xCFEC, 0xB363, 0xCFED, 0xB364, 0xCFEE, 0xB365, 0xCFEF, 0xB366, + 0xCFF0, 0xC4F1, 0xCFF1, 0xC4F2, 0xCFF2, 0xB367, 0xCFF3, 0xC4F3, + 0xCFF4, 0xB368, 0xCFF5, 0xC4F4, 0xCFF6, 0xB369, 0xCFF7, 0xB36A, + 0xCFF8, 0xB36B, 0xCFF9, 0xB36C, 0xCFFA, 0xB36D, 0xCFFB, 0xB36E, + 0xCFFC, 0xC4F5, 0xCFFD, 0xB36F, 0xCFFE, 0xB370, 0xCFFF, 0xB371, + 0xD000, 0xC4F6, 0xD001, 0xB372, 0xD002, 0xB373, 0xD003, 0xB374, + 0xD004, 0xC4F7, 0xD005, 0xB375, 0xD006, 0xB376, 0xD007, 0xB377, + 0xD008, 0xB378, 0xD009, 0xB379, 0xD00A, 0xB37A, 0xD00B, 0xB381, + 0xD00C, 0xB382, 0xD00D, 0xB383, 0xD00E, 0xB384, 0xD00F, 0xB385, + 0xD010, 0xB386, 0xD011, 0xC4F8, 0xD012, 0xB387, 0xD013, 0xB388, + 0xD014, 0xB389, 0xD015, 0xB38A, 0xD016, 0xB38B, 0xD017, 0xB38C, + 0xD018, 0xC4F9, 0xD019, 0xB38D, 0xD01A, 0xB38E, 0xD01B, 0xB38F, + 0xD01C, 0xB390, 0xD01D, 0xB391, 0xD01E, 0xB392, 0xD01F, 0xB393, + 0xD020, 0xB394, 0xD021, 0xB395, 0xD022, 0xB396, 0xD023, 0xB397, + 0xD024, 0xB398, 0xD025, 0xB399, 0xD026, 0xB39A, 0xD027, 0xB39B, + 0xD028, 0xB39C, 0xD029, 0xB39D, 0xD02A, 0xB39E, 0xD02B, 0xB39F, + 0xD02C, 0xB3A0, 0xD02D, 0xC4FA, 0xD02E, 0xB441, 0xD02F, 0xB442, + 0xD030, 0xB443, 0xD031, 0xB444, 0xD032, 0xB445, 0xD033, 0xB446, + 0xD034, 0xC4FB, 0xD035, 0xC4FC, 0xD036, 0xB447, 0xD037, 0xB448, + 0xD038, 0xC4FD, 0xD039, 0xB449, 0xD03A, 0xB44A, 0xD03B, 0xB44B, + 0xD03C, 0xC4FE, 0xD03D, 0xB44C, 0xD03E, 0xB44D, 0xD03F, 0xB44E, + 0xD040, 0xB44F, 0xD041, 0xB450, 0xD042, 0xB451, 0xD043, 0xB452, + 0xD044, 0xC5A1, 0xD045, 0xC5A2, 0xD046, 0xB453, 0xD047, 0xC5A3, + 0xD048, 0xB454, 0xD049, 0xC5A4, 0xD04A, 0xB455, 0xD04B, 0xB456, + 0xD04C, 0xB457, 0xD04D, 0xB458, 0xD04E, 0xB459, 0xD04F, 0xB45A, + 0xD050, 0xC5A5, 0xD051, 0xB461, 0xD052, 0xB462, 0xD053, 0xB463, + 0xD054, 0xC5A6, 0xD055, 0xB464, 0xD056, 0xB465, 0xD057, 0xB466, + 0xD058, 0xC5A7, 0xD059, 0xB467, 0xD05A, 0xB468, 0xD05B, 0xB469, + 0xD05C, 0xB46A, 0xD05D, 0xB46B, 0xD05E, 0xB46C, 0xD05F, 0xB46D, + 0xD060, 0xC5A8, 0xD061, 0xB46E, 0xD062, 0xB46F, 0xD063, 0xB470, + 0xD064, 0xB471, 0xD065, 0xB472, 0xD066, 0xB473, 0xD067, 0xB474, + 0xD068, 0xB475, 0xD069, 0xB476, 0xD06A, 0xB477, 0xD06B, 0xB478, + 0xD06C, 0xC5A9, 0xD06D, 0xC5AA, 0xD06E, 0xB479, 0xD06F, 0xB47A, + 0xD070, 0xC5AB, 0xD071, 0xB481, 0xD072, 0xB482, 0xD073, 0xB483, + 0xD074, 0xC5AC, 0xD075, 0xB484, 0xD076, 0xB485, 0xD077, 0xB486, + 0xD078, 0xB487, 0xD079, 0xB488, 0xD07A, 0xB489, 0xD07B, 0xB48A, + 0xD07C, 0xC5AD, 0xD07D, 0xC5AE, 0xD07E, 0xB48B, 0xD07F, 0xB48C, + 0xD080, 0xB48D, 0xD081, 0xC5AF, 0xD082, 0xB48E, 0xD083, 0xB48F, + 0xD084, 0xB490, 0xD085, 0xB491, 0xD086, 0xB492, 0xD087, 0xB493, + 0xD088, 0xB494, 0xD089, 0xB495, 0xD08A, 0xB496, 0xD08B, 0xB497, + 0xD08C, 0xB498, 0xD08D, 0xB499, 0xD08E, 0xB49A, 0xD08F, 0xB49B, + 0xD090, 0xB49C, 0xD091, 0xB49D, 0xD092, 0xB49E, 0xD093, 0xB49F, + 0xD094, 0xB4A0, 0xD095, 0xB541, 0xD096, 0xB542, 0xD097, 0xB543, + 0xD098, 0xB544, 0xD099, 0xB545, 0xD09A, 0xB546, 0xD09B, 0xB547, + 0xD09C, 0xB548, 0xD09D, 0xB549, 0xD09E, 0xB54A, 0xD09F, 0xB54B, + 0xD0A0, 0xB54C, 0xD0A1, 0xB54D, 0xD0A2, 0xB54E, 0xD0A3, 0xB54F, + 0xD0A4, 0xC5B0, 0xD0A5, 0xC5B1, 0xD0A6, 0xB550, 0xD0A7, 0xB551, + 0xD0A8, 0xC5B2, 0xD0A9, 0xB552, 0xD0AA, 0xB553, 0xD0AB, 0xB554, + 0xD0AC, 0xC5B3, 0xD0AD, 0xB555, 0xD0AE, 0xB556, 0xD0AF, 0xB557, + 0xD0B0, 0xB558, 0xD0B1, 0xB559, 0xD0B2, 0xB55A, 0xD0B3, 0xB561, + 0xD0B4, 0xC5B4, 0xD0B5, 0xC5B5, 0xD0B6, 0xB562, 0xD0B7, 0xC5B6, + 0xD0B8, 0xB563, 0xD0B9, 0xC5B7, 0xD0BA, 0xB564, 0xD0BB, 0xB565, + 0xD0BC, 0xB566, 0xD0BD, 0xB567, 0xD0BE, 0xB568, 0xD0BF, 0xB569, + 0xD0C0, 0xC5B8, 0xD0C1, 0xC5B9, 0xD0C2, 0xB56A, 0xD0C3, 0xB56B, + 0xD0C4, 0xC5BA, 0xD0C5, 0xB56C, 0xD0C6, 0xB56D, 0xD0C7, 0xB56E, + 0xD0C8, 0xC5BB, 0xD0C9, 0xC5BC, 0xD0CA, 0xB56F, 0xD0CB, 0xB570, + 0xD0CC, 0xB571, 0xD0CD, 0xB572, 0xD0CE, 0xB573, 0xD0CF, 0xB574, + 0xD0D0, 0xC5BD, 0xD0D1, 0xC5BE, 0xD0D2, 0xB575, 0xD0D3, 0xC5BF, + 0xD0D4, 0xC5C0, 0xD0D5, 0xC5C1, 0xD0D6, 0xB576, 0xD0D7, 0xB577, + 0xD0D8, 0xB578, 0xD0D9, 0xB579, 0xD0DA, 0xB57A, 0xD0DB, 0xB581, + 0xD0DC, 0xC5C2, 0xD0DD, 0xC5C3, 0xD0DE, 0xB582, 0xD0DF, 0xB583, + 0xD0E0, 0xC5C4, 0xD0E1, 0xB584, 0xD0E2, 0xB585, 0xD0E3, 0xB586, + 0xD0E4, 0xC5C5, 0xD0E5, 0xB587, 0xD0E6, 0xB588, 0xD0E7, 0xB589, + 0xD0E8, 0xB58A, 0xD0E9, 0xB58B, 0xD0EA, 0xB58C, 0xD0EB, 0xB58D, + 0xD0EC, 0xC5C6, 0xD0ED, 0xC5C7, 0xD0EE, 0xB58E, 0xD0EF, 0xC5C8, + 0xD0F0, 0xC5C9, 0xD0F1, 0xC5CA, 0xD0F2, 0xB58F, 0xD0F3, 0xB590, + 0xD0F4, 0xB591, 0xD0F5, 0xB592, 0xD0F6, 0xB593, 0xD0F7, 0xB594, + 0xD0F8, 0xC5CB, 0xD0F9, 0xB595, 0xD0FA, 0xB596, 0xD0FB, 0xB597, + 0xD0FC, 0xB598, 0xD0FD, 0xB599, 0xD0FE, 0xB59A, 0xD0FF, 0xB59B, + 0xD100, 0xB59C, 0xD101, 0xB59D, 0xD102, 0xB59E, 0xD103, 0xB59F, + 0xD104, 0xB5A0, 0xD105, 0xB641, 0xD106, 0xB642, 0xD107, 0xB643, + 0xD108, 0xB644, 0xD109, 0xB645, 0xD10A, 0xB646, 0xD10B, 0xB647, + 0xD10C, 0xB648, 0xD10D, 0xC5CC, 0xD10E, 0xB649, 0xD10F, 0xB64A, + 0xD110, 0xB64B, 0xD111, 0xB64C, 0xD112, 0xB64D, 0xD113, 0xB64E, + 0xD114, 0xB64F, 0xD115, 0xB650, 0xD116, 0xB651, 0xD117, 0xB652, + 0xD118, 0xB653, 0xD119, 0xB654, 0xD11A, 0xB655, 0xD11B, 0xB656, + 0xD11C, 0xB657, 0xD11D, 0xB658, 0xD11E, 0xB659, 0xD11F, 0xB65A, + 0xD120, 0xB661, 0xD121, 0xB662, 0xD122, 0xB663, 0xD123, 0xB664, + 0xD124, 0xB665, 0xD125, 0xB666, 0xD126, 0xB667, 0xD127, 0xB668, + 0xD128, 0xB669, 0xD129, 0xB66A, 0xD12A, 0xB66B, 0xD12B, 0xB66C, + 0xD12C, 0xB66D, 0xD12D, 0xB66E, 0xD12E, 0xB66F, 0xD12F, 0xB670, + 0xD130, 0xC5CD, 0xD131, 0xC5CE, 0xD132, 0xB671, 0xD133, 0xB672, + 0xD134, 0xC5CF, 0xD135, 0xB673, 0xD136, 0xB674, 0xD137, 0xB675, + 0xD138, 0xC5D0, 0xD139, 0xB676, 0xD13A, 0xC5D1, 0xD13B, 0xB677, + 0xD13C, 0xB678, 0xD13D, 0xB679, 0xD13E, 0xB67A, 0xD13F, 0xB681, + 0xD140, 0xC5D2, 0xD141, 0xC5D3, 0xD142, 0xB682, 0xD143, 0xC5D4, + 0xD144, 0xC5D5, 0xD145, 0xC5D6, 0xD146, 0xB683, 0xD147, 0xB684, + 0xD148, 0xB685, 0xD149, 0xB686, 0xD14A, 0xB687, 0xD14B, 0xB688, + 0xD14C, 0xC5D7, 0xD14D, 0xC5D8, 0xD14E, 0xB689, 0xD14F, 0xB68A, + 0xD150, 0xC5D9, 0xD151, 0xB68B, 0xD152, 0xB68C, 0xD153, 0xB68D, + 0xD154, 0xC5DA, 0xD155, 0xB68E, 0xD156, 0xB68F, 0xD157, 0xB690, + 0xD158, 0xB691, 0xD159, 0xB692, 0xD15A, 0xB693, 0xD15B, 0xB694, + 0xD15C, 0xC5DB, 0xD15D, 0xC5DC, 0xD15E, 0xB695, 0xD15F, 0xC5DD, + 0xD160, 0xB696, 0xD161, 0xC5DE, 0xD162, 0xB697, 0xD163, 0xB698, + 0xD164, 0xB699, 0xD165, 0xB69A, 0xD166, 0xB69B, 0xD167, 0xB69C, + 0xD168, 0xC5DF, 0xD169, 0xB69D, 0xD16A, 0xB69E, 0xD16B, 0xB69F, + 0xD16C, 0xC5E0, 0xD16D, 0xB6A0, 0xD16E, 0xB741, 0xD16F, 0xB742, + 0xD170, 0xB743, 0xD171, 0xB744, 0xD172, 0xB745, 0xD173, 0xB746, + 0xD174, 0xB747, 0xD175, 0xB748, 0xD176, 0xB749, 0xD177, 0xB74A, + 0xD178, 0xB74B, 0xD179, 0xB74C, 0xD17A, 0xB74D, 0xD17B, 0xB74E, + 0xD17C, 0xC5E1, 0xD17D, 0xB74F, 0xD17E, 0xB750, 0xD17F, 0xB751, + 0xD180, 0xB752, 0xD181, 0xB753, 0xD182, 0xB754, 0xD183, 0xB755, + 0xD184, 0xC5E2, 0xD185, 0xB756, 0xD186, 0xB757, 0xD187, 0xB758, + 0xD188, 0xC5E3, 0xD189, 0xB759, 0xD18A, 0xB75A, 0xD18B, 0xB761, + 0xD18C, 0xB762, 0xD18D, 0xB763, 0xD18E, 0xB764, 0xD18F, 0xB765, + 0xD190, 0xB766, 0xD191, 0xB767, 0xD192, 0xB768, 0xD193, 0xB769, + 0xD194, 0xB76A, 0xD195, 0xB76B, 0xD196, 0xB76C, 0xD197, 0xB76D, + 0xD198, 0xB76E, 0xD199, 0xB76F, 0xD19A, 0xB770, 0xD19B, 0xB771, + 0xD19C, 0xB772, 0xD19D, 0xB773, 0xD19E, 0xB774, 0xD19F, 0xB775, + 0xD1A0, 0xC5E4, 0xD1A1, 0xC5E5, 0xD1A2, 0xB776, 0xD1A3, 0xB777, + 0xD1A4, 0xC5E6, 0xD1A5, 0xB778, 0xD1A6, 0xB779, 0xD1A7, 0xB77A, + 0xD1A8, 0xC5E7, 0xD1A9, 0xB781, 0xD1AA, 0xB782, 0xD1AB, 0xB783, + 0xD1AC, 0xB784, 0xD1AD, 0xB785, 0xD1AE, 0xB786, 0xD1AF, 0xB787, + 0xD1B0, 0xC5E8, 0xD1B1, 0xC5E9, 0xD1B2, 0xB788, 0xD1B3, 0xC5EA, + 0xD1B4, 0xB789, 0xD1B5, 0xC5EB, 0xD1B6, 0xB78A, 0xD1B7, 0xB78B, + 0xD1B8, 0xB78C, 0xD1B9, 0xB78D, 0xD1BA, 0xC5EC, 0xD1BB, 0xB78E, + 0xD1BC, 0xC5ED, 0xD1BD, 0xB78F, 0xD1BE, 0xB790, 0xD1BF, 0xB791, + 0xD1C0, 0xC5EE, 0xD1C1, 0xB792, 0xD1C2, 0xB793, 0xD1C3, 0xB794, + 0xD1C4, 0xB795, 0xD1C5, 0xB796, 0xD1C6, 0xB797, 0xD1C7, 0xB798, + 0xD1C8, 0xB799, 0xD1C9, 0xB79A, 0xD1CA, 0xB79B, 0xD1CB, 0xB79C, + 0xD1CC, 0xB79D, 0xD1CD, 0xB79E, 0xD1CE, 0xB79F, 0xD1CF, 0xB7A0, + 0xD1D0, 0xB841, 0xD1D1, 0xB842, 0xD1D2, 0xB843, 0xD1D3, 0xB844, + 0xD1D4, 0xB845, 0xD1D5, 0xB846, 0xD1D6, 0xB847, 0xD1D7, 0xB848, + 0xD1D8, 0xC5EF, 0xD1D9, 0xB849, 0xD1DA, 0xB84A, 0xD1DB, 0xB84B, + 0xD1DC, 0xB84C, 0xD1DD, 0xB84D, 0xD1DE, 0xB84E, 0xD1DF, 0xB84F, + 0xD1E0, 0xB850, 0xD1E1, 0xB851, 0xD1E2, 0xB852, 0xD1E3, 0xB853, + 0xD1E4, 0xB854, 0xD1E5, 0xB855, 0xD1E6, 0xB856, 0xD1E7, 0xB857, + 0xD1E8, 0xB858, 0xD1E9, 0xB859, 0xD1EA, 0xB85A, 0xD1EB, 0xB861, + 0xD1EC, 0xB862, 0xD1ED, 0xB863, 0xD1EE, 0xB864, 0xD1EF, 0xB865, + 0xD1F0, 0xB866, 0xD1F1, 0xB867, 0xD1F2, 0xB868, 0xD1F3, 0xB869, + 0xD1F4, 0xC5F0, 0xD1F5, 0xB86A, 0xD1F6, 0xB86B, 0xD1F7, 0xB86C, + 0xD1F8, 0xC5F1, 0xD1F9, 0xB86D, 0xD1FA, 0xB86E, 0xD1FB, 0xB86F, + 0xD1FC, 0xB870, 0xD1FD, 0xB871, 0xD1FE, 0xB872, 0xD1FF, 0xB873, + 0xD200, 0xB874, 0xD201, 0xB875, 0xD202, 0xB876, 0xD203, 0xB877, + 0xD204, 0xB878, 0xD205, 0xB879, 0xD206, 0xB87A, 0xD207, 0xC5F2, + 0xD208, 0xB881, 0xD209, 0xC5F3, 0xD20A, 0xB882, 0xD20B, 0xB883, + 0xD20C, 0xB884, 0xD20D, 0xB885, 0xD20E, 0xB886, 0xD20F, 0xB887, + 0xD210, 0xC5F4, 0xD211, 0xB888, 0xD212, 0xB889, 0xD213, 0xB88A, + 0xD214, 0xB88B, 0xD215, 0xB88C, 0xD216, 0xB88D, 0xD217, 0xB88E, + 0xD218, 0xB88F, 0xD219, 0xB890, 0xD21A, 0xB891, 0xD21B, 0xB892, + 0xD21C, 0xB893, 0xD21D, 0xB894, 0xD21E, 0xB895, 0xD21F, 0xB896, + 0xD220, 0xB897, 0xD221, 0xB898, 0xD222, 0xB899, 0xD223, 0xB89A, + 0xD224, 0xB89B, 0xD225, 0xB89C, 0xD226, 0xB89D, 0xD227, 0xB89E, + 0xD228, 0xB89F, 0xD229, 0xB8A0, 0xD22A, 0xB941, 0xD22B, 0xB942, + 0xD22C, 0xC5F5, 0xD22D, 0xC5F6, 0xD22E, 0xB943, 0xD22F, 0xB944, + 0xD230, 0xC5F7, 0xD231, 0xB945, 0xD232, 0xB946, 0xD233, 0xB947, + 0xD234, 0xC5F8, 0xD235, 0xB948, 0xD236, 0xB949, 0xD237, 0xB94A, + 0xD238, 0xB94B, 0xD239, 0xB94C, 0xD23A, 0xB94D, 0xD23B, 0xB94E, + 0xD23C, 0xC5F9, 0xD23D, 0xC5FA, 0xD23E, 0xB94F, 0xD23F, 0xC5FB, + 0xD240, 0xB950, 0xD241, 0xC5FC, 0xD242, 0xB951, 0xD243, 0xB952, + 0xD244, 0xB953, 0xD245, 0xB954, 0xD246, 0xB955, 0xD247, 0xB956, + 0xD248, 0xC5FD, 0xD249, 0xB957, 0xD24A, 0xB958, 0xD24B, 0xB959, + 0xD24C, 0xB95A, 0xD24D, 0xB961, 0xD24E, 0xB962, 0xD24F, 0xB963, + 0xD250, 0xB964, 0xD251, 0xB965, 0xD252, 0xB966, 0xD253, 0xB967, + 0xD254, 0xB968, 0xD255, 0xB969, 0xD256, 0xB96A, 0xD257, 0xB96B, + 0xD258, 0xB96C, 0xD259, 0xB96D, 0xD25A, 0xB96E, 0xD25B, 0xB96F, + 0xD25C, 0xC5FE, 0xD25D, 0xB970, 0xD25E, 0xB971, 0xD25F, 0xB972, + 0xD260, 0xB973, 0xD261, 0xB974, 0xD262, 0xB975, 0xD263, 0xB976, + 0xD264, 0xC6A1, 0xD265, 0xB977, 0xD266, 0xB978, 0xD267, 0xB979, + 0xD268, 0xB97A, 0xD269, 0xB981, 0xD26A, 0xB982, 0xD26B, 0xB983, + 0xD26C, 0xB984, 0xD26D, 0xB985, 0xD26E, 0xB986, 0xD26F, 0xB987, + 0xD270, 0xB988, 0xD271, 0xB989, 0xD272, 0xB98A, 0xD273, 0xB98B, + 0xD274, 0xB98C, 0xD275, 0xB98D, 0xD276, 0xB98E, 0xD277, 0xB98F, + 0xD278, 0xB990, 0xD279, 0xB991, 0xD27A, 0xB992, 0xD27B, 0xB993, + 0xD27C, 0xB994, 0xD27D, 0xB995, 0xD27E, 0xB996, 0xD27F, 0xB997, + 0xD280, 0xC6A2, 0xD281, 0xC6A3, 0xD282, 0xB998, 0xD283, 0xB999, + 0xD284, 0xC6A4, 0xD285, 0xB99A, 0xD286, 0xB99B, 0xD287, 0xB99C, + 0xD288, 0xC6A5, 0xD289, 0xB99D, 0xD28A, 0xB99E, 0xD28B, 0xB99F, + 0xD28C, 0xB9A0, 0xD28D, 0xBA41, 0xD28E, 0xBA42, 0xD28F, 0xBA43, + 0xD290, 0xC6A6, 0xD291, 0xC6A7, 0xD292, 0xBA44, 0xD293, 0xBA45, + 0xD294, 0xBA46, 0xD295, 0xC6A8, 0xD296, 0xBA47, 0xD297, 0xBA48, + 0xD298, 0xBA49, 0xD299, 0xBA4A, 0xD29A, 0xBA4B, 0xD29B, 0xBA4C, + 0xD29C, 0xC6A9, 0xD29D, 0xBA4D, 0xD29E, 0xBA4E, 0xD29F, 0xBA4F, + 0xD2A0, 0xC6AA, 0xD2A1, 0xBA50, 0xD2A2, 0xBA51, 0xD2A3, 0xBA52, + 0xD2A4, 0xC6AB, 0xD2A5, 0xBA53, 0xD2A6, 0xBA54, 0xD2A7, 0xBA55, + 0xD2A8, 0xBA56, 0xD2A9, 0xBA57, 0xD2AA, 0xBA58, 0xD2AB, 0xBA59, + 0xD2AC, 0xC6AC, 0xD2AD, 0xBA5A, 0xD2AE, 0xBA61, 0xD2AF, 0xBA62, + 0xD2B0, 0xBA63, 0xD2B1, 0xC6AD, 0xD2B2, 0xBA64, 0xD2B3, 0xBA65, + 0xD2B4, 0xBA66, 0xD2B5, 0xBA67, 0xD2B6, 0xBA68, 0xD2B7, 0xBA69, + 0xD2B8, 0xC6AE, 0xD2B9, 0xC6AF, 0xD2BA, 0xBA6A, 0xD2BB, 0xBA6B, + 0xD2BC, 0xC6B0, 0xD2BD, 0xBA6C, 0xD2BE, 0xBA6D, 0xD2BF, 0xC6B1, + 0xD2C0, 0xC6B2, 0xD2C1, 0xBA6E, 0xD2C2, 0xC6B3, 0xD2C3, 0xBA6F, + 0xD2C4, 0xBA70, 0xD2C5, 0xBA71, 0xD2C6, 0xBA72, 0xD2C7, 0xBA73, + 0xD2C8, 0xC6B4, 0xD2C9, 0xC6B5, 0xD2CA, 0xBA74, 0xD2CB, 0xC6B6, + 0xD2CC, 0xBA75, 0xD2CD, 0xBA76, 0xD2CE, 0xBA77, 0xD2CF, 0xBA78, + 0xD2D0, 0xBA79, 0xD2D1, 0xBA7A, 0xD2D2, 0xBA81, 0xD2D3, 0xBA82, + 0xD2D4, 0xC6B7, 0xD2D5, 0xBA83, 0xD2D6, 0xBA84, 0xD2D7, 0xBA85, + 0xD2D8, 0xC6B8, 0xD2D9, 0xBA86, 0xD2DA, 0xBA87, 0xD2DB, 0xBA88, + 0xD2DC, 0xC6B9, 0xD2DD, 0xBA89, 0xD2DE, 0xBA8A, 0xD2DF, 0xBA8B, + 0xD2E0, 0xBA8C, 0xD2E1, 0xBA8D, 0xD2E2, 0xBA8E, 0xD2E3, 0xBA8F, + 0xD2E4, 0xC6BA, 0xD2E5, 0xC6BB, 0xD2E6, 0xBA90, 0xD2E7, 0xBA91, + 0xD2E8, 0xBA92, 0xD2E9, 0xBA93, 0xD2EA, 0xBA94, 0xD2EB, 0xBA95, + 0xD2EC, 0xBA96, 0xD2ED, 0xBA97, 0xD2EE, 0xBA98, 0xD2EF, 0xBA99, + 0xD2F0, 0xC6BC, 0xD2F1, 0xC6BD, 0xD2F2, 0xBA9A, 0xD2F3, 0xBA9B, + 0xD2F4, 0xC6BE, 0xD2F5, 0xBA9C, 0xD2F6, 0xBA9D, 0xD2F7, 0xBA9E, + 0xD2F8, 0xC6BF, 0xD2F9, 0xBA9F, 0xD2FA, 0xBAA0, 0xD2FB, 0xBB41, + 0xD2FC, 0xBB42, 0xD2FD, 0xBB43, 0xD2FE, 0xBB44, 0xD2FF, 0xBB45, + 0xD300, 0xC6C0, 0xD301, 0xC6C1, 0xD302, 0xBB46, 0xD303, 0xC6C2, + 0xD304, 0xBB47, 0xD305, 0xC6C3, 0xD306, 0xBB48, 0xD307, 0xBB49, + 0xD308, 0xBB4A, 0xD309, 0xBB4B, 0xD30A, 0xBB4C, 0xD30B, 0xBB4D, + 0xD30C, 0xC6C4, 0xD30D, 0xC6C5, 0xD30E, 0xC6C6, 0xD30F, 0xBB4E, + 0xD310, 0xC6C7, 0xD311, 0xBB4F, 0xD312, 0xBB50, 0xD313, 0xBB51, + 0xD314, 0xC6C8, 0xD315, 0xBB52, 0xD316, 0xC6C9, 0xD317, 0xBB53, + 0xD318, 0xBB54, 0xD319, 0xBB55, 0xD31A, 0xBB56, 0xD31B, 0xBB57, + 0xD31C, 0xC6CA, 0xD31D, 0xC6CB, 0xD31E, 0xBB58, 0xD31F, 0xC6CC, + 0xD320, 0xC6CD, 0xD321, 0xC6CE, 0xD322, 0xBB59, 0xD323, 0xBB5A, + 0xD324, 0xBB61, 0xD325, 0xC6CF, 0xD326, 0xBB62, 0xD327, 0xBB63, + 0xD328, 0xC6D0, 0xD329, 0xC6D1, 0xD32A, 0xBB64, 0xD32B, 0xBB65, + 0xD32C, 0xC6D2, 0xD32D, 0xBB66, 0xD32E, 0xBB67, 0xD32F, 0xBB68, + 0xD330, 0xC6D3, 0xD331, 0xBB69, 0xD332, 0xBB6A, 0xD333, 0xBB6B, + 0xD334, 0xBB6C, 0xD335, 0xBB6D, 0xD336, 0xBB6E, 0xD337, 0xBB6F, + 0xD338, 0xC6D4, 0xD339, 0xC6D5, 0xD33A, 0xBB70, 0xD33B, 0xC6D6, + 0xD33C, 0xC6D7, 0xD33D, 0xC6D8, 0xD33E, 0xBB71, 0xD33F, 0xBB72, + 0xD340, 0xBB73, 0xD341, 0xBB74, 0xD342, 0xBB75, 0xD343, 0xBB76, + 0xD344, 0xC6D9, 0xD345, 0xC6DA, 0xD346, 0xBB77, 0xD347, 0xBB78, + 0xD348, 0xBB79, 0xD349, 0xBB7A, 0xD34A, 0xBB81, 0xD34B, 0xBB82, + 0xD34C, 0xBB83, 0xD34D, 0xBB84, 0xD34E, 0xBB85, 0xD34F, 0xBB86, + 0xD350, 0xBB87, 0xD351, 0xBB88, 0xD352, 0xBB89, 0xD353, 0xBB8A, + 0xD354, 0xBB8B, 0xD355, 0xBB8C, 0xD356, 0xBB8D, 0xD357, 0xBB8E, + 0xD358, 0xBB8F, 0xD359, 0xBB90, 0xD35A, 0xBB91, 0xD35B, 0xBB92, + 0xD35C, 0xBB93, 0xD35D, 0xBB94, 0xD35E, 0xBB95, 0xD35F, 0xBB96, + 0xD360, 0xBB97, 0xD361, 0xBB98, 0xD362, 0xBB99, 0xD363, 0xBB9A, + 0xD364, 0xBB9B, 0xD365, 0xBB9C, 0xD366, 0xBB9D, 0xD367, 0xBB9E, + 0xD368, 0xBB9F, 0xD369, 0xBBA0, 0xD36A, 0xBC41, 0xD36B, 0xBC42, + 0xD36C, 0xBC43, 0xD36D, 0xBC44, 0xD36E, 0xBC45, 0xD36F, 0xBC46, + 0xD370, 0xBC47, 0xD371, 0xBC48, 0xD372, 0xBC49, 0xD373, 0xBC4A, + 0xD374, 0xBC4B, 0xD375, 0xBC4C, 0xD376, 0xBC4D, 0xD377, 0xBC4E, + 0xD378, 0xBC4F, 0xD379, 0xBC50, 0xD37A, 0xBC51, 0xD37B, 0xBC52, + 0xD37C, 0xC6DB, 0xD37D, 0xC6DC, 0xD37E, 0xBC53, 0xD37F, 0xBC54, + 0xD380, 0xC6DD, 0xD381, 0xBC55, 0xD382, 0xBC56, 0xD383, 0xBC57, + 0xD384, 0xC6DE, 0xD385, 0xBC58, 0xD386, 0xBC59, 0xD387, 0xBC5A, + 0xD388, 0xBC61, 0xD389, 0xBC62, 0xD38A, 0xBC63, 0xD38B, 0xBC64, + 0xD38C, 0xC6DF, 0xD38D, 0xC6E0, 0xD38E, 0xBC65, 0xD38F, 0xC6E1, + 0xD390, 0xC6E2, 0xD391, 0xC6E3, 0xD392, 0xBC66, 0xD393, 0xBC67, + 0xD394, 0xBC68, 0xD395, 0xBC69, 0xD396, 0xBC6A, 0xD397, 0xBC6B, + 0xD398, 0xC6E4, 0xD399, 0xC6E5, 0xD39A, 0xBC6C, 0xD39B, 0xBC6D, + 0xD39C, 0xC6E6, 0xD39D, 0xBC6E, 0xD39E, 0xBC6F, 0xD39F, 0xBC70, + 0xD3A0, 0xC6E7, 0xD3A1, 0xBC71, 0xD3A2, 0xBC72, 0xD3A3, 0xBC73, + 0xD3A4, 0xBC74, 0xD3A5, 0xBC75, 0xD3A6, 0xBC76, 0xD3A7, 0xBC77, + 0xD3A8, 0xC6E8, 0xD3A9, 0xC6E9, 0xD3AA, 0xBC78, 0xD3AB, 0xC6EA, + 0xD3AC, 0xBC79, 0xD3AD, 0xC6EB, 0xD3AE, 0xBC7A, 0xD3AF, 0xBC81, + 0xD3B0, 0xBC82, 0xD3B1, 0xBC83, 0xD3B2, 0xBC84, 0xD3B3, 0xBC85, + 0xD3B4, 0xC6EC, 0xD3B5, 0xBC86, 0xD3B6, 0xBC87, 0xD3B7, 0xBC88, + 0xD3B8, 0xC6ED, 0xD3B9, 0xBC89, 0xD3BA, 0xBC8A, 0xD3BB, 0xBC8B, + 0xD3BC, 0xC6EE, 0xD3BD, 0xBC8C, 0xD3BE, 0xBC8D, 0xD3BF, 0xBC8E, + 0xD3C0, 0xBC8F, 0xD3C1, 0xBC90, 0xD3C2, 0xBC91, 0xD3C3, 0xBC92, + 0xD3C4, 0xC6EF, 0xD3C5, 0xC6F0, 0xD3C6, 0xBC93, 0xD3C7, 0xBC94, + 0xD3C8, 0xC6F1, 0xD3C9, 0xC6F2, 0xD3CA, 0xBC95, 0xD3CB, 0xBC96, + 0xD3CC, 0xBC97, 0xD3CD, 0xBC98, 0xD3CE, 0xBC99, 0xD3CF, 0xBC9A, + 0xD3D0, 0xC6F3, 0xD3D1, 0xBC9B, 0xD3D2, 0xBC9C, 0xD3D3, 0xBC9D, + 0xD3D4, 0xBC9E, 0xD3D5, 0xBC9F, 0xD3D6, 0xBCA0, 0xD3D7, 0xBD41, + 0xD3D8, 0xC6F4, 0xD3D9, 0xBD42, 0xD3DA, 0xBD43, 0xD3DB, 0xBD44, + 0xD3DC, 0xBD45, 0xD3DD, 0xBD46, 0xD3DE, 0xBD47, 0xD3DF, 0xBD48, + 0xD3E0, 0xBD49, 0xD3E1, 0xC6F5, 0xD3E2, 0xBD4A, 0xD3E3, 0xC6F6, + 0xD3E4, 0xBD4B, 0xD3E5, 0xBD4C, 0xD3E6, 0xBD4D, 0xD3E7, 0xBD4E, + 0xD3E8, 0xBD4F, 0xD3E9, 0xBD50, 0xD3EA, 0xBD51, 0xD3EB, 0xBD52, + 0xD3EC, 0xC6F7, 0xD3ED, 0xC6F8, 0xD3EE, 0xBD53, 0xD3EF, 0xBD54, + 0xD3F0, 0xC6F9, 0xD3F1, 0xBD55, 0xD3F2, 0xBD56, 0xD3F3, 0xBD57, + 0xD3F4, 0xC6FA, 0xD3F5, 0xBD58, 0xD3F6, 0xBD59, 0xD3F7, 0xBD5A, + 0xD3F8, 0xBD61, 0xD3F9, 0xBD62, 0xD3FA, 0xBD63, 0xD3FB, 0xBD64, + 0xD3FC, 0xC6FB, 0xD3FD, 0xC6FC, 0xD3FE, 0xBD65, 0xD3FF, 0xC6FD, + 0xD400, 0xBD66, 0xD401, 0xC6FE, 0xD402, 0xBD67, 0xD403, 0xBD68, + 0xD404, 0xBD69, 0xD405, 0xBD6A, 0xD406, 0xBD6B, 0xD407, 0xBD6C, + 0xD408, 0xC7A1, 0xD409, 0xBD6D, 0xD40A, 0xBD6E, 0xD40B, 0xBD6F, + 0xD40C, 0xBD70, 0xD40D, 0xBD71, 0xD40E, 0xBD72, 0xD40F, 0xBD73, + 0xD410, 0xBD74, 0xD411, 0xBD75, 0xD412, 0xBD76, 0xD413, 0xBD77, + 0xD414, 0xBD78, 0xD415, 0xBD79, 0xD416, 0xBD7A, 0xD417, 0xBD81, + 0xD418, 0xBD82, 0xD419, 0xBD83, 0xD41A, 0xBD84, 0xD41B, 0xBD85, + 0xD41C, 0xBD86, 0xD41D, 0xC7A2, 0xD41E, 0xBD87, 0xD41F, 0xBD88, + 0xD420, 0xBD89, 0xD421, 0xBD8A, 0xD422, 0xBD8B, 0xD423, 0xBD8C, + 0xD424, 0xBD8D, 0xD425, 0xBD8E, 0xD426, 0xBD8F, 0xD427, 0xBD90, + 0xD428, 0xBD91, 0xD429, 0xBD92, 0xD42A, 0xBD93, 0xD42B, 0xBD94, + 0xD42C, 0xBD95, 0xD42D, 0xBD96, 0xD42E, 0xBD97, 0xD42F, 0xBD98, + 0xD430, 0xBD99, 0xD431, 0xBD9A, 0xD432, 0xBD9B, 0xD433, 0xBD9C, + 0xD434, 0xBD9D, 0xD435, 0xBD9E, 0xD436, 0xBD9F, 0xD437, 0xBDA0, + 0xD438, 0xBE41, 0xD439, 0xBE42, 0xD43A, 0xBE43, 0xD43B, 0xBE44, + 0xD43C, 0xBE45, 0xD43D, 0xBE46, 0xD43E, 0xBE47, 0xD43F, 0xBE48, + 0xD440, 0xC7A3, 0xD441, 0xBE49, 0xD442, 0xBE4A, 0xD443, 0xBE4B, + 0xD444, 0xC7A4, 0xD445, 0xBE4C, 0xD446, 0xBE4D, 0xD447, 0xBE4E, + 0xD448, 0xBE4F, 0xD449, 0xBE50, 0xD44A, 0xBE51, 0xD44B, 0xBE52, + 0xD44C, 0xBE53, 0xD44D, 0xBE54, 0xD44E, 0xBE55, 0xD44F, 0xBE56, + 0xD450, 0xBE57, 0xD451, 0xBE58, 0xD452, 0xBE59, 0xD453, 0xBE5A, + 0xD454, 0xBE61, 0xD455, 0xBE62, 0xD456, 0xBE63, 0xD457, 0xBE64, + 0xD458, 0xBE65, 0xD459, 0xBE66, 0xD45A, 0xBE67, 0xD45B, 0xBE68, + 0xD45C, 0xC7A5, 0xD45D, 0xBE69, 0xD45E, 0xBE6A, 0xD45F, 0xBE6B, + 0xD460, 0xC7A6, 0xD461, 0xBE6C, 0xD462, 0xBE6D, 0xD463, 0xBE6E, + 0xD464, 0xC7A7, 0xD465, 0xBE6F, 0xD466, 0xBE70, 0xD467, 0xBE71, + 0xD468, 0xBE72, 0xD469, 0xBE73, 0xD46A, 0xBE74, 0xD46B, 0xBE75, + 0xD46C, 0xBE76, 0xD46D, 0xC7A8, 0xD46E, 0xBE77, 0xD46F, 0xC7A9, + 0xD470, 0xBE78, 0xD471, 0xBE79, 0xD472, 0xBE7A, 0xD473, 0xBE81, + 0xD474, 0xBE82, 0xD475, 0xBE83, 0xD476, 0xBE84, 0xD477, 0xBE85, + 0xD478, 0xC7AA, 0xD479, 0xC7AB, 0xD47A, 0xBE86, 0xD47B, 0xBE87, + 0xD47C, 0xC7AC, 0xD47D, 0xBE88, 0xD47E, 0xBE89, 0xD47F, 0xC7AD, + 0xD480, 0xC7AE, 0xD481, 0xBE8A, 0xD482, 0xC7AF, 0xD483, 0xBE8B, + 0xD484, 0xBE8C, 0xD485, 0xBE8D, 0xD486, 0xBE8E, 0xD487, 0xBE8F, + 0xD488, 0xC7B0, 0xD489, 0xC7B1, 0xD48A, 0xBE90, 0xD48B, 0xC7B2, + 0xD48C, 0xBE91, 0xD48D, 0xC7B3, 0xD48E, 0xBE92, 0xD48F, 0xBE93, + 0xD490, 0xBE94, 0xD491, 0xBE95, 0xD492, 0xBE96, 0xD493, 0xBE97, + 0xD494, 0xC7B4, 0xD495, 0xBE98, 0xD496, 0xBE99, 0xD497, 0xBE9A, + 0xD498, 0xBE9B, 0xD499, 0xBE9C, 0xD49A, 0xBE9D, 0xD49B, 0xBE9E, + 0xD49C, 0xBE9F, 0xD49D, 0xBEA0, 0xD49E, 0xBF41, 0xD49F, 0xBF42, + 0xD4A0, 0xBF43, 0xD4A1, 0xBF44, 0xD4A2, 0xBF45, 0xD4A3, 0xBF46, + 0xD4A4, 0xBF47, 0xD4A5, 0xBF48, 0xD4A6, 0xBF49, 0xD4A7, 0xBF4A, + 0xD4A8, 0xBF4B, 0xD4A9, 0xC7B5, 0xD4AA, 0xBF4C, 0xD4AB, 0xBF4D, + 0xD4AC, 0xBF4E, 0xD4AD, 0xBF4F, 0xD4AE, 0xBF50, 0xD4AF, 0xBF51, + 0xD4B0, 0xBF52, 0xD4B1, 0xBF53, 0xD4B2, 0xBF54, 0xD4B3, 0xBF55, + 0xD4B4, 0xBF56, 0xD4B5, 0xBF57, 0xD4B6, 0xBF58, 0xD4B7, 0xBF59, + 0xD4B8, 0xBF5A, 0xD4B9, 0xBF61, 0xD4BA, 0xBF62, 0xD4BB, 0xBF63, + 0xD4BC, 0xBF64, 0xD4BD, 0xBF65, 0xD4BE, 0xBF66, 0xD4BF, 0xBF67, + 0xD4C0, 0xBF68, 0xD4C1, 0xBF69, 0xD4C2, 0xBF6A, 0xD4C3, 0xBF6B, + 0xD4C4, 0xBF6C, 0xD4C5, 0xBF6D, 0xD4C6, 0xBF6E, 0xD4C7, 0xBF6F, + 0xD4C8, 0xBF70, 0xD4C9, 0xBF71, 0xD4CA, 0xBF72, 0xD4CB, 0xBF73, + 0xD4CC, 0xC7B6, 0xD4CD, 0xBF74, 0xD4CE, 0xBF75, 0xD4CF, 0xBF76, + 0xD4D0, 0xC7B7, 0xD4D1, 0xBF77, 0xD4D2, 0xBF78, 0xD4D3, 0xBF79, + 0xD4D4, 0xC7B8, 0xD4D5, 0xBF7A, 0xD4D6, 0xBF81, 0xD4D7, 0xBF82, + 0xD4D8, 0xBF83, 0xD4D9, 0xBF84, 0xD4DA, 0xBF85, 0xD4DB, 0xBF86, + 0xD4DC, 0xC7B9, 0xD4DD, 0xBF87, 0xD4DE, 0xBF88, 0xD4DF, 0xC7BA, + 0xD4E0, 0xBF89, 0xD4E1, 0xBF8A, 0xD4E2, 0xBF8B, 0xD4E3, 0xBF8C, + 0xD4E4, 0xBF8D, 0xD4E5, 0xBF8E, 0xD4E6, 0xBF8F, 0xD4E7, 0xBF90, + 0xD4E8, 0xC7BB, 0xD4E9, 0xBF91, 0xD4EA, 0xBF92, 0xD4EB, 0xBF93, + 0xD4EC, 0xC7BC, 0xD4ED, 0xBF94, 0xD4EE, 0xBF95, 0xD4EF, 0xBF96, + 0xD4F0, 0xC7BD, 0xD4F1, 0xBF97, 0xD4F2, 0xBF98, 0xD4F3, 0xBF99, + 0xD4F4, 0xBF9A, 0xD4F5, 0xBF9B, 0xD4F6, 0xBF9C, 0xD4F7, 0xBF9D, + 0xD4F8, 0xC7BE, 0xD4F9, 0xBF9E, 0xD4FA, 0xBF9F, 0xD4FB, 0xC7BF, + 0xD4FC, 0xBFA0, 0xD4FD, 0xC7C0, 0xD4FE, 0xC041, 0xD4FF, 0xC042, + 0xD500, 0xC043, 0xD501, 0xC044, 0xD502, 0xC045, 0xD503, 0xC046, + 0xD504, 0xC7C1, 0xD505, 0xC047, 0xD506, 0xC048, 0xD507, 0xC049, + 0xD508, 0xC7C2, 0xD509, 0xC04A, 0xD50A, 0xC04B, 0xD50B, 0xC04C, + 0xD50C, 0xC7C3, 0xD50D, 0xC04D, 0xD50E, 0xC04E, 0xD50F, 0xC04F, + 0xD510, 0xC050, 0xD511, 0xC051, 0xD512, 0xC052, 0xD513, 0xC053, + 0xD514, 0xC7C4, 0xD515, 0xC7C5, 0xD516, 0xC054, 0xD517, 0xC7C6, + 0xD518, 0xC055, 0xD519, 0xC056, 0xD51A, 0xC057, 0xD51B, 0xC058, + 0xD51C, 0xC059, 0xD51D, 0xC05A, 0xD51E, 0xC061, 0xD51F, 0xC062, + 0xD520, 0xC063, 0xD521, 0xC064, 0xD522, 0xC065, 0xD523, 0xC066, + 0xD524, 0xC067, 0xD525, 0xC068, 0xD526, 0xC069, 0xD527, 0xC06A, + 0xD528, 0xC06B, 0xD529, 0xC06C, 0xD52A, 0xC06D, 0xD52B, 0xC06E, + 0xD52C, 0xC06F, 0xD52D, 0xC070, 0xD52E, 0xC071, 0xD52F, 0xC072, + 0xD530, 0xC073, 0xD531, 0xC074, 0xD532, 0xC075, 0xD533, 0xC076, + 0xD534, 0xC077, 0xD535, 0xC078, 0xD536, 0xC079, 0xD537, 0xC07A, + 0xD538, 0xC081, 0xD539, 0xC082, 0xD53A, 0xC083, 0xD53B, 0xC084, + 0xD53C, 0xC7C7, 0xD53D, 0xC7C8, 0xD53E, 0xC085, 0xD53F, 0xC086, + 0xD540, 0xC7C9, 0xD541, 0xC087, 0xD542, 0xC088, 0xD543, 0xC089, + 0xD544, 0xC7CA, 0xD545, 0xC08A, 0xD546, 0xC08B, 0xD547, 0xC08C, + 0xD548, 0xC08D, 0xD549, 0xC08E, 0xD54A, 0xC08F, 0xD54B, 0xC090, + 0xD54C, 0xC7CB, 0xD54D, 0xC7CC, 0xD54E, 0xC091, 0xD54F, 0xC7CD, + 0xD550, 0xC092, 0xD551, 0xC7CE, 0xD552, 0xC093, 0xD553, 0xC094, + 0xD554, 0xC095, 0xD555, 0xC096, 0xD556, 0xC097, 0xD557, 0xC098, + 0xD558, 0xC7CF, 0xD559, 0xC7D0, 0xD55A, 0xC099, 0xD55B, 0xC09A, + 0xD55C, 0xC7D1, 0xD55D, 0xC09B, 0xD55E, 0xC09C, 0xD55F, 0xC09D, + 0xD560, 0xC7D2, 0xD561, 0xC09E, 0xD562, 0xC09F, 0xD563, 0xC0A0, + 0xD564, 0xC141, 0xD565, 0xC7D3, 0xD566, 0xC142, 0xD567, 0xC143, + 0xD568, 0xC7D4, 0xD569, 0xC7D5, 0xD56A, 0xC144, 0xD56B, 0xC7D6, + 0xD56C, 0xC145, 0xD56D, 0xC7D7, 0xD56E, 0xC146, 0xD56F, 0xC147, + 0xD570, 0xC148, 0xD571, 0xC149, 0xD572, 0xC14A, 0xD573, 0xC14B, + 0xD574, 0xC7D8, 0xD575, 0xC7D9, 0xD576, 0xC14C, 0xD577, 0xC14D, + 0xD578, 0xC7DA, 0xD579, 0xC14E, 0xD57A, 0xC14F, 0xD57B, 0xC150, + 0xD57C, 0xC7DB, 0xD57D, 0xC151, 0xD57E, 0xC152, 0xD57F, 0xC153, + 0xD580, 0xC154, 0xD581, 0xC155, 0xD582, 0xC156, 0xD583, 0xC157, + 0xD584, 0xC7DC, 0xD585, 0xC7DD, 0xD586, 0xC158, 0xD587, 0xC7DE, + 0xD588, 0xC7DF, 0xD589, 0xC7E0, 0xD58A, 0xC159, 0xD58B, 0xC15A, + 0xD58C, 0xC161, 0xD58D, 0xC162, 0xD58E, 0xC163, 0xD58F, 0xC164, + 0xD590, 0xC7E1, 0xD591, 0xC165, 0xD592, 0xC166, 0xD593, 0xC167, + 0xD594, 0xC168, 0xD595, 0xC169, 0xD596, 0xC16A, 0xD597, 0xC16B, + 0xD598, 0xC16C, 0xD599, 0xC16D, 0xD59A, 0xC16E, 0xD59B, 0xC16F, + 0xD59C, 0xC170, 0xD59D, 0xC171, 0xD59E, 0xC172, 0xD59F, 0xC173, + 0xD5A0, 0xC174, 0xD5A1, 0xC175, 0xD5A2, 0xC176, 0xD5A3, 0xC177, + 0xD5A4, 0xC178, 0xD5A5, 0xC7E2, 0xD5A6, 0xC179, 0xD5A7, 0xC17A, + 0xD5A8, 0xC181, 0xD5A9, 0xC182, 0xD5AA, 0xC183, 0xD5AB, 0xC184, + 0xD5AC, 0xC185, 0xD5AD, 0xC186, 0xD5AE, 0xC187, 0xD5AF, 0xC188, + 0xD5B0, 0xC189, 0xD5B1, 0xC18A, 0xD5B2, 0xC18B, 0xD5B3, 0xC18C, + 0xD5B4, 0xC18D, 0xD5B5, 0xC18E, 0xD5B6, 0xC18F, 0xD5B7, 0xC190, + 0xD5B8, 0xC191, 0xD5B9, 0xC192, 0xD5BA, 0xC193, 0xD5BB, 0xC194, + 0xD5BC, 0xC195, 0xD5BD, 0xC196, 0xD5BE, 0xC197, 0xD5BF, 0xC198, + 0xD5C0, 0xC199, 0xD5C1, 0xC19A, 0xD5C2, 0xC19B, 0xD5C3, 0xC19C, + 0xD5C4, 0xC19D, 0xD5C5, 0xC19E, 0xD5C6, 0xC19F, 0xD5C7, 0xC1A0, + 0xD5C8, 0xC7E3, 0xD5C9, 0xC7E4, 0xD5CA, 0xC241, 0xD5CB, 0xC242, + 0xD5CC, 0xC7E5, 0xD5CD, 0xC243, 0xD5CE, 0xC244, 0xD5CF, 0xC245, + 0xD5D0, 0xC7E6, 0xD5D1, 0xC246, 0xD5D2, 0xC7E7, 0xD5D3, 0xC247, + 0xD5D4, 0xC248, 0xD5D5, 0xC249, 0xD5D6, 0xC24A, 0xD5D7, 0xC24B, + 0xD5D8, 0xC7E8, 0xD5D9, 0xC7E9, 0xD5DA, 0xC24C, 0xD5DB, 0xC7EA, + 0xD5DC, 0xC24D, 0xD5DD, 0xC7EB, 0xD5DE, 0xC24E, 0xD5DF, 0xC24F, + 0xD5E0, 0xC250, 0xD5E1, 0xC251, 0xD5E2, 0xC252, 0xD5E3, 0xC253, + 0xD5E4, 0xC7EC, 0xD5E5, 0xC7ED, 0xD5E6, 0xC254, 0xD5E7, 0xC255, + 0xD5E8, 0xC7EE, 0xD5E9, 0xC256, 0xD5EA, 0xC257, 0xD5EB, 0xC258, + 0xD5EC, 0xC7EF, 0xD5ED, 0xC259, 0xD5EE, 0xC25A, 0xD5EF, 0xC261, + 0xD5F0, 0xC262, 0xD5F1, 0xC263, 0xD5F2, 0xC264, 0xD5F3, 0xC265, + 0xD5F4, 0xC7F0, 0xD5F5, 0xC7F1, 0xD5F6, 0xC266, 0xD5F7, 0xC7F2, + 0xD5F8, 0xC267, 0xD5F9, 0xC7F3, 0xD5FA, 0xC268, 0xD5FB, 0xC269, + 0xD5FC, 0xC26A, 0xD5FD, 0xC26B, 0xD5FE, 0xC26C, 0xD5FF, 0xC26D, + 0xD600, 0xC7F4, 0xD601, 0xC7F5, 0xD602, 0xC26E, 0xD603, 0xC26F, + 0xD604, 0xC7F6, 0xD605, 0xC270, 0xD606, 0xC271, 0xD607, 0xC272, + 0xD608, 0xC7F7, 0xD609, 0xC273, 0xD60A, 0xC274, 0xD60B, 0xC275, + 0xD60C, 0xC276, 0xD60D, 0xC277, 0xD60E, 0xC278, 0xD60F, 0xC279, + 0xD610, 0xC7F8, 0xD611, 0xC7F9, 0xD612, 0xC27A, 0xD613, 0xC7FA, + 0xD614, 0xC7FB, 0xD615, 0xC7FC, 0xD616, 0xC281, 0xD617, 0xC282, + 0xD618, 0xC283, 0xD619, 0xC284, 0xD61A, 0xC285, 0xD61B, 0xC286, + 0xD61C, 0xC7FD, 0xD61D, 0xC287, 0xD61E, 0xC288, 0xD61F, 0xC289, + 0xD620, 0xC7FE, 0xD621, 0xC28A, 0xD622, 0xC28B, 0xD623, 0xC28C, + 0xD624, 0xC8A1, 0xD625, 0xC28D, 0xD626, 0xC28E, 0xD627, 0xC28F, + 0xD628, 0xC290, 0xD629, 0xC291, 0xD62A, 0xC292, 0xD62B, 0xC293, + 0xD62C, 0xC294, 0xD62D, 0xC8A2, 0xD62E, 0xC295, 0xD62F, 0xC296, + 0xD630, 0xC297, 0xD631, 0xC298, 0xD632, 0xC299, 0xD633, 0xC29A, + 0xD634, 0xC29B, 0xD635, 0xC29C, 0xD636, 0xC29D, 0xD637, 0xC29E, + 0xD638, 0xC8A3, 0xD639, 0xC8A4, 0xD63A, 0xC29F, 0xD63B, 0xC2A0, + 0xD63C, 0xC8A5, 0xD63D, 0xC341, 0xD63E, 0xC342, 0xD63F, 0xC343, + 0xD640, 0xC8A6, 0xD641, 0xC344, 0xD642, 0xC345, 0xD643, 0xC346, + 0xD644, 0xC347, 0xD645, 0xC8A7, 0xD646, 0xC348, 0xD647, 0xC349, + 0xD648, 0xC8A8, 0xD649, 0xC8A9, 0xD64A, 0xC34A, 0xD64B, 0xC8AA, + 0xD64C, 0xC34B, 0xD64D, 0xC8AB, 0xD64E, 0xC34C, 0xD64F, 0xC34D, + 0xD650, 0xC34E, 0xD651, 0xC8AC, 0xD652, 0xC34F, 0xD653, 0xC350, + 0xD654, 0xC8AD, 0xD655, 0xC8AE, 0xD656, 0xC351, 0xD657, 0xC352, + 0xD658, 0xC8AF, 0xD659, 0xC353, 0xD65A, 0xC354, 0xD65B, 0xC355, + 0xD65C, 0xC8B0, 0xD65D, 0xC356, 0xD65E, 0xC357, 0xD65F, 0xC358, + 0xD660, 0xC359, 0xD661, 0xC35A, 0xD662, 0xC361, 0xD663, 0xC362, + 0xD664, 0xC363, 0xD665, 0xC364, 0xD666, 0xC365, 0xD667, 0xC8B1, + 0xD668, 0xC366, 0xD669, 0xC8B2, 0xD66A, 0xC367, 0xD66B, 0xC368, + 0xD66C, 0xC369, 0xD66D, 0xC36A, 0xD66E, 0xC36B, 0xD66F, 0xC36C, + 0xD670, 0xC8B3, 0xD671, 0xC8B4, 0xD672, 0xC36D, 0xD673, 0xC36E, + 0xD674, 0xC8B5, 0xD675, 0xC36F, 0xD676, 0xC370, 0xD677, 0xC371, + 0xD678, 0xC372, 0xD679, 0xC373, 0xD67A, 0xC374, 0xD67B, 0xC375, + 0xD67C, 0xC376, 0xD67D, 0xC377, 0xD67E, 0xC378, 0xD67F, 0xC379, + 0xD680, 0xC37A, 0xD681, 0xC381, 0xD682, 0xC382, 0xD683, 0xC8B6, + 0xD684, 0xC383, 0xD685, 0xC8B7, 0xD686, 0xC384, 0xD687, 0xC385, + 0xD688, 0xC386, 0xD689, 0xC387, 0xD68A, 0xC388, 0xD68B, 0xC389, + 0xD68C, 0xC8B8, 0xD68D, 0xC8B9, 0xD68E, 0xC38A, 0xD68F, 0xC38B, + 0xD690, 0xC8BA, 0xD691, 0xC38C, 0xD692, 0xC38D, 0xD693, 0xC38E, + 0xD694, 0xC8BB, 0xD695, 0xC38F, 0xD696, 0xC390, 0xD697, 0xC391, + 0xD698, 0xC392, 0xD699, 0xC393, 0xD69A, 0xC394, 0xD69B, 0xC395, + 0xD69C, 0xC396, 0xD69D, 0xC8BC, 0xD69E, 0xC397, 0xD69F, 0xC8BD, + 0xD6A0, 0xC398, 0xD6A1, 0xC8BE, 0xD6A2, 0xC399, 0xD6A3, 0xC39A, + 0xD6A4, 0xC39B, 0xD6A5, 0xC39C, 0xD6A6, 0xC39D, 0xD6A7, 0xC39E, + 0xD6A8, 0xC8BF, 0xD6A9, 0xC39F, 0xD6AA, 0xC3A0, 0xD6AB, 0xC441, + 0xD6AC, 0xC8C0, 0xD6AD, 0xC442, 0xD6AE, 0xC443, 0xD6AF, 0xC444, + 0xD6B0, 0xC8C1, 0xD6B1, 0xC445, 0xD6B2, 0xC446, 0xD6B3, 0xC447, + 0xD6B4, 0xC448, 0xD6B5, 0xC449, 0xD6B6, 0xC44A, 0xD6B7, 0xC44B, + 0xD6B8, 0xC44C, 0xD6B9, 0xC8C2, 0xD6BA, 0xC44D, 0xD6BB, 0xC8C3, + 0xD6BC, 0xC44E, 0xD6BD, 0xC44F, 0xD6BE, 0xC450, 0xD6BF, 0xC451, + 0xD6C0, 0xC452, 0xD6C1, 0xC453, 0xD6C2, 0xC454, 0xD6C3, 0xC455, + 0xD6C4, 0xC8C4, 0xD6C5, 0xC8C5, 0xD6C6, 0xC456, 0xD6C7, 0xC457, + 0xD6C8, 0xC8C6, 0xD6C9, 0xC458, 0xD6CA, 0xC459, 0xD6CB, 0xC45A, + 0xD6CC, 0xC8C7, 0xD6CD, 0xC461, 0xD6CE, 0xC462, 0xD6CF, 0xC463, + 0xD6D0, 0xC464, 0xD6D1, 0xC8C8, 0xD6D2, 0xC465, 0xD6D3, 0xC466, + 0xD6D4, 0xC8C9, 0xD6D5, 0xC467, 0xD6D6, 0xC468, 0xD6D7, 0xC8CA, + 0xD6D8, 0xC469, 0xD6D9, 0xC8CB, 0xD6DA, 0xC46A, 0xD6DB, 0xC46B, + 0xD6DC, 0xC46C, 0xD6DD, 0xC46D, 0xD6DE, 0xC46E, 0xD6DF, 0xC46F, + 0xD6E0, 0xC8CC, 0xD6E1, 0xC470, 0xD6E2, 0xC471, 0xD6E3, 0xC472, + 0xD6E4, 0xC8CD, 0xD6E5, 0xC473, 0xD6E6, 0xC474, 0xD6E7, 0xC475, + 0xD6E8, 0xC8CE, 0xD6E9, 0xC476, 0xD6EA, 0xC477, 0xD6EB, 0xC478, + 0xD6EC, 0xC479, 0xD6ED, 0xC47A, 0xD6EE, 0xC481, 0xD6EF, 0xC482, + 0xD6F0, 0xC8CF, 0xD6F1, 0xC483, 0xD6F2, 0xC484, 0xD6F3, 0xC485, + 0xD6F4, 0xC486, 0xD6F5, 0xC8D0, 0xD6F6, 0xC487, 0xD6F7, 0xC488, + 0xD6F8, 0xC489, 0xD6F9, 0xC48A, 0xD6FA, 0xC48B, 0xD6FB, 0xC48C, + 0xD6FC, 0xC8D1, 0xD6FD, 0xC8D2, 0xD6FE, 0xC48D, 0xD6FF, 0xC48E, + 0xD700, 0xC8D3, 0xD701, 0xC48F, 0xD702, 0xC490, 0xD703, 0xC491, + 0xD704, 0xC8D4, 0xD705, 0xC492, 0xD706, 0xC493, 0xD707, 0xC494, + 0xD708, 0xC495, 0xD709, 0xC496, 0xD70A, 0xC497, 0xD70B, 0xC498, + 0xD70C, 0xC499, 0xD70D, 0xC49A, 0xD70E, 0xC49B, 0xD70F, 0xC49C, + 0xD710, 0xC49D, 0xD711, 0xC8D5, 0xD712, 0xC49E, 0xD713, 0xC49F, + 0xD714, 0xC4A0, 0xD715, 0xC541, 0xD716, 0xC542, 0xD717, 0xC543, + 0xD718, 0xC8D6, 0xD719, 0xC8D7, 0xD71A, 0xC544, 0xD71B, 0xC545, + 0xD71C, 0xC8D8, 0xD71D, 0xC546, 0xD71E, 0xC547, 0xD71F, 0xC548, + 0xD720, 0xC8D9, 0xD721, 0xC549, 0xD722, 0xC54A, 0xD723, 0xC54B, + 0xD724, 0xC54C, 0xD725, 0xC54D, 0xD726, 0xC54E, 0xD727, 0xC54F, + 0xD728, 0xC8DA, 0xD729, 0xC8DB, 0xD72A, 0xC550, 0xD72B, 0xC8DC, + 0xD72C, 0xC551, 0xD72D, 0xC8DD, 0xD72E, 0xC552, 0xD72F, 0xC553, + 0xD730, 0xC554, 0xD731, 0xC555, 0xD732, 0xC556, 0xD733, 0xC557, + 0xD734, 0xC8DE, 0xD735, 0xC8DF, 0xD736, 0xC558, 0xD737, 0xC559, + 0xD738, 0xC8E0, 0xD739, 0xC55A, 0xD73A, 0xC561, 0xD73B, 0xC562, + 0xD73C, 0xC8E1, 0xD73D, 0xC563, 0xD73E, 0xC564, 0xD73F, 0xC565, + 0xD740, 0xC566, 0xD741, 0xC567, 0xD742, 0xC568, 0xD743, 0xC569, + 0xD744, 0xC8E2, 0xD745, 0xC56A, 0xD746, 0xC56B, 0xD747, 0xC8E3, + 0xD748, 0xC56C, 0xD749, 0xC8E4, 0xD74A, 0xC56D, 0xD74B, 0xC56E, + 0xD74C, 0xC56F, 0xD74D, 0xC570, 0xD74E, 0xC571, 0xD74F, 0xC572, + 0xD750, 0xC8E5, 0xD751, 0xC8E6, 0xD752, 0xC573, 0xD753, 0xC574, + 0xD754, 0xC8E7, 0xD755, 0xC575, 0xD756, 0xC8E8, 0xD757, 0xC8E9, + 0xD758, 0xC8EA, 0xD759, 0xC8EB, 0xD75A, 0xC576, 0xD75B, 0xC577, + 0xD75C, 0xC578, 0xD75D, 0xC579, 0xD75E, 0xC57A, 0xD75F, 0xC581, + 0xD760, 0xC8EC, 0xD761, 0xC8ED, 0xD762, 0xC582, 0xD763, 0xC8EE, + 0xD764, 0xC583, 0xD765, 0xC8EF, 0xD766, 0xC584, 0xD767, 0xC585, + 0xD768, 0xC586, 0xD769, 0xC8F0, 0xD76A, 0xC587, 0xD76B, 0xC588, + 0xD76C, 0xC8F1, 0xD76D, 0xC589, 0xD76E, 0xC58A, 0xD76F, 0xC58B, + 0xD770, 0xC8F2, 0xD771, 0xC58C, 0xD772, 0xC58D, 0xD773, 0xC58E, + 0xD774, 0xC8F3, 0xD775, 0xC58F, 0xD776, 0xC590, 0xD777, 0xC591, + 0xD778, 0xC592, 0xD779, 0xC593, 0xD77A, 0xC594, 0xD77B, 0xC595, + 0xD77C, 0xC8F4, 0xD77D, 0xC8F5, 0xD77E, 0xC596, 0xD77F, 0xC597, + 0xD780, 0xC598, 0xD781, 0xC8F6, 0xD782, 0xC599, 0xD783, 0xC59A, + 0xD784, 0xC59B, 0xD785, 0xC59C, 0xD786, 0xC59D, 0xD787, 0xC59E, + 0xD788, 0xC8F7, 0xD789, 0xC8F8, 0xD78A, 0xC59F, 0xD78B, 0xC5A0, + 0xD78C, 0xC8F9, 0xD78D, 0xC641, 0xD78E, 0xC642, 0xD78F, 0xC643, + 0xD790, 0xC8FA, 0xD791, 0xC644, 0xD792, 0xC645, 0xD793, 0xC646, + 0xD794, 0xC647, 0xD795, 0xC648, 0xD796, 0xC649, 0xD797, 0xC64A, + 0xD798, 0xC8FB, 0xD799, 0xC8FC, 0xD79A, 0xC64B, 0xD79B, 0xC8FD, + 0xD79C, 0xC64C, 0xD79D, 0xC8FE, 0xD79E, 0xC64D, 0xD79F, 0xC64E, + 0xD7A0, 0xC64F, 0xD7A1, 0xC650, 0xD7A2, 0xC651, 0xD7A3, 0xC652, + 0xF900, 0xCBD0, 0xF901, 0xCBD6, 0xF902, 0xCBE7, 0xF903, 0xCDCF, + 0xF904, 0xCDE8, 0xF905, 0xCEAD, 0xF906, 0xCFFB, 0xF907, 0xD0A2, + 0xF908, 0xD0B8, 0xF909, 0xD0D0, 0xF90A, 0xD0DD, 0xF90B, 0xD1D4, + 0xF90C, 0xD1D5, 0xF90D, 0xD1D8, 0xF90E, 0xD1DB, 0xF90F, 0xD1DC, + 0xF910, 0xD1DD, 0xF911, 0xD1DE, 0xF912, 0xD1DF, 0xF913, 0xD1E0, + 0xF914, 0xD1E2, 0xF915, 0xD1E3, 0xF916, 0xD1E4, 0xF917, 0xD1E5, + 0xF918, 0xD1E6, 0xF919, 0xD1E8, 0xF91A, 0xD1E9, 0xF91B, 0xD1EA, + 0xF91C, 0xD1EB, 0xF91D, 0xD1ED, 0xF91E, 0xD1EF, 0xF91F, 0xD1F0, + 0xF920, 0xD1F2, 0xF921, 0xD1F6, 0xF922, 0xD1FA, 0xF923, 0xD1FC, + 0xF924, 0xD1FD, 0xF925, 0xD1FE, 0xF926, 0xD2A2, 0xF927, 0xD2A3, + 0xF928, 0xD2A7, 0xF929, 0xD2A8, 0xF92A, 0xD2A9, 0xF92B, 0xD2AA, + 0xF92C, 0xD2AB, 0xF92D, 0xD2AD, 0xF92E, 0xD2B2, 0xF92F, 0xD2BE, + 0xF930, 0xD2C2, 0xF931, 0xD2C3, 0xF932, 0xD2C4, 0xF933, 0xD2C6, + 0xF934, 0xD2C7, 0xF935, 0xD2C8, 0xF936, 0xD2C9, 0xF937, 0xD2CA, + 0xF938, 0xD2CB, 0xF939, 0xD2CD, 0xF93A, 0xD2CE, 0xF93B, 0xD2CF, + 0xF93C, 0xD2D0, 0xF93D, 0xD2D1, 0xF93E, 0xD2D2, 0xF93F, 0xD2D3, + 0xF940, 0xD2D4, 0xF941, 0xD2D5, 0xF942, 0xD2D6, 0xF943, 0xD2D7, + 0xF944, 0xD2D9, 0xF945, 0xD2DA, 0xF946, 0xD2DE, 0xF947, 0xD2DF, + 0xF948, 0xD2E1, 0xF949, 0xD2E2, 0xF94A, 0xD2E4, 0xF94B, 0xD2E5, + 0xF94C, 0xD2E6, 0xF94D, 0xD2E7, 0xF94E, 0xD2E8, 0xF94F, 0xD2E9, + 0xF950, 0xD2EA, 0xF951, 0xD2EB, 0xF952, 0xD2F0, 0xF953, 0xD2F1, + 0xF954, 0xD2F2, 0xF955, 0xD2F3, 0xF956, 0xD2F4, 0xF957, 0xD2F5, + 0xF958, 0xD2F7, 0xF959, 0xD2F8, 0xF95A, 0xD4E6, 0xF95B, 0xD4FC, + 0xF95C, 0xD5A5, 0xF95D, 0xD5AB, 0xF95E, 0xD5AE, 0xF95F, 0xD6B8, + 0xF960, 0xD6CD, 0xF961, 0xD7CB, 0xF962, 0xD7E4, 0xF963, 0xDBC5, + 0xF964, 0xDBE4, 0xF965, 0xDCA5, 0xF966, 0xDDA5, 0xF967, 0xDDD5, + 0xF968, 0xDDF4, 0xF969, 0xDEFC, 0xF96A, 0xDEFE, 0xF96B, 0xDFB3, + 0xF96C, 0xDFE1, 0xF96D, 0xDFE8, 0xF96E, 0xE0F1, 0xF96F, 0xE1AD, + 0xF970, 0xE1ED, 0xF971, 0xE3F5, 0xF972, 0xE4A1, 0xF973, 0xE4A9, + 0xF974, 0xE5AE, 0xF975, 0xE5B1, 0xF976, 0xE5B2, 0xF977, 0xE5B9, + 0xF978, 0xE5BB, 0xF979, 0xE5BC, 0xF97A, 0xE5C4, 0xF97B, 0xE5CE, + 0xF97C, 0xE5D0, 0xF97D, 0xE5D2, 0xF97E, 0xE5D6, 0xF97F, 0xE5FA, + 0xF980, 0xE5FB, 0xF981, 0xE5FC, 0xF982, 0xE5FE, 0xF983, 0xE6A1, + 0xF984, 0xE6A4, 0xF985, 0xE6A7, 0xF986, 0xE6AD, 0xF987, 0xE6AF, + 0xF988, 0xE6B0, 0xF989, 0xE6B1, 0xF98A, 0xE6B3, 0xF98B, 0xE6B7, + 0xF98C, 0xE6B8, 0xF98D, 0xE6BC, 0xF98E, 0xE6C4, 0xF98F, 0xE6C6, + 0xF990, 0xE6C7, 0xF991, 0xE6CA, 0xF992, 0xE6D2, 0xF993, 0xE6D6, + 0xF994, 0xE6D9, 0xF995, 0xE6DC, 0xF996, 0xE6DF, 0xF997, 0xE6E1, + 0xF998, 0xE6E4, 0xF999, 0xE6E5, 0xF99A, 0xE6E6, 0xF99B, 0xE6E8, + 0xF99C, 0xE6EA, 0xF99D, 0xE6EB, 0xF99E, 0xE6EC, 0xF99F, 0xE6EF, + 0xF9A0, 0xE6F1, 0xF9A1, 0xE6F2, 0xF9A2, 0xE6F5, 0xF9A3, 0xE6F6, + 0xF9A4, 0xE6F7, 0xF9A5, 0xE6F9, 0xF9A6, 0xE7A1, 0xF9A7, 0xE7A6, + 0xF9A8, 0xE7A9, 0xF9A9, 0xE7AA, 0xF9AA, 0xE7AC, 0xF9AB, 0xE7AD, + 0xF9AC, 0xE7B0, 0xF9AD, 0xE7BF, 0xF9AE, 0xE7C1, 0xF9AF, 0xE7C6, + 0xF9B0, 0xE7C7, 0xF9B1, 0xE7CB, 0xF9B2, 0xE7CD, 0xF9B3, 0xE7CF, + 0xF9B4, 0xE7D0, 0xF9B5, 0xE7D3, 0xF9B6, 0xE7DF, 0xF9B7, 0xE7E4, + 0xF9B8, 0xE7E6, 0xF9B9, 0xE7F7, 0xF9BA, 0xE8E7, 0xF9BB, 0xE8E8, + 0xF9BC, 0xE8F0, 0xF9BD, 0xE8F1, 0xF9BE, 0xE8F7, 0xF9BF, 0xE8F9, + 0xF9C0, 0xE8FB, 0xF9C1, 0xE8FE, 0xF9C2, 0xE9A7, 0xF9C3, 0xE9AC, + 0xF9C4, 0xE9CC, 0xF9C5, 0xE9F7, 0xF9C6, 0xEAC1, 0xF9C7, 0xEAE5, + 0xF9C8, 0xEAF4, 0xF9C9, 0xEAF7, 0xF9CA, 0xEAFC, 0xF9CB, 0xEAFE, + 0xF9CC, 0xEBA4, 0xF9CD, 0xEBA7, 0xF9CE, 0xEBA9, 0xF9CF, 0xEBAA, + 0xF9D0, 0xEBBA, 0xF9D1, 0xEBBB, 0xF9D2, 0xEBBD, 0xF9D3, 0xEBC1, + 0xF9D4, 0xEBC2, 0xF9D5, 0xEBC6, 0xF9D6, 0xEBC7, 0xF9D7, 0xEBCC, + 0xF9D8, 0xEBCF, 0xF9D9, 0xEBD0, 0xF9DA, 0xEBD1, 0xF9DB, 0xEBD2, + 0xF9DC, 0xEBD8, 0xF9DD, 0xECA6, 0xF9DE, 0xECA7, 0xF9DF, 0xECAA, + 0xF9E0, 0xECAF, 0xF9E1, 0xECB0, 0xF9E2, 0xECB1, 0xF9E3, 0xECB2, + 0xF9E4, 0xECB5, 0xF9E5, 0xECB8, 0xF9E6, 0xECBA, 0xF9E7, 0xECC0, + 0xF9E8, 0xECC1, 0xF9E9, 0xECC5, 0xF9EA, 0xECC6, 0xF9EB, 0xECC9, + 0xF9EC, 0xECCA, 0xF9ED, 0xECD5, 0xF9EE, 0xECDD, 0xF9EF, 0xECDE, + 0xF9F0, 0xECE1, 0xF9F1, 0xECE4, 0xF9F2, 0xECE7, 0xF9F3, 0xECE8, + 0xF9F4, 0xECF7, 0xF9F5, 0xECF8, 0xF9F6, 0xECFA, 0xF9F7, 0xEDA1, + 0xF9F8, 0xEDA2, 0xF9F9, 0xEDA3, 0xF9FA, 0xEDEE, 0xF9FB, 0xEEDB, + 0xF9FC, 0xF2BD, 0xF9FD, 0xF2FA, 0xF9FE, 0xF3B1, 0xF9FF, 0xF4A7, + 0xFA00, 0xF4EE, 0xFA01, 0xF6F4, 0xFA02, 0xF6F6, 0xFA03, 0xF7B8, + 0xFA04, 0xF7C8, 0xFA05, 0xF7D3, 0xFA06, 0xF8DB, 0xFA07, 0xF8F0, + 0xFA08, 0xFAA1, 0xFA09, 0xFAA2, 0xFA0A, 0xFAE6, 0xFA0B, 0xFCA9, + 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA3A4, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, + 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, + 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, + 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, + 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, + 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, + 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, + 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA1AC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, + 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, + 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, + 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, + 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA2A6, 0xFFE0, 0xA1CB, 0xFFE1, 0xA1CC, + 0xFFE2, 0xA1FE, 0xFFE3, 0xA3FE, 0xFFE5, 0xA1CD, 0xFFE6, 0xA3DC, + 0, 0 +}; + +static +const WCHAR oem2uni[] = { +/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ + 0x8141, 0xAC02, 0x8142, 0xAC03, 0x8143, 0xAC05, 0x8144, 0xAC06, + 0x8145, 0xAC0B, 0x8146, 0xAC0C, 0x8147, 0xAC0D, 0x8148, 0xAC0E, + 0x8149, 0xAC0F, 0x814A, 0xAC18, 0x814B, 0xAC1E, 0x814C, 0xAC1F, + 0x814D, 0xAC21, 0x814E, 0xAC22, 0x814F, 0xAC23, 0x8150, 0xAC25, + 0x8151, 0xAC26, 0x8152, 0xAC27, 0x8153, 0xAC28, 0x8154, 0xAC29, + 0x8155, 0xAC2A, 0x8156, 0xAC2B, 0x8157, 0xAC2E, 0x8158, 0xAC32, + 0x8159, 0xAC33, 0x815A, 0xAC34, 0x8161, 0xAC35, 0x8162, 0xAC36, + 0x8163, 0xAC37, 0x8164, 0xAC3A, 0x8165, 0xAC3B, 0x8166, 0xAC3D, + 0x8167, 0xAC3E, 0x8168, 0xAC3F, 0x8169, 0xAC41, 0x816A, 0xAC42, + 0x816B, 0xAC43, 0x816C, 0xAC44, 0x816D, 0xAC45, 0x816E, 0xAC46, + 0x816F, 0xAC47, 0x8170, 0xAC48, 0x8171, 0xAC49, 0x8172, 0xAC4A, + 0x8173, 0xAC4C, 0x8174, 0xAC4E, 0x8175, 0xAC4F, 0x8176, 0xAC50, + 0x8177, 0xAC51, 0x8178, 0xAC52, 0x8179, 0xAC53, 0x817A, 0xAC55, + 0x8181, 0xAC56, 0x8182, 0xAC57, 0x8183, 0xAC59, 0x8184, 0xAC5A, + 0x8185, 0xAC5B, 0x8186, 0xAC5D, 0x8187, 0xAC5E, 0x8188, 0xAC5F, + 0x8189, 0xAC60, 0x818A, 0xAC61, 0x818B, 0xAC62, 0x818C, 0xAC63, + 0x818D, 0xAC64, 0x818E, 0xAC65, 0x818F, 0xAC66, 0x8190, 0xAC67, + 0x8191, 0xAC68, 0x8192, 0xAC69, 0x8193, 0xAC6A, 0x8194, 0xAC6B, + 0x8195, 0xAC6C, 0x8196, 0xAC6D, 0x8197, 0xAC6E, 0x8198, 0xAC6F, + 0x8199, 0xAC72, 0x819A, 0xAC73, 0x819B, 0xAC75, 0x819C, 0xAC76, + 0x819D, 0xAC79, 0x819E, 0xAC7B, 0x819F, 0xAC7C, 0x81A0, 0xAC7D, + 0x81A1, 0xAC7E, 0x81A2, 0xAC7F, 0x81A3, 0xAC82, 0x81A4, 0xAC87, + 0x81A5, 0xAC88, 0x81A6, 0xAC8D, 0x81A7, 0xAC8E, 0x81A8, 0xAC8F, + 0x81A9, 0xAC91, 0x81AA, 0xAC92, 0x81AB, 0xAC93, 0x81AC, 0xAC95, + 0x81AD, 0xAC96, 0x81AE, 0xAC97, 0x81AF, 0xAC98, 0x81B0, 0xAC99, + 0x81B1, 0xAC9A, 0x81B2, 0xAC9B, 0x81B3, 0xAC9E, 0x81B4, 0xACA2, + 0x81B5, 0xACA3, 0x81B6, 0xACA4, 0x81B7, 0xACA5, 0x81B8, 0xACA6, + 0x81B9, 0xACA7, 0x81BA, 0xACAB, 0x81BB, 0xACAD, 0x81BC, 0xACAE, + 0x81BD, 0xACB1, 0x81BE, 0xACB2, 0x81BF, 0xACB3, 0x81C0, 0xACB4, + 0x81C1, 0xACB5, 0x81C2, 0xACB6, 0x81C3, 0xACB7, 0x81C4, 0xACBA, + 0x81C5, 0xACBE, 0x81C6, 0xACBF, 0x81C7, 0xACC0, 0x81C8, 0xACC2, + 0x81C9, 0xACC3, 0x81CA, 0xACC5, 0x81CB, 0xACC6, 0x81CC, 0xACC7, + 0x81CD, 0xACC9, 0x81CE, 0xACCA, 0x81CF, 0xACCB, 0x81D0, 0xACCD, + 0x81D1, 0xACCE, 0x81D2, 0xACCF, 0x81D3, 0xACD0, 0x81D4, 0xACD1, + 0x81D5, 0xACD2, 0x81D6, 0xACD3, 0x81D7, 0xACD4, 0x81D8, 0xACD6, + 0x81D9, 0xACD8, 0x81DA, 0xACD9, 0x81DB, 0xACDA, 0x81DC, 0xACDB, + 0x81DD, 0xACDC, 0x81DE, 0xACDD, 0x81DF, 0xACDE, 0x81E0, 0xACDF, + 0x81E1, 0xACE2, 0x81E2, 0xACE3, 0x81E3, 0xACE5, 0x81E4, 0xACE6, + 0x81E5, 0xACE9, 0x81E6, 0xACEB, 0x81E7, 0xACED, 0x81E8, 0xACEE, + 0x81E9, 0xACF2, 0x81EA, 0xACF4, 0x81EB, 0xACF7, 0x81EC, 0xACF8, + 0x81ED, 0xACF9, 0x81EE, 0xACFA, 0x81EF, 0xACFB, 0x81F0, 0xACFE, + 0x81F1, 0xACFF, 0x81F2, 0xAD01, 0x81F3, 0xAD02, 0x81F4, 0xAD03, + 0x81F5, 0xAD05, 0x81F6, 0xAD07, 0x81F7, 0xAD08, 0x81F8, 0xAD09, + 0x81F9, 0xAD0A, 0x81FA, 0xAD0B, 0x81FB, 0xAD0E, 0x81FC, 0xAD10, + 0x81FD, 0xAD12, 0x81FE, 0xAD13, 0x8241, 0xAD14, 0x8242, 0xAD15, + 0x8243, 0xAD16, 0x8244, 0xAD17, 0x8245, 0xAD19, 0x8246, 0xAD1A, + 0x8247, 0xAD1B, 0x8248, 0xAD1D, 0x8249, 0xAD1E, 0x824A, 0xAD1F, + 0x824B, 0xAD21, 0x824C, 0xAD22, 0x824D, 0xAD23, 0x824E, 0xAD24, + 0x824F, 0xAD25, 0x8250, 0xAD26, 0x8251, 0xAD27, 0x8252, 0xAD28, + 0x8253, 0xAD2A, 0x8254, 0xAD2B, 0x8255, 0xAD2E, 0x8256, 0xAD2F, + 0x8257, 0xAD30, 0x8258, 0xAD31, 0x8259, 0xAD32, 0x825A, 0xAD33, + 0x8261, 0xAD36, 0x8262, 0xAD37, 0x8263, 0xAD39, 0x8264, 0xAD3A, + 0x8265, 0xAD3B, 0x8266, 0xAD3D, 0x8267, 0xAD3E, 0x8268, 0xAD3F, + 0x8269, 0xAD40, 0x826A, 0xAD41, 0x826B, 0xAD42, 0x826C, 0xAD43, + 0x826D, 0xAD46, 0x826E, 0xAD48, 0x826F, 0xAD4A, 0x8270, 0xAD4B, + 0x8271, 0xAD4C, 0x8272, 0xAD4D, 0x8273, 0xAD4E, 0x8274, 0xAD4F, + 0x8275, 0xAD51, 0x8276, 0xAD52, 0x8277, 0xAD53, 0x8278, 0xAD55, + 0x8279, 0xAD56, 0x827A, 0xAD57, 0x8281, 0xAD59, 0x8282, 0xAD5A, + 0x8283, 0xAD5B, 0x8284, 0xAD5C, 0x8285, 0xAD5D, 0x8286, 0xAD5E, + 0x8287, 0xAD5F, 0x8288, 0xAD60, 0x8289, 0xAD62, 0x828A, 0xAD64, + 0x828B, 0xAD65, 0x828C, 0xAD66, 0x828D, 0xAD67, 0x828E, 0xAD68, + 0x828F, 0xAD69, 0x8290, 0xAD6A, 0x8291, 0xAD6B, 0x8292, 0xAD6E, + 0x8293, 0xAD6F, 0x8294, 0xAD71, 0x8295, 0xAD72, 0x8296, 0xAD77, + 0x8297, 0xAD78, 0x8298, 0xAD79, 0x8299, 0xAD7A, 0x829A, 0xAD7E, + 0x829B, 0xAD80, 0x829C, 0xAD83, 0x829D, 0xAD84, 0x829E, 0xAD85, + 0x829F, 0xAD86, 0x82A0, 0xAD87, 0x82A1, 0xAD8A, 0x82A2, 0xAD8B, + 0x82A3, 0xAD8D, 0x82A4, 0xAD8E, 0x82A5, 0xAD8F, 0x82A6, 0xAD91, + 0x82A7, 0xAD92, 0x82A8, 0xAD93, 0x82A9, 0xAD94, 0x82AA, 0xAD95, + 0x82AB, 0xAD96, 0x82AC, 0xAD97, 0x82AD, 0xAD98, 0x82AE, 0xAD99, + 0x82AF, 0xAD9A, 0x82B0, 0xAD9B, 0x82B1, 0xAD9E, 0x82B2, 0xAD9F, + 0x82B3, 0xADA0, 0x82B4, 0xADA1, 0x82B5, 0xADA2, 0x82B6, 0xADA3, + 0x82B7, 0xADA5, 0x82B8, 0xADA6, 0x82B9, 0xADA7, 0x82BA, 0xADA8, + 0x82BB, 0xADA9, 0x82BC, 0xADAA, 0x82BD, 0xADAB, 0x82BE, 0xADAC, + 0x82BF, 0xADAD, 0x82C0, 0xADAE, 0x82C1, 0xADAF, 0x82C2, 0xADB0, + 0x82C3, 0xADB1, 0x82C4, 0xADB2, 0x82C5, 0xADB3, 0x82C6, 0xADB4, + 0x82C7, 0xADB5, 0x82C8, 0xADB6, 0x82C9, 0xADB8, 0x82CA, 0xADB9, + 0x82CB, 0xADBA, 0x82CC, 0xADBB, 0x82CD, 0xADBC, 0x82CE, 0xADBD, + 0x82CF, 0xADBE, 0x82D0, 0xADBF, 0x82D1, 0xADC2, 0x82D2, 0xADC3, + 0x82D3, 0xADC5, 0x82D4, 0xADC6, 0x82D5, 0xADC7, 0x82D6, 0xADC9, + 0x82D7, 0xADCA, 0x82D8, 0xADCB, 0x82D9, 0xADCC, 0x82DA, 0xADCD, + 0x82DB, 0xADCE, 0x82DC, 0xADCF, 0x82DD, 0xADD2, 0x82DE, 0xADD4, + 0x82DF, 0xADD5, 0x82E0, 0xADD6, 0x82E1, 0xADD7, 0x82E2, 0xADD8, + 0x82E3, 0xADD9, 0x82E4, 0xADDA, 0x82E5, 0xADDB, 0x82E6, 0xADDD, + 0x82E7, 0xADDE, 0x82E8, 0xADDF, 0x82E9, 0xADE1, 0x82EA, 0xADE2, + 0x82EB, 0xADE3, 0x82EC, 0xADE5, 0x82ED, 0xADE6, 0x82EE, 0xADE7, + 0x82EF, 0xADE8, 0x82F0, 0xADE9, 0x82F1, 0xADEA, 0x82F2, 0xADEB, + 0x82F3, 0xADEC, 0x82F4, 0xADED, 0x82F5, 0xADEE, 0x82F6, 0xADEF, + 0x82F7, 0xADF0, 0x82F8, 0xADF1, 0x82F9, 0xADF2, 0x82FA, 0xADF3, + 0x82FB, 0xADF4, 0x82FC, 0xADF5, 0x82FD, 0xADF6, 0x82FE, 0xADF7, + 0x8341, 0xADFA, 0x8342, 0xADFB, 0x8343, 0xADFD, 0x8344, 0xADFE, + 0x8345, 0xAE02, 0x8346, 0xAE03, 0x8347, 0xAE04, 0x8348, 0xAE05, + 0x8349, 0xAE06, 0x834A, 0xAE07, 0x834B, 0xAE0A, 0x834C, 0xAE0C, + 0x834D, 0xAE0E, 0x834E, 0xAE0F, 0x834F, 0xAE10, 0x8350, 0xAE11, + 0x8351, 0xAE12, 0x8352, 0xAE13, 0x8353, 0xAE15, 0x8354, 0xAE16, + 0x8355, 0xAE17, 0x8356, 0xAE18, 0x8357, 0xAE19, 0x8358, 0xAE1A, + 0x8359, 0xAE1B, 0x835A, 0xAE1C, 0x8361, 0xAE1D, 0x8362, 0xAE1E, + 0x8363, 0xAE1F, 0x8364, 0xAE20, 0x8365, 0xAE21, 0x8366, 0xAE22, + 0x8367, 0xAE23, 0x8368, 0xAE24, 0x8369, 0xAE25, 0x836A, 0xAE26, + 0x836B, 0xAE27, 0x836C, 0xAE28, 0x836D, 0xAE29, 0x836E, 0xAE2A, + 0x836F, 0xAE2B, 0x8370, 0xAE2C, 0x8371, 0xAE2D, 0x8372, 0xAE2E, + 0x8373, 0xAE2F, 0x8374, 0xAE32, 0x8375, 0xAE33, 0x8376, 0xAE35, + 0x8377, 0xAE36, 0x8378, 0xAE39, 0x8379, 0xAE3B, 0x837A, 0xAE3C, + 0x8381, 0xAE3D, 0x8382, 0xAE3E, 0x8383, 0xAE3F, 0x8384, 0xAE42, + 0x8385, 0xAE44, 0x8386, 0xAE47, 0x8387, 0xAE48, 0x8388, 0xAE49, + 0x8389, 0xAE4B, 0x838A, 0xAE4F, 0x838B, 0xAE51, 0x838C, 0xAE52, + 0x838D, 0xAE53, 0x838E, 0xAE55, 0x838F, 0xAE57, 0x8390, 0xAE58, + 0x8391, 0xAE59, 0x8392, 0xAE5A, 0x8393, 0xAE5B, 0x8394, 0xAE5E, + 0x8395, 0xAE62, 0x8396, 0xAE63, 0x8397, 0xAE64, 0x8398, 0xAE66, + 0x8399, 0xAE67, 0x839A, 0xAE6A, 0x839B, 0xAE6B, 0x839C, 0xAE6D, + 0x839D, 0xAE6E, 0x839E, 0xAE6F, 0x839F, 0xAE71, 0x83A0, 0xAE72, + 0x83A1, 0xAE73, 0x83A2, 0xAE74, 0x83A3, 0xAE75, 0x83A4, 0xAE76, + 0x83A5, 0xAE77, 0x83A6, 0xAE7A, 0x83A7, 0xAE7E, 0x83A8, 0xAE7F, + 0x83A9, 0xAE80, 0x83AA, 0xAE81, 0x83AB, 0xAE82, 0x83AC, 0xAE83, + 0x83AD, 0xAE86, 0x83AE, 0xAE87, 0x83AF, 0xAE88, 0x83B0, 0xAE89, + 0x83B1, 0xAE8A, 0x83B2, 0xAE8B, 0x83B3, 0xAE8D, 0x83B4, 0xAE8E, + 0x83B5, 0xAE8F, 0x83B6, 0xAE90, 0x83B7, 0xAE91, 0x83B8, 0xAE92, + 0x83B9, 0xAE93, 0x83BA, 0xAE94, 0x83BB, 0xAE95, 0x83BC, 0xAE96, + 0x83BD, 0xAE97, 0x83BE, 0xAE98, 0x83BF, 0xAE99, 0x83C0, 0xAE9A, + 0x83C1, 0xAE9B, 0x83C2, 0xAE9C, 0x83C3, 0xAE9D, 0x83C4, 0xAE9E, + 0x83C5, 0xAE9F, 0x83C6, 0xAEA0, 0x83C7, 0xAEA1, 0x83C8, 0xAEA2, + 0x83C9, 0xAEA3, 0x83CA, 0xAEA4, 0x83CB, 0xAEA5, 0x83CC, 0xAEA6, + 0x83CD, 0xAEA7, 0x83CE, 0xAEA8, 0x83CF, 0xAEA9, 0x83D0, 0xAEAA, + 0x83D1, 0xAEAB, 0x83D2, 0xAEAC, 0x83D3, 0xAEAD, 0x83D4, 0xAEAE, + 0x83D5, 0xAEAF, 0x83D6, 0xAEB0, 0x83D7, 0xAEB1, 0x83D8, 0xAEB2, + 0x83D9, 0xAEB3, 0x83DA, 0xAEB4, 0x83DB, 0xAEB5, 0x83DC, 0xAEB6, + 0x83DD, 0xAEB7, 0x83DE, 0xAEB8, 0x83DF, 0xAEB9, 0x83E0, 0xAEBA, + 0x83E1, 0xAEBB, 0x83E2, 0xAEBF, 0x83E3, 0xAEC1, 0x83E4, 0xAEC2, + 0x83E5, 0xAEC3, 0x83E6, 0xAEC5, 0x83E7, 0xAEC6, 0x83E8, 0xAEC7, + 0x83E9, 0xAEC8, 0x83EA, 0xAEC9, 0x83EB, 0xAECA, 0x83EC, 0xAECB, + 0x83ED, 0xAECE, 0x83EE, 0xAED2, 0x83EF, 0xAED3, 0x83F0, 0xAED4, + 0x83F1, 0xAED5, 0x83F2, 0xAED6, 0x83F3, 0xAED7, 0x83F4, 0xAEDA, + 0x83F5, 0xAEDB, 0x83F6, 0xAEDD, 0x83F7, 0xAEDE, 0x83F8, 0xAEDF, + 0x83F9, 0xAEE0, 0x83FA, 0xAEE1, 0x83FB, 0xAEE2, 0x83FC, 0xAEE3, + 0x83FD, 0xAEE4, 0x83FE, 0xAEE5, 0x8441, 0xAEE6, 0x8442, 0xAEE7, + 0x8443, 0xAEE9, 0x8444, 0xAEEA, 0x8445, 0xAEEC, 0x8446, 0xAEEE, + 0x8447, 0xAEEF, 0x8448, 0xAEF0, 0x8449, 0xAEF1, 0x844A, 0xAEF2, + 0x844B, 0xAEF3, 0x844C, 0xAEF5, 0x844D, 0xAEF6, 0x844E, 0xAEF7, + 0x844F, 0xAEF9, 0x8450, 0xAEFA, 0x8451, 0xAEFB, 0x8452, 0xAEFD, + 0x8453, 0xAEFE, 0x8454, 0xAEFF, 0x8455, 0xAF00, 0x8456, 0xAF01, + 0x8457, 0xAF02, 0x8458, 0xAF03, 0x8459, 0xAF04, 0x845A, 0xAF05, + 0x8461, 0xAF06, 0x8462, 0xAF09, 0x8463, 0xAF0A, 0x8464, 0xAF0B, + 0x8465, 0xAF0C, 0x8466, 0xAF0E, 0x8467, 0xAF0F, 0x8468, 0xAF11, + 0x8469, 0xAF12, 0x846A, 0xAF13, 0x846B, 0xAF14, 0x846C, 0xAF15, + 0x846D, 0xAF16, 0x846E, 0xAF17, 0x846F, 0xAF18, 0x8470, 0xAF19, + 0x8471, 0xAF1A, 0x8472, 0xAF1B, 0x8473, 0xAF1C, 0x8474, 0xAF1D, + 0x8475, 0xAF1E, 0x8476, 0xAF1F, 0x8477, 0xAF20, 0x8478, 0xAF21, + 0x8479, 0xAF22, 0x847A, 0xAF23, 0x8481, 0xAF24, 0x8482, 0xAF25, + 0x8483, 0xAF26, 0x8484, 0xAF27, 0x8485, 0xAF28, 0x8486, 0xAF29, + 0x8487, 0xAF2A, 0x8488, 0xAF2B, 0x8489, 0xAF2E, 0x848A, 0xAF2F, + 0x848B, 0xAF31, 0x848C, 0xAF33, 0x848D, 0xAF35, 0x848E, 0xAF36, + 0x848F, 0xAF37, 0x8490, 0xAF38, 0x8491, 0xAF39, 0x8492, 0xAF3A, + 0x8493, 0xAF3B, 0x8494, 0xAF3E, 0x8495, 0xAF40, 0x8496, 0xAF44, + 0x8497, 0xAF45, 0x8498, 0xAF46, 0x8499, 0xAF47, 0x849A, 0xAF4A, + 0x849B, 0xAF4B, 0x849C, 0xAF4C, 0x849D, 0xAF4D, 0x849E, 0xAF4E, + 0x849F, 0xAF4F, 0x84A0, 0xAF51, 0x84A1, 0xAF52, 0x84A2, 0xAF53, + 0x84A3, 0xAF54, 0x84A4, 0xAF55, 0x84A5, 0xAF56, 0x84A6, 0xAF57, + 0x84A7, 0xAF58, 0x84A8, 0xAF59, 0x84A9, 0xAF5A, 0x84AA, 0xAF5B, + 0x84AB, 0xAF5E, 0x84AC, 0xAF5F, 0x84AD, 0xAF60, 0x84AE, 0xAF61, + 0x84AF, 0xAF62, 0x84B0, 0xAF63, 0x84B1, 0xAF66, 0x84B2, 0xAF67, + 0x84B3, 0xAF68, 0x84B4, 0xAF69, 0x84B5, 0xAF6A, 0x84B6, 0xAF6B, + 0x84B7, 0xAF6C, 0x84B8, 0xAF6D, 0x84B9, 0xAF6E, 0x84BA, 0xAF6F, + 0x84BB, 0xAF70, 0x84BC, 0xAF71, 0x84BD, 0xAF72, 0x84BE, 0xAF73, + 0x84BF, 0xAF74, 0x84C0, 0xAF75, 0x84C1, 0xAF76, 0x84C2, 0xAF77, + 0x84C3, 0xAF78, 0x84C4, 0xAF7A, 0x84C5, 0xAF7B, 0x84C6, 0xAF7C, + 0x84C7, 0xAF7D, 0x84C8, 0xAF7E, 0x84C9, 0xAF7F, 0x84CA, 0xAF81, + 0x84CB, 0xAF82, 0x84CC, 0xAF83, 0x84CD, 0xAF85, 0x84CE, 0xAF86, + 0x84CF, 0xAF87, 0x84D0, 0xAF89, 0x84D1, 0xAF8A, 0x84D2, 0xAF8B, + 0x84D3, 0xAF8C, 0x84D4, 0xAF8D, 0x84D5, 0xAF8E, 0x84D6, 0xAF8F, + 0x84D7, 0xAF92, 0x84D8, 0xAF93, 0x84D9, 0xAF94, 0x84DA, 0xAF96, + 0x84DB, 0xAF97, 0x84DC, 0xAF98, 0x84DD, 0xAF99, 0x84DE, 0xAF9A, + 0x84DF, 0xAF9B, 0x84E0, 0xAF9D, 0x84E1, 0xAF9E, 0x84E2, 0xAF9F, + 0x84E3, 0xAFA0, 0x84E4, 0xAFA1, 0x84E5, 0xAFA2, 0x84E6, 0xAFA3, + 0x84E7, 0xAFA4, 0x84E8, 0xAFA5, 0x84E9, 0xAFA6, 0x84EA, 0xAFA7, + 0x84EB, 0xAFA8, 0x84EC, 0xAFA9, 0x84ED, 0xAFAA, 0x84EE, 0xAFAB, + 0x84EF, 0xAFAC, 0x84F0, 0xAFAD, 0x84F1, 0xAFAE, 0x84F2, 0xAFAF, + 0x84F3, 0xAFB0, 0x84F4, 0xAFB1, 0x84F5, 0xAFB2, 0x84F6, 0xAFB3, + 0x84F7, 0xAFB4, 0x84F8, 0xAFB5, 0x84F9, 0xAFB6, 0x84FA, 0xAFB7, + 0x84FB, 0xAFBA, 0x84FC, 0xAFBB, 0x84FD, 0xAFBD, 0x84FE, 0xAFBE, + 0x8541, 0xAFBF, 0x8542, 0xAFC1, 0x8543, 0xAFC2, 0x8544, 0xAFC3, + 0x8545, 0xAFC4, 0x8546, 0xAFC5, 0x8547, 0xAFC6, 0x8548, 0xAFCA, + 0x8549, 0xAFCC, 0x854A, 0xAFCF, 0x854B, 0xAFD0, 0x854C, 0xAFD1, + 0x854D, 0xAFD2, 0x854E, 0xAFD3, 0x854F, 0xAFD5, 0x8550, 0xAFD6, + 0x8551, 0xAFD7, 0x8552, 0xAFD8, 0x8553, 0xAFD9, 0x8554, 0xAFDA, + 0x8555, 0xAFDB, 0x8556, 0xAFDD, 0x8557, 0xAFDE, 0x8558, 0xAFDF, + 0x8559, 0xAFE0, 0x855A, 0xAFE1, 0x8561, 0xAFE2, 0x8562, 0xAFE3, + 0x8563, 0xAFE4, 0x8564, 0xAFE5, 0x8565, 0xAFE6, 0x8566, 0xAFE7, + 0x8567, 0xAFEA, 0x8568, 0xAFEB, 0x8569, 0xAFEC, 0x856A, 0xAFED, + 0x856B, 0xAFEE, 0x856C, 0xAFEF, 0x856D, 0xAFF2, 0x856E, 0xAFF3, + 0x856F, 0xAFF5, 0x8570, 0xAFF6, 0x8571, 0xAFF7, 0x8572, 0xAFF9, + 0x8573, 0xAFFA, 0x8574, 0xAFFB, 0x8575, 0xAFFC, 0x8576, 0xAFFD, + 0x8577, 0xAFFE, 0x8578, 0xAFFF, 0x8579, 0xB002, 0x857A, 0xB003, + 0x8581, 0xB005, 0x8582, 0xB006, 0x8583, 0xB007, 0x8584, 0xB008, + 0x8585, 0xB009, 0x8586, 0xB00A, 0x8587, 0xB00B, 0x8588, 0xB00D, + 0x8589, 0xB00E, 0x858A, 0xB00F, 0x858B, 0xB011, 0x858C, 0xB012, + 0x858D, 0xB013, 0x858E, 0xB015, 0x858F, 0xB016, 0x8590, 0xB017, + 0x8591, 0xB018, 0x8592, 0xB019, 0x8593, 0xB01A, 0x8594, 0xB01B, + 0x8595, 0xB01E, 0x8596, 0xB01F, 0x8597, 0xB020, 0x8598, 0xB021, + 0x8599, 0xB022, 0x859A, 0xB023, 0x859B, 0xB024, 0x859C, 0xB025, + 0x859D, 0xB026, 0x859E, 0xB027, 0x859F, 0xB029, 0x85A0, 0xB02A, + 0x85A1, 0xB02B, 0x85A2, 0xB02C, 0x85A3, 0xB02D, 0x85A4, 0xB02E, + 0x85A5, 0xB02F, 0x85A6, 0xB030, 0x85A7, 0xB031, 0x85A8, 0xB032, + 0x85A9, 0xB033, 0x85AA, 0xB034, 0x85AB, 0xB035, 0x85AC, 0xB036, + 0x85AD, 0xB037, 0x85AE, 0xB038, 0x85AF, 0xB039, 0x85B0, 0xB03A, + 0x85B1, 0xB03B, 0x85B2, 0xB03C, 0x85B3, 0xB03D, 0x85B4, 0xB03E, + 0x85B5, 0xB03F, 0x85B6, 0xB040, 0x85B7, 0xB041, 0x85B8, 0xB042, + 0x85B9, 0xB043, 0x85BA, 0xB046, 0x85BB, 0xB047, 0x85BC, 0xB049, + 0x85BD, 0xB04B, 0x85BE, 0xB04D, 0x85BF, 0xB04F, 0x85C0, 0xB050, + 0x85C1, 0xB051, 0x85C2, 0xB052, 0x85C3, 0xB056, 0x85C4, 0xB058, + 0x85C5, 0xB05A, 0x85C6, 0xB05B, 0x85C7, 0xB05C, 0x85C8, 0xB05E, + 0x85C9, 0xB05F, 0x85CA, 0xB060, 0x85CB, 0xB061, 0x85CC, 0xB062, + 0x85CD, 0xB063, 0x85CE, 0xB064, 0x85CF, 0xB065, 0x85D0, 0xB066, + 0x85D1, 0xB067, 0x85D2, 0xB068, 0x85D3, 0xB069, 0x85D4, 0xB06A, + 0x85D5, 0xB06B, 0x85D6, 0xB06C, 0x85D7, 0xB06D, 0x85D8, 0xB06E, + 0x85D9, 0xB06F, 0x85DA, 0xB070, 0x85DB, 0xB071, 0x85DC, 0xB072, + 0x85DD, 0xB073, 0x85DE, 0xB074, 0x85DF, 0xB075, 0x85E0, 0xB076, + 0x85E1, 0xB077, 0x85E2, 0xB078, 0x85E3, 0xB079, 0x85E4, 0xB07A, + 0x85E5, 0xB07B, 0x85E6, 0xB07E, 0x85E7, 0xB07F, 0x85E8, 0xB081, + 0x85E9, 0xB082, 0x85EA, 0xB083, 0x85EB, 0xB085, 0x85EC, 0xB086, + 0x85ED, 0xB087, 0x85EE, 0xB088, 0x85EF, 0xB089, 0x85F0, 0xB08A, + 0x85F1, 0xB08B, 0x85F2, 0xB08E, 0x85F3, 0xB090, 0x85F4, 0xB092, + 0x85F5, 0xB093, 0x85F6, 0xB094, 0x85F7, 0xB095, 0x85F8, 0xB096, + 0x85F9, 0xB097, 0x85FA, 0xB09B, 0x85FB, 0xB09D, 0x85FC, 0xB09E, + 0x85FD, 0xB0A3, 0x85FE, 0xB0A4, 0x8641, 0xB0A5, 0x8642, 0xB0A6, + 0x8643, 0xB0A7, 0x8644, 0xB0AA, 0x8645, 0xB0B0, 0x8646, 0xB0B2, + 0x8647, 0xB0B6, 0x8648, 0xB0B7, 0x8649, 0xB0B9, 0x864A, 0xB0BA, + 0x864B, 0xB0BB, 0x864C, 0xB0BD, 0x864D, 0xB0BE, 0x864E, 0xB0BF, + 0x864F, 0xB0C0, 0x8650, 0xB0C1, 0x8651, 0xB0C2, 0x8652, 0xB0C3, + 0x8653, 0xB0C6, 0x8654, 0xB0CA, 0x8655, 0xB0CB, 0x8656, 0xB0CC, + 0x8657, 0xB0CD, 0x8658, 0xB0CE, 0x8659, 0xB0CF, 0x865A, 0xB0D2, + 0x8661, 0xB0D3, 0x8662, 0xB0D5, 0x8663, 0xB0D6, 0x8664, 0xB0D7, + 0x8665, 0xB0D9, 0x8666, 0xB0DA, 0x8667, 0xB0DB, 0x8668, 0xB0DC, + 0x8669, 0xB0DD, 0x866A, 0xB0DE, 0x866B, 0xB0DF, 0x866C, 0xB0E1, + 0x866D, 0xB0E2, 0x866E, 0xB0E3, 0x866F, 0xB0E4, 0x8670, 0xB0E6, + 0x8671, 0xB0E7, 0x8672, 0xB0E8, 0x8673, 0xB0E9, 0x8674, 0xB0EA, + 0x8675, 0xB0EB, 0x8676, 0xB0EC, 0x8677, 0xB0ED, 0x8678, 0xB0EE, + 0x8679, 0xB0EF, 0x867A, 0xB0F0, 0x8681, 0xB0F1, 0x8682, 0xB0F2, + 0x8683, 0xB0F3, 0x8684, 0xB0F4, 0x8685, 0xB0F5, 0x8686, 0xB0F6, + 0x8687, 0xB0F7, 0x8688, 0xB0F8, 0x8689, 0xB0F9, 0x868A, 0xB0FA, + 0x868B, 0xB0FB, 0x868C, 0xB0FC, 0x868D, 0xB0FD, 0x868E, 0xB0FE, + 0x868F, 0xB0FF, 0x8690, 0xB100, 0x8691, 0xB101, 0x8692, 0xB102, + 0x8693, 0xB103, 0x8694, 0xB104, 0x8695, 0xB105, 0x8696, 0xB106, + 0x8697, 0xB107, 0x8698, 0xB10A, 0x8699, 0xB10D, 0x869A, 0xB10E, + 0x869B, 0xB10F, 0x869C, 0xB111, 0x869D, 0xB114, 0x869E, 0xB115, + 0x869F, 0xB116, 0x86A0, 0xB117, 0x86A1, 0xB11A, 0x86A2, 0xB11E, + 0x86A3, 0xB11F, 0x86A4, 0xB120, 0x86A5, 0xB121, 0x86A6, 0xB122, + 0x86A7, 0xB126, 0x86A8, 0xB127, 0x86A9, 0xB129, 0x86AA, 0xB12A, + 0x86AB, 0xB12B, 0x86AC, 0xB12D, 0x86AD, 0xB12E, 0x86AE, 0xB12F, + 0x86AF, 0xB130, 0x86B0, 0xB131, 0x86B1, 0xB132, 0x86B2, 0xB133, + 0x86B3, 0xB136, 0x86B4, 0xB13A, 0x86B5, 0xB13B, 0x86B6, 0xB13C, + 0x86B7, 0xB13D, 0x86B8, 0xB13E, 0x86B9, 0xB13F, 0x86BA, 0xB142, + 0x86BB, 0xB143, 0x86BC, 0xB145, 0x86BD, 0xB146, 0x86BE, 0xB147, + 0x86BF, 0xB149, 0x86C0, 0xB14A, 0x86C1, 0xB14B, 0x86C2, 0xB14C, + 0x86C3, 0xB14D, 0x86C4, 0xB14E, 0x86C5, 0xB14F, 0x86C6, 0xB152, + 0x86C7, 0xB153, 0x86C8, 0xB156, 0x86C9, 0xB157, 0x86CA, 0xB159, + 0x86CB, 0xB15A, 0x86CC, 0xB15B, 0x86CD, 0xB15D, 0x86CE, 0xB15E, + 0x86CF, 0xB15F, 0x86D0, 0xB161, 0x86D1, 0xB162, 0x86D2, 0xB163, + 0x86D3, 0xB164, 0x86D4, 0xB165, 0x86D5, 0xB166, 0x86D6, 0xB167, + 0x86D7, 0xB168, 0x86D8, 0xB169, 0x86D9, 0xB16A, 0x86DA, 0xB16B, + 0x86DB, 0xB16C, 0x86DC, 0xB16D, 0x86DD, 0xB16E, 0x86DE, 0xB16F, + 0x86DF, 0xB170, 0x86E0, 0xB171, 0x86E1, 0xB172, 0x86E2, 0xB173, + 0x86E3, 0xB174, 0x86E4, 0xB175, 0x86E5, 0xB176, 0x86E6, 0xB177, + 0x86E7, 0xB17A, 0x86E8, 0xB17B, 0x86E9, 0xB17D, 0x86EA, 0xB17E, + 0x86EB, 0xB17F, 0x86EC, 0xB181, 0x86ED, 0xB183, 0x86EE, 0xB184, + 0x86EF, 0xB185, 0x86F0, 0xB186, 0x86F1, 0xB187, 0x86F2, 0xB18A, + 0x86F3, 0xB18C, 0x86F4, 0xB18E, 0x86F5, 0xB18F, 0x86F6, 0xB190, + 0x86F7, 0xB191, 0x86F8, 0xB195, 0x86F9, 0xB196, 0x86FA, 0xB197, + 0x86FB, 0xB199, 0x86FC, 0xB19A, 0x86FD, 0xB19B, 0x86FE, 0xB19D, + 0x8741, 0xB19E, 0x8742, 0xB19F, 0x8743, 0xB1A0, 0x8744, 0xB1A1, + 0x8745, 0xB1A2, 0x8746, 0xB1A3, 0x8747, 0xB1A4, 0x8748, 0xB1A5, + 0x8749, 0xB1A6, 0x874A, 0xB1A7, 0x874B, 0xB1A9, 0x874C, 0xB1AA, + 0x874D, 0xB1AB, 0x874E, 0xB1AC, 0x874F, 0xB1AD, 0x8750, 0xB1AE, + 0x8751, 0xB1AF, 0x8752, 0xB1B0, 0x8753, 0xB1B1, 0x8754, 0xB1B2, + 0x8755, 0xB1B3, 0x8756, 0xB1B4, 0x8757, 0xB1B5, 0x8758, 0xB1B6, + 0x8759, 0xB1B7, 0x875A, 0xB1B8, 0x8761, 0xB1B9, 0x8762, 0xB1BA, + 0x8763, 0xB1BB, 0x8764, 0xB1BC, 0x8765, 0xB1BD, 0x8766, 0xB1BE, + 0x8767, 0xB1BF, 0x8768, 0xB1C0, 0x8769, 0xB1C1, 0x876A, 0xB1C2, + 0x876B, 0xB1C3, 0x876C, 0xB1C4, 0x876D, 0xB1C5, 0x876E, 0xB1C6, + 0x876F, 0xB1C7, 0x8770, 0xB1C8, 0x8771, 0xB1C9, 0x8772, 0xB1CA, + 0x8773, 0xB1CB, 0x8774, 0xB1CD, 0x8775, 0xB1CE, 0x8776, 0xB1CF, + 0x8777, 0xB1D1, 0x8778, 0xB1D2, 0x8779, 0xB1D3, 0x877A, 0xB1D5, + 0x8781, 0xB1D6, 0x8782, 0xB1D7, 0x8783, 0xB1D8, 0x8784, 0xB1D9, + 0x8785, 0xB1DA, 0x8786, 0xB1DB, 0x8787, 0xB1DE, 0x8788, 0xB1E0, + 0x8789, 0xB1E1, 0x878A, 0xB1E2, 0x878B, 0xB1E3, 0x878C, 0xB1E4, + 0x878D, 0xB1E5, 0x878E, 0xB1E6, 0x878F, 0xB1E7, 0x8790, 0xB1EA, + 0x8791, 0xB1EB, 0x8792, 0xB1ED, 0x8793, 0xB1EE, 0x8794, 0xB1EF, + 0x8795, 0xB1F1, 0x8796, 0xB1F2, 0x8797, 0xB1F3, 0x8798, 0xB1F4, + 0x8799, 0xB1F5, 0x879A, 0xB1F6, 0x879B, 0xB1F7, 0x879C, 0xB1F8, + 0x879D, 0xB1FA, 0x879E, 0xB1FC, 0x879F, 0xB1FE, 0x87A0, 0xB1FF, + 0x87A1, 0xB200, 0x87A2, 0xB201, 0x87A3, 0xB202, 0x87A4, 0xB203, + 0x87A5, 0xB206, 0x87A6, 0xB207, 0x87A7, 0xB209, 0x87A8, 0xB20A, + 0x87A9, 0xB20D, 0x87AA, 0xB20E, 0x87AB, 0xB20F, 0x87AC, 0xB210, + 0x87AD, 0xB211, 0x87AE, 0xB212, 0x87AF, 0xB213, 0x87B0, 0xB216, + 0x87B1, 0xB218, 0x87B2, 0xB21A, 0x87B3, 0xB21B, 0x87B4, 0xB21C, + 0x87B5, 0xB21D, 0x87B6, 0xB21E, 0x87B7, 0xB21F, 0x87B8, 0xB221, + 0x87B9, 0xB222, 0x87BA, 0xB223, 0x87BB, 0xB224, 0x87BC, 0xB225, + 0x87BD, 0xB226, 0x87BE, 0xB227, 0x87BF, 0xB228, 0x87C0, 0xB229, + 0x87C1, 0xB22A, 0x87C2, 0xB22B, 0x87C3, 0xB22C, 0x87C4, 0xB22D, + 0x87C5, 0xB22E, 0x87C6, 0xB22F, 0x87C7, 0xB230, 0x87C8, 0xB231, + 0x87C9, 0xB232, 0x87CA, 0xB233, 0x87CB, 0xB235, 0x87CC, 0xB236, + 0x87CD, 0xB237, 0x87CE, 0xB238, 0x87CF, 0xB239, 0x87D0, 0xB23A, + 0x87D1, 0xB23B, 0x87D2, 0xB23D, 0x87D3, 0xB23E, 0x87D4, 0xB23F, + 0x87D5, 0xB240, 0x87D6, 0xB241, 0x87D7, 0xB242, 0x87D8, 0xB243, + 0x87D9, 0xB244, 0x87DA, 0xB245, 0x87DB, 0xB246, 0x87DC, 0xB247, + 0x87DD, 0xB248, 0x87DE, 0xB249, 0x87DF, 0xB24A, 0x87E0, 0xB24B, + 0x87E1, 0xB24C, 0x87E2, 0xB24D, 0x87E3, 0xB24E, 0x87E4, 0xB24F, + 0x87E5, 0xB250, 0x87E6, 0xB251, 0x87E7, 0xB252, 0x87E8, 0xB253, + 0x87E9, 0xB254, 0x87EA, 0xB255, 0x87EB, 0xB256, 0x87EC, 0xB257, + 0x87ED, 0xB259, 0x87EE, 0xB25A, 0x87EF, 0xB25B, 0x87F0, 0xB25D, + 0x87F1, 0xB25E, 0x87F2, 0xB25F, 0x87F3, 0xB261, 0x87F4, 0xB262, + 0x87F5, 0xB263, 0x87F6, 0xB264, 0x87F7, 0xB265, 0x87F8, 0xB266, + 0x87F9, 0xB267, 0x87FA, 0xB26A, 0x87FB, 0xB26B, 0x87FC, 0xB26C, + 0x87FD, 0xB26D, 0x87FE, 0xB26E, 0x8841, 0xB26F, 0x8842, 0xB270, + 0x8843, 0xB271, 0x8844, 0xB272, 0x8845, 0xB273, 0x8846, 0xB276, + 0x8847, 0xB277, 0x8848, 0xB278, 0x8849, 0xB279, 0x884A, 0xB27A, + 0x884B, 0xB27B, 0x884C, 0xB27D, 0x884D, 0xB27E, 0x884E, 0xB27F, + 0x884F, 0xB280, 0x8850, 0xB281, 0x8851, 0xB282, 0x8852, 0xB283, + 0x8853, 0xB286, 0x8854, 0xB287, 0x8855, 0xB288, 0x8856, 0xB28A, + 0x8857, 0xB28B, 0x8858, 0xB28C, 0x8859, 0xB28D, 0x885A, 0xB28E, + 0x8861, 0xB28F, 0x8862, 0xB292, 0x8863, 0xB293, 0x8864, 0xB295, + 0x8865, 0xB296, 0x8866, 0xB297, 0x8867, 0xB29B, 0x8868, 0xB29C, + 0x8869, 0xB29D, 0x886A, 0xB29E, 0x886B, 0xB29F, 0x886C, 0xB2A2, + 0x886D, 0xB2A4, 0x886E, 0xB2A7, 0x886F, 0xB2A8, 0x8870, 0xB2A9, + 0x8871, 0xB2AB, 0x8872, 0xB2AD, 0x8873, 0xB2AE, 0x8874, 0xB2AF, + 0x8875, 0xB2B1, 0x8876, 0xB2B2, 0x8877, 0xB2B3, 0x8878, 0xB2B5, + 0x8879, 0xB2B6, 0x887A, 0xB2B7, 0x8881, 0xB2B8, 0x8882, 0xB2B9, + 0x8883, 0xB2BA, 0x8884, 0xB2BB, 0x8885, 0xB2BC, 0x8886, 0xB2BD, + 0x8887, 0xB2BE, 0x8888, 0xB2BF, 0x8889, 0xB2C0, 0x888A, 0xB2C1, + 0x888B, 0xB2C2, 0x888C, 0xB2C3, 0x888D, 0xB2C4, 0x888E, 0xB2C5, + 0x888F, 0xB2C6, 0x8890, 0xB2C7, 0x8891, 0xB2CA, 0x8892, 0xB2CB, + 0x8893, 0xB2CD, 0x8894, 0xB2CE, 0x8895, 0xB2CF, 0x8896, 0xB2D1, + 0x8897, 0xB2D3, 0x8898, 0xB2D4, 0x8899, 0xB2D5, 0x889A, 0xB2D6, + 0x889B, 0xB2D7, 0x889C, 0xB2DA, 0x889D, 0xB2DC, 0x889E, 0xB2DE, + 0x889F, 0xB2DF, 0x88A0, 0xB2E0, 0x88A1, 0xB2E1, 0x88A2, 0xB2E3, + 0x88A3, 0xB2E7, 0x88A4, 0xB2E9, 0x88A5, 0xB2EA, 0x88A6, 0xB2F0, + 0x88A7, 0xB2F1, 0x88A8, 0xB2F2, 0x88A9, 0xB2F6, 0x88AA, 0xB2FC, + 0x88AB, 0xB2FD, 0x88AC, 0xB2FE, 0x88AD, 0xB302, 0x88AE, 0xB303, + 0x88AF, 0xB305, 0x88B0, 0xB306, 0x88B1, 0xB307, 0x88B2, 0xB309, + 0x88B3, 0xB30A, 0x88B4, 0xB30B, 0x88B5, 0xB30C, 0x88B6, 0xB30D, + 0x88B7, 0xB30E, 0x88B8, 0xB30F, 0x88B9, 0xB312, 0x88BA, 0xB316, + 0x88BB, 0xB317, 0x88BC, 0xB318, 0x88BD, 0xB319, 0x88BE, 0xB31A, + 0x88BF, 0xB31B, 0x88C0, 0xB31D, 0x88C1, 0xB31E, 0x88C2, 0xB31F, + 0x88C3, 0xB320, 0x88C4, 0xB321, 0x88C5, 0xB322, 0x88C6, 0xB323, + 0x88C7, 0xB324, 0x88C8, 0xB325, 0x88C9, 0xB326, 0x88CA, 0xB327, + 0x88CB, 0xB328, 0x88CC, 0xB329, 0x88CD, 0xB32A, 0x88CE, 0xB32B, + 0x88CF, 0xB32C, 0x88D0, 0xB32D, 0x88D1, 0xB32E, 0x88D2, 0xB32F, + 0x88D3, 0xB330, 0x88D4, 0xB331, 0x88D5, 0xB332, 0x88D6, 0xB333, + 0x88D7, 0xB334, 0x88D8, 0xB335, 0x88D9, 0xB336, 0x88DA, 0xB337, + 0x88DB, 0xB338, 0x88DC, 0xB339, 0x88DD, 0xB33A, 0x88DE, 0xB33B, + 0x88DF, 0xB33C, 0x88E0, 0xB33D, 0x88E1, 0xB33E, 0x88E2, 0xB33F, + 0x88E3, 0xB340, 0x88E4, 0xB341, 0x88E5, 0xB342, 0x88E6, 0xB343, + 0x88E7, 0xB344, 0x88E8, 0xB345, 0x88E9, 0xB346, 0x88EA, 0xB347, + 0x88EB, 0xB348, 0x88EC, 0xB349, 0x88ED, 0xB34A, 0x88EE, 0xB34B, + 0x88EF, 0xB34C, 0x88F0, 0xB34D, 0x88F1, 0xB34E, 0x88F2, 0xB34F, + 0x88F3, 0xB350, 0x88F4, 0xB351, 0x88F5, 0xB352, 0x88F6, 0xB353, + 0x88F7, 0xB357, 0x88F8, 0xB359, 0x88F9, 0xB35A, 0x88FA, 0xB35D, + 0x88FB, 0xB360, 0x88FC, 0xB361, 0x88FD, 0xB362, 0x88FE, 0xB363, + 0x8941, 0xB366, 0x8942, 0xB368, 0x8943, 0xB36A, 0x8944, 0xB36C, + 0x8945, 0xB36D, 0x8946, 0xB36F, 0x8947, 0xB372, 0x8948, 0xB373, + 0x8949, 0xB375, 0x894A, 0xB376, 0x894B, 0xB377, 0x894C, 0xB379, + 0x894D, 0xB37A, 0x894E, 0xB37B, 0x894F, 0xB37C, 0x8950, 0xB37D, + 0x8951, 0xB37E, 0x8952, 0xB37F, 0x8953, 0xB382, 0x8954, 0xB386, + 0x8955, 0xB387, 0x8956, 0xB388, 0x8957, 0xB389, 0x8958, 0xB38A, + 0x8959, 0xB38B, 0x895A, 0xB38D, 0x8961, 0xB38E, 0x8962, 0xB38F, + 0x8963, 0xB391, 0x8964, 0xB392, 0x8965, 0xB393, 0x8966, 0xB395, + 0x8967, 0xB396, 0x8968, 0xB397, 0x8969, 0xB398, 0x896A, 0xB399, + 0x896B, 0xB39A, 0x896C, 0xB39B, 0x896D, 0xB39C, 0x896E, 0xB39D, + 0x896F, 0xB39E, 0x8970, 0xB39F, 0x8971, 0xB3A2, 0x8972, 0xB3A3, + 0x8973, 0xB3A4, 0x8974, 0xB3A5, 0x8975, 0xB3A6, 0x8976, 0xB3A7, + 0x8977, 0xB3A9, 0x8978, 0xB3AA, 0x8979, 0xB3AB, 0x897A, 0xB3AD, + 0x8981, 0xB3AE, 0x8982, 0xB3AF, 0x8983, 0xB3B0, 0x8984, 0xB3B1, + 0x8985, 0xB3B2, 0x8986, 0xB3B3, 0x8987, 0xB3B4, 0x8988, 0xB3B5, + 0x8989, 0xB3B6, 0x898A, 0xB3B7, 0x898B, 0xB3B8, 0x898C, 0xB3B9, + 0x898D, 0xB3BA, 0x898E, 0xB3BB, 0x898F, 0xB3BC, 0x8990, 0xB3BD, + 0x8991, 0xB3BE, 0x8992, 0xB3BF, 0x8993, 0xB3C0, 0x8994, 0xB3C1, + 0x8995, 0xB3C2, 0x8996, 0xB3C3, 0x8997, 0xB3C6, 0x8998, 0xB3C7, + 0x8999, 0xB3C9, 0x899A, 0xB3CA, 0x899B, 0xB3CD, 0x899C, 0xB3CF, + 0x899D, 0xB3D1, 0x899E, 0xB3D2, 0x899F, 0xB3D3, 0x89A0, 0xB3D6, + 0x89A1, 0xB3D8, 0x89A2, 0xB3DA, 0x89A3, 0xB3DC, 0x89A4, 0xB3DE, + 0x89A5, 0xB3DF, 0x89A6, 0xB3E1, 0x89A7, 0xB3E2, 0x89A8, 0xB3E3, + 0x89A9, 0xB3E5, 0x89AA, 0xB3E6, 0x89AB, 0xB3E7, 0x89AC, 0xB3E9, + 0x89AD, 0xB3EA, 0x89AE, 0xB3EB, 0x89AF, 0xB3EC, 0x89B0, 0xB3ED, + 0x89B1, 0xB3EE, 0x89B2, 0xB3EF, 0x89B3, 0xB3F0, 0x89B4, 0xB3F1, + 0x89B5, 0xB3F2, 0x89B6, 0xB3F3, 0x89B7, 0xB3F4, 0x89B8, 0xB3F5, + 0x89B9, 0xB3F6, 0x89BA, 0xB3F7, 0x89BB, 0xB3F8, 0x89BC, 0xB3F9, + 0x89BD, 0xB3FA, 0x89BE, 0xB3FB, 0x89BF, 0xB3FD, 0x89C0, 0xB3FE, + 0x89C1, 0xB3FF, 0x89C2, 0xB400, 0x89C3, 0xB401, 0x89C4, 0xB402, + 0x89C5, 0xB403, 0x89C6, 0xB404, 0x89C7, 0xB405, 0x89C8, 0xB406, + 0x89C9, 0xB407, 0x89CA, 0xB408, 0x89CB, 0xB409, 0x89CC, 0xB40A, + 0x89CD, 0xB40B, 0x89CE, 0xB40C, 0x89CF, 0xB40D, 0x89D0, 0xB40E, + 0x89D1, 0xB40F, 0x89D2, 0xB411, 0x89D3, 0xB412, 0x89D4, 0xB413, + 0x89D5, 0xB414, 0x89D6, 0xB415, 0x89D7, 0xB416, 0x89D8, 0xB417, + 0x89D9, 0xB419, 0x89DA, 0xB41A, 0x89DB, 0xB41B, 0x89DC, 0xB41D, + 0x89DD, 0xB41E, 0x89DE, 0xB41F, 0x89DF, 0xB421, 0x89E0, 0xB422, + 0x89E1, 0xB423, 0x89E2, 0xB424, 0x89E3, 0xB425, 0x89E4, 0xB426, + 0x89E5, 0xB427, 0x89E6, 0xB42A, 0x89E7, 0xB42C, 0x89E8, 0xB42D, + 0x89E9, 0xB42E, 0x89EA, 0xB42F, 0x89EB, 0xB430, 0x89EC, 0xB431, + 0x89ED, 0xB432, 0x89EE, 0xB433, 0x89EF, 0xB435, 0x89F0, 0xB436, + 0x89F1, 0xB437, 0x89F2, 0xB438, 0x89F3, 0xB439, 0x89F4, 0xB43A, + 0x89F5, 0xB43B, 0x89F6, 0xB43C, 0x89F7, 0xB43D, 0x89F8, 0xB43E, + 0x89F9, 0xB43F, 0x89FA, 0xB440, 0x89FB, 0xB441, 0x89FC, 0xB442, + 0x89FD, 0xB443, 0x89FE, 0xB444, 0x8A41, 0xB445, 0x8A42, 0xB446, + 0x8A43, 0xB447, 0x8A44, 0xB448, 0x8A45, 0xB449, 0x8A46, 0xB44A, + 0x8A47, 0xB44B, 0x8A48, 0xB44C, 0x8A49, 0xB44D, 0x8A4A, 0xB44E, + 0x8A4B, 0xB44F, 0x8A4C, 0xB452, 0x8A4D, 0xB453, 0x8A4E, 0xB455, + 0x8A4F, 0xB456, 0x8A50, 0xB457, 0x8A51, 0xB459, 0x8A52, 0xB45A, + 0x8A53, 0xB45B, 0x8A54, 0xB45C, 0x8A55, 0xB45D, 0x8A56, 0xB45E, + 0x8A57, 0xB45F, 0x8A58, 0xB462, 0x8A59, 0xB464, 0x8A5A, 0xB466, + 0x8A61, 0xB467, 0x8A62, 0xB468, 0x8A63, 0xB469, 0x8A64, 0xB46A, + 0x8A65, 0xB46B, 0x8A66, 0xB46D, 0x8A67, 0xB46E, 0x8A68, 0xB46F, + 0x8A69, 0xB470, 0x8A6A, 0xB471, 0x8A6B, 0xB472, 0x8A6C, 0xB473, + 0x8A6D, 0xB474, 0x8A6E, 0xB475, 0x8A6F, 0xB476, 0x8A70, 0xB477, + 0x8A71, 0xB478, 0x8A72, 0xB479, 0x8A73, 0xB47A, 0x8A74, 0xB47B, + 0x8A75, 0xB47C, 0x8A76, 0xB47D, 0x8A77, 0xB47E, 0x8A78, 0xB47F, + 0x8A79, 0xB481, 0x8A7A, 0xB482, 0x8A81, 0xB483, 0x8A82, 0xB484, + 0x8A83, 0xB485, 0x8A84, 0xB486, 0x8A85, 0xB487, 0x8A86, 0xB489, + 0x8A87, 0xB48A, 0x8A88, 0xB48B, 0x8A89, 0xB48C, 0x8A8A, 0xB48D, + 0x8A8B, 0xB48E, 0x8A8C, 0xB48F, 0x8A8D, 0xB490, 0x8A8E, 0xB491, + 0x8A8F, 0xB492, 0x8A90, 0xB493, 0x8A91, 0xB494, 0x8A92, 0xB495, + 0x8A93, 0xB496, 0x8A94, 0xB497, 0x8A95, 0xB498, 0x8A96, 0xB499, + 0x8A97, 0xB49A, 0x8A98, 0xB49B, 0x8A99, 0xB49C, 0x8A9A, 0xB49E, + 0x8A9B, 0xB49F, 0x8A9C, 0xB4A0, 0x8A9D, 0xB4A1, 0x8A9E, 0xB4A2, + 0x8A9F, 0xB4A3, 0x8AA0, 0xB4A5, 0x8AA1, 0xB4A6, 0x8AA2, 0xB4A7, + 0x8AA3, 0xB4A9, 0x8AA4, 0xB4AA, 0x8AA5, 0xB4AB, 0x8AA6, 0xB4AD, + 0x8AA7, 0xB4AE, 0x8AA8, 0xB4AF, 0x8AA9, 0xB4B0, 0x8AAA, 0xB4B1, + 0x8AAB, 0xB4B2, 0x8AAC, 0xB4B3, 0x8AAD, 0xB4B4, 0x8AAE, 0xB4B6, + 0x8AAF, 0xB4B8, 0x8AB0, 0xB4BA, 0x8AB1, 0xB4BB, 0x8AB2, 0xB4BC, + 0x8AB3, 0xB4BD, 0x8AB4, 0xB4BE, 0x8AB5, 0xB4BF, 0x8AB6, 0xB4C1, + 0x8AB7, 0xB4C2, 0x8AB8, 0xB4C3, 0x8AB9, 0xB4C5, 0x8ABA, 0xB4C6, + 0x8ABB, 0xB4C7, 0x8ABC, 0xB4C9, 0x8ABD, 0xB4CA, 0x8ABE, 0xB4CB, + 0x8ABF, 0xB4CC, 0x8AC0, 0xB4CD, 0x8AC1, 0xB4CE, 0x8AC2, 0xB4CF, + 0x8AC3, 0xB4D1, 0x8AC4, 0xB4D2, 0x8AC5, 0xB4D3, 0x8AC6, 0xB4D4, + 0x8AC7, 0xB4D6, 0x8AC8, 0xB4D7, 0x8AC9, 0xB4D8, 0x8ACA, 0xB4D9, + 0x8ACB, 0xB4DA, 0x8ACC, 0xB4DB, 0x8ACD, 0xB4DE, 0x8ACE, 0xB4DF, + 0x8ACF, 0xB4E1, 0x8AD0, 0xB4E2, 0x8AD1, 0xB4E5, 0x8AD2, 0xB4E7, + 0x8AD3, 0xB4E8, 0x8AD4, 0xB4E9, 0x8AD5, 0xB4EA, 0x8AD6, 0xB4EB, + 0x8AD7, 0xB4EE, 0x8AD8, 0xB4F0, 0x8AD9, 0xB4F2, 0x8ADA, 0xB4F3, + 0x8ADB, 0xB4F4, 0x8ADC, 0xB4F5, 0x8ADD, 0xB4F6, 0x8ADE, 0xB4F7, + 0x8ADF, 0xB4F9, 0x8AE0, 0xB4FA, 0x8AE1, 0xB4FB, 0x8AE2, 0xB4FC, + 0x8AE3, 0xB4FD, 0x8AE4, 0xB4FE, 0x8AE5, 0xB4FF, 0x8AE6, 0xB500, + 0x8AE7, 0xB501, 0x8AE8, 0xB502, 0x8AE9, 0xB503, 0x8AEA, 0xB504, + 0x8AEB, 0xB505, 0x8AEC, 0xB506, 0x8AED, 0xB507, 0x8AEE, 0xB508, + 0x8AEF, 0xB509, 0x8AF0, 0xB50A, 0x8AF1, 0xB50B, 0x8AF2, 0xB50C, + 0x8AF3, 0xB50D, 0x8AF4, 0xB50E, 0x8AF5, 0xB50F, 0x8AF6, 0xB510, + 0x8AF7, 0xB511, 0x8AF8, 0xB512, 0x8AF9, 0xB513, 0x8AFA, 0xB516, + 0x8AFB, 0xB517, 0x8AFC, 0xB519, 0x8AFD, 0xB51A, 0x8AFE, 0xB51D, + 0x8B41, 0xB51E, 0x8B42, 0xB51F, 0x8B43, 0xB520, 0x8B44, 0xB521, + 0x8B45, 0xB522, 0x8B46, 0xB523, 0x8B47, 0xB526, 0x8B48, 0xB52B, + 0x8B49, 0xB52C, 0x8B4A, 0xB52D, 0x8B4B, 0xB52E, 0x8B4C, 0xB52F, + 0x8B4D, 0xB532, 0x8B4E, 0xB533, 0x8B4F, 0xB535, 0x8B50, 0xB536, + 0x8B51, 0xB537, 0x8B52, 0xB539, 0x8B53, 0xB53A, 0x8B54, 0xB53B, + 0x8B55, 0xB53C, 0x8B56, 0xB53D, 0x8B57, 0xB53E, 0x8B58, 0xB53F, + 0x8B59, 0xB542, 0x8B5A, 0xB546, 0x8B61, 0xB547, 0x8B62, 0xB548, + 0x8B63, 0xB549, 0x8B64, 0xB54A, 0x8B65, 0xB54E, 0x8B66, 0xB54F, + 0x8B67, 0xB551, 0x8B68, 0xB552, 0x8B69, 0xB553, 0x8B6A, 0xB555, + 0x8B6B, 0xB556, 0x8B6C, 0xB557, 0x8B6D, 0xB558, 0x8B6E, 0xB559, + 0x8B6F, 0xB55A, 0x8B70, 0xB55B, 0x8B71, 0xB55E, 0x8B72, 0xB562, + 0x8B73, 0xB563, 0x8B74, 0xB564, 0x8B75, 0xB565, 0x8B76, 0xB566, + 0x8B77, 0xB567, 0x8B78, 0xB568, 0x8B79, 0xB569, 0x8B7A, 0xB56A, + 0x8B81, 0xB56B, 0x8B82, 0xB56C, 0x8B83, 0xB56D, 0x8B84, 0xB56E, + 0x8B85, 0xB56F, 0x8B86, 0xB570, 0x8B87, 0xB571, 0x8B88, 0xB572, + 0x8B89, 0xB573, 0x8B8A, 0xB574, 0x8B8B, 0xB575, 0x8B8C, 0xB576, + 0x8B8D, 0xB577, 0x8B8E, 0xB578, 0x8B8F, 0xB579, 0x8B90, 0xB57A, + 0x8B91, 0xB57B, 0x8B92, 0xB57C, 0x8B93, 0xB57D, 0x8B94, 0xB57E, + 0x8B95, 0xB57F, 0x8B96, 0xB580, 0x8B97, 0xB581, 0x8B98, 0xB582, + 0x8B99, 0xB583, 0x8B9A, 0xB584, 0x8B9B, 0xB585, 0x8B9C, 0xB586, + 0x8B9D, 0xB587, 0x8B9E, 0xB588, 0x8B9F, 0xB589, 0x8BA0, 0xB58A, + 0x8BA1, 0xB58B, 0x8BA2, 0xB58C, 0x8BA3, 0xB58D, 0x8BA4, 0xB58E, + 0x8BA5, 0xB58F, 0x8BA6, 0xB590, 0x8BA7, 0xB591, 0x8BA8, 0xB592, + 0x8BA9, 0xB593, 0x8BAA, 0xB594, 0x8BAB, 0xB595, 0x8BAC, 0xB596, + 0x8BAD, 0xB597, 0x8BAE, 0xB598, 0x8BAF, 0xB599, 0x8BB0, 0xB59A, + 0x8BB1, 0xB59B, 0x8BB2, 0xB59C, 0x8BB3, 0xB59D, 0x8BB4, 0xB59E, + 0x8BB5, 0xB59F, 0x8BB6, 0xB5A2, 0x8BB7, 0xB5A3, 0x8BB8, 0xB5A5, + 0x8BB9, 0xB5A6, 0x8BBA, 0xB5A7, 0x8BBB, 0xB5A9, 0x8BBC, 0xB5AC, + 0x8BBD, 0xB5AD, 0x8BBE, 0xB5AE, 0x8BBF, 0xB5AF, 0x8BC0, 0xB5B2, + 0x8BC1, 0xB5B6, 0x8BC2, 0xB5B7, 0x8BC3, 0xB5B8, 0x8BC4, 0xB5B9, + 0x8BC5, 0xB5BA, 0x8BC6, 0xB5BE, 0x8BC7, 0xB5BF, 0x8BC8, 0xB5C1, + 0x8BC9, 0xB5C2, 0x8BCA, 0xB5C3, 0x8BCB, 0xB5C5, 0x8BCC, 0xB5C6, + 0x8BCD, 0xB5C7, 0x8BCE, 0xB5C8, 0x8BCF, 0xB5C9, 0x8BD0, 0xB5CA, + 0x8BD1, 0xB5CB, 0x8BD2, 0xB5CE, 0x8BD3, 0xB5D2, 0x8BD4, 0xB5D3, + 0x8BD5, 0xB5D4, 0x8BD6, 0xB5D5, 0x8BD7, 0xB5D6, 0x8BD8, 0xB5D7, + 0x8BD9, 0xB5D9, 0x8BDA, 0xB5DA, 0x8BDB, 0xB5DB, 0x8BDC, 0xB5DC, + 0x8BDD, 0xB5DD, 0x8BDE, 0xB5DE, 0x8BDF, 0xB5DF, 0x8BE0, 0xB5E0, + 0x8BE1, 0xB5E1, 0x8BE2, 0xB5E2, 0x8BE3, 0xB5E3, 0x8BE4, 0xB5E4, + 0x8BE5, 0xB5E5, 0x8BE6, 0xB5E6, 0x8BE7, 0xB5E7, 0x8BE8, 0xB5E8, + 0x8BE9, 0xB5E9, 0x8BEA, 0xB5EA, 0x8BEB, 0xB5EB, 0x8BEC, 0xB5ED, + 0x8BED, 0xB5EE, 0x8BEE, 0xB5EF, 0x8BEF, 0xB5F0, 0x8BF0, 0xB5F1, + 0x8BF1, 0xB5F2, 0x8BF2, 0xB5F3, 0x8BF3, 0xB5F4, 0x8BF4, 0xB5F5, + 0x8BF5, 0xB5F6, 0x8BF6, 0xB5F7, 0x8BF7, 0xB5F8, 0x8BF8, 0xB5F9, + 0x8BF9, 0xB5FA, 0x8BFA, 0xB5FB, 0x8BFB, 0xB5FC, 0x8BFC, 0xB5FD, + 0x8BFD, 0xB5FE, 0x8BFE, 0xB5FF, 0x8C41, 0xB600, 0x8C42, 0xB601, + 0x8C43, 0xB602, 0x8C44, 0xB603, 0x8C45, 0xB604, 0x8C46, 0xB605, + 0x8C47, 0xB606, 0x8C48, 0xB607, 0x8C49, 0xB608, 0x8C4A, 0xB609, + 0x8C4B, 0xB60A, 0x8C4C, 0xB60B, 0x8C4D, 0xB60C, 0x8C4E, 0xB60D, + 0x8C4F, 0xB60E, 0x8C50, 0xB60F, 0x8C51, 0xB612, 0x8C52, 0xB613, + 0x8C53, 0xB615, 0x8C54, 0xB616, 0x8C55, 0xB617, 0x8C56, 0xB619, + 0x8C57, 0xB61A, 0x8C58, 0xB61B, 0x8C59, 0xB61C, 0x8C5A, 0xB61D, + 0x8C61, 0xB61E, 0x8C62, 0xB61F, 0x8C63, 0xB620, 0x8C64, 0xB621, + 0x8C65, 0xB622, 0x8C66, 0xB623, 0x8C67, 0xB624, 0x8C68, 0xB626, + 0x8C69, 0xB627, 0x8C6A, 0xB628, 0x8C6B, 0xB629, 0x8C6C, 0xB62A, + 0x8C6D, 0xB62B, 0x8C6E, 0xB62D, 0x8C6F, 0xB62E, 0x8C70, 0xB62F, + 0x8C71, 0xB630, 0x8C72, 0xB631, 0x8C73, 0xB632, 0x8C74, 0xB633, + 0x8C75, 0xB635, 0x8C76, 0xB636, 0x8C77, 0xB637, 0x8C78, 0xB638, + 0x8C79, 0xB639, 0x8C7A, 0xB63A, 0x8C81, 0xB63B, 0x8C82, 0xB63C, + 0x8C83, 0xB63D, 0x8C84, 0xB63E, 0x8C85, 0xB63F, 0x8C86, 0xB640, + 0x8C87, 0xB641, 0x8C88, 0xB642, 0x8C89, 0xB643, 0x8C8A, 0xB644, + 0x8C8B, 0xB645, 0x8C8C, 0xB646, 0x8C8D, 0xB647, 0x8C8E, 0xB649, + 0x8C8F, 0xB64A, 0x8C90, 0xB64B, 0x8C91, 0xB64C, 0x8C92, 0xB64D, + 0x8C93, 0xB64E, 0x8C94, 0xB64F, 0x8C95, 0xB650, 0x8C96, 0xB651, + 0x8C97, 0xB652, 0x8C98, 0xB653, 0x8C99, 0xB654, 0x8C9A, 0xB655, + 0x8C9B, 0xB656, 0x8C9C, 0xB657, 0x8C9D, 0xB658, 0x8C9E, 0xB659, + 0x8C9F, 0xB65A, 0x8CA0, 0xB65B, 0x8CA1, 0xB65C, 0x8CA2, 0xB65D, + 0x8CA3, 0xB65E, 0x8CA4, 0xB65F, 0x8CA5, 0xB660, 0x8CA6, 0xB661, + 0x8CA7, 0xB662, 0x8CA8, 0xB663, 0x8CA9, 0xB665, 0x8CAA, 0xB666, + 0x8CAB, 0xB667, 0x8CAC, 0xB669, 0x8CAD, 0xB66A, 0x8CAE, 0xB66B, + 0x8CAF, 0xB66C, 0x8CB0, 0xB66D, 0x8CB1, 0xB66E, 0x8CB2, 0xB66F, + 0x8CB3, 0xB670, 0x8CB4, 0xB671, 0x8CB5, 0xB672, 0x8CB6, 0xB673, + 0x8CB7, 0xB674, 0x8CB8, 0xB675, 0x8CB9, 0xB676, 0x8CBA, 0xB677, + 0x8CBB, 0xB678, 0x8CBC, 0xB679, 0x8CBD, 0xB67A, 0x8CBE, 0xB67B, + 0x8CBF, 0xB67C, 0x8CC0, 0xB67D, 0x8CC1, 0xB67E, 0x8CC2, 0xB67F, + 0x8CC3, 0xB680, 0x8CC4, 0xB681, 0x8CC5, 0xB682, 0x8CC6, 0xB683, + 0x8CC7, 0xB684, 0x8CC8, 0xB685, 0x8CC9, 0xB686, 0x8CCA, 0xB687, + 0x8CCB, 0xB688, 0x8CCC, 0xB689, 0x8CCD, 0xB68A, 0x8CCE, 0xB68B, + 0x8CCF, 0xB68C, 0x8CD0, 0xB68D, 0x8CD1, 0xB68E, 0x8CD2, 0xB68F, + 0x8CD3, 0xB690, 0x8CD4, 0xB691, 0x8CD5, 0xB692, 0x8CD6, 0xB693, + 0x8CD7, 0xB694, 0x8CD8, 0xB695, 0x8CD9, 0xB696, 0x8CDA, 0xB697, + 0x8CDB, 0xB698, 0x8CDC, 0xB699, 0x8CDD, 0xB69A, 0x8CDE, 0xB69B, + 0x8CDF, 0xB69E, 0x8CE0, 0xB69F, 0x8CE1, 0xB6A1, 0x8CE2, 0xB6A2, + 0x8CE3, 0xB6A3, 0x8CE4, 0xB6A5, 0x8CE5, 0xB6A6, 0x8CE6, 0xB6A7, + 0x8CE7, 0xB6A8, 0x8CE8, 0xB6A9, 0x8CE9, 0xB6AA, 0x8CEA, 0xB6AD, + 0x8CEB, 0xB6AE, 0x8CEC, 0xB6AF, 0x8CED, 0xB6B0, 0x8CEE, 0xB6B2, + 0x8CEF, 0xB6B3, 0x8CF0, 0xB6B4, 0x8CF1, 0xB6B5, 0x8CF2, 0xB6B6, + 0x8CF3, 0xB6B7, 0x8CF4, 0xB6B8, 0x8CF5, 0xB6B9, 0x8CF6, 0xB6BA, + 0x8CF7, 0xB6BB, 0x8CF8, 0xB6BC, 0x8CF9, 0xB6BD, 0x8CFA, 0xB6BE, + 0x8CFB, 0xB6BF, 0x8CFC, 0xB6C0, 0x8CFD, 0xB6C1, 0x8CFE, 0xB6C2, + 0x8D41, 0xB6C3, 0x8D42, 0xB6C4, 0x8D43, 0xB6C5, 0x8D44, 0xB6C6, + 0x8D45, 0xB6C7, 0x8D46, 0xB6C8, 0x8D47, 0xB6C9, 0x8D48, 0xB6CA, + 0x8D49, 0xB6CB, 0x8D4A, 0xB6CC, 0x8D4B, 0xB6CD, 0x8D4C, 0xB6CE, + 0x8D4D, 0xB6CF, 0x8D4E, 0xB6D0, 0x8D4F, 0xB6D1, 0x8D50, 0xB6D2, + 0x8D51, 0xB6D3, 0x8D52, 0xB6D5, 0x8D53, 0xB6D6, 0x8D54, 0xB6D7, + 0x8D55, 0xB6D8, 0x8D56, 0xB6D9, 0x8D57, 0xB6DA, 0x8D58, 0xB6DB, + 0x8D59, 0xB6DC, 0x8D5A, 0xB6DD, 0x8D61, 0xB6DE, 0x8D62, 0xB6DF, + 0x8D63, 0xB6E0, 0x8D64, 0xB6E1, 0x8D65, 0xB6E2, 0x8D66, 0xB6E3, + 0x8D67, 0xB6E4, 0x8D68, 0xB6E5, 0x8D69, 0xB6E6, 0x8D6A, 0xB6E7, + 0x8D6B, 0xB6E8, 0x8D6C, 0xB6E9, 0x8D6D, 0xB6EA, 0x8D6E, 0xB6EB, + 0x8D6F, 0xB6EC, 0x8D70, 0xB6ED, 0x8D71, 0xB6EE, 0x8D72, 0xB6EF, + 0x8D73, 0xB6F1, 0x8D74, 0xB6F2, 0x8D75, 0xB6F3, 0x8D76, 0xB6F5, + 0x8D77, 0xB6F6, 0x8D78, 0xB6F7, 0x8D79, 0xB6F9, 0x8D7A, 0xB6FA, + 0x8D81, 0xB6FB, 0x8D82, 0xB6FC, 0x8D83, 0xB6FD, 0x8D84, 0xB6FE, + 0x8D85, 0xB6FF, 0x8D86, 0xB702, 0x8D87, 0xB703, 0x8D88, 0xB704, + 0x8D89, 0xB706, 0x8D8A, 0xB707, 0x8D8B, 0xB708, 0x8D8C, 0xB709, + 0x8D8D, 0xB70A, 0x8D8E, 0xB70B, 0x8D8F, 0xB70C, 0x8D90, 0xB70D, + 0x8D91, 0xB70E, 0x8D92, 0xB70F, 0x8D93, 0xB710, 0x8D94, 0xB711, + 0x8D95, 0xB712, 0x8D96, 0xB713, 0x8D97, 0xB714, 0x8D98, 0xB715, + 0x8D99, 0xB716, 0x8D9A, 0xB717, 0x8D9B, 0xB718, 0x8D9C, 0xB719, + 0x8D9D, 0xB71A, 0x8D9E, 0xB71B, 0x8D9F, 0xB71C, 0x8DA0, 0xB71D, + 0x8DA1, 0xB71E, 0x8DA2, 0xB71F, 0x8DA3, 0xB720, 0x8DA4, 0xB721, + 0x8DA5, 0xB722, 0x8DA6, 0xB723, 0x8DA7, 0xB724, 0x8DA8, 0xB725, + 0x8DA9, 0xB726, 0x8DAA, 0xB727, 0x8DAB, 0xB72A, 0x8DAC, 0xB72B, + 0x8DAD, 0xB72D, 0x8DAE, 0xB72E, 0x8DAF, 0xB731, 0x8DB0, 0xB732, + 0x8DB1, 0xB733, 0x8DB2, 0xB734, 0x8DB3, 0xB735, 0x8DB4, 0xB736, + 0x8DB5, 0xB737, 0x8DB6, 0xB73A, 0x8DB7, 0xB73C, 0x8DB8, 0xB73D, + 0x8DB9, 0xB73E, 0x8DBA, 0xB73F, 0x8DBB, 0xB740, 0x8DBC, 0xB741, + 0x8DBD, 0xB742, 0x8DBE, 0xB743, 0x8DBF, 0xB745, 0x8DC0, 0xB746, + 0x8DC1, 0xB747, 0x8DC2, 0xB749, 0x8DC3, 0xB74A, 0x8DC4, 0xB74B, + 0x8DC5, 0xB74D, 0x8DC6, 0xB74E, 0x8DC7, 0xB74F, 0x8DC8, 0xB750, + 0x8DC9, 0xB751, 0x8DCA, 0xB752, 0x8DCB, 0xB753, 0x8DCC, 0xB756, + 0x8DCD, 0xB757, 0x8DCE, 0xB758, 0x8DCF, 0xB759, 0x8DD0, 0xB75A, + 0x8DD1, 0xB75B, 0x8DD2, 0xB75C, 0x8DD3, 0xB75D, 0x8DD4, 0xB75E, + 0x8DD5, 0xB75F, 0x8DD6, 0xB761, 0x8DD7, 0xB762, 0x8DD8, 0xB763, + 0x8DD9, 0xB765, 0x8DDA, 0xB766, 0x8DDB, 0xB767, 0x8DDC, 0xB769, + 0x8DDD, 0xB76A, 0x8DDE, 0xB76B, 0x8DDF, 0xB76C, 0x8DE0, 0xB76D, + 0x8DE1, 0xB76E, 0x8DE2, 0xB76F, 0x8DE3, 0xB772, 0x8DE4, 0xB774, + 0x8DE5, 0xB776, 0x8DE6, 0xB777, 0x8DE7, 0xB778, 0x8DE8, 0xB779, + 0x8DE9, 0xB77A, 0x8DEA, 0xB77B, 0x8DEB, 0xB77E, 0x8DEC, 0xB77F, + 0x8DED, 0xB781, 0x8DEE, 0xB782, 0x8DEF, 0xB783, 0x8DF0, 0xB785, + 0x8DF1, 0xB786, 0x8DF2, 0xB787, 0x8DF3, 0xB788, 0x8DF4, 0xB789, + 0x8DF5, 0xB78A, 0x8DF6, 0xB78B, 0x8DF7, 0xB78E, 0x8DF8, 0xB793, + 0x8DF9, 0xB794, 0x8DFA, 0xB795, 0x8DFB, 0xB79A, 0x8DFC, 0xB79B, + 0x8DFD, 0xB79D, 0x8DFE, 0xB79E, 0x8E41, 0xB79F, 0x8E42, 0xB7A1, + 0x8E43, 0xB7A2, 0x8E44, 0xB7A3, 0x8E45, 0xB7A4, 0x8E46, 0xB7A5, + 0x8E47, 0xB7A6, 0x8E48, 0xB7A7, 0x8E49, 0xB7AA, 0x8E4A, 0xB7AE, + 0x8E4B, 0xB7AF, 0x8E4C, 0xB7B0, 0x8E4D, 0xB7B1, 0x8E4E, 0xB7B2, + 0x8E4F, 0xB7B3, 0x8E50, 0xB7B6, 0x8E51, 0xB7B7, 0x8E52, 0xB7B9, + 0x8E53, 0xB7BA, 0x8E54, 0xB7BB, 0x8E55, 0xB7BC, 0x8E56, 0xB7BD, + 0x8E57, 0xB7BE, 0x8E58, 0xB7BF, 0x8E59, 0xB7C0, 0x8E5A, 0xB7C1, + 0x8E61, 0xB7C2, 0x8E62, 0xB7C3, 0x8E63, 0xB7C4, 0x8E64, 0xB7C5, + 0x8E65, 0xB7C6, 0x8E66, 0xB7C8, 0x8E67, 0xB7CA, 0x8E68, 0xB7CB, + 0x8E69, 0xB7CC, 0x8E6A, 0xB7CD, 0x8E6B, 0xB7CE, 0x8E6C, 0xB7CF, + 0x8E6D, 0xB7D0, 0x8E6E, 0xB7D1, 0x8E6F, 0xB7D2, 0x8E70, 0xB7D3, + 0x8E71, 0xB7D4, 0x8E72, 0xB7D5, 0x8E73, 0xB7D6, 0x8E74, 0xB7D7, + 0x8E75, 0xB7D8, 0x8E76, 0xB7D9, 0x8E77, 0xB7DA, 0x8E78, 0xB7DB, + 0x8E79, 0xB7DC, 0x8E7A, 0xB7DD, 0x8E81, 0xB7DE, 0x8E82, 0xB7DF, + 0x8E83, 0xB7E0, 0x8E84, 0xB7E1, 0x8E85, 0xB7E2, 0x8E86, 0xB7E3, + 0x8E87, 0xB7E4, 0x8E88, 0xB7E5, 0x8E89, 0xB7E6, 0x8E8A, 0xB7E7, + 0x8E8B, 0xB7E8, 0x8E8C, 0xB7E9, 0x8E8D, 0xB7EA, 0x8E8E, 0xB7EB, + 0x8E8F, 0xB7EE, 0x8E90, 0xB7EF, 0x8E91, 0xB7F1, 0x8E92, 0xB7F2, + 0x8E93, 0xB7F3, 0x8E94, 0xB7F5, 0x8E95, 0xB7F6, 0x8E96, 0xB7F7, + 0x8E97, 0xB7F8, 0x8E98, 0xB7F9, 0x8E99, 0xB7FA, 0x8E9A, 0xB7FB, + 0x8E9B, 0xB7FE, 0x8E9C, 0xB802, 0x8E9D, 0xB803, 0x8E9E, 0xB804, + 0x8E9F, 0xB805, 0x8EA0, 0xB806, 0x8EA1, 0xB80A, 0x8EA2, 0xB80B, + 0x8EA3, 0xB80D, 0x8EA4, 0xB80E, 0x8EA5, 0xB80F, 0x8EA6, 0xB811, + 0x8EA7, 0xB812, 0x8EA8, 0xB813, 0x8EA9, 0xB814, 0x8EAA, 0xB815, + 0x8EAB, 0xB816, 0x8EAC, 0xB817, 0x8EAD, 0xB81A, 0x8EAE, 0xB81C, + 0x8EAF, 0xB81E, 0x8EB0, 0xB81F, 0x8EB1, 0xB820, 0x8EB2, 0xB821, + 0x8EB3, 0xB822, 0x8EB4, 0xB823, 0x8EB5, 0xB826, 0x8EB6, 0xB827, + 0x8EB7, 0xB829, 0x8EB8, 0xB82A, 0x8EB9, 0xB82B, 0x8EBA, 0xB82D, + 0x8EBB, 0xB82E, 0x8EBC, 0xB82F, 0x8EBD, 0xB830, 0x8EBE, 0xB831, + 0x8EBF, 0xB832, 0x8EC0, 0xB833, 0x8EC1, 0xB836, 0x8EC2, 0xB83A, + 0x8EC3, 0xB83B, 0x8EC4, 0xB83C, 0x8EC5, 0xB83D, 0x8EC6, 0xB83E, + 0x8EC7, 0xB83F, 0x8EC8, 0xB841, 0x8EC9, 0xB842, 0x8ECA, 0xB843, + 0x8ECB, 0xB845, 0x8ECC, 0xB846, 0x8ECD, 0xB847, 0x8ECE, 0xB848, + 0x8ECF, 0xB849, 0x8ED0, 0xB84A, 0x8ED1, 0xB84B, 0x8ED2, 0xB84C, + 0x8ED3, 0xB84D, 0x8ED4, 0xB84E, 0x8ED5, 0xB84F, 0x8ED6, 0xB850, + 0x8ED7, 0xB852, 0x8ED8, 0xB854, 0x8ED9, 0xB855, 0x8EDA, 0xB856, + 0x8EDB, 0xB857, 0x8EDC, 0xB858, 0x8EDD, 0xB859, 0x8EDE, 0xB85A, + 0x8EDF, 0xB85B, 0x8EE0, 0xB85E, 0x8EE1, 0xB85F, 0x8EE2, 0xB861, + 0x8EE3, 0xB862, 0x8EE4, 0xB863, 0x8EE5, 0xB865, 0x8EE6, 0xB866, + 0x8EE7, 0xB867, 0x8EE8, 0xB868, 0x8EE9, 0xB869, 0x8EEA, 0xB86A, + 0x8EEB, 0xB86B, 0x8EEC, 0xB86E, 0x8EED, 0xB870, 0x8EEE, 0xB872, + 0x8EEF, 0xB873, 0x8EF0, 0xB874, 0x8EF1, 0xB875, 0x8EF2, 0xB876, + 0x8EF3, 0xB877, 0x8EF4, 0xB879, 0x8EF5, 0xB87A, 0x8EF6, 0xB87B, + 0x8EF7, 0xB87D, 0x8EF8, 0xB87E, 0x8EF9, 0xB87F, 0x8EFA, 0xB880, + 0x8EFB, 0xB881, 0x8EFC, 0xB882, 0x8EFD, 0xB883, 0x8EFE, 0xB884, + 0x8F41, 0xB885, 0x8F42, 0xB886, 0x8F43, 0xB887, 0x8F44, 0xB888, + 0x8F45, 0xB889, 0x8F46, 0xB88A, 0x8F47, 0xB88B, 0x8F48, 0xB88C, + 0x8F49, 0xB88E, 0x8F4A, 0xB88F, 0x8F4B, 0xB890, 0x8F4C, 0xB891, + 0x8F4D, 0xB892, 0x8F4E, 0xB893, 0x8F4F, 0xB894, 0x8F50, 0xB895, + 0x8F51, 0xB896, 0x8F52, 0xB897, 0x8F53, 0xB898, 0x8F54, 0xB899, + 0x8F55, 0xB89A, 0x8F56, 0xB89B, 0x8F57, 0xB89C, 0x8F58, 0xB89D, + 0x8F59, 0xB89E, 0x8F5A, 0xB89F, 0x8F61, 0xB8A0, 0x8F62, 0xB8A1, + 0x8F63, 0xB8A2, 0x8F64, 0xB8A3, 0x8F65, 0xB8A4, 0x8F66, 0xB8A5, + 0x8F67, 0xB8A6, 0x8F68, 0xB8A7, 0x8F69, 0xB8A9, 0x8F6A, 0xB8AA, + 0x8F6B, 0xB8AB, 0x8F6C, 0xB8AC, 0x8F6D, 0xB8AD, 0x8F6E, 0xB8AE, + 0x8F6F, 0xB8AF, 0x8F70, 0xB8B1, 0x8F71, 0xB8B2, 0x8F72, 0xB8B3, + 0x8F73, 0xB8B5, 0x8F74, 0xB8B6, 0x8F75, 0xB8B7, 0x8F76, 0xB8B9, + 0x8F77, 0xB8BA, 0x8F78, 0xB8BB, 0x8F79, 0xB8BC, 0x8F7A, 0xB8BD, + 0x8F81, 0xB8BE, 0x8F82, 0xB8BF, 0x8F83, 0xB8C2, 0x8F84, 0xB8C4, + 0x8F85, 0xB8C6, 0x8F86, 0xB8C7, 0x8F87, 0xB8C8, 0x8F88, 0xB8C9, + 0x8F89, 0xB8CA, 0x8F8A, 0xB8CB, 0x8F8B, 0xB8CD, 0x8F8C, 0xB8CE, + 0x8F8D, 0xB8CF, 0x8F8E, 0xB8D1, 0x8F8F, 0xB8D2, 0x8F90, 0xB8D3, + 0x8F91, 0xB8D5, 0x8F92, 0xB8D6, 0x8F93, 0xB8D7, 0x8F94, 0xB8D8, + 0x8F95, 0xB8D9, 0x8F96, 0xB8DA, 0x8F97, 0xB8DB, 0x8F98, 0xB8DC, + 0x8F99, 0xB8DE, 0x8F9A, 0xB8E0, 0x8F9B, 0xB8E2, 0x8F9C, 0xB8E3, + 0x8F9D, 0xB8E4, 0x8F9E, 0xB8E5, 0x8F9F, 0xB8E6, 0x8FA0, 0xB8E7, + 0x8FA1, 0xB8EA, 0x8FA2, 0xB8EB, 0x8FA3, 0xB8ED, 0x8FA4, 0xB8EE, + 0x8FA5, 0xB8EF, 0x8FA6, 0xB8F1, 0x8FA7, 0xB8F2, 0x8FA8, 0xB8F3, + 0x8FA9, 0xB8F4, 0x8FAA, 0xB8F5, 0x8FAB, 0xB8F6, 0x8FAC, 0xB8F7, + 0x8FAD, 0xB8FA, 0x8FAE, 0xB8FC, 0x8FAF, 0xB8FE, 0x8FB0, 0xB8FF, + 0x8FB1, 0xB900, 0x8FB2, 0xB901, 0x8FB3, 0xB902, 0x8FB4, 0xB903, + 0x8FB5, 0xB905, 0x8FB6, 0xB906, 0x8FB7, 0xB907, 0x8FB8, 0xB908, + 0x8FB9, 0xB909, 0x8FBA, 0xB90A, 0x8FBB, 0xB90B, 0x8FBC, 0xB90C, + 0x8FBD, 0xB90D, 0x8FBE, 0xB90E, 0x8FBF, 0xB90F, 0x8FC0, 0xB910, + 0x8FC1, 0xB911, 0x8FC2, 0xB912, 0x8FC3, 0xB913, 0x8FC4, 0xB914, + 0x8FC5, 0xB915, 0x8FC6, 0xB916, 0x8FC7, 0xB917, 0x8FC8, 0xB919, + 0x8FC9, 0xB91A, 0x8FCA, 0xB91B, 0x8FCB, 0xB91C, 0x8FCC, 0xB91D, + 0x8FCD, 0xB91E, 0x8FCE, 0xB91F, 0x8FCF, 0xB921, 0x8FD0, 0xB922, + 0x8FD1, 0xB923, 0x8FD2, 0xB924, 0x8FD3, 0xB925, 0x8FD4, 0xB926, + 0x8FD5, 0xB927, 0x8FD6, 0xB928, 0x8FD7, 0xB929, 0x8FD8, 0xB92A, + 0x8FD9, 0xB92B, 0x8FDA, 0xB92C, 0x8FDB, 0xB92D, 0x8FDC, 0xB92E, + 0x8FDD, 0xB92F, 0x8FDE, 0xB930, 0x8FDF, 0xB931, 0x8FE0, 0xB932, + 0x8FE1, 0xB933, 0x8FE2, 0xB934, 0x8FE3, 0xB935, 0x8FE4, 0xB936, + 0x8FE5, 0xB937, 0x8FE6, 0xB938, 0x8FE7, 0xB939, 0x8FE8, 0xB93A, + 0x8FE9, 0xB93B, 0x8FEA, 0xB93E, 0x8FEB, 0xB93F, 0x8FEC, 0xB941, + 0x8FED, 0xB942, 0x8FEE, 0xB943, 0x8FEF, 0xB945, 0x8FF0, 0xB946, + 0x8FF1, 0xB947, 0x8FF2, 0xB948, 0x8FF3, 0xB949, 0x8FF4, 0xB94A, + 0x8FF5, 0xB94B, 0x8FF6, 0xB94D, 0x8FF7, 0xB94E, 0x8FF8, 0xB950, + 0x8FF9, 0xB952, 0x8FFA, 0xB953, 0x8FFB, 0xB954, 0x8FFC, 0xB955, + 0x8FFD, 0xB956, 0x8FFE, 0xB957, 0x9041, 0xB95A, 0x9042, 0xB95B, + 0x9043, 0xB95D, 0x9044, 0xB95E, 0x9045, 0xB95F, 0x9046, 0xB961, + 0x9047, 0xB962, 0x9048, 0xB963, 0x9049, 0xB964, 0x904A, 0xB965, + 0x904B, 0xB966, 0x904C, 0xB967, 0x904D, 0xB96A, 0x904E, 0xB96C, + 0x904F, 0xB96E, 0x9050, 0xB96F, 0x9051, 0xB970, 0x9052, 0xB971, + 0x9053, 0xB972, 0x9054, 0xB973, 0x9055, 0xB976, 0x9056, 0xB977, + 0x9057, 0xB979, 0x9058, 0xB97A, 0x9059, 0xB97B, 0x905A, 0xB97D, + 0x9061, 0xB97E, 0x9062, 0xB97F, 0x9063, 0xB980, 0x9064, 0xB981, + 0x9065, 0xB982, 0x9066, 0xB983, 0x9067, 0xB986, 0x9068, 0xB988, + 0x9069, 0xB98B, 0x906A, 0xB98C, 0x906B, 0xB98F, 0x906C, 0xB990, + 0x906D, 0xB991, 0x906E, 0xB992, 0x906F, 0xB993, 0x9070, 0xB994, + 0x9071, 0xB995, 0x9072, 0xB996, 0x9073, 0xB997, 0x9074, 0xB998, + 0x9075, 0xB999, 0x9076, 0xB99A, 0x9077, 0xB99B, 0x9078, 0xB99C, + 0x9079, 0xB99D, 0x907A, 0xB99E, 0x9081, 0xB99F, 0x9082, 0xB9A0, + 0x9083, 0xB9A1, 0x9084, 0xB9A2, 0x9085, 0xB9A3, 0x9086, 0xB9A4, + 0x9087, 0xB9A5, 0x9088, 0xB9A6, 0x9089, 0xB9A7, 0x908A, 0xB9A8, + 0x908B, 0xB9A9, 0x908C, 0xB9AA, 0x908D, 0xB9AB, 0x908E, 0xB9AE, + 0x908F, 0xB9AF, 0x9090, 0xB9B1, 0x9091, 0xB9B2, 0x9092, 0xB9B3, + 0x9093, 0xB9B5, 0x9094, 0xB9B6, 0x9095, 0xB9B7, 0x9096, 0xB9B8, + 0x9097, 0xB9B9, 0x9098, 0xB9BA, 0x9099, 0xB9BB, 0x909A, 0xB9BE, + 0x909B, 0xB9C0, 0x909C, 0xB9C2, 0x909D, 0xB9C3, 0x909E, 0xB9C4, + 0x909F, 0xB9C5, 0x90A0, 0xB9C6, 0x90A1, 0xB9C7, 0x90A2, 0xB9CA, + 0x90A3, 0xB9CB, 0x90A4, 0xB9CD, 0x90A5, 0xB9D3, 0x90A6, 0xB9D4, + 0x90A7, 0xB9D5, 0x90A8, 0xB9D6, 0x90A9, 0xB9D7, 0x90AA, 0xB9DA, + 0x90AB, 0xB9DC, 0x90AC, 0xB9DF, 0x90AD, 0xB9E0, 0x90AE, 0xB9E2, + 0x90AF, 0xB9E6, 0x90B0, 0xB9E7, 0x90B1, 0xB9E9, 0x90B2, 0xB9EA, + 0x90B3, 0xB9EB, 0x90B4, 0xB9ED, 0x90B5, 0xB9EE, 0x90B6, 0xB9EF, + 0x90B7, 0xB9F0, 0x90B8, 0xB9F1, 0x90B9, 0xB9F2, 0x90BA, 0xB9F3, + 0x90BB, 0xB9F6, 0x90BC, 0xB9FB, 0x90BD, 0xB9FC, 0x90BE, 0xB9FD, + 0x90BF, 0xB9FE, 0x90C0, 0xB9FF, 0x90C1, 0xBA02, 0x90C2, 0xBA03, + 0x90C3, 0xBA04, 0x90C4, 0xBA05, 0x90C5, 0xBA06, 0x90C6, 0xBA07, + 0x90C7, 0xBA09, 0x90C8, 0xBA0A, 0x90C9, 0xBA0B, 0x90CA, 0xBA0C, + 0x90CB, 0xBA0D, 0x90CC, 0xBA0E, 0x90CD, 0xBA0F, 0x90CE, 0xBA10, + 0x90CF, 0xBA11, 0x90D0, 0xBA12, 0x90D1, 0xBA13, 0x90D2, 0xBA14, + 0x90D3, 0xBA16, 0x90D4, 0xBA17, 0x90D5, 0xBA18, 0x90D6, 0xBA19, + 0x90D7, 0xBA1A, 0x90D8, 0xBA1B, 0x90D9, 0xBA1C, 0x90DA, 0xBA1D, + 0x90DB, 0xBA1E, 0x90DC, 0xBA1F, 0x90DD, 0xBA20, 0x90DE, 0xBA21, + 0x90DF, 0xBA22, 0x90E0, 0xBA23, 0x90E1, 0xBA24, 0x90E2, 0xBA25, + 0x90E3, 0xBA26, 0x90E4, 0xBA27, 0x90E5, 0xBA28, 0x90E6, 0xBA29, + 0x90E7, 0xBA2A, 0x90E8, 0xBA2B, 0x90E9, 0xBA2C, 0x90EA, 0xBA2D, + 0x90EB, 0xBA2E, 0x90EC, 0xBA2F, 0x90ED, 0xBA30, 0x90EE, 0xBA31, + 0x90EF, 0xBA32, 0x90F0, 0xBA33, 0x90F1, 0xBA34, 0x90F2, 0xBA35, + 0x90F3, 0xBA36, 0x90F4, 0xBA37, 0x90F5, 0xBA3A, 0x90F6, 0xBA3B, + 0x90F7, 0xBA3D, 0x90F8, 0xBA3E, 0x90F9, 0xBA3F, 0x90FA, 0xBA41, + 0x90FB, 0xBA43, 0x90FC, 0xBA44, 0x90FD, 0xBA45, 0x90FE, 0xBA46, + 0x9141, 0xBA47, 0x9142, 0xBA4A, 0x9143, 0xBA4C, 0x9144, 0xBA4F, + 0x9145, 0xBA50, 0x9146, 0xBA51, 0x9147, 0xBA52, 0x9148, 0xBA56, + 0x9149, 0xBA57, 0x914A, 0xBA59, 0x914B, 0xBA5A, 0x914C, 0xBA5B, + 0x914D, 0xBA5D, 0x914E, 0xBA5E, 0x914F, 0xBA5F, 0x9150, 0xBA60, + 0x9151, 0xBA61, 0x9152, 0xBA62, 0x9153, 0xBA63, 0x9154, 0xBA66, + 0x9155, 0xBA6A, 0x9156, 0xBA6B, 0x9157, 0xBA6C, 0x9158, 0xBA6D, + 0x9159, 0xBA6E, 0x915A, 0xBA6F, 0x9161, 0xBA72, 0x9162, 0xBA73, + 0x9163, 0xBA75, 0x9164, 0xBA76, 0x9165, 0xBA77, 0x9166, 0xBA79, + 0x9167, 0xBA7A, 0x9168, 0xBA7B, 0x9169, 0xBA7C, 0x916A, 0xBA7D, + 0x916B, 0xBA7E, 0x916C, 0xBA7F, 0x916D, 0xBA80, 0x916E, 0xBA81, + 0x916F, 0xBA82, 0x9170, 0xBA86, 0x9171, 0xBA88, 0x9172, 0xBA89, + 0x9173, 0xBA8A, 0x9174, 0xBA8B, 0x9175, 0xBA8D, 0x9176, 0xBA8E, + 0x9177, 0xBA8F, 0x9178, 0xBA90, 0x9179, 0xBA91, 0x917A, 0xBA92, + 0x9181, 0xBA93, 0x9182, 0xBA94, 0x9183, 0xBA95, 0x9184, 0xBA96, + 0x9185, 0xBA97, 0x9186, 0xBA98, 0x9187, 0xBA99, 0x9188, 0xBA9A, + 0x9189, 0xBA9B, 0x918A, 0xBA9C, 0x918B, 0xBA9D, 0x918C, 0xBA9E, + 0x918D, 0xBA9F, 0x918E, 0xBAA0, 0x918F, 0xBAA1, 0x9190, 0xBAA2, + 0x9191, 0xBAA3, 0x9192, 0xBAA4, 0x9193, 0xBAA5, 0x9194, 0xBAA6, + 0x9195, 0xBAA7, 0x9196, 0xBAAA, 0x9197, 0xBAAD, 0x9198, 0xBAAE, + 0x9199, 0xBAAF, 0x919A, 0xBAB1, 0x919B, 0xBAB3, 0x919C, 0xBAB4, + 0x919D, 0xBAB5, 0x919E, 0xBAB6, 0x919F, 0xBAB7, 0x91A0, 0xBABA, + 0x91A1, 0xBABC, 0x91A2, 0xBABE, 0x91A3, 0xBABF, 0x91A4, 0xBAC0, + 0x91A5, 0xBAC1, 0x91A6, 0xBAC2, 0x91A7, 0xBAC3, 0x91A8, 0xBAC5, + 0x91A9, 0xBAC6, 0x91AA, 0xBAC7, 0x91AB, 0xBAC9, 0x91AC, 0xBACA, + 0x91AD, 0xBACB, 0x91AE, 0xBACC, 0x91AF, 0xBACD, 0x91B0, 0xBACE, + 0x91B1, 0xBACF, 0x91B2, 0xBAD0, 0x91B3, 0xBAD1, 0x91B4, 0xBAD2, + 0x91B5, 0xBAD3, 0x91B6, 0xBAD4, 0x91B7, 0xBAD5, 0x91B8, 0xBAD6, + 0x91B9, 0xBAD7, 0x91BA, 0xBADA, 0x91BB, 0xBADB, 0x91BC, 0xBADC, + 0x91BD, 0xBADD, 0x91BE, 0xBADE, 0x91BF, 0xBADF, 0x91C0, 0xBAE0, + 0x91C1, 0xBAE1, 0x91C2, 0xBAE2, 0x91C3, 0xBAE3, 0x91C4, 0xBAE4, + 0x91C5, 0xBAE5, 0x91C6, 0xBAE6, 0x91C7, 0xBAE7, 0x91C8, 0xBAE8, + 0x91C9, 0xBAE9, 0x91CA, 0xBAEA, 0x91CB, 0xBAEB, 0x91CC, 0xBAEC, + 0x91CD, 0xBAED, 0x91CE, 0xBAEE, 0x91CF, 0xBAEF, 0x91D0, 0xBAF0, + 0x91D1, 0xBAF1, 0x91D2, 0xBAF2, 0x91D3, 0xBAF3, 0x91D4, 0xBAF4, + 0x91D5, 0xBAF5, 0x91D6, 0xBAF6, 0x91D7, 0xBAF7, 0x91D8, 0xBAF8, + 0x91D9, 0xBAF9, 0x91DA, 0xBAFA, 0x91DB, 0xBAFB, 0x91DC, 0xBAFD, + 0x91DD, 0xBAFE, 0x91DE, 0xBAFF, 0x91DF, 0xBB01, 0x91E0, 0xBB02, + 0x91E1, 0xBB03, 0x91E2, 0xBB05, 0x91E3, 0xBB06, 0x91E4, 0xBB07, + 0x91E5, 0xBB08, 0x91E6, 0xBB09, 0x91E7, 0xBB0A, 0x91E8, 0xBB0B, + 0x91E9, 0xBB0C, 0x91EA, 0xBB0E, 0x91EB, 0xBB10, 0x91EC, 0xBB12, + 0x91ED, 0xBB13, 0x91EE, 0xBB14, 0x91EF, 0xBB15, 0x91F0, 0xBB16, + 0x91F1, 0xBB17, 0x91F2, 0xBB19, 0x91F3, 0xBB1A, 0x91F4, 0xBB1B, + 0x91F5, 0xBB1D, 0x91F6, 0xBB1E, 0x91F7, 0xBB1F, 0x91F8, 0xBB21, + 0x91F9, 0xBB22, 0x91FA, 0xBB23, 0x91FB, 0xBB24, 0x91FC, 0xBB25, + 0x91FD, 0xBB26, 0x91FE, 0xBB27, 0x9241, 0xBB28, 0x9242, 0xBB2A, + 0x9243, 0xBB2C, 0x9244, 0xBB2D, 0x9245, 0xBB2E, 0x9246, 0xBB2F, + 0x9247, 0xBB30, 0x9248, 0xBB31, 0x9249, 0xBB32, 0x924A, 0xBB33, + 0x924B, 0xBB37, 0x924C, 0xBB39, 0x924D, 0xBB3A, 0x924E, 0xBB3F, + 0x924F, 0xBB40, 0x9250, 0xBB41, 0x9251, 0xBB42, 0x9252, 0xBB43, + 0x9253, 0xBB46, 0x9254, 0xBB48, 0x9255, 0xBB4A, 0x9256, 0xBB4B, + 0x9257, 0xBB4C, 0x9258, 0xBB4E, 0x9259, 0xBB51, 0x925A, 0xBB52, + 0x9261, 0xBB53, 0x9262, 0xBB55, 0x9263, 0xBB56, 0x9264, 0xBB57, + 0x9265, 0xBB59, 0x9266, 0xBB5A, 0x9267, 0xBB5B, 0x9268, 0xBB5C, + 0x9269, 0xBB5D, 0x926A, 0xBB5E, 0x926B, 0xBB5F, 0x926C, 0xBB60, + 0x926D, 0xBB62, 0x926E, 0xBB64, 0x926F, 0xBB65, 0x9270, 0xBB66, + 0x9271, 0xBB67, 0x9272, 0xBB68, 0x9273, 0xBB69, 0x9274, 0xBB6A, + 0x9275, 0xBB6B, 0x9276, 0xBB6D, 0x9277, 0xBB6E, 0x9278, 0xBB6F, + 0x9279, 0xBB70, 0x927A, 0xBB71, 0x9281, 0xBB72, 0x9282, 0xBB73, + 0x9283, 0xBB74, 0x9284, 0xBB75, 0x9285, 0xBB76, 0x9286, 0xBB77, + 0x9287, 0xBB78, 0x9288, 0xBB79, 0x9289, 0xBB7A, 0x928A, 0xBB7B, + 0x928B, 0xBB7C, 0x928C, 0xBB7D, 0x928D, 0xBB7E, 0x928E, 0xBB7F, + 0x928F, 0xBB80, 0x9290, 0xBB81, 0x9291, 0xBB82, 0x9292, 0xBB83, + 0x9293, 0xBB84, 0x9294, 0xBB85, 0x9295, 0xBB86, 0x9296, 0xBB87, + 0x9297, 0xBB89, 0x9298, 0xBB8A, 0x9299, 0xBB8B, 0x929A, 0xBB8D, + 0x929B, 0xBB8E, 0x929C, 0xBB8F, 0x929D, 0xBB91, 0x929E, 0xBB92, + 0x929F, 0xBB93, 0x92A0, 0xBB94, 0x92A1, 0xBB95, 0x92A2, 0xBB96, + 0x92A3, 0xBB97, 0x92A4, 0xBB98, 0x92A5, 0xBB99, 0x92A6, 0xBB9A, + 0x92A7, 0xBB9B, 0x92A8, 0xBB9C, 0x92A9, 0xBB9D, 0x92AA, 0xBB9E, + 0x92AB, 0xBB9F, 0x92AC, 0xBBA0, 0x92AD, 0xBBA1, 0x92AE, 0xBBA2, + 0x92AF, 0xBBA3, 0x92B0, 0xBBA5, 0x92B1, 0xBBA6, 0x92B2, 0xBBA7, + 0x92B3, 0xBBA9, 0x92B4, 0xBBAA, 0x92B5, 0xBBAB, 0x92B6, 0xBBAD, + 0x92B7, 0xBBAE, 0x92B8, 0xBBAF, 0x92B9, 0xBBB0, 0x92BA, 0xBBB1, + 0x92BB, 0xBBB2, 0x92BC, 0xBBB3, 0x92BD, 0xBBB5, 0x92BE, 0xBBB6, + 0x92BF, 0xBBB8, 0x92C0, 0xBBB9, 0x92C1, 0xBBBA, 0x92C2, 0xBBBB, + 0x92C3, 0xBBBC, 0x92C4, 0xBBBD, 0x92C5, 0xBBBE, 0x92C6, 0xBBBF, + 0x92C7, 0xBBC1, 0x92C8, 0xBBC2, 0x92C9, 0xBBC3, 0x92CA, 0xBBC5, + 0x92CB, 0xBBC6, 0x92CC, 0xBBC7, 0x92CD, 0xBBC9, 0x92CE, 0xBBCA, + 0x92CF, 0xBBCB, 0x92D0, 0xBBCC, 0x92D1, 0xBBCD, 0x92D2, 0xBBCE, + 0x92D3, 0xBBCF, 0x92D4, 0xBBD1, 0x92D5, 0xBBD2, 0x92D6, 0xBBD4, + 0x92D7, 0xBBD5, 0x92D8, 0xBBD6, 0x92D9, 0xBBD7, 0x92DA, 0xBBD8, + 0x92DB, 0xBBD9, 0x92DC, 0xBBDA, 0x92DD, 0xBBDB, 0x92DE, 0xBBDC, + 0x92DF, 0xBBDD, 0x92E0, 0xBBDE, 0x92E1, 0xBBDF, 0x92E2, 0xBBE0, + 0x92E3, 0xBBE1, 0x92E4, 0xBBE2, 0x92E5, 0xBBE3, 0x92E6, 0xBBE4, + 0x92E7, 0xBBE5, 0x92E8, 0xBBE6, 0x92E9, 0xBBE7, 0x92EA, 0xBBE8, + 0x92EB, 0xBBE9, 0x92EC, 0xBBEA, 0x92ED, 0xBBEB, 0x92EE, 0xBBEC, + 0x92EF, 0xBBED, 0x92F0, 0xBBEE, 0x92F1, 0xBBEF, 0x92F2, 0xBBF0, + 0x92F3, 0xBBF1, 0x92F4, 0xBBF2, 0x92F5, 0xBBF3, 0x92F6, 0xBBF4, + 0x92F7, 0xBBF5, 0x92F8, 0xBBF6, 0x92F9, 0xBBF7, 0x92FA, 0xBBFA, + 0x92FB, 0xBBFB, 0x92FC, 0xBBFD, 0x92FD, 0xBBFE, 0x92FE, 0xBC01, + 0x9341, 0xBC03, 0x9342, 0xBC04, 0x9343, 0xBC05, 0x9344, 0xBC06, + 0x9345, 0xBC07, 0x9346, 0xBC0A, 0x9347, 0xBC0E, 0x9348, 0xBC10, + 0x9349, 0xBC12, 0x934A, 0xBC13, 0x934B, 0xBC19, 0x934C, 0xBC1A, + 0x934D, 0xBC20, 0x934E, 0xBC21, 0x934F, 0xBC22, 0x9350, 0xBC23, + 0x9351, 0xBC26, 0x9352, 0xBC28, 0x9353, 0xBC2A, 0x9354, 0xBC2B, + 0x9355, 0xBC2C, 0x9356, 0xBC2E, 0x9357, 0xBC2F, 0x9358, 0xBC32, + 0x9359, 0xBC33, 0x935A, 0xBC35, 0x9361, 0xBC36, 0x9362, 0xBC37, + 0x9363, 0xBC39, 0x9364, 0xBC3A, 0x9365, 0xBC3B, 0x9366, 0xBC3C, + 0x9367, 0xBC3D, 0x9368, 0xBC3E, 0x9369, 0xBC3F, 0x936A, 0xBC42, + 0x936B, 0xBC46, 0x936C, 0xBC47, 0x936D, 0xBC48, 0x936E, 0xBC4A, + 0x936F, 0xBC4B, 0x9370, 0xBC4E, 0x9371, 0xBC4F, 0x9372, 0xBC51, + 0x9373, 0xBC52, 0x9374, 0xBC53, 0x9375, 0xBC54, 0x9376, 0xBC55, + 0x9377, 0xBC56, 0x9378, 0xBC57, 0x9379, 0xBC58, 0x937A, 0xBC59, + 0x9381, 0xBC5A, 0x9382, 0xBC5B, 0x9383, 0xBC5C, 0x9384, 0xBC5E, + 0x9385, 0xBC5F, 0x9386, 0xBC60, 0x9387, 0xBC61, 0x9388, 0xBC62, + 0x9389, 0xBC63, 0x938A, 0xBC64, 0x938B, 0xBC65, 0x938C, 0xBC66, + 0x938D, 0xBC67, 0x938E, 0xBC68, 0x938F, 0xBC69, 0x9390, 0xBC6A, + 0x9391, 0xBC6B, 0x9392, 0xBC6C, 0x9393, 0xBC6D, 0x9394, 0xBC6E, + 0x9395, 0xBC6F, 0x9396, 0xBC70, 0x9397, 0xBC71, 0x9398, 0xBC72, + 0x9399, 0xBC73, 0x939A, 0xBC74, 0x939B, 0xBC75, 0x939C, 0xBC76, + 0x939D, 0xBC77, 0x939E, 0xBC78, 0x939F, 0xBC79, 0x93A0, 0xBC7A, + 0x93A1, 0xBC7B, 0x93A2, 0xBC7C, 0x93A3, 0xBC7D, 0x93A4, 0xBC7E, + 0x93A5, 0xBC7F, 0x93A6, 0xBC80, 0x93A7, 0xBC81, 0x93A8, 0xBC82, + 0x93A9, 0xBC83, 0x93AA, 0xBC86, 0x93AB, 0xBC87, 0x93AC, 0xBC89, + 0x93AD, 0xBC8A, 0x93AE, 0xBC8D, 0x93AF, 0xBC8F, 0x93B0, 0xBC90, + 0x93B1, 0xBC91, 0x93B2, 0xBC92, 0x93B3, 0xBC93, 0x93B4, 0xBC96, + 0x93B5, 0xBC98, 0x93B6, 0xBC9B, 0x93B7, 0xBC9C, 0x93B8, 0xBC9D, + 0x93B9, 0xBC9E, 0x93BA, 0xBC9F, 0x93BB, 0xBCA2, 0x93BC, 0xBCA3, + 0x93BD, 0xBCA5, 0x93BE, 0xBCA6, 0x93BF, 0xBCA9, 0x93C0, 0xBCAA, + 0x93C1, 0xBCAB, 0x93C2, 0xBCAC, 0x93C3, 0xBCAD, 0x93C4, 0xBCAE, + 0x93C5, 0xBCAF, 0x93C6, 0xBCB2, 0x93C7, 0xBCB6, 0x93C8, 0xBCB7, + 0x93C9, 0xBCB8, 0x93CA, 0xBCB9, 0x93CB, 0xBCBA, 0x93CC, 0xBCBB, + 0x93CD, 0xBCBE, 0x93CE, 0xBCBF, 0x93CF, 0xBCC1, 0x93D0, 0xBCC2, + 0x93D1, 0xBCC3, 0x93D2, 0xBCC5, 0x93D3, 0xBCC6, 0x93D4, 0xBCC7, + 0x93D5, 0xBCC8, 0x93D6, 0xBCC9, 0x93D7, 0xBCCA, 0x93D8, 0xBCCB, + 0x93D9, 0xBCCC, 0x93DA, 0xBCCE, 0x93DB, 0xBCD2, 0x93DC, 0xBCD3, + 0x93DD, 0xBCD4, 0x93DE, 0xBCD6, 0x93DF, 0xBCD7, 0x93E0, 0xBCD9, + 0x93E1, 0xBCDA, 0x93E2, 0xBCDB, 0x93E3, 0xBCDD, 0x93E4, 0xBCDE, + 0x93E5, 0xBCDF, 0x93E6, 0xBCE0, 0x93E7, 0xBCE1, 0x93E8, 0xBCE2, + 0x93E9, 0xBCE3, 0x93EA, 0xBCE4, 0x93EB, 0xBCE5, 0x93EC, 0xBCE6, + 0x93ED, 0xBCE7, 0x93EE, 0xBCE8, 0x93EF, 0xBCE9, 0x93F0, 0xBCEA, + 0x93F1, 0xBCEB, 0x93F2, 0xBCEC, 0x93F3, 0xBCED, 0x93F4, 0xBCEE, + 0x93F5, 0xBCEF, 0x93F6, 0xBCF0, 0x93F7, 0xBCF1, 0x93F8, 0xBCF2, + 0x93F9, 0xBCF3, 0x93FA, 0xBCF7, 0x93FB, 0xBCF9, 0x93FC, 0xBCFA, + 0x93FD, 0xBCFB, 0x93FE, 0xBCFD, 0x9441, 0xBCFE, 0x9442, 0xBCFF, + 0x9443, 0xBD00, 0x9444, 0xBD01, 0x9445, 0xBD02, 0x9446, 0xBD03, + 0x9447, 0xBD06, 0x9448, 0xBD08, 0x9449, 0xBD0A, 0x944A, 0xBD0B, + 0x944B, 0xBD0C, 0x944C, 0xBD0D, 0x944D, 0xBD0E, 0x944E, 0xBD0F, + 0x944F, 0xBD11, 0x9450, 0xBD12, 0x9451, 0xBD13, 0x9452, 0xBD15, + 0x9453, 0xBD16, 0x9454, 0xBD17, 0x9455, 0xBD18, 0x9456, 0xBD19, + 0x9457, 0xBD1A, 0x9458, 0xBD1B, 0x9459, 0xBD1C, 0x945A, 0xBD1D, + 0x9461, 0xBD1E, 0x9462, 0xBD1F, 0x9463, 0xBD20, 0x9464, 0xBD21, + 0x9465, 0xBD22, 0x9466, 0xBD23, 0x9467, 0xBD25, 0x9468, 0xBD26, + 0x9469, 0xBD27, 0x946A, 0xBD28, 0x946B, 0xBD29, 0x946C, 0xBD2A, + 0x946D, 0xBD2B, 0x946E, 0xBD2D, 0x946F, 0xBD2E, 0x9470, 0xBD2F, + 0x9471, 0xBD30, 0x9472, 0xBD31, 0x9473, 0xBD32, 0x9474, 0xBD33, + 0x9475, 0xBD34, 0x9476, 0xBD35, 0x9477, 0xBD36, 0x9478, 0xBD37, + 0x9479, 0xBD38, 0x947A, 0xBD39, 0x9481, 0xBD3A, 0x9482, 0xBD3B, + 0x9483, 0xBD3C, 0x9484, 0xBD3D, 0x9485, 0xBD3E, 0x9486, 0xBD3F, + 0x9487, 0xBD41, 0x9488, 0xBD42, 0x9489, 0xBD43, 0x948A, 0xBD44, + 0x948B, 0xBD45, 0x948C, 0xBD46, 0x948D, 0xBD47, 0x948E, 0xBD4A, + 0x948F, 0xBD4B, 0x9490, 0xBD4D, 0x9491, 0xBD4E, 0x9492, 0xBD4F, + 0x9493, 0xBD51, 0x9494, 0xBD52, 0x9495, 0xBD53, 0x9496, 0xBD54, + 0x9497, 0xBD55, 0x9498, 0xBD56, 0x9499, 0xBD57, 0x949A, 0xBD5A, + 0x949B, 0xBD5B, 0x949C, 0xBD5C, 0x949D, 0xBD5D, 0x949E, 0xBD5E, + 0x949F, 0xBD5F, 0x94A0, 0xBD60, 0x94A1, 0xBD61, 0x94A2, 0xBD62, + 0x94A3, 0xBD63, 0x94A4, 0xBD65, 0x94A5, 0xBD66, 0x94A6, 0xBD67, + 0x94A7, 0xBD69, 0x94A8, 0xBD6A, 0x94A9, 0xBD6B, 0x94AA, 0xBD6C, + 0x94AB, 0xBD6D, 0x94AC, 0xBD6E, 0x94AD, 0xBD6F, 0x94AE, 0xBD70, + 0x94AF, 0xBD71, 0x94B0, 0xBD72, 0x94B1, 0xBD73, 0x94B2, 0xBD74, + 0x94B3, 0xBD75, 0x94B4, 0xBD76, 0x94B5, 0xBD77, 0x94B6, 0xBD78, + 0x94B7, 0xBD79, 0x94B8, 0xBD7A, 0x94B9, 0xBD7B, 0x94BA, 0xBD7C, + 0x94BB, 0xBD7D, 0x94BC, 0xBD7E, 0x94BD, 0xBD7F, 0x94BE, 0xBD82, + 0x94BF, 0xBD83, 0x94C0, 0xBD85, 0x94C1, 0xBD86, 0x94C2, 0xBD8B, + 0x94C3, 0xBD8C, 0x94C4, 0xBD8D, 0x94C5, 0xBD8E, 0x94C6, 0xBD8F, + 0x94C7, 0xBD92, 0x94C8, 0xBD94, 0x94C9, 0xBD96, 0x94CA, 0xBD97, + 0x94CB, 0xBD98, 0x94CC, 0xBD9B, 0x94CD, 0xBD9D, 0x94CE, 0xBD9E, + 0x94CF, 0xBD9F, 0x94D0, 0xBDA0, 0x94D1, 0xBDA1, 0x94D2, 0xBDA2, + 0x94D3, 0xBDA3, 0x94D4, 0xBDA5, 0x94D5, 0xBDA6, 0x94D6, 0xBDA7, + 0x94D7, 0xBDA8, 0x94D8, 0xBDA9, 0x94D9, 0xBDAA, 0x94DA, 0xBDAB, + 0x94DB, 0xBDAC, 0x94DC, 0xBDAD, 0x94DD, 0xBDAE, 0x94DE, 0xBDAF, + 0x94DF, 0xBDB1, 0x94E0, 0xBDB2, 0x94E1, 0xBDB3, 0x94E2, 0xBDB4, + 0x94E3, 0xBDB5, 0x94E4, 0xBDB6, 0x94E5, 0xBDB7, 0x94E6, 0xBDB9, + 0x94E7, 0xBDBA, 0x94E8, 0xBDBB, 0x94E9, 0xBDBC, 0x94EA, 0xBDBD, + 0x94EB, 0xBDBE, 0x94EC, 0xBDBF, 0x94ED, 0xBDC0, 0x94EE, 0xBDC1, + 0x94EF, 0xBDC2, 0x94F0, 0xBDC3, 0x94F1, 0xBDC4, 0x94F2, 0xBDC5, + 0x94F3, 0xBDC6, 0x94F4, 0xBDC7, 0x94F5, 0xBDC8, 0x94F6, 0xBDC9, + 0x94F7, 0xBDCA, 0x94F8, 0xBDCB, 0x94F9, 0xBDCC, 0x94FA, 0xBDCD, + 0x94FB, 0xBDCE, 0x94FC, 0xBDCF, 0x94FD, 0xBDD0, 0x94FE, 0xBDD1, + 0x9541, 0xBDD2, 0x9542, 0xBDD3, 0x9543, 0xBDD6, 0x9544, 0xBDD7, + 0x9545, 0xBDD9, 0x9546, 0xBDDA, 0x9547, 0xBDDB, 0x9548, 0xBDDD, + 0x9549, 0xBDDE, 0x954A, 0xBDDF, 0x954B, 0xBDE0, 0x954C, 0xBDE1, + 0x954D, 0xBDE2, 0x954E, 0xBDE3, 0x954F, 0xBDE4, 0x9550, 0xBDE5, + 0x9551, 0xBDE6, 0x9552, 0xBDE7, 0x9553, 0xBDE8, 0x9554, 0xBDEA, + 0x9555, 0xBDEB, 0x9556, 0xBDEC, 0x9557, 0xBDED, 0x9558, 0xBDEE, + 0x9559, 0xBDEF, 0x955A, 0xBDF1, 0x9561, 0xBDF2, 0x9562, 0xBDF3, + 0x9563, 0xBDF5, 0x9564, 0xBDF6, 0x9565, 0xBDF7, 0x9566, 0xBDF9, + 0x9567, 0xBDFA, 0x9568, 0xBDFB, 0x9569, 0xBDFC, 0x956A, 0xBDFD, + 0x956B, 0xBDFE, 0x956C, 0xBDFF, 0x956D, 0xBE01, 0x956E, 0xBE02, + 0x956F, 0xBE04, 0x9570, 0xBE06, 0x9571, 0xBE07, 0x9572, 0xBE08, + 0x9573, 0xBE09, 0x9574, 0xBE0A, 0x9575, 0xBE0B, 0x9576, 0xBE0E, + 0x9577, 0xBE0F, 0x9578, 0xBE11, 0x9579, 0xBE12, 0x957A, 0xBE13, + 0x9581, 0xBE15, 0x9582, 0xBE16, 0x9583, 0xBE17, 0x9584, 0xBE18, + 0x9585, 0xBE19, 0x9586, 0xBE1A, 0x9587, 0xBE1B, 0x9588, 0xBE1E, + 0x9589, 0xBE20, 0x958A, 0xBE21, 0x958B, 0xBE22, 0x958C, 0xBE23, + 0x958D, 0xBE24, 0x958E, 0xBE25, 0x958F, 0xBE26, 0x9590, 0xBE27, + 0x9591, 0xBE28, 0x9592, 0xBE29, 0x9593, 0xBE2A, 0x9594, 0xBE2B, + 0x9595, 0xBE2C, 0x9596, 0xBE2D, 0x9597, 0xBE2E, 0x9598, 0xBE2F, + 0x9599, 0xBE30, 0x959A, 0xBE31, 0x959B, 0xBE32, 0x959C, 0xBE33, + 0x959D, 0xBE34, 0x959E, 0xBE35, 0x959F, 0xBE36, 0x95A0, 0xBE37, + 0x95A1, 0xBE38, 0x95A2, 0xBE39, 0x95A3, 0xBE3A, 0x95A4, 0xBE3B, + 0x95A5, 0xBE3C, 0x95A6, 0xBE3D, 0x95A7, 0xBE3E, 0x95A8, 0xBE3F, + 0x95A9, 0xBE40, 0x95AA, 0xBE41, 0x95AB, 0xBE42, 0x95AC, 0xBE43, + 0x95AD, 0xBE46, 0x95AE, 0xBE47, 0x95AF, 0xBE49, 0x95B0, 0xBE4A, + 0x95B1, 0xBE4B, 0x95B2, 0xBE4D, 0x95B3, 0xBE4F, 0x95B4, 0xBE50, + 0x95B5, 0xBE51, 0x95B6, 0xBE52, 0x95B7, 0xBE53, 0x95B8, 0xBE56, + 0x95B9, 0xBE58, 0x95BA, 0xBE5C, 0x95BB, 0xBE5D, 0x95BC, 0xBE5E, + 0x95BD, 0xBE5F, 0x95BE, 0xBE62, 0x95BF, 0xBE63, 0x95C0, 0xBE65, + 0x95C1, 0xBE66, 0x95C2, 0xBE67, 0x95C3, 0xBE69, 0x95C4, 0xBE6B, + 0x95C5, 0xBE6C, 0x95C6, 0xBE6D, 0x95C7, 0xBE6E, 0x95C8, 0xBE6F, + 0x95C9, 0xBE72, 0x95CA, 0xBE76, 0x95CB, 0xBE77, 0x95CC, 0xBE78, + 0x95CD, 0xBE79, 0x95CE, 0xBE7A, 0x95CF, 0xBE7E, 0x95D0, 0xBE7F, + 0x95D1, 0xBE81, 0x95D2, 0xBE82, 0x95D3, 0xBE83, 0x95D4, 0xBE85, + 0x95D5, 0xBE86, 0x95D6, 0xBE87, 0x95D7, 0xBE88, 0x95D8, 0xBE89, + 0x95D9, 0xBE8A, 0x95DA, 0xBE8B, 0x95DB, 0xBE8E, 0x95DC, 0xBE92, + 0x95DD, 0xBE93, 0x95DE, 0xBE94, 0x95DF, 0xBE95, 0x95E0, 0xBE96, + 0x95E1, 0xBE97, 0x95E2, 0xBE9A, 0x95E3, 0xBE9B, 0x95E4, 0xBE9C, + 0x95E5, 0xBE9D, 0x95E6, 0xBE9E, 0x95E7, 0xBE9F, 0x95E8, 0xBEA0, + 0x95E9, 0xBEA1, 0x95EA, 0xBEA2, 0x95EB, 0xBEA3, 0x95EC, 0xBEA4, + 0x95ED, 0xBEA5, 0x95EE, 0xBEA6, 0x95EF, 0xBEA7, 0x95F0, 0xBEA9, + 0x95F1, 0xBEAA, 0x95F2, 0xBEAB, 0x95F3, 0xBEAC, 0x95F4, 0xBEAD, + 0x95F5, 0xBEAE, 0x95F6, 0xBEAF, 0x95F7, 0xBEB0, 0x95F8, 0xBEB1, + 0x95F9, 0xBEB2, 0x95FA, 0xBEB3, 0x95FB, 0xBEB4, 0x95FC, 0xBEB5, + 0x95FD, 0xBEB6, 0x95FE, 0xBEB7, 0x9641, 0xBEB8, 0x9642, 0xBEB9, + 0x9643, 0xBEBA, 0x9644, 0xBEBB, 0x9645, 0xBEBC, 0x9646, 0xBEBD, + 0x9647, 0xBEBE, 0x9648, 0xBEBF, 0x9649, 0xBEC0, 0x964A, 0xBEC1, + 0x964B, 0xBEC2, 0x964C, 0xBEC3, 0x964D, 0xBEC4, 0x964E, 0xBEC5, + 0x964F, 0xBEC6, 0x9650, 0xBEC7, 0x9651, 0xBEC8, 0x9652, 0xBEC9, + 0x9653, 0xBECA, 0x9654, 0xBECB, 0x9655, 0xBECC, 0x9656, 0xBECD, + 0x9657, 0xBECE, 0x9658, 0xBECF, 0x9659, 0xBED2, 0x965A, 0xBED3, + 0x9661, 0xBED5, 0x9662, 0xBED6, 0x9663, 0xBED9, 0x9664, 0xBEDA, + 0x9665, 0xBEDB, 0x9666, 0xBEDC, 0x9667, 0xBEDD, 0x9668, 0xBEDE, + 0x9669, 0xBEDF, 0x966A, 0xBEE1, 0x966B, 0xBEE2, 0x966C, 0xBEE6, + 0x966D, 0xBEE7, 0x966E, 0xBEE8, 0x966F, 0xBEE9, 0x9670, 0xBEEA, + 0x9671, 0xBEEB, 0x9672, 0xBEED, 0x9673, 0xBEEE, 0x9674, 0xBEEF, + 0x9675, 0xBEF0, 0x9676, 0xBEF1, 0x9677, 0xBEF2, 0x9678, 0xBEF3, + 0x9679, 0xBEF4, 0x967A, 0xBEF5, 0x9681, 0xBEF6, 0x9682, 0xBEF7, + 0x9683, 0xBEF8, 0x9684, 0xBEF9, 0x9685, 0xBEFA, 0x9686, 0xBEFB, + 0x9687, 0xBEFC, 0x9688, 0xBEFD, 0x9689, 0xBEFE, 0x968A, 0xBEFF, + 0x968B, 0xBF00, 0x968C, 0xBF02, 0x968D, 0xBF03, 0x968E, 0xBF04, + 0x968F, 0xBF05, 0x9690, 0xBF06, 0x9691, 0xBF07, 0x9692, 0xBF0A, + 0x9693, 0xBF0B, 0x9694, 0xBF0C, 0x9695, 0xBF0D, 0x9696, 0xBF0E, + 0x9697, 0xBF0F, 0x9698, 0xBF10, 0x9699, 0xBF11, 0x969A, 0xBF12, + 0x969B, 0xBF13, 0x969C, 0xBF14, 0x969D, 0xBF15, 0x969E, 0xBF16, + 0x969F, 0xBF17, 0x96A0, 0xBF1A, 0x96A1, 0xBF1E, 0x96A2, 0xBF1F, + 0x96A3, 0xBF20, 0x96A4, 0xBF21, 0x96A5, 0xBF22, 0x96A6, 0xBF23, + 0x96A7, 0xBF24, 0x96A8, 0xBF25, 0x96A9, 0xBF26, 0x96AA, 0xBF27, + 0x96AB, 0xBF28, 0x96AC, 0xBF29, 0x96AD, 0xBF2A, 0x96AE, 0xBF2B, + 0x96AF, 0xBF2C, 0x96B0, 0xBF2D, 0x96B1, 0xBF2E, 0x96B2, 0xBF2F, + 0x96B3, 0xBF30, 0x96B4, 0xBF31, 0x96B5, 0xBF32, 0x96B6, 0xBF33, + 0x96B7, 0xBF34, 0x96B8, 0xBF35, 0x96B9, 0xBF36, 0x96BA, 0xBF37, + 0x96BB, 0xBF38, 0x96BC, 0xBF39, 0x96BD, 0xBF3A, 0x96BE, 0xBF3B, + 0x96BF, 0xBF3C, 0x96C0, 0xBF3D, 0x96C1, 0xBF3E, 0x96C2, 0xBF3F, + 0x96C3, 0xBF42, 0x96C4, 0xBF43, 0x96C5, 0xBF45, 0x96C6, 0xBF46, + 0x96C7, 0xBF47, 0x96C8, 0xBF49, 0x96C9, 0xBF4A, 0x96CA, 0xBF4B, + 0x96CB, 0xBF4C, 0x96CC, 0xBF4D, 0x96CD, 0xBF4E, 0x96CE, 0xBF4F, + 0x96CF, 0xBF52, 0x96D0, 0xBF53, 0x96D1, 0xBF54, 0x96D2, 0xBF56, + 0x96D3, 0xBF57, 0x96D4, 0xBF58, 0x96D5, 0xBF59, 0x96D6, 0xBF5A, + 0x96D7, 0xBF5B, 0x96D8, 0xBF5C, 0x96D9, 0xBF5D, 0x96DA, 0xBF5E, + 0x96DB, 0xBF5F, 0x96DC, 0xBF60, 0x96DD, 0xBF61, 0x96DE, 0xBF62, + 0x96DF, 0xBF63, 0x96E0, 0xBF64, 0x96E1, 0xBF65, 0x96E2, 0xBF66, + 0x96E3, 0xBF67, 0x96E4, 0xBF68, 0x96E5, 0xBF69, 0x96E6, 0xBF6A, + 0x96E7, 0xBF6B, 0x96E8, 0xBF6C, 0x96E9, 0xBF6D, 0x96EA, 0xBF6E, + 0x96EB, 0xBF6F, 0x96EC, 0xBF70, 0x96ED, 0xBF71, 0x96EE, 0xBF72, + 0x96EF, 0xBF73, 0x96F0, 0xBF74, 0x96F1, 0xBF75, 0x96F2, 0xBF76, + 0x96F3, 0xBF77, 0x96F4, 0xBF78, 0x96F5, 0xBF79, 0x96F6, 0xBF7A, + 0x96F7, 0xBF7B, 0x96F8, 0xBF7C, 0x96F9, 0xBF7D, 0x96FA, 0xBF7E, + 0x96FB, 0xBF7F, 0x96FC, 0xBF80, 0x96FD, 0xBF81, 0x96FE, 0xBF82, + 0x9741, 0xBF83, 0x9742, 0xBF84, 0x9743, 0xBF85, 0x9744, 0xBF86, + 0x9745, 0xBF87, 0x9746, 0xBF88, 0x9747, 0xBF89, 0x9748, 0xBF8A, + 0x9749, 0xBF8B, 0x974A, 0xBF8C, 0x974B, 0xBF8D, 0x974C, 0xBF8E, + 0x974D, 0xBF8F, 0x974E, 0xBF90, 0x974F, 0xBF91, 0x9750, 0xBF92, + 0x9751, 0xBF93, 0x9752, 0xBF95, 0x9753, 0xBF96, 0x9754, 0xBF97, + 0x9755, 0xBF98, 0x9756, 0xBF99, 0x9757, 0xBF9A, 0x9758, 0xBF9B, + 0x9759, 0xBF9C, 0x975A, 0xBF9D, 0x9761, 0xBF9E, 0x9762, 0xBF9F, + 0x9763, 0xBFA0, 0x9764, 0xBFA1, 0x9765, 0xBFA2, 0x9766, 0xBFA3, + 0x9767, 0xBFA4, 0x9768, 0xBFA5, 0x9769, 0xBFA6, 0x976A, 0xBFA7, + 0x976B, 0xBFA8, 0x976C, 0xBFA9, 0x976D, 0xBFAA, 0x976E, 0xBFAB, + 0x976F, 0xBFAC, 0x9770, 0xBFAD, 0x9771, 0xBFAE, 0x9772, 0xBFAF, + 0x9773, 0xBFB1, 0x9774, 0xBFB2, 0x9775, 0xBFB3, 0x9776, 0xBFB4, + 0x9777, 0xBFB5, 0x9778, 0xBFB6, 0x9779, 0xBFB7, 0x977A, 0xBFB8, + 0x9781, 0xBFB9, 0x9782, 0xBFBA, 0x9783, 0xBFBB, 0x9784, 0xBFBC, + 0x9785, 0xBFBD, 0x9786, 0xBFBE, 0x9787, 0xBFBF, 0x9788, 0xBFC0, + 0x9789, 0xBFC1, 0x978A, 0xBFC2, 0x978B, 0xBFC3, 0x978C, 0xBFC4, + 0x978D, 0xBFC6, 0x978E, 0xBFC7, 0x978F, 0xBFC8, 0x9790, 0xBFC9, + 0x9791, 0xBFCA, 0x9792, 0xBFCB, 0x9793, 0xBFCE, 0x9794, 0xBFCF, + 0x9795, 0xBFD1, 0x9796, 0xBFD2, 0x9797, 0xBFD3, 0x9798, 0xBFD5, + 0x9799, 0xBFD6, 0x979A, 0xBFD7, 0x979B, 0xBFD8, 0x979C, 0xBFD9, + 0x979D, 0xBFDA, 0x979E, 0xBFDB, 0x979F, 0xBFDD, 0x97A0, 0xBFDE, + 0x97A1, 0xBFE0, 0x97A2, 0xBFE2, 0x97A3, 0xBFE3, 0x97A4, 0xBFE4, + 0x97A5, 0xBFE5, 0x97A6, 0xBFE6, 0x97A7, 0xBFE7, 0x97A8, 0xBFE8, + 0x97A9, 0xBFE9, 0x97AA, 0xBFEA, 0x97AB, 0xBFEB, 0x97AC, 0xBFEC, + 0x97AD, 0xBFED, 0x97AE, 0xBFEE, 0x97AF, 0xBFEF, 0x97B0, 0xBFF0, + 0x97B1, 0xBFF1, 0x97B2, 0xBFF2, 0x97B3, 0xBFF3, 0x97B4, 0xBFF4, + 0x97B5, 0xBFF5, 0x97B6, 0xBFF6, 0x97B7, 0xBFF7, 0x97B8, 0xBFF8, + 0x97B9, 0xBFF9, 0x97BA, 0xBFFA, 0x97BB, 0xBFFB, 0x97BC, 0xBFFC, + 0x97BD, 0xBFFD, 0x97BE, 0xBFFE, 0x97BF, 0xBFFF, 0x97C0, 0xC000, + 0x97C1, 0xC001, 0x97C2, 0xC002, 0x97C3, 0xC003, 0x97C4, 0xC004, + 0x97C5, 0xC005, 0x97C6, 0xC006, 0x97C7, 0xC007, 0x97C8, 0xC008, + 0x97C9, 0xC009, 0x97CA, 0xC00A, 0x97CB, 0xC00B, 0x97CC, 0xC00C, + 0x97CD, 0xC00D, 0x97CE, 0xC00E, 0x97CF, 0xC00F, 0x97D0, 0xC010, + 0x97D1, 0xC011, 0x97D2, 0xC012, 0x97D3, 0xC013, 0x97D4, 0xC014, + 0x97D5, 0xC015, 0x97D6, 0xC016, 0x97D7, 0xC017, 0x97D8, 0xC018, + 0x97D9, 0xC019, 0x97DA, 0xC01A, 0x97DB, 0xC01B, 0x97DC, 0xC01C, + 0x97DD, 0xC01D, 0x97DE, 0xC01E, 0x97DF, 0xC01F, 0x97E0, 0xC020, + 0x97E1, 0xC021, 0x97E2, 0xC022, 0x97E3, 0xC023, 0x97E4, 0xC024, + 0x97E5, 0xC025, 0x97E6, 0xC026, 0x97E7, 0xC027, 0x97E8, 0xC028, + 0x97E9, 0xC029, 0x97EA, 0xC02A, 0x97EB, 0xC02B, 0x97EC, 0xC02C, + 0x97ED, 0xC02D, 0x97EE, 0xC02E, 0x97EF, 0xC02F, 0x97F0, 0xC030, + 0x97F1, 0xC031, 0x97F2, 0xC032, 0x97F3, 0xC033, 0x97F4, 0xC034, + 0x97F5, 0xC035, 0x97F6, 0xC036, 0x97F7, 0xC037, 0x97F8, 0xC038, + 0x97F9, 0xC039, 0x97FA, 0xC03A, 0x97FB, 0xC03B, 0x97FC, 0xC03D, + 0x97FD, 0xC03E, 0x97FE, 0xC03F, 0x9841, 0xC040, 0x9842, 0xC041, + 0x9843, 0xC042, 0x9844, 0xC043, 0x9845, 0xC044, 0x9846, 0xC045, + 0x9847, 0xC046, 0x9848, 0xC047, 0x9849, 0xC048, 0x984A, 0xC049, + 0x984B, 0xC04A, 0x984C, 0xC04B, 0x984D, 0xC04C, 0x984E, 0xC04D, + 0x984F, 0xC04E, 0x9850, 0xC04F, 0x9851, 0xC050, 0x9852, 0xC052, + 0x9853, 0xC053, 0x9854, 0xC054, 0x9855, 0xC055, 0x9856, 0xC056, + 0x9857, 0xC057, 0x9858, 0xC059, 0x9859, 0xC05A, 0x985A, 0xC05B, + 0x9861, 0xC05D, 0x9862, 0xC05E, 0x9863, 0xC05F, 0x9864, 0xC061, + 0x9865, 0xC062, 0x9866, 0xC063, 0x9867, 0xC064, 0x9868, 0xC065, + 0x9869, 0xC066, 0x986A, 0xC067, 0x986B, 0xC06A, 0x986C, 0xC06B, + 0x986D, 0xC06C, 0x986E, 0xC06D, 0x986F, 0xC06E, 0x9870, 0xC06F, + 0x9871, 0xC070, 0x9872, 0xC071, 0x9873, 0xC072, 0x9874, 0xC073, + 0x9875, 0xC074, 0x9876, 0xC075, 0x9877, 0xC076, 0x9878, 0xC077, + 0x9879, 0xC078, 0x987A, 0xC079, 0x9881, 0xC07A, 0x9882, 0xC07B, + 0x9883, 0xC07C, 0x9884, 0xC07D, 0x9885, 0xC07E, 0x9886, 0xC07F, + 0x9887, 0xC080, 0x9888, 0xC081, 0x9889, 0xC082, 0x988A, 0xC083, + 0x988B, 0xC084, 0x988C, 0xC085, 0x988D, 0xC086, 0x988E, 0xC087, + 0x988F, 0xC088, 0x9890, 0xC089, 0x9891, 0xC08A, 0x9892, 0xC08B, + 0x9893, 0xC08C, 0x9894, 0xC08D, 0x9895, 0xC08E, 0x9896, 0xC08F, + 0x9897, 0xC092, 0x9898, 0xC093, 0x9899, 0xC095, 0x989A, 0xC096, + 0x989B, 0xC097, 0x989C, 0xC099, 0x989D, 0xC09A, 0x989E, 0xC09B, + 0x989F, 0xC09C, 0x98A0, 0xC09D, 0x98A1, 0xC09E, 0x98A2, 0xC09F, + 0x98A3, 0xC0A2, 0x98A4, 0xC0A4, 0x98A5, 0xC0A6, 0x98A6, 0xC0A7, + 0x98A7, 0xC0A8, 0x98A8, 0xC0A9, 0x98A9, 0xC0AA, 0x98AA, 0xC0AB, + 0x98AB, 0xC0AE, 0x98AC, 0xC0B1, 0x98AD, 0xC0B2, 0x98AE, 0xC0B7, + 0x98AF, 0xC0B8, 0x98B0, 0xC0B9, 0x98B1, 0xC0BA, 0x98B2, 0xC0BB, + 0x98B3, 0xC0BE, 0x98B4, 0xC0C2, 0x98B5, 0xC0C3, 0x98B6, 0xC0C4, + 0x98B7, 0xC0C6, 0x98B8, 0xC0C7, 0x98B9, 0xC0CA, 0x98BA, 0xC0CB, + 0x98BB, 0xC0CD, 0x98BC, 0xC0CE, 0x98BD, 0xC0CF, 0x98BE, 0xC0D1, + 0x98BF, 0xC0D2, 0x98C0, 0xC0D3, 0x98C1, 0xC0D4, 0x98C2, 0xC0D5, + 0x98C3, 0xC0D6, 0x98C4, 0xC0D7, 0x98C5, 0xC0DA, 0x98C6, 0xC0DE, + 0x98C7, 0xC0DF, 0x98C8, 0xC0E0, 0x98C9, 0xC0E1, 0x98CA, 0xC0E2, + 0x98CB, 0xC0E3, 0x98CC, 0xC0E6, 0x98CD, 0xC0E7, 0x98CE, 0xC0E9, + 0x98CF, 0xC0EA, 0x98D0, 0xC0EB, 0x98D1, 0xC0ED, 0x98D2, 0xC0EE, + 0x98D3, 0xC0EF, 0x98D4, 0xC0F0, 0x98D5, 0xC0F1, 0x98D6, 0xC0F2, + 0x98D7, 0xC0F3, 0x98D8, 0xC0F6, 0x98D9, 0xC0F8, 0x98DA, 0xC0FA, + 0x98DB, 0xC0FB, 0x98DC, 0xC0FC, 0x98DD, 0xC0FD, 0x98DE, 0xC0FE, + 0x98DF, 0xC0FF, 0x98E0, 0xC101, 0x98E1, 0xC102, 0x98E2, 0xC103, + 0x98E3, 0xC105, 0x98E4, 0xC106, 0x98E5, 0xC107, 0x98E6, 0xC109, + 0x98E7, 0xC10A, 0x98E8, 0xC10B, 0x98E9, 0xC10C, 0x98EA, 0xC10D, + 0x98EB, 0xC10E, 0x98EC, 0xC10F, 0x98ED, 0xC111, 0x98EE, 0xC112, + 0x98EF, 0xC113, 0x98F0, 0xC114, 0x98F1, 0xC116, 0x98F2, 0xC117, + 0x98F3, 0xC118, 0x98F4, 0xC119, 0x98F5, 0xC11A, 0x98F6, 0xC11B, + 0x98F7, 0xC121, 0x98F8, 0xC122, 0x98F9, 0xC125, 0x98FA, 0xC128, + 0x98FB, 0xC129, 0x98FC, 0xC12A, 0x98FD, 0xC12B, 0x98FE, 0xC12E, + 0x9941, 0xC132, 0x9942, 0xC133, 0x9943, 0xC134, 0x9944, 0xC135, + 0x9945, 0xC137, 0x9946, 0xC13A, 0x9947, 0xC13B, 0x9948, 0xC13D, + 0x9949, 0xC13E, 0x994A, 0xC13F, 0x994B, 0xC141, 0x994C, 0xC142, + 0x994D, 0xC143, 0x994E, 0xC144, 0x994F, 0xC145, 0x9950, 0xC146, + 0x9951, 0xC147, 0x9952, 0xC14A, 0x9953, 0xC14E, 0x9954, 0xC14F, + 0x9955, 0xC150, 0x9956, 0xC151, 0x9957, 0xC152, 0x9958, 0xC153, + 0x9959, 0xC156, 0x995A, 0xC157, 0x9961, 0xC159, 0x9962, 0xC15A, + 0x9963, 0xC15B, 0x9964, 0xC15D, 0x9965, 0xC15E, 0x9966, 0xC15F, + 0x9967, 0xC160, 0x9968, 0xC161, 0x9969, 0xC162, 0x996A, 0xC163, + 0x996B, 0xC166, 0x996C, 0xC16A, 0x996D, 0xC16B, 0x996E, 0xC16C, + 0x996F, 0xC16D, 0x9970, 0xC16E, 0x9971, 0xC16F, 0x9972, 0xC171, + 0x9973, 0xC172, 0x9974, 0xC173, 0x9975, 0xC175, 0x9976, 0xC176, + 0x9977, 0xC177, 0x9978, 0xC179, 0x9979, 0xC17A, 0x997A, 0xC17B, + 0x9981, 0xC17C, 0x9982, 0xC17D, 0x9983, 0xC17E, 0x9984, 0xC17F, + 0x9985, 0xC180, 0x9986, 0xC181, 0x9987, 0xC182, 0x9988, 0xC183, + 0x9989, 0xC184, 0x998A, 0xC186, 0x998B, 0xC187, 0x998C, 0xC188, + 0x998D, 0xC189, 0x998E, 0xC18A, 0x998F, 0xC18B, 0x9990, 0xC18F, + 0x9991, 0xC191, 0x9992, 0xC192, 0x9993, 0xC193, 0x9994, 0xC195, + 0x9995, 0xC197, 0x9996, 0xC198, 0x9997, 0xC199, 0x9998, 0xC19A, + 0x9999, 0xC19B, 0x999A, 0xC19E, 0x999B, 0xC1A0, 0x999C, 0xC1A2, + 0x999D, 0xC1A3, 0x999E, 0xC1A4, 0x999F, 0xC1A6, 0x99A0, 0xC1A7, + 0x99A1, 0xC1AA, 0x99A2, 0xC1AB, 0x99A3, 0xC1AD, 0x99A4, 0xC1AE, + 0x99A5, 0xC1AF, 0x99A6, 0xC1B1, 0x99A7, 0xC1B2, 0x99A8, 0xC1B3, + 0x99A9, 0xC1B4, 0x99AA, 0xC1B5, 0x99AB, 0xC1B6, 0x99AC, 0xC1B7, + 0x99AD, 0xC1B8, 0x99AE, 0xC1B9, 0x99AF, 0xC1BA, 0x99B0, 0xC1BB, + 0x99B1, 0xC1BC, 0x99B2, 0xC1BE, 0x99B3, 0xC1BF, 0x99B4, 0xC1C0, + 0x99B5, 0xC1C1, 0x99B6, 0xC1C2, 0x99B7, 0xC1C3, 0x99B8, 0xC1C5, + 0x99B9, 0xC1C6, 0x99BA, 0xC1C7, 0x99BB, 0xC1C9, 0x99BC, 0xC1CA, + 0x99BD, 0xC1CB, 0x99BE, 0xC1CD, 0x99BF, 0xC1CE, 0x99C0, 0xC1CF, + 0x99C1, 0xC1D0, 0x99C2, 0xC1D1, 0x99C3, 0xC1D2, 0x99C4, 0xC1D3, + 0x99C5, 0xC1D5, 0x99C6, 0xC1D6, 0x99C7, 0xC1D9, 0x99C8, 0xC1DA, + 0x99C9, 0xC1DB, 0x99CA, 0xC1DC, 0x99CB, 0xC1DD, 0x99CC, 0xC1DE, + 0x99CD, 0xC1DF, 0x99CE, 0xC1E1, 0x99CF, 0xC1E2, 0x99D0, 0xC1E3, + 0x99D1, 0xC1E5, 0x99D2, 0xC1E6, 0x99D3, 0xC1E7, 0x99D4, 0xC1E9, + 0x99D5, 0xC1EA, 0x99D6, 0xC1EB, 0x99D7, 0xC1EC, 0x99D8, 0xC1ED, + 0x99D9, 0xC1EE, 0x99DA, 0xC1EF, 0x99DB, 0xC1F2, 0x99DC, 0xC1F4, + 0x99DD, 0xC1F5, 0x99DE, 0xC1F6, 0x99DF, 0xC1F7, 0x99E0, 0xC1F8, + 0x99E1, 0xC1F9, 0x99E2, 0xC1FA, 0x99E3, 0xC1FB, 0x99E4, 0xC1FE, + 0x99E5, 0xC1FF, 0x99E6, 0xC201, 0x99E7, 0xC202, 0x99E8, 0xC203, + 0x99E9, 0xC205, 0x99EA, 0xC206, 0x99EB, 0xC207, 0x99EC, 0xC208, + 0x99ED, 0xC209, 0x99EE, 0xC20A, 0x99EF, 0xC20B, 0x99F0, 0xC20E, + 0x99F1, 0xC210, 0x99F2, 0xC212, 0x99F3, 0xC213, 0x99F4, 0xC214, + 0x99F5, 0xC215, 0x99F6, 0xC216, 0x99F7, 0xC217, 0x99F8, 0xC21A, + 0x99F9, 0xC21B, 0x99FA, 0xC21D, 0x99FB, 0xC21E, 0x99FC, 0xC221, + 0x99FD, 0xC222, 0x99FE, 0xC223, 0x9A41, 0xC224, 0x9A42, 0xC225, + 0x9A43, 0xC226, 0x9A44, 0xC227, 0x9A45, 0xC22A, 0x9A46, 0xC22C, + 0x9A47, 0xC22E, 0x9A48, 0xC230, 0x9A49, 0xC233, 0x9A4A, 0xC235, + 0x9A4B, 0xC236, 0x9A4C, 0xC237, 0x9A4D, 0xC238, 0x9A4E, 0xC239, + 0x9A4F, 0xC23A, 0x9A50, 0xC23B, 0x9A51, 0xC23C, 0x9A52, 0xC23D, + 0x9A53, 0xC23E, 0x9A54, 0xC23F, 0x9A55, 0xC240, 0x9A56, 0xC241, + 0x9A57, 0xC242, 0x9A58, 0xC243, 0x9A59, 0xC244, 0x9A5A, 0xC245, + 0x9A61, 0xC246, 0x9A62, 0xC247, 0x9A63, 0xC249, 0x9A64, 0xC24A, + 0x9A65, 0xC24B, 0x9A66, 0xC24C, 0x9A67, 0xC24D, 0x9A68, 0xC24E, + 0x9A69, 0xC24F, 0x9A6A, 0xC252, 0x9A6B, 0xC253, 0x9A6C, 0xC255, + 0x9A6D, 0xC256, 0x9A6E, 0xC257, 0x9A6F, 0xC259, 0x9A70, 0xC25A, + 0x9A71, 0xC25B, 0x9A72, 0xC25C, 0x9A73, 0xC25D, 0x9A74, 0xC25E, + 0x9A75, 0xC25F, 0x9A76, 0xC261, 0x9A77, 0xC262, 0x9A78, 0xC263, + 0x9A79, 0xC264, 0x9A7A, 0xC266, 0x9A81, 0xC267, 0x9A82, 0xC268, + 0x9A83, 0xC269, 0x9A84, 0xC26A, 0x9A85, 0xC26B, 0x9A86, 0xC26E, + 0x9A87, 0xC26F, 0x9A88, 0xC271, 0x9A89, 0xC272, 0x9A8A, 0xC273, + 0x9A8B, 0xC275, 0x9A8C, 0xC276, 0x9A8D, 0xC277, 0x9A8E, 0xC278, + 0x9A8F, 0xC279, 0x9A90, 0xC27A, 0x9A91, 0xC27B, 0x9A92, 0xC27E, + 0x9A93, 0xC280, 0x9A94, 0xC282, 0x9A95, 0xC283, 0x9A96, 0xC284, + 0x9A97, 0xC285, 0x9A98, 0xC286, 0x9A99, 0xC287, 0x9A9A, 0xC28A, + 0x9A9B, 0xC28B, 0x9A9C, 0xC28C, 0x9A9D, 0xC28D, 0x9A9E, 0xC28E, + 0x9A9F, 0xC28F, 0x9AA0, 0xC291, 0x9AA1, 0xC292, 0x9AA2, 0xC293, + 0x9AA3, 0xC294, 0x9AA4, 0xC295, 0x9AA5, 0xC296, 0x9AA6, 0xC297, + 0x9AA7, 0xC299, 0x9AA8, 0xC29A, 0x9AA9, 0xC29C, 0x9AAA, 0xC29E, + 0x9AAB, 0xC29F, 0x9AAC, 0xC2A0, 0x9AAD, 0xC2A1, 0x9AAE, 0xC2A2, + 0x9AAF, 0xC2A3, 0x9AB0, 0xC2A6, 0x9AB1, 0xC2A7, 0x9AB2, 0xC2A9, + 0x9AB3, 0xC2AA, 0x9AB4, 0xC2AB, 0x9AB5, 0xC2AE, 0x9AB6, 0xC2AF, + 0x9AB7, 0xC2B0, 0x9AB8, 0xC2B1, 0x9AB9, 0xC2B2, 0x9ABA, 0xC2B3, + 0x9ABB, 0xC2B6, 0x9ABC, 0xC2B8, 0x9ABD, 0xC2BA, 0x9ABE, 0xC2BB, + 0x9ABF, 0xC2BC, 0x9AC0, 0xC2BD, 0x9AC1, 0xC2BE, 0x9AC2, 0xC2BF, + 0x9AC3, 0xC2C0, 0x9AC4, 0xC2C1, 0x9AC5, 0xC2C2, 0x9AC6, 0xC2C3, + 0x9AC7, 0xC2C4, 0x9AC8, 0xC2C5, 0x9AC9, 0xC2C6, 0x9ACA, 0xC2C7, + 0x9ACB, 0xC2C8, 0x9ACC, 0xC2C9, 0x9ACD, 0xC2CA, 0x9ACE, 0xC2CB, + 0x9ACF, 0xC2CC, 0x9AD0, 0xC2CD, 0x9AD1, 0xC2CE, 0x9AD2, 0xC2CF, + 0x9AD3, 0xC2D0, 0x9AD4, 0xC2D1, 0x9AD5, 0xC2D2, 0x9AD6, 0xC2D3, + 0x9AD7, 0xC2D4, 0x9AD8, 0xC2D5, 0x9AD9, 0xC2D6, 0x9ADA, 0xC2D7, + 0x9ADB, 0xC2D8, 0x9ADC, 0xC2D9, 0x9ADD, 0xC2DA, 0x9ADE, 0xC2DB, + 0x9ADF, 0xC2DE, 0x9AE0, 0xC2DF, 0x9AE1, 0xC2E1, 0x9AE2, 0xC2E2, + 0x9AE3, 0xC2E5, 0x9AE4, 0xC2E6, 0x9AE5, 0xC2E7, 0x9AE6, 0xC2E8, + 0x9AE7, 0xC2E9, 0x9AE8, 0xC2EA, 0x9AE9, 0xC2EE, 0x9AEA, 0xC2F0, + 0x9AEB, 0xC2F2, 0x9AEC, 0xC2F3, 0x9AED, 0xC2F4, 0x9AEE, 0xC2F5, + 0x9AEF, 0xC2F7, 0x9AF0, 0xC2FA, 0x9AF1, 0xC2FD, 0x9AF2, 0xC2FE, + 0x9AF3, 0xC2FF, 0x9AF4, 0xC301, 0x9AF5, 0xC302, 0x9AF6, 0xC303, + 0x9AF7, 0xC304, 0x9AF8, 0xC305, 0x9AF9, 0xC306, 0x9AFA, 0xC307, + 0x9AFB, 0xC30A, 0x9AFC, 0xC30B, 0x9AFD, 0xC30E, 0x9AFE, 0xC30F, + 0x9B41, 0xC310, 0x9B42, 0xC311, 0x9B43, 0xC312, 0x9B44, 0xC316, + 0x9B45, 0xC317, 0x9B46, 0xC319, 0x9B47, 0xC31A, 0x9B48, 0xC31B, + 0x9B49, 0xC31D, 0x9B4A, 0xC31E, 0x9B4B, 0xC31F, 0x9B4C, 0xC320, + 0x9B4D, 0xC321, 0x9B4E, 0xC322, 0x9B4F, 0xC323, 0x9B50, 0xC326, + 0x9B51, 0xC327, 0x9B52, 0xC32A, 0x9B53, 0xC32B, 0x9B54, 0xC32C, + 0x9B55, 0xC32D, 0x9B56, 0xC32E, 0x9B57, 0xC32F, 0x9B58, 0xC330, + 0x9B59, 0xC331, 0x9B5A, 0xC332, 0x9B61, 0xC333, 0x9B62, 0xC334, + 0x9B63, 0xC335, 0x9B64, 0xC336, 0x9B65, 0xC337, 0x9B66, 0xC338, + 0x9B67, 0xC339, 0x9B68, 0xC33A, 0x9B69, 0xC33B, 0x9B6A, 0xC33C, + 0x9B6B, 0xC33D, 0x9B6C, 0xC33E, 0x9B6D, 0xC33F, 0x9B6E, 0xC340, + 0x9B6F, 0xC341, 0x9B70, 0xC342, 0x9B71, 0xC343, 0x9B72, 0xC344, + 0x9B73, 0xC346, 0x9B74, 0xC347, 0x9B75, 0xC348, 0x9B76, 0xC349, + 0x9B77, 0xC34A, 0x9B78, 0xC34B, 0x9B79, 0xC34C, 0x9B7A, 0xC34D, + 0x9B81, 0xC34E, 0x9B82, 0xC34F, 0x9B83, 0xC350, 0x9B84, 0xC351, + 0x9B85, 0xC352, 0x9B86, 0xC353, 0x9B87, 0xC354, 0x9B88, 0xC355, + 0x9B89, 0xC356, 0x9B8A, 0xC357, 0x9B8B, 0xC358, 0x9B8C, 0xC359, + 0x9B8D, 0xC35A, 0x9B8E, 0xC35B, 0x9B8F, 0xC35C, 0x9B90, 0xC35D, + 0x9B91, 0xC35E, 0x9B92, 0xC35F, 0x9B93, 0xC360, 0x9B94, 0xC361, + 0x9B95, 0xC362, 0x9B96, 0xC363, 0x9B97, 0xC364, 0x9B98, 0xC365, + 0x9B99, 0xC366, 0x9B9A, 0xC367, 0x9B9B, 0xC36A, 0x9B9C, 0xC36B, + 0x9B9D, 0xC36D, 0x9B9E, 0xC36E, 0x9B9F, 0xC36F, 0x9BA0, 0xC371, + 0x9BA1, 0xC373, 0x9BA2, 0xC374, 0x9BA3, 0xC375, 0x9BA4, 0xC376, + 0x9BA5, 0xC377, 0x9BA6, 0xC37A, 0x9BA7, 0xC37B, 0x9BA8, 0xC37E, + 0x9BA9, 0xC37F, 0x9BAA, 0xC380, 0x9BAB, 0xC381, 0x9BAC, 0xC382, + 0x9BAD, 0xC383, 0x9BAE, 0xC385, 0x9BAF, 0xC386, 0x9BB0, 0xC387, + 0x9BB1, 0xC389, 0x9BB2, 0xC38A, 0x9BB3, 0xC38B, 0x9BB4, 0xC38D, + 0x9BB5, 0xC38E, 0x9BB6, 0xC38F, 0x9BB7, 0xC390, 0x9BB8, 0xC391, + 0x9BB9, 0xC392, 0x9BBA, 0xC393, 0x9BBB, 0xC394, 0x9BBC, 0xC395, + 0x9BBD, 0xC396, 0x9BBE, 0xC397, 0x9BBF, 0xC398, 0x9BC0, 0xC399, + 0x9BC1, 0xC39A, 0x9BC2, 0xC39B, 0x9BC3, 0xC39C, 0x9BC4, 0xC39D, + 0x9BC5, 0xC39E, 0x9BC6, 0xC39F, 0x9BC7, 0xC3A0, 0x9BC8, 0xC3A1, + 0x9BC9, 0xC3A2, 0x9BCA, 0xC3A3, 0x9BCB, 0xC3A4, 0x9BCC, 0xC3A5, + 0x9BCD, 0xC3A6, 0x9BCE, 0xC3A7, 0x9BCF, 0xC3A8, 0x9BD0, 0xC3A9, + 0x9BD1, 0xC3AA, 0x9BD2, 0xC3AB, 0x9BD3, 0xC3AC, 0x9BD4, 0xC3AD, + 0x9BD5, 0xC3AE, 0x9BD6, 0xC3AF, 0x9BD7, 0xC3B0, 0x9BD8, 0xC3B1, + 0x9BD9, 0xC3B2, 0x9BDA, 0xC3B3, 0x9BDB, 0xC3B4, 0x9BDC, 0xC3B5, + 0x9BDD, 0xC3B6, 0x9BDE, 0xC3B7, 0x9BDF, 0xC3B8, 0x9BE0, 0xC3B9, + 0x9BE1, 0xC3BA, 0x9BE2, 0xC3BB, 0x9BE3, 0xC3BC, 0x9BE4, 0xC3BD, + 0x9BE5, 0xC3BE, 0x9BE6, 0xC3BF, 0x9BE7, 0xC3C1, 0x9BE8, 0xC3C2, + 0x9BE9, 0xC3C3, 0x9BEA, 0xC3C4, 0x9BEB, 0xC3C5, 0x9BEC, 0xC3C6, + 0x9BED, 0xC3C7, 0x9BEE, 0xC3C8, 0x9BEF, 0xC3C9, 0x9BF0, 0xC3CA, + 0x9BF1, 0xC3CB, 0x9BF2, 0xC3CC, 0x9BF3, 0xC3CD, 0x9BF4, 0xC3CE, + 0x9BF5, 0xC3CF, 0x9BF6, 0xC3D0, 0x9BF7, 0xC3D1, 0x9BF8, 0xC3D2, + 0x9BF9, 0xC3D3, 0x9BFA, 0xC3D4, 0x9BFB, 0xC3D5, 0x9BFC, 0xC3D6, + 0x9BFD, 0xC3D7, 0x9BFE, 0xC3DA, 0x9C41, 0xC3DB, 0x9C42, 0xC3DD, + 0x9C43, 0xC3DE, 0x9C44, 0xC3E1, 0x9C45, 0xC3E3, 0x9C46, 0xC3E4, + 0x9C47, 0xC3E5, 0x9C48, 0xC3E6, 0x9C49, 0xC3E7, 0x9C4A, 0xC3EA, + 0x9C4B, 0xC3EB, 0x9C4C, 0xC3EC, 0x9C4D, 0xC3EE, 0x9C4E, 0xC3EF, + 0x9C4F, 0xC3F0, 0x9C50, 0xC3F1, 0x9C51, 0xC3F2, 0x9C52, 0xC3F3, + 0x9C53, 0xC3F6, 0x9C54, 0xC3F7, 0x9C55, 0xC3F9, 0x9C56, 0xC3FA, + 0x9C57, 0xC3FB, 0x9C58, 0xC3FC, 0x9C59, 0xC3FD, 0x9C5A, 0xC3FE, + 0x9C61, 0xC3FF, 0x9C62, 0xC400, 0x9C63, 0xC401, 0x9C64, 0xC402, + 0x9C65, 0xC403, 0x9C66, 0xC404, 0x9C67, 0xC405, 0x9C68, 0xC406, + 0x9C69, 0xC407, 0x9C6A, 0xC409, 0x9C6B, 0xC40A, 0x9C6C, 0xC40B, + 0x9C6D, 0xC40C, 0x9C6E, 0xC40D, 0x9C6F, 0xC40E, 0x9C70, 0xC40F, + 0x9C71, 0xC411, 0x9C72, 0xC412, 0x9C73, 0xC413, 0x9C74, 0xC414, + 0x9C75, 0xC415, 0x9C76, 0xC416, 0x9C77, 0xC417, 0x9C78, 0xC418, + 0x9C79, 0xC419, 0x9C7A, 0xC41A, 0x9C81, 0xC41B, 0x9C82, 0xC41C, + 0x9C83, 0xC41D, 0x9C84, 0xC41E, 0x9C85, 0xC41F, 0x9C86, 0xC420, + 0x9C87, 0xC421, 0x9C88, 0xC422, 0x9C89, 0xC423, 0x9C8A, 0xC425, + 0x9C8B, 0xC426, 0x9C8C, 0xC427, 0x9C8D, 0xC428, 0x9C8E, 0xC429, + 0x9C8F, 0xC42A, 0x9C90, 0xC42B, 0x9C91, 0xC42D, 0x9C92, 0xC42E, + 0x9C93, 0xC42F, 0x9C94, 0xC431, 0x9C95, 0xC432, 0x9C96, 0xC433, + 0x9C97, 0xC435, 0x9C98, 0xC436, 0x9C99, 0xC437, 0x9C9A, 0xC438, + 0x9C9B, 0xC439, 0x9C9C, 0xC43A, 0x9C9D, 0xC43B, 0x9C9E, 0xC43E, + 0x9C9F, 0xC43F, 0x9CA0, 0xC440, 0x9CA1, 0xC441, 0x9CA2, 0xC442, + 0x9CA3, 0xC443, 0x9CA4, 0xC444, 0x9CA5, 0xC445, 0x9CA6, 0xC446, + 0x9CA7, 0xC447, 0x9CA8, 0xC449, 0x9CA9, 0xC44A, 0x9CAA, 0xC44B, + 0x9CAB, 0xC44C, 0x9CAC, 0xC44D, 0x9CAD, 0xC44E, 0x9CAE, 0xC44F, + 0x9CAF, 0xC450, 0x9CB0, 0xC451, 0x9CB1, 0xC452, 0x9CB2, 0xC453, + 0x9CB3, 0xC454, 0x9CB4, 0xC455, 0x9CB5, 0xC456, 0x9CB6, 0xC457, + 0x9CB7, 0xC458, 0x9CB8, 0xC459, 0x9CB9, 0xC45A, 0x9CBA, 0xC45B, + 0x9CBB, 0xC45C, 0x9CBC, 0xC45D, 0x9CBD, 0xC45E, 0x9CBE, 0xC45F, + 0x9CBF, 0xC460, 0x9CC0, 0xC461, 0x9CC1, 0xC462, 0x9CC2, 0xC463, + 0x9CC3, 0xC466, 0x9CC4, 0xC467, 0x9CC5, 0xC469, 0x9CC6, 0xC46A, + 0x9CC7, 0xC46B, 0x9CC8, 0xC46D, 0x9CC9, 0xC46E, 0x9CCA, 0xC46F, + 0x9CCB, 0xC470, 0x9CCC, 0xC471, 0x9CCD, 0xC472, 0x9CCE, 0xC473, + 0x9CCF, 0xC476, 0x9CD0, 0xC477, 0x9CD1, 0xC478, 0x9CD2, 0xC47A, + 0x9CD3, 0xC47B, 0x9CD4, 0xC47C, 0x9CD5, 0xC47D, 0x9CD6, 0xC47E, + 0x9CD7, 0xC47F, 0x9CD8, 0xC481, 0x9CD9, 0xC482, 0x9CDA, 0xC483, + 0x9CDB, 0xC484, 0x9CDC, 0xC485, 0x9CDD, 0xC486, 0x9CDE, 0xC487, + 0x9CDF, 0xC488, 0x9CE0, 0xC489, 0x9CE1, 0xC48A, 0x9CE2, 0xC48B, + 0x9CE3, 0xC48C, 0x9CE4, 0xC48D, 0x9CE5, 0xC48E, 0x9CE6, 0xC48F, + 0x9CE7, 0xC490, 0x9CE8, 0xC491, 0x9CE9, 0xC492, 0x9CEA, 0xC493, + 0x9CEB, 0xC495, 0x9CEC, 0xC496, 0x9CED, 0xC497, 0x9CEE, 0xC498, + 0x9CEF, 0xC499, 0x9CF0, 0xC49A, 0x9CF1, 0xC49B, 0x9CF2, 0xC49D, + 0x9CF3, 0xC49E, 0x9CF4, 0xC49F, 0x9CF5, 0xC4A0, 0x9CF6, 0xC4A1, + 0x9CF7, 0xC4A2, 0x9CF8, 0xC4A3, 0x9CF9, 0xC4A4, 0x9CFA, 0xC4A5, + 0x9CFB, 0xC4A6, 0x9CFC, 0xC4A7, 0x9CFD, 0xC4A8, 0x9CFE, 0xC4A9, + 0x9D41, 0xC4AA, 0x9D42, 0xC4AB, 0x9D43, 0xC4AC, 0x9D44, 0xC4AD, + 0x9D45, 0xC4AE, 0x9D46, 0xC4AF, 0x9D47, 0xC4B0, 0x9D48, 0xC4B1, + 0x9D49, 0xC4B2, 0x9D4A, 0xC4B3, 0x9D4B, 0xC4B4, 0x9D4C, 0xC4B5, + 0x9D4D, 0xC4B6, 0x9D4E, 0xC4B7, 0x9D4F, 0xC4B9, 0x9D50, 0xC4BA, + 0x9D51, 0xC4BB, 0x9D52, 0xC4BD, 0x9D53, 0xC4BE, 0x9D54, 0xC4BF, + 0x9D55, 0xC4C0, 0x9D56, 0xC4C1, 0x9D57, 0xC4C2, 0x9D58, 0xC4C3, + 0x9D59, 0xC4C4, 0x9D5A, 0xC4C5, 0x9D61, 0xC4C6, 0x9D62, 0xC4C7, + 0x9D63, 0xC4C8, 0x9D64, 0xC4C9, 0x9D65, 0xC4CA, 0x9D66, 0xC4CB, + 0x9D67, 0xC4CC, 0x9D68, 0xC4CD, 0x9D69, 0xC4CE, 0x9D6A, 0xC4CF, + 0x9D6B, 0xC4D0, 0x9D6C, 0xC4D1, 0x9D6D, 0xC4D2, 0x9D6E, 0xC4D3, + 0x9D6F, 0xC4D4, 0x9D70, 0xC4D5, 0x9D71, 0xC4D6, 0x9D72, 0xC4D7, + 0x9D73, 0xC4D8, 0x9D74, 0xC4D9, 0x9D75, 0xC4DA, 0x9D76, 0xC4DB, + 0x9D77, 0xC4DC, 0x9D78, 0xC4DD, 0x9D79, 0xC4DE, 0x9D7A, 0xC4DF, + 0x9D81, 0xC4E0, 0x9D82, 0xC4E1, 0x9D83, 0xC4E2, 0x9D84, 0xC4E3, + 0x9D85, 0xC4E4, 0x9D86, 0xC4E5, 0x9D87, 0xC4E6, 0x9D88, 0xC4E7, + 0x9D89, 0xC4E8, 0x9D8A, 0xC4EA, 0x9D8B, 0xC4EB, 0x9D8C, 0xC4EC, + 0x9D8D, 0xC4ED, 0x9D8E, 0xC4EE, 0x9D8F, 0xC4EF, 0x9D90, 0xC4F2, + 0x9D91, 0xC4F3, 0x9D92, 0xC4F5, 0x9D93, 0xC4F6, 0x9D94, 0xC4F7, + 0x9D95, 0xC4F9, 0x9D96, 0xC4FB, 0x9D97, 0xC4FC, 0x9D98, 0xC4FD, + 0x9D99, 0xC4FE, 0x9D9A, 0xC502, 0x9D9B, 0xC503, 0x9D9C, 0xC504, + 0x9D9D, 0xC505, 0x9D9E, 0xC506, 0x9D9F, 0xC507, 0x9DA0, 0xC508, + 0x9DA1, 0xC509, 0x9DA2, 0xC50A, 0x9DA3, 0xC50B, 0x9DA4, 0xC50D, + 0x9DA5, 0xC50E, 0x9DA6, 0xC50F, 0x9DA7, 0xC511, 0x9DA8, 0xC512, + 0x9DA9, 0xC513, 0x9DAA, 0xC515, 0x9DAB, 0xC516, 0x9DAC, 0xC517, + 0x9DAD, 0xC518, 0x9DAE, 0xC519, 0x9DAF, 0xC51A, 0x9DB0, 0xC51B, + 0x9DB1, 0xC51D, 0x9DB2, 0xC51E, 0x9DB3, 0xC51F, 0x9DB4, 0xC520, + 0x9DB5, 0xC521, 0x9DB6, 0xC522, 0x9DB7, 0xC523, 0x9DB8, 0xC524, + 0x9DB9, 0xC525, 0x9DBA, 0xC526, 0x9DBB, 0xC527, 0x9DBC, 0xC52A, + 0x9DBD, 0xC52B, 0x9DBE, 0xC52D, 0x9DBF, 0xC52E, 0x9DC0, 0xC52F, + 0x9DC1, 0xC531, 0x9DC2, 0xC532, 0x9DC3, 0xC533, 0x9DC4, 0xC534, + 0x9DC5, 0xC535, 0x9DC6, 0xC536, 0x9DC7, 0xC537, 0x9DC8, 0xC53A, + 0x9DC9, 0xC53C, 0x9DCA, 0xC53E, 0x9DCB, 0xC53F, 0x9DCC, 0xC540, + 0x9DCD, 0xC541, 0x9DCE, 0xC542, 0x9DCF, 0xC543, 0x9DD0, 0xC546, + 0x9DD1, 0xC547, 0x9DD2, 0xC54B, 0x9DD3, 0xC54F, 0x9DD4, 0xC550, + 0x9DD5, 0xC551, 0x9DD6, 0xC552, 0x9DD7, 0xC556, 0x9DD8, 0xC55A, + 0x9DD9, 0xC55B, 0x9DDA, 0xC55C, 0x9DDB, 0xC55F, 0x9DDC, 0xC562, + 0x9DDD, 0xC563, 0x9DDE, 0xC565, 0x9DDF, 0xC566, 0x9DE0, 0xC567, + 0x9DE1, 0xC569, 0x9DE2, 0xC56A, 0x9DE3, 0xC56B, 0x9DE4, 0xC56C, + 0x9DE5, 0xC56D, 0x9DE6, 0xC56E, 0x9DE7, 0xC56F, 0x9DE8, 0xC572, + 0x9DE9, 0xC576, 0x9DEA, 0xC577, 0x9DEB, 0xC578, 0x9DEC, 0xC579, + 0x9DED, 0xC57A, 0x9DEE, 0xC57B, 0x9DEF, 0xC57E, 0x9DF0, 0xC57F, + 0x9DF1, 0xC581, 0x9DF2, 0xC582, 0x9DF3, 0xC583, 0x9DF4, 0xC585, + 0x9DF5, 0xC586, 0x9DF6, 0xC588, 0x9DF7, 0xC589, 0x9DF8, 0xC58A, + 0x9DF9, 0xC58B, 0x9DFA, 0xC58E, 0x9DFB, 0xC590, 0x9DFC, 0xC592, + 0x9DFD, 0xC593, 0x9DFE, 0xC594, 0x9E41, 0xC596, 0x9E42, 0xC599, + 0x9E43, 0xC59A, 0x9E44, 0xC59B, 0x9E45, 0xC59D, 0x9E46, 0xC59E, + 0x9E47, 0xC59F, 0x9E48, 0xC5A1, 0x9E49, 0xC5A2, 0x9E4A, 0xC5A3, + 0x9E4B, 0xC5A4, 0x9E4C, 0xC5A5, 0x9E4D, 0xC5A6, 0x9E4E, 0xC5A7, + 0x9E4F, 0xC5A8, 0x9E50, 0xC5AA, 0x9E51, 0xC5AB, 0x9E52, 0xC5AC, + 0x9E53, 0xC5AD, 0x9E54, 0xC5AE, 0x9E55, 0xC5AF, 0x9E56, 0xC5B0, + 0x9E57, 0xC5B1, 0x9E58, 0xC5B2, 0x9E59, 0xC5B3, 0x9E5A, 0xC5B6, + 0x9E61, 0xC5B7, 0x9E62, 0xC5BA, 0x9E63, 0xC5BF, 0x9E64, 0xC5C0, + 0x9E65, 0xC5C1, 0x9E66, 0xC5C2, 0x9E67, 0xC5C3, 0x9E68, 0xC5CB, + 0x9E69, 0xC5CD, 0x9E6A, 0xC5CF, 0x9E6B, 0xC5D2, 0x9E6C, 0xC5D3, + 0x9E6D, 0xC5D5, 0x9E6E, 0xC5D6, 0x9E6F, 0xC5D7, 0x9E70, 0xC5D9, + 0x9E71, 0xC5DA, 0x9E72, 0xC5DB, 0x9E73, 0xC5DC, 0x9E74, 0xC5DD, + 0x9E75, 0xC5DE, 0x9E76, 0xC5DF, 0x9E77, 0xC5E2, 0x9E78, 0xC5E4, + 0x9E79, 0xC5E6, 0x9E7A, 0xC5E7, 0x9E81, 0xC5E8, 0x9E82, 0xC5E9, + 0x9E83, 0xC5EA, 0x9E84, 0xC5EB, 0x9E85, 0xC5EF, 0x9E86, 0xC5F1, + 0x9E87, 0xC5F2, 0x9E88, 0xC5F3, 0x9E89, 0xC5F5, 0x9E8A, 0xC5F8, + 0x9E8B, 0xC5F9, 0x9E8C, 0xC5FA, 0x9E8D, 0xC5FB, 0x9E8E, 0xC602, + 0x9E8F, 0xC603, 0x9E90, 0xC604, 0x9E91, 0xC609, 0x9E92, 0xC60A, + 0x9E93, 0xC60B, 0x9E94, 0xC60D, 0x9E95, 0xC60E, 0x9E96, 0xC60F, + 0x9E97, 0xC611, 0x9E98, 0xC612, 0x9E99, 0xC613, 0x9E9A, 0xC614, + 0x9E9B, 0xC615, 0x9E9C, 0xC616, 0x9E9D, 0xC617, 0x9E9E, 0xC61A, + 0x9E9F, 0xC61D, 0x9EA0, 0xC61E, 0x9EA1, 0xC61F, 0x9EA2, 0xC620, + 0x9EA3, 0xC621, 0x9EA4, 0xC622, 0x9EA5, 0xC623, 0x9EA6, 0xC626, + 0x9EA7, 0xC627, 0x9EA8, 0xC629, 0x9EA9, 0xC62A, 0x9EAA, 0xC62B, + 0x9EAB, 0xC62F, 0x9EAC, 0xC631, 0x9EAD, 0xC632, 0x9EAE, 0xC636, + 0x9EAF, 0xC638, 0x9EB0, 0xC63A, 0x9EB1, 0xC63C, 0x9EB2, 0xC63D, + 0x9EB3, 0xC63E, 0x9EB4, 0xC63F, 0x9EB5, 0xC642, 0x9EB6, 0xC643, + 0x9EB7, 0xC645, 0x9EB8, 0xC646, 0x9EB9, 0xC647, 0x9EBA, 0xC649, + 0x9EBB, 0xC64A, 0x9EBC, 0xC64B, 0x9EBD, 0xC64C, 0x9EBE, 0xC64D, + 0x9EBF, 0xC64E, 0x9EC0, 0xC64F, 0x9EC1, 0xC652, 0x9EC2, 0xC656, + 0x9EC3, 0xC657, 0x9EC4, 0xC658, 0x9EC5, 0xC659, 0x9EC6, 0xC65A, + 0x9EC7, 0xC65B, 0x9EC8, 0xC65E, 0x9EC9, 0xC65F, 0x9ECA, 0xC661, + 0x9ECB, 0xC662, 0x9ECC, 0xC663, 0x9ECD, 0xC664, 0x9ECE, 0xC665, + 0x9ECF, 0xC666, 0x9ED0, 0xC667, 0x9ED1, 0xC668, 0x9ED2, 0xC669, + 0x9ED3, 0xC66A, 0x9ED4, 0xC66B, 0x9ED5, 0xC66D, 0x9ED6, 0xC66E, + 0x9ED7, 0xC670, 0x9ED8, 0xC672, 0x9ED9, 0xC673, 0x9EDA, 0xC674, + 0x9EDB, 0xC675, 0x9EDC, 0xC676, 0x9EDD, 0xC677, 0x9EDE, 0xC67A, + 0x9EDF, 0xC67B, 0x9EE0, 0xC67D, 0x9EE1, 0xC67E, 0x9EE2, 0xC67F, + 0x9EE3, 0xC681, 0x9EE4, 0xC682, 0x9EE5, 0xC683, 0x9EE6, 0xC684, + 0x9EE7, 0xC685, 0x9EE8, 0xC686, 0x9EE9, 0xC687, 0x9EEA, 0xC68A, + 0x9EEB, 0xC68C, 0x9EEC, 0xC68E, 0x9EED, 0xC68F, 0x9EEE, 0xC690, + 0x9EEF, 0xC691, 0x9EF0, 0xC692, 0x9EF1, 0xC693, 0x9EF2, 0xC696, + 0x9EF3, 0xC697, 0x9EF4, 0xC699, 0x9EF5, 0xC69A, 0x9EF6, 0xC69B, + 0x9EF7, 0xC69D, 0x9EF8, 0xC69E, 0x9EF9, 0xC69F, 0x9EFA, 0xC6A0, + 0x9EFB, 0xC6A1, 0x9EFC, 0xC6A2, 0x9EFD, 0xC6A3, 0x9EFE, 0xC6A6, + 0x9F41, 0xC6A8, 0x9F42, 0xC6AA, 0x9F43, 0xC6AB, 0x9F44, 0xC6AC, + 0x9F45, 0xC6AD, 0x9F46, 0xC6AE, 0x9F47, 0xC6AF, 0x9F48, 0xC6B2, + 0x9F49, 0xC6B3, 0x9F4A, 0xC6B5, 0x9F4B, 0xC6B6, 0x9F4C, 0xC6B7, + 0x9F4D, 0xC6BB, 0x9F4E, 0xC6BC, 0x9F4F, 0xC6BD, 0x9F50, 0xC6BE, + 0x9F51, 0xC6BF, 0x9F52, 0xC6C2, 0x9F53, 0xC6C4, 0x9F54, 0xC6C6, + 0x9F55, 0xC6C7, 0x9F56, 0xC6C8, 0x9F57, 0xC6C9, 0x9F58, 0xC6CA, + 0x9F59, 0xC6CB, 0x9F5A, 0xC6CE, 0x9F61, 0xC6CF, 0x9F62, 0xC6D1, + 0x9F63, 0xC6D2, 0x9F64, 0xC6D3, 0x9F65, 0xC6D5, 0x9F66, 0xC6D6, + 0x9F67, 0xC6D7, 0x9F68, 0xC6D8, 0x9F69, 0xC6D9, 0x9F6A, 0xC6DA, + 0x9F6B, 0xC6DB, 0x9F6C, 0xC6DE, 0x9F6D, 0xC6DF, 0x9F6E, 0xC6E2, + 0x9F6F, 0xC6E3, 0x9F70, 0xC6E4, 0x9F71, 0xC6E5, 0x9F72, 0xC6E6, + 0x9F73, 0xC6E7, 0x9F74, 0xC6EA, 0x9F75, 0xC6EB, 0x9F76, 0xC6ED, + 0x9F77, 0xC6EE, 0x9F78, 0xC6EF, 0x9F79, 0xC6F1, 0x9F7A, 0xC6F2, + 0x9F81, 0xC6F3, 0x9F82, 0xC6F4, 0x9F83, 0xC6F5, 0x9F84, 0xC6F6, + 0x9F85, 0xC6F7, 0x9F86, 0xC6FA, 0x9F87, 0xC6FB, 0x9F88, 0xC6FC, + 0x9F89, 0xC6FE, 0x9F8A, 0xC6FF, 0x9F8B, 0xC700, 0x9F8C, 0xC701, + 0x9F8D, 0xC702, 0x9F8E, 0xC703, 0x9F8F, 0xC706, 0x9F90, 0xC707, + 0x9F91, 0xC709, 0x9F92, 0xC70A, 0x9F93, 0xC70B, 0x9F94, 0xC70D, + 0x9F95, 0xC70E, 0x9F96, 0xC70F, 0x9F97, 0xC710, 0x9F98, 0xC711, + 0x9F99, 0xC712, 0x9F9A, 0xC713, 0x9F9B, 0xC716, 0x9F9C, 0xC718, + 0x9F9D, 0xC71A, 0x9F9E, 0xC71B, 0x9F9F, 0xC71C, 0x9FA0, 0xC71D, + 0x9FA1, 0xC71E, 0x9FA2, 0xC71F, 0x9FA3, 0xC722, 0x9FA4, 0xC723, + 0x9FA5, 0xC725, 0x9FA6, 0xC726, 0x9FA7, 0xC727, 0x9FA8, 0xC729, + 0x9FA9, 0xC72A, 0x9FAA, 0xC72B, 0x9FAB, 0xC72C, 0x9FAC, 0xC72D, + 0x9FAD, 0xC72E, 0x9FAE, 0xC72F, 0x9FAF, 0xC732, 0x9FB0, 0xC734, + 0x9FB1, 0xC736, 0x9FB2, 0xC738, 0x9FB3, 0xC739, 0x9FB4, 0xC73A, + 0x9FB5, 0xC73B, 0x9FB6, 0xC73E, 0x9FB7, 0xC73F, 0x9FB8, 0xC741, + 0x9FB9, 0xC742, 0x9FBA, 0xC743, 0x9FBB, 0xC745, 0x9FBC, 0xC746, + 0x9FBD, 0xC747, 0x9FBE, 0xC748, 0x9FBF, 0xC749, 0x9FC0, 0xC74B, + 0x9FC1, 0xC74E, 0x9FC2, 0xC750, 0x9FC3, 0xC759, 0x9FC4, 0xC75A, + 0x9FC5, 0xC75B, 0x9FC6, 0xC75D, 0x9FC7, 0xC75E, 0x9FC8, 0xC75F, + 0x9FC9, 0xC761, 0x9FCA, 0xC762, 0x9FCB, 0xC763, 0x9FCC, 0xC764, + 0x9FCD, 0xC765, 0x9FCE, 0xC766, 0x9FCF, 0xC767, 0x9FD0, 0xC769, + 0x9FD1, 0xC76A, 0x9FD2, 0xC76C, 0x9FD3, 0xC76D, 0x9FD4, 0xC76E, + 0x9FD5, 0xC76F, 0x9FD6, 0xC770, 0x9FD7, 0xC771, 0x9FD8, 0xC772, + 0x9FD9, 0xC773, 0x9FDA, 0xC776, 0x9FDB, 0xC777, 0x9FDC, 0xC779, + 0x9FDD, 0xC77A, 0x9FDE, 0xC77B, 0x9FDF, 0xC77F, 0x9FE0, 0xC780, + 0x9FE1, 0xC781, 0x9FE2, 0xC782, 0x9FE3, 0xC786, 0x9FE4, 0xC78B, + 0x9FE5, 0xC78C, 0x9FE6, 0xC78D, 0x9FE7, 0xC78F, 0x9FE8, 0xC792, + 0x9FE9, 0xC793, 0x9FEA, 0xC795, 0x9FEB, 0xC799, 0x9FEC, 0xC79B, + 0x9FED, 0xC79C, 0x9FEE, 0xC79D, 0x9FEF, 0xC79E, 0x9FF0, 0xC79F, + 0x9FF1, 0xC7A2, 0x9FF2, 0xC7A7, 0x9FF3, 0xC7A8, 0x9FF4, 0xC7A9, + 0x9FF5, 0xC7AA, 0x9FF6, 0xC7AB, 0x9FF7, 0xC7AE, 0x9FF8, 0xC7AF, + 0x9FF9, 0xC7B1, 0x9FFA, 0xC7B2, 0x9FFB, 0xC7B3, 0x9FFC, 0xC7B5, + 0x9FFD, 0xC7B6, 0x9FFE, 0xC7B7, 0xA041, 0xC7B8, 0xA042, 0xC7B9, + 0xA043, 0xC7BA, 0xA044, 0xC7BB, 0xA045, 0xC7BE, 0xA046, 0xC7C2, + 0xA047, 0xC7C3, 0xA048, 0xC7C4, 0xA049, 0xC7C5, 0xA04A, 0xC7C6, + 0xA04B, 0xC7C7, 0xA04C, 0xC7CA, 0xA04D, 0xC7CB, 0xA04E, 0xC7CD, + 0xA04F, 0xC7CF, 0xA050, 0xC7D1, 0xA051, 0xC7D2, 0xA052, 0xC7D3, + 0xA053, 0xC7D4, 0xA054, 0xC7D5, 0xA055, 0xC7D6, 0xA056, 0xC7D7, + 0xA057, 0xC7D9, 0xA058, 0xC7DA, 0xA059, 0xC7DB, 0xA05A, 0xC7DC, + 0xA061, 0xC7DE, 0xA062, 0xC7DF, 0xA063, 0xC7E0, 0xA064, 0xC7E1, + 0xA065, 0xC7E2, 0xA066, 0xC7E3, 0xA067, 0xC7E5, 0xA068, 0xC7E6, + 0xA069, 0xC7E7, 0xA06A, 0xC7E9, 0xA06B, 0xC7EA, 0xA06C, 0xC7EB, + 0xA06D, 0xC7ED, 0xA06E, 0xC7EE, 0xA06F, 0xC7EF, 0xA070, 0xC7F0, + 0xA071, 0xC7F1, 0xA072, 0xC7F2, 0xA073, 0xC7F3, 0xA074, 0xC7F4, + 0xA075, 0xC7F5, 0xA076, 0xC7F6, 0xA077, 0xC7F7, 0xA078, 0xC7F8, + 0xA079, 0xC7F9, 0xA07A, 0xC7FA, 0xA081, 0xC7FB, 0xA082, 0xC7FC, + 0xA083, 0xC7FD, 0xA084, 0xC7FE, 0xA085, 0xC7FF, 0xA086, 0xC802, + 0xA087, 0xC803, 0xA088, 0xC805, 0xA089, 0xC806, 0xA08A, 0xC807, + 0xA08B, 0xC809, 0xA08C, 0xC80B, 0xA08D, 0xC80C, 0xA08E, 0xC80D, + 0xA08F, 0xC80E, 0xA090, 0xC80F, 0xA091, 0xC812, 0xA092, 0xC814, + 0xA093, 0xC817, 0xA094, 0xC818, 0xA095, 0xC819, 0xA096, 0xC81A, + 0xA097, 0xC81B, 0xA098, 0xC81E, 0xA099, 0xC81F, 0xA09A, 0xC821, + 0xA09B, 0xC822, 0xA09C, 0xC823, 0xA09D, 0xC825, 0xA09E, 0xC826, + 0xA09F, 0xC827, 0xA0A0, 0xC828, 0xA0A1, 0xC829, 0xA0A2, 0xC82A, + 0xA0A3, 0xC82B, 0xA0A4, 0xC82E, 0xA0A5, 0xC830, 0xA0A6, 0xC832, + 0xA0A7, 0xC833, 0xA0A8, 0xC834, 0xA0A9, 0xC835, 0xA0AA, 0xC836, + 0xA0AB, 0xC837, 0xA0AC, 0xC839, 0xA0AD, 0xC83A, 0xA0AE, 0xC83B, + 0xA0AF, 0xC83D, 0xA0B0, 0xC83E, 0xA0B1, 0xC83F, 0xA0B2, 0xC841, + 0xA0B3, 0xC842, 0xA0B4, 0xC843, 0xA0B5, 0xC844, 0xA0B6, 0xC845, + 0xA0B7, 0xC846, 0xA0B8, 0xC847, 0xA0B9, 0xC84A, 0xA0BA, 0xC84B, + 0xA0BB, 0xC84E, 0xA0BC, 0xC84F, 0xA0BD, 0xC850, 0xA0BE, 0xC851, + 0xA0BF, 0xC852, 0xA0C0, 0xC853, 0xA0C1, 0xC855, 0xA0C2, 0xC856, + 0xA0C3, 0xC857, 0xA0C4, 0xC858, 0xA0C5, 0xC859, 0xA0C6, 0xC85A, + 0xA0C7, 0xC85B, 0xA0C8, 0xC85C, 0xA0C9, 0xC85D, 0xA0CA, 0xC85E, + 0xA0CB, 0xC85F, 0xA0CC, 0xC860, 0xA0CD, 0xC861, 0xA0CE, 0xC862, + 0xA0CF, 0xC863, 0xA0D0, 0xC864, 0xA0D1, 0xC865, 0xA0D2, 0xC866, + 0xA0D3, 0xC867, 0xA0D4, 0xC868, 0xA0D5, 0xC869, 0xA0D6, 0xC86A, + 0xA0D7, 0xC86B, 0xA0D8, 0xC86C, 0xA0D9, 0xC86D, 0xA0DA, 0xC86E, + 0xA0DB, 0xC86F, 0xA0DC, 0xC872, 0xA0DD, 0xC873, 0xA0DE, 0xC875, + 0xA0DF, 0xC876, 0xA0E0, 0xC877, 0xA0E1, 0xC879, 0xA0E2, 0xC87B, + 0xA0E3, 0xC87C, 0xA0E4, 0xC87D, 0xA0E5, 0xC87E, 0xA0E6, 0xC87F, + 0xA0E7, 0xC882, 0xA0E8, 0xC884, 0xA0E9, 0xC888, 0xA0EA, 0xC889, + 0xA0EB, 0xC88A, 0xA0EC, 0xC88E, 0xA0ED, 0xC88F, 0xA0EE, 0xC890, + 0xA0EF, 0xC891, 0xA0F0, 0xC892, 0xA0F1, 0xC893, 0xA0F2, 0xC895, + 0xA0F3, 0xC896, 0xA0F4, 0xC897, 0xA0F5, 0xC898, 0xA0F6, 0xC899, + 0xA0F7, 0xC89A, 0xA0F8, 0xC89B, 0xA0F9, 0xC89C, 0xA0FA, 0xC89E, + 0xA0FB, 0xC8A0, 0xA0FC, 0xC8A2, 0xA0FD, 0xC8A3, 0xA0FE, 0xC8A4, + 0xA141, 0xC8A5, 0xA142, 0xC8A6, 0xA143, 0xC8A7, 0xA144, 0xC8A9, + 0xA145, 0xC8AA, 0xA146, 0xC8AB, 0xA147, 0xC8AC, 0xA148, 0xC8AD, + 0xA149, 0xC8AE, 0xA14A, 0xC8AF, 0xA14B, 0xC8B0, 0xA14C, 0xC8B1, + 0xA14D, 0xC8B2, 0xA14E, 0xC8B3, 0xA14F, 0xC8B4, 0xA150, 0xC8B5, + 0xA151, 0xC8B6, 0xA152, 0xC8B7, 0xA153, 0xC8B8, 0xA154, 0xC8B9, + 0xA155, 0xC8BA, 0xA156, 0xC8BB, 0xA157, 0xC8BE, 0xA158, 0xC8BF, + 0xA159, 0xC8C0, 0xA15A, 0xC8C1, 0xA161, 0xC8C2, 0xA162, 0xC8C3, + 0xA163, 0xC8C5, 0xA164, 0xC8C6, 0xA165, 0xC8C7, 0xA166, 0xC8C9, + 0xA167, 0xC8CA, 0xA168, 0xC8CB, 0xA169, 0xC8CD, 0xA16A, 0xC8CE, + 0xA16B, 0xC8CF, 0xA16C, 0xC8D0, 0xA16D, 0xC8D1, 0xA16E, 0xC8D2, + 0xA16F, 0xC8D3, 0xA170, 0xC8D6, 0xA171, 0xC8D8, 0xA172, 0xC8DA, + 0xA173, 0xC8DB, 0xA174, 0xC8DC, 0xA175, 0xC8DD, 0xA176, 0xC8DE, + 0xA177, 0xC8DF, 0xA178, 0xC8E2, 0xA179, 0xC8E3, 0xA17A, 0xC8E5, + 0xA181, 0xC8E6, 0xA182, 0xC8E7, 0xA183, 0xC8E8, 0xA184, 0xC8E9, + 0xA185, 0xC8EA, 0xA186, 0xC8EB, 0xA187, 0xC8EC, 0xA188, 0xC8ED, + 0xA189, 0xC8EE, 0xA18A, 0xC8EF, 0xA18B, 0xC8F0, 0xA18C, 0xC8F1, + 0xA18D, 0xC8F2, 0xA18E, 0xC8F3, 0xA18F, 0xC8F4, 0xA190, 0xC8F6, + 0xA191, 0xC8F7, 0xA192, 0xC8F8, 0xA193, 0xC8F9, 0xA194, 0xC8FA, + 0xA195, 0xC8FB, 0xA196, 0xC8FE, 0xA197, 0xC8FF, 0xA198, 0xC901, + 0xA199, 0xC902, 0xA19A, 0xC903, 0xA19B, 0xC907, 0xA19C, 0xC908, + 0xA19D, 0xC909, 0xA19E, 0xC90A, 0xA19F, 0xC90B, 0xA1A0, 0xC90E, + 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, + 0xA1A5, 0x2025, 0xA1A6, 0x2026, 0xA1A7, 0x00A8, 0xA1A8, 0x3003, + 0xA1A9, 0x00AD, 0xA1AA, 0x2015, 0xA1AB, 0x2225, 0xA1AC, 0xFF3C, + 0xA1AD, 0x223C, 0xA1AE, 0x2018, 0xA1AF, 0x2019, 0xA1B0, 0x201C, + 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, + 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, 0xA1B8, 0x300C, + 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3010, + 0xA1BD, 0x3011, 0xA1BE, 0x00B1, 0xA1BF, 0x00D7, 0xA1C0, 0x00F7, + 0xA1C1, 0x2260, 0xA1C2, 0x2264, 0xA1C3, 0x2265, 0xA1C4, 0x221E, + 0xA1C5, 0x2234, 0xA1C6, 0x00B0, 0xA1C7, 0x2032, 0xA1C8, 0x2033, + 0xA1C9, 0x2103, 0xA1CA, 0x212B, 0xA1CB, 0xFFE0, 0xA1CC, 0xFFE1, + 0xA1CD, 0xFFE5, 0xA1CE, 0x2642, 0xA1CF, 0x2640, 0xA1D0, 0x2220, + 0xA1D1, 0x22A5, 0xA1D2, 0x2312, 0xA1D3, 0x2202, 0xA1D4, 0x2207, + 0xA1D5, 0x2261, 0xA1D6, 0x2252, 0xA1D7, 0x00A7, 0xA1D8, 0x203B, + 0xA1D9, 0x2606, 0xA1DA, 0x2605, 0xA1DB, 0x25CB, 0xA1DC, 0x25CF, + 0xA1DD, 0x25CE, 0xA1DE, 0x25C7, 0xA1DF, 0x25C6, 0xA1E0, 0x25A1, + 0xA1E1, 0x25A0, 0xA1E2, 0x25B3, 0xA1E3, 0x25B2, 0xA1E4, 0x25BD, + 0xA1E5, 0x25BC, 0xA1E6, 0x2192, 0xA1E7, 0x2190, 0xA1E8, 0x2191, + 0xA1E9, 0x2193, 0xA1EA, 0x2194, 0xA1EB, 0x3013, 0xA1EC, 0x226A, + 0xA1ED, 0x226B, 0xA1EE, 0x221A, 0xA1EF, 0x223D, 0xA1F0, 0x221D, + 0xA1F1, 0x2235, 0xA1F2, 0x222B, 0xA1F3, 0x222C, 0xA1F4, 0x2208, + 0xA1F5, 0x220B, 0xA1F6, 0x2286, 0xA1F7, 0x2287, 0xA1F8, 0x2282, + 0xA1F9, 0x2283, 0xA1FA, 0x222A, 0xA1FB, 0x2229, 0xA1FC, 0x2227, + 0xA1FD, 0x2228, 0xA1FE, 0xFFE2, 0xA241, 0xC910, 0xA242, 0xC912, + 0xA243, 0xC913, 0xA244, 0xC914, 0xA245, 0xC915, 0xA246, 0xC916, + 0xA247, 0xC917, 0xA248, 0xC919, 0xA249, 0xC91A, 0xA24A, 0xC91B, + 0xA24B, 0xC91C, 0xA24C, 0xC91D, 0xA24D, 0xC91E, 0xA24E, 0xC91F, + 0xA24F, 0xC920, 0xA250, 0xC921, 0xA251, 0xC922, 0xA252, 0xC923, + 0xA253, 0xC924, 0xA254, 0xC925, 0xA255, 0xC926, 0xA256, 0xC927, + 0xA257, 0xC928, 0xA258, 0xC929, 0xA259, 0xC92A, 0xA25A, 0xC92B, + 0xA261, 0xC92D, 0xA262, 0xC92E, 0xA263, 0xC92F, 0xA264, 0xC930, + 0xA265, 0xC931, 0xA266, 0xC932, 0xA267, 0xC933, 0xA268, 0xC935, + 0xA269, 0xC936, 0xA26A, 0xC937, 0xA26B, 0xC938, 0xA26C, 0xC939, + 0xA26D, 0xC93A, 0xA26E, 0xC93B, 0xA26F, 0xC93C, 0xA270, 0xC93D, + 0xA271, 0xC93E, 0xA272, 0xC93F, 0xA273, 0xC940, 0xA274, 0xC941, + 0xA275, 0xC942, 0xA276, 0xC943, 0xA277, 0xC944, 0xA278, 0xC945, + 0xA279, 0xC946, 0xA27A, 0xC947, 0xA281, 0xC948, 0xA282, 0xC949, + 0xA283, 0xC94A, 0xA284, 0xC94B, 0xA285, 0xC94C, 0xA286, 0xC94D, + 0xA287, 0xC94E, 0xA288, 0xC94F, 0xA289, 0xC952, 0xA28A, 0xC953, + 0xA28B, 0xC955, 0xA28C, 0xC956, 0xA28D, 0xC957, 0xA28E, 0xC959, + 0xA28F, 0xC95A, 0xA290, 0xC95B, 0xA291, 0xC95C, 0xA292, 0xC95D, + 0xA293, 0xC95E, 0xA294, 0xC95F, 0xA295, 0xC962, 0xA296, 0xC964, + 0xA297, 0xC965, 0xA298, 0xC966, 0xA299, 0xC967, 0xA29A, 0xC968, + 0xA29B, 0xC969, 0xA29C, 0xC96A, 0xA29D, 0xC96B, 0xA29E, 0xC96D, + 0xA29F, 0xC96E, 0xA2A0, 0xC96F, 0xA2A1, 0x21D2, 0xA2A2, 0x21D4, + 0xA2A3, 0x2200, 0xA2A4, 0x2203, 0xA2A5, 0x00B4, 0xA2A6, 0xFF5E, + 0xA2A7, 0x02C7, 0xA2A8, 0x02D8, 0xA2A9, 0x02DD, 0xA2AA, 0x02DA, + 0xA2AB, 0x02D9, 0xA2AC, 0x00B8, 0xA2AD, 0x02DB, 0xA2AE, 0x00A1, + 0xA2AF, 0x00BF, 0xA2B0, 0x02D0, 0xA2B1, 0x222E, 0xA2B2, 0x2211, + 0xA2B3, 0x220F, 0xA2B4, 0x00A4, 0xA2B5, 0x2109, 0xA2B6, 0x2030, + 0xA2B7, 0x25C1, 0xA2B8, 0x25C0, 0xA2B9, 0x25B7, 0xA2BA, 0x25B6, + 0xA2BB, 0x2664, 0xA2BC, 0x2660, 0xA2BD, 0x2661, 0xA2BE, 0x2665, + 0xA2BF, 0x2667, 0xA2C0, 0x2663, 0xA2C1, 0x2299, 0xA2C2, 0x25C8, + 0xA2C3, 0x25A3, 0xA2C4, 0x25D0, 0xA2C5, 0x25D1, 0xA2C6, 0x2592, + 0xA2C7, 0x25A4, 0xA2C8, 0x25A5, 0xA2C9, 0x25A8, 0xA2CA, 0x25A7, + 0xA2CB, 0x25A6, 0xA2CC, 0x25A9, 0xA2CD, 0x2668, 0xA2CE, 0x260F, + 0xA2CF, 0x260E, 0xA2D0, 0x261C, 0xA2D1, 0x261E, 0xA2D2, 0x00B6, + 0xA2D3, 0x2020, 0xA2D4, 0x2021, 0xA2D5, 0x2195, 0xA2D6, 0x2197, + 0xA2D7, 0x2199, 0xA2D8, 0x2196, 0xA2D9, 0x2198, 0xA2DA, 0x266D, + 0xA2DB, 0x2669, 0xA2DC, 0x266A, 0xA2DD, 0x266C, 0xA2DE, 0x327F, + 0xA2DF, 0x321C, 0xA2E0, 0x2116, 0xA2E1, 0x33C7, 0xA2E2, 0x2122, + 0xA2E3, 0x33C2, 0xA2E4, 0x33D8, 0xA2E5, 0x2121, 0xA2E6, 0x20AC, + 0xA2E7, 0x00AE, 0xA341, 0xC971, 0xA342, 0xC972, 0xA343, 0xC973, + 0xA344, 0xC975, 0xA345, 0xC976, 0xA346, 0xC977, 0xA347, 0xC978, + 0xA348, 0xC979, 0xA349, 0xC97A, 0xA34A, 0xC97B, 0xA34B, 0xC97D, + 0xA34C, 0xC97E, 0xA34D, 0xC97F, 0xA34E, 0xC980, 0xA34F, 0xC981, + 0xA350, 0xC982, 0xA351, 0xC983, 0xA352, 0xC984, 0xA353, 0xC985, + 0xA354, 0xC986, 0xA355, 0xC987, 0xA356, 0xC98A, 0xA357, 0xC98B, + 0xA358, 0xC98D, 0xA359, 0xC98E, 0xA35A, 0xC98F, 0xA361, 0xC991, + 0xA362, 0xC992, 0xA363, 0xC993, 0xA364, 0xC994, 0xA365, 0xC995, + 0xA366, 0xC996, 0xA367, 0xC997, 0xA368, 0xC99A, 0xA369, 0xC99C, + 0xA36A, 0xC99E, 0xA36B, 0xC99F, 0xA36C, 0xC9A0, 0xA36D, 0xC9A1, + 0xA36E, 0xC9A2, 0xA36F, 0xC9A3, 0xA370, 0xC9A4, 0xA371, 0xC9A5, + 0xA372, 0xC9A6, 0xA373, 0xC9A7, 0xA374, 0xC9A8, 0xA375, 0xC9A9, + 0xA376, 0xC9AA, 0xA377, 0xC9AB, 0xA378, 0xC9AC, 0xA379, 0xC9AD, + 0xA37A, 0xC9AE, 0xA381, 0xC9AF, 0xA382, 0xC9B0, 0xA383, 0xC9B1, + 0xA384, 0xC9B2, 0xA385, 0xC9B3, 0xA386, 0xC9B4, 0xA387, 0xC9B5, + 0xA388, 0xC9B6, 0xA389, 0xC9B7, 0xA38A, 0xC9B8, 0xA38B, 0xC9B9, + 0xA38C, 0xC9BA, 0xA38D, 0xC9BB, 0xA38E, 0xC9BC, 0xA38F, 0xC9BD, + 0xA390, 0xC9BE, 0xA391, 0xC9BF, 0xA392, 0xC9C2, 0xA393, 0xC9C3, + 0xA394, 0xC9C5, 0xA395, 0xC9C6, 0xA396, 0xC9C9, 0xA397, 0xC9CB, + 0xA398, 0xC9CC, 0xA399, 0xC9CD, 0xA39A, 0xC9CE, 0xA39B, 0xC9CF, + 0xA39C, 0xC9D2, 0xA39D, 0xC9D4, 0xA39E, 0xC9D7, 0xA39F, 0xC9D8, + 0xA3A0, 0xC9DB, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, + 0xA3A4, 0xFF04, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, + 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, + 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, + 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, + 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, + 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, + 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, + 0xA3DC, 0xFFE6, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, + 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, + 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, + 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, + 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA441, 0xC9DE, + 0xA442, 0xC9DF, 0xA443, 0xC9E1, 0xA444, 0xC9E3, 0xA445, 0xC9E5, + 0xA446, 0xC9E6, 0xA447, 0xC9E8, 0xA448, 0xC9E9, 0xA449, 0xC9EA, + 0xA44A, 0xC9EB, 0xA44B, 0xC9EE, 0xA44C, 0xC9F2, 0xA44D, 0xC9F3, + 0xA44E, 0xC9F4, 0xA44F, 0xC9F5, 0xA450, 0xC9F6, 0xA451, 0xC9F7, + 0xA452, 0xC9FA, 0xA453, 0xC9FB, 0xA454, 0xC9FD, 0xA455, 0xC9FE, + 0xA456, 0xC9FF, 0xA457, 0xCA01, 0xA458, 0xCA02, 0xA459, 0xCA03, + 0xA45A, 0xCA04, 0xA461, 0xCA05, 0xA462, 0xCA06, 0xA463, 0xCA07, + 0xA464, 0xCA0A, 0xA465, 0xCA0E, 0xA466, 0xCA0F, 0xA467, 0xCA10, + 0xA468, 0xCA11, 0xA469, 0xCA12, 0xA46A, 0xCA13, 0xA46B, 0xCA15, + 0xA46C, 0xCA16, 0xA46D, 0xCA17, 0xA46E, 0xCA19, 0xA46F, 0xCA1A, + 0xA470, 0xCA1B, 0xA471, 0xCA1C, 0xA472, 0xCA1D, 0xA473, 0xCA1E, + 0xA474, 0xCA1F, 0xA475, 0xCA20, 0xA476, 0xCA21, 0xA477, 0xCA22, + 0xA478, 0xCA23, 0xA479, 0xCA24, 0xA47A, 0xCA25, 0xA481, 0xCA26, + 0xA482, 0xCA27, 0xA483, 0xCA28, 0xA484, 0xCA2A, 0xA485, 0xCA2B, + 0xA486, 0xCA2C, 0xA487, 0xCA2D, 0xA488, 0xCA2E, 0xA489, 0xCA2F, + 0xA48A, 0xCA30, 0xA48B, 0xCA31, 0xA48C, 0xCA32, 0xA48D, 0xCA33, + 0xA48E, 0xCA34, 0xA48F, 0xCA35, 0xA490, 0xCA36, 0xA491, 0xCA37, + 0xA492, 0xCA38, 0xA493, 0xCA39, 0xA494, 0xCA3A, 0xA495, 0xCA3B, + 0xA496, 0xCA3C, 0xA497, 0xCA3D, 0xA498, 0xCA3E, 0xA499, 0xCA3F, + 0xA49A, 0xCA40, 0xA49B, 0xCA41, 0xA49C, 0xCA42, 0xA49D, 0xCA43, + 0xA49E, 0xCA44, 0xA49F, 0xCA45, 0xA4A0, 0xCA46, 0xA4A1, 0x3131, + 0xA4A2, 0x3132, 0xA4A3, 0x3133, 0xA4A4, 0x3134, 0xA4A5, 0x3135, + 0xA4A6, 0x3136, 0xA4A7, 0x3137, 0xA4A8, 0x3138, 0xA4A9, 0x3139, + 0xA4AA, 0x313A, 0xA4AB, 0x313B, 0xA4AC, 0x313C, 0xA4AD, 0x313D, + 0xA4AE, 0x313E, 0xA4AF, 0x313F, 0xA4B0, 0x3140, 0xA4B1, 0x3141, + 0xA4B2, 0x3142, 0xA4B3, 0x3143, 0xA4B4, 0x3144, 0xA4B5, 0x3145, + 0xA4B6, 0x3146, 0xA4B7, 0x3147, 0xA4B8, 0x3148, 0xA4B9, 0x3149, + 0xA4BA, 0x314A, 0xA4BB, 0x314B, 0xA4BC, 0x314C, 0xA4BD, 0x314D, + 0xA4BE, 0x314E, 0xA4BF, 0x314F, 0xA4C0, 0x3150, 0xA4C1, 0x3151, + 0xA4C2, 0x3152, 0xA4C3, 0x3153, 0xA4C4, 0x3154, 0xA4C5, 0x3155, + 0xA4C6, 0x3156, 0xA4C7, 0x3157, 0xA4C8, 0x3158, 0xA4C9, 0x3159, + 0xA4CA, 0x315A, 0xA4CB, 0x315B, 0xA4CC, 0x315C, 0xA4CD, 0x315D, + 0xA4CE, 0x315E, 0xA4CF, 0x315F, 0xA4D0, 0x3160, 0xA4D1, 0x3161, + 0xA4D2, 0x3162, 0xA4D3, 0x3163, 0xA4D4, 0x3164, 0xA4D5, 0x3165, + 0xA4D6, 0x3166, 0xA4D7, 0x3167, 0xA4D8, 0x3168, 0xA4D9, 0x3169, + 0xA4DA, 0x316A, 0xA4DB, 0x316B, 0xA4DC, 0x316C, 0xA4DD, 0x316D, + 0xA4DE, 0x316E, 0xA4DF, 0x316F, 0xA4E0, 0x3170, 0xA4E1, 0x3171, + 0xA4E2, 0x3172, 0xA4E3, 0x3173, 0xA4E4, 0x3174, 0xA4E5, 0x3175, + 0xA4E6, 0x3176, 0xA4E7, 0x3177, 0xA4E8, 0x3178, 0xA4E9, 0x3179, + 0xA4EA, 0x317A, 0xA4EB, 0x317B, 0xA4EC, 0x317C, 0xA4ED, 0x317D, + 0xA4EE, 0x317E, 0xA4EF, 0x317F, 0xA4F0, 0x3180, 0xA4F1, 0x3181, + 0xA4F2, 0x3182, 0xA4F3, 0x3183, 0xA4F4, 0x3184, 0xA4F5, 0x3185, + 0xA4F6, 0x3186, 0xA4F7, 0x3187, 0xA4F8, 0x3188, 0xA4F9, 0x3189, + 0xA4FA, 0x318A, 0xA4FB, 0x318B, 0xA4FC, 0x318C, 0xA4FD, 0x318D, + 0xA4FE, 0x318E, 0xA541, 0xCA47, 0xA542, 0xCA48, 0xA543, 0xCA49, + 0xA544, 0xCA4A, 0xA545, 0xCA4B, 0xA546, 0xCA4E, 0xA547, 0xCA4F, + 0xA548, 0xCA51, 0xA549, 0xCA52, 0xA54A, 0xCA53, 0xA54B, 0xCA55, + 0xA54C, 0xCA56, 0xA54D, 0xCA57, 0xA54E, 0xCA58, 0xA54F, 0xCA59, + 0xA550, 0xCA5A, 0xA551, 0xCA5B, 0xA552, 0xCA5E, 0xA553, 0xCA62, + 0xA554, 0xCA63, 0xA555, 0xCA64, 0xA556, 0xCA65, 0xA557, 0xCA66, + 0xA558, 0xCA67, 0xA559, 0xCA69, 0xA55A, 0xCA6A, 0xA561, 0xCA6B, + 0xA562, 0xCA6C, 0xA563, 0xCA6D, 0xA564, 0xCA6E, 0xA565, 0xCA6F, + 0xA566, 0xCA70, 0xA567, 0xCA71, 0xA568, 0xCA72, 0xA569, 0xCA73, + 0xA56A, 0xCA74, 0xA56B, 0xCA75, 0xA56C, 0xCA76, 0xA56D, 0xCA77, + 0xA56E, 0xCA78, 0xA56F, 0xCA79, 0xA570, 0xCA7A, 0xA571, 0xCA7B, + 0xA572, 0xCA7C, 0xA573, 0xCA7E, 0xA574, 0xCA7F, 0xA575, 0xCA80, + 0xA576, 0xCA81, 0xA577, 0xCA82, 0xA578, 0xCA83, 0xA579, 0xCA85, + 0xA57A, 0xCA86, 0xA581, 0xCA87, 0xA582, 0xCA88, 0xA583, 0xCA89, + 0xA584, 0xCA8A, 0xA585, 0xCA8B, 0xA586, 0xCA8C, 0xA587, 0xCA8D, + 0xA588, 0xCA8E, 0xA589, 0xCA8F, 0xA58A, 0xCA90, 0xA58B, 0xCA91, + 0xA58C, 0xCA92, 0xA58D, 0xCA93, 0xA58E, 0xCA94, 0xA58F, 0xCA95, + 0xA590, 0xCA96, 0xA591, 0xCA97, 0xA592, 0xCA99, 0xA593, 0xCA9A, + 0xA594, 0xCA9B, 0xA595, 0xCA9C, 0xA596, 0xCA9D, 0xA597, 0xCA9E, + 0xA598, 0xCA9F, 0xA599, 0xCAA0, 0xA59A, 0xCAA1, 0xA59B, 0xCAA2, + 0xA59C, 0xCAA3, 0xA59D, 0xCAA4, 0xA59E, 0xCAA5, 0xA59F, 0xCAA6, + 0xA5A0, 0xCAA7, 0xA5A1, 0x2170, 0xA5A2, 0x2171, 0xA5A3, 0x2172, + 0xA5A4, 0x2173, 0xA5A5, 0x2174, 0xA5A6, 0x2175, 0xA5A7, 0x2176, + 0xA5A8, 0x2177, 0xA5A9, 0x2178, 0xA5AA, 0x2179, 0xA5B0, 0x2160, + 0xA5B1, 0x2161, 0xA5B2, 0x2162, 0xA5B3, 0x2163, 0xA5B4, 0x2164, + 0xA5B5, 0x2165, 0xA5B6, 0x2166, 0xA5B7, 0x2167, 0xA5B8, 0x2168, + 0xA5B9, 0x2169, 0xA5C1, 0x0391, 0xA5C2, 0x0392, 0xA5C3, 0x0393, + 0xA5C4, 0x0394, 0xA5C5, 0x0395, 0xA5C6, 0x0396, 0xA5C7, 0x0397, + 0xA5C8, 0x0398, 0xA5C9, 0x0399, 0xA5CA, 0x039A, 0xA5CB, 0x039B, + 0xA5CC, 0x039C, 0xA5CD, 0x039D, 0xA5CE, 0x039E, 0xA5CF, 0x039F, + 0xA5D0, 0x03A0, 0xA5D1, 0x03A1, 0xA5D2, 0x03A3, 0xA5D3, 0x03A4, + 0xA5D4, 0x03A5, 0xA5D5, 0x03A6, 0xA5D6, 0x03A7, 0xA5D7, 0x03A8, + 0xA5D8, 0x03A9, 0xA5E1, 0x03B1, 0xA5E2, 0x03B2, 0xA5E3, 0x03B3, + 0xA5E4, 0x03B4, 0xA5E5, 0x03B5, 0xA5E6, 0x03B6, 0xA5E7, 0x03B7, + 0xA5E8, 0x03B8, 0xA5E9, 0x03B9, 0xA5EA, 0x03BA, 0xA5EB, 0x03BB, + 0xA5EC, 0x03BC, 0xA5ED, 0x03BD, 0xA5EE, 0x03BE, 0xA5EF, 0x03BF, + 0xA5F0, 0x03C0, 0xA5F1, 0x03C1, 0xA5F2, 0x03C3, 0xA5F3, 0x03C4, + 0xA5F4, 0x03C5, 0xA5F5, 0x03C6, 0xA5F6, 0x03C7, 0xA5F7, 0x03C8, + 0xA5F8, 0x03C9, 0xA641, 0xCAA8, 0xA642, 0xCAA9, 0xA643, 0xCAAA, + 0xA644, 0xCAAB, 0xA645, 0xCAAC, 0xA646, 0xCAAD, 0xA647, 0xCAAE, + 0xA648, 0xCAAF, 0xA649, 0xCAB0, 0xA64A, 0xCAB1, 0xA64B, 0xCAB2, + 0xA64C, 0xCAB3, 0xA64D, 0xCAB4, 0xA64E, 0xCAB5, 0xA64F, 0xCAB6, + 0xA650, 0xCAB7, 0xA651, 0xCAB8, 0xA652, 0xCAB9, 0xA653, 0xCABA, + 0xA654, 0xCABB, 0xA655, 0xCABE, 0xA656, 0xCABF, 0xA657, 0xCAC1, + 0xA658, 0xCAC2, 0xA659, 0xCAC3, 0xA65A, 0xCAC5, 0xA661, 0xCAC6, + 0xA662, 0xCAC7, 0xA663, 0xCAC8, 0xA664, 0xCAC9, 0xA665, 0xCACA, + 0xA666, 0xCACB, 0xA667, 0xCACE, 0xA668, 0xCAD0, 0xA669, 0xCAD2, + 0xA66A, 0xCAD4, 0xA66B, 0xCAD5, 0xA66C, 0xCAD6, 0xA66D, 0xCAD7, + 0xA66E, 0xCADA, 0xA66F, 0xCADB, 0xA670, 0xCADC, 0xA671, 0xCADD, + 0xA672, 0xCADE, 0xA673, 0xCADF, 0xA674, 0xCAE1, 0xA675, 0xCAE2, + 0xA676, 0xCAE3, 0xA677, 0xCAE4, 0xA678, 0xCAE5, 0xA679, 0xCAE6, + 0xA67A, 0xCAE7, 0xA681, 0xCAE8, 0xA682, 0xCAE9, 0xA683, 0xCAEA, + 0xA684, 0xCAEB, 0xA685, 0xCAED, 0xA686, 0xCAEE, 0xA687, 0xCAEF, + 0xA688, 0xCAF0, 0xA689, 0xCAF1, 0xA68A, 0xCAF2, 0xA68B, 0xCAF3, + 0xA68C, 0xCAF5, 0xA68D, 0xCAF6, 0xA68E, 0xCAF7, 0xA68F, 0xCAF8, + 0xA690, 0xCAF9, 0xA691, 0xCAFA, 0xA692, 0xCAFB, 0xA693, 0xCAFC, + 0xA694, 0xCAFD, 0xA695, 0xCAFE, 0xA696, 0xCAFF, 0xA697, 0xCB00, + 0xA698, 0xCB01, 0xA699, 0xCB02, 0xA69A, 0xCB03, 0xA69B, 0xCB04, + 0xA69C, 0xCB05, 0xA69D, 0xCB06, 0xA69E, 0xCB07, 0xA69F, 0xCB09, + 0xA6A0, 0xCB0A, 0xA6A1, 0x2500, 0xA6A2, 0x2502, 0xA6A3, 0x250C, + 0xA6A4, 0x2510, 0xA6A5, 0x2518, 0xA6A6, 0x2514, 0xA6A7, 0x251C, + 0xA6A8, 0x252C, 0xA6A9, 0x2524, 0xA6AA, 0x2534, 0xA6AB, 0x253C, + 0xA6AC, 0x2501, 0xA6AD, 0x2503, 0xA6AE, 0x250F, 0xA6AF, 0x2513, + 0xA6B0, 0x251B, 0xA6B1, 0x2517, 0xA6B2, 0x2523, 0xA6B3, 0x2533, + 0xA6B4, 0x252B, 0xA6B5, 0x253B, 0xA6B6, 0x254B, 0xA6B7, 0x2520, + 0xA6B8, 0x252F, 0xA6B9, 0x2528, 0xA6BA, 0x2537, 0xA6BB, 0x253F, + 0xA6BC, 0x251D, 0xA6BD, 0x2530, 0xA6BE, 0x2525, 0xA6BF, 0x2538, + 0xA6C0, 0x2542, 0xA6C1, 0x2512, 0xA6C2, 0x2511, 0xA6C3, 0x251A, + 0xA6C4, 0x2519, 0xA6C5, 0x2516, 0xA6C6, 0x2515, 0xA6C7, 0x250E, + 0xA6C8, 0x250D, 0xA6C9, 0x251E, 0xA6CA, 0x251F, 0xA6CB, 0x2521, + 0xA6CC, 0x2522, 0xA6CD, 0x2526, 0xA6CE, 0x2527, 0xA6CF, 0x2529, + 0xA6D0, 0x252A, 0xA6D1, 0x252D, 0xA6D2, 0x252E, 0xA6D3, 0x2531, + 0xA6D4, 0x2532, 0xA6D5, 0x2535, 0xA6D6, 0x2536, 0xA6D7, 0x2539, + 0xA6D8, 0x253A, 0xA6D9, 0x253D, 0xA6DA, 0x253E, 0xA6DB, 0x2540, + 0xA6DC, 0x2541, 0xA6DD, 0x2543, 0xA6DE, 0x2544, 0xA6DF, 0x2545, + 0xA6E0, 0x2546, 0xA6E1, 0x2547, 0xA6E2, 0x2548, 0xA6E3, 0x2549, + 0xA6E4, 0x254A, 0xA741, 0xCB0B, 0xA742, 0xCB0C, 0xA743, 0xCB0D, + 0xA744, 0xCB0E, 0xA745, 0xCB0F, 0xA746, 0xCB11, 0xA747, 0xCB12, + 0xA748, 0xCB13, 0xA749, 0xCB15, 0xA74A, 0xCB16, 0xA74B, 0xCB17, + 0xA74C, 0xCB19, 0xA74D, 0xCB1A, 0xA74E, 0xCB1B, 0xA74F, 0xCB1C, + 0xA750, 0xCB1D, 0xA751, 0xCB1E, 0xA752, 0xCB1F, 0xA753, 0xCB22, + 0xA754, 0xCB23, 0xA755, 0xCB24, 0xA756, 0xCB25, 0xA757, 0xCB26, + 0xA758, 0xCB27, 0xA759, 0xCB28, 0xA75A, 0xCB29, 0xA761, 0xCB2A, + 0xA762, 0xCB2B, 0xA763, 0xCB2C, 0xA764, 0xCB2D, 0xA765, 0xCB2E, + 0xA766, 0xCB2F, 0xA767, 0xCB30, 0xA768, 0xCB31, 0xA769, 0xCB32, + 0xA76A, 0xCB33, 0xA76B, 0xCB34, 0xA76C, 0xCB35, 0xA76D, 0xCB36, + 0xA76E, 0xCB37, 0xA76F, 0xCB38, 0xA770, 0xCB39, 0xA771, 0xCB3A, + 0xA772, 0xCB3B, 0xA773, 0xCB3C, 0xA774, 0xCB3D, 0xA775, 0xCB3E, + 0xA776, 0xCB3F, 0xA777, 0xCB40, 0xA778, 0xCB42, 0xA779, 0xCB43, + 0xA77A, 0xCB44, 0xA781, 0xCB45, 0xA782, 0xCB46, 0xA783, 0xCB47, + 0xA784, 0xCB4A, 0xA785, 0xCB4B, 0xA786, 0xCB4D, 0xA787, 0xCB4E, + 0xA788, 0xCB4F, 0xA789, 0xCB51, 0xA78A, 0xCB52, 0xA78B, 0xCB53, + 0xA78C, 0xCB54, 0xA78D, 0xCB55, 0xA78E, 0xCB56, 0xA78F, 0xCB57, + 0xA790, 0xCB5A, 0xA791, 0xCB5B, 0xA792, 0xCB5C, 0xA793, 0xCB5E, + 0xA794, 0xCB5F, 0xA795, 0xCB60, 0xA796, 0xCB61, 0xA797, 0xCB62, + 0xA798, 0xCB63, 0xA799, 0xCB65, 0xA79A, 0xCB66, 0xA79B, 0xCB67, + 0xA79C, 0xCB68, 0xA79D, 0xCB69, 0xA79E, 0xCB6A, 0xA79F, 0xCB6B, + 0xA7A0, 0xCB6C, 0xA7A1, 0x3395, 0xA7A2, 0x3396, 0xA7A3, 0x3397, + 0xA7A4, 0x2113, 0xA7A5, 0x3398, 0xA7A6, 0x33C4, 0xA7A7, 0x33A3, + 0xA7A8, 0x33A4, 0xA7A9, 0x33A5, 0xA7AA, 0x33A6, 0xA7AB, 0x3399, + 0xA7AC, 0x339A, 0xA7AD, 0x339B, 0xA7AE, 0x339C, 0xA7AF, 0x339D, + 0xA7B0, 0x339E, 0xA7B1, 0x339F, 0xA7B2, 0x33A0, 0xA7B3, 0x33A1, + 0xA7B4, 0x33A2, 0xA7B5, 0x33CA, 0xA7B6, 0x338D, 0xA7B7, 0x338E, + 0xA7B8, 0x338F, 0xA7B9, 0x33CF, 0xA7BA, 0x3388, 0xA7BB, 0x3389, + 0xA7BC, 0x33C8, 0xA7BD, 0x33A7, 0xA7BE, 0x33A8, 0xA7BF, 0x33B0, + 0xA7C0, 0x33B1, 0xA7C1, 0x33B2, 0xA7C2, 0x33B3, 0xA7C3, 0x33B4, + 0xA7C4, 0x33B5, 0xA7C5, 0x33B6, 0xA7C6, 0x33B7, 0xA7C7, 0x33B8, + 0xA7C8, 0x33B9, 0xA7C9, 0x3380, 0xA7CA, 0x3381, 0xA7CB, 0x3382, + 0xA7CC, 0x3383, 0xA7CD, 0x3384, 0xA7CE, 0x33BA, 0xA7CF, 0x33BB, + 0xA7D0, 0x33BC, 0xA7D1, 0x33BD, 0xA7D2, 0x33BE, 0xA7D3, 0x33BF, + 0xA7D4, 0x3390, 0xA7D5, 0x3391, 0xA7D6, 0x3392, 0xA7D7, 0x3393, + 0xA7D8, 0x3394, 0xA7D9, 0x2126, 0xA7DA, 0x33C0, 0xA7DB, 0x33C1, + 0xA7DC, 0x338A, 0xA7DD, 0x338B, 0xA7DE, 0x338C, 0xA7DF, 0x33D6, + 0xA7E0, 0x33C5, 0xA7E1, 0x33AD, 0xA7E2, 0x33AE, 0xA7E3, 0x33AF, + 0xA7E4, 0x33DB, 0xA7E5, 0x33A9, 0xA7E6, 0x33AA, 0xA7E7, 0x33AB, + 0xA7E8, 0x33AC, 0xA7E9, 0x33DD, 0xA7EA, 0x33D0, 0xA7EB, 0x33D3, + 0xA7EC, 0x33C3, 0xA7ED, 0x33C9, 0xA7EE, 0x33DC, 0xA7EF, 0x33C6, + 0xA841, 0xCB6D, 0xA842, 0xCB6E, 0xA843, 0xCB6F, 0xA844, 0xCB70, + 0xA845, 0xCB71, 0xA846, 0xCB72, 0xA847, 0xCB73, 0xA848, 0xCB74, + 0xA849, 0xCB75, 0xA84A, 0xCB76, 0xA84B, 0xCB77, 0xA84C, 0xCB7A, + 0xA84D, 0xCB7B, 0xA84E, 0xCB7C, 0xA84F, 0xCB7D, 0xA850, 0xCB7E, + 0xA851, 0xCB7F, 0xA852, 0xCB80, 0xA853, 0xCB81, 0xA854, 0xCB82, + 0xA855, 0xCB83, 0xA856, 0xCB84, 0xA857, 0xCB85, 0xA858, 0xCB86, + 0xA859, 0xCB87, 0xA85A, 0xCB88, 0xA861, 0xCB89, 0xA862, 0xCB8A, + 0xA863, 0xCB8B, 0xA864, 0xCB8C, 0xA865, 0xCB8D, 0xA866, 0xCB8E, + 0xA867, 0xCB8F, 0xA868, 0xCB90, 0xA869, 0xCB91, 0xA86A, 0xCB92, + 0xA86B, 0xCB93, 0xA86C, 0xCB94, 0xA86D, 0xCB95, 0xA86E, 0xCB96, + 0xA86F, 0xCB97, 0xA870, 0xCB98, 0xA871, 0xCB99, 0xA872, 0xCB9A, + 0xA873, 0xCB9B, 0xA874, 0xCB9D, 0xA875, 0xCB9E, 0xA876, 0xCB9F, + 0xA877, 0xCBA0, 0xA878, 0xCBA1, 0xA879, 0xCBA2, 0xA87A, 0xCBA3, + 0xA881, 0xCBA4, 0xA882, 0xCBA5, 0xA883, 0xCBA6, 0xA884, 0xCBA7, + 0xA885, 0xCBA8, 0xA886, 0xCBA9, 0xA887, 0xCBAA, 0xA888, 0xCBAB, + 0xA889, 0xCBAC, 0xA88A, 0xCBAD, 0xA88B, 0xCBAE, 0xA88C, 0xCBAF, + 0xA88D, 0xCBB0, 0xA88E, 0xCBB1, 0xA88F, 0xCBB2, 0xA890, 0xCBB3, + 0xA891, 0xCBB4, 0xA892, 0xCBB5, 0xA893, 0xCBB6, 0xA894, 0xCBB7, + 0xA895, 0xCBB9, 0xA896, 0xCBBA, 0xA897, 0xCBBB, 0xA898, 0xCBBC, + 0xA899, 0xCBBD, 0xA89A, 0xCBBE, 0xA89B, 0xCBBF, 0xA89C, 0xCBC0, + 0xA89D, 0xCBC1, 0xA89E, 0xCBC2, 0xA89F, 0xCBC3, 0xA8A0, 0xCBC4, + 0xA8A1, 0x00C6, 0xA8A2, 0x00D0, 0xA8A3, 0x00AA, 0xA8A4, 0x0126, + 0xA8A6, 0x0132, 0xA8A8, 0x013F, 0xA8A9, 0x0141, 0xA8AA, 0x00D8, + 0xA8AB, 0x0152, 0xA8AC, 0x00BA, 0xA8AD, 0x00DE, 0xA8AE, 0x0166, + 0xA8AF, 0x014A, 0xA8B1, 0x3260, 0xA8B2, 0x3261, 0xA8B3, 0x3262, + 0xA8B4, 0x3263, 0xA8B5, 0x3264, 0xA8B6, 0x3265, 0xA8B7, 0x3266, + 0xA8B8, 0x3267, 0xA8B9, 0x3268, 0xA8BA, 0x3269, 0xA8BB, 0x326A, + 0xA8BC, 0x326B, 0xA8BD, 0x326C, 0xA8BE, 0x326D, 0xA8BF, 0x326E, + 0xA8C0, 0x326F, 0xA8C1, 0x3270, 0xA8C2, 0x3271, 0xA8C3, 0x3272, + 0xA8C4, 0x3273, 0xA8C5, 0x3274, 0xA8C6, 0x3275, 0xA8C7, 0x3276, + 0xA8C8, 0x3277, 0xA8C9, 0x3278, 0xA8CA, 0x3279, 0xA8CB, 0x327A, + 0xA8CC, 0x327B, 0xA8CD, 0x24D0, 0xA8CE, 0x24D1, 0xA8CF, 0x24D2, + 0xA8D0, 0x24D3, 0xA8D1, 0x24D4, 0xA8D2, 0x24D5, 0xA8D3, 0x24D6, + 0xA8D4, 0x24D7, 0xA8D5, 0x24D8, 0xA8D6, 0x24D9, 0xA8D7, 0x24DA, + 0xA8D8, 0x24DB, 0xA8D9, 0x24DC, 0xA8DA, 0x24DD, 0xA8DB, 0x24DE, + 0xA8DC, 0x24DF, 0xA8DD, 0x24E0, 0xA8DE, 0x24E1, 0xA8DF, 0x24E2, + 0xA8E0, 0x24E3, 0xA8E1, 0x24E4, 0xA8E2, 0x24E5, 0xA8E3, 0x24E6, + 0xA8E4, 0x24E7, 0xA8E5, 0x24E8, 0xA8E6, 0x24E9, 0xA8E7, 0x2460, + 0xA8E8, 0x2461, 0xA8E9, 0x2462, 0xA8EA, 0x2463, 0xA8EB, 0x2464, + 0xA8EC, 0x2465, 0xA8ED, 0x2466, 0xA8EE, 0x2467, 0xA8EF, 0x2468, + 0xA8F0, 0x2469, 0xA8F1, 0x246A, 0xA8F2, 0x246B, 0xA8F3, 0x246C, + 0xA8F4, 0x246D, 0xA8F5, 0x246E, 0xA8F6, 0x00BD, 0xA8F7, 0x2153, + 0xA8F8, 0x2154, 0xA8F9, 0x00BC, 0xA8FA, 0x00BE, 0xA8FB, 0x215B, + 0xA8FC, 0x215C, 0xA8FD, 0x215D, 0xA8FE, 0x215E, 0xA941, 0xCBC5, + 0xA942, 0xCBC6, 0xA943, 0xCBC7, 0xA944, 0xCBC8, 0xA945, 0xCBC9, + 0xA946, 0xCBCA, 0xA947, 0xCBCB, 0xA948, 0xCBCC, 0xA949, 0xCBCD, + 0xA94A, 0xCBCE, 0xA94B, 0xCBCF, 0xA94C, 0xCBD0, 0xA94D, 0xCBD1, + 0xA94E, 0xCBD2, 0xA94F, 0xCBD3, 0xA950, 0xCBD5, 0xA951, 0xCBD6, + 0xA952, 0xCBD7, 0xA953, 0xCBD8, 0xA954, 0xCBD9, 0xA955, 0xCBDA, + 0xA956, 0xCBDB, 0xA957, 0xCBDC, 0xA958, 0xCBDD, 0xA959, 0xCBDE, + 0xA95A, 0xCBDF, 0xA961, 0xCBE0, 0xA962, 0xCBE1, 0xA963, 0xCBE2, + 0xA964, 0xCBE3, 0xA965, 0xCBE5, 0xA966, 0xCBE6, 0xA967, 0xCBE8, + 0xA968, 0xCBEA, 0xA969, 0xCBEB, 0xA96A, 0xCBEC, 0xA96B, 0xCBED, + 0xA96C, 0xCBEE, 0xA96D, 0xCBEF, 0xA96E, 0xCBF0, 0xA96F, 0xCBF1, + 0xA970, 0xCBF2, 0xA971, 0xCBF3, 0xA972, 0xCBF4, 0xA973, 0xCBF5, + 0xA974, 0xCBF6, 0xA975, 0xCBF7, 0xA976, 0xCBF8, 0xA977, 0xCBF9, + 0xA978, 0xCBFA, 0xA979, 0xCBFB, 0xA97A, 0xCBFC, 0xA981, 0xCBFD, + 0xA982, 0xCBFE, 0xA983, 0xCBFF, 0xA984, 0xCC00, 0xA985, 0xCC01, + 0xA986, 0xCC02, 0xA987, 0xCC03, 0xA988, 0xCC04, 0xA989, 0xCC05, + 0xA98A, 0xCC06, 0xA98B, 0xCC07, 0xA98C, 0xCC08, 0xA98D, 0xCC09, + 0xA98E, 0xCC0A, 0xA98F, 0xCC0B, 0xA990, 0xCC0E, 0xA991, 0xCC0F, + 0xA992, 0xCC11, 0xA993, 0xCC12, 0xA994, 0xCC13, 0xA995, 0xCC15, + 0xA996, 0xCC16, 0xA997, 0xCC17, 0xA998, 0xCC18, 0xA999, 0xCC19, + 0xA99A, 0xCC1A, 0xA99B, 0xCC1B, 0xA99C, 0xCC1E, 0xA99D, 0xCC1F, + 0xA99E, 0xCC20, 0xA99F, 0xCC23, 0xA9A0, 0xCC24, 0xA9A1, 0x00E6, + 0xA9A2, 0x0111, 0xA9A3, 0x00F0, 0xA9A4, 0x0127, 0xA9A5, 0x0131, + 0xA9A6, 0x0133, 0xA9A7, 0x0138, 0xA9A8, 0x0140, 0xA9A9, 0x0142, + 0xA9AA, 0x00F8, 0xA9AB, 0x0153, 0xA9AC, 0x00DF, 0xA9AD, 0x00FE, + 0xA9AE, 0x0167, 0xA9AF, 0x014B, 0xA9B0, 0x0149, 0xA9B1, 0x3200, + 0xA9B2, 0x3201, 0xA9B3, 0x3202, 0xA9B4, 0x3203, 0xA9B5, 0x3204, + 0xA9B6, 0x3205, 0xA9B7, 0x3206, 0xA9B8, 0x3207, 0xA9B9, 0x3208, + 0xA9BA, 0x3209, 0xA9BB, 0x320A, 0xA9BC, 0x320B, 0xA9BD, 0x320C, + 0xA9BE, 0x320D, 0xA9BF, 0x320E, 0xA9C0, 0x320F, 0xA9C1, 0x3210, + 0xA9C2, 0x3211, 0xA9C3, 0x3212, 0xA9C4, 0x3213, 0xA9C5, 0x3214, + 0xA9C6, 0x3215, 0xA9C7, 0x3216, 0xA9C8, 0x3217, 0xA9C9, 0x3218, + 0xA9CA, 0x3219, 0xA9CB, 0x321A, 0xA9CC, 0x321B, 0xA9CD, 0x249C, + 0xA9CE, 0x249D, 0xA9CF, 0x249E, 0xA9D0, 0x249F, 0xA9D1, 0x24A0, + 0xA9D2, 0x24A1, 0xA9D3, 0x24A2, 0xA9D4, 0x24A3, 0xA9D5, 0x24A4, + 0xA9D6, 0x24A5, 0xA9D7, 0x24A6, 0xA9D8, 0x24A7, 0xA9D9, 0x24A8, + 0xA9DA, 0x24A9, 0xA9DB, 0x24AA, 0xA9DC, 0x24AB, 0xA9DD, 0x24AC, + 0xA9DE, 0x24AD, 0xA9DF, 0x24AE, 0xA9E0, 0x24AF, 0xA9E1, 0x24B0, + 0xA9E2, 0x24B1, 0xA9E3, 0x24B2, 0xA9E4, 0x24B3, 0xA9E5, 0x24B4, + 0xA9E6, 0x24B5, 0xA9E7, 0x2474, 0xA9E8, 0x2475, 0xA9E9, 0x2476, + 0xA9EA, 0x2477, 0xA9EB, 0x2478, 0xA9EC, 0x2479, 0xA9ED, 0x247A, + 0xA9EE, 0x247B, 0xA9EF, 0x247C, 0xA9F0, 0x247D, 0xA9F1, 0x247E, + 0xA9F2, 0x247F, 0xA9F3, 0x2480, 0xA9F4, 0x2481, 0xA9F5, 0x2482, + 0xA9F6, 0x00B9, 0xA9F7, 0x00B2, 0xA9F8, 0x00B3, 0xA9F9, 0x2074, + 0xA9FA, 0x207F, 0xA9FB, 0x2081, 0xA9FC, 0x2082, 0xA9FD, 0x2083, + 0xA9FE, 0x2084, 0xAA41, 0xCC25, 0xAA42, 0xCC26, 0xAA43, 0xCC2A, + 0xAA44, 0xCC2B, 0xAA45, 0xCC2D, 0xAA46, 0xCC2F, 0xAA47, 0xCC31, + 0xAA48, 0xCC32, 0xAA49, 0xCC33, 0xAA4A, 0xCC34, 0xAA4B, 0xCC35, + 0xAA4C, 0xCC36, 0xAA4D, 0xCC37, 0xAA4E, 0xCC3A, 0xAA4F, 0xCC3F, + 0xAA50, 0xCC40, 0xAA51, 0xCC41, 0xAA52, 0xCC42, 0xAA53, 0xCC43, + 0xAA54, 0xCC46, 0xAA55, 0xCC47, 0xAA56, 0xCC49, 0xAA57, 0xCC4A, + 0xAA58, 0xCC4B, 0xAA59, 0xCC4D, 0xAA5A, 0xCC4E, 0xAA61, 0xCC4F, + 0xAA62, 0xCC50, 0xAA63, 0xCC51, 0xAA64, 0xCC52, 0xAA65, 0xCC53, + 0xAA66, 0xCC56, 0xAA67, 0xCC5A, 0xAA68, 0xCC5B, 0xAA69, 0xCC5C, + 0xAA6A, 0xCC5D, 0xAA6B, 0xCC5E, 0xAA6C, 0xCC5F, 0xAA6D, 0xCC61, + 0xAA6E, 0xCC62, 0xAA6F, 0xCC63, 0xAA70, 0xCC65, 0xAA71, 0xCC67, + 0xAA72, 0xCC69, 0xAA73, 0xCC6A, 0xAA74, 0xCC6B, 0xAA75, 0xCC6C, + 0xAA76, 0xCC6D, 0xAA77, 0xCC6E, 0xAA78, 0xCC6F, 0xAA79, 0xCC71, + 0xAA7A, 0xCC72, 0xAA81, 0xCC73, 0xAA82, 0xCC74, 0xAA83, 0xCC76, + 0xAA84, 0xCC77, 0xAA85, 0xCC78, 0xAA86, 0xCC79, 0xAA87, 0xCC7A, + 0xAA88, 0xCC7B, 0xAA89, 0xCC7C, 0xAA8A, 0xCC7D, 0xAA8B, 0xCC7E, + 0xAA8C, 0xCC7F, 0xAA8D, 0xCC80, 0xAA8E, 0xCC81, 0xAA8F, 0xCC82, + 0xAA90, 0xCC83, 0xAA91, 0xCC84, 0xAA92, 0xCC85, 0xAA93, 0xCC86, + 0xAA94, 0xCC87, 0xAA95, 0xCC88, 0xAA96, 0xCC89, 0xAA97, 0xCC8A, + 0xAA98, 0xCC8B, 0xAA99, 0xCC8C, 0xAA9A, 0xCC8D, 0xAA9B, 0xCC8E, + 0xAA9C, 0xCC8F, 0xAA9D, 0xCC90, 0xAA9E, 0xCC91, 0xAA9F, 0xCC92, + 0xAAA0, 0xCC93, 0xAAA1, 0x3041, 0xAAA2, 0x3042, 0xAAA3, 0x3043, + 0xAAA4, 0x3044, 0xAAA5, 0x3045, 0xAAA6, 0x3046, 0xAAA7, 0x3047, + 0xAAA8, 0x3048, 0xAAA9, 0x3049, 0xAAAA, 0x304A, 0xAAAB, 0x304B, + 0xAAAC, 0x304C, 0xAAAD, 0x304D, 0xAAAE, 0x304E, 0xAAAF, 0x304F, + 0xAAB0, 0x3050, 0xAAB1, 0x3051, 0xAAB2, 0x3052, 0xAAB3, 0x3053, + 0xAAB4, 0x3054, 0xAAB5, 0x3055, 0xAAB6, 0x3056, 0xAAB7, 0x3057, + 0xAAB8, 0x3058, 0xAAB9, 0x3059, 0xAABA, 0x305A, 0xAABB, 0x305B, + 0xAABC, 0x305C, 0xAABD, 0x305D, 0xAABE, 0x305E, 0xAABF, 0x305F, + 0xAAC0, 0x3060, 0xAAC1, 0x3061, 0xAAC2, 0x3062, 0xAAC3, 0x3063, + 0xAAC4, 0x3064, 0xAAC5, 0x3065, 0xAAC6, 0x3066, 0xAAC7, 0x3067, + 0xAAC8, 0x3068, 0xAAC9, 0x3069, 0xAACA, 0x306A, 0xAACB, 0x306B, + 0xAACC, 0x306C, 0xAACD, 0x306D, 0xAACE, 0x306E, 0xAACF, 0x306F, + 0xAAD0, 0x3070, 0xAAD1, 0x3071, 0xAAD2, 0x3072, 0xAAD3, 0x3073, + 0xAAD4, 0x3074, 0xAAD5, 0x3075, 0xAAD6, 0x3076, 0xAAD7, 0x3077, + 0xAAD8, 0x3078, 0xAAD9, 0x3079, 0xAADA, 0x307A, 0xAADB, 0x307B, + 0xAADC, 0x307C, 0xAADD, 0x307D, 0xAADE, 0x307E, 0xAADF, 0x307F, + 0xAAE0, 0x3080, 0xAAE1, 0x3081, 0xAAE2, 0x3082, 0xAAE3, 0x3083, + 0xAAE4, 0x3084, 0xAAE5, 0x3085, 0xAAE6, 0x3086, 0xAAE7, 0x3087, + 0xAAE8, 0x3088, 0xAAE9, 0x3089, 0xAAEA, 0x308A, 0xAAEB, 0x308B, + 0xAAEC, 0x308C, 0xAAED, 0x308D, 0xAAEE, 0x308E, 0xAAEF, 0x308F, + 0xAAF0, 0x3090, 0xAAF1, 0x3091, 0xAAF2, 0x3092, 0xAAF3, 0x3093, + 0xAB41, 0xCC94, 0xAB42, 0xCC95, 0xAB43, 0xCC96, 0xAB44, 0xCC97, + 0xAB45, 0xCC9A, 0xAB46, 0xCC9B, 0xAB47, 0xCC9D, 0xAB48, 0xCC9E, + 0xAB49, 0xCC9F, 0xAB4A, 0xCCA1, 0xAB4B, 0xCCA2, 0xAB4C, 0xCCA3, + 0xAB4D, 0xCCA4, 0xAB4E, 0xCCA5, 0xAB4F, 0xCCA6, 0xAB50, 0xCCA7, + 0xAB51, 0xCCAA, 0xAB52, 0xCCAE, 0xAB53, 0xCCAF, 0xAB54, 0xCCB0, + 0xAB55, 0xCCB1, 0xAB56, 0xCCB2, 0xAB57, 0xCCB3, 0xAB58, 0xCCB6, + 0xAB59, 0xCCB7, 0xAB5A, 0xCCB9, 0xAB61, 0xCCBA, 0xAB62, 0xCCBB, + 0xAB63, 0xCCBD, 0xAB64, 0xCCBE, 0xAB65, 0xCCBF, 0xAB66, 0xCCC0, + 0xAB67, 0xCCC1, 0xAB68, 0xCCC2, 0xAB69, 0xCCC3, 0xAB6A, 0xCCC6, + 0xAB6B, 0xCCC8, 0xAB6C, 0xCCCA, 0xAB6D, 0xCCCB, 0xAB6E, 0xCCCC, + 0xAB6F, 0xCCCD, 0xAB70, 0xCCCE, 0xAB71, 0xCCCF, 0xAB72, 0xCCD1, + 0xAB73, 0xCCD2, 0xAB74, 0xCCD3, 0xAB75, 0xCCD5, 0xAB76, 0xCCD6, + 0xAB77, 0xCCD7, 0xAB78, 0xCCD8, 0xAB79, 0xCCD9, 0xAB7A, 0xCCDA, + 0xAB81, 0xCCDB, 0xAB82, 0xCCDC, 0xAB83, 0xCCDD, 0xAB84, 0xCCDE, + 0xAB85, 0xCCDF, 0xAB86, 0xCCE0, 0xAB87, 0xCCE1, 0xAB88, 0xCCE2, + 0xAB89, 0xCCE3, 0xAB8A, 0xCCE5, 0xAB8B, 0xCCE6, 0xAB8C, 0xCCE7, + 0xAB8D, 0xCCE8, 0xAB8E, 0xCCE9, 0xAB8F, 0xCCEA, 0xAB90, 0xCCEB, + 0xAB91, 0xCCED, 0xAB92, 0xCCEE, 0xAB93, 0xCCEF, 0xAB94, 0xCCF1, + 0xAB95, 0xCCF2, 0xAB96, 0xCCF3, 0xAB97, 0xCCF4, 0xAB98, 0xCCF5, + 0xAB99, 0xCCF6, 0xAB9A, 0xCCF7, 0xAB9B, 0xCCF8, 0xAB9C, 0xCCF9, + 0xAB9D, 0xCCFA, 0xAB9E, 0xCCFB, 0xAB9F, 0xCCFC, 0xABA0, 0xCCFD, + 0xABA1, 0x30A1, 0xABA2, 0x30A2, 0xABA3, 0x30A3, 0xABA4, 0x30A4, + 0xABA5, 0x30A5, 0xABA6, 0x30A6, 0xABA7, 0x30A7, 0xABA8, 0x30A8, + 0xABA9, 0x30A9, 0xABAA, 0x30AA, 0xABAB, 0x30AB, 0xABAC, 0x30AC, + 0xABAD, 0x30AD, 0xABAE, 0x30AE, 0xABAF, 0x30AF, 0xABB0, 0x30B0, + 0xABB1, 0x30B1, 0xABB2, 0x30B2, 0xABB3, 0x30B3, 0xABB4, 0x30B4, + 0xABB5, 0x30B5, 0xABB6, 0x30B6, 0xABB7, 0x30B7, 0xABB8, 0x30B8, + 0xABB9, 0x30B9, 0xABBA, 0x30BA, 0xABBB, 0x30BB, 0xABBC, 0x30BC, + 0xABBD, 0x30BD, 0xABBE, 0x30BE, 0xABBF, 0x30BF, 0xABC0, 0x30C0, + 0xABC1, 0x30C1, 0xABC2, 0x30C2, 0xABC3, 0x30C3, 0xABC4, 0x30C4, + 0xABC5, 0x30C5, 0xABC6, 0x30C6, 0xABC7, 0x30C7, 0xABC8, 0x30C8, + 0xABC9, 0x30C9, 0xABCA, 0x30CA, 0xABCB, 0x30CB, 0xABCC, 0x30CC, + 0xABCD, 0x30CD, 0xABCE, 0x30CE, 0xABCF, 0x30CF, 0xABD0, 0x30D0, + 0xABD1, 0x30D1, 0xABD2, 0x30D2, 0xABD3, 0x30D3, 0xABD4, 0x30D4, + 0xABD5, 0x30D5, 0xABD6, 0x30D6, 0xABD7, 0x30D7, 0xABD8, 0x30D8, + 0xABD9, 0x30D9, 0xABDA, 0x30DA, 0xABDB, 0x30DB, 0xABDC, 0x30DC, + 0xABDD, 0x30DD, 0xABDE, 0x30DE, 0xABDF, 0x30DF, 0xABE0, 0x30E0, + 0xABE1, 0x30E1, 0xABE2, 0x30E2, 0xABE3, 0x30E3, 0xABE4, 0x30E4, + 0xABE5, 0x30E5, 0xABE6, 0x30E6, 0xABE7, 0x30E7, 0xABE8, 0x30E8, + 0xABE9, 0x30E9, 0xABEA, 0x30EA, 0xABEB, 0x30EB, 0xABEC, 0x30EC, + 0xABED, 0x30ED, 0xABEE, 0x30EE, 0xABEF, 0x30EF, 0xABF0, 0x30F0, + 0xABF1, 0x30F1, 0xABF2, 0x30F2, 0xABF3, 0x30F3, 0xABF4, 0x30F4, + 0xABF5, 0x30F5, 0xABF6, 0x30F6, 0xAC41, 0xCCFE, 0xAC42, 0xCCFF, + 0xAC43, 0xCD00, 0xAC44, 0xCD02, 0xAC45, 0xCD03, 0xAC46, 0xCD04, + 0xAC47, 0xCD05, 0xAC48, 0xCD06, 0xAC49, 0xCD07, 0xAC4A, 0xCD0A, + 0xAC4B, 0xCD0B, 0xAC4C, 0xCD0D, 0xAC4D, 0xCD0E, 0xAC4E, 0xCD0F, + 0xAC4F, 0xCD11, 0xAC50, 0xCD12, 0xAC51, 0xCD13, 0xAC52, 0xCD14, + 0xAC53, 0xCD15, 0xAC54, 0xCD16, 0xAC55, 0xCD17, 0xAC56, 0xCD1A, + 0xAC57, 0xCD1C, 0xAC58, 0xCD1E, 0xAC59, 0xCD1F, 0xAC5A, 0xCD20, + 0xAC61, 0xCD21, 0xAC62, 0xCD22, 0xAC63, 0xCD23, 0xAC64, 0xCD25, + 0xAC65, 0xCD26, 0xAC66, 0xCD27, 0xAC67, 0xCD29, 0xAC68, 0xCD2A, + 0xAC69, 0xCD2B, 0xAC6A, 0xCD2D, 0xAC6B, 0xCD2E, 0xAC6C, 0xCD2F, + 0xAC6D, 0xCD30, 0xAC6E, 0xCD31, 0xAC6F, 0xCD32, 0xAC70, 0xCD33, + 0xAC71, 0xCD34, 0xAC72, 0xCD35, 0xAC73, 0xCD36, 0xAC74, 0xCD37, + 0xAC75, 0xCD38, 0xAC76, 0xCD3A, 0xAC77, 0xCD3B, 0xAC78, 0xCD3C, + 0xAC79, 0xCD3D, 0xAC7A, 0xCD3E, 0xAC81, 0xCD3F, 0xAC82, 0xCD40, + 0xAC83, 0xCD41, 0xAC84, 0xCD42, 0xAC85, 0xCD43, 0xAC86, 0xCD44, + 0xAC87, 0xCD45, 0xAC88, 0xCD46, 0xAC89, 0xCD47, 0xAC8A, 0xCD48, + 0xAC8B, 0xCD49, 0xAC8C, 0xCD4A, 0xAC8D, 0xCD4B, 0xAC8E, 0xCD4C, + 0xAC8F, 0xCD4D, 0xAC90, 0xCD4E, 0xAC91, 0xCD4F, 0xAC92, 0xCD50, + 0xAC93, 0xCD51, 0xAC94, 0xCD52, 0xAC95, 0xCD53, 0xAC96, 0xCD54, + 0xAC97, 0xCD55, 0xAC98, 0xCD56, 0xAC99, 0xCD57, 0xAC9A, 0xCD58, + 0xAC9B, 0xCD59, 0xAC9C, 0xCD5A, 0xAC9D, 0xCD5B, 0xAC9E, 0xCD5D, + 0xAC9F, 0xCD5E, 0xACA0, 0xCD5F, 0xACA1, 0x0410, 0xACA2, 0x0411, + 0xACA3, 0x0412, 0xACA4, 0x0413, 0xACA5, 0x0414, 0xACA6, 0x0415, + 0xACA7, 0x0401, 0xACA8, 0x0416, 0xACA9, 0x0417, 0xACAA, 0x0418, + 0xACAB, 0x0419, 0xACAC, 0x041A, 0xACAD, 0x041B, 0xACAE, 0x041C, + 0xACAF, 0x041D, 0xACB0, 0x041E, 0xACB1, 0x041F, 0xACB2, 0x0420, + 0xACB3, 0x0421, 0xACB4, 0x0422, 0xACB5, 0x0423, 0xACB6, 0x0424, + 0xACB7, 0x0425, 0xACB8, 0x0426, 0xACB9, 0x0427, 0xACBA, 0x0428, + 0xACBB, 0x0429, 0xACBC, 0x042A, 0xACBD, 0x042B, 0xACBE, 0x042C, + 0xACBF, 0x042D, 0xACC0, 0x042E, 0xACC1, 0x042F, 0xACD1, 0x0430, + 0xACD2, 0x0431, 0xACD3, 0x0432, 0xACD4, 0x0433, 0xACD5, 0x0434, + 0xACD6, 0x0435, 0xACD7, 0x0451, 0xACD8, 0x0436, 0xACD9, 0x0437, + 0xACDA, 0x0438, 0xACDB, 0x0439, 0xACDC, 0x043A, 0xACDD, 0x043B, + 0xACDE, 0x043C, 0xACDF, 0x043D, 0xACE0, 0x043E, 0xACE1, 0x043F, + 0xACE2, 0x0440, 0xACE3, 0x0441, 0xACE4, 0x0442, 0xACE5, 0x0443, + 0xACE6, 0x0444, 0xACE7, 0x0445, 0xACE8, 0x0446, 0xACE9, 0x0447, + 0xACEA, 0x0448, 0xACEB, 0x0449, 0xACEC, 0x044A, 0xACED, 0x044B, + 0xACEE, 0x044C, 0xACEF, 0x044D, 0xACF0, 0x044E, 0xACF1, 0x044F, + 0xAD41, 0xCD61, 0xAD42, 0xCD62, 0xAD43, 0xCD63, 0xAD44, 0xCD65, + 0xAD45, 0xCD66, 0xAD46, 0xCD67, 0xAD47, 0xCD68, 0xAD48, 0xCD69, + 0xAD49, 0xCD6A, 0xAD4A, 0xCD6B, 0xAD4B, 0xCD6E, 0xAD4C, 0xCD70, + 0xAD4D, 0xCD72, 0xAD4E, 0xCD73, 0xAD4F, 0xCD74, 0xAD50, 0xCD75, + 0xAD51, 0xCD76, 0xAD52, 0xCD77, 0xAD53, 0xCD79, 0xAD54, 0xCD7A, + 0xAD55, 0xCD7B, 0xAD56, 0xCD7C, 0xAD57, 0xCD7D, 0xAD58, 0xCD7E, + 0xAD59, 0xCD7F, 0xAD5A, 0xCD80, 0xAD61, 0xCD81, 0xAD62, 0xCD82, + 0xAD63, 0xCD83, 0xAD64, 0xCD84, 0xAD65, 0xCD85, 0xAD66, 0xCD86, + 0xAD67, 0xCD87, 0xAD68, 0xCD89, 0xAD69, 0xCD8A, 0xAD6A, 0xCD8B, + 0xAD6B, 0xCD8C, 0xAD6C, 0xCD8D, 0xAD6D, 0xCD8E, 0xAD6E, 0xCD8F, + 0xAD6F, 0xCD90, 0xAD70, 0xCD91, 0xAD71, 0xCD92, 0xAD72, 0xCD93, + 0xAD73, 0xCD96, 0xAD74, 0xCD97, 0xAD75, 0xCD99, 0xAD76, 0xCD9A, + 0xAD77, 0xCD9B, 0xAD78, 0xCD9D, 0xAD79, 0xCD9E, 0xAD7A, 0xCD9F, + 0xAD81, 0xCDA0, 0xAD82, 0xCDA1, 0xAD83, 0xCDA2, 0xAD84, 0xCDA3, + 0xAD85, 0xCDA6, 0xAD86, 0xCDA8, 0xAD87, 0xCDAA, 0xAD88, 0xCDAB, + 0xAD89, 0xCDAC, 0xAD8A, 0xCDAD, 0xAD8B, 0xCDAE, 0xAD8C, 0xCDAF, + 0xAD8D, 0xCDB1, 0xAD8E, 0xCDB2, 0xAD8F, 0xCDB3, 0xAD90, 0xCDB4, + 0xAD91, 0xCDB5, 0xAD92, 0xCDB6, 0xAD93, 0xCDB7, 0xAD94, 0xCDB8, + 0xAD95, 0xCDB9, 0xAD96, 0xCDBA, 0xAD97, 0xCDBB, 0xAD98, 0xCDBC, + 0xAD99, 0xCDBD, 0xAD9A, 0xCDBE, 0xAD9B, 0xCDBF, 0xAD9C, 0xCDC0, + 0xAD9D, 0xCDC1, 0xAD9E, 0xCDC2, 0xAD9F, 0xCDC3, 0xADA0, 0xCDC5, + 0xAE41, 0xCDC6, 0xAE42, 0xCDC7, 0xAE43, 0xCDC8, 0xAE44, 0xCDC9, + 0xAE45, 0xCDCA, 0xAE46, 0xCDCB, 0xAE47, 0xCDCD, 0xAE48, 0xCDCE, + 0xAE49, 0xCDCF, 0xAE4A, 0xCDD1, 0xAE4B, 0xCDD2, 0xAE4C, 0xCDD3, + 0xAE4D, 0xCDD4, 0xAE4E, 0xCDD5, 0xAE4F, 0xCDD6, 0xAE50, 0xCDD7, + 0xAE51, 0xCDD8, 0xAE52, 0xCDD9, 0xAE53, 0xCDDA, 0xAE54, 0xCDDB, + 0xAE55, 0xCDDC, 0xAE56, 0xCDDD, 0xAE57, 0xCDDE, 0xAE58, 0xCDDF, + 0xAE59, 0xCDE0, 0xAE5A, 0xCDE1, 0xAE61, 0xCDE2, 0xAE62, 0xCDE3, + 0xAE63, 0xCDE4, 0xAE64, 0xCDE5, 0xAE65, 0xCDE6, 0xAE66, 0xCDE7, + 0xAE67, 0xCDE9, 0xAE68, 0xCDEA, 0xAE69, 0xCDEB, 0xAE6A, 0xCDED, + 0xAE6B, 0xCDEE, 0xAE6C, 0xCDEF, 0xAE6D, 0xCDF1, 0xAE6E, 0xCDF2, + 0xAE6F, 0xCDF3, 0xAE70, 0xCDF4, 0xAE71, 0xCDF5, 0xAE72, 0xCDF6, + 0xAE73, 0xCDF7, 0xAE74, 0xCDFA, 0xAE75, 0xCDFC, 0xAE76, 0xCDFE, + 0xAE77, 0xCDFF, 0xAE78, 0xCE00, 0xAE79, 0xCE01, 0xAE7A, 0xCE02, + 0xAE81, 0xCE03, 0xAE82, 0xCE05, 0xAE83, 0xCE06, 0xAE84, 0xCE07, + 0xAE85, 0xCE09, 0xAE86, 0xCE0A, 0xAE87, 0xCE0B, 0xAE88, 0xCE0D, + 0xAE89, 0xCE0E, 0xAE8A, 0xCE0F, 0xAE8B, 0xCE10, 0xAE8C, 0xCE11, + 0xAE8D, 0xCE12, 0xAE8E, 0xCE13, 0xAE8F, 0xCE15, 0xAE90, 0xCE16, + 0xAE91, 0xCE17, 0xAE92, 0xCE18, 0xAE93, 0xCE1A, 0xAE94, 0xCE1B, + 0xAE95, 0xCE1C, 0xAE96, 0xCE1D, 0xAE97, 0xCE1E, 0xAE98, 0xCE1F, + 0xAE99, 0xCE22, 0xAE9A, 0xCE23, 0xAE9B, 0xCE25, 0xAE9C, 0xCE26, + 0xAE9D, 0xCE27, 0xAE9E, 0xCE29, 0xAE9F, 0xCE2A, 0xAEA0, 0xCE2B, + 0xAF41, 0xCE2C, 0xAF42, 0xCE2D, 0xAF43, 0xCE2E, 0xAF44, 0xCE2F, + 0xAF45, 0xCE32, 0xAF46, 0xCE34, 0xAF47, 0xCE36, 0xAF48, 0xCE37, + 0xAF49, 0xCE38, 0xAF4A, 0xCE39, 0xAF4B, 0xCE3A, 0xAF4C, 0xCE3B, + 0xAF4D, 0xCE3C, 0xAF4E, 0xCE3D, 0xAF4F, 0xCE3E, 0xAF50, 0xCE3F, + 0xAF51, 0xCE40, 0xAF52, 0xCE41, 0xAF53, 0xCE42, 0xAF54, 0xCE43, + 0xAF55, 0xCE44, 0xAF56, 0xCE45, 0xAF57, 0xCE46, 0xAF58, 0xCE47, + 0xAF59, 0xCE48, 0xAF5A, 0xCE49, 0xAF61, 0xCE4A, 0xAF62, 0xCE4B, + 0xAF63, 0xCE4C, 0xAF64, 0xCE4D, 0xAF65, 0xCE4E, 0xAF66, 0xCE4F, + 0xAF67, 0xCE50, 0xAF68, 0xCE51, 0xAF69, 0xCE52, 0xAF6A, 0xCE53, + 0xAF6B, 0xCE54, 0xAF6C, 0xCE55, 0xAF6D, 0xCE56, 0xAF6E, 0xCE57, + 0xAF6F, 0xCE5A, 0xAF70, 0xCE5B, 0xAF71, 0xCE5D, 0xAF72, 0xCE5E, + 0xAF73, 0xCE62, 0xAF74, 0xCE63, 0xAF75, 0xCE64, 0xAF76, 0xCE65, + 0xAF77, 0xCE66, 0xAF78, 0xCE67, 0xAF79, 0xCE6A, 0xAF7A, 0xCE6C, + 0xAF81, 0xCE6E, 0xAF82, 0xCE6F, 0xAF83, 0xCE70, 0xAF84, 0xCE71, + 0xAF85, 0xCE72, 0xAF86, 0xCE73, 0xAF87, 0xCE76, 0xAF88, 0xCE77, + 0xAF89, 0xCE79, 0xAF8A, 0xCE7A, 0xAF8B, 0xCE7B, 0xAF8C, 0xCE7D, + 0xAF8D, 0xCE7E, 0xAF8E, 0xCE7F, 0xAF8F, 0xCE80, 0xAF90, 0xCE81, + 0xAF91, 0xCE82, 0xAF92, 0xCE83, 0xAF93, 0xCE86, 0xAF94, 0xCE88, + 0xAF95, 0xCE8A, 0xAF96, 0xCE8B, 0xAF97, 0xCE8C, 0xAF98, 0xCE8D, + 0xAF99, 0xCE8E, 0xAF9A, 0xCE8F, 0xAF9B, 0xCE92, 0xAF9C, 0xCE93, + 0xAF9D, 0xCE95, 0xAF9E, 0xCE96, 0xAF9F, 0xCE97, 0xAFA0, 0xCE99, + 0xB041, 0xCE9A, 0xB042, 0xCE9B, 0xB043, 0xCE9C, 0xB044, 0xCE9D, + 0xB045, 0xCE9E, 0xB046, 0xCE9F, 0xB047, 0xCEA2, 0xB048, 0xCEA6, + 0xB049, 0xCEA7, 0xB04A, 0xCEA8, 0xB04B, 0xCEA9, 0xB04C, 0xCEAA, + 0xB04D, 0xCEAB, 0xB04E, 0xCEAE, 0xB04F, 0xCEAF, 0xB050, 0xCEB0, + 0xB051, 0xCEB1, 0xB052, 0xCEB2, 0xB053, 0xCEB3, 0xB054, 0xCEB4, + 0xB055, 0xCEB5, 0xB056, 0xCEB6, 0xB057, 0xCEB7, 0xB058, 0xCEB8, + 0xB059, 0xCEB9, 0xB05A, 0xCEBA, 0xB061, 0xCEBB, 0xB062, 0xCEBC, + 0xB063, 0xCEBD, 0xB064, 0xCEBE, 0xB065, 0xCEBF, 0xB066, 0xCEC0, + 0xB067, 0xCEC2, 0xB068, 0xCEC3, 0xB069, 0xCEC4, 0xB06A, 0xCEC5, + 0xB06B, 0xCEC6, 0xB06C, 0xCEC7, 0xB06D, 0xCEC8, 0xB06E, 0xCEC9, + 0xB06F, 0xCECA, 0xB070, 0xCECB, 0xB071, 0xCECC, 0xB072, 0xCECD, + 0xB073, 0xCECE, 0xB074, 0xCECF, 0xB075, 0xCED0, 0xB076, 0xCED1, + 0xB077, 0xCED2, 0xB078, 0xCED3, 0xB079, 0xCED4, 0xB07A, 0xCED5, + 0xB081, 0xCED6, 0xB082, 0xCED7, 0xB083, 0xCED8, 0xB084, 0xCED9, + 0xB085, 0xCEDA, 0xB086, 0xCEDB, 0xB087, 0xCEDC, 0xB088, 0xCEDD, + 0xB089, 0xCEDE, 0xB08A, 0xCEDF, 0xB08B, 0xCEE0, 0xB08C, 0xCEE1, + 0xB08D, 0xCEE2, 0xB08E, 0xCEE3, 0xB08F, 0xCEE6, 0xB090, 0xCEE7, + 0xB091, 0xCEE9, 0xB092, 0xCEEA, 0xB093, 0xCEED, 0xB094, 0xCEEE, + 0xB095, 0xCEEF, 0xB096, 0xCEF0, 0xB097, 0xCEF1, 0xB098, 0xCEF2, + 0xB099, 0xCEF3, 0xB09A, 0xCEF6, 0xB09B, 0xCEFA, 0xB09C, 0xCEFB, + 0xB09D, 0xCEFC, 0xB09E, 0xCEFD, 0xB09F, 0xCEFE, 0xB0A0, 0xCEFF, + 0xB0A1, 0xAC00, 0xB0A2, 0xAC01, 0xB0A3, 0xAC04, 0xB0A4, 0xAC07, + 0xB0A5, 0xAC08, 0xB0A6, 0xAC09, 0xB0A7, 0xAC0A, 0xB0A8, 0xAC10, + 0xB0A9, 0xAC11, 0xB0AA, 0xAC12, 0xB0AB, 0xAC13, 0xB0AC, 0xAC14, + 0xB0AD, 0xAC15, 0xB0AE, 0xAC16, 0xB0AF, 0xAC17, 0xB0B0, 0xAC19, + 0xB0B1, 0xAC1A, 0xB0B2, 0xAC1B, 0xB0B3, 0xAC1C, 0xB0B4, 0xAC1D, + 0xB0B5, 0xAC20, 0xB0B6, 0xAC24, 0xB0B7, 0xAC2C, 0xB0B8, 0xAC2D, + 0xB0B9, 0xAC2F, 0xB0BA, 0xAC30, 0xB0BB, 0xAC31, 0xB0BC, 0xAC38, + 0xB0BD, 0xAC39, 0xB0BE, 0xAC3C, 0xB0BF, 0xAC40, 0xB0C0, 0xAC4B, + 0xB0C1, 0xAC4D, 0xB0C2, 0xAC54, 0xB0C3, 0xAC58, 0xB0C4, 0xAC5C, + 0xB0C5, 0xAC70, 0xB0C6, 0xAC71, 0xB0C7, 0xAC74, 0xB0C8, 0xAC77, + 0xB0C9, 0xAC78, 0xB0CA, 0xAC7A, 0xB0CB, 0xAC80, 0xB0CC, 0xAC81, + 0xB0CD, 0xAC83, 0xB0CE, 0xAC84, 0xB0CF, 0xAC85, 0xB0D0, 0xAC86, + 0xB0D1, 0xAC89, 0xB0D2, 0xAC8A, 0xB0D3, 0xAC8B, 0xB0D4, 0xAC8C, + 0xB0D5, 0xAC90, 0xB0D6, 0xAC94, 0xB0D7, 0xAC9C, 0xB0D8, 0xAC9D, + 0xB0D9, 0xAC9F, 0xB0DA, 0xACA0, 0xB0DB, 0xACA1, 0xB0DC, 0xACA8, + 0xB0DD, 0xACA9, 0xB0DE, 0xACAA, 0xB0DF, 0xACAC, 0xB0E0, 0xACAF, + 0xB0E1, 0xACB0, 0xB0E2, 0xACB8, 0xB0E3, 0xACB9, 0xB0E4, 0xACBB, + 0xB0E5, 0xACBC, 0xB0E6, 0xACBD, 0xB0E7, 0xACC1, 0xB0E8, 0xACC4, + 0xB0E9, 0xACC8, 0xB0EA, 0xACCC, 0xB0EB, 0xACD5, 0xB0EC, 0xACD7, + 0xB0ED, 0xACE0, 0xB0EE, 0xACE1, 0xB0EF, 0xACE4, 0xB0F0, 0xACE7, + 0xB0F1, 0xACE8, 0xB0F2, 0xACEA, 0xB0F3, 0xACEC, 0xB0F4, 0xACEF, + 0xB0F5, 0xACF0, 0xB0F6, 0xACF1, 0xB0F7, 0xACF3, 0xB0F8, 0xACF5, + 0xB0F9, 0xACF6, 0xB0FA, 0xACFC, 0xB0FB, 0xACFD, 0xB0FC, 0xAD00, + 0xB0FD, 0xAD04, 0xB0FE, 0xAD06, 0xB141, 0xCF02, 0xB142, 0xCF03, + 0xB143, 0xCF05, 0xB144, 0xCF06, 0xB145, 0xCF07, 0xB146, 0xCF09, + 0xB147, 0xCF0A, 0xB148, 0xCF0B, 0xB149, 0xCF0C, 0xB14A, 0xCF0D, + 0xB14B, 0xCF0E, 0xB14C, 0xCF0F, 0xB14D, 0xCF12, 0xB14E, 0xCF14, + 0xB14F, 0xCF16, 0xB150, 0xCF17, 0xB151, 0xCF18, 0xB152, 0xCF19, + 0xB153, 0xCF1A, 0xB154, 0xCF1B, 0xB155, 0xCF1D, 0xB156, 0xCF1E, + 0xB157, 0xCF1F, 0xB158, 0xCF21, 0xB159, 0xCF22, 0xB15A, 0xCF23, + 0xB161, 0xCF25, 0xB162, 0xCF26, 0xB163, 0xCF27, 0xB164, 0xCF28, + 0xB165, 0xCF29, 0xB166, 0xCF2A, 0xB167, 0xCF2B, 0xB168, 0xCF2E, + 0xB169, 0xCF32, 0xB16A, 0xCF33, 0xB16B, 0xCF34, 0xB16C, 0xCF35, + 0xB16D, 0xCF36, 0xB16E, 0xCF37, 0xB16F, 0xCF39, 0xB170, 0xCF3A, + 0xB171, 0xCF3B, 0xB172, 0xCF3C, 0xB173, 0xCF3D, 0xB174, 0xCF3E, + 0xB175, 0xCF3F, 0xB176, 0xCF40, 0xB177, 0xCF41, 0xB178, 0xCF42, + 0xB179, 0xCF43, 0xB17A, 0xCF44, 0xB181, 0xCF45, 0xB182, 0xCF46, + 0xB183, 0xCF47, 0xB184, 0xCF48, 0xB185, 0xCF49, 0xB186, 0xCF4A, + 0xB187, 0xCF4B, 0xB188, 0xCF4C, 0xB189, 0xCF4D, 0xB18A, 0xCF4E, + 0xB18B, 0xCF4F, 0xB18C, 0xCF50, 0xB18D, 0xCF51, 0xB18E, 0xCF52, + 0xB18F, 0xCF53, 0xB190, 0xCF56, 0xB191, 0xCF57, 0xB192, 0xCF59, + 0xB193, 0xCF5A, 0xB194, 0xCF5B, 0xB195, 0xCF5D, 0xB196, 0xCF5E, + 0xB197, 0xCF5F, 0xB198, 0xCF60, 0xB199, 0xCF61, 0xB19A, 0xCF62, + 0xB19B, 0xCF63, 0xB19C, 0xCF66, 0xB19D, 0xCF68, 0xB19E, 0xCF6A, + 0xB19F, 0xCF6B, 0xB1A0, 0xCF6C, 0xB1A1, 0xAD0C, 0xB1A2, 0xAD0D, + 0xB1A3, 0xAD0F, 0xB1A4, 0xAD11, 0xB1A5, 0xAD18, 0xB1A6, 0xAD1C, + 0xB1A7, 0xAD20, 0xB1A8, 0xAD29, 0xB1A9, 0xAD2C, 0xB1AA, 0xAD2D, + 0xB1AB, 0xAD34, 0xB1AC, 0xAD35, 0xB1AD, 0xAD38, 0xB1AE, 0xAD3C, + 0xB1AF, 0xAD44, 0xB1B0, 0xAD45, 0xB1B1, 0xAD47, 0xB1B2, 0xAD49, + 0xB1B3, 0xAD50, 0xB1B4, 0xAD54, 0xB1B5, 0xAD58, 0xB1B6, 0xAD61, + 0xB1B7, 0xAD63, 0xB1B8, 0xAD6C, 0xB1B9, 0xAD6D, 0xB1BA, 0xAD70, + 0xB1BB, 0xAD73, 0xB1BC, 0xAD74, 0xB1BD, 0xAD75, 0xB1BE, 0xAD76, + 0xB1BF, 0xAD7B, 0xB1C0, 0xAD7C, 0xB1C1, 0xAD7D, 0xB1C2, 0xAD7F, + 0xB1C3, 0xAD81, 0xB1C4, 0xAD82, 0xB1C5, 0xAD88, 0xB1C6, 0xAD89, + 0xB1C7, 0xAD8C, 0xB1C8, 0xAD90, 0xB1C9, 0xAD9C, 0xB1CA, 0xAD9D, + 0xB1CB, 0xADA4, 0xB1CC, 0xADB7, 0xB1CD, 0xADC0, 0xB1CE, 0xADC1, + 0xB1CF, 0xADC4, 0xB1D0, 0xADC8, 0xB1D1, 0xADD0, 0xB1D2, 0xADD1, + 0xB1D3, 0xADD3, 0xB1D4, 0xADDC, 0xB1D5, 0xADE0, 0xB1D6, 0xADE4, + 0xB1D7, 0xADF8, 0xB1D8, 0xADF9, 0xB1D9, 0xADFC, 0xB1DA, 0xADFF, + 0xB1DB, 0xAE00, 0xB1DC, 0xAE01, 0xB1DD, 0xAE08, 0xB1DE, 0xAE09, + 0xB1DF, 0xAE0B, 0xB1E0, 0xAE0D, 0xB1E1, 0xAE14, 0xB1E2, 0xAE30, + 0xB1E3, 0xAE31, 0xB1E4, 0xAE34, 0xB1E5, 0xAE37, 0xB1E6, 0xAE38, + 0xB1E7, 0xAE3A, 0xB1E8, 0xAE40, 0xB1E9, 0xAE41, 0xB1EA, 0xAE43, + 0xB1EB, 0xAE45, 0xB1EC, 0xAE46, 0xB1ED, 0xAE4A, 0xB1EE, 0xAE4C, + 0xB1EF, 0xAE4D, 0xB1F0, 0xAE4E, 0xB1F1, 0xAE50, 0xB1F2, 0xAE54, + 0xB1F3, 0xAE56, 0xB1F4, 0xAE5C, 0xB1F5, 0xAE5D, 0xB1F6, 0xAE5F, + 0xB1F7, 0xAE60, 0xB1F8, 0xAE61, 0xB1F9, 0xAE65, 0xB1FA, 0xAE68, + 0xB1FB, 0xAE69, 0xB1FC, 0xAE6C, 0xB1FD, 0xAE70, 0xB1FE, 0xAE78, + 0xB241, 0xCF6D, 0xB242, 0xCF6E, 0xB243, 0xCF6F, 0xB244, 0xCF72, + 0xB245, 0xCF73, 0xB246, 0xCF75, 0xB247, 0xCF76, 0xB248, 0xCF77, + 0xB249, 0xCF79, 0xB24A, 0xCF7A, 0xB24B, 0xCF7B, 0xB24C, 0xCF7C, + 0xB24D, 0xCF7D, 0xB24E, 0xCF7E, 0xB24F, 0xCF7F, 0xB250, 0xCF81, + 0xB251, 0xCF82, 0xB252, 0xCF83, 0xB253, 0xCF84, 0xB254, 0xCF86, + 0xB255, 0xCF87, 0xB256, 0xCF88, 0xB257, 0xCF89, 0xB258, 0xCF8A, + 0xB259, 0xCF8B, 0xB25A, 0xCF8D, 0xB261, 0xCF8E, 0xB262, 0xCF8F, + 0xB263, 0xCF90, 0xB264, 0xCF91, 0xB265, 0xCF92, 0xB266, 0xCF93, + 0xB267, 0xCF94, 0xB268, 0xCF95, 0xB269, 0xCF96, 0xB26A, 0xCF97, + 0xB26B, 0xCF98, 0xB26C, 0xCF99, 0xB26D, 0xCF9A, 0xB26E, 0xCF9B, + 0xB26F, 0xCF9C, 0xB270, 0xCF9D, 0xB271, 0xCF9E, 0xB272, 0xCF9F, + 0xB273, 0xCFA0, 0xB274, 0xCFA2, 0xB275, 0xCFA3, 0xB276, 0xCFA4, + 0xB277, 0xCFA5, 0xB278, 0xCFA6, 0xB279, 0xCFA7, 0xB27A, 0xCFA9, + 0xB281, 0xCFAA, 0xB282, 0xCFAB, 0xB283, 0xCFAC, 0xB284, 0xCFAD, + 0xB285, 0xCFAE, 0xB286, 0xCFAF, 0xB287, 0xCFB1, 0xB288, 0xCFB2, + 0xB289, 0xCFB3, 0xB28A, 0xCFB4, 0xB28B, 0xCFB5, 0xB28C, 0xCFB6, + 0xB28D, 0xCFB7, 0xB28E, 0xCFB8, 0xB28F, 0xCFB9, 0xB290, 0xCFBA, + 0xB291, 0xCFBB, 0xB292, 0xCFBC, 0xB293, 0xCFBD, 0xB294, 0xCFBE, + 0xB295, 0xCFBF, 0xB296, 0xCFC0, 0xB297, 0xCFC1, 0xB298, 0xCFC2, + 0xB299, 0xCFC3, 0xB29A, 0xCFC5, 0xB29B, 0xCFC6, 0xB29C, 0xCFC7, + 0xB29D, 0xCFC8, 0xB29E, 0xCFC9, 0xB29F, 0xCFCA, 0xB2A0, 0xCFCB, + 0xB2A1, 0xAE79, 0xB2A2, 0xAE7B, 0xB2A3, 0xAE7C, 0xB2A4, 0xAE7D, + 0xB2A5, 0xAE84, 0xB2A6, 0xAE85, 0xB2A7, 0xAE8C, 0xB2A8, 0xAEBC, + 0xB2A9, 0xAEBD, 0xB2AA, 0xAEBE, 0xB2AB, 0xAEC0, 0xB2AC, 0xAEC4, + 0xB2AD, 0xAECC, 0xB2AE, 0xAECD, 0xB2AF, 0xAECF, 0xB2B0, 0xAED0, + 0xB2B1, 0xAED1, 0xB2B2, 0xAED8, 0xB2B3, 0xAED9, 0xB2B4, 0xAEDC, + 0xB2B5, 0xAEE8, 0xB2B6, 0xAEEB, 0xB2B7, 0xAEED, 0xB2B8, 0xAEF4, + 0xB2B9, 0xAEF8, 0xB2BA, 0xAEFC, 0xB2BB, 0xAF07, 0xB2BC, 0xAF08, + 0xB2BD, 0xAF0D, 0xB2BE, 0xAF10, 0xB2BF, 0xAF2C, 0xB2C0, 0xAF2D, + 0xB2C1, 0xAF30, 0xB2C2, 0xAF32, 0xB2C3, 0xAF34, 0xB2C4, 0xAF3C, + 0xB2C5, 0xAF3D, 0xB2C6, 0xAF3F, 0xB2C7, 0xAF41, 0xB2C8, 0xAF42, + 0xB2C9, 0xAF43, 0xB2CA, 0xAF48, 0xB2CB, 0xAF49, 0xB2CC, 0xAF50, + 0xB2CD, 0xAF5C, 0xB2CE, 0xAF5D, 0xB2CF, 0xAF64, 0xB2D0, 0xAF65, + 0xB2D1, 0xAF79, 0xB2D2, 0xAF80, 0xB2D3, 0xAF84, 0xB2D4, 0xAF88, + 0xB2D5, 0xAF90, 0xB2D6, 0xAF91, 0xB2D7, 0xAF95, 0xB2D8, 0xAF9C, + 0xB2D9, 0xAFB8, 0xB2DA, 0xAFB9, 0xB2DB, 0xAFBC, 0xB2DC, 0xAFC0, + 0xB2DD, 0xAFC7, 0xB2DE, 0xAFC8, 0xB2DF, 0xAFC9, 0xB2E0, 0xAFCB, + 0xB2E1, 0xAFCD, 0xB2E2, 0xAFCE, 0xB2E3, 0xAFD4, 0xB2E4, 0xAFDC, + 0xB2E5, 0xAFE8, 0xB2E6, 0xAFE9, 0xB2E7, 0xAFF0, 0xB2E8, 0xAFF1, + 0xB2E9, 0xAFF4, 0xB2EA, 0xAFF8, 0xB2EB, 0xB000, 0xB2EC, 0xB001, + 0xB2ED, 0xB004, 0xB2EE, 0xB00C, 0xB2EF, 0xB010, 0xB2F0, 0xB014, + 0xB2F1, 0xB01C, 0xB2F2, 0xB01D, 0xB2F3, 0xB028, 0xB2F4, 0xB044, + 0xB2F5, 0xB045, 0xB2F6, 0xB048, 0xB2F7, 0xB04A, 0xB2F8, 0xB04C, + 0xB2F9, 0xB04E, 0xB2FA, 0xB053, 0xB2FB, 0xB054, 0xB2FC, 0xB055, + 0xB2FD, 0xB057, 0xB2FE, 0xB059, 0xB341, 0xCFCC, 0xB342, 0xCFCD, + 0xB343, 0xCFCE, 0xB344, 0xCFCF, 0xB345, 0xCFD0, 0xB346, 0xCFD1, + 0xB347, 0xCFD2, 0xB348, 0xCFD3, 0xB349, 0xCFD4, 0xB34A, 0xCFD5, + 0xB34B, 0xCFD6, 0xB34C, 0xCFD7, 0xB34D, 0xCFD8, 0xB34E, 0xCFD9, + 0xB34F, 0xCFDA, 0xB350, 0xCFDB, 0xB351, 0xCFDC, 0xB352, 0xCFDD, + 0xB353, 0xCFDE, 0xB354, 0xCFDF, 0xB355, 0xCFE2, 0xB356, 0xCFE3, + 0xB357, 0xCFE5, 0xB358, 0xCFE6, 0xB359, 0xCFE7, 0xB35A, 0xCFE9, + 0xB361, 0xCFEA, 0xB362, 0xCFEB, 0xB363, 0xCFEC, 0xB364, 0xCFED, + 0xB365, 0xCFEE, 0xB366, 0xCFEF, 0xB367, 0xCFF2, 0xB368, 0xCFF4, + 0xB369, 0xCFF6, 0xB36A, 0xCFF7, 0xB36B, 0xCFF8, 0xB36C, 0xCFF9, + 0xB36D, 0xCFFA, 0xB36E, 0xCFFB, 0xB36F, 0xCFFD, 0xB370, 0xCFFE, + 0xB371, 0xCFFF, 0xB372, 0xD001, 0xB373, 0xD002, 0xB374, 0xD003, + 0xB375, 0xD005, 0xB376, 0xD006, 0xB377, 0xD007, 0xB378, 0xD008, + 0xB379, 0xD009, 0xB37A, 0xD00A, 0xB381, 0xD00B, 0xB382, 0xD00C, + 0xB383, 0xD00D, 0xB384, 0xD00E, 0xB385, 0xD00F, 0xB386, 0xD010, + 0xB387, 0xD012, 0xB388, 0xD013, 0xB389, 0xD014, 0xB38A, 0xD015, + 0xB38B, 0xD016, 0xB38C, 0xD017, 0xB38D, 0xD019, 0xB38E, 0xD01A, + 0xB38F, 0xD01B, 0xB390, 0xD01C, 0xB391, 0xD01D, 0xB392, 0xD01E, + 0xB393, 0xD01F, 0xB394, 0xD020, 0xB395, 0xD021, 0xB396, 0xD022, + 0xB397, 0xD023, 0xB398, 0xD024, 0xB399, 0xD025, 0xB39A, 0xD026, + 0xB39B, 0xD027, 0xB39C, 0xD028, 0xB39D, 0xD029, 0xB39E, 0xD02A, + 0xB39F, 0xD02B, 0xB3A0, 0xD02C, 0xB3A1, 0xB05D, 0xB3A2, 0xB07C, + 0xB3A3, 0xB07D, 0xB3A4, 0xB080, 0xB3A5, 0xB084, 0xB3A6, 0xB08C, + 0xB3A7, 0xB08D, 0xB3A8, 0xB08F, 0xB3A9, 0xB091, 0xB3AA, 0xB098, + 0xB3AB, 0xB099, 0xB3AC, 0xB09A, 0xB3AD, 0xB09C, 0xB3AE, 0xB09F, + 0xB3AF, 0xB0A0, 0xB3B0, 0xB0A1, 0xB3B1, 0xB0A2, 0xB3B2, 0xB0A8, + 0xB3B3, 0xB0A9, 0xB3B4, 0xB0AB, 0xB3B5, 0xB0AC, 0xB3B6, 0xB0AD, + 0xB3B7, 0xB0AE, 0xB3B8, 0xB0AF, 0xB3B9, 0xB0B1, 0xB3BA, 0xB0B3, + 0xB3BB, 0xB0B4, 0xB3BC, 0xB0B5, 0xB3BD, 0xB0B8, 0xB3BE, 0xB0BC, + 0xB3BF, 0xB0C4, 0xB3C0, 0xB0C5, 0xB3C1, 0xB0C7, 0xB3C2, 0xB0C8, + 0xB3C3, 0xB0C9, 0xB3C4, 0xB0D0, 0xB3C5, 0xB0D1, 0xB3C6, 0xB0D4, + 0xB3C7, 0xB0D8, 0xB3C8, 0xB0E0, 0xB3C9, 0xB0E5, 0xB3CA, 0xB108, + 0xB3CB, 0xB109, 0xB3CC, 0xB10B, 0xB3CD, 0xB10C, 0xB3CE, 0xB110, + 0xB3CF, 0xB112, 0xB3D0, 0xB113, 0xB3D1, 0xB118, 0xB3D2, 0xB119, + 0xB3D3, 0xB11B, 0xB3D4, 0xB11C, 0xB3D5, 0xB11D, 0xB3D6, 0xB123, + 0xB3D7, 0xB124, 0xB3D8, 0xB125, 0xB3D9, 0xB128, 0xB3DA, 0xB12C, + 0xB3DB, 0xB134, 0xB3DC, 0xB135, 0xB3DD, 0xB137, 0xB3DE, 0xB138, + 0xB3DF, 0xB139, 0xB3E0, 0xB140, 0xB3E1, 0xB141, 0xB3E2, 0xB144, + 0xB3E3, 0xB148, 0xB3E4, 0xB150, 0xB3E5, 0xB151, 0xB3E6, 0xB154, + 0xB3E7, 0xB155, 0xB3E8, 0xB158, 0xB3E9, 0xB15C, 0xB3EA, 0xB160, + 0xB3EB, 0xB178, 0xB3EC, 0xB179, 0xB3ED, 0xB17C, 0xB3EE, 0xB180, + 0xB3EF, 0xB182, 0xB3F0, 0xB188, 0xB3F1, 0xB189, 0xB3F2, 0xB18B, + 0xB3F3, 0xB18D, 0xB3F4, 0xB192, 0xB3F5, 0xB193, 0xB3F6, 0xB194, + 0xB3F7, 0xB198, 0xB3F8, 0xB19C, 0xB3F9, 0xB1A8, 0xB3FA, 0xB1CC, + 0xB3FB, 0xB1D0, 0xB3FC, 0xB1D4, 0xB3FD, 0xB1DC, 0xB3FE, 0xB1DD, + 0xB441, 0xD02E, 0xB442, 0xD02F, 0xB443, 0xD030, 0xB444, 0xD031, + 0xB445, 0xD032, 0xB446, 0xD033, 0xB447, 0xD036, 0xB448, 0xD037, + 0xB449, 0xD039, 0xB44A, 0xD03A, 0xB44B, 0xD03B, 0xB44C, 0xD03D, + 0xB44D, 0xD03E, 0xB44E, 0xD03F, 0xB44F, 0xD040, 0xB450, 0xD041, + 0xB451, 0xD042, 0xB452, 0xD043, 0xB453, 0xD046, 0xB454, 0xD048, + 0xB455, 0xD04A, 0xB456, 0xD04B, 0xB457, 0xD04C, 0xB458, 0xD04D, + 0xB459, 0xD04E, 0xB45A, 0xD04F, 0xB461, 0xD051, 0xB462, 0xD052, + 0xB463, 0xD053, 0xB464, 0xD055, 0xB465, 0xD056, 0xB466, 0xD057, + 0xB467, 0xD059, 0xB468, 0xD05A, 0xB469, 0xD05B, 0xB46A, 0xD05C, + 0xB46B, 0xD05D, 0xB46C, 0xD05E, 0xB46D, 0xD05F, 0xB46E, 0xD061, + 0xB46F, 0xD062, 0xB470, 0xD063, 0xB471, 0xD064, 0xB472, 0xD065, + 0xB473, 0xD066, 0xB474, 0xD067, 0xB475, 0xD068, 0xB476, 0xD069, + 0xB477, 0xD06A, 0xB478, 0xD06B, 0xB479, 0xD06E, 0xB47A, 0xD06F, + 0xB481, 0xD071, 0xB482, 0xD072, 0xB483, 0xD073, 0xB484, 0xD075, + 0xB485, 0xD076, 0xB486, 0xD077, 0xB487, 0xD078, 0xB488, 0xD079, + 0xB489, 0xD07A, 0xB48A, 0xD07B, 0xB48B, 0xD07E, 0xB48C, 0xD07F, + 0xB48D, 0xD080, 0xB48E, 0xD082, 0xB48F, 0xD083, 0xB490, 0xD084, + 0xB491, 0xD085, 0xB492, 0xD086, 0xB493, 0xD087, 0xB494, 0xD088, + 0xB495, 0xD089, 0xB496, 0xD08A, 0xB497, 0xD08B, 0xB498, 0xD08C, + 0xB499, 0xD08D, 0xB49A, 0xD08E, 0xB49B, 0xD08F, 0xB49C, 0xD090, + 0xB49D, 0xD091, 0xB49E, 0xD092, 0xB49F, 0xD093, 0xB4A0, 0xD094, + 0xB4A1, 0xB1DF, 0xB4A2, 0xB1E8, 0xB4A3, 0xB1E9, 0xB4A4, 0xB1EC, + 0xB4A5, 0xB1F0, 0xB4A6, 0xB1F9, 0xB4A7, 0xB1FB, 0xB4A8, 0xB1FD, + 0xB4A9, 0xB204, 0xB4AA, 0xB205, 0xB4AB, 0xB208, 0xB4AC, 0xB20B, + 0xB4AD, 0xB20C, 0xB4AE, 0xB214, 0xB4AF, 0xB215, 0xB4B0, 0xB217, + 0xB4B1, 0xB219, 0xB4B2, 0xB220, 0xB4B3, 0xB234, 0xB4B4, 0xB23C, + 0xB4B5, 0xB258, 0xB4B6, 0xB25C, 0xB4B7, 0xB260, 0xB4B8, 0xB268, + 0xB4B9, 0xB269, 0xB4BA, 0xB274, 0xB4BB, 0xB275, 0xB4BC, 0xB27C, + 0xB4BD, 0xB284, 0xB4BE, 0xB285, 0xB4BF, 0xB289, 0xB4C0, 0xB290, + 0xB4C1, 0xB291, 0xB4C2, 0xB294, 0xB4C3, 0xB298, 0xB4C4, 0xB299, + 0xB4C5, 0xB29A, 0xB4C6, 0xB2A0, 0xB4C7, 0xB2A1, 0xB4C8, 0xB2A3, + 0xB4C9, 0xB2A5, 0xB4CA, 0xB2A6, 0xB4CB, 0xB2AA, 0xB4CC, 0xB2AC, + 0xB4CD, 0xB2B0, 0xB4CE, 0xB2B4, 0xB4CF, 0xB2C8, 0xB4D0, 0xB2C9, + 0xB4D1, 0xB2CC, 0xB4D2, 0xB2D0, 0xB4D3, 0xB2D2, 0xB4D4, 0xB2D8, + 0xB4D5, 0xB2D9, 0xB4D6, 0xB2DB, 0xB4D7, 0xB2DD, 0xB4D8, 0xB2E2, + 0xB4D9, 0xB2E4, 0xB4DA, 0xB2E5, 0xB4DB, 0xB2E6, 0xB4DC, 0xB2E8, + 0xB4DD, 0xB2EB, 0xB4DE, 0xB2EC, 0xB4DF, 0xB2ED, 0xB4E0, 0xB2EE, + 0xB4E1, 0xB2EF, 0xB4E2, 0xB2F3, 0xB4E3, 0xB2F4, 0xB4E4, 0xB2F5, + 0xB4E5, 0xB2F7, 0xB4E6, 0xB2F8, 0xB4E7, 0xB2F9, 0xB4E8, 0xB2FA, + 0xB4E9, 0xB2FB, 0xB4EA, 0xB2FF, 0xB4EB, 0xB300, 0xB4EC, 0xB301, + 0xB4ED, 0xB304, 0xB4EE, 0xB308, 0xB4EF, 0xB310, 0xB4F0, 0xB311, + 0xB4F1, 0xB313, 0xB4F2, 0xB314, 0xB4F3, 0xB315, 0xB4F4, 0xB31C, + 0xB4F5, 0xB354, 0xB4F6, 0xB355, 0xB4F7, 0xB356, 0xB4F8, 0xB358, + 0xB4F9, 0xB35B, 0xB4FA, 0xB35C, 0xB4FB, 0xB35E, 0xB4FC, 0xB35F, + 0xB4FD, 0xB364, 0xB4FE, 0xB365, 0xB541, 0xD095, 0xB542, 0xD096, + 0xB543, 0xD097, 0xB544, 0xD098, 0xB545, 0xD099, 0xB546, 0xD09A, + 0xB547, 0xD09B, 0xB548, 0xD09C, 0xB549, 0xD09D, 0xB54A, 0xD09E, + 0xB54B, 0xD09F, 0xB54C, 0xD0A0, 0xB54D, 0xD0A1, 0xB54E, 0xD0A2, + 0xB54F, 0xD0A3, 0xB550, 0xD0A6, 0xB551, 0xD0A7, 0xB552, 0xD0A9, + 0xB553, 0xD0AA, 0xB554, 0xD0AB, 0xB555, 0xD0AD, 0xB556, 0xD0AE, + 0xB557, 0xD0AF, 0xB558, 0xD0B0, 0xB559, 0xD0B1, 0xB55A, 0xD0B2, + 0xB561, 0xD0B3, 0xB562, 0xD0B6, 0xB563, 0xD0B8, 0xB564, 0xD0BA, + 0xB565, 0xD0BB, 0xB566, 0xD0BC, 0xB567, 0xD0BD, 0xB568, 0xD0BE, + 0xB569, 0xD0BF, 0xB56A, 0xD0C2, 0xB56B, 0xD0C3, 0xB56C, 0xD0C5, + 0xB56D, 0xD0C6, 0xB56E, 0xD0C7, 0xB56F, 0xD0CA, 0xB570, 0xD0CB, + 0xB571, 0xD0CC, 0xB572, 0xD0CD, 0xB573, 0xD0CE, 0xB574, 0xD0CF, + 0xB575, 0xD0D2, 0xB576, 0xD0D6, 0xB577, 0xD0D7, 0xB578, 0xD0D8, + 0xB579, 0xD0D9, 0xB57A, 0xD0DA, 0xB581, 0xD0DB, 0xB582, 0xD0DE, + 0xB583, 0xD0DF, 0xB584, 0xD0E1, 0xB585, 0xD0E2, 0xB586, 0xD0E3, + 0xB587, 0xD0E5, 0xB588, 0xD0E6, 0xB589, 0xD0E7, 0xB58A, 0xD0E8, + 0xB58B, 0xD0E9, 0xB58C, 0xD0EA, 0xB58D, 0xD0EB, 0xB58E, 0xD0EE, + 0xB58F, 0xD0F2, 0xB590, 0xD0F3, 0xB591, 0xD0F4, 0xB592, 0xD0F5, + 0xB593, 0xD0F6, 0xB594, 0xD0F7, 0xB595, 0xD0F9, 0xB596, 0xD0FA, + 0xB597, 0xD0FB, 0xB598, 0xD0FC, 0xB599, 0xD0FD, 0xB59A, 0xD0FE, + 0xB59B, 0xD0FF, 0xB59C, 0xD100, 0xB59D, 0xD101, 0xB59E, 0xD102, + 0xB59F, 0xD103, 0xB5A0, 0xD104, 0xB5A1, 0xB367, 0xB5A2, 0xB369, + 0xB5A3, 0xB36B, 0xB5A4, 0xB36E, 0xB5A5, 0xB370, 0xB5A6, 0xB371, + 0xB5A7, 0xB374, 0xB5A8, 0xB378, 0xB5A9, 0xB380, 0xB5AA, 0xB381, + 0xB5AB, 0xB383, 0xB5AC, 0xB384, 0xB5AD, 0xB385, 0xB5AE, 0xB38C, + 0xB5AF, 0xB390, 0xB5B0, 0xB394, 0xB5B1, 0xB3A0, 0xB5B2, 0xB3A1, + 0xB5B3, 0xB3A8, 0xB5B4, 0xB3AC, 0xB5B5, 0xB3C4, 0xB5B6, 0xB3C5, + 0xB5B7, 0xB3C8, 0xB5B8, 0xB3CB, 0xB5B9, 0xB3CC, 0xB5BA, 0xB3CE, + 0xB5BB, 0xB3D0, 0xB5BC, 0xB3D4, 0xB5BD, 0xB3D5, 0xB5BE, 0xB3D7, + 0xB5BF, 0xB3D9, 0xB5C0, 0xB3DB, 0xB5C1, 0xB3DD, 0xB5C2, 0xB3E0, + 0xB5C3, 0xB3E4, 0xB5C4, 0xB3E8, 0xB5C5, 0xB3FC, 0xB5C6, 0xB410, + 0xB5C7, 0xB418, 0xB5C8, 0xB41C, 0xB5C9, 0xB420, 0xB5CA, 0xB428, + 0xB5CB, 0xB429, 0xB5CC, 0xB42B, 0xB5CD, 0xB434, 0xB5CE, 0xB450, + 0xB5CF, 0xB451, 0xB5D0, 0xB454, 0xB5D1, 0xB458, 0xB5D2, 0xB460, + 0xB5D3, 0xB461, 0xB5D4, 0xB463, 0xB5D5, 0xB465, 0xB5D6, 0xB46C, + 0xB5D7, 0xB480, 0xB5D8, 0xB488, 0xB5D9, 0xB49D, 0xB5DA, 0xB4A4, + 0xB5DB, 0xB4A8, 0xB5DC, 0xB4AC, 0xB5DD, 0xB4B5, 0xB5DE, 0xB4B7, + 0xB5DF, 0xB4B9, 0xB5E0, 0xB4C0, 0xB5E1, 0xB4C4, 0xB5E2, 0xB4C8, + 0xB5E3, 0xB4D0, 0xB5E4, 0xB4D5, 0xB5E5, 0xB4DC, 0xB5E6, 0xB4DD, + 0xB5E7, 0xB4E0, 0xB5E8, 0xB4E3, 0xB5E9, 0xB4E4, 0xB5EA, 0xB4E6, + 0xB5EB, 0xB4EC, 0xB5EC, 0xB4ED, 0xB5ED, 0xB4EF, 0xB5EE, 0xB4F1, + 0xB5EF, 0xB4F8, 0xB5F0, 0xB514, 0xB5F1, 0xB515, 0xB5F2, 0xB518, + 0xB5F3, 0xB51B, 0xB5F4, 0xB51C, 0xB5F5, 0xB524, 0xB5F6, 0xB525, + 0xB5F7, 0xB527, 0xB5F8, 0xB528, 0xB5F9, 0xB529, 0xB5FA, 0xB52A, + 0xB5FB, 0xB530, 0xB5FC, 0xB531, 0xB5FD, 0xB534, 0xB5FE, 0xB538, + 0xB641, 0xD105, 0xB642, 0xD106, 0xB643, 0xD107, 0xB644, 0xD108, + 0xB645, 0xD109, 0xB646, 0xD10A, 0xB647, 0xD10B, 0xB648, 0xD10C, + 0xB649, 0xD10E, 0xB64A, 0xD10F, 0xB64B, 0xD110, 0xB64C, 0xD111, + 0xB64D, 0xD112, 0xB64E, 0xD113, 0xB64F, 0xD114, 0xB650, 0xD115, + 0xB651, 0xD116, 0xB652, 0xD117, 0xB653, 0xD118, 0xB654, 0xD119, + 0xB655, 0xD11A, 0xB656, 0xD11B, 0xB657, 0xD11C, 0xB658, 0xD11D, + 0xB659, 0xD11E, 0xB65A, 0xD11F, 0xB661, 0xD120, 0xB662, 0xD121, + 0xB663, 0xD122, 0xB664, 0xD123, 0xB665, 0xD124, 0xB666, 0xD125, + 0xB667, 0xD126, 0xB668, 0xD127, 0xB669, 0xD128, 0xB66A, 0xD129, + 0xB66B, 0xD12A, 0xB66C, 0xD12B, 0xB66D, 0xD12C, 0xB66E, 0xD12D, + 0xB66F, 0xD12E, 0xB670, 0xD12F, 0xB671, 0xD132, 0xB672, 0xD133, + 0xB673, 0xD135, 0xB674, 0xD136, 0xB675, 0xD137, 0xB676, 0xD139, + 0xB677, 0xD13B, 0xB678, 0xD13C, 0xB679, 0xD13D, 0xB67A, 0xD13E, + 0xB681, 0xD13F, 0xB682, 0xD142, 0xB683, 0xD146, 0xB684, 0xD147, + 0xB685, 0xD148, 0xB686, 0xD149, 0xB687, 0xD14A, 0xB688, 0xD14B, + 0xB689, 0xD14E, 0xB68A, 0xD14F, 0xB68B, 0xD151, 0xB68C, 0xD152, + 0xB68D, 0xD153, 0xB68E, 0xD155, 0xB68F, 0xD156, 0xB690, 0xD157, + 0xB691, 0xD158, 0xB692, 0xD159, 0xB693, 0xD15A, 0xB694, 0xD15B, + 0xB695, 0xD15E, 0xB696, 0xD160, 0xB697, 0xD162, 0xB698, 0xD163, + 0xB699, 0xD164, 0xB69A, 0xD165, 0xB69B, 0xD166, 0xB69C, 0xD167, + 0xB69D, 0xD169, 0xB69E, 0xD16A, 0xB69F, 0xD16B, 0xB6A0, 0xD16D, + 0xB6A1, 0xB540, 0xB6A2, 0xB541, 0xB6A3, 0xB543, 0xB6A4, 0xB544, + 0xB6A5, 0xB545, 0xB6A6, 0xB54B, 0xB6A7, 0xB54C, 0xB6A8, 0xB54D, + 0xB6A9, 0xB550, 0xB6AA, 0xB554, 0xB6AB, 0xB55C, 0xB6AC, 0xB55D, + 0xB6AD, 0xB55F, 0xB6AE, 0xB560, 0xB6AF, 0xB561, 0xB6B0, 0xB5A0, + 0xB6B1, 0xB5A1, 0xB6B2, 0xB5A4, 0xB6B3, 0xB5A8, 0xB6B4, 0xB5AA, + 0xB6B5, 0xB5AB, 0xB6B6, 0xB5B0, 0xB6B7, 0xB5B1, 0xB6B8, 0xB5B3, + 0xB6B9, 0xB5B4, 0xB6BA, 0xB5B5, 0xB6BB, 0xB5BB, 0xB6BC, 0xB5BC, + 0xB6BD, 0xB5BD, 0xB6BE, 0xB5C0, 0xB6BF, 0xB5C4, 0xB6C0, 0xB5CC, + 0xB6C1, 0xB5CD, 0xB6C2, 0xB5CF, 0xB6C3, 0xB5D0, 0xB6C4, 0xB5D1, + 0xB6C5, 0xB5D8, 0xB6C6, 0xB5EC, 0xB6C7, 0xB610, 0xB6C8, 0xB611, + 0xB6C9, 0xB614, 0xB6CA, 0xB618, 0xB6CB, 0xB625, 0xB6CC, 0xB62C, + 0xB6CD, 0xB634, 0xB6CE, 0xB648, 0xB6CF, 0xB664, 0xB6D0, 0xB668, + 0xB6D1, 0xB69C, 0xB6D2, 0xB69D, 0xB6D3, 0xB6A0, 0xB6D4, 0xB6A4, + 0xB6D5, 0xB6AB, 0xB6D6, 0xB6AC, 0xB6D7, 0xB6B1, 0xB6D8, 0xB6D4, + 0xB6D9, 0xB6F0, 0xB6DA, 0xB6F4, 0xB6DB, 0xB6F8, 0xB6DC, 0xB700, + 0xB6DD, 0xB701, 0xB6DE, 0xB705, 0xB6DF, 0xB728, 0xB6E0, 0xB729, + 0xB6E1, 0xB72C, 0xB6E2, 0xB72F, 0xB6E3, 0xB730, 0xB6E4, 0xB738, + 0xB6E5, 0xB739, 0xB6E6, 0xB73B, 0xB6E7, 0xB744, 0xB6E8, 0xB748, + 0xB6E9, 0xB74C, 0xB6EA, 0xB754, 0xB6EB, 0xB755, 0xB6EC, 0xB760, + 0xB6ED, 0xB764, 0xB6EE, 0xB768, 0xB6EF, 0xB770, 0xB6F0, 0xB771, + 0xB6F1, 0xB773, 0xB6F2, 0xB775, 0xB6F3, 0xB77C, 0xB6F4, 0xB77D, + 0xB6F5, 0xB780, 0xB6F6, 0xB784, 0xB6F7, 0xB78C, 0xB6F8, 0xB78D, + 0xB6F9, 0xB78F, 0xB6FA, 0xB790, 0xB6FB, 0xB791, 0xB6FC, 0xB792, + 0xB6FD, 0xB796, 0xB6FE, 0xB797, 0xB741, 0xD16E, 0xB742, 0xD16F, + 0xB743, 0xD170, 0xB744, 0xD171, 0xB745, 0xD172, 0xB746, 0xD173, + 0xB747, 0xD174, 0xB748, 0xD175, 0xB749, 0xD176, 0xB74A, 0xD177, + 0xB74B, 0xD178, 0xB74C, 0xD179, 0xB74D, 0xD17A, 0xB74E, 0xD17B, + 0xB74F, 0xD17D, 0xB750, 0xD17E, 0xB751, 0xD17F, 0xB752, 0xD180, + 0xB753, 0xD181, 0xB754, 0xD182, 0xB755, 0xD183, 0xB756, 0xD185, + 0xB757, 0xD186, 0xB758, 0xD187, 0xB759, 0xD189, 0xB75A, 0xD18A, + 0xB761, 0xD18B, 0xB762, 0xD18C, 0xB763, 0xD18D, 0xB764, 0xD18E, + 0xB765, 0xD18F, 0xB766, 0xD190, 0xB767, 0xD191, 0xB768, 0xD192, + 0xB769, 0xD193, 0xB76A, 0xD194, 0xB76B, 0xD195, 0xB76C, 0xD196, + 0xB76D, 0xD197, 0xB76E, 0xD198, 0xB76F, 0xD199, 0xB770, 0xD19A, + 0xB771, 0xD19B, 0xB772, 0xD19C, 0xB773, 0xD19D, 0xB774, 0xD19E, + 0xB775, 0xD19F, 0xB776, 0xD1A2, 0xB777, 0xD1A3, 0xB778, 0xD1A5, + 0xB779, 0xD1A6, 0xB77A, 0xD1A7, 0xB781, 0xD1A9, 0xB782, 0xD1AA, + 0xB783, 0xD1AB, 0xB784, 0xD1AC, 0xB785, 0xD1AD, 0xB786, 0xD1AE, + 0xB787, 0xD1AF, 0xB788, 0xD1B2, 0xB789, 0xD1B4, 0xB78A, 0xD1B6, + 0xB78B, 0xD1B7, 0xB78C, 0xD1B8, 0xB78D, 0xD1B9, 0xB78E, 0xD1BB, + 0xB78F, 0xD1BD, 0xB790, 0xD1BE, 0xB791, 0xD1BF, 0xB792, 0xD1C1, + 0xB793, 0xD1C2, 0xB794, 0xD1C3, 0xB795, 0xD1C4, 0xB796, 0xD1C5, + 0xB797, 0xD1C6, 0xB798, 0xD1C7, 0xB799, 0xD1C8, 0xB79A, 0xD1C9, + 0xB79B, 0xD1CA, 0xB79C, 0xD1CB, 0xB79D, 0xD1CC, 0xB79E, 0xD1CD, + 0xB79F, 0xD1CE, 0xB7A0, 0xD1CF, 0xB7A1, 0xB798, 0xB7A2, 0xB799, + 0xB7A3, 0xB79C, 0xB7A4, 0xB7A0, 0xB7A5, 0xB7A8, 0xB7A6, 0xB7A9, + 0xB7A7, 0xB7AB, 0xB7A8, 0xB7AC, 0xB7A9, 0xB7AD, 0xB7AA, 0xB7B4, + 0xB7AB, 0xB7B5, 0xB7AC, 0xB7B8, 0xB7AD, 0xB7C7, 0xB7AE, 0xB7C9, + 0xB7AF, 0xB7EC, 0xB7B0, 0xB7ED, 0xB7B1, 0xB7F0, 0xB7B2, 0xB7F4, + 0xB7B3, 0xB7FC, 0xB7B4, 0xB7FD, 0xB7B5, 0xB7FF, 0xB7B6, 0xB800, + 0xB7B7, 0xB801, 0xB7B8, 0xB807, 0xB7B9, 0xB808, 0xB7BA, 0xB809, + 0xB7BB, 0xB80C, 0xB7BC, 0xB810, 0xB7BD, 0xB818, 0xB7BE, 0xB819, + 0xB7BF, 0xB81B, 0xB7C0, 0xB81D, 0xB7C1, 0xB824, 0xB7C2, 0xB825, + 0xB7C3, 0xB828, 0xB7C4, 0xB82C, 0xB7C5, 0xB834, 0xB7C6, 0xB835, + 0xB7C7, 0xB837, 0xB7C8, 0xB838, 0xB7C9, 0xB839, 0xB7CA, 0xB840, + 0xB7CB, 0xB844, 0xB7CC, 0xB851, 0xB7CD, 0xB853, 0xB7CE, 0xB85C, + 0xB7CF, 0xB85D, 0xB7D0, 0xB860, 0xB7D1, 0xB864, 0xB7D2, 0xB86C, + 0xB7D3, 0xB86D, 0xB7D4, 0xB86F, 0xB7D5, 0xB871, 0xB7D6, 0xB878, + 0xB7D7, 0xB87C, 0xB7D8, 0xB88D, 0xB7D9, 0xB8A8, 0xB7DA, 0xB8B0, + 0xB7DB, 0xB8B4, 0xB7DC, 0xB8B8, 0xB7DD, 0xB8C0, 0xB7DE, 0xB8C1, + 0xB7DF, 0xB8C3, 0xB7E0, 0xB8C5, 0xB7E1, 0xB8CC, 0xB7E2, 0xB8D0, + 0xB7E3, 0xB8D4, 0xB7E4, 0xB8DD, 0xB7E5, 0xB8DF, 0xB7E6, 0xB8E1, + 0xB7E7, 0xB8E8, 0xB7E8, 0xB8E9, 0xB7E9, 0xB8EC, 0xB7EA, 0xB8F0, + 0xB7EB, 0xB8F8, 0xB7EC, 0xB8F9, 0xB7ED, 0xB8FB, 0xB7EE, 0xB8FD, + 0xB7EF, 0xB904, 0xB7F0, 0xB918, 0xB7F1, 0xB920, 0xB7F2, 0xB93C, + 0xB7F3, 0xB93D, 0xB7F4, 0xB940, 0xB7F5, 0xB944, 0xB7F6, 0xB94C, + 0xB7F7, 0xB94F, 0xB7F8, 0xB951, 0xB7F9, 0xB958, 0xB7FA, 0xB959, + 0xB7FB, 0xB95C, 0xB7FC, 0xB960, 0xB7FD, 0xB968, 0xB7FE, 0xB969, + 0xB841, 0xD1D0, 0xB842, 0xD1D1, 0xB843, 0xD1D2, 0xB844, 0xD1D3, + 0xB845, 0xD1D4, 0xB846, 0xD1D5, 0xB847, 0xD1D6, 0xB848, 0xD1D7, + 0xB849, 0xD1D9, 0xB84A, 0xD1DA, 0xB84B, 0xD1DB, 0xB84C, 0xD1DC, + 0xB84D, 0xD1DD, 0xB84E, 0xD1DE, 0xB84F, 0xD1DF, 0xB850, 0xD1E0, + 0xB851, 0xD1E1, 0xB852, 0xD1E2, 0xB853, 0xD1E3, 0xB854, 0xD1E4, + 0xB855, 0xD1E5, 0xB856, 0xD1E6, 0xB857, 0xD1E7, 0xB858, 0xD1E8, + 0xB859, 0xD1E9, 0xB85A, 0xD1EA, 0xB861, 0xD1EB, 0xB862, 0xD1EC, + 0xB863, 0xD1ED, 0xB864, 0xD1EE, 0xB865, 0xD1EF, 0xB866, 0xD1F0, + 0xB867, 0xD1F1, 0xB868, 0xD1F2, 0xB869, 0xD1F3, 0xB86A, 0xD1F5, + 0xB86B, 0xD1F6, 0xB86C, 0xD1F7, 0xB86D, 0xD1F9, 0xB86E, 0xD1FA, + 0xB86F, 0xD1FB, 0xB870, 0xD1FC, 0xB871, 0xD1FD, 0xB872, 0xD1FE, + 0xB873, 0xD1FF, 0xB874, 0xD200, 0xB875, 0xD201, 0xB876, 0xD202, + 0xB877, 0xD203, 0xB878, 0xD204, 0xB879, 0xD205, 0xB87A, 0xD206, + 0xB881, 0xD208, 0xB882, 0xD20A, 0xB883, 0xD20B, 0xB884, 0xD20C, + 0xB885, 0xD20D, 0xB886, 0xD20E, 0xB887, 0xD20F, 0xB888, 0xD211, + 0xB889, 0xD212, 0xB88A, 0xD213, 0xB88B, 0xD214, 0xB88C, 0xD215, + 0xB88D, 0xD216, 0xB88E, 0xD217, 0xB88F, 0xD218, 0xB890, 0xD219, + 0xB891, 0xD21A, 0xB892, 0xD21B, 0xB893, 0xD21C, 0xB894, 0xD21D, + 0xB895, 0xD21E, 0xB896, 0xD21F, 0xB897, 0xD220, 0xB898, 0xD221, + 0xB899, 0xD222, 0xB89A, 0xD223, 0xB89B, 0xD224, 0xB89C, 0xD225, + 0xB89D, 0xD226, 0xB89E, 0xD227, 0xB89F, 0xD228, 0xB8A0, 0xD229, + 0xB8A1, 0xB96B, 0xB8A2, 0xB96D, 0xB8A3, 0xB974, 0xB8A4, 0xB975, + 0xB8A5, 0xB978, 0xB8A6, 0xB97C, 0xB8A7, 0xB984, 0xB8A8, 0xB985, + 0xB8A9, 0xB987, 0xB8AA, 0xB989, 0xB8AB, 0xB98A, 0xB8AC, 0xB98D, + 0xB8AD, 0xB98E, 0xB8AE, 0xB9AC, 0xB8AF, 0xB9AD, 0xB8B0, 0xB9B0, + 0xB8B1, 0xB9B4, 0xB8B2, 0xB9BC, 0xB8B3, 0xB9BD, 0xB8B4, 0xB9BF, + 0xB8B5, 0xB9C1, 0xB8B6, 0xB9C8, 0xB8B7, 0xB9C9, 0xB8B8, 0xB9CC, + 0xB8B9, 0xB9CE, 0xB8BA, 0xB9CF, 0xB8BB, 0xB9D0, 0xB8BC, 0xB9D1, + 0xB8BD, 0xB9D2, 0xB8BE, 0xB9D8, 0xB8BF, 0xB9D9, 0xB8C0, 0xB9DB, + 0xB8C1, 0xB9DD, 0xB8C2, 0xB9DE, 0xB8C3, 0xB9E1, 0xB8C4, 0xB9E3, + 0xB8C5, 0xB9E4, 0xB8C6, 0xB9E5, 0xB8C7, 0xB9E8, 0xB8C8, 0xB9EC, + 0xB8C9, 0xB9F4, 0xB8CA, 0xB9F5, 0xB8CB, 0xB9F7, 0xB8CC, 0xB9F8, + 0xB8CD, 0xB9F9, 0xB8CE, 0xB9FA, 0xB8CF, 0xBA00, 0xB8D0, 0xBA01, + 0xB8D1, 0xBA08, 0xB8D2, 0xBA15, 0xB8D3, 0xBA38, 0xB8D4, 0xBA39, + 0xB8D5, 0xBA3C, 0xB8D6, 0xBA40, 0xB8D7, 0xBA42, 0xB8D8, 0xBA48, + 0xB8D9, 0xBA49, 0xB8DA, 0xBA4B, 0xB8DB, 0xBA4D, 0xB8DC, 0xBA4E, + 0xB8DD, 0xBA53, 0xB8DE, 0xBA54, 0xB8DF, 0xBA55, 0xB8E0, 0xBA58, + 0xB8E1, 0xBA5C, 0xB8E2, 0xBA64, 0xB8E3, 0xBA65, 0xB8E4, 0xBA67, + 0xB8E5, 0xBA68, 0xB8E6, 0xBA69, 0xB8E7, 0xBA70, 0xB8E8, 0xBA71, + 0xB8E9, 0xBA74, 0xB8EA, 0xBA78, 0xB8EB, 0xBA83, 0xB8EC, 0xBA84, + 0xB8ED, 0xBA85, 0xB8EE, 0xBA87, 0xB8EF, 0xBA8C, 0xB8F0, 0xBAA8, + 0xB8F1, 0xBAA9, 0xB8F2, 0xBAAB, 0xB8F3, 0xBAAC, 0xB8F4, 0xBAB0, + 0xB8F5, 0xBAB2, 0xB8F6, 0xBAB8, 0xB8F7, 0xBAB9, 0xB8F8, 0xBABB, + 0xB8F9, 0xBABD, 0xB8FA, 0xBAC4, 0xB8FB, 0xBAC8, 0xB8FC, 0xBAD8, + 0xB8FD, 0xBAD9, 0xB8FE, 0xBAFC, 0xB941, 0xD22A, 0xB942, 0xD22B, + 0xB943, 0xD22E, 0xB944, 0xD22F, 0xB945, 0xD231, 0xB946, 0xD232, + 0xB947, 0xD233, 0xB948, 0xD235, 0xB949, 0xD236, 0xB94A, 0xD237, + 0xB94B, 0xD238, 0xB94C, 0xD239, 0xB94D, 0xD23A, 0xB94E, 0xD23B, + 0xB94F, 0xD23E, 0xB950, 0xD240, 0xB951, 0xD242, 0xB952, 0xD243, + 0xB953, 0xD244, 0xB954, 0xD245, 0xB955, 0xD246, 0xB956, 0xD247, + 0xB957, 0xD249, 0xB958, 0xD24A, 0xB959, 0xD24B, 0xB95A, 0xD24C, + 0xB961, 0xD24D, 0xB962, 0xD24E, 0xB963, 0xD24F, 0xB964, 0xD250, + 0xB965, 0xD251, 0xB966, 0xD252, 0xB967, 0xD253, 0xB968, 0xD254, + 0xB969, 0xD255, 0xB96A, 0xD256, 0xB96B, 0xD257, 0xB96C, 0xD258, + 0xB96D, 0xD259, 0xB96E, 0xD25A, 0xB96F, 0xD25B, 0xB970, 0xD25D, + 0xB971, 0xD25E, 0xB972, 0xD25F, 0xB973, 0xD260, 0xB974, 0xD261, + 0xB975, 0xD262, 0xB976, 0xD263, 0xB977, 0xD265, 0xB978, 0xD266, + 0xB979, 0xD267, 0xB97A, 0xD268, 0xB981, 0xD269, 0xB982, 0xD26A, + 0xB983, 0xD26B, 0xB984, 0xD26C, 0xB985, 0xD26D, 0xB986, 0xD26E, + 0xB987, 0xD26F, 0xB988, 0xD270, 0xB989, 0xD271, 0xB98A, 0xD272, + 0xB98B, 0xD273, 0xB98C, 0xD274, 0xB98D, 0xD275, 0xB98E, 0xD276, + 0xB98F, 0xD277, 0xB990, 0xD278, 0xB991, 0xD279, 0xB992, 0xD27A, + 0xB993, 0xD27B, 0xB994, 0xD27C, 0xB995, 0xD27D, 0xB996, 0xD27E, + 0xB997, 0xD27F, 0xB998, 0xD282, 0xB999, 0xD283, 0xB99A, 0xD285, + 0xB99B, 0xD286, 0xB99C, 0xD287, 0xB99D, 0xD289, 0xB99E, 0xD28A, + 0xB99F, 0xD28B, 0xB9A0, 0xD28C, 0xB9A1, 0xBB00, 0xB9A2, 0xBB04, + 0xB9A3, 0xBB0D, 0xB9A4, 0xBB0F, 0xB9A5, 0xBB11, 0xB9A6, 0xBB18, + 0xB9A7, 0xBB1C, 0xB9A8, 0xBB20, 0xB9A9, 0xBB29, 0xB9AA, 0xBB2B, + 0xB9AB, 0xBB34, 0xB9AC, 0xBB35, 0xB9AD, 0xBB36, 0xB9AE, 0xBB38, + 0xB9AF, 0xBB3B, 0xB9B0, 0xBB3C, 0xB9B1, 0xBB3D, 0xB9B2, 0xBB3E, + 0xB9B3, 0xBB44, 0xB9B4, 0xBB45, 0xB9B5, 0xBB47, 0xB9B6, 0xBB49, + 0xB9B7, 0xBB4D, 0xB9B8, 0xBB4F, 0xB9B9, 0xBB50, 0xB9BA, 0xBB54, + 0xB9BB, 0xBB58, 0xB9BC, 0xBB61, 0xB9BD, 0xBB63, 0xB9BE, 0xBB6C, + 0xB9BF, 0xBB88, 0xB9C0, 0xBB8C, 0xB9C1, 0xBB90, 0xB9C2, 0xBBA4, + 0xB9C3, 0xBBA8, 0xB9C4, 0xBBAC, 0xB9C5, 0xBBB4, 0xB9C6, 0xBBB7, + 0xB9C7, 0xBBC0, 0xB9C8, 0xBBC4, 0xB9C9, 0xBBC8, 0xB9CA, 0xBBD0, + 0xB9CB, 0xBBD3, 0xB9CC, 0xBBF8, 0xB9CD, 0xBBF9, 0xB9CE, 0xBBFC, + 0xB9CF, 0xBBFF, 0xB9D0, 0xBC00, 0xB9D1, 0xBC02, 0xB9D2, 0xBC08, + 0xB9D3, 0xBC09, 0xB9D4, 0xBC0B, 0xB9D5, 0xBC0C, 0xB9D6, 0xBC0D, + 0xB9D7, 0xBC0F, 0xB9D8, 0xBC11, 0xB9D9, 0xBC14, 0xB9DA, 0xBC15, + 0xB9DB, 0xBC16, 0xB9DC, 0xBC17, 0xB9DD, 0xBC18, 0xB9DE, 0xBC1B, + 0xB9DF, 0xBC1C, 0xB9E0, 0xBC1D, 0xB9E1, 0xBC1E, 0xB9E2, 0xBC1F, + 0xB9E3, 0xBC24, 0xB9E4, 0xBC25, 0xB9E5, 0xBC27, 0xB9E6, 0xBC29, + 0xB9E7, 0xBC2D, 0xB9E8, 0xBC30, 0xB9E9, 0xBC31, 0xB9EA, 0xBC34, + 0xB9EB, 0xBC38, 0xB9EC, 0xBC40, 0xB9ED, 0xBC41, 0xB9EE, 0xBC43, + 0xB9EF, 0xBC44, 0xB9F0, 0xBC45, 0xB9F1, 0xBC49, 0xB9F2, 0xBC4C, + 0xB9F3, 0xBC4D, 0xB9F4, 0xBC50, 0xB9F5, 0xBC5D, 0xB9F6, 0xBC84, + 0xB9F7, 0xBC85, 0xB9F8, 0xBC88, 0xB9F9, 0xBC8B, 0xB9FA, 0xBC8C, + 0xB9FB, 0xBC8E, 0xB9FC, 0xBC94, 0xB9FD, 0xBC95, 0xB9FE, 0xBC97, + 0xBA41, 0xD28D, 0xBA42, 0xD28E, 0xBA43, 0xD28F, 0xBA44, 0xD292, + 0xBA45, 0xD293, 0xBA46, 0xD294, 0xBA47, 0xD296, 0xBA48, 0xD297, + 0xBA49, 0xD298, 0xBA4A, 0xD299, 0xBA4B, 0xD29A, 0xBA4C, 0xD29B, + 0xBA4D, 0xD29D, 0xBA4E, 0xD29E, 0xBA4F, 0xD29F, 0xBA50, 0xD2A1, + 0xBA51, 0xD2A2, 0xBA52, 0xD2A3, 0xBA53, 0xD2A5, 0xBA54, 0xD2A6, + 0xBA55, 0xD2A7, 0xBA56, 0xD2A8, 0xBA57, 0xD2A9, 0xBA58, 0xD2AA, + 0xBA59, 0xD2AB, 0xBA5A, 0xD2AD, 0xBA61, 0xD2AE, 0xBA62, 0xD2AF, + 0xBA63, 0xD2B0, 0xBA64, 0xD2B2, 0xBA65, 0xD2B3, 0xBA66, 0xD2B4, + 0xBA67, 0xD2B5, 0xBA68, 0xD2B6, 0xBA69, 0xD2B7, 0xBA6A, 0xD2BA, + 0xBA6B, 0xD2BB, 0xBA6C, 0xD2BD, 0xBA6D, 0xD2BE, 0xBA6E, 0xD2C1, + 0xBA6F, 0xD2C3, 0xBA70, 0xD2C4, 0xBA71, 0xD2C5, 0xBA72, 0xD2C6, + 0xBA73, 0xD2C7, 0xBA74, 0xD2CA, 0xBA75, 0xD2CC, 0xBA76, 0xD2CD, + 0xBA77, 0xD2CE, 0xBA78, 0xD2CF, 0xBA79, 0xD2D0, 0xBA7A, 0xD2D1, + 0xBA81, 0xD2D2, 0xBA82, 0xD2D3, 0xBA83, 0xD2D5, 0xBA84, 0xD2D6, + 0xBA85, 0xD2D7, 0xBA86, 0xD2D9, 0xBA87, 0xD2DA, 0xBA88, 0xD2DB, + 0xBA89, 0xD2DD, 0xBA8A, 0xD2DE, 0xBA8B, 0xD2DF, 0xBA8C, 0xD2E0, + 0xBA8D, 0xD2E1, 0xBA8E, 0xD2E2, 0xBA8F, 0xD2E3, 0xBA90, 0xD2E6, + 0xBA91, 0xD2E7, 0xBA92, 0xD2E8, 0xBA93, 0xD2E9, 0xBA94, 0xD2EA, + 0xBA95, 0xD2EB, 0xBA96, 0xD2EC, 0xBA97, 0xD2ED, 0xBA98, 0xD2EE, + 0xBA99, 0xD2EF, 0xBA9A, 0xD2F2, 0xBA9B, 0xD2F3, 0xBA9C, 0xD2F5, + 0xBA9D, 0xD2F6, 0xBA9E, 0xD2F7, 0xBA9F, 0xD2F9, 0xBAA0, 0xD2FA, + 0xBAA1, 0xBC99, 0xBAA2, 0xBC9A, 0xBAA3, 0xBCA0, 0xBAA4, 0xBCA1, + 0xBAA5, 0xBCA4, 0xBAA6, 0xBCA7, 0xBAA7, 0xBCA8, 0xBAA8, 0xBCB0, + 0xBAA9, 0xBCB1, 0xBAAA, 0xBCB3, 0xBAAB, 0xBCB4, 0xBAAC, 0xBCB5, + 0xBAAD, 0xBCBC, 0xBAAE, 0xBCBD, 0xBAAF, 0xBCC0, 0xBAB0, 0xBCC4, + 0xBAB1, 0xBCCD, 0xBAB2, 0xBCCF, 0xBAB3, 0xBCD0, 0xBAB4, 0xBCD1, + 0xBAB5, 0xBCD5, 0xBAB6, 0xBCD8, 0xBAB7, 0xBCDC, 0xBAB8, 0xBCF4, + 0xBAB9, 0xBCF5, 0xBABA, 0xBCF6, 0xBABB, 0xBCF8, 0xBABC, 0xBCFC, + 0xBABD, 0xBD04, 0xBABE, 0xBD05, 0xBABF, 0xBD07, 0xBAC0, 0xBD09, + 0xBAC1, 0xBD10, 0xBAC2, 0xBD14, 0xBAC3, 0xBD24, 0xBAC4, 0xBD2C, + 0xBAC5, 0xBD40, 0xBAC6, 0xBD48, 0xBAC7, 0xBD49, 0xBAC8, 0xBD4C, + 0xBAC9, 0xBD50, 0xBACA, 0xBD58, 0xBACB, 0xBD59, 0xBACC, 0xBD64, + 0xBACD, 0xBD68, 0xBACE, 0xBD80, 0xBACF, 0xBD81, 0xBAD0, 0xBD84, + 0xBAD1, 0xBD87, 0xBAD2, 0xBD88, 0xBAD3, 0xBD89, 0xBAD4, 0xBD8A, + 0xBAD5, 0xBD90, 0xBAD6, 0xBD91, 0xBAD7, 0xBD93, 0xBAD8, 0xBD95, + 0xBAD9, 0xBD99, 0xBADA, 0xBD9A, 0xBADB, 0xBD9C, 0xBADC, 0xBDA4, + 0xBADD, 0xBDB0, 0xBADE, 0xBDB8, 0xBADF, 0xBDD4, 0xBAE0, 0xBDD5, + 0xBAE1, 0xBDD8, 0xBAE2, 0xBDDC, 0xBAE3, 0xBDE9, 0xBAE4, 0xBDF0, + 0xBAE5, 0xBDF4, 0xBAE6, 0xBDF8, 0xBAE7, 0xBE00, 0xBAE8, 0xBE03, + 0xBAE9, 0xBE05, 0xBAEA, 0xBE0C, 0xBAEB, 0xBE0D, 0xBAEC, 0xBE10, + 0xBAED, 0xBE14, 0xBAEE, 0xBE1C, 0xBAEF, 0xBE1D, 0xBAF0, 0xBE1F, + 0xBAF1, 0xBE44, 0xBAF2, 0xBE45, 0xBAF3, 0xBE48, 0xBAF4, 0xBE4C, + 0xBAF5, 0xBE4E, 0xBAF6, 0xBE54, 0xBAF7, 0xBE55, 0xBAF8, 0xBE57, + 0xBAF9, 0xBE59, 0xBAFA, 0xBE5A, 0xBAFB, 0xBE5B, 0xBAFC, 0xBE60, + 0xBAFD, 0xBE61, 0xBAFE, 0xBE64, 0xBB41, 0xD2FB, 0xBB42, 0xD2FC, + 0xBB43, 0xD2FD, 0xBB44, 0xD2FE, 0xBB45, 0xD2FF, 0xBB46, 0xD302, + 0xBB47, 0xD304, 0xBB48, 0xD306, 0xBB49, 0xD307, 0xBB4A, 0xD308, + 0xBB4B, 0xD309, 0xBB4C, 0xD30A, 0xBB4D, 0xD30B, 0xBB4E, 0xD30F, + 0xBB4F, 0xD311, 0xBB50, 0xD312, 0xBB51, 0xD313, 0xBB52, 0xD315, + 0xBB53, 0xD317, 0xBB54, 0xD318, 0xBB55, 0xD319, 0xBB56, 0xD31A, + 0xBB57, 0xD31B, 0xBB58, 0xD31E, 0xBB59, 0xD322, 0xBB5A, 0xD323, + 0xBB61, 0xD324, 0xBB62, 0xD326, 0xBB63, 0xD327, 0xBB64, 0xD32A, + 0xBB65, 0xD32B, 0xBB66, 0xD32D, 0xBB67, 0xD32E, 0xBB68, 0xD32F, + 0xBB69, 0xD331, 0xBB6A, 0xD332, 0xBB6B, 0xD333, 0xBB6C, 0xD334, + 0xBB6D, 0xD335, 0xBB6E, 0xD336, 0xBB6F, 0xD337, 0xBB70, 0xD33A, + 0xBB71, 0xD33E, 0xBB72, 0xD33F, 0xBB73, 0xD340, 0xBB74, 0xD341, + 0xBB75, 0xD342, 0xBB76, 0xD343, 0xBB77, 0xD346, 0xBB78, 0xD347, + 0xBB79, 0xD348, 0xBB7A, 0xD349, 0xBB81, 0xD34A, 0xBB82, 0xD34B, + 0xBB83, 0xD34C, 0xBB84, 0xD34D, 0xBB85, 0xD34E, 0xBB86, 0xD34F, + 0xBB87, 0xD350, 0xBB88, 0xD351, 0xBB89, 0xD352, 0xBB8A, 0xD353, + 0xBB8B, 0xD354, 0xBB8C, 0xD355, 0xBB8D, 0xD356, 0xBB8E, 0xD357, + 0xBB8F, 0xD358, 0xBB90, 0xD359, 0xBB91, 0xD35A, 0xBB92, 0xD35B, + 0xBB93, 0xD35C, 0xBB94, 0xD35D, 0xBB95, 0xD35E, 0xBB96, 0xD35F, + 0xBB97, 0xD360, 0xBB98, 0xD361, 0xBB99, 0xD362, 0xBB9A, 0xD363, + 0xBB9B, 0xD364, 0xBB9C, 0xD365, 0xBB9D, 0xD366, 0xBB9E, 0xD367, + 0xBB9F, 0xD368, 0xBBA0, 0xD369, 0xBBA1, 0xBE68, 0xBBA2, 0xBE6A, + 0xBBA3, 0xBE70, 0xBBA4, 0xBE71, 0xBBA5, 0xBE73, 0xBBA6, 0xBE74, + 0xBBA7, 0xBE75, 0xBBA8, 0xBE7B, 0xBBA9, 0xBE7C, 0xBBAA, 0xBE7D, + 0xBBAB, 0xBE80, 0xBBAC, 0xBE84, 0xBBAD, 0xBE8C, 0xBBAE, 0xBE8D, + 0xBBAF, 0xBE8F, 0xBBB0, 0xBE90, 0xBBB1, 0xBE91, 0xBBB2, 0xBE98, + 0xBBB3, 0xBE99, 0xBBB4, 0xBEA8, 0xBBB5, 0xBED0, 0xBBB6, 0xBED1, + 0xBBB7, 0xBED4, 0xBBB8, 0xBED7, 0xBBB9, 0xBED8, 0xBBBA, 0xBEE0, + 0xBBBB, 0xBEE3, 0xBBBC, 0xBEE4, 0xBBBD, 0xBEE5, 0xBBBE, 0xBEEC, + 0xBBBF, 0xBF01, 0xBBC0, 0xBF08, 0xBBC1, 0xBF09, 0xBBC2, 0xBF18, + 0xBBC3, 0xBF19, 0xBBC4, 0xBF1B, 0xBBC5, 0xBF1C, 0xBBC6, 0xBF1D, + 0xBBC7, 0xBF40, 0xBBC8, 0xBF41, 0xBBC9, 0xBF44, 0xBBCA, 0xBF48, + 0xBBCB, 0xBF50, 0xBBCC, 0xBF51, 0xBBCD, 0xBF55, 0xBBCE, 0xBF94, + 0xBBCF, 0xBFB0, 0xBBD0, 0xBFC5, 0xBBD1, 0xBFCC, 0xBBD2, 0xBFCD, + 0xBBD3, 0xBFD0, 0xBBD4, 0xBFD4, 0xBBD5, 0xBFDC, 0xBBD6, 0xBFDF, + 0xBBD7, 0xBFE1, 0xBBD8, 0xC03C, 0xBBD9, 0xC051, 0xBBDA, 0xC058, + 0xBBDB, 0xC05C, 0xBBDC, 0xC060, 0xBBDD, 0xC068, 0xBBDE, 0xC069, + 0xBBDF, 0xC090, 0xBBE0, 0xC091, 0xBBE1, 0xC094, 0xBBE2, 0xC098, + 0xBBE3, 0xC0A0, 0xBBE4, 0xC0A1, 0xBBE5, 0xC0A3, 0xBBE6, 0xC0A5, + 0xBBE7, 0xC0AC, 0xBBE8, 0xC0AD, 0xBBE9, 0xC0AF, 0xBBEA, 0xC0B0, + 0xBBEB, 0xC0B3, 0xBBEC, 0xC0B4, 0xBBED, 0xC0B5, 0xBBEE, 0xC0B6, + 0xBBEF, 0xC0BC, 0xBBF0, 0xC0BD, 0xBBF1, 0xC0BF, 0xBBF2, 0xC0C0, + 0xBBF3, 0xC0C1, 0xBBF4, 0xC0C5, 0xBBF5, 0xC0C8, 0xBBF6, 0xC0C9, + 0xBBF7, 0xC0CC, 0xBBF8, 0xC0D0, 0xBBF9, 0xC0D8, 0xBBFA, 0xC0D9, + 0xBBFB, 0xC0DB, 0xBBFC, 0xC0DC, 0xBBFD, 0xC0DD, 0xBBFE, 0xC0E4, + 0xBC41, 0xD36A, 0xBC42, 0xD36B, 0xBC43, 0xD36C, 0xBC44, 0xD36D, + 0xBC45, 0xD36E, 0xBC46, 0xD36F, 0xBC47, 0xD370, 0xBC48, 0xD371, + 0xBC49, 0xD372, 0xBC4A, 0xD373, 0xBC4B, 0xD374, 0xBC4C, 0xD375, + 0xBC4D, 0xD376, 0xBC4E, 0xD377, 0xBC4F, 0xD378, 0xBC50, 0xD379, + 0xBC51, 0xD37A, 0xBC52, 0xD37B, 0xBC53, 0xD37E, 0xBC54, 0xD37F, + 0xBC55, 0xD381, 0xBC56, 0xD382, 0xBC57, 0xD383, 0xBC58, 0xD385, + 0xBC59, 0xD386, 0xBC5A, 0xD387, 0xBC61, 0xD388, 0xBC62, 0xD389, + 0xBC63, 0xD38A, 0xBC64, 0xD38B, 0xBC65, 0xD38E, 0xBC66, 0xD392, + 0xBC67, 0xD393, 0xBC68, 0xD394, 0xBC69, 0xD395, 0xBC6A, 0xD396, + 0xBC6B, 0xD397, 0xBC6C, 0xD39A, 0xBC6D, 0xD39B, 0xBC6E, 0xD39D, + 0xBC6F, 0xD39E, 0xBC70, 0xD39F, 0xBC71, 0xD3A1, 0xBC72, 0xD3A2, + 0xBC73, 0xD3A3, 0xBC74, 0xD3A4, 0xBC75, 0xD3A5, 0xBC76, 0xD3A6, + 0xBC77, 0xD3A7, 0xBC78, 0xD3AA, 0xBC79, 0xD3AC, 0xBC7A, 0xD3AE, + 0xBC81, 0xD3AF, 0xBC82, 0xD3B0, 0xBC83, 0xD3B1, 0xBC84, 0xD3B2, + 0xBC85, 0xD3B3, 0xBC86, 0xD3B5, 0xBC87, 0xD3B6, 0xBC88, 0xD3B7, + 0xBC89, 0xD3B9, 0xBC8A, 0xD3BA, 0xBC8B, 0xD3BB, 0xBC8C, 0xD3BD, + 0xBC8D, 0xD3BE, 0xBC8E, 0xD3BF, 0xBC8F, 0xD3C0, 0xBC90, 0xD3C1, + 0xBC91, 0xD3C2, 0xBC92, 0xD3C3, 0xBC93, 0xD3C6, 0xBC94, 0xD3C7, + 0xBC95, 0xD3CA, 0xBC96, 0xD3CB, 0xBC97, 0xD3CC, 0xBC98, 0xD3CD, + 0xBC99, 0xD3CE, 0xBC9A, 0xD3CF, 0xBC9B, 0xD3D1, 0xBC9C, 0xD3D2, + 0xBC9D, 0xD3D3, 0xBC9E, 0xD3D4, 0xBC9F, 0xD3D5, 0xBCA0, 0xD3D6, + 0xBCA1, 0xC0E5, 0xBCA2, 0xC0E8, 0xBCA3, 0xC0EC, 0xBCA4, 0xC0F4, + 0xBCA5, 0xC0F5, 0xBCA6, 0xC0F7, 0xBCA7, 0xC0F9, 0xBCA8, 0xC100, + 0xBCA9, 0xC104, 0xBCAA, 0xC108, 0xBCAB, 0xC110, 0xBCAC, 0xC115, + 0xBCAD, 0xC11C, 0xBCAE, 0xC11D, 0xBCAF, 0xC11E, 0xBCB0, 0xC11F, + 0xBCB1, 0xC120, 0xBCB2, 0xC123, 0xBCB3, 0xC124, 0xBCB4, 0xC126, + 0xBCB5, 0xC127, 0xBCB6, 0xC12C, 0xBCB7, 0xC12D, 0xBCB8, 0xC12F, + 0xBCB9, 0xC130, 0xBCBA, 0xC131, 0xBCBB, 0xC136, 0xBCBC, 0xC138, + 0xBCBD, 0xC139, 0xBCBE, 0xC13C, 0xBCBF, 0xC140, 0xBCC0, 0xC148, + 0xBCC1, 0xC149, 0xBCC2, 0xC14B, 0xBCC3, 0xC14C, 0xBCC4, 0xC14D, + 0xBCC5, 0xC154, 0xBCC6, 0xC155, 0xBCC7, 0xC158, 0xBCC8, 0xC15C, + 0xBCC9, 0xC164, 0xBCCA, 0xC165, 0xBCCB, 0xC167, 0xBCCC, 0xC168, + 0xBCCD, 0xC169, 0xBCCE, 0xC170, 0xBCCF, 0xC174, 0xBCD0, 0xC178, + 0xBCD1, 0xC185, 0xBCD2, 0xC18C, 0xBCD3, 0xC18D, 0xBCD4, 0xC18E, + 0xBCD5, 0xC190, 0xBCD6, 0xC194, 0xBCD7, 0xC196, 0xBCD8, 0xC19C, + 0xBCD9, 0xC19D, 0xBCDA, 0xC19F, 0xBCDB, 0xC1A1, 0xBCDC, 0xC1A5, + 0xBCDD, 0xC1A8, 0xBCDE, 0xC1A9, 0xBCDF, 0xC1AC, 0xBCE0, 0xC1B0, + 0xBCE1, 0xC1BD, 0xBCE2, 0xC1C4, 0xBCE3, 0xC1C8, 0xBCE4, 0xC1CC, + 0xBCE5, 0xC1D4, 0xBCE6, 0xC1D7, 0xBCE7, 0xC1D8, 0xBCE8, 0xC1E0, + 0xBCE9, 0xC1E4, 0xBCEA, 0xC1E8, 0xBCEB, 0xC1F0, 0xBCEC, 0xC1F1, + 0xBCED, 0xC1F3, 0xBCEE, 0xC1FC, 0xBCEF, 0xC1FD, 0xBCF0, 0xC200, + 0xBCF1, 0xC204, 0xBCF2, 0xC20C, 0xBCF3, 0xC20D, 0xBCF4, 0xC20F, + 0xBCF5, 0xC211, 0xBCF6, 0xC218, 0xBCF7, 0xC219, 0xBCF8, 0xC21C, + 0xBCF9, 0xC21F, 0xBCFA, 0xC220, 0xBCFB, 0xC228, 0xBCFC, 0xC229, + 0xBCFD, 0xC22B, 0xBCFE, 0xC22D, 0xBD41, 0xD3D7, 0xBD42, 0xD3D9, + 0xBD43, 0xD3DA, 0xBD44, 0xD3DB, 0xBD45, 0xD3DC, 0xBD46, 0xD3DD, + 0xBD47, 0xD3DE, 0xBD48, 0xD3DF, 0xBD49, 0xD3E0, 0xBD4A, 0xD3E2, + 0xBD4B, 0xD3E4, 0xBD4C, 0xD3E5, 0xBD4D, 0xD3E6, 0xBD4E, 0xD3E7, + 0xBD4F, 0xD3E8, 0xBD50, 0xD3E9, 0xBD51, 0xD3EA, 0xBD52, 0xD3EB, + 0xBD53, 0xD3EE, 0xBD54, 0xD3EF, 0xBD55, 0xD3F1, 0xBD56, 0xD3F2, + 0xBD57, 0xD3F3, 0xBD58, 0xD3F5, 0xBD59, 0xD3F6, 0xBD5A, 0xD3F7, + 0xBD61, 0xD3F8, 0xBD62, 0xD3F9, 0xBD63, 0xD3FA, 0xBD64, 0xD3FB, + 0xBD65, 0xD3FE, 0xBD66, 0xD400, 0xBD67, 0xD402, 0xBD68, 0xD403, + 0xBD69, 0xD404, 0xBD6A, 0xD405, 0xBD6B, 0xD406, 0xBD6C, 0xD407, + 0xBD6D, 0xD409, 0xBD6E, 0xD40A, 0xBD6F, 0xD40B, 0xBD70, 0xD40C, + 0xBD71, 0xD40D, 0xBD72, 0xD40E, 0xBD73, 0xD40F, 0xBD74, 0xD410, + 0xBD75, 0xD411, 0xBD76, 0xD412, 0xBD77, 0xD413, 0xBD78, 0xD414, + 0xBD79, 0xD415, 0xBD7A, 0xD416, 0xBD81, 0xD417, 0xBD82, 0xD418, + 0xBD83, 0xD419, 0xBD84, 0xD41A, 0xBD85, 0xD41B, 0xBD86, 0xD41C, + 0xBD87, 0xD41E, 0xBD88, 0xD41F, 0xBD89, 0xD420, 0xBD8A, 0xD421, + 0xBD8B, 0xD422, 0xBD8C, 0xD423, 0xBD8D, 0xD424, 0xBD8E, 0xD425, + 0xBD8F, 0xD426, 0xBD90, 0xD427, 0xBD91, 0xD428, 0xBD92, 0xD429, + 0xBD93, 0xD42A, 0xBD94, 0xD42B, 0xBD95, 0xD42C, 0xBD96, 0xD42D, + 0xBD97, 0xD42E, 0xBD98, 0xD42F, 0xBD99, 0xD430, 0xBD9A, 0xD431, + 0xBD9B, 0xD432, 0xBD9C, 0xD433, 0xBD9D, 0xD434, 0xBD9E, 0xD435, + 0xBD9F, 0xD436, 0xBDA0, 0xD437, 0xBDA1, 0xC22F, 0xBDA2, 0xC231, + 0xBDA3, 0xC232, 0xBDA4, 0xC234, 0xBDA5, 0xC248, 0xBDA6, 0xC250, + 0xBDA7, 0xC251, 0xBDA8, 0xC254, 0xBDA9, 0xC258, 0xBDAA, 0xC260, + 0xBDAB, 0xC265, 0xBDAC, 0xC26C, 0xBDAD, 0xC26D, 0xBDAE, 0xC270, + 0xBDAF, 0xC274, 0xBDB0, 0xC27C, 0xBDB1, 0xC27D, 0xBDB2, 0xC27F, + 0xBDB3, 0xC281, 0xBDB4, 0xC288, 0xBDB5, 0xC289, 0xBDB6, 0xC290, + 0xBDB7, 0xC298, 0xBDB8, 0xC29B, 0xBDB9, 0xC29D, 0xBDBA, 0xC2A4, + 0xBDBB, 0xC2A5, 0xBDBC, 0xC2A8, 0xBDBD, 0xC2AC, 0xBDBE, 0xC2AD, + 0xBDBF, 0xC2B4, 0xBDC0, 0xC2B5, 0xBDC1, 0xC2B7, 0xBDC2, 0xC2B9, + 0xBDC3, 0xC2DC, 0xBDC4, 0xC2DD, 0xBDC5, 0xC2E0, 0xBDC6, 0xC2E3, + 0xBDC7, 0xC2E4, 0xBDC8, 0xC2EB, 0xBDC9, 0xC2EC, 0xBDCA, 0xC2ED, + 0xBDCB, 0xC2EF, 0xBDCC, 0xC2F1, 0xBDCD, 0xC2F6, 0xBDCE, 0xC2F8, + 0xBDCF, 0xC2F9, 0xBDD0, 0xC2FB, 0xBDD1, 0xC2FC, 0xBDD2, 0xC300, + 0xBDD3, 0xC308, 0xBDD4, 0xC309, 0xBDD5, 0xC30C, 0xBDD6, 0xC30D, + 0xBDD7, 0xC313, 0xBDD8, 0xC314, 0xBDD9, 0xC315, 0xBDDA, 0xC318, + 0xBDDB, 0xC31C, 0xBDDC, 0xC324, 0xBDDD, 0xC325, 0xBDDE, 0xC328, + 0xBDDF, 0xC329, 0xBDE0, 0xC345, 0xBDE1, 0xC368, 0xBDE2, 0xC369, + 0xBDE3, 0xC36C, 0xBDE4, 0xC370, 0xBDE5, 0xC372, 0xBDE6, 0xC378, + 0xBDE7, 0xC379, 0xBDE8, 0xC37C, 0xBDE9, 0xC37D, 0xBDEA, 0xC384, + 0xBDEB, 0xC388, 0xBDEC, 0xC38C, 0xBDED, 0xC3C0, 0xBDEE, 0xC3D8, + 0xBDEF, 0xC3D9, 0xBDF0, 0xC3DC, 0xBDF1, 0xC3DF, 0xBDF2, 0xC3E0, + 0xBDF3, 0xC3E2, 0xBDF4, 0xC3E8, 0xBDF5, 0xC3E9, 0xBDF6, 0xC3ED, + 0xBDF7, 0xC3F4, 0xBDF8, 0xC3F5, 0xBDF9, 0xC3F8, 0xBDFA, 0xC408, + 0xBDFB, 0xC410, 0xBDFC, 0xC424, 0xBDFD, 0xC42C, 0xBDFE, 0xC430, + 0xBE41, 0xD438, 0xBE42, 0xD439, 0xBE43, 0xD43A, 0xBE44, 0xD43B, + 0xBE45, 0xD43C, 0xBE46, 0xD43D, 0xBE47, 0xD43E, 0xBE48, 0xD43F, + 0xBE49, 0xD441, 0xBE4A, 0xD442, 0xBE4B, 0xD443, 0xBE4C, 0xD445, + 0xBE4D, 0xD446, 0xBE4E, 0xD447, 0xBE4F, 0xD448, 0xBE50, 0xD449, + 0xBE51, 0xD44A, 0xBE52, 0xD44B, 0xBE53, 0xD44C, 0xBE54, 0xD44D, + 0xBE55, 0xD44E, 0xBE56, 0xD44F, 0xBE57, 0xD450, 0xBE58, 0xD451, + 0xBE59, 0xD452, 0xBE5A, 0xD453, 0xBE61, 0xD454, 0xBE62, 0xD455, + 0xBE63, 0xD456, 0xBE64, 0xD457, 0xBE65, 0xD458, 0xBE66, 0xD459, + 0xBE67, 0xD45A, 0xBE68, 0xD45B, 0xBE69, 0xD45D, 0xBE6A, 0xD45E, + 0xBE6B, 0xD45F, 0xBE6C, 0xD461, 0xBE6D, 0xD462, 0xBE6E, 0xD463, + 0xBE6F, 0xD465, 0xBE70, 0xD466, 0xBE71, 0xD467, 0xBE72, 0xD468, + 0xBE73, 0xD469, 0xBE74, 0xD46A, 0xBE75, 0xD46B, 0xBE76, 0xD46C, + 0xBE77, 0xD46E, 0xBE78, 0xD470, 0xBE79, 0xD471, 0xBE7A, 0xD472, + 0xBE81, 0xD473, 0xBE82, 0xD474, 0xBE83, 0xD475, 0xBE84, 0xD476, + 0xBE85, 0xD477, 0xBE86, 0xD47A, 0xBE87, 0xD47B, 0xBE88, 0xD47D, + 0xBE89, 0xD47E, 0xBE8A, 0xD481, 0xBE8B, 0xD483, 0xBE8C, 0xD484, + 0xBE8D, 0xD485, 0xBE8E, 0xD486, 0xBE8F, 0xD487, 0xBE90, 0xD48A, + 0xBE91, 0xD48C, 0xBE92, 0xD48E, 0xBE93, 0xD48F, 0xBE94, 0xD490, + 0xBE95, 0xD491, 0xBE96, 0xD492, 0xBE97, 0xD493, 0xBE98, 0xD495, + 0xBE99, 0xD496, 0xBE9A, 0xD497, 0xBE9B, 0xD498, 0xBE9C, 0xD499, + 0xBE9D, 0xD49A, 0xBE9E, 0xD49B, 0xBE9F, 0xD49C, 0xBEA0, 0xD49D, + 0xBEA1, 0xC434, 0xBEA2, 0xC43C, 0xBEA3, 0xC43D, 0xBEA4, 0xC448, + 0xBEA5, 0xC464, 0xBEA6, 0xC465, 0xBEA7, 0xC468, 0xBEA8, 0xC46C, + 0xBEA9, 0xC474, 0xBEAA, 0xC475, 0xBEAB, 0xC479, 0xBEAC, 0xC480, + 0xBEAD, 0xC494, 0xBEAE, 0xC49C, 0xBEAF, 0xC4B8, 0xBEB0, 0xC4BC, + 0xBEB1, 0xC4E9, 0xBEB2, 0xC4F0, 0xBEB3, 0xC4F1, 0xBEB4, 0xC4F4, + 0xBEB5, 0xC4F8, 0xBEB6, 0xC4FA, 0xBEB7, 0xC4FF, 0xBEB8, 0xC500, + 0xBEB9, 0xC501, 0xBEBA, 0xC50C, 0xBEBB, 0xC510, 0xBEBC, 0xC514, + 0xBEBD, 0xC51C, 0xBEBE, 0xC528, 0xBEBF, 0xC529, 0xBEC0, 0xC52C, + 0xBEC1, 0xC530, 0xBEC2, 0xC538, 0xBEC3, 0xC539, 0xBEC4, 0xC53B, + 0xBEC5, 0xC53D, 0xBEC6, 0xC544, 0xBEC7, 0xC545, 0xBEC8, 0xC548, + 0xBEC9, 0xC549, 0xBECA, 0xC54A, 0xBECB, 0xC54C, 0xBECC, 0xC54D, + 0xBECD, 0xC54E, 0xBECE, 0xC553, 0xBECF, 0xC554, 0xBED0, 0xC555, + 0xBED1, 0xC557, 0xBED2, 0xC558, 0xBED3, 0xC559, 0xBED4, 0xC55D, + 0xBED5, 0xC55E, 0xBED6, 0xC560, 0xBED7, 0xC561, 0xBED8, 0xC564, + 0xBED9, 0xC568, 0xBEDA, 0xC570, 0xBEDB, 0xC571, 0xBEDC, 0xC573, + 0xBEDD, 0xC574, 0xBEDE, 0xC575, 0xBEDF, 0xC57C, 0xBEE0, 0xC57D, + 0xBEE1, 0xC580, 0xBEE2, 0xC584, 0xBEE3, 0xC587, 0xBEE4, 0xC58C, + 0xBEE5, 0xC58D, 0xBEE6, 0xC58F, 0xBEE7, 0xC591, 0xBEE8, 0xC595, + 0xBEE9, 0xC597, 0xBEEA, 0xC598, 0xBEEB, 0xC59C, 0xBEEC, 0xC5A0, + 0xBEED, 0xC5A9, 0xBEEE, 0xC5B4, 0xBEEF, 0xC5B5, 0xBEF0, 0xC5B8, + 0xBEF1, 0xC5B9, 0xBEF2, 0xC5BB, 0xBEF3, 0xC5BC, 0xBEF4, 0xC5BD, + 0xBEF5, 0xC5BE, 0xBEF6, 0xC5C4, 0xBEF7, 0xC5C5, 0xBEF8, 0xC5C6, + 0xBEF9, 0xC5C7, 0xBEFA, 0xC5C8, 0xBEFB, 0xC5C9, 0xBEFC, 0xC5CA, + 0xBEFD, 0xC5CC, 0xBEFE, 0xC5CE, 0xBF41, 0xD49E, 0xBF42, 0xD49F, + 0xBF43, 0xD4A0, 0xBF44, 0xD4A1, 0xBF45, 0xD4A2, 0xBF46, 0xD4A3, + 0xBF47, 0xD4A4, 0xBF48, 0xD4A5, 0xBF49, 0xD4A6, 0xBF4A, 0xD4A7, + 0xBF4B, 0xD4A8, 0xBF4C, 0xD4AA, 0xBF4D, 0xD4AB, 0xBF4E, 0xD4AC, + 0xBF4F, 0xD4AD, 0xBF50, 0xD4AE, 0xBF51, 0xD4AF, 0xBF52, 0xD4B0, + 0xBF53, 0xD4B1, 0xBF54, 0xD4B2, 0xBF55, 0xD4B3, 0xBF56, 0xD4B4, + 0xBF57, 0xD4B5, 0xBF58, 0xD4B6, 0xBF59, 0xD4B7, 0xBF5A, 0xD4B8, + 0xBF61, 0xD4B9, 0xBF62, 0xD4BA, 0xBF63, 0xD4BB, 0xBF64, 0xD4BC, + 0xBF65, 0xD4BD, 0xBF66, 0xD4BE, 0xBF67, 0xD4BF, 0xBF68, 0xD4C0, + 0xBF69, 0xD4C1, 0xBF6A, 0xD4C2, 0xBF6B, 0xD4C3, 0xBF6C, 0xD4C4, + 0xBF6D, 0xD4C5, 0xBF6E, 0xD4C6, 0xBF6F, 0xD4C7, 0xBF70, 0xD4C8, + 0xBF71, 0xD4C9, 0xBF72, 0xD4CA, 0xBF73, 0xD4CB, 0xBF74, 0xD4CD, + 0xBF75, 0xD4CE, 0xBF76, 0xD4CF, 0xBF77, 0xD4D1, 0xBF78, 0xD4D2, + 0xBF79, 0xD4D3, 0xBF7A, 0xD4D5, 0xBF81, 0xD4D6, 0xBF82, 0xD4D7, + 0xBF83, 0xD4D8, 0xBF84, 0xD4D9, 0xBF85, 0xD4DA, 0xBF86, 0xD4DB, + 0xBF87, 0xD4DD, 0xBF88, 0xD4DE, 0xBF89, 0xD4E0, 0xBF8A, 0xD4E1, + 0xBF8B, 0xD4E2, 0xBF8C, 0xD4E3, 0xBF8D, 0xD4E4, 0xBF8E, 0xD4E5, + 0xBF8F, 0xD4E6, 0xBF90, 0xD4E7, 0xBF91, 0xD4E9, 0xBF92, 0xD4EA, + 0xBF93, 0xD4EB, 0xBF94, 0xD4ED, 0xBF95, 0xD4EE, 0xBF96, 0xD4EF, + 0xBF97, 0xD4F1, 0xBF98, 0xD4F2, 0xBF99, 0xD4F3, 0xBF9A, 0xD4F4, + 0xBF9B, 0xD4F5, 0xBF9C, 0xD4F6, 0xBF9D, 0xD4F7, 0xBF9E, 0xD4F9, + 0xBF9F, 0xD4FA, 0xBFA0, 0xD4FC, 0xBFA1, 0xC5D0, 0xBFA2, 0xC5D1, + 0xBFA3, 0xC5D4, 0xBFA4, 0xC5D8, 0xBFA5, 0xC5E0, 0xBFA6, 0xC5E1, + 0xBFA7, 0xC5E3, 0xBFA8, 0xC5E5, 0xBFA9, 0xC5EC, 0xBFAA, 0xC5ED, + 0xBFAB, 0xC5EE, 0xBFAC, 0xC5F0, 0xBFAD, 0xC5F4, 0xBFAE, 0xC5F6, + 0xBFAF, 0xC5F7, 0xBFB0, 0xC5FC, 0xBFB1, 0xC5FD, 0xBFB2, 0xC5FE, + 0xBFB3, 0xC5FF, 0xBFB4, 0xC600, 0xBFB5, 0xC601, 0xBFB6, 0xC605, + 0xBFB7, 0xC606, 0xBFB8, 0xC607, 0xBFB9, 0xC608, 0xBFBA, 0xC60C, + 0xBFBB, 0xC610, 0xBFBC, 0xC618, 0xBFBD, 0xC619, 0xBFBE, 0xC61B, + 0xBFBF, 0xC61C, 0xBFC0, 0xC624, 0xBFC1, 0xC625, 0xBFC2, 0xC628, + 0xBFC3, 0xC62C, 0xBFC4, 0xC62D, 0xBFC5, 0xC62E, 0xBFC6, 0xC630, + 0xBFC7, 0xC633, 0xBFC8, 0xC634, 0xBFC9, 0xC635, 0xBFCA, 0xC637, + 0xBFCB, 0xC639, 0xBFCC, 0xC63B, 0xBFCD, 0xC640, 0xBFCE, 0xC641, + 0xBFCF, 0xC644, 0xBFD0, 0xC648, 0xBFD1, 0xC650, 0xBFD2, 0xC651, + 0xBFD3, 0xC653, 0xBFD4, 0xC654, 0xBFD5, 0xC655, 0xBFD6, 0xC65C, + 0xBFD7, 0xC65D, 0xBFD8, 0xC660, 0xBFD9, 0xC66C, 0xBFDA, 0xC66F, + 0xBFDB, 0xC671, 0xBFDC, 0xC678, 0xBFDD, 0xC679, 0xBFDE, 0xC67C, + 0xBFDF, 0xC680, 0xBFE0, 0xC688, 0xBFE1, 0xC689, 0xBFE2, 0xC68B, + 0xBFE3, 0xC68D, 0xBFE4, 0xC694, 0xBFE5, 0xC695, 0xBFE6, 0xC698, + 0xBFE7, 0xC69C, 0xBFE8, 0xC6A4, 0xBFE9, 0xC6A5, 0xBFEA, 0xC6A7, + 0xBFEB, 0xC6A9, 0xBFEC, 0xC6B0, 0xBFED, 0xC6B1, 0xBFEE, 0xC6B4, + 0xBFEF, 0xC6B8, 0xBFF0, 0xC6B9, 0xBFF1, 0xC6BA, 0xBFF2, 0xC6C0, + 0xBFF3, 0xC6C1, 0xBFF4, 0xC6C3, 0xBFF5, 0xC6C5, 0xBFF6, 0xC6CC, + 0xBFF7, 0xC6CD, 0xBFF8, 0xC6D0, 0xBFF9, 0xC6D4, 0xBFFA, 0xC6DC, + 0xBFFB, 0xC6DD, 0xBFFC, 0xC6E0, 0xBFFD, 0xC6E1, 0xBFFE, 0xC6E8, + 0xC041, 0xD4FE, 0xC042, 0xD4FF, 0xC043, 0xD500, 0xC044, 0xD501, + 0xC045, 0xD502, 0xC046, 0xD503, 0xC047, 0xD505, 0xC048, 0xD506, + 0xC049, 0xD507, 0xC04A, 0xD509, 0xC04B, 0xD50A, 0xC04C, 0xD50B, + 0xC04D, 0xD50D, 0xC04E, 0xD50E, 0xC04F, 0xD50F, 0xC050, 0xD510, + 0xC051, 0xD511, 0xC052, 0xD512, 0xC053, 0xD513, 0xC054, 0xD516, + 0xC055, 0xD518, 0xC056, 0xD519, 0xC057, 0xD51A, 0xC058, 0xD51B, + 0xC059, 0xD51C, 0xC05A, 0xD51D, 0xC061, 0xD51E, 0xC062, 0xD51F, + 0xC063, 0xD520, 0xC064, 0xD521, 0xC065, 0xD522, 0xC066, 0xD523, + 0xC067, 0xD524, 0xC068, 0xD525, 0xC069, 0xD526, 0xC06A, 0xD527, + 0xC06B, 0xD528, 0xC06C, 0xD529, 0xC06D, 0xD52A, 0xC06E, 0xD52B, + 0xC06F, 0xD52C, 0xC070, 0xD52D, 0xC071, 0xD52E, 0xC072, 0xD52F, + 0xC073, 0xD530, 0xC074, 0xD531, 0xC075, 0xD532, 0xC076, 0xD533, + 0xC077, 0xD534, 0xC078, 0xD535, 0xC079, 0xD536, 0xC07A, 0xD537, + 0xC081, 0xD538, 0xC082, 0xD539, 0xC083, 0xD53A, 0xC084, 0xD53B, + 0xC085, 0xD53E, 0xC086, 0xD53F, 0xC087, 0xD541, 0xC088, 0xD542, + 0xC089, 0xD543, 0xC08A, 0xD545, 0xC08B, 0xD546, 0xC08C, 0xD547, + 0xC08D, 0xD548, 0xC08E, 0xD549, 0xC08F, 0xD54A, 0xC090, 0xD54B, + 0xC091, 0xD54E, 0xC092, 0xD550, 0xC093, 0xD552, 0xC094, 0xD553, + 0xC095, 0xD554, 0xC096, 0xD555, 0xC097, 0xD556, 0xC098, 0xD557, + 0xC099, 0xD55A, 0xC09A, 0xD55B, 0xC09B, 0xD55D, 0xC09C, 0xD55E, + 0xC09D, 0xD55F, 0xC09E, 0xD561, 0xC09F, 0xD562, 0xC0A0, 0xD563, + 0xC0A1, 0xC6E9, 0xC0A2, 0xC6EC, 0xC0A3, 0xC6F0, 0xC0A4, 0xC6F8, + 0xC0A5, 0xC6F9, 0xC0A6, 0xC6FD, 0xC0A7, 0xC704, 0xC0A8, 0xC705, + 0xC0A9, 0xC708, 0xC0AA, 0xC70C, 0xC0AB, 0xC714, 0xC0AC, 0xC715, + 0xC0AD, 0xC717, 0xC0AE, 0xC719, 0xC0AF, 0xC720, 0xC0B0, 0xC721, + 0xC0B1, 0xC724, 0xC0B2, 0xC728, 0xC0B3, 0xC730, 0xC0B4, 0xC731, + 0xC0B5, 0xC733, 0xC0B6, 0xC735, 0xC0B7, 0xC737, 0xC0B8, 0xC73C, + 0xC0B9, 0xC73D, 0xC0BA, 0xC740, 0xC0BB, 0xC744, 0xC0BC, 0xC74A, + 0xC0BD, 0xC74C, 0xC0BE, 0xC74D, 0xC0BF, 0xC74F, 0xC0C0, 0xC751, + 0xC0C1, 0xC752, 0xC0C2, 0xC753, 0xC0C3, 0xC754, 0xC0C4, 0xC755, + 0xC0C5, 0xC756, 0xC0C6, 0xC757, 0xC0C7, 0xC758, 0xC0C8, 0xC75C, + 0xC0C9, 0xC760, 0xC0CA, 0xC768, 0xC0CB, 0xC76B, 0xC0CC, 0xC774, + 0xC0CD, 0xC775, 0xC0CE, 0xC778, 0xC0CF, 0xC77C, 0xC0D0, 0xC77D, + 0xC0D1, 0xC77E, 0xC0D2, 0xC783, 0xC0D3, 0xC784, 0xC0D4, 0xC785, + 0xC0D5, 0xC787, 0xC0D6, 0xC788, 0xC0D7, 0xC789, 0xC0D8, 0xC78A, + 0xC0D9, 0xC78E, 0xC0DA, 0xC790, 0xC0DB, 0xC791, 0xC0DC, 0xC794, + 0xC0DD, 0xC796, 0xC0DE, 0xC797, 0xC0DF, 0xC798, 0xC0E0, 0xC79A, + 0xC0E1, 0xC7A0, 0xC0E2, 0xC7A1, 0xC0E3, 0xC7A3, 0xC0E4, 0xC7A4, + 0xC0E5, 0xC7A5, 0xC0E6, 0xC7A6, 0xC0E7, 0xC7AC, 0xC0E8, 0xC7AD, + 0xC0E9, 0xC7B0, 0xC0EA, 0xC7B4, 0xC0EB, 0xC7BC, 0xC0EC, 0xC7BD, + 0xC0ED, 0xC7BF, 0xC0EE, 0xC7C0, 0xC0EF, 0xC7C1, 0xC0F0, 0xC7C8, + 0xC0F1, 0xC7C9, 0xC0F2, 0xC7CC, 0xC0F3, 0xC7CE, 0xC0F4, 0xC7D0, + 0xC0F5, 0xC7D8, 0xC0F6, 0xC7DD, 0xC0F7, 0xC7E4, 0xC0F8, 0xC7E8, + 0xC0F9, 0xC7EC, 0xC0FA, 0xC800, 0xC0FB, 0xC801, 0xC0FC, 0xC804, + 0xC0FD, 0xC808, 0xC0FE, 0xC80A, 0xC141, 0xD564, 0xC142, 0xD566, + 0xC143, 0xD567, 0xC144, 0xD56A, 0xC145, 0xD56C, 0xC146, 0xD56E, + 0xC147, 0xD56F, 0xC148, 0xD570, 0xC149, 0xD571, 0xC14A, 0xD572, + 0xC14B, 0xD573, 0xC14C, 0xD576, 0xC14D, 0xD577, 0xC14E, 0xD579, + 0xC14F, 0xD57A, 0xC150, 0xD57B, 0xC151, 0xD57D, 0xC152, 0xD57E, + 0xC153, 0xD57F, 0xC154, 0xD580, 0xC155, 0xD581, 0xC156, 0xD582, + 0xC157, 0xD583, 0xC158, 0xD586, 0xC159, 0xD58A, 0xC15A, 0xD58B, + 0xC161, 0xD58C, 0xC162, 0xD58D, 0xC163, 0xD58E, 0xC164, 0xD58F, + 0xC165, 0xD591, 0xC166, 0xD592, 0xC167, 0xD593, 0xC168, 0xD594, + 0xC169, 0xD595, 0xC16A, 0xD596, 0xC16B, 0xD597, 0xC16C, 0xD598, + 0xC16D, 0xD599, 0xC16E, 0xD59A, 0xC16F, 0xD59B, 0xC170, 0xD59C, + 0xC171, 0xD59D, 0xC172, 0xD59E, 0xC173, 0xD59F, 0xC174, 0xD5A0, + 0xC175, 0xD5A1, 0xC176, 0xD5A2, 0xC177, 0xD5A3, 0xC178, 0xD5A4, + 0xC179, 0xD5A6, 0xC17A, 0xD5A7, 0xC181, 0xD5A8, 0xC182, 0xD5A9, + 0xC183, 0xD5AA, 0xC184, 0xD5AB, 0xC185, 0xD5AC, 0xC186, 0xD5AD, + 0xC187, 0xD5AE, 0xC188, 0xD5AF, 0xC189, 0xD5B0, 0xC18A, 0xD5B1, + 0xC18B, 0xD5B2, 0xC18C, 0xD5B3, 0xC18D, 0xD5B4, 0xC18E, 0xD5B5, + 0xC18F, 0xD5B6, 0xC190, 0xD5B7, 0xC191, 0xD5B8, 0xC192, 0xD5B9, + 0xC193, 0xD5BA, 0xC194, 0xD5BB, 0xC195, 0xD5BC, 0xC196, 0xD5BD, + 0xC197, 0xD5BE, 0xC198, 0xD5BF, 0xC199, 0xD5C0, 0xC19A, 0xD5C1, + 0xC19B, 0xD5C2, 0xC19C, 0xD5C3, 0xC19D, 0xD5C4, 0xC19E, 0xD5C5, + 0xC19F, 0xD5C6, 0xC1A0, 0xD5C7, 0xC1A1, 0xC810, 0xC1A2, 0xC811, + 0xC1A3, 0xC813, 0xC1A4, 0xC815, 0xC1A5, 0xC816, 0xC1A6, 0xC81C, + 0xC1A7, 0xC81D, 0xC1A8, 0xC820, 0xC1A9, 0xC824, 0xC1AA, 0xC82C, + 0xC1AB, 0xC82D, 0xC1AC, 0xC82F, 0xC1AD, 0xC831, 0xC1AE, 0xC838, + 0xC1AF, 0xC83C, 0xC1B0, 0xC840, 0xC1B1, 0xC848, 0xC1B2, 0xC849, + 0xC1B3, 0xC84C, 0xC1B4, 0xC84D, 0xC1B5, 0xC854, 0xC1B6, 0xC870, + 0xC1B7, 0xC871, 0xC1B8, 0xC874, 0xC1B9, 0xC878, 0xC1BA, 0xC87A, + 0xC1BB, 0xC880, 0xC1BC, 0xC881, 0xC1BD, 0xC883, 0xC1BE, 0xC885, + 0xC1BF, 0xC886, 0xC1C0, 0xC887, 0xC1C1, 0xC88B, 0xC1C2, 0xC88C, + 0xC1C3, 0xC88D, 0xC1C4, 0xC894, 0xC1C5, 0xC89D, 0xC1C6, 0xC89F, + 0xC1C7, 0xC8A1, 0xC1C8, 0xC8A8, 0xC1C9, 0xC8BC, 0xC1CA, 0xC8BD, + 0xC1CB, 0xC8C4, 0xC1CC, 0xC8C8, 0xC1CD, 0xC8CC, 0xC1CE, 0xC8D4, + 0xC1CF, 0xC8D5, 0xC1D0, 0xC8D7, 0xC1D1, 0xC8D9, 0xC1D2, 0xC8E0, + 0xC1D3, 0xC8E1, 0xC1D4, 0xC8E4, 0xC1D5, 0xC8F5, 0xC1D6, 0xC8FC, + 0xC1D7, 0xC8FD, 0xC1D8, 0xC900, 0xC1D9, 0xC904, 0xC1DA, 0xC905, + 0xC1DB, 0xC906, 0xC1DC, 0xC90C, 0xC1DD, 0xC90D, 0xC1DE, 0xC90F, + 0xC1DF, 0xC911, 0xC1E0, 0xC918, 0xC1E1, 0xC92C, 0xC1E2, 0xC934, + 0xC1E3, 0xC950, 0xC1E4, 0xC951, 0xC1E5, 0xC954, 0xC1E6, 0xC958, + 0xC1E7, 0xC960, 0xC1E8, 0xC961, 0xC1E9, 0xC963, 0xC1EA, 0xC96C, + 0xC1EB, 0xC970, 0xC1EC, 0xC974, 0xC1ED, 0xC97C, 0xC1EE, 0xC988, + 0xC1EF, 0xC989, 0xC1F0, 0xC98C, 0xC1F1, 0xC990, 0xC1F2, 0xC998, + 0xC1F3, 0xC999, 0xC1F4, 0xC99B, 0xC1F5, 0xC99D, 0xC1F6, 0xC9C0, + 0xC1F7, 0xC9C1, 0xC1F8, 0xC9C4, 0xC1F9, 0xC9C7, 0xC1FA, 0xC9C8, + 0xC1FB, 0xC9CA, 0xC1FC, 0xC9D0, 0xC1FD, 0xC9D1, 0xC1FE, 0xC9D3, + 0xC241, 0xD5CA, 0xC242, 0xD5CB, 0xC243, 0xD5CD, 0xC244, 0xD5CE, + 0xC245, 0xD5CF, 0xC246, 0xD5D1, 0xC247, 0xD5D3, 0xC248, 0xD5D4, + 0xC249, 0xD5D5, 0xC24A, 0xD5D6, 0xC24B, 0xD5D7, 0xC24C, 0xD5DA, + 0xC24D, 0xD5DC, 0xC24E, 0xD5DE, 0xC24F, 0xD5DF, 0xC250, 0xD5E0, + 0xC251, 0xD5E1, 0xC252, 0xD5E2, 0xC253, 0xD5E3, 0xC254, 0xD5E6, + 0xC255, 0xD5E7, 0xC256, 0xD5E9, 0xC257, 0xD5EA, 0xC258, 0xD5EB, + 0xC259, 0xD5ED, 0xC25A, 0xD5EE, 0xC261, 0xD5EF, 0xC262, 0xD5F0, + 0xC263, 0xD5F1, 0xC264, 0xD5F2, 0xC265, 0xD5F3, 0xC266, 0xD5F6, + 0xC267, 0xD5F8, 0xC268, 0xD5FA, 0xC269, 0xD5FB, 0xC26A, 0xD5FC, + 0xC26B, 0xD5FD, 0xC26C, 0xD5FE, 0xC26D, 0xD5FF, 0xC26E, 0xD602, + 0xC26F, 0xD603, 0xC270, 0xD605, 0xC271, 0xD606, 0xC272, 0xD607, + 0xC273, 0xD609, 0xC274, 0xD60A, 0xC275, 0xD60B, 0xC276, 0xD60C, + 0xC277, 0xD60D, 0xC278, 0xD60E, 0xC279, 0xD60F, 0xC27A, 0xD612, + 0xC281, 0xD616, 0xC282, 0xD617, 0xC283, 0xD618, 0xC284, 0xD619, + 0xC285, 0xD61A, 0xC286, 0xD61B, 0xC287, 0xD61D, 0xC288, 0xD61E, + 0xC289, 0xD61F, 0xC28A, 0xD621, 0xC28B, 0xD622, 0xC28C, 0xD623, + 0xC28D, 0xD625, 0xC28E, 0xD626, 0xC28F, 0xD627, 0xC290, 0xD628, + 0xC291, 0xD629, 0xC292, 0xD62A, 0xC293, 0xD62B, 0xC294, 0xD62C, + 0xC295, 0xD62E, 0xC296, 0xD62F, 0xC297, 0xD630, 0xC298, 0xD631, + 0xC299, 0xD632, 0xC29A, 0xD633, 0xC29B, 0xD634, 0xC29C, 0xD635, + 0xC29D, 0xD636, 0xC29E, 0xD637, 0xC29F, 0xD63A, 0xC2A0, 0xD63B, + 0xC2A1, 0xC9D5, 0xC2A2, 0xC9D6, 0xC2A3, 0xC9D9, 0xC2A4, 0xC9DA, + 0xC2A5, 0xC9DC, 0xC2A6, 0xC9DD, 0xC2A7, 0xC9E0, 0xC2A8, 0xC9E2, + 0xC2A9, 0xC9E4, 0xC2AA, 0xC9E7, 0xC2AB, 0xC9EC, 0xC2AC, 0xC9ED, + 0xC2AD, 0xC9EF, 0xC2AE, 0xC9F0, 0xC2AF, 0xC9F1, 0xC2B0, 0xC9F8, + 0xC2B1, 0xC9F9, 0xC2B2, 0xC9FC, 0xC2B3, 0xCA00, 0xC2B4, 0xCA08, + 0xC2B5, 0xCA09, 0xC2B6, 0xCA0B, 0xC2B7, 0xCA0C, 0xC2B8, 0xCA0D, + 0xC2B9, 0xCA14, 0xC2BA, 0xCA18, 0xC2BB, 0xCA29, 0xC2BC, 0xCA4C, + 0xC2BD, 0xCA4D, 0xC2BE, 0xCA50, 0xC2BF, 0xCA54, 0xC2C0, 0xCA5C, + 0xC2C1, 0xCA5D, 0xC2C2, 0xCA5F, 0xC2C3, 0xCA60, 0xC2C4, 0xCA61, + 0xC2C5, 0xCA68, 0xC2C6, 0xCA7D, 0xC2C7, 0xCA84, 0xC2C8, 0xCA98, + 0xC2C9, 0xCABC, 0xC2CA, 0xCABD, 0xC2CB, 0xCAC0, 0xC2CC, 0xCAC4, + 0xC2CD, 0xCACC, 0xC2CE, 0xCACD, 0xC2CF, 0xCACF, 0xC2D0, 0xCAD1, + 0xC2D1, 0xCAD3, 0xC2D2, 0xCAD8, 0xC2D3, 0xCAD9, 0xC2D4, 0xCAE0, + 0xC2D5, 0xCAEC, 0xC2D6, 0xCAF4, 0xC2D7, 0xCB08, 0xC2D8, 0xCB10, + 0xC2D9, 0xCB14, 0xC2DA, 0xCB18, 0xC2DB, 0xCB20, 0xC2DC, 0xCB21, + 0xC2DD, 0xCB41, 0xC2DE, 0xCB48, 0xC2DF, 0xCB49, 0xC2E0, 0xCB4C, + 0xC2E1, 0xCB50, 0xC2E2, 0xCB58, 0xC2E3, 0xCB59, 0xC2E4, 0xCB5D, + 0xC2E5, 0xCB64, 0xC2E6, 0xCB78, 0xC2E7, 0xCB79, 0xC2E8, 0xCB9C, + 0xC2E9, 0xCBB8, 0xC2EA, 0xCBD4, 0xC2EB, 0xCBE4, 0xC2EC, 0xCBE7, + 0xC2ED, 0xCBE9, 0xC2EE, 0xCC0C, 0xC2EF, 0xCC0D, 0xC2F0, 0xCC10, + 0xC2F1, 0xCC14, 0xC2F2, 0xCC1C, 0xC2F3, 0xCC1D, 0xC2F4, 0xCC21, + 0xC2F5, 0xCC22, 0xC2F6, 0xCC27, 0xC2F7, 0xCC28, 0xC2F8, 0xCC29, + 0xC2F9, 0xCC2C, 0xC2FA, 0xCC2E, 0xC2FB, 0xCC30, 0xC2FC, 0xCC38, + 0xC2FD, 0xCC39, 0xC2FE, 0xCC3B, 0xC341, 0xD63D, 0xC342, 0xD63E, + 0xC343, 0xD63F, 0xC344, 0xD641, 0xC345, 0xD642, 0xC346, 0xD643, + 0xC347, 0xD644, 0xC348, 0xD646, 0xC349, 0xD647, 0xC34A, 0xD64A, + 0xC34B, 0xD64C, 0xC34C, 0xD64E, 0xC34D, 0xD64F, 0xC34E, 0xD650, + 0xC34F, 0xD652, 0xC350, 0xD653, 0xC351, 0xD656, 0xC352, 0xD657, + 0xC353, 0xD659, 0xC354, 0xD65A, 0xC355, 0xD65B, 0xC356, 0xD65D, + 0xC357, 0xD65E, 0xC358, 0xD65F, 0xC359, 0xD660, 0xC35A, 0xD661, + 0xC361, 0xD662, 0xC362, 0xD663, 0xC363, 0xD664, 0xC364, 0xD665, + 0xC365, 0xD666, 0xC366, 0xD668, 0xC367, 0xD66A, 0xC368, 0xD66B, + 0xC369, 0xD66C, 0xC36A, 0xD66D, 0xC36B, 0xD66E, 0xC36C, 0xD66F, + 0xC36D, 0xD672, 0xC36E, 0xD673, 0xC36F, 0xD675, 0xC370, 0xD676, + 0xC371, 0xD677, 0xC372, 0xD678, 0xC373, 0xD679, 0xC374, 0xD67A, + 0xC375, 0xD67B, 0xC376, 0xD67C, 0xC377, 0xD67D, 0xC378, 0xD67E, + 0xC379, 0xD67F, 0xC37A, 0xD680, 0xC381, 0xD681, 0xC382, 0xD682, + 0xC383, 0xD684, 0xC384, 0xD686, 0xC385, 0xD687, 0xC386, 0xD688, + 0xC387, 0xD689, 0xC388, 0xD68A, 0xC389, 0xD68B, 0xC38A, 0xD68E, + 0xC38B, 0xD68F, 0xC38C, 0xD691, 0xC38D, 0xD692, 0xC38E, 0xD693, + 0xC38F, 0xD695, 0xC390, 0xD696, 0xC391, 0xD697, 0xC392, 0xD698, + 0xC393, 0xD699, 0xC394, 0xD69A, 0xC395, 0xD69B, 0xC396, 0xD69C, + 0xC397, 0xD69E, 0xC398, 0xD6A0, 0xC399, 0xD6A2, 0xC39A, 0xD6A3, + 0xC39B, 0xD6A4, 0xC39C, 0xD6A5, 0xC39D, 0xD6A6, 0xC39E, 0xD6A7, + 0xC39F, 0xD6A9, 0xC3A0, 0xD6AA, 0xC3A1, 0xCC3C, 0xC3A2, 0xCC3D, + 0xC3A3, 0xCC3E, 0xC3A4, 0xCC44, 0xC3A5, 0xCC45, 0xC3A6, 0xCC48, + 0xC3A7, 0xCC4C, 0xC3A8, 0xCC54, 0xC3A9, 0xCC55, 0xC3AA, 0xCC57, + 0xC3AB, 0xCC58, 0xC3AC, 0xCC59, 0xC3AD, 0xCC60, 0xC3AE, 0xCC64, + 0xC3AF, 0xCC66, 0xC3B0, 0xCC68, 0xC3B1, 0xCC70, 0xC3B2, 0xCC75, + 0xC3B3, 0xCC98, 0xC3B4, 0xCC99, 0xC3B5, 0xCC9C, 0xC3B6, 0xCCA0, + 0xC3B7, 0xCCA8, 0xC3B8, 0xCCA9, 0xC3B9, 0xCCAB, 0xC3BA, 0xCCAC, + 0xC3BB, 0xCCAD, 0xC3BC, 0xCCB4, 0xC3BD, 0xCCB5, 0xC3BE, 0xCCB8, + 0xC3BF, 0xCCBC, 0xC3C0, 0xCCC4, 0xC3C1, 0xCCC5, 0xC3C2, 0xCCC7, + 0xC3C3, 0xCCC9, 0xC3C4, 0xCCD0, 0xC3C5, 0xCCD4, 0xC3C6, 0xCCE4, + 0xC3C7, 0xCCEC, 0xC3C8, 0xCCF0, 0xC3C9, 0xCD01, 0xC3CA, 0xCD08, + 0xC3CB, 0xCD09, 0xC3CC, 0xCD0C, 0xC3CD, 0xCD10, 0xC3CE, 0xCD18, + 0xC3CF, 0xCD19, 0xC3D0, 0xCD1B, 0xC3D1, 0xCD1D, 0xC3D2, 0xCD24, + 0xC3D3, 0xCD28, 0xC3D4, 0xCD2C, 0xC3D5, 0xCD39, 0xC3D6, 0xCD5C, + 0xC3D7, 0xCD60, 0xC3D8, 0xCD64, 0xC3D9, 0xCD6C, 0xC3DA, 0xCD6D, + 0xC3DB, 0xCD6F, 0xC3DC, 0xCD71, 0xC3DD, 0xCD78, 0xC3DE, 0xCD88, + 0xC3DF, 0xCD94, 0xC3E0, 0xCD95, 0xC3E1, 0xCD98, 0xC3E2, 0xCD9C, + 0xC3E3, 0xCDA4, 0xC3E4, 0xCDA5, 0xC3E5, 0xCDA7, 0xC3E6, 0xCDA9, + 0xC3E7, 0xCDB0, 0xC3E8, 0xCDC4, 0xC3E9, 0xCDCC, 0xC3EA, 0xCDD0, + 0xC3EB, 0xCDE8, 0xC3EC, 0xCDEC, 0xC3ED, 0xCDF0, 0xC3EE, 0xCDF8, + 0xC3EF, 0xCDF9, 0xC3F0, 0xCDFB, 0xC3F1, 0xCDFD, 0xC3F2, 0xCE04, + 0xC3F3, 0xCE08, 0xC3F4, 0xCE0C, 0xC3F5, 0xCE14, 0xC3F6, 0xCE19, + 0xC3F7, 0xCE20, 0xC3F8, 0xCE21, 0xC3F9, 0xCE24, 0xC3FA, 0xCE28, + 0xC3FB, 0xCE30, 0xC3FC, 0xCE31, 0xC3FD, 0xCE33, 0xC3FE, 0xCE35, + 0xC441, 0xD6AB, 0xC442, 0xD6AD, 0xC443, 0xD6AE, 0xC444, 0xD6AF, + 0xC445, 0xD6B1, 0xC446, 0xD6B2, 0xC447, 0xD6B3, 0xC448, 0xD6B4, + 0xC449, 0xD6B5, 0xC44A, 0xD6B6, 0xC44B, 0xD6B7, 0xC44C, 0xD6B8, + 0xC44D, 0xD6BA, 0xC44E, 0xD6BC, 0xC44F, 0xD6BD, 0xC450, 0xD6BE, + 0xC451, 0xD6BF, 0xC452, 0xD6C0, 0xC453, 0xD6C1, 0xC454, 0xD6C2, + 0xC455, 0xD6C3, 0xC456, 0xD6C6, 0xC457, 0xD6C7, 0xC458, 0xD6C9, + 0xC459, 0xD6CA, 0xC45A, 0xD6CB, 0xC461, 0xD6CD, 0xC462, 0xD6CE, + 0xC463, 0xD6CF, 0xC464, 0xD6D0, 0xC465, 0xD6D2, 0xC466, 0xD6D3, + 0xC467, 0xD6D5, 0xC468, 0xD6D6, 0xC469, 0xD6D8, 0xC46A, 0xD6DA, + 0xC46B, 0xD6DB, 0xC46C, 0xD6DC, 0xC46D, 0xD6DD, 0xC46E, 0xD6DE, + 0xC46F, 0xD6DF, 0xC470, 0xD6E1, 0xC471, 0xD6E2, 0xC472, 0xD6E3, + 0xC473, 0xD6E5, 0xC474, 0xD6E6, 0xC475, 0xD6E7, 0xC476, 0xD6E9, + 0xC477, 0xD6EA, 0xC478, 0xD6EB, 0xC479, 0xD6EC, 0xC47A, 0xD6ED, + 0xC481, 0xD6EE, 0xC482, 0xD6EF, 0xC483, 0xD6F1, 0xC484, 0xD6F2, + 0xC485, 0xD6F3, 0xC486, 0xD6F4, 0xC487, 0xD6F6, 0xC488, 0xD6F7, + 0xC489, 0xD6F8, 0xC48A, 0xD6F9, 0xC48B, 0xD6FA, 0xC48C, 0xD6FB, + 0xC48D, 0xD6FE, 0xC48E, 0xD6FF, 0xC48F, 0xD701, 0xC490, 0xD702, + 0xC491, 0xD703, 0xC492, 0xD705, 0xC493, 0xD706, 0xC494, 0xD707, + 0xC495, 0xD708, 0xC496, 0xD709, 0xC497, 0xD70A, 0xC498, 0xD70B, + 0xC499, 0xD70C, 0xC49A, 0xD70D, 0xC49B, 0xD70E, 0xC49C, 0xD70F, + 0xC49D, 0xD710, 0xC49E, 0xD712, 0xC49F, 0xD713, 0xC4A0, 0xD714, + 0xC4A1, 0xCE58, 0xC4A2, 0xCE59, 0xC4A3, 0xCE5C, 0xC4A4, 0xCE5F, + 0xC4A5, 0xCE60, 0xC4A6, 0xCE61, 0xC4A7, 0xCE68, 0xC4A8, 0xCE69, + 0xC4A9, 0xCE6B, 0xC4AA, 0xCE6D, 0xC4AB, 0xCE74, 0xC4AC, 0xCE75, + 0xC4AD, 0xCE78, 0xC4AE, 0xCE7C, 0xC4AF, 0xCE84, 0xC4B0, 0xCE85, + 0xC4B1, 0xCE87, 0xC4B2, 0xCE89, 0xC4B3, 0xCE90, 0xC4B4, 0xCE91, + 0xC4B5, 0xCE94, 0xC4B6, 0xCE98, 0xC4B7, 0xCEA0, 0xC4B8, 0xCEA1, + 0xC4B9, 0xCEA3, 0xC4BA, 0xCEA4, 0xC4BB, 0xCEA5, 0xC4BC, 0xCEAC, + 0xC4BD, 0xCEAD, 0xC4BE, 0xCEC1, 0xC4BF, 0xCEE4, 0xC4C0, 0xCEE5, + 0xC4C1, 0xCEE8, 0xC4C2, 0xCEEB, 0xC4C3, 0xCEEC, 0xC4C4, 0xCEF4, + 0xC4C5, 0xCEF5, 0xC4C6, 0xCEF7, 0xC4C7, 0xCEF8, 0xC4C8, 0xCEF9, + 0xC4C9, 0xCF00, 0xC4CA, 0xCF01, 0xC4CB, 0xCF04, 0xC4CC, 0xCF08, + 0xC4CD, 0xCF10, 0xC4CE, 0xCF11, 0xC4CF, 0xCF13, 0xC4D0, 0xCF15, + 0xC4D1, 0xCF1C, 0xC4D2, 0xCF20, 0xC4D3, 0xCF24, 0xC4D4, 0xCF2C, + 0xC4D5, 0xCF2D, 0xC4D6, 0xCF2F, 0xC4D7, 0xCF30, 0xC4D8, 0xCF31, + 0xC4D9, 0xCF38, 0xC4DA, 0xCF54, 0xC4DB, 0xCF55, 0xC4DC, 0xCF58, + 0xC4DD, 0xCF5C, 0xC4DE, 0xCF64, 0xC4DF, 0xCF65, 0xC4E0, 0xCF67, + 0xC4E1, 0xCF69, 0xC4E2, 0xCF70, 0xC4E3, 0xCF71, 0xC4E4, 0xCF74, + 0xC4E5, 0xCF78, 0xC4E6, 0xCF80, 0xC4E7, 0xCF85, 0xC4E8, 0xCF8C, + 0xC4E9, 0xCFA1, 0xC4EA, 0xCFA8, 0xC4EB, 0xCFB0, 0xC4EC, 0xCFC4, + 0xC4ED, 0xCFE0, 0xC4EE, 0xCFE1, 0xC4EF, 0xCFE4, 0xC4F0, 0xCFE8, + 0xC4F1, 0xCFF0, 0xC4F2, 0xCFF1, 0xC4F3, 0xCFF3, 0xC4F4, 0xCFF5, + 0xC4F5, 0xCFFC, 0xC4F6, 0xD000, 0xC4F7, 0xD004, 0xC4F8, 0xD011, + 0xC4F9, 0xD018, 0xC4FA, 0xD02D, 0xC4FB, 0xD034, 0xC4FC, 0xD035, + 0xC4FD, 0xD038, 0xC4FE, 0xD03C, 0xC541, 0xD715, 0xC542, 0xD716, + 0xC543, 0xD717, 0xC544, 0xD71A, 0xC545, 0xD71B, 0xC546, 0xD71D, + 0xC547, 0xD71E, 0xC548, 0xD71F, 0xC549, 0xD721, 0xC54A, 0xD722, + 0xC54B, 0xD723, 0xC54C, 0xD724, 0xC54D, 0xD725, 0xC54E, 0xD726, + 0xC54F, 0xD727, 0xC550, 0xD72A, 0xC551, 0xD72C, 0xC552, 0xD72E, + 0xC553, 0xD72F, 0xC554, 0xD730, 0xC555, 0xD731, 0xC556, 0xD732, + 0xC557, 0xD733, 0xC558, 0xD736, 0xC559, 0xD737, 0xC55A, 0xD739, + 0xC561, 0xD73A, 0xC562, 0xD73B, 0xC563, 0xD73D, 0xC564, 0xD73E, + 0xC565, 0xD73F, 0xC566, 0xD740, 0xC567, 0xD741, 0xC568, 0xD742, + 0xC569, 0xD743, 0xC56A, 0xD745, 0xC56B, 0xD746, 0xC56C, 0xD748, + 0xC56D, 0xD74A, 0xC56E, 0xD74B, 0xC56F, 0xD74C, 0xC570, 0xD74D, + 0xC571, 0xD74E, 0xC572, 0xD74F, 0xC573, 0xD752, 0xC574, 0xD753, + 0xC575, 0xD755, 0xC576, 0xD75A, 0xC577, 0xD75B, 0xC578, 0xD75C, + 0xC579, 0xD75D, 0xC57A, 0xD75E, 0xC581, 0xD75F, 0xC582, 0xD762, + 0xC583, 0xD764, 0xC584, 0xD766, 0xC585, 0xD767, 0xC586, 0xD768, + 0xC587, 0xD76A, 0xC588, 0xD76B, 0xC589, 0xD76D, 0xC58A, 0xD76E, + 0xC58B, 0xD76F, 0xC58C, 0xD771, 0xC58D, 0xD772, 0xC58E, 0xD773, + 0xC58F, 0xD775, 0xC590, 0xD776, 0xC591, 0xD777, 0xC592, 0xD778, + 0xC593, 0xD779, 0xC594, 0xD77A, 0xC595, 0xD77B, 0xC596, 0xD77E, + 0xC597, 0xD77F, 0xC598, 0xD780, 0xC599, 0xD782, 0xC59A, 0xD783, + 0xC59B, 0xD784, 0xC59C, 0xD785, 0xC59D, 0xD786, 0xC59E, 0xD787, + 0xC59F, 0xD78A, 0xC5A0, 0xD78B, 0xC5A1, 0xD044, 0xC5A2, 0xD045, + 0xC5A3, 0xD047, 0xC5A4, 0xD049, 0xC5A5, 0xD050, 0xC5A6, 0xD054, + 0xC5A7, 0xD058, 0xC5A8, 0xD060, 0xC5A9, 0xD06C, 0xC5AA, 0xD06D, + 0xC5AB, 0xD070, 0xC5AC, 0xD074, 0xC5AD, 0xD07C, 0xC5AE, 0xD07D, + 0xC5AF, 0xD081, 0xC5B0, 0xD0A4, 0xC5B1, 0xD0A5, 0xC5B2, 0xD0A8, + 0xC5B3, 0xD0AC, 0xC5B4, 0xD0B4, 0xC5B5, 0xD0B5, 0xC5B6, 0xD0B7, + 0xC5B7, 0xD0B9, 0xC5B8, 0xD0C0, 0xC5B9, 0xD0C1, 0xC5BA, 0xD0C4, + 0xC5BB, 0xD0C8, 0xC5BC, 0xD0C9, 0xC5BD, 0xD0D0, 0xC5BE, 0xD0D1, + 0xC5BF, 0xD0D3, 0xC5C0, 0xD0D4, 0xC5C1, 0xD0D5, 0xC5C2, 0xD0DC, + 0xC5C3, 0xD0DD, 0xC5C4, 0xD0E0, 0xC5C5, 0xD0E4, 0xC5C6, 0xD0EC, + 0xC5C7, 0xD0ED, 0xC5C8, 0xD0EF, 0xC5C9, 0xD0F0, 0xC5CA, 0xD0F1, + 0xC5CB, 0xD0F8, 0xC5CC, 0xD10D, 0xC5CD, 0xD130, 0xC5CE, 0xD131, + 0xC5CF, 0xD134, 0xC5D0, 0xD138, 0xC5D1, 0xD13A, 0xC5D2, 0xD140, + 0xC5D3, 0xD141, 0xC5D4, 0xD143, 0xC5D5, 0xD144, 0xC5D6, 0xD145, + 0xC5D7, 0xD14C, 0xC5D8, 0xD14D, 0xC5D9, 0xD150, 0xC5DA, 0xD154, + 0xC5DB, 0xD15C, 0xC5DC, 0xD15D, 0xC5DD, 0xD15F, 0xC5DE, 0xD161, + 0xC5DF, 0xD168, 0xC5E0, 0xD16C, 0xC5E1, 0xD17C, 0xC5E2, 0xD184, + 0xC5E3, 0xD188, 0xC5E4, 0xD1A0, 0xC5E5, 0xD1A1, 0xC5E6, 0xD1A4, + 0xC5E7, 0xD1A8, 0xC5E8, 0xD1B0, 0xC5E9, 0xD1B1, 0xC5EA, 0xD1B3, + 0xC5EB, 0xD1B5, 0xC5EC, 0xD1BA, 0xC5ED, 0xD1BC, 0xC5EE, 0xD1C0, + 0xC5EF, 0xD1D8, 0xC5F0, 0xD1F4, 0xC5F1, 0xD1F8, 0xC5F2, 0xD207, + 0xC5F3, 0xD209, 0xC5F4, 0xD210, 0xC5F5, 0xD22C, 0xC5F6, 0xD22D, + 0xC5F7, 0xD230, 0xC5F8, 0xD234, 0xC5F9, 0xD23C, 0xC5FA, 0xD23D, + 0xC5FB, 0xD23F, 0xC5FC, 0xD241, 0xC5FD, 0xD248, 0xC5FE, 0xD25C, + 0xC641, 0xD78D, 0xC642, 0xD78E, 0xC643, 0xD78F, 0xC644, 0xD791, + 0xC645, 0xD792, 0xC646, 0xD793, 0xC647, 0xD794, 0xC648, 0xD795, + 0xC649, 0xD796, 0xC64A, 0xD797, 0xC64B, 0xD79A, 0xC64C, 0xD79C, + 0xC64D, 0xD79E, 0xC64E, 0xD79F, 0xC64F, 0xD7A0, 0xC650, 0xD7A1, + 0xC651, 0xD7A2, 0xC652, 0xD7A3, 0xC6A1, 0xD264, 0xC6A2, 0xD280, + 0xC6A3, 0xD281, 0xC6A4, 0xD284, 0xC6A5, 0xD288, 0xC6A6, 0xD290, + 0xC6A7, 0xD291, 0xC6A8, 0xD295, 0xC6A9, 0xD29C, 0xC6AA, 0xD2A0, + 0xC6AB, 0xD2A4, 0xC6AC, 0xD2AC, 0xC6AD, 0xD2B1, 0xC6AE, 0xD2B8, + 0xC6AF, 0xD2B9, 0xC6B0, 0xD2BC, 0xC6B1, 0xD2BF, 0xC6B2, 0xD2C0, + 0xC6B3, 0xD2C2, 0xC6B4, 0xD2C8, 0xC6B5, 0xD2C9, 0xC6B6, 0xD2CB, + 0xC6B7, 0xD2D4, 0xC6B8, 0xD2D8, 0xC6B9, 0xD2DC, 0xC6BA, 0xD2E4, + 0xC6BB, 0xD2E5, 0xC6BC, 0xD2F0, 0xC6BD, 0xD2F1, 0xC6BE, 0xD2F4, + 0xC6BF, 0xD2F8, 0xC6C0, 0xD300, 0xC6C1, 0xD301, 0xC6C2, 0xD303, + 0xC6C3, 0xD305, 0xC6C4, 0xD30C, 0xC6C5, 0xD30D, 0xC6C6, 0xD30E, + 0xC6C7, 0xD310, 0xC6C8, 0xD314, 0xC6C9, 0xD316, 0xC6CA, 0xD31C, + 0xC6CB, 0xD31D, 0xC6CC, 0xD31F, 0xC6CD, 0xD320, 0xC6CE, 0xD321, + 0xC6CF, 0xD325, 0xC6D0, 0xD328, 0xC6D1, 0xD329, 0xC6D2, 0xD32C, + 0xC6D3, 0xD330, 0xC6D4, 0xD338, 0xC6D5, 0xD339, 0xC6D6, 0xD33B, + 0xC6D7, 0xD33C, 0xC6D8, 0xD33D, 0xC6D9, 0xD344, 0xC6DA, 0xD345, + 0xC6DB, 0xD37C, 0xC6DC, 0xD37D, 0xC6DD, 0xD380, 0xC6DE, 0xD384, + 0xC6DF, 0xD38C, 0xC6E0, 0xD38D, 0xC6E1, 0xD38F, 0xC6E2, 0xD390, + 0xC6E3, 0xD391, 0xC6E4, 0xD398, 0xC6E5, 0xD399, 0xC6E6, 0xD39C, + 0xC6E7, 0xD3A0, 0xC6E8, 0xD3A8, 0xC6E9, 0xD3A9, 0xC6EA, 0xD3AB, + 0xC6EB, 0xD3AD, 0xC6EC, 0xD3B4, 0xC6ED, 0xD3B8, 0xC6EE, 0xD3BC, + 0xC6EF, 0xD3C4, 0xC6F0, 0xD3C5, 0xC6F1, 0xD3C8, 0xC6F2, 0xD3C9, + 0xC6F3, 0xD3D0, 0xC6F4, 0xD3D8, 0xC6F5, 0xD3E1, 0xC6F6, 0xD3E3, + 0xC6F7, 0xD3EC, 0xC6F8, 0xD3ED, 0xC6F9, 0xD3F0, 0xC6FA, 0xD3F4, + 0xC6FB, 0xD3FC, 0xC6FC, 0xD3FD, 0xC6FD, 0xD3FF, 0xC6FE, 0xD401, + 0xC7A1, 0xD408, 0xC7A2, 0xD41D, 0xC7A3, 0xD440, 0xC7A4, 0xD444, + 0xC7A5, 0xD45C, 0xC7A6, 0xD460, 0xC7A7, 0xD464, 0xC7A8, 0xD46D, + 0xC7A9, 0xD46F, 0xC7AA, 0xD478, 0xC7AB, 0xD479, 0xC7AC, 0xD47C, + 0xC7AD, 0xD47F, 0xC7AE, 0xD480, 0xC7AF, 0xD482, 0xC7B0, 0xD488, + 0xC7B1, 0xD489, 0xC7B2, 0xD48B, 0xC7B3, 0xD48D, 0xC7B4, 0xD494, + 0xC7B5, 0xD4A9, 0xC7B6, 0xD4CC, 0xC7B7, 0xD4D0, 0xC7B8, 0xD4D4, + 0xC7B9, 0xD4DC, 0xC7BA, 0xD4DF, 0xC7BB, 0xD4E8, 0xC7BC, 0xD4EC, + 0xC7BD, 0xD4F0, 0xC7BE, 0xD4F8, 0xC7BF, 0xD4FB, 0xC7C0, 0xD4FD, + 0xC7C1, 0xD504, 0xC7C2, 0xD508, 0xC7C3, 0xD50C, 0xC7C4, 0xD514, + 0xC7C5, 0xD515, 0xC7C6, 0xD517, 0xC7C7, 0xD53C, 0xC7C8, 0xD53D, + 0xC7C9, 0xD540, 0xC7CA, 0xD544, 0xC7CB, 0xD54C, 0xC7CC, 0xD54D, + 0xC7CD, 0xD54F, 0xC7CE, 0xD551, 0xC7CF, 0xD558, 0xC7D0, 0xD559, + 0xC7D1, 0xD55C, 0xC7D2, 0xD560, 0xC7D3, 0xD565, 0xC7D4, 0xD568, + 0xC7D5, 0xD569, 0xC7D6, 0xD56B, 0xC7D7, 0xD56D, 0xC7D8, 0xD574, + 0xC7D9, 0xD575, 0xC7DA, 0xD578, 0xC7DB, 0xD57C, 0xC7DC, 0xD584, + 0xC7DD, 0xD585, 0xC7DE, 0xD587, 0xC7DF, 0xD588, 0xC7E0, 0xD589, + 0xC7E1, 0xD590, 0xC7E2, 0xD5A5, 0xC7E3, 0xD5C8, 0xC7E4, 0xD5C9, + 0xC7E5, 0xD5CC, 0xC7E6, 0xD5D0, 0xC7E7, 0xD5D2, 0xC7E8, 0xD5D8, + 0xC7E9, 0xD5D9, 0xC7EA, 0xD5DB, 0xC7EB, 0xD5DD, 0xC7EC, 0xD5E4, + 0xC7ED, 0xD5E5, 0xC7EE, 0xD5E8, 0xC7EF, 0xD5EC, 0xC7F0, 0xD5F4, + 0xC7F1, 0xD5F5, 0xC7F2, 0xD5F7, 0xC7F3, 0xD5F9, 0xC7F4, 0xD600, + 0xC7F5, 0xD601, 0xC7F6, 0xD604, 0xC7F7, 0xD608, 0xC7F8, 0xD610, + 0xC7F9, 0xD611, 0xC7FA, 0xD613, 0xC7FB, 0xD614, 0xC7FC, 0xD615, + 0xC7FD, 0xD61C, 0xC7FE, 0xD620, 0xC8A1, 0xD624, 0xC8A2, 0xD62D, + 0xC8A3, 0xD638, 0xC8A4, 0xD639, 0xC8A5, 0xD63C, 0xC8A6, 0xD640, + 0xC8A7, 0xD645, 0xC8A8, 0xD648, 0xC8A9, 0xD649, 0xC8AA, 0xD64B, + 0xC8AB, 0xD64D, 0xC8AC, 0xD651, 0xC8AD, 0xD654, 0xC8AE, 0xD655, + 0xC8AF, 0xD658, 0xC8B0, 0xD65C, 0xC8B1, 0xD667, 0xC8B2, 0xD669, + 0xC8B3, 0xD670, 0xC8B4, 0xD671, 0xC8B5, 0xD674, 0xC8B6, 0xD683, + 0xC8B7, 0xD685, 0xC8B8, 0xD68C, 0xC8B9, 0xD68D, 0xC8BA, 0xD690, + 0xC8BB, 0xD694, 0xC8BC, 0xD69D, 0xC8BD, 0xD69F, 0xC8BE, 0xD6A1, + 0xC8BF, 0xD6A8, 0xC8C0, 0xD6AC, 0xC8C1, 0xD6B0, 0xC8C2, 0xD6B9, + 0xC8C3, 0xD6BB, 0xC8C4, 0xD6C4, 0xC8C5, 0xD6C5, 0xC8C6, 0xD6C8, + 0xC8C7, 0xD6CC, 0xC8C8, 0xD6D1, 0xC8C9, 0xD6D4, 0xC8CA, 0xD6D7, + 0xC8CB, 0xD6D9, 0xC8CC, 0xD6E0, 0xC8CD, 0xD6E4, 0xC8CE, 0xD6E8, + 0xC8CF, 0xD6F0, 0xC8D0, 0xD6F5, 0xC8D1, 0xD6FC, 0xC8D2, 0xD6FD, + 0xC8D3, 0xD700, 0xC8D4, 0xD704, 0xC8D5, 0xD711, 0xC8D6, 0xD718, + 0xC8D7, 0xD719, 0xC8D8, 0xD71C, 0xC8D9, 0xD720, 0xC8DA, 0xD728, + 0xC8DB, 0xD729, 0xC8DC, 0xD72B, 0xC8DD, 0xD72D, 0xC8DE, 0xD734, + 0xC8DF, 0xD735, 0xC8E0, 0xD738, 0xC8E1, 0xD73C, 0xC8E2, 0xD744, + 0xC8E3, 0xD747, 0xC8E4, 0xD749, 0xC8E5, 0xD750, 0xC8E6, 0xD751, + 0xC8E7, 0xD754, 0xC8E8, 0xD756, 0xC8E9, 0xD757, 0xC8EA, 0xD758, + 0xC8EB, 0xD759, 0xC8EC, 0xD760, 0xC8ED, 0xD761, 0xC8EE, 0xD763, + 0xC8EF, 0xD765, 0xC8F0, 0xD769, 0xC8F1, 0xD76C, 0xC8F2, 0xD770, + 0xC8F3, 0xD774, 0xC8F4, 0xD77C, 0xC8F5, 0xD77D, 0xC8F6, 0xD781, + 0xC8F7, 0xD788, 0xC8F8, 0xD789, 0xC8F9, 0xD78C, 0xC8FA, 0xD790, + 0xC8FB, 0xD798, 0xC8FC, 0xD799, 0xC8FD, 0xD79B, 0xC8FE, 0xD79D, + 0xCAA1, 0x4F3D, 0xCAA2, 0x4F73, 0xCAA3, 0x5047, 0xCAA4, 0x50F9, + 0xCAA5, 0x52A0, 0xCAA6, 0x53EF, 0xCAA7, 0x5475, 0xCAA8, 0x54E5, + 0xCAA9, 0x5609, 0xCAAA, 0x5AC1, 0xCAAB, 0x5BB6, 0xCAAC, 0x6687, + 0xCAAD, 0x67B6, 0xCAAE, 0x67B7, 0xCAAF, 0x67EF, 0xCAB0, 0x6B4C, + 0xCAB1, 0x73C2, 0xCAB2, 0x75C2, 0xCAB3, 0x7A3C, 0xCAB4, 0x82DB, + 0xCAB5, 0x8304, 0xCAB6, 0x8857, 0xCAB7, 0x8888, 0xCAB8, 0x8A36, + 0xCAB9, 0x8CC8, 0xCABA, 0x8DCF, 0xCABB, 0x8EFB, 0xCABC, 0x8FE6, + 0xCABD, 0x99D5, 0xCABE, 0x523B, 0xCABF, 0x5374, 0xCAC0, 0x5404, + 0xCAC1, 0x606A, 0xCAC2, 0x6164, 0xCAC3, 0x6BBC, 0xCAC4, 0x73CF, + 0xCAC5, 0x811A, 0xCAC6, 0x89BA, 0xCAC7, 0x89D2, 0xCAC8, 0x95A3, + 0xCAC9, 0x4F83, 0xCACA, 0x520A, 0xCACB, 0x58BE, 0xCACC, 0x5978, + 0xCACD, 0x59E6, 0xCACE, 0x5E72, 0xCACF, 0x5E79, 0xCAD0, 0x61C7, + 0xCAD1, 0x63C0, 0xCAD2, 0x6746, 0xCAD3, 0x67EC, 0xCAD4, 0x687F, + 0xCAD5, 0x6F97, 0xCAD6, 0x764E, 0xCAD7, 0x770B, 0xCAD8, 0x78F5, + 0xCAD9, 0x7A08, 0xCADA, 0x7AFF, 0xCADB, 0x7C21, 0xCADC, 0x809D, + 0xCADD, 0x826E, 0xCADE, 0x8271, 0xCADF, 0x8AEB, 0xCAE0, 0x9593, + 0xCAE1, 0x4E6B, 0xCAE2, 0x559D, 0xCAE3, 0x66F7, 0xCAE4, 0x6E34, + 0xCAE5, 0x78A3, 0xCAE6, 0x7AED, 0xCAE7, 0x845B, 0xCAE8, 0x8910, + 0xCAE9, 0x874E, 0xCAEA, 0x97A8, 0xCAEB, 0x52D8, 0xCAEC, 0x574E, + 0xCAED, 0x582A, 0xCAEE, 0x5D4C, 0xCAEF, 0x611F, 0xCAF0, 0x61BE, + 0xCAF1, 0x6221, 0xCAF2, 0x6562, 0xCAF3, 0x67D1, 0xCAF4, 0x6A44, + 0xCAF5, 0x6E1B, 0xCAF6, 0x7518, 0xCAF7, 0x75B3, 0xCAF8, 0x76E3, + 0xCAF9, 0x77B0, 0xCAFA, 0x7D3A, 0xCAFB, 0x90AF, 0xCAFC, 0x9451, + 0xCAFD, 0x9452, 0xCAFE, 0x9F95, 0xCBA1, 0x5323, 0xCBA2, 0x5CAC, + 0xCBA3, 0x7532, 0xCBA4, 0x80DB, 0xCBA5, 0x9240, 0xCBA6, 0x9598, + 0xCBA7, 0x525B, 0xCBA8, 0x5808, 0xCBA9, 0x59DC, 0xCBAA, 0x5CA1, + 0xCBAB, 0x5D17, 0xCBAC, 0x5EB7, 0xCBAD, 0x5F3A, 0xCBAE, 0x5F4A, + 0xCBAF, 0x6177, 0xCBB0, 0x6C5F, 0xCBB1, 0x757A, 0xCBB2, 0x7586, + 0xCBB3, 0x7CE0, 0xCBB4, 0x7D73, 0xCBB5, 0x7DB1, 0xCBB6, 0x7F8C, + 0xCBB7, 0x8154, 0xCBB8, 0x8221, 0xCBB9, 0x8591, 0xCBBA, 0x8941, + 0xCBBB, 0x8B1B, 0xCBBC, 0x92FC, 0xCBBD, 0x964D, 0xCBBE, 0x9C47, + 0xCBBF, 0x4ECB, 0xCBC0, 0x4EF7, 0xCBC1, 0x500B, 0xCBC2, 0x51F1, + 0xCBC3, 0x584F, 0xCBC4, 0x6137, 0xCBC5, 0x613E, 0xCBC6, 0x6168, + 0xCBC7, 0x6539, 0xCBC8, 0x69EA, 0xCBC9, 0x6F11, 0xCBCA, 0x75A5, + 0xCBCB, 0x7686, 0xCBCC, 0x76D6, 0xCBCD, 0x7B87, 0xCBCE, 0x82A5, + 0xCBCF, 0x84CB, 0xCBD0, 0xF900, 0xCBD1, 0x93A7, 0xCBD2, 0x958B, + 0xCBD3, 0x5580, 0xCBD4, 0x5BA2, 0xCBD5, 0x5751, 0xCBD6, 0xF901, + 0xCBD7, 0x7CB3, 0xCBD8, 0x7FB9, 0xCBD9, 0x91B5, 0xCBDA, 0x5028, + 0xCBDB, 0x53BB, 0xCBDC, 0x5C45, 0xCBDD, 0x5DE8, 0xCBDE, 0x62D2, + 0xCBDF, 0x636E, 0xCBE0, 0x64DA, 0xCBE1, 0x64E7, 0xCBE2, 0x6E20, + 0xCBE3, 0x70AC, 0xCBE4, 0x795B, 0xCBE5, 0x8DDD, 0xCBE6, 0x8E1E, + 0xCBE7, 0xF902, 0xCBE8, 0x907D, 0xCBE9, 0x9245, 0xCBEA, 0x92F8, + 0xCBEB, 0x4E7E, 0xCBEC, 0x4EF6, 0xCBED, 0x5065, 0xCBEE, 0x5DFE, + 0xCBEF, 0x5EFA, 0xCBF0, 0x6106, 0xCBF1, 0x6957, 0xCBF2, 0x8171, + 0xCBF3, 0x8654, 0xCBF4, 0x8E47, 0xCBF5, 0x9375, 0xCBF6, 0x9A2B, + 0xCBF7, 0x4E5E, 0xCBF8, 0x5091, 0xCBF9, 0x6770, 0xCBFA, 0x6840, + 0xCBFB, 0x5109, 0xCBFC, 0x528D, 0xCBFD, 0x5292, 0xCBFE, 0x6AA2, + 0xCCA1, 0x77BC, 0xCCA2, 0x9210, 0xCCA3, 0x9ED4, 0xCCA4, 0x52AB, + 0xCCA5, 0x602F, 0xCCA6, 0x8FF2, 0xCCA7, 0x5048, 0xCCA8, 0x61A9, + 0xCCA9, 0x63ED, 0xCCAA, 0x64CA, 0xCCAB, 0x683C, 0xCCAC, 0x6A84, + 0xCCAD, 0x6FC0, 0xCCAE, 0x8188, 0xCCAF, 0x89A1, 0xCCB0, 0x9694, + 0xCCB1, 0x5805, 0xCCB2, 0x727D, 0xCCB3, 0x72AC, 0xCCB4, 0x7504, + 0xCCB5, 0x7D79, 0xCCB6, 0x7E6D, 0xCCB7, 0x80A9, 0xCCB8, 0x898B, + 0xCCB9, 0x8B74, 0xCCBA, 0x9063, 0xCCBB, 0x9D51, 0xCCBC, 0x6289, + 0xCCBD, 0x6C7A, 0xCCBE, 0x6F54, 0xCCBF, 0x7D50, 0xCCC0, 0x7F3A, + 0xCCC1, 0x8A23, 0xCCC2, 0x517C, 0xCCC3, 0x614A, 0xCCC4, 0x7B9D, + 0xCCC5, 0x8B19, 0xCCC6, 0x9257, 0xCCC7, 0x938C, 0xCCC8, 0x4EAC, + 0xCCC9, 0x4FD3, 0xCCCA, 0x501E, 0xCCCB, 0x50BE, 0xCCCC, 0x5106, + 0xCCCD, 0x52C1, 0xCCCE, 0x52CD, 0xCCCF, 0x537F, 0xCCD0, 0x5770, + 0xCCD1, 0x5883, 0xCCD2, 0x5E9A, 0xCCD3, 0x5F91, 0xCCD4, 0x6176, + 0xCCD5, 0x61AC, 0xCCD6, 0x64CE, 0xCCD7, 0x656C, 0xCCD8, 0x666F, + 0xCCD9, 0x66BB, 0xCCDA, 0x66F4, 0xCCDB, 0x6897, 0xCCDC, 0x6D87, + 0xCCDD, 0x7085, 0xCCDE, 0x70F1, 0xCCDF, 0x749F, 0xCCE0, 0x74A5, + 0xCCE1, 0x74CA, 0xCCE2, 0x75D9, 0xCCE3, 0x786C, 0xCCE4, 0x78EC, + 0xCCE5, 0x7ADF, 0xCCE6, 0x7AF6, 0xCCE7, 0x7D45, 0xCCE8, 0x7D93, + 0xCCE9, 0x8015, 0xCCEA, 0x803F, 0xCCEB, 0x811B, 0xCCEC, 0x8396, + 0xCCED, 0x8B66, 0xCCEE, 0x8F15, 0xCCEF, 0x9015, 0xCCF0, 0x93E1, + 0xCCF1, 0x9803, 0xCCF2, 0x9838, 0xCCF3, 0x9A5A, 0xCCF4, 0x9BE8, + 0xCCF5, 0x4FC2, 0xCCF6, 0x5553, 0xCCF7, 0x583A, 0xCCF8, 0x5951, + 0xCCF9, 0x5B63, 0xCCFA, 0x5C46, 0xCCFB, 0x60B8, 0xCCFC, 0x6212, + 0xCCFD, 0x6842, 0xCCFE, 0x68B0, 0xCDA1, 0x68E8, 0xCDA2, 0x6EAA, + 0xCDA3, 0x754C, 0xCDA4, 0x7678, 0xCDA5, 0x78CE, 0xCDA6, 0x7A3D, + 0xCDA7, 0x7CFB, 0xCDA8, 0x7E6B, 0xCDA9, 0x7E7C, 0xCDAA, 0x8A08, + 0xCDAB, 0x8AA1, 0xCDAC, 0x8C3F, 0xCDAD, 0x968E, 0xCDAE, 0x9DC4, + 0xCDAF, 0x53E4, 0xCDB0, 0x53E9, 0xCDB1, 0x544A, 0xCDB2, 0x5471, + 0xCDB3, 0x56FA, 0xCDB4, 0x59D1, 0xCDB5, 0x5B64, 0xCDB6, 0x5C3B, + 0xCDB7, 0x5EAB, 0xCDB8, 0x62F7, 0xCDB9, 0x6537, 0xCDBA, 0x6545, + 0xCDBB, 0x6572, 0xCDBC, 0x66A0, 0xCDBD, 0x67AF, 0xCDBE, 0x69C1, + 0xCDBF, 0x6CBD, 0xCDC0, 0x75FC, 0xCDC1, 0x7690, 0xCDC2, 0x777E, + 0xCDC3, 0x7A3F, 0xCDC4, 0x7F94, 0xCDC5, 0x8003, 0xCDC6, 0x80A1, + 0xCDC7, 0x818F, 0xCDC8, 0x82E6, 0xCDC9, 0x82FD, 0xCDCA, 0x83F0, + 0xCDCB, 0x85C1, 0xCDCC, 0x8831, 0xCDCD, 0x88B4, 0xCDCE, 0x8AA5, + 0xCDCF, 0xF903, 0xCDD0, 0x8F9C, 0xCDD1, 0x932E, 0xCDD2, 0x96C7, + 0xCDD3, 0x9867, 0xCDD4, 0x9AD8, 0xCDD5, 0x9F13, 0xCDD6, 0x54ED, + 0xCDD7, 0x659B, 0xCDD8, 0x66F2, 0xCDD9, 0x688F, 0xCDDA, 0x7A40, + 0xCDDB, 0x8C37, 0xCDDC, 0x9D60, 0xCDDD, 0x56F0, 0xCDDE, 0x5764, + 0xCDDF, 0x5D11, 0xCDE0, 0x6606, 0xCDE1, 0x68B1, 0xCDE2, 0x68CD, + 0xCDE3, 0x6EFE, 0xCDE4, 0x7428, 0xCDE5, 0x889E, 0xCDE6, 0x9BE4, + 0xCDE7, 0x6C68, 0xCDE8, 0xF904, 0xCDE9, 0x9AA8, 0xCDEA, 0x4F9B, + 0xCDEB, 0x516C, 0xCDEC, 0x5171, 0xCDED, 0x529F, 0xCDEE, 0x5B54, + 0xCDEF, 0x5DE5, 0xCDF0, 0x6050, 0xCDF1, 0x606D, 0xCDF2, 0x62F1, + 0xCDF3, 0x63A7, 0xCDF4, 0x653B, 0xCDF5, 0x73D9, 0xCDF6, 0x7A7A, + 0xCDF7, 0x86A3, 0xCDF8, 0x8CA2, 0xCDF9, 0x978F, 0xCDFA, 0x4E32, + 0xCDFB, 0x5BE1, 0xCDFC, 0x6208, 0xCDFD, 0x679C, 0xCDFE, 0x74DC, + 0xCEA1, 0x79D1, 0xCEA2, 0x83D3, 0xCEA3, 0x8A87, 0xCEA4, 0x8AB2, + 0xCEA5, 0x8DE8, 0xCEA6, 0x904E, 0xCEA7, 0x934B, 0xCEA8, 0x9846, + 0xCEA9, 0x5ED3, 0xCEAA, 0x69E8, 0xCEAB, 0x85FF, 0xCEAC, 0x90ED, + 0xCEAD, 0xF905, 0xCEAE, 0x51A0, 0xCEAF, 0x5B98, 0xCEB0, 0x5BEC, + 0xCEB1, 0x6163, 0xCEB2, 0x68FA, 0xCEB3, 0x6B3E, 0xCEB4, 0x704C, + 0xCEB5, 0x742F, 0xCEB6, 0x74D8, 0xCEB7, 0x7BA1, 0xCEB8, 0x7F50, + 0xCEB9, 0x83C5, 0xCEBA, 0x89C0, 0xCEBB, 0x8CAB, 0xCEBC, 0x95DC, + 0xCEBD, 0x9928, 0xCEBE, 0x522E, 0xCEBF, 0x605D, 0xCEC0, 0x62EC, + 0xCEC1, 0x9002, 0xCEC2, 0x4F8A, 0xCEC3, 0x5149, 0xCEC4, 0x5321, + 0xCEC5, 0x58D9, 0xCEC6, 0x5EE3, 0xCEC7, 0x66E0, 0xCEC8, 0x6D38, + 0xCEC9, 0x709A, 0xCECA, 0x72C2, 0xCECB, 0x73D6, 0xCECC, 0x7B50, + 0xCECD, 0x80F1, 0xCECE, 0x945B, 0xCECF, 0x5366, 0xCED0, 0x639B, + 0xCED1, 0x7F6B, 0xCED2, 0x4E56, 0xCED3, 0x5080, 0xCED4, 0x584A, + 0xCED5, 0x58DE, 0xCED6, 0x602A, 0xCED7, 0x6127, 0xCED8, 0x62D0, + 0xCED9, 0x69D0, 0xCEDA, 0x9B41, 0xCEDB, 0x5B8F, 0xCEDC, 0x7D18, + 0xCEDD, 0x80B1, 0xCEDE, 0x8F5F, 0xCEDF, 0x4EA4, 0xCEE0, 0x50D1, + 0xCEE1, 0x54AC, 0xCEE2, 0x55AC, 0xCEE3, 0x5B0C, 0xCEE4, 0x5DA0, + 0xCEE5, 0x5DE7, 0xCEE6, 0x652A, 0xCEE7, 0x654E, 0xCEE8, 0x6821, + 0xCEE9, 0x6A4B, 0xCEEA, 0x72E1, 0xCEEB, 0x768E, 0xCEEC, 0x77EF, + 0xCEED, 0x7D5E, 0xCEEE, 0x7FF9, 0xCEEF, 0x81A0, 0xCEF0, 0x854E, + 0xCEF1, 0x86DF, 0xCEF2, 0x8F03, 0xCEF3, 0x8F4E, 0xCEF4, 0x90CA, + 0xCEF5, 0x9903, 0xCEF6, 0x9A55, 0xCEF7, 0x9BAB, 0xCEF8, 0x4E18, + 0xCEF9, 0x4E45, 0xCEFA, 0x4E5D, 0xCEFB, 0x4EC7, 0xCEFC, 0x4FF1, + 0xCEFD, 0x5177, 0xCEFE, 0x52FE, 0xCFA1, 0x5340, 0xCFA2, 0x53E3, + 0xCFA3, 0x53E5, 0xCFA4, 0x548E, 0xCFA5, 0x5614, 0xCFA6, 0x5775, + 0xCFA7, 0x57A2, 0xCFA8, 0x5BC7, 0xCFA9, 0x5D87, 0xCFAA, 0x5ED0, + 0xCFAB, 0x61FC, 0xCFAC, 0x62D8, 0xCFAD, 0x6551, 0xCFAE, 0x67B8, + 0xCFAF, 0x67E9, 0xCFB0, 0x69CB, 0xCFB1, 0x6B50, 0xCFB2, 0x6BC6, + 0xCFB3, 0x6BEC, 0xCFB4, 0x6C42, 0xCFB5, 0x6E9D, 0xCFB6, 0x7078, + 0xCFB7, 0x72D7, 0xCFB8, 0x7396, 0xCFB9, 0x7403, 0xCFBA, 0x77BF, + 0xCFBB, 0x77E9, 0xCFBC, 0x7A76, 0xCFBD, 0x7D7F, 0xCFBE, 0x8009, + 0xCFBF, 0x81FC, 0xCFC0, 0x8205, 0xCFC1, 0x820A, 0xCFC2, 0x82DF, + 0xCFC3, 0x8862, 0xCFC4, 0x8B33, 0xCFC5, 0x8CFC, 0xCFC6, 0x8EC0, + 0xCFC7, 0x9011, 0xCFC8, 0x90B1, 0xCFC9, 0x9264, 0xCFCA, 0x92B6, + 0xCFCB, 0x99D2, 0xCFCC, 0x9A45, 0xCFCD, 0x9CE9, 0xCFCE, 0x9DD7, + 0xCFCF, 0x9F9C, 0xCFD0, 0x570B, 0xCFD1, 0x5C40, 0xCFD2, 0x83CA, + 0xCFD3, 0x97A0, 0xCFD4, 0x97AB, 0xCFD5, 0x9EB4, 0xCFD6, 0x541B, + 0xCFD7, 0x7A98, 0xCFD8, 0x7FA4, 0xCFD9, 0x88D9, 0xCFDA, 0x8ECD, + 0xCFDB, 0x90E1, 0xCFDC, 0x5800, 0xCFDD, 0x5C48, 0xCFDE, 0x6398, + 0xCFDF, 0x7A9F, 0xCFE0, 0x5BAE, 0xCFE1, 0x5F13, 0xCFE2, 0x7A79, + 0xCFE3, 0x7AAE, 0xCFE4, 0x828E, 0xCFE5, 0x8EAC, 0xCFE6, 0x5026, + 0xCFE7, 0x5238, 0xCFE8, 0x52F8, 0xCFE9, 0x5377, 0xCFEA, 0x5708, + 0xCFEB, 0x62F3, 0xCFEC, 0x6372, 0xCFED, 0x6B0A, 0xCFEE, 0x6DC3, + 0xCFEF, 0x7737, 0xCFF0, 0x53A5, 0xCFF1, 0x7357, 0xCFF2, 0x8568, + 0xCFF3, 0x8E76, 0xCFF4, 0x95D5, 0xCFF5, 0x673A, 0xCFF6, 0x6AC3, + 0xCFF7, 0x6F70, 0xCFF8, 0x8A6D, 0xCFF9, 0x8ECC, 0xCFFA, 0x994B, + 0xCFFB, 0xF906, 0xCFFC, 0x6677, 0xCFFD, 0x6B78, 0xCFFE, 0x8CB4, + 0xD0A1, 0x9B3C, 0xD0A2, 0xF907, 0xD0A3, 0x53EB, 0xD0A4, 0x572D, + 0xD0A5, 0x594E, 0xD0A6, 0x63C6, 0xD0A7, 0x69FB, 0xD0A8, 0x73EA, + 0xD0A9, 0x7845, 0xD0AA, 0x7ABA, 0xD0AB, 0x7AC5, 0xD0AC, 0x7CFE, + 0xD0AD, 0x8475, 0xD0AE, 0x898F, 0xD0AF, 0x8D73, 0xD0B0, 0x9035, + 0xD0B1, 0x95A8, 0xD0B2, 0x52FB, 0xD0B3, 0x5747, 0xD0B4, 0x7547, + 0xD0B5, 0x7B60, 0xD0B6, 0x83CC, 0xD0B7, 0x921E, 0xD0B8, 0xF908, + 0xD0B9, 0x6A58, 0xD0BA, 0x514B, 0xD0BB, 0x524B, 0xD0BC, 0x5287, + 0xD0BD, 0x621F, 0xD0BE, 0x68D8, 0xD0BF, 0x6975, 0xD0C0, 0x9699, + 0xD0C1, 0x50C5, 0xD0C2, 0x52A4, 0xD0C3, 0x52E4, 0xD0C4, 0x61C3, + 0xD0C5, 0x65A4, 0xD0C6, 0x6839, 0xD0C7, 0x69FF, 0xD0C8, 0x747E, + 0xD0C9, 0x7B4B, 0xD0CA, 0x82B9, 0xD0CB, 0x83EB, 0xD0CC, 0x89B2, + 0xD0CD, 0x8B39, 0xD0CE, 0x8FD1, 0xD0CF, 0x9949, 0xD0D0, 0xF909, + 0xD0D1, 0x4ECA, 0xD0D2, 0x5997, 0xD0D3, 0x64D2, 0xD0D4, 0x6611, + 0xD0D5, 0x6A8E, 0xD0D6, 0x7434, 0xD0D7, 0x7981, 0xD0D8, 0x79BD, + 0xD0D9, 0x82A9, 0xD0DA, 0x887E, 0xD0DB, 0x887F, 0xD0DC, 0x895F, + 0xD0DD, 0xF90A, 0xD0DE, 0x9326, 0xD0DF, 0x4F0B, 0xD0E0, 0x53CA, + 0xD0E1, 0x6025, 0xD0E2, 0x6271, 0xD0E3, 0x6C72, 0xD0E4, 0x7D1A, + 0xD0E5, 0x7D66, 0xD0E6, 0x4E98, 0xD0E7, 0x5162, 0xD0E8, 0x77DC, + 0xD0E9, 0x80AF, 0xD0EA, 0x4F01, 0xD0EB, 0x4F0E, 0xD0EC, 0x5176, + 0xD0ED, 0x5180, 0xD0EE, 0x55DC, 0xD0EF, 0x5668, 0xD0F0, 0x573B, + 0xD0F1, 0x57FA, 0xD0F2, 0x57FC, 0xD0F3, 0x5914, 0xD0F4, 0x5947, + 0xD0F5, 0x5993, 0xD0F6, 0x5BC4, 0xD0F7, 0x5C90, 0xD0F8, 0x5D0E, + 0xD0F9, 0x5DF1, 0xD0FA, 0x5E7E, 0xD0FB, 0x5FCC, 0xD0FC, 0x6280, + 0xD0FD, 0x65D7, 0xD0FE, 0x65E3, 0xD1A1, 0x671E, 0xD1A2, 0x671F, + 0xD1A3, 0x675E, 0xD1A4, 0x68CB, 0xD1A5, 0x68C4, 0xD1A6, 0x6A5F, + 0xD1A7, 0x6B3A, 0xD1A8, 0x6C23, 0xD1A9, 0x6C7D, 0xD1AA, 0x6C82, + 0xD1AB, 0x6DC7, 0xD1AC, 0x7398, 0xD1AD, 0x7426, 0xD1AE, 0x742A, + 0xD1AF, 0x7482, 0xD1B0, 0x74A3, 0xD1B1, 0x7578, 0xD1B2, 0x757F, + 0xD1B3, 0x7881, 0xD1B4, 0x78EF, 0xD1B5, 0x7941, 0xD1B6, 0x7947, + 0xD1B7, 0x7948, 0xD1B8, 0x797A, 0xD1B9, 0x7B95, 0xD1BA, 0x7D00, + 0xD1BB, 0x7DBA, 0xD1BC, 0x7F88, 0xD1BD, 0x8006, 0xD1BE, 0x802D, + 0xD1BF, 0x808C, 0xD1C0, 0x8A18, 0xD1C1, 0x8B4F, 0xD1C2, 0x8C48, + 0xD1C3, 0x8D77, 0xD1C4, 0x9321, 0xD1C5, 0x9324, 0xD1C6, 0x98E2, + 0xD1C7, 0x9951, 0xD1C8, 0x9A0E, 0xD1C9, 0x9A0F, 0xD1CA, 0x9A65, + 0xD1CB, 0x9E92, 0xD1CC, 0x7DCA, 0xD1CD, 0x4F76, 0xD1CE, 0x5409, + 0xD1CF, 0x62EE, 0xD1D0, 0x6854, 0xD1D1, 0x91D1, 0xD1D2, 0x55AB, + 0xD1D3, 0x513A, 0xD1D4, 0xF90B, 0xD1D5, 0xF90C, 0xD1D6, 0x5A1C, + 0xD1D7, 0x61E6, 0xD1D8, 0xF90D, 0xD1D9, 0x62CF, 0xD1DA, 0x62FF, + 0xD1DB, 0xF90E, 0xD1DC, 0xF90F, 0xD1DD, 0xF910, 0xD1DE, 0xF911, + 0xD1DF, 0xF912, 0xD1E0, 0xF913, 0xD1E1, 0x90A3, 0xD1E2, 0xF914, + 0xD1E3, 0xF915, 0xD1E4, 0xF916, 0xD1E5, 0xF917, 0xD1E6, 0xF918, + 0xD1E7, 0x8AFE, 0xD1E8, 0xF919, 0xD1E9, 0xF91A, 0xD1EA, 0xF91B, + 0xD1EB, 0xF91C, 0xD1EC, 0x6696, 0xD1ED, 0xF91D, 0xD1EE, 0x7156, + 0xD1EF, 0xF91E, 0xD1F0, 0xF91F, 0xD1F1, 0x96E3, 0xD1F2, 0xF920, + 0xD1F3, 0x634F, 0xD1F4, 0x637A, 0xD1F5, 0x5357, 0xD1F6, 0xF921, + 0xD1F7, 0x678F, 0xD1F8, 0x6960, 0xD1F9, 0x6E73, 0xD1FA, 0xF922, + 0xD1FB, 0x7537, 0xD1FC, 0xF923, 0xD1FD, 0xF924, 0xD1FE, 0xF925, + 0xD2A1, 0x7D0D, 0xD2A2, 0xF926, 0xD2A3, 0xF927, 0xD2A4, 0x8872, + 0xD2A5, 0x56CA, 0xD2A6, 0x5A18, 0xD2A7, 0xF928, 0xD2A8, 0xF929, + 0xD2A9, 0xF92A, 0xD2AA, 0xF92B, 0xD2AB, 0xF92C, 0xD2AC, 0x4E43, + 0xD2AD, 0xF92D, 0xD2AE, 0x5167, 0xD2AF, 0x5948, 0xD2B0, 0x67F0, + 0xD2B1, 0x8010, 0xD2B2, 0xF92E, 0xD2B3, 0x5973, 0xD2B4, 0x5E74, + 0xD2B5, 0x649A, 0xD2B6, 0x79CA, 0xD2B7, 0x5FF5, 0xD2B8, 0x606C, + 0xD2B9, 0x62C8, 0xD2BA, 0x637B, 0xD2BB, 0x5BE7, 0xD2BC, 0x5BD7, + 0xD2BD, 0x52AA, 0xD2BE, 0xF92F, 0xD2BF, 0x5974, 0xD2C0, 0x5F29, + 0xD2C1, 0x6012, 0xD2C2, 0xF930, 0xD2C3, 0xF931, 0xD2C4, 0xF932, + 0xD2C5, 0x7459, 0xD2C6, 0xF933, 0xD2C7, 0xF934, 0xD2C8, 0xF935, + 0xD2C9, 0xF936, 0xD2CA, 0xF937, 0xD2CB, 0xF938, 0xD2CC, 0x99D1, + 0xD2CD, 0xF939, 0xD2CE, 0xF93A, 0xD2CF, 0xF93B, 0xD2D0, 0xF93C, + 0xD2D1, 0xF93D, 0xD2D2, 0xF93E, 0xD2D3, 0xF93F, 0xD2D4, 0xF940, + 0xD2D5, 0xF941, 0xD2D6, 0xF942, 0xD2D7, 0xF943, 0xD2D8, 0x6FC3, + 0xD2D9, 0xF944, 0xD2DA, 0xF945, 0xD2DB, 0x81BF, 0xD2DC, 0x8FB2, + 0xD2DD, 0x60F1, 0xD2DE, 0xF946, 0xD2DF, 0xF947, 0xD2E0, 0x8166, + 0xD2E1, 0xF948, 0xD2E2, 0xF949, 0xD2E3, 0x5C3F, 0xD2E4, 0xF94A, + 0xD2E5, 0xF94B, 0xD2E6, 0xF94C, 0xD2E7, 0xF94D, 0xD2E8, 0xF94E, + 0xD2E9, 0xF94F, 0xD2EA, 0xF950, 0xD2EB, 0xF951, 0xD2EC, 0x5AE9, + 0xD2ED, 0x8A25, 0xD2EE, 0x677B, 0xD2EF, 0x7D10, 0xD2F0, 0xF952, + 0xD2F1, 0xF953, 0xD2F2, 0xF954, 0xD2F3, 0xF955, 0xD2F4, 0xF956, + 0xD2F5, 0xF957, 0xD2F6, 0x80FD, 0xD2F7, 0xF958, 0xD2F8, 0xF959, + 0xD2F9, 0x5C3C, 0xD2FA, 0x6CE5, 0xD2FB, 0x533F, 0xD2FC, 0x6EBA, + 0xD2FD, 0x591A, 0xD2FE, 0x8336, 0xD3A1, 0x4E39, 0xD3A2, 0x4EB6, + 0xD3A3, 0x4F46, 0xD3A4, 0x55AE, 0xD3A5, 0x5718, 0xD3A6, 0x58C7, + 0xD3A7, 0x5F56, 0xD3A8, 0x65B7, 0xD3A9, 0x65E6, 0xD3AA, 0x6A80, + 0xD3AB, 0x6BB5, 0xD3AC, 0x6E4D, 0xD3AD, 0x77ED, 0xD3AE, 0x7AEF, + 0xD3AF, 0x7C1E, 0xD3B0, 0x7DDE, 0xD3B1, 0x86CB, 0xD3B2, 0x8892, + 0xD3B3, 0x9132, 0xD3B4, 0x935B, 0xD3B5, 0x64BB, 0xD3B6, 0x6FBE, + 0xD3B7, 0x737A, 0xD3B8, 0x75B8, 0xD3B9, 0x9054, 0xD3BA, 0x5556, + 0xD3BB, 0x574D, 0xD3BC, 0x61BA, 0xD3BD, 0x64D4, 0xD3BE, 0x66C7, + 0xD3BF, 0x6DE1, 0xD3C0, 0x6E5B, 0xD3C1, 0x6F6D, 0xD3C2, 0x6FB9, + 0xD3C3, 0x75F0, 0xD3C4, 0x8043, 0xD3C5, 0x81BD, 0xD3C6, 0x8541, + 0xD3C7, 0x8983, 0xD3C8, 0x8AC7, 0xD3C9, 0x8B5A, 0xD3CA, 0x931F, + 0xD3CB, 0x6C93, 0xD3CC, 0x7553, 0xD3CD, 0x7B54, 0xD3CE, 0x8E0F, + 0xD3CF, 0x905D, 0xD3D0, 0x5510, 0xD3D1, 0x5802, 0xD3D2, 0x5858, + 0xD3D3, 0x5E62, 0xD3D4, 0x6207, 0xD3D5, 0x649E, 0xD3D6, 0x68E0, + 0xD3D7, 0x7576, 0xD3D8, 0x7CD6, 0xD3D9, 0x87B3, 0xD3DA, 0x9EE8, + 0xD3DB, 0x4EE3, 0xD3DC, 0x5788, 0xD3DD, 0x576E, 0xD3DE, 0x5927, + 0xD3DF, 0x5C0D, 0xD3E0, 0x5CB1, 0xD3E1, 0x5E36, 0xD3E2, 0x5F85, + 0xD3E3, 0x6234, 0xD3E4, 0x64E1, 0xD3E5, 0x73B3, 0xD3E6, 0x81FA, + 0xD3E7, 0x888B, 0xD3E8, 0x8CB8, 0xD3E9, 0x968A, 0xD3EA, 0x9EDB, + 0xD3EB, 0x5B85, 0xD3EC, 0x5FB7, 0xD3ED, 0x60B3, 0xD3EE, 0x5012, + 0xD3EF, 0x5200, 0xD3F0, 0x5230, 0xD3F1, 0x5716, 0xD3F2, 0x5835, + 0xD3F3, 0x5857, 0xD3F4, 0x5C0E, 0xD3F5, 0x5C60, 0xD3F6, 0x5CF6, + 0xD3F7, 0x5D8B, 0xD3F8, 0x5EA6, 0xD3F9, 0x5F92, 0xD3FA, 0x60BC, + 0xD3FB, 0x6311, 0xD3FC, 0x6389, 0xD3FD, 0x6417, 0xD3FE, 0x6843, + 0xD4A1, 0x68F9, 0xD4A2, 0x6AC2, 0xD4A3, 0x6DD8, 0xD4A4, 0x6E21, + 0xD4A5, 0x6ED4, 0xD4A6, 0x6FE4, 0xD4A7, 0x71FE, 0xD4A8, 0x76DC, + 0xD4A9, 0x7779, 0xD4AA, 0x79B1, 0xD4AB, 0x7A3B, 0xD4AC, 0x8404, + 0xD4AD, 0x89A9, 0xD4AE, 0x8CED, 0xD4AF, 0x8DF3, 0xD4B0, 0x8E48, + 0xD4B1, 0x9003, 0xD4B2, 0x9014, 0xD4B3, 0x9053, 0xD4B4, 0x90FD, + 0xD4B5, 0x934D, 0xD4B6, 0x9676, 0xD4B7, 0x97DC, 0xD4B8, 0x6BD2, + 0xD4B9, 0x7006, 0xD4BA, 0x7258, 0xD4BB, 0x72A2, 0xD4BC, 0x7368, + 0xD4BD, 0x7763, 0xD4BE, 0x79BF, 0xD4BF, 0x7BE4, 0xD4C0, 0x7E9B, + 0xD4C1, 0x8B80, 0xD4C2, 0x58A9, 0xD4C3, 0x60C7, 0xD4C4, 0x6566, + 0xD4C5, 0x65FD, 0xD4C6, 0x66BE, 0xD4C7, 0x6C8C, 0xD4C8, 0x711E, + 0xD4C9, 0x71C9, 0xD4CA, 0x8C5A, 0xD4CB, 0x9813, 0xD4CC, 0x4E6D, + 0xD4CD, 0x7A81, 0xD4CE, 0x4EDD, 0xD4CF, 0x51AC, 0xD4D0, 0x51CD, + 0xD4D1, 0x52D5, 0xD4D2, 0x540C, 0xD4D3, 0x61A7, 0xD4D4, 0x6771, + 0xD4D5, 0x6850, 0xD4D6, 0x68DF, 0xD4D7, 0x6D1E, 0xD4D8, 0x6F7C, + 0xD4D9, 0x75BC, 0xD4DA, 0x77B3, 0xD4DB, 0x7AE5, 0xD4DC, 0x80F4, + 0xD4DD, 0x8463, 0xD4DE, 0x9285, 0xD4DF, 0x515C, 0xD4E0, 0x6597, + 0xD4E1, 0x675C, 0xD4E2, 0x6793, 0xD4E3, 0x75D8, 0xD4E4, 0x7AC7, + 0xD4E5, 0x8373, 0xD4E6, 0xF95A, 0xD4E7, 0x8C46, 0xD4E8, 0x9017, + 0xD4E9, 0x982D, 0xD4EA, 0x5C6F, 0xD4EB, 0x81C0, 0xD4EC, 0x829A, + 0xD4ED, 0x9041, 0xD4EE, 0x906F, 0xD4EF, 0x920D, 0xD4F0, 0x5F97, + 0xD4F1, 0x5D9D, 0xD4F2, 0x6A59, 0xD4F3, 0x71C8, 0xD4F4, 0x767B, + 0xD4F5, 0x7B49, 0xD4F6, 0x85E4, 0xD4F7, 0x8B04, 0xD4F8, 0x9127, + 0xD4F9, 0x9A30, 0xD4FA, 0x5587, 0xD4FB, 0x61F6, 0xD4FC, 0xF95B, + 0xD4FD, 0x7669, 0xD4FE, 0x7F85, 0xD5A1, 0x863F, 0xD5A2, 0x87BA, + 0xD5A3, 0x88F8, 0xD5A4, 0x908F, 0xD5A5, 0xF95C, 0xD5A6, 0x6D1B, + 0xD5A7, 0x70D9, 0xD5A8, 0x73DE, 0xD5A9, 0x7D61, 0xD5AA, 0x843D, + 0xD5AB, 0xF95D, 0xD5AC, 0x916A, 0xD5AD, 0x99F1, 0xD5AE, 0xF95E, + 0xD5AF, 0x4E82, 0xD5B0, 0x5375, 0xD5B1, 0x6B04, 0xD5B2, 0x6B12, + 0xD5B3, 0x703E, 0xD5B4, 0x721B, 0xD5B5, 0x862D, 0xD5B6, 0x9E1E, + 0xD5B7, 0x524C, 0xD5B8, 0x8FA3, 0xD5B9, 0x5D50, 0xD5BA, 0x64E5, + 0xD5BB, 0x652C, 0xD5BC, 0x6B16, 0xD5BD, 0x6FEB, 0xD5BE, 0x7C43, + 0xD5BF, 0x7E9C, 0xD5C0, 0x85CD, 0xD5C1, 0x8964, 0xD5C2, 0x89BD, + 0xD5C3, 0x62C9, 0xD5C4, 0x81D8, 0xD5C5, 0x881F, 0xD5C6, 0x5ECA, + 0xD5C7, 0x6717, 0xD5C8, 0x6D6A, 0xD5C9, 0x72FC, 0xD5CA, 0x7405, + 0xD5CB, 0x746F, 0xD5CC, 0x8782, 0xD5CD, 0x90DE, 0xD5CE, 0x4F86, + 0xD5CF, 0x5D0D, 0xD5D0, 0x5FA0, 0xD5D1, 0x840A, 0xD5D2, 0x51B7, + 0xD5D3, 0x63A0, 0xD5D4, 0x7565, 0xD5D5, 0x4EAE, 0xD5D6, 0x5006, + 0xD5D7, 0x5169, 0xD5D8, 0x51C9, 0xD5D9, 0x6881, 0xD5DA, 0x6A11, + 0xD5DB, 0x7CAE, 0xD5DC, 0x7CB1, 0xD5DD, 0x7CE7, 0xD5DE, 0x826F, + 0xD5DF, 0x8AD2, 0xD5E0, 0x8F1B, 0xD5E1, 0x91CF, 0xD5E2, 0x4FB6, + 0xD5E3, 0x5137, 0xD5E4, 0x52F5, 0xD5E5, 0x5442, 0xD5E6, 0x5EEC, + 0xD5E7, 0x616E, 0xD5E8, 0x623E, 0xD5E9, 0x65C5, 0xD5EA, 0x6ADA, + 0xD5EB, 0x6FFE, 0xD5EC, 0x792A, 0xD5ED, 0x85DC, 0xD5EE, 0x8823, + 0xD5EF, 0x95AD, 0xD5F0, 0x9A62, 0xD5F1, 0x9A6A, 0xD5F2, 0x9E97, + 0xD5F3, 0x9ECE, 0xD5F4, 0x529B, 0xD5F5, 0x66C6, 0xD5F6, 0x6B77, + 0xD5F7, 0x701D, 0xD5F8, 0x792B, 0xD5F9, 0x8F62, 0xD5FA, 0x9742, + 0xD5FB, 0x6190, 0xD5FC, 0x6200, 0xD5FD, 0x6523, 0xD5FE, 0x6F23, + 0xD6A1, 0x7149, 0xD6A2, 0x7489, 0xD6A3, 0x7DF4, 0xD6A4, 0x806F, + 0xD6A5, 0x84EE, 0xD6A6, 0x8F26, 0xD6A7, 0x9023, 0xD6A8, 0x934A, + 0xD6A9, 0x51BD, 0xD6AA, 0x5217, 0xD6AB, 0x52A3, 0xD6AC, 0x6D0C, + 0xD6AD, 0x70C8, 0xD6AE, 0x88C2, 0xD6AF, 0x5EC9, 0xD6B0, 0x6582, + 0xD6B1, 0x6BAE, 0xD6B2, 0x6FC2, 0xD6B3, 0x7C3E, 0xD6B4, 0x7375, + 0xD6B5, 0x4EE4, 0xD6B6, 0x4F36, 0xD6B7, 0x56F9, 0xD6B8, 0xF95F, + 0xD6B9, 0x5CBA, 0xD6BA, 0x5DBA, 0xD6BB, 0x601C, 0xD6BC, 0x73B2, + 0xD6BD, 0x7B2D, 0xD6BE, 0x7F9A, 0xD6BF, 0x7FCE, 0xD6C0, 0x8046, + 0xD6C1, 0x901E, 0xD6C2, 0x9234, 0xD6C3, 0x96F6, 0xD6C4, 0x9748, + 0xD6C5, 0x9818, 0xD6C6, 0x9F61, 0xD6C7, 0x4F8B, 0xD6C8, 0x6FA7, + 0xD6C9, 0x79AE, 0xD6CA, 0x91B4, 0xD6CB, 0x96B7, 0xD6CC, 0x52DE, + 0xD6CD, 0xF960, 0xD6CE, 0x6488, 0xD6CF, 0x64C4, 0xD6D0, 0x6AD3, + 0xD6D1, 0x6F5E, 0xD6D2, 0x7018, 0xD6D3, 0x7210, 0xD6D4, 0x76E7, + 0xD6D5, 0x8001, 0xD6D6, 0x8606, 0xD6D7, 0x865C, 0xD6D8, 0x8DEF, + 0xD6D9, 0x8F05, 0xD6DA, 0x9732, 0xD6DB, 0x9B6F, 0xD6DC, 0x9DFA, + 0xD6DD, 0x9E75, 0xD6DE, 0x788C, 0xD6DF, 0x797F, 0xD6E0, 0x7DA0, + 0xD6E1, 0x83C9, 0xD6E2, 0x9304, 0xD6E3, 0x9E7F, 0xD6E4, 0x9E93, + 0xD6E5, 0x8AD6, 0xD6E6, 0x58DF, 0xD6E7, 0x5F04, 0xD6E8, 0x6727, + 0xD6E9, 0x7027, 0xD6EA, 0x74CF, 0xD6EB, 0x7C60, 0xD6EC, 0x807E, + 0xD6ED, 0x5121, 0xD6EE, 0x7028, 0xD6EF, 0x7262, 0xD6F0, 0x78CA, + 0xD6F1, 0x8CC2, 0xD6F2, 0x8CDA, 0xD6F3, 0x8CF4, 0xD6F4, 0x96F7, + 0xD6F5, 0x4E86, 0xD6F6, 0x50DA, 0xD6F7, 0x5BEE, 0xD6F8, 0x5ED6, + 0xD6F9, 0x6599, 0xD6FA, 0x71CE, 0xD6FB, 0x7642, 0xD6FC, 0x77AD, + 0xD6FD, 0x804A, 0xD6FE, 0x84FC, 0xD7A1, 0x907C, 0xD7A2, 0x9B27, + 0xD7A3, 0x9F8D, 0xD7A4, 0x58D8, 0xD7A5, 0x5A41, 0xD7A6, 0x5C62, + 0xD7A7, 0x6A13, 0xD7A8, 0x6DDA, 0xD7A9, 0x6F0F, 0xD7AA, 0x763B, + 0xD7AB, 0x7D2F, 0xD7AC, 0x7E37, 0xD7AD, 0x851E, 0xD7AE, 0x8938, + 0xD7AF, 0x93E4, 0xD7B0, 0x964B, 0xD7B1, 0x5289, 0xD7B2, 0x65D2, + 0xD7B3, 0x67F3, 0xD7B4, 0x69B4, 0xD7B5, 0x6D41, 0xD7B6, 0x6E9C, + 0xD7B7, 0x700F, 0xD7B8, 0x7409, 0xD7B9, 0x7460, 0xD7BA, 0x7559, + 0xD7BB, 0x7624, 0xD7BC, 0x786B, 0xD7BD, 0x8B2C, 0xD7BE, 0x985E, + 0xD7BF, 0x516D, 0xD7C0, 0x622E, 0xD7C1, 0x9678, 0xD7C2, 0x4F96, + 0xD7C3, 0x502B, 0xD7C4, 0x5D19, 0xD7C5, 0x6DEA, 0xD7C6, 0x7DB8, + 0xD7C7, 0x8F2A, 0xD7C8, 0x5F8B, 0xD7C9, 0x6144, 0xD7CA, 0x6817, + 0xD7CB, 0xF961, 0xD7CC, 0x9686, 0xD7CD, 0x52D2, 0xD7CE, 0x808B, + 0xD7CF, 0x51DC, 0xD7D0, 0x51CC, 0xD7D1, 0x695E, 0xD7D2, 0x7A1C, + 0xD7D3, 0x7DBE, 0xD7D4, 0x83F1, 0xD7D5, 0x9675, 0xD7D6, 0x4FDA, + 0xD7D7, 0x5229, 0xD7D8, 0x5398, 0xD7D9, 0x540F, 0xD7DA, 0x550E, + 0xD7DB, 0x5C65, 0xD7DC, 0x60A7, 0xD7DD, 0x674E, 0xD7DE, 0x68A8, + 0xD7DF, 0x6D6C, 0xD7E0, 0x7281, 0xD7E1, 0x72F8, 0xD7E2, 0x7406, + 0xD7E3, 0x7483, 0xD7E4, 0xF962, 0xD7E5, 0x75E2, 0xD7E6, 0x7C6C, + 0xD7E7, 0x7F79, 0xD7E8, 0x7FB8, 0xD7E9, 0x8389, 0xD7EA, 0x88CF, + 0xD7EB, 0x88E1, 0xD7EC, 0x91CC, 0xD7ED, 0x91D0, 0xD7EE, 0x96E2, + 0xD7EF, 0x9BC9, 0xD7F0, 0x541D, 0xD7F1, 0x6F7E, 0xD7F2, 0x71D0, + 0xD7F3, 0x7498, 0xD7F4, 0x85FA, 0xD7F5, 0x8EAA, 0xD7F6, 0x96A3, + 0xD7F7, 0x9C57, 0xD7F8, 0x9E9F, 0xD7F9, 0x6797, 0xD7FA, 0x6DCB, + 0xD7FB, 0x7433, 0xD7FC, 0x81E8, 0xD7FD, 0x9716, 0xD7FE, 0x782C, + 0xD8A1, 0x7ACB, 0xD8A2, 0x7B20, 0xD8A3, 0x7C92, 0xD8A4, 0x6469, + 0xD8A5, 0x746A, 0xD8A6, 0x75F2, 0xD8A7, 0x78BC, 0xD8A8, 0x78E8, + 0xD8A9, 0x99AC, 0xD8AA, 0x9B54, 0xD8AB, 0x9EBB, 0xD8AC, 0x5BDE, + 0xD8AD, 0x5E55, 0xD8AE, 0x6F20, 0xD8AF, 0x819C, 0xD8B0, 0x83AB, + 0xD8B1, 0x9088, 0xD8B2, 0x4E07, 0xD8B3, 0x534D, 0xD8B4, 0x5A29, + 0xD8B5, 0x5DD2, 0xD8B6, 0x5F4E, 0xD8B7, 0x6162, 0xD8B8, 0x633D, + 0xD8B9, 0x6669, 0xD8BA, 0x66FC, 0xD8BB, 0x6EFF, 0xD8BC, 0x6F2B, + 0xD8BD, 0x7063, 0xD8BE, 0x779E, 0xD8BF, 0x842C, 0xD8C0, 0x8513, + 0xD8C1, 0x883B, 0xD8C2, 0x8F13, 0xD8C3, 0x9945, 0xD8C4, 0x9C3B, + 0xD8C5, 0x551C, 0xD8C6, 0x62B9, 0xD8C7, 0x672B, 0xD8C8, 0x6CAB, + 0xD8C9, 0x8309, 0xD8CA, 0x896A, 0xD8CB, 0x977A, 0xD8CC, 0x4EA1, + 0xD8CD, 0x5984, 0xD8CE, 0x5FD8, 0xD8CF, 0x5FD9, 0xD8D0, 0x671B, + 0xD8D1, 0x7DB2, 0xD8D2, 0x7F54, 0xD8D3, 0x8292, 0xD8D4, 0x832B, + 0xD8D5, 0x83BD, 0xD8D6, 0x8F1E, 0xD8D7, 0x9099, 0xD8D8, 0x57CB, + 0xD8D9, 0x59B9, 0xD8DA, 0x5A92, 0xD8DB, 0x5BD0, 0xD8DC, 0x6627, + 0xD8DD, 0x679A, 0xD8DE, 0x6885, 0xD8DF, 0x6BCF, 0xD8E0, 0x7164, + 0xD8E1, 0x7F75, 0xD8E2, 0x8CB7, 0xD8E3, 0x8CE3, 0xD8E4, 0x9081, + 0xD8E5, 0x9B45, 0xD8E6, 0x8108, 0xD8E7, 0x8C8A, 0xD8E8, 0x964C, + 0xD8E9, 0x9A40, 0xD8EA, 0x9EA5, 0xD8EB, 0x5B5F, 0xD8EC, 0x6C13, + 0xD8ED, 0x731B, 0xD8EE, 0x76F2, 0xD8EF, 0x76DF, 0xD8F0, 0x840C, + 0xD8F1, 0x51AA, 0xD8F2, 0x8993, 0xD8F3, 0x514D, 0xD8F4, 0x5195, + 0xD8F5, 0x52C9, 0xD8F6, 0x68C9, 0xD8F7, 0x6C94, 0xD8F8, 0x7704, + 0xD8F9, 0x7720, 0xD8FA, 0x7DBF, 0xD8FB, 0x7DEC, 0xD8FC, 0x9762, + 0xD8FD, 0x9EB5, 0xD8FE, 0x6EC5, 0xD9A1, 0x8511, 0xD9A2, 0x51A5, + 0xD9A3, 0x540D, 0xD9A4, 0x547D, 0xD9A5, 0x660E, 0xD9A6, 0x669D, + 0xD9A7, 0x6927, 0xD9A8, 0x6E9F, 0xD9A9, 0x76BF, 0xD9AA, 0x7791, + 0xD9AB, 0x8317, 0xD9AC, 0x84C2, 0xD9AD, 0x879F, 0xD9AE, 0x9169, + 0xD9AF, 0x9298, 0xD9B0, 0x9CF4, 0xD9B1, 0x8882, 0xD9B2, 0x4FAE, + 0xD9B3, 0x5192, 0xD9B4, 0x52DF, 0xD9B5, 0x59C6, 0xD9B6, 0x5E3D, + 0xD9B7, 0x6155, 0xD9B8, 0x6478, 0xD9B9, 0x6479, 0xD9BA, 0x66AE, + 0xD9BB, 0x67D0, 0xD9BC, 0x6A21, 0xD9BD, 0x6BCD, 0xD9BE, 0x6BDB, + 0xD9BF, 0x725F, 0xD9C0, 0x7261, 0xD9C1, 0x7441, 0xD9C2, 0x7738, + 0xD9C3, 0x77DB, 0xD9C4, 0x8017, 0xD9C5, 0x82BC, 0xD9C6, 0x8305, + 0xD9C7, 0x8B00, 0xD9C8, 0x8B28, 0xD9C9, 0x8C8C, 0xD9CA, 0x6728, + 0xD9CB, 0x6C90, 0xD9CC, 0x7267, 0xD9CD, 0x76EE, 0xD9CE, 0x7766, + 0xD9CF, 0x7A46, 0xD9D0, 0x9DA9, 0xD9D1, 0x6B7F, 0xD9D2, 0x6C92, + 0xD9D3, 0x5922, 0xD9D4, 0x6726, 0xD9D5, 0x8499, 0xD9D6, 0x536F, + 0xD9D7, 0x5893, 0xD9D8, 0x5999, 0xD9D9, 0x5EDF, 0xD9DA, 0x63CF, + 0xD9DB, 0x6634, 0xD9DC, 0x6773, 0xD9DD, 0x6E3A, 0xD9DE, 0x732B, + 0xD9DF, 0x7AD7, 0xD9E0, 0x82D7, 0xD9E1, 0x9328, 0xD9E2, 0x52D9, + 0xD9E3, 0x5DEB, 0xD9E4, 0x61AE, 0xD9E5, 0x61CB, 0xD9E6, 0x620A, + 0xD9E7, 0x62C7, 0xD9E8, 0x64AB, 0xD9E9, 0x65E0, 0xD9EA, 0x6959, + 0xD9EB, 0x6B66, 0xD9EC, 0x6BCB, 0xD9ED, 0x7121, 0xD9EE, 0x73F7, + 0xD9EF, 0x755D, 0xD9F0, 0x7E46, 0xD9F1, 0x821E, 0xD9F2, 0x8302, + 0xD9F3, 0x856A, 0xD9F4, 0x8AA3, 0xD9F5, 0x8CBF, 0xD9F6, 0x9727, + 0xD9F7, 0x9D61, 0xD9F8, 0x58A8, 0xD9F9, 0x9ED8, 0xD9FA, 0x5011, + 0xD9FB, 0x520E, 0xD9FC, 0x543B, 0xD9FD, 0x554F, 0xD9FE, 0x6587, + 0xDAA1, 0x6C76, 0xDAA2, 0x7D0A, 0xDAA3, 0x7D0B, 0xDAA4, 0x805E, + 0xDAA5, 0x868A, 0xDAA6, 0x9580, 0xDAA7, 0x96EF, 0xDAA8, 0x52FF, + 0xDAA9, 0x6C95, 0xDAAA, 0x7269, 0xDAAB, 0x5473, 0xDAAC, 0x5A9A, + 0xDAAD, 0x5C3E, 0xDAAE, 0x5D4B, 0xDAAF, 0x5F4C, 0xDAB0, 0x5FAE, + 0xDAB1, 0x672A, 0xDAB2, 0x68B6, 0xDAB3, 0x6963, 0xDAB4, 0x6E3C, + 0xDAB5, 0x6E44, 0xDAB6, 0x7709, 0xDAB7, 0x7C73, 0xDAB8, 0x7F8E, + 0xDAB9, 0x8587, 0xDABA, 0x8B0E, 0xDABB, 0x8FF7, 0xDABC, 0x9761, + 0xDABD, 0x9EF4, 0xDABE, 0x5CB7, 0xDABF, 0x60B6, 0xDAC0, 0x610D, + 0xDAC1, 0x61AB, 0xDAC2, 0x654F, 0xDAC3, 0x65FB, 0xDAC4, 0x65FC, + 0xDAC5, 0x6C11, 0xDAC6, 0x6CEF, 0xDAC7, 0x739F, 0xDAC8, 0x73C9, + 0xDAC9, 0x7DE1, 0xDACA, 0x9594, 0xDACB, 0x5BC6, 0xDACC, 0x871C, + 0xDACD, 0x8B10, 0xDACE, 0x525D, 0xDACF, 0x535A, 0xDAD0, 0x62CD, + 0xDAD1, 0x640F, 0xDAD2, 0x64B2, 0xDAD3, 0x6734, 0xDAD4, 0x6A38, + 0xDAD5, 0x6CCA, 0xDAD6, 0x73C0, 0xDAD7, 0x749E, 0xDAD8, 0x7B94, + 0xDAD9, 0x7C95, 0xDADA, 0x7E1B, 0xDADB, 0x818A, 0xDADC, 0x8236, + 0xDADD, 0x8584, 0xDADE, 0x8FEB, 0xDADF, 0x96F9, 0xDAE0, 0x99C1, + 0xDAE1, 0x4F34, 0xDAE2, 0x534A, 0xDAE3, 0x53CD, 0xDAE4, 0x53DB, + 0xDAE5, 0x62CC, 0xDAE6, 0x642C, 0xDAE7, 0x6500, 0xDAE8, 0x6591, + 0xDAE9, 0x69C3, 0xDAEA, 0x6CEE, 0xDAEB, 0x6F58, 0xDAEC, 0x73ED, + 0xDAED, 0x7554, 0xDAEE, 0x7622, 0xDAEF, 0x76E4, 0xDAF0, 0x76FC, + 0xDAF1, 0x78D0, 0xDAF2, 0x78FB, 0xDAF3, 0x792C, 0xDAF4, 0x7D46, + 0xDAF5, 0x822C, 0xDAF6, 0x87E0, 0xDAF7, 0x8FD4, 0xDAF8, 0x9812, + 0xDAF9, 0x98EF, 0xDAFA, 0x52C3, 0xDAFB, 0x62D4, 0xDAFC, 0x64A5, + 0xDAFD, 0x6E24, 0xDAFE, 0x6F51, 0xDBA1, 0x767C, 0xDBA2, 0x8DCB, + 0xDBA3, 0x91B1, 0xDBA4, 0x9262, 0xDBA5, 0x9AEE, 0xDBA6, 0x9B43, + 0xDBA7, 0x5023, 0xDBA8, 0x508D, 0xDBA9, 0x574A, 0xDBAA, 0x59A8, + 0xDBAB, 0x5C28, 0xDBAC, 0x5E47, 0xDBAD, 0x5F77, 0xDBAE, 0x623F, + 0xDBAF, 0x653E, 0xDBB0, 0x65B9, 0xDBB1, 0x65C1, 0xDBB2, 0x6609, + 0xDBB3, 0x678B, 0xDBB4, 0x699C, 0xDBB5, 0x6EC2, 0xDBB6, 0x78C5, + 0xDBB7, 0x7D21, 0xDBB8, 0x80AA, 0xDBB9, 0x8180, 0xDBBA, 0x822B, + 0xDBBB, 0x82B3, 0xDBBC, 0x84A1, 0xDBBD, 0x868C, 0xDBBE, 0x8A2A, + 0xDBBF, 0x8B17, 0xDBC0, 0x90A6, 0xDBC1, 0x9632, 0xDBC2, 0x9F90, + 0xDBC3, 0x500D, 0xDBC4, 0x4FF3, 0xDBC5, 0xF963, 0xDBC6, 0x57F9, + 0xDBC7, 0x5F98, 0xDBC8, 0x62DC, 0xDBC9, 0x6392, 0xDBCA, 0x676F, + 0xDBCB, 0x6E43, 0xDBCC, 0x7119, 0xDBCD, 0x76C3, 0xDBCE, 0x80CC, + 0xDBCF, 0x80DA, 0xDBD0, 0x88F4, 0xDBD1, 0x88F5, 0xDBD2, 0x8919, + 0xDBD3, 0x8CE0, 0xDBD4, 0x8F29, 0xDBD5, 0x914D, 0xDBD6, 0x966A, + 0xDBD7, 0x4F2F, 0xDBD8, 0x4F70, 0xDBD9, 0x5E1B, 0xDBDA, 0x67CF, + 0xDBDB, 0x6822, 0xDBDC, 0x767D, 0xDBDD, 0x767E, 0xDBDE, 0x9B44, + 0xDBDF, 0x5E61, 0xDBE0, 0x6A0A, 0xDBE1, 0x7169, 0xDBE2, 0x71D4, + 0xDBE3, 0x756A, 0xDBE4, 0xF964, 0xDBE5, 0x7E41, 0xDBE6, 0x8543, + 0xDBE7, 0x85E9, 0xDBE8, 0x98DC, 0xDBE9, 0x4F10, 0xDBEA, 0x7B4F, + 0xDBEB, 0x7F70, 0xDBEC, 0x95A5, 0xDBED, 0x51E1, 0xDBEE, 0x5E06, + 0xDBEF, 0x68B5, 0xDBF0, 0x6C3E, 0xDBF1, 0x6C4E, 0xDBF2, 0x6CDB, + 0xDBF3, 0x72AF, 0xDBF4, 0x7BC4, 0xDBF5, 0x8303, 0xDBF6, 0x6CD5, + 0xDBF7, 0x743A, 0xDBF8, 0x50FB, 0xDBF9, 0x5288, 0xDBFA, 0x58C1, + 0xDBFB, 0x64D8, 0xDBFC, 0x6A97, 0xDBFD, 0x74A7, 0xDBFE, 0x7656, + 0xDCA1, 0x78A7, 0xDCA2, 0x8617, 0xDCA3, 0x95E2, 0xDCA4, 0x9739, + 0xDCA5, 0xF965, 0xDCA6, 0x535E, 0xDCA7, 0x5F01, 0xDCA8, 0x8B8A, + 0xDCA9, 0x8FA8, 0xDCAA, 0x8FAF, 0xDCAB, 0x908A, 0xDCAC, 0x5225, + 0xDCAD, 0x77A5, 0xDCAE, 0x9C49, 0xDCAF, 0x9F08, 0xDCB0, 0x4E19, + 0xDCB1, 0x5002, 0xDCB2, 0x5175, 0xDCB3, 0x5C5B, 0xDCB4, 0x5E77, + 0xDCB5, 0x661E, 0xDCB6, 0x663A, 0xDCB7, 0x67C4, 0xDCB8, 0x68C5, + 0xDCB9, 0x70B3, 0xDCBA, 0x7501, 0xDCBB, 0x75C5, 0xDCBC, 0x79C9, + 0xDCBD, 0x7ADD, 0xDCBE, 0x8F27, 0xDCBF, 0x9920, 0xDCC0, 0x9A08, + 0xDCC1, 0x4FDD, 0xDCC2, 0x5821, 0xDCC3, 0x5831, 0xDCC4, 0x5BF6, + 0xDCC5, 0x666E, 0xDCC6, 0x6B65, 0xDCC7, 0x6D11, 0xDCC8, 0x6E7A, + 0xDCC9, 0x6F7D, 0xDCCA, 0x73E4, 0xDCCB, 0x752B, 0xDCCC, 0x83E9, + 0xDCCD, 0x88DC, 0xDCCE, 0x8913, 0xDCCF, 0x8B5C, 0xDCD0, 0x8F14, + 0xDCD1, 0x4F0F, 0xDCD2, 0x50D5, 0xDCD3, 0x5310, 0xDCD4, 0x535C, + 0xDCD5, 0x5B93, 0xDCD6, 0x5FA9, 0xDCD7, 0x670D, 0xDCD8, 0x798F, + 0xDCD9, 0x8179, 0xDCDA, 0x832F, 0xDCDB, 0x8514, 0xDCDC, 0x8907, + 0xDCDD, 0x8986, 0xDCDE, 0x8F39, 0xDCDF, 0x8F3B, 0xDCE0, 0x99A5, + 0xDCE1, 0x9C12, 0xDCE2, 0x672C, 0xDCE3, 0x4E76, 0xDCE4, 0x4FF8, + 0xDCE5, 0x5949, 0xDCE6, 0x5C01, 0xDCE7, 0x5CEF, 0xDCE8, 0x5CF0, + 0xDCE9, 0x6367, 0xDCEA, 0x68D2, 0xDCEB, 0x70FD, 0xDCEC, 0x71A2, + 0xDCED, 0x742B, 0xDCEE, 0x7E2B, 0xDCEF, 0x84EC, 0xDCF0, 0x8702, + 0xDCF1, 0x9022, 0xDCF2, 0x92D2, 0xDCF3, 0x9CF3, 0xDCF4, 0x4E0D, + 0xDCF5, 0x4ED8, 0xDCF6, 0x4FEF, 0xDCF7, 0x5085, 0xDCF8, 0x5256, + 0xDCF9, 0x526F, 0xDCFA, 0x5426, 0xDCFB, 0x5490, 0xDCFC, 0x57E0, + 0xDCFD, 0x592B, 0xDCFE, 0x5A66, 0xDDA1, 0x5B5A, 0xDDA2, 0x5B75, + 0xDDA3, 0x5BCC, 0xDDA4, 0x5E9C, 0xDDA5, 0xF966, 0xDDA6, 0x6276, + 0xDDA7, 0x6577, 0xDDA8, 0x65A7, 0xDDA9, 0x6D6E, 0xDDAA, 0x6EA5, + 0xDDAB, 0x7236, 0xDDAC, 0x7B26, 0xDDAD, 0x7C3F, 0xDDAE, 0x7F36, + 0xDDAF, 0x8150, 0xDDB0, 0x8151, 0xDDB1, 0x819A, 0xDDB2, 0x8240, + 0xDDB3, 0x8299, 0xDDB4, 0x83A9, 0xDDB5, 0x8A03, 0xDDB6, 0x8CA0, + 0xDDB7, 0x8CE6, 0xDDB8, 0x8CFB, 0xDDB9, 0x8D74, 0xDDBA, 0x8DBA, + 0xDDBB, 0x90E8, 0xDDBC, 0x91DC, 0xDDBD, 0x961C, 0xDDBE, 0x9644, + 0xDDBF, 0x99D9, 0xDDC0, 0x9CE7, 0xDDC1, 0x5317, 0xDDC2, 0x5206, + 0xDDC3, 0x5429, 0xDDC4, 0x5674, 0xDDC5, 0x58B3, 0xDDC6, 0x5954, + 0xDDC7, 0x596E, 0xDDC8, 0x5FFF, 0xDDC9, 0x61A4, 0xDDCA, 0x626E, + 0xDDCB, 0x6610, 0xDDCC, 0x6C7E, 0xDDCD, 0x711A, 0xDDCE, 0x76C6, + 0xDDCF, 0x7C89, 0xDDD0, 0x7CDE, 0xDDD1, 0x7D1B, 0xDDD2, 0x82AC, + 0xDDD3, 0x8CC1, 0xDDD4, 0x96F0, 0xDDD5, 0xF967, 0xDDD6, 0x4F5B, + 0xDDD7, 0x5F17, 0xDDD8, 0x5F7F, 0xDDD9, 0x62C2, 0xDDDA, 0x5D29, + 0xDDDB, 0x670B, 0xDDDC, 0x68DA, 0xDDDD, 0x787C, 0xDDDE, 0x7E43, + 0xDDDF, 0x9D6C, 0xDDE0, 0x4E15, 0xDDE1, 0x5099, 0xDDE2, 0x5315, + 0xDDE3, 0x532A, 0xDDE4, 0x5351, 0xDDE5, 0x5983, 0xDDE6, 0x5A62, + 0xDDE7, 0x5E87, 0xDDE8, 0x60B2, 0xDDE9, 0x618A, 0xDDEA, 0x6249, + 0xDDEB, 0x6279, 0xDDEC, 0x6590, 0xDDED, 0x6787, 0xDDEE, 0x69A7, + 0xDDEF, 0x6BD4, 0xDDF0, 0x6BD6, 0xDDF1, 0x6BD7, 0xDDF2, 0x6BD8, + 0xDDF3, 0x6CB8, 0xDDF4, 0xF968, 0xDDF5, 0x7435, 0xDDF6, 0x75FA, + 0xDDF7, 0x7812, 0xDDF8, 0x7891, 0xDDF9, 0x79D5, 0xDDFA, 0x79D8, + 0xDDFB, 0x7C83, 0xDDFC, 0x7DCB, 0xDDFD, 0x7FE1, 0xDDFE, 0x80A5, + 0xDEA1, 0x813E, 0xDEA2, 0x81C2, 0xDEA3, 0x83F2, 0xDEA4, 0x871A, + 0xDEA5, 0x88E8, 0xDEA6, 0x8AB9, 0xDEA7, 0x8B6C, 0xDEA8, 0x8CBB, + 0xDEA9, 0x9119, 0xDEAA, 0x975E, 0xDEAB, 0x98DB, 0xDEAC, 0x9F3B, + 0xDEAD, 0x56AC, 0xDEAE, 0x5B2A, 0xDEAF, 0x5F6C, 0xDEB0, 0x658C, + 0xDEB1, 0x6AB3, 0xDEB2, 0x6BAF, 0xDEB3, 0x6D5C, 0xDEB4, 0x6FF1, + 0xDEB5, 0x7015, 0xDEB6, 0x725D, 0xDEB7, 0x73AD, 0xDEB8, 0x8CA7, + 0xDEB9, 0x8CD3, 0xDEBA, 0x983B, 0xDEBB, 0x6191, 0xDEBC, 0x6C37, + 0xDEBD, 0x8058, 0xDEBE, 0x9A01, 0xDEBF, 0x4E4D, 0xDEC0, 0x4E8B, + 0xDEC1, 0x4E9B, 0xDEC2, 0x4ED5, 0xDEC3, 0x4F3A, 0xDEC4, 0x4F3C, + 0xDEC5, 0x4F7F, 0xDEC6, 0x4FDF, 0xDEC7, 0x50FF, 0xDEC8, 0x53F2, + 0xDEC9, 0x53F8, 0xDECA, 0x5506, 0xDECB, 0x55E3, 0xDECC, 0x56DB, + 0xDECD, 0x58EB, 0xDECE, 0x5962, 0xDECF, 0x5A11, 0xDED0, 0x5BEB, + 0xDED1, 0x5BFA, 0xDED2, 0x5C04, 0xDED3, 0x5DF3, 0xDED4, 0x5E2B, + 0xDED5, 0x5F99, 0xDED6, 0x601D, 0xDED7, 0x6368, 0xDED8, 0x659C, + 0xDED9, 0x65AF, 0xDEDA, 0x67F6, 0xDEDB, 0x67FB, 0xDEDC, 0x68AD, + 0xDEDD, 0x6B7B, 0xDEDE, 0x6C99, 0xDEDF, 0x6CD7, 0xDEE0, 0x6E23, + 0xDEE1, 0x7009, 0xDEE2, 0x7345, 0xDEE3, 0x7802, 0xDEE4, 0x793E, + 0xDEE5, 0x7940, 0xDEE6, 0x7960, 0xDEE7, 0x79C1, 0xDEE8, 0x7BE9, + 0xDEE9, 0x7D17, 0xDEEA, 0x7D72, 0xDEEB, 0x8086, 0xDEEC, 0x820D, + 0xDEED, 0x838E, 0xDEEE, 0x84D1, 0xDEEF, 0x86C7, 0xDEF0, 0x88DF, + 0xDEF1, 0x8A50, 0xDEF2, 0x8A5E, 0xDEF3, 0x8B1D, 0xDEF4, 0x8CDC, + 0xDEF5, 0x8D66, 0xDEF6, 0x8FAD, 0xDEF7, 0x90AA, 0xDEF8, 0x98FC, + 0xDEF9, 0x99DF, 0xDEFA, 0x9E9D, 0xDEFB, 0x524A, 0xDEFC, 0xF969, + 0xDEFD, 0x6714, 0xDEFE, 0xF96A, 0xDFA1, 0x5098, 0xDFA2, 0x522A, + 0xDFA3, 0x5C71, 0xDFA4, 0x6563, 0xDFA5, 0x6C55, 0xDFA6, 0x73CA, + 0xDFA7, 0x7523, 0xDFA8, 0x759D, 0xDFA9, 0x7B97, 0xDFAA, 0x849C, + 0xDFAB, 0x9178, 0xDFAC, 0x9730, 0xDFAD, 0x4E77, 0xDFAE, 0x6492, + 0xDFAF, 0x6BBA, 0xDFB0, 0x715E, 0xDFB1, 0x85A9, 0xDFB2, 0x4E09, + 0xDFB3, 0xF96B, 0xDFB4, 0x6749, 0xDFB5, 0x68EE, 0xDFB6, 0x6E17, + 0xDFB7, 0x829F, 0xDFB8, 0x8518, 0xDFB9, 0x886B, 0xDFBA, 0x63F7, + 0xDFBB, 0x6F81, 0xDFBC, 0x9212, 0xDFBD, 0x98AF, 0xDFBE, 0x4E0A, + 0xDFBF, 0x50B7, 0xDFC0, 0x50CF, 0xDFC1, 0x511F, 0xDFC2, 0x5546, + 0xDFC3, 0x55AA, 0xDFC4, 0x5617, 0xDFC5, 0x5B40, 0xDFC6, 0x5C19, + 0xDFC7, 0x5CE0, 0xDFC8, 0x5E38, 0xDFC9, 0x5E8A, 0xDFCA, 0x5EA0, + 0xDFCB, 0x5EC2, 0xDFCC, 0x60F3, 0xDFCD, 0x6851, 0xDFCE, 0x6A61, + 0xDFCF, 0x6E58, 0xDFD0, 0x723D, 0xDFD1, 0x7240, 0xDFD2, 0x72C0, + 0xDFD3, 0x76F8, 0xDFD4, 0x7965, 0xDFD5, 0x7BB1, 0xDFD6, 0x7FD4, + 0xDFD7, 0x88F3, 0xDFD8, 0x89F4, 0xDFD9, 0x8A73, 0xDFDA, 0x8C61, + 0xDFDB, 0x8CDE, 0xDFDC, 0x971C, 0xDFDD, 0x585E, 0xDFDE, 0x74BD, + 0xDFDF, 0x8CFD, 0xDFE0, 0x55C7, 0xDFE1, 0xF96C, 0xDFE2, 0x7A61, + 0xDFE3, 0x7D22, 0xDFE4, 0x8272, 0xDFE5, 0x7272, 0xDFE6, 0x751F, + 0xDFE7, 0x7525, 0xDFE8, 0xF96D, 0xDFE9, 0x7B19, 0xDFEA, 0x5885, + 0xDFEB, 0x58FB, 0xDFEC, 0x5DBC, 0xDFED, 0x5E8F, 0xDFEE, 0x5EB6, + 0xDFEF, 0x5F90, 0xDFF0, 0x6055, 0xDFF1, 0x6292, 0xDFF2, 0x637F, + 0xDFF3, 0x654D, 0xDFF4, 0x6691, 0xDFF5, 0x66D9, 0xDFF6, 0x66F8, + 0xDFF7, 0x6816, 0xDFF8, 0x68F2, 0xDFF9, 0x7280, 0xDFFA, 0x745E, + 0xDFFB, 0x7B6E, 0xDFFC, 0x7D6E, 0xDFFD, 0x7DD6, 0xDFFE, 0x7F72, + 0xE0A1, 0x80E5, 0xE0A2, 0x8212, 0xE0A3, 0x85AF, 0xE0A4, 0x897F, + 0xE0A5, 0x8A93, 0xE0A6, 0x901D, 0xE0A7, 0x92E4, 0xE0A8, 0x9ECD, + 0xE0A9, 0x9F20, 0xE0AA, 0x5915, 0xE0AB, 0x596D, 0xE0AC, 0x5E2D, + 0xE0AD, 0x60DC, 0xE0AE, 0x6614, 0xE0AF, 0x6673, 0xE0B0, 0x6790, + 0xE0B1, 0x6C50, 0xE0B2, 0x6DC5, 0xE0B3, 0x6F5F, 0xE0B4, 0x77F3, + 0xE0B5, 0x78A9, 0xE0B6, 0x84C6, 0xE0B7, 0x91CB, 0xE0B8, 0x932B, + 0xE0B9, 0x4ED9, 0xE0BA, 0x50CA, 0xE0BB, 0x5148, 0xE0BC, 0x5584, + 0xE0BD, 0x5B0B, 0xE0BE, 0x5BA3, 0xE0BF, 0x6247, 0xE0C0, 0x657E, + 0xE0C1, 0x65CB, 0xE0C2, 0x6E32, 0xE0C3, 0x717D, 0xE0C4, 0x7401, + 0xE0C5, 0x7444, 0xE0C6, 0x7487, 0xE0C7, 0x74BF, 0xE0C8, 0x766C, + 0xE0C9, 0x79AA, 0xE0CA, 0x7DDA, 0xE0CB, 0x7E55, 0xE0CC, 0x7FA8, + 0xE0CD, 0x817A, 0xE0CE, 0x81B3, 0xE0CF, 0x8239, 0xE0D0, 0x861A, + 0xE0D1, 0x87EC, 0xE0D2, 0x8A75, 0xE0D3, 0x8DE3, 0xE0D4, 0x9078, + 0xE0D5, 0x9291, 0xE0D6, 0x9425, 0xE0D7, 0x994D, 0xE0D8, 0x9BAE, + 0xE0D9, 0x5368, 0xE0DA, 0x5C51, 0xE0DB, 0x6954, 0xE0DC, 0x6CC4, + 0xE0DD, 0x6D29, 0xE0DE, 0x6E2B, 0xE0DF, 0x820C, 0xE0E0, 0x859B, + 0xE0E1, 0x893B, 0xE0E2, 0x8A2D, 0xE0E3, 0x8AAA, 0xE0E4, 0x96EA, + 0xE0E5, 0x9F67, 0xE0E6, 0x5261, 0xE0E7, 0x66B9, 0xE0E8, 0x6BB2, + 0xE0E9, 0x7E96, 0xE0EA, 0x87FE, 0xE0EB, 0x8D0D, 0xE0EC, 0x9583, + 0xE0ED, 0x965D, 0xE0EE, 0x651D, 0xE0EF, 0x6D89, 0xE0F0, 0x71EE, + 0xE0F1, 0xF96E, 0xE0F2, 0x57CE, 0xE0F3, 0x59D3, 0xE0F4, 0x5BAC, + 0xE0F5, 0x6027, 0xE0F6, 0x60FA, 0xE0F7, 0x6210, 0xE0F8, 0x661F, + 0xE0F9, 0x665F, 0xE0FA, 0x7329, 0xE0FB, 0x73F9, 0xE0FC, 0x76DB, + 0xE0FD, 0x7701, 0xE0FE, 0x7B6C, 0xE1A1, 0x8056, 0xE1A2, 0x8072, + 0xE1A3, 0x8165, 0xE1A4, 0x8AA0, 0xE1A5, 0x9192, 0xE1A6, 0x4E16, + 0xE1A7, 0x52E2, 0xE1A8, 0x6B72, 0xE1A9, 0x6D17, 0xE1AA, 0x7A05, + 0xE1AB, 0x7B39, 0xE1AC, 0x7D30, 0xE1AD, 0xF96F, 0xE1AE, 0x8CB0, + 0xE1AF, 0x53EC, 0xE1B0, 0x562F, 0xE1B1, 0x5851, 0xE1B2, 0x5BB5, + 0xE1B3, 0x5C0F, 0xE1B4, 0x5C11, 0xE1B5, 0x5DE2, 0xE1B6, 0x6240, + 0xE1B7, 0x6383, 0xE1B8, 0x6414, 0xE1B9, 0x662D, 0xE1BA, 0x68B3, + 0xE1BB, 0x6CBC, 0xE1BC, 0x6D88, 0xE1BD, 0x6EAF, 0xE1BE, 0x701F, + 0xE1BF, 0x70A4, 0xE1C0, 0x71D2, 0xE1C1, 0x7526, 0xE1C2, 0x758F, + 0xE1C3, 0x758E, 0xE1C4, 0x7619, 0xE1C5, 0x7B11, 0xE1C6, 0x7BE0, + 0xE1C7, 0x7C2B, 0xE1C8, 0x7D20, 0xE1C9, 0x7D39, 0xE1CA, 0x852C, + 0xE1CB, 0x856D, 0xE1CC, 0x8607, 0xE1CD, 0x8A34, 0xE1CE, 0x900D, + 0xE1CF, 0x9061, 0xE1D0, 0x90B5, 0xE1D1, 0x92B7, 0xE1D2, 0x97F6, + 0xE1D3, 0x9A37, 0xE1D4, 0x4FD7, 0xE1D5, 0x5C6C, 0xE1D6, 0x675F, + 0xE1D7, 0x6D91, 0xE1D8, 0x7C9F, 0xE1D9, 0x7E8C, 0xE1DA, 0x8B16, + 0xE1DB, 0x8D16, 0xE1DC, 0x901F, 0xE1DD, 0x5B6B, 0xE1DE, 0x5DFD, + 0xE1DF, 0x640D, 0xE1E0, 0x84C0, 0xE1E1, 0x905C, 0xE1E2, 0x98E1, + 0xE1E3, 0x7387, 0xE1E4, 0x5B8B, 0xE1E5, 0x609A, 0xE1E6, 0x677E, + 0xE1E7, 0x6DDE, 0xE1E8, 0x8A1F, 0xE1E9, 0x8AA6, 0xE1EA, 0x9001, + 0xE1EB, 0x980C, 0xE1EC, 0x5237, 0xE1ED, 0xF970, 0xE1EE, 0x7051, + 0xE1EF, 0x788E, 0xE1F0, 0x9396, 0xE1F1, 0x8870, 0xE1F2, 0x91D7, + 0xE1F3, 0x4FEE, 0xE1F4, 0x53D7, 0xE1F5, 0x55FD, 0xE1F6, 0x56DA, + 0xE1F7, 0x5782, 0xE1F8, 0x58FD, 0xE1F9, 0x5AC2, 0xE1FA, 0x5B88, + 0xE1FB, 0x5CAB, 0xE1FC, 0x5CC0, 0xE1FD, 0x5E25, 0xE1FE, 0x6101, + 0xE2A1, 0x620D, 0xE2A2, 0x624B, 0xE2A3, 0x6388, 0xE2A4, 0x641C, + 0xE2A5, 0x6536, 0xE2A6, 0x6578, 0xE2A7, 0x6A39, 0xE2A8, 0x6B8A, + 0xE2A9, 0x6C34, 0xE2AA, 0x6D19, 0xE2AB, 0x6F31, 0xE2AC, 0x71E7, + 0xE2AD, 0x72E9, 0xE2AE, 0x7378, 0xE2AF, 0x7407, 0xE2B0, 0x74B2, + 0xE2B1, 0x7626, 0xE2B2, 0x7761, 0xE2B3, 0x79C0, 0xE2B4, 0x7A57, + 0xE2B5, 0x7AEA, 0xE2B6, 0x7CB9, 0xE2B7, 0x7D8F, 0xE2B8, 0x7DAC, + 0xE2B9, 0x7E61, 0xE2BA, 0x7F9E, 0xE2BB, 0x8129, 0xE2BC, 0x8331, + 0xE2BD, 0x8490, 0xE2BE, 0x84DA, 0xE2BF, 0x85EA, 0xE2C0, 0x8896, + 0xE2C1, 0x8AB0, 0xE2C2, 0x8B90, 0xE2C3, 0x8F38, 0xE2C4, 0x9042, + 0xE2C5, 0x9083, 0xE2C6, 0x916C, 0xE2C7, 0x9296, 0xE2C8, 0x92B9, + 0xE2C9, 0x968B, 0xE2CA, 0x96A7, 0xE2CB, 0x96A8, 0xE2CC, 0x96D6, + 0xE2CD, 0x9700, 0xE2CE, 0x9808, 0xE2CF, 0x9996, 0xE2D0, 0x9AD3, + 0xE2D1, 0x9B1A, 0xE2D2, 0x53D4, 0xE2D3, 0x587E, 0xE2D4, 0x5919, + 0xE2D5, 0x5B70, 0xE2D6, 0x5BBF, 0xE2D7, 0x6DD1, 0xE2D8, 0x6F5A, + 0xE2D9, 0x719F, 0xE2DA, 0x7421, 0xE2DB, 0x74B9, 0xE2DC, 0x8085, + 0xE2DD, 0x83FD, 0xE2DE, 0x5DE1, 0xE2DF, 0x5F87, 0xE2E0, 0x5FAA, + 0xE2E1, 0x6042, 0xE2E2, 0x65EC, 0xE2E3, 0x6812, 0xE2E4, 0x696F, + 0xE2E5, 0x6A53, 0xE2E6, 0x6B89, 0xE2E7, 0x6D35, 0xE2E8, 0x6DF3, + 0xE2E9, 0x73E3, 0xE2EA, 0x76FE, 0xE2EB, 0x77AC, 0xE2EC, 0x7B4D, + 0xE2ED, 0x7D14, 0xE2EE, 0x8123, 0xE2EF, 0x821C, 0xE2F0, 0x8340, + 0xE2F1, 0x84F4, 0xE2F2, 0x8563, 0xE2F3, 0x8A62, 0xE2F4, 0x8AC4, + 0xE2F5, 0x9187, 0xE2F6, 0x931E, 0xE2F7, 0x9806, 0xE2F8, 0x99B4, + 0xE2F9, 0x620C, 0xE2FA, 0x8853, 0xE2FB, 0x8FF0, 0xE2FC, 0x9265, + 0xE2FD, 0x5D07, 0xE2FE, 0x5D27, 0xE3A1, 0x5D69, 0xE3A2, 0x745F, + 0xE3A3, 0x819D, 0xE3A4, 0x8768, 0xE3A5, 0x6FD5, 0xE3A6, 0x62FE, + 0xE3A7, 0x7FD2, 0xE3A8, 0x8936, 0xE3A9, 0x8972, 0xE3AA, 0x4E1E, + 0xE3AB, 0x4E58, 0xE3AC, 0x50E7, 0xE3AD, 0x52DD, 0xE3AE, 0x5347, + 0xE3AF, 0x627F, 0xE3B0, 0x6607, 0xE3B1, 0x7E69, 0xE3B2, 0x8805, + 0xE3B3, 0x965E, 0xE3B4, 0x4F8D, 0xE3B5, 0x5319, 0xE3B6, 0x5636, + 0xE3B7, 0x59CB, 0xE3B8, 0x5AA4, 0xE3B9, 0x5C38, 0xE3BA, 0x5C4E, + 0xE3BB, 0x5C4D, 0xE3BC, 0x5E02, 0xE3BD, 0x5F11, 0xE3BE, 0x6043, + 0xE3BF, 0x65BD, 0xE3C0, 0x662F, 0xE3C1, 0x6642, 0xE3C2, 0x67BE, + 0xE3C3, 0x67F4, 0xE3C4, 0x731C, 0xE3C5, 0x77E2, 0xE3C6, 0x793A, + 0xE3C7, 0x7FC5, 0xE3C8, 0x8494, 0xE3C9, 0x84CD, 0xE3CA, 0x8996, + 0xE3CB, 0x8A66, 0xE3CC, 0x8A69, 0xE3CD, 0x8AE1, 0xE3CE, 0x8C55, + 0xE3CF, 0x8C7A, 0xE3D0, 0x57F4, 0xE3D1, 0x5BD4, 0xE3D2, 0x5F0F, + 0xE3D3, 0x606F, 0xE3D4, 0x62ED, 0xE3D5, 0x690D, 0xE3D6, 0x6B96, + 0xE3D7, 0x6E5C, 0xE3D8, 0x7184, 0xE3D9, 0x7BD2, 0xE3DA, 0x8755, + 0xE3DB, 0x8B58, 0xE3DC, 0x8EFE, 0xE3DD, 0x98DF, 0xE3DE, 0x98FE, + 0xE3DF, 0x4F38, 0xE3E0, 0x4F81, 0xE3E1, 0x4FE1, 0xE3E2, 0x547B, + 0xE3E3, 0x5A20, 0xE3E4, 0x5BB8, 0xE3E5, 0x613C, 0xE3E6, 0x65B0, + 0xE3E7, 0x6668, 0xE3E8, 0x71FC, 0xE3E9, 0x7533, 0xE3EA, 0x795E, + 0xE3EB, 0x7D33, 0xE3EC, 0x814E, 0xE3ED, 0x81E3, 0xE3EE, 0x8398, + 0xE3EF, 0x85AA, 0xE3F0, 0x85CE, 0xE3F1, 0x8703, 0xE3F2, 0x8A0A, + 0xE3F3, 0x8EAB, 0xE3F4, 0x8F9B, 0xE3F5, 0xF971, 0xE3F6, 0x8FC5, + 0xE3F7, 0x5931, 0xE3F8, 0x5BA4, 0xE3F9, 0x5BE6, 0xE3FA, 0x6089, + 0xE3FB, 0x5BE9, 0xE3FC, 0x5C0B, 0xE3FD, 0x5FC3, 0xE3FE, 0x6C81, + 0xE4A1, 0xF972, 0xE4A2, 0x6DF1, 0xE4A3, 0x700B, 0xE4A4, 0x751A, + 0xE4A5, 0x82AF, 0xE4A6, 0x8AF6, 0xE4A7, 0x4EC0, 0xE4A8, 0x5341, + 0xE4A9, 0xF973, 0xE4AA, 0x96D9, 0xE4AB, 0x6C0F, 0xE4AC, 0x4E9E, + 0xE4AD, 0x4FC4, 0xE4AE, 0x5152, 0xE4AF, 0x555E, 0xE4B0, 0x5A25, + 0xE4B1, 0x5CE8, 0xE4B2, 0x6211, 0xE4B3, 0x7259, 0xE4B4, 0x82BD, + 0xE4B5, 0x83AA, 0xE4B6, 0x86FE, 0xE4B7, 0x8859, 0xE4B8, 0x8A1D, + 0xE4B9, 0x963F, 0xE4BA, 0x96C5, 0xE4BB, 0x9913, 0xE4BC, 0x9D09, + 0xE4BD, 0x9D5D, 0xE4BE, 0x580A, 0xE4BF, 0x5CB3, 0xE4C0, 0x5DBD, + 0xE4C1, 0x5E44, 0xE4C2, 0x60E1, 0xE4C3, 0x6115, 0xE4C4, 0x63E1, + 0xE4C5, 0x6A02, 0xE4C6, 0x6E25, 0xE4C7, 0x9102, 0xE4C8, 0x9354, + 0xE4C9, 0x984E, 0xE4CA, 0x9C10, 0xE4CB, 0x9F77, 0xE4CC, 0x5B89, + 0xE4CD, 0x5CB8, 0xE4CE, 0x6309, 0xE4CF, 0x664F, 0xE4D0, 0x6848, + 0xE4D1, 0x773C, 0xE4D2, 0x96C1, 0xE4D3, 0x978D, 0xE4D4, 0x9854, + 0xE4D5, 0x9B9F, 0xE4D6, 0x65A1, 0xE4D7, 0x8B01, 0xE4D8, 0x8ECB, + 0xE4D9, 0x95BC, 0xE4DA, 0x5535, 0xE4DB, 0x5CA9, 0xE4DC, 0x5DD6, + 0xE4DD, 0x5EB5, 0xE4DE, 0x6697, 0xE4DF, 0x764C, 0xE4E0, 0x83F4, + 0xE4E1, 0x95C7, 0xE4E2, 0x58D3, 0xE4E3, 0x62BC, 0xE4E4, 0x72CE, + 0xE4E5, 0x9D28, 0xE4E6, 0x4EF0, 0xE4E7, 0x592E, 0xE4E8, 0x600F, + 0xE4E9, 0x663B, 0xE4EA, 0x6B83, 0xE4EB, 0x79E7, 0xE4EC, 0x9D26, + 0xE4ED, 0x5393, 0xE4EE, 0x54C0, 0xE4EF, 0x57C3, 0xE4F0, 0x5D16, + 0xE4F1, 0x611B, 0xE4F2, 0x66D6, 0xE4F3, 0x6DAF, 0xE4F4, 0x788D, + 0xE4F5, 0x827E, 0xE4F6, 0x9698, 0xE4F7, 0x9744, 0xE4F8, 0x5384, + 0xE4F9, 0x627C, 0xE4FA, 0x6396, 0xE4FB, 0x6DB2, 0xE4FC, 0x7E0A, + 0xE4FD, 0x814B, 0xE4FE, 0x984D, 0xE5A1, 0x6AFB, 0xE5A2, 0x7F4C, + 0xE5A3, 0x9DAF, 0xE5A4, 0x9E1A, 0xE5A5, 0x4E5F, 0xE5A6, 0x503B, + 0xE5A7, 0x51B6, 0xE5A8, 0x591C, 0xE5A9, 0x60F9, 0xE5AA, 0x63F6, + 0xE5AB, 0x6930, 0xE5AC, 0x723A, 0xE5AD, 0x8036, 0xE5AE, 0xF974, + 0xE5AF, 0x91CE, 0xE5B0, 0x5F31, 0xE5B1, 0xF975, 0xE5B2, 0xF976, + 0xE5B3, 0x7D04, 0xE5B4, 0x82E5, 0xE5B5, 0x846F, 0xE5B6, 0x84BB, + 0xE5B7, 0x85E5, 0xE5B8, 0x8E8D, 0xE5B9, 0xF977, 0xE5BA, 0x4F6F, + 0xE5BB, 0xF978, 0xE5BC, 0xF979, 0xE5BD, 0x58E4, 0xE5BE, 0x5B43, + 0xE5BF, 0x6059, 0xE5C0, 0x63DA, 0xE5C1, 0x6518, 0xE5C2, 0x656D, + 0xE5C3, 0x6698, 0xE5C4, 0xF97A, 0xE5C5, 0x694A, 0xE5C6, 0x6A23, + 0xE5C7, 0x6D0B, 0xE5C8, 0x7001, 0xE5C9, 0x716C, 0xE5CA, 0x75D2, + 0xE5CB, 0x760D, 0xE5CC, 0x79B3, 0xE5CD, 0x7A70, 0xE5CE, 0xF97B, + 0xE5CF, 0x7F8A, 0xE5D0, 0xF97C, 0xE5D1, 0x8944, 0xE5D2, 0xF97D, + 0xE5D3, 0x8B93, 0xE5D4, 0x91C0, 0xE5D5, 0x967D, 0xE5D6, 0xF97E, + 0xE5D7, 0x990A, 0xE5D8, 0x5704, 0xE5D9, 0x5FA1, 0xE5DA, 0x65BC, + 0xE5DB, 0x6F01, 0xE5DC, 0x7600, 0xE5DD, 0x79A6, 0xE5DE, 0x8A9E, + 0xE5DF, 0x99AD, 0xE5E0, 0x9B5A, 0xE5E1, 0x9F6C, 0xE5E2, 0x5104, + 0xE5E3, 0x61B6, 0xE5E4, 0x6291, 0xE5E5, 0x6A8D, 0xE5E6, 0x81C6, + 0xE5E7, 0x5043, 0xE5E8, 0x5830, 0xE5E9, 0x5F66, 0xE5EA, 0x7109, + 0xE5EB, 0x8A00, 0xE5EC, 0x8AFA, 0xE5ED, 0x5B7C, 0xE5EE, 0x8616, + 0xE5EF, 0x4FFA, 0xE5F0, 0x513C, 0xE5F1, 0x56B4, 0xE5F2, 0x5944, + 0xE5F3, 0x63A9, 0xE5F4, 0x6DF9, 0xE5F5, 0x5DAA, 0xE5F6, 0x696D, + 0xE5F7, 0x5186, 0xE5F8, 0x4E88, 0xE5F9, 0x4F59, 0xE5FA, 0xF97F, + 0xE5FB, 0xF980, 0xE5FC, 0xF981, 0xE5FD, 0x5982, 0xE5FE, 0xF982, + 0xE6A1, 0xF983, 0xE6A2, 0x6B5F, 0xE6A3, 0x6C5D, 0xE6A4, 0xF984, + 0xE6A5, 0x74B5, 0xE6A6, 0x7916, 0xE6A7, 0xF985, 0xE6A8, 0x8207, + 0xE6A9, 0x8245, 0xE6AA, 0x8339, 0xE6AB, 0x8F3F, 0xE6AC, 0x8F5D, + 0xE6AD, 0xF986, 0xE6AE, 0x9918, 0xE6AF, 0xF987, 0xE6B0, 0xF988, + 0xE6B1, 0xF989, 0xE6B2, 0x4EA6, 0xE6B3, 0xF98A, 0xE6B4, 0x57DF, + 0xE6B5, 0x5F79, 0xE6B6, 0x6613, 0xE6B7, 0xF98B, 0xE6B8, 0xF98C, + 0xE6B9, 0x75AB, 0xE6BA, 0x7E79, 0xE6BB, 0x8B6F, 0xE6BC, 0xF98D, + 0xE6BD, 0x9006, 0xE6BE, 0x9A5B, 0xE6BF, 0x56A5, 0xE6C0, 0x5827, + 0xE6C1, 0x59F8, 0xE6C2, 0x5A1F, 0xE6C3, 0x5BB4, 0xE6C4, 0xF98E, + 0xE6C5, 0x5EF6, 0xE6C6, 0xF98F, 0xE6C7, 0xF990, 0xE6C8, 0x6350, + 0xE6C9, 0x633B, 0xE6CA, 0xF991, 0xE6CB, 0x693D, 0xE6CC, 0x6C87, + 0xE6CD, 0x6CBF, 0xE6CE, 0x6D8E, 0xE6CF, 0x6D93, 0xE6D0, 0x6DF5, + 0xE6D1, 0x6F14, 0xE6D2, 0xF992, 0xE6D3, 0x70DF, 0xE6D4, 0x7136, + 0xE6D5, 0x7159, 0xE6D6, 0xF993, 0xE6D7, 0x71C3, 0xE6D8, 0x71D5, + 0xE6D9, 0xF994, 0xE6DA, 0x784F, 0xE6DB, 0x786F, 0xE6DC, 0xF995, + 0xE6DD, 0x7B75, 0xE6DE, 0x7DE3, 0xE6DF, 0xF996, 0xE6E0, 0x7E2F, + 0xE6E1, 0xF997, 0xE6E2, 0x884D, 0xE6E3, 0x8EDF, 0xE6E4, 0xF998, + 0xE6E5, 0xF999, 0xE6E6, 0xF99A, 0xE6E7, 0x925B, 0xE6E8, 0xF99B, + 0xE6E9, 0x9CF6, 0xE6EA, 0xF99C, 0xE6EB, 0xF99D, 0xE6EC, 0xF99E, + 0xE6ED, 0x6085, 0xE6EE, 0x6D85, 0xE6EF, 0xF99F, 0xE6F0, 0x71B1, + 0xE6F1, 0xF9A0, 0xE6F2, 0xF9A1, 0xE6F3, 0x95B1, 0xE6F4, 0x53AD, + 0xE6F5, 0xF9A2, 0xE6F6, 0xF9A3, 0xE6F7, 0xF9A4, 0xE6F8, 0x67D3, + 0xE6F9, 0xF9A5, 0xE6FA, 0x708E, 0xE6FB, 0x7130, 0xE6FC, 0x7430, + 0xE6FD, 0x8276, 0xE6FE, 0x82D2, 0xE7A1, 0xF9A6, 0xE7A2, 0x95BB, + 0xE7A3, 0x9AE5, 0xE7A4, 0x9E7D, 0xE7A5, 0x66C4, 0xE7A6, 0xF9A7, + 0xE7A7, 0x71C1, 0xE7A8, 0x8449, 0xE7A9, 0xF9A8, 0xE7AA, 0xF9A9, + 0xE7AB, 0x584B, 0xE7AC, 0xF9AA, 0xE7AD, 0xF9AB, 0xE7AE, 0x5DB8, + 0xE7AF, 0x5F71, 0xE7B0, 0xF9AC, 0xE7B1, 0x6620, 0xE7B2, 0x668E, + 0xE7B3, 0x6979, 0xE7B4, 0x69AE, 0xE7B5, 0x6C38, 0xE7B6, 0x6CF3, + 0xE7B7, 0x6E36, 0xE7B8, 0x6F41, 0xE7B9, 0x6FDA, 0xE7BA, 0x701B, + 0xE7BB, 0x702F, 0xE7BC, 0x7150, 0xE7BD, 0x71DF, 0xE7BE, 0x7370, + 0xE7BF, 0xF9AD, 0xE7C0, 0x745B, 0xE7C1, 0xF9AE, 0xE7C2, 0x74D4, + 0xE7C3, 0x76C8, 0xE7C4, 0x7A4E, 0xE7C5, 0x7E93, 0xE7C6, 0xF9AF, + 0xE7C7, 0xF9B0, 0xE7C8, 0x82F1, 0xE7C9, 0x8A60, 0xE7CA, 0x8FCE, + 0xE7CB, 0xF9B1, 0xE7CC, 0x9348, 0xE7CD, 0xF9B2, 0xE7CE, 0x9719, + 0xE7CF, 0xF9B3, 0xE7D0, 0xF9B4, 0xE7D1, 0x4E42, 0xE7D2, 0x502A, + 0xE7D3, 0xF9B5, 0xE7D4, 0x5208, 0xE7D5, 0x53E1, 0xE7D6, 0x66F3, + 0xE7D7, 0x6C6D, 0xE7D8, 0x6FCA, 0xE7D9, 0x730A, 0xE7DA, 0x777F, + 0xE7DB, 0x7A62, 0xE7DC, 0x82AE, 0xE7DD, 0x85DD, 0xE7DE, 0x8602, + 0xE7DF, 0xF9B6, 0xE7E0, 0x88D4, 0xE7E1, 0x8A63, 0xE7E2, 0x8B7D, + 0xE7E3, 0x8C6B, 0xE7E4, 0xF9B7, 0xE7E5, 0x92B3, 0xE7E6, 0xF9B8, + 0xE7E7, 0x9713, 0xE7E8, 0x9810, 0xE7E9, 0x4E94, 0xE7EA, 0x4F0D, + 0xE7EB, 0x4FC9, 0xE7EC, 0x50B2, 0xE7ED, 0x5348, 0xE7EE, 0x543E, + 0xE7EF, 0x5433, 0xE7F0, 0x55DA, 0xE7F1, 0x5862, 0xE7F2, 0x58BA, + 0xE7F3, 0x5967, 0xE7F4, 0x5A1B, 0xE7F5, 0x5BE4, 0xE7F6, 0x609F, + 0xE7F7, 0xF9B9, 0xE7F8, 0x61CA, 0xE7F9, 0x6556, 0xE7FA, 0x65FF, + 0xE7FB, 0x6664, 0xE7FC, 0x68A7, 0xE7FD, 0x6C5A, 0xE7FE, 0x6FB3, + 0xE8A1, 0x70CF, 0xE8A2, 0x71AC, 0xE8A3, 0x7352, 0xE8A4, 0x7B7D, + 0xE8A5, 0x8708, 0xE8A6, 0x8AA4, 0xE8A7, 0x9C32, 0xE8A8, 0x9F07, + 0xE8A9, 0x5C4B, 0xE8AA, 0x6C83, 0xE8AB, 0x7344, 0xE8AC, 0x7389, + 0xE8AD, 0x923A, 0xE8AE, 0x6EAB, 0xE8AF, 0x7465, 0xE8B0, 0x761F, + 0xE8B1, 0x7A69, 0xE8B2, 0x7E15, 0xE8B3, 0x860A, 0xE8B4, 0x5140, + 0xE8B5, 0x58C5, 0xE8B6, 0x64C1, 0xE8B7, 0x74EE, 0xE8B8, 0x7515, + 0xE8B9, 0x7670, 0xE8BA, 0x7FC1, 0xE8BB, 0x9095, 0xE8BC, 0x96CD, + 0xE8BD, 0x9954, 0xE8BE, 0x6E26, 0xE8BF, 0x74E6, 0xE8C0, 0x7AA9, + 0xE8C1, 0x7AAA, 0xE8C2, 0x81E5, 0xE8C3, 0x86D9, 0xE8C4, 0x8778, + 0xE8C5, 0x8A1B, 0xE8C6, 0x5A49, 0xE8C7, 0x5B8C, 0xE8C8, 0x5B9B, + 0xE8C9, 0x68A1, 0xE8CA, 0x6900, 0xE8CB, 0x6D63, 0xE8CC, 0x73A9, + 0xE8CD, 0x7413, 0xE8CE, 0x742C, 0xE8CF, 0x7897, 0xE8D0, 0x7DE9, + 0xE8D1, 0x7FEB, 0xE8D2, 0x8118, 0xE8D3, 0x8155, 0xE8D4, 0x839E, + 0xE8D5, 0x8C4C, 0xE8D6, 0x962E, 0xE8D7, 0x9811, 0xE8D8, 0x66F0, + 0xE8D9, 0x5F80, 0xE8DA, 0x65FA, 0xE8DB, 0x6789, 0xE8DC, 0x6C6A, + 0xE8DD, 0x738B, 0xE8DE, 0x502D, 0xE8DF, 0x5A03, 0xE8E0, 0x6B6A, + 0xE8E1, 0x77EE, 0xE8E2, 0x5916, 0xE8E3, 0x5D6C, 0xE8E4, 0x5DCD, + 0xE8E5, 0x7325, 0xE8E6, 0x754F, 0xE8E7, 0xF9BA, 0xE8E8, 0xF9BB, + 0xE8E9, 0x50E5, 0xE8EA, 0x51F9, 0xE8EB, 0x582F, 0xE8EC, 0x592D, + 0xE8ED, 0x5996, 0xE8EE, 0x59DA, 0xE8EF, 0x5BE5, 0xE8F0, 0xF9BC, + 0xE8F1, 0xF9BD, 0xE8F2, 0x5DA2, 0xE8F3, 0x62D7, 0xE8F4, 0x6416, + 0xE8F5, 0x6493, 0xE8F6, 0x64FE, 0xE8F7, 0xF9BE, 0xE8F8, 0x66DC, + 0xE8F9, 0xF9BF, 0xE8FA, 0x6A48, 0xE8FB, 0xF9C0, 0xE8FC, 0x71FF, + 0xE8FD, 0x7464, 0xE8FE, 0xF9C1, 0xE9A1, 0x7A88, 0xE9A2, 0x7AAF, + 0xE9A3, 0x7E47, 0xE9A4, 0x7E5E, 0xE9A5, 0x8000, 0xE9A6, 0x8170, + 0xE9A7, 0xF9C2, 0xE9A8, 0x87EF, 0xE9A9, 0x8981, 0xE9AA, 0x8B20, + 0xE9AB, 0x9059, 0xE9AC, 0xF9C3, 0xE9AD, 0x9080, 0xE9AE, 0x9952, + 0xE9AF, 0x617E, 0xE9B0, 0x6B32, 0xE9B1, 0x6D74, 0xE9B2, 0x7E1F, + 0xE9B3, 0x8925, 0xE9B4, 0x8FB1, 0xE9B5, 0x4FD1, 0xE9B6, 0x50AD, + 0xE9B7, 0x5197, 0xE9B8, 0x52C7, 0xE9B9, 0x57C7, 0xE9BA, 0x5889, + 0xE9BB, 0x5BB9, 0xE9BC, 0x5EB8, 0xE9BD, 0x6142, 0xE9BE, 0x6995, + 0xE9BF, 0x6D8C, 0xE9C0, 0x6E67, 0xE9C1, 0x6EB6, 0xE9C2, 0x7194, + 0xE9C3, 0x7462, 0xE9C4, 0x7528, 0xE9C5, 0x752C, 0xE9C6, 0x8073, + 0xE9C7, 0x8338, 0xE9C8, 0x84C9, 0xE9C9, 0x8E0A, 0xE9CA, 0x9394, + 0xE9CB, 0x93DE, 0xE9CC, 0xF9C4, 0xE9CD, 0x4E8E, 0xE9CE, 0x4F51, + 0xE9CF, 0x5076, 0xE9D0, 0x512A, 0xE9D1, 0x53C8, 0xE9D2, 0x53CB, + 0xE9D3, 0x53F3, 0xE9D4, 0x5B87, 0xE9D5, 0x5BD3, 0xE9D6, 0x5C24, + 0xE9D7, 0x611A, 0xE9D8, 0x6182, 0xE9D9, 0x65F4, 0xE9DA, 0x725B, + 0xE9DB, 0x7397, 0xE9DC, 0x7440, 0xE9DD, 0x76C2, 0xE9DE, 0x7950, + 0xE9DF, 0x7991, 0xE9E0, 0x79B9, 0xE9E1, 0x7D06, 0xE9E2, 0x7FBD, + 0xE9E3, 0x828B, 0xE9E4, 0x85D5, 0xE9E5, 0x865E, 0xE9E6, 0x8FC2, + 0xE9E7, 0x9047, 0xE9E8, 0x90F5, 0xE9E9, 0x91EA, 0xE9EA, 0x9685, + 0xE9EB, 0x96E8, 0xE9EC, 0x96E9, 0xE9ED, 0x52D6, 0xE9EE, 0x5F67, + 0xE9EF, 0x65ED, 0xE9F0, 0x6631, 0xE9F1, 0x682F, 0xE9F2, 0x715C, + 0xE9F3, 0x7A36, 0xE9F4, 0x90C1, 0xE9F5, 0x980A, 0xE9F6, 0x4E91, + 0xE9F7, 0xF9C5, 0xE9F8, 0x6A52, 0xE9F9, 0x6B9E, 0xE9FA, 0x6F90, + 0xE9FB, 0x7189, 0xE9FC, 0x8018, 0xE9FD, 0x82B8, 0xE9FE, 0x8553, + 0xEAA1, 0x904B, 0xEAA2, 0x9695, 0xEAA3, 0x96F2, 0xEAA4, 0x97FB, + 0xEAA5, 0x851A, 0xEAA6, 0x9B31, 0xEAA7, 0x4E90, 0xEAA8, 0x718A, + 0xEAA9, 0x96C4, 0xEAAA, 0x5143, 0xEAAB, 0x539F, 0xEAAC, 0x54E1, + 0xEAAD, 0x5713, 0xEAAE, 0x5712, 0xEAAF, 0x57A3, 0xEAB0, 0x5A9B, + 0xEAB1, 0x5AC4, 0xEAB2, 0x5BC3, 0xEAB3, 0x6028, 0xEAB4, 0x613F, + 0xEAB5, 0x63F4, 0xEAB6, 0x6C85, 0xEAB7, 0x6D39, 0xEAB8, 0x6E72, + 0xEAB9, 0x6E90, 0xEABA, 0x7230, 0xEABB, 0x733F, 0xEABC, 0x7457, + 0xEABD, 0x82D1, 0xEABE, 0x8881, 0xEABF, 0x8F45, 0xEAC0, 0x9060, + 0xEAC1, 0xF9C6, 0xEAC2, 0x9662, 0xEAC3, 0x9858, 0xEAC4, 0x9D1B, + 0xEAC5, 0x6708, 0xEAC6, 0x8D8A, 0xEAC7, 0x925E, 0xEAC8, 0x4F4D, + 0xEAC9, 0x5049, 0xEACA, 0x50DE, 0xEACB, 0x5371, 0xEACC, 0x570D, + 0xEACD, 0x59D4, 0xEACE, 0x5A01, 0xEACF, 0x5C09, 0xEAD0, 0x6170, + 0xEAD1, 0x6690, 0xEAD2, 0x6E2D, 0xEAD3, 0x7232, 0xEAD4, 0x744B, + 0xEAD5, 0x7DEF, 0xEAD6, 0x80C3, 0xEAD7, 0x840E, 0xEAD8, 0x8466, + 0xEAD9, 0x853F, 0xEADA, 0x875F, 0xEADB, 0x885B, 0xEADC, 0x8918, + 0xEADD, 0x8B02, 0xEADE, 0x9055, 0xEADF, 0x97CB, 0xEAE0, 0x9B4F, + 0xEAE1, 0x4E73, 0xEAE2, 0x4F91, 0xEAE3, 0x5112, 0xEAE4, 0x516A, + 0xEAE5, 0xF9C7, 0xEAE6, 0x552F, 0xEAE7, 0x55A9, 0xEAE8, 0x5B7A, + 0xEAE9, 0x5BA5, 0xEAEA, 0x5E7C, 0xEAEB, 0x5E7D, 0xEAEC, 0x5EBE, + 0xEAED, 0x60A0, 0xEAEE, 0x60DF, 0xEAEF, 0x6108, 0xEAF0, 0x6109, + 0xEAF1, 0x63C4, 0xEAF2, 0x6538, 0xEAF3, 0x6709, 0xEAF4, 0xF9C8, + 0xEAF5, 0x67D4, 0xEAF6, 0x67DA, 0xEAF7, 0xF9C9, 0xEAF8, 0x6961, + 0xEAF9, 0x6962, 0xEAFA, 0x6CB9, 0xEAFB, 0x6D27, 0xEAFC, 0xF9CA, + 0xEAFD, 0x6E38, 0xEAFE, 0xF9CB, 0xEBA1, 0x6FE1, 0xEBA2, 0x7336, + 0xEBA3, 0x7337, 0xEBA4, 0xF9CC, 0xEBA5, 0x745C, 0xEBA6, 0x7531, + 0xEBA7, 0xF9CD, 0xEBA8, 0x7652, 0xEBA9, 0xF9CE, 0xEBAA, 0xF9CF, + 0xEBAB, 0x7DAD, 0xEBAC, 0x81FE, 0xEBAD, 0x8438, 0xEBAE, 0x88D5, + 0xEBAF, 0x8A98, 0xEBB0, 0x8ADB, 0xEBB1, 0x8AED, 0xEBB2, 0x8E30, + 0xEBB3, 0x8E42, 0xEBB4, 0x904A, 0xEBB5, 0x903E, 0xEBB6, 0x907A, + 0xEBB7, 0x9149, 0xEBB8, 0x91C9, 0xEBB9, 0x936E, 0xEBBA, 0xF9D0, + 0xEBBB, 0xF9D1, 0xEBBC, 0x5809, 0xEBBD, 0xF9D2, 0xEBBE, 0x6BD3, + 0xEBBF, 0x8089, 0xEBC0, 0x80B2, 0xEBC1, 0xF9D3, 0xEBC2, 0xF9D4, + 0xEBC3, 0x5141, 0xEBC4, 0x596B, 0xEBC5, 0x5C39, 0xEBC6, 0xF9D5, + 0xEBC7, 0xF9D6, 0xEBC8, 0x6F64, 0xEBC9, 0x73A7, 0xEBCA, 0x80E4, + 0xEBCB, 0x8D07, 0xEBCC, 0xF9D7, 0xEBCD, 0x9217, 0xEBCE, 0x958F, + 0xEBCF, 0xF9D8, 0xEBD0, 0xF9D9, 0xEBD1, 0xF9DA, 0xEBD2, 0xF9DB, + 0xEBD3, 0x807F, 0xEBD4, 0x620E, 0xEBD5, 0x701C, 0xEBD6, 0x7D68, + 0xEBD7, 0x878D, 0xEBD8, 0xF9DC, 0xEBD9, 0x57A0, 0xEBDA, 0x6069, + 0xEBDB, 0x6147, 0xEBDC, 0x6BB7, 0xEBDD, 0x8ABE, 0xEBDE, 0x9280, + 0xEBDF, 0x96B1, 0xEBE0, 0x4E59, 0xEBE1, 0x541F, 0xEBE2, 0x6DEB, + 0xEBE3, 0x852D, 0xEBE4, 0x9670, 0xEBE5, 0x97F3, 0xEBE6, 0x98EE, + 0xEBE7, 0x63D6, 0xEBE8, 0x6CE3, 0xEBE9, 0x9091, 0xEBEA, 0x51DD, + 0xEBEB, 0x61C9, 0xEBEC, 0x81BA, 0xEBED, 0x9DF9, 0xEBEE, 0x4F9D, + 0xEBEF, 0x501A, 0xEBF0, 0x5100, 0xEBF1, 0x5B9C, 0xEBF2, 0x610F, + 0xEBF3, 0x61FF, 0xEBF4, 0x64EC, 0xEBF5, 0x6905, 0xEBF6, 0x6BC5, + 0xEBF7, 0x7591, 0xEBF8, 0x77E3, 0xEBF9, 0x7FA9, 0xEBFA, 0x8264, + 0xEBFB, 0x858F, 0xEBFC, 0x87FB, 0xEBFD, 0x8863, 0xEBFE, 0x8ABC, + 0xECA1, 0x8B70, 0xECA2, 0x91AB, 0xECA3, 0x4E8C, 0xECA4, 0x4EE5, + 0xECA5, 0x4F0A, 0xECA6, 0xF9DD, 0xECA7, 0xF9DE, 0xECA8, 0x5937, + 0xECA9, 0x59E8, 0xECAA, 0xF9DF, 0xECAB, 0x5DF2, 0xECAC, 0x5F1B, + 0xECAD, 0x5F5B, 0xECAE, 0x6021, 0xECAF, 0xF9E0, 0xECB0, 0xF9E1, + 0xECB1, 0xF9E2, 0xECB2, 0xF9E3, 0xECB3, 0x723E, 0xECB4, 0x73E5, + 0xECB5, 0xF9E4, 0xECB6, 0x7570, 0xECB7, 0x75CD, 0xECB8, 0xF9E5, + 0xECB9, 0x79FB, 0xECBA, 0xF9E6, 0xECBB, 0x800C, 0xECBC, 0x8033, + 0xECBD, 0x8084, 0xECBE, 0x82E1, 0xECBF, 0x8351, 0xECC0, 0xF9E7, + 0xECC1, 0xF9E8, 0xECC2, 0x8CBD, 0xECC3, 0x8CB3, 0xECC4, 0x9087, + 0xECC5, 0xF9E9, 0xECC6, 0xF9EA, 0xECC7, 0x98F4, 0xECC8, 0x990C, + 0xECC9, 0xF9EB, 0xECCA, 0xF9EC, 0xECCB, 0x7037, 0xECCC, 0x76CA, + 0xECCD, 0x7FCA, 0xECCE, 0x7FCC, 0xECCF, 0x7FFC, 0xECD0, 0x8B1A, + 0xECD1, 0x4EBA, 0xECD2, 0x4EC1, 0xECD3, 0x5203, 0xECD4, 0x5370, + 0xECD5, 0xF9ED, 0xECD6, 0x54BD, 0xECD7, 0x56E0, 0xECD8, 0x59FB, + 0xECD9, 0x5BC5, 0xECDA, 0x5F15, 0xECDB, 0x5FCD, 0xECDC, 0x6E6E, + 0xECDD, 0xF9EE, 0xECDE, 0xF9EF, 0xECDF, 0x7D6A, 0xECE0, 0x8335, + 0xECE1, 0xF9F0, 0xECE2, 0x8693, 0xECE3, 0x8A8D, 0xECE4, 0xF9F1, + 0xECE5, 0x976D, 0xECE6, 0x9777, 0xECE7, 0xF9F2, 0xECE8, 0xF9F3, + 0xECE9, 0x4E00, 0xECEA, 0x4F5A, 0xECEB, 0x4F7E, 0xECEC, 0x58F9, + 0xECED, 0x65E5, 0xECEE, 0x6EA2, 0xECEF, 0x9038, 0xECF0, 0x93B0, + 0xECF1, 0x99B9, 0xECF2, 0x4EFB, 0xECF3, 0x58EC, 0xECF4, 0x598A, + 0xECF5, 0x59D9, 0xECF6, 0x6041, 0xECF7, 0xF9F4, 0xECF8, 0xF9F5, + 0xECF9, 0x7A14, 0xECFA, 0xF9F6, 0xECFB, 0x834F, 0xECFC, 0x8CC3, + 0xECFD, 0x5165, 0xECFE, 0x5344, 0xEDA1, 0xF9F7, 0xEDA2, 0xF9F8, + 0xEDA3, 0xF9F9, 0xEDA4, 0x4ECD, 0xEDA5, 0x5269, 0xEDA6, 0x5B55, + 0xEDA7, 0x82BF, 0xEDA8, 0x4ED4, 0xEDA9, 0x523A, 0xEDAA, 0x54A8, + 0xEDAB, 0x59C9, 0xEDAC, 0x59FF, 0xEDAD, 0x5B50, 0xEDAE, 0x5B57, + 0xEDAF, 0x5B5C, 0xEDB0, 0x6063, 0xEDB1, 0x6148, 0xEDB2, 0x6ECB, + 0xEDB3, 0x7099, 0xEDB4, 0x716E, 0xEDB5, 0x7386, 0xEDB6, 0x74F7, + 0xEDB7, 0x75B5, 0xEDB8, 0x78C1, 0xEDB9, 0x7D2B, 0xEDBA, 0x8005, + 0xEDBB, 0x81EA, 0xEDBC, 0x8328, 0xEDBD, 0x8517, 0xEDBE, 0x85C9, + 0xEDBF, 0x8AEE, 0xEDC0, 0x8CC7, 0xEDC1, 0x96CC, 0xEDC2, 0x4F5C, + 0xEDC3, 0x52FA, 0xEDC4, 0x56BC, 0xEDC5, 0x65AB, 0xEDC6, 0x6628, + 0xEDC7, 0x707C, 0xEDC8, 0x70B8, 0xEDC9, 0x7235, 0xEDCA, 0x7DBD, + 0xEDCB, 0x828D, 0xEDCC, 0x914C, 0xEDCD, 0x96C0, 0xEDCE, 0x9D72, + 0xEDCF, 0x5B71, 0xEDD0, 0x68E7, 0xEDD1, 0x6B98, 0xEDD2, 0x6F7A, + 0xEDD3, 0x76DE, 0xEDD4, 0x5C91, 0xEDD5, 0x66AB, 0xEDD6, 0x6F5B, + 0xEDD7, 0x7BB4, 0xEDD8, 0x7C2A, 0xEDD9, 0x8836, 0xEDDA, 0x96DC, + 0xEDDB, 0x4E08, 0xEDDC, 0x4ED7, 0xEDDD, 0x5320, 0xEDDE, 0x5834, + 0xEDDF, 0x58BB, 0xEDE0, 0x58EF, 0xEDE1, 0x596C, 0xEDE2, 0x5C07, + 0xEDE3, 0x5E33, 0xEDE4, 0x5E84, 0xEDE5, 0x5F35, 0xEDE6, 0x638C, + 0xEDE7, 0x66B2, 0xEDE8, 0x6756, 0xEDE9, 0x6A1F, 0xEDEA, 0x6AA3, + 0xEDEB, 0x6B0C, 0xEDEC, 0x6F3F, 0xEDED, 0x7246, 0xEDEE, 0xF9FA, + 0xEDEF, 0x7350, 0xEDF0, 0x748B, 0xEDF1, 0x7AE0, 0xEDF2, 0x7CA7, + 0xEDF3, 0x8178, 0xEDF4, 0x81DF, 0xEDF5, 0x81E7, 0xEDF6, 0x838A, + 0xEDF7, 0x846C, 0xEDF8, 0x8523, 0xEDF9, 0x8594, 0xEDFA, 0x85CF, + 0xEDFB, 0x88DD, 0xEDFC, 0x8D13, 0xEDFD, 0x91AC, 0xEDFE, 0x9577, + 0xEEA1, 0x969C, 0xEEA2, 0x518D, 0xEEA3, 0x54C9, 0xEEA4, 0x5728, + 0xEEA5, 0x5BB0, 0xEEA6, 0x624D, 0xEEA7, 0x6750, 0xEEA8, 0x683D, + 0xEEA9, 0x6893, 0xEEAA, 0x6E3D, 0xEEAB, 0x6ED3, 0xEEAC, 0x707D, + 0xEEAD, 0x7E21, 0xEEAE, 0x88C1, 0xEEAF, 0x8CA1, 0xEEB0, 0x8F09, + 0xEEB1, 0x9F4B, 0xEEB2, 0x9F4E, 0xEEB3, 0x722D, 0xEEB4, 0x7B8F, + 0xEEB5, 0x8ACD, 0xEEB6, 0x931A, 0xEEB7, 0x4F47, 0xEEB8, 0x4F4E, + 0xEEB9, 0x5132, 0xEEBA, 0x5480, 0xEEBB, 0x59D0, 0xEEBC, 0x5E95, + 0xEEBD, 0x62B5, 0xEEBE, 0x6775, 0xEEBF, 0x696E, 0xEEC0, 0x6A17, + 0xEEC1, 0x6CAE, 0xEEC2, 0x6E1A, 0xEEC3, 0x72D9, 0xEEC4, 0x732A, + 0xEEC5, 0x75BD, 0xEEC6, 0x7BB8, 0xEEC7, 0x7D35, 0xEEC8, 0x82E7, + 0xEEC9, 0x83F9, 0xEECA, 0x8457, 0xEECB, 0x85F7, 0xEECC, 0x8A5B, + 0xEECD, 0x8CAF, 0xEECE, 0x8E87, 0xEECF, 0x9019, 0xEED0, 0x90B8, + 0xEED1, 0x96CE, 0xEED2, 0x9F5F, 0xEED3, 0x52E3, 0xEED4, 0x540A, + 0xEED5, 0x5AE1, 0xEED6, 0x5BC2, 0xEED7, 0x6458, 0xEED8, 0x6575, + 0xEED9, 0x6EF4, 0xEEDA, 0x72C4, 0xEEDB, 0xF9FB, 0xEEDC, 0x7684, + 0xEEDD, 0x7A4D, 0xEEDE, 0x7B1B, 0xEEDF, 0x7C4D, 0xEEE0, 0x7E3E, + 0xEEE1, 0x7FDF, 0xEEE2, 0x837B, 0xEEE3, 0x8B2B, 0xEEE4, 0x8CCA, + 0xEEE5, 0x8D64, 0xEEE6, 0x8DE1, 0xEEE7, 0x8E5F, 0xEEE8, 0x8FEA, + 0xEEE9, 0x8FF9, 0xEEEA, 0x9069, 0xEEEB, 0x93D1, 0xEEEC, 0x4F43, + 0xEEED, 0x4F7A, 0xEEEE, 0x50B3, 0xEEEF, 0x5168, 0xEEF0, 0x5178, + 0xEEF1, 0x524D, 0xEEF2, 0x526A, 0xEEF3, 0x5861, 0xEEF4, 0x587C, + 0xEEF5, 0x5960, 0xEEF6, 0x5C08, 0xEEF7, 0x5C55, 0xEEF8, 0x5EDB, + 0xEEF9, 0x609B, 0xEEFA, 0x6230, 0xEEFB, 0x6813, 0xEEFC, 0x6BBF, + 0xEEFD, 0x6C08, 0xEEFE, 0x6FB1, 0xEFA1, 0x714E, 0xEFA2, 0x7420, + 0xEFA3, 0x7530, 0xEFA4, 0x7538, 0xEFA5, 0x7551, 0xEFA6, 0x7672, + 0xEFA7, 0x7B4C, 0xEFA8, 0x7B8B, 0xEFA9, 0x7BAD, 0xEFAA, 0x7BC6, + 0xEFAB, 0x7E8F, 0xEFAC, 0x8A6E, 0xEFAD, 0x8F3E, 0xEFAE, 0x8F49, + 0xEFAF, 0x923F, 0xEFB0, 0x9293, 0xEFB1, 0x9322, 0xEFB2, 0x942B, + 0xEFB3, 0x96FB, 0xEFB4, 0x985A, 0xEFB5, 0x986B, 0xEFB6, 0x991E, + 0xEFB7, 0x5207, 0xEFB8, 0x622A, 0xEFB9, 0x6298, 0xEFBA, 0x6D59, + 0xEFBB, 0x7664, 0xEFBC, 0x7ACA, 0xEFBD, 0x7BC0, 0xEFBE, 0x7D76, + 0xEFBF, 0x5360, 0xEFC0, 0x5CBE, 0xEFC1, 0x5E97, 0xEFC2, 0x6F38, + 0xEFC3, 0x70B9, 0xEFC4, 0x7C98, 0xEFC5, 0x9711, 0xEFC6, 0x9B8E, + 0xEFC7, 0x9EDE, 0xEFC8, 0x63A5, 0xEFC9, 0x647A, 0xEFCA, 0x8776, + 0xEFCB, 0x4E01, 0xEFCC, 0x4E95, 0xEFCD, 0x4EAD, 0xEFCE, 0x505C, + 0xEFCF, 0x5075, 0xEFD0, 0x5448, 0xEFD1, 0x59C3, 0xEFD2, 0x5B9A, + 0xEFD3, 0x5E40, 0xEFD4, 0x5EAD, 0xEFD5, 0x5EF7, 0xEFD6, 0x5F81, + 0xEFD7, 0x60C5, 0xEFD8, 0x633A, 0xEFD9, 0x653F, 0xEFDA, 0x6574, + 0xEFDB, 0x65CC, 0xEFDC, 0x6676, 0xEFDD, 0x6678, 0xEFDE, 0x67FE, + 0xEFDF, 0x6968, 0xEFE0, 0x6A89, 0xEFE1, 0x6B63, 0xEFE2, 0x6C40, + 0xEFE3, 0x6DC0, 0xEFE4, 0x6DE8, 0xEFE5, 0x6E1F, 0xEFE6, 0x6E5E, + 0xEFE7, 0x701E, 0xEFE8, 0x70A1, 0xEFE9, 0x738E, 0xEFEA, 0x73FD, + 0xEFEB, 0x753A, 0xEFEC, 0x775B, 0xEFED, 0x7887, 0xEFEE, 0x798E, + 0xEFEF, 0x7A0B, 0xEFF0, 0x7A7D, 0xEFF1, 0x7CBE, 0xEFF2, 0x7D8E, + 0xEFF3, 0x8247, 0xEFF4, 0x8A02, 0xEFF5, 0x8AEA, 0xEFF6, 0x8C9E, + 0xEFF7, 0x912D, 0xEFF8, 0x914A, 0xEFF9, 0x91D8, 0xEFFA, 0x9266, + 0xEFFB, 0x92CC, 0xEFFC, 0x9320, 0xEFFD, 0x9706, 0xEFFE, 0x9756, + 0xF0A1, 0x975C, 0xF0A2, 0x9802, 0xF0A3, 0x9F0E, 0xF0A4, 0x5236, + 0xF0A5, 0x5291, 0xF0A6, 0x557C, 0xF0A7, 0x5824, 0xF0A8, 0x5E1D, + 0xF0A9, 0x5F1F, 0xF0AA, 0x608C, 0xF0AB, 0x63D0, 0xF0AC, 0x68AF, + 0xF0AD, 0x6FDF, 0xF0AE, 0x796D, 0xF0AF, 0x7B2C, 0xF0B0, 0x81CD, + 0xF0B1, 0x85BA, 0xF0B2, 0x88FD, 0xF0B3, 0x8AF8, 0xF0B4, 0x8E44, + 0xF0B5, 0x918D, 0xF0B6, 0x9664, 0xF0B7, 0x969B, 0xF0B8, 0x973D, + 0xF0B9, 0x984C, 0xF0BA, 0x9F4A, 0xF0BB, 0x4FCE, 0xF0BC, 0x5146, + 0xF0BD, 0x51CB, 0xF0BE, 0x52A9, 0xF0BF, 0x5632, 0xF0C0, 0x5F14, + 0xF0C1, 0x5F6B, 0xF0C2, 0x63AA, 0xF0C3, 0x64CD, 0xF0C4, 0x65E9, + 0xF0C5, 0x6641, 0xF0C6, 0x66FA, 0xF0C7, 0x66F9, 0xF0C8, 0x671D, + 0xF0C9, 0x689D, 0xF0CA, 0x68D7, 0xF0CB, 0x69FD, 0xF0CC, 0x6F15, + 0xF0CD, 0x6F6E, 0xF0CE, 0x7167, 0xF0CF, 0x71E5, 0xF0D0, 0x722A, + 0xF0D1, 0x74AA, 0xF0D2, 0x773A, 0xF0D3, 0x7956, 0xF0D4, 0x795A, + 0xF0D5, 0x79DF, 0xF0D6, 0x7A20, 0xF0D7, 0x7A95, 0xF0D8, 0x7C97, + 0xF0D9, 0x7CDF, 0xF0DA, 0x7D44, 0xF0DB, 0x7E70, 0xF0DC, 0x8087, + 0xF0DD, 0x85FB, 0xF0DE, 0x86A4, 0xF0DF, 0x8A54, 0xF0E0, 0x8ABF, + 0xF0E1, 0x8D99, 0xF0E2, 0x8E81, 0xF0E3, 0x9020, 0xF0E4, 0x906D, + 0xF0E5, 0x91E3, 0xF0E6, 0x963B, 0xF0E7, 0x96D5, 0xF0E8, 0x9CE5, + 0xF0E9, 0x65CF, 0xF0EA, 0x7C07, 0xF0EB, 0x8DB3, 0xF0EC, 0x93C3, + 0xF0ED, 0x5B58, 0xF0EE, 0x5C0A, 0xF0EF, 0x5352, 0xF0F0, 0x62D9, + 0xF0F1, 0x731D, 0xF0F2, 0x5027, 0xF0F3, 0x5B97, 0xF0F4, 0x5F9E, + 0xF0F5, 0x60B0, 0xF0F6, 0x616B, 0xF0F7, 0x68D5, 0xF0F8, 0x6DD9, + 0xF0F9, 0x742E, 0xF0FA, 0x7A2E, 0xF0FB, 0x7D42, 0xF0FC, 0x7D9C, + 0xF0FD, 0x7E31, 0xF0FE, 0x816B, 0xF1A1, 0x8E2A, 0xF1A2, 0x8E35, + 0xF1A3, 0x937E, 0xF1A4, 0x9418, 0xF1A5, 0x4F50, 0xF1A6, 0x5750, + 0xF1A7, 0x5DE6, 0xF1A8, 0x5EA7, 0xF1A9, 0x632B, 0xF1AA, 0x7F6A, + 0xF1AB, 0x4E3B, 0xF1AC, 0x4F4F, 0xF1AD, 0x4F8F, 0xF1AE, 0x505A, + 0xF1AF, 0x59DD, 0xF1B0, 0x80C4, 0xF1B1, 0x546A, 0xF1B2, 0x5468, + 0xF1B3, 0x55FE, 0xF1B4, 0x594F, 0xF1B5, 0x5B99, 0xF1B6, 0x5DDE, + 0xF1B7, 0x5EDA, 0xF1B8, 0x665D, 0xF1B9, 0x6731, 0xF1BA, 0x67F1, + 0xF1BB, 0x682A, 0xF1BC, 0x6CE8, 0xF1BD, 0x6D32, 0xF1BE, 0x6E4A, + 0xF1BF, 0x6F8D, 0xF1C0, 0x70B7, 0xF1C1, 0x73E0, 0xF1C2, 0x7587, + 0xF1C3, 0x7C4C, 0xF1C4, 0x7D02, 0xF1C5, 0x7D2C, 0xF1C6, 0x7DA2, + 0xF1C7, 0x821F, 0xF1C8, 0x86DB, 0xF1C9, 0x8A3B, 0xF1CA, 0x8A85, + 0xF1CB, 0x8D70, 0xF1CC, 0x8E8A, 0xF1CD, 0x8F33, 0xF1CE, 0x9031, + 0xF1CF, 0x914E, 0xF1D0, 0x9152, 0xF1D1, 0x9444, 0xF1D2, 0x99D0, + 0xF1D3, 0x7AF9, 0xF1D4, 0x7CA5, 0xF1D5, 0x4FCA, 0xF1D6, 0x5101, + 0xF1D7, 0x51C6, 0xF1D8, 0x57C8, 0xF1D9, 0x5BEF, 0xF1DA, 0x5CFB, + 0xF1DB, 0x6659, 0xF1DC, 0x6A3D, 0xF1DD, 0x6D5A, 0xF1DE, 0x6E96, + 0xF1DF, 0x6FEC, 0xF1E0, 0x710C, 0xF1E1, 0x756F, 0xF1E2, 0x7AE3, + 0xF1E3, 0x8822, 0xF1E4, 0x9021, 0xF1E5, 0x9075, 0xF1E6, 0x96CB, + 0xF1E7, 0x99FF, 0xF1E8, 0x8301, 0xF1E9, 0x4E2D, 0xF1EA, 0x4EF2, + 0xF1EB, 0x8846, 0xF1EC, 0x91CD, 0xF1ED, 0x537D, 0xF1EE, 0x6ADB, + 0xF1EF, 0x696B, 0xF1F0, 0x6C41, 0xF1F1, 0x847A, 0xF1F2, 0x589E, + 0xF1F3, 0x618E, 0xF1F4, 0x66FE, 0xF1F5, 0x62EF, 0xF1F6, 0x70DD, + 0xF1F7, 0x7511, 0xF1F8, 0x75C7, 0xF1F9, 0x7E52, 0xF1FA, 0x84B8, + 0xF1FB, 0x8B49, 0xF1FC, 0x8D08, 0xF1FD, 0x4E4B, 0xF1FE, 0x53EA, + 0xF2A1, 0x54AB, 0xF2A2, 0x5730, 0xF2A3, 0x5740, 0xF2A4, 0x5FD7, + 0xF2A5, 0x6301, 0xF2A6, 0x6307, 0xF2A7, 0x646F, 0xF2A8, 0x652F, + 0xF2A9, 0x65E8, 0xF2AA, 0x667A, 0xF2AB, 0x679D, 0xF2AC, 0x67B3, + 0xF2AD, 0x6B62, 0xF2AE, 0x6C60, 0xF2AF, 0x6C9A, 0xF2B0, 0x6F2C, + 0xF2B1, 0x77E5, 0xF2B2, 0x7825, 0xF2B3, 0x7949, 0xF2B4, 0x7957, + 0xF2B5, 0x7D19, 0xF2B6, 0x80A2, 0xF2B7, 0x8102, 0xF2B8, 0x81F3, + 0xF2B9, 0x829D, 0xF2BA, 0x82B7, 0xF2BB, 0x8718, 0xF2BC, 0x8A8C, + 0xF2BD, 0xF9FC, 0xF2BE, 0x8D04, 0xF2BF, 0x8DBE, 0xF2C0, 0x9072, + 0xF2C1, 0x76F4, 0xF2C2, 0x7A19, 0xF2C3, 0x7A37, 0xF2C4, 0x7E54, + 0xF2C5, 0x8077, 0xF2C6, 0x5507, 0xF2C7, 0x55D4, 0xF2C8, 0x5875, + 0xF2C9, 0x632F, 0xF2CA, 0x6422, 0xF2CB, 0x6649, 0xF2CC, 0x664B, + 0xF2CD, 0x686D, 0xF2CE, 0x699B, 0xF2CF, 0x6B84, 0xF2D0, 0x6D25, + 0xF2D1, 0x6EB1, 0xF2D2, 0x73CD, 0xF2D3, 0x7468, 0xF2D4, 0x74A1, + 0xF2D5, 0x755B, 0xF2D6, 0x75B9, 0xF2D7, 0x76E1, 0xF2D8, 0x771E, + 0xF2D9, 0x778B, 0xF2DA, 0x79E6, 0xF2DB, 0x7E09, 0xF2DC, 0x7E1D, + 0xF2DD, 0x81FB, 0xF2DE, 0x852F, 0xF2DF, 0x8897, 0xF2E0, 0x8A3A, + 0xF2E1, 0x8CD1, 0xF2E2, 0x8EEB, 0xF2E3, 0x8FB0, 0xF2E4, 0x9032, + 0xF2E5, 0x93AD, 0xF2E6, 0x9663, 0xF2E7, 0x9673, 0xF2E8, 0x9707, + 0xF2E9, 0x4F84, 0xF2EA, 0x53F1, 0xF2EB, 0x59EA, 0xF2EC, 0x5AC9, + 0xF2ED, 0x5E19, 0xF2EE, 0x684E, 0xF2EF, 0x74C6, 0xF2F0, 0x75BE, + 0xF2F1, 0x79E9, 0xF2F2, 0x7A92, 0xF2F3, 0x81A3, 0xF2F4, 0x86ED, + 0xF2F5, 0x8CEA, 0xF2F6, 0x8DCC, 0xF2F7, 0x8FED, 0xF2F8, 0x659F, + 0xF2F9, 0x6715, 0xF2FA, 0xF9FD, 0xF2FB, 0x57F7, 0xF2FC, 0x6F57, + 0xF2FD, 0x7DDD, 0xF2FE, 0x8F2F, 0xF3A1, 0x93F6, 0xF3A2, 0x96C6, + 0xF3A3, 0x5FB5, 0xF3A4, 0x61F2, 0xF3A5, 0x6F84, 0xF3A6, 0x4E14, + 0xF3A7, 0x4F98, 0xF3A8, 0x501F, 0xF3A9, 0x53C9, 0xF3AA, 0x55DF, + 0xF3AB, 0x5D6F, 0xF3AC, 0x5DEE, 0xF3AD, 0x6B21, 0xF3AE, 0x6B64, + 0xF3AF, 0x78CB, 0xF3B0, 0x7B9A, 0xF3B1, 0xF9FE, 0xF3B2, 0x8E49, + 0xF3B3, 0x8ECA, 0xF3B4, 0x906E, 0xF3B5, 0x6349, 0xF3B6, 0x643E, + 0xF3B7, 0x7740, 0xF3B8, 0x7A84, 0xF3B9, 0x932F, 0xF3BA, 0x947F, + 0xF3BB, 0x9F6A, 0xF3BC, 0x64B0, 0xF3BD, 0x6FAF, 0xF3BE, 0x71E6, + 0xF3BF, 0x74A8, 0xF3C0, 0x74DA, 0xF3C1, 0x7AC4, 0xF3C2, 0x7C12, + 0xF3C3, 0x7E82, 0xF3C4, 0x7CB2, 0xF3C5, 0x7E98, 0xF3C6, 0x8B9A, + 0xF3C7, 0x8D0A, 0xF3C8, 0x947D, 0xF3C9, 0x9910, 0xF3CA, 0x994C, + 0xF3CB, 0x5239, 0xF3CC, 0x5BDF, 0xF3CD, 0x64E6, 0xF3CE, 0x672D, + 0xF3CF, 0x7D2E, 0xF3D0, 0x50ED, 0xF3D1, 0x53C3, 0xF3D2, 0x5879, + 0xF3D3, 0x6158, 0xF3D4, 0x6159, 0xF3D5, 0x61FA, 0xF3D6, 0x65AC, + 0xF3D7, 0x7AD9, 0xF3D8, 0x8B92, 0xF3D9, 0x8B96, 0xF3DA, 0x5009, + 0xF3DB, 0x5021, 0xF3DC, 0x5275, 0xF3DD, 0x5531, 0xF3DE, 0x5A3C, + 0xF3DF, 0x5EE0, 0xF3E0, 0x5F70, 0xF3E1, 0x6134, 0xF3E2, 0x655E, + 0xF3E3, 0x660C, 0xF3E4, 0x6636, 0xF3E5, 0x66A2, 0xF3E6, 0x69CD, + 0xF3E7, 0x6EC4, 0xF3E8, 0x6F32, 0xF3E9, 0x7316, 0xF3EA, 0x7621, + 0xF3EB, 0x7A93, 0xF3EC, 0x8139, 0xF3ED, 0x8259, 0xF3EE, 0x83D6, + 0xF3EF, 0x84BC, 0xF3F0, 0x50B5, 0xF3F1, 0x57F0, 0xF3F2, 0x5BC0, + 0xF3F3, 0x5BE8, 0xF3F4, 0x5F69, 0xF3F5, 0x63A1, 0xF3F6, 0x7826, + 0xF3F7, 0x7DB5, 0xF3F8, 0x83DC, 0xF3F9, 0x8521, 0xF3FA, 0x91C7, + 0xF3FB, 0x91F5, 0xF3FC, 0x518A, 0xF3FD, 0x67F5, 0xF3FE, 0x7B56, + 0xF4A1, 0x8CAC, 0xF4A2, 0x51C4, 0xF4A3, 0x59BB, 0xF4A4, 0x60BD, + 0xF4A5, 0x8655, 0xF4A6, 0x501C, 0xF4A7, 0xF9FF, 0xF4A8, 0x5254, + 0xF4A9, 0x5C3A, 0xF4AA, 0x617D, 0xF4AB, 0x621A, 0xF4AC, 0x62D3, + 0xF4AD, 0x64F2, 0xF4AE, 0x65A5, 0xF4AF, 0x6ECC, 0xF4B0, 0x7620, + 0xF4B1, 0x810A, 0xF4B2, 0x8E60, 0xF4B3, 0x965F, 0xF4B4, 0x96BB, + 0xF4B5, 0x4EDF, 0xF4B6, 0x5343, 0xF4B7, 0x5598, 0xF4B8, 0x5929, + 0xF4B9, 0x5DDD, 0xF4BA, 0x64C5, 0xF4BB, 0x6CC9, 0xF4BC, 0x6DFA, + 0xF4BD, 0x7394, 0xF4BE, 0x7A7F, 0xF4BF, 0x821B, 0xF4C0, 0x85A6, + 0xF4C1, 0x8CE4, 0xF4C2, 0x8E10, 0xF4C3, 0x9077, 0xF4C4, 0x91E7, + 0xF4C5, 0x95E1, 0xF4C6, 0x9621, 0xF4C7, 0x97C6, 0xF4C8, 0x51F8, + 0xF4C9, 0x54F2, 0xF4CA, 0x5586, 0xF4CB, 0x5FB9, 0xF4CC, 0x64A4, + 0xF4CD, 0x6F88, 0xF4CE, 0x7DB4, 0xF4CF, 0x8F1F, 0xF4D0, 0x8F4D, + 0xF4D1, 0x9435, 0xF4D2, 0x50C9, 0xF4D3, 0x5C16, 0xF4D4, 0x6CBE, + 0xF4D5, 0x6DFB, 0xF4D6, 0x751B, 0xF4D7, 0x77BB, 0xF4D8, 0x7C3D, + 0xF4D9, 0x7C64, 0xF4DA, 0x8A79, 0xF4DB, 0x8AC2, 0xF4DC, 0x581E, + 0xF4DD, 0x59BE, 0xF4DE, 0x5E16, 0xF4DF, 0x6377, 0xF4E0, 0x7252, + 0xF4E1, 0x758A, 0xF4E2, 0x776B, 0xF4E3, 0x8ADC, 0xF4E4, 0x8CBC, + 0xF4E5, 0x8F12, 0xF4E6, 0x5EF3, 0xF4E7, 0x6674, 0xF4E8, 0x6DF8, + 0xF4E9, 0x807D, 0xF4EA, 0x83C1, 0xF4EB, 0x8ACB, 0xF4EC, 0x9751, + 0xF4ED, 0x9BD6, 0xF4EE, 0xFA00, 0xF4EF, 0x5243, 0xF4F0, 0x66FF, + 0xF4F1, 0x6D95, 0xF4F2, 0x6EEF, 0xF4F3, 0x7DE0, 0xF4F4, 0x8AE6, + 0xF4F5, 0x902E, 0xF4F6, 0x905E, 0xF4F7, 0x9AD4, 0xF4F8, 0x521D, + 0xF4F9, 0x527F, 0xF4FA, 0x54E8, 0xF4FB, 0x6194, 0xF4FC, 0x6284, + 0xF4FD, 0x62DB, 0xF4FE, 0x68A2, 0xF5A1, 0x6912, 0xF5A2, 0x695A, + 0xF5A3, 0x6A35, 0xF5A4, 0x7092, 0xF5A5, 0x7126, 0xF5A6, 0x785D, + 0xF5A7, 0x7901, 0xF5A8, 0x790E, 0xF5A9, 0x79D2, 0xF5AA, 0x7A0D, + 0xF5AB, 0x8096, 0xF5AC, 0x8278, 0xF5AD, 0x82D5, 0xF5AE, 0x8349, + 0xF5AF, 0x8549, 0xF5B0, 0x8C82, 0xF5B1, 0x8D85, 0xF5B2, 0x9162, + 0xF5B3, 0x918B, 0xF5B4, 0x91AE, 0xF5B5, 0x4FC3, 0xF5B6, 0x56D1, + 0xF5B7, 0x71ED, 0xF5B8, 0x77D7, 0xF5B9, 0x8700, 0xF5BA, 0x89F8, + 0xF5BB, 0x5BF8, 0xF5BC, 0x5FD6, 0xF5BD, 0x6751, 0xF5BE, 0x90A8, + 0xF5BF, 0x53E2, 0xF5C0, 0x585A, 0xF5C1, 0x5BF5, 0xF5C2, 0x60A4, + 0xF5C3, 0x6181, 0xF5C4, 0x6460, 0xF5C5, 0x7E3D, 0xF5C6, 0x8070, + 0xF5C7, 0x8525, 0xF5C8, 0x9283, 0xF5C9, 0x64AE, 0xF5CA, 0x50AC, + 0xF5CB, 0x5D14, 0xF5CC, 0x6700, 0xF5CD, 0x589C, 0xF5CE, 0x62BD, + 0xF5CF, 0x63A8, 0xF5D0, 0x690E, 0xF5D1, 0x6978, 0xF5D2, 0x6A1E, + 0xF5D3, 0x6E6B, 0xF5D4, 0x76BA, 0xF5D5, 0x79CB, 0xF5D6, 0x82BB, + 0xF5D7, 0x8429, 0xF5D8, 0x8ACF, 0xF5D9, 0x8DA8, 0xF5DA, 0x8FFD, + 0xF5DB, 0x9112, 0xF5DC, 0x914B, 0xF5DD, 0x919C, 0xF5DE, 0x9310, + 0xF5DF, 0x9318, 0xF5E0, 0x939A, 0xF5E1, 0x96DB, 0xF5E2, 0x9A36, + 0xF5E3, 0x9C0D, 0xF5E4, 0x4E11, 0xF5E5, 0x755C, 0xF5E6, 0x795D, + 0xF5E7, 0x7AFA, 0xF5E8, 0x7B51, 0xF5E9, 0x7BC9, 0xF5EA, 0x7E2E, + 0xF5EB, 0x84C4, 0xF5EC, 0x8E59, 0xF5ED, 0x8E74, 0xF5EE, 0x8EF8, + 0xF5EF, 0x9010, 0xF5F0, 0x6625, 0xF5F1, 0x693F, 0xF5F2, 0x7443, + 0xF5F3, 0x51FA, 0xF5F4, 0x672E, 0xF5F5, 0x9EDC, 0xF5F6, 0x5145, + 0xF5F7, 0x5FE0, 0xF5F8, 0x6C96, 0xF5F9, 0x87F2, 0xF5FA, 0x885D, + 0xF5FB, 0x8877, 0xF5FC, 0x60B4, 0xF5FD, 0x81B5, 0xF5FE, 0x8403, + 0xF6A1, 0x8D05, 0xF6A2, 0x53D6, 0xF6A3, 0x5439, 0xF6A4, 0x5634, + 0xF6A5, 0x5A36, 0xF6A6, 0x5C31, 0xF6A7, 0x708A, 0xF6A8, 0x7FE0, + 0xF6A9, 0x805A, 0xF6AA, 0x8106, 0xF6AB, 0x81ED, 0xF6AC, 0x8DA3, + 0xF6AD, 0x9189, 0xF6AE, 0x9A5F, 0xF6AF, 0x9DF2, 0xF6B0, 0x5074, + 0xF6B1, 0x4EC4, 0xF6B2, 0x53A0, 0xF6B3, 0x60FB, 0xF6B4, 0x6E2C, + 0xF6B5, 0x5C64, 0xF6B6, 0x4F88, 0xF6B7, 0x5024, 0xF6B8, 0x55E4, + 0xF6B9, 0x5CD9, 0xF6BA, 0x5E5F, 0xF6BB, 0x6065, 0xF6BC, 0x6894, + 0xF6BD, 0x6CBB, 0xF6BE, 0x6DC4, 0xF6BF, 0x71BE, 0xF6C0, 0x75D4, + 0xF6C1, 0x75F4, 0xF6C2, 0x7661, 0xF6C3, 0x7A1A, 0xF6C4, 0x7A49, + 0xF6C5, 0x7DC7, 0xF6C6, 0x7DFB, 0xF6C7, 0x7F6E, 0xF6C8, 0x81F4, + 0xF6C9, 0x86A9, 0xF6CA, 0x8F1C, 0xF6CB, 0x96C9, 0xF6CC, 0x99B3, + 0xF6CD, 0x9F52, 0xF6CE, 0x5247, 0xF6CF, 0x52C5, 0xF6D0, 0x98ED, + 0xF6D1, 0x89AA, 0xF6D2, 0x4E03, 0xF6D3, 0x67D2, 0xF6D4, 0x6F06, + 0xF6D5, 0x4FB5, 0xF6D6, 0x5BE2, 0xF6D7, 0x6795, 0xF6D8, 0x6C88, + 0xF6D9, 0x6D78, 0xF6DA, 0x741B, 0xF6DB, 0x7827, 0xF6DC, 0x91DD, + 0xF6DD, 0x937C, 0xF6DE, 0x87C4, 0xF6DF, 0x79E4, 0xF6E0, 0x7A31, + 0xF6E1, 0x5FEB, 0xF6E2, 0x4ED6, 0xF6E3, 0x54A4, 0xF6E4, 0x553E, + 0xF6E5, 0x58AE, 0xF6E6, 0x59A5, 0xF6E7, 0x60F0, 0xF6E8, 0x6253, + 0xF6E9, 0x62D6, 0xF6EA, 0x6736, 0xF6EB, 0x6955, 0xF6EC, 0x8235, + 0xF6ED, 0x9640, 0xF6EE, 0x99B1, 0xF6EF, 0x99DD, 0xF6F0, 0x502C, + 0xF6F1, 0x5353, 0xF6F2, 0x5544, 0xF6F3, 0x577C, 0xF6F4, 0xFA01, + 0xF6F5, 0x6258, 0xF6F6, 0xFA02, 0xF6F7, 0x64E2, 0xF6F8, 0x666B, + 0xF6F9, 0x67DD, 0xF6FA, 0x6FC1, 0xF6FB, 0x6FEF, 0xF6FC, 0x7422, + 0xF6FD, 0x7438, 0xF6FE, 0x8A17, 0xF7A1, 0x9438, 0xF7A2, 0x5451, + 0xF7A3, 0x5606, 0xF7A4, 0x5766, 0xF7A5, 0x5F48, 0xF7A6, 0x619A, + 0xF7A7, 0x6B4E, 0xF7A8, 0x7058, 0xF7A9, 0x70AD, 0xF7AA, 0x7DBB, + 0xF7AB, 0x8A95, 0xF7AC, 0x596A, 0xF7AD, 0x812B, 0xF7AE, 0x63A2, + 0xF7AF, 0x7708, 0xF7B0, 0x803D, 0xF7B1, 0x8CAA, 0xF7B2, 0x5854, + 0xF7B3, 0x642D, 0xF7B4, 0x69BB, 0xF7B5, 0x5B95, 0xF7B6, 0x5E11, + 0xF7B7, 0x6E6F, 0xF7B8, 0xFA03, 0xF7B9, 0x8569, 0xF7BA, 0x514C, + 0xF7BB, 0x53F0, 0xF7BC, 0x592A, 0xF7BD, 0x6020, 0xF7BE, 0x614B, + 0xF7BF, 0x6B86, 0xF7C0, 0x6C70, 0xF7C1, 0x6CF0, 0xF7C2, 0x7B1E, + 0xF7C3, 0x80CE, 0xF7C4, 0x82D4, 0xF7C5, 0x8DC6, 0xF7C6, 0x90B0, + 0xF7C7, 0x98B1, 0xF7C8, 0xFA04, 0xF7C9, 0x64C7, 0xF7CA, 0x6FA4, + 0xF7CB, 0x6491, 0xF7CC, 0x6504, 0xF7CD, 0x514E, 0xF7CE, 0x5410, + 0xF7CF, 0x571F, 0xF7D0, 0x8A0E, 0xF7D1, 0x615F, 0xF7D2, 0x6876, + 0xF7D3, 0xFA05, 0xF7D4, 0x75DB, 0xF7D5, 0x7B52, 0xF7D6, 0x7D71, + 0xF7D7, 0x901A, 0xF7D8, 0x5806, 0xF7D9, 0x69CC, 0xF7DA, 0x817F, + 0xF7DB, 0x892A, 0xF7DC, 0x9000, 0xF7DD, 0x9839, 0xF7DE, 0x5078, + 0xF7DF, 0x5957, 0xF7E0, 0x59AC, 0xF7E1, 0x6295, 0xF7E2, 0x900F, + 0xF7E3, 0x9B2A, 0xF7E4, 0x615D, 0xF7E5, 0x7279, 0xF7E6, 0x95D6, + 0xF7E7, 0x5761, 0xF7E8, 0x5A46, 0xF7E9, 0x5DF4, 0xF7EA, 0x628A, + 0xF7EB, 0x64AD, 0xF7EC, 0x64FA, 0xF7ED, 0x6777, 0xF7EE, 0x6CE2, + 0xF7EF, 0x6D3E, 0xF7F0, 0x722C, 0xF7F1, 0x7436, 0xF7F2, 0x7834, + 0xF7F3, 0x7F77, 0xF7F4, 0x82AD, 0xF7F5, 0x8DDB, 0xF7F6, 0x9817, + 0xF7F7, 0x5224, 0xF7F8, 0x5742, 0xF7F9, 0x677F, 0xF7FA, 0x7248, + 0xF7FB, 0x74E3, 0xF7FC, 0x8CA9, 0xF7FD, 0x8FA6, 0xF7FE, 0x9211, + 0xF8A1, 0x962A, 0xF8A2, 0x516B, 0xF8A3, 0x53ED, 0xF8A4, 0x634C, + 0xF8A5, 0x4F69, 0xF8A6, 0x5504, 0xF8A7, 0x6096, 0xF8A8, 0x6557, + 0xF8A9, 0x6C9B, 0xF8AA, 0x6D7F, 0xF8AB, 0x724C, 0xF8AC, 0x72FD, + 0xF8AD, 0x7A17, 0xF8AE, 0x8987, 0xF8AF, 0x8C9D, 0xF8B0, 0x5F6D, + 0xF8B1, 0x6F8E, 0xF8B2, 0x70F9, 0xF8B3, 0x81A8, 0xF8B4, 0x610E, + 0xF8B5, 0x4FBF, 0xF8B6, 0x504F, 0xF8B7, 0x6241, 0xF8B8, 0x7247, + 0xF8B9, 0x7BC7, 0xF8BA, 0x7DE8, 0xF8BB, 0x7FE9, 0xF8BC, 0x904D, + 0xF8BD, 0x97AD, 0xF8BE, 0x9A19, 0xF8BF, 0x8CB6, 0xF8C0, 0x576A, + 0xF8C1, 0x5E73, 0xF8C2, 0x67B0, 0xF8C3, 0x840D, 0xF8C4, 0x8A55, + 0xF8C5, 0x5420, 0xF8C6, 0x5B16, 0xF8C7, 0x5E63, 0xF8C8, 0x5EE2, + 0xF8C9, 0x5F0A, 0xF8CA, 0x6583, 0xF8CB, 0x80BA, 0xF8CC, 0x853D, + 0xF8CD, 0x9589, 0xF8CE, 0x965B, 0xF8CF, 0x4F48, 0xF8D0, 0x5305, + 0xF8D1, 0x530D, 0xF8D2, 0x530F, 0xF8D3, 0x5486, 0xF8D4, 0x54FA, + 0xF8D5, 0x5703, 0xF8D6, 0x5E03, 0xF8D7, 0x6016, 0xF8D8, 0x629B, + 0xF8D9, 0x62B1, 0xF8DA, 0x6355, 0xF8DB, 0xFA06, 0xF8DC, 0x6CE1, + 0xF8DD, 0x6D66, 0xF8DE, 0x75B1, 0xF8DF, 0x7832, 0xF8E0, 0x80DE, + 0xF8E1, 0x812F, 0xF8E2, 0x82DE, 0xF8E3, 0x8461, 0xF8E4, 0x84B2, + 0xF8E5, 0x888D, 0xF8E6, 0x8912, 0xF8E7, 0x900B, 0xF8E8, 0x92EA, + 0xF8E9, 0x98FD, 0xF8EA, 0x9B91, 0xF8EB, 0x5E45, 0xF8EC, 0x66B4, + 0xF8ED, 0x66DD, 0xF8EE, 0x7011, 0xF8EF, 0x7206, 0xF8F0, 0xFA07, + 0xF8F1, 0x4FF5, 0xF8F2, 0x527D, 0xF8F3, 0x5F6A, 0xF8F4, 0x6153, + 0xF8F5, 0x6753, 0xF8F6, 0x6A19, 0xF8F7, 0x6F02, 0xF8F8, 0x74E2, + 0xF8F9, 0x7968, 0xF8FA, 0x8868, 0xF8FB, 0x8C79, 0xF8FC, 0x98C7, + 0xF8FD, 0x98C4, 0xF8FE, 0x9A43, 0xF9A1, 0x54C1, 0xF9A2, 0x7A1F, + 0xF9A3, 0x6953, 0xF9A4, 0x8AF7, 0xF9A5, 0x8C4A, 0xF9A6, 0x98A8, + 0xF9A7, 0x99AE, 0xF9A8, 0x5F7C, 0xF9A9, 0x62AB, 0xF9AA, 0x75B2, + 0xF9AB, 0x76AE, 0xF9AC, 0x88AB, 0xF9AD, 0x907F, 0xF9AE, 0x9642, + 0xF9AF, 0x5339, 0xF9B0, 0x5F3C, 0xF9B1, 0x5FC5, 0xF9B2, 0x6CCC, + 0xF9B3, 0x73CC, 0xF9B4, 0x7562, 0xF9B5, 0x758B, 0xF9B6, 0x7B46, + 0xF9B7, 0x82FE, 0xF9B8, 0x999D, 0xF9B9, 0x4E4F, 0xF9BA, 0x903C, + 0xF9BB, 0x4E0B, 0xF9BC, 0x4F55, 0xF9BD, 0x53A6, 0xF9BE, 0x590F, + 0xF9BF, 0x5EC8, 0xF9C0, 0x6630, 0xF9C1, 0x6CB3, 0xF9C2, 0x7455, + 0xF9C3, 0x8377, 0xF9C4, 0x8766, 0xF9C5, 0x8CC0, 0xF9C6, 0x9050, + 0xF9C7, 0x971E, 0xF9C8, 0x9C15, 0xF9C9, 0x58D1, 0xF9CA, 0x5B78, + 0xF9CB, 0x8650, 0xF9CC, 0x8B14, 0xF9CD, 0x9DB4, 0xF9CE, 0x5BD2, + 0xF9CF, 0x6068, 0xF9D0, 0x608D, 0xF9D1, 0x65F1, 0xF9D2, 0x6C57, + 0xF9D3, 0x6F22, 0xF9D4, 0x6FA3, 0xF9D5, 0x701A, 0xF9D6, 0x7F55, + 0xF9D7, 0x7FF0, 0xF9D8, 0x9591, 0xF9D9, 0x9592, 0xF9DA, 0x9650, + 0xF9DB, 0x97D3, 0xF9DC, 0x5272, 0xF9DD, 0x8F44, 0xF9DE, 0x51FD, + 0xF9DF, 0x542B, 0xF9E0, 0x54B8, 0xF9E1, 0x5563, 0xF9E2, 0x558A, + 0xF9E3, 0x6ABB, 0xF9E4, 0x6DB5, 0xF9E5, 0x7DD8, 0xF9E6, 0x8266, + 0xF9E7, 0x929C, 0xF9E8, 0x9677, 0xF9E9, 0x9E79, 0xF9EA, 0x5408, + 0xF9EB, 0x54C8, 0xF9EC, 0x76D2, 0xF9ED, 0x86E4, 0xF9EE, 0x95A4, + 0xF9EF, 0x95D4, 0xF9F0, 0x965C, 0xF9F1, 0x4EA2, 0xF9F2, 0x4F09, + 0xF9F3, 0x59EE, 0xF9F4, 0x5AE6, 0xF9F5, 0x5DF7, 0xF9F6, 0x6052, + 0xF9F7, 0x6297, 0xF9F8, 0x676D, 0xF9F9, 0x6841, 0xF9FA, 0x6C86, + 0xF9FB, 0x6E2F, 0xF9FC, 0x7F38, 0xF9FD, 0x809B, 0xF9FE, 0x822A, + 0xFAA1, 0xFA08, 0xFAA2, 0xFA09, 0xFAA3, 0x9805, 0xFAA4, 0x4EA5, + 0xFAA5, 0x5055, 0xFAA6, 0x54B3, 0xFAA7, 0x5793, 0xFAA8, 0x595A, + 0xFAA9, 0x5B69, 0xFAAA, 0x5BB3, 0xFAAB, 0x61C8, 0xFAAC, 0x6977, + 0xFAAD, 0x6D77, 0xFAAE, 0x7023, 0xFAAF, 0x87F9, 0xFAB0, 0x89E3, + 0xFAB1, 0x8A72, 0xFAB2, 0x8AE7, 0xFAB3, 0x9082, 0xFAB4, 0x99ED, + 0xFAB5, 0x9AB8, 0xFAB6, 0x52BE, 0xFAB7, 0x6838, 0xFAB8, 0x5016, + 0xFAB9, 0x5E78, 0xFABA, 0x674F, 0xFABB, 0x8347, 0xFABC, 0x884C, + 0xFABD, 0x4EAB, 0xFABE, 0x5411, 0xFABF, 0x56AE, 0xFAC0, 0x73E6, + 0xFAC1, 0x9115, 0xFAC2, 0x97FF, 0xFAC3, 0x9909, 0xFAC4, 0x9957, + 0xFAC5, 0x9999, 0xFAC6, 0x5653, 0xFAC7, 0x589F, 0xFAC8, 0x865B, + 0xFAC9, 0x8A31, 0xFACA, 0x61B2, 0xFACB, 0x6AF6, 0xFACC, 0x737B, + 0xFACD, 0x8ED2, 0xFACE, 0x6B47, 0xFACF, 0x96AA, 0xFAD0, 0x9A57, + 0xFAD1, 0x5955, 0xFAD2, 0x7200, 0xFAD3, 0x8D6B, 0xFAD4, 0x9769, + 0xFAD5, 0x4FD4, 0xFAD6, 0x5CF4, 0xFAD7, 0x5F26, 0xFAD8, 0x61F8, + 0xFAD9, 0x665B, 0xFADA, 0x6CEB, 0xFADB, 0x70AB, 0xFADC, 0x7384, + 0xFADD, 0x73B9, 0xFADE, 0x73FE, 0xFADF, 0x7729, 0xFAE0, 0x774D, + 0xFAE1, 0x7D43, 0xFAE2, 0x7D62, 0xFAE3, 0x7E23, 0xFAE4, 0x8237, + 0xFAE5, 0x8852, 0xFAE6, 0xFA0A, 0xFAE7, 0x8CE2, 0xFAE8, 0x9249, + 0xFAE9, 0x986F, 0xFAEA, 0x5B51, 0xFAEB, 0x7A74, 0xFAEC, 0x8840, + 0xFAED, 0x9801, 0xFAEE, 0x5ACC, 0xFAEF, 0x4FE0, 0xFAF0, 0x5354, + 0xFAF1, 0x593E, 0xFAF2, 0x5CFD, 0xFAF3, 0x633E, 0xFAF4, 0x6D79, + 0xFAF5, 0x72F9, 0xFAF6, 0x8105, 0xFAF7, 0x8107, 0xFAF8, 0x83A2, + 0xFAF9, 0x92CF, 0xFAFA, 0x9830, 0xFAFB, 0x4EA8, 0xFAFC, 0x5144, + 0xFAFD, 0x5211, 0xFAFE, 0x578B, 0xFBA1, 0x5F62, 0xFBA2, 0x6CC2, + 0xFBA3, 0x6ECE, 0xFBA4, 0x7005, 0xFBA5, 0x7050, 0xFBA6, 0x70AF, + 0xFBA7, 0x7192, 0xFBA8, 0x73E9, 0xFBA9, 0x7469, 0xFBAA, 0x834A, + 0xFBAB, 0x87A2, 0xFBAC, 0x8861, 0xFBAD, 0x9008, 0xFBAE, 0x90A2, + 0xFBAF, 0x93A3, 0xFBB0, 0x99A8, 0xFBB1, 0x516E, 0xFBB2, 0x5F57, + 0xFBB3, 0x60E0, 0xFBB4, 0x6167, 0xFBB5, 0x66B3, 0xFBB6, 0x8559, + 0xFBB7, 0x8E4A, 0xFBB8, 0x91AF, 0xFBB9, 0x978B, 0xFBBA, 0x4E4E, + 0xFBBB, 0x4E92, 0xFBBC, 0x547C, 0xFBBD, 0x58D5, 0xFBBE, 0x58FA, + 0xFBBF, 0x597D, 0xFBC0, 0x5CB5, 0xFBC1, 0x5F27, 0xFBC2, 0x6236, + 0xFBC3, 0x6248, 0xFBC4, 0x660A, 0xFBC5, 0x6667, 0xFBC6, 0x6BEB, + 0xFBC7, 0x6D69, 0xFBC8, 0x6DCF, 0xFBC9, 0x6E56, 0xFBCA, 0x6EF8, + 0xFBCB, 0x6F94, 0xFBCC, 0x6FE0, 0xFBCD, 0x6FE9, 0xFBCE, 0x705D, + 0xFBCF, 0x72D0, 0xFBD0, 0x7425, 0xFBD1, 0x745A, 0xFBD2, 0x74E0, + 0xFBD3, 0x7693, 0xFBD4, 0x795C, 0xFBD5, 0x7CCA, 0xFBD6, 0x7E1E, + 0xFBD7, 0x80E1, 0xFBD8, 0x82A6, 0xFBD9, 0x846B, 0xFBDA, 0x84BF, + 0xFBDB, 0x864E, 0xFBDC, 0x865F, 0xFBDD, 0x8774, 0xFBDE, 0x8B77, + 0xFBDF, 0x8C6A, 0xFBE0, 0x93AC, 0xFBE1, 0x9800, 0xFBE2, 0x9865, + 0xFBE3, 0x60D1, 0xFBE4, 0x6216, 0xFBE5, 0x9177, 0xFBE6, 0x5A5A, + 0xFBE7, 0x660F, 0xFBE8, 0x6DF7, 0xFBE9, 0x6E3E, 0xFBEA, 0x743F, + 0xFBEB, 0x9B42, 0xFBEC, 0x5FFD, 0xFBED, 0x60DA, 0xFBEE, 0x7B0F, + 0xFBEF, 0x54C4, 0xFBF0, 0x5F18, 0xFBF1, 0x6C5E, 0xFBF2, 0x6CD3, + 0xFBF3, 0x6D2A, 0xFBF4, 0x70D8, 0xFBF5, 0x7D05, 0xFBF6, 0x8679, + 0xFBF7, 0x8A0C, 0xFBF8, 0x9D3B, 0xFBF9, 0x5316, 0xFBFA, 0x548C, + 0xFBFB, 0x5B05, 0xFBFC, 0x6A3A, 0xFBFD, 0x706B, 0xFBFE, 0x7575, + 0xFCA1, 0x798D, 0xFCA2, 0x79BE, 0xFCA3, 0x82B1, 0xFCA4, 0x83EF, + 0xFCA5, 0x8A71, 0xFCA6, 0x8B41, 0xFCA7, 0x8CA8, 0xFCA8, 0x9774, + 0xFCA9, 0xFA0B, 0xFCAA, 0x64F4, 0xFCAB, 0x652B, 0xFCAC, 0x78BA, + 0xFCAD, 0x78BB, 0xFCAE, 0x7A6B, 0xFCAF, 0x4E38, 0xFCB0, 0x559A, + 0xFCB1, 0x5950, 0xFCB2, 0x5BA6, 0xFCB3, 0x5E7B, 0xFCB4, 0x60A3, + 0xFCB5, 0x63DB, 0xFCB6, 0x6B61, 0xFCB7, 0x6665, 0xFCB8, 0x6853, + 0xFCB9, 0x6E19, 0xFCBA, 0x7165, 0xFCBB, 0x74B0, 0xFCBC, 0x7D08, + 0xFCBD, 0x9084, 0xFCBE, 0x9A69, 0xFCBF, 0x9C25, 0xFCC0, 0x6D3B, + 0xFCC1, 0x6ED1, 0xFCC2, 0x733E, 0xFCC3, 0x8C41, 0xFCC4, 0x95CA, + 0xFCC5, 0x51F0, 0xFCC6, 0x5E4C, 0xFCC7, 0x5FA8, 0xFCC8, 0x604D, + 0xFCC9, 0x60F6, 0xFCCA, 0x6130, 0xFCCB, 0x614C, 0xFCCC, 0x6643, + 0xFCCD, 0x6644, 0xFCCE, 0x69A5, 0xFCCF, 0x6CC1, 0xFCD0, 0x6E5F, + 0xFCD1, 0x6EC9, 0xFCD2, 0x6F62, 0xFCD3, 0x714C, 0xFCD4, 0x749C, + 0xFCD5, 0x7687, 0xFCD6, 0x7BC1, 0xFCD7, 0x7C27, 0xFCD8, 0x8352, + 0xFCD9, 0x8757, 0xFCDA, 0x9051, 0xFCDB, 0x968D, 0xFCDC, 0x9EC3, + 0xFCDD, 0x532F, 0xFCDE, 0x56DE, 0xFCDF, 0x5EFB, 0xFCE0, 0x5F8A, + 0xFCE1, 0x6062, 0xFCE2, 0x6094, 0xFCE3, 0x61F7, 0xFCE4, 0x6666, + 0xFCE5, 0x6703, 0xFCE6, 0x6A9C, 0xFCE7, 0x6DEE, 0xFCE8, 0x6FAE, + 0xFCE9, 0x7070, 0xFCEA, 0x736A, 0xFCEB, 0x7E6A, 0xFCEC, 0x81BE, + 0xFCED, 0x8334, 0xFCEE, 0x86D4, 0xFCEF, 0x8AA8, 0xFCF0, 0x8CC4, + 0xFCF1, 0x5283, 0xFCF2, 0x7372, 0xFCF3, 0x5B96, 0xFCF4, 0x6A6B, + 0xFCF5, 0x9404, 0xFCF6, 0x54EE, 0xFCF7, 0x5686, 0xFCF8, 0x5B5D, + 0xFCF9, 0x6548, 0xFCFA, 0x6585, 0xFCFB, 0x66C9, 0xFCFC, 0x689F, + 0xFCFD, 0x6D8D, 0xFCFE, 0x6DC6, 0xFDA1, 0x723B, 0xFDA2, 0x80B4, + 0xFDA3, 0x9175, 0xFDA4, 0x9A4D, 0xFDA5, 0x4FAF, 0xFDA6, 0x5019, + 0xFDA7, 0x539A, 0xFDA8, 0x540E, 0xFDA9, 0x543C, 0xFDAA, 0x5589, + 0xFDAB, 0x55C5, 0xFDAC, 0x5E3F, 0xFDAD, 0x5F8C, 0xFDAE, 0x673D, + 0xFDAF, 0x7166, 0xFDB0, 0x73DD, 0xFDB1, 0x9005, 0xFDB2, 0x52DB, + 0xFDB3, 0x52F3, 0xFDB4, 0x5864, 0xFDB5, 0x58CE, 0xFDB6, 0x7104, + 0xFDB7, 0x718F, 0xFDB8, 0x71FB, 0xFDB9, 0x85B0, 0xFDBA, 0x8A13, + 0xFDBB, 0x6688, 0xFDBC, 0x85A8, 0xFDBD, 0x55A7, 0xFDBE, 0x6684, + 0xFDBF, 0x714A, 0xFDC0, 0x8431, 0xFDC1, 0x5349, 0xFDC2, 0x5599, + 0xFDC3, 0x6BC1, 0xFDC4, 0x5F59, 0xFDC5, 0x5FBD, 0xFDC6, 0x63EE, + 0xFDC7, 0x6689, 0xFDC8, 0x7147, 0xFDC9, 0x8AF1, 0xFDCA, 0x8F1D, + 0xFDCB, 0x9EBE, 0xFDCC, 0x4F11, 0xFDCD, 0x643A, 0xFDCE, 0x70CB, + 0xFDCF, 0x7566, 0xFDD0, 0x8667, 0xFDD1, 0x6064, 0xFDD2, 0x8B4E, + 0xFDD3, 0x9DF8, 0xFDD4, 0x5147, 0xFDD5, 0x51F6, 0xFDD6, 0x5308, + 0xFDD7, 0x6D36, 0xFDD8, 0x80F8, 0xFDD9, 0x9ED1, 0xFDDA, 0x6615, + 0xFDDB, 0x6B23, 0xFDDC, 0x7098, 0xFDDD, 0x75D5, 0xFDDE, 0x5403, + 0xFDDF, 0x5C79, 0xFDE0, 0x7D07, 0xFDE1, 0x8A16, 0xFDE2, 0x6B20, + 0xFDE3, 0x6B3D, 0xFDE4, 0x6B46, 0xFDE5, 0x5438, 0xFDE6, 0x6070, + 0xFDE7, 0x6D3D, 0xFDE8, 0x7FD5, 0xFDE9, 0x8208, 0xFDEA, 0x50D6, + 0xFDEB, 0x51DE, 0xFDEC, 0x559C, 0xFDED, 0x566B, 0xFDEE, 0x56CD, + 0xFDEF, 0x59EC, 0xFDF0, 0x5B09, 0xFDF1, 0x5E0C, 0xFDF2, 0x6199, + 0xFDF3, 0x6198, 0xFDF4, 0x6231, 0xFDF5, 0x665E, 0xFDF6, 0x66E6, + 0xFDF7, 0x7199, 0xFDF8, 0x71B9, 0xFDF9, 0x71BA, 0xFDFA, 0x72A7, + 0xFDFB, 0x79A7, 0xFDFC, 0x7A00, 0xFDFD, 0x7FB2, 0xFDFE, 0x8A70, + 0, 0 +}; + + + +WCHAR ff_convert ( /* Converted code, 0 means conversion error */ + WCHAR chr, /* Character code to be converted */ + UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ +) +{ + const WCHAR *p; + WCHAR c; + int i, n, li, hi; + + + if (chr < 0x80) { /* ASCII */ + c = chr; + } else { + if (dir) { /* OEM code to unicode */ + p = oem2uni; + hi = sizeof oem2uni / 4 - 1; + } else { /* Unicode to OEM code */ + p = uni2oem; + hi = sizeof uni2oem / 4 - 1; + } + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (chr == p[i * 2]) break; + if (chr > p[i * 2]) + li = i; + else + hi = i; + } + c = n ? p[i * 2 + 1] : 0; + } + + return c; +} + + + +WCHAR ff_wtoupper ( /* Returns upper converted character */ + WCHAR chr /* Unicode character to be upper converted (BMP only) */ +) +{ + /* Compressed upper conversion table */ + static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WCHAR *p; + WCHAR bc, nc, cmd; + + + p = chr < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || chr < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (chr < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: chr = p[chr - bc]; break; /* Table conversion */ + case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ + case 2: chr -= 16; break; /* Shift -16 */ + case 3: chr -= 32; break; /* Shift -32 */ + case 4: chr -= 48; break; /* Shift -48 */ + case 5: chr -= 26; break; /* Shift -26 */ + case 6: chr += 8; break; /* Shift +8 */ + case 7: chr -= 80; break; /* Shift -80 */ + case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + + return chr; +} + +#endif diff --git a/extras/fatfs/cc950.h b/extras/fatfs/cc950.h new file mode 100644 index 0000000..fe4204d --- /dev/null +++ b/extras/fatfs/cc950.h @@ -0,0 +1,6899 @@ +/*------------------------------------------------------------------------*/ +/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ +/* CP950 (Traditional Chinese Big5) */ +/*------------------------------------------------------------------------*/ + +#include "ff.h" + + +#if _USE_LFN && _CODE_PAGE == 950 + + +static +const WCHAR uni2oem[] = { +/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ + 0x00A7, 0xA1B1, 0x00AF, 0xA1C2, 0x00B0, 0xA258, 0x00B1, 0xA1D3, + 0x00B7, 0xA150, 0x00D7, 0xA1D1, 0x00F7, 0xA1D2, 0x02C7, 0xA3BE, + 0x02C9, 0xA3BC, 0x02CA, 0xA3BD, 0x02CB, 0xA3BF, 0x02CD, 0xA1C5, + 0x02D9, 0xA3BB, 0x0391, 0xA344, 0x0392, 0xA345, 0x0393, 0xA346, + 0x0394, 0xA347, 0x0395, 0xA348, 0x0396, 0xA349, 0x0397, 0xA34A, + 0x0398, 0xA34B, 0x0399, 0xA34C, 0x039A, 0xA34D, 0x039B, 0xA34E, + 0x039C, 0xA34F, 0x039D, 0xA350, 0x039E, 0xA351, 0x039F, 0xA352, + 0x03A0, 0xA353, 0x03A1, 0xA354, 0x03A3, 0xA355, 0x03A4, 0xA356, + 0x03A5, 0xA357, 0x03A6, 0xA358, 0x03A7, 0xA359, 0x03A8, 0xA35A, + 0x03A9, 0xA35B, 0x03B1, 0xA35C, 0x03B2, 0xA35D, 0x03B3, 0xA35E, + 0x03B4, 0xA35F, 0x03B5, 0xA360, 0x03B6, 0xA361, 0x03B7, 0xA362, + 0x03B8, 0xA363, 0x03B9, 0xA364, 0x03BA, 0xA365, 0x03BB, 0xA366, + 0x03BC, 0xA367, 0x03BD, 0xA368, 0x03BE, 0xA369, 0x03BF, 0xA36A, + 0x03C0, 0xA36B, 0x03C1, 0xA36C, 0x03C3, 0xA36D, 0x03C4, 0xA36E, + 0x03C5, 0xA36F, 0x03C6, 0xA370, 0x03C7, 0xA371, 0x03C8, 0xA372, + 0x03C9, 0xA373, 0x2013, 0xA156, 0x2014, 0xA158, 0x2018, 0xA1A5, + 0x2019, 0xA1A6, 0x201C, 0xA1A7, 0x201D, 0xA1A8, 0x2025, 0xA14C, + 0x2026, 0xA14B, 0x2027, 0xA145, 0x2032, 0xA1AC, 0x2035, 0xA1AB, + 0x203B, 0xA1B0, 0x20AC, 0xA3E1, 0x2103, 0xA24A, 0x2105, 0xA1C1, + 0x2109, 0xA24B, 0x2160, 0xA2B9, 0x2161, 0xA2BA, 0x2162, 0xA2BB, + 0x2163, 0xA2BC, 0x2164, 0xA2BD, 0x2165, 0xA2BE, 0x2166, 0xA2BF, + 0x2167, 0xA2C0, 0x2168, 0xA2C1, 0x2169, 0xA2C2, 0x2190, 0xA1F6, + 0x2191, 0xA1F4, 0x2192, 0xA1F7, 0x2193, 0xA1F5, 0x2196, 0xA1F8, + 0x2197, 0xA1F9, 0x2198, 0xA1FB, 0x2199, 0xA1FA, 0x2215, 0xA241, + 0x221A, 0xA1D4, 0x221E, 0xA1DB, 0x221F, 0xA1E8, 0x2220, 0xA1E7, + 0x2223, 0xA1FD, 0x2225, 0xA1FC, 0x2229, 0xA1E4, 0x222A, 0xA1E5, + 0x222B, 0xA1EC, 0x222E, 0xA1ED, 0x2234, 0xA1EF, 0x2235, 0xA1EE, + 0x2252, 0xA1DC, 0x2260, 0xA1DA, 0x2261, 0xA1DD, 0x2266, 0xA1D8, + 0x2267, 0xA1D9, 0x2295, 0xA1F2, 0x2299, 0xA1F3, 0x22A5, 0xA1E6, + 0x22BF, 0xA1E9, 0x2500, 0xA277, 0x2502, 0xA278, 0x250C, 0xA27A, + 0x2510, 0xA27B, 0x2514, 0xA27C, 0x2518, 0xA27D, 0x251C, 0xA275, + 0x2524, 0xA274, 0x252C, 0xA273, 0x2534, 0xA272, 0x253C, 0xA271, + 0x2550, 0xA2A4, 0x2550, 0xF9F9, 0x2551, 0xF9F8, 0x2552, 0xF9E6, + 0x2553, 0xF9EF, 0x2554, 0xF9DD, 0x2555, 0xF9E8, 0x2556, 0xF9F1, + 0x2557, 0xF9DF, 0x2558, 0xF9EC, 0x2559, 0xF9F5, 0x255A, 0xF9E3, + 0x255B, 0xF9EE, 0x255C, 0xF9F7, 0x255D, 0xF9E5, 0x255E, 0xA2A5, + 0x255E, 0xF9E9, 0x255F, 0xF9F2, 0x2560, 0xF9E0, 0x2561, 0xA2A7, + 0x2561, 0xF9EB, 0x2562, 0xF9F4, 0x2563, 0xF9E2, 0x2564, 0xF9E7, + 0x2565, 0xF9F0, 0x2566, 0xF9DE, 0x2567, 0xF9ED, 0x2568, 0xF9F6, + 0x2569, 0xF9E4, 0x256A, 0xA2A6, 0x256A, 0xF9EA, 0x256B, 0xF9F3, + 0x256C, 0xF9E1, 0x256D, 0xA27E, 0x256D, 0xF9FA, 0x256E, 0xA2A1, + 0x256E, 0xF9FB, 0x256F, 0xA2A3, 0x256F, 0xF9FD, 0x2570, 0xA2A2, + 0x2570, 0xF9FC, 0x2571, 0xA2AC, 0x2572, 0xA2AD, 0x2573, 0xA2AE, + 0x2574, 0xA15A, 0x2581, 0xA262, 0x2582, 0xA263, 0x2583, 0xA264, + 0x2584, 0xA265, 0x2585, 0xA266, 0x2586, 0xA267, 0x2587, 0xA268, + 0x2588, 0xA269, 0x2589, 0xA270, 0x258A, 0xA26F, 0x258B, 0xA26E, + 0x258C, 0xA26D, 0x258D, 0xA26C, 0x258E, 0xA26B, 0x258F, 0xA26A, + 0x2593, 0xF9FE, 0x2594, 0xA276, 0x2595, 0xA279, 0x25A0, 0xA1BD, + 0x25A1, 0xA1BC, 0x25B2, 0xA1B6, 0x25B3, 0xA1B5, 0x25BC, 0xA1BF, + 0x25BD, 0xA1BE, 0x25C6, 0xA1BB, 0x25C7, 0xA1BA, 0x25CB, 0xA1B3, + 0x25CE, 0xA1B7, 0x25CF, 0xA1B4, 0x25E2, 0xA2A8, 0x25E3, 0xA2A9, + 0x25E4, 0xA2AB, 0x25E5, 0xA2AA, 0x2605, 0xA1B9, 0x2606, 0xA1B8, + 0x2640, 0xA1F0, 0x2642, 0xA1F1, 0x3000, 0xA140, 0x3001, 0xA142, + 0x3002, 0xA143, 0x3003, 0xA1B2, 0x3008, 0xA171, 0x3009, 0xA172, + 0x300A, 0xA16D, 0x300B, 0xA16E, 0x300C, 0xA175, 0x300D, 0xA176, + 0x300E, 0xA179, 0x300F, 0xA17A, 0x3010, 0xA169, 0x3011, 0xA16A, + 0x3012, 0xA245, 0x3014, 0xA165, 0x3015, 0xA166, 0x301D, 0xA1A9, + 0x301E, 0xA1AA, 0x3021, 0xA2C3, 0x3022, 0xA2C4, 0x3023, 0xA2C5, + 0x3024, 0xA2C6, 0x3025, 0xA2C7, 0x3026, 0xA2C8, 0x3027, 0xA2C9, + 0x3028, 0xA2CA, 0x3029, 0xA2CB, 0x3105, 0xA374, 0x3106, 0xA375, + 0x3107, 0xA376, 0x3108, 0xA377, 0x3109, 0xA378, 0x310A, 0xA379, + 0x310B, 0xA37A, 0x310C, 0xA37B, 0x310D, 0xA37C, 0x310E, 0xA37D, + 0x310F, 0xA37E, 0x3110, 0xA3A1, 0x3111, 0xA3A2, 0x3112, 0xA3A3, + 0x3113, 0xA3A4, 0x3114, 0xA3A5, 0x3115, 0xA3A6, 0x3116, 0xA3A7, + 0x3117, 0xA3A8, 0x3118, 0xA3A9, 0x3119, 0xA3AA, 0x311A, 0xA3AB, + 0x311B, 0xA3AC, 0x311C, 0xA3AD, 0x311D, 0xA3AE, 0x311E, 0xA3AF, + 0x311F, 0xA3B0, 0x3120, 0xA3B1, 0x3121, 0xA3B2, 0x3122, 0xA3B3, + 0x3123, 0xA3B4, 0x3124, 0xA3B5, 0x3125, 0xA3B6, 0x3126, 0xA3B7, + 0x3127, 0xA3B8, 0x3128, 0xA3B9, 0x3129, 0xA3BA, 0x32A3, 0xA1C0, + 0x338E, 0xA255, 0x338F, 0xA256, 0x339C, 0xA250, 0x339D, 0xA251, + 0x339E, 0xA252, 0x33A1, 0xA254, 0x33C4, 0xA257, 0x33CE, 0xA253, + 0x33D1, 0xA1EB, 0x33D2, 0xA1EA, 0x33D5, 0xA24F, 0x4E00, 0xA440, + 0x4E01, 0xA442, 0x4E03, 0xA443, 0x4E07, 0xC945, 0x4E08, 0xA456, + 0x4E09, 0xA454, 0x4E0A, 0xA457, 0x4E0B, 0xA455, 0x4E0C, 0xC946, + 0x4E0D, 0xA4A3, 0x4E0E, 0xC94F, 0x4E0F, 0xC94D, 0x4E10, 0xA4A2, + 0x4E11, 0xA4A1, 0x4E14, 0xA542, 0x4E15, 0xA541, 0x4E16, 0xA540, + 0x4E18, 0xA543, 0x4E19, 0xA4FE, 0x4E1E, 0xA5E0, 0x4E1F, 0xA5E1, + 0x4E26, 0xA8C3, 0x4E2B, 0xA458, 0x4E2D, 0xA4A4, 0x4E2E, 0xC950, + 0x4E30, 0xA4A5, 0x4E31, 0xC963, 0x4E32, 0xA6EA, 0x4E33, 0xCBB1, + 0x4E38, 0xA459, 0x4E39, 0xA4A6, 0x4E3B, 0xA544, 0x4E3C, 0xC964, + 0x4E42, 0xC940, 0x4E43, 0xA444, 0x4E45, 0xA45B, 0x4E47, 0xC947, + 0x4E48, 0xA45C, 0x4E4B, 0xA4A7, 0x4E4D, 0xA545, 0x4E4E, 0xA547, + 0x4E4F, 0xA546, 0x4E52, 0xA5E2, 0x4E53, 0xA5E3, 0x4E56, 0xA8C4, + 0x4E58, 0xADBC, 0x4E59, 0xA441, 0x4E5C, 0xC941, 0x4E5D, 0xA445, + 0x4E5E, 0xA45E, 0x4E5F, 0xA45D, 0x4E69, 0xA5E4, 0x4E73, 0xA8C5, + 0x4E7E, 0xB0AE, 0x4E7F, 0xD44B, 0x4E82, 0xB6C3, 0x4E83, 0xDCB1, + 0x4E84, 0xDCB2, 0x4E86, 0xA446, 0x4E88, 0xA4A9, 0x4E8B, 0xA8C6, + 0x4E8C, 0xA447, 0x4E8D, 0xC948, 0x4E8E, 0xA45F, 0x4E91, 0xA4AA, + 0x4E92, 0xA4AC, 0x4E93, 0xC951, 0x4E94, 0xA4AD, 0x4E95, 0xA4AB, + 0x4E99, 0xA5E5, 0x4E9B, 0xA8C7, 0x4E9E, 0xA8C8, 0x4E9F, 0xAB45, + 0x4EA1, 0xA460, 0x4EA2, 0xA4AE, 0x4EA4, 0xA5E6, 0x4EA5, 0xA5E8, + 0x4EA6, 0xA5E7, 0x4EA8, 0xA6EB, 0x4EAB, 0xA8C9, 0x4EAC, 0xA8CA, + 0x4EAD, 0xAB46, 0x4EAE, 0xAB47, 0x4EB3, 0xADBD, 0x4EB6, 0xDCB3, + 0x4EB9, 0xF6D6, 0x4EBA, 0xA448, 0x4EC0, 0xA4B0, 0x4EC1, 0xA4AF, + 0x4EC2, 0xC952, 0x4EC3, 0xA4B1, 0x4EC4, 0xA4B7, 0x4EC6, 0xA4B2, + 0x4EC7, 0xA4B3, 0x4EC8, 0xC954, 0x4EC9, 0xC953, 0x4ECA, 0xA4B5, + 0x4ECB, 0xA4B6, 0x4ECD, 0xA4B4, 0x4ED4, 0xA54A, 0x4ED5, 0xA54B, + 0x4ED6, 0xA54C, 0x4ED7, 0xA54D, 0x4ED8, 0xA549, 0x4ED9, 0xA550, + 0x4EDA, 0xC96A, 0x4EDC, 0xC966, 0x4EDD, 0xC969, 0x4EDE, 0xA551, + 0x4EDF, 0xA561, 0x4EE1, 0xC968, 0x4EE3, 0xA54E, 0x4EE4, 0xA54F, + 0x4EE5, 0xA548, 0x4EE8, 0xC965, 0x4EE9, 0xC967, 0x4EF0, 0xA5F5, + 0x4EF1, 0xC9B0, 0x4EF2, 0xA5F2, 0x4EF3, 0xA5F6, 0x4EF4, 0xC9BA, + 0x4EF5, 0xC9AE, 0x4EF6, 0xA5F3, 0x4EF7, 0xC9B2, 0x4EFB, 0xA5F4, + 0x4EFD, 0xA5F7, 0x4EFF, 0xA5E9, 0x4F00, 0xC9B1, 0x4F01, 0xA5F8, + 0x4F02, 0xC9B5, 0x4F04, 0xC9B9, 0x4F05, 0xC9B6, 0x4F08, 0xC9B3, + 0x4F09, 0xA5EA, 0x4F0A, 0xA5EC, 0x4F0B, 0xA5F9, 0x4F0D, 0xA5EE, + 0x4F0E, 0xC9AB, 0x4F0F, 0xA5F1, 0x4F10, 0xA5EF, 0x4F11, 0xA5F0, + 0x4F12, 0xC9BB, 0x4F13, 0xC9B8, 0x4F14, 0xC9AF, 0x4F15, 0xA5ED, + 0x4F18, 0xC9AC, 0x4F19, 0xA5EB, 0x4F1D, 0xC9B4, 0x4F22, 0xC9B7, + 0x4F2C, 0xC9AD, 0x4F2D, 0xCA66, 0x4F2F, 0xA742, 0x4F30, 0xA6F4, + 0x4F33, 0xCA67, 0x4F34, 0xA6F1, 0x4F36, 0xA744, 0x4F38, 0xA6F9, + 0x4F3A, 0xA6F8, 0x4F3B, 0xCA5B, 0x4F3C, 0xA6FC, 0x4F3D, 0xA6F7, + 0x4F3E, 0xCA60, 0x4F3F, 0xCA68, 0x4F41, 0xCA64, 0x4F43, 0xA6FA, + 0x4F46, 0xA6FD, 0x4F47, 0xA6EE, 0x4F48, 0xA747, 0x4F49, 0xCA5D, + 0x4F4C, 0xCBBD, 0x4F4D, 0xA6EC, 0x4F4E, 0xA743, 0x4F4F, 0xA6ED, + 0x4F50, 0xA6F5, 0x4F51, 0xA6F6, 0x4F52, 0xCA62, 0x4F53, 0xCA5E, + 0x4F54, 0xA6FB, 0x4F55, 0xA6F3, 0x4F56, 0xCA5A, 0x4F57, 0xA6EF, + 0x4F58, 0xCA65, 0x4F59, 0xA745, 0x4F5A, 0xA748, 0x4F5B, 0xA6F2, + 0x4F5C, 0xA740, 0x4F5D, 0xA746, 0x4F5E, 0xA6F0, 0x4F5F, 0xCA63, + 0x4F60, 0xA741, 0x4F61, 0xCA69, 0x4F62, 0xCA5C, 0x4F63, 0xA6FE, + 0x4F64, 0xCA5F, 0x4F67, 0xCA61, 0x4F69, 0xA8D8, 0x4F6A, 0xCBBF, + 0x4F6B, 0xCBCB, 0x4F6C, 0xA8D0, 0x4F6E, 0xCBCC, 0x4F6F, 0xA8CB, + 0x4F70, 0xA8D5, 0x4F73, 0xA8CE, 0x4F74, 0xCBB9, 0x4F75, 0xA8D6, + 0x4F76, 0xCBB8, 0x4F77, 0xCBBC, 0x4F78, 0xCBC3, 0x4F79, 0xCBC1, + 0x4F7A, 0xA8DE, 0x4F7B, 0xA8D9, 0x4F7C, 0xCBB3, 0x4F7D, 0xCBB5, + 0x4F7E, 0xA8DB, 0x4F7F, 0xA8CF, 0x4F80, 0xCBB6, 0x4F81, 0xCBC2, + 0x4F82, 0xCBC9, 0x4F83, 0xA8D4, 0x4F84, 0xCBBB, 0x4F85, 0xCBB4, + 0x4F86, 0xA8D3, 0x4F87, 0xCBB7, 0x4F88, 0xA8D7, 0x4F89, 0xCBBA, + 0x4F8B, 0xA8D2, 0x4F8D, 0xA8CD, 0x4F8F, 0xA8DC, 0x4F90, 0xCBC4, + 0x4F91, 0xA8DD, 0x4F92, 0xCBC8, 0x4F94, 0xCBC6, 0x4F95, 0xCBCA, + 0x4F96, 0xA8DA, 0x4F97, 0xCBBE, 0x4F98, 0xCBB2, 0x4F9A, 0xCBC0, + 0x4F9B, 0xA8D1, 0x4F9C, 0xCBC5, 0x4F9D, 0xA8CC, 0x4F9E, 0xCBC7, + 0x4FAE, 0xAB56, 0x4FAF, 0xAB4A, 0x4FB2, 0xCDE0, 0x4FB3, 0xCDE8, + 0x4FB5, 0xAB49, 0x4FB6, 0xAB51, 0x4FB7, 0xAB5D, 0x4FB9, 0xCDEE, + 0x4FBA, 0xCDEC, 0x4FBB, 0xCDE7, 0x4FBF, 0xAB4B, 0x4FC0, 0xCDED, + 0x4FC1, 0xCDE3, 0x4FC2, 0xAB59, 0x4FC3, 0xAB50, 0x4FC4, 0xAB58, + 0x4FC5, 0xCDDE, 0x4FC7, 0xCDEA, 0x4FC9, 0xCDE1, 0x4FCA, 0xAB54, + 0x4FCB, 0xCDE2, 0x4FCD, 0xCDDD, 0x4FCE, 0xAB5B, 0x4FCF, 0xAB4E, + 0x4FD0, 0xAB57, 0x4FD1, 0xAB4D, 0x4FD3, 0xCDDF, 0x4FD4, 0xCDE4, + 0x4FD6, 0xCDEB, 0x4FD7, 0xAB55, 0x4FD8, 0xAB52, 0x4FD9, 0xCDE6, + 0x4FDA, 0xAB5A, 0x4FDB, 0xCDE9, 0x4FDC, 0xCDE5, 0x4FDD, 0xAB4F, + 0x4FDE, 0xAB5C, 0x4FDF, 0xAB53, 0x4FE0, 0xAB4C, 0x4FE1, 0xAB48, + 0x4FEC, 0xCDEF, 0x4FEE, 0xADD7, 0x4FEF, 0xADC1, 0x4FF1, 0xADD1, + 0x4FF3, 0xADD6, 0x4FF4, 0xD0D0, 0x4FF5, 0xD0CF, 0x4FF6, 0xD0D4, + 0x4FF7, 0xD0D5, 0x4FF8, 0xADC4, 0x4FFA, 0xADCD, 0x4FFE, 0xADDA, + 0x5000, 0xADCE, 0x5005, 0xD0C9, 0x5006, 0xADC7, 0x5007, 0xD0CA, + 0x5009, 0xADDC, 0x500B, 0xADD3, 0x500C, 0xADBE, 0x500D, 0xADBF, + 0x500E, 0xD0DD, 0x500F, 0xB0BF, 0x5011, 0xADCC, 0x5012, 0xADCB, + 0x5013, 0xD0CB, 0x5014, 0xADCF, 0x5015, 0xD45B, 0x5016, 0xADC6, + 0x5017, 0xD0D6, 0x5018, 0xADD5, 0x5019, 0xADD4, 0x501A, 0xADCA, + 0x501B, 0xD0CE, 0x501C, 0xD0D7, 0x501E, 0xD0C8, 0x501F, 0xADC9, + 0x5020, 0xD0D8, 0x5021, 0xADD2, 0x5022, 0xD0CC, 0x5023, 0xADC0, + 0x5025, 0xADC3, 0x5026, 0xADC2, 0x5027, 0xD0D9, 0x5028, 0xADD0, + 0x5029, 0xADC5, 0x502A, 0xADD9, 0x502B, 0xADDB, 0x502C, 0xD0D3, + 0x502D, 0xADD8, 0x502F, 0xD0DB, 0x5030, 0xD0CD, 0x5031, 0xD0DC, + 0x5033, 0xD0D1, 0x5035, 0xD0DA, 0x5037, 0xD0D2, 0x503C, 0xADC8, + 0x5040, 0xD463, 0x5041, 0xD457, 0x5043, 0xB0B3, 0x5045, 0xD45C, + 0x5046, 0xD462, 0x5047, 0xB0B2, 0x5048, 0xD455, 0x5049, 0xB0B6, + 0x504A, 0xD459, 0x504B, 0xD452, 0x504C, 0xB0B4, 0x504D, 0xD456, + 0x504E, 0xB0B9, 0x504F, 0xB0BE, 0x5051, 0xD467, 0x5053, 0xD451, + 0x5055, 0xB0BA, 0x5057, 0xD466, 0x505A, 0xB0B5, 0x505B, 0xD458, + 0x505C, 0xB0B1, 0x505D, 0xD453, 0x505E, 0xD44F, 0x505F, 0xD45D, + 0x5060, 0xD450, 0x5061, 0xD44E, 0x5062, 0xD45A, 0x5063, 0xD460, + 0x5064, 0xD461, 0x5065, 0xB0B7, 0x5068, 0xD85B, 0x5069, 0xD45E, + 0x506A, 0xD44D, 0x506B, 0xD45F, 0x506D, 0xB0C1, 0x506E, 0xD464, + 0x506F, 0xB0C0, 0x5070, 0xD44C, 0x5072, 0xD454, 0x5073, 0xD465, + 0x5074, 0xB0BC, 0x5075, 0xB0BB, 0x5076, 0xB0B8, 0x5077, 0xB0BD, + 0x507A, 0xB0AF, 0x507D, 0xB0B0, 0x5080, 0xB3C8, 0x5082, 0xD85E, + 0x5083, 0xD857, 0x5085, 0xB3C5, 0x5087, 0xD85F, 0x508B, 0xD855, + 0x508C, 0xD858, 0x508D, 0xB3C4, 0x508E, 0xD859, 0x5091, 0xB3C7, + 0x5092, 0xD85D, 0x5094, 0xD853, 0x5095, 0xD852, 0x5096, 0xB3C9, + 0x5098, 0xB3CA, 0x5099, 0xB3C6, 0x509A, 0xB3CB, 0x509B, 0xD851, + 0x509C, 0xD85C, 0x509D, 0xD85A, 0x509E, 0xD854, 0x50A2, 0xB3C3, + 0x50A3, 0xD856, 0x50AC, 0xB6CA, 0x50AD, 0xB6C4, 0x50AE, 0xDCB7, + 0x50AF, 0xB6CD, 0x50B0, 0xDCBD, 0x50B1, 0xDCC0, 0x50B2, 0xB6C6, + 0x50B3, 0xB6C7, 0x50B4, 0xDCBA, 0x50B5, 0xB6C5, 0x50B6, 0xDCC3, + 0x50B7, 0xB6CB, 0x50B8, 0xDCC4, 0x50BA, 0xDCBF, 0x50BB, 0xB6CC, + 0x50BD, 0xDCB4, 0x50BE, 0xB6C9, 0x50BF, 0xDCB5, 0x50C1, 0xDCBE, + 0x50C2, 0xDCBC, 0x50C4, 0xDCB8, 0x50C5, 0xB6C8, 0x50C6, 0xDCB6, + 0x50C7, 0xB6CE, 0x50C8, 0xDCBB, 0x50C9, 0xDCC2, 0x50CA, 0xDCB9, + 0x50CB, 0xDCC1, 0x50CE, 0xB9B6, 0x50CF, 0xB9B3, 0x50D1, 0xB9B4, + 0x50D3, 0xE0F9, 0x50D4, 0xE0F1, 0x50D5, 0xB9B2, 0x50D6, 0xB9AF, + 0x50D7, 0xE0F2, 0x50DA, 0xB9B1, 0x50DB, 0xE0F5, 0x50DD, 0xE0F7, + 0x50E0, 0xE0FE, 0x50E3, 0xE0FD, 0x50E4, 0xE0F8, 0x50E5, 0xB9AE, + 0x50E6, 0xE0F0, 0x50E7, 0xB9AC, 0x50E8, 0xE0F3, 0x50E9, 0xB9B7, + 0x50EA, 0xE0F6, 0x50EC, 0xE0FA, 0x50ED, 0xB9B0, 0x50EE, 0xB9AD, + 0x50EF, 0xE0FC, 0x50F0, 0xE0FB, 0x50F1, 0xB9B5, 0x50F3, 0xE0F4, + 0x50F5, 0xBBF8, 0x50F6, 0xE4EC, 0x50F8, 0xE4E9, 0x50F9, 0xBBF9, + 0x50FB, 0xBBF7, 0x50FD, 0xE4F0, 0x50FE, 0xE4ED, 0x50FF, 0xE4E6, + 0x5100, 0xBBF6, 0x5102, 0xBBFA, 0x5103, 0xE4E7, 0x5104, 0xBBF5, + 0x5105, 0xBBFD, 0x5106, 0xE4EA, 0x5107, 0xE4EB, 0x5108, 0xBBFB, + 0x5109, 0xBBFC, 0x510A, 0xE4F1, 0x510B, 0xE4EE, 0x510C, 0xE4EF, + 0x5110, 0xBEAA, 0x5111, 0xE8F8, 0x5112, 0xBEA7, 0x5113, 0xE8F5, + 0x5114, 0xBEA9, 0x5115, 0xBEAB, 0x5117, 0xE8F6, 0x5118, 0xBEA8, + 0x511A, 0xE8F7, 0x511C, 0xE8F4, 0x511F, 0xC076, 0x5120, 0xECBD, + 0x5121, 0xC077, 0x5122, 0xECBB, 0x5124, 0xECBC, 0x5125, 0xECBA, + 0x5126, 0xECB9, 0x5129, 0xECBE, 0x512A, 0xC075, 0x512D, 0xEFB8, + 0x512E, 0xEFB9, 0x5130, 0xE4E8, 0x5131, 0xEFB7, 0x5132, 0xC078, + 0x5133, 0xC35F, 0x5134, 0xF1EB, 0x5135, 0xF1EC, 0x5137, 0xC4D7, + 0x5138, 0xC4D8, 0x5139, 0xF5C1, 0x513A, 0xF5C0, 0x513B, 0xC56C, + 0x513C, 0xC56B, 0x513D, 0xF7D0, 0x513F, 0xA449, 0x5140, 0xA461, + 0x5141, 0xA4B9, 0x5143, 0xA4B8, 0x5144, 0xA553, 0x5145, 0xA552, + 0x5146, 0xA5FC, 0x5147, 0xA5FB, 0x5148, 0xA5FD, 0x5149, 0xA5FA, + 0x514B, 0xA74A, 0x514C, 0xA749, 0x514D, 0xA74B, 0x5152, 0xA8E0, + 0x5154, 0xA8DF, 0x5155, 0xA8E1, 0x5157, 0xAB5E, 0x5159, 0xA259, + 0x515A, 0xD0DE, 0x515B, 0xA25A, 0x515C, 0xB0C2, 0x515D, 0xA25C, + 0x515E, 0xA25B, 0x515F, 0xD860, 0x5161, 0xA25D, 0x5162, 0xB9B8, + 0x5163, 0xA25E, 0x5165, 0xA44A, 0x5167, 0xA4BA, 0x5168, 0xA5FE, + 0x5169, 0xA8E2, 0x516B, 0xA44B, 0x516C, 0xA4BD, 0x516D, 0xA4BB, + 0x516E, 0xA4BC, 0x5171, 0xA640, 0x5175, 0xA74C, 0x5176, 0xA8E4, + 0x5177, 0xA8E3, 0x5178, 0xA8E5, 0x517C, 0xADDD, 0x5180, 0xBEAC, + 0x5187, 0xC94E, 0x5189, 0xA554, 0x518A, 0xA555, 0x518D, 0xA641, + 0x518F, 0xCA6A, 0x5191, 0xAB60, 0x5192, 0xAB5F, 0x5193, 0xD0E0, + 0x5194, 0xD0DF, 0x5195, 0xB0C3, 0x5197, 0xA4BE, 0x5198, 0xC955, + 0x519E, 0xCBCD, 0x51A0, 0xAB61, 0x51A2, 0xADE0, 0x51A4, 0xADDE, + 0x51A5, 0xADDF, 0x51AA, 0xBEAD, 0x51AC, 0xA556, 0x51B0, 0xA642, + 0x51B1, 0xC9BC, 0x51B6, 0xA74D, 0x51B7, 0xA74E, 0x51B9, 0xCA6B, + 0x51BC, 0xCBCE, 0x51BD, 0xA8E6, 0x51BE, 0xCBCF, 0x51C4, 0xD0E2, + 0x51C5, 0xD0E3, 0x51C6, 0xADE3, 0x51C8, 0xD0E4, 0x51CA, 0xD0E1, + 0x51CB, 0xADE4, 0x51CC, 0xADE2, 0x51CD, 0xADE1, 0x51CE, 0xD0E5, + 0x51D0, 0xD468, 0x51D4, 0xD861, 0x51D7, 0xDCC5, 0x51D8, 0xE140, + 0x51DC, 0xBBFE, 0x51DD, 0xBEAE, 0x51DE, 0xE8F9, 0x51E0, 0xA44C, + 0x51E1, 0xA45A, 0x51F0, 0xB0C4, 0x51F1, 0xB3CD, 0x51F3, 0xB9B9, + 0x51F5, 0xC942, 0x51F6, 0xA4BF, 0x51F8, 0xA559, 0x51F9, 0xA557, + 0x51FA, 0xA558, 0x51FD, 0xA8E7, 0x5200, 0xA44D, 0x5201, 0xA44E, + 0x5203, 0xA462, 0x5206, 0xA4C0, 0x5207, 0xA4C1, 0x5208, 0xA4C2, + 0x5209, 0xC9BE, 0x520A, 0xA55A, 0x520C, 0xC96B, 0x520E, 0xA646, + 0x5210, 0xC9BF, 0x5211, 0xA644, 0x5212, 0xA645, 0x5213, 0xC9BD, + 0x5216, 0xA647, 0x5217, 0xA643, 0x521C, 0xCA6C, 0x521D, 0xAAEC, + 0x521E, 0xCA6D, 0x5221, 0xCA6E, 0x5224, 0xA750, 0x5225, 0xA74F, + 0x5228, 0xA753, 0x5229, 0xA751, 0x522A, 0xA752, 0x522E, 0xA8ED, + 0x5230, 0xA8EC, 0x5231, 0xCBD4, 0x5232, 0xCBD1, 0x5233, 0xCBD2, + 0x5235, 0xCBD0, 0x5236, 0xA8EE, 0x5237, 0xA8EA, 0x5238, 0xA8E9, + 0x523A, 0xA8EB, 0x523B, 0xA8E8, 0x5241, 0xA8EF, 0x5243, 0xAB63, + 0x5244, 0xCDF0, 0x5246, 0xCBD3, 0x5247, 0xAB68, 0x5249, 0xCDF1, + 0x524A, 0xAB64, 0x524B, 0xAB67, 0x524C, 0xAB66, 0x524D, 0xAB65, + 0x524E, 0xAB62, 0x5252, 0xD0E8, 0x5254, 0xADE7, 0x5255, 0xD0EB, + 0x5256, 0xADE5, 0x525A, 0xD0E7, 0x525B, 0xADE8, 0x525C, 0xADE6, + 0x525D, 0xADE9, 0x525E, 0xD0E9, 0x525F, 0xD0EA, 0x5261, 0xD0E6, + 0x5262, 0xD0EC, 0x5269, 0xB3D1, 0x526A, 0xB0C5, 0x526B, 0xD469, + 0x526C, 0xD46B, 0x526D, 0xD46A, 0x526E, 0xD46C, 0x526F, 0xB0C6, + 0x5272, 0xB3CE, 0x5274, 0xB3CF, 0x5275, 0xB3D0, 0x5277, 0xB6D0, + 0x5278, 0xDCC7, 0x527A, 0xDCC6, 0x527B, 0xDCC8, 0x527C, 0xDCC9, + 0x527D, 0xB6D1, 0x527F, 0xB6CF, 0x5280, 0xE141, 0x5281, 0xE142, + 0x5282, 0xB9BB, 0x5283, 0xB9BA, 0x5284, 0xE35A, 0x5287, 0xBC40, + 0x5288, 0xBC41, 0x5289, 0xBC42, 0x528A, 0xBC44, 0x528B, 0xE4F2, + 0x528C, 0xE4F3, 0x528D, 0xBC43, 0x5291, 0xBEAF, 0x5293, 0xBEB0, + 0x5296, 0xF1ED, 0x5297, 0xF5C3, 0x5298, 0xF5C2, 0x5299, 0xF7D1, + 0x529B, 0xA44F, 0x529F, 0xA55C, 0x52A0, 0xA55B, 0x52A3, 0xA648, + 0x52A6, 0xC9C0, 0x52A9, 0xA755, 0x52AA, 0xA756, 0x52AB, 0xA754, + 0x52AC, 0xA757, 0x52AD, 0xCA6F, 0x52AE, 0xCA70, 0x52BB, 0xA8F1, + 0x52BC, 0xCBD5, 0x52BE, 0xA8F0, 0x52C0, 0xCDF2, 0x52C1, 0xAB6C, + 0x52C2, 0xCDF3, 0x52C3, 0xAB6B, 0x52C7, 0xAB69, 0x52C9, 0xAB6A, + 0x52CD, 0xD0ED, 0x52D2, 0xB0C7, 0x52D3, 0xD46E, 0x52D5, 0xB0CA, + 0x52D6, 0xD46D, 0x52D7, 0xB1E5, 0x52D8, 0xB0C9, 0x52D9, 0xB0C8, + 0x52DB, 0xB3D4, 0x52DD, 0xB3D3, 0x52DE, 0xB3D2, 0x52DF, 0xB6D2, + 0x52E2, 0xB6D5, 0x52E3, 0xB6D6, 0x52E4, 0xB6D4, 0x52E6, 0xB6D3, + 0x52E9, 0xE143, 0x52EB, 0xE144, 0x52EF, 0xE4F5, 0x52F0, 0xBC45, + 0x52F1, 0xE4F4, 0x52F3, 0xBEB1, 0x52F4, 0xECBF, 0x52F5, 0xC079, + 0x52F7, 0xF1EE, 0x52F8, 0xC455, 0x52FA, 0xA463, 0x52FB, 0xA4C3, + 0x52FC, 0xC956, 0x52FE, 0xA4C4, 0x52FF, 0xA4C5, 0x5305, 0xA55D, + 0x5306, 0xA55E, 0x5308, 0xA649, 0x5309, 0xCA71, 0x530A, 0xCBD6, + 0x530B, 0xCBD7, 0x530D, 0xAB6D, 0x530E, 0xD0EE, 0x530F, 0xB0CC, + 0x5310, 0xB0CB, 0x5311, 0xD863, 0x5312, 0xD862, 0x5315, 0xA450, + 0x5316, 0xA4C6, 0x5317, 0xA55F, 0x5319, 0xB0CD, 0x531A, 0xC943, + 0x531C, 0xC96C, 0x531D, 0xA560, 0x531F, 0xC9C2, 0x5320, 0xA64B, + 0x5321, 0xA64A, 0x5322, 0xC9C1, 0x5323, 0xA758, 0x532A, 0xADEA, + 0x532D, 0xD46F, 0x532F, 0xB6D7, 0x5330, 0xE145, 0x5331, 0xB9BC, + 0x5334, 0xE8FA, 0x5337, 0xF3FD, 0x5339, 0xA4C7, 0x533C, 0xCBD8, + 0x533D, 0xCDF4, 0x533E, 0xB0D0, 0x533F, 0xB0CE, 0x5340, 0xB0CF, + 0x5341, 0xA2CC, 0x5341, 0xA451, 0x5343, 0xA464, 0x5344, 0xA2CD, + 0x5345, 0xA2CE, 0x5345, 0xA4CA, 0x5347, 0xA4C9, 0x5348, 0xA4C8, + 0x5349, 0xA563, 0x534A, 0xA562, 0x534C, 0xC96D, 0x534D, 0xC9C3, + 0x5351, 0xA8F5, 0x5352, 0xA8F2, 0x5353, 0xA8F4, 0x5354, 0xA8F3, + 0x5357, 0xAB6E, 0x535A, 0xB3D5, 0x535C, 0xA452, 0x535E, 0xA4CB, + 0x5360, 0xA565, 0x5361, 0xA564, 0x5363, 0xCA72, 0x5366, 0xA8F6, + 0x536C, 0xC957, 0x536E, 0xA567, 0x536F, 0xA566, 0x5370, 0xA64C, + 0x5371, 0xA64D, 0x5372, 0xCA73, 0x5373, 0xA759, 0x5375, 0xA75A, + 0x5377, 0xA8F7, 0x5378, 0xA8F8, 0x5379, 0xA8F9, 0x537B, 0xAB6F, + 0x537C, 0xCDF5, 0x537F, 0xADEB, 0x5382, 0xC944, 0x5384, 0xA4CC, + 0x538A, 0xC9C4, 0x538E, 0xCA74, 0x538F, 0xCA75, 0x5392, 0xCBD9, + 0x5394, 0xCBDA, 0x5396, 0xCDF7, 0x5397, 0xCDF6, 0x5398, 0xCDF9, + 0x5399, 0xCDF8, 0x539A, 0xAB70, 0x539C, 0xD470, 0x539D, 0xADED, + 0x539E, 0xD0EF, 0x539F, 0xADEC, 0x53A4, 0xD864, 0x53A5, 0xB3D6, + 0x53A7, 0xD865, 0x53AC, 0xE146, 0x53AD, 0xB9BD, 0x53B2, 0xBC46, + 0x53B4, 0xF1EF, 0x53B9, 0xC958, 0x53BB, 0xA568, 0x53C3, 0xB0D1, + 0x53C8, 0xA453, 0x53C9, 0xA465, 0x53CA, 0xA4CE, 0x53CB, 0xA4CD, + 0x53CD, 0xA4CF, 0x53D4, 0xA8FB, 0x53D6, 0xA8FA, 0x53D7, 0xA8FC, + 0x53DB, 0xAB71, 0x53DF, 0xADEE, 0x53E1, 0xE8FB, 0x53E2, 0xC24F, + 0x53E3, 0xA466, 0x53E4, 0xA56A, 0x53E5, 0xA579, 0x53E6, 0xA574, + 0x53E8, 0xA56F, 0x53E9, 0xA56E, 0x53EA, 0xA575, 0x53EB, 0xA573, + 0x53EC, 0xA56C, 0x53ED, 0xA57A, 0x53EE, 0xA56D, 0x53EF, 0xA569, + 0x53F0, 0xA578, 0x53F1, 0xA577, 0x53F2, 0xA576, 0x53F3, 0xA56B, + 0x53F5, 0xA572, 0x53F8, 0xA571, 0x53FB, 0xA57B, 0x53FC, 0xA570, + 0x5401, 0xA653, 0x5403, 0xA659, 0x5404, 0xA655, 0x5406, 0xA65B, + 0x5407, 0xC9C5, 0x5408, 0xA658, 0x5409, 0xA64E, 0x540A, 0xA651, + 0x540B, 0xA654, 0x540C, 0xA650, 0x540D, 0xA657, 0x540E, 0xA65A, + 0x540F, 0xA64F, 0x5410, 0xA652, 0x5411, 0xA656, 0x5412, 0xA65C, + 0x5418, 0xCA7E, 0x5419, 0xCA7B, 0x541B, 0xA767, 0x541C, 0xCA7C, + 0x541D, 0xA75B, 0x541E, 0xA75D, 0x541F, 0xA775, 0x5420, 0xA770, + 0x5424, 0xCAA5, 0x5425, 0xCA7D, 0x5426, 0xA75F, 0x5427, 0xA761, + 0x5428, 0xCAA4, 0x5429, 0xA768, 0x542A, 0xCA78, 0x542B, 0xA774, + 0x542C, 0xA776, 0x542D, 0xA75C, 0x542E, 0xA76D, 0x5430, 0xCA76, + 0x5431, 0xA773, 0x5433, 0xA764, 0x5435, 0xA76E, 0x5436, 0xA76F, + 0x5437, 0xCA77, 0x5438, 0xA76C, 0x5439, 0xA76A, 0x543B, 0xA76B, + 0x543C, 0xA771, 0x543D, 0xCAA1, 0x543E, 0xA75E, 0x5440, 0xA772, + 0x5441, 0xCAA3, 0x5442, 0xA766, 0x5443, 0xA763, 0x5445, 0xCA7A, + 0x5446, 0xA762, 0x5447, 0xCAA6, 0x5448, 0xA765, 0x544A, 0xA769, + 0x544E, 0xA760, 0x544F, 0xCAA2, 0x5454, 0xCA79, 0x5460, 0xCBEB, + 0x5461, 0xCBEA, 0x5462, 0xA94F, 0x5463, 0xCBED, 0x5464, 0xCBEF, + 0x5465, 0xCBE4, 0x5466, 0xCBE7, 0x5467, 0xCBEE, 0x5468, 0xA950, + 0x546B, 0xCBE1, 0x546C, 0xCBE5, 0x546F, 0xCBE9, 0x5470, 0xCE49, + 0x5471, 0xA94B, 0x5472, 0xCE4D, 0x5473, 0xA8FD, 0x5474, 0xCBE6, + 0x5475, 0xA8FE, 0x5476, 0xA94C, 0x5477, 0xA945, 0x5478, 0xA941, + 0x547A, 0xCBE2, 0x547B, 0xA944, 0x547C, 0xA949, 0x547D, 0xA952, + 0x547E, 0xCBE3, 0x547F, 0xCBDC, 0x5480, 0xA943, 0x5481, 0xCBDD, + 0x5482, 0xCBDF, 0x5484, 0xA946, 0x5486, 0xA948, 0x5487, 0xCBDB, + 0x5488, 0xCBE0, 0x548B, 0xA951, 0x548C, 0xA94D, 0x548D, 0xCBE8, + 0x548E, 0xA953, 0x5490, 0xA94A, 0x5491, 0xCBDE, 0x5492, 0xA947, + 0x5495, 0xA942, 0x5496, 0xA940, 0x5498, 0xCBEC, 0x549A, 0xA94E, + 0x54A0, 0xCE48, 0x54A1, 0xCDFB, 0x54A2, 0xCE4B, 0x54A5, 0xCDFD, + 0x54A6, 0xAB78, 0x54A7, 0xABA8, 0x54A8, 0xAB74, 0x54A9, 0xABA7, + 0x54AA, 0xAB7D, 0x54AB, 0xABA4, 0x54AC, 0xAB72, 0x54AD, 0xCDFC, + 0x54AE, 0xCE43, 0x54AF, 0xABA3, 0x54B0, 0xCE4F, 0x54B1, 0xABA5, + 0x54B3, 0xAB79, 0x54B6, 0xCE45, 0x54B7, 0xCE42, 0x54B8, 0xAB77, + 0x54BA, 0xCDFA, 0x54BB, 0xABA6, 0x54BC, 0xCE4A, 0x54BD, 0xAB7C, + 0x54BE, 0xCE4C, 0x54BF, 0xABA9, 0x54C0, 0xAB73, 0x54C1, 0xAB7E, + 0x54C2, 0xAB7B, 0x54C3, 0xCE40, 0x54C4, 0xABA1, 0x54C5, 0xCE46, + 0x54C6, 0xCE47, 0x54C7, 0xAB7A, 0x54C8, 0xABA2, 0x54C9, 0xAB76, + 0x54CE, 0xAB75, 0x54CF, 0xCDFE, 0x54D6, 0xCE44, 0x54DE, 0xCE4E, + 0x54E0, 0xD144, 0x54E1, 0xADFB, 0x54E2, 0xD0F1, 0x54E4, 0xD0F6, + 0x54E5, 0xADF4, 0x54E6, 0xAE40, 0x54E7, 0xD0F4, 0x54E8, 0xADEF, + 0x54E9, 0xADF9, 0x54EA, 0xADFE, 0x54EB, 0xD0FB, 0x54ED, 0xADFA, + 0x54EE, 0xADFD, 0x54F1, 0xD0FE, 0x54F2, 0xADF5, 0x54F3, 0xD0F5, + 0x54F7, 0xD142, 0x54F8, 0xD143, 0x54FA, 0xADF7, 0x54FB, 0xD141, + 0x54FC, 0xADF3, 0x54FD, 0xAE43, 0x54FF, 0xD0F8, 0x5501, 0xADF1, + 0x5503, 0xD146, 0x5504, 0xD0F9, 0x5505, 0xD0FD, 0x5506, 0xADF6, + 0x5507, 0xAE42, 0x5508, 0xD0FA, 0x5509, 0xADFC, 0x550A, 0xD140, + 0x550B, 0xD147, 0x550C, 0xD4A1, 0x550E, 0xD145, 0x550F, 0xAE44, + 0x5510, 0xADF0, 0x5511, 0xD0FC, 0x5512, 0xD0F3, 0x5514, 0xADF8, + 0x5517, 0xD0F2, 0x551A, 0xD0F7, 0x5526, 0xD0F0, 0x5527, 0xAE41, + 0x552A, 0xD477, 0x552C, 0xB0E4, 0x552D, 0xD4A7, 0x552E, 0xB0E2, + 0x552F, 0xB0DF, 0x5530, 0xD47C, 0x5531, 0xB0DB, 0x5532, 0xD4A2, + 0x5533, 0xB0E6, 0x5534, 0xD476, 0x5535, 0xD47B, 0x5536, 0xD47A, + 0x5537, 0xADF2, 0x5538, 0xB0E1, 0x5539, 0xD4A5, 0x553B, 0xD4A8, + 0x553C, 0xD473, 0x553E, 0xB3E8, 0x5540, 0xD4A9, 0x5541, 0xB0E7, + 0x5543, 0xB0D9, 0x5544, 0xB0D6, 0x5545, 0xD47E, 0x5546, 0xB0D3, + 0x5548, 0xD4A6, 0x554A, 0xB0DA, 0x554B, 0xD4AA, 0x554D, 0xD474, + 0x554E, 0xD4A4, 0x554F, 0xB0DD, 0x5550, 0xD475, 0x5551, 0xD478, + 0x5552, 0xD47D, 0x5555, 0xB0DE, 0x5556, 0xB0DC, 0x5557, 0xB0E8, + 0x555C, 0xB0E3, 0x555E, 0xB0D7, 0x555F, 0xB1D2, 0x5561, 0xB0D8, + 0x5562, 0xD479, 0x5563, 0xB0E5, 0x5564, 0xB0E0, 0x5565, 0xD4A3, + 0x5566, 0xB0D5, 0x556A, 0xB0D4, 0x5575, 0xD471, 0x5576, 0xD472, + 0x5577, 0xD86A, 0x557B, 0xB3D7, 0x557C, 0xB3DA, 0x557D, 0xD875, + 0x557E, 0xB3EE, 0x557F, 0xD878, 0x5580, 0xB3D8, 0x5581, 0xD871, + 0x5582, 0xB3DE, 0x5583, 0xB3E4, 0x5584, 0xB5BD, 0x5587, 0xB3E2, + 0x5588, 0xD86E, 0x5589, 0xB3EF, 0x558A, 0xB3DB, 0x558B, 0xB3E3, + 0x558C, 0xD876, 0x558D, 0xDCD7, 0x558E, 0xD87B, 0x558F, 0xD86F, + 0x5591, 0xD866, 0x5592, 0xD873, 0x5593, 0xD86D, 0x5594, 0xB3E1, + 0x5595, 0xD879, 0x5598, 0xB3DD, 0x5599, 0xB3F1, 0x559A, 0xB3EA, + 0x559C, 0xB3DF, 0x559D, 0xB3DC, 0x559F, 0xB3E7, 0x55A1, 0xD87A, + 0x55A2, 0xD86C, 0x55A3, 0xD872, 0x55A4, 0xD874, 0x55A5, 0xD868, + 0x55A6, 0xD877, 0x55A7, 0xB3D9, 0x55A8, 0xD867, 0x55AA, 0xB3E0, + 0x55AB, 0xB3F0, 0x55AC, 0xB3EC, 0x55AD, 0xD869, 0x55AE, 0xB3E6, + 0x55B1, 0xB3ED, 0x55B2, 0xB3E9, 0x55B3, 0xB3E5, 0x55B5, 0xD870, + 0x55BB, 0xB3EB, 0x55BF, 0xDCD5, 0x55C0, 0xDCD1, 0x55C2, 0xDCE0, + 0x55C3, 0xDCCA, 0x55C4, 0xDCD3, 0x55C5, 0xB6E5, 0x55C6, 0xB6E6, + 0x55C7, 0xB6DE, 0x55C8, 0xDCDC, 0x55C9, 0xB6E8, 0x55CA, 0xDCCF, + 0x55CB, 0xDCCE, 0x55CC, 0xDCCC, 0x55CD, 0xDCDE, 0x55CE, 0xB6DC, + 0x55CF, 0xDCD8, 0x55D0, 0xDCCD, 0x55D1, 0xB6DF, 0x55D2, 0xDCD6, + 0x55D3, 0xB6DA, 0x55D4, 0xDCD2, 0x55D5, 0xDCD9, 0x55D6, 0xDCDB, + 0x55D9, 0xDCDF, 0x55DA, 0xB6E3, 0x55DB, 0xDCCB, 0x55DC, 0xB6DD, + 0x55DD, 0xDCD0, 0x55DF, 0xB6D8, 0x55E1, 0xB6E4, 0x55E2, 0xDCDA, + 0x55E3, 0xB6E0, 0x55E4, 0xB6E1, 0x55E5, 0xB6E7, 0x55E6, 0xB6DB, + 0x55E7, 0xA25F, 0x55E8, 0xB6D9, 0x55E9, 0xDCD4, 0x55EF, 0xB6E2, + 0x55F2, 0xDCDD, 0x55F6, 0xB9CD, 0x55F7, 0xB9C8, 0x55F9, 0xE155, + 0x55FA, 0xE151, 0x55FC, 0xE14B, 0x55FD, 0xB9C2, 0x55FE, 0xB9BE, + 0x55FF, 0xE154, 0x5600, 0xB9BF, 0x5601, 0xE14E, 0x5602, 0xE150, + 0x5604, 0xE153, 0x5606, 0xB9C4, 0x5608, 0xB9CB, 0x5609, 0xB9C5, + 0x560C, 0xE149, 0x560D, 0xB9C6, 0x560E, 0xB9C7, 0x560F, 0xE14C, + 0x5610, 0xB9CC, 0x5612, 0xE14A, 0x5613, 0xE14F, 0x5614, 0xB9C3, + 0x5615, 0xE148, 0x5616, 0xB9C9, 0x5617, 0xB9C1, 0x561B, 0xB9C0, + 0x561C, 0xE14D, 0x561D, 0xE152, 0x561F, 0xB9CA, 0x5627, 0xE147, + 0x5629, 0xBC4D, 0x562A, 0xE547, 0x562C, 0xE544, 0x562E, 0xBC47, + 0x562F, 0xBC53, 0x5630, 0xBC54, 0x5632, 0xBC4A, 0x5633, 0xE542, + 0x5634, 0xBC4C, 0x5635, 0xE4F9, 0x5636, 0xBC52, 0x5638, 0xE546, + 0x5639, 0xBC49, 0x563A, 0xE548, 0x563B, 0xBC48, 0x563D, 0xE543, + 0x563E, 0xE545, 0x563F, 0xBC4B, 0x5640, 0xE541, 0x5641, 0xE4FA, + 0x5642, 0xE4F7, 0x5645, 0xD86B, 0x5646, 0xE4FD, 0x5648, 0xE4F6, + 0x5649, 0xE4FC, 0x564A, 0xE4FB, 0x564C, 0xE4F8, 0x564E, 0xBC4F, + 0x5653, 0xBC4E, 0x5657, 0xBC50, 0x5658, 0xE4FE, 0x5659, 0xBEB2, + 0x565A, 0xE540, 0x565E, 0xE945, 0x5660, 0xE8FD, 0x5662, 0xBEBE, + 0x5663, 0xE942, 0x5664, 0xBEB6, 0x5665, 0xBEBA, 0x5666, 0xE941, + 0x5668, 0xBEB9, 0x5669, 0xBEB5, 0x566A, 0xBEB8, 0x566B, 0xBEB3, + 0x566C, 0xBEBD, 0x566D, 0xE943, 0x566E, 0xE8FE, 0x566F, 0xBEBC, + 0x5670, 0xE8FC, 0x5671, 0xBEBB, 0x5672, 0xE944, 0x5673, 0xE940, + 0x5674, 0xBC51, 0x5676, 0xBEBF, 0x5677, 0xE946, 0x5678, 0xBEB7, + 0x5679, 0xBEB4, 0x567E, 0xECC6, 0x567F, 0xECC8, 0x5680, 0xC07B, + 0x5681, 0xECC9, 0x5682, 0xECC7, 0x5683, 0xECC5, 0x5684, 0xECC4, + 0x5685, 0xC07D, 0x5686, 0xECC3, 0x5687, 0xC07E, 0x568C, 0xECC1, + 0x568D, 0xECC2, 0x568E, 0xC07A, 0x568F, 0xC0A1, 0x5690, 0xC07C, + 0x5693, 0xECC0, 0x5695, 0xC250, 0x5697, 0xEFBC, 0x5698, 0xEFBA, + 0x5699, 0xEFBF, 0x569A, 0xEFBD, 0x569C, 0xEFBB, 0x569D, 0xEFBE, + 0x56A5, 0xC360, 0x56A6, 0xF1F2, 0x56A7, 0xF1F3, 0x56A8, 0xC456, + 0x56AA, 0xF1F4, 0x56AB, 0xF1F0, 0x56AC, 0xF1F5, 0x56AD, 0xF1F1, + 0x56AE, 0xC251, 0x56B2, 0xF3FE, 0x56B3, 0xF441, 0x56B4, 0xC459, + 0x56B5, 0xF440, 0x56B6, 0xC458, 0x56B7, 0xC457, 0x56BC, 0xC45A, + 0x56BD, 0xF5C5, 0x56BE, 0xF5C6, 0x56C0, 0xC4DA, 0x56C1, 0xC4D9, + 0x56C2, 0xC4DB, 0x56C3, 0xF5C4, 0x56C5, 0xF6D8, 0x56C6, 0xF6D7, + 0x56C8, 0xC56D, 0x56C9, 0xC56F, 0x56CA, 0xC56E, 0x56CB, 0xF6D9, + 0x56CC, 0xC5C8, 0x56CD, 0xF8A6, 0x56D1, 0xC5F1, 0x56D3, 0xF8A5, + 0x56D4, 0xF8EE, 0x56D7, 0xC949, 0x56DA, 0xA57D, 0x56DB, 0xA57C, + 0x56DD, 0xA65F, 0x56DE, 0xA65E, 0x56DF, 0xC9C7, 0x56E0, 0xA65D, + 0x56E1, 0xC9C6, 0x56E4, 0xA779, 0x56E5, 0xCAA9, 0x56E7, 0xCAA8, + 0x56EA, 0xA777, 0x56EB, 0xA77A, 0x56EE, 0xCAA7, 0x56F0, 0xA778, + 0x56F7, 0xCBF0, 0x56F9, 0xCBF1, 0x56FA, 0xA954, 0x56FF, 0xABAA, + 0x5701, 0xD148, 0x5702, 0xD149, 0x5703, 0xAE45, 0x5704, 0xAE46, + 0x5707, 0xD4AC, 0x5708, 0xB0E9, 0x5709, 0xB0EB, 0x570A, 0xD4AB, + 0x570B, 0xB0EA, 0x570C, 0xD87C, 0x570D, 0xB3F2, 0x5712, 0xB6E9, + 0x5713, 0xB6EA, 0x5714, 0xDCE1, 0x5716, 0xB9CF, 0x5718, 0xB9CE, + 0x571A, 0xE549, 0x571B, 0xE948, 0x571C, 0xE947, 0x571E, 0xF96B, + 0x571F, 0xA467, 0x5720, 0xC959, 0x5722, 0xC96E, 0x5723, 0xC96F, + 0x5728, 0xA662, 0x5729, 0xA666, 0x572A, 0xC9C9, 0x572C, 0xA664, + 0x572D, 0xA663, 0x572E, 0xC9C8, 0x572F, 0xA665, 0x5730, 0xA661, + 0x5733, 0xA660, 0x5734, 0xC9CA, 0x573B, 0xA7A6, 0x573E, 0xA7A3, + 0x5740, 0xA77D, 0x5741, 0xCAAA, 0x5745, 0xCAAB, 0x5747, 0xA7A1, + 0x5749, 0xCAAD, 0x574A, 0xA77B, 0x574B, 0xCAAE, 0x574C, 0xCAAC, + 0x574D, 0xA77E, 0x574E, 0xA7A2, 0x574F, 0xA7A5, 0x5750, 0xA7A4, + 0x5751, 0xA77C, 0x5752, 0xCAAF, 0x5761, 0xA959, 0x5762, 0xCBFE, + 0x5764, 0xA95B, 0x5766, 0xA95A, 0x5768, 0xCC40, 0x5769, 0xA958, + 0x576A, 0xA957, 0x576B, 0xCBF5, 0x576D, 0xCBF4, 0x576F, 0xCBF2, + 0x5770, 0xCBF7, 0x5771, 0xCBF6, 0x5772, 0xCBF3, 0x5773, 0xCBFC, + 0x5774, 0xCBFD, 0x5775, 0xCBFA, 0x5776, 0xCBF8, 0x5777, 0xA956, + 0x577B, 0xCBFB, 0x577C, 0xA95C, 0x577D, 0xCC41, 0x5780, 0xCBF9, + 0x5782, 0xABAB, 0x5783, 0xA955, 0x578B, 0xABAC, 0x578C, 0xCE54, + 0x578F, 0xCE5A, 0x5793, 0xABB2, 0x5794, 0xCE58, 0x5795, 0xCE5E, + 0x5797, 0xCE55, 0x5798, 0xCE59, 0x5799, 0xCE5B, 0x579A, 0xCE5D, + 0x579B, 0xCE57, 0x579D, 0xCE56, 0x579E, 0xCE51, 0x579F, 0xCE52, + 0x57A0, 0xABAD, 0x57A2, 0xABAF, 0x57A3, 0xABAE, 0x57A4, 0xCE53, + 0x57A5, 0xCE5C, 0x57AE, 0xABB1, 0x57B5, 0xCE50, 0x57B6, 0xD153, + 0x57B8, 0xD152, 0x57B9, 0xD157, 0x57BA, 0xD14E, 0x57BC, 0xD151, + 0x57BD, 0xD150, 0x57BF, 0xD154, 0x57C1, 0xD158, 0x57C2, 0xAE47, + 0x57C3, 0xAE4A, 0x57C6, 0xD14F, 0x57C7, 0xD155, 0x57CB, 0xAE49, + 0x57CC, 0xD14A, 0x57CE, 0xABB0, 0x57CF, 0xD4BA, 0x57D0, 0xD156, + 0x57D2, 0xD14D, 0x57D4, 0xAE48, 0x57D5, 0xD14C, 0x57DC, 0xD4B1, + 0x57DF, 0xB0EC, 0x57E0, 0xB0F0, 0x57E1, 0xD4C1, 0x57E2, 0xD4AF, + 0x57E3, 0xD4BD, 0x57E4, 0xB0F1, 0x57E5, 0xD4BF, 0x57E7, 0xD4C5, + 0x57E9, 0xD4C9, 0x57EC, 0xD4C0, 0x57ED, 0xD4B4, 0x57EE, 0xD4BC, + 0x57F0, 0xD4CA, 0x57F1, 0xD4C8, 0x57F2, 0xD4BE, 0x57F3, 0xD4B9, + 0x57F4, 0xD4B2, 0x57F5, 0xD8A6, 0x57F6, 0xD4B0, 0x57F7, 0xB0F5, + 0x57F8, 0xD4B7, 0x57F9, 0xB0F6, 0x57FA, 0xB0F2, 0x57FB, 0xD4AD, + 0x57FC, 0xD4C3, 0x57FD, 0xD4B5, 0x5800, 0xD4B3, 0x5801, 0xD4C6, + 0x5802, 0xB0F3, 0x5804, 0xD4CC, 0x5805, 0xB0ED, 0x5806, 0xB0EF, + 0x5807, 0xD4BB, 0x5808, 0xD4B6, 0x5809, 0xAE4B, 0x580A, 0xB0EE, + 0x580B, 0xD4B8, 0x580C, 0xD4C7, 0x580D, 0xD4CB, 0x580E, 0xD4C2, + 0x5810, 0xD4C4, 0x5814, 0xD4AE, 0x5819, 0xD8A1, 0x581B, 0xD8AA, + 0x581C, 0xD8A9, 0x581D, 0xB3FA, 0x581E, 0xD8A2, 0x5820, 0xB3FB, + 0x5821, 0xB3F9, 0x5823, 0xD8A4, 0x5824, 0xB3F6, 0x5825, 0xD8A8, + 0x5827, 0xD8A3, 0x5828, 0xD8A5, 0x5829, 0xD87D, 0x582A, 0xB3F4, + 0x582C, 0xD8B2, 0x582D, 0xD8B1, 0x582E, 0xD8AE, 0x582F, 0xB3F3, + 0x5830, 0xB3F7, 0x5831, 0xB3F8, 0x5832, 0xD14B, 0x5833, 0xD8AB, + 0x5834, 0xB3F5, 0x5835, 0xB0F4, 0x5836, 0xD8AD, 0x5837, 0xD87E, + 0x5838, 0xD8B0, 0x5839, 0xD8AF, 0x583B, 0xD8B3, 0x583D, 0xDCEF, + 0x583F, 0xD8AC, 0x5848, 0xD8A7, 0x5849, 0xDCE7, 0x584A, 0xB6F4, + 0x584B, 0xB6F7, 0x584C, 0xB6F2, 0x584D, 0xDCE6, 0x584E, 0xDCEA, + 0x584F, 0xDCE5, 0x5851, 0xB6EC, 0x5852, 0xB6F6, 0x5853, 0xDCE2, + 0x5854, 0xB6F0, 0x5855, 0xDCE9, 0x5857, 0xB6EE, 0x5858, 0xB6ED, + 0x5859, 0xDCEC, 0x585A, 0xB6EF, 0x585B, 0xDCEE, 0x585D, 0xDCEB, + 0x585E, 0xB6EB, 0x5862, 0xB6F5, 0x5863, 0xDCF0, 0x5864, 0xDCE4, + 0x5865, 0xDCED, 0x5868, 0xDCE3, 0x586B, 0xB6F1, 0x586D, 0xB6F3, + 0x586F, 0xDCE8, 0x5871, 0xDCF1, 0x5874, 0xE15D, 0x5875, 0xB9D0, + 0x5876, 0xE163, 0x5879, 0xB9D5, 0x587A, 0xE15F, 0x587B, 0xE166, + 0x587C, 0xE157, 0x587D, 0xB9D7, 0x587E, 0xB9D1, 0x587F, 0xE15C, + 0x5880, 0xBC55, 0x5881, 0xE15B, 0x5882, 0xE164, 0x5883, 0xB9D2, + 0x5885, 0xB9D6, 0x5886, 0xE15A, 0x5887, 0xE160, 0x5888, 0xE165, + 0x5889, 0xE156, 0x588A, 0xB9D4, 0x588B, 0xE15E, 0x588E, 0xE162, + 0x588F, 0xE168, 0x5890, 0xE158, 0x5891, 0xE161, 0x5893, 0xB9D3, + 0x5894, 0xE167, 0x5898, 0xE159, 0x589C, 0xBC59, 0x589D, 0xE54B, + 0x589E, 0xBC57, 0x589F, 0xBC56, 0x58A0, 0xE54D, 0x58A1, 0xE552, + 0x58A3, 0xE54E, 0x58A5, 0xE551, 0x58A6, 0xBC5C, 0x58A8, 0xBEA5, + 0x58A9, 0xBC5B, 0x58AB, 0xE54A, 0x58AC, 0xE550, 0x58AE, 0xBC5A, + 0x58AF, 0xE54F, 0x58B1, 0xE54C, 0x58B3, 0xBC58, 0x58BA, 0xE94D, + 0x58BB, 0xF9D9, 0x58BC, 0xE94F, 0x58BD, 0xE94A, 0x58BE, 0xBEC1, + 0x58BF, 0xE94C, 0x58C1, 0xBEC0, 0x58C2, 0xE94E, 0x58C5, 0xBEC3, + 0x58C6, 0xE950, 0x58C7, 0xBEC2, 0x58C8, 0xE949, 0x58C9, 0xE94B, + 0x58CE, 0xC0A5, 0x58CF, 0xECCC, 0x58D1, 0xC0A4, 0x58D2, 0xECCD, + 0x58D3, 0xC0A3, 0x58D4, 0xECCB, 0x58D5, 0xC0A2, 0x58D6, 0xECCA, + 0x58D8, 0xC253, 0x58D9, 0xC252, 0x58DA, 0xF1F6, 0x58DB, 0xF1F8, + 0x58DD, 0xF1F7, 0x58DE, 0xC361, 0x58DF, 0xC362, 0x58E2, 0xC363, + 0x58E3, 0xF442, 0x58E4, 0xC45B, 0x58E7, 0xF7D3, 0x58E8, 0xF7D2, + 0x58E9, 0xC5F2, 0x58EB, 0xA468, 0x58EC, 0xA4D0, 0x58EF, 0xA7A7, + 0x58F4, 0xCE5F, 0x58F9, 0xB3FC, 0x58FA, 0xB3FD, 0x58FC, 0xDCF2, + 0x58FD, 0xB9D8, 0x58FE, 0xE169, 0x58FF, 0xE553, 0x5903, 0xC95A, + 0x5906, 0xCAB0, 0x590C, 0xCC42, 0x590D, 0xCE60, 0x590E, 0xD159, + 0x590F, 0xAE4C, 0x5912, 0xF1F9, 0x5914, 0xC4DC, 0x5915, 0xA469, + 0x5916, 0xA57E, 0x5917, 0xC970, 0x5919, 0xA667, 0x591A, 0xA668, + 0x591C, 0xA95D, 0x5920, 0xB0F7, 0x5922, 0xB9DA, 0x5924, 0xB9DB, + 0x5925, 0xB9D9, 0x5927, 0xA46A, 0x5929, 0xA4D1, 0x592A, 0xA4D3, + 0x592B, 0xA4D2, 0x592C, 0xC95B, 0x592D, 0xA4D4, 0x592E, 0xA5A1, + 0x592F, 0xC971, 0x5931, 0xA5A2, 0x5937, 0xA669, 0x5938, 0xA66A, + 0x593C, 0xC9CB, 0x593E, 0xA7A8, 0x5940, 0xCAB1, 0x5944, 0xA961, + 0x5945, 0xCC43, 0x5947, 0xA95F, 0x5948, 0xA960, 0x5949, 0xA95E, + 0x594A, 0xD15A, 0x594E, 0xABB6, 0x594F, 0xABB5, 0x5950, 0xABB7, + 0x5951, 0xABB4, 0x5953, 0xCE61, 0x5954, 0xA962, 0x5955, 0xABB3, + 0x5957, 0xAE4D, 0x5958, 0xAE4E, 0x595A, 0xAE4F, 0x595C, 0xD4CD, + 0x5960, 0xB3FE, 0x5961, 0xD8B4, 0x5962, 0xB0F8, 0x5967, 0xB6F8, + 0x5969, 0xB9DD, 0x596A, 0xB9DC, 0x596B, 0xE16A, 0x596D, 0xBC5D, + 0x596E, 0xBEC4, 0x5970, 0xEFC0, 0x5971, 0xF6DA, 0x5972, 0xF7D4, + 0x5973, 0xA46B, 0x5974, 0xA5A3, 0x5976, 0xA5A4, 0x5977, 0xC9D1, + 0x5978, 0xA66C, 0x5979, 0xA66F, 0x597B, 0xC9CF, 0x597C, 0xC9CD, + 0x597D, 0xA66E, 0x597E, 0xC9D0, 0x597F, 0xC9D2, 0x5980, 0xC9CC, + 0x5981, 0xA671, 0x5982, 0xA670, 0x5983, 0xA66D, 0x5984, 0xA66B, + 0x5985, 0xC9CE, 0x598A, 0xA7B3, 0x598D, 0xA7B0, 0x598E, 0xCAB6, + 0x598F, 0xCAB9, 0x5990, 0xCAB8, 0x5992, 0xA7AA, 0x5993, 0xA7B2, + 0x5996, 0xA7AF, 0x5997, 0xCAB5, 0x5998, 0xCAB3, 0x5999, 0xA7AE, + 0x599D, 0xA7A9, 0x599E, 0xA7AC, 0x59A0, 0xCAB4, 0x59A1, 0xCABB, + 0x59A2, 0xCAB7, 0x59A3, 0xA7AD, 0x59A4, 0xA7B1, 0x59A5, 0xA7B4, + 0x59A6, 0xCAB2, 0x59A7, 0xCABA, 0x59A8, 0xA7AB, 0x59AE, 0xA967, + 0x59AF, 0xA96F, 0x59B1, 0xCC4F, 0x59B2, 0xCC48, 0x59B3, 0xA970, + 0x59B4, 0xCC53, 0x59B5, 0xCC44, 0x59B6, 0xCC4B, 0x59B9, 0xA966, + 0x59BA, 0xCC45, 0x59BB, 0xA964, 0x59BC, 0xCC4C, 0x59BD, 0xCC50, + 0x59BE, 0xA963, 0x59C0, 0xCC51, 0x59C1, 0xCC4A, 0x59C3, 0xCC4D, + 0x59C5, 0xA972, 0x59C6, 0xA969, 0x59C7, 0xCC54, 0x59C8, 0xCC52, + 0x59CA, 0xA96E, 0x59CB, 0xA96C, 0x59CC, 0xCC49, 0x59CD, 0xA96B, + 0x59CE, 0xCC47, 0x59CF, 0xCC46, 0x59D0, 0xA96A, 0x59D1, 0xA968, + 0x59D2, 0xA971, 0x59D3, 0xA96D, 0x59D4, 0xA965, 0x59D6, 0xCC4E, + 0x59D8, 0xABB9, 0x59DA, 0xABC0, 0x59DB, 0xCE6F, 0x59DC, 0xABB8, + 0x59DD, 0xCE67, 0x59DE, 0xCE63, 0x59E0, 0xCE73, 0x59E1, 0xCE62, + 0x59E3, 0xABBB, 0x59E4, 0xCE6C, 0x59E5, 0xABBE, 0x59E6, 0xABC1, + 0x59E8, 0xABBC, 0x59E9, 0xCE70, 0x59EA, 0xABBF, 0x59EC, 0xAE56, + 0x59ED, 0xCE76, 0x59EE, 0xCE64, 0x59F1, 0xCE66, 0x59F2, 0xCE6D, + 0x59F3, 0xCE71, 0x59F4, 0xCE75, 0x59F5, 0xCE72, 0x59F6, 0xCE6B, + 0x59F7, 0xCE6E, 0x59FA, 0xCE68, 0x59FB, 0xABC3, 0x59FC, 0xCE6A, + 0x59FD, 0xCE69, 0x59FE, 0xCE74, 0x59FF, 0xABBA, 0x5A00, 0xCE65, + 0x5A01, 0xABC2, 0x5A03, 0xABBD, 0x5A09, 0xAE5C, 0x5A0A, 0xD162, + 0x5A0C, 0xAE5B, 0x5A0F, 0xD160, 0x5A11, 0xAE50, 0x5A13, 0xAE55, + 0x5A15, 0xD15F, 0x5A16, 0xD15C, 0x5A17, 0xD161, 0x5A18, 0xAE51, + 0x5A19, 0xD15B, 0x5A1B, 0xAE54, 0x5A1C, 0xAE52, 0x5A1E, 0xD163, + 0x5A1F, 0xAE53, 0x5A20, 0xAE57, 0x5A23, 0xAE58, 0x5A25, 0xAE5A, + 0x5A29, 0xAE59, 0x5A2D, 0xD15D, 0x5A2E, 0xD15E, 0x5A33, 0xD164, + 0x5A35, 0xD4D4, 0x5A36, 0xB0F9, 0x5A37, 0xD8C2, 0x5A38, 0xD4D3, + 0x5A39, 0xD4E6, 0x5A3C, 0xB140, 0x5A3E, 0xD4E4, 0x5A40, 0xB0FE, + 0x5A41, 0xB0FA, 0x5A42, 0xD4ED, 0x5A43, 0xD4DD, 0x5A44, 0xD4E0, + 0x5A46, 0xB143, 0x5A47, 0xD4EA, 0x5A48, 0xD4E2, 0x5A49, 0xB0FB, + 0x5A4A, 0xB144, 0x5A4C, 0xD4E7, 0x5A4D, 0xD4E5, 0x5A50, 0xD4D6, + 0x5A51, 0xD4EB, 0x5A52, 0xD4DF, 0x5A53, 0xD4DA, 0x5A55, 0xD4D0, + 0x5A56, 0xD4EC, 0x5A57, 0xD4DC, 0x5A58, 0xD4CF, 0x5A5A, 0xB142, + 0x5A5B, 0xD4E1, 0x5A5C, 0xD4EE, 0x5A5D, 0xD4DE, 0x5A5E, 0xD4D2, + 0x5A5F, 0xD4D7, 0x5A60, 0xD4CE, 0x5A62, 0xB141, 0x5A64, 0xD4DB, + 0x5A65, 0xD4D8, 0x5A66, 0xB0FC, 0x5A67, 0xD4D1, 0x5A69, 0xD4E9, + 0x5A6A, 0xB0FD, 0x5A6C, 0xD4D9, 0x5A6D, 0xD4D5, 0x5A70, 0xD4E8, + 0x5A77, 0xB440, 0x5A78, 0xD8BB, 0x5A7A, 0xD8B8, 0x5A7B, 0xD8C9, + 0x5A7C, 0xD8BD, 0x5A7D, 0xD8CA, 0x5A7F, 0xB442, 0x5A83, 0xD8C6, + 0x5A84, 0xD8C3, 0x5A8A, 0xD8C4, 0x5A8B, 0xD8C7, 0x5A8C, 0xD8CB, + 0x5A8E, 0xD4E3, 0x5A8F, 0xD8CD, 0x5A90, 0xDD47, 0x5A92, 0xB443, + 0x5A93, 0xD8CE, 0x5A94, 0xD8B6, 0x5A95, 0xD8C0, 0x5A97, 0xD8C5, + 0x5A9A, 0xB441, 0x5A9B, 0xB444, 0x5A9C, 0xD8CC, 0x5A9D, 0xD8CF, + 0x5A9E, 0xD8BA, 0x5A9F, 0xD8B7, 0x5AA2, 0xD8B9, 0x5AA5, 0xD8BE, + 0x5AA6, 0xD8BC, 0x5AA7, 0xB445, 0x5AA9, 0xD8C8, 0x5AAC, 0xD8BF, + 0x5AAE, 0xD8C1, 0x5AAF, 0xD8B5, 0x5AB0, 0xDCFA, 0x5AB1, 0xDCF8, + 0x5AB2, 0xB742, 0x5AB3, 0xB740, 0x5AB4, 0xDD43, 0x5AB5, 0xDCF9, + 0x5AB6, 0xDD44, 0x5AB7, 0xDD40, 0x5AB8, 0xDCF7, 0x5AB9, 0xDD46, + 0x5ABA, 0xDCF6, 0x5ABB, 0xDCFD, 0x5ABC, 0xB6FE, 0x5ABD, 0xB6FD, + 0x5ABE, 0xB6FC, 0x5ABF, 0xDCFB, 0x5AC0, 0xDD41, 0x5AC1, 0xB6F9, + 0x5AC2, 0xB741, 0x5AC4, 0xDCF4, 0x5AC6, 0xDCFE, 0x5AC7, 0xDCF3, + 0x5AC8, 0xDCFC, 0x5AC9, 0xB6FA, 0x5ACA, 0xDD42, 0x5ACB, 0xDCF5, + 0x5ACC, 0xB6FB, 0x5ACD, 0xDD45, 0x5AD5, 0xE16E, 0x5AD6, 0xB9E2, + 0x5AD7, 0xB9E1, 0x5AD8, 0xB9E3, 0x5AD9, 0xE17A, 0x5ADA, 0xE170, + 0x5ADB, 0xE176, 0x5ADC, 0xE16B, 0x5ADD, 0xE179, 0x5ADE, 0xE178, + 0x5ADF, 0xE17C, 0x5AE0, 0xE175, 0x5AE1, 0xB9DE, 0x5AE2, 0xE174, + 0x5AE3, 0xB9E4, 0x5AE5, 0xE16D, 0x5AE6, 0xB9DF, 0x5AE8, 0xE17B, + 0x5AE9, 0xB9E0, 0x5AEA, 0xE16F, 0x5AEB, 0xE172, 0x5AEC, 0xE177, + 0x5AED, 0xE171, 0x5AEE, 0xE16C, 0x5AF3, 0xE173, 0x5AF4, 0xE555, + 0x5AF5, 0xBC61, 0x5AF6, 0xE558, 0x5AF7, 0xE557, 0x5AF8, 0xE55A, + 0x5AF9, 0xE55C, 0x5AFA, 0xF9DC, 0x5AFB, 0xBC5F, 0x5AFD, 0xE556, + 0x5AFF, 0xE554, 0x5B01, 0xE55D, 0x5B02, 0xE55B, 0x5B03, 0xE559, + 0x5B05, 0xE55F, 0x5B07, 0xE55E, 0x5B08, 0xBC63, 0x5B09, 0xBC5E, + 0x5B0B, 0xBC60, 0x5B0C, 0xBC62, 0x5B0F, 0xE560, 0x5B10, 0xE957, + 0x5B13, 0xE956, 0x5B14, 0xE955, 0x5B16, 0xE958, 0x5B17, 0xE951, + 0x5B19, 0xE952, 0x5B1A, 0xE95A, 0x5B1B, 0xE953, 0x5B1D, 0xBEC5, + 0x5B1E, 0xE95C, 0x5B20, 0xE95B, 0x5B21, 0xE954, 0x5B23, 0xECD1, + 0x5B24, 0xC0A8, 0x5B25, 0xECCF, 0x5B26, 0xECD4, 0x5B27, 0xECD3, + 0x5B28, 0xE959, 0x5B2A, 0xC0A7, 0x5B2C, 0xECD2, 0x5B2D, 0xECCE, + 0x5B2E, 0xECD6, 0x5B2F, 0xECD5, 0x5B30, 0xC0A6, 0x5B32, 0xECD0, + 0x5B34, 0xBEC6, 0x5B38, 0xC254, 0x5B3C, 0xEFC1, 0x5B3D, 0xF1FA, + 0x5B3E, 0xF1FB, 0x5B3F, 0xF1FC, 0x5B40, 0xC45C, 0x5B43, 0xC45D, + 0x5B45, 0xF443, 0x5B47, 0xF5C8, 0x5B48, 0xF5C7, 0x5B4B, 0xF6DB, + 0x5B4C, 0xF6DC, 0x5B4D, 0xF7D5, 0x5B4E, 0xF8A7, 0x5B50, 0xA46C, + 0x5B51, 0xA46D, 0x5B53, 0xA46E, 0x5B54, 0xA4D5, 0x5B55, 0xA5A5, + 0x5B56, 0xC9D3, 0x5B57, 0xA672, 0x5B58, 0xA673, 0x5B5A, 0xA7B7, + 0x5B5B, 0xA7B8, 0x5B5C, 0xA7B6, 0x5B5D, 0xA7B5, 0x5B5F, 0xA973, + 0x5B62, 0xCC55, 0x5B63, 0xA975, 0x5B64, 0xA974, 0x5B65, 0xCC56, + 0x5B69, 0xABC4, 0x5B6B, 0xAE5D, 0x5B6C, 0xD165, 0x5B6E, 0xD4F0, + 0x5B70, 0xB145, 0x5B71, 0xB447, 0x5B72, 0xD4EF, 0x5B73, 0xB446, + 0x5B75, 0xB9E5, 0x5B77, 0xE17D, 0x5B78, 0xBEC7, 0x5B7A, 0xC0A9, + 0x5B7B, 0xECD7, 0x5B7D, 0xC45E, 0x5B7F, 0xC570, 0x5B81, 0xC972, + 0x5B83, 0xA5A6, 0x5B84, 0xC973, 0x5B85, 0xA676, 0x5B87, 0xA674, + 0x5B88, 0xA675, 0x5B89, 0xA677, 0x5B8B, 0xA7BA, 0x5B8C, 0xA7B9, + 0x5B8E, 0xCABC, 0x5B8F, 0xA7BB, 0x5B92, 0xCABD, 0x5B93, 0xCC57, + 0x5B95, 0xCC58, 0x5B97, 0xA976, 0x5B98, 0xA978, 0x5B99, 0xA97A, + 0x5B9A, 0xA977, 0x5B9B, 0xA97B, 0x5B9C, 0xA979, 0x5BA2, 0xABC8, + 0x5BA3, 0xABC5, 0x5BA4, 0xABC7, 0x5BA5, 0xABC9, 0x5BA6, 0xABC6, + 0x5BA7, 0xD166, 0x5BA8, 0xCE77, 0x5BAC, 0xD168, 0x5BAD, 0xD167, + 0x5BAE, 0xAE63, 0x5BB0, 0xAE5F, 0x5BB3, 0xAE60, 0x5BB4, 0xAE62, + 0x5BB5, 0xAE64, 0x5BB6, 0xAE61, 0x5BB8, 0xAE66, 0x5BB9, 0xAE65, + 0x5BBF, 0xB14A, 0x5BC0, 0xD4F2, 0x5BC1, 0xD4F1, 0x5BC2, 0xB149, + 0x5BC4, 0xB148, 0x5BC5, 0xB147, 0x5BC6, 0xB14B, 0x5BC7, 0xB146, + 0x5BCA, 0xD8D5, 0x5BCB, 0xD8D2, 0x5BCC, 0xB449, 0x5BCD, 0xD8D1, + 0x5BCE, 0xD8D6, 0x5BD0, 0xB44B, 0x5BD1, 0xD8D4, 0x5BD2, 0xB448, + 0x5BD3, 0xB44A, 0x5BD4, 0xD8D3, 0x5BD6, 0xDD48, 0x5BD8, 0xDD49, + 0x5BD9, 0xDD4A, 0x5BDE, 0xB9E6, 0x5BDF, 0xB9EE, 0x5BE0, 0xE17E, + 0x5BE1, 0xB9E8, 0x5BE2, 0xB9EC, 0x5BE3, 0xE1A1, 0x5BE4, 0xB9ED, + 0x5BE5, 0xB9E9, 0x5BE6, 0xB9EA, 0x5BE7, 0xB9E7, 0x5BE8, 0xB9EB, + 0x5BE9, 0xBC66, 0x5BEA, 0xD8D0, 0x5BEB, 0xBC67, 0x5BEC, 0xBC65, + 0x5BEE, 0xBC64, 0x5BEF, 0xE95D, 0x5BF0, 0xBEC8, 0x5BF1, 0xECD8, + 0x5BF2, 0xECD9, 0x5BF5, 0xC364, 0x5BF6, 0xC45F, 0x5BF8, 0xA46F, + 0x5BFA, 0xA678, 0x5C01, 0xABCA, 0x5C03, 0xD169, 0x5C04, 0xAE67, + 0x5C07, 0xB14E, 0x5C08, 0xB14D, 0x5C09, 0xB14C, 0x5C0A, 0xB44C, + 0x5C0B, 0xB44D, 0x5C0C, 0xD8D7, 0x5C0D, 0xB9EF, 0x5C0E, 0xBEC9, + 0x5C0F, 0xA470, 0x5C10, 0xC95C, 0x5C11, 0xA4D6, 0x5C12, 0xC974, + 0x5C15, 0xC9D4, 0x5C16, 0xA679, 0x5C1A, 0xA97C, 0x5C1F, 0xDD4B, + 0x5C22, 0xA471, 0x5C24, 0xA4D7, 0x5C25, 0xC9D5, 0x5C28, 0xCABE, + 0x5C2A, 0xCABF, 0x5C2C, 0xA7BC, 0x5C30, 0xD8D8, 0x5C31, 0xB44E, + 0x5C33, 0xDD4C, 0x5C37, 0xC0AA, 0x5C38, 0xA472, 0x5C39, 0xA4A8, + 0x5C3A, 0xA4D8, 0x5C3B, 0xC975, 0x5C3C, 0xA5A7, 0x5C3E, 0xA7C0, + 0x5C3F, 0xA7BF, 0x5C40, 0xA7BD, 0x5C41, 0xA7BE, 0x5C44, 0xCC59, + 0x5C45, 0xA97E, 0x5C46, 0xA9A1, 0x5C47, 0xCC5A, 0x5C48, 0xA97D, + 0x5C4B, 0xABCE, 0x5C4C, 0xCE78, 0x5C4D, 0xABCD, 0x5C4E, 0xABCB, + 0x5C4F, 0xABCC, 0x5C50, 0xAE6A, 0x5C51, 0xAE68, 0x5C54, 0xD16B, + 0x5C55, 0xAE69, 0x5C56, 0xD16A, 0x5C58, 0xAE5E, 0x5C59, 0xD4F3, + 0x5C5C, 0xB150, 0x5C5D, 0xB151, 0x5C60, 0xB14F, 0x5C62, 0xB9F0, + 0x5C63, 0xE1A2, 0x5C64, 0xBC68, 0x5C65, 0xBC69, 0x5C67, 0xE561, + 0x5C68, 0xC0AB, 0x5C69, 0xEFC2, 0x5C6A, 0xEFC3, 0x5C6C, 0xC4DD, + 0x5C6D, 0xF8A8, 0x5C6E, 0xC94B, 0x5C6F, 0xA4D9, 0x5C71, 0xA473, + 0x5C73, 0xC977, 0x5C74, 0xC976, 0x5C79, 0xA67A, 0x5C7A, 0xC9D7, + 0x5C7B, 0xC9D8, 0x5C7C, 0xC9D6, 0x5C7E, 0xC9D9, 0x5C86, 0xCAC7, + 0x5C88, 0xCAC2, 0x5C89, 0xCAC4, 0x5C8A, 0xCAC6, 0x5C8B, 0xCAC3, + 0x5C8C, 0xA7C4, 0x5C8D, 0xCAC0, 0x5C8F, 0xCAC1, 0x5C90, 0xA7C1, + 0x5C91, 0xA7C2, 0x5C92, 0xCAC5, 0x5C93, 0xCAC8, 0x5C94, 0xA7C3, + 0x5C95, 0xCAC9, 0x5C9D, 0xCC68, 0x5C9F, 0xCC62, 0x5CA0, 0xCC5D, + 0x5CA1, 0xA9A3, 0x5CA2, 0xCC65, 0x5CA3, 0xCC63, 0x5CA4, 0xCC5C, + 0x5CA5, 0xCC69, 0x5CA6, 0xCC6C, 0x5CA7, 0xCC67, 0x5CA8, 0xCC60, + 0x5CA9, 0xA9A5, 0x5CAA, 0xCC66, 0x5CAB, 0xA9A6, 0x5CAC, 0xCC61, + 0x5CAD, 0xCC64, 0x5CAE, 0xCC5B, 0x5CAF, 0xCC5F, 0x5CB0, 0xCC6B, + 0x5CB1, 0xA9A7, 0x5CB3, 0xA9A8, 0x5CB5, 0xCC5E, 0x5CB6, 0xCC6A, + 0x5CB7, 0xA9A2, 0x5CB8, 0xA9A4, 0x5CC6, 0xCEAB, 0x5CC7, 0xCEA4, + 0x5CC8, 0xCEAA, 0x5CC9, 0xCEA3, 0x5CCA, 0xCEA5, 0x5CCB, 0xCE7D, + 0x5CCC, 0xCE7B, 0x5CCE, 0xCEAC, 0x5CCF, 0xCEA9, 0x5CD0, 0xCE79, + 0x5CD2, 0xABD0, 0x5CD3, 0xCEA7, 0x5CD4, 0xCEA8, 0x5CD6, 0xCEA6, + 0x5CD7, 0xCE7C, 0x5CD8, 0xCE7A, 0x5CD9, 0xABCF, 0x5CDA, 0xCEA2, + 0x5CDB, 0xCE7E, 0x5CDE, 0xCEA1, 0x5CDF, 0xCEAD, 0x5CE8, 0xAE6F, + 0x5CEA, 0xAE6E, 0x5CEC, 0xD16C, 0x5CED, 0xAE6B, 0x5CEE, 0xD16E, + 0x5CF0, 0xAE70, 0x5CF1, 0xD16F, 0x5CF4, 0xAE73, 0x5CF6, 0xAE71, + 0x5CF7, 0xD170, 0x5CF8, 0xCEAE, 0x5CF9, 0xD172, 0x5CFB, 0xAE6D, + 0x5CFD, 0xAE6C, 0x5CFF, 0xD16D, 0x5D00, 0xD171, 0x5D01, 0xAE72, + 0x5D06, 0xB153, 0x5D07, 0xB152, 0x5D0B, 0xD4F5, 0x5D0C, 0xD4F9, + 0x5D0D, 0xD4FB, 0x5D0E, 0xB154, 0x5D0F, 0xD4FE, 0x5D11, 0xB158, + 0x5D12, 0xD541, 0x5D14, 0xB15A, 0x5D16, 0xB156, 0x5D17, 0xB15E, + 0x5D19, 0xB15B, 0x5D1A, 0xD4F7, 0x5D1B, 0xB155, 0x5D1D, 0xD4F6, + 0x5D1E, 0xD4F4, 0x5D1F, 0xD543, 0x5D20, 0xD4F8, 0x5D22, 0xB157, + 0x5D23, 0xD542, 0x5D24, 0xB15C, 0x5D25, 0xD4FD, 0x5D26, 0xD4FC, + 0x5D27, 0xB15D, 0x5D28, 0xD4FA, 0x5D29, 0xB159, 0x5D2E, 0xD544, + 0x5D30, 0xD540, 0x5D31, 0xD8E7, 0x5D32, 0xD8EE, 0x5D33, 0xD8E3, + 0x5D34, 0xB451, 0x5D35, 0xD8DF, 0x5D36, 0xD8EF, 0x5D37, 0xD8D9, + 0x5D38, 0xD8EC, 0x5D39, 0xD8EA, 0x5D3A, 0xD8E4, 0x5D3C, 0xD8ED, + 0x5D3D, 0xD8E6, 0x5D3F, 0xD8DE, 0x5D40, 0xD8F0, 0x5D41, 0xD8DC, + 0x5D42, 0xD8E9, 0x5D43, 0xD8DA, 0x5D45, 0xD8F1, 0x5D47, 0xB452, + 0x5D49, 0xD8EB, 0x5D4A, 0xDD4F, 0x5D4B, 0xD8DD, 0x5D4C, 0xB44F, + 0x5D4E, 0xD8E1, 0x5D50, 0xB450, 0x5D51, 0xD8E0, 0x5D52, 0xD8E5, + 0x5D55, 0xD8E2, 0x5D59, 0xD8E8, 0x5D5E, 0xDD53, 0x5D62, 0xDD56, + 0x5D63, 0xDD4E, 0x5D65, 0xDD50, 0x5D67, 0xDD55, 0x5D68, 0xDD54, + 0x5D69, 0xB743, 0x5D6B, 0xD8DB, 0x5D6C, 0xDD52, 0x5D6F, 0xB744, + 0x5D71, 0xDD4D, 0x5D72, 0xDD51, 0x5D77, 0xE1A9, 0x5D79, 0xE1B0, + 0x5D7A, 0xE1A7, 0x5D7C, 0xE1AE, 0x5D7D, 0xE1A5, 0x5D7E, 0xE1AD, + 0x5D7F, 0xE1B1, 0x5D80, 0xE1A4, 0x5D81, 0xE1A8, 0x5D82, 0xE1A3, + 0x5D84, 0xB9F1, 0x5D86, 0xE1A6, 0x5D87, 0xB9F2, 0x5D88, 0xE1AC, + 0x5D89, 0xE1AB, 0x5D8A, 0xE1AA, 0x5D8D, 0xE1AF, 0x5D92, 0xE565, + 0x5D93, 0xE567, 0x5D94, 0xBC6B, 0x5D95, 0xE568, 0x5D97, 0xE563, + 0x5D99, 0xE562, 0x5D9A, 0xE56C, 0x5D9C, 0xE56A, 0x5D9D, 0xBC6A, + 0x5D9E, 0xE56D, 0x5D9F, 0xE564, 0x5DA0, 0xE569, 0x5DA1, 0xE56B, + 0x5DA2, 0xE566, 0x5DA7, 0xE961, 0x5DA8, 0xE966, 0x5DA9, 0xE960, + 0x5DAA, 0xE965, 0x5DAC, 0xE95E, 0x5DAD, 0xE968, 0x5DAE, 0xE964, + 0x5DAF, 0xE969, 0x5DB0, 0xE963, 0x5DB1, 0xE95F, 0x5DB2, 0xE967, + 0x5DB4, 0xE96A, 0x5DB5, 0xE962, 0x5DB7, 0xECDA, 0x5DB8, 0xC0AF, + 0x5DBA, 0xC0AD, 0x5DBC, 0xC0AC, 0x5DBD, 0xC0AE, 0x5DC0, 0xEFC4, + 0x5DC2, 0xF172, 0x5DC3, 0xF1FD, 0x5DC6, 0xF444, 0x5DC7, 0xF445, + 0x5DC9, 0xC460, 0x5DCB, 0xF5C9, 0x5DCD, 0xC4DE, 0x5DCF, 0xF5CA, + 0x5DD1, 0xF6DE, 0x5DD2, 0xC572, 0x5DD4, 0xC571, 0x5DD5, 0xF6DD, + 0x5DD6, 0xC5C9, 0x5DD8, 0xF7D6, 0x5DDD, 0xA474, 0x5DDE, 0xA67B, + 0x5DDF, 0xC9DA, 0x5DE0, 0xCACA, 0x5DE1, 0xA8B5, 0x5DE2, 0xB15F, + 0x5DE5, 0xA475, 0x5DE6, 0xA5AA, 0x5DE7, 0xA5A9, 0x5DE8, 0xA5A8, + 0x5DEB, 0xA7C5, 0x5DEE, 0xAE74, 0x5DF0, 0xDD57, 0x5DF1, 0xA476, + 0x5DF2, 0xA477, 0x5DF3, 0xA478, 0x5DF4, 0xA4DA, 0x5DF7, 0xABD1, + 0x5DF9, 0xCEAF, 0x5DFD, 0xB453, 0x5DFE, 0xA479, 0x5DFF, 0xC95D, + 0x5E02, 0xA5AB, 0x5E03, 0xA5AC, 0x5E04, 0xC978, 0x5E06, 0xA67C, + 0x5E0A, 0xCACB, 0x5E0C, 0xA7C6, 0x5E0E, 0xCACC, 0x5E11, 0xA9AE, + 0x5E14, 0xCC6E, 0x5E15, 0xA9AC, 0x5E16, 0xA9AB, 0x5E17, 0xCC6D, + 0x5E18, 0xA9A9, 0x5E19, 0xCC6F, 0x5E1A, 0xA9AA, 0x5E1B, 0xA9AD, + 0x5E1D, 0xABD2, 0x5E1F, 0xABD4, 0x5E20, 0xCEB3, 0x5E21, 0xCEB0, + 0x5E22, 0xCEB1, 0x5E23, 0xCEB2, 0x5E24, 0xCEB4, 0x5E25, 0xABD3, + 0x5E28, 0xD174, 0x5E29, 0xD173, 0x5E2B, 0xAE76, 0x5E2D, 0xAE75, + 0x5E33, 0xB162, 0x5E34, 0xD546, 0x5E36, 0xB161, 0x5E37, 0xB163, + 0x5E38, 0xB160, 0x5E3D, 0xB455, 0x5E3E, 0xD545, 0x5E40, 0xB456, + 0x5E41, 0xD8F3, 0x5E43, 0xB457, 0x5E44, 0xD8F2, 0x5E45, 0xB454, + 0x5E4A, 0xDD5A, 0x5E4B, 0xDD5C, 0x5E4C, 0xB745, 0x5E4D, 0xDD5B, + 0x5E4E, 0xDD59, 0x5E4F, 0xDD58, 0x5E53, 0xE1B4, 0x5E54, 0xB9F7, + 0x5E55, 0xB9F5, 0x5E57, 0xB9F6, 0x5E58, 0xE1B2, 0x5E59, 0xE1B3, + 0x5E5B, 0xB9F3, 0x5E5C, 0xE571, 0x5E5D, 0xE56F, 0x5E5F, 0xBC6D, + 0x5E60, 0xE570, 0x5E61, 0xBC6E, 0x5E62, 0xBC6C, 0x5E63, 0xB9F4, + 0x5E66, 0xE96D, 0x5E67, 0xE96B, 0x5E68, 0xE96C, 0x5E69, 0xE56E, + 0x5E6A, 0xECDC, 0x5E6B, 0xC0B0, 0x5E6C, 0xECDB, 0x5E6D, 0xEFC5, + 0x5E6E, 0xEFC6, 0x5E6F, 0xE96E, 0x5E70, 0xF1FE, 0x5E72, 0xA47A, + 0x5E73, 0xA5AD, 0x5E74, 0xA67E, 0x5E75, 0xC9DB, 0x5E76, 0xA67D, + 0x5E78, 0xA9AF, 0x5E79, 0xB746, 0x5E7B, 0xA4DB, 0x5E7C, 0xA5AE, + 0x5E7D, 0xABD5, 0x5E7E, 0xB458, 0x5E80, 0xC979, 0x5E82, 0xC97A, + 0x5E84, 0xC9DC, 0x5E87, 0xA7C8, 0x5E88, 0xCAD0, 0x5E89, 0xCACE, + 0x5E8A, 0xA7C9, 0x5E8B, 0xCACD, 0x5E8C, 0xCACF, 0x5E8D, 0xCAD1, + 0x5E8F, 0xA7C7, 0x5E95, 0xA9B3, 0x5E96, 0xA9B4, 0x5E97, 0xA9B1, + 0x5E9A, 0xA9B0, 0x5E9B, 0xCEB8, 0x5E9C, 0xA9B2, 0x5EA0, 0xABD6, + 0x5EA2, 0xCEB7, 0x5EA3, 0xCEB9, 0x5EA4, 0xCEB6, 0x5EA5, 0xCEBA, + 0x5EA6, 0xABD7, 0x5EA7, 0xAE79, 0x5EA8, 0xD175, 0x5EAA, 0xD177, + 0x5EAB, 0xAE77, 0x5EAC, 0xD178, 0x5EAD, 0xAE78, 0x5EAE, 0xD176, + 0x5EB0, 0xCEB5, 0x5EB1, 0xD547, 0x5EB2, 0xD54A, 0x5EB3, 0xD54B, + 0x5EB4, 0xD548, 0x5EB5, 0xB167, 0x5EB6, 0xB166, 0x5EB7, 0xB164, + 0x5EB8, 0xB165, 0x5EB9, 0xD549, 0x5EBE, 0xB168, 0x5EC1, 0xB45A, + 0x5EC2, 0xB45B, 0x5EC4, 0xB45C, 0x5EC5, 0xDD5D, 0x5EC6, 0xDD5F, + 0x5EC7, 0xDD61, 0x5EC8, 0xB748, 0x5EC9, 0xB747, 0x5ECA, 0xB459, + 0x5ECB, 0xDD60, 0x5ECC, 0xDD5E, 0x5ECE, 0xE1B8, 0x5ED1, 0xE1B6, + 0x5ED2, 0xE1BC, 0x5ED3, 0xB9F8, 0x5ED4, 0xE1BD, 0x5ED5, 0xE1BA, + 0x5ED6, 0xB9F9, 0x5ED7, 0xE1B7, 0x5ED8, 0xE1B5, 0x5ED9, 0xE1BB, + 0x5EDA, 0xBC70, 0x5EDB, 0xE573, 0x5EDC, 0xE1B9, 0x5EDD, 0xBC72, + 0x5EDE, 0xE574, 0x5EDF, 0xBC71, 0x5EE0, 0xBC74, 0x5EE1, 0xE575, + 0x5EE2, 0xBC6F, 0x5EE3, 0xBC73, 0x5EE5, 0xE973, 0x5EE6, 0xE971, + 0x5EE7, 0xE970, 0x5EE8, 0xE972, 0x5EE9, 0xE96F, 0x5EEC, 0xC366, + 0x5EEE, 0xF446, 0x5EEF, 0xF447, 0x5EF1, 0xF5CB, 0x5EF2, 0xF6DF, + 0x5EF3, 0xC655, 0x5EF6, 0xA9B5, 0x5EF7, 0xA7CA, 0x5EFA, 0xABD8, + 0x5EFE, 0xA47B, 0x5EFF, 0xA4DC, 0x5F01, 0xA5AF, 0x5F02, 0xC9DD, + 0x5F04, 0xA7CB, 0x5F05, 0xCAD2, 0x5F07, 0xCEBB, 0x5F08, 0xABD9, + 0x5F0A, 0xB9FA, 0x5F0B, 0xA47C, 0x5F0F, 0xA6A1, 0x5F12, 0xB749, + 0x5F13, 0xA47D, 0x5F14, 0xA4DD, 0x5F15, 0xA4DE, 0x5F17, 0xA5B1, + 0x5F18, 0xA5B0, 0x5F1A, 0xC9DE, 0x5F1B, 0xA6A2, 0x5F1D, 0xCAD3, + 0x5F1F, 0xA7CC, 0x5F22, 0xCC71, 0x5F23, 0xCC72, 0x5F24, 0xCC73, + 0x5F26, 0xA9B6, 0x5F27, 0xA9B7, 0x5F28, 0xCC70, 0x5F29, 0xA9B8, + 0x5F2D, 0xABDA, 0x5F2E, 0xCEBC, 0x5F30, 0xD17A, 0x5F31, 0xAE7A, + 0x5F33, 0xD179, 0x5F35, 0xB169, 0x5F36, 0xD54C, 0x5F37, 0xB16A, + 0x5F38, 0xD54D, 0x5F3C, 0xB45D, 0x5F40, 0xDD62, 0x5F43, 0xE1BF, + 0x5F44, 0xE1BE, 0x5F46, 0xB9FB, 0x5F48, 0xBC75, 0x5F49, 0xE576, + 0x5F4A, 0xBECA, 0x5F4B, 0xE974, 0x5F4C, 0xC0B1, 0x5F4E, 0xC573, + 0x5F4F, 0xF7D8, 0x5F54, 0xCC74, 0x5F56, 0xCEBD, 0x5F57, 0xB16B, + 0x5F58, 0xD8F4, 0x5F59, 0xB74A, 0x5F5D, 0xC255, 0x5F62, 0xA7CE, + 0x5F64, 0xA7CD, 0x5F65, 0xABDB, 0x5F67, 0xD17B, 0x5F69, 0xB16D, + 0x5F6A, 0xB343, 0x5F6B, 0xB16E, 0x5F6C, 0xB16C, 0x5F6D, 0xB45E, + 0x5F6F, 0xE1C0, 0x5F70, 0xB9FC, 0x5F71, 0xBC76, 0x5F73, 0xC94C, + 0x5F74, 0xC9DF, 0x5F76, 0xCAD5, 0x5F77, 0xA7CF, 0x5F78, 0xCAD4, + 0x5F79, 0xA7D0, 0x5F7C, 0xA9BC, 0x5F7D, 0xCC77, 0x5F7E, 0xCC76, + 0x5F7F, 0xA9BB, 0x5F80, 0xA9B9, 0x5F81, 0xA9BA, 0x5F82, 0xCC75, + 0x5F85, 0xABDD, 0x5F86, 0xCEBE, 0x5F87, 0xABE0, 0x5F88, 0xABDC, + 0x5F89, 0xABE2, 0x5F8A, 0xABDE, 0x5F8B, 0xABDF, 0x5F8C, 0xABE1, + 0x5F90, 0xAE7D, 0x5F91, 0xAE7C, 0x5F92, 0xAE7B, 0x5F96, 0xD54F, + 0x5F97, 0xB16F, 0x5F98, 0xB172, 0x5F99, 0xB170, 0x5F9B, 0xD54E, + 0x5F9C, 0xB175, 0x5F9E, 0xB171, 0x5F9F, 0xD550, 0x5FA0, 0xB174, + 0x5FA1, 0xB173, 0x5FA5, 0xD8F6, 0x5FA6, 0xD8F5, 0x5FA8, 0xB461, + 0x5FA9, 0xB45F, 0x5FAA, 0xB460, 0x5FAB, 0xD8F7, 0x5FAC, 0xB74B, + 0x5FAD, 0xDD64, 0x5FAE, 0xB74C, 0x5FAF, 0xDD63, 0x5FB2, 0xE577, + 0x5FB5, 0xBC78, 0x5FB6, 0xE1C1, 0x5FB7, 0xBC77, 0x5FB9, 0xB9FD, + 0x5FBB, 0xECDE, 0x5FBC, 0xE975, 0x5FBD, 0xC0B2, 0x5FBE, 0xECDD, + 0x5FBF, 0xF240, 0x5FC0, 0xF448, 0x5FC1, 0xF449, 0x5FC3, 0xA4DF, + 0x5FC5, 0xA5B2, 0x5FC9, 0xC97B, 0x5FCC, 0xA7D2, 0x5FCD, 0xA7D4, + 0x5FCF, 0xC9E2, 0x5FD0, 0xCAD8, 0x5FD1, 0xCAD7, 0x5FD2, 0xCAD6, + 0x5FD4, 0xC9E1, 0x5FD5, 0xC9E0, 0x5FD6, 0xA6A4, 0x5FD7, 0xA7D3, + 0x5FD8, 0xA7D1, 0x5FD9, 0xA6A3, 0x5FDD, 0xA9BD, 0x5FDE, 0xCC78, + 0x5FE0, 0xA9BE, 0x5FE1, 0xCADD, 0x5FE3, 0xCADF, 0x5FE4, 0xCADE, + 0x5FE5, 0xCC79, 0x5FE8, 0xCADA, 0x5FEA, 0xA7D8, 0x5FEB, 0xA7D6, + 0x5FED, 0xCAD9, 0x5FEE, 0xCADB, 0x5FEF, 0xCAE1, 0x5FF1, 0xA7D5, + 0x5FF3, 0xCADC, 0x5FF4, 0xCAE5, 0x5FF5, 0xA9C0, 0x5FF7, 0xCAE2, + 0x5FF8, 0xA7D7, 0x5FFA, 0xCAE0, 0x5FFB, 0xCAE3, 0x5FFD, 0xA9BF, + 0x5FFF, 0xA9C1, 0x6000, 0xCAE4, 0x6009, 0xCCAF, 0x600A, 0xCCA2, + 0x600B, 0xCC7E, 0x600C, 0xCCAE, 0x600D, 0xCCA9, 0x600E, 0xABE7, + 0x600F, 0xA9C2, 0x6010, 0xCCAA, 0x6011, 0xCCAD, 0x6012, 0xABE3, + 0x6013, 0xCCAC, 0x6014, 0xA9C3, 0x6015, 0xA9C8, 0x6016, 0xA9C6, + 0x6017, 0xCCA3, 0x6019, 0xCC7C, 0x601A, 0xCCA5, 0x601B, 0xA9CD, + 0x601C, 0xCCB0, 0x601D, 0xABE4, 0x601E, 0xCCA6, 0x6020, 0xABE5, + 0x6021, 0xA9C9, 0x6022, 0xCCA8, 0x6024, 0xCECD, 0x6025, 0xABE6, + 0x6026, 0xCC7B, 0x6027, 0xA9CA, 0x6028, 0xABE8, 0x6029, 0xA9CB, + 0x602A, 0xA9C7, 0x602B, 0xA9CC, 0x602C, 0xCCA7, 0x602D, 0xCC7A, + 0x602E, 0xCCAB, 0x602F, 0xA9C4, 0x6032, 0xCC7D, 0x6033, 0xCCA4, + 0x6034, 0xCCA1, 0x6035, 0xA9C5, 0x6037, 0xCEBF, 0x6039, 0xCEC0, + 0x6040, 0xCECA, 0x6041, 0xD1A1, 0x6042, 0xCECB, 0x6043, 0xABEE, + 0x6044, 0xCECE, 0x6045, 0xCEC4, 0x6046, 0xABED, 0x6047, 0xCEC6, + 0x6049, 0xCEC7, 0x604C, 0xCEC9, 0x604D, 0xABE9, 0x6050, 0xAEA3, + 0x6052, 0xF9DA, 0x6053, 0xCEC5, 0x6054, 0xCEC1, 0x6055, 0xAEA4, + 0x6058, 0xCECF, 0x6059, 0xAE7E, 0x605A, 0xD17D, 0x605B, 0xCEC8, + 0x605D, 0xD17C, 0x605E, 0xCEC3, 0x605F, 0xCECC, 0x6062, 0xABEC, + 0x6063, 0xAEA1, 0x6064, 0xABF2, 0x6065, 0xAEA2, 0x6066, 0xCED0, + 0x6067, 0xD17E, 0x6068, 0xABEB, 0x6069, 0xAEA6, 0x606A, 0xABF1, + 0x606B, 0xABF0, 0x606C, 0xABEF, 0x606D, 0xAEA5, 0x606E, 0xCED1, + 0x606F, 0xAEA7, 0x6070, 0xABEA, 0x6072, 0xCEC2, 0x607F, 0xB176, + 0x6080, 0xD1A4, 0x6081, 0xD1A6, 0x6083, 0xD1A8, 0x6084, 0xAEA8, + 0x6085, 0xAEAE, 0x6086, 0xD553, 0x6087, 0xD1AC, 0x6088, 0xD1A3, + 0x6089, 0xB178, 0x608A, 0xD551, 0x608C, 0xAEAD, 0x608D, 0xAEAB, + 0x608E, 0xD1AE, 0x6090, 0xD552, 0x6092, 0xD1A5, 0x6094, 0xAEAC, + 0x6095, 0xD1A9, 0x6096, 0xAEAF, 0x6097, 0xD1AB, 0x609A, 0xAEAA, + 0x609B, 0xD1AA, 0x609C, 0xD1AD, 0x609D, 0xD1A7, 0x609F, 0xAEA9, + 0x60A0, 0xB179, 0x60A2, 0xD1A2, 0x60A3, 0xB177, 0x60A8, 0xB17A, + 0x60B0, 0xD555, 0x60B1, 0xD55E, 0x60B2, 0xB464, 0x60B4, 0xB17C, + 0x60B5, 0xB1A3, 0x60B6, 0xB465, 0x60B7, 0xD560, 0x60B8, 0xB1AA, + 0x60B9, 0xD8F9, 0x60BA, 0xD556, 0x60BB, 0xB1A2, 0x60BC, 0xB1A5, + 0x60BD, 0xB17E, 0x60BE, 0xD554, 0x60BF, 0xD562, 0x60C0, 0xD565, + 0x60C1, 0xD949, 0x60C3, 0xD563, 0x60C4, 0xD8FD, 0x60C5, 0xB1A1, + 0x60C6, 0xB1A8, 0x60C7, 0xB1AC, 0x60C8, 0xD55D, 0x60C9, 0xD8F8, + 0x60CA, 0xD561, 0x60CB, 0xB17B, 0x60CC, 0xD8FA, 0x60CD, 0xD564, + 0x60CE, 0xD8FC, 0x60CF, 0xD559, 0x60D1, 0xB462, 0x60D3, 0xD557, + 0x60D4, 0xD558, 0x60D5, 0xB1A7, 0x60D8, 0xB1A6, 0x60D9, 0xD55B, + 0x60DA, 0xB1AB, 0x60DB, 0xD55F, 0x60DC, 0xB1A4, 0x60DD, 0xD55C, + 0x60DF, 0xB1A9, 0x60E0, 0xB466, 0x60E1, 0xB463, 0x60E2, 0xD8FB, + 0x60E4, 0xD55A, 0x60E6, 0xB17D, 0x60F0, 0xB46B, 0x60F1, 0xB46F, + 0x60F2, 0xD940, 0x60F3, 0xB751, 0x60F4, 0xB46D, 0x60F5, 0xD944, + 0x60F6, 0xB471, 0x60F7, 0xDD65, 0x60F8, 0xD946, 0x60F9, 0xB753, + 0x60FA, 0xB469, 0x60FB, 0xB46C, 0x60FC, 0xD947, 0x60FE, 0xD948, + 0x60FF, 0xD94E, 0x6100, 0xB473, 0x6101, 0xB754, 0x6103, 0xD94A, + 0x6104, 0xD94F, 0x6105, 0xD943, 0x6106, 0xB75E, 0x6108, 0xB755, + 0x6109, 0xB472, 0x610A, 0xD941, 0x610B, 0xD950, 0x610D, 0xB75D, + 0x610E, 0xB470, 0x610F, 0xB74E, 0x6110, 0xD94D, 0x6112, 0xB474, + 0x6113, 0xD945, 0x6114, 0xD8FE, 0x6115, 0xB46A, 0x6116, 0xD942, + 0x6118, 0xD94B, 0x611A, 0xB74D, 0x611B, 0xB752, 0x611C, 0xB467, + 0x611D, 0xD94C, 0x611F, 0xB750, 0x6123, 0xB468, 0x6127, 0xB75C, + 0x6128, 0xE1C3, 0x6129, 0xDD70, 0x612B, 0xDD68, 0x612C, 0xE1C2, + 0x612E, 0xDD6C, 0x612F, 0xDD6E, 0x6132, 0xDD6B, 0x6134, 0xB75B, + 0x6136, 0xDD6A, 0x6137, 0xB75F, 0x613B, 0xE1D2, 0x613E, 0xB75A, + 0x613F, 0xBA40, 0x6140, 0xDD71, 0x6141, 0xE1C4, 0x6144, 0xB758, + 0x6145, 0xDD69, 0x6146, 0xDD6D, 0x6147, 0xB9FE, 0x6148, 0xB74F, + 0x6149, 0xDD66, 0x614A, 0xDD67, 0x614B, 0xBA41, 0x614C, 0xB757, + 0x614D, 0xB759, 0x614E, 0xB756, 0x614F, 0xDD6F, 0x6152, 0xE1C8, + 0x6153, 0xE1C9, 0x6154, 0xE1CE, 0x6155, 0xBC7D, 0x6156, 0xE1D5, + 0x6158, 0xBA47, 0x615A, 0xBA46, 0x615B, 0xE1D0, 0x615D, 0xBC7C, + 0x615E, 0xE1C5, 0x615F, 0xBA45, 0x6161, 0xE1D4, 0x6162, 0xBA43, + 0x6163, 0xBA44, 0x6165, 0xE1D1, 0x6166, 0xE5AA, 0x6167, 0xBC7A, + 0x6168, 0xB46E, 0x616A, 0xE1D3, 0x616B, 0xBCA3, 0x616C, 0xE1CB, + 0x616E, 0xBC7B, 0x6170, 0xBCA2, 0x6171, 0xE1C6, 0x6172, 0xE1CA, + 0x6173, 0xE1C7, 0x6174, 0xE1CD, 0x6175, 0xBA48, 0x6176, 0xBC79, + 0x6177, 0xBA42, 0x6179, 0xE57A, 0x617A, 0xE1CF, 0x617C, 0xBCA1, + 0x617E, 0xBCA4, 0x6180, 0xE1CC, 0x6182, 0xBC7E, 0x6183, 0xE579, + 0x6189, 0xE57E, 0x618A, 0xBECE, 0x618B, 0xE578, 0x618C, 0xE9A3, + 0x618D, 0xE5A9, 0x618E, 0xBCA8, 0x6190, 0xBCA6, 0x6191, 0xBECC, + 0x6192, 0xE5A6, 0x6193, 0xE5A2, 0x6194, 0xBCAC, 0x6196, 0xE978, + 0x619A, 0xBCAA, 0x619B, 0xE5A1, 0x619D, 0xE976, 0x619F, 0xE5A5, + 0x61A1, 0xE5A8, 0x61A2, 0xE57D, 0x61A4, 0xBCAB, 0x61A7, 0xBCA5, + 0x61A8, 0xE977, 0x61A9, 0xBECD, 0x61AA, 0xE5A7, 0x61AB, 0xBCA7, + 0x61AC, 0xBCA9, 0x61AD, 0xE5A4, 0x61AE, 0xBCAD, 0x61AF, 0xE5A3, + 0x61B0, 0xE57C, 0x61B1, 0xE57B, 0x61B2, 0xBECB, 0x61B3, 0xE5AB, + 0x61B4, 0xE97A, 0x61B5, 0xECE0, 0x61B6, 0xBED0, 0x61B8, 0xE9A2, + 0x61BA, 0xE97E, 0x61BC, 0xECE1, 0x61BE, 0xBED1, 0x61BF, 0xE9A1, + 0x61C1, 0xE97C, 0x61C2, 0xC0B4, 0x61C3, 0xECDF, 0x61C5, 0xE979, + 0x61C6, 0xE97B, 0x61C7, 0xC0B5, 0x61C8, 0xBED3, 0x61C9, 0xC0B3, + 0x61CA, 0xBED2, 0x61CB, 0xC0B7, 0x61CC, 0xE97D, 0x61CD, 0xBECF, + 0x61D6, 0xEFCF, 0x61D8, 0xEFC7, 0x61DE, 0xECE7, 0x61DF, 0xEFC8, + 0x61E0, 0xECE3, 0x61E3, 0xC256, 0x61E4, 0xECE5, 0x61E5, 0xECE4, + 0x61E6, 0xC0B6, 0x61E7, 0xECE2, 0x61E8, 0xECE6, 0x61E9, 0xEFD0, + 0x61EA, 0xEFCC, 0x61EB, 0xEFCE, 0x61ED, 0xEFC9, 0x61EE, 0xEFCA, + 0x61F0, 0xEFCD, 0x61F1, 0xEFCB, 0x61F2, 0xC367, 0x61F5, 0xC36A, + 0x61F6, 0xC369, 0x61F7, 0xC368, 0x61F8, 0xC461, 0x61F9, 0xF44A, + 0x61FA, 0xC462, 0x61FB, 0xF241, 0x61FC, 0xC4DF, 0x61FD, 0xF5CC, + 0x61FE, 0xC4E0, 0x61FF, 0xC574, 0x6200, 0xC5CA, 0x6201, 0xF7D9, + 0x6203, 0xF7DA, 0x6204, 0xF7DB, 0x6207, 0xF9BA, 0x6208, 0xA4E0, + 0x6209, 0xC97C, 0x620A, 0xA5B3, 0x620C, 0xA6A6, 0x620D, 0xA6A7, + 0x620E, 0xA6A5, 0x6210, 0xA6A8, 0x6211, 0xA7DA, 0x6212, 0xA7D9, + 0x6214, 0xCCB1, 0x6215, 0xA9CF, 0x6216, 0xA9CE, 0x6219, 0xD1AF, + 0x621A, 0xB1AD, 0x621B, 0xB1AE, 0x621F, 0xB475, 0x6220, 0xDD72, + 0x6221, 0xB760, 0x6222, 0xB761, 0x6223, 0xDD74, 0x6224, 0xDD76, + 0x6225, 0xDD75, 0x6227, 0xE1D7, 0x6229, 0xE1D6, 0x622A, 0xBA49, + 0x622B, 0xE1D8, 0x622D, 0xE5AC, 0x622E, 0xBCAE, 0x6230, 0xBED4, + 0x6232, 0xC0B8, 0x6233, 0xC257, 0x6234, 0xC0B9, 0x6236, 0xA4E1, + 0x623A, 0xCAE6, 0x623D, 0xCCB2, 0x623E, 0xA9D1, 0x623F, 0xA9D0, + 0x6240, 0xA9D2, 0x6241, 0xABF3, 0x6242, 0xCED2, 0x6243, 0xCED3, + 0x6246, 0xD1B0, 0x6247, 0xAEB0, 0x6248, 0xB1AF, 0x6249, 0xB476, + 0x624A, 0xD951, 0x624B, 0xA4E2, 0x624D, 0xA47E, 0x624E, 0xA4E3, + 0x6250, 0xC97D, 0x6251, 0xA5B7, 0x6252, 0xA5B6, 0x6253, 0xA5B4, + 0x6254, 0xA5B5, 0x6258, 0xA6AB, 0x6259, 0xC9E9, 0x625A, 0xC9EB, + 0x625B, 0xA6AA, 0x625C, 0xC9E3, 0x625E, 0xC9E4, 0x6260, 0xC9EA, + 0x6261, 0xC9E6, 0x6262, 0xC9E8, 0x6263, 0xA6A9, 0x6264, 0xC9E5, + 0x6265, 0xC9EC, 0x6266, 0xC9E7, 0x626D, 0xA7E1, 0x626E, 0xA7EA, + 0x626F, 0xA7E8, 0x6270, 0xCAF0, 0x6271, 0xCAED, 0x6272, 0xCAF5, + 0x6273, 0xA7E6, 0x6274, 0xCAF6, 0x6276, 0xA7DF, 0x6277, 0xCAF3, + 0x6279, 0xA7E5, 0x627A, 0xCAEF, 0x627B, 0xCAEE, 0x627C, 0xA7E3, + 0x627D, 0xCAF4, 0x627E, 0xA7E4, 0x627F, 0xA9D3, 0x6280, 0xA7DE, + 0x6281, 0xCAF1, 0x6283, 0xCAE7, 0x6284, 0xA7DB, 0x6286, 0xA7EE, + 0x6287, 0xCAEC, 0x6288, 0xCAF2, 0x6289, 0xA7E0, 0x628A, 0xA7E2, + 0x628C, 0xCAE8, 0x628E, 0xCAE9, 0x628F, 0xCAEA, 0x6291, 0xA7ED, + 0x6292, 0xA7E7, 0x6293, 0xA7EC, 0x6294, 0xCAEB, 0x6295, 0xA7EB, + 0x6296, 0xA7DD, 0x6297, 0xA7DC, 0x6298, 0xA7E9, 0x62A8, 0xA9E1, + 0x62A9, 0xCCBE, 0x62AA, 0xCCB7, 0x62AB, 0xA9DC, 0x62AC, 0xA9EF, + 0x62AD, 0xCCB3, 0x62AE, 0xCCBA, 0x62AF, 0xCCBC, 0x62B0, 0xCCBF, + 0x62B1, 0xA9EA, 0x62B3, 0xCCBB, 0x62B4, 0xCCB4, 0x62B5, 0xA9E8, + 0x62B6, 0xCCB8, 0x62B8, 0xCCC0, 0x62B9, 0xA9D9, 0x62BB, 0xCCBD, + 0x62BC, 0xA9E3, 0x62BD, 0xA9E2, 0x62BE, 0xCCB6, 0x62BF, 0xA9D7, + 0x62C2, 0xA9D8, 0x62C4, 0xA9D6, 0x62C6, 0xA9EE, 0x62C7, 0xA9E6, + 0x62C8, 0xA9E0, 0x62C9, 0xA9D4, 0x62CA, 0xCCB9, 0x62CB, 0xA9DF, + 0x62CC, 0xA9D5, 0x62CD, 0xA9E7, 0x62CE, 0xA9F0, 0x62CF, 0xCED4, + 0x62D0, 0xA9E4, 0x62D1, 0xCCB5, 0x62D2, 0xA9DA, 0x62D3, 0xA9DD, + 0x62D4, 0xA9DE, 0x62D6, 0xA9EC, 0x62D7, 0xA9ED, 0x62D8, 0xA9EB, + 0x62D9, 0xA9E5, 0x62DA, 0xA9E9, 0x62DB, 0xA9DB, 0x62DC, 0xABF4, + 0x62EB, 0xCEDA, 0x62EC, 0xAC41, 0x62ED, 0xABF8, 0x62EE, 0xABFA, + 0x62EF, 0xAC40, 0x62F0, 0xCEE6, 0x62F1, 0xABFD, 0x62F2, 0xD1B1, + 0x62F3, 0xAEB1, 0x62F4, 0xAC43, 0x62F5, 0xCED7, 0x62F6, 0xCEDF, + 0x62F7, 0xABFE, 0x62F8, 0xCEDE, 0x62F9, 0xCEDB, 0x62FA, 0xCEE3, + 0x62FB, 0xCEE5, 0x62FC, 0xABF7, 0x62FD, 0xABFB, 0x62FE, 0xAC42, + 0x62FF, 0xAEB3, 0x6300, 0xCEE0, 0x6301, 0xABF9, 0x6302, 0xAC45, + 0x6303, 0xCED9, 0x6307, 0xABFC, 0x6308, 0xAEB2, 0x6309, 0xABF6, + 0x630B, 0xCED6, 0x630C, 0xCEDD, 0x630D, 0xCED5, 0x630E, 0xCED8, + 0x630F, 0xCEDC, 0x6310, 0xD1B2, 0x6311, 0xAC44, 0x6313, 0xCEE1, + 0x6314, 0xCEE2, 0x6315, 0xCEE4, 0x6316, 0xABF5, 0x6328, 0xAEC1, + 0x6329, 0xD1BE, 0x632A, 0xAEBF, 0x632B, 0xAEC0, 0x632C, 0xD1B4, + 0x632D, 0xD1C4, 0x632F, 0xAEB6, 0x6332, 0xD566, 0x6333, 0xD1C6, + 0x6334, 0xD1C0, 0x6336, 0xD1B7, 0x6338, 0xD1C9, 0x6339, 0xD1BA, + 0x633A, 0xAEBC, 0x633B, 0xD57D, 0x633C, 0xD1BD, 0x633D, 0xAEBE, + 0x633E, 0xAEB5, 0x6340, 0xD1CB, 0x6341, 0xD1BF, 0x6342, 0xAEB8, + 0x6343, 0xD1B8, 0x6344, 0xD1B5, 0x6345, 0xD1B6, 0x6346, 0xAEB9, + 0x6347, 0xD1C5, 0x6348, 0xD1CC, 0x6349, 0xAEBB, 0x634A, 0xD1BC, + 0x634B, 0xD1BB, 0x634C, 0xAEC3, 0x634D, 0xAEC2, 0x634E, 0xAEB4, + 0x634F, 0xAEBA, 0x6350, 0xAEBD, 0x6351, 0xD1C8, 0x6354, 0xD1C2, + 0x6355, 0xAEB7, 0x6356, 0xD1B3, 0x6357, 0xD1CA, 0x6358, 0xD1C1, + 0x6359, 0xD1C3, 0x635A, 0xD1C7, 0x6365, 0xD567, 0x6367, 0xB1B7, + 0x6368, 0xB1CB, 0x6369, 0xB1CA, 0x636B, 0xB1BF, 0x636D, 0xD579, + 0x636E, 0xD575, 0x636F, 0xD572, 0x6370, 0xD5A6, 0x6371, 0xB1BA, + 0x6372, 0xB1B2, 0x6375, 0xD577, 0x6376, 0xB4A8, 0x6377, 0xB1B6, + 0x6378, 0xD5A1, 0x637A, 0xB1CC, 0x637B, 0xB1C9, 0x637C, 0xD57B, + 0x637D, 0xD56A, 0x6380, 0xB1C8, 0x6381, 0xD5A3, 0x6382, 0xD569, + 0x6383, 0xB1BD, 0x6384, 0xB1C1, 0x6385, 0xD5A2, 0x6387, 0xD573, + 0x6388, 0xB1C2, 0x6389, 0xB1BC, 0x638A, 0xD568, 0x638C, 0xB478, + 0x638D, 0xD5A5, 0x638E, 0xD571, 0x638F, 0xB1C7, 0x6390, 0xD574, + 0x6391, 0xD5A4, 0x6392, 0xB1C6, 0x6394, 0xD952, 0x6396, 0xB1B3, + 0x6397, 0xD56F, 0x6398, 0xB1B8, 0x6399, 0xB1C3, 0x639B, 0xB1BE, + 0x639C, 0xD578, 0x639D, 0xD56E, 0x639E, 0xD56C, 0x639F, 0xD57E, + 0x63A0, 0xB1B0, 0x63A1, 0xB1C4, 0x63A2, 0xB1B4, 0x63A3, 0xB477, + 0x63A4, 0xD57C, 0x63A5, 0xB1B5, 0x63A7, 0xB1B1, 0x63A8, 0xB1C0, + 0x63A9, 0xB1BB, 0x63AA, 0xB1B9, 0x63AB, 0xD570, 0x63AC, 0xB1C5, + 0x63AD, 0xD56D, 0x63AE, 0xD57A, 0x63AF, 0xD576, 0x63B0, 0xD954, + 0x63B1, 0xD953, 0x63BD, 0xD56B, 0x63BE, 0xD964, 0x63C0, 0xB47A, + 0x63C2, 0xD96A, 0x63C3, 0xD959, 0x63C4, 0xD967, 0x63C5, 0xDD77, + 0x63C6, 0xB47D, 0x63C7, 0xD96B, 0x63C8, 0xD96E, 0x63C9, 0xB47C, + 0x63CA, 0xD95C, 0x63CB, 0xD96D, 0x63CC, 0xD96C, 0x63CD, 0xB47E, + 0x63CE, 0xD955, 0x63CF, 0xB479, 0x63D0, 0xB4A3, 0x63D2, 0xB4A1, + 0x63D3, 0xD969, 0x63D5, 0xD95F, 0x63D6, 0xB4A5, 0x63D7, 0xD970, + 0x63D8, 0xD968, 0x63D9, 0xD971, 0x63DA, 0xB4AD, 0x63DB, 0xB4AB, + 0x63DC, 0xD966, 0x63DD, 0xD965, 0x63DF, 0xD963, 0x63E0, 0xD95D, + 0x63E1, 0xB4A4, 0x63E3, 0xB4A2, 0x63E4, 0xD1B9, 0x63E5, 0xD956, + 0x63E7, 0xDDB7, 0x63E8, 0xD957, 0x63E9, 0xB47B, 0x63EA, 0xB4AA, + 0x63EB, 0xDD79, 0x63ED, 0xB4A6, 0x63EE, 0xB4A7, 0x63EF, 0xD958, + 0x63F0, 0xD96F, 0x63F1, 0xDD78, 0x63F2, 0xD960, 0x63F3, 0xD95B, + 0x63F4, 0xB4A9, 0x63F5, 0xD961, 0x63F6, 0xD95E, 0x63F9, 0xB4AE, + 0x6406, 0xB770, 0x6409, 0xDD7C, 0x640A, 0xDDB1, 0x640B, 0xDDB6, + 0x640C, 0xDDAA, 0x640D, 0xB76C, 0x640E, 0xDDBB, 0x640F, 0xB769, + 0x6410, 0xDD7A, 0x6412, 0xDD7B, 0x6413, 0xB762, 0x6414, 0xB76B, + 0x6415, 0xDDA4, 0x6416, 0xB76E, 0x6417, 0xB76F, 0x6418, 0xDDA5, + 0x641A, 0xDDB2, 0x641B, 0xDDB8, 0x641C, 0xB76A, 0x641E, 0xB764, + 0x641F, 0xDDA3, 0x6420, 0xDD7D, 0x6421, 0xDDBA, 0x6422, 0xDDA8, + 0x6423, 0xDDA9, 0x6424, 0xDD7E, 0x6425, 0xDDB4, 0x6426, 0xDDAB, + 0x6427, 0xDDB5, 0x6428, 0xDDAD, 0x642A, 0xB765, 0x642B, 0xE1D9, + 0x642C, 0xB768, 0x642D, 0xB766, 0x642E, 0xDDB9, 0x642F, 0xDDB0, + 0x6430, 0xDDAC, 0x6433, 0xDDA1, 0x6434, 0xBA53, 0x6435, 0xDDAF, + 0x6436, 0xB76D, 0x6437, 0xDDA7, 0x6439, 0xDDA6, 0x643D, 0xB767, + 0x643E, 0xB763, 0x643F, 0xE1EE, 0x6440, 0xDDB3, 0x6441, 0xDDAE, + 0x6443, 0xDDA2, 0x644B, 0xE1E9, 0x644D, 0xE1DA, 0x644E, 0xE1E5, + 0x6450, 0xE1EC, 0x6451, 0xBA51, 0x6452, 0xB4AC, 0x6453, 0xE1EA, + 0x6454, 0xBA4C, 0x6458, 0xBA4B, 0x6459, 0xE1F1, 0x645B, 0xE1DB, + 0x645C, 0xE1E8, 0x645D, 0xE1DC, 0x645E, 0xE1E7, 0x645F, 0xBA4F, + 0x6460, 0xE1EB, 0x6461, 0xD962, 0x6465, 0xE1F2, 0x6466, 0xE1E3, + 0x6467, 0xBA52, 0x6468, 0xE5BA, 0x6469, 0xBCAF, 0x646B, 0xE1F0, + 0x646C, 0xE1EF, 0x646D, 0xBA54, 0x646E, 0xE5AD, 0x646F, 0xBCB0, + 0x6470, 0xE5AE, 0x6472, 0xE1DF, 0x6473, 0xE1E0, 0x6474, 0xE1DD, + 0x6475, 0xE1E2, 0x6476, 0xE1DE, 0x6477, 0xE1F3, 0x6478, 0xBA4E, + 0x6479, 0xBCB1, 0x647A, 0xBA50, 0x647B, 0xBA55, 0x647D, 0xE1E1, + 0x647F, 0xE1ED, 0x6482, 0xE1E6, 0x6485, 0xE5B1, 0x6487, 0xBA4A, + 0x6488, 0xBCB4, 0x6489, 0xE9AA, 0x648A, 0xE5B6, 0x648B, 0xE5B5, + 0x648C, 0xE5B7, 0x648F, 0xE5B4, 0x6490, 0xBCB5, 0x6492, 0xBCBB, + 0x6493, 0xBCB8, 0x6495, 0xBCB9, 0x6496, 0xE5AF, 0x6497, 0xE5B2, + 0x6498, 0xE5BC, 0x6499, 0xBCC1, 0x649A, 0xBCBF, 0x649C, 0xE5B3, + 0x649D, 0xD95A, 0x649E, 0xBCB2, 0x649F, 0xE5B9, 0x64A0, 0xE5B0, + 0x64A2, 0xBCC2, 0x64A3, 0xE5B8, 0x64A4, 0xBA4D, 0x64A5, 0xBCB7, + 0x64A6, 0xE1E4, 0x64A9, 0xBCBA, 0x64AB, 0xBCBE, 0x64AC, 0xBCC0, + 0x64AD, 0xBCBD, 0x64AE, 0xBCBC, 0x64B0, 0xBCB6, 0x64B1, 0xE5BB, + 0x64B2, 0xBCB3, 0x64B3, 0xBCC3, 0x64BB, 0xBED8, 0x64BC, 0xBED9, + 0x64BD, 0xE9A9, 0x64BE, 0xBEE2, 0x64BF, 0xBEDF, 0x64C1, 0xBED6, + 0x64C2, 0xBEDD, 0x64C3, 0xE9AB, 0x64C4, 0xBEDB, 0x64C5, 0xBED5, + 0x64C7, 0xBEDC, 0x64C9, 0xE9A8, 0x64CA, 0xC0BB, 0x64CB, 0xBED7, + 0x64CD, 0xBEDE, 0x64CE, 0xC0BA, 0x64CF, 0xE9A7, 0x64D0, 0xE9A6, + 0x64D2, 0xBEE0, 0x64D4, 0xBEE1, 0x64D6, 0xE9A5, 0x64D7, 0xE9A4, + 0x64D8, 0xC0BC, 0x64D9, 0xE9AE, 0x64DA, 0xBEDA, 0x64DB, 0xE9AC, + 0x64E0, 0xC0BD, 0x64E2, 0xC0C2, 0x64E3, 0xECEA, 0x64E4, 0xECEC, + 0x64E6, 0xC0BF, 0x64E8, 0xECED, 0x64E9, 0xECE9, 0x64EB, 0xECEB, + 0x64EC, 0xC0C0, 0x64ED, 0xC0C3, 0x64EF, 0xECE8, 0x64F0, 0xC0BE, + 0x64F1, 0xC0C1, 0x64F2, 0xC259, 0x64F3, 0xE9AD, 0x64F4, 0xC258, + 0x64F7, 0xC25E, 0x64F8, 0xEFD4, 0x64FA, 0xC25C, 0x64FB, 0xC25D, + 0x64FC, 0xEFD7, 0x64FD, 0xEFD3, 0x64FE, 0xC25A, 0x64FF, 0xEFD1, + 0x6500, 0xC36B, 0x6501, 0xEFD5, 0x6503, 0xEFD6, 0x6504, 0xEFD2, + 0x6506, 0xC25B, 0x6507, 0xF242, 0x6509, 0xF245, 0x650C, 0xF246, + 0x650D, 0xF244, 0x650E, 0xF247, 0x650F, 0xC36C, 0x6510, 0xF243, + 0x6513, 0xF44E, 0x6514, 0xC464, 0x6515, 0xF44D, 0x6516, 0xF44C, + 0x6517, 0xF44B, 0x6518, 0xC463, 0x6519, 0xC465, 0x651B, 0xF5CD, + 0x651C, 0xC4E2, 0x651D, 0xC4E1, 0x6520, 0xF6E1, 0x6521, 0xF6E0, + 0x6522, 0xF6E3, 0x6523, 0xC5CB, 0x6524, 0xC575, 0x6525, 0xF7DD, + 0x6526, 0xF6E2, 0x6529, 0xF7DC, 0x652A, 0xC5CD, 0x652B, 0xC5CC, + 0x652C, 0xC5F3, 0x652D, 0xF8A9, 0x652E, 0xF8EF, 0x652F, 0xA4E4, + 0x6532, 0xD972, 0x6533, 0xE9AF, 0x6536, 0xA6AC, 0x6537, 0xCAF7, + 0x6538, 0xA7F1, 0x6539, 0xA7EF, 0x653B, 0xA7F0, 0x653D, 0xCCC1, + 0x653E, 0xA9F1, 0x653F, 0xAC46, 0x6541, 0xCEE7, 0x6543, 0xCEE8, + 0x6545, 0xAC47, 0x6546, 0xD1CE, 0x6548, 0xAEC4, 0x6549, 0xAEC5, + 0x654A, 0xD1CD, 0x654F, 0xB1D3, 0x6551, 0xB1CF, 0x6553, 0xD5A7, + 0x6554, 0xB1D6, 0x6555, 0xB1D5, 0x6556, 0xB1CE, 0x6557, 0xB1D1, + 0x6558, 0xB1D4, 0x6559, 0xB1D0, 0x655C, 0xD976, 0x655D, 0xB1CD, + 0x655E, 0xB4AF, 0x6562, 0xB4B1, 0x6563, 0xB4B2, 0x6564, 0xD975, + 0x6565, 0xD978, 0x6566, 0xB4B0, 0x6567, 0xD973, 0x6568, 0xD977, + 0x656A, 0xD974, 0x656C, 0xB771, 0x656F, 0xDDBC, 0x6572, 0xBA56, + 0x6573, 0xE1F4, 0x6574, 0xBEE3, 0x6575, 0xBCC4, 0x6576, 0xE5BD, + 0x6577, 0xBCC5, 0x6578, 0xBCC6, 0x6579, 0xE5BF, 0x657A, 0xE5BE, + 0x657B, 0xE5C0, 0x657C, 0xE9B1, 0x657F, 0xE9B0, 0x6580, 0xECEF, + 0x6581, 0xECEE, 0x6582, 0xC0C4, 0x6583, 0xC0C5, 0x6584, 0xF248, + 0x6587, 0xA4E5, 0x658C, 0xD979, 0x6590, 0xB4B4, 0x6591, 0xB4B3, + 0x6592, 0xDDBD, 0x6594, 0xEFD8, 0x6595, 0xC4E3, 0x6596, 0xF7DE, + 0x6597, 0xA4E6, 0x6599, 0xAEC6, 0x659B, 0xB1D8, 0x659C, 0xB1D7, + 0x659D, 0xD97A, 0x659E, 0xD97B, 0x659F, 0xB772, 0x65A0, 0xE1F5, + 0x65A1, 0xBA57, 0x65A2, 0xE9B2, 0x65A4, 0xA4E7, 0x65A5, 0xA5B8, + 0x65A7, 0xA9F2, 0x65A8, 0xCCC2, 0x65AA, 0xCEE9, 0x65AB, 0xAC48, + 0x65AC, 0xB1D9, 0x65AE, 0xD97C, 0x65AF, 0xB4B5, 0x65B0, 0xB773, + 0x65B2, 0xE5C1, 0x65B3, 0xE5C2, 0x65B6, 0xECF0, 0x65B7, 0xC25F, + 0x65B8, 0xF8F0, 0x65B9, 0xA4E8, 0x65BB, 0xCCC3, 0x65BC, 0xA9F3, + 0x65BD, 0xAC49, 0x65BF, 0xCEEA, 0x65C1, 0xAEC7, 0x65C2, 0xD1D2, + 0x65C3, 0xD1D0, 0x65C4, 0xD1D1, 0x65C5, 0xAEC8, 0x65C6, 0xD1CF, + 0x65CB, 0xB1DB, 0x65CC, 0xB1DC, 0x65CD, 0xD5A8, 0x65CE, 0xB1DD, + 0x65CF, 0xB1DA, 0x65D0, 0xD97D, 0x65D2, 0xD97E, 0x65D3, 0xDDBE, + 0x65D6, 0xBA59, 0x65D7, 0xBA58, 0x65DA, 0xECF1, 0x65DB, 0xEFD9, + 0x65DD, 0xF24A, 0x65DE, 0xF249, 0x65DF, 0xF44F, 0x65E1, 0xC95E, + 0x65E2, 0xAC4A, 0x65E5, 0xA4E9, 0x65E6, 0xA5B9, 0x65E8, 0xA6AE, + 0x65E9, 0xA6AD, 0x65EC, 0xA6AF, 0x65ED, 0xA6B0, 0x65EE, 0xC9EE, + 0x65EF, 0xC9ED, 0x65F0, 0xCAF8, 0x65F1, 0xA7F2, 0x65F2, 0xCAFB, + 0x65F3, 0xCAFA, 0x65F4, 0xCAF9, 0x65F5, 0xCAFC, 0x65FA, 0xA9F4, + 0x65FB, 0xCCC9, 0x65FC, 0xCCC5, 0x65FD, 0xCCCE, 0x6600, 0xA9FB, + 0x6602, 0xA9F9, 0x6603, 0xCCCA, 0x6604, 0xCCC6, 0x6605, 0xCCCD, + 0x6606, 0xA9F8, 0x6607, 0xAA40, 0x6608, 0xCCC8, 0x6609, 0xCCC4, + 0x660A, 0xA9FE, 0x660B, 0xCCCB, 0x660C, 0xA9F7, 0x660D, 0xCCCC, + 0x660E, 0xA9FA, 0x660F, 0xA9FC, 0x6610, 0xCCD0, 0x6611, 0xCCCF, + 0x6612, 0xCCC7, 0x6613, 0xA9F6, 0x6614, 0xA9F5, 0x6615, 0xA9FD, + 0x661C, 0xCEEF, 0x661D, 0xCEF5, 0x661F, 0xAC50, 0x6620, 0xAC4D, + 0x6621, 0xCEEC, 0x6622, 0xCEF1, 0x6624, 0xAC53, 0x6625, 0xAC4B, + 0x6626, 0xCEF0, 0x6627, 0xAC4E, 0x6628, 0xAC51, 0x662B, 0xCEF3, + 0x662D, 0xAC4C, 0x662E, 0xCEF8, 0x662F, 0xAC4F, 0x6631, 0xAC52, + 0x6632, 0xCEED, 0x6633, 0xCEF2, 0x6634, 0xCEF6, 0x6635, 0xCEEE, + 0x6636, 0xCEEB, 0x6639, 0xCEF7, 0x663A, 0xCEF4, 0x6641, 0xAED0, + 0x6642, 0xAEC9, 0x6643, 0xAECC, 0x6645, 0xAECF, 0x6647, 0xD1D5, + 0x6649, 0xAECA, 0x664A, 0xD1D3, 0x664C, 0xAECE, 0x664F, 0xAECB, + 0x6651, 0xD1D6, 0x6652, 0xAECD, 0x6659, 0xD5AC, 0x665A, 0xB1DF, + 0x665B, 0xD5AB, 0x665C, 0xD5AD, 0x665D, 0xB1DE, 0x665E, 0xB1E3, + 0x665F, 0xD1D4, 0x6661, 0xD5AA, 0x6662, 0xD5AE, 0x6664, 0xB1E0, + 0x6665, 0xD5A9, 0x6666, 0xB1E2, 0x6668, 0xB1E1, 0x666A, 0xD9A7, + 0x666C, 0xD9A2, 0x666E, 0xB4B6, 0x666F, 0xB4BA, 0x6670, 0xB4B7, + 0x6671, 0xD9A5, 0x6672, 0xD9A8, 0x6674, 0xB4B8, 0x6676, 0xB4B9, + 0x6677, 0xB4BE, 0x6678, 0xDDC7, 0x6679, 0xD9A6, 0x667A, 0xB4BC, + 0x667B, 0xD9A3, 0x667C, 0xD9A1, 0x667E, 0xB4BD, 0x6680, 0xD9A4, + 0x6684, 0xB779, 0x6686, 0xDDBF, 0x6687, 0xB776, 0x6688, 0xB777, + 0x6689, 0xB775, 0x668A, 0xDDC4, 0x668B, 0xDDC3, 0x668C, 0xDDC0, + 0x668D, 0xB77B, 0x6690, 0xDDC2, 0x6691, 0xB4BB, 0x6694, 0xDDC6, + 0x6695, 0xDDC1, 0x6696, 0xB778, 0x6697, 0xB774, 0x6698, 0xB77A, + 0x6699, 0xDDC5, 0x669D, 0xBA5C, 0x669F, 0xE1F8, 0x66A0, 0xE1F7, + 0x66A1, 0xE1F6, 0x66A2, 0xBA5A, 0x66A8, 0xBA5B, 0x66A9, 0xE5C5, + 0x66AA, 0xE5C8, 0x66AB, 0xBCC8, 0x66AE, 0xBCC7, 0x66AF, 0xE5C9, + 0x66B0, 0xE5C4, 0x66B1, 0xBCCA, 0x66B2, 0xE5C6, 0x66B4, 0xBCC9, + 0x66B5, 0xE5C3, 0x66B7, 0xE5C7, 0x66B8, 0xBEE9, 0x66B9, 0xBEE6, + 0x66BA, 0xE9BB, 0x66BB, 0xE9BA, 0x66BD, 0xE9B9, 0x66BE, 0xE9B4, + 0x66C0, 0xE9B5, 0x66C4, 0xBEE7, 0x66C6, 0xBEE4, 0x66C7, 0xBEE8, + 0x66C8, 0xE9B3, 0x66C9, 0xBEE5, 0x66CA, 0xE9B6, 0x66CB, 0xE9B7, + 0x66CC, 0xE9BC, 0x66CF, 0xE9B8, 0x66D2, 0xECF2, 0x66D6, 0xC0C7, + 0x66D8, 0xEFDC, 0x66D9, 0xC0C6, 0x66DA, 0xEFDA, 0x66DB, 0xEFDB, + 0x66DC, 0xC260, 0x66DD, 0xC36E, 0x66DE, 0xF24B, 0x66E0, 0xC36D, + 0x66E3, 0xF451, 0x66E4, 0xF452, 0x66E6, 0xC466, 0x66E8, 0xF450, + 0x66E9, 0xC4E4, 0x66EB, 0xF7DF, 0x66EC, 0xC5CE, 0x66ED, 0xF8AA, + 0x66EE, 0xF8AB, 0x66F0, 0xA4EA, 0x66F2, 0xA6B1, 0x66F3, 0xA6B2, + 0x66F4, 0xA7F3, 0x66F6, 0xCCD1, 0x66F7, 0xAC54, 0x66F8, 0xAED1, + 0x66F9, 0xB1E4, 0x66FC, 0xB0D2, 0x66FE, 0xB4BF, 0x66FF, 0xB4C0, + 0x6700, 0xB3CC, 0x6701, 0xD9A9, 0x6703, 0xB77C, 0x6704, 0xE1FA, + 0x6705, 0xE1F9, 0x6708, 0xA4EB, 0x6709, 0xA6B3, 0x670A, 0xCCD2, + 0x670B, 0xAA42, 0x670D, 0xAA41, 0x670F, 0xCEF9, 0x6710, 0xCEFA, + 0x6712, 0xD1D7, 0x6713, 0xD1D8, 0x6714, 0xAED2, 0x6715, 0xAED3, + 0x6717, 0xAED4, 0x6718, 0xD5AF, 0x671B, 0xB1E6, 0x671D, 0xB4C2, + 0x671F, 0xB4C1, 0x6720, 0xDDC8, 0x6721, 0xDF7A, 0x6722, 0xE1FB, + 0x6723, 0xE9BD, 0x6726, 0xC261, 0x6727, 0xC467, 0x6728, 0xA4EC, + 0x672A, 0xA5BC, 0x672B, 0xA5BD, 0x672C, 0xA5BB, 0x672D, 0xA5BE, + 0x672E, 0xA5BA, 0x6731, 0xA6B6, 0x6733, 0xC9F6, 0x6734, 0xA6B5, + 0x6735, 0xA6B7, 0x6738, 0xC9F1, 0x6739, 0xC9F0, 0x673A, 0xC9F3, + 0x673B, 0xC9F2, 0x673C, 0xC9F5, 0x673D, 0xA6B4, 0x673E, 0xC9EF, + 0x673F, 0xC9F4, 0x6745, 0xCAFD, 0x6746, 0xA7FD, 0x6747, 0xCAFE, + 0x6748, 0xCB43, 0x6749, 0xA7FC, 0x674B, 0xCB47, 0x674C, 0xCB42, + 0x674D, 0xCB45, 0x674E, 0xA7F5, 0x674F, 0xA7F6, 0x6750, 0xA7F7, + 0x6751, 0xA7F8, 0x6753, 0xA840, 0x6755, 0xCB41, 0x6756, 0xA7FA, + 0x6757, 0xA841, 0x6759, 0xCB40, 0x675A, 0xCB46, 0x675C, 0xA7F9, + 0x675D, 0xCB44, 0x675E, 0xA7FB, 0x675F, 0xA7F4, 0x6760, 0xA7FE, + 0x676A, 0xAA57, 0x676C, 0xCCD4, 0x676D, 0xAA43, 0x676F, 0xAA4D, + 0x6770, 0xAA4E, 0x6771, 0xAA46, 0x6772, 0xAA58, 0x6773, 0xAA48, + 0x6774, 0xCCDC, 0x6775, 0xAA53, 0x6776, 0xCCD7, 0x6777, 0xAA49, + 0x6778, 0xCCE6, 0x6779, 0xCCE7, 0x677A, 0xCCDF, 0x677B, 0xCCD8, + 0x677C, 0xAA56, 0x677D, 0xCCE4, 0x677E, 0xAA51, 0x677F, 0xAA4F, + 0x6781, 0xCCE5, 0x6783, 0xCCE3, 0x6784, 0xCCDB, 0x6785, 0xCCD3, + 0x6786, 0xCCDA, 0x6787, 0xAA4A, 0x6789, 0xAA50, 0x678B, 0xAA44, + 0x678C, 0xCCDE, 0x678D, 0xCCDD, 0x678E, 0xCCD5, 0x6790, 0xAA52, + 0x6791, 0xCCE1, 0x6792, 0xCCD6, 0x6793, 0xAA55, 0x6794, 0xCCE8, + 0x6795, 0xAA45, 0x6797, 0xAA4C, 0x6798, 0xCCD9, 0x6799, 0xCCE2, + 0x679A, 0xAA54, 0x679C, 0xAA47, 0x679D, 0xAA4B, 0x679F, 0xCCE0, + 0x67AE, 0xCF5B, 0x67AF, 0xAC5C, 0x67B0, 0xAC69, 0x67B2, 0xCF56, + 0x67B3, 0xCF4C, 0x67B4, 0xAC62, 0x67B5, 0xCF4A, 0x67B6, 0xAC5B, + 0x67B7, 0xCF45, 0x67B8, 0xAC65, 0x67B9, 0xCF52, 0x67BA, 0xCEFE, + 0x67BB, 0xCF41, 0x67C0, 0xCF44, 0x67C1, 0xCEFB, 0x67C2, 0xCF51, + 0x67C3, 0xCF61, 0x67C4, 0xAC60, 0x67C5, 0xCF46, 0x67C6, 0xCF58, + 0x67C8, 0xCEFD, 0x67C9, 0xCF5F, 0x67CA, 0xCF60, 0x67CB, 0xCF63, + 0x67CC, 0xCF5A, 0x67CD, 0xCF4B, 0x67CE, 0xCF53, 0x67CF, 0xAC66, + 0x67D0, 0xAC59, 0x67D1, 0xAC61, 0x67D2, 0xAC6D, 0x67D3, 0xAC56, + 0x67D4, 0xAC58, 0x67D8, 0xCF43, 0x67D9, 0xAC6A, 0x67DA, 0xAC63, + 0x67DB, 0xCF5D, 0x67DC, 0xCF40, 0x67DD, 0xAC6C, 0x67DE, 0xAC67, + 0x67DF, 0xCF49, 0x67E2, 0xAC6B, 0x67E3, 0xCF50, 0x67E4, 0xCF48, + 0x67E5, 0xAC64, 0x67E6, 0xCF5C, 0x67E7, 0xCF54, 0x67E9, 0xAC5E, + 0x67EA, 0xCF62, 0x67EB, 0xCF47, 0x67EC, 0xAC5A, 0x67ED, 0xCF59, + 0x67EE, 0xCF4F, 0x67EF, 0xAC5F, 0x67F0, 0xCF55, 0x67F1, 0xAC57, + 0x67F2, 0xCEFC, 0x67F3, 0xAC68, 0x67F4, 0xAEE3, 0x67F5, 0xAC5D, + 0x67F6, 0xCF4E, 0x67F7, 0xCF4D, 0x67F8, 0xCF42, 0x67FA, 0xCF5E, + 0x67FC, 0xCF57, 0x67FF, 0xAC55, 0x6812, 0xD1EC, 0x6813, 0xAEEA, + 0x6814, 0xD1ED, 0x6816, 0xD1E1, 0x6817, 0xAEDF, 0x6818, 0xAEEB, + 0x681A, 0xD1DA, 0x681C, 0xD1E3, 0x681D, 0xD1EB, 0x681F, 0xD1D9, + 0x6820, 0xD1F4, 0x6821, 0xAED5, 0x6825, 0xD1F3, 0x6826, 0xD1EE, + 0x6828, 0xD1EF, 0x6829, 0xAEDD, 0x682A, 0xAEE8, 0x682B, 0xD1E5, + 0x682D, 0xD1E6, 0x682E, 0xD1F0, 0x682F, 0xD1E7, 0x6831, 0xD1E2, + 0x6832, 0xD1DC, 0x6833, 0xD1DD, 0x6834, 0xD1EA, 0x6835, 0xD1E4, + 0x6838, 0xAED6, 0x6839, 0xAEDA, 0x683A, 0xD1F2, 0x683B, 0xD1DE, + 0x683C, 0xAEE6, 0x683D, 0xAEE2, 0x6840, 0xAEE5, 0x6841, 0xAEEC, + 0x6842, 0xAEDB, 0x6843, 0xAEE7, 0x6844, 0xD1E9, 0x6845, 0xAEE9, + 0x6846, 0xAED8, 0x6848, 0xAED7, 0x6849, 0xD1DB, 0x684B, 0xD1DF, + 0x684C, 0xAEE0, 0x684D, 0xD1F1, 0x684E, 0xD1E8, 0x684F, 0xD1E0, + 0x6850, 0xAEE4, 0x6851, 0xAEE1, 0x6853, 0xAED9, 0x6854, 0xAEDC, + 0x686B, 0xD5C4, 0x686D, 0xD5B4, 0x686E, 0xD5B5, 0x686F, 0xD5B9, + 0x6871, 0xD5C8, 0x6872, 0xD5C5, 0x6874, 0xD5BE, 0x6875, 0xD5BD, + 0x6876, 0xB1ED, 0x6877, 0xD5C1, 0x6878, 0xD5D0, 0x6879, 0xD5B0, + 0x687B, 0xD5D1, 0x687C, 0xD5C3, 0x687D, 0xD5D5, 0x687E, 0xD5C9, + 0x687F, 0xB1EC, 0x6880, 0xD5C7, 0x6881, 0xB1E7, 0x6882, 0xB1FC, + 0x6883, 0xB1F2, 0x6885, 0xB1F6, 0x6886, 0xB1F5, 0x6887, 0xD5B1, + 0x6889, 0xD5CE, 0x688A, 0xD5D4, 0x688B, 0xD5CC, 0x688C, 0xD5D3, + 0x688F, 0xD5C0, 0x6890, 0xD5B2, 0x6891, 0xD5D2, 0x6892, 0xD5C2, + 0x6893, 0xB1EA, 0x6894, 0xB1F7, 0x6896, 0xD5CB, 0x6897, 0xB1F0, + 0x689B, 0xD5CA, 0x689C, 0xD5B3, 0x689D, 0xB1F8, 0x689F, 0xB1FA, + 0x68A0, 0xD5CD, 0x68A1, 0xB1FB, 0x68A2, 0xB1E9, 0x68A3, 0xD5BA, + 0x68A4, 0xD5CF, 0x68A7, 0xB1EF, 0x68A8, 0xB1F9, 0x68A9, 0xD5BC, + 0x68AA, 0xD5C6, 0x68AB, 0xD5B7, 0x68AC, 0xD5BB, 0x68AD, 0xB1F4, + 0x68AE, 0xD5B6, 0x68AF, 0xB1E8, 0x68B0, 0xB1F1, 0x68B1, 0xB1EE, + 0x68B2, 0xD5BF, 0x68B3, 0xAEDE, 0x68B4, 0xD9C0, 0x68B5, 0xB1EB, + 0x68C4, 0xB1F3, 0x68C6, 0xD9C3, 0x68C7, 0xD9D9, 0x68C8, 0xD9CE, + 0x68C9, 0xB4D6, 0x68CB, 0xB4D1, 0x68CC, 0xD9BD, 0x68CD, 0xB4D2, + 0x68CE, 0xD9CD, 0x68D0, 0xD9C6, 0x68D1, 0xD9D3, 0x68D2, 0xB4CE, + 0x68D3, 0xD9AB, 0x68D4, 0xD9D5, 0x68D5, 0xB4C4, 0x68D6, 0xD9B3, + 0x68D7, 0xB4C7, 0x68D8, 0xB4C6, 0x68DA, 0xB4D7, 0x68DC, 0xD9AD, + 0x68DD, 0xD9CF, 0x68DE, 0xD9D0, 0x68DF, 0xB4C9, 0x68E0, 0xB4C5, + 0x68E1, 0xD9BB, 0x68E3, 0xB4D0, 0x68E4, 0xD9B6, 0x68E6, 0xD9D1, + 0x68E7, 0xB4CC, 0x68E8, 0xD9C9, 0x68E9, 0xD9D6, 0x68EA, 0xD9B0, + 0x68EB, 0xD9B5, 0x68EC, 0xD9AF, 0x68EE, 0xB4CB, 0x68EF, 0xD9C2, + 0x68F0, 0xDDDE, 0x68F1, 0xD9B1, 0x68F2, 0xB4CF, 0x68F3, 0xD9BA, + 0x68F4, 0xD9D2, 0x68F5, 0xB4CA, 0x68F6, 0xD9B7, 0x68F7, 0xD9B4, + 0x68F8, 0xD9C5, 0x68F9, 0xB4CD, 0x68FA, 0xB4C3, 0x68FB, 0xB4D9, + 0x68FC, 0xD9C8, 0x68FD, 0xD9C7, 0x6904, 0xD9AC, 0x6905, 0xB4C8, + 0x6906, 0xD9D4, 0x6907, 0xD9BC, 0x6908, 0xD9BE, 0x690A, 0xD9CB, + 0x690B, 0xD9CA, 0x690C, 0xD9AA, 0x690D, 0xB4D3, 0x690E, 0xB4D5, + 0x690F, 0xD9B2, 0x6910, 0xD9B9, 0x6911, 0xD9C1, 0x6912, 0xB4D4, + 0x6913, 0xD9B8, 0x6914, 0xD9C4, 0x6915, 0xD9D7, 0x6917, 0xD9CC, + 0x6925, 0xD9D8, 0x692A, 0xD9AE, 0x692F, 0xDDF2, 0x6930, 0xB7A6, + 0x6932, 0xDDF0, 0x6933, 0xDDDB, 0x6934, 0xDDE0, 0x6935, 0xDDD9, + 0x6937, 0xDDEC, 0x6938, 0xDDCB, 0x6939, 0xDDD2, 0x693B, 0xDDEA, + 0x693C, 0xDDF4, 0x693D, 0xDDDC, 0x693F, 0xDDCF, 0x6940, 0xDDE2, + 0x6941, 0xDDE7, 0x6942, 0xDDD3, 0x6944, 0xDDE4, 0x6945, 0xDDD0, + 0x6948, 0xDDD7, 0x6949, 0xDDD8, 0x694A, 0xB7A8, 0x694B, 0xDDEB, + 0x694C, 0xDDE9, 0x694E, 0xDDCC, 0x694F, 0xDDEE, 0x6951, 0xDDEF, + 0x6952, 0xDDF1, 0x6953, 0xB7AC, 0x6954, 0xB7A4, 0x6956, 0xD5B8, + 0x6957, 0xDDD4, 0x6958, 0xDDE6, 0x6959, 0xDDD5, 0x695A, 0xB7A1, + 0x695B, 0xB7B1, 0x695C, 0xDDED, 0x695D, 0xB7AF, 0x695E, 0xB7AB, + 0x695F, 0xDDCA, 0x6960, 0xB7A3, 0x6962, 0xDDCD, 0x6963, 0xB7B0, + 0x6965, 0xDDDD, 0x6966, 0xDDC9, 0x6968, 0xB7A9, 0x6969, 0xDDE1, + 0x696A, 0xDDD1, 0x696B, 0xB7AA, 0x696C, 0xDDDA, 0x696D, 0xB77E, + 0x696E, 0xB4D8, 0x696F, 0xDDE3, 0x6970, 0xD9BF, 0x6971, 0xDDCE, + 0x6974, 0xDDE8, 0x6975, 0xB7A5, 0x6976, 0xDDE5, 0x6977, 0xB7A2, + 0x6978, 0xDDDF, 0x6979, 0xB7AD, 0x697A, 0xDDD6, 0x697B, 0xDDF3, + 0x6982, 0xB7A7, 0x6983, 0xDEC6, 0x6986, 0xB7AE, 0x698D, 0xE24A, + 0x698E, 0xE248, 0x6990, 0xE25E, 0x6991, 0xE246, 0x6993, 0xE258, + 0x6994, 0xB77D, 0x6995, 0xBA5F, 0x6996, 0xE242, 0x6997, 0xE25D, + 0x6999, 0xE247, 0x699A, 0xE255, 0x699B, 0xBA64, 0x699C, 0xBA5D, + 0x699E, 0xE25B, 0x69A0, 0xE240, 0x69A1, 0xE25A, 0x69A3, 0xBA6F, + 0x69A4, 0xE251, 0x69A5, 0xE261, 0x69A6, 0xBA6D, 0x69A7, 0xE249, + 0x69A8, 0xBA5E, 0x69A9, 0xE24B, 0x69AA, 0xE259, 0x69AB, 0xBA67, + 0x69AC, 0xE244, 0x69AD, 0xBA6B, 0x69AE, 0xBA61, 0x69AF, 0xE24D, + 0x69B0, 0xE243, 0x69B1, 0xE1FC, 0x69B3, 0xE257, 0x69B4, 0xBA68, + 0x69B5, 0xE260, 0x69B6, 0xE1FD, 0x69B7, 0xBA65, 0x69B9, 0xE253, + 0x69BB, 0xBA66, 0x69BC, 0xE245, 0x69BD, 0xE250, 0x69BE, 0xE24C, + 0x69BF, 0xE24E, 0x69C1, 0xBA60, 0x69C2, 0xE25F, 0x69C3, 0xBA6E, + 0x69C4, 0xE24F, 0x69C6, 0xE262, 0x69C9, 0xE1FE, 0x69CA, 0xE254, + 0x69CB, 0xBA63, 0x69CC, 0xBA6C, 0x69CD, 0xBA6A, 0x69CE, 0xE241, + 0x69CF, 0xE256, 0x69D0, 0xBA69, 0x69D3, 0xBA62, 0x69D4, 0xE252, + 0x69D9, 0xE25C, 0x69E2, 0xE5D5, 0x69E4, 0xE5D1, 0x69E5, 0xE5CD, + 0x69E6, 0xE5E1, 0x69E7, 0xE5DE, 0x69E8, 0xBCCD, 0x69EB, 0xE5E5, + 0x69EC, 0xE5D4, 0x69ED, 0xBCD8, 0x69EE, 0xE5DB, 0x69F1, 0xE5D0, + 0x69F2, 0xE5DA, 0x69F3, 0xBCD5, 0x69F4, 0xE5EE, 0x69F6, 0xE5EB, + 0x69F7, 0xE5DD, 0x69F8, 0xE5CE, 0x69FB, 0xE5E2, 0x69FC, 0xE5E4, + 0x69FD, 0xBCD1, 0x69FE, 0xE5D8, 0x69FF, 0xE5D3, 0x6A00, 0xE5CA, + 0x6A01, 0xBCCE, 0x6A02, 0xBCD6, 0x6A04, 0xE5E7, 0x6A05, 0xBCD7, + 0x6A06, 0xE5CB, 0x6A07, 0xE5ED, 0x6A08, 0xE5E0, 0x6A09, 0xE5E6, + 0x6A0A, 0xBCD4, 0x6A0D, 0xE5E3, 0x6A0F, 0xE5EA, 0x6A11, 0xBCD9, + 0x6A13, 0xBCD3, 0x6A14, 0xE5DC, 0x6A15, 0xE5CF, 0x6A16, 0xE5EF, + 0x6A17, 0xE5CC, 0x6A18, 0xE5E8, 0x6A19, 0xBCD0, 0x6A1B, 0xE5D6, + 0x6A1D, 0xE5D7, 0x6A1E, 0xBCCF, 0x6A1F, 0xBCCC, 0x6A20, 0xE5D2, + 0x6A21, 0xBCD2, 0x6A23, 0xBCCB, 0x6A25, 0xE5E9, 0x6A26, 0xE5EC, + 0x6A27, 0xE5D9, 0x6A28, 0xE9CA, 0x6A32, 0xE9C2, 0x6A34, 0xE9BE, + 0x6A35, 0xBEF6, 0x6A38, 0xBEEB, 0x6A39, 0xBEF0, 0x6A3A, 0xBEEC, + 0x6A3B, 0xE9CC, 0x6A3C, 0xE9D7, 0x6A3D, 0xBEEA, 0x6A3E, 0xE9C4, + 0x6A3F, 0xE9CD, 0x6A40, 0xE5DF, 0x6A41, 0xE9CE, 0x6A44, 0xBEF1, + 0x6A46, 0xE9DD, 0x6A47, 0xBEF5, 0x6A48, 0xBEF8, 0x6A49, 0xE9C0, + 0x6A4B, 0xBEF4, 0x6A4D, 0xE9DB, 0x6A4E, 0xE9DC, 0x6A4F, 0xE9D2, + 0x6A50, 0xE9D1, 0x6A51, 0xE9C9, 0x6A54, 0xE9D3, 0x6A55, 0xE9DA, + 0x6A56, 0xE9D9, 0x6A58, 0xBEEF, 0x6A59, 0xBEED, 0x6A5A, 0xE9CB, + 0x6A5B, 0xE9C8, 0x6A5D, 0xE9C5, 0x6A5E, 0xE9D8, 0x6A5F, 0xBEF7, + 0x6A60, 0xE9D6, 0x6A61, 0xBEF3, 0x6A62, 0xBEF2, 0x6A64, 0xE9D0, + 0x6A66, 0xE9BF, 0x6A67, 0xE9C1, 0x6A68, 0xE9C3, 0x6A69, 0xE9D5, + 0x6A6A, 0xE9CF, 0x6A6B, 0xBEEE, 0x6A6D, 0xE9C6, 0x6A6F, 0xE9D4, + 0x6A76, 0xE9C7, 0x6A7E, 0xC0CF, 0x6A7F, 0xED45, 0x6A80, 0xC0C8, + 0x6A81, 0xECF5, 0x6A83, 0xED41, 0x6A84, 0xC0CA, 0x6A85, 0xED48, + 0x6A87, 0xECFC, 0x6A89, 0xECF7, 0x6A8C, 0xED49, 0x6A8D, 0xECF3, + 0x6A8E, 0xECFE, 0x6A90, 0xC0D1, 0x6A91, 0xED44, 0x6A92, 0xED4A, + 0x6A93, 0xECFD, 0x6A94, 0xC0C9, 0x6A95, 0xED40, 0x6A96, 0xECF4, + 0x6A97, 0xC0D0, 0x6A9A, 0xED47, 0x6A9B, 0xECF9, 0x6A9C, 0xC0CC, + 0x6A9E, 0xECFB, 0x6A9F, 0xECF8, 0x6AA0, 0xC0D2, 0x6AA1, 0xECFA, + 0x6AA2, 0xC0CB, 0x6AA3, 0xC0CE, 0x6AA4, 0xED43, 0x6AA5, 0xECF6, + 0x6AA6, 0xED46, 0x6AA8, 0xED42, 0x6AAC, 0xC263, 0x6AAD, 0xEFE7, + 0x6AAE, 0xC268, 0x6AAF, 0xC269, 0x6AB3, 0xC262, 0x6AB4, 0xEFE6, + 0x6AB6, 0xEFE3, 0x6AB7, 0xEFE4, 0x6AB8, 0xC266, 0x6AB9, 0xEFDE, + 0x6ABA, 0xEFE2, 0x6ABB, 0xC265, 0x6ABD, 0xEFDF, 0x6AC2, 0xC267, + 0x6AC3, 0xC264, 0x6AC5, 0xEFDD, 0x6AC6, 0xEFE1, 0x6AC7, 0xEFE5, + 0x6ACB, 0xF251, 0x6ACC, 0xF24E, 0x6ACD, 0xF257, 0x6ACF, 0xF256, + 0x6AD0, 0xF254, 0x6AD1, 0xF24F, 0x6AD3, 0xC372, 0x6AD9, 0xF250, + 0x6ADA, 0xC371, 0x6ADB, 0xC0CD, 0x6ADC, 0xF253, 0x6ADD, 0xC370, + 0x6ADE, 0xF258, 0x6ADF, 0xF252, 0x6AE0, 0xF24D, 0x6AE1, 0xEFE0, + 0x6AE5, 0xC36F, 0x6AE7, 0xF24C, 0x6AE8, 0xF456, 0x6AEA, 0xF455, + 0x6AEB, 0xF255, 0x6AEC, 0xC468, 0x6AEE, 0xF459, 0x6AEF, 0xF45A, + 0x6AF0, 0xF454, 0x6AF1, 0xF458, 0x6AF3, 0xF453, 0x6AF8, 0xF5D1, + 0x6AF9, 0xF457, 0x6AFA, 0xC4E7, 0x6AFB, 0xC4E5, 0x6AFC, 0xF5CF, + 0x6B00, 0xF5D2, 0x6B02, 0xF5CE, 0x6B03, 0xF5D0, 0x6B04, 0xC4E6, + 0x6B08, 0xF6E5, 0x6B09, 0xF6E6, 0x6B0A, 0xC576, 0x6B0B, 0xF6E4, + 0x6B0F, 0xF7E2, 0x6B10, 0xC5CF, 0x6B11, 0xF7E0, 0x6B12, 0xF7E1, + 0x6B13, 0xF8AC, 0x6B16, 0xC656, 0x6B17, 0xF8F3, 0x6B18, 0xF8F1, + 0x6B19, 0xF8F2, 0x6B1A, 0xF8F4, 0x6B1E, 0xF9BB, 0x6B20, 0xA4ED, + 0x6B21, 0xA6B8, 0x6B23, 0xAA59, 0x6B25, 0xCCE9, 0x6B28, 0xCF64, + 0x6B2C, 0xD1F5, 0x6B2D, 0xD1F7, 0x6B2F, 0xD1F6, 0x6B31, 0xD1F8, + 0x6B32, 0xB1FD, 0x6B33, 0xD5D7, 0x6B34, 0xD1F9, 0x6B36, 0xD5D6, + 0x6B37, 0xD5D8, 0x6B38, 0xD5D9, 0x6B39, 0xD9DA, 0x6B3A, 0xB4DB, + 0x6B3B, 0xD9DB, 0x6B3C, 0xD9DD, 0x6B3D, 0xB4DC, 0x6B3E, 0xB4DA, + 0x6B3F, 0xD9DC, 0x6B41, 0xDDFA, 0x6B42, 0xDDF8, 0x6B43, 0xDDF7, + 0x6B45, 0xDDF6, 0x6B46, 0xDDF5, 0x6B47, 0xB7B2, 0x6B48, 0xDDF9, + 0x6B49, 0xBA70, 0x6B4A, 0xE263, 0x6B4B, 0xE265, 0x6B4C, 0xBA71, + 0x6B4D, 0xE264, 0x6B4E, 0xBCDB, 0x6B50, 0xBCDA, 0x6B51, 0xE5F0, + 0x6B54, 0xE9DF, 0x6B55, 0xE9DE, 0x6B56, 0xE9E0, 0x6B59, 0xBEF9, + 0x6B5B, 0xED4B, 0x6B5C, 0xC0D3, 0x6B5E, 0xEFE8, 0x6B5F, 0xC26A, + 0x6B60, 0xF259, 0x6B61, 0xC577, 0x6B62, 0xA4EE, 0x6B63, 0xA5BF, + 0x6B64, 0xA6B9, 0x6B65, 0xA842, 0x6B66, 0xAA5A, 0x6B67, 0xAA5B, + 0x6B6A, 0xAC6E, 0x6B6D, 0xD1FA, 0x6B72, 0xB7B3, 0x6B76, 0xE6D1, + 0x6B77, 0xBEFA, 0x6B78, 0xC26B, 0x6B79, 0xA4EF, 0x6B7B, 0xA6BA, + 0x6B7E, 0xCCEB, 0x6B7F, 0xAA5C, 0x6B80, 0xCCEA, 0x6B82, 0xCF65, + 0x6B83, 0xAC6F, 0x6B84, 0xCF66, 0x6B86, 0xAC70, 0x6B88, 0xD1FC, + 0x6B89, 0xAEEE, 0x6B8A, 0xAEED, 0x6B8C, 0xD5DE, 0x6B8D, 0xD5DC, + 0x6B8E, 0xD5DD, 0x6B8F, 0xD5DB, 0x6B91, 0xD5DA, 0x6B94, 0xD9DE, + 0x6B95, 0xD9E1, 0x6B96, 0xB4DE, 0x6B97, 0xD9DF, 0x6B98, 0xB4DD, + 0x6B99, 0xD9E0, 0x6B9B, 0xDDFB, 0x6B9E, 0xE266, 0x6B9F, 0xE267, + 0x6BA0, 0xE268, 0x6BA2, 0xE5F3, 0x6BA3, 0xE5F2, 0x6BA4, 0xBCDC, + 0x6BA5, 0xE5F1, 0x6BA6, 0xE5F4, 0x6BA7, 0xE9E1, 0x6BAA, 0xE9E2, + 0x6BAB, 0xE9E3, 0x6BAD, 0xED4C, 0x6BAE, 0xC0D4, 0x6BAF, 0xC26C, + 0x6BB0, 0xF25A, 0x6BB2, 0xC4E8, 0x6BB3, 0xC95F, 0x6BB5, 0xAC71, + 0x6BB6, 0xCF67, 0x6BB7, 0xAEEF, 0x6BBA, 0xB1FE, 0x6BBC, 0xB4DF, + 0x6BBD, 0xD9E2, 0x6BBF, 0xB7B5, 0x6BC0, 0xB7B4, 0x6BC3, 0xE269, + 0x6BC4, 0xE26A, 0x6BC5, 0xBCDD, 0x6BC6, 0xBCDE, 0x6BC7, 0xE9E5, + 0x6BC8, 0xE9E4, 0x6BC9, 0xEFE9, 0x6BCA, 0xF7E3, 0x6BCB, 0xA4F0, + 0x6BCC, 0xC960, 0x6BCD, 0xA5C0, 0x6BCF, 0xA843, 0x6BD0, 0xCB48, + 0x6BD2, 0xAC72, 0x6BD3, 0xB7B6, 0x6BD4, 0xA4F1, 0x6BD6, 0xCF68, + 0x6BD7, 0xAC73, 0x6BD8, 0xCF69, 0x6BDA, 0xC0D5, 0x6BDB, 0xA4F2, + 0x6BDE, 0xCCEC, 0x6BE0, 0xCF6A, 0x6BE2, 0xD242, 0x6BE3, 0xD241, + 0x6BE4, 0xD1FE, 0x6BE6, 0xD1FD, 0x6BE7, 0xD243, 0x6BE8, 0xD240, + 0x6BEB, 0xB240, 0x6BEC, 0xB241, 0x6BEF, 0xB4E0, 0x6BF0, 0xD9E3, + 0x6BF2, 0xD9E4, 0x6BF3, 0xD9E5, 0x6BF7, 0xDE41, 0x6BF8, 0xDE42, + 0x6BF9, 0xDE40, 0x6BFB, 0xDDFD, 0x6BFC, 0xDDFE, 0x6BFD, 0xB7B7, + 0x6BFE, 0xE26B, 0x6BFF, 0xE5F7, 0x6C00, 0xE5F6, 0x6C01, 0xE5F5, + 0x6C02, 0xE5F8, 0x6C03, 0xE9E7, 0x6C04, 0xE9E6, 0x6C05, 0xBEFB, + 0x6C06, 0xE9E8, 0x6C08, 0xC0D6, 0x6C09, 0xED4D, 0x6C0B, 0xEFEA, + 0x6C0C, 0xF25B, 0x6C0D, 0xF6E7, 0x6C0F, 0xA4F3, 0x6C10, 0xA5C2, + 0x6C11, 0xA5C1, 0x6C13, 0xAA5D, 0x6C14, 0xC961, 0x6C15, 0xC97E, + 0x6C16, 0xA6BB, 0x6C18, 0xC9F7, 0x6C19, 0xCB49, 0x6C1A, 0xCB4A, + 0x6C1B, 0xAA5E, 0x6C1D, 0xCCED, 0x6C1F, 0xAC74, 0x6C20, 0xCF6B, + 0x6C21, 0xCF6C, 0x6C23, 0xAEF0, 0x6C24, 0xAEF4, 0x6C25, 0xD244, + 0x6C26, 0xAEF3, 0x6C27, 0xAEF1, 0x6C28, 0xAEF2, 0x6C2A, 0xD5DF, + 0x6C2B, 0xB242, 0x6C2C, 0xB4E3, 0x6C2E, 0xB4E1, 0x6C2F, 0xB4E2, + 0x6C30, 0xD9E6, 0x6C33, 0xBA72, 0x6C34, 0xA4F4, 0x6C36, 0xC9A1, + 0x6C38, 0xA5C3, 0x6C3B, 0xC9A4, 0x6C3E, 0xA5C6, 0x6C3F, 0xC9A3, + 0x6C40, 0xA5C5, 0x6C41, 0xA5C4, 0x6C42, 0xA844, 0x6C43, 0xC9A2, + 0x6C46, 0xC9F8, 0x6C4A, 0xC9FC, 0x6C4B, 0xC9FE, 0x6C4C, 0xCA40, + 0x6C4D, 0xA6C5, 0x6C4E, 0xA6C6, 0x6C4F, 0xC9FB, 0x6C50, 0xA6C1, + 0x6C52, 0xC9F9, 0x6C54, 0xC9FD, 0x6C55, 0xA6C2, 0x6C57, 0xA6BD, + 0x6C59, 0xA6BE, 0x6C5B, 0xA6C4, 0x6C5C, 0xC9FA, 0x6C5D, 0xA6BC, + 0x6C5E, 0xA845, 0x6C5F, 0xA6BF, 0x6C60, 0xA6C0, 0x6C61, 0xA6C3, + 0x6C65, 0xCB5B, 0x6C66, 0xCB59, 0x6C67, 0xCB4C, 0x6C68, 0xA851, + 0x6C69, 0xCB53, 0x6C6A, 0xA84C, 0x6C6B, 0xCB4D, 0x6C6D, 0xCB55, + 0x6C6F, 0xCB52, 0x6C70, 0xA84F, 0x6C71, 0xCB51, 0x6C72, 0xA856, + 0x6C73, 0xCB5A, 0x6C74, 0xA858, 0x6C76, 0xA85A, 0x6C78, 0xCB4B, + 0x6C7A, 0xA84D, 0x6C7B, 0xCB5C, 0x6C7D, 0xA854, 0x6C7E, 0xA857, + 0x6C80, 0xCD45, 0x6C81, 0xA847, 0x6C82, 0xA85E, 0x6C83, 0xA855, + 0x6C84, 0xCB4E, 0x6C85, 0xA84A, 0x6C86, 0xA859, 0x6C87, 0xCB56, + 0x6C88, 0xA848, 0x6C89, 0xA849, 0x6C8A, 0xCD43, 0x6C8B, 0xCB4F, + 0x6C8C, 0xA850, 0x6C8D, 0xA85B, 0x6C8E, 0xCB5D, 0x6C8F, 0xCB50, + 0x6C90, 0xA84E, 0x6C92, 0xA853, 0x6C93, 0xCCEE, 0x6C94, 0xA85C, + 0x6C95, 0xCB57, 0x6C96, 0xA852, 0x6C98, 0xA85D, 0x6C99, 0xA846, + 0x6C9A, 0xCB54, 0x6C9B, 0xA84B, 0x6C9C, 0xCB58, 0x6C9D, 0xCD44, + 0x6CAB, 0xAA6A, 0x6CAC, 0xAA7A, 0x6CAD, 0xCCF5, 0x6CAE, 0xAA71, + 0x6CB0, 0xCD4B, 0x6CB1, 0xAA62, 0x6CB3, 0xAA65, 0x6CB4, 0xCD42, + 0x6CB6, 0xCCF3, 0x6CB7, 0xCCF7, 0x6CB8, 0xAA6D, 0x6CB9, 0xAA6F, + 0x6CBA, 0xCCFA, 0x6CBB, 0xAA76, 0x6CBC, 0xAA68, 0x6CBD, 0xAA66, + 0x6CBE, 0xAA67, 0x6CBF, 0xAA75, 0x6CC0, 0xCD47, 0x6CC1, 0xAA70, + 0x6CC2, 0xCCF9, 0x6CC3, 0xCCFB, 0x6CC4, 0xAA6E, 0x6CC5, 0xAA73, + 0x6CC6, 0xCCFC, 0x6CC7, 0xCD4A, 0x6CC9, 0xAC75, 0x6CCA, 0xAA79, + 0x6CCC, 0xAA63, 0x6CCD, 0xCD49, 0x6CCF, 0xCD4D, 0x6CD0, 0xCCF8, + 0x6CD1, 0xCD4F, 0x6CD2, 0xCD40, 0x6CD3, 0xAA6C, 0x6CD4, 0xCCF4, + 0x6CD5, 0xAA6B, 0x6CD6, 0xAA7D, 0x6CD7, 0xAA72, 0x6CD9, 0xCCF2, + 0x6CDA, 0xCF75, 0x6CDB, 0xAA78, 0x6CDC, 0xAA7C, 0x6CDD, 0xCD41, + 0x6CDE, 0xCD46, 0x6CE0, 0xAA7E, 0x6CE1, 0xAA77, 0x6CE2, 0xAA69, + 0x6CE3, 0xAA5F, 0x6CE5, 0xAA64, 0x6CE7, 0xCCF6, 0x6CE8, 0xAA60, + 0x6CE9, 0xCD4E, 0x6CEB, 0xCCF0, 0x6CEC, 0xCCEF, 0x6CED, 0xCCFD, + 0x6CEE, 0xCCF1, 0x6CEF, 0xAA7B, 0x6CF0, 0xAEF5, 0x6CF1, 0xAA74, + 0x6CF2, 0xCCFE, 0x6CF3, 0xAA61, 0x6CF5, 0xACA6, 0x6CF9, 0xCD4C, + 0x6D00, 0xCF7C, 0x6D01, 0xCFA1, 0x6D03, 0xCFA4, 0x6D04, 0xCF77, + 0x6D07, 0xCFA7, 0x6D08, 0xCFAA, 0x6D09, 0xCFAC, 0x6D0A, 0xCF74, + 0x6D0B, 0xAC76, 0x6D0C, 0xAC7B, 0x6D0D, 0xD249, 0x6D0E, 0xACAD, + 0x6D0F, 0xCFA5, 0x6D10, 0xCFAD, 0x6D11, 0xCF7B, 0x6D12, 0xCF73, + 0x6D16, 0xD264, 0x6D17, 0xAC7E, 0x6D18, 0xCFA2, 0x6D19, 0xCF78, + 0x6D1A, 0xCF7A, 0x6D1B, 0xACA5, 0x6D1D, 0xCF7D, 0x6D1E, 0xAC7D, + 0x6D1F, 0xCF70, 0x6D20, 0xCFA8, 0x6D22, 0xCFAB, 0x6D25, 0xAC7A, + 0x6D27, 0xACA8, 0x6D28, 0xCF6D, 0x6D29, 0xACAA, 0x6D2A, 0xAC78, + 0x6D2B, 0xACAE, 0x6D2C, 0xCFA9, 0x6D2D, 0xCF6F, 0x6D2E, 0xACAB, + 0x6D2F, 0xD25E, 0x6D30, 0xCD48, 0x6D31, 0xAC7C, 0x6D32, 0xAC77, + 0x6D33, 0xCF76, 0x6D34, 0xCF6E, 0x6D35, 0xACAC, 0x6D36, 0xACA4, + 0x6D37, 0xCFA3, 0x6D38, 0xACA9, 0x6D39, 0xACA7, 0x6D3A, 0xCF79, + 0x6D3B, 0xACA1, 0x6D3C, 0xCF71, 0x6D3D, 0xACA2, 0x6D3E, 0xACA3, + 0x6D3F, 0xCF72, 0x6D40, 0xCFA6, 0x6D41, 0xAC79, 0x6D42, 0xCF7E, + 0x6D58, 0xD24C, 0x6D59, 0xAEFD, 0x6D5A, 0xAF43, 0x6D5E, 0xD255, + 0x6D5F, 0xD25B, 0x6D60, 0xD257, 0x6D61, 0xD24A, 0x6D62, 0xD24D, + 0x6D63, 0xD246, 0x6D64, 0xD247, 0x6D65, 0xAF4A, 0x6D66, 0xAEFA, + 0x6D67, 0xD256, 0x6D68, 0xD25F, 0x6D69, 0xAF45, 0x6D6A, 0xAEF6, + 0x6D6C, 0xAF40, 0x6D6D, 0xD24E, 0x6D6E, 0xAF42, 0x6D6F, 0xD24F, + 0x6D70, 0xD259, 0x6D74, 0xAF44, 0x6D75, 0xD268, 0x6D76, 0xD248, + 0x6D77, 0xAEFC, 0x6D78, 0xAEFB, 0x6D79, 0xAF48, 0x6D7A, 0xD245, + 0x6D7B, 0xD266, 0x6D7C, 0xD25A, 0x6D7D, 0xD267, 0x6D7E, 0xD261, + 0x6D7F, 0xD253, 0x6D80, 0xD262, 0x6D82, 0xD25C, 0x6D83, 0xD265, + 0x6D84, 0xD263, 0x6D85, 0xAF49, 0x6D86, 0xD254, 0x6D87, 0xAEF9, + 0x6D88, 0xAEF8, 0x6D89, 0xAF41, 0x6D8A, 0xAF47, 0x6D8B, 0xD260, + 0x6D8C, 0xAF46, 0x6D8D, 0xD251, 0x6D8E, 0xB243, 0x6D90, 0xD269, + 0x6D91, 0xD250, 0x6D92, 0xD24B, 0x6D93, 0xAEFE, 0x6D94, 0xAF4B, + 0x6D95, 0xAEF7, 0x6D97, 0xD258, 0x6D98, 0xD25D, 0x6DAA, 0xB265, + 0x6DAB, 0xD5E1, 0x6DAC, 0xD5E5, 0x6DAE, 0xB252, 0x6DAF, 0xB250, + 0x6DB2, 0xB247, 0x6DB3, 0xD5E3, 0x6DB4, 0xD5E2, 0x6DB5, 0xB25B, + 0x6DB7, 0xD5E8, 0x6DB8, 0xB255, 0x6DBA, 0xD5FA, 0x6DBB, 0xD647, + 0x6DBC, 0xB244, 0x6DBD, 0xD5F7, 0x6DBE, 0xD5F0, 0x6DBF, 0xB267, + 0x6DC0, 0xD5E0, 0x6DC2, 0xD5FC, 0x6DC4, 0xB264, 0x6DC5, 0xB258, + 0x6DC6, 0xB263, 0x6DC7, 0xB24E, 0x6DC8, 0xD5EC, 0x6DC9, 0xD5FE, + 0x6DCA, 0xD5F6, 0x6DCB, 0xB24F, 0x6DCC, 0xB249, 0x6DCD, 0xD645, + 0x6DCF, 0xD5FD, 0x6DD0, 0xD640, 0x6DD1, 0xB251, 0x6DD2, 0xB259, + 0x6DD3, 0xD642, 0x6DD4, 0xD5EA, 0x6DD5, 0xD5FB, 0x6DD6, 0xD5EF, + 0x6DD7, 0xD644, 0x6DD8, 0xB25E, 0x6DD9, 0xB246, 0x6DDA, 0xB25C, + 0x6DDB, 0xD5F4, 0x6DDC, 0xD5F2, 0x6DDD, 0xD5F3, 0x6DDE, 0xB253, + 0x6DDF, 0xD5EE, 0x6DE0, 0xD5ED, 0x6DE1, 0xB248, 0x6DE2, 0xD5E7, + 0x6DE3, 0xD646, 0x6DE4, 0xB24A, 0x6DE5, 0xD5F1, 0x6DE6, 0xB268, + 0x6DE8, 0xB262, 0x6DE9, 0xD5E6, 0x6DEA, 0xB25F, 0x6DEB, 0xB25D, + 0x6DEC, 0xB266, 0x6DED, 0xD5F8, 0x6DEE, 0xB261, 0x6DEF, 0xD252, + 0x6DF0, 0xD5F9, 0x6DF1, 0xB260, 0x6DF2, 0xD641, 0x6DF3, 0xB245, + 0x6DF4, 0xD5F5, 0x6DF5, 0xB257, 0x6DF6, 0xD5E9, 0x6DF7, 0xB256, + 0x6DF9, 0xB254, 0x6DFA, 0xB24C, 0x6DFB, 0xB24B, 0x6DFC, 0xD9E7, + 0x6DFD, 0xD643, 0x6E00, 0xD5EB, 0x6E03, 0xD9FC, 0x6E05, 0xB24D, + 0x6E19, 0xB541, 0x6E1A, 0xB25A, 0x6E1B, 0xB4EE, 0x6E1C, 0xD9F6, + 0x6E1D, 0xB4FC, 0x6E1F, 0xD9EA, 0x6E20, 0xB4EB, 0x6E21, 0xB4E7, + 0x6E22, 0xDA49, 0x6E23, 0xB4ED, 0x6E24, 0xB4F1, 0x6E25, 0xB4EC, + 0x6E26, 0xB4F5, 0x6E27, 0xDA4D, 0x6E28, 0xDA44, 0x6E2B, 0xD9F1, + 0x6E2C, 0xB4FA, 0x6E2D, 0xB4F4, 0x6E2E, 0xD9FD, 0x6E2F, 0xB4E4, + 0x6E30, 0xDA4A, 0x6E31, 0xDA43, 0x6E32, 0xB4E8, 0x6E33, 0xD9F7, + 0x6E34, 0xB4F7, 0x6E35, 0xDA55, 0x6E36, 0xDA56, 0x6E38, 0xB4E5, + 0x6E39, 0xDA48, 0x6E3A, 0xB4F9, 0x6E3B, 0xD9FB, 0x6E3C, 0xD9ED, + 0x6E3D, 0xD9EE, 0x6E3E, 0xB4FD, 0x6E3F, 0xD9F2, 0x6E40, 0xD9F9, + 0x6E41, 0xD9F3, 0x6E43, 0xB4FB, 0x6E44, 0xB544, 0x6E45, 0xD9EF, + 0x6E46, 0xD9E8, 0x6E47, 0xD9E9, 0x6E49, 0xD9EB, 0x6E4A, 0xB4EA, + 0x6E4B, 0xD9F8, 0x6E4D, 0xB4F8, 0x6E4E, 0xB542, 0x6E51, 0xD9FA, + 0x6E52, 0xDA53, 0x6E53, 0xDA4B, 0x6E54, 0xB4E6, 0x6E55, 0xDA51, + 0x6E56, 0xB4F2, 0x6E58, 0xB4F0, 0x6E5A, 0xDA57, 0x6E5B, 0xB4EF, + 0x6E5C, 0xDA41, 0x6E5D, 0xD9F4, 0x6E5E, 0xD9FE, 0x6E5F, 0xB547, + 0x6E60, 0xDA45, 0x6E61, 0xDA42, 0x6E62, 0xD9F0, 0x6E63, 0xB543, + 0x6E64, 0xDA4F, 0x6E65, 0xDA4C, 0x6E66, 0xDA54, 0x6E67, 0xB4E9, + 0x6E68, 0xDA40, 0x6E69, 0xB546, 0x6E6B, 0xDA47, 0x6E6E, 0xB4F3, + 0x6E6F, 0xB4F6, 0x6E71, 0xDA46, 0x6E72, 0xB545, 0x6E73, 0xD9F5, + 0x6E74, 0xD5E4, 0x6E77, 0xDA50, 0x6E78, 0xDA4E, 0x6E79, 0xDA52, + 0x6E88, 0xD9EC, 0x6E89, 0xB540, 0x6E8D, 0xDE61, 0x6E8E, 0xDE60, + 0x6E8F, 0xDE46, 0x6E90, 0xB7BD, 0x6E92, 0xDE5F, 0x6E93, 0xDE49, + 0x6E94, 0xDE4A, 0x6E96, 0xB7C7, 0x6E97, 0xDE68, 0x6E98, 0xB7C2, + 0x6E99, 0xDE5E, 0x6E9B, 0xDE43, 0x6E9C, 0xB7C8, 0x6E9D, 0xB7BE, + 0x6E9E, 0xDE52, 0x6E9F, 0xDE48, 0x6EA0, 0xDE4B, 0x6EA1, 0xDE63, + 0x6EA2, 0xB7B8, 0x6EA3, 0xDE6A, 0x6EA4, 0xDE62, 0x6EA5, 0xB7C1, + 0x6EA6, 0xDE57, 0x6EA7, 0xB7CC, 0x6EAA, 0xB7CB, 0x6EAB, 0xB7C5, + 0x6EAE, 0xDE69, 0x6EAF, 0xB7B9, 0x6EB0, 0xDE55, 0x6EB1, 0xDE4C, + 0x6EB2, 0xDE59, 0x6EB3, 0xDE65, 0x6EB4, 0xB7CD, 0x6EB6, 0xB7BB, + 0x6EB7, 0xDE54, 0x6EB9, 0xDE4D, 0x6EBA, 0xB7C4, 0x6EBC, 0xB7C3, + 0x6EBD, 0xDE50, 0x6EBE, 0xDE5A, 0x6EBF, 0xDE64, 0x6EC0, 0xDE47, + 0x6EC1, 0xDE51, 0x6EC2, 0xB7BC, 0x6EC3, 0xDE5B, 0x6EC4, 0xB7C9, + 0x6EC5, 0xB7C0, 0x6EC6, 0xDE4E, 0x6EC7, 0xB7BF, 0x6EC8, 0xDE45, + 0x6EC9, 0xDE53, 0x6ECA, 0xDE67, 0x6ECB, 0xB4FE, 0x6ECC, 0xBAB0, + 0x6ECD, 0xDE56, 0x6ECE, 0xE26C, 0x6ECF, 0xDE58, 0x6ED0, 0xDE66, + 0x6ED1, 0xB7C6, 0x6ED2, 0xDE4F, 0x6ED3, 0xB7BA, 0x6ED4, 0xB7CA, + 0x6ED5, 0xBCF0, 0x6ED6, 0xDE44, 0x6ED8, 0xDE5D, 0x6EDC, 0xDE5C, + 0x6EEB, 0xE2AA, 0x6EEC, 0xBAAD, 0x6EED, 0xE27D, 0x6EEE, 0xE2A4, + 0x6EEF, 0xBAA2, 0x6EF1, 0xE26E, 0x6EF2, 0xBAAF, 0x6EF4, 0xBA77, + 0x6EF5, 0xE26D, 0x6EF6, 0xE2B0, 0x6EF7, 0xBAB1, 0x6EF8, 0xE271, + 0x6EF9, 0xE2A3, 0x6EFB, 0xE273, 0x6EFC, 0xE2B3, 0x6EFD, 0xE2AF, + 0x6EFE, 0xBA75, 0x6EFF, 0xBAA1, 0x6F00, 0xE653, 0x6F01, 0xBAAE, + 0x6F02, 0xBA7D, 0x6F03, 0xE26F, 0x6F05, 0xE2AE, 0x6F06, 0xBAA3, + 0x6F07, 0xE2AB, 0x6F08, 0xE2B8, 0x6F09, 0xE275, 0x6F0A, 0xE27E, + 0x6F0D, 0xE2B6, 0x6F0E, 0xE2AC, 0x6F0F, 0xBA7C, 0x6F12, 0xE27C, + 0x6F13, 0xBA76, 0x6F14, 0xBA74, 0x6F15, 0xBAA8, 0x6F18, 0xE27A, + 0x6F19, 0xE277, 0x6F1A, 0xE278, 0x6F1C, 0xE2B2, 0x6F1E, 0xE2B7, + 0x6F1F, 0xE2B5, 0x6F20, 0xBA7A, 0x6F21, 0xE2B9, 0x6F22, 0xBA7E, + 0x6F23, 0xBAA7, 0x6F25, 0xE270, 0x6F26, 0xE5FA, 0x6F27, 0xE279, + 0x6F29, 0xBA78, 0x6F2A, 0xBAAC, 0x6F2B, 0xBAA9, 0x6F2C, 0xBA7B, + 0x6F2D, 0xE2A5, 0x6F2E, 0xE274, 0x6F2F, 0xBAAA, 0x6F30, 0xE2A7, + 0x6F31, 0xBAA4, 0x6F32, 0xBAA6, 0x6F33, 0xBA73, 0x6F35, 0xE2A9, + 0x6F36, 0xE2A1, 0x6F37, 0xE272, 0x6F38, 0xBAA5, 0x6F39, 0xE2B1, + 0x6F3A, 0xE2B4, 0x6F3B, 0xE27B, 0x6F3C, 0xE2A8, 0x6F3E, 0xBA79, + 0x6F3F, 0xBCDF, 0x6F40, 0xE2A6, 0x6F41, 0xE5F9, 0x6F43, 0xE2AD, + 0x6F4E, 0xE276, 0x6F4F, 0xE644, 0x6F50, 0xE64E, 0x6F51, 0xBCE2, + 0x6F52, 0xE64D, 0x6F53, 0xE659, 0x6F54, 0xBCE4, 0x6F55, 0xE64B, + 0x6F57, 0xE64F, 0x6F58, 0xBCEF, 0x6F5A, 0xE646, 0x6F5B, 0xBCE7, + 0x6F5D, 0xE652, 0x6F5E, 0xE9F0, 0x6F5F, 0xBCF3, 0x6F60, 0xBCF2, + 0x6F61, 0xE654, 0x6F62, 0xE643, 0x6F63, 0xE65E, 0x6F64, 0xBCED, + 0x6F66, 0xBCE3, 0x6F67, 0xE657, 0x6F69, 0xE65B, 0x6F6A, 0xE660, + 0x6F6B, 0xE655, 0x6F6C, 0xE649, 0x6F6D, 0xBCE6, 0x6F6E, 0xBCE9, + 0x6F6F, 0xBCF1, 0x6F70, 0xBCEC, 0x6F72, 0xE64C, 0x6F73, 0xE2A2, + 0x6F76, 0xE648, 0x6F77, 0xE65F, 0x6F78, 0xBCE8, 0x6F7A, 0xBCEB, + 0x6F7B, 0xE661, 0x6F7C, 0xBCE0, 0x6F7D, 0xE656, 0x6F7E, 0xE5FB, + 0x6F7F, 0xE65C, 0x6F80, 0xC0DF, 0x6F82, 0xE64A, 0x6F84, 0xBCE1, + 0x6F85, 0xE645, 0x6F86, 0xBCE5, 0x6F87, 0xE5FC, 0x6F88, 0xBAAB, + 0x6F89, 0xE641, 0x6F8B, 0xE65A, 0x6F8C, 0xE642, 0x6F8D, 0xE640, + 0x6F8E, 0xBCEA, 0x6F90, 0xE658, 0x6F92, 0xE5FE, 0x6F93, 0xE651, + 0x6F94, 0xE650, 0x6F95, 0xE65D, 0x6F96, 0xE647, 0x6F97, 0xBCEE, + 0x6F9E, 0xE9F3, 0x6FA0, 0xBF49, 0x6FA1, 0xBEFE, 0x6FA2, 0xEA40, + 0x6FA3, 0xE9EB, 0x6FA4, 0xBF41, 0x6FA5, 0xE9F7, 0x6FA6, 0xBF48, + 0x6FA7, 0xBF43, 0x6FA8, 0xE9F5, 0x6FA9, 0xED4F, 0x6FAA, 0xE9FB, + 0x6FAB, 0xEA42, 0x6FAC, 0xE9FA, 0x6FAD, 0xE9E9, 0x6FAE, 0xE9F8, + 0x6FAF, 0xEA44, 0x6FB0, 0xEA46, 0x6FB1, 0xBEFD, 0x6FB2, 0xEA45, + 0x6FB3, 0xBF44, 0x6FB4, 0xBF4A, 0x6FB6, 0xBF47, 0x6FB8, 0xE9FE, + 0x6FB9, 0xBF46, 0x6FBA, 0xE9F9, 0x6FBC, 0xE9ED, 0x6FBD, 0xE9F2, + 0x6FBF, 0xE9FD, 0x6FC0, 0xBF45, 0x6FC1, 0xBF42, 0x6FC2, 0xBEFC, + 0x6FC3, 0xBF40, 0x6FC4, 0xE9F1, 0x6FC6, 0xE5FD, 0x6FC7, 0xE9EC, + 0x6FC8, 0xE9EF, 0x6FC9, 0xEA41, 0x6FCA, 0xE9F4, 0x6FCB, 0xE9EA, + 0x6FCC, 0xED4E, 0x6FCD, 0xEA43, 0x6FCE, 0xE9EE, 0x6FCF, 0xE9FC, + 0x6FD4, 0xED51, 0x6FD5, 0xC0E3, 0x6FD8, 0xC0D7, 0x6FDB, 0xC0DB, + 0x6FDC, 0xED53, 0x6FDD, 0xED59, 0x6FDE, 0xED57, 0x6FDF, 0xC0D9, + 0x6FE0, 0xC0DA, 0x6FE1, 0xC0E1, 0x6FE2, 0xED5A, 0x6FE3, 0xED52, + 0x6FE4, 0xC0DC, 0x6FE6, 0xED56, 0x6FE7, 0xED55, 0x6FE8, 0xED5B, + 0x6FE9, 0xC0E2, 0x6FEB, 0xC0DD, 0x6FEC, 0xC0E0, 0x6FED, 0xED54, + 0x6FEE, 0xC0E4, 0x6FEF, 0xC0DE, 0x6FF0, 0xC0E5, 0x6FF1, 0xC0D8, + 0x6FF2, 0xED58, 0x6FF4, 0xED50, 0x6FF7, 0xEFF7, 0x6FFA, 0xC271, + 0x6FFB, 0xEFF4, 0x6FFC, 0xEFF6, 0x6FFE, 0xC26F, 0x6FFF, 0xEFF2, + 0x7000, 0xEFF3, 0x7001, 0xEFEE, 0x7004, 0xE9F6, 0x7005, 0xEFEF, + 0x7006, 0xC270, 0x7007, 0xEFEB, 0x7009, 0xC26D, 0x700A, 0xEFF8, + 0x700B, 0xC26E, 0x700C, 0xEFEC, 0x700D, 0xEFED, 0x700E, 0xEFF1, + 0x700F, 0xC273, 0x7011, 0xC272, 0x7014, 0xEFF0, 0x7015, 0xC378, + 0x7016, 0xF25F, 0x7017, 0xF265, 0x7018, 0xC379, 0x7019, 0xF25C, + 0x701A, 0xC376, 0x701B, 0xC373, 0x701C, 0xF267, 0x701D, 0xC377, + 0x701F, 0xC374, 0x7020, 0xF25E, 0x7021, 0xF261, 0x7022, 0xF262, + 0x7023, 0xF263, 0x7024, 0xF266, 0x7026, 0xEFF5, 0x7027, 0xF25D, + 0x7028, 0xC375, 0x7029, 0xF264, 0x702A, 0xF268, 0x702B, 0xF260, + 0x702F, 0xF45D, 0x7030, 0xC46A, 0x7031, 0xF460, 0x7032, 0xC46B, + 0x7033, 0xF468, 0x7034, 0xF45F, 0x7035, 0xF45C, 0x7037, 0xF45E, + 0x7038, 0xF462, 0x7039, 0xF465, 0x703A, 0xF464, 0x703B, 0xF467, + 0x703C, 0xF45B, 0x703E, 0xC469, 0x703F, 0xF463, 0x7040, 0xF466, + 0x7041, 0xF469, 0x7042, 0xF461, 0x7043, 0xF5D3, 0x7044, 0xF5D4, + 0x7045, 0xF5D8, 0x7046, 0xF5D9, 0x7048, 0xF5D6, 0x7049, 0xF5D7, + 0x704A, 0xF5D5, 0x704C, 0xC4E9, 0x7051, 0xC578, 0x7052, 0xF6EB, + 0x7055, 0xF6E8, 0x7056, 0xF6E9, 0x7057, 0xF6EA, 0x7058, 0xC579, + 0x705A, 0xF7E5, 0x705B, 0xF7E4, 0x705D, 0xF8AF, 0x705E, 0xC5F4, + 0x705F, 0xF8AD, 0x7060, 0xF8B0, 0x7061, 0xF8AE, 0x7062, 0xF8F5, + 0x7063, 0xC657, 0x7064, 0xC665, 0x7065, 0xF9A3, 0x7066, 0xF96C, + 0x7068, 0xF9A2, 0x7069, 0xF9D0, 0x706A, 0xF9D1, 0x706B, 0xA4F5, + 0x7070, 0xA6C7, 0x7071, 0xCA41, 0x7074, 0xCB5E, 0x7076, 0xA85F, + 0x7078, 0xA862, 0x707A, 0xCB5F, 0x707C, 0xA860, 0x707D, 0xA861, + 0x7082, 0xCD58, 0x7083, 0xCD5A, 0x7084, 0xCD55, 0x7085, 0xCD52, + 0x7086, 0xCD54, 0x708A, 0xAAA4, 0x708E, 0xAAA2, 0x7091, 0xCD56, + 0x7092, 0xAAA3, 0x7093, 0xCD53, 0x7094, 0xCD50, 0x7095, 0xAAA1, + 0x7096, 0xCD57, 0x7098, 0xCD51, 0x7099, 0xAAA5, 0x709A, 0xCD59, + 0x709F, 0xCFAF, 0x70A1, 0xCFB3, 0x70A4, 0xACB7, 0x70A9, 0xCFB6, + 0x70AB, 0xACAF, 0x70AC, 0xACB2, 0x70AD, 0xACB4, 0x70AE, 0xACB6, + 0x70AF, 0xACB3, 0x70B0, 0xCFB2, 0x70B1, 0xCFB1, 0x70B3, 0xACB1, + 0x70B4, 0xCFB4, 0x70B5, 0xCFB5, 0x70B7, 0xCFAE, 0x70B8, 0xACB5, + 0x70BA, 0xACB0, 0x70BE, 0xCFB0, 0x70C5, 0xD277, 0x70C6, 0xD278, + 0x70C7, 0xD279, 0x70C8, 0xAF50, 0x70CA, 0xAF4C, 0x70CB, 0xD26E, + 0x70CD, 0xD276, 0x70CE, 0xD27B, 0x70CF, 0xAF51, 0x70D1, 0xD26C, + 0x70D2, 0xD272, 0x70D3, 0xD26B, 0x70D4, 0xD275, 0x70D7, 0xD271, + 0x70D8, 0xAF4D, 0x70D9, 0xAF4F, 0x70DA, 0xD27A, 0x70DC, 0xD26A, + 0x70DD, 0xD26D, 0x70DE, 0xD273, 0x70E0, 0xD274, 0x70E1, 0xD27C, + 0x70E2, 0xD270, 0x70E4, 0xAF4E, 0x70EF, 0xB26D, 0x70F0, 0xD64E, + 0x70F3, 0xD650, 0x70F4, 0xD64C, 0x70F6, 0xD658, 0x70F7, 0xD64A, + 0x70F8, 0xD657, 0x70F9, 0xB269, 0x70FA, 0xD648, 0x70FB, 0xDA5B, + 0x70FC, 0xD652, 0x70FD, 0xB26C, 0x70FF, 0xD653, 0x7100, 0xD656, + 0x7102, 0xD65A, 0x7104, 0xD64F, 0x7106, 0xD654, 0x7109, 0xB26A, + 0x710A, 0xB26B, 0x710B, 0xD659, 0x710C, 0xD64D, 0x710D, 0xD649, + 0x710E, 0xD65B, 0x7110, 0xD651, 0x7113, 0xD655, 0x7117, 0xD64B, + 0x7119, 0xB548, 0x711A, 0xB549, 0x711B, 0xDA65, 0x711C, 0xB54F, + 0x711E, 0xDA59, 0x711F, 0xDA62, 0x7120, 0xDA58, 0x7121, 0xB54C, + 0x7122, 0xDA60, 0x7123, 0xDA5E, 0x7125, 0xDA5F, 0x7126, 0xB54A, + 0x7128, 0xDA63, 0x712E, 0xDA5C, 0x712F, 0xDA5A, 0x7130, 0xB54B, + 0x7131, 0xDA5D, 0x7132, 0xDA61, 0x7136, 0xB54D, 0x713A, 0xDA64, + 0x7141, 0xDE70, 0x7142, 0xDE77, 0x7143, 0xDE79, 0x7144, 0xDEA1, + 0x7146, 0xB7DA, 0x7147, 0xDE6B, 0x7149, 0xB7D2, 0x714B, 0xDE7A, + 0x714C, 0xB7D7, 0x714D, 0xDEA2, 0x714E, 0xB7CE, 0x7150, 0xDE7D, + 0x7152, 0xDE6D, 0x7153, 0xDE7E, 0x7154, 0xDE6C, 0x7156, 0xB7DC, + 0x7158, 0xDE78, 0x7159, 0xB7CF, 0x715A, 0xDEA3, 0x715C, 0xB7D4, + 0x715D, 0xDE71, 0x715E, 0xB7D9, 0x715F, 0xDE7C, 0x7160, 0xDE6F, + 0x7161, 0xDE76, 0x7162, 0xDE72, 0x7163, 0xDE6E, 0x7164, 0xB7D1, + 0x7165, 0xB7D8, 0x7166, 0xB7D6, 0x7167, 0xB7D3, 0x7168, 0xB7DB, + 0x7169, 0xB7D0, 0x716A, 0xDE75, 0x716C, 0xB7D5, 0x716E, 0xB54E, + 0x7170, 0xDE7B, 0x7172, 0xDE73, 0x7178, 0xDE74, 0x717B, 0xE2C1, + 0x717D, 0xBAB4, 0x7180, 0xE2BD, 0x7181, 0xE2C3, 0x7182, 0xE2BF, + 0x7184, 0xBAB6, 0x7185, 0xE2BE, 0x7186, 0xE2C2, 0x7187, 0xE2BA, + 0x7189, 0xE2BC, 0x718A, 0xBAB5, 0x718F, 0xE2C0, 0x7190, 0xE2BB, + 0x7192, 0xBAB7, 0x7194, 0xBAB2, 0x7197, 0xE2C4, 0x7199, 0xBAB3, + 0x719A, 0xE667, 0x719B, 0xE664, 0x719C, 0xE670, 0x719D, 0xE66A, + 0x719E, 0xE66C, 0x719F, 0xBCF4, 0x71A0, 0xE666, 0x71A1, 0xE66E, + 0x71A4, 0xE66D, 0x71A5, 0xE66B, 0x71A7, 0xE671, 0x71A8, 0xBCF7, + 0x71A9, 0xE668, 0x71AA, 0xE66F, 0x71AC, 0xBCF5, 0x71AF, 0xE663, + 0x71B0, 0xE665, 0x71B1, 0xBCF6, 0x71B2, 0xE662, 0x71B3, 0xE672, + 0x71B5, 0xE669, 0x71B8, 0xEA4A, 0x71B9, 0xBF51, 0x71BC, 0xEA55, + 0x71BD, 0xEA53, 0x71BE, 0xBF4B, 0x71BF, 0xEA49, 0x71C0, 0xEA4C, + 0x71C1, 0xEA4D, 0x71C2, 0xEA48, 0x71C3, 0xBF55, 0x71C4, 0xBF56, + 0x71C5, 0xEA47, 0x71C6, 0xEA56, 0x71C7, 0xEA51, 0x71C8, 0xBF4F, + 0x71C9, 0xBF4C, 0x71CA, 0xEA50, 0x71CB, 0xEA4E, 0x71CE, 0xBF52, + 0x71CF, 0xEA52, 0x71D0, 0xBF4D, 0x71D2, 0xBF4E, 0x71D4, 0xEA4F, + 0x71D5, 0xBF50, 0x71D6, 0xEA4B, 0x71D8, 0xEA54, 0x71D9, 0xBF53, + 0x71DA, 0xEA57, 0x71DB, 0xEA58, 0x71DC, 0xBF54, 0x71DF, 0xC0E7, + 0x71E0, 0xC0EE, 0x71E1, 0xED5C, 0x71E2, 0xED62, 0x71E4, 0xED60, + 0x71E5, 0xC0EA, 0x71E6, 0xC0E9, 0x71E7, 0xC0E6, 0x71E8, 0xED5E, + 0x71EC, 0xC0EC, 0x71ED, 0xC0EB, 0x71EE, 0xC0E8, 0x71F0, 0xED61, + 0x71F1, 0xED5D, 0x71F2, 0xED5F, 0x71F4, 0xC0ED, 0x71F8, 0xC277, + 0x71F9, 0xEFFB, 0x71FB, 0xC274, 0x71FC, 0xC275, 0x71FD, 0xEFFD, + 0x71FE, 0xC276, 0x71FF, 0xEFFA, 0x7201, 0xEFF9, 0x7202, 0xF26C, + 0x7203, 0xEFFC, 0x7205, 0xF26D, 0x7206, 0xC37A, 0x7207, 0xF26B, + 0x720A, 0xF26A, 0x720C, 0xF269, 0x720D, 0xC37B, 0x7210, 0xC46C, + 0x7213, 0xF46A, 0x7214, 0xF46B, 0x7219, 0xF5DC, 0x721A, 0xF5DB, + 0x721B, 0xC4EA, 0x721D, 0xF5DA, 0x721E, 0xF6EC, 0x721F, 0xF6ED, + 0x7222, 0xF7E6, 0x7223, 0xF8B1, 0x7226, 0xF8F6, 0x7227, 0xF9BC, + 0x7228, 0xC679, 0x7229, 0xF9C6, 0x722A, 0xA4F6, 0x722C, 0xAAA6, + 0x722D, 0xAAA7, 0x7230, 0xACB8, 0x7235, 0xC0EF, 0x7236, 0xA4F7, + 0x7238, 0xAAA8, 0x7239, 0xAF52, 0x723A, 0xB7DD, 0x723B, 0xA4F8, + 0x723D, 0xB26E, 0x723E, 0xBAB8, 0x723F, 0xC962, 0x7241, 0xCFB7, + 0x7242, 0xD27D, 0x7244, 0xE2C5, 0x7246, 0xC0F0, 0x7247, 0xA4F9, + 0x7248, 0xAAA9, 0x7249, 0xCFB8, 0x724A, 0xCFB9, 0x724B, 0xDA66, + 0x724C, 0xB550, 0x724F, 0xDEA4, 0x7252, 0xB7DE, 0x7253, 0xE2C6, + 0x7256, 0xBCF8, 0x7258, 0xC37C, 0x7259, 0xA4FA, 0x725A, 0xDA67, + 0x725B, 0xA4FB, 0x725D, 0xA6C9, 0x725E, 0xCA42, 0x725F, 0xA6C8, + 0x7260, 0xA865, 0x7261, 0xA864, 0x7262, 0xA863, 0x7263, 0xCB60, + 0x7267, 0xAAAA, 0x7269, 0xAAAB, 0x726A, 0xCD5B, 0x726C, 0xCFBA, + 0x726E, 0xCFBD, 0x726F, 0xACBA, 0x7270, 0xCFBB, 0x7272, 0xACB9, + 0x7273, 0xCFBC, 0x7274, 0xACBB, 0x7276, 0xD2A2, 0x7277, 0xD2A1, + 0x7278, 0xD27E, 0x7279, 0xAF53, 0x727B, 0xD65D, 0x727C, 0xD65E, + 0x727D, 0xB26F, 0x727E, 0xD65C, 0x727F, 0xD65F, 0x7280, 0xB552, + 0x7281, 0xB270, 0x7284, 0xB551, 0x7285, 0xDA6B, 0x7286, 0xDA6A, + 0x7288, 0xDA68, 0x7289, 0xDA69, 0x728B, 0xDA6C, 0x728C, 0xDEA6, + 0x728D, 0xDEA5, 0x728E, 0xDEA9, 0x7290, 0xDEA8, 0x7291, 0xDEA7, + 0x7292, 0xBAB9, 0x7293, 0xE2C9, 0x7295, 0xE2C8, 0x7296, 0xBABA, + 0x7297, 0xE2C7, 0x7298, 0xE673, 0x729A, 0xE674, 0x729B, 0xBCF9, + 0x729D, 0xEA59, 0x729E, 0xEA5A, 0x72A1, 0xF272, 0x72A2, 0xC37D, + 0x72A3, 0xF271, 0x72A4, 0xF270, 0x72A5, 0xF26E, 0x72A6, 0xF26F, + 0x72A7, 0xC4EB, 0x72A8, 0xF46C, 0x72A9, 0xF6EE, 0x72AA, 0xF8F7, + 0x72AC, 0xA4FC, 0x72AE, 0xC9A5, 0x72AF, 0xA5C7, 0x72B0, 0xC9A6, + 0x72B4, 0xCA43, 0x72B5, 0xCA44, 0x72BA, 0xCB66, 0x72BD, 0xCB62, + 0x72BF, 0xCB61, 0x72C0, 0xAAAC, 0x72C1, 0xCB65, 0x72C2, 0xA867, + 0x72C3, 0xCB63, 0x72C4, 0xA866, 0x72C5, 0xCB67, 0x72C6, 0xCB64, + 0x72C9, 0xCD5F, 0x72CA, 0xCFBE, 0x72CB, 0xCD5D, 0x72CC, 0xCD64, + 0x72CE, 0xAAAD, 0x72D0, 0xAAB0, 0x72D1, 0xCD65, 0x72D2, 0xCD61, + 0x72D4, 0xCD62, 0x72D6, 0xCD5C, 0x72D7, 0xAAAF, 0x72D8, 0xCD5E, + 0x72D9, 0xAAAE, 0x72DA, 0xCD63, 0x72DC, 0xCD60, 0x72DF, 0xCFC2, + 0x72E0, 0xACBD, 0x72E1, 0xACBE, 0x72E3, 0xCFC5, 0x72E4, 0xCFBF, + 0x72E6, 0xCFC4, 0x72E8, 0xCFC0, 0x72E9, 0xACBC, 0x72EA, 0xCFC3, + 0x72EB, 0xCFC1, 0x72F3, 0xD2A8, 0x72F4, 0xD2A5, 0x72F6, 0xD2A7, + 0x72F7, 0xAF58, 0x72F8, 0xAF57, 0x72F9, 0xAF55, 0x72FA, 0xD2A4, + 0x72FB, 0xD2A9, 0x72FC, 0xAF54, 0x72FD, 0xAF56, 0x72FE, 0xD2A6, + 0x72FF, 0xD667, 0x7300, 0xD2A3, 0x7301, 0xD2AA, 0x7307, 0xD662, + 0x7308, 0xD666, 0x730A, 0xD665, 0x730B, 0xDA6E, 0x730C, 0xDA79, + 0x730F, 0xD668, 0x7311, 0xD663, 0x7312, 0xDA6D, 0x7313, 0xB274, + 0x7316, 0xB273, 0x7317, 0xD661, 0x7318, 0xD664, 0x7319, 0xB275, + 0x731B, 0xB272, 0x731C, 0xB271, 0x731D, 0xD660, 0x731E, 0xD669, + 0x7322, 0xDA70, 0x7323, 0xDA77, 0x7325, 0xB554, 0x7326, 0xDA76, + 0x7327, 0xDA73, 0x7329, 0xB556, 0x732D, 0xDA75, 0x7330, 0xDA6F, + 0x7331, 0xDA71, 0x7332, 0xDA74, 0x7333, 0xDA72, 0x7334, 0xB555, + 0x7335, 0xDA78, 0x7336, 0xB553, 0x7337, 0xB7DF, 0x733A, 0xDEAD, + 0x733B, 0xDEAC, 0x733C, 0xDEAA, 0x733E, 0xB7E2, 0x733F, 0xB7E1, + 0x7340, 0xDEAE, 0x7342, 0xDEAB, 0x7343, 0xE2CA, 0x7344, 0xBABB, + 0x7345, 0xB7E0, 0x7349, 0xDEB0, 0x734A, 0xDEAF, 0x734C, 0xE2CD, + 0x734D, 0xE2CB, 0x734E, 0xBCFA, 0x7350, 0xBABC, 0x7351, 0xE2CC, + 0x7352, 0xE676, 0x7357, 0xBCFB, 0x7358, 0xE675, 0x7359, 0xE67E, + 0x735A, 0xE67D, 0x735B, 0xE67B, 0x735D, 0xE67A, 0x735E, 0xE677, + 0x735F, 0xE678, 0x7360, 0xE679, 0x7361, 0xE67C, 0x7362, 0xE6A1, + 0x7365, 0xEA5F, 0x7366, 0xEA5C, 0x7367, 0xEA5D, 0x7368, 0xBF57, + 0x7369, 0xEA5B, 0x736A, 0xEA61, 0x736B, 0xEA60, 0x736C, 0xEA5E, + 0x736E, 0xED64, 0x736F, 0xED65, 0x7370, 0xC0F1, 0x7372, 0xC0F2, + 0x7373, 0xED63, 0x7375, 0xC279, 0x7376, 0xEFFE, 0x7377, 0xC278, + 0x7378, 0xC37E, 0x737A, 0xC3A1, 0x737B, 0xC46D, 0x737C, 0xF46E, + 0x737D, 0xF46D, 0x737E, 0xF5DD, 0x737F, 0xF6EF, 0x7380, 0xC57A, + 0x7381, 0xF7E8, 0x7382, 0xF7E7, 0x7383, 0xF7E9, 0x7384, 0xA5C8, + 0x7385, 0xCFC6, 0x7386, 0xAF59, 0x7387, 0xB276, 0x7388, 0xD66A, + 0x7389, 0xA5C9, 0x738A, 0xC9A7, 0x738B, 0xA4FD, 0x738E, 0xCA45, + 0x7392, 0xCB6C, 0x7393, 0xCB6A, 0x7394, 0xCB6B, 0x7395, 0xCB68, + 0x7396, 0xA868, 0x7397, 0xCB69, 0x739D, 0xCD6D, 0x739F, 0xAAB3, + 0x73A0, 0xCD6B, 0x73A1, 0xCD67, 0x73A2, 0xCD6A, 0x73A4, 0xCD66, + 0x73A5, 0xAAB5, 0x73A6, 0xCD69, 0x73A8, 0xAAB2, 0x73A9, 0xAAB1, + 0x73AB, 0xAAB4, 0x73AC, 0xCD6C, 0x73AD, 0xCD68, 0x73B2, 0xACC2, + 0x73B3, 0xACC5, 0x73B4, 0xCFCE, 0x73B5, 0xCFCD, 0x73B6, 0xCFCC, + 0x73B7, 0xACBF, 0x73B8, 0xCFD5, 0x73B9, 0xCFCB, 0x73BB, 0xACC1, + 0x73BC, 0xD2AF, 0x73BE, 0xCFD2, 0x73BF, 0xCFD0, 0x73C0, 0xACC4, + 0x73C2, 0xCFC8, 0x73C3, 0xCFD3, 0x73C5, 0xCFCA, 0x73C6, 0xCFD4, + 0x73C7, 0xCFD1, 0x73C8, 0xCFC9, 0x73CA, 0xACC0, 0x73CB, 0xCFD6, + 0x73CC, 0xCFC7, 0x73CD, 0xACC3, 0x73D2, 0xD2B4, 0x73D3, 0xD2AB, + 0x73D4, 0xD2B6, 0x73D6, 0xD2AE, 0x73D7, 0xD2B9, 0x73D8, 0xD2BA, + 0x73D9, 0xD2AC, 0x73DA, 0xD2B8, 0x73DB, 0xD2B5, 0x73DC, 0xD2B3, + 0x73DD, 0xD2B7, 0x73DE, 0xAF5F, 0x73E0, 0xAF5D, 0x73E3, 0xD2B1, + 0x73E5, 0xD2AD, 0x73E7, 0xD2B0, 0x73E8, 0xD2BB, 0x73E9, 0xD2B2, + 0x73EA, 0xAF5E, 0x73EB, 0xCFCF, 0x73ED, 0xAF5A, 0x73EE, 0xAF5C, + 0x73F4, 0xD678, 0x73F5, 0xD66D, 0x73F6, 0xD66B, 0x73F8, 0xD66C, + 0x73FA, 0xD673, 0x73FC, 0xD674, 0x73FD, 0xD670, 0x73FE, 0xB27B, + 0x73FF, 0xD675, 0x7400, 0xD672, 0x7401, 0xD66F, 0x7403, 0xB279, + 0x7404, 0xD66E, 0x7405, 0xB277, 0x7406, 0xB27A, 0x7407, 0xD671, + 0x7408, 0xD679, 0x7409, 0xAF5B, 0x740A, 0xB278, 0x740B, 0xD677, + 0x740C, 0xD676, 0x740D, 0xB27C, 0x7416, 0xDA7E, 0x741A, 0xDAA1, + 0x741B, 0xB560, 0x741D, 0xDAA7, 0x7420, 0xDAA9, 0x7421, 0xDAA2, + 0x7422, 0xB55A, 0x7423, 0xDAA6, 0x7424, 0xDAA5, 0x7425, 0xB55B, + 0x7426, 0xB561, 0x7428, 0xB562, 0x7429, 0xDAA8, 0x742A, 0xB558, + 0x742B, 0xDA7D, 0x742C, 0xDA7B, 0x742D, 0xDAA3, 0x742E, 0xDA7A, + 0x742F, 0xB55F, 0x7430, 0xDA7C, 0x7431, 0xDAA4, 0x7432, 0xDAAA, + 0x7433, 0xB559, 0x7434, 0xB55E, 0x7435, 0xB55C, 0x7436, 0xB55D, + 0x743A, 0xB557, 0x743F, 0xB7E9, 0x7440, 0xDEB7, 0x7441, 0xB7E8, + 0x7442, 0xDEBB, 0x7444, 0xDEB1, 0x7446, 0xDEBC, 0x744A, 0xDEB2, + 0x744B, 0xDEB3, 0x744D, 0xDEBD, 0x744E, 0xDEBA, 0x744F, 0xDEB8, + 0x7450, 0xDEB9, 0x7451, 0xDEB5, 0x7452, 0xDEB4, 0x7454, 0xDEBE, + 0x7455, 0xB7E5, 0x7457, 0xDEB6, 0x7459, 0xB7EA, 0x745A, 0xB7E4, + 0x745B, 0xB7EB, 0x745C, 0xB7EC, 0x745E, 0xB7E7, 0x745F, 0xB7E6, + 0x7462, 0xE2CE, 0x7463, 0xBABE, 0x7464, 0xBABD, 0x7467, 0xE2D3, + 0x7469, 0xBCFC, 0x746A, 0xBABF, 0x746D, 0xBAC1, 0x746E, 0xE2D4, + 0x746F, 0xB7E3, 0x7470, 0xBAC0, 0x7471, 0xE2D0, 0x7472, 0xE2D2, + 0x7473, 0xE2CF, 0x7475, 0xE2D1, 0x7479, 0xE6AB, 0x747C, 0xE6AA, + 0x747D, 0xE6A7, 0x747E, 0xBD40, 0x747F, 0xEA62, 0x7480, 0xBD41, + 0x7481, 0xE6A6, 0x7483, 0xBCFE, 0x7485, 0xE6A8, 0x7486, 0xE6A5, + 0x7487, 0xE6A2, 0x7488, 0xE6A9, 0x7489, 0xE6A3, 0x748A, 0xE6A4, + 0x748B, 0xBCFD, 0x7490, 0xED69, 0x7492, 0xEA66, 0x7494, 0xEA65, + 0x7495, 0xEA67, 0x7497, 0xED66, 0x7498, 0xBF5A, 0x749A, 0xEA63, + 0x749C, 0xBF58, 0x749E, 0xBF5C, 0x749F, 0xBF5B, 0x74A0, 0xEA64, + 0x74A1, 0xEA68, 0x74A3, 0xBF59, 0x74A5, 0xED6D, 0x74A6, 0xC0F5, + 0x74A7, 0xC27A, 0x74A8, 0xC0F6, 0x74A9, 0xC0F3, 0x74AA, 0xED6A, + 0x74AB, 0xED68, 0x74AD, 0xED6B, 0x74AF, 0xED6E, 0x74B0, 0xC0F4, + 0x74B1, 0xED6C, 0x74B2, 0xED67, 0x74B5, 0xF042, 0x74B6, 0xF045, + 0x74B7, 0xF275, 0x74B8, 0xF040, 0x74BA, 0xF46F, 0x74BB, 0xF046, + 0x74BD, 0xC3A2, 0x74BE, 0xF044, 0x74BF, 0xC27B, 0x74C0, 0xF041, + 0x74C1, 0xF043, 0x74C2, 0xF047, 0x74C3, 0xF276, 0x74C5, 0xF274, + 0x74CA, 0xC3A3, 0x74CB, 0xF273, 0x74CF, 0xC46E, 0x74D4, 0xC4ED, + 0x74D5, 0xF6F1, 0x74D6, 0xC4EC, 0x74D7, 0xF6F3, 0x74D8, 0xF6F0, + 0x74D9, 0xF6F2, 0x74DA, 0xC5D0, 0x74DB, 0xF8B2, 0x74DC, 0xA5CA, + 0x74DD, 0xCD6E, 0x74DE, 0xD2BC, 0x74DF, 0xD2BD, 0x74E0, 0xB27D, + 0x74E1, 0xDEBF, 0x74E2, 0xBF5D, 0x74E3, 0xC3A4, 0x74E4, 0xC57B, + 0x74E5, 0xF8B3, 0x74E6, 0xA5CB, 0x74E8, 0xCD6F, 0x74E9, 0xA260, + 0x74EC, 0xCFD7, 0x74EE, 0xCFD8, 0x74F4, 0xD2BE, 0x74F5, 0xD2BF, + 0x74F6, 0xB27E, 0x74F7, 0xB2A1, 0x74FB, 0xDAAB, 0x74FD, 0xDEC2, + 0x74FE, 0xDEC1, 0x74FF, 0xDEC0, 0x7500, 0xE2D5, 0x7502, 0xE2D6, + 0x7503, 0xE2D7, 0x7504, 0xBAC2, 0x7507, 0xE6AD, 0x7508, 0xE6AC, + 0x750B, 0xEA69, 0x750C, 0xBF5E, 0x750D, 0xBF5F, 0x750F, 0xED72, + 0x7510, 0xED6F, 0x7511, 0xED70, 0x7512, 0xED71, 0x7513, 0xF049, + 0x7514, 0xF048, 0x7515, 0xC27C, 0x7516, 0xF277, 0x7517, 0xF5DE, + 0x7518, 0xA5CC, 0x751A, 0xACC6, 0x751C, 0xB2A2, 0x751D, 0xDEC3, + 0x751F, 0xA5CD, 0x7521, 0xD2C0, 0x7522, 0xB2A3, 0x7525, 0xB563, + 0x7526, 0xB564, 0x7528, 0xA5CE, 0x7529, 0xA5CF, 0x752A, 0xCA46, + 0x752B, 0xA86A, 0x752C, 0xA869, 0x752D, 0xACC7, 0x752E, 0xCFD9, + 0x752F, 0xDAAC, 0x7530, 0xA5D0, 0x7531, 0xA5D1, 0x7532, 0xA5D2, + 0x7533, 0xA5D3, 0x7537, 0xA86B, 0x7538, 0xA86C, 0x7539, 0xCB6E, + 0x753A, 0xCB6D, 0x753D, 0xAAB6, 0x753E, 0xCD72, 0x753F, 0xCD70, + 0x7540, 0xCD71, 0x7547, 0xCFDA, 0x7548, 0xCFDB, 0x754B, 0xACCB, + 0x754C, 0xACC9, 0x754E, 0xACCA, 0x754F, 0xACC8, 0x7554, 0xAF60, + 0x7559, 0xAF64, 0x755A, 0xAF63, 0x755B, 0xD2C1, 0x755C, 0xAF62, + 0x755D, 0xAF61, 0x755F, 0xD2C2, 0x7562, 0xB2A6, 0x7563, 0xD67B, + 0x7564, 0xD67A, 0x7565, 0xB2A4, 0x7566, 0xB2A5, 0x756A, 0xB566, + 0x756B, 0xB565, 0x756C, 0xDAAE, 0x756F, 0xDAAD, 0x7570, 0xB2A7, + 0x7576, 0xB7ED, 0x7577, 0xDEC5, 0x7578, 0xB7EE, 0x7579, 0xDEC4, + 0x757D, 0xE2D8, 0x757E, 0xE6AE, 0x757F, 0xBD42, 0x7580, 0xEA6A, + 0x7584, 0xED73, 0x7586, 0xC3A6, 0x7587, 0xC3A5, 0x758A, 0xC57C, + 0x758B, 0xA5D4, 0x758C, 0xCD73, 0x758F, 0xB2A8, 0x7590, 0xE2D9, + 0x7591, 0xBAC3, 0x7594, 0xCB6F, 0x7595, 0xCB70, 0x7598, 0xCD74, + 0x7599, 0xAAB8, 0x759A, 0xAAB9, 0x759D, 0xAAB7, 0x75A2, 0xACCF, + 0x75A3, 0xACD0, 0x75A4, 0xACCD, 0x75A5, 0xACCE, 0x75A7, 0xCFDC, + 0x75AA, 0xCFDD, 0x75AB, 0xACCC, 0x75B0, 0xD2C3, 0x75B2, 0xAF68, + 0x75B3, 0xAF69, 0x75B5, 0xB2AB, 0x75B6, 0xD2C9, 0x75B8, 0xAF6E, + 0x75B9, 0xAF6C, 0x75BA, 0xD2CA, 0x75BB, 0xD2C5, 0x75BC, 0xAF6B, + 0x75BD, 0xAF6A, 0x75BE, 0xAF65, 0x75BF, 0xD2C8, 0x75C0, 0xD2C7, + 0x75C1, 0xD2C4, 0x75C2, 0xAF6D, 0x75C4, 0xD2C6, 0x75C5, 0xAF66, + 0x75C7, 0xAF67, 0x75CA, 0xB2AC, 0x75CB, 0xD6A1, 0x75CC, 0xD6A2, + 0x75CD, 0xB2AD, 0x75CE, 0xD67C, 0x75CF, 0xD67E, 0x75D0, 0xD6A4, + 0x75D1, 0xD6A3, 0x75D2, 0xD67D, 0x75D4, 0xB2A9, 0x75D5, 0xB2AA, + 0x75D7, 0xDAB6, 0x75D8, 0xB56B, 0x75D9, 0xB56A, 0x75DA, 0xDAB0, + 0x75DB, 0xB568, 0x75DD, 0xDAB3, 0x75DE, 0xB56C, 0x75DF, 0xDAB4, + 0x75E0, 0xB56D, 0x75E1, 0xDAB1, 0x75E2, 0xB567, 0x75E3, 0xB569, + 0x75E4, 0xDAB5, 0x75E6, 0xDAB2, 0x75E7, 0xDAAF, 0x75ED, 0xDED2, + 0x75EF, 0xDEC7, 0x75F0, 0xB7F0, 0x75F1, 0xB7F3, 0x75F2, 0xB7F2, + 0x75F3, 0xB7F7, 0x75F4, 0xB7F6, 0x75F5, 0xDED3, 0x75F6, 0xDED1, + 0x75F7, 0xDECA, 0x75F8, 0xDECE, 0x75F9, 0xDECD, 0x75FA, 0xB7F4, + 0x75FB, 0xDED0, 0x75FC, 0xDECC, 0x75FD, 0xDED4, 0x75FE, 0xDECB, + 0x75FF, 0xB7F5, 0x7600, 0xB7EF, 0x7601, 0xB7F1, 0x7603, 0xDEC9, + 0x7608, 0xE2DB, 0x7609, 0xBAC7, 0x760A, 0xE2DF, 0x760B, 0xBAC6, + 0x760C, 0xE2DC, 0x760D, 0xBAC5, 0x760F, 0xDEC8, 0x7610, 0xDECF, + 0x7611, 0xE2DE, 0x7613, 0xBAC8, 0x7614, 0xE2E0, 0x7615, 0xE2DD, + 0x7616, 0xE2DA, 0x7619, 0xE6B1, 0x761A, 0xE6B5, 0x761B, 0xE6B7, + 0x761C, 0xE6B3, 0x761D, 0xE6B2, 0x761E, 0xE6B0, 0x761F, 0xBD45, + 0x7620, 0xBD43, 0x7621, 0xBD48, 0x7622, 0xBD49, 0x7623, 0xE6B4, + 0x7624, 0xBD46, 0x7625, 0xE6AF, 0x7626, 0xBD47, 0x7627, 0xBAC4, + 0x7628, 0xE6B6, 0x7629, 0xBD44, 0x762D, 0xEA6C, 0x762F, 0xEA6B, + 0x7630, 0xEA73, 0x7631, 0xEA6D, 0x7632, 0xEA72, 0x7633, 0xEA6F, + 0x7634, 0xBF60, 0x7635, 0xEA71, 0x7638, 0xBF61, 0x763A, 0xBF62, + 0x763C, 0xEA70, 0x763D, 0xEA6E, 0x7642, 0xC0F8, 0x7643, 0xED74, + 0x7646, 0xC0F7, 0x7647, 0xED77, 0x7648, 0xED75, 0x7649, 0xED76, + 0x764C, 0xC0F9, 0x7650, 0xF04D, 0x7652, 0xC2A1, 0x7653, 0xF04E, + 0x7656, 0xC27D, 0x7657, 0xF04F, 0x7658, 0xC27E, 0x7659, 0xF04C, + 0x765A, 0xF050, 0x765C, 0xF04A, 0x765F, 0xC3A7, 0x7660, 0xF278, + 0x7661, 0xC3A8, 0x7662, 0xC46F, 0x7664, 0xF04B, 0x7665, 0xC470, + 0x7669, 0xC4EE, 0x766A, 0xF5DF, 0x766C, 0xC57E, 0x766D, 0xF6F4, + 0x766E, 0xC57D, 0x7670, 0xF7EA, 0x7671, 0xC5F5, 0x7672, 0xC5F6, + 0x7675, 0xF9CC, 0x7678, 0xACD1, 0x7679, 0xCFDE, 0x767B, 0xB56E, + 0x767C, 0xB56F, 0x767D, 0xA5D5, 0x767E, 0xA6CA, 0x767F, 0xCA47, + 0x7681, 0xCB71, 0x7682, 0xA86D, 0x7684, 0xAABA, 0x7686, 0xACD2, + 0x7687, 0xACD3, 0x7688, 0xACD4, 0x7689, 0xD6A6, 0x768A, 0xD2CB, + 0x768B, 0xAF6F, 0x768E, 0xB2AE, 0x768F, 0xD6A5, 0x7692, 0xDAB8, + 0x7693, 0xB571, 0x7695, 0xDAB7, 0x7696, 0xB570, 0x7699, 0xDED5, + 0x769A, 0xBD4A, 0x769B, 0xE6BB, 0x769C, 0xE6B8, 0x769D, 0xE6B9, + 0x769E, 0xE6BA, 0x76A4, 0xED78, 0x76A6, 0xF051, 0x76AA, 0xF471, + 0x76AB, 0xF470, 0x76AD, 0xF6F5, 0x76AE, 0xA5D6, 0x76AF, 0xCD75, + 0x76B0, 0xAF70, 0x76B4, 0xB572, 0x76B5, 0xDED6, 0x76B8, 0xE2E1, + 0x76BA, 0xBD4B, 0x76BB, 0xEA74, 0x76BD, 0xF052, 0x76BE, 0xF472, + 0x76BF, 0xA5D7, 0x76C2, 0xAABB, 0x76C3, 0xACD7, 0x76C4, 0xCFDF, + 0x76C5, 0xACD8, 0x76C6, 0xACD6, 0x76C8, 0xACD5, 0x76C9, 0xD2CC, + 0x76CA, 0xAF71, 0x76CD, 0xAF72, 0x76CE, 0xAF73, 0x76D2, 0xB2B0, + 0x76D3, 0xD6A7, 0x76D4, 0xB2AF, 0x76DA, 0xDAB9, 0x76DB, 0xB2B1, + 0x76DC, 0xB573, 0x76DD, 0xDED7, 0x76DE, 0xB7F8, 0x76DF, 0xB7F9, + 0x76E1, 0xBAC9, 0x76E3, 0xBACA, 0x76E4, 0xBD4C, 0x76E5, 0xBF64, + 0x76E6, 0xEA75, 0x76E7, 0xBF63, 0x76E9, 0xED79, 0x76EA, 0xC0FA, + 0x76EC, 0xF053, 0x76ED, 0xF473, 0x76EE, 0xA5D8, 0x76EF, 0xA86E, + 0x76F0, 0xCD78, 0x76F1, 0xCD77, 0x76F2, 0xAABC, 0x76F3, 0xCD76, + 0x76F4, 0xAABD, 0x76F5, 0xCD79, 0x76F7, 0xCFE5, 0x76F8, 0xACDB, + 0x76F9, 0xACDA, 0x76FA, 0xCFE7, 0x76FB, 0xCFE6, 0x76FC, 0xACDF, + 0x76FE, 0xACDE, 0x7701, 0xACD9, 0x7703, 0xCFE1, 0x7704, 0xCFE2, + 0x7705, 0xCFE3, 0x7707, 0xACE0, 0x7708, 0xCFE0, 0x7709, 0xACDC, + 0x770A, 0xCFE4, 0x770B, 0xACDD, 0x7710, 0xD2CF, 0x7711, 0xD2D3, + 0x7712, 0xD2D1, 0x7713, 0xD2D0, 0x7715, 0xD2D4, 0x7719, 0xD2D5, + 0x771A, 0xD2D6, 0x771B, 0xD2CE, 0x771D, 0xD2CD, 0x771F, 0xAF75, + 0x7720, 0xAF76, 0x7722, 0xD2D7, 0x7723, 0xD2D2, 0x7725, 0xD6B0, + 0x7727, 0xD2D8, 0x7728, 0xAF77, 0x7729, 0xAF74, 0x772D, 0xD6AA, + 0x772F, 0xD6A9, 0x7731, 0xD6AB, 0x7732, 0xD6AC, 0x7733, 0xD6AE, + 0x7734, 0xD6AD, 0x7735, 0xD6B2, 0x7736, 0xB2B5, 0x7737, 0xB2B2, + 0x7738, 0xB2B6, 0x7739, 0xD6A8, 0x773A, 0xB2B7, 0x773B, 0xD6B1, + 0x773C, 0xB2B4, 0x773D, 0xD6AF, 0x773E, 0xB2B3, 0x7744, 0xDABC, + 0x7745, 0xDABE, 0x7746, 0xDABA, 0x7747, 0xDABB, 0x774A, 0xDABF, + 0x774B, 0xDAC1, 0x774C, 0xDAC2, 0x774D, 0xDABD, 0x774E, 0xDAC0, + 0x774F, 0xB574, 0x7752, 0xDEDB, 0x7754, 0xDEE0, 0x7755, 0xDED8, + 0x7756, 0xDEDC, 0x7759, 0xDEE1, 0x775A, 0xDEDD, 0x775B, 0xB7FA, + 0x775C, 0xB843, 0x775E, 0xB7FD, 0x775F, 0xDED9, 0x7760, 0xDEDA, + 0x7761, 0xBACE, 0x7762, 0xB846, 0x7763, 0xB7FE, 0x7765, 0xB844, + 0x7766, 0xB7FC, 0x7767, 0xDEDF, 0x7768, 0xB845, 0x7769, 0xDEDE, + 0x776A, 0xB841, 0x776B, 0xB7FB, 0x776C, 0xB842, 0x776D, 0xDEE2, + 0x776E, 0xE2E6, 0x776F, 0xE2E8, 0x7779, 0xB840, 0x777C, 0xE2E3, + 0x777D, 0xBACC, 0x777E, 0xE2E9, 0x777F, 0xBACD, 0x7780, 0xE2E7, + 0x7781, 0xE2E2, 0x7782, 0xE2E5, 0x7783, 0xE2EA, 0x7784, 0xBACB, + 0x7785, 0xE2E4, 0x7787, 0xBD4E, 0x7788, 0xE6BF, 0x7789, 0xE6BE, + 0x778B, 0xBD51, 0x778C, 0xBD4F, 0x778D, 0xE6BC, 0x778E, 0xBD4D, + 0x778F, 0xE6BD, 0x7791, 0xBD50, 0x7795, 0xEA7D, 0x7797, 0xEAA1, + 0x7799, 0xEA7E, 0x779A, 0xEA76, 0x779B, 0xEA7A, 0x779C, 0xEA79, + 0x779D, 0xEA77, 0x779E, 0xBF66, 0x779F, 0xBF67, 0x77A0, 0xBF65, + 0x77A1, 0xEA78, 0x77A2, 0xEA7B, 0x77A3, 0xEA7C, 0x77A5, 0xBF68, + 0x77A7, 0xC140, 0x77A8, 0xEDA3, 0x77AA, 0xC0FC, 0x77AB, 0xED7B, + 0x77AC, 0xC0FE, 0x77AD, 0xC141, 0x77B0, 0xC0FD, 0x77B1, 0xEDA2, + 0x77B2, 0xED7C, 0x77B3, 0xC0FB, 0x77B4, 0xEDA1, 0x77B5, 0xED7A, + 0x77B6, 0xED7E, 0x77B7, 0xED7D, 0x77BA, 0xF055, 0x77BB, 0xC2A4, + 0x77BC, 0xC2A5, 0x77BD, 0xC2A2, 0x77BF, 0xC2A3, 0x77C2, 0xF054, + 0x77C4, 0xF27B, 0x77C7, 0xC3A9, 0x77C9, 0xF279, 0x77CA, 0xF27A, + 0x77CC, 0xF474, 0x77CD, 0xF477, 0x77CE, 0xF475, 0x77CF, 0xF476, + 0x77D0, 0xF5E0, 0x77D3, 0xC4EF, 0x77D4, 0xF7EB, 0x77D5, 0xF8B4, + 0x77D7, 0xC5F7, 0x77D8, 0xF8F8, 0x77D9, 0xF8F9, 0x77DA, 0xC666, + 0x77DB, 0xA5D9, 0x77DC, 0xACE1, 0x77DE, 0xDAC3, 0x77E0, 0xDEE3, + 0x77E2, 0xA5DA, 0x77E3, 0xA86F, 0x77E5, 0xAABE, 0x77E7, 0xCFE8, + 0x77E8, 0xCFE9, 0x77E9, 0xAF78, 0x77EC, 0xDAC4, 0x77ED, 0xB575, + 0x77EE, 0xB847, 0x77EF, 0xC142, 0x77F0, 0xEDA4, 0x77F1, 0xF27C, + 0x77F2, 0xF478, 0x77F3, 0xA5DB, 0x77F7, 0xCDA1, 0x77F8, 0xCD7A, + 0x77F9, 0xCD7C, 0x77FA, 0xCD7E, 0x77FB, 0xCD7D, 0x77FC, 0xCD7B, + 0x77FD, 0xAABF, 0x7802, 0xACE2, 0x7803, 0xCFF2, 0x7805, 0xCFED, + 0x7806, 0xCFEA, 0x7809, 0xCFF1, 0x780C, 0xACE4, 0x780D, 0xACE5, + 0x780E, 0xCFF0, 0x780F, 0xCFEF, 0x7810, 0xCFEE, 0x7811, 0xCFEB, + 0x7812, 0xCFEC, 0x7813, 0xCFF3, 0x7814, 0xACE3, 0x781D, 0xAF7C, + 0x781F, 0xAFA4, 0x7820, 0xAFA3, 0x7821, 0xD2E1, 0x7822, 0xD2DB, + 0x7823, 0xD2D9, 0x7825, 0xAFA1, 0x7826, 0xD6B9, 0x7827, 0xAF7A, + 0x7828, 0xD2DE, 0x7829, 0xD2E2, 0x782A, 0xD2E4, 0x782B, 0xD2E0, + 0x782C, 0xD2DA, 0x782D, 0xAFA2, 0x782E, 0xD2DF, 0x782F, 0xD2DD, + 0x7830, 0xAF79, 0x7831, 0xD2E5, 0x7832, 0xAFA5, 0x7833, 0xD2E3, + 0x7834, 0xAF7D, 0x7835, 0xD2DC, 0x7837, 0xAF7E, 0x7838, 0xAF7B, + 0x7843, 0xB2B9, 0x7845, 0xD6BA, 0x7848, 0xD6B3, 0x7849, 0xD6B5, + 0x784A, 0xD6B7, 0x784C, 0xD6B8, 0x784D, 0xD6B6, 0x784E, 0xB2BA, + 0x7850, 0xD6BB, 0x7852, 0xD6B4, 0x785C, 0xDAC8, 0x785D, 0xB576, + 0x785E, 0xDAD0, 0x7860, 0xDAC5, 0x7862, 0xDAD1, 0x7864, 0xDAC6, + 0x7865, 0xDAC7, 0x7868, 0xDACF, 0x7869, 0xDACE, 0x786A, 0xDACB, + 0x786B, 0xB2B8, 0x786C, 0xB577, 0x786D, 0xDAC9, 0x786E, 0xDACC, + 0x786F, 0xB578, 0x7870, 0xDACD, 0x7871, 0xDACA, 0x7879, 0xDEEE, + 0x787B, 0xDEF2, 0x787C, 0xB84E, 0x787E, 0xE2F0, 0x787F, 0xB851, + 0x7880, 0xDEF0, 0x7881, 0xF9D6, 0x7883, 0xDEED, 0x7884, 0xDEE8, + 0x7885, 0xDEEA, 0x7886, 0xDEEB, 0x7887, 0xDEE4, 0x7889, 0xB84D, + 0x788C, 0xB84C, 0x788E, 0xB848, 0x788F, 0xDEE7, 0x7891, 0xB84F, + 0x7893, 0xB850, 0x7894, 0xDEE6, 0x7895, 0xDEE9, 0x7896, 0xDEF1, + 0x7897, 0xB84A, 0x7898, 0xB84B, 0x7899, 0xDEEF, 0x789A, 0xDEE5, + 0x789E, 0xE2F2, 0x789F, 0xBAD0, 0x78A0, 0xE2F4, 0x78A1, 0xDEEC, + 0x78A2, 0xE2F6, 0x78A3, 0xBAD4, 0x78A4, 0xE2F7, 0x78A5, 0xE2F3, + 0x78A7, 0xBAD1, 0x78A8, 0xE2EF, 0x78A9, 0xBAD3, 0x78AA, 0xE2EC, + 0x78AB, 0xE2F1, 0x78AC, 0xE2F5, 0x78AD, 0xE2EE, 0x78B0, 0xB849, + 0x78B2, 0xE2EB, 0x78B3, 0xBAD2, 0x78B4, 0xE2ED, 0x78BA, 0xBD54, + 0x78BB, 0xE6C1, 0x78BC, 0xBD58, 0x78BE, 0xBD56, 0x78C1, 0xBACF, + 0x78C3, 0xE6C8, 0x78C4, 0xE6C9, 0x78C5, 0xBD53, 0x78C8, 0xE6C7, + 0x78C9, 0xE6CA, 0x78CA, 0xBD55, 0x78CB, 0xBD52, 0x78CC, 0xE6C3, + 0x78CD, 0xE6C0, 0x78CE, 0xE6C5, 0x78CF, 0xE6C2, 0x78D0, 0xBD59, + 0x78D1, 0xE6C4, 0x78D4, 0xE6C6, 0x78D5, 0xBD57, 0x78DA, 0xBF6A, + 0x78DB, 0xEAA8, 0x78DD, 0xEAA2, 0x78DE, 0xEAA6, 0x78DF, 0xEAAC, + 0x78E0, 0xEAAD, 0x78E1, 0xEAA9, 0x78E2, 0xEAAA, 0x78E3, 0xEAA7, + 0x78E5, 0xEAA4, 0x78E7, 0xBF6C, 0x78E8, 0xBF69, 0x78E9, 0xEAA3, + 0x78EA, 0xEAA5, 0x78EC, 0xBF6B, 0x78ED, 0xEAAB, 0x78EF, 0xC146, + 0x78F2, 0xEDAA, 0x78F3, 0xEDA5, 0x78F4, 0xC145, 0x78F7, 0xC143, + 0x78F9, 0xEDAC, 0x78FA, 0xC144, 0x78FB, 0xEDA8, 0x78FC, 0xEDA9, + 0x78FD, 0xEDA6, 0x78FE, 0xEDAD, 0x78FF, 0xF056, 0x7901, 0xC147, + 0x7902, 0xEDA7, 0x7904, 0xEDAE, 0x7905, 0xEDAB, 0x7909, 0xF05A, + 0x790C, 0xF057, 0x790E, 0xC2A6, 0x7910, 0xF05B, 0x7911, 0xF05D, + 0x7912, 0xF05C, 0x7913, 0xF058, 0x7914, 0xF059, 0x7917, 0xF2A3, + 0x7919, 0xC3AA, 0x791B, 0xF27E, 0x791C, 0xF2A2, 0x791D, 0xF27D, + 0x791E, 0xF2A4, 0x7921, 0xF2A1, 0x7923, 0xF47A, 0x7924, 0xF47D, + 0x7925, 0xF479, 0x7926, 0xC471, 0x7927, 0xF47B, 0x7928, 0xF47C, + 0x7929, 0xF47E, 0x792A, 0xC472, 0x792B, 0xC474, 0x792C, 0xC473, + 0x792D, 0xF5E1, 0x792F, 0xF5E3, 0x7931, 0xF5E2, 0x7935, 0xF6F6, + 0x7938, 0xF8B5, 0x7939, 0xF8FA, 0x793A, 0xA5DC, 0x793D, 0xCB72, + 0x793E, 0xAAC0, 0x793F, 0xCDA3, 0x7940, 0xAAC1, 0x7941, 0xAAC2, + 0x7942, 0xCDA2, 0x7944, 0xCFF8, 0x7945, 0xCFF7, 0x7946, 0xACE6, + 0x7947, 0xACE9, 0x7948, 0xACE8, 0x7949, 0xACE7, 0x794A, 0xCFF4, + 0x794B, 0xCFF6, 0x794C, 0xCFF5, 0x794F, 0xD2E8, 0x7950, 0xAFA7, + 0x7951, 0xD2EC, 0x7952, 0xD2EB, 0x7953, 0xD2EA, 0x7954, 0xD2E6, + 0x7955, 0xAFA6, 0x7956, 0xAFAA, 0x7957, 0xAFAD, 0x795A, 0xAFAE, + 0x795B, 0xD2E7, 0x795C, 0xD2E9, 0x795D, 0xAFAC, 0x795E, 0xAFAB, + 0x795F, 0xAFA9, 0x7960, 0xAFA8, 0x7961, 0xD6C2, 0x7963, 0xD6C0, + 0x7964, 0xD6BC, 0x7965, 0xB2BB, 0x7967, 0xD6BD, 0x7968, 0xB2BC, + 0x7969, 0xD6BE, 0x796A, 0xD6BF, 0x796B, 0xD6C1, 0x796D, 0xB2BD, + 0x7970, 0xDAD5, 0x7972, 0xDAD4, 0x7973, 0xDAD3, 0x7974, 0xDAD2, + 0x7979, 0xDEF6, 0x797A, 0xB852, 0x797C, 0xDEF3, 0x797D, 0xDEF5, + 0x797F, 0xB853, 0x7981, 0xB854, 0x7982, 0xDEF4, 0x7988, 0xE341, + 0x798A, 0xE2F9, 0x798B, 0xE2FA, 0x798D, 0xBAD7, 0x798E, 0xBAD5, + 0x798F, 0xBAD6, 0x7990, 0xE343, 0x7992, 0xE342, 0x7993, 0xE2FE, + 0x7994, 0xE2FD, 0x7995, 0xE2FC, 0x7996, 0xE2FB, 0x7997, 0xE340, + 0x7998, 0xE2F8, 0x799A, 0xE6CB, 0x799B, 0xE6D0, 0x799C, 0xE6CE, + 0x79A0, 0xE6CD, 0x79A1, 0xE6CC, 0x79A2, 0xE6CF, 0x79A4, 0xEAAE, + 0x79A6, 0xBF6D, 0x79A7, 0xC148, 0x79A8, 0xEDB0, 0x79AA, 0xC149, + 0x79AB, 0xEDAF, 0x79AC, 0xF05F, 0x79AD, 0xF05E, 0x79AE, 0xC2A7, + 0x79B0, 0xF2A5, 0x79B1, 0xC3AB, 0x79B2, 0xF4A1, 0x79B3, 0xC5A1, + 0x79B4, 0xF6F7, 0x79B6, 0xF8B7, 0x79B7, 0xF8B6, 0x79B8, 0xC9A8, + 0x79B9, 0xACEA, 0x79BA, 0xACEB, 0x79BB, 0xD6C3, 0x79BD, 0xB856, + 0x79BE, 0xA5DD, 0x79BF, 0xA872, 0x79C0, 0xA871, 0x79C1, 0xA870, + 0x79C5, 0xCDA4, 0x79C8, 0xAAC4, 0x79C9, 0xAAC3, 0x79CB, 0xACEE, + 0x79CD, 0xCFFA, 0x79CE, 0xCFFD, 0x79CF, 0xCFFB, 0x79D1, 0xACEC, + 0x79D2, 0xACED, 0x79D5, 0xCFF9, 0x79D6, 0xCFFC, 0x79D8, 0xAFB5, + 0x79DC, 0xD2F3, 0x79DD, 0xD2F5, 0x79DE, 0xD2F4, 0x79DF, 0xAFB2, + 0x79E0, 0xD2EF, 0x79E3, 0xAFB0, 0x79E4, 0xAFAF, 0x79E6, 0xAFB3, + 0x79E7, 0xAFB1, 0x79E9, 0xAFB4, 0x79EA, 0xD2F2, 0x79EB, 0xD2ED, + 0x79EC, 0xD2EE, 0x79ED, 0xD2F1, 0x79EE, 0xD2F0, 0x79F6, 0xD6C6, + 0x79F7, 0xD6C7, 0x79F8, 0xD6C5, 0x79FA, 0xD6C4, 0x79FB, 0xB2BE, + 0x7A00, 0xB57D, 0x7A02, 0xDAD6, 0x7A03, 0xDAD8, 0x7A04, 0xDADA, + 0x7A05, 0xB57C, 0x7A08, 0xB57A, 0x7A0A, 0xDAD7, 0x7A0B, 0xB57B, + 0x7A0C, 0xDAD9, 0x7A0D, 0xB579, 0x7A10, 0xDF41, 0x7A11, 0xDEF7, + 0x7A12, 0xDEFA, 0x7A13, 0xDEFE, 0x7A14, 0xB85A, 0x7A15, 0xDEFC, + 0x7A17, 0xDEFB, 0x7A18, 0xDEF8, 0x7A19, 0xDEF9, 0x7A1A, 0xB858, + 0x7A1B, 0xDF40, 0x7A1C, 0xB857, 0x7A1E, 0xB85C, 0x7A1F, 0xB85B, + 0x7A20, 0xB859, 0x7A22, 0xDEFD, 0x7A26, 0xE349, 0x7A28, 0xE348, + 0x7A2B, 0xE344, 0x7A2E, 0xBAD8, 0x7A2F, 0xE347, 0x7A30, 0xE346, + 0x7A31, 0xBAD9, 0x7A37, 0xBD5E, 0x7A39, 0xE6D2, 0x7A3B, 0xBD5F, + 0x7A3C, 0xBD5B, 0x7A3D, 0xBD5D, 0x7A3F, 0xBD5A, 0x7A40, 0xBD5C, + 0x7A44, 0xEAAF, 0x7A46, 0xBF70, 0x7A47, 0xEAB1, 0x7A48, 0xEAB0, + 0x7A4A, 0xE345, 0x7A4B, 0xBF72, 0x7A4C, 0xBF71, 0x7A4D, 0xBF6E, + 0x7A4E, 0xBF6F, 0x7A54, 0xEDB5, 0x7A56, 0xEDB3, 0x7A57, 0xC14A, + 0x7A58, 0xEDB4, 0x7A5A, 0xEDB6, 0x7A5B, 0xEDB2, 0x7A5C, 0xEDB1, + 0x7A5F, 0xF060, 0x7A60, 0xC2AA, 0x7A61, 0xC2A8, 0x7A62, 0xC2A9, + 0x7A67, 0xF2A6, 0x7A68, 0xF2A7, 0x7A69, 0xC3AD, 0x7A6B, 0xC3AC, + 0x7A6C, 0xF4A3, 0x7A6D, 0xF4A4, 0x7A6E, 0xF4A2, 0x7A70, 0xF6F8, + 0x7A71, 0xF6F9, 0x7A74, 0xA5DE, 0x7A75, 0xCA48, 0x7A76, 0xA873, + 0x7A78, 0xCDA5, 0x7A79, 0xAAC6, 0x7A7A, 0xAAC5, 0x7A7B, 0xCDA6, + 0x7A7E, 0xD040, 0x7A7F, 0xACEF, 0x7A80, 0xCFFE, 0x7A81, 0xACF0, + 0x7A84, 0xAFB6, 0x7A85, 0xD2F8, 0x7A86, 0xD2F6, 0x7A87, 0xD2FC, + 0x7A88, 0xAFB7, 0x7A89, 0xD2F7, 0x7A8A, 0xD2FB, 0x7A8B, 0xD2F9, + 0x7A8C, 0xD2FA, 0x7A8F, 0xD6C8, 0x7A90, 0xD6CA, 0x7A92, 0xB2BF, + 0x7A94, 0xD6C9, 0x7A95, 0xB2C0, 0x7A96, 0xB5A2, 0x7A97, 0xB5A1, + 0x7A98, 0xB57E, 0x7A99, 0xDADB, 0x7A9E, 0xDF44, 0x7A9F, 0xB85D, + 0x7AA0, 0xB85E, 0x7AA2, 0xDF43, 0x7AA3, 0xDF42, 0x7AA8, 0xE34A, + 0x7AA9, 0xBADB, 0x7AAA, 0xBADA, 0x7AAB, 0xE34B, 0x7AAC, 0xE34C, + 0x7AAE, 0xBD61, 0x7AAF, 0xBD60, 0x7AB1, 0xEAB5, 0x7AB2, 0xE6D3, + 0x7AB3, 0xE6D5, 0x7AB4, 0xE6D4, 0x7AB5, 0xEAB4, 0x7AB6, 0xEAB2, + 0x7AB7, 0xEAB6, 0x7AB8, 0xEAB3, 0x7ABA, 0xBF73, 0x7ABE, 0xEDB7, + 0x7ABF, 0xC14B, 0x7AC0, 0xEDB8, 0x7AC1, 0xEDB9, 0x7AC4, 0xC2AB, + 0x7AC5, 0xC2AC, 0x7AC7, 0xC475, 0x7ACA, 0xC5D1, 0x7ACB, 0xA5DF, + 0x7AD1, 0xD041, 0x7AD8, 0xD2FD, 0x7AD9, 0xAFB8, 0x7ADF, 0xB3BA, + 0x7AE0, 0xB3B9, 0x7AE3, 0xB5A4, 0x7AE4, 0xDADD, 0x7AE5, 0xB5A3, + 0x7AE6, 0xDADC, 0x7AEB, 0xDF45, 0x7AED, 0xBADC, 0x7AEE, 0xE34D, + 0x7AEF, 0xBADD, 0x7AF6, 0xC476, 0x7AF7, 0xF4A5, 0x7AF9, 0xA6CB, + 0x7AFA, 0xAAC7, 0x7AFB, 0xCDA7, 0x7AFD, 0xACF2, 0x7AFF, 0xACF1, + 0x7B00, 0xD042, 0x7B01, 0xD043, 0x7B04, 0xD340, 0x7B05, 0xD342, + 0x7B06, 0xAFB9, 0x7B08, 0xD344, 0x7B09, 0xD347, 0x7B0A, 0xD345, + 0x7B0E, 0xD346, 0x7B0F, 0xD343, 0x7B10, 0xD2FE, 0x7B11, 0xAFBA, + 0x7B12, 0xD348, 0x7B13, 0xD341, 0x7B18, 0xD6D3, 0x7B19, 0xB2C6, + 0x7B1A, 0xD6DC, 0x7B1B, 0xB2C3, 0x7B1D, 0xD6D5, 0x7B1E, 0xB2C7, + 0x7B20, 0xB2C1, 0x7B22, 0xD6D0, 0x7B23, 0xD6DD, 0x7B24, 0xD6D1, + 0x7B25, 0xD6CE, 0x7B26, 0xB2C5, 0x7B28, 0xB2C2, 0x7B2A, 0xD6D4, + 0x7B2B, 0xD6D7, 0x7B2C, 0xB2C4, 0x7B2D, 0xD6D8, 0x7B2E, 0xB2C8, + 0x7B2F, 0xD6D9, 0x7B30, 0xD6CF, 0x7B31, 0xD6D6, 0x7B32, 0xD6DA, + 0x7B33, 0xD6D2, 0x7B34, 0xD6CD, 0x7B35, 0xD6CB, 0x7B38, 0xD6DB, + 0x7B3B, 0xDADF, 0x7B40, 0xDAE4, 0x7B44, 0xDAE0, 0x7B45, 0xDAE6, + 0x7B46, 0xB5A7, 0x7B47, 0xD6CC, 0x7B48, 0xDAE1, 0x7B49, 0xB5A5, + 0x7B4A, 0xDADE, 0x7B4B, 0xB5AC, 0x7B4C, 0xDAE2, 0x7B4D, 0xB5AB, + 0x7B4E, 0xDAE3, 0x7B4F, 0xB5AD, 0x7B50, 0xB5A8, 0x7B51, 0xB5AE, + 0x7B52, 0xB5A9, 0x7B54, 0xB5AA, 0x7B56, 0xB5A6, 0x7B58, 0xDAE5, + 0x7B60, 0xB861, 0x7B61, 0xDF50, 0x7B63, 0xDF53, 0x7B64, 0xDF47, + 0x7B65, 0xDF4C, 0x7B66, 0xDF46, 0x7B67, 0xB863, 0x7B69, 0xDF4A, + 0x7B6D, 0xDF48, 0x7B6E, 0xB862, 0x7B70, 0xDF4F, 0x7B71, 0xDF4E, + 0x7B72, 0xDF4B, 0x7B73, 0xDF4D, 0x7B74, 0xDF49, 0x7B75, 0xBAE1, + 0x7B76, 0xDF52, 0x7B77, 0xB85F, 0x7B78, 0xDF51, 0x7B82, 0xE35D, + 0x7B84, 0xBAE8, 0x7B85, 0xE358, 0x7B87, 0xBAE7, 0x7B88, 0xE34E, + 0x7B8A, 0xE350, 0x7B8B, 0xBAE0, 0x7B8C, 0xE355, 0x7B8D, 0xE354, + 0x7B8E, 0xE357, 0x7B8F, 0xBAE5, 0x7B90, 0xE352, 0x7B91, 0xE351, + 0x7B94, 0xBAE4, 0x7B95, 0xBADF, 0x7B96, 0xE353, 0x7B97, 0xBAE2, + 0x7B98, 0xE359, 0x7B99, 0xE35B, 0x7B9B, 0xE356, 0x7B9C, 0xE34F, + 0x7B9D, 0xBAE3, 0x7BA0, 0xBD69, 0x7BA1, 0xBADE, 0x7BA4, 0xE35C, + 0x7BAC, 0xE6D9, 0x7BAD, 0xBD62, 0x7BAF, 0xE6DB, 0x7BB1, 0xBD63, + 0x7BB4, 0xBD65, 0x7BB5, 0xE6DE, 0x7BB7, 0xE6D6, 0x7BB8, 0xBAE6, + 0x7BB9, 0xE6DC, 0x7BBE, 0xE6D8, 0x7BC0, 0xB860, 0x7BC1, 0xBD68, + 0x7BC4, 0xBD64, 0x7BC6, 0xBD66, 0x7BC7, 0xBD67, 0x7BC9, 0xBF76, + 0x7BCA, 0xE6DD, 0x7BCB, 0xE6D7, 0x7BCC, 0xBD6A, 0x7BCE, 0xE6DA, + 0x7BD4, 0xEAC0, 0x7BD5, 0xEABB, 0x7BD8, 0xEAC5, 0x7BD9, 0xBF74, + 0x7BDA, 0xEABD, 0x7BDB, 0xBF78, 0x7BDC, 0xEAC3, 0x7BDD, 0xEABA, + 0x7BDE, 0xEAB7, 0x7BDF, 0xEAC6, 0x7BE0, 0xC151, 0x7BE1, 0xBF79, + 0x7BE2, 0xEAC2, 0x7BE3, 0xEAB8, 0x7BE4, 0xBF77, 0x7BE5, 0xEABC, + 0x7BE6, 0xBF7B, 0x7BE7, 0xEAB9, 0x7BE8, 0xEABE, 0x7BE9, 0xBF7A, + 0x7BEA, 0xEAC1, 0x7BEB, 0xEAC4, 0x7BF0, 0xEDCB, 0x7BF1, 0xEDCC, + 0x7BF2, 0xEDBC, 0x7BF3, 0xEDC3, 0x7BF4, 0xEDC1, 0x7BF7, 0xC14F, + 0x7BF8, 0xEDC8, 0x7BF9, 0xEABF, 0x7BFB, 0xEDBF, 0x7BFD, 0xEDC9, + 0x7BFE, 0xC14E, 0x7BFF, 0xEDBE, 0x7C00, 0xEDBD, 0x7C01, 0xEDC7, + 0x7C02, 0xEDC4, 0x7C03, 0xEDC6, 0x7C05, 0xEDBA, 0x7C06, 0xEDCA, + 0x7C07, 0xC14C, 0x7C09, 0xEDC5, 0x7C0A, 0xEDCE, 0x7C0B, 0xEDC2, + 0x7C0C, 0xC150, 0x7C0D, 0xC14D, 0x7C0E, 0xEDC0, 0x7C0F, 0xEDBB, + 0x7C10, 0xEDCD, 0x7C11, 0xBF75, 0x7C19, 0xF063, 0x7C1C, 0xF061, + 0x7C1D, 0xF067, 0x7C1E, 0xC2B0, 0x7C1F, 0xF065, 0x7C20, 0xF064, + 0x7C21, 0xC2B2, 0x7C22, 0xF06A, 0x7C23, 0xC2B1, 0x7C25, 0xF06B, + 0x7C26, 0xF068, 0x7C27, 0xC2AE, 0x7C28, 0xF069, 0x7C29, 0xF062, + 0x7C2A, 0xC2AF, 0x7C2B, 0xC2AD, 0x7C2C, 0xF2AB, 0x7C2D, 0xF066, + 0x7C30, 0xF06C, 0x7C33, 0xF2A8, 0x7C37, 0xC3B2, 0x7C38, 0xC3B0, + 0x7C39, 0xF2AA, 0x7C3B, 0xF2AC, 0x7C3C, 0xF2A9, 0x7C3D, 0xC3B1, + 0x7C3E, 0xC3AE, 0x7C3F, 0xC3AF, 0x7C40, 0xC3B3, 0x7C43, 0xC478, + 0x7C45, 0xF4AA, 0x7C47, 0xF4A9, 0x7C48, 0xF4A7, 0x7C49, 0xF4A6, + 0x7C4A, 0xF4A8, 0x7C4C, 0xC477, 0x7C4D, 0xC479, 0x7C50, 0xC4F0, + 0x7C53, 0xF5E5, 0x7C54, 0xF5E4, 0x7C57, 0xF6FA, 0x7C59, 0xF6FC, + 0x7C5A, 0xF6FE, 0x7C5B, 0xF6FD, 0x7C5C, 0xF6FB, 0x7C5F, 0xC5A3, + 0x7C60, 0xC5A2, 0x7C63, 0xC5D3, 0x7C64, 0xC5D2, 0x7C65, 0xC5D4, + 0x7C66, 0xF7ED, 0x7C67, 0xF7EC, 0x7C69, 0xF8FB, 0x7C6A, 0xF8B8, + 0x7C6B, 0xF8FC, 0x7C6C, 0xC658, 0x7C6E, 0xC659, 0x7C6F, 0xF96D, + 0x7C72, 0xC67E, 0x7C73, 0xA6CC, 0x7C75, 0xCDA8, 0x7C78, 0xD045, + 0x7C79, 0xD046, 0x7C7A, 0xD044, 0x7C7D, 0xACF3, 0x7C7F, 0xD047, + 0x7C80, 0xD048, 0x7C81, 0xD049, 0x7C84, 0xD349, 0x7C85, 0xD34F, + 0x7C88, 0xD34D, 0x7C89, 0xAFBB, 0x7C8A, 0xD34B, 0x7C8C, 0xD34C, + 0x7C8D, 0xD34E, 0x7C91, 0xD34A, 0x7C92, 0xB2C9, 0x7C94, 0xD6DE, + 0x7C95, 0xB2CB, 0x7C96, 0xD6E0, 0x7C97, 0xB2CA, 0x7C98, 0xD6DF, + 0x7C9E, 0xDAE8, 0x7C9F, 0xB5AF, 0x7CA1, 0xDAEA, 0x7CA2, 0xDAE7, + 0x7CA3, 0xD6E1, 0x7CA5, 0xB5B0, 0x7CA7, 0xF9DB, 0x7CA8, 0xDAE9, + 0x7CAF, 0xDF56, 0x7CB1, 0xB864, 0x7CB2, 0xDF54, 0x7CB3, 0xB865, + 0x7CB4, 0xDF55, 0x7CB5, 0xB866, 0x7CB9, 0xBAE9, 0x7CBA, 0xE361, + 0x7CBB, 0xE35E, 0x7CBC, 0xE360, 0x7CBD, 0xBAEA, 0x7CBE, 0xBAEB, + 0x7CBF, 0xE35F, 0x7CC5, 0xE6DF, 0x7CC8, 0xE6E0, 0x7CCA, 0xBD6B, + 0x7CCB, 0xE6E2, 0x7CCC, 0xE6E1, 0x7CCE, 0xA261, 0x7CD0, 0xEACA, + 0x7CD1, 0xEACB, 0x7CD2, 0xEAC7, 0x7CD4, 0xEAC8, 0x7CD5, 0xBF7C, + 0x7CD6, 0xBF7D, 0x7CD7, 0xEAC9, 0x7CD9, 0xC157, 0x7CDC, 0xC153, + 0x7CDD, 0xC158, 0x7CDE, 0xC154, 0x7CDF, 0xC156, 0x7CE0, 0xC152, + 0x7CE2, 0xC155, 0x7CE7, 0xC2B3, 0x7CE8, 0xEDCF, 0x7CEA, 0xF2AE, + 0x7CEC, 0xF2AD, 0x7CEE, 0xF4AB, 0x7CEF, 0xC47A, 0x7CF0, 0xC47B, + 0x7CF1, 0xF741, 0x7CF2, 0xF5E6, 0x7CF4, 0xF740, 0x7CF6, 0xF8FD, + 0x7CF7, 0xF9A4, 0x7CF8, 0xA6CD, 0x7CFB, 0xA874, 0x7CFD, 0xCDA9, + 0x7CFE, 0xAAC8, 0x7D00, 0xACF6, 0x7D01, 0xD04C, 0x7D02, 0xACF4, + 0x7D03, 0xD04A, 0x7D04, 0xACF9, 0x7D05, 0xACF5, 0x7D06, 0xACFA, + 0x7D07, 0xACF8, 0x7D08, 0xD04B, 0x7D09, 0xACF7, 0x7D0A, 0xAFBF, + 0x7D0B, 0xAFBE, 0x7D0C, 0xD35A, 0x7D0D, 0xAFC7, 0x7D0E, 0xD353, + 0x7D0F, 0xD359, 0x7D10, 0xAFC3, 0x7D11, 0xD352, 0x7D12, 0xD358, + 0x7D13, 0xD356, 0x7D14, 0xAFC2, 0x7D15, 0xAFC4, 0x7D16, 0xD355, + 0x7D17, 0xAFBD, 0x7D18, 0xD354, 0x7D19, 0xAFC8, 0x7D1A, 0xAFC5, + 0x7D1B, 0xAFC9, 0x7D1C, 0xAFC6, 0x7D1D, 0xD351, 0x7D1E, 0xD350, + 0x7D1F, 0xD357, 0x7D20, 0xAFC0, 0x7D21, 0xAFBC, 0x7D22, 0xAFC1, + 0x7D28, 0xD6F0, 0x7D29, 0xD6E9, 0x7D2B, 0xB5B5, 0x7D2C, 0xD6E8, + 0x7D2E, 0xB2CF, 0x7D2F, 0xB2D6, 0x7D30, 0xB2D3, 0x7D31, 0xB2D9, + 0x7D32, 0xB2D8, 0x7D33, 0xB2D4, 0x7D35, 0xD6E2, 0x7D36, 0xD6E5, + 0x7D38, 0xD6E4, 0x7D39, 0xB2D0, 0x7D3A, 0xD6E6, 0x7D3B, 0xD6EF, + 0x7D3C, 0xB2D1, 0x7D3D, 0xD6E3, 0x7D3E, 0xD6EC, 0x7D3F, 0xD6ED, + 0x7D40, 0xB2D2, 0x7D41, 0xD6EA, 0x7D42, 0xB2D7, 0x7D43, 0xB2CD, + 0x7D44, 0xB2D5, 0x7D45, 0xD6E7, 0x7D46, 0xB2CC, 0x7D47, 0xD6EB, + 0x7D4A, 0xD6EE, 0x7D4E, 0xDAFB, 0x7D4F, 0xDAF2, 0x7D50, 0xB5B2, + 0x7D51, 0xDAF9, 0x7D52, 0xDAF6, 0x7D53, 0xDAEE, 0x7D54, 0xDAF7, + 0x7D55, 0xB5B4, 0x7D56, 0xDAEF, 0x7D58, 0xDAEB, 0x7D5B, 0xB86C, + 0x7D5C, 0xDAF4, 0x7D5E, 0xB5B1, 0x7D5F, 0xDAFA, 0x7D61, 0xB5B8, + 0x7D62, 0xB5BA, 0x7D63, 0xDAED, 0x7D66, 0xB5B9, 0x7D67, 0xDAF0, + 0x7D68, 0xB5B3, 0x7D69, 0xDAF8, 0x7D6A, 0xDAF1, 0x7D6B, 0xDAF5, + 0x7D6D, 0xDAF3, 0x7D6E, 0xB5B6, 0x7D6F, 0xDAEC, 0x7D70, 0xB5BB, + 0x7D71, 0xB2CE, 0x7D72, 0xB5B7, 0x7D73, 0xB5BC, 0x7D79, 0xB868, + 0x7D7A, 0xDF5D, 0x7D7B, 0xDF5F, 0x7D7C, 0xDF61, 0x7D7D, 0xDF65, + 0x7D7F, 0xDF5B, 0x7D80, 0xDF59, 0x7D81, 0xB86A, 0x7D83, 0xDF60, + 0x7D84, 0xDF64, 0x7D85, 0xDF5C, 0x7D86, 0xDF58, 0x7D88, 0xDF57, + 0x7D8C, 0xDF62, 0x7D8D, 0xDF5A, 0x7D8E, 0xDF5E, 0x7D8F, 0xB86B, + 0x7D91, 0xB869, 0x7D92, 0xDF66, 0x7D93, 0xB867, 0x7D94, 0xDF63, + 0x7D96, 0xE372, 0x7D9C, 0xBAEE, 0x7D9D, 0xE36A, 0x7D9E, 0xBD78, + 0x7D9F, 0xE374, 0x7DA0, 0xBAF1, 0x7DA1, 0xE378, 0x7DA2, 0xBAF7, + 0x7DA3, 0xE365, 0x7DA6, 0xE375, 0x7DA7, 0xE362, 0x7DA9, 0xE377, + 0x7DAA, 0xE366, 0x7DAC, 0xBAFE, 0x7DAD, 0xBAFB, 0x7DAE, 0xE376, + 0x7DAF, 0xE370, 0x7DB0, 0xBAED, 0x7DB1, 0xBAF5, 0x7DB2, 0xBAF4, + 0x7DB4, 0xBAF3, 0x7DB5, 0xBAF9, 0x7DB7, 0xE363, 0x7DB8, 0xBAFA, + 0x7DB9, 0xE371, 0x7DBA, 0xBAF6, 0x7DBB, 0xBAEC, 0x7DBC, 0xE373, + 0x7DBD, 0xBAEF, 0x7DBE, 0xBAF0, 0x7DBF, 0xBAF8, 0x7DC0, 0xE368, + 0x7DC1, 0xE367, 0x7DC2, 0xE364, 0x7DC4, 0xE36C, 0x7DC5, 0xE369, + 0x7DC6, 0xE36D, 0x7DC7, 0xBAFD, 0x7DC9, 0xE379, 0x7DCA, 0xBAF2, + 0x7DCB, 0xE36E, 0x7DCC, 0xE36F, 0x7DCE, 0xE36B, 0x7DD2, 0xBAFC, + 0x7DD7, 0xE6E7, 0x7DD8, 0xBD70, 0x7DD9, 0xBD79, 0x7DDA, 0xBD75, + 0x7DDB, 0xE6E4, 0x7DDD, 0xBD72, 0x7DDE, 0xBD76, 0x7DDF, 0xE6F0, + 0x7DE0, 0xBD6C, 0x7DE1, 0xE6E8, 0x7DE3, 0xBD74, 0x7DE6, 0xE6EB, + 0x7DE7, 0xE6E6, 0x7DE8, 0xBD73, 0x7DE9, 0xBD77, 0x7DEA, 0xE6E5, + 0x7DEC, 0xBD71, 0x7DEE, 0xE6EF, 0x7DEF, 0xBD6E, 0x7DF0, 0xE6EE, + 0x7DF1, 0xE6ED, 0x7DF2, 0xBD7A, 0x7DF3, 0xE572, 0x7DF4, 0xBD6D, + 0x7DF6, 0xE6EC, 0x7DF7, 0xE6E3, 0x7DF9, 0xBD7B, 0x7DFA, 0xE6EA, + 0x7DFB, 0xBD6F, 0x7E03, 0xE6E9, 0x7E08, 0xBFA2, 0x7E09, 0xBFA7, + 0x7E0A, 0xBF7E, 0x7E0B, 0xEAD8, 0x7E0C, 0xEACF, 0x7E0D, 0xEADB, + 0x7E0E, 0xEAD3, 0x7E0F, 0xEAD9, 0x7E10, 0xBFA8, 0x7E11, 0xBFA1, + 0x7E12, 0xEACC, 0x7E13, 0xEAD2, 0x7E14, 0xEADC, 0x7E15, 0xEAD5, + 0x7E16, 0xEADA, 0x7E17, 0xEACE, 0x7E1A, 0xEAD6, 0x7E1B, 0xBFA3, + 0x7E1C, 0xEAD4, 0x7E1D, 0xBFA6, 0x7E1E, 0xBFA5, 0x7E1F, 0xEAD0, + 0x7E20, 0xEAD1, 0x7E21, 0xEACD, 0x7E22, 0xEAD7, 0x7E23, 0xBFA4, + 0x7E24, 0xEADE, 0x7E25, 0xEADD, 0x7E29, 0xEDDA, 0x7E2A, 0xEDD6, + 0x7E2B, 0xC15F, 0x7E2D, 0xEDD0, 0x7E2E, 0xC159, 0x7E2F, 0xC169, + 0x7E30, 0xEDDC, 0x7E31, 0xC161, 0x7E32, 0xC15D, 0x7E33, 0xEDD3, + 0x7E34, 0xC164, 0x7E35, 0xC167, 0x7E36, 0xEDDE, 0x7E37, 0xC15C, + 0x7E38, 0xEDD5, 0x7E39, 0xC165, 0x7E3A, 0xEDE0, 0x7E3B, 0xEDDD, + 0x7E3C, 0xEDD1, 0x7E3D, 0xC160, 0x7E3E, 0xC15A, 0x7E3F, 0xC168, + 0x7E40, 0xEDD8, 0x7E41, 0xC163, 0x7E42, 0xEDD2, 0x7E43, 0xC15E, + 0x7E44, 0xEDDF, 0x7E45, 0xC162, 0x7E46, 0xC15B, 0x7E47, 0xEDD9, + 0x7E48, 0xC166, 0x7E49, 0xEDD7, 0x7E4C, 0xEDDB, 0x7E50, 0xF06E, + 0x7E51, 0xF074, 0x7E52, 0xC2B9, 0x7E53, 0xF077, 0x7E54, 0xC2B4, + 0x7E55, 0xC2B5, 0x7E56, 0xF06F, 0x7E57, 0xF076, 0x7E58, 0xF071, + 0x7E59, 0xC2BA, 0x7E5A, 0xC2B7, 0x7E5C, 0xF06D, 0x7E5E, 0xC2B6, + 0x7E5F, 0xF073, 0x7E60, 0xF075, 0x7E61, 0xC2B8, 0x7E62, 0xF072, + 0x7E63, 0xF070, 0x7E68, 0xF2B8, 0x7E69, 0xC3B7, 0x7E6A, 0xC3B8, + 0x7E6B, 0xC3B4, 0x7E6D, 0xC3B5, 0x7E6F, 0xF2B4, 0x7E70, 0xF2B2, + 0x7E72, 0xF2B6, 0x7E73, 0xC3BA, 0x7E74, 0xF2B7, 0x7E75, 0xF2B0, + 0x7E76, 0xF2AF, 0x7E77, 0xF2B3, 0x7E78, 0xF2B1, 0x7E79, 0xC3B6, + 0x7E7A, 0xF2B5, 0x7E7B, 0xF4AC, 0x7E7C, 0xC47E, 0x7E7D, 0xC47D, + 0x7E7E, 0xF4AD, 0x7E80, 0xF4AF, 0x7E81, 0xF4AE, 0x7E82, 0xC4A1, + 0x7E86, 0xF5EB, 0x7E87, 0xF5E8, 0x7E88, 0xF5E9, 0x7E8A, 0xF5E7, + 0x7E8B, 0xF5EA, 0x7E8C, 0xC4F2, 0x7E8D, 0xF5EC, 0x7E8F, 0xC4F1, + 0x7E91, 0xF742, 0x7E93, 0xC5D5, 0x7E94, 0xC5D7, 0x7E95, 0xF7EE, + 0x7E96, 0xC5D6, 0x7E97, 0xF8B9, 0x7E98, 0xF940, 0x7E99, 0xF942, + 0x7E9A, 0xF8FE, 0x7E9B, 0xF941, 0x7E9C, 0xC66C, 0x7F36, 0xA6CE, + 0x7F38, 0xACFB, 0x7F39, 0xD26F, 0x7F3A, 0xAFCA, 0x7F3D, 0xB2DA, + 0x7F3E, 0xDAFC, 0x7F3F, 0xDAFD, 0x7F43, 0xEADF, 0x7F44, 0xC16A, + 0x7F45, 0xEDE1, 0x7F48, 0xC2BB, 0x7F4A, 0xF2BA, 0x7F4B, 0xF2B9, + 0x7F4C, 0xC4A2, 0x7F4D, 0xF5ED, 0x7F4F, 0xF743, 0x7F50, 0xC5F8, + 0x7F51, 0xCA49, 0x7F54, 0xAAC9, 0x7F55, 0xA875, 0x7F58, 0xD04D, + 0x7F5B, 0xD360, 0x7F5C, 0xD35B, 0x7F5D, 0xD35F, 0x7F5E, 0xD35D, + 0x7F5F, 0xAFCB, 0x7F60, 0xD35E, 0x7F61, 0xD35C, 0x7F63, 0xD6F1, + 0x7F65, 0xDAFE, 0x7F66, 0xDB40, 0x7F67, 0xDF69, 0x7F68, 0xDF6A, + 0x7F69, 0xB86E, 0x7F6A, 0xB86F, 0x7F6B, 0xDF68, 0x7F6C, 0xDF6B, + 0x7F6D, 0xDF67, 0x7F6E, 0xB86D, 0x7F70, 0xBB40, 0x7F72, 0xB870, + 0x7F73, 0xE37A, 0x7F75, 0xBD7C, 0x7F76, 0xE6F1, 0x7F77, 0xBD7D, + 0x7F79, 0xBFA9, 0x7F7A, 0xEAE2, 0x7F7B, 0xEAE0, 0x7F7C, 0xEAE1, + 0x7F7D, 0xEDE4, 0x7F7E, 0xEDE3, 0x7F7F, 0xEDE2, 0x7F83, 0xF2BB, + 0x7F85, 0xC3B9, 0x7F86, 0xF2BC, 0x7F87, 0xF744, 0x7F88, 0xC5F9, + 0x7F89, 0xF8BA, 0x7F8A, 0xA6CF, 0x7F8B, 0xAACB, 0x7F8C, 0xAACA, + 0x7F8D, 0xD04F, 0x7F8E, 0xACFC, 0x7F91, 0xD04E, 0x7F92, 0xD362, + 0x7F94, 0xAFCC, 0x7F95, 0xD6F2, 0x7F96, 0xD361, 0x7F9A, 0xB2DC, + 0x7F9B, 0xD6F5, 0x7F9C, 0xD6F3, 0x7F9D, 0xD6F4, 0x7F9E, 0xB2DB, + 0x7FA0, 0xDB42, 0x7FA1, 0xDB43, 0x7FA2, 0xDB41, 0x7FA4, 0xB873, + 0x7FA5, 0xDF6D, 0x7FA6, 0xDF6C, 0x7FA7, 0xDF6E, 0x7FA8, 0xB872, + 0x7FA9, 0xB871, 0x7FAC, 0xE6F2, 0x7FAD, 0xE6F4, 0x7FAF, 0xBD7E, + 0x7FB0, 0xE6F3, 0x7FB1, 0xEAE3, 0x7FB2, 0xBFAA, 0x7FB3, 0xF079, + 0x7FB5, 0xF078, 0x7FB6, 0xC3BB, 0x7FB7, 0xF2BD, 0x7FB8, 0xC3BD, + 0x7FB9, 0xC3BC, 0x7FBA, 0xF4B0, 0x7FBB, 0xF5EE, 0x7FBC, 0xC4F3, + 0x7FBD, 0xA6D0, 0x7FBE, 0xD050, 0x7FBF, 0xACFD, 0x7FC0, 0xD365, + 0x7FC1, 0xAFCE, 0x7FC2, 0xD364, 0x7FC3, 0xD363, 0x7FC5, 0xAFCD, + 0x7FC7, 0xD6FB, 0x7FC9, 0xD6FD, 0x7FCA, 0xD6F6, 0x7FCB, 0xD6F7, + 0x7FCC, 0xB2DD, 0x7FCD, 0xD6F8, 0x7FCE, 0xB2DE, 0x7FCF, 0xD6FC, + 0x7FD0, 0xD6F9, 0x7FD1, 0xD6FA, 0x7FD2, 0xB2DF, 0x7FD4, 0xB5BE, + 0x7FD5, 0xB5BF, 0x7FD7, 0xDB44, 0x7FDB, 0xDF6F, 0x7FDC, 0xDF70, + 0x7FDE, 0xE37E, 0x7FDF, 0xBB43, 0x7FE0, 0xBB41, 0x7FE1, 0xBB42, + 0x7FE2, 0xE37B, 0x7FE3, 0xE37C, 0x7FE5, 0xE37D, 0x7FE6, 0xE6F9, + 0x7FE8, 0xE6FA, 0x7FE9, 0xBDA1, 0x7FEA, 0xE6F7, 0x7FEB, 0xE6F6, + 0x7FEC, 0xE6F8, 0x7FED, 0xE6F5, 0x7FEE, 0xBFAD, 0x7FEF, 0xEAE4, + 0x7FF0, 0xBFAB, 0x7FF1, 0xBFAC, 0x7FF2, 0xEDE6, 0x7FF3, 0xC16B, + 0x7FF4, 0xEDE5, 0x7FF5, 0xEFA8, 0x7FF7, 0xF07A, 0x7FF8, 0xF07B, + 0x7FF9, 0xC2BC, 0x7FFB, 0xC2BD, 0x7FFC, 0xC16C, 0x7FFD, 0xF2BE, + 0x7FFE, 0xF2BF, 0x7FFF, 0xF4B1, 0x8000, 0xC4A3, 0x8001, 0xA6D1, + 0x8003, 0xA6D2, 0x8004, 0xACFE, 0x8005, 0xAACC, 0x8006, 0xAFCF, + 0x8007, 0xD051, 0x800B, 0xB5C0, 0x800C, 0xA6D3, 0x800D, 0xAD41, + 0x800E, 0xD052, 0x800F, 0xD053, 0x8010, 0xAD40, 0x8011, 0xAD42, + 0x8012, 0xA6D4, 0x8014, 0xD054, 0x8015, 0xAFD1, 0x8016, 0xD366, + 0x8017, 0xAFD3, 0x8018, 0xAFD0, 0x8019, 0xAFD2, 0x801B, 0xD741, + 0x801C, 0xB2E0, 0x801E, 0xD740, 0x801F, 0xD6FE, 0x8021, 0xDF71, + 0x8024, 0xE3A1, 0x8026, 0xBDA2, 0x8028, 0xBFAE, 0x8029, 0xEAE6, + 0x802A, 0xEAE5, 0x802C, 0xEDE7, 0x8030, 0xF5EF, 0x8033, 0xA6D5, + 0x8034, 0xCB73, 0x8035, 0xCDAA, 0x8036, 0xAD43, 0x8037, 0xD055, + 0x8039, 0xD368, 0x803D, 0xAFD4, 0x803E, 0xD367, 0x803F, 0xAFD5, + 0x8043, 0xD743, 0x8046, 0xB2E2, 0x8047, 0xD742, 0x8048, 0xD744, + 0x804A, 0xB2E1, 0x804F, 0xDB46, 0x8050, 0xDB47, 0x8051, 0xDB45, + 0x8052, 0xB5C1, 0x8056, 0xB874, 0x8058, 0xB875, 0x805A, 0xBB45, + 0x805C, 0xE3A3, 0x805D, 0xE3A2, 0x805E, 0xBB44, 0x8064, 0xE6FB, + 0x8067, 0xE6FC, 0x806C, 0xEAE7, 0x806F, 0xC170, 0x8070, 0xC16F, + 0x8071, 0xC16D, 0x8072, 0xC16E, 0x8073, 0xC171, 0x8075, 0xF07C, + 0x8076, 0xC2BF, 0x8077, 0xC2BE, 0x8078, 0xF2C0, 0x8079, 0xF4B2, + 0x807D, 0xC5A5, 0x807E, 0xC5A4, 0x807F, 0xA6D6, 0x8082, 0xD1FB, + 0x8084, 0xB877, 0x8085, 0xB5C2, 0x8086, 0xB876, 0x8087, 0xBB46, + 0x8089, 0xA6D7, 0x808A, 0xC9A9, 0x808B, 0xA6D8, 0x808C, 0xA6D9, + 0x808F, 0xCDAB, 0x8090, 0xCB76, 0x8092, 0xCB77, 0x8093, 0xA877, + 0x8095, 0xCB74, 0x8096, 0xA876, 0x8098, 0xA879, 0x8099, 0xCB75, + 0x809A, 0xA87B, 0x809B, 0xA87A, 0x809C, 0xCB78, 0x809D, 0xA878, + 0x80A1, 0xAAD1, 0x80A2, 0xAACF, 0x80A3, 0xCDAD, 0x80A5, 0xAACE, + 0x80A9, 0xAAD3, 0x80AA, 0xAAD5, 0x80AB, 0xAAD2, 0x80AD, 0xCDB0, + 0x80AE, 0xCDAC, 0x80AF, 0xAAD6, 0x80B1, 0xAAD0, 0x80B2, 0xA87C, + 0x80B4, 0xAAD4, 0x80B5, 0xCDAF, 0x80B8, 0xCDAE, 0x80BA, 0xAACD, + 0x80C2, 0xD05B, 0x80C3, 0xAD47, 0x80C4, 0xAD48, 0x80C5, 0xD05D, + 0x80C7, 0xD057, 0x80C8, 0xD05A, 0x80C9, 0xD063, 0x80CA, 0xD061, + 0x80CC, 0xAD49, 0x80CD, 0xD067, 0x80CE, 0xAD4C, 0x80CF, 0xD064, + 0x80D0, 0xD05C, 0x80D1, 0xD059, 0x80D4, 0xDB49, 0x80D5, 0xD062, + 0x80D6, 0xAD44, 0x80D7, 0xD065, 0x80D8, 0xD056, 0x80D9, 0xD05F, + 0x80DA, 0xAD46, 0x80DB, 0xAD4B, 0x80DC, 0xD060, 0x80DD, 0xAD4F, + 0x80DE, 0xAD4D, 0x80E0, 0xD058, 0x80E1, 0xAD4A, 0x80E3, 0xD05E, + 0x80E4, 0xAD4E, 0x80E5, 0xAD45, 0x80E6, 0xD066, 0x80ED, 0xAFDA, + 0x80EF, 0xAFE3, 0x80F0, 0xAFD8, 0x80F1, 0xAFD6, 0x80F2, 0xD36A, + 0x80F3, 0xAFDE, 0x80F4, 0xAFDB, 0x80F5, 0xD36C, 0x80F8, 0xAFDD, + 0x80F9, 0xD36B, 0x80FA, 0xD369, 0x80FB, 0xD36E, 0x80FC, 0xAFE2, + 0x80FD, 0xAFE0, 0x80FE, 0xDB48, 0x8100, 0xD36F, 0x8101, 0xD36D, + 0x8102, 0xAFD7, 0x8105, 0xAFD9, 0x8106, 0xAFDC, 0x8108, 0xAFDF, + 0x810A, 0xAFE1, 0x8115, 0xD74E, 0x8116, 0xB2E4, 0x8118, 0xD745, + 0x8119, 0xD747, 0x811B, 0xD748, 0x811D, 0xD750, 0x811E, 0xD74C, + 0x811F, 0xD74A, 0x8121, 0xD74D, 0x8122, 0xD751, 0x8123, 0xB2E5, + 0x8124, 0xB2E9, 0x8125, 0xD746, 0x8127, 0xD74F, 0x8129, 0xB2E7, + 0x812B, 0xB2E6, 0x812C, 0xD74B, 0x812D, 0xD749, 0x812F, 0xB2E3, + 0x8130, 0xB2E8, 0x8139, 0xB5C8, 0x813A, 0xDB51, 0x813D, 0xDB4F, + 0x813E, 0xB5CA, 0x8143, 0xDB4A, 0x8144, 0xDFA1, 0x8146, 0xB5C9, + 0x8147, 0xDB4E, 0x814A, 0xDB4B, 0x814B, 0xB5C5, 0x814C, 0xB5CB, + 0x814D, 0xDB50, 0x814E, 0xB5C7, 0x814F, 0xDB4D, 0x8150, 0xBB47, + 0x8151, 0xB5C6, 0x8152, 0xDB4C, 0x8153, 0xB5CC, 0x8154, 0xB5C4, + 0x8155, 0xB5C3, 0x815B, 0xDF77, 0x815C, 0xDF75, 0x815E, 0xDF7B, + 0x8160, 0xDF73, 0x8161, 0xDFA2, 0x8162, 0xDF78, 0x8164, 0xDF72, + 0x8165, 0xB87B, 0x8166, 0xB8A3, 0x8167, 0xDF7D, 0x8169, 0xDF76, + 0x816B, 0xB87E, 0x816E, 0xB87C, 0x816F, 0xDF7E, 0x8170, 0xB879, + 0x8171, 0xB878, 0x8172, 0xDF79, 0x8173, 0xB87D, 0x8174, 0xB5CD, + 0x8176, 0xDF7C, 0x8177, 0xDF74, 0x8178, 0xB87A, 0x8179, 0xB8A1, + 0x817A, 0xB8A2, 0x817F, 0xBB4C, 0x8180, 0xBB48, 0x8182, 0xBB4D, + 0x8183, 0xE3A6, 0x8186, 0xE3A5, 0x8187, 0xE3A7, 0x8188, 0xBB4A, + 0x8189, 0xE3A4, 0x818A, 0xBB4B, 0x818B, 0xE3AA, 0x818C, 0xE3A9, + 0x818D, 0xE3A8, 0x818F, 0xBB49, 0x8195, 0xE741, 0x8197, 0xE744, + 0x8198, 0xBDA8, 0x8199, 0xE743, 0x819A, 0xBDA7, 0x819B, 0xBDA3, + 0x819C, 0xBDA4, 0x819D, 0xBDA5, 0x819E, 0xE740, 0x819F, 0xE6FE, + 0x81A0, 0xBDA6, 0x81A2, 0xE742, 0x81A3, 0xE6FD, 0x81A6, 0xEAE9, + 0x81A7, 0xEAF3, 0x81A8, 0xBFB1, 0x81A9, 0xBFB0, 0x81AB, 0xEAED, + 0x81AC, 0xEAEF, 0x81AE, 0xEAEA, 0x81B0, 0xEAEE, 0x81B1, 0xEAE8, + 0x81B2, 0xEAF1, 0x81B3, 0xBFAF, 0x81B4, 0xEAF0, 0x81B5, 0xEAEC, + 0x81B7, 0xEAF2, 0x81B9, 0xEAEB, 0x81BA, 0xC174, 0x81BB, 0xEDE8, + 0x81BC, 0xEDEE, 0x81BD, 0xC178, 0x81BE, 0xC17A, 0x81BF, 0xC177, + 0x81C0, 0xC176, 0x81C2, 0xC175, 0x81C3, 0xC173, 0x81C4, 0xEDE9, + 0x81C5, 0xEDEC, 0x81C6, 0xC172, 0x81C7, 0xEDED, 0x81C9, 0xC179, + 0x81CA, 0xEDEB, 0x81CC, 0xEDEA, 0x81CD, 0xC2C0, 0x81CF, 0xC2C1, + 0x81D0, 0xF0A1, 0x81D1, 0xF07D, 0x81D2, 0xF07E, 0x81D5, 0xF2C2, + 0x81D7, 0xF2C1, 0x81D8, 0xC3BE, 0x81D9, 0xF4B4, 0x81DA, 0xC4A4, + 0x81DB, 0xF4B3, 0x81DD, 0xF5F0, 0x81DE, 0xF745, 0x81DF, 0xC5A6, + 0x81E0, 0xF943, 0x81E1, 0xF944, 0x81E2, 0xC5D8, 0x81E3, 0xA6DA, + 0x81E5, 0xAAD7, 0x81E6, 0xDB52, 0x81E7, 0xBB4E, 0x81E8, 0xC17B, + 0x81E9, 0xEDEF, 0x81EA, 0xA6DB, 0x81EC, 0xAFE5, 0x81ED, 0xAFE4, + 0x81EE, 0xDB53, 0x81F2, 0xEAF4, 0x81F3, 0xA6DC, 0x81F4, 0xAD50, + 0x81F7, 0xDB54, 0x81F8, 0xDB55, 0x81F9, 0xDB56, 0x81FA, 0xBB4F, + 0x81FB, 0xBFB2, 0x81FC, 0xA6DD, 0x81FE, 0xAAD8, 0x81FF, 0xD068, + 0x8200, 0xAFE6, 0x8201, 0xD370, 0x8202, 0xB2EA, 0x8204, 0xDB57, + 0x8205, 0xB8A4, 0x8207, 0xBB50, 0x8208, 0xBFB3, 0x8209, 0xC17C, + 0x820A, 0xC2C2, 0x820B, 0xF4B5, 0x820C, 0xA6DE, 0x820D, 0xAAD9, + 0x8210, 0xAFE7, 0x8211, 0xD752, 0x8212, 0xB5CE, 0x8214, 0xBB51, + 0x8215, 0xE3AB, 0x8216, 0xE745, 0x821B, 0xA6DF, 0x821C, 0xB5CF, + 0x821D, 0xDFA3, 0x821E, 0xBB52, 0x821F, 0xA6E0, 0x8220, 0xCDB1, + 0x8221, 0xD069, 0x8222, 0xAD51, 0x8225, 0xD372, 0x8228, 0xAFEA, + 0x822A, 0xAFE8, 0x822B, 0xAFE9, 0x822C, 0xAFEB, 0x822F, 0xD371, + 0x8232, 0xD757, 0x8233, 0xD754, 0x8234, 0xD756, 0x8235, 0xB2EB, + 0x8236, 0xB2ED, 0x8237, 0xB2EC, 0x8238, 0xD753, 0x8239, 0xB2EE, + 0x823A, 0xD755, 0x823C, 0xDB58, 0x823D, 0xDB59, 0x823F, 0xDB5A, + 0x8240, 0xDFA6, 0x8242, 0xDFA7, 0x8244, 0xDFA5, 0x8245, 0xDFA8, + 0x8247, 0xB8A5, 0x8249, 0xDFA4, 0x824B, 0xBB53, 0x824E, 0xE74A, + 0x824F, 0xE746, 0x8250, 0xE749, 0x8251, 0xE74B, 0x8252, 0xE748, + 0x8253, 0xE747, 0x8255, 0xEAF5, 0x8256, 0xEAF6, 0x8257, 0xEAF7, + 0x8258, 0xBFB4, 0x8259, 0xBFB5, 0x825A, 0xEDF1, 0x825B, 0xEDF0, + 0x825C, 0xEDF2, 0x825E, 0xF0A3, 0x825F, 0xF0A2, 0x8261, 0xF2C4, + 0x8263, 0xF2C5, 0x8264, 0xF2C3, 0x8266, 0xC4A5, 0x8268, 0xF4B6, + 0x8269, 0xF4B7, 0x826B, 0xF746, 0x826C, 0xF7EF, 0x826D, 0xF8BB, + 0x826E, 0xA6E1, 0x826F, 0xA87D, 0x8271, 0xC17D, 0x8272, 0xA6E2, + 0x8274, 0xD758, 0x8275, 0xDB5B, 0x8277, 0xC641, 0x8278, 0xCA4A, + 0x827C, 0xCA4B, 0x827D, 0xCA4D, 0x827E, 0xA6E3, 0x827F, 0xCA4E, + 0x8280, 0xCA4C, 0x8283, 0xCBA2, 0x8284, 0xCBA3, 0x8285, 0xCB7B, + 0x828A, 0xCBA1, 0x828B, 0xA8A1, 0x828D, 0xA8A2, 0x828E, 0xCB7C, + 0x828F, 0xCB7A, 0x8290, 0xCB79, 0x8291, 0xCB7D, 0x8292, 0xA87E, + 0x8293, 0xCB7E, 0x8294, 0xD06A, 0x8298, 0xCDB6, 0x8299, 0xAADC, + 0x829A, 0xCDB5, 0x829B, 0xCDB7, 0x829D, 0xAADB, 0x829E, 0xCDBC, + 0x829F, 0xAADF, 0x82A0, 0xCDB2, 0x82A1, 0xCDC0, 0x82A2, 0xCDC6, + 0x82A3, 0xAAE6, 0x82A4, 0xCDC3, 0x82A5, 0xAAE3, 0x82A7, 0xCDB9, + 0x82A8, 0xCDBF, 0x82A9, 0xCDC1, 0x82AB, 0xCDB4, 0x82AC, 0xAAE2, + 0x82AD, 0xAADD, 0x82AE, 0xCDBA, 0x82AF, 0xAAE4, 0x82B0, 0xAAE7, + 0x82B1, 0xAAE1, 0x82B3, 0xAADA, 0x82B4, 0xCDBE, 0x82B5, 0xCDB8, + 0x82B6, 0xCDC5, 0x82B7, 0xAAE9, 0x82B8, 0xAAE5, 0x82B9, 0xAAE0, + 0x82BA, 0xCDBD, 0x82BB, 0xAFEC, 0x82BC, 0xCDBB, 0x82BD, 0xAADE, + 0x82BE, 0xAAE8, 0x82C0, 0xCDB3, 0x82C2, 0xCDC2, 0x82C3, 0xCDC4, + 0x82D1, 0xAD62, 0x82D2, 0xAD5C, 0x82D3, 0xAD64, 0x82D4, 0xAD61, + 0x82D5, 0xD071, 0x82D6, 0xD074, 0x82D7, 0xAD5D, 0x82D9, 0xD06B, + 0x82DB, 0xAD56, 0x82DC, 0xAD60, 0x82DE, 0xAD63, 0x82DF, 0xAD65, + 0x82E0, 0xD0A2, 0x82E1, 0xD077, 0x82E3, 0xAD55, 0x82E4, 0xD0A1, + 0x82E5, 0xAD59, 0x82E6, 0xAD57, 0x82E7, 0xAD52, 0x82E8, 0xD06F, + 0x82EA, 0xD07E, 0x82EB, 0xD073, 0x82EC, 0xD076, 0x82ED, 0xD0A5, + 0x82EF, 0xAD66, 0x82F0, 0xD07D, 0x82F1, 0xAD5E, 0x82F2, 0xD078, + 0x82F3, 0xD0A4, 0x82F4, 0xD075, 0x82F5, 0xD079, 0x82F6, 0xD07C, + 0x82F9, 0xD06D, 0x82FA, 0xD0A3, 0x82FB, 0xD07B, 0x82FE, 0xD06C, + 0x8300, 0xD070, 0x8301, 0xAD5F, 0x8302, 0xAD5A, 0x8303, 0xAD53, + 0x8304, 0xAD58, 0x8305, 0xAD54, 0x8306, 0xAD67, 0x8307, 0xD06E, + 0x8308, 0xD3A5, 0x8309, 0xAD5B, 0x830C, 0xD07A, 0x830D, 0xCE41, + 0x8316, 0xD3A8, 0x8317, 0xAFFA, 0x8319, 0xD376, 0x831B, 0xD3A3, + 0x831C, 0xD37D, 0x831E, 0xD3B2, 0x8320, 0xD3AA, 0x8322, 0xD37E, + 0x8324, 0xD3A9, 0x8325, 0xD378, 0x8326, 0xD37C, 0x8327, 0xD3B5, + 0x8328, 0xAFFD, 0x8329, 0xD3AD, 0x832A, 0xD3A4, 0x832B, 0xAFED, + 0x832C, 0xD3B3, 0x832D, 0xD374, 0x832F, 0xD3AC, 0x8331, 0xAFFC, + 0x8332, 0xAFF7, 0x8333, 0xD373, 0x8334, 0xAFF5, 0x8335, 0xAFF4, + 0x8336, 0xAFF9, 0x8337, 0xD3AB, 0x8338, 0xAFF1, 0x8339, 0xAFF8, + 0x833A, 0xD072, 0x833B, 0xDB5C, 0x833C, 0xD3A6, 0x833F, 0xD37A, + 0x8340, 0xAFFB, 0x8341, 0xD37B, 0x8342, 0xD3A1, 0x8343, 0xAFFE, + 0x8344, 0xD375, 0x8345, 0xD3AF, 0x8347, 0xD3AE, 0x8348, 0xD3B6, + 0x8349, 0xAFF3, 0x834A, 0xAFF0, 0x834B, 0xD3B4, 0x834C, 0xD3B0, + 0x834D, 0xD3A7, 0x834E, 0xD3A2, 0x834F, 0xAFF6, 0x8350, 0xAFF2, + 0x8351, 0xD377, 0x8352, 0xAFEE, 0x8353, 0xD3B1, 0x8354, 0xAFEF, + 0x8356, 0xD379, 0x8373, 0xD75E, 0x8374, 0xD760, 0x8375, 0xD765, + 0x8376, 0xD779, 0x8377, 0xB2FC, 0x8378, 0xB2F2, 0x837A, 0xD75D, + 0x837B, 0xB2FD, 0x837C, 0xB2FE, 0x837D, 0xD768, 0x837E, 0xD76F, + 0x837F, 0xD775, 0x8381, 0xD762, 0x8383, 0xD769, 0x8386, 0xB340, + 0x8387, 0xD777, 0x8388, 0xD772, 0x8389, 0xB2FA, 0x838A, 0xB2F8, + 0x838B, 0xD76E, 0x838C, 0xD76A, 0x838D, 0xD75C, 0x838E, 0xB2EF, + 0x838F, 0xD761, 0x8390, 0xD759, 0x8392, 0xB2F7, 0x8393, 0xB2F9, + 0x8394, 0xD766, 0x8395, 0xD763, 0x8396, 0xB2F4, 0x8397, 0xD773, + 0x8398, 0xB2F1, 0x8399, 0xD764, 0x839A, 0xD77A, 0x839B, 0xD76C, + 0x839D, 0xD76B, 0x839E, 0xB2F0, 0x83A0, 0xB2FB, 0x83A2, 0xB2F3, + 0x83A3, 0xD75A, 0x83A4, 0xD75F, 0x83A5, 0xD770, 0x83A6, 0xD776, + 0x83A7, 0xB341, 0x83A8, 0xD75B, 0x83A9, 0xD767, 0x83AA, 0xD76D, + 0x83AB, 0xB2F6, 0x83AE, 0xD778, 0x83AF, 0xD771, 0x83B0, 0xD774, + 0x83BD, 0xB2F5, 0x83BF, 0xDB6C, 0x83C0, 0xDB60, 0x83C1, 0xB5D7, + 0x83C2, 0xDB7D, 0x83C3, 0xDBA7, 0x83C4, 0xDBAA, 0x83C5, 0xB5D5, + 0x83C6, 0xDB68, 0x83C7, 0xDBA3, 0x83C8, 0xDB69, 0x83C9, 0xDB77, + 0x83CA, 0xB5E2, 0x83CB, 0xDB73, 0x83CC, 0xB5DF, 0x83CE, 0xDB74, + 0x83CF, 0xDB5D, 0x83D1, 0xDBA4, 0x83D4, 0xB5E8, 0x83D5, 0xDBA1, + 0x83D6, 0xDB75, 0x83D7, 0xDBAC, 0x83D8, 0xDB70, 0x83D9, 0xDFC8, + 0x83DB, 0xDBAF, 0x83DC, 0xB5E6, 0x83DD, 0xDB6E, 0x83DE, 0xDB7A, + 0x83DF, 0xB5E9, 0x83E0, 0xB5D4, 0x83E1, 0xDB72, 0x83E2, 0xDBAD, + 0x83E3, 0xDB6B, 0x83E4, 0xDB64, 0x83E5, 0xDB6F, 0x83E7, 0xDB63, + 0x83E8, 0xDB61, 0x83E9, 0xB5D0, 0x83EA, 0xDBA5, 0x83EB, 0xDB6A, + 0x83EC, 0xDBA8, 0x83EE, 0xDBA9, 0x83EF, 0xB5D8, 0x83F0, 0xB5DD, + 0x83F1, 0xB5D9, 0x83F2, 0xB5E1, 0x83F3, 0xDB7E, 0x83F4, 0xB5DA, + 0x83F5, 0xDB76, 0x83F6, 0xDB66, 0x83F8, 0xB5D2, 0x83F9, 0xDB5E, + 0x83FA, 0xDBA2, 0x83FB, 0xDBAB, 0x83FC, 0xDB65, 0x83FD, 0xB5E0, + 0x83FE, 0xDBB0, 0x83FF, 0xDB71, 0x8401, 0xDB6D, 0x8403, 0xB5D1, + 0x8404, 0xB5E5, 0x8406, 0xDB7C, 0x8407, 0xB5E7, 0x8409, 0xDB78, + 0x840A, 0xB5DC, 0x840B, 0xB5D6, 0x840C, 0xB5DE, 0x840D, 0xB5D3, + 0x840E, 0xB5E4, 0x840F, 0xDB79, 0x8410, 0xDB67, 0x8411, 0xDB7B, + 0x8412, 0xDB62, 0x8413, 0xDBA6, 0x841B, 0xDBAE, 0x8423, 0xDB5F, + 0x8429, 0xDFC7, 0x842B, 0xDFDD, 0x842C, 0xB855, 0x842D, 0xDFCC, + 0x842F, 0xDFCA, 0x8430, 0xDFB5, 0x8431, 0xB8A9, 0x8432, 0xDFC5, + 0x8433, 0xDFD9, 0x8434, 0xDFC1, 0x8435, 0xB8B1, 0x8436, 0xDFD8, + 0x8437, 0xDFBF, 0x8438, 0xB5E3, 0x8439, 0xDFCF, 0x843A, 0xDFC0, + 0x843B, 0xDFD6, 0x843C, 0xB8B0, 0x843D, 0xB8A8, 0x843F, 0xDFAA, + 0x8440, 0xDFB2, 0x8442, 0xDFCB, 0x8443, 0xDFC3, 0x8444, 0xDFDC, + 0x8445, 0xDFC6, 0x8446, 0xB8B6, 0x8447, 0xDFD7, 0x8449, 0xB8AD, + 0x844B, 0xDFC9, 0x844C, 0xDFD1, 0x844D, 0xDFB6, 0x844E, 0xDFD0, + 0x8450, 0xDFE1, 0x8451, 0xDFB1, 0x8452, 0xDFD2, 0x8454, 0xDFDF, + 0x8456, 0xDFAB, 0x8457, 0xB5DB, 0x8459, 0xDFB9, 0x845A, 0xDFB8, + 0x845B, 0xB8AF, 0x845D, 0xDFBC, 0x845E, 0xDFBE, 0x845F, 0xDFCD, + 0x8460, 0xDFDE, 0x8461, 0xB8B2, 0x8463, 0xB8B3, 0x8465, 0xDFB0, + 0x8466, 0xB8AB, 0x8467, 0xDFB4, 0x8468, 0xDFDA, 0x8469, 0xB8B4, + 0x846B, 0xB8AC, 0x846C, 0xB8AE, 0x846D, 0xB8B5, 0x846E, 0xDFE0, + 0x846F, 0xDFD3, 0x8470, 0xDFCE, 0x8473, 0xDFBB, 0x8474, 0xDFBA, + 0x8475, 0xB8AA, 0x8476, 0xDFAC, 0x8477, 0xB8A7, 0x8478, 0xDFC4, + 0x8479, 0xDFAD, 0x847A, 0xDFC2, 0x847D, 0xDFB7, 0x847E, 0xDFDB, + 0x8482, 0xB8A6, 0x8486, 0xDFB3, 0x848D, 0xDFAF, 0x848E, 0xDFD5, + 0x848F, 0xDFAE, 0x8490, 0xBB60, 0x8491, 0xE3D3, 0x8494, 0xE3C2, + 0x8497, 0xE3AC, 0x8498, 0xE3CA, 0x8499, 0xBB58, 0x849A, 0xE3BB, + 0x849B, 0xE3C5, 0x849C, 0xBB5B, 0x849D, 0xE3BE, 0x849E, 0xBB59, + 0x849F, 0xE3AF, 0x84A0, 0xE3CD, 0x84A1, 0xE3AE, 0x84A2, 0xE3C1, + 0x84A4, 0xE3AD, 0x84A7, 0xE3BF, 0x84A8, 0xE3C8, 0x84A9, 0xE3C6, + 0x84AA, 0xE3BA, 0x84AB, 0xE3B5, 0x84AC, 0xE3B3, 0x84AE, 0xE3B4, + 0x84AF, 0xE3C7, 0x84B0, 0xE3D2, 0x84B1, 0xE3BC, 0x84B2, 0xBB5A, + 0x84B4, 0xE3B7, 0x84B6, 0xE3CB, 0x84B8, 0xBB5D, 0x84B9, 0xE3B6, + 0x84BA, 0xE3B0, 0x84BB, 0xE3C0, 0x84BC, 0xBB61, 0x84BF, 0xBB55, + 0x84C0, 0xBB5E, 0x84C1, 0xE3B8, 0x84C2, 0xE3B2, 0x84C4, 0xBB57, + 0x84C5, 0xDFD4, 0x84C6, 0xBB56, 0x84C7, 0xE3C3, 0x84C9, 0xBB54, + 0x84CA, 0xBB63, 0x84CB, 0xBB5C, 0x84CC, 0xE3C4, 0x84CD, 0xE3B9, + 0x84CE, 0xE3B1, 0x84CF, 0xE3CC, 0x84D0, 0xE3BD, 0x84D1, 0xBB62, + 0x84D2, 0xE3D0, 0x84D3, 0xBB5F, 0x84D4, 0xE3CF, 0x84D6, 0xE3C9, + 0x84D7, 0xE3CE, 0x84DB, 0xE3D1, 0x84E7, 0xE773, 0x84E8, 0xE774, + 0x84E9, 0xE767, 0x84EA, 0xE766, 0x84EB, 0xE762, 0x84EC, 0xBDB4, + 0x84EE, 0xBDAC, 0x84EF, 0xE776, 0x84F0, 0xE775, 0x84F1, 0xDFA9, + 0x84F2, 0xE75F, 0x84F3, 0xE763, 0x84F4, 0xE75D, 0x84F6, 0xE770, + 0x84F7, 0xE761, 0x84F9, 0xE777, 0x84FA, 0xE75A, 0x84FB, 0xE758, + 0x84FC, 0xE764, 0x84FD, 0xE76E, 0x84FE, 0xE769, 0x84FF, 0xBDB6, + 0x8500, 0xE74F, 0x8502, 0xE76D, 0x8506, 0xBDB7, 0x8507, 0xDFBD, + 0x8508, 0xE75B, 0x8509, 0xE752, 0x850A, 0xE755, 0x850B, 0xE77B, + 0x850C, 0xE75C, 0x850D, 0xE753, 0x850E, 0xE751, 0x850F, 0xE74E, + 0x8511, 0xBDB0, 0x8512, 0xE765, 0x8513, 0xBDAF, 0x8514, 0xBDB3, + 0x8515, 0xE760, 0x8516, 0xE768, 0x8517, 0xBDA9, 0x8518, 0xE778, + 0x8519, 0xE77C, 0x851A, 0xBDAB, 0x851C, 0xE757, 0x851D, 0xE76B, + 0x851E, 0xE76F, 0x851F, 0xE754, 0x8520, 0xE779, 0x8521, 0xBDB2, + 0x8523, 0xBDB1, 0x8524, 0xE74C, 0x8525, 0xBDB5, 0x8526, 0xE772, + 0x8527, 0xE756, 0x8528, 0xE76A, 0x8529, 0xE750, 0x852A, 0xE75E, + 0x852B, 0xE759, 0x852C, 0xBDAD, 0x852D, 0xBDAE, 0x852E, 0xE76C, + 0x852F, 0xE77D, 0x8530, 0xE77A, 0x8531, 0xE771, 0x853B, 0xE74D, + 0x853D, 0xBDAA, 0x853E, 0xEB49, 0x8540, 0xEB40, 0x8541, 0xEB43, + 0x8543, 0xBFBB, 0x8544, 0xEB45, 0x8545, 0xEAF9, 0x8546, 0xEB41, + 0x8547, 0xEB47, 0x8548, 0xBFB8, 0x8549, 0xBFBC, 0x854A, 0xBFB6, + 0x854D, 0xEAFB, 0x854E, 0xEB4C, 0x8551, 0xEB46, 0x8553, 0xEAFC, + 0x8554, 0xEB55, 0x8555, 0xEB4F, 0x8556, 0xEAF8, 0x8557, 0xEE46, + 0x8558, 0xEAFE, 0x8559, 0xBFB7, 0x855B, 0xEB4A, 0x855D, 0xEB54, + 0x855E, 0xBFBF, 0x8560, 0xEB51, 0x8561, 0xEAFD, 0x8562, 0xEB44, + 0x8563, 0xEB48, 0x8564, 0xEB42, 0x8565, 0xEB56, 0x8566, 0xEB53, + 0x8567, 0xEB50, 0x8568, 0xBFB9, 0x8569, 0xBFBA, 0x856A, 0xBFBE, + 0x856B, 0xEAFA, 0x856C, 0xEB57, 0x856D, 0xBFBD, 0x856E, 0xEB4D, + 0x8571, 0xEB4B, 0x8575, 0xEB4E, 0x8576, 0xEE53, 0x8577, 0xEE40, + 0x8578, 0xEE45, 0x8579, 0xEE52, 0x857A, 0xEE44, 0x857B, 0xEDFB, + 0x857C, 0xEE41, 0x857E, 0xC1A2, 0x8580, 0xEDF4, 0x8581, 0xEE4D, + 0x8582, 0xEE4F, 0x8583, 0xEDF3, 0x8584, 0xC1A1, 0x8585, 0xEE51, + 0x8586, 0xEE49, 0x8587, 0xC1A8, 0x8588, 0xEE50, 0x8589, 0xEE42, + 0x858A, 0xC1AA, 0x858B, 0xEDF9, 0x858C, 0xEB52, 0x858D, 0xEE4A, + 0x858E, 0xEE47, 0x858F, 0xEDF5, 0x8590, 0xEE55, 0x8591, 0xC1A4, + 0x8594, 0xC1A5, 0x8595, 0xEDF7, 0x8596, 0xEE48, 0x8598, 0xEE54, + 0x8599, 0xEE4B, 0x859A, 0xEDFD, 0x859B, 0xC1A7, 0x859C, 0xC1A3, + 0x859D, 0xEE4C, 0x859E, 0xEDFE, 0x859F, 0xEE56, 0x85A0, 0xEDF8, + 0x85A1, 0xEE43, 0x85A2, 0xEE4E, 0x85A3, 0xEDFA, 0x85A4, 0xEDFC, + 0x85A6, 0xC2CB, 0x85A7, 0xEDF6, 0x85A8, 0xC1A9, 0x85A9, 0xC2C4, + 0x85AA, 0xC17E, 0x85AF, 0xC1A6, 0x85B0, 0xC2C8, 0x85B1, 0xF0B3, + 0x85B3, 0xF0A9, 0x85B4, 0xF0A4, 0x85B5, 0xF0AA, 0x85B6, 0xF0B4, + 0x85B7, 0xF0B8, 0x85B8, 0xF0B7, 0x85B9, 0xC2CA, 0x85BA, 0xC2C9, + 0x85BD, 0xF0AB, 0x85BE, 0xF0B9, 0x85BF, 0xF0AE, 0x85C0, 0xF0A6, + 0x85C2, 0xF0A8, 0x85C3, 0xF0A7, 0x85C4, 0xF0AD, 0x85C5, 0xF0B2, + 0x85C6, 0xF0A5, 0x85C7, 0xF0AC, 0x85C8, 0xF0B1, 0x85C9, 0xC2C7, + 0x85CB, 0xF0AF, 0x85CD, 0xC2C5, 0x85CE, 0xF0B0, 0x85CF, 0xC2C3, + 0x85D0, 0xC2C6, 0x85D1, 0xF2D5, 0x85D2, 0xF0B5, 0x85D5, 0xC3C2, + 0x85D7, 0xF2CD, 0x85D8, 0xF2D1, 0x85D9, 0xF2C9, 0x85DA, 0xF2CC, + 0x85DC, 0xF2D4, 0x85DD, 0xC3C0, 0x85DE, 0xF2D9, 0x85DF, 0xF2D2, + 0x85E1, 0xF2CA, 0x85E2, 0xF2DA, 0x85E3, 0xF2D3, 0x85E4, 0xC3C3, + 0x85E5, 0xC3C4, 0x85E6, 0xF2D7, 0x85E8, 0xF2CB, 0x85E9, 0xC3BF, + 0x85EA, 0xC3C1, 0x85EB, 0xF2C6, 0x85EC, 0xF2CE, 0x85ED, 0xF2C8, + 0x85EF, 0xF2D8, 0x85F0, 0xF2D6, 0x85F1, 0xF2C7, 0x85F2, 0xF2CF, + 0x85F6, 0xF4BE, 0x85F7, 0xC3C5, 0x85F8, 0xF2D0, 0x85F9, 0xC4A7, + 0x85FA, 0xC4A9, 0x85FB, 0xC4A6, 0x85FD, 0xF4C3, 0x85FE, 0xF4BB, + 0x85FF, 0xF4B9, 0x8600, 0xF4BD, 0x8601, 0xF4BA, 0x8604, 0xF4BF, + 0x8605, 0xF4C1, 0x8606, 0xC4AA, 0x8607, 0xC4AC, 0x8609, 0xF4C0, + 0x860A, 0xC4AD, 0x860B, 0xC4AB, 0x860C, 0xF4C2, 0x8611, 0xC4A8, + 0x8617, 0xC4F4, 0x8618, 0xF5F1, 0x8619, 0xF5F7, 0x861A, 0xC4F6, + 0x861B, 0xF4BC, 0x861C, 0xF5F6, 0x861E, 0xF5FD, 0x861F, 0xF5F4, + 0x8620, 0xF5FB, 0x8621, 0xF5FA, 0x8622, 0xF4B8, 0x8623, 0xF5F5, + 0x8624, 0xF0B6, 0x8625, 0xF5FE, 0x8626, 0xF5F3, 0x8627, 0xF5F8, + 0x8629, 0xF5FC, 0x862A, 0xF5F2, 0x862C, 0xF74A, 0x862D, 0xC4F5, + 0x862E, 0xF5F9, 0x8631, 0xF7F4, 0x8632, 0xF74B, 0x8633, 0xF749, + 0x8634, 0xF747, 0x8635, 0xF748, 0x8636, 0xF74C, 0x8638, 0xC5D9, + 0x8639, 0xF7F2, 0x863A, 0xF7F0, 0x863B, 0xF7F5, 0x863C, 0xF7F3, + 0x863E, 0xF7F6, 0x863F, 0xC5DA, 0x8640, 0xF7F1, 0x8643, 0xF8BC, + 0x8646, 0xF945, 0x8647, 0xF946, 0x8648, 0xF947, 0x864B, 0xF9C7, + 0x864C, 0xF9BD, 0x864D, 0xCA4F, 0x864E, 0xAAEA, 0x8650, 0xAD68, + 0x8652, 0xD3B8, 0x8653, 0xD3B7, 0x8654, 0xB040, 0x8655, 0xB342, + 0x8656, 0xD77C, 0x8659, 0xD77B, 0x865B, 0xB5EA, 0x865C, 0xB8B8, + 0x865E, 0xB8B7, 0x865F, 0xB8B9, 0x8661, 0xE3D4, 0x8662, 0xE77E, + 0x8663, 0xEB58, 0x8664, 0xEB5A, 0x8665, 0xEB59, 0x8667, 0xC1AB, + 0x8668, 0xEE57, 0x8669, 0xF0BA, 0x866A, 0xF9A5, 0x866B, 0xA6E4, + 0x866D, 0xCDC9, 0x866E, 0xCDCA, 0x866F, 0xCDC8, 0x8670, 0xCDC7, + 0x8671, 0xAAEB, 0x8673, 0xD0A9, 0x8674, 0xD0A7, 0x8677, 0xD0A6, + 0x8679, 0xAD69, 0x867A, 0xAD6B, 0x867B, 0xAD6A, 0x867C, 0xD0A8, + 0x8685, 0xD3C4, 0x8686, 0xD3C1, 0x8687, 0xD3BF, 0x868A, 0xB041, + 0x868B, 0xD3C2, 0x868C, 0xB046, 0x868D, 0xD3BC, 0x868E, 0xD3CB, + 0x8690, 0xD3CD, 0x8691, 0xD3BD, 0x8693, 0xB043, 0x8694, 0xD3CE, + 0x8695, 0xD3C9, 0x8696, 0xD3BB, 0x8697, 0xD3C0, 0x8698, 0xD3CA, + 0x8699, 0xD3C6, 0x869A, 0xD3C3, 0x869C, 0xB048, 0x869D, 0xD3CC, + 0x869E, 0xD3BE, 0x86A1, 0xD3C7, 0x86A2, 0xD3B9, 0x86A3, 0xB047, + 0x86A4, 0xB044, 0x86A5, 0xD3C5, 0x86A7, 0xD3C8, 0x86A8, 0xD3BA, + 0x86A9, 0xB045, 0x86AA, 0xB042, 0x86AF, 0xB34C, 0x86B0, 0xD7A5, + 0x86B1, 0xB34B, 0x86B3, 0xD7A8, 0x86B4, 0xD7AB, 0x86B5, 0xB348, + 0x86B6, 0xB346, 0x86B7, 0xD77E, 0x86B8, 0xD7A9, 0x86B9, 0xD7A7, + 0x86BA, 0xD7A4, 0x86BB, 0xD7AC, 0x86BC, 0xD7AD, 0x86BD, 0xD7AF, + 0x86BE, 0xD7B0, 0x86BF, 0xD77D, 0x86C0, 0xB345, 0x86C1, 0xD7A2, + 0x86C2, 0xD7A1, 0x86C3, 0xD7AE, 0x86C4, 0xB347, 0x86C5, 0xD7A3, + 0x86C6, 0xB349, 0x86C7, 0xB344, 0x86C8, 0xD7A6, 0x86C9, 0xB34D, + 0x86CB, 0xB34A, 0x86CC, 0xD7AA, 0x86D0, 0xB5F1, 0x86D1, 0xDBBF, + 0x86D3, 0xDBB4, 0x86D4, 0xB5EE, 0x86D6, 0xDFE7, 0x86D7, 0xDBBD, + 0x86D8, 0xDBB1, 0x86D9, 0xB5EC, 0x86DA, 0xDBB6, 0x86DB, 0xB5EF, + 0x86DC, 0xDBBA, 0x86DD, 0xDBB8, 0x86DE, 0xB5F2, 0x86DF, 0xB5EB, + 0x86E2, 0xDBB2, 0x86E3, 0xDBB5, 0x86E4, 0xB5F0, 0x86E6, 0xDBB3, + 0x86E8, 0xDBBE, 0x86E9, 0xDBBC, 0x86EA, 0xDBB7, 0x86EB, 0xDBB9, + 0x86EC, 0xDBBB, 0x86ED, 0xB5ED, 0x86F5, 0xDFE8, 0x86F6, 0xDFEE, + 0x86F7, 0xDFE4, 0x86F8, 0xDFEA, 0x86F9, 0xB8BA, 0x86FA, 0xDFE6, + 0x86FB, 0xB8C0, 0x86FE, 0xB8BF, 0x8700, 0xB8BE, 0x8701, 0xDFED, + 0x8702, 0xB8C1, 0x8703, 0xB8C2, 0x8704, 0xDFE3, 0x8705, 0xDFF0, + 0x8706, 0xB8C3, 0x8707, 0xB8BD, 0x8708, 0xB8BC, 0x8709, 0xDFEC, + 0x870A, 0xB8C4, 0x870B, 0xDFE2, 0x870C, 0xDFE5, 0x870D, 0xDFEF, + 0x870E, 0xDFEB, 0x8711, 0xE3F4, 0x8712, 0xE3E9, 0x8713, 0xB8BB, + 0x8718, 0xBB6A, 0x8719, 0xE3DD, 0x871A, 0xE3F2, 0x871B, 0xE3DE, + 0x871C, 0xBB65, 0x871E, 0xE3DB, 0x8720, 0xE3E4, 0x8721, 0xE3DC, + 0x8722, 0xBB67, 0x8723, 0xE3D6, 0x8724, 0xE3F1, 0x8725, 0xBB68, + 0x8726, 0xE3EE, 0x8727, 0xE3EF, 0x8728, 0xE3D7, 0x8729, 0xBB6D, + 0x872A, 0xE3E6, 0x872C, 0xE3E0, 0x872D, 0xE3E7, 0x872E, 0xE3DA, + 0x8730, 0xE3F3, 0x8731, 0xE3EB, 0x8732, 0xE3E5, 0x8733, 0xE3D5, + 0x8734, 0xBB69, 0x8735, 0xE3EC, 0x8737, 0xBB6C, 0x8738, 0xE3F0, + 0x873A, 0xE3EA, 0x873B, 0xBB66, 0x873C, 0xE3E8, 0x873E, 0xE3E2, + 0x873F, 0xBB64, 0x8740, 0xE3D9, 0x8741, 0xE3E1, 0x8742, 0xE3ED, + 0x8743, 0xE3DF, 0x8746, 0xE3E3, 0x874C, 0xBDC1, 0x874D, 0xDFE9, + 0x874E, 0xE7B2, 0x874F, 0xE7BB, 0x8750, 0xE7B1, 0x8751, 0xE7AD, + 0x8752, 0xE7AA, 0x8753, 0xBDC2, 0x8754, 0xE7A8, 0x8755, 0xBB6B, + 0x8756, 0xE7A1, 0x8757, 0xBDC0, 0x8758, 0xE7A7, 0x8759, 0xBDBF, + 0x875A, 0xE7AC, 0x875B, 0xE7A9, 0x875C, 0xE7B9, 0x875D, 0xE7B4, + 0x875E, 0xE7AE, 0x875F, 0xE7B3, 0x8760, 0xBDBB, 0x8761, 0xE7AB, + 0x8762, 0xE7BE, 0x8763, 0xE7A2, 0x8764, 0xE7A3, 0x8765, 0xE7BA, + 0x8766, 0xBDBC, 0x8767, 0xE7BF, 0x8768, 0xBDBE, 0x8769, 0xE7C0, + 0x876A, 0xE7B0, 0x876B, 0xE3D8, 0x876C, 0xE7B6, 0x876D, 0xE7AF, + 0x876E, 0xE7B8, 0x876F, 0xE7B5, 0x8773, 0xE7A6, 0x8774, 0xBDB9, + 0x8775, 0xE7BD, 0x8776, 0xBDBA, 0x8777, 0xE7A4, 0x8778, 0xBDBD, + 0x8779, 0xEB64, 0x877A, 0xE7B7, 0x877B, 0xE7BC, 0x8781, 0xEB61, + 0x8782, 0xBDB8, 0x8783, 0xBFC0, 0x8784, 0xEB6B, 0x8785, 0xEB67, + 0x8787, 0xEB65, 0x8788, 0xEB60, 0x8789, 0xEB6F, 0x878D, 0xBFC4, + 0x878F, 0xEB5C, 0x8790, 0xEB68, 0x8791, 0xEB69, 0x8792, 0xEB5F, + 0x8793, 0xEB5E, 0x8794, 0xEB6C, 0x8796, 0xEB62, 0x8797, 0xEB5D, + 0x8798, 0xEB63, 0x879A, 0xEB6E, 0x879B, 0xEB5B, 0x879C, 0xEB6D, + 0x879D, 0xEB6A, 0x879E, 0xBFC2, 0x879F, 0xBFC1, 0x87A2, 0xBFC3, + 0x87A3, 0xEB66, 0x87A4, 0xF0CB, 0x87AA, 0xEE59, 0x87AB, 0xC1B1, + 0x87AC, 0xEE5D, 0x87AD, 0xEE5A, 0x87AE, 0xEE61, 0x87AF, 0xEE67, + 0x87B0, 0xEE5C, 0x87B2, 0xEE70, 0x87B3, 0xC1AE, 0x87B4, 0xEE6A, + 0x87B5, 0xEE5F, 0x87B6, 0xEE6B, 0x87B7, 0xEE66, 0x87B8, 0xEE6D, + 0x87B9, 0xEE5E, 0x87BA, 0xC1B3, 0x87BB, 0xC1B2, 0x87BC, 0xEE60, + 0x87BD, 0xEE6E, 0x87BE, 0xEE58, 0x87BF, 0xEE6C, 0x87C0, 0xC1AC, + 0x87C2, 0xEE64, 0x87C3, 0xEE63, 0x87C4, 0xEE68, 0x87C5, 0xEE5B, + 0x87C6, 0xC1B0, 0x87C8, 0xC1B4, 0x87C9, 0xEE62, 0x87CA, 0xEE69, + 0x87CB, 0xC1B5, 0x87CC, 0xEE65, 0x87D1, 0xC1AD, 0x87D2, 0xC1AF, + 0x87D3, 0xF0C7, 0x87D4, 0xF0C5, 0x87D7, 0xF0CC, 0x87D8, 0xF0C9, + 0x87D9, 0xF0CD, 0x87DB, 0xF0BE, 0x87DC, 0xF0C6, 0x87DD, 0xF0D1, + 0x87DE, 0xEE6F, 0x87DF, 0xF0C2, 0x87E0, 0xC2CF, 0x87E1, 0xE7A5, + 0x87E2, 0xF0BD, 0x87E3, 0xF0CA, 0x87E4, 0xF0C4, 0x87E5, 0xF0C1, + 0x87E6, 0xF0BC, 0x87E7, 0xF0BB, 0x87E8, 0xF0D0, 0x87EA, 0xF0C0, + 0x87EB, 0xF0BF, 0x87EC, 0xC2CD, 0x87ED, 0xF0C8, 0x87EF, 0xC2CC, + 0x87F2, 0xC2CE, 0x87F3, 0xF0C3, 0x87F4, 0xF0CF, 0x87F6, 0xF2DE, + 0x87F7, 0xF2DF, 0x87F9, 0xC3C9, 0x87FA, 0xF2DC, 0x87FB, 0xC3C6, + 0x87FC, 0xF2E4, 0x87FE, 0xC3CA, 0x87FF, 0xF2E6, 0x8800, 0xF2DB, + 0x8801, 0xF0CE, 0x8802, 0xF2E8, 0x8803, 0xF2DD, 0x8805, 0xC3C7, + 0x8806, 0xF2E3, 0x8808, 0xF2E5, 0x8809, 0xF2E0, 0x880A, 0xF2E7, + 0x880B, 0xF2E2, 0x880C, 0xF2E1, 0x880D, 0xC3C8, 0x8810, 0xF4C5, + 0x8811, 0xF4C6, 0x8813, 0xF4C8, 0x8814, 0xC4AE, 0x8815, 0xC4AF, + 0x8816, 0xF4C9, 0x8817, 0xF4C7, 0x8819, 0xF4C4, 0x881B, 0xF642, + 0x881C, 0xF645, 0x881D, 0xF641, 0x881F, 0xC4FA, 0x8820, 0xF643, + 0x8821, 0xC4F9, 0x8822, 0xC4F8, 0x8823, 0xC4F7, 0x8824, 0xF644, + 0x8825, 0xF751, 0x8826, 0xF74F, 0x8828, 0xF74E, 0x8829, 0xF640, + 0x882A, 0xF750, 0x882B, 0xF646, 0x882C, 0xF74D, 0x882E, 0xF7F9, + 0x882F, 0xF7D7, 0x8830, 0xF7F7, 0x8831, 0xC5DB, 0x8832, 0xF7F8, + 0x8833, 0xF7FA, 0x8835, 0xF8BF, 0x8836, 0xC5FA, 0x8837, 0xF8BE, + 0x8838, 0xF8BD, 0x8839, 0xC5FB, 0x883B, 0xC65A, 0x883C, 0xF96E, + 0x883D, 0xF9A7, 0x883E, 0xF9A6, 0x883F, 0xF9A8, 0x8840, 0xA6E5, + 0x8841, 0xD0AA, 0x8843, 0xD3CF, 0x8844, 0xD3D0, 0x8848, 0xDBC0, + 0x884A, 0xF647, 0x884B, 0xF8C0, 0x884C, 0xA6E6, 0x884D, 0xAD6C, + 0x884E, 0xD0AB, 0x8852, 0xD7B1, 0x8853, 0xB34E, 0x8855, 0xDBC2, + 0x8856, 0xDBC1, 0x8857, 0xB5F3, 0x8859, 0xB8C5, 0x885A, 0xE7C1, + 0x885B, 0xBDC3, 0x885D, 0xBDC4, 0x8861, 0xBFC5, 0x8862, 0xC5FC, + 0x8863, 0xA6E7, 0x8867, 0xD0AC, 0x8868, 0xAAED, 0x8869, 0xD0AE, + 0x886A, 0xD0AD, 0x886B, 0xAD6D, 0x886D, 0xD3D1, 0x886F, 0xD3D8, + 0x8870, 0xB049, 0x8871, 0xD3D6, 0x8872, 0xD3D4, 0x8874, 0xD3DB, + 0x8875, 0xD3D2, 0x8876, 0xD3D3, 0x8877, 0xB04A, 0x8879, 0xB04E, + 0x887C, 0xD3DC, 0x887D, 0xB04D, 0x887E, 0xD3DA, 0x887F, 0xD3D7, + 0x8880, 0xD3D5, 0x8881, 0xB04B, 0x8882, 0xB04C, 0x8883, 0xD3D9, + 0x8888, 0xB350, 0x8889, 0xD7B2, 0x888B, 0xB355, 0x888C, 0xD7C2, + 0x888D, 0xB354, 0x888E, 0xD7C4, 0x8891, 0xD7B8, 0x8892, 0xB352, + 0x8893, 0xD7C3, 0x8895, 0xD7B3, 0x8896, 0xB353, 0x8897, 0xD7BF, + 0x8898, 0xD7BB, 0x8899, 0xD7BD, 0x889A, 0xD7B7, 0x889B, 0xD7BE, + 0x889E, 0xB34F, 0x889F, 0xD7BA, 0x88A1, 0xD7B9, 0x88A2, 0xD7B5, + 0x88A4, 0xD7C0, 0x88A7, 0xD7BC, 0x88A8, 0xD7B4, 0x88AA, 0xD7B6, + 0x88AB, 0xB351, 0x88AC, 0xD7C1, 0x88B1, 0xB5F6, 0x88B2, 0xDBCD, + 0x88B6, 0xDBC9, 0x88B7, 0xDBCB, 0x88B8, 0xDBC6, 0x88B9, 0xDBC5, + 0x88BA, 0xDBC3, 0x88BC, 0xDBCA, 0x88BD, 0xDBCC, 0x88BE, 0xDBC8, + 0x88C0, 0xDBC7, 0x88C1, 0xB5F4, 0x88C2, 0xB5F5, 0x88C9, 0xDBCF, + 0x88CA, 0xB8CD, 0x88CB, 0xDFF2, 0x88CC, 0xDFF8, 0x88CD, 0xDFF3, + 0x88CE, 0xDFF4, 0x88CF, 0xF9D8, 0x88D0, 0xDFF9, 0x88D2, 0xB8CF, + 0x88D4, 0xB8C7, 0x88D5, 0xB8CE, 0x88D6, 0xDFF1, 0x88D7, 0xDBC4, + 0x88D8, 0xB8CA, 0x88D9, 0xB8C8, 0x88DA, 0xDFF7, 0x88DB, 0xDFF6, + 0x88DC, 0xB8C9, 0x88DD, 0xB8CB, 0x88DE, 0xDFF5, 0x88DF, 0xB8C6, + 0x88E1, 0xB8CC, 0x88E7, 0xE3F6, 0x88E8, 0xBB74, 0x88EB, 0xE442, + 0x88EC, 0xE441, 0x88EE, 0xE3FB, 0x88EF, 0xBB76, 0x88F0, 0xE440, + 0x88F1, 0xE3F7, 0x88F2, 0xE3F8, 0x88F3, 0xBB6E, 0x88F4, 0xBB70, + 0x88F6, 0xE3FD, 0x88F7, 0xE3F5, 0x88F8, 0xBB72, 0x88F9, 0xBB71, + 0x88FA, 0xE3F9, 0x88FB, 0xE3FE, 0x88FC, 0xE3FC, 0x88FD, 0xBB73, + 0x88FE, 0xE3FA, 0x8901, 0xDBCE, 0x8902, 0xBB6F, 0x8905, 0xE7C2, + 0x8906, 0xE7C9, 0x8907, 0xBDC6, 0x8909, 0xE7CD, 0x890A, 0xBDCA, + 0x890B, 0xE7C5, 0x890C, 0xE7C3, 0x890E, 0xE7CC, 0x8910, 0xBDC5, + 0x8911, 0xE7CB, 0x8912, 0xBDC7, 0x8913, 0xBDC8, 0x8914, 0xE7C4, + 0x8915, 0xBDC9, 0x8916, 0xE7CA, 0x8917, 0xE7C6, 0x8918, 0xE7C7, + 0x8919, 0xE7C8, 0x891A, 0xBB75, 0x891E, 0xEB70, 0x891F, 0xEB7C, + 0x8921, 0xBFCA, 0x8922, 0xEB77, 0x8923, 0xEB79, 0x8925, 0xBFC8, + 0x8926, 0xEB71, 0x8927, 0xEB75, 0x8929, 0xEB78, 0x892A, 0xBFC6, + 0x892B, 0xBFC9, 0x892C, 0xEB7B, 0x892D, 0xEB73, 0x892E, 0xEB74, + 0x892F, 0xEB7A, 0x8930, 0xEB72, 0x8931, 0xEB76, 0x8932, 0xBFC7, + 0x8933, 0xEE72, 0x8935, 0xEE71, 0x8936, 0xC1B7, 0x8937, 0xEE77, + 0x8938, 0xC1B9, 0x893B, 0xC1B6, 0x893C, 0xEE73, 0x893D, 0xC1BA, + 0x893E, 0xEE74, 0x8941, 0xEE75, 0x8942, 0xEE78, 0x8944, 0xC1B8, + 0x8946, 0xF0D6, 0x8949, 0xF0D9, 0x894B, 0xF0D3, 0x894C, 0xF0D5, + 0x894F, 0xF0D4, 0x8950, 0xF0D7, 0x8951, 0xF0D8, 0x8952, 0xEE76, + 0x8953, 0xF0D2, 0x8956, 0xC3CD, 0x8957, 0xF2EC, 0x8958, 0xF2EF, + 0x8959, 0xF2F1, 0x895A, 0xF2EA, 0x895B, 0xF2EB, 0x895C, 0xF2EE, + 0x895D, 0xF2F0, 0x895E, 0xC3CE, 0x895F, 0xC3CC, 0x8960, 0xC3CB, + 0x8961, 0xF2ED, 0x8962, 0xF2E9, 0x8963, 0xF4CA, 0x8964, 0xC4B0, + 0x8966, 0xF4CB, 0x8969, 0xF649, 0x896A, 0xC4FB, 0x896B, 0xF64B, + 0x896C, 0xC4FC, 0x896D, 0xF648, 0x896E, 0xF64A, 0x896F, 0xC5A8, + 0x8971, 0xF752, 0x8972, 0xC5A7, 0x8973, 0xF7FD, 0x8974, 0xF7FC, + 0x8976, 0xF7FB, 0x8979, 0xF948, 0x897A, 0xF949, 0x897B, 0xF94B, + 0x897C, 0xF94A, 0x897E, 0xCA50, 0x897F, 0xA6E8, 0x8981, 0xAD6E, + 0x8982, 0xD7C5, 0x8983, 0xB5F7, 0x8985, 0xDFFA, 0x8986, 0xC2D0, + 0x8988, 0xF2F2, 0x898B, 0xA8A3, 0x898F, 0xB357, 0x8993, 0xB356, + 0x8995, 0xDBD0, 0x8996, 0xB5F8, 0x8997, 0xDBD2, 0x8998, 0xDBD1, + 0x899B, 0xDFFB, 0x899C, 0xB8D0, 0x899D, 0xE443, 0x899E, 0xE446, + 0x899F, 0xE445, 0x89A1, 0xE444, 0x89A2, 0xE7CE, 0x89A3, 0xE7D0, + 0x89A4, 0xE7CF, 0x89A6, 0xBFCC, 0x89AA, 0xBFCB, 0x89AC, 0xC1BB, + 0x89AD, 0xEE79, 0x89AE, 0xEE7B, 0x89AF, 0xEE7A, 0x89B2, 0xC2D1, + 0x89B6, 0xF2F4, 0x89B7, 0xF2F3, 0x89B9, 0xF4CC, 0x89BA, 0xC4B1, + 0x89BD, 0xC4FD, 0x89BE, 0xF754, 0x89BF, 0xF753, 0x89C0, 0xC65B, + 0x89D2, 0xA8A4, 0x89D3, 0xD0AF, 0x89D4, 0xAD6F, 0x89D5, 0xD7C8, + 0x89D6, 0xD7C6, 0x89D9, 0xD7C7, 0x89DA, 0xDBD4, 0x89DB, 0xDBD5, + 0x89DC, 0xE043, 0x89DD, 0xDBD3, 0x89DF, 0xDFFC, 0x89E0, 0xE041, + 0x89E1, 0xE040, 0x89E2, 0xE042, 0x89E3, 0xB8D1, 0x89E4, 0xDFFE, + 0x89E5, 0xDFFD, 0x89E6, 0xE044, 0x89E8, 0xE449, 0x89E9, 0xE447, + 0x89EB, 0xE448, 0x89EC, 0xE7D3, 0x89ED, 0xE7D1, 0x89F0, 0xE7D2, + 0x89F1, 0xEB7D, 0x89F2, 0xEE7C, 0x89F3, 0xEE7D, 0x89F4, 0xC2D2, + 0x89F6, 0xF2F5, 0x89F7, 0xF4CD, 0x89F8, 0xC4B2, 0x89FA, 0xF64C, + 0x89FB, 0xF755, 0x89FC, 0xC5A9, 0x89FE, 0xF7FE, 0x89FF, 0xF94C, + 0x8A00, 0xA8A5, 0x8A02, 0xAD71, 0x8A03, 0xAD72, 0x8A04, 0xD0B0, + 0x8A07, 0xD0B1, 0x8A08, 0xAD70, 0x8A0A, 0xB054, 0x8A0C, 0xB052, + 0x8A0E, 0xB051, 0x8A0F, 0xB058, 0x8A10, 0xB050, 0x8A11, 0xB059, + 0x8A12, 0xD3DD, 0x8A13, 0xB056, 0x8A15, 0xB053, 0x8A16, 0xB057, + 0x8A17, 0xB055, 0x8A18, 0xB04F, 0x8A1B, 0xB35F, 0x8A1D, 0xB359, + 0x8A1E, 0xD7CC, 0x8A1F, 0xB35E, 0x8A22, 0xB360, 0x8A23, 0xB35A, + 0x8A25, 0xB35B, 0x8A27, 0xD7CA, 0x8A2A, 0xB358, 0x8A2C, 0xD7CB, + 0x8A2D, 0xB35D, 0x8A30, 0xD7C9, 0x8A31, 0xB35C, 0x8A34, 0xB644, + 0x8A36, 0xB646, 0x8A39, 0xDBD8, 0x8A3A, 0xB645, 0x8A3B, 0xB5F9, + 0x8A3C, 0xB5FD, 0x8A3E, 0xB8E4, 0x8A3F, 0xE049, 0x8A40, 0xDBDA, + 0x8A41, 0xB5FE, 0x8A44, 0xDBDD, 0x8A45, 0xDBDE, 0x8A46, 0xB643, + 0x8A48, 0xDBE0, 0x8A4A, 0xDBE2, 0x8A4C, 0xDBE3, 0x8A4D, 0xDBD7, + 0x8A4E, 0xDBD6, 0x8A4F, 0xDBE4, 0x8A50, 0xB642, 0x8A51, 0xDBE1, + 0x8A52, 0xDBDF, 0x8A54, 0xB640, 0x8A55, 0xB5FB, 0x8A56, 0xB647, + 0x8A57, 0xDBDB, 0x8A58, 0xDBDC, 0x8A59, 0xDBD9, 0x8A5B, 0xB641, + 0x8A5E, 0xB5FC, 0x8A60, 0xB5FA, 0x8A61, 0xE048, 0x8A62, 0xB8DF, + 0x8A63, 0xB8DA, 0x8A66, 0xB8D5, 0x8A68, 0xB8E5, 0x8A69, 0xB8D6, + 0x8A6B, 0xB8D2, 0x8A6C, 0xB8E1, 0x8A6D, 0xB8DE, 0x8A6E, 0xB8E0, + 0x8A70, 0xB8D7, 0x8A71, 0xB8DC, 0x8A72, 0xB8D3, 0x8A73, 0xB8D4, + 0x8A74, 0xE050, 0x8A75, 0xE04D, 0x8A76, 0xE045, 0x8A77, 0xE04A, + 0x8A79, 0xB8E2, 0x8A7A, 0xE051, 0x8A7B, 0xB8E3, 0x8A7C, 0xB8D9, + 0x8A7F, 0xE047, 0x8A81, 0xE04F, 0x8A82, 0xE04B, 0x8A83, 0xE04E, + 0x8A84, 0xE04C, 0x8A85, 0xB8DD, 0x8A86, 0xE046, 0x8A87, 0xB8D8, + 0x8A8B, 0xE44C, 0x8A8C, 0xBB78, 0x8A8D, 0xBB7B, 0x8A8F, 0xE44E, + 0x8A91, 0xBBA5, 0x8A92, 0xE44D, 0x8A93, 0xBB7D, 0x8A95, 0xBDCF, + 0x8A96, 0xE44F, 0x8A98, 0xBBA4, 0x8A99, 0xE44B, 0x8A9A, 0xBBA6, + 0x8A9E, 0xBB79, 0x8AA0, 0xB8DB, 0x8AA1, 0xBB7C, 0x8AA3, 0xBB7A, + 0x8AA4, 0xBB7E, 0x8AA5, 0xBBA2, 0x8AA6, 0xBB77, 0x8AA7, 0xBBA7, + 0x8AA8, 0xBBA3, 0x8AAA, 0xBBA1, 0x8AAB, 0xE44A, 0x8AB0, 0xBDD6, + 0x8AB2, 0xBDD2, 0x8AB6, 0xBDD9, 0x8AB8, 0xE7D6, 0x8AB9, 0xBDDA, + 0x8ABA, 0xE7E2, 0x8ABB, 0xE7DB, 0x8ABC, 0xBDCB, 0x8ABD, 0xE7E3, + 0x8ABE, 0xE7DD, 0x8ABF, 0xBDD5, 0x8AC0, 0xE7DE, 0x8AC2, 0xBDD4, + 0x8AC3, 0xE7E1, 0x8AC4, 0xBDCE, 0x8AC5, 0xE7DF, 0x8AC6, 0xE7D5, + 0x8AC7, 0xBDCD, 0x8AC8, 0xEBAA, 0x8AC9, 0xBDD3, 0x8ACB, 0xBDD0, + 0x8ACD, 0xBDD8, 0x8ACF, 0xE7D4, 0x8AD1, 0xE7D8, 0x8AD2, 0xBDCC, + 0x8AD3, 0xE7D7, 0x8AD4, 0xE7D9, 0x8AD5, 0xE7DA, 0x8AD6, 0xBDD7, + 0x8AD7, 0xE7DC, 0x8AD8, 0xE7E0, 0x8AD9, 0xE7E4, 0x8ADB, 0xBDDB, + 0x8ADC, 0xBFD2, 0x8ADD, 0xEBA5, 0x8ADE, 0xEBAB, 0x8ADF, 0xEBA8, + 0x8AE0, 0xEB7E, 0x8AE1, 0xEBAC, 0x8AE2, 0xEBA1, 0x8AE4, 0xEBA7, + 0x8AE6, 0xBFCD, 0x8AE7, 0xBFD3, 0x8AE8, 0xEBAD, 0x8AEB, 0xBFCF, + 0x8AED, 0xBFD9, 0x8AEE, 0xBFD4, 0x8AEF, 0xEBAF, 0x8AF0, 0xEBA9, + 0x8AF1, 0xBFD0, 0x8AF2, 0xEBA2, 0x8AF3, 0xBFDA, 0x8AF4, 0xEBA3, + 0x8AF5, 0xEBA4, 0x8AF6, 0xBFDB, 0x8AF7, 0xBFD8, 0x8AF8, 0xBDD1, + 0x8AFA, 0xBFCE, 0x8AFB, 0xEBB0, 0x8AFC, 0xBFDC, 0x8AFE, 0xBFD5, + 0x8AFF, 0xEBAE, 0x8B00, 0xBFD1, 0x8B01, 0xBFD6, 0x8B02, 0xBFD7, + 0x8B04, 0xC1C3, 0x8B05, 0xEEA4, 0x8B06, 0xEEAD, 0x8B07, 0xEEAA, + 0x8B08, 0xEEAC, 0x8B0A, 0xC1C0, 0x8B0B, 0xEEA5, 0x8B0D, 0xEEAB, + 0x8B0E, 0xC1BC, 0x8B0F, 0xEEA7, 0x8B10, 0xC1C4, 0x8B11, 0xEEA3, + 0x8B12, 0xEEA8, 0x8B13, 0xEEAF, 0x8B14, 0xEBA6, 0x8B15, 0xEEA9, + 0x8B16, 0xEEA2, 0x8B17, 0xC1BD, 0x8B18, 0xEEA1, 0x8B19, 0xC1BE, + 0x8B1A, 0xEEB0, 0x8B1B, 0xC1BF, 0x8B1C, 0xEEAE, 0x8B1D, 0xC1C2, + 0x8B1E, 0xEE7E, 0x8B20, 0xC1C1, 0x8B22, 0xEEA6, 0x8B23, 0xF0DC, + 0x8B24, 0xF0EA, 0x8B25, 0xF0E5, 0x8B26, 0xF0E7, 0x8B27, 0xF0DB, + 0x8B28, 0xC2D3, 0x8B2A, 0xF0DA, 0x8B2B, 0xC2D6, 0x8B2C, 0xC2D5, + 0x8B2E, 0xF0E9, 0x8B2F, 0xF0E1, 0x8B30, 0xF0DE, 0x8B31, 0xF0E4, + 0x8B33, 0xF0DD, 0x8B35, 0xF0DF, 0x8B36, 0xF0E8, 0x8B37, 0xF0E6, + 0x8B39, 0xC2D4, 0x8B3A, 0xF0ED, 0x8B3B, 0xF0EB, 0x8B3C, 0xF0E2, + 0x8B3D, 0xF0EC, 0x8B3E, 0xF0E3, 0x8B40, 0xF2F9, 0x8B41, 0xC3CF, + 0x8B42, 0xF341, 0x8B45, 0xF64F, 0x8B46, 0xC3D6, 0x8B47, 0xF0E0, + 0x8B48, 0xF2F7, 0x8B49, 0xC3D2, 0x8B4A, 0xF2F8, 0x8B4B, 0xF2FD, + 0x8B4E, 0xC3D4, 0x8B4F, 0xC3D5, 0x8B50, 0xF2F6, 0x8B51, 0xF340, + 0x8B52, 0xF342, 0x8B53, 0xF2FA, 0x8B54, 0xF2FC, 0x8B55, 0xF2FE, + 0x8B56, 0xF2FB, 0x8B57, 0xF343, 0x8B58, 0xC3D1, 0x8B59, 0xC3D7, + 0x8B5A, 0xC3D3, 0x8B5C, 0xC3D0, 0x8B5D, 0xF4D0, 0x8B5F, 0xC4B7, + 0x8B60, 0xF4CE, 0x8B63, 0xF4D2, 0x8B65, 0xF4D3, 0x8B66, 0xC4B5, + 0x8B67, 0xF4D4, 0x8B68, 0xF4D1, 0x8B6A, 0xF4CF, 0x8B6B, 0xC4B8, + 0x8B6C, 0xC4B4, 0x8B6D, 0xF4D5, 0x8B6F, 0xC4B6, 0x8B70, 0xC4B3, + 0x8B74, 0xC4FE, 0x8B77, 0xC540, 0x8B78, 0xF64E, 0x8B79, 0xF64D, + 0x8B7A, 0xF650, 0x8B7B, 0xF651, 0x8B7D, 0xC541, 0x8B7E, 0xF756, + 0x8B7F, 0xF75B, 0x8B80, 0xC5AA, 0x8B82, 0xF758, 0x8B84, 0xF757, + 0x8B85, 0xF75A, 0x8B86, 0xF759, 0x8B88, 0xF843, 0x8B8A, 0xC5DC, + 0x8B8B, 0xF842, 0x8B8C, 0xF840, 0x8B8E, 0xF841, 0x8B92, 0xC5FE, + 0x8B93, 0xC5FD, 0x8B94, 0xF8C1, 0x8B95, 0xF8C2, 0x8B96, 0xC640, + 0x8B98, 0xF94D, 0x8B99, 0xF94E, 0x8B9A, 0xC667, 0x8B9C, 0xC66D, + 0x8B9E, 0xF9A9, 0x8B9F, 0xF9C8, 0x8C37, 0xA8A6, 0x8C39, 0xD7CD, + 0x8C3B, 0xD7CE, 0x8C3C, 0xE052, 0x8C3D, 0xE450, 0x8C3E, 0xE7E5, + 0x8C3F, 0xC1C6, 0x8C41, 0xC1C5, 0x8C42, 0xF0EE, 0x8C43, 0xF344, + 0x8C45, 0xF844, 0x8C46, 0xA8A7, 0x8C47, 0xD3DE, 0x8C48, 0xB05A, + 0x8C49, 0xB361, 0x8C4A, 0xE054, 0x8C4B, 0xE053, 0x8C4C, 0xBDDC, + 0x8C4D, 0xE7E6, 0x8C4E, 0xBDDD, 0x8C4F, 0xEEB1, 0x8C50, 0xC2D7, + 0x8C54, 0xC676, 0x8C55, 0xA8A8, 0x8C56, 0xCDCB, 0x8C57, 0xD3DF, + 0x8C5A, 0xB362, 0x8C5C, 0xD7CF, 0x8C5D, 0xD7D0, 0x8C5F, 0xDBE5, + 0x8C61, 0xB648, 0x8C62, 0xB8E6, 0x8C64, 0xE056, 0x8C65, 0xE055, + 0x8C66, 0xE057, 0x8C68, 0xE451, 0x8C69, 0xE452, 0x8C6A, 0xBBA8, + 0x8C6B, 0xBFDD, 0x8C6C, 0xBDDE, 0x8C6D, 0xBFDE, 0x8C6F, 0xEEB5, + 0x8C70, 0xEEB2, 0x8C71, 0xEEB4, 0x8C72, 0xEEB3, 0x8C73, 0xC1C7, + 0x8C75, 0xF0EF, 0x8C76, 0xF346, 0x8C77, 0xF345, 0x8C78, 0xCBA4, + 0x8C79, 0xB05C, 0x8C7A, 0xB05B, 0x8C7B, 0xD3E0, 0x8C7D, 0xD7D1, + 0x8C80, 0xDBE7, 0x8C81, 0xDBE6, 0x8C82, 0xB649, 0x8C84, 0xE059, + 0x8C85, 0xE05A, 0x8C86, 0xE058, 0x8C89, 0xB8E8, 0x8C8A, 0xB8E7, + 0x8C8C, 0xBBAA, 0x8C8D, 0xBBA9, 0x8C8F, 0xE7E7, 0x8C90, 0xEBB3, + 0x8C91, 0xEBB1, 0x8C92, 0xEBB2, 0x8C93, 0xBFDF, 0x8C94, 0xEEB7, + 0x8C95, 0xEEB6, 0x8C97, 0xF0F2, 0x8C98, 0xF0F1, 0x8C99, 0xF0F0, + 0x8C9A, 0xF347, 0x8C9C, 0xF9AA, 0x8C9D, 0xA8A9, 0x8C9E, 0xAD73, + 0x8CA0, 0xAD74, 0x8CA1, 0xB05D, 0x8CA2, 0xB05E, 0x8CA3, 0xD3E2, + 0x8CA4, 0xD3E1, 0x8CA5, 0xD7D2, 0x8CA7, 0xB368, 0x8CA8, 0xB366, + 0x8CA9, 0xB363, 0x8CAA, 0xB367, 0x8CAB, 0xB365, 0x8CAC, 0xB364, + 0x8CAF, 0xB64A, 0x8CB0, 0xDBEA, 0x8CB2, 0xB8ED, 0x8CB3, 0xB64C, + 0x8CB4, 0xB651, 0x8CB5, 0xDBEC, 0x8CB6, 0xB653, 0x8CB7, 0xB652, + 0x8CB8, 0xB655, 0x8CB9, 0xDBEB, 0x8CBA, 0xDBE8, 0x8CBB, 0xB64F, + 0x8CBC, 0xB64B, 0x8CBD, 0xB64D, 0x8CBE, 0xDBE9, 0x8CBF, 0xB654, + 0x8CC0, 0xB650, 0x8CC1, 0xB64E, 0x8CC2, 0xB8EF, 0x8CC3, 0xB8EE, + 0x8CC4, 0xB8EC, 0x8CC5, 0xB8F0, 0x8CC7, 0xB8EA, 0x8CC8, 0xB8EB, + 0x8CCA, 0xB8E9, 0x8CCC, 0xE05B, 0x8CCF, 0xE454, 0x8CD1, 0xBBAC, + 0x8CD2, 0xBBAD, 0x8CD3, 0xBBAB, 0x8CD5, 0xE453, 0x8CD7, 0xE455, + 0x8CD9, 0xE7EA, 0x8CDA, 0xE7EC, 0x8CDC, 0xBDE7, 0x8CDD, 0xE7ED, + 0x8CDE, 0xBDE0, 0x8CDF, 0xE7E9, 0x8CE0, 0xBDDF, 0x8CE1, 0xBDE9, + 0x8CE2, 0xBDE5, 0x8CE3, 0xBDE6, 0x8CE4, 0xBDE2, 0x8CE5, 0xE7E8, + 0x8CE6, 0xBDE1, 0x8CE7, 0xE7EE, 0x8CE8, 0xE7EB, 0x8CEA, 0xBDE8, + 0x8CEC, 0xBDE3, 0x8CED, 0xBDE4, 0x8CEE, 0xEBB5, 0x8CF0, 0xEBB7, + 0x8CF1, 0xEBB6, 0x8CF3, 0xEBB8, 0x8CF4, 0xBFE0, 0x8CF5, 0xEBB4, + 0x8CF8, 0xC1CB, 0x8CF9, 0xEEB8, 0x8CFA, 0xC1C8, 0x8CFB, 0xC1CC, + 0x8CFC, 0xC1CA, 0x8CFD, 0xC1C9, 0x8CFE, 0xF0F3, 0x8D00, 0xF0F6, + 0x8D02, 0xF0F5, 0x8D04, 0xF0F4, 0x8D05, 0xC2D8, 0x8D06, 0xF348, + 0x8D07, 0xF349, 0x8D08, 0xC3D8, 0x8D09, 0xF34A, 0x8D0A, 0xC3D9, + 0x8D0D, 0xC4BA, 0x8D0F, 0xC4B9, 0x8D10, 0xF652, 0x8D13, 0xC542, + 0x8D14, 0xF653, 0x8D15, 0xF75C, 0x8D16, 0xC5AB, 0x8D17, 0xC5AC, + 0x8D19, 0xF845, 0x8D1B, 0xC642, 0x8D64, 0xA8AA, 0x8D66, 0xB36A, + 0x8D67, 0xB369, 0x8D68, 0xE05C, 0x8D69, 0xE05D, 0x8D6B, 0xBBAE, + 0x8D6C, 0xEBB9, 0x8D6D, 0xBDEA, 0x8D6E, 0xEBBA, 0x8D6F, 0xEEB9, + 0x8D70, 0xA8AB, 0x8D72, 0xD0B2, 0x8D73, 0xAD76, 0x8D74, 0xAD75, + 0x8D76, 0xD3E3, 0x8D77, 0xB05F, 0x8D78, 0xD3E4, 0x8D79, 0xD7D5, + 0x8D7B, 0xD7D4, 0x8D7D, 0xD7D3, 0x8D80, 0xDBEE, 0x8D81, 0xB658, + 0x8D84, 0xDBED, 0x8D85, 0xB657, 0x8D89, 0xDBEF, 0x8D8A, 0xB656, + 0x8D8C, 0xE05F, 0x8D8D, 0xE062, 0x8D8E, 0xE060, 0x8D8F, 0xE061, + 0x8D90, 0xE065, 0x8D91, 0xE05E, 0x8D92, 0xE066, 0x8D93, 0xE063, + 0x8D94, 0xE064, 0x8D95, 0xBBB0, 0x8D96, 0xE456, 0x8D99, 0xBBAF, + 0x8D9B, 0xE7F2, 0x8D9C, 0xE7F0, 0x8D9F, 0xBDEB, 0x8DA0, 0xE7EF, + 0x8DA1, 0xE7F1, 0x8DA3, 0xBDEC, 0x8DA5, 0xEBBB, 0x8DA7, 0xEBBC, + 0x8DA8, 0xC1CD, 0x8DAA, 0xF34C, 0x8DAB, 0xF34E, 0x8DAC, 0xF34B, + 0x8DAD, 0xF34D, 0x8DAE, 0xF4D6, 0x8DAF, 0xF654, 0x8DB2, 0xF96F, + 0x8DB3, 0xA8AC, 0x8DB4, 0xAD77, 0x8DB5, 0xD3E5, 0x8DB6, 0xD3E7, + 0x8DB7, 0xD3E6, 0x8DB9, 0xD7D8, 0x8DBA, 0xB36C, 0x8DBC, 0xD7D6, + 0x8DBE, 0xB36B, 0x8DBF, 0xD7D9, 0x8DC1, 0xD7DA, 0x8DC2, 0xD7D7, + 0x8DC5, 0xDBFB, 0x8DC6, 0xB660, 0x8DC7, 0xDBF3, 0x8DC8, 0xDBF9, + 0x8DCB, 0xB65B, 0x8DCC, 0xB65E, 0x8DCD, 0xDBF2, 0x8DCE, 0xB659, + 0x8DCF, 0xDBF6, 0x8DD0, 0xE06C, 0x8DD1, 0xB65D, 0x8DD3, 0xDBF1, + 0x8DD5, 0xDBF7, 0x8DD6, 0xDBF4, 0x8DD7, 0xDBFA, 0x8DD8, 0xDBF0, + 0x8DD9, 0xDBF8, 0x8DDA, 0xB65C, 0x8DDB, 0xB65F, 0x8DDC, 0xDBF5, + 0x8DDD, 0xB65A, 0x8DDF, 0xB8F2, 0x8DE0, 0xE068, 0x8DE1, 0xB8F1, + 0x8DE2, 0xE06F, 0x8DE3, 0xE06E, 0x8DE4, 0xB8F8, 0x8DE6, 0xB8F9, + 0x8DE7, 0xE070, 0x8DE8, 0xB8F3, 0x8DE9, 0xE06D, 0x8DEA, 0xB8F7, + 0x8DEB, 0xE072, 0x8DEC, 0xE069, 0x8DEE, 0xE06B, 0x8DEF, 0xB8F4, + 0x8DF0, 0xE067, 0x8DF1, 0xE06A, 0x8DF2, 0xE071, 0x8DF3, 0xB8F5, + 0x8DF4, 0xE073, 0x8DFA, 0xB8F6, 0x8DFC, 0xBBB1, 0x8DFD, 0xE45B, + 0x8DFE, 0xE461, 0x8DFF, 0xE459, 0x8E00, 0xE462, 0x8E02, 0xE458, + 0x8E03, 0xE45D, 0x8E04, 0xE463, 0x8E05, 0xE460, 0x8E06, 0xE45F, + 0x8E07, 0xE45E, 0x8E09, 0xE457, 0x8E0A, 0xE45C, 0x8E0D, 0xE45A, + 0x8E0F, 0xBDF1, 0x8E10, 0xBDEE, 0x8E11, 0xE7FB, 0x8E12, 0xE841, + 0x8E13, 0xE843, 0x8E14, 0xE840, 0x8E15, 0xE7F8, 0x8E16, 0xE7FA, + 0x8E17, 0xE845, 0x8E18, 0xE842, 0x8E19, 0xE7FC, 0x8E1A, 0xE846, + 0x8E1B, 0xE7F9, 0x8E1C, 0xE844, 0x8E1D, 0xBDEF, 0x8E1E, 0xBDF5, + 0x8E1F, 0xBDF3, 0x8E20, 0xE7F3, 0x8E21, 0xBDF4, 0x8E22, 0xBDF0, + 0x8E23, 0xE7F4, 0x8E24, 0xE7F6, 0x8E25, 0xE7F5, 0x8E26, 0xE7FD, + 0x8E27, 0xE7FE, 0x8E29, 0xBDF2, 0x8E2B, 0xBDED, 0x8E2E, 0xE7F7, + 0x8E30, 0xEBC6, 0x8E31, 0xBFE2, 0x8E33, 0xEBBD, 0x8E34, 0xBFE3, + 0x8E35, 0xBFE6, 0x8E36, 0xEBC2, 0x8E38, 0xEBBF, 0x8E39, 0xBFE5, + 0x8E3C, 0xEBC3, 0x8E3D, 0xEBC4, 0x8E3E, 0xEBBE, 0x8E3F, 0xEBC7, + 0x8E40, 0xEBC0, 0x8E41, 0xEBC5, 0x8E42, 0xBFE4, 0x8E44, 0xBFE1, + 0x8E45, 0xEBC1, 0x8E47, 0xEEBF, 0x8E48, 0xC1D0, 0x8E49, 0xC1CE, + 0x8E4A, 0xC1D1, 0x8E4B, 0xC1CF, 0x8E4C, 0xEEBE, 0x8E4D, 0xEEBB, + 0x8E4E, 0xEEBA, 0x8E50, 0xEEBD, 0x8E53, 0xEEBC, 0x8E54, 0xF145, + 0x8E55, 0xC2DE, 0x8E56, 0xF0FB, 0x8E57, 0xF0FA, 0x8E59, 0xC2D9, + 0x8E5A, 0xF141, 0x8E5B, 0xF140, 0x8E5C, 0xF0F7, 0x8E5D, 0xF143, + 0x8E5E, 0xF0FC, 0x8E5F, 0xC2DD, 0x8E60, 0xF0F9, 0x8E61, 0xF142, + 0x8E62, 0xF0F8, 0x8E63, 0xC2DA, 0x8E64, 0xC2DC, 0x8E65, 0xF0FD, + 0x8E66, 0xC2DB, 0x8E67, 0xF0FE, 0x8E69, 0xF144, 0x8E6A, 0xF352, + 0x8E6C, 0xC3DE, 0x8E6D, 0xF34F, 0x8E6F, 0xF353, 0x8E72, 0xC3DB, + 0x8E73, 0xF351, 0x8E74, 0xC3E0, 0x8E76, 0xC3DD, 0x8E78, 0xF350, + 0x8E7A, 0xC3DF, 0x8E7B, 0xF354, 0x8E7C, 0xC3DA, 0x8E81, 0xC4BC, + 0x8E82, 0xC4BE, 0x8E84, 0xF4D9, 0x8E85, 0xC4BD, 0x8E86, 0xF4D7, + 0x8E87, 0xC3DC, 0x8E88, 0xF4D8, 0x8E89, 0xC4BB, 0x8E8A, 0xC543, + 0x8E8B, 0xC545, 0x8E8C, 0xF656, 0x8E8D, 0xC544, 0x8E8E, 0xF655, + 0x8E90, 0xF761, 0x8E91, 0xC5AD, 0x8E92, 0xF760, 0x8E93, 0xC5AE, + 0x8E94, 0xF75E, 0x8E95, 0xF75D, 0x8E96, 0xF762, 0x8E97, 0xF763, + 0x8E98, 0xF846, 0x8E9A, 0xF75F, 0x8E9D, 0xF8C6, 0x8E9E, 0xF8C3, + 0x8E9F, 0xF8C4, 0x8EA0, 0xF8C5, 0x8EA1, 0xC65C, 0x8EA3, 0xF951, + 0x8EA4, 0xF950, 0x8EA5, 0xF94F, 0x8EA6, 0xF970, 0x8EA8, 0xF9BE, + 0x8EA9, 0xF9AB, 0x8EAA, 0xC66E, 0x8EAB, 0xA8AD, 0x8EAC, 0xB060, + 0x8EB2, 0xB8FA, 0x8EBA, 0xBDF6, 0x8EBD, 0xEBC8, 0x8EC0, 0xC2DF, + 0x8EC2, 0xF355, 0x8EC9, 0xF9AC, 0x8ECA, 0xA8AE, 0x8ECB, 0xAAEE, + 0x8ECC, 0xAD79, 0x8ECD, 0xAD78, 0x8ECF, 0xB063, 0x8ED1, 0xD3E8, + 0x8ED2, 0xB061, 0x8ED3, 0xD3E9, 0x8ED4, 0xB062, 0x8ED7, 0xD7DF, + 0x8ED8, 0xD7DB, 0x8EDB, 0xB36D, 0x8EDC, 0xD7DE, 0x8EDD, 0xD7DD, + 0x8EDE, 0xD7DC, 0x8EDF, 0xB36E, 0x8EE0, 0xD7E0, 0x8EE1, 0xD7E1, + 0x8EE5, 0xDC43, 0x8EE6, 0xDC41, 0x8EE7, 0xDC45, 0x8EE8, 0xDC46, + 0x8EE9, 0xDC4C, 0x8EEB, 0xDC48, 0x8EEC, 0xDC4A, 0x8EEE, 0xDC42, + 0x8EEF, 0xDBFC, 0x8EF1, 0xDC49, 0x8EF4, 0xDC4B, 0x8EF5, 0xDC44, + 0x8EF6, 0xDC47, 0x8EF7, 0xDBFD, 0x8EF8, 0xB662, 0x8EF9, 0xDC40, + 0x8EFA, 0xDBFE, 0x8EFB, 0xB661, 0x8EFC, 0xB663, 0x8EFE, 0xB8FD, + 0x8EFF, 0xE075, 0x8F00, 0xE077, 0x8F01, 0xE076, 0x8F02, 0xE07B, + 0x8F03, 0xB8FB, 0x8F05, 0xE078, 0x8F06, 0xE074, 0x8F07, 0xE079, + 0x8F08, 0xE07A, 0x8F09, 0xB8FC, 0x8F0A, 0xB8FE, 0x8F0B, 0xE07C, + 0x8F0D, 0xE467, 0x8F0E, 0xE466, 0x8F10, 0xE464, 0x8F11, 0xE465, + 0x8F12, 0xBBB3, 0x8F13, 0xBBB5, 0x8F14, 0xBBB2, 0x8F15, 0xBBB4, + 0x8F16, 0xE84D, 0x8F17, 0xE84E, 0x8F18, 0xE849, 0x8F1A, 0xE84A, + 0x8F1B, 0xBDF8, 0x8F1C, 0xBDFD, 0x8F1D, 0xBDF7, 0x8F1E, 0xBDFE, + 0x8F1F, 0xBDF9, 0x8F20, 0xE84B, 0x8F23, 0xE84C, 0x8F24, 0xE848, + 0x8F25, 0xBE40, 0x8F26, 0xBDFB, 0x8F29, 0xBDFA, 0x8F2A, 0xBDFC, + 0x8F2C, 0xE847, 0x8F2E, 0xEBCA, 0x8F2F, 0xBFE8, 0x8F32, 0xEBCC, + 0x8F33, 0xBFEA, 0x8F34, 0xEBCF, 0x8F35, 0xEBCB, 0x8F36, 0xEBC9, + 0x8F37, 0xEBCE, 0x8F38, 0xBFE9, 0x8F39, 0xEBCD, 0x8F3B, 0xBFE7, + 0x8F3E, 0xC1D3, 0x8F3F, 0xC1D6, 0x8F40, 0xEEC1, 0x8F42, 0xC1D4, + 0x8F43, 0xEEC0, 0x8F44, 0xC1D2, 0x8F45, 0xC1D5, 0x8F46, 0xF146, + 0x8F47, 0xF147, 0x8F48, 0xF148, 0x8F49, 0xC2E0, 0x8F4B, 0xF149, + 0x8F4D, 0xC2E1, 0x8F4E, 0xC3E2, 0x8F4F, 0xF358, 0x8F50, 0xF359, + 0x8F51, 0xF357, 0x8F52, 0xF356, 0x8F53, 0xF35A, 0x8F54, 0xC3E1, + 0x8F55, 0xF4DD, 0x8F56, 0xF4DB, 0x8F57, 0xF4DC, 0x8F58, 0xF4DE, + 0x8F59, 0xF4DA, 0x8F5A, 0xF4DF, 0x8F5B, 0xF658, 0x8F5D, 0xF659, + 0x8F5E, 0xF657, 0x8F5F, 0xC546, 0x8F60, 0xF764, 0x8F61, 0xC5AF, + 0x8F62, 0xF765, 0x8F63, 0xF848, 0x8F64, 0xF847, 0x8F9B, 0xA8AF, + 0x8F9C, 0xB664, 0x8F9F, 0xB940, 0x8FA3, 0xBBB6, 0x8FA6, 0xBFEC, + 0x8FA8, 0xBFEB, 0x8FAD, 0xC3E3, 0x8FAE, 0xC47C, 0x8FAF, 0xC547, + 0x8FB0, 0xA8B0, 0x8FB1, 0xB064, 0x8FB2, 0xB941, 0x8FB4, 0xF35B, + 0x8FBF, 0xCBA6, 0x8FC2, 0xA8B1, 0x8FC4, 0xA8B4, 0x8FC5, 0xA8B3, + 0x8FC6, 0xA8B2, 0x8FC9, 0xCBA5, 0x8FCB, 0xCDCD, 0x8FCD, 0xCDCF, + 0x8FCE, 0xAAEF, 0x8FD1, 0xAAF1, 0x8FD2, 0xCDCC, 0x8FD3, 0xCDCE, + 0x8FD4, 0xAAF0, 0x8FD5, 0xCDD1, 0x8FD6, 0xCDD0, 0x8FD7, 0xCDD2, + 0x8FE0, 0xD0B6, 0x8FE1, 0xD0B4, 0x8FE2, 0xAD7C, 0x8FE3, 0xD0B3, + 0x8FE4, 0xADA3, 0x8FE5, 0xAD7E, 0x8FE6, 0xAD7B, 0x8FE8, 0xADA4, + 0x8FEA, 0xAD7D, 0x8FEB, 0xADA2, 0x8FED, 0xADA1, 0x8FEE, 0xD0B5, + 0x8FF0, 0xAD7A, 0x8FF4, 0xB06A, 0x8FF5, 0xD3EB, 0x8FF6, 0xD3F1, + 0x8FF7, 0xB067, 0x8FF8, 0xB06E, 0x8FFA, 0xB069, 0x8FFB, 0xD3EE, + 0x8FFC, 0xD3F0, 0x8FFD, 0xB06C, 0x8FFE, 0xD3EA, 0x8FFF, 0xD3ED, + 0x9000, 0xB068, 0x9001, 0xB065, 0x9002, 0xD3EC, 0x9003, 0xB06B, + 0x9004, 0xD3EF, 0x9005, 0xB06D, 0x9006, 0xB066, 0x900B, 0xD7E3, + 0x900C, 0xD7E6, 0x900D, 0xB370, 0x900F, 0xB37A, 0x9010, 0xB376, + 0x9011, 0xD7E4, 0x9014, 0xB37E, 0x9015, 0xB377, 0x9016, 0xB37C, + 0x9017, 0xB372, 0x9019, 0xB36F, 0x901A, 0xB371, 0x901B, 0xB37D, + 0x901C, 0xD7E5, 0x901D, 0xB375, 0x901E, 0xB378, 0x901F, 0xB374, + 0x9020, 0xB379, 0x9021, 0xD7E7, 0x9022, 0xB37B, 0x9023, 0xB373, + 0x9024, 0xD7E2, 0x902D, 0xDC4D, 0x902E, 0xB665, 0x902F, 0xDC4F, + 0x9031, 0xB667, 0x9032, 0xB669, 0x9034, 0xDC4E, 0x9035, 0xB666, + 0x9036, 0xB66A, 0x9038, 0xB668, 0x903C, 0xB947, 0x903D, 0xE0A3, + 0x903E, 0xB94F, 0x903F, 0xE07E, 0x9041, 0xB950, 0x9042, 0xB945, + 0x9044, 0xE0A1, 0x9047, 0xB94A, 0x9049, 0xE0A2, 0x904A, 0xB943, + 0x904B, 0xB942, 0x904D, 0xB94D, 0x904E, 0xB94C, 0x904F, 0xB94B, + 0x9050, 0xB949, 0x9051, 0xB94E, 0x9052, 0xE07D, 0x9053, 0xB944, + 0x9054, 0xB946, 0x9055, 0xB948, 0x9058, 0xBBB8, 0x9059, 0xBBBB, + 0x905B, 0xBBBF, 0x905C, 0xBBB9, 0x905D, 0xBBBE, 0x905E, 0xBBBC, + 0x9060, 0xBBB7, 0x9062, 0xBBBD, 0x9063, 0xBBBA, 0x9067, 0xE852, + 0x9068, 0xBE43, 0x9069, 0xBE41, 0x906B, 0xE853, 0x906D, 0xBE44, + 0x906E, 0xBE42, 0x906F, 0xE851, 0x9070, 0xE850, 0x9072, 0xBFF0, + 0x9073, 0xE84F, 0x9074, 0xBFEE, 0x9075, 0xBFED, 0x9076, 0xEBD0, + 0x9077, 0xBE45, 0x9078, 0xBFEF, 0x9079, 0xEBD1, 0x907A, 0xBFF2, + 0x907B, 0xEBD2, 0x907C, 0xBFF1, 0x907D, 0xC1D8, 0x907E, 0xEEC3, + 0x907F, 0xC1D7, 0x9080, 0xC1DC, 0x9081, 0xC1DA, 0x9082, 0xC1DB, + 0x9083, 0xC2E3, 0x9084, 0xC1D9, 0x9085, 0xEEC2, 0x9086, 0xEBD3, + 0x9087, 0xC2E2, 0x9088, 0xC2E4, 0x908A, 0xC3E4, 0x908B, 0xC3E5, + 0x908D, 0xF4E0, 0x908F, 0xC5DE, 0x9090, 0xC5DD, 0x9091, 0xA8B6, + 0x9094, 0xCA55, 0x9095, 0xB06F, 0x9097, 0xCA52, 0x9098, 0xCA53, + 0x9099, 0xCA51, 0x909B, 0xCA54, 0x909E, 0xCBAA, 0x909F, 0xCBA7, + 0x90A0, 0xCBAC, 0x90A1, 0xCBA8, 0x90A2, 0xA8B7, 0x90A3, 0xA8BA, + 0x90A5, 0xCBA9, 0x90A6, 0xA8B9, 0x90A7, 0xCBAB, 0x90AA, 0xA8B8, + 0x90AF, 0xCDD5, 0x90B0, 0xCDD7, 0x90B1, 0xAAF4, 0x90B2, 0xCDD3, + 0x90B3, 0xCDD6, 0x90B4, 0xCDD4, 0x90B5, 0xAAF2, 0x90B6, 0xAAF5, + 0x90B8, 0xAAF3, 0x90BD, 0xD0B8, 0x90BE, 0xD0BC, 0x90BF, 0xD0B9, + 0x90C1, 0xADA7, 0x90C3, 0xADA8, 0x90C5, 0xD0BB, 0x90C7, 0xD0BD, + 0x90C8, 0xD0BF, 0x90CA, 0xADA5, 0x90CB, 0xD0BE, 0x90CE, 0xADA6, + 0x90D4, 0xD7EE, 0x90D5, 0xD0BA, 0x90D6, 0xD3F2, 0x90D7, 0xD3FB, + 0x90D8, 0xD3F9, 0x90D9, 0xD3F4, 0x90DA, 0xD3F5, 0x90DB, 0xD3FA, + 0x90DC, 0xD3FC, 0x90DD, 0xB071, 0x90DF, 0xD3F7, 0x90E0, 0xD3F3, + 0x90E1, 0xB070, 0x90E2, 0xB072, 0x90E3, 0xD3F6, 0x90E4, 0xD3FD, + 0x90E5, 0xD3F8, 0x90E8, 0xB3A1, 0x90E9, 0xD7F1, 0x90EA, 0xD7E9, + 0x90EB, 0xD7EF, 0x90EC, 0xD7F0, 0x90ED, 0xB3A2, 0x90EF, 0xD7E8, + 0x90F0, 0xD7EA, 0x90F1, 0xD0B7, 0x90F2, 0xD7EC, 0x90F3, 0xD7ED, + 0x90F4, 0xD7EB, 0x90F5, 0xB66C, 0x90F9, 0xDC56, 0x90FA, 0xEBD4, + 0x90FB, 0xDC57, 0x90FC, 0xDC54, 0x90FD, 0xB3A3, 0x90FE, 0xB66E, + 0x90FF, 0xDC53, 0x9100, 0xDC59, 0x9101, 0xDC58, 0x9102, 0xB66B, + 0x9103, 0xDC5C, 0x9104, 0xDC52, 0x9105, 0xDC5B, 0x9106, 0xDC50, + 0x9107, 0xDC5A, 0x9108, 0xDC55, 0x9109, 0xB66D, 0x910B, 0xE0AA, + 0x910D, 0xE0A5, 0x910E, 0xE0AB, 0x910F, 0xE0A6, 0x9110, 0xE0A4, + 0x9111, 0xE0A7, 0x9112, 0xB951, 0x9114, 0xE0A9, 0x9116, 0xE0A8, + 0x9117, 0xB952, 0x9118, 0xBBC1, 0x9119, 0xBBC0, 0x911A, 0xE46E, + 0x911B, 0xE471, 0x911C, 0xE469, 0x911D, 0xE46D, 0x911E, 0xBBC2, + 0x911F, 0xE46C, 0x9120, 0xE46A, 0x9121, 0xE470, 0x9122, 0xE46B, + 0x9123, 0xE468, 0x9124, 0xE46F, 0x9126, 0xE859, 0x9127, 0xBE48, + 0x9128, 0xF14A, 0x9129, 0xE856, 0x912A, 0xE857, 0x912B, 0xE855, + 0x912C, 0xDC51, 0x912D, 0xBE47, 0x912E, 0xE85A, 0x912F, 0xE854, + 0x9130, 0xBE46, 0x9131, 0xBE49, 0x9132, 0xE858, 0x9133, 0xEBD5, + 0x9134, 0xBFF3, 0x9135, 0xEBD6, 0x9136, 0xEBD7, 0x9138, 0xEEC4, + 0x9139, 0xC1DD, 0x913A, 0xF14B, 0x913B, 0xF14C, 0x913E, 0xF14D, + 0x913F, 0xF35D, 0x9140, 0xF35C, 0x9141, 0xF4E2, 0x9143, 0xF4E1, + 0x9144, 0xF65B, 0x9145, 0xF65C, 0x9146, 0xF65A, 0x9147, 0xF766, + 0x9148, 0xC5B0, 0x9149, 0xA8BB, 0x914A, 0xADAA, 0x914B, 0xADA9, + 0x914C, 0xB075, 0x914D, 0xB074, 0x914E, 0xD440, 0x914F, 0xD441, + 0x9150, 0xD3FE, 0x9152, 0xB073, 0x9153, 0xD7F5, 0x9155, 0xD7F6, + 0x9156, 0xD7F2, 0x9157, 0xB3A4, 0x9158, 0xD7F3, 0x915A, 0xD7F4, + 0x915F, 0xDC5F, 0x9160, 0xDC61, 0x9161, 0xDC5D, 0x9162, 0xDC60, + 0x9163, 0xB66F, 0x9164, 0xDC5E, 0x9165, 0xB670, 0x9168, 0xDD73, + 0x9169, 0xB955, 0x916A, 0xB954, 0x916C, 0xB953, 0x916E, 0xE0AC, + 0x916F, 0xE0AD, 0x9172, 0xE473, 0x9173, 0xE475, 0x9174, 0xBBC6, + 0x9175, 0xBBC3, 0x9177, 0xBBC5, 0x9178, 0xBBC4, 0x9179, 0xE474, + 0x917A, 0xE472, 0x9180, 0xE861, 0x9181, 0xE85E, 0x9182, 0xE85F, + 0x9183, 0xBE4D, 0x9184, 0xE860, 0x9185, 0xE85B, 0x9186, 0xE85C, + 0x9187, 0xBE4A, 0x9189, 0xBE4B, 0x918A, 0xE85D, 0x918B, 0xBE4C, + 0x918D, 0xEBDB, 0x918F, 0xEBDC, 0x9190, 0xEBD9, 0x9191, 0xEBDA, + 0x9192, 0xBFF4, 0x9193, 0xEBD8, 0x9199, 0xEEC8, 0x919A, 0xEEC5, + 0x919B, 0xEEC7, 0x919C, 0xC1E0, 0x919D, 0xEECB, 0x919E, 0xC1DF, + 0x919F, 0xEEC9, 0x91A0, 0xEECC, 0x91A1, 0xEECA, 0x91A2, 0xEEC6, + 0x91A3, 0xC1DE, 0x91A5, 0xF14F, 0x91A7, 0xF150, 0x91A8, 0xF14E, + 0x91AA, 0xF152, 0x91AB, 0xC2E5, 0x91AC, 0xC2E6, 0x91AD, 0xF35F, + 0x91AE, 0xC3E7, 0x91AF, 0xF151, 0x91B0, 0xF35E, 0x91B1, 0xC3E6, + 0x91B2, 0xF4E5, 0x91B3, 0xF4E6, 0x91B4, 0xC4BF, 0x91B5, 0xF4E4, + 0x91B7, 0xF4E3, 0x91B9, 0xF65D, 0x91BA, 0xC548, 0x91BC, 0xF849, + 0x91BD, 0xF8C8, 0x91BE, 0xF8C7, 0x91C0, 0xC643, 0x91C1, 0xC65D, + 0x91C2, 0xF8C9, 0x91C3, 0xF971, 0x91C5, 0xC66F, 0x91C6, 0xA8BC, + 0x91C7, 0xAAF6, 0x91C9, 0xB956, 0x91CB, 0xC4C0, 0x91CC, 0xA8BD, + 0x91CD, 0xADAB, 0x91CE, 0xB3A5, 0x91CF, 0xB671, 0x91D0, 0xC2E7, + 0x91D1, 0xAAF7, 0x91D3, 0xD0C1, 0x91D4, 0xD0C0, 0x91D5, 0xD442, + 0x91D7, 0xB078, 0x91D8, 0xB076, 0x91D9, 0xB07A, 0x91DA, 0xD444, + 0x91DC, 0xB079, 0x91DD, 0xB077, 0x91E2, 0xD443, 0x91E3, 0xB3A8, + 0x91E4, 0xD7FC, 0x91E6, 0xB3A7, 0x91E7, 0xB3A9, 0x91E8, 0xD842, + 0x91E9, 0xB3AB, 0x91EA, 0xD7FE, 0x91EB, 0xD840, 0x91EC, 0xD7F7, + 0x91ED, 0xB3AA, 0x91EE, 0xD843, 0x91F1, 0xD7F9, 0x91F3, 0xD7FA, + 0x91F4, 0xD7F8, 0x91F5, 0xB3A6, 0x91F7, 0xD841, 0x91F8, 0xD7FB, + 0x91F9, 0xD7FD, 0x91FD, 0xDC6D, 0x91FF, 0xDC6C, 0x9200, 0xDC6A, + 0x9201, 0xDC62, 0x9202, 0xDC71, 0x9203, 0xDC65, 0x9204, 0xDC6F, + 0x9205, 0xDC76, 0x9206, 0xDC6E, 0x9207, 0xB679, 0x9209, 0xB675, + 0x920A, 0xDC63, 0x920C, 0xDC69, 0x920D, 0xB677, 0x920F, 0xDC68, + 0x9210, 0xB678, 0x9211, 0xB67A, 0x9212, 0xDC6B, 0x9214, 0xB672, + 0x9215, 0xB673, 0x9216, 0xDC77, 0x9217, 0xDC75, 0x9219, 0xDC74, + 0x921A, 0xDC66, 0x921C, 0xDC72, 0x921E, 0xB676, 0x9223, 0xB674, + 0x9224, 0xDC73, 0x9225, 0xDC64, 0x9226, 0xDC67, 0x9227, 0xDC70, + 0x922D, 0xE4BA, 0x922E, 0xE0B7, 0x9230, 0xE0B0, 0x9231, 0xE0C3, + 0x9232, 0xE0CC, 0x9233, 0xE0B3, 0x9234, 0xB961, 0x9236, 0xE0C0, + 0x9237, 0xB957, 0x9238, 0xB959, 0x9239, 0xB965, 0x923A, 0xE0B1, + 0x923D, 0xB95A, 0x923E, 0xB95C, 0x923F, 0xB966, 0x9240, 0xB95B, + 0x9245, 0xB964, 0x9246, 0xE0B9, 0x9248, 0xE0AE, 0x9249, 0xB962, + 0x924A, 0xE0B8, 0x924B, 0xB95E, 0x924C, 0xE0CA, 0x924D, 0xB963, + 0x924E, 0xE0C8, 0x924F, 0xE0BC, 0x9250, 0xE0C6, 0x9251, 0xB960, + 0x9252, 0xE0AF, 0x9253, 0xE0C9, 0x9254, 0xE0C4, 0x9256, 0xE0CB, + 0x9257, 0xB958, 0x925A, 0xB967, 0x925B, 0xB95D, 0x925E, 0xE0B5, + 0x9260, 0xE0BD, 0x9261, 0xE0C1, 0x9263, 0xE0C5, 0x9264, 0xB95F, + 0x9265, 0xE0B4, 0x9266, 0xE0B2, 0x9267, 0xE0BE, 0x926C, 0xE0BB, + 0x926D, 0xE0BA, 0x926F, 0xE0BF, 0x9270, 0xE0C2, 0x9272, 0xE0C7, + 0x9276, 0xE478, 0x9278, 0xBBC7, 0x9279, 0xE4A4, 0x927A, 0xE47A, + 0x927B, 0xBBCC, 0x927C, 0xBBD0, 0x927D, 0xE4AD, 0x927E, 0xE4B5, + 0x927F, 0xE4A6, 0x9280, 0xBBC8, 0x9282, 0xE4AA, 0x9283, 0xE0B6, + 0x9285, 0xBBC9, 0x9286, 0xE4B1, 0x9287, 0xE4B6, 0x9288, 0xE4AE, + 0x928A, 0xE4B0, 0x928B, 0xE4B9, 0x928C, 0xE4B2, 0x928D, 0xE47E, + 0x928E, 0xE4A9, 0x9291, 0xBBD1, 0x9293, 0xBBCD, 0x9294, 0xE47C, + 0x9295, 0xE4AB, 0x9296, 0xBBCB, 0x9297, 0xE4A5, 0x9298, 0xBBCA, + 0x9299, 0xE4B3, 0x929A, 0xE4A2, 0x929B, 0xE479, 0x929C, 0xBBCE, + 0x929D, 0xE4B8, 0x92A0, 0xE47B, 0x92A1, 0xE4AF, 0x92A2, 0xE4AC, + 0x92A3, 0xE4A7, 0x92A4, 0xE477, 0x92A5, 0xE476, 0x92A6, 0xE4A1, + 0x92A7, 0xE4B4, 0x92A8, 0xBBCF, 0x92A9, 0xE4B7, 0x92AA, 0xE47D, + 0x92AB, 0xE4A3, 0x92AC, 0xBE52, 0x92B2, 0xBE5A, 0x92B3, 0xBE55, + 0x92B4, 0xE8A4, 0x92B5, 0xE8A1, 0x92B6, 0xE867, 0x92B7, 0xBE50, + 0x92B9, 0xF9D7, 0x92BB, 0xBE4F, 0x92BC, 0xBE56, 0x92C0, 0xE865, + 0x92C1, 0xBE54, 0x92C2, 0xE871, 0x92C3, 0xE863, 0x92C4, 0xE864, + 0x92C5, 0xBE4E, 0x92C6, 0xE8A3, 0x92C7, 0xBE58, 0x92C8, 0xE874, + 0x92C9, 0xE879, 0x92CA, 0xE873, 0x92CB, 0xEBEE, 0x92CC, 0xE86F, + 0x92CD, 0xE877, 0x92CE, 0xE875, 0x92CF, 0xE868, 0x92D0, 0xE862, + 0x92D1, 0xE87D, 0x92D2, 0xBE57, 0x92D3, 0xE87E, 0x92D5, 0xE878, + 0x92D7, 0xE86D, 0x92D8, 0xE86B, 0x92D9, 0xE866, 0x92DD, 0xE86E, + 0x92DE, 0xE87B, 0x92DF, 0xE86A, 0x92E0, 0xE87A, 0x92E1, 0xE8A2, + 0x92E4, 0xBE53, 0x92E6, 0xE876, 0x92E7, 0xE87C, 0x92E8, 0xE872, + 0x92E9, 0xE86C, 0x92EA, 0xBE51, 0x92EE, 0xE4A8, 0x92EF, 0xE870, + 0x92F0, 0xBE59, 0x92F1, 0xE869, 0x92F7, 0xEBF4, 0x92F8, 0xBFF7, + 0x92F9, 0xEBF3, 0x92FA, 0xEBF0, 0x92FB, 0xEC44, 0x92FC, 0xBFFB, + 0x92FE, 0xEC41, 0x92FF, 0xEBF8, 0x9300, 0xEC43, 0x9301, 0xEBE9, + 0x9302, 0xEBF6, 0x9304, 0xBFFD, 0x9306, 0xEBE1, 0x9308, 0xEBDF, + 0x9309, 0xEC42, 0x930B, 0xEC40, 0x930C, 0xEBFE, 0x930D, 0xEBED, + 0x930E, 0xEBEC, 0x930F, 0xEBE2, 0x9310, 0xC040, 0x9312, 0xEBE8, + 0x9313, 0xEBF2, 0x9314, 0xEBFD, 0x9315, 0xC043, 0x9316, 0xEC45, + 0x9318, 0xC1E8, 0x9319, 0xC045, 0x931A, 0xBFFE, 0x931B, 0xEBE6, + 0x931D, 0xEBEF, 0x931E, 0xEBDE, 0x931F, 0xEBE0, 0x9320, 0xBFF5, + 0x9321, 0xC042, 0x9322, 0xBFFA, 0x9323, 0xEBE7, 0x9324, 0xEBF7, + 0x9325, 0xEBF1, 0x9326, 0xC041, 0x9327, 0xEBDD, 0x9328, 0xC1E3, + 0x9329, 0xEBF9, 0x932A, 0xEBFC, 0x932B, 0xBFFC, 0x932D, 0xEBEB, + 0x932E, 0xC044, 0x932F, 0xBFF9, 0x9333, 0xBFF8, 0x9334, 0xEBF5, + 0x9335, 0xEBFB, 0x9336, 0xBFF6, 0x9338, 0xEBE4, 0x9339, 0xEBFA, + 0x933C, 0xEBE5, 0x9346, 0xEBEA, 0x9347, 0xEED2, 0x9349, 0xEED7, + 0x934A, 0xC1E5, 0x934B, 0xC1E7, 0x934C, 0xEEDD, 0x934D, 0xC1E1, + 0x934E, 0xEEEC, 0x934F, 0xEEE3, 0x9350, 0xEED8, 0x9351, 0xEED9, + 0x9352, 0xEEE2, 0x9354, 0xC1EE, 0x9355, 0xEEE1, 0x9356, 0xEED1, + 0x9357, 0xEEE0, 0x9358, 0xEED4, 0x9359, 0xEEED, 0x935A, 0xC1ED, + 0x935B, 0xC1EB, 0x935C, 0xEED5, 0x935E, 0xEEE8, 0x9360, 0xEEDA, + 0x9361, 0xEEE7, 0x9363, 0xEEE9, 0x9364, 0xEED0, 0x9365, 0xC1E6, + 0x9367, 0xEEEA, 0x936A, 0xEEDE, 0x936C, 0xC1EA, 0x936D, 0xEEDB, + 0x9370, 0xC1EC, 0x9371, 0xEEE4, 0x9375, 0xC1E4, 0x9376, 0xEED6, + 0x9377, 0xEEE5, 0x9379, 0xEEDF, 0x937A, 0xEBE3, 0x937B, 0xEEE6, + 0x937C, 0xEED3, 0x937E, 0xC1E9, 0x9380, 0xEEEB, 0x9382, 0xC1E2, + 0x9383, 0xEECE, 0x9388, 0xF160, 0x9389, 0xF159, 0x938A, 0xC2E9, + 0x938C, 0xF154, 0x938D, 0xF163, 0x938E, 0xF15B, 0x938F, 0xEEDC, + 0x9391, 0xF165, 0x9392, 0xF155, 0x9394, 0xC2E8, 0x9395, 0xF15F, + 0x9396, 0xC2EA, 0x9397, 0xC2F2, 0x9398, 0xC2F0, 0x9399, 0xF161, + 0x939A, 0xC2F1, 0x939B, 0xF157, 0x939D, 0xF158, 0x939E, 0xF15D, + 0x939F, 0xF162, 0x93A1, 0xEECD, 0x93A2, 0xC2EB, 0x93A3, 0xF16A, + 0x93A4, 0xF167, 0x93A5, 0xF16B, 0x93A6, 0xF15E, 0x93A7, 0xF15A, + 0x93A8, 0xF168, 0x93A9, 0xF36A, 0x93AA, 0xF15C, 0x93AC, 0xC2EE, + 0x93AE, 0xC2ED, 0x93AF, 0xEECF, 0x93B0, 0xC2EF, 0x93B1, 0xF164, + 0x93B2, 0xF166, 0x93B3, 0xC2EC, 0x93B4, 0xF169, 0x93B5, 0xF153, + 0x93B7, 0xF156, 0x93C0, 0xF373, 0x93C2, 0xF363, 0x93C3, 0xC3EB, + 0x93C4, 0xF371, 0x93C7, 0xF361, 0x93C8, 0xC3EC, 0x93CA, 0xF36C, + 0x93CC, 0xF368, 0x93CD, 0xC3F1, 0x93CE, 0xF372, 0x93CF, 0xF362, + 0x93D0, 0xF365, 0x93D1, 0xC3E9, 0x93D2, 0xF374, 0x93D4, 0xF36D, + 0x93D5, 0xF370, 0x93D6, 0xC3EF, 0x93D7, 0xC3F4, 0x93D8, 0xC3F2, + 0x93D9, 0xF369, 0x93DA, 0xF364, 0x93DC, 0xC3ED, 0x93DD, 0xC3EE, + 0x93DE, 0xF360, 0x93DF, 0xC3EA, 0x93E1, 0xC3E8, 0x93E2, 0xC3F0, + 0x93E3, 0xF36F, 0x93E4, 0xC3F3, 0x93E6, 0xF36B, 0x93E7, 0xF375, + 0x93E8, 0xC3F5, 0x93EC, 0xF367, 0x93EE, 0xF36E, 0x93F5, 0xF4F3, + 0x93F6, 0xF542, 0x93F7, 0xF4F5, 0x93F8, 0xF4FC, 0x93F9, 0xF366, + 0x93FA, 0xF4FA, 0x93FB, 0xF4E9, 0x93FC, 0xF540, 0x93FD, 0xC4C3, + 0x93FE, 0xF4ED, 0x93FF, 0xF4FE, 0x9400, 0xF4F4, 0x9403, 0xC4C2, + 0x9406, 0xF544, 0x9407, 0xF4F6, 0x9409, 0xF4FB, 0x940A, 0xF4FD, + 0x940B, 0xF4E7, 0x940C, 0xF541, 0x940D, 0xF4F2, 0x940E, 0xF4F7, + 0x940F, 0xF4EB, 0x9410, 0xF4EF, 0x9411, 0xF543, 0x9412, 0xF4F9, + 0x9413, 0xF4E8, 0x9414, 0xF4EC, 0x9415, 0xF4EE, 0x9416, 0xF4F8, + 0x9418, 0xC4C1, 0x9419, 0xF4F1, 0x9420, 0xF4EA, 0x9428, 0xF4F0, + 0x9429, 0xF661, 0x942A, 0xF666, 0x942B, 0xC54F, 0x942C, 0xF668, + 0x942E, 0xC549, 0x9430, 0xF664, 0x9431, 0xF66A, 0x9432, 0xC54E, + 0x9433, 0xC54A, 0x9435, 0xC54B, 0x9436, 0xF660, 0x9437, 0xF667, + 0x9438, 0xC54D, 0x9439, 0xF665, 0x943A, 0xC54C, 0x943B, 0xF65F, + 0x943C, 0xF663, 0x943D, 0xF662, 0x943F, 0xF65E, 0x9440, 0xF669, + 0x9444, 0xC5B1, 0x9445, 0xF76D, 0x9446, 0xF770, 0x9447, 0xF76C, + 0x9448, 0xF76E, 0x9449, 0xF76F, 0x944A, 0xF769, 0x944B, 0xF76A, + 0x944C, 0xF767, 0x944F, 0xF76B, 0x9450, 0xF768, 0x9451, 0xC5B2, + 0x9452, 0xC5B3, 0x9455, 0xF84B, 0x9457, 0xF84D, 0x945D, 0xF84C, + 0x945E, 0xF84E, 0x9460, 0xC5E0, 0x9462, 0xF84A, 0x9463, 0xC5DF, + 0x9464, 0xC5E1, 0x9468, 0xF8CB, 0x9469, 0xF8CC, 0x946A, 0xC644, + 0x946B, 0xF8CA, 0x946D, 0xF953, 0x946E, 0xF952, 0x946F, 0xF954, + 0x9470, 0xC65F, 0x9471, 0xF955, 0x9472, 0xC65E, 0x9473, 0xF956, + 0x9474, 0xF972, 0x9475, 0xF975, 0x9476, 0xF974, 0x9477, 0xC668, + 0x9478, 0xF973, 0x947C, 0xC672, 0x947D, 0xC670, 0x947E, 0xC671, + 0x947F, 0xC677, 0x9480, 0xF9C0, 0x9481, 0xF9C1, 0x9482, 0xF9BF, + 0x9483, 0xF9C9, 0x9577, 0xAAF8, 0x957A, 0xD844, 0x957B, 0xDC78, + 0x957C, 0xE8A5, 0x957D, 0xF376, 0x9580, 0xAAF9, 0x9582, 0xADAC, + 0x9583, 0xB07B, 0x9586, 0xD845, 0x9588, 0xD846, 0x9589, 0xB3AC, + 0x958B, 0xB67D, 0x958C, 0xDC7A, 0x958D, 0xDC79, 0x958E, 0xB6A3, + 0x958F, 0xB67C, 0x9590, 0xDC7B, 0x9591, 0xB67E, 0x9592, 0xB6A2, + 0x9593, 0xB6A1, 0x9594, 0xB67B, 0x9598, 0xB968, 0x959B, 0xE0D0, + 0x959C, 0xE0CE, 0x959E, 0xE0CF, 0x959F, 0xE0CD, 0x95A1, 0xBBD2, + 0x95A3, 0xBBD5, 0x95A4, 0xBBD7, 0x95A5, 0xBBD6, 0x95A8, 0xBBD3, + 0x95A9, 0xBBD4, 0x95AB, 0xE8A7, 0x95AC, 0xE8A6, 0x95AD, 0xBE5B, + 0x95AE, 0xE8A8, 0x95B0, 0xE8A9, 0x95B1, 0xBE5C, 0x95B5, 0xEC4D, + 0x95B6, 0xEC4B, 0x95B7, 0xEEF3, 0x95B9, 0xEC49, 0x95BA, 0xEC4A, + 0x95BB, 0xC046, 0x95BC, 0xEC46, 0x95BD, 0xEC4E, 0x95BE, 0xEC48, + 0x95BF, 0xEC4C, 0x95C0, 0xEEEF, 0x95C3, 0xEEF1, 0x95C5, 0xEEF2, + 0x95C6, 0xC1F3, 0x95C7, 0xEEEE, 0x95C8, 0xC1F2, 0x95C9, 0xEEF0, + 0x95CA, 0xC1EF, 0x95CB, 0xC1F0, 0x95CC, 0xC1F1, 0x95CD, 0xEC47, + 0x95D0, 0xC2F5, 0x95D1, 0xF16E, 0x95D2, 0xF16C, 0x95D3, 0xF16D, + 0x95D4, 0xC2F3, 0x95D5, 0xC2F6, 0x95D6, 0xC2F4, 0x95DA, 0xF377, + 0x95DB, 0xF378, 0x95DC, 0xC3F6, 0x95DE, 0xF545, 0x95DF, 0xF547, + 0x95E0, 0xF546, 0x95E1, 0xC4C4, 0x95E2, 0xC550, 0x95E3, 0xF66D, + 0x95E4, 0xF66C, 0x95E5, 0xF66B, 0x961C, 0xAAFA, 0x961E, 0xC9AA, + 0x9620, 0xCA58, 0x9621, 0xA6E9, 0x9622, 0xCA56, 0x9623, 0xCA59, + 0x9624, 0xCA57, 0x9628, 0xCBAE, 0x962A, 0xA8C1, 0x962C, 0xA8C2, + 0x962D, 0xCBB0, 0x962E, 0xA8BF, 0x962F, 0xCBAF, 0x9630, 0xCBAD, + 0x9631, 0xA8C0, 0x9632, 0xA8BE, 0x9639, 0xCDD8, 0x963A, 0xCDDB, + 0x963B, 0xAAFD, 0x963C, 0xCDDA, 0x963D, 0xCDD9, 0x963F, 0xAAFC, + 0x9640, 0xAAFB, 0x9642, 0xAB40, 0x9643, 0xCDDC, 0x9644, 0xAAFE, + 0x964A, 0xD0C6, 0x964B, 0xADAE, 0x964C, 0xADAF, 0x964D, 0xADB0, + 0x964E, 0xD0C7, 0x964F, 0xD0C3, 0x9650, 0xADAD, 0x9651, 0xD0C4, + 0x9653, 0xD0C5, 0x9654, 0xD0C2, 0x9658, 0xB0A4, 0x965B, 0xB0A1, + 0x965C, 0xD445, 0x965D, 0xB0A2, 0x965E, 0xB0A5, 0x965F, 0xD446, + 0x9661, 0xB07E, 0x9662, 0xB07C, 0x9663, 0xB07D, 0x9664, 0xB0A3, + 0x966A, 0xB3AD, 0x966B, 0xD849, 0x966C, 0xB3B5, 0x966D, 0xD848, + 0x966F, 0xD84B, 0x9670, 0xB3B1, 0x9671, 0xD84A, 0x9672, 0xB6AB, + 0x9673, 0xB3AF, 0x9674, 0xB3B2, 0x9675, 0xB3AE, 0x9676, 0xB3B3, + 0x9677, 0xB3B4, 0x9678, 0xB3B0, 0x967C, 0xD847, 0x967D, 0xB6A7, + 0x967E, 0xDC7D, 0x9680, 0xDCA3, 0x9683, 0xDCA2, 0x9684, 0xB6AC, + 0x9685, 0xB6A8, 0x9686, 0xB6A9, 0x9687, 0xDC7C, 0x9688, 0xDC7E, + 0x9689, 0xDCA1, 0x968A, 0xB6A4, 0x968B, 0xB6A6, 0x968D, 0xB6AA, + 0x968E, 0xB6A5, 0x9691, 0xE0D3, 0x9692, 0xE0D1, 0x9693, 0xE0D2, + 0x9694, 0xB96A, 0x9695, 0xB96B, 0x9697, 0xE0D4, 0x9698, 0xB969, + 0x9699, 0xBBD8, 0x969B, 0xBBDA, 0x969C, 0xBBD9, 0x969E, 0xE4BB, + 0x96A1, 0xE4BC, 0x96A2, 0xE8AB, 0x96A4, 0xE8AA, 0x96A7, 0xC047, + 0x96A8, 0xC048, 0x96A9, 0xEC4F, 0x96AA, 0xC049, 0x96AC, 0xEEF6, + 0x96AE, 0xEEF4, 0x96B0, 0xEEF5, 0x96B1, 0xC1F4, 0x96B3, 0xF16F, + 0x96B4, 0xC3F7, 0x96B8, 0xC1F5, 0x96B9, 0xAB41, 0x96BB, 0xB0A6, + 0x96BC, 0xD447, 0x96BF, 0xD84C, 0x96C0, 0xB3B6, 0x96C1, 0xB6AD, + 0x96C2, 0xDCA4, 0x96C3, 0xDCA6, 0x96C4, 0xB6AF, 0x96C5, 0xB6AE, + 0x96C6, 0xB6B0, 0x96C7, 0xB6B1, 0x96C8, 0xDCA5, 0x96C9, 0xB96E, + 0x96CA, 0xB96F, 0x96CB, 0xB96D, 0x96CC, 0xBBDB, 0x96CD, 0xB96C, + 0x96CE, 0xE0D5, 0x96D2, 0xBBDC, 0x96D3, 0xE8AC, 0x96D4, 0xEC50, + 0x96D5, 0xC04A, 0x96D6, 0xC1F6, 0x96D7, 0xF170, 0x96D8, 0xF174, + 0x96D9, 0xC2F9, 0x96DA, 0xF171, 0x96DB, 0xC2FA, 0x96DC, 0xC2F8, + 0x96DD, 0xF175, 0x96DE, 0xC2FB, 0x96DF, 0xF173, 0x96E1, 0xF379, + 0x96E2, 0xC2F7, 0x96E3, 0xC3F8, 0x96E5, 0xF8CD, 0x96E8, 0xAB42, + 0x96E9, 0xB3B8, 0x96EA, 0xB3B7, 0x96EF, 0xB6B2, 0x96F0, 0xDCA8, + 0x96F1, 0xDCA7, 0x96F2, 0xB6B3, 0x96F5, 0xE0D9, 0x96F6, 0xB973, + 0x96F7, 0xB970, 0x96F8, 0xE0D8, 0x96F9, 0xB972, 0x96FA, 0xE0D6, + 0x96FB, 0xB971, 0x96FD, 0xE0D7, 0x96FF, 0xE4BD, 0x9700, 0xBBDD, + 0x9702, 0xE8AF, 0x9704, 0xBE5D, 0x9705, 0xE8AD, 0x9706, 0xBE5E, + 0x9707, 0xBE5F, 0x9708, 0xE8AE, 0x9709, 0xBE60, 0x970B, 0xEC51, + 0x970D, 0xC04E, 0x970E, 0xC04B, 0x970F, 0xC050, 0x9710, 0xEC53, + 0x9711, 0xC04C, 0x9712, 0xEC52, 0x9713, 0xC04F, 0x9716, 0xC04D, + 0x9718, 0xEEF9, 0x9719, 0xEEFB, 0x971C, 0xC1F7, 0x971D, 0xEEFA, + 0x971E, 0xC1F8, 0x971F, 0xEEF8, 0x9720, 0xEEF7, 0x9722, 0xF177, + 0x9723, 0xF176, 0x9724, 0xC2FC, 0x9725, 0xF178, 0x9726, 0xF37E, + 0x9727, 0xC3FA, 0x9728, 0xF37D, 0x9729, 0xF37A, 0x972A, 0xC3F9, + 0x972B, 0xF37B, 0x972C, 0xF37C, 0x972E, 0xF548, 0x972F, 0xF549, + 0x9730, 0xC4C5, 0x9732, 0xC553, 0x9735, 0xF66E, 0x9738, 0xC551, + 0x9739, 0xC552, 0x973A, 0xF66F, 0x973D, 0xC5B4, 0x973E, 0xC5B5, + 0x973F, 0xF771, 0x9742, 0xC645, 0x9743, 0xF8CF, 0x9744, 0xC647, + 0x9746, 0xF8CE, 0x9747, 0xF8D0, 0x9748, 0xC646, 0x9749, 0xF957, + 0x974B, 0xF9AD, 0x9752, 0xAB43, 0x9756, 0xB974, 0x9758, 0xE4BE, + 0x975A, 0xE8B0, 0x975B, 0xC051, 0x975C, 0xC052, 0x975E, 0xAB44, + 0x9760, 0xBE61, 0x9761, 0xC3FB, 0x9762, 0xADB1, 0x9766, 0xC053, + 0x9768, 0xC5E2, 0x9769, 0xADB2, 0x976A, 0xD84D, 0x976C, 0xDCA9, + 0x976E, 0xDCAB, 0x9770, 0xDCAA, 0x9772, 0xE0DD, 0x9773, 0xE0DA, + 0x9774, 0xB975, 0x9776, 0xB976, 0x9777, 0xE0DB, 0x9778, 0xE0DC, + 0x977A, 0xE4C0, 0x977B, 0xE4C5, 0x977C, 0xBBDE, 0x977D, 0xE4BF, + 0x977E, 0xE4C1, 0x977F, 0xE4C8, 0x9780, 0xE4C3, 0x9781, 0xE4C7, + 0x9782, 0xE4C4, 0x9783, 0xE4C2, 0x9784, 0xE4C6, 0x9785, 0xBBDF, + 0x9788, 0xE8B3, 0x978A, 0xE8B1, 0x978B, 0xBE63, 0x978D, 0xBE62, + 0x978E, 0xE8B2, 0x978F, 0xBE64, 0x9794, 0xEC56, 0x9797, 0xEC55, + 0x9798, 0xC054, 0x9799, 0xEC54, 0x979A, 0xEEFC, 0x979C, 0xEEFE, + 0x979D, 0xEF41, 0x979E, 0xEF40, 0x97A0, 0xC1F9, 0x97A1, 0xEEFD, + 0x97A2, 0xF1A1, 0x97A3, 0xC2FD, 0x97A4, 0xF17D, 0x97A5, 0xF1A2, + 0x97A6, 0xC2FE, 0x97A8, 0xF17B, 0x97AA, 0xF17E, 0x97AB, 0xF17C, + 0x97AC, 0xF179, 0x97AD, 0xC340, 0x97AE, 0xF17A, 0x97B3, 0xF3A1, + 0x97B6, 0xF3A3, 0x97B7, 0xF3A2, 0x97B9, 0xF54A, 0x97BB, 0xF54B, + 0x97BF, 0xF670, 0x97C1, 0xC5B7, 0x97C3, 0xC5B6, 0x97C4, 0xF84F, + 0x97C5, 0xF850, 0x97C6, 0xC648, 0x97C7, 0xF8D1, 0x97C9, 0xC669, + 0x97CB, 0xADB3, 0x97CC, 0xB6B4, 0x97CD, 0xE4CA, 0x97CE, 0xE4C9, + 0x97CF, 0xE8B5, 0x97D0, 0xE8B4, 0x97D3, 0xC1FA, 0x97D4, 0xEF43, + 0x97D5, 0xEF42, 0x97D6, 0xF1A5, 0x97D7, 0xF1A3, 0x97D8, 0xF1A6, + 0x97D9, 0xF1A4, 0x97DC, 0xC3FC, 0x97DD, 0xF3A4, 0x97DE, 0xF3A5, + 0x97DF, 0xF3A6, 0x97E1, 0xF671, 0x97E3, 0xF772, 0x97E5, 0xF8D2, + 0x97ED, 0xADB4, 0x97F0, 0xEC57, 0x97F1, 0xEF44, 0x97F3, 0xADB5, + 0x97F6, 0xBBE0, 0x97F8, 0xEC58, 0x97F9, 0xC341, 0x97FA, 0xF1A7, + 0x97FB, 0xC3FD, 0x97FD, 0xF54C, 0x97FE, 0xF54D, 0x97FF, 0xC554, + 0x9800, 0xF851, 0x9801, 0xADB6, 0x9802, 0xB3BB, 0x9803, 0xB3BC, + 0x9804, 0xD84E, 0x9805, 0xB6B5, 0x9806, 0xB6B6, 0x9807, 0xDCAC, + 0x9808, 0xB6B7, 0x980A, 0xB97A, 0x980C, 0xB97C, 0x980D, 0xE0DF, + 0x980E, 0xE0E0, 0x980F, 0xE0DE, 0x9810, 0xB977, 0x9811, 0xB978, + 0x9812, 0xB97B, 0x9813, 0xB979, 0x9816, 0xE4CB, 0x9817, 0xBBE1, + 0x9818, 0xBBE2, 0x981B, 0xE8BC, 0x981C, 0xBE67, 0x981D, 0xE8B7, + 0x981E, 0xE8B6, 0x9820, 0xE8BB, 0x9821, 0xBE65, 0x9824, 0xC05B, + 0x9826, 0xE8B8, 0x9827, 0xE8BD, 0x9828, 0xE8BA, 0x9829, 0xE8B9, + 0x982B, 0xBE66, 0x982D, 0xC059, 0x982F, 0xEC5A, 0x9830, 0xC055, + 0x9832, 0xEC5B, 0x9835, 0xEC59, 0x9837, 0xC058, 0x9838, 0xC056, + 0x9839, 0xC05A, 0x983B, 0xC057, 0x9841, 0xEF45, 0x9843, 0xEF4A, + 0x9844, 0xEF46, 0x9845, 0xEF49, 0x9846, 0xC1FB, 0x9848, 0xEDD4, + 0x9849, 0xEF48, 0x984A, 0xEF47, 0x984C, 0xC344, 0x984D, 0xC342, + 0x984E, 0xC345, 0x984F, 0xC343, 0x9850, 0xF1A8, 0x9851, 0xF1A9, + 0x9852, 0xF1AA, 0x9853, 0xC346, 0x9857, 0xF3AA, 0x9858, 0xC440, + 0x9859, 0xF3A8, 0x985B, 0xC441, 0x985C, 0xF3A7, 0x985D, 0xF3A9, + 0x985E, 0xC3FE, 0x985F, 0xF551, 0x9860, 0xF54E, 0x9862, 0xF54F, + 0x9863, 0xF550, 0x9864, 0xF672, 0x9865, 0xC556, 0x9867, 0xC555, + 0x9869, 0xF774, 0x986A, 0xF773, 0x986B, 0xC5B8, 0x986F, 0xC5E3, + 0x9870, 0xC649, 0x9871, 0xC660, 0x9872, 0xF958, 0x9873, 0xF9AE, + 0x9874, 0xF9AF, 0x98A8, 0xADB7, 0x98A9, 0xDCAD, 0x98AC, 0xE0E1, + 0x98AD, 0xE4CC, 0x98AE, 0xE4CD, 0x98AF, 0xBBE3, 0x98B1, 0xBBE4, + 0x98B2, 0xE8BE, 0x98B3, 0xBE68, 0x98B6, 0xC1FC, 0x98B8, 0xF1AB, + 0x98BA, 0xC347, 0x98BB, 0xF3AD, 0x98BC, 0xC442, 0x98BD, 0xF3AC, + 0x98BE, 0xF3AE, 0x98BF, 0xF3AB, 0x98C0, 0xF675, 0x98C1, 0xF552, + 0x98C2, 0xF553, 0x98C4, 0xC4C6, 0x98C6, 0xF674, 0x98C9, 0xF673, + 0x98CB, 0xF775, 0x98CC, 0xF9B0, 0x98DB, 0xADB8, 0x98DF, 0xADB9, + 0x98E2, 0xB0A7, 0x98E3, 0xD448, 0x98E5, 0xD84F, 0x98E7, 0xB6B8, + 0x98E9, 0xB6BB, 0x98EA, 0xB6B9, 0x98EB, 0xDCAE, 0x98ED, 0xB6BD, + 0x98EF, 0xB6BA, 0x98F2, 0xB6BC, 0x98F4, 0xB97E, 0x98F6, 0xE0E2, + 0x98F9, 0xE0E3, 0x98FA, 0xE8C0, 0x98FC, 0xB97D, 0x98FD, 0xB9A1, + 0x98FE, 0xB9A2, 0x9900, 0xE4CF, 0x9902, 0xE4CE, 0x9903, 0xBBE5, + 0x9905, 0xBBE6, 0x9907, 0xE4D0, 0x9908, 0xE8BF, 0x9909, 0xBBE8, + 0x990A, 0xBE69, 0x990C, 0xBBE7, 0x9910, 0xC05C, 0x9911, 0xE8C1, + 0x9912, 0xBE6B, 0x9913, 0xBE6A, 0x9914, 0xE8C2, 0x9915, 0xE8C5, + 0x9916, 0xE8C3, 0x9917, 0xE8C4, 0x9918, 0xBE6C, 0x991A, 0xC061, + 0x991B, 0xC05F, 0x991E, 0xC05E, 0x991F, 0xEC5D, 0x9921, 0xC060, + 0x9924, 0xEC5C, 0x9925, 0xEF4B, 0x9927, 0xEC5E, 0x9928, 0xC05D, + 0x9929, 0xEC5F, 0x992A, 0xEF4E, 0x992B, 0xEF4C, 0x992C, 0xEF4D, + 0x992D, 0xEF52, 0x992E, 0xC34B, 0x992F, 0xEF51, 0x9930, 0xEF54, + 0x9931, 0xEF53, 0x9932, 0xEF50, 0x9933, 0xEF4F, 0x9935, 0xC1FD, + 0x993A, 0xF1AE, 0x993C, 0xF1AD, 0x993D, 0xC34A, 0x993E, 0xC348, + 0x993F, 0xC349, 0x9941, 0xF1AC, 0x9943, 0xF3B1, 0x9945, 0xC443, + 0x9947, 0xF3B0, 0x9948, 0xF3AF, 0x9949, 0xC444, 0x994B, 0xF558, + 0x994C, 0xF557, 0x994E, 0xF555, 0x9950, 0xF554, 0x9951, 0xC4C8, + 0x9952, 0xC4C7, 0x9953, 0xF559, 0x9954, 0xF776, 0x9955, 0xC5B9, + 0x9956, 0xF677, 0x9957, 0xC557, 0x9958, 0xF676, 0x9959, 0xF556, + 0x995B, 0xF777, 0x995C, 0xC5E4, 0x995E, 0xC661, 0x995F, 0xF959, + 0x9961, 0xF9B1, 0x9996, 0xADBA, 0x9997, 0xD850, 0x9998, 0xEF55, + 0x9999, 0xADBB, 0x999C, 0xE4D2, 0x999D, 0xE4D1, 0x999E, 0xEC60, + 0x99A1, 0xEF57, 0x99A3, 0xEF56, 0x99A5, 0xC34C, 0x99A6, 0xF3B2, + 0x99A7, 0xF3B3, 0x99A8, 0xC4C9, 0x99AB, 0xF9B2, 0x99AC, 0xB0A8, + 0x99AD, 0xB6BF, 0x99AE, 0xB6BE, 0x99AF, 0xE0E4, 0x99B0, 0xE0E6, + 0x99B1, 0xB9A4, 0x99B2, 0xE0E5, 0x99B3, 0xB9A3, 0x99B4, 0xB9A5, + 0x99B5, 0xE0E7, 0x99B9, 0xE4D4, 0x99BA, 0xE4D6, 0x99BB, 0xE4D5, + 0x99BD, 0xE4D8, 0x99C1, 0xBBE9, 0x99C2, 0xE4D7, 0x99C3, 0xE4D3, + 0x99C7, 0xE4D9, 0x99C9, 0xE8CC, 0x99CB, 0xE8CF, 0x99CC, 0xE8D1, + 0x99CD, 0xE8C7, 0x99CE, 0xE8CB, 0x99CF, 0xE8C8, 0x99D0, 0xBE6E, + 0x99D1, 0xBE71, 0x99D2, 0xBE73, 0x99D3, 0xE8C9, 0x99D4, 0xE8CA, + 0x99D5, 0xBE72, 0x99D6, 0xE8CD, 0x99D7, 0xE8D0, 0x99D8, 0xE8CE, + 0x99D9, 0xBE74, 0x99DB, 0xBE70, 0x99DC, 0xE8C6, 0x99DD, 0xBE6D, + 0x99DF, 0xBE6F, 0x99E2, 0xC063, 0x99E3, 0xEC66, 0x99E4, 0xEC64, + 0x99E5, 0xEC63, 0x99E7, 0xEC69, 0x99E9, 0xEC68, 0x99EA, 0xEC67, + 0x99EC, 0xEC62, 0x99ED, 0xC062, 0x99EE, 0xEC61, 0x99F0, 0xEC65, + 0x99F1, 0xC064, 0x99F4, 0xEF5A, 0x99F6, 0xEF5E, 0x99F7, 0xEF5B, + 0x99F8, 0xEF5D, 0x99F9, 0xEF5C, 0x99FA, 0xEF59, 0x99FB, 0xEF5F, + 0x99FC, 0xEF62, 0x99FD, 0xEF60, 0x99FE, 0xEF61, 0x99FF, 0xC240, + 0x9A01, 0xC1FE, 0x9A02, 0xEF58, 0x9A03, 0xEF63, 0x9A04, 0xF1B3, + 0x9A05, 0xF1B6, 0x9A06, 0xF1B8, 0x9A07, 0xF1B7, 0x9A09, 0xF1B1, + 0x9A0A, 0xF1B5, 0x9A0B, 0xF1B0, 0x9A0D, 0xF1B2, 0x9A0E, 0xC34D, + 0x9A0F, 0xF1AF, 0x9A11, 0xF1B4, 0x9A14, 0xF3C0, 0x9A15, 0xF3B5, + 0x9A16, 0xC445, 0x9A19, 0xC446, 0x9A1A, 0xF3B4, 0x9A1B, 0xF3B9, + 0x9A1C, 0xF3BF, 0x9A1D, 0xF3B7, 0x9A1E, 0xF3BE, 0x9A20, 0xF3BB, + 0x9A22, 0xF3BA, 0x9A23, 0xF3BD, 0x9A24, 0xF3B8, 0x9A25, 0xF3B6, + 0x9A27, 0xF3BC, 0x9A29, 0xF560, 0x9A2A, 0xF55E, 0x9A2B, 0xC4CA, + 0x9A2C, 0xF55D, 0x9A2D, 0xF563, 0x9A2E, 0xF561, 0x9A30, 0xC4CB, + 0x9A31, 0xF55C, 0x9A32, 0xF55A, 0x9A34, 0xF55B, 0x9A35, 0xC4CD, + 0x9A36, 0xF55F, 0x9A37, 0xC4CC, 0x9A38, 0xF562, 0x9A39, 0xF678, + 0x9A3A, 0xF67E, 0x9A3D, 0xF679, 0x9A3E, 0xC55B, 0x9A3F, 0xF6A1, + 0x9A40, 0xC55A, 0x9A41, 0xF67D, 0x9A42, 0xF67C, 0x9A43, 0xC559, + 0x9A44, 0xF67B, 0x9A45, 0xC558, 0x9A46, 0xF67A, 0x9A48, 0xF77D, + 0x9A49, 0xF7A1, 0x9A4A, 0xF77E, 0x9A4C, 0xF77B, 0x9A4D, 0xC5BB, + 0x9A4E, 0xF778, 0x9A4F, 0xF77C, 0x9A50, 0xF7A3, 0x9A52, 0xF7A2, + 0x9A53, 0xF779, 0x9A54, 0xF77A, 0x9A55, 0xC5BA, 0x9A56, 0xF852, + 0x9A57, 0xC5E7, 0x9A59, 0xF853, 0x9A5A, 0xC5E5, 0x9A5B, 0xC5E6, + 0x9A5E, 0xF8D3, 0x9A5F, 0xC64A, 0x9A60, 0xF976, 0x9A62, 0xC66A, + 0x9A64, 0xF9B3, 0x9A65, 0xC66B, 0x9A66, 0xF9B4, 0x9A67, 0xF9B5, + 0x9A68, 0xF9C3, 0x9A69, 0xF9C2, 0x9A6A, 0xC67A, 0x9A6B, 0xF9CD, + 0x9AA8, 0xB0A9, 0x9AAB, 0xE0E9, 0x9AAD, 0xE0E8, 0x9AAF, 0xBBEA, + 0x9AB0, 0xBBEB, 0x9AB1, 0xE4DA, 0x9AB3, 0xE8D2, 0x9AB4, 0xEC6C, + 0x9AB7, 0xBE75, 0x9AB8, 0xC065, 0x9AB9, 0xEC6A, 0x9ABB, 0xEC6D, + 0x9ABC, 0xC066, 0x9ABE, 0xEF64, 0x9ABF, 0xEC6B, 0x9AC0, 0xF1B9, + 0x9AC1, 0xC34E, 0x9AC2, 0xF3C1, 0x9AC6, 0xF566, 0x9AC7, 0xF564, + 0x9ACA, 0xF565, 0x9ACD, 0xF6A2, 0x9ACF, 0xC55C, 0x9AD0, 0xF7A4, + 0x9AD1, 0xC5EA, 0x9AD2, 0xC5BC, 0x9AD3, 0xC5E8, 0x9AD4, 0xC5E9, + 0x9AD5, 0xF8D4, 0x9AD6, 0xC662, 0x9AD8, 0xB0AA, 0x9ADC, 0xF1BA, + 0x9ADF, 0xD449, 0x9AE1, 0xB9A6, 0x9AE3, 0xE4DB, 0x9AE6, 0xBBEC, + 0x9AE7, 0xE4DC, 0x9AEB, 0xE8D4, 0x9AEC, 0xE8D3, 0x9AED, 0xC068, + 0x9AEE, 0xBE76, 0x9AEF, 0xBE77, 0x9AF1, 0xE8D7, 0x9AF2, 0xE8D6, + 0x9AF3, 0xE8D5, 0x9AF6, 0xEC6E, 0x9AF7, 0xEC71, 0x9AF9, 0xEC70, + 0x9AFA, 0xEC6F, 0x9AFB, 0xC067, 0x9AFC, 0xEF68, 0x9AFD, 0xEF66, + 0x9AFE, 0xEF65, 0x9B01, 0xEF67, 0x9B03, 0xC34F, 0x9B04, 0xF1BC, + 0x9B05, 0xF1BD, 0x9B06, 0xC350, 0x9B08, 0xF1BB, 0x9B0A, 0xF3C3, + 0x9B0B, 0xF3C2, 0x9B0C, 0xF3C5, 0x9B0D, 0xC447, 0x9B0E, 0xF3C4, + 0x9B10, 0xF567, 0x9B11, 0xF569, 0x9B12, 0xF568, 0x9B15, 0xF6A3, + 0x9B16, 0xF6A6, 0x9B17, 0xF6A4, 0x9B18, 0xF6A5, 0x9B19, 0xF7A5, + 0x9B1A, 0xC5BD, 0x9B1E, 0xF854, 0x9B1F, 0xF855, 0x9B20, 0xF856, + 0x9B22, 0xC64B, 0x9B23, 0xC663, 0x9B24, 0xF9B6, 0x9B25, 0xB0AB, + 0x9B27, 0xBE78, 0x9B28, 0xC069, 0x9B29, 0xF1BE, 0x9B2B, 0xF7A6, + 0x9B2E, 0xF9C4, 0x9B2F, 0xD44A, 0x9B31, 0xC67B, 0x9B32, 0xB0AC, + 0x9B33, 0xEC72, 0x9B35, 0xF1BF, 0x9B37, 0xF3C6, 0x9B3A, 0xF6A7, + 0x9B3B, 0xF7A7, 0x9B3C, 0xB0AD, 0x9B3E, 0xE4DD, 0x9B3F, 0xE4DE, + 0x9B41, 0xBBED, 0x9B42, 0xBBEE, 0x9B43, 0xE8D9, 0x9B44, 0xBE7A, + 0x9B45, 0xBE79, 0x9B46, 0xE8D8, 0x9B48, 0xEF69, 0x9B4A, 0xF1C0, + 0x9B4B, 0xF1C2, 0x9B4C, 0xF1C1, 0x9B4D, 0xC353, 0x9B4E, 0xC352, + 0x9B4F, 0xC351, 0x9B51, 0xC55E, 0x9B52, 0xF6A8, 0x9B54, 0xC55D, + 0x9B55, 0xF7A9, 0x9B56, 0xF7A8, 0x9B58, 0xC64C, 0x9B59, 0xF8D5, + 0x9B5A, 0xB3BD, 0x9B5B, 0xE0EA, 0x9B5F, 0xE4E1, 0x9B60, 0xE4DF, + 0x9B61, 0xE4E0, 0x9B64, 0xE8E2, 0x9B66, 0xE8DD, 0x9B67, 0xE8DA, + 0x9B68, 0xE8E1, 0x9B6C, 0xE8E3, 0x9B6F, 0xBE7C, 0x9B70, 0xE8E0, + 0x9B71, 0xE8DC, 0x9B74, 0xE8DB, 0x9B75, 0xE8DF, 0x9B76, 0xE8DE, + 0x9B77, 0xBE7B, 0x9B7A, 0xEC7D, 0x9B7B, 0xEC78, 0x9B7C, 0xEC76, + 0x9B7D, 0xECA1, 0x9B7E, 0xEC77, 0x9B80, 0xEC73, 0x9B82, 0xEC79, + 0x9B85, 0xEC74, 0x9B86, 0xEF72, 0x9B87, 0xEC75, 0x9B88, 0xECA2, + 0x9B90, 0xEC7C, 0x9B91, 0xC06A, 0x9B92, 0xEC7B, 0x9B93, 0xEC7A, + 0x9B95, 0xEC7E, 0x9B9A, 0xEF6A, 0x9B9B, 0xEF6D, 0x9B9E, 0xEF6C, + 0x9BA0, 0xEF74, 0x9BA1, 0xEF6F, 0x9BA2, 0xEF73, 0x9BA4, 0xEF71, + 0x9BA5, 0xEF70, 0x9BA6, 0xEF6E, 0x9BA8, 0xEF6B, 0x9BAA, 0xC243, + 0x9BAB, 0xC242, 0x9BAD, 0xC244, 0x9BAE, 0xC241, 0x9BAF, 0xEF75, + 0x9BB5, 0xF1C8, 0x9BB6, 0xF1CB, 0x9BB8, 0xF1C9, 0x9BB9, 0xF1CD, + 0x9BBD, 0xF1CE, 0x9BBF, 0xF1C6, 0x9BC0, 0xC358, 0x9BC1, 0xF1C7, + 0x9BC3, 0xF1C5, 0x9BC4, 0xF1CC, 0x9BC6, 0xF1C4, 0x9BC7, 0xF1C3, + 0x9BC8, 0xC357, 0x9BC9, 0xC355, 0x9BCA, 0xC354, 0x9BD3, 0xF1CA, + 0x9BD4, 0xF3CF, 0x9BD5, 0xF3D5, 0x9BD6, 0xC44A, 0x9BD7, 0xF3D0, + 0x9BD9, 0xF3D3, 0x9BDA, 0xF3D7, 0x9BDB, 0xC44B, 0x9BDC, 0xF3D2, + 0x9BDE, 0xF3CA, 0x9BE0, 0xF3C9, 0x9BE1, 0xF3D6, 0x9BE2, 0xF3CD, + 0x9BE4, 0xF3CB, 0x9BE5, 0xF3D4, 0x9BE6, 0xF3CC, 0x9BE7, 0xC449, + 0x9BE8, 0xC448, 0x9BEA, 0xF3C7, 0x9BEB, 0xF3C8, 0x9BEC, 0xF3D1, + 0x9BF0, 0xF3CE, 0x9BF7, 0xF56C, 0x9BF8, 0xF56F, 0x9BFD, 0xC356, + 0x9C05, 0xF56D, 0x9C06, 0xF573, 0x9C07, 0xF571, 0x9C08, 0xF56B, + 0x9C09, 0xF576, 0x9C0B, 0xF56A, 0x9C0D, 0xC4CF, 0x9C0E, 0xF572, + 0x9C12, 0xF56E, 0x9C13, 0xC4CE, 0x9C14, 0xF575, 0x9C17, 0xF574, + 0x9C1C, 0xF6AB, 0x9C1D, 0xF6AA, 0x9C21, 0xF6B1, 0x9C23, 0xF6AD, + 0x9C24, 0xF6B0, 0x9C25, 0xC560, 0x9C28, 0xF6AE, 0x9C29, 0xF6AF, + 0x9C2B, 0xF6A9, 0x9C2C, 0xF6AC, 0x9C2D, 0xC55F, 0x9C31, 0xC5BF, + 0x9C32, 0xF7B4, 0x9C33, 0xF7AF, 0x9C34, 0xF7B3, 0x9C36, 0xF7B6, + 0x9C37, 0xF7B2, 0x9C39, 0xF7AE, 0x9C3B, 0xC5C1, 0x9C3C, 0xF7B1, + 0x9C3D, 0xF7B5, 0x9C3E, 0xC5C0, 0x9C3F, 0xF7AC, 0x9C40, 0xF570, + 0x9C41, 0xF7B0, 0x9C44, 0xF7AD, 0x9C46, 0xF7AA, 0x9C48, 0xF7AB, + 0x9C49, 0xC5BE, 0x9C4A, 0xF85A, 0x9C4B, 0xF85C, 0x9C4C, 0xF85F, + 0x9C4D, 0xF85B, 0x9C4E, 0xF860, 0x9C50, 0xF859, 0x9C52, 0xF857, + 0x9C54, 0xC5EB, 0x9C55, 0xF85D, 0x9C56, 0xC5ED, 0x9C57, 0xC5EC, + 0x9C58, 0xF858, 0x9C59, 0xF85E, 0x9C5E, 0xF8DA, 0x9C5F, 0xC64D, + 0x9C60, 0xF8DB, 0x9C62, 0xF8D9, 0x9C63, 0xF8D6, 0x9C66, 0xF8D8, + 0x9C67, 0xF8D7, 0x9C68, 0xF95A, 0x9C6D, 0xF95C, 0x9C6E, 0xF95B, + 0x9C71, 0xF979, 0x9C73, 0xF978, 0x9C74, 0xF977, 0x9C75, 0xF97A, + 0x9C77, 0xC673, 0x9C78, 0xC674, 0x9C79, 0xF9CA, 0x9C7A, 0xF9CE, + 0x9CE5, 0xB3BE, 0x9CE6, 0xDCAF, 0x9CE7, 0xE0ED, 0x9CE9, 0xB9A7, + 0x9CEA, 0xE0EB, 0x9CED, 0xE0EC, 0x9CF1, 0xE4E2, 0x9CF2, 0xE4E3, + 0x9CF3, 0xBBF1, 0x9CF4, 0xBBEF, 0x9CF5, 0xE4E4, 0x9CF6, 0xBBF0, + 0x9CF7, 0xE8E8, 0x9CF9, 0xE8EB, 0x9CFA, 0xE8E5, 0x9CFB, 0xE8EC, + 0x9CFC, 0xE8E4, 0x9CFD, 0xE8E6, 0x9CFF, 0xE8E7, 0x9D00, 0xE8EA, + 0x9D03, 0xBEA1, 0x9D04, 0xE8EF, 0x9D05, 0xE8EE, 0x9D06, 0xBE7D, + 0x9D07, 0xE8E9, 0x9D08, 0xE8ED, 0x9D09, 0xBE7E, 0x9D10, 0xECAC, + 0x9D12, 0xC06F, 0x9D14, 0xECA7, 0x9D15, 0xC06B, 0x9D17, 0xECA4, + 0x9D18, 0xECAA, 0x9D19, 0xECAD, 0x9D1B, 0xC070, 0x9D1D, 0xECA9, + 0x9D1E, 0xECA6, 0x9D1F, 0xECAE, 0x9D20, 0xECA5, 0x9D22, 0xECAB, + 0x9D23, 0xC06C, 0x9D25, 0xECA3, 0x9D26, 0xC06D, 0x9D28, 0xC06E, + 0x9D29, 0xECA8, 0x9D2D, 0xEFA9, 0x9D2E, 0xEF7A, 0x9D2F, 0xEF7B, + 0x9D30, 0xEF7E, 0x9D31, 0xEF7C, 0x9D33, 0xEF76, 0x9D36, 0xEF79, + 0x9D37, 0xEFA5, 0x9D38, 0xEF7D, 0x9D3B, 0xC245, 0x9D3D, 0xEFA7, + 0x9D3E, 0xEFA4, 0x9D3F, 0xC246, 0x9D40, 0xEFA6, 0x9D41, 0xEF77, + 0x9D42, 0xEFA2, 0x9D43, 0xEFA3, 0x9D45, 0xEFA1, 0x9D4A, 0xF1D2, + 0x9D4B, 0xF1D4, 0x9D4C, 0xF1D7, 0x9D4F, 0xF1D1, 0x9D51, 0xC359, + 0x9D52, 0xF1D9, 0x9D53, 0xF1D0, 0x9D54, 0xF1DA, 0x9D56, 0xF1D6, + 0x9D57, 0xF1D8, 0x9D58, 0xF1DC, 0x9D59, 0xF1D5, 0x9D5A, 0xF1DD, + 0x9D5B, 0xF1D3, 0x9D5C, 0xF1CF, 0x9D5D, 0xC35A, 0x9D5F, 0xF1DB, + 0x9D60, 0xC35B, 0x9D61, 0xC44D, 0x9D67, 0xEF78, 0x9D68, 0xF3F1, + 0x9D69, 0xF3E8, 0x9D6A, 0xC44F, 0x9D6B, 0xF3E4, 0x9D6C, 0xC450, + 0x9D6F, 0xF3ED, 0x9D70, 0xF3E7, 0x9D71, 0xF3DD, 0x9D72, 0xC44E, + 0x9D73, 0xF3EA, 0x9D74, 0xF3E5, 0x9D75, 0xF3E6, 0x9D77, 0xF3D8, + 0x9D78, 0xF3DF, 0x9D79, 0xF3EE, 0x9D7B, 0xF3EB, 0x9D7D, 0xF3E3, + 0x9D7F, 0xF3EF, 0x9D80, 0xF3DE, 0x9D81, 0xF3D9, 0x9D82, 0xF3EC, + 0x9D84, 0xF3DB, 0x9D85, 0xF3E9, 0x9D86, 0xF3E0, 0x9D87, 0xF3F0, + 0x9D88, 0xF3DC, 0x9D89, 0xC44C, 0x9D8A, 0xF3DA, 0x9D8B, 0xF3E1, + 0x9D8C, 0xF3E2, 0x9D90, 0xF57D, 0x9D92, 0xF57B, 0x9D94, 0xF5A2, + 0x9D96, 0xF5AE, 0x9D97, 0xF5A5, 0x9D98, 0xF57C, 0x9D99, 0xF578, + 0x9D9A, 0xF5A7, 0x9D9B, 0xF57E, 0x9D9C, 0xF5A3, 0x9D9D, 0xF57A, + 0x9D9E, 0xF5AA, 0x9D9F, 0xF577, 0x9DA0, 0xF5A1, 0x9DA1, 0xF5A6, + 0x9DA2, 0xF5A8, 0x9DA3, 0xF5AB, 0x9DA4, 0xF579, 0x9DA6, 0xF5AF, + 0x9DA7, 0xF5B0, 0x9DA8, 0xF5A9, 0x9DA9, 0xF5AD, 0x9DAA, 0xF5A4, + 0x9DAC, 0xF6C1, 0x9DAD, 0xF6C4, 0x9DAF, 0xC561, 0x9DB1, 0xF6C3, + 0x9DB2, 0xF6C8, 0x9DB3, 0xF6C6, 0x9DB4, 0xC562, 0x9DB5, 0xF6BD, + 0x9DB6, 0xF6B3, 0x9DB7, 0xF6B2, 0x9DB8, 0xC564, 0x9DB9, 0xF6BF, + 0x9DBA, 0xF6C0, 0x9DBB, 0xF6BC, 0x9DBC, 0xF6B4, 0x9DBE, 0xF6B9, + 0x9DBF, 0xF5AC, 0x9DC1, 0xF6B5, 0x9DC2, 0xC563, 0x9DC3, 0xF6BB, + 0x9DC5, 0xF6BA, 0x9DC7, 0xF6B6, 0x9DC8, 0xF6C2, 0x9DCA, 0xF6B7, + 0x9DCB, 0xF7BB, 0x9DCC, 0xF6C5, 0x9DCD, 0xF6C7, 0x9DCE, 0xF6BE, + 0x9DCF, 0xF6B8, 0x9DD0, 0xF7BC, 0x9DD1, 0xF7BE, 0x9DD2, 0xF7B8, + 0x9DD3, 0xC5C2, 0x9DD5, 0xF7C5, 0x9DD6, 0xF7C3, 0x9DD7, 0xC5C3, + 0x9DD8, 0xF7C2, 0x9DD9, 0xF7C1, 0x9DDA, 0xF7BA, 0x9DDB, 0xF7B7, + 0x9DDC, 0xF7BD, 0x9DDD, 0xF7C6, 0x9DDE, 0xF7B9, 0x9DDF, 0xF7BF, + 0x9DE1, 0xF869, 0x9DE2, 0xF86E, 0x9DE3, 0xF864, 0x9DE4, 0xF867, + 0x9DE5, 0xC5EE, 0x9DE6, 0xF86B, 0x9DE8, 0xF872, 0x9DE9, 0xF7C0, + 0x9DEB, 0xF865, 0x9DEC, 0xF86F, 0x9DED, 0xF873, 0x9DEE, 0xF86A, + 0x9DEF, 0xF863, 0x9DF0, 0xF86D, 0x9DF2, 0xF86C, 0x9DF3, 0xF871, + 0x9DF4, 0xF870, 0x9DF5, 0xF7C4, 0x9DF6, 0xF868, 0x9DF7, 0xF862, + 0x9DF8, 0xF866, 0x9DF9, 0xC64E, 0x9DFA, 0xC64F, 0x9DFB, 0xF861, + 0x9DFD, 0xF8E6, 0x9DFE, 0xF8DD, 0x9DFF, 0xF8E5, 0x9E00, 0xF8E2, + 0x9E01, 0xF8E3, 0x9E02, 0xF8DC, 0x9E03, 0xF8DF, 0x9E04, 0xF8E7, + 0x9E05, 0xF8E1, 0x9E06, 0xF8E0, 0x9E07, 0xF8DE, 0x9E09, 0xF8E4, + 0x9E0B, 0xF95D, 0x9E0D, 0xF95E, 0x9E0F, 0xF960, 0x9E10, 0xF95F, + 0x9E11, 0xF962, 0x9E12, 0xF961, 0x9E13, 0xF97C, 0x9E14, 0xF97B, + 0x9E15, 0xF9B7, 0x9E17, 0xF9B8, 0x9E19, 0xF9C5, 0x9E1A, 0xC678, + 0x9E1B, 0xC67C, 0x9E1D, 0xF9CF, 0x9E1E, 0xC67D, 0x9E75, 0xB3BF, + 0x9E79, 0xC4D0, 0x9E7A, 0xF6C9, 0x9E7C, 0xC650, 0x9E7D, 0xC651, + 0x9E7F, 0xB3C0, 0x9E80, 0xE0EE, 0x9E82, 0xB9A8, 0x9E83, 0xE8F0, + 0x9E86, 0xECB0, 0x9E87, 0xECB1, 0x9E88, 0xECAF, 0x9E89, 0xEFAB, + 0x9E8A, 0xEFAA, 0x9E8B, 0xC247, 0x9E8C, 0xF1DF, 0x9E8D, 0xEFAC, + 0x9E8E, 0xF1DE, 0x9E91, 0xF3F3, 0x9E92, 0xC451, 0x9E93, 0xC453, + 0x9E94, 0xF3F2, 0x9E97, 0xC452, 0x9E99, 0xF5B1, 0x9E9A, 0xF5B3, + 0x9E9B, 0xF5B2, 0x9E9C, 0xF6CA, 0x9E9D, 0xC565, 0x9E9F, 0xC5EF, + 0x9EA0, 0xF8E8, 0x9EA1, 0xF963, 0x9EA4, 0xF9D2, 0x9EA5, 0xB3C1, + 0x9EA7, 0xE4E5, 0x9EA9, 0xBEA2, 0x9EAD, 0xECB3, 0x9EAE, 0xECB2, + 0x9EB0, 0xEFAD, 0x9EB4, 0xC454, 0x9EB5, 0xC4D1, 0x9EB6, 0xF7C7, + 0x9EB7, 0xF9CB, 0x9EBB, 0xB3C2, 0x9EBC, 0xBBF2, 0x9EBE, 0xBEA3, + 0x9EC0, 0xF3F4, 0x9EC2, 0xF874, 0x9EC3, 0xB6C0, 0x9EC8, 0xEFAE, + 0x9ECC, 0xC664, 0x9ECD, 0xB6C1, 0x9ECE, 0xBEA4, 0x9ECF, 0xC248, + 0x9ED0, 0xF875, 0x9ED1, 0xB6C2, 0x9ED3, 0xE8F1, 0x9ED4, 0xC072, + 0x9ED5, 0xECB4, 0x9ED6, 0xECB5, 0x9ED8, 0xC071, 0x9EDA, 0xEFAF, + 0x9EDB, 0xC24C, 0x9EDC, 0xC24A, 0x9EDD, 0xC24B, 0x9EDE, 0xC249, + 0x9EDF, 0xF1E0, 0x9EE0, 0xC35C, 0x9EE4, 0xF5B5, 0x9EE5, 0xF5B4, + 0x9EE6, 0xF5B7, 0x9EE7, 0xF5B6, 0x9EE8, 0xC4D2, 0x9EEB, 0xF6CB, + 0x9EED, 0xF6CD, 0x9EEE, 0xF6CC, 0x9EEF, 0xC566, 0x9EF0, 0xF7C8, + 0x9EF2, 0xF876, 0x9EF3, 0xF877, 0x9EF4, 0xC5F0, 0x9EF5, 0xF964, + 0x9EF6, 0xF97D, 0x9EF7, 0xC675, 0x9EF9, 0xDCB0, 0x9EFA, 0xECB6, + 0x9EFB, 0xEFB0, 0x9EFC, 0xF3F5, 0x9EFD, 0xE0EF, 0x9EFF, 0xEFB1, + 0x9F00, 0xF1E2, 0x9F01, 0xF1E1, 0x9F06, 0xF878, 0x9F07, 0xC652, + 0x9F09, 0xF965, 0x9F0A, 0xF97E, 0x9F0E, 0xB9A9, 0x9F0F, 0xE8F2, + 0x9F10, 0xE8F3, 0x9F12, 0xECB7, 0x9F13, 0xB9AA, 0x9F15, 0xC35D, + 0x9F16, 0xF1E3, 0x9F18, 0xF6CF, 0x9F19, 0xC567, 0x9F1A, 0xF6D0, + 0x9F1B, 0xF6CE, 0x9F1C, 0xF879, 0x9F1E, 0xF8E9, 0x9F20, 0xB9AB, + 0x9F22, 0xEFB4, 0x9F23, 0xEFB3, 0x9F24, 0xEFB2, 0x9F25, 0xF1E4, + 0x9F28, 0xF1E8, 0x9F29, 0xF1E7, 0x9F2A, 0xF1E6, 0x9F2B, 0xF1E5, + 0x9F2C, 0xC35E, 0x9F2D, 0xF3F6, 0x9F2E, 0xF5B9, 0x9F2F, 0xC4D3, + 0x9F30, 0xF5B8, 0x9F31, 0xF6D1, 0x9F32, 0xF7CB, 0x9F33, 0xF7CA, + 0x9F34, 0xC5C4, 0x9F35, 0xF7C9, 0x9F36, 0xF87C, 0x9F37, 0xF87B, + 0x9F38, 0xF87A, 0x9F3B, 0xBBF3, 0x9F3D, 0xECB8, 0x9F3E, 0xC24D, + 0x9F40, 0xF3F7, 0x9F41, 0xF3F8, 0x9F42, 0xF7CC, 0x9F43, 0xF87D, + 0x9F46, 0xF8EA, 0x9F47, 0xF966, 0x9F48, 0xF9B9, 0x9F49, 0xF9D4, + 0x9F4A, 0xBBF4, 0x9F4B, 0xC24E, 0x9F4C, 0xF1E9, 0x9F4D, 0xF3F9, + 0x9F4E, 0xF6D2, 0x9F4F, 0xF87E, 0x9F52, 0xBEA6, 0x9F54, 0xEFB5, + 0x9F55, 0xF1EA, 0x9F56, 0xF3FA, 0x9F57, 0xF3FB, 0x9F58, 0xF3FC, + 0x9F59, 0xF5BE, 0x9F5B, 0xF5BA, 0x9F5C, 0xC568, 0x9F5D, 0xF5BD, + 0x9F5E, 0xF5BC, 0x9F5F, 0xC4D4, 0x9F60, 0xF5BB, 0x9F61, 0xC4D6, + 0x9F63, 0xC4D5, 0x9F64, 0xF6D4, 0x9F65, 0xF6D3, 0x9F66, 0xC569, + 0x9F67, 0xC56A, 0x9F6A, 0xC5C6, 0x9F6B, 0xF7CD, 0x9F6C, 0xC5C5, + 0x9F6E, 0xF8A3, 0x9F6F, 0xF8A4, 0x9F70, 0xF8A2, 0x9F71, 0xF8A1, + 0x9F72, 0xC654, 0x9F74, 0xF8EB, 0x9F75, 0xF8EC, 0x9F76, 0xF8ED, + 0x9F77, 0xC653, 0x9F78, 0xF967, 0x9F79, 0xF96A, 0x9F7A, 0xF969, + 0x9F7B, 0xF968, 0x9F7E, 0xF9D3, 0x9F8D, 0xC073, 0x9F90, 0xC365, + 0x9F91, 0xF5BF, 0x9F92, 0xF6D5, 0x9F94, 0xC5C7, 0x9F95, 0xF7CE, + 0x9F98, 0xF9D5, 0x9F9C, 0xC074, 0x9FA0, 0xEFB6, 0x9FA2, 0xF7CF, + 0x9FA4, 0xF9A1, 0xFA0C, 0xC94A, 0xFA0D, 0xDDFC, 0xFE30, 0xA14A, + 0xFE31, 0xA157, 0xFE33, 0xA159, 0xFE34, 0xA15B, 0xFE35, 0xA15F, + 0xFE36, 0xA160, 0xFE37, 0xA163, 0xFE38, 0xA164, 0xFE39, 0xA167, + 0xFE3A, 0xA168, 0xFE3B, 0xA16B, 0xFE3C, 0xA16C, 0xFE3D, 0xA16F, + 0xFE3E, 0xA170, 0xFE3F, 0xA173, 0xFE40, 0xA174, 0xFE41, 0xA177, + 0xFE42, 0xA178, 0xFE43, 0xA17B, 0xFE44, 0xA17C, 0xFE49, 0xA1C6, + 0xFE4A, 0xA1C7, 0xFE4B, 0xA1CA, 0xFE4C, 0xA1CB, 0xFE4D, 0xA1C8, + 0xFE4E, 0xA1C9, 0xFE4F, 0xA15C, 0xFE50, 0xA14D, 0xFE51, 0xA14E, + 0xFE52, 0xA14F, 0xFE54, 0xA151, 0xFE55, 0xA152, 0xFE56, 0xA153, + 0xFE57, 0xA154, 0xFE59, 0xA17D, 0xFE5A, 0xA17E, 0xFE5B, 0xA1A1, + 0xFE5C, 0xA1A2, 0xFE5D, 0xA1A3, 0xFE5E, 0xA1A4, 0xFE5F, 0xA1CC, + 0xFE60, 0xA1CD, 0xFE61, 0xA1CE, 0xFE62, 0xA1DE, 0xFE63, 0xA1DF, + 0xFE64, 0xA1E0, 0xFE65, 0xA1E1, 0xFE66, 0xA1E2, 0xFE68, 0xA242, + 0xFE69, 0xA24C, 0xFE6A, 0xA24D, 0xFE6B, 0xA24E, 0xFF01, 0xA149, + 0xFF03, 0xA1AD, 0xFF04, 0xA243, 0xFF05, 0xA248, 0xFF06, 0xA1AE, + 0xFF08, 0xA15D, 0xFF09, 0xA15E, 0xFF0A, 0xA1AF, 0xFF0B, 0xA1CF, + 0xFF0C, 0xA141, 0xFF0D, 0xA1D0, 0xFF0E, 0xA144, 0xFF0F, 0xA1FE, + 0xFF10, 0xA2AF, 0xFF11, 0xA2B0, 0xFF12, 0xA2B1, 0xFF13, 0xA2B2, + 0xFF14, 0xA2B3, 0xFF15, 0xA2B4, 0xFF16, 0xA2B5, 0xFF17, 0xA2B6, + 0xFF18, 0xA2B7, 0xFF19, 0xA2B8, 0xFF1A, 0xA147, 0xFF1B, 0xA146, + 0xFF1C, 0xA1D5, 0xFF1D, 0xA1D7, 0xFF1E, 0xA1D6, 0xFF1F, 0xA148, + 0xFF20, 0xA249, 0xFF21, 0xA2CF, 0xFF22, 0xA2D0, 0xFF23, 0xA2D1, + 0xFF24, 0xA2D2, 0xFF25, 0xA2D3, 0xFF26, 0xA2D4, 0xFF27, 0xA2D5, + 0xFF28, 0xA2D6, 0xFF29, 0xA2D7, 0xFF2A, 0xA2D8, 0xFF2B, 0xA2D9, + 0xFF2C, 0xA2DA, 0xFF2D, 0xA2DB, 0xFF2E, 0xA2DC, 0xFF2F, 0xA2DD, + 0xFF30, 0xA2DE, 0xFF31, 0xA2DF, 0xFF32, 0xA2E0, 0xFF33, 0xA2E1, + 0xFF34, 0xA2E2, 0xFF35, 0xA2E3, 0xFF36, 0xA2E4, 0xFF37, 0xA2E5, + 0xFF38, 0xA2E6, 0xFF39, 0xA2E7, 0xFF3A, 0xA2E8, 0xFF3C, 0xA240, + 0xFF3F, 0xA1C4, 0xFF41, 0xA2E9, 0xFF42, 0xA2EA, 0xFF43, 0xA2EB, + 0xFF44, 0xA2EC, 0xFF45, 0xA2ED, 0xFF46, 0xA2EE, 0xFF47, 0xA2EF, + 0xFF48, 0xA2F0, 0xFF49, 0xA2F1, 0xFF4A, 0xA2F2, 0xFF4B, 0xA2F3, + 0xFF4C, 0xA2F4, 0xFF4D, 0xA2F5, 0xFF4E, 0xA2F6, 0xFF4F, 0xA2F7, + 0xFF50, 0xA2F8, 0xFF51, 0xA2F9, 0xFF52, 0xA2FA, 0xFF53, 0xA2FB, + 0xFF54, 0xA2FC, 0xFF55, 0xA2FD, 0xFF56, 0xA2FE, 0xFF57, 0xA340, + 0xFF58, 0xA341, 0xFF59, 0xA342, 0xFF5A, 0xA343, 0xFF5B, 0xA161, + 0xFF5C, 0xA155, 0xFF5D, 0xA162, 0xFF5E, 0xA1E3, 0xFFE0, 0xA246, + 0xFFE1, 0xA247, 0xFFE3, 0xA1C3, 0xFFE5, 0xA244, 0, 0 +}; + +static +const WCHAR oem2uni[] = { +/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ + 0xA140, 0x3000, 0xA141, 0xFF0C, 0xA142, 0x3001, 0xA143, 0x3002, + 0xA144, 0xFF0E, 0xA145, 0x2027, 0xA146, 0xFF1B, 0xA147, 0xFF1A, + 0xA148, 0xFF1F, 0xA149, 0xFF01, 0xA14A, 0xFE30, 0xA14B, 0x2026, + 0xA14C, 0x2025, 0xA14D, 0xFE50, 0xA14E, 0xFE51, 0xA14F, 0xFE52, + 0xA150, 0x00B7, 0xA151, 0xFE54, 0xA152, 0xFE55, 0xA153, 0xFE56, + 0xA154, 0xFE57, 0xA155, 0xFF5C, 0xA156, 0x2013, 0xA157, 0xFE31, + 0xA158, 0x2014, 0xA159, 0xFE33, 0xA15A, 0x2574, 0xA15B, 0xFE34, + 0xA15C, 0xFE4F, 0xA15D, 0xFF08, 0xA15E, 0xFF09, 0xA15F, 0xFE35, + 0xA160, 0xFE36, 0xA161, 0xFF5B, 0xA162, 0xFF5D, 0xA163, 0xFE37, + 0xA164, 0xFE38, 0xA165, 0x3014, 0xA166, 0x3015, 0xA167, 0xFE39, + 0xA168, 0xFE3A, 0xA169, 0x3010, 0xA16A, 0x3011, 0xA16B, 0xFE3B, + 0xA16C, 0xFE3C, 0xA16D, 0x300A, 0xA16E, 0x300B, 0xA16F, 0xFE3D, + 0xA170, 0xFE3E, 0xA171, 0x3008, 0xA172, 0x3009, 0xA173, 0xFE3F, + 0xA174, 0xFE40, 0xA175, 0x300C, 0xA176, 0x300D, 0xA177, 0xFE41, + 0xA178, 0xFE42, 0xA179, 0x300E, 0xA17A, 0x300F, 0xA17B, 0xFE43, + 0xA17C, 0xFE44, 0xA17D, 0xFE59, 0xA17E, 0xFE5A, 0xA1A1, 0xFE5B, + 0xA1A2, 0xFE5C, 0xA1A3, 0xFE5D, 0xA1A4, 0xFE5E, 0xA1A5, 0x2018, + 0xA1A6, 0x2019, 0xA1A7, 0x201C, 0xA1A8, 0x201D, 0xA1A9, 0x301D, + 0xA1AA, 0x301E, 0xA1AB, 0x2035, 0xA1AC, 0x2032, 0xA1AD, 0xFF03, + 0xA1AE, 0xFF06, 0xA1AF, 0xFF0A, 0xA1B0, 0x203B, 0xA1B1, 0x00A7, + 0xA1B2, 0x3003, 0xA1B3, 0x25CB, 0xA1B4, 0x25CF, 0xA1B5, 0x25B3, + 0xA1B6, 0x25B2, 0xA1B7, 0x25CE, 0xA1B8, 0x2606, 0xA1B9, 0x2605, + 0xA1BA, 0x25C7, 0xA1BB, 0x25C6, 0xA1BC, 0x25A1, 0xA1BD, 0x25A0, + 0xA1BE, 0x25BD, 0xA1BF, 0x25BC, 0xA1C0, 0x32A3, 0xA1C1, 0x2105, + 0xA1C2, 0x00AF, 0xA1C3, 0xFFE3, 0xA1C4, 0xFF3F, 0xA1C5, 0x02CD, + 0xA1C6, 0xFE49, 0xA1C7, 0xFE4A, 0xA1C8, 0xFE4D, 0xA1C9, 0xFE4E, + 0xA1CA, 0xFE4B, 0xA1CB, 0xFE4C, 0xA1CC, 0xFE5F, 0xA1CD, 0xFE60, + 0xA1CE, 0xFE61, 0xA1CF, 0xFF0B, 0xA1D0, 0xFF0D, 0xA1D1, 0x00D7, + 0xA1D2, 0x00F7, 0xA1D3, 0x00B1, 0xA1D4, 0x221A, 0xA1D5, 0xFF1C, + 0xA1D6, 0xFF1E, 0xA1D7, 0xFF1D, 0xA1D8, 0x2266, 0xA1D9, 0x2267, + 0xA1DA, 0x2260, 0xA1DB, 0x221E, 0xA1DC, 0x2252, 0xA1DD, 0x2261, + 0xA1DE, 0xFE62, 0xA1DF, 0xFE63, 0xA1E0, 0xFE64, 0xA1E1, 0xFE65, + 0xA1E2, 0xFE66, 0xA1E3, 0xFF5E, 0xA1E4, 0x2229, 0xA1E5, 0x222A, + 0xA1E6, 0x22A5, 0xA1E7, 0x2220, 0xA1E8, 0x221F, 0xA1E9, 0x22BF, + 0xA1EA, 0x33D2, 0xA1EB, 0x33D1, 0xA1EC, 0x222B, 0xA1ED, 0x222E, + 0xA1EE, 0x2235, 0xA1EF, 0x2234, 0xA1F0, 0x2640, 0xA1F1, 0x2642, + 0xA1F2, 0x2295, 0xA1F3, 0x2299, 0xA1F4, 0x2191, 0xA1F5, 0x2193, + 0xA1F6, 0x2190, 0xA1F7, 0x2192, 0xA1F8, 0x2196, 0xA1F9, 0x2197, + 0xA1FA, 0x2199, 0xA1FB, 0x2198, 0xA1FC, 0x2225, 0xA1FD, 0x2223, + 0xA1FE, 0xFF0F, 0xA240, 0xFF3C, 0xA241, 0x2215, 0xA242, 0xFE68, + 0xA243, 0xFF04, 0xA244, 0xFFE5, 0xA245, 0x3012, 0xA246, 0xFFE0, + 0xA247, 0xFFE1, 0xA248, 0xFF05, 0xA249, 0xFF20, 0xA24A, 0x2103, + 0xA24B, 0x2109, 0xA24C, 0xFE69, 0xA24D, 0xFE6A, 0xA24E, 0xFE6B, + 0xA24F, 0x33D5, 0xA250, 0x339C, 0xA251, 0x339D, 0xA252, 0x339E, + 0xA253, 0x33CE, 0xA254, 0x33A1, 0xA255, 0x338E, 0xA256, 0x338F, + 0xA257, 0x33C4, 0xA258, 0x00B0, 0xA259, 0x5159, 0xA25A, 0x515B, + 0xA25B, 0x515E, 0xA25C, 0x515D, 0xA25D, 0x5161, 0xA25E, 0x5163, + 0xA25F, 0x55E7, 0xA260, 0x74E9, 0xA261, 0x7CCE, 0xA262, 0x2581, + 0xA263, 0x2582, 0xA264, 0x2583, 0xA265, 0x2584, 0xA266, 0x2585, + 0xA267, 0x2586, 0xA268, 0x2587, 0xA269, 0x2588, 0xA26A, 0x258F, + 0xA26B, 0x258E, 0xA26C, 0x258D, 0xA26D, 0x258C, 0xA26E, 0x258B, + 0xA26F, 0x258A, 0xA270, 0x2589, 0xA271, 0x253C, 0xA272, 0x2534, + 0xA273, 0x252C, 0xA274, 0x2524, 0xA275, 0x251C, 0xA276, 0x2594, + 0xA277, 0x2500, 0xA278, 0x2502, 0xA279, 0x2595, 0xA27A, 0x250C, + 0xA27B, 0x2510, 0xA27C, 0x2514, 0xA27D, 0x2518, 0xA27E, 0x256D, + 0xA2A1, 0x256E, 0xA2A2, 0x2570, 0xA2A3, 0x256F, 0xA2A4, 0x2550, + 0xA2A5, 0x255E, 0xA2A6, 0x256A, 0xA2A7, 0x2561, 0xA2A8, 0x25E2, + 0xA2A9, 0x25E3, 0xA2AA, 0x25E5, 0xA2AB, 0x25E4, 0xA2AC, 0x2571, + 0xA2AD, 0x2572, 0xA2AE, 0x2573, 0xA2AF, 0xFF10, 0xA2B0, 0xFF11, + 0xA2B1, 0xFF12, 0xA2B2, 0xFF13, 0xA2B3, 0xFF14, 0xA2B4, 0xFF15, + 0xA2B5, 0xFF16, 0xA2B6, 0xFF17, 0xA2B7, 0xFF18, 0xA2B8, 0xFF19, + 0xA2B9, 0x2160, 0xA2BA, 0x2161, 0xA2BB, 0x2162, 0xA2BC, 0x2163, + 0xA2BD, 0x2164, 0xA2BE, 0x2165, 0xA2BF, 0x2166, 0xA2C0, 0x2167, + 0xA2C1, 0x2168, 0xA2C2, 0x2169, 0xA2C3, 0x3021, 0xA2C4, 0x3022, + 0xA2C5, 0x3023, 0xA2C6, 0x3024, 0xA2C7, 0x3025, 0xA2C8, 0x3026, + 0xA2C9, 0x3027, 0xA2CA, 0x3028, 0xA2CB, 0x3029, 0xA2CC, 0x5341, + 0xA2CD, 0x5344, 0xA2CE, 0x5345, 0xA2CF, 0xFF21, 0xA2D0, 0xFF22, + 0xA2D1, 0xFF23, 0xA2D2, 0xFF24, 0xA2D3, 0xFF25, 0xA2D4, 0xFF26, + 0xA2D5, 0xFF27, 0xA2D6, 0xFF28, 0xA2D7, 0xFF29, 0xA2D8, 0xFF2A, + 0xA2D9, 0xFF2B, 0xA2DA, 0xFF2C, 0xA2DB, 0xFF2D, 0xA2DC, 0xFF2E, + 0xA2DD, 0xFF2F, 0xA2DE, 0xFF30, 0xA2DF, 0xFF31, 0xA2E0, 0xFF32, + 0xA2E1, 0xFF33, 0xA2E2, 0xFF34, 0xA2E3, 0xFF35, 0xA2E4, 0xFF36, + 0xA2E5, 0xFF37, 0xA2E6, 0xFF38, 0xA2E7, 0xFF39, 0xA2E8, 0xFF3A, + 0xA2E9, 0xFF41, 0xA2EA, 0xFF42, 0xA2EB, 0xFF43, 0xA2EC, 0xFF44, + 0xA2ED, 0xFF45, 0xA2EE, 0xFF46, 0xA2EF, 0xFF47, 0xA2F0, 0xFF48, + 0xA2F1, 0xFF49, 0xA2F2, 0xFF4A, 0xA2F3, 0xFF4B, 0xA2F4, 0xFF4C, + 0xA2F5, 0xFF4D, 0xA2F6, 0xFF4E, 0xA2F7, 0xFF4F, 0xA2F8, 0xFF50, + 0xA2F9, 0xFF51, 0xA2FA, 0xFF52, 0xA2FB, 0xFF53, 0xA2FC, 0xFF54, + 0xA2FD, 0xFF55, 0xA2FE, 0xFF56, 0xA340, 0xFF57, 0xA341, 0xFF58, + 0xA342, 0xFF59, 0xA343, 0xFF5A, 0xA344, 0x0391, 0xA345, 0x0392, + 0xA346, 0x0393, 0xA347, 0x0394, 0xA348, 0x0395, 0xA349, 0x0396, + 0xA34A, 0x0397, 0xA34B, 0x0398, 0xA34C, 0x0399, 0xA34D, 0x039A, + 0xA34E, 0x039B, 0xA34F, 0x039C, 0xA350, 0x039D, 0xA351, 0x039E, + 0xA352, 0x039F, 0xA353, 0x03A0, 0xA354, 0x03A1, 0xA355, 0x03A3, + 0xA356, 0x03A4, 0xA357, 0x03A5, 0xA358, 0x03A6, 0xA359, 0x03A7, + 0xA35A, 0x03A8, 0xA35B, 0x03A9, 0xA35C, 0x03B1, 0xA35D, 0x03B2, + 0xA35E, 0x03B3, 0xA35F, 0x03B4, 0xA360, 0x03B5, 0xA361, 0x03B6, + 0xA362, 0x03B7, 0xA363, 0x03B8, 0xA364, 0x03B9, 0xA365, 0x03BA, + 0xA366, 0x03BB, 0xA367, 0x03BC, 0xA368, 0x03BD, 0xA369, 0x03BE, + 0xA36A, 0x03BF, 0xA36B, 0x03C0, 0xA36C, 0x03C1, 0xA36D, 0x03C3, + 0xA36E, 0x03C4, 0xA36F, 0x03C5, 0xA370, 0x03C6, 0xA371, 0x03C7, + 0xA372, 0x03C8, 0xA373, 0x03C9, 0xA374, 0x3105, 0xA375, 0x3106, + 0xA376, 0x3107, 0xA377, 0x3108, 0xA378, 0x3109, 0xA379, 0x310A, + 0xA37A, 0x310B, 0xA37B, 0x310C, 0xA37C, 0x310D, 0xA37D, 0x310E, + 0xA37E, 0x310F, 0xA3A1, 0x3110, 0xA3A2, 0x3111, 0xA3A3, 0x3112, + 0xA3A4, 0x3113, 0xA3A5, 0x3114, 0xA3A6, 0x3115, 0xA3A7, 0x3116, + 0xA3A8, 0x3117, 0xA3A9, 0x3118, 0xA3AA, 0x3119, 0xA3AB, 0x311A, + 0xA3AC, 0x311B, 0xA3AD, 0x311C, 0xA3AE, 0x311D, 0xA3AF, 0x311E, + 0xA3B0, 0x311F, 0xA3B1, 0x3120, 0xA3B2, 0x3121, 0xA3B3, 0x3122, + 0xA3B4, 0x3123, 0xA3B5, 0x3124, 0xA3B6, 0x3125, 0xA3B7, 0x3126, + 0xA3B8, 0x3127, 0xA3B9, 0x3128, 0xA3BA, 0x3129, 0xA3BB, 0x02D9, + 0xA3BC, 0x02C9, 0xA3BD, 0x02CA, 0xA3BE, 0x02C7, 0xA3BF, 0x02CB, + 0xA3E1, 0x20AC, 0xA440, 0x4E00, 0xA441, 0x4E59, 0xA442, 0x4E01, + 0xA443, 0x4E03, 0xA444, 0x4E43, 0xA445, 0x4E5D, 0xA446, 0x4E86, + 0xA447, 0x4E8C, 0xA448, 0x4EBA, 0xA449, 0x513F, 0xA44A, 0x5165, + 0xA44B, 0x516B, 0xA44C, 0x51E0, 0xA44D, 0x5200, 0xA44E, 0x5201, + 0xA44F, 0x529B, 0xA450, 0x5315, 0xA451, 0x5341, 0xA452, 0x535C, + 0xA453, 0x53C8, 0xA454, 0x4E09, 0xA455, 0x4E0B, 0xA456, 0x4E08, + 0xA457, 0x4E0A, 0xA458, 0x4E2B, 0xA459, 0x4E38, 0xA45A, 0x51E1, + 0xA45B, 0x4E45, 0xA45C, 0x4E48, 0xA45D, 0x4E5F, 0xA45E, 0x4E5E, + 0xA45F, 0x4E8E, 0xA460, 0x4EA1, 0xA461, 0x5140, 0xA462, 0x5203, + 0xA463, 0x52FA, 0xA464, 0x5343, 0xA465, 0x53C9, 0xA466, 0x53E3, + 0xA467, 0x571F, 0xA468, 0x58EB, 0xA469, 0x5915, 0xA46A, 0x5927, + 0xA46B, 0x5973, 0xA46C, 0x5B50, 0xA46D, 0x5B51, 0xA46E, 0x5B53, + 0xA46F, 0x5BF8, 0xA470, 0x5C0F, 0xA471, 0x5C22, 0xA472, 0x5C38, + 0xA473, 0x5C71, 0xA474, 0x5DDD, 0xA475, 0x5DE5, 0xA476, 0x5DF1, + 0xA477, 0x5DF2, 0xA478, 0x5DF3, 0xA479, 0x5DFE, 0xA47A, 0x5E72, + 0xA47B, 0x5EFE, 0xA47C, 0x5F0B, 0xA47D, 0x5F13, 0xA47E, 0x624D, + 0xA4A1, 0x4E11, 0xA4A2, 0x4E10, 0xA4A3, 0x4E0D, 0xA4A4, 0x4E2D, + 0xA4A5, 0x4E30, 0xA4A6, 0x4E39, 0xA4A7, 0x4E4B, 0xA4A8, 0x5C39, + 0xA4A9, 0x4E88, 0xA4AA, 0x4E91, 0xA4AB, 0x4E95, 0xA4AC, 0x4E92, + 0xA4AD, 0x4E94, 0xA4AE, 0x4EA2, 0xA4AF, 0x4EC1, 0xA4B0, 0x4EC0, + 0xA4B1, 0x4EC3, 0xA4B2, 0x4EC6, 0xA4B3, 0x4EC7, 0xA4B4, 0x4ECD, + 0xA4B5, 0x4ECA, 0xA4B6, 0x4ECB, 0xA4B7, 0x4EC4, 0xA4B8, 0x5143, + 0xA4B9, 0x5141, 0xA4BA, 0x5167, 0xA4BB, 0x516D, 0xA4BC, 0x516E, + 0xA4BD, 0x516C, 0xA4BE, 0x5197, 0xA4BF, 0x51F6, 0xA4C0, 0x5206, + 0xA4C1, 0x5207, 0xA4C2, 0x5208, 0xA4C3, 0x52FB, 0xA4C4, 0x52FE, + 0xA4C5, 0x52FF, 0xA4C6, 0x5316, 0xA4C7, 0x5339, 0xA4C8, 0x5348, + 0xA4C9, 0x5347, 0xA4CA, 0x5345, 0xA4CB, 0x535E, 0xA4CC, 0x5384, + 0xA4CD, 0x53CB, 0xA4CE, 0x53CA, 0xA4CF, 0x53CD, 0xA4D0, 0x58EC, + 0xA4D1, 0x5929, 0xA4D2, 0x592B, 0xA4D3, 0x592A, 0xA4D4, 0x592D, + 0xA4D5, 0x5B54, 0xA4D6, 0x5C11, 0xA4D7, 0x5C24, 0xA4D8, 0x5C3A, + 0xA4D9, 0x5C6F, 0xA4DA, 0x5DF4, 0xA4DB, 0x5E7B, 0xA4DC, 0x5EFF, + 0xA4DD, 0x5F14, 0xA4DE, 0x5F15, 0xA4DF, 0x5FC3, 0xA4E0, 0x6208, + 0xA4E1, 0x6236, 0xA4E2, 0x624B, 0xA4E3, 0x624E, 0xA4E4, 0x652F, + 0xA4E5, 0x6587, 0xA4E6, 0x6597, 0xA4E7, 0x65A4, 0xA4E8, 0x65B9, + 0xA4E9, 0x65E5, 0xA4EA, 0x66F0, 0xA4EB, 0x6708, 0xA4EC, 0x6728, + 0xA4ED, 0x6B20, 0xA4EE, 0x6B62, 0xA4EF, 0x6B79, 0xA4F0, 0x6BCB, + 0xA4F1, 0x6BD4, 0xA4F2, 0x6BDB, 0xA4F3, 0x6C0F, 0xA4F4, 0x6C34, + 0xA4F5, 0x706B, 0xA4F6, 0x722A, 0xA4F7, 0x7236, 0xA4F8, 0x723B, + 0xA4F9, 0x7247, 0xA4FA, 0x7259, 0xA4FB, 0x725B, 0xA4FC, 0x72AC, + 0xA4FD, 0x738B, 0xA4FE, 0x4E19, 0xA540, 0x4E16, 0xA541, 0x4E15, + 0xA542, 0x4E14, 0xA543, 0x4E18, 0xA544, 0x4E3B, 0xA545, 0x4E4D, + 0xA546, 0x4E4F, 0xA547, 0x4E4E, 0xA548, 0x4EE5, 0xA549, 0x4ED8, + 0xA54A, 0x4ED4, 0xA54B, 0x4ED5, 0xA54C, 0x4ED6, 0xA54D, 0x4ED7, + 0xA54E, 0x4EE3, 0xA54F, 0x4EE4, 0xA550, 0x4ED9, 0xA551, 0x4EDE, + 0xA552, 0x5145, 0xA553, 0x5144, 0xA554, 0x5189, 0xA555, 0x518A, + 0xA556, 0x51AC, 0xA557, 0x51F9, 0xA558, 0x51FA, 0xA559, 0x51F8, + 0xA55A, 0x520A, 0xA55B, 0x52A0, 0xA55C, 0x529F, 0xA55D, 0x5305, + 0xA55E, 0x5306, 0xA55F, 0x5317, 0xA560, 0x531D, 0xA561, 0x4EDF, + 0xA562, 0x534A, 0xA563, 0x5349, 0xA564, 0x5361, 0xA565, 0x5360, + 0xA566, 0x536F, 0xA567, 0x536E, 0xA568, 0x53BB, 0xA569, 0x53EF, + 0xA56A, 0x53E4, 0xA56B, 0x53F3, 0xA56C, 0x53EC, 0xA56D, 0x53EE, + 0xA56E, 0x53E9, 0xA56F, 0x53E8, 0xA570, 0x53FC, 0xA571, 0x53F8, + 0xA572, 0x53F5, 0xA573, 0x53EB, 0xA574, 0x53E6, 0xA575, 0x53EA, + 0xA576, 0x53F2, 0xA577, 0x53F1, 0xA578, 0x53F0, 0xA579, 0x53E5, + 0xA57A, 0x53ED, 0xA57B, 0x53FB, 0xA57C, 0x56DB, 0xA57D, 0x56DA, + 0xA57E, 0x5916, 0xA5A1, 0x592E, 0xA5A2, 0x5931, 0xA5A3, 0x5974, + 0xA5A4, 0x5976, 0xA5A5, 0x5B55, 0xA5A6, 0x5B83, 0xA5A7, 0x5C3C, + 0xA5A8, 0x5DE8, 0xA5A9, 0x5DE7, 0xA5AA, 0x5DE6, 0xA5AB, 0x5E02, + 0xA5AC, 0x5E03, 0xA5AD, 0x5E73, 0xA5AE, 0x5E7C, 0xA5AF, 0x5F01, + 0xA5B0, 0x5F18, 0xA5B1, 0x5F17, 0xA5B2, 0x5FC5, 0xA5B3, 0x620A, + 0xA5B4, 0x6253, 0xA5B5, 0x6254, 0xA5B6, 0x6252, 0xA5B7, 0x6251, + 0xA5B8, 0x65A5, 0xA5B9, 0x65E6, 0xA5BA, 0x672E, 0xA5BB, 0x672C, + 0xA5BC, 0x672A, 0xA5BD, 0x672B, 0xA5BE, 0x672D, 0xA5BF, 0x6B63, + 0xA5C0, 0x6BCD, 0xA5C1, 0x6C11, 0xA5C2, 0x6C10, 0xA5C3, 0x6C38, + 0xA5C4, 0x6C41, 0xA5C5, 0x6C40, 0xA5C6, 0x6C3E, 0xA5C7, 0x72AF, + 0xA5C8, 0x7384, 0xA5C9, 0x7389, 0xA5CA, 0x74DC, 0xA5CB, 0x74E6, + 0xA5CC, 0x7518, 0xA5CD, 0x751F, 0xA5CE, 0x7528, 0xA5CF, 0x7529, + 0xA5D0, 0x7530, 0xA5D1, 0x7531, 0xA5D2, 0x7532, 0xA5D3, 0x7533, + 0xA5D4, 0x758B, 0xA5D5, 0x767D, 0xA5D6, 0x76AE, 0xA5D7, 0x76BF, + 0xA5D8, 0x76EE, 0xA5D9, 0x77DB, 0xA5DA, 0x77E2, 0xA5DB, 0x77F3, + 0xA5DC, 0x793A, 0xA5DD, 0x79BE, 0xA5DE, 0x7A74, 0xA5DF, 0x7ACB, + 0xA5E0, 0x4E1E, 0xA5E1, 0x4E1F, 0xA5E2, 0x4E52, 0xA5E3, 0x4E53, + 0xA5E4, 0x4E69, 0xA5E5, 0x4E99, 0xA5E6, 0x4EA4, 0xA5E7, 0x4EA6, + 0xA5E8, 0x4EA5, 0xA5E9, 0x4EFF, 0xA5EA, 0x4F09, 0xA5EB, 0x4F19, + 0xA5EC, 0x4F0A, 0xA5ED, 0x4F15, 0xA5EE, 0x4F0D, 0xA5EF, 0x4F10, + 0xA5F0, 0x4F11, 0xA5F1, 0x4F0F, 0xA5F2, 0x4EF2, 0xA5F3, 0x4EF6, + 0xA5F4, 0x4EFB, 0xA5F5, 0x4EF0, 0xA5F6, 0x4EF3, 0xA5F7, 0x4EFD, + 0xA5F8, 0x4F01, 0xA5F9, 0x4F0B, 0xA5FA, 0x5149, 0xA5FB, 0x5147, + 0xA5FC, 0x5146, 0xA5FD, 0x5148, 0xA5FE, 0x5168, 0xA640, 0x5171, + 0xA641, 0x518D, 0xA642, 0x51B0, 0xA643, 0x5217, 0xA644, 0x5211, + 0xA645, 0x5212, 0xA646, 0x520E, 0xA647, 0x5216, 0xA648, 0x52A3, + 0xA649, 0x5308, 0xA64A, 0x5321, 0xA64B, 0x5320, 0xA64C, 0x5370, + 0xA64D, 0x5371, 0xA64E, 0x5409, 0xA64F, 0x540F, 0xA650, 0x540C, + 0xA651, 0x540A, 0xA652, 0x5410, 0xA653, 0x5401, 0xA654, 0x540B, + 0xA655, 0x5404, 0xA656, 0x5411, 0xA657, 0x540D, 0xA658, 0x5408, + 0xA659, 0x5403, 0xA65A, 0x540E, 0xA65B, 0x5406, 0xA65C, 0x5412, + 0xA65D, 0x56E0, 0xA65E, 0x56DE, 0xA65F, 0x56DD, 0xA660, 0x5733, + 0xA661, 0x5730, 0xA662, 0x5728, 0xA663, 0x572D, 0xA664, 0x572C, + 0xA665, 0x572F, 0xA666, 0x5729, 0xA667, 0x5919, 0xA668, 0x591A, + 0xA669, 0x5937, 0xA66A, 0x5938, 0xA66B, 0x5984, 0xA66C, 0x5978, + 0xA66D, 0x5983, 0xA66E, 0x597D, 0xA66F, 0x5979, 0xA670, 0x5982, + 0xA671, 0x5981, 0xA672, 0x5B57, 0xA673, 0x5B58, 0xA674, 0x5B87, + 0xA675, 0x5B88, 0xA676, 0x5B85, 0xA677, 0x5B89, 0xA678, 0x5BFA, + 0xA679, 0x5C16, 0xA67A, 0x5C79, 0xA67B, 0x5DDE, 0xA67C, 0x5E06, + 0xA67D, 0x5E76, 0xA67E, 0x5E74, 0xA6A1, 0x5F0F, 0xA6A2, 0x5F1B, + 0xA6A3, 0x5FD9, 0xA6A4, 0x5FD6, 0xA6A5, 0x620E, 0xA6A6, 0x620C, + 0xA6A7, 0x620D, 0xA6A8, 0x6210, 0xA6A9, 0x6263, 0xA6AA, 0x625B, + 0xA6AB, 0x6258, 0xA6AC, 0x6536, 0xA6AD, 0x65E9, 0xA6AE, 0x65E8, + 0xA6AF, 0x65EC, 0xA6B0, 0x65ED, 0xA6B1, 0x66F2, 0xA6B2, 0x66F3, + 0xA6B3, 0x6709, 0xA6B4, 0x673D, 0xA6B5, 0x6734, 0xA6B6, 0x6731, + 0xA6B7, 0x6735, 0xA6B8, 0x6B21, 0xA6B9, 0x6B64, 0xA6BA, 0x6B7B, + 0xA6BB, 0x6C16, 0xA6BC, 0x6C5D, 0xA6BD, 0x6C57, 0xA6BE, 0x6C59, + 0xA6BF, 0x6C5F, 0xA6C0, 0x6C60, 0xA6C1, 0x6C50, 0xA6C2, 0x6C55, + 0xA6C3, 0x6C61, 0xA6C4, 0x6C5B, 0xA6C5, 0x6C4D, 0xA6C6, 0x6C4E, + 0xA6C7, 0x7070, 0xA6C8, 0x725F, 0xA6C9, 0x725D, 0xA6CA, 0x767E, + 0xA6CB, 0x7AF9, 0xA6CC, 0x7C73, 0xA6CD, 0x7CF8, 0xA6CE, 0x7F36, + 0xA6CF, 0x7F8A, 0xA6D0, 0x7FBD, 0xA6D1, 0x8001, 0xA6D2, 0x8003, + 0xA6D3, 0x800C, 0xA6D4, 0x8012, 0xA6D5, 0x8033, 0xA6D6, 0x807F, + 0xA6D7, 0x8089, 0xA6D8, 0x808B, 0xA6D9, 0x808C, 0xA6DA, 0x81E3, + 0xA6DB, 0x81EA, 0xA6DC, 0x81F3, 0xA6DD, 0x81FC, 0xA6DE, 0x820C, + 0xA6DF, 0x821B, 0xA6E0, 0x821F, 0xA6E1, 0x826E, 0xA6E2, 0x8272, + 0xA6E3, 0x827E, 0xA6E4, 0x866B, 0xA6E5, 0x8840, 0xA6E6, 0x884C, + 0xA6E7, 0x8863, 0xA6E8, 0x897F, 0xA6E9, 0x9621, 0xA6EA, 0x4E32, + 0xA6EB, 0x4EA8, 0xA6EC, 0x4F4D, 0xA6ED, 0x4F4F, 0xA6EE, 0x4F47, + 0xA6EF, 0x4F57, 0xA6F0, 0x4F5E, 0xA6F1, 0x4F34, 0xA6F2, 0x4F5B, + 0xA6F3, 0x4F55, 0xA6F4, 0x4F30, 0xA6F5, 0x4F50, 0xA6F6, 0x4F51, + 0xA6F7, 0x4F3D, 0xA6F8, 0x4F3A, 0xA6F9, 0x4F38, 0xA6FA, 0x4F43, + 0xA6FB, 0x4F54, 0xA6FC, 0x4F3C, 0xA6FD, 0x4F46, 0xA6FE, 0x4F63, + 0xA740, 0x4F5C, 0xA741, 0x4F60, 0xA742, 0x4F2F, 0xA743, 0x4F4E, + 0xA744, 0x4F36, 0xA745, 0x4F59, 0xA746, 0x4F5D, 0xA747, 0x4F48, + 0xA748, 0x4F5A, 0xA749, 0x514C, 0xA74A, 0x514B, 0xA74B, 0x514D, + 0xA74C, 0x5175, 0xA74D, 0x51B6, 0xA74E, 0x51B7, 0xA74F, 0x5225, + 0xA750, 0x5224, 0xA751, 0x5229, 0xA752, 0x522A, 0xA753, 0x5228, + 0xA754, 0x52AB, 0xA755, 0x52A9, 0xA756, 0x52AA, 0xA757, 0x52AC, + 0xA758, 0x5323, 0xA759, 0x5373, 0xA75A, 0x5375, 0xA75B, 0x541D, + 0xA75C, 0x542D, 0xA75D, 0x541E, 0xA75E, 0x543E, 0xA75F, 0x5426, + 0xA760, 0x544E, 0xA761, 0x5427, 0xA762, 0x5446, 0xA763, 0x5443, + 0xA764, 0x5433, 0xA765, 0x5448, 0xA766, 0x5442, 0xA767, 0x541B, + 0xA768, 0x5429, 0xA769, 0x544A, 0xA76A, 0x5439, 0xA76B, 0x543B, + 0xA76C, 0x5438, 0xA76D, 0x542E, 0xA76E, 0x5435, 0xA76F, 0x5436, + 0xA770, 0x5420, 0xA771, 0x543C, 0xA772, 0x5440, 0xA773, 0x5431, + 0xA774, 0x542B, 0xA775, 0x541F, 0xA776, 0x542C, 0xA777, 0x56EA, + 0xA778, 0x56F0, 0xA779, 0x56E4, 0xA77A, 0x56EB, 0xA77B, 0x574A, + 0xA77C, 0x5751, 0xA77D, 0x5740, 0xA77E, 0x574D, 0xA7A1, 0x5747, + 0xA7A2, 0x574E, 0xA7A3, 0x573E, 0xA7A4, 0x5750, 0xA7A5, 0x574F, + 0xA7A6, 0x573B, 0xA7A7, 0x58EF, 0xA7A8, 0x593E, 0xA7A9, 0x599D, + 0xA7AA, 0x5992, 0xA7AB, 0x59A8, 0xA7AC, 0x599E, 0xA7AD, 0x59A3, + 0xA7AE, 0x5999, 0xA7AF, 0x5996, 0xA7B0, 0x598D, 0xA7B1, 0x59A4, + 0xA7B2, 0x5993, 0xA7B3, 0x598A, 0xA7B4, 0x59A5, 0xA7B5, 0x5B5D, + 0xA7B6, 0x5B5C, 0xA7B7, 0x5B5A, 0xA7B8, 0x5B5B, 0xA7B9, 0x5B8C, + 0xA7BA, 0x5B8B, 0xA7BB, 0x5B8F, 0xA7BC, 0x5C2C, 0xA7BD, 0x5C40, + 0xA7BE, 0x5C41, 0xA7BF, 0x5C3F, 0xA7C0, 0x5C3E, 0xA7C1, 0x5C90, + 0xA7C2, 0x5C91, 0xA7C3, 0x5C94, 0xA7C4, 0x5C8C, 0xA7C5, 0x5DEB, + 0xA7C6, 0x5E0C, 0xA7C7, 0x5E8F, 0xA7C8, 0x5E87, 0xA7C9, 0x5E8A, + 0xA7CA, 0x5EF7, 0xA7CB, 0x5F04, 0xA7CC, 0x5F1F, 0xA7CD, 0x5F64, + 0xA7CE, 0x5F62, 0xA7CF, 0x5F77, 0xA7D0, 0x5F79, 0xA7D1, 0x5FD8, + 0xA7D2, 0x5FCC, 0xA7D3, 0x5FD7, 0xA7D4, 0x5FCD, 0xA7D5, 0x5FF1, + 0xA7D6, 0x5FEB, 0xA7D7, 0x5FF8, 0xA7D8, 0x5FEA, 0xA7D9, 0x6212, + 0xA7DA, 0x6211, 0xA7DB, 0x6284, 0xA7DC, 0x6297, 0xA7DD, 0x6296, + 0xA7DE, 0x6280, 0xA7DF, 0x6276, 0xA7E0, 0x6289, 0xA7E1, 0x626D, + 0xA7E2, 0x628A, 0xA7E3, 0x627C, 0xA7E4, 0x627E, 0xA7E5, 0x6279, + 0xA7E6, 0x6273, 0xA7E7, 0x6292, 0xA7E8, 0x626F, 0xA7E9, 0x6298, + 0xA7EA, 0x626E, 0xA7EB, 0x6295, 0xA7EC, 0x6293, 0xA7ED, 0x6291, + 0xA7EE, 0x6286, 0xA7EF, 0x6539, 0xA7F0, 0x653B, 0xA7F1, 0x6538, + 0xA7F2, 0x65F1, 0xA7F3, 0x66F4, 0xA7F4, 0x675F, 0xA7F5, 0x674E, + 0xA7F6, 0x674F, 0xA7F7, 0x6750, 0xA7F8, 0x6751, 0xA7F9, 0x675C, + 0xA7FA, 0x6756, 0xA7FB, 0x675E, 0xA7FC, 0x6749, 0xA7FD, 0x6746, + 0xA7FE, 0x6760, 0xA840, 0x6753, 0xA841, 0x6757, 0xA842, 0x6B65, + 0xA843, 0x6BCF, 0xA844, 0x6C42, 0xA845, 0x6C5E, 0xA846, 0x6C99, + 0xA847, 0x6C81, 0xA848, 0x6C88, 0xA849, 0x6C89, 0xA84A, 0x6C85, + 0xA84B, 0x6C9B, 0xA84C, 0x6C6A, 0xA84D, 0x6C7A, 0xA84E, 0x6C90, + 0xA84F, 0x6C70, 0xA850, 0x6C8C, 0xA851, 0x6C68, 0xA852, 0x6C96, + 0xA853, 0x6C92, 0xA854, 0x6C7D, 0xA855, 0x6C83, 0xA856, 0x6C72, + 0xA857, 0x6C7E, 0xA858, 0x6C74, 0xA859, 0x6C86, 0xA85A, 0x6C76, + 0xA85B, 0x6C8D, 0xA85C, 0x6C94, 0xA85D, 0x6C98, 0xA85E, 0x6C82, + 0xA85F, 0x7076, 0xA860, 0x707C, 0xA861, 0x707D, 0xA862, 0x7078, + 0xA863, 0x7262, 0xA864, 0x7261, 0xA865, 0x7260, 0xA866, 0x72C4, + 0xA867, 0x72C2, 0xA868, 0x7396, 0xA869, 0x752C, 0xA86A, 0x752B, + 0xA86B, 0x7537, 0xA86C, 0x7538, 0xA86D, 0x7682, 0xA86E, 0x76EF, + 0xA86F, 0x77E3, 0xA870, 0x79C1, 0xA871, 0x79C0, 0xA872, 0x79BF, + 0xA873, 0x7A76, 0xA874, 0x7CFB, 0xA875, 0x7F55, 0xA876, 0x8096, + 0xA877, 0x8093, 0xA878, 0x809D, 0xA879, 0x8098, 0xA87A, 0x809B, + 0xA87B, 0x809A, 0xA87C, 0x80B2, 0xA87D, 0x826F, 0xA87E, 0x8292, + 0xA8A1, 0x828B, 0xA8A2, 0x828D, 0xA8A3, 0x898B, 0xA8A4, 0x89D2, + 0xA8A5, 0x8A00, 0xA8A6, 0x8C37, 0xA8A7, 0x8C46, 0xA8A8, 0x8C55, + 0xA8A9, 0x8C9D, 0xA8AA, 0x8D64, 0xA8AB, 0x8D70, 0xA8AC, 0x8DB3, + 0xA8AD, 0x8EAB, 0xA8AE, 0x8ECA, 0xA8AF, 0x8F9B, 0xA8B0, 0x8FB0, + 0xA8B1, 0x8FC2, 0xA8B2, 0x8FC6, 0xA8B3, 0x8FC5, 0xA8B4, 0x8FC4, + 0xA8B5, 0x5DE1, 0xA8B6, 0x9091, 0xA8B7, 0x90A2, 0xA8B8, 0x90AA, + 0xA8B9, 0x90A6, 0xA8BA, 0x90A3, 0xA8BB, 0x9149, 0xA8BC, 0x91C6, + 0xA8BD, 0x91CC, 0xA8BE, 0x9632, 0xA8BF, 0x962E, 0xA8C0, 0x9631, + 0xA8C1, 0x962A, 0xA8C2, 0x962C, 0xA8C3, 0x4E26, 0xA8C4, 0x4E56, + 0xA8C5, 0x4E73, 0xA8C6, 0x4E8B, 0xA8C7, 0x4E9B, 0xA8C8, 0x4E9E, + 0xA8C9, 0x4EAB, 0xA8CA, 0x4EAC, 0xA8CB, 0x4F6F, 0xA8CC, 0x4F9D, + 0xA8CD, 0x4F8D, 0xA8CE, 0x4F73, 0xA8CF, 0x4F7F, 0xA8D0, 0x4F6C, + 0xA8D1, 0x4F9B, 0xA8D2, 0x4F8B, 0xA8D3, 0x4F86, 0xA8D4, 0x4F83, + 0xA8D5, 0x4F70, 0xA8D6, 0x4F75, 0xA8D7, 0x4F88, 0xA8D8, 0x4F69, + 0xA8D9, 0x4F7B, 0xA8DA, 0x4F96, 0xA8DB, 0x4F7E, 0xA8DC, 0x4F8F, + 0xA8DD, 0x4F91, 0xA8DE, 0x4F7A, 0xA8DF, 0x5154, 0xA8E0, 0x5152, + 0xA8E1, 0x5155, 0xA8E2, 0x5169, 0xA8E3, 0x5177, 0xA8E4, 0x5176, + 0xA8E5, 0x5178, 0xA8E6, 0x51BD, 0xA8E7, 0x51FD, 0xA8E8, 0x523B, + 0xA8E9, 0x5238, 0xA8EA, 0x5237, 0xA8EB, 0x523A, 0xA8EC, 0x5230, + 0xA8ED, 0x522E, 0xA8EE, 0x5236, 0xA8EF, 0x5241, 0xA8F0, 0x52BE, + 0xA8F1, 0x52BB, 0xA8F2, 0x5352, 0xA8F3, 0x5354, 0xA8F4, 0x5353, + 0xA8F5, 0x5351, 0xA8F6, 0x5366, 0xA8F7, 0x5377, 0xA8F8, 0x5378, + 0xA8F9, 0x5379, 0xA8FA, 0x53D6, 0xA8FB, 0x53D4, 0xA8FC, 0x53D7, + 0xA8FD, 0x5473, 0xA8FE, 0x5475, 0xA940, 0x5496, 0xA941, 0x5478, + 0xA942, 0x5495, 0xA943, 0x5480, 0xA944, 0x547B, 0xA945, 0x5477, + 0xA946, 0x5484, 0xA947, 0x5492, 0xA948, 0x5486, 0xA949, 0x547C, + 0xA94A, 0x5490, 0xA94B, 0x5471, 0xA94C, 0x5476, 0xA94D, 0x548C, + 0xA94E, 0x549A, 0xA94F, 0x5462, 0xA950, 0x5468, 0xA951, 0x548B, + 0xA952, 0x547D, 0xA953, 0x548E, 0xA954, 0x56FA, 0xA955, 0x5783, + 0xA956, 0x5777, 0xA957, 0x576A, 0xA958, 0x5769, 0xA959, 0x5761, + 0xA95A, 0x5766, 0xA95B, 0x5764, 0xA95C, 0x577C, 0xA95D, 0x591C, + 0xA95E, 0x5949, 0xA95F, 0x5947, 0xA960, 0x5948, 0xA961, 0x5944, + 0xA962, 0x5954, 0xA963, 0x59BE, 0xA964, 0x59BB, 0xA965, 0x59D4, + 0xA966, 0x59B9, 0xA967, 0x59AE, 0xA968, 0x59D1, 0xA969, 0x59C6, + 0xA96A, 0x59D0, 0xA96B, 0x59CD, 0xA96C, 0x59CB, 0xA96D, 0x59D3, + 0xA96E, 0x59CA, 0xA96F, 0x59AF, 0xA970, 0x59B3, 0xA971, 0x59D2, + 0xA972, 0x59C5, 0xA973, 0x5B5F, 0xA974, 0x5B64, 0xA975, 0x5B63, + 0xA976, 0x5B97, 0xA977, 0x5B9A, 0xA978, 0x5B98, 0xA979, 0x5B9C, + 0xA97A, 0x5B99, 0xA97B, 0x5B9B, 0xA97C, 0x5C1A, 0xA97D, 0x5C48, + 0xA97E, 0x5C45, 0xA9A1, 0x5C46, 0xA9A2, 0x5CB7, 0xA9A3, 0x5CA1, + 0xA9A4, 0x5CB8, 0xA9A5, 0x5CA9, 0xA9A6, 0x5CAB, 0xA9A7, 0x5CB1, + 0xA9A8, 0x5CB3, 0xA9A9, 0x5E18, 0xA9AA, 0x5E1A, 0xA9AB, 0x5E16, + 0xA9AC, 0x5E15, 0xA9AD, 0x5E1B, 0xA9AE, 0x5E11, 0xA9AF, 0x5E78, + 0xA9B0, 0x5E9A, 0xA9B1, 0x5E97, 0xA9B2, 0x5E9C, 0xA9B3, 0x5E95, + 0xA9B4, 0x5E96, 0xA9B5, 0x5EF6, 0xA9B6, 0x5F26, 0xA9B7, 0x5F27, + 0xA9B8, 0x5F29, 0xA9B9, 0x5F80, 0xA9BA, 0x5F81, 0xA9BB, 0x5F7F, + 0xA9BC, 0x5F7C, 0xA9BD, 0x5FDD, 0xA9BE, 0x5FE0, 0xA9BF, 0x5FFD, + 0xA9C0, 0x5FF5, 0xA9C1, 0x5FFF, 0xA9C2, 0x600F, 0xA9C3, 0x6014, + 0xA9C4, 0x602F, 0xA9C5, 0x6035, 0xA9C6, 0x6016, 0xA9C7, 0x602A, + 0xA9C8, 0x6015, 0xA9C9, 0x6021, 0xA9CA, 0x6027, 0xA9CB, 0x6029, + 0xA9CC, 0x602B, 0xA9CD, 0x601B, 0xA9CE, 0x6216, 0xA9CF, 0x6215, + 0xA9D0, 0x623F, 0xA9D1, 0x623E, 0xA9D2, 0x6240, 0xA9D3, 0x627F, + 0xA9D4, 0x62C9, 0xA9D5, 0x62CC, 0xA9D6, 0x62C4, 0xA9D7, 0x62BF, + 0xA9D8, 0x62C2, 0xA9D9, 0x62B9, 0xA9DA, 0x62D2, 0xA9DB, 0x62DB, + 0xA9DC, 0x62AB, 0xA9DD, 0x62D3, 0xA9DE, 0x62D4, 0xA9DF, 0x62CB, + 0xA9E0, 0x62C8, 0xA9E1, 0x62A8, 0xA9E2, 0x62BD, 0xA9E3, 0x62BC, + 0xA9E4, 0x62D0, 0xA9E5, 0x62D9, 0xA9E6, 0x62C7, 0xA9E7, 0x62CD, + 0xA9E8, 0x62B5, 0xA9E9, 0x62DA, 0xA9EA, 0x62B1, 0xA9EB, 0x62D8, + 0xA9EC, 0x62D6, 0xA9ED, 0x62D7, 0xA9EE, 0x62C6, 0xA9EF, 0x62AC, + 0xA9F0, 0x62CE, 0xA9F1, 0x653E, 0xA9F2, 0x65A7, 0xA9F3, 0x65BC, + 0xA9F4, 0x65FA, 0xA9F5, 0x6614, 0xA9F6, 0x6613, 0xA9F7, 0x660C, + 0xA9F8, 0x6606, 0xA9F9, 0x6602, 0xA9FA, 0x660E, 0xA9FB, 0x6600, + 0xA9FC, 0x660F, 0xA9FD, 0x6615, 0xA9FE, 0x660A, 0xAA40, 0x6607, + 0xAA41, 0x670D, 0xAA42, 0x670B, 0xAA43, 0x676D, 0xAA44, 0x678B, + 0xAA45, 0x6795, 0xAA46, 0x6771, 0xAA47, 0x679C, 0xAA48, 0x6773, + 0xAA49, 0x6777, 0xAA4A, 0x6787, 0xAA4B, 0x679D, 0xAA4C, 0x6797, + 0xAA4D, 0x676F, 0xAA4E, 0x6770, 0xAA4F, 0x677F, 0xAA50, 0x6789, + 0xAA51, 0x677E, 0xAA52, 0x6790, 0xAA53, 0x6775, 0xAA54, 0x679A, + 0xAA55, 0x6793, 0xAA56, 0x677C, 0xAA57, 0x676A, 0xAA58, 0x6772, + 0xAA59, 0x6B23, 0xAA5A, 0x6B66, 0xAA5B, 0x6B67, 0xAA5C, 0x6B7F, + 0xAA5D, 0x6C13, 0xAA5E, 0x6C1B, 0xAA5F, 0x6CE3, 0xAA60, 0x6CE8, + 0xAA61, 0x6CF3, 0xAA62, 0x6CB1, 0xAA63, 0x6CCC, 0xAA64, 0x6CE5, + 0xAA65, 0x6CB3, 0xAA66, 0x6CBD, 0xAA67, 0x6CBE, 0xAA68, 0x6CBC, + 0xAA69, 0x6CE2, 0xAA6A, 0x6CAB, 0xAA6B, 0x6CD5, 0xAA6C, 0x6CD3, + 0xAA6D, 0x6CB8, 0xAA6E, 0x6CC4, 0xAA6F, 0x6CB9, 0xAA70, 0x6CC1, + 0xAA71, 0x6CAE, 0xAA72, 0x6CD7, 0xAA73, 0x6CC5, 0xAA74, 0x6CF1, + 0xAA75, 0x6CBF, 0xAA76, 0x6CBB, 0xAA77, 0x6CE1, 0xAA78, 0x6CDB, + 0xAA79, 0x6CCA, 0xAA7A, 0x6CAC, 0xAA7B, 0x6CEF, 0xAA7C, 0x6CDC, + 0xAA7D, 0x6CD6, 0xAA7E, 0x6CE0, 0xAAA1, 0x7095, 0xAAA2, 0x708E, + 0xAAA3, 0x7092, 0xAAA4, 0x708A, 0xAAA5, 0x7099, 0xAAA6, 0x722C, + 0xAAA7, 0x722D, 0xAAA8, 0x7238, 0xAAA9, 0x7248, 0xAAAA, 0x7267, + 0xAAAB, 0x7269, 0xAAAC, 0x72C0, 0xAAAD, 0x72CE, 0xAAAE, 0x72D9, + 0xAAAF, 0x72D7, 0xAAB0, 0x72D0, 0xAAB1, 0x73A9, 0xAAB2, 0x73A8, + 0xAAB3, 0x739F, 0xAAB4, 0x73AB, 0xAAB5, 0x73A5, 0xAAB6, 0x753D, + 0xAAB7, 0x759D, 0xAAB8, 0x7599, 0xAAB9, 0x759A, 0xAABA, 0x7684, + 0xAABB, 0x76C2, 0xAABC, 0x76F2, 0xAABD, 0x76F4, 0xAABE, 0x77E5, + 0xAABF, 0x77FD, 0xAAC0, 0x793E, 0xAAC1, 0x7940, 0xAAC2, 0x7941, + 0xAAC3, 0x79C9, 0xAAC4, 0x79C8, 0xAAC5, 0x7A7A, 0xAAC6, 0x7A79, + 0xAAC7, 0x7AFA, 0xAAC8, 0x7CFE, 0xAAC9, 0x7F54, 0xAACA, 0x7F8C, + 0xAACB, 0x7F8B, 0xAACC, 0x8005, 0xAACD, 0x80BA, 0xAACE, 0x80A5, + 0xAACF, 0x80A2, 0xAAD0, 0x80B1, 0xAAD1, 0x80A1, 0xAAD2, 0x80AB, + 0xAAD3, 0x80A9, 0xAAD4, 0x80B4, 0xAAD5, 0x80AA, 0xAAD6, 0x80AF, + 0xAAD7, 0x81E5, 0xAAD8, 0x81FE, 0xAAD9, 0x820D, 0xAADA, 0x82B3, + 0xAADB, 0x829D, 0xAADC, 0x8299, 0xAADD, 0x82AD, 0xAADE, 0x82BD, + 0xAADF, 0x829F, 0xAAE0, 0x82B9, 0xAAE1, 0x82B1, 0xAAE2, 0x82AC, + 0xAAE3, 0x82A5, 0xAAE4, 0x82AF, 0xAAE5, 0x82B8, 0xAAE6, 0x82A3, + 0xAAE7, 0x82B0, 0xAAE8, 0x82BE, 0xAAE9, 0x82B7, 0xAAEA, 0x864E, + 0xAAEB, 0x8671, 0xAAEC, 0x521D, 0xAAED, 0x8868, 0xAAEE, 0x8ECB, + 0xAAEF, 0x8FCE, 0xAAF0, 0x8FD4, 0xAAF1, 0x8FD1, 0xAAF2, 0x90B5, + 0xAAF3, 0x90B8, 0xAAF4, 0x90B1, 0xAAF5, 0x90B6, 0xAAF6, 0x91C7, + 0xAAF7, 0x91D1, 0xAAF8, 0x9577, 0xAAF9, 0x9580, 0xAAFA, 0x961C, + 0xAAFB, 0x9640, 0xAAFC, 0x963F, 0xAAFD, 0x963B, 0xAAFE, 0x9644, + 0xAB40, 0x9642, 0xAB41, 0x96B9, 0xAB42, 0x96E8, 0xAB43, 0x9752, + 0xAB44, 0x975E, 0xAB45, 0x4E9F, 0xAB46, 0x4EAD, 0xAB47, 0x4EAE, + 0xAB48, 0x4FE1, 0xAB49, 0x4FB5, 0xAB4A, 0x4FAF, 0xAB4B, 0x4FBF, + 0xAB4C, 0x4FE0, 0xAB4D, 0x4FD1, 0xAB4E, 0x4FCF, 0xAB4F, 0x4FDD, + 0xAB50, 0x4FC3, 0xAB51, 0x4FB6, 0xAB52, 0x4FD8, 0xAB53, 0x4FDF, + 0xAB54, 0x4FCA, 0xAB55, 0x4FD7, 0xAB56, 0x4FAE, 0xAB57, 0x4FD0, + 0xAB58, 0x4FC4, 0xAB59, 0x4FC2, 0xAB5A, 0x4FDA, 0xAB5B, 0x4FCE, + 0xAB5C, 0x4FDE, 0xAB5D, 0x4FB7, 0xAB5E, 0x5157, 0xAB5F, 0x5192, + 0xAB60, 0x5191, 0xAB61, 0x51A0, 0xAB62, 0x524E, 0xAB63, 0x5243, + 0xAB64, 0x524A, 0xAB65, 0x524D, 0xAB66, 0x524C, 0xAB67, 0x524B, + 0xAB68, 0x5247, 0xAB69, 0x52C7, 0xAB6A, 0x52C9, 0xAB6B, 0x52C3, + 0xAB6C, 0x52C1, 0xAB6D, 0x530D, 0xAB6E, 0x5357, 0xAB6F, 0x537B, + 0xAB70, 0x539A, 0xAB71, 0x53DB, 0xAB72, 0x54AC, 0xAB73, 0x54C0, + 0xAB74, 0x54A8, 0xAB75, 0x54CE, 0xAB76, 0x54C9, 0xAB77, 0x54B8, + 0xAB78, 0x54A6, 0xAB79, 0x54B3, 0xAB7A, 0x54C7, 0xAB7B, 0x54C2, + 0xAB7C, 0x54BD, 0xAB7D, 0x54AA, 0xAB7E, 0x54C1, 0xABA1, 0x54C4, + 0xABA2, 0x54C8, 0xABA3, 0x54AF, 0xABA4, 0x54AB, 0xABA5, 0x54B1, + 0xABA6, 0x54BB, 0xABA7, 0x54A9, 0xABA8, 0x54A7, 0xABA9, 0x54BF, + 0xABAA, 0x56FF, 0xABAB, 0x5782, 0xABAC, 0x578B, 0xABAD, 0x57A0, + 0xABAE, 0x57A3, 0xABAF, 0x57A2, 0xABB0, 0x57CE, 0xABB1, 0x57AE, + 0xABB2, 0x5793, 0xABB3, 0x5955, 0xABB4, 0x5951, 0xABB5, 0x594F, + 0xABB6, 0x594E, 0xABB7, 0x5950, 0xABB8, 0x59DC, 0xABB9, 0x59D8, + 0xABBA, 0x59FF, 0xABBB, 0x59E3, 0xABBC, 0x59E8, 0xABBD, 0x5A03, + 0xABBE, 0x59E5, 0xABBF, 0x59EA, 0xABC0, 0x59DA, 0xABC1, 0x59E6, + 0xABC2, 0x5A01, 0xABC3, 0x59FB, 0xABC4, 0x5B69, 0xABC5, 0x5BA3, + 0xABC6, 0x5BA6, 0xABC7, 0x5BA4, 0xABC8, 0x5BA2, 0xABC9, 0x5BA5, + 0xABCA, 0x5C01, 0xABCB, 0x5C4E, 0xABCC, 0x5C4F, 0xABCD, 0x5C4D, + 0xABCE, 0x5C4B, 0xABCF, 0x5CD9, 0xABD0, 0x5CD2, 0xABD1, 0x5DF7, + 0xABD2, 0x5E1D, 0xABD3, 0x5E25, 0xABD4, 0x5E1F, 0xABD5, 0x5E7D, + 0xABD6, 0x5EA0, 0xABD7, 0x5EA6, 0xABD8, 0x5EFA, 0xABD9, 0x5F08, + 0xABDA, 0x5F2D, 0xABDB, 0x5F65, 0xABDC, 0x5F88, 0xABDD, 0x5F85, + 0xABDE, 0x5F8A, 0xABDF, 0x5F8B, 0xABE0, 0x5F87, 0xABE1, 0x5F8C, + 0xABE2, 0x5F89, 0xABE3, 0x6012, 0xABE4, 0x601D, 0xABE5, 0x6020, + 0xABE6, 0x6025, 0xABE7, 0x600E, 0xABE8, 0x6028, 0xABE9, 0x604D, + 0xABEA, 0x6070, 0xABEB, 0x6068, 0xABEC, 0x6062, 0xABED, 0x6046, + 0xABEE, 0x6043, 0xABEF, 0x606C, 0xABF0, 0x606B, 0xABF1, 0x606A, + 0xABF2, 0x6064, 0xABF3, 0x6241, 0xABF4, 0x62DC, 0xABF5, 0x6316, + 0xABF6, 0x6309, 0xABF7, 0x62FC, 0xABF8, 0x62ED, 0xABF9, 0x6301, + 0xABFA, 0x62EE, 0xABFB, 0x62FD, 0xABFC, 0x6307, 0xABFD, 0x62F1, + 0xABFE, 0x62F7, 0xAC40, 0x62EF, 0xAC41, 0x62EC, 0xAC42, 0x62FE, + 0xAC43, 0x62F4, 0xAC44, 0x6311, 0xAC45, 0x6302, 0xAC46, 0x653F, + 0xAC47, 0x6545, 0xAC48, 0x65AB, 0xAC49, 0x65BD, 0xAC4A, 0x65E2, + 0xAC4B, 0x6625, 0xAC4C, 0x662D, 0xAC4D, 0x6620, 0xAC4E, 0x6627, + 0xAC4F, 0x662F, 0xAC50, 0x661F, 0xAC51, 0x6628, 0xAC52, 0x6631, + 0xAC53, 0x6624, 0xAC54, 0x66F7, 0xAC55, 0x67FF, 0xAC56, 0x67D3, + 0xAC57, 0x67F1, 0xAC58, 0x67D4, 0xAC59, 0x67D0, 0xAC5A, 0x67EC, + 0xAC5B, 0x67B6, 0xAC5C, 0x67AF, 0xAC5D, 0x67F5, 0xAC5E, 0x67E9, + 0xAC5F, 0x67EF, 0xAC60, 0x67C4, 0xAC61, 0x67D1, 0xAC62, 0x67B4, + 0xAC63, 0x67DA, 0xAC64, 0x67E5, 0xAC65, 0x67B8, 0xAC66, 0x67CF, + 0xAC67, 0x67DE, 0xAC68, 0x67F3, 0xAC69, 0x67B0, 0xAC6A, 0x67D9, + 0xAC6B, 0x67E2, 0xAC6C, 0x67DD, 0xAC6D, 0x67D2, 0xAC6E, 0x6B6A, + 0xAC6F, 0x6B83, 0xAC70, 0x6B86, 0xAC71, 0x6BB5, 0xAC72, 0x6BD2, + 0xAC73, 0x6BD7, 0xAC74, 0x6C1F, 0xAC75, 0x6CC9, 0xAC76, 0x6D0B, + 0xAC77, 0x6D32, 0xAC78, 0x6D2A, 0xAC79, 0x6D41, 0xAC7A, 0x6D25, + 0xAC7B, 0x6D0C, 0xAC7C, 0x6D31, 0xAC7D, 0x6D1E, 0xAC7E, 0x6D17, + 0xACA1, 0x6D3B, 0xACA2, 0x6D3D, 0xACA3, 0x6D3E, 0xACA4, 0x6D36, + 0xACA5, 0x6D1B, 0xACA6, 0x6CF5, 0xACA7, 0x6D39, 0xACA8, 0x6D27, + 0xACA9, 0x6D38, 0xACAA, 0x6D29, 0xACAB, 0x6D2E, 0xACAC, 0x6D35, + 0xACAD, 0x6D0E, 0xACAE, 0x6D2B, 0xACAF, 0x70AB, 0xACB0, 0x70BA, + 0xACB1, 0x70B3, 0xACB2, 0x70AC, 0xACB3, 0x70AF, 0xACB4, 0x70AD, + 0xACB5, 0x70B8, 0xACB6, 0x70AE, 0xACB7, 0x70A4, 0xACB8, 0x7230, + 0xACB9, 0x7272, 0xACBA, 0x726F, 0xACBB, 0x7274, 0xACBC, 0x72E9, + 0xACBD, 0x72E0, 0xACBE, 0x72E1, 0xACBF, 0x73B7, 0xACC0, 0x73CA, + 0xACC1, 0x73BB, 0xACC2, 0x73B2, 0xACC3, 0x73CD, 0xACC4, 0x73C0, + 0xACC5, 0x73B3, 0xACC6, 0x751A, 0xACC7, 0x752D, 0xACC8, 0x754F, + 0xACC9, 0x754C, 0xACCA, 0x754E, 0xACCB, 0x754B, 0xACCC, 0x75AB, + 0xACCD, 0x75A4, 0xACCE, 0x75A5, 0xACCF, 0x75A2, 0xACD0, 0x75A3, + 0xACD1, 0x7678, 0xACD2, 0x7686, 0xACD3, 0x7687, 0xACD4, 0x7688, + 0xACD5, 0x76C8, 0xACD6, 0x76C6, 0xACD7, 0x76C3, 0xACD8, 0x76C5, + 0xACD9, 0x7701, 0xACDA, 0x76F9, 0xACDB, 0x76F8, 0xACDC, 0x7709, + 0xACDD, 0x770B, 0xACDE, 0x76FE, 0xACDF, 0x76FC, 0xACE0, 0x7707, + 0xACE1, 0x77DC, 0xACE2, 0x7802, 0xACE3, 0x7814, 0xACE4, 0x780C, + 0xACE5, 0x780D, 0xACE6, 0x7946, 0xACE7, 0x7949, 0xACE8, 0x7948, + 0xACE9, 0x7947, 0xACEA, 0x79B9, 0xACEB, 0x79BA, 0xACEC, 0x79D1, + 0xACED, 0x79D2, 0xACEE, 0x79CB, 0xACEF, 0x7A7F, 0xACF0, 0x7A81, + 0xACF1, 0x7AFF, 0xACF2, 0x7AFD, 0xACF3, 0x7C7D, 0xACF4, 0x7D02, + 0xACF5, 0x7D05, 0xACF6, 0x7D00, 0xACF7, 0x7D09, 0xACF8, 0x7D07, + 0xACF9, 0x7D04, 0xACFA, 0x7D06, 0xACFB, 0x7F38, 0xACFC, 0x7F8E, + 0xACFD, 0x7FBF, 0xACFE, 0x8004, 0xAD40, 0x8010, 0xAD41, 0x800D, + 0xAD42, 0x8011, 0xAD43, 0x8036, 0xAD44, 0x80D6, 0xAD45, 0x80E5, + 0xAD46, 0x80DA, 0xAD47, 0x80C3, 0xAD48, 0x80C4, 0xAD49, 0x80CC, + 0xAD4A, 0x80E1, 0xAD4B, 0x80DB, 0xAD4C, 0x80CE, 0xAD4D, 0x80DE, + 0xAD4E, 0x80E4, 0xAD4F, 0x80DD, 0xAD50, 0x81F4, 0xAD51, 0x8222, + 0xAD52, 0x82E7, 0xAD53, 0x8303, 0xAD54, 0x8305, 0xAD55, 0x82E3, + 0xAD56, 0x82DB, 0xAD57, 0x82E6, 0xAD58, 0x8304, 0xAD59, 0x82E5, + 0xAD5A, 0x8302, 0xAD5B, 0x8309, 0xAD5C, 0x82D2, 0xAD5D, 0x82D7, + 0xAD5E, 0x82F1, 0xAD5F, 0x8301, 0xAD60, 0x82DC, 0xAD61, 0x82D4, + 0xAD62, 0x82D1, 0xAD63, 0x82DE, 0xAD64, 0x82D3, 0xAD65, 0x82DF, + 0xAD66, 0x82EF, 0xAD67, 0x8306, 0xAD68, 0x8650, 0xAD69, 0x8679, + 0xAD6A, 0x867B, 0xAD6B, 0x867A, 0xAD6C, 0x884D, 0xAD6D, 0x886B, + 0xAD6E, 0x8981, 0xAD6F, 0x89D4, 0xAD70, 0x8A08, 0xAD71, 0x8A02, + 0xAD72, 0x8A03, 0xAD73, 0x8C9E, 0xAD74, 0x8CA0, 0xAD75, 0x8D74, + 0xAD76, 0x8D73, 0xAD77, 0x8DB4, 0xAD78, 0x8ECD, 0xAD79, 0x8ECC, + 0xAD7A, 0x8FF0, 0xAD7B, 0x8FE6, 0xAD7C, 0x8FE2, 0xAD7D, 0x8FEA, + 0xAD7E, 0x8FE5, 0xADA1, 0x8FED, 0xADA2, 0x8FEB, 0xADA3, 0x8FE4, + 0xADA4, 0x8FE8, 0xADA5, 0x90CA, 0xADA6, 0x90CE, 0xADA7, 0x90C1, + 0xADA8, 0x90C3, 0xADA9, 0x914B, 0xADAA, 0x914A, 0xADAB, 0x91CD, + 0xADAC, 0x9582, 0xADAD, 0x9650, 0xADAE, 0x964B, 0xADAF, 0x964C, + 0xADB0, 0x964D, 0xADB1, 0x9762, 0xADB2, 0x9769, 0xADB3, 0x97CB, + 0xADB4, 0x97ED, 0xADB5, 0x97F3, 0xADB6, 0x9801, 0xADB7, 0x98A8, + 0xADB8, 0x98DB, 0xADB9, 0x98DF, 0xADBA, 0x9996, 0xADBB, 0x9999, + 0xADBC, 0x4E58, 0xADBD, 0x4EB3, 0xADBE, 0x500C, 0xADBF, 0x500D, + 0xADC0, 0x5023, 0xADC1, 0x4FEF, 0xADC2, 0x5026, 0xADC3, 0x5025, + 0xADC4, 0x4FF8, 0xADC5, 0x5029, 0xADC6, 0x5016, 0xADC7, 0x5006, + 0xADC8, 0x503C, 0xADC9, 0x501F, 0xADCA, 0x501A, 0xADCB, 0x5012, + 0xADCC, 0x5011, 0xADCD, 0x4FFA, 0xADCE, 0x5000, 0xADCF, 0x5014, + 0xADD0, 0x5028, 0xADD1, 0x4FF1, 0xADD2, 0x5021, 0xADD3, 0x500B, + 0xADD4, 0x5019, 0xADD5, 0x5018, 0xADD6, 0x4FF3, 0xADD7, 0x4FEE, + 0xADD8, 0x502D, 0xADD9, 0x502A, 0xADDA, 0x4FFE, 0xADDB, 0x502B, + 0xADDC, 0x5009, 0xADDD, 0x517C, 0xADDE, 0x51A4, 0xADDF, 0x51A5, + 0xADE0, 0x51A2, 0xADE1, 0x51CD, 0xADE2, 0x51CC, 0xADE3, 0x51C6, + 0xADE4, 0x51CB, 0xADE5, 0x5256, 0xADE6, 0x525C, 0xADE7, 0x5254, + 0xADE8, 0x525B, 0xADE9, 0x525D, 0xADEA, 0x532A, 0xADEB, 0x537F, + 0xADEC, 0x539F, 0xADED, 0x539D, 0xADEE, 0x53DF, 0xADEF, 0x54E8, + 0xADF0, 0x5510, 0xADF1, 0x5501, 0xADF2, 0x5537, 0xADF3, 0x54FC, + 0xADF4, 0x54E5, 0xADF5, 0x54F2, 0xADF6, 0x5506, 0xADF7, 0x54FA, + 0xADF8, 0x5514, 0xADF9, 0x54E9, 0xADFA, 0x54ED, 0xADFB, 0x54E1, + 0xADFC, 0x5509, 0xADFD, 0x54EE, 0xADFE, 0x54EA, 0xAE40, 0x54E6, + 0xAE41, 0x5527, 0xAE42, 0x5507, 0xAE43, 0x54FD, 0xAE44, 0x550F, + 0xAE45, 0x5703, 0xAE46, 0x5704, 0xAE47, 0x57C2, 0xAE48, 0x57D4, + 0xAE49, 0x57CB, 0xAE4A, 0x57C3, 0xAE4B, 0x5809, 0xAE4C, 0x590F, + 0xAE4D, 0x5957, 0xAE4E, 0x5958, 0xAE4F, 0x595A, 0xAE50, 0x5A11, + 0xAE51, 0x5A18, 0xAE52, 0x5A1C, 0xAE53, 0x5A1F, 0xAE54, 0x5A1B, + 0xAE55, 0x5A13, 0xAE56, 0x59EC, 0xAE57, 0x5A20, 0xAE58, 0x5A23, + 0xAE59, 0x5A29, 0xAE5A, 0x5A25, 0xAE5B, 0x5A0C, 0xAE5C, 0x5A09, + 0xAE5D, 0x5B6B, 0xAE5E, 0x5C58, 0xAE5F, 0x5BB0, 0xAE60, 0x5BB3, + 0xAE61, 0x5BB6, 0xAE62, 0x5BB4, 0xAE63, 0x5BAE, 0xAE64, 0x5BB5, + 0xAE65, 0x5BB9, 0xAE66, 0x5BB8, 0xAE67, 0x5C04, 0xAE68, 0x5C51, + 0xAE69, 0x5C55, 0xAE6A, 0x5C50, 0xAE6B, 0x5CED, 0xAE6C, 0x5CFD, + 0xAE6D, 0x5CFB, 0xAE6E, 0x5CEA, 0xAE6F, 0x5CE8, 0xAE70, 0x5CF0, + 0xAE71, 0x5CF6, 0xAE72, 0x5D01, 0xAE73, 0x5CF4, 0xAE74, 0x5DEE, + 0xAE75, 0x5E2D, 0xAE76, 0x5E2B, 0xAE77, 0x5EAB, 0xAE78, 0x5EAD, + 0xAE79, 0x5EA7, 0xAE7A, 0x5F31, 0xAE7B, 0x5F92, 0xAE7C, 0x5F91, + 0xAE7D, 0x5F90, 0xAE7E, 0x6059, 0xAEA1, 0x6063, 0xAEA2, 0x6065, + 0xAEA3, 0x6050, 0xAEA4, 0x6055, 0xAEA5, 0x606D, 0xAEA6, 0x6069, + 0xAEA7, 0x606F, 0xAEA8, 0x6084, 0xAEA9, 0x609F, 0xAEAA, 0x609A, + 0xAEAB, 0x608D, 0xAEAC, 0x6094, 0xAEAD, 0x608C, 0xAEAE, 0x6085, + 0xAEAF, 0x6096, 0xAEB0, 0x6247, 0xAEB1, 0x62F3, 0xAEB2, 0x6308, + 0xAEB3, 0x62FF, 0xAEB4, 0x634E, 0xAEB5, 0x633E, 0xAEB6, 0x632F, + 0xAEB7, 0x6355, 0xAEB8, 0x6342, 0xAEB9, 0x6346, 0xAEBA, 0x634F, + 0xAEBB, 0x6349, 0xAEBC, 0x633A, 0xAEBD, 0x6350, 0xAEBE, 0x633D, + 0xAEBF, 0x632A, 0xAEC0, 0x632B, 0xAEC1, 0x6328, 0xAEC2, 0x634D, + 0xAEC3, 0x634C, 0xAEC4, 0x6548, 0xAEC5, 0x6549, 0xAEC6, 0x6599, + 0xAEC7, 0x65C1, 0xAEC8, 0x65C5, 0xAEC9, 0x6642, 0xAECA, 0x6649, + 0xAECB, 0x664F, 0xAECC, 0x6643, 0xAECD, 0x6652, 0xAECE, 0x664C, + 0xAECF, 0x6645, 0xAED0, 0x6641, 0xAED1, 0x66F8, 0xAED2, 0x6714, + 0xAED3, 0x6715, 0xAED4, 0x6717, 0xAED5, 0x6821, 0xAED6, 0x6838, + 0xAED7, 0x6848, 0xAED8, 0x6846, 0xAED9, 0x6853, 0xAEDA, 0x6839, + 0xAEDB, 0x6842, 0xAEDC, 0x6854, 0xAEDD, 0x6829, 0xAEDE, 0x68B3, + 0xAEDF, 0x6817, 0xAEE0, 0x684C, 0xAEE1, 0x6851, 0xAEE2, 0x683D, + 0xAEE3, 0x67F4, 0xAEE4, 0x6850, 0xAEE5, 0x6840, 0xAEE6, 0x683C, + 0xAEE7, 0x6843, 0xAEE8, 0x682A, 0xAEE9, 0x6845, 0xAEEA, 0x6813, + 0xAEEB, 0x6818, 0xAEEC, 0x6841, 0xAEED, 0x6B8A, 0xAEEE, 0x6B89, + 0xAEEF, 0x6BB7, 0xAEF0, 0x6C23, 0xAEF1, 0x6C27, 0xAEF2, 0x6C28, + 0xAEF3, 0x6C26, 0xAEF4, 0x6C24, 0xAEF5, 0x6CF0, 0xAEF6, 0x6D6A, + 0xAEF7, 0x6D95, 0xAEF8, 0x6D88, 0xAEF9, 0x6D87, 0xAEFA, 0x6D66, + 0xAEFB, 0x6D78, 0xAEFC, 0x6D77, 0xAEFD, 0x6D59, 0xAEFE, 0x6D93, + 0xAF40, 0x6D6C, 0xAF41, 0x6D89, 0xAF42, 0x6D6E, 0xAF43, 0x6D5A, + 0xAF44, 0x6D74, 0xAF45, 0x6D69, 0xAF46, 0x6D8C, 0xAF47, 0x6D8A, + 0xAF48, 0x6D79, 0xAF49, 0x6D85, 0xAF4A, 0x6D65, 0xAF4B, 0x6D94, + 0xAF4C, 0x70CA, 0xAF4D, 0x70D8, 0xAF4E, 0x70E4, 0xAF4F, 0x70D9, + 0xAF50, 0x70C8, 0xAF51, 0x70CF, 0xAF52, 0x7239, 0xAF53, 0x7279, + 0xAF54, 0x72FC, 0xAF55, 0x72F9, 0xAF56, 0x72FD, 0xAF57, 0x72F8, + 0xAF58, 0x72F7, 0xAF59, 0x7386, 0xAF5A, 0x73ED, 0xAF5B, 0x7409, + 0xAF5C, 0x73EE, 0xAF5D, 0x73E0, 0xAF5E, 0x73EA, 0xAF5F, 0x73DE, + 0xAF60, 0x7554, 0xAF61, 0x755D, 0xAF62, 0x755C, 0xAF63, 0x755A, + 0xAF64, 0x7559, 0xAF65, 0x75BE, 0xAF66, 0x75C5, 0xAF67, 0x75C7, + 0xAF68, 0x75B2, 0xAF69, 0x75B3, 0xAF6A, 0x75BD, 0xAF6B, 0x75BC, + 0xAF6C, 0x75B9, 0xAF6D, 0x75C2, 0xAF6E, 0x75B8, 0xAF6F, 0x768B, + 0xAF70, 0x76B0, 0xAF71, 0x76CA, 0xAF72, 0x76CD, 0xAF73, 0x76CE, + 0xAF74, 0x7729, 0xAF75, 0x771F, 0xAF76, 0x7720, 0xAF77, 0x7728, + 0xAF78, 0x77E9, 0xAF79, 0x7830, 0xAF7A, 0x7827, 0xAF7B, 0x7838, + 0xAF7C, 0x781D, 0xAF7D, 0x7834, 0xAF7E, 0x7837, 0xAFA1, 0x7825, + 0xAFA2, 0x782D, 0xAFA3, 0x7820, 0xAFA4, 0x781F, 0xAFA5, 0x7832, + 0xAFA6, 0x7955, 0xAFA7, 0x7950, 0xAFA8, 0x7960, 0xAFA9, 0x795F, + 0xAFAA, 0x7956, 0xAFAB, 0x795E, 0xAFAC, 0x795D, 0xAFAD, 0x7957, + 0xAFAE, 0x795A, 0xAFAF, 0x79E4, 0xAFB0, 0x79E3, 0xAFB1, 0x79E7, + 0xAFB2, 0x79DF, 0xAFB3, 0x79E6, 0xAFB4, 0x79E9, 0xAFB5, 0x79D8, + 0xAFB6, 0x7A84, 0xAFB7, 0x7A88, 0xAFB8, 0x7AD9, 0xAFB9, 0x7B06, + 0xAFBA, 0x7B11, 0xAFBB, 0x7C89, 0xAFBC, 0x7D21, 0xAFBD, 0x7D17, + 0xAFBE, 0x7D0B, 0xAFBF, 0x7D0A, 0xAFC0, 0x7D20, 0xAFC1, 0x7D22, + 0xAFC2, 0x7D14, 0xAFC3, 0x7D10, 0xAFC4, 0x7D15, 0xAFC5, 0x7D1A, + 0xAFC6, 0x7D1C, 0xAFC7, 0x7D0D, 0xAFC8, 0x7D19, 0xAFC9, 0x7D1B, + 0xAFCA, 0x7F3A, 0xAFCB, 0x7F5F, 0xAFCC, 0x7F94, 0xAFCD, 0x7FC5, + 0xAFCE, 0x7FC1, 0xAFCF, 0x8006, 0xAFD0, 0x8018, 0xAFD1, 0x8015, + 0xAFD2, 0x8019, 0xAFD3, 0x8017, 0xAFD4, 0x803D, 0xAFD5, 0x803F, + 0xAFD6, 0x80F1, 0xAFD7, 0x8102, 0xAFD8, 0x80F0, 0xAFD9, 0x8105, + 0xAFDA, 0x80ED, 0xAFDB, 0x80F4, 0xAFDC, 0x8106, 0xAFDD, 0x80F8, + 0xAFDE, 0x80F3, 0xAFDF, 0x8108, 0xAFE0, 0x80FD, 0xAFE1, 0x810A, + 0xAFE2, 0x80FC, 0xAFE3, 0x80EF, 0xAFE4, 0x81ED, 0xAFE5, 0x81EC, + 0xAFE6, 0x8200, 0xAFE7, 0x8210, 0xAFE8, 0x822A, 0xAFE9, 0x822B, + 0xAFEA, 0x8228, 0xAFEB, 0x822C, 0xAFEC, 0x82BB, 0xAFED, 0x832B, + 0xAFEE, 0x8352, 0xAFEF, 0x8354, 0xAFF0, 0x834A, 0xAFF1, 0x8338, + 0xAFF2, 0x8350, 0xAFF3, 0x8349, 0xAFF4, 0x8335, 0xAFF5, 0x8334, + 0xAFF6, 0x834F, 0xAFF7, 0x8332, 0xAFF8, 0x8339, 0xAFF9, 0x8336, + 0xAFFA, 0x8317, 0xAFFB, 0x8340, 0xAFFC, 0x8331, 0xAFFD, 0x8328, + 0xAFFE, 0x8343, 0xB040, 0x8654, 0xB041, 0x868A, 0xB042, 0x86AA, + 0xB043, 0x8693, 0xB044, 0x86A4, 0xB045, 0x86A9, 0xB046, 0x868C, + 0xB047, 0x86A3, 0xB048, 0x869C, 0xB049, 0x8870, 0xB04A, 0x8877, + 0xB04B, 0x8881, 0xB04C, 0x8882, 0xB04D, 0x887D, 0xB04E, 0x8879, + 0xB04F, 0x8A18, 0xB050, 0x8A10, 0xB051, 0x8A0E, 0xB052, 0x8A0C, + 0xB053, 0x8A15, 0xB054, 0x8A0A, 0xB055, 0x8A17, 0xB056, 0x8A13, + 0xB057, 0x8A16, 0xB058, 0x8A0F, 0xB059, 0x8A11, 0xB05A, 0x8C48, + 0xB05B, 0x8C7A, 0xB05C, 0x8C79, 0xB05D, 0x8CA1, 0xB05E, 0x8CA2, + 0xB05F, 0x8D77, 0xB060, 0x8EAC, 0xB061, 0x8ED2, 0xB062, 0x8ED4, + 0xB063, 0x8ECF, 0xB064, 0x8FB1, 0xB065, 0x9001, 0xB066, 0x9006, + 0xB067, 0x8FF7, 0xB068, 0x9000, 0xB069, 0x8FFA, 0xB06A, 0x8FF4, + 0xB06B, 0x9003, 0xB06C, 0x8FFD, 0xB06D, 0x9005, 0xB06E, 0x8FF8, + 0xB06F, 0x9095, 0xB070, 0x90E1, 0xB071, 0x90DD, 0xB072, 0x90E2, + 0xB073, 0x9152, 0xB074, 0x914D, 0xB075, 0x914C, 0xB076, 0x91D8, + 0xB077, 0x91DD, 0xB078, 0x91D7, 0xB079, 0x91DC, 0xB07A, 0x91D9, + 0xB07B, 0x9583, 0xB07C, 0x9662, 0xB07D, 0x9663, 0xB07E, 0x9661, + 0xB0A1, 0x965B, 0xB0A2, 0x965D, 0xB0A3, 0x9664, 0xB0A4, 0x9658, + 0xB0A5, 0x965E, 0xB0A6, 0x96BB, 0xB0A7, 0x98E2, 0xB0A8, 0x99AC, + 0xB0A9, 0x9AA8, 0xB0AA, 0x9AD8, 0xB0AB, 0x9B25, 0xB0AC, 0x9B32, + 0xB0AD, 0x9B3C, 0xB0AE, 0x4E7E, 0xB0AF, 0x507A, 0xB0B0, 0x507D, + 0xB0B1, 0x505C, 0xB0B2, 0x5047, 0xB0B3, 0x5043, 0xB0B4, 0x504C, + 0xB0B5, 0x505A, 0xB0B6, 0x5049, 0xB0B7, 0x5065, 0xB0B8, 0x5076, + 0xB0B9, 0x504E, 0xB0BA, 0x5055, 0xB0BB, 0x5075, 0xB0BC, 0x5074, + 0xB0BD, 0x5077, 0xB0BE, 0x504F, 0xB0BF, 0x500F, 0xB0C0, 0x506F, + 0xB0C1, 0x506D, 0xB0C2, 0x515C, 0xB0C3, 0x5195, 0xB0C4, 0x51F0, + 0xB0C5, 0x526A, 0xB0C6, 0x526F, 0xB0C7, 0x52D2, 0xB0C8, 0x52D9, + 0xB0C9, 0x52D8, 0xB0CA, 0x52D5, 0xB0CB, 0x5310, 0xB0CC, 0x530F, + 0xB0CD, 0x5319, 0xB0CE, 0x533F, 0xB0CF, 0x5340, 0xB0D0, 0x533E, + 0xB0D1, 0x53C3, 0xB0D2, 0x66FC, 0xB0D3, 0x5546, 0xB0D4, 0x556A, + 0xB0D5, 0x5566, 0xB0D6, 0x5544, 0xB0D7, 0x555E, 0xB0D8, 0x5561, + 0xB0D9, 0x5543, 0xB0DA, 0x554A, 0xB0DB, 0x5531, 0xB0DC, 0x5556, + 0xB0DD, 0x554F, 0xB0DE, 0x5555, 0xB0DF, 0x552F, 0xB0E0, 0x5564, + 0xB0E1, 0x5538, 0xB0E2, 0x552E, 0xB0E3, 0x555C, 0xB0E4, 0x552C, + 0xB0E5, 0x5563, 0xB0E6, 0x5533, 0xB0E7, 0x5541, 0xB0E8, 0x5557, + 0xB0E9, 0x5708, 0xB0EA, 0x570B, 0xB0EB, 0x5709, 0xB0EC, 0x57DF, + 0xB0ED, 0x5805, 0xB0EE, 0x580A, 0xB0EF, 0x5806, 0xB0F0, 0x57E0, + 0xB0F1, 0x57E4, 0xB0F2, 0x57FA, 0xB0F3, 0x5802, 0xB0F4, 0x5835, + 0xB0F5, 0x57F7, 0xB0F6, 0x57F9, 0xB0F7, 0x5920, 0xB0F8, 0x5962, + 0xB0F9, 0x5A36, 0xB0FA, 0x5A41, 0xB0FB, 0x5A49, 0xB0FC, 0x5A66, + 0xB0FD, 0x5A6A, 0xB0FE, 0x5A40, 0xB140, 0x5A3C, 0xB141, 0x5A62, + 0xB142, 0x5A5A, 0xB143, 0x5A46, 0xB144, 0x5A4A, 0xB145, 0x5B70, + 0xB146, 0x5BC7, 0xB147, 0x5BC5, 0xB148, 0x5BC4, 0xB149, 0x5BC2, + 0xB14A, 0x5BBF, 0xB14B, 0x5BC6, 0xB14C, 0x5C09, 0xB14D, 0x5C08, + 0xB14E, 0x5C07, 0xB14F, 0x5C60, 0xB150, 0x5C5C, 0xB151, 0x5C5D, + 0xB152, 0x5D07, 0xB153, 0x5D06, 0xB154, 0x5D0E, 0xB155, 0x5D1B, + 0xB156, 0x5D16, 0xB157, 0x5D22, 0xB158, 0x5D11, 0xB159, 0x5D29, + 0xB15A, 0x5D14, 0xB15B, 0x5D19, 0xB15C, 0x5D24, 0xB15D, 0x5D27, + 0xB15E, 0x5D17, 0xB15F, 0x5DE2, 0xB160, 0x5E38, 0xB161, 0x5E36, + 0xB162, 0x5E33, 0xB163, 0x5E37, 0xB164, 0x5EB7, 0xB165, 0x5EB8, + 0xB166, 0x5EB6, 0xB167, 0x5EB5, 0xB168, 0x5EBE, 0xB169, 0x5F35, + 0xB16A, 0x5F37, 0xB16B, 0x5F57, 0xB16C, 0x5F6C, 0xB16D, 0x5F69, + 0xB16E, 0x5F6B, 0xB16F, 0x5F97, 0xB170, 0x5F99, 0xB171, 0x5F9E, + 0xB172, 0x5F98, 0xB173, 0x5FA1, 0xB174, 0x5FA0, 0xB175, 0x5F9C, + 0xB176, 0x607F, 0xB177, 0x60A3, 0xB178, 0x6089, 0xB179, 0x60A0, + 0xB17A, 0x60A8, 0xB17B, 0x60CB, 0xB17C, 0x60B4, 0xB17D, 0x60E6, + 0xB17E, 0x60BD, 0xB1A1, 0x60C5, 0xB1A2, 0x60BB, 0xB1A3, 0x60B5, + 0xB1A4, 0x60DC, 0xB1A5, 0x60BC, 0xB1A6, 0x60D8, 0xB1A7, 0x60D5, + 0xB1A8, 0x60C6, 0xB1A9, 0x60DF, 0xB1AA, 0x60B8, 0xB1AB, 0x60DA, + 0xB1AC, 0x60C7, 0xB1AD, 0x621A, 0xB1AE, 0x621B, 0xB1AF, 0x6248, + 0xB1B0, 0x63A0, 0xB1B1, 0x63A7, 0xB1B2, 0x6372, 0xB1B3, 0x6396, + 0xB1B4, 0x63A2, 0xB1B5, 0x63A5, 0xB1B6, 0x6377, 0xB1B7, 0x6367, + 0xB1B8, 0x6398, 0xB1B9, 0x63AA, 0xB1BA, 0x6371, 0xB1BB, 0x63A9, + 0xB1BC, 0x6389, 0xB1BD, 0x6383, 0xB1BE, 0x639B, 0xB1BF, 0x636B, + 0xB1C0, 0x63A8, 0xB1C1, 0x6384, 0xB1C2, 0x6388, 0xB1C3, 0x6399, + 0xB1C4, 0x63A1, 0xB1C5, 0x63AC, 0xB1C6, 0x6392, 0xB1C7, 0x638F, + 0xB1C8, 0x6380, 0xB1C9, 0x637B, 0xB1CA, 0x6369, 0xB1CB, 0x6368, + 0xB1CC, 0x637A, 0xB1CD, 0x655D, 0xB1CE, 0x6556, 0xB1CF, 0x6551, + 0xB1D0, 0x6559, 0xB1D1, 0x6557, 0xB1D2, 0x555F, 0xB1D3, 0x654F, + 0xB1D4, 0x6558, 0xB1D5, 0x6555, 0xB1D6, 0x6554, 0xB1D7, 0x659C, + 0xB1D8, 0x659B, 0xB1D9, 0x65AC, 0xB1DA, 0x65CF, 0xB1DB, 0x65CB, + 0xB1DC, 0x65CC, 0xB1DD, 0x65CE, 0xB1DE, 0x665D, 0xB1DF, 0x665A, + 0xB1E0, 0x6664, 0xB1E1, 0x6668, 0xB1E2, 0x6666, 0xB1E3, 0x665E, + 0xB1E4, 0x66F9, 0xB1E5, 0x52D7, 0xB1E6, 0x671B, 0xB1E7, 0x6881, + 0xB1E8, 0x68AF, 0xB1E9, 0x68A2, 0xB1EA, 0x6893, 0xB1EB, 0x68B5, + 0xB1EC, 0x687F, 0xB1ED, 0x6876, 0xB1EE, 0x68B1, 0xB1EF, 0x68A7, + 0xB1F0, 0x6897, 0xB1F1, 0x68B0, 0xB1F2, 0x6883, 0xB1F3, 0x68C4, + 0xB1F4, 0x68AD, 0xB1F5, 0x6886, 0xB1F6, 0x6885, 0xB1F7, 0x6894, + 0xB1F8, 0x689D, 0xB1F9, 0x68A8, 0xB1FA, 0x689F, 0xB1FB, 0x68A1, + 0xB1FC, 0x6882, 0xB1FD, 0x6B32, 0xB1FE, 0x6BBA, 0xB240, 0x6BEB, + 0xB241, 0x6BEC, 0xB242, 0x6C2B, 0xB243, 0x6D8E, 0xB244, 0x6DBC, + 0xB245, 0x6DF3, 0xB246, 0x6DD9, 0xB247, 0x6DB2, 0xB248, 0x6DE1, + 0xB249, 0x6DCC, 0xB24A, 0x6DE4, 0xB24B, 0x6DFB, 0xB24C, 0x6DFA, + 0xB24D, 0x6E05, 0xB24E, 0x6DC7, 0xB24F, 0x6DCB, 0xB250, 0x6DAF, + 0xB251, 0x6DD1, 0xB252, 0x6DAE, 0xB253, 0x6DDE, 0xB254, 0x6DF9, + 0xB255, 0x6DB8, 0xB256, 0x6DF7, 0xB257, 0x6DF5, 0xB258, 0x6DC5, + 0xB259, 0x6DD2, 0xB25A, 0x6E1A, 0xB25B, 0x6DB5, 0xB25C, 0x6DDA, + 0xB25D, 0x6DEB, 0xB25E, 0x6DD8, 0xB25F, 0x6DEA, 0xB260, 0x6DF1, + 0xB261, 0x6DEE, 0xB262, 0x6DE8, 0xB263, 0x6DC6, 0xB264, 0x6DC4, + 0xB265, 0x6DAA, 0xB266, 0x6DEC, 0xB267, 0x6DBF, 0xB268, 0x6DE6, + 0xB269, 0x70F9, 0xB26A, 0x7109, 0xB26B, 0x710A, 0xB26C, 0x70FD, + 0xB26D, 0x70EF, 0xB26E, 0x723D, 0xB26F, 0x727D, 0xB270, 0x7281, + 0xB271, 0x731C, 0xB272, 0x731B, 0xB273, 0x7316, 0xB274, 0x7313, + 0xB275, 0x7319, 0xB276, 0x7387, 0xB277, 0x7405, 0xB278, 0x740A, + 0xB279, 0x7403, 0xB27A, 0x7406, 0xB27B, 0x73FE, 0xB27C, 0x740D, + 0xB27D, 0x74E0, 0xB27E, 0x74F6, 0xB2A1, 0x74F7, 0xB2A2, 0x751C, + 0xB2A3, 0x7522, 0xB2A4, 0x7565, 0xB2A5, 0x7566, 0xB2A6, 0x7562, + 0xB2A7, 0x7570, 0xB2A8, 0x758F, 0xB2A9, 0x75D4, 0xB2AA, 0x75D5, + 0xB2AB, 0x75B5, 0xB2AC, 0x75CA, 0xB2AD, 0x75CD, 0xB2AE, 0x768E, + 0xB2AF, 0x76D4, 0xB2B0, 0x76D2, 0xB2B1, 0x76DB, 0xB2B2, 0x7737, + 0xB2B3, 0x773E, 0xB2B4, 0x773C, 0xB2B5, 0x7736, 0xB2B6, 0x7738, + 0xB2B7, 0x773A, 0xB2B8, 0x786B, 0xB2B9, 0x7843, 0xB2BA, 0x784E, + 0xB2BB, 0x7965, 0xB2BC, 0x7968, 0xB2BD, 0x796D, 0xB2BE, 0x79FB, + 0xB2BF, 0x7A92, 0xB2C0, 0x7A95, 0xB2C1, 0x7B20, 0xB2C2, 0x7B28, + 0xB2C3, 0x7B1B, 0xB2C4, 0x7B2C, 0xB2C5, 0x7B26, 0xB2C6, 0x7B19, + 0xB2C7, 0x7B1E, 0xB2C8, 0x7B2E, 0xB2C9, 0x7C92, 0xB2CA, 0x7C97, + 0xB2CB, 0x7C95, 0xB2CC, 0x7D46, 0xB2CD, 0x7D43, 0xB2CE, 0x7D71, + 0xB2CF, 0x7D2E, 0xB2D0, 0x7D39, 0xB2D1, 0x7D3C, 0xB2D2, 0x7D40, + 0xB2D3, 0x7D30, 0xB2D4, 0x7D33, 0xB2D5, 0x7D44, 0xB2D6, 0x7D2F, + 0xB2D7, 0x7D42, 0xB2D8, 0x7D32, 0xB2D9, 0x7D31, 0xB2DA, 0x7F3D, + 0xB2DB, 0x7F9E, 0xB2DC, 0x7F9A, 0xB2DD, 0x7FCC, 0xB2DE, 0x7FCE, + 0xB2DF, 0x7FD2, 0xB2E0, 0x801C, 0xB2E1, 0x804A, 0xB2E2, 0x8046, + 0xB2E3, 0x812F, 0xB2E4, 0x8116, 0xB2E5, 0x8123, 0xB2E6, 0x812B, + 0xB2E7, 0x8129, 0xB2E8, 0x8130, 0xB2E9, 0x8124, 0xB2EA, 0x8202, + 0xB2EB, 0x8235, 0xB2EC, 0x8237, 0xB2ED, 0x8236, 0xB2EE, 0x8239, + 0xB2EF, 0x838E, 0xB2F0, 0x839E, 0xB2F1, 0x8398, 0xB2F2, 0x8378, + 0xB2F3, 0x83A2, 0xB2F4, 0x8396, 0xB2F5, 0x83BD, 0xB2F6, 0x83AB, + 0xB2F7, 0x8392, 0xB2F8, 0x838A, 0xB2F9, 0x8393, 0xB2FA, 0x8389, + 0xB2FB, 0x83A0, 0xB2FC, 0x8377, 0xB2FD, 0x837B, 0xB2FE, 0x837C, + 0xB340, 0x8386, 0xB341, 0x83A7, 0xB342, 0x8655, 0xB343, 0x5F6A, + 0xB344, 0x86C7, 0xB345, 0x86C0, 0xB346, 0x86B6, 0xB347, 0x86C4, + 0xB348, 0x86B5, 0xB349, 0x86C6, 0xB34A, 0x86CB, 0xB34B, 0x86B1, + 0xB34C, 0x86AF, 0xB34D, 0x86C9, 0xB34E, 0x8853, 0xB34F, 0x889E, + 0xB350, 0x8888, 0xB351, 0x88AB, 0xB352, 0x8892, 0xB353, 0x8896, + 0xB354, 0x888D, 0xB355, 0x888B, 0xB356, 0x8993, 0xB357, 0x898F, + 0xB358, 0x8A2A, 0xB359, 0x8A1D, 0xB35A, 0x8A23, 0xB35B, 0x8A25, + 0xB35C, 0x8A31, 0xB35D, 0x8A2D, 0xB35E, 0x8A1F, 0xB35F, 0x8A1B, + 0xB360, 0x8A22, 0xB361, 0x8C49, 0xB362, 0x8C5A, 0xB363, 0x8CA9, + 0xB364, 0x8CAC, 0xB365, 0x8CAB, 0xB366, 0x8CA8, 0xB367, 0x8CAA, + 0xB368, 0x8CA7, 0xB369, 0x8D67, 0xB36A, 0x8D66, 0xB36B, 0x8DBE, + 0xB36C, 0x8DBA, 0xB36D, 0x8EDB, 0xB36E, 0x8EDF, 0xB36F, 0x9019, + 0xB370, 0x900D, 0xB371, 0x901A, 0xB372, 0x9017, 0xB373, 0x9023, + 0xB374, 0x901F, 0xB375, 0x901D, 0xB376, 0x9010, 0xB377, 0x9015, + 0xB378, 0x901E, 0xB379, 0x9020, 0xB37A, 0x900F, 0xB37B, 0x9022, + 0xB37C, 0x9016, 0xB37D, 0x901B, 0xB37E, 0x9014, 0xB3A1, 0x90E8, + 0xB3A2, 0x90ED, 0xB3A3, 0x90FD, 0xB3A4, 0x9157, 0xB3A5, 0x91CE, + 0xB3A6, 0x91F5, 0xB3A7, 0x91E6, 0xB3A8, 0x91E3, 0xB3A9, 0x91E7, + 0xB3AA, 0x91ED, 0xB3AB, 0x91E9, 0xB3AC, 0x9589, 0xB3AD, 0x966A, + 0xB3AE, 0x9675, 0xB3AF, 0x9673, 0xB3B0, 0x9678, 0xB3B1, 0x9670, + 0xB3B2, 0x9674, 0xB3B3, 0x9676, 0xB3B4, 0x9677, 0xB3B5, 0x966C, + 0xB3B6, 0x96C0, 0xB3B7, 0x96EA, 0xB3B8, 0x96E9, 0xB3B9, 0x7AE0, + 0xB3BA, 0x7ADF, 0xB3BB, 0x9802, 0xB3BC, 0x9803, 0xB3BD, 0x9B5A, + 0xB3BE, 0x9CE5, 0xB3BF, 0x9E75, 0xB3C0, 0x9E7F, 0xB3C1, 0x9EA5, + 0xB3C2, 0x9EBB, 0xB3C3, 0x50A2, 0xB3C4, 0x508D, 0xB3C5, 0x5085, + 0xB3C6, 0x5099, 0xB3C7, 0x5091, 0xB3C8, 0x5080, 0xB3C9, 0x5096, + 0xB3CA, 0x5098, 0xB3CB, 0x509A, 0xB3CC, 0x6700, 0xB3CD, 0x51F1, + 0xB3CE, 0x5272, 0xB3CF, 0x5274, 0xB3D0, 0x5275, 0xB3D1, 0x5269, + 0xB3D2, 0x52DE, 0xB3D3, 0x52DD, 0xB3D4, 0x52DB, 0xB3D5, 0x535A, + 0xB3D6, 0x53A5, 0xB3D7, 0x557B, 0xB3D8, 0x5580, 0xB3D9, 0x55A7, + 0xB3DA, 0x557C, 0xB3DB, 0x558A, 0xB3DC, 0x559D, 0xB3DD, 0x5598, + 0xB3DE, 0x5582, 0xB3DF, 0x559C, 0xB3E0, 0x55AA, 0xB3E1, 0x5594, + 0xB3E2, 0x5587, 0xB3E3, 0x558B, 0xB3E4, 0x5583, 0xB3E5, 0x55B3, + 0xB3E6, 0x55AE, 0xB3E7, 0x559F, 0xB3E8, 0x553E, 0xB3E9, 0x55B2, + 0xB3EA, 0x559A, 0xB3EB, 0x55BB, 0xB3EC, 0x55AC, 0xB3ED, 0x55B1, + 0xB3EE, 0x557E, 0xB3EF, 0x5589, 0xB3F0, 0x55AB, 0xB3F1, 0x5599, + 0xB3F2, 0x570D, 0xB3F3, 0x582F, 0xB3F4, 0x582A, 0xB3F5, 0x5834, + 0xB3F6, 0x5824, 0xB3F7, 0x5830, 0xB3F8, 0x5831, 0xB3F9, 0x5821, + 0xB3FA, 0x581D, 0xB3FB, 0x5820, 0xB3FC, 0x58F9, 0xB3FD, 0x58FA, + 0xB3FE, 0x5960, 0xB440, 0x5A77, 0xB441, 0x5A9A, 0xB442, 0x5A7F, + 0xB443, 0x5A92, 0xB444, 0x5A9B, 0xB445, 0x5AA7, 0xB446, 0x5B73, + 0xB447, 0x5B71, 0xB448, 0x5BD2, 0xB449, 0x5BCC, 0xB44A, 0x5BD3, + 0xB44B, 0x5BD0, 0xB44C, 0x5C0A, 0xB44D, 0x5C0B, 0xB44E, 0x5C31, + 0xB44F, 0x5D4C, 0xB450, 0x5D50, 0xB451, 0x5D34, 0xB452, 0x5D47, + 0xB453, 0x5DFD, 0xB454, 0x5E45, 0xB455, 0x5E3D, 0xB456, 0x5E40, + 0xB457, 0x5E43, 0xB458, 0x5E7E, 0xB459, 0x5ECA, 0xB45A, 0x5EC1, + 0xB45B, 0x5EC2, 0xB45C, 0x5EC4, 0xB45D, 0x5F3C, 0xB45E, 0x5F6D, + 0xB45F, 0x5FA9, 0xB460, 0x5FAA, 0xB461, 0x5FA8, 0xB462, 0x60D1, + 0xB463, 0x60E1, 0xB464, 0x60B2, 0xB465, 0x60B6, 0xB466, 0x60E0, + 0xB467, 0x611C, 0xB468, 0x6123, 0xB469, 0x60FA, 0xB46A, 0x6115, + 0xB46B, 0x60F0, 0xB46C, 0x60FB, 0xB46D, 0x60F4, 0xB46E, 0x6168, + 0xB46F, 0x60F1, 0xB470, 0x610E, 0xB471, 0x60F6, 0xB472, 0x6109, + 0xB473, 0x6100, 0xB474, 0x6112, 0xB475, 0x621F, 0xB476, 0x6249, + 0xB477, 0x63A3, 0xB478, 0x638C, 0xB479, 0x63CF, 0xB47A, 0x63C0, + 0xB47B, 0x63E9, 0xB47C, 0x63C9, 0xB47D, 0x63C6, 0xB47E, 0x63CD, + 0xB4A1, 0x63D2, 0xB4A2, 0x63E3, 0xB4A3, 0x63D0, 0xB4A4, 0x63E1, + 0xB4A5, 0x63D6, 0xB4A6, 0x63ED, 0xB4A7, 0x63EE, 0xB4A8, 0x6376, + 0xB4A9, 0x63F4, 0xB4AA, 0x63EA, 0xB4AB, 0x63DB, 0xB4AC, 0x6452, + 0xB4AD, 0x63DA, 0xB4AE, 0x63F9, 0xB4AF, 0x655E, 0xB4B0, 0x6566, + 0xB4B1, 0x6562, 0xB4B2, 0x6563, 0xB4B3, 0x6591, 0xB4B4, 0x6590, + 0xB4B5, 0x65AF, 0xB4B6, 0x666E, 0xB4B7, 0x6670, 0xB4B8, 0x6674, + 0xB4B9, 0x6676, 0xB4BA, 0x666F, 0xB4BB, 0x6691, 0xB4BC, 0x667A, + 0xB4BD, 0x667E, 0xB4BE, 0x6677, 0xB4BF, 0x66FE, 0xB4C0, 0x66FF, + 0xB4C1, 0x671F, 0xB4C2, 0x671D, 0xB4C3, 0x68FA, 0xB4C4, 0x68D5, + 0xB4C5, 0x68E0, 0xB4C6, 0x68D8, 0xB4C7, 0x68D7, 0xB4C8, 0x6905, + 0xB4C9, 0x68DF, 0xB4CA, 0x68F5, 0xB4CB, 0x68EE, 0xB4CC, 0x68E7, + 0xB4CD, 0x68F9, 0xB4CE, 0x68D2, 0xB4CF, 0x68F2, 0xB4D0, 0x68E3, + 0xB4D1, 0x68CB, 0xB4D2, 0x68CD, 0xB4D3, 0x690D, 0xB4D4, 0x6912, + 0xB4D5, 0x690E, 0xB4D6, 0x68C9, 0xB4D7, 0x68DA, 0xB4D8, 0x696E, + 0xB4D9, 0x68FB, 0xB4DA, 0x6B3E, 0xB4DB, 0x6B3A, 0xB4DC, 0x6B3D, + 0xB4DD, 0x6B98, 0xB4DE, 0x6B96, 0xB4DF, 0x6BBC, 0xB4E0, 0x6BEF, + 0xB4E1, 0x6C2E, 0xB4E2, 0x6C2F, 0xB4E3, 0x6C2C, 0xB4E4, 0x6E2F, + 0xB4E5, 0x6E38, 0xB4E6, 0x6E54, 0xB4E7, 0x6E21, 0xB4E8, 0x6E32, + 0xB4E9, 0x6E67, 0xB4EA, 0x6E4A, 0xB4EB, 0x6E20, 0xB4EC, 0x6E25, + 0xB4ED, 0x6E23, 0xB4EE, 0x6E1B, 0xB4EF, 0x6E5B, 0xB4F0, 0x6E58, + 0xB4F1, 0x6E24, 0xB4F2, 0x6E56, 0xB4F3, 0x6E6E, 0xB4F4, 0x6E2D, + 0xB4F5, 0x6E26, 0xB4F6, 0x6E6F, 0xB4F7, 0x6E34, 0xB4F8, 0x6E4D, + 0xB4F9, 0x6E3A, 0xB4FA, 0x6E2C, 0xB4FB, 0x6E43, 0xB4FC, 0x6E1D, + 0xB4FD, 0x6E3E, 0xB4FE, 0x6ECB, 0xB540, 0x6E89, 0xB541, 0x6E19, + 0xB542, 0x6E4E, 0xB543, 0x6E63, 0xB544, 0x6E44, 0xB545, 0x6E72, + 0xB546, 0x6E69, 0xB547, 0x6E5F, 0xB548, 0x7119, 0xB549, 0x711A, + 0xB54A, 0x7126, 0xB54B, 0x7130, 0xB54C, 0x7121, 0xB54D, 0x7136, + 0xB54E, 0x716E, 0xB54F, 0x711C, 0xB550, 0x724C, 0xB551, 0x7284, + 0xB552, 0x7280, 0xB553, 0x7336, 0xB554, 0x7325, 0xB555, 0x7334, + 0xB556, 0x7329, 0xB557, 0x743A, 0xB558, 0x742A, 0xB559, 0x7433, + 0xB55A, 0x7422, 0xB55B, 0x7425, 0xB55C, 0x7435, 0xB55D, 0x7436, + 0xB55E, 0x7434, 0xB55F, 0x742F, 0xB560, 0x741B, 0xB561, 0x7426, + 0xB562, 0x7428, 0xB563, 0x7525, 0xB564, 0x7526, 0xB565, 0x756B, + 0xB566, 0x756A, 0xB567, 0x75E2, 0xB568, 0x75DB, 0xB569, 0x75E3, + 0xB56A, 0x75D9, 0xB56B, 0x75D8, 0xB56C, 0x75DE, 0xB56D, 0x75E0, + 0xB56E, 0x767B, 0xB56F, 0x767C, 0xB570, 0x7696, 0xB571, 0x7693, + 0xB572, 0x76B4, 0xB573, 0x76DC, 0xB574, 0x774F, 0xB575, 0x77ED, + 0xB576, 0x785D, 0xB577, 0x786C, 0xB578, 0x786F, 0xB579, 0x7A0D, + 0xB57A, 0x7A08, 0xB57B, 0x7A0B, 0xB57C, 0x7A05, 0xB57D, 0x7A00, + 0xB57E, 0x7A98, 0xB5A1, 0x7A97, 0xB5A2, 0x7A96, 0xB5A3, 0x7AE5, + 0xB5A4, 0x7AE3, 0xB5A5, 0x7B49, 0xB5A6, 0x7B56, 0xB5A7, 0x7B46, + 0xB5A8, 0x7B50, 0xB5A9, 0x7B52, 0xB5AA, 0x7B54, 0xB5AB, 0x7B4D, + 0xB5AC, 0x7B4B, 0xB5AD, 0x7B4F, 0xB5AE, 0x7B51, 0xB5AF, 0x7C9F, + 0xB5B0, 0x7CA5, 0xB5B1, 0x7D5E, 0xB5B2, 0x7D50, 0xB5B3, 0x7D68, + 0xB5B4, 0x7D55, 0xB5B5, 0x7D2B, 0xB5B6, 0x7D6E, 0xB5B7, 0x7D72, + 0xB5B8, 0x7D61, 0xB5B9, 0x7D66, 0xB5BA, 0x7D62, 0xB5BB, 0x7D70, + 0xB5BC, 0x7D73, 0xB5BD, 0x5584, 0xB5BE, 0x7FD4, 0xB5BF, 0x7FD5, + 0xB5C0, 0x800B, 0xB5C1, 0x8052, 0xB5C2, 0x8085, 0xB5C3, 0x8155, + 0xB5C4, 0x8154, 0xB5C5, 0x814B, 0xB5C6, 0x8151, 0xB5C7, 0x814E, + 0xB5C8, 0x8139, 0xB5C9, 0x8146, 0xB5CA, 0x813E, 0xB5CB, 0x814C, + 0xB5CC, 0x8153, 0xB5CD, 0x8174, 0xB5CE, 0x8212, 0xB5CF, 0x821C, + 0xB5D0, 0x83E9, 0xB5D1, 0x8403, 0xB5D2, 0x83F8, 0xB5D3, 0x840D, + 0xB5D4, 0x83E0, 0xB5D5, 0x83C5, 0xB5D6, 0x840B, 0xB5D7, 0x83C1, + 0xB5D8, 0x83EF, 0xB5D9, 0x83F1, 0xB5DA, 0x83F4, 0xB5DB, 0x8457, + 0xB5DC, 0x840A, 0xB5DD, 0x83F0, 0xB5DE, 0x840C, 0xB5DF, 0x83CC, + 0xB5E0, 0x83FD, 0xB5E1, 0x83F2, 0xB5E2, 0x83CA, 0xB5E3, 0x8438, + 0xB5E4, 0x840E, 0xB5E5, 0x8404, 0xB5E6, 0x83DC, 0xB5E7, 0x8407, + 0xB5E8, 0x83D4, 0xB5E9, 0x83DF, 0xB5EA, 0x865B, 0xB5EB, 0x86DF, + 0xB5EC, 0x86D9, 0xB5ED, 0x86ED, 0xB5EE, 0x86D4, 0xB5EF, 0x86DB, + 0xB5F0, 0x86E4, 0xB5F1, 0x86D0, 0xB5F2, 0x86DE, 0xB5F3, 0x8857, + 0xB5F4, 0x88C1, 0xB5F5, 0x88C2, 0xB5F6, 0x88B1, 0xB5F7, 0x8983, + 0xB5F8, 0x8996, 0xB5F9, 0x8A3B, 0xB5FA, 0x8A60, 0xB5FB, 0x8A55, + 0xB5FC, 0x8A5E, 0xB5FD, 0x8A3C, 0xB5FE, 0x8A41, 0xB640, 0x8A54, + 0xB641, 0x8A5B, 0xB642, 0x8A50, 0xB643, 0x8A46, 0xB644, 0x8A34, + 0xB645, 0x8A3A, 0xB646, 0x8A36, 0xB647, 0x8A56, 0xB648, 0x8C61, + 0xB649, 0x8C82, 0xB64A, 0x8CAF, 0xB64B, 0x8CBC, 0xB64C, 0x8CB3, + 0xB64D, 0x8CBD, 0xB64E, 0x8CC1, 0xB64F, 0x8CBB, 0xB650, 0x8CC0, + 0xB651, 0x8CB4, 0xB652, 0x8CB7, 0xB653, 0x8CB6, 0xB654, 0x8CBF, + 0xB655, 0x8CB8, 0xB656, 0x8D8A, 0xB657, 0x8D85, 0xB658, 0x8D81, + 0xB659, 0x8DCE, 0xB65A, 0x8DDD, 0xB65B, 0x8DCB, 0xB65C, 0x8DDA, + 0xB65D, 0x8DD1, 0xB65E, 0x8DCC, 0xB65F, 0x8DDB, 0xB660, 0x8DC6, + 0xB661, 0x8EFB, 0xB662, 0x8EF8, 0xB663, 0x8EFC, 0xB664, 0x8F9C, + 0xB665, 0x902E, 0xB666, 0x9035, 0xB667, 0x9031, 0xB668, 0x9038, + 0xB669, 0x9032, 0xB66A, 0x9036, 0xB66B, 0x9102, 0xB66C, 0x90F5, + 0xB66D, 0x9109, 0xB66E, 0x90FE, 0xB66F, 0x9163, 0xB670, 0x9165, + 0xB671, 0x91CF, 0xB672, 0x9214, 0xB673, 0x9215, 0xB674, 0x9223, + 0xB675, 0x9209, 0xB676, 0x921E, 0xB677, 0x920D, 0xB678, 0x9210, + 0xB679, 0x9207, 0xB67A, 0x9211, 0xB67B, 0x9594, 0xB67C, 0x958F, + 0xB67D, 0x958B, 0xB67E, 0x9591, 0xB6A1, 0x9593, 0xB6A2, 0x9592, + 0xB6A3, 0x958E, 0xB6A4, 0x968A, 0xB6A5, 0x968E, 0xB6A6, 0x968B, + 0xB6A7, 0x967D, 0xB6A8, 0x9685, 0xB6A9, 0x9686, 0xB6AA, 0x968D, + 0xB6AB, 0x9672, 0xB6AC, 0x9684, 0xB6AD, 0x96C1, 0xB6AE, 0x96C5, + 0xB6AF, 0x96C4, 0xB6B0, 0x96C6, 0xB6B1, 0x96C7, 0xB6B2, 0x96EF, + 0xB6B3, 0x96F2, 0xB6B4, 0x97CC, 0xB6B5, 0x9805, 0xB6B6, 0x9806, + 0xB6B7, 0x9808, 0xB6B8, 0x98E7, 0xB6B9, 0x98EA, 0xB6BA, 0x98EF, + 0xB6BB, 0x98E9, 0xB6BC, 0x98F2, 0xB6BD, 0x98ED, 0xB6BE, 0x99AE, + 0xB6BF, 0x99AD, 0xB6C0, 0x9EC3, 0xB6C1, 0x9ECD, 0xB6C2, 0x9ED1, + 0xB6C3, 0x4E82, 0xB6C4, 0x50AD, 0xB6C5, 0x50B5, 0xB6C6, 0x50B2, + 0xB6C7, 0x50B3, 0xB6C8, 0x50C5, 0xB6C9, 0x50BE, 0xB6CA, 0x50AC, + 0xB6CB, 0x50B7, 0xB6CC, 0x50BB, 0xB6CD, 0x50AF, 0xB6CE, 0x50C7, + 0xB6CF, 0x527F, 0xB6D0, 0x5277, 0xB6D1, 0x527D, 0xB6D2, 0x52DF, + 0xB6D3, 0x52E6, 0xB6D4, 0x52E4, 0xB6D5, 0x52E2, 0xB6D6, 0x52E3, + 0xB6D7, 0x532F, 0xB6D8, 0x55DF, 0xB6D9, 0x55E8, 0xB6DA, 0x55D3, + 0xB6DB, 0x55E6, 0xB6DC, 0x55CE, 0xB6DD, 0x55DC, 0xB6DE, 0x55C7, + 0xB6DF, 0x55D1, 0xB6E0, 0x55E3, 0xB6E1, 0x55E4, 0xB6E2, 0x55EF, + 0xB6E3, 0x55DA, 0xB6E4, 0x55E1, 0xB6E5, 0x55C5, 0xB6E6, 0x55C6, + 0xB6E7, 0x55E5, 0xB6E8, 0x55C9, 0xB6E9, 0x5712, 0xB6EA, 0x5713, + 0xB6EB, 0x585E, 0xB6EC, 0x5851, 0xB6ED, 0x5858, 0xB6EE, 0x5857, + 0xB6EF, 0x585A, 0xB6F0, 0x5854, 0xB6F1, 0x586B, 0xB6F2, 0x584C, + 0xB6F3, 0x586D, 0xB6F4, 0x584A, 0xB6F5, 0x5862, 0xB6F6, 0x5852, + 0xB6F7, 0x584B, 0xB6F8, 0x5967, 0xB6F9, 0x5AC1, 0xB6FA, 0x5AC9, + 0xB6FB, 0x5ACC, 0xB6FC, 0x5ABE, 0xB6FD, 0x5ABD, 0xB6FE, 0x5ABC, + 0xB740, 0x5AB3, 0xB741, 0x5AC2, 0xB742, 0x5AB2, 0xB743, 0x5D69, + 0xB744, 0x5D6F, 0xB745, 0x5E4C, 0xB746, 0x5E79, 0xB747, 0x5EC9, + 0xB748, 0x5EC8, 0xB749, 0x5F12, 0xB74A, 0x5F59, 0xB74B, 0x5FAC, + 0xB74C, 0x5FAE, 0xB74D, 0x611A, 0xB74E, 0x610F, 0xB74F, 0x6148, + 0xB750, 0x611F, 0xB751, 0x60F3, 0xB752, 0x611B, 0xB753, 0x60F9, + 0xB754, 0x6101, 0xB755, 0x6108, 0xB756, 0x614E, 0xB757, 0x614C, + 0xB758, 0x6144, 0xB759, 0x614D, 0xB75A, 0x613E, 0xB75B, 0x6134, + 0xB75C, 0x6127, 0xB75D, 0x610D, 0xB75E, 0x6106, 0xB75F, 0x6137, + 0xB760, 0x6221, 0xB761, 0x6222, 0xB762, 0x6413, 0xB763, 0x643E, + 0xB764, 0x641E, 0xB765, 0x642A, 0xB766, 0x642D, 0xB767, 0x643D, + 0xB768, 0x642C, 0xB769, 0x640F, 0xB76A, 0x641C, 0xB76B, 0x6414, + 0xB76C, 0x640D, 0xB76D, 0x6436, 0xB76E, 0x6416, 0xB76F, 0x6417, + 0xB770, 0x6406, 0xB771, 0x656C, 0xB772, 0x659F, 0xB773, 0x65B0, + 0xB774, 0x6697, 0xB775, 0x6689, 0xB776, 0x6687, 0xB777, 0x6688, + 0xB778, 0x6696, 0xB779, 0x6684, 0xB77A, 0x6698, 0xB77B, 0x668D, + 0xB77C, 0x6703, 0xB77D, 0x6994, 0xB77E, 0x696D, 0xB7A1, 0x695A, + 0xB7A2, 0x6977, 0xB7A3, 0x6960, 0xB7A4, 0x6954, 0xB7A5, 0x6975, + 0xB7A6, 0x6930, 0xB7A7, 0x6982, 0xB7A8, 0x694A, 0xB7A9, 0x6968, + 0xB7AA, 0x696B, 0xB7AB, 0x695E, 0xB7AC, 0x6953, 0xB7AD, 0x6979, + 0xB7AE, 0x6986, 0xB7AF, 0x695D, 0xB7B0, 0x6963, 0xB7B1, 0x695B, + 0xB7B2, 0x6B47, 0xB7B3, 0x6B72, 0xB7B4, 0x6BC0, 0xB7B5, 0x6BBF, + 0xB7B6, 0x6BD3, 0xB7B7, 0x6BFD, 0xB7B8, 0x6EA2, 0xB7B9, 0x6EAF, + 0xB7BA, 0x6ED3, 0xB7BB, 0x6EB6, 0xB7BC, 0x6EC2, 0xB7BD, 0x6E90, + 0xB7BE, 0x6E9D, 0xB7BF, 0x6EC7, 0xB7C0, 0x6EC5, 0xB7C1, 0x6EA5, + 0xB7C2, 0x6E98, 0xB7C3, 0x6EBC, 0xB7C4, 0x6EBA, 0xB7C5, 0x6EAB, + 0xB7C6, 0x6ED1, 0xB7C7, 0x6E96, 0xB7C8, 0x6E9C, 0xB7C9, 0x6EC4, + 0xB7CA, 0x6ED4, 0xB7CB, 0x6EAA, 0xB7CC, 0x6EA7, 0xB7CD, 0x6EB4, + 0xB7CE, 0x714E, 0xB7CF, 0x7159, 0xB7D0, 0x7169, 0xB7D1, 0x7164, + 0xB7D2, 0x7149, 0xB7D3, 0x7167, 0xB7D4, 0x715C, 0xB7D5, 0x716C, + 0xB7D6, 0x7166, 0xB7D7, 0x714C, 0xB7D8, 0x7165, 0xB7D9, 0x715E, + 0xB7DA, 0x7146, 0xB7DB, 0x7168, 0xB7DC, 0x7156, 0xB7DD, 0x723A, + 0xB7DE, 0x7252, 0xB7DF, 0x7337, 0xB7E0, 0x7345, 0xB7E1, 0x733F, + 0xB7E2, 0x733E, 0xB7E3, 0x746F, 0xB7E4, 0x745A, 0xB7E5, 0x7455, + 0xB7E6, 0x745F, 0xB7E7, 0x745E, 0xB7E8, 0x7441, 0xB7E9, 0x743F, + 0xB7EA, 0x7459, 0xB7EB, 0x745B, 0xB7EC, 0x745C, 0xB7ED, 0x7576, + 0xB7EE, 0x7578, 0xB7EF, 0x7600, 0xB7F0, 0x75F0, 0xB7F1, 0x7601, + 0xB7F2, 0x75F2, 0xB7F3, 0x75F1, 0xB7F4, 0x75FA, 0xB7F5, 0x75FF, + 0xB7F6, 0x75F4, 0xB7F7, 0x75F3, 0xB7F8, 0x76DE, 0xB7F9, 0x76DF, + 0xB7FA, 0x775B, 0xB7FB, 0x776B, 0xB7FC, 0x7766, 0xB7FD, 0x775E, + 0xB7FE, 0x7763, 0xB840, 0x7779, 0xB841, 0x776A, 0xB842, 0x776C, + 0xB843, 0x775C, 0xB844, 0x7765, 0xB845, 0x7768, 0xB846, 0x7762, + 0xB847, 0x77EE, 0xB848, 0x788E, 0xB849, 0x78B0, 0xB84A, 0x7897, + 0xB84B, 0x7898, 0xB84C, 0x788C, 0xB84D, 0x7889, 0xB84E, 0x787C, + 0xB84F, 0x7891, 0xB850, 0x7893, 0xB851, 0x787F, 0xB852, 0x797A, + 0xB853, 0x797F, 0xB854, 0x7981, 0xB855, 0x842C, 0xB856, 0x79BD, + 0xB857, 0x7A1C, 0xB858, 0x7A1A, 0xB859, 0x7A20, 0xB85A, 0x7A14, + 0xB85B, 0x7A1F, 0xB85C, 0x7A1E, 0xB85D, 0x7A9F, 0xB85E, 0x7AA0, + 0xB85F, 0x7B77, 0xB860, 0x7BC0, 0xB861, 0x7B60, 0xB862, 0x7B6E, + 0xB863, 0x7B67, 0xB864, 0x7CB1, 0xB865, 0x7CB3, 0xB866, 0x7CB5, + 0xB867, 0x7D93, 0xB868, 0x7D79, 0xB869, 0x7D91, 0xB86A, 0x7D81, + 0xB86B, 0x7D8F, 0xB86C, 0x7D5B, 0xB86D, 0x7F6E, 0xB86E, 0x7F69, + 0xB86F, 0x7F6A, 0xB870, 0x7F72, 0xB871, 0x7FA9, 0xB872, 0x7FA8, + 0xB873, 0x7FA4, 0xB874, 0x8056, 0xB875, 0x8058, 0xB876, 0x8086, + 0xB877, 0x8084, 0xB878, 0x8171, 0xB879, 0x8170, 0xB87A, 0x8178, + 0xB87B, 0x8165, 0xB87C, 0x816E, 0xB87D, 0x8173, 0xB87E, 0x816B, + 0xB8A1, 0x8179, 0xB8A2, 0x817A, 0xB8A3, 0x8166, 0xB8A4, 0x8205, + 0xB8A5, 0x8247, 0xB8A6, 0x8482, 0xB8A7, 0x8477, 0xB8A8, 0x843D, + 0xB8A9, 0x8431, 0xB8AA, 0x8475, 0xB8AB, 0x8466, 0xB8AC, 0x846B, + 0xB8AD, 0x8449, 0xB8AE, 0x846C, 0xB8AF, 0x845B, 0xB8B0, 0x843C, + 0xB8B1, 0x8435, 0xB8B2, 0x8461, 0xB8B3, 0x8463, 0xB8B4, 0x8469, + 0xB8B5, 0x846D, 0xB8B6, 0x8446, 0xB8B7, 0x865E, 0xB8B8, 0x865C, + 0xB8B9, 0x865F, 0xB8BA, 0x86F9, 0xB8BB, 0x8713, 0xB8BC, 0x8708, + 0xB8BD, 0x8707, 0xB8BE, 0x8700, 0xB8BF, 0x86FE, 0xB8C0, 0x86FB, + 0xB8C1, 0x8702, 0xB8C2, 0x8703, 0xB8C3, 0x8706, 0xB8C4, 0x870A, + 0xB8C5, 0x8859, 0xB8C6, 0x88DF, 0xB8C7, 0x88D4, 0xB8C8, 0x88D9, + 0xB8C9, 0x88DC, 0xB8CA, 0x88D8, 0xB8CB, 0x88DD, 0xB8CC, 0x88E1, + 0xB8CD, 0x88CA, 0xB8CE, 0x88D5, 0xB8CF, 0x88D2, 0xB8D0, 0x899C, + 0xB8D1, 0x89E3, 0xB8D2, 0x8A6B, 0xB8D3, 0x8A72, 0xB8D4, 0x8A73, + 0xB8D5, 0x8A66, 0xB8D6, 0x8A69, 0xB8D7, 0x8A70, 0xB8D8, 0x8A87, + 0xB8D9, 0x8A7C, 0xB8DA, 0x8A63, 0xB8DB, 0x8AA0, 0xB8DC, 0x8A71, + 0xB8DD, 0x8A85, 0xB8DE, 0x8A6D, 0xB8DF, 0x8A62, 0xB8E0, 0x8A6E, + 0xB8E1, 0x8A6C, 0xB8E2, 0x8A79, 0xB8E3, 0x8A7B, 0xB8E4, 0x8A3E, + 0xB8E5, 0x8A68, 0xB8E6, 0x8C62, 0xB8E7, 0x8C8A, 0xB8E8, 0x8C89, + 0xB8E9, 0x8CCA, 0xB8EA, 0x8CC7, 0xB8EB, 0x8CC8, 0xB8EC, 0x8CC4, + 0xB8ED, 0x8CB2, 0xB8EE, 0x8CC3, 0xB8EF, 0x8CC2, 0xB8F0, 0x8CC5, + 0xB8F1, 0x8DE1, 0xB8F2, 0x8DDF, 0xB8F3, 0x8DE8, 0xB8F4, 0x8DEF, + 0xB8F5, 0x8DF3, 0xB8F6, 0x8DFA, 0xB8F7, 0x8DEA, 0xB8F8, 0x8DE4, + 0xB8F9, 0x8DE6, 0xB8FA, 0x8EB2, 0xB8FB, 0x8F03, 0xB8FC, 0x8F09, + 0xB8FD, 0x8EFE, 0xB8FE, 0x8F0A, 0xB940, 0x8F9F, 0xB941, 0x8FB2, + 0xB942, 0x904B, 0xB943, 0x904A, 0xB944, 0x9053, 0xB945, 0x9042, + 0xB946, 0x9054, 0xB947, 0x903C, 0xB948, 0x9055, 0xB949, 0x9050, + 0xB94A, 0x9047, 0xB94B, 0x904F, 0xB94C, 0x904E, 0xB94D, 0x904D, + 0xB94E, 0x9051, 0xB94F, 0x903E, 0xB950, 0x9041, 0xB951, 0x9112, + 0xB952, 0x9117, 0xB953, 0x916C, 0xB954, 0x916A, 0xB955, 0x9169, + 0xB956, 0x91C9, 0xB957, 0x9237, 0xB958, 0x9257, 0xB959, 0x9238, + 0xB95A, 0x923D, 0xB95B, 0x9240, 0xB95C, 0x923E, 0xB95D, 0x925B, + 0xB95E, 0x924B, 0xB95F, 0x9264, 0xB960, 0x9251, 0xB961, 0x9234, + 0xB962, 0x9249, 0xB963, 0x924D, 0xB964, 0x9245, 0xB965, 0x9239, + 0xB966, 0x923F, 0xB967, 0x925A, 0xB968, 0x9598, 0xB969, 0x9698, + 0xB96A, 0x9694, 0xB96B, 0x9695, 0xB96C, 0x96CD, 0xB96D, 0x96CB, + 0xB96E, 0x96C9, 0xB96F, 0x96CA, 0xB970, 0x96F7, 0xB971, 0x96FB, + 0xB972, 0x96F9, 0xB973, 0x96F6, 0xB974, 0x9756, 0xB975, 0x9774, + 0xB976, 0x9776, 0xB977, 0x9810, 0xB978, 0x9811, 0xB979, 0x9813, + 0xB97A, 0x980A, 0xB97B, 0x9812, 0xB97C, 0x980C, 0xB97D, 0x98FC, + 0xB97E, 0x98F4, 0xB9A1, 0x98FD, 0xB9A2, 0x98FE, 0xB9A3, 0x99B3, + 0xB9A4, 0x99B1, 0xB9A5, 0x99B4, 0xB9A6, 0x9AE1, 0xB9A7, 0x9CE9, + 0xB9A8, 0x9E82, 0xB9A9, 0x9F0E, 0xB9AA, 0x9F13, 0xB9AB, 0x9F20, + 0xB9AC, 0x50E7, 0xB9AD, 0x50EE, 0xB9AE, 0x50E5, 0xB9AF, 0x50D6, + 0xB9B0, 0x50ED, 0xB9B1, 0x50DA, 0xB9B2, 0x50D5, 0xB9B3, 0x50CF, + 0xB9B4, 0x50D1, 0xB9B5, 0x50F1, 0xB9B6, 0x50CE, 0xB9B7, 0x50E9, + 0xB9B8, 0x5162, 0xB9B9, 0x51F3, 0xB9BA, 0x5283, 0xB9BB, 0x5282, + 0xB9BC, 0x5331, 0xB9BD, 0x53AD, 0xB9BE, 0x55FE, 0xB9BF, 0x5600, + 0xB9C0, 0x561B, 0xB9C1, 0x5617, 0xB9C2, 0x55FD, 0xB9C3, 0x5614, + 0xB9C4, 0x5606, 0xB9C5, 0x5609, 0xB9C6, 0x560D, 0xB9C7, 0x560E, + 0xB9C8, 0x55F7, 0xB9C9, 0x5616, 0xB9CA, 0x561F, 0xB9CB, 0x5608, + 0xB9CC, 0x5610, 0xB9CD, 0x55F6, 0xB9CE, 0x5718, 0xB9CF, 0x5716, + 0xB9D0, 0x5875, 0xB9D1, 0x587E, 0xB9D2, 0x5883, 0xB9D3, 0x5893, + 0xB9D4, 0x588A, 0xB9D5, 0x5879, 0xB9D6, 0x5885, 0xB9D7, 0x587D, + 0xB9D8, 0x58FD, 0xB9D9, 0x5925, 0xB9DA, 0x5922, 0xB9DB, 0x5924, + 0xB9DC, 0x596A, 0xB9DD, 0x5969, 0xB9DE, 0x5AE1, 0xB9DF, 0x5AE6, + 0xB9E0, 0x5AE9, 0xB9E1, 0x5AD7, 0xB9E2, 0x5AD6, 0xB9E3, 0x5AD8, + 0xB9E4, 0x5AE3, 0xB9E5, 0x5B75, 0xB9E6, 0x5BDE, 0xB9E7, 0x5BE7, + 0xB9E8, 0x5BE1, 0xB9E9, 0x5BE5, 0xB9EA, 0x5BE6, 0xB9EB, 0x5BE8, + 0xB9EC, 0x5BE2, 0xB9ED, 0x5BE4, 0xB9EE, 0x5BDF, 0xB9EF, 0x5C0D, + 0xB9F0, 0x5C62, 0xB9F1, 0x5D84, 0xB9F2, 0x5D87, 0xB9F3, 0x5E5B, + 0xB9F4, 0x5E63, 0xB9F5, 0x5E55, 0xB9F6, 0x5E57, 0xB9F7, 0x5E54, + 0xB9F8, 0x5ED3, 0xB9F9, 0x5ED6, 0xB9FA, 0x5F0A, 0xB9FB, 0x5F46, + 0xB9FC, 0x5F70, 0xB9FD, 0x5FB9, 0xB9FE, 0x6147, 0xBA40, 0x613F, + 0xBA41, 0x614B, 0xBA42, 0x6177, 0xBA43, 0x6162, 0xBA44, 0x6163, + 0xBA45, 0x615F, 0xBA46, 0x615A, 0xBA47, 0x6158, 0xBA48, 0x6175, + 0xBA49, 0x622A, 0xBA4A, 0x6487, 0xBA4B, 0x6458, 0xBA4C, 0x6454, + 0xBA4D, 0x64A4, 0xBA4E, 0x6478, 0xBA4F, 0x645F, 0xBA50, 0x647A, + 0xBA51, 0x6451, 0xBA52, 0x6467, 0xBA53, 0x6434, 0xBA54, 0x646D, + 0xBA55, 0x647B, 0xBA56, 0x6572, 0xBA57, 0x65A1, 0xBA58, 0x65D7, + 0xBA59, 0x65D6, 0xBA5A, 0x66A2, 0xBA5B, 0x66A8, 0xBA5C, 0x669D, + 0xBA5D, 0x699C, 0xBA5E, 0x69A8, 0xBA5F, 0x6995, 0xBA60, 0x69C1, + 0xBA61, 0x69AE, 0xBA62, 0x69D3, 0xBA63, 0x69CB, 0xBA64, 0x699B, + 0xBA65, 0x69B7, 0xBA66, 0x69BB, 0xBA67, 0x69AB, 0xBA68, 0x69B4, + 0xBA69, 0x69D0, 0xBA6A, 0x69CD, 0xBA6B, 0x69AD, 0xBA6C, 0x69CC, + 0xBA6D, 0x69A6, 0xBA6E, 0x69C3, 0xBA6F, 0x69A3, 0xBA70, 0x6B49, + 0xBA71, 0x6B4C, 0xBA72, 0x6C33, 0xBA73, 0x6F33, 0xBA74, 0x6F14, + 0xBA75, 0x6EFE, 0xBA76, 0x6F13, 0xBA77, 0x6EF4, 0xBA78, 0x6F29, + 0xBA79, 0x6F3E, 0xBA7A, 0x6F20, 0xBA7B, 0x6F2C, 0xBA7C, 0x6F0F, + 0xBA7D, 0x6F02, 0xBA7E, 0x6F22, 0xBAA1, 0x6EFF, 0xBAA2, 0x6EEF, + 0xBAA3, 0x6F06, 0xBAA4, 0x6F31, 0xBAA5, 0x6F38, 0xBAA6, 0x6F32, + 0xBAA7, 0x6F23, 0xBAA8, 0x6F15, 0xBAA9, 0x6F2B, 0xBAAA, 0x6F2F, + 0xBAAB, 0x6F88, 0xBAAC, 0x6F2A, 0xBAAD, 0x6EEC, 0xBAAE, 0x6F01, + 0xBAAF, 0x6EF2, 0xBAB0, 0x6ECC, 0xBAB1, 0x6EF7, 0xBAB2, 0x7194, + 0xBAB3, 0x7199, 0xBAB4, 0x717D, 0xBAB5, 0x718A, 0xBAB6, 0x7184, + 0xBAB7, 0x7192, 0xBAB8, 0x723E, 0xBAB9, 0x7292, 0xBABA, 0x7296, + 0xBABB, 0x7344, 0xBABC, 0x7350, 0xBABD, 0x7464, 0xBABE, 0x7463, + 0xBABF, 0x746A, 0xBAC0, 0x7470, 0xBAC1, 0x746D, 0xBAC2, 0x7504, + 0xBAC3, 0x7591, 0xBAC4, 0x7627, 0xBAC5, 0x760D, 0xBAC6, 0x760B, + 0xBAC7, 0x7609, 0xBAC8, 0x7613, 0xBAC9, 0x76E1, 0xBACA, 0x76E3, + 0xBACB, 0x7784, 0xBACC, 0x777D, 0xBACD, 0x777F, 0xBACE, 0x7761, + 0xBACF, 0x78C1, 0xBAD0, 0x789F, 0xBAD1, 0x78A7, 0xBAD2, 0x78B3, + 0xBAD3, 0x78A9, 0xBAD4, 0x78A3, 0xBAD5, 0x798E, 0xBAD6, 0x798F, + 0xBAD7, 0x798D, 0xBAD8, 0x7A2E, 0xBAD9, 0x7A31, 0xBADA, 0x7AAA, + 0xBADB, 0x7AA9, 0xBADC, 0x7AED, 0xBADD, 0x7AEF, 0xBADE, 0x7BA1, + 0xBADF, 0x7B95, 0xBAE0, 0x7B8B, 0xBAE1, 0x7B75, 0xBAE2, 0x7B97, + 0xBAE3, 0x7B9D, 0xBAE4, 0x7B94, 0xBAE5, 0x7B8F, 0xBAE6, 0x7BB8, + 0xBAE7, 0x7B87, 0xBAE8, 0x7B84, 0xBAE9, 0x7CB9, 0xBAEA, 0x7CBD, + 0xBAEB, 0x7CBE, 0xBAEC, 0x7DBB, 0xBAED, 0x7DB0, 0xBAEE, 0x7D9C, + 0xBAEF, 0x7DBD, 0xBAF0, 0x7DBE, 0xBAF1, 0x7DA0, 0xBAF2, 0x7DCA, + 0xBAF3, 0x7DB4, 0xBAF4, 0x7DB2, 0xBAF5, 0x7DB1, 0xBAF6, 0x7DBA, + 0xBAF7, 0x7DA2, 0xBAF8, 0x7DBF, 0xBAF9, 0x7DB5, 0xBAFA, 0x7DB8, + 0xBAFB, 0x7DAD, 0xBAFC, 0x7DD2, 0xBAFD, 0x7DC7, 0xBAFE, 0x7DAC, + 0xBB40, 0x7F70, 0xBB41, 0x7FE0, 0xBB42, 0x7FE1, 0xBB43, 0x7FDF, + 0xBB44, 0x805E, 0xBB45, 0x805A, 0xBB46, 0x8087, 0xBB47, 0x8150, + 0xBB48, 0x8180, 0xBB49, 0x818F, 0xBB4A, 0x8188, 0xBB4B, 0x818A, + 0xBB4C, 0x817F, 0xBB4D, 0x8182, 0xBB4E, 0x81E7, 0xBB4F, 0x81FA, + 0xBB50, 0x8207, 0xBB51, 0x8214, 0xBB52, 0x821E, 0xBB53, 0x824B, + 0xBB54, 0x84C9, 0xBB55, 0x84BF, 0xBB56, 0x84C6, 0xBB57, 0x84C4, + 0xBB58, 0x8499, 0xBB59, 0x849E, 0xBB5A, 0x84B2, 0xBB5B, 0x849C, + 0xBB5C, 0x84CB, 0xBB5D, 0x84B8, 0xBB5E, 0x84C0, 0xBB5F, 0x84D3, + 0xBB60, 0x8490, 0xBB61, 0x84BC, 0xBB62, 0x84D1, 0xBB63, 0x84CA, + 0xBB64, 0x873F, 0xBB65, 0x871C, 0xBB66, 0x873B, 0xBB67, 0x8722, + 0xBB68, 0x8725, 0xBB69, 0x8734, 0xBB6A, 0x8718, 0xBB6B, 0x8755, + 0xBB6C, 0x8737, 0xBB6D, 0x8729, 0xBB6E, 0x88F3, 0xBB6F, 0x8902, + 0xBB70, 0x88F4, 0xBB71, 0x88F9, 0xBB72, 0x88F8, 0xBB73, 0x88FD, + 0xBB74, 0x88E8, 0xBB75, 0x891A, 0xBB76, 0x88EF, 0xBB77, 0x8AA6, + 0xBB78, 0x8A8C, 0xBB79, 0x8A9E, 0xBB7A, 0x8AA3, 0xBB7B, 0x8A8D, + 0xBB7C, 0x8AA1, 0xBB7D, 0x8A93, 0xBB7E, 0x8AA4, 0xBBA1, 0x8AAA, + 0xBBA2, 0x8AA5, 0xBBA3, 0x8AA8, 0xBBA4, 0x8A98, 0xBBA5, 0x8A91, + 0xBBA6, 0x8A9A, 0xBBA7, 0x8AA7, 0xBBA8, 0x8C6A, 0xBBA9, 0x8C8D, + 0xBBAA, 0x8C8C, 0xBBAB, 0x8CD3, 0xBBAC, 0x8CD1, 0xBBAD, 0x8CD2, + 0xBBAE, 0x8D6B, 0xBBAF, 0x8D99, 0xBBB0, 0x8D95, 0xBBB1, 0x8DFC, + 0xBBB2, 0x8F14, 0xBBB3, 0x8F12, 0xBBB4, 0x8F15, 0xBBB5, 0x8F13, + 0xBBB6, 0x8FA3, 0xBBB7, 0x9060, 0xBBB8, 0x9058, 0xBBB9, 0x905C, + 0xBBBA, 0x9063, 0xBBBB, 0x9059, 0xBBBC, 0x905E, 0xBBBD, 0x9062, + 0xBBBE, 0x905D, 0xBBBF, 0x905B, 0xBBC0, 0x9119, 0xBBC1, 0x9118, + 0xBBC2, 0x911E, 0xBBC3, 0x9175, 0xBBC4, 0x9178, 0xBBC5, 0x9177, + 0xBBC6, 0x9174, 0xBBC7, 0x9278, 0xBBC8, 0x9280, 0xBBC9, 0x9285, + 0xBBCA, 0x9298, 0xBBCB, 0x9296, 0xBBCC, 0x927B, 0xBBCD, 0x9293, + 0xBBCE, 0x929C, 0xBBCF, 0x92A8, 0xBBD0, 0x927C, 0xBBD1, 0x9291, + 0xBBD2, 0x95A1, 0xBBD3, 0x95A8, 0xBBD4, 0x95A9, 0xBBD5, 0x95A3, + 0xBBD6, 0x95A5, 0xBBD7, 0x95A4, 0xBBD8, 0x9699, 0xBBD9, 0x969C, + 0xBBDA, 0x969B, 0xBBDB, 0x96CC, 0xBBDC, 0x96D2, 0xBBDD, 0x9700, + 0xBBDE, 0x977C, 0xBBDF, 0x9785, 0xBBE0, 0x97F6, 0xBBE1, 0x9817, + 0xBBE2, 0x9818, 0xBBE3, 0x98AF, 0xBBE4, 0x98B1, 0xBBE5, 0x9903, + 0xBBE6, 0x9905, 0xBBE7, 0x990C, 0xBBE8, 0x9909, 0xBBE9, 0x99C1, + 0xBBEA, 0x9AAF, 0xBBEB, 0x9AB0, 0xBBEC, 0x9AE6, 0xBBED, 0x9B41, + 0xBBEE, 0x9B42, 0xBBEF, 0x9CF4, 0xBBF0, 0x9CF6, 0xBBF1, 0x9CF3, + 0xBBF2, 0x9EBC, 0xBBF3, 0x9F3B, 0xBBF4, 0x9F4A, 0xBBF5, 0x5104, + 0xBBF6, 0x5100, 0xBBF7, 0x50FB, 0xBBF8, 0x50F5, 0xBBF9, 0x50F9, + 0xBBFA, 0x5102, 0xBBFB, 0x5108, 0xBBFC, 0x5109, 0xBBFD, 0x5105, + 0xBBFE, 0x51DC, 0xBC40, 0x5287, 0xBC41, 0x5288, 0xBC42, 0x5289, + 0xBC43, 0x528D, 0xBC44, 0x528A, 0xBC45, 0x52F0, 0xBC46, 0x53B2, + 0xBC47, 0x562E, 0xBC48, 0x563B, 0xBC49, 0x5639, 0xBC4A, 0x5632, + 0xBC4B, 0x563F, 0xBC4C, 0x5634, 0xBC4D, 0x5629, 0xBC4E, 0x5653, + 0xBC4F, 0x564E, 0xBC50, 0x5657, 0xBC51, 0x5674, 0xBC52, 0x5636, + 0xBC53, 0x562F, 0xBC54, 0x5630, 0xBC55, 0x5880, 0xBC56, 0x589F, + 0xBC57, 0x589E, 0xBC58, 0x58B3, 0xBC59, 0x589C, 0xBC5A, 0x58AE, + 0xBC5B, 0x58A9, 0xBC5C, 0x58A6, 0xBC5D, 0x596D, 0xBC5E, 0x5B09, + 0xBC5F, 0x5AFB, 0xBC60, 0x5B0B, 0xBC61, 0x5AF5, 0xBC62, 0x5B0C, + 0xBC63, 0x5B08, 0xBC64, 0x5BEE, 0xBC65, 0x5BEC, 0xBC66, 0x5BE9, + 0xBC67, 0x5BEB, 0xBC68, 0x5C64, 0xBC69, 0x5C65, 0xBC6A, 0x5D9D, + 0xBC6B, 0x5D94, 0xBC6C, 0x5E62, 0xBC6D, 0x5E5F, 0xBC6E, 0x5E61, + 0xBC6F, 0x5EE2, 0xBC70, 0x5EDA, 0xBC71, 0x5EDF, 0xBC72, 0x5EDD, + 0xBC73, 0x5EE3, 0xBC74, 0x5EE0, 0xBC75, 0x5F48, 0xBC76, 0x5F71, + 0xBC77, 0x5FB7, 0xBC78, 0x5FB5, 0xBC79, 0x6176, 0xBC7A, 0x6167, + 0xBC7B, 0x616E, 0xBC7C, 0x615D, 0xBC7D, 0x6155, 0xBC7E, 0x6182, + 0xBCA1, 0x617C, 0xBCA2, 0x6170, 0xBCA3, 0x616B, 0xBCA4, 0x617E, + 0xBCA5, 0x61A7, 0xBCA6, 0x6190, 0xBCA7, 0x61AB, 0xBCA8, 0x618E, + 0xBCA9, 0x61AC, 0xBCAA, 0x619A, 0xBCAB, 0x61A4, 0xBCAC, 0x6194, + 0xBCAD, 0x61AE, 0xBCAE, 0x622E, 0xBCAF, 0x6469, 0xBCB0, 0x646F, + 0xBCB1, 0x6479, 0xBCB2, 0x649E, 0xBCB3, 0x64B2, 0xBCB4, 0x6488, + 0xBCB5, 0x6490, 0xBCB6, 0x64B0, 0xBCB7, 0x64A5, 0xBCB8, 0x6493, + 0xBCB9, 0x6495, 0xBCBA, 0x64A9, 0xBCBB, 0x6492, 0xBCBC, 0x64AE, + 0xBCBD, 0x64AD, 0xBCBE, 0x64AB, 0xBCBF, 0x649A, 0xBCC0, 0x64AC, + 0xBCC1, 0x6499, 0xBCC2, 0x64A2, 0xBCC3, 0x64B3, 0xBCC4, 0x6575, + 0xBCC5, 0x6577, 0xBCC6, 0x6578, 0xBCC7, 0x66AE, 0xBCC8, 0x66AB, + 0xBCC9, 0x66B4, 0xBCCA, 0x66B1, 0xBCCB, 0x6A23, 0xBCCC, 0x6A1F, + 0xBCCD, 0x69E8, 0xBCCE, 0x6A01, 0xBCCF, 0x6A1E, 0xBCD0, 0x6A19, + 0xBCD1, 0x69FD, 0xBCD2, 0x6A21, 0xBCD3, 0x6A13, 0xBCD4, 0x6A0A, + 0xBCD5, 0x69F3, 0xBCD6, 0x6A02, 0xBCD7, 0x6A05, 0xBCD8, 0x69ED, + 0xBCD9, 0x6A11, 0xBCDA, 0x6B50, 0xBCDB, 0x6B4E, 0xBCDC, 0x6BA4, + 0xBCDD, 0x6BC5, 0xBCDE, 0x6BC6, 0xBCDF, 0x6F3F, 0xBCE0, 0x6F7C, + 0xBCE1, 0x6F84, 0xBCE2, 0x6F51, 0xBCE3, 0x6F66, 0xBCE4, 0x6F54, + 0xBCE5, 0x6F86, 0xBCE6, 0x6F6D, 0xBCE7, 0x6F5B, 0xBCE8, 0x6F78, + 0xBCE9, 0x6F6E, 0xBCEA, 0x6F8E, 0xBCEB, 0x6F7A, 0xBCEC, 0x6F70, + 0xBCED, 0x6F64, 0xBCEE, 0x6F97, 0xBCEF, 0x6F58, 0xBCF0, 0x6ED5, + 0xBCF1, 0x6F6F, 0xBCF2, 0x6F60, 0xBCF3, 0x6F5F, 0xBCF4, 0x719F, + 0xBCF5, 0x71AC, 0xBCF6, 0x71B1, 0xBCF7, 0x71A8, 0xBCF8, 0x7256, + 0xBCF9, 0x729B, 0xBCFA, 0x734E, 0xBCFB, 0x7357, 0xBCFC, 0x7469, + 0xBCFD, 0x748B, 0xBCFE, 0x7483, 0xBD40, 0x747E, 0xBD41, 0x7480, + 0xBD42, 0x757F, 0xBD43, 0x7620, 0xBD44, 0x7629, 0xBD45, 0x761F, + 0xBD46, 0x7624, 0xBD47, 0x7626, 0xBD48, 0x7621, 0xBD49, 0x7622, + 0xBD4A, 0x769A, 0xBD4B, 0x76BA, 0xBD4C, 0x76E4, 0xBD4D, 0x778E, + 0xBD4E, 0x7787, 0xBD4F, 0x778C, 0xBD50, 0x7791, 0xBD51, 0x778B, + 0xBD52, 0x78CB, 0xBD53, 0x78C5, 0xBD54, 0x78BA, 0xBD55, 0x78CA, + 0xBD56, 0x78BE, 0xBD57, 0x78D5, 0xBD58, 0x78BC, 0xBD59, 0x78D0, + 0xBD5A, 0x7A3F, 0xBD5B, 0x7A3C, 0xBD5C, 0x7A40, 0xBD5D, 0x7A3D, + 0xBD5E, 0x7A37, 0xBD5F, 0x7A3B, 0xBD60, 0x7AAF, 0xBD61, 0x7AAE, + 0xBD62, 0x7BAD, 0xBD63, 0x7BB1, 0xBD64, 0x7BC4, 0xBD65, 0x7BB4, + 0xBD66, 0x7BC6, 0xBD67, 0x7BC7, 0xBD68, 0x7BC1, 0xBD69, 0x7BA0, + 0xBD6A, 0x7BCC, 0xBD6B, 0x7CCA, 0xBD6C, 0x7DE0, 0xBD6D, 0x7DF4, + 0xBD6E, 0x7DEF, 0xBD6F, 0x7DFB, 0xBD70, 0x7DD8, 0xBD71, 0x7DEC, + 0xBD72, 0x7DDD, 0xBD73, 0x7DE8, 0xBD74, 0x7DE3, 0xBD75, 0x7DDA, + 0xBD76, 0x7DDE, 0xBD77, 0x7DE9, 0xBD78, 0x7D9E, 0xBD79, 0x7DD9, + 0xBD7A, 0x7DF2, 0xBD7B, 0x7DF9, 0xBD7C, 0x7F75, 0xBD7D, 0x7F77, + 0xBD7E, 0x7FAF, 0xBDA1, 0x7FE9, 0xBDA2, 0x8026, 0xBDA3, 0x819B, + 0xBDA4, 0x819C, 0xBDA5, 0x819D, 0xBDA6, 0x81A0, 0xBDA7, 0x819A, + 0xBDA8, 0x8198, 0xBDA9, 0x8517, 0xBDAA, 0x853D, 0xBDAB, 0x851A, + 0xBDAC, 0x84EE, 0xBDAD, 0x852C, 0xBDAE, 0x852D, 0xBDAF, 0x8513, + 0xBDB0, 0x8511, 0xBDB1, 0x8523, 0xBDB2, 0x8521, 0xBDB3, 0x8514, + 0xBDB4, 0x84EC, 0xBDB5, 0x8525, 0xBDB6, 0x84FF, 0xBDB7, 0x8506, + 0xBDB8, 0x8782, 0xBDB9, 0x8774, 0xBDBA, 0x8776, 0xBDBB, 0x8760, + 0xBDBC, 0x8766, 0xBDBD, 0x8778, 0xBDBE, 0x8768, 0xBDBF, 0x8759, + 0xBDC0, 0x8757, 0xBDC1, 0x874C, 0xBDC2, 0x8753, 0xBDC3, 0x885B, + 0xBDC4, 0x885D, 0xBDC5, 0x8910, 0xBDC6, 0x8907, 0xBDC7, 0x8912, + 0xBDC8, 0x8913, 0xBDC9, 0x8915, 0xBDCA, 0x890A, 0xBDCB, 0x8ABC, + 0xBDCC, 0x8AD2, 0xBDCD, 0x8AC7, 0xBDCE, 0x8AC4, 0xBDCF, 0x8A95, + 0xBDD0, 0x8ACB, 0xBDD1, 0x8AF8, 0xBDD2, 0x8AB2, 0xBDD3, 0x8AC9, + 0xBDD4, 0x8AC2, 0xBDD5, 0x8ABF, 0xBDD6, 0x8AB0, 0xBDD7, 0x8AD6, + 0xBDD8, 0x8ACD, 0xBDD9, 0x8AB6, 0xBDDA, 0x8AB9, 0xBDDB, 0x8ADB, + 0xBDDC, 0x8C4C, 0xBDDD, 0x8C4E, 0xBDDE, 0x8C6C, 0xBDDF, 0x8CE0, + 0xBDE0, 0x8CDE, 0xBDE1, 0x8CE6, 0xBDE2, 0x8CE4, 0xBDE3, 0x8CEC, + 0xBDE4, 0x8CED, 0xBDE5, 0x8CE2, 0xBDE6, 0x8CE3, 0xBDE7, 0x8CDC, + 0xBDE8, 0x8CEA, 0xBDE9, 0x8CE1, 0xBDEA, 0x8D6D, 0xBDEB, 0x8D9F, + 0xBDEC, 0x8DA3, 0xBDED, 0x8E2B, 0xBDEE, 0x8E10, 0xBDEF, 0x8E1D, + 0xBDF0, 0x8E22, 0xBDF1, 0x8E0F, 0xBDF2, 0x8E29, 0xBDF3, 0x8E1F, + 0xBDF4, 0x8E21, 0xBDF5, 0x8E1E, 0xBDF6, 0x8EBA, 0xBDF7, 0x8F1D, + 0xBDF8, 0x8F1B, 0xBDF9, 0x8F1F, 0xBDFA, 0x8F29, 0xBDFB, 0x8F26, + 0xBDFC, 0x8F2A, 0xBDFD, 0x8F1C, 0xBDFE, 0x8F1E, 0xBE40, 0x8F25, + 0xBE41, 0x9069, 0xBE42, 0x906E, 0xBE43, 0x9068, 0xBE44, 0x906D, + 0xBE45, 0x9077, 0xBE46, 0x9130, 0xBE47, 0x912D, 0xBE48, 0x9127, + 0xBE49, 0x9131, 0xBE4A, 0x9187, 0xBE4B, 0x9189, 0xBE4C, 0x918B, + 0xBE4D, 0x9183, 0xBE4E, 0x92C5, 0xBE4F, 0x92BB, 0xBE50, 0x92B7, + 0xBE51, 0x92EA, 0xBE52, 0x92AC, 0xBE53, 0x92E4, 0xBE54, 0x92C1, + 0xBE55, 0x92B3, 0xBE56, 0x92BC, 0xBE57, 0x92D2, 0xBE58, 0x92C7, + 0xBE59, 0x92F0, 0xBE5A, 0x92B2, 0xBE5B, 0x95AD, 0xBE5C, 0x95B1, + 0xBE5D, 0x9704, 0xBE5E, 0x9706, 0xBE5F, 0x9707, 0xBE60, 0x9709, + 0xBE61, 0x9760, 0xBE62, 0x978D, 0xBE63, 0x978B, 0xBE64, 0x978F, + 0xBE65, 0x9821, 0xBE66, 0x982B, 0xBE67, 0x981C, 0xBE68, 0x98B3, + 0xBE69, 0x990A, 0xBE6A, 0x9913, 0xBE6B, 0x9912, 0xBE6C, 0x9918, + 0xBE6D, 0x99DD, 0xBE6E, 0x99D0, 0xBE6F, 0x99DF, 0xBE70, 0x99DB, + 0xBE71, 0x99D1, 0xBE72, 0x99D5, 0xBE73, 0x99D2, 0xBE74, 0x99D9, + 0xBE75, 0x9AB7, 0xBE76, 0x9AEE, 0xBE77, 0x9AEF, 0xBE78, 0x9B27, + 0xBE79, 0x9B45, 0xBE7A, 0x9B44, 0xBE7B, 0x9B77, 0xBE7C, 0x9B6F, + 0xBE7D, 0x9D06, 0xBE7E, 0x9D09, 0xBEA1, 0x9D03, 0xBEA2, 0x9EA9, + 0xBEA3, 0x9EBE, 0xBEA4, 0x9ECE, 0xBEA5, 0x58A8, 0xBEA6, 0x9F52, + 0xBEA7, 0x5112, 0xBEA8, 0x5118, 0xBEA9, 0x5114, 0xBEAA, 0x5110, + 0xBEAB, 0x5115, 0xBEAC, 0x5180, 0xBEAD, 0x51AA, 0xBEAE, 0x51DD, + 0xBEAF, 0x5291, 0xBEB0, 0x5293, 0xBEB1, 0x52F3, 0xBEB2, 0x5659, + 0xBEB3, 0x566B, 0xBEB4, 0x5679, 0xBEB5, 0x5669, 0xBEB6, 0x5664, + 0xBEB7, 0x5678, 0xBEB8, 0x566A, 0xBEB9, 0x5668, 0xBEBA, 0x5665, + 0xBEBB, 0x5671, 0xBEBC, 0x566F, 0xBEBD, 0x566C, 0xBEBE, 0x5662, + 0xBEBF, 0x5676, 0xBEC0, 0x58C1, 0xBEC1, 0x58BE, 0xBEC2, 0x58C7, + 0xBEC3, 0x58C5, 0xBEC4, 0x596E, 0xBEC5, 0x5B1D, 0xBEC6, 0x5B34, + 0xBEC7, 0x5B78, 0xBEC8, 0x5BF0, 0xBEC9, 0x5C0E, 0xBECA, 0x5F4A, + 0xBECB, 0x61B2, 0xBECC, 0x6191, 0xBECD, 0x61A9, 0xBECE, 0x618A, + 0xBECF, 0x61CD, 0xBED0, 0x61B6, 0xBED1, 0x61BE, 0xBED2, 0x61CA, + 0xBED3, 0x61C8, 0xBED4, 0x6230, 0xBED5, 0x64C5, 0xBED6, 0x64C1, + 0xBED7, 0x64CB, 0xBED8, 0x64BB, 0xBED9, 0x64BC, 0xBEDA, 0x64DA, + 0xBEDB, 0x64C4, 0xBEDC, 0x64C7, 0xBEDD, 0x64C2, 0xBEDE, 0x64CD, + 0xBEDF, 0x64BF, 0xBEE0, 0x64D2, 0xBEE1, 0x64D4, 0xBEE2, 0x64BE, + 0xBEE3, 0x6574, 0xBEE4, 0x66C6, 0xBEE5, 0x66C9, 0xBEE6, 0x66B9, + 0xBEE7, 0x66C4, 0xBEE8, 0x66C7, 0xBEE9, 0x66B8, 0xBEEA, 0x6A3D, + 0xBEEB, 0x6A38, 0xBEEC, 0x6A3A, 0xBEED, 0x6A59, 0xBEEE, 0x6A6B, + 0xBEEF, 0x6A58, 0xBEF0, 0x6A39, 0xBEF1, 0x6A44, 0xBEF2, 0x6A62, + 0xBEF3, 0x6A61, 0xBEF4, 0x6A4B, 0xBEF5, 0x6A47, 0xBEF6, 0x6A35, + 0xBEF7, 0x6A5F, 0xBEF8, 0x6A48, 0xBEF9, 0x6B59, 0xBEFA, 0x6B77, + 0xBEFB, 0x6C05, 0xBEFC, 0x6FC2, 0xBEFD, 0x6FB1, 0xBEFE, 0x6FA1, + 0xBF40, 0x6FC3, 0xBF41, 0x6FA4, 0xBF42, 0x6FC1, 0xBF43, 0x6FA7, + 0xBF44, 0x6FB3, 0xBF45, 0x6FC0, 0xBF46, 0x6FB9, 0xBF47, 0x6FB6, + 0xBF48, 0x6FA6, 0xBF49, 0x6FA0, 0xBF4A, 0x6FB4, 0xBF4B, 0x71BE, + 0xBF4C, 0x71C9, 0xBF4D, 0x71D0, 0xBF4E, 0x71D2, 0xBF4F, 0x71C8, + 0xBF50, 0x71D5, 0xBF51, 0x71B9, 0xBF52, 0x71CE, 0xBF53, 0x71D9, + 0xBF54, 0x71DC, 0xBF55, 0x71C3, 0xBF56, 0x71C4, 0xBF57, 0x7368, + 0xBF58, 0x749C, 0xBF59, 0x74A3, 0xBF5A, 0x7498, 0xBF5B, 0x749F, + 0xBF5C, 0x749E, 0xBF5D, 0x74E2, 0xBF5E, 0x750C, 0xBF5F, 0x750D, + 0xBF60, 0x7634, 0xBF61, 0x7638, 0xBF62, 0x763A, 0xBF63, 0x76E7, + 0xBF64, 0x76E5, 0xBF65, 0x77A0, 0xBF66, 0x779E, 0xBF67, 0x779F, + 0xBF68, 0x77A5, 0xBF69, 0x78E8, 0xBF6A, 0x78DA, 0xBF6B, 0x78EC, + 0xBF6C, 0x78E7, 0xBF6D, 0x79A6, 0xBF6E, 0x7A4D, 0xBF6F, 0x7A4E, + 0xBF70, 0x7A46, 0xBF71, 0x7A4C, 0xBF72, 0x7A4B, 0xBF73, 0x7ABA, + 0xBF74, 0x7BD9, 0xBF75, 0x7C11, 0xBF76, 0x7BC9, 0xBF77, 0x7BE4, + 0xBF78, 0x7BDB, 0xBF79, 0x7BE1, 0xBF7A, 0x7BE9, 0xBF7B, 0x7BE6, + 0xBF7C, 0x7CD5, 0xBF7D, 0x7CD6, 0xBF7E, 0x7E0A, 0xBFA1, 0x7E11, + 0xBFA2, 0x7E08, 0xBFA3, 0x7E1B, 0xBFA4, 0x7E23, 0xBFA5, 0x7E1E, + 0xBFA6, 0x7E1D, 0xBFA7, 0x7E09, 0xBFA8, 0x7E10, 0xBFA9, 0x7F79, + 0xBFAA, 0x7FB2, 0xBFAB, 0x7FF0, 0xBFAC, 0x7FF1, 0xBFAD, 0x7FEE, + 0xBFAE, 0x8028, 0xBFAF, 0x81B3, 0xBFB0, 0x81A9, 0xBFB1, 0x81A8, + 0xBFB2, 0x81FB, 0xBFB3, 0x8208, 0xBFB4, 0x8258, 0xBFB5, 0x8259, + 0xBFB6, 0x854A, 0xBFB7, 0x8559, 0xBFB8, 0x8548, 0xBFB9, 0x8568, + 0xBFBA, 0x8569, 0xBFBB, 0x8543, 0xBFBC, 0x8549, 0xBFBD, 0x856D, + 0xBFBE, 0x856A, 0xBFBF, 0x855E, 0xBFC0, 0x8783, 0xBFC1, 0x879F, + 0xBFC2, 0x879E, 0xBFC3, 0x87A2, 0xBFC4, 0x878D, 0xBFC5, 0x8861, + 0xBFC6, 0x892A, 0xBFC7, 0x8932, 0xBFC8, 0x8925, 0xBFC9, 0x892B, + 0xBFCA, 0x8921, 0xBFCB, 0x89AA, 0xBFCC, 0x89A6, 0xBFCD, 0x8AE6, + 0xBFCE, 0x8AFA, 0xBFCF, 0x8AEB, 0xBFD0, 0x8AF1, 0xBFD1, 0x8B00, + 0xBFD2, 0x8ADC, 0xBFD3, 0x8AE7, 0xBFD4, 0x8AEE, 0xBFD5, 0x8AFE, + 0xBFD6, 0x8B01, 0xBFD7, 0x8B02, 0xBFD8, 0x8AF7, 0xBFD9, 0x8AED, + 0xBFDA, 0x8AF3, 0xBFDB, 0x8AF6, 0xBFDC, 0x8AFC, 0xBFDD, 0x8C6B, + 0xBFDE, 0x8C6D, 0xBFDF, 0x8C93, 0xBFE0, 0x8CF4, 0xBFE1, 0x8E44, + 0xBFE2, 0x8E31, 0xBFE3, 0x8E34, 0xBFE4, 0x8E42, 0xBFE5, 0x8E39, + 0xBFE6, 0x8E35, 0xBFE7, 0x8F3B, 0xBFE8, 0x8F2F, 0xBFE9, 0x8F38, + 0xBFEA, 0x8F33, 0xBFEB, 0x8FA8, 0xBFEC, 0x8FA6, 0xBFED, 0x9075, + 0xBFEE, 0x9074, 0xBFEF, 0x9078, 0xBFF0, 0x9072, 0xBFF1, 0x907C, + 0xBFF2, 0x907A, 0xBFF3, 0x9134, 0xBFF4, 0x9192, 0xBFF5, 0x9320, + 0xBFF6, 0x9336, 0xBFF7, 0x92F8, 0xBFF8, 0x9333, 0xBFF9, 0x932F, + 0xBFFA, 0x9322, 0xBFFB, 0x92FC, 0xBFFC, 0x932B, 0xBFFD, 0x9304, + 0xBFFE, 0x931A, 0xC040, 0x9310, 0xC041, 0x9326, 0xC042, 0x9321, + 0xC043, 0x9315, 0xC044, 0x932E, 0xC045, 0x9319, 0xC046, 0x95BB, + 0xC047, 0x96A7, 0xC048, 0x96A8, 0xC049, 0x96AA, 0xC04A, 0x96D5, + 0xC04B, 0x970E, 0xC04C, 0x9711, 0xC04D, 0x9716, 0xC04E, 0x970D, + 0xC04F, 0x9713, 0xC050, 0x970F, 0xC051, 0x975B, 0xC052, 0x975C, + 0xC053, 0x9766, 0xC054, 0x9798, 0xC055, 0x9830, 0xC056, 0x9838, + 0xC057, 0x983B, 0xC058, 0x9837, 0xC059, 0x982D, 0xC05A, 0x9839, + 0xC05B, 0x9824, 0xC05C, 0x9910, 0xC05D, 0x9928, 0xC05E, 0x991E, + 0xC05F, 0x991B, 0xC060, 0x9921, 0xC061, 0x991A, 0xC062, 0x99ED, + 0xC063, 0x99E2, 0xC064, 0x99F1, 0xC065, 0x9AB8, 0xC066, 0x9ABC, + 0xC067, 0x9AFB, 0xC068, 0x9AED, 0xC069, 0x9B28, 0xC06A, 0x9B91, + 0xC06B, 0x9D15, 0xC06C, 0x9D23, 0xC06D, 0x9D26, 0xC06E, 0x9D28, + 0xC06F, 0x9D12, 0xC070, 0x9D1B, 0xC071, 0x9ED8, 0xC072, 0x9ED4, + 0xC073, 0x9F8D, 0xC074, 0x9F9C, 0xC075, 0x512A, 0xC076, 0x511F, + 0xC077, 0x5121, 0xC078, 0x5132, 0xC079, 0x52F5, 0xC07A, 0x568E, + 0xC07B, 0x5680, 0xC07C, 0x5690, 0xC07D, 0x5685, 0xC07E, 0x5687, + 0xC0A1, 0x568F, 0xC0A2, 0x58D5, 0xC0A3, 0x58D3, 0xC0A4, 0x58D1, + 0xC0A5, 0x58CE, 0xC0A6, 0x5B30, 0xC0A7, 0x5B2A, 0xC0A8, 0x5B24, + 0xC0A9, 0x5B7A, 0xC0AA, 0x5C37, 0xC0AB, 0x5C68, 0xC0AC, 0x5DBC, + 0xC0AD, 0x5DBA, 0xC0AE, 0x5DBD, 0xC0AF, 0x5DB8, 0xC0B0, 0x5E6B, + 0xC0B1, 0x5F4C, 0xC0B2, 0x5FBD, 0xC0B3, 0x61C9, 0xC0B4, 0x61C2, + 0xC0B5, 0x61C7, 0xC0B6, 0x61E6, 0xC0B7, 0x61CB, 0xC0B8, 0x6232, + 0xC0B9, 0x6234, 0xC0BA, 0x64CE, 0xC0BB, 0x64CA, 0xC0BC, 0x64D8, + 0xC0BD, 0x64E0, 0xC0BE, 0x64F0, 0xC0BF, 0x64E6, 0xC0C0, 0x64EC, + 0xC0C1, 0x64F1, 0xC0C2, 0x64E2, 0xC0C3, 0x64ED, 0xC0C4, 0x6582, + 0xC0C5, 0x6583, 0xC0C6, 0x66D9, 0xC0C7, 0x66D6, 0xC0C8, 0x6A80, + 0xC0C9, 0x6A94, 0xC0CA, 0x6A84, 0xC0CB, 0x6AA2, 0xC0CC, 0x6A9C, + 0xC0CD, 0x6ADB, 0xC0CE, 0x6AA3, 0xC0CF, 0x6A7E, 0xC0D0, 0x6A97, + 0xC0D1, 0x6A90, 0xC0D2, 0x6AA0, 0xC0D3, 0x6B5C, 0xC0D4, 0x6BAE, + 0xC0D5, 0x6BDA, 0xC0D6, 0x6C08, 0xC0D7, 0x6FD8, 0xC0D8, 0x6FF1, + 0xC0D9, 0x6FDF, 0xC0DA, 0x6FE0, 0xC0DB, 0x6FDB, 0xC0DC, 0x6FE4, + 0xC0DD, 0x6FEB, 0xC0DE, 0x6FEF, 0xC0DF, 0x6F80, 0xC0E0, 0x6FEC, + 0xC0E1, 0x6FE1, 0xC0E2, 0x6FE9, 0xC0E3, 0x6FD5, 0xC0E4, 0x6FEE, + 0xC0E5, 0x6FF0, 0xC0E6, 0x71E7, 0xC0E7, 0x71DF, 0xC0E8, 0x71EE, + 0xC0E9, 0x71E6, 0xC0EA, 0x71E5, 0xC0EB, 0x71ED, 0xC0EC, 0x71EC, + 0xC0ED, 0x71F4, 0xC0EE, 0x71E0, 0xC0EF, 0x7235, 0xC0F0, 0x7246, + 0xC0F1, 0x7370, 0xC0F2, 0x7372, 0xC0F3, 0x74A9, 0xC0F4, 0x74B0, + 0xC0F5, 0x74A6, 0xC0F6, 0x74A8, 0xC0F7, 0x7646, 0xC0F8, 0x7642, + 0xC0F9, 0x764C, 0xC0FA, 0x76EA, 0xC0FB, 0x77B3, 0xC0FC, 0x77AA, + 0xC0FD, 0x77B0, 0xC0FE, 0x77AC, 0xC140, 0x77A7, 0xC141, 0x77AD, + 0xC142, 0x77EF, 0xC143, 0x78F7, 0xC144, 0x78FA, 0xC145, 0x78F4, + 0xC146, 0x78EF, 0xC147, 0x7901, 0xC148, 0x79A7, 0xC149, 0x79AA, + 0xC14A, 0x7A57, 0xC14B, 0x7ABF, 0xC14C, 0x7C07, 0xC14D, 0x7C0D, + 0xC14E, 0x7BFE, 0xC14F, 0x7BF7, 0xC150, 0x7C0C, 0xC151, 0x7BE0, + 0xC152, 0x7CE0, 0xC153, 0x7CDC, 0xC154, 0x7CDE, 0xC155, 0x7CE2, + 0xC156, 0x7CDF, 0xC157, 0x7CD9, 0xC158, 0x7CDD, 0xC159, 0x7E2E, + 0xC15A, 0x7E3E, 0xC15B, 0x7E46, 0xC15C, 0x7E37, 0xC15D, 0x7E32, + 0xC15E, 0x7E43, 0xC15F, 0x7E2B, 0xC160, 0x7E3D, 0xC161, 0x7E31, + 0xC162, 0x7E45, 0xC163, 0x7E41, 0xC164, 0x7E34, 0xC165, 0x7E39, + 0xC166, 0x7E48, 0xC167, 0x7E35, 0xC168, 0x7E3F, 0xC169, 0x7E2F, + 0xC16A, 0x7F44, 0xC16B, 0x7FF3, 0xC16C, 0x7FFC, 0xC16D, 0x8071, + 0xC16E, 0x8072, 0xC16F, 0x8070, 0xC170, 0x806F, 0xC171, 0x8073, + 0xC172, 0x81C6, 0xC173, 0x81C3, 0xC174, 0x81BA, 0xC175, 0x81C2, + 0xC176, 0x81C0, 0xC177, 0x81BF, 0xC178, 0x81BD, 0xC179, 0x81C9, + 0xC17A, 0x81BE, 0xC17B, 0x81E8, 0xC17C, 0x8209, 0xC17D, 0x8271, + 0xC17E, 0x85AA, 0xC1A1, 0x8584, 0xC1A2, 0x857E, 0xC1A3, 0x859C, + 0xC1A4, 0x8591, 0xC1A5, 0x8594, 0xC1A6, 0x85AF, 0xC1A7, 0x859B, + 0xC1A8, 0x8587, 0xC1A9, 0x85A8, 0xC1AA, 0x858A, 0xC1AB, 0x8667, + 0xC1AC, 0x87C0, 0xC1AD, 0x87D1, 0xC1AE, 0x87B3, 0xC1AF, 0x87D2, + 0xC1B0, 0x87C6, 0xC1B1, 0x87AB, 0xC1B2, 0x87BB, 0xC1B3, 0x87BA, + 0xC1B4, 0x87C8, 0xC1B5, 0x87CB, 0xC1B6, 0x893B, 0xC1B7, 0x8936, + 0xC1B8, 0x8944, 0xC1B9, 0x8938, 0xC1BA, 0x893D, 0xC1BB, 0x89AC, + 0xC1BC, 0x8B0E, 0xC1BD, 0x8B17, 0xC1BE, 0x8B19, 0xC1BF, 0x8B1B, + 0xC1C0, 0x8B0A, 0xC1C1, 0x8B20, 0xC1C2, 0x8B1D, 0xC1C3, 0x8B04, + 0xC1C4, 0x8B10, 0xC1C5, 0x8C41, 0xC1C6, 0x8C3F, 0xC1C7, 0x8C73, + 0xC1C8, 0x8CFA, 0xC1C9, 0x8CFD, 0xC1CA, 0x8CFC, 0xC1CB, 0x8CF8, + 0xC1CC, 0x8CFB, 0xC1CD, 0x8DA8, 0xC1CE, 0x8E49, 0xC1CF, 0x8E4B, + 0xC1D0, 0x8E48, 0xC1D1, 0x8E4A, 0xC1D2, 0x8F44, 0xC1D3, 0x8F3E, + 0xC1D4, 0x8F42, 0xC1D5, 0x8F45, 0xC1D6, 0x8F3F, 0xC1D7, 0x907F, + 0xC1D8, 0x907D, 0xC1D9, 0x9084, 0xC1DA, 0x9081, 0xC1DB, 0x9082, + 0xC1DC, 0x9080, 0xC1DD, 0x9139, 0xC1DE, 0x91A3, 0xC1DF, 0x919E, + 0xC1E0, 0x919C, 0xC1E1, 0x934D, 0xC1E2, 0x9382, 0xC1E3, 0x9328, + 0xC1E4, 0x9375, 0xC1E5, 0x934A, 0xC1E6, 0x9365, 0xC1E7, 0x934B, + 0xC1E8, 0x9318, 0xC1E9, 0x937E, 0xC1EA, 0x936C, 0xC1EB, 0x935B, + 0xC1EC, 0x9370, 0xC1ED, 0x935A, 0xC1EE, 0x9354, 0xC1EF, 0x95CA, + 0xC1F0, 0x95CB, 0xC1F1, 0x95CC, 0xC1F2, 0x95C8, 0xC1F3, 0x95C6, + 0xC1F4, 0x96B1, 0xC1F5, 0x96B8, 0xC1F6, 0x96D6, 0xC1F7, 0x971C, + 0xC1F8, 0x971E, 0xC1F9, 0x97A0, 0xC1FA, 0x97D3, 0xC1FB, 0x9846, + 0xC1FC, 0x98B6, 0xC1FD, 0x9935, 0xC1FE, 0x9A01, 0xC240, 0x99FF, + 0xC241, 0x9BAE, 0xC242, 0x9BAB, 0xC243, 0x9BAA, 0xC244, 0x9BAD, + 0xC245, 0x9D3B, 0xC246, 0x9D3F, 0xC247, 0x9E8B, 0xC248, 0x9ECF, + 0xC249, 0x9EDE, 0xC24A, 0x9EDC, 0xC24B, 0x9EDD, 0xC24C, 0x9EDB, + 0xC24D, 0x9F3E, 0xC24E, 0x9F4B, 0xC24F, 0x53E2, 0xC250, 0x5695, + 0xC251, 0x56AE, 0xC252, 0x58D9, 0xC253, 0x58D8, 0xC254, 0x5B38, + 0xC255, 0x5F5D, 0xC256, 0x61E3, 0xC257, 0x6233, 0xC258, 0x64F4, + 0xC259, 0x64F2, 0xC25A, 0x64FE, 0xC25B, 0x6506, 0xC25C, 0x64FA, + 0xC25D, 0x64FB, 0xC25E, 0x64F7, 0xC25F, 0x65B7, 0xC260, 0x66DC, + 0xC261, 0x6726, 0xC262, 0x6AB3, 0xC263, 0x6AAC, 0xC264, 0x6AC3, + 0xC265, 0x6ABB, 0xC266, 0x6AB8, 0xC267, 0x6AC2, 0xC268, 0x6AAE, + 0xC269, 0x6AAF, 0xC26A, 0x6B5F, 0xC26B, 0x6B78, 0xC26C, 0x6BAF, + 0xC26D, 0x7009, 0xC26E, 0x700B, 0xC26F, 0x6FFE, 0xC270, 0x7006, + 0xC271, 0x6FFA, 0xC272, 0x7011, 0xC273, 0x700F, 0xC274, 0x71FB, + 0xC275, 0x71FC, 0xC276, 0x71FE, 0xC277, 0x71F8, 0xC278, 0x7377, + 0xC279, 0x7375, 0xC27A, 0x74A7, 0xC27B, 0x74BF, 0xC27C, 0x7515, + 0xC27D, 0x7656, 0xC27E, 0x7658, 0xC2A1, 0x7652, 0xC2A2, 0x77BD, + 0xC2A3, 0x77BF, 0xC2A4, 0x77BB, 0xC2A5, 0x77BC, 0xC2A6, 0x790E, + 0xC2A7, 0x79AE, 0xC2A8, 0x7A61, 0xC2A9, 0x7A62, 0xC2AA, 0x7A60, + 0xC2AB, 0x7AC4, 0xC2AC, 0x7AC5, 0xC2AD, 0x7C2B, 0xC2AE, 0x7C27, + 0xC2AF, 0x7C2A, 0xC2B0, 0x7C1E, 0xC2B1, 0x7C23, 0xC2B2, 0x7C21, + 0xC2B3, 0x7CE7, 0xC2B4, 0x7E54, 0xC2B5, 0x7E55, 0xC2B6, 0x7E5E, + 0xC2B7, 0x7E5A, 0xC2B8, 0x7E61, 0xC2B9, 0x7E52, 0xC2BA, 0x7E59, + 0xC2BB, 0x7F48, 0xC2BC, 0x7FF9, 0xC2BD, 0x7FFB, 0xC2BE, 0x8077, + 0xC2BF, 0x8076, 0xC2C0, 0x81CD, 0xC2C1, 0x81CF, 0xC2C2, 0x820A, + 0xC2C3, 0x85CF, 0xC2C4, 0x85A9, 0xC2C5, 0x85CD, 0xC2C6, 0x85D0, + 0xC2C7, 0x85C9, 0xC2C8, 0x85B0, 0xC2C9, 0x85BA, 0xC2CA, 0x85B9, + 0xC2CB, 0x85A6, 0xC2CC, 0x87EF, 0xC2CD, 0x87EC, 0xC2CE, 0x87F2, + 0xC2CF, 0x87E0, 0xC2D0, 0x8986, 0xC2D1, 0x89B2, 0xC2D2, 0x89F4, + 0xC2D3, 0x8B28, 0xC2D4, 0x8B39, 0xC2D5, 0x8B2C, 0xC2D6, 0x8B2B, + 0xC2D7, 0x8C50, 0xC2D8, 0x8D05, 0xC2D9, 0x8E59, 0xC2DA, 0x8E63, + 0xC2DB, 0x8E66, 0xC2DC, 0x8E64, 0xC2DD, 0x8E5F, 0xC2DE, 0x8E55, + 0xC2DF, 0x8EC0, 0xC2E0, 0x8F49, 0xC2E1, 0x8F4D, 0xC2E2, 0x9087, + 0xC2E3, 0x9083, 0xC2E4, 0x9088, 0xC2E5, 0x91AB, 0xC2E6, 0x91AC, + 0xC2E7, 0x91D0, 0xC2E8, 0x9394, 0xC2E9, 0x938A, 0xC2EA, 0x9396, + 0xC2EB, 0x93A2, 0xC2EC, 0x93B3, 0xC2ED, 0x93AE, 0xC2EE, 0x93AC, + 0xC2EF, 0x93B0, 0xC2F0, 0x9398, 0xC2F1, 0x939A, 0xC2F2, 0x9397, + 0xC2F3, 0x95D4, 0xC2F4, 0x95D6, 0xC2F5, 0x95D0, 0xC2F6, 0x95D5, + 0xC2F7, 0x96E2, 0xC2F8, 0x96DC, 0xC2F9, 0x96D9, 0xC2FA, 0x96DB, + 0xC2FB, 0x96DE, 0xC2FC, 0x9724, 0xC2FD, 0x97A3, 0xC2FE, 0x97A6, + 0xC340, 0x97AD, 0xC341, 0x97F9, 0xC342, 0x984D, 0xC343, 0x984F, + 0xC344, 0x984C, 0xC345, 0x984E, 0xC346, 0x9853, 0xC347, 0x98BA, + 0xC348, 0x993E, 0xC349, 0x993F, 0xC34A, 0x993D, 0xC34B, 0x992E, + 0xC34C, 0x99A5, 0xC34D, 0x9A0E, 0xC34E, 0x9AC1, 0xC34F, 0x9B03, + 0xC350, 0x9B06, 0xC351, 0x9B4F, 0xC352, 0x9B4E, 0xC353, 0x9B4D, + 0xC354, 0x9BCA, 0xC355, 0x9BC9, 0xC356, 0x9BFD, 0xC357, 0x9BC8, + 0xC358, 0x9BC0, 0xC359, 0x9D51, 0xC35A, 0x9D5D, 0xC35B, 0x9D60, + 0xC35C, 0x9EE0, 0xC35D, 0x9F15, 0xC35E, 0x9F2C, 0xC35F, 0x5133, + 0xC360, 0x56A5, 0xC361, 0x58DE, 0xC362, 0x58DF, 0xC363, 0x58E2, + 0xC364, 0x5BF5, 0xC365, 0x9F90, 0xC366, 0x5EEC, 0xC367, 0x61F2, + 0xC368, 0x61F7, 0xC369, 0x61F6, 0xC36A, 0x61F5, 0xC36B, 0x6500, + 0xC36C, 0x650F, 0xC36D, 0x66E0, 0xC36E, 0x66DD, 0xC36F, 0x6AE5, + 0xC370, 0x6ADD, 0xC371, 0x6ADA, 0xC372, 0x6AD3, 0xC373, 0x701B, + 0xC374, 0x701F, 0xC375, 0x7028, 0xC376, 0x701A, 0xC377, 0x701D, + 0xC378, 0x7015, 0xC379, 0x7018, 0xC37A, 0x7206, 0xC37B, 0x720D, + 0xC37C, 0x7258, 0xC37D, 0x72A2, 0xC37E, 0x7378, 0xC3A1, 0x737A, + 0xC3A2, 0x74BD, 0xC3A3, 0x74CA, 0xC3A4, 0x74E3, 0xC3A5, 0x7587, + 0xC3A6, 0x7586, 0xC3A7, 0x765F, 0xC3A8, 0x7661, 0xC3A9, 0x77C7, + 0xC3AA, 0x7919, 0xC3AB, 0x79B1, 0xC3AC, 0x7A6B, 0xC3AD, 0x7A69, + 0xC3AE, 0x7C3E, 0xC3AF, 0x7C3F, 0xC3B0, 0x7C38, 0xC3B1, 0x7C3D, + 0xC3B2, 0x7C37, 0xC3B3, 0x7C40, 0xC3B4, 0x7E6B, 0xC3B5, 0x7E6D, + 0xC3B6, 0x7E79, 0xC3B7, 0x7E69, 0xC3B8, 0x7E6A, 0xC3B9, 0x7F85, + 0xC3BA, 0x7E73, 0xC3BB, 0x7FB6, 0xC3BC, 0x7FB9, 0xC3BD, 0x7FB8, + 0xC3BE, 0x81D8, 0xC3BF, 0x85E9, 0xC3C0, 0x85DD, 0xC3C1, 0x85EA, + 0xC3C2, 0x85D5, 0xC3C3, 0x85E4, 0xC3C4, 0x85E5, 0xC3C5, 0x85F7, + 0xC3C6, 0x87FB, 0xC3C7, 0x8805, 0xC3C8, 0x880D, 0xC3C9, 0x87F9, + 0xC3CA, 0x87FE, 0xC3CB, 0x8960, 0xC3CC, 0x895F, 0xC3CD, 0x8956, + 0xC3CE, 0x895E, 0xC3CF, 0x8B41, 0xC3D0, 0x8B5C, 0xC3D1, 0x8B58, + 0xC3D2, 0x8B49, 0xC3D3, 0x8B5A, 0xC3D4, 0x8B4E, 0xC3D5, 0x8B4F, + 0xC3D6, 0x8B46, 0xC3D7, 0x8B59, 0xC3D8, 0x8D08, 0xC3D9, 0x8D0A, + 0xC3DA, 0x8E7C, 0xC3DB, 0x8E72, 0xC3DC, 0x8E87, 0xC3DD, 0x8E76, + 0xC3DE, 0x8E6C, 0xC3DF, 0x8E7A, 0xC3E0, 0x8E74, 0xC3E1, 0x8F54, + 0xC3E2, 0x8F4E, 0xC3E3, 0x8FAD, 0xC3E4, 0x908A, 0xC3E5, 0x908B, + 0xC3E6, 0x91B1, 0xC3E7, 0x91AE, 0xC3E8, 0x93E1, 0xC3E9, 0x93D1, + 0xC3EA, 0x93DF, 0xC3EB, 0x93C3, 0xC3EC, 0x93C8, 0xC3ED, 0x93DC, + 0xC3EE, 0x93DD, 0xC3EF, 0x93D6, 0xC3F0, 0x93E2, 0xC3F1, 0x93CD, + 0xC3F2, 0x93D8, 0xC3F3, 0x93E4, 0xC3F4, 0x93D7, 0xC3F5, 0x93E8, + 0xC3F6, 0x95DC, 0xC3F7, 0x96B4, 0xC3F8, 0x96E3, 0xC3F9, 0x972A, + 0xC3FA, 0x9727, 0xC3FB, 0x9761, 0xC3FC, 0x97DC, 0xC3FD, 0x97FB, + 0xC3FE, 0x985E, 0xC440, 0x9858, 0xC441, 0x985B, 0xC442, 0x98BC, + 0xC443, 0x9945, 0xC444, 0x9949, 0xC445, 0x9A16, 0xC446, 0x9A19, + 0xC447, 0x9B0D, 0xC448, 0x9BE8, 0xC449, 0x9BE7, 0xC44A, 0x9BD6, + 0xC44B, 0x9BDB, 0xC44C, 0x9D89, 0xC44D, 0x9D61, 0xC44E, 0x9D72, + 0xC44F, 0x9D6A, 0xC450, 0x9D6C, 0xC451, 0x9E92, 0xC452, 0x9E97, + 0xC453, 0x9E93, 0xC454, 0x9EB4, 0xC455, 0x52F8, 0xC456, 0x56A8, + 0xC457, 0x56B7, 0xC458, 0x56B6, 0xC459, 0x56B4, 0xC45A, 0x56BC, + 0xC45B, 0x58E4, 0xC45C, 0x5B40, 0xC45D, 0x5B43, 0xC45E, 0x5B7D, + 0xC45F, 0x5BF6, 0xC460, 0x5DC9, 0xC461, 0x61F8, 0xC462, 0x61FA, + 0xC463, 0x6518, 0xC464, 0x6514, 0xC465, 0x6519, 0xC466, 0x66E6, + 0xC467, 0x6727, 0xC468, 0x6AEC, 0xC469, 0x703E, 0xC46A, 0x7030, + 0xC46B, 0x7032, 0xC46C, 0x7210, 0xC46D, 0x737B, 0xC46E, 0x74CF, + 0xC46F, 0x7662, 0xC470, 0x7665, 0xC471, 0x7926, 0xC472, 0x792A, + 0xC473, 0x792C, 0xC474, 0x792B, 0xC475, 0x7AC7, 0xC476, 0x7AF6, + 0xC477, 0x7C4C, 0xC478, 0x7C43, 0xC479, 0x7C4D, 0xC47A, 0x7CEF, + 0xC47B, 0x7CF0, 0xC47C, 0x8FAE, 0xC47D, 0x7E7D, 0xC47E, 0x7E7C, + 0xC4A1, 0x7E82, 0xC4A2, 0x7F4C, 0xC4A3, 0x8000, 0xC4A4, 0x81DA, + 0xC4A5, 0x8266, 0xC4A6, 0x85FB, 0xC4A7, 0x85F9, 0xC4A8, 0x8611, + 0xC4A9, 0x85FA, 0xC4AA, 0x8606, 0xC4AB, 0x860B, 0xC4AC, 0x8607, + 0xC4AD, 0x860A, 0xC4AE, 0x8814, 0xC4AF, 0x8815, 0xC4B0, 0x8964, + 0xC4B1, 0x89BA, 0xC4B2, 0x89F8, 0xC4B3, 0x8B70, 0xC4B4, 0x8B6C, + 0xC4B5, 0x8B66, 0xC4B6, 0x8B6F, 0xC4B7, 0x8B5F, 0xC4B8, 0x8B6B, + 0xC4B9, 0x8D0F, 0xC4BA, 0x8D0D, 0xC4BB, 0x8E89, 0xC4BC, 0x8E81, + 0xC4BD, 0x8E85, 0xC4BE, 0x8E82, 0xC4BF, 0x91B4, 0xC4C0, 0x91CB, + 0xC4C1, 0x9418, 0xC4C2, 0x9403, 0xC4C3, 0x93FD, 0xC4C4, 0x95E1, + 0xC4C5, 0x9730, 0xC4C6, 0x98C4, 0xC4C7, 0x9952, 0xC4C8, 0x9951, + 0xC4C9, 0x99A8, 0xC4CA, 0x9A2B, 0xC4CB, 0x9A30, 0xC4CC, 0x9A37, + 0xC4CD, 0x9A35, 0xC4CE, 0x9C13, 0xC4CF, 0x9C0D, 0xC4D0, 0x9E79, + 0xC4D1, 0x9EB5, 0xC4D2, 0x9EE8, 0xC4D3, 0x9F2F, 0xC4D4, 0x9F5F, + 0xC4D5, 0x9F63, 0xC4D6, 0x9F61, 0xC4D7, 0x5137, 0xC4D8, 0x5138, + 0xC4D9, 0x56C1, 0xC4DA, 0x56C0, 0xC4DB, 0x56C2, 0xC4DC, 0x5914, + 0xC4DD, 0x5C6C, 0xC4DE, 0x5DCD, 0xC4DF, 0x61FC, 0xC4E0, 0x61FE, + 0xC4E1, 0x651D, 0xC4E2, 0x651C, 0xC4E3, 0x6595, 0xC4E4, 0x66E9, + 0xC4E5, 0x6AFB, 0xC4E6, 0x6B04, 0xC4E7, 0x6AFA, 0xC4E8, 0x6BB2, + 0xC4E9, 0x704C, 0xC4EA, 0x721B, 0xC4EB, 0x72A7, 0xC4EC, 0x74D6, + 0xC4ED, 0x74D4, 0xC4EE, 0x7669, 0xC4EF, 0x77D3, 0xC4F0, 0x7C50, + 0xC4F1, 0x7E8F, 0xC4F2, 0x7E8C, 0xC4F3, 0x7FBC, 0xC4F4, 0x8617, + 0xC4F5, 0x862D, 0xC4F6, 0x861A, 0xC4F7, 0x8823, 0xC4F8, 0x8822, + 0xC4F9, 0x8821, 0xC4FA, 0x881F, 0xC4FB, 0x896A, 0xC4FC, 0x896C, + 0xC4FD, 0x89BD, 0xC4FE, 0x8B74, 0xC540, 0x8B77, 0xC541, 0x8B7D, + 0xC542, 0x8D13, 0xC543, 0x8E8A, 0xC544, 0x8E8D, 0xC545, 0x8E8B, + 0xC546, 0x8F5F, 0xC547, 0x8FAF, 0xC548, 0x91BA, 0xC549, 0x942E, + 0xC54A, 0x9433, 0xC54B, 0x9435, 0xC54C, 0x943A, 0xC54D, 0x9438, + 0xC54E, 0x9432, 0xC54F, 0x942B, 0xC550, 0x95E2, 0xC551, 0x9738, + 0xC552, 0x9739, 0xC553, 0x9732, 0xC554, 0x97FF, 0xC555, 0x9867, + 0xC556, 0x9865, 0xC557, 0x9957, 0xC558, 0x9A45, 0xC559, 0x9A43, + 0xC55A, 0x9A40, 0xC55B, 0x9A3E, 0xC55C, 0x9ACF, 0xC55D, 0x9B54, + 0xC55E, 0x9B51, 0xC55F, 0x9C2D, 0xC560, 0x9C25, 0xC561, 0x9DAF, + 0xC562, 0x9DB4, 0xC563, 0x9DC2, 0xC564, 0x9DB8, 0xC565, 0x9E9D, + 0xC566, 0x9EEF, 0xC567, 0x9F19, 0xC568, 0x9F5C, 0xC569, 0x9F66, + 0xC56A, 0x9F67, 0xC56B, 0x513C, 0xC56C, 0x513B, 0xC56D, 0x56C8, + 0xC56E, 0x56CA, 0xC56F, 0x56C9, 0xC570, 0x5B7F, 0xC571, 0x5DD4, + 0xC572, 0x5DD2, 0xC573, 0x5F4E, 0xC574, 0x61FF, 0xC575, 0x6524, + 0xC576, 0x6B0A, 0xC577, 0x6B61, 0xC578, 0x7051, 0xC579, 0x7058, + 0xC57A, 0x7380, 0xC57B, 0x74E4, 0xC57C, 0x758A, 0xC57D, 0x766E, + 0xC57E, 0x766C, 0xC5A1, 0x79B3, 0xC5A2, 0x7C60, 0xC5A3, 0x7C5F, + 0xC5A4, 0x807E, 0xC5A5, 0x807D, 0xC5A6, 0x81DF, 0xC5A7, 0x8972, + 0xC5A8, 0x896F, 0xC5A9, 0x89FC, 0xC5AA, 0x8B80, 0xC5AB, 0x8D16, + 0xC5AC, 0x8D17, 0xC5AD, 0x8E91, 0xC5AE, 0x8E93, 0xC5AF, 0x8F61, + 0xC5B0, 0x9148, 0xC5B1, 0x9444, 0xC5B2, 0x9451, 0xC5B3, 0x9452, + 0xC5B4, 0x973D, 0xC5B5, 0x973E, 0xC5B6, 0x97C3, 0xC5B7, 0x97C1, + 0xC5B8, 0x986B, 0xC5B9, 0x9955, 0xC5BA, 0x9A55, 0xC5BB, 0x9A4D, + 0xC5BC, 0x9AD2, 0xC5BD, 0x9B1A, 0xC5BE, 0x9C49, 0xC5BF, 0x9C31, + 0xC5C0, 0x9C3E, 0xC5C1, 0x9C3B, 0xC5C2, 0x9DD3, 0xC5C3, 0x9DD7, + 0xC5C4, 0x9F34, 0xC5C5, 0x9F6C, 0xC5C6, 0x9F6A, 0xC5C7, 0x9F94, + 0xC5C8, 0x56CC, 0xC5C9, 0x5DD6, 0xC5CA, 0x6200, 0xC5CB, 0x6523, + 0xC5CC, 0x652B, 0xC5CD, 0x652A, 0xC5CE, 0x66EC, 0xC5CF, 0x6B10, + 0xC5D0, 0x74DA, 0xC5D1, 0x7ACA, 0xC5D2, 0x7C64, 0xC5D3, 0x7C63, + 0xC5D4, 0x7C65, 0xC5D5, 0x7E93, 0xC5D6, 0x7E96, 0xC5D7, 0x7E94, + 0xC5D8, 0x81E2, 0xC5D9, 0x8638, 0xC5DA, 0x863F, 0xC5DB, 0x8831, + 0xC5DC, 0x8B8A, 0xC5DD, 0x9090, 0xC5DE, 0x908F, 0xC5DF, 0x9463, + 0xC5E0, 0x9460, 0xC5E1, 0x9464, 0xC5E2, 0x9768, 0xC5E3, 0x986F, + 0xC5E4, 0x995C, 0xC5E5, 0x9A5A, 0xC5E6, 0x9A5B, 0xC5E7, 0x9A57, + 0xC5E8, 0x9AD3, 0xC5E9, 0x9AD4, 0xC5EA, 0x9AD1, 0xC5EB, 0x9C54, + 0xC5EC, 0x9C57, 0xC5ED, 0x9C56, 0xC5EE, 0x9DE5, 0xC5EF, 0x9E9F, + 0xC5F0, 0x9EF4, 0xC5F1, 0x56D1, 0xC5F2, 0x58E9, 0xC5F3, 0x652C, + 0xC5F4, 0x705E, 0xC5F5, 0x7671, 0xC5F6, 0x7672, 0xC5F7, 0x77D7, + 0xC5F8, 0x7F50, 0xC5F9, 0x7F88, 0xC5FA, 0x8836, 0xC5FB, 0x8839, + 0xC5FC, 0x8862, 0xC5FD, 0x8B93, 0xC5FE, 0x8B92, 0xC640, 0x8B96, + 0xC641, 0x8277, 0xC642, 0x8D1B, 0xC643, 0x91C0, 0xC644, 0x946A, + 0xC645, 0x9742, 0xC646, 0x9748, 0xC647, 0x9744, 0xC648, 0x97C6, + 0xC649, 0x9870, 0xC64A, 0x9A5F, 0xC64B, 0x9B22, 0xC64C, 0x9B58, + 0xC64D, 0x9C5F, 0xC64E, 0x9DF9, 0xC64F, 0x9DFA, 0xC650, 0x9E7C, + 0xC651, 0x9E7D, 0xC652, 0x9F07, 0xC653, 0x9F77, 0xC654, 0x9F72, + 0xC655, 0x5EF3, 0xC656, 0x6B16, 0xC657, 0x7063, 0xC658, 0x7C6C, + 0xC659, 0x7C6E, 0xC65A, 0x883B, 0xC65B, 0x89C0, 0xC65C, 0x8EA1, + 0xC65D, 0x91C1, 0xC65E, 0x9472, 0xC65F, 0x9470, 0xC660, 0x9871, + 0xC661, 0x995E, 0xC662, 0x9AD6, 0xC663, 0x9B23, 0xC664, 0x9ECC, + 0xC665, 0x7064, 0xC666, 0x77DA, 0xC667, 0x8B9A, 0xC668, 0x9477, + 0xC669, 0x97C9, 0xC66A, 0x9A62, 0xC66B, 0x9A65, 0xC66C, 0x7E9C, + 0xC66D, 0x8B9C, 0xC66E, 0x8EAA, 0xC66F, 0x91C5, 0xC670, 0x947D, + 0xC671, 0x947E, 0xC672, 0x947C, 0xC673, 0x9C77, 0xC674, 0x9C78, + 0xC675, 0x9EF7, 0xC676, 0x8C54, 0xC677, 0x947F, 0xC678, 0x9E1A, + 0xC679, 0x7228, 0xC67A, 0x9A6A, 0xC67B, 0x9B31, 0xC67C, 0x9E1B, + 0xC67D, 0x9E1E, 0xC67E, 0x7C72, 0xC940, 0x4E42, 0xC941, 0x4E5C, + 0xC942, 0x51F5, 0xC943, 0x531A, 0xC944, 0x5382, 0xC945, 0x4E07, + 0xC946, 0x4E0C, 0xC947, 0x4E47, 0xC948, 0x4E8D, 0xC949, 0x56D7, + 0xC94A, 0xFA0C, 0xC94B, 0x5C6E, 0xC94C, 0x5F73, 0xC94D, 0x4E0F, + 0xC94E, 0x5187, 0xC94F, 0x4E0E, 0xC950, 0x4E2E, 0xC951, 0x4E93, + 0xC952, 0x4EC2, 0xC953, 0x4EC9, 0xC954, 0x4EC8, 0xC955, 0x5198, + 0xC956, 0x52FC, 0xC957, 0x536C, 0xC958, 0x53B9, 0xC959, 0x5720, + 0xC95A, 0x5903, 0xC95B, 0x592C, 0xC95C, 0x5C10, 0xC95D, 0x5DFF, + 0xC95E, 0x65E1, 0xC95F, 0x6BB3, 0xC960, 0x6BCC, 0xC961, 0x6C14, + 0xC962, 0x723F, 0xC963, 0x4E31, 0xC964, 0x4E3C, 0xC965, 0x4EE8, + 0xC966, 0x4EDC, 0xC967, 0x4EE9, 0xC968, 0x4EE1, 0xC969, 0x4EDD, + 0xC96A, 0x4EDA, 0xC96B, 0x520C, 0xC96C, 0x531C, 0xC96D, 0x534C, + 0xC96E, 0x5722, 0xC96F, 0x5723, 0xC970, 0x5917, 0xC971, 0x592F, + 0xC972, 0x5B81, 0xC973, 0x5B84, 0xC974, 0x5C12, 0xC975, 0x5C3B, + 0xC976, 0x5C74, 0xC977, 0x5C73, 0xC978, 0x5E04, 0xC979, 0x5E80, + 0xC97A, 0x5E82, 0xC97B, 0x5FC9, 0xC97C, 0x6209, 0xC97D, 0x6250, + 0xC97E, 0x6C15, 0xC9A1, 0x6C36, 0xC9A2, 0x6C43, 0xC9A3, 0x6C3F, + 0xC9A4, 0x6C3B, 0xC9A5, 0x72AE, 0xC9A6, 0x72B0, 0xC9A7, 0x738A, + 0xC9A8, 0x79B8, 0xC9A9, 0x808A, 0xC9AA, 0x961E, 0xC9AB, 0x4F0E, + 0xC9AC, 0x4F18, 0xC9AD, 0x4F2C, 0xC9AE, 0x4EF5, 0xC9AF, 0x4F14, + 0xC9B0, 0x4EF1, 0xC9B1, 0x4F00, 0xC9B2, 0x4EF7, 0xC9B3, 0x4F08, + 0xC9B4, 0x4F1D, 0xC9B5, 0x4F02, 0xC9B6, 0x4F05, 0xC9B7, 0x4F22, + 0xC9B8, 0x4F13, 0xC9B9, 0x4F04, 0xC9BA, 0x4EF4, 0xC9BB, 0x4F12, + 0xC9BC, 0x51B1, 0xC9BD, 0x5213, 0xC9BE, 0x5209, 0xC9BF, 0x5210, + 0xC9C0, 0x52A6, 0xC9C1, 0x5322, 0xC9C2, 0x531F, 0xC9C3, 0x534D, + 0xC9C4, 0x538A, 0xC9C5, 0x5407, 0xC9C6, 0x56E1, 0xC9C7, 0x56DF, + 0xC9C8, 0x572E, 0xC9C9, 0x572A, 0xC9CA, 0x5734, 0xC9CB, 0x593C, + 0xC9CC, 0x5980, 0xC9CD, 0x597C, 0xC9CE, 0x5985, 0xC9CF, 0x597B, + 0xC9D0, 0x597E, 0xC9D1, 0x5977, 0xC9D2, 0x597F, 0xC9D3, 0x5B56, + 0xC9D4, 0x5C15, 0xC9D5, 0x5C25, 0xC9D6, 0x5C7C, 0xC9D7, 0x5C7A, + 0xC9D8, 0x5C7B, 0xC9D9, 0x5C7E, 0xC9DA, 0x5DDF, 0xC9DB, 0x5E75, + 0xC9DC, 0x5E84, 0xC9DD, 0x5F02, 0xC9DE, 0x5F1A, 0xC9DF, 0x5F74, + 0xC9E0, 0x5FD5, 0xC9E1, 0x5FD4, 0xC9E2, 0x5FCF, 0xC9E3, 0x625C, + 0xC9E4, 0x625E, 0xC9E5, 0x6264, 0xC9E6, 0x6261, 0xC9E7, 0x6266, + 0xC9E8, 0x6262, 0xC9E9, 0x6259, 0xC9EA, 0x6260, 0xC9EB, 0x625A, + 0xC9EC, 0x6265, 0xC9ED, 0x65EF, 0xC9EE, 0x65EE, 0xC9EF, 0x673E, + 0xC9F0, 0x6739, 0xC9F1, 0x6738, 0xC9F2, 0x673B, 0xC9F3, 0x673A, + 0xC9F4, 0x673F, 0xC9F5, 0x673C, 0xC9F6, 0x6733, 0xC9F7, 0x6C18, + 0xC9F8, 0x6C46, 0xC9F9, 0x6C52, 0xC9FA, 0x6C5C, 0xC9FB, 0x6C4F, + 0xC9FC, 0x6C4A, 0xC9FD, 0x6C54, 0xC9FE, 0x6C4B, 0xCA40, 0x6C4C, + 0xCA41, 0x7071, 0xCA42, 0x725E, 0xCA43, 0x72B4, 0xCA44, 0x72B5, + 0xCA45, 0x738E, 0xCA46, 0x752A, 0xCA47, 0x767F, 0xCA48, 0x7A75, + 0xCA49, 0x7F51, 0xCA4A, 0x8278, 0xCA4B, 0x827C, 0xCA4C, 0x8280, + 0xCA4D, 0x827D, 0xCA4E, 0x827F, 0xCA4F, 0x864D, 0xCA50, 0x897E, + 0xCA51, 0x9099, 0xCA52, 0x9097, 0xCA53, 0x9098, 0xCA54, 0x909B, + 0xCA55, 0x9094, 0xCA56, 0x9622, 0xCA57, 0x9624, 0xCA58, 0x9620, + 0xCA59, 0x9623, 0xCA5A, 0x4F56, 0xCA5B, 0x4F3B, 0xCA5C, 0x4F62, + 0xCA5D, 0x4F49, 0xCA5E, 0x4F53, 0xCA5F, 0x4F64, 0xCA60, 0x4F3E, + 0xCA61, 0x4F67, 0xCA62, 0x4F52, 0xCA63, 0x4F5F, 0xCA64, 0x4F41, + 0xCA65, 0x4F58, 0xCA66, 0x4F2D, 0xCA67, 0x4F33, 0xCA68, 0x4F3F, + 0xCA69, 0x4F61, 0xCA6A, 0x518F, 0xCA6B, 0x51B9, 0xCA6C, 0x521C, + 0xCA6D, 0x521E, 0xCA6E, 0x5221, 0xCA6F, 0x52AD, 0xCA70, 0x52AE, + 0xCA71, 0x5309, 0xCA72, 0x5363, 0xCA73, 0x5372, 0xCA74, 0x538E, + 0xCA75, 0x538F, 0xCA76, 0x5430, 0xCA77, 0x5437, 0xCA78, 0x542A, + 0xCA79, 0x5454, 0xCA7A, 0x5445, 0xCA7B, 0x5419, 0xCA7C, 0x541C, + 0xCA7D, 0x5425, 0xCA7E, 0x5418, 0xCAA1, 0x543D, 0xCAA2, 0x544F, + 0xCAA3, 0x5441, 0xCAA4, 0x5428, 0xCAA5, 0x5424, 0xCAA6, 0x5447, + 0xCAA7, 0x56EE, 0xCAA8, 0x56E7, 0xCAA9, 0x56E5, 0xCAAA, 0x5741, + 0xCAAB, 0x5745, 0xCAAC, 0x574C, 0xCAAD, 0x5749, 0xCAAE, 0x574B, + 0xCAAF, 0x5752, 0xCAB0, 0x5906, 0xCAB1, 0x5940, 0xCAB2, 0x59A6, + 0xCAB3, 0x5998, 0xCAB4, 0x59A0, 0xCAB5, 0x5997, 0xCAB6, 0x598E, + 0xCAB7, 0x59A2, 0xCAB8, 0x5990, 0xCAB9, 0x598F, 0xCABA, 0x59A7, + 0xCABB, 0x59A1, 0xCABC, 0x5B8E, 0xCABD, 0x5B92, 0xCABE, 0x5C28, + 0xCABF, 0x5C2A, 0xCAC0, 0x5C8D, 0xCAC1, 0x5C8F, 0xCAC2, 0x5C88, + 0xCAC3, 0x5C8B, 0xCAC4, 0x5C89, 0xCAC5, 0x5C92, 0xCAC6, 0x5C8A, + 0xCAC7, 0x5C86, 0xCAC8, 0x5C93, 0xCAC9, 0x5C95, 0xCACA, 0x5DE0, + 0xCACB, 0x5E0A, 0xCACC, 0x5E0E, 0xCACD, 0x5E8B, 0xCACE, 0x5E89, + 0xCACF, 0x5E8C, 0xCAD0, 0x5E88, 0xCAD1, 0x5E8D, 0xCAD2, 0x5F05, + 0xCAD3, 0x5F1D, 0xCAD4, 0x5F78, 0xCAD5, 0x5F76, 0xCAD6, 0x5FD2, + 0xCAD7, 0x5FD1, 0xCAD8, 0x5FD0, 0xCAD9, 0x5FED, 0xCADA, 0x5FE8, + 0xCADB, 0x5FEE, 0xCADC, 0x5FF3, 0xCADD, 0x5FE1, 0xCADE, 0x5FE4, + 0xCADF, 0x5FE3, 0xCAE0, 0x5FFA, 0xCAE1, 0x5FEF, 0xCAE2, 0x5FF7, + 0xCAE3, 0x5FFB, 0xCAE4, 0x6000, 0xCAE5, 0x5FF4, 0xCAE6, 0x623A, + 0xCAE7, 0x6283, 0xCAE8, 0x628C, 0xCAE9, 0x628E, 0xCAEA, 0x628F, + 0xCAEB, 0x6294, 0xCAEC, 0x6287, 0xCAED, 0x6271, 0xCAEE, 0x627B, + 0xCAEF, 0x627A, 0xCAF0, 0x6270, 0xCAF1, 0x6281, 0xCAF2, 0x6288, + 0xCAF3, 0x6277, 0xCAF4, 0x627D, 0xCAF5, 0x6272, 0xCAF6, 0x6274, + 0xCAF7, 0x6537, 0xCAF8, 0x65F0, 0xCAF9, 0x65F4, 0xCAFA, 0x65F3, + 0xCAFB, 0x65F2, 0xCAFC, 0x65F5, 0xCAFD, 0x6745, 0xCAFE, 0x6747, + 0xCB40, 0x6759, 0xCB41, 0x6755, 0xCB42, 0x674C, 0xCB43, 0x6748, + 0xCB44, 0x675D, 0xCB45, 0x674D, 0xCB46, 0x675A, 0xCB47, 0x674B, + 0xCB48, 0x6BD0, 0xCB49, 0x6C19, 0xCB4A, 0x6C1A, 0xCB4B, 0x6C78, + 0xCB4C, 0x6C67, 0xCB4D, 0x6C6B, 0xCB4E, 0x6C84, 0xCB4F, 0x6C8B, + 0xCB50, 0x6C8F, 0xCB51, 0x6C71, 0xCB52, 0x6C6F, 0xCB53, 0x6C69, + 0xCB54, 0x6C9A, 0xCB55, 0x6C6D, 0xCB56, 0x6C87, 0xCB57, 0x6C95, + 0xCB58, 0x6C9C, 0xCB59, 0x6C66, 0xCB5A, 0x6C73, 0xCB5B, 0x6C65, + 0xCB5C, 0x6C7B, 0xCB5D, 0x6C8E, 0xCB5E, 0x7074, 0xCB5F, 0x707A, + 0xCB60, 0x7263, 0xCB61, 0x72BF, 0xCB62, 0x72BD, 0xCB63, 0x72C3, + 0xCB64, 0x72C6, 0xCB65, 0x72C1, 0xCB66, 0x72BA, 0xCB67, 0x72C5, + 0xCB68, 0x7395, 0xCB69, 0x7397, 0xCB6A, 0x7393, 0xCB6B, 0x7394, + 0xCB6C, 0x7392, 0xCB6D, 0x753A, 0xCB6E, 0x7539, 0xCB6F, 0x7594, + 0xCB70, 0x7595, 0xCB71, 0x7681, 0xCB72, 0x793D, 0xCB73, 0x8034, + 0xCB74, 0x8095, 0xCB75, 0x8099, 0xCB76, 0x8090, 0xCB77, 0x8092, + 0xCB78, 0x809C, 0xCB79, 0x8290, 0xCB7A, 0x828F, 0xCB7B, 0x8285, + 0xCB7C, 0x828E, 0xCB7D, 0x8291, 0xCB7E, 0x8293, 0xCBA1, 0x828A, + 0xCBA2, 0x8283, 0xCBA3, 0x8284, 0xCBA4, 0x8C78, 0xCBA5, 0x8FC9, + 0xCBA6, 0x8FBF, 0xCBA7, 0x909F, 0xCBA8, 0x90A1, 0xCBA9, 0x90A5, + 0xCBAA, 0x909E, 0xCBAB, 0x90A7, 0xCBAC, 0x90A0, 0xCBAD, 0x9630, + 0xCBAE, 0x9628, 0xCBAF, 0x962F, 0xCBB0, 0x962D, 0xCBB1, 0x4E33, + 0xCBB2, 0x4F98, 0xCBB3, 0x4F7C, 0xCBB4, 0x4F85, 0xCBB5, 0x4F7D, + 0xCBB6, 0x4F80, 0xCBB7, 0x4F87, 0xCBB8, 0x4F76, 0xCBB9, 0x4F74, + 0xCBBA, 0x4F89, 0xCBBB, 0x4F84, 0xCBBC, 0x4F77, 0xCBBD, 0x4F4C, + 0xCBBE, 0x4F97, 0xCBBF, 0x4F6A, 0xCBC0, 0x4F9A, 0xCBC1, 0x4F79, + 0xCBC2, 0x4F81, 0xCBC3, 0x4F78, 0xCBC4, 0x4F90, 0xCBC5, 0x4F9C, + 0xCBC6, 0x4F94, 0xCBC7, 0x4F9E, 0xCBC8, 0x4F92, 0xCBC9, 0x4F82, + 0xCBCA, 0x4F95, 0xCBCB, 0x4F6B, 0xCBCC, 0x4F6E, 0xCBCD, 0x519E, + 0xCBCE, 0x51BC, 0xCBCF, 0x51BE, 0xCBD0, 0x5235, 0xCBD1, 0x5232, + 0xCBD2, 0x5233, 0xCBD3, 0x5246, 0xCBD4, 0x5231, 0xCBD5, 0x52BC, + 0xCBD6, 0x530A, 0xCBD7, 0x530B, 0xCBD8, 0x533C, 0xCBD9, 0x5392, + 0xCBDA, 0x5394, 0xCBDB, 0x5487, 0xCBDC, 0x547F, 0xCBDD, 0x5481, + 0xCBDE, 0x5491, 0xCBDF, 0x5482, 0xCBE0, 0x5488, 0xCBE1, 0x546B, + 0xCBE2, 0x547A, 0xCBE3, 0x547E, 0xCBE4, 0x5465, 0xCBE5, 0x546C, + 0xCBE6, 0x5474, 0xCBE7, 0x5466, 0xCBE8, 0x548D, 0xCBE9, 0x546F, + 0xCBEA, 0x5461, 0xCBEB, 0x5460, 0xCBEC, 0x5498, 0xCBED, 0x5463, + 0xCBEE, 0x5467, 0xCBEF, 0x5464, 0xCBF0, 0x56F7, 0xCBF1, 0x56F9, + 0xCBF2, 0x576F, 0xCBF3, 0x5772, 0xCBF4, 0x576D, 0xCBF5, 0x576B, + 0xCBF6, 0x5771, 0xCBF7, 0x5770, 0xCBF8, 0x5776, 0xCBF9, 0x5780, + 0xCBFA, 0x5775, 0xCBFB, 0x577B, 0xCBFC, 0x5773, 0xCBFD, 0x5774, + 0xCBFE, 0x5762, 0xCC40, 0x5768, 0xCC41, 0x577D, 0xCC42, 0x590C, + 0xCC43, 0x5945, 0xCC44, 0x59B5, 0xCC45, 0x59BA, 0xCC46, 0x59CF, + 0xCC47, 0x59CE, 0xCC48, 0x59B2, 0xCC49, 0x59CC, 0xCC4A, 0x59C1, + 0xCC4B, 0x59B6, 0xCC4C, 0x59BC, 0xCC4D, 0x59C3, 0xCC4E, 0x59D6, + 0xCC4F, 0x59B1, 0xCC50, 0x59BD, 0xCC51, 0x59C0, 0xCC52, 0x59C8, + 0xCC53, 0x59B4, 0xCC54, 0x59C7, 0xCC55, 0x5B62, 0xCC56, 0x5B65, + 0xCC57, 0x5B93, 0xCC58, 0x5B95, 0xCC59, 0x5C44, 0xCC5A, 0x5C47, + 0xCC5B, 0x5CAE, 0xCC5C, 0x5CA4, 0xCC5D, 0x5CA0, 0xCC5E, 0x5CB5, + 0xCC5F, 0x5CAF, 0xCC60, 0x5CA8, 0xCC61, 0x5CAC, 0xCC62, 0x5C9F, + 0xCC63, 0x5CA3, 0xCC64, 0x5CAD, 0xCC65, 0x5CA2, 0xCC66, 0x5CAA, + 0xCC67, 0x5CA7, 0xCC68, 0x5C9D, 0xCC69, 0x5CA5, 0xCC6A, 0x5CB6, + 0xCC6B, 0x5CB0, 0xCC6C, 0x5CA6, 0xCC6D, 0x5E17, 0xCC6E, 0x5E14, + 0xCC6F, 0x5E19, 0xCC70, 0x5F28, 0xCC71, 0x5F22, 0xCC72, 0x5F23, + 0xCC73, 0x5F24, 0xCC74, 0x5F54, 0xCC75, 0x5F82, 0xCC76, 0x5F7E, + 0xCC77, 0x5F7D, 0xCC78, 0x5FDE, 0xCC79, 0x5FE5, 0xCC7A, 0x602D, + 0xCC7B, 0x6026, 0xCC7C, 0x6019, 0xCC7D, 0x6032, 0xCC7E, 0x600B, + 0xCCA1, 0x6034, 0xCCA2, 0x600A, 0xCCA3, 0x6017, 0xCCA4, 0x6033, + 0xCCA5, 0x601A, 0xCCA6, 0x601E, 0xCCA7, 0x602C, 0xCCA8, 0x6022, + 0xCCA9, 0x600D, 0xCCAA, 0x6010, 0xCCAB, 0x602E, 0xCCAC, 0x6013, + 0xCCAD, 0x6011, 0xCCAE, 0x600C, 0xCCAF, 0x6009, 0xCCB0, 0x601C, + 0xCCB1, 0x6214, 0xCCB2, 0x623D, 0xCCB3, 0x62AD, 0xCCB4, 0x62B4, + 0xCCB5, 0x62D1, 0xCCB6, 0x62BE, 0xCCB7, 0x62AA, 0xCCB8, 0x62B6, + 0xCCB9, 0x62CA, 0xCCBA, 0x62AE, 0xCCBB, 0x62B3, 0xCCBC, 0x62AF, + 0xCCBD, 0x62BB, 0xCCBE, 0x62A9, 0xCCBF, 0x62B0, 0xCCC0, 0x62B8, + 0xCCC1, 0x653D, 0xCCC2, 0x65A8, 0xCCC3, 0x65BB, 0xCCC4, 0x6609, + 0xCCC5, 0x65FC, 0xCCC6, 0x6604, 0xCCC7, 0x6612, 0xCCC8, 0x6608, + 0xCCC9, 0x65FB, 0xCCCA, 0x6603, 0xCCCB, 0x660B, 0xCCCC, 0x660D, + 0xCCCD, 0x6605, 0xCCCE, 0x65FD, 0xCCCF, 0x6611, 0xCCD0, 0x6610, + 0xCCD1, 0x66F6, 0xCCD2, 0x670A, 0xCCD3, 0x6785, 0xCCD4, 0x676C, + 0xCCD5, 0x678E, 0xCCD6, 0x6792, 0xCCD7, 0x6776, 0xCCD8, 0x677B, + 0xCCD9, 0x6798, 0xCCDA, 0x6786, 0xCCDB, 0x6784, 0xCCDC, 0x6774, + 0xCCDD, 0x678D, 0xCCDE, 0x678C, 0xCCDF, 0x677A, 0xCCE0, 0x679F, + 0xCCE1, 0x6791, 0xCCE2, 0x6799, 0xCCE3, 0x6783, 0xCCE4, 0x677D, + 0xCCE5, 0x6781, 0xCCE6, 0x6778, 0xCCE7, 0x6779, 0xCCE8, 0x6794, + 0xCCE9, 0x6B25, 0xCCEA, 0x6B80, 0xCCEB, 0x6B7E, 0xCCEC, 0x6BDE, + 0xCCED, 0x6C1D, 0xCCEE, 0x6C93, 0xCCEF, 0x6CEC, 0xCCF0, 0x6CEB, + 0xCCF1, 0x6CEE, 0xCCF2, 0x6CD9, 0xCCF3, 0x6CB6, 0xCCF4, 0x6CD4, + 0xCCF5, 0x6CAD, 0xCCF6, 0x6CE7, 0xCCF7, 0x6CB7, 0xCCF8, 0x6CD0, + 0xCCF9, 0x6CC2, 0xCCFA, 0x6CBA, 0xCCFB, 0x6CC3, 0xCCFC, 0x6CC6, + 0xCCFD, 0x6CED, 0xCCFE, 0x6CF2, 0xCD40, 0x6CD2, 0xCD41, 0x6CDD, + 0xCD42, 0x6CB4, 0xCD43, 0x6C8A, 0xCD44, 0x6C9D, 0xCD45, 0x6C80, + 0xCD46, 0x6CDE, 0xCD47, 0x6CC0, 0xCD48, 0x6D30, 0xCD49, 0x6CCD, + 0xCD4A, 0x6CC7, 0xCD4B, 0x6CB0, 0xCD4C, 0x6CF9, 0xCD4D, 0x6CCF, + 0xCD4E, 0x6CE9, 0xCD4F, 0x6CD1, 0xCD50, 0x7094, 0xCD51, 0x7098, + 0xCD52, 0x7085, 0xCD53, 0x7093, 0xCD54, 0x7086, 0xCD55, 0x7084, + 0xCD56, 0x7091, 0xCD57, 0x7096, 0xCD58, 0x7082, 0xCD59, 0x709A, + 0xCD5A, 0x7083, 0xCD5B, 0x726A, 0xCD5C, 0x72D6, 0xCD5D, 0x72CB, + 0xCD5E, 0x72D8, 0xCD5F, 0x72C9, 0xCD60, 0x72DC, 0xCD61, 0x72D2, + 0xCD62, 0x72D4, 0xCD63, 0x72DA, 0xCD64, 0x72CC, 0xCD65, 0x72D1, + 0xCD66, 0x73A4, 0xCD67, 0x73A1, 0xCD68, 0x73AD, 0xCD69, 0x73A6, + 0xCD6A, 0x73A2, 0xCD6B, 0x73A0, 0xCD6C, 0x73AC, 0xCD6D, 0x739D, + 0xCD6E, 0x74DD, 0xCD6F, 0x74E8, 0xCD70, 0x753F, 0xCD71, 0x7540, + 0xCD72, 0x753E, 0xCD73, 0x758C, 0xCD74, 0x7598, 0xCD75, 0x76AF, + 0xCD76, 0x76F3, 0xCD77, 0x76F1, 0xCD78, 0x76F0, 0xCD79, 0x76F5, + 0xCD7A, 0x77F8, 0xCD7B, 0x77FC, 0xCD7C, 0x77F9, 0xCD7D, 0x77FB, + 0xCD7E, 0x77FA, 0xCDA1, 0x77F7, 0xCDA2, 0x7942, 0xCDA3, 0x793F, + 0xCDA4, 0x79C5, 0xCDA5, 0x7A78, 0xCDA6, 0x7A7B, 0xCDA7, 0x7AFB, + 0xCDA8, 0x7C75, 0xCDA9, 0x7CFD, 0xCDAA, 0x8035, 0xCDAB, 0x808F, + 0xCDAC, 0x80AE, 0xCDAD, 0x80A3, 0xCDAE, 0x80B8, 0xCDAF, 0x80B5, + 0xCDB0, 0x80AD, 0xCDB1, 0x8220, 0xCDB2, 0x82A0, 0xCDB3, 0x82C0, + 0xCDB4, 0x82AB, 0xCDB5, 0x829A, 0xCDB6, 0x8298, 0xCDB7, 0x829B, + 0xCDB8, 0x82B5, 0xCDB9, 0x82A7, 0xCDBA, 0x82AE, 0xCDBB, 0x82BC, + 0xCDBC, 0x829E, 0xCDBD, 0x82BA, 0xCDBE, 0x82B4, 0xCDBF, 0x82A8, + 0xCDC0, 0x82A1, 0xCDC1, 0x82A9, 0xCDC2, 0x82C2, 0xCDC3, 0x82A4, + 0xCDC4, 0x82C3, 0xCDC5, 0x82B6, 0xCDC6, 0x82A2, 0xCDC7, 0x8670, + 0xCDC8, 0x866F, 0xCDC9, 0x866D, 0xCDCA, 0x866E, 0xCDCB, 0x8C56, + 0xCDCC, 0x8FD2, 0xCDCD, 0x8FCB, 0xCDCE, 0x8FD3, 0xCDCF, 0x8FCD, + 0xCDD0, 0x8FD6, 0xCDD1, 0x8FD5, 0xCDD2, 0x8FD7, 0xCDD3, 0x90B2, + 0xCDD4, 0x90B4, 0xCDD5, 0x90AF, 0xCDD6, 0x90B3, 0xCDD7, 0x90B0, + 0xCDD8, 0x9639, 0xCDD9, 0x963D, 0xCDDA, 0x963C, 0xCDDB, 0x963A, + 0xCDDC, 0x9643, 0xCDDD, 0x4FCD, 0xCDDE, 0x4FC5, 0xCDDF, 0x4FD3, + 0xCDE0, 0x4FB2, 0xCDE1, 0x4FC9, 0xCDE2, 0x4FCB, 0xCDE3, 0x4FC1, + 0xCDE4, 0x4FD4, 0xCDE5, 0x4FDC, 0xCDE6, 0x4FD9, 0xCDE7, 0x4FBB, + 0xCDE8, 0x4FB3, 0xCDE9, 0x4FDB, 0xCDEA, 0x4FC7, 0xCDEB, 0x4FD6, + 0xCDEC, 0x4FBA, 0xCDED, 0x4FC0, 0xCDEE, 0x4FB9, 0xCDEF, 0x4FEC, + 0xCDF0, 0x5244, 0xCDF1, 0x5249, 0xCDF2, 0x52C0, 0xCDF3, 0x52C2, + 0xCDF4, 0x533D, 0xCDF5, 0x537C, 0xCDF6, 0x5397, 0xCDF7, 0x5396, + 0xCDF8, 0x5399, 0xCDF9, 0x5398, 0xCDFA, 0x54BA, 0xCDFB, 0x54A1, + 0xCDFC, 0x54AD, 0xCDFD, 0x54A5, 0xCDFE, 0x54CF, 0xCE40, 0x54C3, + 0xCE41, 0x830D, 0xCE42, 0x54B7, 0xCE43, 0x54AE, 0xCE44, 0x54D6, + 0xCE45, 0x54B6, 0xCE46, 0x54C5, 0xCE47, 0x54C6, 0xCE48, 0x54A0, + 0xCE49, 0x5470, 0xCE4A, 0x54BC, 0xCE4B, 0x54A2, 0xCE4C, 0x54BE, + 0xCE4D, 0x5472, 0xCE4E, 0x54DE, 0xCE4F, 0x54B0, 0xCE50, 0x57B5, + 0xCE51, 0x579E, 0xCE52, 0x579F, 0xCE53, 0x57A4, 0xCE54, 0x578C, + 0xCE55, 0x5797, 0xCE56, 0x579D, 0xCE57, 0x579B, 0xCE58, 0x5794, + 0xCE59, 0x5798, 0xCE5A, 0x578F, 0xCE5B, 0x5799, 0xCE5C, 0x57A5, + 0xCE5D, 0x579A, 0xCE5E, 0x5795, 0xCE5F, 0x58F4, 0xCE60, 0x590D, + 0xCE61, 0x5953, 0xCE62, 0x59E1, 0xCE63, 0x59DE, 0xCE64, 0x59EE, + 0xCE65, 0x5A00, 0xCE66, 0x59F1, 0xCE67, 0x59DD, 0xCE68, 0x59FA, + 0xCE69, 0x59FD, 0xCE6A, 0x59FC, 0xCE6B, 0x59F6, 0xCE6C, 0x59E4, + 0xCE6D, 0x59F2, 0xCE6E, 0x59F7, 0xCE6F, 0x59DB, 0xCE70, 0x59E9, + 0xCE71, 0x59F3, 0xCE72, 0x59F5, 0xCE73, 0x59E0, 0xCE74, 0x59FE, + 0xCE75, 0x59F4, 0xCE76, 0x59ED, 0xCE77, 0x5BA8, 0xCE78, 0x5C4C, + 0xCE79, 0x5CD0, 0xCE7A, 0x5CD8, 0xCE7B, 0x5CCC, 0xCE7C, 0x5CD7, + 0xCE7D, 0x5CCB, 0xCE7E, 0x5CDB, 0xCEA1, 0x5CDE, 0xCEA2, 0x5CDA, + 0xCEA3, 0x5CC9, 0xCEA4, 0x5CC7, 0xCEA5, 0x5CCA, 0xCEA6, 0x5CD6, + 0xCEA7, 0x5CD3, 0xCEA8, 0x5CD4, 0xCEA9, 0x5CCF, 0xCEAA, 0x5CC8, + 0xCEAB, 0x5CC6, 0xCEAC, 0x5CCE, 0xCEAD, 0x5CDF, 0xCEAE, 0x5CF8, + 0xCEAF, 0x5DF9, 0xCEB0, 0x5E21, 0xCEB1, 0x5E22, 0xCEB2, 0x5E23, + 0xCEB3, 0x5E20, 0xCEB4, 0x5E24, 0xCEB5, 0x5EB0, 0xCEB6, 0x5EA4, + 0xCEB7, 0x5EA2, 0xCEB8, 0x5E9B, 0xCEB9, 0x5EA3, 0xCEBA, 0x5EA5, + 0xCEBB, 0x5F07, 0xCEBC, 0x5F2E, 0xCEBD, 0x5F56, 0xCEBE, 0x5F86, + 0xCEBF, 0x6037, 0xCEC0, 0x6039, 0xCEC1, 0x6054, 0xCEC2, 0x6072, + 0xCEC3, 0x605E, 0xCEC4, 0x6045, 0xCEC5, 0x6053, 0xCEC6, 0x6047, + 0xCEC7, 0x6049, 0xCEC8, 0x605B, 0xCEC9, 0x604C, 0xCECA, 0x6040, + 0xCECB, 0x6042, 0xCECC, 0x605F, 0xCECD, 0x6024, 0xCECE, 0x6044, + 0xCECF, 0x6058, 0xCED0, 0x6066, 0xCED1, 0x606E, 0xCED2, 0x6242, + 0xCED3, 0x6243, 0xCED4, 0x62CF, 0xCED5, 0x630D, 0xCED6, 0x630B, + 0xCED7, 0x62F5, 0xCED8, 0x630E, 0xCED9, 0x6303, 0xCEDA, 0x62EB, + 0xCEDB, 0x62F9, 0xCEDC, 0x630F, 0xCEDD, 0x630C, 0xCEDE, 0x62F8, + 0xCEDF, 0x62F6, 0xCEE0, 0x6300, 0xCEE1, 0x6313, 0xCEE2, 0x6314, + 0xCEE3, 0x62FA, 0xCEE4, 0x6315, 0xCEE5, 0x62FB, 0xCEE6, 0x62F0, + 0xCEE7, 0x6541, 0xCEE8, 0x6543, 0xCEE9, 0x65AA, 0xCEEA, 0x65BF, + 0xCEEB, 0x6636, 0xCEEC, 0x6621, 0xCEED, 0x6632, 0xCEEE, 0x6635, + 0xCEEF, 0x661C, 0xCEF0, 0x6626, 0xCEF1, 0x6622, 0xCEF2, 0x6633, + 0xCEF3, 0x662B, 0xCEF4, 0x663A, 0xCEF5, 0x661D, 0xCEF6, 0x6634, + 0xCEF7, 0x6639, 0xCEF8, 0x662E, 0xCEF9, 0x670F, 0xCEFA, 0x6710, + 0xCEFB, 0x67C1, 0xCEFC, 0x67F2, 0xCEFD, 0x67C8, 0xCEFE, 0x67BA, + 0xCF40, 0x67DC, 0xCF41, 0x67BB, 0xCF42, 0x67F8, 0xCF43, 0x67D8, + 0xCF44, 0x67C0, 0xCF45, 0x67B7, 0xCF46, 0x67C5, 0xCF47, 0x67EB, + 0xCF48, 0x67E4, 0xCF49, 0x67DF, 0xCF4A, 0x67B5, 0xCF4B, 0x67CD, + 0xCF4C, 0x67B3, 0xCF4D, 0x67F7, 0xCF4E, 0x67F6, 0xCF4F, 0x67EE, + 0xCF50, 0x67E3, 0xCF51, 0x67C2, 0xCF52, 0x67B9, 0xCF53, 0x67CE, + 0xCF54, 0x67E7, 0xCF55, 0x67F0, 0xCF56, 0x67B2, 0xCF57, 0x67FC, + 0xCF58, 0x67C6, 0xCF59, 0x67ED, 0xCF5A, 0x67CC, 0xCF5B, 0x67AE, + 0xCF5C, 0x67E6, 0xCF5D, 0x67DB, 0xCF5E, 0x67FA, 0xCF5F, 0x67C9, + 0xCF60, 0x67CA, 0xCF61, 0x67C3, 0xCF62, 0x67EA, 0xCF63, 0x67CB, + 0xCF64, 0x6B28, 0xCF65, 0x6B82, 0xCF66, 0x6B84, 0xCF67, 0x6BB6, + 0xCF68, 0x6BD6, 0xCF69, 0x6BD8, 0xCF6A, 0x6BE0, 0xCF6B, 0x6C20, + 0xCF6C, 0x6C21, 0xCF6D, 0x6D28, 0xCF6E, 0x6D34, 0xCF6F, 0x6D2D, + 0xCF70, 0x6D1F, 0xCF71, 0x6D3C, 0xCF72, 0x6D3F, 0xCF73, 0x6D12, + 0xCF74, 0x6D0A, 0xCF75, 0x6CDA, 0xCF76, 0x6D33, 0xCF77, 0x6D04, + 0xCF78, 0x6D19, 0xCF79, 0x6D3A, 0xCF7A, 0x6D1A, 0xCF7B, 0x6D11, + 0xCF7C, 0x6D00, 0xCF7D, 0x6D1D, 0xCF7E, 0x6D42, 0xCFA1, 0x6D01, + 0xCFA2, 0x6D18, 0xCFA3, 0x6D37, 0xCFA4, 0x6D03, 0xCFA5, 0x6D0F, + 0xCFA6, 0x6D40, 0xCFA7, 0x6D07, 0xCFA8, 0x6D20, 0xCFA9, 0x6D2C, + 0xCFAA, 0x6D08, 0xCFAB, 0x6D22, 0xCFAC, 0x6D09, 0xCFAD, 0x6D10, + 0xCFAE, 0x70B7, 0xCFAF, 0x709F, 0xCFB0, 0x70BE, 0xCFB1, 0x70B1, + 0xCFB2, 0x70B0, 0xCFB3, 0x70A1, 0xCFB4, 0x70B4, 0xCFB5, 0x70B5, + 0xCFB6, 0x70A9, 0xCFB7, 0x7241, 0xCFB8, 0x7249, 0xCFB9, 0x724A, + 0xCFBA, 0x726C, 0xCFBB, 0x7270, 0xCFBC, 0x7273, 0xCFBD, 0x726E, + 0xCFBE, 0x72CA, 0xCFBF, 0x72E4, 0xCFC0, 0x72E8, 0xCFC1, 0x72EB, + 0xCFC2, 0x72DF, 0xCFC3, 0x72EA, 0xCFC4, 0x72E6, 0xCFC5, 0x72E3, + 0xCFC6, 0x7385, 0xCFC7, 0x73CC, 0xCFC8, 0x73C2, 0xCFC9, 0x73C8, + 0xCFCA, 0x73C5, 0xCFCB, 0x73B9, 0xCFCC, 0x73B6, 0xCFCD, 0x73B5, + 0xCFCE, 0x73B4, 0xCFCF, 0x73EB, 0xCFD0, 0x73BF, 0xCFD1, 0x73C7, + 0xCFD2, 0x73BE, 0xCFD3, 0x73C3, 0xCFD4, 0x73C6, 0xCFD5, 0x73B8, + 0xCFD6, 0x73CB, 0xCFD7, 0x74EC, 0xCFD8, 0x74EE, 0xCFD9, 0x752E, + 0xCFDA, 0x7547, 0xCFDB, 0x7548, 0xCFDC, 0x75A7, 0xCFDD, 0x75AA, + 0xCFDE, 0x7679, 0xCFDF, 0x76C4, 0xCFE0, 0x7708, 0xCFE1, 0x7703, + 0xCFE2, 0x7704, 0xCFE3, 0x7705, 0xCFE4, 0x770A, 0xCFE5, 0x76F7, + 0xCFE6, 0x76FB, 0xCFE7, 0x76FA, 0xCFE8, 0x77E7, 0xCFE9, 0x77E8, + 0xCFEA, 0x7806, 0xCFEB, 0x7811, 0xCFEC, 0x7812, 0xCFED, 0x7805, + 0xCFEE, 0x7810, 0xCFEF, 0x780F, 0xCFF0, 0x780E, 0xCFF1, 0x7809, + 0xCFF2, 0x7803, 0xCFF3, 0x7813, 0xCFF4, 0x794A, 0xCFF5, 0x794C, + 0xCFF6, 0x794B, 0xCFF7, 0x7945, 0xCFF8, 0x7944, 0xCFF9, 0x79D5, + 0xCFFA, 0x79CD, 0xCFFB, 0x79CF, 0xCFFC, 0x79D6, 0xCFFD, 0x79CE, + 0xCFFE, 0x7A80, 0xD040, 0x7A7E, 0xD041, 0x7AD1, 0xD042, 0x7B00, + 0xD043, 0x7B01, 0xD044, 0x7C7A, 0xD045, 0x7C78, 0xD046, 0x7C79, + 0xD047, 0x7C7F, 0xD048, 0x7C80, 0xD049, 0x7C81, 0xD04A, 0x7D03, + 0xD04B, 0x7D08, 0xD04C, 0x7D01, 0xD04D, 0x7F58, 0xD04E, 0x7F91, + 0xD04F, 0x7F8D, 0xD050, 0x7FBE, 0xD051, 0x8007, 0xD052, 0x800E, + 0xD053, 0x800F, 0xD054, 0x8014, 0xD055, 0x8037, 0xD056, 0x80D8, + 0xD057, 0x80C7, 0xD058, 0x80E0, 0xD059, 0x80D1, 0xD05A, 0x80C8, + 0xD05B, 0x80C2, 0xD05C, 0x80D0, 0xD05D, 0x80C5, 0xD05E, 0x80E3, + 0xD05F, 0x80D9, 0xD060, 0x80DC, 0xD061, 0x80CA, 0xD062, 0x80D5, + 0xD063, 0x80C9, 0xD064, 0x80CF, 0xD065, 0x80D7, 0xD066, 0x80E6, + 0xD067, 0x80CD, 0xD068, 0x81FF, 0xD069, 0x8221, 0xD06A, 0x8294, + 0xD06B, 0x82D9, 0xD06C, 0x82FE, 0xD06D, 0x82F9, 0xD06E, 0x8307, + 0xD06F, 0x82E8, 0xD070, 0x8300, 0xD071, 0x82D5, 0xD072, 0x833A, + 0xD073, 0x82EB, 0xD074, 0x82D6, 0xD075, 0x82F4, 0xD076, 0x82EC, + 0xD077, 0x82E1, 0xD078, 0x82F2, 0xD079, 0x82F5, 0xD07A, 0x830C, + 0xD07B, 0x82FB, 0xD07C, 0x82F6, 0xD07D, 0x82F0, 0xD07E, 0x82EA, + 0xD0A1, 0x82E4, 0xD0A2, 0x82E0, 0xD0A3, 0x82FA, 0xD0A4, 0x82F3, + 0xD0A5, 0x82ED, 0xD0A6, 0x8677, 0xD0A7, 0x8674, 0xD0A8, 0x867C, + 0xD0A9, 0x8673, 0xD0AA, 0x8841, 0xD0AB, 0x884E, 0xD0AC, 0x8867, + 0xD0AD, 0x886A, 0xD0AE, 0x8869, 0xD0AF, 0x89D3, 0xD0B0, 0x8A04, + 0xD0B1, 0x8A07, 0xD0B2, 0x8D72, 0xD0B3, 0x8FE3, 0xD0B4, 0x8FE1, + 0xD0B5, 0x8FEE, 0xD0B6, 0x8FE0, 0xD0B7, 0x90F1, 0xD0B8, 0x90BD, + 0xD0B9, 0x90BF, 0xD0BA, 0x90D5, 0xD0BB, 0x90C5, 0xD0BC, 0x90BE, + 0xD0BD, 0x90C7, 0xD0BE, 0x90CB, 0xD0BF, 0x90C8, 0xD0C0, 0x91D4, + 0xD0C1, 0x91D3, 0xD0C2, 0x9654, 0xD0C3, 0x964F, 0xD0C4, 0x9651, + 0xD0C5, 0x9653, 0xD0C6, 0x964A, 0xD0C7, 0x964E, 0xD0C8, 0x501E, + 0xD0C9, 0x5005, 0xD0CA, 0x5007, 0xD0CB, 0x5013, 0xD0CC, 0x5022, + 0xD0CD, 0x5030, 0xD0CE, 0x501B, 0xD0CF, 0x4FF5, 0xD0D0, 0x4FF4, + 0xD0D1, 0x5033, 0xD0D2, 0x5037, 0xD0D3, 0x502C, 0xD0D4, 0x4FF6, + 0xD0D5, 0x4FF7, 0xD0D6, 0x5017, 0xD0D7, 0x501C, 0xD0D8, 0x5020, + 0xD0D9, 0x5027, 0xD0DA, 0x5035, 0xD0DB, 0x502F, 0xD0DC, 0x5031, + 0xD0DD, 0x500E, 0xD0DE, 0x515A, 0xD0DF, 0x5194, 0xD0E0, 0x5193, + 0xD0E1, 0x51CA, 0xD0E2, 0x51C4, 0xD0E3, 0x51C5, 0xD0E4, 0x51C8, + 0xD0E5, 0x51CE, 0xD0E6, 0x5261, 0xD0E7, 0x525A, 0xD0E8, 0x5252, + 0xD0E9, 0x525E, 0xD0EA, 0x525F, 0xD0EB, 0x5255, 0xD0EC, 0x5262, + 0xD0ED, 0x52CD, 0xD0EE, 0x530E, 0xD0EF, 0x539E, 0xD0F0, 0x5526, + 0xD0F1, 0x54E2, 0xD0F2, 0x5517, 0xD0F3, 0x5512, 0xD0F4, 0x54E7, + 0xD0F5, 0x54F3, 0xD0F6, 0x54E4, 0xD0F7, 0x551A, 0xD0F8, 0x54FF, + 0xD0F9, 0x5504, 0xD0FA, 0x5508, 0xD0FB, 0x54EB, 0xD0FC, 0x5511, + 0xD0FD, 0x5505, 0xD0FE, 0x54F1, 0xD140, 0x550A, 0xD141, 0x54FB, + 0xD142, 0x54F7, 0xD143, 0x54F8, 0xD144, 0x54E0, 0xD145, 0x550E, + 0xD146, 0x5503, 0xD147, 0x550B, 0xD148, 0x5701, 0xD149, 0x5702, + 0xD14A, 0x57CC, 0xD14B, 0x5832, 0xD14C, 0x57D5, 0xD14D, 0x57D2, + 0xD14E, 0x57BA, 0xD14F, 0x57C6, 0xD150, 0x57BD, 0xD151, 0x57BC, + 0xD152, 0x57B8, 0xD153, 0x57B6, 0xD154, 0x57BF, 0xD155, 0x57C7, + 0xD156, 0x57D0, 0xD157, 0x57B9, 0xD158, 0x57C1, 0xD159, 0x590E, + 0xD15A, 0x594A, 0xD15B, 0x5A19, 0xD15C, 0x5A16, 0xD15D, 0x5A2D, + 0xD15E, 0x5A2E, 0xD15F, 0x5A15, 0xD160, 0x5A0F, 0xD161, 0x5A17, + 0xD162, 0x5A0A, 0xD163, 0x5A1E, 0xD164, 0x5A33, 0xD165, 0x5B6C, + 0xD166, 0x5BA7, 0xD167, 0x5BAD, 0xD168, 0x5BAC, 0xD169, 0x5C03, + 0xD16A, 0x5C56, 0xD16B, 0x5C54, 0xD16C, 0x5CEC, 0xD16D, 0x5CFF, + 0xD16E, 0x5CEE, 0xD16F, 0x5CF1, 0xD170, 0x5CF7, 0xD171, 0x5D00, + 0xD172, 0x5CF9, 0xD173, 0x5E29, 0xD174, 0x5E28, 0xD175, 0x5EA8, + 0xD176, 0x5EAE, 0xD177, 0x5EAA, 0xD178, 0x5EAC, 0xD179, 0x5F33, + 0xD17A, 0x5F30, 0xD17B, 0x5F67, 0xD17C, 0x605D, 0xD17D, 0x605A, + 0xD17E, 0x6067, 0xD1A1, 0x6041, 0xD1A2, 0x60A2, 0xD1A3, 0x6088, + 0xD1A4, 0x6080, 0xD1A5, 0x6092, 0xD1A6, 0x6081, 0xD1A7, 0x609D, + 0xD1A8, 0x6083, 0xD1A9, 0x6095, 0xD1AA, 0x609B, 0xD1AB, 0x6097, + 0xD1AC, 0x6087, 0xD1AD, 0x609C, 0xD1AE, 0x608E, 0xD1AF, 0x6219, + 0xD1B0, 0x6246, 0xD1B1, 0x62F2, 0xD1B2, 0x6310, 0xD1B3, 0x6356, + 0xD1B4, 0x632C, 0xD1B5, 0x6344, 0xD1B6, 0x6345, 0xD1B7, 0x6336, + 0xD1B8, 0x6343, 0xD1B9, 0x63E4, 0xD1BA, 0x6339, 0xD1BB, 0x634B, + 0xD1BC, 0x634A, 0xD1BD, 0x633C, 0xD1BE, 0x6329, 0xD1BF, 0x6341, + 0xD1C0, 0x6334, 0xD1C1, 0x6358, 0xD1C2, 0x6354, 0xD1C3, 0x6359, + 0xD1C4, 0x632D, 0xD1C5, 0x6347, 0xD1C6, 0x6333, 0xD1C7, 0x635A, + 0xD1C8, 0x6351, 0xD1C9, 0x6338, 0xD1CA, 0x6357, 0xD1CB, 0x6340, + 0xD1CC, 0x6348, 0xD1CD, 0x654A, 0xD1CE, 0x6546, 0xD1CF, 0x65C6, + 0xD1D0, 0x65C3, 0xD1D1, 0x65C4, 0xD1D2, 0x65C2, 0xD1D3, 0x664A, + 0xD1D4, 0x665F, 0xD1D5, 0x6647, 0xD1D6, 0x6651, 0xD1D7, 0x6712, + 0xD1D8, 0x6713, 0xD1D9, 0x681F, 0xD1DA, 0x681A, 0xD1DB, 0x6849, + 0xD1DC, 0x6832, 0xD1DD, 0x6833, 0xD1DE, 0x683B, 0xD1DF, 0x684B, + 0xD1E0, 0x684F, 0xD1E1, 0x6816, 0xD1E2, 0x6831, 0xD1E3, 0x681C, + 0xD1E4, 0x6835, 0xD1E5, 0x682B, 0xD1E6, 0x682D, 0xD1E7, 0x682F, + 0xD1E8, 0x684E, 0xD1E9, 0x6844, 0xD1EA, 0x6834, 0xD1EB, 0x681D, + 0xD1EC, 0x6812, 0xD1ED, 0x6814, 0xD1EE, 0x6826, 0xD1EF, 0x6828, + 0xD1F0, 0x682E, 0xD1F1, 0x684D, 0xD1F2, 0x683A, 0xD1F3, 0x6825, + 0xD1F4, 0x6820, 0xD1F5, 0x6B2C, 0xD1F6, 0x6B2F, 0xD1F7, 0x6B2D, + 0xD1F8, 0x6B31, 0xD1F9, 0x6B34, 0xD1FA, 0x6B6D, 0xD1FB, 0x8082, + 0xD1FC, 0x6B88, 0xD1FD, 0x6BE6, 0xD1FE, 0x6BE4, 0xD240, 0x6BE8, + 0xD241, 0x6BE3, 0xD242, 0x6BE2, 0xD243, 0x6BE7, 0xD244, 0x6C25, + 0xD245, 0x6D7A, 0xD246, 0x6D63, 0xD247, 0x6D64, 0xD248, 0x6D76, + 0xD249, 0x6D0D, 0xD24A, 0x6D61, 0xD24B, 0x6D92, 0xD24C, 0x6D58, + 0xD24D, 0x6D62, 0xD24E, 0x6D6D, 0xD24F, 0x6D6F, 0xD250, 0x6D91, + 0xD251, 0x6D8D, 0xD252, 0x6DEF, 0xD253, 0x6D7F, 0xD254, 0x6D86, + 0xD255, 0x6D5E, 0xD256, 0x6D67, 0xD257, 0x6D60, 0xD258, 0x6D97, + 0xD259, 0x6D70, 0xD25A, 0x6D7C, 0xD25B, 0x6D5F, 0xD25C, 0x6D82, + 0xD25D, 0x6D98, 0xD25E, 0x6D2F, 0xD25F, 0x6D68, 0xD260, 0x6D8B, + 0xD261, 0x6D7E, 0xD262, 0x6D80, 0xD263, 0x6D84, 0xD264, 0x6D16, + 0xD265, 0x6D83, 0xD266, 0x6D7B, 0xD267, 0x6D7D, 0xD268, 0x6D75, + 0xD269, 0x6D90, 0xD26A, 0x70DC, 0xD26B, 0x70D3, 0xD26C, 0x70D1, + 0xD26D, 0x70DD, 0xD26E, 0x70CB, 0xD26F, 0x7F39, 0xD270, 0x70E2, + 0xD271, 0x70D7, 0xD272, 0x70D2, 0xD273, 0x70DE, 0xD274, 0x70E0, + 0xD275, 0x70D4, 0xD276, 0x70CD, 0xD277, 0x70C5, 0xD278, 0x70C6, + 0xD279, 0x70C7, 0xD27A, 0x70DA, 0xD27B, 0x70CE, 0xD27C, 0x70E1, + 0xD27D, 0x7242, 0xD27E, 0x7278, 0xD2A1, 0x7277, 0xD2A2, 0x7276, + 0xD2A3, 0x7300, 0xD2A4, 0x72FA, 0xD2A5, 0x72F4, 0xD2A6, 0x72FE, + 0xD2A7, 0x72F6, 0xD2A8, 0x72F3, 0xD2A9, 0x72FB, 0xD2AA, 0x7301, + 0xD2AB, 0x73D3, 0xD2AC, 0x73D9, 0xD2AD, 0x73E5, 0xD2AE, 0x73D6, + 0xD2AF, 0x73BC, 0xD2B0, 0x73E7, 0xD2B1, 0x73E3, 0xD2B2, 0x73E9, + 0xD2B3, 0x73DC, 0xD2B4, 0x73D2, 0xD2B5, 0x73DB, 0xD2B6, 0x73D4, + 0xD2B7, 0x73DD, 0xD2B8, 0x73DA, 0xD2B9, 0x73D7, 0xD2BA, 0x73D8, + 0xD2BB, 0x73E8, 0xD2BC, 0x74DE, 0xD2BD, 0x74DF, 0xD2BE, 0x74F4, + 0xD2BF, 0x74F5, 0xD2C0, 0x7521, 0xD2C1, 0x755B, 0xD2C2, 0x755F, + 0xD2C3, 0x75B0, 0xD2C4, 0x75C1, 0xD2C5, 0x75BB, 0xD2C6, 0x75C4, + 0xD2C7, 0x75C0, 0xD2C8, 0x75BF, 0xD2C9, 0x75B6, 0xD2CA, 0x75BA, + 0xD2CB, 0x768A, 0xD2CC, 0x76C9, 0xD2CD, 0x771D, 0xD2CE, 0x771B, + 0xD2CF, 0x7710, 0xD2D0, 0x7713, 0xD2D1, 0x7712, 0xD2D2, 0x7723, + 0xD2D3, 0x7711, 0xD2D4, 0x7715, 0xD2D5, 0x7719, 0xD2D6, 0x771A, + 0xD2D7, 0x7722, 0xD2D8, 0x7727, 0xD2D9, 0x7823, 0xD2DA, 0x782C, + 0xD2DB, 0x7822, 0xD2DC, 0x7835, 0xD2DD, 0x782F, 0xD2DE, 0x7828, + 0xD2DF, 0x782E, 0xD2E0, 0x782B, 0xD2E1, 0x7821, 0xD2E2, 0x7829, + 0xD2E3, 0x7833, 0xD2E4, 0x782A, 0xD2E5, 0x7831, 0xD2E6, 0x7954, + 0xD2E7, 0x795B, 0xD2E8, 0x794F, 0xD2E9, 0x795C, 0xD2EA, 0x7953, + 0xD2EB, 0x7952, 0xD2EC, 0x7951, 0xD2ED, 0x79EB, 0xD2EE, 0x79EC, + 0xD2EF, 0x79E0, 0xD2F0, 0x79EE, 0xD2F1, 0x79ED, 0xD2F2, 0x79EA, + 0xD2F3, 0x79DC, 0xD2F4, 0x79DE, 0xD2F5, 0x79DD, 0xD2F6, 0x7A86, + 0xD2F7, 0x7A89, 0xD2F8, 0x7A85, 0xD2F9, 0x7A8B, 0xD2FA, 0x7A8C, + 0xD2FB, 0x7A8A, 0xD2FC, 0x7A87, 0xD2FD, 0x7AD8, 0xD2FE, 0x7B10, + 0xD340, 0x7B04, 0xD341, 0x7B13, 0xD342, 0x7B05, 0xD343, 0x7B0F, + 0xD344, 0x7B08, 0xD345, 0x7B0A, 0xD346, 0x7B0E, 0xD347, 0x7B09, + 0xD348, 0x7B12, 0xD349, 0x7C84, 0xD34A, 0x7C91, 0xD34B, 0x7C8A, + 0xD34C, 0x7C8C, 0xD34D, 0x7C88, 0xD34E, 0x7C8D, 0xD34F, 0x7C85, + 0xD350, 0x7D1E, 0xD351, 0x7D1D, 0xD352, 0x7D11, 0xD353, 0x7D0E, + 0xD354, 0x7D18, 0xD355, 0x7D16, 0xD356, 0x7D13, 0xD357, 0x7D1F, + 0xD358, 0x7D12, 0xD359, 0x7D0F, 0xD35A, 0x7D0C, 0xD35B, 0x7F5C, + 0xD35C, 0x7F61, 0xD35D, 0x7F5E, 0xD35E, 0x7F60, 0xD35F, 0x7F5D, + 0xD360, 0x7F5B, 0xD361, 0x7F96, 0xD362, 0x7F92, 0xD363, 0x7FC3, + 0xD364, 0x7FC2, 0xD365, 0x7FC0, 0xD366, 0x8016, 0xD367, 0x803E, + 0xD368, 0x8039, 0xD369, 0x80FA, 0xD36A, 0x80F2, 0xD36B, 0x80F9, + 0xD36C, 0x80F5, 0xD36D, 0x8101, 0xD36E, 0x80FB, 0xD36F, 0x8100, + 0xD370, 0x8201, 0xD371, 0x822F, 0xD372, 0x8225, 0xD373, 0x8333, + 0xD374, 0x832D, 0xD375, 0x8344, 0xD376, 0x8319, 0xD377, 0x8351, + 0xD378, 0x8325, 0xD379, 0x8356, 0xD37A, 0x833F, 0xD37B, 0x8341, + 0xD37C, 0x8326, 0xD37D, 0x831C, 0xD37E, 0x8322, 0xD3A1, 0x8342, + 0xD3A2, 0x834E, 0xD3A3, 0x831B, 0xD3A4, 0x832A, 0xD3A5, 0x8308, + 0xD3A6, 0x833C, 0xD3A7, 0x834D, 0xD3A8, 0x8316, 0xD3A9, 0x8324, + 0xD3AA, 0x8320, 0xD3AB, 0x8337, 0xD3AC, 0x832F, 0xD3AD, 0x8329, + 0xD3AE, 0x8347, 0xD3AF, 0x8345, 0xD3B0, 0x834C, 0xD3B1, 0x8353, + 0xD3B2, 0x831E, 0xD3B3, 0x832C, 0xD3B4, 0x834B, 0xD3B5, 0x8327, + 0xD3B6, 0x8348, 0xD3B7, 0x8653, 0xD3B8, 0x8652, 0xD3B9, 0x86A2, + 0xD3BA, 0x86A8, 0xD3BB, 0x8696, 0xD3BC, 0x868D, 0xD3BD, 0x8691, + 0xD3BE, 0x869E, 0xD3BF, 0x8687, 0xD3C0, 0x8697, 0xD3C1, 0x8686, + 0xD3C2, 0x868B, 0xD3C3, 0x869A, 0xD3C4, 0x8685, 0xD3C5, 0x86A5, + 0xD3C6, 0x8699, 0xD3C7, 0x86A1, 0xD3C8, 0x86A7, 0xD3C9, 0x8695, + 0xD3CA, 0x8698, 0xD3CB, 0x868E, 0xD3CC, 0x869D, 0xD3CD, 0x8690, + 0xD3CE, 0x8694, 0xD3CF, 0x8843, 0xD3D0, 0x8844, 0xD3D1, 0x886D, + 0xD3D2, 0x8875, 0xD3D3, 0x8876, 0xD3D4, 0x8872, 0xD3D5, 0x8880, + 0xD3D6, 0x8871, 0xD3D7, 0x887F, 0xD3D8, 0x886F, 0xD3D9, 0x8883, + 0xD3DA, 0x887E, 0xD3DB, 0x8874, 0xD3DC, 0x887C, 0xD3DD, 0x8A12, + 0xD3DE, 0x8C47, 0xD3DF, 0x8C57, 0xD3E0, 0x8C7B, 0xD3E1, 0x8CA4, + 0xD3E2, 0x8CA3, 0xD3E3, 0x8D76, 0xD3E4, 0x8D78, 0xD3E5, 0x8DB5, + 0xD3E6, 0x8DB7, 0xD3E7, 0x8DB6, 0xD3E8, 0x8ED1, 0xD3E9, 0x8ED3, + 0xD3EA, 0x8FFE, 0xD3EB, 0x8FF5, 0xD3EC, 0x9002, 0xD3ED, 0x8FFF, + 0xD3EE, 0x8FFB, 0xD3EF, 0x9004, 0xD3F0, 0x8FFC, 0xD3F1, 0x8FF6, + 0xD3F2, 0x90D6, 0xD3F3, 0x90E0, 0xD3F4, 0x90D9, 0xD3F5, 0x90DA, + 0xD3F6, 0x90E3, 0xD3F7, 0x90DF, 0xD3F8, 0x90E5, 0xD3F9, 0x90D8, + 0xD3FA, 0x90DB, 0xD3FB, 0x90D7, 0xD3FC, 0x90DC, 0xD3FD, 0x90E4, + 0xD3FE, 0x9150, 0xD440, 0x914E, 0xD441, 0x914F, 0xD442, 0x91D5, + 0xD443, 0x91E2, 0xD444, 0x91DA, 0xD445, 0x965C, 0xD446, 0x965F, + 0xD447, 0x96BC, 0xD448, 0x98E3, 0xD449, 0x9ADF, 0xD44A, 0x9B2F, + 0xD44B, 0x4E7F, 0xD44C, 0x5070, 0xD44D, 0x506A, 0xD44E, 0x5061, + 0xD44F, 0x505E, 0xD450, 0x5060, 0xD451, 0x5053, 0xD452, 0x504B, + 0xD453, 0x505D, 0xD454, 0x5072, 0xD455, 0x5048, 0xD456, 0x504D, + 0xD457, 0x5041, 0xD458, 0x505B, 0xD459, 0x504A, 0xD45A, 0x5062, + 0xD45B, 0x5015, 0xD45C, 0x5045, 0xD45D, 0x505F, 0xD45E, 0x5069, + 0xD45F, 0x506B, 0xD460, 0x5063, 0xD461, 0x5064, 0xD462, 0x5046, + 0xD463, 0x5040, 0xD464, 0x506E, 0xD465, 0x5073, 0xD466, 0x5057, + 0xD467, 0x5051, 0xD468, 0x51D0, 0xD469, 0x526B, 0xD46A, 0x526D, + 0xD46B, 0x526C, 0xD46C, 0x526E, 0xD46D, 0x52D6, 0xD46E, 0x52D3, + 0xD46F, 0x532D, 0xD470, 0x539C, 0xD471, 0x5575, 0xD472, 0x5576, + 0xD473, 0x553C, 0xD474, 0x554D, 0xD475, 0x5550, 0xD476, 0x5534, + 0xD477, 0x552A, 0xD478, 0x5551, 0xD479, 0x5562, 0xD47A, 0x5536, + 0xD47B, 0x5535, 0xD47C, 0x5530, 0xD47D, 0x5552, 0xD47E, 0x5545, + 0xD4A1, 0x550C, 0xD4A2, 0x5532, 0xD4A3, 0x5565, 0xD4A4, 0x554E, + 0xD4A5, 0x5539, 0xD4A6, 0x5548, 0xD4A7, 0x552D, 0xD4A8, 0x553B, + 0xD4A9, 0x5540, 0xD4AA, 0x554B, 0xD4AB, 0x570A, 0xD4AC, 0x5707, + 0xD4AD, 0x57FB, 0xD4AE, 0x5814, 0xD4AF, 0x57E2, 0xD4B0, 0x57F6, + 0xD4B1, 0x57DC, 0xD4B2, 0x57F4, 0xD4B3, 0x5800, 0xD4B4, 0x57ED, + 0xD4B5, 0x57FD, 0xD4B6, 0x5808, 0xD4B7, 0x57F8, 0xD4B8, 0x580B, + 0xD4B9, 0x57F3, 0xD4BA, 0x57CF, 0xD4BB, 0x5807, 0xD4BC, 0x57EE, + 0xD4BD, 0x57E3, 0xD4BE, 0x57F2, 0xD4BF, 0x57E5, 0xD4C0, 0x57EC, + 0xD4C1, 0x57E1, 0xD4C2, 0x580E, 0xD4C3, 0x57FC, 0xD4C4, 0x5810, + 0xD4C5, 0x57E7, 0xD4C6, 0x5801, 0xD4C7, 0x580C, 0xD4C8, 0x57F1, + 0xD4C9, 0x57E9, 0xD4CA, 0x57F0, 0xD4CB, 0x580D, 0xD4CC, 0x5804, + 0xD4CD, 0x595C, 0xD4CE, 0x5A60, 0xD4CF, 0x5A58, 0xD4D0, 0x5A55, + 0xD4D1, 0x5A67, 0xD4D2, 0x5A5E, 0xD4D3, 0x5A38, 0xD4D4, 0x5A35, + 0xD4D5, 0x5A6D, 0xD4D6, 0x5A50, 0xD4D7, 0x5A5F, 0xD4D8, 0x5A65, + 0xD4D9, 0x5A6C, 0xD4DA, 0x5A53, 0xD4DB, 0x5A64, 0xD4DC, 0x5A57, + 0xD4DD, 0x5A43, 0xD4DE, 0x5A5D, 0xD4DF, 0x5A52, 0xD4E0, 0x5A44, + 0xD4E1, 0x5A5B, 0xD4E2, 0x5A48, 0xD4E3, 0x5A8E, 0xD4E4, 0x5A3E, + 0xD4E5, 0x5A4D, 0xD4E6, 0x5A39, 0xD4E7, 0x5A4C, 0xD4E8, 0x5A70, + 0xD4E9, 0x5A69, 0xD4EA, 0x5A47, 0xD4EB, 0x5A51, 0xD4EC, 0x5A56, + 0xD4ED, 0x5A42, 0xD4EE, 0x5A5C, 0xD4EF, 0x5B72, 0xD4F0, 0x5B6E, + 0xD4F1, 0x5BC1, 0xD4F2, 0x5BC0, 0xD4F3, 0x5C59, 0xD4F4, 0x5D1E, + 0xD4F5, 0x5D0B, 0xD4F6, 0x5D1D, 0xD4F7, 0x5D1A, 0xD4F8, 0x5D20, + 0xD4F9, 0x5D0C, 0xD4FA, 0x5D28, 0xD4FB, 0x5D0D, 0xD4FC, 0x5D26, + 0xD4FD, 0x5D25, 0xD4FE, 0x5D0F, 0xD540, 0x5D30, 0xD541, 0x5D12, + 0xD542, 0x5D23, 0xD543, 0x5D1F, 0xD544, 0x5D2E, 0xD545, 0x5E3E, + 0xD546, 0x5E34, 0xD547, 0x5EB1, 0xD548, 0x5EB4, 0xD549, 0x5EB9, + 0xD54A, 0x5EB2, 0xD54B, 0x5EB3, 0xD54C, 0x5F36, 0xD54D, 0x5F38, + 0xD54E, 0x5F9B, 0xD54F, 0x5F96, 0xD550, 0x5F9F, 0xD551, 0x608A, + 0xD552, 0x6090, 0xD553, 0x6086, 0xD554, 0x60BE, 0xD555, 0x60B0, + 0xD556, 0x60BA, 0xD557, 0x60D3, 0xD558, 0x60D4, 0xD559, 0x60CF, + 0xD55A, 0x60E4, 0xD55B, 0x60D9, 0xD55C, 0x60DD, 0xD55D, 0x60C8, + 0xD55E, 0x60B1, 0xD55F, 0x60DB, 0xD560, 0x60B7, 0xD561, 0x60CA, + 0xD562, 0x60BF, 0xD563, 0x60C3, 0xD564, 0x60CD, 0xD565, 0x60C0, + 0xD566, 0x6332, 0xD567, 0x6365, 0xD568, 0x638A, 0xD569, 0x6382, + 0xD56A, 0x637D, 0xD56B, 0x63BD, 0xD56C, 0x639E, 0xD56D, 0x63AD, + 0xD56E, 0x639D, 0xD56F, 0x6397, 0xD570, 0x63AB, 0xD571, 0x638E, + 0xD572, 0x636F, 0xD573, 0x6387, 0xD574, 0x6390, 0xD575, 0x636E, + 0xD576, 0x63AF, 0xD577, 0x6375, 0xD578, 0x639C, 0xD579, 0x636D, + 0xD57A, 0x63AE, 0xD57B, 0x637C, 0xD57C, 0x63A4, 0xD57D, 0x633B, + 0xD57E, 0x639F, 0xD5A1, 0x6378, 0xD5A2, 0x6385, 0xD5A3, 0x6381, + 0xD5A4, 0x6391, 0xD5A5, 0x638D, 0xD5A6, 0x6370, 0xD5A7, 0x6553, + 0xD5A8, 0x65CD, 0xD5A9, 0x6665, 0xD5AA, 0x6661, 0xD5AB, 0x665B, + 0xD5AC, 0x6659, 0xD5AD, 0x665C, 0xD5AE, 0x6662, 0xD5AF, 0x6718, + 0xD5B0, 0x6879, 0xD5B1, 0x6887, 0xD5B2, 0x6890, 0xD5B3, 0x689C, + 0xD5B4, 0x686D, 0xD5B5, 0x686E, 0xD5B6, 0x68AE, 0xD5B7, 0x68AB, + 0xD5B8, 0x6956, 0xD5B9, 0x686F, 0xD5BA, 0x68A3, 0xD5BB, 0x68AC, + 0xD5BC, 0x68A9, 0xD5BD, 0x6875, 0xD5BE, 0x6874, 0xD5BF, 0x68B2, + 0xD5C0, 0x688F, 0xD5C1, 0x6877, 0xD5C2, 0x6892, 0xD5C3, 0x687C, + 0xD5C4, 0x686B, 0xD5C5, 0x6872, 0xD5C6, 0x68AA, 0xD5C7, 0x6880, + 0xD5C8, 0x6871, 0xD5C9, 0x687E, 0xD5CA, 0x689B, 0xD5CB, 0x6896, + 0xD5CC, 0x688B, 0xD5CD, 0x68A0, 0xD5CE, 0x6889, 0xD5CF, 0x68A4, + 0xD5D0, 0x6878, 0xD5D1, 0x687B, 0xD5D2, 0x6891, 0xD5D3, 0x688C, + 0xD5D4, 0x688A, 0xD5D5, 0x687D, 0xD5D6, 0x6B36, 0xD5D7, 0x6B33, + 0xD5D8, 0x6B37, 0xD5D9, 0x6B38, 0xD5DA, 0x6B91, 0xD5DB, 0x6B8F, + 0xD5DC, 0x6B8D, 0xD5DD, 0x6B8E, 0xD5DE, 0x6B8C, 0xD5DF, 0x6C2A, + 0xD5E0, 0x6DC0, 0xD5E1, 0x6DAB, 0xD5E2, 0x6DB4, 0xD5E3, 0x6DB3, + 0xD5E4, 0x6E74, 0xD5E5, 0x6DAC, 0xD5E6, 0x6DE9, 0xD5E7, 0x6DE2, + 0xD5E8, 0x6DB7, 0xD5E9, 0x6DF6, 0xD5EA, 0x6DD4, 0xD5EB, 0x6E00, + 0xD5EC, 0x6DC8, 0xD5ED, 0x6DE0, 0xD5EE, 0x6DDF, 0xD5EF, 0x6DD6, + 0xD5F0, 0x6DBE, 0xD5F1, 0x6DE5, 0xD5F2, 0x6DDC, 0xD5F3, 0x6DDD, + 0xD5F4, 0x6DDB, 0xD5F5, 0x6DF4, 0xD5F6, 0x6DCA, 0xD5F7, 0x6DBD, + 0xD5F8, 0x6DED, 0xD5F9, 0x6DF0, 0xD5FA, 0x6DBA, 0xD5FB, 0x6DD5, + 0xD5FC, 0x6DC2, 0xD5FD, 0x6DCF, 0xD5FE, 0x6DC9, 0xD640, 0x6DD0, + 0xD641, 0x6DF2, 0xD642, 0x6DD3, 0xD643, 0x6DFD, 0xD644, 0x6DD7, + 0xD645, 0x6DCD, 0xD646, 0x6DE3, 0xD647, 0x6DBB, 0xD648, 0x70FA, + 0xD649, 0x710D, 0xD64A, 0x70F7, 0xD64B, 0x7117, 0xD64C, 0x70F4, + 0xD64D, 0x710C, 0xD64E, 0x70F0, 0xD64F, 0x7104, 0xD650, 0x70F3, + 0xD651, 0x7110, 0xD652, 0x70FC, 0xD653, 0x70FF, 0xD654, 0x7106, + 0xD655, 0x7113, 0xD656, 0x7100, 0xD657, 0x70F8, 0xD658, 0x70F6, + 0xD659, 0x710B, 0xD65A, 0x7102, 0xD65B, 0x710E, 0xD65C, 0x727E, + 0xD65D, 0x727B, 0xD65E, 0x727C, 0xD65F, 0x727F, 0xD660, 0x731D, + 0xD661, 0x7317, 0xD662, 0x7307, 0xD663, 0x7311, 0xD664, 0x7318, + 0xD665, 0x730A, 0xD666, 0x7308, 0xD667, 0x72FF, 0xD668, 0x730F, + 0xD669, 0x731E, 0xD66A, 0x7388, 0xD66B, 0x73F6, 0xD66C, 0x73F8, + 0xD66D, 0x73F5, 0xD66E, 0x7404, 0xD66F, 0x7401, 0xD670, 0x73FD, + 0xD671, 0x7407, 0xD672, 0x7400, 0xD673, 0x73FA, 0xD674, 0x73FC, + 0xD675, 0x73FF, 0xD676, 0x740C, 0xD677, 0x740B, 0xD678, 0x73F4, + 0xD679, 0x7408, 0xD67A, 0x7564, 0xD67B, 0x7563, 0xD67C, 0x75CE, + 0xD67D, 0x75D2, 0xD67E, 0x75CF, 0xD6A1, 0x75CB, 0xD6A2, 0x75CC, + 0xD6A3, 0x75D1, 0xD6A4, 0x75D0, 0xD6A5, 0x768F, 0xD6A6, 0x7689, + 0xD6A7, 0x76D3, 0xD6A8, 0x7739, 0xD6A9, 0x772F, 0xD6AA, 0x772D, + 0xD6AB, 0x7731, 0xD6AC, 0x7732, 0xD6AD, 0x7734, 0xD6AE, 0x7733, + 0xD6AF, 0x773D, 0xD6B0, 0x7725, 0xD6B1, 0x773B, 0xD6B2, 0x7735, + 0xD6B3, 0x7848, 0xD6B4, 0x7852, 0xD6B5, 0x7849, 0xD6B6, 0x784D, + 0xD6B7, 0x784A, 0xD6B8, 0x784C, 0xD6B9, 0x7826, 0xD6BA, 0x7845, + 0xD6BB, 0x7850, 0xD6BC, 0x7964, 0xD6BD, 0x7967, 0xD6BE, 0x7969, + 0xD6BF, 0x796A, 0xD6C0, 0x7963, 0xD6C1, 0x796B, 0xD6C2, 0x7961, + 0xD6C3, 0x79BB, 0xD6C4, 0x79FA, 0xD6C5, 0x79F8, 0xD6C6, 0x79F6, + 0xD6C7, 0x79F7, 0xD6C8, 0x7A8F, 0xD6C9, 0x7A94, 0xD6CA, 0x7A90, + 0xD6CB, 0x7B35, 0xD6CC, 0x7B47, 0xD6CD, 0x7B34, 0xD6CE, 0x7B25, + 0xD6CF, 0x7B30, 0xD6D0, 0x7B22, 0xD6D1, 0x7B24, 0xD6D2, 0x7B33, + 0xD6D3, 0x7B18, 0xD6D4, 0x7B2A, 0xD6D5, 0x7B1D, 0xD6D6, 0x7B31, + 0xD6D7, 0x7B2B, 0xD6D8, 0x7B2D, 0xD6D9, 0x7B2F, 0xD6DA, 0x7B32, + 0xD6DB, 0x7B38, 0xD6DC, 0x7B1A, 0xD6DD, 0x7B23, 0xD6DE, 0x7C94, + 0xD6DF, 0x7C98, 0xD6E0, 0x7C96, 0xD6E1, 0x7CA3, 0xD6E2, 0x7D35, + 0xD6E3, 0x7D3D, 0xD6E4, 0x7D38, 0xD6E5, 0x7D36, 0xD6E6, 0x7D3A, + 0xD6E7, 0x7D45, 0xD6E8, 0x7D2C, 0xD6E9, 0x7D29, 0xD6EA, 0x7D41, + 0xD6EB, 0x7D47, 0xD6EC, 0x7D3E, 0xD6ED, 0x7D3F, 0xD6EE, 0x7D4A, + 0xD6EF, 0x7D3B, 0xD6F0, 0x7D28, 0xD6F1, 0x7F63, 0xD6F2, 0x7F95, + 0xD6F3, 0x7F9C, 0xD6F4, 0x7F9D, 0xD6F5, 0x7F9B, 0xD6F6, 0x7FCA, + 0xD6F7, 0x7FCB, 0xD6F8, 0x7FCD, 0xD6F9, 0x7FD0, 0xD6FA, 0x7FD1, + 0xD6FB, 0x7FC7, 0xD6FC, 0x7FCF, 0xD6FD, 0x7FC9, 0xD6FE, 0x801F, + 0xD740, 0x801E, 0xD741, 0x801B, 0xD742, 0x8047, 0xD743, 0x8043, + 0xD744, 0x8048, 0xD745, 0x8118, 0xD746, 0x8125, 0xD747, 0x8119, + 0xD748, 0x811B, 0xD749, 0x812D, 0xD74A, 0x811F, 0xD74B, 0x812C, + 0xD74C, 0x811E, 0xD74D, 0x8121, 0xD74E, 0x8115, 0xD74F, 0x8127, + 0xD750, 0x811D, 0xD751, 0x8122, 0xD752, 0x8211, 0xD753, 0x8238, + 0xD754, 0x8233, 0xD755, 0x823A, 0xD756, 0x8234, 0xD757, 0x8232, + 0xD758, 0x8274, 0xD759, 0x8390, 0xD75A, 0x83A3, 0xD75B, 0x83A8, + 0xD75C, 0x838D, 0xD75D, 0x837A, 0xD75E, 0x8373, 0xD75F, 0x83A4, + 0xD760, 0x8374, 0xD761, 0x838F, 0xD762, 0x8381, 0xD763, 0x8395, + 0xD764, 0x8399, 0xD765, 0x8375, 0xD766, 0x8394, 0xD767, 0x83A9, + 0xD768, 0x837D, 0xD769, 0x8383, 0xD76A, 0x838C, 0xD76B, 0x839D, + 0xD76C, 0x839B, 0xD76D, 0x83AA, 0xD76E, 0x838B, 0xD76F, 0x837E, + 0xD770, 0x83A5, 0xD771, 0x83AF, 0xD772, 0x8388, 0xD773, 0x8397, + 0xD774, 0x83B0, 0xD775, 0x837F, 0xD776, 0x83A6, 0xD777, 0x8387, + 0xD778, 0x83AE, 0xD779, 0x8376, 0xD77A, 0x839A, 0xD77B, 0x8659, + 0xD77C, 0x8656, 0xD77D, 0x86BF, 0xD77E, 0x86B7, 0xD7A1, 0x86C2, + 0xD7A2, 0x86C1, 0xD7A3, 0x86C5, 0xD7A4, 0x86BA, 0xD7A5, 0x86B0, + 0xD7A6, 0x86C8, 0xD7A7, 0x86B9, 0xD7A8, 0x86B3, 0xD7A9, 0x86B8, + 0xD7AA, 0x86CC, 0xD7AB, 0x86B4, 0xD7AC, 0x86BB, 0xD7AD, 0x86BC, + 0xD7AE, 0x86C3, 0xD7AF, 0x86BD, 0xD7B0, 0x86BE, 0xD7B1, 0x8852, + 0xD7B2, 0x8889, 0xD7B3, 0x8895, 0xD7B4, 0x88A8, 0xD7B5, 0x88A2, + 0xD7B6, 0x88AA, 0xD7B7, 0x889A, 0xD7B8, 0x8891, 0xD7B9, 0x88A1, + 0xD7BA, 0x889F, 0xD7BB, 0x8898, 0xD7BC, 0x88A7, 0xD7BD, 0x8899, + 0xD7BE, 0x889B, 0xD7BF, 0x8897, 0xD7C0, 0x88A4, 0xD7C1, 0x88AC, + 0xD7C2, 0x888C, 0xD7C3, 0x8893, 0xD7C4, 0x888E, 0xD7C5, 0x8982, + 0xD7C6, 0x89D6, 0xD7C7, 0x89D9, 0xD7C8, 0x89D5, 0xD7C9, 0x8A30, + 0xD7CA, 0x8A27, 0xD7CB, 0x8A2C, 0xD7CC, 0x8A1E, 0xD7CD, 0x8C39, + 0xD7CE, 0x8C3B, 0xD7CF, 0x8C5C, 0xD7D0, 0x8C5D, 0xD7D1, 0x8C7D, + 0xD7D2, 0x8CA5, 0xD7D3, 0x8D7D, 0xD7D4, 0x8D7B, 0xD7D5, 0x8D79, + 0xD7D6, 0x8DBC, 0xD7D7, 0x8DC2, 0xD7D8, 0x8DB9, 0xD7D9, 0x8DBF, + 0xD7DA, 0x8DC1, 0xD7DB, 0x8ED8, 0xD7DC, 0x8EDE, 0xD7DD, 0x8EDD, + 0xD7DE, 0x8EDC, 0xD7DF, 0x8ED7, 0xD7E0, 0x8EE0, 0xD7E1, 0x8EE1, + 0xD7E2, 0x9024, 0xD7E3, 0x900B, 0xD7E4, 0x9011, 0xD7E5, 0x901C, + 0xD7E6, 0x900C, 0xD7E7, 0x9021, 0xD7E8, 0x90EF, 0xD7E9, 0x90EA, + 0xD7EA, 0x90F0, 0xD7EB, 0x90F4, 0xD7EC, 0x90F2, 0xD7ED, 0x90F3, + 0xD7EE, 0x90D4, 0xD7EF, 0x90EB, 0xD7F0, 0x90EC, 0xD7F1, 0x90E9, + 0xD7F2, 0x9156, 0xD7F3, 0x9158, 0xD7F4, 0x915A, 0xD7F5, 0x9153, + 0xD7F6, 0x9155, 0xD7F7, 0x91EC, 0xD7F8, 0x91F4, 0xD7F9, 0x91F1, + 0xD7FA, 0x91F3, 0xD7FB, 0x91F8, 0xD7FC, 0x91E4, 0xD7FD, 0x91F9, + 0xD7FE, 0x91EA, 0xD840, 0x91EB, 0xD841, 0x91F7, 0xD842, 0x91E8, + 0xD843, 0x91EE, 0xD844, 0x957A, 0xD845, 0x9586, 0xD846, 0x9588, + 0xD847, 0x967C, 0xD848, 0x966D, 0xD849, 0x966B, 0xD84A, 0x9671, + 0xD84B, 0x966F, 0xD84C, 0x96BF, 0xD84D, 0x976A, 0xD84E, 0x9804, + 0xD84F, 0x98E5, 0xD850, 0x9997, 0xD851, 0x509B, 0xD852, 0x5095, + 0xD853, 0x5094, 0xD854, 0x509E, 0xD855, 0x508B, 0xD856, 0x50A3, + 0xD857, 0x5083, 0xD858, 0x508C, 0xD859, 0x508E, 0xD85A, 0x509D, + 0xD85B, 0x5068, 0xD85C, 0x509C, 0xD85D, 0x5092, 0xD85E, 0x5082, + 0xD85F, 0x5087, 0xD860, 0x515F, 0xD861, 0x51D4, 0xD862, 0x5312, + 0xD863, 0x5311, 0xD864, 0x53A4, 0xD865, 0x53A7, 0xD866, 0x5591, + 0xD867, 0x55A8, 0xD868, 0x55A5, 0xD869, 0x55AD, 0xD86A, 0x5577, + 0xD86B, 0x5645, 0xD86C, 0x55A2, 0xD86D, 0x5593, 0xD86E, 0x5588, + 0xD86F, 0x558F, 0xD870, 0x55B5, 0xD871, 0x5581, 0xD872, 0x55A3, + 0xD873, 0x5592, 0xD874, 0x55A4, 0xD875, 0x557D, 0xD876, 0x558C, + 0xD877, 0x55A6, 0xD878, 0x557F, 0xD879, 0x5595, 0xD87A, 0x55A1, + 0xD87B, 0x558E, 0xD87C, 0x570C, 0xD87D, 0x5829, 0xD87E, 0x5837, + 0xD8A1, 0x5819, 0xD8A2, 0x581E, 0xD8A3, 0x5827, 0xD8A4, 0x5823, + 0xD8A5, 0x5828, 0xD8A6, 0x57F5, 0xD8A7, 0x5848, 0xD8A8, 0x5825, + 0xD8A9, 0x581C, 0xD8AA, 0x581B, 0xD8AB, 0x5833, 0xD8AC, 0x583F, + 0xD8AD, 0x5836, 0xD8AE, 0x582E, 0xD8AF, 0x5839, 0xD8B0, 0x5838, + 0xD8B1, 0x582D, 0xD8B2, 0x582C, 0xD8B3, 0x583B, 0xD8B4, 0x5961, + 0xD8B5, 0x5AAF, 0xD8B6, 0x5A94, 0xD8B7, 0x5A9F, 0xD8B8, 0x5A7A, + 0xD8B9, 0x5AA2, 0xD8BA, 0x5A9E, 0xD8BB, 0x5A78, 0xD8BC, 0x5AA6, + 0xD8BD, 0x5A7C, 0xD8BE, 0x5AA5, 0xD8BF, 0x5AAC, 0xD8C0, 0x5A95, + 0xD8C1, 0x5AAE, 0xD8C2, 0x5A37, 0xD8C3, 0x5A84, 0xD8C4, 0x5A8A, + 0xD8C5, 0x5A97, 0xD8C6, 0x5A83, 0xD8C7, 0x5A8B, 0xD8C8, 0x5AA9, + 0xD8C9, 0x5A7B, 0xD8CA, 0x5A7D, 0xD8CB, 0x5A8C, 0xD8CC, 0x5A9C, + 0xD8CD, 0x5A8F, 0xD8CE, 0x5A93, 0xD8CF, 0x5A9D, 0xD8D0, 0x5BEA, + 0xD8D1, 0x5BCD, 0xD8D2, 0x5BCB, 0xD8D3, 0x5BD4, 0xD8D4, 0x5BD1, + 0xD8D5, 0x5BCA, 0xD8D6, 0x5BCE, 0xD8D7, 0x5C0C, 0xD8D8, 0x5C30, + 0xD8D9, 0x5D37, 0xD8DA, 0x5D43, 0xD8DB, 0x5D6B, 0xD8DC, 0x5D41, + 0xD8DD, 0x5D4B, 0xD8DE, 0x5D3F, 0xD8DF, 0x5D35, 0xD8E0, 0x5D51, + 0xD8E1, 0x5D4E, 0xD8E2, 0x5D55, 0xD8E3, 0x5D33, 0xD8E4, 0x5D3A, + 0xD8E5, 0x5D52, 0xD8E6, 0x5D3D, 0xD8E7, 0x5D31, 0xD8E8, 0x5D59, + 0xD8E9, 0x5D42, 0xD8EA, 0x5D39, 0xD8EB, 0x5D49, 0xD8EC, 0x5D38, + 0xD8ED, 0x5D3C, 0xD8EE, 0x5D32, 0xD8EF, 0x5D36, 0xD8F0, 0x5D40, + 0xD8F1, 0x5D45, 0xD8F2, 0x5E44, 0xD8F3, 0x5E41, 0xD8F4, 0x5F58, + 0xD8F5, 0x5FA6, 0xD8F6, 0x5FA5, 0xD8F7, 0x5FAB, 0xD8F8, 0x60C9, + 0xD8F9, 0x60B9, 0xD8FA, 0x60CC, 0xD8FB, 0x60E2, 0xD8FC, 0x60CE, + 0xD8FD, 0x60C4, 0xD8FE, 0x6114, 0xD940, 0x60F2, 0xD941, 0x610A, + 0xD942, 0x6116, 0xD943, 0x6105, 0xD944, 0x60F5, 0xD945, 0x6113, + 0xD946, 0x60F8, 0xD947, 0x60FC, 0xD948, 0x60FE, 0xD949, 0x60C1, + 0xD94A, 0x6103, 0xD94B, 0x6118, 0xD94C, 0x611D, 0xD94D, 0x6110, + 0xD94E, 0x60FF, 0xD94F, 0x6104, 0xD950, 0x610B, 0xD951, 0x624A, + 0xD952, 0x6394, 0xD953, 0x63B1, 0xD954, 0x63B0, 0xD955, 0x63CE, + 0xD956, 0x63E5, 0xD957, 0x63E8, 0xD958, 0x63EF, 0xD959, 0x63C3, + 0xD95A, 0x649D, 0xD95B, 0x63F3, 0xD95C, 0x63CA, 0xD95D, 0x63E0, + 0xD95E, 0x63F6, 0xD95F, 0x63D5, 0xD960, 0x63F2, 0xD961, 0x63F5, + 0xD962, 0x6461, 0xD963, 0x63DF, 0xD964, 0x63BE, 0xD965, 0x63DD, + 0xD966, 0x63DC, 0xD967, 0x63C4, 0xD968, 0x63D8, 0xD969, 0x63D3, + 0xD96A, 0x63C2, 0xD96B, 0x63C7, 0xD96C, 0x63CC, 0xD96D, 0x63CB, + 0xD96E, 0x63C8, 0xD96F, 0x63F0, 0xD970, 0x63D7, 0xD971, 0x63D9, + 0xD972, 0x6532, 0xD973, 0x6567, 0xD974, 0x656A, 0xD975, 0x6564, + 0xD976, 0x655C, 0xD977, 0x6568, 0xD978, 0x6565, 0xD979, 0x658C, + 0xD97A, 0x659D, 0xD97B, 0x659E, 0xD97C, 0x65AE, 0xD97D, 0x65D0, + 0xD97E, 0x65D2, 0xD9A1, 0x667C, 0xD9A2, 0x666C, 0xD9A3, 0x667B, + 0xD9A4, 0x6680, 0xD9A5, 0x6671, 0xD9A6, 0x6679, 0xD9A7, 0x666A, + 0xD9A8, 0x6672, 0xD9A9, 0x6701, 0xD9AA, 0x690C, 0xD9AB, 0x68D3, + 0xD9AC, 0x6904, 0xD9AD, 0x68DC, 0xD9AE, 0x692A, 0xD9AF, 0x68EC, + 0xD9B0, 0x68EA, 0xD9B1, 0x68F1, 0xD9B2, 0x690F, 0xD9B3, 0x68D6, + 0xD9B4, 0x68F7, 0xD9B5, 0x68EB, 0xD9B6, 0x68E4, 0xD9B7, 0x68F6, + 0xD9B8, 0x6913, 0xD9B9, 0x6910, 0xD9BA, 0x68F3, 0xD9BB, 0x68E1, + 0xD9BC, 0x6907, 0xD9BD, 0x68CC, 0xD9BE, 0x6908, 0xD9BF, 0x6970, + 0xD9C0, 0x68B4, 0xD9C1, 0x6911, 0xD9C2, 0x68EF, 0xD9C3, 0x68C6, + 0xD9C4, 0x6914, 0xD9C5, 0x68F8, 0xD9C6, 0x68D0, 0xD9C7, 0x68FD, + 0xD9C8, 0x68FC, 0xD9C9, 0x68E8, 0xD9CA, 0x690B, 0xD9CB, 0x690A, + 0xD9CC, 0x6917, 0xD9CD, 0x68CE, 0xD9CE, 0x68C8, 0xD9CF, 0x68DD, + 0xD9D0, 0x68DE, 0xD9D1, 0x68E6, 0xD9D2, 0x68F4, 0xD9D3, 0x68D1, + 0xD9D4, 0x6906, 0xD9D5, 0x68D4, 0xD9D6, 0x68E9, 0xD9D7, 0x6915, + 0xD9D8, 0x6925, 0xD9D9, 0x68C7, 0xD9DA, 0x6B39, 0xD9DB, 0x6B3B, + 0xD9DC, 0x6B3F, 0xD9DD, 0x6B3C, 0xD9DE, 0x6B94, 0xD9DF, 0x6B97, + 0xD9E0, 0x6B99, 0xD9E1, 0x6B95, 0xD9E2, 0x6BBD, 0xD9E3, 0x6BF0, + 0xD9E4, 0x6BF2, 0xD9E5, 0x6BF3, 0xD9E6, 0x6C30, 0xD9E7, 0x6DFC, + 0xD9E8, 0x6E46, 0xD9E9, 0x6E47, 0xD9EA, 0x6E1F, 0xD9EB, 0x6E49, + 0xD9EC, 0x6E88, 0xD9ED, 0x6E3C, 0xD9EE, 0x6E3D, 0xD9EF, 0x6E45, + 0xD9F0, 0x6E62, 0xD9F1, 0x6E2B, 0xD9F2, 0x6E3F, 0xD9F3, 0x6E41, + 0xD9F4, 0x6E5D, 0xD9F5, 0x6E73, 0xD9F6, 0x6E1C, 0xD9F7, 0x6E33, + 0xD9F8, 0x6E4B, 0xD9F9, 0x6E40, 0xD9FA, 0x6E51, 0xD9FB, 0x6E3B, + 0xD9FC, 0x6E03, 0xD9FD, 0x6E2E, 0xD9FE, 0x6E5E, 0xDA40, 0x6E68, + 0xDA41, 0x6E5C, 0xDA42, 0x6E61, 0xDA43, 0x6E31, 0xDA44, 0x6E28, + 0xDA45, 0x6E60, 0xDA46, 0x6E71, 0xDA47, 0x6E6B, 0xDA48, 0x6E39, + 0xDA49, 0x6E22, 0xDA4A, 0x6E30, 0xDA4B, 0x6E53, 0xDA4C, 0x6E65, + 0xDA4D, 0x6E27, 0xDA4E, 0x6E78, 0xDA4F, 0x6E64, 0xDA50, 0x6E77, + 0xDA51, 0x6E55, 0xDA52, 0x6E79, 0xDA53, 0x6E52, 0xDA54, 0x6E66, + 0xDA55, 0x6E35, 0xDA56, 0x6E36, 0xDA57, 0x6E5A, 0xDA58, 0x7120, + 0xDA59, 0x711E, 0xDA5A, 0x712F, 0xDA5B, 0x70FB, 0xDA5C, 0x712E, + 0xDA5D, 0x7131, 0xDA5E, 0x7123, 0xDA5F, 0x7125, 0xDA60, 0x7122, + 0xDA61, 0x7132, 0xDA62, 0x711F, 0xDA63, 0x7128, 0xDA64, 0x713A, + 0xDA65, 0x711B, 0xDA66, 0x724B, 0xDA67, 0x725A, 0xDA68, 0x7288, + 0xDA69, 0x7289, 0xDA6A, 0x7286, 0xDA6B, 0x7285, 0xDA6C, 0x728B, + 0xDA6D, 0x7312, 0xDA6E, 0x730B, 0xDA6F, 0x7330, 0xDA70, 0x7322, + 0xDA71, 0x7331, 0xDA72, 0x7333, 0xDA73, 0x7327, 0xDA74, 0x7332, + 0xDA75, 0x732D, 0xDA76, 0x7326, 0xDA77, 0x7323, 0xDA78, 0x7335, + 0xDA79, 0x730C, 0xDA7A, 0x742E, 0xDA7B, 0x742C, 0xDA7C, 0x7430, + 0xDA7D, 0x742B, 0xDA7E, 0x7416, 0xDAA1, 0x741A, 0xDAA2, 0x7421, + 0xDAA3, 0x742D, 0xDAA4, 0x7431, 0xDAA5, 0x7424, 0xDAA6, 0x7423, + 0xDAA7, 0x741D, 0xDAA8, 0x7429, 0xDAA9, 0x7420, 0xDAAA, 0x7432, + 0xDAAB, 0x74FB, 0xDAAC, 0x752F, 0xDAAD, 0x756F, 0xDAAE, 0x756C, + 0xDAAF, 0x75E7, 0xDAB0, 0x75DA, 0xDAB1, 0x75E1, 0xDAB2, 0x75E6, + 0xDAB3, 0x75DD, 0xDAB4, 0x75DF, 0xDAB5, 0x75E4, 0xDAB6, 0x75D7, + 0xDAB7, 0x7695, 0xDAB8, 0x7692, 0xDAB9, 0x76DA, 0xDABA, 0x7746, + 0xDABB, 0x7747, 0xDABC, 0x7744, 0xDABD, 0x774D, 0xDABE, 0x7745, + 0xDABF, 0x774A, 0xDAC0, 0x774E, 0xDAC1, 0x774B, 0xDAC2, 0x774C, + 0xDAC3, 0x77DE, 0xDAC4, 0x77EC, 0xDAC5, 0x7860, 0xDAC6, 0x7864, + 0xDAC7, 0x7865, 0xDAC8, 0x785C, 0xDAC9, 0x786D, 0xDACA, 0x7871, + 0xDACB, 0x786A, 0xDACC, 0x786E, 0xDACD, 0x7870, 0xDACE, 0x7869, + 0xDACF, 0x7868, 0xDAD0, 0x785E, 0xDAD1, 0x7862, 0xDAD2, 0x7974, + 0xDAD3, 0x7973, 0xDAD4, 0x7972, 0xDAD5, 0x7970, 0xDAD6, 0x7A02, + 0xDAD7, 0x7A0A, 0xDAD8, 0x7A03, 0xDAD9, 0x7A0C, 0xDADA, 0x7A04, + 0xDADB, 0x7A99, 0xDADC, 0x7AE6, 0xDADD, 0x7AE4, 0xDADE, 0x7B4A, + 0xDADF, 0x7B3B, 0xDAE0, 0x7B44, 0xDAE1, 0x7B48, 0xDAE2, 0x7B4C, + 0xDAE3, 0x7B4E, 0xDAE4, 0x7B40, 0xDAE5, 0x7B58, 0xDAE6, 0x7B45, + 0xDAE7, 0x7CA2, 0xDAE8, 0x7C9E, 0xDAE9, 0x7CA8, 0xDAEA, 0x7CA1, + 0xDAEB, 0x7D58, 0xDAEC, 0x7D6F, 0xDAED, 0x7D63, 0xDAEE, 0x7D53, + 0xDAEF, 0x7D56, 0xDAF0, 0x7D67, 0xDAF1, 0x7D6A, 0xDAF2, 0x7D4F, + 0xDAF3, 0x7D6D, 0xDAF4, 0x7D5C, 0xDAF5, 0x7D6B, 0xDAF6, 0x7D52, + 0xDAF7, 0x7D54, 0xDAF8, 0x7D69, 0xDAF9, 0x7D51, 0xDAFA, 0x7D5F, + 0xDAFB, 0x7D4E, 0xDAFC, 0x7F3E, 0xDAFD, 0x7F3F, 0xDAFE, 0x7F65, + 0xDB40, 0x7F66, 0xDB41, 0x7FA2, 0xDB42, 0x7FA0, 0xDB43, 0x7FA1, + 0xDB44, 0x7FD7, 0xDB45, 0x8051, 0xDB46, 0x804F, 0xDB47, 0x8050, + 0xDB48, 0x80FE, 0xDB49, 0x80D4, 0xDB4A, 0x8143, 0xDB4B, 0x814A, + 0xDB4C, 0x8152, 0xDB4D, 0x814F, 0xDB4E, 0x8147, 0xDB4F, 0x813D, + 0xDB50, 0x814D, 0xDB51, 0x813A, 0xDB52, 0x81E6, 0xDB53, 0x81EE, + 0xDB54, 0x81F7, 0xDB55, 0x81F8, 0xDB56, 0x81F9, 0xDB57, 0x8204, + 0xDB58, 0x823C, 0xDB59, 0x823D, 0xDB5A, 0x823F, 0xDB5B, 0x8275, + 0xDB5C, 0x833B, 0xDB5D, 0x83CF, 0xDB5E, 0x83F9, 0xDB5F, 0x8423, + 0xDB60, 0x83C0, 0xDB61, 0x83E8, 0xDB62, 0x8412, 0xDB63, 0x83E7, + 0xDB64, 0x83E4, 0xDB65, 0x83FC, 0xDB66, 0x83F6, 0xDB67, 0x8410, + 0xDB68, 0x83C6, 0xDB69, 0x83C8, 0xDB6A, 0x83EB, 0xDB6B, 0x83E3, + 0xDB6C, 0x83BF, 0xDB6D, 0x8401, 0xDB6E, 0x83DD, 0xDB6F, 0x83E5, + 0xDB70, 0x83D8, 0xDB71, 0x83FF, 0xDB72, 0x83E1, 0xDB73, 0x83CB, + 0xDB74, 0x83CE, 0xDB75, 0x83D6, 0xDB76, 0x83F5, 0xDB77, 0x83C9, + 0xDB78, 0x8409, 0xDB79, 0x840F, 0xDB7A, 0x83DE, 0xDB7B, 0x8411, + 0xDB7C, 0x8406, 0xDB7D, 0x83C2, 0xDB7E, 0x83F3, 0xDBA1, 0x83D5, + 0xDBA2, 0x83FA, 0xDBA3, 0x83C7, 0xDBA4, 0x83D1, 0xDBA5, 0x83EA, + 0xDBA6, 0x8413, 0xDBA7, 0x83C3, 0xDBA8, 0x83EC, 0xDBA9, 0x83EE, + 0xDBAA, 0x83C4, 0xDBAB, 0x83FB, 0xDBAC, 0x83D7, 0xDBAD, 0x83E2, + 0xDBAE, 0x841B, 0xDBAF, 0x83DB, 0xDBB0, 0x83FE, 0xDBB1, 0x86D8, + 0xDBB2, 0x86E2, 0xDBB3, 0x86E6, 0xDBB4, 0x86D3, 0xDBB5, 0x86E3, + 0xDBB6, 0x86DA, 0xDBB7, 0x86EA, 0xDBB8, 0x86DD, 0xDBB9, 0x86EB, + 0xDBBA, 0x86DC, 0xDBBB, 0x86EC, 0xDBBC, 0x86E9, 0xDBBD, 0x86D7, + 0xDBBE, 0x86E8, 0xDBBF, 0x86D1, 0xDBC0, 0x8848, 0xDBC1, 0x8856, + 0xDBC2, 0x8855, 0xDBC3, 0x88BA, 0xDBC4, 0x88D7, 0xDBC5, 0x88B9, + 0xDBC6, 0x88B8, 0xDBC7, 0x88C0, 0xDBC8, 0x88BE, 0xDBC9, 0x88B6, + 0xDBCA, 0x88BC, 0xDBCB, 0x88B7, 0xDBCC, 0x88BD, 0xDBCD, 0x88B2, + 0xDBCE, 0x8901, 0xDBCF, 0x88C9, 0xDBD0, 0x8995, 0xDBD1, 0x8998, + 0xDBD2, 0x8997, 0xDBD3, 0x89DD, 0xDBD4, 0x89DA, 0xDBD5, 0x89DB, + 0xDBD6, 0x8A4E, 0xDBD7, 0x8A4D, 0xDBD8, 0x8A39, 0xDBD9, 0x8A59, + 0xDBDA, 0x8A40, 0xDBDB, 0x8A57, 0xDBDC, 0x8A58, 0xDBDD, 0x8A44, + 0xDBDE, 0x8A45, 0xDBDF, 0x8A52, 0xDBE0, 0x8A48, 0xDBE1, 0x8A51, + 0xDBE2, 0x8A4A, 0xDBE3, 0x8A4C, 0xDBE4, 0x8A4F, 0xDBE5, 0x8C5F, + 0xDBE6, 0x8C81, 0xDBE7, 0x8C80, 0xDBE8, 0x8CBA, 0xDBE9, 0x8CBE, + 0xDBEA, 0x8CB0, 0xDBEB, 0x8CB9, 0xDBEC, 0x8CB5, 0xDBED, 0x8D84, + 0xDBEE, 0x8D80, 0xDBEF, 0x8D89, 0xDBF0, 0x8DD8, 0xDBF1, 0x8DD3, + 0xDBF2, 0x8DCD, 0xDBF3, 0x8DC7, 0xDBF4, 0x8DD6, 0xDBF5, 0x8DDC, + 0xDBF6, 0x8DCF, 0xDBF7, 0x8DD5, 0xDBF8, 0x8DD9, 0xDBF9, 0x8DC8, + 0xDBFA, 0x8DD7, 0xDBFB, 0x8DC5, 0xDBFC, 0x8EEF, 0xDBFD, 0x8EF7, + 0xDBFE, 0x8EFA, 0xDC40, 0x8EF9, 0xDC41, 0x8EE6, 0xDC42, 0x8EEE, + 0xDC43, 0x8EE5, 0xDC44, 0x8EF5, 0xDC45, 0x8EE7, 0xDC46, 0x8EE8, + 0xDC47, 0x8EF6, 0xDC48, 0x8EEB, 0xDC49, 0x8EF1, 0xDC4A, 0x8EEC, + 0xDC4B, 0x8EF4, 0xDC4C, 0x8EE9, 0xDC4D, 0x902D, 0xDC4E, 0x9034, + 0xDC4F, 0x902F, 0xDC50, 0x9106, 0xDC51, 0x912C, 0xDC52, 0x9104, + 0xDC53, 0x90FF, 0xDC54, 0x90FC, 0xDC55, 0x9108, 0xDC56, 0x90F9, + 0xDC57, 0x90FB, 0xDC58, 0x9101, 0xDC59, 0x9100, 0xDC5A, 0x9107, + 0xDC5B, 0x9105, 0xDC5C, 0x9103, 0xDC5D, 0x9161, 0xDC5E, 0x9164, + 0xDC5F, 0x915F, 0xDC60, 0x9162, 0xDC61, 0x9160, 0xDC62, 0x9201, + 0xDC63, 0x920A, 0xDC64, 0x9225, 0xDC65, 0x9203, 0xDC66, 0x921A, + 0xDC67, 0x9226, 0xDC68, 0x920F, 0xDC69, 0x920C, 0xDC6A, 0x9200, + 0xDC6B, 0x9212, 0xDC6C, 0x91FF, 0xDC6D, 0x91FD, 0xDC6E, 0x9206, + 0xDC6F, 0x9204, 0xDC70, 0x9227, 0xDC71, 0x9202, 0xDC72, 0x921C, + 0xDC73, 0x9224, 0xDC74, 0x9219, 0xDC75, 0x9217, 0xDC76, 0x9205, + 0xDC77, 0x9216, 0xDC78, 0x957B, 0xDC79, 0x958D, 0xDC7A, 0x958C, + 0xDC7B, 0x9590, 0xDC7C, 0x9687, 0xDC7D, 0x967E, 0xDC7E, 0x9688, + 0xDCA1, 0x9689, 0xDCA2, 0x9683, 0xDCA3, 0x9680, 0xDCA4, 0x96C2, + 0xDCA5, 0x96C8, 0xDCA6, 0x96C3, 0xDCA7, 0x96F1, 0xDCA8, 0x96F0, + 0xDCA9, 0x976C, 0xDCAA, 0x9770, 0xDCAB, 0x976E, 0xDCAC, 0x9807, + 0xDCAD, 0x98A9, 0xDCAE, 0x98EB, 0xDCAF, 0x9CE6, 0xDCB0, 0x9EF9, + 0xDCB1, 0x4E83, 0xDCB2, 0x4E84, 0xDCB3, 0x4EB6, 0xDCB4, 0x50BD, + 0xDCB5, 0x50BF, 0xDCB6, 0x50C6, 0xDCB7, 0x50AE, 0xDCB8, 0x50C4, + 0xDCB9, 0x50CA, 0xDCBA, 0x50B4, 0xDCBB, 0x50C8, 0xDCBC, 0x50C2, + 0xDCBD, 0x50B0, 0xDCBE, 0x50C1, 0xDCBF, 0x50BA, 0xDCC0, 0x50B1, + 0xDCC1, 0x50CB, 0xDCC2, 0x50C9, 0xDCC3, 0x50B6, 0xDCC4, 0x50B8, + 0xDCC5, 0x51D7, 0xDCC6, 0x527A, 0xDCC7, 0x5278, 0xDCC8, 0x527B, + 0xDCC9, 0x527C, 0xDCCA, 0x55C3, 0xDCCB, 0x55DB, 0xDCCC, 0x55CC, + 0xDCCD, 0x55D0, 0xDCCE, 0x55CB, 0xDCCF, 0x55CA, 0xDCD0, 0x55DD, + 0xDCD1, 0x55C0, 0xDCD2, 0x55D4, 0xDCD3, 0x55C4, 0xDCD4, 0x55E9, + 0xDCD5, 0x55BF, 0xDCD6, 0x55D2, 0xDCD7, 0x558D, 0xDCD8, 0x55CF, + 0xDCD9, 0x55D5, 0xDCDA, 0x55E2, 0xDCDB, 0x55D6, 0xDCDC, 0x55C8, + 0xDCDD, 0x55F2, 0xDCDE, 0x55CD, 0xDCDF, 0x55D9, 0xDCE0, 0x55C2, + 0xDCE1, 0x5714, 0xDCE2, 0x5853, 0xDCE3, 0x5868, 0xDCE4, 0x5864, + 0xDCE5, 0x584F, 0xDCE6, 0x584D, 0xDCE7, 0x5849, 0xDCE8, 0x586F, + 0xDCE9, 0x5855, 0xDCEA, 0x584E, 0xDCEB, 0x585D, 0xDCEC, 0x5859, + 0xDCED, 0x5865, 0xDCEE, 0x585B, 0xDCEF, 0x583D, 0xDCF0, 0x5863, + 0xDCF1, 0x5871, 0xDCF2, 0x58FC, 0xDCF3, 0x5AC7, 0xDCF4, 0x5AC4, + 0xDCF5, 0x5ACB, 0xDCF6, 0x5ABA, 0xDCF7, 0x5AB8, 0xDCF8, 0x5AB1, + 0xDCF9, 0x5AB5, 0xDCFA, 0x5AB0, 0xDCFB, 0x5ABF, 0xDCFC, 0x5AC8, + 0xDCFD, 0x5ABB, 0xDCFE, 0x5AC6, 0xDD40, 0x5AB7, 0xDD41, 0x5AC0, + 0xDD42, 0x5ACA, 0xDD43, 0x5AB4, 0xDD44, 0x5AB6, 0xDD45, 0x5ACD, + 0xDD46, 0x5AB9, 0xDD47, 0x5A90, 0xDD48, 0x5BD6, 0xDD49, 0x5BD8, + 0xDD4A, 0x5BD9, 0xDD4B, 0x5C1F, 0xDD4C, 0x5C33, 0xDD4D, 0x5D71, + 0xDD4E, 0x5D63, 0xDD4F, 0x5D4A, 0xDD50, 0x5D65, 0xDD51, 0x5D72, + 0xDD52, 0x5D6C, 0xDD53, 0x5D5E, 0xDD54, 0x5D68, 0xDD55, 0x5D67, + 0xDD56, 0x5D62, 0xDD57, 0x5DF0, 0xDD58, 0x5E4F, 0xDD59, 0x5E4E, + 0xDD5A, 0x5E4A, 0xDD5B, 0x5E4D, 0xDD5C, 0x5E4B, 0xDD5D, 0x5EC5, + 0xDD5E, 0x5ECC, 0xDD5F, 0x5EC6, 0xDD60, 0x5ECB, 0xDD61, 0x5EC7, + 0xDD62, 0x5F40, 0xDD63, 0x5FAF, 0xDD64, 0x5FAD, 0xDD65, 0x60F7, + 0xDD66, 0x6149, 0xDD67, 0x614A, 0xDD68, 0x612B, 0xDD69, 0x6145, + 0xDD6A, 0x6136, 0xDD6B, 0x6132, 0xDD6C, 0x612E, 0xDD6D, 0x6146, + 0xDD6E, 0x612F, 0xDD6F, 0x614F, 0xDD70, 0x6129, 0xDD71, 0x6140, + 0xDD72, 0x6220, 0xDD73, 0x9168, 0xDD74, 0x6223, 0xDD75, 0x6225, + 0xDD76, 0x6224, 0xDD77, 0x63C5, 0xDD78, 0x63F1, 0xDD79, 0x63EB, + 0xDD7A, 0x6410, 0xDD7B, 0x6412, 0xDD7C, 0x6409, 0xDD7D, 0x6420, + 0xDD7E, 0x6424, 0xDDA1, 0x6433, 0xDDA2, 0x6443, 0xDDA3, 0x641F, + 0xDDA4, 0x6415, 0xDDA5, 0x6418, 0xDDA6, 0x6439, 0xDDA7, 0x6437, + 0xDDA8, 0x6422, 0xDDA9, 0x6423, 0xDDAA, 0x640C, 0xDDAB, 0x6426, + 0xDDAC, 0x6430, 0xDDAD, 0x6428, 0xDDAE, 0x6441, 0xDDAF, 0x6435, + 0xDDB0, 0x642F, 0xDDB1, 0x640A, 0xDDB2, 0x641A, 0xDDB3, 0x6440, + 0xDDB4, 0x6425, 0xDDB5, 0x6427, 0xDDB6, 0x640B, 0xDDB7, 0x63E7, + 0xDDB8, 0x641B, 0xDDB9, 0x642E, 0xDDBA, 0x6421, 0xDDBB, 0x640E, + 0xDDBC, 0x656F, 0xDDBD, 0x6592, 0xDDBE, 0x65D3, 0xDDBF, 0x6686, + 0xDDC0, 0x668C, 0xDDC1, 0x6695, 0xDDC2, 0x6690, 0xDDC3, 0x668B, + 0xDDC4, 0x668A, 0xDDC5, 0x6699, 0xDDC6, 0x6694, 0xDDC7, 0x6678, + 0xDDC8, 0x6720, 0xDDC9, 0x6966, 0xDDCA, 0x695F, 0xDDCB, 0x6938, + 0xDDCC, 0x694E, 0xDDCD, 0x6962, 0xDDCE, 0x6971, 0xDDCF, 0x693F, + 0xDDD0, 0x6945, 0xDDD1, 0x696A, 0xDDD2, 0x6939, 0xDDD3, 0x6942, + 0xDDD4, 0x6957, 0xDDD5, 0x6959, 0xDDD6, 0x697A, 0xDDD7, 0x6948, + 0xDDD8, 0x6949, 0xDDD9, 0x6935, 0xDDDA, 0x696C, 0xDDDB, 0x6933, + 0xDDDC, 0x693D, 0xDDDD, 0x6965, 0xDDDE, 0x68F0, 0xDDDF, 0x6978, + 0xDDE0, 0x6934, 0xDDE1, 0x6969, 0xDDE2, 0x6940, 0xDDE3, 0x696F, + 0xDDE4, 0x6944, 0xDDE5, 0x6976, 0xDDE6, 0x6958, 0xDDE7, 0x6941, + 0xDDE8, 0x6974, 0xDDE9, 0x694C, 0xDDEA, 0x693B, 0xDDEB, 0x694B, + 0xDDEC, 0x6937, 0xDDED, 0x695C, 0xDDEE, 0x694F, 0xDDEF, 0x6951, + 0xDDF0, 0x6932, 0xDDF1, 0x6952, 0xDDF2, 0x692F, 0xDDF3, 0x697B, + 0xDDF4, 0x693C, 0xDDF5, 0x6B46, 0xDDF6, 0x6B45, 0xDDF7, 0x6B43, + 0xDDF8, 0x6B42, 0xDDF9, 0x6B48, 0xDDFA, 0x6B41, 0xDDFB, 0x6B9B, + 0xDDFC, 0xFA0D, 0xDDFD, 0x6BFB, 0xDDFE, 0x6BFC, 0xDE40, 0x6BF9, + 0xDE41, 0x6BF7, 0xDE42, 0x6BF8, 0xDE43, 0x6E9B, 0xDE44, 0x6ED6, + 0xDE45, 0x6EC8, 0xDE46, 0x6E8F, 0xDE47, 0x6EC0, 0xDE48, 0x6E9F, + 0xDE49, 0x6E93, 0xDE4A, 0x6E94, 0xDE4B, 0x6EA0, 0xDE4C, 0x6EB1, + 0xDE4D, 0x6EB9, 0xDE4E, 0x6EC6, 0xDE4F, 0x6ED2, 0xDE50, 0x6EBD, + 0xDE51, 0x6EC1, 0xDE52, 0x6E9E, 0xDE53, 0x6EC9, 0xDE54, 0x6EB7, + 0xDE55, 0x6EB0, 0xDE56, 0x6ECD, 0xDE57, 0x6EA6, 0xDE58, 0x6ECF, + 0xDE59, 0x6EB2, 0xDE5A, 0x6EBE, 0xDE5B, 0x6EC3, 0xDE5C, 0x6EDC, + 0xDE5D, 0x6ED8, 0xDE5E, 0x6E99, 0xDE5F, 0x6E92, 0xDE60, 0x6E8E, + 0xDE61, 0x6E8D, 0xDE62, 0x6EA4, 0xDE63, 0x6EA1, 0xDE64, 0x6EBF, + 0xDE65, 0x6EB3, 0xDE66, 0x6ED0, 0xDE67, 0x6ECA, 0xDE68, 0x6E97, + 0xDE69, 0x6EAE, 0xDE6A, 0x6EA3, 0xDE6B, 0x7147, 0xDE6C, 0x7154, + 0xDE6D, 0x7152, 0xDE6E, 0x7163, 0xDE6F, 0x7160, 0xDE70, 0x7141, + 0xDE71, 0x715D, 0xDE72, 0x7162, 0xDE73, 0x7172, 0xDE74, 0x7178, + 0xDE75, 0x716A, 0xDE76, 0x7161, 0xDE77, 0x7142, 0xDE78, 0x7158, + 0xDE79, 0x7143, 0xDE7A, 0x714B, 0xDE7B, 0x7170, 0xDE7C, 0x715F, + 0xDE7D, 0x7150, 0xDE7E, 0x7153, 0xDEA1, 0x7144, 0xDEA2, 0x714D, + 0xDEA3, 0x715A, 0xDEA4, 0x724F, 0xDEA5, 0x728D, 0xDEA6, 0x728C, + 0xDEA7, 0x7291, 0xDEA8, 0x7290, 0xDEA9, 0x728E, 0xDEAA, 0x733C, + 0xDEAB, 0x7342, 0xDEAC, 0x733B, 0xDEAD, 0x733A, 0xDEAE, 0x7340, + 0xDEAF, 0x734A, 0xDEB0, 0x7349, 0xDEB1, 0x7444, 0xDEB2, 0x744A, + 0xDEB3, 0x744B, 0xDEB4, 0x7452, 0xDEB5, 0x7451, 0xDEB6, 0x7457, + 0xDEB7, 0x7440, 0xDEB8, 0x744F, 0xDEB9, 0x7450, 0xDEBA, 0x744E, + 0xDEBB, 0x7442, 0xDEBC, 0x7446, 0xDEBD, 0x744D, 0xDEBE, 0x7454, + 0xDEBF, 0x74E1, 0xDEC0, 0x74FF, 0xDEC1, 0x74FE, 0xDEC2, 0x74FD, + 0xDEC3, 0x751D, 0xDEC4, 0x7579, 0xDEC5, 0x7577, 0xDEC6, 0x6983, + 0xDEC7, 0x75EF, 0xDEC8, 0x760F, 0xDEC9, 0x7603, 0xDECA, 0x75F7, + 0xDECB, 0x75FE, 0xDECC, 0x75FC, 0xDECD, 0x75F9, 0xDECE, 0x75F8, + 0xDECF, 0x7610, 0xDED0, 0x75FB, 0xDED1, 0x75F6, 0xDED2, 0x75ED, + 0xDED3, 0x75F5, 0xDED4, 0x75FD, 0xDED5, 0x7699, 0xDED6, 0x76B5, + 0xDED7, 0x76DD, 0xDED8, 0x7755, 0xDED9, 0x775F, 0xDEDA, 0x7760, + 0xDEDB, 0x7752, 0xDEDC, 0x7756, 0xDEDD, 0x775A, 0xDEDE, 0x7769, + 0xDEDF, 0x7767, 0xDEE0, 0x7754, 0xDEE1, 0x7759, 0xDEE2, 0x776D, + 0xDEE3, 0x77E0, 0xDEE4, 0x7887, 0xDEE5, 0x789A, 0xDEE6, 0x7894, + 0xDEE7, 0x788F, 0xDEE8, 0x7884, 0xDEE9, 0x7895, 0xDEEA, 0x7885, + 0xDEEB, 0x7886, 0xDEEC, 0x78A1, 0xDEED, 0x7883, 0xDEEE, 0x7879, + 0xDEEF, 0x7899, 0xDEF0, 0x7880, 0xDEF1, 0x7896, 0xDEF2, 0x787B, + 0xDEF3, 0x797C, 0xDEF4, 0x7982, 0xDEF5, 0x797D, 0xDEF6, 0x7979, + 0xDEF7, 0x7A11, 0xDEF8, 0x7A18, 0xDEF9, 0x7A19, 0xDEFA, 0x7A12, + 0xDEFB, 0x7A17, 0xDEFC, 0x7A15, 0xDEFD, 0x7A22, 0xDEFE, 0x7A13, + 0xDF40, 0x7A1B, 0xDF41, 0x7A10, 0xDF42, 0x7AA3, 0xDF43, 0x7AA2, + 0xDF44, 0x7A9E, 0xDF45, 0x7AEB, 0xDF46, 0x7B66, 0xDF47, 0x7B64, + 0xDF48, 0x7B6D, 0xDF49, 0x7B74, 0xDF4A, 0x7B69, 0xDF4B, 0x7B72, + 0xDF4C, 0x7B65, 0xDF4D, 0x7B73, 0xDF4E, 0x7B71, 0xDF4F, 0x7B70, + 0xDF50, 0x7B61, 0xDF51, 0x7B78, 0xDF52, 0x7B76, 0xDF53, 0x7B63, + 0xDF54, 0x7CB2, 0xDF55, 0x7CB4, 0xDF56, 0x7CAF, 0xDF57, 0x7D88, + 0xDF58, 0x7D86, 0xDF59, 0x7D80, 0xDF5A, 0x7D8D, 0xDF5B, 0x7D7F, + 0xDF5C, 0x7D85, 0xDF5D, 0x7D7A, 0xDF5E, 0x7D8E, 0xDF5F, 0x7D7B, + 0xDF60, 0x7D83, 0xDF61, 0x7D7C, 0xDF62, 0x7D8C, 0xDF63, 0x7D94, + 0xDF64, 0x7D84, 0xDF65, 0x7D7D, 0xDF66, 0x7D92, 0xDF67, 0x7F6D, + 0xDF68, 0x7F6B, 0xDF69, 0x7F67, 0xDF6A, 0x7F68, 0xDF6B, 0x7F6C, + 0xDF6C, 0x7FA6, 0xDF6D, 0x7FA5, 0xDF6E, 0x7FA7, 0xDF6F, 0x7FDB, + 0xDF70, 0x7FDC, 0xDF71, 0x8021, 0xDF72, 0x8164, 0xDF73, 0x8160, + 0xDF74, 0x8177, 0xDF75, 0x815C, 0xDF76, 0x8169, 0xDF77, 0x815B, + 0xDF78, 0x8162, 0xDF79, 0x8172, 0xDF7A, 0x6721, 0xDF7B, 0x815E, + 0xDF7C, 0x8176, 0xDF7D, 0x8167, 0xDF7E, 0x816F, 0xDFA1, 0x8144, + 0xDFA2, 0x8161, 0xDFA3, 0x821D, 0xDFA4, 0x8249, 0xDFA5, 0x8244, + 0xDFA6, 0x8240, 0xDFA7, 0x8242, 0xDFA8, 0x8245, 0xDFA9, 0x84F1, + 0xDFAA, 0x843F, 0xDFAB, 0x8456, 0xDFAC, 0x8476, 0xDFAD, 0x8479, + 0xDFAE, 0x848F, 0xDFAF, 0x848D, 0xDFB0, 0x8465, 0xDFB1, 0x8451, + 0xDFB2, 0x8440, 0xDFB3, 0x8486, 0xDFB4, 0x8467, 0xDFB5, 0x8430, + 0xDFB6, 0x844D, 0xDFB7, 0x847D, 0xDFB8, 0x845A, 0xDFB9, 0x8459, + 0xDFBA, 0x8474, 0xDFBB, 0x8473, 0xDFBC, 0x845D, 0xDFBD, 0x8507, + 0xDFBE, 0x845E, 0xDFBF, 0x8437, 0xDFC0, 0x843A, 0xDFC1, 0x8434, + 0xDFC2, 0x847A, 0xDFC3, 0x8443, 0xDFC4, 0x8478, 0xDFC5, 0x8432, + 0xDFC6, 0x8445, 0xDFC7, 0x8429, 0xDFC8, 0x83D9, 0xDFC9, 0x844B, + 0xDFCA, 0x842F, 0xDFCB, 0x8442, 0xDFCC, 0x842D, 0xDFCD, 0x845F, + 0xDFCE, 0x8470, 0xDFCF, 0x8439, 0xDFD0, 0x844E, 0xDFD1, 0x844C, + 0xDFD2, 0x8452, 0xDFD3, 0x846F, 0xDFD4, 0x84C5, 0xDFD5, 0x848E, + 0xDFD6, 0x843B, 0xDFD7, 0x8447, 0xDFD8, 0x8436, 0xDFD9, 0x8433, + 0xDFDA, 0x8468, 0xDFDB, 0x847E, 0xDFDC, 0x8444, 0xDFDD, 0x842B, + 0xDFDE, 0x8460, 0xDFDF, 0x8454, 0xDFE0, 0x846E, 0xDFE1, 0x8450, + 0xDFE2, 0x870B, 0xDFE3, 0x8704, 0xDFE4, 0x86F7, 0xDFE5, 0x870C, + 0xDFE6, 0x86FA, 0xDFE7, 0x86D6, 0xDFE8, 0x86F5, 0xDFE9, 0x874D, + 0xDFEA, 0x86F8, 0xDFEB, 0x870E, 0xDFEC, 0x8709, 0xDFED, 0x8701, + 0xDFEE, 0x86F6, 0xDFEF, 0x870D, 0xDFF0, 0x8705, 0xDFF1, 0x88D6, + 0xDFF2, 0x88CB, 0xDFF3, 0x88CD, 0xDFF4, 0x88CE, 0xDFF5, 0x88DE, + 0xDFF6, 0x88DB, 0xDFF7, 0x88DA, 0xDFF8, 0x88CC, 0xDFF9, 0x88D0, + 0xDFFA, 0x8985, 0xDFFB, 0x899B, 0xDFFC, 0x89DF, 0xDFFD, 0x89E5, + 0xDFFE, 0x89E4, 0xE040, 0x89E1, 0xE041, 0x89E0, 0xE042, 0x89E2, + 0xE043, 0x89DC, 0xE044, 0x89E6, 0xE045, 0x8A76, 0xE046, 0x8A86, + 0xE047, 0x8A7F, 0xE048, 0x8A61, 0xE049, 0x8A3F, 0xE04A, 0x8A77, + 0xE04B, 0x8A82, 0xE04C, 0x8A84, 0xE04D, 0x8A75, 0xE04E, 0x8A83, + 0xE04F, 0x8A81, 0xE050, 0x8A74, 0xE051, 0x8A7A, 0xE052, 0x8C3C, + 0xE053, 0x8C4B, 0xE054, 0x8C4A, 0xE055, 0x8C65, 0xE056, 0x8C64, + 0xE057, 0x8C66, 0xE058, 0x8C86, 0xE059, 0x8C84, 0xE05A, 0x8C85, + 0xE05B, 0x8CCC, 0xE05C, 0x8D68, 0xE05D, 0x8D69, 0xE05E, 0x8D91, + 0xE05F, 0x8D8C, 0xE060, 0x8D8E, 0xE061, 0x8D8F, 0xE062, 0x8D8D, + 0xE063, 0x8D93, 0xE064, 0x8D94, 0xE065, 0x8D90, 0xE066, 0x8D92, + 0xE067, 0x8DF0, 0xE068, 0x8DE0, 0xE069, 0x8DEC, 0xE06A, 0x8DF1, + 0xE06B, 0x8DEE, 0xE06C, 0x8DD0, 0xE06D, 0x8DE9, 0xE06E, 0x8DE3, + 0xE06F, 0x8DE2, 0xE070, 0x8DE7, 0xE071, 0x8DF2, 0xE072, 0x8DEB, + 0xE073, 0x8DF4, 0xE074, 0x8F06, 0xE075, 0x8EFF, 0xE076, 0x8F01, + 0xE077, 0x8F00, 0xE078, 0x8F05, 0xE079, 0x8F07, 0xE07A, 0x8F08, + 0xE07B, 0x8F02, 0xE07C, 0x8F0B, 0xE07D, 0x9052, 0xE07E, 0x903F, + 0xE0A1, 0x9044, 0xE0A2, 0x9049, 0xE0A3, 0x903D, 0xE0A4, 0x9110, + 0xE0A5, 0x910D, 0xE0A6, 0x910F, 0xE0A7, 0x9111, 0xE0A8, 0x9116, + 0xE0A9, 0x9114, 0xE0AA, 0x910B, 0xE0AB, 0x910E, 0xE0AC, 0x916E, + 0xE0AD, 0x916F, 0xE0AE, 0x9248, 0xE0AF, 0x9252, 0xE0B0, 0x9230, + 0xE0B1, 0x923A, 0xE0B2, 0x9266, 0xE0B3, 0x9233, 0xE0B4, 0x9265, + 0xE0B5, 0x925E, 0xE0B6, 0x9283, 0xE0B7, 0x922E, 0xE0B8, 0x924A, + 0xE0B9, 0x9246, 0xE0BA, 0x926D, 0xE0BB, 0x926C, 0xE0BC, 0x924F, + 0xE0BD, 0x9260, 0xE0BE, 0x9267, 0xE0BF, 0x926F, 0xE0C0, 0x9236, + 0xE0C1, 0x9261, 0xE0C2, 0x9270, 0xE0C3, 0x9231, 0xE0C4, 0x9254, + 0xE0C5, 0x9263, 0xE0C6, 0x9250, 0xE0C7, 0x9272, 0xE0C8, 0x924E, + 0xE0C9, 0x9253, 0xE0CA, 0x924C, 0xE0CB, 0x9256, 0xE0CC, 0x9232, + 0xE0CD, 0x959F, 0xE0CE, 0x959C, 0xE0CF, 0x959E, 0xE0D0, 0x959B, + 0xE0D1, 0x9692, 0xE0D2, 0x9693, 0xE0D3, 0x9691, 0xE0D4, 0x9697, + 0xE0D5, 0x96CE, 0xE0D6, 0x96FA, 0xE0D7, 0x96FD, 0xE0D8, 0x96F8, + 0xE0D9, 0x96F5, 0xE0DA, 0x9773, 0xE0DB, 0x9777, 0xE0DC, 0x9778, + 0xE0DD, 0x9772, 0xE0DE, 0x980F, 0xE0DF, 0x980D, 0xE0E0, 0x980E, + 0xE0E1, 0x98AC, 0xE0E2, 0x98F6, 0xE0E3, 0x98F9, 0xE0E4, 0x99AF, + 0xE0E5, 0x99B2, 0xE0E6, 0x99B0, 0xE0E7, 0x99B5, 0xE0E8, 0x9AAD, + 0xE0E9, 0x9AAB, 0xE0EA, 0x9B5B, 0xE0EB, 0x9CEA, 0xE0EC, 0x9CED, + 0xE0ED, 0x9CE7, 0xE0EE, 0x9E80, 0xE0EF, 0x9EFD, 0xE0F0, 0x50E6, + 0xE0F1, 0x50D4, 0xE0F2, 0x50D7, 0xE0F3, 0x50E8, 0xE0F4, 0x50F3, + 0xE0F5, 0x50DB, 0xE0F6, 0x50EA, 0xE0F7, 0x50DD, 0xE0F8, 0x50E4, + 0xE0F9, 0x50D3, 0xE0FA, 0x50EC, 0xE0FB, 0x50F0, 0xE0FC, 0x50EF, + 0xE0FD, 0x50E3, 0xE0FE, 0x50E0, 0xE140, 0x51D8, 0xE141, 0x5280, + 0xE142, 0x5281, 0xE143, 0x52E9, 0xE144, 0x52EB, 0xE145, 0x5330, + 0xE146, 0x53AC, 0xE147, 0x5627, 0xE148, 0x5615, 0xE149, 0x560C, + 0xE14A, 0x5612, 0xE14B, 0x55FC, 0xE14C, 0x560F, 0xE14D, 0x561C, + 0xE14E, 0x5601, 0xE14F, 0x5613, 0xE150, 0x5602, 0xE151, 0x55FA, + 0xE152, 0x561D, 0xE153, 0x5604, 0xE154, 0x55FF, 0xE155, 0x55F9, + 0xE156, 0x5889, 0xE157, 0x587C, 0xE158, 0x5890, 0xE159, 0x5898, + 0xE15A, 0x5886, 0xE15B, 0x5881, 0xE15C, 0x587F, 0xE15D, 0x5874, + 0xE15E, 0x588B, 0xE15F, 0x587A, 0xE160, 0x5887, 0xE161, 0x5891, + 0xE162, 0x588E, 0xE163, 0x5876, 0xE164, 0x5882, 0xE165, 0x5888, + 0xE166, 0x587B, 0xE167, 0x5894, 0xE168, 0x588F, 0xE169, 0x58FE, + 0xE16A, 0x596B, 0xE16B, 0x5ADC, 0xE16C, 0x5AEE, 0xE16D, 0x5AE5, + 0xE16E, 0x5AD5, 0xE16F, 0x5AEA, 0xE170, 0x5ADA, 0xE171, 0x5AED, + 0xE172, 0x5AEB, 0xE173, 0x5AF3, 0xE174, 0x5AE2, 0xE175, 0x5AE0, + 0xE176, 0x5ADB, 0xE177, 0x5AEC, 0xE178, 0x5ADE, 0xE179, 0x5ADD, + 0xE17A, 0x5AD9, 0xE17B, 0x5AE8, 0xE17C, 0x5ADF, 0xE17D, 0x5B77, + 0xE17E, 0x5BE0, 0xE1A1, 0x5BE3, 0xE1A2, 0x5C63, 0xE1A3, 0x5D82, + 0xE1A4, 0x5D80, 0xE1A5, 0x5D7D, 0xE1A6, 0x5D86, 0xE1A7, 0x5D7A, + 0xE1A8, 0x5D81, 0xE1A9, 0x5D77, 0xE1AA, 0x5D8A, 0xE1AB, 0x5D89, + 0xE1AC, 0x5D88, 0xE1AD, 0x5D7E, 0xE1AE, 0x5D7C, 0xE1AF, 0x5D8D, + 0xE1B0, 0x5D79, 0xE1B1, 0x5D7F, 0xE1B2, 0x5E58, 0xE1B3, 0x5E59, + 0xE1B4, 0x5E53, 0xE1B5, 0x5ED8, 0xE1B6, 0x5ED1, 0xE1B7, 0x5ED7, + 0xE1B8, 0x5ECE, 0xE1B9, 0x5EDC, 0xE1BA, 0x5ED5, 0xE1BB, 0x5ED9, + 0xE1BC, 0x5ED2, 0xE1BD, 0x5ED4, 0xE1BE, 0x5F44, 0xE1BF, 0x5F43, + 0xE1C0, 0x5F6F, 0xE1C1, 0x5FB6, 0xE1C2, 0x612C, 0xE1C3, 0x6128, + 0xE1C4, 0x6141, 0xE1C5, 0x615E, 0xE1C6, 0x6171, 0xE1C7, 0x6173, + 0xE1C8, 0x6152, 0xE1C9, 0x6153, 0xE1CA, 0x6172, 0xE1CB, 0x616C, + 0xE1CC, 0x6180, 0xE1CD, 0x6174, 0xE1CE, 0x6154, 0xE1CF, 0x617A, + 0xE1D0, 0x615B, 0xE1D1, 0x6165, 0xE1D2, 0x613B, 0xE1D3, 0x616A, + 0xE1D4, 0x6161, 0xE1D5, 0x6156, 0xE1D6, 0x6229, 0xE1D7, 0x6227, + 0xE1D8, 0x622B, 0xE1D9, 0x642B, 0xE1DA, 0x644D, 0xE1DB, 0x645B, + 0xE1DC, 0x645D, 0xE1DD, 0x6474, 0xE1DE, 0x6476, 0xE1DF, 0x6472, + 0xE1E0, 0x6473, 0xE1E1, 0x647D, 0xE1E2, 0x6475, 0xE1E3, 0x6466, + 0xE1E4, 0x64A6, 0xE1E5, 0x644E, 0xE1E6, 0x6482, 0xE1E7, 0x645E, + 0xE1E8, 0x645C, 0xE1E9, 0x644B, 0xE1EA, 0x6453, 0xE1EB, 0x6460, + 0xE1EC, 0x6450, 0xE1ED, 0x647F, 0xE1EE, 0x643F, 0xE1EF, 0x646C, + 0xE1F0, 0x646B, 0xE1F1, 0x6459, 0xE1F2, 0x6465, 0xE1F3, 0x6477, + 0xE1F4, 0x6573, 0xE1F5, 0x65A0, 0xE1F6, 0x66A1, 0xE1F7, 0x66A0, + 0xE1F8, 0x669F, 0xE1F9, 0x6705, 0xE1FA, 0x6704, 0xE1FB, 0x6722, + 0xE1FC, 0x69B1, 0xE1FD, 0x69B6, 0xE1FE, 0x69C9, 0xE240, 0x69A0, + 0xE241, 0x69CE, 0xE242, 0x6996, 0xE243, 0x69B0, 0xE244, 0x69AC, + 0xE245, 0x69BC, 0xE246, 0x6991, 0xE247, 0x6999, 0xE248, 0x698E, + 0xE249, 0x69A7, 0xE24A, 0x698D, 0xE24B, 0x69A9, 0xE24C, 0x69BE, + 0xE24D, 0x69AF, 0xE24E, 0x69BF, 0xE24F, 0x69C4, 0xE250, 0x69BD, + 0xE251, 0x69A4, 0xE252, 0x69D4, 0xE253, 0x69B9, 0xE254, 0x69CA, + 0xE255, 0x699A, 0xE256, 0x69CF, 0xE257, 0x69B3, 0xE258, 0x6993, + 0xE259, 0x69AA, 0xE25A, 0x69A1, 0xE25B, 0x699E, 0xE25C, 0x69D9, + 0xE25D, 0x6997, 0xE25E, 0x6990, 0xE25F, 0x69C2, 0xE260, 0x69B5, + 0xE261, 0x69A5, 0xE262, 0x69C6, 0xE263, 0x6B4A, 0xE264, 0x6B4D, + 0xE265, 0x6B4B, 0xE266, 0x6B9E, 0xE267, 0x6B9F, 0xE268, 0x6BA0, + 0xE269, 0x6BC3, 0xE26A, 0x6BC4, 0xE26B, 0x6BFE, 0xE26C, 0x6ECE, + 0xE26D, 0x6EF5, 0xE26E, 0x6EF1, 0xE26F, 0x6F03, 0xE270, 0x6F25, + 0xE271, 0x6EF8, 0xE272, 0x6F37, 0xE273, 0x6EFB, 0xE274, 0x6F2E, + 0xE275, 0x6F09, 0xE276, 0x6F4E, 0xE277, 0x6F19, 0xE278, 0x6F1A, + 0xE279, 0x6F27, 0xE27A, 0x6F18, 0xE27B, 0x6F3B, 0xE27C, 0x6F12, + 0xE27D, 0x6EED, 0xE27E, 0x6F0A, 0xE2A1, 0x6F36, 0xE2A2, 0x6F73, + 0xE2A3, 0x6EF9, 0xE2A4, 0x6EEE, 0xE2A5, 0x6F2D, 0xE2A6, 0x6F40, + 0xE2A7, 0x6F30, 0xE2A8, 0x6F3C, 0xE2A9, 0x6F35, 0xE2AA, 0x6EEB, + 0xE2AB, 0x6F07, 0xE2AC, 0x6F0E, 0xE2AD, 0x6F43, 0xE2AE, 0x6F05, + 0xE2AF, 0x6EFD, 0xE2B0, 0x6EF6, 0xE2B1, 0x6F39, 0xE2B2, 0x6F1C, + 0xE2B3, 0x6EFC, 0xE2B4, 0x6F3A, 0xE2B5, 0x6F1F, 0xE2B6, 0x6F0D, + 0xE2B7, 0x6F1E, 0xE2B8, 0x6F08, 0xE2B9, 0x6F21, 0xE2BA, 0x7187, + 0xE2BB, 0x7190, 0xE2BC, 0x7189, 0xE2BD, 0x7180, 0xE2BE, 0x7185, + 0xE2BF, 0x7182, 0xE2C0, 0x718F, 0xE2C1, 0x717B, 0xE2C2, 0x7186, + 0xE2C3, 0x7181, 0xE2C4, 0x7197, 0xE2C5, 0x7244, 0xE2C6, 0x7253, + 0xE2C7, 0x7297, 0xE2C8, 0x7295, 0xE2C9, 0x7293, 0xE2CA, 0x7343, + 0xE2CB, 0x734D, 0xE2CC, 0x7351, 0xE2CD, 0x734C, 0xE2CE, 0x7462, + 0xE2CF, 0x7473, 0xE2D0, 0x7471, 0xE2D1, 0x7475, 0xE2D2, 0x7472, + 0xE2D3, 0x7467, 0xE2D4, 0x746E, 0xE2D5, 0x7500, 0xE2D6, 0x7502, + 0xE2D7, 0x7503, 0xE2D8, 0x757D, 0xE2D9, 0x7590, 0xE2DA, 0x7616, + 0xE2DB, 0x7608, 0xE2DC, 0x760C, 0xE2DD, 0x7615, 0xE2DE, 0x7611, + 0xE2DF, 0x760A, 0xE2E0, 0x7614, 0xE2E1, 0x76B8, 0xE2E2, 0x7781, + 0xE2E3, 0x777C, 0xE2E4, 0x7785, 0xE2E5, 0x7782, 0xE2E6, 0x776E, + 0xE2E7, 0x7780, 0xE2E8, 0x776F, 0xE2E9, 0x777E, 0xE2EA, 0x7783, + 0xE2EB, 0x78B2, 0xE2EC, 0x78AA, 0xE2ED, 0x78B4, 0xE2EE, 0x78AD, + 0xE2EF, 0x78A8, 0xE2F0, 0x787E, 0xE2F1, 0x78AB, 0xE2F2, 0x789E, + 0xE2F3, 0x78A5, 0xE2F4, 0x78A0, 0xE2F5, 0x78AC, 0xE2F6, 0x78A2, + 0xE2F7, 0x78A4, 0xE2F8, 0x7998, 0xE2F9, 0x798A, 0xE2FA, 0x798B, + 0xE2FB, 0x7996, 0xE2FC, 0x7995, 0xE2FD, 0x7994, 0xE2FE, 0x7993, + 0xE340, 0x7997, 0xE341, 0x7988, 0xE342, 0x7992, 0xE343, 0x7990, + 0xE344, 0x7A2B, 0xE345, 0x7A4A, 0xE346, 0x7A30, 0xE347, 0x7A2F, + 0xE348, 0x7A28, 0xE349, 0x7A26, 0xE34A, 0x7AA8, 0xE34B, 0x7AAB, + 0xE34C, 0x7AAC, 0xE34D, 0x7AEE, 0xE34E, 0x7B88, 0xE34F, 0x7B9C, + 0xE350, 0x7B8A, 0xE351, 0x7B91, 0xE352, 0x7B90, 0xE353, 0x7B96, + 0xE354, 0x7B8D, 0xE355, 0x7B8C, 0xE356, 0x7B9B, 0xE357, 0x7B8E, + 0xE358, 0x7B85, 0xE359, 0x7B98, 0xE35A, 0x5284, 0xE35B, 0x7B99, + 0xE35C, 0x7BA4, 0xE35D, 0x7B82, 0xE35E, 0x7CBB, 0xE35F, 0x7CBF, + 0xE360, 0x7CBC, 0xE361, 0x7CBA, 0xE362, 0x7DA7, 0xE363, 0x7DB7, + 0xE364, 0x7DC2, 0xE365, 0x7DA3, 0xE366, 0x7DAA, 0xE367, 0x7DC1, + 0xE368, 0x7DC0, 0xE369, 0x7DC5, 0xE36A, 0x7D9D, 0xE36B, 0x7DCE, + 0xE36C, 0x7DC4, 0xE36D, 0x7DC6, 0xE36E, 0x7DCB, 0xE36F, 0x7DCC, + 0xE370, 0x7DAF, 0xE371, 0x7DB9, 0xE372, 0x7D96, 0xE373, 0x7DBC, + 0xE374, 0x7D9F, 0xE375, 0x7DA6, 0xE376, 0x7DAE, 0xE377, 0x7DA9, + 0xE378, 0x7DA1, 0xE379, 0x7DC9, 0xE37A, 0x7F73, 0xE37B, 0x7FE2, + 0xE37C, 0x7FE3, 0xE37D, 0x7FE5, 0xE37E, 0x7FDE, 0xE3A1, 0x8024, + 0xE3A2, 0x805D, 0xE3A3, 0x805C, 0xE3A4, 0x8189, 0xE3A5, 0x8186, + 0xE3A6, 0x8183, 0xE3A7, 0x8187, 0xE3A8, 0x818D, 0xE3A9, 0x818C, + 0xE3AA, 0x818B, 0xE3AB, 0x8215, 0xE3AC, 0x8497, 0xE3AD, 0x84A4, + 0xE3AE, 0x84A1, 0xE3AF, 0x849F, 0xE3B0, 0x84BA, 0xE3B1, 0x84CE, + 0xE3B2, 0x84C2, 0xE3B3, 0x84AC, 0xE3B4, 0x84AE, 0xE3B5, 0x84AB, + 0xE3B6, 0x84B9, 0xE3B7, 0x84B4, 0xE3B8, 0x84C1, 0xE3B9, 0x84CD, + 0xE3BA, 0x84AA, 0xE3BB, 0x849A, 0xE3BC, 0x84B1, 0xE3BD, 0x84D0, + 0xE3BE, 0x849D, 0xE3BF, 0x84A7, 0xE3C0, 0x84BB, 0xE3C1, 0x84A2, + 0xE3C2, 0x8494, 0xE3C3, 0x84C7, 0xE3C4, 0x84CC, 0xE3C5, 0x849B, + 0xE3C6, 0x84A9, 0xE3C7, 0x84AF, 0xE3C8, 0x84A8, 0xE3C9, 0x84D6, + 0xE3CA, 0x8498, 0xE3CB, 0x84B6, 0xE3CC, 0x84CF, 0xE3CD, 0x84A0, + 0xE3CE, 0x84D7, 0xE3CF, 0x84D4, 0xE3D0, 0x84D2, 0xE3D1, 0x84DB, + 0xE3D2, 0x84B0, 0xE3D3, 0x8491, 0xE3D4, 0x8661, 0xE3D5, 0x8733, + 0xE3D6, 0x8723, 0xE3D7, 0x8728, 0xE3D8, 0x876B, 0xE3D9, 0x8740, + 0xE3DA, 0x872E, 0xE3DB, 0x871E, 0xE3DC, 0x8721, 0xE3DD, 0x8719, + 0xE3DE, 0x871B, 0xE3DF, 0x8743, 0xE3E0, 0x872C, 0xE3E1, 0x8741, + 0xE3E2, 0x873E, 0xE3E3, 0x8746, 0xE3E4, 0x8720, 0xE3E5, 0x8732, + 0xE3E6, 0x872A, 0xE3E7, 0x872D, 0xE3E8, 0x873C, 0xE3E9, 0x8712, + 0xE3EA, 0x873A, 0xE3EB, 0x8731, 0xE3EC, 0x8735, 0xE3ED, 0x8742, + 0xE3EE, 0x8726, 0xE3EF, 0x8727, 0xE3F0, 0x8738, 0xE3F1, 0x8724, + 0xE3F2, 0x871A, 0xE3F3, 0x8730, 0xE3F4, 0x8711, 0xE3F5, 0x88F7, + 0xE3F6, 0x88E7, 0xE3F7, 0x88F1, 0xE3F8, 0x88F2, 0xE3F9, 0x88FA, + 0xE3FA, 0x88FE, 0xE3FB, 0x88EE, 0xE3FC, 0x88FC, 0xE3FD, 0x88F6, + 0xE3FE, 0x88FB, 0xE440, 0x88F0, 0xE441, 0x88EC, 0xE442, 0x88EB, + 0xE443, 0x899D, 0xE444, 0x89A1, 0xE445, 0x899F, 0xE446, 0x899E, + 0xE447, 0x89E9, 0xE448, 0x89EB, 0xE449, 0x89E8, 0xE44A, 0x8AAB, + 0xE44B, 0x8A99, 0xE44C, 0x8A8B, 0xE44D, 0x8A92, 0xE44E, 0x8A8F, + 0xE44F, 0x8A96, 0xE450, 0x8C3D, 0xE451, 0x8C68, 0xE452, 0x8C69, + 0xE453, 0x8CD5, 0xE454, 0x8CCF, 0xE455, 0x8CD7, 0xE456, 0x8D96, + 0xE457, 0x8E09, 0xE458, 0x8E02, 0xE459, 0x8DFF, 0xE45A, 0x8E0D, + 0xE45B, 0x8DFD, 0xE45C, 0x8E0A, 0xE45D, 0x8E03, 0xE45E, 0x8E07, + 0xE45F, 0x8E06, 0xE460, 0x8E05, 0xE461, 0x8DFE, 0xE462, 0x8E00, + 0xE463, 0x8E04, 0xE464, 0x8F10, 0xE465, 0x8F11, 0xE466, 0x8F0E, + 0xE467, 0x8F0D, 0xE468, 0x9123, 0xE469, 0x911C, 0xE46A, 0x9120, + 0xE46B, 0x9122, 0xE46C, 0x911F, 0xE46D, 0x911D, 0xE46E, 0x911A, + 0xE46F, 0x9124, 0xE470, 0x9121, 0xE471, 0x911B, 0xE472, 0x917A, + 0xE473, 0x9172, 0xE474, 0x9179, 0xE475, 0x9173, 0xE476, 0x92A5, + 0xE477, 0x92A4, 0xE478, 0x9276, 0xE479, 0x929B, 0xE47A, 0x927A, + 0xE47B, 0x92A0, 0xE47C, 0x9294, 0xE47D, 0x92AA, 0xE47E, 0x928D, + 0xE4A1, 0x92A6, 0xE4A2, 0x929A, 0xE4A3, 0x92AB, 0xE4A4, 0x9279, + 0xE4A5, 0x9297, 0xE4A6, 0x927F, 0xE4A7, 0x92A3, 0xE4A8, 0x92EE, + 0xE4A9, 0x928E, 0xE4AA, 0x9282, 0xE4AB, 0x9295, 0xE4AC, 0x92A2, + 0xE4AD, 0x927D, 0xE4AE, 0x9288, 0xE4AF, 0x92A1, 0xE4B0, 0x928A, + 0xE4B1, 0x9286, 0xE4B2, 0x928C, 0xE4B3, 0x9299, 0xE4B4, 0x92A7, + 0xE4B5, 0x927E, 0xE4B6, 0x9287, 0xE4B7, 0x92A9, 0xE4B8, 0x929D, + 0xE4B9, 0x928B, 0xE4BA, 0x922D, 0xE4BB, 0x969E, 0xE4BC, 0x96A1, + 0xE4BD, 0x96FF, 0xE4BE, 0x9758, 0xE4BF, 0x977D, 0xE4C0, 0x977A, + 0xE4C1, 0x977E, 0xE4C2, 0x9783, 0xE4C3, 0x9780, 0xE4C4, 0x9782, + 0xE4C5, 0x977B, 0xE4C6, 0x9784, 0xE4C7, 0x9781, 0xE4C8, 0x977F, + 0xE4C9, 0x97CE, 0xE4CA, 0x97CD, 0xE4CB, 0x9816, 0xE4CC, 0x98AD, + 0xE4CD, 0x98AE, 0xE4CE, 0x9902, 0xE4CF, 0x9900, 0xE4D0, 0x9907, + 0xE4D1, 0x999D, 0xE4D2, 0x999C, 0xE4D3, 0x99C3, 0xE4D4, 0x99B9, + 0xE4D5, 0x99BB, 0xE4D6, 0x99BA, 0xE4D7, 0x99C2, 0xE4D8, 0x99BD, + 0xE4D9, 0x99C7, 0xE4DA, 0x9AB1, 0xE4DB, 0x9AE3, 0xE4DC, 0x9AE7, + 0xE4DD, 0x9B3E, 0xE4DE, 0x9B3F, 0xE4DF, 0x9B60, 0xE4E0, 0x9B61, + 0xE4E1, 0x9B5F, 0xE4E2, 0x9CF1, 0xE4E3, 0x9CF2, 0xE4E4, 0x9CF5, + 0xE4E5, 0x9EA7, 0xE4E6, 0x50FF, 0xE4E7, 0x5103, 0xE4E8, 0x5130, + 0xE4E9, 0x50F8, 0xE4EA, 0x5106, 0xE4EB, 0x5107, 0xE4EC, 0x50F6, + 0xE4ED, 0x50FE, 0xE4EE, 0x510B, 0xE4EF, 0x510C, 0xE4F0, 0x50FD, + 0xE4F1, 0x510A, 0xE4F2, 0x528B, 0xE4F3, 0x528C, 0xE4F4, 0x52F1, + 0xE4F5, 0x52EF, 0xE4F6, 0x5648, 0xE4F7, 0x5642, 0xE4F8, 0x564C, + 0xE4F9, 0x5635, 0xE4FA, 0x5641, 0xE4FB, 0x564A, 0xE4FC, 0x5649, + 0xE4FD, 0x5646, 0xE4FE, 0x5658, 0xE540, 0x565A, 0xE541, 0x5640, + 0xE542, 0x5633, 0xE543, 0x563D, 0xE544, 0x562C, 0xE545, 0x563E, + 0xE546, 0x5638, 0xE547, 0x562A, 0xE548, 0x563A, 0xE549, 0x571A, + 0xE54A, 0x58AB, 0xE54B, 0x589D, 0xE54C, 0x58B1, 0xE54D, 0x58A0, + 0xE54E, 0x58A3, 0xE54F, 0x58AF, 0xE550, 0x58AC, 0xE551, 0x58A5, + 0xE552, 0x58A1, 0xE553, 0x58FF, 0xE554, 0x5AFF, 0xE555, 0x5AF4, + 0xE556, 0x5AFD, 0xE557, 0x5AF7, 0xE558, 0x5AF6, 0xE559, 0x5B03, + 0xE55A, 0x5AF8, 0xE55B, 0x5B02, 0xE55C, 0x5AF9, 0xE55D, 0x5B01, + 0xE55E, 0x5B07, 0xE55F, 0x5B05, 0xE560, 0x5B0F, 0xE561, 0x5C67, + 0xE562, 0x5D99, 0xE563, 0x5D97, 0xE564, 0x5D9F, 0xE565, 0x5D92, + 0xE566, 0x5DA2, 0xE567, 0x5D93, 0xE568, 0x5D95, 0xE569, 0x5DA0, + 0xE56A, 0x5D9C, 0xE56B, 0x5DA1, 0xE56C, 0x5D9A, 0xE56D, 0x5D9E, + 0xE56E, 0x5E69, 0xE56F, 0x5E5D, 0xE570, 0x5E60, 0xE571, 0x5E5C, + 0xE572, 0x7DF3, 0xE573, 0x5EDB, 0xE574, 0x5EDE, 0xE575, 0x5EE1, + 0xE576, 0x5F49, 0xE577, 0x5FB2, 0xE578, 0x618B, 0xE579, 0x6183, + 0xE57A, 0x6179, 0xE57B, 0x61B1, 0xE57C, 0x61B0, 0xE57D, 0x61A2, + 0xE57E, 0x6189, 0xE5A1, 0x619B, 0xE5A2, 0x6193, 0xE5A3, 0x61AF, + 0xE5A4, 0x61AD, 0xE5A5, 0x619F, 0xE5A6, 0x6192, 0xE5A7, 0x61AA, + 0xE5A8, 0x61A1, 0xE5A9, 0x618D, 0xE5AA, 0x6166, 0xE5AB, 0x61B3, + 0xE5AC, 0x622D, 0xE5AD, 0x646E, 0xE5AE, 0x6470, 0xE5AF, 0x6496, + 0xE5B0, 0x64A0, 0xE5B1, 0x6485, 0xE5B2, 0x6497, 0xE5B3, 0x649C, + 0xE5B4, 0x648F, 0xE5B5, 0x648B, 0xE5B6, 0x648A, 0xE5B7, 0x648C, + 0xE5B8, 0x64A3, 0xE5B9, 0x649F, 0xE5BA, 0x6468, 0xE5BB, 0x64B1, + 0xE5BC, 0x6498, 0xE5BD, 0x6576, 0xE5BE, 0x657A, 0xE5BF, 0x6579, + 0xE5C0, 0x657B, 0xE5C1, 0x65B2, 0xE5C2, 0x65B3, 0xE5C3, 0x66B5, + 0xE5C4, 0x66B0, 0xE5C5, 0x66A9, 0xE5C6, 0x66B2, 0xE5C7, 0x66B7, + 0xE5C8, 0x66AA, 0xE5C9, 0x66AF, 0xE5CA, 0x6A00, 0xE5CB, 0x6A06, + 0xE5CC, 0x6A17, 0xE5CD, 0x69E5, 0xE5CE, 0x69F8, 0xE5CF, 0x6A15, + 0xE5D0, 0x69F1, 0xE5D1, 0x69E4, 0xE5D2, 0x6A20, 0xE5D3, 0x69FF, + 0xE5D4, 0x69EC, 0xE5D5, 0x69E2, 0xE5D6, 0x6A1B, 0xE5D7, 0x6A1D, + 0xE5D8, 0x69FE, 0xE5D9, 0x6A27, 0xE5DA, 0x69F2, 0xE5DB, 0x69EE, + 0xE5DC, 0x6A14, 0xE5DD, 0x69F7, 0xE5DE, 0x69E7, 0xE5DF, 0x6A40, + 0xE5E0, 0x6A08, 0xE5E1, 0x69E6, 0xE5E2, 0x69FB, 0xE5E3, 0x6A0D, + 0xE5E4, 0x69FC, 0xE5E5, 0x69EB, 0xE5E6, 0x6A09, 0xE5E7, 0x6A04, + 0xE5E8, 0x6A18, 0xE5E9, 0x6A25, 0xE5EA, 0x6A0F, 0xE5EB, 0x69F6, + 0xE5EC, 0x6A26, 0xE5ED, 0x6A07, 0xE5EE, 0x69F4, 0xE5EF, 0x6A16, + 0xE5F0, 0x6B51, 0xE5F1, 0x6BA5, 0xE5F2, 0x6BA3, 0xE5F3, 0x6BA2, + 0xE5F4, 0x6BA6, 0xE5F5, 0x6C01, 0xE5F6, 0x6C00, 0xE5F7, 0x6BFF, + 0xE5F8, 0x6C02, 0xE5F9, 0x6F41, 0xE5FA, 0x6F26, 0xE5FB, 0x6F7E, + 0xE5FC, 0x6F87, 0xE5FD, 0x6FC6, 0xE5FE, 0x6F92, 0xE640, 0x6F8D, + 0xE641, 0x6F89, 0xE642, 0x6F8C, 0xE643, 0x6F62, 0xE644, 0x6F4F, + 0xE645, 0x6F85, 0xE646, 0x6F5A, 0xE647, 0x6F96, 0xE648, 0x6F76, + 0xE649, 0x6F6C, 0xE64A, 0x6F82, 0xE64B, 0x6F55, 0xE64C, 0x6F72, + 0xE64D, 0x6F52, 0xE64E, 0x6F50, 0xE64F, 0x6F57, 0xE650, 0x6F94, + 0xE651, 0x6F93, 0xE652, 0x6F5D, 0xE653, 0x6F00, 0xE654, 0x6F61, + 0xE655, 0x6F6B, 0xE656, 0x6F7D, 0xE657, 0x6F67, 0xE658, 0x6F90, + 0xE659, 0x6F53, 0xE65A, 0x6F8B, 0xE65B, 0x6F69, 0xE65C, 0x6F7F, + 0xE65D, 0x6F95, 0xE65E, 0x6F63, 0xE65F, 0x6F77, 0xE660, 0x6F6A, + 0xE661, 0x6F7B, 0xE662, 0x71B2, 0xE663, 0x71AF, 0xE664, 0x719B, + 0xE665, 0x71B0, 0xE666, 0x71A0, 0xE667, 0x719A, 0xE668, 0x71A9, + 0xE669, 0x71B5, 0xE66A, 0x719D, 0xE66B, 0x71A5, 0xE66C, 0x719E, + 0xE66D, 0x71A4, 0xE66E, 0x71A1, 0xE66F, 0x71AA, 0xE670, 0x719C, + 0xE671, 0x71A7, 0xE672, 0x71B3, 0xE673, 0x7298, 0xE674, 0x729A, + 0xE675, 0x7358, 0xE676, 0x7352, 0xE677, 0x735E, 0xE678, 0x735F, + 0xE679, 0x7360, 0xE67A, 0x735D, 0xE67B, 0x735B, 0xE67C, 0x7361, + 0xE67D, 0x735A, 0xE67E, 0x7359, 0xE6A1, 0x7362, 0xE6A2, 0x7487, + 0xE6A3, 0x7489, 0xE6A4, 0x748A, 0xE6A5, 0x7486, 0xE6A6, 0x7481, + 0xE6A7, 0x747D, 0xE6A8, 0x7485, 0xE6A9, 0x7488, 0xE6AA, 0x747C, + 0xE6AB, 0x7479, 0xE6AC, 0x7508, 0xE6AD, 0x7507, 0xE6AE, 0x757E, + 0xE6AF, 0x7625, 0xE6B0, 0x761E, 0xE6B1, 0x7619, 0xE6B2, 0x761D, + 0xE6B3, 0x761C, 0xE6B4, 0x7623, 0xE6B5, 0x761A, 0xE6B6, 0x7628, + 0xE6B7, 0x761B, 0xE6B8, 0x769C, 0xE6B9, 0x769D, 0xE6BA, 0x769E, + 0xE6BB, 0x769B, 0xE6BC, 0x778D, 0xE6BD, 0x778F, 0xE6BE, 0x7789, + 0xE6BF, 0x7788, 0xE6C0, 0x78CD, 0xE6C1, 0x78BB, 0xE6C2, 0x78CF, + 0xE6C3, 0x78CC, 0xE6C4, 0x78D1, 0xE6C5, 0x78CE, 0xE6C6, 0x78D4, + 0xE6C7, 0x78C8, 0xE6C8, 0x78C3, 0xE6C9, 0x78C4, 0xE6CA, 0x78C9, + 0xE6CB, 0x799A, 0xE6CC, 0x79A1, 0xE6CD, 0x79A0, 0xE6CE, 0x799C, + 0xE6CF, 0x79A2, 0xE6D0, 0x799B, 0xE6D1, 0x6B76, 0xE6D2, 0x7A39, + 0xE6D3, 0x7AB2, 0xE6D4, 0x7AB4, 0xE6D5, 0x7AB3, 0xE6D6, 0x7BB7, + 0xE6D7, 0x7BCB, 0xE6D8, 0x7BBE, 0xE6D9, 0x7BAC, 0xE6DA, 0x7BCE, + 0xE6DB, 0x7BAF, 0xE6DC, 0x7BB9, 0xE6DD, 0x7BCA, 0xE6DE, 0x7BB5, + 0xE6DF, 0x7CC5, 0xE6E0, 0x7CC8, 0xE6E1, 0x7CCC, 0xE6E2, 0x7CCB, + 0xE6E3, 0x7DF7, 0xE6E4, 0x7DDB, 0xE6E5, 0x7DEA, 0xE6E6, 0x7DE7, + 0xE6E7, 0x7DD7, 0xE6E8, 0x7DE1, 0xE6E9, 0x7E03, 0xE6EA, 0x7DFA, + 0xE6EB, 0x7DE6, 0xE6EC, 0x7DF6, 0xE6ED, 0x7DF1, 0xE6EE, 0x7DF0, + 0xE6EF, 0x7DEE, 0xE6F0, 0x7DDF, 0xE6F1, 0x7F76, 0xE6F2, 0x7FAC, + 0xE6F3, 0x7FB0, 0xE6F4, 0x7FAD, 0xE6F5, 0x7FED, 0xE6F6, 0x7FEB, + 0xE6F7, 0x7FEA, 0xE6F8, 0x7FEC, 0xE6F9, 0x7FE6, 0xE6FA, 0x7FE8, + 0xE6FB, 0x8064, 0xE6FC, 0x8067, 0xE6FD, 0x81A3, 0xE6FE, 0x819F, + 0xE740, 0x819E, 0xE741, 0x8195, 0xE742, 0x81A2, 0xE743, 0x8199, + 0xE744, 0x8197, 0xE745, 0x8216, 0xE746, 0x824F, 0xE747, 0x8253, + 0xE748, 0x8252, 0xE749, 0x8250, 0xE74A, 0x824E, 0xE74B, 0x8251, + 0xE74C, 0x8524, 0xE74D, 0x853B, 0xE74E, 0x850F, 0xE74F, 0x8500, + 0xE750, 0x8529, 0xE751, 0x850E, 0xE752, 0x8509, 0xE753, 0x850D, + 0xE754, 0x851F, 0xE755, 0x850A, 0xE756, 0x8527, 0xE757, 0x851C, + 0xE758, 0x84FB, 0xE759, 0x852B, 0xE75A, 0x84FA, 0xE75B, 0x8508, + 0xE75C, 0x850C, 0xE75D, 0x84F4, 0xE75E, 0x852A, 0xE75F, 0x84F2, + 0xE760, 0x8515, 0xE761, 0x84F7, 0xE762, 0x84EB, 0xE763, 0x84F3, + 0xE764, 0x84FC, 0xE765, 0x8512, 0xE766, 0x84EA, 0xE767, 0x84E9, + 0xE768, 0x8516, 0xE769, 0x84FE, 0xE76A, 0x8528, 0xE76B, 0x851D, + 0xE76C, 0x852E, 0xE76D, 0x8502, 0xE76E, 0x84FD, 0xE76F, 0x851E, + 0xE770, 0x84F6, 0xE771, 0x8531, 0xE772, 0x8526, 0xE773, 0x84E7, + 0xE774, 0x84E8, 0xE775, 0x84F0, 0xE776, 0x84EF, 0xE777, 0x84F9, + 0xE778, 0x8518, 0xE779, 0x8520, 0xE77A, 0x8530, 0xE77B, 0x850B, + 0xE77C, 0x8519, 0xE77D, 0x852F, 0xE77E, 0x8662, 0xE7A1, 0x8756, + 0xE7A2, 0x8763, 0xE7A3, 0x8764, 0xE7A4, 0x8777, 0xE7A5, 0x87E1, + 0xE7A6, 0x8773, 0xE7A7, 0x8758, 0xE7A8, 0x8754, 0xE7A9, 0x875B, + 0xE7AA, 0x8752, 0xE7AB, 0x8761, 0xE7AC, 0x875A, 0xE7AD, 0x8751, + 0xE7AE, 0x875E, 0xE7AF, 0x876D, 0xE7B0, 0x876A, 0xE7B1, 0x8750, + 0xE7B2, 0x874E, 0xE7B3, 0x875F, 0xE7B4, 0x875D, 0xE7B5, 0x876F, + 0xE7B6, 0x876C, 0xE7B7, 0x877A, 0xE7B8, 0x876E, 0xE7B9, 0x875C, + 0xE7BA, 0x8765, 0xE7BB, 0x874F, 0xE7BC, 0x877B, 0xE7BD, 0x8775, + 0xE7BE, 0x8762, 0xE7BF, 0x8767, 0xE7C0, 0x8769, 0xE7C1, 0x885A, + 0xE7C2, 0x8905, 0xE7C3, 0x890C, 0xE7C4, 0x8914, 0xE7C5, 0x890B, + 0xE7C6, 0x8917, 0xE7C7, 0x8918, 0xE7C8, 0x8919, 0xE7C9, 0x8906, + 0xE7CA, 0x8916, 0xE7CB, 0x8911, 0xE7CC, 0x890E, 0xE7CD, 0x8909, + 0xE7CE, 0x89A2, 0xE7CF, 0x89A4, 0xE7D0, 0x89A3, 0xE7D1, 0x89ED, + 0xE7D2, 0x89F0, 0xE7D3, 0x89EC, 0xE7D4, 0x8ACF, 0xE7D5, 0x8AC6, + 0xE7D6, 0x8AB8, 0xE7D7, 0x8AD3, 0xE7D8, 0x8AD1, 0xE7D9, 0x8AD4, + 0xE7DA, 0x8AD5, 0xE7DB, 0x8ABB, 0xE7DC, 0x8AD7, 0xE7DD, 0x8ABE, + 0xE7DE, 0x8AC0, 0xE7DF, 0x8AC5, 0xE7E0, 0x8AD8, 0xE7E1, 0x8AC3, + 0xE7E2, 0x8ABA, 0xE7E3, 0x8ABD, 0xE7E4, 0x8AD9, 0xE7E5, 0x8C3E, + 0xE7E6, 0x8C4D, 0xE7E7, 0x8C8F, 0xE7E8, 0x8CE5, 0xE7E9, 0x8CDF, + 0xE7EA, 0x8CD9, 0xE7EB, 0x8CE8, 0xE7EC, 0x8CDA, 0xE7ED, 0x8CDD, + 0xE7EE, 0x8CE7, 0xE7EF, 0x8DA0, 0xE7F0, 0x8D9C, 0xE7F1, 0x8DA1, + 0xE7F2, 0x8D9B, 0xE7F3, 0x8E20, 0xE7F4, 0x8E23, 0xE7F5, 0x8E25, + 0xE7F6, 0x8E24, 0xE7F7, 0x8E2E, 0xE7F8, 0x8E15, 0xE7F9, 0x8E1B, + 0xE7FA, 0x8E16, 0xE7FB, 0x8E11, 0xE7FC, 0x8E19, 0xE7FD, 0x8E26, + 0xE7FE, 0x8E27, 0xE840, 0x8E14, 0xE841, 0x8E12, 0xE842, 0x8E18, + 0xE843, 0x8E13, 0xE844, 0x8E1C, 0xE845, 0x8E17, 0xE846, 0x8E1A, + 0xE847, 0x8F2C, 0xE848, 0x8F24, 0xE849, 0x8F18, 0xE84A, 0x8F1A, + 0xE84B, 0x8F20, 0xE84C, 0x8F23, 0xE84D, 0x8F16, 0xE84E, 0x8F17, + 0xE84F, 0x9073, 0xE850, 0x9070, 0xE851, 0x906F, 0xE852, 0x9067, + 0xE853, 0x906B, 0xE854, 0x912F, 0xE855, 0x912B, 0xE856, 0x9129, + 0xE857, 0x912A, 0xE858, 0x9132, 0xE859, 0x9126, 0xE85A, 0x912E, + 0xE85B, 0x9185, 0xE85C, 0x9186, 0xE85D, 0x918A, 0xE85E, 0x9181, + 0xE85F, 0x9182, 0xE860, 0x9184, 0xE861, 0x9180, 0xE862, 0x92D0, + 0xE863, 0x92C3, 0xE864, 0x92C4, 0xE865, 0x92C0, 0xE866, 0x92D9, + 0xE867, 0x92B6, 0xE868, 0x92CF, 0xE869, 0x92F1, 0xE86A, 0x92DF, + 0xE86B, 0x92D8, 0xE86C, 0x92E9, 0xE86D, 0x92D7, 0xE86E, 0x92DD, + 0xE86F, 0x92CC, 0xE870, 0x92EF, 0xE871, 0x92C2, 0xE872, 0x92E8, + 0xE873, 0x92CA, 0xE874, 0x92C8, 0xE875, 0x92CE, 0xE876, 0x92E6, + 0xE877, 0x92CD, 0xE878, 0x92D5, 0xE879, 0x92C9, 0xE87A, 0x92E0, + 0xE87B, 0x92DE, 0xE87C, 0x92E7, 0xE87D, 0x92D1, 0xE87E, 0x92D3, + 0xE8A1, 0x92B5, 0xE8A2, 0x92E1, 0xE8A3, 0x92C6, 0xE8A4, 0x92B4, + 0xE8A5, 0x957C, 0xE8A6, 0x95AC, 0xE8A7, 0x95AB, 0xE8A8, 0x95AE, + 0xE8A9, 0x95B0, 0xE8AA, 0x96A4, 0xE8AB, 0x96A2, 0xE8AC, 0x96D3, + 0xE8AD, 0x9705, 0xE8AE, 0x9708, 0xE8AF, 0x9702, 0xE8B0, 0x975A, + 0xE8B1, 0x978A, 0xE8B2, 0x978E, 0xE8B3, 0x9788, 0xE8B4, 0x97D0, + 0xE8B5, 0x97CF, 0xE8B6, 0x981E, 0xE8B7, 0x981D, 0xE8B8, 0x9826, + 0xE8B9, 0x9829, 0xE8BA, 0x9828, 0xE8BB, 0x9820, 0xE8BC, 0x981B, + 0xE8BD, 0x9827, 0xE8BE, 0x98B2, 0xE8BF, 0x9908, 0xE8C0, 0x98FA, + 0xE8C1, 0x9911, 0xE8C2, 0x9914, 0xE8C3, 0x9916, 0xE8C4, 0x9917, + 0xE8C5, 0x9915, 0xE8C6, 0x99DC, 0xE8C7, 0x99CD, 0xE8C8, 0x99CF, + 0xE8C9, 0x99D3, 0xE8CA, 0x99D4, 0xE8CB, 0x99CE, 0xE8CC, 0x99C9, + 0xE8CD, 0x99D6, 0xE8CE, 0x99D8, 0xE8CF, 0x99CB, 0xE8D0, 0x99D7, + 0xE8D1, 0x99CC, 0xE8D2, 0x9AB3, 0xE8D3, 0x9AEC, 0xE8D4, 0x9AEB, + 0xE8D5, 0x9AF3, 0xE8D6, 0x9AF2, 0xE8D7, 0x9AF1, 0xE8D8, 0x9B46, + 0xE8D9, 0x9B43, 0xE8DA, 0x9B67, 0xE8DB, 0x9B74, 0xE8DC, 0x9B71, + 0xE8DD, 0x9B66, 0xE8DE, 0x9B76, 0xE8DF, 0x9B75, 0xE8E0, 0x9B70, + 0xE8E1, 0x9B68, 0xE8E2, 0x9B64, 0xE8E3, 0x9B6C, 0xE8E4, 0x9CFC, + 0xE8E5, 0x9CFA, 0xE8E6, 0x9CFD, 0xE8E7, 0x9CFF, 0xE8E8, 0x9CF7, + 0xE8E9, 0x9D07, 0xE8EA, 0x9D00, 0xE8EB, 0x9CF9, 0xE8EC, 0x9CFB, + 0xE8ED, 0x9D08, 0xE8EE, 0x9D05, 0xE8EF, 0x9D04, 0xE8F0, 0x9E83, + 0xE8F1, 0x9ED3, 0xE8F2, 0x9F0F, 0xE8F3, 0x9F10, 0xE8F4, 0x511C, + 0xE8F5, 0x5113, 0xE8F6, 0x5117, 0xE8F7, 0x511A, 0xE8F8, 0x5111, + 0xE8F9, 0x51DE, 0xE8FA, 0x5334, 0xE8FB, 0x53E1, 0xE8FC, 0x5670, + 0xE8FD, 0x5660, 0xE8FE, 0x566E, 0xE940, 0x5673, 0xE941, 0x5666, + 0xE942, 0x5663, 0xE943, 0x566D, 0xE944, 0x5672, 0xE945, 0x565E, + 0xE946, 0x5677, 0xE947, 0x571C, 0xE948, 0x571B, 0xE949, 0x58C8, + 0xE94A, 0x58BD, 0xE94B, 0x58C9, 0xE94C, 0x58BF, 0xE94D, 0x58BA, + 0xE94E, 0x58C2, 0xE94F, 0x58BC, 0xE950, 0x58C6, 0xE951, 0x5B17, + 0xE952, 0x5B19, 0xE953, 0x5B1B, 0xE954, 0x5B21, 0xE955, 0x5B14, + 0xE956, 0x5B13, 0xE957, 0x5B10, 0xE958, 0x5B16, 0xE959, 0x5B28, + 0xE95A, 0x5B1A, 0xE95B, 0x5B20, 0xE95C, 0x5B1E, 0xE95D, 0x5BEF, + 0xE95E, 0x5DAC, 0xE95F, 0x5DB1, 0xE960, 0x5DA9, 0xE961, 0x5DA7, + 0xE962, 0x5DB5, 0xE963, 0x5DB0, 0xE964, 0x5DAE, 0xE965, 0x5DAA, + 0xE966, 0x5DA8, 0xE967, 0x5DB2, 0xE968, 0x5DAD, 0xE969, 0x5DAF, + 0xE96A, 0x5DB4, 0xE96B, 0x5E67, 0xE96C, 0x5E68, 0xE96D, 0x5E66, + 0xE96E, 0x5E6F, 0xE96F, 0x5EE9, 0xE970, 0x5EE7, 0xE971, 0x5EE6, + 0xE972, 0x5EE8, 0xE973, 0x5EE5, 0xE974, 0x5F4B, 0xE975, 0x5FBC, + 0xE976, 0x619D, 0xE977, 0x61A8, 0xE978, 0x6196, 0xE979, 0x61C5, + 0xE97A, 0x61B4, 0xE97B, 0x61C6, 0xE97C, 0x61C1, 0xE97D, 0x61CC, + 0xE97E, 0x61BA, 0xE9A1, 0x61BF, 0xE9A2, 0x61B8, 0xE9A3, 0x618C, + 0xE9A4, 0x64D7, 0xE9A5, 0x64D6, 0xE9A6, 0x64D0, 0xE9A7, 0x64CF, + 0xE9A8, 0x64C9, 0xE9A9, 0x64BD, 0xE9AA, 0x6489, 0xE9AB, 0x64C3, + 0xE9AC, 0x64DB, 0xE9AD, 0x64F3, 0xE9AE, 0x64D9, 0xE9AF, 0x6533, + 0xE9B0, 0x657F, 0xE9B1, 0x657C, 0xE9B2, 0x65A2, 0xE9B3, 0x66C8, + 0xE9B4, 0x66BE, 0xE9B5, 0x66C0, 0xE9B6, 0x66CA, 0xE9B7, 0x66CB, + 0xE9B8, 0x66CF, 0xE9B9, 0x66BD, 0xE9BA, 0x66BB, 0xE9BB, 0x66BA, + 0xE9BC, 0x66CC, 0xE9BD, 0x6723, 0xE9BE, 0x6A34, 0xE9BF, 0x6A66, + 0xE9C0, 0x6A49, 0xE9C1, 0x6A67, 0xE9C2, 0x6A32, 0xE9C3, 0x6A68, + 0xE9C4, 0x6A3E, 0xE9C5, 0x6A5D, 0xE9C6, 0x6A6D, 0xE9C7, 0x6A76, + 0xE9C8, 0x6A5B, 0xE9C9, 0x6A51, 0xE9CA, 0x6A28, 0xE9CB, 0x6A5A, + 0xE9CC, 0x6A3B, 0xE9CD, 0x6A3F, 0xE9CE, 0x6A41, 0xE9CF, 0x6A6A, + 0xE9D0, 0x6A64, 0xE9D1, 0x6A50, 0xE9D2, 0x6A4F, 0xE9D3, 0x6A54, + 0xE9D4, 0x6A6F, 0xE9D5, 0x6A69, 0xE9D6, 0x6A60, 0xE9D7, 0x6A3C, + 0xE9D8, 0x6A5E, 0xE9D9, 0x6A56, 0xE9DA, 0x6A55, 0xE9DB, 0x6A4D, + 0xE9DC, 0x6A4E, 0xE9DD, 0x6A46, 0xE9DE, 0x6B55, 0xE9DF, 0x6B54, + 0xE9E0, 0x6B56, 0xE9E1, 0x6BA7, 0xE9E2, 0x6BAA, 0xE9E3, 0x6BAB, + 0xE9E4, 0x6BC8, 0xE9E5, 0x6BC7, 0xE9E6, 0x6C04, 0xE9E7, 0x6C03, + 0xE9E8, 0x6C06, 0xE9E9, 0x6FAD, 0xE9EA, 0x6FCB, 0xE9EB, 0x6FA3, + 0xE9EC, 0x6FC7, 0xE9ED, 0x6FBC, 0xE9EE, 0x6FCE, 0xE9EF, 0x6FC8, + 0xE9F0, 0x6F5E, 0xE9F1, 0x6FC4, 0xE9F2, 0x6FBD, 0xE9F3, 0x6F9E, + 0xE9F4, 0x6FCA, 0xE9F5, 0x6FA8, 0xE9F6, 0x7004, 0xE9F7, 0x6FA5, + 0xE9F8, 0x6FAE, 0xE9F9, 0x6FBA, 0xE9FA, 0x6FAC, 0xE9FB, 0x6FAA, + 0xE9FC, 0x6FCF, 0xE9FD, 0x6FBF, 0xE9FE, 0x6FB8, 0xEA40, 0x6FA2, + 0xEA41, 0x6FC9, 0xEA42, 0x6FAB, 0xEA43, 0x6FCD, 0xEA44, 0x6FAF, + 0xEA45, 0x6FB2, 0xEA46, 0x6FB0, 0xEA47, 0x71C5, 0xEA48, 0x71C2, + 0xEA49, 0x71BF, 0xEA4A, 0x71B8, 0xEA4B, 0x71D6, 0xEA4C, 0x71C0, + 0xEA4D, 0x71C1, 0xEA4E, 0x71CB, 0xEA4F, 0x71D4, 0xEA50, 0x71CA, + 0xEA51, 0x71C7, 0xEA52, 0x71CF, 0xEA53, 0x71BD, 0xEA54, 0x71D8, + 0xEA55, 0x71BC, 0xEA56, 0x71C6, 0xEA57, 0x71DA, 0xEA58, 0x71DB, + 0xEA59, 0x729D, 0xEA5A, 0x729E, 0xEA5B, 0x7369, 0xEA5C, 0x7366, + 0xEA5D, 0x7367, 0xEA5E, 0x736C, 0xEA5F, 0x7365, 0xEA60, 0x736B, + 0xEA61, 0x736A, 0xEA62, 0x747F, 0xEA63, 0x749A, 0xEA64, 0x74A0, + 0xEA65, 0x7494, 0xEA66, 0x7492, 0xEA67, 0x7495, 0xEA68, 0x74A1, + 0xEA69, 0x750B, 0xEA6A, 0x7580, 0xEA6B, 0x762F, 0xEA6C, 0x762D, + 0xEA6D, 0x7631, 0xEA6E, 0x763D, 0xEA6F, 0x7633, 0xEA70, 0x763C, + 0xEA71, 0x7635, 0xEA72, 0x7632, 0xEA73, 0x7630, 0xEA74, 0x76BB, + 0xEA75, 0x76E6, 0xEA76, 0x779A, 0xEA77, 0x779D, 0xEA78, 0x77A1, + 0xEA79, 0x779C, 0xEA7A, 0x779B, 0xEA7B, 0x77A2, 0xEA7C, 0x77A3, + 0xEA7D, 0x7795, 0xEA7E, 0x7799, 0xEAA1, 0x7797, 0xEAA2, 0x78DD, + 0xEAA3, 0x78E9, 0xEAA4, 0x78E5, 0xEAA5, 0x78EA, 0xEAA6, 0x78DE, + 0xEAA7, 0x78E3, 0xEAA8, 0x78DB, 0xEAA9, 0x78E1, 0xEAAA, 0x78E2, + 0xEAAB, 0x78ED, 0xEAAC, 0x78DF, 0xEAAD, 0x78E0, 0xEAAE, 0x79A4, + 0xEAAF, 0x7A44, 0xEAB0, 0x7A48, 0xEAB1, 0x7A47, 0xEAB2, 0x7AB6, + 0xEAB3, 0x7AB8, 0xEAB4, 0x7AB5, 0xEAB5, 0x7AB1, 0xEAB6, 0x7AB7, + 0xEAB7, 0x7BDE, 0xEAB8, 0x7BE3, 0xEAB9, 0x7BE7, 0xEABA, 0x7BDD, + 0xEABB, 0x7BD5, 0xEABC, 0x7BE5, 0xEABD, 0x7BDA, 0xEABE, 0x7BE8, + 0xEABF, 0x7BF9, 0xEAC0, 0x7BD4, 0xEAC1, 0x7BEA, 0xEAC2, 0x7BE2, + 0xEAC3, 0x7BDC, 0xEAC4, 0x7BEB, 0xEAC5, 0x7BD8, 0xEAC6, 0x7BDF, + 0xEAC7, 0x7CD2, 0xEAC8, 0x7CD4, 0xEAC9, 0x7CD7, 0xEACA, 0x7CD0, + 0xEACB, 0x7CD1, 0xEACC, 0x7E12, 0xEACD, 0x7E21, 0xEACE, 0x7E17, + 0xEACF, 0x7E0C, 0xEAD0, 0x7E1F, 0xEAD1, 0x7E20, 0xEAD2, 0x7E13, + 0xEAD3, 0x7E0E, 0xEAD4, 0x7E1C, 0xEAD5, 0x7E15, 0xEAD6, 0x7E1A, + 0xEAD7, 0x7E22, 0xEAD8, 0x7E0B, 0xEAD9, 0x7E0F, 0xEADA, 0x7E16, + 0xEADB, 0x7E0D, 0xEADC, 0x7E14, 0xEADD, 0x7E25, 0xEADE, 0x7E24, + 0xEADF, 0x7F43, 0xEAE0, 0x7F7B, 0xEAE1, 0x7F7C, 0xEAE2, 0x7F7A, + 0xEAE3, 0x7FB1, 0xEAE4, 0x7FEF, 0xEAE5, 0x802A, 0xEAE6, 0x8029, + 0xEAE7, 0x806C, 0xEAE8, 0x81B1, 0xEAE9, 0x81A6, 0xEAEA, 0x81AE, + 0xEAEB, 0x81B9, 0xEAEC, 0x81B5, 0xEAED, 0x81AB, 0xEAEE, 0x81B0, + 0xEAEF, 0x81AC, 0xEAF0, 0x81B4, 0xEAF1, 0x81B2, 0xEAF2, 0x81B7, + 0xEAF3, 0x81A7, 0xEAF4, 0x81F2, 0xEAF5, 0x8255, 0xEAF6, 0x8256, + 0xEAF7, 0x8257, 0xEAF8, 0x8556, 0xEAF9, 0x8545, 0xEAFA, 0x856B, + 0xEAFB, 0x854D, 0xEAFC, 0x8553, 0xEAFD, 0x8561, 0xEAFE, 0x8558, + 0xEB40, 0x8540, 0xEB41, 0x8546, 0xEB42, 0x8564, 0xEB43, 0x8541, + 0xEB44, 0x8562, 0xEB45, 0x8544, 0xEB46, 0x8551, 0xEB47, 0x8547, + 0xEB48, 0x8563, 0xEB49, 0x853E, 0xEB4A, 0x855B, 0xEB4B, 0x8571, + 0xEB4C, 0x854E, 0xEB4D, 0x856E, 0xEB4E, 0x8575, 0xEB4F, 0x8555, + 0xEB50, 0x8567, 0xEB51, 0x8560, 0xEB52, 0x858C, 0xEB53, 0x8566, + 0xEB54, 0x855D, 0xEB55, 0x8554, 0xEB56, 0x8565, 0xEB57, 0x856C, + 0xEB58, 0x8663, 0xEB59, 0x8665, 0xEB5A, 0x8664, 0xEB5B, 0x879B, + 0xEB5C, 0x878F, 0xEB5D, 0x8797, 0xEB5E, 0x8793, 0xEB5F, 0x8792, + 0xEB60, 0x8788, 0xEB61, 0x8781, 0xEB62, 0x8796, 0xEB63, 0x8798, + 0xEB64, 0x8779, 0xEB65, 0x8787, 0xEB66, 0x87A3, 0xEB67, 0x8785, + 0xEB68, 0x8790, 0xEB69, 0x8791, 0xEB6A, 0x879D, 0xEB6B, 0x8784, + 0xEB6C, 0x8794, 0xEB6D, 0x879C, 0xEB6E, 0x879A, 0xEB6F, 0x8789, + 0xEB70, 0x891E, 0xEB71, 0x8926, 0xEB72, 0x8930, 0xEB73, 0x892D, + 0xEB74, 0x892E, 0xEB75, 0x8927, 0xEB76, 0x8931, 0xEB77, 0x8922, + 0xEB78, 0x8929, 0xEB79, 0x8923, 0xEB7A, 0x892F, 0xEB7B, 0x892C, + 0xEB7C, 0x891F, 0xEB7D, 0x89F1, 0xEB7E, 0x8AE0, 0xEBA1, 0x8AE2, + 0xEBA2, 0x8AF2, 0xEBA3, 0x8AF4, 0xEBA4, 0x8AF5, 0xEBA5, 0x8ADD, + 0xEBA6, 0x8B14, 0xEBA7, 0x8AE4, 0xEBA8, 0x8ADF, 0xEBA9, 0x8AF0, + 0xEBAA, 0x8AC8, 0xEBAB, 0x8ADE, 0xEBAC, 0x8AE1, 0xEBAD, 0x8AE8, + 0xEBAE, 0x8AFF, 0xEBAF, 0x8AEF, 0xEBB0, 0x8AFB, 0xEBB1, 0x8C91, + 0xEBB2, 0x8C92, 0xEBB3, 0x8C90, 0xEBB4, 0x8CF5, 0xEBB5, 0x8CEE, + 0xEBB6, 0x8CF1, 0xEBB7, 0x8CF0, 0xEBB8, 0x8CF3, 0xEBB9, 0x8D6C, + 0xEBBA, 0x8D6E, 0xEBBB, 0x8DA5, 0xEBBC, 0x8DA7, 0xEBBD, 0x8E33, + 0xEBBE, 0x8E3E, 0xEBBF, 0x8E38, 0xEBC0, 0x8E40, 0xEBC1, 0x8E45, + 0xEBC2, 0x8E36, 0xEBC3, 0x8E3C, 0xEBC4, 0x8E3D, 0xEBC5, 0x8E41, + 0xEBC6, 0x8E30, 0xEBC7, 0x8E3F, 0xEBC8, 0x8EBD, 0xEBC9, 0x8F36, + 0xEBCA, 0x8F2E, 0xEBCB, 0x8F35, 0xEBCC, 0x8F32, 0xEBCD, 0x8F39, + 0xEBCE, 0x8F37, 0xEBCF, 0x8F34, 0xEBD0, 0x9076, 0xEBD1, 0x9079, + 0xEBD2, 0x907B, 0xEBD3, 0x9086, 0xEBD4, 0x90FA, 0xEBD5, 0x9133, + 0xEBD6, 0x9135, 0xEBD7, 0x9136, 0xEBD8, 0x9193, 0xEBD9, 0x9190, + 0xEBDA, 0x9191, 0xEBDB, 0x918D, 0xEBDC, 0x918F, 0xEBDD, 0x9327, + 0xEBDE, 0x931E, 0xEBDF, 0x9308, 0xEBE0, 0x931F, 0xEBE1, 0x9306, + 0xEBE2, 0x930F, 0xEBE3, 0x937A, 0xEBE4, 0x9338, 0xEBE5, 0x933C, + 0xEBE6, 0x931B, 0xEBE7, 0x9323, 0xEBE8, 0x9312, 0xEBE9, 0x9301, + 0xEBEA, 0x9346, 0xEBEB, 0x932D, 0xEBEC, 0x930E, 0xEBED, 0x930D, + 0xEBEE, 0x92CB, 0xEBEF, 0x931D, 0xEBF0, 0x92FA, 0xEBF1, 0x9325, + 0xEBF2, 0x9313, 0xEBF3, 0x92F9, 0xEBF4, 0x92F7, 0xEBF5, 0x9334, + 0xEBF6, 0x9302, 0xEBF7, 0x9324, 0xEBF8, 0x92FF, 0xEBF9, 0x9329, + 0xEBFA, 0x9339, 0xEBFB, 0x9335, 0xEBFC, 0x932A, 0xEBFD, 0x9314, + 0xEBFE, 0x930C, 0xEC40, 0x930B, 0xEC41, 0x92FE, 0xEC42, 0x9309, + 0xEC43, 0x9300, 0xEC44, 0x92FB, 0xEC45, 0x9316, 0xEC46, 0x95BC, + 0xEC47, 0x95CD, 0xEC48, 0x95BE, 0xEC49, 0x95B9, 0xEC4A, 0x95BA, + 0xEC4B, 0x95B6, 0xEC4C, 0x95BF, 0xEC4D, 0x95B5, 0xEC4E, 0x95BD, + 0xEC4F, 0x96A9, 0xEC50, 0x96D4, 0xEC51, 0x970B, 0xEC52, 0x9712, + 0xEC53, 0x9710, 0xEC54, 0x9799, 0xEC55, 0x9797, 0xEC56, 0x9794, + 0xEC57, 0x97F0, 0xEC58, 0x97F8, 0xEC59, 0x9835, 0xEC5A, 0x982F, + 0xEC5B, 0x9832, 0xEC5C, 0x9924, 0xEC5D, 0x991F, 0xEC5E, 0x9927, + 0xEC5F, 0x9929, 0xEC60, 0x999E, 0xEC61, 0x99EE, 0xEC62, 0x99EC, + 0xEC63, 0x99E5, 0xEC64, 0x99E4, 0xEC65, 0x99F0, 0xEC66, 0x99E3, + 0xEC67, 0x99EA, 0xEC68, 0x99E9, 0xEC69, 0x99E7, 0xEC6A, 0x9AB9, + 0xEC6B, 0x9ABF, 0xEC6C, 0x9AB4, 0xEC6D, 0x9ABB, 0xEC6E, 0x9AF6, + 0xEC6F, 0x9AFA, 0xEC70, 0x9AF9, 0xEC71, 0x9AF7, 0xEC72, 0x9B33, + 0xEC73, 0x9B80, 0xEC74, 0x9B85, 0xEC75, 0x9B87, 0xEC76, 0x9B7C, + 0xEC77, 0x9B7E, 0xEC78, 0x9B7B, 0xEC79, 0x9B82, 0xEC7A, 0x9B93, + 0xEC7B, 0x9B92, 0xEC7C, 0x9B90, 0xEC7D, 0x9B7A, 0xEC7E, 0x9B95, + 0xECA1, 0x9B7D, 0xECA2, 0x9B88, 0xECA3, 0x9D25, 0xECA4, 0x9D17, + 0xECA5, 0x9D20, 0xECA6, 0x9D1E, 0xECA7, 0x9D14, 0xECA8, 0x9D29, + 0xECA9, 0x9D1D, 0xECAA, 0x9D18, 0xECAB, 0x9D22, 0xECAC, 0x9D10, + 0xECAD, 0x9D19, 0xECAE, 0x9D1F, 0xECAF, 0x9E88, 0xECB0, 0x9E86, + 0xECB1, 0x9E87, 0xECB2, 0x9EAE, 0xECB3, 0x9EAD, 0xECB4, 0x9ED5, + 0xECB5, 0x9ED6, 0xECB6, 0x9EFA, 0xECB7, 0x9F12, 0xECB8, 0x9F3D, + 0xECB9, 0x5126, 0xECBA, 0x5125, 0xECBB, 0x5122, 0xECBC, 0x5124, + 0xECBD, 0x5120, 0xECBE, 0x5129, 0xECBF, 0x52F4, 0xECC0, 0x5693, + 0xECC1, 0x568C, 0xECC2, 0x568D, 0xECC3, 0x5686, 0xECC4, 0x5684, + 0xECC5, 0x5683, 0xECC6, 0x567E, 0xECC7, 0x5682, 0xECC8, 0x567F, + 0xECC9, 0x5681, 0xECCA, 0x58D6, 0xECCB, 0x58D4, 0xECCC, 0x58CF, + 0xECCD, 0x58D2, 0xECCE, 0x5B2D, 0xECCF, 0x5B25, 0xECD0, 0x5B32, + 0xECD1, 0x5B23, 0xECD2, 0x5B2C, 0xECD3, 0x5B27, 0xECD4, 0x5B26, + 0xECD5, 0x5B2F, 0xECD6, 0x5B2E, 0xECD7, 0x5B7B, 0xECD8, 0x5BF1, + 0xECD9, 0x5BF2, 0xECDA, 0x5DB7, 0xECDB, 0x5E6C, 0xECDC, 0x5E6A, + 0xECDD, 0x5FBE, 0xECDE, 0x5FBB, 0xECDF, 0x61C3, 0xECE0, 0x61B5, + 0xECE1, 0x61BC, 0xECE2, 0x61E7, 0xECE3, 0x61E0, 0xECE4, 0x61E5, + 0xECE5, 0x61E4, 0xECE6, 0x61E8, 0xECE7, 0x61DE, 0xECE8, 0x64EF, + 0xECE9, 0x64E9, 0xECEA, 0x64E3, 0xECEB, 0x64EB, 0xECEC, 0x64E4, + 0xECED, 0x64E8, 0xECEE, 0x6581, 0xECEF, 0x6580, 0xECF0, 0x65B6, + 0xECF1, 0x65DA, 0xECF2, 0x66D2, 0xECF3, 0x6A8D, 0xECF4, 0x6A96, + 0xECF5, 0x6A81, 0xECF6, 0x6AA5, 0xECF7, 0x6A89, 0xECF8, 0x6A9F, + 0xECF9, 0x6A9B, 0xECFA, 0x6AA1, 0xECFB, 0x6A9E, 0xECFC, 0x6A87, + 0xECFD, 0x6A93, 0xECFE, 0x6A8E, 0xED40, 0x6A95, 0xED41, 0x6A83, + 0xED42, 0x6AA8, 0xED43, 0x6AA4, 0xED44, 0x6A91, 0xED45, 0x6A7F, + 0xED46, 0x6AA6, 0xED47, 0x6A9A, 0xED48, 0x6A85, 0xED49, 0x6A8C, + 0xED4A, 0x6A92, 0xED4B, 0x6B5B, 0xED4C, 0x6BAD, 0xED4D, 0x6C09, + 0xED4E, 0x6FCC, 0xED4F, 0x6FA9, 0xED50, 0x6FF4, 0xED51, 0x6FD4, + 0xED52, 0x6FE3, 0xED53, 0x6FDC, 0xED54, 0x6FED, 0xED55, 0x6FE7, + 0xED56, 0x6FE6, 0xED57, 0x6FDE, 0xED58, 0x6FF2, 0xED59, 0x6FDD, + 0xED5A, 0x6FE2, 0xED5B, 0x6FE8, 0xED5C, 0x71E1, 0xED5D, 0x71F1, + 0xED5E, 0x71E8, 0xED5F, 0x71F2, 0xED60, 0x71E4, 0xED61, 0x71F0, + 0xED62, 0x71E2, 0xED63, 0x7373, 0xED64, 0x736E, 0xED65, 0x736F, + 0xED66, 0x7497, 0xED67, 0x74B2, 0xED68, 0x74AB, 0xED69, 0x7490, + 0xED6A, 0x74AA, 0xED6B, 0x74AD, 0xED6C, 0x74B1, 0xED6D, 0x74A5, + 0xED6E, 0x74AF, 0xED6F, 0x7510, 0xED70, 0x7511, 0xED71, 0x7512, + 0xED72, 0x750F, 0xED73, 0x7584, 0xED74, 0x7643, 0xED75, 0x7648, + 0xED76, 0x7649, 0xED77, 0x7647, 0xED78, 0x76A4, 0xED79, 0x76E9, + 0xED7A, 0x77B5, 0xED7B, 0x77AB, 0xED7C, 0x77B2, 0xED7D, 0x77B7, + 0xED7E, 0x77B6, 0xEDA1, 0x77B4, 0xEDA2, 0x77B1, 0xEDA3, 0x77A8, + 0xEDA4, 0x77F0, 0xEDA5, 0x78F3, 0xEDA6, 0x78FD, 0xEDA7, 0x7902, + 0xEDA8, 0x78FB, 0xEDA9, 0x78FC, 0xEDAA, 0x78F2, 0xEDAB, 0x7905, + 0xEDAC, 0x78F9, 0xEDAD, 0x78FE, 0xEDAE, 0x7904, 0xEDAF, 0x79AB, + 0xEDB0, 0x79A8, 0xEDB1, 0x7A5C, 0xEDB2, 0x7A5B, 0xEDB3, 0x7A56, + 0xEDB4, 0x7A58, 0xEDB5, 0x7A54, 0xEDB6, 0x7A5A, 0xEDB7, 0x7ABE, + 0xEDB8, 0x7AC0, 0xEDB9, 0x7AC1, 0xEDBA, 0x7C05, 0xEDBB, 0x7C0F, + 0xEDBC, 0x7BF2, 0xEDBD, 0x7C00, 0xEDBE, 0x7BFF, 0xEDBF, 0x7BFB, + 0xEDC0, 0x7C0E, 0xEDC1, 0x7BF4, 0xEDC2, 0x7C0B, 0xEDC3, 0x7BF3, + 0xEDC4, 0x7C02, 0xEDC5, 0x7C09, 0xEDC6, 0x7C03, 0xEDC7, 0x7C01, + 0xEDC8, 0x7BF8, 0xEDC9, 0x7BFD, 0xEDCA, 0x7C06, 0xEDCB, 0x7BF0, + 0xEDCC, 0x7BF1, 0xEDCD, 0x7C10, 0xEDCE, 0x7C0A, 0xEDCF, 0x7CE8, + 0xEDD0, 0x7E2D, 0xEDD1, 0x7E3C, 0xEDD2, 0x7E42, 0xEDD3, 0x7E33, + 0xEDD4, 0x9848, 0xEDD5, 0x7E38, 0xEDD6, 0x7E2A, 0xEDD7, 0x7E49, + 0xEDD8, 0x7E40, 0xEDD9, 0x7E47, 0xEDDA, 0x7E29, 0xEDDB, 0x7E4C, + 0xEDDC, 0x7E30, 0xEDDD, 0x7E3B, 0xEDDE, 0x7E36, 0xEDDF, 0x7E44, + 0xEDE0, 0x7E3A, 0xEDE1, 0x7F45, 0xEDE2, 0x7F7F, 0xEDE3, 0x7F7E, + 0xEDE4, 0x7F7D, 0xEDE5, 0x7FF4, 0xEDE6, 0x7FF2, 0xEDE7, 0x802C, + 0xEDE8, 0x81BB, 0xEDE9, 0x81C4, 0xEDEA, 0x81CC, 0xEDEB, 0x81CA, + 0xEDEC, 0x81C5, 0xEDED, 0x81C7, 0xEDEE, 0x81BC, 0xEDEF, 0x81E9, + 0xEDF0, 0x825B, 0xEDF1, 0x825A, 0xEDF2, 0x825C, 0xEDF3, 0x8583, + 0xEDF4, 0x8580, 0xEDF5, 0x858F, 0xEDF6, 0x85A7, 0xEDF7, 0x8595, + 0xEDF8, 0x85A0, 0xEDF9, 0x858B, 0xEDFA, 0x85A3, 0xEDFB, 0x857B, + 0xEDFC, 0x85A4, 0xEDFD, 0x859A, 0xEDFE, 0x859E, 0xEE40, 0x8577, + 0xEE41, 0x857C, 0xEE42, 0x8589, 0xEE43, 0x85A1, 0xEE44, 0x857A, + 0xEE45, 0x8578, 0xEE46, 0x8557, 0xEE47, 0x858E, 0xEE48, 0x8596, + 0xEE49, 0x8586, 0xEE4A, 0x858D, 0xEE4B, 0x8599, 0xEE4C, 0x859D, + 0xEE4D, 0x8581, 0xEE4E, 0x85A2, 0xEE4F, 0x8582, 0xEE50, 0x8588, + 0xEE51, 0x8585, 0xEE52, 0x8579, 0xEE53, 0x8576, 0xEE54, 0x8598, + 0xEE55, 0x8590, 0xEE56, 0x859F, 0xEE57, 0x8668, 0xEE58, 0x87BE, + 0xEE59, 0x87AA, 0xEE5A, 0x87AD, 0xEE5B, 0x87C5, 0xEE5C, 0x87B0, + 0xEE5D, 0x87AC, 0xEE5E, 0x87B9, 0xEE5F, 0x87B5, 0xEE60, 0x87BC, + 0xEE61, 0x87AE, 0xEE62, 0x87C9, 0xEE63, 0x87C3, 0xEE64, 0x87C2, + 0xEE65, 0x87CC, 0xEE66, 0x87B7, 0xEE67, 0x87AF, 0xEE68, 0x87C4, + 0xEE69, 0x87CA, 0xEE6A, 0x87B4, 0xEE6B, 0x87B6, 0xEE6C, 0x87BF, + 0xEE6D, 0x87B8, 0xEE6E, 0x87BD, 0xEE6F, 0x87DE, 0xEE70, 0x87B2, + 0xEE71, 0x8935, 0xEE72, 0x8933, 0xEE73, 0x893C, 0xEE74, 0x893E, + 0xEE75, 0x8941, 0xEE76, 0x8952, 0xEE77, 0x8937, 0xEE78, 0x8942, + 0xEE79, 0x89AD, 0xEE7A, 0x89AF, 0xEE7B, 0x89AE, 0xEE7C, 0x89F2, + 0xEE7D, 0x89F3, 0xEE7E, 0x8B1E, 0xEEA1, 0x8B18, 0xEEA2, 0x8B16, + 0xEEA3, 0x8B11, 0xEEA4, 0x8B05, 0xEEA5, 0x8B0B, 0xEEA6, 0x8B22, + 0xEEA7, 0x8B0F, 0xEEA8, 0x8B12, 0xEEA9, 0x8B15, 0xEEAA, 0x8B07, + 0xEEAB, 0x8B0D, 0xEEAC, 0x8B08, 0xEEAD, 0x8B06, 0xEEAE, 0x8B1C, + 0xEEAF, 0x8B13, 0xEEB0, 0x8B1A, 0xEEB1, 0x8C4F, 0xEEB2, 0x8C70, + 0xEEB3, 0x8C72, 0xEEB4, 0x8C71, 0xEEB5, 0x8C6F, 0xEEB6, 0x8C95, + 0xEEB7, 0x8C94, 0xEEB8, 0x8CF9, 0xEEB9, 0x8D6F, 0xEEBA, 0x8E4E, + 0xEEBB, 0x8E4D, 0xEEBC, 0x8E53, 0xEEBD, 0x8E50, 0xEEBE, 0x8E4C, + 0xEEBF, 0x8E47, 0xEEC0, 0x8F43, 0xEEC1, 0x8F40, 0xEEC2, 0x9085, + 0xEEC3, 0x907E, 0xEEC4, 0x9138, 0xEEC5, 0x919A, 0xEEC6, 0x91A2, + 0xEEC7, 0x919B, 0xEEC8, 0x9199, 0xEEC9, 0x919F, 0xEECA, 0x91A1, + 0xEECB, 0x919D, 0xEECC, 0x91A0, 0xEECD, 0x93A1, 0xEECE, 0x9383, + 0xEECF, 0x93AF, 0xEED0, 0x9364, 0xEED1, 0x9356, 0xEED2, 0x9347, + 0xEED3, 0x937C, 0xEED4, 0x9358, 0xEED5, 0x935C, 0xEED6, 0x9376, + 0xEED7, 0x9349, 0xEED8, 0x9350, 0xEED9, 0x9351, 0xEEDA, 0x9360, + 0xEEDB, 0x936D, 0xEEDC, 0x938F, 0xEEDD, 0x934C, 0xEEDE, 0x936A, + 0xEEDF, 0x9379, 0xEEE0, 0x9357, 0xEEE1, 0x9355, 0xEEE2, 0x9352, + 0xEEE3, 0x934F, 0xEEE4, 0x9371, 0xEEE5, 0x9377, 0xEEE6, 0x937B, + 0xEEE7, 0x9361, 0xEEE8, 0x935E, 0xEEE9, 0x9363, 0xEEEA, 0x9367, + 0xEEEB, 0x9380, 0xEEEC, 0x934E, 0xEEED, 0x9359, 0xEEEE, 0x95C7, + 0xEEEF, 0x95C0, 0xEEF0, 0x95C9, 0xEEF1, 0x95C3, 0xEEF2, 0x95C5, + 0xEEF3, 0x95B7, 0xEEF4, 0x96AE, 0xEEF5, 0x96B0, 0xEEF6, 0x96AC, + 0xEEF7, 0x9720, 0xEEF8, 0x971F, 0xEEF9, 0x9718, 0xEEFA, 0x971D, + 0xEEFB, 0x9719, 0xEEFC, 0x979A, 0xEEFD, 0x97A1, 0xEEFE, 0x979C, + 0xEF40, 0x979E, 0xEF41, 0x979D, 0xEF42, 0x97D5, 0xEF43, 0x97D4, + 0xEF44, 0x97F1, 0xEF45, 0x9841, 0xEF46, 0x9844, 0xEF47, 0x984A, + 0xEF48, 0x9849, 0xEF49, 0x9845, 0xEF4A, 0x9843, 0xEF4B, 0x9925, + 0xEF4C, 0x992B, 0xEF4D, 0x992C, 0xEF4E, 0x992A, 0xEF4F, 0x9933, + 0xEF50, 0x9932, 0xEF51, 0x992F, 0xEF52, 0x992D, 0xEF53, 0x9931, + 0xEF54, 0x9930, 0xEF55, 0x9998, 0xEF56, 0x99A3, 0xEF57, 0x99A1, + 0xEF58, 0x9A02, 0xEF59, 0x99FA, 0xEF5A, 0x99F4, 0xEF5B, 0x99F7, + 0xEF5C, 0x99F9, 0xEF5D, 0x99F8, 0xEF5E, 0x99F6, 0xEF5F, 0x99FB, + 0xEF60, 0x99FD, 0xEF61, 0x99FE, 0xEF62, 0x99FC, 0xEF63, 0x9A03, + 0xEF64, 0x9ABE, 0xEF65, 0x9AFE, 0xEF66, 0x9AFD, 0xEF67, 0x9B01, + 0xEF68, 0x9AFC, 0xEF69, 0x9B48, 0xEF6A, 0x9B9A, 0xEF6B, 0x9BA8, + 0xEF6C, 0x9B9E, 0xEF6D, 0x9B9B, 0xEF6E, 0x9BA6, 0xEF6F, 0x9BA1, + 0xEF70, 0x9BA5, 0xEF71, 0x9BA4, 0xEF72, 0x9B86, 0xEF73, 0x9BA2, + 0xEF74, 0x9BA0, 0xEF75, 0x9BAF, 0xEF76, 0x9D33, 0xEF77, 0x9D41, + 0xEF78, 0x9D67, 0xEF79, 0x9D36, 0xEF7A, 0x9D2E, 0xEF7B, 0x9D2F, + 0xEF7C, 0x9D31, 0xEF7D, 0x9D38, 0xEF7E, 0x9D30, 0xEFA1, 0x9D45, + 0xEFA2, 0x9D42, 0xEFA3, 0x9D43, 0xEFA4, 0x9D3E, 0xEFA5, 0x9D37, + 0xEFA6, 0x9D40, 0xEFA7, 0x9D3D, 0xEFA8, 0x7FF5, 0xEFA9, 0x9D2D, + 0xEFAA, 0x9E8A, 0xEFAB, 0x9E89, 0xEFAC, 0x9E8D, 0xEFAD, 0x9EB0, + 0xEFAE, 0x9EC8, 0xEFAF, 0x9EDA, 0xEFB0, 0x9EFB, 0xEFB1, 0x9EFF, + 0xEFB2, 0x9F24, 0xEFB3, 0x9F23, 0xEFB4, 0x9F22, 0xEFB5, 0x9F54, + 0xEFB6, 0x9FA0, 0xEFB7, 0x5131, 0xEFB8, 0x512D, 0xEFB9, 0x512E, + 0xEFBA, 0x5698, 0xEFBB, 0x569C, 0xEFBC, 0x5697, 0xEFBD, 0x569A, + 0xEFBE, 0x569D, 0xEFBF, 0x5699, 0xEFC0, 0x5970, 0xEFC1, 0x5B3C, + 0xEFC2, 0x5C69, 0xEFC3, 0x5C6A, 0xEFC4, 0x5DC0, 0xEFC5, 0x5E6D, + 0xEFC6, 0x5E6E, 0xEFC7, 0x61D8, 0xEFC8, 0x61DF, 0xEFC9, 0x61ED, + 0xEFCA, 0x61EE, 0xEFCB, 0x61F1, 0xEFCC, 0x61EA, 0xEFCD, 0x61F0, + 0xEFCE, 0x61EB, 0xEFCF, 0x61D6, 0xEFD0, 0x61E9, 0xEFD1, 0x64FF, + 0xEFD2, 0x6504, 0xEFD3, 0x64FD, 0xEFD4, 0x64F8, 0xEFD5, 0x6501, + 0xEFD6, 0x6503, 0xEFD7, 0x64FC, 0xEFD8, 0x6594, 0xEFD9, 0x65DB, + 0xEFDA, 0x66DA, 0xEFDB, 0x66DB, 0xEFDC, 0x66D8, 0xEFDD, 0x6AC5, + 0xEFDE, 0x6AB9, 0xEFDF, 0x6ABD, 0xEFE0, 0x6AE1, 0xEFE1, 0x6AC6, + 0xEFE2, 0x6ABA, 0xEFE3, 0x6AB6, 0xEFE4, 0x6AB7, 0xEFE5, 0x6AC7, + 0xEFE6, 0x6AB4, 0xEFE7, 0x6AAD, 0xEFE8, 0x6B5E, 0xEFE9, 0x6BC9, + 0xEFEA, 0x6C0B, 0xEFEB, 0x7007, 0xEFEC, 0x700C, 0xEFED, 0x700D, + 0xEFEE, 0x7001, 0xEFEF, 0x7005, 0xEFF0, 0x7014, 0xEFF1, 0x700E, + 0xEFF2, 0x6FFF, 0xEFF3, 0x7000, 0xEFF4, 0x6FFB, 0xEFF5, 0x7026, + 0xEFF6, 0x6FFC, 0xEFF7, 0x6FF7, 0xEFF8, 0x700A, 0xEFF9, 0x7201, + 0xEFFA, 0x71FF, 0xEFFB, 0x71F9, 0xEFFC, 0x7203, 0xEFFD, 0x71FD, + 0xEFFE, 0x7376, 0xF040, 0x74B8, 0xF041, 0x74C0, 0xF042, 0x74B5, + 0xF043, 0x74C1, 0xF044, 0x74BE, 0xF045, 0x74B6, 0xF046, 0x74BB, + 0xF047, 0x74C2, 0xF048, 0x7514, 0xF049, 0x7513, 0xF04A, 0x765C, + 0xF04B, 0x7664, 0xF04C, 0x7659, 0xF04D, 0x7650, 0xF04E, 0x7653, + 0xF04F, 0x7657, 0xF050, 0x765A, 0xF051, 0x76A6, 0xF052, 0x76BD, + 0xF053, 0x76EC, 0xF054, 0x77C2, 0xF055, 0x77BA, 0xF056, 0x78FF, + 0xF057, 0x790C, 0xF058, 0x7913, 0xF059, 0x7914, 0xF05A, 0x7909, + 0xF05B, 0x7910, 0xF05C, 0x7912, 0xF05D, 0x7911, 0xF05E, 0x79AD, + 0xF05F, 0x79AC, 0xF060, 0x7A5F, 0xF061, 0x7C1C, 0xF062, 0x7C29, + 0xF063, 0x7C19, 0xF064, 0x7C20, 0xF065, 0x7C1F, 0xF066, 0x7C2D, + 0xF067, 0x7C1D, 0xF068, 0x7C26, 0xF069, 0x7C28, 0xF06A, 0x7C22, + 0xF06B, 0x7C25, 0xF06C, 0x7C30, 0xF06D, 0x7E5C, 0xF06E, 0x7E50, + 0xF06F, 0x7E56, 0xF070, 0x7E63, 0xF071, 0x7E58, 0xF072, 0x7E62, + 0xF073, 0x7E5F, 0xF074, 0x7E51, 0xF075, 0x7E60, 0xF076, 0x7E57, + 0xF077, 0x7E53, 0xF078, 0x7FB5, 0xF079, 0x7FB3, 0xF07A, 0x7FF7, + 0xF07B, 0x7FF8, 0xF07C, 0x8075, 0xF07D, 0x81D1, 0xF07E, 0x81D2, + 0xF0A1, 0x81D0, 0xF0A2, 0x825F, 0xF0A3, 0x825E, 0xF0A4, 0x85B4, + 0xF0A5, 0x85C6, 0xF0A6, 0x85C0, 0xF0A7, 0x85C3, 0xF0A8, 0x85C2, + 0xF0A9, 0x85B3, 0xF0AA, 0x85B5, 0xF0AB, 0x85BD, 0xF0AC, 0x85C7, + 0xF0AD, 0x85C4, 0xF0AE, 0x85BF, 0xF0AF, 0x85CB, 0xF0B0, 0x85CE, + 0xF0B1, 0x85C8, 0xF0B2, 0x85C5, 0xF0B3, 0x85B1, 0xF0B4, 0x85B6, + 0xF0B5, 0x85D2, 0xF0B6, 0x8624, 0xF0B7, 0x85B8, 0xF0B8, 0x85B7, + 0xF0B9, 0x85BE, 0xF0BA, 0x8669, 0xF0BB, 0x87E7, 0xF0BC, 0x87E6, + 0xF0BD, 0x87E2, 0xF0BE, 0x87DB, 0xF0BF, 0x87EB, 0xF0C0, 0x87EA, + 0xF0C1, 0x87E5, 0xF0C2, 0x87DF, 0xF0C3, 0x87F3, 0xF0C4, 0x87E4, + 0xF0C5, 0x87D4, 0xF0C6, 0x87DC, 0xF0C7, 0x87D3, 0xF0C8, 0x87ED, + 0xF0C9, 0x87D8, 0xF0CA, 0x87E3, 0xF0CB, 0x87A4, 0xF0CC, 0x87D7, + 0xF0CD, 0x87D9, 0xF0CE, 0x8801, 0xF0CF, 0x87F4, 0xF0D0, 0x87E8, + 0xF0D1, 0x87DD, 0xF0D2, 0x8953, 0xF0D3, 0x894B, 0xF0D4, 0x894F, + 0xF0D5, 0x894C, 0xF0D6, 0x8946, 0xF0D7, 0x8950, 0xF0D8, 0x8951, + 0xF0D9, 0x8949, 0xF0DA, 0x8B2A, 0xF0DB, 0x8B27, 0xF0DC, 0x8B23, + 0xF0DD, 0x8B33, 0xF0DE, 0x8B30, 0xF0DF, 0x8B35, 0xF0E0, 0x8B47, + 0xF0E1, 0x8B2F, 0xF0E2, 0x8B3C, 0xF0E3, 0x8B3E, 0xF0E4, 0x8B31, + 0xF0E5, 0x8B25, 0xF0E6, 0x8B37, 0xF0E7, 0x8B26, 0xF0E8, 0x8B36, + 0xF0E9, 0x8B2E, 0xF0EA, 0x8B24, 0xF0EB, 0x8B3B, 0xF0EC, 0x8B3D, + 0xF0ED, 0x8B3A, 0xF0EE, 0x8C42, 0xF0EF, 0x8C75, 0xF0F0, 0x8C99, + 0xF0F1, 0x8C98, 0xF0F2, 0x8C97, 0xF0F3, 0x8CFE, 0xF0F4, 0x8D04, + 0xF0F5, 0x8D02, 0xF0F6, 0x8D00, 0xF0F7, 0x8E5C, 0xF0F8, 0x8E62, + 0xF0F9, 0x8E60, 0xF0FA, 0x8E57, 0xF0FB, 0x8E56, 0xF0FC, 0x8E5E, + 0xF0FD, 0x8E65, 0xF0FE, 0x8E67, 0xF140, 0x8E5B, 0xF141, 0x8E5A, + 0xF142, 0x8E61, 0xF143, 0x8E5D, 0xF144, 0x8E69, 0xF145, 0x8E54, + 0xF146, 0x8F46, 0xF147, 0x8F47, 0xF148, 0x8F48, 0xF149, 0x8F4B, + 0xF14A, 0x9128, 0xF14B, 0x913A, 0xF14C, 0x913B, 0xF14D, 0x913E, + 0xF14E, 0x91A8, 0xF14F, 0x91A5, 0xF150, 0x91A7, 0xF151, 0x91AF, + 0xF152, 0x91AA, 0xF153, 0x93B5, 0xF154, 0x938C, 0xF155, 0x9392, + 0xF156, 0x93B7, 0xF157, 0x939B, 0xF158, 0x939D, 0xF159, 0x9389, + 0xF15A, 0x93A7, 0xF15B, 0x938E, 0xF15C, 0x93AA, 0xF15D, 0x939E, + 0xF15E, 0x93A6, 0xF15F, 0x9395, 0xF160, 0x9388, 0xF161, 0x9399, + 0xF162, 0x939F, 0xF163, 0x938D, 0xF164, 0x93B1, 0xF165, 0x9391, + 0xF166, 0x93B2, 0xF167, 0x93A4, 0xF168, 0x93A8, 0xF169, 0x93B4, + 0xF16A, 0x93A3, 0xF16B, 0x93A5, 0xF16C, 0x95D2, 0xF16D, 0x95D3, + 0xF16E, 0x95D1, 0xF16F, 0x96B3, 0xF170, 0x96D7, 0xF171, 0x96DA, + 0xF172, 0x5DC2, 0xF173, 0x96DF, 0xF174, 0x96D8, 0xF175, 0x96DD, + 0xF176, 0x9723, 0xF177, 0x9722, 0xF178, 0x9725, 0xF179, 0x97AC, + 0xF17A, 0x97AE, 0xF17B, 0x97A8, 0xF17C, 0x97AB, 0xF17D, 0x97A4, + 0xF17E, 0x97AA, 0xF1A1, 0x97A2, 0xF1A2, 0x97A5, 0xF1A3, 0x97D7, + 0xF1A4, 0x97D9, 0xF1A5, 0x97D6, 0xF1A6, 0x97D8, 0xF1A7, 0x97FA, + 0xF1A8, 0x9850, 0xF1A9, 0x9851, 0xF1AA, 0x9852, 0xF1AB, 0x98B8, + 0xF1AC, 0x9941, 0xF1AD, 0x993C, 0xF1AE, 0x993A, 0xF1AF, 0x9A0F, + 0xF1B0, 0x9A0B, 0xF1B1, 0x9A09, 0xF1B2, 0x9A0D, 0xF1B3, 0x9A04, + 0xF1B4, 0x9A11, 0xF1B5, 0x9A0A, 0xF1B6, 0x9A05, 0xF1B7, 0x9A07, + 0xF1B8, 0x9A06, 0xF1B9, 0x9AC0, 0xF1BA, 0x9ADC, 0xF1BB, 0x9B08, + 0xF1BC, 0x9B04, 0xF1BD, 0x9B05, 0xF1BE, 0x9B29, 0xF1BF, 0x9B35, + 0xF1C0, 0x9B4A, 0xF1C1, 0x9B4C, 0xF1C2, 0x9B4B, 0xF1C3, 0x9BC7, + 0xF1C4, 0x9BC6, 0xF1C5, 0x9BC3, 0xF1C6, 0x9BBF, 0xF1C7, 0x9BC1, + 0xF1C8, 0x9BB5, 0xF1C9, 0x9BB8, 0xF1CA, 0x9BD3, 0xF1CB, 0x9BB6, + 0xF1CC, 0x9BC4, 0xF1CD, 0x9BB9, 0xF1CE, 0x9BBD, 0xF1CF, 0x9D5C, + 0xF1D0, 0x9D53, 0xF1D1, 0x9D4F, 0xF1D2, 0x9D4A, 0xF1D3, 0x9D5B, + 0xF1D4, 0x9D4B, 0xF1D5, 0x9D59, 0xF1D6, 0x9D56, 0xF1D7, 0x9D4C, + 0xF1D8, 0x9D57, 0xF1D9, 0x9D52, 0xF1DA, 0x9D54, 0xF1DB, 0x9D5F, + 0xF1DC, 0x9D58, 0xF1DD, 0x9D5A, 0xF1DE, 0x9E8E, 0xF1DF, 0x9E8C, + 0xF1E0, 0x9EDF, 0xF1E1, 0x9F01, 0xF1E2, 0x9F00, 0xF1E3, 0x9F16, + 0xF1E4, 0x9F25, 0xF1E5, 0x9F2B, 0xF1E6, 0x9F2A, 0xF1E7, 0x9F29, + 0xF1E8, 0x9F28, 0xF1E9, 0x9F4C, 0xF1EA, 0x9F55, 0xF1EB, 0x5134, + 0xF1EC, 0x5135, 0xF1ED, 0x5296, 0xF1EE, 0x52F7, 0xF1EF, 0x53B4, + 0xF1F0, 0x56AB, 0xF1F1, 0x56AD, 0xF1F2, 0x56A6, 0xF1F3, 0x56A7, + 0xF1F4, 0x56AA, 0xF1F5, 0x56AC, 0xF1F6, 0x58DA, 0xF1F7, 0x58DD, + 0xF1F8, 0x58DB, 0xF1F9, 0x5912, 0xF1FA, 0x5B3D, 0xF1FB, 0x5B3E, + 0xF1FC, 0x5B3F, 0xF1FD, 0x5DC3, 0xF1FE, 0x5E70, 0xF240, 0x5FBF, + 0xF241, 0x61FB, 0xF242, 0x6507, 0xF243, 0x6510, 0xF244, 0x650D, + 0xF245, 0x6509, 0xF246, 0x650C, 0xF247, 0x650E, 0xF248, 0x6584, + 0xF249, 0x65DE, 0xF24A, 0x65DD, 0xF24B, 0x66DE, 0xF24C, 0x6AE7, + 0xF24D, 0x6AE0, 0xF24E, 0x6ACC, 0xF24F, 0x6AD1, 0xF250, 0x6AD9, + 0xF251, 0x6ACB, 0xF252, 0x6ADF, 0xF253, 0x6ADC, 0xF254, 0x6AD0, + 0xF255, 0x6AEB, 0xF256, 0x6ACF, 0xF257, 0x6ACD, 0xF258, 0x6ADE, + 0xF259, 0x6B60, 0xF25A, 0x6BB0, 0xF25B, 0x6C0C, 0xF25C, 0x7019, + 0xF25D, 0x7027, 0xF25E, 0x7020, 0xF25F, 0x7016, 0xF260, 0x702B, + 0xF261, 0x7021, 0xF262, 0x7022, 0xF263, 0x7023, 0xF264, 0x7029, + 0xF265, 0x7017, 0xF266, 0x7024, 0xF267, 0x701C, 0xF268, 0x702A, + 0xF269, 0x720C, 0xF26A, 0x720A, 0xF26B, 0x7207, 0xF26C, 0x7202, + 0xF26D, 0x7205, 0xF26E, 0x72A5, 0xF26F, 0x72A6, 0xF270, 0x72A4, + 0xF271, 0x72A3, 0xF272, 0x72A1, 0xF273, 0x74CB, 0xF274, 0x74C5, + 0xF275, 0x74B7, 0xF276, 0x74C3, 0xF277, 0x7516, 0xF278, 0x7660, + 0xF279, 0x77C9, 0xF27A, 0x77CA, 0xF27B, 0x77C4, 0xF27C, 0x77F1, + 0xF27D, 0x791D, 0xF27E, 0x791B, 0xF2A1, 0x7921, 0xF2A2, 0x791C, + 0xF2A3, 0x7917, 0xF2A4, 0x791E, 0xF2A5, 0x79B0, 0xF2A6, 0x7A67, + 0xF2A7, 0x7A68, 0xF2A8, 0x7C33, 0xF2A9, 0x7C3C, 0xF2AA, 0x7C39, + 0xF2AB, 0x7C2C, 0xF2AC, 0x7C3B, 0xF2AD, 0x7CEC, 0xF2AE, 0x7CEA, + 0xF2AF, 0x7E76, 0xF2B0, 0x7E75, 0xF2B1, 0x7E78, 0xF2B2, 0x7E70, + 0xF2B3, 0x7E77, 0xF2B4, 0x7E6F, 0xF2B5, 0x7E7A, 0xF2B6, 0x7E72, + 0xF2B7, 0x7E74, 0xF2B8, 0x7E68, 0xF2B9, 0x7F4B, 0xF2BA, 0x7F4A, + 0xF2BB, 0x7F83, 0xF2BC, 0x7F86, 0xF2BD, 0x7FB7, 0xF2BE, 0x7FFD, + 0xF2BF, 0x7FFE, 0xF2C0, 0x8078, 0xF2C1, 0x81D7, 0xF2C2, 0x81D5, + 0xF2C3, 0x8264, 0xF2C4, 0x8261, 0xF2C5, 0x8263, 0xF2C6, 0x85EB, + 0xF2C7, 0x85F1, 0xF2C8, 0x85ED, 0xF2C9, 0x85D9, 0xF2CA, 0x85E1, + 0xF2CB, 0x85E8, 0xF2CC, 0x85DA, 0xF2CD, 0x85D7, 0xF2CE, 0x85EC, + 0xF2CF, 0x85F2, 0xF2D0, 0x85F8, 0xF2D1, 0x85D8, 0xF2D2, 0x85DF, + 0xF2D3, 0x85E3, 0xF2D4, 0x85DC, 0xF2D5, 0x85D1, 0xF2D6, 0x85F0, + 0xF2D7, 0x85E6, 0xF2D8, 0x85EF, 0xF2D9, 0x85DE, 0xF2DA, 0x85E2, + 0xF2DB, 0x8800, 0xF2DC, 0x87FA, 0xF2DD, 0x8803, 0xF2DE, 0x87F6, + 0xF2DF, 0x87F7, 0xF2E0, 0x8809, 0xF2E1, 0x880C, 0xF2E2, 0x880B, + 0xF2E3, 0x8806, 0xF2E4, 0x87FC, 0xF2E5, 0x8808, 0xF2E6, 0x87FF, + 0xF2E7, 0x880A, 0xF2E8, 0x8802, 0xF2E9, 0x8962, 0xF2EA, 0x895A, + 0xF2EB, 0x895B, 0xF2EC, 0x8957, 0xF2ED, 0x8961, 0xF2EE, 0x895C, + 0xF2EF, 0x8958, 0xF2F0, 0x895D, 0xF2F1, 0x8959, 0xF2F2, 0x8988, + 0xF2F3, 0x89B7, 0xF2F4, 0x89B6, 0xF2F5, 0x89F6, 0xF2F6, 0x8B50, + 0xF2F7, 0x8B48, 0xF2F8, 0x8B4A, 0xF2F9, 0x8B40, 0xF2FA, 0x8B53, + 0xF2FB, 0x8B56, 0xF2FC, 0x8B54, 0xF2FD, 0x8B4B, 0xF2FE, 0x8B55, + 0xF340, 0x8B51, 0xF341, 0x8B42, 0xF342, 0x8B52, 0xF343, 0x8B57, + 0xF344, 0x8C43, 0xF345, 0x8C77, 0xF346, 0x8C76, 0xF347, 0x8C9A, + 0xF348, 0x8D06, 0xF349, 0x8D07, 0xF34A, 0x8D09, 0xF34B, 0x8DAC, + 0xF34C, 0x8DAA, 0xF34D, 0x8DAD, 0xF34E, 0x8DAB, 0xF34F, 0x8E6D, + 0xF350, 0x8E78, 0xF351, 0x8E73, 0xF352, 0x8E6A, 0xF353, 0x8E6F, + 0xF354, 0x8E7B, 0xF355, 0x8EC2, 0xF356, 0x8F52, 0xF357, 0x8F51, + 0xF358, 0x8F4F, 0xF359, 0x8F50, 0xF35A, 0x8F53, 0xF35B, 0x8FB4, + 0xF35C, 0x9140, 0xF35D, 0x913F, 0xF35E, 0x91B0, 0xF35F, 0x91AD, + 0xF360, 0x93DE, 0xF361, 0x93C7, 0xF362, 0x93CF, 0xF363, 0x93C2, + 0xF364, 0x93DA, 0xF365, 0x93D0, 0xF366, 0x93F9, 0xF367, 0x93EC, + 0xF368, 0x93CC, 0xF369, 0x93D9, 0xF36A, 0x93A9, 0xF36B, 0x93E6, + 0xF36C, 0x93CA, 0xF36D, 0x93D4, 0xF36E, 0x93EE, 0xF36F, 0x93E3, + 0xF370, 0x93D5, 0xF371, 0x93C4, 0xF372, 0x93CE, 0xF373, 0x93C0, + 0xF374, 0x93D2, 0xF375, 0x93E7, 0xF376, 0x957D, 0xF377, 0x95DA, + 0xF378, 0x95DB, 0xF379, 0x96E1, 0xF37A, 0x9729, 0xF37B, 0x972B, + 0xF37C, 0x972C, 0xF37D, 0x9728, 0xF37E, 0x9726, 0xF3A1, 0x97B3, + 0xF3A2, 0x97B7, 0xF3A3, 0x97B6, 0xF3A4, 0x97DD, 0xF3A5, 0x97DE, + 0xF3A6, 0x97DF, 0xF3A7, 0x985C, 0xF3A8, 0x9859, 0xF3A9, 0x985D, + 0xF3AA, 0x9857, 0xF3AB, 0x98BF, 0xF3AC, 0x98BD, 0xF3AD, 0x98BB, + 0xF3AE, 0x98BE, 0xF3AF, 0x9948, 0xF3B0, 0x9947, 0xF3B1, 0x9943, + 0xF3B2, 0x99A6, 0xF3B3, 0x99A7, 0xF3B4, 0x9A1A, 0xF3B5, 0x9A15, + 0xF3B6, 0x9A25, 0xF3B7, 0x9A1D, 0xF3B8, 0x9A24, 0xF3B9, 0x9A1B, + 0xF3BA, 0x9A22, 0xF3BB, 0x9A20, 0xF3BC, 0x9A27, 0xF3BD, 0x9A23, + 0xF3BE, 0x9A1E, 0xF3BF, 0x9A1C, 0xF3C0, 0x9A14, 0xF3C1, 0x9AC2, + 0xF3C2, 0x9B0B, 0xF3C3, 0x9B0A, 0xF3C4, 0x9B0E, 0xF3C5, 0x9B0C, + 0xF3C6, 0x9B37, 0xF3C7, 0x9BEA, 0xF3C8, 0x9BEB, 0xF3C9, 0x9BE0, + 0xF3CA, 0x9BDE, 0xF3CB, 0x9BE4, 0xF3CC, 0x9BE6, 0xF3CD, 0x9BE2, + 0xF3CE, 0x9BF0, 0xF3CF, 0x9BD4, 0xF3D0, 0x9BD7, 0xF3D1, 0x9BEC, + 0xF3D2, 0x9BDC, 0xF3D3, 0x9BD9, 0xF3D4, 0x9BE5, 0xF3D5, 0x9BD5, + 0xF3D6, 0x9BE1, 0xF3D7, 0x9BDA, 0xF3D8, 0x9D77, 0xF3D9, 0x9D81, + 0xF3DA, 0x9D8A, 0xF3DB, 0x9D84, 0xF3DC, 0x9D88, 0xF3DD, 0x9D71, + 0xF3DE, 0x9D80, 0xF3DF, 0x9D78, 0xF3E0, 0x9D86, 0xF3E1, 0x9D8B, + 0xF3E2, 0x9D8C, 0xF3E3, 0x9D7D, 0xF3E4, 0x9D6B, 0xF3E5, 0x9D74, + 0xF3E6, 0x9D75, 0xF3E7, 0x9D70, 0xF3E8, 0x9D69, 0xF3E9, 0x9D85, + 0xF3EA, 0x9D73, 0xF3EB, 0x9D7B, 0xF3EC, 0x9D82, 0xF3ED, 0x9D6F, + 0xF3EE, 0x9D79, 0xF3EF, 0x9D7F, 0xF3F0, 0x9D87, 0xF3F1, 0x9D68, + 0xF3F2, 0x9E94, 0xF3F3, 0x9E91, 0xF3F4, 0x9EC0, 0xF3F5, 0x9EFC, + 0xF3F6, 0x9F2D, 0xF3F7, 0x9F40, 0xF3F8, 0x9F41, 0xF3F9, 0x9F4D, + 0xF3FA, 0x9F56, 0xF3FB, 0x9F57, 0xF3FC, 0x9F58, 0xF3FD, 0x5337, + 0xF3FE, 0x56B2, 0xF440, 0x56B5, 0xF441, 0x56B3, 0xF442, 0x58E3, + 0xF443, 0x5B45, 0xF444, 0x5DC6, 0xF445, 0x5DC7, 0xF446, 0x5EEE, + 0xF447, 0x5EEF, 0xF448, 0x5FC0, 0xF449, 0x5FC1, 0xF44A, 0x61F9, + 0xF44B, 0x6517, 0xF44C, 0x6516, 0xF44D, 0x6515, 0xF44E, 0x6513, + 0xF44F, 0x65DF, 0xF450, 0x66E8, 0xF451, 0x66E3, 0xF452, 0x66E4, + 0xF453, 0x6AF3, 0xF454, 0x6AF0, 0xF455, 0x6AEA, 0xF456, 0x6AE8, + 0xF457, 0x6AF9, 0xF458, 0x6AF1, 0xF459, 0x6AEE, 0xF45A, 0x6AEF, + 0xF45B, 0x703C, 0xF45C, 0x7035, 0xF45D, 0x702F, 0xF45E, 0x7037, + 0xF45F, 0x7034, 0xF460, 0x7031, 0xF461, 0x7042, 0xF462, 0x7038, + 0xF463, 0x703F, 0xF464, 0x703A, 0xF465, 0x7039, 0xF466, 0x7040, + 0xF467, 0x703B, 0xF468, 0x7033, 0xF469, 0x7041, 0xF46A, 0x7213, + 0xF46B, 0x7214, 0xF46C, 0x72A8, 0xF46D, 0x737D, 0xF46E, 0x737C, + 0xF46F, 0x74BA, 0xF470, 0x76AB, 0xF471, 0x76AA, 0xF472, 0x76BE, + 0xF473, 0x76ED, 0xF474, 0x77CC, 0xF475, 0x77CE, 0xF476, 0x77CF, + 0xF477, 0x77CD, 0xF478, 0x77F2, 0xF479, 0x7925, 0xF47A, 0x7923, + 0xF47B, 0x7927, 0xF47C, 0x7928, 0xF47D, 0x7924, 0xF47E, 0x7929, + 0xF4A1, 0x79B2, 0xF4A2, 0x7A6E, 0xF4A3, 0x7A6C, 0xF4A4, 0x7A6D, + 0xF4A5, 0x7AF7, 0xF4A6, 0x7C49, 0xF4A7, 0x7C48, 0xF4A8, 0x7C4A, + 0xF4A9, 0x7C47, 0xF4AA, 0x7C45, 0xF4AB, 0x7CEE, 0xF4AC, 0x7E7B, + 0xF4AD, 0x7E7E, 0xF4AE, 0x7E81, 0xF4AF, 0x7E80, 0xF4B0, 0x7FBA, + 0xF4B1, 0x7FFF, 0xF4B2, 0x8079, 0xF4B3, 0x81DB, 0xF4B4, 0x81D9, + 0xF4B5, 0x820B, 0xF4B6, 0x8268, 0xF4B7, 0x8269, 0xF4B8, 0x8622, + 0xF4B9, 0x85FF, 0xF4BA, 0x8601, 0xF4BB, 0x85FE, 0xF4BC, 0x861B, + 0xF4BD, 0x8600, 0xF4BE, 0x85F6, 0xF4BF, 0x8604, 0xF4C0, 0x8609, + 0xF4C1, 0x8605, 0xF4C2, 0x860C, 0xF4C3, 0x85FD, 0xF4C4, 0x8819, + 0xF4C5, 0x8810, 0xF4C6, 0x8811, 0xF4C7, 0x8817, 0xF4C8, 0x8813, + 0xF4C9, 0x8816, 0xF4CA, 0x8963, 0xF4CB, 0x8966, 0xF4CC, 0x89B9, + 0xF4CD, 0x89F7, 0xF4CE, 0x8B60, 0xF4CF, 0x8B6A, 0xF4D0, 0x8B5D, + 0xF4D1, 0x8B68, 0xF4D2, 0x8B63, 0xF4D3, 0x8B65, 0xF4D4, 0x8B67, + 0xF4D5, 0x8B6D, 0xF4D6, 0x8DAE, 0xF4D7, 0x8E86, 0xF4D8, 0x8E88, + 0xF4D9, 0x8E84, 0xF4DA, 0x8F59, 0xF4DB, 0x8F56, 0xF4DC, 0x8F57, + 0xF4DD, 0x8F55, 0xF4DE, 0x8F58, 0xF4DF, 0x8F5A, 0xF4E0, 0x908D, + 0xF4E1, 0x9143, 0xF4E2, 0x9141, 0xF4E3, 0x91B7, 0xF4E4, 0x91B5, + 0xF4E5, 0x91B2, 0xF4E6, 0x91B3, 0xF4E7, 0x940B, 0xF4E8, 0x9413, + 0xF4E9, 0x93FB, 0xF4EA, 0x9420, 0xF4EB, 0x940F, 0xF4EC, 0x9414, + 0xF4ED, 0x93FE, 0xF4EE, 0x9415, 0xF4EF, 0x9410, 0xF4F0, 0x9428, + 0xF4F1, 0x9419, 0xF4F2, 0x940D, 0xF4F3, 0x93F5, 0xF4F4, 0x9400, + 0xF4F5, 0x93F7, 0xF4F6, 0x9407, 0xF4F7, 0x940E, 0xF4F8, 0x9416, + 0xF4F9, 0x9412, 0xF4FA, 0x93FA, 0xF4FB, 0x9409, 0xF4FC, 0x93F8, + 0xF4FD, 0x940A, 0xF4FE, 0x93FF, 0xF540, 0x93FC, 0xF541, 0x940C, + 0xF542, 0x93F6, 0xF543, 0x9411, 0xF544, 0x9406, 0xF545, 0x95DE, + 0xF546, 0x95E0, 0xF547, 0x95DF, 0xF548, 0x972E, 0xF549, 0x972F, + 0xF54A, 0x97B9, 0xF54B, 0x97BB, 0xF54C, 0x97FD, 0xF54D, 0x97FE, + 0xF54E, 0x9860, 0xF54F, 0x9862, 0xF550, 0x9863, 0xF551, 0x985F, + 0xF552, 0x98C1, 0xF553, 0x98C2, 0xF554, 0x9950, 0xF555, 0x994E, + 0xF556, 0x9959, 0xF557, 0x994C, 0xF558, 0x994B, 0xF559, 0x9953, + 0xF55A, 0x9A32, 0xF55B, 0x9A34, 0xF55C, 0x9A31, 0xF55D, 0x9A2C, + 0xF55E, 0x9A2A, 0xF55F, 0x9A36, 0xF560, 0x9A29, 0xF561, 0x9A2E, + 0xF562, 0x9A38, 0xF563, 0x9A2D, 0xF564, 0x9AC7, 0xF565, 0x9ACA, + 0xF566, 0x9AC6, 0xF567, 0x9B10, 0xF568, 0x9B12, 0xF569, 0x9B11, + 0xF56A, 0x9C0B, 0xF56B, 0x9C08, 0xF56C, 0x9BF7, 0xF56D, 0x9C05, + 0xF56E, 0x9C12, 0xF56F, 0x9BF8, 0xF570, 0x9C40, 0xF571, 0x9C07, + 0xF572, 0x9C0E, 0xF573, 0x9C06, 0xF574, 0x9C17, 0xF575, 0x9C14, + 0xF576, 0x9C09, 0xF577, 0x9D9F, 0xF578, 0x9D99, 0xF579, 0x9DA4, + 0xF57A, 0x9D9D, 0xF57B, 0x9D92, 0xF57C, 0x9D98, 0xF57D, 0x9D90, + 0xF57E, 0x9D9B, 0xF5A1, 0x9DA0, 0xF5A2, 0x9D94, 0xF5A3, 0x9D9C, + 0xF5A4, 0x9DAA, 0xF5A5, 0x9D97, 0xF5A6, 0x9DA1, 0xF5A7, 0x9D9A, + 0xF5A8, 0x9DA2, 0xF5A9, 0x9DA8, 0xF5AA, 0x9D9E, 0xF5AB, 0x9DA3, + 0xF5AC, 0x9DBF, 0xF5AD, 0x9DA9, 0xF5AE, 0x9D96, 0xF5AF, 0x9DA6, + 0xF5B0, 0x9DA7, 0xF5B1, 0x9E99, 0xF5B2, 0x9E9B, 0xF5B3, 0x9E9A, + 0xF5B4, 0x9EE5, 0xF5B5, 0x9EE4, 0xF5B6, 0x9EE7, 0xF5B7, 0x9EE6, + 0xF5B8, 0x9F30, 0xF5B9, 0x9F2E, 0xF5BA, 0x9F5B, 0xF5BB, 0x9F60, + 0xF5BC, 0x9F5E, 0xF5BD, 0x9F5D, 0xF5BE, 0x9F59, 0xF5BF, 0x9F91, + 0xF5C0, 0x513A, 0xF5C1, 0x5139, 0xF5C2, 0x5298, 0xF5C3, 0x5297, + 0xF5C4, 0x56C3, 0xF5C5, 0x56BD, 0xF5C6, 0x56BE, 0xF5C7, 0x5B48, + 0xF5C8, 0x5B47, 0xF5C9, 0x5DCB, 0xF5CA, 0x5DCF, 0xF5CB, 0x5EF1, + 0xF5CC, 0x61FD, 0xF5CD, 0x651B, 0xF5CE, 0x6B02, 0xF5CF, 0x6AFC, + 0xF5D0, 0x6B03, 0xF5D1, 0x6AF8, 0xF5D2, 0x6B00, 0xF5D3, 0x7043, + 0xF5D4, 0x7044, 0xF5D5, 0x704A, 0xF5D6, 0x7048, 0xF5D7, 0x7049, + 0xF5D8, 0x7045, 0xF5D9, 0x7046, 0xF5DA, 0x721D, 0xF5DB, 0x721A, + 0xF5DC, 0x7219, 0xF5DD, 0x737E, 0xF5DE, 0x7517, 0xF5DF, 0x766A, + 0xF5E0, 0x77D0, 0xF5E1, 0x792D, 0xF5E2, 0x7931, 0xF5E3, 0x792F, + 0xF5E4, 0x7C54, 0xF5E5, 0x7C53, 0xF5E6, 0x7CF2, 0xF5E7, 0x7E8A, + 0xF5E8, 0x7E87, 0xF5E9, 0x7E88, 0xF5EA, 0x7E8B, 0xF5EB, 0x7E86, + 0xF5EC, 0x7E8D, 0xF5ED, 0x7F4D, 0xF5EE, 0x7FBB, 0xF5EF, 0x8030, + 0xF5F0, 0x81DD, 0xF5F1, 0x8618, 0xF5F2, 0x862A, 0xF5F3, 0x8626, + 0xF5F4, 0x861F, 0xF5F5, 0x8623, 0xF5F6, 0x861C, 0xF5F7, 0x8619, + 0xF5F8, 0x8627, 0xF5F9, 0x862E, 0xF5FA, 0x8621, 0xF5FB, 0x8620, + 0xF5FC, 0x8629, 0xF5FD, 0x861E, 0xF5FE, 0x8625, 0xF640, 0x8829, + 0xF641, 0x881D, 0xF642, 0x881B, 0xF643, 0x8820, 0xF644, 0x8824, + 0xF645, 0x881C, 0xF646, 0x882B, 0xF647, 0x884A, 0xF648, 0x896D, + 0xF649, 0x8969, 0xF64A, 0x896E, 0xF64B, 0x896B, 0xF64C, 0x89FA, + 0xF64D, 0x8B79, 0xF64E, 0x8B78, 0xF64F, 0x8B45, 0xF650, 0x8B7A, + 0xF651, 0x8B7B, 0xF652, 0x8D10, 0xF653, 0x8D14, 0xF654, 0x8DAF, + 0xF655, 0x8E8E, 0xF656, 0x8E8C, 0xF657, 0x8F5E, 0xF658, 0x8F5B, + 0xF659, 0x8F5D, 0xF65A, 0x9146, 0xF65B, 0x9144, 0xF65C, 0x9145, + 0xF65D, 0x91B9, 0xF65E, 0x943F, 0xF65F, 0x943B, 0xF660, 0x9436, + 0xF661, 0x9429, 0xF662, 0x943D, 0xF663, 0x943C, 0xF664, 0x9430, + 0xF665, 0x9439, 0xF666, 0x942A, 0xF667, 0x9437, 0xF668, 0x942C, + 0xF669, 0x9440, 0xF66A, 0x9431, 0xF66B, 0x95E5, 0xF66C, 0x95E4, + 0xF66D, 0x95E3, 0xF66E, 0x9735, 0xF66F, 0x973A, 0xF670, 0x97BF, + 0xF671, 0x97E1, 0xF672, 0x9864, 0xF673, 0x98C9, 0xF674, 0x98C6, + 0xF675, 0x98C0, 0xF676, 0x9958, 0xF677, 0x9956, 0xF678, 0x9A39, + 0xF679, 0x9A3D, 0xF67A, 0x9A46, 0xF67B, 0x9A44, 0xF67C, 0x9A42, + 0xF67D, 0x9A41, 0xF67E, 0x9A3A, 0xF6A1, 0x9A3F, 0xF6A2, 0x9ACD, + 0xF6A3, 0x9B15, 0xF6A4, 0x9B17, 0xF6A5, 0x9B18, 0xF6A6, 0x9B16, + 0xF6A7, 0x9B3A, 0xF6A8, 0x9B52, 0xF6A9, 0x9C2B, 0xF6AA, 0x9C1D, + 0xF6AB, 0x9C1C, 0xF6AC, 0x9C2C, 0xF6AD, 0x9C23, 0xF6AE, 0x9C28, + 0xF6AF, 0x9C29, 0xF6B0, 0x9C24, 0xF6B1, 0x9C21, 0xF6B2, 0x9DB7, + 0xF6B3, 0x9DB6, 0xF6B4, 0x9DBC, 0xF6B5, 0x9DC1, 0xF6B6, 0x9DC7, + 0xF6B7, 0x9DCA, 0xF6B8, 0x9DCF, 0xF6B9, 0x9DBE, 0xF6BA, 0x9DC5, + 0xF6BB, 0x9DC3, 0xF6BC, 0x9DBB, 0xF6BD, 0x9DB5, 0xF6BE, 0x9DCE, + 0xF6BF, 0x9DB9, 0xF6C0, 0x9DBA, 0xF6C1, 0x9DAC, 0xF6C2, 0x9DC8, + 0xF6C3, 0x9DB1, 0xF6C4, 0x9DAD, 0xF6C5, 0x9DCC, 0xF6C6, 0x9DB3, + 0xF6C7, 0x9DCD, 0xF6C8, 0x9DB2, 0xF6C9, 0x9E7A, 0xF6CA, 0x9E9C, + 0xF6CB, 0x9EEB, 0xF6CC, 0x9EEE, 0xF6CD, 0x9EED, 0xF6CE, 0x9F1B, + 0xF6CF, 0x9F18, 0xF6D0, 0x9F1A, 0xF6D1, 0x9F31, 0xF6D2, 0x9F4E, + 0xF6D3, 0x9F65, 0xF6D4, 0x9F64, 0xF6D5, 0x9F92, 0xF6D6, 0x4EB9, + 0xF6D7, 0x56C6, 0xF6D8, 0x56C5, 0xF6D9, 0x56CB, 0xF6DA, 0x5971, + 0xF6DB, 0x5B4B, 0xF6DC, 0x5B4C, 0xF6DD, 0x5DD5, 0xF6DE, 0x5DD1, + 0xF6DF, 0x5EF2, 0xF6E0, 0x6521, 0xF6E1, 0x6520, 0xF6E2, 0x6526, + 0xF6E3, 0x6522, 0xF6E4, 0x6B0B, 0xF6E5, 0x6B08, 0xF6E6, 0x6B09, + 0xF6E7, 0x6C0D, 0xF6E8, 0x7055, 0xF6E9, 0x7056, 0xF6EA, 0x7057, + 0xF6EB, 0x7052, 0xF6EC, 0x721E, 0xF6ED, 0x721F, 0xF6EE, 0x72A9, + 0xF6EF, 0x737F, 0xF6F0, 0x74D8, 0xF6F1, 0x74D5, 0xF6F2, 0x74D9, + 0xF6F3, 0x74D7, 0xF6F4, 0x766D, 0xF6F5, 0x76AD, 0xF6F6, 0x7935, + 0xF6F7, 0x79B4, 0xF6F8, 0x7A70, 0xF6F9, 0x7A71, 0xF6FA, 0x7C57, + 0xF6FB, 0x7C5C, 0xF6FC, 0x7C59, 0xF6FD, 0x7C5B, 0xF6FE, 0x7C5A, + 0xF740, 0x7CF4, 0xF741, 0x7CF1, 0xF742, 0x7E91, 0xF743, 0x7F4F, + 0xF744, 0x7F87, 0xF745, 0x81DE, 0xF746, 0x826B, 0xF747, 0x8634, + 0xF748, 0x8635, 0xF749, 0x8633, 0xF74A, 0x862C, 0xF74B, 0x8632, + 0xF74C, 0x8636, 0xF74D, 0x882C, 0xF74E, 0x8828, 0xF74F, 0x8826, + 0xF750, 0x882A, 0xF751, 0x8825, 0xF752, 0x8971, 0xF753, 0x89BF, + 0xF754, 0x89BE, 0xF755, 0x89FB, 0xF756, 0x8B7E, 0xF757, 0x8B84, + 0xF758, 0x8B82, 0xF759, 0x8B86, 0xF75A, 0x8B85, 0xF75B, 0x8B7F, + 0xF75C, 0x8D15, 0xF75D, 0x8E95, 0xF75E, 0x8E94, 0xF75F, 0x8E9A, + 0xF760, 0x8E92, 0xF761, 0x8E90, 0xF762, 0x8E96, 0xF763, 0x8E97, + 0xF764, 0x8F60, 0xF765, 0x8F62, 0xF766, 0x9147, 0xF767, 0x944C, + 0xF768, 0x9450, 0xF769, 0x944A, 0xF76A, 0x944B, 0xF76B, 0x944F, + 0xF76C, 0x9447, 0xF76D, 0x9445, 0xF76E, 0x9448, 0xF76F, 0x9449, + 0xF770, 0x9446, 0xF771, 0x973F, 0xF772, 0x97E3, 0xF773, 0x986A, + 0xF774, 0x9869, 0xF775, 0x98CB, 0xF776, 0x9954, 0xF777, 0x995B, + 0xF778, 0x9A4E, 0xF779, 0x9A53, 0xF77A, 0x9A54, 0xF77B, 0x9A4C, + 0xF77C, 0x9A4F, 0xF77D, 0x9A48, 0xF77E, 0x9A4A, 0xF7A1, 0x9A49, + 0xF7A2, 0x9A52, 0xF7A3, 0x9A50, 0xF7A4, 0x9AD0, 0xF7A5, 0x9B19, + 0xF7A6, 0x9B2B, 0xF7A7, 0x9B3B, 0xF7A8, 0x9B56, 0xF7A9, 0x9B55, + 0xF7AA, 0x9C46, 0xF7AB, 0x9C48, 0xF7AC, 0x9C3F, 0xF7AD, 0x9C44, + 0xF7AE, 0x9C39, 0xF7AF, 0x9C33, 0xF7B0, 0x9C41, 0xF7B1, 0x9C3C, + 0xF7B2, 0x9C37, 0xF7B3, 0x9C34, 0xF7B4, 0x9C32, 0xF7B5, 0x9C3D, + 0xF7B6, 0x9C36, 0xF7B7, 0x9DDB, 0xF7B8, 0x9DD2, 0xF7B9, 0x9DDE, + 0xF7BA, 0x9DDA, 0xF7BB, 0x9DCB, 0xF7BC, 0x9DD0, 0xF7BD, 0x9DDC, + 0xF7BE, 0x9DD1, 0xF7BF, 0x9DDF, 0xF7C0, 0x9DE9, 0xF7C1, 0x9DD9, + 0xF7C2, 0x9DD8, 0xF7C3, 0x9DD6, 0xF7C4, 0x9DF5, 0xF7C5, 0x9DD5, + 0xF7C6, 0x9DDD, 0xF7C7, 0x9EB6, 0xF7C8, 0x9EF0, 0xF7C9, 0x9F35, + 0xF7CA, 0x9F33, 0xF7CB, 0x9F32, 0xF7CC, 0x9F42, 0xF7CD, 0x9F6B, + 0xF7CE, 0x9F95, 0xF7CF, 0x9FA2, 0xF7D0, 0x513D, 0xF7D1, 0x5299, + 0xF7D2, 0x58E8, 0xF7D3, 0x58E7, 0xF7D4, 0x5972, 0xF7D5, 0x5B4D, + 0xF7D6, 0x5DD8, 0xF7D7, 0x882F, 0xF7D8, 0x5F4F, 0xF7D9, 0x6201, + 0xF7DA, 0x6203, 0xF7DB, 0x6204, 0xF7DC, 0x6529, 0xF7DD, 0x6525, + 0xF7DE, 0x6596, 0xF7DF, 0x66EB, 0xF7E0, 0x6B11, 0xF7E1, 0x6B12, + 0xF7E2, 0x6B0F, 0xF7E3, 0x6BCA, 0xF7E4, 0x705B, 0xF7E5, 0x705A, + 0xF7E6, 0x7222, 0xF7E7, 0x7382, 0xF7E8, 0x7381, 0xF7E9, 0x7383, + 0xF7EA, 0x7670, 0xF7EB, 0x77D4, 0xF7EC, 0x7C67, 0xF7ED, 0x7C66, + 0xF7EE, 0x7E95, 0xF7EF, 0x826C, 0xF7F0, 0x863A, 0xF7F1, 0x8640, + 0xF7F2, 0x8639, 0xF7F3, 0x863C, 0xF7F4, 0x8631, 0xF7F5, 0x863B, + 0xF7F6, 0x863E, 0xF7F7, 0x8830, 0xF7F8, 0x8832, 0xF7F9, 0x882E, + 0xF7FA, 0x8833, 0xF7FB, 0x8976, 0xF7FC, 0x8974, 0xF7FD, 0x8973, + 0xF7FE, 0x89FE, 0xF840, 0x8B8C, 0xF841, 0x8B8E, 0xF842, 0x8B8B, + 0xF843, 0x8B88, 0xF844, 0x8C45, 0xF845, 0x8D19, 0xF846, 0x8E98, + 0xF847, 0x8F64, 0xF848, 0x8F63, 0xF849, 0x91BC, 0xF84A, 0x9462, + 0xF84B, 0x9455, 0xF84C, 0x945D, 0xF84D, 0x9457, 0xF84E, 0x945E, + 0xF84F, 0x97C4, 0xF850, 0x97C5, 0xF851, 0x9800, 0xF852, 0x9A56, + 0xF853, 0x9A59, 0xF854, 0x9B1E, 0xF855, 0x9B1F, 0xF856, 0x9B20, + 0xF857, 0x9C52, 0xF858, 0x9C58, 0xF859, 0x9C50, 0xF85A, 0x9C4A, + 0xF85B, 0x9C4D, 0xF85C, 0x9C4B, 0xF85D, 0x9C55, 0xF85E, 0x9C59, + 0xF85F, 0x9C4C, 0xF860, 0x9C4E, 0xF861, 0x9DFB, 0xF862, 0x9DF7, + 0xF863, 0x9DEF, 0xF864, 0x9DE3, 0xF865, 0x9DEB, 0xF866, 0x9DF8, + 0xF867, 0x9DE4, 0xF868, 0x9DF6, 0xF869, 0x9DE1, 0xF86A, 0x9DEE, + 0xF86B, 0x9DE6, 0xF86C, 0x9DF2, 0xF86D, 0x9DF0, 0xF86E, 0x9DE2, + 0xF86F, 0x9DEC, 0xF870, 0x9DF4, 0xF871, 0x9DF3, 0xF872, 0x9DE8, + 0xF873, 0x9DED, 0xF874, 0x9EC2, 0xF875, 0x9ED0, 0xF876, 0x9EF2, + 0xF877, 0x9EF3, 0xF878, 0x9F06, 0xF879, 0x9F1C, 0xF87A, 0x9F38, + 0xF87B, 0x9F37, 0xF87C, 0x9F36, 0xF87D, 0x9F43, 0xF87E, 0x9F4F, + 0xF8A1, 0x9F71, 0xF8A2, 0x9F70, 0xF8A3, 0x9F6E, 0xF8A4, 0x9F6F, + 0xF8A5, 0x56D3, 0xF8A6, 0x56CD, 0xF8A7, 0x5B4E, 0xF8A8, 0x5C6D, + 0xF8A9, 0x652D, 0xF8AA, 0x66ED, 0xF8AB, 0x66EE, 0xF8AC, 0x6B13, + 0xF8AD, 0x705F, 0xF8AE, 0x7061, 0xF8AF, 0x705D, 0xF8B0, 0x7060, + 0xF8B1, 0x7223, 0xF8B2, 0x74DB, 0xF8B3, 0x74E5, 0xF8B4, 0x77D5, + 0xF8B5, 0x7938, 0xF8B6, 0x79B7, 0xF8B7, 0x79B6, 0xF8B8, 0x7C6A, + 0xF8B9, 0x7E97, 0xF8BA, 0x7F89, 0xF8BB, 0x826D, 0xF8BC, 0x8643, + 0xF8BD, 0x8838, 0xF8BE, 0x8837, 0xF8BF, 0x8835, 0xF8C0, 0x884B, + 0xF8C1, 0x8B94, 0xF8C2, 0x8B95, 0xF8C3, 0x8E9E, 0xF8C4, 0x8E9F, + 0xF8C5, 0x8EA0, 0xF8C6, 0x8E9D, 0xF8C7, 0x91BE, 0xF8C8, 0x91BD, + 0xF8C9, 0x91C2, 0xF8CA, 0x946B, 0xF8CB, 0x9468, 0xF8CC, 0x9469, + 0xF8CD, 0x96E5, 0xF8CE, 0x9746, 0xF8CF, 0x9743, 0xF8D0, 0x9747, + 0xF8D1, 0x97C7, 0xF8D2, 0x97E5, 0xF8D3, 0x9A5E, 0xF8D4, 0x9AD5, + 0xF8D5, 0x9B59, 0xF8D6, 0x9C63, 0xF8D7, 0x9C67, 0xF8D8, 0x9C66, + 0xF8D9, 0x9C62, 0xF8DA, 0x9C5E, 0xF8DB, 0x9C60, 0xF8DC, 0x9E02, + 0xF8DD, 0x9DFE, 0xF8DE, 0x9E07, 0xF8DF, 0x9E03, 0xF8E0, 0x9E06, + 0xF8E1, 0x9E05, 0xF8E2, 0x9E00, 0xF8E3, 0x9E01, 0xF8E4, 0x9E09, + 0xF8E5, 0x9DFF, 0xF8E6, 0x9DFD, 0xF8E7, 0x9E04, 0xF8E8, 0x9EA0, + 0xF8E9, 0x9F1E, 0xF8EA, 0x9F46, 0xF8EB, 0x9F74, 0xF8EC, 0x9F75, + 0xF8ED, 0x9F76, 0xF8EE, 0x56D4, 0xF8EF, 0x652E, 0xF8F0, 0x65B8, + 0xF8F1, 0x6B18, 0xF8F2, 0x6B19, 0xF8F3, 0x6B17, 0xF8F4, 0x6B1A, + 0xF8F5, 0x7062, 0xF8F6, 0x7226, 0xF8F7, 0x72AA, 0xF8F8, 0x77D8, + 0xF8F9, 0x77D9, 0xF8FA, 0x7939, 0xF8FB, 0x7C69, 0xF8FC, 0x7C6B, + 0xF8FD, 0x7CF6, 0xF8FE, 0x7E9A, 0xF940, 0x7E98, 0xF941, 0x7E9B, + 0xF942, 0x7E99, 0xF943, 0x81E0, 0xF944, 0x81E1, 0xF945, 0x8646, + 0xF946, 0x8647, 0xF947, 0x8648, 0xF948, 0x8979, 0xF949, 0x897A, + 0xF94A, 0x897C, 0xF94B, 0x897B, 0xF94C, 0x89FF, 0xF94D, 0x8B98, + 0xF94E, 0x8B99, 0xF94F, 0x8EA5, 0xF950, 0x8EA4, 0xF951, 0x8EA3, + 0xF952, 0x946E, 0xF953, 0x946D, 0xF954, 0x946F, 0xF955, 0x9471, + 0xF956, 0x9473, 0xF957, 0x9749, 0xF958, 0x9872, 0xF959, 0x995F, + 0xF95A, 0x9C68, 0xF95B, 0x9C6E, 0xF95C, 0x9C6D, 0xF95D, 0x9E0B, + 0xF95E, 0x9E0D, 0xF95F, 0x9E10, 0xF960, 0x9E0F, 0xF961, 0x9E12, + 0xF962, 0x9E11, 0xF963, 0x9EA1, 0xF964, 0x9EF5, 0xF965, 0x9F09, + 0xF966, 0x9F47, 0xF967, 0x9F78, 0xF968, 0x9F7B, 0xF969, 0x9F7A, + 0xF96A, 0x9F79, 0xF96B, 0x571E, 0xF96C, 0x7066, 0xF96D, 0x7C6F, + 0xF96E, 0x883C, 0xF96F, 0x8DB2, 0xF970, 0x8EA6, 0xF971, 0x91C3, + 0xF972, 0x9474, 0xF973, 0x9478, 0xF974, 0x9476, 0xF975, 0x9475, + 0xF976, 0x9A60, 0xF977, 0x9C74, 0xF978, 0x9C73, 0xF979, 0x9C71, + 0xF97A, 0x9C75, 0xF97B, 0x9E14, 0xF97C, 0x9E13, 0xF97D, 0x9EF6, + 0xF97E, 0x9F0A, 0xF9A1, 0x9FA4, 0xF9A2, 0x7068, 0xF9A3, 0x7065, + 0xF9A4, 0x7CF7, 0xF9A5, 0x866A, 0xF9A6, 0x883E, 0xF9A7, 0x883D, + 0xF9A8, 0x883F, 0xF9A9, 0x8B9E, 0xF9AA, 0x8C9C, 0xF9AB, 0x8EA9, + 0xF9AC, 0x8EC9, 0xF9AD, 0x974B, 0xF9AE, 0x9873, 0xF9AF, 0x9874, + 0xF9B0, 0x98CC, 0xF9B1, 0x9961, 0xF9B2, 0x99AB, 0xF9B3, 0x9A64, + 0xF9B4, 0x9A66, 0xF9B5, 0x9A67, 0xF9B6, 0x9B24, 0xF9B7, 0x9E15, + 0xF9B8, 0x9E17, 0xF9B9, 0x9F48, 0xF9BA, 0x6207, 0xF9BB, 0x6B1E, + 0xF9BC, 0x7227, 0xF9BD, 0x864C, 0xF9BE, 0x8EA8, 0xF9BF, 0x9482, + 0xF9C0, 0x9480, 0xF9C1, 0x9481, 0xF9C2, 0x9A69, 0xF9C3, 0x9A68, + 0xF9C4, 0x9B2E, 0xF9C5, 0x9E19, 0xF9C6, 0x7229, 0xF9C7, 0x864B, + 0xF9C8, 0x8B9F, 0xF9C9, 0x9483, 0xF9CA, 0x9C79, 0xF9CB, 0x9EB7, + 0xF9CC, 0x7675, 0xF9CD, 0x9A6B, 0xF9CE, 0x9C7A, 0xF9CF, 0x9E1D, + 0xF9D0, 0x7069, 0xF9D1, 0x706A, 0xF9D2, 0x9EA4, 0xF9D3, 0x9F7E, + 0xF9D4, 0x9F49, 0xF9D5, 0x9F98, 0xF9D6, 0x7881, 0xF9D7, 0x92B9, + 0xF9D8, 0x88CF, 0xF9D9, 0x58BB, 0xF9DA, 0x6052, 0xF9DB, 0x7CA7, + 0xF9DC, 0x5AFA, 0xF9DD, 0x2554, 0xF9DE, 0x2566, 0xF9DF, 0x2557, + 0xF9E0, 0x2560, 0xF9E1, 0x256C, 0xF9E2, 0x2563, 0xF9E3, 0x255A, + 0xF9E4, 0x2569, 0xF9E5, 0x255D, 0xF9E6, 0x2552, 0xF9E7, 0x2564, + 0xF9E8, 0x2555, 0xF9E9, 0x255E, 0xF9EA, 0x256A, 0xF9EB, 0x2561, + 0xF9EC, 0x2558, 0xF9ED, 0x2567, 0xF9EE, 0x255B, 0xF9EF, 0x2553, + 0xF9F0, 0x2565, 0xF9F1, 0x2556, 0xF9F2, 0x255F, 0xF9F3, 0x256B, + 0xF9F4, 0x2562, 0xF9F5, 0x2559, 0xF9F6, 0x2568, 0xF9F7, 0x255C, + 0xF9F8, 0x2551, 0xF9F9, 0x2550, 0xF9FA, 0x256D, 0xF9FB, 0x256E, + 0xF9FC, 0x2570, 0xF9FD, 0x256F, 0xF9FE, 0x2593, 0, 0 +}; + + + +WCHAR ff_convert ( /* Converted code, 0 means conversion error */ + WCHAR chr, /* Character code to be converted */ + UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ +) +{ + const WCHAR *p; + WCHAR c; + int i, n, li, hi; + + + if (chr < 0x80) { /* ASCII */ + c = chr; + } else { + if (dir) { /* OEM code to unicode */ + p = oem2uni; + hi = sizeof oem2uni / 4 - 1; + } else { /* Unicode to OEM code */ + p = uni2oem; + hi = sizeof uni2oem / 4 - 1; + } + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (chr == p[i * 2]) break; + if (chr > p[i * 2]) + li = i; + else + hi = i; + } + c = n ? p[i * 2 + 1] : 0; + } + + return c; +} + + + +WCHAR ff_wtoupper ( /* Returns upper converted character */ + WCHAR chr /* Unicode character to be upper converted (BMP only) */ +) +{ + /* Compressed upper conversion table */ + static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WCHAR *p; + WCHAR bc, nc, cmd; + + + p = chr < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || chr < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (chr < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: chr = p[chr - bc]; break; /* Table conversion */ + case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ + case 2: chr -= 16; break; /* Shift -16 */ + case 3: chr -= 32; break; /* Shift -32 */ + case 4: chr -= 48; break; /* Shift -48 */ + case 5: chr -= 26; break; /* Shift -26 */ + case 6: chr += 8; break; /* Shift +8 */ + case 7: chr -= 80; break; /* Shift -80 */ + case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + + return chr; +} + +#endif diff --git a/extras/fatfs/ccsbcs.h b/extras/fatfs/ccsbcs.h new file mode 100644 index 0000000..cc31457 --- /dev/null +++ b/extras/fatfs/ccsbcs.h @@ -0,0 +1,382 @@ +/*------------------------------------------------------------------------*/ +/* Unicode - Local code bidirectional converter (C)ChaN, 2015 */ +/* (SBCS code pages) */ +/*------------------------------------------------------------------------*/ +/* 437 U.S. +/ 720 Arabic +/ 737 Greek +/ 771 KBL +/ 775 Baltic +/ 850 Latin 1 +/ 852 Latin 2 +/ 855 Cyrillic +/ 857 Turkish +/ 860 Portuguese +/ 861 Icelandic +/ 862 Hebrew +/ 863 Canadian French +/ 864 Arabic +/ 865 Nordic +/ 866 Russian +/ 869 Greek 2 +*/ + +#include "ff.h" + +#if _CODE_PAGE == 437 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP437(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 720 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP720(0x80-0xFF) to Unicode conversion table */ + 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9, 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, + 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 737 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP737(0x80-0xFF) to Unicode conversion table */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, + 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, + 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, + 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 771 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP771(0x80-0xFF) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x0104, 0x0105, 0x010C, 0x010D, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0118, 0x0119, 0x0116, 0x0117, 0x012E, 0x012F, 0x0160, 0x0161, 0x0172, 0x0173, 0x016A, 0x016B, 0x017D, 0x017E, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 775 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP775(0x80-0xFF) to Unicode conversion table */ + 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, + 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, + 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, + 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 850 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP850(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 852 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP852(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, + 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, + 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 855 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP855(0x80-0xFF) to Unicode conversion table */ + 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, + 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, + 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, + 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, + 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 857 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP857(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000, 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 860 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP860(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, + 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 861 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP861(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 862 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP862(0x80-0xFF) to Unicode conversion table */ + 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 863 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP863(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x2017, 0x00C0, + 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, + 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00BB, 0x00B3, 0x00AF, 0x00CE, 0x3210, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2219, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 864 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP864(0x80-0xFF) to Unicode conversion table */ + 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, + 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, 0x00BB, 0xFEF7, 0xFEF8, 0x0000, 0x0000, 0xFEFB, 0xFEFC, 0x0000, + 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0x0000, 0x20AC, 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, + 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, + 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, + 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, + 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, 0x0000 +}; + +#elif _CODE_PAGE == 865 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP865(0x80-0xFF) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C5, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 866 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP866(0x80-0xFF) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 +}; + +#elif _CODE_PAGE == 869 +#define _TBLDEF 1 +static +const WCHAR Tbl[] = { /* CP869(0x80-0xFF) to Unicode conversion table */ + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x0386, 0x00B7, 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, + 0x038A, 0x03AA, 0x038C, 0x00B7, 0x00B7, 0x038E, 0x03AB, 0x00A9, 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, + 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0A30, 0x03A1, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, + 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, + 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, + 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 +}; + +#endif + +#if _TBLDEF && _USE_LFN + +WCHAR ff_convert ( /* Converted character, Returns zero on error */ + WCHAR chr, /* Character code to be converted */ + UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ +) +{ + WCHAR c; + + + if (chr < 0x80) { /* ASCII */ + c = chr; + + } else { + if (dir) { /* OEM code to Unicode */ + c = (chr >= 0x100) ? 0 : Tbl[chr - 0x80]; + + } else { /* Unicode to OEM code */ + for (c = 0; c < 0x80; c++) { + if (chr == Tbl[c]) break; + } + c = (c + 0x80) & 0xFF; + } + } + + return c; +} + + + +WCHAR ff_wtoupper ( /* Returns upper converted character */ + WCHAR chr /* Unicode character to be upper converted (BMP only) */ +) +{ + /* Compressed upper conversion table */ + static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WCHAR *p; + WCHAR bc, nc, cmd; + + + p = chr < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || chr < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (chr < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: chr = p[chr - bc]; break; /* Table conversion */ + case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ + case 2: chr -= 16; break; /* Shift -16 */ + case 3: chr -= 32; break; /* Shift -32 */ + case 4: chr -= 48; break; /* Shift -48 */ + case 5: chr -= 26; break; /* Shift -26 */ + case 6: chr += 8; break; /* Shift +8 */ + case 7: chr -= 80; break; /* Shift -80 */ + case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + + return chr; +} + +#endif diff --git a/extras/fatfs/component.mk b/extras/fatfs/component.mk new file mode 100644 index 0000000..03f5e3f --- /dev/null +++ b/extras/fatfs/component.mk @@ -0,0 +1,37 @@ +# Component makefile for extras/fatfs +INC_DIRS += $(fatfs_ROOT).. + +# args for passing into compile rule generation +fatfs_SRC_DIR = $(fatfs_ROOT) + +FATFS_DIR := $(dir $(lastword $(MAKEFILE_LIST))) + +# FatFs default parameters +include $(FATFS_DIR)defaults.mk + +fatfs_CFLAGS = $(CFLAGS) \ + -D_FS_READONLY=$(FATFS_FS_READONLY) \ + -D_USE_STRFUNC=$(FATFS_USE_STRFUNC) \ + -D_CODE_PAGE=$(FATFS_CODE_PAGE) \ + -D_USE_FIND=$(FATFS_USE_FIND) \ + -D_USE_MKFS=$(FATFS_USE_MKFS) \ + -D_USE_FASTSEEK=$(FATFS_USE_FASTSEEK) \ + -D_USE_EXPAND=$(FATFS_USE_EXPAND) \ + -D_USE_CHMOD=$(FATFS_USE_CHMOD) \ + -D_USE_LABEL=$(FATFS_USE_LABEL) \ + -D_USE_FORWARD=$(FATFS_USE_FORWARD) \ + -D_CODE_PAGE=$(FATFS_CODE_PAGE) \ + -D_USE_LFN=$(FATFS_USE_LFN) \ + -D_MAX_LFN=$(FATFS_MAX_LFN) \ + -D_LFN_UNICODE=$(FATFS_LFN_UNICODE) \ + -D_STRF_ENCODE=$(FATFS_STRF_ENCODE) \ + -D_FS_RPATH=$(FATFS_FS_RPATH) \ + -D_FS_EXFAT=$(FATFS_FS_EXFAT) \ + -D_FS_NORTC=$(FATFS_FS_NORTC) \ + -D_NORTC_MON=$(FATFS_NORTC_MON) \ + -D_NORTC_MDAY=$(FATFS_NORTC_MDAY) \ + -D_NORTC_YEAR=$(FATFS_NORTC_YEAR) \ + -D_FS_LOCK=$(FATFS_FS_LOCK) \ + -D_FS_TIMEOUT=$(FATFS_FS_TIMEOUT) + +$(eval $(call component_compile_rules,fatfs)) diff --git a/extras/fatfs/defaults.mk b/extras/fatfs/defaults.mk new file mode 100644 index 0000000..71f812e --- /dev/null +++ b/extras/fatfs/defaults.mk @@ -0,0 +1,128 @@ +######################################### +# Default FatFs parameters +######################################### + +# This option switches read-only configuration. (0:Read/Write or 1:Read-only) +# Read-only configuration removes writing API functions, f_write(), f_sync(), +# f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree() +# and optional writing functions as well. +FATFS_FS_READONLY ?= 0 + +# This option switches string functions, f_gets(), f_putc(), f_puts() and +# f_printf(). +# 0: Disable string functions. +# 1: Enable without LF-CRLF conversion. +# 2: Enable with LF-CRLF conversion. +FATFS_USE_STRFUNC ?= 1 + +# This option switches filtered directory read functions, f_findfirst() and +# f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) +FATFS_USE_FIND ?= 2 + +# This option switches f_mkfs() function. (0:Disable or 1:Enable) +FATFS_USE_MKFS ?= 1 + +# This option switches fast seek function. (0:Disable or 1:Enable) +FATFS_USE_FASTSEEK ?= 1 + +# This option switches f_expand function. (0:Disable or 1:Enable) +FATFS_USE_EXPAND ?= 1 + +# This option switches attribute manipulation functions, f_chmod() and f_utime(). +# (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. +FATFS_USE_CHMOD ?= 1 + +# This option switches volume label functions, f_getlabel() and f_setlabel(). +# (0:Disable or 1:Enable) +FATFS_USE_LABEL ?= 1 + +# This option switches f_forward() function. (0:Disable or 1:Enable) +FATFS_USE_FORWARD ?= 1 + +# This option specifies the OEM code page to be used on the target system. +# Incorrect setting of the code page can cause a file open failure. +# 1 - ASCII (No extended character. Non-LFN cfg. only) +# 437 - U.S. +# 720 - Arabic +# 737 - Greek +# 771 - KBL +# 775 - Baltic +# 850 - Latin 1 +# 852 - Latin 2 +# 855 - Cyrillic +# 857 - Turkish +# 860 - Portuguese +# 861 - Icelandic +# 862 - Hebrew +# 863 - Canadian French +# 864 - Arabic +# 865 - Nordic +# 866 - Russian +# 869 - Greek 2 +# 932 - Japanese (DBCS) +# 936 - Simplified Chinese (DBCS) +# 949 - Korean (DBCS) +# 950 - Traditional Chinese (DBCS) +FATFS_CODE_PAGE ?= 437 + +# The FATFS_USE_LFN switches the support of long file name (LFN). +# 0: Disable support of LFN. FATFS_MAX_LFN has no effect. +# 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. +# 2: Enable LFN with dynamic working buffer on the STACK. +# 3: Enable LFN with dynamic working buffer on the HEAP. +# The working buffer occupies (FATFS_MAX_LFN + 1) * 2 bytes and +# additional 608 bytes at exFAT enabled. FATFS_MAX_LFN can be in range from 12 to 255. +# It should be set 255 to support full featured LFN operations. +# When use stack for the working buffer, take care on stack overflow. +FATFS_USE_LFN ?= 3 +FATFS_MAX_LFN ?= 255 + +# This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16) +# To use Unicode string for the path name, enable LFN and set FATFS_LFN_UNICODE = 1. +# This option also affects behavior of string I/O functions. +FATFS_LFN_UNICODE ?= 0 + +# When FATFS_LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to +# be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf(). +# 0: ANSI/OEM +# 1: UTF-16LE +# 2: UTF-16BE +# 3: UTF-8 +# This option has no effect when FATFS_LFN_UNICODE == 0. +FATFS_STRF_ENCODE ?= 3 + +# This option configures support of relative path. +# 0: Disable relative path and remove related functions. +# 1: Enable relative path. f_chdir() and f_chdrive() are available. +# 2: f_getcwd() function is available in addition to 1. +FATFS_FS_RPATH ?= 2 + +# This option switches support of exFAT file system. (0:Disable or 1:Enable) +# When enable exFAT, also LFN needs to be enabled. (FATFS_USE_LFN >= 1) +FATFS_FS_EXFAT ?= 1 + +# The option FATFS_FS_NORTC switches timestamp functiton. If the system does not have +# any RTC function or valid timestamp is not needed, set FATFS_FS_NORTC = 1 to disable +# the timestamp function. All objects modified by FatFs will have a fixed timestamp +# defined by FATFS_NORTC_MON, FATFS_NORTC_MDAY and _NORTC_YEAR in local time. +# To enable timestamp function (FATFS_FS_NORTC = 0), get_fattime() function need to be +# added to the project to get current time form real-time clock. FATFS_NORTC_MON, +# FATFS_NORTC_MDAY and FATFS_NORTC_YEAR have no effect. +# These options have no effect at read-only configuration (FATFS_FS_READONLY = 1). +FATFS_FS_NORTC ?= 1 +FATFS_NORTC_MON ?= 1 +FATFS_NORTC_MDAY ?= 1 +FATFS_NORTC_YEAR ?= 2016 + +# The option FATFS_FS_LOCK switches file lock function to control duplicated file open +# and illegal operation to open objects. This option must be 0 when FATFS_FS_READONLY +# is 1. +# 0: Disable file lock function. To avoid volume corruption, application program +# should avoid illegal open, remove and rename to the open objects. +# >0: Enable file lock function. The value defines how many files/sub-directories +# can be opened simultaneously under file lock control. Note that the file +# lock control is independent of re-entrancy. */ +FATFS_FS_LOCK ?= 64 + +# Timeout (system ticks) when requesting grant to access the volume +FATFS_FS_TIMEOUT ?= 1000 diff --git a/extras/fatfs/diskio.c b/extras/fatfs/diskio.c new file mode 100644 index 0000000..1ac2e61 --- /dev/null +++ b/extras/fatfs/diskio.c @@ -0,0 +1,108 @@ +/* + * FatFs integration to esp-open-rtos + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "diskio.h" +#include +#include +#include +#include +#include +#include "ffconf.h" +#include "volumes.h" + +static sdio_card_t *devices[_VOLUMES] = { 0 }; + +static const uint8_t card_types[] = { + [SDIO_TYPE_UNKNOWN] = 0, + [SDIO_TYPE_MMC] = (1 << 0), + [SDIO_TYPE_SD1] = (1 << 1), + [SDIO_TYPE_SD2] = (1 << 2), + [SDIO_TYPE_SDHC] = (1 << 3) | (1 << 2), +}; + +DSTATUS disk_status(BYTE pdrv) +{ + if (pdrv >= _VOLUMES || !devices[pdrv] || devices[pdrv]->type == SDIO_TYPE_UNKNOWN) + return STA_NOINIT; + return 0; +} + +DSTATUS disk_initialize(BYTE pdrv) +{ + if (pdrv >= _VOLUMES) + return STA_NOINIT; + + // allocate descriptior + if (!devices[pdrv]) + { + devices[pdrv] = malloc(sizeof(sdio_card_t)); + if (!devices[pdrv]) + return STA_NOINIT; + } + + // Init card + if (sdio_init(devices[pdrv], f_drv_to_gpio(pdrv), _FF_HIGH_SPEED_SPI_FREQ_DIV) != SDIO_ERR_NONE) + return STA_NOINIT; + + return 0; +} + +DRESULT disk_read(BYTE pdrv, BYTE *buff, DWORD sector, UINT count) +{ + if (pdrv >= _VOLUMES || !devices[pdrv]) + return RES_PARERR; + if (sdio_read_sectors(devices[pdrv], sector, buff, count) != SDIO_ERR_NONE) + return RES_ERROR; + return RES_OK; +} + +DRESULT disk_write(BYTE pdrv, const BYTE *buff, DWORD sector, UINT count) +{ + if (pdrv >= _VOLUMES || !devices[pdrv]) + return RES_PARERR; + if (sdio_write_sectors(devices[pdrv], sector, (uint8_t *)buff, count) != SDIO_ERR_NONE) + return RES_ERROR; + return RES_OK; +} + +DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void *buff) +{ + if (pdrv >= _VOLUMES || !devices[pdrv]) + return RES_PARERR; + + uint8_t *buf8 = (uint8_t *)buff; + uint32_t *buf32 = (uint32_t *)buff; + + switch (cmd) + { + case CTRL_SYNC: + return RES_OK; + case GET_SECTOR_COUNT: + buf32[0] = devices[pdrv]->sectors; + return RES_OK; + case GET_BLOCK_SIZE: + buf32[0] = 512; + return RES_OK; + case CTRL_TRIM: + return sdio_erase_sectors(devices[pdrv], buf32[0], buf32[1]) != SDIO_ERR_NONE + ? RES_ERROR + : RES_OK; + case MMC_GET_TYPE: + buf8[0] = card_types[devices[pdrv]->type]; + return buf8[0] ? RES_OK : RES_ERROR; + case MMC_GET_CSD: + memcpy(buff, devices[pdrv]->csd.data, 16); + return RES_OK; + case MMC_GET_CID: + memcpy(buff, devices[pdrv]->cid.data, 16); + return RES_OK; + case MMC_GET_OCR: + buf32[0] = devices[pdrv]->ocr.data; + return RES_OK; + } + return RES_ERROR; +} diff --git a/extras/fatfs/diskio.h b/extras/fatfs/diskio.h new file mode 100644 index 0000000..03e8b7c --- /dev/null +++ b/extras/fatfs/diskio.h @@ -0,0 +1,80 @@ +/*-----------------------------------------------------------------------/ +/ Low level disk interface modlue include file (C)ChaN, 2014 / +/-----------------------------------------------------------------------*/ + +#ifndef _DISKIO_DEFINED +#define _DISKIO_DEFINED + +#ifdef __cplusplus +extern "C" { +#endif + +#include "integer.h" + + +/* Status of Disk Functions */ +typedef BYTE DSTATUS; + +/* Results of Disk Functions */ +typedef enum { + RES_OK = 0, /* 0: Successful */ + RES_ERROR, /* 1: R/W Error */ + RES_WRPRT, /* 2: Write Protected */ + RES_NOTRDY, /* 3: Not Ready */ + RES_PARERR /* 4: Invalid Parameter */ +} DRESULT; + + +/*---------------------------------------*/ +/* Prototypes for disk control functions */ + + +DSTATUS disk_initialize (BYTE pdrv); +DSTATUS disk_status (BYTE pdrv); +DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count); +DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count); +DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); + + +/* Disk Status Bits (DSTATUS) */ + +#define STA_NOINIT 0x01 /* Drive not initialized */ +#define STA_NODISK 0x02 /* No medium in the drive */ +#define STA_PROTECT 0x04 /* Write protected */ + + +/* Command code for disk_ioctrl fucntion */ + +/* Generic command (Used by FatFs) */ +#define CTRL_SYNC 0 /* Complete pending write process (needed at _FS_READONLY == 0) */ +#define GET_SECTOR_COUNT 1 /* Get media size (needed at _USE_MKFS == 1) */ +#define GET_SECTOR_SIZE 2 /* Get sector size (needed at _MAX_SS != _MIN_SS) */ +#define GET_BLOCK_SIZE 3 /* Get erase block size (needed at _USE_MKFS == 1) */ +#define CTRL_TRIM 4 /* Inform device that the data on the block of sectors is no longer used (needed at _USE_TRIM == 1) */ + +/* Generic command (Not used by FatFs) */ +#define CTRL_POWER 5 /* Get/Set power status */ +#define CTRL_LOCK 6 /* Lock/Unlock media removal */ +#define CTRL_EJECT 7 /* Eject media */ +#define CTRL_FORMAT 8 /* Create physical format on the media */ + +/* MMC/SDC specific ioctl command */ +#define MMC_GET_TYPE 10 /* Get card type */ +#define MMC_GET_CSD 11 /* Get CSD */ +#define MMC_GET_CID 12 /* Get CID */ +#define MMC_GET_OCR 13 /* Get OCR */ +#define MMC_GET_SDSTAT 14 /* Get SD status */ +#define ISDIO_READ 55 /* Read data form SD iSDIO register */ +#define ISDIO_WRITE 56 /* Write data to SD iSDIO register */ +#define ISDIO_MRITE 57 /* Masked write data to SD iSDIO register */ + +/* ATA/CF specific ioctl command */ +#define ATA_GET_REV 20 /* Get F/W revision */ +#define ATA_GET_MODEL 21 /* Get model name */ +#define ATA_GET_SN 22 /* Get serial number */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/extras/fatfs/ff.c b/extras/fatfs/ff.c new file mode 100644 index 0000000..ac1e571 --- /dev/null +++ b/extras/fatfs/ff.c @@ -0,0 +1,6041 @@ +/*----------------------------------------------------------------------------/ +/ FatFs - Generic FAT file system module R0.12b / +/-----------------------------------------------------------------------------/ +/ +/ Copyright (C) 2016, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: + +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +/----------------------------------------------------------------------------*/ + + +#include "ff.h" /* Declarations of FatFs API */ +#include "diskio.h" /* Declarations of device I/O functions */ + + +/*-------------------------------------------------------------------------- + + Module Private Definitions + +---------------------------------------------------------------------------*/ + +#if _FATFS != 68020 /* Revision ID */ +#error Wrong include file (ff.h). +#endif + + +#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } + + +/* Reentrancy related */ +#if _FS_REENTRANT +#if _USE_LFN == 1 +#error Static LFN work area cannot be used at thread-safe configuration +#endif +#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } +#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } +#else +#define ENTER_FF(fs) +#define LEAVE_FF(fs, res) return res +#endif + + + +/* Definitions of sector size */ +#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) +#error Wrong sector size configuration +#endif +#if _MAX_SS == _MIN_SS +#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ +#else +#define SS(fs) ((fs)->ssize) /* Variable sector size */ +#endif + + +/* Timestamp */ +#if _FS_NORTC == 1 +#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 +#error Invalid _FS_NORTC settings +#endif +#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) +#else +#define GET_FATTIME() get_fattime() +#endif + + +/* File lock controls */ +#if _FS_LOCK != 0 +#if _FS_READONLY +#error _FS_LOCK must be 0 at read-only configuration +#endif +typedef struct { + FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ + DWORD clu; /* Object ID 2, directory (0:root) */ + DWORD ofs; /* Object ID 3, directory offset */ + WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ +} FILESEM; +#endif + + + +/* DBCS code ranges and SBCS upper conversion tables */ + +#if _CODE_PAGE == 932 /* Japanese Shift-JIS */ +#define _DF1S 0x81 /* DBC 1st byte range 1 start */ +#define _DF1E 0x9F /* DBC 1st byte range 1 end */ +#define _DF2S 0xE0 /* DBC 1st byte range 2 start */ +#define _DF2E 0xFC /* DBC 1st byte range 2 end */ +#define _DS1S 0x40 /* DBC 2nd byte range 1 start */ +#define _DS1E 0x7E /* DBC 2nd byte range 1 end */ +#define _DS2S 0x80 /* DBC 2nd byte range 2 start */ +#define _DS2E 0xFC /* DBC 2nd byte range 2 end */ + +#elif _CODE_PAGE == 936 /* Simplified Chinese GBK */ +#define _DF1S 0x81 +#define _DF1E 0xFE +#define _DS1S 0x40 +#define _DS1E 0x7E +#define _DS2S 0x80 +#define _DS2E 0xFE + +#elif _CODE_PAGE == 949 /* Korean */ +#define _DF1S 0x81 +#define _DF1E 0xFE +#define _DS1S 0x41 +#define _DS1E 0x5A +#define _DS2S 0x61 +#define _DS2E 0x7A +#define _DS3S 0x81 +#define _DS3E 0xFE + +#elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */ +#define _DF1S 0x81 +#define _DF1E 0xFE +#define _DS1S 0x40 +#define _DS1E 0x7E +#define _DS2S 0xA1 +#define _DS2E 0xFE + +#elif _CODE_PAGE == 437 /* U.S. */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 720 /* Arabic */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 737 /* Greek */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \ + 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xEF,0xF5,0xF0,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 771 /* KBL */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDC,0xDE,0xDE, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF} + +#elif _CODE_PAGE == 775 /* Baltic */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 850 /* Latin 1 */ +#define _DF1S 0 +#define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x49,0x49,0x49,0x41,0x41, \ + 0x45,0x92,0x92,0x4F,0x4F,0x4F,0x55,0x55,0x59,0x4F,0x55,0x4F,0x9C,0x4F,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x41,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0xD9,0xDA,0xDB,0xDC,0xDD,0x49,0xDF, \ + 0x4F,0xE1,0x4F,0x4F,0x4F,0x4F,0xE6,0xE8,0xE8,0x55,0x55,0x55,0x59,0x59,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 852 /* Latin 2 */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, \ + 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF} + +#elif _CODE_PAGE == 855 /* Cyrillic */ +#define _DF1S 0 +#define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F, \ + 0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \ + 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \ + 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF, \ + 0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 857 /* Turkish */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \ + 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0x49,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 860 /* Portuguese */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x90,0x8F,0x8E,0x91,0x86,0x80,0x89,0x89,0x92,0x8B,0x8C,0x98,0x8E,0x8F, \ + 0x90,0x91,0x92,0x8C,0x99,0xA9,0x96,0x9D,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x86,0x8B,0x9F,0x96,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 861 /* Icelandic */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x8B,0x8B,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x8D,0x55,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA4,0xA5,0xA6,0xA7,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 862 /* Hebrew */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 863 /* Canadian-French */ +#define _DF1S 0 +#define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x41,0x8F, \ + 0x45,0x45,0x45,0x4F,0x45,0x49,0x55,0x55,0x98,0x4F,0x55,0x9B,0x9C,0x55,0x55,0x9F, \ + 0xA0,0xA1,0x4F,0x55,0xA4,0xA5,0xA6,0xA7,0x49,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 864 /* Arabic */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 865 /* Nordic */ +#define _DF1S 0 +#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 866 /* Russian */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} + +#elif _CODE_PAGE == 869 /* Greek 2 */ +#define _DF1S 0 +#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x86,0x9C,0x8D,0x8F,0x90, \ + 0x91,0x90,0x92,0x95,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xA4,0xA5,0xA6,0xD9,0xDA,0xDB,0xDC,0xA7,0xA8,0xDF, \ + 0xA9,0xAA,0xAC,0xAD,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xCF,0xCF,0xD0,0xEF, \ + 0xF0,0xF1,0xD1,0xD2,0xD3,0xF5,0xD4,0xF7,0xF8,0xF9,0xD5,0x96,0x95,0x98,0xFE,0xFF} + +#elif _CODE_PAGE == 1 /* ASCII (for only non-LFN cfg) */ +#if _USE_LFN != 0 +#error Cannot enable LFN without valid code page. +#endif +#define _DF1S 0 + +#else +#error Unknown code page + +#endif + + +/* Character code support macros */ +#define IsUpper(c) (((c)>='A')&&((c)<='Z')) +#define IsLower(c) (((c)>='a')&&((c)<='z')) +#define IsDigit(c) (((c)>='0')&&((c)<='9')) + +#if _DF1S != 0 /* Code page is DBCS */ + +#ifdef _DF2S /* Two 1st byte areas */ +#define IsDBCS1(c) (((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) || ((BYTE)(c) >= _DF2S && (BYTE)(c) <= _DF2E)) +#else /* One 1st byte area */ +#define IsDBCS1(c) ((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) +#endif + +#ifdef _DS3S /* Three 2nd byte areas */ +#define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E) || ((BYTE)(c) >= _DS3S && (BYTE)(c) <= _DS3E)) +#else /* Two 2nd byte areas */ +#define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E)) +#endif + +#else /* Code page is SBCS */ + +#define IsDBCS1(c) 0 +#define IsDBCS2(c) 0 + +#endif /* _DF1S */ + + +/* File attribute bits (internal use) */ +#define AM_VOL 0x08 /* Volume label */ +#define AM_LFN 0x0F /* LFN entry */ +#define AM_MASK 0x3F /* Mask of defined bits */ + + +/* File access control and file status flags (internal use) */ +#define FA_SEEKEND 0x20 /* Seek to end of the file on file open */ +#define FA_MODIFIED 0x40 /* File has been modified */ +#define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */ + + +/* Name status flags */ +#define NSFLAG 11 /* Index of name status byte in fn[] */ +#define NS_LOSS 0x01 /* Out of 8.3 format */ +#define NS_LFN 0x02 /* Force to create LFN entry */ +#define NS_LAST 0x04 /* Last segment */ +#define NS_BODY 0x08 /* Lower case flag (body) */ +#define NS_EXT 0x10 /* Lower case flag (ext) */ +#define NS_DOT 0x20 /* Dot entry */ +#define NS_NOLFN 0x40 /* Do not find LFN */ +#define NS_NONAME 0x80 /* Not followed */ + + +/* Limits and boundaries (differ from specs but correct for real DOS/Windows) */ +#define MAX_FAT12 0xFF5 /* Maximum number of FAT12 clusters */ +#define MAX_FAT16 0xFFF5 /* Maximum number of FAT16 clusters */ +#define MAX_FAT32 0xFFFFFF5 /* Maximum number of FAT32 clusters */ +#define MAX_EXFAT 0x7FFFFFFD /* Maximum number of exFAT clusters (limited by implementation) */ +#define MAX_DIR 0x200000 /* Maximum size of FAT directory */ +#define MAX_DIR_EX 0x10000000 /* Maximum size of exFAT directory */ + + +/* FatFs refers the members in the FAT structures as byte array instead of +/ structure members because the structure is not binary compatible between +/ different platforms */ + +#define BS_JmpBoot 0 /* x86 jump instruction (3-byte) */ +#define BS_OEMName 3 /* OEM name (8-byte) */ +#define BPB_BytsPerSec 11 /* Sector size [byte] (WORD) */ +#define BPB_SecPerClus 13 /* Cluster size [sector] (BYTE) */ +#define BPB_RsvdSecCnt 14 /* Size of reserved area [sector] (WORD) */ +#define BPB_NumFATs 16 /* Number of FATs (BYTE) */ +#define BPB_RootEntCnt 17 /* Size of root directory area for FAT12/16 [entry] (WORD) */ +#define BPB_TotSec16 19 /* Volume size (16-bit) [sector] (WORD) */ +#define BPB_Media 21 /* Media descriptor byte (BYTE) */ +#define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */ +#define BPB_SecPerTrk 24 /* Track size for int13h [sector] (WORD) */ +#define BPB_NumHeads 26 /* Number of heads for int13h (WORD) */ +#define BPB_HiddSec 28 /* Volume offset from top of the drive (DWORD) */ +#define BPB_TotSec32 32 /* Volume size (32-bit) [sector] (DWORD) */ +#define BS_DrvNum 36 /* Physical drive number for int13h (BYTE) */ +#define BS_NTres 37 /* Error flag (BYTE) */ +#define BS_BootSig 38 /* Extended boot signature (BYTE) */ +#define BS_VolID 39 /* Volume serial number (DWORD) */ +#define BS_VolLab 43 /* Volume label string (8-byte) */ +#define BS_FilSysType 54 /* File system type string (8-byte) */ +#define BS_BootCode 62 /* Boot code (448-byte) */ +#define BS_55AA 510 /* Signature word (WORD) */ + +#define BPB_FATSz32 36 /* FAT32: FAT size [sector] (DWORD) */ +#define BPB_ExtFlags32 40 /* FAT32: Extended flags (WORD) */ +#define BPB_FSVer32 42 /* FAT32: File system version (WORD) */ +#define BPB_RootClus32 44 /* FAT32: Root directory cluster (DWORD) */ +#define BPB_FSInfo32 48 /* FAT32: Offset of FSINFO sector (WORD) */ +#define BPB_BkBootSec32 50 /* FAT32: Offset of backup boot sector (WORD) */ +#define BS_DrvNum32 64 /* FAT32: Physical drive number for int13h (BYTE) */ +#define BS_NTres32 65 /* FAT32: Error flag (BYTE) */ +#define BS_BootSig32 66 /* FAT32: Extended boot signature (BYTE) */ +#define BS_VolID32 67 /* FAT32: Volume serial number (DWORD) */ +#define BS_VolLab32 71 /* FAT32: Volume label string (8-byte) */ +#define BS_FilSysType32 82 /* FAT32: File system type string (8-byte) */ +#define BS_BootCode32 90 /* FAT32: Boot code (420-byte) */ + +#define BPB_ZeroedEx 11 /* exFAT: MBZ field (53-byte) */ +#define BPB_VolOfsEx 64 /* exFAT: Volume offset from top of the drive [sector] (QWORD) */ +#define BPB_TotSecEx 72 /* exFAT: Volume size [sector] (QWORD) */ +#define BPB_FatOfsEx 80 /* exFAT: FAT offset from top of the volume [sector] (DWORD) */ +#define BPB_FatSzEx 84 /* exFAT: FAT size [sector] (DWORD) */ +#define BPB_DataOfsEx 88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */ +#define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */ +#define BPB_RootClusEx 96 /* exFAT: Root directory cluster (DWORD) */ +#define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */ +#define BPB_FSVerEx 104 /* exFAT: File system version (WORD) */ +#define BPB_VolFlagEx 106 /* exFAT: Volume flags (BYTE) */ +#define BPB_ActFatEx 107 /* exFAT: Active FAT flags (BYTE) */ +#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in byte (BYTE) */ +#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in sector (BYTE) */ +#define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */ +#define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */ +#define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */ +#define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ +#define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */ + +#define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ +#define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ +#define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ +#define FSI_Nxt_Free 492 /* FAT32 FSI: Last allocated cluster (DWORD) */ + +#define MBR_Table 446 /* MBR: Offset of partition table in the MBR */ +#define SZ_PTE 16 /* MBR: Size of a partition table entry */ +#define PTE_Boot 0 /* MBR PTE: Boot indicator */ +#define PTE_StHead 1 /* MBR PTE: Start head */ +#define PTE_StSec 2 /* MBR PTE: Start sector */ +#define PTE_StCyl 3 /* MBR PTE: Start cylinder */ +#define PTE_System 4 /* MBR PTE: System ID */ +#define PTE_EdHead 5 /* MBR PTE: End head */ +#define PTE_EdSec 6 /* MBR PTE: End sector */ +#define PTE_EdCyl 7 /* MBR PTE: End cylinder */ +#define PTE_StLba 8 /* MBR PTE: Start in LBA */ +#define PTE_SizLba 12 /* MBR PTE: Size in LBA */ + +#define DIR_Name 0 /* Short file name (11-byte) */ +#define DIR_Attr 11 /* Attribute (BYTE) */ +#define DIR_NTres 12 /* Lower case flag (BYTE) */ +#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ +#define DIR_CrtTime 14 /* Created time (DWORD) */ +#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ +#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ +#define DIR_ModTime 22 /* Modified time (DWORD) */ +#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ +#define DIR_FileSize 28 /* File size (DWORD) */ +#define LDIR_Ord 0 /* LFN entry order and LLE flag (BYTE) */ +#define LDIR_Attr 11 /* LFN attribute (BYTE) */ +#define LDIR_Type 12 /* LFN type (BYTE) */ +#define LDIR_Chksum 13 /* Checksum of the SFN entry (BYTE) */ +#define LDIR_FstClusLO 26 /* Must be zero (WORD) */ +#define XDIR_Type 0 /* Type of exFAT directory entry (BYTE) */ +#define XDIR_NumLabel 1 /* Number of volume label characters (BYTE) */ +#define XDIR_Label 2 /* Volume label (11-WORD) */ +#define XDIR_CaseSum 4 /* Sum of case conversion table (DWORD) */ +#define XDIR_NumSec 1 /* Number of secondary entries (BYTE) */ +#define XDIR_SetSum 2 /* Sum of the set of directory entries (WORD) */ +#define XDIR_Attr 4 /* File attribute (WORD) */ +#define XDIR_CrtTime 8 /* Created time (DWORD) */ +#define XDIR_ModTime 12 /* Modified time (DWORD) */ +#define XDIR_AccTime 16 /* Last accessed time (DWORD) */ +#define XDIR_CrtTime10 20 /* Created time subsecond (BYTE) */ +#define XDIR_ModTime10 21 /* Modified time subsecond (BYTE) */ +#define XDIR_CrtTZ 22 /* Created timezone (BYTE) */ +#define XDIR_ModTZ 23 /* Modified timezone (BYTE) */ +#define XDIR_AccTZ 24 /* Last accessed timezone (BYTE) */ +#define XDIR_GenFlags 33 /* Gneral secondary flags (WORD) */ +#define XDIR_NumName 35 /* Number of file name characters (BYTE) */ +#define XDIR_NameHash 36 /* Hash of file name (WORD) */ +#define XDIR_ValidFileSize 40 /* Valid file size (QWORD) */ +#define XDIR_FstClus 52 /* First cluster of the file data (DWORD) */ +#define XDIR_FileSize 56 /* File/Directory size (QWORD) */ + +#define SZDIRE 32 /* Size of a directory entry */ +#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ +#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ +#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ + + + + + +/*-------------------------------------------------------------------------- + + Module Private Work Area + +---------------------------------------------------------------------------*/ + +/* Remark: Variables here without initial value shall be guaranteed zero/null +/ at start-up. If not, either the linker or start-up routine being used is +/ not compliance with C standard. */ + +#if _VOLUMES < 1 || _VOLUMES > 9 +#error Wrong _VOLUMES setting +#endif +static FATFS *FatFs[_VOLUMES]; /* Pointer to the file system objects (logical drives) */ +static WORD Fsid; /* File system mount ID */ + +#if _FS_RPATH != 0 && _VOLUMES >= 2 +static BYTE CurrVol; /* Current drive */ +#endif + +#if _FS_LOCK != 0 +static FILESEM Files[_FS_LOCK]; /* Open object lock semaphores */ +#endif + +#if _USE_LFN == 0 /* Non-LFN configuration */ +#define DEF_NAMBUF +#define INIT_NAMBUF(fs) +#define FREE_NAMBUF() +#else +#if _MAX_LFN < 12 || _MAX_LFN > 255 +#error Wrong _MAX_LFN setting +#endif + +#if _USE_LFN == 1 /* LFN enabled with static working buffer */ +#if _FS_EXFAT +static BYTE DirBuf[SZDIRE*19]; /* Directory entry block scratchpad buffer (19 entries in size) */ +#endif +static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ +#define DEF_NAMBUF +#define INIT_NAMBUF(fs) +#define FREE_NAMBUF() + +#elif _USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ +#if _FS_EXFAT +#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[SZDIRE*19]; +#define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; } +#define FREE_NAMBUF() +#else +#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; +#define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; } +#define FREE_NAMBUF() +#endif + +#elif _USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ +#if _FS_EXFAT +#define DEF_NAMBUF WCHAR *lfn; +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + SZDIRE*19); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } +#define FREE_NAMBUF() ff_memfree(lfn) +#else +#define DEF_NAMBUF WCHAR *lfn; +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; } +#define FREE_NAMBUF() ff_memfree(lfn) +#endif + +#else +#error Wrong _USE_LFN setting +#endif +#endif + +#ifdef _EXCVT +static const BYTE ExCvt[] = _EXCVT; /* Upper conversion table for SBCS extended characters */ +#endif + + + + + + +/*-------------------------------------------------------------------------- + + Module Private Functions + +---------------------------------------------------------------------------*/ + + +/*-----------------------------------------------------------------------*/ +/* Load/Store multi-byte word in the FAT structure */ +/*-----------------------------------------------------------------------*/ + +static +WORD ld_word (const BYTE* ptr) /* Load a 2-byte little-endian word */ +{ + WORD rv; + + rv = ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} + +static +DWORD ld_dword (const BYTE* ptr) /* Load a 4-byte little-endian word */ +{ + DWORD rv; + + rv = ptr[3]; + rv = rv << 8 | ptr[2]; + rv = rv << 8 | ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} + +#if _FS_EXFAT +static +QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian word */ +{ + QWORD rv; + + rv = ptr[7]; + rv = rv << 8 | ptr[6]; + rv = rv << 8 | ptr[5]; + rv = rv << 8 | ptr[4]; + rv = rv << 8 | ptr[3]; + rv = rv << 8 | ptr[2]; + rv = rv << 8 | ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} +#endif + +#if !_FS_READONLY +static +void st_word (BYTE* ptr, WORD val) /* Store a 2-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} + +static +void st_dword (BYTE* ptr, DWORD val) /* Store a 4-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} + +#if _FS_EXFAT +static +void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} +#endif +#endif /* !_FS_READONLY */ + + + +/*-----------------------------------------------------------------------*/ +/* String functions */ +/*-----------------------------------------------------------------------*/ + +/* Copy memory to memory */ +static +void mem_cpy (void* dst, const void* src, UINT cnt) { + BYTE *d = (BYTE*)dst; + const BYTE *s = (const BYTE*)src; + + if (cnt) { + do *d++ = *s++; while (--cnt); + } +} + +/* Fill memory block */ +static +void mem_set (void* dst, int val, UINT cnt) { + BYTE *d = (BYTE*)dst; + + do *d++ = (BYTE)val; while (--cnt); +} + +/* Compare memory block */ +static +int mem_cmp (const void* dst, const void* src, UINT cnt) { /* ZR:same, NZ:different */ + const BYTE *d = (const BYTE *)dst, *s = (const BYTE *)src; + int r = 0; + + do { + r = *d++ - *s++; + } while (--cnt && r == 0); + + return r; +} + +/* Check if chr is contained in the string */ +static +int chk_chr (const char* str, int chr) { /* NZ:contained, ZR:not contained */ + while (*str && *str != chr) str++; + return *str; +} + + + + +#if _FS_REENTRANT +/*-----------------------------------------------------------------------*/ +/* Request/Release grant to access the volume */ +/*-----------------------------------------------------------------------*/ +static +int lock_fs ( + FATFS* fs /* File system object */ +) +{ + return ff_req_grant(fs->sobj); +} + + +static +void unlock_fs ( + FATFS* fs, /* File system object */ + FRESULT res /* Result code to be returned */ +) +{ + if (fs && res != FR_NOT_ENABLED && res != FR_INVALID_DRIVE && res != FR_TIMEOUT) { + ff_rel_grant(fs->sobj); + } +} + +#endif + + + +#if _FS_LOCK != 0 +/*-----------------------------------------------------------------------*/ +/* File lock control functions */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT chk_lock ( /* Check if the file can be accessed */ + DIR* dp, /* Directory object pointing the file to be checked */ + int acc /* Desired access type (0:Read, 1:Write, 2:Delete/Rename) */ +) +{ + UINT i, be; + + /* Search file semaphore table */ + for (i = be = 0; i < _FS_LOCK; i++) { + if (Files[i].fs) { /* Existing entry */ + if (Files[i].fs == dp->obj.fs && /* Check if the object matched with an open object */ + Files[i].clu == dp->obj.sclust && + Files[i].ofs == dp->dptr) break; + } else { /* Blank entry */ + be = 1; + } + } + if (i == _FS_LOCK) { /* The object is not opened */ + return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new object? */ + } + + /* The object has been opened. Reject any open against writing file and all write mode open */ + return (acc || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK; +} + + +static +int enq_lock (void) /* Check if an entry is available for a new object */ +{ + UINT i; + + for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; + return (i == _FS_LOCK) ? 0 : 1; +} + + +static +UINT inc_lock ( /* Increment object open counter and returns its index (0:Internal error) */ + DIR* dp, /* Directory object pointing the file to register or increment */ + int acc /* Desired access (0:Read, 1:Write, 2:Delete/Rename) */ +) +{ + UINT i; + + + for (i = 0; i < _FS_LOCK; i++) { /* Find the object */ + if (Files[i].fs == dp->obj.fs && + Files[i].clu == dp->obj.sclust && + Files[i].ofs == dp->dptr) break; + } + + if (i == _FS_LOCK) { /* Not opened. Register it as new. */ + for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; + if (i == _FS_LOCK) return 0; /* No free entry to register (int err) */ + Files[i].fs = dp->obj.fs; + Files[i].clu = dp->obj.sclust; + Files[i].ofs = dp->dptr; + Files[i].ctr = 0; + } + + if (acc && Files[i].ctr) return 0; /* Access violation (int err) */ + + Files[i].ctr = acc ? 0x100 : Files[i].ctr + 1; /* Set semaphore value */ + + return i + 1; +} + + +static +FRESULT dec_lock ( /* Decrement object open counter */ + UINT i /* Semaphore index (1..) */ +) +{ + WORD n; + FRESULT res; + + + if (--i < _FS_LOCK) { /* Shift index number origin from 0 */ + n = Files[i].ctr; + if (n == 0x100) n = 0; /* If write mode open, delete the entry */ + if (n > 0) n--; /* Decrement read mode open count */ + Files[i].ctr = n; + if (n == 0) Files[i].fs = 0; /* Delete the entry if open count gets zero */ + res = FR_OK; + } else { + res = FR_INT_ERR; /* Invalid index nunber */ + } + return res; +} + + +static +void clear_lock ( /* Clear lock entries of the volume */ + FATFS *fs +) +{ + UINT i; + + for (i = 0; i < _FS_LOCK; i++) { + if (Files[i].fs == fs) Files[i].fs = 0; + } +} + +#endif /* _FS_LOCK != 0 */ + + + +/*-----------------------------------------------------------------------*/ +/* Move/Flush disk access window in the file system object */ +/*-----------------------------------------------------------------------*/ +#if !_FS_READONLY +static +FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERROR */ + FATFS* fs /* File system object */ +) +{ + DWORD wsect; + UINT nf; + FRESULT res = FR_OK; + + + if (fs->wflag) { /* Write back the sector if it is dirty */ + wsect = fs->winsect; /* Current sector number */ + if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) { + res = FR_DISK_ERR; + } else { + fs->wflag = 0; + if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */ + for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */ + wsect += fs->fsize; + disk_write(fs->drv, fs->win, wsect, 1); + } + } + } + } + return res; +} +#endif + + +static +FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERROR */ + FATFS* fs, /* File system object */ + DWORD sector /* Sector number to make appearance in the fs->win[] */ +) +{ + FRESULT res = FR_OK; + + + if (sector != fs->winsect) { /* Window offset changed? */ +#if !_FS_READONLY + res = sync_window(fs); /* Write-back changes */ +#endif + if (res == FR_OK) { /* Fill sector window with new data */ + if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) { + sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ + res = FR_DISK_ERR; + } + fs->winsect = sector; + } + } + return res; +} + + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Synchronize file system and strage device */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */ + FATFS* fs /* File system object */ +) +{ + FRESULT res; + + + res = sync_window(fs); + if (res == FR_OK) { + /* Update FSInfo sector if needed */ + if (fs->fs_type == FS_FAT32 && fs->fsi_flag == 1) { + /* Create FSInfo structure */ + mem_set(fs->win, 0, SS(fs)); + st_word(fs->win + BS_55AA, 0xAA55); + st_dword(fs->win + FSI_LeadSig, 0x41615252); + st_dword(fs->win + FSI_StrucSig, 0x61417272); + st_dword(fs->win + FSI_Free_Count, fs->free_clst); + st_dword(fs->win + FSI_Nxt_Free, fs->last_clst); + /* Write it into the FSInfo sector */ + fs->winsect = fs->volbase + 1; + disk_write(fs->drv, fs->win, fs->winsect, 1); + fs->fsi_flag = 0; + } + /* Make sure that no pending write process in the physical drive */ + if (disk_ioctl(fs->drv, CTRL_SYNC, 0) != RES_OK) res = FR_DISK_ERR; + } + + return res; +} + +#endif + + + +/*-----------------------------------------------------------------------*/ +/* Get sector# from cluster# */ +/*-----------------------------------------------------------------------*/ + +static +DWORD clust2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */ + FATFS* fs, /* File system object */ + DWORD clst /* Cluster# to be converted */ +) +{ + clst -= 2; + if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */ + return clst * fs->csize + fs->database; +} + + + + +/*-----------------------------------------------------------------------*/ +/* FAT access - Read value of a FAT entry */ +/*-----------------------------------------------------------------------*/ + +static +DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluster status */ + _FDID* obj, /* Corresponding object */ + DWORD clst /* Cluster number to get the value */ +) +{ + UINT wc, bc; + DWORD val; + FATFS *fs = obj->fs; + + + if (clst < 2 || clst >= fs->n_fatent) { /* Check if in valid range */ + val = 1; /* Internal error */ + + } else { + val = 0xFFFFFFFF; /* Default value falls on disk error */ + + switch (fs->fs_type) { + case FS_FAT12 : + bc = (UINT)clst; bc += bc / 2; + if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; + wc = fs->win[bc++ % SS(fs)]; + if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; + wc |= fs->win[bc % SS(fs)] << 8; + val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); + break; + + case FS_FAT16 : + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))) != FR_OK) break; + val = ld_word(fs->win + clst * 2 % SS(fs)); + break; + + case FS_FAT32 : + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; + break; +#if _FS_EXFAT + case FS_EXFAT : + if (obj->objsize) { + DWORD cofs = clst - obj->sclust; /* Offset from start cluster */ + DWORD clen = (DWORD)((obj->objsize - 1) / SS(fs)) / fs->csize; /* Number of clusters - 1 */ + + if (obj->stat == 2) { /* Is there no valid chain on the FAT? */ + if (cofs <= clen) { + val = (cofs == clen) ? 0x7FFFFFFF : clst + 1; /* Generate the value */ + break; + } + } + if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the contiguous part? */ + val = clst + 1; /* Generate the value */ + break; + } + if (obj->stat != 2) { /* Get value from FAT if FAT chain is valid */ + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + break; + } + } + /* go next */ +#endif + default: + val = 1; /* Internal error */ + } + } + + return val; +} + + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT access - Change value of a FAT entry */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ + FATFS* fs, /* Corresponding file system object */ + DWORD clst, /* FAT index number (cluster number) to be changed */ + DWORD val /* New value to be set to the entry */ +) +{ + UINT bc; + BYTE *p; + FRESULT res = FR_INT_ERR; + + + if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */ + switch (fs->fs_type) { + case FS_FAT12 : /* Bitfield items */ + bc = (UINT)clst; bc += bc / 2; + res = move_window(fs, fs->fatbase + (bc / SS(fs))); + if (res != FR_OK) break; + p = fs->win + bc++ % SS(fs); + *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; + fs->wflag = 1; + res = move_window(fs, fs->fatbase + (bc / SS(fs))); + if (res != FR_OK) break; + p = fs->win + bc % SS(fs); + *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); + fs->wflag = 1; + break; + + case FS_FAT16 : /* WORD aligned items */ + res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))); + if (res != FR_OK) break; + st_word(fs->win + clst * 2 % SS(fs), (WORD)val); + fs->wflag = 1; + break; + + case FS_FAT32 : /* DWORD aligned items */ +#if _FS_EXFAT + case FS_EXFAT : +#endif + res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))); + if (res != FR_OK) break; + if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000); + } + st_dword(fs->win + clst * 4 % SS(fs), val); + fs->wflag = 1; + break; + } + } + return res; +} + +#endif /* !_FS_READONLY */ + + + + +#if _FS_EXFAT && !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* exFAT: Accessing FAT and Allocation Bitmap */ +/*-----------------------------------------------------------------------*/ + +/*---------------------------------------------*/ +/* exFAT: Find a contiguous free cluster block */ +/*---------------------------------------------*/ + +static +DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Disk error */ + FATFS* fs, /* File system object */ + DWORD clst, /* Cluster number to scan from */ + DWORD ncl /* Number of contiguous clusters to find (1..) */ +) +{ + BYTE bm, bv; + UINT i; + DWORD val, scl, ctr; + + + clst -= 2; /* The first bit in the bitmap corresponds to cluster #2 */ + if (clst >= fs->n_fatent - 2) clst = 0; + scl = val = clst; ctr = 0; + for (;;) { + if (move_window(fs, fs->database + val / 8 / SS(fs)) != FR_OK) return 0xFFFFFFFF; /* (assuming bitmap is located top of the cluster heap) */ + i = val / 8 % SS(fs); bm = 1 << (val % 8); + do { + do { + bv = fs->win[i] & bm; bm <<= 1; /* Get bit value */ + if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */ + val = 0; bm = 0; i = 4096; + } + if (!bv) { /* Is it a free cluster? */ + if (++ctr == ncl) return scl + 2; /* Check run length */ + } else { + scl = val; ctr = 0; /* Encountered a live cluster, restart to scan */ + } + if (val == clst) return 0; /* All cluster scanned? */ + } while (bm); + bm = 1; + } while (++i < SS(fs)); + } +} + + +/*------------------------------------*/ +/* exFAT: Set/Clear a block of bitmap */ +/*------------------------------------*/ + +static +FRESULT change_bitmap ( + FATFS* fs, /* File system object */ + DWORD clst, /* Cluster number to change from */ + DWORD ncl, /* Number of clusters to be changed */ + int bv /* bit value to be set (0 or 1) */ +) +{ + BYTE bm; + UINT i; + DWORD sect; + + + clst -= 2; /* The first bit corresponds to cluster #2 */ + sect = fs->database + clst / 8 / SS(fs); /* Sector address (assuming bitmap is located top of the cluster heap) */ + i = clst / 8 % SS(fs); /* Byte offset in the sector */ + bm = 1 << (clst % 8); /* Bit mask in the byte */ + for (;;) { + if (move_window(fs, sect++) != FR_OK) return FR_DISK_ERR; + do { + do { + if (bv == (int)((fs->win[i] & bm) != 0)) return FR_INT_ERR; /* Is the bit expected value? */ + fs->win[i] ^= bm; /* Flip the bit */ + fs->wflag = 1; + if (--ncl == 0) return FR_OK; /* All bits processed? */ + } while (bm <<= 1); /* Next bit */ + bm = 1; + } while (++i < SS(fs)); /* Next byte */ + i = 0; + } +} + + +/*---------------------------------------------*/ +/* Complement contiguous part of the FAT chain */ +/*---------------------------------------------*/ + +static +FRESULT fill_fat_chain ( + _FDID* obj /* Pointer to the corresponding object */ +) +{ + FRESULT res; + DWORD cl, n; + + if (obj->stat == 3) { /* Has the object been changed 'fragmented'? */ + for (cl = obj->sclust, n = obj->n_cont; n; cl++, n--) { /* Create cluster chain on the FAT */ + res = put_fat(obj->fs, cl, cl + 1); + if (res != FR_OK) return res; + } + obj->stat = 0; /* Change status 'FAT chain is valid' */ + } + return FR_OK; +} + +#endif /* _FS_EXFAT && !_FS_READONLY */ + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT handling - Remove a cluster chain */ +/*-----------------------------------------------------------------------*/ +static +FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ + _FDID* obj, /* Corresponding object */ + DWORD clst, /* Cluster to remove a chain from */ + DWORD pclst /* Previous cluster of clst (0:an entire chain) */ +) +{ + FRESULT res = FR_OK; + DWORD nxt; + FATFS *fs = obj->fs; +#if _FS_EXFAT || _USE_TRIM + DWORD scl = clst, ecl = clst; +#endif +#if _USE_TRIM + DWORD rt[2]; +#endif + + if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Check if in valid range */ + + /* Mark the previous cluster 'EOC' on the FAT if it exists */ + if (pclst && (!_FS_EXFAT || fs->fs_type != FS_EXFAT || obj->stat != 2)) { + res = put_fat(fs, pclst, 0xFFFFFFFF); + if (res != FR_OK) return res; + } + + /* Remove the chain */ + do { + nxt = get_fat(obj, clst); /* Get cluster status */ + if (nxt == 0) break; /* Empty cluster? */ + if (nxt == 1) return FR_INT_ERR; /* Internal error? */ + if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ + if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */ + if (res != FR_OK) return res; + } + if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */ + fs->free_clst++; + fs->fsi_flag |= 1; + } +#if _FS_EXFAT || _USE_TRIM + if (ecl + 1 == nxt) { /* Is next cluster contiguous? */ + ecl = nxt; + } else { /* End of contiguous cluster block */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap */ + if (res != FR_OK) return res; + } +#endif +#if _USE_TRIM + rt[0] = clust2sect(fs, scl); /* Start sector */ + rt[1] = clust2sect(fs, ecl) + fs->csize - 1; /* End sector */ + disk_ioctl(fs->drv, CTRL_TRIM, rt); /* Inform device the block can be erased */ +#endif + scl = ecl = nxt; + } +#endif + clst = nxt; /* Next cluster */ + } while (clst < fs->n_fatent); /* Repeat while not the last link */ + +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + if (pclst == 0) { /* Does object have no chain? */ + obj->stat = 0; /* Change the object status 'initial' */ + } else { + if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the chain got contiguous? */ + obj->stat = 2; /* Change the object status 'contiguous' */ + } + } + } +#endif + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* FAT handling - Stretch a chain or Create a new chain */ +/*-----------------------------------------------------------------------*/ +static +DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk error, >=2:New cluster# */ + _FDID* obj, /* Corresponding object */ + DWORD clst /* Cluster# to stretch, 0:Create a new chain */ +) +{ + DWORD cs, ncl, scl; + FRESULT res; + FATFS *fs = obj->fs; + + + if (clst == 0) { /* Create a new chain */ + scl = fs->last_clst; /* Get suggested cluster to start from */ + if (scl == 0 || scl >= fs->n_fatent) scl = 1; + } + else { /* Stretch current chain */ + cs = get_fat(obj, clst); /* Check the cluster status */ + if (cs < 2) return 1; /* Invalid value */ + if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ + if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ + scl = clst; + } + +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + ncl = find_bitmap(fs, scl, 1); /* Find a free cluster */ + if (ncl == 0 || ncl == 0xFFFFFFFF) return ncl; /* No free cluster or hard error? */ + res = change_bitmap(fs, ncl, 1, 1); /* Mark the cluster 'in use' */ + if (res == FR_INT_ERR) return 1; + if (res == FR_DISK_ERR) return 0xFFFFFFFF; + if (clst == 0) { /* Is it a new chain? */ + obj->stat = 2; /* Set status 'contiguous chain' */ + } else { /* This is a stretched chain */ + if (obj->stat == 2 && ncl != scl + 1) { /* Is the chain got fragmented? */ + obj->n_cont = scl - obj->sclust; /* Set size of the contiguous part */ + obj->stat = 3; /* Change status 'just fragmented' */ + } + } + } else +#endif + { /* On the FAT12/16/32 volume */ + ncl = scl; /* Start cluster */ + for (;;) { + ncl++; /* Next cluster */ + if (ncl >= fs->n_fatent) { /* Check wrap-around */ + ncl = 2; + if (ncl > scl) return 0; /* No free cluster */ + } + cs = get_fat(obj, ncl); /* Get the cluster status */ + if (cs == 0) break; /* Found a free cluster */ + if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ + if (ncl == scl) return 0; /* No free cluster */ + } + } + + if (_FS_EXFAT && fs->fs_type == FS_EXFAT && obj->stat == 2) { /* Is it a contiguous chain? */ + res = FR_OK; /* FAT does not need to be written */ + } else { + res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ + if (res == FR_OK && clst) { + res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ + } + } + + if (res == FR_OK) { /* Update FSINFO if function succeeded. */ + fs->last_clst = ncl; + if (fs->free_clst < fs->n_fatent - 2) fs->free_clst--; + fs->fsi_flag |= 1; + } else { + ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Create error status */ + } + + return ncl; /* Return new cluster number or error status */ +} + +#endif /* !_FS_READONLY */ + + + + +#if _USE_FASTSEEK +/*-----------------------------------------------------------------------*/ +/* FAT handling - Convert offset into cluster with link map table */ +/*-----------------------------------------------------------------------*/ + +static +DWORD clmt_clust ( /* <2:Error, >=2:Cluster number */ + FIL* fp, /* Pointer to the file object */ + FSIZE_t ofs /* File offset to be converted to cluster# */ +) +{ + DWORD cl, ncl, *tbl; + FATFS *fs = fp->obj.fs; + + + tbl = fp->cltbl + 1; /* Top of CLMT */ + cl = (DWORD)(ofs / SS(fs) / fs->csize); /* Cluster order from top of the file */ + for (;;) { + ncl = *tbl++; /* Number of cluters in the fragment */ + if (ncl == 0) return 0; /* End of table? (error) */ + if (cl < ncl) break; /* In this fragment? */ + cl -= ncl; tbl++; /* Next fragment */ + } + return cl + *tbl; /* Return the cluster number */ +} + +#endif /* _USE_FASTSEEK */ + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Set directory index */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp, /* Pointer to directory object */ + DWORD ofs /* Offset of directory table */ +) +{ + DWORD csz, clst; + FATFS *fs = dp->obj.fs; + + + if (ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR) || ofs % SZDIRE) { /* Check range of offset and alignment */ + return FR_INT_ERR; + } + dp->dptr = ofs; /* Set current offset */ + clst = dp->obj.sclust; /* Table start cluster (0:root) */ + if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */ + clst = fs->dirbase; + if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */ + } + + if (clst == 0) { /* Static table (root-directory in FAT12/16) */ + if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ + dp->sect = fs->dirbase; + + } else { /* Dynamic table (sub-directory or root-directory in FAT32+) */ + csz = (DWORD)fs->csize * SS(fs); /* Bytes per cluster */ + while (ofs >= csz) { /* Follow cluster chain */ + clst = get_fat(&dp->obj, clst); /* Get next cluster */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal error */ + ofs -= csz; + } + dp->sect = clust2sect(fs, clst); + } + dp->clust = clst; /* Current cluster# */ + if (!dp->sect) return FR_INT_ERR; + dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ + dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ + + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Move directory table index next */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Could not stretch */ + DIR* dp, /* Pointer to the directory object */ + int stretch /* 0: Do not stretch table, 1: Stretch table if needed */ +) +{ + DWORD ofs, clst; + FATFS *fs = dp->obj.fs; +#if !_FS_READONLY + UINT n; +#endif + + ofs = dp->dptr + SZDIRE; /* Next entry */ + if (!dp->sect || ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) return FR_NO_FILE; /* Report EOT when offset has reached max value */ + + if (ofs % SS(fs) == 0) { /* Sector changed? */ + dp->sect++; /* Next sector */ + + if (!dp->clust) { /* Static table */ + if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */ + dp->sect = 0; return FR_NO_FILE; + } + } + else { /* Dynamic table */ + if ((ofs / SS(fs) & (fs->csize - 1)) == 0) { /* Cluster changed? */ + clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ + if (clst <= 1) return FR_INT_ERR; /* Internal error */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ +#if !_FS_READONLY + if (!stretch) { /* If no stretch, report EOT */ + dp->sect = 0; return FR_NO_FILE; + } + clst = create_chain(&dp->obj, dp->clust); /* Allocate a cluster */ + if (clst == 0) return FR_DENIED; /* No free cluster */ + if (clst == 1) return FR_INT_ERR; /* Internal error */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + /* Clean-up the stretched table */ + if (_FS_EXFAT) dp->obj.stat |= 4; /* The directory needs to be updated */ + if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */ + mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ + for (n = 0, fs->winsect = clust2sect(fs, clst); n < fs->csize; n++, fs->winsect++) { /* Fill the new cluster with 0 */ + fs->wflag = 1; + if (sync_window(fs) != FR_OK) return FR_DISK_ERR; + } + fs->winsect -= n; /* Restore window offset */ +#else + if (!stretch) dp->sect = 0; /* If no stretch, report EOT (this is to suppress warning) */ + dp->sect = 0; return FR_NO_FILE; /* Report EOT */ +#endif + } + dp->clust = clst; /* Initialize data for new cluster */ + dp->sect = clust2sect(fs, clst); + } + } + } + dp->dptr = ofs; /* Current entry */ + dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ + + return FR_OK; +} + + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Directory handling - Reserve a block of directory entries */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_alloc ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp, /* Pointer to the directory object */ + UINT nent /* Number of contiguous entries to allocate */ +) +{ + FRESULT res; + UINT n; + FATFS *fs = dp->obj.fs; + + + res = dir_sdi(dp, 0); + if (res == FR_OK) { + n = 0; + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; +#if _FS_EXFAT + if ((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0)) { +#else + if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) { +#endif + if (++n == nent) break; /* A block of contiguous free entries is found */ + } else { + n = 0; /* Not a blank entry. Restart to search */ + } + res = dir_next(dp, 1); + } while (res == FR_OK); /* Next entry with table stretch enabled */ + } + + if (res == FR_NO_FILE) res = FR_DENIED; /* No directory entry to allocate */ + return res; +} + +#endif /* !_FS_READONLY */ + + + + +/*-----------------------------------------------------------------------*/ +/* FAT: Directory handling - Load/Store start cluster number */ +/*-----------------------------------------------------------------------*/ + +static +DWORD ld_clust ( /* Returns the top cluster value of the SFN entry */ + FATFS* fs, /* Pointer to the fs object */ + const BYTE* dir /* Pointer to the key entry */ +) +{ + DWORD cl; + + cl = ld_word(dir + DIR_FstClusLO); + if (fs->fs_type == FS_FAT32) { + cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; + } + + return cl; +} + + +#if !_FS_READONLY +static +void st_clust ( + FATFS* fs, /* Pointer to the fs object */ + BYTE* dir, /* Pointer to the key entry */ + DWORD cl /* Value to be set */ +) +{ + st_word(dir + DIR_FstClusLO, (WORD)cl); + if (fs->fs_type == FS_FAT32) { + st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16)); + } +} +#endif + + + +#if _USE_LFN != 0 +/*------------------------------------------------------------------------*/ +/* FAT-LFN: LFN handling */ +/*------------------------------------------------------------------------*/ +static +const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30}; /* Offset of LFN characters in the directory entry */ + + +/*--------------------------------------------------------*/ +/* FAT-LFN: Compare a part of file name with an LFN entry */ +/*--------------------------------------------------------*/ +static +int cmp_lfn ( /* 1:matched, 0:not matched */ + const WCHAR* lfnbuf, /* Pointer to the LFN working buffer to be compared */ + BYTE* dir /* Pointer to the directory entry containing the part of LFN */ +) +{ + UINT i, s; + WCHAR wc, uc; + + + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */ + + i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */ + + for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ + uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ + if (wc) { + if (i >= _MAX_LFN || ff_wtoupper(uc) != ff_wtoupper(lfnbuf[i++])) { /* Compare it */ + return 0; /* Not matched */ + } + wc = uc; + } else { + if (uc != 0xFFFF) return 0; /* Check filler */ + } + } + + if ((dir[LDIR_Ord] & LLEF) && wc && lfnbuf[i]) return 0; /* Last segment matched but different length */ + + return 1; /* The part of LFN matched */ +} + + +#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT +/*-----------------------------------------------------*/ +/* FAT-LFN: Pick a part of file name from an LFN entry */ +/*-----------------------------------------------------*/ +static +int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ + WCHAR* lfnbuf, /* Pointer to the LFN working buffer */ + BYTE* dir /* Pointer to the LFN entry */ +) +{ + UINT i, s; + WCHAR wc, uc; + + + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */ + + i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */ + + for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ + uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ + if (wc) { + if (i >= _MAX_LFN) return 0; /* Buffer overflow? */ + lfnbuf[i++] = wc = uc; /* Store it */ + } else { + if (uc != 0xFFFF) return 0; /* Check filler */ + } + } + + if (dir[LDIR_Ord] & LLEF) { /* Put terminator if it is the last LFN part */ + if (i >= _MAX_LFN) return 0; /* Buffer overflow? */ + lfnbuf[i] = 0; + } + + return 1; /* The part of LFN is valid */ +} +#endif + + +#if !_FS_READONLY +/*-----------------------------------------*/ +/* FAT-LFN: Create an entry of LFN entries */ +/*-----------------------------------------*/ +static +void put_lfn ( + const WCHAR* lfn, /* Pointer to the LFN */ + BYTE* dir, /* Pointer to the LFN entry to be created */ + BYTE ord, /* LFN order (1-20) */ + BYTE sum /* Checksum of the corresponding SFN */ +) +{ + UINT i, s; + WCHAR wc; + + + dir[LDIR_Chksum] = sum; /* Set checksum */ + dir[LDIR_Attr] = AM_LFN; /* Set attribute. LFN entry */ + dir[LDIR_Type] = 0; + st_word(dir + LDIR_FstClusLO, 0); + + i = (ord - 1) * 13; /* Get offset in the LFN working buffer */ + s = wc = 0; + do { + if (wc != 0xFFFF) wc = lfn[i++]; /* Get an effective character */ + st_word(dir + LfnOfs[s], wc); /* Put it */ + if (wc == 0) wc = 0xFFFF; /* Padding characters for left locations */ + } while (++s < 13); + if (wc == 0xFFFF || !lfn[i]) ord |= LLEF; /* Last LFN part is the start of LFN sequence */ + dir[LDIR_Ord] = ord; /* Set the LFN order */ +} + +#endif /* !_FS_READONLY */ +#endif /* _USE_LFN != 0 */ + + + +#if _USE_LFN != 0 && !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT-LFN: Create a Numbered SFN */ +/*-----------------------------------------------------------------------*/ + +static +void gen_numname ( + BYTE* dst, /* Pointer to the buffer to store numbered SFN */ + const BYTE* src, /* Pointer to SFN */ + const WCHAR* lfn, /* Pointer to LFN */ + UINT seq /* Sequence number */ +) +{ + BYTE ns[8], c; + UINT i, j; + WCHAR wc; + DWORD sr; + + + mem_cpy(dst, src, 11); + + if (seq > 5) { /* In case of many collisions, generate a hash number instead of sequential number */ + sr = seq; + while (*lfn) { /* Create a CRC */ + wc = *lfn++; + for (i = 0; i < 16; i++) { + sr = (sr << 1) + (wc & 1); + wc >>= 1; + if (sr & 0x10000) sr ^= 0x11021; + } + } + seq = (UINT)sr; + } + + /* itoa (hexdecimal) */ + i = 7; + do { + c = (BYTE)((seq % 16) + '0'); + if (c > '9') c += 7; + ns[i--] = c; + seq /= 16; + } while (seq); + ns[i] = '~'; + + /* Append the number */ + for (j = 0; j < i && dst[j] != ' '; j++) { + if (IsDBCS1(dst[j])) { + if (j == i - 1) break; + j++; + } + } + do { + dst[j++] = (i < 8) ? ns[i++] : ' '; + } while (j < 8); +} +#endif /* _USE_LFN != 0 && !_FS_READONLY */ + + + +#if _USE_LFN != 0 +/*-----------------------------------------------------------------------*/ +/* FAT-LFN: Calculate checksum of an SFN entry */ +/*-----------------------------------------------------------------------*/ + +static +BYTE sum_sfn ( + const BYTE* dir /* Pointer to the SFN entry */ +) +{ + BYTE sum = 0; + UINT n = 11; + + do sum = (sum >> 1) + (sum << 7) + *dir++; while (--n); + return sum; +} + +#endif /* _USE_LFN != 0 */ + + + +#if _FS_EXFAT +/*-----------------------------------------------------------------------*/ +/* exFAT: Checksum */ +/*-----------------------------------------------------------------------*/ + +static +WORD xdir_sum ( /* Get checksum of the directoly block */ + const BYTE* dir /* Directory entry block to be calculated */ +) +{ + UINT i, szblk; + WORD sum; + + + szblk = (dir[XDIR_NumSec] + 1) * SZDIRE; + for (i = sum = 0; i < szblk; i++) { + if (i == XDIR_SetSum) { /* Skip sum field */ + i++; + } else { + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + dir[i]; + } + } + return sum; +} + + + +static +WORD xname_sum ( /* Get check sum (to be used as hash) of the name */ + const WCHAR* name /* File name to be calculated */ +) +{ + WCHAR chr; + WORD sum = 0; + + + while ((chr = *name++) != 0) { + chr = ff_wtoupper(chr); /* File name needs to be ignored case */ + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr & 0xFF); + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr >> 8); + } + return sum; +} + + +#if !_FS_READONLY && _USE_MKFS +static +DWORD xsum32 ( + BYTE dat, /* Data to be sumed */ + DWORD sum /* Previous value */ +) +{ + sum = ((sum & 1) ? 0x80000000 : 0) + (sum >> 1) + dat; + return sum; +} +#endif + + +#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 +/*------------------------------------------------------*/ +/* exFAT: Get object information from a directory block */ +/*------------------------------------------------------*/ + +static +void get_xdir_info ( + BYTE* dirb, /* Pointer to the direcotry entry block 85+C0+C1s */ + FILINFO* fno /* Buffer to store the extracted file information */ +) +{ + UINT di, si; + WCHAR w; +#if !_LFN_UNICODE + UINT nc; +#endif + + /* Get file name */ +#if _LFN_UNICODE + if (dirb[XDIR_NumName] <= _MAX_LFN) { + for (si = SZDIRE * 2, di = 0; di < dirb[XDIR_NumName]; si += 2, di++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ld_word(dirb + si); /* Get a character */ + fno->fname[di] = w; /* Store it */ + } + } else { + di = 0; /* Buffer overflow and inaccessible object */ + } +#else + for (si = SZDIRE * 2, di = nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ld_word(dirb + si); /* Get a character */ + w = ff_convert(w, 0); /* Unicode -> OEM */ + if (w == 0) { di = 0; break; } /* Could not be converted and inaccessible object */ + if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */ + fno->fname[di++] = (char)(w >> 8); + } + if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow and inaccessible object */ + fno->fname[di++] = (char)w; + } +#endif + if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object? */ + fno->fname[di] = 0; /* Terminate file name */ + + fno->altname[0] = 0; /* No SFN */ + fno->fattrib = dirb[XDIR_Attr]; /* Attribute */ + fno->fsize = (fno->fattrib & AM_DIR) ? 0 : ld_qword(dirb + XDIR_FileSize); /* Size */ + fno->ftime = ld_word(dirb + XDIR_ModTime + 0); /* Time */ + fno->fdate = ld_word(dirb + XDIR_ModTime + 2); /* Date */ +} + +#endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */ + + +/*-----------------------------------*/ +/* exFAT: Get a directry entry block */ +/*-----------------------------------*/ + +static +FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ + DIR* dp /* Pointer to the reading direcotry object pointing the 85 entry */ +) +{ + FRESULT res; + UINT i, nent; + BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the on-memory direcotry entry block 85+C0+C1s */ + + + /* Load 85 entry */ + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR; + mem_cpy(dirb, dp->dir, SZDIRE); + nent = dirb[XDIR_NumSec] + 1; + + /* Load C0 entry */ + res = dir_next(dp, 0); + if (res != FR_OK) return res; + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR; + mem_cpy(dirb + SZDIRE, dp->dir, SZDIRE); + + /* Load C1 entries */ + if (nent < 3 || nent > 19) return FR_NO_FILE; + i = SZDIRE * 2; nent *= SZDIRE; + do { + res = dir_next(dp, 0); + if (res != FR_OK) return res; + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR; + mem_cpy(dirb + i, dp->dir, SZDIRE); + i += SZDIRE; + } while (i < nent); + + /* Sanity check */ + if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + + return FR_OK; +} + + +#if !_FS_READONLY || _FS_RPATH != 0 +/*------------------------------------------------*/ +/* exFAT: Load the object's directory entry block */ +/*------------------------------------------------*/ +static +FRESULT load_obj_dir ( + DIR* dp, /* Blank directory object to be used to access containing direcotry */ + const _FDID* obj /* Object with containing directory information */ +) +{ + FRESULT res; + + + /* Open object containing directory */ + dp->obj.fs = obj->fs; + dp->obj.sclust = obj->c_scl; + dp->obj.stat = (BYTE)obj->c_size; + dp->obj.objsize = obj->c_size & 0xFFFFFF00; + dp->blk_ofs = obj->c_ofs; + + res = dir_sdi(dp, dp->blk_ofs); /* Goto the block location */ + if (res == FR_OK) { + res = load_xdir(dp); /* Load the object's entry block */ + } + return res; +} +#endif + + +#if !_FS_READONLY +/*-----------------------------------------------*/ +/* exFAT: Store the directory block to the media */ +/*-----------------------------------------------*/ +static +FRESULT store_xdir ( + DIR* dp /* Pointer to the direcotry object */ +) +{ + FRESULT res; + UINT nent; + BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the direcotry entry block 85+C0+C1s */ + + /* Create set sum */ + st_word(dirb + XDIR_SetSum, xdir_sum(dirb)); + nent = dirb[XDIR_NumSec] + 1; + + /* Store the set of directory to the volume */ + res = dir_sdi(dp, dp->blk_ofs); + while (res == FR_OK) { + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) break; + mem_cpy(dp->dir, dirb, SZDIRE); + dp->obj.fs->wflag = 1; + if (--nent == 0) break; + dirb += SZDIRE; + res = dir_next(dp, 0); + } + return (res == FR_OK || res == FR_DISK_ERR) ? res : FR_INT_ERR; +} + + + +/*-------------------------------------------*/ +/* exFAT: Create a new directory enrty block */ +/*-------------------------------------------*/ + +static +void create_xdir ( + BYTE* dirb, /* Pointer to the direcotry entry block buffer */ + const WCHAR* lfn /* Pointer to the nul terminated file name */ +) +{ + UINT i; + BYTE nb, nc; + WCHAR chr; + + + mem_set(dirb, 0, 2 * SZDIRE); /* Initialize 85+C0 entry */ + dirb[XDIR_Type] = 0x85; + dirb[XDIR_Type + SZDIRE] = 0xC0; + st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ + + i = SZDIRE * 2; /* C1 offset */ + nc = 0; nb = 1; chr = 1; + do { + dirb[i++] = 0xC1; dirb[i++] = 0; /* Entry type C1 */ + do { /* Fill name field */ + if (chr && (chr = lfn[nc]) != 0) nc++; /* Get a character if exist */ + st_word(dirb + i, chr); i += 2; /* Store it */ + } while (i % SZDIRE); + nb++; + } while (lfn[nc]); /* Fill next entry if any char follows */ + + dirb[XDIR_NumName] = nc; /* Set name length */ + dirb[XDIR_NumSec] = nb; /* Set number of C0+C1s */ +} + +#endif /* !_FS_READONLY */ +#endif /* _FS_EXFAT */ + + + +#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT +/*-----------------------------------------------------------------------*/ +/* Read an object from the directory */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_read ( + DIR* dp, /* Pointer to the directory object */ + int vol /* Filtered by 0:file/directory or 1:volume label */ +) +{ + FRESULT res = FR_NO_FILE; + FATFS *fs = dp->obj.fs; + BYTE a, c; +#if _USE_LFN != 0 + BYTE ord = 0xFF, sum = 0xFF; +#endif + + while (dp->sect) { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + c = dp->dir[DIR_Name]; /* Test for the entry type */ + if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of the directory */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + if (_USE_LABEL && vol) { + if (c == 0x83) break; /* Volume label entry? */ + } else { + if (c == 0x85) { /* Start of the file entry block? */ + dp->blk_ofs = dp->dptr; /* Get location of the block */ + res = load_xdir(dp); /* Load the entry block */ + if (res == FR_OK) { + dp->obj.attr = fs->dirbuf[XDIR_Attr] & AM_MASK; /* Get attribute */ + } + break; + } + } + } else +#endif + { /* On the FAT12/16/32 volume */ + dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */ +#if _USE_LFN != 0 /* LFN configuration */ + if (c == DDEM || c == '.' || (int)((a & ~AM_ARC) == AM_VOL) != vol) { /* An entry without valid data */ + ord = 0xFF; + } else { + if (a == AM_LFN) { /* An LFN entry is found */ + if (c & LLEF) { /* Is it start of an LFN sequence? */ + sum = dp->dir[LDIR_Chksum]; + c &= (BYTE)~LLEF; ord = c; + dp->blk_ofs = dp->dptr; + } + /* Check LFN validity and capture it */ + ord = (c == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; + } else { /* An SFN entry is found */ + if (ord || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */ + dp->blk_ofs = 0xFFFFFFFF; /* It has no LFN. */ + } + break; + } + } +#else /* Non LFN configuration */ + if (c != DDEM && c != '.' && a != AM_LFN && (int)((a & ~AM_ARC) == AM_VOL) == vol) { /* Is it a valid entry? */ + break; + } +#endif + } + res = dir_next(dp, 0); /* Next entry */ + if (res != FR_OK) break; + } + + if (res != FR_OK) dp->sect = 0; /* Terminate the read operation on error or EOT */ + return res; +} + +#endif /* _FS_MINIMIZE <= 1 || _USE_LABEL || _FS_RPATH >= 2 */ + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Find an object in the directory */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp /* Pointer to the directory object with the file name */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; + BYTE c; +#if _USE_LFN != 0 + BYTE a, ord, sum; +#endif + + res = dir_sdi(dp, 0); /* Rewind directory object */ + if (res != FR_OK) return res; +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + BYTE nc; + UINT di, ni; + WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */ + + while ((res = dir_read(dp, 0)) == FR_OK) { /* Read an item */ + if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip the comparison if hash value mismatched */ + for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compare the name */ + if ((di % SZDIRE) == 0) di += 2; + if (ff_wtoupper(ld_word(fs->dirbuf + di)) != ff_wtoupper(fs->lfnbuf[ni])) break; + } + if (nc == 0 && !fs->lfnbuf[ni]) break; /* Name matched? */ + } + return res; + } +#endif + /* On the FAT12/16/32 volume */ +#if _USE_LFN != 0 + ord = sum = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ +#endif + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + c = dp->dir[DIR_Name]; + if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ +#if _USE_LFN != 0 /* LFN configuration */ + dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; + if (c == DDEM || ((a & AM_VOL) && a != AM_LFN)) { /* An entry without valid data */ + ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ + } else { + if (a == AM_LFN) { /* An LFN entry is found */ + if (!(dp->fn[NSFLAG] & NS_NOLFN)) { + if (c & LLEF) { /* Is it start of LFN sequence? */ + sum = dp->dir[LDIR_Chksum]; + c &= (BYTE)~LLEF; ord = c; /* LFN start order */ + dp->blk_ofs = dp->dptr; /* Start offset of LFN */ + } + /* Check validity of the LFN entry and compare it with given name */ + ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; + } + } else { /* An SFN entry is found */ + if (!ord && sum == sum_sfn(dp->dir)) break; /* LFN matched? */ + if (!(dp->fn[NSFLAG] & NS_LOSS) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */ + ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ + } + } +#else /* Non LFN configuration */ + dp->obj.attr = dp->dir[DIR_Attr] & AM_MASK; + if (!(dp->dir[DIR_Attr] & AM_VOL) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry? */ +#endif + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK); + + return res; +} + + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Register an object to the directory */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many SFN collision, FR_DISK_ERR:disk error */ + DIR* dp /* Target directory with object name to be created */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; +#if _USE_LFN != 0 /* LFN configuration */ + UINT n, nlen, nent; + BYTE sn[12], sum; + + + if (dp->fn[NSFLAG] & (NS_DOT | NS_NONAME)) return FR_INVALID_NAME; /* Check name validity */ + for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */ + +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + DIR dj; + + nent = (nlen + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */ + res = dir_alloc(dp, nent); /* Allocate entries */ + if (res != FR_OK) return res; + dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set block position */ + + if (dp->obj.sclust != 0 && (dp->obj.stat & 4)) { /* Has the sub-directory been stretched? */ + dp->obj.stat &= 3; + dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase object size by cluster size */ + res = fill_fat_chain(&dp->obj); /* Complement FAT chain if needed */ + if (res != FR_OK) return res; + res = load_obj_dir(&dj, &dp->obj); + if (res != FR_OK) return res; /* Load the object status */ + st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ + st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); + fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; + res = store_xdir(&dj); /* Store the object status */ + if (res != FR_OK) return res; + } + + create_xdir(fs->dirbuf, fs->lfnbuf); /* Create on-memory directory block to be written later */ + return FR_OK; + } +#endif + /* On the FAT12/16/32 volume */ + mem_cpy(sn, dp->fn, 12); + if (sn[NSFLAG] & NS_LOSS) { /* When LFN is out of 8.3 format, generate a numbered name */ + dp->fn[NSFLAG] = NS_NOLFN; /* Find only SFN */ + for (n = 1; n < 100; n++) { + gen_numname(dp->fn, sn, fs->lfnbuf, n); /* Generate a numbered name */ + res = dir_find(dp); /* Check if the name collides with existing SFN */ + if (res != FR_OK) break; + } + if (n == 100) return FR_DENIED; /* Abort if too many collisions */ + if (res != FR_NO_FILE) return res; /* Abort if the result is other than 'not collided' */ + dp->fn[NSFLAG] = sn[NSFLAG]; + } + + /* Create an SFN with/without LFNs. */ + nent = (sn[NSFLAG] & NS_LFN) ? (nlen + 12) / 13 + 1 : 1; /* Number of entries to allocate */ + res = dir_alloc(dp, nent); /* Allocate entries */ + if (res == FR_OK && --nent) { /* Set LFN entry if needed */ + res = dir_sdi(dp, dp->dptr - nent * SZDIRE); + if (res == FR_OK) { + sum = sum_sfn(dp->fn); /* Checksum value of the SFN tied to the LFN */ + do { /* Store LFN entries in bottom first */ + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + put_lfn(fs->lfnbuf, dp->dir, (BYTE)nent, sum); + fs->wflag = 1; + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK && --nent); + } + } + +#else /* Non LFN configuration */ + res = dir_alloc(dp, 1); /* Allocate an entry for SFN */ + +#endif + + /* Set SFN entry */ + if (res == FR_OK) { + res = move_window(fs, dp->sect); + if (res == FR_OK) { + mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */ + mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */ +#if _USE_LFN != 0 + dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */ +#endif + fs->wflag = 1; + } + } + + return res; +} + +#endif /* !_FS_READONLY */ + + + +#if !_FS_READONLY && _FS_MINIMIZE == 0 +/*-----------------------------------------------------------------------*/ +/* Remove an object from the directory */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ + DIR* dp /* Directory object pointing the entry to be removed */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; +#if _USE_LFN != 0 /* LFN configuration */ + DWORD last = dp->dptr; + + res = (dp->blk_ofs == 0xFFFFFFFF) ? FR_OK : dir_sdi(dp, dp->blk_ofs); /* Goto top of the entry block if LFN is exist */ + if (res == FR_OK) { + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + /* Mark an entry 'deleted' */ + if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + dp->dir[XDIR_Type] &= 0x7F; + } else { /* On the FAT12/16/32 volume */ + dp->dir[DIR_Name] = DDEM; + } + fs->wflag = 1; + if (dp->dptr >= last) break; /* If reached last entry then all entries of the object has been deleted. */ + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK); + if (res == FR_NO_FILE) res = FR_INT_ERR; + } +#else /* Non LFN configuration */ + + res = move_window(fs, dp->sect); + if (res == FR_OK) { + dp->dir[DIR_Name] = DDEM; + fs->wflag = 1; + } +#endif + + return res; +} + +#endif /* !_FS_READONLY && _FS_MINIMIZE == 0 */ + + + +#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 +/*-----------------------------------------------------------------------*/ +/* Get file information from directory entry */ +/*-----------------------------------------------------------------------*/ + +static +void get_fileinfo ( /* No return code */ + DIR* dp, /* Pointer to the directory object */ + FILINFO* fno /* Pointer to the file information to be filled */ +) +{ + UINT i, j; + TCHAR c; + DWORD tm; +#if _USE_LFN != 0 + WCHAR w, lfv; + FATFS *fs = dp->obj.fs; +#endif + + + fno->fname[0] = 0; /* Invaidate file info */ + if (!dp->sect) return; /* Exit if read pointer has reached end of directory */ + +#if _USE_LFN != 0 /* LFN configuration */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + get_xdir_info(fs->dirbuf, fno); + return; + } else +#endif + { /* On the FAT12/16/32 volume */ + if (dp->blk_ofs != 0xFFFFFFFF) { /* Get LFN if available */ + i = j = 0; + while ((w = fs->lfnbuf[j++]) != 0) { /* Get an LFN character */ +#if !_LFN_UNICODE + w = ff_convert(w, 0); /* Unicode -> OEM */ + if (w == 0) { i = 0; break; } /* No LFN if it could not be converted */ + if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */ + fno->fname[i++] = (char)(w >> 8); + } +#endif + if (i >= _MAX_LFN) { i = 0; break; } /* No LFN if buffer overflow */ + fno->fname[i++] = (TCHAR)w; + } + fno->fname[i] = 0; /* Terminate the LFN */ + } + } + + i = j = 0; + lfv = fno->fname[i]; /* LFN is exist if non-zero */ + while (i < 11) { /* Copy name body and extension */ + c = (TCHAR)dp->dir[i++]; + if (c == ' ') continue; /* Skip padding spaces */ + if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ + if (i == 9) { /* Insert a . if extension is exist */ + if (!lfv) fno->fname[j] = '.'; + fno->altname[j++] = '.'; + } +#if _LFN_UNICODE + if (IsDBCS1(c) && i != 8 && i != 11 && IsDBCS2(dp->dir[i])) { + c = c << 8 | dp->dir[i++]; + } + c = ff_convert(c, 1); /* OEM -> Unicode */ + if (!c) c = '?'; +#endif + fno->altname[j] = c; + if (!lfv) { + if (IsUpper(c) && (dp->dir[DIR_NTres] & (i >= 9 ? NS_EXT : NS_BODY))) { + c += 0x20; /* To lower */ + } + fno->fname[j] = c; + } + j++; + } + if (!lfv) { + fno->fname[j] = 0; + if (!dp->dir[DIR_NTres]) j = 0; /* Altname is no longer needed if neither LFN nor case info is exist. */ + } + fno->altname[j] = 0; /* Terminate the SFN */ + +#else /* Non-LFN configuration */ + i = j = 0; + while (i < 11) { /* Copy name body and extension */ + c = (TCHAR)dp->dir[i++]; + if (c == ' ') continue; /* Skip padding spaces */ + if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ + if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ + fno->fname[j++] = c; + } + fno->fname[j] = 0; +#endif + + fno->fattrib = dp->dir[DIR_Attr]; /* Attribute */ + fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */ + tm = ld_dword(dp->dir + DIR_ModTime); /* Timestamp */ + fno->ftime = (WORD)tm; fno->fdate = (WORD)(tm >> 16); +} + +#endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */ + + + +#if _USE_FIND && _FS_MINIMIZE <= 1 +/*-----------------------------------------------------------------------*/ +/* Pattern matching */ +/*-----------------------------------------------------------------------*/ + +static +WCHAR get_achar ( /* Get a character and advances ptr 1 or 2 */ + const TCHAR** ptr /* Pointer to pointer to the SBCS/DBCS/Unicode string */ +) +{ +#if !_LFN_UNICODE + WCHAR chr; + + chr = (BYTE)*(*ptr)++; /* Get a byte */ + if (IsLower(chr)) chr -= 0x20; /* To upper ASCII char */ +#ifdef _EXCVT + if (chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */ +#else + if (IsDBCS1(chr) && IsDBCS2(**ptr)) { /* Get DBC 2nd byte if needed */ + chr = chr << 8 | (BYTE)*(*ptr)++; + } +#endif + return chr; +#else + return ff_wtoupper(*(*ptr)++); /* Get a word and to upper */ +#endif +} + + +static +int pattern_matching ( /* 0:not matched, 1:matched */ + const TCHAR* pat, /* Matching pattern */ + const TCHAR* nam, /* String to be tested */ + int skip, /* Number of pre-skip chars (number of ?s) */ + int inf /* Infinite search (* specified) */ +) +{ + const TCHAR *pp, *np; + WCHAR pc, nc; + int nm, nx; + + + while (skip--) { /* Pre-skip name chars */ + if (!get_achar(&nam)) return 0; /* Branch mismatched if less name chars */ + } + if (!*pat && inf) return 1; /* (short circuit) */ + + do { + pp = pat; np = nam; /* Top of pattern and name to match */ + for (;;) { + if (*pp == '?' || *pp == '*') { /* Wildcard? */ + nm = nx = 0; + do { /* Analyze the wildcard chars */ + if (*pp++ == '?') nm++; else nx = 1; + } while (*pp == '?' || *pp == '*'); + if (pattern_matching(pp, np, nm, nx)) return 1; /* Test new branch (recurs upto number of wildcard blocks in the pattern) */ + nc = *np; break; /* Branch mismatched */ + } + pc = get_achar(&pp); /* Get a pattern char */ + nc = get_achar(&np); /* Get a name char */ + if (pc != nc) break; /* Branch mismatched? */ + if (pc == 0) return 1; /* Branch matched? (matched at end of both strings) */ + } + get_achar(&nam); /* nam++ */ + } while (inf && nc); /* Retry until end of name if infinite search is specified */ + + return 0; +} + +#endif /* _USE_FIND && _FS_MINIMIZE <= 1 */ + + + +/*-----------------------------------------------------------------------*/ +/* Pick a top segment and create the object name in directory form */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ + DIR* dp, /* Pointer to the directory object */ + const TCHAR** path /* Pointer to pointer to the segment in the path string */ +) +{ +#if _USE_LFN != 0 /* LFN configuration */ + BYTE b, cf; + WCHAR w, *lfn; + UINT i, ni, si, di; + const TCHAR *p; + + /* Create LFN in Unicode */ + p = *path; lfn = dp->obj.fs->lfnbuf; si = di = 0; + for (;;) { + w = p[si++]; /* Get a character */ + if (w < ' ') break; /* Break if end of the path name */ + if (w == '/' || w == '\\') { /* Break if a separator is found */ + while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ + break; + } + if (di >= _MAX_LFN) return FR_INVALID_NAME; /* Reject too long name */ +#if !_LFN_UNICODE + w &= 0xFF; + if (IsDBCS1(w)) { /* Check if it is a DBC 1st byte (always false on SBCS cfg) */ + b = (BYTE)p[si++]; /* Get 2nd byte */ + w = (w << 8) + b; /* Create a DBC */ + if (!IsDBCS2(b)) return FR_INVALID_NAME; /* Reject invalid sequence */ + } + w = ff_convert(w, 1); /* Convert ANSI/OEM to Unicode */ + if (!w) return FR_INVALID_NAME; /* Reject invalid code */ +#endif + if (w < 0x80 && chk_chr("\"*:<>\?|\x7F", w)) return FR_INVALID_NAME; /* Reject illegal characters for LFN */ + lfn[di++] = w; /* Store the Unicode character */ + } + *path = &p[si]; /* Return pointer to the next segment */ + cf = (w < ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ +#if _FS_RPATH != 0 + if ((di == 1 && lfn[di - 1] == '.') || + (di == 2 && lfn[di - 1] == '.' && lfn[di - 2] == '.')) { /* Is this segment a dot name? */ + lfn[di] = 0; + for (i = 0; i < 11; i++) /* Create dot name for SFN entry */ + dp->fn[i] = (i < di) ? '.' : ' '; + dp->fn[i] = cf | NS_DOT; /* This is a dot entry */ + return FR_OK; + } +#endif + while (di) { /* Snip off trailing spaces and dots if exist */ + w = lfn[di - 1]; + if (w != ' ' && w != '.') break; + di--; + } + lfn[di] = 0; /* LFN is created */ + if (di == 0) return FR_INVALID_NAME; /* Reject nul name */ + + /* Create SFN in directory form */ + mem_set(dp->fn, ' ', 11); + for (si = 0; lfn[si] == ' ' || lfn[si] == '.'; si++) ; /* Strip leading spaces and dots */ + if (si) cf |= NS_LOSS | NS_LFN; + while (di && lfn[di - 1] != '.') di--; /* Find extension (di<=si: no extension) */ + + i = b = 0; ni = 8; + for (;;) { + w = lfn[si++]; /* Get an LFN character */ + if (!w) break; /* Break on end of the LFN */ + if (w == ' ' || (w == '.' && si != di)) { /* Remove spaces and dots */ + cf |= NS_LOSS | NS_LFN; continue; + } + + if (i >= ni || si == di) { /* Extension or end of SFN */ + if (ni == 11) { /* Long extension */ + cf |= NS_LOSS | NS_LFN; break; + } + if (si != di) cf |= NS_LOSS | NS_LFN; /* Out of 8.3 format */ + if (si > di) break; /* No extension */ + si = di; i = 8; ni = 11; /* Enter extension section */ + b <<= 2; continue; + } + + if (w >= 0x80) { /* Non ASCII character */ +#ifdef _EXCVT + w = ff_convert(w, 0); /* Unicode -> OEM code */ + if (w) w = ExCvt[w - 0x80]; /* Convert extended character to upper (SBCS) */ +#else + w = ff_convert(ff_wtoupper(w), 0); /* Upper converted Unicode -> OEM code */ +#endif + cf |= NS_LFN; /* Force create LFN entry */ + } + + if (_DF1S && w >= 0x100) { /* Is this DBC? (always false at SBCS cfg) */ + if (i >= ni - 1) { + cf |= NS_LOSS | NS_LFN; i = ni; continue; + } + dp->fn[i++] = (BYTE)(w >> 8); + } else { /* SBC */ + if (!w || chk_chr("+,;=[]", w)) { /* Replace illegal characters for SFN */ + w = '_'; cf |= NS_LOSS | NS_LFN;/* Lossy conversion */ + } else { + if (IsUpper(w)) { /* ASCII large capital */ + b |= 2; + } else { + if (IsLower(w)) { /* ASCII small capital */ + b |= 1; w -= 0x20; + } + } + } + } + dp->fn[i++] = (BYTE)w; + } + + if (dp->fn[0] == DDEM) dp->fn[0] = RDDEM; /* If the first character collides with DDEM, replace it with RDDEM */ + + if (ni == 8) b <<= 2; + if ((b & 0x0C) == 0x0C || (b & 0x03) == 0x03) cf |= NS_LFN; /* Create LFN entry when there are composite capitals */ + if (!(cf & NS_LFN)) { /* When LFN is in 8.3 format without extended character, NT flags are created */ + if ((b & 0x03) == 0x01) cf |= NS_EXT; /* NT flag (Extension has only small capital) */ + if ((b & 0x0C) == 0x04) cf |= NS_BODY; /* NT flag (Filename has only small capital) */ + } + + dp->fn[NSFLAG] = cf; /* SFN is created */ + + return FR_OK; + + +#else /* _USE_LFN != 0 : Non-LFN configuration */ + BYTE c, d, *sfn; + UINT ni, si, i; + const char *p; + + /* Create file name in directory form */ + p = *path; sfn = dp->fn; + mem_set(sfn, ' ', 11); + si = i = 0; ni = 8; +#if _FS_RPATH != 0 + if (p[si] == '.') { /* Is this a dot entry? */ + for (;;) { + c = (BYTE)p[si++]; + if (c != '.' || si >= 3) break; + sfn[i++] = c; + } + if (c != '/' && c != '\\' && c > ' ') return FR_INVALID_NAME; + *path = p + si; /* Return pointer to the next segment */ + sfn[NSFLAG] = (c <= ' ') ? NS_LAST | NS_DOT : NS_DOT; /* Set last segment flag if end of the path */ + return FR_OK; + } +#endif + for (;;) { + c = (BYTE)p[si++]; + if (c <= ' ') break; /* Break if end of the path name */ + if (c == '/' || c == '\\') { /* Break if a separator is found */ + while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ + break; + } + if (c == '.' || i >= ni) { /* End of body or over size? */ + if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */ + i = 8; ni = 11; /* Goto extension */ + continue; + } + if (c >= 0x80) { /* Extended character? */ +#ifdef _EXCVT + c = ExCvt[c - 0x80]; /* To upper extended characters (SBCS cfg) */ +#else +#if !_DF1S + return FR_INVALID_NAME; /* Reject extended characters (ASCII only cfg) */ +#endif +#endif + } + if (IsDBCS1(c)) { /* Check if it is a DBC 1st byte (always false at SBCS cfg.) */ + d = (BYTE)p[si++]; /* Get 2nd byte */ + if (!IsDBCS2(d) || i >= ni - 1) return FR_INVALID_NAME; /* Reject invalid DBC */ + sfn[i++] = c; + sfn[i++] = d; + } else { /* SBC */ + if (chk_chr("\"*+,:;<=>\?[]|\x7F", c)) return FR_INVALID_NAME; /* Reject illegal chrs for SFN */ + if (IsLower(c)) c -= 0x20; /* To upper */ + sfn[i++] = c; + } + } + *path = p + si; /* Return pointer to the next segment */ + if (i == 0) return FR_INVALID_NAME; /* Reject nul string */ + + if (sfn[0] == DDEM) sfn[0] = RDDEM; /* If the first character collides with DDEM, replace it with RDDEM */ + sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ + + return FR_OK; +#endif /* _USE_LFN != 0 */ +} + + + + +/*-----------------------------------------------------------------------*/ +/* Follow a file path */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ + DIR* dp, /* Directory object to return last directory and found object */ + const TCHAR* path /* Full-path string to find a file or directory */ +) +{ + FRESULT res; + BYTE ns; + _FDID *obj = &dp->obj; + FATFS *fs = obj->fs; + + +#if _FS_RPATH != 0 + if (*path != '/' && *path != '\\') { /* Without heading separator */ + obj->sclust = fs->cdir; /* Start from the current directory */ + } else +#endif + { /* With heading separator */ + while (*path == '/' || *path == '\\') path++; /* Strip heading separator */ + obj->sclust = 0; /* Start from the root directory */ + } +#if _FS_EXFAT && _FS_RPATH != 0 + if (fs->fs_type == FS_EXFAT && obj->sclust) { /* Retrieve the sub-directory status if needed */ + DIR dj; + + obj->c_scl = fs->cdc_scl; + obj->c_size = fs->cdc_size; + obj->c_ofs = fs->cdc_ofs; + res = load_obj_dir(&dj, obj); + if (res != FR_OK) return res; + obj->objsize = ld_dword(fs->dirbuf + XDIR_FileSize); + obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; + } +#endif + + if ((UINT)*path < ' ') { /* Null path name is the origin directory itself */ + dp->fn[NSFLAG] = NS_NONAME; + res = dir_sdi(dp, 0); + + } else { /* Follow path */ + for (;;) { + res = create_name(dp, &path); /* Get a segment name of the path */ + if (res != FR_OK) break; + res = dir_find(dp); /* Find an object with the segment name */ + ns = dp->fn[NSFLAG]; + if (res != FR_OK) { /* Failed to find the object */ + if (res == FR_NO_FILE) { /* Object is not found */ + if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */ + if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */ + dp->fn[NSFLAG] = NS_NONAME; + res = FR_OK; + } else { /* Could not find the object */ + if (!(ns & NS_LAST)) res = FR_NO_PATH; /* Adjust error code if not last segment */ + } + } + break; + } + if (ns & NS_LAST) break; /* Last segment matched. Function completed. */ + /* Get into the sub-directory */ + if (!(obj->attr & AM_DIR)) { /* It is not a sub-directory and cannot follow */ + res = FR_NO_PATH; break; + } +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + obj->c_scl = obj->sclust; /* Save containing directory information for next dir */ + obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; + obj->c_ofs = dp->blk_ofs; + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Open next directory */ + obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; + obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + } else +#endif + { + obj->sclust = ld_clust(fs, fs->win + dp->dptr % SS(fs)); /* Open next directory */ + } + } + } + + return res; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Get logical drive number from path name */ +/*-----------------------------------------------------------------------*/ + +static +int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ + const TCHAR** path /* Pointer to pointer to the path name */ +) +{ + const TCHAR *tp, *tt; + UINT i; + int vol = -1; +#if _STR_VOLUME_ID /* Find string drive id */ + static const char* const str[] = {_VOLUME_STRS}; + const char *sp; + char c; + TCHAR tc; +#endif + + + if (*path) { /* If the pointer is not a null */ + for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the path */ + if (*tt == ':') { /* If a ':' is exist in the path name */ + tp = *path; + i = *tp++ - '0'; + if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ + if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ + vol = (int)i; + *path = ++tt; + } + } +#if _STR_VOLUME_ID + else { /* No numeric drive number, find string drive id */ + i = 0; tt++; + do { + sp = str[i]; tp = *path; + do { /* Compare a string drive id with path name */ + c = *sp++; tc = *tp++; + if (IsLower(tc)) tc -= 0x20; + } while (c && (TCHAR)c == tc); + } while ((c || tp != tt) && ++i < _VOLUMES); /* Repeat for each id until pattern match */ + if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ + vol = (int)i; + *path = tt; + } + } +#endif + return vol; + } +#if _FS_RPATH != 0 && _VOLUMES >= 2 + vol = CurrVol; /* Current drive */ +#else + vol = 0; /* Drive 0 */ +#endif + } + return vol; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Load a sector and check if it is an FAT boot sector */ +/*-----------------------------------------------------------------------*/ + +static +BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk error */ + FATFS* fs, /* File system object */ + DWORD sect /* Sector# (lba) to check if it is an FAT-VBR or not */ +) +{ + fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ + if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */ + + if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed at offset 510 even if the sector size is >512) */ + + if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90)) { + if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string */ + if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */ + } +#if _FS_EXFAT + if (!mem_cmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) return 1; +#endif + return 2; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Find logical drive and check if the volume is mounted */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ + const TCHAR** path, /* Pointer to pointer to the path name (drive number) */ + FATFS** rfs, /* Pointer to pointer to the found file system object */ + BYTE mode /* !=0: Check write protection for write access */ +) +{ + BYTE fmt, *pt; + int vol; + DSTATUS stat; + DWORD bsect, fasize, tsect, sysect, nclst, szbfat, br[4]; + WORD nrsv; + FATFS *fs; + UINT i; + + + /* Get logical drive number */ + *rfs = 0; + vol = get_ldnumber(path); + if (vol < 0) return FR_INVALID_DRIVE; + + /* Check if the file system object is valid or not */ + fs = FatFs[vol]; /* Get pointer to the file system object */ + if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */ + + ENTER_FF(fs); /* Lock the volume */ + *rfs = fs; /* Return pointer to the file system object */ + + mode &= (BYTE)~FA_READ; /* Desired access mode, write access or not */ + if (fs->fs_type) { /* If the volume has been mounted */ + stat = disk_status(fs->drv); + if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ + if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ + return FR_WRITE_PROTECTED; + } + return FR_OK; /* The file system object is valid */ + } + } + + /* The file system object is not valid. */ + /* Following code attempts to mount the volume. (analyze BPB and initialize the fs object) */ + + fs->fs_type = 0; /* Clear the file system object */ + fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */ + stat = disk_initialize(fs->drv); /* Initialize the physical drive */ + if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ + return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ + } + if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ + return FR_WRITE_PROTECTED; + } +#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ + if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; + if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; +#endif + /* Find an FAT partition on the drive. Supports only generic partitioning, FDISK and SFD. */ + bsect = 0; + fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */ + if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */ + for (i = 0; i < 4; i++) { /* Get partition offset */ + pt = fs->win + (MBR_Table + i * SZ_PTE); + br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; + } + i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ + if (i) i--; + do { /* Find an FAT volume */ + bsect = br[i]; + fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ + } while (!LD2PT(vol) && fmt >= 2 && ++i < 4); + } + if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */ + if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ + + /* An FAT volume is found. Following code initializes the file system object */ + +#if _FS_EXFAT + if (fmt == 1) { + QWORD maxlba; + + for (i = BPB_ZeroedEx; i < BPB_ZeroedEx + 53 && fs->win[i] == 0; i++) ; /* Check zero filler */ + if (i < BPB_ZeroedEx + 53) return FR_NO_FILESYSTEM; + + if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT revision (Must be 1.0) */ + + if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ + return FR_NO_FILESYSTEM; + + maxlba = ld_qword(fs->win + BPB_TotSecEx) + bsect; /* Last LBA + 1 of the volume */ + if (maxlba >= 0x100000000) return FR_NO_FILESYSTEM; /* (It cannot be handled in 32-bit LBA) */ + + fs->fsize = ld_dword(fs->win + BPB_FatSzEx); /* Number of sectors per FAT */ + + fs->n_fats = fs->win[BPB_NumFATsEx]; /* Number of FATs */ + if (fs->n_fats != 1) return FR_NO_FILESYSTEM; /* (Supports only 1 FAT) */ + + fs->csize = 1 << fs->win[BPB_SecPerClusEx]; /* Cluster size */ + if (fs->csize == 0) return FR_NO_FILESYSTEM; /* (Must be 1..32768) */ + + nclst = ld_dword(fs->win + BPB_NumClusEx); /* Number of clusters */ + if (nclst > MAX_EXFAT) return FR_NO_FILESYSTEM; /* (Too many clusters) */ + fs->n_fatent = nclst + 2; + + /* Boundaries and Limits */ + fs->volbase = bsect; + fs->database = bsect + ld_dword(fs->win + BPB_DataOfsEx); + fs->fatbase = bsect + ld_dword(fs->win + BPB_FatOfsEx); + if (maxlba < (QWORD)fs->database + nclst * fs->csize) return FR_NO_FILESYSTEM; /* (Volume size must not be smaller than the size requiered) */ + fs->dirbase = ld_dword(fs->win + BPB_RootClusEx); + + /* Check if bitmap location is in assumption (at the first cluster) */ + if (move_window(fs, clust2sect(fs, fs->dirbase)) != FR_OK) return FR_DISK_ERR; + for (i = 0; i < SS(fs); i += SZDIRE) { + if (fs->win[i] == 0x81 && ld_dword(fs->win + i + 20) == 2) break; /* 81 entry with cluster #2? */ + } + if (i == SS(fs)) return FR_NO_FILESYSTEM; +#if !_FS_READONLY + fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ +#endif + fmt = FS_EXFAT; /* FAT sub-type */ + } else +#endif /* _FS_EXFAT */ + { + if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must be equal to the physical sector size) */ + + fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ + if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); + fs->fsize = fasize; + + fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ + if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */ + fasize *= fs->n_fats; /* Number of sectors for FAT area */ + + fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ + if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power of 2) */ + + fs->n_rootdir = ld_word(fs->win + BPB_RootEntCnt); /* Number of root directory entries */ + if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ + + tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ + if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); + + nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ + if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ + + /* Determine the FAT sub type */ + sysect = nrsv + fasize + fs->n_rootdir / (SS(fs) / SZDIRE); /* RSV + FAT + DIR */ + if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ + if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + fmt = FS_FAT32; + if (nclst <= MAX_FAT16) fmt = FS_FAT16; + if (nclst <= MAX_FAT12) fmt = FS_FAT12; + + /* Boundaries and Limits */ + fs->n_fatent = nclst + 2; /* Number of FAT entries */ + fs->volbase = bsect; /* Volume start sector */ + fs->fatbase = bsect + nrsv; /* FAT start sector */ + fs->database = bsect + sysect; /* Data start sector */ + if (fmt == FS_FAT32) { + if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0) */ + if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ + fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ + szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ + } else { + if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM;/* (BPB_RootEntCnt must not be 0) */ + fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ + szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ + fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1); + } + if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not be less than the size needed) */ + +#if !_FS_READONLY + /* Get FSINFO if available */ + fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ + fs->fsi_flag = 0x80; +#if (_FS_NOFSINFO & 3) != 3 + if (fmt == FS_FAT32 /* Enable FSINFO only if FAT32 and BPB_FSInfo32 == 1 */ + && ld_word(fs->win + BPB_FSInfo32) == 1 + && move_window(fs, bsect + 1) == FR_OK) + { + fs->fsi_flag = 0; + if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */ + && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 + && ld_dword(fs->win + FSI_StrucSig) == 0x61417272) + { +#if (_FS_NOFSINFO & 1) == 0 + fs->free_clst = ld_dword(fs->win + FSI_Free_Count); +#endif +#if (_FS_NOFSINFO & 2) == 0 + fs->last_clst = ld_dword(fs->win + FSI_Nxt_Free); +#endif + } + } +#endif /* (_FS_NOFSINFO & 3) != 3 */ +#endif /* !_FS_READONLY */ + } + + fs->fs_type = fmt; /* FAT sub-type */ + fs->id = ++Fsid; /* File system mount ID */ +#if _USE_LFN == 1 + fs->lfnbuf = LfnBuf; /* Static LFN working buffer */ +#if _FS_EXFAT + fs->dirbuf = DirBuf; /* Static directory block working buuffer */ +#endif +#endif +#if _FS_RPATH != 0 + fs->cdir = 0; /* Initialize current directory */ +#endif +#if _FS_LOCK != 0 /* Clear file lock semaphores */ + clear_lock(fs); +#endif + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Check if the file/directory object is valid or not */ +/*-----------------------------------------------------------------------*/ + +static +FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ + _FDID* obj, /* Pointer to the _OBJ, the 1st member in the FIL/DIR object, to check validity */ + FATFS** fs /* Pointer to pointer to the owner file system object to return */ +) +{ + FRESULT res; + + + if (!obj || !obj->fs || !obj->fs->fs_type || obj->fs->id != obj->id || (disk_status(obj->fs->drv) & STA_NOINIT)) { + *fs = 0; /* The object is invalid */ + res = FR_INVALID_OBJECT; + } else { + *fs = obj->fs; /* Owner file sytem object */ + ENTER_FF(obj->fs); /* Lock file system */ + res = FR_OK; + } + return res; +} + + + + +/*--------------------------------------------------------------------------- + + Public Functions (FatFs API) + +----------------------------------------------------------------------------*/ + + + +/*-----------------------------------------------------------------------*/ +/* Mount/Unmount a Logical Drive */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_mount ( + FATFS* fs, /* Pointer to the file system object (NULL:unmount)*/ + const TCHAR* path, /* Logical drive number to be mounted/unmounted */ + BYTE opt /* Mode option 0:Do not mount (delayed mount), 1:Mount immediately */ +) +{ + FATFS *cfs; + int vol; + FRESULT res; + const TCHAR *rp = path; + + + /* Get logical drive number */ + vol = get_ldnumber(&rp); + if (vol < 0) return FR_INVALID_DRIVE; + cfs = FatFs[vol]; /* Pointer to fs object */ + + if (cfs) { +#if _FS_LOCK != 0 + clear_lock(cfs); +#endif +#if _FS_REENTRANT /* Discard sync object of the current volume */ + if (!ff_del_syncobj(cfs->sobj)) return FR_INT_ERR; +#endif + cfs->fs_type = 0; /* Clear old fs object */ + } + + if (fs) { + fs->fs_type = 0; /* Clear new fs object */ +#if _FS_REENTRANT /* Create sync object for the new volume */ + if (!ff_cre_syncobj((BYTE)vol, &fs->sobj)) return FR_INT_ERR; +#endif + } + FatFs[vol] = fs; /* Register new fs object */ + + if (!fs || opt != 1) return FR_OK; /* Do not mount now, it will be mounted later */ + + res = find_volume(&path, &fs, 0); /* Force mounted the volume */ + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Open or Create a File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_open ( + FIL* fp, /* Pointer to the blank file object */ + const TCHAR* path, /* Pointer to the file name */ + BYTE mode /* Access mode and file open mode flags */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; +#if !_FS_READONLY + DWORD dw, cl, bcs, clst, sc; + FSIZE_t ofs; +#endif + DEF_NAMBUF + + + if (!fp) return FR_INVALID_OBJECT; + + /* Get logical drive */ + mode &= _FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND | FA_SEEKEND; + res = find_volume(&path, &fs, mode); + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ +#if !_FS_READONLY /* R/W configuration */ + if (res == FR_OK) { + if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ + res = FR_INVALID_NAME; + } +#if _FS_LOCK != 0 + else { + res = chk_lock(&dj, (mode & ~FA_READ) ? 1 : 0); + } +#endif + } + /* Create or Open a file */ + if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) { + if (res != FR_OK) { /* No file, create new */ + if (res == FR_NO_FILE) /* There is no file to open, create a new entry */ +#if _FS_LOCK != 0 + res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES; +#else + res = dir_register(&dj); +#endif + mode |= FA_CREATE_ALWAYS; /* File is created */ + } + else { /* Any object is already existing */ + if (dj.obj.attr & (AM_RDO | AM_DIR)) { /* Cannot overwrite it (R/O or DIR) */ + res = FR_DENIED; + } else { + if (mode & FA_CREATE_NEW) res = FR_EXIST; /* Cannot create as new file */ + } + } + if (res == FR_OK && (mode & FA_CREATE_ALWAYS)) { /* Truncate it if overwrite mode */ + dw = GET_FATTIME(); +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + /* Get current allocation info */ + fp->obj.fs = fs; + fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); + fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + /* Initialize directory entry block */ + st_dword(fs->dirbuf + XDIR_CrtTime, dw); /* Set created time */ + fs->dirbuf[XDIR_CrtTime10] = 0; + st_dword(fs->dirbuf + XDIR_ModTime, dw); /* Set modified time */ + fs->dirbuf[XDIR_ModTime10] = 0; + fs->dirbuf[XDIR_Attr] = AM_ARC; /* Reset attribute */ + st_dword(fs->dirbuf + XDIR_FstClus, 0); /* Reset file allocation info */ + st_qword(fs->dirbuf + XDIR_FileSize, 0); + st_qword(fs->dirbuf + XDIR_ValidFileSize, 0); + fs->dirbuf[XDIR_GenFlags] = 1; + res = store_xdir(&dj); + if (res == FR_OK && fp->obj.sclust) { /* Remove the cluster chain if exist */ + res = remove_chain(&fp->obj, fp->obj.sclust, 0); + fs->last_clst = fp->obj.sclust - 1; /* Reuse the cluster hole */ + } + } else +#endif + { + /* Clean directory info */ + st_dword(dj.dir + DIR_CrtTime, dw); /* Set created time */ + st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */ + dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */ + cl = ld_clust(fs, dj.dir); /* Get cluster chain */ + st_clust(fs, dj.dir, 0); /* Reset file allocation info */ + st_dword(dj.dir + DIR_FileSize, 0); + fs->wflag = 1; + + if (cl) { /* Remove the cluster chain if exist */ + dw = fs->winsect; + res = remove_chain(&dj.obj, cl, 0); + if (res == FR_OK) { + res = move_window(fs, dw); + fs->last_clst = cl - 1; /* Reuse the cluster hole */ + } + } + } + } + } + else { /* Open an existing file */ + if (res == FR_OK) { /* Following succeeded */ + if (dj.obj.attr & AM_DIR) { /* It is a directory */ + res = FR_NO_FILE; + } else { + if ((mode & FA_WRITE) && (dj.obj.attr & AM_RDO)) { /* R/O violation */ + res = FR_DENIED; + } + } + } + } + if (res == FR_OK) { + if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */ + mode |= FA_MODIFIED; + fp->dir_sect = fs->winsect; /* Pointer to the directory entry */ + fp->dir_ptr = dj.dir; +#if _FS_LOCK != 0 + fp->obj.lockid = inc_lock(&dj, (mode & ~FA_READ) ? 1 : 0); + if (!fp->obj.lockid) res = FR_INT_ERR; +#endif + } +#else /* R/O configuration */ + if (res == FR_OK) { + if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ + res = FR_INVALID_NAME; + } else { + if (dj.obj.attr & AM_DIR) { /* It is a directory */ + res = FR_NO_FILE; + } + } + } +#endif + + if (res == FR_OK) { +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get allocation info */ + fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + fp->obj.c_scl = dj.obj.sclust; + fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; + fp->obj.c_ofs = dj.blk_ofs; + } else +#endif + { + fp->obj.sclust = ld_clust(fs, dj.dir); /* Get allocation info */ + fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); + } +#if _USE_FASTSEEK + fp->cltbl = 0; /* Disable fast seek mode */ +#endif + fp->obj.fs = fs; /* Validate the file object */ + fp->obj.id = fs->id; + fp->flag = mode; /* Set file access mode */ + fp->err = 0; /* Clear error flag */ + fp->sect = 0; /* Invalidate current data sector */ + fp->fptr = 0; /* Set file pointer top of the file */ +#if !_FS_READONLY +#if !_FS_TINY + mem_set(fp->buf, 0, _MAX_SS); /* Clear sector buffer */ +#endif + if ((mode & FA_SEEKEND) && fp->obj.objsize > 0) { /* Seek to end of file if FA_OPEN_APPEND is specified */ + fp->fptr = fp->obj.objsize; /* Offset to seek */ + bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */ + clst = fp->obj.sclust; /* Follow the cluster chain */ + for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) { + clst = get_fat(&fp->obj, clst); + if (clst <= 1) res = FR_INT_ERR; + if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; + } + fp->clust = clst; + if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */ + if ((sc = clust2sect(fs, clst)) == 0) { + res = FR_INT_ERR; + } else { + fp->sect = sc + (DWORD)(ofs / SS(fs)); +#if !_FS_TINY + if (disk_read(fs->drv, fp->buf, fp->sect, 1) != RES_OK) res = FR_DISK_ERR; +#endif + } + } + } +#endif + } + + FREE_NAMBUF(); + } + + if (res != FR_OK) fp->obj.fs = 0; /* Invalidate file object on error */ + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Read File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_read ( + FIL* fp, /* Pointer to the file object */ + void* buff, /* Pointer to data buffer */ + UINT btr, /* Number of bytes to read */ + UINT* br /* Pointer to number of bytes read */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst, sect; + FSIZE_t remain; + UINT rcnt, cc, csect; + BYTE *rbuff = (BYTE*)buff; + + + *br = 0; /* Clear read byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + remain = fp->obj.objsize - fp->fptr; + if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */ + + for ( ; btr; /* Repeat until all data read */ + rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) { + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ + if (csect == 0) { /* On the cluster boundary? */ + if (fp->fptr == 0) { /* On the top of the file? */ + clst = fp->obj.sclust; /* Follow cluster chain from the origin */ + } else { /* Middle or end of the file */ +#if _USE_FASTSEEK + if (fp->cltbl) { + clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ + } else +#endif + { + clst = get_fat(&fp->obj, fp->clust); /* Follow cluster chain on the FAT */ + } + } + if (clst < 2) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + } + sect = clust2sect(fs, fp->clust); /* Get current sector */ + if (!sect) ABORT(fs, FR_INT_ERR); + sect += csect; + cc = btr / SS(fs); /* When remaining bytes >= sector size, */ + if (cc) { /* Read maximum contiguous sectors directly */ + if (csect + cc > fs->csize) { /* Clip at cluster boundary */ + cc = fs->csize - csect; + } + if (disk_read(fs->drv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it contains a dirty sector */ +#if _FS_TINY + if (fs->wflag && fs->winsect - sect < cc) { + mem_cpy(rbuff + ((fs->winsect - sect) * SS(fs)), fs->win, SS(fs)); + } +#else + if ((fp->flag & FA_DIRTY) && fp->sect - sect < cc) { + mem_cpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); + } +#endif +#endif + rcnt = SS(fs) * cc; /* Number of bytes transferred */ + continue; + } +#if !_FS_TINY + if (fp->sect != sect) { /* Load data sector if not in cache */ +#if !_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ + } +#endif + fp->sect = sect; + } + rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ + if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ +#if _FS_TINY + if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ + mem_cpy(rbuff, fs->win + fp->fptr % SS(fs), rcnt); /* Extract partial sector */ +#else + mem_cpy(rbuff, fp->buf + fp->fptr % SS(fs), rcnt); /* Extract partial sector */ +#endif + } + + LEAVE_FF(fs, FR_OK); +} + + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Write File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_write ( + FIL* fp, /* Pointer to the file object */ + const void* buff, /* Pointer to the data to be written */ + UINT btw, /* Number of bytes to write */ + UINT* bw /* Pointer to number of bytes written */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst, sect; + UINT wcnt, cc, csect; + const BYTE *wbuff = (const BYTE*)buff; + + + *bw = 0; /* Clear write byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + /* Check fptr wrap-around (file size cannot reach 4GiB on FATxx) */ + if ((!_FS_EXFAT || fs->fs_type != FS_EXFAT) && (DWORD)(fp->fptr + btw) < (DWORD)fp->fptr) { + btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); + } + + for ( ; btw; /* Repeat until all data written */ + wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->obj.objsize, *bw += wcnt, btw -= wcnt) { + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */ + if (csect == 0) { /* On the cluster boundary? */ + if (fp->fptr == 0) { /* On the top of the file? */ + clst = fp->obj.sclust; /* Follow from the origin */ + if (clst == 0) { /* If no cluster is allocated, */ + clst = create_chain(&fp->obj, 0); /* create a new cluster chain */ + } + } else { /* On the middle or end of the file */ +#if _USE_FASTSEEK + if (fp->cltbl) { + clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ + } else +#endif + { + clst = create_chain(&fp->obj, fp->clust); /* Follow or stretch cluster chain on the FAT */ + } + } + if (clst == 0) break; /* Could not allocate a new cluster (disk full) */ + if (clst == 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */ + } +#if _FS_TINY + if (fs->winsect == fp->sect && sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Write-back sector cache */ +#else + if (fp->flag & FA_DIRTY) { /* Write-back sector cache */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + sect = clust2sect(fs, fp->clust); /* Get current sector */ + if (!sect) ABORT(fs, FR_INT_ERR); + sect += csect; + cc = btw / SS(fs); /* When remaining bytes >= sector size, */ + if (cc) { /* Write maximum contiguous sectors directly */ + if (csect + cc > fs->csize) { /* Clip at cluster boundary */ + cc = fs->csize - csect; + } + if (disk_write(fs->drv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if _FS_MINIMIZE <= 2 +#if _FS_TINY + if (fs->winsect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ + mem_cpy(fs->win, wbuff + ((fs->winsect - sect) * SS(fs)), SS(fs)); + fs->wflag = 0; + } +#else + if (fp->sect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ + mem_cpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif +#endif + wcnt = SS(fs) * cc; /* Number of bytes transferred */ + continue; + } +#if _FS_TINY + if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling on the growing edge */ + if (sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); + fs->winsect = sect; + } +#else + if (fp->sect != sect && /* Fill sector cache with file data */ + fp->fptr < fp->obj.objsize && + disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { + ABORT(fs, FR_DISK_ERR); + } +#endif + fp->sect = sect; + } + wcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ + if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ +#if _FS_TINY + if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ + mem_cpy(fs->win + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */ + fs->wflag = 1; +#else + mem_cpy(fp->buf + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */ + fp->flag |= FA_DIRTY; +#endif + } + + fp->flag |= FA_MODIFIED; /* Set file change flag */ + + LEAVE_FF(fs, FR_OK); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Synchronize the File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_sync ( + FIL* fp /* Pointer to the file object */ +) +{ + FRESULT res; + FATFS *fs; + DWORD tm; + BYTE *dir; + DEF_NAMBUF + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) { + if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ +#if !_FS_TINY + if (fp->flag & FA_DIRTY) { /* Write-back cached data if needed */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + /* Update the directory entry */ + tm = GET_FATTIME(); /* Modified time */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + res = fill_fat_chain(&fp->obj); /* Create FAT chain if needed */ + if (res == FR_OK) { + DIR dj; + + INIT_NAMBUF(fs); + res = load_obj_dir(&dj, &fp->obj); /* Load directory entry block */ + if (res == FR_OK) { + fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive bit */ + fs->dirbuf[XDIR_GenFlags] = fp->obj.stat | 1; /* Update file allocation info */ + st_dword(fs->dirbuf + XDIR_FstClus, fp->obj.sclust); + st_qword(fs->dirbuf + XDIR_FileSize, fp->obj.objsize); + st_qword(fs->dirbuf + XDIR_ValidFileSize, fp->obj.objsize); + st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Update modified time */ + fs->dirbuf[XDIR_ModTime10] = 0; + st_dword(fs->dirbuf + XDIR_AccTime, 0); + res = store_xdir(&dj); /* Restore it to the directory */ + if (res == FR_OK) { + res = sync_fs(fs); + fp->flag &= (BYTE)~FA_MODIFIED; + } + } + FREE_NAMBUF(); + } + } else +#endif + { + res = move_window(fs, fp->dir_sect); + if (res == FR_OK) { + dir = fp->dir_ptr; + dir[DIR_Attr] |= AM_ARC; /* Set archive bit */ + st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */ + st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */ + st_dword(dir + DIR_ModTime, tm); /* Update modified time */ + st_word(dir + DIR_LstAccDate, 0); + fs->wflag = 1; + res = sync_fs(fs); /* Restore it to the directory */ + fp->flag &= (BYTE)~FA_MODIFIED; + } + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* !_FS_READONLY */ + + + + +/*-----------------------------------------------------------------------*/ +/* Close File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_close ( + FIL* fp /* Pointer to the file object to be closed */ +) +{ + FRESULT res; + FATFS *fs; + +#if !_FS_READONLY + res = f_sync(fp); /* Flush cached data */ + if (res == FR_OK) +#endif + { + res = validate(&fp->obj, &fs); /* Lock volume */ + if (res == FR_OK) { +#if _FS_LOCK != 0 + res = dec_lock(fp->obj.lockid); /* Decrement file open counter */ + if (res == FR_OK) +#endif + { + fp->obj.fs = 0; /* Invalidate file object */ + } +#if _FS_REENTRANT + unlock_fs(fs, FR_OK); /* Unlock volume */ +#endif + } + } + return res; +} + + + + +#if _FS_RPATH >= 1 +/*-----------------------------------------------------------------------*/ +/* Change Current Directory or Current Drive, Get Current Directory */ +/*-----------------------------------------------------------------------*/ + +#if _VOLUMES >= 2 +FRESULT f_chdrive ( + const TCHAR* path /* Drive number */ +) +{ + int vol; + + + /* Get logical drive number */ + vol = get_ldnumber(&path); + if (vol < 0) return FR_INVALID_DRIVE; + + CurrVol = (BYTE)vol; /* Set it as current volume */ + + return FR_OK; +} +#endif + + +FRESULT f_chdir ( + const TCHAR* path /* Pointer to the directory path */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + /* Get logical drive */ + res = find_volume(&path, &fs, 0); + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the path */ + if (res == FR_OK) { /* Follow completed */ + if (dj.fn[NSFLAG] & NS_NONAME) { + fs->cdir = dj.obj.sclust; /* It is the start directory itself */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->cdc_scl = dj.obj.c_scl; + fs->cdc_size = dj.obj.c_size; + fs->cdc_ofs = dj.obj.c_ofs; + } +#endif + } else { + if (dj.obj.attr & AM_DIR) { /* It is a sub-directory */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->cdir = ld_dword(fs->dirbuf + XDIR_FstClus); /* Sub-directory cluster */ + fs->cdc_scl = dj.obj.sclust; /* Save containing directory information */ + fs->cdc_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; + fs->cdc_ofs = dj.blk_ofs; + } else +#endif + { + fs->cdir = ld_clust(fs, dj.dir); /* Sub-directory cluster */ + } + } else { + res = FR_NO_PATH; /* Reached but a file */ + } + } + } + FREE_NAMBUF(); + if (res == FR_NO_FILE) res = FR_NO_PATH; + } + + LEAVE_FF(fs, res); +} + + +#if _FS_RPATH >= 2 +FRESULT f_getcwd ( + TCHAR* buff, /* Pointer to the directory path */ + UINT len /* Size of path */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + UINT i, n; + DWORD ccl; + TCHAR *tp; + FILINFO fno; + DEF_NAMBUF + + + *buff = 0; + /* Get logical drive */ + res = find_volume((const TCHAR**)&buff, &fs, 0); /* Get current volume */ + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + i = len; /* Bottom of buffer (directory stack base) */ + if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* (Cannot do getcwd on exFAT and returns root path) */ + dj.obj.sclust = fs->cdir; /* Start to follow upper directory from current directory */ + while ((ccl = dj.obj.sclust) != 0) { /* Repeat while current directory is a sub-directory */ + res = dir_sdi(&dj, 1 * SZDIRE); /* Get parent directory */ + if (res != FR_OK) break; + res = move_window(fs, dj.sect); + if (res != FR_OK) break; + dj.obj.sclust = ld_clust(fs, dj.dir); /* Goto parent directory */ + res = dir_sdi(&dj, 0); + if (res != FR_OK) break; + do { /* Find the entry links to the child directory */ + res = dir_read(&dj, 0); + if (res != FR_OK) break; + if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */ + res = dir_next(&dj, 0); + } while (res == FR_OK); + if (res == FR_NO_FILE) res = FR_INT_ERR;/* It cannot be 'not found'. */ + if (res != FR_OK) break; + get_fileinfo(&dj, &fno); /* Get the directory name and push it to the buffer */ + for (n = 0; fno.fname[n]; n++) ; + if (i < n + 3) { + res = FR_NOT_ENOUGH_CORE; break; + } + while (n) buff[--i] = fno.fname[--n]; + buff[--i] = '/'; + } + } + tp = buff; + if (res == FR_OK) { +#if _VOLUMES >= 2 + *tp++ = '0' + CurrVol; /* Put drive number */ + *tp++ = ':'; +#endif + if (i == len) { /* Root-directory */ + *tp++ = '/'; + } else { /* Sub-directroy */ + do /* Add stacked path str */ + *tp++ = buff[i++]; + while (i < len); + } + } + *tp = 0; + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + +#endif /* _FS_RPATH >= 2 */ +#endif /* _FS_RPATH >= 1 */ + + + +#if _FS_MINIMIZE <= 2 +/*-----------------------------------------------------------------------*/ +/* Seek File R/W Pointer */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_lseek ( + FIL* fp, /* Pointer to the file object */ + FSIZE_t ofs /* File pointer from top of file */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst, bcs, nsect; + FSIZE_t ifptr; +#if _USE_FASTSEEK + DWORD cl, pcl, ncl, tcl, dsc, tlen, ulen, *tbl; +#endif + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ +#if _USE_FASTSEEK + if (fp->cltbl) { /* Fast seek */ + if (ofs == CREATE_LINKMAP) { /* Create CLMT */ + tbl = fp->cltbl; + tlen = *tbl++; ulen = 2; /* Given table size and required table size */ + cl = fp->obj.sclust; /* Origin of the chain */ + if (cl) { + do { + /* Get a fragment */ + tcl = cl; ncl = 0; ulen += 2; /* Top, length and used items */ + do { + pcl = cl; ncl++; + cl = get_fat(&fp->obj, cl); + if (cl <= 1) ABORT(fs, FR_INT_ERR); + if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + } while (cl == pcl + 1); + if (ulen <= tlen) { /* Store the length and top of the fragment */ + *tbl++ = ncl; *tbl++ = tcl; + } + } while (cl < fs->n_fatent); /* Repeat until end of chain */ + } + *fp->cltbl = ulen; /* Number of items used */ + if (ulen <= tlen) { + *tbl = 0; /* Terminate table */ + } else { + res = FR_NOT_ENOUGH_CORE; /* Given table size is smaller than required */ + } + } else { /* Fast seek */ + if (ofs > fp->obj.objsize) ofs = fp->obj.objsize; /* Clip offset at the file size */ + fp->fptr = ofs; /* Set file pointer */ + if (ofs) { + fp->clust = clmt_clust(fp, ofs - 1); + dsc = clust2sect(fs, fp->clust); + if (!dsc) ABORT(fs, FR_INT_ERR); + dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); + if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ +#if !_FS_TINY +#if !_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->drv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sector */ +#endif + fp->sect = dsc; + } + } + } + } else +#endif + + /* Normal Seek */ + { +#if _FS_EXFAT + if (fs->fs_type != FS_EXFAT && ofs >= 0x100000000) ofs = 0xFFFFFFFF; /* Clip at 4GiB-1 if at FATxx */ +#endif + if (ofs > fp->obj.objsize && (_FS_READONLY || !(fp->flag & FA_WRITE))) { /* In read-only mode, clip offset with the file size */ + ofs = fp->obj.objsize; + } + ifptr = fp->fptr; + fp->fptr = nsect = 0; + if (ofs) { + bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ + if (ifptr > 0 && + (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ + fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */ + ofs -= fp->fptr; + clst = fp->clust; + } else { /* When seek to back cluster, */ + clst = fp->obj.sclust; /* start from the first cluster */ +#if !_FS_READONLY + if (clst == 0) { /* If no cluster chain, create a new chain */ + clst = create_chain(&fp->obj, 0); + if (clst == 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->obj.sclust = clst; + } +#endif + fp->clust = clst; + } + if (clst != 0) { + while (ofs > bcs) { /* Cluster following loop */ + ofs -= bcs; fp->fptr += bcs; +#if !_FS_READONLY + if (fp->flag & FA_WRITE) { /* Check if in write mode or not */ + if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize to generate FAT value */ + fp->obj.objsize = fp->fptr; + fp->flag |= FA_MODIFIED; + } + clst = create_chain(&fp->obj, clst); /* Follow chain with forceed stretch */ + if (clst == 0) { /* Clip file size in case of disk full */ + ofs = 0; break; + } + } else +#endif + { + clst = get_fat(&fp->obj, clst); /* Follow cluster chain if not in write mode */ + } + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); + fp->clust = clst; + } + fp->fptr += ofs; + if (ofs % SS(fs)) { + nsect = clust2sect(fs, clst); /* Current sector */ + if (!nsect) ABORT(fs, FR_INT_ERR); + nsect += (DWORD)(ofs / SS(fs)); + } + } + } + if (!_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ + fp->obj.objsize = fp->fptr; + fp->flag |= FA_MODIFIED; + } + if (fp->fptr % SS(fs) && nsect != fp->sect) { /* Fill sector cache if needed */ +#if !_FS_TINY +#if !_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->drv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ +#endif + fp->sect = nsect; + } + } + + LEAVE_FF(fs, res); +} + + + +#if _FS_MINIMIZE <= 1 +/*-----------------------------------------------------------------------*/ +/* Create a Directory Object */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_opendir ( + DIR* dp, /* Pointer to directory object to create */ + const TCHAR* path /* Pointer to the directory path */ +) +{ + FRESULT res; + FATFS *fs; + _FDID *obj; + DEF_NAMBUF + + + if (!dp) return FR_INVALID_OBJECT; + + /* Get logical drive */ + obj = &dp->obj; + res = find_volume(&path, &fs, 0); + if (res == FR_OK) { + obj->fs = fs; + INIT_NAMBUF(fs); + res = follow_path(dp, path); /* Follow the path to the directory */ + if (res == FR_OK) { /* Follow completed */ + if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */ + if (obj->attr & AM_DIR) { /* This object is a sub-directory */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + obj->c_scl = obj->sclust; /* Save containing directory inforamation */ + obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; + obj->c_ofs = dp->blk_ofs; + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object location and status */ + obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; + } else +#endif + { + obj->sclust = ld_clust(fs, dp->dir); /* Get object location */ + } + } else { /* This object is a file */ + res = FR_NO_PATH; + } + } + if (res == FR_OK) { + obj->id = fs->id; + res = dir_sdi(dp, 0); /* Rewind directory */ +#if _FS_LOCK != 0 + if (res == FR_OK) { + if (obj->sclust) { + obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */ + if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES; + } else { + obj->lockid = 0; /* Root directory need not to be locked */ + } + } +#endif + } + } + FREE_NAMBUF(); + if (res == FR_NO_FILE) res = FR_NO_PATH; + } + if (res != FR_OK) obj->fs = 0; /* Invalidate the directory object if function faild */ + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Close Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_closedir ( + DIR *dp /* Pointer to the directory object to be closed */ +) +{ + FRESULT res; + FATFS *fs; + + + res = validate(&dp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) { +#if _FS_LOCK != 0 + if (dp->obj.lockid) { /* Decrement sub-directory open counter */ + res = dec_lock(dp->obj.lockid); + } + if (res == FR_OK) +#endif + { + dp->obj.fs = 0; /* Invalidate directory object */ + } +#if _FS_REENTRANT + unlock_fs(fs, FR_OK); /* Unlock volume */ +#endif + } + return res; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Read Directory Entries in Sequence */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_readdir ( + DIR* dp, /* Pointer to the open directory object */ + FILINFO* fno /* Pointer to file information to return */ +) +{ + FRESULT res; + FATFS *fs; + DEF_NAMBUF + + + res = validate(&dp->obj, &fs); /* Check validity of the directory object */ + if (res == FR_OK) { + if (!fno) { + res = dir_sdi(dp, 0); /* Rewind the directory object */ + } else { + INIT_NAMBUF(fs); + res = dir_read(dp, 0); /* Read an item */ + if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ + if (res == FR_OK) { /* A valid entry is found */ + get_fileinfo(dp, fno); /* Get the object information */ + res = dir_next(dp, 0); /* Increment index for next */ + if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */ + } + FREE_NAMBUF(); + } + } + LEAVE_FF(fs, res); +} + + + +#if _USE_FIND +/*-----------------------------------------------------------------------*/ +/* Find Next File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_findnext ( + DIR* dp, /* Pointer to the open directory object */ + FILINFO* fno /* Pointer to the file information structure */ +) +{ + FRESULT res; + + + for (;;) { + res = f_readdir(dp, fno); /* Get a directory item */ + if (res != FR_OK || !fno || !fno->fname[0]) break; /* Terminate if any error or end of directory */ + if (pattern_matching(dp->pat, fno->fname, 0, 0)) break; /* Test for the file name */ +#if _USE_LFN != 0 && _USE_FIND == 2 + if (pattern_matching(dp->pat, fno->altname, 0, 0)) break; /* Test for alternative name if exist */ +#endif + } + return res; +} + + + +/*-----------------------------------------------------------------------*/ +/* Find First File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_findfirst ( + DIR* dp, /* Pointer to the blank directory object */ + FILINFO* fno, /* Pointer to the file information structure */ + const TCHAR* path, /* Pointer to the directory to open */ + const TCHAR* pattern /* Pointer to the matching pattern */ +) +{ + FRESULT res; + + + dp->pat = pattern; /* Save pointer to pattern string */ + res = f_opendir(dp, path); /* Open the target directory */ + if (res == FR_OK) { + res = f_findnext(dp, fno); /* Find the first item */ + } + return res; +} + +#endif /* _USE_FIND */ + + + +#if _FS_MINIMIZE == 0 +/*-----------------------------------------------------------------------*/ +/* Get File Status */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_stat ( + const TCHAR* path, /* Pointer to the file path */ + FILINFO* fno /* Pointer to file information to return */ +) +{ + FRESULT res; + DIR dj; + DEF_NAMBUF + + + /* Get logical drive */ + res = find_volume(&path, &dj.obj.fs, 0); + if (res == FR_OK) { + INIT_NAMBUF(dj.obj.fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK) { /* Follow completed */ + if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */ + res = FR_INVALID_NAME; + } else { /* Found an object */ + if (fno) get_fileinfo(&dj, fno); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(dj.obj.fs, res); +} + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Get Number of Free Clusters */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_getfree ( + const TCHAR* path, /* Path name of the logical drive number */ + DWORD* nclst, /* Pointer to a variable to return number of free clusters */ + FATFS** fatfs /* Pointer to return pointer to corresponding file system object */ +) +{ + FRESULT res; + FATFS *fs; + DWORD nfree, clst, sect, stat; + UINT i; + BYTE *p; + _FDID obj; + + + /* Get logical drive */ + res = find_volume(&path, &fs, 0); + if (res == FR_OK) { + *fatfs = fs; /* Return ptr to the fs object */ + /* If free_clst is valid, return it without full cluster scan */ + if (fs->free_clst <= fs->n_fatent - 2) { + *nclst = fs->free_clst; + } else { + /* Get number of free clusters */ + nfree = 0; + if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */ + clst = 2; obj.fs = fs; + do { + stat = get_fat(&obj, clst); + if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } + if (stat == 1) { res = FR_INT_ERR; break; } + if (stat == 0) nfree++; + } while (++clst < fs->n_fatent); + } else { +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* exFAT: Scan bitmap table */ + BYTE bm; + UINT b; + + clst = fs->n_fatent - 2; + sect = fs->database; + i = 0; + do { + if (i == 0 && (res = move_window(fs, sect++)) != FR_OK) break; + for (b = 8, bm = fs->win[i]; b && clst; b--, clst--) { + if (!(bm & 1)) nfree++; + bm >>= 1; + } + i = (i + 1) % SS(fs); + } while (clst); + } else +#endif + { /* FAT16/32: Sector alighed FAT entries */ + clst = fs->n_fatent; sect = fs->fatbase; + i = 0; p = 0; + do { + if (i == 0) { + res = move_window(fs, sect++); + if (res != FR_OK) break; + p = fs->win; + i = SS(fs); + } + if (fs->fs_type == FS_FAT16) { + if (ld_word(p) == 0) nfree++; + p += 2; i -= 2; + } else { + if ((ld_dword(p) & 0x0FFFFFFF) == 0) nfree++; + p += 4; i -= 4; + } + } while (--clst); + } + } + *nclst = nfree; /* Return the free clusters */ + fs->free_clst = nfree; /* Now free_clst is valid */ + fs->fsi_flag |= 1; /* FSInfo is to be updated */ + } + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Truncate File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_truncate ( + FIL* fp /* Pointer to the file object */ +) +{ + FRESULT res; + FATFS *fs; + DWORD ncl; + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + if (fp->obj.objsize > fp->fptr) { + if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ + res = remove_chain(&fp->obj, fp->obj.sclust, 0); + fp->obj.sclust = 0; + } else { /* When truncate a part of the file, remove remaining clusters */ + ncl = get_fat(&fp->obj, fp->clust); + res = FR_OK; + if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR; + if (ncl == 1) res = FR_INT_ERR; + if (res == FR_OK && ncl < fs->n_fatent) { + res = remove_chain(&fp->obj, ncl, fp->clust); + } + } + fp->obj.objsize = fp->fptr; /* Set file size to current R/W point */ + fp->flag |= FA_MODIFIED; +#if !_FS_TINY + if (res == FR_OK && (fp->flag & FA_DIRTY)) { + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) { + res = FR_DISK_ERR; + } else { + fp->flag &= (BYTE)~FA_DIRTY; + } + } +#endif + if (res != FR_OK) ABORT(fs, res); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Delete a File/Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_unlink ( + const TCHAR* path /* Pointer to the file or directory path */ +) +{ + FRESULT res; + DIR dj, sdj; + DWORD dclst = 0; + FATFS *fs; +#if _FS_EXFAT + _FDID obj; +#endif + DEF_NAMBUF + + + /* Get logical drive */ + res = find_volume(&path, &fs, FA_WRITE); + dj.obj.fs = fs; + if (res == FR_OK) { + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { + res = FR_INVALID_NAME; /* Cannot remove dot entry */ + } +#if _FS_LOCK != 0 + if (res == FR_OK) res = chk_lock(&dj, 2); /* Check if it is an open object */ +#endif + if (res == FR_OK) { /* The object is accessible */ + if (dj.fn[NSFLAG] & NS_NONAME) { + res = FR_INVALID_NAME; /* Cannot remove the origin directory */ + } else { + if (dj.obj.attr & AM_RDO) { + res = FR_DENIED; /* Cannot remove R/O object */ + } + } + if (res == FR_OK) { +#if _FS_EXFAT + obj.fs = fs; + if (fs->fs_type == FS_EXFAT) { + obj.sclust = dclst = ld_dword(fs->dirbuf + XDIR_FstClus); + obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + } else +#endif + { + dclst = ld_clust(fs, dj.dir); + } + if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory ? */ +#if _FS_RPATH != 0 + if (dclst == fs->cdir) { /* Is it the current directory? */ + res = FR_DENIED; + } else +#endif + { + sdj.obj.fs = fs; /* Open the sub-directory */ + sdj.obj.sclust = dclst; +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + sdj.obj.objsize = obj.objsize; + sdj.obj.stat = obj.stat; + } +#endif + res = dir_sdi(&sdj, 0); + if (res == FR_OK) { + res = dir_read(&sdj, 0); /* Read an item */ + if (res == FR_OK) res = FR_DENIED; /* Not empty? */ + if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ + } + } + } + } + if (res == FR_OK) { + res = dir_remove(&dj); /* Remove the directory entry */ + if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */ +#if _FS_EXFAT + res = remove_chain(&obj, dclst, 0); +#else + res = remove_chain(&dj.obj, dclst, 0); +#endif + } + if (res == FR_OK) res = sync_fs(fs); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Create a Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_mkdir ( + const TCHAR* path /* Pointer to the directory path */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + BYTE *dir; + UINT n; + DWORD dsc, dcl, pcl, tm; + DEF_NAMBUF + + + /* Get logical drive */ + res = find_volume(&path, &fs, FA_WRITE); + dj.obj.fs = fs; + if (res == FR_OK) { + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ + if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { + res = FR_INVALID_NAME; + } + if (res == FR_NO_FILE) { /* Can create a new directory */ + dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */ + dj.obj.objsize = (DWORD)fs->csize * SS(fs); + res = FR_OK; + if (dcl == 0) res = FR_DENIED; /* No space to allocate a new cluster */ + if (dcl == 1) res = FR_INT_ERR; + if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; + if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ + tm = GET_FATTIME(); + if (res == FR_OK) { /* Initialize the new directory table */ + dsc = clust2sect(fs, dcl); + dir = fs->win; + mem_set(dir, 0, SS(fs)); + if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + mem_set(dir + DIR_Name, ' ', 11); /* Create "." entry */ + dir[DIR_Name] = '.'; + dir[DIR_Attr] = AM_DIR; + st_dword(dir + DIR_ModTime, tm); + st_clust(fs, dir, dcl); + mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */ + dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; + if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; + st_clust(fs, dir + SZDIRE, pcl); + } + for (n = fs->csize; n; n--) { /* Write dot entries and clear following sectors */ + fs->winsect = dsc++; + fs->wflag = 1; + res = sync_window(fs); + if (res != FR_OK) break; + mem_set(dir, 0, SS(fs)); + } + } + if (res == FR_OK) res = dir_register(&dj); /* Register the object to the directoy */ + if (res == FR_OK) { +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ + st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Created time */ + st_dword(fs->dirbuf + XDIR_FstClus, dcl); /* Table start cluster */ + st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)dj.obj.objsize); /* File size needs to be valid */ + st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)dj.obj.objsize); + fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag (contiguous) */ + fs->dirbuf[XDIR_Attr] = AM_DIR; /* Attribute */ + res = store_xdir(&dj); + } else +#endif + { + dir = dj.dir; + st_dword(dir + DIR_ModTime, tm); /* Created time */ + st_clust(fs, dir, dcl); /* Table start cluster */ + dir[DIR_Attr] = AM_DIR; /* Attribute */ + fs->wflag = 1; + } + if (res == FR_OK) res = sync_fs(fs); + } else { + remove_chain(&dj.obj, dcl, 0); /* Could not register, remove cluster chain */ + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Rename a File/Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_rename ( + const TCHAR* path_old, /* Pointer to the object name to be renamed */ + const TCHAR* path_new /* Pointer to the new name */ +) +{ + FRESULT res; + DIR djo, djn; + FATFS *fs; + BYTE buf[_FS_EXFAT ? SZDIRE * 2 : 24], *dir; + DWORD dw; + DEF_NAMBUF + + + get_ldnumber(&path_new); /* Ignore drive number of new name */ + res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ + if (res == FR_OK) { + djo.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&djo, path_old); /* Check old object */ + if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check validity of name */ +#if _FS_LOCK != 0 + if (res == FR_OK) res = chk_lock(&djo, 2); +#endif + if (res == FR_OK) { /* Object to be renamed is found */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* At exFAT */ + BYTE nf, nn; + WORD nh; + + mem_cpy(buf, fs->dirbuf, SZDIRE * 2); /* Save 85+C0 entry of old object */ + mem_cpy(&djn, &djo, sizeof djo); + res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } + if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ + res = dir_register(&djn); /* Register the new entry */ + if (res == FR_OK) { + nf = fs->dirbuf[XDIR_NumSec]; nn = fs->dirbuf[XDIR_NumName]; + nh = ld_word(fs->dirbuf + XDIR_NameHash); + mem_cpy(fs->dirbuf, buf, SZDIRE * 2); + fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn; + st_word(fs->dirbuf + XDIR_NameHash, nh); +/* Start of critical section where any interruption can cause a cross-link */ + res = store_xdir(&djn); + } + } + } else +#endif + { /* At FAT12/FAT16/FAT32 */ + mem_cpy(buf, djo.dir + DIR_Attr, 21); /* Save information about the object except name */ + mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */ + res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } + if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ + res = dir_register(&djn); /* Register the new entry */ + if (res == FR_OK) { + dir = djn.dir; /* Copy information about object except name */ + mem_cpy(dir + 13, buf + 2, 19); + dir[DIR_Attr] = buf[0] | AM_ARC; + fs->wflag = 1; + if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the sub-directory if needed */ + dw = clust2sect(fs, ld_clust(fs, dir)); + if (!dw) { + res = FR_INT_ERR; + } else { +/* Start of critical section where any interruption can cause a cross-link */ + res = move_window(fs, dw); + dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ + if (res == FR_OK && dir[1] == '.') { + st_clust(fs, dir, djn.obj.sclust); + fs->wflag = 1; + } + } + } + } + } + } + if (res == FR_OK) { + res = dir_remove(&djo); /* Remove old entry */ + if (res == FR_OK) { + res = sync_fs(fs); + } + } +/* End of critical section */ + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + +#endif /* !_FS_READONLY */ +#endif /* _FS_MINIMIZE == 0 */ +#endif /* _FS_MINIMIZE <= 1 */ +#endif /* _FS_MINIMIZE <= 2 */ + + + +#if _USE_CHMOD && !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Change Attribute */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_chmod ( + const TCHAR* path, /* Pointer to the file path */ + BYTE attr, /* Attribute bits */ + BYTE mask /* Attribute mask to change */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + + res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ + dj.obj.fs = fs; + if (res == FR_OK) { + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ + if (res == FR_OK) { + mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */ +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->dirbuf[XDIR_Attr] = (attr & mask) | (fs->dirbuf[XDIR_Attr] & (BYTE)~mask); /* Apply attribute change */ + res = store_xdir(&dj); + } else +#endif + { + dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */ + fs->wflag = 1; + } + if (res == FR_OK) res = sync_fs(fs); + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Change Timestamp */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_utime ( + const TCHAR* path, /* Pointer to the file/directory name */ + const FILINFO* fno /* Pointer to the time stamp to be set */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + + res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ + dj.obj.fs = fs; + if (res == FR_OK) { + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ + if (res == FR_OK) { +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + st_dword(fs->dirbuf + XDIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); + res = store_xdir(&dj); + } else +#endif + { + st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); + fs->wflag = 1; + } + if (res == FR_OK) res = sync_fs(fs); + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + +#endif /* _USE_CHMOD && !_FS_READONLY */ + + + +#if _USE_LABEL +/*-----------------------------------------------------------------------*/ +/* Get Volume Label */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_getlabel ( + const TCHAR* path, /* Path name of the logical drive number */ + TCHAR* label, /* Pointer to a buffer to return the volume label */ + DWORD* vsn /* Pointer to a variable to return the volume serial number */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + UINT si, di; +#if _LFN_UNICODE || _FS_EXFAT + WCHAR w; +#endif + + /* Get logical drive */ + res = find_volume(&path, &fs, 0); + + /* Get volume label */ + if (res == FR_OK && label) { + dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */ + res = dir_sdi(&dj, 0); + if (res == FR_OK) { + res = dir_read(&dj, 1); /* Find a volume label entry */ + if (res == FR_OK) { +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + for (si = di = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */ + w = ld_word(dj.dir + XDIR_Label + si * 2); +#if _LFN_UNICODE + label[di++] = w; +#else + w = ff_convert(w, 0); /* Unicode -> OEM */ + if (w == 0) w = '?'; /* Replace wrong character */ + if (_DF1S && w >= 0x100) label[di++] = (char)(w >> 8); + label[di++] = (char)w; +#endif + } + label[di] = 0; + } else +#endif + { + si = di = 0; /* Extract volume label from AM_VOL entry with code comversion */ + do { +#if _LFN_UNICODE + w = (si < 11) ? dj.dir[si++] : ' '; + if (IsDBCS1(w) && si < 11 && IsDBCS2(dj.dir[si])) { + w = w << 8 | dj.dir[si++]; + } + label[di++] = ff_convert(w, 1); /* OEM -> Unicode */ +#else + label[di++] = dj.dir[si++]; +#endif + } while (di < 11); + do { /* Truncate trailing spaces */ + label[di] = 0; + if (di == 0) break; + } while (label[--di] == ' '); + } + } + } + if (res == FR_NO_FILE) { /* No label entry and return nul string */ + label[0] = 0; + res = FR_OK; + } + } + + /* Get volume serial number */ + if (res == FR_OK && vsn) { + res = move_window(fs, fs->volbase); + if (res == FR_OK) { + switch (fs->fs_type) { + case FS_EXFAT: di = BPB_VolIDEx; break; + case FS_FAT32: di = BS_VolID32; break; + default: di = BS_VolID; + } + *vsn = ld_dword(fs->win + di); + } + } + + LEAVE_FF(fs, res); +} + + + +#if !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Set Volume Label */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_setlabel ( + const TCHAR* label /* Pointer to the volume label to set */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + BYTE dirvn[22]; + UINT i, j, slen; + WCHAR w; + static const char badchr[] = "\"*+,.:;<=>\?[]|\x7F"; + + + /* Get logical drive */ + res = find_volume(&label, &fs, FA_WRITE); + if (res != FR_OK) LEAVE_FF(fs, res); + dj.obj.fs = fs; + + /* Get length of given volume label */ + for (slen = 0; (UINT)label[slen] >= ' '; slen++) ; /* Get name length */ + +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + for (i = j = 0; i < slen; ) { /* Create volume label in directory form */ + w = label[i++]; +#if !_LFN_UNICODE + if (IsDBCS1(w)) { + w = (i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0; + } + w = ff_convert(w, 1); +#endif + if (w == 0 || chk_chr(badchr, w) || j == 22) { /* Check validity check validity of the volume label */ + LEAVE_FF(fs, FR_INVALID_NAME); + } + st_word(dirvn + j, w); j += 2; + } + slen = j; + } else +#endif + { /* On the FAT12/16/32 volume */ + for ( ; slen && label[slen - 1] == ' '; slen--) ; /* Remove trailing spaces */ + if (slen) { /* Is there a volume label to be set? */ + dirvn[0] = 0; i = j = 0; /* Create volume label in directory form */ + do { +#if _LFN_UNICODE + w = ff_convert(ff_wtoupper(label[i++]), 0); +#else + w = (BYTE)label[i++]; + if (IsDBCS1(w)) { + w = (j < 10 && i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0; + } +#if _USE_LFN != 0 + w = ff_convert(ff_wtoupper(ff_convert(w, 1)), 0); +#else + if (IsLower(w)) w -= 0x20; /* To upper ASCII characters */ +#ifdef _EXCVT + if (w >= 0x80) w = ExCvt[w - 0x80]; /* To upper extended characters (SBCS cfg) */ +#else + if (!_DF1S && w >= 0x80) w = 0; /* Reject extended characters (ASCII cfg) */ +#endif +#endif +#endif + if (w == 0 || chk_chr(badchr, w) || j >= (UINT)((w >= 0x100) ? 10 : 11)) { /* Reject invalid characters for volume label */ + LEAVE_FF(fs, FR_INVALID_NAME); + } + if (w >= 0x100) dirvn[j++] = (BYTE)(w >> 8); + dirvn[j++] = (BYTE)w; + } while (i < slen); + while (j < 11) dirvn[j++] = ' '; /* Fill remaining name field */ + if (dirvn[0] == DDEM) LEAVE_FF(fs, FR_INVALID_NAME); /* Reject illegal name (heading DDEM) */ + } + } + + /* Set volume label */ + dj.obj.sclust = 0; /* Open root directory */ + res = dir_sdi(&dj, 0); + if (res == FR_OK) { + res = dir_read(&dj, 1); /* Get volume label entry */ + if (res == FR_OK) { + if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { + dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); /* Change the volume label */ + mem_cpy(dj.dir + XDIR_Label, dirvn, slen); + } else { + if (slen) { + mem_cpy(dj.dir, dirvn, 11); /* Change the volume label */ + } else { + dj.dir[DIR_Name] = DDEM; /* Remove the volume label */ + } + } + fs->wflag = 1; + res = sync_fs(fs); + } else { /* No volume label entry is found or error */ + if (res == FR_NO_FILE) { + res = FR_OK; + if (slen) { /* Create a volume label entry */ + res = dir_alloc(&dj, 1); /* Allocate an entry */ + if (res == FR_OK) { + mem_set(dj.dir, 0, SZDIRE); /* Clear the entry */ + if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { + dj.dir[XDIR_Type] = 0x83; /* Create 83 entry */ + dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); + mem_cpy(dj.dir + XDIR_Label, dirvn, slen); + } else { + dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */ + mem_cpy(dj.dir, dirvn, 11); + } + fs->wflag = 1; + res = sync_fs(fs); + } + } + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* !_FS_READONLY */ +#endif /* _USE_LABEL */ + + + +#if _USE_EXPAND && !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Allocate a Contiguous Blocks to the File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_expand ( + FIL* fp, /* Pointer to the file object */ + FSIZE_t fsz, /* File size to be expanded to */ + BYTE opt /* Operation mode 0:Find and prepare or 1:Find and allocate */ +) +{ + FRESULT res; + FATFS *fs; + DWORD n, clst, stcl, scl, ncl, tcl, lclst; + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (fsz == 0 || fp->obj.objsize != 0 || !(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); +#if _FS_EXFAT + if (fs->fs_type != FS_EXFAT && fsz >= 0x100000000) LEAVE_FF(fs, FR_DENIED); /* Check if in size limit */ +#endif + n = (DWORD)fs->csize * SS(fs); /* Cluster size */ + tcl = (DWORD)(fsz / n) + ((fsz & (n - 1)) ? 1 : 0); /* Number of clusters required */ + stcl = fs->last_clst; lclst = 0; + if (stcl < 2 || stcl >= fs->n_fatent) stcl = 2; + +#if _FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */ + if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */ + if (scl == 0xFFFFFFFF) res = FR_DISK_ERR; + if (res == FR_OK) { + if (opt) { + res = change_bitmap(fs, scl, tcl, 1); /* Mark the cluster block 'in use' */ + lclst = scl + tcl - 1; + } else { + lclst = scl - 1; + } + } + } else +#endif + { + scl = clst = stcl; ncl = 0; + for (;;) { /* Find a contiguous cluster block */ + n = get_fat(&fp->obj, clst); + if (++clst >= fs->n_fatent) clst = 2; + if (n == 1) { res = FR_INT_ERR; break; } + if (n == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } + if (n == 0) { /* Is it a free cluster? */ + if (++ncl == tcl) break; /* Break if a contiguous cluster block is found */ + } else { + scl = clst; ncl = 0; /* Not a free cluster */ + } + if (clst == stcl) { res = FR_DENIED; break; } /* No contiguous cluster? */ + } + if (res == FR_OK) { + if (opt) { + for (clst = scl, n = tcl; n; clst++, n--) { /* Create a cluster chain on the FAT */ + res = put_fat(fs, clst, (n == 1) ? 0xFFFFFFFF : clst + 1); + if (res != FR_OK) break; + lclst = clst; + } + } else { + lclst = scl - 1; + } + } + } + + if (res == FR_OK) { + fs->last_clst = lclst; /* Set suggested start cluster to start next */ + if (opt) { + fp->obj.sclust = scl; /* Update object allocation information */ + fp->obj.objsize = fsz; + if (_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ + fp->flag |= FA_MODIFIED; + if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */ + fs->free_clst -= tcl; + fs->fsi_flag |= 1; + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* _USE_EXPAND && !_FS_READONLY */ + + + +#if _USE_FORWARD +/*-----------------------------------------------------------------------*/ +/* Forward data to the stream directly */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_forward ( + FIL* fp, /* Pointer to the file object */ + UINT (*func)(const BYTE*,UINT), /* Pointer to the streaming function */ + UINT btf, /* Number of bytes to forward */ + UINT* bf /* Pointer to number of bytes forwarded */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst, sect; + FSIZE_t remain; + UINT rcnt, csect; + BYTE *dbuf; + + + *bf = 0; /* Clear transfer byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + remain = fp->obj.objsize - fp->fptr; + if (btf > remain) btf = (UINT)remain; /* Truncate btf by remaining bytes */ + + for ( ; btf && (*func)(0, 0); /* Repeat until all data transferred or stream goes busy */ + fp->fptr += rcnt, *bf += rcnt, btf -= rcnt) { + csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + if (csect == 0) { /* On the cluster boundary? */ + clst = (fp->fptr == 0) ? /* On the top of the file? */ + fp->obj.sclust : get_fat(&fp->obj, fp->clust); + if (clst <= 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + } + } + sect = clust2sect(fs, fp->clust); /* Get current data sector */ + if (!sect) ABORT(fs, FR_INT_ERR); + sect += csect; +#if _FS_TINY + if (move_window(fs, sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window to the file data */ + dbuf = fs->win; +#else + if (fp->sect != sect) { /* Fill sector cache with file data */ +#if !_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + } + dbuf = fp->buf; +#endif + fp->sect = sect; + rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ + if (rcnt > btf) rcnt = btf; /* Clip it by btr if needed */ + rcnt = (*func)(dbuf + ((UINT)fp->fptr % SS(fs)), rcnt); /* Forward the file data */ + if (!rcnt) ABORT(fs, FR_INT_ERR); + } + + LEAVE_FF(fs, FR_OK); +} +#endif /* _USE_FORWARD */ + + + +#if _USE_MKFS && !_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Create FAT file system on the logical drive */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_mkfs ( + const TCHAR* path, /* Logical drive number */ + BYTE opt, /* Format option */ + DWORD au, /* Size of allocation unit [byte] */ + void* work, /* Pointer to working buffer */ + UINT len /* Size of working buffer */ +) +{ + const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */ + const UINT n_rootdir = 512; /* Number of root directory entries for FAT12/16 volume */ + static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volume (4Ks unit) */ + static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (128Ks unit) */ + BYTE fmt, sys, *buf, *pte, pdrv, part; + WORD ss; + DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n; + DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */ + DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */ + UINT i; + int vol; + DSTATUS stat; +#if _USE_TRIM || _FS_EXFAT + DWORD tbl[3]; +#endif + + + /* Check mounted drive and clear work area */ + vol = get_ldnumber(&path); /* Get target logical drive */ + if (vol < 0) return FR_INVALID_DRIVE; + if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear mounted volume */ + pdrv = LD2PD(vol); /* Physical drive */ + part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ + + /* Check physical drive status */ + stat = disk_initialize(pdrv); + if (stat & STA_NOINIT) return FR_NOT_READY; + if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; + if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk & (sz_blk - 1))) sz_blk = 1; /* Erase block to align data area */ +#if _MAX_SS != _MIN_SS /* Get sector size of the medium */ + if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; + if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; +#else + ss = _MAX_SS; +#endif + if ((au != 0 && au < ss) || au > 0x1000000 || (au & (au - 1))) return FR_INVALID_PARAMETER; /* Check if au is valid */ + au /= ss; /* Cluster size in unit of sector */ + + /* Get working buffer */ + buf = (BYTE*)work; /* Working buffer */ + sz_buf = len / ss; /* Size of working buffer (sector) */ + szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ + if (!szb_buf) return FR_MKFS_ABORTED; + + /* Determine where the volume to be located (b_vol, sz_vol) */ + if (_MULTI_PARTITION && part != 0) { + /* Get partition information from partition table in the MBR */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Load MBR */ + if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check if MBR is valid */ + pte = buf + (MBR_Table + (part - 1) * SZ_PTE); + if (!pte[PTE_System]) return FR_MKFS_ABORTED; /* No partition? */ + b_vol = ld_dword(pte + PTE_StLba); /* Get volume start sector */ + sz_vol = ld_dword(pte + PTE_SizLba); /* Get volume size */ + } else { + /* Create a single-partition in this function */ + if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_vol) != RES_OK) return FR_DISK_ERR; + b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ + if (sz_vol < b_vol) return FR_MKFS_ABORTED; + sz_vol -= b_vol; /* Volume size */ + } + if (sz_vol < 128) return FR_MKFS_ABORTED; /* Check if volume size is >=128s */ + + /* Pre-determine the FAT type */ + do { + if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */ + if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms or au > 128s ? */ + fmt = FS_EXFAT; break; + } + } + if (au > 128) return FR_INVALID_PARAMETER; /* Too large au for FAT/FAT32 */ + if (opt & FM_FAT32) { /* FAT32 possible? */ + if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */ + fmt = FS_FAT32; break; + } + } + if (!(opt & FM_FAT)) return FR_INVALID_PARAMETER; /* no-FAT? */ + fmt = FS_FAT16; + } while (0); + +#if _FS_EXFAT + if (fmt == FS_EXFAT) { /* Create an exFAT volume */ + DWORD szb_bit, szb_case, sum, nb, cl; + WCHAR ch, si; + UINT j, st; + BYTE b; + + if (sz_vol < 0x1000) return FR_MKFS_ABORTED; /* Too small volume? */ +#if _USE_TRIM + tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased */ + disk_ioctl(pdrv, CTRL_TRIM, tbl); +#endif + /* Determine FAT location, data location and number of clusters */ + if (!au) { /* au auto-selection */ + au = 8; + if (sz_vol >= 0x80000) au = 64; /* >= 512Ks */ + if (sz_vol >= 0x4000000) au = 256; /* >= 64Ms */ + } + b_fat = b_vol + 32; /* FAT start at offset 32 */ + sz_fat = ((sz_vol / au + 2) * 4 + ss - 1) / ss; /* Number of FAT sectors */ + b_data = (b_fat + sz_fat + sz_blk - 1) & ~(sz_blk - 1); /* Align data area to the erase block boundary */ + if (b_data >= sz_vol / 2) return FR_MKFS_ABORTED; /* Too small volume? */ + n_clst = (sz_vol - (b_data - b_vol)) / au; /* Number of clusters */ + if (n_clst <16) return FR_MKFS_ABORTED; /* Too few clusters? */ + if (n_clst > MAX_EXFAT) return FR_MKFS_ABORTED; /* Too many clusters? */ + + szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */ + tbl[0] = (szb_bit + au * ss - 1) / (au * ss); /* Number of allocation bitmap clusters */ + + /* Create a compressed up-case table */ + sect = b_data + au * tbl[0]; /* Table start sector */ + sum = 0; /* Table checksum to be stored in the 82 entry */ + st = si = i = j = szb_case = 0; + do { + switch (st) { + case 0: + ch = ff_wtoupper(si); /* Get an up-case char */ + if (ch != si) { + si++; break; /* Store the up-case char if exist */ + } + for (j = 1; (WCHAR)(si + j) && (WCHAR)(si + j) == ff_wtoupper((WCHAR)(si + j)); j++) ; /* Get run length of no-case block */ + if (j >= 128) { + ch = 0xFFFF; st = 2; break; /* Compress the no-case block if run is >= 128 */ + } + st = 1; /* Do not compress short run */ + /* continue */ + case 1: + ch = si++; /* Fill the short run */ + if (--j == 0) st = 0; + break; + default: + ch = (WCHAR)j; si += j; /* Number of chars to skip */ + st = 0; + } + sum = xsum32(buf[i + 0] = (BYTE)ch, sum); /* Put it into the write buffer */ + sum = xsum32(buf[i + 1] = (BYTE)(ch >> 8), sum); + i += 2; szb_case += 2; + if (!si || i == szb_buf) { /* Write buffered data when buffer full or end of process */ + n = (i + ss - 1) / ss; + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; i = 0; + } + } while (si); + tbl[1] = (szb_case + au * ss - 1) / (au * ss); /* Number of up-case table clusters */ + tbl[2] = 1; /* Number of root dir clusters */ + + /* Initialize the allocation bitmap */ + sect = b_data; nsect = (szb_bit + ss - 1) / ss; /* Start of bitmap and number of sectors */ + nb = tbl[0] + tbl[1] + tbl[2]; /* Number of clusters in-use by system */ + do { + mem_set(buf, 0, szb_buf); + for (i = 0; nb >= 8 && i < szb_buf; buf[i++] = 0xFF, nb -= 8) ; + for (b = 1; nb && i < szb_buf; buf[i] |= b, b <<= 1, nb--) ; + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); + + /* Initialize the FAT */ + sect = b_fat; nsect = sz_fat; /* Start of FAT and number of FAT sectors */ + j = nb = cl = 0; + do { + mem_set(buf, 0, szb_buf); i = 0; /* Clear work area and reset write index */ + if (cl == 0) { /* Set entry 0 and 1 */ + st_dword(buf + i, 0xFFFFFFF8); i += 4; cl++; + st_dword(buf + i, 0xFFFFFFFF); i += 4; cl++; + } + do { /* Create chains of bitmap, up-case and root dir */ + while (nb && i < szb_buf) { /* Create a chain */ + st_dword(buf + i, (nb > 1) ? cl + 1 : 0xFFFFFFFF); + i += 4; cl++; nb--; + } + if (!nb && j < 3) nb = tbl[j++]; /* Next chain */ + } while (nb && i < szb_buf); + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); + + /* Initialize the root directory */ + mem_set(buf, 0, szb_buf); + buf[SZDIRE * 0 + 0] = 0x83; /* 83 entry (volume label) */ + buf[SZDIRE * 1 + 0] = 0x81; /* 81 entry (allocation bitmap) */ + st_dword(buf + SZDIRE * 1 + 20, 2); + st_dword(buf + SZDIRE * 1 + 24, szb_bit); + buf[SZDIRE * 2 + 0] = 0x82; /* 82 entry (up-case table) */ + st_dword(buf + SZDIRE * 2 + 4, sum); + st_dword(buf + SZDIRE * 2 + 20, 2 + tbl[0]); + st_dword(buf + SZDIRE * 2 + 24, szb_case); + sect = b_data + au * (tbl[0] + tbl[1]); nsect = au; /* Start of the root directory and number of sectors */ + do { /* Fill root directory sectors */ + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + mem_set(buf, 0, ss); + sect += n; nsect -= n; + } while (nsect); + + /* Create two set of the exFAT VBR blocks */ + sect = b_vol; + for (n = 0; n < 2; n++) { + /* Main record (+0) */ + mem_set(buf, 0, ss); + mem_cpy(buf + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11); /* Boot jump code (x86), OEM name */ + st_dword(buf + BPB_VolOfsEx, b_vol); /* Volume offset in the physical drive [sector] */ + st_dword(buf + BPB_TotSecEx, sz_vol); /* Volume size [sector] */ + st_dword(buf + BPB_FatOfsEx, b_fat - b_vol); /* FAT offset [sector] */ + st_dword(buf + BPB_FatSzEx, sz_fat); /* FAT size [sector] */ + st_dword(buf + BPB_DataOfsEx, b_data - b_vol); /* Data offset [sector] */ + st_dword(buf + BPB_NumClusEx, n_clst); /* Number of clusters */ + st_dword(buf + BPB_RootClusEx, 2 + tbl[0] + tbl[1]); /* Root dir cluster # */ + st_dword(buf + BPB_VolIDEx, GET_FATTIME()); /* VSN */ + st_word(buf + BPB_FSVerEx, 0x100); /* File system version (1.00) */ + for (buf[BPB_BytsPerSecEx] = 0, i = ss; i >>= 1; buf[BPB_BytsPerSecEx]++) ; /* Log2 of sector size [byte] */ + for (buf[BPB_SecPerClusEx] = 0, i = au; i >>= 1; buf[BPB_SecPerClusEx]++) ; /* Log2 of cluster size [sector] */ + buf[BPB_NumFATsEx] = 1; /* Number of FATs */ + buf[BPB_DrvNumEx] = 0x80; /* Drive number (for int13) */ + st_word(buf + BS_BootCodeEx, 0xFEEB); /* Boot code (x86) */ + st_word(buf + BS_55AA, 0xAA55); /* Signature (placed here regardless of sector size) */ + for (i = sum = 0; i < ss; i++) { /* VBR checksum */ + if (i != BPB_VolFlagEx && i != BPB_VolFlagEx + 1 && i != BPB_PercInUseEx) sum = xsum32(buf[i], sum); + } + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + /* Extended bootstrap record (+1..+8) */ + mem_set(buf, 0, ss); + st_word(buf + ss - 2, 0xAA55); /* Signature (placed at end of sector) */ + for (j = 1; j < 9; j++) { + for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + } + /* OEM/Reserved record (+9..+10) */ + mem_set(buf, 0, ss); + for ( ; j < 11; j++) { + for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + } + /* Sum record (+11) */ + for (i = 0; i < ss; i += 4) st_dword(buf + i, sum); /* Fill with checksum value */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + } + + } else +#endif /* _FS_EXFAT */ + { /* Create an FAT12/16/32 volume */ + do { + pau = au; + /* Pre-determine number of clusters and FAT sub-type */ + if (fmt == FS_FAT32) { /* FAT32 volume */ + if (!pau) { /* au auto-selection */ + n = sz_vol / 0x20000; /* Volume size in unit of 128KS */ + for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */ + } + n_clst = sz_vol / pau; /* Number of clusters */ + sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */ + sz_rsv = 32; /* Number of reserved sectors */ + sz_dir = 0; /* No static directory */ + if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED; + } else { /* FAT12/16 volume */ + if (!pau) { /* au auto-selection */ + n = sz_vol / 0x1000; /* Volume size in unit of 4KS */ + for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */ + } + n_clst = sz_vol / pau; + if (n_clst > MAX_FAT12) { + n = n_clst * 2 + 4; /* FAT size [byte] */ + } else { + fmt = FS_FAT12; + n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */ + } + sz_fat = (n + ss - 1) / ss; /* FAT size [sector] */ + sz_rsv = 1; /* Number of reserved sectors */ + sz_dir = (DWORD)n_rootdir * SZDIRE / ss; /* Rootdir size [sector] */ + } + b_fat = b_vol + sz_rsv; /* FAT base */ + b_data = b_fat + sz_fat * n_fats + sz_dir; /* Data base */ + + /* Align data base to erase block boundary (for flash memory media) */ + n = ((b_data + sz_blk - 1) & ~(sz_blk - 1)) - b_data; /* Next nearest erase block from current data base */ + if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ + sz_rsv += n; b_fat += n; + } else { /* FAT12/16: Expand FAT size */ + sz_fat += n / n_fats; + } + + /* Determine number of clusters and final check of validity of the FAT sub-type */ + if (sz_vol < b_data + pau * 16 - b_vol) return FR_MKFS_ABORTED; /* Too small volume */ + n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; + if (fmt == FS_FAT32) { + if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */ + if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ + return FR_MKFS_ABORTED; + } + } + if (fmt == FS_FAT16) { + if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */ + if (!au && (pau * 2) <= 64) { + au = pau * 2; continue; /* Adjust cluster size and retry */ + } + if ((opt & FM_FAT32)) { + fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */ + } + if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + return FR_MKFS_ABORTED; + } + if (n_clst <= MAX_FAT12) { /* Too few clusters for FAT16 */ + if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + return FR_MKFS_ABORTED; + } + } + if (fmt == FS_FAT12 && n_clst > MAX_FAT12) return FR_MKFS_ABORTED; /* Too many clusters for FAT12 */ + + /* Ok, it is the valid cluster configuration */ + break; + } while (1); + +#if _USE_TRIM + tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased */ + disk_ioctl(pdrv, CTRL_TRIM, tbl); +#endif + /* Create FAT VBR */ + mem_set(buf, 0, ss); + mem_cpy(buf + BS_JmpBoot, "\xEB\xFE\x90" "MSDOS5.0", 11);/* Boot jump code (x86), OEM name */ + st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */ + buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */ + st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */ + buf[BPB_NumFATs] = (BYTE)n_fats; /* Number of FATs */ + st_word(buf + BPB_RootEntCnt, (WORD)((fmt == FS_FAT32) ? 0 : n_rootdir)); /* Number of root directory entries */ + if (sz_vol < 0x10000) { + st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ + } else { + st_dword(buf + BPB_TotSec32, sz_vol); /* Volume size in 32-bit LBA */ + } + buf[BPB_Media] = 0xF8; /* Media descriptor byte */ + st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */ + st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */ + st_dword(buf + BPB_HiddSec, b_vol); /* Volume offset in the physical drive [sector] */ + if (fmt == FS_FAT32) { + st_dword(buf + BS_VolID32, GET_FATTIME()); /* VSN */ + st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */ + st_dword(buf + BPB_RootClus32, 2); /* Root directory cluster # (2) */ + st_word(buf + BPB_FSInfo32, 1); /* Offset of FSINFO sector (VBR + 1) */ + st_word(buf + BPB_BkBootSec32, 6); /* Offset of backup VBR (VBR + 6) */ + buf[BS_DrvNum32] = 0x80; /* Drive number (for int13) */ + buf[BS_BootSig32] = 0x29; /* Extended boot signature */ + mem_cpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */ + } else { + st_dword(buf + BS_VolID, GET_FATTIME()); /* VSN */ + st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */ + buf[BS_DrvNum] = 0x80; /* Drive number (for int13) */ + buf[BS_BootSig] = 0x29; /* Extended boot signature */ + mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */ + } + st_word(buf + BS_55AA, 0xAA55); /* Signature (offset is fixed here regardless of sector size) */ + if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the VBR sector */ + + /* Create FSINFO record if needed */ + if (fmt == FS_FAT32) { + disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */ + mem_set(buf, 0, ss); + st_dword(buf + FSI_LeadSig, 0x41615252); + st_dword(buf + FSI_StrucSig, 0x61417272); + st_dword(buf + FSI_Free_Count, n_clst - 1); /* Number of free clusters */ + st_dword(buf + FSI_Nxt_Free, 2); /* Last allocated cluster# */ + st_word(buf + BS_55AA, 0xAA55); + disk_write(pdrv, buf, b_vol + 7, 1); /* Write backup FSINFO (VBR + 7) */ + disk_write(pdrv, buf, b_vol + 1, 1); /* Write original FSINFO (VBR + 1) */ + } + + /* Initialize FAT area */ + mem_set(buf, 0, (UINT)szb_buf); + sect = b_fat; /* FAT start sector */ + for (i = 0; i < n_fats; i++) { /* Initialize FATs each */ + if (fmt == FS_FAT32) { + st_dword(buf + 0, 0xFFFFFFF8); /* Entry 0 */ + st_dword(buf + 4, 0xFFFFFFFF); /* Entry 1 */ + st_dword(buf + 8, 0x0FFFFFFF); /* Entry 2 (root directory) */ + } else { + st_dword(buf + 0, (fmt == FS_FAT12) ? 0xFFFFF8 : 0xFFFFFFF8); /* Entry 0 and 1 */ + } + nsect = sz_fat; /* Number of FAT sectors */ + do { /* Fill FAT sectors */ + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; + mem_set(buf, 0, ss); + sect += n; nsect -= n; + } while (nsect); + } + + /* Initialize root directory (fill with zero) */ + nsect = (fmt == FS_FAT32) ? pau : sz_dir; /* Number of root directory sectors */ + do { + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; + sect += n; nsect -= n; + } while (nsect); + } + + /* Determine system ID in the partition table */ + if (_FS_EXFAT && fmt == FS_EXFAT) { + sys = 0x07; /* HPFS/NTFS/exFAT */ + } else { + if (fmt == FS_FAT32) { + sys = 0x0C; /* FAT32X */ + } else { + if (sz_vol >= 0x10000) { + sys = 0x06; /* FAT12/16 (>=64KS) */ + } else { + sys = (fmt == FS_FAT16) ? 0x04 : 0x01; /* FAT16 (<64KS) : FAT12 (<64KS) */ + } + } + } + + if (_MULTI_PARTITION && part != 0) { + /* Update system ID in the partition table */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Read the MBR */ + buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system type */ + if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it back to the MBR */ + } else { + if (!(opt & FM_SFD)) { + /* Create partition table in FDISK format */ + mem_set(buf, 0, ss); + st_word(buf + BS_55AA, 0xAA55); /* MBR signature */ + pte = buf + MBR_Table; /* Create partition table for single partition in the drive */ + pte[PTE_Boot] = 0; /* Boot indicator */ + pte[PTE_StHead] = 1; /* Start head */ + pte[PTE_StSec] = 1; /* Start sector */ + pte[PTE_StCyl] = 0; /* Start cylinder */ + pte[PTE_System] = sys; /* System type */ + n = (b_vol + sz_vol) / (63 * 255); /* (End CHS is incorrect) */ + pte[PTE_EdHead] = 254; /* End head */ + pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ + pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ + st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */ + st_dword(pte + PTE_SizLba, sz_vol); /* Size in sectors */ + if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the MBR */ + } + } + + if (disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) return FR_DISK_ERR; + + return FR_OK; +} + + + +#if _MULTI_PARTITION +/*-----------------------------------------------------------------------*/ +/* Create partition table on the physical drive */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_fdisk ( + BYTE pdrv, /* Physical drive number */ + const DWORD* szt, /* Pointer to the size table for each partitions */ + void* work /* Pointer to the working buffer */ +) +{ + UINT i, n, sz_cyl, tot_cyl, b_cyl, e_cyl, p_cyl; + BYTE s_hd, e_hd, *p, *buf = (BYTE*)work; + DSTATUS stat; + DWORD sz_disk, sz_part, s_part; + + + stat = disk_initialize(pdrv); + if (stat & STA_NOINIT) return FR_NOT_READY; + if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; + if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_disk)) return FR_DISK_ERR; + + /* Determine the CHS without any care of the drive geometry */ + for (n = 16; n < 256 && sz_disk / n / 63 > 1024; n *= 2) ; + if (n == 256) n--; + e_hd = n - 1; + sz_cyl = 63 * n; + tot_cyl = sz_disk / sz_cyl; + + /* Create partition table */ + mem_set(buf, 0, _MAX_SS); + p = buf + MBR_Table; b_cyl = 0; + for (i = 0; i < 4; i++, p += SZ_PTE) { + p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; + if (!p_cyl) continue; + s_part = (DWORD)sz_cyl * b_cyl; + sz_part = (DWORD)sz_cyl * p_cyl; + if (i == 0) { /* Exclude first track of cylinder 0 */ + s_hd = 1; + s_part += 63; sz_part -= 63; + } else { + s_hd = 0; + } + e_cyl = b_cyl + p_cyl - 1; + if (e_cyl >= tot_cyl) return FR_INVALID_PARAMETER; + + /* Set partition table */ + p[1] = s_hd; /* Start head */ + p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */ + p[3] = (BYTE)b_cyl; /* Start cylinder */ + p[4] = 0x06; /* System type (temporary setting) */ + p[5] = e_hd; /* End head */ + p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */ + p[7] = (BYTE)e_cyl; /* End cylinder */ + st_dword(p + 8, s_part); /* Start sector in LBA */ + st_dword(p + 12, sz_part); /* Partition size */ + + /* Next partition */ + b_cyl += p_cyl; + } + st_word(p, 0xAA55); + + /* Write it to the MBR */ + return (disk_write(pdrv, buf, 0, 1) != RES_OK || disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) ? FR_DISK_ERR : FR_OK; +} + +#endif /* _MULTI_PARTITION */ +#endif /* _USE_MKFS && !_FS_READONLY */ + + + + +#if _USE_STRFUNC +/*-----------------------------------------------------------------------*/ +/* Get a string from the file */ +/*-----------------------------------------------------------------------*/ + +TCHAR* f_gets ( + TCHAR* buff, /* Pointer to the string buffer to read */ + int len, /* Size of string buffer (characters) */ + FIL* fp /* Pointer to the file object */ +) +{ + int n = 0; + TCHAR c, *p = buff; + BYTE s[2]; + UINT rc; + + + while (n < len - 1) { /* Read characters until buffer gets filled */ +#if _LFN_UNICODE +#if _STRF_ENCODE == 3 /* Read a character in UTF-8 */ + f_read(fp, s, 1, &rc); + if (rc != 1) break; + c = s[0]; + if (c >= 0x80) { + if (c < 0xC0) continue; /* Skip stray trailer */ + if (c < 0xE0) { /* Two-byte sequence */ + f_read(fp, s, 1, &rc); + if (rc != 1) break; + c = (c & 0x1F) << 6 | (s[0] & 0x3F); + if (c < 0x80) c = '?'; + } else { + if (c < 0xF0) { /* Three-byte sequence */ + f_read(fp, s, 2, &rc); + if (rc != 2) break; + c = c << 12 | (s[0] & 0x3F) << 6 | (s[1] & 0x3F); + if (c < 0x800) c = '?'; + } else { /* Reject four-byte sequence */ + c = '?'; + } + } + } +#elif _STRF_ENCODE == 2 /* Read a character in UTF-16BE */ + f_read(fp, s, 2, &rc); + if (rc != 2) break; + c = s[1] + (s[0] << 8); +#elif _STRF_ENCODE == 1 /* Read a character in UTF-16LE */ + f_read(fp, s, 2, &rc); + if (rc != 2) break; + c = s[0] + (s[1] << 8); +#else /* Read a character in ANSI/OEM */ + f_read(fp, s, 1, &rc); + if (rc != 1) break; + c = s[0]; + if (IsDBCS1(c)) { + f_read(fp, s, 1, &rc); + if (rc != 1) break; + c = (c << 8) + s[0]; + } + c = ff_convert(c, 1); /* OEM -> Unicode */ + if (!c) c = '?'; +#endif +#else /* Read a character without conversion */ + f_read(fp, s, 1, &rc); + if (rc != 1) break; + c = s[0]; +#endif + if (_USE_STRFUNC == 2 && c == '\r') continue; /* Strip '\r' */ + *p++ = c; + n++; + if (c == '\n') break; /* Break on EOL */ + } + *p = 0; + return n ? buff : 0; /* When no data read (eof or error), return with error. */ +} + + + + +#if !_FS_READONLY +#include +/*-----------------------------------------------------------------------*/ +/* Put a character to the file */ +/*-----------------------------------------------------------------------*/ + +typedef struct { + FIL *fp; /* Ptr to the writing file */ + int idx, nchr; /* Write index of buf[] (-1:error), number of chars written */ + BYTE buf[64]; /* Write buffer */ +} putbuff; + + +static +void putc_bfd ( /* Buffered write with code conversion */ + putbuff* pb, + TCHAR c +) +{ + UINT bw; + int i; + + + if (_USE_STRFUNC == 2 && c == '\n') { /* LF -> CRLF conversion */ + putc_bfd(pb, '\r'); + } + + i = pb->idx; /* Write index of pb->buf[] */ + if (i < 0) return; + +#if _LFN_UNICODE +#if _STRF_ENCODE == 3 /* Write a character in UTF-8 */ + if (c < 0x80) { /* 7-bit */ + pb->buf[i++] = (BYTE)c; + } else { + if (c < 0x800) { /* 11-bit */ + pb->buf[i++] = (BYTE)(0xC0 | c >> 6); + } else { /* 16-bit */ + pb->buf[i++] = (BYTE)(0xE0 | c >> 12); + pb->buf[i++] = (BYTE)(0x80 | (c >> 6 & 0x3F)); + } + pb->buf[i++] = (BYTE)(0x80 | (c & 0x3F)); + } +#elif _STRF_ENCODE == 2 /* Write a character in UTF-16BE */ + pb->buf[i++] = (BYTE)(c >> 8); + pb->buf[i++] = (BYTE)c; +#elif _STRF_ENCODE == 1 /* Write a character in UTF-16LE */ + pb->buf[i++] = (BYTE)c; + pb->buf[i++] = (BYTE)(c >> 8); +#else /* Write a character in ANSI/OEM */ + c = ff_convert(c, 0); /* Unicode -> OEM */ + if (!c) c = '?'; + if (c >= 0x100) + pb->buf[i++] = (BYTE)(c >> 8); + pb->buf[i++] = (BYTE)c; +#endif +#else /* Write a character without conversion */ + pb->buf[i++] = (BYTE)c; +#endif + + if (i >= (int)(sizeof pb->buf) - 3) { /* Write buffered characters to the file */ + f_write(pb->fp, pb->buf, (UINT)i, &bw); + i = (bw == (UINT)i) ? 0 : -1; + } + pb->idx = i; + pb->nchr++; +} + + +static +int putc_flush ( /* Flush left characters in the buffer */ + putbuff* pb +) +{ + UINT nw; + + if ( pb->idx >= 0 /* Flush buffered characters to the file */ + && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK + && (UINT)pb->idx == nw) return pb->nchr; + return EOF; +} + + +static +void putc_init ( /* Initialize write buffer */ + putbuff* pb, + FIL* fp +) +{ + pb->fp = fp; + pb->nchr = pb->idx = 0; +} + + + +int f_putc ( + TCHAR c, /* A character to be output */ + FIL* fp /* Pointer to the file object */ +) +{ + putbuff pb; + + + putc_init(&pb, fp); + putc_bfd(&pb, c); /* Put the character */ + return putc_flush(&pb); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Put a string to the file */ +/*-----------------------------------------------------------------------*/ + +int f_puts ( + const TCHAR* str, /* Pointer to the string to be output */ + FIL* fp /* Pointer to the file object */ +) +{ + putbuff pb; + + + putc_init(&pb, fp); + while (*str) putc_bfd(&pb, *str++); /* Put the string */ + return putc_flush(&pb); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Put a formatted string to the file */ +/*-----------------------------------------------------------------------*/ + +int f_printf ( + FIL* fp, /* Pointer to the file object */ + const TCHAR* fmt, /* Pointer to the format string */ + ... /* Optional arguments... */ +) +{ + va_list arp; + putbuff pb; + BYTE f, r; + UINT i, j, w; + DWORD v; + TCHAR c, d, str[32], *p; + + + putc_init(&pb, fp); + + va_start(arp, fmt); + + for (;;) { + c = *fmt++; + if (c == 0) break; /* End of string */ + if (c != '%') { /* Non escape character */ + putc_bfd(&pb, c); + continue; + } + w = f = 0; + c = *fmt++; + if (c == '0') { /* Flag: '0' padding */ + f = 1; c = *fmt++; + } else { + if (c == '-') { /* Flag: left justified */ + f = 2; c = *fmt++; + } + } + while (IsDigit(c)) { /* Precision */ + w = w * 10 + c - '0'; + c = *fmt++; + } + if (c == 'l' || c == 'L') { /* Prefix: Size is long int */ + f |= 4; c = *fmt++; + } + if (!c) break; + d = c; + if (IsLower(d)) d -= 0x20; + switch (d) { /* Type is... */ + case 'S' : /* String */ + p = va_arg(arp, TCHAR*); + for (j = 0; p[j]; j++) ; + if (!(f & 2)) { + while (j++ < w) putc_bfd(&pb, ' '); + } + while (*p) putc_bfd(&pb, *p++); + while (j++ < w) putc_bfd(&pb, ' '); + continue; + case 'C' : /* Character */ + putc_bfd(&pb, (TCHAR)va_arg(arp, int)); continue; + case 'B' : /* Binary */ + r = 2; break; + case 'O' : /* Octal */ + r = 8; break; + case 'D' : /* Signed decimal */ + case 'U' : /* Unsigned decimal */ + r = 10; break; + case 'X' : /* Hexdecimal */ + r = 16; break; + default: /* Unknown type (pass-through) */ + putc_bfd(&pb, c); continue; + } + + /* Get an argument and put it in numeral */ + v = (f & 4) ? (DWORD)va_arg(arp, long) : ((d == 'D') ? (DWORD)(long)va_arg(arp, int) : (DWORD)va_arg(arp, unsigned int)); + if (d == 'D' && (v & 0x80000000)) { + v = 0 - v; + f |= 8; + } + i = 0; + do { + d = (TCHAR)(v % r); v /= r; + if (d > 9) d += (c == 'x') ? 0x27 : 0x07; + str[i++] = d + '0'; + } while (v && i < sizeof str / sizeof str[0]); + if (f & 8) str[i++] = '-'; + j = i; d = (f & 1) ? '0' : ' '; + while (!(f & 2) && j++ < w) putc_bfd(&pb, d); + do putc_bfd(&pb, str[--i]); while (i); + while (j++ < w) putc_bfd(&pb, d); + } + + va_end(arp); + + return putc_flush(&pb); +} + +#endif /* !_FS_READONLY */ +#endif /* _USE_STRFUNC */ diff --git a/extras/fatfs/ff.h b/extras/fatfs/ff.h new file mode 100644 index 0000000..981a886 --- /dev/null +++ b/extras/fatfs/ff.h @@ -0,0 +1,366 @@ +/*----------------------------------------------------------------------------/ +/ FatFs - Generic FAT file system module R0.12b / +/-----------------------------------------------------------------------------/ +/ +/ Copyright (C) 2016, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: + +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +/----------------------------------------------------------------------------*/ + + +#ifndef _FATFS +#define _FATFS 68020 /* Revision ID */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "integer.h" /* Basic integer types */ +#include "ffconf.h" /* FatFs configuration options */ + +#if _FATFS != _FFCONF +#error Wrong configuration file (ffconf.h). +#endif + + + +/* Definitions of volume management */ + +#if _MULTI_PARTITION /* Multiple partition configuration */ +typedef struct { + BYTE pd; /* Physical drive number */ + BYTE pt; /* Partition: 0:Auto detect, 1-4:Forced partition) */ +} PARTITION; +extern PARTITION VolToPart[]; /* Volume - Partition resolution table */ +#define LD2PD(vol) (VolToPart[vol].pd) /* Get physical drive number */ +#define LD2PT(vol) (VolToPart[vol].pt) /* Get partition index */ + +#else /* Single partition configuration */ +#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */ +#define LD2PT(vol) 0 /* Find first valid partition or in SFD */ + +#endif + + + +/* Type of path name strings on FatFs API */ + +#if _LFN_UNICODE /* Unicode (UTF-16) string */ +#if _USE_LFN == 0 +#error _LFN_UNICODE must be 0 at non-LFN cfg. +#endif +#ifndef _INC_TCHAR +typedef WCHAR TCHAR; +#define _T(x) L ## x +#define _TEXT(x) L ## x +#endif +#else /* ANSI/OEM string */ +#ifndef _INC_TCHAR +typedef char TCHAR; +#define _T(x) x +#define _TEXT(x) x +#endif +#endif + + + +/* Type of file size variables */ + +#if _FS_EXFAT +#if _USE_LFN == 0 +#error LFN must be enabled when enable exFAT +#endif +typedef QWORD FSIZE_t; +#else +typedef DWORD FSIZE_t; +#endif + + + +/* File system object structure (FATFS) */ + +typedef struct { + BYTE fs_type; /* File system type (0:N/A) */ + BYTE drv; /* Physical drive number */ + BYTE n_fats; /* Number of FATs (1 or 2) */ + BYTE wflag; /* win[] flag (b0:dirty) */ + BYTE fsi_flag; /* FSINFO flags (b7:disabled, b0:dirty) */ + WORD id; /* File system mount ID */ + WORD n_rootdir; /* Number of root directory entries (FAT12/16) */ + WORD csize; /* Cluster size [sectors] */ +#if _MAX_SS != _MIN_SS + WORD ssize; /* Sector size (512, 1024, 2048 or 4096) */ +#endif +#if _USE_LFN != 0 + WCHAR* lfnbuf; /* LFN working buffer */ +#endif +#if _FS_EXFAT + BYTE* dirbuf; /* Directory entry block scratchpad buffer */ +#endif +#if _FS_REENTRANT + _SYNC_t sobj; /* Identifier of sync object */ +#endif +#if !_FS_READONLY + DWORD last_clst; /* Last allocated cluster */ + DWORD free_clst; /* Number of free clusters */ +#endif +#if _FS_RPATH != 0 + DWORD cdir; /* Current directory start cluster (0:root) */ +#if _FS_EXFAT + DWORD cdc_scl; /* Containing directory start cluster (invalid when cdir is 0) */ + DWORD cdc_size; /* b31-b8:Size of containing directory, b7-b0: Chain status */ + DWORD cdc_ofs; /* Offset in the containing directory (invalid when cdir is 0) */ +#endif +#endif + DWORD n_fatent; /* Number of FAT entries (number of clusters + 2) */ + DWORD fsize; /* Size of an FAT [sectors] */ + DWORD volbase; /* Volume base sector */ + DWORD fatbase; /* FAT base sector */ + DWORD dirbase; /* Root directory base sector/cluster */ + DWORD database; /* Data base sector */ + DWORD winsect; /* Current sector appearing in the win[] */ + BYTE win[_MAX_SS]; /* Disk access window for Directory, FAT (and file data at tiny cfg) */ +} FATFS; + + + +/* Object ID and allocation information (_FDID) */ + +typedef struct { + FATFS* fs; /* Pointer to the owner file system object */ + WORD id; /* Owner file system mount ID */ + BYTE attr; /* Object attribute */ + BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:got flagmented, b2:sub-directory stretched) */ + DWORD sclust; /* Object start cluster (0:no cluster or root directory) */ + FSIZE_t objsize; /* Object size (valid when sclust != 0) */ +#if _FS_EXFAT + DWORD n_cont; /* Size of coutiguous part, clusters - 1 (valid when stat == 3) */ + DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ + DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ + DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0) */ +#endif +#if _FS_LOCK != 0 + UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ +#endif +} _FDID; + + + +/* File object structure (FIL) */ + +typedef struct { + _FDID obj; /* Object identifier (must be the 1st member to detect invalid object pointer) */ + BYTE flag; /* File status flags */ + BYTE err; /* Abort flag (error code) */ + FSIZE_t fptr; /* File read/write pointer (Zeroed on file open) */ + DWORD clust; /* Current cluster of fpter (invalid when fprt is 0) */ + DWORD sect; /* Sector number appearing in buf[] (0:invalid) */ +#if !_FS_READONLY + DWORD dir_sect; /* Sector number containing the directory entry */ + BYTE* dir_ptr; /* Pointer to the directory entry in the win[] */ +#endif +#if _USE_FASTSEEK + DWORD* cltbl; /* Pointer to the cluster link map table (nulled on open, set by application) */ +#endif +#if !_FS_TINY + BYTE buf[_MAX_SS]; /* File private data read/write window */ +#endif +} FIL; + + + +/* Directory object structure (DIR) */ + +typedef struct { + _FDID obj; /* Object identifier */ + DWORD dptr; /* Current read/write offset */ + DWORD clust; /* Current cluster */ + DWORD sect; /* Current sector */ + BYTE* dir; /* Pointer to the directory item in the win[] */ + BYTE fn[12]; /* SFN (in/out) {body[8],ext[3],status[1]} */ +#if _USE_LFN != 0 + DWORD blk_ofs; /* Offset of current entry block being processed (0xFFFFFFFF:Invalid) */ +#endif +#if _USE_FIND + const TCHAR* pat; /* Pointer to the name matching pattern */ +#endif +} DIR; + + + +/* File information structure (FILINFO) */ + +typedef struct { + FSIZE_t fsize; /* File size */ + WORD fdate; /* Modified date */ + WORD ftime; /* Modified time */ + BYTE fattrib; /* File attribute */ +#if _USE_LFN != 0 + TCHAR altname[13]; /* Altenative file name */ + TCHAR fname[_MAX_LFN + 1]; /* Primary file name */ +#else + TCHAR fname[13]; /* File name */ +#endif +} FILINFO; + + + +/* File function return code (FRESULT) */ + +typedef enum { + FR_OK = 0, /* (0) Succeeded */ + FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */ + FR_INT_ERR, /* (2) Assertion failed */ + FR_NOT_READY, /* (3) The physical drive cannot work */ + FR_NO_FILE, /* (4) Could not find the file */ + FR_NO_PATH, /* (5) Could not find the path */ + FR_INVALID_NAME, /* (6) The path name format is invalid */ + FR_DENIED, /* (7) Access denied due to prohibited access or directory full */ + FR_EXIST, /* (8) Access denied due to prohibited access */ + FR_INVALID_OBJECT, /* (9) The file/directory object is invalid */ + FR_WRITE_PROTECTED, /* (10) The physical drive is write protected */ + FR_INVALID_DRIVE, /* (11) The logical drive number is invalid */ + FR_NOT_ENABLED, /* (12) The volume has no work area */ + FR_NO_FILESYSTEM, /* (13) There is no valid FAT volume */ + FR_MKFS_ABORTED, /* (14) The f_mkfs() aborted due to any problem */ + FR_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */ + FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */ + FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */ + FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_LOCK */ + FR_INVALID_PARAMETER /* (19) Given parameter is invalid */ +} FRESULT; + + + +/*--------------------------------------------------------------*/ +/* FatFs module application interface */ + +FRESULT f_open (FIL* fp, const TCHAR* path, BYTE mode); /* Open or create a file */ +FRESULT f_close (FIL* fp); /* Close an open file object */ +FRESULT f_read (FIL* fp, void* buff, UINT btr, UINT* br); /* Read data from the file */ +FRESULT f_write (FIL* fp, const void* buff, UINT btw, UINT* bw); /* Write data to the file */ +FRESULT f_lseek (FIL* fp, FSIZE_t ofs); /* Move file pointer of the file object */ +FRESULT f_truncate (FIL* fp); /* Truncate the file */ +FRESULT f_sync (FIL* fp); /* Flush cached data of the writing file */ +FRESULT f_opendir (DIR* dp, const TCHAR* path); /* Open a directory */ +FRESULT f_closedir (DIR* dp); /* Close an open directory */ +FRESULT f_readdir (DIR* dp, FILINFO* fno); /* Read a directory item */ +FRESULT f_findfirst (DIR* dp, FILINFO* fno, const TCHAR* path, const TCHAR* pattern); /* Find first file */ +FRESULT f_findnext (DIR* dp, FILINFO* fno); /* Find next file */ +FRESULT f_mkdir (const TCHAR* path); /* Create a sub directory */ +FRESULT f_unlink (const TCHAR* path); /* Delete an existing file or directory */ +FRESULT f_rename (const TCHAR* path_old, const TCHAR* path_new); /* Rename/Move a file or directory */ +FRESULT f_stat (const TCHAR* path, FILINFO* fno); /* Get file status */ +FRESULT f_chmod (const TCHAR* path, BYTE attr, BYTE mask); /* Change attribute of a file/dir */ +FRESULT f_utime (const TCHAR* path, const FILINFO* fno); /* Change timestamp of a file/dir */ +FRESULT f_chdir (const TCHAR* path); /* Change current directory */ +FRESULT f_chdrive (const TCHAR* path); /* Change current drive */ +FRESULT f_getcwd (TCHAR* buff, UINT len); /* Get current directory */ +FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */ +FRESULT f_getlabel (const TCHAR* path, TCHAR* label, DWORD* vsn); /* Get volume label */ +FRESULT f_setlabel (const TCHAR* label); /* Set volume label */ +FRESULT f_forward (FIL* fp, UINT(*func)(const BYTE*,UINT), UINT btf, UINT* bf); /* Forward data to the stream */ +FRESULT f_expand (FIL* fp, FSIZE_t szf, BYTE opt); /* Allocate a contiguous block to the file */ +FRESULT f_mount (FATFS* fs, const TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */ +FRESULT f_mkfs (const TCHAR* path, BYTE opt, DWORD au, void* work, UINT len); /* Create a FAT volume */ +FRESULT f_fdisk (BYTE pdrv, const DWORD* szt, void* work); /* Divide a physical drive into some partitions */ +int f_putc (TCHAR c, FIL* fp); /* Put a character to the file */ +int f_puts (const TCHAR* str, FIL* cp); /* Put a string to the file */ +int f_printf (FIL* fp, const TCHAR* str, ...); /* Put a formatted string to the file */ +TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the file */ + +#define f_eof(fp) ((int)((fp)->fptr == (fp)->obj.objsize)) +#define f_error(fp) ((fp)->err) +#define f_tell(fp) ((fp)->fptr) +#define f_size(fp) ((fp)->obj.objsize) +#define f_rewind(fp) f_lseek((fp), 0) +#define f_rewinddir(dp) f_readdir((dp), 0) + +#ifndef EOF +#define EOF (-1) +#endif + + + + +/*--------------------------------------------------------------*/ +/* Additional user defined functions */ + +/* RTC function */ +#if !_FS_READONLY && !_FS_NORTC +DWORD get_fattime (void); +#endif + +/* Unicode support functions */ +#if _USE_LFN != 0 /* Unicode - OEM code conversion */ +WCHAR ff_convert (WCHAR chr, UINT dir); /* OEM-Unicode bidirectional conversion */ +WCHAR ff_wtoupper (WCHAR chr); /* Unicode upper-case conversion */ +#if _USE_LFN == 3 /* Memory functions */ +void* ff_memalloc (UINT msize); /* Allocate memory block */ +void ff_memfree (void* mblock); /* Free memory block */ +#endif +#endif + +/* Sync functions */ +#if _FS_REENTRANT +int ff_cre_syncobj (BYTE vol, _SYNC_t* sobj); /* Create a sync object */ +int ff_req_grant (_SYNC_t sobj); /* Lock sync object */ +void ff_rel_grant (_SYNC_t sobj); /* Unlock sync object */ +int ff_del_syncobj (_SYNC_t sobj); /* Delete a sync object */ +#endif + + + + +/*--------------------------------------------------------------*/ +/* Flags and offset address */ + + +/* File access mode and open method flags (3rd argument of f_open) */ +#define FA_READ 0x01 +#define FA_WRITE 0x02 +#define FA_OPEN_EXISTING 0x00 +#define FA_CREATE_NEW 0x04 +#define FA_CREATE_ALWAYS 0x08 +#define FA_OPEN_ALWAYS 0x10 +#define FA_OPEN_APPEND 0x30 + +/* Fast seek controls (2nd argument of f_lseek) */ +#define CREATE_LINKMAP ((FSIZE_t)0 - 1) + +/* Format options (2nd argument of f_mkfs) */ +#define FM_FAT 0x01 +#define FM_FAT32 0x02 +#define FM_EXFAT 0x04 +#define FM_ANY 0x07 +#define FM_SFD 0x08 + +/* Filesystem type (FATFS.fs_type) */ +#define FS_FAT12 1 +#define FS_FAT16 2 +#define FS_FAT32 3 +#define FS_EXFAT 4 + +/* File attribute bits for directory entry (FILINFO.fattrib) */ +#define AM_RDO 0x01 /* Read only */ +#define AM_HID 0x02 /* Hidden */ +#define AM_SYS 0x04 /* System */ +#define AM_DIR 0x10 /* Directory */ +#define AM_ARC 0x20 /* Archive */ + + +#ifdef __cplusplus +} +#endif + +#endif /* _FATFS */ diff --git a/extras/fatfs/ffconf.h b/extras/fatfs/ffconf.h new file mode 100644 index 0000000..00b79a4 --- /dev/null +++ b/extras/fatfs/ffconf.h @@ -0,0 +1,309 @@ +/*---------------------------------------------------------------------------/ +/ FatFs - FAT file system module configuration file +/---------------------------------------------------------------------------*/ +#define _FFCONF 68020 /* Revision ID */ + +/*---------------------------------------------------------------------------/ +/ Function Configurations +/---------------------------------------------------------------------------*/ + +#ifndef _FS_READONLY +#define _FS_READONLY 0 +#endif +/* This option switches read-only configuration. (0:Read/Write or 1:Read-only) +/ Read-only configuration removes writing API functions, f_write(), f_sync(), +/ f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree() +/ and optional writing functions as well. */ + + +#define _FS_MINIMIZE 0 +/* This option defines minimization level to remove some basic API functions. +/ +/ 0: All basic functions are enabled. +/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename() +/ are removed. +/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1. +/ 3: f_lseek() function is removed in addition to 2. */ + + +#ifndef _USE_STRFUNC +#define _USE_STRFUNC 1 +#endif +/* This option switches string functions, f_gets(), f_putc(), f_puts() and +/ f_printf(). +/ +/ 0: Disable string functions. +/ 1: Enable without LF-CRLF conversion. +/ 2: Enable with LF-CRLF conversion. */ + + +#ifndef _USE_FIND +#define _USE_FIND 2 +#endif +/* This option switches filtered directory read functions, f_findfirst() and +/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */ + + +#ifndef _USE_MKFS +#define _USE_MKFS 1 +#endif +/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ + + +#ifndef _USE_FASTSEEK +#define _USE_FASTSEEK 1 +#endif +/* This option switches fast seek function. (0:Disable or 1:Enable) */ + + +#ifndef _USE_EXPAND +#define _USE_EXPAND 1 +#endif +/* This option switches f_expand function. (0:Disable or 1:Enable) */ + + +#ifndef _USE_CHMOD +#define _USE_CHMOD 1 +#endif +/* This option switches attribute manipulation functions, f_chmod() and f_utime(). +/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */ + + +#ifndef _USE_LABEL +#define _USE_LABEL 1 +#endif +/* This option switches volume label functions, f_getlabel() and f_setlabel(). +/ (0:Disable or 1:Enable) */ + + +#ifndef _USE_FORWARD +#define _USE_FORWARD 1 +#endif +/* This option switches f_forward() function. (0:Disable or 1:Enable) */ + + +/*---------------------------------------------------------------------------/ +/ Locale and Namespace Configurations +/---------------------------------------------------------------------------*/ + +#ifndef _CODE_PAGE +#define _CODE_PAGE 437 +#endif +/* This option specifies the OEM code page to be used on the target system. +/ Incorrect setting of the code page can cause a file open failure. +/ +/ 1 - ASCII (No extended character. Non-LFN cfg. only) +/ 437 - U.S. +/ 720 - Arabic +/ 737 - Greek +/ 771 - KBL +/ 775 - Baltic +/ 850 - Latin 1 +/ 852 - Latin 2 +/ 855 - Cyrillic +/ 857 - Turkish +/ 860 - Portuguese +/ 861 - Icelandic +/ 862 - Hebrew +/ 863 - Canadian French +/ 864 - Arabic +/ 865 - Nordic +/ 866 - Russian +/ 869 - Greek 2 +/ 932 - Japanese (DBCS) +/ 936 - Simplified Chinese (DBCS) +/ 949 - Korean (DBCS) +/ 950 - Traditional Chinese (DBCS) +*/ + +#ifndef _USE_LFN +#define _USE_LFN 3 +#endif +#ifndef _MAX_LFN +#define _MAX_LFN 255 +#endif +/* The _USE_LFN switches the support of long file name (LFN). +/ +/ 0: Disable support of LFN. _MAX_LFN has no effect. +/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. +/ 2: Enable LFN with dynamic working buffer on the STACK. +/ 3: Enable LFN with dynamic working buffer on the HEAP. +/ +/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added +/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and +/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255. +/ It should be set 255 to support full featured LFN operations. +/ When use stack for the working buffer, take care on stack overflow. When use heap +/ memory for the working buffer, memory management functions, ff_memalloc() and +/ ff_memfree(), must be added to the project. */ + + +#ifndef _LFN_UNICODE +#define _LFN_UNICODE 0 +#endif +/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16) +/ To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1. +/ This option also affects behavior of string I/O functions. */ + + +#ifndef _STRF_ENCODE +#define _STRF_ENCODE 3 +#endif +/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to +/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf(). +/ +/ 0: ANSI/OEM +/ 1: UTF-16LE +/ 2: UTF-16BE +/ 3: UTF-8 +/ +/ This option has no effect when _LFN_UNICODE == 0. */ + +#ifndef _FS_RPATH +#define _FS_RPATH 2 +#endif +/* This option configures support of relative path. +/ +/ 0: Disable relative path and remove related functions. +/ 1: Enable relative path. f_chdir() and f_chdrive() are available. +/ 2: f_getcwd() function is available in addition to 1. +*/ + + +/*---------------------------------------------------------------------------/ +/ Drive/Volume Configurations +/---------------------------------------------------------------------------*/ + +#define _VOLUMES 7 +/* Number of volumes (logical drives) to be used. */ + + +#define _STR_VOLUME_ID 0 +#define _VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" +/* _STR_VOLUME_ID switches string support of volume ID. +/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive +/ number in the path name. _VOLUME_STRS defines the drive ID strings for each +/ logical drives. Number of items must be equal to _VOLUMES. Valid characters for +/ the drive ID strings are: A-Z and 0-9. */ + + +#define _MULTI_PARTITION 0 +/* This option switches support of multi-partition on a physical drive. +/ By default (0), each logical drive number is bound to the same physical drive +/ number and only an FAT volume found on the physical drive will be mounted. +/ When multi-partition is enabled (1), each logical drive number can be bound to +/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk() +/ funciton will be available. */ + + +#define _MIN_SS 512 +#define _MAX_SS 512 +/* These options configure the range of sector size to be supported. (512, 1024, +/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and +/ harddisk. But a larger value may be required for on-board flash memory and some +/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured +/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the +/ disk_ioctl() function. */ + + +#define _USE_TRIM 1 +/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable) +/ To enable Trim function, also CTRL_TRIM command should be implemented to the +/ disk_ioctl() function. */ + + +#define _FS_NOFSINFO 0 +/* If you need to know correct free space on the FAT32 volume, set bit 0 of this +/ option, and f_getfree() function at first time after volume mount will force +/ a full FAT scan. Bit 1 controls the use of last allocated cluster number. +/ +/ bit0=0: Use free cluster count in the FSINFO if available. +/ bit0=1: Do not trust free cluster count in the FSINFO. +/ bit1=0: Use last allocated cluster number in the FSINFO if available. +/ bit1=1: Do not trust last allocated cluster number in the FSINFO. +*/ + + + +/*---------------------------------------------------------------------------/ +/ System Configurations +/---------------------------------------------------------------------------*/ + +#define _FS_TINY 0 +/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) +/ At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes. +/ Instead of private sector buffer eliminated from the file object, common sector +/ buffer in the file system object (FATFS) is used for the file data transfer. */ + +#ifndef _FS_EXFAT +#define _FS_EXFAT 1 +#endif +/* This option switches support of exFAT file system. (0:Disable or 1:Enable) +/ When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1) +/ Note that enabling exFAT discards C89 compatibility. */ + +#ifndef _FS_NORTC +#define _FS_NORTC 1 +#define _NORTC_MON 1 +#define _NORTC_MDAY 1 +#define _NORTC_YEAR 2016 +#endif +/* The option _FS_NORTC switches timestamp functiton. If the system does not have +/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable +/ the timestamp function. All objects modified by FatFs will have a fixed timestamp +/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time. +/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be +/ added to the project to get current time form real-time clock. _NORTC_MON, +/ _NORTC_MDAY and _NORTC_YEAR have no effect. +/ These options have no effect at read-only configuration (_FS_READONLY = 1). */ + +#ifndef _FS_LOCK +#define _FS_LOCK 64 +#endif +/* The option _FS_LOCK switches file lock function to control duplicated file open +/ and illegal operation to open objects. This option must be 0 when _FS_READONLY +/ is 1. +/ +/ 0: Disable file lock function. To avoid volume corruption, application program +/ should avoid illegal open, remove and rename to the open objects. +/ >0: Enable file lock function. The value defines how many files/sub-directories +/ can be opened simultaneously under file lock control. Note that the file +/ lock control is independent of re-entrancy. */ + + +#define _FS_REENTRANT 1 +#ifndef _FS_TIMEOUT +#define _FS_TIMEOUT 1000 +#endif +#define _SYNC_t xSemaphoreHandle +/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs +/ module itself. Note that regardless of this option, file access to different +/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs() +/ and f_fdisk() function, are always not re-entrant. Only file/directory access +/ to the same volume is under control of this function. +/ +/ 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect. +/ 1: Enable re-entrancy. Also user provided synchronization handlers, +/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj() +/ function, must be added to the project. Samples are available in +/ option/syscall.c. +/ +/ The _FS_TIMEOUT defines timeout period in unit of time tick. +/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, +/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be +/ included somewhere in the scope of ff.h. */ + +/* #include // O/S definitions */ + +/*---------------------------------------------------------------------------*/ +/* ESP Open RTOS specific settings */ +/*---------------------------------------------------------------------------*/ +#include +#include +#include "volumes.h" + +#ifndef _FF_HIGH_SPEED_SPI_FREQ_DIV +#define _FF_HIGH_SPEED_SPI_FREQ_DIV SPI_FREQ_DIV_20M +#endif + +/*--- End of configuration options ---*/ diff --git a/extras/fatfs/integer.h b/extras/fatfs/integer.h new file mode 100644 index 0000000..4924373 --- /dev/null +++ b/extras/fatfs/integer.h @@ -0,0 +1,40 @@ +/*-------------------------------------------*/ +/* Integer type definitions for FatFs module */ +/*-------------------------------------------*/ + +#ifndef _FF_INTEGER +#define _FF_INTEGER + +#ifdef _WIN32 /* FatFs development platform */ + +#include +#include +typedef unsigned __int64 QWORD; + +#else /* Embedded platform */ + +#include +#include + +/* These types MUST be 16-bit or 32-bit */ +typedef int INT; +typedef unsigned int UINT; + +/* This type MUST be 8-bit */ +typedef uint8_t BYTE; + +/* These types MUST be 16-bit */ +typedef int16_t SHORT; +typedef uint16_t WORD; +typedef uint16_t WCHAR; + +/* These types MUST be 32-bit */ +typedef int32_t LONG; +typedef uint32_t DWORD; + +/* This type MUST be 64-bit (Remove this for C89 compatibility) */ +typedef uint64_t QWORD; + +#endif + +#endif diff --git a/extras/fatfs/syscall.c b/extras/fatfs/syscall.c new file mode 100644 index 0000000..0fff89a --- /dev/null +++ b/extras/fatfs/syscall.c @@ -0,0 +1,77 @@ +#include "ff.h" +#include + +#if _USE_LFN == 3 /* LFN with a working buffer on the heap */ +#include +#endif + +#if _FS_REENTRANT + +/* + * Create a Synchronization Object + * This function is called in f_mount() function to create a new + * synchronization object, such as semaphore and mutex. When a 0 is returned, + * the f_mount() function fails with FR_INT_ERR. + */ +int ff_cre_syncobj(BYTE vol, xSemaphoreHandle *sobj) +{ + int ret; + + *sobj = xSemaphoreCreateMutex(); + ret = (int)(*sobj != NULL); + + return ret; +} + +/* + * Delete a Synchronization Object + * This function is called in f_mount() function to delete a synchronization + * object that created with ff_cre_syncobj() function. When a 0 is returned, + * the f_mount() function fails with FR_INT_ERR. + */ +int ff_del_syncobj(xSemaphoreHandle sobj) +{ + vSemaphoreDelete(sobj); + return 1; +} + +/* + * Request Grant to Access the Volume + * This function is called on entering file functions to lock the volume. + * When a 0 is returned, the file function fails with FR_TIMEOUT. + */ +int ff_req_grant(xSemaphoreHandle sobj) +{ + return (int)(xSemaphoreTake(sobj, _FS_TIMEOUT) == pdTRUE); +} + +/* + * Release Grant to Access the Volume + * This function is called on leaving file functions to unlock the volume. + */ +void ff_rel_grant(xSemaphoreHandle sobj) +{ + xSemaphoreGive(sobj); +} + +#endif + +#if _USE_LFN == 3 /* LFN with a working buffer on the heap */ +/* + * Allocate a memory block + * If a NULL is returned, the file function fails with FR_NOT_ENOUGH_CORE. + */ +void* ff_memalloc(UINT msize) +{ + return malloc(msize); +} + +/* + * Free a memory block + */ +void ff_memfree(void* mblock) +{ + free(mblock); +} + +#endif diff --git a/extras/fatfs/unicode.c b/extras/fatfs/unicode.c new file mode 100644 index 0000000..185830d --- /dev/null +++ b/extras/fatfs/unicode.c @@ -0,0 +1,17 @@ +#include "ff.h" + +#if _USE_LFN != 0 + +#if _CODE_PAGE == 932 /* Japanese Shift_JIS */ +#include "cc932.h" +#elif _CODE_PAGE == 936 /* Simplified Chinese GBK */ +#include "cc936.h" +#elif _CODE_PAGE == 949 /* Korean */ +#include "cc949.h" +#elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */ +#include "cc950.h" +#else /* Single Byte Character-Set */ +#include "ccsbcs.h" +#endif + +#endif diff --git a/extras/fatfs/volumes.c b/extras/fatfs/volumes.c new file mode 100644 index 0000000..f5895c9 --- /dev/null +++ b/extras/fatfs/volumes.c @@ -0,0 +1,43 @@ +/* + * FatFs integration to esp-open-rtos + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "volumes.h" +#include + +const char *volumes[] = { + [0] = "3:", + [1] = NULL, + [2] = "4:", + [3] = NULL, + [4] = "2:", + [5] = "1:", + [6] = NULL, + [7] = NULL, + [8] = NULL, + [9] = NULL, + [10] = NULL, + [11] = NULL, + [12] = NULL, + [13] = NULL, + [14] = NULL, + [15] = "0:", + [16] = "5:" +}; + +const uint8_t pins[] = { + 15, 5, 4, 0, 2, 16 +}; + +const char *f_gpio_to_volume(uint8_t gpio) +{ + return gpio > 16 ? NULL : volumes[gpio]; +} + +uint8_t f_drv_to_gpio(uint8_t drv) +{ + return pins[drv]; +} diff --git a/extras/fatfs/volumes.h b/extras/fatfs/volumes.h new file mode 100644 index 0000000..bf39117 --- /dev/null +++ b/extras/fatfs/volumes.h @@ -0,0 +1,16 @@ +/* + * FatFs integration to esp-open-rtos + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_FATFS_VOLUMES_H_ +#define _EXTRAS_FATFS_VOLUMES_H_ + +#include + +const char *f_gpio_to_volume(uint8_t gpio); +uint8_t f_drv_to_gpio(uint8_t drv); + +#endif /* _EXTRAS_FATFS_VOLUMES_H_ */ From 7bab80c33d1dfd09973850b8b0b33162c9c6c93d Mon Sep 17 00:00:00 2001 From: OurAirQuality Date: Fri, 21 Oct 2016 20:40:36 +1100 Subject: [PATCH 089/349] FreeRTOS v9.0.0 upgrade --- FreeRTOS/Source/croutine.c | 146 +- FreeRTOS/Source/event_groups.c | 752 ++++ FreeRTOS/Source/include/FreeRTOS.h | 685 ++- FreeRTOS/Source/include/FreeRTOSConfig.h | 11 +- FreeRTOS/Source/include/StackMacros.h | 166 +- FreeRTOS/Source/include/croutine.h | 185 +- .../Source/include/deprecated_definitions.h | 321 ++ FreeRTOS/Source/include/event_groups.h | 797 ++++ FreeRTOS/Source/include/list.h | 215 +- FreeRTOS/Source/include/mpu_prototypes.h | 177 + FreeRTOS/Source/include/mpu_wrappers.h | 209 +- FreeRTOS/Source/include/portable.h | 364 +- FreeRTOS/Source/include/projdefs.h | 155 +- FreeRTOS/Source/include/queue.h | 613 ++- FreeRTOS/Source/include/semphr.h | 812 +++- FreeRTOS/Source/include/task.h | 1212 ++++- FreeRTOS/Source/include/timers.h | 685 ++- FreeRTOS/Source/list.c | 171 +- FreeRTOS/Source/portable/esp8266/port.c | 8 + FreeRTOS/Source/portable/esp8266/portmacro.h | 8 +- FreeRTOS/Source/queue.c | 1740 +++++--- FreeRTOS/Source/tasks.c | 3912 ++++++++++++----- FreeRTOS/Source/timers.c | 839 +++- README.md | 2 +- core/app_main.c | 2 +- examples/access_point/access_point.c | 2 +- examples/aws_iot/aws_iot.c | 6 +- examples/blink/blink.c | 4 +- examples/bmp180_i2c/bmp180_i2c.c | 4 +- examples/bmp280/bmp280_example.c | 4 +- examples/button/button.c | 4 +- examples/dht_sensor/dht_sensor.c | 2 +- .../ds18b20_broadcaster/ds18b20_broadcaster.c | 2 +- examples/ds18b20_onewire/ds18b20_onewire.c | 2 +- examples/ds3231_test/ds3231_test.c | 2 +- examples/experiments/timers/timers.c | 2 +- .../unaligned_load/unaligned_load.c | 2 +- examples/fatfs_rtc/main.c | 2 +- examples/http_get/http_get.c | 2 +- examples/http_get_mbedtls/http_get_mbedtls.c | 2 +- examples/i2s_audio/i2s_audio_example.c | 2 +- examples/json_jsmn_simple/json_jsmn_simple.c | 2 +- examples/mqtt_client/mqtt_client.c | 6 +- examples/ota_basic/ota_basic.c | 2 +- examples/posix_fs/posix_fs_example.c | 2 +- examples/pwm_test/pwm_test.c | 2 +- examples/simple/simple.c | 4 +- examples/simple_cplusplus/simple.cpp | 2 +- examples/sntp/sntp_example.c | 2 +- examples/spiffs/spiffs_example.c | 2 +- examples/sysparam_editor/sysparam_editor.c | 2 +- examples/tls_server/tls_server.c | 2 +- examples/tsl2561/tsl2561_example.c | 2 +- examples/ws2812_i2s/ws2812_i2s_colour_loop.c | 2 +- examples/ws2812_rainbow/ws2812_rainbow.c | 2 +- extras/bmp180/bmp180.c | 2 +- extras/cpp_support/include/task.hpp | 2 +- extras/dhcpserver/dhcpserver.c | 2 +- extras/rboot-ota/ota-tftp.c | 2 +- lwip/sys_arch.c | 2 +- 60 files changed, 10623 insertions(+), 3652 deletions(-) create mode 100644 FreeRTOS/Source/event_groups.c create mode 100644 FreeRTOS/Source/include/deprecated_definitions.h create mode 100644 FreeRTOS/Source/include/event_groups.h create mode 100644 FreeRTOS/Source/include/mpu_prototypes.h diff --git a/FreeRTOS/Source/croutine.c b/FreeRTOS/Source/croutine.c index b95ff45..993e09b 100644 --- a/FreeRTOS/Source/croutine.c +++ b/FreeRTOS/Source/croutine.c @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -66,6 +71,9 @@ #include "task.h" #include "croutine.h" +/* Remove the whole file is co-routines are not being used. */ +#if( configUSE_CO_ROUTINES != 0 ) + /* * Some kernel aware debuggers require data to be viewed to be global, rather * than file scope. @@ -76,17 +84,17 @@ /* Lists for ready and blocked co-routines. --------------------*/ -static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */ -static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */ -static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */ -static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */ -static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */ -static xList xPendingReadyCoRoutineList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */ +static List_t pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */ +static List_t xDelayedCoRoutineList1; /*< Delayed co-routines. */ +static List_t xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */ +static List_t * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */ +static List_t * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */ +static List_t xPendingReadyCoRoutineList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */ /* Other file private variables. --------------------------------*/ -corCRCB * pxCurrentCoRoutine = NULL; -static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0; -static portTickType xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0; +CRCB_t * pxCurrentCoRoutine = NULL; +static UBaseType_t uxTopCoRoutineReadyPriority = 0; +static TickType_t xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0; /* The initial state of the co-routine when it is created. */ #define corINITIAL_STATE ( 0 ) @@ -104,7 +112,7 @@ static portTickType xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = { \ uxTopCoRoutineReadyPriority = pxCRCB->uxPriority; \ } \ - vListInsertEnd( ( xList * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \ + vListInsertEnd( ( List_t * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \ } /* @@ -133,13 +141,13 @@ static void prvCheckDelayedList( void ); /*-----------------------------------------------------------*/ -signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex ) +BaseType_t xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, UBaseType_t uxPriority, UBaseType_t uxIndex ) { -signed portBASE_TYPE xReturn; -corCRCB *pxCoRoutine; +BaseType_t xReturn; +CRCB_t *pxCoRoutine; /* Allocate the memory that will store the co-routine control block. */ - pxCoRoutine = ( corCRCB * ) pvPortMalloc( sizeof( corCRCB ) ); + pxCoRoutine = ( CRCB_t * ) pvPortMalloc( sizeof( CRCB_t ) ); if( pxCoRoutine ) { /* If pxCurrentCoRoutine is NULL then this is the first co-routine to @@ -166,14 +174,14 @@ corCRCB *pxCoRoutine; vListInitialiseItem( &( pxCoRoutine->xGenericListItem ) ); vListInitialiseItem( &( pxCoRoutine->xEventListItem ) ); - /* Set the co-routine control block as a link back from the xListItem. + /* Set the co-routine control block as a link back from the ListItem_t. This is so we can get back to the containing CRCB from a generic item in a list. */ listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xGenericListItem ), pxCoRoutine ); listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xEventListItem ), pxCoRoutine ); /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxCoRoutine->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority ); + listSET_LIST_ITEM_VALUE( &( pxCoRoutine->xEventListItem ), ( ( TickType_t ) configMAX_CO_ROUTINE_PRIORITIES - ( TickType_t ) uxPriority ) ); /* Now the co-routine has been initialised it can be added to the ready list at the correct priority. */ @@ -190,9 +198,9 @@ corCRCB *pxCoRoutine; } /*-----------------------------------------------------------*/ -void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList ) +void vCoRoutineAddToDelayedList( TickType_t xTicksToDelay, List_t *pxEventList ) { -portTickType xTimeToWake; +TickType_t xTimeToWake; /* Calculate the time to wake - this may overflow but this is not a problem. */ @@ -201,7 +209,7 @@ portTickType xTimeToWake; /* We must remove ourselves from the ready list before adding ourselves to the blocked list as the same list item is used for both lists. */ - ( void ) uxListRemove( ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); + ( void ) uxListRemove( ( ListItem_t * ) &( pxCurrentCoRoutine->xGenericListItem ) ); /* The list item will be inserted in wake time order. */ listSET_LIST_ITEM_VALUE( &( pxCurrentCoRoutine->xGenericListItem ), xTimeToWake ); @@ -210,13 +218,13 @@ portTickType xTimeToWake; { /* Wake time has overflowed. Place this item in the overflow list. */ - vListInsert( ( xList * ) pxOverflowDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); + vListInsert( ( List_t * ) pxOverflowDelayedCoRoutineList, ( ListItem_t * ) &( pxCurrentCoRoutine->xGenericListItem ) ); } else { /* The wake time has not overflowed, so we can use the current block list. */ - vListInsert( ( xList * ) pxDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); + vListInsert( ( List_t * ) pxDelayedCoRoutineList, ( ListItem_t * ) &( pxCurrentCoRoutine->xGenericListItem ) ); } if( pxEventList ) @@ -235,12 +243,12 @@ static void prvCheckPendingReadyList( void ) the ready lists itself. */ while( listLIST_IS_EMPTY( &xPendingReadyCoRoutineList ) == pdFALSE ) { - corCRCB *pxUnblockedCRCB; + CRCB_t *pxUnblockedCRCB; /* The pending ready list can be accessed by an ISR. */ portDISABLE_INTERRUPTS(); { - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) ); + pxUnblockedCRCB = ( CRCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) ); ( void ) uxListRemove( &( pxUnblockedCRCB->xEventListItem ) ); } portENABLE_INTERRUPTS(); @@ -253,7 +261,7 @@ static void prvCheckPendingReadyList( void ) static void prvCheckDelayedList( void ) { -corCRCB *pxCRCB; +CRCB_t *pxCRCB; xPassedTicks = xTaskGetTickCount() - xLastTickCount; while( xPassedTicks ) @@ -264,7 +272,7 @@ corCRCB *pxCRCB; /* If the tick count has overflowed we need to swap the ready lists. */ if( xCoRoutineTickCount == 0 ) { - xList * pxTemp; + List_t * pxTemp; /* Tick count has overflowed so we need to swap the delay lists. If there are any items in pxDelayedCoRoutineList here then there is an error! */ @@ -276,7 +284,7 @@ corCRCB *pxCRCB; /* See if this tick has made a timeout expire. */ while( listLIST_IS_EMPTY( pxDelayedCoRoutineList ) == pdFALSE ) { - pxCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedCoRoutineList ); + pxCRCB = ( CRCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedCoRoutineList ); if( xCoRoutineTickCount < listGET_LIST_ITEM_VALUE( &( pxCRCB->xGenericListItem ) ) ) { @@ -291,7 +299,7 @@ corCRCB *pxCRCB; have been moved to the pending ready list and the following line is still valid. Also the pvContainer parameter will have been set to NULL so the following lines are also valid. */ - uxListRemove( &( pxCRCB->xGenericListItem ) ); + ( void ) uxListRemove( &( pxCRCB->xGenericListItem ) ); /* Is the co-routine waiting on an event also? */ if( pxCRCB->xEventListItem.pvContainer ) @@ -341,16 +349,16 @@ void vCoRoutineSchedule( void ) static void prvInitialiseCoRoutineLists( void ) { -unsigned portBASE_TYPE uxPriority; +UBaseType_t uxPriority; for( uxPriority = 0; uxPriority < configMAX_CO_ROUTINE_PRIORITIES; uxPriority++ ) { - vListInitialise( ( xList * ) &( pxReadyCoRoutineLists[ uxPriority ] ) ); + vListInitialise( ( List_t * ) &( pxReadyCoRoutineLists[ uxPriority ] ) ); } - vListInitialise( ( xList * ) &xDelayedCoRoutineList1 ); - vListInitialise( ( xList * ) &xDelayedCoRoutineList2 ); - vListInitialise( ( xList * ) &xPendingReadyCoRoutineList ); + vListInitialise( ( List_t * ) &xDelayedCoRoutineList1 ); + vListInitialise( ( List_t * ) &xDelayedCoRoutineList2 ); + vListInitialise( ( List_t * ) &xPendingReadyCoRoutineList ); /* Start with pxDelayedCoRoutineList using list1 and the pxOverflowDelayedCoRoutineList using list2. */ @@ -359,17 +367,17 @@ unsigned portBASE_TYPE uxPriority; } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList ) +BaseType_t xCoRoutineRemoveFromEventList( const List_t *pxEventList ) { -corCRCB *pxUnblockedCRCB; -signed portBASE_TYPE xReturn; +CRCB_t *pxUnblockedCRCB; +BaseType_t xReturn; /* This function is called from within an interrupt. It can only access event lists and the pending ready list. This function assumes that a check has already been made to ensure pxEventList is not empty. */ - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); + pxUnblockedCRCB = ( CRCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); ( void ) uxListRemove( &( pxUnblockedCRCB->xEventListItem ) ); - vListInsertEnd( ( xList * ) &( xPendingReadyCoRoutineList ), &( pxUnblockedCRCB->xEventListItem ) ); + vListInsertEnd( ( List_t * ) &( xPendingReadyCoRoutineList ), &( pxUnblockedCRCB->xEventListItem ) ); if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority ) { @@ -383,3 +391,5 @@ signed portBASE_TYPE xReturn; return xReturn; } +#endif /* configUSE_CO_ROUTINES == 0 */ + diff --git a/FreeRTOS/Source/event_groups.c b/FreeRTOS/Source/event_groups.c new file mode 100644 index 0000000..b8df5fd --- /dev/null +++ b/FreeRTOS/Source/event_groups.c @@ -0,0 +1,752 @@ +/* + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. + + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available on the following + link: http://www.freertos.org/a00114.html + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * + * * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * + * * + *************************************************************************** + + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + +/* Standard includes. */ +#include + +/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining +all the API functions to use the MPU wrappers. That should only be done when +task.h is included from an application file. */ +#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE + +/* FreeRTOS includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" +#include "event_groups.h" + +/* Lint e961 and e750 are suppressed as a MISRA exception justified because the +MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the +header files above, but not in this file, in order to generate the correct +privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ + +/* The following bit fields convey control information in a task's event list +item value. It is important they don't clash with the +taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */ +#if configUSE_16_BIT_TICKS == 1 + #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100U + #define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200U + #define eventWAIT_FOR_ALL_BITS 0x0400U + #define eventEVENT_BITS_CONTROL_BYTES 0xff00U +#else + #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x01000000UL + #define eventUNBLOCKED_DUE_TO_BIT_SET 0x02000000UL + #define eventWAIT_FOR_ALL_BITS 0x04000000UL + #define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL +#endif + +typedef struct xEventGroupDefinition +{ + EventBits_t uxEventBits; + List_t xTasksWaitingForBits; /*< List of tasks waiting for a bit to be set. */ + + #if( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxEventGroupNumber; + #endif + + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucStaticallyAllocated; /*< Set to pdTRUE if the event group is statically allocated to ensure no attempt is made to free the memory. */ + #endif +} EventGroup_t; + +/*-----------------------------------------------------------*/ + +/* + * Test the bits set in uxCurrentEventBits to see if the wait condition is met. + * The wait condition is defined by xWaitForAllBits. If xWaitForAllBits is + * pdTRUE then the wait condition is met if all the bits set in uxBitsToWaitFor + * are also set in uxCurrentEventBits. If xWaitForAllBits is pdFALSE then the + * wait condition is met if any of the bits set in uxBitsToWait for are also set + * in uxCurrentEventBits. + */ +static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits ) PRIVILEGED_FUNCTION; + +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + + EventGroupHandle_t xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ) + { + EventGroup_t *pxEventBits; + + /* A StaticEventGroup_t object must be provided. */ + configASSERT( pxEventGroupBuffer ); + + /* The user has provided a statically allocated event group - use it. */ + pxEventBits = ( EventGroup_t * ) pxEventGroupBuffer; /*lint !e740 EventGroup_t and StaticEventGroup_t are guaranteed to have the same size and alignment requirement - checked by configASSERT(). */ + + if( pxEventBits != NULL ) + { + pxEventBits->uxEventBits = 0; + vListInitialise( &( pxEventBits->xTasksWaitingForBits ) ); + + #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + { + /* Both static and dynamic allocation can be used, so note that + this event group was created statically in case the event group + is later deleted. */ + pxEventBits->ucStaticallyAllocated = pdTRUE; + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + + traceEVENT_GROUP_CREATE( pxEventBits ); + } + else + { + traceEVENT_GROUP_CREATE_FAILED(); + } + + return ( EventGroupHandle_t ) pxEventBits; + } + +#endif /* configSUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + + EventGroupHandle_t xEventGroupCreate( void ) + { + EventGroup_t *pxEventBits; + + /* Allocate the event group. */ + pxEventBits = ( EventGroup_t * ) pvPortMalloc( sizeof( EventGroup_t ) ); + + if( pxEventBits != NULL ) + { + pxEventBits->uxEventBits = 0; + vListInitialise( &( pxEventBits->xTasksWaitingForBits ) ); + + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + { + /* Both static and dynamic allocation can be used, so note this + event group was allocated statically in case the event group is + later deleted. */ + pxEventBits->ucStaticallyAllocated = pdFALSE; + } + #endif /* configSUPPORT_STATIC_ALLOCATION */ + + traceEVENT_GROUP_CREATE( pxEventBits ); + } + else + { + traceEVENT_GROUP_CREATE_FAILED(); + } + + return ( EventGroupHandle_t ) pxEventBits; + } + +#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ) +{ +EventBits_t uxOriginalBitValue, uxReturn; +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +BaseType_t xAlreadyYielded; +BaseType_t xTimeoutOccurred = pdFALSE; + + configASSERT( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); + configASSERT( uxBitsToWaitFor != 0 ); + #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) + { + configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); + } + #endif + + vTaskSuspendAll(); + { + uxOriginalBitValue = pxEventBits->uxEventBits; + + ( void ) xEventGroupSetBits( xEventGroup, uxBitsToSet ); + + if( ( ( uxOriginalBitValue | uxBitsToSet ) & uxBitsToWaitFor ) == uxBitsToWaitFor ) + { + /* All the rendezvous bits are now set - no need to block. */ + uxReturn = ( uxOriginalBitValue | uxBitsToSet ); + + /* Rendezvous always clear the bits. They will have been cleared + already unless this is the only task in the rendezvous. */ + pxEventBits->uxEventBits &= ~uxBitsToWaitFor; + + xTicksToWait = 0; + } + else + { + if( xTicksToWait != ( TickType_t ) 0 ) + { + traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor ); + + /* Store the bits that the calling task is waiting for in the + task's event list item so the kernel knows when a match is + found. Then enter the blocked state. */ + vTaskPlaceOnUnorderedEventList( &( pxEventBits->xTasksWaitingForBits ), ( uxBitsToWaitFor | eventCLEAR_EVENTS_ON_EXIT_BIT | eventWAIT_FOR_ALL_BITS ), xTicksToWait ); + + /* This assignment is obsolete as uxReturn will get set after + the task unblocks, but some compilers mistakenly generate a + warning about uxReturn being returned without being set if the + assignment is omitted. */ + uxReturn = 0; + } + else + { + /* The rendezvous bits were not set, but no block time was + specified - just return the current event bit value. */ + uxReturn = pxEventBits->uxEventBits; + } + } + } + xAlreadyYielded = xTaskResumeAll(); + + if( xTicksToWait != ( TickType_t ) 0 ) + { + if( xAlreadyYielded == pdFALSE ) + { + portYIELD_WITHIN_API(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* The task blocked to wait for its required bits to be set - at this + point either the required bits were set or the block time expired. If + the required bits were set they will have been stored in the task's + event list item, and they should now be retrieved then cleared. */ + uxReturn = uxTaskResetEventItemValue(); + + if( ( uxReturn & eventUNBLOCKED_DUE_TO_BIT_SET ) == ( EventBits_t ) 0 ) + { + /* The task timed out, just return the current event bit value. */ + taskENTER_CRITICAL(); + { + uxReturn = pxEventBits->uxEventBits; + + /* Although the task got here because it timed out before the + bits it was waiting for were set, it is possible that since it + unblocked another task has set the bits. If this is the case + then it needs to clear the bits before exiting. */ + if( ( uxReturn & uxBitsToWaitFor ) == uxBitsToWaitFor ) + { + pxEventBits->uxEventBits &= ~uxBitsToWaitFor; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + xTimeoutOccurred = pdTRUE; + } + else + { + /* The task unblocked because the bits were set. */ + } + + /* Control bits might be set as the task had blocked should not be + returned. */ + uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES; + } + + traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ); + + return uxReturn; +} +/*-----------------------------------------------------------*/ + +EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ) +{ +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +EventBits_t uxReturn, uxControlBits = 0; +BaseType_t xWaitConditionMet, xAlreadyYielded; +BaseType_t xTimeoutOccurred = pdFALSE; + + /* Check the user is not attempting to wait on the bits used by the kernel + itself, and that at least one bit is being requested. */ + configASSERT( xEventGroup ); + configASSERT( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); + configASSERT( uxBitsToWaitFor != 0 ); + #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) + { + configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); + } + #endif + + vTaskSuspendAll(); + { + const EventBits_t uxCurrentEventBits = pxEventBits->uxEventBits; + + /* Check to see if the wait condition is already met or not. */ + xWaitConditionMet = prvTestWaitCondition( uxCurrentEventBits, uxBitsToWaitFor, xWaitForAllBits ); + + if( xWaitConditionMet != pdFALSE ) + { + /* The wait condition has already been met so there is no need to + block. */ + uxReturn = uxCurrentEventBits; + xTicksToWait = ( TickType_t ) 0; + + /* Clear the wait bits if requested to do so. */ + if( xClearOnExit != pdFALSE ) + { + pxEventBits->uxEventBits &= ~uxBitsToWaitFor; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else if( xTicksToWait == ( TickType_t ) 0 ) + { + /* The wait condition has not been met, but no block time was + specified, so just return the current value. */ + uxReturn = uxCurrentEventBits; + } + else + { + /* The task is going to block to wait for its required bits to be + set. uxControlBits are used to remember the specified behaviour of + this call to xEventGroupWaitBits() - for use when the event bits + unblock the task. */ + if( xClearOnExit != pdFALSE ) + { + uxControlBits |= eventCLEAR_EVENTS_ON_EXIT_BIT; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + if( xWaitForAllBits != pdFALSE ) + { + uxControlBits |= eventWAIT_FOR_ALL_BITS; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* Store the bits that the calling task is waiting for in the + task's event list item so the kernel knows when a match is + found. Then enter the blocked state. */ + vTaskPlaceOnUnorderedEventList( &( pxEventBits->xTasksWaitingForBits ), ( uxBitsToWaitFor | uxControlBits ), xTicksToWait ); + + /* This is obsolete as it will get set after the task unblocks, but + some compilers mistakenly generate a warning about the variable + being returned without being set if it is not done. */ + uxReturn = 0; + + traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor ); + } + } + xAlreadyYielded = xTaskResumeAll(); + + if( xTicksToWait != ( TickType_t ) 0 ) + { + if( xAlreadyYielded == pdFALSE ) + { + portYIELD_WITHIN_API(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* The task blocked to wait for its required bits to be set - at this + point either the required bits were set or the block time expired. If + the required bits were set they will have been stored in the task's + event list item, and they should now be retrieved then cleared. */ + uxReturn = uxTaskResetEventItemValue(); + + if( ( uxReturn & eventUNBLOCKED_DUE_TO_BIT_SET ) == ( EventBits_t ) 0 ) + { + taskENTER_CRITICAL(); + { + /* The task timed out, just return the current event bit value. */ + uxReturn = pxEventBits->uxEventBits; + + /* It is possible that the event bits were updated between this + task leaving the Blocked state and running again. */ + if( prvTestWaitCondition( uxReturn, uxBitsToWaitFor, xWaitForAllBits ) != pdFALSE ) + { + if( xClearOnExit != pdFALSE ) + { + pxEventBits->uxEventBits &= ~uxBitsToWaitFor; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + /* Prevent compiler warnings when trace macros are not used. */ + xTimeoutOccurred = pdFALSE; + } + else + { + /* The task unblocked because the bits were set. */ + } + + /* The task blocked so control bits may have been set. */ + uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES; + } + traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ); + + return uxReturn; +} +/*-----------------------------------------------------------*/ + +EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) +{ +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +EventBits_t uxReturn; + + /* Check the user is not attempting to clear the bits used by the kernel + itself. */ + configASSERT( xEventGroup ); + configASSERT( ( uxBitsToClear & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); + + taskENTER_CRITICAL(); + { + traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear ); + + /* The value returned is the event group value prior to the bits being + cleared. */ + uxReturn = pxEventBits->uxEventBits; + + /* Clear the bits. */ + pxEventBits->uxEventBits &= ~uxBitsToClear; + } + taskEXIT_CRITICAL(); + + return uxReturn; +} +/*-----------------------------------------------------------*/ + +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) + + BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) + { + BaseType_t xReturn; + + traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear ); + xReturn = xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL ); + + return xReturn; + } + +#endif +/*-----------------------------------------------------------*/ + +EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) +{ +UBaseType_t uxSavedInterruptStatus; +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +EventBits_t uxReturn; + + uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); + { + uxReturn = pxEventBits->uxEventBits; + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return uxReturn; +} +/*-----------------------------------------------------------*/ + +EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) +{ +ListItem_t *pxListItem, *pxNext; +ListItem_t const *pxListEnd; +List_t *pxList; +EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits; +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +BaseType_t xMatchFound = pdFALSE; + + /* Check the user is not attempting to set the bits used by the kernel + itself. */ + configASSERT( xEventGroup ); + configASSERT( ( uxBitsToSet & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); + + pxList = &( pxEventBits->xTasksWaitingForBits ); + pxListEnd = listGET_END_MARKER( pxList ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + vTaskSuspendAll(); + { + traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet ); + + pxListItem = listGET_HEAD_ENTRY( pxList ); + + /* Set the bits. */ + pxEventBits->uxEventBits |= uxBitsToSet; + + /* See if the new bit value should unblock any tasks. */ + while( pxListItem != pxListEnd ) + { + pxNext = listGET_NEXT( pxListItem ); + uxBitsWaitedFor = listGET_LIST_ITEM_VALUE( pxListItem ); + xMatchFound = pdFALSE; + + /* Split the bits waited for from the control bits. */ + uxControlBits = uxBitsWaitedFor & eventEVENT_BITS_CONTROL_BYTES; + uxBitsWaitedFor &= ~eventEVENT_BITS_CONTROL_BYTES; + + if( ( uxControlBits & eventWAIT_FOR_ALL_BITS ) == ( EventBits_t ) 0 ) + { + /* Just looking for single bit being set. */ + if( ( uxBitsWaitedFor & pxEventBits->uxEventBits ) != ( EventBits_t ) 0 ) + { + xMatchFound = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else if( ( uxBitsWaitedFor & pxEventBits->uxEventBits ) == uxBitsWaitedFor ) + { + /* All bits are set. */ + xMatchFound = pdTRUE; + } + else + { + /* Need all bits to be set, but not all the bits were set. */ + } + + if( xMatchFound != pdFALSE ) + { + /* The bits match. Should the bits be cleared on exit? */ + if( ( uxControlBits & eventCLEAR_EVENTS_ON_EXIT_BIT ) != ( EventBits_t ) 0 ) + { + uxBitsToClear |= uxBitsWaitedFor; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* Store the actual event flag value in the task's event list + item before removing the task from the event list. The + eventUNBLOCKED_DUE_TO_BIT_SET bit is set so the task knows + that is was unblocked due to its required bits matching, rather + than because it timed out. */ + ( void ) xTaskRemoveFromUnorderedEventList( pxListItem, pxEventBits->uxEventBits | eventUNBLOCKED_DUE_TO_BIT_SET ); + } + + /* Move onto the next list item. Note pxListItem->pxNext is not + used here as the list item may have been removed from the event list + and inserted into the ready/pending reading list. */ + pxListItem = pxNext; + } + + /* Clear any bits that matched when the eventCLEAR_EVENTS_ON_EXIT_BIT + bit was set in the control word. */ + pxEventBits->uxEventBits &= ~uxBitsToClear; + } + ( void ) xTaskResumeAll(); + + return pxEventBits->uxEventBits; +} +/*-----------------------------------------------------------*/ + +void vEventGroupDelete( EventGroupHandle_t xEventGroup ) +{ +EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; +const List_t *pxTasksWaitingForBits = &( pxEventBits->xTasksWaitingForBits ); + + vTaskSuspendAll(); + { + traceEVENT_GROUP_DELETE( xEventGroup ); + + while( listCURRENT_LIST_LENGTH( pxTasksWaitingForBits ) > ( UBaseType_t ) 0 ) + { + /* Unblock the task, returning 0 as the event list is being deleted + and cannot therefore have any bits set. */ + configASSERT( pxTasksWaitingForBits->xListEnd.pxNext != ( ListItem_t * ) &( pxTasksWaitingForBits->xListEnd ) ); + ( void ) xTaskRemoveFromUnorderedEventList( pxTasksWaitingForBits->xListEnd.pxNext, eventUNBLOCKED_DUE_TO_BIT_SET ); + } + + #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) ) + { + /* The event group can only have been allocated dynamically - free + it again. */ + vPortFree( pxEventBits ); + } + #elif( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + { + /* The event group could have been allocated statically or + dynamically, so check before attempting to free the memory. */ + if( pxEventBits->ucStaticallyAllocated == ( uint8_t ) pdFALSE ) + { + vPortFree( pxEventBits ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + } + ( void ) xTaskResumeAll(); +} +/*-----------------------------------------------------------*/ + +/* For internal use only - execute a 'set bits' command that was pended from +an interrupt. */ +void vEventGroupSetBitsCallback( void *pvEventGroup, const uint32_t ulBitsToSet ) +{ + ( void ) xEventGroupSetBits( pvEventGroup, ( EventBits_t ) ulBitsToSet ); +} +/*-----------------------------------------------------------*/ + +/* For internal use only - execute a 'clear bits' command that was pended from +an interrupt. */ +void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToClear ) +{ + ( void ) xEventGroupClearBits( pvEventGroup, ( EventBits_t ) ulBitsToClear ); +} +/*-----------------------------------------------------------*/ + +static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits ) +{ +BaseType_t xWaitConditionMet = pdFALSE; + + if( xWaitForAllBits == pdFALSE ) + { + /* Task only has to wait for one bit within uxBitsToWaitFor to be + set. Is one already set? */ + if( ( uxCurrentEventBits & uxBitsToWaitFor ) != ( EventBits_t ) 0 ) + { + xWaitConditionMet = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + /* Task has to wait for all the bits in uxBitsToWaitFor to be set. + Are they set already? */ + if( ( uxCurrentEventBits & uxBitsToWaitFor ) == uxBitsToWaitFor ) + { + xWaitConditionMet = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + return xWaitConditionMet; +} +/*-----------------------------------------------------------*/ + +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) + + BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken ) + { + BaseType_t xReturn; + + traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet ); + xReturn = xTimerPendFunctionCallFromISR( vEventGroupSetBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToSet, pxHigherPriorityTaskWoken ); + + return xReturn; + } + +#endif +/*-----------------------------------------------------------*/ + +#if (configUSE_TRACE_FACILITY == 1) + + UBaseType_t uxEventGroupGetNumber( void* xEventGroup ) + { + UBaseType_t xReturn; + EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; + + if( xEventGroup == NULL ) + { + xReturn = 0; + } + else + { + xReturn = pxEventBits->uxEventGroupNumber; + } + + return xReturn; + } + +#endif + diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h index 3556bb4..63a08b3 100644 --- a/FreeRTOS/Source/include/FreeRTOS.h +++ b/FreeRTOS/Source/include/FreeRTOS.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -65,92 +70,116 @@ #ifndef INC_FREERTOS_H #define INC_FREERTOS_H - /* * Include the generic headers required for the FreeRTOS port being used. */ #include -/* Basic FreeRTOS definitions. */ -#include "projdefs.h" +/* + * If stdint.h cannot be located then: + * + If using GCC ensure the -nostdint options is *not* being used. + * + Ensure the project's include path includes the directory in which your + * compiler stores stdint.h. + * + Set any compiler options necessary for it to support C99, as technically + * stdint.h is only mandatory with C99 (FreeRTOS does not require C99 in any + * other way). + * + The FreeRTOS download includes a simple stdint.h definition that can be + * used in cases where none is provided by the compiler. The files only + * contains the typedefs required to build FreeRTOS. Read the instructions + * in FreeRTOS/source/stdint.readme for more information. + */ +#include /* READ COMMENT ABOVE. */ + +#ifdef __cplusplus +extern "C" { +#endif /* Application specific configuration options. */ #include -/* configUSE_PORT_OPTIMISED_TASK_SELECTION must be defined before portable.h -is included as it is used by the port layer. */ -#ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION - #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 -#endif +/* Basic FreeRTOS definitions. */ +#include "projdefs.h" /* Definitions specific to the port being used. */ #include "portable.h" +/* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */ +#ifndef configUSE_NEWLIB_REENTRANT + #define configUSE_NEWLIB_REENTRANT 0 +#endif -/* Defines the prototype to which the application task hook function must -conform. */ -typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); - - - - - +/* Required if struct _reent is used. */ +#if ( configUSE_NEWLIB_REENTRANT == 1 ) + #include +#endif /* * Check all the required application specific macros have been defined. * These macros are application specific and (as downloaded) are defined * within FreeRTOSConfig.h. */ +#ifndef configMINIMAL_STACK_SIZE + #error Missing definition: configMINIMAL_STACK_SIZE must be defined in FreeRTOSConfig.h. configMINIMAL_STACK_SIZE defines the size (in words) of the stack allocated to the idle task. Refer to the demo project provided for your port for a suitable value. +#endif + +#ifndef configMAX_PRIORITIES + #error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details. +#endif + #ifndef configUSE_PREEMPTION - #error Missing definition: configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. + #error Missing definition: configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. #endif #ifndef configUSE_IDLE_HOOK - #error Missing definition: configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. + #error Missing definition: configUSE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. #endif #ifndef configUSE_TICK_HOOK - #error Missing definition: configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_CO_ROUTINES - #error Missing definition: configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskPrioritySet - #error Missing definition: INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_uxTaskPriorityGet - #error Missing definition: INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelete - #error Missing definition: INCLUDE_vTaskDelete should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskSuspend - #error Missing definition: INCLUDE_vTaskSuspend should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelayUntil - #error Missing definition: INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelay - #error Missing definition: INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. + #error Missing definition: configUSE_TICK_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. #endif #ifndef configUSE_16_BIT_TICKS - #error Missing definition: configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. + #error Missing definition: configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. +#endif + +#ifndef configMAX_PRIORITIES + #error configMAX_PRIORITIES must be defined to be greater than or equal to 1. +#endif + +#ifndef configUSE_CO_ROUTINES + #define configUSE_CO_ROUTINES 0 +#endif + +#ifndef INCLUDE_vTaskPrioritySet + #define INCLUDE_vTaskPrioritySet 0 +#endif + +#ifndef INCLUDE_uxTaskPriorityGet + #define INCLUDE_uxTaskPriorityGet 0 +#endif + +#ifndef INCLUDE_vTaskDelete + #define INCLUDE_vTaskDelete 0 +#endif + +#ifndef INCLUDE_vTaskSuspend + #define INCLUDE_vTaskSuspend 0 +#endif + +#ifndef INCLUDE_vTaskDelayUntil + #define INCLUDE_vTaskDelayUntil 0 +#endif + +#ifndef INCLUDE_vTaskDelay + #define INCLUDE_vTaskDelay 0 #endif #ifndef INCLUDE_xTaskGetIdleTaskHandle #define INCLUDE_xTaskGetIdleTaskHandle 0 #endif -#ifndef INCLUDE_xTimerGetTimerDaemonTaskHandle - #define INCLUDE_xTimerGetTimerDaemonTaskHandle 0 +#ifndef INCLUDE_xTaskAbortDelay + #define INCLUDE_xTaskAbortDelay 0 #endif #ifndef INCLUDE_xQueueGetMutexHolder @@ -161,12 +190,8 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder #endif -#ifndef INCLUDE_pcTaskGetTaskName - #define INCLUDE_pcTaskGetTaskName 0 -#endif - -#ifndef configUSE_APPLICATION_TASK_TAG - #define configUSE_APPLICATION_TASK_TAG 0 +#ifndef INCLUDE_xTaskGetHandle + #define INCLUDE_xTaskGetHandle 0 #endif #ifndef INCLUDE_uxTaskGetStackHighWaterMark @@ -177,6 +202,40 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define INCLUDE_eTaskGetState 0 #endif +#ifndef INCLUDE_xTaskResumeFromISR + #define INCLUDE_xTaskResumeFromISR 1 +#endif + +#ifndef INCLUDE_xTimerPendFunctionCall + #define INCLUDE_xTimerPendFunctionCall 0 +#endif + +#ifndef INCLUDE_xTaskGetSchedulerState + #define INCLUDE_xTaskGetSchedulerState 0 +#endif + +#ifndef INCLUDE_xTaskGetCurrentTaskHandle + #define INCLUDE_xTaskGetCurrentTaskHandle 0 +#endif + +#if configUSE_CO_ROUTINES != 0 + #ifndef configMAX_CO_ROUTINE_PRIORITIES + #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1. + #endif +#endif + +#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK + #define configUSE_DAEMON_TASK_STARTUP_HOOK 0 +#endif + +#ifndef configUSE_APPLICATION_TASK_TAG + #define configUSE_APPLICATION_TASK_TAG 0 +#endif + +#ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS + #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0 +#endif + #ifndef configUSE_RECURSIVE_MUTEXES #define configUSE_RECURSIVE_MUTEXES 0 #endif @@ -213,10 +272,6 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h #endif -#ifndef INCLUDE_xTaskResumeFromISR - #define INCLUDE_xTaskResumeFromISR 1 -#endif - #ifndef configASSERT #define configASSERT( x ) #define configASSERT_DEFINED 0 @@ -241,15 +296,6 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #endif /* configUSE_TIMERS */ -#ifndef INCLUDE_xTaskGetSchedulerState - #define INCLUDE_xTaskGetSchedulerState 0 -#endif - -#ifndef INCLUDE_xTaskGetCurrentTaskHandle - #define INCLUDE_xTaskGetCurrentTaskHandle 0 -#endif - - #ifndef portSET_INTERRUPT_MASK_FROM_ISR #define portSET_INTERRUPT_MASK_FROM_ISR() 0 #endif @@ -262,6 +308,10 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define portCLEAN_UP_TCB( pxTCB ) ( void ) pxTCB #endif +#ifndef portPRE_TASK_DELETE_HOOK + #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending ) +#endif + #ifndef portSETUP_TCB #define portSETUP_TCB( pxTCB ) ( void ) pxTCB #endif @@ -273,10 +323,11 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #if ( configQUEUE_REGISTRY_SIZE < 1 ) #define vQueueAddToRegistry( xQueue, pcName ) #define vQueueUnregisterQueue( xQueue ) + #define pcQueueGetName( xQueue ) #endif #ifndef portPOINTER_SIZE_TYPE - #define portPOINTER_SIZE_TYPE unsigned long + #define portPOINTER_SIZE_TYPE uint32_t #endif /* Remove any unused trace macros. */ @@ -363,6 +414,10 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define traceMOVED_TASK_TO_READY_STATE( pxTCB ) #endif +#ifndef tracePOST_MOVED_TASK_TO_READY_STATE + #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB ) +#endif + #ifndef traceQUEUE_CREATE #define traceQUEUE_CREATE( pxNewQueue ) #endif @@ -464,7 +519,7 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #endif #ifndef traceTASK_DELAY_UNTIL - #define traceTASK_DELAY_UNTIL() + #define traceTASK_DELAY_UNTIL( x ) #endif #ifndef traceTASK_DELAY @@ -511,6 +566,98 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue ) #endif +#ifndef traceMALLOC + #define traceMALLOC( pvAddress, uiSize ) +#endif + +#ifndef traceFREE + #define traceFREE( pvAddress, uiSize ) +#endif + +#ifndef traceEVENT_GROUP_CREATE + #define traceEVENT_GROUP_CREATE( xEventGroup ) +#endif + +#ifndef traceEVENT_GROUP_CREATE_FAILED + #define traceEVENT_GROUP_CREATE_FAILED() +#endif + +#ifndef traceEVENT_GROUP_SYNC_BLOCK + #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor ) +#endif + +#ifndef traceEVENT_GROUP_SYNC_END + #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred +#endif + +#ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK + #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor ) +#endif + +#ifndef traceEVENT_GROUP_WAIT_BITS_END + #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ) ( void ) xTimeoutOccurred +#endif + +#ifndef traceEVENT_GROUP_CLEAR_BITS + #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear ) +#endif + +#ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR + #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear ) +#endif + +#ifndef traceEVENT_GROUP_SET_BITS + #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet ) +#endif + +#ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR + #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet ) +#endif + +#ifndef traceEVENT_GROUP_DELETE + #define traceEVENT_GROUP_DELETE( xEventGroup ) +#endif + +#ifndef tracePEND_FUNC_CALL + #define tracePEND_FUNC_CALL(xFunctionToPend, pvParameter1, ulParameter2, ret) +#endif + +#ifndef tracePEND_FUNC_CALL_FROM_ISR + #define tracePEND_FUNC_CALL_FROM_ISR(xFunctionToPend, pvParameter1, ulParameter2, ret) +#endif + +#ifndef traceQUEUE_REGISTRY_ADD + #define traceQUEUE_REGISTRY_ADD(xQueue, pcQueueName) +#endif + +#ifndef traceTASK_NOTIFY_TAKE_BLOCK + #define traceTASK_NOTIFY_TAKE_BLOCK() +#endif + +#ifndef traceTASK_NOTIFY_TAKE + #define traceTASK_NOTIFY_TAKE() +#endif + +#ifndef traceTASK_NOTIFY_WAIT_BLOCK + #define traceTASK_NOTIFY_WAIT_BLOCK() +#endif + +#ifndef traceTASK_NOTIFY_WAIT + #define traceTASK_NOTIFY_WAIT() +#endif + +#ifndef traceTASK_NOTIFY + #define traceTASK_NOTIFY() +#endif + +#ifndef traceTASK_NOTIFY_FROM_ISR + #define traceTASK_NOTIFY_FROM_ISR() +#endif + +#ifndef traceTASK_NOTIFY_GIVE_FROM_ISR + #define traceTASK_NOTIFY_GIVE_FROM_ISR() +#endif + #ifndef configGENERATE_RUN_TIME_STATS #define configGENERATE_RUN_TIME_STATS 0 #endif @@ -538,21 +685,13 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #endif #ifndef portPRIVILEGE_BIT - #define portPRIVILEGE_BIT ( ( unsigned portBASE_TYPE ) 0x00 ) + #define portPRIVILEGE_BIT ( ( UBaseType_t ) 0x00 ) #endif #ifndef portYIELD_WITHIN_API #define portYIELD_WITHIN_API portYIELD #endif -#ifndef pvPortMallocAligned - #define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) ) -#endif - -#ifndef vPortFreeAligned - #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree ) -#endif - #ifndef portSUPPRESS_TICKS_AND_SLEEP #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) #endif @@ -593,10 +732,6 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0 #endif -#ifndef configUSE_NEWLIB_REENTRANT - #define configUSE_NEWLIB_REENTRANT 0 -#endif - #ifndef configUSE_STATS_FORMATTING_FUNCTIONS #define configUSE_STATS_FORMATTING_FUNCTIONS 0 #endif @@ -605,8 +740,324 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() #endif -/* For backward compatability. */ -#define eTaskStateGet eTaskGetState +#ifndef configUSE_TRACE_FACILITY + #define configUSE_TRACE_FACILITY 0 +#endif + +#ifndef mtCOVERAGE_TEST_MARKER + #define mtCOVERAGE_TEST_MARKER() +#endif + +#ifndef mtCOVERAGE_TEST_DELAY + #define mtCOVERAGE_TEST_DELAY() +#endif + +#ifndef portASSERT_IF_IN_ISR + #define portASSERT_IF_IN_ISR() +#endif + +#ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION + #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 +#endif + +#ifndef configAPPLICATION_ALLOCATED_HEAP + #define configAPPLICATION_ALLOCATED_HEAP 0 +#endif + +#ifndef configUSE_TASK_NOTIFICATIONS + #define configUSE_TASK_NOTIFICATIONS 1 +#endif + +#ifndef portTICK_TYPE_IS_ATOMIC + #define portTICK_TYPE_IS_ATOMIC 0 +#endif + +#ifndef configSUPPORT_STATIC_ALLOCATION + /* Defaults to 0 for backward compatibility. */ + #define configSUPPORT_STATIC_ALLOCATION 0 +#endif + +#ifndef configSUPPORT_DYNAMIC_ALLOCATION + /* Defaults to 1 for backward compatibility. */ + #define configSUPPORT_DYNAMIC_ALLOCATION 1 +#endif + +/* Sanity check the configuration. */ +#if( configUSE_TICKLESS_IDLE != 0 ) + #if( INCLUDE_vTaskSuspend != 1 ) + #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0 + #endif /* INCLUDE_vTaskSuspend */ +#endif /* configUSE_TICKLESS_IDLE */ + +#if( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) ) + #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1. +#endif + +#if( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) ) + #error configUSE_MUTEXES must be set to 1 to use recursive mutexes +#endif + +#if( portTICK_TYPE_IS_ATOMIC == 0 ) + /* Either variables of tick type cannot be read atomically, or + portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when + the tick count is returned to the standard critical section macros. */ + #define portTICK_TYPE_ENTER_CRITICAL() portENTER_CRITICAL() + #define portTICK_TYPE_EXIT_CRITICAL() portEXIT_CRITICAL() + #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR() + #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) ) +#else + /* The tick type can be read atomically, so critical sections used when the + tick count is returned can be defined away. */ + #define portTICK_TYPE_ENTER_CRITICAL() + #define portTICK_TYPE_EXIT_CRITICAL() + #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR() 0 + #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x ) ( void ) x +#endif + +/* Definitions to allow backward compatibility with FreeRTOS versions prior to +V8 if desired. */ +#ifndef configENABLE_BACKWARD_COMPATIBILITY + #define configENABLE_BACKWARD_COMPATIBILITY 1 +#endif + +#if configENABLE_BACKWARD_COMPATIBILITY == 1 + #define eTaskStateGet eTaskGetState + #define portTickType TickType_t + #define xTaskHandle TaskHandle_t + #define xQueueHandle QueueHandle_t + #define xSemaphoreHandle SemaphoreHandle_t + #define xQueueSetHandle QueueSetHandle_t + #define xQueueSetMemberHandle QueueSetMemberHandle_t + #define xTimeOutType TimeOut_t + #define xMemoryRegion MemoryRegion_t + #define xTaskParameters TaskParameters_t + #define xTaskStatusType TaskStatus_t + #define xTimerHandle TimerHandle_t + #define xCoRoutineHandle CoRoutineHandle_t + #define pdTASK_HOOK_CODE TaskHookFunction_t + #define portTICK_RATE_MS portTICK_PERIOD_MS + #define pcTaskGetTaskName pcTaskGetName + #define pcTimerGetTimerName pcTimerGetName + #define pcQueueGetQueueName pcQueueGetName + #define vTaskGetTaskInfo vTaskGetInfo + + /* Backward compatibility within the scheduler code only - these definitions + are not really required but are included for completeness. */ + #define tmrTIMER_CALLBACK TimerCallbackFunction_t + #define pdTASK_CODE TaskFunction_t + #define xListItem ListItem_t + #define xList List_t +#endif /* configENABLE_BACKWARD_COMPATIBILITY */ + +#if( configUSE_ALTERNATIVE_API != 0 ) + #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0 +#endif + +/* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even +if floating point hardware is otherwise supported by the FreeRTOS port in use. +This constant is not supported by all FreeRTOS ports that include floating +point support. */ +#ifndef configUSE_TASK_FPU_SUPPORT + #define configUSE_TASK_FPU_SUPPORT 1 +#endif + +/* + * In line with software engineering best practice, FreeRTOS implements a strict + * data hiding policy, so the real structures used by FreeRTOS to maintain the + * state of tasks, queues, semaphores, etc. are not accessible to the application + * code. However, if the application writer wants to statically allocate such + * an object then the size of the object needs to be know. Dummy structures + * that are guaranteed to have the same size and alignment requirements of the + * real objects are used for this purpose. The dummy list and list item + * structures below are used for inclusion in such a dummy structure. + */ +struct xSTATIC_LIST_ITEM +{ + TickType_t xDummy1; + void *pvDummy2[ 4 ]; +}; +typedef struct xSTATIC_LIST_ITEM StaticListItem_t; + +/* See the comments above the struct xSTATIC_LIST_ITEM definition. */ +struct xSTATIC_MINI_LIST_ITEM +{ + TickType_t xDummy1; + void *pvDummy2[ 2 ]; +}; +typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t; + +/* See the comments above the struct xSTATIC_LIST_ITEM definition. */ +typedef struct xSTATIC_LIST +{ + UBaseType_t uxDummy1; + void *pvDummy2; + StaticMiniListItem_t xDummy3; +} StaticList_t; + +/* + * In line with software engineering best practice, especially when supplying a + * library that is likely to change in future versions, FreeRTOS implements a + * strict data hiding policy. This means the Task structure used internally by + * FreeRTOS is not accessible to application code. However, if the application + * writer wants to statically allocate the memory required to create a task then + * the size of the task object needs to be know. The StaticTask_t structure + * below is provided for this purpose. Its sizes and alignment requirements are + * guaranteed to match those of the genuine structure, no matter which + * architecture is being used, and no matter how the values in FreeRTOSConfig.h + * are set. Its contents are somewhat obfuscated in the hope users will + * recognise that it would be unwise to make direct use of the structure members. + */ +typedef struct xSTATIC_TCB +{ + void *pxDummy1; + #if ( portUSING_MPU_WRAPPERS == 1 ) + xMPU_SETTINGS xDummy2; + #endif + StaticListItem_t xDummy3[ 2 ]; + UBaseType_t uxDummy5; + void *pxDummy6; + uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ]; + #if ( portSTACK_GROWTH > 0 ) + void *pxDummy8; + #endif + #if ( portCRITICAL_NESTING_IN_TCB == 1 ) + UBaseType_t uxDummy9; + #endif + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxDummy10[ 2 ]; + #endif + #if ( configUSE_MUTEXES == 1 ) + UBaseType_t uxDummy12[ 2 ]; + #endif + #if ( configUSE_APPLICATION_TASK_TAG == 1 ) + void *pxDummy14; + #endif + #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) + void *pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ]; + #endif + #if ( configGENERATE_RUN_TIME_STATS == 1 ) + uint32_t ulDummy16; + #endif + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + struct _reent xDummy17; + #endif + #if ( configUSE_TASK_NOTIFICATIONS == 1 ) + uint32_t ulDummy18; + uint8_t ucDummy19; + #endif + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t uxDummy20; + #endif + +} StaticTask_t; + +/* + * In line with software engineering best practice, especially when supplying a + * library that is likely to change in future versions, FreeRTOS implements a + * strict data hiding policy. This means the Queue structure used internally by + * FreeRTOS is not accessible to application code. However, if the application + * writer wants to statically allocate the memory required to create a queue + * then the size of the queue object needs to be know. The StaticQueue_t + * structure below is provided for this purpose. Its sizes and alignment + * requirements are guaranteed to match those of the genuine structure, no + * matter which architecture is being used, and no matter how the values in + * FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in the hope + * users will recognise that it would be unwise to make direct use of the + * structure members. + */ +typedef struct xSTATIC_QUEUE +{ + void *pvDummy1[ 3 ]; + + union + { + void *pvDummy2; + UBaseType_t uxDummy2; + } u; + + StaticList_t xDummy3[ 2 ]; + UBaseType_t uxDummy4[ 3 ]; + uint8_t ucDummy5[ 2 ]; + + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucDummy6; + #endif + + #if ( configUSE_QUEUE_SETS == 1 ) + void *pvDummy7; + #endif + + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxDummy8; + uint8_t ucDummy9; + #endif + +} StaticQueue_t; +typedef StaticQueue_t StaticSemaphore_t; + +/* + * In line with software engineering best practice, especially when supplying a + * library that is likely to change in future versions, FreeRTOS implements a + * strict data hiding policy. This means the event group structure used + * internally by FreeRTOS is not accessible to application code. However, if + * the application writer wants to statically allocate the memory required to + * create an event group then the size of the event group object needs to be + * know. The StaticEventGroup_t structure below is provided for this purpose. + * Its sizes and alignment requirements are guaranteed to match those of the + * genuine structure, no matter which architecture is being used, and no matter + * how the values in FreeRTOSConfig.h are set. Its contents are somewhat + * obfuscated in the hope users will recognise that it would be unwise to make + * direct use of the structure members. + */ +typedef struct xSTATIC_EVENT_GROUP +{ + TickType_t xDummy1; + StaticList_t xDummy2; + + #if( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxDummy3; + #endif + + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucDummy4; + #endif + +} StaticEventGroup_t; + +/* + * In line with software engineering best practice, especially when supplying a + * library that is likely to change in future versions, FreeRTOS implements a + * strict data hiding policy. This means the software timer structure used + * internally by FreeRTOS is not accessible to application code. However, if + * the application writer wants to statically allocate the memory required to + * create a software timer then the size of the queue object needs to be know. + * The StaticTimer_t structure below is provided for this purpose. Its sizes + * and alignment requirements are guaranteed to match those of the genuine + * structure, no matter which architecture is being used, and no matter how the + * values in FreeRTOSConfig.h are set. Its contents are somewhat obfuscated in + * the hope users will recognise that it would be unwise to make direct use of + * the structure members. + */ +typedef struct xSTATIC_TIMER +{ + void *pvDummy1; + StaticListItem_t xDummy2; + TickType_t xDummy3; + UBaseType_t uxDummy4; + void *pvDummy5[ 2 ]; + #if( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxDummy6; + #endif + + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucDummy7; + #endif + +} StaticTimer_t; + +#ifdef __cplusplus +} +#endif #endif /* INC_FREERTOS_H */ diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index d886828..fc3b283 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -36,11 +36,11 @@ #ifndef configCPU_CLOCK_HZ /* This is the _default_ clock speed for the CPU. Can be either 80MHz * or 160MHz, and the system will set the clock speed to match at startup. - -Note that it's possible to change the clock speed at runtime, so you -can/should use sdk_system_get_cpu_frequency() in order to determine the -current CPU frequency, in preference to this macro. -*/ + * + * Note that it's possible to change the clock speed at runtime, so you + * can/should use sdk_system_get_cpu_frequency() in order to determine the + * current CPU frequency, in preference to this macro. + */ #define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 ) #endif #ifndef configTICK_RATE_HZ @@ -88,7 +88,6 @@ current CPU frequency, in preference to this macro. #define configUSE_TIMERS 1 #endif - #if configUSE_TIMERS #ifndef configTIMER_TASK_PRIORITY #define configTIMER_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) diff --git a/FreeRTOS/Source/include/StackMacros.h b/FreeRTOS/Source/include/StackMacros.h index 0a099df..13c6b82 100644 --- a/FreeRTOS/Source/include/StackMacros.h +++ b/FreeRTOS/Source/include/StackMacros.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -81,49 +86,31 @@ /*-----------------------------------------------------------*/ -#if( configCHECK_FOR_STACK_OVERFLOW == 0 ) - - /* FreeRTOSConfig.h is not set to check for stack overflows. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 0 */ -/*-----------------------------------------------------------*/ - -#if( configCHECK_FOR_STACK_OVERFLOW == 1 ) - - /* FreeRTOSConfig.h is only set to use the first method of - overflow checking. */ - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH < 0 ) ) +#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) ) /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ + #define taskCHECK_FOR_STACK_OVERFLOW() \ { \ /* Is the currently saved stack pointer within the stack limit? */ \ if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \ { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ } \ } -#endif /* configCHECK_FOR_STACK_OVERFLOW > 0 */ +#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ /*-----------------------------------------------------------*/ -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH > 0 ) ) +#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) ) /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ + #define taskCHECK_FOR_STACK_OVERFLOW() \ { \ \ /* Is the currently saved stack pointer within the stack limit? */ \ if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \ { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ } \ } @@ -132,20 +119,18 @@ #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) ) - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pxCurrentTCB->pxStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack; \ + const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; \ + \ + if( ( pulStack[ 0 ] != ulCheckValue ) || \ + ( pulStack[ 1 ] != ulCheckValue ) || \ + ( pulStack[ 2 ] != ulCheckValue ) || \ + ( pulStack[ 3 ] != ulCheckValue ) ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ } #endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ @@ -153,27 +138,34 @@ #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) ) - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - char *pcEndOfStack = ( char * ) pxCurrentTCB->pxEndOfStack; \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack; \ + static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ + \ + \ + pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ + \ + /* Has the extremity of the task stack ever been written over? */ \ + if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ } #endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ /*-----------------------------------------------------------*/ +/* Remove stack overflow macro if not being used. */ +#ifndef taskCHECK_FOR_STACK_OVERFLOW + #define taskCHECK_FOR_STACK_OVERFLOW() +#endif + + + #endif /* STACK_MACROS_H */ diff --git a/FreeRTOS/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h index 94503e3..4f003a0 100644 --- a/FreeRTOS/Source/include/croutine.h +++ b/FreeRTOS/Source/include/croutine.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -78,28 +83,28 @@ extern "C" { /* Used to hide the implementation of the co-routine control block. The control block structure however has to be included in the header due to the macro implementation of the co-routine functionality. */ -typedef void * xCoRoutineHandle; +typedef void * CoRoutineHandle_t; /* Defines the prototype to which co-routine functions must conform. */ -typedef void (*crCOROUTINE_CODE)( xCoRoutineHandle, unsigned portBASE_TYPE ); +typedef void (*crCOROUTINE_CODE)( CoRoutineHandle_t, UBaseType_t ); typedef struct corCoRoutineControlBlock { - crCOROUTINE_CODE pxCoRoutineFunction; - xListItem xGenericListItem; /*< List item used to place the CRCB in ready and blocked queues. */ - xListItem xEventListItem; /*< List item used to place the CRCB in event lists. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the co-routine in relation to other co-routines. */ - unsigned portBASE_TYPE uxIndex; /*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */ - unsigned short uxState; /*< Used internally by the co-routine implementation. */ -} corCRCB; /* Co-routine control block. Note must be identical in size down to uxPriority with tskTCB. */ + crCOROUTINE_CODE pxCoRoutineFunction; + ListItem_t xGenericListItem; /*< List item used to place the CRCB in ready and blocked queues. */ + ListItem_t xEventListItem; /*< List item used to place the CRCB in event lists. */ + UBaseType_t uxPriority; /*< The priority of the co-routine in relation to other co-routines. */ + UBaseType_t uxIndex; /*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */ + uint16_t uxState; /*< Used internally by the co-routine implementation. */ +} CRCB_t; /* Co-routine control block. Note must be identical in size down to uxPriority with TCB_t. */ /** * croutine. h *
- portBASE_TYPE xCoRoutineCreate(
+ BaseType_t xCoRoutineCreate(
                                  crCOROUTINE_CODE pxCoRoutineCode,
-                                 unsigned portBASE_TYPE uxPriority,
-                                 unsigned portBASE_TYPE uxIndex
+                                 UBaseType_t uxPriority,
+                                 UBaseType_t uxIndex
                                );
* * Create a new co-routine and add it to the list of co-routines that are @@ -122,12 +127,12 @@ typedef struct corCoRoutineControlBlock * Example usage:
  // Co-routine to be created.
- void vFlashCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ void vFlashCoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
  // This may not be necessary for const variables.
  static const char cLedToFlash[ 2 ] = { 5, 6 };
- static const portTickType uxFlashRates[ 2 ] = { 200, 400 };
+ static const TickType_t uxFlashRates[ 2 ] = { 200, 400 };
 
      // Must start every co-routine with a call to crSTART();
      crSTART( xHandle );
@@ -137,7 +142,7 @@ typedef struct corCoRoutineControlBlock
          // This co-routine just delays for a fixed period, then toggles
          // an LED.  Two co-routines are created using this function, so
          // the uxIndex parameter is used to tell the co-routine which
-         // LED to flash and how long to delay.  This assumes xQueue has
+         // LED to flash and how int32_t to delay.  This assumes xQueue has
          // already been created.
          vParTestToggleLED( cLedToFlash[ uxIndex ] );
          crDELAY( xHandle, uxFlashRates[ uxIndex ] );
@@ -150,9 +155,9 @@ typedef struct corCoRoutineControlBlock
  // Function that creates two co-routines.
  void vOtherFunction( void )
  {
- unsigned char ucParameterToPass;
- xTaskHandle xHandle;
-		
+ uint8_t ucParameterToPass;
+ TaskHandle_t xHandle;
+
      // Create two co-routines at priority 0.  The first is given index 0
      // so (from the code above) toggles LED 5 every 200 ticks.  The second
      // is given index 1 so toggles LED 6 every 400 ticks.
@@ -165,7 +170,7 @@ typedef struct corCoRoutineControlBlock
  * \defgroup xCoRoutineCreate xCoRoutineCreate
  * \ingroup Tasks
  */
-signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex );
+BaseType_t xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, UBaseType_t uxPriority, UBaseType_t uxIndex );
 
 
 /**
@@ -212,17 +217,17 @@ void vCoRoutineSchedule( void );
 /**
  * croutine. h
  * 
- crSTART( xCoRoutineHandle xHandle );
+ crSTART( CoRoutineHandle_t xHandle );
* * This macro MUST always be called at the start of a co-routine function. * * Example usage:
  // Co-routine to be created.
- void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ void vACoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
- static long ulAVariable;
+ static int32_t ulAVariable;
 
      // Must start every co-routine with a call to crSTART();
      crSTART( xHandle );
@@ -238,7 +243,7 @@ void vCoRoutineSchedule( void );
  * \defgroup crSTART crSTART
  * \ingroup Tasks
  */
-#define crSTART( pxCRCB ) switch( ( ( corCRCB * )( pxCRCB ) )->uxState ) { case 0:
+#define crSTART( pxCRCB ) switch( ( ( CRCB_t * )( pxCRCB ) )->uxState ) { case 0:
 
 /**
  * croutine. h
@@ -250,10 +255,10 @@ void vCoRoutineSchedule( void );
  * Example usage:
    
  // Co-routine to be created.
- void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ void vACoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
- static long ulAVariable;
+ static int32_t ulAVariable;
 
      // Must start every co-routine with a call to crSTART();
      crSTART( xHandle );
@@ -275,13 +280,13 @@ void vCoRoutineSchedule( void );
  * These macros are intended for internal use by the co-routine implementation
  * only.  The macros should not be used directly by application writers.
  */
-#define crSET_STATE0( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2):
-#define crSET_STATE1( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1):
+#define crSET_STATE0( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2):
+#define crSET_STATE1( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1):
 
 /**
  * croutine. h
  *
- crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay );
+ crDELAY( CoRoutineHandle_t xHandle, TickType_t xTicksToDelay );
* * Delay a co-routine for a fixed period of time. * @@ -294,18 +299,18 @@ void vCoRoutineSchedule( void ); * * @param xTickToDelay The number of ticks that the co-routine should delay * for. The actual amount of time this equates to is defined by - * configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_RATE_MS + * configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_PERIOD_MS * can be used to convert ticks to milliseconds. * * Example usage:
  // Co-routine to be created.
- void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ void vACoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
  // This may not be necessary for const variables.
  // We are to delay for 200ms.
- static const xTickType xDelayTime = 200 / portTICK_RATE_MS;
+ static const xTickType xDelayTime = 200 / portTICK_PERIOD_MS;
 
      // Must start every co-routine with a call to crSTART();
      crSTART( xHandle );
@@ -334,11 +339,11 @@ void vCoRoutineSchedule( void );
 /**
  * 
  crQUEUE_SEND(
-                  xCoRoutineHandle xHandle,
-                  xQueueHandle pxQueue,
+                  CoRoutineHandle_t xHandle,
+                  QueueHandle_t pxQueue,
                   void *pvItemToQueue,
-                  portTickType xTicksToWait,
-                  portBASE_TYPE *pxResult
+                  TickType_t xTicksToWait,
+                  BaseType_t *pxResult
              )
* * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine @@ -371,7 +376,7 @@ void vCoRoutineSchedule( void ); * to wait for space to become available on the queue, should space not be * available immediately. The actual amount of time this equates to is defined * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see example + * portTICK_PERIOD_MS can be used to convert ticks to milliseconds (see example * below). * * @param pxResult The variable pointed to by pxResult will be set to pdPASS if @@ -382,11 +387,11 @@ void vCoRoutineSchedule( void );
  // Co-routine function that blocks for a fixed period then posts a number onto
  // a queue.
- static void prvCoRoutineFlashTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ static void prvCoRoutineFlashTask( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
- static portBASE_TYPE xNumberToPost = 0;
- static portBASE_TYPE xResult;
+ static BaseType_t xNumberToPost = 0;
+ static BaseType_t xResult;
 
     // Co-routines must begin with a call to crSTART().
     crSTART( xHandle );
@@ -433,11 +438,11 @@ void vCoRoutineSchedule( void );
  * croutine. h
  * 
   crQUEUE_RECEIVE(
-                     xCoRoutineHandle xHandle,
-                     xQueueHandle pxQueue,
+                     CoRoutineHandle_t xHandle,
+                     QueueHandle_t pxQueue,
                      void *pvBuffer,
-                     portTickType xTicksToWait,
-                     portBASE_TYPE *pxResult
+                     TickType_t xTicksToWait,
+                     BaseType_t *pxResult
                  )
* * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine @@ -469,7 +474,7 @@ void vCoRoutineSchedule( void ); * to wait for data to become available from the queue, should data not be * available immediately. The actual amount of time this equates to is defined * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see the + * portTICK_PERIOD_MS can be used to convert ticks to milliseconds (see the * crQUEUE_SEND example). * * @param pxResult The variable pointed to by pxResult will be set to pdPASS if @@ -480,11 +485,11 @@ void vCoRoutineSchedule( void );
  // A co-routine receives the number of an LED to flash from a queue.  It
  // blocks on the queue until the number is received.
- static void prvCoRoutineFlashWorkTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ static void prvCoRoutineFlashWorkTask( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // Variables in co-routines must be declared static if they must maintain value across a blocking call.
- static portBASE_TYPE xResult;
- static unsigned portBASE_TYPE uxLEDToFlash;
+ static BaseType_t xResult;
+ static UBaseType_t uxLEDToFlash;
 
     // All co-routines must start with a call to crSTART().
     crSTART( xHandle );
@@ -525,9 +530,9 @@ void vCoRoutineSchedule( void );
  * croutine. h
  * 
   crQUEUE_SEND_FROM_ISR(
-                            xQueueHandle pxQueue,
+                            QueueHandle_t pxQueue,
                             void *pvItemToQueue,
-                            portBASE_TYPE xCoRoutinePreviouslyWoken
+                            BaseType_t xCoRoutinePreviouslyWoken
                        )
* * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the @@ -565,10 +570,10 @@ void vCoRoutineSchedule( void ); * Example usage:
  // A co-routine that blocks on a queue waiting for characters to be received.
- static void vReceivingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ static void vReceivingCoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  char cRxedChar;
- portBASE_TYPE xResult;
+ BaseType_t xResult;
 
      // All co-routines must start with a call to crSTART().
      crSTART( xHandle );
@@ -595,7 +600,7 @@ void vCoRoutineSchedule( void );
  void vUART_ISR( void )
  {
  char cRxedChar;
- portBASE_TYPE xCRWokenByPost = pdFALSE;
+ BaseType_t xCRWokenByPost = pdFALSE;
 
      // We loop around reading characters until there are none left in the UART.
      while( UART_RX_REG_NOT_EMPTY() )
@@ -622,9 +627,9 @@ void vCoRoutineSchedule( void );
  * croutine. h
  * 
   crQUEUE_SEND_FROM_ISR(
-                            xQueueHandle pxQueue,
+                            QueueHandle_t pxQueue,
                             void *pvBuffer,
-                            portBASE_TYPE * pxCoRoutineWoken
+                            BaseType_t * pxCoRoutineWoken
                        )
* * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the @@ -663,12 +668,12 @@ void vCoRoutineSchedule( void );
  // A co-routine that posts a character to a queue then blocks for a fixed
  // period.  The character is incremented each time.
- static void vSendingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
+ static void vSendingCoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
  {
  // cChar holds its value while this co-routine is blocked and must therefore
  // be declared static.
  static char cCharToTx = 'a';
- portBASE_TYPE xResult;
+ BaseType_t xResult;
 
      // All co-routines must start with a call to crSTART().
      crSTART( xHandle );
@@ -711,7 +716,7 @@ void vCoRoutineSchedule( void );
  void vUART_ISR( void )
  {
  char cCharToTx;
- portBASE_TYPE xCRWokenByPost = pdFALSE;
+ BaseType_t xCRWokenByPost = pdFALSE;
 
      while( UART_TX_REG_EMPTY() )
      {
@@ -739,7 +744,7 @@ void vCoRoutineSchedule( void );
  * Removes the current co-routine from its ready list and places it in the
  * appropriate delayed list.
  */
-void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList );
+void vCoRoutineAddToDelayedList( TickType_t xTicksToDelay, List_t *pxEventList );
 
 /*
  * This function is intended for internal use by the queue implementation only.
@@ -748,7 +753,7 @@ void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList
  * Removes the highest priority co-routine from the event list and places it in
  * the pending ready list.
  */
-signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList );
+BaseType_t xCoRoutineRemoveFromEventList( const List_t *pxEventList );
 
 #ifdef __cplusplus
 }
diff --git a/FreeRTOS/Source/include/deprecated_definitions.h b/FreeRTOS/Source/include/deprecated_definitions.h
new file mode 100644
index 0000000..4ea816c
--- /dev/null
+++ b/FreeRTOS/Source/include/deprecated_definitions.h
@@ -0,0 +1,321 @@
+/*
+    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    All rights reserved
+
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
+
+    ***************************************************************************
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<
+    >>!   obliged to provide the source code for proprietary components     !<<
+    >>!   outside of the FreeRTOS kernel.                                   !<<
+    ***************************************************************************
+
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following
+    link: http://www.freertos.org/a00114.html
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS provides completely free yet professionally developed,    *
+     *    robust, strictly quality controlled, supported, and cross          *
+     *    platform software that is more than just the market leader, it     *
+     *    is the industry's de facto standard.                               *
+     *                                                                       *
+     *    Help yourself get started quickly while simultaneously helping     *
+     *    to support the FreeRTOS project by purchasing a FreeRTOS           *
+     *    tutorial book, reference manual, or both:                          *
+     *    http://www.FreeRTOS.org/Documentation                              *
+     *                                                                       *
+    ***************************************************************************
+
+    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading
+    the FAQ page "My application does not run, what could be wrong?".  Have you
+    defined configASSERT()?
+
+    http://www.FreeRTOS.org/support - In return for receiving this top quality
+    embedded software for free we request you assist our global community by
+    participating in the support forum.
+
+    http://www.FreeRTOS.org/training - Investing in training allows your team to
+    be as productive as possible as early as possible.  Now you can receive
+    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
+    Ltd, and the world's leading authority on the world's leading RTOS.
+
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.
+
+    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
+    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
+
+    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
+    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS
+    licenses offer ticketed support, indemnification and commercial middleware.
+
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety
+    engineered and independently SIL3 certified version for use in safety and
+    mission critical applications that require provable dependability.
+
+    1 tab == 4 spaces!
+*/
+
+#ifndef DEPRECATED_DEFINITIONS_H
+#define DEPRECATED_DEFINITIONS_H
+
+
+/* Each FreeRTOS port has a unique portmacro.h header file.  Originally a
+pre-processor definition was used to ensure the pre-processor found the correct
+portmacro.h file for the port being used.  That scheme was deprecated in favour
+of setting the compiler's include path such that it found the correct
+portmacro.h file - removing the need for the constant and allowing the
+portmacro.h file to be located anywhere in relation to the port being used.  The
+definitions below remain in the code for backward compatibility only.  New
+projects should not use them. */
+
+#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT
+	#include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h"
+	typedef void ( __interrupt __far *pxISR )();
+#endif
+
+#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT
+	#include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h"
+	typedef void ( __interrupt __far *pxISR )();
+#endif
+
+#ifdef GCC_MEGA_AVR
+	#include "../portable/GCC/ATMega323/portmacro.h"
+#endif
+
+#ifdef IAR_MEGA_AVR
+	#include "../portable/IAR/ATMega323/portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC24_PORT
+	#include "../../Source/portable/MPLAB/PIC24_dsPIC/portmacro.h"
+#endif
+
+#ifdef MPLAB_DSPIC_PORT
+	#include "../../Source/portable/MPLAB/PIC24_dsPIC/portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC18F_PORT
+	#include "../../Source/portable/MPLAB/PIC18F/portmacro.h"
+#endif
+
+#ifdef MPLAB_PIC32MX_PORT
+	#include "../../Source/portable/MPLAB/PIC32MX/portmacro.h"
+#endif
+
+#ifdef _FEDPICC
+	#include "libFreeRTOS/Include/portmacro.h"
+#endif
+
+#ifdef SDCC_CYGNAL
+	#include "../../Source/portable/SDCC/Cygnal/portmacro.h"
+#endif
+
+#ifdef GCC_ARM7
+	#include "../../Source/portable/GCC/ARM7_LPC2000/portmacro.h"
+#endif
+
+#ifdef GCC_ARM7_ECLIPSE
+	#include "portmacro.h"
+#endif
+
+#ifdef ROWLEY_LPC23xx
+	#include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h"
+#endif
+
+#ifdef IAR_MSP430
+	#include "..\..\Source\portable\IAR\MSP430\portmacro.h"
+#endif
+
+#ifdef GCC_MSP430
+	#include "../../Source/portable/GCC/MSP430F449/portmacro.h"
+#endif
+
+#ifdef ROWLEY_MSP430
+	#include "../../Source/portable/Rowley/MSP430F449/portmacro.h"
+#endif
+
+#ifdef ARM7_LPC21xx_KEIL_RVDS
+	#include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h"
+#endif
+
+#ifdef SAM7_GCC
+	#include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h"
+#endif
+
+#ifdef SAM7_IAR
+	#include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h"
+#endif
+
+#ifdef SAM9XE_IAR
+	#include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h"
+#endif
+
+#ifdef LPC2000_IAR
+	#include "..\..\Source\portable\IAR\LPC2000\portmacro.h"
+#endif
+
+#ifdef STR71X_IAR
+	#include "..\..\Source\portable\IAR\STR71x\portmacro.h"
+#endif
+
+#ifdef STR75X_IAR
+	#include "..\..\Source\portable\IAR\STR75x\portmacro.h"
+#endif
+
+#ifdef STR75X_GCC
+	#include "..\..\Source\portable\GCC\STR75x\portmacro.h"
+#endif
+
+#ifdef STR91X_IAR
+	#include "..\..\Source\portable\IAR\STR91x\portmacro.h"
+#endif
+
+#ifdef GCC_H8S
+	#include "../../Source/portable/GCC/H8S2329/portmacro.h"
+#endif
+
+#ifdef GCC_AT91FR40008
+	#include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h"
+#endif
+
+#ifdef RVDS_ARMCM3_LM3S102
+	#include "../../Source/portable/RVDS/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef GCC_ARMCM3_LM3S102
+	#include "../../Source/portable/GCC/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef GCC_ARMCM3
+	#include "../../Source/portable/GCC/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef IAR_ARM_CM3
+	#include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef IAR_ARMCM3_LM
+	#include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
+#endif
+
+#ifdef HCS12_CODE_WARRIOR
+	#include "../../Source/portable/CodeWarrior/HCS12/portmacro.h"
+#endif
+
+#ifdef MICROBLAZE_GCC
+	#include "../../Source/portable/GCC/MicroBlaze/portmacro.h"
+#endif
+
+#ifdef TERN_EE
+	#include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h"
+#endif
+
+#ifdef GCC_HCS12
+	#include "../../Source/portable/GCC/HCS12/portmacro.h"
+#endif
+
+#ifdef GCC_MCF5235
+    #include "../../Source/portable/GCC/MCF5235/portmacro.h"
+#endif
+
+#ifdef COLDFIRE_V2_GCC
+	#include "../../../Source/portable/GCC/ColdFire_V2/portmacro.h"
+#endif
+
+#ifdef COLDFIRE_V2_CODEWARRIOR
+	#include "../../Source/portable/CodeWarrior/ColdFire_V2/portmacro.h"
+#endif
+
+#ifdef GCC_PPC405
+	#include "../../Source/portable/GCC/PPC405_Xilinx/portmacro.h"
+#endif
+
+#ifdef GCC_PPC440
+	#include "../../Source/portable/GCC/PPC440_Xilinx/portmacro.h"
+#endif
+
+#ifdef _16FX_SOFTUNE
+	#include "..\..\Source\portable\Softune\MB96340\portmacro.h"
+#endif
+
+#ifdef BCC_INDUSTRIAL_PC_PORT
+	/* A short file name has to be used in place of the normal
+	FreeRTOSConfig.h when using the Borland compiler. */
+	#include "frconfig.h"
+	#include "..\portable\BCC\16BitDOS\PC\prtmacro.h"
+    typedef void ( __interrupt __far *pxISR )();
+#endif
+
+#ifdef BCC_FLASH_LITE_186_PORT
+	/* A short file name has to be used in place of the normal
+	FreeRTOSConfig.h when using the Borland compiler. */
+	#include "frconfig.h"
+	#include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h"
+    typedef void ( __interrupt __far *pxISR )();
+#endif
+
+#ifdef __GNUC__
+   #ifdef __AVR32_AVR32A__
+	   #include "portmacro.h"
+   #endif
+#endif
+
+#ifdef __ICCAVR32__
+   #ifdef __CORE__
+      #if __CORE__ == __AVR32A__
+	      #include "portmacro.h"
+      #endif
+   #endif
+#endif
+
+#ifdef __91467D
+	#include "portmacro.h"
+#endif
+
+#ifdef __96340
+	#include "portmacro.h"
+#endif
+
+
+#ifdef __IAR_V850ES_Fx3__
+	#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx3__
+	#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx3_L__
+	#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Jx2__
+	#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_V850ES_Hx2__
+	#include "../../Source/portable/IAR/V850ES/portmacro.h"
+#endif
+
+#ifdef __IAR_78K0R_Kx3__
+	#include "../../Source/portable/IAR/78K0R/portmacro.h"
+#endif
+
+#ifdef __IAR_78K0R_Kx3L__
+	#include "../../Source/portable/IAR/78K0R/portmacro.h"
+#endif
+
+#endif /* DEPRECATED_DEFINITIONS_H */
+
diff --git a/FreeRTOS/Source/include/event_groups.h b/FreeRTOS/Source/include/event_groups.h
new file mode 100644
index 0000000..7331c91
--- /dev/null
+++ b/FreeRTOS/Source/include/event_groups.h
@@ -0,0 +1,797 @@
+/*
+    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    All rights reserved
+
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
+
+    ***************************************************************************
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<
+    >>!   obliged to provide the source code for proprietary components     !<<
+    >>!   outside of the FreeRTOS kernel.                                   !<<
+    ***************************************************************************
+
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following
+    link: http://www.freertos.org/a00114.html
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS provides completely free yet professionally developed,    *
+     *    robust, strictly quality controlled, supported, and cross          *
+     *    platform software that is more than just the market leader, it     *
+     *    is the industry's de facto standard.                               *
+     *                                                                       *
+     *    Help yourself get started quickly while simultaneously helping     *
+     *    to support the FreeRTOS project by purchasing a FreeRTOS           *
+     *    tutorial book, reference manual, or both:                          *
+     *    http://www.FreeRTOS.org/Documentation                              *
+     *                                                                       *
+    ***************************************************************************
+
+    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading
+    the FAQ page "My application does not run, what could be wrong?".  Have you
+    defined configASSERT()?
+
+    http://www.FreeRTOS.org/support - In return for receiving this top quality
+    embedded software for free we request you assist our global community by
+    participating in the support forum.
+
+    http://www.FreeRTOS.org/training - Investing in training allows your team to
+    be as productive as possible as early as possible.  Now you can receive
+    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
+    Ltd, and the world's leading authority on the world's leading RTOS.
+
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.
+
+    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
+    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
+
+    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
+    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS
+    licenses offer ticketed support, indemnification and commercial middleware.
+
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety
+    engineered and independently SIL3 certified version for use in safety and
+    mission critical applications that require provable dependability.
+
+    1 tab == 4 spaces!
+*/
+
+#ifndef EVENT_GROUPS_H
+#define EVENT_GROUPS_H
+
+#ifndef INC_FREERTOS_H
+	#error "include FreeRTOS.h" must appear in source files before "include event_groups.h"
+#endif
+
+/* FreeRTOS includes. */
+#include "timers.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * An event group is a collection of bits to which an application can assign a
+ * meaning.  For example, an application may create an event group to convey
+ * the status of various CAN bus related events in which bit 0 might mean "A CAN
+ * message has been received and is ready for processing", bit 1 might mean "The
+ * application has queued a message that is ready for sending onto the CAN
+ * network", and bit 2 might mean "It is time to send a SYNC message onto the
+ * CAN network" etc.  A task can then test the bit values to see which events
+ * are active, and optionally enter the Blocked state to wait for a specified
+ * bit or a group of specified bits to be active.  To continue the CAN bus
+ * example, a CAN controlling task can enter the Blocked state (and therefore
+ * not consume any processing time) until either bit 0, bit 1 or bit 2 are
+ * active, at which time the bit that was actually active would inform the task
+ * which action it had to take (process a received message, send a message, or
+ * send a SYNC).
+ *
+ * The event groups implementation contains intelligence to avoid race
+ * conditions that would otherwise occur were an application to use a simple
+ * variable for the same purpose.  This is particularly important with respect
+ * to when a bit within an event group is to be cleared, and when bits have to
+ * be set and then tested atomically - as is the case where event groups are
+ * used to create a synchronisation point between multiple tasks (a
+ * 'rendezvous').
+ *
+ * \defgroup EventGroup
+ */
+
+
+
+/**
+ * event_groups.h
+ *
+ * Type by which event groups are referenced.  For example, a call to
+ * xEventGroupCreate() returns an EventGroupHandle_t variable that can then
+ * be used as a parameter to other event group functions.
+ *
+ * \defgroup EventGroupHandle_t EventGroupHandle_t
+ * \ingroup EventGroup
+ */
+typedef void * EventGroupHandle_t;
+
+/*
+ * The type that holds event bits always matches TickType_t - therefore the
+ * number of bits it holds is set by configUSE_16_BIT_TICKS (16 bits if set to 1,
+ * 32 bits if set to 0.
+ *
+ * \defgroup EventBits_t EventBits_t
+ * \ingroup EventGroup
+ */
+typedef TickType_t EventBits_t;
+
+/**
+ * event_groups.h
+ *
+ EventGroupHandle_t xEventGroupCreate( void );
+ 
+ * + * Create a new event group. + * + * Internally, within the FreeRTOS implementation, event groups use a [small] + * block of memory, in which the event group's structure is stored. If an event + * groups is created using xEventGropuCreate() then the required memory is + * automatically dynamically allocated inside the xEventGroupCreate() function. + * (see http://www.freertos.org/a00111.html). If an event group is created + * using xEventGropuCreateStatic() then the application writer must instead + * provide the memory that will get used by the event group. + * xEventGroupCreateStatic() therefore allows an event group to be created + * without using any dynamic memory allocation. + * + * Although event groups are not related to ticks, for internal implementation + * reasons the number of bits available for use in an event group is dependent + * on the configUSE_16_BIT_TICKS setting in FreeRTOSConfig.h. If + * configUSE_16_BIT_TICKS is 1 then each event group contains 8 usable bits (bit + * 0 to bit 7). If configUSE_16_BIT_TICKS is set to 0 then each event group has + * 24 usable bits (bit 0 to bit 23). The EventBits_t type is used to store + * event bits within an event group. + * + * @return If the event group was created then a handle to the event group is + * returned. If there was insufficient FreeRTOS heap available to create the + * event group then NULL is returned. See http://www.freertos.org/a00111.html + * + * Example usage: +
+	// Declare a variable to hold the created event group.
+	EventGroupHandle_t xCreatedEventGroup;
+
+	// Attempt to create the event group.
+	xCreatedEventGroup = xEventGroupCreate();
+
+	// Was the event group created successfully?
+	if( xCreatedEventGroup == NULL )
+	{
+		// The event group was not created because there was insufficient
+		// FreeRTOS heap available.
+	}
+	else
+	{
+		// The event group was created.
+	}
+   
+ * \defgroup xEventGroupCreate xEventGroupCreate + * \ingroup EventGroup + */ +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + EventGroupHandle_t xEventGroupCreate( void ) PRIVILEGED_FUNCTION; +#endif + +/** + * event_groups.h + *
+ EventGroupHandle_t xEventGroupCreateStatic( EventGroupHandle_t * pxEventGroupBuffer );
+ 
+ * + * Create a new event group. + * + * Internally, within the FreeRTOS implementation, event groups use a [small] + * block of memory, in which the event group's structure is stored. If an event + * groups is created using xEventGropuCreate() then the required memory is + * automatically dynamically allocated inside the xEventGroupCreate() function. + * (see http://www.freertos.org/a00111.html). If an event group is created + * using xEventGropuCreateStatic() then the application writer must instead + * provide the memory that will get used by the event group. + * xEventGroupCreateStatic() therefore allows an event group to be created + * without using any dynamic memory allocation. + * + * Although event groups are not related to ticks, for internal implementation + * reasons the number of bits available for use in an event group is dependent + * on the configUSE_16_BIT_TICKS setting in FreeRTOSConfig.h. If + * configUSE_16_BIT_TICKS is 1 then each event group contains 8 usable bits (bit + * 0 to bit 7). If configUSE_16_BIT_TICKS is set to 0 then each event group has + * 24 usable bits (bit 0 to bit 23). The EventBits_t type is used to store + * event bits within an event group. + * + * @param pxEventGroupBuffer pxEventGroupBuffer must point to a variable of type + * StaticEventGroup_t, which will be then be used to hold the event group's data + * structures, removing the need for the memory to be allocated dynamically. + * + * @return If the event group was created then a handle to the event group is + * returned. If pxEventGroupBuffer was NULL then NULL is returned. + * + * Example usage: +
+	// StaticEventGroup_t is a publicly accessible structure that has the same
+	// size and alignment requirements as the real event group structure.  It is
+	// provided as a mechanism for applications to know the size of the event
+	// group (which is dependent on the architecture and configuration file
+	// settings) without breaking the strict data hiding policy by exposing the
+	// real event group internals.  This StaticEventGroup_t variable is passed
+	// into the xSemaphoreCreateEventGroupStatic() function and is used to store
+	// the event group's data structures
+	StaticEventGroup_t xEventGroupBuffer;
+
+	// Create the event group without dynamically allocating any memory.
+	xEventGroup = xEventGroupCreateStatic( &xEventGroupBuffer );
+   
+ */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + EventGroupHandle_t xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ) PRIVILEGED_FUNCTION; +#endif + +/** + * event_groups.h + *
+	EventBits_t xEventGroupWaitBits( 	EventGroupHandle_t xEventGroup,
+										const EventBits_t uxBitsToWaitFor,
+										const BaseType_t xClearOnExit,
+										const BaseType_t xWaitForAllBits,
+										const TickType_t xTicksToWait );
+ 
+ * + * [Potentially] block to wait for one or more bits to be set within a + * previously created event group. + * + * This function cannot be called from an interrupt. + * + * @param xEventGroup The event group in which the bits are being tested. The + * event group must have previously been created using a call to + * xEventGroupCreate(). + * + * @param uxBitsToWaitFor A bitwise value that indicates the bit or bits to test + * inside the event group. For example, to wait for bit 0 and/or bit 2 set + * uxBitsToWaitFor to 0x05. To wait for bits 0 and/or bit 1 and/or bit 2 set + * uxBitsToWaitFor to 0x07. Etc. + * + * @param xClearOnExit If xClearOnExit is set to pdTRUE then any bits within + * uxBitsToWaitFor that are set within the event group will be cleared before + * xEventGroupWaitBits() returns if the wait condition was met (if the function + * returns for a reason other than a timeout). If xClearOnExit is set to + * pdFALSE then the bits set in the event group are not altered when the call to + * xEventGroupWaitBits() returns. + * + * @param xWaitForAllBits If xWaitForAllBits is set to pdTRUE then + * xEventGroupWaitBits() will return when either all the bits in uxBitsToWaitFor + * are set or the specified block time expires. If xWaitForAllBits is set to + * pdFALSE then xEventGroupWaitBits() will return when any one of the bits set + * in uxBitsToWaitFor is set or the specified block time expires. The block + * time is specified by the xTicksToWait parameter. + * + * @param xTicksToWait The maximum amount of time (specified in 'ticks') to wait + * for one/all (depending on the xWaitForAllBits value) of the bits specified by + * uxBitsToWaitFor to become set. + * + * @return The value of the event group at the time either the bits being waited + * for became set, or the block time expired. Test the return value to know + * which bits were set. If xEventGroupWaitBits() returned because its timeout + * expired then not all the bits being waited for will be set. If + * xEventGroupWaitBits() returned because the bits it was waiting for were set + * then the returned value is the event group value before any bits were + * automatically cleared in the case that xClearOnExit parameter was set to + * pdTRUE. + * + * Example usage: +
+   #define BIT_0	( 1 << 0 )
+   #define BIT_4	( 1 << 4 )
+
+   void aFunction( EventGroupHandle_t xEventGroup )
+   {
+   EventBits_t uxBits;
+   const TickType_t xTicksToWait = 100 / portTICK_PERIOD_MS;
+
+		// Wait a maximum of 100ms for either bit 0 or bit 4 to be set within
+		// the event group.  Clear the bits before exiting.
+		uxBits = xEventGroupWaitBits(
+					xEventGroup,	// The event group being tested.
+					BIT_0 | BIT_4,	// The bits within the event group to wait for.
+					pdTRUE,			// BIT_0 and BIT_4 should be cleared before returning.
+					pdFALSE,		// Don't wait for both bits, either bit will do.
+					xTicksToWait );	// Wait a maximum of 100ms for either bit to be set.
+
+		if( ( uxBits & ( BIT_0 | BIT_4 ) ) == ( BIT_0 | BIT_4 ) )
+		{
+			// xEventGroupWaitBits() returned because both bits were set.
+		}
+		else if( ( uxBits & BIT_0 ) != 0 )
+		{
+			// xEventGroupWaitBits() returned because just BIT_0 was set.
+		}
+		else if( ( uxBits & BIT_4 ) != 0 )
+		{
+			// xEventGroupWaitBits() returned because just BIT_4 was set.
+		}
+		else
+		{
+			// xEventGroupWaitBits() returned because xTicksToWait ticks passed
+			// without either BIT_0 or BIT_4 becoming set.
+		}
+   }
+   
+ * \defgroup xEventGroupWaitBits xEventGroupWaitBits + * \ingroup EventGroup + */ +EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * event_groups.h + *
+	EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear );
+ 
+ * + * Clear bits within an event group. This function cannot be called from an + * interrupt. + * + * @param xEventGroup The event group in which the bits are to be cleared. + * + * @param uxBitsToClear A bitwise value that indicates the bit or bits to clear + * in the event group. For example, to clear bit 3 only, set uxBitsToClear to + * 0x08. To clear bit 3 and bit 0 set uxBitsToClear to 0x09. + * + * @return The value of the event group before the specified bits were cleared. + * + * Example usage: +
+   #define BIT_0	( 1 << 0 )
+   #define BIT_4	( 1 << 4 )
+
+   void aFunction( EventGroupHandle_t xEventGroup )
+   {
+   EventBits_t uxBits;
+
+		// Clear bit 0 and bit 4 in xEventGroup.
+		uxBits = xEventGroupClearBits(
+								xEventGroup,	// The event group being updated.
+								BIT_0 | BIT_4 );// The bits being cleared.
+
+		if( ( uxBits & ( BIT_0 | BIT_4 ) ) == ( BIT_0 | BIT_4 ) )
+		{
+			// Both bit 0 and bit 4 were set before xEventGroupClearBits() was
+			// called.  Both will now be clear (not set).
+		}
+		else if( ( uxBits & BIT_0 ) != 0 )
+		{
+			// Bit 0 was set before xEventGroupClearBits() was called.  It will
+			// now be clear.
+		}
+		else if( ( uxBits & BIT_4 ) != 0 )
+		{
+			// Bit 4 was set before xEventGroupClearBits() was called.  It will
+			// now be clear.
+		}
+		else
+		{
+			// Neither bit 0 nor bit 4 were set in the first place.
+		}
+   }
+   
+ * \defgroup xEventGroupClearBits xEventGroupClearBits + * \ingroup EventGroup + */ +EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) PRIVILEGED_FUNCTION; + +/** + * event_groups.h + *
+	BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet );
+ 
+ * + * A version of xEventGroupClearBits() that can be called from an interrupt. + * + * Setting bits in an event group is not a deterministic operation because there + * are an unknown number of tasks that may be waiting for the bit or bits being + * set. FreeRTOS does not allow nondeterministic operations to be performed + * while interrupts are disabled, so protects event groups that are accessed + * from tasks by suspending the scheduler rather than disabling interrupts. As + * a result event groups cannot be accessed directly from an interrupt service + * routine. Therefore xEventGroupClearBitsFromISR() sends a message to the + * timer task to have the clear operation performed in the context of the timer + * task. + * + * @param xEventGroup The event group in which the bits are to be cleared. + * + * @param uxBitsToClear A bitwise value that indicates the bit or bits to clear. + * For example, to clear bit 3 only, set uxBitsToClear to 0x08. To clear bit 3 + * and bit 0 set uxBitsToClear to 0x09. + * + * @return If the request to execute the function was posted successfully then + * pdPASS is returned, otherwise pdFALSE is returned. pdFALSE will be returned + * if the timer service queue was full. + * + * Example usage: +
+   #define BIT_0	( 1 << 0 )
+   #define BIT_4	( 1 << 4 )
+
+   // An event group which it is assumed has already been created by a call to
+   // xEventGroupCreate().
+   EventGroupHandle_t xEventGroup;
+
+   void anInterruptHandler( void )
+   {
+		// Clear bit 0 and bit 4 in xEventGroup.
+		xResult = xEventGroupClearBitsFromISR(
+							xEventGroup,	 // The event group being updated.
+							BIT_0 | BIT_4 ); // The bits being set.
+
+		if( xResult == pdPASS )
+		{
+			// The message was posted successfully.
+		}
+  }
+   
+ * \defgroup xEventGroupClearBitsFromISR xEventGroupClearBitsFromISR + * \ingroup EventGroup + */ +#if( configUSE_TRACE_FACILITY == 1 ) + BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) PRIVILEGED_FUNCTION; +#else + #define xEventGroupClearBitsFromISR( xEventGroup, uxBitsToClear ) xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL ) +#endif + +/** + * event_groups.h + *
+	EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet );
+ 
+ * + * Set bits within an event group. + * This function cannot be called from an interrupt. xEventGroupSetBitsFromISR() + * is a version that can be called from an interrupt. + * + * Setting bits in an event group will automatically unblock tasks that are + * blocked waiting for the bits. + * + * @param xEventGroup The event group in which the bits are to be set. + * + * @param uxBitsToSet A bitwise value that indicates the bit or bits to set. + * For example, to set bit 3 only, set uxBitsToSet to 0x08. To set bit 3 + * and bit 0 set uxBitsToSet to 0x09. + * + * @return The value of the event group at the time the call to + * xEventGroupSetBits() returns. There are two reasons why the returned value + * might have the bits specified by the uxBitsToSet parameter cleared. First, + * if setting a bit results in a task that was waiting for the bit leaving the + * blocked state then it is possible the bit will be cleared automatically + * (see the xClearBitOnExit parameter of xEventGroupWaitBits()). Second, any + * unblocked (or otherwise Ready state) task that has a priority above that of + * the task that called xEventGroupSetBits() will execute and may change the + * event group value before the call to xEventGroupSetBits() returns. + * + * Example usage: +
+   #define BIT_0	( 1 << 0 )
+   #define BIT_4	( 1 << 4 )
+
+   void aFunction( EventGroupHandle_t xEventGroup )
+   {
+   EventBits_t uxBits;
+
+		// Set bit 0 and bit 4 in xEventGroup.
+		uxBits = xEventGroupSetBits(
+							xEventGroup,	// The event group being updated.
+							BIT_0 | BIT_4 );// The bits being set.
+
+		if( ( uxBits & ( BIT_0 | BIT_4 ) ) == ( BIT_0 | BIT_4 ) )
+		{
+			// Both bit 0 and bit 4 remained set when the function returned.
+		}
+		else if( ( uxBits & BIT_0 ) != 0 )
+		{
+			// Bit 0 remained set when the function returned, but bit 4 was
+			// cleared.  It might be that bit 4 was cleared automatically as a
+			// task that was waiting for bit 4 was removed from the Blocked
+			// state.
+		}
+		else if( ( uxBits & BIT_4 ) != 0 )
+		{
+			// Bit 4 remained set when the function returned, but bit 0 was
+			// cleared.  It might be that bit 0 was cleared automatically as a
+			// task that was waiting for bit 0 was removed from the Blocked
+			// state.
+		}
+		else
+		{
+			// Neither bit 0 nor bit 4 remained set.  It might be that a task
+			// was waiting for both of the bits to be set, and the bits were
+			// cleared as the task left the Blocked state.
+		}
+   }
+   
+ * \defgroup xEventGroupSetBits xEventGroupSetBits + * \ingroup EventGroup + */ +EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) PRIVILEGED_FUNCTION; + +/** + * event_groups.h + *
+	BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken );
+ 
+ * + * A version of xEventGroupSetBits() that can be called from an interrupt. + * + * Setting bits in an event group is not a deterministic operation because there + * are an unknown number of tasks that may be waiting for the bit or bits being + * set. FreeRTOS does not allow nondeterministic operations to be performed in + * interrupts or from critical sections. Therefore xEventGroupSetBitsFromISR() + * sends a message to the timer task to have the set operation performed in the + * context of the timer task - where a scheduler lock is used in place of a + * critical section. + * + * @param xEventGroup The event group in which the bits are to be set. + * + * @param uxBitsToSet A bitwise value that indicates the bit or bits to set. + * For example, to set bit 3 only, set uxBitsToSet to 0x08. To set bit 3 + * and bit 0 set uxBitsToSet to 0x09. + * + * @param pxHigherPriorityTaskWoken As mentioned above, calling this function + * will result in a message being sent to the timer daemon task. If the + * priority of the timer daemon task is higher than the priority of the + * currently running task (the task the interrupt interrupted) then + * *pxHigherPriorityTaskWoken will be set to pdTRUE by + * xEventGroupSetBitsFromISR(), indicating that a context switch should be + * requested before the interrupt exits. For that reason + * *pxHigherPriorityTaskWoken must be initialised to pdFALSE. See the + * example code below. + * + * @return If the request to execute the function was posted successfully then + * pdPASS is returned, otherwise pdFALSE is returned. pdFALSE will be returned + * if the timer service queue was full. + * + * Example usage: +
+   #define BIT_0	( 1 << 0 )
+   #define BIT_4	( 1 << 4 )
+
+   // An event group which it is assumed has already been created by a call to
+   // xEventGroupCreate().
+   EventGroupHandle_t xEventGroup;
+
+   void anInterruptHandler( void )
+   {
+   BaseType_t xHigherPriorityTaskWoken, xResult;
+
+		// xHigherPriorityTaskWoken must be initialised to pdFALSE.
+		xHigherPriorityTaskWoken = pdFALSE;
+
+		// Set bit 0 and bit 4 in xEventGroup.
+		xResult = xEventGroupSetBitsFromISR(
+							xEventGroup,	// The event group being updated.
+							BIT_0 | BIT_4   // The bits being set.
+							&xHigherPriorityTaskWoken );
+
+		// Was the message posted successfully?
+		if( xResult == pdPASS )
+		{
+			// If xHigherPriorityTaskWoken is now set to pdTRUE then a context
+			// switch should be requested.  The macro used is port specific and
+			// will be either portYIELD_FROM_ISR() or portEND_SWITCHING_ISR() -
+			// refer to the documentation page for the port being used.
+			portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
+		}
+  }
+   
+ * \defgroup xEventGroupSetBitsFromISR xEventGroupSetBitsFromISR + * \ingroup EventGroup + */ +#if( configUSE_TRACE_FACILITY == 1 ) + BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; +#else + #define xEventGroupSetBitsFromISR( xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken ) xTimerPendFunctionCallFromISR( vEventGroupSetBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToSet, pxHigherPriorityTaskWoken ) +#endif + +/** + * event_groups.h + *
+	EventBits_t xEventGroupSync(	EventGroupHandle_t xEventGroup,
+									const EventBits_t uxBitsToSet,
+									const EventBits_t uxBitsToWaitFor,
+									TickType_t xTicksToWait );
+ 
+ * + * Atomically set bits within an event group, then wait for a combination of + * bits to be set within the same event group. This functionality is typically + * used to synchronise multiple tasks, where each task has to wait for the other + * tasks to reach a synchronisation point before proceeding. + * + * This function cannot be used from an interrupt. + * + * The function will return before its block time expires if the bits specified + * by the uxBitsToWait parameter are set, or become set within that time. In + * this case all the bits specified by uxBitsToWait will be automatically + * cleared before the function returns. + * + * @param xEventGroup The event group in which the bits are being tested. The + * event group must have previously been created using a call to + * xEventGroupCreate(). + * + * @param uxBitsToSet The bits to set in the event group before determining + * if, and possibly waiting for, all the bits specified by the uxBitsToWait + * parameter are set. + * + * @param uxBitsToWaitFor A bitwise value that indicates the bit or bits to test + * inside the event group. For example, to wait for bit 0 and bit 2 set + * uxBitsToWaitFor to 0x05. To wait for bits 0 and bit 1 and bit 2 set + * uxBitsToWaitFor to 0x07. Etc. + * + * @param xTicksToWait The maximum amount of time (specified in 'ticks') to wait + * for all of the bits specified by uxBitsToWaitFor to become set. + * + * @return The value of the event group at the time either the bits being waited + * for became set, or the block time expired. Test the return value to know + * which bits were set. If xEventGroupSync() returned because its timeout + * expired then not all the bits being waited for will be set. If + * xEventGroupSync() returned because all the bits it was waiting for were + * set then the returned value is the event group value before any bits were + * automatically cleared. + * + * Example usage: +
+ // Bits used by the three tasks.
+ #define TASK_0_BIT		( 1 << 0 )
+ #define TASK_1_BIT		( 1 << 1 )
+ #define TASK_2_BIT		( 1 << 2 )
+
+ #define ALL_SYNC_BITS ( TASK_0_BIT | TASK_1_BIT | TASK_2_BIT )
+
+ // Use an event group to synchronise three tasks.  It is assumed this event
+ // group has already been created elsewhere.
+ EventGroupHandle_t xEventBits;
+
+ void vTask0( void *pvParameters )
+ {
+ EventBits_t uxReturn;
+ TickType_t xTicksToWait = 100 / portTICK_PERIOD_MS;
+
+	 for( ;; )
+	 {
+		// Perform task functionality here.
+
+		// Set bit 0 in the event flag to note this task has reached the
+		// sync point.  The other two tasks will set the other two bits defined
+		// by ALL_SYNC_BITS.  All three tasks have reached the synchronisation
+		// point when all the ALL_SYNC_BITS are set.  Wait a maximum of 100ms
+		// for this to happen.
+		uxReturn = xEventGroupSync( xEventBits, TASK_0_BIT, ALL_SYNC_BITS, xTicksToWait );
+
+		if( ( uxReturn & ALL_SYNC_BITS ) == ALL_SYNC_BITS )
+		{
+			// All three tasks reached the synchronisation point before the call
+			// to xEventGroupSync() timed out.
+		}
+	}
+ }
+
+ void vTask1( void *pvParameters )
+ {
+	 for( ;; )
+	 {
+		// Perform task functionality here.
+
+		// Set bit 1 in the event flag to note this task has reached the
+		// synchronisation point.  The other two tasks will set the other two
+		// bits defined by ALL_SYNC_BITS.  All three tasks have reached the
+		// synchronisation point when all the ALL_SYNC_BITS are set.  Wait
+		// indefinitely for this to happen.
+		xEventGroupSync( xEventBits, TASK_1_BIT, ALL_SYNC_BITS, portMAX_DELAY );
+
+		// xEventGroupSync() was called with an indefinite block time, so
+		// this task will only reach here if the syncrhonisation was made by all
+		// three tasks, so there is no need to test the return value.
+	 }
+ }
+
+ void vTask2( void *pvParameters )
+ {
+	 for( ;; )
+	 {
+		// Perform task functionality here.
+
+		// Set bit 2 in the event flag to note this task has reached the
+		// synchronisation point.  The other two tasks will set the other two
+		// bits defined by ALL_SYNC_BITS.  All three tasks have reached the
+		// synchronisation point when all the ALL_SYNC_BITS are set.  Wait
+		// indefinitely for this to happen.
+		xEventGroupSync( xEventBits, TASK_2_BIT, ALL_SYNC_BITS, portMAX_DELAY );
+
+		// xEventGroupSync() was called with an indefinite block time, so
+		// this task will only reach here if the syncrhonisation was made by all
+		// three tasks, so there is no need to test the return value.
+	}
+ }
+
+ 
+ * \defgroup xEventGroupSync xEventGroupSync + * \ingroup EventGroup + */ +EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + + +/** + * event_groups.h + *
+	EventBits_t xEventGroupGetBits( EventGroupHandle_t xEventGroup );
+ 
+ * + * Returns the current value of the bits in an event group. This function + * cannot be used from an interrupt. + * + * @param xEventGroup The event group being queried. + * + * @return The event group bits at the time xEventGroupGetBits() was called. + * + * \defgroup xEventGroupGetBits xEventGroupGetBits + * \ingroup EventGroup + */ +#define xEventGroupGetBits( xEventGroup ) xEventGroupClearBits( xEventGroup, 0 ) + +/** + * event_groups.h + *
+	EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup );
+ 
+ * + * A version of xEventGroupGetBits() that can be called from an ISR. + * + * @param xEventGroup The event group being queried. + * + * @return The event group bits at the time xEventGroupGetBitsFromISR() was called. + * + * \defgroup xEventGroupGetBitsFromISR xEventGroupGetBitsFromISR + * \ingroup EventGroup + */ +EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) PRIVILEGED_FUNCTION; + +/** + * event_groups.h + *
+	void xEventGroupDelete( EventGroupHandle_t xEventGroup );
+ 
+ * + * Delete an event group that was previously created by a call to + * xEventGroupCreate(). Tasks that are blocked on the event group will be + * unblocked and obtain 0 as the event group's value. + * + * @param xEventGroup The event group being deleted. + */ +void vEventGroupDelete( EventGroupHandle_t xEventGroup ) PRIVILEGED_FUNCTION; + +/* For internal use only. */ +void vEventGroupSetBitsCallback( void *pvEventGroup, const uint32_t ulBitsToSet ) PRIVILEGED_FUNCTION; +void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToClear ) PRIVILEGED_FUNCTION; + + +#if (configUSE_TRACE_FACILITY == 1) + UBaseType_t uxEventGroupGetNumber( void* xEventGroup ) PRIVILEGED_FUNCTION; +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* EVENT_GROUPS_H */ + + diff --git a/FreeRTOS/Source/include/list.h b/FreeRTOS/Source/include/list.h index a8bafb0..a080d27 100644 --- a/FreeRTOS/Source/include/list.h +++ b/FreeRTOS/Source/include/list.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -67,7 +72,7 @@ * heavily for the schedulers needs, it is also available for use by * application code. * - * xLists can only store pointers to xListItems. Each xListItem contains a + * list_ts can only store pointers to list_item_ts. Each ListItem_t contains a * numeric value (xItemValue). Most of the time the lists are sorted in * descending item value order. * @@ -90,6 +95,9 @@ * \ingroup FreeRTOSIntro */ +#ifndef INC_FREERTOS_H + #error FreeRTOS.h must be included before list.h +#endif #ifndef LIST_H #define LIST_H @@ -114,8 +122,8 @@ * complete and obvious failure of the scheduler. If this is ever experienced * then the volatile qualifier can be inserted in the relevant places within the * list structures by simply defining configLIST_VOLATILE to volatile in - * FreeRTOSConfig.h (as per the example at the bottom of this comment block). - * If configLIST_VOLATILE is not defined then the preprocessor directives below + * FreeRTOSConfig.h (as per the example at the bottom of this comment block). + * If configLIST_VOLATILE is not defined then the preprocessor directives below * will simply #define configLIST_VOLATILE away completely. * * To use volatile list structure members then add the following line to @@ -129,36 +137,79 @@ #ifdef __cplusplus extern "C" { #endif + +/* Macros that can be used to place known values within the list structures, +then check that the known values do not get corrupted during the execution of +the application. These may catch the list data structures being overwritten in +memory. They will not catch data errors caused by incorrect configuration or +use of FreeRTOS.*/ +#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 0 ) + /* Define the macros to do nothing. */ + #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE + #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE + #define listFIRST_LIST_INTEGRITY_CHECK_VALUE + #define listSECOND_LIST_INTEGRITY_CHECK_VALUE + #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) + #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) + #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ) + #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ) + #define listTEST_LIST_ITEM_INTEGRITY( pxItem ) + #define listTEST_LIST_INTEGRITY( pxList ) +#else + /* Define macros that add new members into the list structures. */ + #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE TickType_t xListItemIntegrityValue1; + #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE TickType_t xListItemIntegrityValue2; + #define listFIRST_LIST_INTEGRITY_CHECK_VALUE TickType_t xListIntegrityValue1; + #define listSECOND_LIST_INTEGRITY_CHECK_VALUE TickType_t xListIntegrityValue2; + + /* Define macros that set the new structure members to known values. */ + #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) ( pxItem )->xListItemIntegrityValue1 = pdINTEGRITY_CHECK_VALUE + #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) ( pxItem )->xListItemIntegrityValue2 = pdINTEGRITY_CHECK_VALUE + #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ) ( pxList )->xListIntegrityValue1 = pdINTEGRITY_CHECK_VALUE + #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ) ( pxList )->xListIntegrityValue2 = pdINTEGRITY_CHECK_VALUE + + /* Define macros that will assert if one of the structure members does not + contain its expected value. */ + #define listTEST_LIST_ITEM_INTEGRITY( pxItem ) configASSERT( ( ( pxItem )->xListItemIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxItem )->xListItemIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) ) + #define listTEST_LIST_INTEGRITY( pxList ) configASSERT( ( ( pxList )->xListIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxList )->xListIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) ) +#endif /* configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES */ + + /* * Definition of the only type of object that a list can contain. */ struct xLIST_ITEM { - configLIST_VOLATILE portTickType xItemValue; /*< The value being listed. In most cases this is used to sort the list in descending order. */ - struct xLIST_ITEM * configLIST_VOLATILE pxNext; /*< Pointer to the next xListItem in the list. */ - struct xLIST_ITEM * configLIST_VOLATILE pxPrevious;/*< Pointer to the previous xListItem in the list. */ - void * pvOwner; /*< Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */ - void * configLIST_VOLATILE pvContainer; /*< Pointer to the list in which this list item is placed (if any). */ + listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ + configLIST_VOLATILE TickType_t xItemValue; /*< The value being listed. In most cases this is used to sort the list in descending order. */ + struct xLIST_ITEM * configLIST_VOLATILE pxNext; /*< Pointer to the next ListItem_t in the list. */ + struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; /*< Pointer to the previous ListItem_t in the list. */ + void * pvOwner; /*< Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */ + void * configLIST_VOLATILE pvContainer; /*< Pointer to the list in which this list item is placed (if any). */ + listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ }; -typedef struct xLIST_ITEM xListItem; /* For some reason lint wants this as two separate definitions. */ +typedef struct xLIST_ITEM ListItem_t; /* For some reason lint wants this as two separate definitions. */ struct xMINI_LIST_ITEM { - configLIST_VOLATILE portTickType xItemValue; + listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ + configLIST_VOLATILE TickType_t xItemValue; struct xLIST_ITEM * configLIST_VOLATILE pxNext; struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; }; -typedef struct xMINI_LIST_ITEM xMiniListItem; +typedef struct xMINI_LIST_ITEM MiniListItem_t; /* * Definition of the type of queue used by the scheduler. */ typedef struct xLIST { - configLIST_VOLATILE unsigned portBASE_TYPE uxNumberOfItems; - xListItem * configLIST_VOLATILE pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to pvListGetOwnerOfNextEntry (). */ - xMiniListItem xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ -} xList; + listFIRST_LIST_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ + configLIST_VOLATILE UBaseType_t uxNumberOfItems; + ListItem_t * configLIST_VOLATILE pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to listGET_OWNER_OF_NEXT_ENTRY (). */ + MiniListItem_t xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ + listSECOND_LIST_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ +} List_t; /* * Access macro to set the owner of a list item. The owner of a list item @@ -176,7 +227,7 @@ typedef struct xLIST * \page listSET_LIST_ITEM_OWNER listSET_LIST_ITEM_OWNER * \ingroup LinkedList */ -#define listGET_LIST_ITEM_OWNER( pxListItem ) ( pxListItem )->pvOwner +#define listGET_LIST_ITEM_OWNER( pxListItem ) ( ( pxListItem )->pvOwner ) /* * Access macro to set the value of the list item. In most cases the value is @@ -185,26 +236,50 @@ typedef struct xLIST * \page listSET_LIST_ITEM_VALUE listSET_LIST_ITEM_VALUE * \ingroup LinkedList */ -#define listSET_LIST_ITEM_VALUE( pxListItem, xValue ) ( ( pxListItem )->xItemValue = ( xValue ) ) +#define listSET_LIST_ITEM_VALUE( pxListItem, xValue ) ( ( pxListItem )->xItemValue = ( xValue ) ) /* * Access macro to retrieve the value of the list item. The value can - * represent anything - for example a the priority of a task, or the time at + * represent anything - for example the priority of a task, or the time at * which a task should be unblocked. * * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE * \ingroup LinkedList */ -#define listGET_LIST_ITEM_VALUE( pxListItem ) ( ( pxListItem )->xItemValue ) +#define listGET_LIST_ITEM_VALUE( pxListItem ) ( ( pxListItem )->xItemValue ) /* - * Access macro the retrieve the value of the list item at the head of a given + * Access macro to retrieve the value of the list item at the head of a given * list. * * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE * \ingroup LinkedList */ -#define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList ) ( (&( ( pxList )->xListEnd ))->pxNext->xItemValue ) +#define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList ) ( ( ( pxList )->xListEnd ).pxNext->xItemValue ) + +/* + * Return the list item at the head of the list. + * + * \page listGET_HEAD_ENTRY listGET_HEAD_ENTRY + * \ingroup LinkedList + */ +#define listGET_HEAD_ENTRY( pxList ) ( ( ( pxList )->xListEnd ).pxNext ) + +/* + * Return the list item at the head of the list. + * + * \page listGET_NEXT listGET_NEXT + * \ingroup LinkedList + */ +#define listGET_NEXT( pxListItem ) ( ( pxListItem )->pxNext ) + +/* + * Return the list item that marks the end of the list + * + * \page listGET_END_MARKER listGET_END_MARKER + * \ingroup LinkedList + */ +#define listGET_END_MARKER( pxList ) ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) ) /* * Access macro to determine if a list contains any items. The macro will @@ -213,19 +288,19 @@ typedef struct xLIST * \page listLIST_IS_EMPTY listLIST_IS_EMPTY * \ingroup LinkedList */ -#define listLIST_IS_EMPTY( pxList ) ( ( portBASE_TYPE ) ( ( pxList )->uxNumberOfItems == ( unsigned portBASE_TYPE ) 0 ) ) +#define listLIST_IS_EMPTY( pxList ) ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ) /* * Access macro to return the number of items in the list. */ -#define listCURRENT_LIST_LENGTH( pxList ) ( ( pxList )->uxNumberOfItems ) +#define listCURRENT_LIST_LENGTH( pxList ) ( ( pxList )->uxNumberOfItems ) /* * Access function to obtain the owner of the next entry in a list. * * The list member pxIndex is used to walk through a list. Calling * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list - * and returns that entries pxOwner parameter. Using multiple calls to this + * and returns that entry's pxOwner parameter. Using multiple calls to this * function it is therefore possible to move through every item contained in * a list. * @@ -234,6 +309,7 @@ typedef struct xLIST * The pxOwner parameter effectively creates a two way link between the list * item and its owner. * + * @param pxTCB pxTCB is set to the address of the owner of the next list item. * @param pxList The list from which the next item owner is to be returned. * * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY @@ -241,7 +317,7 @@ typedef struct xLIST */ #define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \ { \ -xList * const pxConstList = ( pxList ); \ +List_t * const pxConstList = ( pxList ); \ /* Increment the index to the next item and return the item, ensuring */ \ /* we don't return the marker used at the end of the list. */ \ ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \ @@ -278,16 +354,15 @@ xList * const pxConstList = ( pxList ); \ * * @param pxList The list we want to know if the list item is within. * @param pxListItem The list item we want to know if is in the list. - * @return pdTRUE is the list item is in the list, otherwise pdFALSE. - * pointer against + * @return pdTRUE if the list item is in the list, otherwise pdFALSE. */ -#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( portBASE_TYPE ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) ) +#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) ) /* * Return the list a list item is contained within (referenced from). * * @param pxListItem The list item being queried. - * @return A pointer to the xList object that references the pxListItem + * @return A pointer to the List_t object that references the pxListItem */ #define listLIST_ITEM_CONTAINER( pxListItem ) ( ( pxListItem )->pvContainer ) @@ -308,7 +383,7 @@ xList * const pxConstList = ( pxList ); \ * \page vListInitialise vListInitialise * \ingroup LinkedList */ -void vListInitialise( xList * const pxList ); +void vListInitialise( List_t * const pxList ) PRIVILEGED_FUNCTION; /* * Must be called before a list item is used. This sets the list container to @@ -319,7 +394,7 @@ void vListInitialise( xList * const pxList ); * \page vListInitialiseItem vListInitialiseItem * \ingroup LinkedList */ -void vListInitialiseItem( xListItem * const pxItem ); +void vListInitialiseItem( ListItem_t * const pxItem ) PRIVILEGED_FUNCTION; /* * Insert a list item into a list. The item will be inserted into the list in @@ -327,24 +402,24 @@ void vListInitialiseItem( xListItem * const pxItem ); * * @param pxList The list into which the item is to be inserted. * - * @param pxNewListItem The item to that is to be placed in the list. + * @param pxNewListItem The item that is to be placed in the list. * * \page vListInsert vListInsert * \ingroup LinkedList */ -void vListInsert( xList * const pxList, xListItem * const pxNewListItem ); +void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) PRIVILEGED_FUNCTION; /* * Insert a list item into a list. The item will be inserted in a position * such that it will be the last item within the list returned by multiple * calls to listGET_OWNER_OF_NEXT_ENTRY. * - * The list member pvIndex is used to walk through a list. Calling - * listGET_OWNER_OF_NEXT_ENTRY increments pvIndex to the next item in the list. + * The list member pxIndex is used to walk through a list. Calling + * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list. * Placing an item in a list using vListInsertEnd effectively places the item - * in the list position pointed to by pvIndex. This means that every other + * in the list position pointed to by pxIndex. This means that every other * item within the list will be returned by listGET_OWNER_OF_NEXT_ENTRY before - * the pvIndex parameter again points to the item being inserted. + * the pxIndex parameter again points to the item being inserted. * * @param pxList The list into which the item is to be inserted. * @@ -353,7 +428,7 @@ void vListInsert( xList * const pxList, xListItem * const pxNewListItem ); * \page vListInsertEnd vListInsertEnd * \ingroup LinkedList */ -void vListInsertEnd( xList * const pxList, xListItem * const pxNewListItem ); +void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem ) PRIVILEGED_FUNCTION; /* * Remove an item from a list. The list item has a pointer to the list that @@ -368,7 +443,7 @@ void vListInsertEnd( xList * const pxList, xListItem * const pxNewListItem ); * \page uxListRemove uxListRemove * \ingroup LinkedList */ -unsigned portBASE_TYPE uxListRemove( xListItem * const pxItemToRemove ); +UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) PRIVILEGED_FUNCTION; #ifdef __cplusplus } diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h new file mode 100644 index 0000000..8f7500b --- /dev/null +++ b/FreeRTOS/Source/include/mpu_prototypes.h @@ -0,0 +1,177 @@ +/* + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. + + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available on the following + link: http://www.freertos.org/a00114.html + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * + * * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * + * * + *************************************************************************** + + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + +/* + * When the MPU is used the standard (non MPU) API functions are mapped to + * equivalents that start "MPU_", the prototypes for which are defined in this + * header files. This will cause the application code to call the MPU_ version + * which wraps the non-MPU version with privilege promoting then demoting code, + * so the kernel code always runs will full privileges. + */ + + +#ifndef MPU_PROTOTYPES_H +#define MPU_PROTOTYPES_H + +/* MPU versions of tasks.h API function. */ +BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask ); +TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer ); +BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ); +void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions ); +void MPU_vTaskDelete( TaskHandle_t xTaskToDelete ); +void MPU_vTaskDelay( const TickType_t xTicksToDelay ); +void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ); +BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ); +UBaseType_t MPU_uxTaskPriorityGet( TaskHandle_t xTask ); +eTaskState MPU_eTaskGetState( TaskHandle_t xTask ); +void MPU_vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ); +void MPU_vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ); +void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ); +void MPU_vTaskResume( TaskHandle_t xTaskToResume ); +void MPU_vTaskStartScheduler( void ); +void MPU_vTaskSuspendAll( void ); +BaseType_t MPU_xTaskResumeAll( void ); +TickType_t MPU_xTaskGetTickCount( void ); +UBaseType_t MPU_uxTaskGetNumberOfTasks( void ); +char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ); +TaskHandle_t MPU_xTaskGetHandle( const char *pcNameToQuery ); +UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ); +void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction ); +TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ); +void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ); +void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ); +BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ); +TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ); +UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime ); +void MPU_vTaskList( char * pcWriteBuffer ); +void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer ); +BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ); +BaseType_t MPU_xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ); +uint32_t MPU_ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ); +BaseType_t MPU_xTaskNotifyStateClear( TaskHandle_t xTask ); +BaseType_t MPU_xTaskIncrementTick( void ); +TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ); +void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ); +BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ); +void MPU_vTaskMissedYield( void ); +BaseType_t MPU_xTaskGetSchedulerState( void ); + +/* MPU versions of queue.h API function. */ +BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ); +BaseType_t MPU_xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeek ); +UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ); +UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ); +void MPU_vQueueDelete( QueueHandle_t xQueue ); +QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ); +QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ); +QueueHandle_t MPU_xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ); +QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ); +void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ); +BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ); +BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ); +void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ); +void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ); +const char * MPU_pcQueueGetName( QueueHandle_t xQueue ); +QueueHandle_t MPU_xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ); +QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ); +QueueSetHandle_t MPU_xQueueCreateSet( const UBaseType_t uxEventQueueLength ); +BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ); +BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ); +QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait ); +BaseType_t MPU_xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ); +void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ); +UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue ); +uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue ); + +/* MPU versions of timers.h API function. */ +TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ); +TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer ); +void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ); +void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ); +BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ); +TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ); +BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ); +const char * MPU_pcTimerGetName( TimerHandle_t xTimer ); +TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ); +TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ); +BaseType_t MPU_xTimerCreateTimerTask( void ); +BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ); + +/* MPU versions of event_group.h API function. */ +EventGroupHandle_t MPU_xEventGroupCreate( void ); +EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ); +EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ); +EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ); +EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ); +EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ); +void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ); +UBaseType_t MPU_uxEventGroupGetNumber( void* xEventGroup ); + +#endif /* MPU_PROTOTYPES_H */ + diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h index 6635069..78f5a9a 100644 --- a/FreeRTOS/Source/include/mpu_wrappers.h +++ b/FreeRTOS/Source/include/mpu_wrappers.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -74,60 +79,104 @@ only for ports that are using the MPU. */ those files. */ #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - #define xTaskGenericCreate MPU_xTaskGenericCreate - #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions - #define vTaskDelete MPU_vTaskDelete - #define vTaskDelayUntil MPU_vTaskDelayUntil - #define vTaskDelay MPU_vTaskDelay - #define uxTaskPriorityGet MPU_uxTaskPriorityGet - #define vTaskPrioritySet MPU_vTaskPrioritySet - #define eTaskGetState MPU_eTaskGetState - #define vTaskSuspend MPU_vTaskSuspend - #define xTaskIsTaskSuspended MPU_xTaskIsTaskSuspended - #define vTaskResume MPU_vTaskResume - #define vTaskSuspendAll MPU_vTaskSuspendAll - #define xTaskResumeAll MPU_xTaskResumeAll - #define xTaskGetTickCount MPU_xTaskGetTickCount - #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks - #define vTaskList MPU_vTaskList - #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats - #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag - #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag - #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook - #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark - #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle - #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState - #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle - #define uxTaskGetSystemState MPU_uxTaskGetSystemState + /* + * Map standard (non MPU) API functions to equivalents that start + * "MPU_". This will cause the application code to call the MPU_ + * version, which wraps the non-MPU version with privilege promoting + * then demoting code, so the kernel code always runs will full + * privileges. + */ - #define xQueueGenericCreate MPU_xQueueGenericCreate - #define xQueueCreateMutex MPU_xQueueCreateMutex - #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive - #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive - #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore - #define xQueueGenericSend MPU_xQueueGenericSend - #define xQueueAltGenericSend MPU_xQueueAltGenericSend - #define xQueueAltGenericReceive MPU_xQueueAltGenericReceive - #define xQueueGenericReceive MPU_xQueueGenericReceive - #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting - #define vQueueDelete MPU_vQueueDelete - #define xQueueGenericReset MPU_xQueueGenericReset - #define xQueueCreateSet MPU_xQueueCreateSet - #define xQueueSelectFromSet MPU_xQueueSelectFromSet - #define xQueueAddToSet MPU_xQueueAddToSet - #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet - #define xQueuePeekFromISR MPU_xQueuePeekFromISR + /* Map standard tasks.h API functions to the MPU equivalents. */ + #define xTaskCreate MPU_xTaskCreate + #define xTaskCreateStatic MPU_xTaskCreateStatic + #define xTaskCreateRestricted MPU_xTaskCreateRestricted + #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions + #define vTaskDelete MPU_vTaskDelete + #define vTaskDelay MPU_vTaskDelay + #define vTaskDelayUntil MPU_vTaskDelayUntil + #define xTaskAbortDelay MPU_xTaskAbortDelay + #define uxTaskPriorityGet MPU_uxTaskPriorityGet + #define eTaskGetState MPU_eTaskGetState + #define vTaskGetInfo MPU_vTaskGetInfo + #define vTaskPrioritySet MPU_vTaskPrioritySet + #define vTaskSuspend MPU_vTaskSuspend + #define vTaskResume MPU_vTaskResume + #define vTaskSuspendAll MPU_vTaskSuspendAll + #define xTaskResumeAll MPU_xTaskResumeAll + #define xTaskGetTickCount MPU_xTaskGetTickCount + #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks + #define pcTaskGetName MPU_pcTaskGetName + #define xTaskGetHandle MPU_xTaskGetHandle + #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark + #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag + #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag + #define vTaskSetThreadLocalStoragePointer MPU_vTaskSetThreadLocalStoragePointer + #define pvTaskGetThreadLocalStoragePointer MPU_pvTaskGetThreadLocalStoragePointer + #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook + #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle + #define uxTaskGetSystemState MPU_uxTaskGetSystemState + #define vTaskList MPU_vTaskList + #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats + #define xTaskGenericNotify MPU_xTaskGenericNotify + #define xTaskNotifyWait MPU_xTaskNotifyWait + #define ulTaskNotifyTake MPU_ulTaskNotifyTake + #define xTaskNotifyStateClear MPU_xTaskNotifyStateClear - #define pvPortMalloc MPU_pvPortMalloc - #define vPortFree MPU_vPortFree - #define xPortGetFreeHeapSize MPU_xPortGetFreeHeapSize - #define vPortInitialiseBlocks MPU_vPortInitialiseBlocks + #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle + #define vTaskSetTimeOutState MPU_vTaskSetTimeOutState + #define xTaskCheckForTimeOut MPU_xTaskCheckForTimeOut + #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState - #if configQUEUE_REGISTRY_SIZE > 0 - #define vQueueAddToRegistry MPU_vQueueAddToRegistry - #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue + /* Map standard queue.h API functions to the MPU equivalents. */ + #define xQueueGenericSend MPU_xQueueGenericSend + #define xQueueGenericReceive MPU_xQueueGenericReceive + #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting + #define uxQueueSpacesAvailable MPU_uxQueueSpacesAvailable + #define vQueueDelete MPU_vQueueDelete + #define xQueueCreateMutex MPU_xQueueCreateMutex + #define xQueueCreateMutexStatic MPU_xQueueCreateMutexStatic + #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore + #define xQueueCreateCountingSemaphoreStatic MPU_xQueueCreateCountingSemaphoreStatic + #define xQueueGetMutexHolder MPU_xQueueGetMutexHolder + #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive + #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive + #define xQueueGenericCreate MPU_xQueueGenericCreate + #define xQueueGenericCreateStatic MPU_xQueueGenericCreateStatic + #define xQueueCreateSet MPU_xQueueCreateSet + #define xQueueAddToSet MPU_xQueueAddToSet + #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet + #define xQueueSelectFromSet MPU_xQueueSelectFromSet + #define xQueueGenericReset MPU_xQueueGenericReset + + #if( configQUEUE_REGISTRY_SIZE > 0 ) + #define vQueueAddToRegistry MPU_vQueueAddToRegistry + #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue + #define pcQueueGetName MPU_pcQueueGetName #endif + /* Map standard timer.h API functions to the MPU equivalents. */ + #define xTimerCreate MPU_xTimerCreate + #define xTimerCreateStatic MPU_xTimerCreateStatic + #define pvTimerGetTimerID MPU_pvTimerGetTimerID + #define vTimerSetTimerID MPU_vTimerSetTimerID + #define xTimerIsTimerActive MPU_xTimerIsTimerActive + #define xTimerGetTimerDaemonTaskHandle MPU_xTimerGetTimerDaemonTaskHandle + #define xTimerPendFunctionCall MPU_xTimerPendFunctionCall + #define pcTimerGetName MPU_pcTimerGetName + #define xTimerGetPeriod MPU_xTimerGetPeriod + #define xTimerGetExpiryTime MPU_xTimerGetExpiryTime + #define xTimerGenericCommand MPU_xTimerGenericCommand + + /* Map standard event_group.h API functions to the MPU equivalents. */ + #define xEventGroupCreate MPU_xEventGroupCreate + #define xEventGroupCreateStatic MPU_xEventGroupCreateStatic + #define xEventGroupWaitBits MPU_xEventGroupWaitBits + #define xEventGroupClearBits MPU_xEventGroupClearBits + #define xEventGroupSetBits MPU_xEventGroupSetBits + #define xEventGroupSync MPU_xEventGroupSync + #define vEventGroupDelete MPU_vEventGroupDelete + /* Remove the privileged function macro. */ #define PRIVILEGED_FUNCTION diff --git a/FreeRTOS/Source/include/portable.h b/FreeRTOS/Source/include/portable.h index cb83f26..b9f8be3 100644 --- a/FreeRTOS/Source/include/portable.h +++ b/FreeRTOS/Source/include/portable.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -69,255 +74,34 @@ #ifndef PORTABLE_H #define PORTABLE_H -/* Include the macro file relevant to the port being used. */ +/* Each FreeRTOS port has a unique portmacro.h header file. Originally a +pre-processor definition was used to ensure the pre-processor found the correct +portmacro.h file for the port being used. That scheme was deprecated in favour +of setting the compiler's include path such that it found the correct +portmacro.h file - removing the need for the constant and allowing the +portmacro.h file to be located anywhere in relation to the port being used. +Purely for reasons of backward compatibility the old method is still valid, but +to make it clear that new projects should not use it, support for the port +specific constants has been moved into the deprecated_definitions.h header +file. */ +#include "deprecated_definitions.h" -#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT - #include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT - #include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef GCC_MEGA_AVR - #include "../portable/GCC/ATMega323/portmacro.h" -#endif - -#ifdef IAR_MEGA_AVR - #include "../portable/IAR/ATMega323/portmacro.h" -#endif - -#ifdef MPLAB_PIC24_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_DSPIC_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_PIC18F_PORT - #include "..\..\Source\portable\MPLAB\PIC18F\portmacro.h" -#endif - -#ifdef MPLAB_PIC32MX_PORT - #include "..\..\Source\portable\MPLAB\PIC32MX\portmacro.h" -#endif - -#ifdef _FEDPICC - #include "libFreeRTOS/Include/portmacro.h" -#endif - -#ifdef SDCC_CYGNAL - #include "../../Source/portable/SDCC/Cygnal/portmacro.h" -#endif - -#ifdef GCC_ARM7 - #include "../../Source/portable/GCC/ARM7_LPC2000/portmacro.h" -#endif - -#ifdef GCC_ARM7_ECLIPSE - #include "portmacro.h" -#endif - -#ifdef ROWLEY_LPC23xx - #include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h" -#endif - -#ifdef IAR_MSP430 - #include "..\..\Source\portable\IAR\MSP430\portmacro.h" -#endif - -#ifdef GCC_MSP430 - #include "../../Source/portable/GCC/MSP430F449/portmacro.h" -#endif - -#ifdef ROWLEY_MSP430 - #include "../../Source/portable/Rowley/MSP430F449/portmacro.h" -#endif - -#ifdef ARM7_LPC21xx_KEIL_RVDS - #include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h" -#endif - -#ifdef SAM7_GCC - #include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h" -#endif - -#ifdef SAM7_IAR - #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h" -#endif - -#ifdef SAM9XE_IAR - #include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h" -#endif - -#ifdef LPC2000_IAR - #include "..\..\Source\portable\IAR\LPC2000\portmacro.h" -#endif - -#ifdef STR71X_IAR - #include "..\..\Source\portable\IAR\STR71x\portmacro.h" -#endif - -#ifdef STR75X_IAR - #include "..\..\Source\portable\IAR\STR75x\portmacro.h" -#endif - -#ifdef STR75X_GCC - #include "..\..\Source\portable\GCC\STR75x\portmacro.h" -#endif - -#ifdef STR91X_IAR - #include "..\..\Source\portable\IAR\STR91x\portmacro.h" -#endif - -#ifdef GCC_H8S - #include "../../Source/portable/GCC/H8S2329/portmacro.h" -#endif - -#ifdef GCC_AT91FR40008 - #include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h" -#endif - -#ifdef RVDS_ARMCM3_LM3S102 - #include "../../Source/portable/RVDS/ARM_CM3/portmacro.h" -#endif - -#ifdef GCC_ARMCM3_LM3S102 - #include "../../Source/portable/GCC/ARM_CM3/portmacro.h" -#endif - -#ifdef GCC_ARMCM3 - #include "../../Source/portable/GCC/ARM_CM3/portmacro.h" -#endif - -#ifdef IAR_ARM_CM3 - #include "../../Source/portable/IAR/ARM_CM3/portmacro.h" -#endif - -#ifdef IAR_ARMCM3_LM - #include "../../Source/portable/IAR/ARM_CM3/portmacro.h" -#endif - -#ifdef HCS12_CODE_WARRIOR - #include "../../Source/portable/CodeWarrior/HCS12/portmacro.h" -#endif - -#ifdef MICROBLAZE_GCC - #include "../../Source/portable/GCC/MicroBlaze/portmacro.h" -#endif - -#ifdef TERN_EE - #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h" -#endif - -#ifdef GCC_HCS12 - #include "../../Source/portable/GCC/HCS12/portmacro.h" -#endif - -#ifdef GCC_MCF5235 - #include "../../Source/portable/GCC/MCF5235/portmacro.h" -#endif - -#ifdef COLDFIRE_V2_GCC - #include "../../../Source/portable/GCC/ColdFire_V2/portmacro.h" -#endif - -#ifdef COLDFIRE_V2_CODEWARRIOR - #include "../../Source/portable/CodeWarrior/ColdFire_V2/portmacro.h" -#endif - -#ifdef GCC_PPC405 - #include "../../Source/portable/GCC/PPC405_Xilinx/portmacro.h" -#endif - -#ifdef GCC_PPC440 - #include "../../Source/portable/GCC/PPC440_Xilinx/portmacro.h" -#endif - -#ifdef _16FX_SOFTUNE - #include "..\..\Source\portable\Softune\MB96340\portmacro.h" -#endif - -#ifdef BCC_INDUSTRIAL_PC_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\PC\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef BCC_FLASH_LITE_186_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef __GNUC__ - #ifdef __AVR32_AVR32A__ - #include "portmacro.h" - #endif -#endif - -#ifdef __ICCAVR32__ - #ifdef __CORE__ - #if __CORE__ == __AVR32A__ - #include "portmacro.h" - #endif - #endif -#endif - -#ifdef __91467D - #include "portmacro.h" -#endif - -#ifdef __96340 - #include "portmacro.h" -#endif - - -#ifdef __IAR_V850ES_Fx3__ - #include "../../Source/portable/IAR/V850ES/portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3__ - #include "../../Source/portable/IAR/V850ES/portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3_L__ - #include "../../Source/portable/IAR/V850ES/portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx2__ - #include "../../Source/portable/IAR/V850ES/portmacro.h" -#endif - -#ifdef __IAR_V850ES_Hx2__ - #include "../../Source/portable/IAR/V850ES/portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3__ - #include "../../Source/portable/IAR/78K0R/portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3L__ - #include "../../Source/portable/IAR/78K0R/portmacro.h" -#endif - -/* Catch all to ensure portmacro.h is included in the build. Newer demos -have the path as part of the project options, rather than as relative from -the project location. If portENTER_CRITICAL() has not been defined then -portmacro.h has not yet been included - as every portmacro.h provides a -portENTER_CRITICAL() definition. Check the demo application for your demo -to find the path to the correct portmacro.h file. */ +/* If portENTER_CRITICAL is not defined then including deprecated_definitions.h +did not result in a portmacro.h header file being included - and it should be +included here. In this case the path to the correct portmacro.h header file +must be set in the compiler's include path. */ #ifndef portENTER_CRITICAL #include "portmacro.h" #endif +#if portBYTE_ALIGNMENT == 32 + #define portBYTE_ALIGNMENT_MASK ( 0x001f ) +#endif + +#if portBYTE_ALIGNMENT == 16 + #define portBYTE_ALIGNMENT_MASK ( 0x000f ) +#endif + #if portBYTE_ALIGNMENT == 8 #define portBYTE_ALIGNMENT_MASK ( 0x0007 ) #endif @@ -355,11 +139,32 @@ extern "C" { * */ #if( portUSING_MPU_WRAPPERS == 1 ) - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged ) PRIVILEGED_FUNCTION; + StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters, BaseType_t xRunPrivileged ) PRIVILEGED_FUNCTION; #else - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ) PRIVILEGED_FUNCTION; + StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) PRIVILEGED_FUNCTION; #endif +/* Used by heap_5.c. */ +typedef struct HeapRegion +{ + uint8_t *pucStartAddress; + size_t xSizeInBytes; +} HeapRegion_t; + +/* + * Used to define multiple heap regions for use by heap_5.c. This function + * must be called before any calls to pvPortMalloc() - not creating a task, + * queue, semaphore, mutex, software timer, event group, etc. will result in + * pvPortMalloc being called. + * + * pxHeapRegions passes in an array of HeapRegion_t structures - each of which + * defines a region of memory that can be used as the heap. The array is + * terminated by a HeapRegions_t structure that has a size of 0. The region + * with the lowest start address must appear first in the array. + */ +void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions ) PRIVILEGED_FUNCTION; + + /* * Map to the memory management routines required for the port. */ @@ -367,12 +172,13 @@ void *pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION; void vPortFree( void *pv ) PRIVILEGED_FUNCTION; void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION; size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION; +size_t xPortGetMinimumEverFreeHeapSize( void ) PRIVILEGED_FUNCTION; /* * Setup the hardware ready for the scheduler to take control. This generally * sets up a tick interrupt and sets timers for the correct tick frequency. */ -portBASE_TYPE xPortStartScheduler( void ) PRIVILEGED_FUNCTION; +BaseType_t xPortStartScheduler( void ) PRIVILEGED_FUNCTION; /* * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so @@ -390,7 +196,7 @@ void vPortEndScheduler( void ) PRIVILEGED_FUNCTION; */ #if( portUSING_MPU_WRAPPERS == 1 ) struct xMEMORY_REGION; - void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; + void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, StackType_t *pxBottomOfStack, uint32_t ulStackDepth ) PRIVILEGED_FUNCTION; #endif #ifdef __cplusplus diff --git a/FreeRTOS/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h index e2531bc..0b63fd8 100644 --- a/FreeRTOS/Source/include/projdefs.h +++ b/FreeRTOS/Source/include/projdefs.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -65,23 +70,91 @@ #ifndef PROJDEFS_H #define PROJDEFS_H -/* Defines the prototype to which task functions must conform. */ -typedef void (*pdTASK_CODE)( void * ); +/* + * Defines the prototype to which task functions must conform. Defined in this + * file to ensure the type is known before portable.h is included. + */ +typedef void (*TaskFunction_t)( void * ); -#define pdFALSE ( ( portBASE_TYPE ) 0 ) -#define pdTRUE ( ( portBASE_TYPE ) 1 ) +/* Converts a time in milliseconds to a time in ticks. This macro can be +overridden by a macro of the same name defined in FreeRTOSConfig.h in case the +definition here is not suitable for your application. */ +#ifndef pdMS_TO_TICKS + #define pdMS_TO_TICKS( xTimeInMs ) ( ( TickType_t ) ( ( ( TickType_t ) ( xTimeInMs ) * ( TickType_t ) configTICK_RATE_HZ ) / ( TickType_t ) 1000 ) ) +#endif -#define pdPASS ( pdTRUE ) -#define pdFAIL ( pdFALSE ) -#define errQUEUE_EMPTY ( ( portBASE_TYPE ) 0 ) -#define errQUEUE_FULL ( ( portBASE_TYPE ) 0 ) +#define pdFALSE ( ( BaseType_t ) 0 ) +#define pdTRUE ( ( BaseType_t ) 1 ) -/* Error definitions. */ +#define pdPASS ( pdTRUE ) +#define pdFAIL ( pdFALSE ) +#define errQUEUE_EMPTY ( ( BaseType_t ) 0 ) +#define errQUEUE_FULL ( ( BaseType_t ) 0 ) + +/* FreeRTOS error definitions. */ #define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ( -1 ) -#define errNO_TASK_TO_RUN ( -2 ) #define errQUEUE_BLOCKED ( -4 ) #define errQUEUE_YIELD ( -5 ) +/* Macros used for basic data corruption checks. */ +#ifndef configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES + #define configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES 0 +#endif + +#if( configUSE_16_BIT_TICKS == 1 ) + #define pdINTEGRITY_CHECK_VALUE 0x5a5a +#else + #define pdINTEGRITY_CHECK_VALUE 0x5a5a5a5aUL +#endif + +/* The following errno values are used by FreeRTOS+ components, not FreeRTOS +itself. */ +#define pdFREERTOS_ERRNO_NONE 0 /* No errors */ +#define pdFREERTOS_ERRNO_ENOENT 2 /* No such file or directory */ +#define pdFREERTOS_ERRNO_EINTR 4 /* Interrupted system call */ +#define pdFREERTOS_ERRNO_EIO 5 /* I/O error */ +#define pdFREERTOS_ERRNO_ENXIO 6 /* No such device or address */ +#define pdFREERTOS_ERRNO_EBADF 9 /* Bad file number */ +#define pdFREERTOS_ERRNO_EAGAIN 11 /* No more processes */ +#define pdFREERTOS_ERRNO_EWOULDBLOCK 11 /* Operation would block */ +#define pdFREERTOS_ERRNO_ENOMEM 12 /* Not enough memory */ +#define pdFREERTOS_ERRNO_EACCES 13 /* Permission denied */ +#define pdFREERTOS_ERRNO_EFAULT 14 /* Bad address */ +#define pdFREERTOS_ERRNO_EBUSY 16 /* Mount device busy */ +#define pdFREERTOS_ERRNO_EEXIST 17 /* File exists */ +#define pdFREERTOS_ERRNO_EXDEV 18 /* Cross-device link */ +#define pdFREERTOS_ERRNO_ENODEV 19 /* No such device */ +#define pdFREERTOS_ERRNO_ENOTDIR 20 /* Not a directory */ +#define pdFREERTOS_ERRNO_EISDIR 21 /* Is a directory */ +#define pdFREERTOS_ERRNO_EINVAL 22 /* Invalid argument */ +#define pdFREERTOS_ERRNO_ENOSPC 28 /* No space left on device */ +#define pdFREERTOS_ERRNO_ESPIPE 29 /* Illegal seek */ +#define pdFREERTOS_ERRNO_EROFS 30 /* Read only file system */ +#define pdFREERTOS_ERRNO_EUNATCH 42 /* Protocol driver not attached */ +#define pdFREERTOS_ERRNO_EBADE 50 /* Invalid exchange */ +#define pdFREERTOS_ERRNO_EFTYPE 79 /* Inappropriate file type or format */ +#define pdFREERTOS_ERRNO_ENMFILE 89 /* No more files */ +#define pdFREERTOS_ERRNO_ENOTEMPTY 90 /* Directory not empty */ +#define pdFREERTOS_ERRNO_ENAMETOOLONG 91 /* File or path name too long */ +#define pdFREERTOS_ERRNO_EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#define pdFREERTOS_ERRNO_ENOBUFS 105 /* No buffer space available */ +#define pdFREERTOS_ERRNO_ENOPROTOOPT 109 /* Protocol not available */ +#define pdFREERTOS_ERRNO_EADDRINUSE 112 /* Address already in use */ +#define pdFREERTOS_ERRNO_ETIMEDOUT 116 /* Connection timed out */ +#define pdFREERTOS_ERRNO_EINPROGRESS 119 /* Connection already in progress */ +#define pdFREERTOS_ERRNO_EALREADY 120 /* Socket already connected */ +#define pdFREERTOS_ERRNO_EADDRNOTAVAIL 125 /* Address not available */ +#define pdFREERTOS_ERRNO_EISCONN 127 /* Socket is already connected */ +#define pdFREERTOS_ERRNO_ENOTCONN 128 /* Socket is not connected */ +#define pdFREERTOS_ERRNO_ENOMEDIUM 135 /* No medium inserted */ +#define pdFREERTOS_ERRNO_EILSEQ 138 /* An invalid UTF-16 sequence was encountered. */ +#define pdFREERTOS_ERRNO_ECANCELED 140 /* Operation canceled. */ + +/* The following endian values are used by FreeRTOS+ components, not FreeRTOS +itself. */ +#define pdFREERTOS_LITTLE_ENDIAN 0 +#define pdFREERTOS_BIG_ENDIAN 1 + #endif /* PROJDEFS_H */ diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index 3968cff..30be360 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -77,49 +82,61 @@ extern "C" { /** * Type by which queues are referenced. For example, a call to xQueueCreate() - * returns an xQueueHandle variable that can then be used as a parameter to + * returns an QueueHandle_t variable that can then be used as a parameter to * xQueueSend(), xQueueReceive(), etc. */ -typedef void * xQueueHandle; +typedef void * QueueHandle_t; /** * Type by which queue sets are referenced. For example, a call to * xQueueCreateSet() returns an xQueueSet variable that can then be used as a * parameter to xQueueSelectFromSet(), xQueueAddToSet(), etc. */ -typedef void * xQueueSetHandle; +typedef void * QueueSetHandle_t; /** * Queue sets can contain both queues and semaphores, so the - * xQueueSetMemberHandle is defined as a type to be used where a parameter or - * return value can be either an xQueueHandle or an xSemaphoreHandle. + * QueueSetMemberHandle_t is defined as a type to be used where a parameter or + * return value can be either an QueueHandle_t or an SemaphoreHandle_t. */ -typedef void * xQueueSetMemberHandle; +typedef void * QueueSetMemberHandle_t; /* For internal use only. */ -#define queueSEND_TO_BACK ( ( portBASE_TYPE ) 0 ) -#define queueSEND_TO_FRONT ( ( portBASE_TYPE ) 1 ) -#define queueOVERWRITE ( ( portBASE_TYPE ) 2 ) +#define queueSEND_TO_BACK ( ( BaseType_t ) 0 ) +#define queueSEND_TO_FRONT ( ( BaseType_t ) 1 ) +#define queueOVERWRITE ( ( BaseType_t ) 2 ) /* For internal use only. These definitions *must* match those in queue.c. */ -#define queueQUEUE_TYPE_BASE ( ( unsigned char ) 0U ) -#define queueQUEUE_TYPE_SET ( ( unsigned char ) 0U ) -#define queueQUEUE_TYPE_MUTEX ( ( unsigned char ) 1U ) -#define queueQUEUE_TYPE_COUNTING_SEMAPHORE ( ( unsigned char ) 2U ) -#define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( unsigned char ) 3U ) -#define queueQUEUE_TYPE_RECURSIVE_MUTEX ( ( unsigned char ) 4U ) +#define queueQUEUE_TYPE_BASE ( ( uint8_t ) 0U ) +#define queueQUEUE_TYPE_SET ( ( uint8_t ) 0U ) +#define queueQUEUE_TYPE_MUTEX ( ( uint8_t ) 1U ) +#define queueQUEUE_TYPE_COUNTING_SEMAPHORE ( ( uint8_t ) 2U ) +#define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U ) +#define queueQUEUE_TYPE_RECURSIVE_MUTEX ( ( uint8_t ) 4U ) /** * queue. h *
- xQueueHandle xQueueCreate(
-							  unsigned portBASE_TYPE uxQueueLength,
-							  unsigned portBASE_TYPE uxItemSize
+ QueueHandle_t xQueueCreate(
+							  UBaseType_t uxQueueLength,
+							  UBaseType_t uxItemSize
 						  );
  * 
* - * Creates a new queue instance. This allocates the storage required by the - * new queue and returns a handle for the queue. + * Creates a new queue instance, and returns a handle by which the new queue + * can be referenced. + * + * Internally, within the FreeRTOS implementation, queues use two blocks of + * memory. The first block is used to hold the queue's data structures. The + * second block is used to hold items placed into the queue. If a queue is + * created using xQueueCreate() then both blocks of memory are automatically + * dynamically allocated inside the xQueueCreate() function. (see + * http://www.freertos.org/a00111.html). If a queue is created using + * xQueueCreateStatic() then the application writer must provide the memory that + * will get used by the queue. xQueueCreateStatic() therefore allows a queue to + * be created without using any dynamic memory allocation. + * + * http://www.FreeRTOS.org/Embedded-RTOS-Queues.html * * @param uxQueueLength The maximum number of items that the queue can contain. * @@ -142,10 +159,10 @@ typedef void * xQueueSetMemberHandle; void vATask( void *pvParameters ) { - xQueueHandle xQueue1, xQueue2; + QueueHandle_t xQueue1, xQueue2; - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); + // Create a queue capable of containing 10 uint32_t values. + xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); if( xQueue1 == 0 ) { // Queue was not created and must not be used. @@ -165,15 +182,103 @@ typedef void * xQueueSetMemberHandle; * \defgroup xQueueCreate xQueueCreate * \ingroup QueueManagement */ -#define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( uxQueueLength, uxItemSize, queueQUEUE_TYPE_BASE ) +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + #define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) ) +#endif /** * queue. h *
- portBASE_TYPE xQueueSendToToFront(
-								   xQueueHandle	xQueue,
-								   const void	*	pvItemToQueue,
-								   portTickType	xTicksToWait
+ QueueHandle_t xQueueCreateStatic(
+							  UBaseType_t uxQueueLength,
+							  UBaseType_t uxItemSize,
+							  uint8_t *pucQueueStorageBuffer,
+							  StaticQueue_t *pxQueueBuffer
+						  );
+ * 
+ * + * Creates a new queue instance, and returns a handle by which the new queue + * can be referenced. + * + * Internally, within the FreeRTOS implementation, queues use two blocks of + * memory. The first block is used to hold the queue's data structures. The + * second block is used to hold items placed into the queue. If a queue is + * created using xQueueCreate() then both blocks of memory are automatically + * dynamically allocated inside the xQueueCreate() function. (see + * http://www.freertos.org/a00111.html). If a queue is created using + * xQueueCreateStatic() then the application writer must provide the memory that + * will get used by the queue. xQueueCreateStatic() therefore allows a queue to + * be created without using any dynamic memory allocation. + * + * http://www.FreeRTOS.org/Embedded-RTOS-Queues.html + * + * @param uxQueueLength The maximum number of items that the queue can contain. + * + * @param uxItemSize The number of bytes each item in the queue will require. + * Items are queued by copy, not by reference, so this is the number of bytes + * that will be copied for each posted item. Each item on the queue must be + * the same size. + * + * @param pucQueueStorageBuffer If uxItemSize is not zero then + * pucQueueStorageBuffer must point to a uint8_t array that is at least large + * enough to hold the maximum number of items that can be in the queue at any + * one time - which is ( uxQueueLength * uxItemsSize ) bytes. If uxItemSize is + * zero then pucQueueStorageBuffer can be NULL. + * + * @param pxQueueBuffer Must point to a variable of type StaticQueue_t, which + * will be used to hold the queue's data structure. + * + * @return If the queue is created then a handle to the created queue is + * returned. If pxQueueBuffer is NULL then NULL is returned. + * + * Example usage: +
+ struct AMessage
+ {
+	char ucMessageID;
+	char ucData[ 20 ];
+ };
+
+ #define QUEUE_LENGTH 10
+ #define ITEM_SIZE sizeof( uint32_t )
+
+ // xQueueBuffer will hold the queue structure.
+ StaticQueue_t xQueueBuffer;
+
+ // ucQueueStorage will hold the items posted to the queue.  Must be at least
+ // [(queue length) * ( queue item size)] bytes long.
+ uint8_t ucQueueStorage[ QUEUE_LENGTH * ITEM_SIZE ];
+
+ void vATask( void *pvParameters )
+ {
+ QueueHandle_t xQueue1;
+
+	// Create a queue capable of containing 10 uint32_t values.
+	xQueue1 = xQueueCreate( QUEUE_LENGTH, // The number of items the queue can hold.
+							ITEM_SIZE	  // The size of each item in the queue
+							&( ucQueueStorage[ 0 ] ), // The buffer that will hold the items in the queue.
+							&xQueueBuffer ); // The buffer that will hold the queue structure.
+
+	// The queue is guaranteed to be created successfully as no dynamic memory
+	// allocation is used.  Therefore xQueue1 is now a handle to a valid queue.
+
+	// ... Rest of task code.
+ }
+ 
+ * \defgroup xQueueCreateStatic xQueueCreateStatic + * \ingroup QueueManagement + */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + #define xQueueCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxQueueBuffer ) xQueueGenericCreateStatic( ( uxQueueLength ), ( uxItemSize ), ( pucQueueStorage ), ( pxQueueBuffer ), ( queueQUEUE_TYPE_BASE ) ) +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * queue. h + *
+ BaseType_t xQueueSendToToFront(
+								   QueueHandle_t	xQueue,
+								   const void		*pvItemToQueue,
+								   TickType_t		xTicksToWait
 							   );
  * 
* @@ -195,7 +300,7 @@ typedef void * xQueueSetMemberHandle; * waiting for space to become available on the queue, should it already * be full. The call will return immediately if this is set to 0 and the * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. * @@ -207,15 +312,15 @@ typedef void * xQueueSetMemberHandle; char ucData[ 20 ]; } xMessage; - unsigned long ulVar = 10UL; + uint32_t ulVar = 10UL; void vATask( void *pvParameters ) { - xQueueHandle xQueue1, xQueue2; + QueueHandle_t xQueue1, xQueue2; struct AMessage *pxMessage; - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); + // Create a queue capable of containing 10 uint32_t values. + xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); // Create a queue capable of containing 10 pointers to AMessage structures. // These should be passed by pointer as they contain a lot of data. @@ -225,9 +330,9 @@ typedef void * xQueueSetMemberHandle; if( xQueue1 != 0 ) { - // Send an unsigned long. Wait for 10 ticks for space to become + // Send an uint32_t. Wait for 10 ticks for space to become // available if necessary. - if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) + if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( TickType_t ) 10 ) != pdPASS ) { // Failed to post the message, even after 10 ticks. } @@ -238,7 +343,7 @@ typedef void * xQueueSetMemberHandle; // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( TickType_t ) 0 ); } // ... Rest of task code. @@ -252,10 +357,10 @@ typedef void * xQueueSetMemberHandle; /** * queue. h *
- portBASE_TYPE xQueueSendToBack(
-								   xQueueHandle	xQueue,
-								   const	void	*	pvItemToQueue,
-								   portTickType	xTicksToWait
+ BaseType_t xQueueSendToBack(
+								   QueueHandle_t	xQueue,
+								   const void		*pvItemToQueue,
+								   TickType_t		xTicksToWait
 							   );
  * 
* @@ -277,7 +382,7 @@ typedef void * xQueueSetMemberHandle; * waiting for space to become available on the queue, should it already * be full. The call will return immediately if this is set to 0 and the queue * is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. * @@ -289,15 +394,15 @@ typedef void * xQueueSetMemberHandle; char ucData[ 20 ]; } xMessage; - unsigned long ulVar = 10UL; + uint32_t ulVar = 10UL; void vATask( void *pvParameters ) { - xQueueHandle xQueue1, xQueue2; + QueueHandle_t xQueue1, xQueue2; struct AMessage *pxMessage; - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); + // Create a queue capable of containing 10 uint32_t values. + xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); // Create a queue capable of containing 10 pointers to AMessage structures. // These should be passed by pointer as they contain a lot of data. @@ -307,9 +412,9 @@ typedef void * xQueueSetMemberHandle; if( xQueue1 != 0 ) { - // Send an unsigned long. Wait for 10 ticks for space to become + // Send an uint32_t. Wait for 10 ticks for space to become // available if necessary. - if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) + if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( TickType_t ) 10 ) != pdPASS ) { // Failed to post the message, even after 10 ticks. } @@ -320,7 +425,7 @@ typedef void * xQueueSetMemberHandle; // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( TickType_t ) 0 ); } // ... Rest of task code. @@ -334,10 +439,10 @@ typedef void * xQueueSetMemberHandle; /** * queue. h *
- portBASE_TYPE xQueueSend(
-							  xQueueHandle xQueue,
+ BaseType_t xQueueSend(
+							  QueueHandle_t xQueue,
 							  const void * pvItemToQueue,
-							  portTickType xTicksToWait
+							  TickType_t xTicksToWait
 						 );
  * 
* @@ -361,7 +466,7 @@ typedef void * xQueueSetMemberHandle; * waiting for space to become available on the queue, should it already * be full. The call will return immediately if this is set to 0 and the * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. * @@ -373,15 +478,15 @@ typedef void * xQueueSetMemberHandle; char ucData[ 20 ]; } xMessage; - unsigned long ulVar = 10UL; + uint32_t ulVar = 10UL; void vATask( void *pvParameters ) { - xQueueHandle xQueue1, xQueue2; + QueueHandle_t xQueue1, xQueue2; struct AMessage *pxMessage; - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); + // Create a queue capable of containing 10 uint32_t values. + xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); // Create a queue capable of containing 10 pointers to AMessage structures. // These should be passed by pointer as they contain a lot of data. @@ -391,9 +496,9 @@ typedef void * xQueueSetMemberHandle; if( xQueue1 != 0 ) { - // Send an unsigned long. Wait for 10 ticks for space to become + // Send an uint32_t. Wait for 10 ticks for space to become // available if necessary. - if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) + if( xQueueSend( xQueue1, ( void * ) &ulVar, ( TickType_t ) 10 ) != pdPASS ) { // Failed to post the message, even after 10 ticks. } @@ -404,7 +509,7 @@ typedef void * xQueueSetMemberHandle; // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSend( xQueue2, ( void * ) &pxMessage, ( TickType_t ) 0 ); } // ... Rest of task code. @@ -418,8 +523,8 @@ typedef void * xQueueSetMemberHandle; /** * queue. h *
- portBASE_TYPE xQueueOverwrite(
-							  xQueueHandle xQueue,
+ BaseType_t xQueueOverwrite(
+							  QueueHandle_t xQueue,
 							  const void * pvItemToQueue
 						 );
  * 
@@ -450,14 +555,14 @@ typedef void * xQueueSetMemberHandle; void vFunction( void *pvParameters ) { - xQueueHandle xQueue; - unsigned long ulVarToSend, ulValReceived; + QueueHandle_t xQueue; + uint32_t ulVarToSend, ulValReceived; - // Create a queue to hold one unsigned long value. It is strongly + // Create a queue to hold one uint32_t value. It is strongly // recommended *not* to use xQueueOverwrite() on queues that can // contain more than one value, and doing so will trigger an assertion // if configASSERT() is defined. - xQueue = xQueueCreate( 1, sizeof( unsigned long ) ); + xQueue = xQueueCreate( 1, sizeof( uint32_t ) ); // Write the value 10 to the queue using xQueueOverwrite(). ulVarToSend = 10; @@ -502,11 +607,11 @@ typedef void * xQueueSetMemberHandle; /** * queue. h *
- portBASE_TYPE xQueueGenericSend(
-									xQueueHandle xQueue,
+ BaseType_t xQueueGenericSend(
+									QueueHandle_t xQueue,
 									const void * pvItemToQueue,
-									portTickType xTicksToWait
-									portBASE_TYPE xCopyPosition
+									TickType_t xTicksToWait
+									BaseType_t xCopyPosition
 								);
  * 
* @@ -528,7 +633,7 @@ typedef void * xQueueSetMemberHandle; * waiting for space to become available on the queue, should it already * be full. The call will return immediately if this is set to 0 and the * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the * item at the back of the queue, or queueSEND_TO_FRONT to place the item @@ -544,15 +649,15 @@ typedef void * xQueueSetMemberHandle; char ucData[ 20 ]; } xMessage; - unsigned long ulVar = 10UL; + uint32_t ulVar = 10UL; void vATask( void *pvParameters ) { - xQueueHandle xQueue1, xQueue2; + QueueHandle_t xQueue1, xQueue2; struct AMessage *pxMessage; - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); + // Create a queue capable of containing 10 uint32_t values. + xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); // Create a queue capable of containing 10 pointers to AMessage structures. // These should be passed by pointer as they contain a lot of data. @@ -562,9 +667,9 @@ typedef void * xQueueSetMemberHandle; if( xQueue1 != 0 ) { - // Send an unsigned long. Wait for 10 ticks for space to become + // Send an uint32_t. Wait for 10 ticks for space to become // available if necessary. - if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10, queueSEND_TO_BACK ) != pdPASS ) + if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( TickType_t ) 10, queueSEND_TO_BACK ) != pdPASS ) { // Failed to post the message, even after 10 ticks. } @@ -575,7 +680,7 @@ typedef void * xQueueSetMemberHandle; // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0, queueSEND_TO_BACK ); + xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( TickType_t ) 0, queueSEND_TO_BACK ); } // ... Rest of task code. @@ -584,15 +689,15 @@ typedef void * xQueueSetMemberHandle; * \defgroup xQueueSend xQueueSend * \ingroup QueueManagement */ -signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; +BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueuePeek(
-							 xQueueHandle xQueue,
+ BaseType_t xQueuePeek(
+							 QueueHandle_t xQueue,
 							 void *pvBuffer,
-							 portTickType xTicksToWait
+							 TickType_t xTicksToWait
 						 );
* * This is a macro that calls the xQueueGenericReceive() function. @@ -618,7 +723,7 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const * @param xTicksToWait The maximum amount of time the task should block * waiting for an item to receive should the queue be empty at the time * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * xQueuePeek() will return immediately if xTicksToWait is 0 and the queue * is empty. * @@ -633,7 +738,7 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const char ucData[ 20 ]; } xMessage; - xQueueHandle xQueue; + QueueHandle_t xQueue; // Task to create a queue and post a value. void vATask( void *pvParameters ) @@ -653,7 +758,7 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSend( xQueue, ( void * ) &pxMessage, ( TickType_t ) 0 ); // ... Rest of task code. } @@ -667,7 +772,7 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const { // Peek a message on the created queue. Block for 10 ticks if a // message is not immediately available. - if( xQueuePeek( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) + if( xQueuePeek( xQueue, &( pxRxedMessage ), ( TickType_t ) 10 ) ) { // pcRxedMessage now points to the struct AMessage variable posted // by vATask, but the item still remains on the queue. @@ -685,8 +790,8 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const /** * queue. h *
- portBASE_TYPE xQueuePeekFromISR(
-									xQueueHandle xQueue,
+ BaseType_t xQueuePeekFromISR(
+									QueueHandle_t xQueue,
 									void *pvBuffer,
 								);
* @@ -713,15 +818,15 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const * \defgroup xQueuePeekFromISR xQueuePeekFromISR * \ingroup QueueManagement */ -signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const pvBuffer ) PRIVILEGED_FUNCTION; +BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueueReceive(
-								 xQueueHandle xQueue,
+ BaseType_t xQueueReceive(
+								 QueueHandle_t xQueue,
 								 void *pvBuffer,
-								 portTickType xTicksToWait
+								 TickType_t xTicksToWait
 							);
* * This is a macro that calls the xQueueGenericReceive() function. @@ -745,7 +850,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const * waiting for an item to receive should the queue be empty at the time * of the call. xQueueReceive() will return immediately if xTicksToWait * is zero and the queue is empty. The time is defined in tick periods so the - * constant portTICK_RATE_MS should be used to convert to real time if this is + * constant portTICK_PERIOD_MS should be used to convert to real time if this is * required. * * @return pdTRUE if an item was successfully received from the queue, @@ -759,7 +864,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const char ucData[ 20 ]; } xMessage; - xQueueHandle xQueue; + QueueHandle_t xQueue; // Task to create a queue and post a value. void vATask( void *pvParameters ) @@ -779,7 +884,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSend( xQueue, ( void * ) &pxMessage, ( TickType_t ) 0 ); // ... Rest of task code. } @@ -793,7 +898,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const { // Receive a message on the created queue. Block for 10 ticks if a // message is not immediately available. - if( xQueueReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) + if( xQueueReceive( xQueue, &( pxRxedMessage ), ( TickType_t ) 10 ) ) { // pcRxedMessage now points to the struct AMessage variable posted // by vATask. @@ -812,11 +917,11 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const /** * queue. h *
- portBASE_TYPE xQueueGenericReceive(
-									   xQueueHandle	xQueue,
+ BaseType_t xQueueGenericReceive(
+									   QueueHandle_t	xQueue,
 									   void	*pvBuffer,
-									   portTickType	xTicksToWait
-									   portBASE_TYPE	xJustPeek
+									   TickType_t	xTicksToWait
+									   BaseType_t	xJustPeek
 									);
* * It is preferred that the macro xQueueReceive() be used rather than calling @@ -838,7 +943,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const * @param xTicksToWait The maximum amount of time the task should block * waiting for an item to receive should the queue be empty at the time * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. + * portTICK_PERIOD_MS should be used to convert to real time if this is required. * xQueueGenericReceive() will return immediately if the queue is empty and * xTicksToWait is 0. * @@ -858,7 +963,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const char ucData[ 20 ]; } xMessage; - xQueueHandle xQueue; + QueueHandle_t xQueue; // Task to create a queue and post a value. void vATask( void *pvParameters ) @@ -878,7 +983,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const // Send a pointer to a struct AMessage object. Don't block if the // queue is already full. pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); + xQueueSend( xQueue, ( void * ) &pxMessage, ( TickType_t ) 0 ); // ... Rest of task code. } @@ -892,7 +997,7 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const { // Receive a message on the created queue. Block for 10 ticks if a // message is not immediately available. - if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) + if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( TickType_t ) 10 ) ) { // pcRxedMessage now points to the struct AMessage variable posted // by vATask. @@ -905,11 +1010,11 @@ signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const * \defgroup xQueueReceive xQueueReceive * \ingroup QueueManagement */ -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeek ) PRIVILEGED_FUNCTION; +BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeek ) PRIVILEGED_FUNCTION; /** * queue. h - *
unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );
+ *
UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue );
* * Return the number of messages stored in a queue. * @@ -920,11 +1025,28 @@ signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, const void * con * \defgroup uxQueueMessagesWaiting uxQueueMessagesWaiting * \ingroup QueueManagement */ -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue ) PRIVILEGED_FUNCTION; +UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; /** * queue. h - *
void vQueueDelete( xQueueHandle xQueue );
+ *
UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue );
+ * + * Return the number of free spaces available in a queue. This is equal to the + * number of items that can be sent to the queue before the queue becomes full + * if no items are removed. + * + * @param xQueue A handle to the queue being queried. + * + * @return The number of spaces available in the queue. + * + * \defgroup uxQueueMessagesWaiting uxQueueMessagesWaiting + * \ingroup QueueManagement + */ +UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; + +/** + * queue. h + *
void vQueueDelete( QueueHandle_t xQueue );
* * Delete a queue - freeing all the memory allocated for storing of items * placed on the queue. @@ -934,15 +1056,15 @@ unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue ) PRIVI * \defgroup vQueueDelete vQueueDelete * \ingroup QueueManagement */ -void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; +void vQueueDelete( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueueSendToFrontFromISR(
-										 xQueueHandle xQueue,
+ BaseType_t xQueueSendToFrontFromISR(
+										 QueueHandle_t xQueue,
 										 const void *pvItemToQueue,
-										 portBASE_TYPE *pxHigherPriorityTaskWoken
+										 BaseType_t *pxHigherPriorityTaskWoken
 									  );
  
* @@ -977,7 +1099,7 @@ void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; void vBufferISR( void ) { char cIn; - portBASE_TYPE xHigherPrioritTaskWoken; + BaseType_t xHigherPrioritTaskWoken; // We have not woken a task at the start of the ISR. xHigherPriorityTaskWoken = pdFALSE; @@ -1010,10 +1132,10 @@ void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueueSendToBackFromISR(
-										 xQueueHandle xQueue,
+ BaseType_t xQueueSendToBackFromISR(
+										 QueueHandle_t xQueue,
 										 const void *pvItemToQueue,
-										 portBASE_TYPE *pxHigherPriorityTaskWoken
+										 BaseType_t *pxHigherPriorityTaskWoken
 									  );
  
* @@ -1048,7 +1170,7 @@ void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; void vBufferISR( void ) { char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken; // We have not woken a task at the start of the ISR. xHigherPriorityTaskWoken = pdFALSE; @@ -1080,10 +1202,10 @@ void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueueOverwriteFromISR(
-							  xQueueHandle xQueue,
+ BaseType_t xQueueOverwriteFromISR(
+							  QueueHandle_t xQueue,
 							  const void * pvItemToQueue,
-							  portBASE_TYPE *pxHigherPriorityTaskWoken
+							  BaseType_t *pxHigherPriorityTaskWoken
 						 );
  * 
* @@ -1118,22 +1240,22 @@ void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; * Example usage:
 
- xQueueHandle xQueue;
- 
+ QueueHandle_t xQueue;
+
  void vFunction( void *pvParameters )
  {
- 	// Create a queue to hold one unsigned long value.  It is strongly
+ 	// Create a queue to hold one uint32_t value.  It is strongly
 	// recommended *not* to use xQueueOverwriteFromISR() on queues that can
 	// contain more than one value, and doing so will trigger an assertion
 	// if configASSERT() is defined.
-	xQueue = xQueueCreate( 1, sizeof( unsigned long ) );
+	xQueue = xQueueCreate( 1, sizeof( uint32_t ) );
 }
 
 void vAnInterruptHandler( void )
 {
 // xHigherPriorityTaskWoken must be set to pdFALSE before it is used.
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
-unsigned long ulVarToSend, ulValReceived;
+BaseType_t xHigherPriorityTaskWoken = pdFALSE;
+uint32_t ulVarToSend, ulValReceived;
 
 	// Write the value 10 to the queue using xQueueOverwriteFromISR().
 	ulVarToSend = 10;
@@ -1148,7 +1270,7 @@ unsigned long ulVarToSend, ulValReceived;
 	// Reading from the queue will now return 100.
 
 	// ...
-	
+
 	if( xHigherPrioritytaskWoken == pdTRUE )
 	{
 		// Writing to the queue caused a task to unblock and the unblocked task
@@ -1167,10 +1289,10 @@ unsigned long ulVarToSend, ulValReceived;
 /**
  * queue. h
  * 
- portBASE_TYPE xQueueSendFromISR(
-									 xQueueHandle xQueue,
+ BaseType_t xQueueSendFromISR(
+									 QueueHandle_t xQueue,
 									 const void *pvItemToQueue,
-									 portBASE_TYPE *pxHigherPriorityTaskWoken
+									 BaseType_t *pxHigherPriorityTaskWoken
 								);
  
* @@ -1208,7 +1330,7 @@ unsigned long ulVarToSend, ulValReceived; void vBufferISR( void ) { char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken; // We have not woken a task at the start of the ISR. xHigherPriorityTaskWoken = pdFALSE; @@ -1228,7 +1350,7 @@ unsigned long ulVarToSend, ulValReceived; if( xHigherPriorityTaskWoken ) { // Actual macro used here is port specific. - taskYIELD_FROM_ISR (); + portYIELD_FROM_ISR (); } }
@@ -1241,17 +1363,18 @@ unsigned long ulVarToSend, ulValReceived; /** * queue. h *
- portBASE_TYPE xQueueGenericSendFromISR(
-										   xQueueHandle		xQueue,
+ BaseType_t xQueueGenericSendFromISR(
+										   QueueHandle_t		xQueue,
 										   const	void	*pvItemToQueue,
-										   portBASE_TYPE	*pxHigherPriorityTaskWoken,
-										   portBASE_TYPE	xCopyPosition
+										   BaseType_t	*pxHigherPriorityTaskWoken,
+										   BaseType_t	xCopyPosition
 									   );
  
* * It is preferred that the macros xQueueSendFromISR(), * xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place - * of calling this function directly. + * of calling this function directly. xQueueGiveFromISR() is an + * equivalent for use by semaphores that don't actually copy any data. * * Post an item on a queue. It is safe to use this function from within an * interrupt service routine. @@ -1286,7 +1409,7 @@ unsigned long ulVarToSend, ulValReceived; void vBufferISR( void ) { char cIn; - portBASE_TYPE xHigherPriorityTaskWokenByPost; + BaseType_t xHigherPriorityTaskWokenByPost; // We have not woken a task at the start of the ISR. xHigherPriorityTaskWokenByPost = pdFALSE; @@ -1314,15 +1437,16 @@ unsigned long ulVarToSend, ulValReceived; * \defgroup xQueueSendFromISR xQueueSendFromISR * \ingroup QueueManagement */ -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; +BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION; +BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; /** * queue. h *
- portBASE_TYPE xQueueReceiveFromISR(
-									   xQueueHandle	xQueue,
+ BaseType_t xQueueReceiveFromISR(
+									   QueueHandle_t	xQueue,
 									   void	*pvBuffer,
-									   portBASE_TYPE *pxTaskWoken
+									   BaseType_t *pxTaskWoken
 								   );
  * 
* @@ -1346,13 +1470,13 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void * * Example usage:
 
- xQueueHandle xQueue;
+ QueueHandle_t xQueue;
 
  // Function to create a queue and post some values.
  void vAFunction( void *pvParameters )
  {
  char cValueToPost;
- const portTickType xBlockTime = ( portTickType )0xff;
+ const TickType_t xTicksToWait = ( TickType_t )0xff;
 
 	// Create a queue capable of containing 10 characters.
 	xQueue = xQueueCreate( 10, sizeof( char ) );
@@ -1364,23 +1488,23 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void *
 	// ...
 
 	// Post some characters that will be used within an ISR.  If the queue
-	// is full then this task will block for xBlockTime ticks.
+	// is full then this task will block for xTicksToWait ticks.
 	cValueToPost = 'a';
-	xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+	xQueueSend( xQueue, ( void * ) &cValueToPost, xTicksToWait );
 	cValueToPost = 'b';
-	xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+	xQueueSend( xQueue, ( void * ) &cValueToPost, xTicksToWait );
 
 	// ... keep posting characters ... this task may block when the queue
 	// becomes full.
 
 	cValueToPost = 'c';
-	xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );
+	xQueueSend( xQueue, ( void * ) &cValueToPost, xTicksToWait );
  }
 
  // ISR that outputs all the characters received on the queue.
  void vISR_Routine( void )
  {
- portBASE_TYPE xTaskWokenByReceive = pdFALSE;
+ BaseType_t xTaskWokenByReceive = pdFALSE;
  char cRxedChar;
 
 	while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) )
@@ -1403,37 +1527,15 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void *
  * \defgroup xQueueReceiveFromISR xQueueReceiveFromISR
  * \ingroup QueueManagement
  */
-signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle xQueue, const void * const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION;
 
 /*
  * Utilities to query queues that are safe to use from an ISR.  These utilities
  * should be used only from witin an ISR, or within a critical section.
  */
-signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
-signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
-unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
-
-
-/*
- * xQueueAltGenericSend() is an alternative version of xQueueGenericSend().
- * Likewise xQueueAltGenericReceive() is an alternative version of
- * xQueueGenericReceive().
- *
- * The source code that implements the alternative (Alt) API is much
- * simpler	because it executes everything from within a critical section.
- * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the
- * preferred fully featured API too.  The fully featured API has more
- * complex	code that takes longer to execute, but makes much less use of
- * critical sections.  Therefore the alternative API sacrifices interrupt
- * responsiveness to gain execution speed, whereas the fully featured API
- * sacrifices execution speed to ensure better interrupt responsiveness.
- */
-signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );
-signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );
-#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT )
-#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK )
-#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE )
-#define xQueueAltPeek( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE )
+BaseType_t xQueueIsQueueEmptyFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueIsQueueFullFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
+UBaseType_t uxQueueMessagesWaitingFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
 
 /*
  * The functions defined above are for passing data to and from tasks.  The
@@ -1444,32 +1546,32 @@ signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle xQueue, void * const
  * should not be called directly from application code.  Instead use the macro
  * wrappers defined within croutine.h.
  */
-signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken );
-signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken );
-signed portBASE_TYPE xQueueCRSend( xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait );
-signed portBASE_TYPE xQueueCRReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait );
+BaseType_t xQueueCRSendFromISR( QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken );
+BaseType_t xQueueCRReceiveFromISR( QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxTaskWoken );
+BaseType_t xQueueCRSend( QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait );
+BaseType_t xQueueCRReceive( QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait );
 
 /*
  * For internal use only.  Use xSemaphoreCreateMutex(),
  * xSemaphoreCreateCounting() or xSemaphoreGetMutexHolder() instead of calling
  * these functions directly.
  */
-xQueueHandle xQueueCreateMutex( unsigned char ucQueueType ) PRIVILEGED_FUNCTION;
-xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) PRIVILEGED_FUNCTION;
-void* xQueueGetMutexHolder( xQueueHandle xSemaphore ) PRIVILEGED_FUNCTION;
+QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
+QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION;
+QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) PRIVILEGED_FUNCTION;
+QueueHandle_t xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION;
+void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
 
 /*
  * For internal use only.  Use xSemaphoreTakeMutexRecursive() or
  * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.
  */
-portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime ) PRIVILEGED_FUNCTION;
-portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) PRIVILEGED_FUNCTION;
 
 /*
- * Reset a queue back to its original empty state.  pdPASS is returned if the
- * queue is successfully reset.  pdFAIL is returned if the queue could not be
- * reset because there are tasks blocked on the queue waiting to either
- * receive from the queue or send to the queue.
+ * Reset a queue back to its original empty state.  The return value is now
+ * obsolete and is always set to pdPASS.
  */
 #define xQueueReset( xQueue ) xQueueGenericReset( xQueue, pdFALSE )
 
@@ -1491,10 +1593,12 @@ portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ) PRIVILEGED_FUNCTI
  * handles can also be passed in here.
  *
  * @param pcName The name to be associated with the handle.  This is the
- * name that the kernel aware debugger will display.
+ * name that the kernel aware debugger will display.  The queue registry only
+ * stores a pointer to the string - so the string must be persistent (global or
+ * preferably in ROM/Flash), not on the stack.
  */
-#if configQUEUE_REGISTRY_SIZE > 0
-	void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName ) PRIVILEGED_FUNCTION;
+#if( configQUEUE_REGISTRY_SIZE > 0 )
+	void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 #endif
 
 /*
@@ -1507,15 +1611,42 @@ portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ) PRIVILEGED_FUNCTI
  *
  * @param xQueue The handle of the queue being removed from the registry.
  */
-#if configQUEUE_REGISTRY_SIZE > 0
-	void vQueueUnregisterQueue( xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
+#if( configQUEUE_REGISTRY_SIZE > 0 )
+	void vQueueUnregisterQueue( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
 #endif
 
 /*
- * Generic version of the queue creation function, which is in turn called by
- * any queue, semaphore or mutex creation function or macro.
+ * The queue registry is provided as a means for kernel aware debuggers to
+ * locate queues, semaphores and mutexes.  Call pcQueueGetName() to look
+ * up and return the name of a queue in the queue registry from the queue's
+ * handle.
+ *
+ * @param xQueue The handle of the queue the name of which will be returned.
+ * @return If the queue is in the registry then a pointer to the name of the
+ * queue is returned.  If the queue is not in the registry then NULL is
+ * returned.
  */
-xQueueHandle xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType ) PRIVILEGED_FUNCTION;
+#if( configQUEUE_REGISTRY_SIZE > 0 )
+	const char *pcQueueGetName( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+#endif
+
+/*
+ * Generic version of the function used to creaet a queue using dynamic memory
+ * allocation.  This is called by other functions and macros that create other
+ * RTOS objects that use the queue structure as their base.
+ */
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
+	QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
+#endif
+
+/*
+ * Generic version of the function used to creaet a queue using dynamic memory
+ * allocation.  This is called by other functions and macros that create other
+ * RTOS objects that use the queue structure as their base.
+ */
+#if( configSUPPORT_STATIC_ALLOCATION == 1 )
+	QueueHandle_t xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
+#endif
 
 /*
  * Queue sets provide a mechanism to allow a task to block (pend) on a read
@@ -1565,7 +1696,7 @@ xQueueHandle xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned
  * @return If the queue set is created successfully then a handle to the created
  * queue set is returned.  Otherwise NULL is returned.
  */
-xQueueSetHandle xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength ) PRIVILEGED_FUNCTION;
+QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength ) PRIVILEGED_FUNCTION;
 
 /*
  * Adds a queue or semaphore to a queue set that was previously created by a
@@ -1579,7 +1710,7 @@ xQueueSetHandle xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength ) PRI
  * a call to xQueueSelectFromSet() has first returned a handle to that set member.
  *
  * @param xQueueOrSemaphore The handle of the queue or semaphore being added to
- * the queue set (cast to an xQueueSetMemberHandle type).
+ * the queue set (cast to an QueueSetMemberHandle_t type).
  *
  * @param xQueueSet The handle of the queue set to which the queue or semaphore
  * is being added.
@@ -1589,7 +1720,7 @@ xQueueSetHandle xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength ) PRI
  * queue set because it is already a member of a different queue set then pdFAIL
  * is returned.
  */
-portBASE_TYPE xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
 
 /*
  * Removes a queue or semaphore from a queue set.  A queue or semaphore can only
@@ -1599,7 +1730,7 @@ portBASE_TYPE xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSet
  * function.
  *
  * @param xQueueOrSemaphore The handle of the queue or semaphore being removed
- * from the queue set (cast to an xQueueSetMemberHandle type).
+ * from the queue set (cast to an QueueSetMemberHandle_t type).
  *
  * @param xQueueSet The handle of the queue set in which the queue or semaphore
  * is included.
@@ -1608,7 +1739,7 @@ portBASE_TYPE xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSet
  * then pdPASS is returned.  If the queue was not in the queue set, or the
  * queue (or semaphore) was not empty, then pdFAIL is returned.
  */
-portBASE_TYPE xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
 
 /*
  * xQueueSelectFromSet() selects from the members of a queue set a queue or
@@ -1633,30 +1764,30 @@ portBASE_TYPE xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQue
  *
  * @param xQueueSet The queue set on which the task will (potentially) block.
  *
- * @param xBlockTimeTicks The maximum time, in ticks, that the calling task will
+ * @param xTicksToWait The maximum time, in ticks, that the calling task will
  * remain in the Blocked state (with other tasks executing) to wait for a member
  * of the queue set to be ready for a successful queue read or semaphore take
  * operation.
  *
  * @return xQueueSelectFromSet() will return the handle of a queue (cast to
- * a xQueueSetMemberHandle type) contained in the queue set that contains data,
- * or the handle of a semaphore (cast to a xQueueSetMemberHandle type) contained
+ * a QueueSetMemberHandle_t type) contained in the queue set that contains data,
+ * or the handle of a semaphore (cast to a QueueSetMemberHandle_t type) contained
  * in the queue set that is available, or NULL if no such queue or semaphore
  * exists before before the specified block time expires.
  */
-xQueueSetMemberHandle xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks ) PRIVILEGED_FUNCTION;
+QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
 
 /*
  * A version of xQueueSelectFromSet() that can be used from an ISR.
  */
-xQueueSetMemberHandle xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet ) PRIVILEGED_FUNCTION;
+QueueSetMemberHandle_t xQueueSelectFromSetFromISR( QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
 
 /* Not public API functions. */
-void vQueueWaitForMessageRestricted( xQueueHandle xQueue, portTickType xTicksToWait ) PRIVILEGED_FUNCTION;
-portBASE_TYPE xQueueGenericReset( xQueueHandle xQueue, portBASE_TYPE xNewQueue ) PRIVILEGED_FUNCTION;
-void vQueueSetQueueNumber( xQueueHandle xQueue, unsigned char ucQueueNumber ) PRIVILEGED_FUNCTION;
-unsigned char ucQueueGetQueueNumber( xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
-unsigned char ucQueueGetQueueType( xQueueHandle xQueue ) PRIVILEGED_FUNCTION;
+void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) PRIVILEGED_FUNCTION;
+BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) PRIVILEGED_FUNCTION;
+void vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) PRIVILEGED_FUNCTION;
+UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
+uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
 
 
 #ifdef __cplusplus
diff --git a/FreeRTOS/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h
index 04957f5..a674b02 100644
--- a/FreeRTOS/Source/include/semphr.h
+++ b/FreeRTOS/Source/include/semphr.h
@@ -1,59 +1,64 @@
 /*
-    FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
+    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 
-    ***************************************************************************
-     *                                                                       *
-     *    FreeRTOS provides completely free yet professionally developed,    *
-     *    robust, strictly quality controlled, supported, and cross          *
-     *    platform software that has become a de facto standard.             *
-     *                                                                       *
-     *    Help yourself get started quickly and support the FreeRTOS         *
-     *    project by purchasing a FreeRTOS tutorial book, reference          *
-     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
-     *                                                                       *
-     *    Thank you!                                                         *
-     *                                                                       *
-    ***************************************************************************
-
     This file is part of the FreeRTOS distribution.
 
     FreeRTOS is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License (version 2) as published by the
-    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
 
-    >>! NOTE: The modification to the GPL is included to allow you to distribute
-    >>! a combined work that includes FreeRTOS without being obliged to provide
-    >>! the source code for proprietary components outside of the FreeRTOS
-    >>! kernel.
+    ***************************************************************************
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<
+    >>!   obliged to provide the source code for proprietary components     !<<
+    >>!   outside of the FreeRTOS kernel.                                   !<<
+    ***************************************************************************
 
     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-    FOR A PARTICULAR PURPOSE.  Full license text is available from the following
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following
     link: http://www.freertos.org/a00114.html
 
-    1 tab == 4 spaces!
-
     ***************************************************************************
      *                                                                       *
-     *    Having a problem?  Start by reading the FAQ "My application does   *
-     *    not run, what could be wrong?"                                     *
+     *    FreeRTOS provides completely free yet professionally developed,    *
+     *    robust, strictly quality controlled, supported, and cross          *
+     *    platform software that is more than just the market leader, it     *
+     *    is the industry's de facto standard.                               *
      *                                                                       *
-     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *    Help yourself get started quickly while simultaneously helping     *
+     *    to support the FreeRTOS project by purchasing a FreeRTOS           *
+     *    tutorial book, reference manual, or both:                          *
+     *    http://www.FreeRTOS.org/Documentation                              *
      *                                                                       *
     ***************************************************************************
 
-    http://www.FreeRTOS.org - Documentation, books, training, latest versions,
-    license and Real Time Engineers Ltd. contact details.
+    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading
+    the FAQ page "My application does not run, what could be wrong?".  Have you
+    defined configASSERT()?
+
+    http://www.FreeRTOS.org/support - In return for receiving this top quality
+    embedded software for free we request you assist our global community by
+    participating in the support forum.
+
+    http://www.FreeRTOS.org/training - Investing in training allows your team to
+    be as productive as possible as early as possible.  Now you can receive
+    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
+    Ltd, and the world's leading authority on the world's leading RTOS.
 
     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
     including FreeRTOS+Trace - an indispensable productivity tool, a DOS
     compatible FAT file system, and our tiny thread aware UDP/IP stack.
 
-    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
-    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS
-    licenses offer ticketed support, indemnification and middleware.
+    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
+    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
+
+    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
+    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS
+    licenses offer ticketed support, indemnification and commercial middleware.
 
     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
     engineered and independently SIL3 certified version for use in safety and
@@ -71,16 +76,27 @@
 
 #include "queue.h"
 
-typedef xQueueHandle xSemaphoreHandle;
+typedef QueueHandle_t SemaphoreHandle_t;
 
-#define semBINARY_SEMAPHORE_QUEUE_LENGTH	( ( unsigned char ) 1U )
-#define semSEMAPHORE_QUEUE_ITEM_LENGTH		( ( unsigned char ) 0U )
-#define semGIVE_BLOCK_TIME					( ( portTickType ) 0U )
+#define semBINARY_SEMAPHORE_QUEUE_LENGTH	( ( uint8_t ) 1U )
+#define semSEMAPHORE_QUEUE_ITEM_LENGTH		( ( uint8_t ) 0U )
+#define semGIVE_BLOCK_TIME					( ( TickType_t ) 0U )
 
 
 /**
  * semphr. h
- * 
vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )
+ *
vSemaphoreCreateBinary( SemaphoreHandle_t xSemaphore )
+ * + * In many usage scenarios it is faster and more memory efficient to use a + * direct to task notification in place of a binary semaphore! + * http://www.freertos.org/RTOS-task-notifications.html + * + * This old vSemaphoreCreateBinary() macro is now deprecated in favour of the + * xSemaphoreCreateBinary() function. Note that binary semaphores created using + * the vSemaphoreCreateBinary() macro are created in a state such that the + * first call to 'take' the semaphore would pass, whereas binary semaphores + * created using xSemaphoreCreateBinary() are created in a state such that the + * the semaphore must first be 'given' before it can be 'taken'. * * Macro that implements a semaphore by using the existing queue mechanism. * The queue length is 1 as this is a binary semaphore. The data size is 0 @@ -94,11 +110,11 @@ typedef xQueueHandle xSemaphoreHandle; * semaphore does not use a priority inheritance mechanism. For an alternative * that does use priority inheritance see xSemaphoreCreateMutex(). * - * @param xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle. + * @param xSemaphore Handle to the created semaphore. Should be of type SemaphoreHandle_t. * * Example usage:
- xSemaphoreHandle xSemaphore;
+ SemaphoreHandle_t xSemaphore = NULL;
 
  void vATask( void * pvParameters )
  {
@@ -109,38 +125,160 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xSemaphore != NULL )
     {
         // The semaphore was created successfully.
-        // The semaphore can now be used.  
+        // The semaphore can now be used.
     }
  }
  
* \defgroup vSemaphoreCreateBinary vSemaphoreCreateBinary * \ingroup Semaphores */ -#define vSemaphoreCreateBinary( xSemaphore ) \ - { \ - ( xSemaphore ) = xQueueGenericCreate( ( unsigned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ); \ - if( ( xSemaphore ) != NULL ) \ - { \ - ( void ) xSemaphoreGive( ( xSemaphore ) ); \ - } \ - } +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + #define vSemaphoreCreateBinary( xSemaphore ) \ + { \ + ( xSemaphore ) = xQueueGenericCreate( ( UBaseType_t ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ); \ + if( ( xSemaphore ) != NULL ) \ + { \ + ( void ) xSemaphoreGive( ( xSemaphore ) ); \ + } \ + } +#endif /** * semphr. h - *
xSemaphoreTake( 
- *                   xSemaphoreHandle xSemaphore, 
- *                   portTickType xBlockTime 
+ * 
SemaphoreHandle_t xSemaphoreCreateBinary( void )
+ * + * Creates a new binary semaphore instance, and returns a handle by which the + * new semaphore can be referenced. + * + * In many usage scenarios it is faster and more memory efficient to use a + * direct to task notification in place of a binary semaphore! + * http://www.freertos.org/RTOS-task-notifications.html + * + * Internally, within the FreeRTOS implementation, binary semaphores use a block + * of memory, in which the semaphore structure is stored. If a binary semaphore + * is created using xSemaphoreCreateBinary() then the required memory is + * automatically dynamically allocated inside the xSemaphoreCreateBinary() + * function. (see http://www.freertos.org/a00111.html). If a binary semaphore + * is created using xSemaphoreCreateBinaryStatic() then the application writer + * must provide the memory. xSemaphoreCreateBinaryStatic() therefore allows a + * binary semaphore to be created without using any dynamic memory allocation. + * + * The old vSemaphoreCreateBinary() macro is now deprecated in favour of this + * xSemaphoreCreateBinary() function. Note that binary semaphores created using + * the vSemaphoreCreateBinary() macro are created in a state such that the + * first call to 'take' the semaphore would pass, whereas binary semaphores + * created using xSemaphoreCreateBinary() are created in a state such that the + * the semaphore must first be 'given' before it can be 'taken'. + * + * This type of semaphore can be used for pure synchronisation between tasks or + * between an interrupt and a task. The semaphore need not be given back once + * obtained, so one task/interrupt can continuously 'give' the semaphore while + * another continuously 'takes' the semaphore. For this reason this type of + * semaphore does not use a priority inheritance mechanism. For an alternative + * that does use priority inheritance see xSemaphoreCreateMutex(). + * + * @return Handle to the created semaphore, or NULL if the memory required to + * hold the semaphore's data structures could not be allocated. + * + * Example usage: +
+ SemaphoreHandle_t xSemaphore = NULL;
+
+ void vATask( void * pvParameters )
+ {
+    // Semaphore cannot be used before a call to xSemaphoreCreateBinary().
+    // This is a macro so pass the variable in directly.
+    xSemaphore = xSemaphoreCreateBinary();
+
+    if( xSemaphore != NULL )
+    {
+        // The semaphore was created successfully.
+        // The semaphore can now be used.
+    }
+ }
+ 
+ * \defgroup xSemaphoreCreateBinary xSemaphoreCreateBinary + * \ingroup Semaphores + */ +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + #define xSemaphoreCreateBinary() xQueueGenericCreate( ( UBaseType_t ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ) +#endif + +/** + * semphr. h + *
SemaphoreHandle_t xSemaphoreCreateBinaryStatic( StaticSemaphore_t *pxSemaphoreBuffer )
+ * + * Creates a new binary semaphore instance, and returns a handle by which the + * new semaphore can be referenced. + * + * NOTE: In many usage scenarios it is faster and more memory efficient to use a + * direct to task notification in place of a binary semaphore! + * http://www.freertos.org/RTOS-task-notifications.html + * + * Internally, within the FreeRTOS implementation, binary semaphores use a block + * of memory, in which the semaphore structure is stored. If a binary semaphore + * is created using xSemaphoreCreateBinary() then the required memory is + * automatically dynamically allocated inside the xSemaphoreCreateBinary() + * function. (see http://www.freertos.org/a00111.html). If a binary semaphore + * is created using xSemaphoreCreateBinaryStatic() then the application writer + * must provide the memory. xSemaphoreCreateBinaryStatic() therefore allows a + * binary semaphore to be created without using any dynamic memory allocation. + * + * This type of semaphore can be used for pure synchronisation between tasks or + * between an interrupt and a task. The semaphore need not be given back once + * obtained, so one task/interrupt can continuously 'give' the semaphore while + * another continuously 'takes' the semaphore. For this reason this type of + * semaphore does not use a priority inheritance mechanism. For an alternative + * that does use priority inheritance see xSemaphoreCreateMutex(). + * + * @param pxSemaphoreBuffer Must point to a variable of type StaticSemaphore_t, + * which will then be used to hold the semaphore's data structure, removing the + * need for the memory to be allocated dynamically. + * + * @return If the semaphore is created then a handle to the created semaphore is + * returned. If pxSemaphoreBuffer is NULL then NULL is returned. + * + * Example usage: +
+ SemaphoreHandle_t xSemaphore = NULL;
+ StaticSemaphore_t xSemaphoreBuffer;
+
+ void vATask( void * pvParameters )
+ {
+    // Semaphore cannot be used before a call to xSemaphoreCreateBinary().
+    // The semaphore's data structures will be placed in the xSemaphoreBuffer
+    // variable, the address of which is passed into the function.  The
+    // function's parameter is not NULL, so the function will not attempt any
+    // dynamic memory allocation, and therefore the function will not return
+    // return NULL.
+    xSemaphore = xSemaphoreCreateBinary( &xSemaphoreBuffer );
+
+    // Rest of task code goes here.
+ }
+ 
+ * \defgroup xSemaphoreCreateBinaryStatic xSemaphoreCreateBinaryStatic + * \ingroup Semaphores + */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + #define xSemaphoreCreateBinaryStatic( pxStaticSemaphore ) xQueueGenericCreateStatic( ( UBaseType_t ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH, NULL, pxStaticSemaphore, queueQUEUE_TYPE_BINARY_SEMAPHORE ) +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * semphr. h + *
xSemaphoreTake(
+ *                   SemaphoreHandle_t xSemaphore,
+ *                   TickType_t xBlockTime
  *               )
* * Macro to obtain a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or + * created with a call to xSemaphoreCreateBinary(), xSemaphoreCreateMutex() or * xSemaphoreCreateCounting(). * * @param xSemaphore A handle to the semaphore being taken - obtained when * the semaphore was created. * * @param xBlockTime The time in ticks to wait for the semaphore to become - * available. The macro portTICK_RATE_MS can be used to convert this to a + * available. The macro portTICK_PERIOD_MS can be used to convert this to a * real time. A block time of zero can be used to poll the semaphore. A block * time of portMAX_DELAY can be used to block indefinitely (provided * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h). @@ -150,13 +288,13 @@ typedef xQueueHandle xSemaphoreHandle; * * Example usage:
- xSemaphoreHandle xSemaphore = NULL;
+ SemaphoreHandle_t xSemaphore = NULL;
 
  // A task that creates a semaphore.
  void vATask( void * pvParameters )
  {
     // Create the semaphore to guard a shared resource.
-    vSemaphoreCreateBinary( xSemaphore );
+    xSemaphore = xSemaphoreCreateBinary();
  }
 
  // A task that uses the semaphore.
@@ -167,15 +305,15 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xSemaphore != NULL )
     {
         // See if we can obtain the semaphore.  If the semaphore is not available
-        // wait 10 ticks to see if it becomes free.	
-        if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE )
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTake( xSemaphore, ( TickType_t ) 10 ) == pdTRUE )
         {
             // We were able to obtain the semaphore and can now access the
             // shared resource.
 
             // ...
 
-            // We have finished accessing the shared resource.  Release the 
+            // We have finished accessing the shared resource.  Release the
             // semaphore.
             xSemaphoreGive( xSemaphore );
         }
@@ -190,28 +328,28 @@ typedef xQueueHandle xSemaphoreHandle;
  * \defgroup xSemaphoreTake xSemaphoreTake
  * \ingroup Semaphores
  */
-#define xSemaphoreTake( xSemaphore, xBlockTime )		xQueueGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE )
+#define xSemaphoreTake( xSemaphore, xBlockTime )		xQueueGenericReceive( ( QueueHandle_t ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE )
 
 /**
  * semphr. h
- * xSemaphoreTakeRecursive( 
- *                          xSemaphoreHandle xMutex, 
- *                          portTickType xBlockTime 
+ * xSemaphoreTakeRecursive(
+ *                          SemaphoreHandle_t xMutex,
+ *                          TickType_t xBlockTime
  *                        )
  *
- * Macro to recursively obtain, or 'take', a mutex type semaphore.  
- * The mutex must have previously been created using a call to 
+ * Macro to recursively obtain, or 'take', a mutex type semaphore.
+ * The mutex must have previously been created using a call to
  * xSemaphoreCreateRecursiveMutex();
- * 
+ *
  * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this
  * macro to be available.
- * 
+ *
  * This macro must not be used on mutexes created using xSemaphoreCreateMutex().
  *
- * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex 
- * doesn't become available again until the owner has called 
- * xSemaphoreGiveRecursive() for each successful 'take' request.  For example, 
- * if a task successfully 'takes' the same mutex 5 times then the mutex will 
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex
+ * doesn't become available again until the owner has called
+ * xSemaphoreGiveRecursive() for each successful 'take' request.  For example,
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will
  * not be available to any other task until it has also  'given' the mutex back
  * exactly five times.
  *
@@ -219,17 +357,17 @@ typedef xQueueHandle xSemaphoreHandle;
  * handle returned by xSemaphoreCreateRecursiveMutex();
  *
  * @param xBlockTime The time in ticks to wait for the semaphore to become
- * available.  The macro portTICK_RATE_MS can be used to convert this to a
+ * available.  The macro portTICK_PERIOD_MS can be used to convert this to a
  * real time.  A block time of zero can be used to poll the semaphore.  If
  * the task already owns the semaphore then xSemaphoreTakeRecursive() will
- * return immediately no matter what the value of xBlockTime. 
+ * return immediately no matter what the value of xBlockTime.
  *
  * @return pdTRUE if the semaphore was obtained.  pdFALSE if xBlockTime
  * expired without the semaphore becoming available.
  *
  * Example usage:
  
- xSemaphoreHandle xMutex = NULL;
+ SemaphoreHandle_t xMutex = NULL;
 
  // A task that creates a mutex.
  void vATask( void * pvParameters )
@@ -246,22 +384,22 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xMutex != NULL )
     {
         // See if we can obtain the mutex.  If the mutex is not available
-        // wait 10 ticks to see if it becomes free.	
-        if( xSemaphoreTakeRecursive( xSemaphore, ( portTickType ) 10 ) == pdTRUE )
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTakeRecursive( xSemaphore, ( TickType_t ) 10 ) == pdTRUE )
         {
             // We were able to obtain the mutex and can now access the
             // shared resource.
 
             // ...
-            // For some reason due to the nature of the code further calls to 
+            // For some reason due to the nature of the code further calls to
 			// xSemaphoreTakeRecursive() are made on the same mutex.  In real
 			// code these would not be just sequential calls as this would make
 			// no sense.  Instead the calls are likely to be buried inside
 			// a more complex call structure.
-            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
-            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 );
 
-            // The mutex has now been 'taken' three times, so will not be 
+            // The mutex has now been 'taken' three times, so will not be
 			// available to another task until it has also been given back
 			// three times.  Again it is unlikely that real code would have
 			// these calls sequentially, but instead buried in a more complex
@@ -283,35 +421,22 @@ typedef xQueueHandle xSemaphoreHandle;
  * \defgroup xSemaphoreTakeRecursive xSemaphoreTakeRecursive
  * \ingroup Semaphores
  */
-#define xSemaphoreTakeRecursive( xMutex, xBlockTime )	xQueueTakeMutexRecursive( ( xMutex ), ( xBlockTime ) )
-
-
-/* 
- * xSemaphoreAltTake() is an alternative version of xSemaphoreTake().
- *
- * The source code that implements the alternative (Alt) API is much 
- * simpler	because it executes everything from within a critical section.  
- * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the 
- * preferred fully featured API too.  The fully featured API has more 
- * complex	code that takes longer to execute, but makes much less use of 
- * critical sections.  Therefore the alternative API sacrifices interrupt 
- * responsiveness to gain execution speed, whereas the fully featured API
- * sacrifices execution speed to ensure better interrupt responsiveness.
- */
-#define xSemaphoreAltTake( xSemaphore, xBlockTime )		xQueueAltGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE )
+#if( configUSE_RECURSIVE_MUTEXES == 1 )
+	#define xSemaphoreTakeRecursive( xMutex, xBlockTime )	xQueueTakeMutexRecursive( ( xMutex ), ( xBlockTime ) )
+#endif
 
 /**
  * semphr. h
- * 
xSemaphoreGive( xSemaphoreHandle xSemaphore )
+ *
xSemaphoreGive( SemaphoreHandle_t xSemaphore )
* * Macro to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or + * created with a call to xSemaphoreCreateBinary(), xSemaphoreCreateMutex() or * xSemaphoreCreateCounting(). and obtained using sSemaphoreTake(). * * This macro must not be used from an ISR. See xSemaphoreGiveFromISR () for * an alternative which can be used from an ISR. * - * This macro must also not be used on semaphores created using + * This macro must also not be used on semaphores created using * xSemaphoreCreateRecursiveMutex(). * * @param xSemaphore A handle to the semaphore being released. This is the @@ -319,17 +444,17 @@ typedef xQueueHandle xSemaphoreHandle; * * @return pdTRUE if the semaphore was released. pdFALSE if an error occurred. * Semaphores are implemented using queues. An error can occur if there is - * no space on the queue to post a message - indicating that the + * no space on the queue to post a message - indicating that the * semaphore was not first obtained correctly. * * Example usage:
- xSemaphoreHandle xSemaphore = NULL;
+ SemaphoreHandle_t xSemaphore = NULL;
 
  void vATask( void * pvParameters )
  {
     // Create the semaphore to guard a shared resource.
-    vSemaphoreCreateBinary( xSemaphore );
+    xSemaphore = vSemaphoreCreateBinary();
 
     if( xSemaphore != NULL )
     {
@@ -341,7 +466,7 @@ typedef xQueueHandle xSemaphoreHandle;
 
         // Obtain the semaphore - don't block if the semaphore is not
         // immediately available.
-        if( xSemaphoreTake( xSemaphore, ( portTickType ) 0 ) )
+        if( xSemaphoreTake( xSemaphore, ( TickType_t ) 0 ) )
         {
             // We now have the semaphore and can access the shared resource.
 
@@ -361,25 +486,25 @@ typedef xQueueHandle xSemaphoreHandle;
  * \defgroup xSemaphoreGive xSemaphoreGive
  * \ingroup Semaphores
  */
-#define xSemaphoreGive( xSemaphore )		xQueueGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
+#define xSemaphoreGive( xSemaphore )		xQueueGenericSend( ( QueueHandle_t ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
 
 /**
  * semphr. h
- * 
xSemaphoreGiveRecursive( xSemaphoreHandle xMutex )
+ *
xSemaphoreGiveRecursive( SemaphoreHandle_t xMutex )
* * Macro to recursively release, or 'give', a mutex type semaphore. - * The mutex must have previously been created using a call to + * The mutex must have previously been created using a call to * xSemaphoreCreateRecursiveMutex(); - * + * * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this * macro to be available. * * This macro must not be used on mutexes created using xSemaphoreCreateMutex(). - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will + * + * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex + * doesn't become available again until the owner has called + * xSemaphoreGiveRecursive() for each successful 'take' request. For example, + * if a task successfully 'takes' the same mutex 5 times then the mutex will * not be available to any other task until it has also 'given' the mutex back * exactly five times. * @@ -390,7 +515,7 @@ typedef xQueueHandle xSemaphoreHandle; * * Example usage:
- xSemaphoreHandle xMutex = NULL;
+ SemaphoreHandle_t xMutex = NULL;
 
  // A task that creates a mutex.
  void vATask( void * pvParameters )
@@ -407,22 +532,22 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xMutex != NULL )
     {
         // See if we can obtain the mutex.  If the mutex is not available
-        // wait 10 ticks to see if it becomes free.	
-        if( xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ) == pdTRUE )
+        // wait 10 ticks to see if it becomes free.
+        if( xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 ) == pdTRUE )
         {
             // We were able to obtain the mutex and can now access the
             // shared resource.
 
             // ...
-            // For some reason due to the nature of the code further calls to 
+            // For some reason due to the nature of the code further calls to
 			// xSemaphoreTakeRecursive() are made on the same mutex.  In real
 			// code these would not be just sequential calls as this would make
 			// no sense.  Instead the calls are likely to be buried inside
 			// a more complex call structure.
-            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
-            xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 );
+            xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 );
 
-            // The mutex has now been 'taken' three times, so will not be 
+            // The mutex has now been 'taken' three times, so will not be
 			// available to another task until it has also been given back
 			// three times.  Again it is unlikely that real code would have
 			// these calls sequentially, it would be more likely that the calls
@@ -445,32 +570,20 @@ typedef xQueueHandle xSemaphoreHandle;
  * \defgroup xSemaphoreGiveRecursive xSemaphoreGiveRecursive
  * \ingroup Semaphores
  */
-#define xSemaphoreGiveRecursive( xMutex )	xQueueGiveMutexRecursive( ( xMutex ) )
-
-/* 
- * xSemaphoreAltGive() is an alternative version of xSemaphoreGive().
- *
- * The source code that implements the alternative (Alt) API is much 
- * simpler	because it executes everything from within a critical section.  
- * This is	the approach taken by many other RTOSes, but FreeRTOS.org has the 
- * preferred fully featured API too.  The fully featured API has more 
- * complex	code that takes longer to execute, but makes much less use of 
- * critical sections.  Therefore the alternative API sacrifices interrupt 
- * responsiveness to gain execution speed, whereas the fully featured API
- * sacrifices execution speed to ensure better interrupt responsiveness.
- */
-#define xSemaphoreAltGive( xSemaphore )		xQueueAltGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
+#if( configUSE_RECURSIVE_MUTEXES == 1 )
+	#define xSemaphoreGiveRecursive( xMutex )	xQueueGiveMutexRecursive( ( xMutex ) )
+#endif
 
 /**
  * semphr. h
  * 
- xSemaphoreGiveFromISR( 
-                          xSemaphoreHandle xSemaphore, 
-                          signed portBASE_TYPE *pxHigherPriorityTaskWoken
+ xSemaphoreGiveFromISR(
+                          SemaphoreHandle_t xSemaphore,
+                          BaseType_t *pxHigherPriorityTaskWoken
                       )
* * Macro to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary() or xSemaphoreCreateCounting(). + * created with a call to xSemaphoreCreateBinary() or xSemaphoreCreateCounting(). * * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex()) * must not be used with this macro. @@ -492,14 +605,14 @@ typedef xQueueHandle xSemaphoreHandle;
  \#define LONG_TIME 0xffff
  \#define TICKS_TO_WAIT	10
- xSemaphoreHandle xSemaphore = NULL;
+ SemaphoreHandle_t xSemaphore = NULL;
 
  // Repetitive task.
  void vATask( void * pvParameters )
  {
     for( ;; )
     {
-        // We want this task to run every 10 ticks of a timer.  The semaphore 
+        // We want this task to run every 10 ticks of a timer.  The semaphore
         // was created before this task was started.
 
         // Block waiting for the semaphore to become available.
@@ -510,7 +623,7 @@ typedef xQueueHandle xSemaphoreHandle;
             // ...
 
             // We have finished our task.  Return to the top of the loop where
-            // we will block on the semaphore until it is time to execute 
+            // we will block on the semaphore until it is time to execute
             // again.  Note when using the semaphore for synchronisation with an
 			// ISR in this manner there is no need to 'give' the semaphore back.
         }
@@ -520,8 +633,8 @@ typedef xQueueHandle xSemaphoreHandle;
  // Timer ISR
  void vTimerISR( void * pvParameters )
  {
- static unsigned char ucLocalTickCount = 0;
- static signed portBASE_TYPE xHigherPriorityTaskWoken;
+ static uint8_t ucLocalTickCount = 0;
+ static BaseType_t xHigherPriorityTaskWoken;
 
     // A timer tick has occurred.
 
@@ -550,18 +663,18 @@ typedef xQueueHandle xSemaphoreHandle;
  * \defgroup xSemaphoreGiveFromISR xSemaphoreGiveFromISR
  * \ingroup Semaphores
  */
-#define xSemaphoreGiveFromISR( xSemaphore, pxHigherPriorityTaskWoken )			xQueueGenericSendFromISR( ( xQueueHandle ) ( xSemaphore ), NULL, ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK )
+#define xSemaphoreGiveFromISR( xSemaphore, pxHigherPriorityTaskWoken )	xQueueGiveFromISR( ( QueueHandle_t ) ( xSemaphore ), ( pxHigherPriorityTaskWoken ) )
 
 /**
  * semphr. h
  * 
- xSemaphoreTakeFromISR( 
-                          xSemaphoreHandle xSemaphore, 
-                          signed portBASE_TYPE *pxHigherPriorityTaskWoken
+ xSemaphoreTakeFromISR(
+                          SemaphoreHandle_t xSemaphore,
+                          BaseType_t *pxHigherPriorityTaskWoken
                       )
* - * Macro to take a semaphore from an ISR. The semaphore must have - * previously been created with a call to vSemaphoreCreateBinary() or + * Macro to take a semaphore from an ISR. The semaphore must have + * previously been created with a call to xSemaphoreCreateBinary() or * xSemaphoreCreateCounting(). * * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex()) @@ -581,39 +694,49 @@ typedef xQueueHandle xSemaphoreHandle; * running task. If xSemaphoreTakeFromISR() sets this value to pdTRUE then * a context switch should be requested before the interrupt is exited. * - * @return pdTRUE if the semaphore was successfully taken, otherwise + * @return pdTRUE if the semaphore was successfully taken, otherwise * pdFALSE */ -#define xSemaphoreTakeFromISR( xSemaphore, pxHigherPriorityTaskWoken ) xQueueReceiveFromISR( ( xQueueHandle ) ( xSemaphore ), NULL, ( pxHigherPriorityTaskWoken ) ) +#define xSemaphoreTakeFromISR( xSemaphore, pxHigherPriorityTaskWoken ) xQueueReceiveFromISR( ( QueueHandle_t ) ( xSemaphore ), NULL, ( pxHigherPriorityTaskWoken ) ) /** * semphr. h - *
xSemaphoreHandle xSemaphoreCreateMutex( void )
+ *
SemaphoreHandle_t xSemaphoreCreateMutex( void )
* - * Macro that implements a mutex semaphore by using the existing queue - * mechanism. + * Creates a new mutex type semaphore instance, and returns a handle by which + * the new mutex can be referenced. * - * Mutexes created using this macro can be accessed using the xSemaphoreTake() - * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and - * xSemaphoreGiveRecursive() macros should not be used. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. + * Internally, within the FreeRTOS implementation, mutex semaphores use a block + * of memory, in which the mutex structure is stored. If a mutex is created + * using xSemaphoreCreateMutex() then the required memory is automatically + * dynamically allocated inside the xSemaphoreCreateMutex() function. (see + * http://www.freertos.org/a00111.html). If a mutex is created using + * xSemaphoreCreateMutexStatic() then the application writer must provided the + * memory. xSemaphoreCreateMutexStatic() therefore allows a mutex to be created + * without using any dynamic memory allocation. * - * Mutex type semaphores cannot be used from within interrupt service routines. + * Mutexes created using this function can be accessed using the xSemaphoreTake() + * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and + * xSemaphoreGiveRecursive() macros must not be used. * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt + * This type of semaphore uses a priority inheritance mechanism so a task + * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the + * semaphore it is no longer required. + * + * Mutex type semaphores cannot be used from within interrupt service routines. + * + * See xSemaphoreCreateBinary() for an alternative implementation that can be + * used for pure synchronisation (where one task or interrupt always 'gives' the + * semaphore and another always 'takes' the semaphore) and from within interrupt * service routines. * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. + * @return If the mutex was successfully created then a handle to the created + * semaphore is returned. If there was not enough heap to allocate the mutex + * data structures then NULL is returned. * * Example usage:
- xSemaphoreHandle xSemaphore;
+ SemaphoreHandle_t xSemaphore;
 
  void vATask( void * pvParameters )
  {
@@ -624,51 +747,125 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xSemaphore != NULL )
     {
         // The semaphore was created successfully.
-        // The semaphore can now be used.  
+        // The semaphore can now be used.
     }
  }
  
- * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex + * \defgroup xSemaphoreCreateMutex xSemaphoreCreateMutex * \ingroup Semaphores */ -#define xSemaphoreCreateMutex() xQueueCreateMutex( queueQUEUE_TYPE_MUTEX ) +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + #define xSemaphoreCreateMutex() xQueueCreateMutex( queueQUEUE_TYPE_MUTEX ) +#endif + +/** + * semphr. h + *
SemaphoreHandle_t xSemaphoreCreateMutexStatic( StaticSemaphore_t *pxMutexBuffer )
+ * + * Creates a new mutex type semaphore instance, and returns a handle by which + * the new mutex can be referenced. + * + * Internally, within the FreeRTOS implementation, mutex semaphores use a block + * of memory, in which the mutex structure is stored. If a mutex is created + * using xSemaphoreCreateMutex() then the required memory is automatically + * dynamically allocated inside the xSemaphoreCreateMutex() function. (see + * http://www.freertos.org/a00111.html). If a mutex is created using + * xSemaphoreCreateMutexStatic() then the application writer must provided the + * memory. xSemaphoreCreateMutexStatic() therefore allows a mutex to be created + * without using any dynamic memory allocation. + * + * Mutexes created using this function can be accessed using the xSemaphoreTake() + * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and + * xSemaphoreGiveRecursive() macros must not be used. + * + * This type of semaphore uses a priority inheritance mechanism so a task + * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the + * semaphore it is no longer required. + * + * Mutex type semaphores cannot be used from within interrupt service routines. + * + * See xSemaphoreCreateBinary() for an alternative implementation that can be + * used for pure synchronisation (where one task or interrupt always 'gives' the + * semaphore and another always 'takes' the semaphore) and from within interrupt + * service routines. + * + * @param pxMutexBuffer Must point to a variable of type StaticSemaphore_t, + * which will be used to hold the mutex's data structure, removing the need for + * the memory to be allocated dynamically. + * + * @return If the mutex was successfully created then a handle to the created + * mutex is returned. If pxMutexBuffer was NULL then NULL is returned. + * + * Example usage: +
+ SemaphoreHandle_t xSemaphore;
+ StaticSemaphore_t xMutexBuffer;
+
+ void vATask( void * pvParameters )
+ {
+    // A mutex cannot be used before it has been created.  xMutexBuffer is
+    // into xSemaphoreCreateMutexStatic() so no dynamic memory allocation is
+    // attempted.
+    xSemaphore = xSemaphoreCreateMutexStatic( &xMutexBuffer );
+
+    // As no dynamic memory allocation was performed, xSemaphore cannot be NULL,
+    // so there is no need to check it.
+ }
+ 
+ * \defgroup xSemaphoreCreateMutexStatic xSemaphoreCreateMutexStatic + * \ingroup Semaphores + */ + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + #define xSemaphoreCreateMutexStatic( pxMutexBuffer ) xQueueCreateMutexStatic( queueQUEUE_TYPE_MUTEX, ( pxMutexBuffer ) ) +#endif /* configSUPPORT_STATIC_ALLOCATION */ /** * semphr. h - *
xSemaphoreHandle xSemaphoreCreateRecursiveMutex( void )
+ *
SemaphoreHandle_t xSemaphoreCreateRecursiveMutex( void )
* - * Macro that implements a recursive mutex by using the existing queue - * mechanism. + * Creates a new recursive mutex type semaphore instance, and returns a handle + * by which the new recursive mutex can be referenced. * - * Mutexes created using this macro can be accessed using the - * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The - * xSemaphoreTake() and xSemaphoreGive() macros should not be used. + * Internally, within the FreeRTOS implementation, recursive mutexs use a block + * of memory, in which the mutex structure is stored. If a recursive mutex is + * created using xSemaphoreCreateRecursiveMutex() then the required memory is + * automatically dynamically allocated inside the + * xSemaphoreCreateRecursiveMutex() function. (see + * http://www.freertos.org/a00111.html). If a recursive mutex is created using + * xSemaphoreCreateRecursiveMutexStatic() then the application writer must + * provide the memory that will get used by the mutex. + * xSemaphoreCreateRecursiveMutexStatic() therefore allows a recursive mutex to + * be created without using any dynamic memory allocation. * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will + * Mutexes created using this macro can be accessed using the + * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The + * xSemaphoreTake() and xSemaphoreGive() macros must not be used. + * + * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex + * doesn't become available again until the owner has called + * xSemaphoreGiveRecursive() for each successful 'take' request. For example, + * if a task successfully 'takes' the same mutex 5 times then the mutex will * not be available to any other task until it has also 'given' the mutex back * exactly five times. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. * - * Mutex type semaphores cannot be used from within interrupt service routines. + * This type of semaphore uses a priority inheritance mechanism so a task + * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the + * semaphore it is no longer required. * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt + * Mutex type semaphores cannot be used from within interrupt service routines. + * + * See xSemaphoreCreateBinary() for an alternative implementation that can be + * used for pure synchronisation (where one task or interrupt always 'gives' the + * semaphore and another always 'takes' the semaphore) and from within interrupt * service routines. * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. + * @return xSemaphore Handle to the created mutex semaphore. Should be of type + * SemaphoreHandle_t. * * Example usage:
- xSemaphoreHandle xSemaphore;
+ SemaphoreHandle_t xSemaphore;
 
  void vATask( void * pvParameters )
  {
@@ -679,45 +876,135 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xSemaphore != NULL )
     {
         // The semaphore was created successfully.
-        // The semaphore can now be used.  
+        // The semaphore can now be used.
     }
  }
  
- * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex + * \defgroup xSemaphoreCreateRecursiveMutex xSemaphoreCreateRecursiveMutex * \ingroup Semaphores */ -#define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex( queueQUEUE_TYPE_RECURSIVE_MUTEX ) +#if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_RECURSIVE_MUTEXES == 1 ) ) + #define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex( queueQUEUE_TYPE_RECURSIVE_MUTEX ) +#endif /** * semphr. h - *
xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )
+ *
SemaphoreHandle_t xSemaphoreCreateRecursiveMutexStatic( StaticSemaphore_t *pxMutexBuffer )
* - * Macro that creates a counting semaphore by using the existing - * queue mechanism. + * Creates a new recursive mutex type semaphore instance, and returns a handle + * by which the new recursive mutex can be referenced. + * + * Internally, within the FreeRTOS implementation, recursive mutexs use a block + * of memory, in which the mutex structure is stored. If a recursive mutex is + * created using xSemaphoreCreateRecursiveMutex() then the required memory is + * automatically dynamically allocated inside the + * xSemaphoreCreateRecursiveMutex() function. (see + * http://www.freertos.org/a00111.html). If a recursive mutex is created using + * xSemaphoreCreateRecursiveMutexStatic() then the application writer must + * provide the memory that will get used by the mutex. + * xSemaphoreCreateRecursiveMutexStatic() therefore allows a recursive mutex to + * be created without using any dynamic memory allocation. + * + * Mutexes created using this macro can be accessed using the + * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The + * xSemaphoreTake() and xSemaphoreGive() macros must not be used. + * + * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex + * doesn't become available again until the owner has called + * xSemaphoreGiveRecursive() for each successful 'take' request. For example, + * if a task successfully 'takes' the same mutex 5 times then the mutex will + * not be available to any other task until it has also 'given' the mutex back + * exactly five times. + * + * This type of semaphore uses a priority inheritance mechanism so a task + * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the + * semaphore it is no longer required. + * + * Mutex type semaphores cannot be used from within interrupt service routines. + * + * See xSemaphoreCreateBinary() for an alternative implementation that can be + * used for pure synchronisation (where one task or interrupt always 'gives' the + * semaphore and another always 'takes' the semaphore) and from within interrupt + * service routines. + * + * @param pxMutexBuffer Must point to a variable of type StaticSemaphore_t, + * which will then be used to hold the recursive mutex's data structure, + * removing the need for the memory to be allocated dynamically. + * + * @return If the recursive mutex was successfully created then a handle to the + * created recursive mutex is returned. If pxMutexBuffer was NULL then NULL is + * returned. + * + * Example usage: +
+ SemaphoreHandle_t xSemaphore;
+ StaticSemaphore_t xMutexBuffer;
+
+ void vATask( void * pvParameters )
+ {
+    // A recursive semaphore cannot be used before it is created.  Here a
+    // recursive mutex is created using xSemaphoreCreateRecursiveMutexStatic().
+    // The address of xMutexBuffer is passed into the function, and will hold
+    // the mutexes data structures - so no dynamic memory allocation will be
+    // attempted.
+    xSemaphore = xSemaphoreCreateRecursiveMutexStatic( &xMutexBuffer );
+
+    // As no dynamic memory allocation was performed, xSemaphore cannot be NULL,
+    // so there is no need to check it.
+ }
+ 
+ * \defgroup xSemaphoreCreateRecursiveMutexStatic xSemaphoreCreateRecursiveMutexStatic + * \ingroup Semaphores + */ +#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_RECURSIVE_MUTEXES == 1 ) ) + #define xSemaphoreCreateRecursiveMutexStatic( pxStaticSemaphore ) xQueueCreateMutexStatic( queueQUEUE_TYPE_RECURSIVE_MUTEX, pxStaticSemaphore ) +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * semphr. h + *
SemaphoreHandle_t xSemaphoreCreateCounting( UBaseType_t uxMaxCount, UBaseType_t uxInitialCount )
+ * + * Creates a new counting semaphore instance, and returns a handle by which the + * new counting semaphore can be referenced. + * + * In many usage scenarios it is faster and more memory efficient to use a + * direct to task notification in place of a counting semaphore! + * http://www.freertos.org/RTOS-task-notifications.html + * + * Internally, within the FreeRTOS implementation, counting semaphores use a + * block of memory, in which the counting semaphore structure is stored. If a + * counting semaphore is created using xSemaphoreCreateCounting() then the + * required memory is automatically dynamically allocated inside the + * xSemaphoreCreateCounting() function. (see + * http://www.freertos.org/a00111.html). If a counting semaphore is created + * using xSemaphoreCreateCountingStatic() then the application writer can + * instead optionally provide the memory that will get used by the counting + * semaphore. xSemaphoreCreateCountingStatic() therefore allows a counting + * semaphore to be created without using any dynamic memory allocation. * * Counting semaphores are typically used for two things: * - * 1) Counting events. + * 1) Counting events. * * In this usage scenario an event handler will 'give' a semaphore each time - * an event occurs (incrementing the semaphore count value), and a handler - * task will 'take' a semaphore each time it processes an event - * (decrementing the semaphore count value). The count value is therefore - * the difference between the number of events that have occurred and the - * number that have been processed. In this case it is desirable for the + * an event occurs (incrementing the semaphore count value), and a handler + * task will 'take' a semaphore each time it processes an event + * (decrementing the semaphore count value). The count value is therefore + * the difference between the number of events that have occurred and the + * number that have been processed. In this case it is desirable for the * initial count value to be zero. * * 2) Resource management. * * In this usage scenario the count value indicates the number of resources - * available. To obtain control of a resource a task must first obtain a + * available. To obtain control of a resource a task must first obtain a * semaphore - decrementing the semaphore count value. When the count value * reaches zero there are no free resources. When a task finishes with the * resource it 'gives' the semaphore back - incrementing the semaphore count * value. In this case it is desirable for the initial count value to be * equal to the maximum count value, indicating that all resources are free. * - * @param uxMaxCount The maximum count value that can be reached. When the + * @param uxMaxCount The maximum count value that can be reached. When the * semaphore reaches this value it can no longer be 'given'. * * @param uxInitialCount The count value assigned to the semaphore when it is @@ -725,14 +1012,14 @@ typedef xQueueHandle xSemaphoreHandle; * * @return Handle to the created semaphore. Null if the semaphore could not be * created. - * + * * Example usage:
- xSemaphoreHandle xSemaphore;
+ SemaphoreHandle_t xSemaphore;
 
  void vATask( void * pvParameters )
  {
- xSemaphoreHandle xSemaphore = NULL;
+ SemaphoreHandle_t xSemaphore = NULL;
 
     // Semaphore cannot be used before a call to xSemaphoreCreateCounting().
     // The max value to which the semaphore can count should be 10, and the
@@ -742,18 +1029,105 @@ typedef xQueueHandle xSemaphoreHandle;
     if( xSemaphore != NULL )
     {
         // The semaphore was created successfully.
-        // The semaphore can now be used.  
+        // The semaphore can now be used.
     }
  }
  
* \defgroup xSemaphoreCreateCounting xSemaphoreCreateCounting * \ingroup Semaphores */ -#define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( ( uxMaxCount ), ( uxInitialCount ) ) +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + #define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( ( uxMaxCount ), ( uxInitialCount ) ) +#endif /** * semphr. h - *
void vSemaphoreDelete( xSemaphoreHandle xSemaphore );
+ *
SemaphoreHandle_t xSemaphoreCreateCountingStatic( UBaseType_t uxMaxCount, UBaseType_t uxInitialCount, StaticSemaphore_t *pxSemaphoreBuffer )
+ * + * Creates a new counting semaphore instance, and returns a handle by which the + * new counting semaphore can be referenced. + * + * In many usage scenarios it is faster and more memory efficient to use a + * direct to task notification in place of a counting semaphore! + * http://www.freertos.org/RTOS-task-notifications.html + * + * Internally, within the FreeRTOS implementation, counting semaphores use a + * block of memory, in which the counting semaphore structure is stored. If a + * counting semaphore is created using xSemaphoreCreateCounting() then the + * required memory is automatically dynamically allocated inside the + * xSemaphoreCreateCounting() function. (see + * http://www.freertos.org/a00111.html). If a counting semaphore is created + * using xSemaphoreCreateCountingStatic() then the application writer must + * provide the memory. xSemaphoreCreateCountingStatic() therefore allows a + * counting semaphore to be created without using any dynamic memory allocation. + * + * Counting semaphores are typically used for two things: + * + * 1) Counting events. + * + * In this usage scenario an event handler will 'give' a semaphore each time + * an event occurs (incrementing the semaphore count value), and a handler + * task will 'take' a semaphore each time it processes an event + * (decrementing the semaphore count value). The count value is therefore + * the difference between the number of events that have occurred and the + * number that have been processed. In this case it is desirable for the + * initial count value to be zero. + * + * 2) Resource management. + * + * In this usage scenario the count value indicates the number of resources + * available. To obtain control of a resource a task must first obtain a + * semaphore - decrementing the semaphore count value. When the count value + * reaches zero there are no free resources. When a task finishes with the + * resource it 'gives' the semaphore back - incrementing the semaphore count + * value. In this case it is desirable for the initial count value to be + * equal to the maximum count value, indicating that all resources are free. + * + * @param uxMaxCount The maximum count value that can be reached. When the + * semaphore reaches this value it can no longer be 'given'. + * + * @param uxInitialCount The count value assigned to the semaphore when it is + * created. + * + * @param pxSemaphoreBuffer Must point to a variable of type StaticSemaphore_t, + * which will then be used to hold the semaphore's data structure, removing the + * need for the memory to be allocated dynamically. + * + * @return If the counting semaphore was successfully created then a handle to + * the created counting semaphore is returned. If pxSemaphoreBuffer was NULL + * then NULL is returned. + * + * Example usage: +
+ SemaphoreHandle_t xSemaphore;
+ StaticSemaphore_t xSemaphoreBuffer;
+
+ void vATask( void * pvParameters )
+ {
+ SemaphoreHandle_t xSemaphore = NULL;
+
+    // Counting semaphore cannot be used before they have been created.  Create
+    // a counting semaphore using xSemaphoreCreateCountingStatic().  The max
+    // value to which the semaphore can count is 10, and the initial value
+    // assigned to the count will be 0.  The address of xSemaphoreBuffer is
+    // passed in and will be used to hold the semaphore structure, so no dynamic
+    // memory allocation will be used.
+    xSemaphore = xSemaphoreCreateCounting( 10, 0, &xSemaphoreBuffer );
+
+    // No memory allocation was attempted so xSemaphore cannot be NULL, so there
+    // is no need to check its value.
+ }
+ 
+ * \defgroup xSemaphoreCreateCountingStatic xSemaphoreCreateCountingStatic + * \ingroup Semaphores + */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + #define xSemaphoreCreateCountingStatic( uxMaxCount, uxInitialCount, pxSemaphoreBuffer ) xQueueCreateCountingSemaphoreStatic( ( uxMaxCount ), ( uxInitialCount ), ( pxSemaphoreBuffer ) ) +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * semphr. h + *
void vSemaphoreDelete( SemaphoreHandle_t xSemaphore );
* * Delete a semaphore. This function must be used with care. For example, * do not delete a mutex type semaphore if the mutex is held by a task. @@ -763,23 +1137,35 @@ typedef xQueueHandle xSemaphoreHandle; * \defgroup vSemaphoreDelete vSemaphoreDelete * \ingroup Semaphores */ -#define vSemaphoreDelete( xSemaphore ) vQueueDelete( ( xQueueHandle ) ( xSemaphore ) ) +#define vSemaphoreDelete( xSemaphore ) vQueueDelete( ( QueueHandle_t ) ( xSemaphore ) ) /** * semphr.h - *
xTaskHandle xSemaphoreGetMutexHolder( xSemaphoreHandle xMutex );
+ *
TaskHandle_t xSemaphoreGetMutexHolder( SemaphoreHandle_t xMutex );
* * If xMutex is indeed a mutex type semaphore, return the current mutex holder. * If xMutex is not a mutex type semaphore, or the mutex is available (not held * by a task), return NULL. * - * Note: This Is is a good way of determining if the calling task is the mutex + * Note: This is a good way of determining if the calling task is the mutex * holder, but not a good way of determining the identity of the mutex holder as * the holder may change between the function exiting and the returned value * being tested. */ #define xSemaphoreGetMutexHolder( xSemaphore ) xQueueGetMutexHolder( ( xSemaphore ) ) +/** + * semphr.h + *
UBaseType_t uxSemaphoreGetCount( SemaphoreHandle_t xSemaphore );
+ * + * If the semaphore is a counting semaphore then uxSemaphoreGetCount() returns + * its current count value. If the semaphore is a binary semaphore then + * uxSemaphoreGetCount() returns 1 if the semaphore is available, and 0 if the + * semaphore is not available. + * + */ +#define uxSemaphoreGetCount( xSemaphore ) uxQueueMessagesWaiting( ( QueueHandle_t ) ( xSemaphore ) ) + #endif /* SEMAPHORE_H */ diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index 9881084..d0643c0 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -80,19 +85,28 @@ extern "C" { * MACROS AND DEFINITIONS *----------------------------------------------------------*/ -#define tskKERNEL_VERSION_NUMBER "V7.5.2" +#define tskKERNEL_VERSION_NUMBER "V9.0.0" +#define tskKERNEL_VERSION_MAJOR 9 +#define tskKERNEL_VERSION_MINOR 0 +#define tskKERNEL_VERSION_BUILD 0 /** * task. h * * Type by which tasks are referenced. For example, a call to xTaskCreate - * returns (via a pointer parameter) an xTaskHandle variable that can then + * returns (via a pointer parameter) an TaskHandle_t variable that can then * be used as a parameter to vTaskDelete to delete the task. * - * \defgroup xTaskHandle xTaskHandle + * \defgroup TaskHandle_t TaskHandle_t * \ingroup Tasks */ -typedef void * xTaskHandle; +typedef void * TaskHandle_t; + +/* + * Defines the prototype to which the application task hook function must + * conform. + */ +typedef BaseType_t (*TaskHookFunction_t)( void * ); /* Task states returned by eTaskGetState. */ typedef enum @@ -101,17 +115,28 @@ typedef enum eReady, /* The task being queried is in a read or pending ready list. */ eBlocked, /* The task being queried is in the Blocked state. */ eSuspended, /* The task being queried is in the Suspended state, or is in the Blocked state with an infinite time out. */ - eDeleted /* The task being queried has been deleted, but its TCB has not yet been freed. */ + eDeleted, /* The task being queried has been deleted, but its TCB has not yet been freed. */ + eInvalid /* Used as an 'invalid state' value. */ } eTaskState; +/* Actions that can be performed when vTaskNotify() is called. */ +typedef enum +{ + eNoAction = 0, /* Notify the task without updating its notify value. */ + eSetBits, /* Set bits in the task's notification value. */ + eIncrement, /* Increment the task's notification value. */ + eSetValueWithOverwrite, /* Set the task's notification value to a specific value even if the previous value has not yet been read by the task. */ + eSetValueWithoutOverwrite /* Set the task's notification value if the previous value has been read by the task. */ +} eNotifyAction; + /* * Used internally only. */ typedef struct xTIME_OUT { - portBASE_TYPE xOverflowCount; - portTickType xTimeOnEntering; -} xTimeOutType; + BaseType_t xOverflowCount; + TickType_t xTimeOnEntering; +} TimeOut_t; /* * Defines the memory ranges allocated to the task when an MPU is used. @@ -119,37 +144,38 @@ typedef struct xTIME_OUT typedef struct xMEMORY_REGION { void *pvBaseAddress; - unsigned long ulLengthInBytes; - unsigned long ulParameters; -} xMemoryRegion; + uint32_t ulLengthInBytes; + uint32_t ulParameters; +} MemoryRegion_t; /* * Parameters required to create an MPU protected task. */ -typedef struct xTASK_PARAMTERS +typedef struct xTASK_PARAMETERS { - pdTASK_CODE pvTaskCode; - const signed char * const pcName; - unsigned short usStackDepth; + TaskFunction_t pvTaskCode; + const char * const pcName; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + uint16_t usStackDepth; void *pvParameters; - unsigned portBASE_TYPE uxPriority; - portSTACK_TYPE *puxStackBuffer; - xMemoryRegion xRegions[ portNUM_CONFIGURABLE_REGIONS ]; -} xTaskParameters; + UBaseType_t uxPriority; + StackType_t *puxStackBuffer; + MemoryRegion_t xRegions[ portNUM_CONFIGURABLE_REGIONS ]; +} TaskParameters_t; /* Used with the uxTaskGetSystemState() function to return the state of each task in the system. */ typedef struct xTASK_STATUS { - xTaskHandle xHandle; /* The handle of the task to which the rest of the information in the structure relates. */ - const signed char *pcTaskName; /* A pointer to the task's name. This value will be invalid if the task was deleted since the structure was populated! */ - unsigned portBASE_TYPE xTaskNumber; /* A number unique to the task. */ - eTaskState eCurrentState; /* The state in which the task existed when the structure was populated. */ - unsigned portBASE_TYPE uxCurrentPriority; /* The priority at which the task was running (may be inherited) when the structure was populated. */ - unsigned portBASE_TYPE uxBasePriority; /* The priority to which the task will return if the task's current priority has been inherited to avoid unbounded priority inversion when obtaining a mutex. Only valid if configUSE_MUTEXES is defined as 1 in FreeRTOSConfig.h. */ - unsigned long ulRunTimeCounter; /* The total run time allocated to the task so far, as defined by the run time stats clock. See http://www.freertos.org/rtos-run-time-stats.html. Only valid when configGENERATE_RUN_TIME_STATS is defined as 1 in FreeRTOSConfig.h. */ - unsigned short usStackHighWaterMark; /* The minimum amount of stack space that has remained for the task since the task was created. The closer this value is to zero the closer the task has come to overflowing its stack. */ -} xTaskStatusType; + TaskHandle_t xHandle; /* The handle of the task to which the rest of the information in the structure relates. */ + const char *pcTaskName; /* A pointer to the task's name. This value will be invalid if the task was deleted since the structure was populated! */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + UBaseType_t xTaskNumber; /* A number unique to the task. */ + eTaskState eCurrentState; /* The state in which the task existed when the structure was populated. */ + UBaseType_t uxCurrentPriority; /* The priority at which the task was running (may be inherited) when the structure was populated. */ + UBaseType_t uxBasePriority; /* The priority to which the task will return if the task's current priority has been inherited to avoid unbounded priority inversion when obtaining a mutex. Only valid if configUSE_MUTEXES is defined as 1 in FreeRTOSConfig.h. */ + uint32_t ulRunTimeCounter; /* The total run time allocated to the task so far, as defined by the run time stats clock. See http://www.freertos.org/rtos-run-time-stats.html. Only valid when configGENERATE_RUN_TIME_STATS is defined as 1 in FreeRTOSConfig.h. */ + StackType_t *pxStackBase; /* Points to the lowest address of the task's stack area. */ + uint16_t usStackHighWaterMark; /* The minimum amount of stack space that has remained for the task since the task was created. The closer this value is to zero the closer the task has come to overflowing its stack. */ +} TaskStatus_t; /* Possible return values for eTaskConfirmSleepModeStatus(). */ typedef enum @@ -159,13 +185,12 @@ typedef enum eNoTasksWaitingTimeout /* No tasks are waiting for a timeout so it is safe to enter a sleep mode that can only be exited by an external interrupt. */ } eSleepModeStatus; - -/* +/** * Defines the priority used by the idle task. This must not be modified. * * \ingroup TaskUtils */ -#define tskIDLE_PRIORITY ( ( unsigned portBASE_TYPE ) 0U ) +#define tskIDLE_PRIORITY ( ( UBaseType_t ) 0U ) /** * task. h @@ -190,6 +215,7 @@ typedef enum * \ingroup SchedulerControl */ #define taskENTER_CRITICAL() portENTER_CRITICAL() +#define taskENTER_CRITICAL_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR() /** * task. h @@ -204,7 +230,7 @@ typedef enum * \ingroup SchedulerControl */ #define taskEXIT_CRITICAL() portEXIT_CRITICAL() - +#define taskEXIT_CRITICAL_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( x ) /** * task. h * @@ -225,10 +251,13 @@ typedef enum */ #define taskENABLE_INTERRUPTS() portENABLE_INTERRUPTS() -/* Definitions returned by xTaskGetSchedulerState(). */ -#define taskSCHEDULER_NOT_STARTED ( ( portBASE_TYPE ) 0 ) -#define taskSCHEDULER_RUNNING ( ( portBASE_TYPE ) 1 ) -#define taskSCHEDULER_SUSPENDED ( ( portBASE_TYPE ) 2 ) +/* Definitions returned by xTaskGetSchedulerState(). taskSCHEDULER_SUSPENDED is +0 to generate more optimal code when configASSERT() is defined as the constant +is used in assert() statements. */ +#define taskSCHEDULER_SUSPENDED ( ( BaseType_t ) 0 ) +#define taskSCHEDULER_NOT_STARTED ( ( BaseType_t ) 1 ) +#define taskSCHEDULER_RUNNING ( ( BaseType_t ) 2 ) + /*----------------------------------------------------------- * TASK CREATION API @@ -237,17 +266,30 @@ typedef enum /** * task. h *
- portBASE_TYPE xTaskCreate(
-							  pdTASK_CODE pvTaskCode,
+ BaseType_t xTaskCreate(
+							  TaskFunction_t pvTaskCode,
 							  const char * const pcName,
-							  unsigned short usStackDepth,
+							  uint16_t usStackDepth,
 							  void *pvParameters,
-							  unsigned portBASE_TYPE uxPriority,
-							  xTaskHandle *pvCreatedTask
+							  UBaseType_t uxPriority,
+							  TaskHandle_t *pvCreatedTask
 						  );
* * Create a new task and add it to the list of tasks that are ready to run. * + * Internally, within the FreeRTOS implementation, tasks use two blocks of + * memory. The first block is used to hold the task's data structures. The + * second block is used by the task as its stack. If a task is created using + * xTaskCreate() then both blocks of memory are automatically dynamically + * allocated inside the xTaskCreate() function. (see + * http://www.freertos.org/a00111.html). If a task is created using + * xTaskCreateStatic() then the application writer must provide the required + * memory. xTaskCreateStatic() therefore allows a task to be created without + * using any dynamic memory allocation. + * + * See xTaskCreateStatic() for a version that does not use any dynamic memory + * allocation. + * * xTaskCreate() can only be used to create a task that has unrestricted * access to the entire microcontroller memory map. Systems that include MPU * support can alternatively create an MPU constrained task using @@ -257,7 +299,7 @@ typedef enum * must be implemented to never return (i.e. continuous loop). * * @param pcName A descriptive name for the task. This is mainly used to - * facilitate debugging. Max length defined by tskMAX_TASK_NAME_LEN - default + * facilitate debugging. Max length defined by configMAX_TASK_NAME_LEN - default * is 16. * * @param usStackDepth The size of the task stack specified as the number of @@ -278,7 +320,7 @@ typedef enum * can be referenced. * * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h + * list, otherwise an error code defined in the file projdefs.h * * Example usage:
@@ -294,28 +336,156 @@ typedef enum
  // Function that creates a task.
  void vOtherFunction( void )
  {
- static unsigned char ucParameterToPass;
- xTaskHandle xHandle;
+ static uint8_t ucParameterToPass;
+ TaskHandle_t xHandle = NULL;
 
 	 // Create the task, storing the handle.  Note that the passed parameter ucParameterToPass
 	 // must exist for the lifetime of the task, so in this case is declared static.  If it was just an
 	 // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time
 	 // the new task attempts to access it.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
+     configASSERT( xHandle );
 
 	 // Use the handle to delete the task.
-	 vTaskDelete( xHandle );
+     if( xHandle != NULL )
+     {
+	     vTaskDelete( xHandle );
+     }
  }
    
* \defgroup xTaskCreate xTaskCreate * \ingroup Tasks */ -#define xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) xTaskGenericCreate( ( pvTaskCode ), ( pcName ), ( usStackDepth ), ( pvParameters ), ( uxPriority ), ( pxCreatedTask ), ( NULL ), ( NULL ) ) +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint16_t usStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + TaskHandle_t * const pxCreatedTask ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +#endif /** * task. h *
- portBASE_TYPE xTaskCreateRestricted( xTaskParameters *pxTaskDefinition, xTaskHandle *pxCreatedTask );
+ TaskHandle_t xTaskCreateStatic( TaskFunction_t pvTaskCode, + const char * const pcName, + uint32_t ulStackDepth, + void *pvParameters, + UBaseType_t uxPriority, + StackType_t *pxStackBuffer, + StaticTask_t *pxTaskBuffer );
+ * + * Create a new task and add it to the list of tasks that are ready to run. + * + * Internally, within the FreeRTOS implementation, tasks use two blocks of + * memory. The first block is used to hold the task's data structures. The + * second block is used by the task as its stack. If a task is created using + * xTaskCreate() then both blocks of memory are automatically dynamically + * allocated inside the xTaskCreate() function. (see + * http://www.freertos.org/a00111.html). If a task is created using + * xTaskCreateStatic() then the application writer must provide the required + * memory. xTaskCreateStatic() therefore allows a task to be created without + * using any dynamic memory allocation. + * + * @param pvTaskCode Pointer to the task entry function. Tasks + * must be implemented to never return (i.e. continuous loop). + * + * @param pcName A descriptive name for the task. This is mainly used to + * facilitate debugging. The maximum length of the string is defined by + * configMAX_TASK_NAME_LEN in FreeRTOSConfig.h. + * + * @param ulStackDepth The size of the task stack specified as the number of + * variables the stack can hold - not the number of bytes. For example, if + * the stack is 32-bits wide and ulStackDepth is defined as 100 then 400 bytes + * will be allocated for stack storage. + * + * @param pvParameters Pointer that will be used as the parameter for the task + * being created. + * + * @param uxPriority The priority at which the task will run. + * + * @param pxStackBuffer Must point to a StackType_t array that has at least + * ulStackDepth indexes - the array will then be used as the task's stack, + * removing the need for the stack to be allocated dynamically. + * + * @param pxTaskBuffer Must point to a variable of type StaticTask_t, which will + * then be used to hold the task's data structures, removing the need for the + * memory to be allocated dynamically. + * + * @return If neither pxStackBuffer or pxTaskBuffer are NULL, then the task will + * be created and pdPASS is returned. If either pxStackBuffer or pxTaskBuffer + * are NULL then the task will not be created and + * errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY is returned. + * + * Example usage: +
+
+    // Dimensions the buffer that the task being created will use as its stack.
+    // NOTE:  This is the number of words the stack will hold, not the number of
+    // bytes.  For example, if each stack item is 32-bits, and this is set to 100,
+    // then 400 bytes (100 * 32-bits) will be allocated.
+    #define STACK_SIZE 200
+
+    // Structure that will hold the TCB of the task being created.
+    StaticTask_t xTaskBuffer;
+
+    // Buffer that the task being created will use as its stack.  Note this is
+    // an array of StackType_t variables.  The size of StackType_t is dependent on
+    // the RTOS port.
+    StackType_t xStack[ STACK_SIZE ];
+
+    // Function that implements the task being created.
+    void vTaskCode( void * pvParameters )
+    {
+        // The parameter value is expected to be 1 as 1 is passed in the
+        // pvParameters value in the call to xTaskCreateStatic().
+        configASSERT( ( uint32_t ) pvParameters == 1UL );
+
+        for( ;; )
+        {
+            // Task code goes here.
+        }
+    }
+
+    // Function that creates a task.
+    void vOtherFunction( void )
+    {
+        TaskHandle_t xHandle = NULL;
+
+        // Create the task without using any dynamic memory allocation.
+        xHandle = xTaskCreateStatic(
+                      vTaskCode,       // Function that implements the task.
+                      "NAME",          // Text name for the task.
+                      STACK_SIZE,      // Stack size in words, not bytes.
+                      ( void * ) 1,    // Parameter passed into the task.
+                      tskIDLE_PRIORITY,// Priority at which the task is created.
+                      xStack,          // Array to use as the task's stack.
+                      &xTaskBuffer );  // Variable to hold the task's data structure.
+
+        // puxStackBuffer and pxTaskBuffer were not NULL, so the task will have
+        // been created, and xHandle will be the task's handle.  Use the handle
+        // to suspend the task.
+        vTaskSuspend( xHandle );
+    }
+   
+ * \defgroup xTaskCreateStatic xTaskCreateStatic + * \ingroup Tasks + */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint32_t ulStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + StackType_t * const puxStackBuffer, + StaticTask_t * const pxTaskBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * task. h + *
+ BaseType_t xTaskCreateRestricted( TaskParameters_t *pxTaskDefinition, TaskHandle_t *pxCreatedTask );
* * xTaskCreateRestricted() should only be used in systems that include an MPU * implementation. @@ -333,12 +503,12 @@ typedef enum * can be referenced. * * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h + * list, otherwise an error code defined in the file projdefs.h * * Example usage:
-// Create an xTaskParameters structure that defines the task to be created.
-static const xTaskParameters xCheckTaskParameters =
+// Create an TaskParameters_t structure that defines the task to be created.
+static const TaskParameters_t xCheckTaskParameters =
 {
 	vATask,		// pvTaskCode - the function that implements the task.
 	"ATask",	// pcName - just a text name for the task to assist debugging.
@@ -361,7 +531,7 @@ static const xTaskParameters xCheckTaskParameters =
 
 int main( void )
 {
-xTaskHandle xHandle;
+TaskHandle_t xHandle;
 
 	// Create a task from the const structure defined above.  The task handle
 	// is requested (the second parameter is not NULL) but in this case just for
@@ -372,19 +542,21 @@ xTaskHandle xHandle;
 	vTaskStartScheduler();
 
 	// Will only get here if there was insufficient memory to create the idle
-	// task.
+	// and/or timer task.
 	for( ;; );
 }
    
* \defgroup xTaskCreateRestricted xTaskCreateRestricted * \ingroup Tasks */ -#define xTaskCreateRestricted( x, pxCreatedTask ) xTaskGenericCreate( ((x)->pvTaskCode), ((x)->pcName), ((x)->usStackDepth), ((x)->pvParameters), ((x)->uxPriority), (pxCreatedTask), ((x)->puxStackBuffer), ((x)->xRegions) ) +#if( portUSING_MPU_WRAPPERS == 1 ) + BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) PRIVILEGED_FUNCTION; +#endif /** * task. h *
- void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions );
+ void vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions );
* * Memory regions are assigned to a restricted task when the task is created by * a call to xTaskCreateRestricted(). These regions can be redefined using @@ -392,16 +564,16 @@ xTaskHandle xHandle; * * @param xTask The handle of the task being updated. * - * @param xRegions A pointer to an xMemoryRegion structure that contains the + * @param xRegions A pointer to an MemoryRegion_t structure that contains the * new memory region definitions. * * Example usage:
-// Define an array of xMemoryRegion structures that configures an MPU region
+// Define an array of MemoryRegion_t structures that configures an MPU region
 // allowing read/write access for 1024 bytes starting at the beginning of the
 // ucOneKByte array.  The other two of the maximum 3 definable regions are
 // unused so set to zero.
-static const xMemoryRegion xAltRegions[ portNUM_CONFIGURABLE_REGIONS ] =
+static const MemoryRegion_t xAltRegions[ portNUM_CONFIGURABLE_REGIONS ] =
 {
 	// Base address		Length		Parameters
 	{ ucOneKByte,		1024,		portMPU_REGION_READ_WRITE },
@@ -427,16 +599,16 @@ void vATask( void *pvParameters )
  * \defgroup xTaskCreateRestricted xTaskCreateRestricted
  * \ingroup Tasks
  */
-void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions ) PRIVILEGED_FUNCTION;
+void vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions ) PRIVILEGED_FUNCTION;
 
 /**
  * task. h
- * 
void vTaskDelete( xTaskHandle xTask );
+ *
void vTaskDelete( TaskHandle_t xTask );
* * INCLUDE_vTaskDelete must be defined as 1 for this function to be available. * See the configuration section for more information. * - * Remove a task from the RTOS real time kernels management. The task being + * Remove a task from the RTOS real time kernel's management. The task being * deleted will be removed from all ready, blocked, suspended and event lists. * * NOTE: The idle task is responsible for freeing the kernel allocated @@ -456,7 +628,7 @@ void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxR
  void vOtherFunction( void )
  {
- xTaskHandle xHandle;
+ TaskHandle_t xHandle;
 
 	 // Create the task, storing the handle.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
@@ -468,7 +640,7 @@ void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxR
  * \defgroup vTaskDelete vTaskDelete
  * \ingroup Tasks
  */
-void vTaskDelete( xTaskHandle xTaskToDelete ) PRIVILEGED_FUNCTION;
+void vTaskDelete( TaskHandle_t xTaskToDelete ) PRIVILEGED_FUNCTION;
 
 /*-----------------------------------------------------------
  * TASK CONTROL API
@@ -476,11 +648,11 @@ void vTaskDelete( xTaskHandle xTaskToDelete ) PRIVILEGED_FUNCTION;
 
 /**
  * task. h
- * 
void vTaskDelay( portTickType xTicksToDelay );
+ *
void vTaskDelay( const TickType_t xTicksToDelay );
* * Delay a task for a given number of ticks. The actual time that the * task remains blocked depends on the tick rate. The constant - * portTICK_RATE_MS can be used to calculate real time from the tick + * portTICK_PERIOD_MS can be used to calculate real time from the tick * rate - with the resolution of one tick period. * * INCLUDE_vTaskDelay must be defined as 1 for this function to be available. @@ -491,7 +663,7 @@ void vTaskDelete( xTaskHandle xTaskToDelete ) PRIVILEGED_FUNCTION; * the time at which vTaskDelay() is called. For example, specifying a block * period of 100 ticks will cause the task to unblock 100 ticks after * vTaskDelay() is called. vTaskDelay() does not therefore provide a good method - * of controlling the frequency of a cyclical task as the path taken through the + * of controlling the frequency of a periodic task as the path taken through the * code, as well as other task and interrupt activity, will effect the frequency * at which vTaskDelay() gets called and therefore the time at which the task * next executes. See vTaskDelayUntil() for an alternative API function designed @@ -504,12 +676,10 @@ void vTaskDelete( xTaskHandle xTaskToDelete ) PRIVILEGED_FUNCTION; * * Example usage: - void vTaskFunction( void * pvParameters ) - { void vTaskFunction( void * pvParameters ) { // Block for 500ms. - const portTickType xDelay = 500 / portTICK_RATE_MS; + const TickType_t xDelay = 500 / portTICK_PERIOD_MS; for( ;; ) { @@ -522,16 +692,16 @@ void vTaskDelete( xTaskHandle xTaskToDelete ) PRIVILEGED_FUNCTION; * \defgroup vTaskDelay vTaskDelay * \ingroup TaskCtrl */ -void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; +void vTaskDelay( const TickType_t xTicksToDelay ) PRIVILEGED_FUNCTION; /** * task. h - *
void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );
+ *
void vTaskDelayUntil( TickType_t *pxPreviousWakeTime, const TickType_t xTimeIncrement );
* * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available. * See the configuration section for more information. * - * Delay a task until a specified time. This function can be used by cyclical + * Delay a task until a specified time. This function can be used by periodic * tasks to ensure a constant execution frequency. * * This function differs from vTaskDelay () in one important aspect: vTaskDelay () will @@ -546,7 +716,7 @@ void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to * unblock. * - * The constant portTICK_RATE_MS can be used to calculate real time from the tick + * The constant portTICK_PERIOD_MS can be used to calculate real time from the tick * rate - with the resolution of one tick period. * * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the @@ -564,8 +734,8 @@ void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; // Perform an action every 10 ticks. void vTaskFunction( void * pvParameters ) { - portTickType xLastWakeTime; - const portTickType xFrequency = 10; + TickType_t xLastWakeTime; + const TickType_t xFrequency = 10; // Initialise the xLastWakeTime variable with the current time. xLastWakeTime = xTaskGetTickCount (); @@ -581,13 +751,38 @@ void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; * \defgroup vTaskDelayUntil vTaskDelayUntil * \ingroup TaskCtrl */ -void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) PRIVILEGED_FUNCTION; +void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) PRIVILEGED_FUNCTION; /** * task. h - *
unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle xTask );
+ *
BaseType_t xTaskAbortDelay( TaskHandle_t xTask );
* - * INCLUDE_xTaskPriorityGet must be defined as 1 for this function to be available. + * INCLUDE_xTaskAbortDelay must be defined as 1 in FreeRTOSConfig.h for this + * function to be available. + * + * A task will enter the Blocked state when it is waiting for an event. The + * event it is waiting for can be a temporal event (waiting for a time), such + * as when vTaskDelay() is called, or an event on an object, such as when + * xQueueReceive() or ulTaskNotifyTake() is called. If the handle of a task + * that is in the Blocked state is used in a call to xTaskAbortDelay() then the + * task will leave the Blocked state, and return from whichever function call + * placed the task into the Blocked state. + * + * @param xTask The handle of the task to remove from the Blocked state. + * + * @return If the task referenced by xTask was not in the Blocked state then + * pdFAIL is returned. Otherwise pdPASS is returned. + * + * \defgroup xTaskAbortDelay xTaskAbortDelay + * \ingroup TaskCtrl + */ +BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; + +/** + * task. h + *
UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask );
+ * + * INCLUDE_uxTaskPriorityGet must be defined as 1 for this function to be available. * See the configuration section for more information. * * Obtain the priority of any task. @@ -601,7 +796,7 @@ void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTim
  void vAFunction( void )
  {
- xTaskHandle xHandle;
+ TaskHandle_t xHandle;
 
 	 // Create a task, storing the handle.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
@@ -628,11 +823,19 @@ void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTim
  * \defgroup uxTaskPriorityGet uxTaskPriorityGet
  * \ingroup TaskCtrl
  */
-unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle xTask ) PRIVILEGED_FUNCTION;
+UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;
 
 /**
  * task. h
- * 
eTaskState eTaskGetState( xTaskHandle xTask );
+ *
UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask );
+ * + * A version of uxTaskPriorityGet() that can be used from an ISR. + */ +UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; + +/** + * task. h + *
eTaskState eTaskGetState( TaskHandle_t xTask );
* * INCLUDE_eTaskGetState must be defined as 1 for this function to be available. * See the configuration section for more information. @@ -646,11 +849,67 @@ unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle xTask ) PRIVILEGED_FUNCTIO * state of the task might change between the function being called, and the * functions return value being tested by the calling task. */ -eTaskState eTaskGetState( xTaskHandle xTask ) PRIVILEGED_FUNCTION; +eTaskState eTaskGetState( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; /** * task. h - *
void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority );
+ *
void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState );
+ * + * configUSE_TRACE_FACILITY must be defined as 1 for this function to be + * available. See the configuration section for more information. + * + * Populates a TaskStatus_t structure with information about a task. + * + * @param xTask Handle of the task being queried. If xTask is NULL then + * information will be returned about the calling task. + * + * @param pxTaskStatus A pointer to the TaskStatus_t structure that will be + * filled with information about the task referenced by the handle passed using + * the xTask parameter. + * + * @xGetFreeStackSpace The TaskStatus_t structure contains a member to report + * the stack high water mark of the task being queried. Calculating the stack + * high water mark takes a relatively long time, and can make the system + * temporarily unresponsive - so the xGetFreeStackSpace parameter is provided to + * allow the high water mark checking to be skipped. The high watermark value + * will only be written to the TaskStatus_t structure if xGetFreeStackSpace is + * not set to pdFALSE; + * + * @param eState The TaskStatus_t structure contains a member to report the + * state of the task being queried. Obtaining the task state is not as fast as + * a simple assignment - so the eState parameter is provided to allow the state + * information to be omitted from the TaskStatus_t structure. To obtain state + * information then set eState to eInvalid - otherwise the value passed in + * eState will be reported as the task state in the TaskStatus_t structure. + * + * Example usage: +
+ void vAFunction( void )
+ {
+ TaskHandle_t xHandle;
+ TaskStatus_t xTaskDetails;
+
+    // Obtain the handle of a task from its name.
+    xHandle = xTaskGetHandle( "Task_Name" );
+
+    // Check the handle is not NULL.
+    configASSERT( xHandle );
+
+    // Use the handle to obtain further information about the task.
+    vTaskGetInfo( xHandle,
+                  &xTaskDetails,
+                  pdTRUE, // Include the high water mark in xTaskDetails.
+                  eInvalid ); // Include the task state in xTaskDetails.
+ }
+   
+ * \defgroup vTaskGetInfo vTaskGetInfo + * \ingroup TaskCtrl + */ +void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ) PRIVILEGED_FUNCTION; + +/** + * task. h + *
void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority );
* * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available. * See the configuration section for more information. @@ -669,7 +928,7 @@ eTaskState eTaskGetState( xTaskHandle xTask ) PRIVILEGED_FUNCTION;
  void vAFunction( void )
  {
- xTaskHandle xHandle;
+ TaskHandle_t xHandle;
 
 	 // Create a task, storing the handle.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
@@ -688,11 +947,11 @@ eTaskState eTaskGetState( xTaskHandle xTask ) PRIVILEGED_FUNCTION;
  * \defgroup vTaskPrioritySet vTaskPrioritySet
  * \ingroup TaskCtrl
  */
-void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority ) PRIVILEGED_FUNCTION;
+void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ) PRIVILEGED_FUNCTION;
 
 /**
  * task. h
- * 
void vTaskSuspend( xTaskHandle xTaskToSuspend );
+ *
void vTaskSuspend( TaskHandle_t xTaskToSuspend );
* * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. * See the configuration section for more information. @@ -711,7 +970,7 @@ void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority )
  void vAFunction( void )
  {
- xTaskHandle xHandle;
+ TaskHandle_t xHandle;
 
 	 // Create a task, storing the handle.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
@@ -739,18 +998,18 @@ void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority )
  * \defgroup vTaskSuspend vTaskSuspend
  * \ingroup TaskCtrl
  */
-void vTaskSuspend( xTaskHandle xTaskToSuspend ) PRIVILEGED_FUNCTION;
+void vTaskSuspend( TaskHandle_t xTaskToSuspend ) PRIVILEGED_FUNCTION;
 
 /**
  * task. h
- * 
void vTaskResume( xTaskHandle xTaskToResume );
+ *
void vTaskResume( TaskHandle_t xTaskToResume );
* * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. * See the configuration section for more information. * * Resumes a suspended task. * - * A task that has been suspended by one of more calls to vTaskSuspend () + * A task that has been suspended by one or more calls to vTaskSuspend () * will be made available for running again by a single call to * vTaskResume (). * @@ -760,7 +1019,7 @@ void vTaskSuspend( xTaskHandle xTaskToSuspend ) PRIVILEGED_FUNCTION;
  void vAFunction( void )
  {
- xTaskHandle xHandle;
+ TaskHandle_t xHandle;
 
 	 // Create a task, storing the handle.
 	 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
@@ -782,33 +1041,42 @@ void vTaskSuspend( xTaskHandle xTaskToSuspend ) PRIVILEGED_FUNCTION;
 	 vTaskResume( xHandle );
 
 	 // The created task will once again get microcontroller processing
-	 // time in accordance with it priority within the system.
+	 // time in accordance with its priority within the system.
  }
    
* \defgroup vTaskResume vTaskResume * \ingroup TaskCtrl */ -void vTaskResume( xTaskHandle xTaskToResume ) PRIVILEGED_FUNCTION; +void vTaskResume( TaskHandle_t xTaskToResume ) PRIVILEGED_FUNCTION; /** * task. h - *
void xTaskResumeFromISR( xTaskHandle xTaskToResume );
+ *
void xTaskResumeFromISR( TaskHandle_t xTaskToResume );
* * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be * available. See the configuration section for more information. * * An implementation of vTaskResume() that can be called from within an ISR. * - * A task that has been suspended by one of more calls to vTaskSuspend () + * A task that has been suspended by one or more calls to vTaskSuspend () * will be made available for running again by a single call to * xTaskResumeFromISR (). * + * xTaskResumeFromISR() should not be used to synchronise a task with an + * interrupt if there is a chance that the interrupt could arrive prior to the + * task being suspended - as this can lead to interrupts being missed. Use of a + * semaphore as a synchronisation mechanism would avoid this eventuality. + * * @param xTaskToResume Handle to the task being readied. * + * @return pdTRUE if resuming the task should result in a context switch, + * otherwise pdFALSE. This is used by the ISR to determine if a context switch + * may be required following the ISR. + * * \defgroup vTaskResumeFromISR vTaskResumeFromISR * \ingroup TaskCtrl */ -portBASE_TYPE xTaskResumeFromISR( xTaskHandle xTaskToResume ) PRIVILEGED_FUNCTION; +BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) PRIVILEGED_FUNCTION; /*----------------------------------------------------------- * SCHEDULER CONTROL @@ -819,12 +1087,7 @@ portBASE_TYPE xTaskResumeFromISR( xTaskHandle xTaskToResume ) PRIVILEGED_FUNCTIO *
void vTaskStartScheduler( void );
* * Starts the real time kernel tick processing. After calling the kernel - * has control over which tasks are executed and when. This function - * does not return until an executing task calls vTaskEndScheduler (). - * - * At least one task should be created via a call to xTaskCreate () - * before calling vTaskStartScheduler (). The idle task is created - * automatically when the first application task is created. + * has control over which tasks are executed and when. * * See the demo application file main.c for an example of creating * tasks and starting the kernel. @@ -852,6 +1115,9 @@ void vTaskStartScheduler( void ) PRIVILEGED_FUNCTION; * task. h *
void vTaskEndScheduler( void );
* + * NOTE: At the time of writing only the x86 real mode port, which runs on a PC + * in place of DOS, implements this function. + * * Stops the real time kernel tick. All created tasks will be automatically * deleted and multitasking (either preemptive or cooperative) will * stop. Execution then resumes from the point where vTaskStartScheduler () @@ -905,8 +1171,8 @@ void vTaskEndScheduler( void ) PRIVILEGED_FUNCTION; * task. h *
void vTaskSuspendAll( void );
* - * Suspends all real time kernel activity while keeping interrupts (including the - * kernel tick) enabled. + * Suspends the scheduler without disabling interrupts. Context switches will + * not occur while the scheduler is suspended. * * After calling vTaskSuspendAll () the calling task will continue to execute * without risk of being swapped out until a call to xTaskResumeAll () has been @@ -954,11 +1220,13 @@ void vTaskSuspendAll( void ) PRIVILEGED_FUNCTION; /** * task. h - *
char xTaskResumeAll( void );
+ *
BaseType_t xTaskResumeAll( void );
* - * Resumes real time kernel activity following a call to vTaskSuspendAll (). - * After a call to vTaskSuspendAll () the kernel will take control of which - * task is executing at any time. + * Resumes scheduler activity after it was suspended by a call to + * vTaskSuspendAll(). + * + * xTaskResumeAll() only resumes the scheduler. It does not unsuspend tasks + * that were previously suspended by a call to vTaskSuspend(). * * @return If resuming the scheduler caused a context switch then pdTRUE is * returned, otherwise pdFALSE is returned. @@ -1002,18 +1270,7 @@ void vTaskSuspendAll( void ) PRIVILEGED_FUNCTION; * \defgroup xTaskResumeAll xTaskResumeAll * \ingroup SchedulerControl */ -signed portBASE_TYPE xTaskResumeAll( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - *
signed portBASE_TYPE xTaskIsTaskSuspended( const xTaskHandle xTask );
- * - * Utility task that simply returns pdTRUE if the task referenced by xTask is - * currently in the Suspended state, or pdFALSE if the task referenced by xTask - * is in any other state. - * - */ -signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) PRIVILEGED_FUNCTION; +BaseType_t xTaskResumeAll( void ) PRIVILEGED_FUNCTION; /*----------------------------------------------------------- * TASK UTILITIES @@ -1021,34 +1278,34 @@ signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) PRIVILEGED_FUNCTI /** * task. h - *
portTickType xTaskGetTickCount( void );
+ *
TickType_t xTaskGetTickCount( void );
* * @return The count of ticks since vTaskStartScheduler was called. * * \defgroup xTaskGetTickCount xTaskGetTickCount * \ingroup TaskUtils */ -portTickType xTaskGetTickCount( void ) PRIVILEGED_FUNCTION; +TickType_t xTaskGetTickCount( void ) PRIVILEGED_FUNCTION; /** * task. h - *
portTickType xTaskGetTickCountFromISR( void );
+ *
TickType_t xTaskGetTickCountFromISR( void );
* * @return The count of ticks since vTaskStartScheduler was called. * * This is a version of xTaskGetTickCount() that is safe to be called from an - * ISR - provided that portTickType is the natural word size of the + * ISR - provided that TickType_t is the natural word size of the * microcontroller being used or interrupt nesting is either not supported or * not being used. * - * \defgroup xTaskGetTickCount xTaskGetTickCount + * \defgroup xTaskGetTickCountFromISR xTaskGetTickCountFromISR * \ingroup TaskUtils */ -portTickType xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION; +TickType_t xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION; /** * task. h - *
unsigned short uxTaskGetNumberOfTasks( void );
+ *
uint16_t uxTaskGetNumberOfTasks( void );
* * @return The number of tasks that the real time kernel is currently managing. * This includes all ready, blocked and suspended tasks. A task that @@ -1058,25 +1315,40 @@ portTickType xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION; * \defgroup uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks * \ingroup TaskUtils */ -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) PRIVILEGED_FUNCTION; +UBaseType_t uxTaskGetNumberOfTasks( void ) PRIVILEGED_FUNCTION; /** * task. h - *
signed char *pcTaskGetTaskName( xTaskHandle xTaskToQuery );
+ *
char *pcTaskGetName( TaskHandle_t xTaskToQuery );
* * @return The text (human readable) name of the task referenced by the handle - * xTaskToQueury. A task can query its own name by either passing in its own - * handle, or by setting xTaskToQuery to NULL. INCLUDE_pcTaskGetTaskName must be - * set to 1 in FreeRTOSConfig.h for pcTaskGetTaskName() to be available. + * xTaskToQuery. A task can query its own name by either passing in its own + * handle, or by setting xTaskToQuery to NULL. * - * \defgroup pcTaskGetTaskName pcTaskGetTaskName + * \defgroup pcTaskGetName pcTaskGetName * \ingroup TaskUtils */ -signed char *pcTaskGetTaskName( xTaskHandle xTaskToQuery ); +char *pcTaskGetName( TaskHandle_t xTaskToQuery ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + +/** + * task. h + *
TaskHandle_t xTaskGetHandle( const char *pcNameToQuery );
+ * + * NOTE: This function takes a relatively long time to complete and should be + * used sparingly. + * + * @return The handle of the task that has the human readable name pcNameToQuery. + * NULL is returned if no matching name is found. INCLUDE_xTaskGetHandle + * must be set to 1 in FreeRTOSConfig.h for pcTaskGetHandle() to be available. + * + * \defgroup pcTaskGetHandle pcTaskGetHandle + * \ingroup TaskUtils + */ +TaskHandle_t xTaskGetHandle( const char *pcNameToQuery ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ /** * task.h - *
unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask );
+ *
UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );
* * INCLUDE_uxTaskGetStackHighWaterMark must be set to 1 in FreeRTOSConfig.h for * this function to be available. @@ -1089,13 +1361,14 @@ signed char *pcTaskGetTaskName( xTaskHandle xTaskToQuery ); * @param xTask Handle of the task associated with the stack to be checked. * Set xTask to NULL to check the stack of the calling task. * - * @return The smallest amount of free stack space there has been (in bytes) - * since the task referenced by xTask was created. + * @return The smallest amount of free stack space there has been (in words, so + * actual spaces on the stack rather than bytes) since the task referenced by + * xTask was created. */ -unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) PRIVILEGED_FUNCTION; +UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; -/* When using trace macros it is sometimes necessary to include tasks.h before -FreeRTOS.h. When this is done pdTASK_HOOK_CODE will not yet have been defined, +/* When using trace macros it is sometimes necessary to include task.h before +FreeRTOS.h. When this is done TaskHookFunction_t will not yet have been defined, so the following two prototypes will cause a compilation error. This can be fixed by simply guarding against the inclusion of these two prototypes unless they are explicitly required by the configUSE_APPLICATION_TASK_TAG configuration @@ -1104,35 +1377,48 @@ constant. */ #if configUSE_APPLICATION_TASK_TAG == 1 /** * task.h - *
void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );
+ *
void vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction );
* * Sets pxHookFunction to be the task hook function used by the task xTask. * Passing xTask as NULL has the effect of setting the calling tasks hook * function. */ - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) PRIVILEGED_FUNCTION; + void vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction ) PRIVILEGED_FUNCTION; /** * task.h - *
void xTaskGetApplicationTaskTag( xTaskHandle xTask );
+ *
void xTaskGetApplicationTaskTag( TaskHandle_t xTask );
* * Returns the pxHookFunction value assigned to the task xTask. */ - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) PRIVILEGED_FUNCTION; + TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; #endif /* configUSE_APPLICATION_TASK_TAG ==1 */ #endif /* ifdef configUSE_APPLICATION_TASK_TAG */ +#if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) + + /* Each task contains an array of pointers that is dimensioned by the + configNUM_THREAD_LOCAL_STORAGE_POINTERS setting in FreeRTOSConfig.h. The + kernel does not use the pointers itself, so the application writer can use + the pointers for any purpose they wish. The following two functions are + used to set and query a pointer respectively. */ + void vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ) PRIVILEGED_FUNCTION; + void *pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ) PRIVILEGED_FUNCTION; + +#endif + /** * task.h - *
portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );
+ *
BaseType_t xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter );
* * Calls the hook function associated with xTask. Passing xTask as NULL has * the effect of calling the Running tasks (the calling task) hook function. * * pvParameter is passed to the hook function for the task to interpret as it - * wants. + * wants. The return value is the value returned by the task hook function + * registered by the user. */ -portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) PRIVILEGED_FUNCTION; +BaseType_t xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) PRIVILEGED_FUNCTION; /** * xTaskGetIdleTaskHandle() is only available if @@ -1141,29 +1427,29 @@ portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter * Simply returns the handle of the idle task. It is not valid to call * xTaskGetIdleTaskHandle() before the scheduler has been started. */ -xTaskHandle xTaskGetIdleTaskHandle( void ); +TaskHandle_t xTaskGetIdleTaskHandle( void ) PRIVILEGED_FUNCTION; /** - * configUSE_TRACE_FACILITY must bet defined as 1 in FreeRTOSConfig.h for + * configUSE_TRACE_FACILITY must be defined as 1 in FreeRTOSConfig.h for * uxTaskGetSystemState() to be available. * - * uxTaskGetSystemState() populates an xTaskStatusType structure for each task in - * the system. xTaskStatusType structures contain, among other things, members + * uxTaskGetSystemState() populates an TaskStatus_t structure for each task in + * the system. TaskStatus_t structures contain, among other things, members * for the task handle, task name, task priority, task state, and total amount - * of run time consumed by the task. See the xTaskStatusType structure + * of run time consumed by the task. See the TaskStatus_t structure * definition in this file for the full member list. * * NOTE: This function is intended for debugging use only as its use results in * the scheduler remaining suspended for an extended period. * - * @param pxTaskStatusArray A pointer to an array of xTaskStatusType structures. - * The array must contain at least one xTaskStatusType structure for each task - * that is under the control of the RTOS. The number of tasks under the control + * @param pxTaskStatusArray A pointer to an array of TaskStatus_t structures. + * The array must contain at least one TaskStatus_t structure for each task + * that is under the control of the RTOS. The number of tasks under the control * of the RTOS can be determined using the uxTaskGetNumberOfTasks() API function. * * @param uxArraySize The size of the array pointed to by the pxTaskStatusArray * parameter. The size is specified as the number of indexes in the array, or - * the number of xTaskStatusType structures contained in the array, not by the + * the number of TaskStatus_t structures contained in the array, not by the * number of bytes in the array. * * @param pulTotalRunTime If configGENERATE_RUN_TIME_STATS is set to 1 in @@ -1172,7 +1458,7 @@ xTaskHandle xTaskGetIdleTaskHandle( void ); * http://www.freertos.org/rtos-run-time-stats.html) since the target booted. * pulTotalRunTime can be set to NULL to omit the total run time information. * - * @return The number of xTaskStatusType structures that were populated by + * @return The number of TaskStatus_t structures that were populated by * uxTaskGetSystemState(). This should equal the number returned by the * uxTaskGetNumberOfTasks() API function, but will be zero if the value passed * in the uxArraySize parameter was too small. @@ -1182,22 +1468,22 @@ xTaskHandle xTaskGetIdleTaskHandle( void ); // This example demonstrates how a human readable table of run time stats // information is generated from raw data provided by uxTaskGetSystemState(). // The human readable table is written to pcWriteBuffer - void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) + void vTaskGetRunTimeStats( char *pcWriteBuffer ) { - xTaskStatusType *pxTaskStatusArray; - volatile unsigned portBASE_TYPE uxArraySize, x; - unsigned long ulTotalRunTime, ulStatsAsPercentage; + TaskStatus_t *pxTaskStatusArray; + volatile UBaseType_t uxArraySize, x; + uint32_t ulTotalRunTime, ulStatsAsPercentage; // Make sure the write buffer does not contain a string. *pcWriteBuffer = 0x00; // Take a snapshot of the number of tasks in case it changes while this // function is executing. - uxArraySize = uxCurrentNumberOfTasks(); + uxArraySize = uxTaskGetNumberOfTasks(); - // Allocate a xTaskStatusType structure for each task. An array could be + // Allocate a TaskStatus_t structure for each task. An array could be // allocated statically at compile time. - pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( xTaskStatusType ) ); + pxTaskStatusArray = pvPortMalloc( uxArraySize * sizeof( TaskStatus_t ) ); if( pxTaskStatusArray != NULL ) { @@ -1221,13 +1507,13 @@ xTaskHandle xTaskGetIdleTaskHandle( void ); if( ulStatsAsPercentage > 0UL ) { - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "%s\t\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); } else { // If the percentage is zero here then the task has // consumed less than 1% of the total run time. - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "%s\t\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter ); } pcWriteBuffer += strlen( ( char * ) pcWriteBuffer ); @@ -1240,7 +1526,7 @@ xTaskHandle xTaskGetIdleTaskHandle( void ); }
*/ -unsigned portBASE_TYPE uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime ); +UBaseType_t uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime ) PRIVILEGED_FUNCTION; /** * task. h @@ -1280,14 +1566,14 @@ unsigned portBASE_TYPE uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, * call to vTaskList(). * * @param pcWriteBuffer A buffer into which the above mentioned details - * will be written, in ascii form. This buffer is assumed to be large + * will be written, in ASCII form. This buffer is assumed to be large * enough to contain the generated report. Approximately 40 bytes per * task should be sufficient. * * \defgroup vTaskList vTaskList * \ingroup TaskUtils */ -void vTaskList( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; +void vTaskList( char * pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ /** * task. h @@ -1296,7 +1582,7 @@ void vTaskList( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; * configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS * must both be defined as 1 for this function to be available. The application * must also then provide definitions for - * portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE + * portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE() * to configure a peripheral timer/counter and return the timers current count * value respectively. The counter should be at least 10 times the frequency of * the tick count. @@ -1334,14 +1620,449 @@ void vTaskList( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; * vTaskGetRunTimeStats(). * * @param pcWriteBuffer A buffer into which the execution times will be - * written, in ascii form. This buffer is assumed to be large enough to + * written, in ASCII form. This buffer is assumed to be large enough to * contain the generated report. Approximately 40 bytes per task should * be sufficient. * * \defgroup vTaskGetRunTimeStats vTaskGetRunTimeStats * \ingroup TaskUtils */ -void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; +void vTaskGetRunTimeStats( char *pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + +/** + * task. h + *
BaseType_t xTaskNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction );
+ * + * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this + * function to be available. + * + * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private + * "notification value", which is a 32-bit unsigned integer (uint32_t). + * + * Events can be sent to a task using an intermediary object. Examples of such + * objects are queues, semaphores, mutexes and event groups. Task notifications + * are a method of sending an event directly to a task without the need for such + * an intermediary object. + * + * A notification sent to a task can optionally perform an action, such as + * update, overwrite or increment the task's notification value. In that way + * task notifications can be used to send data to a task, or be used as light + * weight and fast binary or counting semaphores. + * + * A notification sent to a task will remain pending until it is cleared by the + * task calling xTaskNotifyWait() or ulTaskNotifyTake(). If the task was + * already in the Blocked state to wait for a notification when the notification + * arrives then the task will automatically be removed from the Blocked state + * (unblocked) and the notification cleared. + * + * A task can use xTaskNotifyWait() to [optionally] block to wait for a + * notification to be pending, or ulTaskNotifyTake() to [optionally] block + * to wait for its notification value to have a non-zero value. The task does + * not consume any CPU time while it is in the Blocked state. + * + * See http://www.FreeRTOS.org/RTOS-task-notifications.html for details. + * + * @param xTaskToNotify The handle of the task being notified. The handle to a + * task can be returned from the xTaskCreate() API function used to create the + * task, and the handle of the currently running task can be obtained by calling + * xTaskGetCurrentTaskHandle(). + * + * @param ulValue Data that can be sent with the notification. How the data is + * used depends on the value of the eAction parameter. + * + * @param eAction Specifies how the notification updates the task's notification + * value, if at all. Valid values for eAction are as follows: + * + * eSetBits - + * The task's notification value is bitwise ORed with ulValue. xTaskNofify() + * always returns pdPASS in this case. + * + * eIncrement - + * The task's notification value is incremented. ulValue is not used and + * xTaskNotify() always returns pdPASS in this case. + * + * eSetValueWithOverwrite - + * The task's notification value is set to the value of ulValue, even if the + * task being notified had not yet processed the previous notification (the + * task already had a notification pending). xTaskNotify() always returns + * pdPASS in this case. + * + * eSetValueWithoutOverwrite - + * If the task being notified did not already have a notification pending then + * the task's notification value is set to ulValue and xTaskNotify() will + * return pdPASS. If the task being notified already had a notification + * pending then no action is performed and pdFAIL is returned. + * + * eNoAction - + * The task receives a notification without its notification value being + * updated. ulValue is not used and xTaskNotify() always returns pdPASS in + * this case. + * + * pulPreviousNotificationValue - + * Can be used to pass out the subject task's notification value before any + * bits are modified by the notify function. + * + * @return Dependent on the value of eAction. See the description of the + * eAction parameter. + * + * \defgroup xTaskNotify xTaskNotify + * \ingroup TaskNotifications + */ +BaseType_t xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ) PRIVILEGED_FUNCTION; +#define xTaskNotify( xTaskToNotify, ulValue, eAction ) xTaskGenericNotify( ( xTaskToNotify ), ( ulValue ), ( eAction ), NULL ) +#define xTaskNotifyAndQuery( xTaskToNotify, ulValue, eAction, pulPreviousNotifyValue ) xTaskGenericNotify( ( xTaskToNotify ), ( ulValue ), ( eAction ), ( pulPreviousNotifyValue ) ) + +/** + * task. h + *
BaseType_t xTaskNotifyFromISR( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, BaseType_t *pxHigherPriorityTaskWoken );
+ * + * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this + * function to be available. + * + * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private + * "notification value", which is a 32-bit unsigned integer (uint32_t). + * + * A version of xTaskNotify() that can be used from an interrupt service routine + * (ISR). + * + * Events can be sent to a task using an intermediary object. Examples of such + * objects are queues, semaphores, mutexes and event groups. Task notifications + * are a method of sending an event directly to a task without the need for such + * an intermediary object. + * + * A notification sent to a task can optionally perform an action, such as + * update, overwrite or increment the task's notification value. In that way + * task notifications can be used to send data to a task, or be used as light + * weight and fast binary or counting semaphores. + * + * A notification sent to a task will remain pending until it is cleared by the + * task calling xTaskNotifyWait() or ulTaskNotifyTake(). If the task was + * already in the Blocked state to wait for a notification when the notification + * arrives then the task will automatically be removed from the Blocked state + * (unblocked) and the notification cleared. + * + * A task can use xTaskNotifyWait() to [optionally] block to wait for a + * notification to be pending, or ulTaskNotifyTake() to [optionally] block + * to wait for its notification value to have a non-zero value. The task does + * not consume any CPU time while it is in the Blocked state. + * + * See http://www.FreeRTOS.org/RTOS-task-notifications.html for details. + * + * @param xTaskToNotify The handle of the task being notified. The handle to a + * task can be returned from the xTaskCreate() API function used to create the + * task, and the handle of the currently running task can be obtained by calling + * xTaskGetCurrentTaskHandle(). + * + * @param ulValue Data that can be sent with the notification. How the data is + * used depends on the value of the eAction parameter. + * + * @param eAction Specifies how the notification updates the task's notification + * value, if at all. Valid values for eAction are as follows: + * + * eSetBits - + * The task's notification value is bitwise ORed with ulValue. xTaskNofify() + * always returns pdPASS in this case. + * + * eIncrement - + * The task's notification value is incremented. ulValue is not used and + * xTaskNotify() always returns pdPASS in this case. + * + * eSetValueWithOverwrite - + * The task's notification value is set to the value of ulValue, even if the + * task being notified had not yet processed the previous notification (the + * task already had a notification pending). xTaskNotify() always returns + * pdPASS in this case. + * + * eSetValueWithoutOverwrite - + * If the task being notified did not already have a notification pending then + * the task's notification value is set to ulValue and xTaskNotify() will + * return pdPASS. If the task being notified already had a notification + * pending then no action is performed and pdFAIL is returned. + * + * eNoAction - + * The task receives a notification without its notification value being + * updated. ulValue is not used and xTaskNotify() always returns pdPASS in + * this case. + * + * @param pxHigherPriorityTaskWoken xTaskNotifyFromISR() will set + * *pxHigherPriorityTaskWoken to pdTRUE if sending the notification caused the + * task to which the notification was sent to leave the Blocked state, and the + * unblocked task has a priority higher than the currently running task. If + * xTaskNotifyFromISR() sets this value to pdTRUE then a context switch should + * be requested before the interrupt is exited. How a context switch is + * requested from an ISR is dependent on the port - see the documentation page + * for the port in use. + * + * @return Dependent on the value of eAction. See the description of the + * eAction parameter. + * + * \defgroup xTaskNotify xTaskNotify + * \ingroup TaskNotifications + */ +BaseType_t xTaskGenericNotifyFromISR( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; +#define xTaskNotifyFromISR( xTaskToNotify, ulValue, eAction, pxHigherPriorityTaskWoken ) xTaskGenericNotifyFromISR( ( xTaskToNotify ), ( ulValue ), ( eAction ), NULL, ( pxHigherPriorityTaskWoken ) ) +#define xTaskNotifyAndQueryFromISR( xTaskToNotify, ulValue, eAction, pulPreviousNotificationValue, pxHigherPriorityTaskWoken ) xTaskGenericNotifyFromISR( ( xTaskToNotify ), ( ulValue ), ( eAction ), ( pulPreviousNotificationValue ), ( pxHigherPriorityTaskWoken ) ) + +/** + * task. h + *
BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait );
+ * + * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this + * function to be available. + * + * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private + * "notification value", which is a 32-bit unsigned integer (uint32_t). + * + * Events can be sent to a task using an intermediary object. Examples of such + * objects are queues, semaphores, mutexes and event groups. Task notifications + * are a method of sending an event directly to a task without the need for such + * an intermediary object. + * + * A notification sent to a task can optionally perform an action, such as + * update, overwrite or increment the task's notification value. In that way + * task notifications can be used to send data to a task, or be used as light + * weight and fast binary or counting semaphores. + * + * A notification sent to a task will remain pending until it is cleared by the + * task calling xTaskNotifyWait() or ulTaskNotifyTake(). If the task was + * already in the Blocked state to wait for a notification when the notification + * arrives then the task will automatically be removed from the Blocked state + * (unblocked) and the notification cleared. + * + * A task can use xTaskNotifyWait() to [optionally] block to wait for a + * notification to be pending, or ulTaskNotifyTake() to [optionally] block + * to wait for its notification value to have a non-zero value. The task does + * not consume any CPU time while it is in the Blocked state. + * + * See http://www.FreeRTOS.org/RTOS-task-notifications.html for details. + * + * @param ulBitsToClearOnEntry Bits that are set in ulBitsToClearOnEntry value + * will be cleared in the calling task's notification value before the task + * checks to see if any notifications are pending, and optionally blocks if no + * notifications are pending. Setting ulBitsToClearOnEntry to ULONG_MAX (if + * limits.h is included) or 0xffffffffUL (if limits.h is not included) will have + * the effect of resetting the task's notification value to 0. Setting + * ulBitsToClearOnEntry to 0 will leave the task's notification value unchanged. + * + * @param ulBitsToClearOnExit If a notification is pending or received before + * the calling task exits the xTaskNotifyWait() function then the task's + * notification value (see the xTaskNotify() API function) is passed out using + * the pulNotificationValue parameter. Then any bits that are set in + * ulBitsToClearOnExit will be cleared in the task's notification value (note + * *pulNotificationValue is set before any bits are cleared). Setting + * ulBitsToClearOnExit to ULONG_MAX (if limits.h is included) or 0xffffffffUL + * (if limits.h is not included) will have the effect of resetting the task's + * notification value to 0 before the function exits. Setting + * ulBitsToClearOnExit to 0 will leave the task's notification value unchanged + * when the function exits (in which case the value passed out in + * pulNotificationValue will match the task's notification value). + * + * @param pulNotificationValue Used to pass the task's notification value out + * of the function. Note the value passed out will not be effected by the + * clearing of any bits caused by ulBitsToClearOnExit being non-zero. + * + * @param xTicksToWait The maximum amount of time that the task should wait in + * the Blocked state for a notification to be received, should a notification + * not already be pending when xTaskNotifyWait() was called. The task + * will not consume any processing time while it is in the Blocked state. This + * is specified in kernel ticks, the macro pdMS_TO_TICSK( value_in_ms ) can be + * used to convert a time specified in milliseconds to a time specified in + * ticks. + * + * @return If a notification was received (including notifications that were + * already pending when xTaskNotifyWait was called) then pdPASS is + * returned. Otherwise pdFAIL is returned. + * + * \defgroup xTaskNotifyWait xTaskNotifyWait + * \ingroup TaskNotifications + */ +BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * task. h + *
BaseType_t xTaskNotifyGive( TaskHandle_t xTaskToNotify );
+ * + * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this macro + * to be available. + * + * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private + * "notification value", which is a 32-bit unsigned integer (uint32_t). + * + * Events can be sent to a task using an intermediary object. Examples of such + * objects are queues, semaphores, mutexes and event groups. Task notifications + * are a method of sending an event directly to a task without the need for such + * an intermediary object. + * + * A notification sent to a task can optionally perform an action, such as + * update, overwrite or increment the task's notification value. In that way + * task notifications can be used to send data to a task, or be used as light + * weight and fast binary or counting semaphores. + * + * xTaskNotifyGive() is a helper macro intended for use when task notifications + * are used as light weight and faster binary or counting semaphore equivalents. + * Actual FreeRTOS semaphores are given using the xSemaphoreGive() API function, + * the equivalent action that instead uses a task notification is + * xTaskNotifyGive(). + * + * When task notifications are being used as a binary or counting semaphore + * equivalent then the task being notified should wait for the notification + * using the ulTaskNotificationTake() API function rather than the + * xTaskNotifyWait() API function. + * + * See http://www.FreeRTOS.org/RTOS-task-notifications.html for more details. + * + * @param xTaskToNotify The handle of the task being notified. The handle to a + * task can be returned from the xTaskCreate() API function used to create the + * task, and the handle of the currently running task can be obtained by calling + * xTaskGetCurrentTaskHandle(). + * + * @return xTaskNotifyGive() is a macro that calls xTaskNotify() with the + * eAction parameter set to eIncrement - so pdPASS is always returned. + * + * \defgroup xTaskNotifyGive xTaskNotifyGive + * \ingroup TaskNotifications + */ +#define xTaskNotifyGive( xTaskToNotify ) xTaskGenericNotify( ( xTaskToNotify ), ( 0 ), eIncrement, NULL ) + +/** + * task. h + *
void vTaskNotifyGiveFromISR( TaskHandle_t xTaskHandle, BaseType_t *pxHigherPriorityTaskWoken );
+ *
+ * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this macro
+ * to be available.
+ *
+ * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private
+ * "notification value", which is a 32-bit unsigned integer (uint32_t).
+ *
+ * A version of xTaskNotifyGive() that can be called from an interrupt service
+ * routine (ISR).
+ *
+ * Events can be sent to a task using an intermediary object.  Examples of such
+ * objects are queues, semaphores, mutexes and event groups.  Task notifications
+ * are a method of sending an event directly to a task without the need for such
+ * an intermediary object.
+ *
+ * A notification sent to a task can optionally perform an action, such as
+ * update, overwrite or increment the task's notification value.  In that way
+ * task notifications can be used to send data to a task, or be used as light
+ * weight and fast binary or counting semaphores.
+ *
+ * vTaskNotifyGiveFromISR() is intended for use when task notifications are
+ * used as light weight and faster binary or counting semaphore equivalents.
+ * Actual FreeRTOS semaphores are given from an ISR using the
+ * xSemaphoreGiveFromISR() API function, the equivalent action that instead uses
+ * a task notification is vTaskNotifyGiveFromISR().
+ *
+ * When task notifications are being used as a binary or counting semaphore
+ * equivalent then the task being notified should wait for the notification
+ * using the ulTaskNotificationTake() API function rather than the
+ * xTaskNotifyWait() API function.
+ *
+ * See http://www.FreeRTOS.org/RTOS-task-notifications.html for more details.
+ *
+ * @param xTaskToNotify The handle of the task being notified.  The handle to a
+ * task can be returned from the xTaskCreate() API function used to create the
+ * task, and the handle of the currently running task can be obtained by calling
+ * xTaskGetCurrentTaskHandle().
+ *
+ * @param pxHigherPriorityTaskWoken  vTaskNotifyGiveFromISR() will set
+ * *pxHigherPriorityTaskWoken to pdTRUE if sending the notification caused the
+ * task to which the notification was sent to leave the Blocked state, and the
+ * unblocked task has a priority higher than the currently running task.  If
+ * vTaskNotifyGiveFromISR() sets this value to pdTRUE then a context switch
+ * should be requested before the interrupt is exited.  How a context switch is
+ * requested from an ISR is dependent on the port - see the documentation page
+ * for the port in use.
+ *
+ * \defgroup xTaskNotifyWait xTaskNotifyWait
+ * \ingroup TaskNotifications
+ */
+void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION;
+
+/**
+ * task. h
+ * 
uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait );
+ * + * configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this + * function to be available. + * + * When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private + * "notification value", which is a 32-bit unsigned integer (uint32_t). + * + * Events can be sent to a task using an intermediary object. Examples of such + * objects are queues, semaphores, mutexes and event groups. Task notifications + * are a method of sending an event directly to a task without the need for such + * an intermediary object. + * + * A notification sent to a task can optionally perform an action, such as + * update, overwrite or increment the task's notification value. In that way + * task notifications can be used to send data to a task, or be used as light + * weight and fast binary or counting semaphores. + * + * ulTaskNotifyTake() is intended for use when a task notification is used as a + * faster and lighter weight binary or counting semaphore alternative. Actual + * FreeRTOS semaphores are taken using the xSemaphoreTake() API function, the + * equivalent action that instead uses a task notification is + * ulTaskNotifyTake(). + * + * When a task is using its notification value as a binary or counting semaphore + * other tasks should send notifications to it using the xTaskNotifyGive() + * macro, or xTaskNotify() function with the eAction parameter set to + * eIncrement. + * + * ulTaskNotifyTake() can either clear the task's notification value to + * zero on exit, in which case the notification value acts like a binary + * semaphore, or decrement the task's notification value on exit, in which case + * the notification value acts like a counting semaphore. + * + * A task can use ulTaskNotifyTake() to [optionally] block to wait for a + * the task's notification value to be non-zero. The task does not consume any + * CPU time while it is in the Blocked state. + * + * Where as xTaskNotifyWait() will return when a notification is pending, + * ulTaskNotifyTake() will return when the task's notification value is + * not zero. + * + * See http://www.FreeRTOS.org/RTOS-task-notifications.html for details. + * + * @param xClearCountOnExit if xClearCountOnExit is pdFALSE then the task's + * notification value is decremented when the function exits. In this way the + * notification value acts like a counting semaphore. If xClearCountOnExit is + * not pdFALSE then the task's notification value is cleared to zero when the + * function exits. In this way the notification value acts like a binary + * semaphore. + * + * @param xTicksToWait The maximum amount of time that the task should wait in + * the Blocked state for the task's notification value to be greater than zero, + * should the count not already be greater than zero when + * ulTaskNotifyTake() was called. The task will not consume any processing + * time while it is in the Blocked state. This is specified in kernel ticks, + * the macro pdMS_TO_TICSK( value_in_ms ) can be used to convert a time + * specified in milliseconds to a time specified in ticks. + * + * @return The task's notification count before it is either cleared to zero or + * decremented (see the xClearCountOnExit parameter). + * + * \defgroup ulTaskNotifyTake ulTaskNotifyTake + * \ingroup TaskNotifications + */ +uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * task. h + *
BaseType_t xTaskNotifyStateClear( TaskHandle_t xTask );
+ * + * If the notification state of the task referenced by the handle xTask is + * eNotified, then set the task's notification state to eNotWaitingNotification. + * The task's notification value is not altered. Set xTask to NULL to clear the + * notification state of the calling task. + * + * @return pdTRUE if the task's notification state was set to + * eNotWaitingNotification, otherwise pdFALSE. + * \defgroup xTaskNotifyStateClear xTaskNotifyStateClear + * \ingroup TaskNotifications + */ +BaseType_t xTaskNotifyStateClear( TaskHandle_t xTask ); /*----------------------------------------------------------- * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES @@ -1362,7 +2083,7 @@ void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; * + Time slicing is in use and there is a task of equal priority to the * currently running task. */ -portBASE_TYPE xTaskIncrementTick( void ) PRIVILEGED_FUNCTION; +BaseType_t xTaskIncrementTick( void ) PRIVILEGED_FUNCTION; /* * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN @@ -1377,15 +2098,26 @@ portBASE_TYPE xTaskIncrementTick( void ) PRIVILEGED_FUNCTION; * there be no higher priority tasks waiting on the same event) or * the delay period expires. * + * The 'unordered' version replaces the event list item value with the + * xItemValue value, and inserts the list item at the end of the list. + * + * The 'ordered' version uses the existing event list item value (which is the + * owning tasks priority) to insert the list item into the event list is task + * priority order. + * * @param pxEventList The list containing tasks that are blocked waiting * for the event to occur. * + * @param xItemValue The item value to use for the event list item when the + * event list is not ordered by task priority. + * * @param xTicksToWait The maximum amount of time that the task should wait * for the event to occur. This is specified in kernel ticks,the constant - * portTICK_RATE_MS can be used to convert kernel ticks into a real time + * portTICK_PERIOD_MS can be used to convert kernel ticks into a real time * period. */ -void vTaskPlaceOnEventList( xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; +void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; +void vTaskPlaceOnUnorderedEventList( List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; /* * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN @@ -1397,10 +2129,8 @@ void vTaskPlaceOnEventList( xList * const pxEventList, portTickType xTicksToWait * The difference being that this function does not permit tasks to block * indefinitely, whereas vTaskPlaceOnEventList() does. * - * @return pdTRUE if the task being removed has a higher priority than the task - * making the call, otherwise pdFALSE. */ -void vTaskPlaceOnEventListRestricted( xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; +void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) PRIVILEGED_FUNCTION; /* * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN @@ -1411,13 +2141,23 @@ void vTaskPlaceOnEventListRestricted( xList * const pxEventList, portTickType xT * Removes a task from both the specified event list and the list of blocked * tasks, and places it on a ready queue. * - * xTaskRemoveFromEventList () will be called if either an event occurs to - * unblock a task, or the block timeout period expires. + * xTaskRemoveFromEventList()/xTaskRemoveFromUnorderedEventList() will be called + * if either an event occurs to unblock a task, or the block timeout period + * expires. + * + * xTaskRemoveFromEventList() is used when the event list is in task priority + * order. It removes the list item from the head of the event list as that will + * have the highest priority owning task of all the tasks on the event list. + * xTaskRemoveFromUnorderedEventList() is used when the event list is not + * ordered and the event list items hold something other than the owning tasks + * priority. In this case the event list item value is updated to the value + * passed in the xItemValue parameter. * * @return pdTRUE if the task being removed has a higher priority than the task * making the call, otherwise pdFALSE. */ -signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) PRIVILEGED_FUNCTION; +BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList ) PRIVILEGED_FUNCTION; +BaseType_t xTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue ) PRIVILEGED_FUNCTION; /* * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY @@ -1429,21 +2169,27 @@ signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) */ void vTaskSwitchContext( void ) PRIVILEGED_FUNCTION; +/* + * THESE FUNCTIONS MUST NOT BE USED FROM APPLICATION CODE. THEY ARE USED BY + * THE EVENT BITS MODULE. + */ +TickType_t uxTaskResetEventItemValue( void ) PRIVILEGED_FUNCTION; + /* * Return the handle of the calling task. */ -xTaskHandle xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION; +TaskHandle_t xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION; /* * Capture the current time status for future reference. */ -void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) PRIVILEGED_FUNCTION; +void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION; /* * Compare the time status now with that previously captured to see if the * timeout has expired. */ -portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) PRIVILEGED_FUNCTION; +BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) PRIVILEGED_FUNCTION; /* * Shortcut used by the queue implementation to prevent unnecessary call to @@ -1455,47 +2201,43 @@ void vTaskMissedYield( void ) PRIVILEGED_FUNCTION; * Returns the scheduler state as taskSCHEDULER_RUNNING, * taskSCHEDULER_NOT_STARTED or taskSCHEDULER_SUSPENDED. */ -portBASE_TYPE xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION; +BaseType_t xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION; /* * Raises the priority of the mutex holder to that of the calling task should * the mutex holder have a priority less than the calling task. */ -void vTaskPriorityInherit( xTaskHandle const pxMutexHolder ) PRIVILEGED_FUNCTION; +void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION; /* * Set the priority of a task back to its proper priority in the case that it * inherited a higher priority while it was holding a semaphore. */ -void vTaskPriorityDisinherit( xTaskHandle const pxMutexHolder ) PRIVILEGED_FUNCTION; - -/* - * Generic version of the task creation function which is in turn called by the - * xTaskCreate() and xTaskCreateRestricted() macros. - */ -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) PRIVILEGED_FUNCTION; +BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION; /* * Get the uxTCBNumber assigned to the task referenced by the xTask parameter. */ -unsigned portBASE_TYPE uxTaskGetTaskNumber( xTaskHandle xTask ); +UBaseType_t uxTaskGetTaskNumber( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; /* - * Set the uxTCBNumber of the task referenced by the xTask parameter to - * ucHandle. + * Set the uxTaskNumber of the task referenced by the xTask parameter to + * uxHandle. */ -void vTaskSetTaskNumber( xTaskHandle xTask, unsigned portBASE_TYPE uxHandle ); +void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) PRIVILEGED_FUNCTION; /* + * Only available when configUSE_TICKLESS_IDLE is set to 1. * If tickless mode is being used, or a low power mode is implemented, then * the tick interrupt will not execute during idle periods. When this is the * case, the tick count value maintained by the scheduler needs to be kept up - * to date with the actual execution time by being skipped forward by the by - * a time equal to the idle period. + * to date with the actual execution time by being skipped forward by a time + * equal to the idle period. */ -void vTaskStepTick( portTickType xTicksToJump ); +void vTaskStepTick( const TickType_t xTicksToJump ) PRIVILEGED_FUNCTION; /* + * Only avilable when configUSE_TICKLESS_IDLE is set to 1. * Provided for use within portSUPPRESS_TICKS_AND_SLEEP() to allow the port * specific sleep function to determine if it is ok to proceed with the sleep, * and if it is ok to proceed, if it is ok to sleep indefinitely. @@ -1508,7 +2250,13 @@ void vTaskStepTick( portTickType xTicksToJump ); * critical section between the timer being stopped and the sleep mode being * entered to ensure it is ok to proceed into the sleep mode. */ -eSleepModeStatus eTaskConfirmSleepModeStatus( void ); +eSleepModeStatus eTaskConfirmSleepModeStatus( void ) PRIVILEGED_FUNCTION; + +/* + * For internal use only. Increment the mutex held count when a mutex is + * taken and return the handle of the task that has taken the mutex. + */ +void *pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION; #ifdef __cplusplus } diff --git a/FreeRTOS/Source/include/timers.h b/FreeRTOS/Source/include/timers.h index 04ad690..798c955 100644 --- a/FreeRTOS/Source/include/timers.h +++ b/FreeRTOS/Source/include/timers.h @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -73,65 +78,95 @@ /*lint -e537 This headers are only multiply included if the application code happens to also be including task.h. */ #include "task.h" -/*lint +e956 */ +/*lint +e537 */ #ifdef __cplusplus extern "C" { #endif -/* IDs for commands that can be sent/received on the timer queue. These are to -be used solely through the macros that make up the public software timer API, -as defined below. */ -#define tmrCOMMAND_START ( ( portBASE_TYPE ) 0 ) -#define tmrCOMMAND_STOP ( ( portBASE_TYPE ) 1 ) -#define tmrCOMMAND_CHANGE_PERIOD ( ( portBASE_TYPE ) 2 ) -#define tmrCOMMAND_DELETE ( ( portBASE_TYPE ) 3 ) - /*----------------------------------------------------------- * MACROS AND DEFINITIONS *----------------------------------------------------------*/ - /** +/* IDs for commands that can be sent/received on the timer queue. These are to +be used solely through the macros that make up the public software timer API, +as defined below. The commands that are sent from interrupts must use the +highest numbers as tmrFIRST_FROM_ISR_COMMAND is used to determine if the task +or interrupt version of the queue send function should be used. */ +#define tmrCOMMAND_EXECUTE_CALLBACK_FROM_ISR ( ( BaseType_t ) -2 ) +#define tmrCOMMAND_EXECUTE_CALLBACK ( ( BaseType_t ) -1 ) +#define tmrCOMMAND_START_DONT_TRACE ( ( BaseType_t ) 0 ) +#define tmrCOMMAND_START ( ( BaseType_t ) 1 ) +#define tmrCOMMAND_RESET ( ( BaseType_t ) 2 ) +#define tmrCOMMAND_STOP ( ( BaseType_t ) 3 ) +#define tmrCOMMAND_CHANGE_PERIOD ( ( BaseType_t ) 4 ) +#define tmrCOMMAND_DELETE ( ( BaseType_t ) 5 ) + +#define tmrFIRST_FROM_ISR_COMMAND ( ( BaseType_t ) 6 ) +#define tmrCOMMAND_START_FROM_ISR ( ( BaseType_t ) 6 ) +#define tmrCOMMAND_RESET_FROM_ISR ( ( BaseType_t ) 7 ) +#define tmrCOMMAND_STOP_FROM_ISR ( ( BaseType_t ) 8 ) +#define tmrCOMMAND_CHANGE_PERIOD_FROM_ISR ( ( BaseType_t ) 9 ) + + +/** * Type by which software timers are referenced. For example, a call to - * xTimerCreate() returns an xTimerHandle variable that can then be used to + * xTimerCreate() returns an TimerHandle_t variable that can then be used to * reference the subject timer in calls to other software timer API functions * (for example, xTimerStart(), xTimerReset(), etc.). */ -typedef void * xTimerHandle; +typedef void * TimerHandle_t; -/* Define the prototype to which timer callback functions must conform. */ -typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); +/* + * Defines the prototype to which timer callback functions must conform. + */ +typedef void (*TimerCallbackFunction_t)( TimerHandle_t xTimer ); + +/* + * Defines the prototype to which functions used with the + * xTimerPendFunctionCallFromISR() function must conform. + */ +typedef void (*PendedFunction_t)( void *, uint32_t ); /** - * xTimerHandle xTimerCreate( const signed char *pcTimerName, - * portTickType xTimerPeriodInTicks, - * unsigned portBASE_TYPE uxAutoReload, + * TimerHandle_t xTimerCreate( const char * const pcTimerName, + * TickType_t xTimerPeriodInTicks, + * UBaseType_t uxAutoReload, * void * pvTimerID, - * tmrTIMER_CALLBACK pxCallbackFunction ); + * TimerCallbackFunction_t pxCallbackFunction ); * - * Creates a new software timer instance. This allocates the storage required - * by the new timer, initialises the new timers internal state, and returns a - * handle by which the new timer can be referenced. + * Creates a new software timer instance, and returns a handle by which the + * created software timer can be referenced. + * + * Internally, within the FreeRTOS implementation, software timers use a block + * of memory, in which the timer data structure is stored. If a software timer + * is created using xTimerCreate() then the required memory is automatically + * dynamically allocated inside the xTimerCreate() function. (see + * http://www.freertos.org/a00111.html). If a software timer is created using + * xTimerCreateStatic() then the application writer must provide the memory that + * will get used by the software timer. xTimerCreateStatic() therefore allows a + * software timer to be created without using any dynamic memory allocation. * * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and - * xTimerChangePeriodFromISR() API functions can all be used to transition a timer into the - * active state. + * xTimerChangePeriodFromISR() API functions can all be used to transition a + * timer into the active state. * * @param pcTimerName A text name that is assigned to the timer. This is done - * purely to assist debugging. The kernel itself only ever references a timer by - * its handle, and never by its name. + * purely to assist debugging. The kernel itself only ever references a timer + * by its handle, and never by its name. * - * @param xTimerPeriodInTicks The timer period. The time is defined in tick periods so - * the constant portTICK_RATE_MS can be used to convert a time that has been - * specified in milliseconds. For example, if the timer must expire after 100 - * ticks, then xTimerPeriodInTicks should be set to 100. Alternatively, if the timer - * must expire after 500ms, then xPeriod can be set to ( 500 / portTICK_RATE_MS ) - * provided configTICK_RATE_HZ is less than or equal to 1000. + * @param xTimerPeriodInTicks The timer period. The time is defined in tick + * periods so the constant portTICK_PERIOD_MS can be used to convert a time that + * has been specified in milliseconds. For example, if the timer must expire + * after 100 ticks, then xTimerPeriodInTicks should be set to 100. + * Alternatively, if the timer must expire after 500ms, then xPeriod can be set + * to ( 500 / portTICK_PERIOD_MS ) provided configTICK_RATE_HZ is less than or + * equal to 1000. * * @param uxAutoReload If uxAutoReload is set to pdTRUE then the timer will - * expire repeatedly with a frequency set by the xTimerPeriodInTicks parameter. If - * uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and + * expire repeatedly with a frequency set by the xTimerPeriodInTicks parameter. + * If uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and * enter the dormant state after it expires. * * @param pvTimerID An identifier that is assigned to the timer being created. @@ -140,38 +175,38 @@ typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); * timer. * * @param pxCallbackFunction The function to call when the timer expires. - * Callback functions must have the prototype defined by tmrTIMER_CALLBACK, - * which is "void vCallbackFunction( xTimerHandle xTimer );". + * Callback functions must have the prototype defined by TimerCallbackFunction_t, + * which is "void vCallbackFunction( TimerHandle_t xTimer );". * - * @return If the timer is successfully create then a handle to the newly + * @return If the timer is successfully created then a handle to the newly * created timer is returned. If the timer cannot be created (because either * there is insufficient FreeRTOS heap remaining to allocate the timer - * structures, or the timer period was set to 0) then 0 is returned. + * structures, or the timer period was set to 0) then NULL is returned. * * Example usage: * @verbatim * #define NUM_TIMERS 5 * * // An array to hold handles to the created timers. - * xTimerHandle xTimers[ NUM_TIMERS ]; + * TimerHandle_t xTimers[ NUM_TIMERS ]; * * // An array to hold a count of the number of times each timer expires. - * long lExpireCounters[ NUM_TIMERS ] = { 0 }; + * int32_t lExpireCounters[ NUM_TIMERS ] = { 0 }; * * // Define a callback function that will be used by multiple timer instances. * // The callback function does nothing but count the number of times the * // associated timer expires, and stop the timer once the timer has expired * // 10 times. - * void vTimerCallback( xTimerHandle pxTimer ) + * void vTimerCallback( TimerHandle_t pxTimer ) * { - * long lArrayIndex; - * const long xMaxExpiryCountBeforeStopping = 10; + * int32_t lArrayIndex; + * const int32_t xMaxExpiryCountBeforeStopping = 10; * * // Optionally do something if the pxTimer parameter is NULL. * configASSERT( pxTimer ); - * + * * // Which timer expired? - * lArrayIndex = ( long ) pvTimerGetTimerID( pxTimer ); + * lArrayIndex = ( int32_t ) pvTimerGetTimerID( pxTimer ); * * // Increment the number of times that pxTimer has expired. * lExpireCounters[ lArrayIndex ] += 1; @@ -187,18 +222,18 @@ typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); * * void main( void ) * { - * long x; + * int32_t x; * * // Create then start some timers. Starting the timers before the scheduler * // has been started means the timers will start running immediately that * // the scheduler starts. * for( x = 0; x < NUM_TIMERS; x++ ) * { - * xTimers[ x ] = xTimerCreate( "Timer", // Just a text name, not used by the kernel. - * ( 100 * x ), // The timer period in ticks. - * pdTRUE, // The timers will auto-reload themselves when they expire. - * ( void * ) x, // Assign each timer a unique id equal to its array index. - * vTimerCallback // Each timer calls the same callback when it expires. + * xTimers[ x ] = xTimerCreate( "Timer", // Just a text name, not used by the kernel. + * ( 100 * x ), // The timer period in ticks. + * pdTRUE, // The timers will auto-reload themselves when they expire. + * ( void * ) x, // Assign each timer a unique id equal to its array index. + * vTimerCallback // Each timer calls the same callback when it expires. * ); * * if( xTimers[ x ] == NULL ) @@ -223,26 +258,163 @@ typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); * * // Starting the scheduler will start the timers running as they have already * // been set into the active state. - * xTaskStartScheduler(); + * vTaskStartScheduler(); * * // Should not reach here. * for( ;; ); * } * @endverbatim */ -xTimerHandle xTimerCreate( const signed char * const pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void * pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) PRIVILEGED_FUNCTION; +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + TimerHandle_t xTimerCreate( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +#endif /** - * void *pvTimerGetTimerID( xTimerHandle xTimer ); + * TimerHandle_t xTimerCreateStatic(const char * const pcTimerName, + * TickType_t xTimerPeriodInTicks, + * UBaseType_t uxAutoReload, + * void * pvTimerID, + * TimerCallbackFunction_t pxCallbackFunction, + * StaticTimer_t *pxTimerBuffer ); + * + * Creates a new software timer instance, and returns a handle by which the + * created software timer can be referenced. + * + * Internally, within the FreeRTOS implementation, software timers use a block + * of memory, in which the timer data structure is stored. If a software timer + * is created using xTimerCreate() then the required memory is automatically + * dynamically allocated inside the xTimerCreate() function. (see + * http://www.freertos.org/a00111.html). If a software timer is created using + * xTimerCreateStatic() then the application writer must provide the memory that + * will get used by the software timer. xTimerCreateStatic() therefore allows a + * software timer to be created without using any dynamic memory allocation. + * + * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), + * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and + * xTimerChangePeriodFromISR() API functions can all be used to transition a + * timer into the active state. + * + * @param pcTimerName A text name that is assigned to the timer. This is done + * purely to assist debugging. The kernel itself only ever references a timer + * by its handle, and never by its name. + * + * @param xTimerPeriodInTicks The timer period. The time is defined in tick + * periods so the constant portTICK_PERIOD_MS can be used to convert a time that + * has been specified in milliseconds. For example, if the timer must expire + * after 100 ticks, then xTimerPeriodInTicks should be set to 100. + * Alternatively, if the timer must expire after 500ms, then xPeriod can be set + * to ( 500 / portTICK_PERIOD_MS ) provided configTICK_RATE_HZ is less than or + * equal to 1000. + * + * @param uxAutoReload If uxAutoReload is set to pdTRUE then the timer will + * expire repeatedly with a frequency set by the xTimerPeriodInTicks parameter. + * If uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and + * enter the dormant state after it expires. + * + * @param pvTimerID An identifier that is assigned to the timer being created. + * Typically this would be used in the timer callback function to identify which + * timer expired when the same callback function is assigned to more than one + * timer. + * + * @param pxCallbackFunction The function to call when the timer expires. + * Callback functions must have the prototype defined by TimerCallbackFunction_t, + * which is "void vCallbackFunction( TimerHandle_t xTimer );". + * + * @param pxTimerBuffer Must point to a variable of type StaticTimer_t, which + * will be then be used to hold the software timer's data structures, removing + * the need for the memory to be allocated dynamically. + * + * @return If the timer is created then a handle to the created timer is + * returned. If pxTimerBuffer was NULL then NULL is returned. + * + * Example usage: + * @verbatim + * + * // The buffer used to hold the software timer's data structure. + * static StaticTimer_t xTimerBuffer; + * + * // A variable that will be incremented by the software timer's callback + * // function. + * UBaseType_t uxVariableToIncrement = 0; + * + * // A software timer callback function that increments a variable passed to + * // it when the software timer was created. After the 5th increment the + * // callback function stops the software timer. + * static void prvTimerCallback( TimerHandle_t xExpiredTimer ) + * { + * UBaseType_t *puxVariableToIncrement; + * BaseType_t xReturned; + * + * // Obtain the address of the variable to increment from the timer ID. + * puxVariableToIncrement = ( UBaseType_t * ) pvTimerGetTimerID( xExpiredTimer ); + * + * // Increment the variable to show the timer callback has executed. + * ( *puxVariableToIncrement )++; + * + * // If this callback has executed the required number of times, stop the + * // timer. + * if( *puxVariableToIncrement == 5 ) + * { + * // This is called from a timer callback so must not block. + * xTimerStop( xExpiredTimer, staticDONT_BLOCK ); + * } + * } + * + * + * void main( void ) + * { + * // Create the software time. xTimerCreateStatic() has an extra parameter + * // than the normal xTimerCreate() API function. The parameter is a pointer + * // to the StaticTimer_t structure that will hold the software timer + * // structure. If the parameter is passed as NULL then the structure will be + * // allocated dynamically, just as if xTimerCreate() had been called. + * xTimer = xTimerCreateStatic( "T1", // Text name for the task. Helps debugging only. Not used by FreeRTOS. + * xTimerPeriod, // The period of the timer in ticks. + * pdTRUE, // This is an auto-reload timer. + * ( void * ) &uxVariableToIncrement, // A variable incremented by the software timer's callback function + * prvTimerCallback, // The function to execute when the timer expires. + * &xTimerBuffer ); // The buffer that will hold the software timer structure. + * + * // The scheduler has not started yet so a block time is not used. + * xReturned = xTimerStart( xTimer, 0 ); + * + * // ... + * // Create tasks here. + * // ... + * + * // Starting the scheduler will start the timers running as they have already + * // been set into the active state. + * vTaskStartScheduler(); + * + * // Should not reach here. + * for( ;; ); + * } + * @endverbatim + */ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + TimerHandle_t xTimerCreateStatic( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction, + StaticTimer_t *pxTimerBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +#endif /* configSUPPORT_STATIC_ALLOCATION */ + +/** + * void *pvTimerGetTimerID( TimerHandle_t xTimer ); * * Returns the ID assigned to the timer. * * IDs are assigned to timers using the pvTimerID parameter of the call to - * xTimerCreated() that was used to create the timer. + * xTimerCreated() that was used to create the timer, and by calling the + * vTimerSetTimerID() API function. * * If the same callback function is assigned to multiple timers then the timer - * ID can be used within the callback function to identify which timer actually - * expired. + * ID can be used as time specific (timer local) storage. * * @param xTimer The timer being queried. * @@ -252,16 +424,37 @@ xTimerHandle xTimerCreate( const signed char * const pcTimerName, portTickType x * * See the xTimerCreate() API function example usage scenario. */ -void *pvTimerGetTimerID( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; +void *pvTimerGetTimerID( const TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; /** - * portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ); + * void vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ); + * + * Sets the ID assigned to the timer. + * + * IDs are assigned to timers using the pvTimerID parameter of the call to + * xTimerCreated() that was used to create the timer. + * + * If the same callback function is assigned to multiple timers then the timer + * ID can be used as time specific (timer local) storage. + * + * @param xTimer The timer being updated. + * + * @param pvNewID The ID to assign to the timer. + * + * Example usage: + * + * See the xTimerCreate() API function example usage scenario. + */ +void vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) PRIVILEGED_FUNCTION; + +/** + * BaseType_t xTimerIsTimerActive( TimerHandle_t xTimer ); * * Queries a timer to see if it is active or dormant. * * A timer will be dormant if: * 1) It has been created but not started, or - * 2) It is an expired on-shot timer that has not been restarted. + * 2) It is an expired one-shot timer that has not been restarted. * * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and @@ -276,7 +469,7 @@ void *pvTimerGetTimerID( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; * Example usage: * @verbatim * // This function assumes xTimer has already been created. - * void vAFunction( xTimerHandle xTimer ) + * void vAFunction( TimerHandle_t xTimer ) * { * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" * { @@ -289,23 +482,22 @@ void *pvTimerGetTimerID( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; * } * @endverbatim */ -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; +BaseType_t xTimerIsTimerActive( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; /** - * xTimerGetTimerDaemonTaskHandle() is only available if - * INCLUDE_xTimerGetTimerDaemonTaskHandle is set to 1 in FreeRTOSConfig.h. + * TaskHandle_t xTimerGetTimerDaemonTaskHandle( void ); * * Simply returns the handle of the timer service/daemon task. It it not valid * to call xTimerGetTimerDaemonTaskHandle() before the scheduler has been started. */ -xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); +TaskHandle_t xTimerGetTimerDaemonTaskHandle( void ) PRIVILEGED_FUNCTION; /** - * portBASE_TYPE xTimerStart( xTimerHandle xTimer, portTickType xBlockTime ); + * BaseType_t xTimerStart( TimerHandle_t xTimer, TickType_t xTicksToWait ); * * Timer functionality is provided by a timer service/daemon task. Many of the * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is + * through a queue called the timer command queue. The timer command queue is * private to the kernel itself and is not directly accessible to application * code. The length of the timer command queue is set by the * configTIMER_QUEUE_LENGTH configuration constant. @@ -330,14 +522,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * @param xTimer The handle of the timer being started/restarted. * - * @param xBlockTime Specifies the time, in ticks, that the calling task should + * @param xTicksToWait Specifies the time, in ticks, that the calling task should * be held in the Blocked state to wait for the start command to be successfully * sent to the timer command queue, should the queue already be full when - * xTimerStart() was called. xBlockTime is ignored if xTimerStart() is called + * xTimerStart() was called. xTicksToWait is ignored if xTimerStart() is called * before the scheduler is started. * * @return pdFAIL will be returned if the start command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will + * the timer command queue even after xTicksToWait ticks had passed. pdPASS will * be returned if the command was successfully sent to the timer command queue. * When the command is actually processed will depend on the priority of the * timer service/daemon task relative to other tasks in the system, although the @@ -350,14 +542,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * See the xTimerCreate() API function example usage scenario. * */ -#define xTimerStart( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) +#define xTimerStart( xTimer, xTicksToWait ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xTicksToWait ) ) /** - * portBASE_TYPE xTimerStop( xTimerHandle xTimer, portTickType xBlockTime ); + * BaseType_t xTimerStop( TimerHandle_t xTimer, TickType_t xTicksToWait ); * * Timer functionality is provided by a timer service/daemon task. Many of the * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is + * through a queue called the timer command queue. The timer command queue is * private to the kernel itself and is not directly accessible to application * code. The length of the timer command queue is set by the * configTIMER_QUEUE_LENGTH configuration constant. @@ -373,14 +565,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * @param xTimer The handle of the timer being stopped. * - * @param xBlockTime Specifies the time, in ticks, that the calling task should + * @param xTicksToWait Specifies the time, in ticks, that the calling task should * be held in the Blocked state to wait for the stop command to be successfully * sent to the timer command queue, should the queue already be full when - * xTimerStop() was called. xBlockTime is ignored if xTimerStop() is called + * xTimerStop() was called. xTicksToWait is ignored if xTimerStop() is called * before the scheduler is started. * * @return pdFAIL will be returned if the stop command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will + * the timer command queue even after xTicksToWait ticks had passed. pdPASS will * be returned if the command was successfully sent to the timer command queue. * When the command is actually processed will depend on the priority of the * timer service/daemon task relative to other tasks in the system. The timer @@ -392,16 +584,16 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * See the xTimerCreate() API function example usage scenario. * */ -#define xTimerStop( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0U, NULL, ( xBlockTime ) ) +#define xTimerStop( xTimer, xTicksToWait ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0U, NULL, ( xTicksToWait ) ) /** - * portBASE_TYPE xTimerChangePeriod( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portTickType xBlockTime ); + * BaseType_t xTimerChangePeriod( TimerHandle_t xTimer, + * TickType_t xNewPeriod, + * TickType_t xTicksToWait ); * * Timer functionality is provided by a timer service/daemon task. Many of the * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is + * through a queue called the timer command queue. The timer command queue is * private to the kernel itself and is not directly accessible to application * code. The length of the timer command queue is set by the * configTIMER_QUEUE_LENGTH configuration constant. @@ -418,21 +610,21 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * @param xTimer The handle of the timer that is having its period changed. * * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time + * tick periods, so the constant portTICK_PERIOD_MS can be used to convert a time * that has been specified in milliseconds. For example, if the timer must * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than + * ( 500 / portTICK_PERIOD_MS ) provided configTICK_RATE_HZ is less than * or equal to 1000. * - * @param xBlockTime Specifies the time, in ticks, that the calling task should + * @param xTicksToWait Specifies the time, in ticks, that the calling task should * be held in the Blocked state to wait for the change period command to be * successfully sent to the timer command queue, should the queue already be - * full when xTimerChangePeriod() was called. xBlockTime is ignored if + * full when xTimerChangePeriod() was called. xTicksToWait is ignored if * xTimerChangePeriod() is called before the scheduler is started. * * @return pdFAIL will be returned if the change period command could not be - * sent to the timer command queue even after xBlockTime ticks had passed. + * sent to the timer command queue even after xTicksToWait ticks had passed. * pdPASS will be returned if the command was successfully sent to the timer * command queue. When the command is actually processed will depend on the * priority of the timer service/daemon task relative to other tasks in the @@ -446,7 +638,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // is deleted. If the timer referenced by xTimer is not active when it is * // called, then the period of the timer is set to 500ms and the timer is * // started. - * void vAFunction( xTimerHandle xTimer ) + * void vAFunction( TimerHandle_t xTimer ) * { * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" * { @@ -459,7 +651,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // cause the timer to start. Block for a maximum of 100 ticks if the * // change period command cannot immediately be sent to the timer * // command queue. - * if( xTimerChangePeriod( xTimer, 500 / portTICK_RATE_MS, 100 ) == pdPASS ) + * if( xTimerChangePeriod( xTimer, 500 / portTICK_PERIOD_MS, 100 ) == pdPASS ) * { * // The command was successfully sent. * } @@ -472,14 +664,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * } * @endverbatim */ - #define xTimerChangePeriod( xTimer, xNewPeriod, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), NULL, ( xBlockTime ) ) + #define xTimerChangePeriod( xTimer, xNewPeriod, xTicksToWait ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), NULL, ( xTicksToWait ) ) /** - * portBASE_TYPE xTimerDelete( xTimerHandle xTimer, portTickType xBlockTime ); + * BaseType_t xTimerDelete( TimerHandle_t xTimer, TickType_t xTicksToWait ); * * Timer functionality is provided by a timer service/daemon task. Many of the * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is + * through a queue called the timer command queue. The timer command queue is * private to the kernel itself and is not directly accessible to application * code. The length of the timer command queue is set by the * configTIMER_QUEUE_LENGTH configuration constant. @@ -492,14 +684,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * @param xTimer The handle of the timer being deleted. * - * @param xBlockTime Specifies the time, in ticks, that the calling task should + * @param xTicksToWait Specifies the time, in ticks, that the calling task should * be held in the Blocked state to wait for the delete command to be * successfully sent to the timer command queue, should the queue already be - * full when xTimerDelete() was called. xBlockTime is ignored if xTimerDelete() + * full when xTimerDelete() was called. xTicksToWait is ignored if xTimerDelete() * is called before the scheduler is started. * * @return pdFAIL will be returned if the delete command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will + * the timer command queue even after xTicksToWait ticks had passed. pdPASS will * be returned if the command was successfully sent to the timer command queue. * When the command is actually processed will depend on the priority of the * timer service/daemon task relative to other tasks in the system. The timer @@ -510,14 +702,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * See the xTimerChangePeriod() API function example usage scenario. */ -#define xTimerDelete( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_DELETE, 0U, NULL, ( xBlockTime ) ) +#define xTimerDelete( xTimer, xTicksToWait ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_DELETE, 0U, NULL, ( xTicksToWait ) ) /** - * portBASE_TYPE xTimerReset( xTimerHandle xTimer, portTickType xBlockTime ); + * BaseType_t xTimerReset( TimerHandle_t xTimer, TickType_t xTicksToWait ); * * Timer functionality is provided by a timer service/daemon task. Many of the * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is + * through a queue called the timer command queue. The timer command queue is * private to the kernel itself and is not directly accessible to application * code. The length of the timer command queue is set by the * configTIMER_QUEUE_LENGTH configuration constant. @@ -544,14 +736,14 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * @param xTimer The handle of the timer being reset/started/restarted. * - * @param xBlockTime Specifies the time, in ticks, that the calling task should + * @param xTicksToWait Specifies the time, in ticks, that the calling task should * be held in the Blocked state to wait for the reset command to be successfully * sent to the timer command queue, should the queue already be full when - * xTimerReset() was called. xBlockTime is ignored if xTimerReset() is called + * xTimerReset() was called. xTicksToWait is ignored if xTimerReset() is called * before the scheduler is started. * * @return pdFAIL will be returned if the reset command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will + * the timer command queue even after xTicksToWait ticks had passed. pdPASS will * be returned if the command was successfully sent to the timer command queue. * When the command is actually processed will depend on the priority of the * timer service/daemon task relative to other tasks in the system, although the @@ -565,11 +757,11 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // without a key being pressed, then the LCD back-light is switched off. In * // this case, the timer is a one-shot timer. * - * xTimerHandle xBacklightTimer = NULL; + * TimerHandle_t xBacklightTimer = NULL; * * // The callback function assigned to the one-shot timer. In this case the * // parameter is not used. - * void vBacklightTimerCallback( xTimerHandle pxTimer ) + * void vBacklightTimerCallback( TimerHandle_t pxTimer ) * { * // The timer expired, therefore 5 seconds must have passed since a key * // was pressed. Switch off the LCD back-light. @@ -595,12 +787,12 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * void main( void ) * { - * long x; + * int32_t x; * * // Create then start the one-shot timer that is responsible for turning * // the back-light off if no keys are pressed within a 5 second period. * xBacklightTimer = xTimerCreate( "BacklightTimer", // Just a text name, not used by the kernel. - * ( 5000 / portTICK_RATE_MS), // The timer period in ticks. + * ( 5000 / portTICK_PERIOD_MS), // The timer period in ticks. * pdFALSE, // The timer is a one-shot timer. * 0, // The id is not used by the callback so can take any value. * vBacklightTimerCallback // The callback function that switches the LCD back-light off. @@ -627,18 +819,18 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * // Starting the scheduler will start the timer running as it has already * // been set into the active state. - * xTaskStartScheduler(); + * vTaskStartScheduler(); * * // Should not reach here. * for( ;; ); * } * @endverbatim */ -#define xTimerReset( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) +#define xTimerReset( xTimer, xTicksToWait ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_RESET, ( xTaskGetTickCount() ), NULL, ( xTicksToWait ) ) /** - * portBASE_TYPE xTimerStartFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); + * BaseType_t xTimerStartFromISR( TimerHandle_t xTimer, + * BaseType_t *pxHigherPriorityTaskWoken ); * * A version of xTimerStart() that can be called from an interrupt service * routine. @@ -662,8 +854,9 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * successfully sent to the timer command queue. When the command is actually * processed will depend on the priority of the timer service/daemon task * relative to other tasks in the system, although the timers expiry time is - * relative to when xTimerStartFromISR() is actually called. The timer service/daemon - * task priority is set by the configTIMER_TASK_PRIORITY configuration constant. + * relative to when xTimerStartFromISR() is actually called. The timer + * service/daemon task priority is set by the configTIMER_TASK_PRIORITY + * configuration constant. * * Example usage: * @verbatim @@ -676,7 +869,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * // The callback function assigned to the one-shot timer. In this case the * // parameter is not used. - * void vBacklightTimerCallback( xTimerHandle pxTimer ) + * void vBacklightTimerCallback( TimerHandle_t pxTimer ) * { * // The timer expired, therefore 5 seconds must have passed since a key * // was pressed. Switch off the LCD back-light. @@ -686,7 +879,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // The key press interrupt service routine. * void vKeyPressEventInterruptHandler( void ) * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + * BaseType_t xHigherPriorityTaskWoken = pdFALSE; * * // Ensure the LCD back-light is on, then restart the timer that is * // responsible for turning the back-light off after 5 seconds of @@ -714,16 +907,16 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * if( xHigherPriorityTaskWoken != pdFALSE ) * { * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. + * // depends on the FreeRTOS port being used). * } * } * @endverbatim */ -#define xTimerStartFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) +#define xTimerStartFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START_FROM_ISR, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) /** - * portBASE_TYPE xTimerStopFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); + * BaseType_t xTimerStopFromISR( TimerHandle_t xTimer, + * BaseType_t *pxHigherPriorityTaskWoken ); * * A version of xTimerStop() that can be called from an interrupt service * routine. @@ -757,7 +950,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // The interrupt service routine that stops the timer. * void vAnExampleInterruptServiceRoutine( void ) * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + * BaseType_t xHigherPriorityTaskWoken = pdFALSE; * * // The interrupt has occurred - simply stop the timer. * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined @@ -777,17 +970,17 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * if( xHigherPriorityTaskWoken != pdFALSE ) * { * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. + * // depends on the FreeRTOS port being used). * } * } * @endverbatim */ -#define xTimerStopFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0, ( pxHigherPriorityTaskWoken ), 0U ) +#define xTimerStopFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP_FROM_ISR, 0, ( pxHigherPriorityTaskWoken ), 0U ) /** - * portBASE_TYPE xTimerChangePeriodFromISR( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); + * BaseType_t xTimerChangePeriodFromISR( TimerHandle_t xTimer, + * TickType_t xNewPeriod, + * BaseType_t *pxHigherPriorityTaskWoken ); * * A version of xTimerChangePeriod() that can be called from an interrupt * service routine. @@ -795,11 +988,11 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * @param xTimer The handle of the timer that is having its period changed. * * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time + * tick periods, so the constant portTICK_PERIOD_MS can be used to convert a time * that has been specified in milliseconds. For example, if the timer must * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than + * ( 500 / portTICK_PERIOD_MS ) provided configTICK_RATE_HZ is less than * or equal to 1000. * * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most @@ -830,7 +1023,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // The interrupt service routine that changes the period of xTimer. * void vAnExampleInterruptServiceRoutine( void ) * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + * BaseType_t xHigherPriorityTaskWoken = pdFALSE; * * // The interrupt has occurred - change the period of xTimer to 500ms. * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined @@ -850,16 +1043,16 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * if( xHigherPriorityTaskWoken != pdFALSE ) * { * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. + * // depends on the FreeRTOS port being used). * } * } * @endverbatim */ -#define xTimerChangePeriodFromISR( xTimer, xNewPeriod, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), ( pxHigherPriorityTaskWoken ), 0U ) +#define xTimerChangePeriodFromISR( xTimer, xNewPeriod, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD_FROM_ISR, ( xNewPeriod ), ( pxHigherPriorityTaskWoken ), 0U ) /** - * portBASE_TYPE xTimerResetFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); + * BaseType_t xTimerResetFromISR( TimerHandle_t xTimer, + * BaseType_t *pxHigherPriorityTaskWoken ); * * A version of xTimerReset() that can be called from an interrupt service * routine. @@ -898,7 +1091,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * * // The callback function assigned to the one-shot timer. In this case the * // parameter is not used. - * void vBacklightTimerCallback( xTimerHandle pxTimer ) + * void vBacklightTimerCallback( TimerHandle_t pxTimer ) * { * // The timer expired, therefore 5 seconds must have passed since a key * // was pressed. Switch off the LCD back-light. @@ -908,7 +1101,7 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * // The key press interrupt service routine. * void vKeyPressEventInterruptHandler( void ) * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + * BaseType_t xHigherPriorityTaskWoken = pdFALSE; * * // Ensure the LCD back-light is on, then reset the timer that is * // responsible for turning the back-light off after 5 seconds of @@ -936,19 +1129,181 @@ xTaskHandle xTimerGetTimerDaemonTaskHandle( void ); * if( xHigherPriorityTaskWoken != pdFALSE ) * { * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. + * // depends on the FreeRTOS port being used). * } * } * @endverbatim */ -#define xTimerResetFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) +#define xTimerResetFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_RESET_FROM_ISR, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) + + +/** + * BaseType_t xTimerPendFunctionCallFromISR( PendedFunction_t xFunctionToPend, + * void *pvParameter1, + * uint32_t ulParameter2, + * BaseType_t *pxHigherPriorityTaskWoken ); + * + * + * Used from application interrupt service routines to defer the execution of a + * function to the RTOS daemon task (the timer service task, hence this function + * is implemented in timers.c and is prefixed with 'Timer'). + * + * Ideally an interrupt service routine (ISR) is kept as short as possible, but + * sometimes an ISR either has a lot of processing to do, or needs to perform + * processing that is not deterministic. In these cases + * xTimerPendFunctionCallFromISR() can be used to defer processing of a function + * to the RTOS daemon task. + * + * A mechanism is provided that allows the interrupt to return directly to the + * task that will subsequently execute the pended callback function. This + * allows the callback function to execute contiguously in time with the + * interrupt - just as if the callback had executed in the interrupt itself. + * + * @param xFunctionToPend The function to execute from the timer service/ + * daemon task. The function must conform to the PendedFunction_t + * prototype. + * + * @param pvParameter1 The value of the callback function's first parameter. + * The parameter has a void * type to allow it to be used to pass any type. + * For example, unsigned longs can be cast to a void *, or the void * can be + * used to point to a structure. + * + * @param ulParameter2 The value of the callback function's second parameter. + * + * @param pxHigherPriorityTaskWoken As mentioned above, calling this function + * will result in a message being sent to the timer daemon task. If the + * priority of the timer daemon task (which is set using + * configTIMER_TASK_PRIORITY in FreeRTOSConfig.h) is higher than the priority of + * the currently running task (the task the interrupt interrupted) then + * *pxHigherPriorityTaskWoken will be set to pdTRUE within + * xTimerPendFunctionCallFromISR(), indicating that a context switch should be + * requested before the interrupt exits. For that reason + * *pxHigherPriorityTaskWoken must be initialised to pdFALSE. See the + * example code below. + * + * @return pdPASS is returned if the message was successfully sent to the + * timer daemon task, otherwise pdFALSE is returned. + * + * Example usage: + * @verbatim + * + * // The callback function that will execute in the context of the daemon task. + * // Note callback functions must all use this same prototype. + * void vProcessInterface( void *pvParameter1, uint32_t ulParameter2 ) + * { + * BaseType_t xInterfaceToService; + * + * // The interface that requires servicing is passed in the second + * // parameter. The first parameter is not used in this case. + * xInterfaceToService = ( BaseType_t ) ulParameter2; + * + * // ...Perform the processing here... + * } + * + * // An ISR that receives data packets from multiple interfaces + * void vAnISR( void ) + * { + * BaseType_t xInterfaceToService, xHigherPriorityTaskWoken; + * + * // Query the hardware to determine which interface needs processing. + * xInterfaceToService = prvCheckInterfaces(); + * + * // The actual processing is to be deferred to a task. Request the + * // vProcessInterface() callback function is executed, passing in the + * // number of the interface that needs processing. The interface to + * // service is passed in the second parameter. The first parameter is + * // not used in this case. + * xHigherPriorityTaskWoken = pdFALSE; + * xTimerPendFunctionCallFromISR( vProcessInterface, NULL, ( uint32_t ) xInterfaceToService, &xHigherPriorityTaskWoken ); + * + * // If xHigherPriorityTaskWoken is now set to pdTRUE then a context + * // switch should be requested. The macro used is port specific and will + * // be either portYIELD_FROM_ISR() or portEND_SWITCHING_ISR() - refer to + * // the documentation page for the port being used. + * portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); + * + * } + * @endverbatim + */ +BaseType_t xTimerPendFunctionCallFromISR( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; + + /** + * BaseType_t xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, + * void *pvParameter1, + * uint32_t ulParameter2, + * TickType_t xTicksToWait ); + * + * + * Used to defer the execution of a function to the RTOS daemon task (the timer + * service task, hence this function is implemented in timers.c and is prefixed + * with 'Timer'). + * + * @param xFunctionToPend The function to execute from the timer service/ + * daemon task. The function must conform to the PendedFunction_t + * prototype. + * + * @param pvParameter1 The value of the callback function's first parameter. + * The parameter has a void * type to allow it to be used to pass any type. + * For example, unsigned longs can be cast to a void *, or the void * can be + * used to point to a structure. + * + * @param ulParameter2 The value of the callback function's second parameter. + * + * @param xTicksToWait Calling this function will result in a message being + * sent to the timer daemon task on a queue. xTicksToWait is the amount of + * time the calling task should remain in the Blocked state (so not using any + * processing time) for space to become available on the timer queue if the + * queue is found to be full. + * + * @return pdPASS is returned if the message was successfully sent to the + * timer daemon task, otherwise pdFALSE is returned. + * + */ +BaseType_t xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * const char * const pcTimerGetName( TimerHandle_t xTimer ); + * + * Returns the name that was assigned to a timer when the timer was created. + * + * @param xTimer The handle of the timer being queried. + * + * @return The name assigned to the timer specified by the xTimer parameter. + */ +const char * pcTimerGetName( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + +/** + * TickType_t xTimerGetPeriod( TimerHandle_t xTimer ); + * + * Returns the period of a timer. + * + * @param xTimer The handle of the timer being queried. + * + * @return The period of the timer in ticks. + */ +TickType_t xTimerGetPeriod( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; + +/** +* TickType_t xTimerGetExpiryTime( TimerHandle_t xTimer ); +* +* Returns the time in ticks at which the timer will expire. If this is less +* than the current tick count then the expiry time has overflowed from the +* current time. +* +* @param xTimer The handle of the timer being queried. +* +* @return If the timer is running then the time in ticks at which the timer +* will next expire is returned. If the timer is not running then the return +* value is undefined. +*/ +TickType_t xTimerGetExpiryTime( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; /* * Functions beyond this part are not part of the public API and are intended * for use by the kernel only. */ -portBASE_TYPE xTimerCreateTimerTask( void ) PRIVILEGED_FUNCTION; -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) PRIVILEGED_FUNCTION; +BaseType_t xTimerCreateTimerTask( void ) PRIVILEGED_FUNCTION; +BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; #ifdef __cplusplus } diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c index f7e4a41..5e207c1 100644 --- a/FreeRTOS/Source/list.c +++ b/FreeRTOS/Source/list.c @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -71,12 +76,12 @@ * PUBLIC LIST API documented in list.h *----------------------------------------------------------*/ -void vListInitialise( xList * const pxList ) +void vListInitialise( List_t * const pxList ) { /* The list structure contains a list item which is used to mark the end of the list. To initialise the list the list end is inserted as the only list entry. */ - pxList->pxIndex = ( xListItem * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ /* The list end value is the highest possible value in the list to ensure it remains at the end of the list. */ @@ -84,31 +89,49 @@ void vListInitialise( xList * const pxList ) /* The list end next and previous pointers point to itself so we know when the list is empty. */ - pxList->xListEnd.pxNext = ( xListItem * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ - pxList->xListEnd.pxPrevious = ( xListItem * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ - pxList->uxNumberOfItems = ( unsigned portBASE_TYPE ) 0U; + pxList->uxNumberOfItems = ( UBaseType_t ) 0U; + + /* Write known values into the list if + configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ + listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ); + listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ); } /*-----------------------------------------------------------*/ -void vListInitialiseItem( xListItem * const pxItem ) +void vListInitialiseItem( ListItem_t * const pxItem ) { /* Make sure the list item is not recorded as being on a list. */ pxItem->pvContainer = NULL; + + /* Write known values into the list item if + configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ + listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); + listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); } /*-----------------------------------------------------------*/ -void IRAM vListInsertEnd( xList * const pxList, xListItem * const pxNewListItem ) +void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem ) { -xListItem * pxIndex; +ListItem_t * const pxIndex = pxList->pxIndex; + + /* Only effective when configASSERT() is also defined, these tests may catch + the list data structures being overwritten in memory. They will not catch + data errors caused by incorrect configuration or use of FreeRTOS. */ + listTEST_LIST_INTEGRITY( pxList ); + listTEST_LIST_ITEM_INTEGRITY( pxNewListItem ); /* Insert a new list item into pxList, but rather than sort the list, makes the new list item the last item to be removed by a call to - pvListGetOwnerOfNextEntry. */ - pxIndex = pxList->pxIndex; - + listGET_OWNER_OF_NEXT_ENTRY(). */ pxNewListItem->pxNext = pxIndex; pxNewListItem->pxPrevious = pxIndex->pxPrevious; + + /* Only used during decision coverage testing. */ + mtCOVERAGE_TEST_DELAY(); + pxIndex->pxPrevious->pxNext = pxNewListItem; pxIndex->pxPrevious = pxNewListItem; @@ -119,21 +142,25 @@ xListItem * pxIndex; } /*-----------------------------------------------------------*/ -void IRAM vListInsert( xList * const pxList, xListItem * const pxNewListItem ) +void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) { -xListItem *pxIterator; -portTickType xValueOfInsertion; +ListItem_t *pxIterator; +const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; - /* Insert the new list item into the list, sorted in ulListItem order. */ - xValueOfInsertion = pxNewListItem->xItemValue; + /* Only effective when configASSERT() is also defined, these tests may catch + the list data structures being overwritten in memory. They will not catch + data errors caused by incorrect configuration or use of FreeRTOS. */ + listTEST_LIST_INTEGRITY( pxList ); + listTEST_LIST_ITEM_INTEGRITY( pxNewListItem ); - /* If the list already contains a list item with the same item value then - the new list item should be placed after it. This ensures that TCB's which - are stored in ready lists (all of which have the same ulListItem value) - get an equal share of the CPU. However, if the xItemValue is the same as - the back marker the iteration loop below will not end. This means we need - to guard against this by checking the value first and modifying the - algorithm slightly if necessary. */ + /* Insert the new list item into the list, sorted in xItemValue order. + + If the list already contains a list item with the same item value then the + new list item should be placed after it. This ensures that TCB's which are + stored in ready lists (all of which have the same xItemValue value) get a + share of the CPU. However, if the xItemValue is the same as the back marker + the iteration loop below will not end. Therefore the value is checked + first, and the algorithm slightly modified if necessary. */ if( xValueOfInsertion == portMAX_DELAY ) { pxIterator = pxList->xListEnd.pxPrevious; @@ -141,26 +168,31 @@ portTickType xValueOfInsertion; else { /* *** NOTE *********************************************************** - If you find your application is crashing here then likely causes are: + If you find your application is crashing here then likely causes are + listed below. In addition see http://www.freertos.org/FAQHelp.html for + more tips, and ensure configASSERT() is defined! + http://www.freertos.org/a00110.html#configASSERT + 1) Stack overflow - see http://www.freertos.org/Stacks-and-stack-overflow-checking.html - 2) Incorrect interrupt priority assignment, especially on Cortex-M3 + 2) Incorrect interrupt priority assignment, especially on Cortex-M parts where numerically high priority values denote low actual - interrupt priories, which can seem counter intuitive. See - configMAX_SYSCALL_INTERRUPT_PRIORITY on http://www.freertos.org/a00110.html + interrupt priorities, which can seem counter intuitive. See + http://www.freertos.org/RTOS-Cortex-M3-M4.html and the definition + of configMAX_SYSCALL_INTERRUPT_PRIORITY on + http://www.freertos.org/a00110.html 3) Calling an API function from within a critical section or when the scheduler is suspended, or calling an API function that does not end in "FromISR" from an interrupt. 4) Using a queue or semaphore before it has been initialised or before the scheduler has been started (are interrupts firing before vTaskStartScheduler() has been called?). - See http://www.freertos.org/FAQHelp.html for more tips. **********************************************************************/ - for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ { - /* There is nothing to do here, we are just iterating to the - wanted insertion position. */ + /* There is nothing to do here, just iterating to the wanted + insertion position. */ } } @@ -177,22 +209,27 @@ portTickType xValueOfInsertion; } /*-----------------------------------------------------------*/ -unsigned portBASE_TYPE IRAM uxListRemove( xListItem * const pxItemToRemove ) +UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) { -xList * pxList; +/* The list item knows which list it is in. Obtain the list from the list +item. */ +List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer; pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; - /* The list item knows which list it is in. Obtain the list from the list - item. */ - pxList = ( xList * ) pxItemToRemove->pvContainer; + /* Only used during decision coverage testing. */ + mtCOVERAGE_TEST_DELAY(); /* Make sure the index is left pointing to a valid item. */ if( pxList->pxIndex == pxItemToRemove ) { pxList->pxIndex = pxItemToRemove->pxPrevious; } + else + { + mtCOVERAGE_TEST_MARKER(); + } pxItemToRemove->pvContainer = NULL; ( pxList->uxNumberOfItems )--; diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index 1167aaf..b5d272f 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -258,3 +258,11 @@ void IRAM vPortExitCritical( void ) portENABLE_INTERRUPTS(); } +/* Backward compatibility with libmain.a and libpp.a and can remove when these are open. */ +signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) +{ + (void)puxStackBuffer; (void)xRegions; + return xTaskCreate( pxTaskCode, (const char * const)pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask); +} + + diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h index 3345ab5..645f5c4 100644 --- a/FreeRTOS/Source/portable/esp8266/portmacro.h +++ b/FreeRTOS/Source/portable/esp8266/portmacro.h @@ -94,13 +94,19 @@ extern "C" { #define portSHORT short #define portSTACK_TYPE unsigned portLONG #define portBASE_TYPE long +#define portPOINTER_SIZE_TYPE unsigned portLONG + +typedef portSTACK_TYPE StackType_t; +typedef portBASE_TYPE BaseType_t; +typedef unsigned portBASE_TYPE UBaseType_t; typedef uint32_t portTickType; +typedef uint32_t TickType_t; #define portMAX_DELAY ( portTickType ) 0xffffffff /* Architecture specifics. */ #define portSTACK_GROWTH ( -1 ) -#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) +#define portTICK_PERIOD_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) #define portBYTE_ALIGNMENT 8 /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c index 57fcf96..ce623be 100644 --- a/FreeRTOS/Source/queue.c +++ b/FreeRTOS/Source/queue.c @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -85,13 +90,13 @@ privileged Vs unprivileged linkage and placement. */ #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ -/* Constants used with the cRxLock and xTxLock structure members. */ -#define queueUNLOCKED ( ( signed portBASE_TYPE ) -1 ) -#define queueLOCKED_UNMODIFIED ( ( signed portBASE_TYPE ) 0 ) +/* Constants used with the cRxLock and cTxLock structure members. */ +#define queueUNLOCKED ( ( int8_t ) -1 ) +#define queueLOCKED_UNMODIFIED ( ( int8_t ) 0 ) -/* When the xQUEUE structure is used to represent a base queue its pcHead and +/* When the Queue_t structure is used to represent a base queue its pcHead and pcTail members are used as pointers into the queue storage area. When the -xQUEUE structure is used to represent a mutex pcHead and pcTail pointers are +Queue_t structure is used to represent a mutex pcHead and pcTail pointers are not necessary, and the pcHead pointer is set to NULL to indicate that the pcTail pointer actually points to the mutex holder (if any). Map alternative names to the pcHead and pcTail structure members to ensure the readability of @@ -106,47 +111,63 @@ structure member). */ /* Semaphores do not actually store or copy data, so have an item size of zero. */ -#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( unsigned portBASE_TYPE ) 0 ) -#define queueMUTEX_GIVE_BLOCK_TIME ( ( portTickType ) 0U ) +#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( UBaseType_t ) 0 ) +#define queueMUTEX_GIVE_BLOCK_TIME ( ( TickType_t ) 0U ) +#if( configUSE_PREEMPTION == 0 ) + /* If the cooperative scheduler is being used then a yield should not be + performed just because a higher priority task has been woken. */ + #define queueYIELD_IF_USING_PREEMPTION() +#else + #define queueYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API() +#endif /* * Definition of the queue used by the scheduler. - * Items are queued by copy, not reference. + * Items are queued by copy, not reference. See the following link for the + * rationale: http://www.freertos.org/Embedded-RTOS-Queues.html */ typedef struct QueueDefinition { - signed char *pcHead; /*< Points to the beginning of the queue storage area. */ - signed char *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ + int8_t *pcHead; /*< Points to the beginning of the queue storage area. */ + int8_t *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ + int8_t *pcWriteTo; /*< Points to the free next place in the storage area. */ - signed char *pcWriteTo; /*< Points to the free next place in the storage area. */ - - union /* Use of a union is an exception to the coding standard to ensure two mutually exclusive structure members don't appear simultaneously (wasting RAM). */ + union /* Use of a union is an exception to the coding standard to ensure two mutually exclusive structure members don't appear simultaneously (wasting RAM). */ { - signed char *pcReadFrom; /*< Points to the last place that a queued item was read from when the structure is used as a queue. */ - unsigned portBASE_TYPE uxRecursiveCallCount;/*< Maintains a count of the numebr of times a recursive mutex has been recursively 'taken' when the structure is used as a mutex. */ + int8_t *pcReadFrom; /*< Points to the last place that a queued item was read from when the structure is used as a queue. */ + UBaseType_t uxRecursiveCallCount;/*< Maintains a count of the number of times a recursive mutex has been recursively 'taken' when the structure is used as a mutex. */ } u; - xList xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ - xList xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */ + List_t xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ + List_t xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */ - volatile unsigned portBASE_TYPE uxMessagesWaiting;/*< The number of items currently in the queue. */ - unsigned portBASE_TYPE uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */ - unsigned portBASE_TYPE uxItemSize; /*< The size of each items that the queue will hold. */ + volatile UBaseType_t uxMessagesWaiting;/*< The number of items currently in the queue. */ + UBaseType_t uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */ + UBaseType_t uxItemSize; /*< The size of each items that the queue will hold. */ - volatile signed portBASE_TYPE xRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - volatile signed portBASE_TYPE xTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ + volatile int8_t cRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ + volatile int8_t cTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned char ucQueueNumber; - unsigned char ucQueueType; + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucStaticallyAllocated; /*< Set to pdTRUE if the memory used by the queue was statically allocated to ensure no attempt is made to free the memory. */ #endif #if ( configUSE_QUEUE_SETS == 1 ) struct QueueDefinition *pxQueueSetContainer; #endif + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxQueueNumber; + uint8_t ucQueueType; + #endif + } xQUEUE; + +/* The old xQUEUE name is maintained above then typedefed to the new Queue_t +name below to enable the use of older kernel aware debuggers. */ +typedef xQUEUE Queue_t; + /*-----------------------------------------------------------*/ /* @@ -160,14 +181,19 @@ typedef struct QueueDefinition more user friendly. */ typedef struct QUEUE_REGISTRY_ITEM { - signed char *pcQueueName; - xQueueHandle xHandle; + const char *pcQueueName; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + QueueHandle_t xHandle; } xQueueRegistryItem; - /* The queue registry is simply an array of xQueueRegistryItem structures. + /* The old xQueueRegistryItem name is maintained above then typedefed to the + new xQueueRegistryItem name below to enable the use of older kernel aware + debuggers. */ + typedef xQueueRegistryItem QueueRegistryItem_t; + + /* The queue registry is simply an array of QueueRegistryItem_t structures. The pcQueueName member of a structure being NULL is indicative of the array position being vacant. */ - xQueueRegistryItem xQueueRegistry[ configQUEUE_REGISTRY_SIZE ]; + PRIVILEGED_DATA QueueRegistryItem_t xQueueRegistry[ configQUEUE_REGISTRY_SIZE ]; #endif /* configQUEUE_REGISTRY_SIZE */ @@ -179,39 +205,54 @@ typedef struct QueueDefinition * to indicate that a task may require unblocking. When the queue in unlocked * these lock counts are inspected, and the appropriate action taken. */ -static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) PRIVILEGED_FUNCTION; +static void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION; /* * Uses a critical section to determine if there is any data in a queue. * * @return pdTRUE if the queue contains no items, otherwise pdFALSE. */ -static signed portBASE_TYPE prvIsQueueEmpty( const xQUEUE *pxQueue ) PRIVILEGED_FUNCTION; +static BaseType_t prvIsQueueEmpty( const Queue_t *pxQueue ) PRIVILEGED_FUNCTION; /* * Uses a critical section to determine if there is any space in a queue. * * @return pdTRUE if there is no space, otherwise pdFALSE; */ -static signed portBASE_TYPE prvIsQueueFull( const xQUEUE *pxQueue ) PRIVILEGED_FUNCTION; +static BaseType_t prvIsQueueFull( const Queue_t *pxQueue ) PRIVILEGED_FUNCTION; /* * Copies an item into the queue, either at the front of the queue or the * back of the queue. */ -static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) PRIVILEGED_FUNCTION; +static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition ) PRIVILEGED_FUNCTION; /* * Copies an item out of a queue. */ -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvBuffer ) PRIVILEGED_FUNCTION; +static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer ) PRIVILEGED_FUNCTION; #if ( configUSE_QUEUE_SETS == 1 ) /* * Checks to see if a queue is a member of a queue set, and if so, notifies * the queue set that the queue contains data. */ - static portBASE_TYPE prvNotifyQueueSetContainer( const xQUEUE * const pxQueue, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; + static BaseType_t prvNotifyQueueSetContainer( const Queue_t * const pxQueue, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION; +#endif + +/* + * Called after a Queue_t structure has been allocated either statically or + * dynamically to fill in the structure's members. + */ +static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, const uint8_t ucQueueType, Queue_t *pxNewQueue ) PRIVILEGED_FUNCTION; + +/* + * Mutexes are a special type of queue. When a mutex is created, first the + * queue is created, then prvInitialiseMutex() is called to configure the queue + * as a mutex. + */ +#if( configUSE_MUTEXES == 1 ) + static void prvInitialiseMutex( Queue_t *pxNewQueue ) PRIVILEGED_FUNCTION; #endif /*-----------------------------------------------------------*/ @@ -223,45 +264,54 @@ static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvB #define prvLockQueue( pxQueue ) \ taskENTER_CRITICAL(); \ { \ - if( ( pxQueue )->xRxLock == queueUNLOCKED ) \ + if( ( pxQueue )->cRxLock == queueUNLOCKED ) \ { \ - ( pxQueue )->xRxLock = queueLOCKED_UNMODIFIED; \ + ( pxQueue )->cRxLock = queueLOCKED_UNMODIFIED; \ } \ - if( ( pxQueue )->xTxLock == queueUNLOCKED ) \ + if( ( pxQueue )->cTxLock == queueUNLOCKED ) \ { \ - ( pxQueue )->xTxLock = queueLOCKED_UNMODIFIED; \ + ( pxQueue )->cTxLock = queueLOCKED_UNMODIFIED; \ } \ } \ taskEXIT_CRITICAL() /*-----------------------------------------------------------*/ -portBASE_TYPE xQueueGenericReset( xQueueHandle xQueue, portBASE_TYPE xNewQueue ) + +BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) { -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); taskENTER_CRITICAL(); { pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); - pxQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; + pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U; pxQueue->pcWriteTo = pxQueue->pcHead; - pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( unsigned portBASE_TYPE ) 1U ) * pxQueue->uxItemSize ); - pxQueue->xRxLock = queueUNLOCKED; - pxQueue->xTxLock = queueUNLOCKED; + pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize ); + pxQueue->cRxLock = queueUNLOCKED; + pxQueue->cTxLock = queueUNLOCKED; if( xNewQueue == pdFALSE ) { /* If there are tasks blocked waiting to read from the queue, then the tasks will remain blocked as after this function exits the queue - will still be empty. If there are tasks blocked waiting to write to + will still be empty. If there are tasks blocked waiting to write to the queue, then one should be unblocked as after this function exits it will be possible to write to it. */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) { - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -279,122 +329,208 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; } /*-----------------------------------------------------------*/ -xQueueHandle xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType ) -{ -xQUEUE *pxNewQueue; -size_t xQueueSizeInBytes; -xQueueHandle xReturn = NULL; +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + QueueHandle_t xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) + { + Queue_t *pxNewQueue; + + configASSERT( uxQueueLength > ( UBaseType_t ) 0 ); + + /* The StaticQueue_t structure and the queue storage area must be + supplied. */ + configASSERT( pxStaticQueue != NULL ); + + /* A queue storage area should be provided if the item size is not 0, and + should not be provided if the item size is 0. */ + configASSERT( !( ( pucQueueStorage != NULL ) && ( uxItemSize == 0 ) ) ); + configASSERT( !( ( pucQueueStorage == NULL ) && ( uxItemSize != 0 ) ) ); + + #if( configASSERT_DEFINED == 1 ) + { + /* Sanity check that the size of the structure used to declare a + variable of type StaticQueue_t or StaticSemaphore_t equals the size of + the real queue and semaphore structures. */ + volatile size_t xSize = sizeof( StaticQueue_t ); + configASSERT( xSize == sizeof( Queue_t ) ); + } + #endif /* configASSERT_DEFINED */ + + /* The address of a statically allocated queue was passed in, use it. + The address of a statically allocated storage area was also passed in + but is already set. */ + pxNewQueue = ( Queue_t * ) pxStaticQueue; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + + if( pxNewQueue != NULL ) + { + #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + { + /* Queues can be allocated wither statically or dynamically, so + note this queue was allocated statically in case the queue is + later deleted. */ + pxNewQueue->ucStaticallyAllocated = pdTRUE; + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + + prvInitialiseNewQueue( uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue ); + } + + return pxNewQueue; + } + +#endif /* configSUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + + QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ) + { + Queue_t *pxNewQueue; + size_t xQueueSizeInBytes; + uint8_t *pucQueueStorage; + + configASSERT( uxQueueLength > ( UBaseType_t ) 0 ); + + if( uxItemSize == ( UBaseType_t ) 0 ) + { + /* There is not going to be a queue storage area. */ + xQueueSizeInBytes = ( size_t ) 0; + } + else + { + /* Allocate enough space to hold the maximum number of items that + can be in the queue at any time. */ + xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + } + + pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); + + if( pxNewQueue != NULL ) + { + /* Jump past the queue structure to find the location of the queue + storage area. */ + pucQueueStorage = ( ( uint8_t * ) pxNewQueue ) + sizeof( Queue_t ); + + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + { + /* Queues can be created either statically or dynamically, so + note this task was created dynamically in case it is later + deleted. */ + pxNewQueue->ucStaticallyAllocated = pdFALSE; + } + #endif /* configSUPPORT_STATIC_ALLOCATION */ + + prvInitialiseNewQueue( uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue ); + } + + return pxNewQueue; + } + +#endif /* configSUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, const uint8_t ucQueueType, Queue_t *pxNewQueue ) +{ /* Remove compiler warnings about unused parameters should configUSE_TRACE_FACILITY not be set to 1. */ ( void ) ucQueueType; - /* Allocate the new queue structure. */ - if( uxQueueLength > ( unsigned portBASE_TYPE ) 0 ) + if( uxItemSize == ( UBaseType_t ) 0 ) { - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); - if( pxNewQueue != NULL ) - { - /* Create the list of pointers to queue items. The queue is one byte - longer than asked for to make wrap checking easier/faster. */ - xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - - pxNewQueue->pcHead = ( signed char * ) pvPortMalloc( xQueueSizeInBytes ); - if( pxNewQueue->pcHead != NULL ) - { - /* Initialise the queue members as described above where the - queue type is defined. */ - pxNewQueue->uxLength = uxQueueLength; - pxNewQueue->uxItemSize = uxItemSize; - ( void ) xQueueGenericReset( pxNewQueue, pdTRUE ); - - #if ( configUSE_TRACE_FACILITY == 1 ) - { - pxNewQueue->ucQueueType = ucQueueType; - } - #endif /* configUSE_TRACE_FACILITY */ - - #if( configUSE_QUEUE_SETS == 1 ) - { - pxNewQueue->pxQueueSetContainer = NULL; - } - #endif /* configUSE_QUEUE_SETS */ - - traceQUEUE_CREATE( pxNewQueue ); - xReturn = pxNewQueue; - } - else - { - traceQUEUE_CREATE_FAILED( ucQueueType ); - vPortFree( pxNewQueue ); - } - } + /* No RAM was allocated for the queue storage area, but PC head cannot + be set to NULL because NULL is used as a key to say the queue is used as + a mutex. Therefore just set pcHead to point to the queue as a benign + value that is known to be within the memory map. */ + pxNewQueue->pcHead = ( int8_t * ) pxNewQueue; + } + else + { + /* Set the head to the start of the queue storage area. */ + pxNewQueue->pcHead = ( int8_t * ) pucQueueStorage; } - configASSERT( xReturn ); + /* Initialise the queue members as described where the queue type is + defined. */ + pxNewQueue->uxLength = uxQueueLength; + pxNewQueue->uxItemSize = uxItemSize; + ( void ) xQueueGenericReset( pxNewQueue, pdTRUE ); - return xReturn; + #if ( configUSE_TRACE_FACILITY == 1 ) + { + pxNewQueue->ucQueueType = ucQueueType; + } + #endif /* configUSE_TRACE_FACILITY */ + + #if( configUSE_QUEUE_SETS == 1 ) + { + pxNewQueue->pxQueueSetContainer = NULL; + } + #endif /* configUSE_QUEUE_SETS */ + + traceQUEUE_CREATE( pxNewQueue ); } /*-----------------------------------------------------------*/ -#if ( configUSE_MUTEXES == 1 ) - xQueueHandle xQueueCreateMutex( unsigned char ucQueueType ) +#if( configUSE_MUTEXES == 1 ) + + static void prvInitialiseMutex( Queue_t *pxNewQueue ) { - xQUEUE *pxNewQueue; - - /* Prevent compiler warnings about unused parameters if - configUSE_TRACE_FACILITY does not equal 1. */ - ( void ) ucQueueType; - - /* Allocate the new queue structure. */ - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); if( pxNewQueue != NULL ) { - /* Information required for priority inheritance. */ + /* The queue create function will set all the queue structure members + correctly for a generic queue, but this function is creating a + mutex. Overwrite those members that need to be set differently - + in particular the information required for priority inheritance. */ pxNewQueue->pxMutexHolder = NULL; pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; - /* Queues used as a mutex no data is actually copied into or out - of the queue. */ - pxNewQueue->pcWriteTo = NULL; - pxNewQueue->u.pcReadFrom = NULL; - - /* Each mutex has a length of 1 (like a binary semaphore) and - an item size of 0 as nothing is actually copied into or out - of the mutex. */ - pxNewQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->uxLength = ( unsigned portBASE_TYPE ) 1U; - pxNewQueue->uxItemSize = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->xRxLock = queueUNLOCKED; - pxNewQueue->xTxLock = queueUNLOCKED; - - #if ( configUSE_TRACE_FACILITY == 1 ) - { - pxNewQueue->ucQueueType = ucQueueType; - } - #endif - - #if ( configUSE_QUEUE_SETS == 1 ) - { - pxNewQueue->pxQueueSetContainer = NULL; - } - #endif - - /* Ensure the event queues start with the correct state. */ - vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); - vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); + /* In case this is a recursive mutex. */ + pxNewQueue->u.uxRecursiveCallCount = 0; traceCREATE_MUTEX( pxNewQueue ); /* Start with the semaphore in the expected state. */ - ( void ) xQueueGenericSend( pxNewQueue, NULL, ( portTickType ) 0U, queueSEND_TO_BACK ); + ( void ) xQueueGenericSend( pxNewQueue, NULL, ( TickType_t ) 0U, queueSEND_TO_BACK ); } else { traceCREATE_MUTEX_FAILED(); } + } + +#endif /* configUSE_MUTEXES */ +/*-----------------------------------------------------------*/ + +#if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + + QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) + { + Queue_t *pxNewQueue; + const UBaseType_t uxMutexLength = ( UBaseType_t ) 1, uxMutexSize = ( UBaseType_t ) 0; + + pxNewQueue = ( Queue_t * ) xQueueGenericCreate( uxMutexLength, uxMutexSize, ucQueueType ); + prvInitialiseMutex( pxNewQueue ); + + return pxNewQueue; + } + +#endif /* configUSE_MUTEXES */ +/*-----------------------------------------------------------*/ + +#if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + + QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) + { + Queue_t *pxNewQueue; + const UBaseType_t uxMutexLength = ( UBaseType_t ) 1, uxMutexSize = ( UBaseType_t ) 0; + + /* Prevent compiler warnings about unused parameters if + configUSE_TRACE_FACILITY does not equal 1. */ + ( void ) ucQueueType; + + pxNewQueue = ( Queue_t * ) xQueueGenericCreateStatic( uxMutexLength, uxMutexSize, NULL, pxStaticQueue, ucQueueType ); + prvInitialiseMutex( pxNewQueue ); - configASSERT( pxNewQueue ); return pxNewQueue; } @@ -402,20 +538,21 @@ xQueueHandle xReturn = NULL; /*-----------------------------------------------------------*/ #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) - void* xQueueGetMutexHolder( xQueueHandle xSemaphore ) + + void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) { void *pxReturn; /* This function is called by xSemaphoreGetMutexHolder(), and should not - be called directly. Note: This is is a good way of determining if the + be called directly. Note: This is a good way of determining if the calling task is the mutex holder, but not a good way of determining the identity of the mutex holder, as the holder may change between the following critical section exiting and the function returning. */ taskENTER_CRITICAL(); { - if( ( ( xQUEUE * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX ) + if( ( ( Queue_t * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX ) { - pxReturn = ( void * ) ( ( xQUEUE * ) xSemaphore )->pxMutexHolder; + pxReturn = ( void * ) ( ( Queue_t * ) xSemaphore )->pxMutexHolder; } else { @@ -425,16 +562,17 @@ xQueueHandle xReturn = NULL; taskEXIT_CRITICAL(); return pxReturn; - } + } /*lint !e818 xSemaphore cannot be a pointer to const because it is a typedef. */ #endif /*-----------------------------------------------------------*/ #if ( configUSE_RECURSIVE_MUTEXES == 1 ) - portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex ) + + BaseType_t xQueueGiveMutexRecursive( QueueHandle_t xMutex ) { - portBASE_TYPE xReturn; - xQUEUE * const pxMutex = ( xQUEUE * ) xMutex; + BaseType_t xReturn; + Queue_t * const pxMutex = ( Queue_t * ) xMutex; configASSERT( pxMutex ); @@ -444,7 +582,7 @@ xQueueHandle xReturn = NULL; this is the only condition we are interested in it does not matter if pxMutexHolder is accessed simultaneously by another task. Therefore no mutual exclusion is required to test the pxMutexHolder variable. */ - if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Not a redundant cast as xTaskHandle is a typedef. */ + if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Not a redundant cast as TaskHandle_t is a typedef. */ { traceGIVE_MUTEX_RECURSIVE( pxMutex ); @@ -455,19 +593,24 @@ xQueueHandle xReturn = NULL; uxRecursiveCallCount member. */ ( pxMutex->u.uxRecursiveCallCount )--; - /* Have we unwound the call count? */ - if( pxMutex->u.uxRecursiveCallCount == ( unsigned portBASE_TYPE ) 0 ) + /* Has the recursive call count unwound to 0? */ + if( pxMutex->u.uxRecursiveCallCount == ( UBaseType_t ) 0 ) { /* Return the mutex. This will automatically unblock any other task that might be waiting to access the mutex. */ ( void ) xQueueGenericSend( pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } xReturn = pdPASS; } else { - /* We cannot give the mutex because we are not the holder. */ + /* The mutex cannot be given because the calling task is not the + holder. */ xReturn = pdFAIL; traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ); @@ -480,10 +623,11 @@ xQueueHandle xReturn = NULL; /*-----------------------------------------------------------*/ #if ( configUSE_RECURSIVE_MUTEXES == 1 ) - portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime ) + + BaseType_t xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) { - portBASE_TYPE xReturn; - xQUEUE * const pxMutex = ( xQUEUE * ) xMutex; + BaseType_t xReturn; + Queue_t * const pxMutex = ( Queue_t * ) xMutex; configASSERT( pxMutex ); @@ -492,18 +636,19 @@ xQueueHandle xReturn = NULL; traceTAKE_MUTEX_RECURSIVE( pxMutex ); - if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Cast is not redundant as xTaskHandle is a typedef. */ + if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ { ( pxMutex->u.uxRecursiveCallCount )++; xReturn = pdPASS; } else { - xReturn = xQueueGenericReceive( pxMutex, NULL, xBlockTime, pdFALSE ); + xReturn = xQueueGenericReceive( pxMutex, NULL, xTicksToWait, pdFALSE ); - /* pdPASS will only be returned if we successfully obtained the mutex, - we may have blocked to reach here. */ - if( xReturn == pdPASS ) + /* pdPASS will only be returned if the mutex was successfully + obtained. The calling task may have entered the Blocked state + before reaching here. */ + if( xReturn != pdFAIL ) { ( pxMutex->u.uxRecursiveCallCount )++; } @@ -519,16 +664,20 @@ xQueueHandle xReturn = NULL; #endif /* configUSE_RECURSIVE_MUTEXES */ /*-----------------------------------------------------------*/ -#if ( configUSE_COUNTING_SEMAPHORES == 1 ) - xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) - { - xQueueHandle xHandle; +#if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) - xHandle = xQueueGenericCreate( uxCountValue, queueSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_COUNTING_SEMAPHORE ); + QueueHandle_t xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) + { + QueueHandle_t xHandle; + + configASSERT( uxMaxCount != 0 ); + configASSERT( uxInitialCount <= uxMaxCount ); + + xHandle = xQueueGenericCreateStatic( uxMaxCount, queueSEMAPHORE_QUEUE_ITEM_LENGTH, NULL, pxStaticQueue, queueQUEUE_TYPE_COUNTING_SEMAPHORE ); if( xHandle != NULL ) { - ( ( xQUEUE * ) xHandle )->uxMessagesWaiting = uxInitialCount; + ( ( Queue_t * ) xHandle )->uxMessagesWaiting = uxInitialCount; traceCREATE_COUNTING_SEMAPHORE(); } @@ -537,21 +686,55 @@ xQueueHandle xReturn = NULL; traceCREATE_COUNTING_SEMAPHORE_FAILED(); } - configASSERT( xHandle ); return xHandle; } -#endif /* configUSE_COUNTING_SEMAPHORES */ +#endif /* ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */ /*-----------------------------------------------------------*/ -signed portBASE_TYPE IRAM xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) + +#if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + + QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) + { + QueueHandle_t xHandle; + + configASSERT( uxMaxCount != 0 ); + configASSERT( uxInitialCount <= uxMaxCount ); + + xHandle = xQueueGenericCreate( uxMaxCount, queueSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_COUNTING_SEMAPHORE ); + + if( xHandle != NULL ) + { + ( ( Queue_t * ) xHandle )->uxMessagesWaiting = uxInitialCount; + + traceCREATE_COUNTING_SEMAPHORE(); + } + else + { + traceCREATE_COUNTING_SEMAPHORE_FAILED(); + } + + return xHandle; + } + +#endif /* ( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */ +/*-----------------------------------------------------------*/ + +BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ) { -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +BaseType_t xEntryTimeSet = pdFALSE, xYieldRequired; +TimeOut_t xTimeOut; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); + configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); + #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) + { + configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); + } + #endif + /* This function relaxes the coding standard somewhat to allow return statements within the function itself. This is done in the interest @@ -560,25 +743,29 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { taskENTER_CRITICAL(); { - /* Is there room on the queue now? The running task must be - the highest priority task wanting to access the queue. If - the head item in the queue is to be overwritten then it does - not matter if the queue is full. */ + /* Is there room on the queue now? The running task must be the + highest priority task wanting to access the queue. If the head item + in the queue is to be overwritten then it does not matter if the + queue is full. */ if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) { traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); + xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); #if ( configUSE_QUEUE_SETS == 1 ) { if( pxQueue->pxQueueSetContainer != NULL ) { - if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) == pdTRUE ) + if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) != pdFALSE ) { /* The queue is a member of a queue set, and posting to the queue set caused a higher priority task to unblock. A context switch is required. */ - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -587,14 +774,30 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; queue then unblock it now. */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) { /* The unblocked task has a priority higher than our own so yield immediately. Yes it is ok to do this from within the critical section - the kernel takes care of that. */ - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else if( xYieldRequired != pdFALSE ) + { + /* This path is a special case that will only get + executed if the task was holding multiple mutexes + and the mutexes were given back in an order that is + different to that in which they were taken. */ + queueYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } } @@ -604,27 +807,40 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; queue then unblock it now. */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) { /* The unblocked task has a priority higher than our own so yield immediately. Yes it is ok to do this from within the critical section - the kernel takes care of that. */ - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else if( xYieldRequired != pdFALSE ) + { + /* This path is a special case that will only get + executed if the task was holding multiple mutexes and + the mutexes were given back in an order that is + different to that in which they were taken. */ + queueYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } #endif /* configUSE_QUEUE_SETS */ taskEXIT_CRITICAL(); - - /* Return to the original privilege level before exiting the - function. */ return pdPASS; } else { - if( xTicksToWait == ( portTickType ) 0 ) + if( xTicksToWait == ( TickType_t ) 0 ) { /* The queue was full and no block time is specified (or the block time has expired) so leave now. */ @@ -644,7 +860,8 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; } else { - /* Entry time was already set. */ + /* Entry time was already set. */ + mtCOVERAGE_TEST_MARKER(); } } } @@ -694,8 +911,6 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; prvUnlockQueue( pxQueue ); ( void ) xTaskResumeAll(); - /* Return to the original privilege level before exiting the - function. */ traceQUEUE_SEND_FAILED( pxQueue ); return errQUEUE_FULL; } @@ -703,226 +918,19 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; } /*-----------------------------------------------------------*/ -#if ( configUSE_ALTERNATIVE_API == 1 ) - signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; - - configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there room on the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If there was a task waiting for data to arrive on the - queue then unblock it now. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) - { - /* The unblocked task has a priority higher than - our own so yield immediately. */ - portYIELD_WITHIN_API(); - } - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - return errQUEUE_FULL; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueFull( pxQueue ) != pdFALSE ) - { - traceBLOCKING_ON_QUEUE_SEND( pxQueue ); - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - } - taskEXIT_CRITICAL(); - } - } - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ - -#if ( configUSE_ALTERNATIVE_API == 1 ) - signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - signed char *pcOriginalReadPosition; - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; - - configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Remember our read position in case we are just peeking. */ - pcOriginalReadPosition = pxQueue->u.pcReadFrom; - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - - if( xJustPeeking == pdFALSE ) - { - traceQUEUE_RECEIVE( pxQueue ); - - /* Data is actually being removed (not just peeked). */ - --( pxQueue->uxMessagesWaiting ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* Record the information required to implement - priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = ( signed char * ) xTaskGetCurrentTaskHandle(); - } - } - #endif - - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - else - { - traceQUEUE_PEEK( pxQueue ); - - /* We are not removing the data, so reset our read - pointer. */ - pxQueue->u.pcReadFrom = pcOriginalReadPosition; - - /* The data is being left in the queue, so see if there are - any other tasks waiting for the data. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); - } - } - - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) - { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - portENTER_CRITICAL(); - { - vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); - } - portEXIT_CRITICAL(); - } - } - #endif - - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - } - taskEXIT_CRITICAL(); - } - } - - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) +BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition ) { -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); + configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are - above the maximum system call priority are keep permanently enabled, even + above the maximum system call priority are kept permanently enabled, even when the RTOS kernel is in a critical section, but cannot make any calls to FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion @@ -936,28 +944,35 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); - /* Similar to xQueueGenericSend, except we don't block if there is no room - in the queue. Also we don't directly wake a task that was blocked on a - queue read, instead we return a flag to say whether a context switch is - required or not (i.e. has a task with a higher priority than us been woken - by this post). */ + /* Similar to xQueueGenericSend, except without blocking if there is no room + in the queue. Also don't directly wake a task that was blocked on a queue + read, instead return a flag to say whether a context switch is required or + not (i.e. has a task with a higher priority than us been woken by this + post). */ uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) { + const int8_t cTxLock = pxQueue->cTxLock; + traceQUEUE_SEND_FROM_ISR( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); + /* Semaphores use xQueueGiveFromISR(), so pxQueue will not be a + semaphore or mutex. That means prvCopyDataToQueue() cannot result + in a task disinheriting a priority and prvCopyDataToQueue() can be + called here even though the disinherit function does not check if + the scheduler is suspended before accessing the ready lists. */ + ( void ) prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - /* If the queue is locked we do not alter the event list. This will + /* The event list is not altered if the queue is locked. This will be done when the queue is unlocked later. */ - if( pxQueue->xTxLock == queueUNLOCKED ) + if( cTxLock == queueUNLOCKED ) { #if ( configUSE_QUEUE_SETS == 1 ) { if( pxQueue->pxQueueSetContainer != NULL ) { - if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) == pdTRUE ) + if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) != pdFALSE ) { /* The queue is a member of a queue set, and posting to the queue set caused a higher priority task to @@ -966,6 +981,14 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { *pxHigherPriorityTaskWoken = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -974,13 +997,25 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) { - /* The task waiting has a higher priority so record that a - context switch is required. */ + /* The task waiting has a higher priority so + record that a context switch is required. */ if( pxHigherPriorityTaskWoken != NULL ) { *pxHigherPriorityTaskWoken = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } } @@ -996,7 +1031,19 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { *pxHigherPriorityTaskWoken = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } #endif /* configUSE_QUEUE_SETS */ @@ -1005,7 +1052,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { /* Increment the lock count so the task that unlocks the queue knows that data was posted while it was locked. */ - ++( pxQueue->xTxLock ); + pxQueue->cTxLock = ( int8_t ) ( cTxLock + 1 ); } xReturn = pdPASS; @@ -1021,15 +1068,186 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; return xReturn; } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) + +BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherPriorityTaskWoken ) { -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; -signed char *pcOriginalReadPosition; -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; + + /* Similar to xQueueGenericSendFromISR() but used with semaphores where the + item size is 0. Don't directly wake a task that was blocked on a queue + read, instead return a flag to say whether a context switch is required or + not (i.e. has a task with a higher priority than us been woken by this + post). */ configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); + + /* xQueueGenericSendFromISR() should be used instead of xQueueGiveFromISR() + if the item size is not 0. */ + configASSERT( pxQueue->uxItemSize == 0 ); + + /* Normally a mutex would not be given from an interrupt, especially if + there is a mutex holder, as priority inheritance makes no sense for an + interrupts, only tasks. */ + configASSERT( !( ( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) && ( pxQueue->pxMutexHolder != NULL ) ) ); + + /* RTOS ports that support interrupt nesting have the concept of a maximum + system call (or maximum API call) interrupt priority. Interrupts that are + above the maximum system call priority are kept permanently enabled, even + when the RTOS kernel is in a critical section, but cannot make any calls to + FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h + then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion + failure if a FreeRTOS API function is called from an interrupt that has been + assigned a priority above the configured maximum system call priority. + Only FreeRTOS functions that end in FromISR can be called from interrupts + that have been assigned a priority at or (logically) below the maximum + system call interrupt priority. FreeRTOS maintains a separate interrupt + safe API to ensure interrupt entry is as fast and as simple as possible. + More information (albeit Cortex-M specific) is provided on the following + link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); + + uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); + { + const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting; + + /* When the queue is used to implement a semaphore no data is ever + moved through the queue but it is still valid to see if the queue 'has + space'. */ + if( uxMessagesWaiting < pxQueue->uxLength ) + { + const int8_t cTxLock = pxQueue->cTxLock; + + traceQUEUE_SEND_FROM_ISR( pxQueue ); + + /* A task can only have an inherited priority if it is a mutex + holder - and if there is a mutex holder then the mutex cannot be + given from an ISR. As this is the ISR version of the function it + can be assumed there is no mutex holder and no need to determine if + priority disinheritance is needed. Simply increase the count of + messages (semaphores) available. */ + pxQueue->uxMessagesWaiting = uxMessagesWaiting + 1; + + /* The event list is not altered if the queue is locked. This will + be done when the queue is unlocked later. */ + if( cTxLock == queueUNLOCKED ) + { + #if ( configUSE_QUEUE_SETS == 1 ) + { + if( pxQueue->pxQueueSetContainer != NULL ) + { + if( prvNotifyQueueSetContainer( pxQueue, queueSEND_TO_BACK ) != pdFALSE ) + { + /* The semaphore is a member of a queue set, and + posting to the queue set caused a higher priority + task to unblock. A context switch is required. */ + if( pxHigherPriorityTaskWoken != NULL ) + { + *pxHigherPriorityTaskWoken = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) + { + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) + { + /* The task waiting has a higher priority so + record that a context switch is required. */ + if( pxHigherPriorityTaskWoken != NULL ) + { + *pxHigherPriorityTaskWoken = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + } + #else /* configUSE_QUEUE_SETS */ + { + if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) + { + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) + { + /* The task waiting has a higher priority so record that a + context switch is required. */ + if( pxHigherPriorityTaskWoken != NULL ) + { + *pxHigherPriorityTaskWoken = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configUSE_QUEUE_SETS */ + } + else + { + /* Increment the lock count so the task that unlocks the queue + knows that data was posted while it was locked. */ + pxQueue->cTxLock = ( int8_t ) ( cTxLock + 1 ); + } + + xReturn = pdPASS; + } + else + { + traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); + xReturn = errQUEUE_FULL; + } + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeeking ) +{ +BaseType_t xEntryTimeSet = pdFALSE; +TimeOut_t xTimeOut; +int8_t *pcOriginalReadPosition; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; + + configASSERT( pxQueue ); + configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); + #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) + { + configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); + } + #endif /* This function relaxes the coding standard somewhat to allow return statements within the function itself. This is done in the interest @@ -1039,9 +1257,11 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { taskENTER_CRITICAL(); { - /* Is there data in the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting; + + /* Is there data in the queue now? To be running the calling task + must be the highest priority task wanting to access the queue. */ + if( uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* Remember the read position in case the queue is only being peeked. */ @@ -1054,7 +1274,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; traceQUEUE_RECEIVE( pxQueue ); /* Actually removing data, not just peeking. */ - --( pxQueue->uxMessagesWaiting ); + pxQueue->uxMessagesWaiting = uxMessagesWaiting - 1; #if ( configUSE_MUTEXES == 1 ) { @@ -1062,17 +1282,29 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { /* Record the information required to implement priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = ( signed char * ) xTaskGetCurrentTaskHandle(); /*lint !e961 Cast is not redundant as xTaskHandle is a typedef. */ + pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ + } + else + { + mtCOVERAGE_TEST_MARKER(); } } - #endif + #endif /* configUSE_MUTEXES */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) + if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) { - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -1087,13 +1319,19 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; any other tasks waiting for the data. */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) { /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); + queueYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } @@ -1102,7 +1340,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; } else { - if( xTicksToWait == ( portTickType ) 0 ) + if( xTicksToWait == ( TickType_t ) 0 ) { /* The queue was empty and no block time is specified (or the block time has expired) so leave now. */ @@ -1120,6 +1358,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; else { /* Entry time was already set. */ + mtCOVERAGE_TEST_MARKER(); } } } @@ -1142,11 +1381,15 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) { - portENTER_CRITICAL(); + taskENTER_CRITICAL(); { vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); } - portEXIT_CRITICAL(); + taskEXIT_CRITICAL(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } #endif @@ -1157,6 +1400,10 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { portYIELD_WITHIN_API(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -1169,52 +1416,65 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { prvUnlockQueue( pxQueue ); ( void ) xTaskResumeAll(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; + + if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) + { + traceQUEUE_RECEIVE_FAILED( pxQueue ); + return errQUEUE_EMPTY; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle xQueue, const void * const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken ) + +BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken ) { -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); + configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are - above the maximum system call priority are keep permanently enabled, even + above the maximum system call priority are kept permanently enabled, even when the RTOS kernel is in a critical section, but cannot make any calls to - FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h + FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion failure if a FreeRTOS API function is called from an interrupt that has been assigned a priority above the configured maximum system call priority. Only FreeRTOS functions that end in FromISR can be called from interrupts - that have been assigned a priority at or (logically) below the maximum - system call interrupt priority. FreeRTOS maintains a separate interrupt - safe API to ensure interrupt entry is as fast and as simple as possible. - More information (albeit Cortex-M specific) is provided on the following + that have been assigned a priority at or (logically) below the maximum + system call interrupt priority. FreeRTOS maintains a separate interrupt + safe API to ensure interrupt entry is as fast and as simple as possible. + More information (albeit Cortex-M specific) is provided on the following link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { + const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting; + /* Cannot block in an ISR, so check there is data available. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + if( uxMessagesWaiting > ( UBaseType_t ) 0 ) { + const int8_t cRxLock = pxQueue->cRxLock; + traceQUEUE_RECEIVE_FROM_ISR( pxQueue ); prvCopyDataFromQueue( pxQueue, pvBuffer ); - --( pxQueue->uxMessagesWaiting ); + pxQueue->uxMessagesWaiting = uxMessagesWaiting - 1; /* If the queue is locked the event list will not be modified. Instead update the lock count so the task that unlocks the queue will know that an ISR has removed data while the queue was locked. */ - if( pxQueue->xRxLock == queueUNLOCKED ) + if( cRxLock == queueUNLOCKED ) { if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) { @@ -1226,14 +1486,26 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; { *pxHigherPriorityTaskWoken = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else { /* Increment the lock count so the task that unlocks the queue knows that data was removed while it was locked. */ - ++( pxQueue->xRxLock ); + pxQueue->cRxLock = ( int8_t ) ( cRxLock + 1 ); } xReturn = pdPASS; @@ -1249,36 +1521,38 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; return xReturn; } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const pvBuffer ) + +BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) { -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; -signed char *pcOriginalReadPosition; -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; +int8_t *pcOriginalReadPosition; +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); + configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); + configASSERT( pxQueue->uxItemSize != 0 ); /* Can't peek a semaphore. */ /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are - above the maximum system call priority are keep permanently enabled, even + above the maximum system call priority are kept permanently enabled, even when the RTOS kernel is in a critical section, but cannot make any calls to - FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h + FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion failure if a FreeRTOS API function is called from an interrupt that has been assigned a priority above the configured maximum system call priority. Only FreeRTOS functions that end in FromISR can be called from interrupts - that have been assigned a priority at or (logically) below the maximum - system call interrupt priority. FreeRTOS maintains a separate interrupt - safe API to ensure interrupt entry is as fast and as simple as possible. - More information (albeit Cortex-M specific) is provided on the following + that have been assigned a priority at or (logically) below the maximum + system call interrupt priority. FreeRTOS maintains a separate interrupt + safe API to ensure interrupt entry is as fast and as simple as possible. + More information (albeit Cortex-M specific) is provided on the following link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { /* Cannot block in an ISR, so check there is data available. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) { traceQUEUE_PEEK_FROM_ISR( pxQueue ); @@ -1302,54 +1576,99 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; } /*-----------------------------------------------------------*/ -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue ) +UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue ) { -unsigned portBASE_TYPE uxReturn; +UBaseType_t uxReturn; configASSERT( xQueue ); taskENTER_CRITICAL(); - uxReturn = ( ( xQUEUE * ) xQueue )->uxMessagesWaiting; + { + uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting; + } taskEXIT_CRITICAL(); return uxReturn; } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ /*-----------------------------------------------------------*/ -unsigned portBASE_TYPE IRAM uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue ) +UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue ) { -unsigned portBASE_TYPE uxReturn; +UBaseType_t uxReturn; +Queue_t *pxQueue; - configASSERT( xQueue ); + pxQueue = ( Queue_t * ) xQueue; + configASSERT( pxQueue ); - uxReturn = ( ( xQUEUE * ) xQueue )->uxMessagesWaiting; + taskENTER_CRITICAL(); + { + uxReturn = pxQueue->uxLength - pxQueue->uxMessagesWaiting; + } + taskEXIT_CRITICAL(); return uxReturn; } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ /*-----------------------------------------------------------*/ -void vQueueDelete( xQueueHandle xQueue ) +UBaseType_t uxQueueMessagesWaitingFromISR( const QueueHandle_t xQueue ) { -xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; +UBaseType_t uxReturn; + + configASSERT( xQueue ); + + uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting; + + return uxReturn; +} /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ +/*-----------------------------------------------------------*/ + +void vQueueDelete( QueueHandle_t xQueue ) +{ +Queue_t * const pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); - traceQUEUE_DELETE( pxQueue ); + #if ( configQUEUE_REGISTRY_SIZE > 0 ) { vQueueUnregisterQueue( pxQueue ); } #endif - vPortFree( pxQueue->pcHead ); - vPortFree( pxQueue ); + + #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) ) + { + /* The queue can only have been allocated dynamically - free it + again. */ + vPortFree( pxQueue ); + } + #elif( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + { + /* The queue could have been allocated statically or dynamically, so + check before attempting to free the memory. */ + if( pxQueue->ucStaticallyAllocated == ( uint8_t ) pdFALSE ) + { + vPortFree( pxQueue ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #else + { + /* The queue must have been statically allocated, so is not going to be + deleted. Avoid compiler warnings about the unused parameter. */ + ( void ) pxQueue; + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ } /*-----------------------------------------------------------*/ #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned char ucQueueGetQueueNumber( xQueueHandle xQueue ) + UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) { - return ( ( xQUEUE * ) xQueue )->ucQueueNumber; + return ( ( Queue_t * ) xQueue )->uxQueueNumber; } #endif /* configUSE_TRACE_FACILITY */ @@ -1357,9 +1676,9 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; #if ( configUSE_TRACE_FACILITY == 1 ) - void vQueueSetQueueNumber( xQueueHandle xQueue, unsigned char ucQueueNumber ) + void vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) { - ( ( xQUEUE * ) xQueue )->ucQueueNumber = ucQueueNumber; + ( ( Queue_t * ) xQueue )->uxQueueNumber = uxQueueNumber; } #endif /* configUSE_TRACE_FACILITY */ @@ -1367,25 +1686,37 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned char ucQueueGetQueueType( xQueueHandle xQueue ) + uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) { - return ( ( xQUEUE * ) xQueue )->ucQueueType; + return ( ( Queue_t * ) xQueue )->ucQueueType; } #endif /* configUSE_TRACE_FACILITY */ /*-----------------------------------------------------------*/ -static void IRAM prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) + +static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition ) { - if( pxQueue->uxItemSize == ( unsigned portBASE_TYPE ) 0 ) +BaseType_t xReturn = pdFALSE; +UBaseType_t uxMessagesWaiting; + + /* This function is called from a critical section. */ + + uxMessagesWaiting = pxQueue->uxMessagesWaiting; + + if( pxQueue->uxItemSize == ( UBaseType_t ) 0 ) { #if ( configUSE_MUTEXES == 1 ) { if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) { /* The mutex is no longer being held. */ - vTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); + xReturn = xTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); pxQueue->pxMutexHolder = NULL; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* configUSE_MUTEXES */ } @@ -1397,6 +1728,10 @@ static void IRAM prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, { pxQueue->pcWriteTo = pxQueue->pcHead; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -1406,37 +1741,57 @@ static void IRAM prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, { pxQueue->u.pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } if( xPosition == queueOVERWRITE ) { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + if( uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* An item is not being added but overwritten, so subtract one from the recorded number of items in the queue so when one is added again below the number of recorded items remains correct. */ - --( pxQueue->uxMessagesWaiting ); + --uxMessagesWaiting; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } - ++( pxQueue->uxMessagesWaiting ); + pxQueue->uxMessagesWaiting = uxMessagesWaiting + 1; + + return xReturn; } /*-----------------------------------------------------------*/ -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvBuffer ) + +static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer ) { - if( pxQueue->uxQueueType != queueQUEUE_IS_MUTEX ) + if( pxQueue->uxItemSize != ( UBaseType_t ) 0 ) { pxQueue->u.pcReadFrom += pxQueue->uxItemSize; if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ { pxQueue->u.pcReadFrom = pxQueue->pcHead; } + else + { + mtCOVERAGE_TEST_MARKER(); + } ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports. Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. */ } } /*-----------------------------------------------------------*/ -static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) + +static void prvUnlockQueue( Queue_t * const pxQueue ) { /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */ @@ -1446,8 +1801,10 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) updated. */ taskENTER_CRITICAL(); { + int8_t cTxLock = pxQueue->cTxLock; + /* See if data was added to the queue while it was locked. */ - while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED ) + while( cTxLock > queueLOCKED_UNMODIFIED ) { /* Data was posted while the queue was locked. Are any tasks blocked waiting for data to become available? */ @@ -1455,18 +1812,23 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) { if( pxQueue->pxQueueSetContainer != NULL ) { - if( prvNotifyQueueSetContainer( pxQueue, queueSEND_TO_BACK ) == pdTRUE ) + if( prvNotifyQueueSetContainer( pxQueue, queueSEND_TO_BACK ) != pdFALSE ) { /* The queue is a member of a queue set, and posting to the queue set caused a higher priority task to unblock. A context switch is required. */ vTaskMissedYield(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ + /* Tasks that are removed from the event list will get + added to the pending ready list as the scheduler is still + suspended. */ if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) { if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) @@ -1475,6 +1837,10 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) context switch is required. */ vTaskMissedYield(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -1490,10 +1856,14 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) { if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) { - /* The task waiting has a higher priority so record that a - context switch is required. */ + /* The task waiting has a higher priority so record that + a context switch is required. */ vTaskMissedYield(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -1502,17 +1872,19 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) } #endif /* configUSE_QUEUE_SETS */ - --( pxQueue->xTxLock ); + --cTxLock; } - pxQueue->xTxLock = queueUNLOCKED; + pxQueue->cTxLock = queueUNLOCKED; } taskEXIT_CRITICAL(); /* Do the same for the Rx lock. */ taskENTER_CRITICAL(); { - while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED ) + int8_t cRxLock = pxQueue->cRxLock; + + while( cRxLock > queueLOCKED_UNMODIFIED ) { if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) { @@ -1520,8 +1892,12 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) { vTaskMissedYield(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } - --( pxQueue->xRxLock ); + --cRxLock; } else { @@ -1529,18 +1905,19 @@ static void IRAM prvUnlockQueue( xQUEUE *pxQueue ) } } - pxQueue->xRxLock = queueUNLOCKED; + pxQueue->cRxLock = queueUNLOCKED; } taskEXIT_CRITICAL(); } /*-----------------------------------------------------------*/ -static signed portBASE_TYPE prvIsQueueEmpty( const xQUEUE *pxQueue ) + +static BaseType_t prvIsQueueEmpty( const Queue_t *pxQueue ) { -signed portBASE_TYPE xReturn; +BaseType_t xReturn; taskENTER_CRITICAL(); { - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ) + if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) { xReturn = pdTRUE; } @@ -1554,12 +1931,13 @@ signed portBASE_TYPE xReturn; return xReturn; } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle xQueue ) + +BaseType_t xQueueIsQueueEmptyFromISR( const QueueHandle_t xQueue ) { -signed portBASE_TYPE xReturn; +BaseType_t xReturn; configASSERT( xQueue ); - if( ( ( xQUEUE * ) xQueue )->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ) + if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( UBaseType_t ) 0 ) { xReturn = pdTRUE; } @@ -1571,9 +1949,10 @@ signed portBASE_TYPE xReturn; return xReturn; } /*lint !e818 xQueue could not be pointer to const because it is a typedef. */ /*-----------------------------------------------------------*/ -static signed portBASE_TYPE prvIsQueueFull( const xQUEUE *pxQueue ) + +static BaseType_t prvIsQueueFull( const Queue_t *pxQueue ) { -signed portBASE_TYPE xReturn; +BaseType_t xReturn; taskENTER_CRITICAL(); { @@ -1591,12 +1970,13 @@ signed portBASE_TYPE xReturn; return xReturn; } /*-----------------------------------------------------------*/ -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle xQueue ) + +BaseType_t xQueueIsQueueFullFromISR( const QueueHandle_t xQueue ) { -signed portBASE_TYPE xReturn; +BaseType_t xReturn; configASSERT( xQueue ); - if( ( ( xQUEUE * ) xQueue )->uxMessagesWaiting == ( ( xQUEUE * ) xQueue )->uxLength ) + if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( ( Queue_t * ) xQueue )->uxLength ) { xReturn = pdTRUE; } @@ -1610,10 +1990,11 @@ signed portBASE_TYPE xReturn; /*-----------------------------------------------------------*/ #if ( configUSE_CO_ROUTINES == 1 ) - signed portBASE_TYPE xQueueCRSend( xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait ) + + BaseType_t xQueueCRSend( QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait ) { - signed portBASE_TYPE xReturn; - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; + BaseType_t xReturn; + Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* If the queue is already full we may have to block. A critical section is required to prevent an interrupt removing something from the queue @@ -1624,7 +2005,7 @@ signed portBASE_TYPE xReturn; { /* The queue is full - do we want to block or just leave without posting? */ - if( xTicksToWait > ( portTickType ) 0 ) + if( xTicksToWait > ( TickType_t ) 0 ) { /* As this is called from a coroutine we cannot block directly, but return indicating that we need to block. */ @@ -1662,6 +2043,14 @@ signed portBASE_TYPE xReturn; that a yield might be appropriate. */ xReturn = errQUEUE_YIELD; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -1678,21 +2067,22 @@ signed portBASE_TYPE xReturn; /*-----------------------------------------------------------*/ #if ( configUSE_CO_ROUTINES == 1 ) - signed portBASE_TYPE xQueueCRReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait ) + + BaseType_t xQueueCRReceive( QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait ) { - signed portBASE_TYPE xReturn; - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; + BaseType_t xReturn; + Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* If the queue is already empty we may have to block. A critical section is required to prevent an interrupt adding something to the queue between the check to see if the queue is empty and blocking on the queue. */ portDISABLE_INTERRUPTS(); { - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ) + if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) { /* There are no messages in the queue, do we want to block or just leave with nothing? */ - if( xTicksToWait > ( portTickType ) 0 ) + if( xTicksToWait > ( TickType_t ) 0 ) { /* As this is a co-routine we cannot block directly, but return indicating that we need to block. */ @@ -1706,12 +2096,16 @@ signed portBASE_TYPE xReturn; return errQUEUE_FULL; } } + else + { + mtCOVERAGE_TEST_MARKER(); + } } portENABLE_INTERRUPTS(); portDISABLE_INTERRUPTS(); { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* Data is available from the queue. */ pxQueue->u.pcReadFrom += pxQueue->uxItemSize; @@ -1719,6 +2113,10 @@ signed portBASE_TYPE xReturn; { pxQueue->u.pcReadFrom = pxQueue->pcHead; } + else + { + mtCOVERAGE_TEST_MARKER(); + } --( pxQueue->uxMessagesWaiting ); ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); @@ -1735,6 +2133,14 @@ signed portBASE_TYPE xReturn; { xReturn = errQUEUE_YIELD; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } else @@ -1751,9 +2157,10 @@ signed portBASE_TYPE xReturn; /*-----------------------------------------------------------*/ #if ( configUSE_CO_ROUTINES == 1 ) - signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) + + BaseType_t xQueueCRSendFromISR( QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken ) { - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; + Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* Cannot block within an ISR so if there is no space on the queue then exit without doing anything. */ @@ -1771,8 +2178,24 @@ signed portBASE_TYPE xReturn; { return pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } return xCoRoutinePreviouslyWoken; @@ -1783,14 +2206,14 @@ signed portBASE_TYPE xReturn; #if ( configUSE_CO_ROUTINES == 1 ) - signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken ) + BaseType_t xQueueCRReceiveFromISR( QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxCoRoutineWoken ) { - signed portBASE_TYPE xReturn; - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; + BaseType_t xReturn; + Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* We cannot block from an ISR, so check there is data available. If not then just leave without doing anything. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) + if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* Copy the data from the queue. */ pxQueue->u.pcReadFrom += pxQueue->uxItemSize; @@ -1798,6 +2221,10 @@ signed portBASE_TYPE xReturn; { pxQueue->u.pcReadFrom = pxQueue->pcHead; } + else + { + mtCOVERAGE_TEST_MARKER(); + } --( pxQueue->uxMessagesWaiting ); ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); @@ -1809,7 +2236,19 @@ signed portBASE_TYPE xReturn; { *pxCoRoutineWoken = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } xReturn = pdPASS; @@ -1827,21 +2266,27 @@ signed portBASE_TYPE xReturn; #if ( configQUEUE_REGISTRY_SIZE > 0 ) - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName ) + void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcQueueName ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { - unsigned portBASE_TYPE ux; + UBaseType_t ux; /* See if there is an empty space in the registry. A NULL name denotes a free slot. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < ( unsigned portBASE_TYPE ) configQUEUE_REGISTRY_SIZE; ux++ ) + for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) { if( xQueueRegistry[ ux ].pcQueueName == NULL ) { /* Store the information on this queue. */ xQueueRegistry[ ux ].pcQueueName = pcQueueName; xQueueRegistry[ ux ].xHandle = xQueue; + + traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName ); break; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } @@ -1850,20 +2295,57 @@ signed portBASE_TYPE xReturn; #if ( configQUEUE_REGISTRY_SIZE > 0 ) - void vQueueUnregisterQueue( xQueueHandle xQueue ) + const char *pcQueueGetName( QueueHandle_t xQueue ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { - unsigned portBASE_TYPE ux; + UBaseType_t ux; + const char *pcReturn = NULL; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + + /* Note there is nothing here to protect against another task adding or + removing entries from the registry while it is being searched. */ + for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) + { + if( xQueueRegistry[ ux ].xHandle == xQueue ) + { + pcReturn = xQueueRegistry[ ux ].pcQueueName; + break; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + return pcReturn; + } + +#endif /* configQUEUE_REGISTRY_SIZE */ +/*-----------------------------------------------------------*/ + +#if ( configQUEUE_REGISTRY_SIZE > 0 ) + + void vQueueUnregisterQueue( QueueHandle_t xQueue ) + { + UBaseType_t ux; /* See if the handle of the queue being unregistered in actually in the registry. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < ( unsigned portBASE_TYPE ) configQUEUE_REGISTRY_SIZE; ux++ ) + for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) { if( xQueueRegistry[ ux ].xHandle == xQueue ) { /* Set the name to NULL to show that this slot if free again. */ xQueueRegistry[ ux ].pcQueueName = NULL; + + /* Set the handle to NULL to ensure the same queue handle cannot + appear in the registry twice if it is added, removed, then + added again. */ + xQueueRegistry[ ux ].xHandle = ( QueueHandle_t ) 0; break; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } /*lint !e818 xQueue could not be pointer to const because it is a typedef. */ @@ -1873,9 +2355,9 @@ signed portBASE_TYPE xReturn; #if ( configUSE_TIMERS == 1 ) - void vQueueWaitForMessageRestricted( xQueueHandle xQueue, portTickType xTicksToWait ) + void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) { - xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; + Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* This function should not be called by application code hence the 'Restricted' in its name. It is not part of the public API. It is @@ -1892,10 +2374,14 @@ signed portBASE_TYPE xReturn; the queue is locked, and the calling task blocks on the queue, then the calling task will be immediately unblocked when the queue is unlocked. */ prvLockQueue( pxQueue ); - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0U ) + if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0U ) { /* There is nothing in the queue, block for the specified period. */ - vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); + vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait, xWaitIndefinitely ); + } + else + { + mtCOVERAGE_TEST_MARKER(); } prvUnlockQueue( pxQueue ); } @@ -1903,13 +2389,13 @@ signed portBASE_TYPE xReturn; #endif /* configUSE_TIMERS */ /*-----------------------------------------------------------*/ -#if ( configUSE_QUEUE_SETS == 1 ) +#if( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) - xQueueSetHandle xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength ) + QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength ) { - xQueueSetHandle pxQueue; + QueueSetHandle_t pxQueue; - pxQueue = xQueueGenericCreate( uxEventQueueLength, sizeof( xQUEUE * ), queueQUEUE_TYPE_SET ); + pxQueue = xQueueGenericCreate( uxEventQueueLength, sizeof( Queue_t * ), queueQUEUE_TYPE_SET ); return pxQueue; } @@ -1919,30 +2405,30 @@ signed portBASE_TYPE xReturn; #if ( configUSE_QUEUE_SETS == 1 ) - portBASE_TYPE xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet ) + BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) { - portBASE_TYPE xReturn; + BaseType_t xReturn; - if( ( ( xQUEUE * ) xQueueOrSemaphore )->pxQueueSetContainer != NULL ) + taskENTER_CRITICAL(); { - /* Cannot add a queue/semaphore to more than one queue set. */ - xReturn = pdFAIL; - } - else if( ( ( xQUEUE * ) xQueueOrSemaphore )->uxMessagesWaiting != ( unsigned portBASE_TYPE ) 0 ) - { - /* Cannot add a queue/semaphore to a queue set if there are already - items in the queue/semaphore. */ - xReturn = pdFAIL; - } - else - { - taskENTER_CRITICAL(); + if( ( ( Queue_t * ) xQueueOrSemaphore )->pxQueueSetContainer != NULL ) { - ( ( xQUEUE * ) xQueueOrSemaphore )->pxQueueSetContainer = xQueueSet; + /* Cannot add a queue/semaphore to more than one queue set. */ + xReturn = pdFAIL; + } + else if( ( ( Queue_t * ) xQueueOrSemaphore )->uxMessagesWaiting != ( UBaseType_t ) 0 ) + { + /* Cannot add a queue/semaphore to a queue set if there are already + items in the queue/semaphore. */ + xReturn = pdFAIL; + } + else + { + ( ( Queue_t * ) xQueueOrSemaphore )->pxQueueSetContainer = xQueueSet; + xReturn = pdPASS; } - taskEXIT_CRITICAL(); - xReturn = pdPASS; } + taskEXIT_CRITICAL(); return xReturn; } @@ -1952,17 +2438,17 @@ signed portBASE_TYPE xReturn; #if ( configUSE_QUEUE_SETS == 1 ) - portBASE_TYPE xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet ) + BaseType_t xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) { - portBASE_TYPE xReturn; - xQUEUE * const pxQueueOrSemaphore = ( xQUEUE * ) xQueueOrSemaphore; + BaseType_t xReturn; + Queue_t * const pxQueueOrSemaphore = ( Queue_t * ) xQueueOrSemaphore; if( pxQueueOrSemaphore->pxQueueSetContainer != xQueueSet ) { /* The queue was not a member of the set. */ xReturn = pdFAIL; } - else if( pxQueueOrSemaphore->uxMessagesWaiting != ( unsigned portBASE_TYPE ) 0 ) + else if( pxQueueOrSemaphore->uxMessagesWaiting != ( UBaseType_t ) 0 ) { /* It is dangerous to remove a queue from a set when the queue is not empty because the queue set will still hold pending events for @@ -1988,11 +2474,11 @@ signed portBASE_TYPE xReturn; #if ( configUSE_QUEUE_SETS == 1 ) - xQueueSetMemberHandle xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks ) + QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t const xTicksToWait ) { - xQueueSetMemberHandle xReturn = NULL; + QueueSetMemberHandle_t xReturn = NULL; - ( void ) xQueueGenericReceive( ( xQueueHandle ) xQueueSet, &xReturn, xBlockTimeTicks, pdFALSE ); /*lint !e961 Casting from one typedef to another is not redundant. */ + ( void ) xQueueGenericReceive( ( QueueHandle_t ) xQueueSet, &xReturn, xTicksToWait, pdFALSE ); /*lint !e961 Casting from one typedef to another is not redundant. */ return xReturn; } @@ -2001,11 +2487,11 @@ signed portBASE_TYPE xReturn; #if ( configUSE_QUEUE_SETS == 1 ) - xQueueSetMemberHandle xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet ) + QueueSetMemberHandle_t xQueueSelectFromSetFromISR( QueueSetHandle_t xQueueSet ) { - xQueueSetMemberHandle xReturn = NULL; + QueueSetMemberHandle_t xReturn = NULL; - ( void ) xQueueReceiveFromISR( ( xQueueHandle ) xQueueSet, &xReturn, NULL ); /*lint !e961 Casting from one typedef to another is not redundant. */ + ( void ) xQueueReceiveFromISR( ( QueueHandle_t ) xQueueSet, &xReturn, NULL ); /*lint !e961 Casting from one typedef to another is not redundant. */ return xReturn; } @@ -2014,27 +2500,52 @@ signed portBASE_TYPE xReturn; #if ( configUSE_QUEUE_SETS == 1 ) - static portBASE_TYPE prvNotifyQueueSetContainer( const xQUEUE * const pxQueue, portBASE_TYPE xCopyPosition ) + static BaseType_t prvNotifyQueueSetContainer( const Queue_t * const pxQueue, const BaseType_t xCopyPosition ) { - xQUEUE *pxQueueSetContainer = pxQueue->pxQueueSetContainer; - portBASE_TYPE xReturn = pdFALSE; + Queue_t *pxQueueSetContainer = pxQueue->pxQueueSetContainer; + BaseType_t xReturn = pdFALSE; + + /* This function must be called form a critical section. */ configASSERT( pxQueueSetContainer ); configASSERT( pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength ); if( pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength ) { + const int8_t cTxLock = pxQueueSetContainer->cTxLock; + traceQUEUE_SEND( pxQueueSetContainer ); - /* The data copies is the handle of the queue that contains data. */ - prvCopyDataToQueue( pxQueueSetContainer, &pxQueue, xCopyPosition ); - if( listLIST_IS_EMPTY( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) == pdFALSE ) + + /* The data copied is the handle of the queue that contains data. */ + xReturn = prvCopyDataToQueue( pxQueueSetContainer, &pxQueue, xCopyPosition ); + + if( cTxLock == queueUNLOCKED ) { - if( xTaskRemoveFromEventList( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) != pdFALSE ) + if( listLIST_IS_EMPTY( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) == pdFALSE ) { - /* The task waiting has a higher priority */ - xReturn = pdTRUE; + if( xTaskRemoveFromEventList( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) != pdFALSE ) + { + /* The task waiting has a higher priority. */ + xReturn = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } + else + { + pxQueueSetContainer->cTxLock = ( int8_t ) ( cTxLock + 1 ); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } return xReturn; @@ -2042,3 +2553,14 @@ signed portBASE_TYPE xReturn; #endif /* configUSE_QUEUE_SETS */ + + + + + + + + + + + diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c index e8b24d2..6c261a6 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -83,146 +88,28 @@ header files above, but not in this file, in order to generate the correct privileged Vs unprivileged linkage and placement. */ #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ +/* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting +functions but without including stdio.h here. */ #if ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) /* At the bottom of this file are two optional functions that can be used to generate human readable text from the raw data generated by the uxTaskGetSystemState() function. Note the formatting functions are provided for convenience only, and are NOT considered part of the kernel. */ #include -#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) ) */ +#endif /* configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) */ -/* Sanity check the configuration. */ -#if configUSE_TICKLESS_IDLE != 0 - #if INCLUDE_vTaskSuspend != 1 - #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0 - #endif /* INCLUDE_vTaskSuspend */ -#endif /* configUSE_TICKLESS_IDLE */ - -/* - * Defines the size, in words, of the stack allocated to the idle task. - */ -#define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE - -/* - * Task control block. A task control block (TCB) is allocated for each task, - * and stores task state information, including a pointer to the task's context - * (the task's run time environment, including register values) - */ -typedef struct tskTaskControlBlock -{ - volatile portSTACK_TYPE *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */ - - #if ( portUSING_MPU_WRAPPERS == 1 ) - xMPU_SETTINGS xMPUSettings; /*< The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE TCB STRUCT. */ - #endif - - xListItem xGenericListItem; /*< The list that the state list item of a task is reference from denotes the state of that task (Ready, Blocked, Suspended ). */ - xListItem xEventListItem; /*< Used to reference a task from an event list. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the task. 0 is the lowest priority. */ - portSTACK_TYPE *pxStack; /*< Points to the start of the stack. */ - signed char pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */ - - #if ( portSTACK_GROWTH > 0 ) - portSTACK_TYPE *pxEndOfStack; /*< Points to the end of the stack on architectures where the stack grows up from low memory. */ - #endif - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - unsigned portBASE_TYPE uxCriticalNesting; /*< Holds the critical section nesting depth for ports that do not maintain their own count in the port layer. */ - #endif - - #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned portBASE_TYPE uxTCBNumber; /*< Stores a number that increments each time a TCB is created. It allows debuggers to determine when a task has been deleted and then recreated. */ - unsigned portBASE_TYPE uxTaskNumber; /*< Stores a number specifically for use by third party trace code. */ - #endif - - #if ( configUSE_MUTEXES == 1 ) - unsigned portBASE_TYPE uxBasePriority; /*< The priority last assigned to the task - used by the priority inheritance mechanism. */ - #endif - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - pdTASK_HOOK_CODE pxTaskTag; - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - unsigned long ulRunTimeCounter; /*< Stores the amount of time the task has spent in the Running state. */ - #endif - - #if ( configUSE_NEWLIB_REENTRANT == 1 ) - /* Allocate a Newlib reent structure that is specific to this task. - Note Newlib support has been included by popular demand, but is not - used by the FreeRTOS maintainers themselves. FreeRTOS is not - responsible for resulting newlib operation. User must be familiar with - newlib and must provide system-wide implementations of the necessary - stubs. Be warned that (at the time of writing) the current newlib design - implements a system-wide malloc() that must be provided with locks. */ - struct _reent xNewLib_reent; - #endif - -} tskTCB; - - -/* - * Some kernel aware debuggers require the data the debugger needs access to to - * be global, rather than file scope. - */ -#ifdef portREMOVE_STATIC_QUALIFIER - #define static +#if( configUSE_PREEMPTION == 0 ) + /* If the cooperative scheduler is being used then a yield should not be + performed just because a higher priority task has been woken. */ + #define taskYIELD_IF_USING_PREEMPTION() +#else + #define taskYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API() #endif -/*lint -e956 A manual analysis and inspection has been used to determine which -static variables must be declared volatile. */ - -PRIVILEGED_DATA tskTCB * volatile pxCurrentTCB = NULL; - -/* Lists for ready and blocked tasks. --------------------*/ -PRIVILEGED_DATA static xList pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList1; /*< Delayed tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */ -PRIVILEGED_DATA static xList * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */ - -#if ( INCLUDE_vTaskDelete == 1 ) - - PRIVILEGED_DATA static xList xTasksWaitingTermination; /*< Tasks that have been deleted - but the their memory not yet freed. */ - PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTasksDeleted = ( unsigned portBASE_TYPE ) 0U; - -#endif - -#if ( INCLUDE_vTaskSuspend == 1 ) - - PRIVILEGED_DATA static xList xSuspendedTaskList; /*< Tasks that are currently suspended. */ - -#endif - -#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) - - PRIVILEGED_DATA static xTaskHandle xIdleTaskHandle = NULL; /*< Holds the handle of the idle task. The idle task is created automatically when the scheduler is started. */ - -#endif - -/* Other file private variables. --------------------------------*/ -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks = ( unsigned portBASE_TYPE ) 0U; -PRIVILEGED_DATA static volatile portTickType xTickCount = ( portTickType ) 0U; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTopReadyPriority = tskIDLE_PRIORITY; -PRIVILEGED_DATA static volatile signed portBASE_TYPE xSchedulerRunning = pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxSchedulerSuspended = ( unsigned portBASE_TYPE ) pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxPendedTicks = ( unsigned portBASE_TYPE ) 0U; -PRIVILEGED_DATA static volatile portBASE_TYPE xYieldPending = pdFALSE; -PRIVILEGED_DATA static volatile portBASE_TYPE xNumOfOverflows = ( portBASE_TYPE ) 0; -PRIVILEGED_DATA static unsigned portBASE_TYPE uxTaskNumber = ( unsigned portBASE_TYPE ) 0U; -PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_DELAY; - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ - PRIVILEGED_DATA static unsigned long ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */ - -#endif - -/*lint +e956 */ - -/* Debugging and trace facilities private variables and macros. ------------*/ +/* Values that can be assigned to the ucNotifyState member of the TCB. */ +#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 ) +#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 ) +#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 ) /* * The value used to fill the stack of a task when the task is created. This @@ -230,15 +117,41 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_D */ #define tskSTACK_FILL_BYTE ( 0xa5U ) +/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using +dynamically allocated RAM, in which case when any task is deleted it is known +that both the task's stack and TCB need to be freed. Sometimes the +FreeRTOSConfig.h settings only allow a task to be created using statically +allocated RAM, in which case when any task is deleted it is known that neither +the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h +settings allow a task to be created using either statically or dynamically +allocated RAM, in which case a member of the TCB is used to record whether the +stack and/or TCB were allocated statically or dynamically, so when a task is +deleted the RAM that was allocated dynamically is freed again and no attempt is +made to free the RAM that was allocated statically. +tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a +task to be created using either statically or dynamically allocated RAM. Note +that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with +a statically allocated stack and a dynamically allocated TCB. */ +#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) || ( portUSING_MPU_WRAPPERS == 1 ) ) +#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 ) +#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 ) +#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 ) + /* * Macros used by vListTask to indicate which state a task is in. */ -#define tskBLOCKED_CHAR ( ( signed char ) 'B' ) -#define tskREADY_CHAR ( ( signed char ) 'R' ) -#define tskDELETED_CHAR ( ( signed char ) 'D' ) -#define tskSUSPENDED_CHAR ( ( signed char ) 'S' ) +#define tskBLOCKED_CHAR ( 'B' ) +#define tskREADY_CHAR ( 'R' ) +#define tskDELETED_CHAR ( 'D' ) +#define tskSUSPENDED_CHAR ( 'S' ) -/*-----------------------------------------------------------*/ +/* + * Some kernel aware debuggers require the data the debugger needs access to be + * global, rather than file scope. + */ +#ifdef portREMOVE_STATIC_QUALIFIER + #define static +#endif #if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 ) @@ -248,28 +161,31 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_D /* uxTopReadyPriority holds the priority of the highest priority ready state task. */ - #define taskRECORD_READY_PRIORITY( uxPriority ) \ - { \ - if( ( uxPriority ) > uxTopReadyPriority ) \ - { \ - uxTopReadyPriority = ( uxPriority ); \ - } \ + #define taskRECORD_READY_PRIORITY( uxPriority ) \ + { \ + if( ( uxPriority ) > uxTopReadyPriority ) \ + { \ + uxTopReadyPriority = ( uxPriority ); \ + } \ } /* taskRECORD_READY_PRIORITY */ /*-----------------------------------------------------------*/ - #define taskSELECT_HIGHEST_PRIORITY_TASK() \ - { \ - /* Find the highest priority queue that contains ready tasks. */ \ - while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopReadyPriority ] ) ) ) \ - { \ - configASSERT( uxTopReadyPriority ); \ - --uxTopReadyPriority; \ - } \ - \ - /* listGET_OWNER_OF_NEXT_ENTRY indexes through the list, so the tasks of \ - the same priority get an equal share of the processor time. */ \ - listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) ); \ + #define taskSELECT_HIGHEST_PRIORITY_TASK() \ + { \ + UBaseType_t uxTopPriority = uxTopReadyPriority; \ + \ + /* Find the highest priority queue that contains ready tasks. */ \ + while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopPriority ] ) ) ) \ + { \ + configASSERT( uxTopPriority ); \ + --uxTopPriority; \ + } \ + \ + /* listGET_OWNER_OF_NEXT_ENTRY indexes through the list, so the tasks of \ + the same priority get an equal share of the processor time. */ \ + listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) ); \ + uxTopReadyPriority = uxTopPriority; \ } /* taskSELECT_HIGHEST_PRIORITY_TASK */ /*-----------------------------------------------------------*/ @@ -293,9 +209,9 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_D #define taskSELECT_HIGHEST_PRIORITY_TASK() \ { \ - unsigned portBASE_TYPE uxTopPriority; \ + UBaseType_t uxTopPriority; \ \ - /* Find the highest priority queue that contains ready tasks. */ \ + /* Find the highest priority list that contains ready tasks. */ \ portGET_HIGHEST_PRIORITY( uxTopPriority, uxTopReadyPriority ); \ configASSERT( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ uxTopPriority ] ) ) > 0 ); \ listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) ); \ @@ -306,12 +222,12 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_D /* A port optimised version is provided, call it only if the TCB being reset is being referenced from a ready list. If it is referenced from a delayed or suspended list then it won't be in a ready list. */ - #define taskRESET_READY_PRIORITY( uxPriority ) \ - { \ - if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ ( uxPriority ) ] ) ) == 0 ) \ - { \ - portRESET_READY_PRIORITY( ( uxPriority ), ( uxTopReadyPriority ) ); \ - } \ + #define taskRESET_READY_PRIORITY( uxPriority ) \ + { \ + if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ ( uxPriority ) ] ) ) == ( UBaseType_t ) 0 ) \ + { \ + portRESET_READY_PRIORITY( ( uxPriority ), ( uxTopReadyPriority ) ); \ + } \ } #endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */ @@ -322,7 +238,7 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = portMAX_D count overflows. */ #define taskSWITCH_DELAYED_LISTS() \ { \ - xList *pxTemp; \ + List_t *pxTemp; \ \ /* The delayed tasks list should be empty when the lists are switched. */ \ configASSERT( ( listLIST_IS_EMPTY( pxDelayedTaskList ) ) ); \ @@ -331,25 +247,7 @@ count overflows. */ pxDelayedTaskList = pxOverflowDelayedTaskList; \ pxOverflowDelayedTaskList = pxTemp; \ xNumOfOverflows++; \ - \ - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) \ - { \ - /* The new current delayed list is empty. Set \ - xNextTaskUnblockTime to the maximum possible value so it is \ - extremely unlikely that the \ - if( xTickCount >= xNextTaskUnblockTime ) test will pass until \ - there is an item in the delayed list. */ \ - xNextTaskUnblockTime = portMAX_DELAY; \ - } \ - else \ - { \ - /* The new current delayed list is not empty, get the value of \ - the item at the head of the delayed list. This is the time at \ - which the task at the head of the delayed list should be removed \ - from the Blocked state. */ \ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); \ - xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); \ - } \ + prvResetNextTaskUnblockTime(); \ } /*-----------------------------------------------------------*/ @@ -358,31 +256,198 @@ count overflows. */ * Place the task represented by pxTCB into the appropriate ready list for * the task. It is inserted at the end of the list. */ -#define prvAddTaskToReadyList( pxTCB ) \ - traceMOVED_TASK_TO_READY_STATE( pxTCB ) \ - taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \ - vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) ) +#define prvAddTaskToReadyList( pxTCB ) \ + traceMOVED_TASK_TO_READY_STATE( pxTCB ); \ + taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \ + vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xStateListItem ) ); \ + tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB ) /*-----------------------------------------------------------*/ /* - * Several functions take an xTaskHandle parameter that can optionally be NULL, + * Several functions take an TaskHandle_t parameter that can optionally be NULL, * where NULL is used to indicate that the handle of the currently executing * task should be used in place of the parameter. This macro simply checks to * see if the parameter is NULL and returns a pointer to the appropriate TCB. */ -#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( tskTCB * ) pxCurrentTCB : ( tskTCB * ) ( pxHandle ) ) +#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) ) + +/* The item value of the event list item is normally used to hold the priority +of the task to which it belongs (coded to allow it to be held in reverse +priority order). However, it is occasionally borrowed for other purposes. It +is important its value is not updated due to a task priority change while it is +being used for another purpose. The following bit definition is used to inform +the scheduler that the value should not be changed - in which case it is the +responsibility of whichever module is using the value to ensure it gets set back +to its original value when it is released. */ +#if( configUSE_16_BIT_TICKS == 1 ) + #define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x8000U +#else + #define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL +#endif + +/* + * Task control block. A task control block (TCB) is allocated for each task, + * and stores task state information, including a pointer to the task's context + * (the task's run time environment, including register values) + */ +typedef struct tskTaskControlBlock +{ + volatile StackType_t *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */ + + #if ( portUSING_MPU_WRAPPERS == 1 ) + xMPU_SETTINGS xMPUSettings; /*< The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE TCB STRUCT. */ + #endif + + ListItem_t xStateListItem; /*< The list that the state list item of a task is reference from denotes the state of that task (Ready, Blocked, Suspended ). */ + ListItem_t xEventListItem; /*< Used to reference a task from an event list. */ + UBaseType_t uxPriority; /*< The priority of the task. 0 is the lowest priority. */ + StackType_t *pxStack; /*< Points to the start of the stack. */ + char pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + + #if ( portSTACK_GROWTH > 0 ) + StackType_t *pxEndOfStack; /*< Points to the end of the stack on architectures where the stack grows up from low memory. */ + #endif + + #if ( portCRITICAL_NESTING_IN_TCB == 1 ) + UBaseType_t uxCriticalNesting; /*< Holds the critical section nesting depth for ports that do not maintain their own count in the port layer. */ + #endif + + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxTCBNumber; /*< Stores a number that increments each time a TCB is created. It allows debuggers to determine when a task has been deleted and then recreated. */ + UBaseType_t uxTaskNumber; /*< Stores a number specifically for use by third party trace code. */ + #endif + + #if ( configUSE_MUTEXES == 1 ) + UBaseType_t uxBasePriority; /*< The priority last assigned to the task - used by the priority inheritance mechanism. */ + UBaseType_t uxMutexesHeld; + #endif + + #if ( configUSE_APPLICATION_TASK_TAG == 1 ) + TaskHookFunction_t pxTaskTag; + #endif + + #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) + void *pvThreadLocalStoragePointers[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ]; + #endif + + #if( configGENERATE_RUN_TIME_STATS == 1 ) + uint32_t ulRunTimeCounter; /*< Stores the amount of time the task has spent in the Running state. */ + #endif + + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + /* Allocate a Newlib reent structure that is specific to this task. + Note Newlib support has been included by popular demand, but is not + used by the FreeRTOS maintainers themselves. FreeRTOS is not + responsible for resulting newlib operation. User must be familiar with + newlib and must provide system-wide implementations of the necessary + stubs. Be warned that (at the time of writing) the current newlib design + implements a system-wide malloc() that must be provided with locks. */ + struct _reent xNewLib_reent; + #endif + + #if( configUSE_TASK_NOTIFICATIONS == 1 ) + volatile uint32_t ulNotifiedValue; + volatile uint8_t ucNotifyState; + #endif + + /* See the comments above the definition of + tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE. */ + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) + uint8_t ucStaticallyAllocated; /*< Set to pdTRUE if the task is a statically allocated to ensure no attempt is made to free the memory. */ + #endif + + #if( INCLUDE_xTaskAbortDelay == 1 ) + uint8_t ucDelayAborted; + #endif + +} tskTCB; + +/* The old tskTCB name is maintained above then typedefed to the new TCB_t name +below to enable the use of older kernel aware debuggers. */ +typedef tskTCB TCB_t; + +/*lint -e956 A manual analysis and inspection has been used to determine which +static variables must be declared volatile. */ + +PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL; + +/* Lists for ready and blocked tasks. --------------------*/ +PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ];/*< Prioritised ready tasks. */ +PRIVILEGED_DATA static List_t xDelayedTaskList1; /*< Delayed tasks. */ +PRIVILEGED_DATA static List_t xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ +PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */ +PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ +PRIVILEGED_DATA static List_t xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */ + +#if( INCLUDE_vTaskDelete == 1 ) + + PRIVILEGED_DATA static List_t xTasksWaitingTermination; /*< Tasks that have been deleted - but their memory not yet freed. */ + PRIVILEGED_DATA static volatile UBaseType_t uxDeletedTasksWaitingCleanUp = ( UBaseType_t ) 0U; + +#endif + +#if ( INCLUDE_vTaskSuspend == 1 ) + + PRIVILEGED_DATA static List_t xSuspendedTaskList; /*< Tasks that are currently suspended. */ + +#endif + +/* Other file private variables. --------------------------------*/ +PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType_t ) 0U; +PRIVILEGED_DATA static volatile TickType_t xTickCount = ( TickType_t ) 0U; +PRIVILEGED_DATA static volatile UBaseType_t uxTopReadyPriority = tskIDLE_PRIORITY; +PRIVILEGED_DATA static volatile BaseType_t xSchedulerRunning = pdFALSE; +PRIVILEGED_DATA static volatile UBaseType_t uxPendedTicks = ( UBaseType_t ) 0U; +PRIVILEGED_DATA static volatile BaseType_t xYieldPending = pdFALSE; +PRIVILEGED_DATA static volatile BaseType_t xNumOfOverflows = ( BaseType_t ) 0; +PRIVILEGED_DATA static UBaseType_t uxTaskNumber = ( UBaseType_t ) 0U; +PRIVILEGED_DATA static volatile TickType_t xNextTaskUnblockTime = ( TickType_t ) 0U; /* Initialised to portMAX_DELAY before the scheduler starts. */ +PRIVILEGED_DATA static TaskHandle_t xIdleTaskHandle = NULL; /*< Holds the handle of the idle task. The idle task is created automatically when the scheduler is started. */ + +/* Context switches are held pending while the scheduler is suspended. Also, +interrupts must not manipulate the xStateListItem of a TCB, or any of the +lists the xStateListItem can be referenced from, if the scheduler is suspended. +If an interrupt needs to unblock a task while the scheduler is suspended then it +moves the task's event list item into the xPendingReadyList, ready for the +kernel to move the task from the pending ready list into the real ready list +when the scheduler is unsuspended. The pending ready list itself can only be +accessed from a critical section. */ +PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t ) pdFALSE; + +#if ( configGENERATE_RUN_TIME_STATS == 1 ) + + PRIVILEGED_DATA static uint32_t ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ + PRIVILEGED_DATA static uint32_t ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */ + +#endif + +/*lint +e956 */ + +/*-----------------------------------------------------------*/ /* Callback function prototypes. --------------------------*/ -extern void vApplicationStackOverflowHook( xTaskHandle xTask, signed char *pcTaskName ); -extern void vApplicationTickHook( void ); +#if( configCHECK_FOR_STACK_OVERFLOW > 0 ) + extern void vApplicationStackOverflowHook( TaskHandle_t xTask, char *pcTaskName ); +#endif + +#if( configUSE_TICK_HOOK > 0 ) + extern void vApplicationTickHook( void ); +#endif + +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + extern void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize ); +#endif /* File private functions. --------------------------------*/ -/* - * Utility to ready a TCB for a given task. Mainly just copies the parameters - * into the TCB structure. +/** + * Utility task that simply returns pdTRUE if the task referenced by xTask is + * currently in the Suspended state, or pdFALSE if the task referenced by xTask + * is in any other state. */ -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; +#if ( INCLUDE_vTaskSuspend == 1 ) + static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION; +#endif /* INCLUDE_vTaskSuspend */ /* * Utility to ready all the lists used by the scheduler. This is called @@ -412,7 +477,7 @@ static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ); */ #if ( INCLUDE_vTaskDelete == 1 ) - static void prvDeleteTCB( tskTCB *pxTCB ) PRIVILEGED_FUNCTION; + static void prvDeleteTCB( TCB_t *pxTCB ) PRIVILEGED_FUNCTION; #endif @@ -427,16 +492,10 @@ static void prvCheckTasksWaitingTermination( void ) PRIVILEGED_FUNCTION; * The currently executing task is entering the Blocked state. Add the task to * either the current or the overflow delayed task list. */ -static void IRAM prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) PRIVILEGED_FUNCTION; +static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely ) PRIVILEGED_FUNCTION; /* - * Allocates memory from the heap for a TCB and associated stack. Checks the - * allocation was successful. - */ -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) PRIVILEGED_FUNCTION; - -/* - * Fills an xTaskStatusType structure with information on each task that is + * Fills an TaskStatus_t structure with information on each task that is * referenced from the pxList list (which may be a ready list, a delayed list, * a suspended list, etc.). * @@ -445,7 +504,17 @@ static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TY */ #if ( configUSE_TRACE_FACILITY == 1 ) - static unsigned portBASE_TYPE prvListTaskWithinSingleList( xTaskStatusType *pxTaskStatusArray, xList *pxList, eTaskState eState ) PRIVILEGED_FUNCTION; + static UBaseType_t prvListTasksWithinSingleList( TaskStatus_t *pxTaskStatusArray, List_t *pxList, eTaskState eState ) PRIVILEGED_FUNCTION; + +#endif + +/* + * Searches pxList for a task with name pcNameToQuery - returning a handle to + * the task if it is found, or NULL if the task is not found. + */ +#if ( INCLUDE_xTaskGetHandle == 1 ) + + static TCB_t *prvSearchForNameWithinSingleList( List_t *pxList, const char pcNameToQuery[] ) PRIVILEGED_FUNCTION; #endif @@ -456,7 +525,7 @@ static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TY */ #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - static unsigned short prvTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) PRIVILEGED_FUNCTION; + static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) PRIVILEGED_FUNCTION; #endif @@ -471,212 +540,595 @@ static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TY */ #if ( configUSE_TICKLESS_IDLE != 0 ) - static portTickType prvGetExpectedIdleTime( void ) PRIVILEGED_FUNCTION; + static TickType_t prvGetExpectedIdleTime( void ) PRIVILEGED_FUNCTION; #endif -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) -{ -signed portBASE_TYPE xReturn; -tskTCB * pxNewTCB; +/* + * Set xNextTaskUnblockTime to the time at which the next Blocked state task + * will exit the Blocked state. + */ +static void prvResetNextTaskUnblockTime( void ); - configASSERT( pxTaskCode ); - configASSERT( ( ( uxPriority & ( ~portPRIVILEGE_BIT ) ) < configMAX_PRIORITIES ) ); +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) - /* Allocate the memory required by the TCB and stack for the new task, - checking that the allocation was successful. */ - pxNewTCB = prvAllocateTCBAndStack( usStackDepth, puxStackBuffer ); + /* + * Helper function used to pad task names with spaces when printing out + * human readable tables of task information. + */ + static char *prvWriteNameToBuffer( char *pcBuffer, const char *pcTaskName ) PRIVILEGED_FUNCTION; - if( pxNewTCB != NULL ) +#endif + +/* + * Called after a Task_t structure has been allocated either statically or + * dynamically to fill in the structure's members. + */ +static void prvInitialiseNewTask( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint32_t ulStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + TaskHandle_t * const pxCreatedTask, + TCB_t *pxNewTCB, + const MemoryRegion_t * const xRegions ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + +/* + * Called after a new task has been created and initialised to place the task + * under the control of the scheduler. + */ +static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; + +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + + TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint32_t ulStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + StackType_t * const puxStackBuffer, + StaticTask_t * const pxTaskBuffer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { - portSTACK_TYPE *pxTopOfStack; + TCB_t *pxNewTCB; + TaskHandle_t xReturn; - #if( portUSING_MPU_WRAPPERS == 1 ) - /* Should the task be created in privileged mode? */ - portBASE_TYPE xRunPrivileged; - if( ( uxPriority & portPRIVILEGE_BIT ) != 0U ) - { - xRunPrivileged = pdTRUE; - } - else - { - xRunPrivileged = pdFALSE; - } - uxPriority &= ~portPRIVILEGE_BIT; - #endif /* portUSING_MPU_WRAPPERS == 1 */ + configASSERT( puxStackBuffer != NULL ); + configASSERT( pxTaskBuffer != NULL ); - /* Calculate the top of stack address. This depends on whether the - stack grows from high memory to low (as per the 80x86) or visa versa. - portSTACK_GROWTH is used to make the result positive or negative as - required by the port. */ - #if( portSTACK_GROWTH < 0 ) + if( ( pxTaskBuffer != NULL ) && ( puxStackBuffer != NULL ) ) { - pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - ( unsigned short ) 1 ); - pxTopOfStack = ( portSTACK_TYPE * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ( portPOINTER_SIZE_TYPE ) ~portBYTE_ALIGNMENT_MASK ) ); /*lint !e923 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. */ + /* The memory used for the task's TCB and stack are passed into this + function - use them. */ + pxNewTCB = ( TCB_t * ) pxTaskBuffer; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + pxNewTCB->pxStack = ( StackType_t * ) puxStackBuffer; - /* Check the alignment of the calculated top of stack is correct. */ - configASSERT( ( ( ( unsigned long ) pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) + { + /* Tasks can be created statically or dynamically, so note this + task was created statically in case the task is later deleted. */ + pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_AND_TCB; + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + + prvInitialiseNewTask( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, &xReturn, pxNewTCB, NULL ); + prvAddNewTaskToReadyList( pxNewTCB ); + } + else + { + xReturn = NULL; + } + + return xReturn; + } + +#endif /* SUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +#if( portUSING_MPU_WRAPPERS == 1 ) + + BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) + { + TCB_t *pxNewTCB; + BaseType_t xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; + + configASSERT( pxTaskDefinition->puxStackBuffer ); + + if( pxTaskDefinition->puxStackBuffer != NULL ) + { + /* Allocate space for the TCB. Where the memory comes from depends + on the implementation of the port malloc function and whether or + not static allocation is being used. */ + pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); + + if( pxNewTCB != NULL ) + { + /* Store the stack location in the TCB. */ + pxNewTCB->pxStack = pxTaskDefinition->puxStackBuffer; + + /* Tasks can be created statically or dynamically, so note + this task had a statically allocated stack in case it is + later deleted. The TCB was allocated dynamically. */ + pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_ONLY; + + prvInitialiseNewTask( pxTaskDefinition->pvTaskCode, + pxTaskDefinition->pcName, + ( uint32_t ) pxTaskDefinition->usStackDepth, + pxTaskDefinition->pvParameters, + pxTaskDefinition->uxPriority, + pxCreatedTask, pxNewTCB, + pxTaskDefinition->xRegions ); + + prvAddNewTaskToReadyList( pxNewTCB ); + xReturn = pdPASS; + } + } + + return xReturn; + } + +#endif /* portUSING_MPU_WRAPPERS */ +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + + BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint16_t usStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + TaskHandle_t * const pxCreatedTask ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + { + TCB_t *pxNewTCB; + BaseType_t xReturn; + + /* If the stack grows down then allocate the stack then the TCB so the stack + does not grow into the TCB. Likewise if the stack grows up then allocate + the TCB then the stack. */ + #if( portSTACK_GROWTH > 0 ) + { + /* Allocate space for the TCB. Where the memory comes from depends on + the implementation of the port malloc function and whether or not static + allocation is being used. */ + pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); + + if( pxNewTCB != NULL ) + { + /* Allocate space for the stack used by the task being created. + The base of the stack memory stored in the TCB so the task can + be deleted later if required. */ + pxNewTCB->pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + + if( pxNewTCB->pxStack == NULL ) + { + /* Could not allocate the stack. Delete the allocated TCB. */ + vPortFree( pxNewTCB ); + pxNewTCB = NULL; + } + } } #else /* portSTACK_GROWTH */ { - pxTopOfStack = pxNewTCB->pxStack; + StackType_t *pxStack; - /* Check the alignment of the stack buffer is correct. */ - configASSERT( ( ( ( unsigned long ) pxNewTCB->pxStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); + /* Allocate space for the stack used by the task being created. */ + pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - /* If we want to use stack checking on architectures that use - a positive stack growth direction then we also need to store the - other extreme of the stack space. */ - pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 ); - } - #endif /* portSTACK_GROWTH */ - - /* Setup the newly allocated TCB with the initial state of the task. */ - prvInitialiseTCBVariables( pxNewTCB, pcName, uxPriority, xRegions, usStackDepth ); - - /* Initialize the TCB stack to look as if the task was already running, - but had been interrupted by the scheduler. The return address is set - to the start of the task function. Once the stack has been initialised - the top of stack variable is updated. */ - #if( portUSING_MPU_WRAPPERS == 1 ) - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); - } - #else /* portUSING_MPU_WRAPPERS */ - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); - } - #endif /* portUSING_MPU_WRAPPERS */ - - if( ( void * ) pxCreatedTask != NULL ) - { - /* Pass the TCB out - in an anonymous way. The calling function/ - task can use this as a handle to delete the task later if - required.*/ - *pxCreatedTask = ( xTaskHandle ) pxNewTCB; - } - - /* Ensure interrupts don't access the task lists while they are being - updated. */ - taskENTER_CRITICAL(); - { - uxCurrentNumberOfTasks++; - if( pxCurrentTCB == NULL ) + if( pxStack != NULL ) { - /* There are no other tasks, or all the other tasks are in - the suspended state - make this the current task. */ - pxCurrentTCB = pxNewTCB; + /* Allocate space for the TCB. */ + pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); /*lint !e961 MISRA exception as the casts are only redundant for some paths. */ - if( uxCurrentNumberOfTasks == ( unsigned portBASE_TYPE ) 1 ) + if( pxNewTCB != NULL ) { - /* This is the first task to be created so do the preliminary - initialisation required. We will not recover if this call - fails, but we will report the failure. */ - prvInitialiseTaskLists(); + /* Store the stack location in the TCB. */ + pxNewTCB->pxStack = pxStack; + } + else + { + /* The stack cannot be used as the TCB was not created. Free + it again. */ + vPortFree( pxStack ); } } else { - /* If the scheduler is not already running, make this task the - current task if it is the highest priority task to be created - so far. */ - if( xSchedulerRunning == pdFALSE ) - { - if( pxCurrentTCB->uxPriority <= uxPriority ) - { - pxCurrentTCB = pxNewTCB; - } - } + pxNewTCB = NULL; } - - uxTaskNumber++; - - #if ( configUSE_TRACE_FACILITY == 1 ) - { - /* Add a counter into the TCB for tracing only. */ - pxNewTCB->uxTCBNumber = uxTaskNumber; - } - #endif /* configUSE_TRACE_FACILITY */ - traceTASK_CREATE( pxNewTCB ); - - prvAddTaskToReadyList( pxNewTCB ); - - xReturn = pdPASS; - portSETUP_TCB( pxNewTCB ); } - taskEXIT_CRITICAL(); + #endif /* portSTACK_GROWTH */ + + if( pxNewTCB != NULL ) + { + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) + { + /* Tasks can be created statically or dynamically, so note this + task was created dynamically in case it is later deleted. */ + pxNewTCB->ucStaticallyAllocated = tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB; + } + #endif /* configSUPPORT_STATIC_ALLOCATION */ + + prvInitialiseNewTask( pxTaskCode, pcName, ( uint32_t ) usStackDepth, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, NULL ); + prvAddNewTaskToReadyList( pxNewTCB ); + xReturn = pdPASS; + } + else + { + xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; + } + + return xReturn; + } + +#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +static void prvInitialiseNewTask( TaskFunction_t pxTaskCode, + const char * const pcName, + const uint32_t ulStackDepth, + void * const pvParameters, + UBaseType_t uxPriority, + TaskHandle_t * const pxCreatedTask, + TCB_t *pxNewTCB, + const MemoryRegion_t * const xRegions ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +{ +StackType_t *pxTopOfStack; +UBaseType_t x; + + #if( portUSING_MPU_WRAPPERS == 1 ) + /* Should the task be created in privileged mode? */ + BaseType_t xRunPrivileged; + if( ( uxPriority & portPRIVILEGE_BIT ) != 0U ) + { + xRunPrivileged = pdTRUE; + } + else + { + xRunPrivileged = pdFALSE; + } + uxPriority &= ~portPRIVILEGE_BIT; + #endif /* portUSING_MPU_WRAPPERS == 1 */ + + /* Avoid dependency on memset() if it is not required. */ + #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) + { + /* Fill the stack with a known value to assist debugging. */ + ( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) ulStackDepth * sizeof( StackType_t ) ); + } + #endif /* ( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) ) */ + + /* Calculate the top of stack address. This depends on whether the stack + grows from high memory to low (as per the 80x86) or vice versa. + portSTACK_GROWTH is used to make the result positive or negative as required + by the port. */ + #if( portSTACK_GROWTH < 0 ) + { + pxTopOfStack = pxNewTCB->pxStack + ( ulStackDepth - ( uint32_t ) 1 ); + pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); /*lint !e923 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. */ + + /* Check the alignment of the calculated top of stack is correct. */ + configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); + } + #else /* portSTACK_GROWTH */ + { + pxTopOfStack = pxNewTCB->pxStack; + + /* Check the alignment of the stack buffer is correct. */ + configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxNewTCB->pxStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); + + /* The other extreme of the stack space is required if stack checking is + performed. */ + pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + ( ulStackDepth - ( uint32_t ) 1 ); + } + #endif /* portSTACK_GROWTH */ + + /* Store the task name in the TCB. */ + for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) + { + pxNewTCB->pcTaskName[ x ] = pcName[ x ]; + + /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than + configMAX_TASK_NAME_LEN characters just in case the memory after the + string is not accessible (extremely unlikely). */ + if( pcName[ x ] == 0x00 ) + { + break; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + /* Ensure the name string is terminated in the case that the string length + was greater or equal to configMAX_TASK_NAME_LEN. */ + pxNewTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0'; + + /* This is used as an array index so must ensure it's not too large. First + remove the privilege bit if one is present. */ + if( uxPriority >= ( UBaseType_t ) configMAX_PRIORITIES ) + { + uxPriority = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) 1U; } else { - xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; - traceTASK_CREATE_FAILED(); + mtCOVERAGE_TEST_MARKER(); } - if( xReturn == pdPASS ) + pxNewTCB->uxPriority = uxPriority; + #if ( configUSE_MUTEXES == 1 ) { - if( xSchedulerRunning != pdFALSE ) + pxNewTCB->uxBasePriority = uxPriority; + pxNewTCB->uxMutexesHeld = 0; + } + #endif /* configUSE_MUTEXES */ + + vListInitialiseItem( &( pxNewTCB->xStateListItem ) ); + vListInitialiseItem( &( pxNewTCB->xEventListItem ) ); + + /* Set the pxNewTCB as a link back from the ListItem_t. This is so we can get + back to the containing TCB from a generic item in a list. */ + listSET_LIST_ITEM_OWNER( &( pxNewTCB->xStateListItem ), pxNewTCB ); + + /* Event lists are always in priority order. */ + listSET_LIST_ITEM_VALUE( &( pxNewTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + listSET_LIST_ITEM_OWNER( &( pxNewTCB->xEventListItem ), pxNewTCB ); + + #if ( portCRITICAL_NESTING_IN_TCB == 1 ) + { + pxNewTCB->uxCriticalNesting = ( UBaseType_t ) 0U; + } + #endif /* portCRITICAL_NESTING_IN_TCB */ + + #if ( configUSE_APPLICATION_TASK_TAG == 1 ) + { + pxNewTCB->pxTaskTag = NULL; + } + #endif /* configUSE_APPLICATION_TASK_TAG */ + + #if ( configGENERATE_RUN_TIME_STATS == 1 ) + { + pxNewTCB->ulRunTimeCounter = 0UL; + } + #endif /* configGENERATE_RUN_TIME_STATS */ + + #if ( portUSING_MPU_WRAPPERS == 1 ) + { + vPortStoreTaskMPUSettings( &( pxNewTCB->xMPUSettings ), xRegions, pxNewTCB->pxStack, ulStackDepth ); + } + #else + { + /* Avoid compiler warning about unreferenced parameter. */ + ( void ) xRegions; + } + #endif + + #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) + { + for( x = 0; x < ( UBaseType_t ) configNUM_THREAD_LOCAL_STORAGE_POINTERS; x++ ) { - /* If the created task is of a higher priority than the current task - then it should run now. */ - if( pxCurrentTCB->uxPriority < uxPriority ) - { - portYIELD_WITHIN_API(); - } + pxNewTCB->pvThreadLocalStoragePointers[ x ] = NULL; } } + #endif - return xReturn; + #if ( configUSE_TASK_NOTIFICATIONS == 1 ) + { + pxNewTCB->ulNotifiedValue = 0; + pxNewTCB->ucNotifyState = taskNOT_WAITING_NOTIFICATION; + } + #endif + + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + { + /* Initialise this task's Newlib reent structure. */ + _REENT_INIT_PTR( ( &( pxNewTCB->xNewLib_reent ) ) ); + } + #endif + + #if( INCLUDE_xTaskAbortDelay == 1 ) + { + pxNewTCB->ucDelayAborted = pdFALSE; + } + #endif + + /* Initialize the TCB stack to look as if the task was already running, + but had been interrupted by the scheduler. The return address is set + to the start of the task function. Once the stack has been initialised + the top of stack variable is updated. */ + #if( portUSING_MPU_WRAPPERS == 1 ) + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); + } + #else /* portUSING_MPU_WRAPPERS */ + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); + } + #endif /* portUSING_MPU_WRAPPERS */ + + if( ( void * ) pxCreatedTask != NULL ) + { + /* Pass the handle out in an anonymous way. The handle can be used to + change the created task's priority, delete the created task, etc.*/ + *pxCreatedTask = ( TaskHandle_t ) pxNewTCB; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } +} +/*-----------------------------------------------------------*/ + +static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) +{ + /* Ensure interrupts don't access the task lists while the lists are being + updated. */ + taskENTER_CRITICAL(); + { + uxCurrentNumberOfTasks++; + if( pxCurrentTCB == NULL ) + { + /* There are no other tasks, or all the other tasks are in + the suspended state - make this the current task. */ + pxCurrentTCB = pxNewTCB; + + if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 ) + { + /* This is the first task to be created so do the preliminary + initialisation required. We will not recover if this call + fails, but we will report the failure. */ + prvInitialiseTaskLists(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + /* If the scheduler is not already running, make this task the + current task if it is the highest priority task to be created + so far. */ + if( xSchedulerRunning == pdFALSE ) + { + if( pxCurrentTCB->uxPriority <= pxNewTCB->uxPriority ) + { + pxCurrentTCB = pxNewTCB; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + uxTaskNumber++; + + #if ( configUSE_TRACE_FACILITY == 1 ) + { + /* Add a counter into the TCB for tracing only. */ + pxNewTCB->uxTCBNumber = uxTaskNumber; + } + #endif /* configUSE_TRACE_FACILITY */ + traceTASK_CREATE( pxNewTCB ); + + prvAddTaskToReadyList( pxNewTCB ); + + portSETUP_TCB( pxNewTCB ); + } + taskEXIT_CRITICAL(); + + if( xSchedulerRunning != pdFALSE ) + { + /* If the created task is of a higher priority than the current task + then it should run now. */ + if( pxCurrentTCB->uxPriority < pxNewTCB->uxPriority ) + { + taskYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } } /*-----------------------------------------------------------*/ #if ( INCLUDE_vTaskDelete == 1 ) - void vTaskDelete( xTaskHandle xTaskToDelete ) + void vTaskDelete( TaskHandle_t xTaskToDelete ) { - tskTCB *pxTCB; + TCB_t *pxTCB; taskENTER_CRITICAL(); { - /* If null is passed in here then we are deleting ourselves. */ + /* If null is passed in here then it is the calling task that is + being deleted. */ pxTCB = prvGetTCBFromHandle( xTaskToDelete ); - /* Remove task from the ready list and place in the termination list. - This will stop the task from be scheduled. The idle task will check - the termination list and free up any memory allocated by the - scheduler for the TCB and stack. */ - if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + /* Remove task from the ready list. */ + if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) { taskRESET_READY_PRIORITY( pxTCB->uxPriority ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* Is the task waiting on an event also? */ if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) { ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } - vListInsertEnd( &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) ); - - /* Increment the ucTasksDeleted variable so the idle task knows - there is a task that has been deleted and that it should therefore - check the xTasksWaitingTermination list. */ - ++uxTasksDeleted; - - /* Increment the uxTaskNumberVariable also so kernel aware debuggers - can detect that the task lists need re-generating. */ + /* Increment the uxTaskNumber also so kernel aware debuggers can + detect that the task lists need re-generating. This is done before + portPRE_TASK_DELETE_HOOK() as in the Windows port that macro will + not return. */ uxTaskNumber++; + if( pxTCB == pxCurrentTCB ) + { + /* A task is deleting itself. This cannot complete within the + task itself, as a context switch to another task is required. + Place the task in the termination list. The idle task will + check the termination list and free up any memory allocated by + the scheduler for the TCB and stack of the deleted task. */ + vListInsertEnd( &xTasksWaitingTermination, &( pxTCB->xStateListItem ) ); + + /* Increment the ucTasksDeleted variable so the idle task knows + there is a task that has been deleted and that it should therefore + check the xTasksWaitingTermination list. */ + ++uxDeletedTasksWaitingCleanUp; + + /* The pre-delete hook is primarily for the Windows simulator, + in which Windows specific clean up operations are performed, + after which it is not possible to yield away from this task - + hence xYieldPending is used to latch that a context switch is + required. */ + portPRE_TASK_DELETE_HOOK( pxTCB, &xYieldPending ); + } + else + { + --uxCurrentNumberOfTasks; + prvDeleteTCB( pxTCB ); + + /* Reset the next expected unblock time in case it referred to + the task that has just been deleted. */ + prvResetNextTaskUnblockTime(); + } + traceTASK_DELETE( pxTCB ); } taskEXIT_CRITICAL(); - /* Force a reschedule if we have just deleted the current task. */ + /* Force a reschedule if it is the currently running task that has just + been deleted. */ if( xSchedulerRunning != pdFALSE ) { if( pxTCB == pxCurrentTCB ) { + configASSERT( uxSchedulerSuspended == 0 ); portYIELD_WITHIN_API(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } @@ -685,19 +1137,20 @@ tskTCB * pxNewTCB; #if ( INCLUDE_vTaskDelayUntil == 1 ) - void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) + void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) { - portTickType xTimeToWake; - portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE; + TickType_t xTimeToWake; + BaseType_t xAlreadyYielded, xShouldDelay = pdFALSE; configASSERT( pxPreviousWakeTime ); configASSERT( ( xTimeIncrement > 0U ) ); + configASSERT( uxSchedulerSuspended == 0 ); vTaskSuspendAll(); { /* Minor optimisation. The tick count cannot change in this block. */ - const portTickType xConstTickCount = xTickCount; + const TickType_t xConstTickCount = xTickCount; /* Generate the tick time at which the task wants to wake. */ xTimeToWake = *pxPreviousWakeTime + xTimeIncrement; @@ -713,6 +1166,10 @@ tskTCB * pxNewTCB; { xShouldDelay = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -723,6 +1180,10 @@ tskTCB * pxNewTCB; { xShouldDelay = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } /* Update the wake time ready for the next call. */ @@ -730,20 +1191,15 @@ tskTCB * pxNewTCB; if( xShouldDelay != pdFALSE ) { - traceTASK_DELAY_UNTIL(); + traceTASK_DELAY_UNTIL( xTimeToWake ); - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) - { - /* The current task must be in a ready list, so there is - no need to check, and the port reset macro can be called - directly. */ - portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); - } - - prvAddCurrentTaskToDelayedList( xTimeToWake ); + /* prvAddCurrentTaskToDelayedList() needs the block time, not + the time to wake, so subtract the current tick count. */ + prvAddCurrentTaskToDelayedList( xTimeToWake - xConstTickCount, pdFALSE ); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } xAlreadyYielded = xTaskResumeAll(); @@ -754,6 +1210,10 @@ tskTCB * pxNewTCB; { portYIELD_WITHIN_API(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* INCLUDE_vTaskDelayUntil */ @@ -761,14 +1221,14 @@ tskTCB * pxNewTCB; #if ( INCLUDE_vTaskDelay == 1 ) - void vTaskDelay( portTickType xTicksToDelay ) + void vTaskDelay( const TickType_t xTicksToDelay ) { - portTickType xTimeToWake; - signed portBASE_TYPE xAlreadyYielded = pdFALSE; + BaseType_t xAlreadyYielded = pdFALSE; /* A delay time of zero just forces a reschedule. */ - if( xTicksToDelay > ( portTickType ) 0U ) + if( xTicksToDelay > ( TickType_t ) 0U ) { + configASSERT( uxSchedulerSuspended == 0 ); vTaskSuspendAll(); { traceTASK_DELAY(); @@ -780,25 +1240,14 @@ tskTCB * pxNewTCB; This task cannot be in an event list as it is the currently executing task. */ - - /* Calculate the time to wake - this may overflow but this is - not a problem. */ - xTimeToWake = xTickCount + xTicksToDelay; - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) - { - /* The current task must be in a ready list, so there is - no need to check, and the port reset macro can be called - directly. */ - portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); - } - prvAddCurrentTaskToDelayedList( xTimeToWake ); + prvAddCurrentTaskToDelayedList( xTicksToDelay, pdFALSE ); } xAlreadyYielded = xTaskResumeAll(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* Force a reschedule if xTaskResumeAll has not already done so, we may have put ourselves to sleep. */ @@ -806,18 +1255,24 @@ tskTCB * pxNewTCB; { portYIELD_WITHIN_API(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* INCLUDE_vTaskDelay */ /*-----------------------------------------------------------*/ -#if ( INCLUDE_eTaskGetState == 1 ) +#if( ( INCLUDE_eTaskGetState == 1 ) || ( configUSE_TRACE_FACILITY == 1 ) ) - eTaskState eTaskGetState( xTaskHandle xTask ) + eTaskState eTaskGetState( TaskHandle_t xTask ) { eTaskState eReturn; - xList *pxStateList; - const tskTCB * const pxTCB = ( tskTCB * ) xTask; + List_t *pxStateList; + const TCB_t * const pxTCB = ( TCB_t * ) xTask; + + configASSERT( pxTCB ); if( pxTCB == pxCurrentTCB ) { @@ -828,7 +1283,7 @@ tskTCB * pxNewTCB; { taskENTER_CRITICAL(); { - pxStateList = ( xList * ) listLIST_ITEM_CONTAINER( &( pxTCB->xGenericListItem ) ); + pxStateList = ( List_t * ) listLIST_ITEM_CONTAINER( &( pxTCB->xStateListItem ) ); } taskEXIT_CRITICAL(); @@ -843,21 +1298,30 @@ tskTCB * pxNewTCB; else if( pxStateList == &xSuspendedTaskList ) { /* The task being queried is referenced from the suspended - list. */ - eReturn = eSuspended; + list. Is it genuinely suspended or is it block + indefinitely? */ + if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ) + { + eReturn = eSuspended; + } + else + { + eReturn = eBlocked; + } } #endif #if ( INCLUDE_vTaskDelete == 1 ) - else if( pxStateList == &xTasksWaitingTermination ) + else if( ( pxStateList == &xTasksWaitingTermination ) || ( pxStateList == NULL ) ) { /* The task being queried is referenced from the deleted - tasks list. */ + tasks list, or it is not referenced from any lists at + all. */ eReturn = eDeleted; } #endif - else + else /*lint !e525 Negative indentation is intended to make use of pre-processor clearer. */ { /* If the task is not in any other state, it must be in the Ready (including pending ready) state. */ @@ -866,22 +1330,22 @@ tskTCB * pxNewTCB; } return eReturn; - } + } /*lint !e818 xTask cannot be a pointer to const because it is a typedef. */ #endif /* INCLUDE_eTaskGetState */ /*-----------------------------------------------------------*/ #if ( INCLUDE_uxTaskPriorityGet == 1 ) - unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle xTask ) + UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask ) { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxReturn; + TCB_t *pxTCB; + UBaseType_t uxReturn; taskENTER_CRITICAL(); { - /* If null is passed in here then we are changing the - priority of the calling function. */ + /* If null is passed in here then it is the priority of the that + called uxTaskPriorityGet() that is being queried. */ pxTCB = prvGetTCBFromHandle( xTask ); uxReturn = pxTCB->uxPriority; } @@ -893,20 +1357,64 @@ tskTCB * pxNewTCB; #endif /* INCLUDE_uxTaskPriorityGet */ /*-----------------------------------------------------------*/ +#if ( INCLUDE_uxTaskPriorityGet == 1 ) + + UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask ) + { + TCB_t *pxTCB; + UBaseType_t uxReturn, uxSavedInterruptState; + + /* RTOS ports that support interrupt nesting have the concept of a + maximum system call (or maximum API call) interrupt priority. + Interrupts that are above the maximum system call priority are keep + permanently enabled, even when the RTOS kernel is in a critical section, + but cannot make any calls to FreeRTOS API functions. If configASSERT() + is defined in FreeRTOSConfig.h then + portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion + failure if a FreeRTOS API function is called from an interrupt that has + been assigned a priority above the configured maximum system call + priority. Only FreeRTOS functions that end in FromISR can be called + from interrupts that have been assigned a priority at or (logically) + below the maximum system call interrupt priority. FreeRTOS maintains a + separate interrupt safe API to ensure interrupt entry is as fast and as + simple as possible. More information (albeit Cortex-M specific) is + provided on the following link: + http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); + + uxSavedInterruptState = portSET_INTERRUPT_MASK_FROM_ISR(); + { + /* If null is passed in here then it is the priority of the calling + task that is being queried. */ + pxTCB = prvGetTCBFromHandle( xTask ); + uxReturn = pxTCB->uxPriority; + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptState ); + + return uxReturn; + } + +#endif /* INCLUDE_uxTaskPriorityGet */ +/*-----------------------------------------------------------*/ + #if ( INCLUDE_vTaskPrioritySet == 1 ) - void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority ) + void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ) { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxCurrentBasePriority, uxPriorityUsedOnEntry; - portBASE_TYPE xYieldRequired = pdFALSE; + TCB_t *pxTCB; + UBaseType_t uxCurrentBasePriority, uxPriorityUsedOnEntry; + BaseType_t xYieldRequired = pdFALSE; configASSERT( ( uxNewPriority < configMAX_PRIORITIES ) ); /* Ensure the new priority is valid. */ - if( uxNewPriority >= ( unsigned portBASE_TYPE ) configMAX_PRIORITIES ) + if( uxNewPriority >= ( UBaseType_t ) configMAX_PRIORITIES ) { - uxNewPriority = ( unsigned portBASE_TYPE ) configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; + uxNewPriority = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) 1U; + } + else + { + mtCOVERAGE_TEST_MARKER(); } taskENTER_CRITICAL(); @@ -939,9 +1447,13 @@ tskTCB * pxNewTCB; running task is being raised. Is the priority being raised above that of the running task? */ if( uxNewPriority >= pxCurrentTCB->uxPriority ) - { + { xYieldRequired = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } else { @@ -952,8 +1464,8 @@ tskTCB * pxNewTCB; } else if( pxTCB == pxCurrentTCB ) { - /* Setting the priority of the running task down means - there may now be another task of higher priority that + /* Setting the priority of the running task down means + there may now be another task of higher priority that is ready to execute. */ xYieldRequired = pdTRUE; } @@ -977,6 +1489,10 @@ tskTCB * pxNewTCB; { pxTCB->uxPriority = uxNewPriority; } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* The base priority gets set whatever. */ pxTCB->uxBasePriority = uxNewPriority; @@ -987,30 +1503,51 @@ tskTCB * pxNewTCB; } #endif - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( ( portTickType ) configMAX_PRIORITIES - ( portTickType ) uxNewPriority ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + /* Only reset the event list item value if the value is not + being used for anything else. */ + if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) + { + listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxNewPriority ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* If the task is in the blocked or suspended list we need do nothing more than change it's priority variable. However, if the task is in a ready list it needs to be removed and placed in the list appropriate to its new priority. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE ) + if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xStateListItem ) ) != pdFALSE ) { /* The task is currently in its ready list - remove before adding it to it's new ready list. As we are in a critical section we can do this even if the scheduler is suspended. */ - if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) { /* It is known that the task is in its ready list so there is no need to check again and the port level reset macro can be called directly. */ portRESET_READY_PRIORITY( uxPriorityUsedOnEntry, uxTopReadyPriority ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } prvAddTaskToReadyList( pxTCB ); } - - if( xYieldRequired == pdTRUE ) + else { - portYIELD_WITHIN_API(); + mtCOVERAGE_TEST_MARKER(); + } + + if( xYieldRequired != pdFALSE ) + { + taskYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } /* Remove compiler warning about unused variables when the port @@ -1026,9 +1563,9 @@ tskTCB * pxNewTCB; #if ( INCLUDE_vTaskSuspend == 1 ) - void vTaskSuspend( xTaskHandle xTaskToSuspend ) + void vTaskSuspend( TaskHandle_t xTaskToSuspend ) { - tskTCB *pxTCB; + TCB_t *pxTCB; taskENTER_CRITICAL(); { @@ -1038,27 +1575,52 @@ tskTCB * pxNewTCB; traceTASK_SUSPEND( pxTCB ); - /* Remove task from the ready/delayed list and place in the suspended list. */ - if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + /* Remove task from the ready/delayed list and place in the + suspended list. */ + if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) { taskRESET_READY_PRIORITY( pxTCB->uxPriority ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* Is the task waiting on an event also? */ if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) { ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } - vListInsertEnd( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ); + vListInsertEnd( &xSuspendedTaskList, &( pxTCB->xStateListItem ) ); } taskEXIT_CRITICAL(); + if( xSchedulerRunning != pdFALSE ) + { + /* Reset the next expected unblock time in case it referred to the + task that is now in the Suspended state. */ + taskENTER_CRITICAL(); + { + prvResetNextTaskUnblockTime(); + } + taskEXIT_CRITICAL(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + if( pxTCB == pxCurrentTCB ) { if( xSchedulerRunning != pdFALSE ) { /* The current task has just been suspended. */ + configASSERT( uxSchedulerSuspended == 0 ); portYIELD_WITHIN_API(); } else @@ -1080,6 +1642,10 @@ tskTCB * pxNewTCB; } } } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* INCLUDE_vTaskSuspend */ @@ -1087,30 +1653,42 @@ tskTCB * pxNewTCB; #if ( INCLUDE_vTaskSuspend == 1 ) - signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) + static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) { - portBASE_TYPE xReturn = pdFALSE; - const tskTCB * const pxTCB = ( tskTCB * ) xTask; + BaseType_t xReturn = pdFALSE; + const TCB_t * const pxTCB = ( TCB_t * ) xTask; + + /* Accesses xPendingReadyList so must be called from a critical + section. */ /* It does not make sense to check if the calling task is suspended. */ configASSERT( xTask ); - /* Is the task we are attempting to resume actually in the - suspended list? */ - if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ) != pdFALSE ) + /* Is the task being resumed actually in the suspended list? */ + if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xStateListItem ) ) != pdFALSE ) { /* Has the task already been resumed from within an ISR? */ if( listIS_CONTAINED_WITHIN( &xPendingReadyList, &( pxTCB->xEventListItem ) ) == pdFALSE ) { - /* Is it in the suspended list because it is in the - Suspended state? It is possible to be in the suspended - list because it is blocked on a task with no timeout - specified. */ + /* Is it in the suspended list because it is in the Suspended + state, or because is is blocked with no timeout? */ if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) != pdFALSE ) { xReturn = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } return xReturn; @@ -1121,9 +1699,9 @@ tskTCB * pxNewTCB; #if ( INCLUDE_vTaskSuspend == 1 ) - void vTaskResume( xTaskHandle xTaskToResume ) + void vTaskResume( TaskHandle_t xTaskToResume ) { - tskTCB * const pxTCB = ( tskTCB * ) xTaskToResume; + TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; /* It does not make sense to resume the calling task. */ configASSERT( xTaskToResume ); @@ -1134,26 +1712,39 @@ tskTCB * pxNewTCB; { taskENTER_CRITICAL(); { - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) + if( prvTaskIsTaskSuspended( pxTCB ) != pdFALSE ) { traceTASK_RESUME( pxTCB ); /* As we are in a critical section we can access the ready lists even if the scheduler is suspended. */ - ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); prvAddTaskToReadyList( pxTCB ); /* We may have just resumed a higher priority task. */ if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) { - /* This yield may not cause the task just resumed to run, but - will leave the lists in the correct state for the next yield. */ - portYIELD_WITHIN_API(); + /* This yield may not cause the task just resumed to run, + but will leave the lists in the correct state for the + next yield. */ + taskYIELD_IF_USING_PREEMPTION(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } taskEXIT_CRITICAL(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* INCLUDE_vTaskSuspend */ @@ -1162,11 +1753,11 @@ tskTCB * pxNewTCB; #if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) - portBASE_TYPE xTaskResumeFromISR( xTaskHandle xTaskToResume ) + BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) { - portBASE_TYPE xYieldRequired = pdFALSE; - tskTCB * const pxTCB = ( tskTCB * ) xTaskToResume; - unsigned portBASE_TYPE uxSavedInterruptStatus; + BaseType_t xYieldRequired = pdFALSE; + TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; + UBaseType_t uxSavedInterruptStatus; configASSERT( xTaskToResume ); @@ -1190,24 +1781,39 @@ tskTCB * pxNewTCB; uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) + if( prvTaskIsTaskSuspended( pxTCB ) != pdFALSE ) { traceTASK_RESUME_FROM_ISR( pxTCB ); - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) + /* Check the ready lists can be accessed. */ + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) { - xYieldRequired = ( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ); - ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); + /* Ready lists can be accessed so move the task from the + suspended list to the ready list directly. */ + if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) + { + xYieldRequired = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); prvAddTaskToReadyList( pxTCB ); } else { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed, at which point a - yield will be performed if necessary. */ + /* The delayed or ready lists cannot be accessed so the task + is held in the pending ready list until the scheduler is + unsuspended. */ vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); } } + else + { + mtCOVERAGE_TEST_MARKER(); + } } portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); @@ -1219,21 +1825,45 @@ tskTCB * pxNewTCB; void vTaskStartScheduler( void ) { -portBASE_TYPE xReturn; +BaseType_t xReturn; /* Add the idle task at the lowest priority. */ - #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { - /* Create the idle task, storing its handle in xIdleTaskHandle so it can - be returned by the xTaskGetIdleTaskHandle() function. */ - xReturn = xTaskCreate( prvIdleTask, ( signed char * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ + StaticTask_t *pxIdleTaskTCBBuffer = NULL; + StackType_t *pxIdleTaskStackBuffer = NULL; + uint32_t ulIdleTaskStackSize; + + /* The Idle task is created using user provided RAM - obtain the + address of the RAM then create the idle task. */ + vApplicationGetIdleTaskMemory( &pxIdleTaskTCBBuffer, &pxIdleTaskStackBuffer, &ulIdleTaskStackSize ); + xIdleTaskHandle = xTaskCreateStatic( prvIdleTask, + "IDLE", + ulIdleTaskStackSize, + ( void * ) NULL, + ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), + pxIdleTaskStackBuffer, + pxIdleTaskTCBBuffer ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ + + if( xIdleTaskHandle != NULL ) + { + xReturn = pdPASS; + } + else + { + xReturn = pdFAIL; + } } #else { - /* Create the idle task without storing its handle. */ - xReturn = xTaskCreate( prvIdleTask, ( signed char * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), NULL ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ + /* The Idle task is being created using dynamically allocated RAM. */ + xReturn = xTaskCreate( prvIdleTask, + "IDLE", configMINIMAL_STACK_SIZE, + ( void * ) NULL, + ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), + &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ } - #endif /* INCLUDE_xTaskGetIdleTaskHandle */ + #endif /* configSUPPORT_STATIC_ALLOCATION */ #if ( configUSE_TIMERS == 1 ) { @@ -1241,6 +1871,10 @@ portBASE_TYPE xReturn; { xReturn = xTimerCreateTimerTask(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* configUSE_TIMERS */ @@ -1250,14 +1884,20 @@ portBASE_TYPE xReturn; before or during the call to xPortStartScheduler(). The stacks of the created tasks contain a status word with interrupts switched on so interrupts will automatically get re-enabled when the first task - starts to run. - - STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE - DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */ + starts to run. */ portDISABLE_INTERRUPTS(); + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + { + /* Switch Newlib's _impure_ptr variable to point to the _reent + structure specific to the task that will run first. */ + _impure_ptr = &( pxCurrentTCB->xNewLib_reent ); + } + #endif /* configUSE_NEWLIB_REENTRANT */ + + xNextTaskUnblockTime = portMAX_DELAY; xSchedulerRunning = pdTRUE; - xTickCount = ( portTickType ) 0U; + xTickCount = ( TickType_t ) 0U; /* If configGENERATE_RUN_TIME_STATS is defined then the following macro must be defined to configure the timer/counter used to generate @@ -1281,8 +1921,12 @@ portBASE_TYPE xReturn; /* This line will only be reached if the kernel could not be started, because there was not enough FreeRTOS heap to create the idle task or the timer task. */ - configASSERT( xReturn ); + configASSERT( xReturn != errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ); } + + /* Prevent compiler warnings if INCLUDE_xTaskGetIdleTaskHandle is set to 0, + meaning xIdleTaskHandle is not used anywhere else. */ + ( void ) xIdleTaskHandle; } /*-----------------------------------------------------------*/ @@ -1297,19 +1941,49 @@ void vTaskEndScheduler( void ) } /*----------------------------------------------------------*/ -void IRAM vTaskSuspendAll( void ) +void vTaskSuspendAll( void ) { /* A critical section is not required as the variable is of type - portBASE_TYPE. */ + BaseType_t. Please read Richard Barry's reply in the following link to a + post in the FreeRTOS support forum before reporting this as a bug! - + http://goo.gl/wu4acr */ ++uxSchedulerSuspended; } /*----------------------------------------------------------*/ #if ( configUSE_TICKLESS_IDLE != 0 ) - static portTickType prvGetExpectedIdleTime( void ) + static TickType_t prvGetExpectedIdleTime( void ) { - portTickType xReturn; + TickType_t xReturn; + UBaseType_t uxHigherPriorityReadyTasks = pdFALSE; + + /* uxHigherPriorityReadyTasks takes care of the case where + configUSE_PREEMPTION is 0, so there may be tasks above the idle priority + task that are in the Ready state, even though the idle task is + running. */ + #if( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 ) + { + if( uxTopReadyPriority > tskIDLE_PRIORITY ) + { + uxHigherPriorityReadyTasks = pdTRUE; + } + } + #else + { + const UBaseType_t uxLeastSignificantBit = ( UBaseType_t ) 0x01; + + /* When port optimised task selection is used the uxTopReadyPriority + variable is used as a bit map. If bits other than the least + significant bit are set then there are tasks that have a priority + above the idle priority that are in the Ready state. This takes + care of the case where the co-operative scheduler is in use. */ + if( uxTopReadyPriority > uxLeastSignificantBit ) + { + uxHigherPriorityReadyTasks = pdTRUE; + } + } + #endif if( pxCurrentTCB->uxPriority > tskIDLE_PRIORITY ) { @@ -1322,6 +1996,13 @@ void IRAM vTaskSuspendAll( void ) processed. */ xReturn = 0; } + else if( uxHigherPriorityReadyTasks != pdFALSE ) + { + /* There are tasks in the Ready state that have a priority above the + idle priority. This path can only be reached if + configUSE_PREEMPTION is 0. */ + xReturn = 0; + } else { xReturn = xNextTaskUnblockTime - xTickCount; @@ -1333,11 +2014,10 @@ void IRAM vTaskSuspendAll( void ) #endif /* configUSE_TICKLESS_IDLE */ /*----------------------------------------------------------*/ -signed portBASE_TYPE IRAM xTaskResumeAll( void ) +BaseType_t xTaskResumeAll( void ) { -tskTCB *pxTCB; -portBASE_TYPE xAlreadyYielded = pdFALSE; -portBASE_TYPE xYieldRequired = pdFALSE; +TCB_t *pxTCB = NULL; +BaseType_t xAlreadyYielded = pdFALSE; /* If uxSchedulerSuspended is zero then this function does not match a previous call to vTaskSuspendAll(). */ @@ -1352,50 +2032,91 @@ portBASE_TYPE xYieldRequired = pdFALSE; { --uxSchedulerSuspended; - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) { - if( uxCurrentNumberOfTasks > ( unsigned portBASE_TYPE ) 0U ) + if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U ) { /* Move any readied tasks from the pending list into the appropriate ready list. */ while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); + pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); - ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); prvAddTaskToReadyList( pxTCB ); - /* If we have moved a task that has a priority higher than - the current task then we should yield. */ + /* If the moved task has a priority higher than the current + task then a yield must be performed. */ if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) { - xYieldRequired = pdTRUE; + xYieldPending = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + if( pxTCB != NULL ) + { + /* A task was unblocked while the scheduler was suspended, + which may have prevented the next unblock time from being + re-calculated, in which case re-calculate it now. Mainly + important for low power tickless implementations, where + this can prevent an unnecessary exit from low power + state. */ + prvResetNextTaskUnblockTime(); } /* If any ticks occurred while the scheduler was suspended then - they should be processed now. This ensures the tick count does not - slip, and that any delayed tasks are resumed at the correct time. */ - if( uxPendedTicks > ( unsigned portBASE_TYPE ) 0U ) + they should be processed now. This ensures the tick count does + not slip, and that any delayed tasks are resumed at the correct + time. */ { - while( uxPendedTicks > ( unsigned portBASE_TYPE ) 0U ) + UBaseType_t uxPendedCounts = uxPendedTicks; /* Non-volatile copy. */ + + if( uxPendedCounts > ( UBaseType_t ) 0U ) { - if( xTaskIncrementTick() != pdFALSE ) + do { - xYieldRequired = pdTRUE; - } - --uxPendedTicks; + if( xTaskIncrementTick() != pdFALSE ) + { + xYieldPending = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + --uxPendedCounts; + } while( uxPendedCounts > ( UBaseType_t ) 0U ); + + uxPendedTicks = 0; + } + else + { + mtCOVERAGE_TEST_MARKER(); } } - if( ( xYieldRequired == pdTRUE ) || ( xYieldPending == pdTRUE ) ) + if( xYieldPending != pdFALSE ) { - xAlreadyYielded = pdTRUE; - xYieldPending = pdFALSE; - portYIELD_WITHIN_API(); + #if( configUSE_PREEMPTION != 0 ) + { + xAlreadyYielded = pdTRUE; + } + #endif + taskYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); } } } + else + { + mtCOVERAGE_TEST_MARKER(); + } } taskEXIT_CRITICAL(); @@ -1403,29 +2124,29 @@ portBASE_TYPE xYieldRequired = pdFALSE; } /*-----------------------------------------------------------*/ -portTickType xTaskGetTickCount( void ) +TickType_t xTaskGetTickCount( void ) { -portTickType xTicks; +TickType_t xTicks; /* Critical section required if running on a 16 bit processor. */ - taskENTER_CRITICAL(); + portTICK_TYPE_ENTER_CRITICAL(); { xTicks = xTickCount; } - taskEXIT_CRITICAL(); + portTICK_TYPE_EXIT_CRITICAL(); return xTicks; } /*-----------------------------------------------------------*/ -portTickType xTaskGetTickCountFromISR( void ) +TickType_t xTaskGetTickCountFromISR( void ) { -portTickType xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; +TickType_t xReturn; +UBaseType_t uxSavedInterruptStatus; /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are - above the maximum system call priority are keep permanently enabled, even + above the maximum system call priority are kept permanently enabled, even when the RTOS kernel is in a critical section, but cannot make any calls to FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion @@ -1439,75 +2160,200 @@ unsigned portBASE_TYPE uxSavedInterruptStatus; link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - xReturn = xTickCount; - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + uxSavedInterruptStatus = portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR(); + { + xReturn = xTickCount; + } + portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); return xReturn; } /*-----------------------------------------------------------*/ -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) +UBaseType_t uxTaskGetNumberOfTasks( void ) { /* A critical section is not required because the variables are of type - portBASE_TYPE. */ + BaseType_t. */ return uxCurrentNumberOfTasks; } /*-----------------------------------------------------------*/ -#if ( INCLUDE_pcTaskGetTaskName == 1 ) +char *pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +{ +TCB_t *pxTCB; - signed char *pcTaskGetTaskName( xTaskHandle xTaskToQuery ) + /* If null is passed in here then the name of the calling task is being + queried. */ + pxTCB = prvGetTCBFromHandle( xTaskToQuery ); + configASSERT( pxTCB ); + return &( pxTCB->pcTaskName[ 0 ] ); +} +/*-----------------------------------------------------------*/ + +#if ( INCLUDE_xTaskGetHandle == 1 ) + + static TCB_t *prvSearchForNameWithinSingleList( List_t *pxList, const char pcNameToQuery[] ) { - tskTCB *pxTCB; + TCB_t *pxNextTCB, *pxFirstTCB, *pxReturn = NULL; + UBaseType_t x; + char cNextChar; - /* If null is passed in here then the name of the calling task is being queried. */ - pxTCB = prvGetTCBFromHandle( xTaskToQuery ); - configASSERT( pxTCB ); - return &( pxTCB->pcTaskName[ 0 ] ); + /* This function is called with the scheduler suspended. */ + + if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 ) + { + listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); + + do + { + listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); + + /* Check each character in the name looking for a match or + mismatch. */ + for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) + { + cNextChar = pxNextTCB->pcTaskName[ x ]; + + if( cNextChar != pcNameToQuery[ x ] ) + { + /* Characters didn't match. */ + break; + } + else if( cNextChar == 0x00 ) + { + /* Both strings terminated, a match must have been + found. */ + pxReturn = pxNextTCB; + break; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + if( pxReturn != NULL ) + { + /* The handle has been found. */ + break; + } + + } while( pxNextTCB != pxFirstTCB ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + return pxReturn; } -#endif /* INCLUDE_pcTaskGetTaskName */ +#endif /* INCLUDE_xTaskGetHandle */ +/*-----------------------------------------------------------*/ + +#if ( INCLUDE_xTaskGetHandle == 1 ) + + TaskHandle_t xTaskGetHandle( const char *pcNameToQuery ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + { + UBaseType_t uxQueue = configMAX_PRIORITIES; + TCB_t* pxTCB; + + /* Task names will be truncated to configMAX_TASK_NAME_LEN - 1 bytes. */ + configASSERT( strlen( pcNameToQuery ) < configMAX_TASK_NAME_LEN ); + + vTaskSuspendAll(); + { + /* Search the ready lists. */ + do + { + uxQueue--; + pxTCB = prvSearchForNameWithinSingleList( ( List_t * ) &( pxReadyTasksLists[ uxQueue ] ), pcNameToQuery ); + + if( pxTCB != NULL ) + { + /* Found the handle. */ + break; + } + + } while( uxQueue > ( UBaseType_t ) tskIDLE_PRIORITY ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + + /* Search the delayed lists. */ + if( pxTCB == NULL ) + { + pxTCB = prvSearchForNameWithinSingleList( ( List_t * ) pxDelayedTaskList, pcNameToQuery ); + } + + if( pxTCB == NULL ) + { + pxTCB = prvSearchForNameWithinSingleList( ( List_t * ) pxOverflowDelayedTaskList, pcNameToQuery ); + } + + #if ( INCLUDE_vTaskSuspend == 1 ) + { + if( pxTCB == NULL ) + { + /* Search the suspended list. */ + pxTCB = prvSearchForNameWithinSingleList( &xSuspendedTaskList, pcNameToQuery ); + } + } + #endif + + #if( INCLUDE_vTaskDelete == 1 ) + { + if( pxTCB == NULL ) + { + /* Search the deleted list. */ + pxTCB = prvSearchForNameWithinSingleList( &xTasksWaitingTermination, pcNameToQuery ); + } + } + #endif + } + ( void ) xTaskResumeAll(); + + return ( TaskHandle_t ) pxTCB; + } + +#endif /* INCLUDE_xTaskGetHandle */ /*-----------------------------------------------------------*/ #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned portBASE_TYPE uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime ) + UBaseType_t uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime ) { - unsigned portBASE_TYPE uxTask = 0, uxQueue = configMAX_PRIORITIES; + UBaseType_t uxTask = 0, uxQueue = configMAX_PRIORITIES; vTaskSuspendAll(); { /* Is there a space in the array for each task in the system? */ if( uxArraySize >= uxCurrentNumberOfTasks ) { - /* Fill in an xTaskStatusType structure with information on each + /* Fill in an TaskStatus_t structure with information on each task in the Ready state. */ do { uxQueue--; - uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &( pxReadyTasksLists[ uxQueue ] ), eReady ); + uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &( pxReadyTasksLists[ uxQueue ] ), eReady ); - } while( uxQueue > ( unsigned portBASE_TYPE ) tskIDLE_PRIORITY ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + } while( uxQueue > ( UBaseType_t ) tskIDLE_PRIORITY ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - /* Fill in an xTaskStatusType structure with information on each + /* Fill in an TaskStatus_t structure with information on each task in the Blocked state. */ - uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( xList * ) pxDelayedTaskList, eBlocked ); - uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( xList * ) pxOverflowDelayedTaskList, eBlocked ); + uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( List_t * ) pxDelayedTaskList, eBlocked ); + uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( List_t * ) pxOverflowDelayedTaskList, eBlocked ); #if( INCLUDE_vTaskDelete == 1 ) { - /* Fill in an xTaskStatusType structure with information on + /* Fill in an TaskStatus_t structure with information on each task that has been deleted but not yet cleaned up. */ - uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xTasksWaitingTermination, eDeleted ); + uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xTasksWaitingTermination, eDeleted ); } #endif #if ( INCLUDE_vTaskSuspend == 1 ) { - /* Fill in an xTaskStatusType structure with information on + /* Fill in an TaskStatus_t structure with information on each task in the Suspended state. */ - uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xSuspendedTaskList, eSuspended ); + uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xSuspendedTaskList, eSuspended ); } #endif @@ -1515,7 +2361,11 @@ unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) { if( pulTotalRunTime != NULL ) { - *pulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); + #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE + portALT_GET_RUN_TIME_COUNTER_VALUE( ( *pulTotalRunTime ) ); + #else + *pulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); + #endif } } #else @@ -1527,6 +2377,10 @@ unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) } #endif } + else + { + mtCOVERAGE_TEST_MARKER(); + } } ( void ) xTaskResumeAll(); @@ -1538,7 +2392,7 @@ unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) - xTaskHandle xTaskGetIdleTaskHandle( void ) + TaskHandle_t xTaskGetIdleTaskHandle( void ) { /* If xTaskGetIdleTaskHandle() is called before the scheduler has been started, then xIdleTaskHandle will be NULL. */ @@ -1555,7 +2409,7 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than 1. */ #if ( configUSE_TICKLESS_IDLE != 0 ) - void vTaskStepTick( portTickType xTicksToJump ) + void vTaskStepTick( const TickType_t xTicksToJump ) { /* Correct the tick count value after a period during which the tick was suppressed. Note this does *not* call the tick hook function for @@ -1568,97 +2422,187 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than #endif /* configUSE_TICKLESS_IDLE */ /*----------------------------------------------------------*/ -portBASE_TYPE IRAM xTaskIncrementTick( void ) +#if ( INCLUDE_xTaskAbortDelay == 1 ) + + BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) + { + TCB_t *pxTCB = ( TCB_t * ) xTask; + BaseType_t xReturn = pdFALSE; + + configASSERT( pxTCB ); + + vTaskSuspendAll(); + { + /* A task can only be prematurely removed from the Blocked state if + it is actually in the Blocked state. */ + if( eTaskGetState( xTask ) == eBlocked ) + { + /* Remove the reference to the task from the blocked list. An + interrupt won't touch the xStateListItem because the + scheduler is suspended. */ + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); + + /* Is the task waiting on an event also? If so remove it from + the event list too. Interrupts can touch the event list item, + even though the scheduler is suspended, so a critical section + is used. */ + taskENTER_CRITICAL(); + { + if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) + { + ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); + pxTCB->ucDelayAborted = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + /* Place the unblocked task into the appropriate ready list. */ + prvAddTaskToReadyList( pxTCB ); + + /* A task being unblocked cannot cause an immediate context + switch if preemption is turned off. */ + #if ( configUSE_PREEMPTION == 1 ) + { + /* Preemption is on, but a context switch should only be + performed if the unblocked task has a priority that is + equal to or higher than the currently executing task. */ + if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) + { + /* Pend the yield to be performed when the scheduler + is unsuspended. */ + xYieldPending = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configUSE_PREEMPTION */ + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + xTaskResumeAll(); + + return xReturn; + } + +#endif /* INCLUDE_xTaskAbortDelay */ +/*----------------------------------------------------------*/ + +BaseType_t xTaskIncrementTick( void ) { -tskTCB * pxTCB; -portTickType xItemValue; -portBASE_TYPE xSwitchRequired = pdFALSE; +TCB_t * pxTCB; +TickType_t xItemValue; +BaseType_t xSwitchRequired = pdFALSE; /* Called by the portable layer each time a tick interrupt occurs. Increments the tick then checks to see if the new tick value will cause any tasks to be unblocked. */ traceTASK_INCREMENT_TICK( xTickCount ); - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) { + /* Minor optimisation. The tick count cannot change in this + block. */ + const TickType_t xConstTickCount = xTickCount + 1; + /* Increment the RTOS tick, switching the delayed and overflowed delayed lists if it wraps to 0. */ - ++xTickCount; + xTickCount = xConstTickCount; + if( xConstTickCount == ( TickType_t ) 0U ) { - /* Minor optimisation. The tick count cannot change in this - block. */ - const portTickType xConstTickCount = xTickCount; + taskSWITCH_DELAYED_LISTS(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } - if( xConstTickCount == ( portTickType ) 0U ) + /* See if this tick has made a timeout expire. Tasks are stored in + the queue in the order of their wake time - meaning once one task + has been found whose block time has not expired there is no need to + look any further down the list. */ + if( xConstTickCount >= xNextTaskUnblockTime ) + { + for( ;; ) { - taskSWITCH_DELAYED_LISTS(); - } - - /* See if this tick has made a timeout expire. Tasks are stored in the - queue in the order of their wake time - meaning once one tasks has been - found whose block time has not expired there is no need not look any - further down the list. */ - if( xConstTickCount >= xNextTaskUnblockTime ) - { - for( ;; ) + if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) { - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) + /* The delayed list is empty. Set xNextTaskUnblockTime + to the maximum possible value so it is extremely + unlikely that the + if( xTickCount >= xNextTaskUnblockTime ) test will pass + next time through. */ + xNextTaskUnblockTime = portMAX_DELAY; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + break; + } + else + { + /* The delayed list is not empty, get the value of the + item at the head of the delayed list. This is the time + at which the task at the head of the delayed list must + be removed from the Blocked state. */ + pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); + xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xStateListItem ) ); + + if( xConstTickCount < xItemValue ) { - /* The delayed list is empty. Set xNextTaskUnblockTime to - the maximum possible value so it is extremely unlikely that - the if( xTickCount >= xNextTaskUnblockTime ) test will pass - next time through. */ - xNextTaskUnblockTime = portMAX_DELAY; + /* It is not time to unblock this item yet, but the + item value is the time at which the task at the head + of the blocked list must be removed from the Blocked + state - so record the item value in + xNextTaskUnblockTime. */ + xNextTaskUnblockTime = xItemValue; break; } else { - /* The delayed list is not empty, get the value of the item - at the head of the delayed list. This is the time at which - the task at the head of the delayed list must be removed - from the Blocked state. */ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); - xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); - - if( xConstTickCount < xItemValue ) - { - /* It is not time to unblock this item yet, but the item - value is the time at which the task at the head of the - blocked list must be removed from the Blocked state - - so record the item value in xNextTaskUnblockTime. */ - xNextTaskUnblockTime = xItemValue; - break; - } - - /* It is time to remove the item from the Blocked state. */ - ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); - - /* Is the task waiting on an event also? If so remove it - from the event list. */ - if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) - { - ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); - } - - /* Place the unblocked task into the appropriate ready - list. */ - prvAddTaskToReadyList( pxTCB ); - - /* A task being unblocked cannot cause an immediate context - switch if preemption is turned off. */ - #if ( configUSE_PREEMPTION == 1 ) - { - /* Preemption is on, but a context switch should only - be performed if the unblocked task has a priority that - is equal to or higher than the currently executing - task. */ - if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - xSwitchRequired = pdTRUE; - } - } - #endif /* configUSE_PREEMPTION */ + mtCOVERAGE_TEST_MARKER(); } + + /* It is time to remove the item from the Blocked state. */ + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); + + /* Is the task waiting on an event also? If so remove + it from the event list. */ + if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) + { + ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* Place the unblocked task into the appropriate ready + list. */ + prvAddTaskToReadyList( pxTCB ); + + /* A task being unblocked cannot cause an immediate + context switch if preemption is turned off. */ + #if ( configUSE_PREEMPTION == 1 ) + { + /* Preemption is on, but a context switch should + only be performed if the unblocked task has a + priority that is equal to or higher than the + currently executing task. */ + if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) + { + xSwitchRequired = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configUSE_PREEMPTION */ } } } @@ -1668,12 +2612,31 @@ portBASE_TYPE xSwitchRequired = pdFALSE; writer has not explicitly turned time slicing off. */ #if ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) ) { - if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( unsigned portBASE_TYPE ) 1 ) + if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( UBaseType_t ) 1 ) { xSwitchRequired = pdTRUE; } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) ) */ + + #if ( configUSE_TICK_HOOK == 1 ) + { + /* Guard against the tick hook being called when the pended tick + count is being unwound (when the scheduler is being unlocked). */ + if( uxPendedTicks == ( UBaseType_t ) 0U ) + { + vApplicationTickHook(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configUSE_TICK_HOOK */ } else { @@ -1688,16 +2651,18 @@ portBASE_TYPE xSwitchRequired = pdFALSE; #endif } - #if ( configUSE_TICK_HOOK == 1 ) + #if ( configUSE_PREEMPTION == 1 ) { - /* Guard against the tick hook being called when the missed tick - count is being unwound (when the scheduler is being unlocked). */ - if( uxPendedTicks == ( unsigned portBASE_TYPE ) 0U ) + if( xYieldPending != pdFALSE ) { - vApplicationTickHook(); + xSwitchRequired = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); } } - #endif /* configUSE_TICK_HOOK */ + #endif /* configUSE_PREEMPTION */ return xSwitchRequired; } @@ -1705,18 +2670,19 @@ portBASE_TYPE xSwitchRequired = pdFALSE; #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) + void vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction ) { - tskTCB *xTCB; + TCB_t *xTCB; - /* If xTask is NULL then we are setting our own task hook. */ + /* If xTask is NULL then it is the task hook of the calling task that is + getting set. */ if( xTask == NULL ) { - xTCB = ( tskTCB * ) pxCurrentTCB; + xTCB = ( TCB_t * ) pxCurrentTCB; } else { - xTCB = ( tskTCB * ) xTask; + xTCB = ( TCB_t * ) xTask; } /* Save the hook function in the TCB. A critical section is required as @@ -1731,25 +2697,27 @@ portBASE_TYPE xSwitchRequired = pdFALSE; #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) + TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) { - tskTCB *xTCB; - pdTASK_HOOK_CODE xReturn; + TCB_t *xTCB; + TaskHookFunction_t xReturn; /* If xTask is NULL then we are setting our own task hook. */ if( xTask == NULL ) { - xTCB = ( tskTCB * ) pxCurrentTCB; + xTCB = ( TCB_t * ) pxCurrentTCB; } else { - xTCB = ( tskTCB * ) xTask; + xTCB = ( TCB_t * ) xTask; } /* Save the hook function in the TCB. A critical section is required as the value can be accessed from an interrupt. */ taskENTER_CRITICAL(); + { xReturn = xTCB->pxTaskTag; + } taskEXIT_CRITICAL(); return xReturn; @@ -1760,19 +2728,19 @@ portBASE_TYPE xSwitchRequired = pdFALSE; #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) + BaseType_t xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) { - tskTCB *xTCB; - portBASE_TYPE xReturn; + TCB_t *xTCB; + BaseType_t xReturn; /* If xTask is NULL then we are calling our own task hook. */ if( xTask == NULL ) { - xTCB = ( tskTCB * ) pxCurrentTCB; + xTCB = ( TCB_t * ) pxCurrentTCB; } else { - xTCB = ( tskTCB * ) xTask; + xTCB = ( TCB_t * ) xTask; } if( xTCB->pxTaskTag != NULL ) @@ -1792,7 +2760,7 @@ portBASE_TYPE xSwitchRequired = pdFALSE; void vTaskSwitchContext( void ) { - if( uxSchedulerSuspended != ( unsigned portBASE_TYPE ) pdFALSE ) + if( uxSchedulerSuspended != ( UBaseType_t ) pdFALSE ) { /* The scheduler is currently suspended - do not allow a context switch. */ @@ -1800,6 +2768,7 @@ void vTaskSwitchContext( void ) } else { + xYieldPending = pdFALSE; traceTASK_SWITCHED_OUT(); #if ( configGENERATE_RUN_TIME_STATS == 1 ) @@ -1811,9 +2780,9 @@ void vTaskSwitchContext( void ) #endif /* Add the amount of time the task has been running to the - accumulated time so far. The time the task started running was + accumulated time so far. The time the task started running was stored in ulTaskSwitchedInTime. Note that there is no overflow - protection here so count values are only valid until the timer + protection here so count values are only valid until the timer overflows. The guard against negative values is to protect against suspect run time stat counter implementations - which are provided by the application, not the kernel. */ @@ -1821,15 +2790,20 @@ void vTaskSwitchContext( void ) { pxCurrentTCB->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } ulTaskSwitchedInTime = ulTotalRunTime; } #endif /* configGENERATE_RUN_TIME_STATS */ - taskFIRST_CHECK_FOR_STACK_OVERFLOW(); - taskSECOND_CHECK_FOR_STACK_OVERFLOW(); + /* Check for stack overflow, if configured. */ + taskCHECK_FOR_STACK_OVERFLOW(); + /* Select a new task to run using either the generic C or port + optimised asm code. */ taskSELECT_HIGHEST_PRIORITY_TASK(); - traceTASK_SWITCHED_IN(); #if ( configUSE_NEWLIB_REENTRANT == 1 ) @@ -1843,70 +2817,57 @@ void vTaskSwitchContext( void ) } /*-----------------------------------------------------------*/ -void IRAM vTaskPlaceOnEventList( xList * const pxEventList, portTickType xTicksToWait ) +void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait ) { -portTickType xTimeToWake; - configASSERT( pxEventList ); - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. */ + /* THIS FUNCTION MUST BE CALLED WITH EITHER INTERRUPTS DISABLED OR THE + SCHEDULER SUSPENDED AND THE QUEUE BEING ACCESSED LOCKED. */ /* Place the event list item of the TCB in the appropriate event list. This is placed in the list in priority order so the highest priority task - is the first to be woken by the event. */ + is the first to be woken by the event. The queue that contains the event + list is locked, preventing simultaneous access from interrupts. */ vListInsert( pxEventList, &( pxCurrentTCB->xEventListItem ) ); - /* We must remove ourselves from the ready list before adding ourselves - to the blocked list as the same list item is used for both lists. We have - exclusive access to the ready lists as the scheduler is locked. */ - if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) - { - /* The current task must be in a ready list, so there is no need to - check, and the port reset macro can be called directly. */ - portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); - } - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( xTicksToWait == portMAX_DELAY ) - { - /* Add ourselves to the suspended task list instead of a delayed task - list to ensure we are not woken by a timing event. We will block - indefinitely. */ - vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - } - #else /* INCLUDE_vTaskSuspend */ - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - #endif /* INCLUDE_vTaskSuspend */ + prvAddCurrentTaskToDelayedList( xTicksToWait, pdTRUE ); } /*-----------------------------------------------------------*/ -#if configUSE_TIMERS == 1 +void vTaskPlaceOnUnorderedEventList( List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait ) +{ + configASSERT( pxEventList ); - void vTaskPlaceOnEventListRestricted( xList * const pxEventList, portTickType xTicksToWait ) + /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by + the event groups implementation. */ + configASSERT( uxSchedulerSuspended != 0 ); + + /* Store the item value in the event list item. It is safe to access the + event list item here as interrupts won't access the event list item of a + task that is not in the Blocked state. */ + listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ), xItemValue | taskEVENT_LIST_ITEM_VALUE_IN_USE ); + + /* Place the event list item of the TCB at the end of the appropriate event + list. It is safe to access the event list here because it is part of an + event group implementation - and interrupts don't access event groups + directly (instead they access them indirectly by pending function calls to + the task level). */ + vListInsertEnd( pxEventList, &( pxCurrentTCB->xEventListItem ) ); + + prvAddCurrentTaskToDelayedList( xTicksToWait, pdTRUE ); +} +/*-----------------------------------------------------------*/ + +#if( configUSE_TIMERS == 1 ) + + void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) { - portTickType xTimeToWake; - configASSERT( pxEventList ); /* This function should not be called by application code hence the 'Restricted' in its name. It is not part of the public API. It is designed for use by kernel code, and has special calling requirements - - it should be called from a critical section. */ + it should be called with the scheduler suspended. */ /* Place the event list item of the TCB in the appropriate event list. @@ -1915,68 +2876,124 @@ portTickType xTimeToWake; can be used in place of vListInsert. */ vListInsertEnd( pxEventList, &( pxCurrentTCB->xEventListItem ) ); - /* We must remove this task from the ready list before adding it to the - blocked list as the same list item is used for both lists. This - function is called form a critical section. */ - if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + /* If the task should block indefinitely then set the block time to a + value that will be recognised as an indefinite delay inside the + prvAddCurrentTaskToDelayedList() function. */ + if( xWaitIndefinitely != pdFALSE ) { - /* The current task must be in a ready list, so there is no need to - check, and the port reset macro can be called directly. */ - portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); + xTicksToWait = portMAX_DELAY; } - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - - traceTASK_DELAY_UNTIL(); - prvAddCurrentTaskToDelayedList( xTimeToWake ); + traceTASK_DELAY_UNTIL( ( xTickCount + xTicksToWait ) ); + prvAddCurrentTaskToDelayedList( xTicksToWait, xWaitIndefinitely ); } #endif /* configUSE_TIMERS */ /*-----------------------------------------------------------*/ -signed portBASE_TYPE IRAM xTaskRemoveFromEventList( const xList * const pxEventList ) +BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList ) { -tskTCB *pxUnblockedTCB; -portBASE_TYPE xReturn; +TCB_t *pxUnblockedTCB; +BaseType_t xReturn; - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. It can also be called from within an ISR. */ + /* THIS FUNCTION MUST BE CALLED FROM A CRITICAL SECTION. It can also be + called from a critical section within an ISR. */ - /* The event list is sorted in priority order, so we can remove the - first in the list, remove the TCB from the delayed list, and add - it to the ready list. + /* The event list is sorted in priority order, so the first in the list can + be removed as it is known to be the highest priority. Remove the TCB from + the delayed list, and add it to the ready list. If an event is for a queue that is locked then this function will never get called - the lock count on the queue will get modified instead. This - means we can always expect exclusive access to the event list here. + means exclusive access to the event list is guaranteed here. This function assumes that a check has already been made to ensure that pxEventList is not empty. */ - pxUnblockedTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); + pxUnblockedTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); configASSERT( pxUnblockedTCB ); ( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) ); - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) { - ( void ) uxListRemove( &( pxUnblockedTCB->xGenericListItem ) ); + ( void ) uxListRemove( &( pxUnblockedTCB->xStateListItem ) ); prvAddTaskToReadyList( pxUnblockedTCB ); } else { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed. */ + /* The delayed and ready lists cannot be accessed, so hold this task + pending until the scheduler is resumed. */ vListInsertEnd( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); } - if( pxUnblockedTCB->uxPriority >= pxCurrentTCB->uxPriority ) + if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority ) + { + /* Return true if the task removed from the event list has a higher + priority than the calling task. This allows the calling task to know if + it should force a context switch now. */ + xReturn = pdTRUE; + + /* Mark that a yield is pending in case the user is not using the + "xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */ + xYieldPending = pdTRUE; + } + else + { + xReturn = pdFALSE; + } + + #if( configUSE_TICKLESS_IDLE != 0 ) + { + /* If a task is blocked on a kernel object then xNextTaskUnblockTime + might be set to the blocked task's time out time. If the task is + unblocked for a reason other than a timeout xNextTaskUnblockTime is + normally left unchanged, because it is automatically reset to a new + value when the tick count equals xNextTaskUnblockTime. However if + tickless idling is used it might be more important to enter sleep mode + at the earliest possible time - so reset xNextTaskUnblockTime here to + ensure it is updated at the earliest possible time. */ + prvResetNextTaskUnblockTime(); + } + #endif + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue ) +{ +TCB_t *pxUnblockedTCB; +BaseType_t xReturn; + + /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by + the event flags implementation. */ + configASSERT( uxSchedulerSuspended != pdFALSE ); + + /* Store the new item value in the event list. */ + listSET_LIST_ITEM_VALUE( pxEventListItem, xItemValue | taskEVENT_LIST_ITEM_VALUE_IN_USE ); + + /* Remove the event list form the event flag. Interrupts do not access + event flags. */ + pxUnblockedTCB = ( TCB_t * ) listGET_LIST_ITEM_OWNER( pxEventListItem ); + configASSERT( pxUnblockedTCB ); + ( void ) uxListRemove( pxEventListItem ); + + /* Remove the task from the delayed list and add it to the ready list. The + scheduler is suspended so interrupts will not be accessing the ready + lists. */ + ( void ) uxListRemove( &( pxUnblockedTCB->xStateListItem ) ); + prvAddTaskToReadyList( pxUnblockedTCB ); + + if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority ) { /* Return true if the task removed from the event list has a higher priority than the calling task. This allows the calling task to know if it should force a context switch now. */ xReturn = pdTRUE; + + /* Mark that a yield is pending in case the user is not using the + "xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */ + xYieldPending = pdTRUE; } else { @@ -1987,7 +3004,7 @@ portBASE_TYPE xReturn; } /*-----------------------------------------------------------*/ -void IRAM vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) +void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) { configASSERT( pxTimeOut ); pxTimeOut->xOverflowCount = xNumOfOverflows; @@ -1995,9 +3012,9 @@ void IRAM vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) } /*-----------------------------------------------------------*/ -portBASE_TYPE IRAM xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) +BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) { -portBASE_TYPE xReturn; +BaseType_t xReturn; configASSERT( pxTimeOut ); configASSERT( pxTicksToWait ); @@ -2005,31 +3022,43 @@ portBASE_TYPE xReturn; taskENTER_CRITICAL(); { /* Minor optimisation. The tick count cannot change in this block. */ - const portTickType xConstTickCount = xTickCount; + const TickType_t xConstTickCount = xTickCount; + + #if( INCLUDE_xTaskAbortDelay == 1 ) + if( pxCurrentTCB->ucDelayAborted != pdFALSE ) + { + /* The delay was aborted, which is not the same as a time out, + but has the same result. */ + pxCurrentTCB->ucDelayAborted = pdFALSE; + xReturn = pdTRUE; + } + else + #endif #if ( INCLUDE_vTaskSuspend == 1 ) - /* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is - the maximum block time then the task should block indefinitely, and - therefore never time out. */ if( *pxTicksToWait == portMAX_DELAY ) { + /* If INCLUDE_vTaskSuspend is set to 1 and the block time + specified is the maximum block time then the task should block + indefinitely, and therefore never time out. */ xReturn = pdFALSE; } - else /* We are not blocking indefinitely, perform the checks below. */ + else #endif if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xConstTickCount >= pxTimeOut->xTimeOnEntering ) ) /*lint !e525 Indentation preferred as is to make code within pre-processor directives clearer. */ { - /* The tick count is greater than the time at which vTaskSetTimeout() - was called, but has also overflowed since vTaskSetTimeOut() was called. - It must have wrapped all the way around and gone past us again. This - passed since vTaskSetTimeout() was called. */ + /* The tick count is greater than the time at which + vTaskSetTimeout() was called, but has also overflowed since + vTaskSetTimeOut() was called. It must have wrapped all the way + around and gone past again. This passed since vTaskSetTimeout() + was called. */ xReturn = pdTRUE; } - else if( ( xConstTickCount - pxTimeOut->xTimeOnEntering ) < *pxTicksToWait ) + else if( ( ( TickType_t ) ( xConstTickCount - pxTimeOut->xTimeOnEntering ) ) < *pxTicksToWait ) /*lint !e961 Explicit casting is only redundant with some compilers, whereas others require it to prevent integer conversion errors. */ { /* Not a genuine timeout. Adjust parameters for time remaining. */ - *pxTicksToWait -= ( xConstTickCount - pxTimeOut->xTimeOnEntering ); + *pxTicksToWait -= ( xConstTickCount - pxTimeOut->xTimeOnEntering ); vTaskSetTimeOutState( pxTimeOut ); xReturn = pdFALSE; } @@ -2044,7 +3073,7 @@ portBASE_TYPE xReturn; } /*-----------------------------------------------------------*/ -void IRAM vTaskMissedYield( void ) +void vTaskMissedYield( void ) { xYieldPending = pdTRUE; } @@ -2052,14 +3081,14 @@ void IRAM vTaskMissedYield( void ) #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned portBASE_TYPE uxTaskGetTaskNumber( xTaskHandle xTask ) + UBaseType_t uxTaskGetTaskNumber( TaskHandle_t xTask ) { - unsigned portBASE_TYPE uxReturn; - tskTCB *pxTCB; + UBaseType_t uxReturn; + TCB_t *pxTCB; if( xTask != NULL ) { - pxTCB = ( tskTCB * ) xTask; + pxTCB = ( TCB_t * ) xTask; uxReturn = pxTCB->uxTaskNumber; } else @@ -2075,13 +3104,13 @@ void IRAM vTaskMissedYield( void ) #if ( configUSE_TRACE_FACILITY == 1 ) - void vTaskSetTaskNumber( xTaskHandle xTask, unsigned portBASE_TYPE uxHandle ) + void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) { - tskTCB *pxTCB; + TCB_t *pxTCB; if( xTask != NULL ) { - pxTCB = ( tskTCB * ) xTask; + pxTCB = ( TCB_t * ) xTask; pxTCB->uxTaskNumber = uxHandle; } } @@ -2104,9 +3133,13 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) /* Stop warnings. */ ( void ) pvParameters; + /** THIS IS THE RTOS IDLE TASK - WHICH IS CREATED AUTOMATICALLY WHEN THE + SCHEDULER IS STARTED. **/ + for( ;; ) { - /* See if any tasks have been deleted. */ + /* See if any tasks have deleted themselves - if so then the idle task + is responsible for freeing the deleted task's TCB and stack. */ prvCheckTasksWaitingTermination(); #if ( configUSE_PREEMPTION == 0 ) @@ -2130,10 +3163,14 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) the list, and an occasional incorrect value will not matter. If the ready list at the idle priority contains more than one task then a task other than the idle task is ready to execute. */ - if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( unsigned portBASE_TYPE ) 1 ) + if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 ) { taskYIELD(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) */ @@ -2156,7 +3193,7 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) configUSE_TICKLESS_IDLE to be set to a value other than 1. */ #if ( configUSE_TICKLESS_IDLE != 0 ) { - portTickType xExpectedIdleTime; + TickType_t xExpectedIdleTime; /* It is not desirable to suspend then resume the scheduler on each iteration of the idle task. Therefore, a preliminary @@ -2181,19 +3218,29 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ); traceLOW_POWER_IDLE_END(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } ( void ) xTaskResumeAll(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } #endif /* configUSE_TICKLESS_IDLE */ } } /*-----------------------------------------------------------*/ -#if configUSE_TICKLESS_IDLE != 0 +#if( configUSE_TICKLESS_IDLE != 0 ) eSleepModeStatus eTaskConfirmSleepModeStatus( void ) { + /* The idle task exists in addition to the application tasks. */ + const UBaseType_t uxNonApplicationTasks = 1; eSleepModeStatus eReturn = eStandardSleep; if( listCURRENT_LIST_LENGTH( &xPendingReadyList ) != 0 ) @@ -2208,123 +3255,76 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) } else { - #if configUSE_TIMERS == 0 + /* If all the tasks are in the suspended list (which might mean they + have an infinite block time rather than actually being suspended) + then it is safe to turn all clocks off and just wait for external + interrupts. */ + if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == ( uxCurrentNumberOfTasks - uxNonApplicationTasks ) ) { - /* The idle task exists in addition to the application tasks. */ - const unsigned portBASE_TYPE uxNonApplicationTasks = 1; - - /* If timers are not being used and all the tasks are in the - suspended list (which might mean they have an infinite block - time rather than actually being suspended) then it is safe to - turn all clocks off and just wait for external interrupts. */ - if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == ( uxCurrentNumberOfTasks - uxNonApplicationTasks ) ) - { - eReturn = eNoTasksWaitingTimeout; - } + eReturn = eNoTasksWaitingTimeout; + } + else + { + mtCOVERAGE_TEST_MARKER(); } - #endif /* configUSE_TIMERS */ } return eReturn; } + #endif /* configUSE_TICKLESS_IDLE */ /*-----------------------------------------------------------*/ -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) -{ -unsigned portBASE_TYPE x; +#if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) - /* Store the task name in the TCB. */ - for( x = ( unsigned portBASE_TYPE ) 0; x < ( unsigned portBASE_TYPE ) configMAX_TASK_NAME_LEN; x++ ) + void vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ) { - pxTCB->pcTaskName[ x ] = pcName[ x ]; + TCB_t *pxTCB; - /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than - configMAX_TASK_NAME_LEN characters just in case the memory after the - string is not accessible (extremely unlikely). */ - if( pcName[ x ] == 0x00 ) + if( xIndex < configNUM_THREAD_LOCAL_STORAGE_POINTERS ) { - break; + pxTCB = prvGetTCBFromHandle( xTaskToSet ); + pxTCB->pvThreadLocalStoragePointers[ xIndex ] = pvValue; } } - /* Ensure the name string is terminated in the case that the string length - was greater or equal to configMAX_TASK_NAME_LEN. */ - pxTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = ( signed char ) '\0'; +#endif /* configNUM_THREAD_LOCAL_STORAGE_POINTERS */ +/*-----------------------------------------------------------*/ - /* This is used as an array index so must ensure it's not too large. First - remove the privilege bit if one is present. */ - if( uxPriority >= ( unsigned portBASE_TYPE ) configMAX_PRIORITIES ) +#if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) + + void *pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ) { - uxPriority = ( unsigned portBASE_TYPE ) configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; + void *pvReturn = NULL; + TCB_t *pxTCB; + + if( xIndex < configNUM_THREAD_LOCAL_STORAGE_POINTERS ) + { + pxTCB = prvGetTCBFromHandle( xTaskToQuery ); + pvReturn = pxTCB->pvThreadLocalStoragePointers[ xIndex ]; + } + else + { + pvReturn = NULL; + } + + return pvReturn; } - pxTCB->uxPriority = uxPriority; - #if ( configUSE_MUTEXES == 1 ) - { - pxTCB->uxBasePriority = uxPriority; - } - #endif /* configUSE_MUTEXES */ - - vListInitialiseItem( &( pxTCB->xGenericListItem ) ); - vListInitialiseItem( &( pxTCB->xEventListItem ) ); - - /* Set the pxTCB as a link back from the xListItem. This is so we can get - back to the containing TCB from a generic item in a list. */ - listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB ); - - /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( portTickType ) configMAX_PRIORITIES - ( portTickType ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB ); - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - { - pxTCB->uxCriticalNesting = ( unsigned portBASE_TYPE ) 0U; - } - #endif /* portCRITICAL_NESTING_IN_TCB */ - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - { - pxTCB->pxTaskTag = NULL; - } - #endif /* configUSE_APPLICATION_TASK_TAG */ - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - pxTCB->ulRunTimeCounter = 0UL; - } - #endif /* configGENERATE_RUN_TIME_STATS */ - - #if ( portUSING_MPU_WRAPPERS == 1 ) - { - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, pxTCB->pxStack, usStackDepth ); - } - #else /* portUSING_MPU_WRAPPERS */ - { - ( void ) xRegions; - ( void ) usStackDepth; - } - #endif /* portUSING_MPU_WRAPPERS */ - - #if ( configUSE_NEWLIB_REENTRANT == 1 ) - { - /* Initialise this task's Newlib reent structure. */ - _REENT_INIT_PTR( ( &( pxTCB->xNewLib_reent ) ) ); - } - #endif /* configUSE_NEWLIB_REENTRANT */ -} +#endif /* configNUM_THREAD_LOCAL_STORAGE_POINTERS */ /*-----------------------------------------------------------*/ #if ( portUSING_MPU_WRAPPERS == 1 ) - void vTaskAllocateMPURegions( xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions ) + void vTaskAllocateMPURegions( TaskHandle_t xTaskToModify, const MemoryRegion_t * const xRegions ) { - tskTCB *pxTCB; + TCB_t *pxTCB; - /* If null is passed in here then we are deleting ourselves. */ + /* If null is passed in here then we are modifying the MPU settings of + the calling task. */ pxTCB = prvGetTCBFromHandle( xTaskToModify ); - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, NULL, 0 ); + vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, NULL, 0 ); } #endif /* portUSING_MPU_WRAPPERS */ @@ -2332,9 +3332,9 @@ unsigned portBASE_TYPE x; static void prvInitialiseTaskLists( void ) { -unsigned portBASE_TYPE uxPriority; +UBaseType_t uxPriority; - for( uxPriority = ( unsigned portBASE_TYPE ) 0U; uxPriority < ( unsigned portBASE_TYPE ) configMAX_PRIORITIES; uxPriority++ ) + for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ ) { vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) ); } @@ -2364,156 +3364,163 @@ unsigned portBASE_TYPE uxPriority; static void prvCheckTasksWaitingTermination( void ) { + + /** THIS FUNCTION IS CALLED FROM THE RTOS IDLE TASK **/ + #if ( INCLUDE_vTaskDelete == 1 ) { - portBASE_TYPE xListIsEmpty; + BaseType_t xListIsEmpty; /* ucTasksDeleted is used to prevent vTaskSuspendAll() being called too often in the idle task. */ - while( uxTasksDeleted > ( unsigned portBASE_TYPE ) 0U ) + while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U ) { vTaskSuspendAll(); + { xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination ); + } ( void ) xTaskResumeAll(); if( xListIsEmpty == pdFALSE ) { - tskTCB *pxTCB; + TCB_t *pxTCB; taskENTER_CRITICAL(); { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); - ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); + pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); --uxCurrentNumberOfTasks; - --uxTasksDeleted; + --uxDeletedTasksWaitingCleanUp; } taskEXIT_CRITICAL(); prvDeleteTCB( pxTCB ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } - #endif /* vTaskDelete */ + #endif /* INCLUDE_vTaskDelete */ } /*-----------------------------------------------------------*/ -static void IRAM prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) -{ - /* The list item will be inserted in wake time order. */ - listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake ); +#if( configUSE_TRACE_FACILITY == 1 ) - if( xTimeToWake < xTickCount ) + void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ) { - /* Wake time has overflowed. Place this item in the overflow list. */ - vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* The wake time has not overflowed, so we can use the current block list. */ - vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) ); + TCB_t *pxTCB; - /* If the task entering the blocked state was placed at the head of the - list of blocked tasks then xNextTaskUnblockTime needs to be updated - too. */ - if( xTimeToWake < xNextTaskUnblockTime ) + /* xTask is NULL then get the state of the calling task. */ + pxTCB = prvGetTCBFromHandle( xTask ); + + pxTaskStatus->xHandle = ( TaskHandle_t ) pxTCB; + pxTaskStatus->pcTaskName = ( const char * ) &( pxTCB->pcTaskName [ 0 ] ); + pxTaskStatus->uxCurrentPriority = pxTCB->uxPriority; + pxTaskStatus->pxStackBase = pxTCB->pxStack; + pxTaskStatus->xTaskNumber = pxTCB->uxTCBNumber; + + #if ( INCLUDE_vTaskSuspend == 1 ) { - xNextTaskUnblockTime = xTimeToWake; + /* If the task is in the suspended list then there is a chance it is + actually just blocked indefinitely - so really it should be reported as + being in the Blocked state. */ + if( pxTaskStatus->eCurrentState == eSuspended ) + { + vTaskSuspendAll(); + { + if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) + { + pxTaskStatus->eCurrentState = eBlocked; + } + } + xTaskResumeAll(); + } } - } -} -/*-----------------------------------------------------------*/ + #endif /* INCLUDE_vTaskSuspend */ -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) -{ -tskTCB *pxNewTCB; - - /* Allocate space for the TCB. Where the memory comes from depends on - the implementation of the port malloc function. */ - pxNewTCB = ( tskTCB * ) pvPortMalloc( sizeof( tskTCB ) ); - - if( pxNewTCB != NULL ) - { - /* Allocate space for the stack used by the task being created. - The base of the stack memory stored in the TCB so the task can - be deleted later if required. */ - pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( portSTACK_TYPE ) ), puxStackBuffer ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - - if( pxNewTCB->pxStack == NULL ) + #if ( configUSE_MUTEXES == 1 ) { - /* Could not allocate the stack. Delete the allocated TCB. */ - vPortFree( pxNewTCB ); - pxNewTCB = NULL; + pxTaskStatus->uxBasePriority = pxTCB->uxBasePriority; + } + #else + { + pxTaskStatus->uxBasePriority = 0; + } + #endif + + #if ( configGENERATE_RUN_TIME_STATS == 1 ) + { + pxTaskStatus->ulRunTimeCounter = pxTCB->ulRunTimeCounter; + } + #else + { + pxTaskStatus->ulRunTimeCounter = 0; + } + #endif + + /* Obtaining the task state is a little fiddly, so is only done if the value + of eState passed into this function is eInvalid - otherwise the state is + just set to whatever is passed in. */ + if( eState != eInvalid ) + { + pxTaskStatus->eCurrentState = eState; } else { - /* Just to help debugging. */ - ( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) usStackDepth * sizeof( portSTACK_TYPE ) ); + pxTaskStatus->eCurrentState = eTaskGetState( xTask ); + } + + /* Obtaining the stack space takes some time, so the xGetFreeStackSpace + parameter is provided to allow it to be skipped. */ + if( xGetFreeStackSpace != pdFALSE ) + { + #if ( portSTACK_GROWTH > 0 ) + { + pxTaskStatus->usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( uint8_t * ) pxTCB->pxEndOfStack ); + } + #else + { + pxTaskStatus->usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( uint8_t * ) pxTCB->pxStack ); + } + #endif + } + else + { + pxTaskStatus->usStackHighWaterMark = 0; } } - return pxNewTCB; -} +#endif /* configUSE_TRACE_FACILITY */ /*-----------------------------------------------------------*/ #if ( configUSE_TRACE_FACILITY == 1 ) - static unsigned portBASE_TYPE prvListTaskWithinSingleList( xTaskStatusType *pxTaskStatusArray, xList *pxList, eTaskState eState ) + static UBaseType_t prvListTasksWithinSingleList( TaskStatus_t *pxTaskStatusArray, List_t *pxList, eTaskState eState ) { - volatile tskTCB *pxNextTCB, *pxFirstTCB; - unsigned portBASE_TYPE uxTask = 0; + volatile TCB_t *pxNextTCB, *pxFirstTCB; + UBaseType_t uxTask = 0; - if( listCURRENT_LIST_LENGTH( pxList ) > ( unsigned portBASE_TYPE ) 0 ) + if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 ) { listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); - /* Populate an xTaskStatusType structure within the + /* Populate an TaskStatus_t structure within the pxTaskStatusArray array for each task that is referenced from - pxList. See the definition of xTaskStatusType in task.h for the - meaning of each xTaskStatusType structure member. */ + pxList. See the definition of TaskStatus_t in task.h for the + meaning of each TaskStatus_t structure member. */ do { listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); - - pxTaskStatusArray[ uxTask ].xHandle = ( xTaskHandle ) pxNextTCB; - pxTaskStatusArray[ uxTask ].pcTaskName = ( const signed char * ) &( pxNextTCB->pcTaskName [ 0 ] ); - pxTaskStatusArray[ uxTask ].xTaskNumber = pxNextTCB->uxTCBNumber; - pxTaskStatusArray[ uxTask ].eCurrentState = eState; - pxTaskStatusArray[ uxTask ].uxCurrentPriority = pxNextTCB->uxPriority; - - #if ( configUSE_MUTEXES == 1 ) - { - pxTaskStatusArray[ uxTask ].uxBasePriority = pxNextTCB->uxBasePriority; - } - #else - { - pxTaskStatusArray[ uxTask ].uxBasePriority = 0; - } - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - pxTaskStatusArray[ uxTask ].ulRunTimeCounter = pxNextTCB->ulRunTimeCounter; - } - #else - { - pxTaskStatusArray[ uxTask ].ulRunTimeCounter = 0; - } - #endif - - #if ( portSTACK_GROWTH > 0 ) - { - ppxTaskStatusArray[ uxTask ].usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxEndOfStack ); - } - #else - { - pxTaskStatusArray[ uxTask ].usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxStack ); - } - #endif - + vTaskGetInfo( ( TaskHandle_t ) pxNextTCB, &( pxTaskStatusArray[ uxTask ] ), pdTRUE, eState ); uxTask++; - } while( pxNextTCB != pxFirstTCB ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } return uxTask; } @@ -2523,19 +3530,19 @@ tskTCB *pxNewTCB; #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - static unsigned short prvTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) + static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) { - register unsigned short usCount = 0U; + uint32_t ulCount = 0U; - while( *pucStackByte == tskSTACK_FILL_BYTE ) + while( *pucStackByte == ( uint8_t ) tskSTACK_FILL_BYTE ) { pucStackByte -= portSTACK_GROWTH; - usCount++; + ulCount++; } - usCount /= sizeof( portSTACK_TYPE ); + ulCount /= ( uint32_t ) sizeof( StackType_t ); /*lint !e961 Casting is not redundant on smaller architectures. */ - return usCount; + return ( uint16_t ) ulCount; } #endif /* ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) */ @@ -2543,25 +3550,25 @@ tskTCB *pxNewTCB; #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) - unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) + UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) { - tskTCB *pxTCB; - unsigned char *pcEndOfStack; - unsigned portBASE_TYPE uxReturn; + TCB_t *pxTCB; + uint8_t *pucEndOfStack; + UBaseType_t uxReturn; pxTCB = prvGetTCBFromHandle( xTask ); #if portSTACK_GROWTH < 0 { - pcEndOfStack = ( unsigned char * ) pxTCB->pxStack; + pucEndOfStack = ( uint8_t * ) pxTCB->pxStack; } #else { - pcEndOfStack = ( unsigned char * ) pxTCB->pxEndOfStack; + pucEndOfStack = ( uint8_t * ) pxTCB->pxEndOfStack; } #endif - uxReturn = ( unsigned portBASE_TYPE ) prvTaskCheckFreeStackSpace( pcEndOfStack ); + uxReturn = ( UBaseType_t ) prvTaskCheckFreeStackSpace( pucEndOfStack ); return uxReturn; } @@ -2571,27 +3578,89 @@ tskTCB *pxNewTCB; #if ( INCLUDE_vTaskDelete == 1 ) - static void prvDeleteTCB( tskTCB *pxTCB ) + static void prvDeleteTCB( TCB_t *pxTCB ) { /* This call is required specifically for the TriCore port. It must be above the vPortFree() calls. The call is also used by ports/demos that want to allocate and clean RAM statically. */ portCLEAN_UP_TCB( pxTCB ); - /* Free up the memory allocated by the scheduler for the task. It is up to - the task to free any memory allocated at the application level. */ - vPortFreeAligned( pxTCB->pxStack ); - vPortFree( pxTCB ); + /* Free up the memory allocated by the scheduler for the task. It is up + to the task to free any memory allocated at the application level. */ + #if ( configUSE_NEWLIB_REENTRANT == 1 ) + { + _reclaim_reent( &( pxTCB->xNewLib_reent ) ); + } + #endif /* configUSE_NEWLIB_REENTRANT */ + + #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( portUSING_MPU_WRAPPERS == 0 ) ) + { + /* The task can only have been allocated dynamically - free both + the stack and TCB. */ + vPortFree( pxTCB->pxStack ); + vPortFree( pxTCB ); + } + #elif( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE == 1 ) + { + /* The task could have been allocated statically or dynamically, so + check what was statically allocated before trying to free the + memory. */ + if( pxTCB->ucStaticallyAllocated == tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ) + { + /* Both the stack and TCB were allocated dynamically, so both + must be freed. */ + vPortFree( pxTCB->pxStack ); + vPortFree( pxTCB ); + } + else if( pxTCB->ucStaticallyAllocated == tskSTATICALLY_ALLOCATED_STACK_ONLY ) + { + /* Only the stack was statically allocated, so the TCB is the + only memory that must be freed. */ + vPortFree( pxTCB ); + } + else + { + /* Neither the stack nor the TCB were allocated dynamically, so + nothing needs to be freed. */ + configASSERT( pxTCB->ucStaticallyAllocated == tskSTATICALLY_ALLOCATED_STACK_AND_TCB ) + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ } #endif /* INCLUDE_vTaskDelete */ /*-----------------------------------------------------------*/ +static void prvResetNextTaskUnblockTime( void ) +{ +TCB_t *pxTCB; + + if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) + { + /* The new current delayed list is empty. Set xNextTaskUnblockTime to + the maximum possible value so it is extremely unlikely that the + if( xTickCount >= xNextTaskUnblockTime ) test will pass until + there is an item in the delayed list. */ + xNextTaskUnblockTime = portMAX_DELAY; + } + else + { + /* The new current delayed list is not empty, get the value of + the item at the head of the delayed list. This is the time at + which the task at the head of the delayed list should be removed + from the Blocked state. */ + ( pxTCB ) = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); + xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( ( pxTCB )->xStateListItem ) ); + } +} +/*-----------------------------------------------------------*/ + #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) - xTaskHandle xTaskGetCurrentTaskHandle( void ) + TaskHandle_t xTaskGetCurrentTaskHandle( void ) { - xTaskHandle xReturn; + TaskHandle_t xReturn; /* A critical section is not required as this is not called from an interrupt and the current TCB will always be the same for any @@ -2606,9 +3675,9 @@ tskTCB *pxNewTCB; #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) - portBASE_TYPE xTaskGetSchedulerState( void ) + BaseType_t xTaskGetSchedulerState( void ) { - portBASE_TYPE xReturn; + BaseType_t xReturn; if( xSchedulerRunning == pdFALSE ) { @@ -2616,7 +3685,7 @@ tskTCB *pxNewTCB; } else { - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) { xReturn = taskSCHEDULER_RUNNING; } @@ -2634,27 +3703,43 @@ tskTCB *pxNewTCB; #if ( configUSE_MUTEXES == 1 ) - void vTaskPriorityInherit( xTaskHandle const pxMutexHolder ) + void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; + TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; /* If the mutex was given back by an interrupt while the queue was locked then the mutex holder might now be NULL. */ if( pxMutexHolder != NULL ) { + /* If the holder of the mutex has a priority below the priority of + the task attempting to obtain the mutex then it will temporarily + inherit the priority of the task attempting to obtain the mutex. */ if( pxTCB->uxPriority < pxCurrentTCB->uxPriority ) { - /* Adjust the mutex holder state to account for its new priority. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( portTickType ) configMAX_PRIORITIES - ( portTickType ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - - /* If the task being modified is in the ready state it will need to - be moved into a new list. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE ) + /* Adjust the mutex holder state to account for its new + priority. Only reset the event list item value if the value is + not being used for anything else. */ + if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) { - if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* If the task being modified is in the ready state it will need + to be moved into a new list. */ + if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xStateListItem ) ) != pdFALSE ) + { + if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) { taskRESET_READY_PRIORITY( pxTCB->uxPriority ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } /* Inherit the priority before being moved into the new list. */ pxTCB->uxPriority = pxCurrentTCB->uxPriority; @@ -2668,6 +3753,14 @@ tskTCB *pxNewTCB; traceTASK_PRIORITY_INHERIT( pxTCB, pxCurrentTCB->uxPriority ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } @@ -2676,29 +3769,80 @@ tskTCB *pxNewTCB; #if ( configUSE_MUTEXES == 1 ) - void IRAM vTaskPriorityDisinherit( xTaskHandle const pxMutexHolder ) + BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; + TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; + BaseType_t xReturn = pdFALSE; if( pxMutexHolder != NULL ) { + /* A task can only have an inherited priority if it holds the mutex. + If the mutex is held by a task then it cannot be given from an + interrupt, and if a mutex is given by the holding task then it must + be the running state task. */ + configASSERT( pxTCB == pxCurrentTCB ); + + configASSERT( pxTCB->uxMutexesHeld ); + ( pxTCB->uxMutexesHeld )--; + + /* Has the holder of the mutex inherited the priority of another + task? */ if( pxTCB->uxPriority != pxTCB->uxBasePriority ) { - /* We must be the running task to be able to give the mutex back. - Remove ourselves from the ready list we currently appear in. */ - if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( unsigned portBASE_TYPE ) 0 ) + /* Only disinherit if no other mutexes are held. */ + if( pxTCB->uxMutexesHeld == ( UBaseType_t ) 0 ) { - taskRESET_READY_PRIORITY( pxTCB->uxPriority ); - } + /* A task can only have an inherited priority if it holds + the mutex. If the mutex is held by a task then it cannot be + given from an interrupt, and if a mutex is given by the + holding task then it must be the running state task. Remove + the holding task from the ready list. */ + if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) + { + taskRESET_READY_PRIORITY( pxTCB->uxPriority ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } - /* Disinherit the priority before adding the task into the new - ready list. */ - traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority ); - pxTCB->uxPriority = pxTCB->uxBasePriority; - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( portTickType ) configMAX_PRIORITIES - ( portTickType ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - prvAddTaskToReadyList( pxTCB ); + /* Disinherit the priority before adding the task into the + new ready list. */ + traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority ); + pxTCB->uxPriority = pxTCB->uxBasePriority; + + /* Reset the event list item value. It cannot be in use for + any other purpose if this task is running, and it must be + running to give back the mutex. */ + listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + prvAddTaskToReadyList( pxTCB ); + + /* Return true to indicate that a context switch is required. + This is only actually required in the corner case whereby + multiple mutexes were held and the mutexes were given back + in an order different to that in which they were taken. + If a context switch did not occur when the first mutex was + returned, even if a task was waiting on it, then a context + switch should occur when the last mutex is returned whether + a task is waiting on it or not. */ + xReturn = pdTRUE; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + return xReturn; } #endif /* configUSE_MUTEXES */ @@ -2713,6 +3857,21 @@ tskTCB *pxNewTCB; if( xSchedulerRunning != pdFALSE ) { ( pxCurrentTCB->uxCriticalNesting )++; + + /* This is not the interrupt safe version of the enter critical + function so assert() if it is being called from an interrupt + context. Only API functions that end in "FromISR" can be used in an + interrupt. Only assert if the critical nesting count is 1 to + protect against recursive calls if the assert function also uses a + critical section. */ + if( pxCurrentTCB->uxCriticalNesting == 1 ) + { + portASSERT_IF_IN_ISR(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } @@ -2733,19 +3892,57 @@ tskTCB *pxNewTCB; { portENABLE_INTERRUPTS(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } } #endif /* portCRITICAL_NESTING_IN_TCB */ /*-----------------------------------------------------------*/ -#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) ) +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) - void vTaskList( signed char *pcWriteBuffer ) + static char *prvWriteNameToBuffer( char *pcBuffer, const char *pcTaskName ) { - xTaskStatusType *pxTaskStatusArray; - volatile unsigned portBASE_TYPE uxArraySize, x; + size_t x; + + /* Start by copying the entire string. */ + strcpy( pcBuffer, pcTaskName ); + + /* Pad the end of the string with spaces to ensure columns line up when + printed out. */ + for( x = strlen( pcBuffer ); x < ( size_t ) ( configMAX_TASK_NAME_LEN - 1 ); x++ ) + { + pcBuffer[ x ] = ' '; + } + + /* Terminate. */ + pcBuffer[ x ] = 0x00; + + /* Return the new end of string. */ + return &( pcBuffer[ x ] ); + } + +#endif /* ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */ +/*-----------------------------------------------------------*/ + +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) + + void vTaskList( char * pcWriteBuffer ) + { + TaskStatus_t *pxTaskStatusArray; + volatile UBaseType_t uxArraySize, x; char cStatus; /* @@ -2780,8 +3977,10 @@ tskTCB *pxNewTCB; function is executing. */ uxArraySize = uxCurrentNumberOfTasks; - /* Allocate an array index for each task. */ - pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( xTaskStatusType ) ); + /* Allocate an array index for each task. NOTE! if + configSUPPORT_DYNAMIC_ALLOCATION is set to 0 then pvPortMalloc() will + equate to NULL. */ + pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); if( pxTaskStatusArray != NULL ) { @@ -2793,43 +3992,59 @@ tskTCB *pxNewTCB; { switch( pxTaskStatusArray[ x ].eCurrentState ) { - case eReady: cStatus = tskREADY_CHAR; - break; + case eReady: cStatus = tskREADY_CHAR; + break; - case eBlocked: cStatus = tskBLOCKED_CHAR; - break; + case eBlocked: cStatus = tskBLOCKED_CHAR; + break; - case eSuspended: cStatus = tskSUSPENDED_CHAR; - break; + case eSuspended: cStatus = tskSUSPENDED_CHAR; + break; - case eDeleted: cStatus = tskDELETED_CHAR; - break; + case eDeleted: cStatus = tskDELETED_CHAR; + break; - default: /* Should not get here, but it is included - to prevent static checking errors. */ - cStatus = 0x00; - break; + default: /* Should not get here, but it is included + to prevent static checking errors. */ + cStatus = 0x00; + break; } - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%c\t%u\t%u\t%u\r\n", pxTaskStatusArray[ x ].pcTaskName, cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); - pcWriteBuffer += strlen( ( char * ) pcWriteBuffer ); + /* Write the task name to the string, padding with spaces so it + can be printed in tabular form more easily. */ + pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); + + /* Write the rest of the string. */ + sprintf( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); + pcWriteBuffer += strlen( pcWriteBuffer ); } - /* Free the array again. */ + /* Free the array again. NOTE! If configSUPPORT_DYNAMIC_ALLOCATION + is 0 then vPortFree() will be #defined to nothing. */ vPortFree( pxTaskStatusArray ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } -#endif /* configUSE_TRACE_FACILITY */ +#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */ /*----------------------------------------------------------*/ -#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) ) +#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) - void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) + void vTaskGetRunTimeStats( char *pcWriteBuffer ) { - xTaskStatusType *pxTaskStatusArray; - volatile unsigned portBASE_TYPE uxArraySize, x; - unsigned long ulTotalTime, ulStatsAsPercentage; + TaskStatus_t *pxTaskStatusArray; + volatile UBaseType_t uxArraySize, x; + uint32_t ulTotalTime, ulStatsAsPercentage; + + #if( configUSE_TRACE_FACILITY != 1 ) + { + #error configUSE_TRACE_FACILITY must also be set to 1 in FreeRTOSConfig.h to use vTaskGetRunTimeStats(). + } + #endif /* * PLEASE NOTE: @@ -2863,8 +4078,10 @@ tskTCB *pxNewTCB; function is executing. */ uxArraySize = uxCurrentNumberOfTasks; - /* Allocate an array index for each task. */ - pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( xTaskStatusType ) ); + /* Allocate an array index for each task. NOTE! If + configSUPPORT_DYNAMIC_ALLOCATION is set to 0 then pvPortMalloc() will + equate to NULL. */ + pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); if( pxTaskStatusArray != NULL ) { @@ -2885,17 +4102,22 @@ tskTCB *pxNewTCB; ulTotalRunTimeDiv100 has already been divided by 100. */ ulStatsAsPercentage = pxTaskStatusArray[ x ].ulRunTimeCounter / ulTotalTime; + /* Write the task name to the string, padding with + spaces so it can be printed in tabular form more + easily. */ + pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); + if( ulStatsAsPercentage > 0UL ) { #ifdef portLU_PRINTF_SPECIFIER_REQUIRED { - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); } #else { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%u\t\t%u%%\r\n", pxTaskStatusArray[ x ].pcTaskName, ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); } #endif } @@ -2905,27 +4127,681 @@ tskTCB *pxNewTCB; consumed less than 1% of the total run time. */ #ifdef portLU_PRINTF_SPECIFIER_REQUIRED { - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].pcTaskName, pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter ); } #else { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - sprintf( ( char * ) pcWriteBuffer, ( char * ) "%s\t\t%u\t\t<1%%\r\n", pxTaskStatusArray[ x ].pcTaskName, ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); } #endif } - pcWriteBuffer += strlen( ( char * ) pcWriteBuffer ); + pcWriteBuffer += strlen( pcWriteBuffer ); } } + else + { + mtCOVERAGE_TEST_MARKER(); + } - /* Free the array again. */ + /* Free the array again. NOTE! If configSUPPORT_DYNAMIC_ALLOCATION + is 0 then vPortFree() will be #defined to nothing. */ vPortFree( pxTaskStatusArray ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } -#endif /* configGENERATE_RUN_TIME_STATS */ +#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */ +/*-----------------------------------------------------------*/ + +TickType_t uxTaskResetEventItemValue( void ) +{ +TickType_t uxReturn; + + uxReturn = listGET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ) ); + + /* Reset the event list item to its normal value - so it can be used with + queues and semaphores. */ + listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ), ( ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + + return uxReturn; +} +/*-----------------------------------------------------------*/ + +#if ( configUSE_MUTEXES == 1 ) + + void *pvTaskIncrementMutexHeldCount( void ) + { + /* If xSemaphoreCreateMutex() is called before any tasks have been created + then pxCurrentTCB will be NULL. */ + if( pxCurrentTCB != NULL ) + { + ( pxCurrentTCB->uxMutexesHeld )++; + } + + return pxCurrentTCB; + } + +#endif /* configUSE_MUTEXES */ +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) + { + uint32_t ulReturn; + + taskENTER_CRITICAL(); + { + /* Only block if the notification count is not already non-zero. */ + if( pxCurrentTCB->ulNotifiedValue == 0UL ) + { + /* Mark this task as waiting for a notification. */ + pxCurrentTCB->ucNotifyState = taskWAITING_NOTIFICATION; + + if( xTicksToWait > ( TickType_t ) 0 ) + { + prvAddCurrentTaskToDelayedList( xTicksToWait, pdTRUE ); + traceTASK_NOTIFY_TAKE_BLOCK(); + + /* All ports are written to allow a yield in a critical + section (some will yield immediately, others wait until the + critical section exits) - but it is not something that + application code should ever do. */ + portYIELD_WITHIN_API(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + taskENTER_CRITICAL(); + { + traceTASK_NOTIFY_TAKE(); + ulReturn = pxCurrentTCB->ulNotifiedValue; + + if( ulReturn != 0UL ) + { + if( xClearCountOnExit != pdFALSE ) + { + pxCurrentTCB->ulNotifiedValue = 0UL; + } + else + { + pxCurrentTCB->ulNotifiedValue = ulReturn - 1; + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + pxCurrentTCB->ucNotifyState = taskNOT_WAITING_NOTIFICATION; + } + taskEXIT_CRITICAL(); + + return ulReturn; + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ) + { + BaseType_t xReturn; + + taskENTER_CRITICAL(); + { + /* Only block if a notification is not already pending. */ + if( pxCurrentTCB->ucNotifyState != taskNOTIFICATION_RECEIVED ) + { + /* Clear bits in the task's notification value as bits may get + set by the notifying task or interrupt. This can be used to + clear the value to zero. */ + pxCurrentTCB->ulNotifiedValue &= ~ulBitsToClearOnEntry; + + /* Mark this task as waiting for a notification. */ + pxCurrentTCB->ucNotifyState = taskWAITING_NOTIFICATION; + + if( xTicksToWait > ( TickType_t ) 0 ) + { + prvAddCurrentTaskToDelayedList( xTicksToWait, pdTRUE ); + traceTASK_NOTIFY_WAIT_BLOCK(); + + /* All ports are written to allow a yield in a critical + section (some will yield immediately, others wait until the + critical section exits) - but it is not something that + application code should ever do. */ + portYIELD_WITHIN_API(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + taskENTER_CRITICAL(); + { + traceTASK_NOTIFY_WAIT(); + + if( pulNotificationValue != NULL ) + { + /* Output the current notification value, which may or may not + have changed. */ + *pulNotificationValue = pxCurrentTCB->ulNotifiedValue; + } + + /* If ucNotifyValue is set then either the task never entered the + blocked state (because a notification was already pending) or the + task unblocked because of a notification. Otherwise the task + unblocked because of a timeout. */ + if( pxCurrentTCB->ucNotifyState == taskWAITING_NOTIFICATION ) + { + /* A notification was not received. */ + xReturn = pdFALSE; + } + else + { + /* A notification was already pending or a notification was + received while the task was waiting. */ + pxCurrentTCB->ulNotifiedValue &= ~ulBitsToClearOnExit; + xReturn = pdTRUE; + } + + pxCurrentTCB->ucNotifyState = taskNOT_WAITING_NOTIFICATION; + } + taskEXIT_CRITICAL(); + + return xReturn; + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + BaseType_t xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ) + { + TCB_t * pxTCB; + BaseType_t xReturn = pdPASS; + uint8_t ucOriginalNotifyState; + + configASSERT( xTaskToNotify ); + pxTCB = ( TCB_t * ) xTaskToNotify; + + taskENTER_CRITICAL(); + { + if( pulPreviousNotificationValue != NULL ) + { + *pulPreviousNotificationValue = pxTCB->ulNotifiedValue; + } + + ucOriginalNotifyState = pxTCB->ucNotifyState; + + pxTCB->ucNotifyState = taskNOTIFICATION_RECEIVED; + + switch( eAction ) + { + case eSetBits : + pxTCB->ulNotifiedValue |= ulValue; + break; + + case eIncrement : + ( pxTCB->ulNotifiedValue )++; + break; + + case eSetValueWithOverwrite : + pxTCB->ulNotifiedValue = ulValue; + break; + + case eSetValueWithoutOverwrite : + if( ucOriginalNotifyState != taskNOTIFICATION_RECEIVED ) + { + pxTCB->ulNotifiedValue = ulValue; + } + else + { + /* The value could not be written to the task. */ + xReturn = pdFAIL; + } + break; + + case eNoAction: + /* The task is being notified without its notify value being + updated. */ + break; + } + + traceTASK_NOTIFY(); + + /* If the task is in the blocked state specifically to wait for a + notification then unblock it now. */ + if( ucOriginalNotifyState == taskWAITING_NOTIFICATION ) + { + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); + prvAddTaskToReadyList( pxTCB ); + + /* The task should not have been on an event list. */ + configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); + + #if( configUSE_TICKLESS_IDLE != 0 ) + { + /* If a task is blocked waiting for a notification then + xNextTaskUnblockTime might be set to the blocked task's time + out time. If the task is unblocked for a reason other than + a timeout xNextTaskUnblockTime is normally left unchanged, + because it will automatically get reset to a new value when + the tick count equals xNextTaskUnblockTime. However if + tickless idling is used it might be more important to enter + sleep mode at the earliest possible time - so reset + xNextTaskUnblockTime here to ensure it is updated at the + earliest possible time. */ + prvResetNextTaskUnblockTime(); + } + #endif + + if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) + { + /* The notified task has a priority above the currently + executing task so a yield is required. */ + taskYIELD_IF_USING_PREEMPTION(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + return xReturn; + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + BaseType_t xTaskGenericNotifyFromISR( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue, BaseType_t *pxHigherPriorityTaskWoken ) + { + TCB_t * pxTCB; + uint8_t ucOriginalNotifyState; + BaseType_t xReturn = pdPASS; + UBaseType_t uxSavedInterruptStatus; + + configASSERT( xTaskToNotify ); + + /* RTOS ports that support interrupt nesting have the concept of a + maximum system call (or maximum API call) interrupt priority. + Interrupts that are above the maximum system call priority are keep + permanently enabled, even when the RTOS kernel is in a critical section, + but cannot make any calls to FreeRTOS API functions. If configASSERT() + is defined in FreeRTOSConfig.h then + portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion + failure if a FreeRTOS API function is called from an interrupt that has + been assigned a priority above the configured maximum system call + priority. Only FreeRTOS functions that end in FromISR can be called + from interrupts that have been assigned a priority at or (logically) + below the maximum system call interrupt priority. FreeRTOS maintains a + separate interrupt safe API to ensure interrupt entry is as fast and as + simple as possible. More information (albeit Cortex-M specific) is + provided on the following link: + http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); + + pxTCB = ( TCB_t * ) xTaskToNotify; + + uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); + { + if( pulPreviousNotificationValue != NULL ) + { + *pulPreviousNotificationValue = pxTCB->ulNotifiedValue; + } + + ucOriginalNotifyState = pxTCB->ucNotifyState; + pxTCB->ucNotifyState = taskNOTIFICATION_RECEIVED; + + switch( eAction ) + { + case eSetBits : + pxTCB->ulNotifiedValue |= ulValue; + break; + + case eIncrement : + ( pxTCB->ulNotifiedValue )++; + break; + + case eSetValueWithOverwrite : + pxTCB->ulNotifiedValue = ulValue; + break; + + case eSetValueWithoutOverwrite : + if( ucOriginalNotifyState != taskNOTIFICATION_RECEIVED ) + { + pxTCB->ulNotifiedValue = ulValue; + } + else + { + /* The value could not be written to the task. */ + xReturn = pdFAIL; + } + break; + + case eNoAction : + /* The task is being notified without its notify value being + updated. */ + break; + } + + traceTASK_NOTIFY_FROM_ISR(); + + /* If the task is in the blocked state specifically to wait for a + notification then unblock it now. */ + if( ucOriginalNotifyState == taskWAITING_NOTIFICATION ) + { + /* The task should not have been on an event list. */ + configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); + + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) + { + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); + prvAddTaskToReadyList( pxTCB ); + } + else + { + /* The delayed and ready lists cannot be accessed, so hold + this task pending until the scheduler is resumed. */ + vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); + } + + if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) + { + /* The notified task has a priority above the currently + executing task so a yield is required. */ + if( pxHigherPriorityTaskWoken != NULL ) + { + *pxHigherPriorityTaskWoken = pdTRUE; + } + else + { + /* Mark that a yield is pending in case the user is not + using the "xHigherPriorityTaskWoken" parameter to an ISR + safe FreeRTOS function. */ + xYieldPending = pdTRUE; + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return xReturn; + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken ) + { + TCB_t * pxTCB; + uint8_t ucOriginalNotifyState; + UBaseType_t uxSavedInterruptStatus; + + configASSERT( xTaskToNotify ); + + /* RTOS ports that support interrupt nesting have the concept of a + maximum system call (or maximum API call) interrupt priority. + Interrupts that are above the maximum system call priority are keep + permanently enabled, even when the RTOS kernel is in a critical section, + but cannot make any calls to FreeRTOS API functions. If configASSERT() + is defined in FreeRTOSConfig.h then + portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion + failure if a FreeRTOS API function is called from an interrupt that has + been assigned a priority above the configured maximum system call + priority. Only FreeRTOS functions that end in FromISR can be called + from interrupts that have been assigned a priority at or (logically) + below the maximum system call interrupt priority. FreeRTOS maintains a + separate interrupt safe API to ensure interrupt entry is as fast and as + simple as possible. More information (albeit Cortex-M specific) is + provided on the following link: + http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); + + pxTCB = ( TCB_t * ) xTaskToNotify; + + uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); + { + ucOriginalNotifyState = pxTCB->ucNotifyState; + pxTCB->ucNotifyState = taskNOTIFICATION_RECEIVED; + + /* 'Giving' is equivalent to incrementing a count in a counting + semaphore. */ + ( pxTCB->ulNotifiedValue )++; + + traceTASK_NOTIFY_GIVE_FROM_ISR(); + + /* If the task is in the blocked state specifically to wait for a + notification then unblock it now. */ + if( ucOriginalNotifyState == taskWAITING_NOTIFICATION ) + { + /* The task should not have been on an event list. */ + configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); + + if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) + { + ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); + prvAddTaskToReadyList( pxTCB ); + } + else + { + /* The delayed and ready lists cannot be accessed, so hold + this task pending until the scheduler is resumed. */ + vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); + } + + if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) + { + /* The notified task has a priority above the currently + executing task so a yield is required. */ + if( pxHigherPriorityTaskWoken != NULL ) + { + *pxHigherPriorityTaskWoken = pdTRUE; + } + else + { + /* Mark that a yield is pending in case the user is not + using the "xHigherPriorityTaskWoken" parameter in an ISR + safe FreeRTOS function. */ + xYieldPending = pdTRUE; + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ + +/*-----------------------------------------------------------*/ + +#if( configUSE_TASK_NOTIFICATIONS == 1 ) + + BaseType_t xTaskNotifyStateClear( TaskHandle_t xTask ) + { + TCB_t *pxTCB; + BaseType_t xReturn; + + /* If null is passed in here then it is the calling task that is having + its notification state cleared. */ + pxTCB = prvGetTCBFromHandle( xTask ); + + taskENTER_CRITICAL(); + { + if( pxTCB->ucNotifyState == taskNOTIFICATION_RECEIVED ) + { + pxTCB->ucNotifyState = taskNOT_WAITING_NOTIFICATION; + xReturn = pdPASS; + } + else + { + xReturn = pdFAIL; + } + } + taskEXIT_CRITICAL(); + + return xReturn; + } + +#endif /* configUSE_TASK_NOTIFICATIONS */ +/*-----------------------------------------------------------*/ +static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely ) +{ +TickType_t xTimeToWake; +const TickType_t xConstTickCount = xTickCount; + + #if( INCLUDE_xTaskAbortDelay == 1 ) + { + /* About to enter a delayed list, so ensure the ucDelayAborted flag is + reset to pdFALSE so it can be detected as having been set to pdTRUE + when the task leaves the Blocked state. */ + pxCurrentTCB->ucDelayAborted = pdFALSE; + } + #endif + + /* Remove the task from the ready list before adding it to the blocked list + as the same list item is used for both lists. */ + if( uxListRemove( &( pxCurrentTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) + { + /* The current task must be in a ready list, so there is no need to + check, and the port reset macro can be called directly. */ + portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + #if ( INCLUDE_vTaskSuspend == 1 ) + { + if( ( xTicksToWait == portMAX_DELAY ) && ( xCanBlockIndefinitely != pdFALSE ) ) + { + /* Add the task to the suspended task list instead of a delayed task + list to ensure it is not woken by a timing event. It will block + indefinitely. */ + vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xStateListItem ) ); + } + else + { + /* Calculate the time at which the task should be woken if the event + does not occur. This may overflow but this doesn't matter, the + kernel will manage it correctly. */ + xTimeToWake = xConstTickCount + xTicksToWait; + + /* The list item will be inserted in wake time order. */ + listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xStateListItem ), xTimeToWake ); + + if( xTimeToWake < xConstTickCount ) + { + /* Wake time has overflowed. Place this item in the overflow + list. */ + vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); + } + else + { + /* The wake time has not overflowed, so the current block list + is used. */ + vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); + + /* If the task entering the blocked state was placed at the + head of the list of blocked tasks then xNextTaskUnblockTime + needs to be updated too. */ + if( xTimeToWake < xNextTaskUnblockTime ) + { + xNextTaskUnblockTime = xTimeToWake; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + } + } + #else /* INCLUDE_vTaskSuspend */ + { + /* Calculate the time at which the task should be woken if the event + does not occur. This may overflow but this doesn't matter, the kernel + will manage it correctly. */ + xTimeToWake = xConstTickCount + xTicksToWait; + + /* The list item will be inserted in wake time order. */ + listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xStateListItem ), xTimeToWake ); + + if( xTimeToWake < xConstTickCount ) + { + /* Wake time has overflowed. Place this item in the overflow list. */ + vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); + } + else + { + /* The wake time has not overflowed, so the current block list is used. */ + vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); + + /* If the task entering the blocked state was placed at the head of the + list of blocked tasks then xNextTaskUnblockTime needs to be updated + too. */ + if( xTimeToWake < xNextTaskUnblockTime ) + { + xNextTaskUnblockTime = xTimeToWake; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + + /* Avoid compiler warning when INCLUDE_vTaskSuspend is not 1. */ + ( void ) xCanBlockIndefinitely; + } + #endif /* INCLUDE_vTaskSuspend */ +} + + +#ifdef FREERTOS_MODULE_TEST + #include "tasks_test_access_functions.h" +#endif diff --git a/FreeRTOS/Source/timers.c b/FreeRTOS/Source/timers.c index 783a461..d4a821a 100644 --- a/FreeRTOS/Source/timers.c +++ b/FreeRTOS/Source/timers.c @@ -1,59 +1,64 @@ /* - FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. + FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - This file is part of the FreeRTOS distribution. FreeRTOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following + FOR A PARTICULAR PURPOSE. Full license text is available on the following link: http://www.freertos.org/a00114.html - 1 tab == 4 spaces! - *************************************************************************** * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that is more than just the market leader, it * + * is the industry's de facto standard. * * * - * http://www.FreeRTOS.org/FAQHelp.html * + * Help yourself get started quickly while simultaneously helping * + * to support the FreeRTOS project by purchasing a FreeRTOS * + * tutorial book, reference manual, or both: * + * http://www.FreeRTOS.org/Documentation * * * *************************************************************************** - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. + http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading + the FAQ page "My application does not run, what could be wrong?". Have you + defined configASSERT()? + + http://www.FreeRTOS.org/support - In return for receiving this top quality + embedded software for free we request you assist our global community by + participating in the support forum. + + http://www.FreeRTOS.org/training - Investing in training allows your team to + be as productive as possible as early as possible. Now you can receive + FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers + Ltd, and the world's leading authority on the world's leading RTOS. http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, including FreeRTOS+Trace - an indispensable productivity tool, a DOS compatible FAT file system, and our tiny thread aware UDP/IP stack. - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. + http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. + Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. + + http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High + Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and commercial middleware. http://www.SafeRTOS.com - High Integrity Systems also provide a safety engineered and independently SIL3 certified version for use in safety and @@ -75,6 +80,10 @@ task.h is included from an application file. */ #include "queue.h" #include "timers.h" +#if ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 0 ) + #error configUSE_TIMERS must be set to 1 to make the xTimerPendFunctionCall() function available. +#endif + /* Lint e961 and e750 are suppressed as a MISRA exception justified because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the header files above, but not in this file, in order to generate the correct @@ -89,52 +98,95 @@ configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ #if ( configUSE_TIMERS == 1 ) /* Misc definitions. */ -#define tmrNO_DELAY ( portTickType ) 0U +#define tmrNO_DELAY ( TickType_t ) 0U /* The definition of the timers themselves. */ typedef struct tmrTimerControl { - const signed char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ - xListItem xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ - portTickType xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ - unsigned portBASE_TYPE uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one shot timer. */ + const char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + ListItem_t xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ + TickType_t xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ + UBaseType_t uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one-shot timer. */ void *pvTimerID; /*<< An ID to identify the timer. This allows the timer to be identified when the same callback is used for multiple timers. */ - tmrTIMER_CALLBACK pxCallbackFunction; /*<< The function that will be called when the timer expires. */ + TimerCallbackFunction_t pxCallbackFunction; /*<< The function that will be called when the timer expires. */ + #if( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxTimerNumber; /*<< An ID assigned by trace tools such as FreeRTOS+Trace */ + #endif + + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + uint8_t ucStaticallyAllocated; /*<< Set to pdTRUE if the timer was created statically so no attempt is made to free the memory again if the timer is later deleted. */ + #endif } xTIMER; -/* The definition of messages that can be sent and received on the timer -queue. */ +/* The old xTIMER name is maintained above then typedefed to the new Timer_t +name below to enable the use of older kernel aware debuggers. */ +typedef xTIMER Timer_t; + +/* The definition of messages that can be sent and received on the timer queue. +Two types of message can be queued - messages that manipulate a software timer, +and messages that request the execution of a non-timer related callback. The +two message types are defined in two separate structures, xTimerParametersType +and xCallbackParametersType respectively. */ +typedef struct tmrTimerParameters +{ + TickType_t xMessageValue; /*<< An optional value used by a subset of commands, for example, when changing the period of a timer. */ + Timer_t * pxTimer; /*<< The timer to which the command will be applied. */ +} TimerParameter_t; + + +typedef struct tmrCallbackParameters +{ + PendedFunction_t pxCallbackFunction; /* << The callback function to execute. */ + void *pvParameter1; /* << The value that will be used as the callback functions first parameter. */ + uint32_t ulParameter2; /* << The value that will be used as the callback functions second parameter. */ +} CallbackParameters_t; + +/* The structure that contains the two message types, along with an identifier +that is used to determine which message type is valid. */ typedef struct tmrTimerQueueMessage { - portBASE_TYPE xMessageID; /*<< The command being sent to the timer service task. */ - portTickType xMessageValue; /*<< An optional value used by a subset of commands, for example, when changing the period of a timer. */ - xTIMER * pxTimer; /*<< The timer to which the command will be applied. */ -} xTIMER_MESSAGE; + BaseType_t xMessageID; /*<< The command being sent to the timer service task. */ + union + { + TimerParameter_t xTimerParameters; + + /* Don't include xCallbackParameters if it is not going to be used as + it makes the structure (and therefore the timer queue) larger. */ + #if ( INCLUDE_xTimerPendFunctionCall == 1 ) + CallbackParameters_t xCallbackParameters; + #endif /* INCLUDE_xTimerPendFunctionCall */ + } u; +} DaemonTaskMessage_t; /*lint -e956 A manual analysis and inspection has been used to determine which static variables must be declared volatile. */ /* The list in which active timers are stored. Timers are referenced in expire time order, with the nearest expiry time at the front of the list. Only the -timer service task is allowed to access xActiveTimerList. */ -PRIVILEGED_DATA static xList xActiveTimerList1; -PRIVILEGED_DATA static xList xActiveTimerList2; -PRIVILEGED_DATA static xList *pxCurrentTimerList; -PRIVILEGED_DATA static xList *pxOverflowTimerList; +timer service task is allowed to access these lists. */ +PRIVILEGED_DATA static List_t xActiveTimerList1; +PRIVILEGED_DATA static List_t xActiveTimerList2; +PRIVILEGED_DATA static List_t *pxCurrentTimerList; +PRIVILEGED_DATA static List_t *pxOverflowTimerList; /* A queue that is used to send commands to the timer service task. */ -PRIVILEGED_DATA static xQueueHandle xTimerQueue = NULL; - -#if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) - - PRIVILEGED_DATA static xTaskHandle xTimerTaskHandle = NULL; - -#endif +PRIVILEGED_DATA static QueueHandle_t xTimerQueue = NULL; +PRIVILEGED_DATA static TaskHandle_t xTimerTaskHandle = NULL; /*lint +e956 */ /*-----------------------------------------------------------*/ +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + + /* If static allocation is supported then the application must provide the + following callback function - which enables the application to optionally + provide the memory that will be used by the timer task as the task's stack + and TCB. */ + extern void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize ); + +#endif + /* * Initialise the infrastructure used by the timer service task if it has not * been initialised already. @@ -152,31 +204,31 @@ static void prvTimerTask( void *pvParameters ) PRIVILEGED_FUNCTION; * Called by the timer service task to interpret and process a command it * received on the timer queue. */ -static void prvProcessReceivedCommands( void ) PRIVILEGED_FUNCTION; +static void prvProcessReceivedCommands( void ) PRIVILEGED_FUNCTION; /* * Insert the timer into either xActiveTimerList1, or xActiveTimerList2, * depending on if the expire time causes a timer counter overflow. */ -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) PRIVILEGED_FUNCTION; +static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime ) PRIVILEGED_FUNCTION; /* * An active timer has reached its expire time. Reload the timer if it is an * auto reload timer, then call its callback. */ -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) PRIVILEGED_FUNCTION; +static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow ) PRIVILEGED_FUNCTION; /* * The tick count has overflowed. Switch the timer lists after ensuring the * current timer list does not still reference some timers. */ -static void prvSwitchTimerLists( portTickType xLastTime ) PRIVILEGED_FUNCTION; +static void prvSwitchTimerLists( void ) PRIVILEGED_FUNCTION; /* * Obtain the current tick count, setting *pxTimerListsWereSwitched to pdTRUE * if a tick count overflow occurred since prvSampleTimeNow() was last called. */ -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) PRIVILEGED_FUNCTION; +static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched ) PRIVILEGED_FUNCTION; /* * If the timer list contains any active timers then return the expire time of @@ -184,19 +236,29 @@ static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) * timer list does not contain any timers then return 0 and set *pxListWasEmpty * to pdTRUE. */ -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) PRIVILEGED_FUNCTION; +static TickType_t prvGetNextExpireTime( BaseType_t * const pxListWasEmpty ) PRIVILEGED_FUNCTION; /* * If a timer has expired, process it. Otherwise, block the timer service task * until either a timer does expire or a command is received. */ -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) PRIVILEGED_FUNCTION; +static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, BaseType_t xListWasEmpty ) PRIVILEGED_FUNCTION; +/* + * Called after a Timer_t structure has been allocated either statically or + * dynamically to fill in the structure's members. + */ +static void prvInitialiseNewTimer( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction, + Timer_t *pxNewTimer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ /*-----------------------------------------------------------*/ -portBASE_TYPE xTimerCreateTimerTask( void ) +BaseType_t xTimerCreateTimerTask( void ) { -portBASE_TYPE xReturn = pdFAIL; +BaseType_t xReturn = pdFAIL; /* This function is called when the scheduler is started if configUSE_TIMERS is set to 1. Check that the infrastructure used by the @@ -206,18 +268,40 @@ portBASE_TYPE xReturn = pdFAIL; if( xTimerQueue != NULL ) { - #if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { - /* Create the timer task, storing its handle in xTimerTaskHandle so - it can be returned by the xTimerGetTimerDaemonTaskHandle() function. */ - xReturn = xTaskCreate( prvTimerTask, ( const signed char * ) "Tmr Svc", ( unsigned short ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, &xTimerTaskHandle ); + StaticTask_t *pxTimerTaskTCBBuffer = NULL; + StackType_t *pxTimerTaskStackBuffer = NULL; + uint32_t ulTimerTaskStackSize; + + vApplicationGetTimerTaskMemory( &pxTimerTaskTCBBuffer, &pxTimerTaskStackBuffer, &ulTimerTaskStackSize ); + xTimerTaskHandle = xTaskCreateStatic( prvTimerTask, + "Tmr Svc", + ulTimerTaskStackSize, + NULL, + ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, + pxTimerTaskStackBuffer, + pxTimerTaskTCBBuffer ); + + if( xTimerTaskHandle != NULL ) + { + xReturn = pdPASS; + } } #else { - /* Create the timer task without storing its handle. */ - xReturn = xTaskCreate( prvTimerTask, ( const signed char * ) "Tmr Svc", ( unsigned short ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, NULL); + xReturn = xTaskCreate( prvTimerTask, + "Tmr Svc", + configTIMER_TASK_STACK_DEPTH, + NULL, + ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, + &xTimerTaskHandle ); } - #endif + #endif /* configSUPPORT_STATIC_ALLOCATION */ + } + else + { + mtCOVERAGE_TEST_MARKER(); } configASSERT( xReturn ); @@ -225,49 +309,117 @@ portBASE_TYPE xReturn = pdFAIL; } /*-----------------------------------------------------------*/ -xTimerHandle xTimerCreate( const signed char * const pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void *pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) -{ -xTIMER *pxNewTimer; +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) - /* Allocate the timer structure. */ - if( xTimerPeriodInTicks == ( portTickType ) 0U ) + TimerHandle_t xTimerCreate( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { - pxNewTimer = NULL; - configASSERT( ( xTimerPeriodInTicks > 0 ) ); - } - else - { - pxNewTimer = ( xTIMER * ) pvPortMalloc( sizeof( xTIMER ) ); + Timer_t *pxNewTimer; + + pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); + if( pxNewTimer != NULL ) { - /* Ensure the infrastructure used by the timer service task has been - created/initialised. */ - prvCheckForValidListAndQueue(); + prvInitialiseNewTimer( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxNewTimer ); - /* Initialise the timer structure members using the function parameters. */ - pxNewTimer->pcTimerName = pcTimerName; - pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; - pxNewTimer->uxAutoReload = uxAutoReload; - pxNewTimer->pvTimerID = pvTimerID; - pxNewTimer->pxCallbackFunction = pxCallbackFunction; - vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + { + /* Timers can be created statically or dynamically, so note this + timer was created dynamically in case the timer is later + deleted. */ + pxNewTimer->ucStaticallyAllocated = pdFALSE; + } + #endif /* configSUPPORT_STATIC_ALLOCATION */ + } - traceTIMER_CREATE( pxNewTimer ); - } - else - { - traceTIMER_CREATE_FAILED(); - } + return pxNewTimer; } - return ( xTimerHandle ) pxNewTimer; +#endif /* configSUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + + TimerHandle_t xTimerCreateStatic( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction, + StaticTimer_t *pxTimerBuffer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + { + Timer_t *pxNewTimer; + + #if( configASSERT_DEFINED == 1 ) + { + /* Sanity check that the size of the structure used to declare a + variable of type StaticTimer_t equals the size of the real timer + structures. */ + volatile size_t xSize = sizeof( StaticTimer_t ); + configASSERT( xSize == sizeof( Timer_t ) ); + } + #endif /* configASSERT_DEFINED */ + + /* A pointer to a StaticTimer_t structure MUST be provided, use it. */ + configASSERT( pxTimerBuffer ); + pxNewTimer = ( Timer_t * ) pxTimerBuffer; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + + if( pxNewTimer != NULL ) + { + prvInitialiseNewTimer( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxNewTimer ); + + #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + { + /* Timers can be created statically or dynamically so note this + timer was created statically in case it is later deleted. */ + pxNewTimer->ucStaticallyAllocated = pdTRUE; + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + } + + return pxNewTimer; + } + +#endif /* configSUPPORT_STATIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +static void prvInitialiseNewTimer( const char * const pcTimerName, + const TickType_t xTimerPeriodInTicks, + const UBaseType_t uxAutoReload, + void * const pvTimerID, + TimerCallbackFunction_t pxCallbackFunction, + Timer_t *pxNewTimer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +{ + /* 0 is not a valid value for xTimerPeriodInTicks. */ + configASSERT( ( xTimerPeriodInTicks > 0 ) ); + + if( pxNewTimer != NULL ) + { + /* Ensure the infrastructure used by the timer service task has been + created/initialised. */ + prvCheckForValidListAndQueue(); + + /* Initialise the timer structure members using the function + parameters. */ + pxNewTimer->pcTimerName = pcTimerName; + pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; + pxNewTimer->uxAutoReload = uxAutoReload; + pxNewTimer->pvTimerID = pvTimerID; + pxNewTimer->pxCallbackFunction = pxCallbackFunction; + vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); + traceTIMER_CREATE( pxNewTimer ); + } } /*-----------------------------------------------------------*/ -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) +BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) { -portBASE_TYPE xReturn = pdFAIL; -xTIMER_MESSAGE xMessage; +BaseType_t xReturn = pdFAIL; +DaemonTaskMessage_t xMessage; + + configASSERT( xTimer ); /* Send a message to the timer service task to perform a particular action on a particular timer definition. */ @@ -275,14 +427,14 @@ xTIMER_MESSAGE xMessage; { /* Send a command to the timer service task to start the xTimer timer. */ xMessage.xMessageID = xCommandID; - xMessage.xMessageValue = xOptionalValue; - xMessage.pxTimer = ( xTIMER * ) xTimer; + xMessage.u.xTimerParameters.xMessageValue = xOptionalValue; + xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer; - if( pxHigherPriorityTaskWoken == NULL ) + if( xCommandID < tmrFIRST_FROM_ISR_COMMAND ) { if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) { - xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xBlockTime ); + xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait ); } else { @@ -296,68 +448,113 @@ xTIMER_MESSAGE xMessage; traceTIMER_COMMAND_SEND( xTimer, xCommandID, xOptionalValue, xReturn ); } + else + { + mtCOVERAGE_TEST_MARKER(); + } return xReturn; } /*-----------------------------------------------------------*/ -#if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) - - xTaskHandle xTimerGetTimerDaemonTaskHandle( void ) - { - /* If xTimerGetTimerDaemonTaskHandle() is called before the scheduler has been - started, then xTimerTaskHandle will be NULL. */ - configASSERT( ( xTimerTaskHandle != NULL ) ); - return xTimerTaskHandle; - } - -#endif +TaskHandle_t xTimerGetTimerDaemonTaskHandle( void ) +{ + /* If xTimerGetTimerDaemonTaskHandle() is called before the scheduler has been + started, then xTimerTaskHandle will be NULL. */ + configASSERT( ( xTimerTaskHandle != NULL ) ); + return xTimerTaskHandle; +} /*-----------------------------------------------------------*/ -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) +TickType_t xTimerGetPeriod( TimerHandle_t xTimer ) { -xTIMER *pxTimer; -portBASE_TYPE xResult; +Timer_t *pxTimer = ( Timer_t * ) xTimer; + + configASSERT( xTimer ); + return pxTimer->xTimerPeriodInTicks; +} +/*-----------------------------------------------------------*/ + +TickType_t xTimerGetExpiryTime( TimerHandle_t xTimer ) +{ +Timer_t * pxTimer = ( Timer_t * ) xTimer; +TickType_t xReturn; + + configASSERT( xTimer ); + xReturn = listGET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ) ); + return xReturn; +} +/*-----------------------------------------------------------*/ + +const char * pcTimerGetName( TimerHandle_t xTimer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +{ +Timer_t *pxTimer = ( Timer_t * ) xTimer; + + configASSERT( xTimer ); + return pxTimer->pcTimerName; +} +/*-----------------------------------------------------------*/ + +static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow ) +{ +BaseType_t xResult; +Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /* Remove the timer from the list of active timers. A check has already been performed to ensure the list is not empty. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); traceTIMER_EXPIRED( pxTimer ); /* If the timer is an auto reload timer then calculate the next expiry time and re-insert the timer in the list of active timers. */ - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) + if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) { - /* This is the only time a timer is inserted into a list using - a time relative to anything other than the current time. It - will therefore be inserted into the correct list relative to - the time this task thinks it is now, even if a command to - switch lists due to a tick count overflow is already waiting in - the timer queue. */ - if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) == pdTRUE ) + /* The timer is inserted into a list using a time relative to anything + other than the current time. It will therefore be inserted into the + correct list relative to the time this task thinks it is now. */ + if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) != pdFALSE ) { /* The timer expired before it was added to the active timer list. Reload it now. */ - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); + xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY ); configASSERT( xResult ); ( void ) xResult; } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); } /* Call the timer callback. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); + pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); } /*-----------------------------------------------------------*/ static void prvTimerTask( void *pvParameters ) { -portTickType xNextExpireTime; -portBASE_TYPE xListWasEmpty; +TickType_t xNextExpireTime; +BaseType_t xListWasEmpty; /* Just to avoid compiler warnings. */ ( void ) pvParameters; + #if( configUSE_DAEMON_TASK_STARTUP_HOOK == 1 ) + { + extern void vApplicationDaemonTaskStartupHook( void ); + + /* Allow the application writer to execute some code in the context of + this task at the point the task starts executing. This is useful if the + application includes initialisation code that would benefit from + executing after the scheduler has been started. */ + vApplicationDaemonTaskStartupHook(); + } + #endif /* configUSE_DAEMON_TASK_STARTUP_HOOK */ + for( ;; ) { /* Query the timers list to see if it contains any timers, and if so, @@ -374,10 +571,10 @@ portBASE_TYPE xListWasEmpty; } /*-----------------------------------------------------------*/ -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) +static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, BaseType_t xListWasEmpty ) { -portTickType xTimeNow; -portBASE_TYPE xTimerListsWereSwitched; +TickType_t xTimeNow; +BaseType_t xTimerListsWereSwitched; vTaskSuspendAll(); { @@ -385,7 +582,7 @@ portBASE_TYPE xTimerListsWereSwitched; has expired or not. If obtaining the time causes the lists to switch then don't process this timer as any timers that remained in the list when the lists were switched will have been processed within the - prvSampelTimeNow() function. */ + prvSampleTimeNow() function. */ xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); if( xTimerListsWereSwitched == pdFALSE ) { @@ -403,16 +600,27 @@ portBASE_TYPE xTimerListsWereSwitched; received - whichever comes first. The following line cannot be reached unless xNextExpireTime > xTimeNow, except in the case when the current timer list is empty. */ - vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ) ); + if( xListWasEmpty != pdFALSE ) + { + /* The current timer list is empty - is the overflow list + also empty? */ + xListWasEmpty = listLIST_IS_EMPTY( pxOverflowTimerList ); + } + + vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ), xListWasEmpty ); if( xTaskResumeAll() == pdFALSE ) { - /* Yield to wait for either a command to arrive, or the block time - to expire. If a command arrived between the critical section being - exited and this yield then the yield will not cause the task - to block. */ + /* Yield to wait for either a command to arrive, or the + block time to expire. If a command arrived between the + critical section being exited and this yield then the yield + will not cause the task to block. */ portYIELD_WITHIN_API(); } + else + { + mtCOVERAGE_TEST_MARKER(); + } } } else @@ -423,9 +631,9 @@ portBASE_TYPE xTimerListsWereSwitched; } /*-----------------------------------------------------------*/ -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) +static TickType_t prvGetNextExpireTime( BaseType_t * const pxListWasEmpty ) { -portTickType xNextExpireTime; +TickType_t xNextExpireTime; /* Timers are listed in expiry time order, with the head of the list referencing the task that will expire first. Obtain the time at which @@ -442,23 +650,23 @@ portTickType xNextExpireTime; else { /* Ensure the task unblocks when the tick count rolls over. */ - xNextExpireTime = ( portTickType ) 0U; + xNextExpireTime = ( TickType_t ) 0U; } return xNextExpireTime; } /*-----------------------------------------------------------*/ -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) +static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched ) { -portTickType xTimeNow; -PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U; /*lint !e956 Variable is only accessible to one task. */ +TickType_t xTimeNow; +PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */ xTimeNow = xTaskGetTickCount(); if( xTimeNow < xLastTime ) { - prvSwitchTimerLists( xLastTime ); + prvSwitchTimerLists(); *pxTimerListsWereSwitched = pdTRUE; } else @@ -472,9 +680,9 @@ PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U; /*lint !e95 } /*-----------------------------------------------------------*/ -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) +static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime ) { -portBASE_TYPE xProcessTimerNow = pdFALSE; +BaseType_t xProcessTimerNow = pdFALSE; listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime ); listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); @@ -483,7 +691,7 @@ portBASE_TYPE xProcessTimerNow = pdFALSE; { /* Has the expiry time elapsed between the command to start/reset a timer was issued, and the time the command was processed? */ - if( ( xTimeNow - xCommandTime ) >= pxTimer->xTimerPeriodInTicks ) + if( ( ( TickType_t ) ( xTimeNow - xCommandTime ) ) >= pxTimer->xTimerPeriodInTicks ) /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ { /* The time between a command being issued and the command being processed actually exceeds the timers period. */ @@ -515,84 +723,157 @@ portBASE_TYPE xProcessTimerNow = pdFALSE; static void prvProcessReceivedCommands( void ) { -xTIMER_MESSAGE xMessage; -xTIMER *pxTimer; -portBASE_TYPE xTimerListsWereSwitched, xResult; -portTickType xTimeNow; +DaemonTaskMessage_t xMessage; +Timer_t *pxTimer; +BaseType_t xTimerListsWereSwitched, xResult; +TickType_t xTimeNow; while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) /*lint !e603 xMessage does not have to be initialised as it is passed out, not in, and it is not used unless xQueueReceive() returns pdTRUE. */ { - pxTimer = xMessage.pxTimer; - - if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) + #if ( INCLUDE_xTimerPendFunctionCall == 1 ) { - /* The timer is in a list, remove it. */ - ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); + /* Negative commands are pended function calls rather than timer + commands. */ + if( xMessage.xMessageID < ( BaseType_t ) 0 ) + { + const CallbackParameters_t * const pxCallback = &( xMessage.u.xCallbackParameters ); + + /* The timer uses the xCallbackParameters member to request a + callback be executed. Check the callback is not NULL. */ + configASSERT( pxCallback ); + + /* Call the function. */ + pxCallback->pxCallbackFunction( pxCallback->pvParameter1, pxCallback->ulParameter2 ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + #endif /* INCLUDE_xTimerPendFunctionCall */ - traceTIMER_COMMAND_RECEIVED( pxTimer, xMessage.xMessageID, xMessage.xMessageValue ); - - /* In this case the xTimerListsWereSwitched parameter is not used, but - it must be present in the function call. prvSampleTimeNow() must be - called after the message is received from xTimerQueue so there is no - possibility of a higher priority task adding a message to the message - queue with a time that is ahead of the timer daemon task (because it - pre-empted the timer daemon task after the xTimeNow value was set). */ - xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); - - switch( xMessage.xMessageID ) + /* Commands that are positive are timer commands rather than pended + function calls. */ + if( xMessage.xMessageID >= ( BaseType_t ) 0 ) { - case tmrCOMMAND_START : - /* Start or restart a timer. */ - if( prvInsertTimerInActiveList( pxTimer, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.xMessageValue ) == pdTRUE ) - { - /* The timer expired before it was added to the active timer - list. Process it now. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); + /* The messages uses the xTimerParameters member to work on a + software timer. */ + pxTimer = xMessage.u.xTimerParameters.pxTimer; - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) + if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) + { + /* The timer is in a list, remove it. */ + ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + traceTIMER_COMMAND_RECEIVED( pxTimer, xMessage.xMessageID, xMessage.u.xTimerParameters.xMessageValue ); + + /* In this case the xTimerListsWereSwitched parameter is not used, but + it must be present in the function call. prvSampleTimeNow() must be + called after the message is received from xTimerQueue so there is no + possibility of a higher priority task adding a message to the message + queue with a time that is ahead of the timer daemon task (because it + pre-empted the timer daemon task after the xTimeNow value was set). */ + xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); + + switch( xMessage.xMessageID ) + { + case tmrCOMMAND_START : + case tmrCOMMAND_START_FROM_ISR : + case tmrCOMMAND_RESET : + case tmrCOMMAND_RESET_FROM_ISR : + case tmrCOMMAND_START_DONT_TRACE : + /* Start or restart a timer. */ + if( prvInsertTimerInActiveList( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) != pdFALSE ) { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; + /* The timer expired before it was added to the active + timer list. Process it now. */ + pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); + traceTIMER_EXPIRED( pxTimer ); + + if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) + { + xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); + configASSERT( xResult ); + ( void ) xResult; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } } - } - break; + else + { + mtCOVERAGE_TEST_MARKER(); + } + break; - case tmrCOMMAND_STOP : - /* The timer has already been removed from the active list. - There is nothing to do here. */ - break; + case tmrCOMMAND_STOP : + case tmrCOMMAND_STOP_FROM_ISR : + /* The timer has already been removed from the active list. + There is nothing to do here. */ + break; - case tmrCOMMAND_CHANGE_PERIOD : - pxTimer->xTimerPeriodInTicks = xMessage.xMessageValue; - configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); - ( void ) prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); - break; + case tmrCOMMAND_CHANGE_PERIOD : + case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR : + pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue; + configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); - case tmrCOMMAND_DELETE : - /* The timer has already been removed from the active list, - just free up the memory. */ - vPortFree( pxTimer ); - break; + /* The new period does not really have a reference, and can + be longer or shorter than the old one. The command time is + therefore set to the current time, and as the period cannot + be zero the next expiry time can only be in the future, + meaning (unlike for the xTimerStart() case above) there is + no fail case that needs to be handled here. */ + ( void ) prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); + break; - default : - /* Don't expect to get here. */ - break; + case tmrCOMMAND_DELETE : + /* The timer has already been removed from the active list, + just free up the memory if the memory was dynamically + allocated. */ + #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) ) + { + /* The timer can only have been allocated dynamically - + free it again. */ + vPortFree( pxTimer ); + } + #elif( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + { + /* The timer could have been allocated statically or + dynamically, so check before attempting to free the + memory. */ + if( pxTimer->ucStaticallyAllocated == ( uint8_t ) pdFALSE ) + { + vPortFree( pxTimer ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + break; + + default : + /* Don't expect to get here. */ + break; + } } } } /*-----------------------------------------------------------*/ -static void prvSwitchTimerLists( portTickType xLastTime ) +static void prvSwitchTimerLists( void ) { -portTickType xNextExpireTime, xReloadTime; -xList *pxTemp; -xTIMER *pxTimer; -portBASE_TYPE xResult; - - /* Remove compiler warnings if configASSERT() is not defined. */ - ( void ) xLastTime; +TickType_t xNextExpireTime, xReloadTime; +List_t *pxTemp; +Timer_t *pxTimer; +BaseType_t xResult; /* The tick count has overflowed. The timer lists must be switched. If there are any timers still referenced from the current timer list @@ -603,15 +884,16 @@ portBASE_TYPE xResult; xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); /* Remove the timer from the list. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); + pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); + traceTIMER_EXPIRED( pxTimer ); /* Execute its callback, then send a command to restart the timer if it is an auto-reload timer. It cannot be restarted here as the lists have not yet been switched. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); + pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) + if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) { /* Calculate the reload value, and if the reload value results in the timer going into the same timer list then it has already expired @@ -628,11 +910,15 @@ portBASE_TYPE xResult; } else { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); + xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY ); configASSERT( xResult ); ( void ) xResult; } } + else + { + mtCOVERAGE_TEST_MARKER(); + } } pxTemp = pxCurrentTimerList; @@ -654,17 +940,50 @@ static void prvCheckForValidListAndQueue( void ) vListInitialise( &xActiveTimerList2 ); pxCurrentTimerList = &xActiveTimerList1; pxOverflowTimerList = &xActiveTimerList2; - xTimerQueue = xQueueCreate( ( unsigned portBASE_TYPE ) configTIMER_QUEUE_LENGTH, sizeof( xTIMER_MESSAGE ) ); + + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + { + /* The timer queue is allocated statically in case + configSUPPORT_DYNAMIC_ALLOCATION is 0. */ + static StaticQueue_t xStaticTimerQueue; + static uint8_t ucStaticTimerQueueStorage[ configTIMER_QUEUE_LENGTH * sizeof( DaemonTaskMessage_t ) ]; + + xTimerQueue = xQueueCreateStatic( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ), &( ucStaticTimerQueueStorage[ 0 ] ), &xStaticTimerQueue ); + } + #else + { + xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) ); + } + #endif + + #if ( configQUEUE_REGISTRY_SIZE > 0 ) + { + if( xTimerQueue != NULL ) + { + vQueueAddToRegistry( xTimerQueue, "TmrQ" ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + #endif /* configQUEUE_REGISTRY_SIZE */ + } + else + { + mtCOVERAGE_TEST_MARKER(); } } taskEXIT_CRITICAL(); } /*-----------------------------------------------------------*/ -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) +BaseType_t xTimerIsTimerActive( TimerHandle_t xTimer ) { -portBASE_TYPE xTimerIsInActiveList; -xTIMER *pxTimer = ( xTIMER * ) xTimer; +BaseType_t xTimerIsInActiveList; +Timer_t *pxTimer = ( Timer_t * ) xTimer; + + configASSERT( xTimer ); /* Is the timer in the list of active timers? */ taskENTER_CRITICAL(); @@ -672,22 +991,98 @@ xTIMER *pxTimer = ( xTIMER * ) xTimer; /* Checking to see if it is in the NULL list in effect checks to see if it is referenced from either the current or the overflow timer lists in one go, but the logic has to be reversed, hence the '!'. */ - xTimerIsInActiveList = !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); + xTimerIsInActiveList = ( BaseType_t ) !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); } taskEXIT_CRITICAL(); return xTimerIsInActiveList; +} /*lint !e818 Can't be pointer to const due to the typedef. */ +/*-----------------------------------------------------------*/ + +void *pvTimerGetTimerID( const TimerHandle_t xTimer ) +{ +Timer_t * const pxTimer = ( Timer_t * ) xTimer; +void *pvReturn; + + configASSERT( xTimer ); + + taskENTER_CRITICAL(); + { + pvReturn = pxTimer->pvTimerID; + } + taskEXIT_CRITICAL(); + + return pvReturn; } /*-----------------------------------------------------------*/ -void *pvTimerGetTimerID( xTimerHandle xTimer ) +void vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) { -xTIMER *pxTimer = ( xTIMER * ) xTimer; +Timer_t * const pxTimer = ( Timer_t * ) xTimer; - return pxTimer->pvTimerID; + configASSERT( xTimer ); + + taskENTER_CRITICAL(); + { + pxTimer->pvTimerID = pvNewID; + } + taskEXIT_CRITICAL(); } /*-----------------------------------------------------------*/ +#if( INCLUDE_xTimerPendFunctionCall == 1 ) + + BaseType_t xTimerPendFunctionCallFromISR( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken ) + { + DaemonTaskMessage_t xMessage; + BaseType_t xReturn; + + /* Complete the message with the function parameters and post it to the + daemon task. */ + xMessage.xMessageID = tmrCOMMAND_EXECUTE_CALLBACK_FROM_ISR; + xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend; + xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1; + xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2; + + xReturn = xQueueSendFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); + + tracePEND_FUNC_CALL_FROM_ISR( xFunctionToPend, pvParameter1, ulParameter2, xReturn ); + + return xReturn; + } + +#endif /* INCLUDE_xTimerPendFunctionCall */ +/*-----------------------------------------------------------*/ + +#if( INCLUDE_xTimerPendFunctionCall == 1 ) + + BaseType_t xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ) + { + DaemonTaskMessage_t xMessage; + BaseType_t xReturn; + + /* This function can only be called after a timer has been created or + after the scheduler has been started because, until then, the timer + queue does not exist. */ + configASSERT( xTimerQueue ); + + /* Complete the message with the function parameters and post it to the + daemon task. */ + xMessage.xMessageID = tmrCOMMAND_EXECUTE_CALLBACK; + xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend; + xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1; + xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2; + + xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait ); + + tracePEND_FUNC_CALL( xFunctionToPend, pvParameter1, ulParameter2, xReturn ); + + return xReturn; + } + +#endif /* INCLUDE_xTimerPendFunctionCall */ +/*-----------------------------------------------------------*/ + /* This entire source file will be skipped if the application is not configured to include software timer functionality. If you want to include software timer functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ diff --git a/README.md b/README.md index 50edf61..1fa76bc 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl ## Open Source Components -* [FreeRTOS](http://www.freertos.org/) V7.5.2 +* [FreeRTOS](http://www.freertos.org/) V9.0.0 * [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v1.4.1, modified via the [esp-lwip project](https://github.com/kadamski/esp-lwip) by @kadamski. * [newlib](https://github.com/projectgus/newlib-xtensa) v2.2.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS. diff --git a/core/app_main.c b/core/app_main.c index ed78025..6662301 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -411,7 +411,7 @@ static __attribute__((noinline)) void user_start_phase2(void) { tcpip_init(NULL, NULL); sdk_wdt_init(); - xTaskCreate(sdk_user_init_task, (signed char *)"uiT", 1024, 0, 14, &sdk_xUserTaskHandle); + xTaskCreate(sdk_user_init_task, "uiT", 1024, 0, 14, &sdk_xUserTaskHandle); vTaskStartScheduler(); } diff --git a/examples/access_point/access_point.c b/examples/access_point/access_point.c index 5a41156..05e344a 100644 --- a/examples/access_point/access_point.c +++ b/examples/access_point/access_point.c @@ -52,7 +52,7 @@ void user_init(void) IP4_ADDR(&first_client_ip, 172, 16, 0, 2); dhcpserver_start(&first_client_ip, 4); - xTaskCreate(telnetTask, (signed char *)"telnetTask", 512, NULL, 2, NULL); + xTaskCreate(telnetTask, "telnetTask", 512, NULL, 2, NULL); } /* Telnet task listens on port 23, returns some status information and then closes diff --git a/examples/aws_iot/aws_iot.c b/examples/aws_iot/aws_iot.c index e6b0f35..8b26b99 100644 --- a/examples/aws_iot/aws_iot.c +++ b/examples/aws_iot/aws_iot.c @@ -274,7 +274,7 @@ void user_init(void) { gpio_write(GPIO_LED, 1); publish_queue = xQueueCreate(3, 16); - xTaskCreate(&wifi_task, (int8_t *) "wifi_task", 256, NULL, 2, NULL); - xTaskCreate(&beat_task, (int8_t *) "beat_task", 256, NULL, 2, NULL); - xTaskCreate(&mqtt_task, (int8_t *) "mqtt_task", 2048, NULL, 2, NULL); + xTaskCreate(&wifi_task, "wifi_task", 256, NULL, 2, NULL); + xTaskCreate(&beat_task, "beat_task", 256, NULL, 2, NULL); + xTaskCreate(&mqtt_task, "mqtt_task", 2048, NULL, 2, NULL); } diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 1539b67..341ac08 100644 --- a/examples/blink/blink.c +++ b/examples/blink/blink.c @@ -54,6 +54,6 @@ void blinkenRegisterTask(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(blinkenTask, (signed char *)"blinkenTask", 256, NULL, 2, NULL); - //xTaskCreate(blinkenRegisterTask, (signed char *)"blinkenRegisterTask", 256, NULL, 2, NULL); + xTaskCreate(blinkenTask, "blinkenTask", 256, NULL, 2, NULL); + //xTaskCreate(blinkenRegisterTask, "blinkenRegisterTask", 256, NULL, 2, NULL); } diff --git a/examples/bmp180_i2c/bmp180_i2c.c b/examples/bmp180_i2c/bmp180_i2c.c index 5aa63f7..d05aca8 100644 --- a/examples/bmp180_i2c/bmp180_i2c.c +++ b/examples/bmp180_i2c/bmp180_i2c.c @@ -113,10 +113,10 @@ void user_init(void) mainqueue = xQueueCreate(10, sizeof(my_event_t)); // Create user interface task - xTaskCreate(bmp180_task, (signed char *)"bmp180_task", 256, &mainqueue, 2, NULL); + xTaskCreate(bmp180_task, "bmp180_task", 256, &mainqueue, 2, NULL); // Create Timer (Trigger a measurement every second) - timerHandle = xTimerCreate((signed char *)"BMP180 Trigger", 1000/portTICK_RATE_MS, pdTRUE, NULL, bmp180_i2c_timer_cb); + timerHandle = xTimerCreate("BMP180 Trigger", 1000/portTICK_RATE_MS, pdTRUE, NULL, bmp180_i2c_timer_cb); if (timerHandle != NULL) { diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c index 6621158..e80d6b0 100644 --- a/examples/bmp280/bmp280_example.c +++ b/examples/bmp280/bmp280_example.c @@ -106,8 +106,8 @@ void user_init(void) i2c_init(scl_pin, sda_pin); #ifdef MODE_FORCED - xTaskCreate(bmp280_task_forced, (signed char *)"bmp280_task", 256, NULL, 2, NULL); + xTaskCreate(bmp280_task_forced, "bmp280_task", 256, NULL, 2, NULL); #else - xTaskCreate(bmp280_task_normal, (signed char *)"bmp280_task", 256, NULL, 2, NULL); + xTaskCreate(bmp280_task_normal, "bmp280_task", 256, NULL, 2, NULL); #endif } diff --git a/examples/button/button.c b/examples/button/button.c index 0b0784d..7bebf81 100644 --- a/examples/button/button.c +++ b/examples/button/button.c @@ -79,6 +79,6 @@ void user_init(void) gpio_enable(gpio, GPIO_INPUT); tsqueue = xQueueCreate(2, sizeof(uint32_t)); - xTaskCreate(buttonIntTask, (signed char *)"buttonIntTask", 256, &tsqueue, 2, NULL); - xTaskCreate(buttonPollTask, (signed char*)"buttonPollTask", 256, NULL, 1, NULL); + xTaskCreate(buttonIntTask, "buttonIntTask", 256, &tsqueue, 2, NULL); + xTaskCreate(buttonPollTask, "buttonPollTask", 256, NULL, 1, NULL); } diff --git a/examples/dht_sensor/dht_sensor.c b/examples/dht_sensor/dht_sensor.c index 425d5c0..b031672 100644 --- a/examples/dht_sensor/dht_sensor.c +++ b/examples/dht_sensor/dht_sensor.c @@ -44,6 +44,6 @@ void dhtMeasurementTask(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(dhtMeasurementTask, (signed char *)"dhtMeasurementTask", 256, NULL, 2, NULL); + xTaskCreate(dhtMeasurementTask, "dhtMeasurementTask", 256, NULL, 2, NULL); } diff --git a/examples/ds18b20_broadcaster/ds18b20_broadcaster.c b/examples/ds18b20_broadcaster/ds18b20_broadcaster.c index def94fd..e5bcfea 100644 --- a/examples/ds18b20_broadcaster/ds18b20_broadcaster.c +++ b/examples/ds18b20_broadcaster/ds18b20_broadcaster.c @@ -119,6 +119,6 @@ void user_init(void) sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); - xTaskCreate(&broadcast_temperature, (signed char *)"broadcast_temperature", 256, NULL, 2, NULL); + xTaskCreate(&broadcast_temperature, "broadcast_temperature", 256, NULL, 2, NULL); } diff --git a/examples/ds18b20_onewire/ds18b20_onewire.c b/examples/ds18b20_onewire/ds18b20_onewire.c index b9b7655..098f59f 100644 --- a/examples/ds18b20_onewire/ds18b20_onewire.c +++ b/examples/ds18b20_onewire/ds18b20_onewire.c @@ -73,6 +73,6 @@ void print_temperature(void *pvParameters) { void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(&print_temperature, (signed char *)"print_temperature", 256, NULL, 2, NULL); + xTaskCreate(&print_temperature, "print_temperature", 256, NULL, 2, NULL); } diff --git a/examples/ds3231_test/ds3231_test.c b/examples/ds3231_test/ds3231_test.c index 77fc167..858b0a0 100644 --- a/examples/ds3231_test/ds3231_test.c +++ b/examples/ds3231_test/ds3231_test.c @@ -37,5 +37,5 @@ void user_init(void) ds3231_Init(scl, sda); - xTaskCreate(task1, (signed char *)"tsk1", 256, NULL, 2, NULL); + xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL); } diff --git a/examples/experiments/timers/timers.c b/examples/experiments/timers/timers.c index d5a2f50..bc3aa2b 100644 --- a/examples/experiments/timers/timers.c +++ b/examples/experiments/timers/timers.c @@ -119,7 +119,7 @@ void frc2_handler(void) void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(timerRegTask, (signed char *)"timerRegTask", 1024, NULL, 2, NULL); + xTaskCreate(timerRegTask, "timerRegTask", 1024, NULL, 2, NULL); TIMER(0).CTRL = VAL2FIELD(TIMER_CTRL_CLKDIV, TIMER_CLKDIV_256) | TIMER_CTRL_RELOAD; TIMER(0).LOAD = 0x200000; diff --git a/examples/experiments/unaligned_load/unaligned_load.c b/examples/experiments/unaligned_load/unaligned_load.c index ff6cab7..984a566 100644 --- a/examples/experiments/unaligned_load/unaligned_load.c +++ b/examples/experiments/unaligned_load/unaligned_load.c @@ -230,7 +230,7 @@ void user_init(void) test_sign_extension(); xTaskHandle taskHandle; - xTaskCreate(test_system_interaction, (signed char *)"interactionTask", 256, &taskHandle, 2, NULL); + xTaskCreate(test_system_interaction, "interactionTask", 256, &taskHandle, 2, NULL); } static volatile bool frc1_ran; diff --git a/examples/fatfs_rtc/main.c b/examples/fatfs_rtc/main.c index 180a943..0c818d0 100644 --- a/examples/fatfs_rtc/main.c +++ b/examples/fatfs_rtc/main.c @@ -129,5 +129,5 @@ void user_init(void) i2c_init (SCL_PIN, SDA_PIN); - xTaskCreate(rewrite_file_task, (signed char *)"task1", 512, NULL, 2, NULL); + xTaskCreate(rewrite_file_task, "task1", 512, NULL, 2, NULL); } diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c index b90abdf..408d5b1 100644 --- a/examples/http_get/http_get.c +++ b/examples/http_get/http_get.c @@ -126,6 +126,6 @@ void user_init(void) sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); - xTaskCreate(&http_get_task, (signed char *)"get_task", 256, NULL, 2, NULL); + xTaskCreate(&http_get_task, "get_task", 256, NULL, 2, NULL); } diff --git a/examples/http_get_mbedtls/http_get_mbedtls.c b/examples/http_get_mbedtls/http_get_mbedtls.c index 7aad0e3..fa7c114 100644 --- a/examples/http_get_mbedtls/http_get_mbedtls.c +++ b/examples/http_get_mbedtls/http_get_mbedtls.c @@ -333,5 +333,5 @@ void user_init(void) sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); - xTaskCreate(&http_get_task, (signed char *)"get_task", 2048, NULL, 2, NULL); + xTaskCreate(&http_get_task, "get_task", 2048, NULL, 2, NULL); } diff --git a/examples/i2s_audio/i2s_audio_example.c b/examples/i2s_audio/i2s_audio_example.c index 78df426..ddb1387 100644 --- a/examples/i2s_audio/i2s_audio_example.c +++ b/examples/i2s_audio/i2s_audio_example.c @@ -193,5 +193,5 @@ void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(play_task, (signed char *)"test_task", 1024, NULL, 2, NULL); + xTaskCreate(play_task, "test_task", 1024, NULL, 2, NULL); } diff --git a/examples/json_jsmn_simple/json_jsmn_simple.c b/examples/json_jsmn_simple/json_jsmn_simple.c index 3a65ddf..4a01741 100644 --- a/examples/json_jsmn_simple/json_jsmn_simple.c +++ b/examples/json_jsmn_simple/json_jsmn_simple.c @@ -108,5 +108,5 @@ void user_init(void) { uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - xTaskCreate(json_test, (signed char *)"jsont", 1024, NULL, 2, NULL); + xTaskCreate(json_test, "jsont", 1024, NULL, 2, NULL); } diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index fe129fd..2b9e764 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -216,7 +216,7 @@ void user_init(void) vSemaphoreCreateBinary(wifi_alive); publish_queue = xQueueCreate(3, PUB_MSG_LEN); - xTaskCreate(&wifi_task, (int8_t *)"wifi_task", 256, NULL, 2, NULL); - xTaskCreate(&beat_task, (int8_t *)"beat_task", 256, NULL, 3, NULL); - xTaskCreate(&mqtt_task, (int8_t *)"mqtt_task", 1024, NULL, 4, NULL); + xTaskCreate(&wifi_task, "wifi_task", 256, NULL, 2, NULL); + xTaskCreate(&beat_task, "beat_task", 256, NULL, 3, NULL); + xTaskCreate(&mqtt_task, "mqtt_task", 1024, NULL, 4, NULL); } diff --git a/examples/ota_basic/ota_basic.c b/examples/ota_basic/ota_basic.c index c2050d5..5083539 100644 --- a/examples/ota_basic/ota_basic.c +++ b/examples/ota_basic/ota_basic.c @@ -138,5 +138,5 @@ void user_init(void) printf("Starting TFTP server..."); ota_tftp_init_server(TFTP_PORT); - xTaskCreate(&tftp_client_task, (signed char *)"tftp_client", 2048, NULL, 2, NULL); + xTaskCreate(&tftp_client_task, "tftp_client", 2048, NULL, 2, NULL); } diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c index 2f5ad14..22877c4 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/examples/posix_fs/posix_fs_example.c @@ -51,5 +51,5 @@ void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(test_task, (signed char *)"test_task", 1024, NULL, 2, NULL); + xTaskCreate(test_task, "test_task", 1024, NULL, 2, NULL); } diff --git a/examples/pwm_test/pwm_test.c b/examples/pwm_test/pwm_test.c index d0372ac..1cd2bc5 100644 --- a/examples/pwm_test/pwm_test.c +++ b/examples/pwm_test/pwm_test.c @@ -46,5 +46,5 @@ void user_init(void) printf("pwm_start()\n"); pwm_start(); - xTaskCreate(task1, (signed char *)"tsk1", 256, NULL, 2, NULL); + xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL); } diff --git a/examples/simple/simple.c b/examples/simple/simple.c index d95a040..8134bb9 100644 --- a/examples/simple/simple.c +++ b/examples/simple/simple.c @@ -39,6 +39,6 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); mainqueue = xQueueCreate(10, sizeof(uint32_t)); - xTaskCreate(task1, (signed char *)"tsk1", 256, &mainqueue, 2, NULL); - xTaskCreate(task2, (signed char *)"tsk2", 256, &mainqueue, 2, NULL); + xTaskCreate(task1, "tsk1", 256, &mainqueue, 2, NULL); + xTaskCreate(task2, "tsk2", 256, &mainqueue, 2, NULL); } diff --git a/examples/simple_cplusplus/simple.cpp b/examples/simple_cplusplus/simple.cpp index dec286d..c74d54b 100644 --- a/examples/simple_cplusplus/simple.cpp +++ b/examples/simple_cplusplus/simple.cpp @@ -61,5 +61,5 @@ extern "C" void user_init(void) { uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - xTaskCreate(task1, (signed char *)"tsk1", 256, NULL, 2, NULL); + xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL); } diff --git a/examples/sntp/sntp_example.c b/examples/sntp/sntp_example.c index 242489b..a68365a 100644 --- a/examples/sntp/sntp_example.c +++ b/examples/sntp/sntp_example.c @@ -74,6 +74,6 @@ void user_init(void) sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); - xTaskCreate(sntp_tsk, (signed char *)"SNTP", 1024, NULL, 1, NULL); + xTaskCreate(sntp_tsk, "SNTP", 1024, NULL, 1, NULL); } diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c index 4a907df..5252a92 100644 --- a/examples/spiffs/spiffs_example.c +++ b/examples/spiffs/spiffs_example.c @@ -114,5 +114,5 @@ void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(test_task, (signed char *)"test_task", 1024, NULL, 2, NULL); + xTaskCreate(test_task, "test_task", 1024, NULL, 2, NULL); } diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index f2244e1..a959348 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -242,5 +242,5 @@ void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(sysparam_editor_task, (signed char *)"sysparam_editor_task", 512, NULL, 2, NULL); + xTaskCreate(sysparam_editor_task, "sysparam_editor_task", 512, NULL, 2, NULL); } diff --git a/examples/tls_server/tls_server.c b/examples/tls_server/tls_server.c index 9030dc0..7959609 100644 --- a/examples/tls_server/tls_server.c +++ b/examples/tls_server/tls_server.c @@ -254,5 +254,5 @@ void user_init(void) sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); - xTaskCreate(&tls_server_task, (signed char *)"server_task", 2048, NULL, 2, NULL); + xTaskCreate(&tls_server_task, "server_task", 2048, NULL, 2, NULL); } diff --git a/examples/tsl2561/tsl2561_example.c b/examples/tsl2561/tsl2561_example.c index b6081b8..447f669 100644 --- a/examples/tsl2561/tsl2561_example.c +++ b/examples/tsl2561/tsl2561_example.c @@ -65,5 +65,5 @@ void user_init(void) uart_set_baud(0, 115200); i2c_init(SCL_PIN, SDA_PIN); - xTaskCreate(tsl2561MeasurementTask, (signed char *)"tsl2561MeasurementTask", 256, NULL, 2, NULL); + xTaskCreate(tsl2561MeasurementTask, "tsl2561MeasurementTask", 256, NULL, 2, NULL); } diff --git a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c index 022f010..7644494 100644 --- a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c +++ b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c @@ -79,5 +79,5 @@ void user_init(void) { uart_set_baud(0, 115200); - xTaskCreate(&demo, (signed char *)"ws2812_i2s", 256, NULL, 10, NULL); + xTaskCreate(&demo, "ws2812_i2s", 256, NULL, 10, NULL); } diff --git a/examples/ws2812_rainbow/ws2812_rainbow.c b/examples/ws2812_rainbow/ws2812_rainbow.c index 4d37acc..034b099 100644 --- a/examples/ws2812_rainbow/ws2812_rainbow.c +++ b/examples/ws2812_rainbow/ws2812_rainbow.c @@ -148,6 +148,6 @@ void user_init(void) // notice the glitches due to NMI. printf("Starting a task. There may be glitches!\r\n"); - xTaskCreate(&demo, (signed char *)"strip demo", 256, NULL, 10, NULL); + xTaskCreate(&demo, "strip demo", 256, NULL, 10, NULL); #endif } diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index bcd447c..805a620 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -289,7 +289,7 @@ static bool bmp180_createTask() portBASE_TYPE x = pdPASS; if (bmp180_task_handle == NULL) { - x = xTaskCreate(bmp180_driver_task, (signed char *)"bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); + x = xTaskCreate(bmp180_driver_task, "bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); } return x == pdPASS; } diff --git a/extras/cpp_support/include/task.hpp b/extras/cpp_support/include/task.hpp index cb1cb45..e87e32a 100644 --- a/extras/cpp_support/include/task.hpp +++ b/extras/cpp_support/include/task.hpp @@ -56,7 +56,7 @@ public: */ int task_create(const char* const pcName, unsigned short usStackDepth = 256, unsigned portBASE_TYPE uxPriority = 2) { - return xTaskCreate(task_t::_task, (signed char *)pcName, usStackDepth, this, uxPriority, NULL); + return xTaskCreate(task_t::_task, pcName, usStackDepth, this, uxPriority, NULL); } protected: diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 269b297..82ccfd1 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -89,7 +89,7 @@ void dhcpserver_start(const ip_addr_t *first_client_addr, uint8_t max_leases) // state->server_if is assigned once the task is running - see comment in dhcpserver_task() ip_addr_copy(state->first_client_addr, *first_client_addr); - xTaskCreate(dhcpserver_task, (signed char *)"DHCPServer", 768, NULL, 8, &dhcpserver_task_handle); + xTaskCreate(dhcpserver_task, "DHCPServer", 768, NULL, 8, &dhcpserver_task_handle); } void dhcpserver_stop(void) diff --git a/extras/rboot-ota/ota-tftp.c b/extras/rboot-ota/ota-tftp.c index 99ebdf7..c53b771 100644 --- a/extras/rboot-ota/ota-tftp.c +++ b/extras/rboot-ota/ota-tftp.c @@ -50,7 +50,7 @@ static void tftp_send_error(struct netconn *nc, int err_code, const char *err_ms void ota_tftp_init_server(int listen_port) { - xTaskCreate(tftp_task, (signed char *)"tftpOTATask", 512, (void *)listen_port, 2, NULL); + xTaskCreate(tftp_task, "tftpOTATask", 512, (void *)listen_port, 2, NULL); } err_t ota_tftp_download(const char *server, int port, const char *filename, diff --git a/lwip/sys_arch.c b/lwip/sys_arch.c index dc26dfd..51c29e0 100644 --- a/lwip/sys_arch.c +++ b/lwip/sys_arch.c @@ -514,7 +514,7 @@ xTaskHandle xCreatedTask; portBASE_TYPE xResult; sys_thread_t xReturn; - xResult = xTaskCreate( pxThread, ( signed char * ) pcName, iStackSize, pvArg, iPriority, &xCreatedTask ); + xResult = xTaskCreate( pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask ); if( xResult == pdPASS ) { From 574f944fbb01c926033566cc90159a52fb0e6075 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 26 Oct 2016 19:21:55 +0600 Subject: [PATCH 090/349] Driver for HD44780 LCDs (#246) Driver for HD44780 LCDs connected directly to GPIO / to I2C by PCF8574-like GPIO expanders (#246) --- examples/hd44780_lcd/Makefile | 6 + examples/hd44780_lcd/main.c | 62 +++++++++ examples/hd44780_lcd/schematics.png | Bin 0 -> 31131 bytes examples/i2c_lcd_test/Makefile | 6 + examples/i2c_lcd_test/i2c_lcd.png | Bin 0 -> 14468 bytes examples/i2c_lcd_test/main.c | 71 +++++++++++ extras/hd44780/component.mk | 8 ++ extras/hd44780/hd44780.c | 189 ++++++++++++++++++++++++++++ extras/hd44780/hd44780.h | 115 +++++++++++++++++ 9 files changed, 457 insertions(+) create mode 100644 examples/hd44780_lcd/Makefile create mode 100644 examples/hd44780_lcd/main.c create mode 100644 examples/hd44780_lcd/schematics.png create mode 100644 examples/i2c_lcd_test/Makefile create mode 100644 examples/i2c_lcd_test/i2c_lcd.png create mode 100644 examples/i2c_lcd_test/main.c create mode 100644 extras/hd44780/component.mk create mode 100644 extras/hd44780/hd44780.c create mode 100644 extras/hd44780/hd44780.h diff --git a/examples/hd44780_lcd/Makefile b/examples/hd44780_lcd/Makefile new file mode 100644 index 0000000..02a868d --- /dev/null +++ b/examples/hd44780_lcd/Makefile @@ -0,0 +1,6 @@ +PROGRAM = hd44780_lcd +EXTRA_COMPONENTS = extras/hd44780 + +HD44780_I2C = 0 + +include ../../common.mk diff --git a/examples/hd44780_lcd/main.c b/examples/hd44780_lcd/main.c new file mode 100644 index 0000000..00ea8ad --- /dev/null +++ b/examples/hd44780_lcd/main.c @@ -0,0 +1,62 @@ +/* + * Example of using HD44780 driver with LCD + * connected directly to GPIO pins + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include + +#include + +static const uint8_t char_data[] = { + 0x04, 0x0e, 0x0e, 0x0e, 0x1f, 0x00, 0x04, 0x00, + 0x1f, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x1f, 0x00 +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + hd44780_t lcd = { + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 5, + .e = 4, + .d4 = 0, + .d5 = 2, + .d6 = 14, + .d7 = 12, + .bl = HD44780_NOT_USED + } + }; + + hd44780_init(&lcd); + hd44780_upload_character(&lcd, 0, char_data); + hd44780_upload_character(&lcd, 1, char_data + 8); + + hd44780_gotoxy(&lcd, 0, 0); + hd44780_puts(&lcd, "\x08 Hello world!"); + hd44780_gotoxy(&lcd, 0, 1); + hd44780_puts(&lcd, "\x09 "); + + char time[16]; + + while (true) + { + hd44780_gotoxy(&lcd, 2, 1); + + snprintf(time, 7, "%u ", sdk_system_get_time() / 1000000); + time[sizeof(time) - 1] = 0; + + hd44780_puts(&lcd, time); + + for (uint32_t i = 0; i < 1000; i++) + sdk_os_delay_us(1000); + } +} diff --git a/examples/hd44780_lcd/schematics.png b/examples/hd44780_lcd/schematics.png new file mode 100644 index 0000000000000000000000000000000000000000..d3145cd4d951c829635e396543efeb6e5715f0ae GIT binary patch literal 31131 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 literal 0 HcmV?d00001 diff --git a/examples/i2c_lcd_test/Makefile b/examples/i2c_lcd_test/Makefile new file mode 100644 index 0000000..4e03494 --- /dev/null +++ b/examples/i2c_lcd_test/Makefile @@ -0,0 +1,6 @@ +PROGRAM = i2c_lcd_test +EXTRA_COMPONENTS = extras/i2c extras/pcf8574 extras/hd44780 + +HD44780_I2C = 1 + +include ../../common.mk diff --git a/examples/i2c_lcd_test/i2c_lcd.png b/examples/i2c_lcd_test/i2c_lcd.png new file mode 100644 index 0000000000000000000000000000000000000000..815f4febc0a8fa758ef5e04c1e5cc506ffecd7f2 GIT binary patch literal 14468 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 FzW|~En??Wt literal 0 HcmV?d00001 diff --git a/examples/i2c_lcd_test/main.c b/examples/i2c_lcd_test/main.c new file mode 100644 index 0000000..1951777 --- /dev/null +++ b/examples/i2c_lcd_test/main.c @@ -0,0 +1,71 @@ +/* + * Example of using driver for text LCD + * connected to I2C by PCF8574 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include + +#include + +#define SCL_PIN 5 +#define SDA_PIN 4 +#define ADDR 0x27 + +static const uint8_t char_data[] = { + 0x04, 0x0e, 0x0e, 0x0e, 0x1f, 0x00, 0x04, 0x00, + 0x1f, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x1f, 0x00 +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true + }; + + hd44780_init(&lcd); + hd44780_upload_character(&lcd, 0, char_data); + hd44780_upload_character(&lcd, 1, char_data + 8); + + hd44780_gotoxy(&lcd, 0, 0); + hd44780_puts(&lcd, "\x08 Hello world!"); + hd44780_gotoxy(&lcd, 0, 1); + hd44780_puts(&lcd, "\x09 "); + + char time[16]; + + while (true) + { + hd44780_gotoxy(&lcd, 2, 1); + + snprintf(time, 7, "%u ", sdk_system_get_time() / 1000000); + time[sizeof(time) - 1] = 0; + + hd44780_puts(&lcd, time); + + for (uint32_t i = 0; i < 1000; i++) + sdk_os_delay_us(1000); + } +} diff --git a/extras/hd44780/component.mk b/extras/hd44780/component.mk new file mode 100644 index 0000000..56f4b8a --- /dev/null +++ b/extras/hd44780/component.mk @@ -0,0 +1,8 @@ +INC_DIRS += $(hd44780_ROOT).. +hd44780_SRC_DIR = $(hd44780_ROOT) + +HD44780_I2C ?= 1 + +hd44780_CFLAGS = -DHD44780_I2C=${HD44780_I2C} $(CFLAGS) + +$(eval $(call component_compile_rules,hd44780)) diff --git a/extras/hd44780/hd44780.c b/extras/hd44780/hd44780.c new file mode 100644 index 0000000..b44f65a --- /dev/null +++ b/extras/hd44780/hd44780.c @@ -0,0 +1,189 @@ +#include "hd44780.h" + +#if (HD44780_I2C) +#include +#else +#include +#endif +#include + +#define MS 1000 + +#define DELAY_CMD_LONG (3 * MS) // >1.53ms according to datasheet +#define DELAY_CMD_SHORT (60) // >39us according to datasheet +#define DELAY_TOGGLE (10) +#define DELAY_INIT (5 * MS) + +#define CMD_CLEAR 0x01 +#define CMD_RETURN_HOME 0x02 +#define CMD_ENTRY_MODE 0x04 +#define CMD_DISPLAY_CTRL 0x08 +#define CMD_SHIFT 0x10 +#define CMD_FUNC_SET 0x20 +#define CMD_CGRAM_ADDR 0x40 +#define CMD_DDRAM_ADDR 0x80 + +// CMD_ENTRY_MODE +#define ARG_EM_INCREMENT (1 << 1) +#define ARG_EM_SHIFT (1) + +// CMD_DISPLAY_CTRL +#define ARG_DC_DISPLAY_ON (1 << 2) +#define ARG_DC_CURSOR_ON (1 << 1) +#define ARG_DC_CURSOR_BLINK (1) + +// CMD_FUNC_SET +#define ARG_FS_8_BIT (1 << 4) +#define ARG_FS_2_LINES (1 << 3) +#define ARG_FS_FONT_5X10 (1 << 2) + +#if (HD44780_I2C) + #define init_delay() do { sdk_os_delay_us(DELAY_INIT); } while (0) + #define short_delay() + #define long_delay() do { sdk_os_delay_us(DELAY_CMD_LONG); } while (0) +#else + #define init_delay() do { sdk_os_delay_us(DELAY_INIT); } while (0) + #define short_delay() do { sdk_os_delay_us(DELAY_CMD_SHORT); } while (0) + #define long_delay() do { sdk_os_delay_us(DELAY_CMD_LONG); } while (0) + #define toggle_delay() do { sdk_os_delay_us(DELAY_TOGGLE); } while (0) +#endif + +static const uint8_t line_addr[] = { 0x00, 0x40, 0x14, 0x54 }; + +static void write_nibble(const hd44780_t *lcd, uint8_t b, bool rs) +{ +#if (HD44780_I2C) + uint8_t data = (((b >> 3) & 1) << lcd->pins.d7) + | (((b >> 2) & 1) << lcd->pins.d6) + | (((b >> 1) & 1) << lcd->pins.d5) + | ((b & 1) << lcd->pins.d4) + | (rs ? 1 << lcd->pins.rs : 0) + | (lcd->backlight ? 1 << lcd->pins.bl : 0); + + pcf8574_port_write(lcd->addr, data | (1 << lcd->pins.e)); + pcf8574_port_write(lcd->addr, data); +#else + gpio_write(lcd->pins.d7, (b >> 3) & 1); + gpio_write(lcd->pins.d6, (b >> 2) & 1); + gpio_write(lcd->pins.d5, (b >> 1) & 1); + gpio_write(lcd->pins.d4, b & 1); + gpio_write(lcd->pins.rs, rs); + gpio_write(lcd->pins.e, true); + toggle_delay(); + gpio_write(lcd->pins.e, false); +#endif +} + +static void write_byte(const hd44780_t *lcd, uint8_t b, bool rs) +{ + write_nibble(lcd, b >> 4, rs); + write_nibble(lcd, b, rs); +} + +void hd44780_init(const hd44780_t *lcd) +{ +#if (!HD44780_I2C) + gpio_enable(lcd->pins.rs, GPIO_OUTPUT); + gpio_enable(lcd->pins.e, GPIO_OUTPUT); + gpio_enable(lcd->pins.d4, GPIO_OUTPUT); + gpio_enable(lcd->pins.d5, GPIO_OUTPUT); + gpio_enable(lcd->pins.d6, GPIO_OUTPUT); + gpio_enable(lcd->pins.d7, GPIO_OUTPUT); + if (lcd->pins.bl != HD44780_NOT_USED) + gpio_enable(lcd->pins.bl, GPIO_OUTPUT); +#endif + // switch to 4 bit mode + for (uint8_t i = 0; i < 3; i ++) + { + write_nibble(lcd, (CMD_FUNC_SET | ARG_FS_8_BIT) >> 4, false); + init_delay(); + } + write_nibble(lcd, CMD_FUNC_SET >> 4, false); + + // Specify the number of display lines and character font + write_byte(lcd, + CMD_FUNC_SET + | (lcd->lines > 1 ? ARG_FS_2_LINES : 0) + | (lcd->font == HD44780_FONT_5X10 ? ARG_FS_FONT_5X10 : 0), + false); + short_delay(); + // Display off + hd44780_control(lcd, false, false, false); + // Clear + hd44780_clear(lcd); + // Entry mode set + write_byte(lcd, CMD_ENTRY_MODE | ARG_EM_INCREMENT, false); + short_delay(); + // Display on + hd44780_control(lcd, true, false, false); +} + +void hd44780_control(const hd44780_t *lcd, bool on, bool cursor, bool cursor_blink) +{ + write_byte(lcd, + CMD_DISPLAY_CTRL + | (on ? ARG_DC_DISPLAY_ON : 0) + | (cursor ? ARG_DC_CURSOR_ON : 0) + | (cursor_blink ? ARG_DC_CURSOR_BLINK : 0), + false); + short_delay(); +} + +void hd44780_clear(const hd44780_t *lcd) +{ + write_byte(lcd, CMD_CLEAR, false); + long_delay(); +} + +void hd44780_gotoxy(const hd44780_t *lcd, uint8_t col, uint8_t line) +{ + if (line >= lcd->lines) line = lcd->lines - 1; + uint8_t addr = line < sizeof(line_addr) ? line_addr[line] : 0; + write_byte(lcd, CMD_DDRAM_ADDR + addr + col, false); + short_delay(); +} + +void hd44780_putc(const hd44780_t *lcd, char c) +{ + write_byte(lcd, c, true); + short_delay(); +} + +void hd44780_puts(const hd44780_t *lcd, const char *s) +{ + while (*s) + { + hd44780_putc(lcd, *s); + s++; + } +} + +void hd44780_set_backlight(hd44780_t *lcd, bool on) +{ + if (lcd->pins.bl == HD44780_NOT_USED) + return; + +#if (HD44780_I2C) + pcf8574_gpio_write(lcd->addr, lcd->pins.bl, on); +#else + gpio_write(lcd->pins.bl, on); +#endif + + lcd->backlight = on; +} + +void hd44780_upload_character(const hd44780_t *lcd, uint8_t num, const uint8_t *data) +{ + if (num > 7) return; + + uint8_t bytes = lcd->font == HD44780_FONT_5X8 ? 8 : 10; + write_byte(lcd, CMD_CGRAM_ADDR + num * bytes, false); + short_delay(); + for (uint8_t i = 0; i < bytes; i ++) + { + write_byte(lcd, data[i], true); + short_delay(); + } + + hd44780_gotoxy(lcd, 0, 0); +} diff --git a/extras/hd44780/hd44780.h b/extras/hd44780/hd44780.h new file mode 100644 index 0000000..a00302b --- /dev/null +++ b/extras/hd44780/hd44780.h @@ -0,0 +1,115 @@ +/* + * Driver for LCD text displays on LCD connected to I2C by PCF8574 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_HD44780_H_ +#define _EXTRAS_HD44780_H_ + +#include +#include + +#ifndef HD44780_I2C +#define HD44780_I2C 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define HD44780_NOT_USED 0xff + +/** + * LCD font type. Please refer to the datasheet + * of your module. + */ +typedef enum +{ + HD44780_FONT_5X8 = 0, + HD44780_FONT_5X10 +} hd44780_font_t; + +/** + * LCD descriptor. Fill it before use. + */ +typedef struct +{ + uint8_t addr; //!< PCF8574 address (0b0100) + struct + { + uint8_t rs; //!< gpio/register bit used for RS pin + uint8_t e; //!< register bit used for E pin + uint8_t d4; //!< register bit used for D4 pin + uint8_t d5; //!< register bit used for D5 pin + uint8_t d6; //!< register bit used for D5 pin + uint8_t d7; //!< register bit used for D5 pin + uint8_t bl; //!< register bit used for backlight, 0xFF if not used + } pins; + hd44780_font_t font; //!< LCD Font type + uint8_t lines; //!< Number of lines for LCD. Many 16x1 LCD has two lines (like 8x2) + bool backlight; //!< Current backlight state +} hd44780_t; + +/** + * Init LCD. Set poition to (0, 0) + * \param lcd Pointer to the LCD descriptor + */ +void hd44780_init(const hd44780_t *lcd); + +/** + * On/off LCD, show/hide cursor, set cursor blink + * \param lcd Pointer to the LCD descriptor + */ +void hd44780_control(const hd44780_t *lcd, bool on, bool cursor, bool cursor_blink); + +/** + * Clear LCD memory and move char position to (0, 0) + * \param lcd Pointer to the LCD descriptor + */ +void hd44780_clear(const hd44780_t *lcd); + +/** + * Set current char position + * \param lcd Pointer to the LCD descriptor + * \param col Column + * \param line Line + */ +void hd44780_gotoxy(const hd44780_t *lcd, uint8_t col, uint8_t line); + +/** + * Print character + * \param lcd Pointer to the LCD descriptor + * \param c Character + */ +void hd44780_putc(const hd44780_t *lcd, char c); + +/** + * Print string + * \param lcd Pointer to the LCD descriptor + * \param s String + */ +void hd44780_puts(const hd44780_t *lcd, const char *s); + +/** + * Switch backlight + * \param lcd Pointer to the LCD descriptor + * \param on Turn backlight on if true + */ +void hd44780_set_backlight(hd44780_t *lcd, bool on); + +/** + * Upload character data to the CGRAM. + * Current position will be set to (0, 0) after uploading + * \param lcd Pointer to the LCD descriptor + * \param num Character number (0..7) + * \param data Character data: 8 or 10 bytes depending on the font + */ +void hd44780_upload_character(const hd44780_t *lcd, uint8_t num, const uint8_t *data); + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_HD44780_H_ */ From 2ab9beb946521a918e8cb69d802e732afa7cb9d8 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 26 Oct 2016 19:41:08 +0600 Subject: [PATCH 091/349] Extras/DHT improvements: makefile fix, replace DHT_TYPE macro by param (#252) --- examples/dht_sensor/Makefile | 2 +- examples/dht_sensor/dht_sensor.c | 5 ++-- extras/dht/component.mk | 8 +++---- extras/dht/dht.c | 40 +++++++++++++++----------------- extras/dht/dht.h | 19 ++++++++------- 5 files changed, 38 insertions(+), 36 deletions(-) diff --git a/examples/dht_sensor/Makefile b/examples/dht_sensor/Makefile index cfdde69..79b8d3a 100644 --- a/examples/dht_sensor/Makefile +++ b/examples/dht_sensor/Makefile @@ -1,4 +1,4 @@ -PROGRAM=dht_sensor +PROGRAM = dht_sensor EXTRA_COMPONENTS = extras/dht include ../../common.mk diff --git a/examples/dht_sensor/dht_sensor.c b/examples/dht_sensor/dht_sensor.c index b031672..32988b1 100644 --- a/examples/dht_sensor/dht_sensor.c +++ b/examples/dht_sensor/dht_sensor.c @@ -8,7 +8,7 @@ #include "esp/uart.h" #include "FreeRTOS.h" #include "task.h" -#include "dht.h" +#include #include "esp8266.h" /* An example using the ubiquitous DHT** humidity sensors @@ -16,6 +16,7 @@ * from a sensor attached to GPIO pin 4. */ uint8_t const dht_gpio = 4; +const dht_sensor_type_t sensor_type = DHT_TYPE_DHT22; void dhtMeasurementTask(void *pvParameters) { @@ -28,7 +29,7 @@ void dhtMeasurementTask(void *pvParameters) gpio_set_pullup(dht_gpio, false, false); while(1) { - if (dht_read_data(dht_gpio, &humidity, &temperature)) { + if (dht_read_data(sensor_type, dht_gpio, &humidity, &temperature)) { printf("Humidity: %d%% Temp: %dC\n", humidity / 10, temperature / 10); diff --git a/extras/dht/component.mk b/extras/dht/component.mk index 0948e4d..f7ec19e 100644 --- a/extras/dht/component.mk +++ b/extras/dht/component.mk @@ -1,10 +1,10 @@ # Component makefile for extras/dht -INC_DIRS += $(ROOT)extras/dht +# include it as 'dht/dht.h' +INC_DIRS += $(dht_ROOT).. # args for passing into compile rule generation -extras/dht_INC_DIR = $(ROOT)extras/dht -extras/dht_SRC_DIR = $(ROOT)extras/dht +dht_SRC_DIR = $(dht_ROOT) -$(eval $(call component_compile_rules,extras/dht)) +$(eval $(call component_compile_rules,dht)) diff --git a/extras/dht/dht.c b/extras/dht/dht.c index 3930735..dee04f2 100644 --- a/extras/dht/dht.c +++ b/extras/dht/dht.c @@ -14,11 +14,10 @@ #include // sdk_os_delay_us // DHT timer precision in microseconds -#define DHT_TIMER_INTERVAL 2 -#define DHT_DATA_BITS 40 +#define DHT_TIMER_INTERVAL 2 +#define DHT_DATA_BITS 40 // #define DEBUG_DHT - #ifdef DEBUG_DHT #define debug(fmt, ...) printf("%s" fmt "\n", "dht: ", ## __VA_ARGS__); #else @@ -116,7 +115,7 @@ static inline bool dht_fetch_data(uint8_t pin, bool bits[DHT_DATA_BITS]) debug("LOW bit timeout\n"); return false; } - if (!dht_await_pin_state(pin, 75, false, &high_duration)){ + if (!dht_await_pin_state(pin, 75, false, &high_duration)) { debug("HIGHT bit timeout\n"); return false; } @@ -128,27 +127,26 @@ static inline bool dht_fetch_data(uint8_t pin, bool bits[DHT_DATA_BITS]) /** * Pack two data bytes into single value and take into account sign bit. */ -static inline int16_t dht_convert_data(uint8_t msb, uint8_t lsb) +static inline int16_t dht_convert_data(dht_sensor_type_t sensor_type, uint8_t msb, uint8_t lsb) { int16_t data; -#if DHT_TYPE == DHT22 - data = msb & 0x7F; - data <<= 8; - data |= lsb; - if (msb & BIT(7)) { - data = 0 - data; // convert it to negative + if (sensor_type == DHT_TYPE_DHT22) { + data = msb & 0x7F; + data <<= 8; + data |= lsb; + if (msb & BIT(7)) { + data = 0 - data; // convert it to negative + } + } + else { + data = msb * 10; } -#elif DHT_TYPE == DHT11 - data = msb * 10; -#else -#error "Unsupported DHT type" -#endif return data; } -bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature) +bool dht_read_data(dht_sensor_type_t sensor_type, uint8_t pin, int16_t *humidity, int16_t *temperature) { bool bits[DHT_DATA_BITS]; uint8_t data[DHT_DATA_BITS/8] = {0}; @@ -175,19 +173,19 @@ bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature) return false; } - *humidity = dht_convert_data(data[0], data[1]); - *temperature = dht_convert_data(data[2], data[3]); + *humidity = dht_convert_data(sensor_type, data[0], data[1]); + *temperature = dht_convert_data(sensor_type, data[2], data[3]); debug("Sensor data: humidity=%d, temp=%d\n", *humidity, *temperature); return true; } -bool dht_read_float_data(uint8_t pin, float *humidity, float *temperature) +bool dht_read_float_data(dht_sensor_type_t sensor_type, uint8_t pin, float *humidity, float *temperature) { int16_t i_humidity, i_temp; - if (dht_read_data(pin, &i_humidity, &i_temp)) { + if (dht_read_data(sensor_type, pin, &i_humidity, &i_temp)) { *humidity = (float)i_humidity / 10; *temperature = (float)i_temp / 10; return true; diff --git a/extras/dht/dht.h b/extras/dht/dht.h index ab22269..664e95c 100644 --- a/extras/dht/dht.h +++ b/extras/dht/dht.h @@ -11,16 +11,19 @@ #include #include -#define DHT11 11 -#define DHT22 22 - -// Type of sensor to use -#define DHT_TYPE DHT22 - #ifdef __cplusplus extern "C" { #endif +/** + * Sensor type + */ +typedef enum +{ + DHT_TYPE_DHT11 = 0, //!< DHT11 + DHT_TYPE_DHT22 //!< DHT22 +} dht_sensor_type_t; + /** * Read data from sensor on specified pin. * @@ -29,7 +32,7 @@ extern "C" { * temperature=24.4 is 24.4 degrees Celsius * */ -bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature); +bool dht_read_data(dht_sensor_type_t sensor_type, uint8_t pin, int16_t *humidity, int16_t *temperature); /** @@ -37,7 +40,7 @@ bool dht_read_data(uint8_t pin, int16_t *humidity, int16_t *temperature); * * Return values as floating point values. */ -bool dht_read_float_data(uint8_t pin, float *humidity, float *temperature); +bool dht_read_float_data(dht_sensor_type_t sensor_type, uint8_t pin, float *humidity, float *temperature); #ifdef __cplusplus } From e71919410ddb2ef1e81d61fb9a6b17e22d8044cf Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 27 Oct 2016 14:12:27 +0600 Subject: [PATCH 092/349] Add mkspiffs binary to .gitignore (#256) --- extras/spiffs/mkspiffs/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 extras/spiffs/mkspiffs/.gitignore diff --git a/extras/spiffs/mkspiffs/.gitignore b/extras/spiffs/mkspiffs/.gitignore new file mode 100644 index 0000000..55864af --- /dev/null +++ b/extras/spiffs/mkspiffs/.gitignore @@ -0,0 +1,2 @@ +/mkspiffs +/*.o From 5b12ba54dc7b8e76ff3dbc99f282aa271f78aedf Mon Sep 17 00:00:00 2001 From: urx Date: Fri, 28 Oct 2016 16:08:37 +0400 Subject: [PATCH 093/349] Driver and example for SSD1306 128x64 I2C display (#254) --- examples/ssd1306_i2c/Makefile | 3 + examples/ssd1306_i2c/README.md | 3 + examples/ssd1306_i2c/image.xbm | 89 +++++++ examples/ssd1306_i2c/ssd1306_i2c.c | 65 +++++ extras/ssd1306/LICENSE | 22 ++ extras/ssd1306/README.md | 27 +++ extras/ssd1306/component.mk | 9 + extras/ssd1306/ssd1306.c | 376 +++++++++++++++++++++++++++++ extras/ssd1306/ssd1306.h | 50 ++++ 9 files changed, 644 insertions(+) create mode 100644 examples/ssd1306_i2c/Makefile create mode 100644 examples/ssd1306_i2c/README.md create mode 100644 examples/ssd1306_i2c/image.xbm create mode 100644 examples/ssd1306_i2c/ssd1306_i2c.c create mode 100644 extras/ssd1306/LICENSE create mode 100644 extras/ssd1306/README.md create mode 100644 extras/ssd1306/component.mk create mode 100644 extras/ssd1306/ssd1306.c create mode 100644 extras/ssd1306/ssd1306.h diff --git a/examples/ssd1306_i2c/Makefile b/examples/ssd1306_i2c/Makefile new file mode 100644 index 0000000..805a3bd --- /dev/null +++ b/examples/ssd1306_i2c/Makefile @@ -0,0 +1,3 @@ +PROGRAM=SSD1306_Example +EXTRA_COMPONENTS = extras/ssd1306 extras/i2c +include ../../common.mk diff --git a/examples/ssd1306_i2c/README.md b/examples/ssd1306_i2c/README.md new file mode 100644 index 0000000..9c75bb3 --- /dev/null +++ b/examples/ssd1306_i2c/README.md @@ -0,0 +1,3 @@ +# I2C / SSD1306 OLED LCD Example + +To run this example connect the SSD1306 OLED LCD and configure SDA/SCL pins in ssd1306_i2c.c file. diff --git a/examples/ssd1306_i2c/image.xbm b/examples/ssd1306_i2c/image.xbm new file mode 100644 index 0000000..1bd888c --- /dev/null +++ b/examples/ssd1306_i2c/image.xbm @@ -0,0 +1,89 @@ +#define image_width 128 +#define image_height 64 +static unsigned char image_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xc3, 0xc7, 0x0f, 0x00, 0x1e, 0xfc, 0xf0, 0xe7, 0x30, 0xc0, 0x9f, + 0x7f, 0xf0, 0x80, 0x0f, 0x18, 0x30, 0xc4, 0x18, 0x80, 0x61, 0x8c, 0x31, + 0xe0, 0x30, 0xc0, 0x38, 0x0c, 0x0c, 0x63, 0x08, 0x18, 0x30, 0xc0, 0x30, + 0x80, 0x61, 0x0c, 0x33, 0xe0, 0x31, 0xc0, 0x30, 0x0c, 0x0c, 0x63, 0x00, + 0x18, 0xf0, 0xc0, 0x30, 0xc0, 0xc0, 0x0c, 0x33, 0x60, 0x31, 0xc0, 0x30, + 0x0c, 0x06, 0xe6, 0x01, 0xf8, 0xe3, 0xc7, 0x30, 0xc0, 0xc0, 0x0c, 0xf3, + 0x67, 0x33, 0xc0, 0x38, 0x0c, 0x06, 0xc6, 0x0f, 0x18, 0x80, 0xcf, 0x18, + 0xcf, 0xc0, 0x8c, 0x31, 0x60, 0x36, 0xcf, 0x1f, 0x0c, 0x06, 0x06, 0x1f, + 0x18, 0x00, 0xce, 0x0f, 0xcf, 0xc0, 0xfc, 0x30, 0x60, 0x36, 0xcf, 0x18, + 0x0c, 0x06, 0x06, 0x1c, 0x18, 0x00, 0xcc, 0x00, 0x80, 0x61, 0x0c, 0x30, + 0x60, 0x3c, 0xc0, 0x30, 0x0c, 0x0c, 0x03, 0x18, 0x18, 0x10, 0xcc, 0x00, + 0x80, 0x61, 0x0c, 0x30, 0x60, 0x38, 0xc0, 0x30, 0x0c, 0x0c, 0x23, 0x18, + 0xf8, 0xf3, 0xc3, 0x00, 0x00, 0x1e, 0x0c, 0xf0, 0x67, 0x38, 0xc0, 0x60, + 0x0c, 0xf0, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x1f, 0xfc, 0x01, 0x1c, 0xf8, 0x81, + 0x0f, 0x78, 0x00, 0x0c, 0x80, 0x1f, 0xfe, 0x00, 0xf0, 0x87, 0x3f, 0xfc, + 0x07, 0x1f, 0xfc, 0xc3, 0x1f, 0xfc, 0x00, 0x0c, 0xe0, 0x3f, 0xfe, 0x03, + 0x38, 0xc4, 0x21, 0x0c, 0x0e, 0x1b, 0x04, 0xc7, 0x18, 0x8e, 0x00, 0x0c, + 0x70, 0x20, 0x06, 0x07, 0x18, 0xc0, 0x00, 0x0c, 0x0c, 0x18, 0x00, 0x66, + 0x30, 0x07, 0x00, 0x0c, 0x30, 0x00, 0x06, 0x06, 0x18, 0xc0, 0x00, 0x0c, + 0x18, 0x18, 0x00, 0x67, 0x30, 0x03, 0x00, 0x0c, 0x18, 0x00, 0x06, 0x0c, + 0xf0, 0x81, 0x0f, 0x0c, 0x18, 0x18, 0xf0, 0x61, 0x30, 0x7b, 0x00, 0x0c, + 0x18, 0x00, 0x06, 0x0c, 0xe0, 0x07, 0x3f, 0x0c, 0x18, 0x18, 0xf0, 0x63, + 0x30, 0xff, 0x00, 0x0c, 0x18, 0x00, 0x06, 0x0c, 0x00, 0x0e, 0x70, 0x0c, + 0x18, 0x18, 0x00, 0x67, 0x30, 0xc7, 0x01, 0x0c, 0x18, 0x00, 0x06, 0x0c, + 0x00, 0x0c, 0x60, 0x0c, 0x18, 0x18, 0x00, 0x66, 0x30, 0x83, 0x01, 0x0c, + 0x18, 0x00, 0x06, 0x0c, 0x00, 0x0c, 0x60, 0x0c, 0x0c, 0x18, 0x00, 0x66, + 0x30, 0x83, 0x01, 0x0c, 0x30, 0x00, 0x06, 0x06, 0x08, 0x4e, 0x70, 0x0c, + 0x0e, 0x18, 0x04, 0xc7, 0x18, 0xc6, 0x01, 0x0c, 0x70, 0x20, 0x06, 0x07, + 0xf8, 0xc7, 0x3f, 0xfc, 0x07, 0xff, 0xfc, 0xc3, 0x1f, 0xfe, 0x00, 0xfc, + 0xe3, 0x3f, 0xfe, 0x03, 0xf0, 0x83, 0x1f, 0xfc, 0x01, 0xff, 0xf8, 0x81, + 0x0f, 0x78, 0x00, 0xfc, 0x83, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x18, + 0x18, 0x7e, 0xc0, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x18, 0x18, 0xfe, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x18, 0x18, 0xc6, 0x81, 0x33, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x06, 0x06, 0x18, + 0x18, 0x86, 0x01, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x7f, 0x06, 0x06, 0x18, 0x18, 0x86, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xe3, 0x0c, 0x03, 0x18, 0x18, 0xc6, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc1, 0x0c, 0x03, 0x18, + 0x18, 0xfe, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc1, 0x98, 0x01, 0x18, 0x18, 0x7e, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xc1, 0x98, 0x01, 0x18, 0x18, 0xc6, 0x00, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf0, 0x00, 0x18, + 0x18, 0x86, 0x81, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xe3, 0xf0, 0x00, 0x30, 0x0c, 0x86, 0x81, 0x71, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0x60, 0x00, 0xf0, 0x0f, 0x06, 0xc3, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x60, 0x00, 0xc0, + 0x03, 0x06, 0xe7, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/examples/ssd1306_i2c/ssd1306_i2c.c b/examples/ssd1306_i2c/ssd1306_i2c.c new file mode 100644 index 0000000..8ee64ba --- /dev/null +++ b/examples/ssd1306_i2c/ssd1306_i2c.c @@ -0,0 +1,65 @@ +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include + +#include "i2c/i2c.h" +#include "ssd1306/ssd1306.h" + +#include "image.xbm" + +/* Change this according to you schematics */ +#define SCL_PIN GPIO_ID_PIN((14)) +#define SDA_PIN GPIO_ID_PIN((12)) + +/* Local frame buffer */ +static uint8_t buffer[SSD1306_ROWS * SSD1306_COLS / 8]; + +static void ssd1306_task(void *pvParameters) +{ + printf("%s: Started user interface task\n", __FUNCTION__); + vTaskDelay(1000/portTICK_RATE_MS); + + + if (ssd1306_load_xbm(image_bits, buffer)) + goto error_loop; + + ssd1306_set_whole_display_lighting(false); + while (1) { + vTaskDelay(2000 / portTICK_RATE_MS); + printf("%s: steel alive\n", __FUNCTION__); + } + +error_loop: + printf("%s: error while loading framebuffer into SSD1306\n", __func__); + for(;;){ + vTaskDelay(2000 / portTICK_RATE_MS); + printf("%s: error loop\n", __FUNCTION__); + } +} + +void user_init(void) +{ + // Setup HW + uart_set_baud(0, 115200); + + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + if (ssd1306_init()){ + for (;;) { + printf("%s: failed to init SSD1306 lcd\n", __func__); + vTaskDelay(1000/portTICK_RATE_MS); + } + } + + ssd1306_set_whole_display_lighting(true); + vTaskDelay(1000/portTICK_RATE_MS); + // Create user interface task + xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); +} diff --git a/extras/ssd1306/LICENSE b/extras/ssd1306/LICENSE new file mode 100644 index 0000000..1f44f09 --- /dev/null +++ b/extras/ssd1306/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Frank Bargstedt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/extras/ssd1306/README.md b/extras/ssd1306/README.md new file mode 100644 index 0000000..cb283b9 --- /dev/null +++ b/extras/ssd1306/README.md @@ -0,0 +1,27 @@ +# Driver for I2C SSD1306 128x64 OLED LCD + +This driver is written for usage with the ESP8266 and FreeRTOS ([esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos)). + +### Usage + +Before using the SSD1306 LCD module, the function `i2c_init(SCL_PIN, SDA_PIN)` needs to be called to setup the I2C interface and then you must call ssd1306_init(). + +#### Example + +``` +#define SCL_PIN GPIO_ID_PIN(0) +#define SDA_PIN GPIO_ID_PIN(2) +... + +i2c_init(SCL_PIN, SDA_PIN); + +if (ssd1306_init()) { +// An error occured, while performing SSD1306 init init (E.g device not found etc.) +} + +// rest of the code +``` + + + + diff --git a/extras/ssd1306/component.mk b/extras/ssd1306/component.mk new file mode 100644 index 0000000..7f93338 --- /dev/null +++ b/extras/ssd1306/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ssd1306 + +# expected anyone using ssd1306 driver includes it as 'ssd1306/ssd1306.h' +INC_DIRS += $(ssd1306_ROOT).. + +# args for passing into compile rule generation +ssd1306_SRC_DIR = $(ssd1306_ROOT) + +$(eval $(call component_compile_rules,ssd1306)) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c new file mode 100644 index 0000000..85f641f --- /dev/null +++ b/extras/ssd1306/ssd1306.c @@ -0,0 +1,376 @@ +#include +#include +#include +#include +#include "ssd1306.h" + +/* SSD1306 commands */ +#define SSD1306_SET_MEM_ADDR_MODE (0x20) +#define SSD1306_ADDR_MODE_HORIZ (0x0) +#define SSD1306_ADDR_MODE_VERT (0x1) +#define SSD1306_ADDR_MODE_PAGE (0x2) + +#define SSD1306_SET_COL_ADDR (0x21) +#define SSD1306_SET_PAGE_ADDR (0x22) +#define SSD1306_SET_DISP_START_LINE (0x40) +#define SSD1306_SET_CONTRAST (0x81) +#define SSD1306_SET_SEGMENT_REMAP0 (0xA0) +#define SSD1306_SET_SEGMENT_REMAP1 (0xA1) +#define SSD1306_SET_ENTIRE_DISP_ON (0xA5) +#define SSD1306_SET_ENTIRE_DISP_OFF (0xA4) +#define SSD1306_SET_INVERSION_OFF (0xA6) +#define SSD1306_SET_INVERSION_ON (0xA7) + +#define SSD1306_SET_MUX_RATIO (0xA8) +#define SSD1306_MUX_RATIO_MASK (0x3F) +#define SSD1306_SET_DISPLAY_OFF (0xAE) +#define SSD1306_SET_DISPLAY_ON (0xAF) +#define SSD1306_SET_SCAN_DIR_FWD (0xC0) +#define SSD1306_SET_SCAN_DIR_BWD (0xC8) +#define SSD1306_SET_DISPLAY_OFFSET (0xD3) +#define SSD1306_SET_OSC_FREQ (0xD5) +#define SSD1306_SET_PRE_CHRG_PER (0xD9) + +#define SSD1306_SET_COM_PINS_HW_CFG (0xDA) +#define SSD1306_COM_PINS_HW_CFG_MASK (0x32) +#define SSD1306_SEQ_COM_PINS_CFG (0x02) +#define SSD1306_ALT_COM_PINS_CFG (0x12) +#define SSD1306_COM_LR_REMAP_OFF (0x02) +#define SSD1306_COM_LR_REMAP_ON (0x22) + +#define SSD1306_SET_DESEL_LVL (0xDB) +#define SSD1306_SET_NOP (0xE3) + +#define SSD1306_SET_CHARGE_PUMP (0x8D) +#define SSD1306_CHARGE_PUMP_EN (0x14) +#define SSD1306_CHARGE_PUMP_DIS (0x10) + +#ifdef SSD1306_DEBUG +#define debug(fmt, ...) printf("%s" fmt "\n", "SSD1306", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + +/* Issue a command to SSD1306 device + * format such follows: + * |S|Slave Address|W|ACK|0x00|Command|Ack|P| + * + * in case of two-bytes command here will be Data byte + * right after command byte. + */ +int ssd1306_command(uint8_t cmd) +{ + i2c_start(); + if (!i2c_write(SSD1306_I2C_ADDR << 1)) { + debug("Error while xmitting I2C slave address\n"); + i2c_stop(); + return -EIO; + } + if (!i2c_write(0x00)) { + debug("Error while xmitting transmission type\n"); + i2c_stop(); + return -EIO; + } + + if (!i2c_write(cmd)) { + debug("Error while xmitting command: 0x%02X\n", cmd); + i2c_stop(); + return -EIO; + } + + i2c_stop(); + + return 0; +} + +/* Perform default init routine according +* to SSD1306 datasheet from adafruit.com */ +int ssd1306_init() +{ + if (!ssd1306_display_on(false) && + !ssd1306_set_osc_freq(0x80) && + !ssd1306_set_mux_ratio(SSD1306_ROWS-1) && + !ssd1306_set_display_offset(0x0) && + !ssd1306_set_display_start_line(0x0) && + !ssd1306_set_charge_pump_enabled(true) && + !ssd1306_set_mem_addr_mode(SSD1306_ADDR_MODE_HORIZ) && + !ssd1306_set_segment_remapping_enabled(false) && + !ssd1306_set_scan_direction_fwd(true) && + !ssd1306_set_com_pin_hw_config(SSD1306_ALT_COM_PINS_CFG) && + !ssd1306_set_contrast(0x9f) && + !ssd1306_set_precharge_period(0xf1) && + !ssd1306_set_deseltct_lvl(0x40) && + !ssd1306_set_whole_display_lighting(true) && + !ssd1306_set_inversion(false) && + !ssd1306_display_on(true)) { + return 0; + } + + return -EIO; +} + +/* + * frame buffer of SSD1306 consists of 8 pages of 128 bits each + * +*/ +int ssd1306_load_frame_buffer(uint8_t buf[], uint16_t len) +{ + uint16_t i; + uint8_t j; + + ssd1306_set_column_addr(0, 127); + ssd1306_set_page_addr(0, 7); + + for (i=0; i= 0x3) + return -EINVAL; + + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_MEM_ADDR_MODE))) + return err; + + return ssd1306_command(mode); +} + +int ssd1306_set_segment_remapping_enabled(bool on) +{ + if (on) + return ssd1306_command(SSD1306_SET_SEGMENT_REMAP1); + + return ssd1306_command(SSD1306_SET_SEGMENT_REMAP0); +} + +int ssd1306_set_scan_direction_fwd(bool fwd) +{ + if (fwd) + return ssd1306_command(SSD1306_SET_SCAN_DIR_FWD); + + return ssd1306_command(SSD1306_SET_SCAN_DIR_BWD); +} + +int ssd1306_set_com_pin_hw_config(uint8_t config) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_COM_PINS_HW_CFG))) + return err; + + return ssd1306_command(config & SSD1306_COM_PINS_HW_CFG_MASK); +} + +int ssd1306_set_contrast(uint8_t contrast) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_CONTRAST))) + return err; + + return ssd1306_command(contrast); +} + +int ssd1306_set_inversion(bool on) +{ + if (on) + return ssd1306_command(SSD1306_SET_INVERSION_ON); + + return ssd1306_command(SSD1306_SET_INVERSION_OFF); +} + +int ssd1306_set_osc_freq(uint8_t osc_freq) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_OSC_FREQ))) + return err; + + return ssd1306_command(osc_freq); +} + +int ssd1306_set_mux_ratio(uint8_t ratio) +{ + if (ratio < 15) + return -EINVAL; + + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_MUX_RATIO))) + return err; + + return ssd1306_command(ratio); +} + +int ssd1306_set_column_addr(uint8_t start, uint8_t stop) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_COL_ADDR))) + return err; + + if ((err = ssd1306_command(start))) + return err; + + return ssd1306_command(stop); +} + +int ssd1306_set_page_addr(uint8_t start, uint8_t stop) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_PAGE_ADDR))) + return err; + + if ((err = ssd1306_command(start))) + return err; + + return ssd1306_command(stop); +} + +int ssd1306_set_precharge_period(uint8_t prchrg) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_PRE_CHRG_PER))) + return err; + + return ssd1306_command(prchrg); +} + +int ssd1306_set_deseltct_lvl(uint8_t lvl) +{ + int err = 0; + if ((err = ssd1306_command(SSD1306_SET_DESEL_LVL))) + return err; + + return ssd1306_command(lvl); +} + +int ssd1306_set_whole_display_lighting(bool light) +{ + if (light) + return ssd1306_command(SSD1306_SET_ENTIRE_DISP_ON); + + return ssd1306_command(SSD1306_SET_ENTIRE_DISP_OFF); +} + + +/* one byte of xbm - 8 dots in line of picture source + * one byte of fb - 8 rows for 1 column of screen + */ +int ssd1306_load_xbm(uint8_t *xbm, uint8_t *fb) +{ + uint8_t bit = 0; + + int row = 0; + int column = 0; + for (row = 0; row < SSD1306_ROWS; row ++) { + for (column = 0; column < SSD1306_COLS/8; column++) { + uint16_t xbm_offset = row * 16 + column; + for (bit = 0; bit < 8; bit++) { + if (*(xbm + xbm_offset) & 1 << bit) { + *(fb + SSD1306_COLS*(row/8)+column*8+bit) |= 1 << row%8; + } + } + } + } + + return ssd1306_load_frame_buffer(fb, SSD1306_ROWS*SSD1306_COLS/8); +} + + diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h new file mode 100644 index 0000000..933ceae --- /dev/null +++ b/extras/ssd1306/ssd1306.h @@ -0,0 +1,50 @@ +#ifndef _SSD1306__H_ +#define _SSD1306__H_ + +#include +#include +#include + +// shifted +#define SSD1306_I2C_ADDR (0x3C) + +#define SSD1306_ROWS (64) +#define SSD1306_COLS (128) + +/* Issue single command on SSD1306 */ +int ssd1306_command(uint8_t cmd); + +/* Default init for SSD1306 */ +int ssd1306_init(); + +/* Load picture in xbm format into SSD1306 RAM + * xbm - pointer to xbm picture array + * fb - pointer fo local buffer for storing converted xbm image + */ +int ssd1306_load_xbm(uint8_t *xbm, uint8_t *fb); + +/* Load local framebuffer into SSD1306 RAM */ +int ssd1306_load_frame_buffer(uint8_t buf[], uint16_t len); + +/* Clears SSD1306 ram */ +int ssd1306_clear_screen(); + +int ssd1306_display_on(bool on); +int ssd1306_set_display_start_line(uint8_t start); +int ssd1306_set_display_offset(uint8_t offset); +int ssd1306_set_charge_pump_enabled(bool enabled); +int ssd1306_set_mem_addr_mode(uint8_t mode); +int ssd1306_set_segment_remapping_enabled(bool on); +int ssd1306_set_scan_direction_fwd(bool fwd); +int ssd1306_set_com_pin_hw_config(uint8_t config); +int ssd1306_set_contrast(uint8_t contrast); +int ssd1306_set_inversion(bool on); +int ssd1306_set_osc_freq(uint8_t osc_freq); +int ssd1306_set_mux_ratio(uint8_t ratio); +int ssd1306_set_column_addr(uint8_t start, uint8_t stop); +int ssd1306_set_page_addr(uint8_t start, uint8_t stop); +int ssd1306_set_precharge_period(uint8_t prchrg); +int ssd1306_set_deseltct_lvl(uint8_t lvl); +int ssd1306_set_whole_display_lighting(bool light); + +#endif // _SSD1306__H_ From 5a14ab31e49efa5acbc234acd3962bd1af01586e Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Fri, 28 Oct 2016 18:29:47 +0600 Subject: [PATCH 094/349] DS18x20: DS18S20 support, bugfixes (#255) --- extras/ds18b20/component.mk | 6 +++++ extras/ds18b20/ds18b20.c | 46 ++++++++++++++++++++++++++----------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/extras/ds18b20/component.mk b/extras/ds18b20/component.mk index 866371c..2bffda5 100644 --- a/extras/ds18b20/component.mk +++ b/extras/ds18b20/component.mk @@ -6,4 +6,10 @@ INC_DIRS += $(ds18b20_ROOT).. # args for passing into compile rule generation ds18b20_SRC_DIR = $(ds18b20_ROOT) +# users can override this setting and get console debug output +DS18B20_DEBUG ?= 0 +ifeq ($(DS18B20_DEBUG),1) + ds18b20_CFLAGS = $(CFLAGS) -DDS18B20_DEBUG +endif + $(eval $(call component_compile_rules,ds18b20)) diff --git a/extras/ds18b20/ds18b20.c b/extras/ds18b20/ds18b20.c index c965b04..466422e 100644 --- a/extras/ds18b20/ds18b20.c +++ b/extras/ds18b20/ds18b20.c @@ -18,6 +18,15 @@ #define os_sleep_ms(x) vTaskDelay(((x) + portTICK_RATE_MS - 1) / portTICK_RATE_MS) +#define DS18B20_FAMILY_ID 0x28 +#define DS18S20_FAMILY_ID 0x10 + +#ifdef DS18B20_DEBUG +#define debug(fmt, ...) printf("%s" fmt "\n", "DS18B20: ", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { onewire_addr_t addr; onewire_search_t search; @@ -28,7 +37,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { while ((addr = onewire_search_next(&search, pin)) != ONEWIRE_NONE) { uint8_t crc = onewire_crc8((uint8_t *)&addr, 7); if (crc != (addr >> 56)){ - printf("CRC check failed: %02X %02X\n", (unsigned)(addr >> 56), crc); + debug("CRC check failed: %02X %02X\n", (unsigned)(addr >> 56), crc); return 0; } @@ -49,11 +58,11 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { get[k]=onewire_read(pin); } - //printf("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); + //debug("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); crc = onewire_crc8(get, 8); if (crc != get[8]){ - printf("CRC check failed: %02X %02X\n", get[8], crc); + debug("CRC check failed: %02X %02X\n", get[8], crc); return 0; } @@ -64,7 +73,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { float temperature; temperature = (temp * 625.0)/10000; - //printf("Got a DS18B20 Reading: %d.%02d\n", (int)temperature, (int)(temperature - (int)temperature) * 100); + //debug("Got a DS18B20 Reading: %d.%02d\n", (int)temperature, (int)(temperature - (int)temperature) * 100); result[sensor_id].id = sensor_id; result[sensor_id].value = temperature; sensor_id++; @@ -91,11 +100,11 @@ float ds18b20_read_single(uint8_t pin) { get[k]=onewire_read(pin); } - //printf("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); + //debug("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); uint8_t crc = onewire_crc8(get, 8); if (crc != get[8]){ - printf("CRC check failed: %02X %02X", get[8], crc); + debug("CRC check failed: %02X %02X", get[8], crc); return 0; } @@ -108,7 +117,7 @@ float ds18b20_read_single(uint8_t pin) { temperature = (temp * 625.0)/10000; return temperature; - //printf("Got a DS18B20 Reading: %d.%02d\n", (int)temperature, (int)(temperature - (int)temperature) * 100); + //debug("Got a DS18B20 Reading: %d.%02d\n", (int)temperature, (int)(temperature - (int)temperature) * 100); } bool ds18b20_measure(int pin, ds18b20_addr_t addr, bool wait) { @@ -156,7 +165,7 @@ bool ds18b20_read_scratchpad(int pin, ds18b20_addr_t addr, uint8_t *buffer) { expected_crc = onewire_crc8(buffer, 8); if (crc != expected_crc) { - printf("CRC check failed reading scratchpad: %02x %02x %02x %02x %02x %02x %02x %02x : %02x (expected %02x)\n", buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], buffer[7], crc, expected_crc); + debug("CRC check failed reading scratchpad: %02x %02x %02x %02x %02x %02x %02x %02x : %02x (expected %02x)\n", buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], buffer[7], crc, expected_crc); return false; } @@ -172,8 +181,16 @@ float ds18b20_read_temperature(int pin, ds18b20_addr_t addr) { } temp = scratchpad[1] << 8 | scratchpad[0]; - - return ((float)temp * 625.0)/10000; + + float res; + if ((uint8_t)addr == DS18B20_FAMILY_ID) { + res = ((float)temp * 625.0)/10000; + } + else { + temp = ((temp & 0xfffe) << 3) + (16 - scratchpad[6]) - 4; + res = ((float)temp * 625.0)/10000 - 0.25; + } + return res; } float ds18b20_measure_and_read(int pin, ds18b20_addr_t addr) { @@ -200,10 +217,13 @@ int ds18b20_scan_devices(int pin, ds18b20_addr_t *addr_list, int addr_count) { onewire_search_start(&search); while ((addr = onewire_search_next(&search, pin)) != ONEWIRE_NONE) { - if (found < addr_count) { - addr_list[found] = addr; + uint8_t family_id = (uint8_t)addr; + if (family_id == DS18B20_FAMILY_ID || family_id == DS18S20_FAMILY_ID) { + if (found < addr_count) { + addr_list[found] = addr; + } + found++; } - found++; } return found; } From 8ef476c71ffa89c2991cdd715ab47b3d21736929 Mon Sep 17 00:00:00 2001 From: DanielCerejo Date: Sun, 30 Oct 2016 09:26:29 +0000 Subject: [PATCH 095/349] initialize dhcpserver_task_handle = NULL (#257) corrert error printf "OTA TFTP" to "DHCP Server Error" --- extras/dhcpserver/dhcpserver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 82ccfd1..f1e8f66 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -49,7 +49,7 @@ typedef struct { /* Only one DHCP server task can run at once, so we have global state for it. */ -static xTaskHandle dhcpserver_task_handle; +static xTaskHandle dhcpserver_task_handle=NULL; static server_state_t *state; /* Handlers for various kinds of incoming DHCP messages */ @@ -108,7 +108,7 @@ static void dhcpserver_task(void *pxParameter) state->nc = netconn_new (NETCONN_UDP); if(!state->nc) { - printf("OTA TFTP: Failed to allocate socket.\r\n"); + printf("DHCP Server Error: Failed to allocate socket.\r\n"); return; } From 98de5e573afbda4b8346b19afdd4ff5cb47c058a Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Tue, 1 Nov 2016 15:40:19 +0600 Subject: [PATCH 096/349] RTC drivers fix (#259) --- examples/ds1307/main.c | 27 ++++++++++++++------------- extras/ds1307/ds1307.c | 4 ++-- extras/ds3231/ds3231.c | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/examples/ds1307/main.c b/examples/ds1307/main.c index 2f22447..a1b847e 100644 --- a/examples/ds1307/main.c +++ b/examples/ds1307/main.c @@ -14,32 +14,33 @@ #define SCL_PIN 5 #define SDA_PIN 4 -void user_init (void) +void user_init(void) { - uart_set_baud (0, 115200); - printf ("SDK version:%s\n", sdk_system_get_sdk_version ()); + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init (SCL_PIN, SDA_PIN); - ds1307_start (true); + i2c_init(SCL_PIN, SDA_PIN); + ds1307_start(true); // setup datetime: 2016-10-09 13:50:10 struct tm time = { .tm_year = 2016, - .tm_mon = 10, + .tm_mon = 9, // 0-based .tm_mday = 9, .tm_hour = 13, - .tm_min = 50, - .tm_sec = 10 + .tm_min = 50, + .tm_sec = 10 }; - ds1307_set_time (&time); + ds1307_set_time(&time); while (true) { - ds1307_get_time (&time); + ds1307_get_time(&time); - printf ("%04d-%02d-%02d %02d:%02d:%02d\n", time.tm_year, time.tm_mon, time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); + printf("%04d-%02d-%02d %02d:%02d:%02d\n", time.tm_year, time.tm_mon + 1, + time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); - for (uint32_t i = 0; i < 1000; i ++) - sdk_os_delay_us (500); + for (uint32_t i = 0; i < 1000; i++) + sdk_os_delay_us(500); } } diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c index cd4472f..90abf9d 100644 --- a/extras/ds1307/ds1307.c +++ b/extras/ds1307/ds1307.c @@ -78,14 +78,14 @@ void ds1307_get_time(struct tm *time) if (buf[2] & HOUR12_BIT) { // RTC in 12-hour mode - time->tm_hour = bcd2dec(buf[2] & HOUR12_MASK); + time->tm_hour = bcd2dec(buf[2] & HOUR12_MASK) - 1; if (buf[2] & PM_BIT) time->tm_hour += 12; } else time->tm_hour = bcd2dec(buf[2] & HOUR24_MASK); time->tm_wday = bcd2dec(buf[3]) - 1; time->tm_mday = bcd2dec(buf[4]); - time->tm_mon = bcd2dec(buf[5]); + time->tm_mon = bcd2dec(buf[5]) - 1; time->tm_year = bcd2dec(buf[6]) + 2000; } diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c index 87ce805..543474e 100644 --- a/extras/ds3231/ds3231.c +++ b/extras/ds3231/ds3231.c @@ -270,7 +270,7 @@ bool ds3231_getTime(struct tm *time) time->tm_min = bcdToDec(data[1]); if (data[2] & DS3231_12HOUR_FLAG) { /* 12H */ - time->tm_hour = bcdToDec(data[2] & DS3231_12HOUR_MASK); + time->tm_hour = bcdToDec(data[2] & DS3231_12HOUR_MASK) - 1; /* AM/PM? */ if (data[2] & DS3231_PM_FLAG) time->tm_hour += 12; } else { From e2e6f352889a6829b537f1b64ee3182bd27d31a1 Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 1 Nov 2016 17:14:34 +0200 Subject: [PATCH 097/349] Fix spiff and stdin_uart_interrupt overiding the same read function (#249) * Fix spiff and stdin_uart_interrupt overiding the same read function * Make strong function defninition replace a weak one --- common.mk | 12 +++++++++--- core/newlib_syscalls.c | 16 ++++++++++------ extras/spiffs/esp_spiffs.c | 13 ++++--------- extras/stdin_uart_interrupt/component.mk | 10 ++++++---- .../stdin_uart_interrupt/stdin_uart_interrupt.c | 4 ++-- parameters.mk | 3 +++ 6 files changed, 34 insertions(+), 24 deletions(-) diff --git a/common.mk b/common.mk index c3923c8..41a218f 100644 --- a/common.mk +++ b/common.mk @@ -134,9 +134,15 @@ $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.S $$($(1)_MAKEFILE) $(wildcard $(ROOT)* $$($(1)_CC_BASE) -c $$< -o $$@ $$($(1)_CC_BASE) -MM -MT $$@ -MF $$(@:.o=.d) $$< -# the component is shown to depend on both obj and source files so we get a meaningful error message -# for missing explicitly named source files -$$($(1)_AR): $$($(1)_OBJ_FILES) $$($(1)_SRC_FILES) +$(1)_AR_IN_FILES = $$($(1)_OBJ_FILES) + +# the component is shown to depend on both obj and source files so we get +# a meaningful error message for missing explicitly named source files +ifeq ($(INCLUDE_SRC_IN_AR),1) + $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) +endif + +$$($(1)_AR): $$($(1)_AR_IN_FILES) $(vecho) "AR $$@" $(Q) mkdir -p $$(dir $$@) $(Q) $(AR) cru $$@ $$^ diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 577ecda..f526bea 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -59,14 +59,9 @@ __attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, i } /* syscall implementation for stdio read from UART */ -__attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len ) +__attribute__((weak)) long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len) { int ch, i; - - if(fd != r->_stdin->_file) { - r->_errno = EBADF; - return -1; - } uart_rxfifo_wait(0, 1); for(i = 0; i < len; i++) { ch = uart_getc_nowait(0); @@ -76,6 +71,15 @@ __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len return i; } +__attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len ) +{ + if(fd != r->_stdin->_file) { + r->_errno = EBADF; + return -1; + } + return _read_stdin_r(r, fd, ptr, len); +} + /* Stub syscall implementations follow, to allow compiling newlib functions that pull these in via various codepaths */ diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index c052c2f..96ec743 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -141,21 +141,16 @@ long _write_r(struct _reent *r, int fd, const char *ptr, int len ) return len; } +// This function is weakly defined in core/newlib_syscalls.c +long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len); + // This implementation replaces implementation in core/newlib_syscals.c long _read_r( struct _reent *r, int fd, char *ptr, int len ) { - int ch, i; - if(fd != r->_stdin->_file) { return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); } - uart_rxfifo_wait(0, 1); - for(i = 0; i < len; i++) { - ch = uart_getc_nowait(0); - if (ch < 0) break; - ptr[i] = ch; - } - return i; + return _read_stdin_r(r, fd, ptr, len); } int _open_r(struct _reent *r, const char *pathname, int flags, int mode) diff --git a/extras/stdin_uart_interrupt/component.mk b/extras/stdin_uart_interrupt/component.mk index e00cf81..ba16484 100644 --- a/extras/stdin_uart_interrupt/component.mk +++ b/extras/stdin_uart_interrupt/component.mk @@ -4,10 +4,12 @@ # for 'usage' as this module is a drop-in replacement for the original polled # version of reading from the UART. -INC_DIRS += $(ROOT)extras/stdin_uart_interrupt +INC_DIRS += $(stdin_uart_interrupt_ROOT) # args for passing into compile rule generation -extras/stdin_uart_interrupt_INC_DIR = $(ROOT)extras/stdin_uart_interrupt -extras/stdin_uart_interrupt_SRC_DIR = $(ROOT)extras/stdin_uart_interrupt +stdin_uart_interrupt_SRC_DIR = $(stdin_uart_interrupt_ROOT) -$(eval $(call component_compile_rules,extras/stdin_uart_interrupt)) +INCLUDE_SRC_IN_AR = 0 +EXTRA_LDFLAGS = -Wl,--whole-archive $(stdin_uart_interrupt_AR) -Wl,--no-whole-archive + +$(eval $(call component_compile_rules,stdin_uart_interrupt)) diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c index e85c913..c836651 100644 --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c @@ -75,9 +75,9 @@ uint32_t uart0_num_char(void) return count; } -// _read_r in core/newlib_syscalls.c will be skipped by the linker in favour +// _read_stdin_r in core/newlib_syscalls.c will be skipped by the linker in favour // of this function -long _read_r(struct _reent *r, int fd, char *ptr, int len) +long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len) { if (!inited) uart0_rx_init(); for(int i = 0; i < len; i++) { diff --git a/parameters.mk b/parameters.mk index 8c6a8a3..ddf2580 100644 --- a/parameters.mk +++ b/parameters.mk @@ -42,6 +42,9 @@ PRINTF_SCANF_FLOAT_SUPPORT ?= 1 FLAVOR ?= release # or debug +# Include source files into a static library. It improves error messages. +INCLUDE_SRC_IN_AR ?= 1 + # Compiler names, etc. assume gdb CROSS ?= xtensa-lx106-elf- From 4c84b645669c51f62855141a457d6cdc781a3633 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 3 Nov 2016 16:01:18 +0600 Subject: [PATCH 098/349] HD44780 documentation (#262) --- extras/hd44780/README.md | 119 ++++++++++++++++++++++++++++++++++++ extras/hd44780/img/0801.png | Bin 0 -> 5413 bytes extras/hd44780/img/1601.png | Bin 0 -> 14612 bytes extras/hd44780/img/1602.png | Bin 0 -> 13625 bytes extras/hd44780/img/1604.png | Bin 0 -> 24946 bytes 5 files changed, 119 insertions(+) create mode 100644 extras/hd44780/README.md create mode 100644 extras/hd44780/img/0801.png create mode 100644 extras/hd44780/img/1601.png create mode 100644 extras/hd44780/img/1602.png create mode 100644 extras/hd44780/img/1604.png diff --git a/extras/hd44780/README.md b/extras/hd44780/README.md new file mode 100644 index 0000000..519bc92 --- /dev/null +++ b/extras/hd44780/README.md @@ -0,0 +1,119 @@ +# HD44780 LCD display driver + +## Connection type + +Driver supports GPIO connections to module and I2C GPIO expanders as well. +Define `HD44780_I2C = 0` in application makefile for direct GPIO connection. + +See `examples/i2c_lcd_test` and `examples/hd44780_test` . + +## Display types + +### 8x1 + +#### Memory layout + +![0801 display](img/0801.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 1, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` + +### 16x1 + +#### Memory layout + +![1601 display](img/1601.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +hd44780_init(&lcd); +hd44780_gotoxy(&lcd, 0, 0); +hd44780_puts(&lcd, "Hello wo"); +hd44780_gotoxy(&lcd, 0, 1); +hd44780_puts(&lcd, "rld!"); +``` + +### 16x2, 20x2 + +#### Memory layout + +![1602 display](img/1602.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` + +### 16x4, 20x4 + +#### Memory layout + +![1604 display](img/1604.png) + +#### Example + +```C +hd44780_t lcd = { + .addr = ADDR, + .font = HD44780_FONT_5X8, + .lines = 2, + .pins = { + .rs = 0, + .e = 2, + .d4 = 4, + .d5 = 5, + .d6 = 6, + .d7 = 7, + .bl = 3 + }, + .backlight = true +}; +``` diff --git a/extras/hd44780/img/0801.png b/extras/hd44780/img/0801.png new file mode 100644 index 0000000000000000000000000000000000000000..0a81c09e589bada151cae3ea9aea20d520cb3e4b GIT binary patch literal 5413 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 literal 0 HcmV?d00001 diff --git a/extras/hd44780/img/1601.png b/extras/hd44780/img/1601.png new file mode 100644 index 0000000000000000000000000000000000000000..429bdf60bf49a0a346810cbce19d00b19ef0bb76 GIT binary patch literal 14612 zcmdUW2UL^Ww(hU81w;WwfvpsybOBM3UL+!jG?6C31O!2)cSxiu9i%rQ6a^6!0RaIa zG-;uVNC_Aq(o2BQdwDB+?{m&Q_ue<&Ib*zW-*_2=LH=a@Yt4VHx#pbTx4wkj)lxli z?CdcJf=;O2R=x*8G)53~D2nbd_+tH1Rd|9C9wXfRqE&SR*RT74x&Mnu%%g59r^L0&2iA|1BhZ3eGhGvepmcSU;In54YoP2e zP!c$Kus*wZpItx2O}`@DN4kx@V_REWq=P+@&!Qi99Qax&pXJJ zg8iMEgB^nRJfW2_=Bu{Pc6V4!+qv_QX@XS`yk_}Qjgz;x0taIoV@yY+&+Zua z?k`%OWqzM~Zc)eW?CkuR}$czmlx{^;yd3xB$toSa_%``j-WJs0)LiV7jw7tHXF z1hQ6kw~Yko~;(i(~7r(5lg8ZOI9z1llJFH`37?v!_Tzobn@EoOOw;kY-W|-T1He6+4qjfuiR+Pt6E3->VthA`T znzB>v^Xpue53Y{w!b+|uo`YdY?lRqr4!m)mL7u^--T6>t@Nu6_q11g&=gSSQL;h@& zcD9_Si7xac%jY``P_53#TvLVgGUB{H|M8=Ki!4S7*UyGKRjMZkJi=rm@+7z-)jNej zPp}44vD>I$6V#UljN;J@2P>c59g?3j@Ajq*VTcYX-b#KI{acRJ9u{lRfaAcb`&uPVm+4XS|OAB^c_ za)D{GXhH9XFc0}0FUOov8%GT8;D|NsdZA&ie(}I*xHwjGivvApZPe#fK3LK2e^Kmu zQes<{=O+TWWvV%I*niC+xA*2T>z7FF+xY=;jrjy}g2f4mCpZjnIwH}yoKe+q#k{*)!!?;scZyL>D?lvP^rPTku z^pAfz3G?93&CB%bCm1P6oei%uAG~P=vnZtXd(NEEJ)>+Q5NV338t!XckU6ZIVAK?r zW{S!)Se|}Nm=Ff@l+*R(bXx6jNxwhhw#D4Id8=kt0oU>itc6imyb?PS7Y;5U1 z-5XooHh$R%7ST5bxvn^5A>~~dM^bmgw~7i(nj{CK`Atk{IC5^*akE20=$dwRcVc3q zcMZv^q%PoiP`w+j>VarUcvZ{B9{6y^WxN6@9UzWOX1v3Sl$4b0nrb!<98ZU!Z`+W~LU5q3!d%wtO)3hA9w&gh@Z%&lf^ ziK>xj1DKclfydtJY!6p4Cuj;AW$jwVnm^@w~y)FhmqCFk3Fpr=ZxDeNKxUP+}*8w#dHJ`P#$1=cTbJ| zV%eH*a}{FqR5=qv&}3VUit22((e31^hPkseS;Edezkclm+zH_f6+vIa+9lOral+Y| zNk3ZaKPRheX~f@l8VbWv@RTo%eP2
}4@6ZnyG+Hv(rR+W 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 literal 0 HcmV?d00001 diff --git a/extras/hd44780/img/1604.png b/extras/hd44780/img/1604.png new file mode 100644 index 0000000000000000000000000000000000000000..ac17ba1280e3c1829dc22b8988ee0cadf9fa5ada GIT binary patch literal 24946 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 literal 0 HcmV?d00001 From a5cc728079bb4bb9d0f31891117f129bb8abdeb3 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 5 Nov 2016 21:04:03 +1100 Subject: [PATCH 099/349] FreeRTOS type updates. (#261) --- FreeRTOS/Source/include/FreeRTOSConfig.h | 6 ++++- FreeRTOS/Source/portable/esp8266/port.c | 4 ++-- FreeRTOS/Source/portable/esp8266/portmacro.h | 5 ++--- core/app_main.c | 6 ++--- core/sysparam.c | 2 +- examples/access_point/access_point.c | 2 +- examples/aws_iot/aws_iot.c | 16 +++++++------- examples/aws_iot/ssl_connection.c | 2 +- examples/blink/blink.c | 8 +++---- examples/bmp180_i2c/bmp180_i2c.c | 12 +++++----- examples/bmp280/bmp280_example.c | 8 +++---- examples/button/button.c | 10 ++++----- examples/dht_sensor/dht_sensor.c | 2 +- .../ds18b20_broadcaster/ds18b20_broadcaster.c | 4 ++-- examples/ds18b20_onewire/ds18b20_onewire.c | 2 +- examples/experiments/timers/timers.c | 2 +- .../unaligned_load/unaligned_load.c | 4 ++-- examples/fatfs_rtc/main.c | 2 +- examples/http_get/http_get.c | 10 ++++----- examples/http_get_mbedtls/http_get_mbedtls.c | 4 ++-- examples/i2s_audio/i2s_audio_example.c | 4 ++-- examples/mqtt_client/mqtt_client.c | 12 +++++----- examples/ota_basic/ota_basic.c | 4 ++-- examples/posix_fs/posix_fs_example.c | 4 ++-- examples/simple/simple.c | 6 ++--- examples/sntp/sntp_example.c | 2 +- examples/spiffs/spiffs_example.c | 2 +- examples/ssd1306_i2c/ssd1306_i2c.c | 10 ++++----- examples/terminal/terminal.c | 2 +- examples/tsl2561/tsl2561_example.c | 2 +- examples/ws2812_i2s/ws2812_i2s_colour_loop.c | 2 +- examples/ws2812_rainbow/ws2812_rainbow.c | 2 +- extras/bmp180/README.md | 2 +- extras/bmp180/bmp180.c | 20 ++++++++--------- extras/bmp180/bmp180.h | 8 +++---- extras/bmp280/README.md | 4 ++-- extras/cpp_support/include/countdown.hpp | 4 ++-- extras/cpp_support/include/mutex.hpp | 4 ++-- extras/cpp_support/include/queue.hpp | 6 ++--- extras/cpp_support/include/task.hpp | 4 ++-- extras/dhcpserver/dhcpserver.c | 2 +- extras/ds18b20/ds18b20.c | 6 ++--- extras/fatfs/ffconf.h | 2 +- extras/fatfs/syscall.c | 8 +++---- extras/paho_mqtt_c/MQTTESP8266.c | 14 ++++++------ extras/paho_mqtt_c/MQTTESP8266.h | 2 +- .../stdin_uart_interrupt.c | 2 +- extras/tsl2561/tsl2561.c | 6 ++--- include/etstimer.h | 2 +- lwip/include/arch/sys_arch.h | 12 +++++----- lwip/sys_arch.c | 22 +++++++++---------- open_esplibs/libmain/os_cpu_a.c | 4 ++-- open_esplibs/libmain/timers.c | 2 +- 53 files changed, 151 insertions(+), 148 deletions(-) diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index fc3b283..7df92bf 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -44,7 +44,7 @@ #define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 ) #endif #ifndef configTICK_RATE_HZ -#define configTICK_RATE_HZ ( ( portTickType ) 100 ) +#define configTICK_RATE_HZ ( ( TickType_t ) 100 ) #endif #ifndef configMAX_PRIORITIES #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 15 ) @@ -140,5 +140,9 @@ to exclude the API function. */ #define INCLUDE_uxTaskGetStackHighWaterMark 1 #endif +#ifndef configENABLE_BACKWARD_COMPATIBILITY +#define configENABLE_BACKWARD_COMPATIBILITY 0 +#endif + #endif /* __DEFAULT_FREERTOS_CONFIG_H */ diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index b5d272f..87d846f 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -94,7 +94,7 @@ void *xPortSupervisorStackPointer; /* * Stack initialization */ -portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ) +portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) { #define SET_STKREG(r,v) sp[(r) >> 2] = (portSTACK_TYPE)(v) portSTACK_TYPE *sp, *tp; @@ -259,7 +259,7 @@ void IRAM vPortExitCritical( void ) } /* Backward compatibility with libmain.a and libpp.a and can remove when these are open. */ -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) +signed portBASE_TYPE xTaskGenericCreate( TaskFunction_t pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, TaskHandle_t *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const MemoryRegion_t * const xRegions ) { (void)puxStackBuffer; (void)xRegions; return xTaskCreate( pxTaskCode, (const char * const)pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask); diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h index 645f5c4..19c9248 100644 --- a/FreeRTOS/Source/portable/esp8266/portmacro.h +++ b/FreeRTOS/Source/portable/esp8266/portmacro.h @@ -100,13 +100,12 @@ typedef portSTACK_TYPE StackType_t; typedef portBASE_TYPE BaseType_t; typedef unsigned portBASE_TYPE UBaseType_t; -typedef uint32_t portTickType; typedef uint32_t TickType_t; -#define portMAX_DELAY ( portTickType ) 0xffffffff +#define portMAX_DELAY ( TickType_t ) 0xffffffff /* Architecture specifics. */ #define portSTACK_GROWTH ( -1 ) -#define portTICK_PERIOD_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) +#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) #define portBYTE_ALIGNMENT 8 /*-----------------------------------------------------------*/ diff --git a/core/app_main.c b/core/app_main.c index 6662301..63142cd 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -52,10 +52,10 @@ uint8_t sdk_user_init_flag; struct sdk_info_st sdk_info; // xUserTaskHandle -- .bss+0x28 -xTaskHandle sdk_xUserTaskHandle; +TaskHandle_t sdk_xUserTaskHandle; // xWatchDogTaskHandle -- .bss+0x2c -xTaskHandle sdk_xWatchDogTaskHandle; +TaskHandle_t sdk_xWatchDogTaskHandle; /* Static function prototypes */ @@ -227,7 +227,7 @@ void IRAM sdk_user_start(void) { } // .text+0x3a8 -void IRAM vApplicationStackOverflowHook(xTaskHandle task, char *task_name) { +void IRAM vApplicationStackOverflowHook(TaskHandle_t task, char *task_name) { printf("Task stack overflow (high water mark=%lu name=\"%s\")\n", uxTaskGetStackHighWaterMark(task), task_name); } diff --git a/core/sysparam.c b/core/sysparam.c index 290ddb3..f00f161 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -114,7 +114,7 @@ static struct { uint32_t end_addr; size_t region_size; bool force_compact; - xSemaphoreHandle sem; + SemaphoreHandle_t sem; } _sysparam_info; /***************************** Internal routines *****************************/ diff --git a/examples/access_point/access_point.c b/examples/access_point/access_point.c index 05e344a..f8fcd50 100644 --- a/examples/access_point/access_point.c +++ b/examples/access_point/access_point.c @@ -84,7 +84,7 @@ static void telnetTask(void *pvParameters) char buf[80]; snprintf(buf, sizeof(buf), "Uptime %d seconds\r\n", - xTaskGetTickCount()*portTICK_RATE_MS/1000); + xTaskGetTickCount()*portTICK_PERIOD_MS/1000); netconn_write(client, buf, strlen(buf), NETCONN_COPY); snprintf(buf, sizeof(buf), "Free heap %d bytes\r\n", (int)xPortGetFreeHeapSize()); netconn_write(client, buf, strlen(buf), NETCONN_COPY); diff --git a/examples/aws_iot/aws_iot.c b/examples/aws_iot/aws_iot.c index 8b26b99..08ce9f4 100644 --- a/examples/aws_iot/aws_iot.c +++ b/examples/aws_iot/aws_iot.c @@ -31,7 +31,7 @@ extern char *ca_cert, *client_endpoint, *client_cert, *client_key; static int wifi_alive = 0; static int ssl_reset; static SSLConnection *ssl_conn; -static xQueueHandle publish_queue; +static QueueHandle_t publish_queue; static void beat_task(void *pvParameters) { char msg[16]; @@ -39,7 +39,7 @@ static void beat_task(void *pvParameters) { while (1) { if (!wifi_alive) { - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); continue; } @@ -50,7 +50,7 @@ static void beat_task(void *pvParameters) { printf("Publish queue overflow\r\n"); } - vTaskDelay(10000 / portTICK_RATE_MS); + vTaskDelay(10000 / portTICK_PERIOD_MS); } } @@ -142,7 +142,7 @@ static void mqtt_task(void *pvParameters) { ssl_conn = (SSLConnection *) malloc(sizeof(SSLConnection)); while (1) { if (!wifi_alive) { - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); continue; } @@ -191,7 +191,7 @@ static void mqtt_task(void *pvParameters) { while (wifi_alive && !ssl_reset) { char msg[64]; while (xQueueReceive(publish_queue, (void *) msg, 0) == pdTRUE) { - portTickType task_tick = xTaskGetTickCount(); + TickType_t task_tick = xTaskGetTickCount(); uint32_t free_heap = xPortGetFreeHeapSize(); uint32_t free_stack = uxTaskGetStackHighWaterMark(NULL); snprintf(msg, sizeof(msg), "%u: free heap %u, free stack %u", @@ -246,7 +246,7 @@ static void wifi_task(void *pvParameters) { printf("WiFi: connection failed\r\n"); break; } - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); --retries; } @@ -256,12 +256,12 @@ static void wifi_task(void *pvParameters) { printf("WiFi: Connected\n\r"); wifi_alive = 1; } - vTaskDelay(500 / portTICK_RATE_MS); + vTaskDelay(500 / portTICK_PERIOD_MS); } wifi_alive = 0; printf("WiFi: disconnected\n\r"); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } } diff --git a/examples/aws_iot/ssl_connection.c b/examples/aws_iot/ssl_connection.c index be5bb23..24dafb0 100644 --- a/examples/aws_iot/ssl_connection.c +++ b/examples/aws_iot/ssl_connection.c @@ -133,7 +133,7 @@ int ssl_connect(SSLConnection* conn, const char* host, int port) { } handle_error(ret); - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(5000 / portTICK_PERIOD_MS); } mbedtls_ssl_get_record_expansion(&conn->ssl_ctx); diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 341ac08..9de0f20 100644 --- a/examples/blink/blink.c +++ b/examples/blink/blink.c @@ -19,9 +19,9 @@ void blinkenTask(void *pvParameters) gpio_enable(gpio, GPIO_OUTPUT); while(1) { gpio_write(gpio, 1); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); gpio_write(gpio, 0); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } } @@ -45,9 +45,9 @@ void blinkenRegisterTask(void *pvParameters) IOMUX_GPIO2 = IOMUX_GPIO2_FUNC_GPIO | IOMUX_PIN_OUTPUT_ENABLE; /* change this line if you change 'gpio' */ while(1) { GPIO.OUT_SET = BIT(gpio); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); GPIO.OUT_CLEAR = BIT(gpio); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } } diff --git a/examples/bmp180_i2c/bmp180_i2c.c b/examples/bmp180_i2c/bmp180_i2c.c index d05aca8..1e188bc 100644 --- a/examples/bmp180_i2c/bmp180_i2c.c +++ b/examples/bmp180_i2c/bmp180_i2c.c @@ -26,11 +26,11 @@ typedef struct } my_event_t; // Communication Queue -static xQueueHandle mainqueue; -static xTimerHandle timerHandle; +static QueueHandle_t mainqueue; +static TimerHandle_t timerHandle; // Own BMP180 User Inform Implementation -bool bmp180_i2c_informUser(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) +bool bmp180_i2c_informUser(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) { my_event_t ev; @@ -43,7 +43,7 @@ bool bmp180_i2c_informUser(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_ } // Timer call back -static void bmp180_i2c_timer_cb(xTimerHandle xTimer) +static void bmp180_i2c_timer_cb(TimerHandle_t xTimer) { my_event_t ev; ev.event_type = MY_EVT_TIMER; @@ -55,7 +55,7 @@ static void bmp180_i2c_timer_cb(xTimerHandle xTimer) void bmp180_task(void *pvParameters) { // Received pvParameters is communication queue - xQueueHandle *com_queue = (xQueueHandle *)pvParameters; + QueueHandle_t *com_queue = (QueueHandle_t *)pvParameters; printf("%s: Started user interface task\n", __FUNCTION__); @@ -116,7 +116,7 @@ void user_init(void) xTaskCreate(bmp180_task, "bmp180_task", 256, &mainqueue, 2, NULL); // Create Timer (Trigger a measurement every second) - timerHandle = xTimerCreate("BMP180 Trigger", 1000/portTICK_RATE_MS, pdTRUE, NULL, bmp180_i2c_timer_cb); + timerHandle = xTimerCreate("BMP180 Trigger", 1000/portTICK_PERIOD_MS, pdTRUE, NULL, bmp180_i2c_timer_cb); if (timerHandle != NULL) { diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c index e80d6b0..c4c7c11 100644 --- a/examples/bmp280/bmp280_example.c +++ b/examples/bmp280/bmp280_example.c @@ -31,14 +31,14 @@ static void bmp280_task_forced(void *pvParameters) while (1) { while (!bmp280_init(&bmp280_dev, ¶ms)) { printf("BMP280 initialization failed\n"); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } bool bme280p = bmp280_dev.id == BME280_CHIP_ID; printf("BMP280: found %s\n", bme280p ? "BME280" : "BMP280"); while(1) { - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); if (!bmp280_force_measurement(&bmp280_dev)) { printf("Failed initiating measurement\n"); break; @@ -72,14 +72,14 @@ static void bmp280_task_normal(void *pvParameters) while (1) { while (!bmp280_init(&bmp280_dev, ¶ms)) { printf("BMP280 initialization failed\n"); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } bool bme280p = bmp280_dev.id == BME280_CHIP_ID; printf("BMP280: found %s\n", bme280p ? "BME280" : "BMP280"); while(1) { - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); if (!bmp280_read_float(&bmp280_dev, &temperature, &pressure, &humidity)) { printf("Temperature/pressure reading failed\n"); break; diff --git a/examples/button/button.c b/examples/button/button.c index 7bebf81..a371f0d 100644 --- a/examples/button/button.c +++ b/examples/button/button.c @@ -34,8 +34,8 @@ void buttonPollTask(void *pvParameters) { taskYIELD(); } - printf("Polled for button press at %dms\r\n", xTaskGetTickCount()*portTICK_RATE_MS); - vTaskDelay(200 / portTICK_RATE_MS); + printf("Polled for button press at %dms\r\n", xTaskGetTickCount()*portTICK_PERIOD_MS); + vTaskDelay(200 / portTICK_PERIOD_MS); } } @@ -50,14 +50,14 @@ void buttonPollTask(void *pvParameters) void buttonIntTask(void *pvParameters) { printf("Waiting for button press interrupt on gpio %d...\r\n", gpio); - xQueueHandle *tsqueue = (xQueueHandle *)pvParameters; + QueueHandle_t *tsqueue = (QueueHandle_t *)pvParameters; gpio_set_interrupt(gpio, int_type); uint32_t last = 0; while(1) { uint32_t button_ts; xQueueReceive(*tsqueue, &button_ts, portMAX_DELAY); - button_ts *= portTICK_RATE_MS; + button_ts *= portTICK_PERIOD_MS; if(last < button_ts-200) { printf("Button interrupt fired at %dms\r\n", button_ts); last = button_ts; @@ -65,7 +65,7 @@ void buttonIntTask(void *pvParameters) } } -static xQueueHandle tsqueue; +static QueueHandle_t tsqueue; void GPIO_HANDLER(void) { diff --git a/examples/dht_sensor/dht_sensor.c b/examples/dht_sensor/dht_sensor.c index 32988b1..22f110e 100644 --- a/examples/dht_sensor/dht_sensor.c +++ b/examples/dht_sensor/dht_sensor.c @@ -38,7 +38,7 @@ void dhtMeasurementTask(void *pvParameters) } // Three second delay... - vTaskDelay(3000 / portTICK_RATE_MS); + vTaskDelay(3000 / portTICK_PERIOD_MS); } } diff --git a/examples/ds18b20_broadcaster/ds18b20_broadcaster.c b/examples/ds18b20_broadcaster/ds18b20_broadcaster.c index e5bcfea..5b7f1dc 100644 --- a/examples/ds18b20_broadcaster/ds18b20_broadcaster.c +++ b/examples/ds18b20_broadcaster/ds18b20_broadcaster.c @@ -88,7 +88,7 @@ void broadcast_temperature(void *pvParameters) } netbuf_delete(buf); // De-allocate packet buffer } - vTaskDelay(1000/portTICK_RATE_MS); + vTaskDelay(1000/portTICK_PERIOD_MS); } err = netconn_disconnect(conn); @@ -97,7 +97,7 @@ void broadcast_temperature(void *pvParameters) err = netconn_delete(conn); printf("%s : Deleted connection (%s)\n", __FUNCTION__, lwip_strerr(err)); - vTaskDelay(1000/portTICK_RATE_MS); + vTaskDelay(1000/portTICK_PERIOD_MS); } } diff --git a/examples/ds18b20_onewire/ds18b20_onewire.c b/examples/ds18b20_onewire/ds18b20_onewire.c index 098f59f..73ff0b7 100644 --- a/examples/ds18b20_onewire/ds18b20_onewire.c +++ b/examples/ds18b20_onewire/ds18b20_onewire.c @@ -64,7 +64,7 @@ void print_temperature(void *pvParameters) { // Wait for a little bit between each sample (note that the // ds18b20_measure_and_read_multi operation already takes at // least 750ms to run, so this is on top of that delay). - vTaskDelay(LOOP_DELAY_MS / portTICK_RATE_MS); + vTaskDelay(LOOP_DELAY_MS / portTICK_PERIOD_MS); } } } diff --git a/examples/experiments/timers/timers.c b/examples/experiments/timers/timers.c index bc3aa2b..a2e5e66 100644 --- a/examples/experiments/timers/timers.c +++ b/examples/experiments/timers/timers.c @@ -93,7 +93,7 @@ void timerRegTask(void *pvParameters) printf("frc2 handler called %d times, last value 0x%08x\r\n", frc2_handler_call_count, frc2_last_count_val); - vTaskDelay(500 / portTICK_RATE_MS); + vTaskDelay(500 / portTICK_PERIOD_MS); } } diff --git a/examples/experiments/unaligned_load/unaligned_load.c b/examples/experiments/unaligned_load/unaligned_load.c index 984a566..f577ded 100644 --- a/examples/experiments/unaligned_load/unaligned_load.c +++ b/examples/experiments/unaligned_load/unaligned_load.c @@ -229,7 +229,7 @@ void user_init(void) test_isr(); test_sign_extension(); - xTaskHandle taskHandle; + TaskHandle_t taskHandle; xTaskCreate(test_system_interaction, "interactionTask", 256, &taskHandle, 2, NULL); } @@ -304,7 +304,7 @@ static void test_system_interaction() */ } uint32_t ticks = xTaskGetTickCount() - start; - printf("Timer interaction test PASSED after %dms.\n", ticks*portTICK_RATE_MS); + printf("Timer interaction test PASSED after %dms.\n", ticks*portTICK_PERIOD_MS); abort(); } diff --git a/examples/fatfs_rtc/main.c b/examples/fatfs_rtc/main.c index 0c818d0..613eb6f 100644 --- a/examples/fatfs_rtc/main.c +++ b/examples/fatfs_rtc/main.c @@ -118,7 +118,7 @@ void rewrite_file_task(void *p) } while (false); - vTaskDelay(DELAY_MS / portTICK_RATE_MS); + vTaskDelay(DELAY_MS / portTICK_PERIOD_MS); } } diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c index 408d5b1..0fe0ae1 100644 --- a/examples/http_get/http_get.c +++ b/examples/http_get/http_get.c @@ -43,7 +43,7 @@ void http_get_task(void *pvParameters) printf("DNS lookup failed err=%d res=%p\r\n", err, res); if(res) freeaddrinfo(res); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); failures++; continue; } @@ -55,7 +55,7 @@ void http_get_task(void *pvParameters) if(s < 0) { printf("... Failed to allocate socket.\r\n"); freeaddrinfo(res); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); failures++; continue; } @@ -66,7 +66,7 @@ void http_get_task(void *pvParameters) close(s); freeaddrinfo(res); printf("... socket connect failed.\r\n"); - vTaskDelay(4000 / portTICK_RATE_MS); + vTaskDelay(4000 / portTICK_PERIOD_MS); failures++; continue; } @@ -81,7 +81,7 @@ void http_get_task(void *pvParameters) if (write(s, req, strlen(req)) < 0) { printf("... socket send failed\r\n"); close(s); - vTaskDelay(4000 / portTICK_RATE_MS); + vTaskDelay(4000 / portTICK_PERIOD_MS); failures++; continue; } @@ -106,7 +106,7 @@ void http_get_task(void *pvParameters) printf("successes = %d failures = %d\r\n", successes, failures); for(int countdown = 10; countdown >= 0; countdown--) { printf("%d... ", countdown); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } printf("\r\nStarting again!\r\n"); } diff --git a/examples/http_get_mbedtls/http_get_mbedtls.c b/examples/http_get_mbedtls/http_get_mbedtls.c index fa7c114..596a1f7 100644 --- a/examples/http_get_mbedtls/http_get_mbedtls.c +++ b/examples/http_get_mbedtls/http_get_mbedtls.c @@ -181,7 +181,7 @@ void http_get_task(void *pvParameters) err_t dns_err; ip_addr_t host_ip; do { - vTaskDelay(500 / portTICK_RATE_MS); + vTaskDelay(500 / portTICK_PERIOD_MS); dns_err = netconn_gethostbyname(WEB_SERVER, &host_ip); } while(dns_err != ERR_OK); printf("done.\n"); @@ -313,7 +313,7 @@ void http_get_task(void *pvParameters) printf("\n\nsuccesses = %d failures = %d\n", successes, failures); for(int countdown = successes ? 10 : 5; countdown >= 0; countdown--) { printf("%d... ", countdown); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } printf("\nStarting again!\n"); } diff --git a/examples/i2s_audio/i2s_audio_example.c b/examples/i2s_audio/i2s_audio_example.c index ddb1387..1972692 100644 --- a/examples/i2s_audio/i2s_audio_example.c +++ b/examples/i2s_audio/i2s_audio_example.c @@ -57,7 +57,7 @@ static dma_descriptor_t dma_block_list[DMA_QUEUE_SIZE]; static uint8_t dma_buffer[DMA_QUEUE_SIZE][DMA_BUFFER_SIZE]; // Queue of empty DMA blocks -static xQueueHandle dma_queue; +static QueueHandle_t dma_queue; /** * Create a circular list of DMA descriptors @@ -183,7 +183,7 @@ void play_task(void *pvParameters) printf("underrun counter: %d\n", underrun_counter); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } close(fd); diff --git a/examples/mqtt_client/mqtt_client.c b/examples/mqtt_client/mqtt_client.c index 2b9e764..6efbd2d 100644 --- a/examples/mqtt_client/mqtt_client.c +++ b/examples/mqtt_client/mqtt_client.c @@ -24,18 +24,18 @@ #define MQTT_USER NULL #define MQTT_PASS NULL -xSemaphoreHandle wifi_alive; -xQueueHandle publish_queue; +SemaphoreHandle_t wifi_alive; +QueueHandle_t publish_queue; #define PUB_MSG_LEN 16 static void beat_task(void *pvParameters) { - portTickType xLastWakeTime = xTaskGetTickCount(); + TickType_t xLastWakeTime = xTaskGetTickCount(); char msg[PUB_MSG_LEN]; int count = 0; while (1) { - vTaskDelayUntil(&xLastWakeTime, 10000 / portTICK_RATE_MS); + vTaskDelayUntil(&xLastWakeTime, 10000 / portTICK_PERIOD_MS); printf("beat\r\n"); snprintf(msg, PUB_MSG_LEN, "Beat %d\r\n", count++); if (xQueueSend(publish_queue, (void *)msg, 0) == pdFALSE) { @@ -190,7 +190,7 @@ static void wifi_task(void *pvParameters) printf("WiFi: connection failed\r\n"); break; } - vTaskDelay( 1000 / portTICK_RATE_MS ); + vTaskDelay( 1000 / portTICK_PERIOD_MS ); --retries; } if (status == STATION_GOT_IP) { @@ -205,7 +205,7 @@ static void wifi_task(void *pvParameters) } printf("WiFi: disconnected\n\r"); sdk_wifi_station_disconnect(); - vTaskDelay( 1000 / portTICK_RATE_MS ); + vTaskDelay( 1000 / portTICK_PERIOD_MS ); } } diff --git a/examples/ota_basic/ota_basic.c b/examples/ota_basic/ota_basic.c index 5083539..23102dd 100644 --- a/examples/ota_basic/ota_basic.c +++ b/examples/ota_basic/ota_basic.c @@ -109,10 +109,10 @@ void tftp_client_task(void *pvParameters) */ while(1) { tftpclient_download_and_verify_file1(slot, &conf); - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(5000 / portTICK_PERIOD_MS); tftpclient_download_file2(slot); - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(5000 / portTICK_PERIOD_MS); } } diff --git a/examples/posix_fs/posix_fs_example.c b/examples/posix_fs/posix_fs_example.c index 22877c4..610f58d 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/examples/posix_fs/posix_fs_example.c @@ -29,14 +29,14 @@ void test_task(void *pvParameters) esp_spiffs_mount(); while (1) { - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(5000 / portTICK_PERIOD_MS); if (fs_load_test_run(100)) { printf("PASS\n"); } else { printf("FAIL\n"); } - vTaskDelay(5000 / portTICK_RATE_MS); + vTaskDelay(5000 / portTICK_PERIOD_MS); float write_rate, read_rate; if (fs_speed_test_run(get_current_time, &write_rate, &read_rate)) { printf("Read speed: %.0f bytes/s\n", read_rate * 1000); diff --git a/examples/simple/simple.c b/examples/simple/simple.c index 8134bb9..2f29df1 100644 --- a/examples/simple/simple.c +++ b/examples/simple/simple.c @@ -8,7 +8,7 @@ void task1(void *pvParameters) { - xQueueHandle *queue = (xQueueHandle *)pvParameters; + QueueHandle_t *queue = (QueueHandle_t *)pvParameters; printf("Hello from task1!\r\n"); uint32_t count = 0; while(1) { @@ -21,7 +21,7 @@ void task1(void *pvParameters) void task2(void *pvParameters) { printf("Hello from task 2!\r\n"); - xQueueHandle *queue = (xQueueHandle *)pvParameters; + QueueHandle_t *queue = (QueueHandle_t *)pvParameters; while(1) { uint32_t count; if(xQueueReceive(*queue, &count, 1000)) { @@ -32,7 +32,7 @@ void task2(void *pvParameters) } } -static xQueueHandle mainqueue; +static QueueHandle_t mainqueue; void user_init(void) { diff --git a/examples/sntp/sntp_example.c b/examples/sntp/sntp_example.c index a68365a..0a933a2 100644 --- a/examples/sntp/sntp_example.c +++ b/examples/sntp/sntp_example.c @@ -27,7 +27,7 @@ #define SNTP_SERVERS "0.pool.ntp.org", "1.pool.ntp.org", \ "2.pool.ntp.org", "3.pool.ntp.org" -#define vTaskDelayMs(ms) vTaskDelay((ms)/portTICK_RATE_MS) +#define vTaskDelayMs(ms) vTaskDelay((ms)/portTICK_PERIOD_MS) #define UNUSED_ARG(x) (void)x void sntp_tsk(void *pvParameters) diff --git a/examples/spiffs/spiffs_example.c b/examples/spiffs/spiffs_example.c index 5252a92..2d0dcbf 100644 --- a/examples/spiffs/spiffs_example.c +++ b/examples/spiffs/spiffs_example.c @@ -96,7 +96,7 @@ void test_task(void *pvParameters) } while (1) { - vTaskDelay(2000 / portTICK_RATE_MS); + vTaskDelay(2000 / portTICK_PERIOD_MS); example_write_file(); diff --git a/examples/ssd1306_i2c/ssd1306_i2c.c b/examples/ssd1306_i2c/ssd1306_i2c.c index 8ee64ba..7dadfb4 100644 --- a/examples/ssd1306_i2c/ssd1306_i2c.c +++ b/examples/ssd1306_i2c/ssd1306_i2c.c @@ -22,7 +22,7 @@ static uint8_t buffer[SSD1306_ROWS * SSD1306_COLS / 8]; static void ssd1306_task(void *pvParameters) { printf("%s: Started user interface task\n", __FUNCTION__); - vTaskDelay(1000/portTICK_RATE_MS); + vTaskDelay(1000/portTICK_PERIOD_MS); if (ssd1306_load_xbm(image_bits, buffer)) @@ -30,14 +30,14 @@ static void ssd1306_task(void *pvParameters) ssd1306_set_whole_display_lighting(false); while (1) { - vTaskDelay(2000 / portTICK_RATE_MS); + vTaskDelay(2000 / portTICK_PERIOD_MS); printf("%s: steel alive\n", __FUNCTION__); } error_loop: printf("%s: error while loading framebuffer into SSD1306\n", __func__); for(;;){ - vTaskDelay(2000 / portTICK_RATE_MS); + vTaskDelay(2000 / portTICK_PERIOD_MS); printf("%s: error loop\n", __FUNCTION__); } } @@ -54,12 +54,12 @@ void user_init(void) if (ssd1306_init()){ for (;;) { printf("%s: failed to init SSD1306 lcd\n", __func__); - vTaskDelay(1000/portTICK_RATE_MS); + vTaskDelay(1000/portTICK_PERIOD_MS); } } ssd1306_set_whole_display_lighting(true); - vTaskDelay(1000/portTICK_RATE_MS); + vTaskDelay(1000/portTICK_PERIOD_MS); // Create user interface task xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); } diff --git a/examples/terminal/terminal.c b/examples/terminal/terminal.c index 83ea734..6f8b940 100644 --- a/examples/terminal/terminal.c +++ b/examples/terminal/terminal.c @@ -59,7 +59,7 @@ static void cmd_help(uint32_t argc, char *argv[]) static void cmd_sleep(uint32_t argc, char *argv[]) { printf("Type away while I take a 2 second nap (ie. let you test the UART HW FIFO\n"); - vTaskDelay(2000 / portTICK_RATE_MS); + vTaskDelay(2000 / portTICK_PERIOD_MS); } static void handle_command(char *cmd) diff --git a/examples/tsl2561/tsl2561_example.c b/examples/tsl2561/tsl2561_example.c index 447f669..b97804b 100644 --- a/examples/tsl2561/tsl2561_example.c +++ b/examples/tsl2561/tsl2561_example.c @@ -56,7 +56,7 @@ void tsl2561MeasurementTask(void *pvParameters) } // 0.1 second delay - vTaskDelay(100 / portTICK_RATE_MS); + vTaskDelay(100 / portTICK_PERIOD_MS); } } diff --git a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c index 7644494..05f47c4 100644 --- a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c +++ b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c @@ -70,7 +70,7 @@ static void demo(void *pvParameters) sizeof(ws2812_pixel_t)); ws2812_i2s_update(pixels); - vTaskDelay(20 / portTICK_RATE_MS); + vTaskDelay(20 / portTICK_PERIOD_MS); } } } diff --git a/examples/ws2812_rainbow/ws2812_rainbow.c b/examples/ws2812_rainbow/ws2812_rainbow.c index 034b099..1f67775 100644 --- a/examples/ws2812_rainbow/ws2812_rainbow.c +++ b/examples/ws2812_rainbow/ws2812_rainbow.c @@ -18,7 +18,7 @@ #include "ws2812.h" -#define delay_ms(ms) vTaskDelay((ms) / portTICK_RATE_MS) +#define delay_ms(ms) vTaskDelay((ms) / portTICK_PERIOD_MS) /** GPIO number used to control the RGBs */ diff --git a/extras/bmp180/README.md b/extras/bmp180/README.md index a8c41f5..9da464b 100644 --- a/extras/bmp180/README.md +++ b/extras/bmp180/README.md @@ -34,7 +34,7 @@ As all data aqquired from the BMP180/BMP085 is provided to the `bmp180_informUse ``` // Own BMP180 User Inform Implementation -bool my_informUser(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) { +bool my_informUser(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) { my_event_t ev; ev.event_type = MY_EVT_BMP180; diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index 805a620..c3c8afd 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -214,20 +214,20 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, typedef struct { uint8_t cmd; - const xQueueHandle* resultQueue; + const QueueHandle_t* resultQueue; } bmp180_command_t; -// Just works due to the fact that xQueueHandle is a "void *" -static xQueueHandle bmp180_rx_queue = NULL; -static xTaskHandle bmp180_task_handle = NULL; +// Just works due to the fact that QueueHandle_t is a "void *" +static QueueHandle_t bmp180_rx_queue = NULL; +static TaskHandle_t bmp180_task_handle = NULL; // // Forward declarations // -static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); +static bool bmp180_informUser_Impl(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); // Set default implementation .. User gets result as bmp180_result_t event -bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) = bmp180_informUser_Impl; +bool (*bmp180_informUser)(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) = bmp180_informUser_Impl; // I2C Driver Task static void bmp180_driver_task(void *pvParameters) @@ -295,7 +295,7 @@ static bool bmp180_createTask() } // Default user inform implementation -static bool bmp180_informUser_Impl(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) +static bool bmp180_informUser_Impl(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure) { bmp180_result_t result; @@ -328,7 +328,7 @@ bool bmp180_init(uint8_t scl, uint8_t sda) return result; } -void bmp180_trigger_measurement(const xQueueHandle* resultQueue) +void bmp180_trigger_measurement(const QueueHandle_t* resultQueue) { bmp180_command_t c; @@ -339,7 +339,7 @@ void bmp180_trigger_measurement(const xQueueHandle* resultQueue) } -void bmp180_trigger_pressure_measurement(const xQueueHandle* resultQueue) +void bmp180_trigger_pressure_measurement(const QueueHandle_t* resultQueue) { bmp180_command_t c; @@ -349,7 +349,7 @@ void bmp180_trigger_pressure_measurement(const xQueueHandle* resultQueue) xQueueSend(bmp180_rx_queue, &c, 0); } -void bmp180_trigger_temperature_measurement(const xQueueHandle* resultQueue) +void bmp180_trigger_temperature_measurement(const QueueHandle_t* resultQueue) { bmp180_command_t c; diff --git a/extras/bmp180/bmp180.h b/extras/bmp180/bmp180.h index e7fc470..2f46150 100644 --- a/extras/bmp180/bmp180.h +++ b/extras/bmp180/bmp180.h @@ -45,16 +45,16 @@ typedef struct bool bmp180_init(uint8_t scl, uint8_t sda); // Trigger a "complete" measurement (temperature and pressure will be valid when given to "bmp180_informUser) -void bmp180_trigger_measurement(const xQueueHandle* resultQueue); +void bmp180_trigger_measurement(const QueueHandle_t* resultQueue); // Trigger a "temperature only" measurement (only temperature will be valid when given to "bmp180_informUser) -void bmp180_trigger_temperature_measurement(const xQueueHandle* resultQueue); +void bmp180_trigger_temperature_measurement(const QueueHandle_t* resultQueue); // Trigger a "pressure only" measurement (only pressure will be valid when given to "bmp180_informUser) -void bmp180_trigger_pressure_measurement(const xQueueHandle* resultQueue); +void bmp180_trigger_pressure_measurement(const QueueHandle_t* resultQueue); // Give the user the chance to create it's own handler -extern bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); +extern bool (*bmp180_informUser)(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); // Calibration constants typedef struct diff --git a/extras/bmp280/README.md b/extras/bmp280/README.md index 9faed88..09e0115 100644 --- a/extras/bmp280/README.md +++ b/extras/bmp280/README.md @@ -72,7 +72,7 @@ while(1) { printf("Pressure: %.2f Pa, Temperature: %.2f C", pressure, temperature); if (bme280p) printf(", Humidity: %.2f\n", humidity); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } ``` @@ -96,7 +96,7 @@ while(1) { printf(", Humidity: %.2f\n", humidity); else printf("\n"); - vTaskDelay(1000 / portTICK_RATE_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); } ``` diff --git a/extras/cpp_support/include/countdown.hpp b/extras/cpp_support/include/countdown.hpp index 87c8f3f..81f3853 100644 --- a/extras/cpp_support/include/countdown.hpp +++ b/extras/cpp_support/include/countdown.hpp @@ -35,7 +35,7 @@ namespace esp_open_rtos { namespace timer { -#define __millis() (xTaskGetTickCount() * portTICK_RATE_MS) +#define __millis() (xTaskGetTickCount() * portTICK_PERIOD_MS) /****************************************************************************************************************** * countdown_t @@ -93,7 +93,7 @@ public: } private: - portTickType interval_end_ms; + TickType_t interval_end_ms; }; } // namespace timer { diff --git a/extras/cpp_support/include/mutex.hpp b/extras/cpp_support/include/mutex.hpp index aaf29db..62b490c 100644 --- a/extras/cpp_support/include/mutex.hpp +++ b/extras/cpp_support/include/mutex.hpp @@ -86,7 +86,7 @@ public: */ inline int try_lock(unsigned long ms) { - return (xSemaphoreTake(mutex, ms / portTICK_RATE_MS) == pdTRUE) ? 0 : -1; + return (xSemaphoreTake(mutex, ms / portTICK_PERIOD_MS) == pdTRUE) ? 0 : -1; } /** * @@ -98,7 +98,7 @@ public: } private: - xSemaphoreHandle mutex; + SemaphoreHandle_t mutex; // Disable copy construction and assignment. mutex_t (const mutex_t&); diff --git a/extras/cpp_support/include/queue.hpp b/extras/cpp_support/include/queue.hpp index 047ce29..38a0493 100644 --- a/extras/cpp_support/include/queue.hpp +++ b/extras/cpp_support/include/queue.hpp @@ -83,7 +83,7 @@ public: */ inline int post(const Data& data, unsigned long ms = 0) { - return (xQueueSend(queue, &data, ms / portTICK_RATE_MS) == pdTRUE) ? 0 : -1; + return (xQueueSend(queue, &data, ms / portTICK_PERIOD_MS) == pdTRUE) ? 0 : -1; } /** * @@ -93,7 +93,7 @@ public: */ inline int receive(Data& data, unsigned long ms = 0) { - return (xQueueReceive(queue, &data, ms / portTICK_RATE_MS) == pdTRUE) ? 0 : -1; + return (xQueueReceive(queue, &data, ms / portTICK_PERIOD_MS) == pdTRUE) ? 0 : -1; } /** * @@ -110,7 +110,7 @@ public: } private: - xQueueHandle queue; + QueueHandle_t queue; // Disable copy construction. queue_t (const queue_t&); diff --git a/extras/cpp_support/include/task.hpp b/extras/cpp_support/include/task.hpp index e87e32a..75a716d 100644 --- a/extras/cpp_support/include/task.hpp +++ b/extras/cpp_support/include/task.hpp @@ -66,7 +66,7 @@ protected: */ void sleep(unsigned long ms) { - vTaskDelay(ms / portTICK_RATE_MS); + vTaskDelay(ms / portTICK_PERIOD_MS); } /** * @@ -74,7 +74,7 @@ protected: */ inline unsigned long millis() { - return xTaskGetTickCount() * portTICK_RATE_MS; + return xTaskGetTickCount() * portTICK_PERIOD_MS; } private: diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index f1e8f66..d87daab 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -49,7 +49,7 @@ typedef struct { /* Only one DHCP server task can run at once, so we have global state for it. */ -static xTaskHandle dhcpserver_task_handle=NULL; +static TaskHandle_t dhcpserver_task_handle = NULL; static server_state_t *state; /* Handlers for various kinds of incoming DHCP messages */ diff --git a/extras/ds18b20/ds18b20.c b/extras/ds18b20/ds18b20.c index 466422e..36449d7 100644 --- a/extras/ds18b20/ds18b20.c +++ b/extras/ds18b20/ds18b20.c @@ -16,7 +16,7 @@ #define DS18B20_ALARMSEARCH 0xEC #define DS18B20_CONVERT_T 0x44 -#define os_sleep_ms(x) vTaskDelay(((x) + portTICK_RATE_MS - 1) / portTICK_RATE_MS) +#define os_sleep_ms(x) vTaskDelay(((x) + portTICK_PERIOD_MS - 1) / portTICK_PERIOD_MS) #define DS18B20_FAMILY_ID 0x28 #define DS18S20_FAMILY_ID 0x10 @@ -46,7 +46,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { onewire_write(pin, DS18B20_CONVERT_T); onewire_power(pin); - vTaskDelay(750 / portTICK_RATE_MS); + vTaskDelay(750 / portTICK_PERIOD_MS); onewire_reset(pin); onewire_select(pin, addr); @@ -88,7 +88,7 @@ float ds18b20_read_single(uint8_t pin) { onewire_write(pin, DS18B20_CONVERT_T); onewire_power(pin); - vTaskDelay(750 / portTICK_RATE_MS); + vTaskDelay(750 / portTICK_PERIOD_MS); onewire_reset(pin); onewire_skip_rom(pin); diff --git a/extras/fatfs/ffconf.h b/extras/fatfs/ffconf.h index 00b79a4..7962e2a 100644 --- a/extras/fatfs/ffconf.h +++ b/extras/fatfs/ffconf.h @@ -275,7 +275,7 @@ #ifndef _FS_TIMEOUT #define _FS_TIMEOUT 1000 #endif -#define _SYNC_t xSemaphoreHandle +#define _SYNC_t SemaphoreHandle_t /* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs / module itself. Note that regardless of this option, file access to different / volume is always re-entrant and volume control functions, f_mount(), f_mkfs() diff --git a/extras/fatfs/syscall.c b/extras/fatfs/syscall.c index 0fff89a..eb54f37 100644 --- a/extras/fatfs/syscall.c +++ b/extras/fatfs/syscall.c @@ -13,7 +13,7 @@ * synchronization object, such as semaphore and mutex. When a 0 is returned, * the f_mount() function fails with FR_INT_ERR. */ -int ff_cre_syncobj(BYTE vol, xSemaphoreHandle *sobj) +int ff_cre_syncobj(BYTE vol, SemaphoreHandle_t *sobj) { int ret; @@ -29,7 +29,7 @@ int ff_cre_syncobj(BYTE vol, xSemaphoreHandle *sobj) * object that created with ff_cre_syncobj() function. When a 0 is returned, * the f_mount() function fails with FR_INT_ERR. */ -int ff_del_syncobj(xSemaphoreHandle sobj) +int ff_del_syncobj(SemaphoreHandle_t sobj) { vSemaphoreDelete(sobj); return 1; @@ -40,7 +40,7 @@ int ff_del_syncobj(xSemaphoreHandle sobj) * This function is called on entering file functions to lock the volume. * When a 0 is returned, the file function fails with FR_TIMEOUT. */ -int ff_req_grant(xSemaphoreHandle sobj) +int ff_req_grant(SemaphoreHandle_t sobj) { return (int)(xSemaphoreTake(sobj, _FS_TIMEOUT) == pdTRUE); } @@ -49,7 +49,7 @@ int ff_req_grant(xSemaphoreHandle sobj) * Release Grant to Access the Volume * This function is called on leaving file functions to unlock the volume. */ -void ff_rel_grant(xSemaphoreHandle sobj) +void ff_rel_grant(SemaphoreHandle_t sobj) { xSemaphoreGive(sobj); } diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index 83e257f..e7a14d9 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -30,7 +30,7 @@ char mqtt_timer_expired(mqtt_timer_t* timer) { - portTickType now = xTaskGetTickCount(); + TickType_t now = xTaskGetTickCount(); int32_t left = timer->end_time - now; return (left < 0); } @@ -38,8 +38,8 @@ char mqtt_timer_expired(mqtt_timer_t* timer) void mqtt_timer_countdown_ms(mqtt_timer_t* timer, unsigned int timeout) { - portTickType now = xTaskGetTickCount(); - timer->end_time = now + timeout / portTICK_RATE_MS; + TickType_t now = xTaskGetTickCount(); + timer->end_time = now + timeout / portTICK_PERIOD_MS; } @@ -51,9 +51,9 @@ void mqtt_timer_countdown(mqtt_timer_t* timer, unsigned int timeout) int mqtt_timer_left_ms(mqtt_timer_t* timer) { - portTickType now = xTaskGetTickCount(); + TickType_t now = xTaskGetTickCount(); int32_t left = timer->end_time - now; - return (left < 0) ? 0 : left / portTICK_RATE_MS; + return (left < 0) ? 0 : left / portTICK_PERIOD_MS; } @@ -73,7 +73,7 @@ int mqtt_esp_read(mqtt_network_t* n, unsigned char* buffer, int len, int timeou FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_RATE_MS; + tv.tv_sec = timeout_ms / portTICK_PERIOD_MS; tv.tv_usec = 0; rc = select(n->my_socket + 1, &fdset, 0, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) @@ -98,7 +98,7 @@ int mqtt_esp_write(mqtt_network_t* n, unsigned char* buffer, int len, int timeo FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_RATE_MS; + tv.tv_sec = timeout_ms / portTICK_PERIOD_MS; tv.tv_usec = 0; rc = select(n->my_socket + 1, 0, &fdset, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) diff --git a/extras/paho_mqtt_c/MQTTESP8266.h b/extras/paho_mqtt_c/MQTTESP8266.h index 18e9cdf..05380e8 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.h +++ b/extras/paho_mqtt_c/MQTTESP8266.h @@ -28,7 +28,7 @@ typedef struct mqtt_timer mqtt_timer_t; struct mqtt_timer { - portTickType end_time; + TickType_t end_time; }; typedef struct mqtt_network mqtt_network_t; diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c index c836651..3319588 100644 --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c @@ -40,7 +40,7 @@ #define UART0_RX_SIZE (128) // ESP8266 UART HW FIFO size -static xSemaphoreHandle uart0_sem = NULL; +static SemaphoreHandle_t uart0_sem = NULL; static bool inited = false; static void uart0_rx_init(void); diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index 6a8ac74..36c52e9 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -195,13 +195,13 @@ static void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *ch switch (device->integration_time) { case TSL2561_INTEGRATION_13MS: - vTaskDelay(TSL2561_INTEGRATION_TIME_13MS / portTICK_RATE_MS); + vTaskDelay(TSL2561_INTEGRATION_TIME_13MS / portTICK_PERIOD_MS); break; case TSL2561_INTEGRATION_101MS: - vTaskDelay(TSL2561_INTEGRATION_TIME_101MS / portTICK_RATE_MS); + vTaskDelay(TSL2561_INTEGRATION_TIME_101MS / portTICK_PERIOD_MS); break; default: - vTaskDelay(TSL2561_INTEGRATION_TIME_402MS / portTICK_RATE_MS); + vTaskDelay(TSL2561_INTEGRATION_TIME_402MS / portTICK_PERIOD_MS); break; } diff --git a/include/etstimer.h b/include/etstimer.h index 1187ab9..36e1a59 100644 --- a/include/etstimer.h +++ b/include/etstimer.h @@ -28,7 +28,7 @@ typedef void ETSTimerFunc(void *); typedef struct ETSTimer_st { struct ETSTimer_st *timer_next; - xTimerHandle timer_handle; + TimerHandle_t timer_handle; uint32_t _unknown; uint32_t timer_ms; ETSTimerFunc *timer_func; diff --git a/lwip/include/arch/sys_arch.h b/lwip/include/arch/sys_arch.h index ac616c9..0dfa482 100644 --- a/lwip/include/arch/sys_arch.h +++ b/lwip/include/arch/sys_arch.h @@ -39,14 +39,14 @@ /* MBOX primitives */ -#define SYS_MBOX_NULL ( ( xQueueHandle ) NULL ) -#define SYS_SEM_NULL ( ( xSemaphoreHandle ) NULL ) +#define SYS_MBOX_NULL ( ( QueueHandle_t ) NULL ) +#define SYS_SEM_NULL ( ( SemaphoreHandle_t ) NULL ) #define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE -typedef xSemaphoreHandle sys_sem_t; -typedef xSemaphoreHandle sys_mutex_t; -typedef xQueueHandle sys_mbox_t; -typedef xTaskHandle sys_thread_t; +typedef SemaphoreHandle_t sys_sem_t; +typedef SemaphoreHandle_t sys_mutex_t; +typedef QueueHandle_t sys_mbox_t; +typedef TaskHandle_t sys_thread_t; #define sys_mbox_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) #define sys_mbox_set_invalid( x ) ( ( *x ) = NULL ) diff --git a/lwip/sys_arch.c b/lwip/sys_arch.c index 51c29e0..87d8450 100644 --- a/lwip/sys_arch.c +++ b/lwip/sys_arch.c @@ -159,7 +159,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; } else { - xReturn = xQueueSend( *pxMailBox, &pxMessageToPost, ( portTickType ) 0 ); + xReturn = xQueueSend( *pxMailBox, &pxMessageToPost, ( TickType_t ) 0 ); } if( xReturn == pdPASS ) @@ -204,7 +204,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; u32_t sys_arch_mbox_fetch( sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut ) { void *pvDummy; -portTickType xStartTime, xEndTime, xElapsed; +TickType_t xStartTime, xEndTime, xElapsed; unsigned long ulReturn; xStartTime = xTaskGetTickCount(); @@ -218,10 +218,10 @@ unsigned long ulReturn; { configASSERT( is_inside_isr() == ( portBASE_TYPE ) 0 ); - if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_RATE_MS ) ) + if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_PERIOD_MS ) ) { xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS; + xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; ulReturn = xElapsed; } @@ -236,7 +236,7 @@ unsigned long ulReturn; { while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) ); xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS; + xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; if( xElapsed == 0UL ) { @@ -358,17 +358,17 @@ err_t xReturn = ERR_MEM; *---------------------------------------------------------------------------*/ u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout ) { -portTickType xStartTime, xEndTime, xElapsed; +TickType_t xStartTime, xEndTime, xElapsed; unsigned long ulReturn; xStartTime = xTaskGetTickCount(); if( ulTimeout != 0UL ) { - if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_RATE_MS ) == pdTRUE ) + if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_PERIOD_MS ) == pdTRUE ) { xEndTime = xTaskGetTickCount(); - xElapsed = (xEndTime - xStartTime) * portTICK_RATE_MS; + xElapsed = (xEndTime - xStartTime) * portTICK_PERIOD_MS; ulReturn = xElapsed; } else @@ -380,7 +380,7 @@ unsigned long ulReturn; { while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE ); xEndTime = xTaskGetTickCount(); - xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS; + xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS; if( xElapsed == 0UL ) { @@ -487,7 +487,7 @@ void sys_init(void) u32_t sys_now(void) { - return xTaskGetTickCount() * portTICK_RATE_MS; + return xTaskGetTickCount() * portTICK_PERIOD_MS; } /*---------------------------------------------------------------------------* @@ -510,7 +510,7 @@ u32_t sys_now(void) *---------------------------------------------------------------------------*/ sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority ) { -xTaskHandle xCreatedTask; +TaskHandle_t xCreatedTask; portBASE_TYPE xResult; sys_thread_t xReturn; diff --git a/open_esplibs/libmain/os_cpu_a.c b/open_esplibs/libmain/os_cpu_a.c index 9ace3a8..7fd3719 100644 --- a/open_esplibs/libmain/os_cpu_a.c +++ b/open_esplibs/libmain/os_cpu_a.c @@ -72,7 +72,7 @@ void IRAM sdk__xt_int_exit(void) { void IRAM sdk__xt_timer_int(void) { uint32_t trigger_ccount; uint32_t current_ccount; - uint32_t ccount_interval = portTICK_RATE_MS * sdk_os_get_cpu_frequency() * 1000; + uint32_t ccount_interval = portTICK_PERIOD_MS * sdk_os_get_cpu_frequency() * 1000; do { RSR(trigger_ccount, ccompare0); @@ -93,7 +93,7 @@ void IRAM sdk__xt_timer_int1(void) { void IRAM sdk__xt_tick_timer_init(void) { uint32_t ints_enabled; uint32_t current_ccount; - uint32_t ccount_interval = portTICK_RATE_MS * sdk_os_get_cpu_frequency() * 1000; + uint32_t ccount_interval = portTICK_PERIOD_MS * sdk_os_get_cpu_frequency() * 1000; RSR(current_ccount, ccount); WSR(current_ccount + ccount_interval, ccompare0); diff --git a/open_esplibs/libmain/timers.c b/open_esplibs/libmain/timers.c index b30f6e3..42a6767 100644 --- a/open_esplibs/libmain/timers.c +++ b/open_esplibs/libmain/timers.c @@ -60,7 +60,7 @@ void sdk_os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg) { *tailptr = new_entry; } -static void timer_tramp(xTimerHandle xTimer) +static void timer_tramp(TimerHandle_t xTimer) { ETSTimer *ptimer = pvTimerGetTimerID(xTimer); ptimer->timer_func(ptimer->timer_arg); From 4f7ddd09f826e685359c182cc0617a187d1d67e8 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Sat, 5 Nov 2016 16:12:16 +0600 Subject: [PATCH 100/349] DS1302 RTC driver (#258) --- examples/ds1302_test/Makefile | 4 + examples/ds1302_test/main.c | 48 +++++++ extras/ds1302/component.mk | 9 ++ extras/ds1302/ds1302.c | 232 ++++++++++++++++++++++++++++++++++ extras/ds1302/ds1302.h | 84 ++++++++++++ 5 files changed, 377 insertions(+) create mode 100644 examples/ds1302_test/Makefile create mode 100644 examples/ds1302_test/main.c create mode 100644 extras/ds1302/component.mk create mode 100644 extras/ds1302/ds1302.c create mode 100644 extras/ds1302/ds1302.h diff --git a/examples/ds1302_test/Makefile b/examples/ds1302_test/Makefile new file mode 100644 index 0000000..2ba09a7 --- /dev/null +++ b/examples/ds1302_test/Makefile @@ -0,0 +1,4 @@ +PROGRAM = ds1302_test +EXTRA_COMPONENTS = extras/ds1302 +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/ds1302_test/main.c b/examples/ds1302_test/main.c new file mode 100644 index 0000000..57bb848 --- /dev/null +++ b/examples/ds1302_test/main.c @@ -0,0 +1,48 @@ +/* + * Example of using DS1302 RTC driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * Pavel Merzlyakov + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include + +#define CE_PIN 5 +#define IO_PIN 4 +#define SCLK_PIN 0 + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + struct tm time = { + .tm_year = 2016, + .tm_mon = 9, + .tm_mday = 31, + .tm_hour = 21, + .tm_min = 54, + .tm_sec = 10 + }; + + ds1302_init(CE_PIN, IO_PIN, SCLK_PIN); + ds1302_set_write_protect(false); + + ds1302_set_time(&time); + ds1302_start(true); + + while (true) + { + ds1302_get_time(&time); + + printf("%04d-%02d-%02d %02d:%02d:%02d\n", time.tm_year, time.tm_mon + 1, + time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); + + for (uint32_t i = 0; i < 1000; i++) + sdk_os_delay_us(500); + } +} diff --git a/extras/ds1302/component.mk b/extras/ds1302/component.mk new file mode 100644 index 0000000..7e5ea70 --- /dev/null +++ b/extras/ds1302/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ds1302 + +# expected anyone using RTC driver includes it as 'ds1302/ds1302.h' +INC_DIRS += $(ds1302_ROOT).. + +# args for passing into compile rule generation +ds1302_SRC_DIR = $(ds1302_ROOT) + +$(eval $(call component_compile_rules,ds1302)) diff --git a/extras/ds1302/ds1302.c b/extras/ds1302/ds1302.c new file mode 100644 index 0000000..2ff80df --- /dev/null +++ b/extras/ds1302/ds1302.c @@ -0,0 +1,232 @@ +/* + * Driver for DS1302 RTC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss , + * Pavel Merzlyakov + * BSD Licensed as described in the file LICENSE + */ +#include "ds1302.h" +#include +#include + +#define CH_REG 0x80 +#define WP_REG 0x8e + +#define CH_BIT (1 << 7) +#define WP_BIT (1 << 7) +#define HOUR12_BIT (1 << 7) +#define PM_BIT (1 << 5) + +#define CH_MASK ((uint8_t)(~CH_BIT)) +#define WP_MASK ((uint8_t)(~WP_BIT)) + +#define CLOCK_BURST 0xbe +#define RAM_BURST 0xfe + +#define SECONDS_MASK 0x7f +#define HOUR12_MASK 0x1f +#define HOUR24_MASK 0x3f + +static uint8_t _ce_pin; +static uint8_t _io_pin; +static uint8_t _sclk_pin; +static bool _wp; +static uint8_t _ch; + +static uint8_t bcd2dec(uint8_t val) +{ + return (val >> 4) * 10 + (val & 0x0f); +} + +static uint8_t dec2bcd(uint8_t val) +{ + return ((val / 10) << 4) + (val % 10); +} + +inline static void chip_enable() +{ + gpio_write(_ce_pin, true); + sdk_os_delay_us(4); +} + +inline static void chip_disable() +{ + gpio_write(_ce_pin, false); +} + +inline static void prepare(gpio_direction_t dir) +{ + gpio_enable(_io_pin, dir); + gpio_write(_sclk_pin, false); + chip_enable(); +} + +inline static void toggle_clock() +{ + gpio_write(_sclk_pin, true); + sdk_os_delay_us(1); + gpio_write(_sclk_pin, false); + sdk_os_delay_us(1); +} + +static void write_byte(uint8_t b) +{ + for (uint8_t i = 0; i < 8; i++) + { + gpio_write(_io_pin, (b >> i) & 1); + toggle_clock(); + } +} + +static uint8_t read_byte() +{ + uint8_t b = 0; + for (uint8_t i = 0; i < 8; i++) + { + b |= gpio_read(_io_pin) << i; + toggle_clock(); + } + return b; +} + +static uint8_t read_register(uint8_t reg) +{ + prepare(GPIO_OUTPUT); + write_byte(reg | 0x01); + prepare(GPIO_INPUT); + uint8_t res = read_byte(); + chip_disable(); + return res; +} + +static void write_register(uint8_t reg, uint8_t val) +{ + prepare(GPIO_OUTPUT); + write_byte(reg); + write_byte(val); + chip_disable(); +} + +static void burst_read(uint8_t reg, uint8_t *dst, uint8_t len) +{ + prepare(GPIO_OUTPUT); + write_byte(reg | 0x01); + prepare(GPIO_INPUT); + for (uint8_t i = 0; i < len; i++, dst++) + *dst = read_byte(); + chip_disable(); +} + +static void burst_write(uint8_t reg, uint8_t *src, uint8_t len) +{ + prepare(GPIO_OUTPUT); + write_byte(reg); + for (uint8_t i = 0; i < len; i++, src++) + write_byte(*src); + chip_disable(); +} + +inline static void update_register(uint8_t reg, uint8_t mask, uint8_t val) +{ + write_register(reg, (read_register(reg) & mask) | val); +} + +void ds1302_init(uint8_t ce_pin, uint8_t io_pin, uint8_t sclk_pin) +{ + _ce_pin = ce_pin; + _io_pin = io_pin; + _sclk_pin = sclk_pin; + + gpio_enable(_ce_pin, GPIO_OUTPUT); + gpio_enable(_sclk_pin, GPIO_OUTPUT); + + _wp = ds1302_get_write_protect(); + _ch = read_register(CH_REG) & CH_BIT; +} + +bool ds1302_start(bool start) +{ + if (_wp) return false; + + _ch = start ? 0 : CH_BIT; + update_register(CH_REG, CH_MASK, _ch); + + return true; +} + +bool ds1302_is_running() +{ + return !(read_register(CH_REG) & CH_BIT); +} + +void ds1302_set_write_protect(bool protect) +{ + update_register(WP_REG, WP_MASK, protect ? WP_BIT : 0); + _wp = protect; +} + +bool ds1302_get_write_protect() +{ + return (read_register(WP_REG) & WP_BIT) != 0; +} + +void ds1302_get_time(struct tm *time) +{ + uint8_t buf[7]; + burst_read(CLOCK_BURST, buf, 7); + + time->tm_sec = bcd2dec(buf[0] & SECONDS_MASK); + time->tm_min = bcd2dec(buf[1]); + if (buf[2] & HOUR12_BIT) + { + // RTC in 12-hour mode + time->tm_hour = bcd2dec(buf[2] & HOUR12_MASK) - 1; + if (buf[2] & PM_BIT) + time->tm_hour += 12; + } + else time->tm_hour = bcd2dec(buf[2] & HOUR24_MASK); + time->tm_mday = bcd2dec(buf[3]); + time->tm_mon = bcd2dec(buf[4]) - 1; + time->tm_wday = bcd2dec(buf[5]) - 1; + time->tm_year = bcd2dec(buf[6]) + 2000; +} + +bool ds1302_set_time(const struct tm *time) +{ + if (_wp) return false; + + uint8_t buf[8] = { + dec2bcd(time->tm_sec) | _ch, + dec2bcd(time->tm_min), + dec2bcd(time->tm_hour), + dec2bcd(time->tm_mday), + dec2bcd(time->tm_mon + 1), + dec2bcd(time->tm_wday + 1), + dec2bcd(time->tm_year - 2000), + 0 + }; + burst_write(CLOCK_BURST, buf, 8); + + return true; +} + +bool ds1302_read_sram(uint8_t offset, void *buf, uint8_t len) +{ + if (offset + len > DS1302_RAM_SIZE) + return false; + + burst_read(RAM_BURST, (uint8_t *)buf, len); + + return true; +} + +bool ds1302_write_sram(uint8_t offset, void *buf, uint8_t len) +{ + if (offset + len > DS1302_RAM_SIZE) + return false; + + burst_write(RAM_BURST, (uint8_t *)buf, len); + + return true; +} diff --git a/extras/ds1302/ds1302.h b/extras/ds1302/ds1302.h new file mode 100644 index 0000000..4b3c1ba --- /dev/null +++ b/extras/ds1302/ds1302.h @@ -0,0 +1,84 @@ +/* + * Driver for DS1302 RTC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss , + * Pavel Merlyakov + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_DS1302_H_ +#define EXTRAS_DS1302_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define DS1302_RAM_SIZE 31 + +void ds1302_init(uint8_t ce_pin, uint8_t io_pin, uint8_t sclk_pin); + +/** + * \brief Start/stop clock + * \param start Start clock if true + * \return False if RTC is write-protected + */ +bool ds1302_start(bool start); + +/** + * \brief Get current clock state + * \return true if clock running + */ +bool ds1302_is_running(); + +/** + * \brief Enable/disable write protection + * \param protect Set RTC write-protected if true + */ +void ds1302_set_write_protect(bool protect); + +/** + * \brief Get write protection status + * \return true if RTC write-protected + */ +bool ds1302_get_write_protect(); + +/** + * \brief Get current time + * \param time Pointer to the time struct to fill + */ +void ds1302_get_time(struct tm *time); + +/** + * \brief Set time to RTC + * \param time Pointer to the time struct + * \return False if RTC is write-protected + */ +bool ds1302_set_time(const struct tm *time); + +/** + * \brief Read RAM contents into the buffer + * \param offset Start byte, 0..55 + * \param buf Buffer + * \param len Bytes to read, 1..56 + * \return false if error occured (invalid offset or buffer too big) + */ +bool ds1302_read_sram(uint8_t offset, void *buf, uint8_t len); + +/** + * \brief Write buffer to RTC RAM + * \param offset Start byte, 0..55 + * \param buf Buffer + * \param len Bytes to write, 1..56 + * \return false if error occured (invalid offset or buffer too big) + */ +bool ds1302_write_sram(uint8_t offset, void *buf, uint8_t len); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_DS1302_H_ */ From 99628cf3146c2b030d8d0aeb57750cb5575dd284 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Sat, 5 Nov 2016 16:12:47 +0600 Subject: [PATCH 101/349] DS1307 set month & weekday fix (#264) --- extras/ds1307/ds1307.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c index 90abf9d..e5306a8 100644 --- a/extras/ds1307/ds1307.c +++ b/extras/ds1307/ds1307.c @@ -96,9 +96,9 @@ void ds1307_set_time(const struct tm *time) buf[1] = dec2bcd(time->tm_sec); buf[2] = dec2bcd(time->tm_min); buf[3] = dec2bcd(time->tm_hour); - buf[4] = dec2bcd(time->tm_wday); + buf[4] = dec2bcd(time->tm_wday + 1); buf[5] = dec2bcd(time->tm_mday); - buf[6] = dec2bcd(time->tm_mon); + buf[6] = dec2bcd(time->tm_mon + 1); buf[7] = dec2bcd(time->tm_year - 2000); i2c_slave_write(ADDR, buf, 8); From dda384f3a1539c035741e931fa9e1f4a2a76914e Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Sat, 5 Nov 2016 16:19:36 +0600 Subject: [PATCH 102/349] WiFi scan example (#265) --- examples/wifi_scan/Makefile | 4 +++ examples/wifi_scan/main.c | 72 +++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 examples/wifi_scan/Makefile create mode 100644 examples/wifi_scan/main.c diff --git a/examples/wifi_scan/Makefile b/examples/wifi_scan/Makefile new file mode 100644 index 0000000..a9e5a71 --- /dev/null +++ b/examples/wifi_scan/Makefile @@ -0,0 +1,4 @@ +PROGRAM = wifi_scan +#ESPBAUD = 460800 + +include ../../common.mk diff --git a/examples/wifi_scan/main.c b/examples/wifi_scan/main.c new file mode 100644 index 0000000..a180a21 --- /dev/null +++ b/examples/wifi_scan/main.c @@ -0,0 +1,72 @@ +/* + * WiFi scan + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include + +static const char * const auth_modes [] = { + [AUTH_OPEN] = "Open", + [AUTH_WEP] = "WEP", + [AUTH_WPA_PSK] = "WPA/PSK", + [AUTH_WPA2_PSK] = "WPA2/PSK", + [AUTH_WPA_WPA2_PSK] = "WPA/WPA2/PSK" +}; + +static void scan_done_cb(void *arg, sdk_scan_status_t status) +{ + char ssid[33]; // max SSID length + zero byte + + if (status != SCAN_OK) + { + printf("Error: WiFi scan failed\n"); + return; + } + + struct sdk_bss_info *bss = (struct sdk_bss_info *)arg; + // first one is invalid + bss = bss->next.stqe_next; + + printf("\n----------------------------------------------------------------------------------\n"); + printf(" Wi-Fi networks\n"); + printf("----------------------------------------------------------------------------------\n"); + + while (NULL != bss) + { + size_t len = strlen((const char *)bss->ssid); + memcpy(ssid, bss->ssid, len); + ssid[len] = 0; + + printf("%32s (" MACSTR ") RSSI: %02d, security: %s\n", ssid, + MAC2STR(bss->bssid), bss->rssi, auth_modes[bss->authmode]); + + bss = bss->next.stqe_next; + } +} + +static void scan_task(void *arg) +{ + while (true) + { + sdk_wifi_station_scan(NULL, scan_done_cb); + vTaskDelay(5000 / portTICK_PERIOD_MS); + } +} + +void user_init() +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + // We can scan only in station mode + sdk_wifi_set_opmode(STATION_MODE); + + xTaskCreate(scan_task, "scan", 512, NULL, 2, NULL); +} From 7c702d7f09f4f810144a17ae3d0ebd110ee77599 Mon Sep 17 00:00:00 2001 From: sheinz Date: Sat, 5 Nov 2016 22:12:14 +0200 Subject: [PATCH 103/349] Unit testing for esp-open-rtos (#253) * Get testing system by projectgus working with master HEAD * Fix running dual test. Add basic wifi test * Moved spiff test to a test case. Reset retries in test runner * Add timers test case * test_runner: List test cases and run individual test cases * Add README for tests * Update README.md * Code clean-up * Python3.4 support. README.md update --- .gitignore | 1 + .gitmodules | 7 +- common.mk | 2 +- examples/posix_fs/Makefile | 11 - examples/posix_fs/README.md | 10 - examples/posix_fs/fs-test | 1 - tests/Makefile | 27 + tests/README.md | 66 +++ tests/cases/01_scheduler.c | 71 +++ tests/cases/02_heap.c | 56 ++ tests/cases/03_byte_load_flash.c | 481 ++++++++++++++++++ tests/cases/04_wifi_basic.c | 181 +++++++ .../cases/05_spiffs.c | 35 +- tests/cases/06_timers.c | 86 ++++ tests/fs-test | 1 + tests/include/testcase.h | 59 +++ tests/test_main.c | 122 +++++ tests/test_runner.py | 389 ++++++++++++++ tests/unity | 1 + 19 files changed, 1562 insertions(+), 45 deletions(-) delete mode 100644 examples/posix_fs/Makefile delete mode 100644 examples/posix_fs/README.md delete mode 160000 examples/posix_fs/fs-test create mode 100644 tests/Makefile create mode 100644 tests/README.md create mode 100644 tests/cases/01_scheduler.c create mode 100644 tests/cases/02_heap.c create mode 100644 tests/cases/03_byte_load_flash.c create mode 100644 tests/cases/04_wifi_basic.c rename examples/posix_fs/posix_fs_example.c => tests/cases/05_spiffs.c (50%) create mode 100644 tests/cases/06_timers.c create mode 160000 tests/fs-test create mode 100644 tests/include/testcase.h create mode 100644 tests/test_main.c create mode 100755 tests/test_runner.py create mode 160000 tests/unity diff --git a/.gitignore b/.gitignore index 4703478..c0df48e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ firmware local.mk local.h screenlog.* +*.swp diff --git a/.gitmodules b/.gitmodules index 5dddd18..d9d5e4c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,6 +13,9 @@ [submodule "extras/spiffs/spiffs"] path = extras/spiffs/spiffs url = https://github.com/pellepl/spiffs.git -[submodule "examples/posix_fs/fs-test"] - path = examples/posix_fs/fs-test +[submodule "tests/unity"] + path = tests/unity + url = https://github.com/ThrowTheSwitch/Unity.git +[submodule "tests/fs-test"] + path = tests/fs-test url = https://github.com/sheinz/fs-test diff --git a/common.mk b/common.mk index 41a218f..bdec87a 100644 --- a/common.mk +++ b/common.mk @@ -136,7 +136,7 @@ $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.S $$($(1)_MAKEFILE) $(wildcard $(ROOT)* $(1)_AR_IN_FILES = $$($(1)_OBJ_FILES) -# the component is shown to depend on both obj and source files so we get +# the component is shown to depend on both obj and source files so we get # a meaningful error message for missing explicitly named source files ifeq ($(INCLUDE_SRC_IN_AR),1) $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) diff --git a/examples/posix_fs/Makefile b/examples/posix_fs/Makefile deleted file mode 100644 index bf45ed7..0000000 --- a/examples/posix_fs/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -PROGRAM=posix_fs_example -PROGRAM_EXTRA_SRC_FILES=./fs-test/fs_test.c - -EXTRA_COMPONENTS = extras/spiffs -FLASH_SIZE = 32 - -# spiffs configuration -SPIFFS_BASE_ADDR = 0x200000 -SPIFFS_SIZE = 0x100000 - -include ../../common.mk diff --git a/examples/posix_fs/README.md b/examples/posix_fs/README.md deleted file mode 100644 index 7f05bd4..0000000 --- a/examples/posix_fs/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# POSIX file access example - -This example runs several file system tests on ESP8266. -It uses fs-test library to perform file operations test. fs-test library uses -only POSIX file functions so can be run on host system as well. - -Currently included tests: - * File system load test. Perform multiple file operations in random order. - * File system speed test. Measures files read/write speed. - diff --git a/examples/posix_fs/fs-test b/examples/posix_fs/fs-test deleted file mode 160000 index 2ad547a..0000000 --- a/examples/posix_fs/fs-test +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2ad547adc5f725594b3c6752f036ff4401b221fc diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..599253c --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,27 @@ +PROGRAM=tests + +EXTRA_COMPONENTS=extras/dhcpserver extras/spiffs + +PROGRAM_SRC_DIR = . ./cases + +FLASH_SIZE = 32 + +# spiffs configuration +SPIFFS_BASE_ADDR = 0x200000 +SPIFFS_SIZE = 0x100000 + +# Add unity test framework headers & core source file +PROGRAM_INC_DIR = ./unity/src ./fs-test +PROGRAM_EXTRA_SRC_FILES = ./unity/src/unity.c ./fs-test/fs_test.c + +TESTCASE_SRC_FILES = $(wildcard $(PROGRAM_DIR)cases/*.c) + +# Do not include source files into a static library because when adding this +# library with '--whole-archive' linker gives error that archive contains +# unknown objects (source files) +INCLUDE_SRC_IN_AR = 0 + +# Link every object in the 'program' archive, to pick up constructor functions for test cases +EXTRA_LDFLAGS = -Wl,--whole-archive $(BUILD_DIR)program.a -Wl,--no-whole-archive + +include ../common.mk diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..90b08a8 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,66 @@ +# esp-open-rtos tests + +Testing is based on [Unity](https://github.com/ThrowTheSwitch/Unity) +C testing framework. + +## Features + +* Single device test case. +* Dual devices test cases. Run test case on two ESP8266 modules simultaneously. +* Run only specified test cases. +* List available test cases on a device. + +## Usage + +There's a test runner script `test_runner.py` written in Python3 that runs +test cases on ESP8266 connected to a host. + +### Requirements and dependencies + +* Python3 version > 3.4 `sudo apt-get install python3 python3-pip` +* pyserial `sudo pip3 install pyserial` +* ESP8266 board with reset to boot mode support +* Two ESP8266 for dual mode test cases + +Test runner is heavily relying on device reset using DTR and RTS signals. +Popular ESP8266 boards such as **NodeMcu** and **Wemos D1** support device +reset into flash mode. + +### Options + +`--type` or `-t` - Type of test case to run. Can be 'solo' or 'dual'. +If not specified 'solo' test will be run. + +`--aport` or `-a` - Serial port for device A. +If not specified device `/dev/ttyUSB0` is used. + +`--bport` or `-b` - Serial port for device B. +If not specified device `/dev/ttyUSB1` is used. + +`--no-flash` or `-n` - Do not flash the test firmware before running tests. + +`--list` or `-l` - Display list of the available test cases on the device. + +### Example + +Build test firmware, flash it using serial device `/dev/tty.wchusbserial1410` +and run only *solo* test cases: + +`./test_runner.py -a /dev/tty.wchusbserial1410` + +Build test firmware. Flash both devices as `-t dual` is specified. And run both +*solo* and *dual* test cases: + +`./test_runner.py -a /dev/tty.wchusbserial1410 -b /dev/tty.wchusbserial1420 -t dual` + +Do not flash the firmware, only display available test cases on the device: + +`./test_runner.py -a /dev/tty.wchusbserial1410 -n -l` + +Do not flash the firmware and run only 2 and 4 test cases: + +`./test_runner.py -a /dev/tty.wchusbserial1410 -n 2 4` + +## References + +[Unity](https://github.com/ThrowTheSwitch/Unity) - Simple Unit Testing for C diff --git a/tests/cases/01_scheduler.c b/tests/cases/01_scheduler.c new file mode 100644 index 0000000..aa9b1c0 --- /dev/null +++ b/tests/cases/01_scheduler.c @@ -0,0 +1,71 @@ +#include "testcase.h" +#include +#include +#include + +/* Basic test cases to validate the FreeRTOS scheduler works */ + +DEFINE_SOLO_TESTCASE(01_scheduler_basic) +DEFINE_SOLO_TESTCASE(01_scheduler_priorities) + +void set_variable(void *pvParameters) +{ + bool *as_bool = (bool *)pvParameters; + *as_bool = true; + /* deliberately a busywait at the end, not vTaskSuspend, to test priorities */ + while(1) { } +} + +/* Really simple - do created tasks run? */ +static void a_01_scheduler_basic() +{ + volatile bool a = false, b = false, c = false; + printf("top of scheduler...\n"); + uart_flush_txfifo(0); + + xTaskCreate(set_variable, "set_a", 128, (void *)&a, tskIDLE_PRIORITY, NULL); + xTaskCreate(set_variable, "set_b", 128, (void *)&b, tskIDLE_PRIORITY, NULL); + xTaskCreate(set_variable, "set_c", 128, (void *)&c, tskIDLE_PRIORITY, NULL); + + TEST_ASSERT_FALSE_MESSAGE(a, "task set_a shouldn't run yet"); + TEST_ASSERT_FALSE_MESSAGE(b, "task set_b shouldn't run yet"); + TEST_ASSERT_FALSE_MESSAGE(c, "task set_c shouldn't run yet"); + + vTaskDelay(5); + + TEST_ASSERT_TRUE_MESSAGE(a, "task set_a should have run"); + TEST_ASSERT_TRUE_MESSAGE(b, "task set_b should have run"); + TEST_ASSERT_TRUE_MESSAGE(c, "task set_c should have run"); + TEST_PASS(); +} + +/* Verify that a high-priority task will starve a lower priority task */ +static void a_01_scheduler_priorities() +{ + /* Increase priority of the init task to make sure it always takes priority */ + vTaskPrioritySet(xTaskGetCurrentTaskHandle(), tskIDLE_PRIORITY+4); + + bool lower = false, higher = false; + TaskHandle_t task_lower, task_higher; + + xTaskCreate(set_variable, "high_prio", 128, (void *)&higher, tskIDLE_PRIORITY+1, &task_higher); + xTaskCreate(set_variable, "low_prio", 128, (void *)&lower, tskIDLE_PRIORITY, &task_lower); + + TEST_ASSERT_FALSE_MESSAGE(higher, "higher prio task should not have run yet"); + TEST_ASSERT_FALSE_MESSAGE(lower, "lower prio task should not have run yet"); + + vTaskDelay(2); + + TEST_ASSERT_TRUE_MESSAGE(higher, "higher prio task should have run"); + TEST_ASSERT_FALSE_MESSAGE(lower, "lower prio task should not have run"); + + /* Bump lower priority task over higher priority task */ + vTaskPrioritySet(task_lower, tskIDLE_PRIORITY+2); + + TEST_ASSERT_FALSE_MESSAGE(lower, "lower prio task should still not have run yet"); + + vTaskDelay(1); + + TEST_ASSERT_TRUE_MESSAGE(lower, "lower prio task should have run"); + TEST_PASS(); +} diff --git a/tests/cases/02_heap.c b/tests/cases/02_heap.c new file mode 100644 index 0000000..54bb5e3 --- /dev/null +++ b/tests/cases/02_heap.c @@ -0,0 +1,56 @@ +#include "testcase.h" +#include +#include +#include + +DEFINE_SOLO_TESTCASE(02_heap_simple) +DEFINE_SOLO_TESTCASE(02_heap_full) + +/* Simple heap accounting tests */ +static void a_02_heap_simple() +{ + struct mallinfo info = mallinfo(); + printf("'arena' allocation size %d bytes\n", info.arena); + /* This is really a sanity check, if the "arena" size shrinks then + this is a good thing and we can update the test. If it grows + then we can also update the test, but we need a good reason. */ + TEST_ASSERT_INT_WITHIN_MESSAGE(1000, 15000, info.arena, "Initial allocated heap should be approximately 15kB. SEE COMMENT."); + + uint32_t freeheap = xPortGetFreeHeapSize(); + printf("xPortGetFreeHeapSize = %d bytes\n", freeheap); + TEST_ASSERT_TRUE_MESSAGE(freeheap > 20000, "Should be at least 20kB free."); + + uint8_t *buf = malloc(8192); + /* <-- have to do something with buf or gcc helpfully optimises it out! */ + memset(buf, 0xEE, 8192); + uint32_t after = xPortGetFreeHeapSize(); + struct mallinfo after_info = mallinfo(); + printf("after arena size = %d bytes\n", after_info.arena); + printf("after xPortGetFreeHeapSize = %d bytes\n", after); + TEST_ASSERT_UINT32_WITHIN_MESSAGE(100, info.arena+8192, after_info.arena, "Allocated heap 'after' size should be 8kB more than before"); + TEST_ASSERT_UINT32_WITHIN_MESSAGE(100, freeheap-8192, after, "Free heap size should be 8kB less than before"); + + free(buf); + after = xPortGetFreeHeapSize(); + printf("after freeing xPortGetFreeHeapSize = %d bytes\n", after); + TEST_ASSERT_UINT32_WITHIN_MESSAGE(100, freeheap, after, "Free heap size after freeing buffer should be close to initial"); + TEST_PASS(); +} + +/* Ensure malloc behaves when out of memory */ +static void a_02_heap_full() +{ + void *x = malloc(65536); + TEST_ASSERT_NULL_MESSAGE(x, "Allocating 64kB should fail and return null"); + + void *y = malloc(32768); + TEST_ASSERT_NOT_NULL_MESSAGE(y, "Allocating 32kB should succeed"); + + void *z = malloc(32768); + TEST_ASSERT_NULL_MESSAGE(z, "Allocating second 32kB should fail"); + + free(y); + z = malloc(32768); + TEST_ASSERT_NOT_NULL_MESSAGE(z, "Allocating 32kB should succeed after first block freed"); + TEST_PASS(); +} diff --git a/tests/cases/03_byte_load_flash.c b/tests/cases/03_byte_load_flash.c new file mode 100644 index 0000000..b8dcb8e --- /dev/null +++ b/tests/cases/03_byte_load_flash.c @@ -0,0 +1,481 @@ +/** + * Unit tests to verify the "unaligned load handler" in core/exception_vectors.S + * that allows us to complete byte loads from unaligned memory, etc. + * + * Adapted from a test program in 'experiments' that did this. + */ +#include "testcase.h" +#include "esp/rom.h" +#include "esp/timer.h" +#include "esp/uart.h" +#include "espressif/esp_common.h" +#include "xtensa_ops.h" +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include "string.h" +#include "strings.h" + +#include + +#define TESTSTRING "O hai there! %d %d %d" + +static char dramtest[] = TESTSTRING; + +static const __attribute__((section(".iram1.notrodata"))) + char iramtest[] = TESTSTRING; + +static const __attribute__((section(".text.notrodata"))) + char iromtest[] = TESTSTRING; + +static const volatile __attribute__((section(".iram1.notliterals"))) + int16_t unsigned_shorts[] = { -3, -4, -5, -32767, 44 }; + +static const __attribute__((section(".iram1.notrodata"))) + char sanity_test_data[] = { + 0x01, 0x55, 0x7e, 0x2a, 0x81, 0xd5, 0xfe, 0xaa + }; + +DEFINE_SOLO_TESTCASE(03_byte_load_verify_sections) + +#define PTR_IN_REGION(PTR, START, LEN) \ + ((START <= (intptr_t)(PTR)) && ((intptr_t)(PTR) < (START+LEN))) + +/* Sanity check, ensure the addresses of the various test strings + * are in the correct address space regions. */ +static void a_03_byte_load_verify_sections() +{ + printf("dramtest addr %p\n", dramtest); + TEST_ASSERT_MESSAGE(PTR_IN_REGION(dramtest, 0x3FFE8000, 0x14000), + "dramtest should be in DRAM region"); + + printf("iramtest addr %p\n", iramtest); + TEST_ASSERT_MESSAGE(PTR_IN_REGION(iramtest, 0x40100000, 0x8000), + "iramtest should be in IRAM region"); + + printf("iromtest addr %p\n", iromtest); + TEST_ASSERT_MESSAGE(PTR_IN_REGION(iromtest, 0x40202010, (0x100000 - 0x2010)), + "iromtest sohuld be in IROM region"); + + printf("unsigned_shorts addr %p\n", unsigned_shorts); + TEST_ASSERT_MESSAGE(PTR_IN_REGION(unsigned_shorts, 0x40100000, 0x8000), + "unsigned_shorts should be in IRAM region"); + + printf("sanity_test_data addr %p\n", sanity_test_data); + TEST_ASSERT_MESSAGE(PTR_IN_REGION(sanity_test_data, 0x40100000, 0x8000), + "sanity_test_data should be in IRAM region"); + + TEST_PASS(); +} + + +/* test utility functions used for '03_byte_load_test_strings' + + returns the expected string result */ +typedef const char *(* test_with_fn_t)(const char *string); + +static char buf[64]; + +static const char * test_memcpy_aligned(const char *string) +{ + memcpy(buf, string, 16); + return "O hai there! %d "; +} + +static const char * test_memcpy_unaligned(const char *string) +{ + memcpy(buf, string, 15); + return "O hai there! %d"; +} + + +static const char * test_memcpy_unaligned2(const char *string) +{ + memcpy(buf, string+1, 15); + return " hai there! %d "; +} + +static const char * test_strcpy(const char *string) +{ + strcpy(buf, string); + return dramtest; +} + +static const char * test_sprintf(const char *string) +{ + sprintf(buf, string, 1, 2, 3); + return "O hai there! 1 2 3"; +} + +static const char * test_sprintf_arg(const char *string) +{ + sprintf(buf, "%s", string); + return dramtest; +} + +static const char * test_naive_strcpy(const char *string) +{ + char *to = buf; + while((*to++ = *string++)) + ; + return dramtest; +} + +static const char * test_naive_strcpy_a0(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a0, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a0, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a0, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a0", "a8", "a9"); + return dramtest; +} + +static const char * test_naive_strcpy_a2(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a2, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a2, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a2, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a2", "a8", "a9"); + return dramtest; +} + +static const char * test_naive_strcpy_a3(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a3, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a3, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a3, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a3", "a8", "a9"); + return TESTSTRING; +} + +static const char * test_naive_strcpy_a4(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a4, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a4, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a4, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a4", "a8", "a9"); + return TESTSTRING; +} + +static const char * test_naive_strcpy_a5(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a5, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a5, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a5, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a5", "a8", "a9"); + return TESTSTRING; +} + +static const char * test_naive_strcpy_a6(const char *string) +{ + asm volatile ( +" mov a8, %0 \n" +" mov a9, %1 \n" +"tns_loop%=: l8ui a6, a9, 0 \n" +" addi.n a9, a9, 1 \n" +" s8i a6, a8, 0 \n" +" addi.n a8, a8, 1 \n" +" bnez a6, tns_loop%=\n" + : : "r" (buf), "r" (string) : "a6", "a8", "a9"); + return TESTSTRING; +} + +static const char * test_noop(const char *string) +{ + buf[0] = 0; + return ""; +} + +static uint32_t IRAM inner_string_test(const char *string, test_with_fn_t testfn, const char *testfn_label, uint32_t nullvalue, bool evict_cache) +{ + printf(" .. against %30s: ", testfn_label); + vPortEnterCritical(); + uint32_t before; + RSR(before, CCOUNT); + const int TEST_REPEATS = 1000; + for(int i = 0; i < TEST_REPEATS; i++) { + memset(buf, 0, sizeof(buf)); + const char *expected = testfn(string); + TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, buf, testfn_label); + if(evict_cache) { + Cache_Read_Disable(); + Cache_Read_Enable(0,0,1); + } + } + uint32_t after; + RSR(after, CCOUNT); + vPortExitCritical(); + uint32_t instructions = (after-before)/TEST_REPEATS - nullvalue; + printf("%5d instructions\r\n", instructions); + return instructions; +} + +static void string_test(const char *string, char *label, bool evict_cache) +{ + printf("Testing %s (%p) '%s'\r\n", label, string, string); + printf("Formats as: '"); + printf(string, 1, 2, 3); + printf("'\r\n"); + uint32_t nullvalue = inner_string_test(string, test_noop, "null op", 0, evict_cache); + inner_string_test(string, test_memcpy_aligned, "memcpy - aligned len", nullvalue, evict_cache); + inner_string_test(string, test_memcpy_unaligned, "memcpy - unaligned len", nullvalue, evict_cache); + inner_string_test(string, test_memcpy_unaligned2, "memcpy - unaligned start&len", nullvalue, evict_cache); + inner_string_test(string, test_strcpy, "strcpy", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy, "naive strcpy", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a0, "naive strcpy (a0)", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a2, "naive strcpy (a2)", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a3, "naive strcpy (a3)", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a4, "naive strcpy (a4)", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a5, "naive strcpy (a5)", nullvalue, evict_cache); + inner_string_test(string, test_naive_strcpy_a6, "naive strcpy (a6)", nullvalue, evict_cache); + inner_string_test(string, test_sprintf, "sprintf", nullvalue, evict_cache); + inner_string_test(string, test_sprintf_arg, "sprintf format arg", nullvalue, evict_cache); +} + +DEFINE_SOLO_TESTCASE(03_byte_load_test_strings) + +/* Test various operations on strings in various regions */ +static void a_03_byte_load_test_strings() +{ + string_test(dramtest, "DRAM", 0); + string_test(iramtest, "IRAM", 0); + string_test(iromtest, "Cached flash", 0); + string_test(iromtest, "'Uncached' flash", 1); + TEST_PASS(); +} + +static volatile bool frc1_ran; +static volatile bool frc1_finished; +static volatile char frc1_buf[80]; + +DEFINE_SOLO_TESTCASE(03_byte_load_test_isr) + +static void frc1_interrupt_handler(void) +{ + frc1_ran = true; + timer_set_run(FRC1, false); + strcpy((char *)frc1_buf, iramtest); + frc1_finished = true; +} + +/* Verify that the unaligned loader can run inside an ISR */ +static void a_03_byte_load_test_isr() +{ + printf("Testing behaviour inside ISRs...\r\n"); + timer_set_interrupts(FRC1, false); + timer_set_run(FRC1, false); + _xt_isr_attach(INUM_TIMER_FRC1, frc1_interrupt_handler); + timer_set_frequency(FRC1, 1000); + timer_set_interrupts(FRC1, true); + timer_set_run(FRC1, true); + sdk_os_delay_us(2000); + + if(!frc1_ran) + TEST_FAIL_MESSAGE("ERROR: FRC1 timer exception never fired.\r\n"); + else if(!frc1_finished) + TEST_FAIL_MESSAGE("ERROR: FRC1 timer exception never finished.\r\n"); + else if(strcmp((char *)frc1_buf, iramtest)) + TEST_FAIL_MESSAGE("ERROR: FRC1 strcpy from IRAM failed.\r\n"); + else + TEST_PASS(); +} + +DEFINE_SOLO_TESTCASE(03_byte_load_test_sign_extension) + +static void a_03_byte_load_test_sign_extension() +{ + /* this step seems to be necessary so the compiler will actually generate l16si */ + int16_t *shorts_p = (int16_t *)unsigned_shorts; + if(shorts_p[0] == -3 && shorts_p[1] == -4 && shorts_p[2] == -5 && shorts_p[3] == -32767 && shorts_p[4] == 44) + { + TEST_PASS(); + } else { + sprintf(buf, "l16si sign extension failed. Got values %d %d %d %d %d\r\n", shorts_p[0], shorts_p[1], shorts_p[2], shorts_p[3], shorts_p[4]); + TEST_FAIL_MESSAGE(buf); + } +} + + +/* test that running unaligned loads in a running FreeRTOS system doesn't break things + + The following tests run inside a FreeRTOS task, after everything else. +*/ +DEFINE_SOLO_TESTCASE(03_byte_load_test_system_interaction); + +static void task_load_test_system_interaction() +{ + uint32_t start = xTaskGetTickCount(); + printf("Starting system/timer interaction test (takes approx 1 second)...\n"); + for(int i = 0; i < 5000; i++) { + test_naive_strcpy_a0(iromtest); + test_naive_strcpy_a2(iromtest); + test_naive_strcpy_a3(iromtest); + test_naive_strcpy_a4(iromtest); + test_naive_strcpy_a5(iromtest); + test_naive_strcpy_a6(iromtest); + /* + const volatile char *string = iromtest; + volatile char *to = dest; + while((*to++ = *string++)) + ; + */ + } + uint32_t ticks = xTaskGetTickCount() - start; + printf("Timer interaction test PASSED after %d ticks.\n", ticks); + TEST_PASS(); +} + +static void a_03_byte_load_test_system_interaction() +{ + xTaskCreate(task_load_test_system_interaction, "interactionTask", 256, NULL, 2, NULL); + while(1) { + vTaskDelay(100); + } +} + +/* The following "sanity tests" are designed to try to execute every code path + * of the LoadStoreError handler, with a variety of offsets and data values + * designed to catch any mask/shift errors, sign-extension bugs, etc */ +DEFINE_SOLO_TESTCASE(03_byte_load_test_sanity) + +/* (Contrary to expectations, 'mov a15, a15' in Xtensa is not technically a + * no-op, but is officially "undefined and reserved for future use", so we need + * a special case in the case where reg == "a15" so we don't end up generating + * those opcodes. GCC is smart enough to optimize away the whole conditional + * and just insert the correct asm block, since `reg` is a static argument.) */ +#define LOAD_VIA_REG(op, reg, addr, var) \ + if (strcmp(reg, "a15")) { \ + asm volatile ( \ + "mov a15, " reg "\n\t" \ + op " " reg ", %1, 0\n\t" \ + "mov %0, " reg "\n\t" \ + "mov " reg ", a15\n\t" \ + : "=r" (var) : "r" (addr) : "a15" ); \ + } else { \ + asm volatile ( \ + op " " reg ", %1, 0\n\t" \ + "mov %0, " reg "\n\t" \ + : "=r" (var) : "r" (addr) : "a15" ); \ + } + +#define TEST_LOAD(op, reg, addr, value) \ + { \ + int32_t result; \ + LOAD_VIA_REG(op, reg, addr, result); \ + if (result != value) sanity_test_failed(op, reg, addr, value, result); \ + } + +static void sanity_test_failed(const char *testname, const char *reg, const void *addr, int32_t value, int32_t result) { + uint32_t actual_data = *(uint32_t *)((uint32_t)addr & 0xfffffffc); + sprintf(buf, "%s %s from %p (32-bit value: 0x%x): Expected 0x%08x (%d), got 0x%08x (%d)\n", testname, reg, addr, actual_data, value, value, result, result); + TEST_FAIL_MESSAGE(buf); +} + +static void sanity_test_l8ui(const void *addr, int32_t value) { + TEST_LOAD("l8ui", "a0", addr, value); + TEST_LOAD("l8ui", "a1", addr, value); + TEST_LOAD("l8ui", "a2", addr, value); + TEST_LOAD("l8ui", "a3", addr, value); + TEST_LOAD("l8ui", "a4", addr, value); + TEST_LOAD("l8ui", "a5", addr, value); + TEST_LOAD("l8ui", "a6", addr, value); + TEST_LOAD("l8ui", "a7", addr, value); + TEST_LOAD("l8ui", "a8", addr, value); + TEST_LOAD("l8ui", "a9", addr, value); + TEST_LOAD("l8ui", "a10", addr, value); + TEST_LOAD("l8ui", "a11", addr, value); + TEST_LOAD("l8ui", "a12", addr, value); + TEST_LOAD("l8ui", "a13", addr, value); + TEST_LOAD("l8ui", "a14", addr, value); + TEST_LOAD("l8ui", "a15", addr, value); +} + +static void sanity_test_l16ui(const void *addr, int32_t value) { + TEST_LOAD("l16ui", "a0", addr, value); + TEST_LOAD("l16ui", "a1", addr, value); + TEST_LOAD("l16ui", "a2", addr, value); + TEST_LOAD("l16ui", "a3", addr, value); + TEST_LOAD("l16ui", "a4", addr, value); + TEST_LOAD("l16ui", "a5", addr, value); + TEST_LOAD("l16ui", "a6", addr, value); + TEST_LOAD("l16ui", "a7", addr, value); + TEST_LOAD("l16ui", "a8", addr, value); + TEST_LOAD("l16ui", "a9", addr, value); + TEST_LOAD("l16ui", "a10", addr, value); + TEST_LOAD("l16ui", "a11", addr, value); + TEST_LOAD("l16ui", "a12", addr, value); + TEST_LOAD("l16ui", "a13", addr, value); + TEST_LOAD("l16ui", "a14", addr, value); + TEST_LOAD("l16ui", "a15", addr, value); +} + +static void sanity_test_l16si(const void *addr, int32_t value) { + TEST_LOAD("l16si", "a0", addr, value); + TEST_LOAD("l16si", "a1", addr, value); + TEST_LOAD("l16si", "a2", addr, value); + TEST_LOAD("l16si", "a3", addr, value); + TEST_LOAD("l16si", "a4", addr, value); + TEST_LOAD("l16si", "a5", addr, value); + TEST_LOAD("l16si", "a6", addr, value); + TEST_LOAD("l16si", "a7", addr, value); + TEST_LOAD("l16si", "a8", addr, value); + TEST_LOAD("l16si", "a9", addr, value); + TEST_LOAD("l16si", "a10", addr, value); + TEST_LOAD("l16si", "a11", addr, value); + TEST_LOAD("l16si", "a12", addr, value); + TEST_LOAD("l16si", "a13", addr, value); + TEST_LOAD("l16si", "a14", addr, value); + TEST_LOAD("l16si", "a15", addr, value); +} + +static void a_03_byte_load_test_sanity(void) { + printf("== Performing sanity tests (sanity_test_data @ %p)...\n", sanity_test_data); + + sanity_test_l8ui(sanity_test_data + 0, 0x01); + sanity_test_l8ui(sanity_test_data + 1, 0x55); + sanity_test_l8ui(sanity_test_data + 2, 0x7e); + sanity_test_l8ui(sanity_test_data + 3, 0x2a); + sanity_test_l8ui(sanity_test_data + 4, 0x81); + sanity_test_l8ui(sanity_test_data + 5, 0xd5); + sanity_test_l8ui(sanity_test_data + 6, 0xfe); + sanity_test_l8ui(sanity_test_data + 7, 0xaa); + + sanity_test_l16ui(sanity_test_data + 0, 0x5501); + sanity_test_l16ui(sanity_test_data + 2, 0x2a7e); + sanity_test_l16ui(sanity_test_data + 4, 0xd581); + sanity_test_l16ui(sanity_test_data + 6, 0xaafe); + + sanity_test_l16si(sanity_test_data + 0, 0x5501); + sanity_test_l16si(sanity_test_data + 2, 0x2a7e); + sanity_test_l16si(sanity_test_data + 4, -10879); + sanity_test_l16si(sanity_test_data + 6, -21762); + + printf("== Sanity tests completed.\n"); + TEST_PASS(); +} diff --git a/tests/cases/04_wifi_basic.c b/tests/cases/04_wifi_basic.c new file mode 100644 index 0000000..129ddd0 --- /dev/null +++ b/tests/cases/04_wifi_basic.c @@ -0,0 +1,181 @@ +/** + * This test verifies basic WiFi communication. + * + * Device A creates a WiFi access point and listens on port 23 for incomming + * connection. When incomming connection occurs it sends a string and waits + * for the response. + * + * Device B connects to a WiFi access point and opens TCP connection to + * device A on port 23. Then it receives a string and sends it back. + */ +#include + +#include +#include + +#include +#include "sdk_internal.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "testcase.h" + +#define AP_SSID "esp-open-rtos-ap" +#define AP_PSK "esp-open-rtos" +#define SERVER "172.16.0.1" +#define PORT 23 +#define BUF_SIZE 128 + +DEFINE_TESTCASE(04_wifi_basic, DUAL) + +/********************************************************* + * WiFi AP part + *********************************************************/ + +static void server_task(void *pvParameters) +{ + char buf[BUF_SIZE]; + struct netconn *nc = netconn_new(NETCONN_TCP); + TEST_ASSERT_TRUE_MESSAGE(nc != 0, "Failed to allocate socket"); + + netconn_bind(nc, IP_ADDR_ANY, PORT); + netconn_listen(nc); + + struct netconn *client = NULL; + err_t err = netconn_accept(nc, &client); + TEST_ASSERT_TRUE_MESSAGE(err == ERR_OK, "Error accepting connection"); + + ip_addr_t client_addr; + uint16_t port_ignore; + netconn_peer(client, &client_addr, &port_ignore); + + snprintf(buf, sizeof(buf), "test ping\r\n"); + printf("Device A: send data: %s\n", buf); + netconn_write(client, buf, strlen(buf), NETCONN_COPY); + + struct pbuf *pb; + for (int i = 0; i < 10; i++) { + TEST_ASSERT_EQUAL_INT_MESSAGE(ERR_OK, netconn_recv_tcp_pbuf(client, &pb), + "Failed to receive data"); + if (pb->len > 0) { + memcpy(buf, pb->payload, pb->len); + buf[pb->len] = 0; + break; + } + vTaskDelay(100 / portTICK_PERIOD_MS); + } + TEST_ASSERT_TRUE_MESSAGE(pb->len > 0, "No data received"); + printf("Device A: received data: %s\n", buf); + TEST_ASSERT_FALSE_MESSAGE(strcmp((const char*)buf, "test pong\r\n"), + "Received wrong data"); + + netconn_delete(client); + + TEST_PASS(); +} + +static void a_04_wifi_basic(void) +{ + printf("Device A started\n"); + sdk_wifi_set_opmode(SOFTAP_MODE); + + struct ip_info ap_ip; + IP4_ADDR(&ap_ip.ip, 172, 16, 0, 1); + IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); + IP4_ADDR(&ap_ip.netmask, 255, 255, 0, 0); + sdk_wifi_set_ip_info(1, &ap_ip); + + struct sdk_softap_config ap_config = { + .ssid = AP_SSID, + .ssid_hidden = 0, + .channel = 3, + .ssid_len = strlen(AP_SSID), + .authmode = AUTH_WPA_WPA2_PSK, + .password = AP_PSK, + .max_connection = 3, + .beacon_interval = 100, + }; + sdk_wifi_softap_set_config(&ap_config); + + ip_addr_t first_client_ip; + IP4_ADDR(&first_client_ip, 172, 16, 0, 2); + dhcpserver_start(&first_client_ip, 4); + + xTaskCreate(server_task, "setver_task", 1024, NULL, 2, NULL); +} + + +/********************************************************* + * WiFi client part + *********************************************************/ + +static void connect_task(void *pvParameters) +{ + struct sockaddr_in serv_addr; + char buf[BUF_SIZE]; + + // wait for wifi connection + while (sdk_wifi_station_get_connect_status() != STATION_GOT_IP) { + vTaskDelay(1000 / portTICK_PERIOD_MS); + printf("Waiting for connection to AP\n"); + } + + int s = socket(AF_INET, SOCK_STREAM, 0); + TEST_ASSERT_TRUE_MESSAGE(s >= 0, "Failed to allocate a socket"); + + bzero(&serv_addr, sizeof(serv_addr)); + serv_addr.sin_port = htons(PORT); + serv_addr.sin_family = AF_INET; + + TEST_ASSERT_TRUE_MESSAGE(inet_aton(SERVER, &serv_addr.sin_addr.s_addr), + "Failed to set IP address"); + + TEST_ASSERT_TRUE_MESSAGE( + connect(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == 0, + "Socket connection failed"); + + bzero(buf, BUF_SIZE); + + int r = 0; + for (int i = 0; i < 10; i++) { + r = read(s, buf, BUF_SIZE); + if (r > 0) { + break; + } + vTaskDelay(100 / portTICK_PERIOD_MS); + } + TEST_ASSERT_TRUE_MESSAGE(r > 0, "No data received"); + + printf("Device B: received data: %s\n", buf); + TEST_ASSERT_FALSE_MESSAGE(strcmp((const char*)buf, "test ping\r\n"), + "Received wrong data"); + + snprintf(buf, sizeof(buf), "test pong\r\n"); + printf("Device B: send data: %s\n", buf); + TEST_ASSERT_EQUAL_INT_MESSAGE(strlen(buf), write(s, buf, strlen(buf)), + "Error socket writing"); + + close(s); + + TEST_PASS(); +} + +static void b_04_wifi_basic(void) +{ + printf("Device B started\n"); + struct sdk_station_config config = { + .ssid = AP_SSID, + .password = AP_PSK, + }; + + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + + xTaskCreate(&connect_task, "connect_task", 1024, NULL, 2, NULL); +} diff --git a/examples/posix_fs/posix_fs_example.c b/tests/cases/05_spiffs.c similarity index 50% rename from examples/posix_fs/posix_fs_example.c rename to tests/cases/05_spiffs.c index 610f58d..c3bf30b 100644 --- a/examples/posix_fs/posix_fs_example.c +++ b/tests/cases/05_spiffs.c @@ -9,14 +9,18 @@ #include "esp_spiffs.h" #include "spiffs.h" -#include "fs-test/fs_test.h" +#include "fs_test.h" + +#include "testcase.h" + +DEFINE_SOLO_TESTCASE(05_spiffs) static fs_time_t get_current_time() { return timer_get_count(FRC2) / 5000; // to get roughly 1ms resolution } -void test_task(void *pvParameters) +static void test_task(void *pvParameters) { esp_spiffs_init(); esp_spiffs_mount(); @@ -28,28 +32,19 @@ void test_task(void *pvParameters) } esp_spiffs_mount(); - while (1) { - vTaskDelay(5000 / portTICK_PERIOD_MS); - if (fs_load_test_run(100)) { - printf("PASS\n"); - } else { - printf("FAIL\n"); - } + TEST_ASSERT_TRUE_MESSAGE(fs_load_test_run(100), "Load test failed"); - vTaskDelay(5000 / portTICK_PERIOD_MS); - float write_rate, read_rate; - if (fs_speed_test_run(get_current_time, &write_rate, &read_rate)) { - printf("Read speed: %.0f bytes/s\n", read_rate * 1000); - printf("Write speed: %.0f bytes/s\n", write_rate * 1000); - } else { - printf("FAIL\n"); - } + float write_rate, read_rate; + if (fs_speed_test_run(get_current_time, &write_rate, &read_rate)) { + printf("Read speed: %.0f bytes/s\n", read_rate * 1000); + printf("Write speed: %.0f bytes/s\n", write_rate * 1000); + } else { + TEST_FAIL(); } + TEST_PASS(); } -void user_init(void) +static void a_05_spiffs(void) { - uart_set_baud(0, 115200); - xTaskCreate(test_task, "test_task", 1024, NULL, 2, NULL); } diff --git a/tests/cases/06_timers.c b/tests/cases/06_timers.c new file mode 100644 index 0000000..91efb00 --- /dev/null +++ b/tests/cases/06_timers.c @@ -0,0 +1,86 @@ +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "etstimer.h" + +#include "testcase.h" + +DEFINE_SOLO_TESTCASE(06_ets_timers); + +typedef struct { + ETSTimer handle; + uint32_t start_time; + uint32_t fire_count; +} test_timer_t; + +#define TEST_TIMERS_NUMBER 2 +static test_timer_t timers[TEST_TIMERS_NUMBER]; + +static uint32_t get_current_time() +{ + return timer_get_count(FRC2) / 5000; // to get roughly 1ms resolution +} + +static void timer_0_cb(void *arg) +{ + uint32_t v = (uint32_t)arg; + uint32_t delay = get_current_time() - timers[0].start_time; + timers[0].fire_count++; + + TEST_ASSERT_EQUAL_UINT32_MESSAGE(0xAA, v, "Timer 0 argument invalid"); + TEST_ASSERT_EQUAL_INT_MESSAGE(1, timers[0].fire_count, "Timer 0 repeat error"); + + printf("Timer 0 delay: %d\n", delay); + // Timer should fire in 100ms + TEST_ASSERT_INT_WITHIN_MESSAGE(5, 100, delay, "Timer 0 time wrong"); +} + +static void timer_1_cb(void *arg) +{ + uint32_t v = (uint32_t)arg; + uint32_t delay = get_current_time() - timers[1].start_time; + + timers[1].start_time = get_current_time(); + timers[1].fire_count++; + + TEST_ASSERT_EQUAL_UINT32_MESSAGE(0xBB, v, "Timer 1 argument invalid"); + TEST_ASSERT_TRUE_MESSAGE(timers[1].fire_count < 6, + "Timer 1 repeats after disarming"); + + printf("Timer 1 delay: %d\n", delay); + // Timer should fire in 100ms + TEST_ASSERT_INT_WITHIN_MESSAGE(5, 50, delay, "Timer 1 time wrong"); + + if (timers[1].fire_count == 5) { + sdk_ets_timer_disarm(&timers[1].handle); + } +} + +static void test_task(void *pvParameters) +{ + sdk_ets_timer_disarm(&timers[0].handle); + sdk_ets_timer_setfn(&timers[0].handle, timer_0_cb, (void*)0xAA); + timers[0].start_time = get_current_time(); + sdk_ets_timer_arm(&timers[0].handle, 100, false); + + sdk_ets_timer_disarm(&timers[1].handle); + sdk_ets_timer_setfn(&timers[1].handle, timer_1_cb, (void*)0xBB); + timers[1].start_time = get_current_time(); + sdk_ets_timer_arm(&timers[1].handle, 50, true); // repeating timer + + vTaskDelay(500 / portTICK_PERIOD_MS); + + TEST_ASSERT_EQUAL_INT_MESSAGE(1, timers[0].fire_count, + "Timer hasn't fired"); + + TEST_ASSERT_EQUAL_INT_MESSAGE(5, timers[1].fire_count, + "Timer fire count isn't correct"); + + TEST_PASS(); +} + +static void a_06_ets_timers(void) +{ + xTaskCreate(test_task, "test_task", 256, NULL, 2, NULL); +} diff --git a/tests/fs-test b/tests/fs-test new file mode 160000 index 0000000..e531bc0 --- /dev/null +++ b/tests/fs-test @@ -0,0 +1 @@ +Subproject commit e531bc0d4f75887e5f0e081aae3efbf4a50e2f54 diff --git a/tests/include/testcase.h b/tests/include/testcase.h new file mode 100644 index 0000000..11f59a4 --- /dev/null +++ b/tests/include/testcase.h @@ -0,0 +1,59 @@ +#ifndef _TESTCASE_H +#define _TESTCASE_H +#include +#include +#include "esp/uart.h" + +/* Unity is the framework with test assertions, etc. */ +#include "unity.h" + +/* Need to explicitly flag once a test has completed successfully. */ +#undef TEST_PASS +#define TEST_PASS() do { UnityConcludeTest(); while(1) { } } while (0) + +/* Types of test, defined by hardware requirements */ +typedef enum { + SOLO, /* Test require "ESP A" only, no other connections */ + DUAL, /* Test requires "ESP A" and "ESP "B", basic interconnections between them */ + EYORE_TEST, /* Test requires an eyore-test board with onboard STM32F0 */ +} testcase_type_t; + +typedef void (testcase_fn_t)(void); + +typedef struct { + const char *name; + const char *file; + int line; + testcase_type_t type; + testcase_fn_t *a_fn; + testcase_fn_t *b_fn; +} testcase_t; + +void testcase_register(const testcase_t *testcase); + +/* Register a test case using these macros. Use DEFINE_SOLO_TESTCASE for single-MCU tests, + and DEFINE_TESTCASE for all other test types. +*/ +#define DEFINE_SOLO_TESTCASE(NAME) \ + static testcase_fn_t a_##NAME; \ + _DEFINE_TESTCASE_COMMON(NAME, SOLO, a_##NAME, 0) + +#define DEFINE_TESTCASE(NAME, TYPE) \ + static testcase_fn_t a_##NAME; \ + static testcase_fn_t b_##NAME; \ + _DEFINE_TESTCASE_COMMON(NAME, TYPE, a_##NAME, b_##NAME) + + +#define _DEFINE_TESTCASE_COMMON(NAME, TYPE, A_FN, B_FN) \ + void __attribute__((constructor)) testcase_ctor_##NAME() { \ + const testcase_t testcase = { .name = #NAME, \ + .file = __FILE__, \ + .line = __LINE__, \ + .type = TYPE, \ + .a_fn = A_FN, \ + .b_fn = B_FN, \ + }; \ + testcase_register(&testcase); \ + } + +#endif diff --git a/tests/test_main.c b/tests/test_main.c new file mode 100644 index 0000000..efc61b1 --- /dev/null +++ b/tests/test_main.c @@ -0,0 +1,122 @@ +#include "testcase.h" +#include +#include +#include +#include +#include +#include + +/* Convert requirement enum to a string we can print */ +static const char *get_requirements_name(const testcase_type_t arg) { + switch(arg) { + case SOLO: + return "SOLO"; + case DUAL: + return "DUAL"; + case EYORE_TEST: + return "EYORE_TEST"; + default: + return "UNKNOWN"; + } +} + +static testcase_t *testcases; +static uint32_t testcases_count; +static uint32_t testcases_alloc; + +void testcase_register(const testcase_t *testcase) +{ + /* Grow the testcases buffer to fit the new test case, + this buffer will be freed before the test runs. + */ + if(testcases_count == testcases_alloc) { + testcases_alloc += 1; + testcases = realloc(testcases, testcases_alloc * sizeof(testcase_t)); + if(!testcases) { + printf("Failed to reallocate test case register length %d\n", + testcases_alloc); + testcases_count = 0; + testcases_alloc = 0; + } + } + memcpy(&testcases[testcases_count++], testcase, sizeof(testcase_t)); +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + sdk_wifi_set_opmode(NULL_MODE); + printf("esp-open-rtos test runner.\n"); + printf("%d test cases are defined:\n\n", testcases_count); + for(int i = 0; i < testcases_count; i++) { + printf("CASE %d = %s %s\n", i, testcases[i].name, + get_requirements_name(testcases[i].type)); + } + + printf("Enter A or B then number of test case to run, ie A0.\n"); + int case_idx = -1; + char type; + do { + printf("> "); + uart_rxfifo_wait(0,1); + type = uart_getc(0); + if(type != 'a' && type != 'A' && type != 'b' && type != 'B') { + printf("Type must be A or B.\n"); + continue; + } + + char idx_buf[6]; + for(int c = 0; c < sizeof(idx_buf); c++) { + uart_rxfifo_wait(0,1); + idx_buf[c] = uart_getc(0); + if(idx_buf[c] == ' ') { /* Ignore spaces */ + c--; + continue; + } + if(idx_buf[c] == '\r' || idx_buf[c] == '\n') { + idx_buf[c] = 0; + case_idx = atoi(idx_buf); + break; + } + else if(idx_buf[c] < '0' || idx_buf[c] > '9') { + break; + } + } + + if(case_idx == -1) { + printf("Invalid case index"); + } + else if(case_idx < 0 || case_idx >= testcases_count) { + printf("Test case index out of range.\n"); + } + else if((type == 'b' || type =='B') && testcases[case_idx].type == SOLO) { + printf("No ESP type B for 'SOLO' test cases.\n"); + } else { + break; + } + } while(1); + if(type =='a') + type = 'A'; + else if (type == 'b') + type = 'B'; + testcase_t testcase; + memcpy(&testcase, &testcases[case_idx], sizeof(testcase_t)); + /* Free the register of test cases now we have the one we're running */ + free(testcases); + testcases_alloc = 0; + testcases_count = 0; + + printf("\nRunning test case %d (%s %s) as instance %c " + "\nDefinition at %s:%d\n***\n", case_idx, + testcase.name, get_requirements_name(testcase.type), type, + testcase.file, testcase.line); + + Unity.CurrentTestName = testcase.name; + Unity.TestFile = testcase.file; + Unity.CurrentTestLineNumber = testcase.line; + Unity.NumberOfTests = 1; + if(type=='A') + testcase.a_fn(); + else + testcase.b_fn(); +} diff --git a/tests/test_runner.py b/tests/test_runner.py new file mode 100755 index 0000000..347fd9b --- /dev/null +++ b/tests/test_runner.py @@ -0,0 +1,389 @@ +#!/usr/bin/env python3 +import sys +import argparse +import subprocess +import os +import serial +import threading +import re +import time + + +SHORT_OUTPUT_TIMEOUT = 0.25 # timeout for resetting and/or waiting for more lines of output +TESTCASE_TIMEOUT = 60 +TESTRUNNER_BANNER = "esp-open-rtos test runner." +RESET_RETRIES = 10 # retries to receive test runner banner after reset + + +def run(env_a, env_b, cases): + counts = dict((status, 0) for status in TestResult.STATUS_NAMES.keys()) + failures = False + for test in cases: + if test.case_type == 'dual': + if env_b is None: + res = TestResult(TestResult.SKIPPED, 'Dual test case skipped') + else: + res = test.run(env_a, env_b) + else: + res = test.run(env_a) + counts[res.status] += 1 + failures = failures or res.is_failure() + + print("%20s: %d" % ("Total tests", sum(c for c in counts.values()))) + print() + # print status counts for tests + for c in sorted(counts.keys()): + print("%20s: %d" % (TestResult.STATUS_NAMES[c], counts[c])) + + return failures == 0 + + +def main(): + global verbose + args = parse_args() + verbose = args.verbose + + if not args.no_flash: + flash_image(args.aport) + if args.type != 'solo': + flash_image(args.bport) + + env = TestEnvironment(args.aport, TestEnvironment.A) + env_b = None + cases = env.get_testlist() + if args.type != 'solo': + env_b = TestEnvironment(args.bport, TestEnvironment.B) + cases_b = env_b.get_testlist() + if cases != cases_b: + raise TestRunnerError("Test cases on units A & B don't match") + + if args.list: # if list option is specified, do not run test cases + print("List of test cases:") + for test in cases: + print(test) + sys.exit(0) + + if args.testcases: # if testcases is specified run only those cases + cases = [c for c in cases if str(c.index) in args.testcases] + + sys.exit(0 if run(env, env_b, cases) else 1) + + +class TestCase(object): + def __init__(self, index, name, case_type): + self.name = name + self.index = index + self.case_type = case_type + + def __repr__(self): + return "#%d: %s (%s)" % (self.index, self.name, self.case_type) + + def __eq__(self, other): + return (self.index == other.index and + self.name == other.name and + self.case_type == other.case_type) + + def run(self, env_a, env_b=None): + """ + Run the test represented by this instance, against the environment(s) passed in. + + Returns a TestResult + """ + sys.stdout.write("Running test case '%s'...%s" % (self.name, "\n" if verbose else " "*(40-len(self.name)))) + mon_a = env_a.start_testcase(self) + mon_b = env_b.start_testcase(self) if env_b else None + while True: + if mon_a.get_result() and (mon_b is None or mon_b.get_result()): + break # all running test environments have finished + + # or, in the case both are running, stop as soon as either environemnt shows a failure + try: + if mon_a.get_result().is_failure(): + mon_b.cancel() + break + except AttributeError: + pass + try: + if mon_b.get_result().is_failure(): + mon_a.cancel() + break + except AttributeError: + pass + time.sleep(0.1) + + if mon_b is not None: + # return whichever result is more severe + res = max(mon_a.get_result(), mon_b.get_result()) + else: + res = mon_a.get_result() + if not verbose: # finish the line after the ... + print(TestResult.STATUS_NAMES[res.status]) + if res.is_failure(): + message = res.message + if "/" in res.message: # cut anything before the file name in the failure + message = message[message.index("/"):] + print("FAILURE MESSAGE:\n%s\n" % message) + return res + + +class TestResult(object): + """ Class to wrap a test result code and a message """ + # Test status flags, higher = more severe + CANCELLED = 0 + SKIPPED = 1 + PASSED = 2 + FAILED = 3 + ERROR = 4 + + STATUS_NAMES = { + CANCELLED: "Cancelled", + SKIPPED: "Skipped", + PASSED: "Passed", + FAILED: "Failed", + ERROR: "Error" + } + + def __init__(self, status, message): + self.status = status + self.message = message + + def is_failure(self): + return self.status >= TestResult.FAILED + + def __qe__(self, other): + if other is None: + return False + else: + return self.status == other.status + + def __lt__(self, other): + if other is None: + return False + else: + return self.status < other.status + + +class TestMonitor(object): + """ Class to monitor a running test case in a separate thread, defer reporting of the result until it's done. + + Can poll for completion by calling is_done(), read a TestResult via .get_result() + """ + def __init__(self, port, instance): + super(TestMonitor, self).__init__() + self._thread = threading.Thread(target=self._monitorThread) + self._port = port + self._instance = instance + self._result = None + self._cancelled = False + self.output = "" + self._thread.start() + + def cancel(self): + self._cancelled = True + + def is_done(self): + return self._result is not None + + def get_result(self): + return self._result + + def _monitorThread(self): + self.output = "" + start_time = time.time() + self._port.timeout = SHORT_OUTPUT_TIMEOUT + try: + while not self._cancelled and time.time() < start_time + TESTCASE_TIMEOUT: + line = self._port.readline().decode("utf-8", "ignore") + if line == "": + continue # timed out + self.output += "%s+%4.2fs %s" % (self._instance, time.time()-start_time, line) + verbose_print(line.strip()) + if line.endswith(":PASS\r\n"): + self._result = TestResult(TestResult.PASSED, "Test passed.") + return + elif ":FAIL:" in line: + self._result = TestResult(TestResult.FAILED, line) + return + elif line == TESTRUNNER_BANNER: + self._result = TestResult(TestResult.ERROR, "Test caused crash and reset.") + return + if not self._cancelled: + self._result = TestResult(TestResult.CANCELLED, "Cancelled") + else: + self._result = TestResult(TestResult.ERROR, "Test timed out") + + finally: + self._port.timeout = None + + +class TestEnvironment(object): + A = "A" + B = "B" + + def __init__(self, port, instance): + self._name = port + self._port = TestSerialPort(port, baudrate=115200) + self._instance = instance + + def reset(self): + """ Resets the test board, and waits for the test runner program to start up """ + for i in range(RESET_RETRIES): + self._port.setDTR(False) + self._port.setRTS(True) + time.sleep(0.05) + self._port.flushInput() + self._port.setRTS(False) + verbose_print("Waiting for test runner startup...") + if self._port.wait_line(lambda line: line == TESTRUNNER_BANNER): + return + else: + verbose_print("Retrying to reset the test board, attempt=%d" % + (i + 1)) + continue + raise TestRunnerError("Port %s failed to start test runner" % self._port) + + def get_testlist(self): + """ Resets the test board and returns the enumerated list of all supported tests """ + self.reset() + tests = [] + verbose_print("Enumerating tests...") + + def collect_testcases(line): + if line.startswith(">"): + return True # prompt means list of test cases is done, success + m = re.match(r"CASE (\d+) = (.+?) ([A-Z]+)", line) + if m is not None: + t = TestCase(int(m.group(1)), m.group(2), m.group(3).lower()) + verbose_print(t) + tests.append(t) + if not self._port.wait_line(collect_testcases): + raise TestRunnerError("Port %s failed to read test list" % self._port) + verbose_print("Port %s found %d test cases" % (self._name, len(tests))) + return tests + + def start_testcase(self, case): + """ Starts the specified test instance and returns a TestMonitor reader thread instance + to monitor the output + """ + # synchronously start the test case + self.reset() + if not self._port.wait_line(lambda line: line.startswith(">")): + raise TestRunnerError("Failed to read test runnner prompt") + command = "%s%d\r\n" % (self._instance, case.index) + self._port.write(command.encode("utf-8")) + return TestMonitor(self._port, self._instance) + + +def get_testdir(): + """ + Return the 'tests' directory in the source tree + (assuming the test_runner.py script is in that directory. + """ + res = os.path.dirname(__name__) + return "." if res == "" else res + + +def flash_image(serial_port): + # Bit hacky: rather than calling esptool directly, + # just use the Makefile flash target with the correct ESPPORT argument + env = dict(os.environ) + env["ESPPORT"] = serial_port + verbose_print("Building and flashing test image to %s..." % serial_port) + try: + stdout = sys.stdout if verbose else None + subprocess.check_call(["make", "flash"], cwd=get_testdir(), + stdout=stdout, stderr=subprocess.STDOUT, env=env) + except subprocess.CalledProcessError as e: + raise TestRunnerError("'make flash EPPORT=%s' failed with exit code %d" % + (serial_port, e.returncode)) + verbose_print("Flashing successful.") + + +def parse_args(): + parser = argparse.ArgumentParser(description='esp-open-rtos testrunner', prog='test_runner') + + parser.add_argument( + '--type', '-t', + help='Type of test hardware attached to serial ports A & (optionally) B', + choices=['solo', 'dual', 'eyore_test'], default='solo') + + parser.add_argument( + '--aport', '-a', + help='Serial port for device A', + default='/dev/ttyUSB0') + + parser.add_argument( + '--bport', '-b', + help='Serial port for device B (ignored if type is \'solo\')', + default='/dev/ttyUSB1') + + parser.add_argument( + '--no-flash', '-n', + help='Don\'t flash the test binary image before running tests', + action='store_true', + default=False) + + parser.add_argument( + '--list', '-l', + help='Display list of available test cases on a device', + action='store_true', + default=False) + + parser.add_argument( + '--verbose', '-v', + help='Verbose test runner debugging output', + action='store_true', + default=False) + + parser.add_argument('testcases', nargs='*', + help='Optional list of test case numbers to run. ' + 'By default, all tests are run.') + + return parser.parse_args() + + +class TestRunnerError(RuntimeError): + def __init__(self, message): + RuntimeError.__init__(self, message) + + +class TestSerialPort(serial.Serial): + def __init__(self, *args, **kwargs): + super(TestSerialPort, self).__init__(*args, **kwargs) + + def wait_line(self, callback, timeout=SHORT_OUTPUT_TIMEOUT): + """ Wait for the port to output a particular piece of line content, as judged by callback + + Callback called as 'callback(line)' and returns not-True if non-match otherwise can return any value. + + Returns first non-False result from the callback, or None if it timed out waiting for a new line. + + Note that a serial port spewing legitimate lines of output may block this function forever, if callback + doesn't detect this is happening. + """ + self.timeout = timeout + try: + res = None + while not res: + line = self.readline() + if line == b"": + break # timed out + line = line.decode("utf-8", "ignore").rstrip() + res = callback(line) + return res + finally: + self.timeout = None + +verbose = False + + +def verbose_print(msg): + if verbose: + print(msg) + +if __name__ == '__main__': + try: + main() + except TestRunnerError as e: + print(e) + sys.exit(2) diff --git a/tests/unity b/tests/unity new file mode 160000 index 0000000..bbf2fe3 --- /dev/null +++ b/tests/unity @@ -0,0 +1 @@ +Subproject commit bbf2fe3a934f96cd00693841247a689e57a17b0d From bc50c7c2fc4696b71cffa26355a626b362f5cbed Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 13 Nov 2016 05:54:24 +1100 Subject: [PATCH 104/349] open_esplibs: add a skeleton for code in more libraries. (#266) --- common.mk | 22 ++++-- extras/stdin_uart_interrupt/component.mk | 4 +- open_esplibs/component.mk | 40 ++++++++++- open_esplibs/include/open_esplibs.h | 79 +++++++++++++++++++++ open_esplibs/libnet80211/ieee80211_ets.c | 10 +++ open_esplibs/libnet80211/ieee80211_hostap.c | 10 +++ open_esplibs/libnet80211/ieee80211_input.c | 11 +++ open_esplibs/libnet80211/ieee80211_sta.c | 11 +++ open_esplibs/libnet80211/wl_cnx.c | 11 +++ open_esplibs/libphy/phy.c | 11 +++ open_esplibs/libphy/phy_chip_v6.c | 11 +++ open_esplibs/libphy/phy_sleep.c | 11 +++ open_esplibs/libpp/esf_buf.c | 11 +++ open_esplibs/libpp/if_hwctrl.c | 11 +++ open_esplibs/libpp/lmac.c | 11 +++ open_esplibs/libpp/pm.c | 11 +++ open_esplibs/libpp/pp.c | 11 +++ open_esplibs/libpp/wdev.c | 11 +++ open_esplibs/libwpa/wpa_main.c | 11 +++ parameters.mk | 3 - tests/Makefile | 7 +- 21 files changed, 297 insertions(+), 21 deletions(-) create mode 100644 open_esplibs/libnet80211/ieee80211_ets.c create mode 100644 open_esplibs/libnet80211/ieee80211_hostap.c create mode 100644 open_esplibs/libnet80211/ieee80211_input.c create mode 100644 open_esplibs/libnet80211/ieee80211_sta.c create mode 100644 open_esplibs/libnet80211/wl_cnx.c create mode 100644 open_esplibs/libphy/phy.c create mode 100644 open_esplibs/libphy/phy_chip_v6.c create mode 100644 open_esplibs/libphy/phy_sleep.c create mode 100644 open_esplibs/libpp/esf_buf.c create mode 100644 open_esplibs/libpp/if_hwctrl.c create mode 100644 open_esplibs/libpp/lmac.c create mode 100644 open_esplibs/libpp/pm.c create mode 100644 open_esplibs/libpp/pp.c create mode 100644 open_esplibs/libpp/wdev.c create mode 100644 open_esplibs/libwpa/wpa_main.c diff --git a/common.mk b/common.mk index bdec87a..b35dbd9 100644 --- a/common.mk +++ b/common.mk @@ -89,8 +89,9 @@ all: $(PROGRAM_OUT) $(FW_FILE_1) $(FW_FILE_2) $(FW_FILE) # $(1)_INC_DIR = List of include directories specific for the component # # -# Each call appends to COMPONENT_ARS which is a list of archive files for compiled components +# Each call appends to COMPONENT_ARS or WHOLE_ARCHIVES which are lists of archive files for compiled components COMPONENT_ARS = +WHOLE_ARCHIVES = define component_compile_rules $(1)_DEFAULT_ROOT := $(dir $(lastword $(MAKEFILE_LIST))) $(1)_ROOT ?= $$($(1)_DEFAULT_ROOT) @@ -136,9 +137,12 @@ $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.S $$($(1)_MAKEFILE) $(wildcard $(ROOT)* $(1)_AR_IN_FILES = $$($(1)_OBJ_FILES) -# the component is shown to depend on both obj and source files so we get -# a meaningful error message for missing explicitly named source files -ifeq ($(INCLUDE_SRC_IN_AR),1) +# The component is shown to depend on both obj and source files so we get +# a meaningful error message for missing explicitly named source files. +# But do not include source files into a static library because when adding this +# library with '--whole-archive' linker gives error that archive contains +# unknown objects (source files) +ifndef $(1)_WHOLE_ARCHIVE $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) endif @@ -147,7 +151,11 @@ $$($(1)_AR): $$($(1)_AR_IN_FILES) $(Q) mkdir -p $$(dir $$@) $(Q) $(AR) cru $$@ $$^ -COMPONENT_ARS += $$($(1)_AR) +ifdef $(1)_WHOLE_ARCHIVE + WHOLE_ARCHIVES += $$($(1)_AR) +else + COMPONENT_ARS += $$($(1)_AR) +endif -include $$($(1)_OBJ_FILES:.o=.d) endef @@ -200,9 +208,9 @@ $(foreach component,$(COMPONENTS), \ ) # final linking step to produce .elf -$(PROGRAM_OUT): $(COMPONENT_ARS) $(SDK_PROCESSED_LIBS) $(LINKER_SCRIPTS) +$(PROGRAM_OUT): $(WHOLE_ARCHIVES) $(COMPONENT_ARS) $(SDK_PROCESSED_LIBS) $(LINKER_SCRIPTS) $(vecho) "LD $@" - $(Q) $(LD) $(LDFLAGS) -Wl,--start-group $(COMPONENT_ARS) $(LIB_ARGS) $(SDK_LIB_ARGS) -Wl,--end-group -o $@ + $(Q) $(LD) $(LDFLAGS) -Wl,--whole-archive $(WHOLE_ARCHIVES) -Wl,--no-whole-archive -Wl,--start-group $(COMPONENT_ARS) $(LIB_ARGS) $(SDK_LIB_ARGS) -Wl,--end-group -o $@ $(BUILD_DIR) $(FIRMWARE_DIR) $(BUILD_DIR)sdklib: $(Q) mkdir -p $@ diff --git a/extras/stdin_uart_interrupt/component.mk b/extras/stdin_uart_interrupt/component.mk index ba16484..b71150f 100644 --- a/extras/stdin_uart_interrupt/component.mk +++ b/extras/stdin_uart_interrupt/component.mk @@ -8,8 +8,6 @@ INC_DIRS += $(stdin_uart_interrupt_ROOT) # args for passing into compile rule generation stdin_uart_interrupt_SRC_DIR = $(stdin_uart_interrupt_ROOT) - -INCLUDE_SRC_IN_AR = 0 -EXTRA_LDFLAGS = -Wl,--whole-archive $(stdin_uart_interrupt_AR) -Wl,--no-whole-archive +stdin_uart_interrupt_WHOLE_ARCHIVE = yes $(eval $(call component_compile_rules,stdin_uart_interrupt)) diff --git a/open_esplibs/component.mk b/open_esplibs/component.mk index 23c8b6a..e63e979 100644 --- a/open_esplibs/component.mk +++ b/open_esplibs/component.mk @@ -5,11 +5,47 @@ INC_DIRS += $(open_esplibs_ROOT)include $(eval $(call component_compile_rules,open_esplibs)) # args for passing into compile rule generation -open_esplibs_libmain_ROOT = $(open_esplibs_libmain_DEFAULT_ROOT)libmain +open_esplibs_libmain_ROOT = $(open_esplibs_ROOT)libmain open_esplibs_libmain_INC_DIR = open_esplibs_libmain_SRC_DIR = $(open_esplibs_libmain_ROOT) open_esplibs_libmain_EXTRA_SRC_FILES = - open_esplibs_libmain_CFLAGS = $(CFLAGS) +open_esplibs_libmain_WHOLE_ARCHIVE = yes $(eval $(call component_compile_rules,open_esplibs_libmain)) + +open_esplibs_libnet80211_ROOT = $(open_esplibs_ROOT)libnet80211 +open_esplibs_libnet80211_INC_DIR = +open_esplibs_libnet80211_SRC_DIR = $(open_esplibs_libnet80211_ROOT) +open_esplibs_libnet80211_EXTRA_SRC_FILES = +open_esplibs_libnet80211_CFLAGS = $(CFLAGS) +open_esplibs_libnet80211_WHOLE_ARCHIVE = yes + +$(eval $(call component_compile_rules,open_esplibs_libnet80211)) + +open_esplibs_libphy_ROOT = $(open_esplibs_ROOT)libphy +open_esplibs_libphy_INC_DIR = +open_esplibs_libphy_SRC_DIR = $(open_esplibs_libphy_ROOT) +open_esplibs_libphy_EXTRA_SRC_FILES = +open_esplibs_libphy_CFLAGS = $(CFLAGS) +open_esplibs_libphy_WHOLE_ARCHIVE = yes + +$(eval $(call component_compile_rules,open_esplibs_libphy)) + +open_esplibs_libpp_ROOT = $(open_esplibs_ROOT)libpp +open_esplibs_libpp_INC_DIR = +open_esplibs_libpp_SRC_DIR = $(open_esplibs_libpp_ROOT) +open_esplibs_libpp_EXTRA_SRC_FILES = +open_esplibs_libpp_CFLAGS = $(CFLAGS) +open_esplibs_libpp_WHOLE_ARCHIVE = yes + +$(eval $(call component_compile_rules,open_esplibs_libpp)) + +open_esplibs_libwpa_ROOT = $(open_esplibs_ROOT)libwpa +open_esplibs_libwpa_INC_DIR = +open_esplibs_libwpa_SRC_DIR = $(open_esplibs_libwpa_ROOT) +open_esplibs_libwpa_EXTRA_SRC_FILES = +open_esplibs_libwpa_CFLAGS = $(CFLAGS) +open_esplibs_libwpa_WHOLE_ARCHIVE = yes + +$(eval $(call component_compile_rules,open_esplibs_libwpa)) diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h index 8db3127..fce49a1 100644 --- a/open_esplibs/include/open_esplibs.h +++ b/open_esplibs/include/open_esplibs.h @@ -36,4 +36,83 @@ #define OPEN_LIBMAIN_USER_INTERFACE (OPEN_LIBMAIN) #endif +#ifndef OPEN_LIBNET80211 +#define OPEN_LIBNET80211 (OPEN_ESPLIBS) +#endif +#ifndef OPEN_LIBNET80211_ETS +#define OPEN_LIBNET80211_ETS (OPEN_LIBNET80211) +#endif +#ifndef OPEN_LIBNET80211_HOSTAP +#define OPEN_LIBNET80211_HOSTAP (OPEN_LIBNET80211) +#endif +#ifndef OPEN_LIBNET80211_INPUT +#define OPEN_LIBNET80211_INPUT (OPEN_LIBNET80211) +#endif +#ifndef OPEN_LIBNET80211_STA +#define OPEN_LIBNET80211_STA (OPEN_LIBNET80211) +#endif +#ifndef OPEN_LIBNET80211_WL_CNX +#define OPEN_LIBNET80211_WL_CNX (OPEN_LIBNET80211) +#endif + +#ifndef OPEN_LIBPHY +#define OPEN_LIBPHY (OPEN_ESPLIBS) +#endif + +#ifndef OPEN_LIBPHY_PHY_ANA +#define OPEN_LIBPHY_PHY_ANA (OPEN_LIBPHY) +#endif + +#ifndef OPEN_LIBPHY_PHY_CAL +#define OPEN_LIBPHY_PHY_CAL (OPEN_LIBPHY) +#endif + +#ifndef OPEN_LIBPHY_PHY_CHIP_V6 +#define OPEN_LIBPHY_PHY_CHIP_V6 (OPEN_LIBPHY) +#endif + +#ifndef OPEN_LIBPHY_PHY +#define OPEN_LIBPHY_PHY (OPEN_LIBPHY) +#endif + +#ifndef OPEN_LIBPHY_PHY_SLEEP +#define OPEN_LIBPHY_PHY_SLEEP (OPEN_LIBPHY) +#endif + +#ifndef OPEN_LIBPP +#define OPEN_LIBPP (OPEN_ESPLIBS) +#endif + +#ifndef OPEN_LIBPP_ESF_BUF +#define OPEN_LIBPP_ESF_BUF (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBPP_IF_HWCTRL +#define OPEN_LIBPP_IF_HWCTRL (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBPP_LMAC +#define OPEN_LIBPP_LMAC (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBPP_PM +#define OPEN_LIBPP_PM (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBPP_PP +#define OPEN_LIBPP_PP (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBPP_WDEV +#define OPEN_LIBPP_WDEV (OPEN_LIBPP) +#endif + +#ifndef OPEN_LIBWPA +#define OPEN_LIBWPA (OPEN_ESPLIBS) +#endif + +#ifndef OPEN_LIBWPA_WPA_MAIN +#define OPEN_LIBWPA_WPA_MAIN (OPEN_LIBWPA) +#endif + #endif /* _OPEN_ESPLIBS_H */ diff --git a/open_esplibs/libnet80211/ieee80211_ets.c b/open_esplibs/libnet80211/ieee80211_ets.c new file mode 100644 index 0000000..7d0620d --- /dev/null +++ b/open_esplibs/libnet80211/ieee80211_ets.c @@ -0,0 +1,10 @@ +/* Recreated Espressif libnet80211 ieee80211_ets.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_ETS +// The contents of this file are only built if OPEN_LIBNET80211_ETS is set to true + +#endif /* OPEN_LIBNET80211_ETS */ diff --git a/open_esplibs/libnet80211/ieee80211_hostap.c b/open_esplibs/libnet80211/ieee80211_hostap.c new file mode 100644 index 0000000..fbe7f49 --- /dev/null +++ b/open_esplibs/libnet80211/ieee80211_hostap.c @@ -0,0 +1,10 @@ +/* Recreated Espressif libnet80211 ieee80211_hostap.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_HOSTAP +// The contents of this file are only built if OPEN_LIBNET80211_HOSTAP is set to true + +#endif /* OPEN_LIBNET80211_HOSTAP */ diff --git a/open_esplibs/libnet80211/ieee80211_input.c b/open_esplibs/libnet80211/ieee80211_input.c new file mode 100644 index 0000000..0880463 --- /dev/null +++ b/open_esplibs/libnet80211/ieee80211_input.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libnet80211 ieee80211_input.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_INPUT +// The contents of this file are only built if OPEN_LIBNET80211_INPUT is set to true + + +#endif /* OPEN_LIBNET80211_INPUT */ diff --git a/open_esplibs/libnet80211/ieee80211_sta.c b/open_esplibs/libnet80211/ieee80211_sta.c new file mode 100644 index 0000000..0352b1e --- /dev/null +++ b/open_esplibs/libnet80211/ieee80211_sta.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libnet80211 ieee80211_sta.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_STA +// The contents of this file are only built if OPEN_LIBNET80211_STA is set to true + + +#endif /* OPEN_LIBNET80211_STA */ diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c new file mode 100644 index 0000000..563bcbc --- /dev/null +++ b/open_esplibs/libnet80211/wl_cnx.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libnet80211 wl_cnx.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_WL_CNX +// The contents of this file are only built if OPEN_LIBNET80211_WL_CNX is set to true + + +#endif /* OPEN_LIBNET80211_WL_CNX */ diff --git a/open_esplibs/libphy/phy.c b/open_esplibs/libphy/phy.c new file mode 100644 index 0000000..4e27fdb --- /dev/null +++ b/open_esplibs/libphy/phy.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libphy phy.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_WL_CNX +// The contents of this file are only built if OPEN_LIBPHY_PHY is set to true + + +#endif /* OPEN_LIBPHY_PHY */ diff --git a/open_esplibs/libphy/phy_chip_v6.c b/open_esplibs/libphy/phy_chip_v6.c new file mode 100644 index 0000000..096258d --- /dev/null +++ b/open_esplibs/libphy/phy_chip_v6.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libphy phy_chip_v6.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_WL_CNX +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_V6 is set to true + + +#endif /* OPEN_LIBPHY_PHY_CHIP_V6 */ diff --git a/open_esplibs/libphy/phy_sleep.c b/open_esplibs/libphy/phy_sleep.c new file mode 100644 index 0000000..db10250 --- /dev/null +++ b/open_esplibs/libphy/phy_sleep.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libphy phy_chip_sleep.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBNET80211_WL_CNX +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPHY_PHY_CHIP_SLEEP */ diff --git a/open_esplibs/libpp/esf_buf.c b/open_esplibs/libpp/esf_buf.c new file mode 100644 index 0000000..f6d0bc9 --- /dev/null +++ b/open_esplibs/libpp/esf_buf.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp esf_buf.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_ESF_BUF +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_ESF_BUF */ diff --git a/open_esplibs/libpp/if_hwctrl.c b/open_esplibs/libpp/if_hwctrl.c new file mode 100644 index 0000000..c023a4e --- /dev/null +++ b/open_esplibs/libpp/if_hwctrl.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp if_hwctrl.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_IF_HWCTRL +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_IF_HWCTRL */ diff --git a/open_esplibs/libpp/lmac.c b/open_esplibs/libpp/lmac.c new file mode 100644 index 0000000..d80d560 --- /dev/null +++ b/open_esplibs/libpp/lmac.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp lmac.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_LMAC +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_LMAC */ diff --git a/open_esplibs/libpp/pm.c b/open_esplibs/libpp/pm.c new file mode 100644 index 0000000..232b248 --- /dev/null +++ b/open_esplibs/libpp/pm.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp pm.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_PM +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_PM */ diff --git a/open_esplibs/libpp/pp.c b/open_esplibs/libpp/pp.c new file mode 100644 index 0000000..e619fd9 --- /dev/null +++ b/open_esplibs/libpp/pp.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp pp.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_PP +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_PP */ diff --git a/open_esplibs/libpp/wdev.c b/open_esplibs/libpp/wdev.c new file mode 100644 index 0000000..1564a59 --- /dev/null +++ b/open_esplibs/libpp/wdev.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libpp wdev.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBPP_WDEV +// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true + + +#endif /* OPEN_LIBPP_WDEV */ diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c new file mode 100644 index 0000000..c1133e6 --- /dev/null +++ b/open_esplibs/libwpa/wpa_main.c @@ -0,0 +1,11 @@ +/* Recreated Espressif libwpa wpa_main.o contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBWPA_WPA_MAIN +// The contents of this file are only built if OPEN_LIBWPA_WPA_MAIN is set to true + + +#endif /* OPEN_LIBWPA_WPA_MAIN */ diff --git a/parameters.mk b/parameters.mk index ddf2580..8c6a8a3 100644 --- a/parameters.mk +++ b/parameters.mk @@ -42,9 +42,6 @@ PRINTF_SCANF_FLOAT_SUPPORT ?= 1 FLAVOR ?= release # or debug -# Include source files into a static library. It improves error messages. -INCLUDE_SRC_IN_AR ?= 1 - # Compiler names, etc. assume gdb CROSS ?= xtensa-lx106-elf- diff --git a/tests/Makefile b/tests/Makefile index 599253c..9f0fc41 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -16,12 +16,7 @@ PROGRAM_EXTRA_SRC_FILES = ./unity/src/unity.c ./fs-test/fs_test.c TESTCASE_SRC_FILES = $(wildcard $(PROGRAM_DIR)cases/*.c) -# Do not include source files into a static library because when adding this -# library with '--whole-archive' linker gives error that archive contains -# unknown objects (source files) -INCLUDE_SRC_IN_AR = 0 - # Link every object in the 'program' archive, to pick up constructor functions for test cases -EXTRA_LDFLAGS = -Wl,--whole-archive $(BUILD_DIR)program.a -Wl,--no-whole-archive +PROGRAM_WHOLE_ARCHIVE = yes include ../common.mk From 2bc87e9414ba8d35b1ea5693792574d7441ab75b Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 13 Nov 2016 07:24:29 +1100 Subject: [PATCH 105/349] Use a separate file for the private SSID config. (#268) --- .travis.yml | 2 +- README.md | 4 +--- include/.gitignore | 1 + include/ssid_config.h | 23 +++++------------------ 4 files changed, 8 insertions(+), 22 deletions(-) create mode 100644 include/.gitignore diff --git a/.travis.yml b/.travis.yml index 4bd0884..c00c5d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,7 +40,7 @@ before_install: script: - cd ${TRAVIS_BUILD_DIR} # Remove ssid_config requirement for examples - - sed -i "s%#error%//#error%" include/ssid_config.h + - echo -e '#define WIFI_SSID "mywifissid"\n#define WIFI_PASS "my secret password"\n' > include/private_ssid_config.h # Don't verbose-build all examples (too much output), only verbose-build errors - ( ${MAKE_CMD} ) || ( ${MAKE_CMD} V=1 ) # build bootloader diff --git a/README.md b/README.md index 1fa76bc..6f1a381 100644 --- a/README.md +++ b/README.md @@ -33,15 +33,13 @@ git clone --recursive https://github.com/Superhouse/esp-open-rtos.git cd esp-open-rtos ``` -* To build any examples that use WiFi, edit `include/ssid_config.h` and change the two macro defines: +* To build any examples that use WiFi, create `include/private_ssid_config.h` defining the two macro defines: ```c #define WIFI_SSID "mywifissid" #define WIFI_PASS "my secret password" ``` -Remove the `#warning` line and follow the git ignore instructions written in the header file to keep your credentials from being pushed to Github. - * Build an example project (found in the 'examples' directory) and flash it to a serial port: ``` diff --git a/include/.gitignore b/include/.gitignore new file mode 100644 index 0000000..c452a26 --- /dev/null +++ b/include/.gitignore @@ -0,0 +1 @@ +private_ssid_config.h diff --git a/include/ssid_config.h b/include/ssid_config.h index a13e09a..9136731 100644 --- a/include/ssid_config.h +++ b/include/ssid_config.h @@ -3,29 +3,16 @@ // // We all need to add our personal SSID/password to each ESP project but we // do not want that information pushed to Github. This file solves that -// problem. +// problem. Create an include/private_ssid_config.h file with the following two +// definitions uncommented: // -// First tell git to ignore changes to this file: +// #define WIFI_SSID "mywifissid" +// #define WIFI_PASS "my secret password" // -// git update-index --assume-unchanged include/ssid_config.h -// -// Then, enter your SSID and passphrase below and it will never be committed -// to Github. -// -// Change password on project basis? Copy the default version this file to your -// project directory, redo the instructions and you have separate wifi settings -// for that project. -// -// For reference, see -// https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html -// - -#error "You need to enter your wifi credentials in this file and follow the instructions here to keep the password safe from Github commits." #ifndef __SSID_CONFIG_H__ #define __SSID_CONFIG_H__ -#define WIFI_SSID "mywifissid" -#define WIFI_PASS "my secret password" +#include "private_ssid_config.h" #endif // __SSID_CONFIG_H__ From e48910ea3bed2974aadbb91d97f8a549c3d289ff Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 14 Nov 2016 09:05:13 +1100 Subject: [PATCH 106/349] Update and re-organise the sdk internal definitions. (#267) --- FreeRTOS/Source/portable/esp8266/portmacro.h | 2 +- core/app_main.c | 16 +- core/include/sdk_internal.h | 263 ++++++++++++++----- open_esplibs/include/esplibs/libmain.h | 38 ++- open_esplibs/include/esplibs/libnet80211.h | 87 +++++- open_esplibs/include/esplibs/libphy.h | 51 +++- open_esplibs/include/esplibs/libpp.h | 68 +++-- open_esplibs/include/esplibs/libwpa.h | 80 ++++++ open_esplibs/libmain/user_interface.c | 9 +- 9 files changed, 514 insertions(+), 100 deletions(-) create mode 100644 open_esplibs/include/esplibs/libwpa.h diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h index 19c9248..68d5e57 100644 --- a/FreeRTOS/Source/portable/esp8266/portmacro.h +++ b/FreeRTOS/Source/portable/esp8266/portmacro.h @@ -144,7 +144,7 @@ void PendSV(enum SVC_ReqType); ESPTODO: It may be possible to just read the 'ps' register instead of accessing thisvariable. */ -extern char sdk_NMIIrqIsOn; +extern uint8_t sdk_NMIIrqIsOn; extern char level1_int_disabled; extern unsigned cpu_sr; diff --git a/core/app_main.c b/core/app_main.c index 63142cd..22943e7 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -26,8 +26,10 @@ #include "espressif/esp_common.h" #include "espressif/phy_info.h" -#include "sdk_internal.h" #include "esplibs/libmain.h" +#include "esplibs/libnet80211.h" +#include "esplibs/libphy.h" +#include "esplibs/libpp.h" #include "sysparam.h" /* This is not declared in any header file (but arguably should be) */ @@ -296,11 +298,11 @@ static void init_g_ic(void) { } if (sdk_g_ic.s._unknown1e4._unknown1e4 == 0xffffffff) { bzero(&sdk_g_ic.s._unknown1e4, sizeof(sdk_g_ic.s._unknown1e4)); - bzero(&sdk_g_ic.s._unknown20f, sizeof(sdk_g_ic.s._unknown20f)); + bzero(&sdk_g_ic.s.sta_password, sizeof(sdk_g_ic.s.sta_password)); } sdk_g_ic.s.wifi_led_enable = 0; - if (sdk_g_ic.s._unknown281 > 1) { - sdk_g_ic.s._unknown281 = 0; + if (sdk_g_ic.s.sta_bssid_set > 1) { + sdk_g_ic.s.sta_bssid_set = 0; } if (sdk_g_ic.s.ap_number > 5) { sdk_g_ic.s.ap_number = 1; @@ -374,9 +376,9 @@ static __attribute__((noinline)) void user_start_phase2(void) { sdk_sleep_reset_analog_rtcreg_8266(); get_otp_mac_address(sdk_info.sta_mac_addr); sdk_wifi_softap_cacl_mac(sdk_info.softap_mac_addr, sdk_info.sta_mac_addr); - sdk_info._unknown0 = 0x0104a8c0; - sdk_info._unknown4 = 0x00ffffff; - sdk_info._unknown8 = 0x0104a8c0; + sdk_info.softap_ipaddr.addr = 0x0104a8c0; // 192.168.4.1 + sdk_info.softap_netmask.addr = 0x00ffffff; // 255.255.255.0 + sdk_info.softap_gw.addr = 0x0104a8c0; // 192.168.4.1 init_g_ic(); read_saved_phy_info(&phy_info); diff --git a/core/include/sdk_internal.h b/core/include/sdk_internal.h index 4e3faa5..1847eef 100644 --- a/core/include/sdk_internal.h +++ b/core/include/sdk_internal.h @@ -14,23 +14,109 @@ // 'info' is declared in app_main.o at .bss+0x4 struct sdk_info_st { - uint32_t _unknown0; // 0x00 - uint32_t _unknown4; // 0x04 - uint32_t _unknown8; // 0x08 - ip_addr_t ipaddr; // 0x0c - ip_addr_t netmask; // 0x10 - ip_addr_t gw; // 0x14 + ip_addr_t softap_ipaddr; // 0x00 + ip_addr_t softap_netmask; // 0x04 + ip_addr_t softap_gw; // 0x08 + ip_addr_t sta_ipaddr; // 0x0c + ip_addr_t sta_netmask; // 0x10 + ip_addr_t sta_gw; // 0x14 uint8_t softap_mac_addr[6]; // 0x18 uint8_t sta_mac_addr[6]; // 0x1e }; -extern struct sdk_info_st sdk_info; -// 'rst_if' is declared in user_interface.o at .bss+0xfc -extern struct sdk_rst_info sdk_rst_if; +struct _unknown_info1 { + uint8_t _unknown00; + uint8_t _unknown01; + uint8_t _unknown02; + uint8_t _unknown03; + uint8_t _unknown04; + uint8_t _unknown05; + uint8_t channel; // eagle_auth_done +}; + + +struct _unknown_softap2 { + uint32_t _unknown00; + uint32_t _unknown04; + uint32_t _unknown08; + uint32_t _unknown0c; + uint32_t _unknown10[8]; // block copied from sdk_g_ic.s._unknown28c + uint32_t _unknown30; + uint32_t _unknown34; + uint32_t *_unknown38; + uint8_t *_unknown3c; // string copied from sdk_g_ic.s._unknown2ac + uint32_t _unknown40[29]; + uint32_t _unknownb4; // 300 + uint32_t _unknownb8[5]; +}; + + +struct _unknown_softap1 { + uint32_t _unknown00; + struct _unknown_softap2 *_unknown04; + uint32_t _unknown08[4]; + uint32_t *_unknown18; // result of sdk_wpa_init, dynamically allocated object. +}; + + +struct _unknown_wpa1 { + uint32_t _unknown00; // 1, 2, 3 + uint32_t _unknown04; // 2 + uint32_t _unknown08; // 10 + uint32_t _unknown0c; + uint32_t _unknown10; + uint32_t _unknown14; + uint32_t _unknown18; + uint32_t _unknown1c; + uint32_t _unknown20; // 10 + uint32_t _unknown24; + uint32_t _unknown28; + uint32_t _unknown2c; + uint32_t _unknown30; + uint32_t _unknown34; + uint32_t _unknown38; + uint32_t _unknown3c; + uint32_t _unknown40; // 2 + uint32_t _unknown44; + uint32_t _unknown48; +}; + + +struct sdk_netif_conninfo { + uint8_t mac_addr[6]; + uint8_t _unknown07[2]; + + uint32_t _unknown08; // eagle_auth_done + + uint32_t _unknown0c[3]; + + int8_t _unknown18; // eagle_auth_done + int8_t _unknown19; + int8_t _unknown1a; + int8_t _unknown1b; + + uint32_t _unknown1c[23]; + + struct _unknown_info1 *_unknown78; // eagle_auth_done + + uint32_t _unknown7c[8]; + + uint16_t _unknown9c; // ieee80211_hostap. increases by one one each timer func called. + uint16_t _unknown9e; + + uint32_t _unknowna0[18]; + + int8_t _unknowne8; // + int8_t _unknowne9; // ppInstallKey + int8_t _unknownea; + int8_t _unknowneb; + + uint32_t _unknownec[7]; + + uint32_t _unknown108; // hostap_handle_timer count +}; -// 'g_ic' is declared in libnet80211/ieee80211.o at .bss+0x0 -// See also: http://esp8266-re.foogod.com/wiki/G_ic_(IoT_RTOS_SDK_0.9.9) struct sdk_g_ic_netif_info { struct netif *netif; // 0x00 @@ -38,16 +124,22 @@ struct sdk_g_ic_netif_info { uint8_t _unknown20[28]; // 0x20 - 0x3c uint32_t _unknown3c; // 0x3c (referenced by sdk_wifi_station_disconnect) uint8_t _unknown40[6]; // 0x40 - 0x46 - uint8_t _unknown46[66]; // 0x46 - 0x88 + uint8_t _unknown46[2]; // 0x46 - 0x47 + uint32_t _unknown48; // 0x48 + uint8_t _unknown4c; // 0x4c + uint8_t _unknown4d[59]; // 0x4d - 0x88 struct sdk_netif_conninfo *_unknown88; // 0x88 uint32_t _unknown8c; // 0x8c struct sdk_netif_conninfo *conninfo[6]; // 0x90 - 0xa8 - uint8_t _unknowna8[16]; // 0xa8 - 0xb8 - uint8_t _unknownb8; // 0xb8 (referenced by sdk_wifi_station_connect / sdk_wifi_station_disconnect) - uint8_t _unknownb9; // 0xb9 (referenced by sdk_wifi_station_connect / sdk_wifi_station_disconnect) - uint8_t connect_status; // 0xba (referenced by sdk_system_station_got_ip_set / sdk_wifi_station_disconnect) + uint8_t _unknowna8[12]; // 0xa8 - 0xb4 + struct _unknown_softap1 *_unknownb4; + uint8_t statusb8; // 0xb8 (arg of sta_status_set) + uint8_t statusb9; // 0xb9 (compared to arg of sta_status_set) + uint8_t connect_status; // 0xba (result of wifi_station_get_connect_status) + uint8_t started; // 0xbb (referenced by sdk_wifi_station_start / sdk_wifi_station_stop) }; + // This is the portion of g_ic which is not loaded/saved to the flash ROM, and // starts out zeroed on every boot. struct sdk_g_ic_volatile_st { @@ -73,9 +165,11 @@ struct sdk_g_ic_volatile_st { uint8_t _unknown7e; uint8_t _unknown7f; - uint8_t _unknown80[204]; + uint32_t _unknown80; - void *_unknown14c; + uint32_t _unknown84[50]; // wifi_softap_start, channels. + + void * volatile _unknown14c; // wifi_softap_start, current channel, arg to ieee80211_chan2ieee uint8_t _unknown150[20]; @@ -92,8 +186,7 @@ struct sdk_g_ic_volatile_st { void *_unknown184; struct station_info *station_info_head; struct station_info *station_info_tail; - uint32_t _unknown190; - uint32_t _unknown194; + void *_unknown190[2]; // cnx_sta_leave uint8_t _unknown198[40]; @@ -112,9 +205,11 @@ struct sdk_g_ic_volatile_st { uint8_t _unknown1d5[3]; }; + struct sdk_g_ic_unk0_st { - uint32_t _unknown1e4; - uint8_t _unknown1e8[32]; + uint16_t _unknown1e4; // sdk_wpa_config_profile + uint16_t _unknown1e6; // sdk_wpa_config_profile + uint8_t sta_ssid[32]; // 0x1e8 Station ssid. Null terminated string. }; // This is the portion of g_ic which is loaded/saved to the flash ROM, and thus @@ -127,40 +222,45 @@ struct sdk_g_ic_saved_st { uint8_t wifi_mode; uint8_t wifi_led_enable; uint8_t wifi_led_gpio; - uint8_t _unknown1e3; + uint8_t wifi_led_state; // 0 or 1. struct sdk_g_ic_unk0_st _unknown1e4; uint8_t _unknown208; - uint8_t _unknown209; - uint8_t _unknown20a; + uint8_t _unknown209; // sdk_wpa_config_profile + uint8_t _unknown20a; // sdk_wpa_config_profile uint8_t _unknown20b; - uint8_t _unknown20c; + uint8_t _unknown20c; // sdk_wpa_config_profile uint8_t _unknown20d; uint8_t _unknown20e; - uint8_t _unknown20f[64]; + uint8_t sta_password[64]; // 0x20f Null terminated string. uint8_t _unknown24f; uint8_t _unknown250[49]; - uint8_t _unknown281; + uint8_t sta_bssid_set; // 0x281 One if bssid is used, otherwise zero. - uint8_t _unknown282[6]; + uint8_t sta_bssid[6]; // 0x282 - uint32_t _unknown288; + uint16_t _unknown288; + uint16_t _unknown28a; uint8_t _unknown28c; - uint8_t _unknown28d[31]; + uint8_t _unknown28d[21]; - uint8_t _unknown2ac[64]; + uint8_t _unknown2a0; // used in dhcp_bind_check wpa_main.o + + uint8_t _unknown2a1[9]; + + char _unknown2ac[64]; // string. uint8_t _unknonwn2ec; uint8_t _unknown2ed[32]; - uint8_t _unknown30d; + uint8_t _unknown30d; // result of ieee80211_chan2ieee uint8_t _unknown30e; uint8_t _unknown30f; - uint8_t _unknown310; + uint8_t _unknown310; // count of entries in the softap conninfo array, less two. uint8_t _unknown311[3]; @@ -194,7 +294,20 @@ struct sdk_g_ic_st { struct sdk_g_ic_saved_st s; // 0x1d8 - 0x548 }; -extern struct sdk_g_ic_st sdk_g_ic; + + +struct esf_buf { + struct pbuf *pbuf1; // 0x00 + struct pbuf *pbuf2; // 0x04 + uint32_t *_unknown8_; // 0x08 + uint32_t *_unknownc_; // 0x0c + uint8_t *frame; // 0x10 IEEE-802.11 payload data? + uint16_t _unknown14_; // 0x14 + uint16_t length; // 0x16 + uint32_t *_unknown18_; // 0x18 + struct esf_buf *next; // 0x1c Free list. + void *extra; // 0x20 +}; /////////////////////////////////////////////////////////////////////////////// // The above structures all refer to data regions outside our control, and a @@ -205,35 +318,65 @@ extern struct sdk_g_ic_st sdk_g_ic; /////////////////////////////////////////////////////////////////////////////// _Static_assert(sizeof(struct sdk_info_st) == 0x24, "info_st is the wrong size!"); +_Static_assert(offsetof(struct sdk_info_st, sta_mac_addr) == 0x1e, "bad struct"); + +_Static_assert(offsetof(struct _unknown_info1, channel) == 0x06, "bad struct"); + +_Static_assert(sizeof(struct _unknown_softap2) == 0xcc, "_unknown_softap2 is the wrong size!"); +_Static_assert(offsetof(struct _unknown_softap2, _unknownb8) == 0xb8, "bad struct"); + +_Static_assert(sizeof(struct _unknown_softap1) == 0x1c, "_unknown_softap1 is the wrong size!"); +_Static_assert(offsetof(struct _unknown_softap1, _unknown18) == 0x18, "bad struct"); + +_Static_assert(sizeof(struct _unknown_wpa1) == 0x4c, "_unknown_wpa1 is the wrong size!"); +_Static_assert(offsetof(struct _unknown_wpa1, _unknown48) == 0x48, "bad struct"); + +_Static_assert(offsetof(struct sdk_netif_conninfo, _unknown78) == 0x78, "bad struct"); +_Static_assert(offsetof(struct sdk_netif_conninfo, _unknown108) == 0x108, "bad struct"); + +_Static_assert(offsetof(struct sdk_g_ic_netif_info, started) == 0xbb, "bad struct"); + _Static_assert(sizeof(struct sdk_g_ic_volatile_st) == 0x1d8, "sdk_g_ic_volatile_st is the wrong size!"); +_Static_assert(offsetof(struct sdk_g_ic_volatile_st, _unknown1d5) == 0x1d5, "bad struct"); + _Static_assert(sizeof(struct sdk_g_ic_saved_st) == 0x370, "sdk_g_ic_saved_st is the wrong size!"); +_Static_assert(offsetof(struct sdk_g_ic_saved_st, _unknown1e4) == 0x1e4 - 0x1d8, "bad struct"); +_Static_assert(offsetof(struct sdk_g_ic_saved_st, _unknown546) == 0x546 - 0x1d8, "bad struct"); + _Static_assert(sizeof(struct sdk_g_ic_st) == 0x548, "sdk_g_ic_st is the wrong size!"); -/////////////////////////////////////////////////////////////////////////////// -// Function Prototypes // -/////////////////////////////////////////////////////////////////////////////// +_Static_assert(sizeof(struct esf_buf) == 0x24, "struct esf_buf: wrong size"); +_Static_assert(offsetof(struct esf_buf, extra) == 0x20, "bad struct"); +_Static_assert(offsetof(struct esf_buf, length) == 0x16, "bad struct"); -sdk_SpiFlashOpResult sdk_SPIRead(uint32_t src_addr, uint32_t *des_addr, uint32_t size); -sdk_SpiFlashOpResult sdk_SPIWrite(uint32_t des_addr, uint32_t *src_addr, uint32_t size); -void sdk_cnx_attach(struct sdk_g_ic_st *); -void sdk_ets_timer_init(void); -void sdk_ieee80211_ifattach(struct sdk_g_ic_st *, uint8_t *); -void sdk_ieee80211_phy_init(enum sdk_phy_mode); -void sdk_lmacInit(void); -void sdk_phy_disable_agc(void); -void sdk_phy_enable_agc(void); -void sdk_pm_attach(void); -void sdk_pp_attach(void); -void sdk_pp_soft_wdt_init(void); -int sdk_register_chipv6_phy(sdk_phy_info_t *); -void sdk_sleep_reset_analog_rtcreg_8266(void); -uint32_t sdk_system_get_checksum(uint8_t *, uint32_t); -void sdk_wDevEnableRx(void); -void sdk_wDev_Initialize(void); -void sdk_wifi_mode_set(uint8_t); -void sdk_wifi_softap_cacl_mac(uint8_t *, uint8_t *); -void sdk_wifi_softap_set_default_ssid(void); -void sdk_wifi_softap_start(void); -void sdk_wifi_station_start(void); +// The SDK access some slots in lwip structures. + +// The netif->state is initialized in netif_add within lwip with a struct +// sdk_g_ic_netif_info, see sdk_wifi_station_start and sdk_wifi_softap_start. +// There is a known sdk read of the netif->state in ieee80211_output.o +// ieee80211_output_pbuf and perhaps elsewhere. The value is just passed through +// lwip and and not used by lwip so just ensure this slot is at the expected +// offset. +_Static_assert(offsetof(struct netif, state) == 28, "netif->state offset wrong!"); + +// Some sdk uses of netif->hwaddr have been converted to source code, but many +// remain, but the content of this slot should not change in future versions of +// lwip, so just ensure it is at the expected offset. +_Static_assert(offsetof(struct netif, hwaddr) == 41, "netif->hwaddr offset wrong!"); + +// Most sdk uses of the netif->flags have been converted to source code. One +// known sdk binary read of the flags remains in wl_cnx.o:sdk_cnx_sta_leave +// which checks the NETIF_FLAG_DHCP flag. The NETIF_FLAG_DHCP has been removed +// in lwip v2, so some lwip hacks are needed to handle this for now until +// wl_cnx.o is converted so source code too. +_Static_assert(offsetof(struct netif, flags) == 47, "netif->flags offset wrong!"); + +_Static_assert(offsetof(struct pbuf, eb) == 16, "pbuf->eb offset wrong!"); + + +/// Misc. + +err_t ethernetif_init(struct netif *netif); +void ethernetif_input(struct netif *netif, struct pbuf *p); #endif /* _INTERNAL_SDK_STRUCTURES_H */ diff --git a/open_esplibs/include/esplibs/libmain.h b/open_esplibs/include/esplibs/libmain.h index 9bbfe6f..9f4ad1a 100644 --- a/open_esplibs/include/esplibs/libmain.h +++ b/open_esplibs/include/esplibs/libmain.h @@ -6,26 +6,58 @@ Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. BSD Licensed as described in the file LICENSE. */ -#include "sdk_internal.h" + #ifndef _ESPLIBS_LIBMAIN_H #define _ESPLIBS_LIBMAIN_H #include "sdk_internal.h" +// app_main.o +extern uint8_t sdk_user_init_flag; +extern struct sdk_info_st sdk_info; + +// ets_timer.o +extern uint32_t sdk_debug_timer; +extern void *sdk_debug_timerfn; +void sdk_ets_timer_init(void); + // misc.c int sdk_os_get_cpu_frequency(void); - /* Don't call this function from user code, it doesn't change the CPU * speed. Call sdk_system_update_cpu_freq() instead. */ void sdk_os_update_cpu_frequency(int freq); -// user_interface.c +// os_cpu_a.o + +// spi_flash.o +extern sdk_flashchip_t sdk_flashchip; +sdk_SpiFlashOpResult sdk_SPIRead(uint32_t src_addr, uint32_t *des_addr, uint32_t size); +sdk_SpiFlashOpResult sdk_SPIWrite(uint32_t des_addr, uint32_t *src_addr, uint32_t size); + +// timers.o +void sdk_os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg); +void sdk_os_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag); +void sdk_os_timer_disarm(ETSTimer *ptimer); + +// uart.o +void sdk_uart_div_modify(uint32_t uart_no, uint32_t new_divisor); + +// user_interface.o +extern enum sdk_dhcp_status sdk_dhcpc_flag; // uint8_t in the sdk +extern bool sdk_cpu_overclock; +extern struct sdk_rst_info sdk_rst_if; +extern sdk_wifi_promiscuous_cb_t sdk_promiscuous_cb; void sdk_system_restart_in_nmi(void); int sdk_system_get_test_result(void); void sdk_wifi_param_save_protect(struct sdk_g_ic_saved_st *data); bool sdk_system_overclock(void); bool sdk_system_restoreclock(void); uint32_t sdk_system_relative_time(uint32_t reltime); +uint32_t sdk_system_get_checksum(uint8_t *, uint32_t); +void sdk_wifi_softap_cacl_mac(uint8_t *, uint8_t *); +void sdk_wifi_softap_set_default_ssid(void); + +// xtensa_context.o #endif /* _ESPLIBS_LIBMAIN_H */ diff --git a/open_esplibs/include/esplibs/libnet80211.h b/open_esplibs/include/esplibs/libnet80211.h index 1c0ac9a..b7a2db6 100644 --- a/open_esplibs/include/esplibs/libnet80211.h +++ b/open_esplibs/include/esplibs/libnet80211.h @@ -6,17 +6,90 @@ Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. BSD Licensed as described in the file LICENSE. */ + #ifndef _ESPLIBS_LIBNET80211_H #define _ESPLIBS_LIBNET80211_H -// Defined in wl_cnx.o +#include "sdk_internal.h" + +// ieee80211_action.o + +// ieee80211_crypto_ccmp.o +extern uint32_t sdk_ccmp; + +// ieee80211_crypto.o + +// ieee80211_crypto_tkip.o +extern uint32_t sdk_tkip; + +// ieee80211_crypto_wep.o +extern uint32_t sdk_wep; + +// ieee80211_ets.o +struct esf_buf *sdk_ieee80211_getmgtframe(void **arg0, uint32_t arg1, uint32_t arg2); + +// ieee80211_hostap.o +extern uint8_t sdk_TmpSTAAPCloseAP; +extern uint8_t sdk_PendFreeBcnEb; +void sdk_ieee80211_hostap_attach(struct sdk_g_ic_st *); +void sdk_hostap_handle_timer(struct sdk_netif_conninfo *cnx_node); +bool sdk_wifi_softap_start(); +bool sdk_wifi_softap_stop(); + +// ieee80211_ht.o + +// ieee80211_input.o +void sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, struct esf_buf *esf_buf); +// The esf_buf is stored in the pbuf->eb slot. +void sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, struct esf_buf *eb); + +// ieee80211.o +extern struct sdk_g_ic_st sdk_g_ic; +extern uint32_t sdk_xieee80211Queue; +void sdk_ieee80211_ifattach(struct sdk_g_ic_st *, uint8_t *); +void sdk_wifi_mode_set(uint8_t); + +// ieee80211_output.o +int8_t sdk_ieee80211_output_pbuf(struct netif *ifp, struct pbuf* pb); +void sdk_ieee80211_send_mgmt(struct sdk_g_ic_netif_info *info, int, int); +struct esf_buf *sdk_ieee80211_beacon_alloc(struct sdk_g_ic_netif_info *, uint32_t *); + +// ieee80211_phy.o +uint32_t sdk_ieee80211_phy_type_get(); +void sdk_ieee80211_phy_init(enum sdk_phy_mode); + +// ieee80211_power.o +void sdk_ieee80211_pwrsave(void *, struct esf_buf *b); + +// ieee80211_proto.o +extern uint8_t sdk_ieee80211_addr_bcast[6]; + +// ieee80211_scan.o +extern uint32_t sdk_ugScanStruct; // A struct. +extern uint8_t sdk_auth_type; +extern uint16_t sdk_scannum; +void sdk_scan_cancel(); + +// ieee80211_sta.o +void sdk_ieee80211_sta_new_state(struct sdk_g_ic_st *, int, int); +void sdk_sta_status_set(int status); +bool sdk_wifi_station_start(); +bool sdk_wifi_station_stop(); + +// wl_chm.o +void sdk_chm_set_current_channel(uint32_t *); +int sdk_ieee80211_chan2ieee(int *); +int sdk_chm_check_same_channel(); + +// wl_cnx.o extern ETSTimer sdk_sta_con_timer; - -// Defined in ieee80211_sta.o: .irom0.text+0xcc4 -bool sdk_wifi_station_stop(void); - -// Defined in ieee80211_hostap.o: .irom0.text+0x1184 -bool sdk_wifi_softap_stop(void); +extern void *sdk_g_cnx_probe_rc_list_cb; +void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *); +void *sdk_cnx_node_search(uint8_t mac[6]); +void sdk_cnx_node_leave(struct sdk_g_ic_netif_info *netif, struct sdk_netif_conninfo *conn); +void sdk_cnx_rc_update_state_metric(void *, int, int); +void sdk_cnx_remove_rc(void *); +void sdk_cnx_attach(struct sdk_g_ic_st *); #endif /* _ESPLIBS_LIBNET80211_H */ diff --git a/open_esplibs/include/esplibs/libphy.h b/open_esplibs/include/esplibs/libphy.h index 2c7639c..150ad36 100644 --- a/open_esplibs/include/esplibs/libphy.h +++ b/open_esplibs/include/esplibs/libphy.h @@ -9,8 +9,57 @@ #ifndef _ESPLIBS_LIBPHY_H #define _ESPLIBS_LIBPHY_H -// Defined in phy_chip_v6_ana.o: .irom0.text+0x12d8 +#include "sdk_internal.h" + +// phy_chip_v5_ana_romfunc.o + +// phy_chip_v5_cal_romfunc.o + +// phy_chip_v5_romfunc.o + +// phy_chip_v6_ana.o uint32_t sdk_test_tout(bool); +uint32_t sdk_readvdd33(); + +// phy_chip_v6_cal.o +extern uint16_t sdk_loop_pwctrl_pwdet_error_accum_high_power; +extern uint8_t sdk_tx_pwctrl_pk_num; +extern uint8_t sdk_loop_pwctrl_correct_atten_high_power; +extern uint8_t sdk_tx_pwctrl_set_chan_flag; +extern uint8_t sdk_rxiq_cover_fail_num; + +// phy_chip_v6.o +extern uint16_t sdk_tx_rf_ana_gain; +extern uint32_t sdk_rxiq_compute_num; +extern uint8_t sdk_rxdc_init_flag; +extern uint32_t sdk_check_result; +extern uint32_t sdk_chip6_sleep_params; +extern uint8_t sdk_chip6_phy_init_ctrl; +extern uint32_t sdk_phy_freq_offset; +extern uint8_t sdk_do_pwctrl_flag; +extern uint8_t sdk_pwctrl_debug; +extern uint8_t sdk_txbk_dpdby_flag; +extern uint8_t sdk_sw_scan_mode; +extern uint32_t sdk_periodic_cal_dc_num; +extern uint8_t sdk_periodic_cal_flag; +extern uint8_t sdk_bbpll_cal_flag; +extern uint8_t sdk_deep_sleep_en; +int sdk_register_chipv6_phy(sdk_phy_info_t *); + +// phy_chip_v6_unused.o + +// phy.o +void sdk_phy_disable_agc(void); +void sdk_phy_enable_agc(void); + +// phy_sleep.o +extern uint32_t sdk_chip_version; +extern uint8_t sdk_periodic_cal_sat; +extern uint8_t sdk_software_slp_reject; +extern uint8_t sdk_SDIO_slp_reject; +extern uint8_t sdk_hardware_reject; +void sdk_sleep_reset_analog_rtcreg_8266(void); + #endif /* _ESPLIBS_LIBPHY_H */ diff --git a/open_esplibs/include/esplibs/libpp.h b/open_esplibs/include/esplibs/libpp.h index 238ad02..c6185b6 100644 --- a/open_esplibs/include/esplibs/libpp.h +++ b/open_esplibs/include/esplibs/libpp.h @@ -9,31 +9,67 @@ #ifndef _ESPLIBS_LIBPP_H #define _ESPLIBS_LIBPP_H -// Located in wdev.o -extern uint32_t sdk_WdevTimOffSet; +#include "sdk_internal.h" -// Defined in pp.o: .irom0.text+0xa08 -void sdk_ppRecycleRxPkt(void *); +// esf_buf.o +struct esf_buf *sdk_esf_rx_buf_alloc(uint32_t n); // n must be 7. +struct esf_buf *sdk_esf_buf_alloc(void *, uint32_t n); +void sdk_esf_buf_recycle(struct esf_buf *buf, int); +void sdk_esf_buf_setup(void); -// Defined in pm.o: .irom0.text+0x74 +// if_hwctrl.o +extern uint8_t sdk_interface_mask; +//extern ? sdk_if_ctrl; +void sdk_ic_set_vif(int, int, uint8_t (*)[6], int, int); +void sdk_ic_bss_info_update(int, uint8_t (*hwaddr)[], int, int); +void sdk_ic_set_sta(int, int, void *, int, int, int, int, int); + +// lmac.o +extern uint32_t sdk_lmacConfMib; +void sdk_lmacInit(void); + +// mac_frame.o + +// pm.o +struct esf_buf *sdk_ieee80211_getmgtframe(void **arg0, uint32_t arg1, uint32_t arg2); +void sdk_pm_attach(void); uint32_t sdk_pm_rtc_clock_cali_proc(void); - -// Defined in pm.o: .irom0.text+0xb8 void sdk_pm_set_sleep_time(uint32_t); - -// Defined in pm.o: .irom0.text+0x1758 uint8_t sdk_pm_is_waked(void); - -// Defined in pm.o: .irom0.text+0x1774 bool sdk_pm_is_open(void); - -// Defined in pm.o: .irom0.text+0x19ac bool sdk_pm_post(int); +enum sdk_sleep_type sdk_pm_get_sleep_type(void); +void sdk_pm_set_sleep_type_from_upper(enum sdk_sleep_type); -// Defined in wdev.o: .irom0.text+0x450 + +// pp.o +extern uint16_t sdk_NoiseTimerInterval; +extern uint16_t sdk_sleep_start_wait_time; +extern uint8_t sdk_pend_flag_noise_check; +extern uint8_t sdk_pend_flag_periodic_cal; +extern uint8_t sdk_dbg_stop_sw_wdt; +extern uint8_t sdk_dbg_stop_hw_wdt; +bool sdk_ppRegisterTxCallback(void *, int); +bool sdk_ppTxPkt(struct esf_buf *); +void sdk_ppRecycleRxPkt(void *); +void sdk_pp_attach(void); +void sdk_pp_soft_wdt_init(void); +void sdk_pp_soft_wdt_feed(); +void sdk_pp_post(int, int); + +// rate_control.o + +// trc.o + +// wdev.o +extern uint8_t sdk_NMIIrqIsOn; +extern uint32_t sdk_WdevTimOffSet; +uint32_t sdk_wDev_Get_Next_TBTT(); +void sdk_wDev_Reset_TBTT(); +void sdk_wDev_SetRxPolicy(int, int, int); +void sdk_wDevEnableRx(void); +void sdk_wDev_Initialize(void); void sdk_wDev_MacTim1SetFunc(void (*func)(void)); - -// Defined in wdev.o: .text+0x4a8 void sdk_wDev_MacTim1Arm(uint32_t); #endif /* _ESPLIBS_LIBPP_H */ diff --git a/open_esplibs/include/esplibs/libwpa.h b/open_esplibs/include/esplibs/libwpa.h new file mode 100644 index 0000000..0d75ff8 --- /dev/null +++ b/open_esplibs/include/esplibs/libwpa.h @@ -0,0 +1,80 @@ +/* Internal function declarations for Espressif SDK libpp functions. + + These are internal-facing declarations, it is not recommended to include these headers in your program. + (look at the headers in include/espressif/ instead and use these whenever possible.) + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE. +*/ +#ifndef _ESPLIBS_LIBWPA_H +#define _ESPLIBS_LIBWPA_H + +#include "sdk_internal.h" + +// aes-internal-dec.o + +// aes-internal-enc.o + +// aes-internal.o + +// aes-unwrap.o + +// aes-wrap.o + +// ap_config.o + +// Seems to be passed 3 args, but only uses 2? +int sdk_hostapd_setup_wpa_psk(struct _unknown_softap2 *); + +// common.o + +// ieee802_1x.o + +// md5-internal.o + +// md5.o + +// os_xtensa.o + +// rc4.o + +// sha1-internal.o + +// sha1.o + +// sha1-pbkdf2.o + +// sta_info.o + +// wpa_auth_ie.o + +// wpa_auth.o +uint32_t *sdk_wpa_init(uint8_t (*hwaddr)[], struct _unknown_wpa1 *, int); + +// wpabuf.o + +// wpa_common.o + +// wpa_debug.o + +// wpa_ie.o + +// wpa_main +void sdk_ppInstallKey(void *, int, int); +void sdk_wpa_config_profile(struct sdk_g_ic_st *); +void sdk_wpa_config_bss(struct sdk_g_ic_st *g_ic, uint8_t (* hwaddr2)[6]); +void sdk_wpa_config_assoc_ie(int , int16_t *, int32_t); +void sdk_dhcp_bind_check(); +void sdk_eagle_auth_done(); +void sdk_wpa_neg_complete(); +void sdk_wpa_attach(struct sdk_g_ic_st *); + +// wpa.o +void sdk_wpa_set_profile(uint8_t); +void sdk_wpa_set_bss(uint8_t *hwaddr1, uint8_t (* hwaddr2)[6], uint8_t, uint8_t, uint8_t *, uint8_t *ssid, int); +void sdk_eapol_txcb(); +void sdk_wpa_register(int, void *, void *, void *, void *, void *); + +// wpas_glue.o + +#endif /* _ESPLIBS_LIBWPA_H */ diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 823e88f..c13273c 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -31,7 +31,6 @@ #include "espressif/osapi.h" #include "espressif/user_interface.h" -#include "sdk_internal.h" #include "esplibs/libmain.h" #include "esplibs/libpp.h" #include "esplibs/libphy.h" @@ -530,10 +529,10 @@ bool sdk_wifi_station_dhcpc_start(void) { return false; } if (netif && sdk_dhcpc_flag == DHCP_STOPPED) { - sdk_info.ipaddr.addr = 0; - sdk_info.netmask.addr = 0; - sdk_info.gw.addr = 0; - netif_set_addr(netif, &sdk_info.ipaddr, &sdk_info.netmask, &sdk_info.gw); + sdk_info.sta_ipaddr.addr = 0; + sdk_info.sta_netmask.addr = 0; + sdk_info.sta_gw.addr = 0; + netif_set_addr(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw); if (dhcp_start(netif)) { return false; } From 0dadda86decd191e4b2ad1184b790fd33175674e Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 14 Nov 2016 21:13:38 +1100 Subject: [PATCH 107/349] wifi_get/set_sleep_type: add source code implementations plus fixes. (#218) * wifi_set_sleep_type returns a bool success flag. * wifi_get_sleep_type seemed useless, just returning an argument. Added an implementation using sdk_pm_get_sleep_type. --- include/espressif/esp_system.h | 4 ++-- open_esplibs/libmain/user_interface.c | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/espressif/esp_system.h b/include/espressif/esp_system.h index abeb26a..c7185d4 100644 --- a/include/espressif/esp_system.h +++ b/include/espressif/esp_system.h @@ -37,8 +37,8 @@ enum sdk_sleep_type { WIFI_SLEEP_LIGHT = 1, WIFI_SLEEP_MODEM = 2, }; -void sdk_wifi_set_sleep_type(enum sdk_sleep_type); -enum sdk_sleep_type sdk_wifi_get_sleep_type(enum sdk_sleep_type); +bool sdk_wifi_set_sleep_type(enum sdk_sleep_type); +enum sdk_sleep_type sdk_wifi_get_sleep_type(void); void sdk_system_restore(void); void sdk_system_restart(void); diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index c13273c..ad9dca0 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -591,4 +591,16 @@ void sdk_system_uart_de_swap() DPORT.PERI_IO &= ~DPORT_PERI_IO_SWAP_UART0_PINS; } +enum sdk_sleep_type sdk_wifi_get_sleep_type() +{ + return sdk_pm_get_sleep_type(); +} + +bool sdk_wifi_set_sleep_type(enum sdk_sleep_type type) +{ + if (type > WIFI_SLEEP_MODEM) return false; + sdk_pm_set_sleep_type_from_upper(type); + return true; +} + #endif /* OPEN_LIBMAIN_USER_INTERFACE */ From 1728ef3dfc3fc6eafd598608c916940220d3bb32 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 18 Nov 2016 20:34:03 +1100 Subject: [PATCH 108/349] Flush the uart tx fifo before a restart. (#274) Also comment the point at which the bus clock that drives the uart changes on startup and comment out the change in the uart divisor. This at least allows a consistent uart baud rate during a restart if using the rate 115200. --- core/app_main.c | 17 +++++++++++++++-- open_esplibs/libmain/user_interface.c | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/core/app_main.c b/core/app_main.c index 22943e7..ee27092 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -254,12 +254,25 @@ static void zero_bss(void) { // .Lfunc006 -- .irom0.text+0x70 static void init_networking(sdk_phy_info_t *phy_info, uint8_t *mac_addr) { + // The call to sdk_register_chipv6_phy appears to change the bus clock, + // perhaps from 40MHz to 26MHz, at least it has such an effect on the uart + // baud rate. The caller flushes the TX fifos. if (sdk_register_chipv6_phy(phy_info)) { printf("FATAL: sdk_register_chipv6_phy failed"); abort(); } - uart_set_baud(0, 74906); - uart_set_baud(1, 74906); + + // The boot rom initializes uart0 for a 115200 baud rate but the bus clock + // does not appear to be as expected so the initial baud rate is actually + // 74906. On a cold boot, to keep the 74906 baud rate the uart0 divisor + // would need to changed here to 74906. On a warm boot the bus clock is + // expected to have already been set so the boot baud rate is 115200. + // Reset the rate here and settle on a 115200 baud rate. + if (sdk_rst_if.reason > 0) { + uart_set_baud(0, 115200); + uart_set_baud(1, 115200); + } + sdk_phy_disable_agc(); sdk_ieee80211_phy_init(sdk_g_ic.s.phy_mode); sdk_lmacInit(); diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index ad9dca0..4d2123a 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -20,6 +20,7 @@ #include "esp/iomux_regs.h" #include "esp/sar_regs.h" #include "esp/wdev_regs.h" +#include "esp/uart.h" #include "etstimer.h" #include "espressif/sdk_private.h" @@ -79,16 +80,23 @@ void IRAM sdk_system_restart_in_nmi(void) { buf[0] = 3; sdk_system_rtc_mem_write(0, buf, 32); } + + uart_flush_txfifo(0); + uart_flush_txfifo(1); + if (!sdk_NMIIrqIsOn) { portENTER_CRITICAL(); do { DPORT.DPORT0 = SET_FIELD(DPORT.DPORT0, DPORT_DPORT0_FIELD0, 0); } while (DPORT.DPORT0 & 1); } + ESPSAR.UNKNOWN_48 |= 3; DPORT.CLOCKGATE_WATCHDOG |= DPORT_CLOCKGATE_WATCHDOG_UNKNOWN_8; ESPSAR.UNKNOWN_48 &= ~3; DPORT.CLOCKGATE_WATCHDOG &= ~DPORT_CLOCKGATE_WATCHDOG_UNKNOWN_8; + + Wait_SPI_Idle(&sdk_flashchip); Cache_Read_Disable(); DPORT.SPI_CACHE_RAM &= ~(DPORT_SPI_CACHE_RAM_BANK0 | DPORT_SPI_CACHE_RAM_BANK1); // This calls directly to 0x40000080, the "reset" exception vector address. @@ -559,8 +567,8 @@ enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void) { void sdk_system_uart_swap() { - while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(0).STATUS)) {}; - while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(1).STATUS)) {}; + uart_flush_txfifo(0); + uart_flush_txfifo(1); /* Disable pullup IO_MUX_MTDO, Alt TX. GPIO15. */ iomux_set_pullup_flags(3, 0); @@ -576,8 +584,8 @@ void sdk_system_uart_swap() void sdk_system_uart_de_swap() { - while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(0).STATUS)) {}; - while (FIELD2VAL(UART_STATUS_TXFIFO_COUNT, UART(1).STATUS)) {}; + uart_flush_txfifo(0); + uart_flush_txfifo(1); /* Disable pullup IO_MUX_U0TXD, TX. GPIO 1. */ iomux_set_pullup_flags(5, 0); From 6481f71ce06f055515348a3c4b769443f18b82bf Mon Sep 17 00:00:00 2001 From: sheinz Date: Sat, 19 Nov 2016 12:32:38 +0200 Subject: [PATCH 109/349] Travis running tests on test servers (#272) - README.md for adding test servers - Bash script for running tests on remote servers - Extend test_runner.py to flash using esptool.py - Python3.4 support. README.md update --- .travis.yml | 8 ++ common.mk | 14 ++- tests/README.md | 6 ++ tests/test_runner.py | 42 +++++++- utils/travis_tests/README.md | 101 ++++++++++++++++++++ utils/travis_tests/run_tests.sh | 106 +++++++++++++++++++++ utils/travis_tests/sheinz_rsa.enc | Bin 0 -> 3248 bytes utils/travis_tests/test_server_example.png | Bin 0 -> 166841 bytes 8 files changed, 270 insertions(+), 7 deletions(-) create mode 100644 utils/travis_tests/README.md create mode 100755 utils/travis_tests/run_tests.sh create mode 100644 utils/travis_tests/sheinz_rsa.enc create mode 100644 utils/travis_tests/test_server_example.png diff --git a/.travis.yml b/.travis.yml index c00c5d2..9841d86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ cache: directories: - ${CROSS_ROOT} addons: + ssh_known_hosts: 195.138.84.66 apt: packages: - make @@ -35,6 +36,11 @@ addons: - vim-common before_install: + - openssl aes-256-cbc -K $encrypted_709d8233e262_key -iv $encrypted_709d8233e262_iv + -in utils/travis_tests/sheinz_rsa.enc -out /tmp/sheinz_rsa -d + - eval "$(ssh-agent -s)" + - chmod 600 /tmp/sheinz_rsa + - ssh-add /tmp/sheinz_rsa - travis_wait 30 utils/travis_build/install_toolchain.sh script: @@ -45,3 +51,5 @@ script: - ( ${MAKE_CMD} ) || ( ${MAKE_CMD} V=1 ) # build bootloader - make -C bootloader/ + # run tests + - ./utils/travis_tests/run_tests.sh diff --git a/common.mk b/common.mk index b35dbd9..8950893 100644 --- a/common.mk +++ b/common.mk @@ -146,7 +146,7 @@ ifndef $(1)_WHOLE_ARCHIVE $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) endif -$$($(1)_AR): $$($(1)_AR_IN_FILES) +$$($(1)_AR): $$($(1)_OBJ_FILES) $$($(1)_SRC_IN_AR_FILES) $(vecho) "AR $$@" $(Q) mkdir -p $$(dir $$@) $(Q) $(AR) cru $$@ $$^ @@ -223,9 +223,14 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) $(vecho) "FW $@" $(Q) $(ESPTOOL) elf2image --version=2 $(ESPTOOL_ARGS) $< -o $(FW_FILE) +ESPTOOL_FLASH_CMD ?= -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ + 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) + flash: all - $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ - 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) + $(Q) $(ESPTOOL) $(ESPTOOL_FLASH_CMD) + +print_flash_cmd: + $(Q) echo "$(ESPTOOL_FLASH_CMD)" erase_flash: $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) erase_flash @@ -270,6 +275,9 @@ help: @echo "test" @echo "'flash', then start a GNU Screen session on the same serial port to see serial output." @echo "" + @echo "print_flash_cmd" + @echo "Just print command line arguments for flashing with esptool.py" + @echo "" @echo "size" @echo "Build, then print a summary of built firmware size." @echo "" diff --git a/tests/README.md b/tests/README.md index 90b08a8..a147049 100644 --- a/tests/README.md +++ b/tests/README.md @@ -39,6 +39,12 @@ If not specified device `/dev/ttyUSB1` is used. `--no-flash` or `-n` - Do not flash the test firmware before running tests. +`--flash` or `-f` - Flash device directly with esptool instead of using +`make flash` command. Can be used to flash binaries without esp-open-rtos +environment. + +`--flash-cmd` or `-c` - Flash command for esptool. Used together with `--flash`. + `--list` or `-l` - Display list of the available test cases on the device. ### Example diff --git a/tests/test_runner.py b/tests/test_runner.py index 347fd9b..7f7a440 100755 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -44,9 +44,9 @@ def main(): verbose = args.verbose if not args.no_flash: - flash_image(args.aport) + flash(args.aport, args) if args.type != 'solo': - flash_image(args.bport) + flash(args.bport, args) env = TestEnvironment(args.aport, TestEnvironment.A) env_b = None @@ -279,11 +279,34 @@ def get_testdir(): Return the 'tests' directory in the source tree (assuming the test_runner.py script is in that directory. """ - res = os.path.dirname(__name__) + res = os.path.dirname(__file__) return "." if res == "" else res -def flash_image(serial_port): +def flash(serial_port, args): + if args.flash: + esptool_flash(serial_port, args.flash_cmd) + else: + make_flash(serial_port) + + +def esptool_flash(serial_port, params): + env = dict(os.environ) + verbose_print("Flashing test image to %s..." % serial_port) + try: + stdout = sys.stdout if verbose else None + cmd = ["esptool.py", "-p", serial_port] + cmd.extend(params.split(' ')) + cmd = [x for x in cmd if x] # remove empty elements + subprocess.check_call(cmd, cwd=get_testdir(), stdout=stdout, + stderr=subprocess.STDOUT, env=env) + except subprocess.CalledProcessError as e: + raise TestRunnerError("'esptool.py flash serial=%s' failed with exit code %d" % + (serial_port, e.returncode)) + verbose_print("Flashing successful.") + + +def make_flash(serial_port): # Bit hacky: rather than calling esptool directly, # just use the Makefile flash target with the correct ESPPORT argument env = dict(os.environ) @@ -329,6 +352,17 @@ def parse_args(): action='store_true', default=False) + parser.add_argument( + '--flash', '-f', + help='Flash device directly with esptool', + action='store_true', + default=False) + + parser.add_argument( + '--flash-cmd', '-c', + help='Flash command for esptool', + default='write_flash 0x2000 ./firmware/tests.bin') + parser.add_argument( '--verbose', '-v', help='Verbose test runner debugging output', diff --git a/utils/travis_tests/README.md b/utils/travis_tests/README.md new file mode 100644 index 0000000..5cd38dc --- /dev/null +++ b/utils/travis_tests/README.md @@ -0,0 +1,101 @@ +Travis CI Tests +==================== + +This directory contains a script `run_tests.sh` that is executed by Travis CI. +The script builds a test firmware, deploys it on one of the test servers and +runs it. + +The script will not return an error if deployment to one of the test servers has +failed. It is done this way not to fail a build if a test server is down. +The script will return an error if deployment was successful but tests failed. + +Test servers +------------ + +Test server is a linux host that is accessible from the Internet by a static IP. +It should have at least one ESP8266 module connected to a USB port. The module +should be capable restarting and switching to boot mode via a serial port. +All popular **NodeMCU** and **Wemos** modules will work. + +To run tests on a server it should provide SSH access. SSH daemon should be +configured to authenticate using keys. + +Test server running on Raspberry PI: + +![Raspberry PI Test server][example-test-server] + +### Test server requirements + +* Linux host +* Public static IP +* One or two ESP8266 modules connected to USB ports +* SSH access from the Internet (with public key from Travis CI) +* Python3 +* [esptool.py] installed `pip install esptool` +* pySerial python module `pip3 install pyserial` + +### Create SSH keys for Travis + +[Here][travis-ssh-deploy] is a good article about Travis deployment using SSH. + +The problem with SSH access from Travis to a server is that it should have +a private key. But this key should not be publicly available. + +Hopefully Travis allows to encrypt certain files and only decrypt them at build +stage. So the sensitive file is stored in the repository encrypted. + +Generate a new key pair: +```bash +ssh-keygen -t rsa -b 4096 -C '@travis-ci.org' -f ./_rsa +``` + +To encrypt a private key you need a command line Travis client. + +To install it run: +```bash +gem install travis +``` +Or refer [the official installation instructions][travis-install]. + +The following command will encrypt a file and modify .travis.yml: +```bash +travis encrypt-file _rsa --add +``` + +Deploy public key to a test server: +```bash +ssh-copy-id -i _rsa.pub @ +``` + +Add the following lines in the .travis.yml: +```yml +addons: + ssh_known_hosts: +``` +```yml +before_install: +- openssl aes-256-cbc aes-256-cbc -K $encrypted_<...>_key -iv $encrypted_<...>_iv -in _rsa.enc -out /tmp/_rsa -d +- eval "$(ssh-agent -s)" +- chmod 600 /tmp/_rsa +- ssh-add /tmp/_rsa +``` + +Remove keys and stage files for commit: +```bash +rm -f _rsa _rsa.pub +git add _rsa.enc .travis.yml +``` + +### Add test server + +The final step is to add a server to the test runner script. +Add a new item into an array in `run_tests.sh`: +```bash +TEST_SERVERS[2]="IP=;User=;Type=" +``` + + +[esptool.py]: https://github.com/espressif/esptool +[travis-ssh-deploy]: https://oncletom.io/2016/travis-ssh-deploy +[travis-install]: https://github.com/travis-ci/travis.rb#installation +[example-test-server]: ./test_server_example.png diff --git a/utils/travis_tests/run_tests.sh b/utils/travis_tests/run_tests.sh new file mode 100755 index 0000000..96eff7f --- /dev/null +++ b/utils/travis_tests/run_tests.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# +# This script builds tests, deploys them on one of the available test +# servers and runs them. If deployment fails it will not return an error code. +# If tests fail the script will return an error code. +# It is done this way not to fail Travis build if one of the test servers is +# down. + +# Test servers configuration +TEST_SERVERS[0]="IP=195.138.84.66;User=pi;Type=solo" +TEST_SERVERS[1]="IP=195.138.84.66;User=pi;Type=dual" + +# It will be populated in 'build' function +FLASH_CMD= + +# Function doesn't accept any arguments. It builds the tests, +# packages the binaries into the archive and populates FLASH_CMD variable. +function build { + echo "Building tests" + make -C ./tests clean + make -C ./tests -j8 + FLASH_CMD=$(make -s -C ./tests print_flash_cmd) + + # Now we need to pack all files that are included in the flash cmd + # so they can be transferred to the remote server and run there + # Also we need to prepare flash command: + # - remove firmware files path + # - remove serial port parameter + mkdir -p /tmp/firmware + rm -rf /tmp/firmware/* + params=($FLASH_CMD) + pushd ./tests + for param in "${params[@]}" + do + if [ -f ${param} ] + then + file_name=${param##*/} + cp ${param} /tmp/firmware/ + FLASH_CMD=${FLASH_CMD/${param}/${file_name}} + fi + + # Removing port parameter from the cmd string + if [[ "$param" == "-p" || "$param" == "--port" ]] + then + FLASH_CMD=${FLASH_CMD/${param}/} + next_port=true + else + # Removing port value from the cmd string + if [ "$next_port" ] + then + FLASH_CMD=${FLASH_CMD/${param} /} + unset next_port + fi + fi + done + cp test_runner.py /tmp/firmware/ + tar -czf /tmp/tests.tar.gz -C /tmp/firmware . + popd +} + +# $1 - Server IP +# $2 - Login user name +function deploy { + echo "Deploying tests, server IP=${1}" + scp /tmp/tests.tar.gz ${2}@${1}:/tmp/tests.tar.gz + ssh ${2}@${1} mkdir -p /tmp/eor_test + ssh ${2}@${1} rm -rf /tmp/eor_test/* + ssh ${2}@${1} tar -xzf /tmp/tests.tar.gz -C /tmp/eor_test +} + +# $1 - Server IP +# $2 - Login user name +# $3 - Type "solo" or "dual" +function run_tests { + echo "Running tests, server IP=${1}, type=${3}" + echo "Flash cmd: ${FLASH_CMD}" + # Run test runner on the remote server + ssh ${2}@${1} "source ~/.profile; /tmp/eor_test/test_runner.py --type ${3} -f -c \"${FLASH_CMD}\"" +} + +# First step is to build a firmware +build + +failed=0 + +for server in "${TEST_SERVERS[@]}" +do + params=(${server//;/ }) + ip=${params[0]#IP=} + user=${params[1]#User=} + type=${params[2]#Type=} + + deploy ${ip} ${user} + if [ "$?" -eq "0" ] + then + run_tests ${ip} ${user} ${type} + if [ "$?" -ne "0" ] + then + failed=$((failed+1)) + fi + else + echo "Server ${ip} is not available" + fi +done + +exit $failed diff --git a/utils/travis_tests/sheinz_rsa.enc b/utils/travis_tests/sheinz_rsa.enc new file mode 100644 index 0000000000000000000000000000000000000000..65cc620bd79075828c83a80c8c83a1d5e85f5da6 GIT binary patch literal 3248 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%0DQ(ZpeeV6=`&-WMY`^o{gL%=zNAH0ASZSsbLzJU% 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 h;@F_yG&Dt0_Px002ovPDHLkV1oC)PbmNZ literal 0 HcmV?d00001 From 438a7582bf058989be28bc64748dbb856da98da0 Mon Sep 17 00:00:00 2001 From: sheinz Date: Mon, 21 Nov 2016 11:39:13 +0200 Subject: [PATCH 110/349] Revert "Travis running tests" (#291) --- .travis.yml | 8 -- common.mk | 14 +-- tests/README.md | 6 -- tests/test_runner.py | 42 +------- utils/travis_tests/README.md | 101 -------------------- utils/travis_tests/run_tests.sh | 106 --------------------- utils/travis_tests/sheinz_rsa.enc | Bin 3248 -> 0 bytes utils/travis_tests/test_server_example.png | Bin 166841 -> 0 bytes 8 files changed, 7 insertions(+), 270 deletions(-) delete mode 100644 utils/travis_tests/README.md delete mode 100755 utils/travis_tests/run_tests.sh delete mode 100644 utils/travis_tests/sheinz_rsa.enc delete mode 100644 utils/travis_tests/test_server_example.png diff --git a/.travis.yml b/.travis.yml index 9841d86..c00c5d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,6 @@ cache: directories: - ${CROSS_ROOT} addons: - ssh_known_hosts: 195.138.84.66 apt: packages: - make @@ -36,11 +35,6 @@ addons: - vim-common before_install: - - openssl aes-256-cbc -K $encrypted_709d8233e262_key -iv $encrypted_709d8233e262_iv - -in utils/travis_tests/sheinz_rsa.enc -out /tmp/sheinz_rsa -d - - eval "$(ssh-agent -s)" - - chmod 600 /tmp/sheinz_rsa - - ssh-add /tmp/sheinz_rsa - travis_wait 30 utils/travis_build/install_toolchain.sh script: @@ -51,5 +45,3 @@ script: - ( ${MAKE_CMD} ) || ( ${MAKE_CMD} V=1 ) # build bootloader - make -C bootloader/ - # run tests - - ./utils/travis_tests/run_tests.sh diff --git a/common.mk b/common.mk index 8950893..b35dbd9 100644 --- a/common.mk +++ b/common.mk @@ -146,7 +146,7 @@ ifndef $(1)_WHOLE_ARCHIVE $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) endif -$$($(1)_AR): $$($(1)_OBJ_FILES) $$($(1)_SRC_IN_AR_FILES) +$$($(1)_AR): $$($(1)_AR_IN_FILES) $(vecho) "AR $$@" $(Q) mkdir -p $$(dir $$@) $(Q) $(AR) cru $$@ $$^ @@ -223,14 +223,9 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) $(vecho) "FW $@" $(Q) $(ESPTOOL) elf2image --version=2 $(ESPTOOL_ARGS) $< -o $(FW_FILE) -ESPTOOL_FLASH_CMD ?= -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ - 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) - flash: all - $(Q) $(ESPTOOL) $(ESPTOOL_FLASH_CMD) - -print_flash_cmd: - $(Q) echo "$(ESPTOOL_FLASH_CMD)" + $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ + 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) erase_flash: $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) erase_flash @@ -275,9 +270,6 @@ help: @echo "test" @echo "'flash', then start a GNU Screen session on the same serial port to see serial output." @echo "" - @echo "print_flash_cmd" - @echo "Just print command line arguments for flashing with esptool.py" - @echo "" @echo "size" @echo "Build, then print a summary of built firmware size." @echo "" diff --git a/tests/README.md b/tests/README.md index a147049..90b08a8 100644 --- a/tests/README.md +++ b/tests/README.md @@ -39,12 +39,6 @@ If not specified device `/dev/ttyUSB1` is used. `--no-flash` or `-n` - Do not flash the test firmware before running tests. -`--flash` or `-f` - Flash device directly with esptool instead of using -`make flash` command. Can be used to flash binaries without esp-open-rtos -environment. - -`--flash-cmd` or `-c` - Flash command for esptool. Used together with `--flash`. - `--list` or `-l` - Display list of the available test cases on the device. ### Example diff --git a/tests/test_runner.py b/tests/test_runner.py index 7f7a440..347fd9b 100755 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -44,9 +44,9 @@ def main(): verbose = args.verbose if not args.no_flash: - flash(args.aport, args) + flash_image(args.aport) if args.type != 'solo': - flash(args.bport, args) + flash_image(args.bport) env = TestEnvironment(args.aport, TestEnvironment.A) env_b = None @@ -279,34 +279,11 @@ def get_testdir(): Return the 'tests' directory in the source tree (assuming the test_runner.py script is in that directory. """ - res = os.path.dirname(__file__) + res = os.path.dirname(__name__) return "." if res == "" else res -def flash(serial_port, args): - if args.flash: - esptool_flash(serial_port, args.flash_cmd) - else: - make_flash(serial_port) - - -def esptool_flash(serial_port, params): - env = dict(os.environ) - verbose_print("Flashing test image to %s..." % serial_port) - try: - stdout = sys.stdout if verbose else None - cmd = ["esptool.py", "-p", serial_port] - cmd.extend(params.split(' ')) - cmd = [x for x in cmd if x] # remove empty elements - subprocess.check_call(cmd, cwd=get_testdir(), stdout=stdout, - stderr=subprocess.STDOUT, env=env) - except subprocess.CalledProcessError as e: - raise TestRunnerError("'esptool.py flash serial=%s' failed with exit code %d" % - (serial_port, e.returncode)) - verbose_print("Flashing successful.") - - -def make_flash(serial_port): +def flash_image(serial_port): # Bit hacky: rather than calling esptool directly, # just use the Makefile flash target with the correct ESPPORT argument env = dict(os.environ) @@ -352,17 +329,6 @@ def parse_args(): action='store_true', default=False) - parser.add_argument( - '--flash', '-f', - help='Flash device directly with esptool', - action='store_true', - default=False) - - parser.add_argument( - '--flash-cmd', '-c', - help='Flash command for esptool', - default='write_flash 0x2000 ./firmware/tests.bin') - parser.add_argument( '--verbose', '-v', help='Verbose test runner debugging output', diff --git a/utils/travis_tests/README.md b/utils/travis_tests/README.md deleted file mode 100644 index 5cd38dc..0000000 --- a/utils/travis_tests/README.md +++ /dev/null @@ -1,101 +0,0 @@ -Travis CI Tests -==================== - -This directory contains a script `run_tests.sh` that is executed by Travis CI. -The script builds a test firmware, deploys it on one of the test servers and -runs it. - -The script will not return an error if deployment to one of the test servers has -failed. It is done this way not to fail a build if a test server is down. -The script will return an error if deployment was successful but tests failed. - -Test servers ------------- - -Test server is a linux host that is accessible from the Internet by a static IP. -It should have at least one ESP8266 module connected to a USB port. The module -should be capable restarting and switching to boot mode via a serial port. -All popular **NodeMCU** and **Wemos** modules will work. - -To run tests on a server it should provide SSH access. SSH daemon should be -configured to authenticate using keys. - -Test server running on Raspberry PI: - -![Raspberry PI Test server][example-test-server] - -### Test server requirements - -* Linux host -* Public static IP -* One or two ESP8266 modules connected to USB ports -* SSH access from the Internet (with public key from Travis CI) -* Python3 -* [esptool.py] installed `pip install esptool` -* pySerial python module `pip3 install pyserial` - -### Create SSH keys for Travis - -[Here][travis-ssh-deploy] is a good article about Travis deployment using SSH. - -The problem with SSH access from Travis to a server is that it should have -a private key. But this key should not be publicly available. - -Hopefully Travis allows to encrypt certain files and only decrypt them at build -stage. So the sensitive file is stored in the repository encrypted. - -Generate a new key pair: -```bash -ssh-keygen -t rsa -b 4096 -C '@travis-ci.org' -f ./_rsa -``` - -To encrypt a private key you need a command line Travis client. - -To install it run: -```bash -gem install travis -``` -Or refer [the official installation instructions][travis-install]. - -The following command will encrypt a file and modify .travis.yml: -```bash -travis encrypt-file _rsa --add -``` - -Deploy public key to a test server: -```bash -ssh-copy-id -i _rsa.pub @ -``` - -Add the following lines in the .travis.yml: -```yml -addons: - ssh_known_hosts: -``` -```yml -before_install: -- openssl aes-256-cbc aes-256-cbc -K $encrypted_<...>_key -iv $encrypted_<...>_iv -in _rsa.enc -out /tmp/_rsa -d -- eval "$(ssh-agent -s)" -- chmod 600 /tmp/_rsa -- ssh-add /tmp/_rsa -``` - -Remove keys and stage files for commit: -```bash -rm -f _rsa _rsa.pub -git add _rsa.enc .travis.yml -``` - -### Add test server - -The final step is to add a server to the test runner script. -Add a new item into an array in `run_tests.sh`: -```bash -TEST_SERVERS[2]="IP=;User=;Type=" -``` - - -[esptool.py]: https://github.com/espressif/esptool -[travis-ssh-deploy]: https://oncletom.io/2016/travis-ssh-deploy -[travis-install]: https://github.com/travis-ci/travis.rb#installation -[example-test-server]: ./test_server_example.png diff --git a/utils/travis_tests/run_tests.sh b/utils/travis_tests/run_tests.sh deleted file mode 100755 index 96eff7f..0000000 --- a/utils/travis_tests/run_tests.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -# -# This script builds tests, deploys them on one of the available test -# servers and runs them. If deployment fails it will not return an error code. -# If tests fail the script will return an error code. -# It is done this way not to fail Travis build if one of the test servers is -# down. - -# Test servers configuration -TEST_SERVERS[0]="IP=195.138.84.66;User=pi;Type=solo" -TEST_SERVERS[1]="IP=195.138.84.66;User=pi;Type=dual" - -# It will be populated in 'build' function -FLASH_CMD= - -# Function doesn't accept any arguments. It builds the tests, -# packages the binaries into the archive and populates FLASH_CMD variable. -function build { - echo "Building tests" - make -C ./tests clean - make -C ./tests -j8 - FLASH_CMD=$(make -s -C ./tests print_flash_cmd) - - # Now we need to pack all files that are included in the flash cmd - # so they can be transferred to the remote server and run there - # Also we need to prepare flash command: - # - remove firmware files path - # - remove serial port parameter - mkdir -p /tmp/firmware - rm -rf /tmp/firmware/* - params=($FLASH_CMD) - pushd ./tests - for param in "${params[@]}" - do - if [ -f ${param} ] - then - file_name=${param##*/} - cp ${param} /tmp/firmware/ - FLASH_CMD=${FLASH_CMD/${param}/${file_name}} - fi - - # Removing port parameter from the cmd string - if [[ "$param" == "-p" || "$param" == "--port" ]] - then - FLASH_CMD=${FLASH_CMD/${param}/} - next_port=true - else - # Removing port value from the cmd string - if [ "$next_port" ] - then - FLASH_CMD=${FLASH_CMD/${param} /} - unset next_port - fi - fi - done - cp test_runner.py /tmp/firmware/ - tar -czf /tmp/tests.tar.gz -C /tmp/firmware . - popd -} - -# $1 - Server IP -# $2 - Login user name -function deploy { - echo "Deploying tests, server IP=${1}" - scp /tmp/tests.tar.gz ${2}@${1}:/tmp/tests.tar.gz - ssh ${2}@${1} mkdir -p /tmp/eor_test - ssh ${2}@${1} rm -rf /tmp/eor_test/* - ssh ${2}@${1} tar -xzf /tmp/tests.tar.gz -C /tmp/eor_test -} - -# $1 - Server IP -# $2 - Login user name -# $3 - Type "solo" or "dual" -function run_tests { - echo "Running tests, server IP=${1}, type=${3}" - echo "Flash cmd: ${FLASH_CMD}" - # Run test runner on the remote server - ssh ${2}@${1} "source ~/.profile; /tmp/eor_test/test_runner.py --type ${3} -f -c \"${FLASH_CMD}\"" -} - -# First step is to build a firmware -build - -failed=0 - -for server in "${TEST_SERVERS[@]}" -do - params=(${server//;/ }) - ip=${params[0]#IP=} - user=${params[1]#User=} - type=${params[2]#Type=} - - deploy ${ip} ${user} - if [ "$?" -eq "0" ] - then - run_tests ${ip} ${user} ${type} - if [ "$?" -ne "0" ] - then - failed=$((failed+1)) - fi - else - echo "Server ${ip} is not available" - fi -done - -exit $failed diff --git a/utils/travis_tests/sheinz_rsa.enc b/utils/travis_tests/sheinz_rsa.enc deleted file mode 100644 index 65cc620bd79075828c83a80c8c83a1d5e85f5da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3248 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%0DQ(ZpeeV6=`&-WMY`^o{gL%=zNAH0ASZSsbLzJU% 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 h;@F_yG&Dt0_Px002ovPDHLkV1oC)PbmNZ From b39df7f91e27fae58c053453f7ab24c5112193f6 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 22 Nov 2016 01:05:34 +1100 Subject: [PATCH 111/349] open_esplibs user_interface: source code for functions touching the struct netif. (#275) Add source code for functions touching the struct netif to better support lwip development: sdk_wifi_get_ip_info, sdk_wifi_set_ip_info, sdk_wifi_get_macaddr, sdk_wifi_set_macaddr. Also code for sdk_wifi_station_get_connect_status. Also code for wifi_get_sleep_type and set_sleep_type, noting wifi_set_sleep_type returns a bool success flag, and implement wifi_get_sleep_type using sdk_pm_get_sleep_type. --- open_esplibs/libmain/user_interface.c | 103 ++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 4d2123a..9fb2bf1 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -469,6 +469,7 @@ uint32_t sdk_system_relative_time(uint32_t reltime) { return WDEV.SYS_TIME - reltime; } +// Change arg types to ip4_addr for lwip v2. void sdk_system_station_got_ip_set(struct ip_addr *ip, struct ip_addr *mask, struct ip_addr *gw) { uint8_t *ip_bytes = (uint8_t *)&ip->addr; uint8_t *mask_bytes = (uint8_t *)&mask->addr; @@ -565,6 +566,108 @@ enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void) { return sdk_dhcpc_flag; } +uint8_t sdk_wifi_station_get_connect_status() { + if (sdk_wifi_get_opmode() == 2) // ESPCONN_AP + return 0xff; + + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + if (!netif_info) + return 0xff; + + return netif_info->connect_status; +} + +bool sdk_wifi_get_ip_info(uint8_t if_index, struct ip_info *info) { + if (if_index >= 2) return false; + if (!info) return false; + struct netif *netif = _get_netif(if_index); + if (netif) { + info->ip = netif->ip_addr; + info->netmask = netif->netmask; + info->gw = netif->gw; + return true; + } + + info->ip.addr = 0; + info->netmask.addr = 0; + info->gw.addr = 0; + return false; +} + +bool sdk_wifi_set_ip_info(uint8_t if_index, struct ip_info *info) { + if (if_index >= 2) return false; + if (!info) return false; + + if (if_index != 0) { + sdk_info.softap_ipaddr = info->ip; + sdk_info.softap_netmask = info->netmask; + sdk_info.softap_gw = info->gw; + } else { + if (sdk_dhcpc_flag == 1 && sdk_user_init_flag == 1) + return false; + sdk_info.sta_ipaddr = info->ip; + sdk_info.sta_netmask = info->netmask; + sdk_info.sta_gw = info->gw; + } + + struct netif *netif = _get_netif(if_index); + if (netif) + netif_set_addr(netif, &info->ip, &info->netmask, &info->gw); + + return true; +} + +bool sdk_wifi_get_macaddr(uint8_t if_index, uint8_t *macaddr) { + if (if_index >= 2) return false; + if (!macaddr) return false; + + struct netif *netif = _get_netif(if_index); + if (!netif) { + if (if_index != 0) { + memcpy(macaddr, sdk_info.softap_mac_addr, 6); + return true; + } + memcpy(macaddr, sdk_info.sta_mac_addr, 6); + return true; + } + memcpy(macaddr, netif->hwaddr, 6); + return true; +} + +bool sdk_wifi_set_macaddr(uint8_t if_index, uint8_t *macaddr) { + if (if_index >= 2) return false; + if (!macaddr) return false; + + struct netif *netif = _get_netif(if_index); + uint8_t mode = sdk_wifi_get_opmode(); + + if (if_index == 0) { + if (mode == STATION_MODE) return false; + if (memcmp(sdk_info.softap_mac_addr, macaddr, 6)) { + memcpy(sdk_info.softap_mac_addr, macaddr, 6); + if (netif) { + memcpy(netif->hwaddr, macaddr, 6); + sdk_wifi_softap_stop(); + sdk_wifi_softap_start(); + } + } + return true; + } + + if (mode == SOFTAP_MODE) return false; + if (memcmp(sdk_info.sta_mac_addr, macaddr, 6)) { + memcpy(sdk_info.sta_mac_addr, macaddr, 6); + if (netif) { + memcpy(netif->hwaddr, macaddr, 6); + sdk_wifi_station_stop(); + sdk_wifi_station_start(); + sdk_wifi_station_connect(); + } + } + + return true; +} + void sdk_system_uart_swap() { uart_flush_txfifo(0); From f10c6ed4ce34b33efd28b0a106e0ace6e65f37f5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 22 Nov 2016 01:05:57 +1100 Subject: [PATCH 112/349] open_esplibs libnet80211: source code for sdk_ieee80211_deliver_data. (#277) --- open_esplibs/libnet80211/ieee80211_input.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/open_esplibs/libnet80211/ieee80211_input.c b/open_esplibs/libnet80211/ieee80211_input.c index 0880463..be07a51 100644 --- a/open_esplibs/libnet80211/ieee80211_input.c +++ b/open_esplibs/libnet80211/ieee80211_input.c @@ -7,5 +7,25 @@ #if OPEN_LIBNET80211_INPUT // The contents of this file are only built if OPEN_LIBNET80211_INPUT is set to true +#include "esplibs/libpp.h" + +void IRAM sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, struct esf_buf *esf_buf) { + struct netif *netif = netif_info->netif; + + if (netif->flags & NETIF_FLAG_LINK_UP) { + uint16_t length = esf_buf->length; + struct pbuf *pbuf = pbuf_alloc(PBUF_RAW, length, PBUF_REF); + pbuf->payload = esf_buf->pbuf2->payload; + esf_buf->pbuf1 = pbuf; + pbuf->eb = (void *)esf_buf; + ethernetif_input(netif, pbuf); + return; + } + + if (esf_buf) + sdk_ppRecycleRxPkt(esf_buf); + + return; +} #endif /* OPEN_LIBNET80211_INPUT */ From 16b38f94b0a4c7f572c0491d452ebf0e17e09b88 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Sat, 19 Nov 2016 21:25:21 +0500 Subject: [PATCH 113/349] Driver + example for MCP4725 12-bit I2C DAC --- examples/mcp4725_test/Makefile | 4 ++ examples/mcp4725_test/main.c | 66 ++++++++++++++++++++ extras/mcp4725/component.mk | 9 +++ extras/mcp4725/mcp4725.c | 71 ++++++++++++++++++++++ extras/mcp4725/mcp4725.h | 106 +++++++++++++++++++++++++++++++++ 5 files changed, 256 insertions(+) create mode 100644 examples/mcp4725_test/Makefile create mode 100644 examples/mcp4725_test/main.c create mode 100644 extras/mcp4725/component.mk create mode 100644 extras/mcp4725/mcp4725.c create mode 100644 extras/mcp4725/mcp4725.h diff --git a/examples/mcp4725_test/Makefile b/examples/mcp4725_test/Makefile new file mode 100644 index 0000000..bc50fa2 --- /dev/null +++ b/examples/mcp4725_test/Makefile @@ -0,0 +1,4 @@ +PROGRAM = mcp4725_test +EXTRA_COMPONENTS = extras/i2c extras/mcp4725 +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/mcp4725_test/main.c b/examples/mcp4725_test/main.c new file mode 100644 index 0000000..f3eae0b --- /dev/null +++ b/examples/mcp4725_test/main.c @@ -0,0 +1,66 @@ +/* + * Example of using MCP4725 DAC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include + +#include +#include + +#define SCL_PIN 5 +#define SDA_PIN 4 +#define ADDR MCP4725A0_ADDR0 +#define VDD 3.3 + +inline static void wait_for_eeprom() +{ + while (mcp4725_eeprom_busy(ADDR)) + { + printf("...DAC is busy, waiting...\n"); + vTaskDelay(1); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + // setup EEPROM values + if (mcp4725_get_power_mode(ADDR, true) != MCP4725_PM_NORMAL) + { + printf("DAC was sleeping... Wake up Neo!\n"); + mcp4725_set_power_mode(ADDR, MCP4725_PM_NORMAL, true); + wait_for_eeprom(); + } + + printf("Set default DAC ouptut value to MAX...\n"); + mcp4725_set_raw_output(ADDR, MCP4725_MAX_VALUE, true); + wait_for_eeprom(); + + printf("And now default DAC output value is 0x%03x\n", mcp4725_get_raw_output(ADDR, true)); + + printf("Now let's generate the sawtooth wave in slow manner\n"); + + float vout = 0; + while (true) + { + vout += 0.1; + if (vout > VDD) vout = 0; + + printf("Vout: %.02f\n", vout); + mcp4725_set_voltage(ADDR, VDD, vout, false); + + // It will be very low freq wave + vTaskDelay(100 / portTICK_PERIOD_MS); + } +} diff --git a/extras/mcp4725/component.mk b/extras/mcp4725/component.mk new file mode 100644 index 0000000..1ba79c8 --- /dev/null +++ b/extras/mcp4725/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/mcp4725 + +# expected anyone using this driver includes it as 'mcp4725/mcp4725.h' +INC_DIRS += $(mcp4725_ROOT).. + +# args for passing into compile rule generation +mcp4725_SRC_DIR = $(mcp4725_ROOT) + +$(eval $(call component_compile_rules,mcp4725)) diff --git a/extras/mcp4725/mcp4725.c b/extras/mcp4725/mcp4725.c new file mode 100644 index 0000000..889ddef --- /dev/null +++ b/extras/mcp4725/mcp4725.c @@ -0,0 +1,71 @@ +/* + * Driver for 12-bit DAC MCP4725 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "mcp4725.h" +#include + +#define CMD_DAC 0x40 +#define CMD_EEPROM 0x60 +#define BIT_READY 0x80 + +static void read_data(uint8_t addr, uint8_t *buf, uint8_t size) +{ + i2c_start(); + i2c_write(addr << 1 | 1); + while (size--) + *(buf++) = i2c_read(!size); + i2c_stop(); +} + +bool mcp4725_eeprom_busy(uint8_t addr) +{ + uint8_t res; + read_data(addr, &res, 1); + + return !(res & BIT_READY); +} + +mcp4725_power_mode_t mcp4725_get_power_mode(uint8_t addr, bool eeprom) +{ + uint8_t buf[4]; + read_data(addr, buf, eeprom ? 4 : 1); + + return (eeprom ? buf[3] >> 5 : buf[0] >> 1) & 0x03; +} + +void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom) +{ + uint16_t value = mcp4725_get_raw_output(addr, eeprom); + uint8_t data[] = { + (eeprom ? CMD_EEPROM : CMD_DAC) | ((uint8_t)mode << 1), + value >> 4, + value << 4 + }; + i2c_slave_write(addr, data, 3); +} + +uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom) +{ + uint8_t buf[5]; + read_data(addr, buf, eeprom ? 5 : 3); + + return eeprom + ? ((uint16_t)(buf[3] & 0x0f) << 8) | buf[4] + : ((uint16_t)buf[0] << 4) | (buf[1] >> 4); +} + +void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom) +{ + uint8_t data[] = { + (eeprom ? CMD_EEPROM : CMD_DAC), + value >> 4, + value << 4 + }; + i2c_slave_write(addr, data, 3); +} + + diff --git a/extras/mcp4725/mcp4725.h b/extras/mcp4725/mcp4725.h new file mode 100644 index 0000000..ac6d905 --- /dev/null +++ b/extras/mcp4725/mcp4725.h @@ -0,0 +1,106 @@ +/* + * Driver for 12-bit DAC MCP4725 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_MCP4725_H_ +#define _EXTRAS_MCP4725_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define MCP4725A0_ADDR0 0x60 +#define MCP4725A0_ADDR1 0x61 +#define MCP4725A1_ADDR0 0x62 +#define MCP4725A1_ADDR1 0x63 +#define MCP4725A2_ADDR0 0x64 +#define MCP4725A2_ADDR1 0x65 + +#define MCP4725_MAX_VALUE 0x0fff + +/** + * Power mode, see datasheet + */ +typedef enum +{ + MCP4725_PM_NORMAL = 0, //!< Normal mode + MCP4725_PM_PD_1K, //!< Power down, 1kOhm resistor to ground + MCP4725_PM_PD_100K, //!< Power down, 100kOhm resistor to ground + MCP4725_PM_PD_500K, //!< Power down, 500kOhm resistor to ground +} mcp4725_power_mode_t; + +/** + * Get device EEPROM status + * @param addr Device address + * @return true when EEPROM is busy + */ +bool mcp4725_eeprom_busy(uint8_t addr); + +/** + * Get power mode + * @param addr Device address + * @param eeprom Read power mode from EEPROM if true + * @return Power mode + */ +mcp4725_power_mode_t mcp4725_get_power_mode(uint8_t addr, bool eeprom); + +/** + * Set power mode + * @param addr Device address + * @param mode Power mode + * @param eeprom Store mode to device EEPROM if true + */ +void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom); + +/** + * Get current DAC value + * @param addr Device address + * @param eeprom Read value from device EEPROM if true + * @return Raw output value, 0..4095 + */ +uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom); + +/** + * Set DAC output value + * @param addr Device address + * @param value Raw output value, 0..4095 + * @param eeprom Store value to device EEPROM if true + */ +void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom); + +/** + * Get current DAC output voltage + * @param addr Device address + * @param vdd Device operating voltage, volts + * @param eeprom Read voltage from device EEPROM if true + * @return Current output voltage, volts + */ +inline float mcp4725_get_voltage(uint8_t addr, float vdd, bool eeprom) +{ + return vdd / MCP4725_MAX_VALUE * mcp4725_get_raw_output(addr, eeprom); +} + +/** + * Set DAC output voltage + * @param addr Device address + * @param vdd Device operating voltage, volts + * @param value Output value, volts + * @param eeprom Store value to device EEPROM if true + */ +inline void mcp4725_set_voltage(uint8_t addr, float vdd, float value, bool eeprom) +{ + mcp4725_set_raw_output(addr, MCP4725_MAX_VALUE / vdd * value, eeprom); +} + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_MCP4725_H_ */ From ec4368d9ae025999d7d661d9295e035e24a9f9a4 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 22 Nov 2016 06:31:54 +1100 Subject: [PATCH 114/349] open_esplibs libnet80211: source code for sdk_wifi_station_start and stop. (#278) The function sdk_wifi_station_start is one of two paths that allocates a lwip struct netif and also accesses the netif->hwaddr slot so this is required for lwip development. Also code for sdk_wifi_station_stop and sdk_sta_status_set to better understand the status state. --- open_esplibs/libnet80211/ieee80211_sta.c | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/open_esplibs/libnet80211/ieee80211_sta.c b/open_esplibs/libnet80211/ieee80211_sta.c index 0352b1e..5362dc3 100644 --- a/open_esplibs/libnet80211/ieee80211_sta.c +++ b/open_esplibs/libnet80211/ieee80211_sta.c @@ -7,5 +7,70 @@ #if OPEN_LIBNET80211_STA // The contents of this file are only built if OPEN_LIBNET80211_STA is set to true +#include +#include "esplibs/libmain.h" +#include "esplibs/libnet80211.h" +#include "esplibs/libpp.h" +#include "esplibs/libwpa.h" +#include "tcpip.h" +#include "espressif/esp_sta.h" + + +void sdk_sta_status_set(int status) { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + uint32_t statusb8 = netif_info->statusb8; + + if (statusb8 == 1 || statusb8 == status) { + uint32_t statusb9 = netif_info->statusb9 + 1; + netif_info->statusb9 = statusb9; + if (statusb9 == 3) + netif_info->connect_status = status; + } else { + netif_info->statusb9 = 0; + netif_info->connect_status = 1; + } + + netif_info->statusb8 = status; + + return; +} + +bool sdk_wifi_station_start() { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + if (!netif_info) + return 0; + + if (!netif_info->started) { + if (!netif_info->netif) { + struct netif *netif = (struct netif *)malloc(sizeof(struct netif)); + netif_info->netif = netif; + memcpy(&netif->hwaddr, &sdk_info.sta_mac_addr, 6); + netif_add(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw, netif_info, ethernetif_init, tcpip_input); + sdk_wpa_attach(&sdk_g_ic); + } + sdk_ic_set_vif(0, 1, &sdk_info.sta_mac_addr, 0, 0); + netif_info->statusb8 = 0; + netif_info->statusb9 = 0; + netif_info->started = 1; + } + + return 1; +} + +bool sdk_wifi_station_stop() { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + if (!netif_info) + return 0; + + if (netif_info->started) { + netif_info->statusb8 = 0; + netif_info->statusb9 = 0; + sdk_wifi_station_disconnect(); + sdk_ic_set_vif(0, 0, NULL, 0, 0); + netif_info->started = 0; + } + + return 1; +} #endif /* OPEN_LIBNET80211_STA */ From 690a4793a61fd9916eef4c03fc4917994b93e7cc Mon Sep 17 00:00:00 2001 From: UncleRus Date: Tue, 22 Nov 2016 20:10:03 +0500 Subject: [PATCH 115/349] ADS1113/ADS1114/ADS1115 I2C DAC driver + example --- examples/ads1115_test/Makefile | 4 + examples/ads1115_test/main.c | 55 +++++++ extras/ads111x/ads111x.c | 195 ++++++++++++++++++++++ extras/ads111x/ads111x.h | 292 +++++++++++++++++++++++++++++++++ extras/ads111x/component.mk | 9 + 5 files changed, 555 insertions(+) create mode 100644 examples/ads1115_test/Makefile create mode 100644 examples/ads1115_test/main.c create mode 100644 extras/ads111x/ads111x.c create mode 100644 extras/ads111x/ads111x.h create mode 100644 extras/ads111x/component.mk diff --git a/examples/ads1115_test/Makefile b/examples/ads1115_test/Makefile new file mode 100644 index 0000000..924bf11 --- /dev/null +++ b/examples/ads1115_test/Makefile @@ -0,0 +1,4 @@ +PROGRAM = ads1115_test +EXTRA_COMPONENTS = extras/i2c extras/ads111x +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/ads1115_test/main.c b/examples/ads1115_test/main.c new file mode 100644 index 0000000..8065f04 --- /dev/null +++ b/examples/ads1115_test/main.c @@ -0,0 +1,55 @@ +/* + * Example of using DS1302 RTC driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * Pavel Merzlyakov + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include +#include + +// Connect ADDR pin to GND +#define ADDR ADS111X_ADDR_GND + +#define SCL_PIN 5 +#define SDA_PIN 4 + +// +-4.096V +#define GAIN ADS111X_GAIN_4V096 + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + ads111x_set_mode(ADDR, ADS111X_MODE_CONTUNOUS); + ads111x_set_data_rate(ADDR, ADS111X_DATA_RATE_32); + + ads111x_set_input_mux(ADDR, ADS111X_MUX_0_GND); + ads111x_set_gain(ADDR, GAIN); + + float gain_val = ads111x_gain_values[GAIN]; + + while (true) + { + // wait for conversion end + while (ads111x_busy(ADDR)) {} + + // Read result + int16_t raw = ads111x_get_value(ADDR); + + float voltage = gain_val / ADS111X_MAX_VALUE * raw; + + printf("Raw ADC value: %d, voltage: %.04f volts\n", raw, voltage); + + vTaskDelay(500 / portTICK_PERIOD_MS); + } +} diff --git a/extras/ads111x/ads111x.c b/extras/ads111x/ads111x.c new file mode 100644 index 0000000..9241e13 --- /dev/null +++ b/extras/ads111x/ads111x.c @@ -0,0 +1,195 @@ +/* + * Driver for ADS1113/ADS1114/ADS1115 I2C ADC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "ads111x.h" +#include + +#define ADS111X_DEBUG + +#ifdef ADS111X_DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt "\n", "ADS111x: ", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +#define REG_CONVERSION 0 +#define REG_CONFIG 1 +#define REG_THRESH_L 2 +#define REG_THRESH_H 3 + +#define COMP_QUE_OFFSET 1 +#define COMP_QUE_MASK 0x03 +#define COMP_LAT_OFFSET 2 +#define COMP_LAT_MASK 0x01 +#define COMP_POL_OFFSET 3 +#define COMP_POL_MASK 0x01 +#define COMP_MODE_OFFSET 4 +#define COMP_MODE_MASK 0x01 +#define DR_OFFSET 5 +#define DR_MASK 0x07 +#define MODE_OFFSET 8 +#define MODE_MASK 0x01 +#define PGA_OFFSET 9 +#define PGA_MASK 0x07 +#define MUX_OFFSET 12 +#define MUX_MASK 0x07 +#define OS_OFFSET 15 +#define OS_MASK 0x01 + +const float ads111x_gain_values[] = { + [ADS111X_GAIN_6V144] = 6.144, + [ADS111X_GAIN_4V096] = 4.096, + [ADS111X_GAIN_2V048] = 2.048, + [ADS111X_GAIN_1V024] = 1.024, + [ADS111X_GAIN_0V512] = 0.512, + [ADS111X_GAIN_0V256] = 0.256, + [ADS111X_GAIN_0V256_2] = 0.256, + [ADS111X_GAIN_0V256_3] = 0.256 +}; + +static uint16_t read_reg(uint8_t addr, uint8_t reg) +{ + uint16_t res = 0; + if (!i2c_slave_read(addr, reg, (uint8_t *)&res, 2)) + debug("Could not read register %d", reg); + //debug("Read %d: 0x%04x", reg, res); + return res; +} + +static void write_reg(uint8_t addr, uint8_t reg, uint16_t val) +{ + //debug("Write %d: 0x%04x", reg, val); + uint8_t buf[3] = {reg, val >> 8, val}; + if (!i2c_slave_write(addr, buf, 3)) + debug("Could not write 0x%04x to register %d", val, reg); +} + +static uint16_t read_conf_bits(uint8_t addr, uint8_t offs, uint16_t mask) +{ + return (read_reg(addr, REG_CONFIG) >> offs) & mask; +} + +static void write_conf_bits(uint8_t addr, uint16_t val, uint8_t offs, uint16_t mask) +{ + write_reg(addr, REG_CONFIG, (read_reg(addr, REG_CONFIG) & ~(mask << offs)) | (val << offs)); +} + +bool ads111x_busy(uint8_t addr) +{ + return read_conf_bits(addr, OS_OFFSET, OS_MASK); +} + +void ads111x_start_conversion(uint8_t addr) +{ + write_conf_bits(addr, 1, OS_OFFSET, OS_MASK); +} + +int16_t ads111x_get_value(uint8_t addr) +{ + return read_reg(addr, REG_CONVERSION); +} + +ads111x_gain_t ads111x_get_gain(uint8_t addr) +{ + return read_conf_bits(addr, PGA_OFFSET, PGA_MASK); +} + +void ads111x_set_gain(uint8_t addr, ads111x_gain_t gain) +{ + write_conf_bits(addr, gain, PGA_OFFSET, PGA_MASK); +} + +ads111x_mux_t ads111x_get_input_mux(uint8_t addr) +{ + return read_conf_bits(addr, MUX_OFFSET, MUX_MASK); +} + +void ads111x_set_input_mux(uint8_t addr, ads111x_mux_t mux) +{ + write_conf_bits(addr, mux, MUX_OFFSET, MUX_MASK); +} + +ads111x_mode_t ads111x_get_mode(uint8_t addr) +{ + return read_conf_bits(addr, MODE_OFFSET, MODE_MASK); +} + +void ads111x_set_mode(uint8_t addr, ads111x_mode_t mode) +{ + write_conf_bits(addr, mode, MODE_OFFSET, MODE_MASK); +} + +ads111x_data_rate_t ads111x_get_data_rate(uint8_t addr) +{ + return read_conf_bits(addr, DR_OFFSET, DR_MASK); +} + +void ads111x_set_data_rate(uint8_t addr, ads111x_data_rate_t rate) +{ + write_conf_bits(addr, rate, DR_OFFSET, DR_MASK); +} + +ads111x_comp_mode_t ads111x_get_comp_mode(uint8_t addr) +{ + return read_conf_bits(addr, COMP_MODE_OFFSET, COMP_MODE_MASK); +} + +void ads111x_set_comp_mode(uint8_t addr, ads111x_comp_mode_t mode) +{ + write_conf_bits(addr, mode, COMP_MODE_OFFSET, COMP_MODE_MASK); +} + +ads111x_comp_polarity_t ads111x_get_comp_polarity(uint8_t addr) +{ + return read_conf_bits(addr, COMP_POL_OFFSET, COMP_POL_MASK); +} + +void ads111x_set_comp_polarity(uint8_t addr, ads111x_comp_polarity_t polarity) +{ + write_conf_bits(addr, polarity, COMP_POL_OFFSET, COMP_POL_MASK); +} + +ads111x_comp_latch_t ads111x_get_comp_latch(uint8_t addr) +{ + return read_conf_bits(addr, COMP_LAT_OFFSET, COMP_LAT_MASK); +} + +void ads111x_set_comp_latch(uint8_t addr, ads111x_comp_latch_t latch) +{ + write_conf_bits(addr, latch, COMP_LAT_OFFSET, COMP_LAT_MASK); +} + +ads111x_comp_queue_t ads111x_get_comp_queue(uint8_t addr) +{ + return read_conf_bits(addr, COMP_QUE_OFFSET, COMP_QUE_MASK); +} + +void ads111x_set_comp_queue(uint8_t addr, ads111x_comp_queue_t queue) +{ + write_conf_bits(addr, queue, COMP_QUE_OFFSET, COMP_QUE_MASK); +} + +int16_t ads111x_get_comp_low_thresh(uint8_t addr) +{ + return read_reg(addr, REG_THRESH_L); +} + +void ads111x_set_comp_low_thresh(uint8_t addr, int16_t thresh) +{ + write_reg(addr, REG_THRESH_L, thresh); +} + +int16_t ads111x_get_comp_high_thresh(uint8_t addr) +{ + return read_reg(addr, REG_THRESH_H); +} + +void ads111x_set_comp_high_thresh(uint8_t addr, int16_t thresh) +{ + write_reg(addr, REG_THRESH_H, thresh); +} diff --git a/extras/ads111x/ads111x.h b/extras/ads111x/ads111x.h new file mode 100644 index 0000000..fe64464 --- /dev/null +++ b/extras/ads111x/ads111x.h @@ -0,0 +1,292 @@ +/* + * Driver for ADS1113/ADS1114/ADS1115 I2C ADC + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_ADS111X_H_ +#define _EXTRAS_ADS111X_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define ADS111X_ADDR_GND 0x48 +#define ADS111X_ADDR_VCC 0x49 +#define ADS111X_ADDR_SDA 0x4a +#define ADS111X_ADDR_SCL 0x4b + +#define ADS111X_MAX_VALUE 0x7fff + +/** + * Gain amplifier + */ +typedef enum +{ + ADS111X_GAIN_6V144 = 0, //!< +-6.144V + ADS111X_GAIN_4V096, //!< +-4.096V + ADS111X_GAIN_2V048, //!< +-2.048V (default) + ADS111X_GAIN_1V024, //!< +-1.024V + ADS111X_GAIN_0V512, //!< +-0.512V + ADS111X_GAIN_0V256, //!< +-0.256V + ADS111X_GAIN_0V256_2, //!< +-0.256V (same as ADS111X_GAIN_0V256) + ADS111X_GAIN_0V256_3, //!< +-0.256V (same as ADS111X_GAIN_0V256) +} ads111x_gain_t; + +/** + * Gain values + */ +extern const float ads111x_gain_values[]; + +/** + * Input multiplexer configuration (ADS1115 only) + */ +typedef enum +{ + ADS111X_MUX_0_1 = 0, //!< positive = AIN0, negative = AIN1 (default) + ADS111X_MUX_0_3, //!< positive = AIN0, negative = AIN3 + ADS111X_MUX_1_3, //!< positive = AIN1, negative = AIN3 + ADS111X_MUX_2_3, //!< positive = AIN2, negative = AIN3 + ADS111X_MUX_0_GND, //!< positive = AIN0, negative = GND + ADS111X_MUX_1_GND, //!< positive = AIN1, negative = GND + ADS111X_MUX_2_GND, //!< positive = AIN2, negative = GND + ADS111X_MUX_3_GND, //!< positive = AIN3, negative = GND +} ads111x_mux_t; + +/** + * Data rate + */ +typedef enum +{ + ADS111X_DATA_RATE_8 = 0, //!< 8 samples per second + ADS111X_DATA_RATE_16, //!< 16 samples per second + ADS111X_DATA_RATE_32, //!< 32 samples per second + ADS111X_DATA_RATE_64, //!< 64 samples per second + ADS111X_DATA_RATE_128, //!< 128 samples per second (default) + ADS111X_DATA_RATE_250, //!< 250 samples per second + ADS111X_DATA_RATE_475, //!< 475 samples per second + ADS111X_DATA_RATE_860 //!< 860 samples per second +} ads111x_data_rate_t; + +/** + * Operational mode + */ +typedef enum +{ + ADS111X_MODE_CONTUNOUS = 0, //!< Continuous conversion mode + ADS111X_MODE_SINGLE_SHOT //!< Power-down single-shot mode (default) +} ads111x_mode_t; + +/** + * Comparator mode (ADS1114 and ADS1115 only) + */ +typedef enum +{ + ADS111X_COMP_MODE_NORMAL = 0, //!< Traditional comparator with hysteresis (default) + ADS111X_COMP_MODE_WINDOW //!< Window comparator +} ads111x_comp_mode_t; + +/** + * Comparator polarity (ADS1114 and ADS1115 only) + */ +typedef enum +{ + ADS111X_COMP_POLARITY_LOW = 0, //!< Active low (default) + ADS111X_COMP_POLARITY_HIGH //!< Active high +} ads111x_comp_polarity_t; + +/** + * Comparator latch (ADS1114 and ADS1115 only) + */ +typedef enum +{ + ADS111X_COMP_LATCH_DISABLED = 0, //!< Non-latching comparator (default) + ADS111X_COMP_LATCH_ENABLED //!< Latching comparator +} ads111x_comp_latch_t; + +/** + * Comparator queue + */ +typedef enum +{ + ADS111X_COMP_QUEUE_1 = 0, //!< Assert ALERT/RDY pin after one conversion + ADS111X_COMP_QUEUE_2, //!< Assert ALERT/RDY pin after two conversions + ADS111X_COMP_QUEUE_4, //!< Assert ALERT/RDY pin after four conversions + ADS111X_COMP_QUEUE_DISABLED //!< Disable comparator (default) +} ads111x_comp_queue_t; + +/** + * Get device operational status + * @param addr Deivce address + * @return true when device performing conversion + */ +bool ads111x_busy(uint8_t addr); + +/** + * Begin a single conversion (when in single-shot mode) + * @param addr Deivce address + */ +void ads111x_start_conversion(uint8_t addr); + +/** + * Read last conversion result + * @param addr + * @return Last conversion result + */ +int16_t ads111x_get_value(uint8_t addr); + +/** + * Read the programmable gain amplifier configuration + * (ADS1114 and ADS1115 only). + * @param addr Deivce address + * @return Gain value + */ +ads111x_gain_t ads111x_get_gain(uint8_t addr); + +/** + * Configure the programmable gain amplifier (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @param gain Gain value + */ +void ads111x_set_gain(uint8_t addr, ads111x_gain_t gain); + +/** + * Read the input multiplexer configuration (ADS1115 only) + * @param addr Deivce address + * @return Input multiplexer configuration + */ +ads111x_mux_t ads111x_get_input_mux(uint8_t addr); + +/** + * Configure the input multiplexer configuration (ADS1115 only) + * @param addr Deivce address + * @param mux Input multiplexer configuration + */ +void ads111x_set_input_mux(uint8_t addr, ads111x_mux_t mux); + +/** + * Read the device operating mode + * @param addr Deivce address + * @return Device operating mode + */ +ads111x_mode_t ads111x_get_mode(uint8_t addr); + +/** + * Set the device operating mode + * @param addr Deivce address + * @param mode Device operating mode + */ +void ads111x_set_mode(uint8_t addr, ads111x_mode_t mode); + +/** + * Read the data rate + * @param addr Deivce address + * @return Data rate + */ +ads111x_data_rate_t ads111x_get_data_rate(uint8_t addr); + +/** + * Configure the data rate + * @param addr Deivce address + * @param rate Data rate + */ +void ads111x_set_data_rate(uint8_t addr, ads111x_data_rate_t rate); + +/** + * Get comparator mode (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @return Comparator mode + */ +ads111x_comp_mode_t ads111x_get_comp_mode(uint8_t addr); + +/** + * Set comparator mode (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @param mode Comparator mode + */ +void ads111x_set_comp_mode(uint8_t addr, ads111x_comp_mode_t mode); + +/** + * Get polarity of the comparator output pin ALERT/RDY + * (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @return Comparator output pin polarity + */ +ads111x_comp_polarity_t ads111x_get_comp_polarity(uint8_t addr); + +/** + * Set polarity of the comparator output pin ALERT/RDY + * (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @param polarity Comparator output pin polarity + */ +void ads111x_set_comp_polarity(uint8_t addr, ads111x_comp_polarity_t polarity); + +/** + * Get comparator output latch mode, see datasheet. + * (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @return Comparator output latch mode + */ +ads111x_comp_latch_t ads111x_get_comp_latch(uint8_t addr); + +/** + * Set comparator output latch mode (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @param latch Comparator output latch mode + */ +void ads111x_set_comp_latch(uint8_t addr, ads111x_comp_latch_t latch); + +/** + * Set number of the comparator conversions before pin ALERT/RDY + * assertion, or disable comparator (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @return Number of the comparator conversions + */ +ads111x_comp_queue_t ads111x_get_comp_queue(uint8_t addr); + +/** + * Get number of the comparator conversions before pin ALERT/RDY + * assertion (ADS1114 and ADS1115 only) + * @param addr Deivce address + * @param queue Number of the comparator conversions + */ +void ads111x_set_comp_queue(uint8_t addr, ads111x_comp_queue_t queue); + +/** + * Get the lower threshold value used by comparator + * @param addr Deivce address + * @return Lower threshold value + */ +int16_t ads111x_get_comp_low_thresh(uint8_t addr); + +/** + * Set the lower threshold value used by comparator + * @param addr Deivce address + * @param thresh Lower threshold value + */ +void ads111x_set_comp_low_thresh(uint8_t addr, int16_t thresh); + +/** + * Get the upper threshold value used by comparator + * @param addr Deivce address + * @return Upper threshold value + */ +int16_t ads111x_get_comp_high_thresh(uint8_t addr); + +/** + * Set the upper threshold value used by comparator + * @param addr Deivce address + * @param thresh Upper threshold value + */ +void ads111x_set_comp_high_thresh(uint8_t addr, int16_t thresh); + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_ADS111X_H_ */ diff --git a/extras/ads111x/component.mk b/extras/ads111x/component.mk new file mode 100644 index 0000000..5ae835c --- /dev/null +++ b/extras/ads111x/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ads111x + +# expected anyone using ADC driver includes it as 'ads111x/ads111x.h' +INC_DIRS += $(ads111x_ROOT).. + +# args for passing into compile rule generation +ads111x_SRC_DIR = $(ads111x_ROOT) + +$(eval $(call component_compile_rules,ads111x)) From 0d9094e44327790fa390a4d169db4f3f1d6b1ea5 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Wed, 23 Nov 2016 16:16:03 +0100 Subject: [PATCH 116/349] Bmp280 option (#220) * bmp280 more options add option to user for temp oversampling and possibility to skipp a specific measure * Update bmp280.h * quick fix oups * less redundant terms --- extras/bmp280/bmp280.c | 8 +++----- extras/bmp280/bmp280.h | 4 +++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index ab81dae..83fdfe0 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -60,7 +60,8 @@ void bmp280_init_default_params(bmp280_params_t *params) { params->mode = BMP280_MODE_NORMAL; params->filter = BMP280_FILTER_OFF; - params->oversampling = BMP280_STANDARD; + params->oversampling_pressure = BMP280_STANDARD; + params->oversampling_temperature = BMP280_STANDARD ; params->oversampling_humidity = BMP280_STANDARD; params->standby = BMP280_STANDBY_250; } @@ -194,14 +195,11 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) return false; } - uint8_t oversampling_temp = - (params->oversampling == BMP280_ULTRA_HIGH_RES) ? 2 : 1; - if (params->mode == BMP280_MODE_FORCED) { params->mode = BMP280_MODE_SLEEP; // initial mode for forced is sleep } - uint8_t ctrl = (oversampling_temp << 5) | (params->oversampling << 2) + uint8_t ctrl = (params->oversampling_temperature << 5) | (params->oversampling_pressure << 2) | (params->mode); diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h index ea8e8f5..4646d25 100644 --- a/extras/bmp280/bmp280.h +++ b/extras/bmp280/bmp280.h @@ -69,6 +69,7 @@ typedef enum { * Pressure oversampling settings */ typedef enum { + BMP280_SKIPPED = 0, /* no measurement */ BMP280_ULTRA_LOW_POWER = 1, /* oversampling x1 */ BMP280_LOW_POWER = 2, /* oversampling x2 */ BMP280_STANDARD = 3, /* oversampling x4 */ @@ -97,7 +98,8 @@ typedef enum { typedef struct { BMP280_Mode mode; BMP280_Filter filter; - BMP280_Oversampling oversampling; // pressure oversampling + BMP280_Oversampling oversampling_pressure; + BMP280_Oversampling oversampling_temperature; BMP280_Oversampling oversampling_humidity; BMP280_StandbyTime standby; } bmp280_params_t; From 4f580594726182a7aeb2f2e15cdecd2b77066432 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 24 Nov 2016 02:55:48 +1100 Subject: [PATCH 117/349] open_esplibs libwpa: source code for some struct netif paths. (#279) Function sdk_eagle_auth_done accesses the netif-flags and the NETIF_FLAG_DHCP flag removed in lwip v2, and also the netif->ip_addr so is needed for lwip development. Function sdk_wpa_config_bss accesses the netif->hwaddr. Also code for a few other trivial functions that help debug the dhcpc paths. --- open_esplibs/libwpa/wpa_main.c | 112 +++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c index c1133e6..28acb45 100644 --- a/open_esplibs/libwpa/wpa_main.c +++ b/open_esplibs/libwpa/wpa_main.c @@ -7,5 +7,117 @@ #if OPEN_LIBWPA_WPA_MAIN // The contents of this file are only built if OPEN_LIBWPA_WPA_MAIN is set to true +#include "espressif/user_interface.h" +#include "etstimer.h" +#include "espressif/osapi.h" +#include "esplibs/libnet80211.h" +#include "esplibs/libmain.h" +#include "esplibs/libwpa.h" +#include "esplibs/libpp.h" +#include "lwip/dhcp.h" + +static void wpa_callback1(struct pbuf* pb) { + struct netif *netif = sdk_g_ic.v.station_netif_info->netif; + sdk_ieee80211_output_pbuf(netif, pb); +} + +static void wpa_callback2(int arg0) { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + sdk_ieee80211_send_mgmt(netif_info, 192, arg0); + sdk_ieee80211_sta_new_state(&sdk_g_ic, 2, (arg0 << 8) | 192); +} + +void sdk_wpa_config_profile(struct sdk_g_ic_st *g_ic) { + uint8_t v = g_ic->s._unknown209; + + if (v == 2 || v == 3 || v == 6) { + sdk_wpa_set_profile(1); + return; + } + + if (v == 4 || v == 5 || v == 7) + sdk_wpa_set_profile(2); +} + +void sdk_wpa_config_bss(struct sdk_g_ic_st *g_ic, uint8_t (* hwaddr2)[6]) { + struct sdk_g_ic_netif_info *netif_info = g_ic->v.station_netif_info; + struct netif *netif = netif_info->netif; + sdk_wpa_set_bss(netif->hwaddr, hwaddr2, g_ic->s._unknown20a, g_ic->s._unknown20c, + g_ic->s.sta_password, g_ic->s._unknown1e4.sta_ssid, + (g_ic->s._unknown1e4._unknown1e6 << 16) | g_ic->s._unknown1e4._unknown1e4); +} + +void sdk_wpa_config_assoc_ie(int arg0, int16_t *arg1, int32_t arg2) { + if (arg0 != 1) + sdk_g_ic.v._unknown178 = arg1; + else + sdk_g_ic.v._unknown174 = arg1; + + *arg1 = arg2; +} + +void sdk_dhcp_bind_check() { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + uint8_t connect_status = netif_info->connect_status; + uint8_t unknown20a = sdk_g_ic.s._unknown20a; + + if (connect_status != 5) { + if (unknown20a == 7 || unknown20a == 8) { + netif_info->connect_status = 2; + } + } +} + +void sdk_eagle_auth_done() { + struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info; + struct netif *netif = netif_info->netif; + struct sdk_netif_conninfo *conninfo = netif_info->_unknown88; + + if (conninfo->_unknown08 & 1) + return; + + uint32_t channel = conninfo->_unknown78->channel; + char *ssid = (char *)sdk_g_ic.s._unknown1e4.sta_ssid; + printf("\nconnected with %s, channel %d\n", ssid, channel); + + RTCMEM_SYSTEM[61] = 0x00010000 | channel; + + ETSTimer *timer = &netif_info->timer; + sdk_os_timer_disarm(timer); + sdk_os_timer_setfn(timer, sdk_dhcp_bind_check, 0); + sdk_os_timer_arm(timer, 15000, 0); + + netif_info->statusb9 = 0; + conninfo->_unknown18 = 0; + conninfo->_unknown08 |= 1; + + // TODO lwip v2 removed the NETIF_FLAG_DHCP flag. + if (netif->flags & 0x08) // NETIF_FLAG_DHCP + return; + + // lwip v2: if (ip4_addr_isany_val(netif->ip_addr)) { + if (netif->ip_addr.addr == 0) { + if (sdk_dhcpc_flag != DHCP_STOPPED) { + printf("dhcp client start...\n"); + dhcp_start(netif); + } + return; + } + + system_station_got_ip_set(&netif->ip_addr, &netif->netmask, &netif->gw); + netif_set_up(netif); +} + +void sdk_wpa_neg_complete() { + sdk_eagle_auth_done(); +} + +void sdk_wpa_attach(struct sdk_g_ic_st *g_ic) { + g_ic->v._unknown180 = NULL; + g_ic->v._unknown184 = &(g_ic->v._unknown180); + sdk_wpa_register(0, wpa_callback1, sdk_wpa_config_assoc_ie, sdk_ppInstallKey, + wpa_callback2, sdk_wpa_neg_complete); + sdk_ppRegisterTxCallback(sdk_eapol_txcb, 3); +} #endif /* OPEN_LIBWPA_WPA_MAIN */ From ca6c6e1d3e2efb05a857e349789e54ee319a4439 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 24 Nov 2016 02:56:05 +1100 Subject: [PATCH 118/349] open_esplibs libnet80211: source code for sdk_cnx_node_search. (#280) Also code for sdk_cnx_sta_leave, although disabled due to accessing static date, but it shows a reference to the netif->flags and the NETIF_FLAG_DHCP flag removed in lwip v2. --- open_esplibs/libnet80211/wl_cnx.c | 95 +++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c index 563bcbc..3b7d709 100644 --- a/open_esplibs/libnet80211/wl_cnx.c +++ b/open_esplibs/libnet80211/wl_cnx.c @@ -7,5 +7,100 @@ #if OPEN_LIBNET80211_WL_CNX // The contents of this file are only built if OPEN_LIBNET80211_WL_CNX is set to true +#include "espressif/esp_misc.h" +#include "esplibs/libnet80211.h" +#include +#include "lwip/dhcp.h" + +ETSTimer sdk_sta_con_timer; +void *sdk_g_cnx_probe_rc_list_cb; + +#if 0 + +// Most of the code in this file assesses static data so it will be all or none. +static uint32_t Ldata001; +static uint8_t Ldata003; +static uint8_t Ldata004; +static uint32_t Ldata006; +static void *Ldate007; + +// Use of the netif->flags and the NETIF_FLAG_DHCP flag removed in lwip v2. +void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *arg1) { + struct netif *netif = netif_info->netif; + + uint32_t phy_type = sdk_ieee80211_phy_type_get(); + uint16_t v1 = *(uint16_t *)(arg1 + 0x1a) & 0xfff; + sdk_ic_set_sta(0, 0, arg1, 0, v1, phy_type, 0, 0); + + netif_set_down(netif); + + // The NETIF_FLAG_DHCP flags is removed in lwip v2? + if (netif->flags & 0x8) { + dhcp_release(netif); + dhcp_stop(netif); + } + + uint32_t v2 = *(uint8_t *)(arg1 + 0xe8); + free(sdk_g_ic.v._unknown190[v2]); + sdk_g_ic.v._unknown190[v2] = NULL; + + if (sdk_g_ic.v._unknown190[0]) { + free(sdk_g_ic.v._unknown190[0]); + sdk_g_ic.v._unknown190[0] = NULL; + } + + if (sdk_g_ic.v._unknown190[1]) { + free(sdk_g_ic.v._unknown190[1]); + sdk_g_ic.v._unknown190[1] = NULL; + } + + sdk_scan_cancel(); + + sdk_wDev_SetRxPolicy(0, 0, 0); + + Ldata001 = 2; + + uint8_t v3 = *(uint8_t *)(arg1 + 0x6); + if (v3 & 2) { + *(uint8_t *)(arg1 + 0x6) = v3 & 0xfd; + sdk_cnx_rc_update_state_metric(arg1, -7, 1); + Ldate007 = arg1; + } + + sdk_cnx_remove_rc(arg1); + + Ldata006 = 0; + *(uint32_t *)(arg1 + 0x8) &= 0xfffffffe; + netif_info->_unknown88 = NULL; + + return; +} +#endif + +void IRAM *sdk_cnx_node_search(uint8_t mac[6]) +{ + int end = sdk_g_ic.s._unknown310 + 2; + + // Note this defensive test seems dead code, the value is loaded + // as a uint8_t value so adding 2 ensures this test never passes. + if (end < 1) + return NULL; + + struct sdk_netif_conninfo **conninfo = sdk_g_ic.v.softap_netif_info->conninfo; + + int i = 0; + do { + struct sdk_netif_conninfo *info = conninfo[i]; + + if (info) { + if (memcmp(mac, info->mac_addr, 6) == 0) { + return info; + } + } + i++; + } while (i < end); + + return NULL; +} #endif /* OPEN_LIBNET80211_WL_CNX */ From df76e77598bd4311a2dab96195f96e94f5015c74 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 24 Nov 2016 02:56:34 +1100 Subject: [PATCH 119/349] open_esplibs libwpa: source code for os_xtensa.c (#283) --- lib/allsymbols.rename | 2 ++ lib/libwpa.remove | 2 ++ open_esplibs/include/esplibs/libwpa.h | 3 +++ open_esplibs/include/open_esplibs.h | 4 +++ open_esplibs/libwpa/os_xtensa.c | 38 +++++++++++++++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 open_esplibs/libwpa/os_xtensa.c diff --git a/lib/allsymbols.rename b/lib/allsymbols.rename index 7f56f1f..2d609bc 100644 --- a/lib/allsymbols.rename +++ b/lib/allsymbols.rename @@ -279,9 +279,11 @@ NoiseTimerInterval sdk_NoiseTimerInterval operation_test sdk_operation_test os_delay_us sdk_os_delay_us os_get_cpu_frequency sdk_os_get_cpu_frequency +os_get_random sdk_os_get_random os_get_time sdk_os_get_time os_install_putc1 sdk_os_install_putc1 os_putc sdk_os_putc +os_random sdk_os_random os_timer_arm sdk_os_timer_arm os_timer_disarm sdk_os_timer_disarm os_timer_setfn sdk_os_timer_setfn diff --git a/lib/libwpa.remove b/lib/libwpa.remove index e69de29..2b3ad84 100644 --- a/lib/libwpa.remove +++ b/lib/libwpa.remove @@ -0,0 +1,2 @@ +# Object files to be removed from libwpa +os_xtensa.o diff --git a/open_esplibs/include/esplibs/libwpa.h b/open_esplibs/include/esplibs/libwpa.h index 0d75ff8..36a2fc2 100644 --- a/open_esplibs/include/esplibs/libwpa.h +++ b/open_esplibs/include/esplibs/libwpa.h @@ -35,6 +35,9 @@ int sdk_hostapd_setup_wpa_psk(struct _unknown_softap2 *); // md5.o // os_xtensa.o +int sdk_os_get_time(uint32_t time[]); +uint32_t sdk_os_random(); +int sdk_os_get_random(uint8_t *dst, uint32_t size); // rc4.o diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h index fce49a1..da59d3c 100644 --- a/open_esplibs/include/open_esplibs.h +++ b/open_esplibs/include/open_esplibs.h @@ -111,6 +111,10 @@ #define OPEN_LIBWPA (OPEN_ESPLIBS) #endif +#ifndef OPEN_LIBWPA_OS_XTENSA +#define OPEN_LIBWPA_OS_XTENSA (OPEN_LIBWPA) +#endif + #ifndef OPEN_LIBWPA_WPA_MAIN #define OPEN_LIBWPA_WPA_MAIN (OPEN_LIBWPA) #endif diff --git a/open_esplibs/libwpa/os_xtensa.c b/open_esplibs/libwpa/os_xtensa.c new file mode 100644 index 0000000..a5beba6 --- /dev/null +++ b/open_esplibs/libwpa/os_xtensa.c @@ -0,0 +1,38 @@ +/* Recreated Espressif libwpa is_xtensa.s contents. + + Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + BSD Licensed as described in the file LICENSE +*/ +#include "open_esplibs.h" +#if OPEN_LIBWPA_OS_XTENSA +// The contents of this file are only built if OPEN_LIBWPA_WPA_MAIN is set to true + +#include +#include +#include +#include + +// Used by wpa_get_ntp_timestamp. +int IRAM sdk_os_get_time(uint32_t time[]) { + return 0; +} + +uint32_t IRAM sdk_os_random() { + return rand(); +} + +int IRAM sdk_os_get_random(uint8_t *dst, uint32_t size) { + uint32_t end = size >> 2; + if (end > 0) { + uint32_t i = 0; + do { + uint32_t n = rand(); + memcpy(dst, &n, sizeof(n)); + dst += 4; + i++; + } while (i < end); + } + return 0; +} + +#endif /* OPEN_LIBWPA_OS_XTENSA */ From e7e6df63584f1d51e459279d5a069ae70fa39f08 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 23 Nov 2016 21:58:02 +0600 Subject: [PATCH 120/349] HTTP parser intergation (#263) * HTTP parser intergation * include path fixed --- .gitmodules | 3 +++ extras/http-parser/component.mk | 11 +++++++++++ extras/http-parser/http-parser | 1 + 3 files changed, 15 insertions(+) create mode 100644 extras/http-parser/component.mk create mode 160000 extras/http-parser/http-parser diff --git a/.gitmodules b/.gitmodules index d9d5e4c..a769e1d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "tests/fs-test"] path = tests/fs-test url = https://github.com/sheinz/fs-test +[submodule "extras/http-parser/http-parser"] + path = extras/http-parser/http-parser + url = https://github.com/nodejs/http-parser diff --git a/extras/http-parser/component.mk b/extras/http-parser/component.mk new file mode 100644 index 0000000..d3787fb --- /dev/null +++ b/extras/http-parser/component.mk @@ -0,0 +1,11 @@ +# Component makefile for extras/http-parser + +# Include it as 'http-parser/http_parser.h' +INC_DIRS += $(http-parser_ROOT) + +# args for passing into compile rule generation +http-parser_INC_DIR = +http-parser_SRC_DIR = $(http-parser_ROOT)http-parser +http-parser_SRC_FILES = $(http-parser_SRC_DIR)/http_parser.c + +$(eval $(call component_compile_rules,http-parser)) diff --git a/extras/http-parser/http-parser b/extras/http-parser/http-parser new file mode 160000 index 0000000..335850f --- /dev/null +++ b/extras/http-parser/http-parser @@ -0,0 +1 @@ +Subproject commit 335850f6b868d3411968cbf5a4d59fe619dee36f From 5c885c7722fa8469cdaaf49a5c4a1668781ce6b2 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 24 Nov 2016 09:41:39 +1100 Subject: [PATCH 121/349] sysparam: export the 'compact' function, added it to the editor. (#213) --- core/include/sysparam.h | 11 ++++++++ core/sysparam.c | 30 +++++++++++++++++----- examples/sysparam_editor/sysparam_editor.c | 4 +++ 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/core/include/sysparam.h b/core/include/sysparam.h index 6fe48b8..60084be 100644 --- a/core/include/sysparam.h +++ b/core/include/sysparam.h @@ -138,6 +138,17 @@ sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors, */ sysparam_status_t sysparam_get_info(uint32_t *base_addr, uint32_t *num_sectors); +/** Compact the sysparam area. + * + * This also flattens the log. + * + * @retval ::SYSPARAM_OK Completed successfully + * @retval ::SYSPARAM_ERR_NOINIT No current sysparam area is active + * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data + * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash + */ +sysparam_status_t sysparam_compact(); + /** Get the value associated with a key * * This is the core "get value" function. It will retrieve the value for the diff --git a/core/sysparam.c b/core/sysparam.c index f00f161..084a2be 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -407,7 +407,7 @@ static inline sysparam_status_t _delete_entry(uint32_t addr) { * the result to the alternate region, then make the new alternate region the * active one. * - * @param key_id A pointer to the "current" key ID. + * @param key_id A pointer to the "current" key ID, or NULL if none. * * NOTE: The value corresponding to the passed key ID will not be written to * the output (because it is assumed it will be overwritten as the next step @@ -424,7 +424,7 @@ static sysparam_status_t _compact_params(struct sysparam_context *ctx, int *key_ uint16_t binary_flag; uint16_t num_sectors = _sysparam_info.region_size / sdk_flashchip.sector_size; - debug(1, "compacting region (current size %d, expect to recover %d%s bytes)...", _sysparam_info.end_addr - _sysparam_info.cur_base, ctx->compactable, (ctx->unused_keys > 0) ? "+ (unused keys present)" : ""); + debug(1, "compacting region (current size %d, expect to recover %d%s bytes)...", _sysparam_info.end_addr - _sysparam_info.cur_base, ctx ? ctx->compactable : 0, (ctx && ctx->unused_keys > 0) ? "+ (unused keys present)" : ""); status = _format_region(new_base, num_sectors); if (status < 0) return status; status = sysparam_iter_start(&iter); @@ -442,7 +442,7 @@ static sysparam_status_t _compact_params(struct sysparam_context *ctx, int *key_ if (status < 0) break; addr += ENTRY_SIZE(iter.key_len); - if ((iter.ctx->entry.idflags & ENTRY_MASK_ID) == *key_id) { + if (key_id && (iter.ctx->entry.idflags & ENTRY_MASK_ID) == *key_id) { // Update key_id to have the correct id for the compacted result *key_id = current_key_id; // Don't copy the old value, since we'll just be deleting it @@ -476,10 +476,12 @@ static sysparam_status_t _compact_params(struct sysparam_context *ctx, int *key_ _sysparam_info.end_addr = addr; _sysparam_info.force_compact = false; - // Fix up ctx so it doesn't point to invalid stuff - memset(ctx, 0, sizeof(*ctx)); - ctx->addr = addr; - ctx->max_key_id = current_key_id; + if (ctx) { + // Fix up ctx so it doesn't point to invalid stuff + memset(ctx, 0, sizeof(*ctx)); + ctx->addr = addr; + ctx->max_key_id = current_key_id; + } debug(1, "done compacting (current size %d)", _sysparam_info.end_addr - _sysparam_info.cur_base); @@ -634,6 +636,20 @@ sysparam_status_t sysparam_get_info(uint32_t *base_addr, uint32_t *num_sectors) return SYSPARAM_OK; } +sysparam_status_t sysparam_compact() { + xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); + sysparam_status_t status; + + if (_sysparam_info.cur_base) { + status = _compact_params(NULL, NULL); + } else { + status = SYSPARAM_ERR_NOINIT; + } + + xSemaphoreGive(_sysparam_info.sem); + return status; +} + sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t *actual_length, bool *is_binary) { struct sysparam_context ctx; sysparam_status_t status; diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index a959348..0b58efd 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -31,6 +31,7 @@ void usage(void) { " = -- Set to text \n" " : -- Set to binary value represented as hex\n" " dump -- Show all currently set keys/values\n" + " compact -- Compact the sysparam area\n" " reformat -- Reinitialize (clear) the sysparam area\n" " echo-off -- Disable input echo\n" " echo-on -- Enable input echo\n" @@ -211,6 +212,9 @@ void sysparam_editor_task(void *pvParameters) { } else if (!strcmp(cmd_buffer, "dump")) { printf("Dumping all params:\n"); status = dump_params(); + } else if (!strcmp(cmd_buffer, "compact")) { + printf("Compacting...\n"); + status = sysparam_compact(); } else if (!strcmp(cmd_buffer, "reformat")) { printf("Re-initializing region...\n"); status = sysparam_create_area(base_addr, num_sectors, true); From 3ea18e74da1cc84f09c64ce61f2b5f1ee123fb96 Mon Sep 17 00:00:00 2001 From: sheinz Date: Fri, 25 Nov 2016 21:42:50 +0200 Subject: [PATCH 122/349] ds18b20 fix for temperature below zero --- extras/ds18b20/ds18b20.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/extras/ds18b20/ds18b20.c b/extras/ds18b20/ds18b20.c index 36449d7..e62011d 100644 --- a/extras/ds18b20/ds18b20.c +++ b/extras/ds18b20/ds18b20.c @@ -33,7 +33,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { uint8_t sensor_id = 0; onewire_search_start(&search); - + while ((addr = onewire_search_next(&search, pin)) != ONEWIRE_NONE) { uint8_t crc = onewire_crc8((uint8_t *)&addr, 7); if (crc != (addr >> 56)){ @@ -44,10 +44,10 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { onewire_reset(pin); onewire_select(pin, addr); onewire_write(pin, DS18B20_CONVERT_T); - + onewire_power(pin); vTaskDelay(750 / portTICK_PERIOD_MS); - + onewire_reset(pin); onewire_select(pin, addr); onewire_write(pin, DS18B20_READ_SCRATCHPAD); @@ -57,7 +57,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { for (int k=0;k<9;k++){ get[k]=onewire_read(pin); } - + //debug("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); crc = onewire_crc8(get, 8); @@ -69,7 +69,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { uint8_t temp_msb = get[1]; // Sign byte + lsbit uint8_t temp_lsb = get[0]; // Temp data plus lsb uint16_t temp = temp_msb << 8 | temp_lsb; - + float temperature; temperature = (temp * 625.0)/10000; @@ -82,7 +82,7 @@ uint8_t ds18b20_read_all(uint8_t pin, ds_sensor_t *result) { } float ds18b20_read_single(uint8_t pin) { - + onewire_reset(pin); onewire_skip_rom(pin); onewire_write(pin, DS18B20_CONVERT_T); @@ -93,13 +93,13 @@ float ds18b20_read_single(uint8_t pin) { onewire_reset(pin); onewire_skip_rom(pin); onewire_write(pin, DS18B20_READ_SCRATCHPAD); - + uint8_t get[10]; for (int k=0;k<9;k++){ get[k]=onewire_read(pin); } - + //debug("\n ScratchPAD DATA = %X %X %X %X %X %X %X %X %X\n",get[8],get[7],get[6],get[5],get[4],get[3],get[2],get[1],get[0]); uint8_t crc = onewire_crc8(get, 8); @@ -110,9 +110,9 @@ float ds18b20_read_single(uint8_t pin) { uint8_t temp_msb = get[1]; // Sign byte + lsbit uint8_t temp_lsb = get[0]; // Temp data plus lsb - + uint16_t temp = temp_msb << 8 | temp_lsb; - + float temperature; temperature = (temp * 625.0)/10000; @@ -157,7 +157,7 @@ bool ds18b20_read_scratchpad(int pin, ds18b20_addr_t addr, uint8_t *buffer) { onewire_select(pin, addr); } onewire_write(pin, DS18B20_READ_SCRATCHPAD); - + for (int i = 0; i < 8; i++) { buffer[i] = onewire_read(pin); } @@ -174,7 +174,7 @@ bool ds18b20_read_scratchpad(int pin, ds18b20_addr_t addr, uint8_t *buffer) { float ds18b20_read_temperature(int pin, ds18b20_addr_t addr) { uint8_t scratchpad[8]; - int temp; + int16_t temp; if (!ds18b20_read_scratchpad(pin, addr, scratchpad)) { return NAN; From 71bce674a07087032ee1c211ceebc5417e006473 Mon Sep 17 00:00:00 2001 From: lilian Date: Sat, 26 Nov 2016 12:19:53 +0100 Subject: [PATCH 123/349] Spi features --- core/esp_spi.c | 34 +++++++++ core/include/esp/spi.h | 132 +++++++++++++++++++++++++++++++++++ examples/spi_test/Makefile | 3 + examples/spi_test/spi_test.c | 64 +++++++++++++++++ 4 files changed, 233 insertions(+) create mode 100644 examples/spi_test/Makefile create mode 100644 examples/spi_test/spi_test.c diff --git a/core/esp_spi.c b/core/esp_spi.c index ab33ea4..7a4c359 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -27,6 +27,7 @@ #define _SPI1_FUNC IOMUX_FUNC(2) #define _SPI_BUF_SIZE 64 +#define __min(a,b) ((a > b) ? (b):(a)) static bool _minimal_pins[2] = {false, false}; @@ -244,3 +245,36 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len return len; } + +static void _repeat_send(uint8_t bus, uint32_t* dword,int32_t* repeats,spi_word_size_t size) +{ + uint8_t i = 0 ; + while(*repeats > 0) + { + uint16_t bytes_to_transfer = __min(*repeats * size , _SPI_BUF_SIZE); + _wait(bus); + _set_size(bus,bytes_to_transfer); + for(i = 0; i < (bytes_to_transfer + 3) / 4;i++) + SPI(bus).W[i] = *dword; //need test with memcpy ! + _start(bus); + *repeats -= (bytes_to_transfer / size ) ; + } + _wait(bus); +} + +void spi_repeat_send_8(uint8_t bus, uint8_t data,int32_t repeats) +{ + uint32_t dword = data << 24 | data << 16 | data << 8 | data; + _repeat_send(bus,&dword,&repeats, SPI_8BIT); +} + +void spi_repeat_send_16(uint8_t bus, uint16_t data,int32_t repeats) +{ + uint32_t dword = data << 16 | data; + _repeat_send(bus,&dword,&repeats, SPI_16BIT); +} + +void spi_repeat_send_32(uint8_t bus, uint32_t data,int32_t repeats) +{ + _repeat_send(bus,&data,&repeats, SPI_32BIT); +} diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index b3bc629..9c0e52a 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -36,6 +36,15 @@ #define SPI_FREQ_DIV_40M SPI_GET_FREQ_DIV(1, 2) ///< 40MHz #define SPI_FREQ_DIV_80M SPI_GET_FREQ_DIV(1, 1) ///< 80MHz +/* + * Possible Data Structure of SPI Transaction + * + * [COMMAND]+[ADDRESS]+[DataOUT]+[DUMMYBITS]+[DataIN] + * + * [COMMAND]+[ADDRESS]+[DUMMYBITS]+[DataOUT] + * + */ + #ifdef __cplusplus extern "C" { @@ -265,6 +274,129 @@ uint32_t spi_transfer_32(uint8_t bus, uint32_t data); */ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len, spi_word_size_t word_size); +/** + * \brief Add permanent command bits when transfert data over SPI + * Example: + * + * spi_set_command(1,1,0x01); // Set one command bit to 1 + * for (uint8_t i = 0 ; i < x ; i++ ) { + * spi_transfer_8(1,0x55); // Send 1 bit command + 8 bits data x times + * } + * spi_clear_command(1); // Clear command + * spi_transfer_8(1,0x55); // Send 8 bits data + * + * \param bus Bus ID: 0 - system, 1 - user + * \param bits Number of bits (max: 16). + * \param data Command to send for each transfert. + */ +static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) +{ + if(!bits) return ; + SPI(bus).USER0 |= SPI_USER0_COMMAND ; //enable COMMAND function in SPI module + uint16_t command = data << (16-bits); //align command data to high bits + command = ((command>>8)&0xff) | ((command<<8)&0xff00); //swap byte order + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits); + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command); +} + +/** + * \brief Add permanent address bits when transfert data over SPI + * Example: + * + * spi_set_address(1,8,0x45); // Set one address byte to 0x45 + * for (uint8_t i = 0 ; i < x ; i++ ) { + * spi_transfer_16(1,0xC584); // Send 16 bits address + 16 bits data x times + * } + * spi_clear_address(1); // Clear command + * spi_transfer_16(1,0x55); // Send 16 bits data + * + * \param bus Bus ID: 0 - system, 1 - user + * \param bits Number of bits (max: 32). + * \param data Address to send for each transfert. + */ +static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) +{ + if(!bits) return ; + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); + SPI(bus).USER0 |= SPI_USER0_ADDR ; //enable ADDRess function in SPI module + SPI(bus).ADDR = data<<(32-bits) ; //align address data to high bits +} + +/** + * \brief Add permanent dummy bits when transfert data over SPI + * Example: + * + * spi_set_dummy_bits(1,4,false); // Set 4 dummy bit before Dout + * for (uint8_t i = 0 ; i < x ; i++ ) { + * spi_transfer_16(1,0xC584); // Send 4 bits dummy + 16 bits Dout x times + * } + * spi_set_dummy_bits(1,4,true); // Set 4 dummy bit between Dout and Din + * spi_transfer_8(1,0x55); // Send 8 bits Dout + 4 bits dummy + 8 bits Din + * + * \param bus Bus ID: 0 - system, 1 - user + * \param bits Number of bits + * \param pos Address to send for each transfert. + */ +static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits,bool pos) +{ + if(!bits) return ; + if(pos) { SPI(bus).USER0 |= SPI_USER0_MISO; } // Dummy bit will be between Dout and Din data if set + SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); +} + +/** + * \brief Clear adress Bits + * \param bus Bus ID: 0 - system, 1 - user + */ +static inline void spi_clear_address(uint8_t bus) +{ + SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; +} + +/** + * \brief Clear command Bits + * \param bus Bus ID: 0 - system, 1 - user + */ + +static inline void spi_clear_command(uint8_t bus) +{ + SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; +} + +/** + * \brief Clear dummy Bits + * \param bus Bus ID: 0 - system, 1 - user + */ +static inline void spi_clear_dummy(uint8_t bus) +{ + SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO ) ; +} + +/** + * \brief Send many 8 bits template over SPI + * \param bus Bus ID: 0 - system, 1 - user + * \param data Byte template (8 bits) + * \param repeats Copy byte number + */ +void spi_repeat_send_8(uint8_t bus, uint8_t data, int32_t repeats); + +/** + * \brief Send many 16 bits template over SPI + * \param bus Bus ID: 0 - system, 1 - user + * \param data Word template (16 bits) + * \param repeats Copy word number + */ +void spi_repeat_send_16(uint8_t bus, uint16_t data, int32_t repeats); + +/** + * \brief Send many 32 bits template over SPI + * \param bus Bus ID: 0 - system, 1 - user + * \param data Dualword template (32 bits) + * \param repeats Copy dword number + */ +void spi_repeat_send_32(uint8_t bus, uint32_t data, int32_t repeats); + #ifdef __cplusplus } #endif diff --git a/examples/spi_test/Makefile b/examples/spi_test/Makefile new file mode 100644 index 0000000..f28ce0c --- /dev/null +++ b/examples/spi_test/Makefile @@ -0,0 +1,3 @@ +# Simple makefile for simple example +PROGRAM=spi_test +include ../../common.mk diff --git a/examples/spi_test/spi_test.c b/examples/spi_test/spi_test.c new file mode 100644 index 0000000..a746ba2 --- /dev/null +++ b/examples/spi_test/spi_test.c @@ -0,0 +1,64 @@ +/* Example SPI transfert + * + * This sample code is in the public domain. + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp8266.h" +#include +#include "esp/spi.h" + +/* + * Possible Data Structure of SPI Transaction + * + * [COMMAND]+[ADDRESS]+[DataOUT]+[DUMMYBITS]+[DataIN] + * + * [COMMAND]+[ADDRESS]+[DUMMYBITS]+[DataOUT] + * + */ + + +void loop(void *pvParameters) +{ + uint32_t time = 0 ; // SPI transmission time + float avr_time = 0 ; // Average of SPI transmission + float u = 0 ; + + spi_init(1, SPI_MODE0, SPI_FREQ_DIV_1M, 1, SPI_LITTLE_ENDIAN, false); // init SPI module + + + while(1) { + + time = sdk_system_get_time(); + + spi_set_command(1,1,1) ; // Set one command bit to 1 + spi_set_address(1,4,8) ; // Set 4 address bits to 8 + spi_set_dummy_bits(1,4,false); // Set 4 dummy bit before Dout + + spi_repeat_send_16(1,0xC584,10); // Send 1 bit command + 4 bits address + 4 bits dummy + 160 bits data + + spi_clear_address(1); // remove address + spi_clear_command(1); // remove command + spi_clear_dummy(1); // remove dummy + + + time = sdk_system_get_time() -time ; + avr_time = ((avr_time * (float)u ) + (float)time)/((float)u+1.0) ; // compute average + u++; + if (u==100) { + u=0 ; + printf("Time: %f\n",avr_time); + } + vTaskDelay(100/portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + xTaskCreate(loop, "loop", 1024, NULL, 2, NULL); +} From f19fdc37be79368af9ab9ec15eaa4d09839eb358 Mon Sep 17 00:00:00 2001 From: lilian Date: Sat, 26 Nov 2016 12:26:42 +0100 Subject: [PATCH 124/349] adjustements --- core/include/esp/spi.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index 9c0e52a..d825cb1 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -337,12 +337,12 @@ static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) * \param bits Number of bits * \param pos Address to send for each transfert. */ -static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits,bool pos) +static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits, bool pos) { if(!bits) return ; if(pos) { SPI(bus).USER0 |= SPI_USER0_MISO; } // Dummy bit will be between Dout and Din data if set - SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits - SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); + SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); } /** From 20ab2176fb28bb20d5c62d36174748e4a98fe402 Mon Sep 17 00:00:00 2001 From: lilian Date: Sat, 26 Nov 2016 15:14:40 +0100 Subject: [PATCH 125/349] fix tab --- core/esp_spi.c | 34 ++++++++++++------------ core/include/esp/spi.h | 46 ++++++++++++++++----------------- examples/spi_test/spi_test.c | 50 ++++++++++++++++++------------------ 3 files changed, 65 insertions(+), 65 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 7a4c359..720da18 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -248,33 +248,33 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len static void _repeat_send(uint8_t bus, uint32_t* dword,int32_t* repeats,spi_word_size_t size) { - uint8_t i = 0 ; - while(*repeats > 0) - { - uint16_t bytes_to_transfer = __min(*repeats * size , _SPI_BUF_SIZE); - _wait(bus); - _set_size(bus,bytes_to_transfer); - for(i = 0; i < (bytes_to_transfer + 3) / 4;i++) - SPI(bus).W[i] = *dword; //need test with memcpy ! - _start(bus); - *repeats -= (bytes_to_transfer / size ) ; - } - _wait(bus); + uint8_t i = 0 ; + while(*repeats > 0) + { + uint16_t bytes_to_transfer = __min(*repeats * size , _SPI_BUF_SIZE); + _wait(bus); + _set_size(bus,bytes_to_transfer); + for(i = 0; i < (bytes_to_transfer + 3) / 4;i++) + SPI(bus).W[i] = *dword; //need test with memcpy ! + _start(bus); + *repeats -= (bytes_to_transfer / size ) ; + } + _wait(bus); } void spi_repeat_send_8(uint8_t bus, uint8_t data,int32_t repeats) { - uint32_t dword = data << 24 | data << 16 | data << 8 | data; - _repeat_send(bus,&dword,&repeats, SPI_8BIT); + uint32_t dword = data << 24 | data << 16 | data << 8 | data; + _repeat_send(bus,&dword,&repeats, SPI_8BIT); } void spi_repeat_send_16(uint8_t bus, uint16_t data,int32_t repeats) { - uint32_t dword = data << 16 | data; - _repeat_send(bus,&dword,&repeats, SPI_16BIT); + uint32_t dword = data << 16 | data; + _repeat_send(bus,&dword,&repeats, SPI_16BIT); } void spi_repeat_send_32(uint8_t bus, uint32_t data,int32_t repeats) { - _repeat_send(bus,&data,&repeats, SPI_32BIT); + _repeat_send(bus,&data,&repeats, SPI_32BIT); } diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index d825cb1..4b31144 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -186,7 +186,7 @@ void spi_set_frequency_div(uint8_t bus, uint32_t divider); inline uint32_t spi_get_frequency_div(uint8_t bus) { return (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) | - (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); + (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); } /** * \brief Get SPI bus frequency in Hz @@ -196,8 +196,8 @@ inline uint32_t spi_get_frequency_div(uint8_t bus) inline uint32_t spi_get_frequency_hz(uint8_t bus) { return APB_CLK_FREQ / - (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) / - (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); + (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) / + (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); } /** @@ -230,8 +230,8 @@ void spi_set_endianness(uint8_t bus, spi_endianness_t endianness); inline spi_endianness_t spi_get_endianness(uint8_t bus) { return SPI(bus).USER0 & (SPI_USER0_WR_BYTE_ORDER | SPI_USER0_RD_BYTE_ORDER) - ? SPI_BIG_ENDIAN - : SPI_LITTLE_ENDIAN; + ? SPI_BIG_ENDIAN + : SPI_LITTLE_ENDIAN; } /** @@ -291,12 +291,12 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len */ static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) { - if(!bits) return ; - SPI(bus).USER0 |= SPI_USER0_COMMAND ; //enable COMMAND function in SPI module - uint16_t command = data << (16-bits); //align command data to high bits - command = ((command>>8)&0xff) | ((command<<8)&0xff00); //swap byte order - SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits); - SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command); + if(!bits) return ; + SPI(bus).USER0 |= SPI_USER0_COMMAND ; //enable COMMAND function in SPI module + uint16_t command = data << (16-bits); //align command data to high bits + command = ((command>>8)&0xff) | ((command<<8)&0xff00); //swap byte order + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits); + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command); } /** @@ -316,10 +316,10 @@ static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) */ static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) { - if(!bits) return ; - SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); - SPI(bus).USER0 |= SPI_USER0_ADDR ; //enable ADDRess function in SPI module - SPI(bus).ADDR = data<<(32-bits) ; //align address data to high bits + if(!bits) return ; + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); + SPI(bus).USER0 |= SPI_USER0_ADDR ; //enable ADDRess function in SPI module + SPI(bus).ADDR = data<<(32-bits) ; //align address data to high bits } /** @@ -335,14 +335,14 @@ static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) * * \param bus Bus ID: 0 - system, 1 - user * \param bits Number of bits - * \param pos Address to send for each transfert. + * \param pos Position of dummy bit, between Dout and Din if true. */ static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits, bool pos) { - if(!bits) return ; - if(pos) { SPI(bus).USER0 |= SPI_USER0_MISO; } // Dummy bit will be between Dout and Din data if set - SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits - SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); + if(!bits) return ; + if(pos) { SPI(bus).USER0 |= SPI_USER0_MISO; } // Dummy bit will be between Dout and Din data if set + SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); } /** @@ -351,7 +351,7 @@ static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits, bool pos) */ static inline void spi_clear_address(uint8_t bus) { - SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; + SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; } /** @@ -361,7 +361,7 @@ static inline void spi_clear_address(uint8_t bus) static inline void spi_clear_command(uint8_t bus) { - SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; + SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; } /** @@ -370,7 +370,7 @@ static inline void spi_clear_command(uint8_t bus) */ static inline void spi_clear_dummy(uint8_t bus) { - SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO ) ; + SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); } /** diff --git a/examples/spi_test/spi_test.c b/examples/spi_test/spi_test.c index a746ba2..0baccc3 100644 --- a/examples/spi_test/spi_test.c +++ b/examples/spi_test/spi_test.c @@ -22,43 +22,43 @@ void loop(void *pvParameters) { - uint32_t time = 0 ; // SPI transmission time - float avr_time = 0 ; // Average of SPI transmission - float u = 0 ; + uint32_t time = 0 ; // SPI transmission time + float avr_time = 0 ; // Average of SPI transmission + float u = 0 ; - spi_init(1, SPI_MODE0, SPI_FREQ_DIV_1M, 1, SPI_LITTLE_ENDIAN, false); // init SPI module + spi_init(1, SPI_MODE0, SPI_FREQ_DIV_1M, 1, SPI_LITTLE_ENDIAN, false); // init SPI module - while(1) { + while(1) { - time = sdk_system_get_time(); + time = sdk_system_get_time(); - spi_set_command(1,1,1) ; // Set one command bit to 1 - spi_set_address(1,4,8) ; // Set 4 address bits to 8 - spi_set_dummy_bits(1,4,false); // Set 4 dummy bit before Dout + spi_set_command(1,1,1) ; // Set one command bit to 1 + spi_set_address(1,4,8) ; // Set 4 address bits to 8 + spi_set_dummy_bits(1,4,false); // Set 4 dummy bit before Dout - spi_repeat_send_16(1,0xC584,10); // Send 1 bit command + 4 bits address + 4 bits dummy + 160 bits data + spi_repeat_send_16(1,0xC584,10); // Send 1 bit command + 4 bits address + 4 bits dummy + 160 bits data - spi_clear_address(1); // remove address - spi_clear_command(1); // remove command - spi_clear_dummy(1); // remove dummy + spi_clear_address(1); // remove address + spi_clear_command(1); // remove command + spi_clear_dummy(1); // remove dummy - time = sdk_system_get_time() -time ; - avr_time = ((avr_time * (float)u ) + (float)time)/((float)u+1.0) ; // compute average - u++; - if (u==100) { - u=0 ; - printf("Time: %f\n",avr_time); - } - vTaskDelay(100/portTICK_PERIOD_MS); - } + time = sdk_system_get_time() -time ; + avr_time = ((avr_time * (float)u ) + (float)time)/((float)u+1.0) ; // compute average + u++; + if (u==100) { + u=0 ; + printf("Time: %f\n",avr_time); + } + vTaskDelay(100/portTICK_PERIOD_MS); + } } void user_init(void) { - uart_set_baud(0, 115200); - printf("SDK version:%s\n", sdk_system_get_sdk_version()); - xTaskCreate(loop, "loop", 1024, NULL, 2, NULL); + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + xTaskCreate(loop, "loop", 1024, NULL, 2, NULL); } From b807eefeaf1e1263647dc01d6d43d491ec4d509d Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Tue, 29 Nov 2016 04:57:22 +0600 Subject: [PATCH 126/349] SSD1306 OLED Display driver refactored (#290) * SSD1306 OLED Display driver SPI refactored: - SPI connection support - different display sizes support * I2C address added to device descriptor * Small fix --- .../{ssd1306_i2c => ssd1306_example}/Makefile | 0 examples/ssd1306_example/README.md | 3 + .../image.xbm | 0 examples/ssd1306_example/main.c | 96 ++++ examples/ssd1306_i2c/README.md | 3 - examples/ssd1306_i2c/ssd1306_i2c.c | 65 --- extras/ssd1306/README.md | 69 ++- extras/ssd1306/component.mk | 10 +- extras/ssd1306/config.h | 12 + extras/ssd1306/ssd1306.c | 494 ++++++++++-------- extras/ssd1306/ssd1306.h | 301 +++++++++-- 11 files changed, 710 insertions(+), 343 deletions(-) rename examples/{ssd1306_i2c => ssd1306_example}/Makefile (100%) create mode 100644 examples/ssd1306_example/README.md rename examples/{ssd1306_i2c => ssd1306_example}/image.xbm (100%) create mode 100644 examples/ssd1306_example/main.c delete mode 100644 examples/ssd1306_i2c/README.md delete mode 100644 examples/ssd1306_i2c/ssd1306_i2c.c create mode 100644 extras/ssd1306/config.h diff --git a/examples/ssd1306_i2c/Makefile b/examples/ssd1306_example/Makefile similarity index 100% rename from examples/ssd1306_i2c/Makefile rename to examples/ssd1306_example/Makefile diff --git a/examples/ssd1306_example/README.md b/examples/ssd1306_example/README.md new file mode 100644 index 0000000..9ffd1d5 --- /dev/null +++ b/examples/ssd1306_example/README.md @@ -0,0 +1,3 @@ +# SSD1306 I2C/SPI OLED LCD Example + +To run this example connect the SSD1306 OLED LCD and configure protocol, display size and pins in main.c file. diff --git a/examples/ssd1306_i2c/image.xbm b/examples/ssd1306_example/image.xbm similarity index 100% rename from examples/ssd1306_i2c/image.xbm rename to examples/ssd1306_example/image.xbm diff --git a/examples/ssd1306_example/main.c b/examples/ssd1306_example/main.c new file mode 100644 index 0000000..0238408 --- /dev/null +++ b/examples/ssd1306_example/main.c @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#include +#include +#include + +/* Remove this line if your display connected by SPI */ +#define I2C_CONNECTION + +#ifdef I2C_CONNECTION + #include +#endif + +#include "image.xbm" + +/* Change this according to you schematics and display size */ +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 64 + +#ifdef I2C_CONNECTION + #define PROTOCOL SSD1306_PROTO_I2C + #define ADDR SSD1306_I2C_ADDR_0 + #define SCL_PIN 5 + #define SDA_PIN 4 +#else + #define PROTOCOL SSD1306_PROTO_SPI4 + #define CS_PIN 5 + #define DC_PIN 4 +#endif + +/* Declare device descriptor */ +static const ssd1306_t dev = { + .protocol = PROTOCOL, +#ifdef I2C_CONNECTION + .addr = ADDR, +#else + .cs_pin = CS_PIN, + .dc_pin = DC_PIN, +#endif + .width = DISPLAY_WIDTH, + .height = DISPLAY_HEIGHT +}; + +/* Local frame buffer */ +static uint8_t buffer[DISPLAY_WIDTH * DISPLAY_HEIGHT / 8]; + +static void ssd1306_task(void *pvParameters) +{ + printf("%s: Started user interface task\n", __FUNCTION__); + vTaskDelay(1000/portTICK_PERIOD_MS); + + + if (ssd1306_load_xbm(&dev, image_bits, buffer)) + goto error_loop; + + ssd1306_set_whole_display_lighting(&dev, false); + bool fwd = false; + while (1) { + vTaskDelay(2000 / portTICK_PERIOD_MS); + printf("%s: still alive, flipping!\n", __FUNCTION__); + ssd1306_set_scan_direction_fwd(&dev, fwd); + fwd = !fwd; + } + +error_loop: + printf("%s: error while loading framebuffer into SSD1306\n", __func__); + for(;;){ + vTaskDelay(2000 / portTICK_PERIOD_MS); + printf("%s: error loop\n", __FUNCTION__); + } +} + +void user_init(void) +{ + // Setup HW + uart_set_baud(0, 115200); + + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + +#ifdef I2C_CONNECTION + i2c_init(SCL_PIN, SDA_PIN); +#endif + + while (ssd1306_init(&dev) != 0) + { + printf("%s: failed to init SSD1306 lcd\n", __func__); + vTaskDelay(1000/portTICK_PERIOD_MS); + } + + ssd1306_set_whole_display_lighting(&dev, true); + vTaskDelay(1000/portTICK_PERIOD_MS); + // Create user interface task + xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); +} diff --git a/examples/ssd1306_i2c/README.md b/examples/ssd1306_i2c/README.md deleted file mode 100644 index 9c75bb3..0000000 --- a/examples/ssd1306_i2c/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# I2C / SSD1306 OLED LCD Example - -To run this example connect the SSD1306 OLED LCD and configure SDA/SCL pins in ssd1306_i2c.c file. diff --git a/examples/ssd1306_i2c/ssd1306_i2c.c b/examples/ssd1306_i2c/ssd1306_i2c.c deleted file mode 100644 index 7dadfb4..0000000 --- a/examples/ssd1306_i2c/ssd1306_i2c.c +++ /dev/null @@ -1,65 +0,0 @@ -#include "espressif/esp_common.h" -#include "esp/uart.h" - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" - -#include - -#include "i2c/i2c.h" -#include "ssd1306/ssd1306.h" - -#include "image.xbm" - -/* Change this according to you schematics */ -#define SCL_PIN GPIO_ID_PIN((14)) -#define SDA_PIN GPIO_ID_PIN((12)) - -/* Local frame buffer */ -static uint8_t buffer[SSD1306_ROWS * SSD1306_COLS / 8]; - -static void ssd1306_task(void *pvParameters) -{ - printf("%s: Started user interface task\n", __FUNCTION__); - vTaskDelay(1000/portTICK_PERIOD_MS); - - - if (ssd1306_load_xbm(image_bits, buffer)) - goto error_loop; - - ssd1306_set_whole_display_lighting(false); - while (1) { - vTaskDelay(2000 / portTICK_PERIOD_MS); - printf("%s: steel alive\n", __FUNCTION__); - } - -error_loop: - printf("%s: error while loading framebuffer into SSD1306\n", __func__); - for(;;){ - vTaskDelay(2000 / portTICK_PERIOD_MS); - printf("%s: error loop\n", __FUNCTION__); - } -} - -void user_init(void) -{ - // Setup HW - uart_set_baud(0, 115200); - - printf("SDK version:%s\n", sdk_system_get_sdk_version()); - - i2c_init(SCL_PIN, SDA_PIN); - - if (ssd1306_init()){ - for (;;) { - printf("%s: failed to init SSD1306 lcd\n", __func__); - vTaskDelay(1000/portTICK_PERIOD_MS); - } - } - - ssd1306_set_whole_display_lighting(true); - vTaskDelay(1000/portTICK_PERIOD_MS); - // Create user interface task - xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); -} diff --git a/extras/ssd1306/README.md b/extras/ssd1306/README.md index cb283b9..f3a06e9 100644 --- a/extras/ssd1306/README.md +++ b/extras/ssd1306/README.md @@ -1,27 +1,80 @@ -# Driver for I2C SSD1306 128x64 OLED LCD +# Driver for SSD1306 OLED LCD This driver is written for usage with the ESP8266 and FreeRTOS ([esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos)). -### Usage +## Supported display sizes -Before using the SSD1306 LCD module, the function `i2c_init(SCL_PIN, SDA_PIN)` needs to be called to setup the I2C interface and then you must call ssd1306_init(). + - 128x64 + - 128x32 + - 128x16 + - 96x16 + +## Supported connection interfaces + +Currently supported two of them: I2C and SPI4. + +## Usage + +If Reset pin is accesible in your display module, connect it to the RESET pin of ESP8266. +If you don't do this, display RAM may be glitchy after the power lost/restore. + +### I2C protocol + +Before using the SSD1306 LCD module the function `i2c_init(SCL_PIN, SDA_PIN)` needs to be +called to setup the I2C interface and then you must call `ssd1306_init()`. #### Example -``` -#define SCL_PIN GPIO_ID_PIN(0) -#define SDA_PIN GPIO_ID_PIN(2) +```C +#define SCL_PIN 5 +#define SDA_PIN 4 +... + +static const ssd1306_t device = { + .protocol = SSD1306_PROTO_I2C, + .width = 128, + .height = 64 +}; + ... i2c_init(SCL_PIN, SDA_PIN); -if (ssd1306_init()) { -// An error occured, while performing SSD1306 init init (E.g device not found etc.) +if (ssd1306_init(&device)) { +// An error occured, while performing SSD1306 init (E.g device not found etc.) } // rest of the code ``` +### SPI4 protocol +This protocol MUCH faster than I2C but uses 2 additional GPIO pins (beside of HSPI CLK +and HSPI MOSI): Data/Command pin and Chip Select pin. +No additional function calls are required before `ssd1306_init()`. +#### Example + +```C +#define CS_PIN 5 +#define DC_PIN 4 + +... + +static const ssd1306_t device = { + .protocol = SSD1306_PROTO_SPI4, + .cs_pin = CS_PIN, + .dc_pin = DC_PIN, + .width = 128, + .height = 64 +}; + +... + +if (ssd1306_init(&device)) { +// An error occured, while performing SSD1306 init +} + +// rest of the code +``` diff --git a/extras/ssd1306/component.mk b/extras/ssd1306/component.mk index 7f93338..f12a292 100644 --- a/extras/ssd1306/component.mk +++ b/extras/ssd1306/component.mk @@ -3,7 +3,15 @@ # expected anyone using ssd1306 driver includes it as 'ssd1306/ssd1306.h' INC_DIRS += $(ssd1306_ROOT).. +# I2C support is on by default +SSD1306_I2C_SUPPORT ?= 1 +# SPI4 support is on by default +SSD1306_SPI4_SUPPORT ?= 1 + # args for passing into compile rule generation -ssd1306_SRC_DIR = $(ssd1306_ROOT) +ssd1306_SRC_DIR = $(ssd1306_ROOT) + +ssd1306_CFLAGS = -DSSD1306_I2C_SUPPORT=${SSD1306_I2C_SUPPORT} -DSSD1306_SPI4_SUPPORT=${SSD1306_SPI4_SUPPORT} $(CFLAGS) + $(eval $(call component_compile_rules,ssd1306)) diff --git a/extras/ssd1306/config.h b/extras/ssd1306/config.h new file mode 100644 index 0000000..bd622c3 --- /dev/null +++ b/extras/ssd1306/config.h @@ -0,0 +1,12 @@ +#ifndef _EXTRAS_SSD1306_CONFIG_H_ +#define _EXTRAS_SSD1306_CONFIG_H_ + +#ifndef SSD1306_I2C_SUPPORT +#define SSD1306_I2C_SUPPORT 1 +#endif + +#ifndef SSD1306_SPI4_SUPPORT +#define SSD1306_SPI4_SUPPORT 1 +#endif + +#endif /* _EXTRAS_SSD1306_CONFIG_H_ */ diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index 85f641f..06370a8 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -1,376 +1,406 @@ +/** + * SSD1306 OLED display driver for esp-open-rtos. + * + * Copyright (c) 2016 urx (https://github.com/urx), + * Ruslan V. Uss (https://github.com/UncleRus) + * + * MIT Licensed as described in the file LICENSE + * + * @todo Scrolling, fonts + */ +#include "ssd1306.h" #include -#include +#if (SSD1306_I2C_SUPPORT) + #include +#endif +#if (SSD1306_SPI4_SUPPORT) + #include +#endif +#include #include #include -#include "ssd1306.h" + +#define SPI_BUS 1 + +//#define SSD1306_DEBUG /* SSD1306 commands */ -#define SSD1306_SET_MEM_ADDR_MODE (0x20) -#define SSD1306_ADDR_MODE_HORIZ (0x0) -#define SSD1306_ADDR_MODE_VERT (0x1) -#define SSD1306_ADDR_MODE_PAGE (0x2) +#define SSD1306_SET_MEM_ADDR_MODE (0x20) -#define SSD1306_SET_COL_ADDR (0x21) -#define SSD1306_SET_PAGE_ADDR (0x22) -#define SSD1306_SET_DISP_START_LINE (0x40) -#define SSD1306_SET_CONTRAST (0x81) -#define SSD1306_SET_SEGMENT_REMAP0 (0xA0) -#define SSD1306_SET_SEGMENT_REMAP1 (0xA1) -#define SSD1306_SET_ENTIRE_DISP_ON (0xA5) -#define SSD1306_SET_ENTIRE_DISP_OFF (0xA4) -#define SSD1306_SET_INVERSION_OFF (0xA6) -#define SSD1306_SET_INVERSION_ON (0xA7) +#define SSD1306_SET_COL_ADDR (0x21) +#define SSD1306_SET_PAGE_ADDR (0x22) +#define SSD1306_SET_DISP_START_LINE (0x40) +#define SSD1306_SET_CONTRAST (0x81) +#define SSD1306_SET_SEGMENT_REMAP0 (0xA0) +#define SSD1306_SET_SEGMENT_REMAP1 (0xA1) +#define SSD1306_SET_ENTIRE_DISP_ON (0xA5) +#define SSD1306_SET_ENTIRE_DISP_OFF (0xA4) +#define SSD1306_SET_INVERSION_OFF (0xA6) +#define SSD1306_SET_INVERSION_ON (0xA7) -#define SSD1306_SET_MUX_RATIO (0xA8) -#define SSD1306_MUX_RATIO_MASK (0x3F) -#define SSD1306_SET_DISPLAY_OFF (0xAE) -#define SSD1306_SET_DISPLAY_ON (0xAF) -#define SSD1306_SET_SCAN_DIR_FWD (0xC0) -#define SSD1306_SET_SCAN_DIR_BWD (0xC8) -#define SSD1306_SET_DISPLAY_OFFSET (0xD3) -#define SSD1306_SET_OSC_FREQ (0xD5) -#define SSD1306_SET_PRE_CHRG_PER (0xD9) +#define SSD1306_SET_MUX_RATIO (0xA8) +#define SSD1306_MUX_RATIO_MASK (0x3F) +#define SSD1306_SET_DISPLAY_OFF (0xAE) +#define SSD1306_SET_DISPLAY_ON (0xAF) +#define SSD1306_SET_SCAN_DIR_FWD (0xC0) +#define SSD1306_SET_SCAN_DIR_BWD (0xC8) +#define SSD1306_SET_DISPLAY_OFFSET (0xD3) +#define SSD1306_SET_OSC_FREQ (0xD5) +#define SSD1306_SET_PRE_CHRG_PER (0xD9) -#define SSD1306_SET_COM_PINS_HW_CFG (0xDA) -#define SSD1306_COM_PINS_HW_CFG_MASK (0x32) -#define SSD1306_SEQ_COM_PINS_CFG (0x02) -#define SSD1306_ALT_COM_PINS_CFG (0x12) -#define SSD1306_COM_LR_REMAP_OFF (0x02) -#define SSD1306_COM_LR_REMAP_ON (0x22) +#define SSD1306_SET_COM_PINS_HW_CFG (0xDA) +#define SSD1306_COM_PINS_HW_CFG_MASK (0x32) +#define SSD1306_SEQ_COM_PINS_CFG (0x02) +#define SSD1306_ALT_COM_PINS_CFG (0x12) +#define SSD1306_COM_LR_REMAP_OFF (0x02) +#define SSD1306_COM_LR_REMAP_ON (0x22) -#define SSD1306_SET_DESEL_LVL (0xDB) -#define SSD1306_SET_NOP (0xE3) +#define SSD1306_SET_DESEL_LVL (0xDB) +#define SSD1306_SET_NOP (0xE3) -#define SSD1306_SET_CHARGE_PUMP (0x8D) -#define SSD1306_CHARGE_PUMP_EN (0x14) -#define SSD1306_CHARGE_PUMP_DIS (0x10) +#define SSD1306_SET_CHARGE_PUMP (0x8D) +#define SSD1306_CHARGE_PUMP_EN (0x14) +#define SSD1306_CHARGE_PUMP_DIS (0x10) #ifdef SSD1306_DEBUG -#define debug(fmt, ...) printf("%s" fmt "\n", "SSD1306", ## __VA_ARGS__); +#define debug(fmt, ...) printf("%s: " fmt "\n", "SSD1306", ## __VA_ARGS__) #else #define debug(fmt, ...) #endif /* Issue a command to SSD1306 device - * format such follows: + * I2C proto format: * |S|Slave Address|W|ACK|0x00|Command|Ack|P| * * in case of two-bytes command here will be Data byte - * right after command byte. + * right after the command byte. */ -int ssd1306_command(uint8_t cmd) +int ssd1306_command(const ssd1306_t *dev, uint8_t cmd) { - i2c_start(); - if (!i2c_write(SSD1306_I2C_ADDR << 1)) { - debug("Error while xmitting I2C slave address\n"); - i2c_stop(); - return -EIO; + debug("Command: 0x%02x", cmd); + switch (dev->protocol) { +#if (SSD1306_I2C_SUPPORT) + case SSD1306_PROTO_I2C: + i2c_start(); + if (!i2c_write(dev->addr << 1)) { + debug("Error while xmitting I2C slave address\n"); + i2c_stop(); + return -EIO; + } + if (!i2c_write(0x00)) { + debug("Error while xmitting transmission type\n"); + i2c_stop(); + return -EIO; + } + if (!i2c_write(cmd)) { + debug("Error while xmitting command: 0x%02X\n", cmd); + i2c_stop(); + return -EIO; + } + i2c_stop(); + break; +#endif +#if (SSD1306_SPI4_SUPPORT) + case SSD1306_PROTO_SPI4: + gpio_write(dev->dc_pin, false); // command mode + gpio_write(dev->cs_pin, false); + spi_transfer_8(SPI_BUS, cmd); + gpio_write(dev->cs_pin, true); + break; +#endif + default: + debug("Unsupported protocol"); + return -EPROTONOSUPPORT; } - if (!i2c_write(0x00)) { - debug("Error while xmitting transmission type\n"); - i2c_stop(); - return -EIO; - } - - if (!i2c_write(cmd)) { - debug("Error while xmitting command: 0x%02X\n", cmd); - i2c_stop(); - return -EIO; - } - - i2c_stop(); return 0; } /* Perform default init routine according * to SSD1306 datasheet from adafruit.com */ -int ssd1306_init() +int ssd1306_init(const ssd1306_t *dev) { - if (!ssd1306_display_on(false) && - !ssd1306_set_osc_freq(0x80) && - !ssd1306_set_mux_ratio(SSD1306_ROWS-1) && - !ssd1306_set_display_offset(0x0) && - !ssd1306_set_display_start_line(0x0) && - !ssd1306_set_charge_pump_enabled(true) && - !ssd1306_set_mem_addr_mode(SSD1306_ADDR_MODE_HORIZ) && - !ssd1306_set_segment_remapping_enabled(false) && - !ssd1306_set_scan_direction_fwd(true) && - !ssd1306_set_com_pin_hw_config(SSD1306_ALT_COM_PINS_CFG) && - !ssd1306_set_contrast(0x9f) && - !ssd1306_set_precharge_period(0xf1) && - !ssd1306_set_deseltct_lvl(0x40) && - !ssd1306_set_whole_display_lighting(true) && - !ssd1306_set_inversion(false) && - !ssd1306_display_on(true)) { + uint8_t pin_cfg; + switch (dev->height) { + case 16: + case 32: + pin_cfg = 0x02; + break; + case 64: + pin_cfg = 0x12; + break; + default: + debug("Unsupported screen height"); + return -ENOTSUP; + } + + switch (dev->protocol) { +#if (SSD1306_I2C_SUPPORT) + case SSD1306_PROTO_I2C: + break; +#endif +#if (SSD1306_SPI4_SUPPORT) + case SSD1306_PROTO_SPI4: + gpio_enable(dev->cs_pin, GPIO_OUTPUT); + gpio_write(dev->cs_pin, true); + gpio_enable(dev->dc_pin, GPIO_OUTPUT); + spi_init(SPI_BUS, SPI_MODE0, SPI_FREQ_DIV_8M, true, SPI_LITTLE_ENDIAN, true); + break; +#endif + default: + debug("Unsupported protocol"); + return -EPROTONOSUPPORT; + } + + if (!ssd1306_display_on(dev, false) && + !ssd1306_set_osc_freq(dev, 0x80) && + !ssd1306_set_mux_ratio(dev, dev->height - 1) && + !ssd1306_set_display_offset(dev, 0x0) && + !ssd1306_set_display_start_line(dev, 0x0) && + !ssd1306_set_charge_pump_enabled(dev, true) && + !ssd1306_set_mem_addr_mode(dev, SSD1306_ADDR_MODE_HORIZONTAL) && + !ssd1306_set_segment_remapping_enabled(dev, false) && + !ssd1306_set_scan_direction_fwd(dev, true) && + !ssd1306_set_com_pin_hw_config(dev, pin_cfg) && + !ssd1306_set_contrast(dev, 0x9f) && + !ssd1306_set_precharge_period(dev, 0xf1) && + !ssd1306_set_deseltct_lvl(dev, 0x40) && + !ssd1306_set_whole_display_lighting(dev, true) && + !ssd1306_set_inversion(dev, false) && + !ssd1306_display_on(dev, true)) { return 0; } return -EIO; } -/* - * frame buffer of SSD1306 consists of 8 pages of 128 bits each - * -*/ -int ssd1306_load_frame_buffer(uint8_t buf[], uint16_t len) +int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) { uint16_t i; uint8_t j; - ssd1306_set_column_addr(0, 127); - ssd1306_set_page_addr(0, 7); + ssd1306_set_column_addr(dev, 0, dev->width - 1); + ssd1306_set_page_addr(dev, 0, dev->height / 8 - 1); - for (i=0; iwidth * dev->height / 8; - for (j=0;j<16;j++) { - if (!i2c_write(buf[i])) { - debug("Error while writing to GDDRAM\n"); + switch (dev->protocol) { +#if (SSD1306_I2C_SUPPORT) + case SSD1306_PROTO_I2C: + for (i = 0; i < len; i++) { + i2c_start(); + if (!i2c_write(dev->addr << 1)) { + debug("Error while xmitting I2C slave address\n"); + i2c_stop(); + return -EIO; + } + if (!i2c_write(0x40)) { + debug("Error while xmitting transmission type\n"); + i2c_stop(); + return -EIO; + } + + for (j = 0; j < 16; j++) { + if (!i2c_write(buf ? buf[i] : 0)) { + debug("Error while writing to GDDRAM\n"); + i2c_stop(); + return -EIO; + } + i++; + } + i--; i2c_stop(); - return -EIO; + taskYIELD(); } - i++; - } - i--; - i2c_stop(); - taskYIELD(); + break; +#endif +#if (SSD1306_SPI4_SUPPORT) + case SSD1306_PROTO_SPI4: + gpio_write(dev->dc_pin, true); // data mode + gpio_write(dev->cs_pin, false); + if (buf) + spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); + else + for (i = 0; i < len; i ++) { + spi_transfer_8(SPI_BUS, 0); + } + gpio_write(dev->cs_pin, true); + break; +#endif + default: + debug("Unsupported protocol"); + return -EPROTONOSUPPORT; } return 0; } -int ssd1306_clear_screen() +int ssd1306_display_on(const ssd1306_t *dev, bool on) { - uint16_t i = 0; - uint8_t j = 0; - - ssd1306_set_column_addr(0, 127); - ssd1306_set_page_addr(0, 7); - - while (i < (SSD1306_ROWS*SSD1306_COLS/8)) { - i2c_start(); - if (!i2c_write(SSD1306_I2C_ADDR << 1)) { - debug("Error while xmitting I2C slave address\n"); - i2c_stop(); - return -EIO; - } - if (!i2c_write(0x40)) { - debug("Error while xmitting transmission type\n"); - i2c_stop(); - return -EIO; - } - - /* write 16 bytes of data and then give resources to another task */ - while (j < 16) { - if (!i2c_write(0x0)) { - debug("Error while writing to GDDRAM\n"); - i2c_stop(); - return -EIO; - } - i++; - j++; - } - i--; - j = 0; - i2c_stop(); - taskYIELD(); - } - - return 0; + return ssd1306_command(dev, on ? SSD1306_SET_DISPLAY_ON : SSD1306_SET_DISPLAY_OFF); } -int ssd1306_display_on(bool on) +int ssd1306_set_display_start_line(const ssd1306_t *dev, uint8_t start) { - if (on) - return ssd1306_command(SSD1306_SET_DISPLAY_ON); + if (start > 63) + return -EINVAL; - return ssd1306_command(SSD1306_SET_DISPLAY_OFF); + return ssd1306_command(dev, SSD1306_SET_DISP_START_LINE | start); } -int ssd1306_set_display_start_line(uint8_t start) +int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset) { - return ssd1306_command(SSD1306_SET_DISP_START_LINE | start); -} - -int ssd1306_set_display_offset(uint8_t offset) -{ - int err = 0; - if ((err = ssd1306_command(SSD1306_SET_DISPLAY_OFFSET))) - return err; - - return ssd1306_command(offset); -} - -int ssd1306_set_charge_pump_enabled(bool enabled) -{ - int err = 0; - if ((err = ssd1306_command(SSD1306_SET_CHARGE_PUMP))) - return err; - - if (enabled) - return ssd1306_command(SSD1306_CHARGE_PUMP_EN); - - return ssd1306_command(SSD1306_CHARGE_PUMP_DIS); -} - -int ssd1306_set_mem_addr_mode(uint8_t mode) -{ - if (mode >= 0x3) + if (offset > 63) return -EINVAL; int err = 0; - if ((err = ssd1306_command(SSD1306_SET_MEM_ADDR_MODE))) + if ((err = ssd1306_command(dev, SSD1306_SET_DISPLAY_OFFSET))) return err; - return ssd1306_command(mode); + return ssd1306_command(dev, offset); } -int ssd1306_set_segment_remapping_enabled(bool on) -{ - if (on) - return ssd1306_command(SSD1306_SET_SEGMENT_REMAP1); - - return ssd1306_command(SSD1306_SET_SEGMENT_REMAP0); -} - -int ssd1306_set_scan_direction_fwd(bool fwd) -{ - if (fwd) - return ssd1306_command(SSD1306_SET_SCAN_DIR_FWD); - - return ssd1306_command(SSD1306_SET_SCAN_DIR_BWD); -} - -int ssd1306_set_com_pin_hw_config(uint8_t config) +int ssd1306_set_charge_pump_enabled(const ssd1306_t *dev, bool enabled) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_COM_PINS_HW_CFG))) + if ((err = ssd1306_command(dev, SSD1306_SET_CHARGE_PUMP))) return err; - return ssd1306_command(config & SSD1306_COM_PINS_HW_CFG_MASK); + return ssd1306_command(dev, enabled ? SSD1306_CHARGE_PUMP_EN : SSD1306_CHARGE_PUMP_DIS); } -int ssd1306_set_contrast(uint8_t contrast) +int ssd1306_set_mem_addr_mode(const ssd1306_t *dev, ssd1306_mem_addr_mode_t mode) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_CONTRAST))) + if ((err = ssd1306_command(dev, SSD1306_SET_MEM_ADDR_MODE))) return err; - return ssd1306_command(contrast); + return ssd1306_command(dev, mode); } -int ssd1306_set_inversion(bool on) +int ssd1306_set_segment_remapping_enabled(const ssd1306_t *dev, bool on) { - if (on) - return ssd1306_command(SSD1306_SET_INVERSION_ON); - - return ssd1306_command(SSD1306_SET_INVERSION_OFF); + return ssd1306_command(dev, on ? SSD1306_SET_SEGMENT_REMAP1 : SSD1306_SET_SEGMENT_REMAP0); } -int ssd1306_set_osc_freq(uint8_t osc_freq) +int ssd1306_set_scan_direction_fwd(const ssd1306_t *dev, bool fwd) +{ + return ssd1306_command(dev, fwd ? SSD1306_SET_SCAN_DIR_FWD : SSD1306_SET_SCAN_DIR_BWD); +} + +int ssd1306_set_com_pin_hw_config(const ssd1306_t *dev, uint8_t config) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_OSC_FREQ))) + if ((err = ssd1306_command(dev, SSD1306_SET_COM_PINS_HW_CFG))) return err; - return ssd1306_command(osc_freq); + return ssd1306_command(dev, config & SSD1306_COM_PINS_HW_CFG_MASK); } -int ssd1306_set_mux_ratio(uint8_t ratio) +int ssd1306_set_contrast(const ssd1306_t *dev, uint8_t contrast) { - if (ratio < 15) + int err = 0; + if ((err = ssd1306_command(dev, SSD1306_SET_CONTRAST))) + return err; + + return ssd1306_command(dev, contrast); +} + +int ssd1306_set_inversion(const ssd1306_t *dev, bool on) +{ + return ssd1306_command(dev, on ? SSD1306_SET_INVERSION_ON : SSD1306_SET_INVERSION_OFF); +} + +int ssd1306_set_osc_freq(const ssd1306_t *dev, uint8_t osc_freq) +{ + int err = 0; + if ((err = ssd1306_command(dev, SSD1306_SET_OSC_FREQ))) + return err; + + return ssd1306_command(dev, osc_freq); +} + +int ssd1306_set_mux_ratio(const ssd1306_t *dev, uint8_t ratio) +{ + if (ratio < 15 || ratio > 63) return -EINVAL; int err = 0; - if ((err = ssd1306_command(SSD1306_SET_MUX_RATIO))) + if ((err = ssd1306_command(dev, SSD1306_SET_MUX_RATIO))) return err; - return ssd1306_command(ratio); + return ssd1306_command(dev, ratio); } -int ssd1306_set_column_addr(uint8_t start, uint8_t stop) +int ssd1306_set_column_addr(const ssd1306_t *dev, uint8_t start, uint8_t stop) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_COL_ADDR))) + if ((err = ssd1306_command(dev, SSD1306_SET_COL_ADDR))) return err; - if ((err = ssd1306_command(start))) + if ((err = ssd1306_command(dev, start))) return err; - return ssd1306_command(stop); + return ssd1306_command(dev, stop); } -int ssd1306_set_page_addr(uint8_t start, uint8_t stop) +int ssd1306_set_page_addr(const ssd1306_t *dev, uint8_t start, uint8_t stop) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_PAGE_ADDR))) + if ((err = ssd1306_command(dev, SSD1306_SET_PAGE_ADDR))) return err; - if ((err = ssd1306_command(start))) + if ((err = ssd1306_command(dev, start))) return err; - return ssd1306_command(stop); + return ssd1306_command(dev, stop); } -int ssd1306_set_precharge_period(uint8_t prchrg) +int ssd1306_set_precharge_period(const ssd1306_t *dev, uint8_t prchrg) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_PRE_CHRG_PER))) + if ((err = ssd1306_command(dev, SSD1306_SET_PRE_CHRG_PER))) return err; - return ssd1306_command(prchrg); + return ssd1306_command(dev, prchrg); } -int ssd1306_set_deseltct_lvl(uint8_t lvl) +int ssd1306_set_deseltct_lvl(const ssd1306_t *dev, uint8_t lvl) { int err = 0; - if ((err = ssd1306_command(SSD1306_SET_DESEL_LVL))) + if ((err = ssd1306_command(dev, SSD1306_SET_DESEL_LVL))) return err; - return ssd1306_command(lvl); + return ssd1306_command(dev, lvl); } -int ssd1306_set_whole_display_lighting(bool light) +int ssd1306_set_whole_display_lighting(const ssd1306_t *dev, bool light) { - if (light) - return ssd1306_command(SSD1306_SET_ENTIRE_DISP_ON); - - return ssd1306_command(SSD1306_SET_ENTIRE_DISP_OFF); + return ssd1306_command(dev, light ? SSD1306_SET_ENTIRE_DISP_ON : SSD1306_SET_ENTIRE_DISP_OFF); } /* one byte of xbm - 8 dots in line of picture source * one byte of fb - 8 rows for 1 column of screen */ -int ssd1306_load_xbm(uint8_t *xbm, uint8_t *fb) +int ssd1306_load_xbm(const ssd1306_t *dev, uint8_t *xbm, uint8_t *fb) { uint8_t bit = 0; int row = 0; int column = 0; - for (row = 0; row < SSD1306_ROWS; row ++) { - for (column = 0; column < SSD1306_COLS/8; column++) { + for (row = 0; row < dev->height; row ++) { + for (column = 0; column < dev->width / 8; column++) { uint16_t xbm_offset = row * 16 + column; for (bit = 0; bit < 8; bit++) { if (*(xbm + xbm_offset) & 1 << bit) { - *(fb + SSD1306_COLS*(row/8)+column*8+bit) |= 1 << row%8; + *(fb + dev->width * (row / 8) + column * 8 + bit) |= 1 << row % 8; } } } } - return ssd1306_load_frame_buffer(fb, SSD1306_ROWS*SSD1306_COLS/8); + return ssd1306_load_frame_buffer(dev, fb); } diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index 933ceae..b4309f9 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -1,3 +1,11 @@ +/** + * SSD1306 OLED display driver for esp-open-rtos. + * + * Copyright (c) 2016 urx (https://github.com/urx), + * Ruslan V. Uss (https://github.com/UncleRus) + * + * MIT Licensed as described in the file LICENSE + */ #ifndef _SSD1306__H_ #define _SSD1306__H_ @@ -5,46 +13,271 @@ #include #include +#include "config.h" + // shifted -#define SSD1306_I2C_ADDR (0x3C) +#if (SSD1306_I2C_SUPPORT) + #define SSD1306_I2C_ADDR_0 (0x3C) + #define SSD1306_I2C_ADDR_1 (0x3D) +#endif -#define SSD1306_ROWS (64) -#define SSD1306_COLS (128) +#ifdef __cplusplus +extern "C" +{ +#endif -/* Issue single command on SSD1306 */ -int ssd1306_command(uint8_t cmd); - -/* Default init for SSD1306 */ -int ssd1306_init(); - -/* Load picture in xbm format into SSD1306 RAM - * xbm - pointer to xbm picture array - * fb - pointer fo local buffer for storing converted xbm image +/** + * I/O protocols */ -int ssd1306_load_xbm(uint8_t *xbm, uint8_t *fb); +typedef enum +{ + SSD1306_PROTO_I2C = 0, //!< I2C + SSD1306_PROTO_SPI4, //!< SPI 8 bits + D/C pin + SSD1306_PROTO_SPI3 //!< SPI 9 bits, currently not supported +} ssd1306_protocol_t; -/* Load local framebuffer into SSD1306 RAM */ -int ssd1306_load_frame_buffer(uint8_t buf[], uint16_t len); +/** + * Device descriptor + */ +typedef struct +{ + ssd1306_protocol_t protocol; +#if (SSD1306_I2C_SUPPORT) + uint8_t addr; //!< I2C address, used by SSD1306_PROTO_I2C +#endif +#if (SSD1306_SPI4_SUPPORT) + uint8_t cs_pin; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 + uint8_t dc_pin; //!< Data/Command GPIO pin, used by SSD1306_PROTO_SPI4 +#endif + uint8_t width; //!< Screen width, currently supported 128px, 96px + uint8_t height; //!< Screen height, currently supported 16px, 32px, 64px +} ssd1306_t; -/* Clears SSD1306 ram */ -int ssd1306_clear_screen(); +/** + * Addressing mode, see datasheet + */ +typedef enum +{ + SSD1306_ADDR_MODE_HORIZONTAL = 0, + SSD1306_ADDR_MODE_VERTICAL, + SSD1306_ADDR_MODE_PAGE +} ssd1306_mem_addr_mode_t; -int ssd1306_display_on(bool on); -int ssd1306_set_display_start_line(uint8_t start); -int ssd1306_set_display_offset(uint8_t offset); -int ssd1306_set_charge_pump_enabled(bool enabled); -int ssd1306_set_mem_addr_mode(uint8_t mode); -int ssd1306_set_segment_remapping_enabled(bool on); -int ssd1306_set_scan_direction_fwd(bool fwd); -int ssd1306_set_com_pin_hw_config(uint8_t config); -int ssd1306_set_contrast(uint8_t contrast); -int ssd1306_set_inversion(bool on); -int ssd1306_set_osc_freq(uint8_t osc_freq); -int ssd1306_set_mux_ratio(uint8_t ratio); -int ssd1306_set_column_addr(uint8_t start, uint8_t stop); -int ssd1306_set_page_addr(uint8_t start, uint8_t stop); -int ssd1306_set_precharge_period(uint8_t prchrg); -int ssd1306_set_deseltct_lvl(uint8_t lvl); -int ssd1306_set_whole_display_lighting(bool light); +/** + * Issue a single command on SSD1306. + * @param dev Pointer to device descriptor + * @param cmd Command + * @return Non-zero if error occured + */ +int ssd1306_command(const ssd1306_t *dev, uint8_t cmd); + +/** + * Default init for SSD1306 + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ssd1306_init(const ssd1306_t *dev); + +/** + * Load picture in xbm format into the SSD1306 RAM. + * @param dev Pointer to device descriptor + * @param xbm Pointer to xbm picture array + * @param fb Pointer to local buffer for storing converted xbm image + * @return Non-zero if error occured + */ +int ssd1306_load_xbm(const ssd1306_t *dev, uint8_t *xbm, uint8_t *fb); + +/** + * Load local framebuffer into the SSD1306 RAM. + * @param dev Pointer to device descriptor + * @param buf Pointer to framebuffer or NULL for clear RAM. Framebuffer size = width * height / 8 + * @return Non-zero if error occured + */ +int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]); + +/** + * Clear SSD1306 RAM. + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +inline int ssd1306_clear_screen(const ssd1306_t *dev) +{ + return ssd1306_load_frame_buffer(dev, NULL); +} + +/** + * Turn display on or off. + * @param dev Pointer to device descriptor + * @param on Turn on if true + * @return Non-zero if error occured + */ +int ssd1306_display_on(const ssd1306_t *dev, bool on); + +/** + * Set the Display Start Line register to determine starting address of + * display RAM, by selecting a value from 0 to 63. With value equal to 0, + * RAM row 0 is mapped to COM0. With value equal to 1, RAM row 1 is mapped + * to COM0 and so on. + * @param dev Pointer to device descriptor + * @param start Start line, 0..63 + * @return Non-zero if error occured + */ +int ssd1306_set_display_start_line(const ssd1306_t *dev, uint8_t start); + +/** + * Set display offset (see datasheet). + * @param dev Pointer to device descriptor + * @param offset Offset, 0..63 + * @return Non-zero if error occured + */ +int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset); + +/** + * Enable or disable the charge pump. See application note in datasheet. + * @param dev Pointer to device descriptor + * @param enabled Enable charge pump if true + * @return Non-zero if error occured + */ +int ssd1306_set_charge_pump_enabled(const ssd1306_t *dev, bool enabled); + +/** + * Set memory addressing mode. See datasheet. + * @param dev Pointer to device descriptor + * @param mode Addressing mode + * @return Non-zero if error occured + */ +int ssd1306_set_mem_addr_mode(const ssd1306_t *dev, ssd1306_mem_addr_mode_t mode); + +/** + * Change the mapping between the display data column address and the + * segment driver. See datasheet. + * @param dev Pointer to device descriptor + * @param on Enable segment remapping if true + * @return Non-zero if error occured + */ +int ssd1306_set_segment_remapping_enabled(const ssd1306_t *dev, bool on); + +/** + * Set the scan direction of the COM output, allowing layout flexibility + * in the OLED module design. Additionally, the display will show once + * this command is issued. For example, if this command is sent during + * normal display then the graphic display will be vertically flipped + * immediately. + * @param dev Pointer to device descriptor + * @param fwd Forward direction if true, backward otherwise + * @return Non-zero if error occured + */ +int ssd1306_set_scan_direction_fwd(const ssd1306_t *dev, bool fwd); + +/** + * Set the COM signals pin configuration to match the OLED panel + * hardware layout. See datasheet. + * @param dev Pointer to device descriptor + * @param config Sequential COM pin configuration + * @return Non-zero if error occured + */ +int ssd1306_set_com_pin_hw_config(const ssd1306_t *dev, uint8_t config); + +/** + * Set the display contrast. + * @param dev Pointer to device descriptor + * @param contrast Contrast increases as the value increases. + * @return Non-zero if error occured + */ +int ssd1306_set_contrast(const ssd1306_t *dev, uint8_t contrast); + +/** + * Set the display to be either normal or inverse. In normal display + * a RAM data of 1 indicates an “ON” pixel while in inverse display a + * RAM data of 0 indicates an “ON” pixel. + * @param dev Pointer to device descriptor + * @param on Inverse display if true + * @return Non-zero if error occured + */ +int ssd1306_set_inversion(const ssd1306_t *dev, bool on); + +/** + * Set the divide ratio of display clock and oscillator frequency. + * See datasheet. + * @param dev Pointer to device descriptor + * @param osc_freq Lower nibble - DCLK divide ratio, high + * nibble - oscillator frequency + * @return Non-zero if error occured + */ +int ssd1306_set_osc_freq(const ssd1306_t *dev, uint8_t osc_freq); + +/** + * Switch the default 63 multiplex mode to any multiplex ratio, + * ranging from 16 to 63. The output pads COM0~COM63 will be switched + * to the corresponding COM signal. + * @param dev Pointer to device descriptor + * @param ratio Multiplex ratio, 16..63 + * @return Non-zero if error occured + */ +int ssd1306_set_mux_ratio(const ssd1306_t *dev, uint8_t ratio); + +/** + * Specify column start address and end address of the display data RAM. + * This command also sets the column address pointer to column start + * address. This pointer is used to define the current read/write column + * address in graphic display data RAM. If horizontal address increment mode + * is enabled by ssd1306_set_mem_addr_mode(), after finishing read/write + * one column data, it is incremented automatically to the next column + * address. Whenever the column address pointer finishes accessing the + * end column address, it is reset back to start column address and the + * row address is incremented to the next row. + * @param dev Pointer to device descriptor + * @param start Start RAM address + * @param stop End RAM address + * @return Non-zero if error occured + */ +int ssd1306_set_column_addr(const ssd1306_t *dev, uint8_t start, uint8_t stop); + +/** + * Specify page start address and end address of the display data RAM. + * This command also sets the page address pointer to page start address. + * This pointer is used to define the current read/write page address in + * graphic display data RAM. If vertical address increment mode is enabled by + * ssd1306_set_mem_addr_mode(), after finishing read/write one page data, + * it is incremented automatically to the next page address. Whenever the page + * address pointer finishes accessing the end page address, it is reset back + * to start page address. + * @param dev Pointer to device descriptor + * @param start Start RAM address + * @param stop End RAM address + * @return Non-zero if error occured + */ +int ssd1306_set_page_addr(const ssd1306_t *dev, uint8_t start, uint8_t stop); + +/** + * Set the duration of the pre-charge period. The interval is counted in + * number of DCLK, where RESET equals 2 DCLKs. + * @param dev Pointer to device descriptor + * @param prchrg Pre-charge period + * @return Non-zero if error occured + */ +int ssd1306_set_precharge_period(const ssd1306_t *dev, uint8_t prchrg); + +/** + * Adjust the VCOMH regulator output. See datasheet. + * @param dev Pointer to device descriptor + * @param lvl Deselect level + * @return Non-zero if error occured + */ +int ssd1306_set_deseltct_lvl(const ssd1306_t *dev, uint8_t lvl); + +/** + * Force the entire display to be “ON”, regardless of the contents of + * the display data RAM. + * @param dev Pointer to device descriptor + * @param light Force the entire display to be “ON if true + * @return Non-zero if error occured + */ +int ssd1306_set_whole_display_lighting(const ssd1306_t *dev, bool light); + +#ifdef __cplusplus +extern "C" +} +#endif #endif // _SSD1306__H_ From a61af52d96fa0b511c097d1fa62fd60c1b2fd9a8 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Wed, 30 Nov 2016 00:58:24 +0500 Subject: [PATCH 127/349] More convenient GPIO interrupt handlers --- core/esp_gpio.c | 31 +++++++++++++++ core/esp_gpio_interrupts.c | 80 -------------------------------------- core/include/esp/gpio.h | 11 +----- examples/button/button.c | 7 ++-- 4 files changed, 37 insertions(+), 92 deletions(-) delete mode 100644 core/esp_gpio_interrupts.c diff --git a/core/esp_gpio.c b/core/esp_gpio.c index f6db1ef..bb8987f 100644 --- a/core/esp_gpio.c +++ b/core/esp_gpio.c @@ -56,3 +56,34 @@ void gpio_set_pullup(uint8_t gpio_num, bool enabled, bool enabled_during_sleep) iomux_set_pullup_flags(gpio_to_iomux(gpio_num), flags); } +static gpio_interrupt_handler_t gpio_interrupt_handlers[16] = { 0 }; + +static void IRAM _gpio_intr_internal_handler(void) +{ + uint32_t status_reg = GPIO.STATUS; + GPIO.STATUS_CLEAR = status_reg; + + uint8_t gpio_idx; + while((gpio_idx = __builtin_ffs(status_reg))) + { + gpio_idx--; + status_reg &= ~BIT(gpio_idx); + if(FIELD2VAL(GPIO_CONF_INTTYPE, GPIO.CONF[gpio_idx])) { + gpio_interrupt_handler_t handler = gpio_interrupt_handlers[gpio_idx]; + if (handler) { + handler(gpio_idx); + } + } + } +} + +void gpio_set_interrupt(const uint8_t gpio_num, const gpio_inttype_t int_type, gpio_interrupt_handler_t handler) +{ + gpio_interrupt_handlers[gpio_num] = handler; + + GPIO.CONF[gpio_num] = SET_FIELD(GPIO.CONF[gpio_num], GPIO_CONF_INTTYPE, int_type); + if(int_type != GPIO_INTTYPE_NONE && handler) { + _xt_isr_attach(INUM_GPIO, _gpio_intr_internal_handler); + _xt_isr_unmask(1< Date: Wed, 30 Nov 2016 02:54:07 +0500 Subject: [PATCH 128/349] gpio_interrupt_handler() can now be overriden --- core/esp_gpio.c | 6 +++--- core/include/esp/gpio.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/core/esp_gpio.c b/core/esp_gpio.c index bb8987f..a3011e1 100644 --- a/core/esp_gpio.c +++ b/core/esp_gpio.c @@ -58,7 +58,7 @@ void gpio_set_pullup(uint8_t gpio_num, bool enabled, bool enabled_during_sleep) static gpio_interrupt_handler_t gpio_interrupt_handlers[16] = { 0 }; -static void IRAM _gpio_intr_internal_handler(void) +void __attribute__((weak)) IRAM gpio_interrupt_handler(void) { uint32_t status_reg = GPIO.STATUS; GPIO.STATUS_CLEAR = status_reg; @@ -82,8 +82,8 @@ void gpio_set_interrupt(const uint8_t gpio_num, const gpio_inttype_t int_type, g gpio_interrupt_handlers[gpio_num] = handler; GPIO.CONF[gpio_num] = SET_FIELD(GPIO.CONF[gpio_num], GPIO_CONF_INTTYPE, int_type); - if(int_type != GPIO_INTTYPE_NONE && handler) { - _xt_isr_attach(INUM_GPIO, _gpio_intr_internal_handler); + if(int_type != GPIO_INTTYPE_NONE) { + _xt_isr_attach(INUM_GPIO, gpio_interrupt_handler); _xt_isr_unmask(1< Date: Wed, 30 Nov 2016 08:19:25 +0100 Subject: [PATCH 129/349] Fixes Bug(s) --- core/include/esp/spi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index 4b31144..ca11720 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -317,9 +317,9 @@ static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) { if(!bits) return ; - SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); SPI(bus).USER0 |= SPI_USER0_ADDR ; //enable ADDRess function in SPI module SPI(bus).ADDR = data<<(32-bits) ; //align address data to high bits + SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); } /** From d50294b5902f2f14f53149ff6f2da30e053f5f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oto=20Pet=C5=99=C3=ADk?= Date: Thu, 1 Dec 2016 20:03:57 +0100 Subject: [PATCH 130/349] Fix ignored offset in rtc_mem access. Fix sdk_system_rtc_mem_write and sdk_system_rtc_mem_read, the functions did not use the user-provided offsets to rtc_mem. Without using offset, rboot's rtcdata access, and its temp_rom handling were broken. --- open_esplibs/libmain/user_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 9fb2bf1..de38e6e 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -119,7 +119,7 @@ bool IRAM sdk_system_rtc_mem_write(uint32_t des_addr, void *src_addr, uint16_t s save_size = (save_size & ~3) + 4; } for (uint8_t i = 0; i < (save_size >> 2); i++) { - RTCMEM_SYSTEM[i] = src_buf[i]; + RTCMEM_SYSTEM[des_addr + i] = src_buf[i]; } return true; } @@ -140,7 +140,7 @@ bool IRAM sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t sa save_size = (save_size & ~3) + 4; } for (uint8_t i = 0; i < (save_size >> 2); i++) { - dest_buf[i] = RTCMEM_SYSTEM[i]; + dest_buf[i] = RTCMEM_SYSTEM[src_addr + i]; } return true; } From 762f73515bb1c181a57c1e60fe41a452fd2508ae Mon Sep 17 00:00:00 2001 From: lilian Date: Mon, 5 Dec 2016 09:03:02 +0100 Subject: [PATCH 131/349] Second bug. fix attempt. --- core/esp_spi.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/core/esp_spi.c b/core/esp_spi.c index 720da18..4bbe541 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -221,6 +221,26 @@ uint32_t spi_transfer_32(uint8_t bus, uint32_t data) return res; } +static void _rearm_extras_bit(uint8_t bus, bool arm) { + + if(!_minimal_pins[bus]) return ; + static uint8_t status = 0 ; + + if (arm) + { + if (status & 0x01) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; + if (status & 0x02) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; + if (status & 0x04) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); + status = 0 ; + } + else + { + if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status |= 1 ; } + if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status |= 2 ; } + if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status |= 4 ; } + } +} + size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len, spi_word_size_t word_size) { if (!out_data || !len) return 0; @@ -234,6 +254,7 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len size_t offset = i * _SPI_BUF_SIZE; _spi_buf_transfer(bus, (const uint8_t *)out_data + offset, in_data ? (uint8_t *)in_data + offset : NULL, buf_size, e, word_size); + if (blocks) _rearm_extras_bit(bus, false) ; } uint8_t tail = len % buf_size; @@ -243,6 +264,7 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len in_data ? (uint8_t *)in_data + blocks * _SPI_BUF_SIZE : NULL, tail, e, word_size); } + if (blocks) _rearm_extras_bit(bus, true) ; return len; } @@ -253,6 +275,7 @@ static void _repeat_send(uint8_t bus, uint32_t* dword,int32_t* repeats,spi_word_ { uint16_t bytes_to_transfer = __min(*repeats * size , _SPI_BUF_SIZE); _wait(bus); + if (i) _rearm_extras_bit(bus, false) ; _set_size(bus,bytes_to_transfer); for(i = 0; i < (bytes_to_transfer + 3) / 4;i++) SPI(bus).W[i] = *dword; //need test with memcpy ! @@ -260,6 +283,7 @@ static void _repeat_send(uint8_t bus, uint32_t* dword,int32_t* repeats,spi_word_ *repeats -= (bytes_to_transfer / size ) ; } _wait(bus); + _rearm_extras_bit(bus, true) ; } void spi_repeat_send_8(uint8_t bus, uint8_t data,int32_t repeats) From 47cd73ae028ef1613fe543de3ab217b73a5f4abd Mon Sep 17 00:00:00 2001 From: lilian Date: Mon, 5 Dec 2016 12:05:18 +0100 Subject: [PATCH 132/349] Fix status with bus. --- core/esp_spi.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 4bbe541..878b574 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -228,16 +228,16 @@ static void _rearm_extras_bit(uint8_t bus, bool arm) { if (arm) { - if (status & 0x01) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; - if (status & 0x02) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; - if (status & 0x04) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); - status = 0 ; + if (status & (0x01<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; + if (status & (0x02<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; + if (status & (0x04<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); + status &= ~(0x0F<<(4*bus)); } else { - if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status |= 1 ; } - if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status |= 2 ; } - if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status |= 4 ; } + if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status |= 0x01<<(4*bus) ; } + if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status |= 0x02<<(4*bus) ; } + if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status |= 0x04<<(4*bus) ; } } } From 8767a8a0a987c7d181530a7fb0afd9b2cf2d001c Mon Sep 17 00:00:00 2001 From: lilian Date: Mon, 5 Dec 2016 12:45:40 +0100 Subject: [PATCH 133/349] Readable option --- core/esp_spi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 878b574..0bda9d2 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -224,20 +224,20 @@ uint32_t spi_transfer_32(uint8_t bus, uint32_t data) static void _rearm_extras_bit(uint8_t bus, bool arm) { if(!_minimal_pins[bus]) return ; - static uint8_t status = 0 ; + static uint8_t status[2] ; if (arm) { - if (status & (0x01<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; - if (status & (0x02<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; - if (status & (0x04<<(4*bus))) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); - status &= ~(0x0F<<(4*bus)); + if (status[bus] & 0x01) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; + if (status[bus] & 0x02) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; + if (status[bus] & 0x04) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); + status[bus] = 0; } else { - if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status |= 0x01<<(4*bus) ; } - if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status |= 0x02<<(4*bus) ; } - if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status |= 0x04<<(4*bus) ; } + if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status[bus] |= 0x01 ; } + if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status[bus] |= 0x02 ; } + if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status[bus] |= 0x04 ; } } } From 7432c019f77effde05450cc33d21c24f8e9dd30d Mon Sep 17 00:00:00 2001 From: Zaltora Date: Tue, 13 Dec 2016 14:42:23 +0100 Subject: [PATCH 134/349] ssd1306 more functions (#310) SSD1306 2D drawing/text functions, new example, builtin fonts support --- examples/ssd1306_example/main.c | 30 +- examples/ssd1306_fps/Makefile | 24 + examples/ssd1306_fps/main.c | 185 + extras/fonts/LICENSE | 20 + extras/fonts/OFL.txt | 97 + extras/fonts/component.mk | 42 + extras/fonts/data/font_bitocra_4x7_ascii.h | 993 ++ .../fonts/data/font_bitocra_6x11_iso8859_1.h | 3169 ++++++ .../fonts/data/font_bitocra_7x13_iso8859_1.h | 3617 +++++++ extras/fonts/data/font_glcd_5x7.h | 2624 +++++ extras/fonts/data/font_roboto_10pt.h | 1630 +++ extras/fonts/data/font_roboto_8pt.h | 1348 +++ .../data/font_terminus_10x18_iso8859_1.h | 5389 ++++++++++ .../data/font_terminus_11x22_iso8859_1.h | 6409 ++++++++++++ .../data/font_terminus_12x24_iso8859_1.h | 6919 +++++++++++++ .../data/font_terminus_14x28_iso8859_1.h | 7939 +++++++++++++++ .../fonts/data/font_terminus_14x28_koi8_r.h | 7939 +++++++++++++++ .../data/font_terminus_16x32_iso8859_1.h | 8959 +++++++++++++++++ .../fonts/data/font_terminus_16x32_koi8_r.h | 8959 +++++++++++++++++ .../fonts/data/font_terminus_6x12_iso8859_1.h | 3859 +++++++ extras/fonts/data/font_terminus_6x12_koi8_r.h | 3859 +++++++ .../fonts/data/font_terminus_8x14_iso8859_1.h | 4369 ++++++++ extras/fonts/data/font_terminus_8x14_koi8_r.h | 4369 ++++++++ .../data/font_terminus_bold_10x18_iso8859_1.h | 5389 ++++++++++ .../data/font_terminus_bold_11x22_iso8859_1.h | 6409 ++++++++++++ .../data/font_terminus_bold_12x24_iso8859_1.h | 6919 +++++++++++++ .../data/font_terminus_bold_14x28_iso8859_1.h | 7939 +++++++++++++++ .../data/font_terminus_bold_14x28_koi8_r.h | 7939 +++++++++++++++ .../data/font_terminus_bold_16x32_iso8859_1.h | 8959 +++++++++++++++++ .../data/font_terminus_bold_16x32_koi8_r.h | 8959 +++++++++++++++++ .../data/font_terminus_bold_8x14_iso8859_1.h | 4369 ++++++++ .../data/font_terminus_bold_8x14_koi8_r.h | 4369 ++++++++ extras/fonts/defaults.mk | 39 + extras/fonts/fonts.c | 259 + extras/fonts/fonts.h | 105 + extras/fonts/tools/create_font.py | 90 + extras/fonts/tools/template.c | 51 + extras/ssd1306/ssd1306.c | 612 +- extras/ssd1306/ssd1306.h | 215 + 39 files changed, 145365 insertions(+), 5 deletions(-) create mode 100644 examples/ssd1306_fps/Makefile create mode 100644 examples/ssd1306_fps/main.c create mode 100644 extras/fonts/LICENSE create mode 100644 extras/fonts/OFL.txt create mode 100644 extras/fonts/component.mk create mode 100644 extras/fonts/data/font_bitocra_4x7_ascii.h create mode 100644 extras/fonts/data/font_bitocra_6x11_iso8859_1.h create mode 100644 extras/fonts/data/font_bitocra_7x13_iso8859_1.h create mode 100644 extras/fonts/data/font_glcd_5x7.h create mode 100644 extras/fonts/data/font_roboto_10pt.h create mode 100644 extras/fonts/data/font_roboto_8pt.h create mode 100644 extras/fonts/data/font_terminus_10x18_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_11x22_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_12x24_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_14x28_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_14x28_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_16x32_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_16x32_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_6x12_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_6x12_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_8x14_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_8x14_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_bold_10x18_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_11x22_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_12x24_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_14x28_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_14x28_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_bold_16x32_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_16x32_koi8_r.h create mode 100644 extras/fonts/data/font_terminus_bold_8x14_iso8859_1.h create mode 100644 extras/fonts/data/font_terminus_bold_8x14_koi8_r.h create mode 100644 extras/fonts/defaults.mk create mode 100644 extras/fonts/fonts.c create mode 100644 extras/fonts/fonts.h create mode 100755 extras/fonts/tools/create_font.py create mode 100644 extras/fonts/tools/template.c diff --git a/examples/ssd1306_example/main.c b/examples/ssd1306_example/main.c index 0238408..58781c5 100644 --- a/examples/ssd1306_example/main.c +++ b/examples/ssd1306_example/main.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -45,6 +46,11 @@ static const ssd1306_t dev = { /* Local frame buffer */ static uint8_t buffer[DISPLAY_WIDTH * DISPLAY_HEIGHT / 8]; +TimerHandle_t scrol_timer_handle = NULL; // Timer handler + + +#define SECOND (1000 / portTICK_PERIOD_MS) + static void ssd1306_task(void *pvParameters) { @@ -58,7 +64,7 @@ static void ssd1306_task(void *pvParameters) ssd1306_set_whole_display_lighting(&dev, false); bool fwd = false; while (1) { - vTaskDelay(2000 / portTICK_PERIOD_MS); + vTaskDelay(2*SECOND); printf("%s: still alive, flipping!\n", __FUNCTION__); ssd1306_set_scan_direction_fwd(&dev, fwd); fwd = !fwd; @@ -67,11 +73,22 @@ static void ssd1306_task(void *pvParameters) error_loop: printf("%s: error while loading framebuffer into SSD1306\n", __func__); for(;;){ - vTaskDelay(2000 / portTICK_PERIOD_MS); + vTaskDelay(2*SECOND); printf("%s: error loop\n", __FUNCTION__); } } +void scrolling_timer(TimerHandle_t h) +{ + static bool scrol = true ; + if(scrol) + ssd1306_start_scroll_hori(&dev, false, 0, 7, FRAME_25); + else + ssd1306_stop_scroll(&dev); + printf("Scrolling status: %s\n", (scrol)? "On" : "Off"); + scrol=!scrol ; +} + void user_init(void) { // Setup HW @@ -86,11 +103,16 @@ void user_init(void) while (ssd1306_init(&dev) != 0) { printf("%s: failed to init SSD1306 lcd\n", __func__); - vTaskDelay(1000/portTICK_PERIOD_MS); + vTaskDelay(SECOND); } ssd1306_set_whole_display_lighting(&dev, true); - vTaskDelay(1000/portTICK_PERIOD_MS); + vTaskDelay(SECOND); // Create user interface task xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); + + //Scrolling timer + scrol_timer_handle = xTimerCreate("fps_timer", 10*SECOND, pdTRUE, NULL, scrolling_timer); + xTimerStart(scrol_timer_handle, 0); + } diff --git a/examples/ssd1306_fps/Makefile b/examples/ssd1306_fps/Makefile new file mode 100644 index 0000000..4417c83 --- /dev/null +++ b/examples/ssd1306_fps/Makefile @@ -0,0 +1,24 @@ +PROGRAM = SSD1306_fps +EXTRA_COMPONENTS = extras/ssd1306 extras/i2c extras/fonts + +# include a lot of builtin fonts + +FONTS_GLCD_5X7 = 1 +FONTS_BITOCRA_4X7 = 1 +FONTS_BITOCRA_6X11 = 1 +FONTS_BITOCRA_7X13 = 1 +FONTS_TERMINUS_6X12_ISO8859_1 = 1 +FONTS_TERMINUS_8X14_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_8X14_ISO8859_1 = 1 +FONTS_TERMINUS_10X18_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_10X18_ISO8859_1 = 1 +FONTS_TERMINUS_11X22_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_11X22_ISO8859_1 = 1 +FONTS_TERMINUS_12X24_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_12X24_ISO8859_1 = 1 +FONTS_TERMINUS_14X28_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_14X28_ISO8859_1 = 1 +FONTS_TERMINUS_16X32_ISO8859_1 = 1 +FONTS_TERMINUS_BOLD_16X32_ISO8859_1 = 1 + +include ../../common.mk diff --git a/examples/ssd1306_fps/main.c b/examples/ssd1306_fps/main.c new file mode 100644 index 0000000..b35dbfb --- /dev/null +++ b/examples/ssd1306_fps/main.c @@ -0,0 +1,185 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#define LOAD_ICON_X 54 +#define LOAD_ICON_Y 42 +#define LOAD_ICON_SIZE 20 + +#define CIRCLE_COUNT_ICON_X 100 +#define CIRCLE_COUNT_ICON_Y 52 + +/* Remove this line if your display connected by SPI */ +#define I2C_CONNECTION + +#ifdef I2C_CONNECTION + #include +#endif +#include "fonts/fonts.h" + +/* Change this according to you schematics and display size */ +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 64 + +#ifdef I2C_CONNECTION + #define PROTOCOL SSD1306_PROTO_I2C + #define ADDR SSD1306_I2C_ADDR_0 + #define SCL_PIN 5 + #define SDA_PIN 4 +#else + #define PROTOCOL SSD1306_PROTO_SPI4 + #define CS_PIN 5 + #define DC_PIN 4 +#endif + +#define DEFAULT_FONT FONT_FACE_TERMINUS_6X12_ISO8859_1 + +/* Declare device descriptor */ +static const ssd1306_t dev = { + .protocol = PROTOCOL, +#ifdef I2C_CONNECTION + .addr = ADDR, +#else + .cs_pin = CS_PIN, + .dc_pin = DC_PIN, +#endif + .width = DISPLAY_WIDTH, + .height = DISPLAY_HEIGHT +}; + +/* Local frame buffer */ +static uint8_t buffer[DISPLAY_WIDTH * DISPLAY_HEIGHT / 8]; + +TimerHandle_t fps_timer_handle = NULL; // Timer handler +TimerHandle_t font_timer_handle = NULL; + +uint8_t frame_done = 0; // number of frame send. +uint8_t fps = 0; // image per second. + +const font_info_t *font = NULL; // current font +font_face_t font_face = 0; + +#define SECOND (1000 / portTICK_PERIOD_MS) + +static void ssd1306_task(void *pvParameters) +{ + printf("%s: Started user interface task\n", __FUNCTION__); + vTaskDelay(SECOND); + + ssd1306_set_whole_display_lighting(&dev, false); + + char text[20]; + uint8_t x0 = LOAD_ICON_X; + uint8_t y0 = LOAD_ICON_Y; + uint8_t x1 = LOAD_ICON_X + LOAD_ICON_SIZE; + uint8_t y1 = LOAD_ICON_Y + LOAD_ICON_SIZE; + uint16_t count = 0; + + while (1) { + + ssd1306_fill_rectangle(&dev, buffer, 0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT/2, OLED_COLOR_BLACK); + ssd1306_draw_string(&dev, buffer, font, 0, 0, "Hello, esp-open-rtos!", OLED_COLOR_WHITE, OLED_COLOR_BLACK); + sprintf(text, "FPS: %u ", fps); + ssd1306_draw_string(&dev, buffer, font_builtin_fonts[DEFAULT_FONT], 0, 45, text, OLED_COLOR_WHITE, OLED_COLOR_BLACK); + + // generate loading icon + ssd1306_draw_line(&dev, buffer, x0, y0, x1, y1, OLED_COLOR_BLACK); + if (x0 < (LOAD_ICON_X + LOAD_ICON_SIZE)) { + x0++; + x1--; + } + else if (y0 < (LOAD_ICON_Y + LOAD_ICON_SIZE)) { + y0++; + y1--; + } + else { + x0 = LOAD_ICON_X; + y0 = LOAD_ICON_Y; + x1 = LOAD_ICON_X + LOAD_ICON_SIZE; + y1 = LOAD_ICON_Y + LOAD_ICON_SIZE; + } + ssd1306_draw_line(&dev, buffer, x0, y0, x1, y1, OLED_COLOR_WHITE); + ssd1306_draw_rectangle(&dev, buffer, LOAD_ICON_X, LOAD_ICON_Y, + LOAD_ICON_SIZE + 1, LOAD_ICON_SIZE + 1, OLED_COLOR_WHITE); + + // generate circle counting + for (uint8_t i = 0; i < 10; i++) { + if ((count >> i) & 0x01) + ssd1306_draw_circle(&dev, buffer, CIRCLE_COUNT_ICON_X, CIRCLE_COUNT_ICON_Y, i, OLED_COLOR_BLACK); + } + + count = count == 0x03FF ? 0 : count + 1; + + for (uint8_t i = 0; i < 10; i++) { + if ((count>>i) & 0x01) + ssd1306_draw_circle(&dev,buffer, CIRCLE_COUNT_ICON_X, CIRCLE_COUNT_ICON_Y, i, OLED_COLOR_WHITE); + } + + if (ssd1306_load_frame_buffer(&dev, buffer)) + goto error_loop; + + frame_done++; + } + +error_loop: + printf("%s: error while loading framebuffer into SSD1306\n", __func__); + for (;;) { + vTaskDelay(2 * SECOND); + printf("%s: error loop\n", __FUNCTION__); + } +} + +void fps_timer(TimerHandle_t h) +{ + fps = frame_done; // Save number of frame already send to screen + frame_done = 0; +} + +void font_timer(TimerHandle_t h) +{ + do { + if (++font_face >= font_builtin_fonts_count) + font_face = 0; + font = font_builtin_fonts[font_face]; + } while (!font); + + printf("Selected builtin font %d\n", font_face); +} + +void user_init(void) +{ + //uncomment to test with CPU overclocked + //sdk_system_update_cpu_freq(160); + + // Setup HW + uart_set_baud(0, 115200); + + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + +#ifdef I2C_CONNECTION + i2c_init(SCL_PIN, SDA_PIN); +#endif + + while (ssd1306_init(&dev) != 0) { + printf("%s: failed to init SSD1306 lcd\n", __func__); + vTaskDelay(SECOND); + } + ssd1306_set_whole_display_lighting(&dev, true); + vTaskDelay(SECOND); + + font = font_builtin_fonts[font_face]; + + // Create user interface task + xTaskCreate(ssd1306_task, "ssd1306_task", 256, NULL, 2, NULL); + + fps_timer_handle = xTimerCreate("fps_timer", SECOND, pdTRUE, NULL, fps_timer); + xTimerStart(fps_timer_handle, 0); + + font_timer_handle = xTimerCreate("font_timer", 5 * SECOND, pdTRUE, NULL, font_timer); + xTimerStart(font_timer_handle, 0); +} diff --git a/extras/fonts/LICENSE b/extras/fonts/LICENSE new file mode 100644 index 0000000..5f9ee7d --- /dev/null +++ b/extras/fonts/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/extras/fonts/OFL.txt b/extras/fonts/OFL.txt new file mode 100644 index 0000000..f1a20ac --- /dev/null +++ b/extras/fonts/OFL.txt @@ -0,0 +1,97 @@ +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/extras/fonts/component.mk b/extras/fonts/component.mk new file mode 100644 index 0000000..b9d7ec4 --- /dev/null +++ b/extras/fonts/component.mk @@ -0,0 +1,42 @@ +# Component makefile for extras/fonts + +# expected anyone using this component includes it as 'fonts/fonts.h' +INC_DIRS += $(fonts_ROOT).. + +# args for passing into compile rule generation +fonts_SRC_DIR = $(fonts_ROOT) + +FONTS_DIR := $(dir $(lastword $(MAKEFILE_LIST))) + +# default builtin fonts +include $(FONTS_DIR)defaults.mk + +fonts_CFLAGS = $(CFLAGS) \ + -DFONTS_GLCD_5X7=$(FONTS_GLCD_5X7) \ + -DFONTS_ROBOTO_8PT=$(FONTS_ROBOTO_8PT) \ + -DFONTS_ROBOTO_10PT=$(FONTS_ROBOTO_10PT) \ + -DFONTS_BITOCRA_4X7=$(FONTS_BITOCRA_4X7) \ + -DFONTS_BITOCRA_6X11=$(FONTS_BITOCRA_6X11) \ + -DFONTS_BITOCRA_7X13=$(FONTS_BITOCRA_7X13) \ + -DFONTS_TERMINUS_6X12_ISO8859_1=$(FONTS_TERMINUS_6X12_ISO8859_1) \ + -DFONTS_TERMINUS_8X14_ISO8859_1=$(FONTS_TERMINUS_8X14_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_8X14_ISO8859_1=$(FONTS_TERMINUS_BOLD_8X14_ISO8859_1) \ + -DFONTS_TERMINUS_10X18_ISO8859_1=$(FONTS_TERMINUS_10X18_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_10X18_ISO8859_1=$(FONTS_TERMINUS_BOLD_10X18_ISO8859_1) \ + -DFONTS_TERMINUS_11X22_ISO8859_1=$(FONTS_TERMINUS_11X22_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_11X22_ISO8859_1=$(FONTS_TERMINUS_BOLD_11X22_ISO8859_1) \ + -DFONTS_TERMINUS_12X24_ISO8859_1=$(FONTS_TERMINUS_12X24_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_12X24_ISO8859_1=$(FONTS_TERMINUS_BOLD_12X24_ISO8859_1) \ + -DFONTS_TERMINUS_14X28_ISO8859_1=$(FONTS_TERMINUS_14X28_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_14X28_ISO8859_1=$(FONTS_TERMINUS_BOLD_14X28_ISO8859_1) \ + -DFONTS_TERMINUS_16X32_ISO8859_1=$(FONTS_TERMINUS_16X32_ISO8859_1) \ + -DFONTS_TERMINUS_BOLD_16X32_ISO8859_1=$(FONTS_TERMINUS_BOLD_16X32_ISO8859_1) \ + -DFONTS_TERMINUS_6X12_KOI8_R=$(FONTS_TERMINUS_6X12_KOI8_R) \ + -DFONTS_TERMINUS_8X14_KOI8_R=$(FONTS_TERMINUS_8X14_KOI8_R) \ + -DFONTS_TERMINUS_BOLD_8X14_KOI8_R=$(FONTS_TERMINUS_BOLD_8X14_KOI8_R) \ + -DFONTS_TERMINUS_14X28_KOI8_R=$(FONTS_TERMINUS_14X28_KOI8_R) \ + -DFONTS_TERMINUS_BOLD_14X28_KOI8_R=$(FONTS_TERMINUS_BOLD_14X28_KOI8_R) \ + -DFONTS_TERMINUS_16X32_KOI8_R=$(FONTS_TERMINUS_16X32_KOI8_R) \ + -DFONTS_TERMINUS_BOLD_16X32_KOI8_R=$(FONTS_TERMINUS_BOLD_16X32_KOI8_R) + +$(eval $(call component_compile_rules,fonts)) diff --git a/extras/fonts/data/font_bitocra_4x7_ascii.h b/extras/fonts/data/font_bitocra_4x7_ascii.h new file mode 100644 index 0000000..52e577b --- /dev/null +++ b/extras/fonts/data/font_bitocra_4x7_ascii.h @@ -0,0 +1,993 @@ +/** + * This file contains generated binary font data. + * + * Font: BitOCRA + * Size: 4x7 + * Charset: ASCII + * 96 characters (32..127) + * + * Copyright (c) 2011, Aaron Christianson (https://github.com/ninjaaron) + * Licensed under the OFL v1.1 + * + * Generated: Mon Dec 12 00:46:53 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_BITOCRA_4X7_ASCII_H_ +#define _EXTRAS_FONTS_FONT_BITOCRA_4X7_ASCII_H_ + +static const uint8_t _fonts_bitocra_4x7_ascii_bitmaps[] = { + + /* Index: 0x00, char: \x20, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x21, offset: 0x0007 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x02, char: \x22, offset: 0x000e */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x23, offset: 0x0015 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x24, offset: 0x001c */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + + /* Index: 0x05, char: \x25, offset: 0x0023 */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x26, offset: 0x002a */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x27, offset: 0x0031 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x28, offset: 0x0038 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + + /* Index: 0x09, char: \x29, offset: 0x003f */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + + /* Index: 0x0a, char: \x2a, offset: 0x0046 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x2b, offset: 0x004d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0c, char: \x2c, offset: 0x0054 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0d, char: \x2d, offset: 0x005b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x2e, offset: 0x0062 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x0f, char: \x2f, offset: 0x0069 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x10, char: \x30, offset: 0x0070 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x31, offset: 0x0077 */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x32, offset: 0x007e */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x33, offset: 0x0085 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x34, offset: 0x008c */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x15, char: \x35, offset: 0x0093 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x16, char: \x36, offset: 0x009a */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x37, offset: 0x00a1 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x18, char: \x38, offset: 0x00a8 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x19, char: \x39, offset: 0x00af */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x3a, offset: 0x00b6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x3b, offset: 0x00bd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + + /* Index: 0x1c, char: \x3c, offset: 0x00c4 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x3d, offset: 0x00cb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x3e, offset: 0x00d2 */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x3f, offset: 0x00d9 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + + /* Index: 0x20, char: \x40, offset: 0x00e0 */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x50, /* .#.#.... */ + 0xd0, /* ##.#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x41, offset: 0x00e7 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x42, offset: 0x00ee */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x43, offset: 0x00f5 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x24, char: \x44, offset: 0x00fc */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x45, offset: 0x0103 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x46, offset: 0x010a */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x47, offset: 0x0111 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x48, offset: 0x0118 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x49, offset: 0x011f */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x4a, offset: 0x0126 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x4b, offset: 0x012d */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x4c, offset: 0x0134 */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x4d, offset: 0x013b */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x4e, offset: 0x0142 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x4f, offset: 0x0149 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x50, offset: 0x0150 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x51, offset: 0x0157 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0x60, /* .##..... */ + + /* Index: 0x32, char: \x52, offset: 0x015e */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x53, offset: 0x0165 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x54, offset: 0x016c */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x55, offset: 0x0173 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x56, offset: 0x017a */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x57, offset: 0x0181 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x58, offset: 0x0188 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x59, offset: 0x018f */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x5a, offset: 0x0196 */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x5b, offset: 0x019d */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xe0, /* ###..... */ + + /* Index: 0x3c, char: \x5c, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x3d, char: \x5d, offset: 0x01ab */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + + /* Index: 0x3e, char: \x5e, offset: 0x01b2 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x5f, offset: 0x01b9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + + /* Index: 0x40, char: \x60, offset: 0x01c0 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x61, offset: 0x01c7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x62, offset: 0x01ce */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x63, offset: 0x01d5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x64, offset: 0x01dc */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x65, offset: 0x01e3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x66, offset: 0x01ea */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x67, offset: 0x01f1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + + /* Index: 0x48, char: \x68, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x69, offset: 0x01ff */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x6a, offset: 0x0206 */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + + /* Index: 0x4b, char: \x6b, offset: 0x020d */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x6c, offset: 0x0214 */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x6d, offset: 0x021b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x6e, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x6f, offset: 0x0229 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x70, offset: 0x0230 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x51, char: \x71, offset: 0x0237 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x52, char: \x72, offset: 0x023e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x73, offset: 0x0245 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x74, offset: 0x024c */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x75, offset: 0x0253 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x76, offset: 0x025a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x77, offset: 0x0261 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x78, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x79, offset: 0x026f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + + /* Index: 0x5a, char: \x7a, offset: 0x0276 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x7b, offset: 0x027d */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + + /* Index: 0x5c, char: \x7c, offset: 0x0284 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x7d, offset: 0x028b */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + + /* Index: 0x5e, char: \x7e, offset: 0x0292 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x7f, offset: 0x0299 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ +}; + +const font_char_desc_t _fonts_bitocra_4x7_ascii_descriptors[] = { + { 0x04, 0x0000 }, /* Index: 0x00, char: \x20 */ + { 0x04, 0x0007 }, /* Index: 0x01, char: \x21 */ + { 0x04, 0x000e }, /* Index: 0x02, char: \x22 */ + { 0x04, 0x0015 }, /* Index: 0x03, char: \x23 */ + { 0x04, 0x001c }, /* Index: 0x04, char: \x24 */ + { 0x04, 0x0023 }, /* Index: 0x05, char: \x25 */ + { 0x04, 0x002a }, /* Index: 0x06, char: \x26 */ + { 0x04, 0x0031 }, /* Index: 0x07, char: \x27 */ + { 0x04, 0x0038 }, /* Index: 0x08, char: \x28 */ + { 0x04, 0x003f }, /* Index: 0x09, char: \x29 */ + { 0x04, 0x0046 }, /* Index: 0x0a, char: \x2a */ + { 0x04, 0x004d }, /* Index: 0x0b, char: \x2b */ + { 0x04, 0x0054 }, /* Index: 0x0c, char: \x2c */ + { 0x04, 0x005b }, /* Index: 0x0d, char: \x2d */ + { 0x04, 0x0062 }, /* Index: 0x0e, char: \x2e */ + { 0x04, 0x0069 }, /* Index: 0x0f, char: \x2f */ + { 0x04, 0x0070 }, /* Index: 0x10, char: \x30 */ + { 0x04, 0x0077 }, /* Index: 0x11, char: \x31 */ + { 0x04, 0x007e }, /* Index: 0x12, char: \x32 */ + { 0x04, 0x0085 }, /* Index: 0x13, char: \x33 */ + { 0x04, 0x008c }, /* Index: 0x14, char: \x34 */ + { 0x04, 0x0093 }, /* Index: 0x15, char: \x35 */ + { 0x04, 0x009a }, /* Index: 0x16, char: \x36 */ + { 0x04, 0x00a1 }, /* Index: 0x17, char: \x37 */ + { 0x04, 0x00a8 }, /* Index: 0x18, char: \x38 */ + { 0x04, 0x00af }, /* Index: 0x19, char: \x39 */ + { 0x04, 0x00b6 }, /* Index: 0x1a, char: \x3a */ + { 0x04, 0x00bd }, /* Index: 0x1b, char: \x3b */ + { 0x04, 0x00c4 }, /* Index: 0x1c, char: \x3c */ + { 0x04, 0x00cb }, /* Index: 0x1d, char: \x3d */ + { 0x04, 0x00d2 }, /* Index: 0x1e, char: \x3e */ + { 0x04, 0x00d9 }, /* Index: 0x1f, char: \x3f */ + { 0x04, 0x00e0 }, /* Index: 0x20, char: \x40 */ + { 0x04, 0x00e7 }, /* Index: 0x21, char: \x41 */ + { 0x04, 0x00ee }, /* Index: 0x22, char: \x42 */ + { 0x04, 0x00f5 }, /* Index: 0x23, char: \x43 */ + { 0x04, 0x00fc }, /* Index: 0x24, char: \x44 */ + { 0x04, 0x0103 }, /* Index: 0x25, char: \x45 */ + { 0x04, 0x010a }, /* Index: 0x26, char: \x46 */ + { 0x04, 0x0111 }, /* Index: 0x27, char: \x47 */ + { 0x04, 0x0118 }, /* Index: 0x28, char: \x48 */ + { 0x04, 0x011f }, /* Index: 0x29, char: \x49 */ + { 0x04, 0x0126 }, /* Index: 0x2a, char: \x4a */ + { 0x04, 0x012d }, /* Index: 0x2b, char: \x4b */ + { 0x04, 0x0134 }, /* Index: 0x2c, char: \x4c */ + { 0x04, 0x013b }, /* Index: 0x2d, char: \x4d */ + { 0x04, 0x0142 }, /* Index: 0x2e, char: \x4e */ + { 0x04, 0x0149 }, /* Index: 0x2f, char: \x4f */ + { 0x04, 0x0150 }, /* Index: 0x30, char: \x50 */ + { 0x04, 0x0157 }, /* Index: 0x31, char: \x51 */ + { 0x04, 0x015e }, /* Index: 0x32, char: \x52 */ + { 0x04, 0x0165 }, /* Index: 0x33, char: \x53 */ + { 0x04, 0x016c }, /* Index: 0x34, char: \x54 */ + { 0x04, 0x0173 }, /* Index: 0x35, char: \x55 */ + { 0x04, 0x017a }, /* Index: 0x36, char: \x56 */ + { 0x04, 0x0181 }, /* Index: 0x37, char: \x57 */ + { 0x04, 0x0188 }, /* Index: 0x38, char: \x58 */ + { 0x04, 0x018f }, /* Index: 0x39, char: \x59 */ + { 0x04, 0x0196 }, /* Index: 0x3a, char: \x5a */ + { 0x04, 0x019d }, /* Index: 0x3b, char: \x5b */ + { 0x04, 0x01a4 }, /* Index: 0x3c, char: \x5c */ + { 0x04, 0x01ab }, /* Index: 0x3d, char: \x5d */ + { 0x04, 0x01b2 }, /* Index: 0x3e, char: \x5e */ + { 0x04, 0x01b9 }, /* Index: 0x3f, char: \x5f */ + { 0x04, 0x01c0 }, /* Index: 0x40, char: \x60 */ + { 0x04, 0x01c7 }, /* Index: 0x41, char: \x61 */ + { 0x04, 0x01ce }, /* Index: 0x42, char: \x62 */ + { 0x04, 0x01d5 }, /* Index: 0x43, char: \x63 */ + { 0x04, 0x01dc }, /* Index: 0x44, char: \x64 */ + { 0x04, 0x01e3 }, /* Index: 0x45, char: \x65 */ + { 0x04, 0x01ea }, /* Index: 0x46, char: \x66 */ + { 0x04, 0x01f1 }, /* Index: 0x47, char: \x67 */ + { 0x04, 0x01f8 }, /* Index: 0x48, char: \x68 */ + { 0x04, 0x01ff }, /* Index: 0x49, char: \x69 */ + { 0x04, 0x0206 }, /* Index: 0x4a, char: \x6a */ + { 0x04, 0x020d }, /* Index: 0x4b, char: \x6b */ + { 0x04, 0x0214 }, /* Index: 0x4c, char: \x6c */ + { 0x04, 0x021b }, /* Index: 0x4d, char: \x6d */ + { 0x04, 0x0222 }, /* Index: 0x4e, char: \x6e */ + { 0x04, 0x0229 }, /* Index: 0x4f, char: \x6f */ + { 0x04, 0x0230 }, /* Index: 0x50, char: \x70 */ + { 0x04, 0x0237 }, /* Index: 0x51, char: \x71 */ + { 0x04, 0x023e }, /* Index: 0x52, char: \x72 */ + { 0x04, 0x0245 }, /* Index: 0x53, char: \x73 */ + { 0x04, 0x024c }, /* Index: 0x54, char: \x74 */ + { 0x04, 0x0253 }, /* Index: 0x55, char: \x75 */ + { 0x04, 0x025a }, /* Index: 0x56, char: \x76 */ + { 0x04, 0x0261 }, /* Index: 0x57, char: \x77 */ + { 0x04, 0x0268 }, /* Index: 0x58, char: \x78 */ + { 0x04, 0x026f }, /* Index: 0x59, char: \x79 */ + { 0x04, 0x0276 }, /* Index: 0x5a, char: \x7a */ + { 0x04, 0x027d }, /* Index: 0x5b, char: \x7b */ + { 0x04, 0x0284 }, /* Index: 0x5c, char: \x7c */ + { 0x04, 0x028b }, /* Index: 0x5d, char: \x7d */ + { 0x04, 0x0292 }, /* Index: 0x5e, char: \x7e */ + { 0x04, 0x0299 }, /* Index: 0x5f, char: \x7f */ +}; + +const font_info_t _fonts_bitocra_4x7_ascii_info = +{ + .height = 7, /* Character height */ + .c = 0, /* C */ + .char_start = 32, /* Start character */ + .char_end = 127, /* End character */ + .char_descriptors = _fonts_bitocra_4x7_ascii_descriptors, /* Character descriptor array */ + .bitmap = _fonts_bitocra_4x7_ascii_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_BITOCRA_4X7_ASCII_H_ */ diff --git a/extras/fonts/data/font_bitocra_6x11_iso8859_1.h b/extras/fonts/data/font_bitocra_6x11_iso8859_1.h new file mode 100644 index 0000000..7b9a790 --- /dev/null +++ b/extras/fonts/data/font_bitocra_6x11_iso8859_1.h @@ -0,0 +1,3169 @@ +/** + * This file contains generated binary font data. + * + * Font: BitOCRA + * Size: 6x11 + * Charset: ISO8859-1 + * 224 characters (32..255) + * + * Copyright (c) 2011, Aaron Christianson (https://github.com/ninjaaron) + * Licensed under the OFL v1.1 + * + * Generated: Mon Dec 12 00:44:35 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_BITOCRA_6X11_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_BITOCRA_6X11_ISO8859_1_H_ + +static const uint8_t _fonts_bitocra_6x11_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x20, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x21, offset: 0x000b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x02, char: \x22, offset: 0x0016 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x23, offset: 0x0021 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x24, offset: 0x002c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0xa0, /* #.#..... */ + 0xf8, /* #####... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x25, offset: 0x0037 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xd8, /* ##.##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xd8, /* ##.##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x26, offset: 0x0042 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0xe8, /* ###.#... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xe8, /* ###.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x27, offset: 0x004d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x28, offset: 0x0058 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x29, offset: 0x0063 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x2a, offset: 0x006e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x2b, offset: 0x0079 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0c, char: \x2c, offset: 0x0084 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x0d, char: \x2d, offset: 0x008f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x2e, offset: 0x009a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0f, char: \x2f, offset: 0x00a5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x30, offset: 0x00b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xb0, /* #.##.... */ + 0xd0, /* ##.#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x31, offset: 0x00bb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x32, offset: 0x00c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x33, offset: 0x00d1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x34, offset: 0x00dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xf0, /* ####.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x15, char: \x35, offset: 0x00e7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x16, char: \x36, offset: 0x00f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x37, offset: 0x00fd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x18, char: \x38, offset: 0x0108 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x50, /* .#.#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x19, char: \x39, offset: 0x0113 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x3a, offset: 0x011e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x3b, offset: 0x0129 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x3c, offset: 0x0134 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x3d, offset: 0x013f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x3e, offset: 0x014a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x3f, offset: 0x0155 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x40, offset: 0x0160 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xe8, /* ###.#... */ + 0xa8, /* #.#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x41, offset: 0x016b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x42, offset: 0x0176 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x43, offset: 0x0181 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x24, char: \x44, offset: 0x018c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x45, offset: 0x0197 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x46, offset: 0x01a2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x47, offset: 0x01ad */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x48, offset: 0x01b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x49, offset: 0x01c3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x4a, offset: 0x01ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x4b, offset: 0x01d9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x4c, offset: 0x01e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x4d, offset: 0x01ef */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x4e, offset: 0x01fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xd0, /* ##.#.... */ + 0xf0, /* ####.... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x4f, offset: 0x0205 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x50, offset: 0x0210 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x51, offset: 0x021b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x52, offset: 0x0226 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x53, offset: 0x0231 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x54, offset: 0x023c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x55, offset: 0x0247 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x56, offset: 0x0252 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xb0, /* #.##.... */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x57, offset: 0x025d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xf8, /* #####... */ + 0xd8, /* ##.##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x58, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x59, offset: 0x0273 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x5a, offset: 0x027e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x30, /* ..##.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x5b, offset: 0x0289 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x5c, offset: 0x0294 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x5d, offset: 0x029f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x5e, offset: 0x02aa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xd8, /* ##.##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x5f, offset: 0x02b5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x60, offset: 0x02c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x61, offset: 0x02cb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x62, offset: 0x02d6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x63, offset: 0x02e1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x64, offset: 0x02ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x65, offset: 0x02f7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x66, offset: 0x0302 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x67, offset: 0x030d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x68, offset: 0x0318 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x69, offset: 0x0323 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x6a, offset: 0x032e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x6b, offset: 0x0339 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x6c, offset: 0x0344 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x6d, offset: 0x034f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x6e, offset: 0x035a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x6f, offset: 0x0365 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x70, offset: 0x0370 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x71, offset: 0x037b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x72, offset: 0x0386 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x73, offset: 0x0391 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x74, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x75, offset: 0x03a7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x76, offset: 0x03b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x77, offset: 0x03bd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x78, offset: 0x03c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x79, offset: 0x03d3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x7a, offset: 0x03de */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x7b, offset: 0x03e9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x7c, offset: 0x03f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x7d, offset: 0x03ff */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x7e, offset: 0x040a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe8, /* ###.#... */ + 0xb8, /* #.###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x7f, offset: 0x0415 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x80, offset: 0x0420 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x81, offset: 0x042b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x82, offset: 0x0436 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x83, offset: 0x0441 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x84, offset: 0x044c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x85, offset: 0x0457 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x86, offset: 0x0462 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x67, char: \x87, offset: 0x046d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x88, offset: 0x0478 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x89, offset: 0x0483 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6a, char: \x8a, offset: 0x048e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x8b, offset: 0x0499 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x8c, offset: 0x04a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x8d, offset: 0x04af */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x8e, offset: 0x04ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x8f, offset: 0x04c5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x70, char: \x90, offset: 0x04d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x71, char: \x91, offset: 0x04db */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x92, offset: 0x04e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x93, offset: 0x04f1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x94, offset: 0x04fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x95, offset: 0x0507 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x96, offset: 0x0512 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x97, offset: 0x051d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x98, offset: 0x0528 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x79, char: \x99, offset: 0x0533 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x9a, offset: 0x053e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x9b, offset: 0x0549 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x9c, offset: 0x0554 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x9d, offset: 0x055f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x9e, offset: 0x056a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x9f, offset: 0x0575 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \xa0, offset: 0x0580 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x81, char: \xa1, offset: 0x058b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x82, char: \xa2, offset: 0x0596 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa0, /* #.#..... */ + 0xc8, /* ##..#... */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x83, char: \xa3, offset: 0x05a1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \xa4, offset: 0x05ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x84, /* #....#.. */ + 0x78, /* .####... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x78, /* .####... */ + 0x84, /* #....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \xa5, offset: 0x05b7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x86, char: \xa6, offset: 0x05c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x87, char: \xa7, offset: 0x05cd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + + /* Index: 0x88, char: \xa8, offset: 0x05d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \xa9, offset: 0x05e3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0xb4, /* #.##.#.. */ + 0xc4, /* ##...#.. */ + 0xb4, /* #.##.#.. */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8a, char: \xaa, offset: 0x05ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \xab, offset: 0x05f9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8c, char: \xac, offset: 0x0604 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8d, char: \xad, offset: 0x060f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8e, char: \xae, offset: 0x061a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0xbc, /* #.####.. */ + 0xb4, /* #.##.#.. */ + 0xac, /* #.#.##.. */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8f, char: \xaf, offset: 0x0625 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x90, char: \xb0, offset: 0x0630 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x91, char: \xb1, offset: 0x063b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x92, char: \xb2, offset: 0x0646 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x93, char: \xb3, offset: 0x0651 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \xb4, offset: 0x065c */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \xb5, offset: 0x0667 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xb0, /* #.##.... */ + 0xd0, /* ##.#.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x96, char: \xb6, offset: 0x0672 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xe8, /* ###.#... */ + 0xe8, /* ###.#... */ + 0x68, /* .##.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \xb7, offset: 0x067d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \xb8, offset: 0x0688 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \xb9, offset: 0x0693 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \xba, offset: 0x069e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \xbb, offset: 0x06a9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \xbc, offset: 0x06b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0x18, /* ...##... */ + 0x28, /* ..#.#... */ + 0x3c, /* ..####.. */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \xbd, offset: 0x06bf */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x5c, /* .#.###.. */ + 0x0c, /* ....##.. */ + 0x10, /* ...#.... */ + 0x1c, /* ...###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \xbe, offset: 0x06ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x28, /* ..#.#... */ + 0xd8, /* ##.##... */ + 0x28, /* ..#.#... */ + 0x3c, /* ..####.. */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xbf, offset: 0x06d5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xc0, offset: 0x06e0 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa1, char: \xc1, offset: 0x06eb */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa2, char: \xc2, offset: 0x06f6 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xc3, offset: 0x0701 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa4, char: \xc4, offset: 0x070c */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa5, char: \xc5, offset: 0x0717 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa6, char: \xc6, offset: 0x0722 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xa0, /* #.#..... */ + 0xb0, /* #.##.... */ + 0xa0, /* #.#..... */ + 0xe0, /* ###..... */ + 0xb8, /* #.###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa7, char: \xc7, offset: 0x072d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + + /* Index: 0xa8, char: \xc8, offset: 0x0738 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xc9, offset: 0x0743 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xca, offset: 0x074e */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xcb, offset: 0x0759 */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xcc, offset: 0x0764 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xcd, offset: 0x076f */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xce, offset: 0x077a */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaf, char: \xcf, offset: 0x0785 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb0, char: \xd0, offset: 0x0790 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x48, /* .#..#... */ + 0xe8, /* ###.#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb1, char: \xd1, offset: 0x079b */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xd0, /* ##.#.... */ + 0xf0, /* ####.... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb2, char: \xd2, offset: 0x07a6 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xd3, offset: 0x07b1 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb4, char: \xd4, offset: 0x07bc */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb5, char: \xd5, offset: 0x07c7 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb6, char: \xd6, offset: 0x07d2 */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb7, char: \xd7, offset: 0x07dd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb8, char: \xd8, offset: 0x07e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0xb0, /* #.##.... */ + 0xb0, /* #.##.... */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xd9, offset: 0x07f3 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xda, offset: 0x07fe */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xdb, offset: 0x0809 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbc, char: \xdc, offset: 0x0814 */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbd, char: \xdd, offset: 0x081f */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbe, char: \xde, offset: 0x082a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xdf, offset: 0x0835 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xb0, /* #.##.... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xe0, offset: 0x0840 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xe1, offset: 0x084b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xe2, offset: 0x0856 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc3, char: \xe3, offset: 0x0861 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc4, char: \xe4, offset: 0x086c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xe5, offset: 0x0877 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xe6, offset: 0x0882 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0xa0, /* #.#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc7, char: \xe7, offset: 0x088d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + + /* Index: 0xc8, char: \xe8, offset: 0x0898 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xe9, offset: 0x08a3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xea, offset: 0x08ae */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xeb, offset: 0x08b9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xec, offset: 0x08c4 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xed, offset: 0x08cf */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xee, offset: 0x08da */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xef, offset: 0x08e5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xf0, offset: 0x08f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xf1, offset: 0x08fb */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd2, char: \xf2, offset: 0x0906 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xf3, offset: 0x0911 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xf4, offset: 0x091c */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd5, char: \xf5, offset: 0x0927 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xf6, offset: 0x0932 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xf7, offset: 0x093d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xf8, offset: 0x0948 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0xd0, /* ##.#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xf9, offset: 0x0953 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xfa, offset: 0x095e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xfb, offset: 0x0969 */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xfc, offset: 0x0974 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdd, char: \xfd, offset: 0x097f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xfe, offset: 0x098a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xff, offset: 0x0995 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ +}; + +const font_char_desc_t _fonts_bitocra_6x11_iso8859_1_descriptors[] = { + { 0x06, 0x0000 }, /* Index: 0x00, char: \x20 */ + { 0x06, 0x000b }, /* Index: 0x01, char: \x21 */ + { 0x06, 0x0016 }, /* Index: 0x02, char: \x22 */ + { 0x06, 0x0021 }, /* Index: 0x03, char: \x23 */ + { 0x06, 0x002c }, /* Index: 0x04, char: \x24 */ + { 0x06, 0x0037 }, /* Index: 0x05, char: \x25 */ + { 0x06, 0x0042 }, /* Index: 0x06, char: \x26 */ + { 0x06, 0x004d }, /* Index: 0x07, char: \x27 */ + { 0x06, 0x0058 }, /* Index: 0x08, char: \x28 */ + { 0x06, 0x0063 }, /* Index: 0x09, char: \x29 */ + { 0x06, 0x006e }, /* Index: 0x0a, char: \x2a */ + { 0x06, 0x0079 }, /* Index: 0x0b, char: \x2b */ + { 0x06, 0x0084 }, /* Index: 0x0c, char: \x2c */ + { 0x06, 0x008f }, /* Index: 0x0d, char: \x2d */ + { 0x06, 0x009a }, /* Index: 0x0e, char: \x2e */ + { 0x06, 0x00a5 }, /* Index: 0x0f, char: \x2f */ + { 0x06, 0x00b0 }, /* Index: 0x10, char: \x30 */ + { 0x06, 0x00bb }, /* Index: 0x11, char: \x31 */ + { 0x06, 0x00c6 }, /* Index: 0x12, char: \x32 */ + { 0x06, 0x00d1 }, /* Index: 0x13, char: \x33 */ + { 0x06, 0x00dc }, /* Index: 0x14, char: \x34 */ + { 0x06, 0x00e7 }, /* Index: 0x15, char: \x35 */ + { 0x06, 0x00f2 }, /* Index: 0x16, char: \x36 */ + { 0x06, 0x00fd }, /* Index: 0x17, char: \x37 */ + { 0x06, 0x0108 }, /* Index: 0x18, char: \x38 */ + { 0x06, 0x0113 }, /* Index: 0x19, char: \x39 */ + { 0x06, 0x011e }, /* Index: 0x1a, char: \x3a */ + { 0x06, 0x0129 }, /* Index: 0x1b, char: \x3b */ + { 0x06, 0x0134 }, /* Index: 0x1c, char: \x3c */ + { 0x06, 0x013f }, /* Index: 0x1d, char: \x3d */ + { 0x06, 0x014a }, /* Index: 0x1e, char: \x3e */ + { 0x06, 0x0155 }, /* Index: 0x1f, char: \x3f */ + { 0x06, 0x0160 }, /* Index: 0x20, char: \x40 */ + { 0x06, 0x016b }, /* Index: 0x21, char: \x41 */ + { 0x06, 0x0176 }, /* Index: 0x22, char: \x42 */ + { 0x06, 0x0181 }, /* Index: 0x23, char: \x43 */ + { 0x06, 0x018c }, /* Index: 0x24, char: \x44 */ + { 0x06, 0x0197 }, /* Index: 0x25, char: \x45 */ + { 0x06, 0x01a2 }, /* Index: 0x26, char: \x46 */ + { 0x06, 0x01ad }, /* Index: 0x27, char: \x47 */ + { 0x06, 0x01b8 }, /* Index: 0x28, char: \x48 */ + { 0x06, 0x01c3 }, /* Index: 0x29, char: \x49 */ + { 0x06, 0x01ce }, /* Index: 0x2a, char: \x4a */ + { 0x06, 0x01d9 }, /* Index: 0x2b, char: \x4b */ + { 0x06, 0x01e4 }, /* Index: 0x2c, char: \x4c */ + { 0x06, 0x01ef }, /* Index: 0x2d, char: \x4d */ + { 0x06, 0x01fa }, /* Index: 0x2e, char: \x4e */ + { 0x06, 0x0205 }, /* Index: 0x2f, char: \x4f */ + { 0x06, 0x0210 }, /* Index: 0x30, char: \x50 */ + { 0x06, 0x021b }, /* Index: 0x31, char: \x51 */ + { 0x06, 0x0226 }, /* Index: 0x32, char: \x52 */ + { 0x06, 0x0231 }, /* Index: 0x33, char: \x53 */ + { 0x06, 0x023c }, /* Index: 0x34, char: \x54 */ + { 0x06, 0x0247 }, /* Index: 0x35, char: \x55 */ + { 0x06, 0x0252 }, /* Index: 0x36, char: \x56 */ + { 0x06, 0x025d }, /* Index: 0x37, char: \x57 */ + { 0x06, 0x0268 }, /* Index: 0x38, char: \x58 */ + { 0x06, 0x0273 }, /* Index: 0x39, char: \x59 */ + { 0x06, 0x027e }, /* Index: 0x3a, char: \x5a */ + { 0x06, 0x0289 }, /* Index: 0x3b, char: \x5b */ + { 0x06, 0x0294 }, /* Index: 0x3c, char: \x5c */ + { 0x06, 0x029f }, /* Index: 0x3d, char: \x5d */ + { 0x06, 0x02aa }, /* Index: 0x3e, char: \x5e */ + { 0x06, 0x02b5 }, /* Index: 0x3f, char: \x5f */ + { 0x06, 0x02c0 }, /* Index: 0x40, char: \x60 */ + { 0x06, 0x02cb }, /* Index: 0x41, char: \x61 */ + { 0x06, 0x02d6 }, /* Index: 0x42, char: \x62 */ + { 0x06, 0x02e1 }, /* Index: 0x43, char: \x63 */ + { 0x06, 0x02ec }, /* Index: 0x44, char: \x64 */ + { 0x06, 0x02f7 }, /* Index: 0x45, char: \x65 */ + { 0x06, 0x0302 }, /* Index: 0x46, char: \x66 */ + { 0x06, 0x030d }, /* Index: 0x47, char: \x67 */ + { 0x06, 0x0318 }, /* Index: 0x48, char: \x68 */ + { 0x06, 0x0323 }, /* Index: 0x49, char: \x69 */ + { 0x06, 0x032e }, /* Index: 0x4a, char: \x6a */ + { 0x06, 0x0339 }, /* Index: 0x4b, char: \x6b */ + { 0x06, 0x0344 }, /* Index: 0x4c, char: \x6c */ + { 0x06, 0x034f }, /* Index: 0x4d, char: \x6d */ + { 0x06, 0x035a }, /* Index: 0x4e, char: \x6e */ + { 0x06, 0x0365 }, /* Index: 0x4f, char: \x6f */ + { 0x06, 0x0370 }, /* Index: 0x50, char: \x70 */ + { 0x06, 0x037b }, /* Index: 0x51, char: \x71 */ + { 0x06, 0x0386 }, /* Index: 0x52, char: \x72 */ + { 0x06, 0x0391 }, /* Index: 0x53, char: \x73 */ + { 0x06, 0x039c }, /* Index: 0x54, char: \x74 */ + { 0x06, 0x03a7 }, /* Index: 0x55, char: \x75 */ + { 0x06, 0x03b2 }, /* Index: 0x56, char: \x76 */ + { 0x06, 0x03bd }, /* Index: 0x57, char: \x77 */ + { 0x06, 0x03c8 }, /* Index: 0x58, char: \x78 */ + { 0x06, 0x03d3 }, /* Index: 0x59, char: \x79 */ + { 0x06, 0x03de }, /* Index: 0x5a, char: \x7a */ + { 0x06, 0x03e9 }, /* Index: 0x5b, char: \x7b */ + { 0x06, 0x03f4 }, /* Index: 0x5c, char: \x7c */ + { 0x06, 0x03ff }, /* Index: 0x5d, char: \x7d */ + { 0x06, 0x040a }, /* Index: 0x5e, char: \x7e */ + { 0x06, 0x0415 }, /* Index: 0x5f, char: \x7f */ + { 0x06, 0x0420 }, /* Index: 0x60, char: \x80 */ + { 0x06, 0x042b }, /* Index: 0x61, char: \x81 */ + { 0x06, 0x0436 }, /* Index: 0x62, char: \x82 */ + { 0x06, 0x0441 }, /* Index: 0x63, char: \x83 */ + { 0x06, 0x044c }, /* Index: 0x64, char: \x84 */ + { 0x06, 0x0457 }, /* Index: 0x65, char: \x85 */ + { 0x06, 0x0462 }, /* Index: 0x66, char: \x86 */ + { 0x06, 0x046d }, /* Index: 0x67, char: \x87 */ + { 0x06, 0x0478 }, /* Index: 0x68, char: \x88 */ + { 0x06, 0x0483 }, /* Index: 0x69, char: \x89 */ + { 0x06, 0x048e }, /* Index: 0x6a, char: \x8a */ + { 0x06, 0x0499 }, /* Index: 0x6b, char: \x8b */ + { 0x06, 0x04a4 }, /* Index: 0x6c, char: \x8c */ + { 0x06, 0x04af }, /* Index: 0x6d, char: \x8d */ + { 0x06, 0x04ba }, /* Index: 0x6e, char: \x8e */ + { 0x06, 0x04c5 }, /* Index: 0x6f, char: \x8f */ + { 0x06, 0x04d0 }, /* Index: 0x70, char: \x90 */ + { 0x06, 0x04db }, /* Index: 0x71, char: \x91 */ + { 0x06, 0x04e6 }, /* Index: 0x72, char: \x92 */ + { 0x06, 0x04f1 }, /* Index: 0x73, char: \x93 */ + { 0x06, 0x04fc }, /* Index: 0x74, char: \x94 */ + { 0x06, 0x0507 }, /* Index: 0x75, char: \x95 */ + { 0x06, 0x0512 }, /* Index: 0x76, char: \x96 */ + { 0x06, 0x051d }, /* Index: 0x77, char: \x97 */ + { 0x06, 0x0528 }, /* Index: 0x78, char: \x98 */ + { 0x06, 0x0533 }, /* Index: 0x79, char: \x99 */ + { 0x06, 0x053e }, /* Index: 0x7a, char: \x9a */ + { 0x06, 0x0549 }, /* Index: 0x7b, char: \x9b */ + { 0x06, 0x0554 }, /* Index: 0x7c, char: \x9c */ + { 0x06, 0x055f }, /* Index: 0x7d, char: \x9d */ + { 0x06, 0x056a }, /* Index: 0x7e, char: \x9e */ + { 0x06, 0x0575 }, /* Index: 0x7f, char: \x9f */ + { 0x06, 0x0580 }, /* Index: 0x80, char: \xa0 */ + { 0x06, 0x058b }, /* Index: 0x81, char: \xa1 */ + { 0x06, 0x0596 }, /* Index: 0x82, char: \xa2 */ + { 0x06, 0x05a1 }, /* Index: 0x83, char: \xa3 */ + { 0x06, 0x05ac }, /* Index: 0x84, char: \xa4 */ + { 0x06, 0x05b7 }, /* Index: 0x85, char: \xa5 */ + { 0x06, 0x05c2 }, /* Index: 0x86, char: \xa6 */ + { 0x06, 0x05cd }, /* Index: 0x87, char: \xa7 */ + { 0x06, 0x05d8 }, /* Index: 0x88, char: \xa8 */ + { 0x06, 0x05e3 }, /* Index: 0x89, char: \xa9 */ + { 0x06, 0x05ee }, /* Index: 0x8a, char: \xaa */ + { 0x06, 0x05f9 }, /* Index: 0x8b, char: \xab */ + { 0x06, 0x0604 }, /* Index: 0x8c, char: \xac */ + { 0x06, 0x060f }, /* Index: 0x8d, char: \xad */ + { 0x06, 0x061a }, /* Index: 0x8e, char: \xae */ + { 0x06, 0x0625 }, /* Index: 0x8f, char: \xaf */ + { 0x06, 0x0630 }, /* Index: 0x90, char: \xb0 */ + { 0x06, 0x063b }, /* Index: 0x91, char: \xb1 */ + { 0x06, 0x0646 }, /* Index: 0x92, char: \xb2 */ + { 0x06, 0x0651 }, /* Index: 0x93, char: \xb3 */ + { 0x06, 0x065c }, /* Index: 0x94, char: \xb4 */ + { 0x06, 0x0667 }, /* Index: 0x95, char: \xb5 */ + { 0x06, 0x0672 }, /* Index: 0x96, char: \xb6 */ + { 0x06, 0x067d }, /* Index: 0x97, char: \xb7 */ + { 0x06, 0x0688 }, /* Index: 0x98, char: \xb8 */ + { 0x06, 0x0693 }, /* Index: 0x99, char: \xb9 */ + { 0x06, 0x069e }, /* Index: 0x9a, char: \xba */ + { 0x06, 0x06a9 }, /* Index: 0x9b, char: \xbb */ + { 0x06, 0x06b4 }, /* Index: 0x9c, char: \xbc */ + { 0x06, 0x06bf }, /* Index: 0x9d, char: \xbd */ + { 0x06, 0x06ca }, /* Index: 0x9e, char: \xbe */ + { 0x06, 0x06d5 }, /* Index: 0x9f, char: \xbf */ + { 0x06, 0x06e0 }, /* Index: 0xa0, char: \xc0 */ + { 0x06, 0x06eb }, /* Index: 0xa1, char: \xc1 */ + { 0x06, 0x06f6 }, /* Index: 0xa2, char: \xc2 */ + { 0x06, 0x0701 }, /* Index: 0xa3, char: \xc3 */ + { 0x06, 0x070c }, /* Index: 0xa4, char: \xc4 */ + { 0x06, 0x0717 }, /* Index: 0xa5, char: \xc5 */ + { 0x06, 0x0722 }, /* Index: 0xa6, char: \xc6 */ + { 0x06, 0x072d }, /* Index: 0xa7, char: \xc7 */ + { 0x06, 0x0738 }, /* Index: 0xa8, char: \xc8 */ + { 0x06, 0x0743 }, /* Index: 0xa9, char: \xc9 */ + { 0x06, 0x074e }, /* Index: 0xaa, char: \xca */ + { 0x06, 0x0759 }, /* Index: 0xab, char: \xcb */ + { 0x06, 0x0764 }, /* Index: 0xac, char: \xcc */ + { 0x06, 0x076f }, /* Index: 0xad, char: \xcd */ + { 0x06, 0x077a }, /* Index: 0xae, char: \xce */ + { 0x06, 0x0785 }, /* Index: 0xaf, char: \xcf */ + { 0x06, 0x0790 }, /* Index: 0xb0, char: \xd0 */ + { 0x06, 0x079b }, /* Index: 0xb1, char: \xd1 */ + { 0x06, 0x07a6 }, /* Index: 0xb2, char: \xd2 */ + { 0x06, 0x07b1 }, /* Index: 0xb3, char: \xd3 */ + { 0x06, 0x07bc }, /* Index: 0xb4, char: \xd4 */ + { 0x06, 0x07c7 }, /* Index: 0xb5, char: \xd5 */ + { 0x06, 0x07d2 }, /* Index: 0xb6, char: \xd6 */ + { 0x06, 0x07dd }, /* Index: 0xb7, char: \xd7 */ + { 0x06, 0x07e8 }, /* Index: 0xb8, char: \xd8 */ + { 0x06, 0x07f3 }, /* Index: 0xb9, char: \xd9 */ + { 0x06, 0x07fe }, /* Index: 0xba, char: \xda */ + { 0x06, 0x0809 }, /* Index: 0xbb, char: \xdb */ + { 0x06, 0x0814 }, /* Index: 0xbc, char: \xdc */ + { 0x06, 0x081f }, /* Index: 0xbd, char: \xdd */ + { 0x06, 0x082a }, /* Index: 0xbe, char: \xde */ + { 0x06, 0x0835 }, /* Index: 0xbf, char: \xdf */ + { 0x06, 0x0840 }, /* Index: 0xc0, char: \xe0 */ + { 0x06, 0x084b }, /* Index: 0xc1, char: \xe1 */ + { 0x06, 0x0856 }, /* Index: 0xc2, char: \xe2 */ + { 0x06, 0x0861 }, /* Index: 0xc3, char: \xe3 */ + { 0x06, 0x086c }, /* Index: 0xc4, char: \xe4 */ + { 0x06, 0x0877 }, /* Index: 0xc5, char: \xe5 */ + { 0x06, 0x0882 }, /* Index: 0xc6, char: \xe6 */ + { 0x06, 0x088d }, /* Index: 0xc7, char: \xe7 */ + { 0x06, 0x0898 }, /* Index: 0xc8, char: \xe8 */ + { 0x06, 0x08a3 }, /* Index: 0xc9, char: \xe9 */ + { 0x06, 0x08ae }, /* Index: 0xca, char: \xea */ + { 0x06, 0x08b9 }, /* Index: 0xcb, char: \xeb */ + { 0x06, 0x08c4 }, /* Index: 0xcc, char: \xec */ + { 0x06, 0x08cf }, /* Index: 0xcd, char: \xed */ + { 0x06, 0x08da }, /* Index: 0xce, char: \xee */ + { 0x06, 0x08e5 }, /* Index: 0xcf, char: \xef */ + { 0x06, 0x08f0 }, /* Index: 0xd0, char: \xf0 */ + { 0x06, 0x08fb }, /* Index: 0xd1, char: \xf1 */ + { 0x06, 0x0906 }, /* Index: 0xd2, char: \xf2 */ + { 0x06, 0x0911 }, /* Index: 0xd3, char: \xf3 */ + { 0x06, 0x091c }, /* Index: 0xd4, char: \xf4 */ + { 0x06, 0x0927 }, /* Index: 0xd5, char: \xf5 */ + { 0x06, 0x0932 }, /* Index: 0xd6, char: \xf6 */ + { 0x06, 0x093d }, /* Index: 0xd7, char: \xf7 */ + { 0x06, 0x0948 }, /* Index: 0xd8, char: \xf8 */ + { 0x06, 0x0953 }, /* Index: 0xd9, char: \xf9 */ + { 0x06, 0x095e }, /* Index: 0xda, char: \xfa */ + { 0x06, 0x0969 }, /* Index: 0xdb, char: \xfb */ + { 0x06, 0x0974 }, /* Index: 0xdc, char: \xfc */ + { 0x06, 0x097f }, /* Index: 0xdd, char: \xfd */ + { 0x06, 0x098a }, /* Index: 0xde, char: \xfe */ + { 0x06, 0x0995 }, /* Index: 0xdf, char: \xff */ +}; + +const font_info_t _fonts_bitocra_6x11_iso8859_1_info = +{ + .height = 11, /* Character height */ + .c = 0, /* C */ + .char_start = 32, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_bitocra_6x11_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_bitocra_6x11_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_BITOCRA_6X11_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_bitocra_7x13_iso8859_1.h b/extras/fonts/data/font_bitocra_7x13_iso8859_1.h new file mode 100644 index 0000000..9281a35 --- /dev/null +++ b/extras/fonts/data/font_bitocra_7x13_iso8859_1.h @@ -0,0 +1,3617 @@ +/** + * This file contains generated binary font data. + * + * Font: BitOCRA + * Size: 7x13 + * Charset: ISO8859-1 + * 224 characters (32..255) + * + * Copyright (c) 2011, Aaron Christianson (https://github.com/ninjaaron) + * Licensed under the OFL v1.1 + * + * Generated: Mon Dec 12 00:45:26 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_BITOCRA_7X13_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_BITOCRA_7X13_ISO8859_1_H_ + +static const uint8_t _fonts_bitocra_7x13_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x20, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x21, offset: 0x000d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x02, char: \x22, offset: 0x001a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x23, offset: 0x0027 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x24, offset: 0x0034 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0xa0, /* #.#..... */ + 0xf8, /* #####... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x25, offset: 0x0041 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc8, /* ##..#... */ + 0xd8, /* ##.##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xd8, /* ##.##... */ + 0x98, /* #..##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x26, offset: 0x004e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x94, /* #..#.#.. */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x74, /* .###.#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x27, offset: 0x005b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x28, offset: 0x0068 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x29, offset: 0x0075 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x2a, offset: 0x0082 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x2b, offset: 0x008f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0c, char: \x2c, offset: 0x009c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0d, char: \x2d, offset: 0x00a9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x2e, offset: 0x00b6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0f, char: \x2f, offset: 0x00c3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x30, offset: 0x00d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x31, offset: 0x00dd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x32, offset: 0x00ea */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x33, offset: 0x00f7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x34, offset: 0x0104 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf8, /* #####... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x15, char: \x35, offset: 0x0111 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x16, char: \x36, offset: 0x011e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x37, offset: 0x012b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x18, char: \x38, offset: 0x0138 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x19, char: \x39, offset: 0x0145 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x3a, offset: 0x0152 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x3b, offset: 0x015f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x1c, char: \x3c, offset: 0x016c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x3d, offset: 0x0179 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x3e, offset: 0x0186 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x3f, offset: 0x0193 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x40, offset: 0x01a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x84, /* #....#.. */ + 0x84, /* #....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0xf4, /* ####.#.. */ + 0x94, /* #..#.#.. */ + 0x94, /* #..#.#.. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x41, offset: 0x01ad */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x42, offset: 0x01ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x43, offset: 0x01c7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x24, char: \x44, offset: 0x01d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x45, offset: 0x01e1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x46, offset: 0x01ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x47, offset: 0x01fb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x48, offset: 0x0208 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x49, offset: 0x0215 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x4a, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x4b, offset: 0x022f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x4c, offset: 0x023c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x4d, offset: 0x0249 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x4e, offset: 0x0256 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xe8, /* ###.#... */ + 0xb8, /* #.###... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x4f, offset: 0x0263 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x50, offset: 0x0270 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x51, offset: 0x027d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0xf0, /* ####.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x52, offset: 0x028a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x53, offset: 0x0297 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x54, offset: 0x02a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x55, offset: 0x02b1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x56, offset: 0x02be */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xb0, /* #.##.... */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x57, offset: 0x02cb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xf8, /* #####... */ + 0xd8, /* ##.##... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x58, offset: 0x02d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x59, offset: 0x02e5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x5a, offset: 0x02f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x5b, offset: 0x02ff */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x5c, offset: 0x030c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x5d, offset: 0x0319 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x5e, offset: 0x0326 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xd8, /* ##.##... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x5f, offset: 0x0333 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x60, offset: 0x0340 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x61, offset: 0x034d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x62, offset: 0x035a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x63, offset: 0x0367 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x64, offset: 0x0374 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x65, offset: 0x0381 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x66, offset: 0x038e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x67, offset: 0x039b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + + /* Index: 0x48, char: \x68, offset: 0x03a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x69, offset: 0x03b5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x6a, offset: 0x03c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + + /* Index: 0x4b, char: \x6b, offset: 0x03cf */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x6c, offset: 0x03dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x6d, offset: 0x03e9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x6e, offset: 0x03f6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x6f, offset: 0x0403 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x70, offset: 0x0410 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x51, char: \x71, offset: 0x041d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + + /* Index: 0x52, char: \x72, offset: 0x042a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x73, offset: 0x0437 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x74, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x75, offset: 0x0451 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x76, offset: 0x045e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x77, offset: 0x046b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x78, offset: 0x0478 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x79, offset: 0x0485 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + + /* Index: 0x5a, char: \x7a, offset: 0x0492 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x7b, offset: 0x049f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x7c, offset: 0x04ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x7d, offset: 0x04b9 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x30, /* ..##.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x7e, offset: 0x04c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe8, /* ###.#... */ + 0xa8, /* #.#.#... */ + 0xb8, /* #.###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x7f, offset: 0x04d3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x80, offset: 0x04e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x81, offset: 0x04ed */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x82, offset: 0x04fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x83, offset: 0x0507 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x84, offset: 0x0514 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x85, offset: 0x0521 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x86, offset: 0x052e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x67, char: \x87, offset: 0x053b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x88, offset: 0x0548 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x89, offset: 0x0555 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6a, char: \x8a, offset: 0x0562 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x8b, offset: 0x056f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x8c, offset: 0x057c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x8d, offset: 0x0589 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x8e, offset: 0x0596 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x8f, offset: 0x05a3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x70, char: \x90, offset: 0x05b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x71, char: \x91, offset: 0x05bd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x92, offset: 0x05ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x93, offset: 0x05d7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x94, offset: 0x05e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x95, offset: 0x05f1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x96, offset: 0x05fe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x97, offset: 0x060b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x98, offset: 0x0618 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x79, char: \x99, offset: 0x0625 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x9a, offset: 0x0632 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x9b, offset: 0x063f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x9c, offset: 0x064c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x9d, offset: 0x0659 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x9e, offset: 0x0666 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x9f, offset: 0x0673 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \xa0, offset: 0x0680 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x81, char: \xa1, offset: 0x068d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x82, char: \xa2, offset: 0x069a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x78, /* .####... */ + 0x90, /* #..#.... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x83, char: \xa3, offset: 0x06a7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \xa4, offset: 0x06b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x84, /* #....#.. */ + 0x78, /* .####... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x78, /* .####... */ + 0x84, /* #....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \xa5, offset: 0x06c1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x86, char: \xa6, offset: 0x06ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x87, char: \xa7, offset: 0x06db */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x88, char: \xa8, offset: 0x06e8 */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \xa9, offset: 0x06f5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x9a, /* #..##.#. */ + 0xa2, /* #.#...#. */ + 0x9a, /* #..##.#. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8a, char: \xaa, offset: 0x0702 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \xab, offset: 0x070f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8c, char: \xac, offset: 0x071c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8d, char: \xad, offset: 0x0729 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8e, char: \xae, offset: 0x0736 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0xba, /* #.###.#. */ + 0xb2, /* #.##..#. */ + 0xaa, /* #.#.#.#. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8f, char: \xaf, offset: 0x0743 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x90, char: \xb0, offset: 0x0750 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x91, char: \xb1, offset: 0x075d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x92, char: \xb2, offset: 0x076a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x93, char: \xb3, offset: 0x0777 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \xb4, offset: 0x0784 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \xb5, offset: 0x0791 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xf8, /* #####... */ + 0xa8, /* #.#.#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x96, char: \xb6, offset: 0x079e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xe8, /* ###.#... */ + 0xe8, /* ###.#... */ + 0xe8, /* ###.#... */ + 0x68, /* .##.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \xb7, offset: 0x07ab */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \xb8, offset: 0x07b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \xb9, offset: 0x07c5 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \xba, offset: 0x07d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \xbb, offset: 0x07df */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \xbc, offset: 0x07ec */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xe4, /* ###..#.. */ + 0x14, /* ...#.#.. */ + 0x14, /* ...#.#.. */ + 0x1c, /* ...###.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \xbd, offset: 0x07f9 */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0xe0, /* ###..... */ + 0x1e, /* ...####. */ + 0x02, /* ......#. */ + 0x1e, /* ...####. */ + 0x10, /* ...#.... */ + 0x1e, /* ...####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \xbe, offset: 0x0806 */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0xf4, /* ####.#.. */ + 0x14, /* ...#.#.. */ + 0x14, /* ...#.#.. */ + 0x1c, /* ...###.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xbf, offset: 0x0813 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xc0, offset: 0x0820 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa1, char: \xc1, offset: 0x082d */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa2, char: \xc2, offset: 0x083a */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xc3, offset: 0x0847 */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa4, char: \xc4, offset: 0x0854 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa5, char: \xc5, offset: 0x0861 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa6, char: \xc6, offset: 0x086e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x9c, /* #..###.. */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x9e, /* #..####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa7, char: \xc7, offset: 0x087b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + + /* Index: 0xa8, char: \xc8, offset: 0x0888 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xc9, offset: 0x0895 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xca, offset: 0x08a2 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xcb, offset: 0x08af */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xcc, offset: 0x08bc */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xcd, offset: 0x08c9 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xce, offset: 0x08d6 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaf, char: \xcf, offset: 0x08e3 */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb0, char: \xd0, offset: 0x08f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0xf4, /* ####.#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb1, char: \xd1, offset: 0x08fd */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xe8, /* ###.#... */ + 0xb8, /* #.###... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb2, char: \xd2, offset: 0x090a */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xd3, offset: 0x0917 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb4, char: \xd4, offset: 0x0924 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb5, char: \xd5, offset: 0x0931 */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb6, char: \xd6, offset: 0x093e */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb7, char: \xd7, offset: 0x094b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb8, char: \xd8, offset: 0x0958 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x98, /* #..##... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0xc8, /* ##..#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xd9, offset: 0x0965 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xda, offset: 0x0972 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xdb, offset: 0x097f */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbc, char: \xdc, offset: 0x098c */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbd, char: \xdd, offset: 0x0999 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbe, char: \xde, offset: 0x09a6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xdf, offset: 0x09b3 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0xc0, char: \xe0, offset: 0x09c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xe1, offset: 0x09cd */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xe2, offset: 0x09da */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc3, char: \xe3, offset: 0x09e7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc4, char: \xe4, offset: 0x09f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xe5, offset: 0x0a01 */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xe6, offset: 0x0a0e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x12, /* ...#..#. */ + 0xf2, /* ####..#. */ + 0x9e, /* #..####. */ + 0x90, /* #..#.... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc7, char: \xe7, offset: 0x0a1b */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + + /* Index: 0xc8, char: \xe8, offset: 0x0a28 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xe9, offset: 0x0a35 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xea, offset: 0x0a42 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xeb, offset: 0x0a4f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xec, offset: 0x0a5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xed, offset: 0x0a69 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xee, offset: 0x0a76 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xef, offset: 0x0a83 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xf0, offset: 0x0a90 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xf1, offset: 0x0a9d */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd2, char: \xf2, offset: 0x0aaa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xf3, offset: 0x0ab7 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xf4, offset: 0x0ac4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd5, char: \xf5, offset: 0x0ad1 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xf6, offset: 0x0ade */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xf7, offset: 0x0aeb */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xf8, offset: 0x0af8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x98, /* #..##... */ + 0xb8, /* #.###... */ + 0xe8, /* ###.#... */ + 0xc8, /* ##..#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xf9, offset: 0x0b05 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xfa, offset: 0x0b12 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xfb, offset: 0x0b1f */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xfc, offset: 0x0b2c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdd, char: \xfd, offset: 0x0b39 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + + /* Index: 0xde, char: \xfe, offset: 0x0b46 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0xdf, char: \xff, offset: 0x0b53 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ +}; + +const font_char_desc_t _fonts_bitocra_7x13_iso8859_1_descriptors[] = { + { 0x07, 0x0000 }, /* Index: 0x00, char: \x20 */ + { 0x07, 0x000d }, /* Index: 0x01, char: \x21 */ + { 0x07, 0x001a }, /* Index: 0x02, char: \x22 */ + { 0x07, 0x0027 }, /* Index: 0x03, char: \x23 */ + { 0x07, 0x0034 }, /* Index: 0x04, char: \x24 */ + { 0x07, 0x0041 }, /* Index: 0x05, char: \x25 */ + { 0x07, 0x004e }, /* Index: 0x06, char: \x26 */ + { 0x07, 0x005b }, /* Index: 0x07, char: \x27 */ + { 0x07, 0x0068 }, /* Index: 0x08, char: \x28 */ + { 0x07, 0x0075 }, /* Index: 0x09, char: \x29 */ + { 0x07, 0x0082 }, /* Index: 0x0a, char: \x2a */ + { 0x07, 0x008f }, /* Index: 0x0b, char: \x2b */ + { 0x07, 0x009c }, /* Index: 0x0c, char: \x2c */ + { 0x07, 0x00a9 }, /* Index: 0x0d, char: \x2d */ + { 0x07, 0x00b6 }, /* Index: 0x0e, char: \x2e */ + { 0x07, 0x00c3 }, /* Index: 0x0f, char: \x2f */ + { 0x07, 0x00d0 }, /* Index: 0x10, char: \x30 */ + { 0x07, 0x00dd }, /* Index: 0x11, char: \x31 */ + { 0x07, 0x00ea }, /* Index: 0x12, char: \x32 */ + { 0x07, 0x00f7 }, /* Index: 0x13, char: \x33 */ + { 0x07, 0x0104 }, /* Index: 0x14, char: \x34 */ + { 0x07, 0x0111 }, /* Index: 0x15, char: \x35 */ + { 0x07, 0x011e }, /* Index: 0x16, char: \x36 */ + { 0x07, 0x012b }, /* Index: 0x17, char: \x37 */ + { 0x07, 0x0138 }, /* Index: 0x18, char: \x38 */ + { 0x07, 0x0145 }, /* Index: 0x19, char: \x39 */ + { 0x07, 0x0152 }, /* Index: 0x1a, char: \x3a */ + { 0x07, 0x015f }, /* Index: 0x1b, char: \x3b */ + { 0x07, 0x016c }, /* Index: 0x1c, char: \x3c */ + { 0x07, 0x0179 }, /* Index: 0x1d, char: \x3d */ + { 0x07, 0x0186 }, /* Index: 0x1e, char: \x3e */ + { 0x07, 0x0193 }, /* Index: 0x1f, char: \x3f */ + { 0x07, 0x01a0 }, /* Index: 0x20, char: \x40 */ + { 0x07, 0x01ad }, /* Index: 0x21, char: \x41 */ + { 0x07, 0x01ba }, /* Index: 0x22, char: \x42 */ + { 0x07, 0x01c7 }, /* Index: 0x23, char: \x43 */ + { 0x07, 0x01d4 }, /* Index: 0x24, char: \x44 */ + { 0x07, 0x01e1 }, /* Index: 0x25, char: \x45 */ + { 0x07, 0x01ee }, /* Index: 0x26, char: \x46 */ + { 0x07, 0x01fb }, /* Index: 0x27, char: \x47 */ + { 0x07, 0x0208 }, /* Index: 0x28, char: \x48 */ + { 0x07, 0x0215 }, /* Index: 0x29, char: \x49 */ + { 0x07, 0x0222 }, /* Index: 0x2a, char: \x4a */ + { 0x07, 0x022f }, /* Index: 0x2b, char: \x4b */ + { 0x07, 0x023c }, /* Index: 0x2c, char: \x4c */ + { 0x07, 0x0249 }, /* Index: 0x2d, char: \x4d */ + { 0x07, 0x0256 }, /* Index: 0x2e, char: \x4e */ + { 0x07, 0x0263 }, /* Index: 0x2f, char: \x4f */ + { 0x07, 0x0270 }, /* Index: 0x30, char: \x50 */ + { 0x07, 0x027d }, /* Index: 0x31, char: \x51 */ + { 0x07, 0x028a }, /* Index: 0x32, char: \x52 */ + { 0x07, 0x0297 }, /* Index: 0x33, char: \x53 */ + { 0x07, 0x02a4 }, /* Index: 0x34, char: \x54 */ + { 0x07, 0x02b1 }, /* Index: 0x35, char: \x55 */ + { 0x07, 0x02be }, /* Index: 0x36, char: \x56 */ + { 0x07, 0x02cb }, /* Index: 0x37, char: \x57 */ + { 0x07, 0x02d8 }, /* Index: 0x38, char: \x58 */ + { 0x07, 0x02e5 }, /* Index: 0x39, char: \x59 */ + { 0x07, 0x02f2 }, /* Index: 0x3a, char: \x5a */ + { 0x07, 0x02ff }, /* Index: 0x3b, char: \x5b */ + { 0x07, 0x030c }, /* Index: 0x3c, char: \x5c */ + { 0x07, 0x0319 }, /* Index: 0x3d, char: \x5d */ + { 0x07, 0x0326 }, /* Index: 0x3e, char: \x5e */ + { 0x07, 0x0333 }, /* Index: 0x3f, char: \x5f */ + { 0x07, 0x0340 }, /* Index: 0x40, char: \x60 */ + { 0x07, 0x034d }, /* Index: 0x41, char: \x61 */ + { 0x07, 0x035a }, /* Index: 0x42, char: \x62 */ + { 0x07, 0x0367 }, /* Index: 0x43, char: \x63 */ + { 0x07, 0x0374 }, /* Index: 0x44, char: \x64 */ + { 0x07, 0x0381 }, /* Index: 0x45, char: \x65 */ + { 0x07, 0x038e }, /* Index: 0x46, char: \x66 */ + { 0x07, 0x039b }, /* Index: 0x47, char: \x67 */ + { 0x07, 0x03a8 }, /* Index: 0x48, char: \x68 */ + { 0x07, 0x03b5 }, /* Index: 0x49, char: \x69 */ + { 0x07, 0x03c2 }, /* Index: 0x4a, char: \x6a */ + { 0x07, 0x03cf }, /* Index: 0x4b, char: \x6b */ + { 0x07, 0x03dc }, /* Index: 0x4c, char: \x6c */ + { 0x07, 0x03e9 }, /* Index: 0x4d, char: \x6d */ + { 0x07, 0x03f6 }, /* Index: 0x4e, char: \x6e */ + { 0x07, 0x0403 }, /* Index: 0x4f, char: \x6f */ + { 0x07, 0x0410 }, /* Index: 0x50, char: \x70 */ + { 0x07, 0x041d }, /* Index: 0x51, char: \x71 */ + { 0x07, 0x042a }, /* Index: 0x52, char: \x72 */ + { 0x07, 0x0437 }, /* Index: 0x53, char: \x73 */ + { 0x07, 0x0444 }, /* Index: 0x54, char: \x74 */ + { 0x07, 0x0451 }, /* Index: 0x55, char: \x75 */ + { 0x07, 0x045e }, /* Index: 0x56, char: \x76 */ + { 0x07, 0x046b }, /* Index: 0x57, char: \x77 */ + { 0x07, 0x0478 }, /* Index: 0x58, char: \x78 */ + { 0x07, 0x0485 }, /* Index: 0x59, char: \x79 */ + { 0x07, 0x0492 }, /* Index: 0x5a, char: \x7a */ + { 0x07, 0x049f }, /* Index: 0x5b, char: \x7b */ + { 0x07, 0x04ac }, /* Index: 0x5c, char: \x7c */ + { 0x07, 0x04b9 }, /* Index: 0x5d, char: \x7d */ + { 0x07, 0x04c6 }, /* Index: 0x5e, char: \x7e */ + { 0x07, 0x04d3 }, /* Index: 0x5f, char: \x7f */ + { 0x07, 0x04e0 }, /* Index: 0x60, char: \x80 */ + { 0x07, 0x04ed }, /* Index: 0x61, char: \x81 */ + { 0x07, 0x04fa }, /* Index: 0x62, char: \x82 */ + { 0x07, 0x0507 }, /* Index: 0x63, char: \x83 */ + { 0x07, 0x0514 }, /* Index: 0x64, char: \x84 */ + { 0x07, 0x0521 }, /* Index: 0x65, char: \x85 */ + { 0x07, 0x052e }, /* Index: 0x66, char: \x86 */ + { 0x07, 0x053b }, /* Index: 0x67, char: \x87 */ + { 0x07, 0x0548 }, /* Index: 0x68, char: \x88 */ + { 0x07, 0x0555 }, /* Index: 0x69, char: \x89 */ + { 0x07, 0x0562 }, /* Index: 0x6a, char: \x8a */ + { 0x07, 0x056f }, /* Index: 0x6b, char: \x8b */ + { 0x07, 0x057c }, /* Index: 0x6c, char: \x8c */ + { 0x07, 0x0589 }, /* Index: 0x6d, char: \x8d */ + { 0x07, 0x0596 }, /* Index: 0x6e, char: \x8e */ + { 0x07, 0x05a3 }, /* Index: 0x6f, char: \x8f */ + { 0x07, 0x05b0 }, /* Index: 0x70, char: \x90 */ + { 0x07, 0x05bd }, /* Index: 0x71, char: \x91 */ + { 0x07, 0x05ca }, /* Index: 0x72, char: \x92 */ + { 0x07, 0x05d7 }, /* Index: 0x73, char: \x93 */ + { 0x07, 0x05e4 }, /* Index: 0x74, char: \x94 */ + { 0x07, 0x05f1 }, /* Index: 0x75, char: \x95 */ + { 0x07, 0x05fe }, /* Index: 0x76, char: \x96 */ + { 0x07, 0x060b }, /* Index: 0x77, char: \x97 */ + { 0x07, 0x0618 }, /* Index: 0x78, char: \x98 */ + { 0x07, 0x0625 }, /* Index: 0x79, char: \x99 */ + { 0x07, 0x0632 }, /* Index: 0x7a, char: \x9a */ + { 0x07, 0x063f }, /* Index: 0x7b, char: \x9b */ + { 0x07, 0x064c }, /* Index: 0x7c, char: \x9c */ + { 0x07, 0x0659 }, /* Index: 0x7d, char: \x9d */ + { 0x07, 0x0666 }, /* Index: 0x7e, char: \x9e */ + { 0x07, 0x0673 }, /* Index: 0x7f, char: \x9f */ + { 0x07, 0x0680 }, /* Index: 0x80, char: \xa0 */ + { 0x07, 0x068d }, /* Index: 0x81, char: \xa1 */ + { 0x07, 0x069a }, /* Index: 0x82, char: \xa2 */ + { 0x07, 0x06a7 }, /* Index: 0x83, char: \xa3 */ + { 0x07, 0x06b4 }, /* Index: 0x84, char: \xa4 */ + { 0x07, 0x06c1 }, /* Index: 0x85, char: \xa5 */ + { 0x07, 0x06ce }, /* Index: 0x86, char: \xa6 */ + { 0x07, 0x06db }, /* Index: 0x87, char: \xa7 */ + { 0x07, 0x06e8 }, /* Index: 0x88, char: \xa8 */ + { 0x07, 0x06f5 }, /* Index: 0x89, char: \xa9 */ + { 0x07, 0x0702 }, /* Index: 0x8a, char: \xaa */ + { 0x07, 0x070f }, /* Index: 0x8b, char: \xab */ + { 0x07, 0x071c }, /* Index: 0x8c, char: \xac */ + { 0x07, 0x0729 }, /* Index: 0x8d, char: \xad */ + { 0x07, 0x0736 }, /* Index: 0x8e, char: \xae */ + { 0x07, 0x0743 }, /* Index: 0x8f, char: \xaf */ + { 0x07, 0x0750 }, /* Index: 0x90, char: \xb0 */ + { 0x07, 0x075d }, /* Index: 0x91, char: \xb1 */ + { 0x07, 0x076a }, /* Index: 0x92, char: \xb2 */ + { 0x07, 0x0777 }, /* Index: 0x93, char: \xb3 */ + { 0x07, 0x0784 }, /* Index: 0x94, char: \xb4 */ + { 0x07, 0x0791 }, /* Index: 0x95, char: \xb5 */ + { 0x07, 0x079e }, /* Index: 0x96, char: \xb6 */ + { 0x07, 0x07ab }, /* Index: 0x97, char: \xb7 */ + { 0x07, 0x07b8 }, /* Index: 0x98, char: \xb8 */ + { 0x07, 0x07c5 }, /* Index: 0x99, char: \xb9 */ + { 0x07, 0x07d2 }, /* Index: 0x9a, char: \xba */ + { 0x07, 0x07df }, /* Index: 0x9b, char: \xbb */ + { 0x07, 0x07ec }, /* Index: 0x9c, char: \xbc */ + { 0x07, 0x07f9 }, /* Index: 0x9d, char: \xbd */ + { 0x07, 0x0806 }, /* Index: 0x9e, char: \xbe */ + { 0x07, 0x0813 }, /* Index: 0x9f, char: \xbf */ + { 0x07, 0x0820 }, /* Index: 0xa0, char: \xc0 */ + { 0x07, 0x082d }, /* Index: 0xa1, char: \xc1 */ + { 0x07, 0x083a }, /* Index: 0xa2, char: \xc2 */ + { 0x07, 0x0847 }, /* Index: 0xa3, char: \xc3 */ + { 0x07, 0x0854 }, /* Index: 0xa4, char: \xc4 */ + { 0x07, 0x0861 }, /* Index: 0xa5, char: \xc5 */ + { 0x07, 0x086e }, /* Index: 0xa6, char: \xc6 */ + { 0x07, 0x087b }, /* Index: 0xa7, char: \xc7 */ + { 0x07, 0x0888 }, /* Index: 0xa8, char: \xc8 */ + { 0x07, 0x0895 }, /* Index: 0xa9, char: \xc9 */ + { 0x07, 0x08a2 }, /* Index: 0xaa, char: \xca */ + { 0x07, 0x08af }, /* Index: 0xab, char: \xcb */ + { 0x07, 0x08bc }, /* Index: 0xac, char: \xcc */ + { 0x07, 0x08c9 }, /* Index: 0xad, char: \xcd */ + { 0x07, 0x08d6 }, /* Index: 0xae, char: \xce */ + { 0x07, 0x08e3 }, /* Index: 0xaf, char: \xcf */ + { 0x07, 0x08f0 }, /* Index: 0xb0, char: \xd0 */ + { 0x07, 0x08fd }, /* Index: 0xb1, char: \xd1 */ + { 0x07, 0x090a }, /* Index: 0xb2, char: \xd2 */ + { 0x07, 0x0917 }, /* Index: 0xb3, char: \xd3 */ + { 0x07, 0x0924 }, /* Index: 0xb4, char: \xd4 */ + { 0x07, 0x0931 }, /* Index: 0xb5, char: \xd5 */ + { 0x07, 0x093e }, /* Index: 0xb6, char: \xd6 */ + { 0x07, 0x094b }, /* Index: 0xb7, char: \xd7 */ + { 0x07, 0x0958 }, /* Index: 0xb8, char: \xd8 */ + { 0x07, 0x0965 }, /* Index: 0xb9, char: \xd9 */ + { 0x07, 0x0972 }, /* Index: 0xba, char: \xda */ + { 0x07, 0x097f }, /* Index: 0xbb, char: \xdb */ + { 0x07, 0x098c }, /* Index: 0xbc, char: \xdc */ + { 0x07, 0x0999 }, /* Index: 0xbd, char: \xdd */ + { 0x07, 0x09a6 }, /* Index: 0xbe, char: \xde */ + { 0x07, 0x09b3 }, /* Index: 0xbf, char: \xdf */ + { 0x07, 0x09c0 }, /* Index: 0xc0, char: \xe0 */ + { 0x07, 0x09cd }, /* Index: 0xc1, char: \xe1 */ + { 0x07, 0x09da }, /* Index: 0xc2, char: \xe2 */ + { 0x07, 0x09e7 }, /* Index: 0xc3, char: \xe3 */ + { 0x07, 0x09f4 }, /* Index: 0xc4, char: \xe4 */ + { 0x07, 0x0a01 }, /* Index: 0xc5, char: \xe5 */ + { 0x07, 0x0a0e }, /* Index: 0xc6, char: \xe6 */ + { 0x07, 0x0a1b }, /* Index: 0xc7, char: \xe7 */ + { 0x07, 0x0a28 }, /* Index: 0xc8, char: \xe8 */ + { 0x07, 0x0a35 }, /* Index: 0xc9, char: \xe9 */ + { 0x07, 0x0a42 }, /* Index: 0xca, char: \xea */ + { 0x07, 0x0a4f }, /* Index: 0xcb, char: \xeb */ + { 0x07, 0x0a5c }, /* Index: 0xcc, char: \xec */ + { 0x07, 0x0a69 }, /* Index: 0xcd, char: \xed */ + { 0x07, 0x0a76 }, /* Index: 0xce, char: \xee */ + { 0x07, 0x0a83 }, /* Index: 0xcf, char: \xef */ + { 0x07, 0x0a90 }, /* Index: 0xd0, char: \xf0 */ + { 0x07, 0x0a9d }, /* Index: 0xd1, char: \xf1 */ + { 0x07, 0x0aaa }, /* Index: 0xd2, char: \xf2 */ + { 0x07, 0x0ab7 }, /* Index: 0xd3, char: \xf3 */ + { 0x07, 0x0ac4 }, /* Index: 0xd4, char: \xf4 */ + { 0x07, 0x0ad1 }, /* Index: 0xd5, char: \xf5 */ + { 0x07, 0x0ade }, /* Index: 0xd6, char: \xf6 */ + { 0x07, 0x0aeb }, /* Index: 0xd7, char: \xf7 */ + { 0x07, 0x0af8 }, /* Index: 0xd8, char: \xf8 */ + { 0x07, 0x0b05 }, /* Index: 0xd9, char: \xf9 */ + { 0x07, 0x0b12 }, /* Index: 0xda, char: \xfa */ + { 0x07, 0x0b1f }, /* Index: 0xdb, char: \xfb */ + { 0x07, 0x0b2c }, /* Index: 0xdc, char: \xfc */ + { 0x07, 0x0b39 }, /* Index: 0xdd, char: \xfd */ + { 0x07, 0x0b46 }, /* Index: 0xde, char: \xfe */ + { 0x07, 0x0b53 }, /* Index: 0xdf, char: \xff */ +}; + +const font_info_t _fonts_bitocra_7x13_iso8859_1_info = +{ + .height = 13, /* Character height */ + .c = 0, /* C */ + .char_start = 32, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_bitocra_7x13_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_bitocra_7x13_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_BITOCRA_7X13_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_glcd_5x7.h b/extras/fonts/data/font_glcd_5x7.h new file mode 100644 index 0000000..cab21c5 --- /dev/null +++ b/extras/fonts/data/font_glcd_5x7.h @@ -0,0 +1,2624 @@ +/* + * font_glcd_5x7.c + * + * Standard ASCII 5x7 font + * + * FIXME: Add license information + * + * Created on: 8 dec. 2016 + * Author: zaltora + */ +/******************************************************************************** + * Copyright (c) 2012, Majenko Technologies + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those + * of the authors and should not be interpreted as representing official policies, + * either expressed or implied, of the FreeBSD Project. + ********************************************************************************/ +#ifndef _EXTRAS_FONTS_FONT_GLCD_5X7_H_ +#define _EXTRAS_FONTS_FONT_GLCD_5X7_H_ + +static const uint8_t _fonts_glcd_5x7_bitmaps[] = +{ + /* @0 '\x0' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @7 '\x1' (5 pixels wide) */ + 0x70, // ### + 0xF8, // ##### + 0xA8, // # # # + 0xF8, // ##### + 0xD8, // ## ## + 0x88, // # # + 0x70, // ### + + /* @14 '\x2' (5 pixels wide) */ + 0x70, // ### + 0xF8, // ##### + 0xA8, // # # # + 0xF8, // ##### + 0x88, // # # + 0xD8, // ## ## + 0x70, // ### + + /* @21 '\x3' (5 pixels wide) */ + 0x00, // + 0x50, // # # + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0x70, // ### + 0x20, // # + + /* @28 '\x4' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x70, // ### + 0xF8, // ##### + 0xF8, // ##### + 0x70, // ### + 0x20, // # + + /* @35 '\x5' (5 pixels wide) */ + 0x70, // ### + 0x50, // # # + 0xF8, // ##### + 0xA8, // # # # + 0xF8, // ##### + 0x20, // # + 0x70, // ### + + /* @42 '\x6' (5 pixels wide) */ + 0x20, // # + 0x70, // ### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0x20, // # + 0x70, // ### + + /* @49 '\x7' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x20, // # + 0x70, // ### + 0x70, // ### + 0x20, // # + 0x00, // + + /* @56 '\x8' (5 pixels wide) */ + 0xF8, // ##### + 0xF8, // ##### + 0xD8, // ## ## + 0x88, // # # + 0x88, // # # + 0xD8, // ## ## + 0xF8, // ##### + + /* @63 '\x9' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x20, // # + 0x50, // # # + 0x50, // # # + 0x20, // # + 0x00, // + + /* @70 '\xA' (5 pixels wide) */ + 0xF8, // ##### + 0xF8, // ##### + 0xD8, // ## ## + 0xA8, // # # # + 0xA8, // # # # + 0xD8, // ## ## + 0xF8, // ##### + + /* @77 '\xB' (5 pixels wide) */ + 0x00, // + 0x38, // ### + 0x18, // ## + 0x68, // ## # + 0xA0, // # # + 0xA0, // # # + 0x40, // # + + /* @84 '\xC' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x20, // # + 0xF8, // ##### + 0x20, // # + + /* @91 '\xD' (5 pixels wide) */ + 0x78, // #### + 0x48, // # # + 0x78, // #### + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + /* @98 '\xE' (5 pixels wide) */ + 0x78, // #### + 0x48, // # # + 0x78, // #### + 0x48, // # # + 0x48, // # # + 0x58, // # ## + 0xC0, // ## + + /* @105 '\xF' (5 pixels wide) */ + 0x20, // # + 0xA8, // # # # + 0x70, // ### + 0xD8, // ## ## + 0xD8, // ## ## + 0x70, // ### + 0xA8, // # # # + + /* @112 '\x10' (5 pixels wide) */ + 0x80, // # + 0xC0, // ## + 0xF0, // #### + 0xF8, // ##### + 0xF0, // #### + 0xC0, // ## + 0x80, // # + + /* @119 '\x11' (5 pixels wide) */ + 0x08, // # + 0x18, // ## + 0x78, // #### + 0xF8, // ##### + 0x78, // #### + 0x18, // ## + 0x08, // # + + /* @126 '\x12' (5 pixels wide) */ + 0x20, // # + 0x70, // ### + 0xA8, // # # # + 0x20, // # + 0xA8, // # # # + 0x70, // ### + 0x20, // # + + /* @133 '\x13' (5 pixels wide) */ + 0xD8, // ## ## + 0xD8, // ## ## + 0xD8, // ## ## + 0xD8, // ## ## + 0xD8, // ## ## + 0x00, // + 0xD8, // ## ## + + /* @140 '\x14' (5 pixels wide) */ + 0x78, // #### + 0xA8, // # # # + 0xA8, // # # # + 0x68, // ## # + 0x28, // # # + 0x28, // # # + 0x28, // # # + + /* @147 '\x15' (5 pixels wide) */ + 0x30, // ## + 0x48, // # # + 0x50, // # # + 0x28, // # # + 0x10, // # + 0x48, // # # + 0x48, // # # + + /* @154 '\x16' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0xF8, // ##### + + /* @161 '\x17' (5 pixels wide) */ + 0x20, // # + 0x70, // ### + 0xA8, // # # # + 0x20, // # + 0xA8, // # # # + 0x70, // ### + 0x20, // # + + /* @168 '\x18' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x70, // ### + 0xA8, // # # # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @175 '\x19' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x20, // # + 0x20, // # + 0xA8, // # # # + 0x70, // ### + 0x20, // # + + /* @182 '\x1A' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x10, // # + 0xF8, // ##### + 0x10, // # + 0x20, // # + 0x00, // + + /* @189 '\x1B' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x40, // # + 0xF8, // ##### + 0x40, // # + 0x20, // # + 0x00, // + + /* @196 '\x1C' (5 pixels wide) */ + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @203 '\x1D' (5 pixels wide) */ + 0x00, // + 0x50, // # # + 0xF8, // ##### + 0xF8, // ##### + 0x50, // # # + 0x00, // + 0x00, // + + /* @210 '\x1E' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x20, // # + 0x70, // ### + 0xF8, // ##### + 0xF8, // ##### + 0x00, // + + /* @217 '\x1F' (5 pixels wide) */ + 0x00, // + 0xF8, // ##### + 0xF8, // ##### + 0x70, // ### + 0x20, // # + 0x20, // # + 0x00, // + + /* @224 ' ' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @231 '!' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x20, // # + + /* @238 '"' (5 pixels wide) */ + 0x50, // # # + 0x50, // # # + 0x50, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @245 '#' (5 pixels wide) */ + 0x50, // # # + 0x50, // # # + 0xF8, // ##### + 0x50, // # # + 0xF8, // ##### + 0x50, // # # + 0x50, // # # + + /* @252 '$' (5 pixels wide) */ + 0x20, // # + 0x78, // #### + 0xA0, // # # + 0x70, // ### + 0x28, // # # + 0xF0, // #### + 0x20, // # + + /* @259 '%' (5 pixels wide) */ + 0xC0, // ## + 0xC8, // ## # + 0x10, // # + 0x20, // # + 0x40, // # + 0x98, // # ## + 0x18, // ## + + /* @266 '&' (5 pixels wide) */ + 0x40, // # + 0xA0, // # # + 0xA0, // # # + 0x40, // # + 0xA8, // # # # + 0x90, // # # + 0x68, // ## # + + /* @273 ''' (5 pixels wide) */ + 0x30, // ## + 0x30, // ## + 0x20, // # + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + + /* @280 '(' (5 pixels wide) */ + 0x10, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x10, // # + + /* @287 ')' (5 pixels wide) */ + 0x40, // # + 0x20, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x20, // # + 0x40, // # + + /* @294 '*' (5 pixels wide) */ + 0x20, // # + 0xA8, // # # # + 0x70, // ### + 0xF8, // ##### + 0x70, // ### + 0xA8, // # # # + 0x20, // # + + /* @301 '+' (5 pixels wide) */ + 0x00, // + 0x20, // # + 0x20, // # + 0xF8, // ##### + 0x20, // # + 0x20, // # + 0x00, // + + /* @308 ',' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0x30, // ## + 0x20, // # + + /* @315 '-' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + /* @322 '.' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0x30, // ## + + /* @329 '/' (5 pixels wide) */ + 0x00, // + 0x08, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x80, // # + 0x00, // + + /* @336 '0' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x98, // # ## + 0xA8, // # # # + 0xC8, // ## # + 0x88, // # # + 0x70, // ### + + /* @343 '1' (5 pixels wide) */ + 0x20, // # + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x70, // ### + + /* @350 '2' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x08, // # + 0x70, // ### + 0x80, // # + 0x80, // # + 0xF8, // ##### + + /* @357 '3' (5 pixels wide) */ + 0xF8, // ##### + 0x08, // # + 0x10, // # + 0x30, // ## + 0x08, // # + 0x88, // # # + 0x70, // ### + + /* @364 '4' (5 pixels wide) */ + 0x10, // # + 0x30, // ## + 0x50, // # # + 0x90, // # # + 0xF8, // ##### + 0x10, // # + 0x10, // # + + /* @371 '5' (5 pixels wide) */ + 0xF8, // ##### + 0x80, // # + 0xF0, // #### + 0x08, // # + 0x08, // # + 0x88, // # # + 0x70, // ### + + /* @378 '6' (5 pixels wide) */ + 0x38, // ### + 0x40, // # + 0x80, // # + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @385 '7' (5 pixels wide) */ + 0xF8, // ##### + 0x08, // # + 0x08, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x80, // # + + /* @392 '8' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @399 '9' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x10, // # + 0xE0, // ### + + /* @406 ':' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x20, // # + 0x00, // + 0x20, // # + 0x00, // + 0x00, // + + /* @413 ';' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x20, // # + 0x00, // + 0x20, // # + 0x20, // # + 0x40, // # + + /* @420 '<' (5 pixels wide) */ + 0x08, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x20, // # + 0x10, // # + 0x08, // # + + /* @427 '=' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @434 '>' (5 pixels wide) */ + 0x40, // # + 0x20, // # + 0x10, // # + 0x08, // # + 0x10, // # + 0x20, // # + 0x40, // # + + /* @441 '?' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x08, // # + 0x30, // ## + 0x20, // # + 0x00, // + 0x20, // # + + /* @448 '@' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0xA8, // # # # + 0xB8, // # ### + 0xB0, // # ## + 0x80, // # + 0x78, // #### + + /* @455 'A' (5 pixels wide) */ + 0x20, // # + 0x50, // # # + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + + /* @462 'B' (5 pixels wide) */ + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + + /* @469 'C' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x80, // # + 0x88, // # # + 0x70, // ### + + /* @476 'D' (5 pixels wide) */ + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0xF0, // #### + + /* @483 'E' (5 pixels wide) */ + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0xF8, // ##### + + /* @490 'F' (5 pixels wide) */ + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + + /* @497 'G' (5 pixels wide) */ + 0x78, // #### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x98, // # ## + 0x88, // # # + 0x78, // #### + + /* @504 'H' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + 0x88, // # # + + /* @511 'I' (5 pixels wide) */ + 0x70, // ### + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x70, // ### + + /* @518 'J' (5 pixels wide) */ + 0x38, // ### + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x90, // # # + 0x60, // ## + + /* @525 'K' (5 pixels wide) */ + 0x88, // # # + 0x90, // # # + 0xA0, // # # + 0xC0, // ## + 0xA0, // # # + 0x90, // # # + 0x88, // # # + + /* @532 'L' (5 pixels wide) */ + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + + /* @539 'M' (5 pixels wide) */ + 0x88, // # # + 0xD8, // ## ## + 0xA8, // # # # + 0xA8, // # # # + 0xA8, // # # # + 0x88, // # # + 0x88, // # # + + /* @546 'N' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0xC8, // ## # + 0xA8, // # # # + 0x98, // # ## + 0x88, // # # + 0x88, // # # + + /* @553 'O' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @560 'P' (5 pixels wide) */ + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + + /* @567 'Q' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0xA8, // # # # + 0x90, // # # + 0x68, // ## # + + /* @574 'R' (5 pixels wide) */ + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + 0xA0, // # # + 0x90, // # # + 0x88, // # # + + /* @581 'S' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x70, // ### + 0x08, // # + 0x88, // # # + 0x70, // ### + + /* @588 'T' (5 pixels wide) */ + 0xF8, // ##### + 0xA8, // # # # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @595 'U' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @602 'V' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x50, // # # + 0x20, // # + + /* @609 'W' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0xA8, // # # # + 0xA8, // # # # + 0xA8, // # # # + 0x50, // # # + + /* @616 'X' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x50, // # # + 0x20, // # + 0x50, // # # + 0x88, // # # + 0x88, // # # + + /* @623 'Y' (5 pixels wide) */ + 0x88, // # # + 0x88, // # # + 0x50, // # # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @630 'Z' (5 pixels wide) */ + 0xF8, // ##### + 0x08, // # + 0x10, // # + 0x70, // ### + 0x40, // # + 0x80, // # + 0xF8, // ##### + + /* @637 '[' (5 pixels wide) */ + 0x78, // #### + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x78, // #### + + /* @644 '\' (5 pixels wide) */ + 0x00, // + 0x80, // # + 0x40, // # + 0x20, // # + 0x10, // # + 0x08, // # + 0x00, // + + /* @651 ']' (5 pixels wide) */ + 0x78, // #### + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x78, // #### + + /* @658 '^' (5 pixels wide) */ + 0x20, // # + 0x50, // # # + 0x88, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @665 '_' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + + /* @672 '`' (5 pixels wide) */ + 0x60, // ## + 0x60, // ## + 0x20, // # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + + /* @679 'a' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @686 'b' (5 pixels wide) */ + 0x80, // # + 0x80, // # + 0xB0, // # ## + 0xC8, // ## # + 0x88, // # # + 0xC8, // ## # + 0xB0, // # ## + + /* @693 'c' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x88, // # # + 0x70, // ### + + /* @700 'd' (5 pixels wide) */ + 0x08, // # + 0x08, // # + 0x68, // ## # + 0x98, // # ## + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @707 'e' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x70, // ### + + /* @714 'f' (5 pixels wide) */ + 0x10, // # + 0x28, // # # + 0x20, // # + 0x70, // ### + 0x20, // # + 0x20, // # + 0x20, // # + + /* @721 'g' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x70, // ### + 0x98, // # ## + 0x98, // # ## + 0x68, // ## # + 0x08, // # + + /* @728 'h' (5 pixels wide) */ + 0x80, // # + 0x80, // # + 0xB0, // # ## + 0xC8, // ## # + 0x88, // # # + 0x88, // # # + 0x88, // # # + + /* @735 'i' (5 pixels wide) */ + 0x20, // # + 0x00, // + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x70, // ### + + /* @742 'j' (5 pixels wide) */ + 0x10, // # + 0x00, // + 0x10, // # + 0x10, // # + 0x10, // # + 0x90, // # # + 0x60, // ## + + /* @749 'k' (5 pixels wide) */ + 0x80, // # + 0x80, // # + 0x90, // # # + 0xA0, // # # + 0xC0, // ## + 0xA0, // # # + 0x90, // # # + + /* @756 'l' (5 pixels wide) */ + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x70, // ### + + /* @763 'm' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xD0, // ## # + 0xA8, // # # # + 0xA8, // # # # + 0xA8, // # # # + 0xA8, // # # # + + /* @770 'n' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xB0, // # ## + 0xC8, // ## # + 0x88, // # # + 0x88, // # # + 0x88, // # # + + /* @777 'o' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @784 'p' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xB0, // # ## + 0xC8, // ## # + 0xC8, // ## # + 0xB0, // # ## + 0x80, // # + + /* @791 'q' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x68, // ## # + 0x98, // # ## + 0x98, // # ## + 0x68, // ## # + 0x08, // # + + /* @798 'r' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xB0, // # ## + 0xC8, // ## # + 0x80, // # + 0x80, // # + 0x80, // # + + /* @805 's' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x78, // #### + 0x80, // # + 0x70, // ### + 0x08, // # + 0xF0, // #### + + /* @812 't' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0xF8, // ##### + 0x20, // # + 0x20, // # + 0x28, // # # + 0x10, // # + + /* @819 'u' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @826 'v' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x50, // # # + 0x20, // # + + /* @833 'w' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0xA8, // # # # + 0xA8, // # # # + 0x50, // # # + + /* @840 'x' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x88, // # # + 0x50, // # # + 0x20, // # + 0x50, // # # + 0x88, // # # + + /* @847 'y' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x88, // # # + + /* @854 'z' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x20, // # + 0x40, // # + 0xF8, // ##### + + /* @861 '{' (5 pixels wide) */ + 0x10, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x10, // # + + /* @868 '|' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x20, // # + 0x20, // # + 0x20, // # + + /* @875 '}' (5 pixels wide) */ + 0x40, // # + 0x20, // # + 0x20, // # + 0x10, // # + 0x20, // # + 0x20, // # + 0x40, // # + + /* @882 '~' (5 pixels wide) */ + 0x40, // # + 0xA8, // # # # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @889 '\x7F' (5 pixels wide) */ + 0x20, // # + 0x70, // ### + 0xD8, // ## ## + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x00, // + + /* @896 '\x80' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x88, // # # + 0x70, // ### + 0x10, // # + + /* @903 '\x81' (5 pixels wide) */ + 0x00, // + 0x88, // # # + 0x00, // + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @910 '\x82' (5 pixels wide) */ + 0x18, // ## + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x78, // #### + + /* @917 '\x83' (5 pixels wide) */ + 0xF8, // ##### + 0x00, // + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @924 '\x84' (5 pixels wide) */ + 0x00, // + 0x88, // # # + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @931 '\x85' (5 pixels wide) */ + 0xC0, // ## + 0x00, // + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @938 '\x86' (5 pixels wide) */ + 0x30, // ## + 0x00, // + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @945 '\x87' (5 pixels wide) */ + 0x00, // + 0x78, // #### + 0xC0, // ## + 0xC0, // ## + 0x78, // #### + 0x10, // # + 0x30, // ## + + /* @952 '\x88' (5 pixels wide) */ + 0xF8, // ##### + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x78, // #### + + /* @959 '\x89' (5 pixels wide) */ + 0x88, // # # + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x78, // #### + + /* @966 '\x8A' (5 pixels wide) */ + 0xC0, // ## + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x78, // #### + + /* @973 '\x8B' (5 pixels wide) */ + 0x28, // # # + 0x00, // + 0x30, // ## + 0x10, // # + 0x10, // # + 0x10, // # + 0x38, // ### + + /* @980 '\x8C' (5 pixels wide) */ + 0x30, // ## + 0x48, // # # + 0x30, // ## + 0x10, // # + 0x10, // # + 0x10, // # + 0x38, // ### + + /* @987 '\x8D' (5 pixels wide) */ + 0x60, // ## + 0x00, // + 0x30, // ## + 0x10, // # + 0x10, // # + 0x10, // # + 0x38, // ### + + /* @994 '\x8E' (5 pixels wide) */ + 0xA8, // # # # + 0x50, // # # + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + + /* @1001 '\x8F' (5 pixels wide) */ + 0x20, // # + 0x00, // + 0x20, // # + 0x50, // # # + 0x88, // # # + 0xF8, // ##### + 0x88, // # # + + /* @1008 '\x90' (5 pixels wide) */ + 0x30, // ## + 0x00, // + 0xF0, // #### + 0x80, // # + 0xE0, // ### + 0x80, // # + 0xF0, // #### + + /* @1015 '\x91' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x78, // #### + 0x10, // # + 0x78, // #### + 0x90, // # # + 0x78, // #### + + /* @1022 '\x92' (5 pixels wide) */ + 0x38, // ### + 0x50, // # # + 0x90, // # # + 0xF8, // ##### + 0x90, // # # + 0x90, // # # + 0x98, // # ## + + /* @1029 '\x93' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1036 '\x94' (5 pixels wide) */ + 0x00, // + 0x88, // # # + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1043 '\x95' (5 pixels wide) */ + 0x00, // + 0xC0, // ## + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1050 '\x96' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x00, // + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @1057 '\x97' (5 pixels wide) */ + 0x00, // + 0xC0, // ## + 0x00, // + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @1064 '\x98' (5 pixels wide) */ + 0x48, // # # + 0x00, // + 0x48, // # # + 0x48, // # # + 0x48, // # # + 0x38, // ### + 0x08, // # + + /* @1071 '\x99' (5 pixels wide) */ + 0x88, // # # + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1078 '\x9A' (5 pixels wide) */ + 0x88, // # # + 0x00, // + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1085 '\x9B' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0xF8, // ##### + 0xA0, // # # + 0xA0, // # # + 0xF8, // ##### + 0x20, // # + + /* @1092 '\x9C' (5 pixels wide) */ + 0x30, // ## + 0x58, // # ## + 0x48, // # # + 0xE0, // ### + 0x40, // # + 0x48, // # # + 0xF8, // ##### + + /* @1099 '\x9D' (5 pixels wide) */ + 0xD8, // ## ## + 0xD8, // ## ## + 0x70, // ### + 0xF8, // ##### + 0x20, // # + 0xF8, // ##### + 0x20, // # + + /* @1106 '\x9E' (5 pixels wide) */ + 0xE0, // ### + 0x90, // # # + 0x90, // # # + 0xE0, // ### + 0x90, // # # + 0xB8, // # ### + 0x90, // # # + + /* @1113 '\x9F' (5 pixels wide) */ + 0x18, // ## + 0x28, // # # + 0x20, // # + 0x70, // ### + 0x20, // # + 0x20, // # + 0xA0, // # # + + /* @1120 '\xA0' (5 pixels wide) */ + 0x18, // ## + 0x00, // + 0x60, // ## + 0x10, // # + 0x70, // ### + 0x90, // # # + 0x78, // #### + + /* @1127 '\xA1' (5 pixels wide) */ + 0x18, // ## + 0x00, // + 0x30, // ## + 0x10, // # + 0x10, // # + 0x10, // # + 0x38, // ### + + /* @1134 '\xA2' (5 pixels wide) */ + 0x00, // + 0x18, // ## + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1141 '\xA3' (5 pixels wide) */ + 0x00, // + 0x18, // ## + 0x00, // + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0x68, // ## # + + /* @1148 '\xA4' (5 pixels wide) */ + 0x00, // + 0x78, // #### + 0x00, // + 0x70, // ### + 0x48, // # # + 0x48, // # # + 0x48, // # # + + /* @1155 '\xA5' (5 pixels wide) */ + 0xF8, // ##### + 0x00, // + 0xC8, // ## # + 0xE8, // ### # + 0xB8, // # ### + 0x98, // # ## + 0x88, // # # + + /* @1162 '\xA6' (5 pixels wide) */ + 0x70, // ### + 0x90, // # # + 0x90, // # # + 0x78, // #### + 0x00, // + 0xF8, // ##### + 0x00, // + + /* @1169 '\xA7' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x00, // + 0xF8, // ##### + 0x00, // + + /* @1176 '\xA8' (5 pixels wide) */ + 0x20, // # + 0x00, // + 0x20, // # + 0x60, // ## + 0x80, // # + 0x88, // # # + 0x70, // ### + + /* @1183 '\xA9' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x00, // + + /* @1190 '\xAA' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x08, // # + 0x08, // # + 0x00, // + + /* @1197 '\xAB' (5 pixels wide) */ + 0x80, // # + 0x88, // # # + 0x90, // # # + 0xB8, // # ### + 0x48, // # # + 0x98, // # ## + 0x20, // # + + /* @1204 '\xAC' (5 pixels wide) */ + 0x80, // # + 0x88, // # # + 0x90, // # # + 0xA8, // # # # + 0x58, // # ## + 0xB8, // # ### + 0x08, // # + + /* @1211 '\xAD' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0x00, // + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @1218 '\xAE' (5 pixels wide) */ + 0x00, // + 0x28, // # # + 0x50, // # # + 0xA0, // # # + 0x50, // # # + 0x28, // # # + 0x00, // + + /* @1225 '\xAF' (5 pixels wide) */ + 0x00, // + 0xA0, // # # + 0x50, // # # + 0x28, // # # + 0x50, // # # + 0xA0, // # # + 0x00, // + + /* @1232 '\xB0' (5 pixels wide) */ + 0x20, // # + 0x88, // # # + 0x20, // # + 0x88, // # # + 0x20, // # + 0x88, // # # + 0x20, // # + + /* @1239 '\xB1' (5 pixels wide) */ + 0x50, // # # + 0xA8, // # # # + 0x50, // # # + 0xA8, // # # # + 0x50, // # # + 0xA8, // # # # + 0x50, // # # + + /* @1246 '\xB2' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + + /* @1253 '\xB3' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x10, // # + 0x10, // # + + /* @1260 '\xB4' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x10, // # + 0xF0, // #### + 0x10, // # + 0x10, // # + + /* @1267 '\xB5' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0xE8, // ### # + 0x28, // # # + 0x28, // # # + + /* @1274 '\xB6' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x28, // # # + 0x28, // # # + + /* @1281 '\xB7' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF0, // #### + 0x10, // # + 0xF0, // #### + 0x10, // # + 0x10, // # + + /* @1288 '\xB8' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0xE8, // ### # + 0x08, // # + 0xE8, // ### # + 0x28, // # # + 0x28, // # # + + /* @1295 '\xB9' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + + /* @1302 '\xBA' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x08, // # + 0xE8, // ### # + 0x28, // # # + 0x28, // # # + + /* @1309 '\xBB' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0xE8, // ### # + 0x08, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1316 '\xBC' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1323 '\xBD' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x10, // # + 0xF0, // #### + 0x00, // + 0x00, // + + /* @1330 '\xBE' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x10, // # + 0x10, // # + + /* @1337 '\xBF' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x18, // ## + 0x00, // + 0x00, // + + /* @1344 '\xC0' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1351 '\xC1' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x10, // # + + /* @1358 '\xC2' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x18, // ## + 0x10, // # + 0x10, // # + + /* @1365 '\xC3' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1372 '\xC4' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0xF8, // ##### + 0x10, // # + 0x10, // # + + /* @1379 '\xC5' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x18, // ## + 0x10, // # + 0x18, // ## + 0x10, // # + 0x10, // # + + /* @1386 '\xC6' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + + /* @1393 '\xC7' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x20, // # + 0x38, // ### + 0x00, // + 0x00, // + + /* @1400 '\xC8' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x38, // ### + 0x20, // # + 0x28, // # # + 0x28, // # # + 0x28, // # # + + /* @1407 '\xC9' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0xE8, // ### # + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1414 '\xCA' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xE8, // ### # + 0x28, // # # + 0x28, // # # + + /* @1421 '\xCB' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x20, // # + 0x28, // # # + 0x28, // # # + 0x28, // # # + + /* @1428 '\xCC' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1435 '\xCD' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0xE8, // ### # + 0x00, // + 0xE8, // ### # + 0x28, // # # + 0x28, // # # + + /* @1442 '\xCE' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1449 '\xCF' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + + /* @1456 '\xD0' (5 pixels wide) */ + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x10, // # + + /* @1463 '\xD1' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x28, // # # + 0x28, // # # + + /* @1470 '\xD2' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x38, // ### + 0x00, // + 0x00, // + + /* @1477 '\xD3' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x18, // ## + 0x10, // # + 0x18, // ## + 0x00, // + 0x00, // + + /* @1484 '\xD4' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x18, // ## + 0x10, // # + 0x18, // ## + 0x10, // # + 0x10, // # + + /* @1491 '\xD5' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x38, // ### + 0x28, // # # + 0x28, // # # + + /* @1498 '\xD6' (5 pixels wide) */ + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0x28, // # # + 0xF8, // ##### + 0x28, // # # + 0x28, // # # + + /* @1505 '\xD7' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0xF8, // ##### + 0x10, // # + 0xF8, // ##### + 0x10, // # + 0x10, // # + + /* @1512 '\xD8' (5 pixels wide) */ + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x00, // + 0x00, // + + /* @1519 '\xD9' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x18, // ## + 0x10, // # + 0x10, // # + + /* @1526 '\xDA' (5 pixels wide) */ + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + + /* @1533 '\xDB' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + + /* @1540 '\xDC' (5 pixels wide) */ + 0xE0, // ### + 0xE0, // ### + 0xE0, // ### + 0xE0, // ### + 0xE0, // ### + 0xE0, // ### + 0xE0, // ### + + /* @1547 '\xDD' (5 pixels wide) */ + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + + /* @1554 '\xDE' (5 pixels wide) */ + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + /* @1561 '\xDF' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x68, // ## # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x68, // ## # + + /* @1568 '\xE0' (5 pixels wide) */ + 0x00, // + 0x70, // ### + 0x88, // # # + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + + /* @1575 '\xE1' (5 pixels wide) */ + 0x00, // + 0xF8, // ##### + 0x98, // # ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + + /* @1582 '\xE2' (5 pixels wide) */ + 0x00, // + 0xF8, // ##### + 0x50, // # # + 0x50, // # # + 0x50, // # # + 0x50, // # # + 0x50, // # # + + /* @1589 '\xE3' (5 pixels wide) */ + 0xF8, // ##### + 0x88, // # # + 0x40, // # + 0x20, // # + 0x40, // # + 0x88, // # # + 0xF8, // ##### + + /* @1596 '\xE4' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x78, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x60, // ## + + /* @1603 '\xE5' (5 pixels wide) */ + 0x00, // + 0x50, // # # + 0x50, // # # + 0x50, // # # + 0x50, // # # + 0x68, // ## # + 0xC0, // ## + + /* @1610 '\xE6' (5 pixels wide) */ + 0x00, // + 0xF8, // ##### + 0xA0, // # # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @1617 '\xE7' (5 pixels wide) */ + 0xF8, // ##### + 0x20, // # + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x20, // # + + /* @1624 '\xE8' (5 pixels wide) */ + 0x20, // # + 0x50, // # # + 0x88, // # # + 0xF8, // ##### + 0x88, // # # + 0x50, // # # + 0x20, // # + + /* @1631 '\xE9' (5 pixels wide) */ + 0x20, // # + 0x50, // # # + 0x88, // # # + 0x88, // # # + 0x50, // # # + 0x50, // # # + 0xD8, // ## ## + + /* @1638 '\xEA' (5 pixels wide) */ + 0x30, // ## + 0x40, // # + 0x30, // ## + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x70, // ### + + /* @1645 '\xEB' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0xA8, // # # # + 0xA8, // # # # + 0x70, // ### + + /* @1652 '\xEC' (5 pixels wide) */ + 0x08, // # + 0x70, // ### + 0x98, // # ## + 0xA8, // # # # + 0xA8, // # # # + 0xC8, // ## # + 0x70, // ### + + /* @1659 '\xED' (5 pixels wide) */ + 0x70, // ### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x70, // ### + + /* @1666 '\xEE' (5 pixels wide) */ + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + + /* @1673 '\xEF' (5 pixels wide) */ + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + + /* @1680 '\xF0' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0xF8, // ##### + 0x20, // # + 0x20, // # + 0x00, // + 0xF8, // ##### + + /* @1687 '\xF1' (5 pixels wide) */ + 0x40, // # + 0x20, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x00, // + 0xF8, // ##### + + /* @1694 '\xF2' (5 pixels wide) */ + 0x10, // # + 0x20, // # + 0x40, // # + 0x20, // # + 0x10, // # + 0x00, // + 0xF8, // ##### + + /* @1701 '\xF3' (5 pixels wide) */ + 0x38, // ### + 0x28, // # # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + + /* @1708 '\xF4' (5 pixels wide) */ + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0xA0, // # # + 0xA0, // # # + + /* @1715 '\xF5' (5 pixels wide) */ + 0x30, // ## + 0x30, // ## + 0x00, // + 0xF8, // ##### + 0x00, // + 0x30, // ## + 0x30, // ## + + /* @1722 '\xF6' (5 pixels wide) */ + 0x00, // + 0xE8, // ### # + 0xB8, // # ### + 0x00, // + 0xE8, // ### # + 0xB8, // # ### + 0x00, // + + /* @1729 '\xF7' (5 pixels wide) */ + 0x70, // ### + 0xD8, // ## ## + 0xD8, // ## ## + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + /* @1736 '\xF8' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0x30, // ## + 0x00, // + 0x00, // + + /* @1743 '\xF9' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0x00, // + 0x00, // + + /* @1750 '\xFA' (5 pixels wide) */ + 0x38, // ### + 0x20, // # + 0x20, // # + 0x20, // # + 0xA0, // # # + 0xA0, // # # + 0x60, // ## + + /* @1757 '\xFB' (5 pixels wide) */ + 0x70, // ### + 0x48, // # # + 0x48, // # # + 0x48, // # # + 0x48, // # # + 0x00, // + 0x00, // + + /* @1764 '\xFC' (5 pixels wide) */ + 0x70, // ### + 0x18, // ## + 0x30, // ## + 0x60, // ## + 0x78, // #### + 0x00, // + 0x00, // + + /* @1771 '\xFD' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x78, // #### + 0x78, // #### + 0x78, // #### + 0x78, // #### + 0x00, // + + /* @1778 '\xFE' (5 pixels wide) */ + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + /* @1785 '\xFF' (5 pixels wide) */ + 0x08, // # + 0x28, // # # + 0x08, // # + 0x28, // # # + 0x00, // + 0x78, // #### + 0x08, // # + +}; + +/* Character descriptors for glcd 5x7 */ +/* { [Char width in bits], [Offset into glcd_5x7_bitmaps in bytes] } */ +const font_char_desc_t _fonts_glcd_5x7_descriptors[] = +{ + {5, 0}, /* \x00 */ + {5, 7}, /* \x01 */ + {5, 14}, /* \x02 */ + {5, 21}, /* \x03 */ + {5, 28}, /* \x04 */ + {5, 35}, /* \x05 */ + {5, 42}, /* \x06 */ + {5, 49}, /* \x07 */ + {5, 56}, /* \x08 */ + {5, 63}, /* \x09 */ + {5, 70}, /* \x0A */ + {5, 77}, /* \x0B */ + {5, 84}, /* \x0C */ + {5, 91}, /* \x0D */ + {5, 98}, /* \x0E */ + {5, 105}, /* \x0F */ + {5, 112}, /* \x10 */ + {5, 119}, /* \x11 */ + {5, 126}, /* \x12 */ + {5, 133}, /* \x13 */ + {5, 140}, /* \x14 */ + {5, 147}, /* \x15 */ + {5, 154}, /* \x16 */ + {5, 161}, /* \x17 */ + {5, 168}, /* \x18 */ + {5, 175}, /* \x19 */ + {5, 182}, /* \x1A */ + {5, 189}, /* \x1B */ + {5, 196}, /* \x1C */ + {5, 203}, /* \x1D */ + {5, 210}, /* \x1E */ + {5, 217}, /* \x1F */ + {5, 224}, /* */ + {5, 231}, /* ! */ + {5, 238}, /* " */ + {5, 245}, /* # */ + {5, 252}, /* $ */ + {5, 259}, /* % */ + {5, 266}, /* & */ + {5, 273}, /* ' */ + {5, 280}, /* ( */ + {5, 287}, /* ) */ + {5, 294}, /* * */ + {5, 301}, /* + */ + {5, 308}, /* , */ + {5, 315}, /* - */ + {5, 322}, /* . */ + {5, 329}, /* / */ + {5, 336}, /* 0 */ + {5, 343}, /* 1 */ + {5, 350}, /* 2 */ + {5, 357}, /* 3 */ + {5, 364}, /* 4 */ + {5, 371}, /* 5 */ + {5, 378}, /* 6 */ + {5, 385}, /* 7 */ + {5, 392}, /* 8 */ + {5, 399}, /* 9 */ + {5, 406}, /* : */ + {5, 413}, /* ; */ + {5, 420}, /* < */ + {5, 427}, /* = */ + {5, 434}, /* > */ + {5, 441}, /* ? */ + {5, 448}, /* @ */ + {5, 455}, /* A */ + {5, 462}, /* B */ + {5, 469}, /* C */ + {5, 476}, /* D */ + {5, 483}, /* E */ + {5, 490}, /* F */ + {5, 497}, /* G */ + {5, 504}, /* H */ + {5, 511}, /* I */ + {5, 518}, /* J */ + {5, 525}, /* K */ + {5, 532}, /* L */ + {5, 539}, /* M */ + {5, 546}, /* N */ + {5, 553}, /* O */ + {5, 560}, /* P */ + {5, 567}, /* Q */ + {5, 574}, /* R */ + {5, 581}, /* S */ + {5, 588}, /* T */ + {5, 595}, /* U */ + {5, 602}, /* V */ + {5, 609}, /* W */ + {5, 616}, /* X */ + {5, 623}, /* Y */ + {5, 630}, /* Z */ + {5, 637}, /* [ */ + {5, 644}, /* \ */ + {5, 651}, /* ] */ + {5, 658}, /* ^ */ + {5, 665}, /* _ */ + {5, 672}, /* ` */ + {5, 679}, /* a */ + {5, 686}, /* b */ + {5, 693}, /* c */ + {5, 700}, /* d */ + {5, 707}, /* e */ + {5, 714}, /* f */ + {5, 721}, /* g */ + {5, 728}, /* h */ + {5, 735}, /* i */ + {5, 742}, /* j */ + {5, 749}, /* k */ + {5, 756}, /* l */ + {5, 763}, /* m */ + {5, 770}, /* n */ + {5, 777}, /* o */ + {5, 784}, /* p */ + {5, 791}, /* q */ + {5, 798}, /* r */ + {5, 805}, /* s */ + {5, 812}, /* t */ + {5, 819}, /* u */ + {5, 826}, /* v */ + {5, 833}, /* w */ + {5, 840}, /* x */ + {5, 847}, /* y */ + {5, 854}, /* z */ + {5, 861}, /* { */ + {5, 868}, /* | */ + {5, 875}, /* } */ + {5, 882}, /* ~ */ + {5, 889}, /* \x7F */ + {5, 896}, /* \x80 */ + {5, 903}, /* \x81 */ + {5, 910}, /* \x82 */ + {5, 917}, /* \x83 */ + {5, 924}, /* \x84 */ + {5, 931}, /* \x85 */ + {5, 938}, /* \x86 */ + {5, 945}, /* \x87 */ + {5, 952}, /* \x88 */ + {5, 959}, /* \x89 */ + {5, 966}, /* \x8A */ + {5, 973}, /* \x8B */ + {5, 980}, /* \x8C */ + {5, 987}, /* \x8D */ + {5, 994}, /* \x8E */ + {5, 1001}, /* \x8F */ + {5, 1008}, /* \x90 */ + {5, 1015}, /* \x91 */ + {5, 1022}, /* \x92 */ + {5, 1029}, /* \x93 */ + {5, 1036}, /* \x94 */ + {5, 1043}, /* \x95 */ + {5, 1050}, /* \x96 */ + {5, 1057}, /* \x97 */ + {5, 1064}, /* \x98 */ + {5, 1071}, /* \x99 */ + {5, 1078}, /* \x9A */ + {5, 1085}, /* \x9B */ + {5, 1092}, /* \x9C */ + {5, 1099}, /* \x9D */ + {5, 1106}, /* \x9E */ + {5, 1113}, /* \x9F */ + {5, 1120}, /* \xA0 */ + {5, 1127}, /* \xA1 */ + {5, 1134}, /* \xA2 */ + {5, 1141}, /* \xA3 */ + {5, 1148}, /* \xA4 */ + {5, 1155}, /* \xA5 */ + {5, 1162}, /* \xA6 */ + {5, 1169}, /* \xA7 */ + {5, 1176}, /* \xA8 */ + {5, 1183}, /* \xA9 */ + {5, 1190}, /* \xAA */ + {5, 1197}, /* \xAB */ + {5, 1204}, /* \xAC */ + {5, 1211}, /* \xAD */ + {5, 1218}, /* \xAE */ + {5, 1225}, /* \xAF */ + {5, 1232}, /* \xB0 */ + {5, 1239}, /* \xB1 */ + {5, 1246}, /* \xB2 */ + {5, 1253}, /* \xB3 */ + {5, 1260}, /* \xB4 */ + {5, 1267}, /* \xB5 */ + {5, 1274}, /* \xB6 */ + {5, 1281}, /* \xB7 */ + {5, 1288}, /* \xB8 */ + {5, 1295}, /* \xB9 */ + {5, 1302}, /* \xBA */ + {5, 1309}, /* \xBB */ + {5, 1316}, /* \xBC */ + {5, 1323}, /* \xBD */ + {5, 1330}, /* \xBE */ + {5, 1337}, /* \xBF */ + {5, 1344}, /* \xC0 */ + {5, 1351}, /* \xC1 */ + {5, 1358}, /* \xC2 */ + {5, 1365}, /* \xC3 */ + {5, 1372}, /* \xC4 */ + {5, 1379}, /* \xC5 */ + {5, 1386}, /* \xC6 */ + {5, 1393}, /* \xC7 */ + {5, 1400}, /* \xC8 */ + {5, 1407}, /* \xC9 */ + {5, 1414}, /* \xCA */ + {5, 1421}, /* \xCB */ + {5, 1428}, /* \xCC */ + {5, 1435}, /* \xCD */ + {5, 1442}, /* \xCE */ + {5, 1449}, /* \xCF */ + {5, 1456}, /* \xD0 */ + {5, 1463}, /* \xD1 */ + {5, 1470}, /* \xD2 */ + {5, 1477}, /* \xD3 */ + {5, 1484}, /* \xD4 */ + {5, 1491}, /* \xD5 */ + {5, 1498}, /* \xD6 */ + {5, 1505}, /* \xD7 */ + {5, 1512}, /* \xD8 */ + {5, 1519}, /* \xD9 */ + {5, 1526}, /* \xDA */ + {5, 1533}, /* \xDB */ + {5, 1540}, /* \xDC */ + {5, 1547}, /* \xDD */ + {5, 1554}, /* \xDE */ + {5, 1561}, /* \xDF */ + {5, 1568}, /* \xE0 */ + {5, 1575}, /* \xE1 */ + {5, 1582}, /* \xE2 */ + {5, 1589}, /* \xE3 */ + {5, 1596}, /* \xE4 */ + {5, 1603}, /* \xE5 */ + {5, 1610}, /* \xE6 */ + {5, 1617}, /* \xE7 */ + {5, 1624}, /* \xE8 */ + {5, 1631}, /* \xE9 */ + {5, 1638}, /* \xEA */ + {5, 1645}, /* \xEB */ + {5, 1652}, /* \xEC */ + {5, 1659}, /* \xED */ + {5, 1666}, /* \xEE */ + {5, 1673}, /* \xEF */ + {5, 1680}, /* \xF0 */ + {5, 1687}, /* \xF1 */ + {5, 1694}, /* \xF2 */ + {5, 1701}, /* \xF3 */ + {5, 1708}, /* \xF4 */ + {5, 1715}, /* \xF5 */ + {5, 1722}, /* \xF6 */ + {5, 1729}, /* \xF7 */ + {5, 1736}, /* \xF8 */ + {5, 1743}, /* \xF9 */ + {5, 1750}, /* \xFA */ + {5, 1757}, /* \xFB */ + {5, 1764}, /* \xFC */ + {5, 1771}, /* \xFD */ + {5, 1778}, /* \xFE */ + {5, 1785}, /* \xFF */ +}; + +/* Font information for glcd 5x7 */ + +const font_info_t _fonts_glcd_5x7_info = +{ + .height = 7, /* Character height */ + .c = 1, /* C */ + .char_start = 0, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_glcd_5x7_descriptors, /* Character descriptor array */ + .bitmap = _fonts_glcd_5x7_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_GLCD_5X7_H_ */ diff --git a/extras/fonts/data/font_roboto_10pt.h b/extras/fonts/data/font_roboto_10pt.h new file mode 100644 index 0000000..2630543 --- /dev/null +++ b/extras/fonts/data/font_roboto_10pt.h @@ -0,0 +1,1630 @@ +/* + * Font data for Roboto 10pt + * + * FIXME: Add license information + * + * Author: zaltora + */ +#ifndef _EXTRAS_FONTS_FONT_ROBOTO_10PT_H_ +#define _EXTRAS_FONTS_FONT_ROBOTO_10PT_H_ + +// Character bitmaps for Roboto 10pt +const uint8_t _fonts_roboto_10pt_bitmaps[] = +{ + // @0 '!' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @14 '"' (3 pixels wide) + 0x00, // + 0x00, // + 0xA0, // # # + 0xA0, // # # + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @28 '#' (8 pixels wide) + 0x00, // + 0x00, // + 0x12, // # # + 0x14, // # # + 0x7F, // ####### + 0x24, // # # + 0x24, // # # + 0xFE, // ####### + 0x28, // # # + 0x28, // # # + 0x08, // # + 0x00, // + 0x00, // + 0x00, // + + // @42 '$' (6 pixels wide) + 0x20, // # + 0x30, // ## + 0x58, // # ## + 0x8C, // # ## + 0xC0, // ## + 0x60, // ## + 0x38, // ### + 0x0C, // ## + 0x8C, // # ## + 0xCC, // ## ## + 0x70, // ### + 0x20, // # + 0x00, // + 0x00, // + + // @56 '%' (8 pixels wide) + 0x00, // + 0x00, // + 0xE0, // ### + 0xA4, // # # # + 0x84, // # # + 0xA8, // # # # + 0x10, // # + 0x19, // ## # + 0x29, // # # # + 0x49, // # # # + 0x06, // ## + 0x00, // + 0x00, // + 0x00, // + + // @70 '&' (8 pixels wide) + 0x00, // + 0x00, // + 0x38, // ### + 0x64, // ## # + 0x64, // ## # + 0x38, // ### + 0x30, // ## + 0x5B, // # ## ## + 0xCE, // ## ### + 0x46, // # ## + 0x7A, // #### # + 0x00, // + 0x00, // + 0x00, // + + // @84 ''' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @98 '(' (3 pixels wide) + 0x00, // + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + 0x40, // # + 0x60, // ## + 0x20, // # + + // @112 ')' (3 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @126 '*' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0xD0, // ## # + 0x60, // ## + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @140 '+' (7 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x10, // # + 0x10, // # + 0x10, // # + 0xFE, // ####### + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @154 ',' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @168 '-' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @182 '.' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @196 '/' (5 pixels wide) + 0x00, // + 0x00, // + 0x08, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x20, // # + 0x20, // # + 0x60, // ## + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + 0x00, // + + // @210 '0' (6 pixels wide) + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @224 '1' (4 pixels wide) + 0x00, // + 0x00, // + 0xF0, // #### + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @238 '2' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x08, // # + 0x10, // # + 0x30, // ## + 0x60, // ## + 0x40, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @252 '3' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x08, // # + 0x38, // ### + 0x08, // # + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @266 '4' (7 pixels wide) + 0x00, // + 0x00, // + 0x0C, // ## + 0x1C, // ### + 0x1C, // ### + 0x2C, // # ## + 0x2C, // # ## + 0x4C, // # ## + 0xFE, // ####### + 0x0C, // ## + 0x0C, // ## + 0x00, // + 0x00, // + 0x00, // + + // @280 '5' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC0, // ## + 0xC0, // ## + 0xF8, // ##### + 0x88, // # # + 0x0C, // ## + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @294 '6' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC0, // ## + 0x80, // # + 0xB0, // # ## + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0xC8, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @308 '7' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x08, // # + 0x18, // ## + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x00, // + 0x00, // + + // @322 '8' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @336 '9' (5 pixels wide) + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x08, // # + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + + // @350 ':' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @364 ';' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @378 '<' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x0C, // ## + 0x70, // ### + 0xC0, // ## + 0x30, // ## + 0x0C, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @392 '=' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @406 '>' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC0, // ## + 0x70, // ### + 0x08, // # + 0x30, // ## + 0xC0, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @420 '?' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC8, // ## # + 0x0C, // ## + 0x08, // # + 0x18, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @434 '@' (10 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x1F, 0x00, // ##### + 0x61, 0x80, // ## ## + 0x4C, 0x80, // # ## # + 0x9A, 0x40, // # ## # # + 0x92, 0x40, // # # # # + 0x92, 0x40, // # # # # + 0xB2, 0x40, // # ## # # + 0x92, 0x40, // # # # # + 0x9B, 0x80, // # ## ### + 0x80, 0x00, // # + 0x60, 0x00, // ## + 0x3E, 0x00, // ##### + + // @462 'A' (8 pixels wide) + 0x00, // + 0x00, // + 0x18, // ## + 0x18, // ## + 0x1C, // ### + 0x24, // # # + 0x24, // # # + 0x26, // # ## + 0x7E, // ###### + 0x42, // # # + 0xC1, // ## # + 0x00, // + 0x00, // + 0x00, // + + // @476 'B' (7 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xFC, // ###### + 0x86, // # ## + 0x82, // # # + 0x86, // # ## + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @490 'C' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x86, // # ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x86, // # ## + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @504 'D' (7 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x86, // # ## + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x86, // # ## + 0x84, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @518 'E' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @532 'F' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @546 'G' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x86, // # ## + 0x80, // # + 0x9E, // # #### + 0x86, // # ## + 0x86, // # ## + 0xC6, // ## ## + 0x7C, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @560 'H' (7 pixels wide) + 0x00, // + 0x00, // + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xFE, // ####### + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x00, // + 0x00, // + 0x00, // + + // @574 'I' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @588 'J' (6 pixels wide) + 0x00, // + 0x00, // + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0xC4, // ## # + 0x4C, // # ## + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @602 'K' (7 pixels wide) + 0x00, // + 0x00, // + 0x84, // # # + 0x8C, // # ## + 0x98, // # ## + 0x90, // # # + 0xE0, // ### + 0x90, // # # + 0x88, // # # + 0x8C, // # ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @616 'L' (6 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @630 'M' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0xC1, 0x80, // ## ## + 0xC1, 0x80, // ## ## + 0xA1, 0x80, // # # ## + 0xA2, 0x80, // # # # # + 0xB2, 0x80, // # ## # # + 0x96, 0x80, // # # ## # + 0x94, 0x80, // # # # # + 0x8C, 0x80, // # ## # + 0x88, 0x80, // # # # + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @658 'N' (7 pixels wide) + 0x00, // + 0x00, // + 0xC2, // ## # + 0xC2, // ## # + 0xA2, // # # # + 0xB2, // # ## # + 0x92, // # # # + 0x8A, // # # # + 0x8E, // # ### + 0x86, // # ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @672 'O' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @686 'P' (7 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x84, // # # + 0x86, // # ## + 0x86, // # ## + 0x8C, // # ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @700 'Q' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x7E, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @714 'R' (6 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x00, // + 0x00, // + 0x00, // + + // @728 'S' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xCC, // ## ## + 0x84, // # # + 0xC0, // ## + 0x38, // ### + 0x0C, // ## + 0x84, // # # + 0x84, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @742 'T' (8 pixels wide) + 0x00, // + 0x00, // + 0xFF, // ######## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + + // @756 'U' (7 pixels wide) + 0x00, // + 0x00, // + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @770 'V' (8 pixels wide) + 0x00, // + 0x00, // + 0xC1, // ## # + 0x43, // # ## + 0x42, // # # + 0x66, // ## ## + 0x24, // # # + 0x24, // # # + 0x1C, // ### + 0x18, // ## + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + + // @784 'W' (11 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0xC4, 0x60, // ## # ## + 0x46, 0x60, // # ## ## + 0x4A, 0x40, // # # # # + 0x4A, 0x40, // # # # # + 0x6A, 0x40, // ## # # # + 0x39, 0xC0, // ### ### + 0x31, 0x80, // ## ## + 0x31, 0x80, // ## ## + 0x31, 0x80, // ## ## + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @812 'X' (7 pixels wide) + 0x00, // + 0x00, // + 0x84, // # # + 0xCC, // ## ## + 0x48, // # # + 0x38, // ### + 0x30, // ## + 0x38, // ### + 0x48, // # # + 0xCC, // ## ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @826 'Y' (7 pixels wide) + 0x00, // + 0x00, // + 0x86, // # ## + 0x84, // # # + 0x4C, // # ## + 0x68, // ## # + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @840 'Z' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x0C, // ## + 0x18, // ## + 0x10, // # + 0x20, // # + 0x60, // ## + 0x40, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @854 '[' (2 pixels wide) + 0xC0, // ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + 0x00, // + + // @868 '\' (5 pixels wide) + 0x00, // + 0x00, // + 0xC0, // ## + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x30, // ## + 0x10, // # + 0x10, // # + 0x08, // # + 0x08, // # + 0x00, // + 0x00, // + + // @882 ']' (3 pixels wide) + 0xE0, // ### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0xE0, // ### + 0x00, // + + // @896 '^' (5 pixels wide) + 0x00, // + 0x00, // + 0x20, // # + 0x30, // ## + 0x50, // # # + 0x58, // # ## + 0xC8, // ## # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @910 '_' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xFC, // ###### + 0x00, // + 0x00, // + + // @924 '`' (2 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @938 'a' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x08, // # + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + 0xE8, // ### # + 0x00, // + 0x00, // + 0x00, // + + // @952 'b' (6 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0xB8, // # ### + 0xC8, // ## # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0xC8, // ## # + 0xB8, // # ### + 0x00, // + 0x00, // + 0x00, // + + // @966 'c' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x80, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @980 'd' (5 pixels wide) + 0x00, // + 0x08, // # + 0x08, // # + 0x08, // # + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @994 'e' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @1008 'f' (4 pixels wide) + 0x00, // + 0x30, // ## + 0x60, // ## + 0x60, // ## + 0xF0, // #### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x00, // + 0x00, // + 0x00, // + + // @1022 'g' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x7C, // ##### + 0xCC, // ## ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x7C, // ##### + 0x08, // # + 0x08, // # + 0xF0, // #### + + // @1036 'h' (6 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0xB8, // # ### + 0x88, // # # + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @1050 'i' (1 pixels wide) + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1064 'j' (2 pixels wide) + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @1078 'k' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x98, // # ## + 0x90, // # # + 0xA0, // # # + 0xE0, // ### + 0xB0, // # ## + 0x90, // # # + 0x88, // # # + 0x00, // + 0x00, // + 0x00, // + + // @1092 'l' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1106 'm' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0xBB, 0x80, // # ### ### + 0x8C, 0x80, // # ## # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @1134 'n' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xB8, // # ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x00, // + 0x00, // + 0x00, // + + // @1148 'o' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @1162 'p' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xB8, // # ### + 0x88, // # # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0x88, // # # + 0xB8, // # ### + 0x80, // # + 0x80, // # + 0x80, // # + + // @1176 'q' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x08, // # + 0x08, // # + + // @1190 'r' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xA0, // # # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1204 's' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x70, // ### + 0x08, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @1218 't' (4 pixels wide) + 0x00, // + 0x00, // + 0x60, // ## + 0x60, // ## + 0xF0, // #### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @1232 'u' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @1246 'v' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC4, // ## # + 0x44, // # # + 0x48, // # # + 0x28, // # # + 0x28, // # # + 0x30, // ## + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + + // @1260 'w' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0xCC, 0x80, // ## ## # + 0x4C, 0x80, // # ## # + 0x4C, 0x80, // # ## # + 0x57, 0x80, // # # #### + 0x33, 0x00, // ## ## + 0x33, 0x00, // ## ## + 0x23, 0x00, // # ## + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @1288 'x' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x98, // # ## + 0xD0, // ## # + 0x70, // ### + 0x20, // # + 0x70, // ### + 0xD0, // ## # + 0x98, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @1302 'y' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC4, // ## # + 0x4C, // # ## + 0x48, // # # + 0x68, // ## # + 0x28, // # # + 0x30, // ## + 0x10, // # + 0x10, // # + 0x20, // # + 0x60, // ## + + // @1316 'z' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x30, // ## + 0x60, // ## + 0x40, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @1330 '{' (4 pixels wide) + 0x00, // + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x60, // ## + 0xC0, // ## + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x10, // # + + // @1344 '|' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @1358 '}' (4 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x20, // # + 0x10, // # + 0x20, // # + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x40, // # + 0x80, // # + + // @1372 '~' (7 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF2, // #### # + 0x8C, // # ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // +}; + +// Character descriptors for Roboto 10pt +// { [Char width in bits], [Offset into roboto_10ptCharBitmaps in bytes] } +const font_char_desc_t _fonts_roboto_10pt_descriptors[] = +{ + {1, 0}, // ! + {3, 14}, // " + {8, 28}, // # + {6, 42}, // $ + {8, 56}, // % + {8, 70}, // & + {1, 84}, // ' + {3, 98}, // ( + {3, 112}, // ) + {4, 126}, // * + {7, 140}, // + + {2, 154}, // , + {4, 168}, // - + {1, 182}, // . + {5, 196}, // / + {6, 210}, // 0 + {4, 224}, // 1 + {6, 238}, // 2 + {6, 252}, // 3 + {7, 266}, // 4 + {6, 280}, // 5 + {6, 294}, // 6 + {6, 308}, // 7 + {6, 322}, // 8 + {5, 336}, // 9 + {1, 350}, // : + {2, 364}, // ; + {6, 378}, // < + {5, 392}, // = + {5, 406}, // > + {6, 420}, // ? + {10, 434}, // @ + {8, 462}, // A + {7, 476}, // B + {7, 490}, // C + {7, 504}, // D + {6, 518}, // E + {6, 532}, // F + {7, 546}, // G + {7, 560}, // H + {1, 574}, // I + {6, 588}, // J + {7, 602}, // K + {6, 616}, // L + {9, 630}, // M + {7, 658}, // N + {7, 672}, // O + {7, 686}, // P + {7, 700}, // Q + {6, 714}, // R + {6, 728}, // S + {8, 742}, // T + {7, 756}, // U + {8, 770}, // V + {11, 784}, // W + {7, 812}, // X + {7, 826}, // Y + {6, 840}, // Z + {2, 854}, // [ + {5, 868}, /* \ */ + {3, 882}, // ] + {5, 896}, // ^ + {6, 910}, // _ + {2, 924}, // ` + {5, 938}, // a + {6, 952}, // b + {5, 966}, // c + {5, 980}, // d + {5, 994}, // e + {4, 1008}, // f + {6, 1022}, // g + {6, 1036}, // h + {1, 1050}, // i + {2, 1064}, // j + {5, 1078}, // k + {1, 1092}, // l + {9, 1106}, // m + {5, 1134}, // n + {6, 1148}, // o + {6, 1162}, // p + {5, 1176}, // q + {3, 1190}, // r + {5, 1204}, // s + {4, 1218}, // t + {5, 1232}, // u + {6, 1246}, // v + {9, 1260}, // w + {5, 1288}, // x + {6, 1302}, // y + {5, 1316}, // z + {4, 1330}, // { + {1, 1344}, // | + {4, 1358}, // } + {7, 1372}, // ~ +}; + +// Font information for Roboto 10pt +const font_info_t _fonts_roboto_10pt_info = +{ + .height = 14, // Character height + .c = '!', // Start character + .char_start = '~', // End character + .char_end = 2, // Width, in pixels, of space character + .char_descriptors = _fonts_roboto_10pt_descriptors, // Character descriptor array + .bitmap = _fonts_roboto_10pt_bitmaps, // Character bitmap array +}; + +#endif /* _EXTRAS_FONTS_FONT_ROBOTO_10PT_H_ */ diff --git a/extras/fonts/data/font_roboto_8pt.h b/extras/fonts/data/font_roboto_8pt.h new file mode 100644 index 0000000..c67924e --- /dev/null +++ b/extras/fonts/data/font_roboto_8pt.h @@ -0,0 +1,1348 @@ +/* + * Font data for Roboto 8pt + * + * FIXME: Add license information + * + * Author: zaltora + */ +#ifndef _EXTRAS_FONTS_FONT_ROBOTO_8PT_H_ +#define _EXTRAS_FONTS_FONT_ROBOTO_8PT_H_ + +// Character bitmaps for Roboto 8pt +const uint8_t _fonts_roboto_8pt_bitmaps[] = +{ + // @0 '!' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @11 '"' (2 pixels wide) + 0x00, // + 0xC0, // ## + 0xC0, // ## + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @22 '#' (6 pixels wide) + 0x00, // + 0x04, // # + 0x20, // # + 0x7C, // ##### + 0x28, // # # + 0x28, // # # + 0xFC, // ###### + 0x40, // # + 0x50, // # # + 0x00, // + 0x00, // + + // @33 '$' (5 pixels wide) + 0x20, // # + 0x70, // ### + 0x98, // # ## + 0x80, // # + 0xC0, // ## + 0x30, // ## + 0x08, // # + 0x98, // # ## + 0x70, // ### + 0x20, // # + 0x00, // + + // @44 '%' (7 pixels wide) + 0x00, // + 0xC0, // ## + 0x28, // # # + 0x28, // # # + 0xD0, // ## # + 0x2C, // # ## + 0x32, // ## # + 0x52, // # # # + 0x0C, // ## + 0x00, // + 0x00, // + + // @55 '&' (6 pixels wide) + 0x00, // + 0x30, // ## + 0x48, // # # + 0x58, // # ## + 0x20, // # + 0x54, // # # # + 0x8C, // # ## + 0xCC, // ## ## + 0x7C, // ##### + 0x00, // + 0x00, // + + // @66 ''' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @77 '(' (3 pixels wide) + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x40, // # + 0x20, // # + + // @88 ')' (3 pixels wide) + 0x80, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @99 '*' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0xE0, // ### + 0xC0, // ## + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @110 '+' (6 pixels wide) + 0x00, // + 0x00, // + 0x10, // # + 0x10, // # + 0xFC, // ###### + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + + // @121 ',' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @132 '-' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @143 '.' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @154 '/' (4 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @165 '0' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @176 '1' (3 pixels wide) + 0x00, // + 0xE0, // ### + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x00, // + + // @187 '2' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x10, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0xC0, // ## + 0xF8, // ##### + 0x00, // + 0x00, // + + // @198 '3' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x10, // # + 0x70, // ### + 0x10, // # + 0x08, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @209 '4' (6 pixels wide) + 0x00, // + 0x18, // ## + 0x18, // ## + 0x28, // # # + 0x28, // # # + 0x48, // # # + 0xFC, // ###### + 0x08, // # + 0x08, // # + 0x00, // + 0x00, // + + // @220 '5' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x18, // ## + 0x08, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @231 '6' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x98, // # ## + 0x88, // # # + 0x98, // # ## + 0x70, // ### + 0x00, // + 0x00, // + + // @242 '7' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x00, // + 0x00, // + + // @253 '8' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x00, // + 0x00, // + + // @264 '9' (4 pixels wide) + 0x00, // + 0xE0, // ### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x10, // # + 0x10, // # + 0xE0, // ### + 0x00, // + 0x00, // + + // @275 ':' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @286 ';' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @297 '<' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0xC0, // ## + 0xC0, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @308 '=' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x00, // + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @319 '>' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC0, // ## + 0x30, // ## + 0x30, // ## + 0xC0, // ## + 0x00, // + 0x00, // + 0x00, // + + // @330 '?' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x08, // # + 0x10, // # + 0x30, // ## + 0x20, // # + 0x00, // + 0x20, // # + 0x00, // + 0x00, // + + // @341 '@' (8 pixels wide) + 0x00, // + 0x3C, // #### + 0x42, // # # + 0x89, // # # # + 0xB4, // # ## # + 0x24, // # # + 0x24, // # # + 0x25, // # # # + 0xBE, // # ##### + 0x40, // # + 0x3C, // #### + + // @352 'A' (7 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0x28, // # # + 0x28, // # # + 0x6C, // ## ## + 0x7C, // ##### + 0x44, // # # + 0x86, // # ## + 0x00, // + 0x00, // + + // @363 'B' (6 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + 0x88, // # # + 0x84, // # # + 0x88, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @374 'C' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x80, // # + 0x80, // # + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @385 'D' (6 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @396 'E' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @407 'F' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @418 'G' (6 pixels wide) + 0x00, // + 0x78, // #### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x9C, // # ### + 0x8C, // # ## + 0x8C, // # ## + 0x78, // #### + 0x00, // + 0x00, // + + // @429 'H' (6 pixels wide) + 0x00, // + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xFC, // ###### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x00, // + 0x00, // + + // @440 'I' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @451 'J' (5 pixels wide) + 0x00, // + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0xC8, // ## # + 0x70, // ### + 0x00, // + 0x00, // + + // @462 'K' (5 pixels wide) + 0x00, // + 0x88, // # # + 0x90, // # # + 0xB0, // # ## + 0xE0, // ### + 0xA0, // # # + 0x90, // # # + 0x98, // # ## + 0x88, // # # + 0x00, // + 0x00, // + + // @473 'L' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @484 'M' (8 pixels wide) + 0x00, // + 0x83, // # ## + 0xC3, // ## ## + 0xC5, // ## # # + 0xA5, // # # # # + 0xA5, // # # # # + 0xA9, // # # # # + 0x99, // # ## # + 0x91, // # # # + 0x00, // + 0x00, // + + // @495 'N' (6 pixels wide) + 0x00, // + 0x84, // # # + 0xC4, // ## # + 0xE4, // ### # + 0xA4, // # # # + 0x94, // # # # + 0x94, // # # # + 0x8C, // # ## + 0x8C, // # ## + 0x00, // + 0x00, // + + // @506 'O' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @517 'P' (6 pixels wide) + 0x00, // + 0xF8, // ##### + 0x88, // # # + 0x8C, // # ## + 0x88, // # # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @528 'Q' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x7C, // ##### + 0x04, // # + 0x00, // + + // @539 'R' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x00, // + 0x00, // + + // @550 'S' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0xE0, // ### + 0x18, // ## + 0x08, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @561 'T' (6 pixels wide) + 0x00, // + 0xFC, // ###### + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + + // @572 'U' (6 pixels wide) + 0x00, // + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + + // @583 'V' (7 pixels wide) + 0x00, // + 0x82, // # # + 0x44, // # # + 0x44, // # # + 0x4C, // # ## + 0x28, // # # + 0x28, // # # + 0x20, // # + 0x10, // # + 0x00, // + 0x00, // + + // @594 'W' (9 pixels wide) + 0x00, 0x00, // + 0x88, 0x80, // # # # + 0x4C, 0x80, // # ## # + 0x4C, 0x80, // # ## # + 0x55, 0x00, // # # # # + 0x55, 0x00, // # # # # + 0x73, 0x00, // ### ## + 0x23, 0x00, // # ## + 0x23, 0x00, // # ## + 0x00, 0x00, // + 0x00, 0x00, // + + // @616 'X' (5 pixels wide) + 0x00, // + 0x88, // # # + 0xD8, // ## ## + 0x50, // # # + 0x20, // # + 0x20, // # + 0x50, // # # + 0xD8, // ## ## + 0x88, // # # + 0x00, // + 0x00, // + + // @627 'Y' (6 pixels wide) + 0x00, // + 0xC4, // ## # + 0x44, // # # + 0x28, // # # + 0x28, // # # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + + // @638 'Z' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @649 '[' (2 pixels wide) + 0xC0, // ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + + // @660 '\' (4 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + + // @671 ']' (2 pixels wide) + 0xC0, // ## + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @682 '^' (3 pixels wide) + 0x00, // + 0x40, // # + 0xC0, // ## + 0xA0, // # # + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @693 '_' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + + // @704 '`' (2 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @715 'a' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x30, // ## + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @726 'b' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x00, // + 0x00, // + + // @737 'c' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x80, // # + 0x80, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @748 'd' (4 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xE0, // ### + 0x00, // + 0x00, // + + // @759 'e' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x70, // ### + 0x00, // + 0x00, // + + // @770 'f' (4 pixels wide) + 0x00, // + 0x30, // ## + 0x40, // # + 0xE0, // ### + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x00, // + 0x00, // + + // @781 'g' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE8, // ### # + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0xF8, // ##### + 0x10, // # + 0xF0, // #### + + // @792 'h' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x90, // # # + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x00, // + 0x00, // + + // @803 'i' (1 pixels wide) + 0x00, // + 0x80, // # + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @814 'j' (2 pixels wide) + 0x00, // + 0x40, // # + 0x00, // + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @825 'k' (4 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x90, // # # + 0xA0, // # # + 0xC0, // ## + 0xA0, // # # + 0xA0, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @836 'l' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @847 'm' (8 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF6, // #### ## + 0x99, // # ## # + 0x91, // # # # + 0x91, // # # # + 0x91, // # # # + 0x91, // # # # + 0x00, // + 0x00, // + + // @858 'n' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @869 'o' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @880 'p' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x80, // # + 0x80, // # + + // @891 'q' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x10, // # + 0x10, // # + + // @902 'r' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @913 's' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x90, // # # + 0xC0, // ## + 0x30, // ## + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @924 't' (3 pixels wide) + 0x00, // + 0x40, // # + 0x40, // # + 0xE0, // ### + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x60, // ## + 0x00, // + 0x00, // + + // @935 'u' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @946 'v' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x48, // # # + 0x50, // # # + 0x10, // # + 0x30, // ## + 0x20, // # + 0x00, // + 0x00, // + + // @957 'w' (8 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x89, // # # # + 0x59, // # ## # + 0x5A, // # ## # + 0x56, // # # ## + 0x66, // ## ## + 0x26, // # ## + 0x00, // + 0x00, // + + // @968 'x' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x90, // # # + 0xA0, // # # + 0x60, // ## + 0x60, // ## + 0xA0, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @979 'y' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x48, // # # + 0x50, // # # + 0x70, // ### + 0x30, // ## + 0x20, // # + 0x20, // # + 0x40, // # + + // @990 'z' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x78, // #### + 0x10, // # + 0x30, // ## + 0x20, // # + 0x40, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @1001 '{' (3 pixels wide) + 0x00, // + 0x20, // # + 0x60, // ## + 0x60, // ## + 0x40, // # + 0xC0, // ## + 0x40, // # + 0x60, // ## + 0x60, // ## + 0x20, // # + 0x00, // + + // @1012 '|' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @1023 '}' (3 pixels wide) + 0x80, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @1034 '~' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xE4, // ### # + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // +}; + +// Character descriptors for Roboto 8pt +// { [Char width in bits], [Offset into roboto_8ptCharBitmaps in bytes] } +const font_char_desc_t _fonts_roboto_8pt_descriptors[] = +{ + {1, 0}, // ! + {2, 11}, // " + {6, 22}, // # + {5, 33}, // $ + {7, 44}, // % + {6, 55}, // & + {1, 66}, // ' + {3, 77}, // ( + {3, 88}, // ) + {3, 99}, // * + {6, 110}, // + + {2, 121}, // , + {3, 132}, // - + {1, 143}, // . + {4, 154}, // / + {5, 165}, // 0 + {3, 176}, // 1 + {5, 187}, // 2 + {5, 198}, // 3 + {6, 209}, // 4 + {5, 220}, // 5 + {5, 231}, // 6 + {5, 242}, // 7 + {5, 253}, // 8 + {4, 264}, // 9 + {1, 275}, // : + {2, 286}, // ; + {4, 297}, // < + {4, 308}, // = + {4, 319}, // > + {5, 330}, // ? + {8, 341}, // @ + {7, 352}, // A + {6, 363}, // B + {6, 374}, // C + {6, 385}, // D + {5, 396}, // E + {5, 407}, // F + {6, 418}, // G + {6, 429}, // H + {1, 440}, // I + {5, 451}, // J + {5, 462}, // K + {5, 473}, // L + {8, 484}, // M + {6, 495}, // N + {6, 506}, // O + {6, 517}, // P + {6, 528}, // Q + {5, 539}, // R + {5, 550}, // S + {6, 561}, // T + {6, 572}, // U + {7, 583}, // V + {9, 594}, // W + {5, 616}, // X + {6, 627}, // Y + {5, 638}, // Z + {2, 649}, // [ + {4, 660}, /* \ */ + {2, 671}, // ] + {3, 682}, // ^ + {5, 693}, // _ + {2, 704}, // ` + {4, 715}, // a + {5, 726}, // b + {4, 737}, // c + {4, 748}, // d + {4, 759}, // e + {4, 770}, // f + {5, 781}, // g + {5, 792}, // h + {1, 803}, // i + {2, 814}, // j + {4, 825}, // k + {1, 836}, // l + {8, 847}, // m + {4, 858}, // n + {5, 869}, // o + {5, 880}, // p + {4, 891}, // q + {3, 902}, // r + {4, 913}, // s + {3, 924}, // t + {4, 935}, // u + {5, 946}, // v + {8, 957}, // w + {4, 968}, // x + {5, 979}, // y + {5, 990}, // z + {3, 1001}, // { + {1, 1012}, // | + {3, 1023}, // } + {6, 1034}, // ~ +}; + +// Font information for Roboto 8pt +const font_info_t _fonts_roboto_8pt_info = +{ + .height = 11, // Character height + .c = '!', // Start character + .char_start = '~', // End character + .char_end = 2, // Width, in pixels, of space character + .char_descriptors = _fonts_roboto_8pt_descriptors, // Character descriptor array + .bitmap = _fonts_roboto_8pt_bitmaps, // Character bitmap array +}; + +#endif /* _EXTRAS_FONTS_FONT_ROBOTO_8PT_H_ */ diff --git a/extras/fonts/data/font_terminus_10x18_iso8859_1.h b/extras/fonts/data/font_terminus_10x18_iso8859_1.h new file mode 100644 index 0000000..e8b829a --- /dev/null +++ b/extras/fonts/data/font_terminus_10x18_iso8859_1.h @@ -0,0 +1,5389 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 10x18 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:50:14 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_10X18_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_10X18_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_10x18_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x7f, 0x00, /* .#######........ */ + 0xff, 0x80, /* #########....... */ + 0x7f, 0x00, /* .#######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0024 */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + + /* Index: 0x02, char: \x03, offset: 0x0048 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x006c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x70, 0x00, /* .###............ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x08, 0x00, /* ....#........... */ + 0x0e, 0x00, /* ....###......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x44, 0x00, /* .#...#.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x08, 0x00, /* ....#........... */ + 0x0e, 0x00, /* ....###......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x00d8 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x00fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0120 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x64, 0x00, /* .##..#.......... */ + 0x54, 0x00, /* .#.#.#.......... */ + 0x4c, 0x00, /* .#..##.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0144 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0168 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0xf8, 0x00, /* #####........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x018c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf8, 0x00, /* #####........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x0c, char: \x0d, offset: 0x01b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x0d, char: \x0e, offset: 0x01d4 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x01f8 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0xff, 0xc0, /* ##########...... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x0f, char: \x10, offset: 0x021c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0264 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x02ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x02d0 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0f, 0xc0, /* ....######...... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x15, char: \x16, offset: 0x02f4 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0xf8, 0x00, /* #####........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x16, char: \x17, offset: 0x0318 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x033c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x18, char: \x19, offset: 0x0360 */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + + /* Index: 0x19, char: \x1a, offset: 0x0384 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x03a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x03cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0414 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x21, 0x00, /* ..#....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0438 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x045c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x04a4 */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x04c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x7f, 0x00, /* .#######........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x7f, 0x00, /* .#######........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x04ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0510 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0x00, /* .###...#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x72, 0x00, /* .###..#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x13, 0x80, /* ...#..###....... */ + 0x22, 0x80, /* ..#...#.#....... */ + 0x23, 0x80, /* ..#...###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0534 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x43, 0x00, /* .#....##........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x80, /* ..#...#.#....... */ + 0x1c, 0x80, /* ...###..#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0558 */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x057c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x05a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x05c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x060c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0654 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x069c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x18, 0x00, /* ...##........... */ + 0x28, 0x00, /* ..#.#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x06e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0708 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x072c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x03, 0x00, /* ......##........ */ + 0x05, 0x00, /* .....#.#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0750 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0774 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x07bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0804 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0828 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x084c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0870 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0894 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x08b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x08dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x47, 0x80, /* .#...####....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x49, 0x80, /* .#..#..##....... */ + 0x46, 0x80, /* .#...##.#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0924 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0948 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x096c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x09b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x4f, 0x00, /* .#..####........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x09fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0a44 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0a68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x48, 0x00, /* .#..#........... */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0a8c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x61, 0x80, /* .##....##....... */ + 0x52, 0x80, /* .#.#..#.#....... */ + 0x52, 0x80, /* .#.#..#.#....... */ + 0x4c, 0x80, /* .#..##..#....... */ + 0x4c, 0x80, /* .#..##..#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0ad4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0af8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0b1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0b64 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0b88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0bac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0bf4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x0c18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x4c, 0x80, /* .#..##..#....... */ + 0x4c, 0x80, /* .#..##..#....... */ + 0x52, 0x80, /* .#.#..#.#....... */ + 0x52, 0x80, /* .#.#..#.#....... */ + 0x61, 0x80, /* .##....##....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x0c3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x0c84 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0ca8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0ccc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0cf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0d14 */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0d38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x0d5c */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x0da4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x0dec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x0e10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x0e34 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x0e58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + + /* Index: 0x67, char: \x68, offset: 0x0e7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x0ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x0ec4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + + /* Index: 0x6a, char: \x6b, offset: 0x0ee8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x48, 0x00, /* .#..#........... */ + 0x70, 0x00, /* .###............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x0f0c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x0f30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x0f54 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x0f9c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + + /* Index: 0x70, char: \x71, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + + /* Index: 0x71, char: \x72, offset: 0x0fe4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x4f, 0x00, /* .#..####........ */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1008 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x102c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1074 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x10bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x10e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + + /* Index: 0x79, char: \x7a, offset: 0x1104 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1128 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x30, 0x00, /* ..##............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x114c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x06, 0x00, /* .....##......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1194 */ + 0x00, 0x00, /* ................ */ + 0x31, 0x00, /* ..##...#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x46, 0x00, /* .#...##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x11dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1224 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1248 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x126c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x12b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x12d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x12fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1320 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1344 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x138c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x13d4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x13f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x141c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1464 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1488 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x14ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x14d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x14f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x1518 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x153c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1584 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x15cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x15f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1614 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1638 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x165c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x16a4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x48, 0x00, /* .#..#........... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x16c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x21, 0x00, /* ..#....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x16ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1710 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1734 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x20, 0x00, /* ..#............. */ + 0x18, 0x00, /* ...##........... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x02, 0x00, /* ......#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x177c */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x9c, 0x80, /* #..###..#....... */ + 0xa2, 0x80, /* #.#...#.#....... */ + 0xa0, 0x80, /* #.#.....#....... */ + 0xa0, 0x80, /* #.#.....#....... */ + 0xa2, 0x80, /* #.#...#.#....... */ + 0x9c, 0x80, /* #..###..#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x17c4 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x01, 0x00, /* .......#........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x17e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x88, 0x00, /* #...#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x180c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x1830 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x1854 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0xbc, 0x80, /* #.####..#....... */ + 0xa2, 0x80, /* #.#...#.#....... */ + 0xa2, 0x80, /* #.#...#.#....... */ + 0xbc, 0x80, /* #.####..#....... */ + 0xa4, 0x80, /* #.#..#..#....... */ + 0xa2, 0x80, /* #.#...#.#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x1878 */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x189c */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x18e4 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x1908 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x02, 0x00, /* ......#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x02, 0x00, /* ......#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x192c */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x1950 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x7d, 0x00, /* .#####.#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + + /* Index: 0xb5, char: \xb6, offset: 0x1974 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x39, 0x00, /* ..###..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x09, 0x00, /* ....#..#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x19bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + + /* Index: 0xb8, char: \xb9, offset: 0x19e0 */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x1a04 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x1a28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x88, 0x00, /* #...#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x88, 0x00, /* #...#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x1a4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x60, 0x00, /* .##............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x11, 0x00, /* ...#...#........ */ + 0x23, 0x00, /* ..#...##........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x89, 0x00, /* #...#..#........ */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x1a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x60, 0x00, /* .##............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x26, 0x00, /* ..#..##......... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x81, 0x00, /* #......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x1a94 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xe0, 0x00, /* ###............. */ + 0x10, 0x00, /* ...#............ */ + 0x60, 0x80, /* .##.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0xe4, 0x00, /* ###..#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x11, 0x00, /* ...#...#........ */ + 0x23, 0x00, /* ..#...##........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x89, 0x00, /* #...#..#........ */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x1ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x1adc */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x1b00 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x1b24 */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x1b48 */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x1b6c */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x1b90 */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x1bb4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0xff, 0x00, /* ########........ */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x8f, 0x80, /* #...#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x1bd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + + /* Index: 0xc7, char: \xc8, offset: 0x1bfc */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x1c20 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x1c44 */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x1c68 */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x1c8c */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x1cb0 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x1cd4 */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x1cf8 */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x1d1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0xf9, 0x00, /* #####..#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x1d40 */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x1d64 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x1d88 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x1dac */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x1dd0 */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x1df4 */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x1e18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x1e3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x80, /* .#.....##....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0xc1, 0x00, /* ##.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x1e60 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x1e84 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x1ea8 */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x1ecc */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x1ef0 */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x1f14 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x1f38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x42, 0x00, /* .#....#......... */ + 0x42, 0x00, /* .#....#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x5e, 0x00, /* .#.####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x1f5c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x1fa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x1fc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x1fec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2010 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x2034 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x77, 0x00, /* .###.###........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x78, 0x80, /* .####...#....... */ + 0x8f, 0x80, /* #...#####....... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x00, /* #...#........... */ + 0x88, 0x80, /* #...#...#....... */ + 0x77, 0x00, /* .###.###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + + /* Index: 0xe7, char: \xe8, offset: 0x207c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x20a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x20c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x20e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x210c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x2154 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x219c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x2c, 0x00, /* ..#.##.......... */ + 0x10, 0x00, /* ...#............ */ + 0x68, 0x00, /* .##.#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x21e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2208 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x222c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x2250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x4c, 0x00, /* .#..##.......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2274 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x22bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x80, /* ..#####.#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x43, 0x00, /* .#....##........ */ + 0x45, 0x00, /* .#...#.#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x51, 0x00, /* .#.#...#........ */ + 0x61, 0x00, /* .##....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0xbe, 0x00, /* #.#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x22e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2304 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2328 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x234c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + + /* Index: 0xfd, char: \xfe, offset: 0x2394 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + + /* Index: 0xfe, char: \xff, offset: 0x23b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x22, 0x00, /* ..#...#......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x00, 0x00, /* ................ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ +}; + +const font_char_desc_t _fonts_terminus_10x18_iso8859_1_descriptors[] = { + { 0x0a, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0a, 0x0024 }, /* Index: 0x01, char: \x02 */ + { 0x0a, 0x0048 }, /* Index: 0x02, char: \x03 */ + { 0x0a, 0x006c }, /* Index: 0x03, char: \x04 */ + { 0x0a, 0x0090 }, /* Index: 0x04, char: \x05 */ + { 0x0a, 0x00b4 }, /* Index: 0x05, char: \x06 */ + { 0x0a, 0x00d8 }, /* Index: 0x06, char: \x07 */ + { 0x0a, 0x00fc }, /* Index: 0x07, char: \x08 */ + { 0x0a, 0x0120 }, /* Index: 0x08, char: \x09 */ + { 0x0a, 0x0144 }, /* Index: 0x09, char: \x0a */ + { 0x0a, 0x0168 }, /* Index: 0x0a, char: \x0b */ + { 0x0a, 0x018c }, /* Index: 0x0b, char: \x0c */ + { 0x0a, 0x01b0 }, /* Index: 0x0c, char: \x0d */ + { 0x0a, 0x01d4 }, /* Index: 0x0d, char: \x0e */ + { 0x0a, 0x01f8 }, /* Index: 0x0e, char: \x0f */ + { 0x0a, 0x021c }, /* Index: 0x0f, char: \x10 */ + { 0x0a, 0x0240 }, /* Index: 0x10, char: \x11 */ + { 0x0a, 0x0264 }, /* Index: 0x11, char: \x12 */ + { 0x0a, 0x0288 }, /* Index: 0x12, char: \x13 */ + { 0x0a, 0x02ac }, /* Index: 0x13, char: \x14 */ + { 0x0a, 0x02d0 }, /* Index: 0x14, char: \x15 */ + { 0x0a, 0x02f4 }, /* Index: 0x15, char: \x16 */ + { 0x0a, 0x0318 }, /* Index: 0x16, char: \x17 */ + { 0x0a, 0x033c }, /* Index: 0x17, char: \x18 */ + { 0x0a, 0x0360 }, /* Index: 0x18, char: \x19 */ + { 0x0a, 0x0384 }, /* Index: 0x19, char: \x1a */ + { 0x0a, 0x03a8 }, /* Index: 0x1a, char: \x1b */ + { 0x0a, 0x03cc }, /* Index: 0x1b, char: \x1c */ + { 0x0a, 0x03f0 }, /* Index: 0x1c, char: \x1d */ + { 0x0a, 0x0414 }, /* Index: 0x1d, char: \x1e */ + { 0x0a, 0x0438 }, /* Index: 0x1e, char: \x1f */ + { 0x0a, 0x045c }, /* Index: 0x1f, char: \x20 */ + { 0x0a, 0x0480 }, /* Index: 0x20, char: \x21 */ + { 0x0a, 0x04a4 }, /* Index: 0x21, char: \x22 */ + { 0x0a, 0x04c8 }, /* Index: 0x22, char: \x23 */ + { 0x0a, 0x04ec }, /* Index: 0x23, char: \x24 */ + { 0x0a, 0x0510 }, /* Index: 0x24, char: \x25 */ + { 0x0a, 0x0534 }, /* Index: 0x25, char: \x26 */ + { 0x0a, 0x0558 }, /* Index: 0x26, char: \x27 */ + { 0x0a, 0x057c }, /* Index: 0x27, char: \x28 */ + { 0x0a, 0x05a0 }, /* Index: 0x28, char: \x29 */ + { 0x0a, 0x05c4 }, /* Index: 0x29, char: \x2a */ + { 0x0a, 0x05e8 }, /* Index: 0x2a, char: \x2b */ + { 0x0a, 0x060c }, /* Index: 0x2b, char: \x2c */ + { 0x0a, 0x0630 }, /* Index: 0x2c, char: \x2d */ + { 0x0a, 0x0654 }, /* Index: 0x2d, char: \x2e */ + { 0x0a, 0x0678 }, /* Index: 0x2e, char: \x2f */ + { 0x0a, 0x069c }, /* Index: 0x2f, char: \x30 */ + { 0x0a, 0x06c0 }, /* Index: 0x30, char: \x31 */ + { 0x0a, 0x06e4 }, /* Index: 0x31, char: \x32 */ + { 0x0a, 0x0708 }, /* Index: 0x32, char: \x33 */ + { 0x0a, 0x072c }, /* Index: 0x33, char: \x34 */ + { 0x0a, 0x0750 }, /* Index: 0x34, char: \x35 */ + { 0x0a, 0x0774 }, /* Index: 0x35, char: \x36 */ + { 0x0a, 0x0798 }, /* Index: 0x36, char: \x37 */ + { 0x0a, 0x07bc }, /* Index: 0x37, char: \x38 */ + { 0x0a, 0x07e0 }, /* Index: 0x38, char: \x39 */ + { 0x0a, 0x0804 }, /* Index: 0x39, char: \x3a */ + { 0x0a, 0x0828 }, /* Index: 0x3a, char: \x3b */ + { 0x0a, 0x084c }, /* Index: 0x3b, char: \x3c */ + { 0x0a, 0x0870 }, /* Index: 0x3c, char: \x3d */ + { 0x0a, 0x0894 }, /* Index: 0x3d, char: \x3e */ + { 0x0a, 0x08b8 }, /* Index: 0x3e, char: \x3f */ + { 0x0a, 0x08dc }, /* Index: 0x3f, char: \x40 */ + { 0x0a, 0x0900 }, /* Index: 0x40, char: \x41 */ + { 0x0a, 0x0924 }, /* Index: 0x41, char: \x42 */ + { 0x0a, 0x0948 }, /* Index: 0x42, char: \x43 */ + { 0x0a, 0x096c }, /* Index: 0x43, char: \x44 */ + { 0x0a, 0x0990 }, /* Index: 0x44, char: \x45 */ + { 0x0a, 0x09b4 }, /* Index: 0x45, char: \x46 */ + { 0x0a, 0x09d8 }, /* Index: 0x46, char: \x47 */ + { 0x0a, 0x09fc }, /* Index: 0x47, char: \x48 */ + { 0x0a, 0x0a20 }, /* Index: 0x48, char: \x49 */ + { 0x0a, 0x0a44 }, /* Index: 0x49, char: \x4a */ + { 0x0a, 0x0a68 }, /* Index: 0x4a, char: \x4b */ + { 0x0a, 0x0a8c }, /* Index: 0x4b, char: \x4c */ + { 0x0a, 0x0ab0 }, /* Index: 0x4c, char: \x4d */ + { 0x0a, 0x0ad4 }, /* Index: 0x4d, char: \x4e */ + { 0x0a, 0x0af8 }, /* Index: 0x4e, char: \x4f */ + { 0x0a, 0x0b1c }, /* Index: 0x4f, char: \x50 */ + { 0x0a, 0x0b40 }, /* Index: 0x50, char: \x51 */ + { 0x0a, 0x0b64 }, /* Index: 0x51, char: \x52 */ + { 0x0a, 0x0b88 }, /* Index: 0x52, char: \x53 */ + { 0x0a, 0x0bac }, /* Index: 0x53, char: \x54 */ + { 0x0a, 0x0bd0 }, /* Index: 0x54, char: \x55 */ + { 0x0a, 0x0bf4 }, /* Index: 0x55, char: \x56 */ + { 0x0a, 0x0c18 }, /* Index: 0x56, char: \x57 */ + { 0x0a, 0x0c3c }, /* Index: 0x57, char: \x58 */ + { 0x0a, 0x0c60 }, /* Index: 0x58, char: \x59 */ + { 0x0a, 0x0c84 }, /* Index: 0x59, char: \x5a */ + { 0x0a, 0x0ca8 }, /* Index: 0x5a, char: \x5b */ + { 0x0a, 0x0ccc }, /* Index: 0x5b, char: \x5c */ + { 0x0a, 0x0cf0 }, /* Index: 0x5c, char: \x5d */ + { 0x0a, 0x0d14 }, /* Index: 0x5d, char: \x5e */ + { 0x0a, 0x0d38 }, /* Index: 0x5e, char: \x5f */ + { 0x0a, 0x0d5c }, /* Index: 0x5f, char: \x60 */ + { 0x0a, 0x0d80 }, /* Index: 0x60, char: \x61 */ + { 0x0a, 0x0da4 }, /* Index: 0x61, char: \x62 */ + { 0x0a, 0x0dc8 }, /* Index: 0x62, char: \x63 */ + { 0x0a, 0x0dec }, /* Index: 0x63, char: \x64 */ + { 0x0a, 0x0e10 }, /* Index: 0x64, char: \x65 */ + { 0x0a, 0x0e34 }, /* Index: 0x65, char: \x66 */ + { 0x0a, 0x0e58 }, /* Index: 0x66, char: \x67 */ + { 0x0a, 0x0e7c }, /* Index: 0x67, char: \x68 */ + { 0x0a, 0x0ea0 }, /* Index: 0x68, char: \x69 */ + { 0x0a, 0x0ec4 }, /* Index: 0x69, char: \x6a */ + { 0x0a, 0x0ee8 }, /* Index: 0x6a, char: \x6b */ + { 0x0a, 0x0f0c }, /* Index: 0x6b, char: \x6c */ + { 0x0a, 0x0f30 }, /* Index: 0x6c, char: \x6d */ + { 0x0a, 0x0f54 }, /* Index: 0x6d, char: \x6e */ + { 0x0a, 0x0f78 }, /* Index: 0x6e, char: \x6f */ + { 0x0a, 0x0f9c }, /* Index: 0x6f, char: \x70 */ + { 0x0a, 0x0fc0 }, /* Index: 0x70, char: \x71 */ + { 0x0a, 0x0fe4 }, /* Index: 0x71, char: \x72 */ + { 0x0a, 0x1008 }, /* Index: 0x72, char: \x73 */ + { 0x0a, 0x102c }, /* Index: 0x73, char: \x74 */ + { 0x0a, 0x1050 }, /* Index: 0x74, char: \x75 */ + { 0x0a, 0x1074 }, /* Index: 0x75, char: \x76 */ + { 0x0a, 0x1098 }, /* Index: 0x76, char: \x77 */ + { 0x0a, 0x10bc }, /* Index: 0x77, char: \x78 */ + { 0x0a, 0x10e0 }, /* Index: 0x78, char: \x79 */ + { 0x0a, 0x1104 }, /* Index: 0x79, char: \x7a */ + { 0x0a, 0x1128 }, /* Index: 0x7a, char: \x7b */ + { 0x0a, 0x114c }, /* Index: 0x7b, char: \x7c */ + { 0x0a, 0x1170 }, /* Index: 0x7c, char: \x7d */ + { 0x0a, 0x1194 }, /* Index: 0x7d, char: \x7e */ + { 0x0a, 0x11b8 }, /* Index: 0x7e, char: \x7f */ + { 0x0a, 0x11dc }, /* Index: 0x7f, char: \x80 */ + { 0x0a, 0x1200 }, /* Index: 0x80, char: \x81 */ + { 0x0a, 0x1224 }, /* Index: 0x81, char: \x82 */ + { 0x0a, 0x1248 }, /* Index: 0x82, char: \x83 */ + { 0x0a, 0x126c }, /* Index: 0x83, char: \x84 */ + { 0x0a, 0x1290 }, /* Index: 0x84, char: \x85 */ + { 0x0a, 0x12b4 }, /* Index: 0x85, char: \x86 */ + { 0x0a, 0x12d8 }, /* Index: 0x86, char: \x87 */ + { 0x0a, 0x12fc }, /* Index: 0x87, char: \x88 */ + { 0x0a, 0x1320 }, /* Index: 0x88, char: \x89 */ + { 0x0a, 0x1344 }, /* Index: 0x89, char: \x8a */ + { 0x0a, 0x1368 }, /* Index: 0x8a, char: \x8b */ + { 0x0a, 0x138c }, /* Index: 0x8b, char: \x8c */ + { 0x0a, 0x13b0 }, /* Index: 0x8c, char: \x8d */ + { 0x0a, 0x13d4 }, /* Index: 0x8d, char: \x8e */ + { 0x0a, 0x13f8 }, /* Index: 0x8e, char: \x8f */ + { 0x0a, 0x141c }, /* Index: 0x8f, char: \x90 */ + { 0x0a, 0x1440 }, /* Index: 0x90, char: \x91 */ + { 0x0a, 0x1464 }, /* Index: 0x91, char: \x92 */ + { 0x0a, 0x1488 }, /* Index: 0x92, char: \x93 */ + { 0x0a, 0x14ac }, /* Index: 0x93, char: \x94 */ + { 0x0a, 0x14d0 }, /* Index: 0x94, char: \x95 */ + { 0x0a, 0x14f4 }, /* Index: 0x95, char: \x96 */ + { 0x0a, 0x1518 }, /* Index: 0x96, char: \x97 */ + { 0x0a, 0x153c }, /* Index: 0x97, char: \x98 */ + { 0x0a, 0x1560 }, /* Index: 0x98, char: \x99 */ + { 0x0a, 0x1584 }, /* Index: 0x99, char: \x9a */ + { 0x0a, 0x15a8 }, /* Index: 0x9a, char: \x9b */ + { 0x0a, 0x15cc }, /* Index: 0x9b, char: \x9c */ + { 0x0a, 0x15f0 }, /* Index: 0x9c, char: \x9d */ + { 0x0a, 0x1614 }, /* Index: 0x9d, char: \x9e */ + { 0x0a, 0x1638 }, /* Index: 0x9e, char: \x9f */ + { 0x0a, 0x165c }, /* Index: 0x9f, char: \xa0 */ + { 0x0a, 0x1680 }, /* Index: 0xa0, char: \xa1 */ + { 0x0a, 0x16a4 }, /* Index: 0xa1, char: \xa2 */ + { 0x0a, 0x16c8 }, /* Index: 0xa2, char: \xa3 */ + { 0x0a, 0x16ec }, /* Index: 0xa3, char: \xa4 */ + { 0x0a, 0x1710 }, /* Index: 0xa4, char: \xa5 */ + { 0x0a, 0x1734 }, /* Index: 0xa5, char: \xa6 */ + { 0x0a, 0x1758 }, /* Index: 0xa6, char: \xa7 */ + { 0x0a, 0x177c }, /* Index: 0xa7, char: \xa8 */ + { 0x0a, 0x17a0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0a, 0x17c4 }, /* Index: 0xa9, char: \xaa */ + { 0x0a, 0x17e8 }, /* Index: 0xaa, char: \xab */ + { 0x0a, 0x180c }, /* Index: 0xab, char: \xac */ + { 0x0a, 0x1830 }, /* Index: 0xac, char: \xad */ + { 0x0a, 0x1854 }, /* Index: 0xad, char: \xae */ + { 0x0a, 0x1878 }, /* Index: 0xae, char: \xaf */ + { 0x0a, 0x189c }, /* Index: 0xaf, char: \xb0 */ + { 0x0a, 0x18c0 }, /* Index: 0xb0, char: \xb1 */ + { 0x0a, 0x18e4 }, /* Index: 0xb1, char: \xb2 */ + { 0x0a, 0x1908 }, /* Index: 0xb2, char: \xb3 */ + { 0x0a, 0x192c }, /* Index: 0xb3, char: \xb4 */ + { 0x0a, 0x1950 }, /* Index: 0xb4, char: \xb5 */ + { 0x0a, 0x1974 }, /* Index: 0xb5, char: \xb6 */ + { 0x0a, 0x1998 }, /* Index: 0xb6, char: \xb7 */ + { 0x0a, 0x19bc }, /* Index: 0xb7, char: \xb8 */ + { 0x0a, 0x19e0 }, /* Index: 0xb8, char: \xb9 */ + { 0x0a, 0x1a04 }, /* Index: 0xb9, char: \xba */ + { 0x0a, 0x1a28 }, /* Index: 0xba, char: \xbb */ + { 0x0a, 0x1a4c }, /* Index: 0xbb, char: \xbc */ + { 0x0a, 0x1a70 }, /* Index: 0xbc, char: \xbd */ + { 0x0a, 0x1a94 }, /* Index: 0xbd, char: \xbe */ + { 0x0a, 0x1ab8 }, /* Index: 0xbe, char: \xbf */ + { 0x0a, 0x1adc }, /* Index: 0xbf, char: \xc0 */ + { 0x0a, 0x1b00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0a, 0x1b24 }, /* Index: 0xc1, char: \xc2 */ + { 0x0a, 0x1b48 }, /* Index: 0xc2, char: \xc3 */ + { 0x0a, 0x1b6c }, /* Index: 0xc3, char: \xc4 */ + { 0x0a, 0x1b90 }, /* Index: 0xc4, char: \xc5 */ + { 0x0a, 0x1bb4 }, /* Index: 0xc5, char: \xc6 */ + { 0x0a, 0x1bd8 }, /* Index: 0xc6, char: \xc7 */ + { 0x0a, 0x1bfc }, /* Index: 0xc7, char: \xc8 */ + { 0x0a, 0x1c20 }, /* Index: 0xc8, char: \xc9 */ + { 0x0a, 0x1c44 }, /* Index: 0xc9, char: \xca */ + { 0x0a, 0x1c68 }, /* Index: 0xca, char: \xcb */ + { 0x0a, 0x1c8c }, /* Index: 0xcb, char: \xcc */ + { 0x0a, 0x1cb0 }, /* Index: 0xcc, char: \xcd */ + { 0x0a, 0x1cd4 }, /* Index: 0xcd, char: \xce */ + { 0x0a, 0x1cf8 }, /* Index: 0xce, char: \xcf */ + { 0x0a, 0x1d1c }, /* Index: 0xcf, char: \xd0 */ + { 0x0a, 0x1d40 }, /* Index: 0xd0, char: \xd1 */ + { 0x0a, 0x1d64 }, /* Index: 0xd1, char: \xd2 */ + { 0x0a, 0x1d88 }, /* Index: 0xd2, char: \xd3 */ + { 0x0a, 0x1dac }, /* Index: 0xd3, char: \xd4 */ + { 0x0a, 0x1dd0 }, /* Index: 0xd4, char: \xd5 */ + { 0x0a, 0x1df4 }, /* Index: 0xd5, char: \xd6 */ + { 0x0a, 0x1e18 }, /* Index: 0xd6, char: \xd7 */ + { 0x0a, 0x1e3c }, /* Index: 0xd7, char: \xd8 */ + { 0x0a, 0x1e60 }, /* Index: 0xd8, char: \xd9 */ + { 0x0a, 0x1e84 }, /* Index: 0xd9, char: \xda */ + { 0x0a, 0x1ea8 }, /* Index: 0xda, char: \xdb */ + { 0x0a, 0x1ecc }, /* Index: 0xdb, char: \xdc */ + { 0x0a, 0x1ef0 }, /* Index: 0xdc, char: \xdd */ + { 0x0a, 0x1f14 }, /* Index: 0xdd, char: \xde */ + { 0x0a, 0x1f38 }, /* Index: 0xde, char: \xdf */ + { 0x0a, 0x1f5c }, /* Index: 0xdf, char: \xe0 */ + { 0x0a, 0x1f80 }, /* Index: 0xe0, char: \xe1 */ + { 0x0a, 0x1fa4 }, /* Index: 0xe1, char: \xe2 */ + { 0x0a, 0x1fc8 }, /* Index: 0xe2, char: \xe3 */ + { 0x0a, 0x1fec }, /* Index: 0xe3, char: \xe4 */ + { 0x0a, 0x2010 }, /* Index: 0xe4, char: \xe5 */ + { 0x0a, 0x2034 }, /* Index: 0xe5, char: \xe6 */ + { 0x0a, 0x2058 }, /* Index: 0xe6, char: \xe7 */ + { 0x0a, 0x207c }, /* Index: 0xe7, char: \xe8 */ + { 0x0a, 0x20a0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0a, 0x20c4 }, /* Index: 0xe9, char: \xea */ + { 0x0a, 0x20e8 }, /* Index: 0xea, char: \xeb */ + { 0x0a, 0x210c }, /* Index: 0xeb, char: \xec */ + { 0x0a, 0x2130 }, /* Index: 0xec, char: \xed */ + { 0x0a, 0x2154 }, /* Index: 0xed, char: \xee */ + { 0x0a, 0x2178 }, /* Index: 0xee, char: \xef */ + { 0x0a, 0x219c }, /* Index: 0xef, char: \xf0 */ + { 0x0a, 0x21c0 }, /* Index: 0xf0, char: \xf1 */ + { 0x0a, 0x21e4 }, /* Index: 0xf1, char: \xf2 */ + { 0x0a, 0x2208 }, /* Index: 0xf2, char: \xf3 */ + { 0x0a, 0x222c }, /* Index: 0xf3, char: \xf4 */ + { 0x0a, 0x2250 }, /* Index: 0xf4, char: \xf5 */ + { 0x0a, 0x2274 }, /* Index: 0xf5, char: \xf6 */ + { 0x0a, 0x2298 }, /* Index: 0xf6, char: \xf7 */ + { 0x0a, 0x22bc }, /* Index: 0xf7, char: \xf8 */ + { 0x0a, 0x22e0 }, /* Index: 0xf8, char: \xf9 */ + { 0x0a, 0x2304 }, /* Index: 0xf9, char: \xfa */ + { 0x0a, 0x2328 }, /* Index: 0xfa, char: \xfb */ + { 0x0a, 0x234c }, /* Index: 0xfb, char: \xfc */ + { 0x0a, 0x2370 }, /* Index: 0xfc, char: \xfd */ + { 0x0a, 0x2394 }, /* Index: 0xfd, char: \xfe */ + { 0x0a, 0x23b8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_10x18_iso8859_1_info = +{ + .height = 18, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_10x18_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_10x18_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_10X18_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_11x22_iso8859_1.h b/extras/fonts/data/font_terminus_11x22_iso8859_1.h new file mode 100644 index 0000000..d0dfd0e --- /dev/null +++ b/extras/fonts/data/font_terminus_11x22_iso8859_1.h @@ -0,0 +1,6409 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 11x22 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:52:29 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_11X22_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_11X22_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_11x22_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x002c */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + + /* Index: 0x02, char: \x03, offset: 0x0058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x0084 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x70, 0x00, /* .###............ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0e, 0x00, /* ....###......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x44, 0x00, /* .#...#.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x09, 0x00, /* ....#..#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0e, 0x00, /* ....###......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0108 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0134 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0160 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x64, 0x00, /* .##..#.......... */ + 0x54, 0x00, /* .#.#.#.......... */ + 0x4c, 0x00, /* .#..##.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x018c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x01b8 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x01e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0x00, /* ######.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0210 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0d, char: \x0e, offset: 0x023c */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0268 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xff, 0xe0, /* ###########..... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0f, char: \x10, offset: 0x0294 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x02ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0318 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0344 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0370 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0xe0, /* .....######..... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x15, char: \x16, offset: 0x039c */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x16, char: \x17, offset: 0x03c8 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x03f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x18, char: \x19, offset: 0x0420 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x19, char: \x1a, offset: 0x044c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0478 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x04a4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x04d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x7f, 0x80, /* .########....... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x04fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x0554 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x05ac */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x05d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x0604 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x80, /* .....#..#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x80, /* ..##....#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x31, 0x00, /* ..##...#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x11, 0x80, /* ...#...##....... */ + 0x12, 0x40, /* ...#..#..#...... */ + 0x22, 0x40, /* ..#...#..#...... */ + 0x21, 0x80, /* ..#....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x065c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x40, /* ..#...#..#...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x40, /* ..#....#.#...... */ + 0x1e, 0x40, /* ...####..#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0688 */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x06b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x06e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x070c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0764 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x07bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x07e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0814 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x60, 0x80, /* .##.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x086c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0898 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x08c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x80, /* .......##....... */ + 0x02, 0x80, /* ......#.#....... */ + 0x04, 0x80, /* .....#..#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x08f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x091c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0948 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0974 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x09cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x09f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0a24 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0a50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0a7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0aa8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0ad4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x43, 0xc0, /* .#....####...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x43, 0xc0, /* .#....####...... */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x00, /* ..#............. */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0b2c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0b84 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0bb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0bdc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x47, 0x80, /* .#...####....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0c34 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0c8c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0cb8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x48, 0x00, /* .#..#........... */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0ce4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x4a, 0x40, /* .#..#.#..#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0d3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x60, 0x80, /* .##.....#....... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0d68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0d94 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x25, 0x00, /* ..#..#.#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0dec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0e18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x00, /* ..#............. */ + 0x1e, 0x00, /* ...####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0e44 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0e9c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x0ec8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x4a, 0x40, /* .#..#.#..#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x0ef4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x0f20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x0f4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0fa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0fd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0ffc */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x1054 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x10ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x1104 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x115c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x11b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x11e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x120c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1238 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1264 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x44, 0x80, /* .#...#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x12bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x12e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1314 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x136c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x4f, 0x80, /* .#..#####....... */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1398 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x13c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x7f, 0x00, /* .#######........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x07, 0x80, /* .....####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x13f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x141c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1474 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x14a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x14cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x14f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x30, 0x00, /* ..##............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1524 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1550 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x03, 0x00, /* ......##........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x157c */ + 0x00, 0x00, /* ................ */ + 0x30, 0x80, /* ..##....#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x43, 0x00, /* .#....##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x15d4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x162c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1684 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x16b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x16dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1708 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1734 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1760 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x178c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x17b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x17e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x183c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1868 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1894 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x18ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1918 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x1944 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x1970 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x199c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x19c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x19f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1a4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x1aa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x1ad0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1afc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x1b54 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x1bac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x1bd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x1c04 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1c5c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1c88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x1cb4 */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x4e, 0x40, /* .#..###..#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x4e, 0x40, /* .#..###..#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x1d0c */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x1d38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x40, /* .....#...#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x1d64 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x1d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x1dbc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x5e, 0x40, /* .#.####..#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x5e, 0x40, /* .#.####..#...... */ + 0x54, 0x40, /* .#.#.#...#...... */ + 0x52, 0x40, /* .#.#..#..#...... */ + 0x51, 0x40, /* .#.#...#.#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x1de8 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x1e14 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x1e6c */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x1e98 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x01, 0x00, /* .......#........ */ + 0x06, 0x00, /* .....##......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x1ec4 */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x1ef0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x7c, 0x80, /* .#####..#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x1f1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x3c, 0x40, /* ..####...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x1f48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x1f74 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x1fa0 */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x1fcc */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x1ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2024 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x30, 0x00, /* ..##............ */ + 0x50, 0x00, /* .#.#............ */ + 0x10, 0x40, /* ...#.....#...... */ + 0x10, 0x80, /* ...#....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x80, /* ...#...##....... */ + 0x22, 0x80, /* ..#...#.#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x30, 0x00, /* ..##............ */ + 0x50, 0x00, /* .#.#............ */ + 0x10, 0x40, /* ...#.....#...... */ + 0x10, 0x80, /* ...#....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x13, 0x80, /* ...#..###....... */ + 0x24, 0x40, /* ..#..#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x207c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x18, 0x00, /* ...##........... */ + 0x04, 0x40, /* .....#...#...... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x39, 0x00, /* ..###..#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x80, /* .....#..#....... */ + 0x09, 0x80, /* ....#..##....... */ + 0x12, 0x80, /* ...#..#.#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x20a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x20d4 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2100 */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x212c */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2158 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2184 */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x21b0 */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x21dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x44, 0x00, /* .#...#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x87, 0xc0, /* #....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2208 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2234 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2260 */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x228c */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x22b8 */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x22e4 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2310 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x233c */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2368 */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2394 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0xf8, 0x80, /* #####...#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x23c0 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x60, 0x80, /* .##.....#....... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x23ec */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2418 */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2444 */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2470 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x249c */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x24c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x24f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0xc0, /* .#......##...... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x60, 0x80, /* .##.....#....... */ + 0x40, 0x80, /* .#......#....... */ + 0xc0, 0x80, /* ##......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2520 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x254c */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2578 */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x25a4 */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x25d0 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x25fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x2628 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x61, 0x00, /* .##....#........ */ + 0x5e, 0x00, /* .#.####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x2654 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x26ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x26d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x2704 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x275c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7b, 0xc0, /* .####.####...... */ + 0x04, 0x20, /* .....#....#..... */ + 0x04, 0x20, /* .....#....#..... */ + 0x04, 0x20, /* .....#....#..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x20, /* #....#....#..... */ + 0x7b, 0xc0, /* .####.####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2788 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x27b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x27e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x280c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x2838 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x80, /* .########....... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x2864 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2890 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x28bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x28e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x2914 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x2c, 0x00, /* ..#.##.......... */ + 0x10, 0x00, /* ...#............ */ + 0x68, 0x00, /* .##.#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x00, /* ..##...#........ */ + 0x49, 0x00, /* .#..#..#........ */ + 0x46, 0x00, /* .#...##......... */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x296c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x29c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x29f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2a1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x2a74 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x40, /* ...####..#...... */ + 0x21, 0x80, /* ..#....##....... */ + 0x41, 0x80, /* .#.....##....... */ + 0x42, 0x80, /* .#....#.#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x60, 0x80, /* .##.....#....... */ + 0x61, 0x00, /* .##....#........ */ + 0x9e, 0x00, /* #..####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x2aa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2acc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2af8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x12, 0x00, /* ...#..#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x2b24 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x2b7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7e, 0x00, /* .######......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7e, 0x00, /* .######......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x2ba8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_11x22_iso8859_1_descriptors[] = { + { 0x0b, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0b, 0x002c }, /* Index: 0x01, char: \x02 */ + { 0x0b, 0x0058 }, /* Index: 0x02, char: \x03 */ + { 0x0b, 0x0084 }, /* Index: 0x03, char: \x04 */ + { 0x0b, 0x00b0 }, /* Index: 0x04, char: \x05 */ + { 0x0b, 0x00dc }, /* Index: 0x05, char: \x06 */ + { 0x0b, 0x0108 }, /* Index: 0x06, char: \x07 */ + { 0x0b, 0x0134 }, /* Index: 0x07, char: \x08 */ + { 0x0b, 0x0160 }, /* Index: 0x08, char: \x09 */ + { 0x0b, 0x018c }, /* Index: 0x09, char: \x0a */ + { 0x0b, 0x01b8 }, /* Index: 0x0a, char: \x0b */ + { 0x0b, 0x01e4 }, /* Index: 0x0b, char: \x0c */ + { 0x0b, 0x0210 }, /* Index: 0x0c, char: \x0d */ + { 0x0b, 0x023c }, /* Index: 0x0d, char: \x0e */ + { 0x0b, 0x0268 }, /* Index: 0x0e, char: \x0f */ + { 0x0b, 0x0294 }, /* Index: 0x0f, char: \x10 */ + { 0x0b, 0x02c0 }, /* Index: 0x10, char: \x11 */ + { 0x0b, 0x02ec }, /* Index: 0x11, char: \x12 */ + { 0x0b, 0x0318 }, /* Index: 0x12, char: \x13 */ + { 0x0b, 0x0344 }, /* Index: 0x13, char: \x14 */ + { 0x0b, 0x0370 }, /* Index: 0x14, char: \x15 */ + { 0x0b, 0x039c }, /* Index: 0x15, char: \x16 */ + { 0x0b, 0x03c8 }, /* Index: 0x16, char: \x17 */ + { 0x0b, 0x03f4 }, /* Index: 0x17, char: \x18 */ + { 0x0b, 0x0420 }, /* Index: 0x18, char: \x19 */ + { 0x0b, 0x044c }, /* Index: 0x19, char: \x1a */ + { 0x0b, 0x0478 }, /* Index: 0x1a, char: \x1b */ + { 0x0b, 0x04a4 }, /* Index: 0x1b, char: \x1c */ + { 0x0b, 0x04d0 }, /* Index: 0x1c, char: \x1d */ + { 0x0b, 0x04fc }, /* Index: 0x1d, char: \x1e */ + { 0x0b, 0x0528 }, /* Index: 0x1e, char: \x1f */ + { 0x0b, 0x0554 }, /* Index: 0x1f, char: \x20 */ + { 0x0b, 0x0580 }, /* Index: 0x20, char: \x21 */ + { 0x0b, 0x05ac }, /* Index: 0x21, char: \x22 */ + { 0x0b, 0x05d8 }, /* Index: 0x22, char: \x23 */ + { 0x0b, 0x0604 }, /* Index: 0x23, char: \x24 */ + { 0x0b, 0x0630 }, /* Index: 0x24, char: \x25 */ + { 0x0b, 0x065c }, /* Index: 0x25, char: \x26 */ + { 0x0b, 0x0688 }, /* Index: 0x26, char: \x27 */ + { 0x0b, 0x06b4 }, /* Index: 0x27, char: \x28 */ + { 0x0b, 0x06e0 }, /* Index: 0x28, char: \x29 */ + { 0x0b, 0x070c }, /* Index: 0x29, char: \x2a */ + { 0x0b, 0x0738 }, /* Index: 0x2a, char: \x2b */ + { 0x0b, 0x0764 }, /* Index: 0x2b, char: \x2c */ + { 0x0b, 0x0790 }, /* Index: 0x2c, char: \x2d */ + { 0x0b, 0x07bc }, /* Index: 0x2d, char: \x2e */ + { 0x0b, 0x07e8 }, /* Index: 0x2e, char: \x2f */ + { 0x0b, 0x0814 }, /* Index: 0x2f, char: \x30 */ + { 0x0b, 0x0840 }, /* Index: 0x30, char: \x31 */ + { 0x0b, 0x086c }, /* Index: 0x31, char: \x32 */ + { 0x0b, 0x0898 }, /* Index: 0x32, char: \x33 */ + { 0x0b, 0x08c4 }, /* Index: 0x33, char: \x34 */ + { 0x0b, 0x08f0 }, /* Index: 0x34, char: \x35 */ + { 0x0b, 0x091c }, /* Index: 0x35, char: \x36 */ + { 0x0b, 0x0948 }, /* Index: 0x36, char: \x37 */ + { 0x0b, 0x0974 }, /* Index: 0x37, char: \x38 */ + { 0x0b, 0x09a0 }, /* Index: 0x38, char: \x39 */ + { 0x0b, 0x09cc }, /* Index: 0x39, char: \x3a */ + { 0x0b, 0x09f8 }, /* Index: 0x3a, char: \x3b */ + { 0x0b, 0x0a24 }, /* Index: 0x3b, char: \x3c */ + { 0x0b, 0x0a50 }, /* Index: 0x3c, char: \x3d */ + { 0x0b, 0x0a7c }, /* Index: 0x3d, char: \x3e */ + { 0x0b, 0x0aa8 }, /* Index: 0x3e, char: \x3f */ + { 0x0b, 0x0ad4 }, /* Index: 0x3f, char: \x40 */ + { 0x0b, 0x0b00 }, /* Index: 0x40, char: \x41 */ + { 0x0b, 0x0b2c }, /* Index: 0x41, char: \x42 */ + { 0x0b, 0x0b58 }, /* Index: 0x42, char: \x43 */ + { 0x0b, 0x0b84 }, /* Index: 0x43, char: \x44 */ + { 0x0b, 0x0bb0 }, /* Index: 0x44, char: \x45 */ + { 0x0b, 0x0bdc }, /* Index: 0x45, char: \x46 */ + { 0x0b, 0x0c08 }, /* Index: 0x46, char: \x47 */ + { 0x0b, 0x0c34 }, /* Index: 0x47, char: \x48 */ + { 0x0b, 0x0c60 }, /* Index: 0x48, char: \x49 */ + { 0x0b, 0x0c8c }, /* Index: 0x49, char: \x4a */ + { 0x0b, 0x0cb8 }, /* Index: 0x4a, char: \x4b */ + { 0x0b, 0x0ce4 }, /* Index: 0x4b, char: \x4c */ + { 0x0b, 0x0d10 }, /* Index: 0x4c, char: \x4d */ + { 0x0b, 0x0d3c }, /* Index: 0x4d, char: \x4e */ + { 0x0b, 0x0d68 }, /* Index: 0x4e, char: \x4f */ + { 0x0b, 0x0d94 }, /* Index: 0x4f, char: \x50 */ + { 0x0b, 0x0dc0 }, /* Index: 0x50, char: \x51 */ + { 0x0b, 0x0dec }, /* Index: 0x51, char: \x52 */ + { 0x0b, 0x0e18 }, /* Index: 0x52, char: \x53 */ + { 0x0b, 0x0e44 }, /* Index: 0x53, char: \x54 */ + { 0x0b, 0x0e70 }, /* Index: 0x54, char: \x55 */ + { 0x0b, 0x0e9c }, /* Index: 0x55, char: \x56 */ + { 0x0b, 0x0ec8 }, /* Index: 0x56, char: \x57 */ + { 0x0b, 0x0ef4 }, /* Index: 0x57, char: \x58 */ + { 0x0b, 0x0f20 }, /* Index: 0x58, char: \x59 */ + { 0x0b, 0x0f4c }, /* Index: 0x59, char: \x5a */ + { 0x0b, 0x0f78 }, /* Index: 0x5a, char: \x5b */ + { 0x0b, 0x0fa4 }, /* Index: 0x5b, char: \x5c */ + { 0x0b, 0x0fd0 }, /* Index: 0x5c, char: \x5d */ + { 0x0b, 0x0ffc }, /* Index: 0x5d, char: \x5e */ + { 0x0b, 0x1028 }, /* Index: 0x5e, char: \x5f */ + { 0x0b, 0x1054 }, /* Index: 0x5f, char: \x60 */ + { 0x0b, 0x1080 }, /* Index: 0x60, char: \x61 */ + { 0x0b, 0x10ac }, /* Index: 0x61, char: \x62 */ + { 0x0b, 0x10d8 }, /* Index: 0x62, char: \x63 */ + { 0x0b, 0x1104 }, /* Index: 0x63, char: \x64 */ + { 0x0b, 0x1130 }, /* Index: 0x64, char: \x65 */ + { 0x0b, 0x115c }, /* Index: 0x65, char: \x66 */ + { 0x0b, 0x1188 }, /* Index: 0x66, char: \x67 */ + { 0x0b, 0x11b4 }, /* Index: 0x67, char: \x68 */ + { 0x0b, 0x11e0 }, /* Index: 0x68, char: \x69 */ + { 0x0b, 0x120c }, /* Index: 0x69, char: \x6a */ + { 0x0b, 0x1238 }, /* Index: 0x6a, char: \x6b */ + { 0x0b, 0x1264 }, /* Index: 0x6b, char: \x6c */ + { 0x0b, 0x1290 }, /* Index: 0x6c, char: \x6d */ + { 0x0b, 0x12bc }, /* Index: 0x6d, char: \x6e */ + { 0x0b, 0x12e8 }, /* Index: 0x6e, char: \x6f */ + { 0x0b, 0x1314 }, /* Index: 0x6f, char: \x70 */ + { 0x0b, 0x1340 }, /* Index: 0x70, char: \x71 */ + { 0x0b, 0x136c }, /* Index: 0x71, char: \x72 */ + { 0x0b, 0x1398 }, /* Index: 0x72, char: \x73 */ + { 0x0b, 0x13c4 }, /* Index: 0x73, char: \x74 */ + { 0x0b, 0x13f0 }, /* Index: 0x74, char: \x75 */ + { 0x0b, 0x141c }, /* Index: 0x75, char: \x76 */ + { 0x0b, 0x1448 }, /* Index: 0x76, char: \x77 */ + { 0x0b, 0x1474 }, /* Index: 0x77, char: \x78 */ + { 0x0b, 0x14a0 }, /* Index: 0x78, char: \x79 */ + { 0x0b, 0x14cc }, /* Index: 0x79, char: \x7a */ + { 0x0b, 0x14f8 }, /* Index: 0x7a, char: \x7b */ + { 0x0b, 0x1524 }, /* Index: 0x7b, char: \x7c */ + { 0x0b, 0x1550 }, /* Index: 0x7c, char: \x7d */ + { 0x0b, 0x157c }, /* Index: 0x7d, char: \x7e */ + { 0x0b, 0x15a8 }, /* Index: 0x7e, char: \x7f */ + { 0x0b, 0x15d4 }, /* Index: 0x7f, char: \x80 */ + { 0x0b, 0x1600 }, /* Index: 0x80, char: \x81 */ + { 0x0b, 0x162c }, /* Index: 0x81, char: \x82 */ + { 0x0b, 0x1658 }, /* Index: 0x82, char: \x83 */ + { 0x0b, 0x1684 }, /* Index: 0x83, char: \x84 */ + { 0x0b, 0x16b0 }, /* Index: 0x84, char: \x85 */ + { 0x0b, 0x16dc }, /* Index: 0x85, char: \x86 */ + { 0x0b, 0x1708 }, /* Index: 0x86, char: \x87 */ + { 0x0b, 0x1734 }, /* Index: 0x87, char: \x88 */ + { 0x0b, 0x1760 }, /* Index: 0x88, char: \x89 */ + { 0x0b, 0x178c }, /* Index: 0x89, char: \x8a */ + { 0x0b, 0x17b8 }, /* Index: 0x8a, char: \x8b */ + { 0x0b, 0x17e4 }, /* Index: 0x8b, char: \x8c */ + { 0x0b, 0x1810 }, /* Index: 0x8c, char: \x8d */ + { 0x0b, 0x183c }, /* Index: 0x8d, char: \x8e */ + { 0x0b, 0x1868 }, /* Index: 0x8e, char: \x8f */ + { 0x0b, 0x1894 }, /* Index: 0x8f, char: \x90 */ + { 0x0b, 0x18c0 }, /* Index: 0x90, char: \x91 */ + { 0x0b, 0x18ec }, /* Index: 0x91, char: \x92 */ + { 0x0b, 0x1918 }, /* Index: 0x92, char: \x93 */ + { 0x0b, 0x1944 }, /* Index: 0x93, char: \x94 */ + { 0x0b, 0x1970 }, /* Index: 0x94, char: \x95 */ + { 0x0b, 0x199c }, /* Index: 0x95, char: \x96 */ + { 0x0b, 0x19c8 }, /* Index: 0x96, char: \x97 */ + { 0x0b, 0x19f4 }, /* Index: 0x97, char: \x98 */ + { 0x0b, 0x1a20 }, /* Index: 0x98, char: \x99 */ + { 0x0b, 0x1a4c }, /* Index: 0x99, char: \x9a */ + { 0x0b, 0x1a78 }, /* Index: 0x9a, char: \x9b */ + { 0x0b, 0x1aa4 }, /* Index: 0x9b, char: \x9c */ + { 0x0b, 0x1ad0 }, /* Index: 0x9c, char: \x9d */ + { 0x0b, 0x1afc }, /* Index: 0x9d, char: \x9e */ + { 0x0b, 0x1b28 }, /* Index: 0x9e, char: \x9f */ + { 0x0b, 0x1b54 }, /* Index: 0x9f, char: \xa0 */ + { 0x0b, 0x1b80 }, /* Index: 0xa0, char: \xa1 */ + { 0x0b, 0x1bac }, /* Index: 0xa1, char: \xa2 */ + { 0x0b, 0x1bd8 }, /* Index: 0xa2, char: \xa3 */ + { 0x0b, 0x1c04 }, /* Index: 0xa3, char: \xa4 */ + { 0x0b, 0x1c30 }, /* Index: 0xa4, char: \xa5 */ + { 0x0b, 0x1c5c }, /* Index: 0xa5, char: \xa6 */ + { 0x0b, 0x1c88 }, /* Index: 0xa6, char: \xa7 */ + { 0x0b, 0x1cb4 }, /* Index: 0xa7, char: \xa8 */ + { 0x0b, 0x1ce0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0b, 0x1d0c }, /* Index: 0xa9, char: \xaa */ + { 0x0b, 0x1d38 }, /* Index: 0xaa, char: \xab */ + { 0x0b, 0x1d64 }, /* Index: 0xab, char: \xac */ + { 0x0b, 0x1d90 }, /* Index: 0xac, char: \xad */ + { 0x0b, 0x1dbc }, /* Index: 0xad, char: \xae */ + { 0x0b, 0x1de8 }, /* Index: 0xae, char: \xaf */ + { 0x0b, 0x1e14 }, /* Index: 0xaf, char: \xb0 */ + { 0x0b, 0x1e40 }, /* Index: 0xb0, char: \xb1 */ + { 0x0b, 0x1e6c }, /* Index: 0xb1, char: \xb2 */ + { 0x0b, 0x1e98 }, /* Index: 0xb2, char: \xb3 */ + { 0x0b, 0x1ec4 }, /* Index: 0xb3, char: \xb4 */ + { 0x0b, 0x1ef0 }, /* Index: 0xb4, char: \xb5 */ + { 0x0b, 0x1f1c }, /* Index: 0xb5, char: \xb6 */ + { 0x0b, 0x1f48 }, /* Index: 0xb6, char: \xb7 */ + { 0x0b, 0x1f74 }, /* Index: 0xb7, char: \xb8 */ + { 0x0b, 0x1fa0 }, /* Index: 0xb8, char: \xb9 */ + { 0x0b, 0x1fcc }, /* Index: 0xb9, char: \xba */ + { 0x0b, 0x1ff8 }, /* Index: 0xba, char: \xbb */ + { 0x0b, 0x2024 }, /* Index: 0xbb, char: \xbc */ + { 0x0b, 0x2050 }, /* Index: 0xbc, char: \xbd */ + { 0x0b, 0x207c }, /* Index: 0xbd, char: \xbe */ + { 0x0b, 0x20a8 }, /* Index: 0xbe, char: \xbf */ + { 0x0b, 0x20d4 }, /* Index: 0xbf, char: \xc0 */ + { 0x0b, 0x2100 }, /* Index: 0xc0, char: \xc1 */ + { 0x0b, 0x212c }, /* Index: 0xc1, char: \xc2 */ + { 0x0b, 0x2158 }, /* Index: 0xc2, char: \xc3 */ + { 0x0b, 0x2184 }, /* Index: 0xc3, char: \xc4 */ + { 0x0b, 0x21b0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0b, 0x21dc }, /* Index: 0xc5, char: \xc6 */ + { 0x0b, 0x2208 }, /* Index: 0xc6, char: \xc7 */ + { 0x0b, 0x2234 }, /* Index: 0xc7, char: \xc8 */ + { 0x0b, 0x2260 }, /* Index: 0xc8, char: \xc9 */ + { 0x0b, 0x228c }, /* Index: 0xc9, char: \xca */ + { 0x0b, 0x22b8 }, /* Index: 0xca, char: \xcb */ + { 0x0b, 0x22e4 }, /* Index: 0xcb, char: \xcc */ + { 0x0b, 0x2310 }, /* Index: 0xcc, char: \xcd */ + { 0x0b, 0x233c }, /* Index: 0xcd, char: \xce */ + { 0x0b, 0x2368 }, /* Index: 0xce, char: \xcf */ + { 0x0b, 0x2394 }, /* Index: 0xcf, char: \xd0 */ + { 0x0b, 0x23c0 }, /* Index: 0xd0, char: \xd1 */ + { 0x0b, 0x23ec }, /* Index: 0xd1, char: \xd2 */ + { 0x0b, 0x2418 }, /* Index: 0xd2, char: \xd3 */ + { 0x0b, 0x2444 }, /* Index: 0xd3, char: \xd4 */ + { 0x0b, 0x2470 }, /* Index: 0xd4, char: \xd5 */ + { 0x0b, 0x249c }, /* Index: 0xd5, char: \xd6 */ + { 0x0b, 0x24c8 }, /* Index: 0xd6, char: \xd7 */ + { 0x0b, 0x24f4 }, /* Index: 0xd7, char: \xd8 */ + { 0x0b, 0x2520 }, /* Index: 0xd8, char: \xd9 */ + { 0x0b, 0x254c }, /* Index: 0xd9, char: \xda */ + { 0x0b, 0x2578 }, /* Index: 0xda, char: \xdb */ + { 0x0b, 0x25a4 }, /* Index: 0xdb, char: \xdc */ + { 0x0b, 0x25d0 }, /* Index: 0xdc, char: \xdd */ + { 0x0b, 0x25fc }, /* Index: 0xdd, char: \xde */ + { 0x0b, 0x2628 }, /* Index: 0xde, char: \xdf */ + { 0x0b, 0x2654 }, /* Index: 0xdf, char: \xe0 */ + { 0x0b, 0x2680 }, /* Index: 0xe0, char: \xe1 */ + { 0x0b, 0x26ac }, /* Index: 0xe1, char: \xe2 */ + { 0x0b, 0x26d8 }, /* Index: 0xe2, char: \xe3 */ + { 0x0b, 0x2704 }, /* Index: 0xe3, char: \xe4 */ + { 0x0b, 0x2730 }, /* Index: 0xe4, char: \xe5 */ + { 0x0b, 0x275c }, /* Index: 0xe5, char: \xe6 */ + { 0x0b, 0x2788 }, /* Index: 0xe6, char: \xe7 */ + { 0x0b, 0x27b4 }, /* Index: 0xe7, char: \xe8 */ + { 0x0b, 0x27e0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0b, 0x280c }, /* Index: 0xe9, char: \xea */ + { 0x0b, 0x2838 }, /* Index: 0xea, char: \xeb */ + { 0x0b, 0x2864 }, /* Index: 0xeb, char: \xec */ + { 0x0b, 0x2890 }, /* Index: 0xec, char: \xed */ + { 0x0b, 0x28bc }, /* Index: 0xed, char: \xee */ + { 0x0b, 0x28e8 }, /* Index: 0xee, char: \xef */ + { 0x0b, 0x2914 }, /* Index: 0xef, char: \xf0 */ + { 0x0b, 0x2940 }, /* Index: 0xf0, char: \xf1 */ + { 0x0b, 0x296c }, /* Index: 0xf1, char: \xf2 */ + { 0x0b, 0x2998 }, /* Index: 0xf2, char: \xf3 */ + { 0x0b, 0x29c4 }, /* Index: 0xf3, char: \xf4 */ + { 0x0b, 0x29f0 }, /* Index: 0xf4, char: \xf5 */ + { 0x0b, 0x2a1c }, /* Index: 0xf5, char: \xf6 */ + { 0x0b, 0x2a48 }, /* Index: 0xf6, char: \xf7 */ + { 0x0b, 0x2a74 }, /* Index: 0xf7, char: \xf8 */ + { 0x0b, 0x2aa0 }, /* Index: 0xf8, char: \xf9 */ + { 0x0b, 0x2acc }, /* Index: 0xf9, char: \xfa */ + { 0x0b, 0x2af8 }, /* Index: 0xfa, char: \xfb */ + { 0x0b, 0x2b24 }, /* Index: 0xfb, char: \xfc */ + { 0x0b, 0x2b50 }, /* Index: 0xfc, char: \xfd */ + { 0x0b, 0x2b7c }, /* Index: 0xfd, char: \xfe */ + { 0x0b, 0x2ba8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_11x22_iso8859_1_info = +{ + .height = 22, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_11x22_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_11x22_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_11X22_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_12x24_iso8859_1.h b/extras/fonts/data/font_terminus_12x24_iso8859_1.h new file mode 100644 index 0000000..b74c34f --- /dev/null +++ b/extras/fonts/data/font_terminus_12x24_iso8859_1.h @@ -0,0 +1,6919 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 12x24 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:32:24 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_12X24_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_12X24_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_12x24_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0xff, 0xe0, /* ###########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0030 */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + + /* Index: 0x02, char: \x03, offset: 0x0060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x0090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x70, 0x00, /* .###............ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0x00, /* .....###........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x44, 0x00, /* .#...#.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x07, 0x80, /* .....####....... */ + 0x05, 0x00, /* .....#.#........ */ + 0x04, 0x80, /* .....#..#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0x00, /* .....###........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0120 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x64, 0x00, /* .##..#.......... */ + 0x54, 0x00, /* .#.#.#.......... */ + 0x4c, 0x00, /* .#..##.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x01e0 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0210 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0x00, /* ######.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0270 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0xf0, /* .....#######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x02a0 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xff, 0xf0, /* ############.... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x0f, char: \x10, offset: 0x02d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0360 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0390 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x03c0 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x07, 0xf0, /* .....#######.... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x15, char: \x16, offset: 0x03f0 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x16, char: \x17, offset: 0x0420 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x18, char: \x19, offset: 0x0480 */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + + /* Index: 0x19, char: \x1a, offset: 0x04b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x04e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x0510 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x40, /* .........#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7e, 0x00, /* .######......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x05a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x05d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0660 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x80, /* .....#..#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x80, /* ..##....#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x49, 0x00, /* .#..#..#........ */ + 0x31, 0x00, /* ..##...#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x11, 0x80, /* ...#...##....... */ + 0x12, 0x40, /* ...#..#..#...... */ + 0x22, 0x40, /* ..#...#..#...... */ + 0x21, 0x80, /* ..#....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x06f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x21, 0x00, /* ..#....#........ */ + 0x12, 0x00, /* ...#..#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x22, 0x40, /* ..#...#..#...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x40, /* ..#....#.#...... */ + 0x1e, 0x40, /* ...####..#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0750 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x07b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0870 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x08a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x08d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x42, 0x40, /* .#....#..#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x40, /* .......#.#...... */ + 0x02, 0x40, /* ......#..#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x08, 0x40, /* ....#....#...... */ + 0x10, 0x40, /* ...#.....#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x09f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0a50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0ae0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0b10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0b70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0ba0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x20, /* .#........#..... */ + 0x43, 0xe0, /* .#....#####..... */ + 0x44, 0x20, /* .#...#....#..... */ + 0x48, 0x20, /* .#..#.....#..... */ + 0x48, 0x20, /* .#..#.....#..... */ + 0x48, 0x20, /* .#..#.....#..... */ + 0x48, 0x20, /* .#..#.....#..... */ + 0x48, 0x20, /* .#..#.....#..... */ + 0x44, 0x60, /* .#...#...##..... */ + 0x43, 0xa0, /* .#....###.#..... */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x00, /* ..#............. */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0c90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0cf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x47, 0xc0, /* .#...#####...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0d50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0db0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0de0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x42, 0x00, /* .#....#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x48, 0x00, /* .#..#........... */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0e10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x20, /* .#........#..... */ + 0x60, 0x60, /* .##......##..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x49, 0x20, /* .#..#..#..#..... */ + 0x46, 0x20, /* .#...##...#..... */ + 0x46, 0x20, /* .#...##...#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x42, 0x40, /* .#....#..#...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x22, 0x80, /* ..#...#.#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0f30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x50, 0x00, /* .#.#............ */ + 0x48, 0x00, /* .#..#........... */ + 0x44, 0x00, /* .#...#.......... */ + 0x42, 0x00, /* .#....#......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0f60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x00, /* ..#............. */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0f90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1020 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x40, 0x20, /* .#........#..... */ + 0x46, 0x20, /* .#...##...#..... */ + 0x46, 0x20, /* .#...##...#..... */ + 0x49, 0x20, /* .#..#..#..#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x60, 0x60, /* .##......##..... */ + 0x40, 0x20, /* .#........#..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x10b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x10e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x01, 0x00, /* .......#........ */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x11a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x11d0 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1230 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x12f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xc0, /* ......####...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1320 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0xc0, /* ..#.....##...... */ + 0x1f, 0x40, /* ...#####.#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1350 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x13e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x21, 0x00, /* ..#....#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x38, 0x00, /* ..###........... */ + 0x24, 0x00, /* ..#..#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x21, 0x00, /* ..#....#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x44, 0x80, /* .#...#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1470 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x14a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x14d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1530 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x47, 0xc0, /* .#...#####...... */ + 0x48, 0x00, /* .#..#........... */ + 0x50, 0x00, /* .#.#............ */ + 0x60, 0x00, /* .##............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1590 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x15f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0xc0, /* ..#.....##...... */ + 0x1f, 0x40, /* ...#####.#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x16b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x16e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x18, 0x00, /* ...##........... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1710 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x04, 0x00, /* .....#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x01, 0x80, /* .......##....... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x40, /* ..###....#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x43, 0x80, /* .#....###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x17d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1830 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1860 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1890 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1920 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1950 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x19b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x19e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x1a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1aa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1ad0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1b30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x1bf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x1c20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x1c50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x1d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1d70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1da0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x1dd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x1e30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x1e60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x7e, 0x00, /* .######......... */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x00, /* ..#............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x1e90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x20, /* .#........#..... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x20, /* .#........#..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x3f, 0x80, /* ..#######....... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1ef0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1f20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x00, /* ...#............ */ + 0x10, 0x00, /* ...#............ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x1f50 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x4f, 0x20, /* .#..####..#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0x20, /* .#.#......#..... */ + 0x50, 0x20, /* .#.#......#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x4f, 0x20, /* .#..####..#..... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x1fb0 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x1fe0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x20, /* ......#...#..... */ + 0x04, 0x40, /* .....#...#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x02, 0x20, /* ......#...#..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2010 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x5f, 0x20, /* .#.#####..#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x5f, 0x20, /* .#.#####..#..... */ + 0x52, 0x20, /* .#.#..#...#..... */ + 0x51, 0x20, /* .#.#...#..#..... */ + 0x50, 0xa0, /* .#.#....#.#..... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x20a0 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x7f, 0xc0, /* .#########...... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x2130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x2160 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x10, 0x80, /* ...#....#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2190 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x7e, 0x40, /* .######..#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x21f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x3c, 0x40, /* ..####...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x04, 0x40, /* .....#...#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x14, 0x00, /* ...#.#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x22b0 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x10, 0x80, /* ...#....#....... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x10, 0x80, /* ...#....#....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x22e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x44, 0x00, /* .#...#.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x08, 0x80, /* ....#...#....... */ + 0x04, 0x40, /* .....#...#...... */ + 0x02, 0x20, /* ......#...#..... */ + 0x04, 0x40, /* .....#...#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x22, 0x00, /* ..#...#......... */ + 0x44, 0x00, /* .#...#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2310 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x18, 0x00, /* ...##........... */ + 0x28, 0x00, /* ..#.#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x40, /* ....#....#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x09, 0x00, /* ....#..#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x80, /* ....#...#....... */ + 0x11, 0x80, /* ...#...##....... */ + 0x22, 0x80, /* ..#...#.#....... */ + 0x44, 0x80, /* .#...#..#....... */ + 0x08, 0x80, /* ....#...#....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x08, 0x00, /* ....#........... */ + 0x18, 0x00, /* ...##........... */ + 0x28, 0x00, /* ..#.#........... */ + 0x08, 0x00, /* ....#........... */ + 0x08, 0x40, /* ....#....#...... */ + 0x08, 0x80, /* ....#...#....... */ + 0x09, 0x00, /* ....#..#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x13, 0x80, /* ...#..###....... */ + 0x24, 0x40, /* ..#..#...#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x00, 0x80, /* ........#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x22, 0x00, /* ..#...#......... */ + 0x02, 0x00, /* ......#......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x02, 0x00, /* ......#......... */ + 0x22, 0x40, /* ..#...#..#...... */ + 0x1c, 0x80, /* ...###..#....... */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x80, /* .....#..#....... */ + 0x09, 0x80, /* ....#..##....... */ + 0x12, 0x80, /* ...#..#.#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x48, 0x80, /* .#..#...#....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x23a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x10, 0x00, /* ...#............ */ + 0x20, 0x00, /* ..#............. */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x23d0 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2400 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2430 */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2460 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2490 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x24c0 */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x24f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x44, 0x00, /* .#...#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x87, 0xe0, /* #....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2520 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2550 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2580 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x25b0 */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x25e0 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2610 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2640 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2670 */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x26a0 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x26d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0xfc, 0x40, /* ######...#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2700 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x42, 0x40, /* .#....#..#...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2730 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2760 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2790 */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x27c0 */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x27f0 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2820 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x60, /* .#.......##..... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x42, 0x40, /* .#....#..#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0xc0, 0x40, /* ##.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2880 */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x28b0 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x28e0 */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2910 */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x2940 */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0a, 0x00, /* ....#.#......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x2970 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x29a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x41, 0x00, /* .#.....#........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x80, /* .#......#....... */ + 0x41, 0x00, /* .#.....#........ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x50, 0x80, /* .#.#....#....... */ + 0x4f, 0x00, /* .#..####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x29d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x2a30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x2a60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x2a90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x0e, 0x00, /* ....###......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x80, /* ........#....... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x2af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7b, 0xc0, /* .####.####...... */ + 0x04, 0x20, /* .....#....#..... */ + 0x04, 0x20, /* .....#....#..... */ + 0x04, 0x20, /* .....#....#..... */ + 0x7c, 0x20, /* .#####....#..... */ + 0x87, 0xe0, /* #....######..... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x00, /* #....#.......... */ + 0x84, 0x20, /* #....#....#..... */ + 0x7b, 0xc0, /* .####.####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x08, 0x00, /* ....#........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x2b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x2bb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x2be0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x2c10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x2c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x2ca0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x2cd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x16, 0x00, /* ...#.##......... */ + 0x08, 0x00, /* ....#........... */ + 0x34, 0x00, /* ..##.#.......... */ + 0x02, 0x00, /* ......#......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x2d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x2d30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2d60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x2d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x80, /* ...##...#....... */ + 0x24, 0x80, /* ..#..#..#....... */ + 0x23, 0x00, /* ..#...##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2df0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x20, 0x80, /* ..#.....#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x80, /* ..#.....#....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2e20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x2e50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x20, /* ...#####..#..... */ + 0x20, 0xc0, /* ..#.....##...... */ + 0x40, 0xc0, /* .#......##...... */ + 0x41, 0x40, /* .#.....#.#...... */ + 0x42, 0x40, /* .#....#..#...... */ + 0x44, 0x40, /* .#...#...#...... */ + 0x48, 0x40, /* .#..#....#...... */ + 0x50, 0x40, /* .#.#.....#...... */ + 0x60, 0x40, /* .##......#...... */ + 0x60, 0x80, /* .##.....#....... */ + 0x9f, 0x00, /* #..#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x2e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x10, 0x00, /* ...#............ */ + 0x08, 0x00, /* ....#........... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2eb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0a, 0x00, /* ....#.#......... */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x2f10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0x40, /* ..#......#...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x00, /* .......#........ */ + 0x02, 0x00, /* ......#......... */ + 0x04, 0x00, /* .....#.......... */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0xc0, /* ..#.....##...... */ + 0x1f, 0x40, /* ...#####.#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x2f70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x7f, 0x00, /* .#######........ */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x40, 0x00, /* .#.............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x2fa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x11, 0x00, /* ...#...#........ */ + 0x00, 0x00, /* ................ */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x40, 0x40, /* .#.......#...... */ + 0x20, 0xc0, /* ..#.....##...... */ + 0x1f, 0x40, /* ...#####.#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x40, /* .........#...... */ + 0x00, 0x80, /* ........#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_12x24_iso8859_1_descriptors[] = { + { 0x0c, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0c, 0x0030 }, /* Index: 0x01, char: \x02 */ + { 0x0c, 0x0060 }, /* Index: 0x02, char: \x03 */ + { 0x0c, 0x0090 }, /* Index: 0x03, char: \x04 */ + { 0x0c, 0x00c0 }, /* Index: 0x04, char: \x05 */ + { 0x0c, 0x00f0 }, /* Index: 0x05, char: \x06 */ + { 0x0c, 0x0120 }, /* Index: 0x06, char: \x07 */ + { 0x0c, 0x0150 }, /* Index: 0x07, char: \x08 */ + { 0x0c, 0x0180 }, /* Index: 0x08, char: \x09 */ + { 0x0c, 0x01b0 }, /* Index: 0x09, char: \x0a */ + { 0x0c, 0x01e0 }, /* Index: 0x0a, char: \x0b */ + { 0x0c, 0x0210 }, /* Index: 0x0b, char: \x0c */ + { 0x0c, 0x0240 }, /* Index: 0x0c, char: \x0d */ + { 0x0c, 0x0270 }, /* Index: 0x0d, char: \x0e */ + { 0x0c, 0x02a0 }, /* Index: 0x0e, char: \x0f */ + { 0x0c, 0x02d0 }, /* Index: 0x0f, char: \x10 */ + { 0x0c, 0x0300 }, /* Index: 0x10, char: \x11 */ + { 0x0c, 0x0330 }, /* Index: 0x11, char: \x12 */ + { 0x0c, 0x0360 }, /* Index: 0x12, char: \x13 */ + { 0x0c, 0x0390 }, /* Index: 0x13, char: \x14 */ + { 0x0c, 0x03c0 }, /* Index: 0x14, char: \x15 */ + { 0x0c, 0x03f0 }, /* Index: 0x15, char: \x16 */ + { 0x0c, 0x0420 }, /* Index: 0x16, char: \x17 */ + { 0x0c, 0x0450 }, /* Index: 0x17, char: \x18 */ + { 0x0c, 0x0480 }, /* Index: 0x18, char: \x19 */ + { 0x0c, 0x04b0 }, /* Index: 0x19, char: \x1a */ + { 0x0c, 0x04e0 }, /* Index: 0x1a, char: \x1b */ + { 0x0c, 0x0510 }, /* Index: 0x1b, char: \x1c */ + { 0x0c, 0x0540 }, /* Index: 0x1c, char: \x1d */ + { 0x0c, 0x0570 }, /* Index: 0x1d, char: \x1e */ + { 0x0c, 0x05a0 }, /* Index: 0x1e, char: \x1f */ + { 0x0c, 0x05d0 }, /* Index: 0x1f, char: \x20 */ + { 0x0c, 0x0600 }, /* Index: 0x20, char: \x21 */ + { 0x0c, 0x0630 }, /* Index: 0x21, char: \x22 */ + { 0x0c, 0x0660 }, /* Index: 0x22, char: \x23 */ + { 0x0c, 0x0690 }, /* Index: 0x23, char: \x24 */ + { 0x0c, 0x06c0 }, /* Index: 0x24, char: \x25 */ + { 0x0c, 0x06f0 }, /* Index: 0x25, char: \x26 */ + { 0x0c, 0x0720 }, /* Index: 0x26, char: \x27 */ + { 0x0c, 0x0750 }, /* Index: 0x27, char: \x28 */ + { 0x0c, 0x0780 }, /* Index: 0x28, char: \x29 */ + { 0x0c, 0x07b0 }, /* Index: 0x29, char: \x2a */ + { 0x0c, 0x07e0 }, /* Index: 0x2a, char: \x2b */ + { 0x0c, 0x0810 }, /* Index: 0x2b, char: \x2c */ + { 0x0c, 0x0840 }, /* Index: 0x2c, char: \x2d */ + { 0x0c, 0x0870 }, /* Index: 0x2d, char: \x2e */ + { 0x0c, 0x08a0 }, /* Index: 0x2e, char: \x2f */ + { 0x0c, 0x08d0 }, /* Index: 0x2f, char: \x30 */ + { 0x0c, 0x0900 }, /* Index: 0x30, char: \x31 */ + { 0x0c, 0x0930 }, /* Index: 0x31, char: \x32 */ + { 0x0c, 0x0960 }, /* Index: 0x32, char: \x33 */ + { 0x0c, 0x0990 }, /* Index: 0x33, char: \x34 */ + { 0x0c, 0x09c0 }, /* Index: 0x34, char: \x35 */ + { 0x0c, 0x09f0 }, /* Index: 0x35, char: \x36 */ + { 0x0c, 0x0a20 }, /* Index: 0x36, char: \x37 */ + { 0x0c, 0x0a50 }, /* Index: 0x37, char: \x38 */ + { 0x0c, 0x0a80 }, /* Index: 0x38, char: \x39 */ + { 0x0c, 0x0ab0 }, /* Index: 0x39, char: \x3a */ + { 0x0c, 0x0ae0 }, /* Index: 0x3a, char: \x3b */ + { 0x0c, 0x0b10 }, /* Index: 0x3b, char: \x3c */ + { 0x0c, 0x0b40 }, /* Index: 0x3c, char: \x3d */ + { 0x0c, 0x0b70 }, /* Index: 0x3d, char: \x3e */ + { 0x0c, 0x0ba0 }, /* Index: 0x3e, char: \x3f */ + { 0x0c, 0x0bd0 }, /* Index: 0x3f, char: \x40 */ + { 0x0c, 0x0c00 }, /* Index: 0x40, char: \x41 */ + { 0x0c, 0x0c30 }, /* Index: 0x41, char: \x42 */ + { 0x0c, 0x0c60 }, /* Index: 0x42, char: \x43 */ + { 0x0c, 0x0c90 }, /* Index: 0x43, char: \x44 */ + { 0x0c, 0x0cc0 }, /* Index: 0x44, char: \x45 */ + { 0x0c, 0x0cf0 }, /* Index: 0x45, char: \x46 */ + { 0x0c, 0x0d20 }, /* Index: 0x46, char: \x47 */ + { 0x0c, 0x0d50 }, /* Index: 0x47, char: \x48 */ + { 0x0c, 0x0d80 }, /* Index: 0x48, char: \x49 */ + { 0x0c, 0x0db0 }, /* Index: 0x49, char: \x4a */ + { 0x0c, 0x0de0 }, /* Index: 0x4a, char: \x4b */ + { 0x0c, 0x0e10 }, /* Index: 0x4b, char: \x4c */ + { 0x0c, 0x0e40 }, /* Index: 0x4c, char: \x4d */ + { 0x0c, 0x0e70 }, /* Index: 0x4d, char: \x4e */ + { 0x0c, 0x0ea0 }, /* Index: 0x4e, char: \x4f */ + { 0x0c, 0x0ed0 }, /* Index: 0x4f, char: \x50 */ + { 0x0c, 0x0f00 }, /* Index: 0x50, char: \x51 */ + { 0x0c, 0x0f30 }, /* Index: 0x51, char: \x52 */ + { 0x0c, 0x0f60 }, /* Index: 0x52, char: \x53 */ + { 0x0c, 0x0f90 }, /* Index: 0x53, char: \x54 */ + { 0x0c, 0x0fc0 }, /* Index: 0x54, char: \x55 */ + { 0x0c, 0x0ff0 }, /* Index: 0x55, char: \x56 */ + { 0x0c, 0x1020 }, /* Index: 0x56, char: \x57 */ + { 0x0c, 0x1050 }, /* Index: 0x57, char: \x58 */ + { 0x0c, 0x1080 }, /* Index: 0x58, char: \x59 */ + { 0x0c, 0x10b0 }, /* Index: 0x59, char: \x5a */ + { 0x0c, 0x10e0 }, /* Index: 0x5a, char: \x5b */ + { 0x0c, 0x1110 }, /* Index: 0x5b, char: \x5c */ + { 0x0c, 0x1140 }, /* Index: 0x5c, char: \x5d */ + { 0x0c, 0x1170 }, /* Index: 0x5d, char: \x5e */ + { 0x0c, 0x11a0 }, /* Index: 0x5e, char: \x5f */ + { 0x0c, 0x11d0 }, /* Index: 0x5f, char: \x60 */ + { 0x0c, 0x1200 }, /* Index: 0x60, char: \x61 */ + { 0x0c, 0x1230 }, /* Index: 0x61, char: \x62 */ + { 0x0c, 0x1260 }, /* Index: 0x62, char: \x63 */ + { 0x0c, 0x1290 }, /* Index: 0x63, char: \x64 */ + { 0x0c, 0x12c0 }, /* Index: 0x64, char: \x65 */ + { 0x0c, 0x12f0 }, /* Index: 0x65, char: \x66 */ + { 0x0c, 0x1320 }, /* Index: 0x66, char: \x67 */ + { 0x0c, 0x1350 }, /* Index: 0x67, char: \x68 */ + { 0x0c, 0x1380 }, /* Index: 0x68, char: \x69 */ + { 0x0c, 0x13b0 }, /* Index: 0x69, char: \x6a */ + { 0x0c, 0x13e0 }, /* Index: 0x6a, char: \x6b */ + { 0x0c, 0x1410 }, /* Index: 0x6b, char: \x6c */ + { 0x0c, 0x1440 }, /* Index: 0x6c, char: \x6d */ + { 0x0c, 0x1470 }, /* Index: 0x6d, char: \x6e */ + { 0x0c, 0x14a0 }, /* Index: 0x6e, char: \x6f */ + { 0x0c, 0x14d0 }, /* Index: 0x6f, char: \x70 */ + { 0x0c, 0x1500 }, /* Index: 0x70, char: \x71 */ + { 0x0c, 0x1530 }, /* Index: 0x71, char: \x72 */ + { 0x0c, 0x1560 }, /* Index: 0x72, char: \x73 */ + { 0x0c, 0x1590 }, /* Index: 0x73, char: \x74 */ + { 0x0c, 0x15c0 }, /* Index: 0x74, char: \x75 */ + { 0x0c, 0x15f0 }, /* Index: 0x75, char: \x76 */ + { 0x0c, 0x1620 }, /* Index: 0x76, char: \x77 */ + { 0x0c, 0x1650 }, /* Index: 0x77, char: \x78 */ + { 0x0c, 0x1680 }, /* Index: 0x78, char: \x79 */ + { 0x0c, 0x16b0 }, /* Index: 0x79, char: \x7a */ + { 0x0c, 0x16e0 }, /* Index: 0x7a, char: \x7b */ + { 0x0c, 0x1710 }, /* Index: 0x7b, char: \x7c */ + { 0x0c, 0x1740 }, /* Index: 0x7c, char: \x7d */ + { 0x0c, 0x1770 }, /* Index: 0x7d, char: \x7e */ + { 0x0c, 0x17a0 }, /* Index: 0x7e, char: \x7f */ + { 0x0c, 0x17d0 }, /* Index: 0x7f, char: \x80 */ + { 0x0c, 0x1800 }, /* Index: 0x80, char: \x81 */ + { 0x0c, 0x1830 }, /* Index: 0x81, char: \x82 */ + { 0x0c, 0x1860 }, /* Index: 0x82, char: \x83 */ + { 0x0c, 0x1890 }, /* Index: 0x83, char: \x84 */ + { 0x0c, 0x18c0 }, /* Index: 0x84, char: \x85 */ + { 0x0c, 0x18f0 }, /* Index: 0x85, char: \x86 */ + { 0x0c, 0x1920 }, /* Index: 0x86, char: \x87 */ + { 0x0c, 0x1950 }, /* Index: 0x87, char: \x88 */ + { 0x0c, 0x1980 }, /* Index: 0x88, char: \x89 */ + { 0x0c, 0x19b0 }, /* Index: 0x89, char: \x8a */ + { 0x0c, 0x19e0 }, /* Index: 0x8a, char: \x8b */ + { 0x0c, 0x1a10 }, /* Index: 0x8b, char: \x8c */ + { 0x0c, 0x1a40 }, /* Index: 0x8c, char: \x8d */ + { 0x0c, 0x1a70 }, /* Index: 0x8d, char: \x8e */ + { 0x0c, 0x1aa0 }, /* Index: 0x8e, char: \x8f */ + { 0x0c, 0x1ad0 }, /* Index: 0x8f, char: \x90 */ + { 0x0c, 0x1b00 }, /* Index: 0x90, char: \x91 */ + { 0x0c, 0x1b30 }, /* Index: 0x91, char: \x92 */ + { 0x0c, 0x1b60 }, /* Index: 0x92, char: \x93 */ + { 0x0c, 0x1b90 }, /* Index: 0x93, char: \x94 */ + { 0x0c, 0x1bc0 }, /* Index: 0x94, char: \x95 */ + { 0x0c, 0x1bf0 }, /* Index: 0x95, char: \x96 */ + { 0x0c, 0x1c20 }, /* Index: 0x96, char: \x97 */ + { 0x0c, 0x1c50 }, /* Index: 0x97, char: \x98 */ + { 0x0c, 0x1c80 }, /* Index: 0x98, char: \x99 */ + { 0x0c, 0x1cb0 }, /* Index: 0x99, char: \x9a */ + { 0x0c, 0x1ce0 }, /* Index: 0x9a, char: \x9b */ + { 0x0c, 0x1d10 }, /* Index: 0x9b, char: \x9c */ + { 0x0c, 0x1d40 }, /* Index: 0x9c, char: \x9d */ + { 0x0c, 0x1d70 }, /* Index: 0x9d, char: \x9e */ + { 0x0c, 0x1da0 }, /* Index: 0x9e, char: \x9f */ + { 0x0c, 0x1dd0 }, /* Index: 0x9f, char: \xa0 */ + { 0x0c, 0x1e00 }, /* Index: 0xa0, char: \xa1 */ + { 0x0c, 0x1e30 }, /* Index: 0xa1, char: \xa2 */ + { 0x0c, 0x1e60 }, /* Index: 0xa2, char: \xa3 */ + { 0x0c, 0x1e90 }, /* Index: 0xa3, char: \xa4 */ + { 0x0c, 0x1ec0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0c, 0x1ef0 }, /* Index: 0xa5, char: \xa6 */ + { 0x0c, 0x1f20 }, /* Index: 0xa6, char: \xa7 */ + { 0x0c, 0x1f50 }, /* Index: 0xa7, char: \xa8 */ + { 0x0c, 0x1f80 }, /* Index: 0xa8, char: \xa9 */ + { 0x0c, 0x1fb0 }, /* Index: 0xa9, char: \xaa */ + { 0x0c, 0x1fe0 }, /* Index: 0xaa, char: \xab */ + { 0x0c, 0x2010 }, /* Index: 0xab, char: \xac */ + { 0x0c, 0x2040 }, /* Index: 0xac, char: \xad */ + { 0x0c, 0x2070 }, /* Index: 0xad, char: \xae */ + { 0x0c, 0x20a0 }, /* Index: 0xae, char: \xaf */ + { 0x0c, 0x20d0 }, /* Index: 0xaf, char: \xb0 */ + { 0x0c, 0x2100 }, /* Index: 0xb0, char: \xb1 */ + { 0x0c, 0x2130 }, /* Index: 0xb1, char: \xb2 */ + { 0x0c, 0x2160 }, /* Index: 0xb2, char: \xb3 */ + { 0x0c, 0x2190 }, /* Index: 0xb3, char: \xb4 */ + { 0x0c, 0x21c0 }, /* Index: 0xb4, char: \xb5 */ + { 0x0c, 0x21f0 }, /* Index: 0xb5, char: \xb6 */ + { 0x0c, 0x2220 }, /* Index: 0xb6, char: \xb7 */ + { 0x0c, 0x2250 }, /* Index: 0xb7, char: \xb8 */ + { 0x0c, 0x2280 }, /* Index: 0xb8, char: \xb9 */ + { 0x0c, 0x22b0 }, /* Index: 0xb9, char: \xba */ + { 0x0c, 0x22e0 }, /* Index: 0xba, char: \xbb */ + { 0x0c, 0x2310 }, /* Index: 0xbb, char: \xbc */ + { 0x0c, 0x2340 }, /* Index: 0xbc, char: \xbd */ + { 0x0c, 0x2370 }, /* Index: 0xbd, char: \xbe */ + { 0x0c, 0x23a0 }, /* Index: 0xbe, char: \xbf */ + { 0x0c, 0x23d0 }, /* Index: 0xbf, char: \xc0 */ + { 0x0c, 0x2400 }, /* Index: 0xc0, char: \xc1 */ + { 0x0c, 0x2430 }, /* Index: 0xc1, char: \xc2 */ + { 0x0c, 0x2460 }, /* Index: 0xc2, char: \xc3 */ + { 0x0c, 0x2490 }, /* Index: 0xc3, char: \xc4 */ + { 0x0c, 0x24c0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0c, 0x24f0 }, /* Index: 0xc5, char: \xc6 */ + { 0x0c, 0x2520 }, /* Index: 0xc6, char: \xc7 */ + { 0x0c, 0x2550 }, /* Index: 0xc7, char: \xc8 */ + { 0x0c, 0x2580 }, /* Index: 0xc8, char: \xc9 */ + { 0x0c, 0x25b0 }, /* Index: 0xc9, char: \xca */ + { 0x0c, 0x25e0 }, /* Index: 0xca, char: \xcb */ + { 0x0c, 0x2610 }, /* Index: 0xcb, char: \xcc */ + { 0x0c, 0x2640 }, /* Index: 0xcc, char: \xcd */ + { 0x0c, 0x2670 }, /* Index: 0xcd, char: \xce */ + { 0x0c, 0x26a0 }, /* Index: 0xce, char: \xcf */ + { 0x0c, 0x26d0 }, /* Index: 0xcf, char: \xd0 */ + { 0x0c, 0x2700 }, /* Index: 0xd0, char: \xd1 */ + { 0x0c, 0x2730 }, /* Index: 0xd1, char: \xd2 */ + { 0x0c, 0x2760 }, /* Index: 0xd2, char: \xd3 */ + { 0x0c, 0x2790 }, /* Index: 0xd3, char: \xd4 */ + { 0x0c, 0x27c0 }, /* Index: 0xd4, char: \xd5 */ + { 0x0c, 0x27f0 }, /* Index: 0xd5, char: \xd6 */ + { 0x0c, 0x2820 }, /* Index: 0xd6, char: \xd7 */ + { 0x0c, 0x2850 }, /* Index: 0xd7, char: \xd8 */ + { 0x0c, 0x2880 }, /* Index: 0xd8, char: \xd9 */ + { 0x0c, 0x28b0 }, /* Index: 0xd9, char: \xda */ + { 0x0c, 0x28e0 }, /* Index: 0xda, char: \xdb */ + { 0x0c, 0x2910 }, /* Index: 0xdb, char: \xdc */ + { 0x0c, 0x2940 }, /* Index: 0xdc, char: \xdd */ + { 0x0c, 0x2970 }, /* Index: 0xdd, char: \xde */ + { 0x0c, 0x29a0 }, /* Index: 0xde, char: \xdf */ + { 0x0c, 0x29d0 }, /* Index: 0xdf, char: \xe0 */ + { 0x0c, 0x2a00 }, /* Index: 0xe0, char: \xe1 */ + { 0x0c, 0x2a30 }, /* Index: 0xe1, char: \xe2 */ + { 0x0c, 0x2a60 }, /* Index: 0xe2, char: \xe3 */ + { 0x0c, 0x2a90 }, /* Index: 0xe3, char: \xe4 */ + { 0x0c, 0x2ac0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0c, 0x2af0 }, /* Index: 0xe5, char: \xe6 */ + { 0x0c, 0x2b20 }, /* Index: 0xe6, char: \xe7 */ + { 0x0c, 0x2b50 }, /* Index: 0xe7, char: \xe8 */ + { 0x0c, 0x2b80 }, /* Index: 0xe8, char: \xe9 */ + { 0x0c, 0x2bb0 }, /* Index: 0xe9, char: \xea */ + { 0x0c, 0x2be0 }, /* Index: 0xea, char: \xeb */ + { 0x0c, 0x2c10 }, /* Index: 0xeb, char: \xec */ + { 0x0c, 0x2c40 }, /* Index: 0xec, char: \xed */ + { 0x0c, 0x2c70 }, /* Index: 0xed, char: \xee */ + { 0x0c, 0x2ca0 }, /* Index: 0xee, char: \xef */ + { 0x0c, 0x2cd0 }, /* Index: 0xef, char: \xf0 */ + { 0x0c, 0x2d00 }, /* Index: 0xf0, char: \xf1 */ + { 0x0c, 0x2d30 }, /* Index: 0xf1, char: \xf2 */ + { 0x0c, 0x2d60 }, /* Index: 0xf2, char: \xf3 */ + { 0x0c, 0x2d90 }, /* Index: 0xf3, char: \xf4 */ + { 0x0c, 0x2dc0 }, /* Index: 0xf4, char: \xf5 */ + { 0x0c, 0x2df0 }, /* Index: 0xf5, char: \xf6 */ + { 0x0c, 0x2e20 }, /* Index: 0xf6, char: \xf7 */ + { 0x0c, 0x2e50 }, /* Index: 0xf7, char: \xf8 */ + { 0x0c, 0x2e80 }, /* Index: 0xf8, char: \xf9 */ + { 0x0c, 0x2eb0 }, /* Index: 0xf9, char: \xfa */ + { 0x0c, 0x2ee0 }, /* Index: 0xfa, char: \xfb */ + { 0x0c, 0x2f10 }, /* Index: 0xfb, char: \xfc */ + { 0x0c, 0x2f40 }, /* Index: 0xfc, char: \xfd */ + { 0x0c, 0x2f70 }, /* Index: 0xfd, char: \xfe */ + { 0x0c, 0x2fa0 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_12x24_iso8859_1_info = +{ + .height = 24, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_12x24_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_12x24_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_12X24_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_14x28_iso8859_1.h b/extras/fonts/data/font_terminus_14x28_iso8859_1.h new file mode 100644 index 0000000..9dd93bb --- /dev/null +++ b/extras/fonts/data/font_terminus_14x28_iso8859_1.h @@ -0,0 +1,7939 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 14x28 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:37:43 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_14X28_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_14X28_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_14x28_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xff, 0xf8, /* #############... */ + 0xff, 0xf8, /* #############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0038 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0x60, /* ......##.##..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0118 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x7b, 0x00, /* .####.##........ */ + 0x6f, 0x00, /* .##.####........ */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0230 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0268 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0c, char: \x0d, offset: 0x02a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0d, char: \x0e, offset: 0x02d8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0310 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0f, char: \x10, offset: 0x0348 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x03b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0428 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0460 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x15, char: \x16, offset: 0x0498 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x16, char: \x17, offset: 0x04d0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0508 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x18, char: \x19, offset: 0x0540 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x19, char: \x1a, offset: 0x0578 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x05b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0xf8, /* .############... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x06c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x07a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x3c, 0xc0, /* ..####..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0818 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x18, /* ...##.##...##... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0888 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x08f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0968 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xb0, /* .......##.##.... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0b98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0c78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ce8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0d58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0x18, /* .##...##...##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x61, 0xe8, /* .##....####.#... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0e38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0ea8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0f18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0f50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0xf0, /* .##...######.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0f88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf8, /* .......######... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1030 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x1068 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x10a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x1148 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x31, 0xe0, /* ..##...####..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x11f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x1228 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x12d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x78, 0x78, /* .####....####... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1308 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1378 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x13e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1420 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1458 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1490 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x14c8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1538 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x15e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1618 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1688 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x16f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1768 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x17d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1848 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x18b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xf0, /* .##..#######.... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1928 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x19d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1a08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ae8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1bc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1c38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1ca8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x1d18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1d50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1d88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1df8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1e30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1e68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x1ed8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1f10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1f48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1fb8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x2028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x2108 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x21b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x21e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2258 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x22c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x2338 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x23a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x23e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x2418 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0f, 0x00, /* ....####........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x06, 0xc0, /* .....##.##...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x2488 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x60, 0x30, /* .##.......##.... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0x60, 0x30, /* .##.......##.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x24f8 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2530 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x98, /* .......##..##... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x01, 0x98, /* .......##..##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2568 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x25a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x25d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x60, 0x30, /* .##.......##.... */ + 0xdf, 0x98, /* ##.######..##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xdf, 0x98, /* ##.######..##... */ + 0xde, 0x18, /* ##.####....##... */ + 0xdb, 0x18, /* ##.##.##...##... */ + 0xd9, 0x98, /* ##.##..##..##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0x60, 0x30, /* .##.......##.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2610 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2648 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x26b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x26f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x07, 0x80, /* .....####....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2728 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x2760 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x7f, 0x30, /* .#######..##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x2798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x27d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2808 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2878 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x28b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x01, 0x98, /* .......##..##... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x28e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x10, /* ....##.....#.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x70, /* .....##..###.... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x19, 0xb0, /* ...##..##.##.... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x47, 0xf0, /* .#...#######.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2920 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x38, 0x00, /* ..###........... */ + 0x78, 0x10, /* .####......#.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1b, 0xe0, /* ...##.#####..... */ + 0x36, 0x30, /* ..##.##...##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x40, 0x60, /* .#.......##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0xf0, /* .....#######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2958 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x03, 0x08, /* ......##....#... */ + 0x03, 0x18, /* ......##...##... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x3e, 0x60, /* ..#####..##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x98, /* .......##..##... */ + 0x03, 0x38, /* ......##..###... */ + 0x06, 0x78, /* .....##..####... */ + 0x0c, 0xd8, /* ....##..##.##... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x33, 0x18, /* ..##..##...##... */ + 0x63, 0xf8, /* .##...#######... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x2990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x29c8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2a00 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2a38 */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2a70 */ + 0x1c, 0x60, /* ...###...##..... */ + 0x37, 0x60, /* ..##.###.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2aa8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x2ae0 */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x2b18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x63, 0x00, /* .##...##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xff, 0xf0, /* ############.... */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0xf8, /* ##....#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2b88 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2bc0 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x2bf8 */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x2c30 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2c68 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2ca0 */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2cd8 */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2d10 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2d48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0xfe, 0x30, /* #######...##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2d80 */ + 0x1c, 0x60, /* ...###...##..... */ + 0x37, 0x60, /* ..##.###.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2db8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2df0 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2e28 */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2e60 */ + 0x1c, 0x60, /* ...###...##..... */ + 0x37, 0x60, /* ..##.###.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x2e98 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2f08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x38, /* .##.......###... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0xe0, 0x30, /* ###.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2f40 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x2f78 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2fb0 */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2fe8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3020 */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x67, 0xc0, /* .##..#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x30c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3138 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x60, /* ...###...##..... */ + 0x37, 0x60, /* ..##.###.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x31a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x31e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3218 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7d, 0xe0, /* .#####.####..... */ + 0x07, 0x30, /* .....###..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x63, 0xf8, /* .##...#######... */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0x63, 0x98, /* .##...###..##... */ + 0x3e, 0xf0, /* ..#####.####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x3288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x32f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x33a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x33d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x60, /* ..####...##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x63, 0xc0, /* .##...####...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x34b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x34f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x60, /* ...###...##..... */ + 0x37, 0x60, /* ..##.###.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3598 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x35d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3608 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xd8, /* ...#######.##... */ + 0x30, 0x78, /* ..##.....####... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0xf0, 0x60, /* ####.....##..... */ + 0xdf, 0xc0, /* ##.#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x36b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x36e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_14x28_iso8859_1_descriptors[] = { + { 0x0e, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0e, 0x0038 }, /* Index: 0x01, char: \x02 */ + { 0x0e, 0x0070 }, /* Index: 0x02, char: \x03 */ + { 0x0e, 0x00a8 }, /* Index: 0x03, char: \x04 */ + { 0x0e, 0x00e0 }, /* Index: 0x04, char: \x05 */ + { 0x0e, 0x0118 }, /* Index: 0x05, char: \x06 */ + { 0x0e, 0x0150 }, /* Index: 0x06, char: \x07 */ + { 0x0e, 0x0188 }, /* Index: 0x07, char: \x08 */ + { 0x0e, 0x01c0 }, /* Index: 0x08, char: \x09 */ + { 0x0e, 0x01f8 }, /* Index: 0x09, char: \x0a */ + { 0x0e, 0x0230 }, /* Index: 0x0a, char: \x0b */ + { 0x0e, 0x0268 }, /* Index: 0x0b, char: \x0c */ + { 0x0e, 0x02a0 }, /* Index: 0x0c, char: \x0d */ + { 0x0e, 0x02d8 }, /* Index: 0x0d, char: \x0e */ + { 0x0e, 0x0310 }, /* Index: 0x0e, char: \x0f */ + { 0x0e, 0x0348 }, /* Index: 0x0f, char: \x10 */ + { 0x0e, 0x0380 }, /* Index: 0x10, char: \x11 */ + { 0x0e, 0x03b8 }, /* Index: 0x11, char: \x12 */ + { 0x0e, 0x03f0 }, /* Index: 0x12, char: \x13 */ + { 0x0e, 0x0428 }, /* Index: 0x13, char: \x14 */ + { 0x0e, 0x0460 }, /* Index: 0x14, char: \x15 */ + { 0x0e, 0x0498 }, /* Index: 0x15, char: \x16 */ + { 0x0e, 0x04d0 }, /* Index: 0x16, char: \x17 */ + { 0x0e, 0x0508 }, /* Index: 0x17, char: \x18 */ + { 0x0e, 0x0540 }, /* Index: 0x18, char: \x19 */ + { 0x0e, 0x0578 }, /* Index: 0x19, char: \x1a */ + { 0x0e, 0x05b0 }, /* Index: 0x1a, char: \x1b */ + { 0x0e, 0x05e8 }, /* Index: 0x1b, char: \x1c */ + { 0x0e, 0x0620 }, /* Index: 0x1c, char: \x1d */ + { 0x0e, 0x0658 }, /* Index: 0x1d, char: \x1e */ + { 0x0e, 0x0690 }, /* Index: 0x1e, char: \x1f */ + { 0x0e, 0x06c8 }, /* Index: 0x1f, char: \x20 */ + { 0x0e, 0x0700 }, /* Index: 0x20, char: \x21 */ + { 0x0e, 0x0738 }, /* Index: 0x21, char: \x22 */ + { 0x0e, 0x0770 }, /* Index: 0x22, char: \x23 */ + { 0x0e, 0x07a8 }, /* Index: 0x23, char: \x24 */ + { 0x0e, 0x07e0 }, /* Index: 0x24, char: \x25 */ + { 0x0e, 0x0818 }, /* Index: 0x25, char: \x26 */ + { 0x0e, 0x0850 }, /* Index: 0x26, char: \x27 */ + { 0x0e, 0x0888 }, /* Index: 0x27, char: \x28 */ + { 0x0e, 0x08c0 }, /* Index: 0x28, char: \x29 */ + { 0x0e, 0x08f8 }, /* Index: 0x29, char: \x2a */ + { 0x0e, 0x0930 }, /* Index: 0x2a, char: \x2b */ + { 0x0e, 0x0968 }, /* Index: 0x2b, char: \x2c */ + { 0x0e, 0x09a0 }, /* Index: 0x2c, char: \x2d */ + { 0x0e, 0x09d8 }, /* Index: 0x2d, char: \x2e */ + { 0x0e, 0x0a10 }, /* Index: 0x2e, char: \x2f */ + { 0x0e, 0x0a48 }, /* Index: 0x2f, char: \x30 */ + { 0x0e, 0x0a80 }, /* Index: 0x30, char: \x31 */ + { 0x0e, 0x0ab8 }, /* Index: 0x31, char: \x32 */ + { 0x0e, 0x0af0 }, /* Index: 0x32, char: \x33 */ + { 0x0e, 0x0b28 }, /* Index: 0x33, char: \x34 */ + { 0x0e, 0x0b60 }, /* Index: 0x34, char: \x35 */ + { 0x0e, 0x0b98 }, /* Index: 0x35, char: \x36 */ + { 0x0e, 0x0bd0 }, /* Index: 0x36, char: \x37 */ + { 0x0e, 0x0c08 }, /* Index: 0x37, char: \x38 */ + { 0x0e, 0x0c40 }, /* Index: 0x38, char: \x39 */ + { 0x0e, 0x0c78 }, /* Index: 0x39, char: \x3a */ + { 0x0e, 0x0cb0 }, /* Index: 0x3a, char: \x3b */ + { 0x0e, 0x0ce8 }, /* Index: 0x3b, char: \x3c */ + { 0x0e, 0x0d20 }, /* Index: 0x3c, char: \x3d */ + { 0x0e, 0x0d58 }, /* Index: 0x3d, char: \x3e */ + { 0x0e, 0x0d90 }, /* Index: 0x3e, char: \x3f */ + { 0x0e, 0x0dc8 }, /* Index: 0x3f, char: \x40 */ + { 0x0e, 0x0e00 }, /* Index: 0x40, char: \x41 */ + { 0x0e, 0x0e38 }, /* Index: 0x41, char: \x42 */ + { 0x0e, 0x0e70 }, /* Index: 0x42, char: \x43 */ + { 0x0e, 0x0ea8 }, /* Index: 0x43, char: \x44 */ + { 0x0e, 0x0ee0 }, /* Index: 0x44, char: \x45 */ + { 0x0e, 0x0f18 }, /* Index: 0x45, char: \x46 */ + { 0x0e, 0x0f50 }, /* Index: 0x46, char: \x47 */ + { 0x0e, 0x0f88 }, /* Index: 0x47, char: \x48 */ + { 0x0e, 0x0fc0 }, /* Index: 0x48, char: \x49 */ + { 0x0e, 0x0ff8 }, /* Index: 0x49, char: \x4a */ + { 0x0e, 0x1030 }, /* Index: 0x4a, char: \x4b */ + { 0x0e, 0x1068 }, /* Index: 0x4b, char: \x4c */ + { 0x0e, 0x10a0 }, /* Index: 0x4c, char: \x4d */ + { 0x0e, 0x10d8 }, /* Index: 0x4d, char: \x4e */ + { 0x0e, 0x1110 }, /* Index: 0x4e, char: \x4f */ + { 0x0e, 0x1148 }, /* Index: 0x4f, char: \x50 */ + { 0x0e, 0x1180 }, /* Index: 0x50, char: \x51 */ + { 0x0e, 0x11b8 }, /* Index: 0x51, char: \x52 */ + { 0x0e, 0x11f0 }, /* Index: 0x52, char: \x53 */ + { 0x0e, 0x1228 }, /* Index: 0x53, char: \x54 */ + { 0x0e, 0x1260 }, /* Index: 0x54, char: \x55 */ + { 0x0e, 0x1298 }, /* Index: 0x55, char: \x56 */ + { 0x0e, 0x12d0 }, /* Index: 0x56, char: \x57 */ + { 0x0e, 0x1308 }, /* Index: 0x57, char: \x58 */ + { 0x0e, 0x1340 }, /* Index: 0x58, char: \x59 */ + { 0x0e, 0x1378 }, /* Index: 0x59, char: \x5a */ + { 0x0e, 0x13b0 }, /* Index: 0x5a, char: \x5b */ + { 0x0e, 0x13e8 }, /* Index: 0x5b, char: \x5c */ + { 0x0e, 0x1420 }, /* Index: 0x5c, char: \x5d */ + { 0x0e, 0x1458 }, /* Index: 0x5d, char: \x5e */ + { 0x0e, 0x1490 }, /* Index: 0x5e, char: \x5f */ + { 0x0e, 0x14c8 }, /* Index: 0x5f, char: \x60 */ + { 0x0e, 0x1500 }, /* Index: 0x60, char: \x61 */ + { 0x0e, 0x1538 }, /* Index: 0x61, char: \x62 */ + { 0x0e, 0x1570 }, /* Index: 0x62, char: \x63 */ + { 0x0e, 0x15a8 }, /* Index: 0x63, char: \x64 */ + { 0x0e, 0x15e0 }, /* Index: 0x64, char: \x65 */ + { 0x0e, 0x1618 }, /* Index: 0x65, char: \x66 */ + { 0x0e, 0x1650 }, /* Index: 0x66, char: \x67 */ + { 0x0e, 0x1688 }, /* Index: 0x67, char: \x68 */ + { 0x0e, 0x16c0 }, /* Index: 0x68, char: \x69 */ + { 0x0e, 0x16f8 }, /* Index: 0x69, char: \x6a */ + { 0x0e, 0x1730 }, /* Index: 0x6a, char: \x6b */ + { 0x0e, 0x1768 }, /* Index: 0x6b, char: \x6c */ + { 0x0e, 0x17a0 }, /* Index: 0x6c, char: \x6d */ + { 0x0e, 0x17d8 }, /* Index: 0x6d, char: \x6e */ + { 0x0e, 0x1810 }, /* Index: 0x6e, char: \x6f */ + { 0x0e, 0x1848 }, /* Index: 0x6f, char: \x70 */ + { 0x0e, 0x1880 }, /* Index: 0x70, char: \x71 */ + { 0x0e, 0x18b8 }, /* Index: 0x71, char: \x72 */ + { 0x0e, 0x18f0 }, /* Index: 0x72, char: \x73 */ + { 0x0e, 0x1928 }, /* Index: 0x73, char: \x74 */ + { 0x0e, 0x1960 }, /* Index: 0x74, char: \x75 */ + { 0x0e, 0x1998 }, /* Index: 0x75, char: \x76 */ + { 0x0e, 0x19d0 }, /* Index: 0x76, char: \x77 */ + { 0x0e, 0x1a08 }, /* Index: 0x77, char: \x78 */ + { 0x0e, 0x1a40 }, /* Index: 0x78, char: \x79 */ + { 0x0e, 0x1a78 }, /* Index: 0x79, char: \x7a */ + { 0x0e, 0x1ab0 }, /* Index: 0x7a, char: \x7b */ + { 0x0e, 0x1ae8 }, /* Index: 0x7b, char: \x7c */ + { 0x0e, 0x1b20 }, /* Index: 0x7c, char: \x7d */ + { 0x0e, 0x1b58 }, /* Index: 0x7d, char: \x7e */ + { 0x0e, 0x1b90 }, /* Index: 0x7e, char: \x7f */ + { 0x0e, 0x1bc8 }, /* Index: 0x7f, char: \x80 */ + { 0x0e, 0x1c00 }, /* Index: 0x80, char: \x81 */ + { 0x0e, 0x1c38 }, /* Index: 0x81, char: \x82 */ + { 0x0e, 0x1c70 }, /* Index: 0x82, char: \x83 */ + { 0x0e, 0x1ca8 }, /* Index: 0x83, char: \x84 */ + { 0x0e, 0x1ce0 }, /* Index: 0x84, char: \x85 */ + { 0x0e, 0x1d18 }, /* Index: 0x85, char: \x86 */ + { 0x0e, 0x1d50 }, /* Index: 0x86, char: \x87 */ + { 0x0e, 0x1d88 }, /* Index: 0x87, char: \x88 */ + { 0x0e, 0x1dc0 }, /* Index: 0x88, char: \x89 */ + { 0x0e, 0x1df8 }, /* Index: 0x89, char: \x8a */ + { 0x0e, 0x1e30 }, /* Index: 0x8a, char: \x8b */ + { 0x0e, 0x1e68 }, /* Index: 0x8b, char: \x8c */ + { 0x0e, 0x1ea0 }, /* Index: 0x8c, char: \x8d */ + { 0x0e, 0x1ed8 }, /* Index: 0x8d, char: \x8e */ + { 0x0e, 0x1f10 }, /* Index: 0x8e, char: \x8f */ + { 0x0e, 0x1f48 }, /* Index: 0x8f, char: \x90 */ + { 0x0e, 0x1f80 }, /* Index: 0x90, char: \x91 */ + { 0x0e, 0x1fb8 }, /* Index: 0x91, char: \x92 */ + { 0x0e, 0x1ff0 }, /* Index: 0x92, char: \x93 */ + { 0x0e, 0x2028 }, /* Index: 0x93, char: \x94 */ + { 0x0e, 0x2060 }, /* Index: 0x94, char: \x95 */ + { 0x0e, 0x2098 }, /* Index: 0x95, char: \x96 */ + { 0x0e, 0x20d0 }, /* Index: 0x96, char: \x97 */ + { 0x0e, 0x2108 }, /* Index: 0x97, char: \x98 */ + { 0x0e, 0x2140 }, /* Index: 0x98, char: \x99 */ + { 0x0e, 0x2178 }, /* Index: 0x99, char: \x9a */ + { 0x0e, 0x21b0 }, /* Index: 0x9a, char: \x9b */ + { 0x0e, 0x21e8 }, /* Index: 0x9b, char: \x9c */ + { 0x0e, 0x2220 }, /* Index: 0x9c, char: \x9d */ + { 0x0e, 0x2258 }, /* Index: 0x9d, char: \x9e */ + { 0x0e, 0x2290 }, /* Index: 0x9e, char: \x9f */ + { 0x0e, 0x22c8 }, /* Index: 0x9f, char: \xa0 */ + { 0x0e, 0x2300 }, /* Index: 0xa0, char: \xa1 */ + { 0x0e, 0x2338 }, /* Index: 0xa1, char: \xa2 */ + { 0x0e, 0x2370 }, /* Index: 0xa2, char: \xa3 */ + { 0x0e, 0x23a8 }, /* Index: 0xa3, char: \xa4 */ + { 0x0e, 0x23e0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0e, 0x2418 }, /* Index: 0xa5, char: \xa6 */ + { 0x0e, 0x2450 }, /* Index: 0xa6, char: \xa7 */ + { 0x0e, 0x2488 }, /* Index: 0xa7, char: \xa8 */ + { 0x0e, 0x24c0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0e, 0x24f8 }, /* Index: 0xa9, char: \xaa */ + { 0x0e, 0x2530 }, /* Index: 0xaa, char: \xab */ + { 0x0e, 0x2568 }, /* Index: 0xab, char: \xac */ + { 0x0e, 0x25a0 }, /* Index: 0xac, char: \xad */ + { 0x0e, 0x25d8 }, /* Index: 0xad, char: \xae */ + { 0x0e, 0x2610 }, /* Index: 0xae, char: \xaf */ + { 0x0e, 0x2648 }, /* Index: 0xaf, char: \xb0 */ + { 0x0e, 0x2680 }, /* Index: 0xb0, char: \xb1 */ + { 0x0e, 0x26b8 }, /* Index: 0xb1, char: \xb2 */ + { 0x0e, 0x26f0 }, /* Index: 0xb2, char: \xb3 */ + { 0x0e, 0x2728 }, /* Index: 0xb3, char: \xb4 */ + { 0x0e, 0x2760 }, /* Index: 0xb4, char: \xb5 */ + { 0x0e, 0x2798 }, /* Index: 0xb5, char: \xb6 */ + { 0x0e, 0x27d0 }, /* Index: 0xb6, char: \xb7 */ + { 0x0e, 0x2808 }, /* Index: 0xb7, char: \xb8 */ + { 0x0e, 0x2840 }, /* Index: 0xb8, char: \xb9 */ + { 0x0e, 0x2878 }, /* Index: 0xb9, char: \xba */ + { 0x0e, 0x28b0 }, /* Index: 0xba, char: \xbb */ + { 0x0e, 0x28e8 }, /* Index: 0xbb, char: \xbc */ + { 0x0e, 0x2920 }, /* Index: 0xbc, char: \xbd */ + { 0x0e, 0x2958 }, /* Index: 0xbd, char: \xbe */ + { 0x0e, 0x2990 }, /* Index: 0xbe, char: \xbf */ + { 0x0e, 0x29c8 }, /* Index: 0xbf, char: \xc0 */ + { 0x0e, 0x2a00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0e, 0x2a38 }, /* Index: 0xc1, char: \xc2 */ + { 0x0e, 0x2a70 }, /* Index: 0xc2, char: \xc3 */ + { 0x0e, 0x2aa8 }, /* Index: 0xc3, char: \xc4 */ + { 0x0e, 0x2ae0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0e, 0x2b18 }, /* Index: 0xc5, char: \xc6 */ + { 0x0e, 0x2b50 }, /* Index: 0xc6, char: \xc7 */ + { 0x0e, 0x2b88 }, /* Index: 0xc7, char: \xc8 */ + { 0x0e, 0x2bc0 }, /* Index: 0xc8, char: \xc9 */ + { 0x0e, 0x2bf8 }, /* Index: 0xc9, char: \xca */ + { 0x0e, 0x2c30 }, /* Index: 0xca, char: \xcb */ + { 0x0e, 0x2c68 }, /* Index: 0xcb, char: \xcc */ + { 0x0e, 0x2ca0 }, /* Index: 0xcc, char: \xcd */ + { 0x0e, 0x2cd8 }, /* Index: 0xcd, char: \xce */ + { 0x0e, 0x2d10 }, /* Index: 0xce, char: \xcf */ + { 0x0e, 0x2d48 }, /* Index: 0xcf, char: \xd0 */ + { 0x0e, 0x2d80 }, /* Index: 0xd0, char: \xd1 */ + { 0x0e, 0x2db8 }, /* Index: 0xd1, char: \xd2 */ + { 0x0e, 0x2df0 }, /* Index: 0xd2, char: \xd3 */ + { 0x0e, 0x2e28 }, /* Index: 0xd3, char: \xd4 */ + { 0x0e, 0x2e60 }, /* Index: 0xd4, char: \xd5 */ + { 0x0e, 0x2e98 }, /* Index: 0xd5, char: \xd6 */ + { 0x0e, 0x2ed0 }, /* Index: 0xd6, char: \xd7 */ + { 0x0e, 0x2f08 }, /* Index: 0xd7, char: \xd8 */ + { 0x0e, 0x2f40 }, /* Index: 0xd8, char: \xd9 */ + { 0x0e, 0x2f78 }, /* Index: 0xd9, char: \xda */ + { 0x0e, 0x2fb0 }, /* Index: 0xda, char: \xdb */ + { 0x0e, 0x2fe8 }, /* Index: 0xdb, char: \xdc */ + { 0x0e, 0x3020 }, /* Index: 0xdc, char: \xdd */ + { 0x0e, 0x3058 }, /* Index: 0xdd, char: \xde */ + { 0x0e, 0x3090 }, /* Index: 0xde, char: \xdf */ + { 0x0e, 0x30c8 }, /* Index: 0xdf, char: \xe0 */ + { 0x0e, 0x3100 }, /* Index: 0xe0, char: \xe1 */ + { 0x0e, 0x3138 }, /* Index: 0xe1, char: \xe2 */ + { 0x0e, 0x3170 }, /* Index: 0xe2, char: \xe3 */ + { 0x0e, 0x31a8 }, /* Index: 0xe3, char: \xe4 */ + { 0x0e, 0x31e0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0e, 0x3218 }, /* Index: 0xe5, char: \xe6 */ + { 0x0e, 0x3250 }, /* Index: 0xe6, char: \xe7 */ + { 0x0e, 0x3288 }, /* Index: 0xe7, char: \xe8 */ + { 0x0e, 0x32c0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0e, 0x32f8 }, /* Index: 0xe9, char: \xea */ + { 0x0e, 0x3330 }, /* Index: 0xea, char: \xeb */ + { 0x0e, 0x3368 }, /* Index: 0xeb, char: \xec */ + { 0x0e, 0x33a0 }, /* Index: 0xec, char: \xed */ + { 0x0e, 0x33d8 }, /* Index: 0xed, char: \xee */ + { 0x0e, 0x3410 }, /* Index: 0xee, char: \xef */ + { 0x0e, 0x3448 }, /* Index: 0xef, char: \xf0 */ + { 0x0e, 0x3480 }, /* Index: 0xf0, char: \xf1 */ + { 0x0e, 0x34b8 }, /* Index: 0xf1, char: \xf2 */ + { 0x0e, 0x34f0 }, /* Index: 0xf2, char: \xf3 */ + { 0x0e, 0x3528 }, /* Index: 0xf3, char: \xf4 */ + { 0x0e, 0x3560 }, /* Index: 0xf4, char: \xf5 */ + { 0x0e, 0x3598 }, /* Index: 0xf5, char: \xf6 */ + { 0x0e, 0x35d0 }, /* Index: 0xf6, char: \xf7 */ + { 0x0e, 0x3608 }, /* Index: 0xf7, char: \xf8 */ + { 0x0e, 0x3640 }, /* Index: 0xf8, char: \xf9 */ + { 0x0e, 0x3678 }, /* Index: 0xf9, char: \xfa */ + { 0x0e, 0x36b0 }, /* Index: 0xfa, char: \xfb */ + { 0x0e, 0x36e8 }, /* Index: 0xfb, char: \xfc */ + { 0x0e, 0x3720 }, /* Index: 0xfc, char: \xfd */ + { 0x0e, 0x3758 }, /* Index: 0xfd, char: \xfe */ + { 0x0e, 0x3790 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_14x28_iso8859_1_info = +{ + .height = 28, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_14x28_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_14x28_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_14X28_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_14x28_koi8_r.h b/extras/fonts/data/font_terminus_14x28_koi8_r.h new file mode 100644 index 0000000..1fa1b8c --- /dev/null +++ b/extras/fonts/data/font_terminus_14x28_koi8_r.h @@ -0,0 +1,7939 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 14x28 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_14X28_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_14X28_KOI8_R_H_ + +static const uint8_t _fonts_terminus_14x28_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xff, 0xf8, /* #############... */ + 0xff, 0xf8, /* #############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0038 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0x60, /* ......##.##..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0118 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x7b, 0x00, /* .####.##........ */ + 0x6f, 0x00, /* .##.####........ */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0230 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0268 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0c, char: \x0d, offset: 0x02a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0d, char: \x0e, offset: 0x02d8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0310 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0f, char: \x10, offset: 0x0348 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x03b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0428 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0460 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x15, char: \x16, offset: 0x0498 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x16, char: \x17, offset: 0x04d0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0508 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x18, char: \x19, offset: 0x0540 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x19, char: \x1a, offset: 0x0578 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x05b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0xf8, /* .############... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x06c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x07a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x3c, 0xc0, /* ..####..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0818 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x18, /* ...##.##...##... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x31, 0x98, /* ..##...##..##... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0888 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x08f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0x60, /* ...##....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0968 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xb0, /* .......##.##.... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0b98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0c78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ce8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0d58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0x18, /* .##...##...##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x61, 0xe8, /* .##....####.#... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0e38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0ea8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0f18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0f50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0xf0, /* .##...######.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0f88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf8, /* .......######... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1030 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x1068 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x10a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x1148 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x31, 0xe0, /* ..##...####..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x11f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x1228 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x12d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x78, 0x78, /* .####....####... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1308 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1378 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x13e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1420 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1458 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1490 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x14c8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1538 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x15e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1618 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1688 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x16f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1768 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x17d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1848 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x18b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xf0, /* .##..#######.... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1928 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x19d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1a08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ae8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1bc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1c00 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x81, char: \x82, offset: 0x1c38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x82, char: \x83, offset: 0x1c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x83, char: \x84, offset: 0x1ca8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1ce0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x1d18 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x86, char: \x87, offset: 0x1d50 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x87, char: \x88, offset: 0x1d88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x88, char: \x89, offset: 0x1dc0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1df8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1e30 */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1e68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + + /* Index: 0x8c, char: \x8d, offset: 0x1ea0 */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + + /* Index: 0x8d, char: \x8e, offset: 0x1ed8 */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + + /* Index: 0x8e, char: \x8f, offset: 0x1f10 */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + + /* Index: 0x8f, char: \x90, offset: 0x1f48 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1f80 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x91, char: \x92, offset: 0x1fb8 */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + + /* Index: 0x92, char: \x93, offset: 0x1ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x93, char: \x94, offset: 0x2028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0x60, /* ......##.##..... */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x30, /* ...###....##.... */ + 0x36, 0x30, /* ..##.##...##.... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x30, /* ...###....##.... */ + 0x36, 0x30, /* ..##.##...##.... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x2108 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x21b0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x21e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2258 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x22c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2300 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa1, char: \xa2, offset: 0x2338 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x23a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa4, char: \xa5, offset: 0x23e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa5, char: \xa6, offset: 0x2418 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa7, char: \xa8, offset: 0x2488 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa8, char: \xa9, offset: 0x24c0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x24f8 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2530 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2568 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x25a0 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x25d8 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2610 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2648 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb0, char: \xb1, offset: 0x2680 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb1, char: \xb2, offset: 0x26b8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xb2, char: \xb3, offset: 0x26f0 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2728 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb4, char: \xb5, offset: 0x2760 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb5, char: \xb6, offset: 0x2798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xb6, char: \xb7, offset: 0x27d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb7, char: \xb8, offset: 0x2808 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb8, char: \xb9, offset: 0x2840 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2878 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x28b0 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x28e8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2920 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xbd, char: \xbe, offset: 0x2958 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xbe, char: \xbf, offset: 0x2990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x60, 0x30, /* .##.......##.... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0x60, 0x30, /* .##.......##.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x29c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2a38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2aa8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x2ae0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x2b18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2b88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x2bf8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x2c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2c68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2ca0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2cd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2d48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x01, 0xb0, /* .......##.##.... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2db8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2df0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2e28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2e60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x2e98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2f08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x61, 0x98, /* .##....##..##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x61, 0x98, /* .##....##..##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x2f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2fb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x18, /* ..##..##...##... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2fe8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3020 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x18, /* ..##..##...##... */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x30c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3138 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x31a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x7f, 0xf8, /* .############... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x31e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3218 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x3288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x32f8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xb0, /* .##....##.##.... */ + 0x63, 0x30, /* .##...##..##.... */ + 0x66, 0x30, /* .##..##...##.... */ + 0x6c, 0x30, /* .##.##....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x33a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x6c, 0xd8, /* .##.##..##.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x33d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xb0, /* .......##.##.... */ + 0x03, 0x30, /* ......##..##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x34b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x34f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3598 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x35d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3608 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x61, 0x98, /* .##....##..##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x61, 0x98, /* .##....##..##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x36b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x18, /* ..##..##...##... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x36e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x33, 0x18, /* ..##..##...##... */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_14x28_koi8_r_descriptors[] = { + { 0x0e, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0e, 0x0038 }, /* Index: 0x01, char: \x02 */ + { 0x0e, 0x0070 }, /* Index: 0x02, char: \x03 */ + { 0x0e, 0x00a8 }, /* Index: 0x03, char: \x04 */ + { 0x0e, 0x00e0 }, /* Index: 0x04, char: \x05 */ + { 0x0e, 0x0118 }, /* Index: 0x05, char: \x06 */ + { 0x0e, 0x0150 }, /* Index: 0x06, char: \x07 */ + { 0x0e, 0x0188 }, /* Index: 0x07, char: \x08 */ + { 0x0e, 0x01c0 }, /* Index: 0x08, char: \x09 */ + { 0x0e, 0x01f8 }, /* Index: 0x09, char: \x0a */ + { 0x0e, 0x0230 }, /* Index: 0x0a, char: \x0b */ + { 0x0e, 0x0268 }, /* Index: 0x0b, char: \x0c */ + { 0x0e, 0x02a0 }, /* Index: 0x0c, char: \x0d */ + { 0x0e, 0x02d8 }, /* Index: 0x0d, char: \x0e */ + { 0x0e, 0x0310 }, /* Index: 0x0e, char: \x0f */ + { 0x0e, 0x0348 }, /* Index: 0x0f, char: \x10 */ + { 0x0e, 0x0380 }, /* Index: 0x10, char: \x11 */ + { 0x0e, 0x03b8 }, /* Index: 0x11, char: \x12 */ + { 0x0e, 0x03f0 }, /* Index: 0x12, char: \x13 */ + { 0x0e, 0x0428 }, /* Index: 0x13, char: \x14 */ + { 0x0e, 0x0460 }, /* Index: 0x14, char: \x15 */ + { 0x0e, 0x0498 }, /* Index: 0x15, char: \x16 */ + { 0x0e, 0x04d0 }, /* Index: 0x16, char: \x17 */ + { 0x0e, 0x0508 }, /* Index: 0x17, char: \x18 */ + { 0x0e, 0x0540 }, /* Index: 0x18, char: \x19 */ + { 0x0e, 0x0578 }, /* Index: 0x19, char: \x1a */ + { 0x0e, 0x05b0 }, /* Index: 0x1a, char: \x1b */ + { 0x0e, 0x05e8 }, /* Index: 0x1b, char: \x1c */ + { 0x0e, 0x0620 }, /* Index: 0x1c, char: \x1d */ + { 0x0e, 0x0658 }, /* Index: 0x1d, char: \x1e */ + { 0x0e, 0x0690 }, /* Index: 0x1e, char: \x1f */ + { 0x0e, 0x06c8 }, /* Index: 0x1f, char: \x20 */ + { 0x0e, 0x0700 }, /* Index: 0x20, char: \x21 */ + { 0x0e, 0x0738 }, /* Index: 0x21, char: \x22 */ + { 0x0e, 0x0770 }, /* Index: 0x22, char: \x23 */ + { 0x0e, 0x07a8 }, /* Index: 0x23, char: \x24 */ + { 0x0e, 0x07e0 }, /* Index: 0x24, char: \x25 */ + { 0x0e, 0x0818 }, /* Index: 0x25, char: \x26 */ + { 0x0e, 0x0850 }, /* Index: 0x26, char: \x27 */ + { 0x0e, 0x0888 }, /* Index: 0x27, char: \x28 */ + { 0x0e, 0x08c0 }, /* Index: 0x28, char: \x29 */ + { 0x0e, 0x08f8 }, /* Index: 0x29, char: \x2a */ + { 0x0e, 0x0930 }, /* Index: 0x2a, char: \x2b */ + { 0x0e, 0x0968 }, /* Index: 0x2b, char: \x2c */ + { 0x0e, 0x09a0 }, /* Index: 0x2c, char: \x2d */ + { 0x0e, 0x09d8 }, /* Index: 0x2d, char: \x2e */ + { 0x0e, 0x0a10 }, /* Index: 0x2e, char: \x2f */ + { 0x0e, 0x0a48 }, /* Index: 0x2f, char: \x30 */ + { 0x0e, 0x0a80 }, /* Index: 0x30, char: \x31 */ + { 0x0e, 0x0ab8 }, /* Index: 0x31, char: \x32 */ + { 0x0e, 0x0af0 }, /* Index: 0x32, char: \x33 */ + { 0x0e, 0x0b28 }, /* Index: 0x33, char: \x34 */ + { 0x0e, 0x0b60 }, /* Index: 0x34, char: \x35 */ + { 0x0e, 0x0b98 }, /* Index: 0x35, char: \x36 */ + { 0x0e, 0x0bd0 }, /* Index: 0x36, char: \x37 */ + { 0x0e, 0x0c08 }, /* Index: 0x37, char: \x38 */ + { 0x0e, 0x0c40 }, /* Index: 0x38, char: \x39 */ + { 0x0e, 0x0c78 }, /* Index: 0x39, char: \x3a */ + { 0x0e, 0x0cb0 }, /* Index: 0x3a, char: \x3b */ + { 0x0e, 0x0ce8 }, /* Index: 0x3b, char: \x3c */ + { 0x0e, 0x0d20 }, /* Index: 0x3c, char: \x3d */ + { 0x0e, 0x0d58 }, /* Index: 0x3d, char: \x3e */ + { 0x0e, 0x0d90 }, /* Index: 0x3e, char: \x3f */ + { 0x0e, 0x0dc8 }, /* Index: 0x3f, char: \x40 */ + { 0x0e, 0x0e00 }, /* Index: 0x40, char: \x41 */ + { 0x0e, 0x0e38 }, /* Index: 0x41, char: \x42 */ + { 0x0e, 0x0e70 }, /* Index: 0x42, char: \x43 */ + { 0x0e, 0x0ea8 }, /* Index: 0x43, char: \x44 */ + { 0x0e, 0x0ee0 }, /* Index: 0x44, char: \x45 */ + { 0x0e, 0x0f18 }, /* Index: 0x45, char: \x46 */ + { 0x0e, 0x0f50 }, /* Index: 0x46, char: \x47 */ + { 0x0e, 0x0f88 }, /* Index: 0x47, char: \x48 */ + { 0x0e, 0x0fc0 }, /* Index: 0x48, char: \x49 */ + { 0x0e, 0x0ff8 }, /* Index: 0x49, char: \x4a */ + { 0x0e, 0x1030 }, /* Index: 0x4a, char: \x4b */ + { 0x0e, 0x1068 }, /* Index: 0x4b, char: \x4c */ + { 0x0e, 0x10a0 }, /* Index: 0x4c, char: \x4d */ + { 0x0e, 0x10d8 }, /* Index: 0x4d, char: \x4e */ + { 0x0e, 0x1110 }, /* Index: 0x4e, char: \x4f */ + { 0x0e, 0x1148 }, /* Index: 0x4f, char: \x50 */ + { 0x0e, 0x1180 }, /* Index: 0x50, char: \x51 */ + { 0x0e, 0x11b8 }, /* Index: 0x51, char: \x52 */ + { 0x0e, 0x11f0 }, /* Index: 0x52, char: \x53 */ + { 0x0e, 0x1228 }, /* Index: 0x53, char: \x54 */ + { 0x0e, 0x1260 }, /* Index: 0x54, char: \x55 */ + { 0x0e, 0x1298 }, /* Index: 0x55, char: \x56 */ + { 0x0e, 0x12d0 }, /* Index: 0x56, char: \x57 */ + { 0x0e, 0x1308 }, /* Index: 0x57, char: \x58 */ + { 0x0e, 0x1340 }, /* Index: 0x58, char: \x59 */ + { 0x0e, 0x1378 }, /* Index: 0x59, char: \x5a */ + { 0x0e, 0x13b0 }, /* Index: 0x5a, char: \x5b */ + { 0x0e, 0x13e8 }, /* Index: 0x5b, char: \x5c */ + { 0x0e, 0x1420 }, /* Index: 0x5c, char: \x5d */ + { 0x0e, 0x1458 }, /* Index: 0x5d, char: \x5e */ + { 0x0e, 0x1490 }, /* Index: 0x5e, char: \x5f */ + { 0x0e, 0x14c8 }, /* Index: 0x5f, char: \x60 */ + { 0x0e, 0x1500 }, /* Index: 0x60, char: \x61 */ + { 0x0e, 0x1538 }, /* Index: 0x61, char: \x62 */ + { 0x0e, 0x1570 }, /* Index: 0x62, char: \x63 */ + { 0x0e, 0x15a8 }, /* Index: 0x63, char: \x64 */ + { 0x0e, 0x15e0 }, /* Index: 0x64, char: \x65 */ + { 0x0e, 0x1618 }, /* Index: 0x65, char: \x66 */ + { 0x0e, 0x1650 }, /* Index: 0x66, char: \x67 */ + { 0x0e, 0x1688 }, /* Index: 0x67, char: \x68 */ + { 0x0e, 0x16c0 }, /* Index: 0x68, char: \x69 */ + { 0x0e, 0x16f8 }, /* Index: 0x69, char: \x6a */ + { 0x0e, 0x1730 }, /* Index: 0x6a, char: \x6b */ + { 0x0e, 0x1768 }, /* Index: 0x6b, char: \x6c */ + { 0x0e, 0x17a0 }, /* Index: 0x6c, char: \x6d */ + { 0x0e, 0x17d8 }, /* Index: 0x6d, char: \x6e */ + { 0x0e, 0x1810 }, /* Index: 0x6e, char: \x6f */ + { 0x0e, 0x1848 }, /* Index: 0x6f, char: \x70 */ + { 0x0e, 0x1880 }, /* Index: 0x70, char: \x71 */ + { 0x0e, 0x18b8 }, /* Index: 0x71, char: \x72 */ + { 0x0e, 0x18f0 }, /* Index: 0x72, char: \x73 */ + { 0x0e, 0x1928 }, /* Index: 0x73, char: \x74 */ + { 0x0e, 0x1960 }, /* Index: 0x74, char: \x75 */ + { 0x0e, 0x1998 }, /* Index: 0x75, char: \x76 */ + { 0x0e, 0x19d0 }, /* Index: 0x76, char: \x77 */ + { 0x0e, 0x1a08 }, /* Index: 0x77, char: \x78 */ + { 0x0e, 0x1a40 }, /* Index: 0x78, char: \x79 */ + { 0x0e, 0x1a78 }, /* Index: 0x79, char: \x7a */ + { 0x0e, 0x1ab0 }, /* Index: 0x7a, char: \x7b */ + { 0x0e, 0x1ae8 }, /* Index: 0x7b, char: \x7c */ + { 0x0e, 0x1b20 }, /* Index: 0x7c, char: \x7d */ + { 0x0e, 0x1b58 }, /* Index: 0x7d, char: \x7e */ + { 0x0e, 0x1b90 }, /* Index: 0x7e, char: \x7f */ + { 0x0e, 0x1bc8 }, /* Index: 0x7f, char: \x80 */ + { 0x0e, 0x1c00 }, /* Index: 0x80, char: \x81 */ + { 0x0e, 0x1c38 }, /* Index: 0x81, char: \x82 */ + { 0x0e, 0x1c70 }, /* Index: 0x82, char: \x83 */ + { 0x0e, 0x1ca8 }, /* Index: 0x83, char: \x84 */ + { 0x0e, 0x1ce0 }, /* Index: 0x84, char: \x85 */ + { 0x0e, 0x1d18 }, /* Index: 0x85, char: \x86 */ + { 0x0e, 0x1d50 }, /* Index: 0x86, char: \x87 */ + { 0x0e, 0x1d88 }, /* Index: 0x87, char: \x88 */ + { 0x0e, 0x1dc0 }, /* Index: 0x88, char: \x89 */ + { 0x0e, 0x1df8 }, /* Index: 0x89, char: \x8a */ + { 0x0e, 0x1e30 }, /* Index: 0x8a, char: \x8b */ + { 0x0e, 0x1e68 }, /* Index: 0x8b, char: \x8c */ + { 0x0e, 0x1ea0 }, /* Index: 0x8c, char: \x8d */ + { 0x0e, 0x1ed8 }, /* Index: 0x8d, char: \x8e */ + { 0x0e, 0x1f10 }, /* Index: 0x8e, char: \x8f */ + { 0x0e, 0x1f48 }, /* Index: 0x8f, char: \x90 */ + { 0x0e, 0x1f80 }, /* Index: 0x90, char: \x91 */ + { 0x0e, 0x1fb8 }, /* Index: 0x91, char: \x92 */ + { 0x0e, 0x1ff0 }, /* Index: 0x92, char: \x93 */ + { 0x0e, 0x2028 }, /* Index: 0x93, char: \x94 */ + { 0x0e, 0x2060 }, /* Index: 0x94, char: \x95 */ + { 0x0e, 0x2098 }, /* Index: 0x95, char: \x96 */ + { 0x0e, 0x20d0 }, /* Index: 0x96, char: \x97 */ + { 0x0e, 0x2108 }, /* Index: 0x97, char: \x98 */ + { 0x0e, 0x2140 }, /* Index: 0x98, char: \x99 */ + { 0x0e, 0x2178 }, /* Index: 0x99, char: \x9a */ + { 0x0e, 0x21b0 }, /* Index: 0x9a, char: \x9b */ + { 0x0e, 0x21e8 }, /* Index: 0x9b, char: \x9c */ + { 0x0e, 0x2220 }, /* Index: 0x9c, char: \x9d */ + { 0x0e, 0x2258 }, /* Index: 0x9d, char: \x9e */ + { 0x0e, 0x2290 }, /* Index: 0x9e, char: \x9f */ + { 0x0e, 0x22c8 }, /* Index: 0x9f, char: \xa0 */ + { 0x0e, 0x2300 }, /* Index: 0xa0, char: \xa1 */ + { 0x0e, 0x2338 }, /* Index: 0xa1, char: \xa2 */ + { 0x0e, 0x2370 }, /* Index: 0xa2, char: \xa3 */ + { 0x0e, 0x23a8 }, /* Index: 0xa3, char: \xa4 */ + { 0x0e, 0x23e0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0e, 0x2418 }, /* Index: 0xa5, char: \xa6 */ + { 0x0e, 0x2450 }, /* Index: 0xa6, char: \xa7 */ + { 0x0e, 0x2488 }, /* Index: 0xa7, char: \xa8 */ + { 0x0e, 0x24c0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0e, 0x24f8 }, /* Index: 0xa9, char: \xaa */ + { 0x0e, 0x2530 }, /* Index: 0xaa, char: \xab */ + { 0x0e, 0x2568 }, /* Index: 0xab, char: \xac */ + { 0x0e, 0x25a0 }, /* Index: 0xac, char: \xad */ + { 0x0e, 0x25d8 }, /* Index: 0xad, char: \xae */ + { 0x0e, 0x2610 }, /* Index: 0xae, char: \xaf */ + { 0x0e, 0x2648 }, /* Index: 0xaf, char: \xb0 */ + { 0x0e, 0x2680 }, /* Index: 0xb0, char: \xb1 */ + { 0x0e, 0x26b8 }, /* Index: 0xb1, char: \xb2 */ + { 0x0e, 0x26f0 }, /* Index: 0xb2, char: \xb3 */ + { 0x0e, 0x2728 }, /* Index: 0xb3, char: \xb4 */ + { 0x0e, 0x2760 }, /* Index: 0xb4, char: \xb5 */ + { 0x0e, 0x2798 }, /* Index: 0xb5, char: \xb6 */ + { 0x0e, 0x27d0 }, /* Index: 0xb6, char: \xb7 */ + { 0x0e, 0x2808 }, /* Index: 0xb7, char: \xb8 */ + { 0x0e, 0x2840 }, /* Index: 0xb8, char: \xb9 */ + { 0x0e, 0x2878 }, /* Index: 0xb9, char: \xba */ + { 0x0e, 0x28b0 }, /* Index: 0xba, char: \xbb */ + { 0x0e, 0x28e8 }, /* Index: 0xbb, char: \xbc */ + { 0x0e, 0x2920 }, /* Index: 0xbc, char: \xbd */ + { 0x0e, 0x2958 }, /* Index: 0xbd, char: \xbe */ + { 0x0e, 0x2990 }, /* Index: 0xbe, char: \xbf */ + { 0x0e, 0x29c8 }, /* Index: 0xbf, char: \xc0 */ + { 0x0e, 0x2a00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0e, 0x2a38 }, /* Index: 0xc1, char: \xc2 */ + { 0x0e, 0x2a70 }, /* Index: 0xc2, char: \xc3 */ + { 0x0e, 0x2aa8 }, /* Index: 0xc3, char: \xc4 */ + { 0x0e, 0x2ae0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0e, 0x2b18 }, /* Index: 0xc5, char: \xc6 */ + { 0x0e, 0x2b50 }, /* Index: 0xc6, char: \xc7 */ + { 0x0e, 0x2b88 }, /* Index: 0xc7, char: \xc8 */ + { 0x0e, 0x2bc0 }, /* Index: 0xc8, char: \xc9 */ + { 0x0e, 0x2bf8 }, /* Index: 0xc9, char: \xca */ + { 0x0e, 0x2c30 }, /* Index: 0xca, char: \xcb */ + { 0x0e, 0x2c68 }, /* Index: 0xcb, char: \xcc */ + { 0x0e, 0x2ca0 }, /* Index: 0xcc, char: \xcd */ + { 0x0e, 0x2cd8 }, /* Index: 0xcd, char: \xce */ + { 0x0e, 0x2d10 }, /* Index: 0xce, char: \xcf */ + { 0x0e, 0x2d48 }, /* Index: 0xcf, char: \xd0 */ + { 0x0e, 0x2d80 }, /* Index: 0xd0, char: \xd1 */ + { 0x0e, 0x2db8 }, /* Index: 0xd1, char: \xd2 */ + { 0x0e, 0x2df0 }, /* Index: 0xd2, char: \xd3 */ + { 0x0e, 0x2e28 }, /* Index: 0xd3, char: \xd4 */ + { 0x0e, 0x2e60 }, /* Index: 0xd4, char: \xd5 */ + { 0x0e, 0x2e98 }, /* Index: 0xd5, char: \xd6 */ + { 0x0e, 0x2ed0 }, /* Index: 0xd6, char: \xd7 */ + { 0x0e, 0x2f08 }, /* Index: 0xd7, char: \xd8 */ + { 0x0e, 0x2f40 }, /* Index: 0xd8, char: \xd9 */ + { 0x0e, 0x2f78 }, /* Index: 0xd9, char: \xda */ + { 0x0e, 0x2fb0 }, /* Index: 0xda, char: \xdb */ + { 0x0e, 0x2fe8 }, /* Index: 0xdb, char: \xdc */ + { 0x0e, 0x3020 }, /* Index: 0xdc, char: \xdd */ + { 0x0e, 0x3058 }, /* Index: 0xdd, char: \xde */ + { 0x0e, 0x3090 }, /* Index: 0xde, char: \xdf */ + { 0x0e, 0x30c8 }, /* Index: 0xdf, char: \xe0 */ + { 0x0e, 0x3100 }, /* Index: 0xe0, char: \xe1 */ + { 0x0e, 0x3138 }, /* Index: 0xe1, char: \xe2 */ + { 0x0e, 0x3170 }, /* Index: 0xe2, char: \xe3 */ + { 0x0e, 0x31a8 }, /* Index: 0xe3, char: \xe4 */ + { 0x0e, 0x31e0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0e, 0x3218 }, /* Index: 0xe5, char: \xe6 */ + { 0x0e, 0x3250 }, /* Index: 0xe6, char: \xe7 */ + { 0x0e, 0x3288 }, /* Index: 0xe7, char: \xe8 */ + { 0x0e, 0x32c0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0e, 0x32f8 }, /* Index: 0xe9, char: \xea */ + { 0x0e, 0x3330 }, /* Index: 0xea, char: \xeb */ + { 0x0e, 0x3368 }, /* Index: 0xeb, char: \xec */ + { 0x0e, 0x33a0 }, /* Index: 0xec, char: \xed */ + { 0x0e, 0x33d8 }, /* Index: 0xed, char: \xee */ + { 0x0e, 0x3410 }, /* Index: 0xee, char: \xef */ + { 0x0e, 0x3448 }, /* Index: 0xef, char: \xf0 */ + { 0x0e, 0x3480 }, /* Index: 0xf0, char: \xf1 */ + { 0x0e, 0x34b8 }, /* Index: 0xf1, char: \xf2 */ + { 0x0e, 0x34f0 }, /* Index: 0xf2, char: \xf3 */ + { 0x0e, 0x3528 }, /* Index: 0xf3, char: \xf4 */ + { 0x0e, 0x3560 }, /* Index: 0xf4, char: \xf5 */ + { 0x0e, 0x3598 }, /* Index: 0xf5, char: \xf6 */ + { 0x0e, 0x35d0 }, /* Index: 0xf6, char: \xf7 */ + { 0x0e, 0x3608 }, /* Index: 0xf7, char: \xf8 */ + { 0x0e, 0x3640 }, /* Index: 0xf8, char: \xf9 */ + { 0x0e, 0x3678 }, /* Index: 0xf9, char: \xfa */ + { 0x0e, 0x36b0 }, /* Index: 0xfa, char: \xfb */ + { 0x0e, 0x36e8 }, /* Index: 0xfb, char: \xfc */ + { 0x0e, 0x3720 }, /* Index: 0xfc, char: \xfd */ + { 0x0e, 0x3758 }, /* Index: 0xfd, char: \xfe */ + { 0x0e, 0x3790 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_14x28_koi8_r_info = +{ + .height = 28, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_14x28_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_14x28_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_14X28_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_16x32_iso8859_1.h b/extras/fonts/data/font_terminus_16x32_iso8859_1.h new file mode 100644 index 0000000..cf73ac4 --- /dev/null +++ b/extras/fonts/data/font_terminus_16x32_iso8859_1.h @@ -0,0 +1,8959 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 16x32 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:38:17 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_16X32_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_16X32_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_16x32_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0040 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x0080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x0c, /* ......##....##.. */ + 0x03, 0x0c, /* ......##....##.. */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x70, /* ......##.###.... */ + 0x03, 0x38, /* ......##..###... */ + 0x03, 0x1c, /* ......##...###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x80, /* .##..####....... */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0280 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0340 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0380 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0f, char: \x10, offset: 0x03c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x04c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0500 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x15, char: \x16, offset: 0x0540 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x16, char: \x17, offset: 0x0580 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x05c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x18, char: \x19, offset: 0x0600 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x19, char: \x1a, offset: 0x0640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xe0, /* ......#####..... */ + 0x07, 0xf0, /* .....#######.... */ + 0x0e, 0x38, /* ....###...###... */ + 0x0c, 0x18, /* ....##.....##... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x07c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x39, 0x80, /* ..###..##....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x01, 0x9c, /* .......##..###.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x18, /* ...####....##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x3f, 0x60, /* ..######.##..... */ + 0x1e, 0x60, /* ...####..##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x0d, 0xf8, /* ....##.######... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0xf8, /* ..##...######... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x8c, /* ...######...##.. */ + 0x39, 0xdc, /* ..###..###.###.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x70, 0xf8, /* .###....#####... */ + 0x3f, 0xdc, /* ..########.###.. */ + 0x1f, 0x8c, /* ...######...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x0a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x7c, /* .........#####.. */ + 0x00, 0xec, /* ........###.##.. */ + 0x01, 0xcc, /* .......###..##.. */ + 0x03, 0x8c, /* ......###...##.. */ + 0x07, 0x0c, /* .....###....##.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf8, /* ....#########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x61, 0xfc, /* .##....#######.. */ + 0x63, 0xfc, /* .##...########.. */ + 0x67, 0x0c, /* .##..###....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x67, 0x1c, /* .##..###...###.. */ + 0x63, 0xfc, /* .##...########.. */ + 0x61, 0xec, /* .##....####.##.. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x1000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x1040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x10c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x1100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0xfc, /* ..##....######.. */ + 0x30, 0xfc, /* ..##....######.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x11c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x1240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x1300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x13c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x38, 0xfc, /* ..###...######.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x1480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x00, /* ..###........... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x14c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x17c0 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0xfe, /* ........#######. */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x19c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x1c, 0x38, /* ...###....###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x1c, /* ...##......###.. */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x1b, 0x80, /* ...##.###....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x1b, 0x80, /* ...##.###....... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x1c, /* ...##......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x31, 0x9c, /* ..##...##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0xfc, /* ..##..########.. */ + 0x37, 0xfc, /* ..##.#########.. */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x00, /* ..###........... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xfc, /* .......#######.. */ + 0x00, 0xfc, /* ........######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xf0, /* .......#####.... */ + 0x00, 0xf0, /* ........####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xf0, /* ........####.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1f, 0x0c, /* ...#####....##.. */ + 0x3b, 0x8c, /* ..###.###...##.. */ + 0x31, 0xdc, /* ..##...###.###.. */ + 0x30, 0xf8, /* ..##....#####... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x2000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x2080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x20c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x2100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x2180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x2200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x2240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x2280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x22c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x2300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x2340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x2380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x23c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x2400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x2440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x2480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x2580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x25c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x26c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x27c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xe0, /* ......#####..... */ + 0x07, 0xf0, /* .....#######.... */ + 0x0e, 0x38, /* ....###...###... */ + 0x0c, 0x18, /* ....##.....##... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x28c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x1c, 0x38, /* ...###....###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x2900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x00, /* ...##........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0xc0, /* ....######...... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x29c0 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x2a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x18, /* ...........##... */ + 0x07, 0xf8, /* .....########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x1c, 0x18, /* ...###.....##... */ + 0x18, 0x18, /* ...##......##... */ + 0x1c, 0x18, /* ...###.....##... */ + 0x0f, 0xf8, /* ....#########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x01, 0xce, /* .......###..###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x6f, 0xe6, /* .##.#######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6f, 0xe6, /* .##.#######..##. */ + 0x6f, 0xc6, /* .##.######...##. */ + 0x6d, 0xc6, /* .##.##.###...##. */ + 0x6c, 0xe6, /* .##.##..###..##. */ + 0x6c, 0x76, /* .##.##...###.##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x2c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x2c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x01, 0xe0, /* .......####..... */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x2d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x3f, 0xec, /* ..#########.##.. */ + 0x3f, 0xcc, /* ..########..##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x2d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x71, 0x8c, /* .###...##...##.. */ + 0x61, 0x8c, /* .##....##...##.. */ + 0x61, 0x8c, /* .##....##...##.. */ + 0x61, 0x8c, /* .##....##...##.. */ + 0x61, 0x8c, /* .##....##...##.. */ + 0x61, 0x8c, /* .##....##...##.. */ + 0x71, 0x8c, /* .###...##...##.. */ + 0x3f, 0x8c, /* ..#######...##.. */ + 0x1f, 0x8c, /* ...######...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x1c, 0x38, /* ...###....###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x2e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x06, /* ....##.......##. */ + 0x0c, 0x0e, /* ....##......###. */ + 0x0c, 0x1c, /* ....##.....###.. */ + 0x0c, 0x38, /* ....##....###... */ + 0x0c, 0x70, /* ....##...###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc6, /* .......###...##. */ + 0x03, 0x8e, /* ......###...###. */ + 0x07, 0x1e, /* .....###...####. */ + 0x0e, 0x36, /* ....###...##.##. */ + 0x1c, 0x66, /* ...###...##..##. */ + 0x38, 0xc6, /* ..###...##...##. */ + 0x71, 0xfe, /* .###...########. */ + 0x61, 0xfe, /* .##....########. */ + 0x00, 0x06, /* .............##. */ + 0x00, 0x06, /* .............##. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x38, 0x00, /* ..###........... */ + 0x78, 0x06, /* .####........##. */ + 0x18, 0x0e, /* ...##.......###. */ + 0x18, 0x1c, /* ...##......###.. */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x7c, /* ....###..#####.. */ + 0x1c, 0xfe, /* ...###..#######. */ + 0x38, 0xc6, /* ..###...##...##. */ + 0x70, 0xc6, /* .###....##...##. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0xfe, /* ........#######. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x86, /* .......##....##. */ + 0x61, 0x8e, /* .##....##...###. */ + 0x7f, 0x9c, /* .########..###.. */ + 0x3f, 0x38, /* ..######..###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe6, /* ........###..##. */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9e, /* ......###..####. */ + 0x07, 0x36, /* .....###..##.##. */ + 0x0e, 0x66, /* ....###..##..##. */ + 0x1c, 0xc6, /* ...###..##...##. */ + 0x39, 0xfe, /* ..###..########. */ + 0x71, 0xfe, /* .###...########. */ + 0x60, 0x06, /* .##..........##. */ + 0x00, 0x06, /* .............##. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x2f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x2fc0 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x3000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x3040 */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x3080 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x30c0 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x3140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xff, /* ...############# */ + 0x3f, 0xff, /* ..############## */ + 0x70, 0xc0, /* .###....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xff, /* .##.....######## */ + 0x60, 0xff, /* .##.....######## */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x3180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x31c0 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x3200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x3240 */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x3280 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x3300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x3340 */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x3380 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x33c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x3400 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x3440 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x34c0 */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x3500 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x3540 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x3580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x35c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0e, /* ..##........###. */ + 0x30, 0x0e, /* ..##........###. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x70, 0x0c, /* .###........##.. */ + 0x70, 0x0c, /* .###........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x3600 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x3680 */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x36c0 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x3c, 0x1c, /* ..####.....###.. */ + 0x37, 0xf8, /* ..##.########... */ + 0x33, 0xf0, /* ..##..######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x37c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x38c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x3900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0xf8, /* ..#####.#####... */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x8e, /* .......##...###. */ + 0x01, 0x86, /* .......##....##. */ + 0x01, 0x86, /* .......##....##. */ + 0x1f, 0x86, /* ...######....##. */ + 0x3f, 0xfe, /* ..#############. */ + 0x71, 0xfe, /* .###...########. */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0xc6, /* .###...###...##. */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0x7c, /* ...#####.#####.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x39c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x3a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x3a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x3b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x3b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x3c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x3c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x18, /* ....####...##... */ + 0x1b, 0x98, /* ...##.###..##... */ + 0x19, 0xd8, /* ...##..###.##... */ + 0x18, 0xf0, /* ...##...####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x3d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf6, /* ....########.##. */ + 0x1f, 0xfe, /* ...############. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x7f, 0xf8, /* .############... */ + 0xef, 0xf0, /* ###.########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x3e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x3ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_16x32_iso8859_1_descriptors[] = { + { 0x10, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x10, 0x0040 }, /* Index: 0x01, char: \x02 */ + { 0x10, 0x0080 }, /* Index: 0x02, char: \x03 */ + { 0x10, 0x00c0 }, /* Index: 0x03, char: \x04 */ + { 0x10, 0x0100 }, /* Index: 0x04, char: \x05 */ + { 0x10, 0x0140 }, /* Index: 0x05, char: \x06 */ + { 0x10, 0x0180 }, /* Index: 0x06, char: \x07 */ + { 0x10, 0x01c0 }, /* Index: 0x07, char: \x08 */ + { 0x10, 0x0200 }, /* Index: 0x08, char: \x09 */ + { 0x10, 0x0240 }, /* Index: 0x09, char: \x0a */ + { 0x10, 0x0280 }, /* Index: 0x0a, char: \x0b */ + { 0x10, 0x02c0 }, /* Index: 0x0b, char: \x0c */ + { 0x10, 0x0300 }, /* Index: 0x0c, char: \x0d */ + { 0x10, 0x0340 }, /* Index: 0x0d, char: \x0e */ + { 0x10, 0x0380 }, /* Index: 0x0e, char: \x0f */ + { 0x10, 0x03c0 }, /* Index: 0x0f, char: \x10 */ + { 0x10, 0x0400 }, /* Index: 0x10, char: \x11 */ + { 0x10, 0x0440 }, /* Index: 0x11, char: \x12 */ + { 0x10, 0x0480 }, /* Index: 0x12, char: \x13 */ + { 0x10, 0x04c0 }, /* Index: 0x13, char: \x14 */ + { 0x10, 0x0500 }, /* Index: 0x14, char: \x15 */ + { 0x10, 0x0540 }, /* Index: 0x15, char: \x16 */ + { 0x10, 0x0580 }, /* Index: 0x16, char: \x17 */ + { 0x10, 0x05c0 }, /* Index: 0x17, char: \x18 */ + { 0x10, 0x0600 }, /* Index: 0x18, char: \x19 */ + { 0x10, 0x0640 }, /* Index: 0x19, char: \x1a */ + { 0x10, 0x0680 }, /* Index: 0x1a, char: \x1b */ + { 0x10, 0x06c0 }, /* Index: 0x1b, char: \x1c */ + { 0x10, 0x0700 }, /* Index: 0x1c, char: \x1d */ + { 0x10, 0x0740 }, /* Index: 0x1d, char: \x1e */ + { 0x10, 0x0780 }, /* Index: 0x1e, char: \x1f */ + { 0x10, 0x07c0 }, /* Index: 0x1f, char: \x20 */ + { 0x10, 0x0800 }, /* Index: 0x20, char: \x21 */ + { 0x10, 0x0840 }, /* Index: 0x21, char: \x22 */ + { 0x10, 0x0880 }, /* Index: 0x22, char: \x23 */ + { 0x10, 0x08c0 }, /* Index: 0x23, char: \x24 */ + { 0x10, 0x0900 }, /* Index: 0x24, char: \x25 */ + { 0x10, 0x0940 }, /* Index: 0x25, char: \x26 */ + { 0x10, 0x0980 }, /* Index: 0x26, char: \x27 */ + { 0x10, 0x09c0 }, /* Index: 0x27, char: \x28 */ + { 0x10, 0x0a00 }, /* Index: 0x28, char: \x29 */ + { 0x10, 0x0a40 }, /* Index: 0x29, char: \x2a */ + { 0x10, 0x0a80 }, /* Index: 0x2a, char: \x2b */ + { 0x10, 0x0ac0 }, /* Index: 0x2b, char: \x2c */ + { 0x10, 0x0b00 }, /* Index: 0x2c, char: \x2d */ + { 0x10, 0x0b40 }, /* Index: 0x2d, char: \x2e */ + { 0x10, 0x0b80 }, /* Index: 0x2e, char: \x2f */ + { 0x10, 0x0bc0 }, /* Index: 0x2f, char: \x30 */ + { 0x10, 0x0c00 }, /* Index: 0x30, char: \x31 */ + { 0x10, 0x0c40 }, /* Index: 0x31, char: \x32 */ + { 0x10, 0x0c80 }, /* Index: 0x32, char: \x33 */ + { 0x10, 0x0cc0 }, /* Index: 0x33, char: \x34 */ + { 0x10, 0x0d00 }, /* Index: 0x34, char: \x35 */ + { 0x10, 0x0d40 }, /* Index: 0x35, char: \x36 */ + { 0x10, 0x0d80 }, /* Index: 0x36, char: \x37 */ + { 0x10, 0x0dc0 }, /* Index: 0x37, char: \x38 */ + { 0x10, 0x0e00 }, /* Index: 0x38, char: \x39 */ + { 0x10, 0x0e40 }, /* Index: 0x39, char: \x3a */ + { 0x10, 0x0e80 }, /* Index: 0x3a, char: \x3b */ + { 0x10, 0x0ec0 }, /* Index: 0x3b, char: \x3c */ + { 0x10, 0x0f00 }, /* Index: 0x3c, char: \x3d */ + { 0x10, 0x0f40 }, /* Index: 0x3d, char: \x3e */ + { 0x10, 0x0f80 }, /* Index: 0x3e, char: \x3f */ + { 0x10, 0x0fc0 }, /* Index: 0x3f, char: \x40 */ + { 0x10, 0x1000 }, /* Index: 0x40, char: \x41 */ + { 0x10, 0x1040 }, /* Index: 0x41, char: \x42 */ + { 0x10, 0x1080 }, /* Index: 0x42, char: \x43 */ + { 0x10, 0x10c0 }, /* Index: 0x43, char: \x44 */ + { 0x10, 0x1100 }, /* Index: 0x44, char: \x45 */ + { 0x10, 0x1140 }, /* Index: 0x45, char: \x46 */ + { 0x10, 0x1180 }, /* Index: 0x46, char: \x47 */ + { 0x10, 0x11c0 }, /* Index: 0x47, char: \x48 */ + { 0x10, 0x1200 }, /* Index: 0x48, char: \x49 */ + { 0x10, 0x1240 }, /* Index: 0x49, char: \x4a */ + { 0x10, 0x1280 }, /* Index: 0x4a, char: \x4b */ + { 0x10, 0x12c0 }, /* Index: 0x4b, char: \x4c */ + { 0x10, 0x1300 }, /* Index: 0x4c, char: \x4d */ + { 0x10, 0x1340 }, /* Index: 0x4d, char: \x4e */ + { 0x10, 0x1380 }, /* Index: 0x4e, char: \x4f */ + { 0x10, 0x13c0 }, /* Index: 0x4f, char: \x50 */ + { 0x10, 0x1400 }, /* Index: 0x50, char: \x51 */ + { 0x10, 0x1440 }, /* Index: 0x51, char: \x52 */ + { 0x10, 0x1480 }, /* Index: 0x52, char: \x53 */ + { 0x10, 0x14c0 }, /* Index: 0x53, char: \x54 */ + { 0x10, 0x1500 }, /* Index: 0x54, char: \x55 */ + { 0x10, 0x1540 }, /* Index: 0x55, char: \x56 */ + { 0x10, 0x1580 }, /* Index: 0x56, char: \x57 */ + { 0x10, 0x15c0 }, /* Index: 0x57, char: \x58 */ + { 0x10, 0x1600 }, /* Index: 0x58, char: \x59 */ + { 0x10, 0x1640 }, /* Index: 0x59, char: \x5a */ + { 0x10, 0x1680 }, /* Index: 0x5a, char: \x5b */ + { 0x10, 0x16c0 }, /* Index: 0x5b, char: \x5c */ + { 0x10, 0x1700 }, /* Index: 0x5c, char: \x5d */ + { 0x10, 0x1740 }, /* Index: 0x5d, char: \x5e */ + { 0x10, 0x1780 }, /* Index: 0x5e, char: \x5f */ + { 0x10, 0x17c0 }, /* Index: 0x5f, char: \x60 */ + { 0x10, 0x1800 }, /* Index: 0x60, char: \x61 */ + { 0x10, 0x1840 }, /* Index: 0x61, char: \x62 */ + { 0x10, 0x1880 }, /* Index: 0x62, char: \x63 */ + { 0x10, 0x18c0 }, /* Index: 0x63, char: \x64 */ + { 0x10, 0x1900 }, /* Index: 0x64, char: \x65 */ + { 0x10, 0x1940 }, /* Index: 0x65, char: \x66 */ + { 0x10, 0x1980 }, /* Index: 0x66, char: \x67 */ + { 0x10, 0x19c0 }, /* Index: 0x67, char: \x68 */ + { 0x10, 0x1a00 }, /* Index: 0x68, char: \x69 */ + { 0x10, 0x1a40 }, /* Index: 0x69, char: \x6a */ + { 0x10, 0x1a80 }, /* Index: 0x6a, char: \x6b */ + { 0x10, 0x1ac0 }, /* Index: 0x6b, char: \x6c */ + { 0x10, 0x1b00 }, /* Index: 0x6c, char: \x6d */ + { 0x10, 0x1b40 }, /* Index: 0x6d, char: \x6e */ + { 0x10, 0x1b80 }, /* Index: 0x6e, char: \x6f */ + { 0x10, 0x1bc0 }, /* Index: 0x6f, char: \x70 */ + { 0x10, 0x1c00 }, /* Index: 0x70, char: \x71 */ + { 0x10, 0x1c40 }, /* Index: 0x71, char: \x72 */ + { 0x10, 0x1c80 }, /* Index: 0x72, char: \x73 */ + { 0x10, 0x1cc0 }, /* Index: 0x73, char: \x74 */ + { 0x10, 0x1d00 }, /* Index: 0x74, char: \x75 */ + { 0x10, 0x1d40 }, /* Index: 0x75, char: \x76 */ + { 0x10, 0x1d80 }, /* Index: 0x76, char: \x77 */ + { 0x10, 0x1dc0 }, /* Index: 0x77, char: \x78 */ + { 0x10, 0x1e00 }, /* Index: 0x78, char: \x79 */ + { 0x10, 0x1e40 }, /* Index: 0x79, char: \x7a */ + { 0x10, 0x1e80 }, /* Index: 0x7a, char: \x7b */ + { 0x10, 0x1ec0 }, /* Index: 0x7b, char: \x7c */ + { 0x10, 0x1f00 }, /* Index: 0x7c, char: \x7d */ + { 0x10, 0x1f40 }, /* Index: 0x7d, char: \x7e */ + { 0x10, 0x1f80 }, /* Index: 0x7e, char: \x7f */ + { 0x10, 0x1fc0 }, /* Index: 0x7f, char: \x80 */ + { 0x10, 0x2000 }, /* Index: 0x80, char: \x81 */ + { 0x10, 0x2040 }, /* Index: 0x81, char: \x82 */ + { 0x10, 0x2080 }, /* Index: 0x82, char: \x83 */ + { 0x10, 0x20c0 }, /* Index: 0x83, char: \x84 */ + { 0x10, 0x2100 }, /* Index: 0x84, char: \x85 */ + { 0x10, 0x2140 }, /* Index: 0x85, char: \x86 */ + { 0x10, 0x2180 }, /* Index: 0x86, char: \x87 */ + { 0x10, 0x21c0 }, /* Index: 0x87, char: \x88 */ + { 0x10, 0x2200 }, /* Index: 0x88, char: \x89 */ + { 0x10, 0x2240 }, /* Index: 0x89, char: \x8a */ + { 0x10, 0x2280 }, /* Index: 0x8a, char: \x8b */ + { 0x10, 0x22c0 }, /* Index: 0x8b, char: \x8c */ + { 0x10, 0x2300 }, /* Index: 0x8c, char: \x8d */ + { 0x10, 0x2340 }, /* Index: 0x8d, char: \x8e */ + { 0x10, 0x2380 }, /* Index: 0x8e, char: \x8f */ + { 0x10, 0x23c0 }, /* Index: 0x8f, char: \x90 */ + { 0x10, 0x2400 }, /* Index: 0x90, char: \x91 */ + { 0x10, 0x2440 }, /* Index: 0x91, char: \x92 */ + { 0x10, 0x2480 }, /* Index: 0x92, char: \x93 */ + { 0x10, 0x24c0 }, /* Index: 0x93, char: \x94 */ + { 0x10, 0x2500 }, /* Index: 0x94, char: \x95 */ + { 0x10, 0x2540 }, /* Index: 0x95, char: \x96 */ + { 0x10, 0x2580 }, /* Index: 0x96, char: \x97 */ + { 0x10, 0x25c0 }, /* Index: 0x97, char: \x98 */ + { 0x10, 0x2600 }, /* Index: 0x98, char: \x99 */ + { 0x10, 0x2640 }, /* Index: 0x99, char: \x9a */ + { 0x10, 0x2680 }, /* Index: 0x9a, char: \x9b */ + { 0x10, 0x26c0 }, /* Index: 0x9b, char: \x9c */ + { 0x10, 0x2700 }, /* Index: 0x9c, char: \x9d */ + { 0x10, 0x2740 }, /* Index: 0x9d, char: \x9e */ + { 0x10, 0x2780 }, /* Index: 0x9e, char: \x9f */ + { 0x10, 0x27c0 }, /* Index: 0x9f, char: \xa0 */ + { 0x10, 0x2800 }, /* Index: 0xa0, char: \xa1 */ + { 0x10, 0x2840 }, /* Index: 0xa1, char: \xa2 */ + { 0x10, 0x2880 }, /* Index: 0xa2, char: \xa3 */ + { 0x10, 0x28c0 }, /* Index: 0xa3, char: \xa4 */ + { 0x10, 0x2900 }, /* Index: 0xa4, char: \xa5 */ + { 0x10, 0x2940 }, /* Index: 0xa5, char: \xa6 */ + { 0x10, 0x2980 }, /* Index: 0xa6, char: \xa7 */ + { 0x10, 0x29c0 }, /* Index: 0xa7, char: \xa8 */ + { 0x10, 0x2a00 }, /* Index: 0xa8, char: \xa9 */ + { 0x10, 0x2a40 }, /* Index: 0xa9, char: \xaa */ + { 0x10, 0x2a80 }, /* Index: 0xaa, char: \xab */ + { 0x10, 0x2ac0 }, /* Index: 0xab, char: \xac */ + { 0x10, 0x2b00 }, /* Index: 0xac, char: \xad */ + { 0x10, 0x2b40 }, /* Index: 0xad, char: \xae */ + { 0x10, 0x2b80 }, /* Index: 0xae, char: \xaf */ + { 0x10, 0x2bc0 }, /* Index: 0xaf, char: \xb0 */ + { 0x10, 0x2c00 }, /* Index: 0xb0, char: \xb1 */ + { 0x10, 0x2c40 }, /* Index: 0xb1, char: \xb2 */ + { 0x10, 0x2c80 }, /* Index: 0xb2, char: \xb3 */ + { 0x10, 0x2cc0 }, /* Index: 0xb3, char: \xb4 */ + { 0x10, 0x2d00 }, /* Index: 0xb4, char: \xb5 */ + { 0x10, 0x2d40 }, /* Index: 0xb5, char: \xb6 */ + { 0x10, 0x2d80 }, /* Index: 0xb6, char: \xb7 */ + { 0x10, 0x2dc0 }, /* Index: 0xb7, char: \xb8 */ + { 0x10, 0x2e00 }, /* Index: 0xb8, char: \xb9 */ + { 0x10, 0x2e40 }, /* Index: 0xb9, char: \xba */ + { 0x10, 0x2e80 }, /* Index: 0xba, char: \xbb */ + { 0x10, 0x2ec0 }, /* Index: 0xbb, char: \xbc */ + { 0x10, 0x2f00 }, /* Index: 0xbc, char: \xbd */ + { 0x10, 0x2f40 }, /* Index: 0xbd, char: \xbe */ + { 0x10, 0x2f80 }, /* Index: 0xbe, char: \xbf */ + { 0x10, 0x2fc0 }, /* Index: 0xbf, char: \xc0 */ + { 0x10, 0x3000 }, /* Index: 0xc0, char: \xc1 */ + { 0x10, 0x3040 }, /* Index: 0xc1, char: \xc2 */ + { 0x10, 0x3080 }, /* Index: 0xc2, char: \xc3 */ + { 0x10, 0x30c0 }, /* Index: 0xc3, char: \xc4 */ + { 0x10, 0x3100 }, /* Index: 0xc4, char: \xc5 */ + { 0x10, 0x3140 }, /* Index: 0xc5, char: \xc6 */ + { 0x10, 0x3180 }, /* Index: 0xc6, char: \xc7 */ + { 0x10, 0x31c0 }, /* Index: 0xc7, char: \xc8 */ + { 0x10, 0x3200 }, /* Index: 0xc8, char: \xc9 */ + { 0x10, 0x3240 }, /* Index: 0xc9, char: \xca */ + { 0x10, 0x3280 }, /* Index: 0xca, char: \xcb */ + { 0x10, 0x32c0 }, /* Index: 0xcb, char: \xcc */ + { 0x10, 0x3300 }, /* Index: 0xcc, char: \xcd */ + { 0x10, 0x3340 }, /* Index: 0xcd, char: \xce */ + { 0x10, 0x3380 }, /* Index: 0xce, char: \xcf */ + { 0x10, 0x33c0 }, /* Index: 0xcf, char: \xd0 */ + { 0x10, 0x3400 }, /* Index: 0xd0, char: \xd1 */ + { 0x10, 0x3440 }, /* Index: 0xd1, char: \xd2 */ + { 0x10, 0x3480 }, /* Index: 0xd2, char: \xd3 */ + { 0x10, 0x34c0 }, /* Index: 0xd3, char: \xd4 */ + { 0x10, 0x3500 }, /* Index: 0xd4, char: \xd5 */ + { 0x10, 0x3540 }, /* Index: 0xd5, char: \xd6 */ + { 0x10, 0x3580 }, /* Index: 0xd6, char: \xd7 */ + { 0x10, 0x35c0 }, /* Index: 0xd7, char: \xd8 */ + { 0x10, 0x3600 }, /* Index: 0xd8, char: \xd9 */ + { 0x10, 0x3640 }, /* Index: 0xd9, char: \xda */ + { 0x10, 0x3680 }, /* Index: 0xda, char: \xdb */ + { 0x10, 0x36c0 }, /* Index: 0xdb, char: \xdc */ + { 0x10, 0x3700 }, /* Index: 0xdc, char: \xdd */ + { 0x10, 0x3740 }, /* Index: 0xdd, char: \xde */ + { 0x10, 0x3780 }, /* Index: 0xde, char: \xdf */ + { 0x10, 0x37c0 }, /* Index: 0xdf, char: \xe0 */ + { 0x10, 0x3800 }, /* Index: 0xe0, char: \xe1 */ + { 0x10, 0x3840 }, /* Index: 0xe1, char: \xe2 */ + { 0x10, 0x3880 }, /* Index: 0xe2, char: \xe3 */ + { 0x10, 0x38c0 }, /* Index: 0xe3, char: \xe4 */ + { 0x10, 0x3900 }, /* Index: 0xe4, char: \xe5 */ + { 0x10, 0x3940 }, /* Index: 0xe5, char: \xe6 */ + { 0x10, 0x3980 }, /* Index: 0xe6, char: \xe7 */ + { 0x10, 0x39c0 }, /* Index: 0xe7, char: \xe8 */ + { 0x10, 0x3a00 }, /* Index: 0xe8, char: \xe9 */ + { 0x10, 0x3a40 }, /* Index: 0xe9, char: \xea */ + { 0x10, 0x3a80 }, /* Index: 0xea, char: \xeb */ + { 0x10, 0x3ac0 }, /* Index: 0xeb, char: \xec */ + { 0x10, 0x3b00 }, /* Index: 0xec, char: \xed */ + { 0x10, 0x3b40 }, /* Index: 0xed, char: \xee */ + { 0x10, 0x3b80 }, /* Index: 0xee, char: \xef */ + { 0x10, 0x3bc0 }, /* Index: 0xef, char: \xf0 */ + { 0x10, 0x3c00 }, /* Index: 0xf0, char: \xf1 */ + { 0x10, 0x3c40 }, /* Index: 0xf1, char: \xf2 */ + { 0x10, 0x3c80 }, /* Index: 0xf2, char: \xf3 */ + { 0x10, 0x3cc0 }, /* Index: 0xf3, char: \xf4 */ + { 0x10, 0x3d00 }, /* Index: 0xf4, char: \xf5 */ + { 0x10, 0x3d40 }, /* Index: 0xf5, char: \xf6 */ + { 0x10, 0x3d80 }, /* Index: 0xf6, char: \xf7 */ + { 0x10, 0x3dc0 }, /* Index: 0xf7, char: \xf8 */ + { 0x10, 0x3e00 }, /* Index: 0xf8, char: \xf9 */ + { 0x10, 0x3e40 }, /* Index: 0xf9, char: \xfa */ + { 0x10, 0x3e80 }, /* Index: 0xfa, char: \xfb */ + { 0x10, 0x3ec0 }, /* Index: 0xfb, char: \xfc */ + { 0x10, 0x3f00 }, /* Index: 0xfc, char: \xfd */ + { 0x10, 0x3f40 }, /* Index: 0xfd, char: \xfe */ + { 0x10, 0x3f80 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_16x32_iso8859_1_info = +{ + .height = 32, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_16x32_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_16x32_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_16X32_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_16x32_koi8_r.h b/extras/fonts/data/font_terminus_16x32_koi8_r.h new file mode 100644 index 0000000..b5194a1 --- /dev/null +++ b/extras/fonts/data/font_terminus_16x32_koi8_r.h @@ -0,0 +1,8959 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 16x32 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_16X32_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_16X32_KOI8_R_H_ + +static const uint8_t _fonts_terminus_16x32_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0040 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x0080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x0c, /* ......##....##.. */ + 0x03, 0x0c, /* ......##....##.. */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x70, /* ......##.###.... */ + 0x03, 0x38, /* ......##..###... */ + 0x03, 0x1c, /* ......##...###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x80, /* .##..####....... */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0280 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0340 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0380 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x0f, char: \x10, offset: 0x03c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x04c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0500 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x15, char: \x16, offset: 0x0540 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x16, char: \x17, offset: 0x0580 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x05c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x18, char: \x19, offset: 0x0600 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x19, char: \x1a, offset: 0x0640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xe0, /* ......#####..... */ + 0x07, 0xf0, /* .....#######.... */ + 0x0e, 0x38, /* ....###...###... */ + 0x0c, 0x18, /* ....##.....##... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x07c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x39, 0x80, /* ..###..##....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x01, 0x9c, /* .......##..###.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x18, /* ...####....##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x3f, 0x60, /* ..######.##..... */ + 0x1e, 0x60, /* ...####..##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x0d, 0xf8, /* ....##.######... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0xf8, /* ..##...######... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x8c, /* ...######...##.. */ + 0x39, 0xdc, /* ..###..###.###.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x70, 0xf8, /* .###....#####... */ + 0x3f, 0xdc, /* ..########.###.. */ + 0x1f, 0x8c, /* ...######...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x0a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x7c, /* .........#####.. */ + 0x00, 0xec, /* ........###.##.. */ + 0x01, 0xcc, /* .......###..##.. */ + 0x03, 0x8c, /* ......###...##.. */ + 0x07, 0x0c, /* .....###....##.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf8, /* ....#########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x61, 0xfc, /* .##....#######.. */ + 0x63, 0xfc, /* .##...########.. */ + 0x67, 0x0c, /* .##..###....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x66, 0x0c, /* .##..##.....##.. */ + 0x67, 0x1c, /* .##..###...###.. */ + 0x63, 0xfc, /* .##...########.. */ + 0x61, 0xec, /* .##....####.##.. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x1000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x1040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x10c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x1100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0xfc, /* ..##....######.. */ + 0x30, 0xfc, /* ..##....######.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x11c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x1240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x1300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x13c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x38, 0xfc, /* ..###...######.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x1480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x00, /* ..###........... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x14c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x17c0 */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x7e, /* .........######. */ + 0x00, 0xfe, /* ........#######. */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x19c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x1c, 0x38, /* ...###....###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x1c, /* ...##......###.. */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x1b, 0x80, /* ...##.###....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x1b, 0x80, /* ...##.###....... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x1c, /* ...##......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x31, 0x9c, /* ..##...##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0xfc, /* ..##..########.. */ + 0x37, 0xfc, /* ..##.#########.. */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x00, /* ..###........... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xfc, /* .......#######.. */ + 0x00, 0xfc, /* ........######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xf0, /* .......#####.... */ + 0x00, 0xf0, /* ........####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xf0, /* ........####.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1f, 0x0c, /* ...#####....##.. */ + 0x3b, 0x8c, /* ..###.###...##.. */ + 0x31, 0xdc, /* ..##...###.###.. */ + 0x30, 0xf8, /* ..##....#####... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x2000 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x81, char: \x82, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x82, char: \x83, offset: 0x2080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x83, char: \x84, offset: 0x20c0 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x2100 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x2140 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x86, char: \x87, offset: 0x2180 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x87, char: \x88, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x88, char: \x89, offset: 0x2200 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x2240 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x8a, char: \x8b, offset: 0x2280 */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x22c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + + /* Index: 0x8c, char: \x8d, offset: 0x2300 */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + + /* Index: 0x8d, char: \x8e, offset: 0x2340 */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + + /* Index: 0x8e, char: \x8f, offset: 0x2380 */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + + /* Index: 0x8f, char: \x90, offset: 0x23c0 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x2400 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x91, char: \x92, offset: 0x2440 */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + + /* Index: 0x92, char: \x93, offset: 0x2480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xf8, /* ........#####... */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x8c, /* .......##...##.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x93, char: \x94, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1e, /* ...........####. */ + 0x00, 0x1e, /* ...........####. */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x38, 0x18, /* ..###......##... */ + 0x1c, 0x18, /* ...###.....##... */ + 0x0e, 0x18, /* ....###....##... */ + 0x07, 0x18, /* .....###...##... */ + 0x03, 0x98, /* ......###..##... */ + 0x01, 0xd8, /* .......###.##... */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x2580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x0c, /* ...#####....##.. */ + 0x3f, 0x9c, /* ..#######..###.. */ + 0x39, 0xfc, /* ..###..#######.. */ + 0x30, 0xf8, /* ..##....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x0c, /* ...#####....##.. */ + 0x3f, 0x9c, /* ..#######..###.. */ + 0x39, 0xfc, /* ..###..#######.. */ + 0x30, 0xf8, /* ..##....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x25c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x2680 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x26c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x27c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2800 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xa1, char: \xa2, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xa2, char: \xa3, offset: 0x2880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x28c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xff, /* .....########### */ + 0x07, 0xff, /* .....########### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xa4, char: \xa5, offset: 0x2900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xff, /* .....########### */ + 0x07, 0xff, /* .....########### */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xa5, char: \xa6, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xa6, char: \xa7, offset: 0x2980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xa7, char: \xa8, offset: 0x29c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xa8, char: \xa9, offset: 0x2a00 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x2a40 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x07, 0xff, /* .....########### */ + 0x07, 0xff, /* .....########### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2a80 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xff, /* .....########### */ + 0x07, 0xff, /* .....########### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2ac0 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2b00 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2b40 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2b80 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0xff, /* .......######### */ + 0x01, 0xff, /* .......######### */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xaf, char: \xb0, offset: 0x2bc0 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb0, char: \xb1, offset: 0x2c00 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x7f, /* .....##..####### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb1, char: \xb2, offset: 0x2c40 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xb2, char: \xb3, offset: 0x2c80 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2cc0 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb4, char: \xb5, offset: 0x2d00 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb5, char: \xb6, offset: 0x2d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xb6, char: \xb7, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb7, char: \xb8, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xb8, char: \xb9, offset: 0x2e00 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2e40 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x2e80 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2ec0 */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0xbc, char: \xbd, offset: 0x2f00 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xbd, char: \xbe, offset: 0x2f40 */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + + /* Index: 0xbe, char: \xbf, offset: 0x2f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x06, /* .##.##.......##. */ + 0x6c, 0x36, /* .##.##....##.##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x2fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x61, 0xf8, /* .##....######... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x3000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x3040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x38, 0x00, /* ..###........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x3080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfe, /* ...############. */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x30c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x3140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x3180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x31c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x3200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x3240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x3280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x1c, /* ...##......###.. */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x1b, 0x80, /* ...##.###....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x1b, 0x80, /* ...##.###....... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x1c, /* ...##......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x3300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x7c, 0x7c, /* .#####...#####.. */ + 0x6e, 0xec, /* .##.###.###.##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x3340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x3380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x33c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x3400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0xec, /* ........###.##.. */ + 0x01, 0xcc, /* .......###..##.. */ + 0x03, 0x8c, /* ......###...##.. */ + 0x07, 0x0c, /* .....###....##.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x3440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x34c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x3500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x3540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1d, 0xb8, /* ...###.##.###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1d, 0xb8, /* ...###.##.###... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x3580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x35c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0xe0, /* ...########..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x38, /* ...##.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x3600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x61, 0xcc, /* .##....###..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x61, 0xcc, /* .##....###..##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x3680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x8c, /* ..###..##...##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x36c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x8c, /* ..###..##...##.. */ + 0x1f, 0xfe, /* ...############. */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf8, /* ....#########... */ + 0x0c, 0x1c, /* ....##.....###.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x1c, /* ....##.....###.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x37c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0x9c, /* .##...###..###.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x0c, /* .##...##....##.. */ + 0x63, 0x9c, /* .##...###..###.. */ + 0x61, 0xf8, /* .##....######... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0e, /* ..###.......###. */ + 0x1f, 0xff, /* ...############# */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x38c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf8, /* .....########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x1c, 0x18, /* ...###.....##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x3f, 0xfc, /* ..############.. */ + 0x7f, 0xfe, /* .##############. */ + 0x60, 0x06, /* .##..........##. */ + 0x60, 0x06, /* .##..........##. */ + 0x60, 0x06, /* .##..........##. */ + 0x60, 0x06, /* .##..........##. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x3900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x39c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x18, /* ...##......##... */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x3a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x3a40 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x30, /* ....##....##.... */ + 0x0c, 0x30, /* ....##....##.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x3c, /* ..##......####.. */ + 0x30, 0x7c, /* ..##.....#####.. */ + 0x30, 0xec, /* ..##....###.##.. */ + 0x31, 0xcc, /* ..##...###..##.. */ + 0x33, 0x8c, /* ..##..###...##.. */ + 0x37, 0x0c, /* ..##.###....##.. */ + 0x3e, 0x0c, /* ..#####.....##.. */ + 0x3c, 0x0c, /* ..####......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x0c, 0x0c, /* ....##......##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x3b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x6c, 0x6c, /* .##.##...##.##.. */ + 0x67, 0xcc, /* .##..#####..##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x63, 0x8c, /* .##...###...##.. */ + 0x61, 0x0c, /* .##....#....##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x3b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0xec, /* ........###.##.. */ + 0x01, 0xcc, /* .......###..##.. */ + 0x03, 0x8c, /* ......###...##.. */ + 0x07, 0x0c, /* .....###....##.. */ + 0x0e, 0x0c, /* ....###.....##.. */ + 0x1c, 0x0c, /* ...###......##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x3c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x3c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x1d, 0xb8, /* ...###.##.###... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1d, 0xb8, /* ...###.##.###... */ + 0x39, 0x9c, /* ..###..##..###.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x3d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x18, /* ..##.......##... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x1c, /* ..##.......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x60, 0x0c, /* .##.........##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x61, 0xcc, /* .##....###..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x60, 0xcc, /* .##.....##..##.. */ + 0x61, 0xcc, /* .##....###..##.. */ + 0x7f, 0x8c, /* .########...##.. */ + 0x7f, 0x0c, /* .#######....##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x3e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x8c, /* ..###..##...##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x3ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x31, 0x8c, /* ..##...##...##.. */ + 0x39, 0x8c, /* ..###..##...##.. */ + 0x1f, 0xfe, /* ...############. */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x03, /* ..............## */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x30, 0x0c, /* ..##........##.. */ + 0x38, 0x0c, /* ..###.......##.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_16x32_koi8_r_descriptors[] = { + { 0x10, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x10, 0x0040 }, /* Index: 0x01, char: \x02 */ + { 0x10, 0x0080 }, /* Index: 0x02, char: \x03 */ + { 0x10, 0x00c0 }, /* Index: 0x03, char: \x04 */ + { 0x10, 0x0100 }, /* Index: 0x04, char: \x05 */ + { 0x10, 0x0140 }, /* Index: 0x05, char: \x06 */ + { 0x10, 0x0180 }, /* Index: 0x06, char: \x07 */ + { 0x10, 0x01c0 }, /* Index: 0x07, char: \x08 */ + { 0x10, 0x0200 }, /* Index: 0x08, char: \x09 */ + { 0x10, 0x0240 }, /* Index: 0x09, char: \x0a */ + { 0x10, 0x0280 }, /* Index: 0x0a, char: \x0b */ + { 0x10, 0x02c0 }, /* Index: 0x0b, char: \x0c */ + { 0x10, 0x0300 }, /* Index: 0x0c, char: \x0d */ + { 0x10, 0x0340 }, /* Index: 0x0d, char: \x0e */ + { 0x10, 0x0380 }, /* Index: 0x0e, char: \x0f */ + { 0x10, 0x03c0 }, /* Index: 0x0f, char: \x10 */ + { 0x10, 0x0400 }, /* Index: 0x10, char: \x11 */ + { 0x10, 0x0440 }, /* Index: 0x11, char: \x12 */ + { 0x10, 0x0480 }, /* Index: 0x12, char: \x13 */ + { 0x10, 0x04c0 }, /* Index: 0x13, char: \x14 */ + { 0x10, 0x0500 }, /* Index: 0x14, char: \x15 */ + { 0x10, 0x0540 }, /* Index: 0x15, char: \x16 */ + { 0x10, 0x0580 }, /* Index: 0x16, char: \x17 */ + { 0x10, 0x05c0 }, /* Index: 0x17, char: \x18 */ + { 0x10, 0x0600 }, /* Index: 0x18, char: \x19 */ + { 0x10, 0x0640 }, /* Index: 0x19, char: \x1a */ + { 0x10, 0x0680 }, /* Index: 0x1a, char: \x1b */ + { 0x10, 0x06c0 }, /* Index: 0x1b, char: \x1c */ + { 0x10, 0x0700 }, /* Index: 0x1c, char: \x1d */ + { 0x10, 0x0740 }, /* Index: 0x1d, char: \x1e */ + { 0x10, 0x0780 }, /* Index: 0x1e, char: \x1f */ + { 0x10, 0x07c0 }, /* Index: 0x1f, char: \x20 */ + { 0x10, 0x0800 }, /* Index: 0x20, char: \x21 */ + { 0x10, 0x0840 }, /* Index: 0x21, char: \x22 */ + { 0x10, 0x0880 }, /* Index: 0x22, char: \x23 */ + { 0x10, 0x08c0 }, /* Index: 0x23, char: \x24 */ + { 0x10, 0x0900 }, /* Index: 0x24, char: \x25 */ + { 0x10, 0x0940 }, /* Index: 0x25, char: \x26 */ + { 0x10, 0x0980 }, /* Index: 0x26, char: \x27 */ + { 0x10, 0x09c0 }, /* Index: 0x27, char: \x28 */ + { 0x10, 0x0a00 }, /* Index: 0x28, char: \x29 */ + { 0x10, 0x0a40 }, /* Index: 0x29, char: \x2a */ + { 0x10, 0x0a80 }, /* Index: 0x2a, char: \x2b */ + { 0x10, 0x0ac0 }, /* Index: 0x2b, char: \x2c */ + { 0x10, 0x0b00 }, /* Index: 0x2c, char: \x2d */ + { 0x10, 0x0b40 }, /* Index: 0x2d, char: \x2e */ + { 0x10, 0x0b80 }, /* Index: 0x2e, char: \x2f */ + { 0x10, 0x0bc0 }, /* Index: 0x2f, char: \x30 */ + { 0x10, 0x0c00 }, /* Index: 0x30, char: \x31 */ + { 0x10, 0x0c40 }, /* Index: 0x31, char: \x32 */ + { 0x10, 0x0c80 }, /* Index: 0x32, char: \x33 */ + { 0x10, 0x0cc0 }, /* Index: 0x33, char: \x34 */ + { 0x10, 0x0d00 }, /* Index: 0x34, char: \x35 */ + { 0x10, 0x0d40 }, /* Index: 0x35, char: \x36 */ + { 0x10, 0x0d80 }, /* Index: 0x36, char: \x37 */ + { 0x10, 0x0dc0 }, /* Index: 0x37, char: \x38 */ + { 0x10, 0x0e00 }, /* Index: 0x38, char: \x39 */ + { 0x10, 0x0e40 }, /* Index: 0x39, char: \x3a */ + { 0x10, 0x0e80 }, /* Index: 0x3a, char: \x3b */ + { 0x10, 0x0ec0 }, /* Index: 0x3b, char: \x3c */ + { 0x10, 0x0f00 }, /* Index: 0x3c, char: \x3d */ + { 0x10, 0x0f40 }, /* Index: 0x3d, char: \x3e */ + { 0x10, 0x0f80 }, /* Index: 0x3e, char: \x3f */ + { 0x10, 0x0fc0 }, /* Index: 0x3f, char: \x40 */ + { 0x10, 0x1000 }, /* Index: 0x40, char: \x41 */ + { 0x10, 0x1040 }, /* Index: 0x41, char: \x42 */ + { 0x10, 0x1080 }, /* Index: 0x42, char: \x43 */ + { 0x10, 0x10c0 }, /* Index: 0x43, char: \x44 */ + { 0x10, 0x1100 }, /* Index: 0x44, char: \x45 */ + { 0x10, 0x1140 }, /* Index: 0x45, char: \x46 */ + { 0x10, 0x1180 }, /* Index: 0x46, char: \x47 */ + { 0x10, 0x11c0 }, /* Index: 0x47, char: \x48 */ + { 0x10, 0x1200 }, /* Index: 0x48, char: \x49 */ + { 0x10, 0x1240 }, /* Index: 0x49, char: \x4a */ + { 0x10, 0x1280 }, /* Index: 0x4a, char: \x4b */ + { 0x10, 0x12c0 }, /* Index: 0x4b, char: \x4c */ + { 0x10, 0x1300 }, /* Index: 0x4c, char: \x4d */ + { 0x10, 0x1340 }, /* Index: 0x4d, char: \x4e */ + { 0x10, 0x1380 }, /* Index: 0x4e, char: \x4f */ + { 0x10, 0x13c0 }, /* Index: 0x4f, char: \x50 */ + { 0x10, 0x1400 }, /* Index: 0x50, char: \x51 */ + { 0x10, 0x1440 }, /* Index: 0x51, char: \x52 */ + { 0x10, 0x1480 }, /* Index: 0x52, char: \x53 */ + { 0x10, 0x14c0 }, /* Index: 0x53, char: \x54 */ + { 0x10, 0x1500 }, /* Index: 0x54, char: \x55 */ + { 0x10, 0x1540 }, /* Index: 0x55, char: \x56 */ + { 0x10, 0x1580 }, /* Index: 0x56, char: \x57 */ + { 0x10, 0x15c0 }, /* Index: 0x57, char: \x58 */ + { 0x10, 0x1600 }, /* Index: 0x58, char: \x59 */ + { 0x10, 0x1640 }, /* Index: 0x59, char: \x5a */ + { 0x10, 0x1680 }, /* Index: 0x5a, char: \x5b */ + { 0x10, 0x16c0 }, /* Index: 0x5b, char: \x5c */ + { 0x10, 0x1700 }, /* Index: 0x5c, char: \x5d */ + { 0x10, 0x1740 }, /* Index: 0x5d, char: \x5e */ + { 0x10, 0x1780 }, /* Index: 0x5e, char: \x5f */ + { 0x10, 0x17c0 }, /* Index: 0x5f, char: \x60 */ + { 0x10, 0x1800 }, /* Index: 0x60, char: \x61 */ + { 0x10, 0x1840 }, /* Index: 0x61, char: \x62 */ + { 0x10, 0x1880 }, /* Index: 0x62, char: \x63 */ + { 0x10, 0x18c0 }, /* Index: 0x63, char: \x64 */ + { 0x10, 0x1900 }, /* Index: 0x64, char: \x65 */ + { 0x10, 0x1940 }, /* Index: 0x65, char: \x66 */ + { 0x10, 0x1980 }, /* Index: 0x66, char: \x67 */ + { 0x10, 0x19c0 }, /* Index: 0x67, char: \x68 */ + { 0x10, 0x1a00 }, /* Index: 0x68, char: \x69 */ + { 0x10, 0x1a40 }, /* Index: 0x69, char: \x6a */ + { 0x10, 0x1a80 }, /* Index: 0x6a, char: \x6b */ + { 0x10, 0x1ac0 }, /* Index: 0x6b, char: \x6c */ + { 0x10, 0x1b00 }, /* Index: 0x6c, char: \x6d */ + { 0x10, 0x1b40 }, /* Index: 0x6d, char: \x6e */ + { 0x10, 0x1b80 }, /* Index: 0x6e, char: \x6f */ + { 0x10, 0x1bc0 }, /* Index: 0x6f, char: \x70 */ + { 0x10, 0x1c00 }, /* Index: 0x70, char: \x71 */ + { 0x10, 0x1c40 }, /* Index: 0x71, char: \x72 */ + { 0x10, 0x1c80 }, /* Index: 0x72, char: \x73 */ + { 0x10, 0x1cc0 }, /* Index: 0x73, char: \x74 */ + { 0x10, 0x1d00 }, /* Index: 0x74, char: \x75 */ + { 0x10, 0x1d40 }, /* Index: 0x75, char: \x76 */ + { 0x10, 0x1d80 }, /* Index: 0x76, char: \x77 */ + { 0x10, 0x1dc0 }, /* Index: 0x77, char: \x78 */ + { 0x10, 0x1e00 }, /* Index: 0x78, char: \x79 */ + { 0x10, 0x1e40 }, /* Index: 0x79, char: \x7a */ + { 0x10, 0x1e80 }, /* Index: 0x7a, char: \x7b */ + { 0x10, 0x1ec0 }, /* Index: 0x7b, char: \x7c */ + { 0x10, 0x1f00 }, /* Index: 0x7c, char: \x7d */ + { 0x10, 0x1f40 }, /* Index: 0x7d, char: \x7e */ + { 0x10, 0x1f80 }, /* Index: 0x7e, char: \x7f */ + { 0x10, 0x1fc0 }, /* Index: 0x7f, char: \x80 */ + { 0x10, 0x2000 }, /* Index: 0x80, char: \x81 */ + { 0x10, 0x2040 }, /* Index: 0x81, char: \x82 */ + { 0x10, 0x2080 }, /* Index: 0x82, char: \x83 */ + { 0x10, 0x20c0 }, /* Index: 0x83, char: \x84 */ + { 0x10, 0x2100 }, /* Index: 0x84, char: \x85 */ + { 0x10, 0x2140 }, /* Index: 0x85, char: \x86 */ + { 0x10, 0x2180 }, /* Index: 0x86, char: \x87 */ + { 0x10, 0x21c0 }, /* Index: 0x87, char: \x88 */ + { 0x10, 0x2200 }, /* Index: 0x88, char: \x89 */ + { 0x10, 0x2240 }, /* Index: 0x89, char: \x8a */ + { 0x10, 0x2280 }, /* Index: 0x8a, char: \x8b */ + { 0x10, 0x22c0 }, /* Index: 0x8b, char: \x8c */ + { 0x10, 0x2300 }, /* Index: 0x8c, char: \x8d */ + { 0x10, 0x2340 }, /* Index: 0x8d, char: \x8e */ + { 0x10, 0x2380 }, /* Index: 0x8e, char: \x8f */ + { 0x10, 0x23c0 }, /* Index: 0x8f, char: \x90 */ + { 0x10, 0x2400 }, /* Index: 0x90, char: \x91 */ + { 0x10, 0x2440 }, /* Index: 0x91, char: \x92 */ + { 0x10, 0x2480 }, /* Index: 0x92, char: \x93 */ + { 0x10, 0x24c0 }, /* Index: 0x93, char: \x94 */ + { 0x10, 0x2500 }, /* Index: 0x94, char: \x95 */ + { 0x10, 0x2540 }, /* Index: 0x95, char: \x96 */ + { 0x10, 0x2580 }, /* Index: 0x96, char: \x97 */ + { 0x10, 0x25c0 }, /* Index: 0x97, char: \x98 */ + { 0x10, 0x2600 }, /* Index: 0x98, char: \x99 */ + { 0x10, 0x2640 }, /* Index: 0x99, char: \x9a */ + { 0x10, 0x2680 }, /* Index: 0x9a, char: \x9b */ + { 0x10, 0x26c0 }, /* Index: 0x9b, char: \x9c */ + { 0x10, 0x2700 }, /* Index: 0x9c, char: \x9d */ + { 0x10, 0x2740 }, /* Index: 0x9d, char: \x9e */ + { 0x10, 0x2780 }, /* Index: 0x9e, char: \x9f */ + { 0x10, 0x27c0 }, /* Index: 0x9f, char: \xa0 */ + { 0x10, 0x2800 }, /* Index: 0xa0, char: \xa1 */ + { 0x10, 0x2840 }, /* Index: 0xa1, char: \xa2 */ + { 0x10, 0x2880 }, /* Index: 0xa2, char: \xa3 */ + { 0x10, 0x28c0 }, /* Index: 0xa3, char: \xa4 */ + { 0x10, 0x2900 }, /* Index: 0xa4, char: \xa5 */ + { 0x10, 0x2940 }, /* Index: 0xa5, char: \xa6 */ + { 0x10, 0x2980 }, /* Index: 0xa6, char: \xa7 */ + { 0x10, 0x29c0 }, /* Index: 0xa7, char: \xa8 */ + { 0x10, 0x2a00 }, /* Index: 0xa8, char: \xa9 */ + { 0x10, 0x2a40 }, /* Index: 0xa9, char: \xaa */ + { 0x10, 0x2a80 }, /* Index: 0xaa, char: \xab */ + { 0x10, 0x2ac0 }, /* Index: 0xab, char: \xac */ + { 0x10, 0x2b00 }, /* Index: 0xac, char: \xad */ + { 0x10, 0x2b40 }, /* Index: 0xad, char: \xae */ + { 0x10, 0x2b80 }, /* Index: 0xae, char: \xaf */ + { 0x10, 0x2bc0 }, /* Index: 0xaf, char: \xb0 */ + { 0x10, 0x2c00 }, /* Index: 0xb0, char: \xb1 */ + { 0x10, 0x2c40 }, /* Index: 0xb1, char: \xb2 */ + { 0x10, 0x2c80 }, /* Index: 0xb2, char: \xb3 */ + { 0x10, 0x2cc0 }, /* Index: 0xb3, char: \xb4 */ + { 0x10, 0x2d00 }, /* Index: 0xb4, char: \xb5 */ + { 0x10, 0x2d40 }, /* Index: 0xb5, char: \xb6 */ + { 0x10, 0x2d80 }, /* Index: 0xb6, char: \xb7 */ + { 0x10, 0x2dc0 }, /* Index: 0xb7, char: \xb8 */ + { 0x10, 0x2e00 }, /* Index: 0xb8, char: \xb9 */ + { 0x10, 0x2e40 }, /* Index: 0xb9, char: \xba */ + { 0x10, 0x2e80 }, /* Index: 0xba, char: \xbb */ + { 0x10, 0x2ec0 }, /* Index: 0xbb, char: \xbc */ + { 0x10, 0x2f00 }, /* Index: 0xbc, char: \xbd */ + { 0x10, 0x2f40 }, /* Index: 0xbd, char: \xbe */ + { 0x10, 0x2f80 }, /* Index: 0xbe, char: \xbf */ + { 0x10, 0x2fc0 }, /* Index: 0xbf, char: \xc0 */ + { 0x10, 0x3000 }, /* Index: 0xc0, char: \xc1 */ + { 0x10, 0x3040 }, /* Index: 0xc1, char: \xc2 */ + { 0x10, 0x3080 }, /* Index: 0xc2, char: \xc3 */ + { 0x10, 0x30c0 }, /* Index: 0xc3, char: \xc4 */ + { 0x10, 0x3100 }, /* Index: 0xc4, char: \xc5 */ + { 0x10, 0x3140 }, /* Index: 0xc5, char: \xc6 */ + { 0x10, 0x3180 }, /* Index: 0xc6, char: \xc7 */ + { 0x10, 0x31c0 }, /* Index: 0xc7, char: \xc8 */ + { 0x10, 0x3200 }, /* Index: 0xc8, char: \xc9 */ + { 0x10, 0x3240 }, /* Index: 0xc9, char: \xca */ + { 0x10, 0x3280 }, /* Index: 0xca, char: \xcb */ + { 0x10, 0x32c0 }, /* Index: 0xcb, char: \xcc */ + { 0x10, 0x3300 }, /* Index: 0xcc, char: \xcd */ + { 0x10, 0x3340 }, /* Index: 0xcd, char: \xce */ + { 0x10, 0x3380 }, /* Index: 0xce, char: \xcf */ + { 0x10, 0x33c0 }, /* Index: 0xcf, char: \xd0 */ + { 0x10, 0x3400 }, /* Index: 0xd0, char: \xd1 */ + { 0x10, 0x3440 }, /* Index: 0xd1, char: \xd2 */ + { 0x10, 0x3480 }, /* Index: 0xd2, char: \xd3 */ + { 0x10, 0x34c0 }, /* Index: 0xd3, char: \xd4 */ + { 0x10, 0x3500 }, /* Index: 0xd4, char: \xd5 */ + { 0x10, 0x3540 }, /* Index: 0xd5, char: \xd6 */ + { 0x10, 0x3580 }, /* Index: 0xd6, char: \xd7 */ + { 0x10, 0x35c0 }, /* Index: 0xd7, char: \xd8 */ + { 0x10, 0x3600 }, /* Index: 0xd8, char: \xd9 */ + { 0x10, 0x3640 }, /* Index: 0xd9, char: \xda */ + { 0x10, 0x3680 }, /* Index: 0xda, char: \xdb */ + { 0x10, 0x36c0 }, /* Index: 0xdb, char: \xdc */ + { 0x10, 0x3700 }, /* Index: 0xdc, char: \xdd */ + { 0x10, 0x3740 }, /* Index: 0xdd, char: \xde */ + { 0x10, 0x3780 }, /* Index: 0xde, char: \xdf */ + { 0x10, 0x37c0 }, /* Index: 0xdf, char: \xe0 */ + { 0x10, 0x3800 }, /* Index: 0xe0, char: \xe1 */ + { 0x10, 0x3840 }, /* Index: 0xe1, char: \xe2 */ + { 0x10, 0x3880 }, /* Index: 0xe2, char: \xe3 */ + { 0x10, 0x38c0 }, /* Index: 0xe3, char: \xe4 */ + { 0x10, 0x3900 }, /* Index: 0xe4, char: \xe5 */ + { 0x10, 0x3940 }, /* Index: 0xe5, char: \xe6 */ + { 0x10, 0x3980 }, /* Index: 0xe6, char: \xe7 */ + { 0x10, 0x39c0 }, /* Index: 0xe7, char: \xe8 */ + { 0x10, 0x3a00 }, /* Index: 0xe8, char: \xe9 */ + { 0x10, 0x3a40 }, /* Index: 0xe9, char: \xea */ + { 0x10, 0x3a80 }, /* Index: 0xea, char: \xeb */ + { 0x10, 0x3ac0 }, /* Index: 0xeb, char: \xec */ + { 0x10, 0x3b00 }, /* Index: 0xec, char: \xed */ + { 0x10, 0x3b40 }, /* Index: 0xed, char: \xee */ + { 0x10, 0x3b80 }, /* Index: 0xee, char: \xef */ + { 0x10, 0x3bc0 }, /* Index: 0xef, char: \xf0 */ + { 0x10, 0x3c00 }, /* Index: 0xf0, char: \xf1 */ + { 0x10, 0x3c40 }, /* Index: 0xf1, char: \xf2 */ + { 0x10, 0x3c80 }, /* Index: 0xf2, char: \xf3 */ + { 0x10, 0x3cc0 }, /* Index: 0xf3, char: \xf4 */ + { 0x10, 0x3d00 }, /* Index: 0xf4, char: \xf5 */ + { 0x10, 0x3d40 }, /* Index: 0xf5, char: \xf6 */ + { 0x10, 0x3d80 }, /* Index: 0xf6, char: \xf7 */ + { 0x10, 0x3dc0 }, /* Index: 0xf7, char: \xf8 */ + { 0x10, 0x3e00 }, /* Index: 0xf8, char: \xf9 */ + { 0x10, 0x3e40 }, /* Index: 0xf9, char: \xfa */ + { 0x10, 0x3e80 }, /* Index: 0xfa, char: \xfb */ + { 0x10, 0x3ec0 }, /* Index: 0xfb, char: \xfc */ + { 0x10, 0x3f00 }, /* Index: 0xfc, char: \xfd */ + { 0x10, 0x3f40 }, /* Index: 0xfd, char: \xfe */ + { 0x10, 0x3f80 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_16x32_koi8_r_info = +{ + .height = 32, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_16x32_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_16x32_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_16X32_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_6x12_iso8859_1.h b/extras/fonts/data/font_terminus_6x12_iso8859_1.h new file mode 100644 index 0000000..9cc0316 --- /dev/null +++ b/extras/fonts/data/font_terminus_6x12_iso8859_1.h @@ -0,0 +1,3859 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 6x12 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:44:01 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_6X12_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_6X12_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_6x12_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xf8, /* #####... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000c */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0018 */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x0024 */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0030 */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x80, /* #....... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x24, /* ..#..#.. */ + 0x38, /* ..###... */ + 0x28, /* ..#.#... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x003c */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0048 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0054 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0060 */ + 0x90, /* #..#.... */ + 0xd0, /* ##.#.... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x006c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0078 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0084 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0090 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0d, char: \x0e, offset: 0x009c */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00a8 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0f, char: \x10, offset: 0x00b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x00e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x00f0 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x15, char: \x16, offset: 0x00fc */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x16, char: \x17, offset: 0x0108 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0114 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x18, char: \x19, offset: 0x0120 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x19, char: \x1a, offset: 0x012c */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0138 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x0144 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0150 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x015c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0168 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x0174 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x0180 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x018c */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x0198 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa0, /* #.#..... */ + 0x70, /* .###.... */ + 0x28, /* ..#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x24, char: \x25, offset: 0x01b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0xa8, /* #.#.#... */ + 0x50, /* .#.#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x28, /* ..#.#... */ + 0x54, /* .#.#.#.. */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x01bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x68, /* .##.#... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x68, /* .##.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x01c8 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x01d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x01e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x01ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0204 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0210 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x021c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0228 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0234 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x0240 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x0258 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x0264 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x28, /* ..#.#... */ + 0x48, /* .#..#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x0270 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x027c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x0288 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0294 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x02ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x02b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x02c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x02d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x02dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x02e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0300 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x030c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x0318 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x0324 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x0330 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x033c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xb8, /* #.###... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x0354 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x0360 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x036c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0378 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0384 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0390 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x03a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x03b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x03c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x03cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x03d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x03e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x03fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x0408 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xd8, /* ##.##... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x0414 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x0420 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x042c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0438 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0450 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x045c */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0468 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0474 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0480 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x048c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x04a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x04b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x04bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x04c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0x67, char: \x68, offset: 0x04d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x04e0 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x04ec */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + + /* Index: 0x6a, char: \x6b, offset: 0x04f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x0504 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x0510 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x051c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0528 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0534 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x70, char: \x71, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + + /* Index: 0x71, char: \x72, offset: 0x054c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xb8, /* #.###... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x0558 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x0564 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0570 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x057c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0588 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x05a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0x79, char: \x7a, offset: 0x05ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x05b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x05c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x05d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x05dc */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0xa8, /* #.#.#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x05f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0600 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x81, char: \x82, offset: 0x060c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x82, char: \x83, offset: 0x0618 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x83, char: \x84, offset: 0x0624 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0630 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x063c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x86, char: \x87, offset: 0x0648 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x87, char: \x88, offset: 0x0654 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x88, char: \x89, offset: 0x0660 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x066c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8a, char: \x8b, offset: 0x0678 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x0684 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8c, char: \x8d, offset: 0x0690 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8d, char: \x8e, offset: 0x069c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8e, char: \x8f, offset: 0x06a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8f, char: \x90, offset: 0x06b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x90, char: \x91, offset: 0x06c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x91, char: \x92, offset: 0x06cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x92, char: \x93, offset: 0x06d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x93, char: \x94, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x06f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x06fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0708 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0714 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0720 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x072c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x0738 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x0744 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0750 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x075c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x0768 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x0774 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x0780 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa1, char: \xa2, offset: 0x078c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0xa2, char: \xa3, offset: 0x0798 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x07a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa4, char: \xa5, offset: 0x07b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa5, char: \xa6, offset: 0x07bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa6, char: \xa7, offset: 0x07c8 */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa7, char: \xa8, offset: 0x07d4 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa8, char: \xa9, offset: 0x07e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x84, /* #....#.. */ + 0xb4, /* #.##.#.. */ + 0xa4, /* #.#..#.. */ + 0xa4, /* #.#..#.. */ + 0xb4, /* #.##.#.. */ + 0x84, /* #....#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x07ec */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x48, /* .#..#... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x07f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x14, /* ...#.#.. */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x50, /* .#.#.... */ + 0x28, /* ..#.#... */ + 0x14, /* ...#.#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x0804 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0810 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x081c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x84, /* #....#.. */ + 0xb4, /* #.##.#.. */ + 0xac, /* #.#.##.. */ + 0xb4, /* #.##.#.. */ + 0xac, /* #.#.##.. */ + 0x84, /* #....#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0828 */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaf, char: \xb0, offset: 0x0834 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb0, char: \xb1, offset: 0x0840 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb1, char: \xb2, offset: 0x084c */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb2, char: \xb3, offset: 0x0858 */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x0864 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb4, char: \xb5, offset: 0x0870 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xe8, /* ###.#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0xb5, char: \xb6, offset: 0x087c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x68, /* .##.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb6, char: \xb7, offset: 0x0888 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb7, char: \xb8, offset: 0x0894 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + + /* Index: 0xb8, char: \xb9, offset: 0x08a0 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x08ac */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x08b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0x50, /* .#.#.... */ + 0x28, /* ..#.#... */ + 0x14, /* ...#.#.. */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0xa0, /* #.#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x08c4 */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x48, /* .#..#... */ + 0x98, /* #..##... */ + 0x28, /* ..#.#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + + /* Index: 0xbc, char: \xbd, offset: 0x08d0 */ + 0x40, /* .#...... */ + 0xc0, /* ##...... */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x98, /* #..##... */ + 0x24, /* ..#..#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x3c, /* ..####.. */ + + /* Index: 0xbd, char: \xbe, offset: 0x08dc */ + 0xe0, /* ###..... */ + 0x10, /* ...#.... */ + 0x60, /* .##..... */ + 0x14, /* ...#.#.. */ + 0xe8, /* ###.#... */ + 0x10, /* ...#.... */ + 0x24, /* ..#..#.. */ + 0x4c, /* .#..##.. */ + 0x94, /* #..#.#.. */ + 0x3c, /* ..####.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + + /* Index: 0xbe, char: \xbf, offset: 0x08e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x08f4 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0900 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x090c */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0918 */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc3, char: \xc4, offset: 0x0924 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc4, char: \xc5, offset: 0x0930 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x093c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xfc, /* ######.. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x9c, /* #..###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0948 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + + /* Index: 0xc7, char: \xc8, offset: 0x0954 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0960 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x096c */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0978 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0984 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0990 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x099c */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x09a8 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x09b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0xe8, /* ###.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x09c0 */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x09cc */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd2, char: \xd3, offset: 0x09d8 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x09e4 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x09f0 */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd5, char: \xd6, offset: 0x09fc */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0a08 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0a14 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x74, /* .###.#.. */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0a20 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0a2c */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0a38 */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0a44 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0a50 */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdd, char: \xde, offset: 0x0a5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0a68 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xb0, /* #.##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0a74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0a80 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0a8c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0a98 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe3, char: \xe4, offset: 0x0aa4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0ab0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0abc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x28, /* ..#.#... */ + 0x68, /* .##.#... */ + 0xb0, /* #.##.... */ + 0xa0, /* #.#..... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0ac8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0ae0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0aec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0af8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0b04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0b10 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0b1c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0b28 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0b34 */ + 0x00, /* ........ */ + 0xa0, /* #.#..... */ + 0x40, /* .#...... */ + 0xa0, /* #.#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0b40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0b4c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0b58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0b64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0b70 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0b7c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0b88 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0b94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x34, /* ..##.#.. */ + 0x48, /* .#..#... */ + 0x58, /* .#.##... */ + 0x68, /* .##.#... */ + 0x48, /* .#..#... */ + 0xb0, /* #.##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0ba0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0bac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0bb8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0bc4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0bd0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0xfd, char: \xfe, offset: 0x0bdc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0xfe, char: \xff, offset: 0x0be8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ +}; + +const font_char_desc_t _fonts_terminus_6x12_iso8859_1_descriptors[] = { + { 0x06, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x06, 0x000c }, /* Index: 0x01, char: \x02 */ + { 0x06, 0x0018 }, /* Index: 0x02, char: \x03 */ + { 0x06, 0x0024 }, /* Index: 0x03, char: \x04 */ + { 0x06, 0x0030 }, /* Index: 0x04, char: \x05 */ + { 0x06, 0x003c }, /* Index: 0x05, char: \x06 */ + { 0x06, 0x0048 }, /* Index: 0x06, char: \x07 */ + { 0x06, 0x0054 }, /* Index: 0x07, char: \x08 */ + { 0x06, 0x0060 }, /* Index: 0x08, char: \x09 */ + { 0x06, 0x006c }, /* Index: 0x09, char: \x0a */ + { 0x06, 0x0078 }, /* Index: 0x0a, char: \x0b */ + { 0x06, 0x0084 }, /* Index: 0x0b, char: \x0c */ + { 0x06, 0x0090 }, /* Index: 0x0c, char: \x0d */ + { 0x06, 0x009c }, /* Index: 0x0d, char: \x0e */ + { 0x06, 0x00a8 }, /* Index: 0x0e, char: \x0f */ + { 0x06, 0x00b4 }, /* Index: 0x0f, char: \x10 */ + { 0x06, 0x00c0 }, /* Index: 0x10, char: \x11 */ + { 0x06, 0x00cc }, /* Index: 0x11, char: \x12 */ + { 0x06, 0x00d8 }, /* Index: 0x12, char: \x13 */ + { 0x06, 0x00e4 }, /* Index: 0x13, char: \x14 */ + { 0x06, 0x00f0 }, /* Index: 0x14, char: \x15 */ + { 0x06, 0x00fc }, /* Index: 0x15, char: \x16 */ + { 0x06, 0x0108 }, /* Index: 0x16, char: \x17 */ + { 0x06, 0x0114 }, /* Index: 0x17, char: \x18 */ + { 0x06, 0x0120 }, /* Index: 0x18, char: \x19 */ + { 0x06, 0x012c }, /* Index: 0x19, char: \x1a */ + { 0x06, 0x0138 }, /* Index: 0x1a, char: \x1b */ + { 0x06, 0x0144 }, /* Index: 0x1b, char: \x1c */ + { 0x06, 0x0150 }, /* Index: 0x1c, char: \x1d */ + { 0x06, 0x015c }, /* Index: 0x1d, char: \x1e */ + { 0x06, 0x0168 }, /* Index: 0x1e, char: \x1f */ + { 0x06, 0x0174 }, /* Index: 0x1f, char: \x20 */ + { 0x06, 0x0180 }, /* Index: 0x20, char: \x21 */ + { 0x06, 0x018c }, /* Index: 0x21, char: \x22 */ + { 0x06, 0x0198 }, /* Index: 0x22, char: \x23 */ + { 0x06, 0x01a4 }, /* Index: 0x23, char: \x24 */ + { 0x06, 0x01b0 }, /* Index: 0x24, char: \x25 */ + { 0x06, 0x01bc }, /* Index: 0x25, char: \x26 */ + { 0x06, 0x01c8 }, /* Index: 0x26, char: \x27 */ + { 0x06, 0x01d4 }, /* Index: 0x27, char: \x28 */ + { 0x06, 0x01e0 }, /* Index: 0x28, char: \x29 */ + { 0x06, 0x01ec }, /* Index: 0x29, char: \x2a */ + { 0x06, 0x01f8 }, /* Index: 0x2a, char: \x2b */ + { 0x06, 0x0204 }, /* Index: 0x2b, char: \x2c */ + { 0x06, 0x0210 }, /* Index: 0x2c, char: \x2d */ + { 0x06, 0x021c }, /* Index: 0x2d, char: \x2e */ + { 0x06, 0x0228 }, /* Index: 0x2e, char: \x2f */ + { 0x06, 0x0234 }, /* Index: 0x2f, char: \x30 */ + { 0x06, 0x0240 }, /* Index: 0x30, char: \x31 */ + { 0x06, 0x024c }, /* Index: 0x31, char: \x32 */ + { 0x06, 0x0258 }, /* Index: 0x32, char: \x33 */ + { 0x06, 0x0264 }, /* Index: 0x33, char: \x34 */ + { 0x06, 0x0270 }, /* Index: 0x34, char: \x35 */ + { 0x06, 0x027c }, /* Index: 0x35, char: \x36 */ + { 0x06, 0x0288 }, /* Index: 0x36, char: \x37 */ + { 0x06, 0x0294 }, /* Index: 0x37, char: \x38 */ + { 0x06, 0x02a0 }, /* Index: 0x38, char: \x39 */ + { 0x06, 0x02ac }, /* Index: 0x39, char: \x3a */ + { 0x06, 0x02b8 }, /* Index: 0x3a, char: \x3b */ + { 0x06, 0x02c4 }, /* Index: 0x3b, char: \x3c */ + { 0x06, 0x02d0 }, /* Index: 0x3c, char: \x3d */ + { 0x06, 0x02dc }, /* Index: 0x3d, char: \x3e */ + { 0x06, 0x02e8 }, /* Index: 0x3e, char: \x3f */ + { 0x06, 0x02f4 }, /* Index: 0x3f, char: \x40 */ + { 0x06, 0x0300 }, /* Index: 0x40, char: \x41 */ + { 0x06, 0x030c }, /* Index: 0x41, char: \x42 */ + { 0x06, 0x0318 }, /* Index: 0x42, char: \x43 */ + { 0x06, 0x0324 }, /* Index: 0x43, char: \x44 */ + { 0x06, 0x0330 }, /* Index: 0x44, char: \x45 */ + { 0x06, 0x033c }, /* Index: 0x45, char: \x46 */ + { 0x06, 0x0348 }, /* Index: 0x46, char: \x47 */ + { 0x06, 0x0354 }, /* Index: 0x47, char: \x48 */ + { 0x06, 0x0360 }, /* Index: 0x48, char: \x49 */ + { 0x06, 0x036c }, /* Index: 0x49, char: \x4a */ + { 0x06, 0x0378 }, /* Index: 0x4a, char: \x4b */ + { 0x06, 0x0384 }, /* Index: 0x4b, char: \x4c */ + { 0x06, 0x0390 }, /* Index: 0x4c, char: \x4d */ + { 0x06, 0x039c }, /* Index: 0x4d, char: \x4e */ + { 0x06, 0x03a8 }, /* Index: 0x4e, char: \x4f */ + { 0x06, 0x03b4 }, /* Index: 0x4f, char: \x50 */ + { 0x06, 0x03c0 }, /* Index: 0x50, char: \x51 */ + { 0x06, 0x03cc }, /* Index: 0x51, char: \x52 */ + { 0x06, 0x03d8 }, /* Index: 0x52, char: \x53 */ + { 0x06, 0x03e4 }, /* Index: 0x53, char: \x54 */ + { 0x06, 0x03f0 }, /* Index: 0x54, char: \x55 */ + { 0x06, 0x03fc }, /* Index: 0x55, char: \x56 */ + { 0x06, 0x0408 }, /* Index: 0x56, char: \x57 */ + { 0x06, 0x0414 }, /* Index: 0x57, char: \x58 */ + { 0x06, 0x0420 }, /* Index: 0x58, char: \x59 */ + { 0x06, 0x042c }, /* Index: 0x59, char: \x5a */ + { 0x06, 0x0438 }, /* Index: 0x5a, char: \x5b */ + { 0x06, 0x0444 }, /* Index: 0x5b, char: \x5c */ + { 0x06, 0x0450 }, /* Index: 0x5c, char: \x5d */ + { 0x06, 0x045c }, /* Index: 0x5d, char: \x5e */ + { 0x06, 0x0468 }, /* Index: 0x5e, char: \x5f */ + { 0x06, 0x0474 }, /* Index: 0x5f, char: \x60 */ + { 0x06, 0x0480 }, /* Index: 0x60, char: \x61 */ + { 0x06, 0x048c }, /* Index: 0x61, char: \x62 */ + { 0x06, 0x0498 }, /* Index: 0x62, char: \x63 */ + { 0x06, 0x04a4 }, /* Index: 0x63, char: \x64 */ + { 0x06, 0x04b0 }, /* Index: 0x64, char: \x65 */ + { 0x06, 0x04bc }, /* Index: 0x65, char: \x66 */ + { 0x06, 0x04c8 }, /* Index: 0x66, char: \x67 */ + { 0x06, 0x04d4 }, /* Index: 0x67, char: \x68 */ + { 0x06, 0x04e0 }, /* Index: 0x68, char: \x69 */ + { 0x06, 0x04ec }, /* Index: 0x69, char: \x6a */ + { 0x06, 0x04f8 }, /* Index: 0x6a, char: \x6b */ + { 0x06, 0x0504 }, /* Index: 0x6b, char: \x6c */ + { 0x06, 0x0510 }, /* Index: 0x6c, char: \x6d */ + { 0x06, 0x051c }, /* Index: 0x6d, char: \x6e */ + { 0x06, 0x0528 }, /* Index: 0x6e, char: \x6f */ + { 0x06, 0x0534 }, /* Index: 0x6f, char: \x70 */ + { 0x06, 0x0540 }, /* Index: 0x70, char: \x71 */ + { 0x06, 0x054c }, /* Index: 0x71, char: \x72 */ + { 0x06, 0x0558 }, /* Index: 0x72, char: \x73 */ + { 0x06, 0x0564 }, /* Index: 0x73, char: \x74 */ + { 0x06, 0x0570 }, /* Index: 0x74, char: \x75 */ + { 0x06, 0x057c }, /* Index: 0x75, char: \x76 */ + { 0x06, 0x0588 }, /* Index: 0x76, char: \x77 */ + { 0x06, 0x0594 }, /* Index: 0x77, char: \x78 */ + { 0x06, 0x05a0 }, /* Index: 0x78, char: \x79 */ + { 0x06, 0x05ac }, /* Index: 0x79, char: \x7a */ + { 0x06, 0x05b8 }, /* Index: 0x7a, char: \x7b */ + { 0x06, 0x05c4 }, /* Index: 0x7b, char: \x7c */ + { 0x06, 0x05d0 }, /* Index: 0x7c, char: \x7d */ + { 0x06, 0x05dc }, /* Index: 0x7d, char: \x7e */ + { 0x06, 0x05e8 }, /* Index: 0x7e, char: \x7f */ + { 0x06, 0x05f4 }, /* Index: 0x7f, char: \x80 */ + { 0x06, 0x0600 }, /* Index: 0x80, char: \x81 */ + { 0x06, 0x060c }, /* Index: 0x81, char: \x82 */ + { 0x06, 0x0618 }, /* Index: 0x82, char: \x83 */ + { 0x06, 0x0624 }, /* Index: 0x83, char: \x84 */ + { 0x06, 0x0630 }, /* Index: 0x84, char: \x85 */ + { 0x06, 0x063c }, /* Index: 0x85, char: \x86 */ + { 0x06, 0x0648 }, /* Index: 0x86, char: \x87 */ + { 0x06, 0x0654 }, /* Index: 0x87, char: \x88 */ + { 0x06, 0x0660 }, /* Index: 0x88, char: \x89 */ + { 0x06, 0x066c }, /* Index: 0x89, char: \x8a */ + { 0x06, 0x0678 }, /* Index: 0x8a, char: \x8b */ + { 0x06, 0x0684 }, /* Index: 0x8b, char: \x8c */ + { 0x06, 0x0690 }, /* Index: 0x8c, char: \x8d */ + { 0x06, 0x069c }, /* Index: 0x8d, char: \x8e */ + { 0x06, 0x06a8 }, /* Index: 0x8e, char: \x8f */ + { 0x06, 0x06b4 }, /* Index: 0x8f, char: \x90 */ + { 0x06, 0x06c0 }, /* Index: 0x90, char: \x91 */ + { 0x06, 0x06cc }, /* Index: 0x91, char: \x92 */ + { 0x06, 0x06d8 }, /* Index: 0x92, char: \x93 */ + { 0x06, 0x06e4 }, /* Index: 0x93, char: \x94 */ + { 0x06, 0x06f0 }, /* Index: 0x94, char: \x95 */ + { 0x06, 0x06fc }, /* Index: 0x95, char: \x96 */ + { 0x06, 0x0708 }, /* Index: 0x96, char: \x97 */ + { 0x06, 0x0714 }, /* Index: 0x97, char: \x98 */ + { 0x06, 0x0720 }, /* Index: 0x98, char: \x99 */ + { 0x06, 0x072c }, /* Index: 0x99, char: \x9a */ + { 0x06, 0x0738 }, /* Index: 0x9a, char: \x9b */ + { 0x06, 0x0744 }, /* Index: 0x9b, char: \x9c */ + { 0x06, 0x0750 }, /* Index: 0x9c, char: \x9d */ + { 0x06, 0x075c }, /* Index: 0x9d, char: \x9e */ + { 0x06, 0x0768 }, /* Index: 0x9e, char: \x9f */ + { 0x06, 0x0774 }, /* Index: 0x9f, char: \xa0 */ + { 0x06, 0x0780 }, /* Index: 0xa0, char: \xa1 */ + { 0x06, 0x078c }, /* Index: 0xa1, char: \xa2 */ + { 0x06, 0x0798 }, /* Index: 0xa2, char: \xa3 */ + { 0x06, 0x07a4 }, /* Index: 0xa3, char: \xa4 */ + { 0x06, 0x07b0 }, /* Index: 0xa4, char: \xa5 */ + { 0x06, 0x07bc }, /* Index: 0xa5, char: \xa6 */ + { 0x06, 0x07c8 }, /* Index: 0xa6, char: \xa7 */ + { 0x06, 0x07d4 }, /* Index: 0xa7, char: \xa8 */ + { 0x06, 0x07e0 }, /* Index: 0xa8, char: \xa9 */ + { 0x06, 0x07ec }, /* Index: 0xa9, char: \xaa */ + { 0x06, 0x07f8 }, /* Index: 0xaa, char: \xab */ + { 0x06, 0x0804 }, /* Index: 0xab, char: \xac */ + { 0x06, 0x0810 }, /* Index: 0xac, char: \xad */ + { 0x06, 0x081c }, /* Index: 0xad, char: \xae */ + { 0x06, 0x0828 }, /* Index: 0xae, char: \xaf */ + { 0x06, 0x0834 }, /* Index: 0xaf, char: \xb0 */ + { 0x06, 0x0840 }, /* Index: 0xb0, char: \xb1 */ + { 0x06, 0x084c }, /* Index: 0xb1, char: \xb2 */ + { 0x06, 0x0858 }, /* Index: 0xb2, char: \xb3 */ + { 0x06, 0x0864 }, /* Index: 0xb3, char: \xb4 */ + { 0x06, 0x0870 }, /* Index: 0xb4, char: \xb5 */ + { 0x06, 0x087c }, /* Index: 0xb5, char: \xb6 */ + { 0x06, 0x0888 }, /* Index: 0xb6, char: \xb7 */ + { 0x06, 0x0894 }, /* Index: 0xb7, char: \xb8 */ + { 0x06, 0x08a0 }, /* Index: 0xb8, char: \xb9 */ + { 0x06, 0x08ac }, /* Index: 0xb9, char: \xba */ + { 0x06, 0x08b8 }, /* Index: 0xba, char: \xbb */ + { 0x06, 0x08c4 }, /* Index: 0xbb, char: \xbc */ + { 0x06, 0x08d0 }, /* Index: 0xbc, char: \xbd */ + { 0x06, 0x08dc }, /* Index: 0xbd, char: \xbe */ + { 0x06, 0x08e8 }, /* Index: 0xbe, char: \xbf */ + { 0x06, 0x08f4 }, /* Index: 0xbf, char: \xc0 */ + { 0x06, 0x0900 }, /* Index: 0xc0, char: \xc1 */ + { 0x06, 0x090c }, /* Index: 0xc1, char: \xc2 */ + { 0x06, 0x0918 }, /* Index: 0xc2, char: \xc3 */ + { 0x06, 0x0924 }, /* Index: 0xc3, char: \xc4 */ + { 0x06, 0x0930 }, /* Index: 0xc4, char: \xc5 */ + { 0x06, 0x093c }, /* Index: 0xc5, char: \xc6 */ + { 0x06, 0x0948 }, /* Index: 0xc6, char: \xc7 */ + { 0x06, 0x0954 }, /* Index: 0xc7, char: \xc8 */ + { 0x06, 0x0960 }, /* Index: 0xc8, char: \xc9 */ + { 0x06, 0x096c }, /* Index: 0xc9, char: \xca */ + { 0x06, 0x0978 }, /* Index: 0xca, char: \xcb */ + { 0x06, 0x0984 }, /* Index: 0xcb, char: \xcc */ + { 0x06, 0x0990 }, /* Index: 0xcc, char: \xcd */ + { 0x06, 0x099c }, /* Index: 0xcd, char: \xce */ + { 0x06, 0x09a8 }, /* Index: 0xce, char: \xcf */ + { 0x06, 0x09b4 }, /* Index: 0xcf, char: \xd0 */ + { 0x06, 0x09c0 }, /* Index: 0xd0, char: \xd1 */ + { 0x06, 0x09cc }, /* Index: 0xd1, char: \xd2 */ + { 0x06, 0x09d8 }, /* Index: 0xd2, char: \xd3 */ + { 0x06, 0x09e4 }, /* Index: 0xd3, char: \xd4 */ + { 0x06, 0x09f0 }, /* Index: 0xd4, char: \xd5 */ + { 0x06, 0x09fc }, /* Index: 0xd5, char: \xd6 */ + { 0x06, 0x0a08 }, /* Index: 0xd6, char: \xd7 */ + { 0x06, 0x0a14 }, /* Index: 0xd7, char: \xd8 */ + { 0x06, 0x0a20 }, /* Index: 0xd8, char: \xd9 */ + { 0x06, 0x0a2c }, /* Index: 0xd9, char: \xda */ + { 0x06, 0x0a38 }, /* Index: 0xda, char: \xdb */ + { 0x06, 0x0a44 }, /* Index: 0xdb, char: \xdc */ + { 0x06, 0x0a50 }, /* Index: 0xdc, char: \xdd */ + { 0x06, 0x0a5c }, /* Index: 0xdd, char: \xde */ + { 0x06, 0x0a68 }, /* Index: 0xde, char: \xdf */ + { 0x06, 0x0a74 }, /* Index: 0xdf, char: \xe0 */ + { 0x06, 0x0a80 }, /* Index: 0xe0, char: \xe1 */ + { 0x06, 0x0a8c }, /* Index: 0xe1, char: \xe2 */ + { 0x06, 0x0a98 }, /* Index: 0xe2, char: \xe3 */ + { 0x06, 0x0aa4 }, /* Index: 0xe3, char: \xe4 */ + { 0x06, 0x0ab0 }, /* Index: 0xe4, char: \xe5 */ + { 0x06, 0x0abc }, /* Index: 0xe5, char: \xe6 */ + { 0x06, 0x0ac8 }, /* Index: 0xe6, char: \xe7 */ + { 0x06, 0x0ad4 }, /* Index: 0xe7, char: \xe8 */ + { 0x06, 0x0ae0 }, /* Index: 0xe8, char: \xe9 */ + { 0x06, 0x0aec }, /* Index: 0xe9, char: \xea */ + { 0x06, 0x0af8 }, /* Index: 0xea, char: \xeb */ + { 0x06, 0x0b04 }, /* Index: 0xeb, char: \xec */ + { 0x06, 0x0b10 }, /* Index: 0xec, char: \xed */ + { 0x06, 0x0b1c }, /* Index: 0xed, char: \xee */ + { 0x06, 0x0b28 }, /* Index: 0xee, char: \xef */ + { 0x06, 0x0b34 }, /* Index: 0xef, char: \xf0 */ + { 0x06, 0x0b40 }, /* Index: 0xf0, char: \xf1 */ + { 0x06, 0x0b4c }, /* Index: 0xf1, char: \xf2 */ + { 0x06, 0x0b58 }, /* Index: 0xf2, char: \xf3 */ + { 0x06, 0x0b64 }, /* Index: 0xf3, char: \xf4 */ + { 0x06, 0x0b70 }, /* Index: 0xf4, char: \xf5 */ + { 0x06, 0x0b7c }, /* Index: 0xf5, char: \xf6 */ + { 0x06, 0x0b88 }, /* Index: 0xf6, char: \xf7 */ + { 0x06, 0x0b94 }, /* Index: 0xf7, char: \xf8 */ + { 0x06, 0x0ba0 }, /* Index: 0xf8, char: \xf9 */ + { 0x06, 0x0bac }, /* Index: 0xf9, char: \xfa */ + { 0x06, 0x0bb8 }, /* Index: 0xfa, char: \xfb */ + { 0x06, 0x0bc4 }, /* Index: 0xfb, char: \xfc */ + { 0x06, 0x0bd0 }, /* Index: 0xfc, char: \xfd */ + { 0x06, 0x0bdc }, /* Index: 0xfd, char: \xfe */ + { 0x06, 0x0be8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_6x12_iso8859_1_info = +{ + .height = 12, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_6x12_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_6x12_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_6X12_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_6x12_koi8_r.h b/extras/fonts/data/font_terminus_6x12_koi8_r.h new file mode 100644 index 0000000..fb95441 --- /dev/null +++ b/extras/fonts/data/font_terminus_6x12_koi8_r.h @@ -0,0 +1,3859 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 6x12 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.txt, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_6X12_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_6X12_KOI8_R_H_ + +static const uint8_t _fonts_terminus_6x12_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xf8, /* #####... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000c */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0018 */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x0024 */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0030 */ + 0x60, /* .##..... */ + 0x90, /* #..#.... */ + 0x80, /* #....... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x24, /* ..#..#.. */ + 0x38, /* ..###... */ + 0x28, /* ..#.#... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x003c */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0048 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0054 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0060 */ + 0x90, /* #..#.... */ + 0xd0, /* ##.#.... */ + 0xb0, /* #.##.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x006c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0078 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0084 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0090 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0d, char: \x0e, offset: 0x009c */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00a8 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x0f, char: \x10, offset: 0x00b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x00e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x00f0 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x15, char: \x16, offset: 0x00fc */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x16, char: \x17, offset: 0x0108 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0114 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x18, char: \x19, offset: 0x0120 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x19, char: \x1a, offset: 0x012c */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0138 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x0144 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0150 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x015c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x40, /* .#...... */ + 0xf0, /* ####.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0168 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x0174 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x0180 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x018c */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x0198 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa0, /* #.#..... */ + 0x70, /* .###.... */ + 0x28, /* ..#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x24, char: \x25, offset: 0x01b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0xa8, /* #.#.#... */ + 0x50, /* .#.#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x28, /* ..#.#... */ + 0x54, /* .#.#.#.. */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x01bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x68, /* .##.#... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x68, /* .##.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x01c8 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x01d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x01e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x01ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0204 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0210 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x021c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0228 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0234 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x0240 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x0258 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x0264 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x28, /* ..#.#... */ + 0x48, /* .#..#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x0270 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x027c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x0288 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0294 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x02ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x02b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x02c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x02d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x02dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x02e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0300 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x030c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x0318 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x0324 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x0330 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x033c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xb8, /* #.###... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x0354 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x0360 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x036c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0378 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0384 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0390 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x03a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x03b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x03c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x03cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x03d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x03e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x03fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x0408 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xd8, /* ##.##... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x0414 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x0420 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x042c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0438 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0450 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x045c */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0468 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0474 */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0480 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x048c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x04a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x04b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x04bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x04c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0x67, char: \x68, offset: 0x04d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x04e0 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x04ec */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x48, /* .#..#... */ + 0x30, /* ..##.... */ + + /* Index: 0x6a, char: \x6b, offset: 0x04f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x0504 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x0510 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x051c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0528 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0534 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0x70, char: \x71, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + + /* Index: 0x71, char: \x72, offset: 0x054c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xb8, /* #.###... */ + 0xc0, /* ##...... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x0558 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x80, /* #....... */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x0564 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0570 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x057c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0588 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x05a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0x79, char: \x7a, offset: 0x05ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x05b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x05c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x05d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x05dc */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0xa8, /* #.#.#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x05f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0600 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x81, char: \x82, offset: 0x060c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x82, char: \x83, offset: 0x0618 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x83, char: \x84, offset: 0x0624 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0630 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x063c */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x86, char: \x87, offset: 0x0648 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x87, char: \x88, offset: 0x0654 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x88, char: \x89, offset: 0x0660 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x066c */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x8a, char: \x8b, offset: 0x0678 */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x0684 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + + /* Index: 0x8c, char: \x8d, offset: 0x0690 */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + + /* Index: 0x8d, char: \x8e, offset: 0x069c */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + 0xe0, /* ###..... */ + + /* Index: 0x8e, char: \x8f, offset: 0x06a8 */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + 0x1c, /* ...###.. */ + + /* Index: 0x8f, char: \x90, offset: 0x06b4 */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + 0x90, /* #..#.... */ + 0x24, /* ..#..#.. */ + + /* Index: 0x90, char: \x91, offset: 0x06c0 */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + 0xa8, /* #.#.#... */ + 0x54, /* .#.#.#.. */ + + /* Index: 0x91, char: \x92, offset: 0x06cc */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + 0xd8, /* ##.##... */ + 0xb4, /* #.##.#.. */ + + /* Index: 0x92, char: \x93, offset: 0x06d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0x93, char: \x94, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x78, /* .####... */ + 0x78, /* .####... */ + 0x78, /* .####... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x06f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x78, /* .####... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x06fc */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x48, /* .#..#... */ + 0x28, /* ..#.#... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0708 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x68, /* .##.#... */ + 0xb0, /* #.##.... */ + 0x00, /* ........ */ + 0x68, /* .##.#... */ + 0xb0, /* #.##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0714 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x80, /* #....... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0720 */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x072c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x0738 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xa0, /* #.#..... */ + 0xa0, /* #.#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x0744 */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0750 */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x075c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x0768 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x0774 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x0780 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xa1, char: \xa2, offset: 0x078c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xa2, char: \xa3, offset: 0x0798 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x07a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xa4, char: \xa5, offset: 0x07b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x5c, /* .#.###.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xa5, char: \xa6, offset: 0x07bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xa6, char: \xa7, offset: 0x07c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xa7, char: \xa8, offset: 0x07d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xd0, /* ##.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xa8, char: \xa9, offset: 0x07e0 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x07ec */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x07f8 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x5c, /* .#.###.. */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x0804 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0810 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x081c */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xd0, /* ##.#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0828 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xaf, char: \xb0, offset: 0x0834 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x5c, /* .#.###.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb0, char: \xb1, offset: 0x0840 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x5c, /* .#.###.. */ + 0x40, /* .#...... */ + 0x5c, /* .#.###.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb1, char: \xb2, offset: 0x084c */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0xe0, /* ###..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xb2, char: \xb3, offset: 0x0858 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x0864 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xd0, /* ##.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb4, char: \xb5, offset: 0x0870 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xd0, /* ##.#.... */ + 0x10, /* ...#.... */ + 0xd0, /* ##.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb5, char: \xb6, offset: 0x087c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xb6, char: \xb7, offset: 0x0888 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb7, char: \xb8, offset: 0x0894 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0xdc, /* ##.###.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xb8, char: \xb9, offset: 0x08a0 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x08ac */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x08b8 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x08c4 */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0xfc, /* ######.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + + /* Index: 0xbc, char: \xbd, offset: 0x08d0 */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xfc, /* ######.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xbd, char: \xbe, offset: 0x08dc */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0xdc, /* ##.###.. */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + 0x50, /* .#.#.... */ + + /* Index: 0xbe, char: \xbf, offset: 0x08e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x84, /* #....#.. */ + 0xb4, /* #.##.#.. */ + 0xa4, /* #.#..#.. */ + 0xa4, /* #.#..#.. */ + 0xb4, /* #.##.#.. */ + 0x84, /* #....#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x08f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xe8, /* ###.#... */ + 0xa8, /* #.#.#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0900 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x08, /* ....#... */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x090c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0918 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x7c, /* .#####.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + + /* Index: 0xc3, char: \xc4, offset: 0x0924 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0xc4, char: \xc5, offset: 0x0930 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x093c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0948 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc7, char: \xc8, offset: 0x0954 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0960 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x096c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0978 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0984 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0990 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x099c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x09a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x09b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x09c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x28, /* ..#.#... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x09cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + + /* Index: 0xd2, char: \xd3, offset: 0x09d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x09e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x09f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + + /* Index: 0xd5, char: \xd6, offset: 0x09fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0a08 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0a14 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0a20 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0a2c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0a38 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0a44 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0a50 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x7c, /* .#####.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + + /* Index: 0xdd, char: \xde, offset: 0x0a5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0a68 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0a74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xe8, /* ###.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0a80 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0a8c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0a98 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x7c, /* .#####.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + + /* Index: 0xe3, char: \xe4, offset: 0x0aa4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0xfc, /* ######.. */ + 0x84, /* #....#.. */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0ab0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0abc */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0ac8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x50, /* .#.#.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0ae0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0aec */ + 0x50, /* .#.#.... */ + 0x20, /* ..#..... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x98, /* #..##... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0af8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x90, /* #..#.... */ + 0xa0, /* #.#..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xa0, /* #.#..... */ + 0x90, /* #..#.... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0b04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0b10 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0xd8, /* ##.##... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0b1c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0b28 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0b34 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0b40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x28, /* ..#.#... */ + 0x48, /* .#..#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0b4c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0b58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0b64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0b70 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0b7c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x70, /* .###.... */ + 0x70, /* .###.... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0b88 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0b94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0ba0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xc8, /* ##..#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0bac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0bb8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0bc4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0bd0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0xa8, /* #.#.#... */ + 0x7c, /* .#####.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + + /* Index: 0xfd, char: \xfe, offset: 0x0bdc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x78, /* .####... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfe, char: \xff, offset: 0x0be8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ +}; + +const font_char_desc_t _fonts_terminus_6x12_koi8_r_descriptors[] = { + { 0x06, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x06, 0x000c }, /* Index: 0x01, char: \x02 */ + { 0x06, 0x0018 }, /* Index: 0x02, char: \x03 */ + { 0x06, 0x0024 }, /* Index: 0x03, char: \x04 */ + { 0x06, 0x0030 }, /* Index: 0x04, char: \x05 */ + { 0x06, 0x003c }, /* Index: 0x05, char: \x06 */ + { 0x06, 0x0048 }, /* Index: 0x06, char: \x07 */ + { 0x06, 0x0054 }, /* Index: 0x07, char: \x08 */ + { 0x06, 0x0060 }, /* Index: 0x08, char: \x09 */ + { 0x06, 0x006c }, /* Index: 0x09, char: \x0a */ + { 0x06, 0x0078 }, /* Index: 0x0a, char: \x0b */ + { 0x06, 0x0084 }, /* Index: 0x0b, char: \x0c */ + { 0x06, 0x0090 }, /* Index: 0x0c, char: \x0d */ + { 0x06, 0x009c }, /* Index: 0x0d, char: \x0e */ + { 0x06, 0x00a8 }, /* Index: 0x0e, char: \x0f */ + { 0x06, 0x00b4 }, /* Index: 0x0f, char: \x10 */ + { 0x06, 0x00c0 }, /* Index: 0x10, char: \x11 */ + { 0x06, 0x00cc }, /* Index: 0x11, char: \x12 */ + { 0x06, 0x00d8 }, /* Index: 0x12, char: \x13 */ + { 0x06, 0x00e4 }, /* Index: 0x13, char: \x14 */ + { 0x06, 0x00f0 }, /* Index: 0x14, char: \x15 */ + { 0x06, 0x00fc }, /* Index: 0x15, char: \x16 */ + { 0x06, 0x0108 }, /* Index: 0x16, char: \x17 */ + { 0x06, 0x0114 }, /* Index: 0x17, char: \x18 */ + { 0x06, 0x0120 }, /* Index: 0x18, char: \x19 */ + { 0x06, 0x012c }, /* Index: 0x19, char: \x1a */ + { 0x06, 0x0138 }, /* Index: 0x1a, char: \x1b */ + { 0x06, 0x0144 }, /* Index: 0x1b, char: \x1c */ + { 0x06, 0x0150 }, /* Index: 0x1c, char: \x1d */ + { 0x06, 0x015c }, /* Index: 0x1d, char: \x1e */ + { 0x06, 0x0168 }, /* Index: 0x1e, char: \x1f */ + { 0x06, 0x0174 }, /* Index: 0x1f, char: \x20 */ + { 0x06, 0x0180 }, /* Index: 0x20, char: \x21 */ + { 0x06, 0x018c }, /* Index: 0x21, char: \x22 */ + { 0x06, 0x0198 }, /* Index: 0x22, char: \x23 */ + { 0x06, 0x01a4 }, /* Index: 0x23, char: \x24 */ + { 0x06, 0x01b0 }, /* Index: 0x24, char: \x25 */ + { 0x06, 0x01bc }, /* Index: 0x25, char: \x26 */ + { 0x06, 0x01c8 }, /* Index: 0x26, char: \x27 */ + { 0x06, 0x01d4 }, /* Index: 0x27, char: \x28 */ + { 0x06, 0x01e0 }, /* Index: 0x28, char: \x29 */ + { 0x06, 0x01ec }, /* Index: 0x29, char: \x2a */ + { 0x06, 0x01f8 }, /* Index: 0x2a, char: \x2b */ + { 0x06, 0x0204 }, /* Index: 0x2b, char: \x2c */ + { 0x06, 0x0210 }, /* Index: 0x2c, char: \x2d */ + { 0x06, 0x021c }, /* Index: 0x2d, char: \x2e */ + { 0x06, 0x0228 }, /* Index: 0x2e, char: \x2f */ + { 0x06, 0x0234 }, /* Index: 0x2f, char: \x30 */ + { 0x06, 0x0240 }, /* Index: 0x30, char: \x31 */ + { 0x06, 0x024c }, /* Index: 0x31, char: \x32 */ + { 0x06, 0x0258 }, /* Index: 0x32, char: \x33 */ + { 0x06, 0x0264 }, /* Index: 0x33, char: \x34 */ + { 0x06, 0x0270 }, /* Index: 0x34, char: \x35 */ + { 0x06, 0x027c }, /* Index: 0x35, char: \x36 */ + { 0x06, 0x0288 }, /* Index: 0x36, char: \x37 */ + { 0x06, 0x0294 }, /* Index: 0x37, char: \x38 */ + { 0x06, 0x02a0 }, /* Index: 0x38, char: \x39 */ + { 0x06, 0x02ac }, /* Index: 0x39, char: \x3a */ + { 0x06, 0x02b8 }, /* Index: 0x3a, char: \x3b */ + { 0x06, 0x02c4 }, /* Index: 0x3b, char: \x3c */ + { 0x06, 0x02d0 }, /* Index: 0x3c, char: \x3d */ + { 0x06, 0x02dc }, /* Index: 0x3d, char: \x3e */ + { 0x06, 0x02e8 }, /* Index: 0x3e, char: \x3f */ + { 0x06, 0x02f4 }, /* Index: 0x3f, char: \x40 */ + { 0x06, 0x0300 }, /* Index: 0x40, char: \x41 */ + { 0x06, 0x030c }, /* Index: 0x41, char: \x42 */ + { 0x06, 0x0318 }, /* Index: 0x42, char: \x43 */ + { 0x06, 0x0324 }, /* Index: 0x43, char: \x44 */ + { 0x06, 0x0330 }, /* Index: 0x44, char: \x45 */ + { 0x06, 0x033c }, /* Index: 0x45, char: \x46 */ + { 0x06, 0x0348 }, /* Index: 0x46, char: \x47 */ + { 0x06, 0x0354 }, /* Index: 0x47, char: \x48 */ + { 0x06, 0x0360 }, /* Index: 0x48, char: \x49 */ + { 0x06, 0x036c }, /* Index: 0x49, char: \x4a */ + { 0x06, 0x0378 }, /* Index: 0x4a, char: \x4b */ + { 0x06, 0x0384 }, /* Index: 0x4b, char: \x4c */ + { 0x06, 0x0390 }, /* Index: 0x4c, char: \x4d */ + { 0x06, 0x039c }, /* Index: 0x4d, char: \x4e */ + { 0x06, 0x03a8 }, /* Index: 0x4e, char: \x4f */ + { 0x06, 0x03b4 }, /* Index: 0x4f, char: \x50 */ + { 0x06, 0x03c0 }, /* Index: 0x50, char: \x51 */ + { 0x06, 0x03cc }, /* Index: 0x51, char: \x52 */ + { 0x06, 0x03d8 }, /* Index: 0x52, char: \x53 */ + { 0x06, 0x03e4 }, /* Index: 0x53, char: \x54 */ + { 0x06, 0x03f0 }, /* Index: 0x54, char: \x55 */ + { 0x06, 0x03fc }, /* Index: 0x55, char: \x56 */ + { 0x06, 0x0408 }, /* Index: 0x56, char: \x57 */ + { 0x06, 0x0414 }, /* Index: 0x57, char: \x58 */ + { 0x06, 0x0420 }, /* Index: 0x58, char: \x59 */ + { 0x06, 0x042c }, /* Index: 0x59, char: \x5a */ + { 0x06, 0x0438 }, /* Index: 0x5a, char: \x5b */ + { 0x06, 0x0444 }, /* Index: 0x5b, char: \x5c */ + { 0x06, 0x0450 }, /* Index: 0x5c, char: \x5d */ + { 0x06, 0x045c }, /* Index: 0x5d, char: \x5e */ + { 0x06, 0x0468 }, /* Index: 0x5e, char: \x5f */ + { 0x06, 0x0474 }, /* Index: 0x5f, char: \x60 */ + { 0x06, 0x0480 }, /* Index: 0x60, char: \x61 */ + { 0x06, 0x048c }, /* Index: 0x61, char: \x62 */ + { 0x06, 0x0498 }, /* Index: 0x62, char: \x63 */ + { 0x06, 0x04a4 }, /* Index: 0x63, char: \x64 */ + { 0x06, 0x04b0 }, /* Index: 0x64, char: \x65 */ + { 0x06, 0x04bc }, /* Index: 0x65, char: \x66 */ + { 0x06, 0x04c8 }, /* Index: 0x66, char: \x67 */ + { 0x06, 0x04d4 }, /* Index: 0x67, char: \x68 */ + { 0x06, 0x04e0 }, /* Index: 0x68, char: \x69 */ + { 0x06, 0x04ec }, /* Index: 0x69, char: \x6a */ + { 0x06, 0x04f8 }, /* Index: 0x6a, char: \x6b */ + { 0x06, 0x0504 }, /* Index: 0x6b, char: \x6c */ + { 0x06, 0x0510 }, /* Index: 0x6c, char: \x6d */ + { 0x06, 0x051c }, /* Index: 0x6d, char: \x6e */ + { 0x06, 0x0528 }, /* Index: 0x6e, char: \x6f */ + { 0x06, 0x0534 }, /* Index: 0x6f, char: \x70 */ + { 0x06, 0x0540 }, /* Index: 0x70, char: \x71 */ + { 0x06, 0x054c }, /* Index: 0x71, char: \x72 */ + { 0x06, 0x0558 }, /* Index: 0x72, char: \x73 */ + { 0x06, 0x0564 }, /* Index: 0x73, char: \x74 */ + { 0x06, 0x0570 }, /* Index: 0x74, char: \x75 */ + { 0x06, 0x057c }, /* Index: 0x75, char: \x76 */ + { 0x06, 0x0588 }, /* Index: 0x76, char: \x77 */ + { 0x06, 0x0594 }, /* Index: 0x77, char: \x78 */ + { 0x06, 0x05a0 }, /* Index: 0x78, char: \x79 */ + { 0x06, 0x05ac }, /* Index: 0x79, char: \x7a */ + { 0x06, 0x05b8 }, /* Index: 0x7a, char: \x7b */ + { 0x06, 0x05c4 }, /* Index: 0x7b, char: \x7c */ + { 0x06, 0x05d0 }, /* Index: 0x7c, char: \x7d */ + { 0x06, 0x05dc }, /* Index: 0x7d, char: \x7e */ + { 0x06, 0x05e8 }, /* Index: 0x7e, char: \x7f */ + { 0x06, 0x05f4 }, /* Index: 0x7f, char: \x80 */ + { 0x06, 0x0600 }, /* Index: 0x80, char: \x81 */ + { 0x06, 0x060c }, /* Index: 0x81, char: \x82 */ + { 0x06, 0x0618 }, /* Index: 0x82, char: \x83 */ + { 0x06, 0x0624 }, /* Index: 0x83, char: \x84 */ + { 0x06, 0x0630 }, /* Index: 0x84, char: \x85 */ + { 0x06, 0x063c }, /* Index: 0x85, char: \x86 */ + { 0x06, 0x0648 }, /* Index: 0x86, char: \x87 */ + { 0x06, 0x0654 }, /* Index: 0x87, char: \x88 */ + { 0x06, 0x0660 }, /* Index: 0x88, char: \x89 */ + { 0x06, 0x066c }, /* Index: 0x89, char: \x8a */ + { 0x06, 0x0678 }, /* Index: 0x8a, char: \x8b */ + { 0x06, 0x0684 }, /* Index: 0x8b, char: \x8c */ + { 0x06, 0x0690 }, /* Index: 0x8c, char: \x8d */ + { 0x06, 0x069c }, /* Index: 0x8d, char: \x8e */ + { 0x06, 0x06a8 }, /* Index: 0x8e, char: \x8f */ + { 0x06, 0x06b4 }, /* Index: 0x8f, char: \x90 */ + { 0x06, 0x06c0 }, /* Index: 0x90, char: \x91 */ + { 0x06, 0x06cc }, /* Index: 0x91, char: \x92 */ + { 0x06, 0x06d8 }, /* Index: 0x92, char: \x93 */ + { 0x06, 0x06e4 }, /* Index: 0x93, char: \x94 */ + { 0x06, 0x06f0 }, /* Index: 0x94, char: \x95 */ + { 0x06, 0x06fc }, /* Index: 0x95, char: \x96 */ + { 0x06, 0x0708 }, /* Index: 0x96, char: \x97 */ + { 0x06, 0x0714 }, /* Index: 0x97, char: \x98 */ + { 0x06, 0x0720 }, /* Index: 0x98, char: \x99 */ + { 0x06, 0x072c }, /* Index: 0x99, char: \x9a */ + { 0x06, 0x0738 }, /* Index: 0x9a, char: \x9b */ + { 0x06, 0x0744 }, /* Index: 0x9b, char: \x9c */ + { 0x06, 0x0750 }, /* Index: 0x9c, char: \x9d */ + { 0x06, 0x075c }, /* Index: 0x9d, char: \x9e */ + { 0x06, 0x0768 }, /* Index: 0x9e, char: \x9f */ + { 0x06, 0x0774 }, /* Index: 0x9f, char: \xa0 */ + { 0x06, 0x0780 }, /* Index: 0xa0, char: \xa1 */ + { 0x06, 0x078c }, /* Index: 0xa1, char: \xa2 */ + { 0x06, 0x0798 }, /* Index: 0xa2, char: \xa3 */ + { 0x06, 0x07a4 }, /* Index: 0xa3, char: \xa4 */ + { 0x06, 0x07b0 }, /* Index: 0xa4, char: \xa5 */ + { 0x06, 0x07bc }, /* Index: 0xa5, char: \xa6 */ + { 0x06, 0x07c8 }, /* Index: 0xa6, char: \xa7 */ + { 0x06, 0x07d4 }, /* Index: 0xa7, char: \xa8 */ + { 0x06, 0x07e0 }, /* Index: 0xa8, char: \xa9 */ + { 0x06, 0x07ec }, /* Index: 0xa9, char: \xaa */ + { 0x06, 0x07f8 }, /* Index: 0xaa, char: \xab */ + { 0x06, 0x0804 }, /* Index: 0xab, char: \xac */ + { 0x06, 0x0810 }, /* Index: 0xac, char: \xad */ + { 0x06, 0x081c }, /* Index: 0xad, char: \xae */ + { 0x06, 0x0828 }, /* Index: 0xae, char: \xaf */ + { 0x06, 0x0834 }, /* Index: 0xaf, char: \xb0 */ + { 0x06, 0x0840 }, /* Index: 0xb0, char: \xb1 */ + { 0x06, 0x084c }, /* Index: 0xb1, char: \xb2 */ + { 0x06, 0x0858 }, /* Index: 0xb2, char: \xb3 */ + { 0x06, 0x0864 }, /* Index: 0xb3, char: \xb4 */ + { 0x06, 0x0870 }, /* Index: 0xb4, char: \xb5 */ + { 0x06, 0x087c }, /* Index: 0xb5, char: \xb6 */ + { 0x06, 0x0888 }, /* Index: 0xb6, char: \xb7 */ + { 0x06, 0x0894 }, /* Index: 0xb7, char: \xb8 */ + { 0x06, 0x08a0 }, /* Index: 0xb8, char: \xb9 */ + { 0x06, 0x08ac }, /* Index: 0xb9, char: \xba */ + { 0x06, 0x08b8 }, /* Index: 0xba, char: \xbb */ + { 0x06, 0x08c4 }, /* Index: 0xbb, char: \xbc */ + { 0x06, 0x08d0 }, /* Index: 0xbc, char: \xbd */ + { 0x06, 0x08dc }, /* Index: 0xbd, char: \xbe */ + { 0x06, 0x08e8 }, /* Index: 0xbe, char: \xbf */ + { 0x06, 0x08f4 }, /* Index: 0xbf, char: \xc0 */ + { 0x06, 0x0900 }, /* Index: 0xc0, char: \xc1 */ + { 0x06, 0x090c }, /* Index: 0xc1, char: \xc2 */ + { 0x06, 0x0918 }, /* Index: 0xc2, char: \xc3 */ + { 0x06, 0x0924 }, /* Index: 0xc3, char: \xc4 */ + { 0x06, 0x0930 }, /* Index: 0xc4, char: \xc5 */ + { 0x06, 0x093c }, /* Index: 0xc5, char: \xc6 */ + { 0x06, 0x0948 }, /* Index: 0xc6, char: \xc7 */ + { 0x06, 0x0954 }, /* Index: 0xc7, char: \xc8 */ + { 0x06, 0x0960 }, /* Index: 0xc8, char: \xc9 */ + { 0x06, 0x096c }, /* Index: 0xc9, char: \xca */ + { 0x06, 0x0978 }, /* Index: 0xca, char: \xcb */ + { 0x06, 0x0984 }, /* Index: 0xcb, char: \xcc */ + { 0x06, 0x0990 }, /* Index: 0xcc, char: \xcd */ + { 0x06, 0x099c }, /* Index: 0xcd, char: \xce */ + { 0x06, 0x09a8 }, /* Index: 0xce, char: \xcf */ + { 0x06, 0x09b4 }, /* Index: 0xcf, char: \xd0 */ + { 0x06, 0x09c0 }, /* Index: 0xd0, char: \xd1 */ + { 0x06, 0x09cc }, /* Index: 0xd1, char: \xd2 */ + { 0x06, 0x09d8 }, /* Index: 0xd2, char: \xd3 */ + { 0x06, 0x09e4 }, /* Index: 0xd3, char: \xd4 */ + { 0x06, 0x09f0 }, /* Index: 0xd4, char: \xd5 */ + { 0x06, 0x09fc }, /* Index: 0xd5, char: \xd6 */ + { 0x06, 0x0a08 }, /* Index: 0xd6, char: \xd7 */ + { 0x06, 0x0a14 }, /* Index: 0xd7, char: \xd8 */ + { 0x06, 0x0a20 }, /* Index: 0xd8, char: \xd9 */ + { 0x06, 0x0a2c }, /* Index: 0xd9, char: \xda */ + { 0x06, 0x0a38 }, /* Index: 0xda, char: \xdb */ + { 0x06, 0x0a44 }, /* Index: 0xdb, char: \xdc */ + { 0x06, 0x0a50 }, /* Index: 0xdc, char: \xdd */ + { 0x06, 0x0a5c }, /* Index: 0xdd, char: \xde */ + { 0x06, 0x0a68 }, /* Index: 0xde, char: \xdf */ + { 0x06, 0x0a74 }, /* Index: 0xdf, char: \xe0 */ + { 0x06, 0x0a80 }, /* Index: 0xe0, char: \xe1 */ + { 0x06, 0x0a8c }, /* Index: 0xe1, char: \xe2 */ + { 0x06, 0x0a98 }, /* Index: 0xe2, char: \xe3 */ + { 0x06, 0x0aa4 }, /* Index: 0xe3, char: \xe4 */ + { 0x06, 0x0ab0 }, /* Index: 0xe4, char: \xe5 */ + { 0x06, 0x0abc }, /* Index: 0xe5, char: \xe6 */ + { 0x06, 0x0ac8 }, /* Index: 0xe6, char: \xe7 */ + { 0x06, 0x0ad4 }, /* Index: 0xe7, char: \xe8 */ + { 0x06, 0x0ae0 }, /* Index: 0xe8, char: \xe9 */ + { 0x06, 0x0aec }, /* Index: 0xe9, char: \xea */ + { 0x06, 0x0af8 }, /* Index: 0xea, char: \xeb */ + { 0x06, 0x0b04 }, /* Index: 0xeb, char: \xec */ + { 0x06, 0x0b10 }, /* Index: 0xec, char: \xed */ + { 0x06, 0x0b1c }, /* Index: 0xed, char: \xee */ + { 0x06, 0x0b28 }, /* Index: 0xee, char: \xef */ + { 0x06, 0x0b34 }, /* Index: 0xef, char: \xf0 */ + { 0x06, 0x0b40 }, /* Index: 0xf0, char: \xf1 */ + { 0x06, 0x0b4c }, /* Index: 0xf1, char: \xf2 */ + { 0x06, 0x0b58 }, /* Index: 0xf2, char: \xf3 */ + { 0x06, 0x0b64 }, /* Index: 0xf3, char: \xf4 */ + { 0x06, 0x0b70 }, /* Index: 0xf4, char: \xf5 */ + { 0x06, 0x0b7c }, /* Index: 0xf5, char: \xf6 */ + { 0x06, 0x0b88 }, /* Index: 0xf6, char: \xf7 */ + { 0x06, 0x0b94 }, /* Index: 0xf7, char: \xf8 */ + { 0x06, 0x0ba0 }, /* Index: 0xf8, char: \xf9 */ + { 0x06, 0x0bac }, /* Index: 0xf9, char: \xfa */ + { 0x06, 0x0bb8 }, /* Index: 0xfa, char: \xfb */ + { 0x06, 0x0bc4 }, /* Index: 0xfb, char: \xfc */ + { 0x06, 0x0bd0 }, /* Index: 0xfc, char: \xfd */ + { 0x06, 0x0bdc }, /* Index: 0xfd, char: \xfe */ + { 0x06, 0x0be8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_6x12_koi8_r_info = +{ + .height = 12, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_6x12_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_6x12_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_6X12_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_8x14_iso8859_1.h b/extras/fonts/data/font_terminus_8x14_iso8859_1.h new file mode 100644 index 0000000..c4fcc4a --- /dev/null +++ b/extras/fonts/data/font_terminus_8x14_iso8859_1.h @@ -0,0 +1,4369 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 8x14 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:46:58 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_8X14_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_8X14_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_8x14_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0xfe, /* #######. */ + 0x7c, /* .#####.. */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000e */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x001c */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x002a */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1c, /* ...###.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0038 */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x11, /* ...#...# */ + 0x11, /* ...#...# */ + 0x1e, /* ...####. */ + 0x12, /* ...#..#. */ + 0x11, /* ...#...# */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x0046 */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1c, /* ...###.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0054 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0062 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0070 */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x007e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x008c */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x009a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0c, char: \x0d, offset: 0x00a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0d, char: \x0e, offset: 0x00b6 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00c4 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0f, char: \x10, offset: 0x00d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x010a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x0118 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x15, char: \x16, offset: 0x0126 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x16, char: \x17, offset: 0x0134 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0142 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x18, char: \x19, offset: 0x0150 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x19, char: \x1a, offset: 0x015e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x016c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x017a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0188 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x7e, /* .######. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0196 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x22, /* ..#...#. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x01b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x01c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x01ce */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x01dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x7e, /* .######. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x7e, /* .######. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01ea */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x92, /* #..#..#. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x7c, /* .#####.. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x24, char: \x25, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x64, /* .##..#.. */ + 0x94, /* #..#.#.. */ + 0x68, /* .##.#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x2c, /* ..#.##.. */ + 0x52, /* .#.#..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x0206 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x4a, /* .#..#.#. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x3a, /* ..###.#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x0214 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x0230 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x023e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x025a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0276 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0284 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0292 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x28, /* ..#.#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x02ae */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x02bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x1c, /* ...###.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x02ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x06, /* .....##. */ + 0x0a, /* ....#.#. */ + 0x12, /* ...#..#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x02d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x02e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1c, /* ...###.. */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0302 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x0310 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x031e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x032c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x033a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0356 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0364 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x0372 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x82, /* #.....#. */ + 0x9e, /* #..####. */ + 0xa2, /* #.#...#. */ + 0xa2, /* #.#...#. */ + 0xa2, /* #.#...#. */ + 0xa6, /* #.#..##. */ + 0x9a, /* #..##.#. */ + 0x80, /* #....... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0380 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x038e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x03aa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x03b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x03c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x03d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x4e, /* .#..###. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x03e2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x03fe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x040c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x041a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0428 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xaa, /* #.#.#.#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0436 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x62, /* .##...#. */ + 0x52, /* .#.#..#. */ + 0x4a, /* .#..#.#. */ + 0x46, /* .#...##. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x0452 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x0460 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x4a, /* .#..#.#. */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x046e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x047c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x048a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x04a6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x04b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0xaa, /* #.#.#.#. */ + 0xc6, /* ##...##. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x04c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x04d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x04de */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x04ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x04fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0508 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0516 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x28, /* ..#.#... */ + 0x44, /* .#...#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0524 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0532 */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x054e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x055c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x056a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x0578 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x0586 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0x67, char: \x68, offset: 0x05a2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x05b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x05be */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + + /* Index: 0x6a, char: \x6b, offset: 0x05cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x05da */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x05f6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0604 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0612 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + + /* Index: 0x70, char: \x71, offset: 0x0620 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + + /* Index: 0x71, char: \x72, offset: 0x062e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x5e, /* .#.####. */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x063c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x064a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x0e, /* ....###. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0658 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x0666 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0674 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0682 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x0690 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0x79, char: \x7a, offset: 0x069e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x06ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x06ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x06c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x06d6 */ + 0x00, /* ........ */ + 0x62, /* .##...#. */ + 0x92, /* #..#..#. */ + 0x8c, /* #...##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x06f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0700 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x81, char: \x82, offset: 0x070e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x82, char: \x83, offset: 0x071c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x83, char: \x84, offset: 0x072a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0738 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x0746 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x86, char: \x87, offset: 0x0754 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x87, char: \x88, offset: 0x0762 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x88, char: \x89, offset: 0x0770 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x077e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8a, char: \x8b, offset: 0x078c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x079a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8c, char: \x8d, offset: 0x07a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8d, char: \x8e, offset: 0x07b6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8e, char: \x8f, offset: 0x07c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8f, char: \x90, offset: 0x07d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x90, char: \x91, offset: 0x07e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x91, char: \x92, offset: 0x07ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x92, char: \x93, offset: 0x07fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x93, char: \x94, offset: 0x080a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x0818 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x0826 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0834 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0842 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0850 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x085e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x086c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x087a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0888 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x0896 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x08a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x08b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x08c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa1, char: \xa2, offset: 0x08ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x92, /* #..#..#. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xa2, char: \xa3, offset: 0x08dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x22, /* ..#...#. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x08ea */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa4, char: \xa5, offset: 0x08f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x44, /* .#...#.. */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa5, char: \xa6, offset: 0x0906 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa6, char: \xa7, offset: 0x0914 */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x40, /* .#...... */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + + /* Index: 0xa7, char: \xa8, offset: 0x0922 */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa8, char: \xa9, offset: 0x0930 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0x99, /* #..##..# */ + 0xa5, /* #.#..#.# */ + 0xa1, /* #.#....# */ + 0xa5, /* #.#..#.# */ + 0x99, /* #..##..# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x093e */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x04, /* .....#.. */ + 0x3c, /* ..####.. */ + 0x44, /* .#...#.. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x094c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x12, /* ...#..#. */ + 0x24, /* ..#..#.. */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x24, /* ..#..#.. */ + 0x12, /* ...#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x095a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0968 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x0976 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0xb9, /* #.###..# */ + 0xa5, /* #.#..#.# */ + 0xb9, /* #.###..# */ + 0xa9, /* #.#.#..# */ + 0xa5, /* #.#..#.# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0984 */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaf, char: \xb0, offset: 0x0992 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb0, char: \xb1, offset: 0x09a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb1, char: \xb2, offset: 0x09ae */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb2, char: \xb3, offset: 0x09bc */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x04, /* .....#.. */ + 0x18, /* ...##... */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x09ca */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb4, char: \xb5, offset: 0x09d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x7a, /* .####.#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + + /* Index: 0xb5, char: \xb6, offset: 0x09e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x72, /* .###..#. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb6, char: \xb7, offset: 0x09f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb7, char: \xb8, offset: 0x0a02 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + + /* Index: 0xb8, char: \xb9, offset: 0x0a10 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x0a1e */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x0a2c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x90, /* #..#.... */ + 0x48, /* .#..#... */ + 0x24, /* ..#..#.. */ + 0x12, /* ...#..#. */ + 0x24, /* ..#..#.. */ + 0x48, /* .#..#... */ + 0x90, /* #..#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x0a3a */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x22, /* ..#...#. */ + 0x24, /* ..#..#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x22, /* ..#...#. */ + 0x46, /* .#...##. */ + 0x8a, /* #...#.#. */ + 0x1e, /* ...####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + + /* Index: 0xbc, char: \xbd, offset: 0x0a48 */ + 0x20, /* ..#..... */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x22, /* ..#...#. */ + 0x24, /* ..#..#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x4c, /* .#..##.. */ + 0x92, /* #..#..#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x1e, /* ...####. */ + 0x00, /* ........ */ + + /* Index: 0xbd, char: \xbe, offset: 0x0a56 */ + 0xe0, /* ###..... */ + 0x10, /* ...#.... */ + 0x60, /* .##..... */ + 0x12, /* ...#..#. */ + 0xe4, /* ###..#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x22, /* ..#...#. */ + 0x46, /* .#...##. */ + 0x8a, /* #...#.#. */ + 0x1e, /* ...####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + + /* Index: 0xbe, char: \xbf, offset: 0x0a64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x0a72 */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0a80 */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x0a8e */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0a9c */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc3, char: \xc4, offset: 0x0aaa */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc4, char: \xc5, offset: 0x0ab8 */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x0ac6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0xfc, /* ######.. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x9e, /* #..####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + + /* Index: 0xc7, char: \xc8, offset: 0x0ae2 */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0af0 */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x0afe */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0b0c */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0b1a */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0b28 */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x0b36 */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x0b44 */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x0b52 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0xf2, /* ####..#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x0b60 */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x62, /* .##...#. */ + 0x52, /* .#.#..#. */ + 0x4a, /* .#..#.#. */ + 0x46, /* .#...##. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x0b6e */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd2, char: \xd3, offset: 0x0b7c */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x0b8a */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x0b98 */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd5, char: \xd6, offset: 0x0ba6 */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0bb4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0bc2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x43, /* .#....## */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0xc2, /* ##....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0bd0 */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0bde */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0bec */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0bfa */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0c08 */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdd, char: \xde, offset: 0x0c16 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0c24 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x62, /* .##...#. */ + 0x5c, /* .#.###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0c32 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0c40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0c4e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0c5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe3, char: \xe4, offset: 0x0c6a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0c78 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0c86 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x12, /* ...#..#. */ + 0x72, /* .###..#. */ + 0x9e, /* #..####. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0c94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ca2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0cb0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0cbe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0ccc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0cda */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0ce8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0cf6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0d04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x48, /* .#..#... */ + 0x48, /* .#..#... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0d12 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x28, /* ..#.#... */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0d20 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0d2e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0d3c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0d4a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0d58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0d66 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0d74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0d82 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0xbc, /* #.####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0d90 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0d9e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0dac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0dba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0dc8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0xfd, char: \xfe, offset: 0x0dd6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + + /* Index: 0xfe, char: \xff, offset: 0x0de4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ +}; + +const font_char_desc_t _fonts_terminus_8x14_iso8859_1_descriptors[] = { + { 0x08, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x08, 0x000e }, /* Index: 0x01, char: \x02 */ + { 0x08, 0x001c }, /* Index: 0x02, char: \x03 */ + { 0x08, 0x002a }, /* Index: 0x03, char: \x04 */ + { 0x08, 0x0038 }, /* Index: 0x04, char: \x05 */ + { 0x08, 0x0046 }, /* Index: 0x05, char: \x06 */ + { 0x08, 0x0054 }, /* Index: 0x06, char: \x07 */ + { 0x08, 0x0062 }, /* Index: 0x07, char: \x08 */ + { 0x08, 0x0070 }, /* Index: 0x08, char: \x09 */ + { 0x08, 0x007e }, /* Index: 0x09, char: \x0a */ + { 0x08, 0x008c }, /* Index: 0x0a, char: \x0b */ + { 0x08, 0x009a }, /* Index: 0x0b, char: \x0c */ + { 0x08, 0x00a8 }, /* Index: 0x0c, char: \x0d */ + { 0x08, 0x00b6 }, /* Index: 0x0d, char: \x0e */ + { 0x08, 0x00c4 }, /* Index: 0x0e, char: \x0f */ + { 0x08, 0x00d2 }, /* Index: 0x0f, char: \x10 */ + { 0x08, 0x00e0 }, /* Index: 0x10, char: \x11 */ + { 0x08, 0x00ee }, /* Index: 0x11, char: \x12 */ + { 0x08, 0x00fc }, /* Index: 0x12, char: \x13 */ + { 0x08, 0x010a }, /* Index: 0x13, char: \x14 */ + { 0x08, 0x0118 }, /* Index: 0x14, char: \x15 */ + { 0x08, 0x0126 }, /* Index: 0x15, char: \x16 */ + { 0x08, 0x0134 }, /* Index: 0x16, char: \x17 */ + { 0x08, 0x0142 }, /* Index: 0x17, char: \x18 */ + { 0x08, 0x0150 }, /* Index: 0x18, char: \x19 */ + { 0x08, 0x015e }, /* Index: 0x19, char: \x1a */ + { 0x08, 0x016c }, /* Index: 0x1a, char: \x1b */ + { 0x08, 0x017a }, /* Index: 0x1b, char: \x1c */ + { 0x08, 0x0188 }, /* Index: 0x1c, char: \x1d */ + { 0x08, 0x0196 }, /* Index: 0x1d, char: \x1e */ + { 0x08, 0x01a4 }, /* Index: 0x1e, char: \x1f */ + { 0x08, 0x01b2 }, /* Index: 0x1f, char: \x20 */ + { 0x08, 0x01c0 }, /* Index: 0x20, char: \x21 */ + { 0x08, 0x01ce }, /* Index: 0x21, char: \x22 */ + { 0x08, 0x01dc }, /* Index: 0x22, char: \x23 */ + { 0x08, 0x01ea }, /* Index: 0x23, char: \x24 */ + { 0x08, 0x01f8 }, /* Index: 0x24, char: \x25 */ + { 0x08, 0x0206 }, /* Index: 0x25, char: \x26 */ + { 0x08, 0x0214 }, /* Index: 0x26, char: \x27 */ + { 0x08, 0x0222 }, /* Index: 0x27, char: \x28 */ + { 0x08, 0x0230 }, /* Index: 0x28, char: \x29 */ + { 0x08, 0x023e }, /* Index: 0x29, char: \x2a */ + { 0x08, 0x024c }, /* Index: 0x2a, char: \x2b */ + { 0x08, 0x025a }, /* Index: 0x2b, char: \x2c */ + { 0x08, 0x0268 }, /* Index: 0x2c, char: \x2d */ + { 0x08, 0x0276 }, /* Index: 0x2d, char: \x2e */ + { 0x08, 0x0284 }, /* Index: 0x2e, char: \x2f */ + { 0x08, 0x0292 }, /* Index: 0x2f, char: \x30 */ + { 0x08, 0x02a0 }, /* Index: 0x30, char: \x31 */ + { 0x08, 0x02ae }, /* Index: 0x31, char: \x32 */ + { 0x08, 0x02bc }, /* Index: 0x32, char: \x33 */ + { 0x08, 0x02ca }, /* Index: 0x33, char: \x34 */ + { 0x08, 0x02d8 }, /* Index: 0x34, char: \x35 */ + { 0x08, 0x02e6 }, /* Index: 0x35, char: \x36 */ + { 0x08, 0x02f4 }, /* Index: 0x36, char: \x37 */ + { 0x08, 0x0302 }, /* Index: 0x37, char: \x38 */ + { 0x08, 0x0310 }, /* Index: 0x38, char: \x39 */ + { 0x08, 0x031e }, /* Index: 0x39, char: \x3a */ + { 0x08, 0x032c }, /* Index: 0x3a, char: \x3b */ + { 0x08, 0x033a }, /* Index: 0x3b, char: \x3c */ + { 0x08, 0x0348 }, /* Index: 0x3c, char: \x3d */ + { 0x08, 0x0356 }, /* Index: 0x3d, char: \x3e */ + { 0x08, 0x0364 }, /* Index: 0x3e, char: \x3f */ + { 0x08, 0x0372 }, /* Index: 0x3f, char: \x40 */ + { 0x08, 0x0380 }, /* Index: 0x40, char: \x41 */ + { 0x08, 0x038e }, /* Index: 0x41, char: \x42 */ + { 0x08, 0x039c }, /* Index: 0x42, char: \x43 */ + { 0x08, 0x03aa }, /* Index: 0x43, char: \x44 */ + { 0x08, 0x03b8 }, /* Index: 0x44, char: \x45 */ + { 0x08, 0x03c6 }, /* Index: 0x45, char: \x46 */ + { 0x08, 0x03d4 }, /* Index: 0x46, char: \x47 */ + { 0x08, 0x03e2 }, /* Index: 0x47, char: \x48 */ + { 0x08, 0x03f0 }, /* Index: 0x48, char: \x49 */ + { 0x08, 0x03fe }, /* Index: 0x49, char: \x4a */ + { 0x08, 0x040c }, /* Index: 0x4a, char: \x4b */ + { 0x08, 0x041a }, /* Index: 0x4b, char: \x4c */ + { 0x08, 0x0428 }, /* Index: 0x4c, char: \x4d */ + { 0x08, 0x0436 }, /* Index: 0x4d, char: \x4e */ + { 0x08, 0x0444 }, /* Index: 0x4e, char: \x4f */ + { 0x08, 0x0452 }, /* Index: 0x4f, char: \x50 */ + { 0x08, 0x0460 }, /* Index: 0x50, char: \x51 */ + { 0x08, 0x046e }, /* Index: 0x51, char: \x52 */ + { 0x08, 0x047c }, /* Index: 0x52, char: \x53 */ + { 0x08, 0x048a }, /* Index: 0x53, char: \x54 */ + { 0x08, 0x0498 }, /* Index: 0x54, char: \x55 */ + { 0x08, 0x04a6 }, /* Index: 0x55, char: \x56 */ + { 0x08, 0x04b4 }, /* Index: 0x56, char: \x57 */ + { 0x08, 0x04c2 }, /* Index: 0x57, char: \x58 */ + { 0x08, 0x04d0 }, /* Index: 0x58, char: \x59 */ + { 0x08, 0x04de }, /* Index: 0x59, char: \x5a */ + { 0x08, 0x04ec }, /* Index: 0x5a, char: \x5b */ + { 0x08, 0x04fa }, /* Index: 0x5b, char: \x5c */ + { 0x08, 0x0508 }, /* Index: 0x5c, char: \x5d */ + { 0x08, 0x0516 }, /* Index: 0x5d, char: \x5e */ + { 0x08, 0x0524 }, /* Index: 0x5e, char: \x5f */ + { 0x08, 0x0532 }, /* Index: 0x5f, char: \x60 */ + { 0x08, 0x0540 }, /* Index: 0x60, char: \x61 */ + { 0x08, 0x054e }, /* Index: 0x61, char: \x62 */ + { 0x08, 0x055c }, /* Index: 0x62, char: \x63 */ + { 0x08, 0x056a }, /* Index: 0x63, char: \x64 */ + { 0x08, 0x0578 }, /* Index: 0x64, char: \x65 */ + { 0x08, 0x0586 }, /* Index: 0x65, char: \x66 */ + { 0x08, 0x0594 }, /* Index: 0x66, char: \x67 */ + { 0x08, 0x05a2 }, /* Index: 0x67, char: \x68 */ + { 0x08, 0x05b0 }, /* Index: 0x68, char: \x69 */ + { 0x08, 0x05be }, /* Index: 0x69, char: \x6a */ + { 0x08, 0x05cc }, /* Index: 0x6a, char: \x6b */ + { 0x08, 0x05da }, /* Index: 0x6b, char: \x6c */ + { 0x08, 0x05e8 }, /* Index: 0x6c, char: \x6d */ + { 0x08, 0x05f6 }, /* Index: 0x6d, char: \x6e */ + { 0x08, 0x0604 }, /* Index: 0x6e, char: \x6f */ + { 0x08, 0x0612 }, /* Index: 0x6f, char: \x70 */ + { 0x08, 0x0620 }, /* Index: 0x70, char: \x71 */ + { 0x08, 0x062e }, /* Index: 0x71, char: \x72 */ + { 0x08, 0x063c }, /* Index: 0x72, char: \x73 */ + { 0x08, 0x064a }, /* Index: 0x73, char: \x74 */ + { 0x08, 0x0658 }, /* Index: 0x74, char: \x75 */ + { 0x08, 0x0666 }, /* Index: 0x75, char: \x76 */ + { 0x08, 0x0674 }, /* Index: 0x76, char: \x77 */ + { 0x08, 0x0682 }, /* Index: 0x77, char: \x78 */ + { 0x08, 0x0690 }, /* Index: 0x78, char: \x79 */ + { 0x08, 0x069e }, /* Index: 0x79, char: \x7a */ + { 0x08, 0x06ac }, /* Index: 0x7a, char: \x7b */ + { 0x08, 0x06ba }, /* Index: 0x7b, char: \x7c */ + { 0x08, 0x06c8 }, /* Index: 0x7c, char: \x7d */ + { 0x08, 0x06d6 }, /* Index: 0x7d, char: \x7e */ + { 0x08, 0x06e4 }, /* Index: 0x7e, char: \x7f */ + { 0x08, 0x06f2 }, /* Index: 0x7f, char: \x80 */ + { 0x08, 0x0700 }, /* Index: 0x80, char: \x81 */ + { 0x08, 0x070e }, /* Index: 0x81, char: \x82 */ + { 0x08, 0x071c }, /* Index: 0x82, char: \x83 */ + { 0x08, 0x072a }, /* Index: 0x83, char: \x84 */ + { 0x08, 0x0738 }, /* Index: 0x84, char: \x85 */ + { 0x08, 0x0746 }, /* Index: 0x85, char: \x86 */ + { 0x08, 0x0754 }, /* Index: 0x86, char: \x87 */ + { 0x08, 0x0762 }, /* Index: 0x87, char: \x88 */ + { 0x08, 0x0770 }, /* Index: 0x88, char: \x89 */ + { 0x08, 0x077e }, /* Index: 0x89, char: \x8a */ + { 0x08, 0x078c }, /* Index: 0x8a, char: \x8b */ + { 0x08, 0x079a }, /* Index: 0x8b, char: \x8c */ + { 0x08, 0x07a8 }, /* Index: 0x8c, char: \x8d */ + { 0x08, 0x07b6 }, /* Index: 0x8d, char: \x8e */ + { 0x08, 0x07c4 }, /* Index: 0x8e, char: \x8f */ + { 0x08, 0x07d2 }, /* Index: 0x8f, char: \x90 */ + { 0x08, 0x07e0 }, /* Index: 0x90, char: \x91 */ + { 0x08, 0x07ee }, /* Index: 0x91, char: \x92 */ + { 0x08, 0x07fc }, /* Index: 0x92, char: \x93 */ + { 0x08, 0x080a }, /* Index: 0x93, char: \x94 */ + { 0x08, 0x0818 }, /* Index: 0x94, char: \x95 */ + { 0x08, 0x0826 }, /* Index: 0x95, char: \x96 */ + { 0x08, 0x0834 }, /* Index: 0x96, char: \x97 */ + { 0x08, 0x0842 }, /* Index: 0x97, char: \x98 */ + { 0x08, 0x0850 }, /* Index: 0x98, char: \x99 */ + { 0x08, 0x085e }, /* Index: 0x99, char: \x9a */ + { 0x08, 0x086c }, /* Index: 0x9a, char: \x9b */ + { 0x08, 0x087a }, /* Index: 0x9b, char: \x9c */ + { 0x08, 0x0888 }, /* Index: 0x9c, char: \x9d */ + { 0x08, 0x0896 }, /* Index: 0x9d, char: \x9e */ + { 0x08, 0x08a4 }, /* Index: 0x9e, char: \x9f */ + { 0x08, 0x08b2 }, /* Index: 0x9f, char: \xa0 */ + { 0x08, 0x08c0 }, /* Index: 0xa0, char: \xa1 */ + { 0x08, 0x08ce }, /* Index: 0xa1, char: \xa2 */ + { 0x08, 0x08dc }, /* Index: 0xa2, char: \xa3 */ + { 0x08, 0x08ea }, /* Index: 0xa3, char: \xa4 */ + { 0x08, 0x08f8 }, /* Index: 0xa4, char: \xa5 */ + { 0x08, 0x0906 }, /* Index: 0xa5, char: \xa6 */ + { 0x08, 0x0914 }, /* Index: 0xa6, char: \xa7 */ + { 0x08, 0x0922 }, /* Index: 0xa7, char: \xa8 */ + { 0x08, 0x0930 }, /* Index: 0xa8, char: \xa9 */ + { 0x08, 0x093e }, /* Index: 0xa9, char: \xaa */ + { 0x08, 0x094c }, /* Index: 0xaa, char: \xab */ + { 0x08, 0x095a }, /* Index: 0xab, char: \xac */ + { 0x08, 0x0968 }, /* Index: 0xac, char: \xad */ + { 0x08, 0x0976 }, /* Index: 0xad, char: \xae */ + { 0x08, 0x0984 }, /* Index: 0xae, char: \xaf */ + { 0x08, 0x0992 }, /* Index: 0xaf, char: \xb0 */ + { 0x08, 0x09a0 }, /* Index: 0xb0, char: \xb1 */ + { 0x08, 0x09ae }, /* Index: 0xb1, char: \xb2 */ + { 0x08, 0x09bc }, /* Index: 0xb2, char: \xb3 */ + { 0x08, 0x09ca }, /* Index: 0xb3, char: \xb4 */ + { 0x08, 0x09d8 }, /* Index: 0xb4, char: \xb5 */ + { 0x08, 0x09e6 }, /* Index: 0xb5, char: \xb6 */ + { 0x08, 0x09f4 }, /* Index: 0xb6, char: \xb7 */ + { 0x08, 0x0a02 }, /* Index: 0xb7, char: \xb8 */ + { 0x08, 0x0a10 }, /* Index: 0xb8, char: \xb9 */ + { 0x08, 0x0a1e }, /* Index: 0xb9, char: \xba */ + { 0x08, 0x0a2c }, /* Index: 0xba, char: \xbb */ + { 0x08, 0x0a3a }, /* Index: 0xbb, char: \xbc */ + { 0x08, 0x0a48 }, /* Index: 0xbc, char: \xbd */ + { 0x08, 0x0a56 }, /* Index: 0xbd, char: \xbe */ + { 0x08, 0x0a64 }, /* Index: 0xbe, char: \xbf */ + { 0x08, 0x0a72 }, /* Index: 0xbf, char: \xc0 */ + { 0x08, 0x0a80 }, /* Index: 0xc0, char: \xc1 */ + { 0x08, 0x0a8e }, /* Index: 0xc1, char: \xc2 */ + { 0x08, 0x0a9c }, /* Index: 0xc2, char: \xc3 */ + { 0x08, 0x0aaa }, /* Index: 0xc3, char: \xc4 */ + { 0x08, 0x0ab8 }, /* Index: 0xc4, char: \xc5 */ + { 0x08, 0x0ac6 }, /* Index: 0xc5, char: \xc6 */ + { 0x08, 0x0ad4 }, /* Index: 0xc6, char: \xc7 */ + { 0x08, 0x0ae2 }, /* Index: 0xc7, char: \xc8 */ + { 0x08, 0x0af0 }, /* Index: 0xc8, char: \xc9 */ + { 0x08, 0x0afe }, /* Index: 0xc9, char: \xca */ + { 0x08, 0x0b0c }, /* Index: 0xca, char: \xcb */ + { 0x08, 0x0b1a }, /* Index: 0xcb, char: \xcc */ + { 0x08, 0x0b28 }, /* Index: 0xcc, char: \xcd */ + { 0x08, 0x0b36 }, /* Index: 0xcd, char: \xce */ + { 0x08, 0x0b44 }, /* Index: 0xce, char: \xcf */ + { 0x08, 0x0b52 }, /* Index: 0xcf, char: \xd0 */ + { 0x08, 0x0b60 }, /* Index: 0xd0, char: \xd1 */ + { 0x08, 0x0b6e }, /* Index: 0xd1, char: \xd2 */ + { 0x08, 0x0b7c }, /* Index: 0xd2, char: \xd3 */ + { 0x08, 0x0b8a }, /* Index: 0xd3, char: \xd4 */ + { 0x08, 0x0b98 }, /* Index: 0xd4, char: \xd5 */ + { 0x08, 0x0ba6 }, /* Index: 0xd5, char: \xd6 */ + { 0x08, 0x0bb4 }, /* Index: 0xd6, char: \xd7 */ + { 0x08, 0x0bc2 }, /* Index: 0xd7, char: \xd8 */ + { 0x08, 0x0bd0 }, /* Index: 0xd8, char: \xd9 */ + { 0x08, 0x0bde }, /* Index: 0xd9, char: \xda */ + { 0x08, 0x0bec }, /* Index: 0xda, char: \xdb */ + { 0x08, 0x0bfa }, /* Index: 0xdb, char: \xdc */ + { 0x08, 0x0c08 }, /* Index: 0xdc, char: \xdd */ + { 0x08, 0x0c16 }, /* Index: 0xdd, char: \xde */ + { 0x08, 0x0c24 }, /* Index: 0xde, char: \xdf */ + { 0x08, 0x0c32 }, /* Index: 0xdf, char: \xe0 */ + { 0x08, 0x0c40 }, /* Index: 0xe0, char: \xe1 */ + { 0x08, 0x0c4e }, /* Index: 0xe1, char: \xe2 */ + { 0x08, 0x0c5c }, /* Index: 0xe2, char: \xe3 */ + { 0x08, 0x0c6a }, /* Index: 0xe3, char: \xe4 */ + { 0x08, 0x0c78 }, /* Index: 0xe4, char: \xe5 */ + { 0x08, 0x0c86 }, /* Index: 0xe5, char: \xe6 */ + { 0x08, 0x0c94 }, /* Index: 0xe6, char: \xe7 */ + { 0x08, 0x0ca2 }, /* Index: 0xe7, char: \xe8 */ + { 0x08, 0x0cb0 }, /* Index: 0xe8, char: \xe9 */ + { 0x08, 0x0cbe }, /* Index: 0xe9, char: \xea */ + { 0x08, 0x0ccc }, /* Index: 0xea, char: \xeb */ + { 0x08, 0x0cda }, /* Index: 0xeb, char: \xec */ + { 0x08, 0x0ce8 }, /* Index: 0xec, char: \xed */ + { 0x08, 0x0cf6 }, /* Index: 0xed, char: \xee */ + { 0x08, 0x0d04 }, /* Index: 0xee, char: \xef */ + { 0x08, 0x0d12 }, /* Index: 0xef, char: \xf0 */ + { 0x08, 0x0d20 }, /* Index: 0xf0, char: \xf1 */ + { 0x08, 0x0d2e }, /* Index: 0xf1, char: \xf2 */ + { 0x08, 0x0d3c }, /* Index: 0xf2, char: \xf3 */ + { 0x08, 0x0d4a }, /* Index: 0xf3, char: \xf4 */ + { 0x08, 0x0d58 }, /* Index: 0xf4, char: \xf5 */ + { 0x08, 0x0d66 }, /* Index: 0xf5, char: \xf6 */ + { 0x08, 0x0d74 }, /* Index: 0xf6, char: \xf7 */ + { 0x08, 0x0d82 }, /* Index: 0xf7, char: \xf8 */ + { 0x08, 0x0d90 }, /* Index: 0xf8, char: \xf9 */ + { 0x08, 0x0d9e }, /* Index: 0xf9, char: \xfa */ + { 0x08, 0x0dac }, /* Index: 0xfa, char: \xfb */ + { 0x08, 0x0dba }, /* Index: 0xfb, char: \xfc */ + { 0x08, 0x0dc8 }, /* Index: 0xfc, char: \xfd */ + { 0x08, 0x0dd6 }, /* Index: 0xfd, char: \xfe */ + { 0x08, 0x0de4 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_8x14_iso8859_1_info = +{ + .height = 14, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_8x14_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_8x14_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_8X14_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_8x14_koi8_r.h b/extras/fonts/data/font_terminus_8x14_koi8_r.h new file mode 100644 index 0000000..b71ffcb --- /dev/null +++ b/extras/fonts/data/font_terminus_8x14_koi8_r.h @@ -0,0 +1,4369 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus + * Size: 8x14 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_8X14_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_8X14_KOI8_R_H_ + +static const uint8_t _fonts_terminus_8x14_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0xfe, /* #######. */ + 0x7c, /* .#####.. */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000e */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x001c */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0xf8, /* #####... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x002a */ + 0xf8, /* #####... */ + 0x80, /* #....... */ + 0xe0, /* ###..... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1c, /* ...###.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0038 */ + 0x70, /* .###.... */ + 0x88, /* #...#... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x88, /* #...#... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x11, /* ...#...# */ + 0x11, /* ...#...# */ + 0x1e, /* ...####. */ + 0x12, /* ...#..#. */ + 0x11, /* ...#...# */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x0046 */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0x80, /* #....... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1c, /* ...###.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0054 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0062 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0070 */ + 0x88, /* #...#... */ + 0xc8, /* ##..#... */ + 0xa8, /* #.#.#... */ + 0x98, /* #..##... */ + 0x88, /* #...#... */ + 0x88, /* #...#... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x007e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x008c */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x009a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0c, char: \x0d, offset: 0x00a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0d, char: \x0e, offset: 0x00b6 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00c4 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x0f, char: \x10, offset: 0x00d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x010a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x0118 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x15, char: \x16, offset: 0x0126 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x16, char: \x17, offset: 0x0134 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0142 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x18, char: \x19, offset: 0x0150 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x19, char: \x1a, offset: 0x015e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x016c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x017a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0188 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x7e, /* .######. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0196 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x78, /* .####... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x22, /* ..#...#. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x01b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x01c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x01ce */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x01dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x7e, /* .######. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x7e, /* .######. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01ea */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x92, /* #..#..#. */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x7c, /* .#####.. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x24, char: \x25, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x64, /* .##..#.. */ + 0x94, /* #..#.#.. */ + 0x68, /* .##.#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x2c, /* ..#.##.. */ + 0x52, /* .#.#..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x0206 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x4a, /* .#..#.#. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x3a, /* ..###.#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x0214 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x0230 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x023e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x025a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0276 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0284 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0292 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x18, /* ...##... */ + 0x28, /* ..#.#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x02ae */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x02bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x1c, /* ...###.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x02ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x06, /* .....##. */ + 0x0a, /* ....#.#. */ + 0x12, /* ...#..#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x02d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x02e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1c, /* ...###.. */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0302 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x0310 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x031e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x032c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x033a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0356 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0364 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x0372 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x82, /* #.....#. */ + 0x9e, /* #..####. */ + 0xa2, /* #.#...#. */ + 0xa2, /* #.#...#. */ + 0xa2, /* #.#...#. */ + 0xa6, /* #.#..##. */ + 0x9a, /* #..##.#. */ + 0x80, /* #....... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0380 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x038e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x03aa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x03b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x03c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x03d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x4e, /* .#..###. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x03e2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x03fe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x040c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x041a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0428 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xaa, /* #.#.#.#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0436 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x62, /* .##...#. */ + 0x52, /* .#.#..#. */ + 0x4a, /* .#..#.#. */ + 0x46, /* .#...##. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x0452 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x0460 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x4a, /* .#..#.#. */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x046e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x047c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x048a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x04a6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x04b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0xaa, /* #.#.#.#. */ + 0xc6, /* ##...##. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x04c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x04d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x28, /* ..#.#... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x04de */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x04ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x04fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x20, /* ..#..... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0508 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0516 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x28, /* ..#.#... */ + 0x44, /* .#...#.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0524 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0532 */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x054e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x055c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x056a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x0578 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x0586 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0x67, char: \x68, offset: 0x05a2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x05b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x05be */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x38, /* ..###... */ + + /* Index: 0x6a, char: \x6b, offset: 0x05cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x05da */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x05f6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0604 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0612 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + + /* Index: 0x70, char: \x71, offset: 0x0620 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + + /* Index: 0x71, char: \x72, offset: 0x062e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x5e, /* .#.####. */ + 0x60, /* .##..... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x063c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x064a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x0e, /* ....###. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0658 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x0666 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0674 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0682 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x0690 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0x79, char: \x7a, offset: 0x069e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x06ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x06ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x06c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x08, /* ....#... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x06d6 */ + 0x00, /* ........ */ + 0x62, /* .##...#. */ + 0x92, /* #..#..#. */ + 0x8c, /* #...##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x06f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0700 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x81, char: \x82, offset: 0x070e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x82, char: \x83, offset: 0x071c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x83, char: \x84, offset: 0x072a */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0738 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x0746 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x86, char: \x87, offset: 0x0754 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x87, char: \x88, offset: 0x0762 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x88, char: \x89, offset: 0x0770 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x077e */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x8a, char: \x8b, offset: 0x078c */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x079a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + + /* Index: 0x8c, char: \x8d, offset: 0x07a8 */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + + /* Index: 0x8d, char: \x8e, offset: 0x07b6 */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + + /* Index: 0x8e, char: \x8f, offset: 0x07c4 */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + + /* Index: 0x8f, char: \x90, offset: 0x07d2 */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + + /* Index: 0x90, char: \x91, offset: 0x07e0 */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x91, char: \x92, offset: 0x07ee */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + + /* Index: 0x92, char: \x93, offset: 0x07fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x12, /* ...#..#. */ + 0x12, /* ...#..#. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x93, char: \x94, offset: 0x080a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x3c, /* ..####.. */ + 0x3c, /* ..####.. */ + 0x3c, /* ..####.. */ + 0x3c, /* ..####.. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x0818 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x0826 */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x04, /* .....#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x24, /* ..#..#.. */ + 0x14, /* ...#.#.. */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0834 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x32, /* ..##..#. */ + 0x4c, /* .#..##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0842 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0850 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x20, /* ..#..... */ + 0x10, /* ...#.... */ + 0x08, /* ....#... */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x20, /* ..#..... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x085e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x086c */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x90, /* #..#.... */ + 0x90, /* #..#.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x087a */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0888 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x04, /* .....#.. */ + 0x08, /* ....#... */ + 0x10, /* ...#.... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x0896 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x08a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x08b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x08c0 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xa1, char: \xa2, offset: 0x08ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xa2, char: \xa3, offset: 0x08dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x08ea */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xa4, char: \xa5, offset: 0x08f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x20, /* ..#..... */ + 0x2f, /* ..#.#### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xa5, char: \xa6, offset: 0x0906 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xa6, char: \xa7, offset: 0x0914 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xa7, char: \xa8, offset: 0x0922 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0x08, /* ....#... */ + 0xe8, /* ###.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xa8, char: \xa9, offset: 0x0930 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x093e */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x3f, /* ..###### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x094c */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x2f, /* ..#.#### */ + 0x20, /* ..#..... */ + 0x3f, /* ..###### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x095a */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0968 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x0976 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xe8, /* ###.#... */ + 0x08, /* ....#... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0984 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x1f, /* ...##### */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xaf, char: \xb0, offset: 0x0992 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x2f, /* ..#.#### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb0, char: \xb1, offset: 0x09a0 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x2f, /* ..#.#### */ + 0x20, /* ..#..... */ + 0x2f, /* ..#.#### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb1, char: \xb2, offset: 0x09ae */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0xf0, /* ####.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xb2, char: \xb3, offset: 0x09bc */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x09ca */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xe8, /* ###.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb4, char: \xb5, offset: 0x09d8 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xe8, /* ###.#... */ + 0x08, /* ....#... */ + 0xe8, /* ###.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb5, char: \xb6, offset: 0x09e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xb6, char: \xb7, offset: 0x09f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb7, char: \xb8, offset: 0x0a02 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xef, /* ###.#### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xb8, char: \xb9, offset: 0x0a10 */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x0a1e */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x0a2c */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xef, /* ###.#### */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x0a3a */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0xff, /* ######## */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xbc, char: \xbd, offset: 0x0a48 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xff, /* ######## */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xbd, char: \xbe, offset: 0x0a56 */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0xef, /* ###.#### */ + 0x00, /* ........ */ + 0xef, /* ###.#### */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + 0x28, /* ..#.#... */ + + /* Index: 0xbe, char: \xbf, offset: 0x0a64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0x99, /* #..##..# */ + 0xa5, /* #.#..#.# */ + 0xa1, /* #.#....# */ + 0xa5, /* #.#..#.# */ + 0x99, /* #..##..# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x0a72 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x8c, /* #...##.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0xf2, /* ####..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x8c, /* #...##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0a80 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x02, /* ......#. */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x0a8e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0a9c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3f, /* ..###### */ + 0x01, /* .......# */ + 0x01, /* .......# */ + + /* Index: 0xc3, char: \xc4, offset: 0x0aaa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0xc4, char: \xc5, offset: 0x0ab8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x0ac6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc7, char: \xc8, offset: 0x0ae2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0af0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x0afe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0b0c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x70, /* .###.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0b1a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0b28 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xaa, /* #.#.#.#. */ + 0x92, /* #..#..#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x0b36 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x0b44 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x0b52 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x0b60 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x12, /* ...#..#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x0b6e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + + /* Index: 0xd2, char: \xd3, offset: 0x0b7c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x0b8a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x0b98 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + + /* Index: 0xd5, char: \xd6, offset: 0x0ba6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x54, /* .#.#.#.. */ + 0x38, /* ..###... */ + 0x54, /* .#.#.#.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0bb4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0bc2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0bd0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0xf2, /* ####..#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0xf2, /* ####..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0bde */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x1c, /* ...###.. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0bec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0bfa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x1e, /* ...####. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0c08 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7f, /* .####### */ + 0x01, /* .......# */ + 0x01, /* .......# */ + + /* Index: 0xdd, char: \xde, offset: 0x0c16 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0c24 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x20, /* ..#..... */ + 0x3c, /* ..####.. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0c32 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x8c, /* #...##.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0xf2, /* ####..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x8c, /* #...##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0c40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0c4e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0c5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3f, /* ..###### */ + 0x01, /* .......# */ + 0x01, /* .......# */ + + /* Index: 0xe3, char: \xe4, offset: 0x0c6a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0x44, /* .#...#.. */ + 0xfe, /* #######. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0c78 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x78, /* .####... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0c86 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0c94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ca2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x24, /* ..#..#.. */ + 0x24, /* ..#..#.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0cb0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0cbe */ + 0x24, /* ..#..#.. */ + 0x18, /* ...##... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x46, /* .#...##. */ + 0x4a, /* .#..#.#. */ + 0x52, /* .#.#..#. */ + 0x62, /* .##...#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0ccc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x44, /* .#...#.. */ + 0x48, /* .#..#... */ + 0x50, /* .#.#.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x50, /* .#.#.... */ + 0x48, /* .#..#... */ + 0x44, /* .#...#.. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0cda */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x12, /* ...#..#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0ce8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xaa, /* #.#.#.#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0cf6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0d04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0d12 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0d20 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x0a, /* ....#.#. */ + 0x12, /* ...#..#. */ + 0x22, /* ..#...#. */ + 0x42, /* .#....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0d2e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0d3c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0d4a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0d58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0d66 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x54, /* .#.#.#.. */ + 0x38, /* ..###... */ + 0x54, /* .#.#.#.. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0d74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0d82 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0d90 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0x82, /* #.....#. */ + 0xf2, /* ####..#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0x8a, /* #...#.#. */ + 0xf2, /* ####..#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0d9e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x1c, /* ...###.. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0dac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0dba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x42, /* .#....#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x1e, /* ...####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x42, /* .#....#. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0dc8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x92, /* #..#..#. */ + 0x7f, /* .####### */ + 0x01, /* .......# */ + 0x01, /* .......# */ + + /* Index: 0xfd, char: \xfe, offset: 0x0dd6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x3e, /* ..#####. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x02, /* ......#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfe, char: \xff, offset: 0x0de4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0x40, /* .#...... */ + 0x40, /* .#...... */ + 0x7c, /* .#####.. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x42, /* .#....#. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ +}; + +const font_char_desc_t _fonts_terminus_8x14_koi8_r_descriptors[] = { + { 0x08, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x08, 0x000e }, /* Index: 0x01, char: \x02 */ + { 0x08, 0x001c }, /* Index: 0x02, char: \x03 */ + { 0x08, 0x002a }, /* Index: 0x03, char: \x04 */ + { 0x08, 0x0038 }, /* Index: 0x04, char: \x05 */ + { 0x08, 0x0046 }, /* Index: 0x05, char: \x06 */ + { 0x08, 0x0054 }, /* Index: 0x06, char: \x07 */ + { 0x08, 0x0062 }, /* Index: 0x07, char: \x08 */ + { 0x08, 0x0070 }, /* Index: 0x08, char: \x09 */ + { 0x08, 0x007e }, /* Index: 0x09, char: \x0a */ + { 0x08, 0x008c }, /* Index: 0x0a, char: \x0b */ + { 0x08, 0x009a }, /* Index: 0x0b, char: \x0c */ + { 0x08, 0x00a8 }, /* Index: 0x0c, char: \x0d */ + { 0x08, 0x00b6 }, /* Index: 0x0d, char: \x0e */ + { 0x08, 0x00c4 }, /* Index: 0x0e, char: \x0f */ + { 0x08, 0x00d2 }, /* Index: 0x0f, char: \x10 */ + { 0x08, 0x00e0 }, /* Index: 0x10, char: \x11 */ + { 0x08, 0x00ee }, /* Index: 0x11, char: \x12 */ + { 0x08, 0x00fc }, /* Index: 0x12, char: \x13 */ + { 0x08, 0x010a }, /* Index: 0x13, char: \x14 */ + { 0x08, 0x0118 }, /* Index: 0x14, char: \x15 */ + { 0x08, 0x0126 }, /* Index: 0x15, char: \x16 */ + { 0x08, 0x0134 }, /* Index: 0x16, char: \x17 */ + { 0x08, 0x0142 }, /* Index: 0x17, char: \x18 */ + { 0x08, 0x0150 }, /* Index: 0x18, char: \x19 */ + { 0x08, 0x015e }, /* Index: 0x19, char: \x1a */ + { 0x08, 0x016c }, /* Index: 0x1a, char: \x1b */ + { 0x08, 0x017a }, /* Index: 0x1b, char: \x1c */ + { 0x08, 0x0188 }, /* Index: 0x1c, char: \x1d */ + { 0x08, 0x0196 }, /* Index: 0x1d, char: \x1e */ + { 0x08, 0x01a4 }, /* Index: 0x1e, char: \x1f */ + { 0x08, 0x01b2 }, /* Index: 0x1f, char: \x20 */ + { 0x08, 0x01c0 }, /* Index: 0x20, char: \x21 */ + { 0x08, 0x01ce }, /* Index: 0x21, char: \x22 */ + { 0x08, 0x01dc }, /* Index: 0x22, char: \x23 */ + { 0x08, 0x01ea }, /* Index: 0x23, char: \x24 */ + { 0x08, 0x01f8 }, /* Index: 0x24, char: \x25 */ + { 0x08, 0x0206 }, /* Index: 0x25, char: \x26 */ + { 0x08, 0x0214 }, /* Index: 0x26, char: \x27 */ + { 0x08, 0x0222 }, /* Index: 0x27, char: \x28 */ + { 0x08, 0x0230 }, /* Index: 0x28, char: \x29 */ + { 0x08, 0x023e }, /* Index: 0x29, char: \x2a */ + { 0x08, 0x024c }, /* Index: 0x2a, char: \x2b */ + { 0x08, 0x025a }, /* Index: 0x2b, char: \x2c */ + { 0x08, 0x0268 }, /* Index: 0x2c, char: \x2d */ + { 0x08, 0x0276 }, /* Index: 0x2d, char: \x2e */ + { 0x08, 0x0284 }, /* Index: 0x2e, char: \x2f */ + { 0x08, 0x0292 }, /* Index: 0x2f, char: \x30 */ + { 0x08, 0x02a0 }, /* Index: 0x30, char: \x31 */ + { 0x08, 0x02ae }, /* Index: 0x31, char: \x32 */ + { 0x08, 0x02bc }, /* Index: 0x32, char: \x33 */ + { 0x08, 0x02ca }, /* Index: 0x33, char: \x34 */ + { 0x08, 0x02d8 }, /* Index: 0x34, char: \x35 */ + { 0x08, 0x02e6 }, /* Index: 0x35, char: \x36 */ + { 0x08, 0x02f4 }, /* Index: 0x36, char: \x37 */ + { 0x08, 0x0302 }, /* Index: 0x37, char: \x38 */ + { 0x08, 0x0310 }, /* Index: 0x38, char: \x39 */ + { 0x08, 0x031e }, /* Index: 0x39, char: \x3a */ + { 0x08, 0x032c }, /* Index: 0x3a, char: \x3b */ + { 0x08, 0x033a }, /* Index: 0x3b, char: \x3c */ + { 0x08, 0x0348 }, /* Index: 0x3c, char: \x3d */ + { 0x08, 0x0356 }, /* Index: 0x3d, char: \x3e */ + { 0x08, 0x0364 }, /* Index: 0x3e, char: \x3f */ + { 0x08, 0x0372 }, /* Index: 0x3f, char: \x40 */ + { 0x08, 0x0380 }, /* Index: 0x40, char: \x41 */ + { 0x08, 0x038e }, /* Index: 0x41, char: \x42 */ + { 0x08, 0x039c }, /* Index: 0x42, char: \x43 */ + { 0x08, 0x03aa }, /* Index: 0x43, char: \x44 */ + { 0x08, 0x03b8 }, /* Index: 0x44, char: \x45 */ + { 0x08, 0x03c6 }, /* Index: 0x45, char: \x46 */ + { 0x08, 0x03d4 }, /* Index: 0x46, char: \x47 */ + { 0x08, 0x03e2 }, /* Index: 0x47, char: \x48 */ + { 0x08, 0x03f0 }, /* Index: 0x48, char: \x49 */ + { 0x08, 0x03fe }, /* Index: 0x49, char: \x4a */ + { 0x08, 0x040c }, /* Index: 0x4a, char: \x4b */ + { 0x08, 0x041a }, /* Index: 0x4b, char: \x4c */ + { 0x08, 0x0428 }, /* Index: 0x4c, char: \x4d */ + { 0x08, 0x0436 }, /* Index: 0x4d, char: \x4e */ + { 0x08, 0x0444 }, /* Index: 0x4e, char: \x4f */ + { 0x08, 0x0452 }, /* Index: 0x4f, char: \x50 */ + { 0x08, 0x0460 }, /* Index: 0x50, char: \x51 */ + { 0x08, 0x046e }, /* Index: 0x51, char: \x52 */ + { 0x08, 0x047c }, /* Index: 0x52, char: \x53 */ + { 0x08, 0x048a }, /* Index: 0x53, char: \x54 */ + { 0x08, 0x0498 }, /* Index: 0x54, char: \x55 */ + { 0x08, 0x04a6 }, /* Index: 0x55, char: \x56 */ + { 0x08, 0x04b4 }, /* Index: 0x56, char: \x57 */ + { 0x08, 0x04c2 }, /* Index: 0x57, char: \x58 */ + { 0x08, 0x04d0 }, /* Index: 0x58, char: \x59 */ + { 0x08, 0x04de }, /* Index: 0x59, char: \x5a */ + { 0x08, 0x04ec }, /* Index: 0x5a, char: \x5b */ + { 0x08, 0x04fa }, /* Index: 0x5b, char: \x5c */ + { 0x08, 0x0508 }, /* Index: 0x5c, char: \x5d */ + { 0x08, 0x0516 }, /* Index: 0x5d, char: \x5e */ + { 0x08, 0x0524 }, /* Index: 0x5e, char: \x5f */ + { 0x08, 0x0532 }, /* Index: 0x5f, char: \x60 */ + { 0x08, 0x0540 }, /* Index: 0x60, char: \x61 */ + { 0x08, 0x054e }, /* Index: 0x61, char: \x62 */ + { 0x08, 0x055c }, /* Index: 0x62, char: \x63 */ + { 0x08, 0x056a }, /* Index: 0x63, char: \x64 */ + { 0x08, 0x0578 }, /* Index: 0x64, char: \x65 */ + { 0x08, 0x0586 }, /* Index: 0x65, char: \x66 */ + { 0x08, 0x0594 }, /* Index: 0x66, char: \x67 */ + { 0x08, 0x05a2 }, /* Index: 0x67, char: \x68 */ + { 0x08, 0x05b0 }, /* Index: 0x68, char: \x69 */ + { 0x08, 0x05be }, /* Index: 0x69, char: \x6a */ + { 0x08, 0x05cc }, /* Index: 0x6a, char: \x6b */ + { 0x08, 0x05da }, /* Index: 0x6b, char: \x6c */ + { 0x08, 0x05e8 }, /* Index: 0x6c, char: \x6d */ + { 0x08, 0x05f6 }, /* Index: 0x6d, char: \x6e */ + { 0x08, 0x0604 }, /* Index: 0x6e, char: \x6f */ + { 0x08, 0x0612 }, /* Index: 0x6f, char: \x70 */ + { 0x08, 0x0620 }, /* Index: 0x70, char: \x71 */ + { 0x08, 0x062e }, /* Index: 0x71, char: \x72 */ + { 0x08, 0x063c }, /* Index: 0x72, char: \x73 */ + { 0x08, 0x064a }, /* Index: 0x73, char: \x74 */ + { 0x08, 0x0658 }, /* Index: 0x74, char: \x75 */ + { 0x08, 0x0666 }, /* Index: 0x75, char: \x76 */ + { 0x08, 0x0674 }, /* Index: 0x76, char: \x77 */ + { 0x08, 0x0682 }, /* Index: 0x77, char: \x78 */ + { 0x08, 0x0690 }, /* Index: 0x78, char: \x79 */ + { 0x08, 0x069e }, /* Index: 0x79, char: \x7a */ + { 0x08, 0x06ac }, /* Index: 0x7a, char: \x7b */ + { 0x08, 0x06ba }, /* Index: 0x7b, char: \x7c */ + { 0x08, 0x06c8 }, /* Index: 0x7c, char: \x7d */ + { 0x08, 0x06d6 }, /* Index: 0x7d, char: \x7e */ + { 0x08, 0x06e4 }, /* Index: 0x7e, char: \x7f */ + { 0x08, 0x06f2 }, /* Index: 0x7f, char: \x80 */ + { 0x08, 0x0700 }, /* Index: 0x80, char: \x81 */ + { 0x08, 0x070e }, /* Index: 0x81, char: \x82 */ + { 0x08, 0x071c }, /* Index: 0x82, char: \x83 */ + { 0x08, 0x072a }, /* Index: 0x83, char: \x84 */ + { 0x08, 0x0738 }, /* Index: 0x84, char: \x85 */ + { 0x08, 0x0746 }, /* Index: 0x85, char: \x86 */ + { 0x08, 0x0754 }, /* Index: 0x86, char: \x87 */ + { 0x08, 0x0762 }, /* Index: 0x87, char: \x88 */ + { 0x08, 0x0770 }, /* Index: 0x88, char: \x89 */ + { 0x08, 0x077e }, /* Index: 0x89, char: \x8a */ + { 0x08, 0x078c }, /* Index: 0x8a, char: \x8b */ + { 0x08, 0x079a }, /* Index: 0x8b, char: \x8c */ + { 0x08, 0x07a8 }, /* Index: 0x8c, char: \x8d */ + { 0x08, 0x07b6 }, /* Index: 0x8d, char: \x8e */ + { 0x08, 0x07c4 }, /* Index: 0x8e, char: \x8f */ + { 0x08, 0x07d2 }, /* Index: 0x8f, char: \x90 */ + { 0x08, 0x07e0 }, /* Index: 0x90, char: \x91 */ + { 0x08, 0x07ee }, /* Index: 0x91, char: \x92 */ + { 0x08, 0x07fc }, /* Index: 0x92, char: \x93 */ + { 0x08, 0x080a }, /* Index: 0x93, char: \x94 */ + { 0x08, 0x0818 }, /* Index: 0x94, char: \x95 */ + { 0x08, 0x0826 }, /* Index: 0x95, char: \x96 */ + { 0x08, 0x0834 }, /* Index: 0x96, char: \x97 */ + { 0x08, 0x0842 }, /* Index: 0x97, char: \x98 */ + { 0x08, 0x0850 }, /* Index: 0x98, char: \x99 */ + { 0x08, 0x085e }, /* Index: 0x99, char: \x9a */ + { 0x08, 0x086c }, /* Index: 0x9a, char: \x9b */ + { 0x08, 0x087a }, /* Index: 0x9b, char: \x9c */ + { 0x08, 0x0888 }, /* Index: 0x9c, char: \x9d */ + { 0x08, 0x0896 }, /* Index: 0x9d, char: \x9e */ + { 0x08, 0x08a4 }, /* Index: 0x9e, char: \x9f */ + { 0x08, 0x08b2 }, /* Index: 0x9f, char: \xa0 */ + { 0x08, 0x08c0 }, /* Index: 0xa0, char: \xa1 */ + { 0x08, 0x08ce }, /* Index: 0xa1, char: \xa2 */ + { 0x08, 0x08dc }, /* Index: 0xa2, char: \xa3 */ + { 0x08, 0x08ea }, /* Index: 0xa3, char: \xa4 */ + { 0x08, 0x08f8 }, /* Index: 0xa4, char: \xa5 */ + { 0x08, 0x0906 }, /* Index: 0xa5, char: \xa6 */ + { 0x08, 0x0914 }, /* Index: 0xa6, char: \xa7 */ + { 0x08, 0x0922 }, /* Index: 0xa7, char: \xa8 */ + { 0x08, 0x0930 }, /* Index: 0xa8, char: \xa9 */ + { 0x08, 0x093e }, /* Index: 0xa9, char: \xaa */ + { 0x08, 0x094c }, /* Index: 0xaa, char: \xab */ + { 0x08, 0x095a }, /* Index: 0xab, char: \xac */ + { 0x08, 0x0968 }, /* Index: 0xac, char: \xad */ + { 0x08, 0x0976 }, /* Index: 0xad, char: \xae */ + { 0x08, 0x0984 }, /* Index: 0xae, char: \xaf */ + { 0x08, 0x0992 }, /* Index: 0xaf, char: \xb0 */ + { 0x08, 0x09a0 }, /* Index: 0xb0, char: \xb1 */ + { 0x08, 0x09ae }, /* Index: 0xb1, char: \xb2 */ + { 0x08, 0x09bc }, /* Index: 0xb2, char: \xb3 */ + { 0x08, 0x09ca }, /* Index: 0xb3, char: \xb4 */ + { 0x08, 0x09d8 }, /* Index: 0xb4, char: \xb5 */ + { 0x08, 0x09e6 }, /* Index: 0xb5, char: \xb6 */ + { 0x08, 0x09f4 }, /* Index: 0xb6, char: \xb7 */ + { 0x08, 0x0a02 }, /* Index: 0xb7, char: \xb8 */ + { 0x08, 0x0a10 }, /* Index: 0xb8, char: \xb9 */ + { 0x08, 0x0a1e }, /* Index: 0xb9, char: \xba */ + { 0x08, 0x0a2c }, /* Index: 0xba, char: \xbb */ + { 0x08, 0x0a3a }, /* Index: 0xbb, char: \xbc */ + { 0x08, 0x0a48 }, /* Index: 0xbc, char: \xbd */ + { 0x08, 0x0a56 }, /* Index: 0xbd, char: \xbe */ + { 0x08, 0x0a64 }, /* Index: 0xbe, char: \xbf */ + { 0x08, 0x0a72 }, /* Index: 0xbf, char: \xc0 */ + { 0x08, 0x0a80 }, /* Index: 0xc0, char: \xc1 */ + { 0x08, 0x0a8e }, /* Index: 0xc1, char: \xc2 */ + { 0x08, 0x0a9c }, /* Index: 0xc2, char: \xc3 */ + { 0x08, 0x0aaa }, /* Index: 0xc3, char: \xc4 */ + { 0x08, 0x0ab8 }, /* Index: 0xc4, char: \xc5 */ + { 0x08, 0x0ac6 }, /* Index: 0xc5, char: \xc6 */ + { 0x08, 0x0ad4 }, /* Index: 0xc6, char: \xc7 */ + { 0x08, 0x0ae2 }, /* Index: 0xc7, char: \xc8 */ + { 0x08, 0x0af0 }, /* Index: 0xc8, char: \xc9 */ + { 0x08, 0x0afe }, /* Index: 0xc9, char: \xca */ + { 0x08, 0x0b0c }, /* Index: 0xca, char: \xcb */ + { 0x08, 0x0b1a }, /* Index: 0xcb, char: \xcc */ + { 0x08, 0x0b28 }, /* Index: 0xcc, char: \xcd */ + { 0x08, 0x0b36 }, /* Index: 0xcd, char: \xce */ + { 0x08, 0x0b44 }, /* Index: 0xce, char: \xcf */ + { 0x08, 0x0b52 }, /* Index: 0xcf, char: \xd0 */ + { 0x08, 0x0b60 }, /* Index: 0xd0, char: \xd1 */ + { 0x08, 0x0b6e }, /* Index: 0xd1, char: \xd2 */ + { 0x08, 0x0b7c }, /* Index: 0xd2, char: \xd3 */ + { 0x08, 0x0b8a }, /* Index: 0xd3, char: \xd4 */ + { 0x08, 0x0b98 }, /* Index: 0xd4, char: \xd5 */ + { 0x08, 0x0ba6 }, /* Index: 0xd5, char: \xd6 */ + { 0x08, 0x0bb4 }, /* Index: 0xd6, char: \xd7 */ + { 0x08, 0x0bc2 }, /* Index: 0xd7, char: \xd8 */ + { 0x08, 0x0bd0 }, /* Index: 0xd8, char: \xd9 */ + { 0x08, 0x0bde }, /* Index: 0xd9, char: \xda */ + { 0x08, 0x0bec }, /* Index: 0xda, char: \xdb */ + { 0x08, 0x0bfa }, /* Index: 0xdb, char: \xdc */ + { 0x08, 0x0c08 }, /* Index: 0xdc, char: \xdd */ + { 0x08, 0x0c16 }, /* Index: 0xdd, char: \xde */ + { 0x08, 0x0c24 }, /* Index: 0xde, char: \xdf */ + { 0x08, 0x0c32 }, /* Index: 0xdf, char: \xe0 */ + { 0x08, 0x0c40 }, /* Index: 0xe0, char: \xe1 */ + { 0x08, 0x0c4e }, /* Index: 0xe1, char: \xe2 */ + { 0x08, 0x0c5c }, /* Index: 0xe2, char: \xe3 */ + { 0x08, 0x0c6a }, /* Index: 0xe3, char: \xe4 */ + { 0x08, 0x0c78 }, /* Index: 0xe4, char: \xe5 */ + { 0x08, 0x0c86 }, /* Index: 0xe5, char: \xe6 */ + { 0x08, 0x0c94 }, /* Index: 0xe6, char: \xe7 */ + { 0x08, 0x0ca2 }, /* Index: 0xe7, char: \xe8 */ + { 0x08, 0x0cb0 }, /* Index: 0xe8, char: \xe9 */ + { 0x08, 0x0cbe }, /* Index: 0xe9, char: \xea */ + { 0x08, 0x0ccc }, /* Index: 0xea, char: \xeb */ + { 0x08, 0x0cda }, /* Index: 0xeb, char: \xec */ + { 0x08, 0x0ce8 }, /* Index: 0xec, char: \xed */ + { 0x08, 0x0cf6 }, /* Index: 0xed, char: \xee */ + { 0x08, 0x0d04 }, /* Index: 0xee, char: \xef */ + { 0x08, 0x0d12 }, /* Index: 0xef, char: \xf0 */ + { 0x08, 0x0d20 }, /* Index: 0xf0, char: \xf1 */ + { 0x08, 0x0d2e }, /* Index: 0xf1, char: \xf2 */ + { 0x08, 0x0d3c }, /* Index: 0xf2, char: \xf3 */ + { 0x08, 0x0d4a }, /* Index: 0xf3, char: \xf4 */ + { 0x08, 0x0d58 }, /* Index: 0xf4, char: \xf5 */ + { 0x08, 0x0d66 }, /* Index: 0xf5, char: \xf6 */ + { 0x08, 0x0d74 }, /* Index: 0xf6, char: \xf7 */ + { 0x08, 0x0d82 }, /* Index: 0xf7, char: \xf8 */ + { 0x08, 0x0d90 }, /* Index: 0xf8, char: \xf9 */ + { 0x08, 0x0d9e }, /* Index: 0xf9, char: \xfa */ + { 0x08, 0x0dac }, /* Index: 0xfa, char: \xfb */ + { 0x08, 0x0dba }, /* Index: 0xfb, char: \xfc */ + { 0x08, 0x0dc8 }, /* Index: 0xfc, char: \xfd */ + { 0x08, 0x0dd6 }, /* Index: 0xfd, char: \xfe */ + { 0x08, 0x0de4 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_8x14_koi8_r_info = +{ + .height = 14, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_8x14_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_8x14_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_8X14_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_10x18_iso8859_1.h b/extras/fonts/data/font_terminus_bold_10x18_iso8859_1.h new file mode 100644 index 0000000..cbfa9cf --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_10x18_iso8859_1.h @@ -0,0 +1,5389 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 10x18 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:50:41 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_10X18_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_10X18_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_10x18_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x7f, 0x80, /* .########....... */ + 0x3f, 0x00, /* ..######........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0024 */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0x80, /* #.#.#.#.#....... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + + /* Index: 0x02, char: \x03, offset: 0x0048 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x006c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0x00, /* ######.......... */ + 0xc0, 0x00, /* ##.............. */ + 0xf0, 0x00, /* ####............ */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x18, 0x00, /* ...##........... */ + 0x1e, 0x00, /* ...####......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x78, 0x00, /* .####........... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xcc, 0x00, /* ##..##.......... */ + 0x78, 0x00, /* .####........... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0xfc, 0x00, /* ######.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x18, 0x00, /* ...##........... */ + 0x1e, 0x00, /* ...####......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x00d8 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x00fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0120 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xcc, 0x00, /* ##..##.......... */ + 0xec, 0x00, /* ###.##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xdc, 0x00, /* ##.###.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0144 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0168 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x018c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0c, char: \x0d, offset: 0x01b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0d, char: \x0e, offset: 0x01d4 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x01f8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0f, char: \x10, offset: 0x021c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0264 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x02ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x02d0 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x15, char: \x16, offset: 0x02f4 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x16, char: \x17, offset: 0x0318 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x033c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x18, char: \x19, offset: 0x0360 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x19, char: \x1a, offset: 0x0384 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x03a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x03cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x7f, 0x80, /* .########....... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0414 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7e, 0x00, /* .######......... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x31, 0x80, /* ..##...##....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0438 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x045c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x04a4 */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x04c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x7f, 0x80, /* .########....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x7f, 0x80, /* .########....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x04ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0510 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x00, /* .###..##........ */ + 0x53, 0x00, /* .#.#..##........ */ + 0x76, 0x00, /* .###.##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x37, 0x00, /* ..##.###........ */ + 0x65, 0x00, /* .##..#.#........ */ + 0x67, 0x00, /* .##..###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0534 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x39, 0x80, /* ..###..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0xc7, 0x00, /* ##...###........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0x67, 0x80, /* .##..####....... */ + 0x3d, 0x80, /* ..####.##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0558 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x057c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x05a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x05c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0xff, 0x80, /* #########....... */ + 0x1c, 0x00, /* ...###.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x060c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0654 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x069c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x80, /* .##..####....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x06e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0708 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x072c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0750 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0774 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x07bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0804 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0828 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x084c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0870 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0894 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x08b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x08dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xcf, 0x80, /* ##..#####....... */ + 0xd9, 0x80, /* ##.##..##....... */ + 0xd9, 0x80, /* ##.##..##....... */ + 0xd9, 0x80, /* ##.##..##....... */ + 0xd9, 0x80, /* ##.##..##....... */ + 0xcf, 0x80, /* ##..#####....... */ + 0xc0, 0x00, /* ##.............. */ + 0xc0, 0x00, /* ##.............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0924 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0948 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x096c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x09b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x67, 0x80, /* .##..####....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x09fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0a44 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0a68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0a8c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x80, 0x80, /* #.......#....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xe3, 0x80, /* ###...###....... */ + 0xf7, 0x80, /* ####.####....... */ + 0xdd, 0x80, /* ##.###.##....... */ + 0xc9, 0x80, /* ##..#..##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0ad4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x80, /* .##..####....... */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0af8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0b1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x67, 0x80, /* .##..####....... */ + 0x3f, 0x00, /* ..######........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0b64 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0b88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0bac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0bf4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x0c18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc9, 0x80, /* ##..#..##....... */ + 0xdd, 0x80, /* ##.###.##....... */ + 0xf7, 0x80, /* ####.####....... */ + 0xe3, 0x80, /* ###...###....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0x80, 0x80, /* #.......#....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x0c3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x0c84 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0ca8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0ccc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0cf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0d14 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0d38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x0d5c */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x0da4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x0dec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x0e10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x0e34 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x0e58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + + /* Index: 0x67, char: \x68, offset: 0x0e7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x0ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x0ec4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + + /* Index: 0x6a, char: \x6b, offset: 0x0ee8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x0f0c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x0f30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x0f54 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x0f9c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + + /* Index: 0x70, char: \x71, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + + /* Index: 0x71, char: \x72, offset: 0x0fe4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x6f, 0x80, /* .##.#####....... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1008 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x102c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x7e, 0x00, /* .######......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1074 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x10bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x10e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + + /* Index: 0x79, char: \x7a, offset: 0x1104 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1128 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x114c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x07, 0x00, /* .....###........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1194 */ + 0x00, 0x00, /* ................ */ + 0x39, 0x80, /* ..###..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x00, /* .##..###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x11dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1224 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1248 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x126c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x12b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x12d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x12fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1320 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1344 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x138c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x13d4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x13f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x141c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1464 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1488 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x14ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x14d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x14f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x1518 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x153c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1584 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x15cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x15f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1614 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1638 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x165c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x16a4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x16c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7e, 0x00, /* .######......... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x31, 0x80, /* ..##...##....... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x16ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc1, 0x80, /* ##.....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0xc1, 0x80, /* ##.....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1710 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1734 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x30, 0x00, /* ..##............ */ + 0x1c, 0x00, /* ...###.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x03, 0x00, /* ......##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x177c */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x9e, 0x40, /* #..####..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xb0, 0x40, /* #.##.....#...... */ + 0xb0, 0x40, /* #.##.....#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0x9e, 0x40, /* #..####..#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x17c4 */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0x00, /* ..######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x17e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x180c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x1830 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x1854 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0xbe, 0x40, /* #.#####..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xbe, 0x40, /* #.#####..#...... */ + 0xb6, 0x40, /* #.##.##..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x1878 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x189c */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x18e4 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x1908 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x03, 0x00, /* ......##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x192c */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x1950 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x80, /* .##...###....... */ + 0x7d, 0x80, /* .#####.##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + + /* Index: 0xb5, char: \xb6, offset: 0x1974 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3d, 0x80, /* ..####.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x19bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + + /* Index: 0xb8, char: \xb9, offset: 0x19e0 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x1a04 */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x1a28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x1a4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x70, 0x00, /* .###............ */ + 0x30, 0x80, /* ..##....#....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x80, /* ..##..###....... */ + 0x67, 0x80, /* .##..####....... */ + 0xcd, 0x80, /* ##..##.##....... */ + 0x8f, 0x80, /* #...#####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x1a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x70, 0x00, /* .###............ */ + 0x30, 0x80, /* ..##....#....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x37, 0x00, /* ..##.###........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0x83, 0x00, /* #.....##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x1a94 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0x18, 0x00, /* ...##........... */ + 0x70, 0x80, /* .###....#....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0xf6, 0x00, /* ####.##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x80, /* ..##..###....... */ + 0x67, 0x80, /* .##..####....... */ + 0xcd, 0x80, /* ##..##.##....... */ + 0x8f, 0x80, /* #...#####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x1ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x1adc */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x1b00 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x1b24 */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x1b48 */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x1b6c */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x1b90 */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x1bb4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xff, 0xc0, /* ##########...... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc7, 0xc0, /* ##...#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x1bd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + + /* Index: 0xc7, char: \xc8, offset: 0x1bfc */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x1c20 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x1c44 */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x1c68 */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x1c8c */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x1cb0 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x1cd4 */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x1cf8 */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x1d1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0xfd, 0x80, /* ######.##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x1d40 */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x80, /* .##..####....... */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x1d64 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x1d88 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x1dac */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x1dd0 */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x1df4 */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x1e18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x1e3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0xc0, /* .##....###...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x80, /* .##..####....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x61, 0x80, /* .##....##....... */ + 0xe1, 0x80, /* ###....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x1e60 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x1e84 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x1ea8 */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x1ecc */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x1ef0 */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x1f14 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x1f38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x62, 0x00, /* .##...#......... */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x6f, 0x00, /* .##.####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x1f5c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x1fa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x1fc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x1fec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2010 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x2034 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x77, 0x80, /* .###.####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x7c, 0xc0, /* .#####..##...... */ + 0xcf, 0xc0, /* ##..######...... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x7b, 0x80, /* .####.###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + + /* Index: 0xe7, char: \xe8, offset: 0x207c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x20a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x20c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x20e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x210c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x2154 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x219c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x21e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2208 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x222c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x2250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x6e, 0x00, /* .##.###......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2274 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x22bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x40, /* ..######.#...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x80, /* .##..####....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x79, 0x80, /* .####..##....... */ + 0x71, 0x80, /* .###...##....... */ + 0x61, 0x80, /* .##....##....... */ + 0xbf, 0x00, /* #.######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x22e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2304 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2328 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x234c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + + /* Index: 0xfd, char: \xfe, offset: 0x2394 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + + /* Index: 0xfe, char: \xff, offset: 0x23b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ +}; + +const font_char_desc_t _fonts_terminus_bold_10x18_iso8859_1_descriptors[] = { + { 0x0a, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0a, 0x0024 }, /* Index: 0x01, char: \x02 */ + { 0x0a, 0x0048 }, /* Index: 0x02, char: \x03 */ + { 0x0a, 0x006c }, /* Index: 0x03, char: \x04 */ + { 0x0a, 0x0090 }, /* Index: 0x04, char: \x05 */ + { 0x0a, 0x00b4 }, /* Index: 0x05, char: \x06 */ + { 0x0a, 0x00d8 }, /* Index: 0x06, char: \x07 */ + { 0x0a, 0x00fc }, /* Index: 0x07, char: \x08 */ + { 0x0a, 0x0120 }, /* Index: 0x08, char: \x09 */ + { 0x0a, 0x0144 }, /* Index: 0x09, char: \x0a */ + { 0x0a, 0x0168 }, /* Index: 0x0a, char: \x0b */ + { 0x0a, 0x018c }, /* Index: 0x0b, char: \x0c */ + { 0x0a, 0x01b0 }, /* Index: 0x0c, char: \x0d */ + { 0x0a, 0x01d4 }, /* Index: 0x0d, char: \x0e */ + { 0x0a, 0x01f8 }, /* Index: 0x0e, char: \x0f */ + { 0x0a, 0x021c }, /* Index: 0x0f, char: \x10 */ + { 0x0a, 0x0240 }, /* Index: 0x10, char: \x11 */ + { 0x0a, 0x0264 }, /* Index: 0x11, char: \x12 */ + { 0x0a, 0x0288 }, /* Index: 0x12, char: \x13 */ + { 0x0a, 0x02ac }, /* Index: 0x13, char: \x14 */ + { 0x0a, 0x02d0 }, /* Index: 0x14, char: \x15 */ + { 0x0a, 0x02f4 }, /* Index: 0x15, char: \x16 */ + { 0x0a, 0x0318 }, /* Index: 0x16, char: \x17 */ + { 0x0a, 0x033c }, /* Index: 0x17, char: \x18 */ + { 0x0a, 0x0360 }, /* Index: 0x18, char: \x19 */ + { 0x0a, 0x0384 }, /* Index: 0x19, char: \x1a */ + { 0x0a, 0x03a8 }, /* Index: 0x1a, char: \x1b */ + { 0x0a, 0x03cc }, /* Index: 0x1b, char: \x1c */ + { 0x0a, 0x03f0 }, /* Index: 0x1c, char: \x1d */ + { 0x0a, 0x0414 }, /* Index: 0x1d, char: \x1e */ + { 0x0a, 0x0438 }, /* Index: 0x1e, char: \x1f */ + { 0x0a, 0x045c }, /* Index: 0x1f, char: \x20 */ + { 0x0a, 0x0480 }, /* Index: 0x20, char: \x21 */ + { 0x0a, 0x04a4 }, /* Index: 0x21, char: \x22 */ + { 0x0a, 0x04c8 }, /* Index: 0x22, char: \x23 */ + { 0x0a, 0x04ec }, /* Index: 0x23, char: \x24 */ + { 0x0a, 0x0510 }, /* Index: 0x24, char: \x25 */ + { 0x0a, 0x0534 }, /* Index: 0x25, char: \x26 */ + { 0x0a, 0x0558 }, /* Index: 0x26, char: \x27 */ + { 0x0a, 0x057c }, /* Index: 0x27, char: \x28 */ + { 0x0a, 0x05a0 }, /* Index: 0x28, char: \x29 */ + { 0x0a, 0x05c4 }, /* Index: 0x29, char: \x2a */ + { 0x0a, 0x05e8 }, /* Index: 0x2a, char: \x2b */ + { 0x0a, 0x060c }, /* Index: 0x2b, char: \x2c */ + { 0x0a, 0x0630 }, /* Index: 0x2c, char: \x2d */ + { 0x0a, 0x0654 }, /* Index: 0x2d, char: \x2e */ + { 0x0a, 0x0678 }, /* Index: 0x2e, char: \x2f */ + { 0x0a, 0x069c }, /* Index: 0x2f, char: \x30 */ + { 0x0a, 0x06c0 }, /* Index: 0x30, char: \x31 */ + { 0x0a, 0x06e4 }, /* Index: 0x31, char: \x32 */ + { 0x0a, 0x0708 }, /* Index: 0x32, char: \x33 */ + { 0x0a, 0x072c }, /* Index: 0x33, char: \x34 */ + { 0x0a, 0x0750 }, /* Index: 0x34, char: \x35 */ + { 0x0a, 0x0774 }, /* Index: 0x35, char: \x36 */ + { 0x0a, 0x0798 }, /* Index: 0x36, char: \x37 */ + { 0x0a, 0x07bc }, /* Index: 0x37, char: \x38 */ + { 0x0a, 0x07e0 }, /* Index: 0x38, char: \x39 */ + { 0x0a, 0x0804 }, /* Index: 0x39, char: \x3a */ + { 0x0a, 0x0828 }, /* Index: 0x3a, char: \x3b */ + { 0x0a, 0x084c }, /* Index: 0x3b, char: \x3c */ + { 0x0a, 0x0870 }, /* Index: 0x3c, char: \x3d */ + { 0x0a, 0x0894 }, /* Index: 0x3d, char: \x3e */ + { 0x0a, 0x08b8 }, /* Index: 0x3e, char: \x3f */ + { 0x0a, 0x08dc }, /* Index: 0x3f, char: \x40 */ + { 0x0a, 0x0900 }, /* Index: 0x40, char: \x41 */ + { 0x0a, 0x0924 }, /* Index: 0x41, char: \x42 */ + { 0x0a, 0x0948 }, /* Index: 0x42, char: \x43 */ + { 0x0a, 0x096c }, /* Index: 0x43, char: \x44 */ + { 0x0a, 0x0990 }, /* Index: 0x44, char: \x45 */ + { 0x0a, 0x09b4 }, /* Index: 0x45, char: \x46 */ + { 0x0a, 0x09d8 }, /* Index: 0x46, char: \x47 */ + { 0x0a, 0x09fc }, /* Index: 0x47, char: \x48 */ + { 0x0a, 0x0a20 }, /* Index: 0x48, char: \x49 */ + { 0x0a, 0x0a44 }, /* Index: 0x49, char: \x4a */ + { 0x0a, 0x0a68 }, /* Index: 0x4a, char: \x4b */ + { 0x0a, 0x0a8c }, /* Index: 0x4b, char: \x4c */ + { 0x0a, 0x0ab0 }, /* Index: 0x4c, char: \x4d */ + { 0x0a, 0x0ad4 }, /* Index: 0x4d, char: \x4e */ + { 0x0a, 0x0af8 }, /* Index: 0x4e, char: \x4f */ + { 0x0a, 0x0b1c }, /* Index: 0x4f, char: \x50 */ + { 0x0a, 0x0b40 }, /* Index: 0x50, char: \x51 */ + { 0x0a, 0x0b64 }, /* Index: 0x51, char: \x52 */ + { 0x0a, 0x0b88 }, /* Index: 0x52, char: \x53 */ + { 0x0a, 0x0bac }, /* Index: 0x53, char: \x54 */ + { 0x0a, 0x0bd0 }, /* Index: 0x54, char: \x55 */ + { 0x0a, 0x0bf4 }, /* Index: 0x55, char: \x56 */ + { 0x0a, 0x0c18 }, /* Index: 0x56, char: \x57 */ + { 0x0a, 0x0c3c }, /* Index: 0x57, char: \x58 */ + { 0x0a, 0x0c60 }, /* Index: 0x58, char: \x59 */ + { 0x0a, 0x0c84 }, /* Index: 0x59, char: \x5a */ + { 0x0a, 0x0ca8 }, /* Index: 0x5a, char: \x5b */ + { 0x0a, 0x0ccc }, /* Index: 0x5b, char: \x5c */ + { 0x0a, 0x0cf0 }, /* Index: 0x5c, char: \x5d */ + { 0x0a, 0x0d14 }, /* Index: 0x5d, char: \x5e */ + { 0x0a, 0x0d38 }, /* Index: 0x5e, char: \x5f */ + { 0x0a, 0x0d5c }, /* Index: 0x5f, char: \x60 */ + { 0x0a, 0x0d80 }, /* Index: 0x60, char: \x61 */ + { 0x0a, 0x0da4 }, /* Index: 0x61, char: \x62 */ + { 0x0a, 0x0dc8 }, /* Index: 0x62, char: \x63 */ + { 0x0a, 0x0dec }, /* Index: 0x63, char: \x64 */ + { 0x0a, 0x0e10 }, /* Index: 0x64, char: \x65 */ + { 0x0a, 0x0e34 }, /* Index: 0x65, char: \x66 */ + { 0x0a, 0x0e58 }, /* Index: 0x66, char: \x67 */ + { 0x0a, 0x0e7c }, /* Index: 0x67, char: \x68 */ + { 0x0a, 0x0ea0 }, /* Index: 0x68, char: \x69 */ + { 0x0a, 0x0ec4 }, /* Index: 0x69, char: \x6a */ + { 0x0a, 0x0ee8 }, /* Index: 0x6a, char: \x6b */ + { 0x0a, 0x0f0c }, /* Index: 0x6b, char: \x6c */ + { 0x0a, 0x0f30 }, /* Index: 0x6c, char: \x6d */ + { 0x0a, 0x0f54 }, /* Index: 0x6d, char: \x6e */ + { 0x0a, 0x0f78 }, /* Index: 0x6e, char: \x6f */ + { 0x0a, 0x0f9c }, /* Index: 0x6f, char: \x70 */ + { 0x0a, 0x0fc0 }, /* Index: 0x70, char: \x71 */ + { 0x0a, 0x0fe4 }, /* Index: 0x71, char: \x72 */ + { 0x0a, 0x1008 }, /* Index: 0x72, char: \x73 */ + { 0x0a, 0x102c }, /* Index: 0x73, char: \x74 */ + { 0x0a, 0x1050 }, /* Index: 0x74, char: \x75 */ + { 0x0a, 0x1074 }, /* Index: 0x75, char: \x76 */ + { 0x0a, 0x1098 }, /* Index: 0x76, char: \x77 */ + { 0x0a, 0x10bc }, /* Index: 0x77, char: \x78 */ + { 0x0a, 0x10e0 }, /* Index: 0x78, char: \x79 */ + { 0x0a, 0x1104 }, /* Index: 0x79, char: \x7a */ + { 0x0a, 0x1128 }, /* Index: 0x7a, char: \x7b */ + { 0x0a, 0x114c }, /* Index: 0x7b, char: \x7c */ + { 0x0a, 0x1170 }, /* Index: 0x7c, char: \x7d */ + { 0x0a, 0x1194 }, /* Index: 0x7d, char: \x7e */ + { 0x0a, 0x11b8 }, /* Index: 0x7e, char: \x7f */ + { 0x0a, 0x11dc }, /* Index: 0x7f, char: \x80 */ + { 0x0a, 0x1200 }, /* Index: 0x80, char: \x81 */ + { 0x0a, 0x1224 }, /* Index: 0x81, char: \x82 */ + { 0x0a, 0x1248 }, /* Index: 0x82, char: \x83 */ + { 0x0a, 0x126c }, /* Index: 0x83, char: \x84 */ + { 0x0a, 0x1290 }, /* Index: 0x84, char: \x85 */ + { 0x0a, 0x12b4 }, /* Index: 0x85, char: \x86 */ + { 0x0a, 0x12d8 }, /* Index: 0x86, char: \x87 */ + { 0x0a, 0x12fc }, /* Index: 0x87, char: \x88 */ + { 0x0a, 0x1320 }, /* Index: 0x88, char: \x89 */ + { 0x0a, 0x1344 }, /* Index: 0x89, char: \x8a */ + { 0x0a, 0x1368 }, /* Index: 0x8a, char: \x8b */ + { 0x0a, 0x138c }, /* Index: 0x8b, char: \x8c */ + { 0x0a, 0x13b0 }, /* Index: 0x8c, char: \x8d */ + { 0x0a, 0x13d4 }, /* Index: 0x8d, char: \x8e */ + { 0x0a, 0x13f8 }, /* Index: 0x8e, char: \x8f */ + { 0x0a, 0x141c }, /* Index: 0x8f, char: \x90 */ + { 0x0a, 0x1440 }, /* Index: 0x90, char: \x91 */ + { 0x0a, 0x1464 }, /* Index: 0x91, char: \x92 */ + { 0x0a, 0x1488 }, /* Index: 0x92, char: \x93 */ + { 0x0a, 0x14ac }, /* Index: 0x93, char: \x94 */ + { 0x0a, 0x14d0 }, /* Index: 0x94, char: \x95 */ + { 0x0a, 0x14f4 }, /* Index: 0x95, char: \x96 */ + { 0x0a, 0x1518 }, /* Index: 0x96, char: \x97 */ + { 0x0a, 0x153c }, /* Index: 0x97, char: \x98 */ + { 0x0a, 0x1560 }, /* Index: 0x98, char: \x99 */ + { 0x0a, 0x1584 }, /* Index: 0x99, char: \x9a */ + { 0x0a, 0x15a8 }, /* Index: 0x9a, char: \x9b */ + { 0x0a, 0x15cc }, /* Index: 0x9b, char: \x9c */ + { 0x0a, 0x15f0 }, /* Index: 0x9c, char: \x9d */ + { 0x0a, 0x1614 }, /* Index: 0x9d, char: \x9e */ + { 0x0a, 0x1638 }, /* Index: 0x9e, char: \x9f */ + { 0x0a, 0x165c }, /* Index: 0x9f, char: \xa0 */ + { 0x0a, 0x1680 }, /* Index: 0xa0, char: \xa1 */ + { 0x0a, 0x16a4 }, /* Index: 0xa1, char: \xa2 */ + { 0x0a, 0x16c8 }, /* Index: 0xa2, char: \xa3 */ + { 0x0a, 0x16ec }, /* Index: 0xa3, char: \xa4 */ + { 0x0a, 0x1710 }, /* Index: 0xa4, char: \xa5 */ + { 0x0a, 0x1734 }, /* Index: 0xa5, char: \xa6 */ + { 0x0a, 0x1758 }, /* Index: 0xa6, char: \xa7 */ + { 0x0a, 0x177c }, /* Index: 0xa7, char: \xa8 */ + { 0x0a, 0x17a0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0a, 0x17c4 }, /* Index: 0xa9, char: \xaa */ + { 0x0a, 0x17e8 }, /* Index: 0xaa, char: \xab */ + { 0x0a, 0x180c }, /* Index: 0xab, char: \xac */ + { 0x0a, 0x1830 }, /* Index: 0xac, char: \xad */ + { 0x0a, 0x1854 }, /* Index: 0xad, char: \xae */ + { 0x0a, 0x1878 }, /* Index: 0xae, char: \xaf */ + { 0x0a, 0x189c }, /* Index: 0xaf, char: \xb0 */ + { 0x0a, 0x18c0 }, /* Index: 0xb0, char: \xb1 */ + { 0x0a, 0x18e4 }, /* Index: 0xb1, char: \xb2 */ + { 0x0a, 0x1908 }, /* Index: 0xb2, char: \xb3 */ + { 0x0a, 0x192c }, /* Index: 0xb3, char: \xb4 */ + { 0x0a, 0x1950 }, /* Index: 0xb4, char: \xb5 */ + { 0x0a, 0x1974 }, /* Index: 0xb5, char: \xb6 */ + { 0x0a, 0x1998 }, /* Index: 0xb6, char: \xb7 */ + { 0x0a, 0x19bc }, /* Index: 0xb7, char: \xb8 */ + { 0x0a, 0x19e0 }, /* Index: 0xb8, char: \xb9 */ + { 0x0a, 0x1a04 }, /* Index: 0xb9, char: \xba */ + { 0x0a, 0x1a28 }, /* Index: 0xba, char: \xbb */ + { 0x0a, 0x1a4c }, /* Index: 0xbb, char: \xbc */ + { 0x0a, 0x1a70 }, /* Index: 0xbc, char: \xbd */ + { 0x0a, 0x1a94 }, /* Index: 0xbd, char: \xbe */ + { 0x0a, 0x1ab8 }, /* Index: 0xbe, char: \xbf */ + { 0x0a, 0x1adc }, /* Index: 0xbf, char: \xc0 */ + { 0x0a, 0x1b00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0a, 0x1b24 }, /* Index: 0xc1, char: \xc2 */ + { 0x0a, 0x1b48 }, /* Index: 0xc2, char: \xc3 */ + { 0x0a, 0x1b6c }, /* Index: 0xc3, char: \xc4 */ + { 0x0a, 0x1b90 }, /* Index: 0xc4, char: \xc5 */ + { 0x0a, 0x1bb4 }, /* Index: 0xc5, char: \xc6 */ + { 0x0a, 0x1bd8 }, /* Index: 0xc6, char: \xc7 */ + { 0x0a, 0x1bfc }, /* Index: 0xc7, char: \xc8 */ + { 0x0a, 0x1c20 }, /* Index: 0xc8, char: \xc9 */ + { 0x0a, 0x1c44 }, /* Index: 0xc9, char: \xca */ + { 0x0a, 0x1c68 }, /* Index: 0xca, char: \xcb */ + { 0x0a, 0x1c8c }, /* Index: 0xcb, char: \xcc */ + { 0x0a, 0x1cb0 }, /* Index: 0xcc, char: \xcd */ + { 0x0a, 0x1cd4 }, /* Index: 0xcd, char: \xce */ + { 0x0a, 0x1cf8 }, /* Index: 0xce, char: \xcf */ + { 0x0a, 0x1d1c }, /* Index: 0xcf, char: \xd0 */ + { 0x0a, 0x1d40 }, /* Index: 0xd0, char: \xd1 */ + { 0x0a, 0x1d64 }, /* Index: 0xd1, char: \xd2 */ + { 0x0a, 0x1d88 }, /* Index: 0xd2, char: \xd3 */ + { 0x0a, 0x1dac }, /* Index: 0xd3, char: \xd4 */ + { 0x0a, 0x1dd0 }, /* Index: 0xd4, char: \xd5 */ + { 0x0a, 0x1df4 }, /* Index: 0xd5, char: \xd6 */ + { 0x0a, 0x1e18 }, /* Index: 0xd6, char: \xd7 */ + { 0x0a, 0x1e3c }, /* Index: 0xd7, char: \xd8 */ + { 0x0a, 0x1e60 }, /* Index: 0xd8, char: \xd9 */ + { 0x0a, 0x1e84 }, /* Index: 0xd9, char: \xda */ + { 0x0a, 0x1ea8 }, /* Index: 0xda, char: \xdb */ + { 0x0a, 0x1ecc }, /* Index: 0xdb, char: \xdc */ + { 0x0a, 0x1ef0 }, /* Index: 0xdc, char: \xdd */ + { 0x0a, 0x1f14 }, /* Index: 0xdd, char: \xde */ + { 0x0a, 0x1f38 }, /* Index: 0xde, char: \xdf */ + { 0x0a, 0x1f5c }, /* Index: 0xdf, char: \xe0 */ + { 0x0a, 0x1f80 }, /* Index: 0xe0, char: \xe1 */ + { 0x0a, 0x1fa4 }, /* Index: 0xe1, char: \xe2 */ + { 0x0a, 0x1fc8 }, /* Index: 0xe2, char: \xe3 */ + { 0x0a, 0x1fec }, /* Index: 0xe3, char: \xe4 */ + { 0x0a, 0x2010 }, /* Index: 0xe4, char: \xe5 */ + { 0x0a, 0x2034 }, /* Index: 0xe5, char: \xe6 */ + { 0x0a, 0x2058 }, /* Index: 0xe6, char: \xe7 */ + { 0x0a, 0x207c }, /* Index: 0xe7, char: \xe8 */ + { 0x0a, 0x20a0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0a, 0x20c4 }, /* Index: 0xe9, char: \xea */ + { 0x0a, 0x20e8 }, /* Index: 0xea, char: \xeb */ + { 0x0a, 0x210c }, /* Index: 0xeb, char: \xec */ + { 0x0a, 0x2130 }, /* Index: 0xec, char: \xed */ + { 0x0a, 0x2154 }, /* Index: 0xed, char: \xee */ + { 0x0a, 0x2178 }, /* Index: 0xee, char: \xef */ + { 0x0a, 0x219c }, /* Index: 0xef, char: \xf0 */ + { 0x0a, 0x21c0 }, /* Index: 0xf0, char: \xf1 */ + { 0x0a, 0x21e4 }, /* Index: 0xf1, char: \xf2 */ + { 0x0a, 0x2208 }, /* Index: 0xf2, char: \xf3 */ + { 0x0a, 0x222c }, /* Index: 0xf3, char: \xf4 */ + { 0x0a, 0x2250 }, /* Index: 0xf4, char: \xf5 */ + { 0x0a, 0x2274 }, /* Index: 0xf5, char: \xf6 */ + { 0x0a, 0x2298 }, /* Index: 0xf6, char: \xf7 */ + { 0x0a, 0x22bc }, /* Index: 0xf7, char: \xf8 */ + { 0x0a, 0x22e0 }, /* Index: 0xf8, char: \xf9 */ + { 0x0a, 0x2304 }, /* Index: 0xf9, char: \xfa */ + { 0x0a, 0x2328 }, /* Index: 0xfa, char: \xfb */ + { 0x0a, 0x234c }, /* Index: 0xfb, char: \xfc */ + { 0x0a, 0x2370 }, /* Index: 0xfc, char: \xfd */ + { 0x0a, 0x2394 }, /* Index: 0xfd, char: \xfe */ + { 0x0a, 0x23b8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_10x18_iso8859_1_info = +{ + .height = 18, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_10x18_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_10x18_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_10X18_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_11x22_iso8859_1.h b/extras/fonts/data/font_terminus_bold_11x22_iso8859_1.h new file mode 100644 index 0000000..bcdfb73 --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_11x22_iso8859_1.h @@ -0,0 +1,6409 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 11x22 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:52:46 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_11X22_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_11X22_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_11x22_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x7f, 0x80, /* .########....... */ + 0x3f, 0x00, /* ..######........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x002c */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x40, /* .#.#.#.#.#...... */ + + /* Index: 0x02, char: \x03, offset: 0x0058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x7e, 0x00, /* .######......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x0084 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x78, 0x00, /* .####........... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0x00, /* ....####........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x66, 0x00, /* .##..##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0x00, /* ....####........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0108 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0134 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0160 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x76, 0x00, /* .###.##......... */ + 0x7e, 0x00, /* .######......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x018c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x01b8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x01e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0210 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0d, char: \x0e, offset: 0x023c */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0268 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x0f, char: \x10, offset: 0x0294 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x02ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0318 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0344 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0370 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x15, char: \x16, offset: 0x039c */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xfc, 0x00, /* ######.......... */ + 0xfc, 0x00, /* ######.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x16, char: \x17, offset: 0x03c8 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x03f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xe0, /* ###########..... */ + 0xff, 0xe0, /* ###########..... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x18, char: \x19, offset: 0x0420 */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + + /* Index: 0x19, char: \x1a, offset: 0x044c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0478 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x04a4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x04d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x04fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7e, 0x00, /* .######......... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x0554 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x05ac */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x05d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0xff, 0xc0, /* ##########...... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0xff, 0xc0, /* ##########...... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x0604 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0x80, /* .###...##....... */ + 0xd9, 0x80, /* ##.##..##....... */ + 0xdb, 0x00, /* ##.##.##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x33, 0x80, /* ..##..###....... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x63, 0x80, /* .##...###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x065c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0xc3, 0xc0, /* ##....####...... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0xc1, 0x80, /* ##.....##....... */ + 0x63, 0xc0, /* .##...####...... */ + 0x3e, 0xc0, /* ..#####.##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0688 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x06b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x06e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x070c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0764 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x07bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x07e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0814 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x78, 0xc0, /* .####...##...... */ + 0x70, 0xc0, /* .###....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1e, 0x00, /* ...####......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x086c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0898 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x08c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0xc0, /* ......####...... */ + 0x06, 0xc0, /* .....##.##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x08f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x091c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0948 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0974 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x09cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x09f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0a24 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0a50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0a7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0aa8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0ad4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc7, 0xc0, /* ##...#####...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xd8, 0xc0, /* ##.##...##...... */ + 0xd8, 0xc0, /* ##.##...##...... */ + 0xd8, 0xc0, /* ##.##...##...... */ + 0xd8, 0xc0, /* ##.##...##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xc7, 0xc0, /* ##...#####...... */ + 0xc0, 0x00, /* ##.............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0b2c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0b84 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0bb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0bdc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x67, 0xc0, /* .##..#####...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0c34 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0c8c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0cb8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0ce4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x80, 0x40, /* #........#...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xf3, 0xc0, /* ####..####...... */ + 0xde, 0xc0, /* ##.####.##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0d3c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x70, 0xc0, /* .###....##...... */ + 0x78, 0xc0, /* .####...##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0d68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0d94 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x37, 0x80, /* ..##.####....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0dec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0e18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0x00, /* ...#####........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0e44 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0e9c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x0ec8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xde, 0xc0, /* ##.####.##...... */ + 0xf3, 0xc0, /* ####..####...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x80, 0x40, /* #........#...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x0ef4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x0f20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x0f4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x0f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x0fa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0fd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0ffc */ + 0x00, 0x00, /* ................ */ + 0x04, 0x00, /* .....#.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x1054 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x10ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x1104 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x115c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x11b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x11e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x120c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1238 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1264 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xcd, 0x80, /* ##..##.##....... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x12bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x12e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1314 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x136c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xc0, /* .##..#####...... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1398 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x13c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x13f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x141c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1474 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x14a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x14cc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x14f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1524 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1550 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x80, /* ......###....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x157c */ + 0x00, 0x00, /* ................ */ + 0x38, 0xc0, /* ..###...##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x63, 0x80, /* .##...###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x15d4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x162c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1684 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x16b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x16dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1708 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1734 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1760 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x178c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x17b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x17e4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x183c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1868 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1894 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x18ec */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1918 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x1944 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x1970 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x199c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x19c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x19f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1a4c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x1aa4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x1ad0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1afc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x1b54 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x1bac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x6d, 0x80, /* .##.##.##....... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x1bd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7e, 0x00, /* .######......... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x1c04 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0xc0, /* ##......##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1c5c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1c88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x1cb4 */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0x9e, 0x40, /* #..####..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xb0, 0x40, /* #.##.....#...... */ + 0xb0, 0x40, /* #.##.....#...... */ + 0xb0, 0x40, /* #.##.....#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0x9e, 0x40, /* #..####..#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x1d0c */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x1d38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x1d64 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x1d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x1dbc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x40, 0x80, /* .#......#....... */ + 0xbe, 0x40, /* #.#####..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0xbe, 0x40, /* #.#####..#...... */ + 0xbc, 0x40, /* #.####...#...... */ + 0xb6, 0x40, /* #.##.##..#...... */ + 0xb3, 0x40, /* #.##..##.#...... */ + 0x40, 0x80, /* .#......#....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x1de8 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x1e14 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x1e6c */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x1e98 */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x1ec4 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x1ef0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x7e, 0xc0, /* .######.##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x1f1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x7c, 0xc0, /* .#####..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x1f48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x1f74 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x1fa0 */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x1fcc */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x1ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2024 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x70, 0x00, /* .###............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x40, /* ..##.....#...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x4c, 0xc0, /* .#..##..##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x70, 0x00, /* .###............ */ + 0xf0, 0x40, /* ####.....#...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x37, 0x80, /* ..##.####....... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x4c, 0xc0, /* .#..##..##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x207c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x78, 0x00, /* .####........... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x40, /* ..###....#...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xcd, 0x80, /* ##..##.##....... */ + 0x7b, 0x00, /* .####.##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x4c, 0xc0, /* .#..##..##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x20a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x20d4 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2100 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x212c */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2158 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2184 */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x21b0 */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x21dc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x66, 0x00, /* .##..##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xff, 0xe0, /* ###########..... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc7, 0xe0, /* ##...######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2208 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2234 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2260 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x228c */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x22b8 */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x22e4 */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2310 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x233c */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2368 */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2394 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x23c0 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x70, 0xc0, /* .###....##...... */ + 0x78, 0xc0, /* .####...##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x23ec */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2418 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2444 */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2470 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x249c */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x24c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x24f4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x78, 0xc0, /* .####...##...... */ + 0x70, 0xc0, /* .###....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0xe0, 0xc0, /* ###.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2520 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x254c */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2578 */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x25a4 */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x25d0 */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0xc0, 0xc0, /* ##......##...... */ + 0xc0, 0xc0, /* ##......##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1e, 0x00, /* ...####......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x25fc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x2628 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x71, 0x80, /* .###...##....... */ + 0x6f, 0x00, /* .##.####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x2654 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x26ac */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x26d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x2704 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x3f, 0x00, /* ..######........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x275c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7b, 0x80, /* .####.###....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0xcc, 0xc0, /* ##..##..##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2788 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x27b4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x27e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x280c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x2838 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x2864 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2890 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x28bc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x28e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x2914 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x36, 0x00, /* ..##.##......... */ + 0x18, 0x00, /* ...##........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x39, 0x80, /* ..###..##....... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x67, 0x00, /* .##..###........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x296c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x29c4 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x29f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2a1c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x2a74 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x60, /* ...#####.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0xc0, /* .##...####...... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x78, 0xc0, /* .####...##...... */ + 0x70, 0xc0, /* .###....##...... */ + 0x71, 0x80, /* .###...##....... */ + 0xdf, 0x00, /* ##.#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x2aa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2acc */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2af8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x2b24 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x2b7c */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x2ba8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_11x22_iso8859_1_descriptors[] = { + { 0x0b, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0b, 0x002c }, /* Index: 0x01, char: \x02 */ + { 0x0b, 0x0058 }, /* Index: 0x02, char: \x03 */ + { 0x0b, 0x0084 }, /* Index: 0x03, char: \x04 */ + { 0x0b, 0x00b0 }, /* Index: 0x04, char: \x05 */ + { 0x0b, 0x00dc }, /* Index: 0x05, char: \x06 */ + { 0x0b, 0x0108 }, /* Index: 0x06, char: \x07 */ + { 0x0b, 0x0134 }, /* Index: 0x07, char: \x08 */ + { 0x0b, 0x0160 }, /* Index: 0x08, char: \x09 */ + { 0x0b, 0x018c }, /* Index: 0x09, char: \x0a */ + { 0x0b, 0x01b8 }, /* Index: 0x0a, char: \x0b */ + { 0x0b, 0x01e4 }, /* Index: 0x0b, char: \x0c */ + { 0x0b, 0x0210 }, /* Index: 0x0c, char: \x0d */ + { 0x0b, 0x023c }, /* Index: 0x0d, char: \x0e */ + { 0x0b, 0x0268 }, /* Index: 0x0e, char: \x0f */ + { 0x0b, 0x0294 }, /* Index: 0x0f, char: \x10 */ + { 0x0b, 0x02c0 }, /* Index: 0x10, char: \x11 */ + { 0x0b, 0x02ec }, /* Index: 0x11, char: \x12 */ + { 0x0b, 0x0318 }, /* Index: 0x12, char: \x13 */ + { 0x0b, 0x0344 }, /* Index: 0x13, char: \x14 */ + { 0x0b, 0x0370 }, /* Index: 0x14, char: \x15 */ + { 0x0b, 0x039c }, /* Index: 0x15, char: \x16 */ + { 0x0b, 0x03c8 }, /* Index: 0x16, char: \x17 */ + { 0x0b, 0x03f4 }, /* Index: 0x17, char: \x18 */ + { 0x0b, 0x0420 }, /* Index: 0x18, char: \x19 */ + { 0x0b, 0x044c }, /* Index: 0x19, char: \x1a */ + { 0x0b, 0x0478 }, /* Index: 0x1a, char: \x1b */ + { 0x0b, 0x04a4 }, /* Index: 0x1b, char: \x1c */ + { 0x0b, 0x04d0 }, /* Index: 0x1c, char: \x1d */ + { 0x0b, 0x04fc }, /* Index: 0x1d, char: \x1e */ + { 0x0b, 0x0528 }, /* Index: 0x1e, char: \x1f */ + { 0x0b, 0x0554 }, /* Index: 0x1f, char: \x20 */ + { 0x0b, 0x0580 }, /* Index: 0x20, char: \x21 */ + { 0x0b, 0x05ac }, /* Index: 0x21, char: \x22 */ + { 0x0b, 0x05d8 }, /* Index: 0x22, char: \x23 */ + { 0x0b, 0x0604 }, /* Index: 0x23, char: \x24 */ + { 0x0b, 0x0630 }, /* Index: 0x24, char: \x25 */ + { 0x0b, 0x065c }, /* Index: 0x25, char: \x26 */ + { 0x0b, 0x0688 }, /* Index: 0x26, char: \x27 */ + { 0x0b, 0x06b4 }, /* Index: 0x27, char: \x28 */ + { 0x0b, 0x06e0 }, /* Index: 0x28, char: \x29 */ + { 0x0b, 0x070c }, /* Index: 0x29, char: \x2a */ + { 0x0b, 0x0738 }, /* Index: 0x2a, char: \x2b */ + { 0x0b, 0x0764 }, /* Index: 0x2b, char: \x2c */ + { 0x0b, 0x0790 }, /* Index: 0x2c, char: \x2d */ + { 0x0b, 0x07bc }, /* Index: 0x2d, char: \x2e */ + { 0x0b, 0x07e8 }, /* Index: 0x2e, char: \x2f */ + { 0x0b, 0x0814 }, /* Index: 0x2f, char: \x30 */ + { 0x0b, 0x0840 }, /* Index: 0x30, char: \x31 */ + { 0x0b, 0x086c }, /* Index: 0x31, char: \x32 */ + { 0x0b, 0x0898 }, /* Index: 0x32, char: \x33 */ + { 0x0b, 0x08c4 }, /* Index: 0x33, char: \x34 */ + { 0x0b, 0x08f0 }, /* Index: 0x34, char: \x35 */ + { 0x0b, 0x091c }, /* Index: 0x35, char: \x36 */ + { 0x0b, 0x0948 }, /* Index: 0x36, char: \x37 */ + { 0x0b, 0x0974 }, /* Index: 0x37, char: \x38 */ + { 0x0b, 0x09a0 }, /* Index: 0x38, char: \x39 */ + { 0x0b, 0x09cc }, /* Index: 0x39, char: \x3a */ + { 0x0b, 0x09f8 }, /* Index: 0x3a, char: \x3b */ + { 0x0b, 0x0a24 }, /* Index: 0x3b, char: \x3c */ + { 0x0b, 0x0a50 }, /* Index: 0x3c, char: \x3d */ + { 0x0b, 0x0a7c }, /* Index: 0x3d, char: \x3e */ + { 0x0b, 0x0aa8 }, /* Index: 0x3e, char: \x3f */ + { 0x0b, 0x0ad4 }, /* Index: 0x3f, char: \x40 */ + { 0x0b, 0x0b00 }, /* Index: 0x40, char: \x41 */ + { 0x0b, 0x0b2c }, /* Index: 0x41, char: \x42 */ + { 0x0b, 0x0b58 }, /* Index: 0x42, char: \x43 */ + { 0x0b, 0x0b84 }, /* Index: 0x43, char: \x44 */ + { 0x0b, 0x0bb0 }, /* Index: 0x44, char: \x45 */ + { 0x0b, 0x0bdc }, /* Index: 0x45, char: \x46 */ + { 0x0b, 0x0c08 }, /* Index: 0x46, char: \x47 */ + { 0x0b, 0x0c34 }, /* Index: 0x47, char: \x48 */ + { 0x0b, 0x0c60 }, /* Index: 0x48, char: \x49 */ + { 0x0b, 0x0c8c }, /* Index: 0x49, char: \x4a */ + { 0x0b, 0x0cb8 }, /* Index: 0x4a, char: \x4b */ + { 0x0b, 0x0ce4 }, /* Index: 0x4b, char: \x4c */ + { 0x0b, 0x0d10 }, /* Index: 0x4c, char: \x4d */ + { 0x0b, 0x0d3c }, /* Index: 0x4d, char: \x4e */ + { 0x0b, 0x0d68 }, /* Index: 0x4e, char: \x4f */ + { 0x0b, 0x0d94 }, /* Index: 0x4f, char: \x50 */ + { 0x0b, 0x0dc0 }, /* Index: 0x50, char: \x51 */ + { 0x0b, 0x0dec }, /* Index: 0x51, char: \x52 */ + { 0x0b, 0x0e18 }, /* Index: 0x52, char: \x53 */ + { 0x0b, 0x0e44 }, /* Index: 0x53, char: \x54 */ + { 0x0b, 0x0e70 }, /* Index: 0x54, char: \x55 */ + { 0x0b, 0x0e9c }, /* Index: 0x55, char: \x56 */ + { 0x0b, 0x0ec8 }, /* Index: 0x56, char: \x57 */ + { 0x0b, 0x0ef4 }, /* Index: 0x57, char: \x58 */ + { 0x0b, 0x0f20 }, /* Index: 0x58, char: \x59 */ + { 0x0b, 0x0f4c }, /* Index: 0x59, char: \x5a */ + { 0x0b, 0x0f78 }, /* Index: 0x5a, char: \x5b */ + { 0x0b, 0x0fa4 }, /* Index: 0x5b, char: \x5c */ + { 0x0b, 0x0fd0 }, /* Index: 0x5c, char: \x5d */ + { 0x0b, 0x0ffc }, /* Index: 0x5d, char: \x5e */ + { 0x0b, 0x1028 }, /* Index: 0x5e, char: \x5f */ + { 0x0b, 0x1054 }, /* Index: 0x5f, char: \x60 */ + { 0x0b, 0x1080 }, /* Index: 0x60, char: \x61 */ + { 0x0b, 0x10ac }, /* Index: 0x61, char: \x62 */ + { 0x0b, 0x10d8 }, /* Index: 0x62, char: \x63 */ + { 0x0b, 0x1104 }, /* Index: 0x63, char: \x64 */ + { 0x0b, 0x1130 }, /* Index: 0x64, char: \x65 */ + { 0x0b, 0x115c }, /* Index: 0x65, char: \x66 */ + { 0x0b, 0x1188 }, /* Index: 0x66, char: \x67 */ + { 0x0b, 0x11b4 }, /* Index: 0x67, char: \x68 */ + { 0x0b, 0x11e0 }, /* Index: 0x68, char: \x69 */ + { 0x0b, 0x120c }, /* Index: 0x69, char: \x6a */ + { 0x0b, 0x1238 }, /* Index: 0x6a, char: \x6b */ + { 0x0b, 0x1264 }, /* Index: 0x6b, char: \x6c */ + { 0x0b, 0x1290 }, /* Index: 0x6c, char: \x6d */ + { 0x0b, 0x12bc }, /* Index: 0x6d, char: \x6e */ + { 0x0b, 0x12e8 }, /* Index: 0x6e, char: \x6f */ + { 0x0b, 0x1314 }, /* Index: 0x6f, char: \x70 */ + { 0x0b, 0x1340 }, /* Index: 0x70, char: \x71 */ + { 0x0b, 0x136c }, /* Index: 0x71, char: \x72 */ + { 0x0b, 0x1398 }, /* Index: 0x72, char: \x73 */ + { 0x0b, 0x13c4 }, /* Index: 0x73, char: \x74 */ + { 0x0b, 0x13f0 }, /* Index: 0x74, char: \x75 */ + { 0x0b, 0x141c }, /* Index: 0x75, char: \x76 */ + { 0x0b, 0x1448 }, /* Index: 0x76, char: \x77 */ + { 0x0b, 0x1474 }, /* Index: 0x77, char: \x78 */ + { 0x0b, 0x14a0 }, /* Index: 0x78, char: \x79 */ + { 0x0b, 0x14cc }, /* Index: 0x79, char: \x7a */ + { 0x0b, 0x14f8 }, /* Index: 0x7a, char: \x7b */ + { 0x0b, 0x1524 }, /* Index: 0x7b, char: \x7c */ + { 0x0b, 0x1550 }, /* Index: 0x7c, char: \x7d */ + { 0x0b, 0x157c }, /* Index: 0x7d, char: \x7e */ + { 0x0b, 0x15a8 }, /* Index: 0x7e, char: \x7f */ + { 0x0b, 0x15d4 }, /* Index: 0x7f, char: \x80 */ + { 0x0b, 0x1600 }, /* Index: 0x80, char: \x81 */ + { 0x0b, 0x162c }, /* Index: 0x81, char: \x82 */ + { 0x0b, 0x1658 }, /* Index: 0x82, char: \x83 */ + { 0x0b, 0x1684 }, /* Index: 0x83, char: \x84 */ + { 0x0b, 0x16b0 }, /* Index: 0x84, char: \x85 */ + { 0x0b, 0x16dc }, /* Index: 0x85, char: \x86 */ + { 0x0b, 0x1708 }, /* Index: 0x86, char: \x87 */ + { 0x0b, 0x1734 }, /* Index: 0x87, char: \x88 */ + { 0x0b, 0x1760 }, /* Index: 0x88, char: \x89 */ + { 0x0b, 0x178c }, /* Index: 0x89, char: \x8a */ + { 0x0b, 0x17b8 }, /* Index: 0x8a, char: \x8b */ + { 0x0b, 0x17e4 }, /* Index: 0x8b, char: \x8c */ + { 0x0b, 0x1810 }, /* Index: 0x8c, char: \x8d */ + { 0x0b, 0x183c }, /* Index: 0x8d, char: \x8e */ + { 0x0b, 0x1868 }, /* Index: 0x8e, char: \x8f */ + { 0x0b, 0x1894 }, /* Index: 0x8f, char: \x90 */ + { 0x0b, 0x18c0 }, /* Index: 0x90, char: \x91 */ + { 0x0b, 0x18ec }, /* Index: 0x91, char: \x92 */ + { 0x0b, 0x1918 }, /* Index: 0x92, char: \x93 */ + { 0x0b, 0x1944 }, /* Index: 0x93, char: \x94 */ + { 0x0b, 0x1970 }, /* Index: 0x94, char: \x95 */ + { 0x0b, 0x199c }, /* Index: 0x95, char: \x96 */ + { 0x0b, 0x19c8 }, /* Index: 0x96, char: \x97 */ + { 0x0b, 0x19f4 }, /* Index: 0x97, char: \x98 */ + { 0x0b, 0x1a20 }, /* Index: 0x98, char: \x99 */ + { 0x0b, 0x1a4c }, /* Index: 0x99, char: \x9a */ + { 0x0b, 0x1a78 }, /* Index: 0x9a, char: \x9b */ + { 0x0b, 0x1aa4 }, /* Index: 0x9b, char: \x9c */ + { 0x0b, 0x1ad0 }, /* Index: 0x9c, char: \x9d */ + { 0x0b, 0x1afc }, /* Index: 0x9d, char: \x9e */ + { 0x0b, 0x1b28 }, /* Index: 0x9e, char: \x9f */ + { 0x0b, 0x1b54 }, /* Index: 0x9f, char: \xa0 */ + { 0x0b, 0x1b80 }, /* Index: 0xa0, char: \xa1 */ + { 0x0b, 0x1bac }, /* Index: 0xa1, char: \xa2 */ + { 0x0b, 0x1bd8 }, /* Index: 0xa2, char: \xa3 */ + { 0x0b, 0x1c04 }, /* Index: 0xa3, char: \xa4 */ + { 0x0b, 0x1c30 }, /* Index: 0xa4, char: \xa5 */ + { 0x0b, 0x1c5c }, /* Index: 0xa5, char: \xa6 */ + { 0x0b, 0x1c88 }, /* Index: 0xa6, char: \xa7 */ + { 0x0b, 0x1cb4 }, /* Index: 0xa7, char: \xa8 */ + { 0x0b, 0x1ce0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0b, 0x1d0c }, /* Index: 0xa9, char: \xaa */ + { 0x0b, 0x1d38 }, /* Index: 0xaa, char: \xab */ + { 0x0b, 0x1d64 }, /* Index: 0xab, char: \xac */ + { 0x0b, 0x1d90 }, /* Index: 0xac, char: \xad */ + { 0x0b, 0x1dbc }, /* Index: 0xad, char: \xae */ + { 0x0b, 0x1de8 }, /* Index: 0xae, char: \xaf */ + { 0x0b, 0x1e14 }, /* Index: 0xaf, char: \xb0 */ + { 0x0b, 0x1e40 }, /* Index: 0xb0, char: \xb1 */ + { 0x0b, 0x1e6c }, /* Index: 0xb1, char: \xb2 */ + { 0x0b, 0x1e98 }, /* Index: 0xb2, char: \xb3 */ + { 0x0b, 0x1ec4 }, /* Index: 0xb3, char: \xb4 */ + { 0x0b, 0x1ef0 }, /* Index: 0xb4, char: \xb5 */ + { 0x0b, 0x1f1c }, /* Index: 0xb5, char: \xb6 */ + { 0x0b, 0x1f48 }, /* Index: 0xb6, char: \xb7 */ + { 0x0b, 0x1f74 }, /* Index: 0xb7, char: \xb8 */ + { 0x0b, 0x1fa0 }, /* Index: 0xb8, char: \xb9 */ + { 0x0b, 0x1fcc }, /* Index: 0xb9, char: \xba */ + { 0x0b, 0x1ff8 }, /* Index: 0xba, char: \xbb */ + { 0x0b, 0x2024 }, /* Index: 0xbb, char: \xbc */ + { 0x0b, 0x2050 }, /* Index: 0xbc, char: \xbd */ + { 0x0b, 0x207c }, /* Index: 0xbd, char: \xbe */ + { 0x0b, 0x20a8 }, /* Index: 0xbe, char: \xbf */ + { 0x0b, 0x20d4 }, /* Index: 0xbf, char: \xc0 */ + { 0x0b, 0x2100 }, /* Index: 0xc0, char: \xc1 */ + { 0x0b, 0x212c }, /* Index: 0xc1, char: \xc2 */ + { 0x0b, 0x2158 }, /* Index: 0xc2, char: \xc3 */ + { 0x0b, 0x2184 }, /* Index: 0xc3, char: \xc4 */ + { 0x0b, 0x21b0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0b, 0x21dc }, /* Index: 0xc5, char: \xc6 */ + { 0x0b, 0x2208 }, /* Index: 0xc6, char: \xc7 */ + { 0x0b, 0x2234 }, /* Index: 0xc7, char: \xc8 */ + { 0x0b, 0x2260 }, /* Index: 0xc8, char: \xc9 */ + { 0x0b, 0x228c }, /* Index: 0xc9, char: \xca */ + { 0x0b, 0x22b8 }, /* Index: 0xca, char: \xcb */ + { 0x0b, 0x22e4 }, /* Index: 0xcb, char: \xcc */ + { 0x0b, 0x2310 }, /* Index: 0xcc, char: \xcd */ + { 0x0b, 0x233c }, /* Index: 0xcd, char: \xce */ + { 0x0b, 0x2368 }, /* Index: 0xce, char: \xcf */ + { 0x0b, 0x2394 }, /* Index: 0xcf, char: \xd0 */ + { 0x0b, 0x23c0 }, /* Index: 0xd0, char: \xd1 */ + { 0x0b, 0x23ec }, /* Index: 0xd1, char: \xd2 */ + { 0x0b, 0x2418 }, /* Index: 0xd2, char: \xd3 */ + { 0x0b, 0x2444 }, /* Index: 0xd3, char: \xd4 */ + { 0x0b, 0x2470 }, /* Index: 0xd4, char: \xd5 */ + { 0x0b, 0x249c }, /* Index: 0xd5, char: \xd6 */ + { 0x0b, 0x24c8 }, /* Index: 0xd6, char: \xd7 */ + { 0x0b, 0x24f4 }, /* Index: 0xd7, char: \xd8 */ + { 0x0b, 0x2520 }, /* Index: 0xd8, char: \xd9 */ + { 0x0b, 0x254c }, /* Index: 0xd9, char: \xda */ + { 0x0b, 0x2578 }, /* Index: 0xda, char: \xdb */ + { 0x0b, 0x25a4 }, /* Index: 0xdb, char: \xdc */ + { 0x0b, 0x25d0 }, /* Index: 0xdc, char: \xdd */ + { 0x0b, 0x25fc }, /* Index: 0xdd, char: \xde */ + { 0x0b, 0x2628 }, /* Index: 0xde, char: \xdf */ + { 0x0b, 0x2654 }, /* Index: 0xdf, char: \xe0 */ + { 0x0b, 0x2680 }, /* Index: 0xe0, char: \xe1 */ + { 0x0b, 0x26ac }, /* Index: 0xe1, char: \xe2 */ + { 0x0b, 0x26d8 }, /* Index: 0xe2, char: \xe3 */ + { 0x0b, 0x2704 }, /* Index: 0xe3, char: \xe4 */ + { 0x0b, 0x2730 }, /* Index: 0xe4, char: \xe5 */ + { 0x0b, 0x275c }, /* Index: 0xe5, char: \xe6 */ + { 0x0b, 0x2788 }, /* Index: 0xe6, char: \xe7 */ + { 0x0b, 0x27b4 }, /* Index: 0xe7, char: \xe8 */ + { 0x0b, 0x27e0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0b, 0x280c }, /* Index: 0xe9, char: \xea */ + { 0x0b, 0x2838 }, /* Index: 0xea, char: \xeb */ + { 0x0b, 0x2864 }, /* Index: 0xeb, char: \xec */ + { 0x0b, 0x2890 }, /* Index: 0xec, char: \xed */ + { 0x0b, 0x28bc }, /* Index: 0xed, char: \xee */ + { 0x0b, 0x28e8 }, /* Index: 0xee, char: \xef */ + { 0x0b, 0x2914 }, /* Index: 0xef, char: \xf0 */ + { 0x0b, 0x2940 }, /* Index: 0xf0, char: \xf1 */ + { 0x0b, 0x296c }, /* Index: 0xf1, char: \xf2 */ + { 0x0b, 0x2998 }, /* Index: 0xf2, char: \xf3 */ + { 0x0b, 0x29c4 }, /* Index: 0xf3, char: \xf4 */ + { 0x0b, 0x29f0 }, /* Index: 0xf4, char: \xf5 */ + { 0x0b, 0x2a1c }, /* Index: 0xf5, char: \xf6 */ + { 0x0b, 0x2a48 }, /* Index: 0xf6, char: \xf7 */ + { 0x0b, 0x2a74 }, /* Index: 0xf7, char: \xf8 */ + { 0x0b, 0x2aa0 }, /* Index: 0xf8, char: \xf9 */ + { 0x0b, 0x2acc }, /* Index: 0xf9, char: \xfa */ + { 0x0b, 0x2af8 }, /* Index: 0xfa, char: \xfb */ + { 0x0b, 0x2b24 }, /* Index: 0xfb, char: \xfc */ + { 0x0b, 0x2b50 }, /* Index: 0xfc, char: \xfd */ + { 0x0b, 0x2b7c }, /* Index: 0xfd, char: \xfe */ + { 0x0b, 0x2ba8 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_11x22_iso8859_1_info = +{ + .height = 22, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_11x22_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_11x22_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_11X22_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_12x24_iso8859_1.h b/extras/fonts/data/font_terminus_bold_12x24_iso8859_1.h new file mode 100644 index 0000000..4821b29 --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_12x24_iso8859_1.h @@ -0,0 +1,6919 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 12x24 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:35:39 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_12X24_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_12X24_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_12x24_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x80, /* ...######....... */ + 0x3f, 0xc0, /* ..########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0x80, /* ...######....... */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0030 */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + 0xaa, 0xa0, /* #.#.#.#.#.#..... */ + 0x55, 0x50, /* .#.#.#.#.#.#.... */ + + /* Index: 0x02, char: \x03, offset: 0x0060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x7e, 0x00, /* .######......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x0090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7e, 0x00, /* .######......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x78, 0x00, /* .####........... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x80, /* .....####....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x66, 0x00, /* .##..##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0x80, /* .....####....... */ + 0x06, 0xc0, /* .....##.##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x00f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7e, 0x00, /* .######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x80, /* .....####....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0120 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x76, 0x00, /* .###.##......... */ + 0x7e, 0x00, /* .######......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x01e0 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0210 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0270 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xf0, /* .....#######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x02a0 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x0f, char: \x10, offset: 0x02d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0360 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0390 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x03c0 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xf0, /* .....#######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x15, char: \x16, offset: 0x03f0 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x16, char: \x17, offset: 0x0420 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x18, char: \x19, offset: 0x0480 */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + + /* Index: 0x19, char: \x1a, offset: 0x04b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x04e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x0510 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7f, 0x00, /* .#######........ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x05a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x05d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0630 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0660 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x7f, 0xe0, /* .##########..... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x7f, 0xe0, /* .##########..... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0xc0, /* .....##.##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0xc0, /* ..###...##...... */ + 0x6c, 0xc0, /* .##.##..##...... */ + 0x6d, 0x80, /* .##.##.##....... */ + 0x39, 0x80, /* ..###..##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x1b, 0x60, /* ...##.##.##..... */ + 0x33, 0x60, /* ..##..##.##..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x06f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1e, 0x60, /* ...####..##..... */ + 0x33, 0x60, /* ..##..##.##..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0xc0, /* .##....###...... */ + 0x33, 0x60, /* ..##..##.##..... */ + 0x1e, 0x60, /* ...####..##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0750 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x07b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x0e, 0x00, /* ....###......... */ + 0xff, 0xe0, /* ###########..... */ + 0x0e, 0x00, /* ....###......... */ + 0x1b, 0x00, /* ...##.##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0870 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x08a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x08d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x78, 0x60, /* .####....##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1e, 0x00, /* ...####......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xe0, /* .......####..... */ + 0x03, 0x60, /* ......##.##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x09f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0a20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0a50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0ae0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0b10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0b70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0ba0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc3, 0xe0, /* ##....#####..... */ + 0xc6, 0x60, /* ##...##..##..... */ + 0xcc, 0x60, /* ##..##...##..... */ + 0xcc, 0x60, /* ##..##...##..... */ + 0xcc, 0x60, /* ##..##...##..... */ + 0xcc, 0x60, /* ##..##...##..... */ + 0xcc, 0x60, /* ##..##...##..... */ + 0xc6, 0x60, /* ##...##..##..... */ + 0xc3, 0xe0, /* ##....#####..... */ + 0xc0, 0x00, /* ##.............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0c60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0c90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0cf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0xe0, /* .##...#####..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0d50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0db0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x0de0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x63, 0x00, /* .##...##........ */ + 0x66, 0x00, /* .##..##......... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x0e10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x80, 0x20, /* #.........#..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xe0, 0xe0, /* ###.....###..... */ + 0xf1, 0xe0, /* ####...####..... */ + 0xdb, 0x60, /* ##.##.##.##..... */ + 0xce, 0x60, /* ##..###..##..... */ + 0xc4, 0x60, /* ##...#...##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x78, 0x60, /* .####....##..... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x0ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x0f30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x78, 0x00, /* .####........... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x63, 0x00, /* .##...##........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x0f60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x00, /* ..##............ */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x0f90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x0ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1020 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0xc4, 0x60, /* ##...#...##..... */ + 0xce, 0x60, /* ##..###..##..... */ + 0xdb, 0x60, /* ##.##.##.##..... */ + 0xf1, 0xe0, /* ####...####..... */ + 0xe0, 0xe0, /* ###.....###..... */ + 0xc0, 0x60, /* ##.......##..... */ + 0x80, 0x20, /* #.........#..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1050 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x10b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x10e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x11a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x11d0 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1230 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x1290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x12f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xe0, /* ......#####..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1320 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1350 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x13e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x36, 0x00, /* ..##.##......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x66, 0xc0, /* .##..##.##...... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1470 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x14a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x14d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1530 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xe0, /* .##..######..... */ + 0x6c, 0x00, /* .##.##.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1590 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x7f, 0x80, /* .########....... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x15f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x16b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x16e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1710 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x80, /* ......###....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x60, /* ..####...##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x63, 0xc0, /* .##...####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x17d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1830 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1860 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1890 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1920 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1950 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x19b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x19e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x1a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1aa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1ad0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1b30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x1bf0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x1c20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x1c50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x1cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x1d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x1d70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x1da0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x1dd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x1e30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x00, /* .##..##......... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x1e60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x7f, 0x00, /* .#######........ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x1e90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xc0, 0x60, /* ##.......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0xc0, 0x60, /* ##.......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x1ef0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x1f20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x1e, 0x00, /* ...####......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x1f50 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x40, /* .#.......#...... */ + 0x9f, 0x20, /* #..#####..#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xb0, 0x20, /* #.##......#..... */ + 0xb0, 0x20, /* #.##......#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0x9f, 0x20, /* #..#####..#..... */ + 0x40, 0x40, /* .#.......#...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x1fb0 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x1fe0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2010 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x40, 0x40, /* .#.......#...... */ + 0xbf, 0x20, /* #.######..#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0xbf, 0x20, /* #.######..#..... */ + 0xb6, 0x20, /* #.##.##...#..... */ + 0xb3, 0x20, /* #.##..##..#..... */ + 0xb1, 0xa0, /* #.##...##.#..... */ + 0x40, 0x40, /* .#.......#...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x20a0 */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x2130 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x2160 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2190 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x7f, 0x60, /* .#######.##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x21f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x3e, 0x60, /* ..#####..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x06, 0x60, /* .....##..##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x22b0 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x00, /* ...#####........ */ + 0x31, 0x80, /* ..##...##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x31, 0x80, /* ..##...##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x22e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xcc, 0x00, /* ##..##.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x33, 0x00, /* ..##..##........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x33, 0x00, /* ..##..##........ */ + 0x66, 0x00, /* .##..##......... */ + 0xcc, 0x00, /* ##..##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2310 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x20, /* ....##....#..... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xe0, /* ....##..###..... */ + 0x19, 0xe0, /* ...##..####..... */ + 0x33, 0x60, /* ..##..##.##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x47, 0xe0, /* .#...######..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x0c, 0x20, /* ....##....#..... */ + 0x0c, 0x60, /* ....##...##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x1b, 0xc0, /* ...##.####...... */ + 0x36, 0x60, /* ..##.##..##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x40, 0xc0, /* .#......##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x00, /* ..####.......... */ + 0x66, 0x00, /* .##..##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x20, /* .....##...#..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x3c, 0xc0, /* ..####..##...... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x60, /* .....##..##..... */ + 0x0c, 0xe0, /* ....##..###..... */ + 0x19, 0xe0, /* ...##..####..... */ + 0x33, 0x60, /* ..##..##.##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x47, 0xe0, /* .#...######..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x23a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x23d0 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2400 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2430 */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2460 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2490 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x24c0 */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x24f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x63, 0x00, /* .##...##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xff, 0xf0, /* ############.... */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0xf0, /* ##....######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2520 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2550 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2580 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x25b0 */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x25e0 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2610 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2640 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2670 */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x26a0 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x26d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0xfe, 0x60, /* #######..##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2700 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x78, 0x60, /* .####....##..... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2730 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2760 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2790 */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x27c0 */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x27f0 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2820 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x78, 0x60, /* .####....##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0xe0, 0x60, /* ###......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2880 */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x28b0 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x28e0 */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2910 */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x2940 */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x2970 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x29a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x61, 0x80, /* .##....##....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x68, 0xc0, /* .##.#...##...... */ + 0x6f, 0x80, /* .##.#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x29d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x2a30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x2a60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x2a90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x2ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x0f, 0x00, /* ....####........ */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x2af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7b, 0xe0, /* .####.#####..... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x06, 0x30, /* .....##...##.... */ + 0x7e, 0x30, /* .######...##.... */ + 0xc7, 0xf0, /* ##...#######.... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc6, 0x00, /* ##...##......... */ + 0xc7, 0x30, /* ##...###..##.... */ + 0x7d, 0xe0, /* .#####.####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x2b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x2b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x2bb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x2be0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x2c10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x2c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x2c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x2ca0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x00, /* ...####......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x2cd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x36, 0x00, /* ..##.##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x36, 0x00, /* ..##.##......... */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x2d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x2d30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x2d60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x2d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0xc0, /* ...###..##...... */ + 0x36, 0xc0, /* ..##.##.##...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x2df0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x80, /* ...######....... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x2e20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x2e50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xa0, /* ...######.#..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0x60, /* .##...##.##..... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x6c, 0x60, /* .##.##...##..... */ + 0x78, 0x60, /* .####....##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x5f, 0x80, /* .#.######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x2e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x2eb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x2ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x0f, 0x00, /* ....####........ */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x2f10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x2f70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x2fa0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x19, 0x80, /* ...##..##....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_12x24_iso8859_1_descriptors[] = { + { 0x0c, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0c, 0x0030 }, /* Index: 0x01, char: \x02 */ + { 0x0c, 0x0060 }, /* Index: 0x02, char: \x03 */ + { 0x0c, 0x0090 }, /* Index: 0x03, char: \x04 */ + { 0x0c, 0x00c0 }, /* Index: 0x04, char: \x05 */ + { 0x0c, 0x00f0 }, /* Index: 0x05, char: \x06 */ + { 0x0c, 0x0120 }, /* Index: 0x06, char: \x07 */ + { 0x0c, 0x0150 }, /* Index: 0x07, char: \x08 */ + { 0x0c, 0x0180 }, /* Index: 0x08, char: \x09 */ + { 0x0c, 0x01b0 }, /* Index: 0x09, char: \x0a */ + { 0x0c, 0x01e0 }, /* Index: 0x0a, char: \x0b */ + { 0x0c, 0x0210 }, /* Index: 0x0b, char: \x0c */ + { 0x0c, 0x0240 }, /* Index: 0x0c, char: \x0d */ + { 0x0c, 0x0270 }, /* Index: 0x0d, char: \x0e */ + { 0x0c, 0x02a0 }, /* Index: 0x0e, char: \x0f */ + { 0x0c, 0x02d0 }, /* Index: 0x0f, char: \x10 */ + { 0x0c, 0x0300 }, /* Index: 0x10, char: \x11 */ + { 0x0c, 0x0330 }, /* Index: 0x11, char: \x12 */ + { 0x0c, 0x0360 }, /* Index: 0x12, char: \x13 */ + { 0x0c, 0x0390 }, /* Index: 0x13, char: \x14 */ + { 0x0c, 0x03c0 }, /* Index: 0x14, char: \x15 */ + { 0x0c, 0x03f0 }, /* Index: 0x15, char: \x16 */ + { 0x0c, 0x0420 }, /* Index: 0x16, char: \x17 */ + { 0x0c, 0x0450 }, /* Index: 0x17, char: \x18 */ + { 0x0c, 0x0480 }, /* Index: 0x18, char: \x19 */ + { 0x0c, 0x04b0 }, /* Index: 0x19, char: \x1a */ + { 0x0c, 0x04e0 }, /* Index: 0x1a, char: \x1b */ + { 0x0c, 0x0510 }, /* Index: 0x1b, char: \x1c */ + { 0x0c, 0x0540 }, /* Index: 0x1c, char: \x1d */ + { 0x0c, 0x0570 }, /* Index: 0x1d, char: \x1e */ + { 0x0c, 0x05a0 }, /* Index: 0x1e, char: \x1f */ + { 0x0c, 0x05d0 }, /* Index: 0x1f, char: \x20 */ + { 0x0c, 0x0600 }, /* Index: 0x20, char: \x21 */ + { 0x0c, 0x0630 }, /* Index: 0x21, char: \x22 */ + { 0x0c, 0x0660 }, /* Index: 0x22, char: \x23 */ + { 0x0c, 0x0690 }, /* Index: 0x23, char: \x24 */ + { 0x0c, 0x06c0 }, /* Index: 0x24, char: \x25 */ + { 0x0c, 0x06f0 }, /* Index: 0x25, char: \x26 */ + { 0x0c, 0x0720 }, /* Index: 0x26, char: \x27 */ + { 0x0c, 0x0750 }, /* Index: 0x27, char: \x28 */ + { 0x0c, 0x0780 }, /* Index: 0x28, char: \x29 */ + { 0x0c, 0x07b0 }, /* Index: 0x29, char: \x2a */ + { 0x0c, 0x07e0 }, /* Index: 0x2a, char: \x2b */ + { 0x0c, 0x0810 }, /* Index: 0x2b, char: \x2c */ + { 0x0c, 0x0840 }, /* Index: 0x2c, char: \x2d */ + { 0x0c, 0x0870 }, /* Index: 0x2d, char: \x2e */ + { 0x0c, 0x08a0 }, /* Index: 0x2e, char: \x2f */ + { 0x0c, 0x08d0 }, /* Index: 0x2f, char: \x30 */ + { 0x0c, 0x0900 }, /* Index: 0x30, char: \x31 */ + { 0x0c, 0x0930 }, /* Index: 0x31, char: \x32 */ + { 0x0c, 0x0960 }, /* Index: 0x32, char: \x33 */ + { 0x0c, 0x0990 }, /* Index: 0x33, char: \x34 */ + { 0x0c, 0x09c0 }, /* Index: 0x34, char: \x35 */ + { 0x0c, 0x09f0 }, /* Index: 0x35, char: \x36 */ + { 0x0c, 0x0a20 }, /* Index: 0x36, char: \x37 */ + { 0x0c, 0x0a50 }, /* Index: 0x37, char: \x38 */ + { 0x0c, 0x0a80 }, /* Index: 0x38, char: \x39 */ + { 0x0c, 0x0ab0 }, /* Index: 0x39, char: \x3a */ + { 0x0c, 0x0ae0 }, /* Index: 0x3a, char: \x3b */ + { 0x0c, 0x0b10 }, /* Index: 0x3b, char: \x3c */ + { 0x0c, 0x0b40 }, /* Index: 0x3c, char: \x3d */ + { 0x0c, 0x0b70 }, /* Index: 0x3d, char: \x3e */ + { 0x0c, 0x0ba0 }, /* Index: 0x3e, char: \x3f */ + { 0x0c, 0x0bd0 }, /* Index: 0x3f, char: \x40 */ + { 0x0c, 0x0c00 }, /* Index: 0x40, char: \x41 */ + { 0x0c, 0x0c30 }, /* Index: 0x41, char: \x42 */ + { 0x0c, 0x0c60 }, /* Index: 0x42, char: \x43 */ + { 0x0c, 0x0c90 }, /* Index: 0x43, char: \x44 */ + { 0x0c, 0x0cc0 }, /* Index: 0x44, char: \x45 */ + { 0x0c, 0x0cf0 }, /* Index: 0x45, char: \x46 */ + { 0x0c, 0x0d20 }, /* Index: 0x46, char: \x47 */ + { 0x0c, 0x0d50 }, /* Index: 0x47, char: \x48 */ + { 0x0c, 0x0d80 }, /* Index: 0x48, char: \x49 */ + { 0x0c, 0x0db0 }, /* Index: 0x49, char: \x4a */ + { 0x0c, 0x0de0 }, /* Index: 0x4a, char: \x4b */ + { 0x0c, 0x0e10 }, /* Index: 0x4b, char: \x4c */ + { 0x0c, 0x0e40 }, /* Index: 0x4c, char: \x4d */ + { 0x0c, 0x0e70 }, /* Index: 0x4d, char: \x4e */ + { 0x0c, 0x0ea0 }, /* Index: 0x4e, char: \x4f */ + { 0x0c, 0x0ed0 }, /* Index: 0x4f, char: \x50 */ + { 0x0c, 0x0f00 }, /* Index: 0x50, char: \x51 */ + { 0x0c, 0x0f30 }, /* Index: 0x51, char: \x52 */ + { 0x0c, 0x0f60 }, /* Index: 0x52, char: \x53 */ + { 0x0c, 0x0f90 }, /* Index: 0x53, char: \x54 */ + { 0x0c, 0x0fc0 }, /* Index: 0x54, char: \x55 */ + { 0x0c, 0x0ff0 }, /* Index: 0x55, char: \x56 */ + { 0x0c, 0x1020 }, /* Index: 0x56, char: \x57 */ + { 0x0c, 0x1050 }, /* Index: 0x57, char: \x58 */ + { 0x0c, 0x1080 }, /* Index: 0x58, char: \x59 */ + { 0x0c, 0x10b0 }, /* Index: 0x59, char: \x5a */ + { 0x0c, 0x10e0 }, /* Index: 0x5a, char: \x5b */ + { 0x0c, 0x1110 }, /* Index: 0x5b, char: \x5c */ + { 0x0c, 0x1140 }, /* Index: 0x5c, char: \x5d */ + { 0x0c, 0x1170 }, /* Index: 0x5d, char: \x5e */ + { 0x0c, 0x11a0 }, /* Index: 0x5e, char: \x5f */ + { 0x0c, 0x11d0 }, /* Index: 0x5f, char: \x60 */ + { 0x0c, 0x1200 }, /* Index: 0x60, char: \x61 */ + { 0x0c, 0x1230 }, /* Index: 0x61, char: \x62 */ + { 0x0c, 0x1260 }, /* Index: 0x62, char: \x63 */ + { 0x0c, 0x1290 }, /* Index: 0x63, char: \x64 */ + { 0x0c, 0x12c0 }, /* Index: 0x64, char: \x65 */ + { 0x0c, 0x12f0 }, /* Index: 0x65, char: \x66 */ + { 0x0c, 0x1320 }, /* Index: 0x66, char: \x67 */ + { 0x0c, 0x1350 }, /* Index: 0x67, char: \x68 */ + { 0x0c, 0x1380 }, /* Index: 0x68, char: \x69 */ + { 0x0c, 0x13b0 }, /* Index: 0x69, char: \x6a */ + { 0x0c, 0x13e0 }, /* Index: 0x6a, char: \x6b */ + { 0x0c, 0x1410 }, /* Index: 0x6b, char: \x6c */ + { 0x0c, 0x1440 }, /* Index: 0x6c, char: \x6d */ + { 0x0c, 0x1470 }, /* Index: 0x6d, char: \x6e */ + { 0x0c, 0x14a0 }, /* Index: 0x6e, char: \x6f */ + { 0x0c, 0x14d0 }, /* Index: 0x6f, char: \x70 */ + { 0x0c, 0x1500 }, /* Index: 0x70, char: \x71 */ + { 0x0c, 0x1530 }, /* Index: 0x71, char: \x72 */ + { 0x0c, 0x1560 }, /* Index: 0x72, char: \x73 */ + { 0x0c, 0x1590 }, /* Index: 0x73, char: \x74 */ + { 0x0c, 0x15c0 }, /* Index: 0x74, char: \x75 */ + { 0x0c, 0x15f0 }, /* Index: 0x75, char: \x76 */ + { 0x0c, 0x1620 }, /* Index: 0x76, char: \x77 */ + { 0x0c, 0x1650 }, /* Index: 0x77, char: \x78 */ + { 0x0c, 0x1680 }, /* Index: 0x78, char: \x79 */ + { 0x0c, 0x16b0 }, /* Index: 0x79, char: \x7a */ + { 0x0c, 0x16e0 }, /* Index: 0x7a, char: \x7b */ + { 0x0c, 0x1710 }, /* Index: 0x7b, char: \x7c */ + { 0x0c, 0x1740 }, /* Index: 0x7c, char: \x7d */ + { 0x0c, 0x1770 }, /* Index: 0x7d, char: \x7e */ + { 0x0c, 0x17a0 }, /* Index: 0x7e, char: \x7f */ + { 0x0c, 0x17d0 }, /* Index: 0x7f, char: \x80 */ + { 0x0c, 0x1800 }, /* Index: 0x80, char: \x81 */ + { 0x0c, 0x1830 }, /* Index: 0x81, char: \x82 */ + { 0x0c, 0x1860 }, /* Index: 0x82, char: \x83 */ + { 0x0c, 0x1890 }, /* Index: 0x83, char: \x84 */ + { 0x0c, 0x18c0 }, /* Index: 0x84, char: \x85 */ + { 0x0c, 0x18f0 }, /* Index: 0x85, char: \x86 */ + { 0x0c, 0x1920 }, /* Index: 0x86, char: \x87 */ + { 0x0c, 0x1950 }, /* Index: 0x87, char: \x88 */ + { 0x0c, 0x1980 }, /* Index: 0x88, char: \x89 */ + { 0x0c, 0x19b0 }, /* Index: 0x89, char: \x8a */ + { 0x0c, 0x19e0 }, /* Index: 0x8a, char: \x8b */ + { 0x0c, 0x1a10 }, /* Index: 0x8b, char: \x8c */ + { 0x0c, 0x1a40 }, /* Index: 0x8c, char: \x8d */ + { 0x0c, 0x1a70 }, /* Index: 0x8d, char: \x8e */ + { 0x0c, 0x1aa0 }, /* Index: 0x8e, char: \x8f */ + { 0x0c, 0x1ad0 }, /* Index: 0x8f, char: \x90 */ + { 0x0c, 0x1b00 }, /* Index: 0x90, char: \x91 */ + { 0x0c, 0x1b30 }, /* Index: 0x91, char: \x92 */ + { 0x0c, 0x1b60 }, /* Index: 0x92, char: \x93 */ + { 0x0c, 0x1b90 }, /* Index: 0x93, char: \x94 */ + { 0x0c, 0x1bc0 }, /* Index: 0x94, char: \x95 */ + { 0x0c, 0x1bf0 }, /* Index: 0x95, char: \x96 */ + { 0x0c, 0x1c20 }, /* Index: 0x96, char: \x97 */ + { 0x0c, 0x1c50 }, /* Index: 0x97, char: \x98 */ + { 0x0c, 0x1c80 }, /* Index: 0x98, char: \x99 */ + { 0x0c, 0x1cb0 }, /* Index: 0x99, char: \x9a */ + { 0x0c, 0x1ce0 }, /* Index: 0x9a, char: \x9b */ + { 0x0c, 0x1d10 }, /* Index: 0x9b, char: \x9c */ + { 0x0c, 0x1d40 }, /* Index: 0x9c, char: \x9d */ + { 0x0c, 0x1d70 }, /* Index: 0x9d, char: \x9e */ + { 0x0c, 0x1da0 }, /* Index: 0x9e, char: \x9f */ + { 0x0c, 0x1dd0 }, /* Index: 0x9f, char: \xa0 */ + { 0x0c, 0x1e00 }, /* Index: 0xa0, char: \xa1 */ + { 0x0c, 0x1e30 }, /* Index: 0xa1, char: \xa2 */ + { 0x0c, 0x1e60 }, /* Index: 0xa2, char: \xa3 */ + { 0x0c, 0x1e90 }, /* Index: 0xa3, char: \xa4 */ + { 0x0c, 0x1ec0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0c, 0x1ef0 }, /* Index: 0xa5, char: \xa6 */ + { 0x0c, 0x1f20 }, /* Index: 0xa6, char: \xa7 */ + { 0x0c, 0x1f50 }, /* Index: 0xa7, char: \xa8 */ + { 0x0c, 0x1f80 }, /* Index: 0xa8, char: \xa9 */ + { 0x0c, 0x1fb0 }, /* Index: 0xa9, char: \xaa */ + { 0x0c, 0x1fe0 }, /* Index: 0xaa, char: \xab */ + { 0x0c, 0x2010 }, /* Index: 0xab, char: \xac */ + { 0x0c, 0x2040 }, /* Index: 0xac, char: \xad */ + { 0x0c, 0x2070 }, /* Index: 0xad, char: \xae */ + { 0x0c, 0x20a0 }, /* Index: 0xae, char: \xaf */ + { 0x0c, 0x20d0 }, /* Index: 0xaf, char: \xb0 */ + { 0x0c, 0x2100 }, /* Index: 0xb0, char: \xb1 */ + { 0x0c, 0x2130 }, /* Index: 0xb1, char: \xb2 */ + { 0x0c, 0x2160 }, /* Index: 0xb2, char: \xb3 */ + { 0x0c, 0x2190 }, /* Index: 0xb3, char: \xb4 */ + { 0x0c, 0x21c0 }, /* Index: 0xb4, char: \xb5 */ + { 0x0c, 0x21f0 }, /* Index: 0xb5, char: \xb6 */ + { 0x0c, 0x2220 }, /* Index: 0xb6, char: \xb7 */ + { 0x0c, 0x2250 }, /* Index: 0xb7, char: \xb8 */ + { 0x0c, 0x2280 }, /* Index: 0xb8, char: \xb9 */ + { 0x0c, 0x22b0 }, /* Index: 0xb9, char: \xba */ + { 0x0c, 0x22e0 }, /* Index: 0xba, char: \xbb */ + { 0x0c, 0x2310 }, /* Index: 0xbb, char: \xbc */ + { 0x0c, 0x2340 }, /* Index: 0xbc, char: \xbd */ + { 0x0c, 0x2370 }, /* Index: 0xbd, char: \xbe */ + { 0x0c, 0x23a0 }, /* Index: 0xbe, char: \xbf */ + { 0x0c, 0x23d0 }, /* Index: 0xbf, char: \xc0 */ + { 0x0c, 0x2400 }, /* Index: 0xc0, char: \xc1 */ + { 0x0c, 0x2430 }, /* Index: 0xc1, char: \xc2 */ + { 0x0c, 0x2460 }, /* Index: 0xc2, char: \xc3 */ + { 0x0c, 0x2490 }, /* Index: 0xc3, char: \xc4 */ + { 0x0c, 0x24c0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0c, 0x24f0 }, /* Index: 0xc5, char: \xc6 */ + { 0x0c, 0x2520 }, /* Index: 0xc6, char: \xc7 */ + { 0x0c, 0x2550 }, /* Index: 0xc7, char: \xc8 */ + { 0x0c, 0x2580 }, /* Index: 0xc8, char: \xc9 */ + { 0x0c, 0x25b0 }, /* Index: 0xc9, char: \xca */ + { 0x0c, 0x25e0 }, /* Index: 0xca, char: \xcb */ + { 0x0c, 0x2610 }, /* Index: 0xcb, char: \xcc */ + { 0x0c, 0x2640 }, /* Index: 0xcc, char: \xcd */ + { 0x0c, 0x2670 }, /* Index: 0xcd, char: \xce */ + { 0x0c, 0x26a0 }, /* Index: 0xce, char: \xcf */ + { 0x0c, 0x26d0 }, /* Index: 0xcf, char: \xd0 */ + { 0x0c, 0x2700 }, /* Index: 0xd0, char: \xd1 */ + { 0x0c, 0x2730 }, /* Index: 0xd1, char: \xd2 */ + { 0x0c, 0x2760 }, /* Index: 0xd2, char: \xd3 */ + { 0x0c, 0x2790 }, /* Index: 0xd3, char: \xd4 */ + { 0x0c, 0x27c0 }, /* Index: 0xd4, char: \xd5 */ + { 0x0c, 0x27f0 }, /* Index: 0xd5, char: \xd6 */ + { 0x0c, 0x2820 }, /* Index: 0xd6, char: \xd7 */ + { 0x0c, 0x2850 }, /* Index: 0xd7, char: \xd8 */ + { 0x0c, 0x2880 }, /* Index: 0xd8, char: \xd9 */ + { 0x0c, 0x28b0 }, /* Index: 0xd9, char: \xda */ + { 0x0c, 0x28e0 }, /* Index: 0xda, char: \xdb */ + { 0x0c, 0x2910 }, /* Index: 0xdb, char: \xdc */ + { 0x0c, 0x2940 }, /* Index: 0xdc, char: \xdd */ + { 0x0c, 0x2970 }, /* Index: 0xdd, char: \xde */ + { 0x0c, 0x29a0 }, /* Index: 0xde, char: \xdf */ + { 0x0c, 0x29d0 }, /* Index: 0xdf, char: \xe0 */ + { 0x0c, 0x2a00 }, /* Index: 0xe0, char: \xe1 */ + { 0x0c, 0x2a30 }, /* Index: 0xe1, char: \xe2 */ + { 0x0c, 0x2a60 }, /* Index: 0xe2, char: \xe3 */ + { 0x0c, 0x2a90 }, /* Index: 0xe3, char: \xe4 */ + { 0x0c, 0x2ac0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0c, 0x2af0 }, /* Index: 0xe5, char: \xe6 */ + { 0x0c, 0x2b20 }, /* Index: 0xe6, char: \xe7 */ + { 0x0c, 0x2b50 }, /* Index: 0xe7, char: \xe8 */ + { 0x0c, 0x2b80 }, /* Index: 0xe8, char: \xe9 */ + { 0x0c, 0x2bb0 }, /* Index: 0xe9, char: \xea */ + { 0x0c, 0x2be0 }, /* Index: 0xea, char: \xeb */ + { 0x0c, 0x2c10 }, /* Index: 0xeb, char: \xec */ + { 0x0c, 0x2c40 }, /* Index: 0xec, char: \xed */ + { 0x0c, 0x2c70 }, /* Index: 0xed, char: \xee */ + { 0x0c, 0x2ca0 }, /* Index: 0xee, char: \xef */ + { 0x0c, 0x2cd0 }, /* Index: 0xef, char: \xf0 */ + { 0x0c, 0x2d00 }, /* Index: 0xf0, char: \xf1 */ + { 0x0c, 0x2d30 }, /* Index: 0xf1, char: \xf2 */ + { 0x0c, 0x2d60 }, /* Index: 0xf2, char: \xf3 */ + { 0x0c, 0x2d90 }, /* Index: 0xf3, char: \xf4 */ + { 0x0c, 0x2dc0 }, /* Index: 0xf4, char: \xf5 */ + { 0x0c, 0x2df0 }, /* Index: 0xf5, char: \xf6 */ + { 0x0c, 0x2e20 }, /* Index: 0xf6, char: \xf7 */ + { 0x0c, 0x2e50 }, /* Index: 0xf7, char: \xf8 */ + { 0x0c, 0x2e80 }, /* Index: 0xf8, char: \xf9 */ + { 0x0c, 0x2eb0 }, /* Index: 0xf9, char: \xfa */ + { 0x0c, 0x2ee0 }, /* Index: 0xfa, char: \xfb */ + { 0x0c, 0x2f10 }, /* Index: 0xfb, char: \xfc */ + { 0x0c, 0x2f40 }, /* Index: 0xfc, char: \xfd */ + { 0x0c, 0x2f70 }, /* Index: 0xfd, char: \xfe */ + { 0x0c, 0x2fa0 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_12x24_iso8859_1_info = +{ + .height = 24, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_12x24_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_12x24_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_12X24_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_14x28_iso8859_1.h b/extras/fonts/data/font_terminus_bold_14x28_iso8859_1.h new file mode 100644 index 0000000..3c8232e --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_14x28_iso8859_1.h @@ -0,0 +1,7939 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 14x28 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:37:16 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_14x28_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xff, 0xf8, /* #############... */ + 0xff, 0xf8, /* #############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0038 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0118 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x7b, 0x00, /* .####.##........ */ + 0x6f, 0x00, /* .##.####........ */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0230 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0268 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0c, char: \x0d, offset: 0x02a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0d, char: \x0e, offset: 0x02d8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0310 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0f, char: \x10, offset: 0x0348 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x03b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0428 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0460 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x15, char: \x16, offset: 0x0498 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x16, char: \x17, offset: 0x04d0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0508 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x18, char: \x19, offset: 0x0540 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x19, char: \x1a, offset: 0x0578 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x05b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1c, 0x60, /* ...###...##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x06c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x07a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x38, /* ......##..###... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x7e, 0x30, /* .######...##.... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x7e, 0x60, /* .######..##..... */ + 0x3c, 0xc0, /* ..####..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x19, 0xf8, /* ...##..######... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0xf8, /* ..##...######... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0818 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x80, /* ...######....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1f, 0x80, /* ...######....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x3f, 0xb8, /* ..#######.###... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0888 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x08f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0968 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xb0, /* ......###.##.... */ + 0x07, 0x30, /* .....###..##.... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0b98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0c78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ce8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0d58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0xf8, /* .##...#######... */ + 0x67, 0x18, /* .##..###...##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x67, 0x18, /* .##..###...##... */ + 0x63, 0xf8, /* .##...#######... */ + 0x61, 0xe8, /* .##....####.#... */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0e38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0ea8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0f18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0f50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0xf0, /* .##...######.... */ + 0x63, 0xf0, /* .##...######.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0f88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf8, /* .......######... */ + 0x01, 0xf8, /* .......######... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0xe0, /* .###....###..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1030 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x00, /* .##..###........ */ + 0x6e, 0x00, /* .##.###......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x78, 0x00, /* .####........... */ + 0x7c, 0x00, /* .#####.......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x1068 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x10a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x1148 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7c, 0x00, /* .#####.......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x70, /* .##......###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x11f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x1228 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x12d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x78, 0x78, /* .####....####... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1308 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1378 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x13e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1420 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1458 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1490 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x14c8 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1538 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x15e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1618 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1688 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x16f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xe0, /* .......####..... */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1768 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0x63, 0x38, /* .##...##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x17d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1848 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x18b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xf0, /* .##..#######.... */ + 0x6f, 0xf0, /* .##.########.... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1928 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x19d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1a08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ae8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x7e, 0x30, /* .######...##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x63, 0xf0, /* .##...######.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1bc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x1c38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x1c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x1ca8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1ce0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x1d18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x1d50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x1d88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1df8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1e30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1e68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x1ea0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x1ed8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x1f10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x1f48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x1fb8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x1ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x2028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x2108 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x21b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x21e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2258 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x22c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x2338 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x00, /* ..##..##........ */ + 0x33, 0x30, /* ..##..##..##.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1c, 0x60, /* ...###...##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x23a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x23e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x2418 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x18, 0x00, /* ...##........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x1c, 0x60, /* ...###...##..... */ + 0x0e, 0x60, /* ....###..##..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x60, /* .........##..... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x07, 0x80, /* .....####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x2488 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xe0, 0x38, /* ###.......###... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xdf, 0xd8, /* ##.#######.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xdf, 0xd8, /* ##.#######.##... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xe0, 0x38, /* ###.......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x24f8 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2530 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0xe7, 0x00, /* ###..###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2568 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x25a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x25d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xe0, 0x38, /* ###.......###... */ + 0xdf, 0x98, /* ##.######..##... */ + 0xdf, 0xd8, /* ##.#######.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xdf, 0x98, /* ##.######..##... */ + 0xdf, 0x18, /* ##.#####...##... */ + 0xd9, 0x98, /* ##.##..##..##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xe0, 0x38, /* ###.......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2610 */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2648 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x26b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x26f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2728 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x2760 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x7f, 0xb0, /* .########.##.... */ + 0x7f, 0x30, /* .#######..##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x2798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x7f, 0xf8, /* .############... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x27d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2808 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2878 */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x28b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xe7, 0x00, /* ###..###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0xe7, 0x00, /* ###..###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x28e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x38, 0x00, /* ..###........... */ + 0x78, 0x00, /* .####........... */ + 0x18, 0x18, /* ...##......##... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x30, /* .....###..##.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xf0, /* ...###..####.... */ + 0x39, 0xb0, /* ..###..##.##.... */ + 0x73, 0x30, /* .###..##..##.... */ + 0x67, 0xf0, /* .##..#######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2920 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0x00, /* ...##........... */ + 0x38, 0x00, /* ..###........... */ + 0x78, 0x18, /* .####......##... */ + 0x18, 0x38, /* ...##.....###... */ + 0x18, 0x70, /* ...##....###.... */ + 0x18, 0xe0, /* ...##...###..... */ + 0x19, 0xc0, /* ...##..###...... */ + 0x1b, 0x80, /* ...##.###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1d, 0xf0, /* ...###.#####.... */ + 0x3b, 0xf8, /* ..###.#######... */ + 0x73, 0x18, /* .###..##...##... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xf8, /* .......######... */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2958 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x7f, 0x00, /* .#######........ */ + 0x03, 0x00, /* ......##........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x03, 0x38, /* ......##..###... */ + 0x7f, 0x70, /* .#######.###.... */ + 0x3e, 0xe0, /* ..#####.###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x98, /* ......###..##... */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x78, /* ....###..####... */ + 0x1c, 0xd8, /* ...###..##.##... */ + 0x39, 0x98, /* ..###..##..##... */ + 0x73, 0xf8, /* .###..#######... */ + 0x63, 0xf8, /* .##...#######... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x2990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x29c8 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2a00 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2a38 */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2a70 */ + 0x1e, 0x60, /* ...####..##..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2aa8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x2ae0 */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x2b18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x7f, 0xf8, /* .############... */ + 0xe3, 0x00, /* ###...##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0xf8, /* ##....#######... */ + 0xc3, 0xf8, /* ##....#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2b88 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2bc0 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x2bf8 */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x2c30 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2c68 */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2ca0 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2cd8 */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2d10 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2d48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0xfe, 0x30, /* #######...##.... */ + 0xfe, 0x30, /* #######...##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2d80 */ + 0x1e, 0x60, /* ...####..##..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2db8 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2df0 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2e28 */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2e60 */ + 0x1e, 0x60, /* ...####..##..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x2e98 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2f08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x38, /* .##.......###... */ + 0x60, 0x78, /* .##......####... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0xe0, 0x30, /* ###.......##.... */ + 0xe0, 0x30, /* ###.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2f40 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x2f78 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2fb0 */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2fe8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3020 */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x70, /* .####....###.... */ + 0x6f, 0xe0, /* .##.#######..... */ + 0x67, 0xc0, /* .##..#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x30c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3138 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x60, /* ...####..##..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x31a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x31e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3218 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7d, 0xe0, /* .#####.####..... */ + 0x7f, 0xf0, /* .###########.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x18, /* ......##...##... */ + 0x3f, 0x18, /* ..######...##... */ + 0x7f, 0xf8, /* .############... */ + 0xe3, 0xf8, /* ###...#######... */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xc3, 0x00, /* ##....##........ */ + 0xe3, 0x98, /* ###...###..##... */ + 0x7f, 0xf8, /* .############... */ + 0x3e, 0xf0, /* ..#####.####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x3288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x32f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x33a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x33d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x39, 0x80, /* ..###..##....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x1e, 0x00, /* ...####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x60, /* ..####...##..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x63, 0xc0, /* .##...####...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x34b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x34f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x60, /* ...####..##..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x33, 0xc0, /* ..##..####...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3598 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x35d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3608 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xd8, /* ...#######.##... */ + 0x3f, 0xf8, /* ..###########... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0xff, 0xe0, /* ###########..... */ + 0xdf, 0xc0, /* ##.#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x36b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x36e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_14x28_iso8859_1_descriptors[] = { + { 0x0e, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0e, 0x0038 }, /* Index: 0x01, char: \x02 */ + { 0x0e, 0x0070 }, /* Index: 0x02, char: \x03 */ + { 0x0e, 0x00a8 }, /* Index: 0x03, char: \x04 */ + { 0x0e, 0x00e0 }, /* Index: 0x04, char: \x05 */ + { 0x0e, 0x0118 }, /* Index: 0x05, char: \x06 */ + { 0x0e, 0x0150 }, /* Index: 0x06, char: \x07 */ + { 0x0e, 0x0188 }, /* Index: 0x07, char: \x08 */ + { 0x0e, 0x01c0 }, /* Index: 0x08, char: \x09 */ + { 0x0e, 0x01f8 }, /* Index: 0x09, char: \x0a */ + { 0x0e, 0x0230 }, /* Index: 0x0a, char: \x0b */ + { 0x0e, 0x0268 }, /* Index: 0x0b, char: \x0c */ + { 0x0e, 0x02a0 }, /* Index: 0x0c, char: \x0d */ + { 0x0e, 0x02d8 }, /* Index: 0x0d, char: \x0e */ + { 0x0e, 0x0310 }, /* Index: 0x0e, char: \x0f */ + { 0x0e, 0x0348 }, /* Index: 0x0f, char: \x10 */ + { 0x0e, 0x0380 }, /* Index: 0x10, char: \x11 */ + { 0x0e, 0x03b8 }, /* Index: 0x11, char: \x12 */ + { 0x0e, 0x03f0 }, /* Index: 0x12, char: \x13 */ + { 0x0e, 0x0428 }, /* Index: 0x13, char: \x14 */ + { 0x0e, 0x0460 }, /* Index: 0x14, char: \x15 */ + { 0x0e, 0x0498 }, /* Index: 0x15, char: \x16 */ + { 0x0e, 0x04d0 }, /* Index: 0x16, char: \x17 */ + { 0x0e, 0x0508 }, /* Index: 0x17, char: \x18 */ + { 0x0e, 0x0540 }, /* Index: 0x18, char: \x19 */ + { 0x0e, 0x0578 }, /* Index: 0x19, char: \x1a */ + { 0x0e, 0x05b0 }, /* Index: 0x1a, char: \x1b */ + { 0x0e, 0x05e8 }, /* Index: 0x1b, char: \x1c */ + { 0x0e, 0x0620 }, /* Index: 0x1c, char: \x1d */ + { 0x0e, 0x0658 }, /* Index: 0x1d, char: \x1e */ + { 0x0e, 0x0690 }, /* Index: 0x1e, char: \x1f */ + { 0x0e, 0x06c8 }, /* Index: 0x1f, char: \x20 */ + { 0x0e, 0x0700 }, /* Index: 0x20, char: \x21 */ + { 0x0e, 0x0738 }, /* Index: 0x21, char: \x22 */ + { 0x0e, 0x0770 }, /* Index: 0x22, char: \x23 */ + { 0x0e, 0x07a8 }, /* Index: 0x23, char: \x24 */ + { 0x0e, 0x07e0 }, /* Index: 0x24, char: \x25 */ + { 0x0e, 0x0818 }, /* Index: 0x25, char: \x26 */ + { 0x0e, 0x0850 }, /* Index: 0x26, char: \x27 */ + { 0x0e, 0x0888 }, /* Index: 0x27, char: \x28 */ + { 0x0e, 0x08c0 }, /* Index: 0x28, char: \x29 */ + { 0x0e, 0x08f8 }, /* Index: 0x29, char: \x2a */ + { 0x0e, 0x0930 }, /* Index: 0x2a, char: \x2b */ + { 0x0e, 0x0968 }, /* Index: 0x2b, char: \x2c */ + { 0x0e, 0x09a0 }, /* Index: 0x2c, char: \x2d */ + { 0x0e, 0x09d8 }, /* Index: 0x2d, char: \x2e */ + { 0x0e, 0x0a10 }, /* Index: 0x2e, char: \x2f */ + { 0x0e, 0x0a48 }, /* Index: 0x2f, char: \x30 */ + { 0x0e, 0x0a80 }, /* Index: 0x30, char: \x31 */ + { 0x0e, 0x0ab8 }, /* Index: 0x31, char: \x32 */ + { 0x0e, 0x0af0 }, /* Index: 0x32, char: \x33 */ + { 0x0e, 0x0b28 }, /* Index: 0x33, char: \x34 */ + { 0x0e, 0x0b60 }, /* Index: 0x34, char: \x35 */ + { 0x0e, 0x0b98 }, /* Index: 0x35, char: \x36 */ + { 0x0e, 0x0bd0 }, /* Index: 0x36, char: \x37 */ + { 0x0e, 0x0c08 }, /* Index: 0x37, char: \x38 */ + { 0x0e, 0x0c40 }, /* Index: 0x38, char: \x39 */ + { 0x0e, 0x0c78 }, /* Index: 0x39, char: \x3a */ + { 0x0e, 0x0cb0 }, /* Index: 0x3a, char: \x3b */ + { 0x0e, 0x0ce8 }, /* Index: 0x3b, char: \x3c */ + { 0x0e, 0x0d20 }, /* Index: 0x3c, char: \x3d */ + { 0x0e, 0x0d58 }, /* Index: 0x3d, char: \x3e */ + { 0x0e, 0x0d90 }, /* Index: 0x3e, char: \x3f */ + { 0x0e, 0x0dc8 }, /* Index: 0x3f, char: \x40 */ + { 0x0e, 0x0e00 }, /* Index: 0x40, char: \x41 */ + { 0x0e, 0x0e38 }, /* Index: 0x41, char: \x42 */ + { 0x0e, 0x0e70 }, /* Index: 0x42, char: \x43 */ + { 0x0e, 0x0ea8 }, /* Index: 0x43, char: \x44 */ + { 0x0e, 0x0ee0 }, /* Index: 0x44, char: \x45 */ + { 0x0e, 0x0f18 }, /* Index: 0x45, char: \x46 */ + { 0x0e, 0x0f50 }, /* Index: 0x46, char: \x47 */ + { 0x0e, 0x0f88 }, /* Index: 0x47, char: \x48 */ + { 0x0e, 0x0fc0 }, /* Index: 0x48, char: \x49 */ + { 0x0e, 0x0ff8 }, /* Index: 0x49, char: \x4a */ + { 0x0e, 0x1030 }, /* Index: 0x4a, char: \x4b */ + { 0x0e, 0x1068 }, /* Index: 0x4b, char: \x4c */ + { 0x0e, 0x10a0 }, /* Index: 0x4c, char: \x4d */ + { 0x0e, 0x10d8 }, /* Index: 0x4d, char: \x4e */ + { 0x0e, 0x1110 }, /* Index: 0x4e, char: \x4f */ + { 0x0e, 0x1148 }, /* Index: 0x4f, char: \x50 */ + { 0x0e, 0x1180 }, /* Index: 0x50, char: \x51 */ + { 0x0e, 0x11b8 }, /* Index: 0x51, char: \x52 */ + { 0x0e, 0x11f0 }, /* Index: 0x52, char: \x53 */ + { 0x0e, 0x1228 }, /* Index: 0x53, char: \x54 */ + { 0x0e, 0x1260 }, /* Index: 0x54, char: \x55 */ + { 0x0e, 0x1298 }, /* Index: 0x55, char: \x56 */ + { 0x0e, 0x12d0 }, /* Index: 0x56, char: \x57 */ + { 0x0e, 0x1308 }, /* Index: 0x57, char: \x58 */ + { 0x0e, 0x1340 }, /* Index: 0x58, char: \x59 */ + { 0x0e, 0x1378 }, /* Index: 0x59, char: \x5a */ + { 0x0e, 0x13b0 }, /* Index: 0x5a, char: \x5b */ + { 0x0e, 0x13e8 }, /* Index: 0x5b, char: \x5c */ + { 0x0e, 0x1420 }, /* Index: 0x5c, char: \x5d */ + { 0x0e, 0x1458 }, /* Index: 0x5d, char: \x5e */ + { 0x0e, 0x1490 }, /* Index: 0x5e, char: \x5f */ + { 0x0e, 0x14c8 }, /* Index: 0x5f, char: \x60 */ + { 0x0e, 0x1500 }, /* Index: 0x60, char: \x61 */ + { 0x0e, 0x1538 }, /* Index: 0x61, char: \x62 */ + { 0x0e, 0x1570 }, /* Index: 0x62, char: \x63 */ + { 0x0e, 0x15a8 }, /* Index: 0x63, char: \x64 */ + { 0x0e, 0x15e0 }, /* Index: 0x64, char: \x65 */ + { 0x0e, 0x1618 }, /* Index: 0x65, char: \x66 */ + { 0x0e, 0x1650 }, /* Index: 0x66, char: \x67 */ + { 0x0e, 0x1688 }, /* Index: 0x67, char: \x68 */ + { 0x0e, 0x16c0 }, /* Index: 0x68, char: \x69 */ + { 0x0e, 0x16f8 }, /* Index: 0x69, char: \x6a */ + { 0x0e, 0x1730 }, /* Index: 0x6a, char: \x6b */ + { 0x0e, 0x1768 }, /* Index: 0x6b, char: \x6c */ + { 0x0e, 0x17a0 }, /* Index: 0x6c, char: \x6d */ + { 0x0e, 0x17d8 }, /* Index: 0x6d, char: \x6e */ + { 0x0e, 0x1810 }, /* Index: 0x6e, char: \x6f */ + { 0x0e, 0x1848 }, /* Index: 0x6f, char: \x70 */ + { 0x0e, 0x1880 }, /* Index: 0x70, char: \x71 */ + { 0x0e, 0x18b8 }, /* Index: 0x71, char: \x72 */ + { 0x0e, 0x18f0 }, /* Index: 0x72, char: \x73 */ + { 0x0e, 0x1928 }, /* Index: 0x73, char: \x74 */ + { 0x0e, 0x1960 }, /* Index: 0x74, char: \x75 */ + { 0x0e, 0x1998 }, /* Index: 0x75, char: \x76 */ + { 0x0e, 0x19d0 }, /* Index: 0x76, char: \x77 */ + { 0x0e, 0x1a08 }, /* Index: 0x77, char: \x78 */ + { 0x0e, 0x1a40 }, /* Index: 0x78, char: \x79 */ + { 0x0e, 0x1a78 }, /* Index: 0x79, char: \x7a */ + { 0x0e, 0x1ab0 }, /* Index: 0x7a, char: \x7b */ + { 0x0e, 0x1ae8 }, /* Index: 0x7b, char: \x7c */ + { 0x0e, 0x1b20 }, /* Index: 0x7c, char: \x7d */ + { 0x0e, 0x1b58 }, /* Index: 0x7d, char: \x7e */ + { 0x0e, 0x1b90 }, /* Index: 0x7e, char: \x7f */ + { 0x0e, 0x1bc8 }, /* Index: 0x7f, char: \x80 */ + { 0x0e, 0x1c00 }, /* Index: 0x80, char: \x81 */ + { 0x0e, 0x1c38 }, /* Index: 0x81, char: \x82 */ + { 0x0e, 0x1c70 }, /* Index: 0x82, char: \x83 */ + { 0x0e, 0x1ca8 }, /* Index: 0x83, char: \x84 */ + { 0x0e, 0x1ce0 }, /* Index: 0x84, char: \x85 */ + { 0x0e, 0x1d18 }, /* Index: 0x85, char: \x86 */ + { 0x0e, 0x1d50 }, /* Index: 0x86, char: \x87 */ + { 0x0e, 0x1d88 }, /* Index: 0x87, char: \x88 */ + { 0x0e, 0x1dc0 }, /* Index: 0x88, char: \x89 */ + { 0x0e, 0x1df8 }, /* Index: 0x89, char: \x8a */ + { 0x0e, 0x1e30 }, /* Index: 0x8a, char: \x8b */ + { 0x0e, 0x1e68 }, /* Index: 0x8b, char: \x8c */ + { 0x0e, 0x1ea0 }, /* Index: 0x8c, char: \x8d */ + { 0x0e, 0x1ed8 }, /* Index: 0x8d, char: \x8e */ + { 0x0e, 0x1f10 }, /* Index: 0x8e, char: \x8f */ + { 0x0e, 0x1f48 }, /* Index: 0x8f, char: \x90 */ + { 0x0e, 0x1f80 }, /* Index: 0x90, char: \x91 */ + { 0x0e, 0x1fb8 }, /* Index: 0x91, char: \x92 */ + { 0x0e, 0x1ff0 }, /* Index: 0x92, char: \x93 */ + { 0x0e, 0x2028 }, /* Index: 0x93, char: \x94 */ + { 0x0e, 0x2060 }, /* Index: 0x94, char: \x95 */ + { 0x0e, 0x2098 }, /* Index: 0x95, char: \x96 */ + { 0x0e, 0x20d0 }, /* Index: 0x96, char: \x97 */ + { 0x0e, 0x2108 }, /* Index: 0x97, char: \x98 */ + { 0x0e, 0x2140 }, /* Index: 0x98, char: \x99 */ + { 0x0e, 0x2178 }, /* Index: 0x99, char: \x9a */ + { 0x0e, 0x21b0 }, /* Index: 0x9a, char: \x9b */ + { 0x0e, 0x21e8 }, /* Index: 0x9b, char: \x9c */ + { 0x0e, 0x2220 }, /* Index: 0x9c, char: \x9d */ + { 0x0e, 0x2258 }, /* Index: 0x9d, char: \x9e */ + { 0x0e, 0x2290 }, /* Index: 0x9e, char: \x9f */ + { 0x0e, 0x22c8 }, /* Index: 0x9f, char: \xa0 */ + { 0x0e, 0x2300 }, /* Index: 0xa0, char: \xa1 */ + { 0x0e, 0x2338 }, /* Index: 0xa1, char: \xa2 */ + { 0x0e, 0x2370 }, /* Index: 0xa2, char: \xa3 */ + { 0x0e, 0x23a8 }, /* Index: 0xa3, char: \xa4 */ + { 0x0e, 0x23e0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0e, 0x2418 }, /* Index: 0xa5, char: \xa6 */ + { 0x0e, 0x2450 }, /* Index: 0xa6, char: \xa7 */ + { 0x0e, 0x2488 }, /* Index: 0xa7, char: \xa8 */ + { 0x0e, 0x24c0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0e, 0x24f8 }, /* Index: 0xa9, char: \xaa */ + { 0x0e, 0x2530 }, /* Index: 0xaa, char: \xab */ + { 0x0e, 0x2568 }, /* Index: 0xab, char: \xac */ + { 0x0e, 0x25a0 }, /* Index: 0xac, char: \xad */ + { 0x0e, 0x25d8 }, /* Index: 0xad, char: \xae */ + { 0x0e, 0x2610 }, /* Index: 0xae, char: \xaf */ + { 0x0e, 0x2648 }, /* Index: 0xaf, char: \xb0 */ + { 0x0e, 0x2680 }, /* Index: 0xb0, char: \xb1 */ + { 0x0e, 0x26b8 }, /* Index: 0xb1, char: \xb2 */ + { 0x0e, 0x26f0 }, /* Index: 0xb2, char: \xb3 */ + { 0x0e, 0x2728 }, /* Index: 0xb3, char: \xb4 */ + { 0x0e, 0x2760 }, /* Index: 0xb4, char: \xb5 */ + { 0x0e, 0x2798 }, /* Index: 0xb5, char: \xb6 */ + { 0x0e, 0x27d0 }, /* Index: 0xb6, char: \xb7 */ + { 0x0e, 0x2808 }, /* Index: 0xb7, char: \xb8 */ + { 0x0e, 0x2840 }, /* Index: 0xb8, char: \xb9 */ + { 0x0e, 0x2878 }, /* Index: 0xb9, char: \xba */ + { 0x0e, 0x28b0 }, /* Index: 0xba, char: \xbb */ + { 0x0e, 0x28e8 }, /* Index: 0xbb, char: \xbc */ + { 0x0e, 0x2920 }, /* Index: 0xbc, char: \xbd */ + { 0x0e, 0x2958 }, /* Index: 0xbd, char: \xbe */ + { 0x0e, 0x2990 }, /* Index: 0xbe, char: \xbf */ + { 0x0e, 0x29c8 }, /* Index: 0xbf, char: \xc0 */ + { 0x0e, 0x2a00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0e, 0x2a38 }, /* Index: 0xc1, char: \xc2 */ + { 0x0e, 0x2a70 }, /* Index: 0xc2, char: \xc3 */ + { 0x0e, 0x2aa8 }, /* Index: 0xc3, char: \xc4 */ + { 0x0e, 0x2ae0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0e, 0x2b18 }, /* Index: 0xc5, char: \xc6 */ + { 0x0e, 0x2b50 }, /* Index: 0xc6, char: \xc7 */ + { 0x0e, 0x2b88 }, /* Index: 0xc7, char: \xc8 */ + { 0x0e, 0x2bc0 }, /* Index: 0xc8, char: \xc9 */ + { 0x0e, 0x2bf8 }, /* Index: 0xc9, char: \xca */ + { 0x0e, 0x2c30 }, /* Index: 0xca, char: \xcb */ + { 0x0e, 0x2c68 }, /* Index: 0xcb, char: \xcc */ + { 0x0e, 0x2ca0 }, /* Index: 0xcc, char: \xcd */ + { 0x0e, 0x2cd8 }, /* Index: 0xcd, char: \xce */ + { 0x0e, 0x2d10 }, /* Index: 0xce, char: \xcf */ + { 0x0e, 0x2d48 }, /* Index: 0xcf, char: \xd0 */ + { 0x0e, 0x2d80 }, /* Index: 0xd0, char: \xd1 */ + { 0x0e, 0x2db8 }, /* Index: 0xd1, char: \xd2 */ + { 0x0e, 0x2df0 }, /* Index: 0xd2, char: \xd3 */ + { 0x0e, 0x2e28 }, /* Index: 0xd3, char: \xd4 */ + { 0x0e, 0x2e60 }, /* Index: 0xd4, char: \xd5 */ + { 0x0e, 0x2e98 }, /* Index: 0xd5, char: \xd6 */ + { 0x0e, 0x2ed0 }, /* Index: 0xd6, char: \xd7 */ + { 0x0e, 0x2f08 }, /* Index: 0xd7, char: \xd8 */ + { 0x0e, 0x2f40 }, /* Index: 0xd8, char: \xd9 */ + { 0x0e, 0x2f78 }, /* Index: 0xd9, char: \xda */ + { 0x0e, 0x2fb0 }, /* Index: 0xda, char: \xdb */ + { 0x0e, 0x2fe8 }, /* Index: 0xdb, char: \xdc */ + { 0x0e, 0x3020 }, /* Index: 0xdc, char: \xdd */ + { 0x0e, 0x3058 }, /* Index: 0xdd, char: \xde */ + { 0x0e, 0x3090 }, /* Index: 0xde, char: \xdf */ + { 0x0e, 0x30c8 }, /* Index: 0xdf, char: \xe0 */ + { 0x0e, 0x3100 }, /* Index: 0xe0, char: \xe1 */ + { 0x0e, 0x3138 }, /* Index: 0xe1, char: \xe2 */ + { 0x0e, 0x3170 }, /* Index: 0xe2, char: \xe3 */ + { 0x0e, 0x31a8 }, /* Index: 0xe3, char: \xe4 */ + { 0x0e, 0x31e0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0e, 0x3218 }, /* Index: 0xe5, char: \xe6 */ + { 0x0e, 0x3250 }, /* Index: 0xe6, char: \xe7 */ + { 0x0e, 0x3288 }, /* Index: 0xe7, char: \xe8 */ + { 0x0e, 0x32c0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0e, 0x32f8 }, /* Index: 0xe9, char: \xea */ + { 0x0e, 0x3330 }, /* Index: 0xea, char: \xeb */ + { 0x0e, 0x3368 }, /* Index: 0xeb, char: \xec */ + { 0x0e, 0x33a0 }, /* Index: 0xec, char: \xed */ + { 0x0e, 0x33d8 }, /* Index: 0xed, char: \xee */ + { 0x0e, 0x3410 }, /* Index: 0xee, char: \xef */ + { 0x0e, 0x3448 }, /* Index: 0xef, char: \xf0 */ + { 0x0e, 0x3480 }, /* Index: 0xf0, char: \xf1 */ + { 0x0e, 0x34b8 }, /* Index: 0xf1, char: \xf2 */ + { 0x0e, 0x34f0 }, /* Index: 0xf2, char: \xf3 */ + { 0x0e, 0x3528 }, /* Index: 0xf3, char: \xf4 */ + { 0x0e, 0x3560 }, /* Index: 0xf4, char: \xf5 */ + { 0x0e, 0x3598 }, /* Index: 0xf5, char: \xf6 */ + { 0x0e, 0x35d0 }, /* Index: 0xf6, char: \xf7 */ + { 0x0e, 0x3608 }, /* Index: 0xf7, char: \xf8 */ + { 0x0e, 0x3640 }, /* Index: 0xf8, char: \xf9 */ + { 0x0e, 0x3678 }, /* Index: 0xf9, char: \xfa */ + { 0x0e, 0x36b0 }, /* Index: 0xfa, char: \xfb */ + { 0x0e, 0x36e8 }, /* Index: 0xfb, char: \xfc */ + { 0x0e, 0x3720 }, /* Index: 0xfc, char: \xfd */ + { 0x0e, 0x3758 }, /* Index: 0xfd, char: \xfe */ + { 0x0e, 0x3790 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_14x28_iso8859_1_info = +{ + .height = 28, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_14x28_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_14x28_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_14x28_koi8_r.h b/extras/fonts/data/font_terminus_bold_14x28_koi8_r.h new file mode 100644 index 0000000..0e43aff --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_14x28_koi8_r.h @@ -0,0 +1,7939 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 14x28 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_KOI8_R_H_ + +static const uint8_t _fonts_terminus_bold_14x28_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xff, 0xf8, /* #############... */ + 0xff, 0xf8, /* #############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x02, 0x00, /* ......#......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0038 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x02, char: \x03, offset: 0x0070 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x60, 0x00, /* .##............. */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x00e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x7f, 0x00, /* .#######........ */ + 0x63, 0x00, /* .##...##........ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x30, /* ......##..##.... */ + 0x03, 0x18, /* ......##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0118 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0150 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x0188 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x7b, 0x00, /* .####.##........ */ + 0x6f, 0x00, /* .##.####........ */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x01f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0230 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x0268 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0c, char: \x0d, offset: 0x02a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0d, char: \x0e, offset: 0x02d8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0310 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x0f, char: \x10, offset: 0x0348 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x03b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x03f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x0428 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0460 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x15, char: \x16, offset: 0x0498 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x16, char: \x17, offset: 0x04d0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x0508 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x18, char: \x19, offset: 0x0540 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x19, char: \x1a, offset: 0x0578 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x05b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x05e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0620 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0658 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1c, 0x60, /* ...###...##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x3f, 0x80, /* ..#######....... */ + 0x3f, 0x80, /* ..#######....... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0690 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x06c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0738 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0770 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x07a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x73, 0x00, /* .###..##........ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x38, /* ......##..###... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x07e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x7e, 0x30, /* .######...##.... */ + 0x66, 0x60, /* .##..##..##..... */ + 0x7e, 0x60, /* .######..##..... */ + 0x3c, 0xc0, /* ..####..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xf0, /* ....##..####.... */ + 0x19, 0xf8, /* ...##..######... */ + 0x19, 0x98, /* ...##..##..##... */ + 0x31, 0xf8, /* ..##...######... */ + 0x30, 0xf0, /* ..##....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0818 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x80, /* ...######....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x30, 0xc0, /* ..##....##...... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1f, 0x80, /* ...######....... */ + 0x0f, 0x00, /* ....####........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x3f, 0xb8, /* ..#######.###... */ + 0x1f, 0x18, /* ...#####...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0850 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x0888 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x08f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0930 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0968 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x09a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x09d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0a10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0a48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x00, /* ....####........ */ + 0x1f, 0x00, /* ...#####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0ab8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0af0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0b28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xf0, /* ........####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xb0, /* ......###.##.... */ + 0x07, 0x30, /* .....###..##.... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0b60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0b98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0bd0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0c08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0c78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0cb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x06, 0x00, /* .....##......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ce8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0d20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0d58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0d90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0dc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x61, 0xf8, /* .##....######... */ + 0x63, 0xf8, /* .##...#######... */ + 0x67, 0x18, /* .##..###...##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x67, 0x18, /* .##..###...##... */ + 0x63, 0xf8, /* .##...#######... */ + 0x61, 0xe8, /* .##....####.#... */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x0e38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x0e70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x0ea8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0x00, /* .#######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x0ee0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x0f18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x0f50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x63, 0xf0, /* .##...######.... */ + 0x63, 0xf0, /* .##...######.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x0f88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x0ff8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf8, /* .......######... */ + 0x01, 0xf8, /* .......######... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0xe0, /* .###....###..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0x80, /* ...######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1030 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x00, /* .##..###........ */ + 0x6e, 0x00, /* .##.###......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x78, 0x00, /* .####........... */ + 0x7c, 0x00, /* .#####.......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x1068 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x10a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x10d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1110 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x1148 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x71, 0xf0, /* .###...#####.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x11b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7c, 0x00, /* .#####.......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x70, /* .##......###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x11f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x1228 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1260 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1298 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x12d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x78, 0x78, /* .####....####... */ + 0x70, 0x38, /* .###......###... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x1308 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x18, 0x60, /* ...##....##..... */ + 0x18, 0x60, /* ...##....##..... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1378 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x13b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x13e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x18, 0x00, /* ...##........... */ + 0x18, 0x00, /* ...##........... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0x80, /* .......##....... */ + 0x01, 0x80, /* .......##....... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1420 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1458 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x02, 0x00, /* ......#......... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1490 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x14c8 */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1538 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1570 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x15a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x15e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1618 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xf0, /* ......######.... */ + 0x07, 0xf0, /* .....#######.... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1650 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x1688 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x16f8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xe0, /* .......####..... */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1730 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1768 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x00, /* ....####........ */ + 0x0f, 0x00, /* ....####........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xc0, /* ....######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x17a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0x63, 0x38, /* .##...##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x17d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1810 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1848 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x18b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x67, 0xf0, /* .##..#######.... */ + 0x6f, 0xf0, /* .##.########.... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x18f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x00, /* .###............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1928 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1960 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1998 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x19d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1a08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1a78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1ab0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0x00, /* .....###........ */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x06, 0x00, /* .....##......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0xc0, /* ......####...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ae8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1b20 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x07, 0x00, /* .....###........ */ + 0x1e, 0x00, /* ...####......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1b58 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3c, 0x30, /* ..####....##.... */ + 0x7e, 0x30, /* .######...##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x63, 0xf0, /* .##...######.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1b90 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1bc8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x1c00 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x81, char: \x82, offset: 0x1c38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x82, char: \x83, offset: 0x1c70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x83, char: \x84, offset: 0x1ca8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x1ce0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x1d18 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x86, char: \x87, offset: 0x1d50 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x87, char: \x88, offset: 0x1d88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x88, char: \x89, offset: 0x1dc0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x1df8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x8a, char: \x8b, offset: 0x1e30 */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x1e68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + + /* Index: 0x8c, char: \x8d, offset: 0x1ea0 */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + + /* Index: 0x8d, char: \x8e, offset: 0x1ed8 */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + 0xfe, 0x00, /* #######......... */ + + /* Index: 0x8e, char: \x8f, offset: 0x1f10 */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x01, 0xfc, /* .......#######.. */ + + /* Index: 0x8f, char: \x90, offset: 0x1f48 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x1f80 */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0x55, 0x54, /* .#.#.#.#.#.#.#.. */ + + /* Index: 0x91, char: \x92, offset: 0x1fb8 */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + 0xff, 0xfc, /* ##############.. */ + 0xaa, 0xa8, /* #.#.#.#.#.#.#... */ + + /* Index: 0x92, char: \x93, offset: 0x1ff0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x18, /* ......##...##... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0x93, char: \x94, offset: 0x2028 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2060 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2098 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x00, 0x60, /* .........##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x60, /* .##......##..... */ + 0x70, 0x60, /* .###.....##..... */ + 0x38, 0x60, /* ..###....##..... */ + 0x1c, 0x60, /* ...###...##..... */ + 0x0e, 0x60, /* ....###..##..... */ + 0x07, 0x60, /* .....###.##..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x01, 0xe0, /* .......####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x20d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x18, /* ...####....##... */ + 0x3f, 0x38, /* ..######..###... */ + 0x73, 0xf0, /* .###..######.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x18, /* ...####....##... */ + 0x3f, 0x38, /* ..######..###... */ + 0x73, 0xf0, /* .###..######.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x2108 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2178 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x21b0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x63, 0x00, /* .##...##........ */ + 0x7f, 0x00, /* .#######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x21e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2220 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2258 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2290 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x22c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2300 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa1, char: \xa2, offset: 0x2338 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2370 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x23a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa4, char: \xa5, offset: 0x23e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa5, char: \xa6, offset: 0x2418 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2450 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa7, char: \xa8, offset: 0x2488 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xa8, char: \xa9, offset: 0x24c0 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x24f8 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2530 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2568 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x25a0 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x25d8 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xff, 0xc0, /* ##########...... */ + 0xff, 0xc0, /* ##########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2610 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2648 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb0, char: \xb1, offset: 0x2680 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0x00, /* ....##.......... */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xfc, /* ....##..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb1, char: \xb2, offset: 0x26b8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xb2, char: \xb3, offset: 0x26f0 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2728 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb4, char: \xb5, offset: 0x2760 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x00, 0xc0, /* ........##...... */ + 0x00, 0xc0, /* ........##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0xfc, 0xc0, /* ######..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb5, char: \xb6, offset: 0x2798 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xb6, char: \xb7, offset: 0x27d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb7, char: \xb8, offset: 0x2808 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xb8, char: \xb9, offset: 0x2840 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2878 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x28b0 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x28e8 */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2920 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xff, 0xfc, /* ##############.. */ + 0xff, 0xfc, /* ##############.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xbd, char: \xbe, offset: 0x2958 */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfc, 0xfc, /* ######..######.. */ + 0xfc, 0xfc, /* ######..######.. */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + 0x0c, 0xc0, /* ....##..##...... */ + + /* Index: 0xbe, char: \xbf, offset: 0x2990 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0xe0, 0x38, /* ###.......###... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xdf, 0xd8, /* ##.#######.##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0x18, /* ##.##......##... */ + 0xd8, 0xd8, /* ##.##...##.##... */ + 0xdf, 0xd8, /* ##.#######.##... */ + 0xcf, 0x98, /* ##..#####..##... */ + 0xe0, 0x38, /* ###.......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x29c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0xf0, /* .##...######.... */ + 0x67, 0x38, /* .##..###..###... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x67, 0x38, /* .##..###..###... */ + 0x63, 0xf0, /* .##...######.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x2a38 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xc0, /* ..########...... */ + 0x70, 0x00, /* .###............ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x2a70 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x2aa8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x2ae0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x2b18 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x2b50 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x2b88 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x07, 0x00, /* .....###........ */ + 0x0f, 0x80, /* ....#####....... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x2bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x2bf8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x2c30 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x33, 0x80, /* ..##..###....... */ + 0x37, 0x00, /* ..##.###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x37, 0x00, /* ..##.###........ */ + 0x33, 0x80, /* ..##..###....... */ + 0x31, 0xc0, /* ..##...###...... */ + 0x30, 0xe0, /* ..##....###..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x2c68 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x2ca0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x2cd8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x2d10 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x2d48 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0xb0, /* ......###.##.... */ + 0x07, 0x30, /* .....###..##.... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x2db8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x2df0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x2e28 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x2e60 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x2e98 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3b, 0x70, /* ..###.##.###.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x3b, 0x70, /* ..###.##.###.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x2ed0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x00, /* ..######........ */ + 0x7f, 0x80, /* .########....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x60, 0xc0, /* .##.....##...... */ + 0x61, 0x80, /* .##....##....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x2f08 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x7f, 0x98, /* .########..##... */ + 0x61, 0xd8, /* .##....###.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x61, 0xd8, /* .##....###.##... */ + 0x7f, 0x98, /* .########..##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x2f78 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x2fb0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x18, /* .###..##...##... */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x2fe8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3020 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x18, /* .###..##...##... */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3058 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3090 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xc0, /* ..########...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x30, /* ..##......##.... */ + 0x30, 0x70, /* ..##.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x30c8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x61, 0xe0, /* .##....####..... */ + 0x63, 0xf0, /* .##...######.... */ + 0x67, 0x38, /* .##..###..###... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x7e, 0x18, /* .######....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x66, 0x18, /* .##..##....##... */ + 0x67, 0x38, /* .##..###..###... */ + 0x63, 0xf0, /* .##...######.... */ + 0x61, 0xe0, /* .##....####..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3138 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3170 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x18, /* ...........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x31a8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x7f, 0xf8, /* .############... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x31e0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0x80, /* .########....... */ + 0x7f, 0x80, /* .########....... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3218 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x1f, 0xe0, /* ...########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3250 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x3288 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0d, 0x80, /* ....##.##....... */ + 0x0d, 0x80, /* ....##.##....... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x18, 0xc0, /* ...##...##...... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x30, 0x60, /* ..##.....##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x32f8 */ + 0x18, 0xc0, /* ...##...##...... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xf0, /* .##.....####.... */ + 0x61, 0xf0, /* .##....#####.... */ + 0x63, 0xb0, /* .##...###.##.... */ + 0x67, 0x30, /* .##..###..##.... */ + 0x6e, 0x30, /* .##.###...##.... */ + 0x7c, 0x30, /* .#####....##.... */ + 0x78, 0x30, /* .####.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3330 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x61, 0xc0, /* .##....###...... */ + 0x63, 0x80, /* .##...###....... */ + 0x67, 0x00, /* .##..###........ */ + 0x6e, 0x00, /* .##.###......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x78, 0x00, /* .####........... */ + 0x7c, 0x00, /* .#####.......... */ + 0x6e, 0x00, /* .##.###......... */ + 0x67, 0x00, /* .##..###........ */ + 0x63, 0x80, /* .##...###....... */ + 0x61, 0xc0, /* .##....###...... */ + 0x60, 0xe0, /* .##.....###..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3368 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xf0, /* .....#######.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x18, 0x30, /* ...##.....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x33a0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x7c, 0xf8, /* .#####..#####... */ + 0x6f, 0xd8, /* .##.######.##... */ + 0x67, 0x98, /* .##..####..##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x33d8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3410 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3448 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x70, 0x30, /* .###......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xb0, /* ......###.##.... */ + 0x07, 0x30, /* .....###..##.... */ + 0x0e, 0x30, /* ....###...##.... */ + 0x1c, 0x30, /* ...###....##.... */ + 0x38, 0x30, /* ..###.....##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x34b8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x34f0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3528 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x03, 0x00, /* ......##........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3560 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xc0, /* ..########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3598 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x38, /* .###..##..###... */ + 0x3b, 0x70, /* ..###.##.###.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x3b, 0x70, /* ..###.##.###.... */ + 0x73, 0x38, /* .###..##..###... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x35d0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x60, /* .##......##..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x60, 0x60, /* .##......##..... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3608 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x60, 0x00, /* .##............. */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x60, 0x70, /* .##......###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x70, /* .##......###.... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x60, 0x18, /* .##........##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x7f, 0x98, /* .########..##... */ + 0x61, 0xd8, /* .##....###.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x60, 0xd8, /* .##.....##.##... */ + 0x61, 0xd8, /* .##....###.##... */ + 0x7f, 0x98, /* .########..##... */ + 0x7f, 0x18, /* .#######...##... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3678 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x36b0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x18, /* .###..##...##... */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x36e8 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xc0, /* ...#######...... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x1f, 0xc0, /* ...#######...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3720 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x63, 0x18, /* .##...##...##... */ + 0x73, 0x18, /* .###..##...##... */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x0c, /* ............##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3758 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x60, 0x30, /* .##.......##.... */ + 0x70, 0x30, /* .###......##.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x30, /* ..........##.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3790 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf0, 0x00, /* ####............ */ + 0xf0, 0x00, /* ####............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x30, 0x00, /* ..##............ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x30, 0x38, /* ..##......###... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x18, /* ..##.......##... */ + 0x30, 0x38, /* ..##......###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_14x28_koi8_r_descriptors[] = { + { 0x0e, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x0e, 0x0038 }, /* Index: 0x01, char: \x02 */ + { 0x0e, 0x0070 }, /* Index: 0x02, char: \x03 */ + { 0x0e, 0x00a8 }, /* Index: 0x03, char: \x04 */ + { 0x0e, 0x00e0 }, /* Index: 0x04, char: \x05 */ + { 0x0e, 0x0118 }, /* Index: 0x05, char: \x06 */ + { 0x0e, 0x0150 }, /* Index: 0x06, char: \x07 */ + { 0x0e, 0x0188 }, /* Index: 0x07, char: \x08 */ + { 0x0e, 0x01c0 }, /* Index: 0x08, char: \x09 */ + { 0x0e, 0x01f8 }, /* Index: 0x09, char: \x0a */ + { 0x0e, 0x0230 }, /* Index: 0x0a, char: \x0b */ + { 0x0e, 0x0268 }, /* Index: 0x0b, char: \x0c */ + { 0x0e, 0x02a0 }, /* Index: 0x0c, char: \x0d */ + { 0x0e, 0x02d8 }, /* Index: 0x0d, char: \x0e */ + { 0x0e, 0x0310 }, /* Index: 0x0e, char: \x0f */ + { 0x0e, 0x0348 }, /* Index: 0x0f, char: \x10 */ + { 0x0e, 0x0380 }, /* Index: 0x10, char: \x11 */ + { 0x0e, 0x03b8 }, /* Index: 0x11, char: \x12 */ + { 0x0e, 0x03f0 }, /* Index: 0x12, char: \x13 */ + { 0x0e, 0x0428 }, /* Index: 0x13, char: \x14 */ + { 0x0e, 0x0460 }, /* Index: 0x14, char: \x15 */ + { 0x0e, 0x0498 }, /* Index: 0x15, char: \x16 */ + { 0x0e, 0x04d0 }, /* Index: 0x16, char: \x17 */ + { 0x0e, 0x0508 }, /* Index: 0x17, char: \x18 */ + { 0x0e, 0x0540 }, /* Index: 0x18, char: \x19 */ + { 0x0e, 0x0578 }, /* Index: 0x19, char: \x1a */ + { 0x0e, 0x05b0 }, /* Index: 0x1a, char: \x1b */ + { 0x0e, 0x05e8 }, /* Index: 0x1b, char: \x1c */ + { 0x0e, 0x0620 }, /* Index: 0x1c, char: \x1d */ + { 0x0e, 0x0658 }, /* Index: 0x1d, char: \x1e */ + { 0x0e, 0x0690 }, /* Index: 0x1e, char: \x1f */ + { 0x0e, 0x06c8 }, /* Index: 0x1f, char: \x20 */ + { 0x0e, 0x0700 }, /* Index: 0x20, char: \x21 */ + { 0x0e, 0x0738 }, /* Index: 0x21, char: \x22 */ + { 0x0e, 0x0770 }, /* Index: 0x22, char: \x23 */ + { 0x0e, 0x07a8 }, /* Index: 0x23, char: \x24 */ + { 0x0e, 0x07e0 }, /* Index: 0x24, char: \x25 */ + { 0x0e, 0x0818 }, /* Index: 0x25, char: \x26 */ + { 0x0e, 0x0850 }, /* Index: 0x26, char: \x27 */ + { 0x0e, 0x0888 }, /* Index: 0x27, char: \x28 */ + { 0x0e, 0x08c0 }, /* Index: 0x28, char: \x29 */ + { 0x0e, 0x08f8 }, /* Index: 0x29, char: \x2a */ + { 0x0e, 0x0930 }, /* Index: 0x2a, char: \x2b */ + { 0x0e, 0x0968 }, /* Index: 0x2b, char: \x2c */ + { 0x0e, 0x09a0 }, /* Index: 0x2c, char: \x2d */ + { 0x0e, 0x09d8 }, /* Index: 0x2d, char: \x2e */ + { 0x0e, 0x0a10 }, /* Index: 0x2e, char: \x2f */ + { 0x0e, 0x0a48 }, /* Index: 0x2f, char: \x30 */ + { 0x0e, 0x0a80 }, /* Index: 0x30, char: \x31 */ + { 0x0e, 0x0ab8 }, /* Index: 0x31, char: \x32 */ + { 0x0e, 0x0af0 }, /* Index: 0x32, char: \x33 */ + { 0x0e, 0x0b28 }, /* Index: 0x33, char: \x34 */ + { 0x0e, 0x0b60 }, /* Index: 0x34, char: \x35 */ + { 0x0e, 0x0b98 }, /* Index: 0x35, char: \x36 */ + { 0x0e, 0x0bd0 }, /* Index: 0x36, char: \x37 */ + { 0x0e, 0x0c08 }, /* Index: 0x37, char: \x38 */ + { 0x0e, 0x0c40 }, /* Index: 0x38, char: \x39 */ + { 0x0e, 0x0c78 }, /* Index: 0x39, char: \x3a */ + { 0x0e, 0x0cb0 }, /* Index: 0x3a, char: \x3b */ + { 0x0e, 0x0ce8 }, /* Index: 0x3b, char: \x3c */ + { 0x0e, 0x0d20 }, /* Index: 0x3c, char: \x3d */ + { 0x0e, 0x0d58 }, /* Index: 0x3d, char: \x3e */ + { 0x0e, 0x0d90 }, /* Index: 0x3e, char: \x3f */ + { 0x0e, 0x0dc8 }, /* Index: 0x3f, char: \x40 */ + { 0x0e, 0x0e00 }, /* Index: 0x40, char: \x41 */ + { 0x0e, 0x0e38 }, /* Index: 0x41, char: \x42 */ + { 0x0e, 0x0e70 }, /* Index: 0x42, char: \x43 */ + { 0x0e, 0x0ea8 }, /* Index: 0x43, char: \x44 */ + { 0x0e, 0x0ee0 }, /* Index: 0x44, char: \x45 */ + { 0x0e, 0x0f18 }, /* Index: 0x45, char: \x46 */ + { 0x0e, 0x0f50 }, /* Index: 0x46, char: \x47 */ + { 0x0e, 0x0f88 }, /* Index: 0x47, char: \x48 */ + { 0x0e, 0x0fc0 }, /* Index: 0x48, char: \x49 */ + { 0x0e, 0x0ff8 }, /* Index: 0x49, char: \x4a */ + { 0x0e, 0x1030 }, /* Index: 0x4a, char: \x4b */ + { 0x0e, 0x1068 }, /* Index: 0x4b, char: \x4c */ + { 0x0e, 0x10a0 }, /* Index: 0x4c, char: \x4d */ + { 0x0e, 0x10d8 }, /* Index: 0x4d, char: \x4e */ + { 0x0e, 0x1110 }, /* Index: 0x4e, char: \x4f */ + { 0x0e, 0x1148 }, /* Index: 0x4f, char: \x50 */ + { 0x0e, 0x1180 }, /* Index: 0x50, char: \x51 */ + { 0x0e, 0x11b8 }, /* Index: 0x51, char: \x52 */ + { 0x0e, 0x11f0 }, /* Index: 0x52, char: \x53 */ + { 0x0e, 0x1228 }, /* Index: 0x53, char: \x54 */ + { 0x0e, 0x1260 }, /* Index: 0x54, char: \x55 */ + { 0x0e, 0x1298 }, /* Index: 0x55, char: \x56 */ + { 0x0e, 0x12d0 }, /* Index: 0x56, char: \x57 */ + { 0x0e, 0x1308 }, /* Index: 0x57, char: \x58 */ + { 0x0e, 0x1340 }, /* Index: 0x58, char: \x59 */ + { 0x0e, 0x1378 }, /* Index: 0x59, char: \x5a */ + { 0x0e, 0x13b0 }, /* Index: 0x5a, char: \x5b */ + { 0x0e, 0x13e8 }, /* Index: 0x5b, char: \x5c */ + { 0x0e, 0x1420 }, /* Index: 0x5c, char: \x5d */ + { 0x0e, 0x1458 }, /* Index: 0x5d, char: \x5e */ + { 0x0e, 0x1490 }, /* Index: 0x5e, char: \x5f */ + { 0x0e, 0x14c8 }, /* Index: 0x5f, char: \x60 */ + { 0x0e, 0x1500 }, /* Index: 0x60, char: \x61 */ + { 0x0e, 0x1538 }, /* Index: 0x61, char: \x62 */ + { 0x0e, 0x1570 }, /* Index: 0x62, char: \x63 */ + { 0x0e, 0x15a8 }, /* Index: 0x63, char: \x64 */ + { 0x0e, 0x15e0 }, /* Index: 0x64, char: \x65 */ + { 0x0e, 0x1618 }, /* Index: 0x65, char: \x66 */ + { 0x0e, 0x1650 }, /* Index: 0x66, char: \x67 */ + { 0x0e, 0x1688 }, /* Index: 0x67, char: \x68 */ + { 0x0e, 0x16c0 }, /* Index: 0x68, char: \x69 */ + { 0x0e, 0x16f8 }, /* Index: 0x69, char: \x6a */ + { 0x0e, 0x1730 }, /* Index: 0x6a, char: \x6b */ + { 0x0e, 0x1768 }, /* Index: 0x6b, char: \x6c */ + { 0x0e, 0x17a0 }, /* Index: 0x6c, char: \x6d */ + { 0x0e, 0x17d8 }, /* Index: 0x6d, char: \x6e */ + { 0x0e, 0x1810 }, /* Index: 0x6e, char: \x6f */ + { 0x0e, 0x1848 }, /* Index: 0x6f, char: \x70 */ + { 0x0e, 0x1880 }, /* Index: 0x70, char: \x71 */ + { 0x0e, 0x18b8 }, /* Index: 0x71, char: \x72 */ + { 0x0e, 0x18f0 }, /* Index: 0x72, char: \x73 */ + { 0x0e, 0x1928 }, /* Index: 0x73, char: \x74 */ + { 0x0e, 0x1960 }, /* Index: 0x74, char: \x75 */ + { 0x0e, 0x1998 }, /* Index: 0x75, char: \x76 */ + { 0x0e, 0x19d0 }, /* Index: 0x76, char: \x77 */ + { 0x0e, 0x1a08 }, /* Index: 0x77, char: \x78 */ + { 0x0e, 0x1a40 }, /* Index: 0x78, char: \x79 */ + { 0x0e, 0x1a78 }, /* Index: 0x79, char: \x7a */ + { 0x0e, 0x1ab0 }, /* Index: 0x7a, char: \x7b */ + { 0x0e, 0x1ae8 }, /* Index: 0x7b, char: \x7c */ + { 0x0e, 0x1b20 }, /* Index: 0x7c, char: \x7d */ + { 0x0e, 0x1b58 }, /* Index: 0x7d, char: \x7e */ + { 0x0e, 0x1b90 }, /* Index: 0x7e, char: \x7f */ + { 0x0e, 0x1bc8 }, /* Index: 0x7f, char: \x80 */ + { 0x0e, 0x1c00 }, /* Index: 0x80, char: \x81 */ + { 0x0e, 0x1c38 }, /* Index: 0x81, char: \x82 */ + { 0x0e, 0x1c70 }, /* Index: 0x82, char: \x83 */ + { 0x0e, 0x1ca8 }, /* Index: 0x83, char: \x84 */ + { 0x0e, 0x1ce0 }, /* Index: 0x84, char: \x85 */ + { 0x0e, 0x1d18 }, /* Index: 0x85, char: \x86 */ + { 0x0e, 0x1d50 }, /* Index: 0x86, char: \x87 */ + { 0x0e, 0x1d88 }, /* Index: 0x87, char: \x88 */ + { 0x0e, 0x1dc0 }, /* Index: 0x88, char: \x89 */ + { 0x0e, 0x1df8 }, /* Index: 0x89, char: \x8a */ + { 0x0e, 0x1e30 }, /* Index: 0x8a, char: \x8b */ + { 0x0e, 0x1e68 }, /* Index: 0x8b, char: \x8c */ + { 0x0e, 0x1ea0 }, /* Index: 0x8c, char: \x8d */ + { 0x0e, 0x1ed8 }, /* Index: 0x8d, char: \x8e */ + { 0x0e, 0x1f10 }, /* Index: 0x8e, char: \x8f */ + { 0x0e, 0x1f48 }, /* Index: 0x8f, char: \x90 */ + { 0x0e, 0x1f80 }, /* Index: 0x90, char: \x91 */ + { 0x0e, 0x1fb8 }, /* Index: 0x91, char: \x92 */ + { 0x0e, 0x1ff0 }, /* Index: 0x92, char: \x93 */ + { 0x0e, 0x2028 }, /* Index: 0x93, char: \x94 */ + { 0x0e, 0x2060 }, /* Index: 0x94, char: \x95 */ + { 0x0e, 0x2098 }, /* Index: 0x95, char: \x96 */ + { 0x0e, 0x20d0 }, /* Index: 0x96, char: \x97 */ + { 0x0e, 0x2108 }, /* Index: 0x97, char: \x98 */ + { 0x0e, 0x2140 }, /* Index: 0x98, char: \x99 */ + { 0x0e, 0x2178 }, /* Index: 0x99, char: \x9a */ + { 0x0e, 0x21b0 }, /* Index: 0x9a, char: \x9b */ + { 0x0e, 0x21e8 }, /* Index: 0x9b, char: \x9c */ + { 0x0e, 0x2220 }, /* Index: 0x9c, char: \x9d */ + { 0x0e, 0x2258 }, /* Index: 0x9d, char: \x9e */ + { 0x0e, 0x2290 }, /* Index: 0x9e, char: \x9f */ + { 0x0e, 0x22c8 }, /* Index: 0x9f, char: \xa0 */ + { 0x0e, 0x2300 }, /* Index: 0xa0, char: \xa1 */ + { 0x0e, 0x2338 }, /* Index: 0xa1, char: \xa2 */ + { 0x0e, 0x2370 }, /* Index: 0xa2, char: \xa3 */ + { 0x0e, 0x23a8 }, /* Index: 0xa3, char: \xa4 */ + { 0x0e, 0x23e0 }, /* Index: 0xa4, char: \xa5 */ + { 0x0e, 0x2418 }, /* Index: 0xa5, char: \xa6 */ + { 0x0e, 0x2450 }, /* Index: 0xa6, char: \xa7 */ + { 0x0e, 0x2488 }, /* Index: 0xa7, char: \xa8 */ + { 0x0e, 0x24c0 }, /* Index: 0xa8, char: \xa9 */ + { 0x0e, 0x24f8 }, /* Index: 0xa9, char: \xaa */ + { 0x0e, 0x2530 }, /* Index: 0xaa, char: \xab */ + { 0x0e, 0x2568 }, /* Index: 0xab, char: \xac */ + { 0x0e, 0x25a0 }, /* Index: 0xac, char: \xad */ + { 0x0e, 0x25d8 }, /* Index: 0xad, char: \xae */ + { 0x0e, 0x2610 }, /* Index: 0xae, char: \xaf */ + { 0x0e, 0x2648 }, /* Index: 0xaf, char: \xb0 */ + { 0x0e, 0x2680 }, /* Index: 0xb0, char: \xb1 */ + { 0x0e, 0x26b8 }, /* Index: 0xb1, char: \xb2 */ + { 0x0e, 0x26f0 }, /* Index: 0xb2, char: \xb3 */ + { 0x0e, 0x2728 }, /* Index: 0xb3, char: \xb4 */ + { 0x0e, 0x2760 }, /* Index: 0xb4, char: \xb5 */ + { 0x0e, 0x2798 }, /* Index: 0xb5, char: \xb6 */ + { 0x0e, 0x27d0 }, /* Index: 0xb6, char: \xb7 */ + { 0x0e, 0x2808 }, /* Index: 0xb7, char: \xb8 */ + { 0x0e, 0x2840 }, /* Index: 0xb8, char: \xb9 */ + { 0x0e, 0x2878 }, /* Index: 0xb9, char: \xba */ + { 0x0e, 0x28b0 }, /* Index: 0xba, char: \xbb */ + { 0x0e, 0x28e8 }, /* Index: 0xbb, char: \xbc */ + { 0x0e, 0x2920 }, /* Index: 0xbc, char: \xbd */ + { 0x0e, 0x2958 }, /* Index: 0xbd, char: \xbe */ + { 0x0e, 0x2990 }, /* Index: 0xbe, char: \xbf */ + { 0x0e, 0x29c8 }, /* Index: 0xbf, char: \xc0 */ + { 0x0e, 0x2a00 }, /* Index: 0xc0, char: \xc1 */ + { 0x0e, 0x2a38 }, /* Index: 0xc1, char: \xc2 */ + { 0x0e, 0x2a70 }, /* Index: 0xc2, char: \xc3 */ + { 0x0e, 0x2aa8 }, /* Index: 0xc3, char: \xc4 */ + { 0x0e, 0x2ae0 }, /* Index: 0xc4, char: \xc5 */ + { 0x0e, 0x2b18 }, /* Index: 0xc5, char: \xc6 */ + { 0x0e, 0x2b50 }, /* Index: 0xc6, char: \xc7 */ + { 0x0e, 0x2b88 }, /* Index: 0xc7, char: \xc8 */ + { 0x0e, 0x2bc0 }, /* Index: 0xc8, char: \xc9 */ + { 0x0e, 0x2bf8 }, /* Index: 0xc9, char: \xca */ + { 0x0e, 0x2c30 }, /* Index: 0xca, char: \xcb */ + { 0x0e, 0x2c68 }, /* Index: 0xcb, char: \xcc */ + { 0x0e, 0x2ca0 }, /* Index: 0xcc, char: \xcd */ + { 0x0e, 0x2cd8 }, /* Index: 0xcd, char: \xce */ + { 0x0e, 0x2d10 }, /* Index: 0xce, char: \xcf */ + { 0x0e, 0x2d48 }, /* Index: 0xcf, char: \xd0 */ + { 0x0e, 0x2d80 }, /* Index: 0xd0, char: \xd1 */ + { 0x0e, 0x2db8 }, /* Index: 0xd1, char: \xd2 */ + { 0x0e, 0x2df0 }, /* Index: 0xd2, char: \xd3 */ + { 0x0e, 0x2e28 }, /* Index: 0xd3, char: \xd4 */ + { 0x0e, 0x2e60 }, /* Index: 0xd4, char: \xd5 */ + { 0x0e, 0x2e98 }, /* Index: 0xd5, char: \xd6 */ + { 0x0e, 0x2ed0 }, /* Index: 0xd6, char: \xd7 */ + { 0x0e, 0x2f08 }, /* Index: 0xd7, char: \xd8 */ + { 0x0e, 0x2f40 }, /* Index: 0xd8, char: \xd9 */ + { 0x0e, 0x2f78 }, /* Index: 0xd9, char: \xda */ + { 0x0e, 0x2fb0 }, /* Index: 0xda, char: \xdb */ + { 0x0e, 0x2fe8 }, /* Index: 0xdb, char: \xdc */ + { 0x0e, 0x3020 }, /* Index: 0xdc, char: \xdd */ + { 0x0e, 0x3058 }, /* Index: 0xdd, char: \xde */ + { 0x0e, 0x3090 }, /* Index: 0xde, char: \xdf */ + { 0x0e, 0x30c8 }, /* Index: 0xdf, char: \xe0 */ + { 0x0e, 0x3100 }, /* Index: 0xe0, char: \xe1 */ + { 0x0e, 0x3138 }, /* Index: 0xe1, char: \xe2 */ + { 0x0e, 0x3170 }, /* Index: 0xe2, char: \xe3 */ + { 0x0e, 0x31a8 }, /* Index: 0xe3, char: \xe4 */ + { 0x0e, 0x31e0 }, /* Index: 0xe4, char: \xe5 */ + { 0x0e, 0x3218 }, /* Index: 0xe5, char: \xe6 */ + { 0x0e, 0x3250 }, /* Index: 0xe6, char: \xe7 */ + { 0x0e, 0x3288 }, /* Index: 0xe7, char: \xe8 */ + { 0x0e, 0x32c0 }, /* Index: 0xe8, char: \xe9 */ + { 0x0e, 0x32f8 }, /* Index: 0xe9, char: \xea */ + { 0x0e, 0x3330 }, /* Index: 0xea, char: \xeb */ + { 0x0e, 0x3368 }, /* Index: 0xeb, char: \xec */ + { 0x0e, 0x33a0 }, /* Index: 0xec, char: \xed */ + { 0x0e, 0x33d8 }, /* Index: 0xed, char: \xee */ + { 0x0e, 0x3410 }, /* Index: 0xee, char: \xef */ + { 0x0e, 0x3448 }, /* Index: 0xef, char: \xf0 */ + { 0x0e, 0x3480 }, /* Index: 0xf0, char: \xf1 */ + { 0x0e, 0x34b8 }, /* Index: 0xf1, char: \xf2 */ + { 0x0e, 0x34f0 }, /* Index: 0xf2, char: \xf3 */ + { 0x0e, 0x3528 }, /* Index: 0xf3, char: \xf4 */ + { 0x0e, 0x3560 }, /* Index: 0xf4, char: \xf5 */ + { 0x0e, 0x3598 }, /* Index: 0xf5, char: \xf6 */ + { 0x0e, 0x35d0 }, /* Index: 0xf6, char: \xf7 */ + { 0x0e, 0x3608 }, /* Index: 0xf7, char: \xf8 */ + { 0x0e, 0x3640 }, /* Index: 0xf8, char: \xf9 */ + { 0x0e, 0x3678 }, /* Index: 0xf9, char: \xfa */ + { 0x0e, 0x36b0 }, /* Index: 0xfa, char: \xfb */ + { 0x0e, 0x36e8 }, /* Index: 0xfb, char: \xfc */ + { 0x0e, 0x3720 }, /* Index: 0xfc, char: \xfd */ + { 0x0e, 0x3758 }, /* Index: 0xfd, char: \xfe */ + { 0x0e, 0x3790 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_14x28_koi8_r_info = +{ + .height = 28, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_14x28_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_14x28_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_14X28_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_16x32_iso8859_1.h b/extras/fonts/data/font_terminus_bold_16x32_iso8859_1.h new file mode 100644 index 0000000..0f7333a --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_16x32_iso8859_1.h @@ -0,0 +1,8959 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 16x32 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 02:38:29 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_16x32_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7f, 0xfc, /* .#############.. */ + 0xff, 0xfe, /* ###############. */ + 0xff, 0xfe, /* ###############. */ + 0x7f, 0xfc, /* .#############.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0040 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x0080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x71, 0xc0, /* .###...###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x8e, /* ......###...###. */ + 0x03, 0x8e, /* ......###...###. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xb8, /* ......###.###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x8e, /* ......###...###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x79, 0xc0, /* .####..###...... */ + 0x7d, 0xc0, /* .#####.###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x77, 0xc0, /* .###.#####...... */ + 0x73, 0xc0, /* .###..####...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0280 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0340 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0380 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0f, char: \x10, offset: 0x03c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x04c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0500 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x15, char: \x16, offset: 0x0540 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x16, char: \x17, offset: 0x0580 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x05c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x18, char: \x19, offset: 0x0600 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x19, char: \x1a, offset: 0x0640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x1c, /* ...........###.. */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1e, 0x78, /* ...####..####... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x07c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x7b, 0x80, /* .####.###....... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x03, 0xbc, /* ......###.####.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x1c, /* ...#####...###.. */ + 0x3f, 0x9c, /* ..#######..###.. */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0x70, /* ...#####.###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0xf8, /* ....###.#####... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1d, 0xdc, /* ...###.###.###.. */ + 0x1d, 0xdc, /* ...###.###.###.. */ + 0x39, 0xfc, /* ..###..#######.. */ + 0x38, 0xf8, /* ..###...#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xce, /* ...#######..###. */ + 0x38, 0xee, /* ..###...###.###. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x7c, /* .####....#####.. */ + 0x3f, 0xee, /* ..#########.###. */ + 0x1f, 0xce, /* ...#######..###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x0a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0x80, /* ...######....... */ + 0x1f, 0x80, /* ...######....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x7c, /* .........#####.. */ + 0x00, 0xfc, /* ........######.. */ + 0x01, 0xdc, /* .......###.###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x1c, /* .....###...###.. */ + 0x0e, 0x1c, /* ....###....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x0e, /* .####.......###. */ + 0x70, 0x06, /* .###.........##. */ + 0x71, 0xfe, /* .###...########. */ + 0x73, 0xfe, /* .###..#########. */ + 0x77, 0x8e, /* .###.####...###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x9e, /* .###.####..####. */ + 0x73, 0xfe, /* .###..#########. */ + 0x71, 0xf6, /* .###...#####.##. */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0xfe, /* ...############. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x1000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x1040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x10c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x78, /* .###.....####... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x78, /* .###.....####... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x1100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x71, 0xfc, /* .###...#######.. */ + 0x71, 0xfc, /* .###...#######.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x11c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x1240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xfe, /* ........#######. */ + 0x00, 0xfe, /* ........#######. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0c, /* .###........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0xe0, /* .###....###..... */ + 0x71, 0xc0, /* .###...###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x77, 0x00, /* .###.###........ */ + 0x7e, 0x00, /* .######......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7e, 0x00, /* .######......... */ + 0x77, 0x00, /* .###.###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0xe0, /* .###....###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x0c, /* .###........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x1300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x78, 0x1e, /* .####......####. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7e, 0x7e, /* .######..######. */ + 0x77, 0xee, /* .###.######.###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x13c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x79, 0xfc, /* .####..#######.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7e, 0x00, /* .######......... */ + 0x77, 0x00, /* .###.###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0xe0, /* .###....###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x1480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x14c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x77, 0xee, /* .###.######.###. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x78, 0x1e, /* .####......####. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x17c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xfe, /* ........#######. */ + 0x01, 0xfe, /* .......########. */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x19c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x3c, 0x78, /* ..####...####... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x3b, 0x80, /* ..###.###....... */ + 0x3f, 0x00, /* ..######........ */ + 0x3f, 0x00, /* ..######........ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x73, 0xbc, /* .###..###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0xfc, /* .###..########.. */ + 0x77, 0xfc, /* .###.#########.. */ + 0x7e, 0x00, /* .######......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0xfc, /* ......########.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xf0, /* ......######.... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0xf0, /* ......######.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xf0, /* .......#####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x3f, 0x00, /* ..######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x1c, /* ...####....###.. */ + 0x3f, 0x1c, /* ..######...###.. */ + 0x77, 0x9c, /* .###.####..###.. */ + 0x73, 0xdc, /* .###..####.###.. */ + 0x71, 0xf8, /* .###...######... */ + 0x70, 0xf0, /* .###....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x2000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x81, char: \x82, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x82, char: \x83, offset: 0x2080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x83, char: \x84, offset: 0x20c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x2100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x2140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x86, char: \x87, offset: 0x2180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x87, char: \x88, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x88, char: \x89, offset: 0x2200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x2240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8a, char: \x8b, offset: 0x2280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x22c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8c, char: \x8d, offset: 0x2300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8d, char: \x8e, offset: 0x2340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8e, char: \x8f, offset: 0x2380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8f, char: \x90, offset: 0x23c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x2400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x91, char: \x92, offset: 0x2440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x92, char: \x93, offset: 0x2480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x93, char: \x94, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x2580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x25c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x2680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x26c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x27c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa1, char: \xa2, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa2, char: \xa3, offset: 0x2880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1e, 0x78, /* ...####..####... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x28c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa4, char: \xa5, offset: 0x2900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa5, char: \xa6, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa6, char: \xa7, offset: 0x2980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1e, 0x78, /* ...####..####... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1e, 0x00, /* ...####......... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1c, 0xf0, /* ...###..####.... */ + 0x1c, 0x78, /* ...###...####... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1e, 0x38, /* ...####...###... */ + 0x0f, 0x38, /* ....####..###... */ + 0x07, 0xf0, /* .....#######.... */ + 0x03, 0xf0, /* ......######.... */ + 0x00, 0x78, /* .........####... */ + 0x00, 0x38, /* ..........###... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1e, 0x78, /* ...####..####... */ + 0x0f, 0xf0, /* ....########.... */ + 0x07, 0xe0, /* .....######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa7, char: \xa8, offset: 0x29c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa8, char: \xa9, offset: 0x2a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x2a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xe0, /* ...########..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x0f, 0xf8, /* ....#########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf8, /* ...##########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x01, 0xce, /* .......###..###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x6f, 0xe6, /* .##.#######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6f, 0xe6, /* .##.#######..##. */ + 0x6f, 0xc6, /* .##.######...##. */ + 0x6f, 0xc6, /* .##.######...##. */ + 0x6e, 0xe6, /* .##.###.###..##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaf, char: \xb0, offset: 0x2bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb0, char: \xb1, offset: 0x2c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb1, char: \xb2, offset: 0x2c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb2, char: \xb3, offset: 0x2c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x70, /* .........###.... */ + 0x03, 0xe0, /* ......#####..... */ + 0x03, 0xe0, /* ......#####..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb4, char: \xb5, offset: 0x2d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x7f, 0xdc, /* .#########.###.. */ + 0x7f, 0x9c, /* .########..###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb5, char: \xb6, offset: 0x2d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfe, /* ...############. */ + 0x3f, 0xfe, /* ..#############. */ + 0x79, 0xce, /* .####..###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x79, 0xce, /* .####..###..###. */ + 0x3f, 0xce, /* ..########..###. */ + 0x1f, 0xce, /* ...#######..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb6, char: \xb7, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb7, char: \xb8, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb8, char: \xb9, offset: 0x2e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x2e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x80, /* .###..###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0x38, /* .....###..###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x01, 0xce, /* .......###..###. */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x38, /* .....###..###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x1e, 0x00, /* ...####......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x06, /* ....###......##. */ + 0x0e, 0x0e, /* ....###.....###. */ + 0x0e, 0x1c, /* ....###....###.. */ + 0x0e, 0x38, /* ....###...###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xce, /* .......###..###. */ + 0x03, 0x9e, /* ......###..####. */ + 0x07, 0x3e, /* .....###..#####. */ + 0x0e, 0x7e, /* ....###..######. */ + 0x1c, 0xee, /* ...###..###.###. */ + 0x39, 0xce, /* ..###..###..###. */ + 0x73, 0xfe, /* .###..#########. */ + 0x63, 0xfe, /* .##...#########. */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbc, char: \xbd, offset: 0x2f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x3c, 0x00, /* ..####.......... */ + 0x7c, 0x06, /* .#####.......##. */ + 0x1c, 0x0e, /* ...###......###. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0xfc, /* ....###.######.. */ + 0x1d, 0xfe, /* ...###.########. */ + 0x39, 0xce, /* ..###..###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x60, 0x1c, /* .##........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xfe, /* ........#######. */ + 0x01, 0xfe, /* .......########. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbd, char: \xbe, offset: 0x2f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x01, 0xc6, /* .......###...##. */ + 0x71, 0xce, /* .###...###..###. */ + 0x7f, 0xdc, /* .#########.###.. */ + 0x3f, 0xb8, /* ..#######.###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xee, /* ........###.###. */ + 0x01, 0xde, /* .......###.####. */ + 0x03, 0xbe, /* ......###.#####. */ + 0x07, 0x7e, /* .....###.######. */ + 0x0e, 0xee, /* ....###.###.###. */ + 0x1d, 0xce, /* ...###.###..###. */ + 0x3b, 0xfe, /* ..###.#########. */ + 0x73, 0xfe, /* .###..#########. */ + 0x60, 0x0e, /* .##.........###. */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbe, char: \xbf, offset: 0x2f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x2fc0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x3000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x3040 */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x3080 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x30c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x3140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfe, /* ..#############. */ + 0x7f, 0xfe, /* .##############. */ + 0xf1, 0xc0, /* ####...###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xff, 0xfe, /* ###############. */ + 0xff, 0xfe, /* ###############. */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xc0, /* ###....###...... */ + 0xe1, 0xfe, /* ###....########. */ + 0xe1, 0xfe, /* ###....########. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x3180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x31c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x3200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x3240 */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x3280 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x3300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x3340 */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x3380 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x33c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x78, /* .###.....####... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0xff, 0x9c, /* #########..###.. */ + 0xff, 0x9c, /* #########..###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x78, /* .###.....####... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x3400 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x3440 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x34c0 */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x3500 */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x3540 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x3580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x1c, 0x38, /* ...###....###... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x1c, 0x38, /* ...###....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x35c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3e, /* .####.....#####. */ + 0x70, 0x1e, /* .###.......####. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0xf0, 0x1c, /* ####.......###.. */ + 0xf0, 0x1c, /* ####.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x3600 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x3680 */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x36c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xe0, /* ..#########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x78, /* .###.....####... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x70, /* .###.....###.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x7c, 0x3c, /* .#####....####.. */ + 0x77, 0xf8, /* .###.########... */ + 0x73, 0xf0, /* .###..######.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x37c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x38c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x3900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x9e, /* ......###..####. */ + 0x03, 0x8e, /* ......###...###. */ + 0x03, 0x8e, /* ......###...###. */ + 0x3f, 0x8e, /* ..#######...###. */ + 0x7f, 0xfe, /* .##############. */ + 0xf3, 0xfe, /* ####..#########. */ + 0xe3, 0x80, /* ###...###....... */ + 0xe3, 0x80, /* ###...###....... */ + 0xe3, 0x80, /* ###...###....... */ + 0xf3, 0xce, /* ####..####..###. */ + 0x7f, 0xfe, /* .##############. */ + 0x3e, 0xfc, /* ..#####.######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x39c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x3a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x3a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x3b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x3b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1d, 0xc0, /* ...###.###...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0x00, /* ...#####........ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x3c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x3c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x38, /* ...#####..###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x39, 0xf0, /* ..###..#####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x3d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf6, /* ...#########.##. */ + 0x3f, 0xfe, /* ..#############. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0xff, 0xf8, /* #############... */ + 0xdf, 0xf0, /* ##.#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x3e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x3ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_16x32_iso8859_1_descriptors[] = { + { 0x10, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x10, 0x0040 }, /* Index: 0x01, char: \x02 */ + { 0x10, 0x0080 }, /* Index: 0x02, char: \x03 */ + { 0x10, 0x00c0 }, /* Index: 0x03, char: \x04 */ + { 0x10, 0x0100 }, /* Index: 0x04, char: \x05 */ + { 0x10, 0x0140 }, /* Index: 0x05, char: \x06 */ + { 0x10, 0x0180 }, /* Index: 0x06, char: \x07 */ + { 0x10, 0x01c0 }, /* Index: 0x07, char: \x08 */ + { 0x10, 0x0200 }, /* Index: 0x08, char: \x09 */ + { 0x10, 0x0240 }, /* Index: 0x09, char: \x0a */ + { 0x10, 0x0280 }, /* Index: 0x0a, char: \x0b */ + { 0x10, 0x02c0 }, /* Index: 0x0b, char: \x0c */ + { 0x10, 0x0300 }, /* Index: 0x0c, char: \x0d */ + { 0x10, 0x0340 }, /* Index: 0x0d, char: \x0e */ + { 0x10, 0x0380 }, /* Index: 0x0e, char: \x0f */ + { 0x10, 0x03c0 }, /* Index: 0x0f, char: \x10 */ + { 0x10, 0x0400 }, /* Index: 0x10, char: \x11 */ + { 0x10, 0x0440 }, /* Index: 0x11, char: \x12 */ + { 0x10, 0x0480 }, /* Index: 0x12, char: \x13 */ + { 0x10, 0x04c0 }, /* Index: 0x13, char: \x14 */ + { 0x10, 0x0500 }, /* Index: 0x14, char: \x15 */ + { 0x10, 0x0540 }, /* Index: 0x15, char: \x16 */ + { 0x10, 0x0580 }, /* Index: 0x16, char: \x17 */ + { 0x10, 0x05c0 }, /* Index: 0x17, char: \x18 */ + { 0x10, 0x0600 }, /* Index: 0x18, char: \x19 */ + { 0x10, 0x0640 }, /* Index: 0x19, char: \x1a */ + { 0x10, 0x0680 }, /* Index: 0x1a, char: \x1b */ + { 0x10, 0x06c0 }, /* Index: 0x1b, char: \x1c */ + { 0x10, 0x0700 }, /* Index: 0x1c, char: \x1d */ + { 0x10, 0x0740 }, /* Index: 0x1d, char: \x1e */ + { 0x10, 0x0780 }, /* Index: 0x1e, char: \x1f */ + { 0x10, 0x07c0 }, /* Index: 0x1f, char: \x20 */ + { 0x10, 0x0800 }, /* Index: 0x20, char: \x21 */ + { 0x10, 0x0840 }, /* Index: 0x21, char: \x22 */ + { 0x10, 0x0880 }, /* Index: 0x22, char: \x23 */ + { 0x10, 0x08c0 }, /* Index: 0x23, char: \x24 */ + { 0x10, 0x0900 }, /* Index: 0x24, char: \x25 */ + { 0x10, 0x0940 }, /* Index: 0x25, char: \x26 */ + { 0x10, 0x0980 }, /* Index: 0x26, char: \x27 */ + { 0x10, 0x09c0 }, /* Index: 0x27, char: \x28 */ + { 0x10, 0x0a00 }, /* Index: 0x28, char: \x29 */ + { 0x10, 0x0a40 }, /* Index: 0x29, char: \x2a */ + { 0x10, 0x0a80 }, /* Index: 0x2a, char: \x2b */ + { 0x10, 0x0ac0 }, /* Index: 0x2b, char: \x2c */ + { 0x10, 0x0b00 }, /* Index: 0x2c, char: \x2d */ + { 0x10, 0x0b40 }, /* Index: 0x2d, char: \x2e */ + { 0x10, 0x0b80 }, /* Index: 0x2e, char: \x2f */ + { 0x10, 0x0bc0 }, /* Index: 0x2f, char: \x30 */ + { 0x10, 0x0c00 }, /* Index: 0x30, char: \x31 */ + { 0x10, 0x0c40 }, /* Index: 0x31, char: \x32 */ + { 0x10, 0x0c80 }, /* Index: 0x32, char: \x33 */ + { 0x10, 0x0cc0 }, /* Index: 0x33, char: \x34 */ + { 0x10, 0x0d00 }, /* Index: 0x34, char: \x35 */ + { 0x10, 0x0d40 }, /* Index: 0x35, char: \x36 */ + { 0x10, 0x0d80 }, /* Index: 0x36, char: \x37 */ + { 0x10, 0x0dc0 }, /* Index: 0x37, char: \x38 */ + { 0x10, 0x0e00 }, /* Index: 0x38, char: \x39 */ + { 0x10, 0x0e40 }, /* Index: 0x39, char: \x3a */ + { 0x10, 0x0e80 }, /* Index: 0x3a, char: \x3b */ + { 0x10, 0x0ec0 }, /* Index: 0x3b, char: \x3c */ + { 0x10, 0x0f00 }, /* Index: 0x3c, char: \x3d */ + { 0x10, 0x0f40 }, /* Index: 0x3d, char: \x3e */ + { 0x10, 0x0f80 }, /* Index: 0x3e, char: \x3f */ + { 0x10, 0x0fc0 }, /* Index: 0x3f, char: \x40 */ + { 0x10, 0x1000 }, /* Index: 0x40, char: \x41 */ + { 0x10, 0x1040 }, /* Index: 0x41, char: \x42 */ + { 0x10, 0x1080 }, /* Index: 0x42, char: \x43 */ + { 0x10, 0x10c0 }, /* Index: 0x43, char: \x44 */ + { 0x10, 0x1100 }, /* Index: 0x44, char: \x45 */ + { 0x10, 0x1140 }, /* Index: 0x45, char: \x46 */ + { 0x10, 0x1180 }, /* Index: 0x46, char: \x47 */ + { 0x10, 0x11c0 }, /* Index: 0x47, char: \x48 */ + { 0x10, 0x1200 }, /* Index: 0x48, char: \x49 */ + { 0x10, 0x1240 }, /* Index: 0x49, char: \x4a */ + { 0x10, 0x1280 }, /* Index: 0x4a, char: \x4b */ + { 0x10, 0x12c0 }, /* Index: 0x4b, char: \x4c */ + { 0x10, 0x1300 }, /* Index: 0x4c, char: \x4d */ + { 0x10, 0x1340 }, /* Index: 0x4d, char: \x4e */ + { 0x10, 0x1380 }, /* Index: 0x4e, char: \x4f */ + { 0x10, 0x13c0 }, /* Index: 0x4f, char: \x50 */ + { 0x10, 0x1400 }, /* Index: 0x50, char: \x51 */ + { 0x10, 0x1440 }, /* Index: 0x51, char: \x52 */ + { 0x10, 0x1480 }, /* Index: 0x52, char: \x53 */ + { 0x10, 0x14c0 }, /* Index: 0x53, char: \x54 */ + { 0x10, 0x1500 }, /* Index: 0x54, char: \x55 */ + { 0x10, 0x1540 }, /* Index: 0x55, char: \x56 */ + { 0x10, 0x1580 }, /* Index: 0x56, char: \x57 */ + { 0x10, 0x15c0 }, /* Index: 0x57, char: \x58 */ + { 0x10, 0x1600 }, /* Index: 0x58, char: \x59 */ + { 0x10, 0x1640 }, /* Index: 0x59, char: \x5a */ + { 0x10, 0x1680 }, /* Index: 0x5a, char: \x5b */ + { 0x10, 0x16c0 }, /* Index: 0x5b, char: \x5c */ + { 0x10, 0x1700 }, /* Index: 0x5c, char: \x5d */ + { 0x10, 0x1740 }, /* Index: 0x5d, char: \x5e */ + { 0x10, 0x1780 }, /* Index: 0x5e, char: \x5f */ + { 0x10, 0x17c0 }, /* Index: 0x5f, char: \x60 */ + { 0x10, 0x1800 }, /* Index: 0x60, char: \x61 */ + { 0x10, 0x1840 }, /* Index: 0x61, char: \x62 */ + { 0x10, 0x1880 }, /* Index: 0x62, char: \x63 */ + { 0x10, 0x18c0 }, /* Index: 0x63, char: \x64 */ + { 0x10, 0x1900 }, /* Index: 0x64, char: \x65 */ + { 0x10, 0x1940 }, /* Index: 0x65, char: \x66 */ + { 0x10, 0x1980 }, /* Index: 0x66, char: \x67 */ + { 0x10, 0x19c0 }, /* Index: 0x67, char: \x68 */ + { 0x10, 0x1a00 }, /* Index: 0x68, char: \x69 */ + { 0x10, 0x1a40 }, /* Index: 0x69, char: \x6a */ + { 0x10, 0x1a80 }, /* Index: 0x6a, char: \x6b */ + { 0x10, 0x1ac0 }, /* Index: 0x6b, char: \x6c */ + { 0x10, 0x1b00 }, /* Index: 0x6c, char: \x6d */ + { 0x10, 0x1b40 }, /* Index: 0x6d, char: \x6e */ + { 0x10, 0x1b80 }, /* Index: 0x6e, char: \x6f */ + { 0x10, 0x1bc0 }, /* Index: 0x6f, char: \x70 */ + { 0x10, 0x1c00 }, /* Index: 0x70, char: \x71 */ + { 0x10, 0x1c40 }, /* Index: 0x71, char: \x72 */ + { 0x10, 0x1c80 }, /* Index: 0x72, char: \x73 */ + { 0x10, 0x1cc0 }, /* Index: 0x73, char: \x74 */ + { 0x10, 0x1d00 }, /* Index: 0x74, char: \x75 */ + { 0x10, 0x1d40 }, /* Index: 0x75, char: \x76 */ + { 0x10, 0x1d80 }, /* Index: 0x76, char: \x77 */ + { 0x10, 0x1dc0 }, /* Index: 0x77, char: \x78 */ + { 0x10, 0x1e00 }, /* Index: 0x78, char: \x79 */ + { 0x10, 0x1e40 }, /* Index: 0x79, char: \x7a */ + { 0x10, 0x1e80 }, /* Index: 0x7a, char: \x7b */ + { 0x10, 0x1ec0 }, /* Index: 0x7b, char: \x7c */ + { 0x10, 0x1f00 }, /* Index: 0x7c, char: \x7d */ + { 0x10, 0x1f40 }, /* Index: 0x7d, char: \x7e */ + { 0x10, 0x1f80 }, /* Index: 0x7e, char: \x7f */ + { 0x10, 0x1fc0 }, /* Index: 0x7f, char: \x80 */ + { 0x10, 0x2000 }, /* Index: 0x80, char: \x81 */ + { 0x10, 0x2040 }, /* Index: 0x81, char: \x82 */ + { 0x10, 0x2080 }, /* Index: 0x82, char: \x83 */ + { 0x10, 0x20c0 }, /* Index: 0x83, char: \x84 */ + { 0x10, 0x2100 }, /* Index: 0x84, char: \x85 */ + { 0x10, 0x2140 }, /* Index: 0x85, char: \x86 */ + { 0x10, 0x2180 }, /* Index: 0x86, char: \x87 */ + { 0x10, 0x21c0 }, /* Index: 0x87, char: \x88 */ + { 0x10, 0x2200 }, /* Index: 0x88, char: \x89 */ + { 0x10, 0x2240 }, /* Index: 0x89, char: \x8a */ + { 0x10, 0x2280 }, /* Index: 0x8a, char: \x8b */ + { 0x10, 0x22c0 }, /* Index: 0x8b, char: \x8c */ + { 0x10, 0x2300 }, /* Index: 0x8c, char: \x8d */ + { 0x10, 0x2340 }, /* Index: 0x8d, char: \x8e */ + { 0x10, 0x2380 }, /* Index: 0x8e, char: \x8f */ + { 0x10, 0x23c0 }, /* Index: 0x8f, char: \x90 */ + { 0x10, 0x2400 }, /* Index: 0x90, char: \x91 */ + { 0x10, 0x2440 }, /* Index: 0x91, char: \x92 */ + { 0x10, 0x2480 }, /* Index: 0x92, char: \x93 */ + { 0x10, 0x24c0 }, /* Index: 0x93, char: \x94 */ + { 0x10, 0x2500 }, /* Index: 0x94, char: \x95 */ + { 0x10, 0x2540 }, /* Index: 0x95, char: \x96 */ + { 0x10, 0x2580 }, /* Index: 0x96, char: \x97 */ + { 0x10, 0x25c0 }, /* Index: 0x97, char: \x98 */ + { 0x10, 0x2600 }, /* Index: 0x98, char: \x99 */ + { 0x10, 0x2640 }, /* Index: 0x99, char: \x9a */ + { 0x10, 0x2680 }, /* Index: 0x9a, char: \x9b */ + { 0x10, 0x26c0 }, /* Index: 0x9b, char: \x9c */ + { 0x10, 0x2700 }, /* Index: 0x9c, char: \x9d */ + { 0x10, 0x2740 }, /* Index: 0x9d, char: \x9e */ + { 0x10, 0x2780 }, /* Index: 0x9e, char: \x9f */ + { 0x10, 0x27c0 }, /* Index: 0x9f, char: \xa0 */ + { 0x10, 0x2800 }, /* Index: 0xa0, char: \xa1 */ + { 0x10, 0x2840 }, /* Index: 0xa1, char: \xa2 */ + { 0x10, 0x2880 }, /* Index: 0xa2, char: \xa3 */ + { 0x10, 0x28c0 }, /* Index: 0xa3, char: \xa4 */ + { 0x10, 0x2900 }, /* Index: 0xa4, char: \xa5 */ + { 0x10, 0x2940 }, /* Index: 0xa5, char: \xa6 */ + { 0x10, 0x2980 }, /* Index: 0xa6, char: \xa7 */ + { 0x10, 0x29c0 }, /* Index: 0xa7, char: \xa8 */ + { 0x10, 0x2a00 }, /* Index: 0xa8, char: \xa9 */ + { 0x10, 0x2a40 }, /* Index: 0xa9, char: \xaa */ + { 0x10, 0x2a80 }, /* Index: 0xaa, char: \xab */ + { 0x10, 0x2ac0 }, /* Index: 0xab, char: \xac */ + { 0x10, 0x2b00 }, /* Index: 0xac, char: \xad */ + { 0x10, 0x2b40 }, /* Index: 0xad, char: \xae */ + { 0x10, 0x2b80 }, /* Index: 0xae, char: \xaf */ + { 0x10, 0x2bc0 }, /* Index: 0xaf, char: \xb0 */ + { 0x10, 0x2c00 }, /* Index: 0xb0, char: \xb1 */ + { 0x10, 0x2c40 }, /* Index: 0xb1, char: \xb2 */ + { 0x10, 0x2c80 }, /* Index: 0xb2, char: \xb3 */ + { 0x10, 0x2cc0 }, /* Index: 0xb3, char: \xb4 */ + { 0x10, 0x2d00 }, /* Index: 0xb4, char: \xb5 */ + { 0x10, 0x2d40 }, /* Index: 0xb5, char: \xb6 */ + { 0x10, 0x2d80 }, /* Index: 0xb6, char: \xb7 */ + { 0x10, 0x2dc0 }, /* Index: 0xb7, char: \xb8 */ + { 0x10, 0x2e00 }, /* Index: 0xb8, char: \xb9 */ + { 0x10, 0x2e40 }, /* Index: 0xb9, char: \xba */ + { 0x10, 0x2e80 }, /* Index: 0xba, char: \xbb */ + { 0x10, 0x2ec0 }, /* Index: 0xbb, char: \xbc */ + { 0x10, 0x2f00 }, /* Index: 0xbc, char: \xbd */ + { 0x10, 0x2f40 }, /* Index: 0xbd, char: \xbe */ + { 0x10, 0x2f80 }, /* Index: 0xbe, char: \xbf */ + { 0x10, 0x2fc0 }, /* Index: 0xbf, char: \xc0 */ + { 0x10, 0x3000 }, /* Index: 0xc0, char: \xc1 */ + { 0x10, 0x3040 }, /* Index: 0xc1, char: \xc2 */ + { 0x10, 0x3080 }, /* Index: 0xc2, char: \xc3 */ + { 0x10, 0x30c0 }, /* Index: 0xc3, char: \xc4 */ + { 0x10, 0x3100 }, /* Index: 0xc4, char: \xc5 */ + { 0x10, 0x3140 }, /* Index: 0xc5, char: \xc6 */ + { 0x10, 0x3180 }, /* Index: 0xc6, char: \xc7 */ + { 0x10, 0x31c0 }, /* Index: 0xc7, char: \xc8 */ + { 0x10, 0x3200 }, /* Index: 0xc8, char: \xc9 */ + { 0x10, 0x3240 }, /* Index: 0xc9, char: \xca */ + { 0x10, 0x3280 }, /* Index: 0xca, char: \xcb */ + { 0x10, 0x32c0 }, /* Index: 0xcb, char: \xcc */ + { 0x10, 0x3300 }, /* Index: 0xcc, char: \xcd */ + { 0x10, 0x3340 }, /* Index: 0xcd, char: \xce */ + { 0x10, 0x3380 }, /* Index: 0xce, char: \xcf */ + { 0x10, 0x33c0 }, /* Index: 0xcf, char: \xd0 */ + { 0x10, 0x3400 }, /* Index: 0xd0, char: \xd1 */ + { 0x10, 0x3440 }, /* Index: 0xd1, char: \xd2 */ + { 0x10, 0x3480 }, /* Index: 0xd2, char: \xd3 */ + { 0x10, 0x34c0 }, /* Index: 0xd3, char: \xd4 */ + { 0x10, 0x3500 }, /* Index: 0xd4, char: \xd5 */ + { 0x10, 0x3540 }, /* Index: 0xd5, char: \xd6 */ + { 0x10, 0x3580 }, /* Index: 0xd6, char: \xd7 */ + { 0x10, 0x35c0 }, /* Index: 0xd7, char: \xd8 */ + { 0x10, 0x3600 }, /* Index: 0xd8, char: \xd9 */ + { 0x10, 0x3640 }, /* Index: 0xd9, char: \xda */ + { 0x10, 0x3680 }, /* Index: 0xda, char: \xdb */ + { 0x10, 0x36c0 }, /* Index: 0xdb, char: \xdc */ + { 0x10, 0x3700 }, /* Index: 0xdc, char: \xdd */ + { 0x10, 0x3740 }, /* Index: 0xdd, char: \xde */ + { 0x10, 0x3780 }, /* Index: 0xde, char: \xdf */ + { 0x10, 0x37c0 }, /* Index: 0xdf, char: \xe0 */ + { 0x10, 0x3800 }, /* Index: 0xe0, char: \xe1 */ + { 0x10, 0x3840 }, /* Index: 0xe1, char: \xe2 */ + { 0x10, 0x3880 }, /* Index: 0xe2, char: \xe3 */ + { 0x10, 0x38c0 }, /* Index: 0xe3, char: \xe4 */ + { 0x10, 0x3900 }, /* Index: 0xe4, char: \xe5 */ + { 0x10, 0x3940 }, /* Index: 0xe5, char: \xe6 */ + { 0x10, 0x3980 }, /* Index: 0xe6, char: \xe7 */ + { 0x10, 0x39c0 }, /* Index: 0xe7, char: \xe8 */ + { 0x10, 0x3a00 }, /* Index: 0xe8, char: \xe9 */ + { 0x10, 0x3a40 }, /* Index: 0xe9, char: \xea */ + { 0x10, 0x3a80 }, /* Index: 0xea, char: \xeb */ + { 0x10, 0x3ac0 }, /* Index: 0xeb, char: \xec */ + { 0x10, 0x3b00 }, /* Index: 0xec, char: \xed */ + { 0x10, 0x3b40 }, /* Index: 0xed, char: \xee */ + { 0x10, 0x3b80 }, /* Index: 0xee, char: \xef */ + { 0x10, 0x3bc0 }, /* Index: 0xef, char: \xf0 */ + { 0x10, 0x3c00 }, /* Index: 0xf0, char: \xf1 */ + { 0x10, 0x3c40 }, /* Index: 0xf1, char: \xf2 */ + { 0x10, 0x3c80 }, /* Index: 0xf2, char: \xf3 */ + { 0x10, 0x3cc0 }, /* Index: 0xf3, char: \xf4 */ + { 0x10, 0x3d00 }, /* Index: 0xf4, char: \xf5 */ + { 0x10, 0x3d40 }, /* Index: 0xf5, char: \xf6 */ + { 0x10, 0x3d80 }, /* Index: 0xf6, char: \xf7 */ + { 0x10, 0x3dc0 }, /* Index: 0xf7, char: \xf8 */ + { 0x10, 0x3e00 }, /* Index: 0xf8, char: \xf9 */ + { 0x10, 0x3e40 }, /* Index: 0xf9, char: \xfa */ + { 0x10, 0x3e80 }, /* Index: 0xfa, char: \xfb */ + { 0x10, 0x3ec0 }, /* Index: 0xfb, char: \xfc */ + { 0x10, 0x3f00 }, /* Index: 0xfc, char: \xfd */ + { 0x10, 0x3f40 }, /* Index: 0xfd, char: \xfe */ + { 0x10, 0x3f80 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_16x32_iso8859_1_info = +{ + .height = 32, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_16x32_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_16x32_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_16x32_koi8_r.h b/extras/fonts/data/font_terminus_bold_16x32_koi8_r.h new file mode 100644 index 0000000..13014a2 --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_16x32_koi8_r.h @@ -0,0 +1,8959 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 16x32 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_KOI8_R_H_ + +static const uint8_t _fonts_terminus_bold_16x32_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7f, 0xfc, /* .#############.. */ + 0xff, 0xfe, /* ###############. */ + 0xff, 0xfe, /* ###############. */ + 0x7f, 0xfc, /* .#############.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x01, char: \x02, offset: 0x0040 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x0080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x03, char: \x04, offset: 0x00c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0x00, /* .#######........ */ + 0x7f, 0x00, /* .#######........ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x04, char: \x05, offset: 0x0100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0x80, /* ..#######....... */ + 0x7f, 0xc0, /* .#########...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x71, 0xc0, /* .###...###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x3f, 0x80, /* ..#######....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x8e, /* ......###...###. */ + 0x03, 0x8e, /* ......###...###. */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0xf0, /* ......######.... */ + 0x03, 0xb8, /* ......###.###... */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x8e, /* ......###...###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x05, char: \x06, offset: 0x0140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0xf8, /* ......#######... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x06, char: \x07, offset: 0x0180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x07, char: \x08, offset: 0x01c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x08, char: \x09, offset: 0x0200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x79, 0xc0, /* .####..###...... */ + 0x7d, 0xc0, /* .#####.###...... */ + 0x7f, 0xc0, /* .#########...... */ + 0x77, 0xc0, /* .###.#####...... */ + 0x73, 0xc0, /* .###..####...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x71, 0xc0, /* .###...###...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xfe, /* ......#########. */ + 0x03, 0xfe, /* ......#########. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x09, char: \x0a, offset: 0x0240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0a, char: \x0b, offset: 0x0280 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0b, char: \x0c, offset: 0x02c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0c, char: \x0d, offset: 0x0300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0d, char: \x0e, offset: 0x0340 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x0e, char: \x0f, offset: 0x0380 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x0f, char: \x10, offset: 0x03c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x10, char: \x11, offset: 0x0400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x11, char: \x12, offset: 0x0440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x12, char: \x13, offset: 0x0480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x13, char: \x14, offset: 0x04c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x14, char: \x15, offset: 0x0500 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x15, char: \x16, offset: 0x0540 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x16, char: \x17, offset: 0x0580 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x17, char: \x18, offset: 0x05c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x18, char: \x19, offset: 0x0600 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x19, char: \x1a, offset: 0x0640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1a, char: \x1b, offset: 0x0680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1b, char: \x1c, offset: 0x06c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x0e, /* ............###. */ + 0x00, 0x1c, /* ...........###.. */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xfe, /* .##############. */ + 0x7f, 0xfe, /* .##############. */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xe0, /* .....######..... */ + 0x0f, 0xf0, /* ....########.... */ + 0x1e, 0x78, /* ...####..####... */ + 0x1c, 0x38, /* ...###....###... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1e, char: \x1f, offset: 0x0780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x1f, char: \x20, offset: 0x07c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x20, char: \x21, offset: 0x0800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x21, char: \x22, offset: 0x0840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x22, char: \x23, offset: 0x0880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x23, char: \x24, offset: 0x08c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x7b, 0x80, /* .####.###....... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x03, 0xbc, /* ......###.####.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x24, char: \x25, offset: 0x0900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0x1c, /* ...#####...###.. */ + 0x3f, 0x9c, /* ..#######..###.. */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0x70, /* ...#####.###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0xf8, /* ....###.#####... */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1d, 0xdc, /* ...###.###.###.. */ + 0x1d, 0xdc, /* ...###.###.###.. */ + 0x39, 0xfc, /* ..###..#######.. */ + 0x38, 0xf8, /* ..###...#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x25, char: \x26, offset: 0x0940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xc0, /* ....######...... */ + 0x1f, 0xe0, /* ...########..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x70, /* ..###....###.... */ + 0x1c, 0xe0, /* ...###..###..... */ + 0x0f, 0xc0, /* ....######...... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0xce, /* ...#######..###. */ + 0x38, 0xee, /* ..###...###.###. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x7c, /* .####....#####.. */ + 0x3f, 0xee, /* ..#########.###. */ + 0x1f, 0xce, /* ...#######..###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x26, char: \x27, offset: 0x0980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x27, char: \x28, offset: 0x09c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x28, char: \x29, offset: 0x0a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x29, char: \x2a, offset: 0x0a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2a, char: \x2b, offset: 0x0a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2b, char: \x2c, offset: 0x0ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x2f, char: \x30, offset: 0x0bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x30, char: \x31, offset: 0x0c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x1f, 0x80, /* ...######....... */ + 0x1f, 0x80, /* ...######....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x31, char: \x32, offset: 0x0c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x32, char: \x33, offset: 0x0c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x33, char: \x34, offset: 0x0cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x7c, /* .........#####.. */ + 0x00, 0xfc, /* ........######.. */ + 0x01, 0xdc, /* .......###.###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x1c, /* .....###...###.. */ + 0x0e, 0x1c, /* ....###....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x34, char: \x35, offset: 0x0d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x35, char: \x36, offset: 0x0d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x36, char: \x37, offset: 0x0d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x37, char: \x38, offset: 0x0dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x38, char: \x39, offset: 0x0e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x39, char: \x3a, offset: 0x0e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3a, char: \x3b, offset: 0x0e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3b, char: \x3c, offset: 0x0ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x3f, char: \x40, offset: 0x0fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x0e, /* .####.......###. */ + 0x70, 0x06, /* .###.........##. */ + 0x71, 0xfe, /* .###...########. */ + 0x73, 0xfe, /* .###..#########. */ + 0x77, 0x8e, /* .###.####...###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x0e, /* .###.###....###. */ + 0x77, 0x9e, /* .###.####..####. */ + 0x73, 0xfe, /* .###..#########. */ + 0x71, 0xf6, /* .###...#####.##. */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0xfe, /* ...############. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x40, char: \x41, offset: 0x1000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x41, char: \x42, offset: 0x1040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x42, char: \x43, offset: 0x1080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x43, char: \x44, offset: 0x10c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xc0, /* .#########...... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x78, /* .###.....####... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x78, /* .###.....####... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xc0, /* .#########...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x44, char: \x45, offset: 0x1100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x45, char: \x46, offset: 0x1140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x46, char: \x47, offset: 0x1180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x71, 0xfc, /* .###...#######.. */ + 0x71, 0xfc, /* .###...#######.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x47, char: \x48, offset: 0x11c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x48, char: \x49, offset: 0x1200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x49, char: \x4a, offset: 0x1240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xfe, /* ........#######. */ + 0x00, 0xfe, /* ........#######. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x78, /* .####....####... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xe0, /* ...########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4a, char: \x4b, offset: 0x1280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0c, /* .###........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0xe0, /* .###....###..... */ + 0x71, 0xc0, /* .###...###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x77, 0x00, /* .###.###........ */ + 0x7e, 0x00, /* .######......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7e, 0x00, /* .######......... */ + 0x77, 0x00, /* .###.###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0xe0, /* .###....###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x0c, /* .###........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4b, char: \x4c, offset: 0x12c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4c, char: \x4d, offset: 0x1300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x78, 0x1e, /* .####......####. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7e, 0x7e, /* .######..######. */ + 0x77, 0xee, /* .###.######.###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4d, char: \x4e, offset: 0x1340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4e, char: \x4f, offset: 0x1380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x4f, char: \x50, offset: 0x13c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x50, char: \x51, offset: 0x1400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x79, 0xfc, /* .####..#######.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x51, char: \x52, offset: 0x1440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7e, 0x00, /* .######......... */ + 0x77, 0x00, /* .###.###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0xe0, /* .###....###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x52, char: \x53, offset: 0x1480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x53, char: \x54, offset: 0x14c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x54, char: \x55, offset: 0x1500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x55, char: \x56, offset: 0x1540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x56, char: \x57, offset: 0x1580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x77, 0xee, /* .###.######.###. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x78, 0x1e, /* .####......####. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x57, char: \x58, offset: 0x15c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x58, char: \x59, offset: 0x1600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x59, char: \x5a, offset: 0x1640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5a, char: \x5b, offset: 0x1680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5b, char: \x5c, offset: 0x16c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5c, char: \x5d, offset: 0x1700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x0f, 0xf0, /* ....########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5d, char: \x5e, offset: 0x1740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5e, char: \x5f, offset: 0x1780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x5f, char: \x60, offset: 0x17c0 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x60, char: \x61, offset: 0x1800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x61, char: \x62, offset: 0x1840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x62, char: \x63, offset: 0x1880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x63, char: \x64, offset: 0x18c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x64, char: \x65, offset: 0x1900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x65, char: \x66, offset: 0x1940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xfe, /* ........#######. */ + 0x01, 0xfe, /* .......########. */ + 0x03, 0xc0, /* ......####...... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf8, /* ..###########... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x66, char: \x67, offset: 0x1980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x67, char: \x68, offset: 0x19c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x68, char: \x69, offset: 0x1a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x69, char: \x6a, offset: 0x1a40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x3c, 0x78, /* ..####...####... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6a, char: \x6b, offset: 0x1a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x3b, 0x80, /* ..###.###....... */ + 0x3f, 0x00, /* ..######........ */ + 0x3f, 0x00, /* ..######........ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6b, char: \x6c, offset: 0x1ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0x80, /* ....#####....... */ + 0x0f, 0x80, /* ....#####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6c, char: \x6d, offset: 0x1b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x73, 0xbc, /* .###..###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6d, char: \x6e, offset: 0x1b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6e, char: \x6f, offset: 0x1b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x6f, char: \x70, offset: 0x1bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x70, char: \x71, offset: 0x1c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x71, char: \x72, offset: 0x1c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0xfc, /* .###..########.. */ + 0x77, 0xfc, /* .###.#########.. */ + 0x7e, 0x00, /* .######......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x72, char: \x73, offset: 0x1c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x00, /* .####........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x73, char: \x74, offset: 0x1cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0xfc, /* ......########.. */ + 0x01, 0xfc, /* .......#######.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x74, char: \x75, offset: 0x1d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x75, char: \x76, offset: 0x1d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x76, char: \x77, offset: 0x1d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x77, char: \x78, offset: 0x1dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x78, char: \x79, offset: 0x1e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x79, char: \x7a, offset: 0x1e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x38, 0x00, /* ..###........... */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7a, char: \x7b, offset: 0x1e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0xf0, /* ......######.... */ + 0x07, 0x80, /* .....####....... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3e, 0x00, /* ..#####......... */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x00, /* .....###........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0xf0, /* ......######.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7b, char: \x7c, offset: 0x1ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7c, char: \x7d, offset: 0x1f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x00, /* ..#####......... */ + 0x3f, 0x00, /* ..######........ */ + 0x07, 0x80, /* .....####....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xf0, /* .......#####.... */ + 0x01, 0xf0, /* .......#####.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x80, /* .....####....... */ + 0x3f, 0x00, /* ..######........ */ + 0x3e, 0x00, /* ..#####......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7d, char: \x7e, offset: 0x1f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1e, 0x1c, /* ...####....###.. */ + 0x3f, 0x1c, /* ..######...###.. */ + 0x77, 0x9c, /* .###.####..###.. */ + 0x73, 0xdc, /* .###..####.###.. */ + 0x71, 0xf8, /* .###...######... */ + 0x70, 0xf0, /* .###....####.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7e, char: \x7f, offset: 0x1f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x7f, char: \x80, offset: 0x1fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x80, char: \x81, offset: 0x2000 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x81, char: \x82, offset: 0x2040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x82, char: \x83, offset: 0x2080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x83, char: \x84, offset: 0x20c0 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x84, char: \x85, offset: 0x2100 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x85, char: \x86, offset: 0x2140 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x86, char: \x87, offset: 0x2180 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x87, char: \x88, offset: 0x21c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x88, char: \x89, offset: 0x2200 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x89, char: \x8a, offset: 0x2240 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x8a, char: \x8b, offset: 0x2280 */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x8b, char: \x8c, offset: 0x22c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + + /* Index: 0x8c, char: \x8d, offset: 0x2300 */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + + /* Index: 0x8d, char: \x8e, offset: 0x2340 */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + 0xff, 0x00, /* ########........ */ + + /* Index: 0x8e, char: \x8f, offset: 0x2380 */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + 0x00, 0xff, /* ........######## */ + + /* Index: 0x8f, char: \x90, offset: 0x23c0 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x90, char: \x91, offset: 0x2400 */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0x55, 0x55, /* .#.#.#.#.#.#.#.# */ + + /* Index: 0x91, char: \x92, offset: 0x2440 */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + 0xff, 0xff, /* ################ */ + 0xaa, 0xaa, /* #.#.#.#.#.#.#.#. */ + + /* Index: 0x92, char: \x93, offset: 0x2480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x01, 0xf8, /* .......######... */ + 0x03, 0xfc, /* ......########.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0x93, char: \x94, offset: 0x24c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x94, char: \x95, offset: 0x2500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xc0, /* ......####...... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x07, 0xe0, /* .....######..... */ + 0x03, 0xc0, /* ......####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x95, char: \x96, offset: 0x2540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x3e, /* ..........#####. */ + 0x00, 0x3e, /* ..........#####. */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x38, /* .###......###... */ + 0x78, 0x38, /* .####.....###... */ + 0x3c, 0x38, /* ..####....###... */ + 0x1e, 0x38, /* ...####...###... */ + 0x0f, 0x38, /* ....####..###... */ + 0x07, 0xb8, /* .....####.###... */ + 0x03, 0xf8, /* ......#######... */ + 0x01, 0xf8, /* .......######... */ + 0x00, 0xf8, /* ........#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x96, char: \x97, offset: 0x2580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x1c, /* ..#####....###.. */ + 0x7f, 0xbc, /* .########.####.. */ + 0x7b, 0xfc, /* .####.########.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3e, 0x1c, /* ..#####....###.. */ + 0x7f, 0xbc, /* .########.####.. */ + 0x7b, 0xfc, /* .####.########.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x97, char: \x98, offset: 0x25c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x98, char: \x99, offset: 0x2600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x00, /* ...###.......... */ + 0x0e, 0x00, /* ....###......... */ + 0x07, 0x00, /* .....###........ */ + 0x03, 0x80, /* ......###....... */ + 0x01, 0xc0, /* .......###...... */ + 0x00, 0xe0, /* ........###..... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x38, /* ..........###... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xfc, /* ..############.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x99, char: \x9a, offset: 0x2640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9a, char: \x9b, offset: 0x2680 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x73, 0x80, /* .###..###....... */ + 0x7f, 0x80, /* .########....... */ + 0x3f, 0x00, /* ..######........ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9b, char: \x9c, offset: 0x26c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9c, char: \x9d, offset: 0x2700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0xe0, /* ........###..... */ + 0x01, 0xc0, /* .......###...... */ + 0x03, 0x80, /* ......###....... */ + 0x07, 0x00, /* .....###........ */ + 0x0e, 0x00, /* ....###......... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9d, char: \x9e, offset: 0x2740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9e, char: \x9f, offset: 0x2780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0x9f, char: \xa0, offset: 0x27c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa0, char: \xa1, offset: 0x2800 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xa1, char: \xa2, offset: 0x2840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xa2, char: \xa3, offset: 0x2880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa3, char: \xa4, offset: 0x28c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xa4, char: \xa5, offset: 0x2900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xa5, char: \xa6, offset: 0x2940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xa6, char: \xa7, offset: 0x2980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xa7, char: \xa8, offset: 0x29c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xa8, char: \xa9, offset: 0x2a00 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xa9, char: \xaa, offset: 0x2a40 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xaa, char: \xab, offset: 0x2a80 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x0f, 0xff, /* ....############ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xab, char: \xac, offset: 0x2ac0 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xac, char: \xad, offset: 0x2b00 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xad, char: \xae, offset: 0x2b40 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0xff, 0xf0, /* ############.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xae, char: \xaf, offset: 0x2b80 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0xff, /* ......########## */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xaf, char: \xb0, offset: 0x2bc0 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb0, char: \xb1, offset: 0x2c00 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x00, /* ....###......... */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x7f, /* ....###..####### */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb1, char: \xb2, offset: 0x2c40 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0xff, 0x80, /* #########....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xb2, char: \xb3, offset: 0x2c80 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb3, char: \xb4, offset: 0x2cc0 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb4, char: \xb5, offset: 0x2d00 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0x00, 0x70, /* .........###.... */ + 0x00, 0x70, /* .........###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0xfe, 0x70, /* #######..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb5, char: \xb6, offset: 0x2d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xb6, char: \xb7, offset: 0x2d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb7, char: \xb8, offset: 0x2dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xb8, char: \xb9, offset: 0x2e00 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xb9, char: \xba, offset: 0x2e40 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xba, char: \xbb, offset: 0x2e80 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbb, char: \xbc, offset: 0x2ec0 */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + + /* Index: 0xbc, char: \xbd, offset: 0x2f00 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0xff, 0xff, /* ################ */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xbd, char: \xbe, offset: 0x2f40 */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0xfe, 0x7f, /* #######..####### */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + 0x0e, 0x70, /* ....###..###.... */ + + /* Index: 0xbe, char: \xbf, offset: 0x2f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf8, /* ...##########... */ + 0x3f, 0xfc, /* ..############.. */ + 0x70, 0x0e, /* .###........###. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x06, /* .##.###......##. */ + 0x6e, 0x76, /* .##.###..###.##. */ + 0x6f, 0xf6, /* .##.########.##. */ + 0x67, 0xe6, /* .##..######..##. */ + 0x70, 0x0e, /* .###........###. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xbf, char: \xc0, offset: 0x2fc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0xf8, /* .###....#####... */ + 0x71, 0xfc, /* .###...#######.. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x71, 0xfc, /* .###...#######.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc0, char: \xc1, offset: 0x3000 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc1, char: \xc2, offset: 0x3040 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x78, 0x00, /* .####........... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc2, char: \xc3, offset: 0x3080 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0xff, /* ...############# */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc3, char: \xc4, offset: 0x30c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc4, char: \xc5, offset: 0x3100 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc5, char: \xc6, offset: 0x3140 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc6, char: \xc7, offset: 0x3180 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc7, char: \xc8, offset: 0x31c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc8, char: \xc9, offset: 0x3200 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xc9, char: \xca, offset: 0x3240 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xca, char: \xcb, offset: 0x3280 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x3b, 0x80, /* ..###.###....... */ + 0x3f, 0x00, /* ..######........ */ + 0x3f, 0x00, /* ..######........ */ + 0x3b, 0x80, /* ..###.###....... */ + 0x39, 0xc0, /* ..###..###...... */ + 0x38, 0xe0, /* ..###...###..... */ + 0x38, 0x70, /* ..###....###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcb, char: \xcc, offset: 0x32c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xfc, /* .....#########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1e, 0x1c, /* ...####....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcc, char: \xcd, offset: 0x3300 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x60, 0x06, /* .##..........##. */ + 0x70, 0x0e, /* .###........###. */ + 0x78, 0x1e, /* .####......####. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x7e, 0x7e, /* .######..######. */ + 0x77, 0xee, /* .###.######.###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcd, char: \xce, offset: 0x3340 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xce, char: \xcf, offset: 0x3380 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xcf, char: \xd0, offset: 0x33c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd0, char: \xd1, offset: 0x3400 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x01, 0xdc, /* .......###.###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x1c, /* .....###...###.. */ + 0x0e, 0x1c, /* ....###....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd1, char: \xd2, offset: 0x3440 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd2, char: \xd3, offset: 0x3480 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd3, char: \xd4, offset: 0x34c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd4, char: \xd5, offset: 0x3500 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd5, char: \xd6, offset: 0x3540 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd6, char: \xd7, offset: 0x3580 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x3f, 0xc0, /* ..########...... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0xf0, /* .###....####.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0xe0, /* .###....###..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd7, char: \xd8, offset: 0x35c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x38, 0x78, /* ..###....####... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x78, /* ..###....####... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xe0, /* ..#########..... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd8, char: \xd9, offset: 0x3600 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x7f, 0x0e, /* .#######....###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x7f, 0x0e, /* .#######....###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xd9, char: \xda, offset: 0x3640 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x07, 0xf8, /* .....########... */ + 0x07, 0xf8, /* .....########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xda, char: \xdb, offset: 0x3680 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0x9c, /* .####.###..###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdb, char: \xdc, offset: 0x36c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x07, 0xfc, /* .....#########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdc, char: \xdd, offset: 0x3700 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0x9c, /* .####.###..###.. */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0xff, /* ...############# */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdd, char: \xde, offset: 0x3740 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xde, char: \xdf, offset: 0x3780 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1c, 0x00, /* ...###.......... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x1f, 0xf8, /* ...##########... */ + 0x1c, 0x3c, /* ...###....####.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x3c, /* ...###....####.. */ + 0x1f, 0xf8, /* ...##########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xdf, char: \xe0, offset: 0x37c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0xf8, /* .###....#####... */ + 0x71, 0xfc, /* .###...#######.. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x73, 0x8e, /* .###..###...###. */ + 0x71, 0xfc, /* .###...#######.. */ + 0x70, 0xf8, /* .###....#####... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe0, char: \xe1, offset: 0x3800 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe1, char: \xe2, offset: 0x3840 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe2, char: \xe3, offset: 0x3880 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1e, /* .####......####. */ + 0x3f, 0xff, /* ..############## */ + 0x1f, 0xff, /* ...############# */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe3, char: \xe4, offset: 0x38c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x0f, 0xf8, /* ....#########... */ + 0x1f, 0xf8, /* ...##########... */ + 0x3c, 0x38, /* ..####....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x7f, 0xfc, /* .#############.. */ + 0xff, 0xfe, /* ###############. */ + 0xe0, 0x0e, /* ###.........###. */ + 0xe0, 0x0e, /* ###.........###. */ + 0xe0, 0x0e, /* ###.........###. */ + 0xe0, 0x0e, /* ###.........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe4, char: \xe5, offset: 0x3900 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xe0, /* .##########..... */ + 0x7f, 0xe0, /* .##########..... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe5, char: \xe6, offset: 0x3940 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0xbc, /* .####.###.####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe6, char: \xe7, offset: 0x3980 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe7, char: \xe8, offset: 0x39c0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x07, 0xc0, /* .....#####...... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x0e, 0xe0, /* ....###.###..... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x38, 0x38, /* ..###.....###... */ + 0x38, 0x38, /* ..###.....###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe8, char: \xe9, offset: 0x3a00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xe9, char: \xea, offset: 0x3a40 */ + 0x00, 0x00, /* ................ */ + 0x1c, 0x70, /* ...###...###.... */ + 0x1c, 0x70, /* ...###...###.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x07, 0xc0, /* .....#####...... */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x7c, /* .###.....#####.. */ + 0x70, 0xfc, /* .###....######.. */ + 0x71, 0xdc, /* .###...###.###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x77, 0x1c, /* .###.###...###.. */ + 0x7e, 0x1c, /* .######....###.. */ + 0x7c, 0x1c, /* .#####.....###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xea, char: \xeb, offset: 0x3a80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0c, /* .###........##.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0xe0, /* .###....###..... */ + 0x71, 0xc0, /* .###...###...... */ + 0x73, 0x80, /* .###..###....... */ + 0x77, 0x00, /* .###.###........ */ + 0x7e, 0x00, /* .######......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7c, 0x00, /* .#####.......... */ + 0x7e, 0x00, /* .######......... */ + 0x77, 0x00, /* .###.###........ */ + 0x73, 0x80, /* .###..###....... */ + 0x71, 0xc0, /* .###...###...... */ + 0x70, 0xe0, /* .###....###..... */ + 0x70, 0x70, /* .###.....###.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x0c, /* .###........##.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xeb, char: \xec, offset: 0x3ac0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x07, 0xfc, /* .....#########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x1e, 0x1c, /* ...####....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xec, char: \xed, offset: 0x3b00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x78, 0x1e, /* .####......####. */ + 0x7c, 0x3e, /* .#####....#####. */ + 0x7e, 0x7e, /* .######..######. */ + 0x7e, 0x7e, /* .######..######. */ + 0x77, 0xee, /* .###.######.###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0x8e, /* .###...##...###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xed, char: \xee, offset: 0x3b40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xee, char: \xef, offset: 0x3b80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xef, char: \xf0, offset: 0x3bc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf0, char: \xf1, offset: 0x3c00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xfc, /* ...###########.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0xfc, /* ........######.. */ + 0x01, 0xdc, /* .......###.###.. */ + 0x03, 0x9c, /* ......###..###.. */ + 0x07, 0x1c, /* .....###...###.. */ + 0x0e, 0x1c, /* ....###....###.. */ + 0x1c, 0x1c, /* ...###.....###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf1, char: \xf2, offset: 0x3c40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf2, char: \xf3, offset: 0x3c80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x00, /* .###............ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf3, char: \xf4, offset: 0x3cc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xfc, /* .#############.. */ + 0x7f, 0xfc, /* .#############.. */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x03, 0x80, /* ......###....... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf4, char: \xf5, offset: 0x3d00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf5, char: \xf6, offset: 0x3d40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x0f, 0xe0, /* ....#######..... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3b, 0xb8, /* ..###.###.###... */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf6, char: \xf7, offset: 0x3d80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf8, /* .############... */ + 0x70, 0x3c, /* .###......####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x38, /* .###......###... */ + 0x7f, 0xf0, /* .###########.... */ + 0x7f, 0xf0, /* .###########.... */ + 0x70, 0x38, /* .###......###... */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x3c, /* .###......####.. */ + 0x7f, 0xf8, /* .############... */ + 0x7f, 0xf0, /* .###########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf7, char: \xf8, offset: 0x3dc0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x38, 0x3c, /* ..###.....####.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x3c, /* ..###.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf8, char: \xf9, offset: 0x3e00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x70, 0x0e, /* .###........###. */ + 0x7f, 0x0e, /* .#######....###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x71, 0xce, /* .###...###..###. */ + 0x73, 0xce, /* .###..####..###. */ + 0x7f, 0x8e, /* .########...###. */ + 0x7f, 0x0e, /* .#######....###. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xf9, char: \xfa, offset: 0x3e40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x3c, /* ..........####.. */ + 0x0f, 0xf8, /* ....#########... */ + 0x0f, 0xf8, /* ....#########... */ + 0x00, 0x3c, /* ..........####.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfa, char: \xfb, offset: 0x3e80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0x9c, /* .####.###..###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfb, char: \xfc, offset: 0x3ec0 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x1f, 0xf0, /* ...#########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x78, 0x3c, /* .####.....####.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x0f, 0xfc, /* ....##########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x3c, /* .####.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x1f, 0xf0, /* ...#########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfc, char: \xfd, offset: 0x3f00 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x73, 0x9c, /* .###..###..###.. */ + 0x7b, 0x9c, /* .####.###..###.. */ + 0x3f, 0xfe, /* ..#############. */ + 0x1f, 0xff, /* ...############# */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x07, /* .............### */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfd, char: \xfe, offset: 0x3f40 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x70, 0x1c, /* .###.......###.. */ + 0x78, 0x1c, /* .####......###.. */ + 0x3f, 0xfc, /* ..############.. */ + 0x1f, 0xfc, /* ...###########.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x1c, /* ...........###.. */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + + /* Index: 0xfe, char: \xff, offset: 0x3f80 */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0xf8, 0x00, /* #####........... */ + 0xf8, 0x00, /* #####........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x38, 0x00, /* ..###........... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x3f, 0xf8, /* ..###########... */ + 0x38, 0x3c, /* ..###.....####.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x1c, /* ..###......###.. */ + 0x38, 0x3c, /* ..###.....####.. */ + 0x3f, 0xf8, /* ..###########... */ + 0x3f, 0xf0, /* ..##########.... */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ + 0x00, 0x00, /* ................ */ +}; + +const font_char_desc_t _fonts_terminus_bold_16x32_koi8_r_descriptors[] = { + { 0x10, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x10, 0x0040 }, /* Index: 0x01, char: \x02 */ + { 0x10, 0x0080 }, /* Index: 0x02, char: \x03 */ + { 0x10, 0x00c0 }, /* Index: 0x03, char: \x04 */ + { 0x10, 0x0100 }, /* Index: 0x04, char: \x05 */ + { 0x10, 0x0140 }, /* Index: 0x05, char: \x06 */ + { 0x10, 0x0180 }, /* Index: 0x06, char: \x07 */ + { 0x10, 0x01c0 }, /* Index: 0x07, char: \x08 */ + { 0x10, 0x0200 }, /* Index: 0x08, char: \x09 */ + { 0x10, 0x0240 }, /* Index: 0x09, char: \x0a */ + { 0x10, 0x0280 }, /* Index: 0x0a, char: \x0b */ + { 0x10, 0x02c0 }, /* Index: 0x0b, char: \x0c */ + { 0x10, 0x0300 }, /* Index: 0x0c, char: \x0d */ + { 0x10, 0x0340 }, /* Index: 0x0d, char: \x0e */ + { 0x10, 0x0380 }, /* Index: 0x0e, char: \x0f */ + { 0x10, 0x03c0 }, /* Index: 0x0f, char: \x10 */ + { 0x10, 0x0400 }, /* Index: 0x10, char: \x11 */ + { 0x10, 0x0440 }, /* Index: 0x11, char: \x12 */ + { 0x10, 0x0480 }, /* Index: 0x12, char: \x13 */ + { 0x10, 0x04c0 }, /* Index: 0x13, char: \x14 */ + { 0x10, 0x0500 }, /* Index: 0x14, char: \x15 */ + { 0x10, 0x0540 }, /* Index: 0x15, char: \x16 */ + { 0x10, 0x0580 }, /* Index: 0x16, char: \x17 */ + { 0x10, 0x05c0 }, /* Index: 0x17, char: \x18 */ + { 0x10, 0x0600 }, /* Index: 0x18, char: \x19 */ + { 0x10, 0x0640 }, /* Index: 0x19, char: \x1a */ + { 0x10, 0x0680 }, /* Index: 0x1a, char: \x1b */ + { 0x10, 0x06c0 }, /* Index: 0x1b, char: \x1c */ + { 0x10, 0x0700 }, /* Index: 0x1c, char: \x1d */ + { 0x10, 0x0740 }, /* Index: 0x1d, char: \x1e */ + { 0x10, 0x0780 }, /* Index: 0x1e, char: \x1f */ + { 0x10, 0x07c0 }, /* Index: 0x1f, char: \x20 */ + { 0x10, 0x0800 }, /* Index: 0x20, char: \x21 */ + { 0x10, 0x0840 }, /* Index: 0x21, char: \x22 */ + { 0x10, 0x0880 }, /* Index: 0x22, char: \x23 */ + { 0x10, 0x08c0 }, /* Index: 0x23, char: \x24 */ + { 0x10, 0x0900 }, /* Index: 0x24, char: \x25 */ + { 0x10, 0x0940 }, /* Index: 0x25, char: \x26 */ + { 0x10, 0x0980 }, /* Index: 0x26, char: \x27 */ + { 0x10, 0x09c0 }, /* Index: 0x27, char: \x28 */ + { 0x10, 0x0a00 }, /* Index: 0x28, char: \x29 */ + { 0x10, 0x0a40 }, /* Index: 0x29, char: \x2a */ + { 0x10, 0x0a80 }, /* Index: 0x2a, char: \x2b */ + { 0x10, 0x0ac0 }, /* Index: 0x2b, char: \x2c */ + { 0x10, 0x0b00 }, /* Index: 0x2c, char: \x2d */ + { 0x10, 0x0b40 }, /* Index: 0x2d, char: \x2e */ + { 0x10, 0x0b80 }, /* Index: 0x2e, char: \x2f */ + { 0x10, 0x0bc0 }, /* Index: 0x2f, char: \x30 */ + { 0x10, 0x0c00 }, /* Index: 0x30, char: \x31 */ + { 0x10, 0x0c40 }, /* Index: 0x31, char: \x32 */ + { 0x10, 0x0c80 }, /* Index: 0x32, char: \x33 */ + { 0x10, 0x0cc0 }, /* Index: 0x33, char: \x34 */ + { 0x10, 0x0d00 }, /* Index: 0x34, char: \x35 */ + { 0x10, 0x0d40 }, /* Index: 0x35, char: \x36 */ + { 0x10, 0x0d80 }, /* Index: 0x36, char: \x37 */ + { 0x10, 0x0dc0 }, /* Index: 0x37, char: \x38 */ + { 0x10, 0x0e00 }, /* Index: 0x38, char: \x39 */ + { 0x10, 0x0e40 }, /* Index: 0x39, char: \x3a */ + { 0x10, 0x0e80 }, /* Index: 0x3a, char: \x3b */ + { 0x10, 0x0ec0 }, /* Index: 0x3b, char: \x3c */ + { 0x10, 0x0f00 }, /* Index: 0x3c, char: \x3d */ + { 0x10, 0x0f40 }, /* Index: 0x3d, char: \x3e */ + { 0x10, 0x0f80 }, /* Index: 0x3e, char: \x3f */ + { 0x10, 0x0fc0 }, /* Index: 0x3f, char: \x40 */ + { 0x10, 0x1000 }, /* Index: 0x40, char: \x41 */ + { 0x10, 0x1040 }, /* Index: 0x41, char: \x42 */ + { 0x10, 0x1080 }, /* Index: 0x42, char: \x43 */ + { 0x10, 0x10c0 }, /* Index: 0x43, char: \x44 */ + { 0x10, 0x1100 }, /* Index: 0x44, char: \x45 */ + { 0x10, 0x1140 }, /* Index: 0x45, char: \x46 */ + { 0x10, 0x1180 }, /* Index: 0x46, char: \x47 */ + { 0x10, 0x11c0 }, /* Index: 0x47, char: \x48 */ + { 0x10, 0x1200 }, /* Index: 0x48, char: \x49 */ + { 0x10, 0x1240 }, /* Index: 0x49, char: \x4a */ + { 0x10, 0x1280 }, /* Index: 0x4a, char: \x4b */ + { 0x10, 0x12c0 }, /* Index: 0x4b, char: \x4c */ + { 0x10, 0x1300 }, /* Index: 0x4c, char: \x4d */ + { 0x10, 0x1340 }, /* Index: 0x4d, char: \x4e */ + { 0x10, 0x1380 }, /* Index: 0x4e, char: \x4f */ + { 0x10, 0x13c0 }, /* Index: 0x4f, char: \x50 */ + { 0x10, 0x1400 }, /* Index: 0x50, char: \x51 */ + { 0x10, 0x1440 }, /* Index: 0x51, char: \x52 */ + { 0x10, 0x1480 }, /* Index: 0x52, char: \x53 */ + { 0x10, 0x14c0 }, /* Index: 0x53, char: \x54 */ + { 0x10, 0x1500 }, /* Index: 0x54, char: \x55 */ + { 0x10, 0x1540 }, /* Index: 0x55, char: \x56 */ + { 0x10, 0x1580 }, /* Index: 0x56, char: \x57 */ + { 0x10, 0x15c0 }, /* Index: 0x57, char: \x58 */ + { 0x10, 0x1600 }, /* Index: 0x58, char: \x59 */ + { 0x10, 0x1640 }, /* Index: 0x59, char: \x5a */ + { 0x10, 0x1680 }, /* Index: 0x5a, char: \x5b */ + { 0x10, 0x16c0 }, /* Index: 0x5b, char: \x5c */ + { 0x10, 0x1700 }, /* Index: 0x5c, char: \x5d */ + { 0x10, 0x1740 }, /* Index: 0x5d, char: \x5e */ + { 0x10, 0x1780 }, /* Index: 0x5e, char: \x5f */ + { 0x10, 0x17c0 }, /* Index: 0x5f, char: \x60 */ + { 0x10, 0x1800 }, /* Index: 0x60, char: \x61 */ + { 0x10, 0x1840 }, /* Index: 0x61, char: \x62 */ + { 0x10, 0x1880 }, /* Index: 0x62, char: \x63 */ + { 0x10, 0x18c0 }, /* Index: 0x63, char: \x64 */ + { 0x10, 0x1900 }, /* Index: 0x64, char: \x65 */ + { 0x10, 0x1940 }, /* Index: 0x65, char: \x66 */ + { 0x10, 0x1980 }, /* Index: 0x66, char: \x67 */ + { 0x10, 0x19c0 }, /* Index: 0x67, char: \x68 */ + { 0x10, 0x1a00 }, /* Index: 0x68, char: \x69 */ + { 0x10, 0x1a40 }, /* Index: 0x69, char: \x6a */ + { 0x10, 0x1a80 }, /* Index: 0x6a, char: \x6b */ + { 0x10, 0x1ac0 }, /* Index: 0x6b, char: \x6c */ + { 0x10, 0x1b00 }, /* Index: 0x6c, char: \x6d */ + { 0x10, 0x1b40 }, /* Index: 0x6d, char: \x6e */ + { 0x10, 0x1b80 }, /* Index: 0x6e, char: \x6f */ + { 0x10, 0x1bc0 }, /* Index: 0x6f, char: \x70 */ + { 0x10, 0x1c00 }, /* Index: 0x70, char: \x71 */ + { 0x10, 0x1c40 }, /* Index: 0x71, char: \x72 */ + { 0x10, 0x1c80 }, /* Index: 0x72, char: \x73 */ + { 0x10, 0x1cc0 }, /* Index: 0x73, char: \x74 */ + { 0x10, 0x1d00 }, /* Index: 0x74, char: \x75 */ + { 0x10, 0x1d40 }, /* Index: 0x75, char: \x76 */ + { 0x10, 0x1d80 }, /* Index: 0x76, char: \x77 */ + { 0x10, 0x1dc0 }, /* Index: 0x77, char: \x78 */ + { 0x10, 0x1e00 }, /* Index: 0x78, char: \x79 */ + { 0x10, 0x1e40 }, /* Index: 0x79, char: \x7a */ + { 0x10, 0x1e80 }, /* Index: 0x7a, char: \x7b */ + { 0x10, 0x1ec0 }, /* Index: 0x7b, char: \x7c */ + { 0x10, 0x1f00 }, /* Index: 0x7c, char: \x7d */ + { 0x10, 0x1f40 }, /* Index: 0x7d, char: \x7e */ + { 0x10, 0x1f80 }, /* Index: 0x7e, char: \x7f */ + { 0x10, 0x1fc0 }, /* Index: 0x7f, char: \x80 */ + { 0x10, 0x2000 }, /* Index: 0x80, char: \x81 */ + { 0x10, 0x2040 }, /* Index: 0x81, char: \x82 */ + { 0x10, 0x2080 }, /* Index: 0x82, char: \x83 */ + { 0x10, 0x20c0 }, /* Index: 0x83, char: \x84 */ + { 0x10, 0x2100 }, /* Index: 0x84, char: \x85 */ + { 0x10, 0x2140 }, /* Index: 0x85, char: \x86 */ + { 0x10, 0x2180 }, /* Index: 0x86, char: \x87 */ + { 0x10, 0x21c0 }, /* Index: 0x87, char: \x88 */ + { 0x10, 0x2200 }, /* Index: 0x88, char: \x89 */ + { 0x10, 0x2240 }, /* Index: 0x89, char: \x8a */ + { 0x10, 0x2280 }, /* Index: 0x8a, char: \x8b */ + { 0x10, 0x22c0 }, /* Index: 0x8b, char: \x8c */ + { 0x10, 0x2300 }, /* Index: 0x8c, char: \x8d */ + { 0x10, 0x2340 }, /* Index: 0x8d, char: \x8e */ + { 0x10, 0x2380 }, /* Index: 0x8e, char: \x8f */ + { 0x10, 0x23c0 }, /* Index: 0x8f, char: \x90 */ + { 0x10, 0x2400 }, /* Index: 0x90, char: \x91 */ + { 0x10, 0x2440 }, /* Index: 0x91, char: \x92 */ + { 0x10, 0x2480 }, /* Index: 0x92, char: \x93 */ + { 0x10, 0x24c0 }, /* Index: 0x93, char: \x94 */ + { 0x10, 0x2500 }, /* Index: 0x94, char: \x95 */ + { 0x10, 0x2540 }, /* Index: 0x95, char: \x96 */ + { 0x10, 0x2580 }, /* Index: 0x96, char: \x97 */ + { 0x10, 0x25c0 }, /* Index: 0x97, char: \x98 */ + { 0x10, 0x2600 }, /* Index: 0x98, char: \x99 */ + { 0x10, 0x2640 }, /* Index: 0x99, char: \x9a */ + { 0x10, 0x2680 }, /* Index: 0x9a, char: \x9b */ + { 0x10, 0x26c0 }, /* Index: 0x9b, char: \x9c */ + { 0x10, 0x2700 }, /* Index: 0x9c, char: \x9d */ + { 0x10, 0x2740 }, /* Index: 0x9d, char: \x9e */ + { 0x10, 0x2780 }, /* Index: 0x9e, char: \x9f */ + { 0x10, 0x27c0 }, /* Index: 0x9f, char: \xa0 */ + { 0x10, 0x2800 }, /* Index: 0xa0, char: \xa1 */ + { 0x10, 0x2840 }, /* Index: 0xa1, char: \xa2 */ + { 0x10, 0x2880 }, /* Index: 0xa2, char: \xa3 */ + { 0x10, 0x28c0 }, /* Index: 0xa3, char: \xa4 */ + { 0x10, 0x2900 }, /* Index: 0xa4, char: \xa5 */ + { 0x10, 0x2940 }, /* Index: 0xa5, char: \xa6 */ + { 0x10, 0x2980 }, /* Index: 0xa6, char: \xa7 */ + { 0x10, 0x29c0 }, /* Index: 0xa7, char: \xa8 */ + { 0x10, 0x2a00 }, /* Index: 0xa8, char: \xa9 */ + { 0x10, 0x2a40 }, /* Index: 0xa9, char: \xaa */ + { 0x10, 0x2a80 }, /* Index: 0xaa, char: \xab */ + { 0x10, 0x2ac0 }, /* Index: 0xab, char: \xac */ + { 0x10, 0x2b00 }, /* Index: 0xac, char: \xad */ + { 0x10, 0x2b40 }, /* Index: 0xad, char: \xae */ + { 0x10, 0x2b80 }, /* Index: 0xae, char: \xaf */ + { 0x10, 0x2bc0 }, /* Index: 0xaf, char: \xb0 */ + { 0x10, 0x2c00 }, /* Index: 0xb0, char: \xb1 */ + { 0x10, 0x2c40 }, /* Index: 0xb1, char: \xb2 */ + { 0x10, 0x2c80 }, /* Index: 0xb2, char: \xb3 */ + { 0x10, 0x2cc0 }, /* Index: 0xb3, char: \xb4 */ + { 0x10, 0x2d00 }, /* Index: 0xb4, char: \xb5 */ + { 0x10, 0x2d40 }, /* Index: 0xb5, char: \xb6 */ + { 0x10, 0x2d80 }, /* Index: 0xb6, char: \xb7 */ + { 0x10, 0x2dc0 }, /* Index: 0xb7, char: \xb8 */ + { 0x10, 0x2e00 }, /* Index: 0xb8, char: \xb9 */ + { 0x10, 0x2e40 }, /* Index: 0xb9, char: \xba */ + { 0x10, 0x2e80 }, /* Index: 0xba, char: \xbb */ + { 0x10, 0x2ec0 }, /* Index: 0xbb, char: \xbc */ + { 0x10, 0x2f00 }, /* Index: 0xbc, char: \xbd */ + { 0x10, 0x2f40 }, /* Index: 0xbd, char: \xbe */ + { 0x10, 0x2f80 }, /* Index: 0xbe, char: \xbf */ + { 0x10, 0x2fc0 }, /* Index: 0xbf, char: \xc0 */ + { 0x10, 0x3000 }, /* Index: 0xc0, char: \xc1 */ + { 0x10, 0x3040 }, /* Index: 0xc1, char: \xc2 */ + { 0x10, 0x3080 }, /* Index: 0xc2, char: \xc3 */ + { 0x10, 0x30c0 }, /* Index: 0xc3, char: \xc4 */ + { 0x10, 0x3100 }, /* Index: 0xc4, char: \xc5 */ + { 0x10, 0x3140 }, /* Index: 0xc5, char: \xc6 */ + { 0x10, 0x3180 }, /* Index: 0xc6, char: \xc7 */ + { 0x10, 0x31c0 }, /* Index: 0xc7, char: \xc8 */ + { 0x10, 0x3200 }, /* Index: 0xc8, char: \xc9 */ + { 0x10, 0x3240 }, /* Index: 0xc9, char: \xca */ + { 0x10, 0x3280 }, /* Index: 0xca, char: \xcb */ + { 0x10, 0x32c0 }, /* Index: 0xcb, char: \xcc */ + { 0x10, 0x3300 }, /* Index: 0xcc, char: \xcd */ + { 0x10, 0x3340 }, /* Index: 0xcd, char: \xce */ + { 0x10, 0x3380 }, /* Index: 0xce, char: \xcf */ + { 0x10, 0x33c0 }, /* Index: 0xcf, char: \xd0 */ + { 0x10, 0x3400 }, /* Index: 0xd0, char: \xd1 */ + { 0x10, 0x3440 }, /* Index: 0xd1, char: \xd2 */ + { 0x10, 0x3480 }, /* Index: 0xd2, char: \xd3 */ + { 0x10, 0x34c0 }, /* Index: 0xd3, char: \xd4 */ + { 0x10, 0x3500 }, /* Index: 0xd4, char: \xd5 */ + { 0x10, 0x3540 }, /* Index: 0xd5, char: \xd6 */ + { 0x10, 0x3580 }, /* Index: 0xd6, char: \xd7 */ + { 0x10, 0x35c0 }, /* Index: 0xd7, char: \xd8 */ + { 0x10, 0x3600 }, /* Index: 0xd8, char: \xd9 */ + { 0x10, 0x3640 }, /* Index: 0xd9, char: \xda */ + { 0x10, 0x3680 }, /* Index: 0xda, char: \xdb */ + { 0x10, 0x36c0 }, /* Index: 0xdb, char: \xdc */ + { 0x10, 0x3700 }, /* Index: 0xdc, char: \xdd */ + { 0x10, 0x3740 }, /* Index: 0xdd, char: \xde */ + { 0x10, 0x3780 }, /* Index: 0xde, char: \xdf */ + { 0x10, 0x37c0 }, /* Index: 0xdf, char: \xe0 */ + { 0x10, 0x3800 }, /* Index: 0xe0, char: \xe1 */ + { 0x10, 0x3840 }, /* Index: 0xe1, char: \xe2 */ + { 0x10, 0x3880 }, /* Index: 0xe2, char: \xe3 */ + { 0x10, 0x38c0 }, /* Index: 0xe3, char: \xe4 */ + { 0x10, 0x3900 }, /* Index: 0xe4, char: \xe5 */ + { 0x10, 0x3940 }, /* Index: 0xe5, char: \xe6 */ + { 0x10, 0x3980 }, /* Index: 0xe6, char: \xe7 */ + { 0x10, 0x39c0 }, /* Index: 0xe7, char: \xe8 */ + { 0x10, 0x3a00 }, /* Index: 0xe8, char: \xe9 */ + { 0x10, 0x3a40 }, /* Index: 0xe9, char: \xea */ + { 0x10, 0x3a80 }, /* Index: 0xea, char: \xeb */ + { 0x10, 0x3ac0 }, /* Index: 0xeb, char: \xec */ + { 0x10, 0x3b00 }, /* Index: 0xec, char: \xed */ + { 0x10, 0x3b40 }, /* Index: 0xed, char: \xee */ + { 0x10, 0x3b80 }, /* Index: 0xee, char: \xef */ + { 0x10, 0x3bc0 }, /* Index: 0xef, char: \xf0 */ + { 0x10, 0x3c00 }, /* Index: 0xf0, char: \xf1 */ + { 0x10, 0x3c40 }, /* Index: 0xf1, char: \xf2 */ + { 0x10, 0x3c80 }, /* Index: 0xf2, char: \xf3 */ + { 0x10, 0x3cc0 }, /* Index: 0xf3, char: \xf4 */ + { 0x10, 0x3d00 }, /* Index: 0xf4, char: \xf5 */ + { 0x10, 0x3d40 }, /* Index: 0xf5, char: \xf6 */ + { 0x10, 0x3d80 }, /* Index: 0xf6, char: \xf7 */ + { 0x10, 0x3dc0 }, /* Index: 0xf7, char: \xf8 */ + { 0x10, 0x3e00 }, /* Index: 0xf8, char: \xf9 */ + { 0x10, 0x3e40 }, /* Index: 0xf9, char: \xfa */ + { 0x10, 0x3e80 }, /* Index: 0xfa, char: \xfb */ + { 0x10, 0x3ec0 }, /* Index: 0xfb, char: \xfc */ + { 0x10, 0x3f00 }, /* Index: 0xfc, char: \xfd */ + { 0x10, 0x3f40 }, /* Index: 0xfd, char: \xfe */ + { 0x10, 0x3f80 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_16x32_koi8_r_info = +{ + .height = 32, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_16x32_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_16x32_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_16X32_KOI8_R_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_8x14_iso8859_1.h b/extras/fonts/data/font_terminus_bold_8x14_iso8859_1.h new file mode 100644 index 0000000..faa5213 --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_8x14_iso8859_1.h @@ -0,0 +1,4369 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 8x14 + * Charset: ISO8859-1 + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: Mon Dec 12 01:48:03 2016 + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_ISO8859_1_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_ISO8859_1_H_ + +static const uint8_t _fonts_terminus_bold_8x14_iso8859_1_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x7e, /* .######. */ + 0xff, /* ######## */ + 0x7e, /* .######. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000e */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x001c */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xfc, /* ######.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x002a */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xf0, /* ####.... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0038 */ + 0x78, /* .####... */ + 0xcc, /* ##..##.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xcc, /* ##..##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x33, /* ..##..## */ + 0x33, /* ..##..## */ + 0x3e, /* ..#####. */ + 0x36, /* ..##.##. */ + 0x33, /* ..##..## */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x0046 */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0054 */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0062 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0070 */ + 0xcc, /* ##..##.. */ + 0xec, /* ###.##.. */ + 0xfc, /* ######.. */ + 0xdc, /* ##.###.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x3f, /* ..###### */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x007e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x008c */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x009a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0c, char: \x0d, offset: 0x00a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0d, char: \x0e, offset: 0x00b6 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00c4 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0f, char: \x10, offset: 0x00d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x010a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x0118 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x15, char: \x16, offset: 0x0126 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x16, char: \x17, offset: 0x0134 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0142 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x18, char: \x19, offset: 0x0150 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x19, char: \x1a, offset: 0x015e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x016c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x017a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0188 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0xfe, /* #######. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0196 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0xf8, /* #####... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x66, /* .##..##. */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x01b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x01c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x01ce */ + 0x00, /* ........ */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x01dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xfe, /* #######. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xfe, /* #######. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01ea */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0x7c, /* .#####.. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x24, char: \x25, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x66, /* .##..##. */ + 0xd6, /* ##.#.##. */ + 0x6c, /* .##.##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x36, /* ..##.##. */ + 0x6b, /* .##.#.## */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x0206 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xdc, /* ##.###.. */ + 0x76, /* .###.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x0214 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x0230 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x023e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0xfe, /* #######. */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x025a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0276 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0284 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0292 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xde, /* ##.####. */ + 0xf6, /* ####.##. */ + 0xe6, /* ###..##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x38, /* ..###... */ + 0x78, /* .####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x02ae */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x02bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x3c, /* ..####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x02ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x0e, /* ....###. */ + 0x1e, /* ...####. */ + 0x36, /* ..##.##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x02d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x02e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0302 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x0310 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x031e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x032c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x033a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0356 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0364 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x0372 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xce, /* ##..###. */ + 0xc0, /* ##...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0380 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x038e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x03aa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x03b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x03c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x03d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xde, /* ##.####. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x03e2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x03fe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x040c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x041a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0428 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xee, /* ###.###. */ + 0xfe, /* #######. */ + 0xd6, /* ##.#.##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0436 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xf6, /* ####.##. */ + 0xde, /* ##.####. */ + 0xce, /* ##..###. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x0452 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x0460 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xde, /* ##.####. */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x046e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x047c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x048a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x04a6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x04b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xd6, /* ##.#.##. */ + 0xfe, /* #######. */ + 0xee, /* ###.###. */ + 0xc6, /* ##...##. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x04c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x04d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc3, /* ##....## */ + 0xc3, /* ##....## */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x04de */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x04ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x04fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0508 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0516 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0524 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0532 */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x054e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x055c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x056a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x0578 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x0586 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0xfc, /* ######.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0x67, char: \x68, offset: 0x05a2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x05b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x05be */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + + /* Index: 0x6a, char: \x6b, offset: 0x05cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x05da */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x05f6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0604 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0612 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + + /* Index: 0x70, char: \x71, offset: 0x0620 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + + /* Index: 0x71, char: \x72, offset: 0x062e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xde, /* ##.####. */ + 0xf0, /* ####.... */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x063c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x064a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0xfc, /* ######.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x1e, /* ...####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0658 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x0666 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0674 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0682 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x0690 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0x79, char: \x7a, offset: 0x069e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x06ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1c, /* ...###.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x1c, /* ...###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x06ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x06c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x06d6 */ + 0x00, /* ........ */ + 0x73, /* .###..## */ + 0xdb, /* ##.##.## */ + 0xce, /* ##..###. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x06f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0700 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x81, char: \x82, offset: 0x070e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x82, char: \x83, offset: 0x071c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x83, char: \x84, offset: 0x072a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0738 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x0746 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x86, char: \x87, offset: 0x0754 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x87, char: \x88, offset: 0x0762 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x88, char: \x89, offset: 0x0770 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x077e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8a, char: \x8b, offset: 0x078c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x079a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8c, char: \x8d, offset: 0x07a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8d, char: \x8e, offset: 0x07b6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8e, char: \x8f, offset: 0x07c4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8f, char: \x90, offset: 0x07d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x90, char: \x91, offset: 0x07e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x91, char: \x92, offset: 0x07ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x92, char: \x93, offset: 0x07fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x93, char: \x94, offset: 0x080a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x0818 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x0826 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0834 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0842 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0850 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x085e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x086c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x087a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0888 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x0896 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x08a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x08b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x08c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa1, char: \xa2, offset: 0x08ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0xa2, char: \xa3, offset: 0x08dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0xf8, /* #####... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x66, /* .##..##. */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x08ea */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa4, char: \xa5, offset: 0x08f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc3, /* ##....## */ + 0xc3, /* ##....## */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa5, char: \xa6, offset: 0x0906 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa6, char: \xa7, offset: 0x0914 */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x60, /* .##..... */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x36, /* ..##.##. */ + 0x1c, /* ...###.. */ + 0x06, /* .....##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + + /* Index: 0xa7, char: \xa8, offset: 0x0922 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa8, char: \xa9, offset: 0x0930 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0x99, /* #..##..# */ + 0xa5, /* #.#..#.# */ + 0xa1, /* #.#....# */ + 0xa5, /* #.#..#.# */ + 0x99, /* #..##..# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x093e */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x06, /* .....##. */ + 0x3e, /* ..#####. */ + 0x66, /* .##..##. */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x094c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1b, /* ...##.## */ + 0x36, /* ..##.##. */ + 0x6c, /* .##.##.. */ + 0xd8, /* ##.##... */ + 0x6c, /* .##.##.. */ + 0x36, /* ..##.##. */ + 0x1b, /* ...##.## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x095a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0968 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x0976 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0xb9, /* #.###..# */ + 0xa5, /* #.#..#.# */ + 0xb9, /* #.###..# */ + 0xa9, /* #.#.#..# */ + 0xa5, /* #.#..#.# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0984 */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaf, char: \xb0, offset: 0x0992 */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb0, char: \xb1, offset: 0x09a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb1, char: \xb2, offset: 0x09ae */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb2, char: \xb3, offset: 0x09bc */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x0c, /* ....##.. */ + 0x38, /* ..###... */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x09ca */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb4, char: \xb5, offset: 0x09d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xf6, /* ####.##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + + /* Index: 0xb5, char: \xb6, offset: 0x09e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x76, /* .###.##. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb6, char: \xb7, offset: 0x09f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb7, char: \xb8, offset: 0x0a02 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + + /* Index: 0xb8, char: \xb9, offset: 0x0a10 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x0a1e */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x0a2c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd8, /* ##.##... */ + 0x6c, /* .##.##.. */ + 0x36, /* ..##.##. */ + 0x1b, /* ...##.## */ + 0x36, /* ..##.##. */ + 0x6c, /* .##.##.. */ + 0xd8, /* ##.##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x0a3a */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + 0x62, /* .##...#. */ + 0x66, /* .##..##. */ + 0x6c, /* .##.##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x66, /* .##..##. */ + 0xce, /* ##..###. */ + 0x9a, /* #..##.#. */ + 0x3e, /* ..#####. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + + /* Index: 0xbc, char: \xbd, offset: 0x0a48 */ + 0x60, /* .##..... */ + 0xe0, /* ###..... */ + 0x62, /* .##...#. */ + 0x66, /* .##..##. */ + 0x6c, /* .##.##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xdc, /* ##.###.. */ + 0xb6, /* #.##.##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x3e, /* ..#####. */ + 0x00, /* ........ */ + + /* Index: 0xbd, char: \xbe, offset: 0x0a56 */ + 0xe0, /* ###..... */ + 0x30, /* ..##.... */ + 0x62, /* .##...#. */ + 0x36, /* ..##.##. */ + 0xec, /* ###.##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x66, /* .##..##. */ + 0xce, /* ##..###. */ + 0x9a, /* #..##.#. */ + 0x3e, /* ..#####. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + + /* Index: 0xbe, char: \xbf, offset: 0x0a64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x0a72 */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0a80 */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x0a8e */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0a9c */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc3, char: \xc4, offset: 0x0aaa */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc4, char: \xc5, offset: 0x0ab8 */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x0ac6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0xfe, /* #######. */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0xde, /* ##.####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + + /* Index: 0xc7, char: \xc8, offset: 0x0ae2 */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0af0 */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x0afe */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0b0c */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0b1a */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0b28 */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x0b36 */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x0b44 */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x0b52 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0x6c, /* .##.##.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0xf6, /* ####.##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x6c, /* .##.##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x0b60 */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xf6, /* ####.##. */ + 0xde, /* ##.####. */ + 0xce, /* ##..###. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x0b6e */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd2, char: \xd3, offset: 0x0b7c */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x0b8a */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x0b98 */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd5, char: \xd6, offset: 0x0ba6 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0bb4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0bc2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc7, /* ##...### */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xde, /* ##.####. */ + 0xf6, /* ####.##. */ + 0xe6, /* ###..##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0bd0 */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0bde */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0bec */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0bfa */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0c08 */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0xc3, /* ##....## */ + 0xc3, /* ##....## */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdd, char: \xde, offset: 0x0c16 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0c24 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xc8, /* ##..#... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0c32 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0c40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0c4e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0c5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe3, char: \xe4, offset: 0x0c6a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0c78 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0c86 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0x7e, /* .######. */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0c94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ca2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0cb0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0cbe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0ccc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0cda */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0ce8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0cf6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0d04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0d12 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x68, /* .##.#... */ + 0x30, /* ..##.... */ + 0x58, /* .#.##... */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0d20 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0d2e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0d3c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0d4a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0d58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0d66 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0d74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0d82 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3d, /* ..####.# */ + 0x67, /* .##..### */ + 0x6e, /* .##.###. */ + 0x7e, /* .######. */ + 0x76, /* .###.##. */ + 0xe6, /* ###..##. */ + 0xbc, /* #.####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0d90 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0d9e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0dac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0dba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0dc8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0xfd, char: \xfe, offset: 0x0dd6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + + /* Index: 0xfe, char: \xff, offset: 0x0de4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ +}; + +const font_char_desc_t _fonts_terminus_bold_8x14_iso8859_1_descriptors[] = { + { 0x08, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x08, 0x000e }, /* Index: 0x01, char: \x02 */ + { 0x08, 0x001c }, /* Index: 0x02, char: \x03 */ + { 0x08, 0x002a }, /* Index: 0x03, char: \x04 */ + { 0x08, 0x0038 }, /* Index: 0x04, char: \x05 */ + { 0x08, 0x0046 }, /* Index: 0x05, char: \x06 */ + { 0x08, 0x0054 }, /* Index: 0x06, char: \x07 */ + { 0x08, 0x0062 }, /* Index: 0x07, char: \x08 */ + { 0x08, 0x0070 }, /* Index: 0x08, char: \x09 */ + { 0x08, 0x007e }, /* Index: 0x09, char: \x0a */ + { 0x08, 0x008c }, /* Index: 0x0a, char: \x0b */ + { 0x08, 0x009a }, /* Index: 0x0b, char: \x0c */ + { 0x08, 0x00a8 }, /* Index: 0x0c, char: \x0d */ + { 0x08, 0x00b6 }, /* Index: 0x0d, char: \x0e */ + { 0x08, 0x00c4 }, /* Index: 0x0e, char: \x0f */ + { 0x08, 0x00d2 }, /* Index: 0x0f, char: \x10 */ + { 0x08, 0x00e0 }, /* Index: 0x10, char: \x11 */ + { 0x08, 0x00ee }, /* Index: 0x11, char: \x12 */ + { 0x08, 0x00fc }, /* Index: 0x12, char: \x13 */ + { 0x08, 0x010a }, /* Index: 0x13, char: \x14 */ + { 0x08, 0x0118 }, /* Index: 0x14, char: \x15 */ + { 0x08, 0x0126 }, /* Index: 0x15, char: \x16 */ + { 0x08, 0x0134 }, /* Index: 0x16, char: \x17 */ + { 0x08, 0x0142 }, /* Index: 0x17, char: \x18 */ + { 0x08, 0x0150 }, /* Index: 0x18, char: \x19 */ + { 0x08, 0x015e }, /* Index: 0x19, char: \x1a */ + { 0x08, 0x016c }, /* Index: 0x1a, char: \x1b */ + { 0x08, 0x017a }, /* Index: 0x1b, char: \x1c */ + { 0x08, 0x0188 }, /* Index: 0x1c, char: \x1d */ + { 0x08, 0x0196 }, /* Index: 0x1d, char: \x1e */ + { 0x08, 0x01a4 }, /* Index: 0x1e, char: \x1f */ + { 0x08, 0x01b2 }, /* Index: 0x1f, char: \x20 */ + { 0x08, 0x01c0 }, /* Index: 0x20, char: \x21 */ + { 0x08, 0x01ce }, /* Index: 0x21, char: \x22 */ + { 0x08, 0x01dc }, /* Index: 0x22, char: \x23 */ + { 0x08, 0x01ea }, /* Index: 0x23, char: \x24 */ + { 0x08, 0x01f8 }, /* Index: 0x24, char: \x25 */ + { 0x08, 0x0206 }, /* Index: 0x25, char: \x26 */ + { 0x08, 0x0214 }, /* Index: 0x26, char: \x27 */ + { 0x08, 0x0222 }, /* Index: 0x27, char: \x28 */ + { 0x08, 0x0230 }, /* Index: 0x28, char: \x29 */ + { 0x08, 0x023e }, /* Index: 0x29, char: \x2a */ + { 0x08, 0x024c }, /* Index: 0x2a, char: \x2b */ + { 0x08, 0x025a }, /* Index: 0x2b, char: \x2c */ + { 0x08, 0x0268 }, /* Index: 0x2c, char: \x2d */ + { 0x08, 0x0276 }, /* Index: 0x2d, char: \x2e */ + { 0x08, 0x0284 }, /* Index: 0x2e, char: \x2f */ + { 0x08, 0x0292 }, /* Index: 0x2f, char: \x30 */ + { 0x08, 0x02a0 }, /* Index: 0x30, char: \x31 */ + { 0x08, 0x02ae }, /* Index: 0x31, char: \x32 */ + { 0x08, 0x02bc }, /* Index: 0x32, char: \x33 */ + { 0x08, 0x02ca }, /* Index: 0x33, char: \x34 */ + { 0x08, 0x02d8 }, /* Index: 0x34, char: \x35 */ + { 0x08, 0x02e6 }, /* Index: 0x35, char: \x36 */ + { 0x08, 0x02f4 }, /* Index: 0x36, char: \x37 */ + { 0x08, 0x0302 }, /* Index: 0x37, char: \x38 */ + { 0x08, 0x0310 }, /* Index: 0x38, char: \x39 */ + { 0x08, 0x031e }, /* Index: 0x39, char: \x3a */ + { 0x08, 0x032c }, /* Index: 0x3a, char: \x3b */ + { 0x08, 0x033a }, /* Index: 0x3b, char: \x3c */ + { 0x08, 0x0348 }, /* Index: 0x3c, char: \x3d */ + { 0x08, 0x0356 }, /* Index: 0x3d, char: \x3e */ + { 0x08, 0x0364 }, /* Index: 0x3e, char: \x3f */ + { 0x08, 0x0372 }, /* Index: 0x3f, char: \x40 */ + { 0x08, 0x0380 }, /* Index: 0x40, char: \x41 */ + { 0x08, 0x038e }, /* Index: 0x41, char: \x42 */ + { 0x08, 0x039c }, /* Index: 0x42, char: \x43 */ + { 0x08, 0x03aa }, /* Index: 0x43, char: \x44 */ + { 0x08, 0x03b8 }, /* Index: 0x44, char: \x45 */ + { 0x08, 0x03c6 }, /* Index: 0x45, char: \x46 */ + { 0x08, 0x03d4 }, /* Index: 0x46, char: \x47 */ + { 0x08, 0x03e2 }, /* Index: 0x47, char: \x48 */ + { 0x08, 0x03f0 }, /* Index: 0x48, char: \x49 */ + { 0x08, 0x03fe }, /* Index: 0x49, char: \x4a */ + { 0x08, 0x040c }, /* Index: 0x4a, char: \x4b */ + { 0x08, 0x041a }, /* Index: 0x4b, char: \x4c */ + { 0x08, 0x0428 }, /* Index: 0x4c, char: \x4d */ + { 0x08, 0x0436 }, /* Index: 0x4d, char: \x4e */ + { 0x08, 0x0444 }, /* Index: 0x4e, char: \x4f */ + { 0x08, 0x0452 }, /* Index: 0x4f, char: \x50 */ + { 0x08, 0x0460 }, /* Index: 0x50, char: \x51 */ + { 0x08, 0x046e }, /* Index: 0x51, char: \x52 */ + { 0x08, 0x047c }, /* Index: 0x52, char: \x53 */ + { 0x08, 0x048a }, /* Index: 0x53, char: \x54 */ + { 0x08, 0x0498 }, /* Index: 0x54, char: \x55 */ + { 0x08, 0x04a6 }, /* Index: 0x55, char: \x56 */ + { 0x08, 0x04b4 }, /* Index: 0x56, char: \x57 */ + { 0x08, 0x04c2 }, /* Index: 0x57, char: \x58 */ + { 0x08, 0x04d0 }, /* Index: 0x58, char: \x59 */ + { 0x08, 0x04de }, /* Index: 0x59, char: \x5a */ + { 0x08, 0x04ec }, /* Index: 0x5a, char: \x5b */ + { 0x08, 0x04fa }, /* Index: 0x5b, char: \x5c */ + { 0x08, 0x0508 }, /* Index: 0x5c, char: \x5d */ + { 0x08, 0x0516 }, /* Index: 0x5d, char: \x5e */ + { 0x08, 0x0524 }, /* Index: 0x5e, char: \x5f */ + { 0x08, 0x0532 }, /* Index: 0x5f, char: \x60 */ + { 0x08, 0x0540 }, /* Index: 0x60, char: \x61 */ + { 0x08, 0x054e }, /* Index: 0x61, char: \x62 */ + { 0x08, 0x055c }, /* Index: 0x62, char: \x63 */ + { 0x08, 0x056a }, /* Index: 0x63, char: \x64 */ + { 0x08, 0x0578 }, /* Index: 0x64, char: \x65 */ + { 0x08, 0x0586 }, /* Index: 0x65, char: \x66 */ + { 0x08, 0x0594 }, /* Index: 0x66, char: \x67 */ + { 0x08, 0x05a2 }, /* Index: 0x67, char: \x68 */ + { 0x08, 0x05b0 }, /* Index: 0x68, char: \x69 */ + { 0x08, 0x05be }, /* Index: 0x69, char: \x6a */ + { 0x08, 0x05cc }, /* Index: 0x6a, char: \x6b */ + { 0x08, 0x05da }, /* Index: 0x6b, char: \x6c */ + { 0x08, 0x05e8 }, /* Index: 0x6c, char: \x6d */ + { 0x08, 0x05f6 }, /* Index: 0x6d, char: \x6e */ + { 0x08, 0x0604 }, /* Index: 0x6e, char: \x6f */ + { 0x08, 0x0612 }, /* Index: 0x6f, char: \x70 */ + { 0x08, 0x0620 }, /* Index: 0x70, char: \x71 */ + { 0x08, 0x062e }, /* Index: 0x71, char: \x72 */ + { 0x08, 0x063c }, /* Index: 0x72, char: \x73 */ + { 0x08, 0x064a }, /* Index: 0x73, char: \x74 */ + { 0x08, 0x0658 }, /* Index: 0x74, char: \x75 */ + { 0x08, 0x0666 }, /* Index: 0x75, char: \x76 */ + { 0x08, 0x0674 }, /* Index: 0x76, char: \x77 */ + { 0x08, 0x0682 }, /* Index: 0x77, char: \x78 */ + { 0x08, 0x0690 }, /* Index: 0x78, char: \x79 */ + { 0x08, 0x069e }, /* Index: 0x79, char: \x7a */ + { 0x08, 0x06ac }, /* Index: 0x7a, char: \x7b */ + { 0x08, 0x06ba }, /* Index: 0x7b, char: \x7c */ + { 0x08, 0x06c8 }, /* Index: 0x7c, char: \x7d */ + { 0x08, 0x06d6 }, /* Index: 0x7d, char: \x7e */ + { 0x08, 0x06e4 }, /* Index: 0x7e, char: \x7f */ + { 0x08, 0x06f2 }, /* Index: 0x7f, char: \x80 */ + { 0x08, 0x0700 }, /* Index: 0x80, char: \x81 */ + { 0x08, 0x070e }, /* Index: 0x81, char: \x82 */ + { 0x08, 0x071c }, /* Index: 0x82, char: \x83 */ + { 0x08, 0x072a }, /* Index: 0x83, char: \x84 */ + { 0x08, 0x0738 }, /* Index: 0x84, char: \x85 */ + { 0x08, 0x0746 }, /* Index: 0x85, char: \x86 */ + { 0x08, 0x0754 }, /* Index: 0x86, char: \x87 */ + { 0x08, 0x0762 }, /* Index: 0x87, char: \x88 */ + { 0x08, 0x0770 }, /* Index: 0x88, char: \x89 */ + { 0x08, 0x077e }, /* Index: 0x89, char: \x8a */ + { 0x08, 0x078c }, /* Index: 0x8a, char: \x8b */ + { 0x08, 0x079a }, /* Index: 0x8b, char: \x8c */ + { 0x08, 0x07a8 }, /* Index: 0x8c, char: \x8d */ + { 0x08, 0x07b6 }, /* Index: 0x8d, char: \x8e */ + { 0x08, 0x07c4 }, /* Index: 0x8e, char: \x8f */ + { 0x08, 0x07d2 }, /* Index: 0x8f, char: \x90 */ + { 0x08, 0x07e0 }, /* Index: 0x90, char: \x91 */ + { 0x08, 0x07ee }, /* Index: 0x91, char: \x92 */ + { 0x08, 0x07fc }, /* Index: 0x92, char: \x93 */ + { 0x08, 0x080a }, /* Index: 0x93, char: \x94 */ + { 0x08, 0x0818 }, /* Index: 0x94, char: \x95 */ + { 0x08, 0x0826 }, /* Index: 0x95, char: \x96 */ + { 0x08, 0x0834 }, /* Index: 0x96, char: \x97 */ + { 0x08, 0x0842 }, /* Index: 0x97, char: \x98 */ + { 0x08, 0x0850 }, /* Index: 0x98, char: \x99 */ + { 0x08, 0x085e }, /* Index: 0x99, char: \x9a */ + { 0x08, 0x086c }, /* Index: 0x9a, char: \x9b */ + { 0x08, 0x087a }, /* Index: 0x9b, char: \x9c */ + { 0x08, 0x0888 }, /* Index: 0x9c, char: \x9d */ + { 0x08, 0x0896 }, /* Index: 0x9d, char: \x9e */ + { 0x08, 0x08a4 }, /* Index: 0x9e, char: \x9f */ + { 0x08, 0x08b2 }, /* Index: 0x9f, char: \xa0 */ + { 0x08, 0x08c0 }, /* Index: 0xa0, char: \xa1 */ + { 0x08, 0x08ce }, /* Index: 0xa1, char: \xa2 */ + { 0x08, 0x08dc }, /* Index: 0xa2, char: \xa3 */ + { 0x08, 0x08ea }, /* Index: 0xa3, char: \xa4 */ + { 0x08, 0x08f8 }, /* Index: 0xa4, char: \xa5 */ + { 0x08, 0x0906 }, /* Index: 0xa5, char: \xa6 */ + { 0x08, 0x0914 }, /* Index: 0xa6, char: \xa7 */ + { 0x08, 0x0922 }, /* Index: 0xa7, char: \xa8 */ + { 0x08, 0x0930 }, /* Index: 0xa8, char: \xa9 */ + { 0x08, 0x093e }, /* Index: 0xa9, char: \xaa */ + { 0x08, 0x094c }, /* Index: 0xaa, char: \xab */ + { 0x08, 0x095a }, /* Index: 0xab, char: \xac */ + { 0x08, 0x0968 }, /* Index: 0xac, char: \xad */ + { 0x08, 0x0976 }, /* Index: 0xad, char: \xae */ + { 0x08, 0x0984 }, /* Index: 0xae, char: \xaf */ + { 0x08, 0x0992 }, /* Index: 0xaf, char: \xb0 */ + { 0x08, 0x09a0 }, /* Index: 0xb0, char: \xb1 */ + { 0x08, 0x09ae }, /* Index: 0xb1, char: \xb2 */ + { 0x08, 0x09bc }, /* Index: 0xb2, char: \xb3 */ + { 0x08, 0x09ca }, /* Index: 0xb3, char: \xb4 */ + { 0x08, 0x09d8 }, /* Index: 0xb4, char: \xb5 */ + { 0x08, 0x09e6 }, /* Index: 0xb5, char: \xb6 */ + { 0x08, 0x09f4 }, /* Index: 0xb6, char: \xb7 */ + { 0x08, 0x0a02 }, /* Index: 0xb7, char: \xb8 */ + { 0x08, 0x0a10 }, /* Index: 0xb8, char: \xb9 */ + { 0x08, 0x0a1e }, /* Index: 0xb9, char: \xba */ + { 0x08, 0x0a2c }, /* Index: 0xba, char: \xbb */ + { 0x08, 0x0a3a }, /* Index: 0xbb, char: \xbc */ + { 0x08, 0x0a48 }, /* Index: 0xbc, char: \xbd */ + { 0x08, 0x0a56 }, /* Index: 0xbd, char: \xbe */ + { 0x08, 0x0a64 }, /* Index: 0xbe, char: \xbf */ + { 0x08, 0x0a72 }, /* Index: 0xbf, char: \xc0 */ + { 0x08, 0x0a80 }, /* Index: 0xc0, char: \xc1 */ + { 0x08, 0x0a8e }, /* Index: 0xc1, char: \xc2 */ + { 0x08, 0x0a9c }, /* Index: 0xc2, char: \xc3 */ + { 0x08, 0x0aaa }, /* Index: 0xc3, char: \xc4 */ + { 0x08, 0x0ab8 }, /* Index: 0xc4, char: \xc5 */ + { 0x08, 0x0ac6 }, /* Index: 0xc5, char: \xc6 */ + { 0x08, 0x0ad4 }, /* Index: 0xc6, char: \xc7 */ + { 0x08, 0x0ae2 }, /* Index: 0xc7, char: \xc8 */ + { 0x08, 0x0af0 }, /* Index: 0xc8, char: \xc9 */ + { 0x08, 0x0afe }, /* Index: 0xc9, char: \xca */ + { 0x08, 0x0b0c }, /* Index: 0xca, char: \xcb */ + { 0x08, 0x0b1a }, /* Index: 0xcb, char: \xcc */ + { 0x08, 0x0b28 }, /* Index: 0xcc, char: \xcd */ + { 0x08, 0x0b36 }, /* Index: 0xcd, char: \xce */ + { 0x08, 0x0b44 }, /* Index: 0xce, char: \xcf */ + { 0x08, 0x0b52 }, /* Index: 0xcf, char: \xd0 */ + { 0x08, 0x0b60 }, /* Index: 0xd0, char: \xd1 */ + { 0x08, 0x0b6e }, /* Index: 0xd1, char: \xd2 */ + { 0x08, 0x0b7c }, /* Index: 0xd2, char: \xd3 */ + { 0x08, 0x0b8a }, /* Index: 0xd3, char: \xd4 */ + { 0x08, 0x0b98 }, /* Index: 0xd4, char: \xd5 */ + { 0x08, 0x0ba6 }, /* Index: 0xd5, char: \xd6 */ + { 0x08, 0x0bb4 }, /* Index: 0xd6, char: \xd7 */ + { 0x08, 0x0bc2 }, /* Index: 0xd7, char: \xd8 */ + { 0x08, 0x0bd0 }, /* Index: 0xd8, char: \xd9 */ + { 0x08, 0x0bde }, /* Index: 0xd9, char: \xda */ + { 0x08, 0x0bec }, /* Index: 0xda, char: \xdb */ + { 0x08, 0x0bfa }, /* Index: 0xdb, char: \xdc */ + { 0x08, 0x0c08 }, /* Index: 0xdc, char: \xdd */ + { 0x08, 0x0c16 }, /* Index: 0xdd, char: \xde */ + { 0x08, 0x0c24 }, /* Index: 0xde, char: \xdf */ + { 0x08, 0x0c32 }, /* Index: 0xdf, char: \xe0 */ + { 0x08, 0x0c40 }, /* Index: 0xe0, char: \xe1 */ + { 0x08, 0x0c4e }, /* Index: 0xe1, char: \xe2 */ + { 0x08, 0x0c5c }, /* Index: 0xe2, char: \xe3 */ + { 0x08, 0x0c6a }, /* Index: 0xe3, char: \xe4 */ + { 0x08, 0x0c78 }, /* Index: 0xe4, char: \xe5 */ + { 0x08, 0x0c86 }, /* Index: 0xe5, char: \xe6 */ + { 0x08, 0x0c94 }, /* Index: 0xe6, char: \xe7 */ + { 0x08, 0x0ca2 }, /* Index: 0xe7, char: \xe8 */ + { 0x08, 0x0cb0 }, /* Index: 0xe8, char: \xe9 */ + { 0x08, 0x0cbe }, /* Index: 0xe9, char: \xea */ + { 0x08, 0x0ccc }, /* Index: 0xea, char: \xeb */ + { 0x08, 0x0cda }, /* Index: 0xeb, char: \xec */ + { 0x08, 0x0ce8 }, /* Index: 0xec, char: \xed */ + { 0x08, 0x0cf6 }, /* Index: 0xed, char: \xee */ + { 0x08, 0x0d04 }, /* Index: 0xee, char: \xef */ + { 0x08, 0x0d12 }, /* Index: 0xef, char: \xf0 */ + { 0x08, 0x0d20 }, /* Index: 0xf0, char: \xf1 */ + { 0x08, 0x0d2e }, /* Index: 0xf1, char: \xf2 */ + { 0x08, 0x0d3c }, /* Index: 0xf2, char: \xf3 */ + { 0x08, 0x0d4a }, /* Index: 0xf3, char: \xf4 */ + { 0x08, 0x0d58 }, /* Index: 0xf4, char: \xf5 */ + { 0x08, 0x0d66 }, /* Index: 0xf5, char: \xf6 */ + { 0x08, 0x0d74 }, /* Index: 0xf6, char: \xf7 */ + { 0x08, 0x0d82 }, /* Index: 0xf7, char: \xf8 */ + { 0x08, 0x0d90 }, /* Index: 0xf8, char: \xf9 */ + { 0x08, 0x0d9e }, /* Index: 0xf9, char: \xfa */ + { 0x08, 0x0dac }, /* Index: 0xfa, char: \xfb */ + { 0x08, 0x0dba }, /* Index: 0xfb, char: \xfc */ + { 0x08, 0x0dc8 }, /* Index: 0xfc, char: \xfd */ + { 0x08, 0x0dd6 }, /* Index: 0xfd, char: \xfe */ + { 0x08, 0x0de4 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_8x14_iso8859_1_info = +{ + .height = 14, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_8x14_iso8859_1_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_8x14_iso8859_1_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_ISO8859_1_H_ */ diff --git a/extras/fonts/data/font_terminus_bold_8x14_koi8_r.h b/extras/fonts/data/font_terminus_bold_8x14_koi8_r.h new file mode 100644 index 0000000..c1b249f --- /dev/null +++ b/extras/fonts/data/font_terminus_bold_8x14_koi8_r.h @@ -0,0 +1,4369 @@ +/** + * This file contains generated binary font data. + * + * Font: Terminus_Bold + * Size: 8x14 + * Charset: koi8_r + * 255 characters (1..255) + * + * Copyright (c) 2015 Dimitar Toshkov Zhekov + * License: SIL Open Font License, Version 1.1. The license is included as OFL.TXT, and is + * also available with a FAQ at http://scripts.sil.org/OFL + * + * Generated: + */ +#ifndef _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_KOI8_R_H_ +#define _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_KOI8_R_H_ + +static const uint8_t _fonts_terminus_bold_8x14_koi8_r_bitmaps[] = { + + /* Index: 0x00, char: \x01, offset: 0x0000 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x7e, /* .######. */ + 0xff, /* ######## */ + 0x7e, /* .######. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x01, char: \x02, offset: 0x000e */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x02, char: \x03, offset: 0x001c */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xfc, /* ######.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + + /* Index: 0x03, char: \x04, offset: 0x002a */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xf0, /* ####.... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x04, char: \x05, offset: 0x0038 */ + 0x78, /* .####... */ + 0xcc, /* ##..##.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xcc, /* ##..##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x33, /* ..##..## */ + 0x33, /* ..##..## */ + 0x3e, /* ..#####. */ + 0x36, /* ..##.##. */ + 0x33, /* ..##..## */ + 0x00, /* ........ */ + + /* Index: 0x05, char: \x06, offset: 0x0046 */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x3f, /* ..###### */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x06, char: \x07, offset: 0x0054 */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x07, char: \x08, offset: 0x0062 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x08, char: \x09, offset: 0x0070 */ + 0xcc, /* ##..##.. */ + 0xec, /* ###.##.. */ + 0xfc, /* ######.. */ + 0xdc, /* ##.###.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x3f, /* ..###### */ + 0x00, /* ........ */ + + /* Index: 0x09, char: \x0a, offset: 0x007e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0a, char: \x0b, offset: 0x008c */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0b, char: \x0c, offset: 0x009a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0c, char: \x0d, offset: 0x00a8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0d, char: \x0e, offset: 0x00b6 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x0e, char: \x0f, offset: 0x00c4 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x0f, char: \x10, offset: 0x00d2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x10, char: \x11, offset: 0x00e0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x11, char: \x12, offset: 0x00ee */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x12, char: \x13, offset: 0x00fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x13, char: \x14, offset: 0x010a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x14, char: \x15, offset: 0x0118 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x15, char: \x16, offset: 0x0126 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x16, char: \x17, offset: 0x0134 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x17, char: \x18, offset: 0x0142 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x18, char: \x19, offset: 0x0150 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x19, char: \x1a, offset: 0x015e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1a, char: \x1b, offset: 0x016c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1b, char: \x1c, offset: 0x017a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1c, char: \x1d, offset: 0x0188 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0xfe, /* #######. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1d, char: \x1e, offset: 0x0196 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0xf8, /* #####... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x66, /* .##..##. */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1e, char: \x1f, offset: 0x01a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x1f, char: \x20, offset: 0x01b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x20, char: \x21, offset: 0x01c0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x21, char: \x22, offset: 0x01ce */ + 0x00, /* ........ */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x22, char: \x23, offset: 0x01dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xfe, /* #######. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xfe, /* #######. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x23, char: \x24, offset: 0x01ea */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd0, /* ##.#.... */ + 0xd0, /* ##.#.... */ + 0x7c, /* .#####.. */ + 0x16, /* ...#.##. */ + 0x16, /* ...#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x10, /* ...#.... */ + + /* Index: 0x24, char: \x25, offset: 0x01f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x66, /* .##..##. */ + 0xd6, /* ##.#.##. */ + 0x6c, /* .##.##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x36, /* ..##.##. */ + 0x6b, /* .##.#.## */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x25, char: \x26, offset: 0x0206 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xdc, /* ##.###.. */ + 0x76, /* .###.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x26, char: \x27, offset: 0x0214 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x27, char: \x28, offset: 0x0222 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x28, char: \x29, offset: 0x0230 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x29, char: \x2a, offset: 0x023e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0xfe, /* #######. */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2a, char: \x2b, offset: 0x024c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2b, char: \x2c, offset: 0x025a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x2c, char: \x2d, offset: 0x0268 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2d, char: \x2e, offset: 0x0276 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2e, char: \x2f, offset: 0x0284 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x2f, char: \x30, offset: 0x0292 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xde, /* ##.####. */ + 0xf6, /* ####.##. */ + 0xe6, /* ###..##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x30, char: \x31, offset: 0x02a0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x38, /* ..###... */ + 0x78, /* .####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x31, char: \x32, offset: 0x02ae */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x32, char: \x33, offset: 0x02bc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x3c, /* ..####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x33, char: \x34, offset: 0x02ca */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x0e, /* ....###. */ + 0x1e, /* ...####. */ + 0x36, /* ..##.##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x34, char: \x35, offset: 0x02d8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x35, char: \x36, offset: 0x02e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x36, char: \x37, offset: 0x02f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x37, char: \x38, offset: 0x0302 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x38, char: \x39, offset: 0x0310 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x39, char: \x3a, offset: 0x031e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3a, char: \x3b, offset: 0x032c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + + /* Index: 0x3b, char: \x3c, offset: 0x033a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3c, char: \x3d, offset: 0x0348 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3d, char: \x3e, offset: 0x0356 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3e, char: \x3f, offset: 0x0364 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x3f, char: \x40, offset: 0x0372 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xce, /* ##..###. */ + 0xc0, /* ##...... */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x40, char: \x41, offset: 0x0380 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x41, char: \x42, offset: 0x038e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x42, char: \x43, offset: 0x039c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x43, char: \x44, offset: 0x03aa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x44, char: \x45, offset: 0x03b8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x45, char: \x46, offset: 0x03c6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x46, char: \x47, offset: 0x03d4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xde, /* ##.####. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x47, char: \x48, offset: 0x03e2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x48, char: \x49, offset: 0x03f0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x49, char: \x4a, offset: 0x03fe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x78, /* .####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4a, char: \x4b, offset: 0x040c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4b, char: \x4c, offset: 0x041a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4c, char: \x4d, offset: 0x0428 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xee, /* ###.###. */ + 0xfe, /* #######. */ + 0xd6, /* ##.#.##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4d, char: \x4e, offset: 0x0436 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xf6, /* ####.##. */ + 0xde, /* ##.####. */ + 0xce, /* ##..###. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4e, char: \x4f, offset: 0x0444 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x4f, char: \x50, offset: 0x0452 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x50, char: \x51, offset: 0x0460 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xde, /* ##.####. */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + + /* Index: 0x51, char: \x52, offset: 0x046e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x52, char: \x53, offset: 0x047c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x53, char: \x54, offset: 0x048a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x54, char: \x55, offset: 0x0498 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x55, char: \x56, offset: 0x04a6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x56, char: \x57, offset: 0x04b4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xd6, /* ##.#.##. */ + 0xfe, /* #######. */ + 0xee, /* ###.###. */ + 0xc6, /* ##...##. */ + 0x82, /* #.....#. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x57, char: \x58, offset: 0x04c2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x58, char: \x59, offset: 0x04d0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc3, /* ##....## */ + 0xc3, /* ##....## */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x59, char: \x5a, offset: 0x04de */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5a, char: \x5b, offset: 0x04ec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5b, char: \x5c, offset: 0x04fa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5c, char: \x5d, offset: 0x0508 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3c, /* ..####.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5d, char: \x5e, offset: 0x0516 */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x66, /* .##..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x5e, char: \x5f, offset: 0x0524 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + + /* Index: 0x5f, char: \x60, offset: 0x0532 */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x60, char: \x61, offset: 0x0540 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x61, char: \x62, offset: 0x054e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x62, char: \x63, offset: 0x055c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x63, char: \x64, offset: 0x056a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x64, char: \x65, offset: 0x0578 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x65, char: \x66, offset: 0x0586 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0xfc, /* ######.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x66, char: \x67, offset: 0x0594 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0x67, char: \x68, offset: 0x05a2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x68, char: \x69, offset: 0x05b0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x69, char: \x6a, offset: 0x05be */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x3c, /* ..####.. */ + + /* Index: 0x6a, char: \x6b, offset: 0x05cc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6b, char: \x6c, offset: 0x05da */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x3c, /* ..####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6c, char: \x6d, offset: 0x05e8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6d, char: \x6e, offset: 0x05f6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6e, char: \x6f, offset: 0x0604 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x6f, char: \x70, offset: 0x0612 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + + /* Index: 0x70, char: \x71, offset: 0x0620 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + + /* Index: 0x71, char: \x72, offset: 0x062e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xde, /* ##.####. */ + 0xf0, /* ####.... */ + 0xe0, /* ###..... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x72, char: \x73, offset: 0x063c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x73, char: \x74, offset: 0x064a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0xfc, /* ######.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x1e, /* ...####. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x74, char: \x75, offset: 0x0658 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x75, char: \x76, offset: 0x0666 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x76, char: \x77, offset: 0x0674 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x77, char: \x78, offset: 0x0682 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x78, char: \x79, offset: 0x0690 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0x79, char: \x7a, offset: 0x069e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7a, char: \x7b, offset: 0x06ac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1c, /* ...###.. */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x30, /* ..##.... */ + 0x1c, /* ...###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7b, char: \x7c, offset: 0x06ba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7c, char: \x7d, offset: 0x06c8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x70, /* .###.... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7d, char: \x7e, offset: 0x06d6 */ + 0x00, /* ........ */ + 0x73, /* .###..## */ + 0xdb, /* ##.##.## */ + 0xce, /* ##..###. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7e, char: \x7f, offset: 0x06e4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x7f, char: \x80, offset: 0x06f2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x80, char: \x81, offset: 0x0700 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x81, char: \x82, offset: 0x070e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x82, char: \x83, offset: 0x071c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x83, char: \x84, offset: 0x072a */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x84, char: \x85, offset: 0x0738 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x85, char: \x86, offset: 0x0746 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x86, char: \x87, offset: 0x0754 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x87, char: \x88, offset: 0x0762 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x88, char: \x89, offset: 0x0770 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x89, char: \x8a, offset: 0x077e */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x8a, char: \x8b, offset: 0x078c */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x8b, char: \x8c, offset: 0x079a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + + /* Index: 0x8c, char: \x8d, offset: 0x07a8 */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0xff, /* ######## */ + + /* Index: 0x8d, char: \x8e, offset: 0x07b6 */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + + /* Index: 0x8e, char: \x8f, offset: 0x07c4 */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + 0x0f, /* ....#### */ + + /* Index: 0x8f, char: \x90, offset: 0x07d2 */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + 0x88, /* #...#... */ + 0x22, /* ..#...#. */ + + /* Index: 0x90, char: \x91, offset: 0x07e0 */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + 0xaa, /* #.#.#.#. */ + 0x55, /* .#.#.#.# */ + + /* Index: 0x91, char: \x92, offset: 0x07ee */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + 0xee, /* ###.###. */ + 0xbb, /* #.###.## */ + + /* Index: 0x92, char: \x93, offset: 0x07fc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x1b, /* ...##.## */ + 0x1b, /* ...##.## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0x93, char: \x94, offset: 0x080a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x7c, /* .#####.. */ + 0x7c, /* .#####.. */ + 0x7c, /* .#####.. */ + 0x7c, /* .#####.. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x94, char: \x95, offset: 0x0818 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x95, char: \x96, offset: 0x0826 */ + 0x00, /* ........ */ + 0x0e, /* ....###. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0x0c, /* ....##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0x6c, /* .##.##.. */ + 0x3c, /* ..####.. */ + 0x1c, /* ...###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x96, char: \x97, offset: 0x0834 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x76, /* .###.##. */ + 0xdc, /* ##.###.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x97, char: \x98, offset: 0x0842 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x60, /* .##..... */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x98, char: \x99, offset: 0x0850 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x30, /* ..##.... */ + 0x18, /* ...##... */ + 0x0c, /* ....##.. */ + 0x06, /* .....##. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x99, char: \x9a, offset: 0x085e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9a, char: \x9b, offset: 0x086c */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xd8, /* ##.##... */ + 0xd8, /* ##.##... */ + 0x70, /* .###.... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9b, char: \x9c, offset: 0x087a */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9c, char: \x9d, offset: 0x0888 */ + 0x00, /* ........ */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x0c, /* ....##.. */ + 0x18, /* ...##... */ + 0x30, /* ..##.... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9d, char: \x9e, offset: 0x0896 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9e, char: \x9f, offset: 0x08a4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0x9f, char: \xa0, offset: 0x08b2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa0, char: \xa1, offset: 0x08c0 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xa1, char: \xa2, offset: 0x08ce */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xa2, char: \xa3, offset: 0x08dc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa3, char: \xa4, offset: 0x08ea */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7f, /* .####### */ + 0x7f, /* .####### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xa4, char: \xa5, offset: 0x08f8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7f, /* .####### */ + 0x7f, /* .####### */ + 0x60, /* .##..... */ + 0x6f, /* .##.#### */ + 0x6f, /* .##.#### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xa5, char: \xa6, offset: 0x0906 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xa6, char: \xa7, offset: 0x0914 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xa7, char: \xa8, offset: 0x0922 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0x0c, /* ....##.. */ + 0xec, /* ###.##.. */ + 0xec, /* ###.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xa8, char: \xa9, offset: 0x0930 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xa9, char: \xaa, offset: 0x093e */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x7f, /* .####### */ + 0x7f, /* .####### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xaa, char: \xab, offset: 0x094c */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6f, /* .##.#### */ + 0x6f, /* .##.#### */ + 0x60, /* .##..... */ + 0x7f, /* .####### */ + 0x7f, /* .####### */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xab, char: \xac, offset: 0x095a */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xac, char: \xad, offset: 0x0968 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xad, char: \xae, offset: 0x0976 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xec, /* ###.##.. */ + 0xec, /* ###.##.. */ + 0x0c, /* ....##.. */ + 0xfc, /* ######.. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xae, char: \xaf, offset: 0x0984 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x1f, /* ...##### */ + 0x1f, /* ...##### */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xaf, char: \xb0, offset: 0x0992 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6f, /* .##.#### */ + 0x6f, /* .##.#### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb0, char: \xb1, offset: 0x09a0 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6f, /* .##.#### */ + 0x6f, /* .##.#### */ + 0x60, /* .##..... */ + 0x6f, /* .##.#### */ + 0x6f, /* .##.#### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb1, char: \xb2, offset: 0x09ae */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0xf8, /* #####... */ + 0xf8, /* #####... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xb2, char: \xb3, offset: 0x09bc */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb3, char: \xb4, offset: 0x09ca */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xec, /* ###.##.. */ + 0xec, /* ###.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb4, char: \xb5, offset: 0x09d8 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xec, /* ###.##.. */ + 0xec, /* ###.##.. */ + 0x0c, /* ....##.. */ + 0xec, /* ###.##.. */ + 0xec, /* ###.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb5, char: \xb6, offset: 0x09e6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xb6, char: \xb7, offset: 0x09f4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb7, char: \xb8, offset: 0x0a02 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xef, /* ###.#### */ + 0xef, /* ###.#### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xb8, char: \xb9, offset: 0x0a10 */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xb9, char: \xba, offset: 0x0a1e */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xba, char: \xbb, offset: 0x0a2c */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xef, /* ###.#### */ + 0xef, /* ###.#### */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbb, char: \xbc, offset: 0x0a3a */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + + /* Index: 0xbc, char: \xbd, offset: 0x0a48 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xff, /* ######## */ + 0xff, /* ######## */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xbd, char: \xbe, offset: 0x0a56 */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xef, /* ###.#### */ + 0xef, /* ###.#### */ + 0x00, /* ........ */ + 0xef, /* ###.#### */ + 0xef, /* ###.#### */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + + /* Index: 0xbe, char: \xbf, offset: 0x0a64 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0x81, /* #......# */ + 0x99, /* #..##..# */ + 0xa5, /* #.#..#.# */ + 0xa1, /* #.#....# */ + 0xa5, /* #.#..#.# */ + 0x99, /* #..##..# */ + 0x81, /* #......# */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xbf, char: \xc0, offset: 0x0a72 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xcc, /* ##..##.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xf6, /* ####.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc0, char: \xc1, offset: 0x0a80 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0x06, /* .....##. */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc1, char: \xc2, offset: 0x0a8e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc2, char: \xc3, offset: 0x0a9c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7f, /* .####### */ + 0x03, /* ......## */ + 0x03, /* ......## */ + + /* Index: 0xc3, char: \xc4, offset: 0x0aaa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0xc4, char: \xc5, offset: 0x0ab8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc5, char: \xc6, offset: 0x0ac6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0xc6, char: \xc7, offset: 0x0ad4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc7, char: \xc8, offset: 0x0ae2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc8, char: \xc9, offset: 0x0af0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xc9, char: \xca, offset: 0x0afe */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xca, char: \xcb, offset: 0x0b0c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcb, char: \xcc, offset: 0x0b1a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcc, char: \xcd, offset: 0x0b28 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xee, /* ###.###. */ + 0xfe, /* #######. */ + 0xd6, /* ##.#.##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcd, char: \xce, offset: 0x0b36 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xce, char: \xcf, offset: 0x0b44 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xcf, char: \xd0, offset: 0x0b52 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd0, char: \xd1, offset: 0x0b60 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x36, /* ..##.##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd1, char: \xd2, offset: 0x0b6e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + + /* Index: 0xd2, char: \xd3, offset: 0x0b7c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd3, char: \xd4, offset: 0x0b8a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd4, char: \xd5, offset: 0x0b98 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + + /* Index: 0xd5, char: \xd6, offset: 0x0ba6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd6, char: \xd7, offset: 0x0bb4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x78, /* .####... */ + 0xcc, /* ##..##.. */ + 0xcc, /* ##..##.. */ + 0xc8, /* ##..#... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd7, char: \xd8, offset: 0x0bc2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x7c, /* .#####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd8, char: \xd9, offset: 0x0bd0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xe6, /* ###..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xd9, char: \xda, offset: 0x0bde */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x3c, /* ..####.. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xda, char: \xdb, offset: 0x0bec */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdb, char: \xdc, offset: 0x0bfa */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x3e, /* ..#####. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdc, char: \xdd, offset: 0x0c08 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7f, /* .####### */ + 0x03, /* ......## */ + 0x03, /* ......## */ + + /* Index: 0xdd, char: \xde, offset: 0x0c16 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xde, char: \xdf, offset: 0x0c24 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x60, /* .##..... */ + 0x7c, /* .#####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xdf, char: \xe0, offset: 0x0c32 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xcc, /* ##..##.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xf6, /* ####.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xcc, /* ##..##.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe0, char: \xe1, offset: 0x0c40 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe1, char: \xe2, offset: 0x0c4e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe2, char: \xe3, offset: 0x0c5c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7f, /* .####### */ + 0x03, /* ......## */ + 0x03, /* ......## */ + + /* Index: 0xe3, char: \xe4, offset: 0x0c6a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x3e, /* ..#####. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0xff, /* ######## */ + 0xc3, /* ##....## */ + 0x00, /* ........ */ + + /* Index: 0xe4, char: \xe5, offset: 0x0c78 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xf8, /* #####... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xfe, /* #######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe5, char: \xe6, offset: 0x0c86 */ + 0x00, /* ........ */ + 0x10, /* ...#.... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x10, /* ...#.... */ + 0x00, /* ........ */ + + /* Index: 0xe6, char: \xe7, offset: 0x0c94 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe7, char: \xe8, offset: 0x0ca2 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0x38, /* ..###... */ + 0x6c, /* .##.##.. */ + 0x6c, /* .##.##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe8, char: \xe9, offset: 0x0cb0 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xde, /* ##.####. */ + 0xf6, /* ####.##. */ + 0xe6, /* ###..##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xe9, char: \xea, offset: 0x0cbe */ + 0x6c, /* .##.##.. */ + 0x38, /* ..###... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xce, /* ##..###. */ + 0xde, /* ##.####. */ + 0xf6, /* ####.##. */ + 0xe6, /* ###..##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xea, char: \xeb, offset: 0x0ccc */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xcc, /* ##..##.. */ + 0xd8, /* ##.##... */ + 0xf0, /* ####.... */ + 0xf0, /* ####.... */ + 0xd8, /* ##.##... */ + 0xcc, /* ##..##.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xeb, char: \xec, offset: 0x0cda */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x1e, /* ...####. */ + 0x36, /* ..##.##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xec, char: \xed, offset: 0x0ce8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x82, /* #.....#. */ + 0xc6, /* ##...##. */ + 0xee, /* ###.###. */ + 0xfe, /* #######. */ + 0xd6, /* ##.#.##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xed, char: \xee, offset: 0x0cf6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xee, char: \xef, offset: 0x0d04 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xef, char: \xf0, offset: 0x0d12 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfe, /* #######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf0, char: \xf1, offset: 0x0d20 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7e, /* .######. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x1e, /* ...####. */ + 0x36, /* ..##.##. */ + 0x66, /* .##..##. */ + 0xc6, /* ##...##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf1, char: \xf2, offset: 0x0d2e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf2, char: \xf3, offset: 0x0d3c */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc0, /* ##...... */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf3, char: \xf4, offset: 0x0d4a */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xff, /* ######## */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x18, /* ...##... */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf4, char: \xf5, offset: 0x0d58 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf5, char: \xf6, offset: 0x0d66 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7c, /* .#####.. */ + 0x38, /* ..###... */ + 0x7c, /* .#####.. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf6, char: \xf7, offset: 0x0d74 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xfc, /* ######.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf7, char: \xf8, offset: 0x0d82 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x7c, /* .#####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf8, char: \xf9, offset: 0x0d90 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xe6, /* ###..##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xe6, /* ###..##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xf9, char: \xfa, offset: 0x0d9e */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x3c, /* ..####.. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfa, char: \xfb, offset: 0x0dac */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7e, /* .######. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfb, char: \xfc, offset: 0x0dba */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0x7c, /* .#####.. */ + 0xc6, /* ##...##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x3e, /* ..#####. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0xc6, /* ##...##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfc, char: \xfd, offset: 0x0dc8 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0xd6, /* ##.#.##. */ + 0x7f, /* .####### */ + 0x03, /* ......## */ + 0x03, /* ......## */ + + /* Index: 0xfd, char: \xfe, offset: 0x0dd6 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0xc6, /* ##...##. */ + 0x7e, /* .######. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x06, /* .....##. */ + 0x00, /* ........ */ + 0x00, /* ........ */ + + /* Index: 0xfe, char: \xff, offset: 0x0de4 */ + 0x00, /* ........ */ + 0x00, /* ........ */ + 0xe0, /* ###..... */ + 0x60, /* .##..... */ + 0x60, /* .##..... */ + 0x7c, /* .#####.. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x66, /* .##..##. */ + 0x7c, /* .#####.. */ + 0x00, /* ........ */ + 0x00, /* ........ */ +}; + +const font_char_desc_t _fonts_terminus_bold_8x14_koi8_r_descriptors[] = { + { 0x08, 0x0000 }, /* Index: 0x00, char: \x01 */ + { 0x08, 0x000e }, /* Index: 0x01, char: \x02 */ + { 0x08, 0x001c }, /* Index: 0x02, char: \x03 */ + { 0x08, 0x002a }, /* Index: 0x03, char: \x04 */ + { 0x08, 0x0038 }, /* Index: 0x04, char: \x05 */ + { 0x08, 0x0046 }, /* Index: 0x05, char: \x06 */ + { 0x08, 0x0054 }, /* Index: 0x06, char: \x07 */ + { 0x08, 0x0062 }, /* Index: 0x07, char: \x08 */ + { 0x08, 0x0070 }, /* Index: 0x08, char: \x09 */ + { 0x08, 0x007e }, /* Index: 0x09, char: \x0a */ + { 0x08, 0x008c }, /* Index: 0x0a, char: \x0b */ + { 0x08, 0x009a }, /* Index: 0x0b, char: \x0c */ + { 0x08, 0x00a8 }, /* Index: 0x0c, char: \x0d */ + { 0x08, 0x00b6 }, /* Index: 0x0d, char: \x0e */ + { 0x08, 0x00c4 }, /* Index: 0x0e, char: \x0f */ + { 0x08, 0x00d2 }, /* Index: 0x0f, char: \x10 */ + { 0x08, 0x00e0 }, /* Index: 0x10, char: \x11 */ + { 0x08, 0x00ee }, /* Index: 0x11, char: \x12 */ + { 0x08, 0x00fc }, /* Index: 0x12, char: \x13 */ + { 0x08, 0x010a }, /* Index: 0x13, char: \x14 */ + { 0x08, 0x0118 }, /* Index: 0x14, char: \x15 */ + { 0x08, 0x0126 }, /* Index: 0x15, char: \x16 */ + { 0x08, 0x0134 }, /* Index: 0x16, char: \x17 */ + { 0x08, 0x0142 }, /* Index: 0x17, char: \x18 */ + { 0x08, 0x0150 }, /* Index: 0x18, char: \x19 */ + { 0x08, 0x015e }, /* Index: 0x19, char: \x1a */ + { 0x08, 0x016c }, /* Index: 0x1a, char: \x1b */ + { 0x08, 0x017a }, /* Index: 0x1b, char: \x1c */ + { 0x08, 0x0188 }, /* Index: 0x1c, char: \x1d */ + { 0x08, 0x0196 }, /* Index: 0x1d, char: \x1e */ + { 0x08, 0x01a4 }, /* Index: 0x1e, char: \x1f */ + { 0x08, 0x01b2 }, /* Index: 0x1f, char: \x20 */ + { 0x08, 0x01c0 }, /* Index: 0x20, char: \x21 */ + { 0x08, 0x01ce }, /* Index: 0x21, char: \x22 */ + { 0x08, 0x01dc }, /* Index: 0x22, char: \x23 */ + { 0x08, 0x01ea }, /* Index: 0x23, char: \x24 */ + { 0x08, 0x01f8 }, /* Index: 0x24, char: \x25 */ + { 0x08, 0x0206 }, /* Index: 0x25, char: \x26 */ + { 0x08, 0x0214 }, /* Index: 0x26, char: \x27 */ + { 0x08, 0x0222 }, /* Index: 0x27, char: \x28 */ + { 0x08, 0x0230 }, /* Index: 0x28, char: \x29 */ + { 0x08, 0x023e }, /* Index: 0x29, char: \x2a */ + { 0x08, 0x024c }, /* Index: 0x2a, char: \x2b */ + { 0x08, 0x025a }, /* Index: 0x2b, char: \x2c */ + { 0x08, 0x0268 }, /* Index: 0x2c, char: \x2d */ + { 0x08, 0x0276 }, /* Index: 0x2d, char: \x2e */ + { 0x08, 0x0284 }, /* Index: 0x2e, char: \x2f */ + { 0x08, 0x0292 }, /* Index: 0x2f, char: \x30 */ + { 0x08, 0x02a0 }, /* Index: 0x30, char: \x31 */ + { 0x08, 0x02ae }, /* Index: 0x31, char: \x32 */ + { 0x08, 0x02bc }, /* Index: 0x32, char: \x33 */ + { 0x08, 0x02ca }, /* Index: 0x33, char: \x34 */ + { 0x08, 0x02d8 }, /* Index: 0x34, char: \x35 */ + { 0x08, 0x02e6 }, /* Index: 0x35, char: \x36 */ + { 0x08, 0x02f4 }, /* Index: 0x36, char: \x37 */ + { 0x08, 0x0302 }, /* Index: 0x37, char: \x38 */ + { 0x08, 0x0310 }, /* Index: 0x38, char: \x39 */ + { 0x08, 0x031e }, /* Index: 0x39, char: \x3a */ + { 0x08, 0x032c }, /* Index: 0x3a, char: \x3b */ + { 0x08, 0x033a }, /* Index: 0x3b, char: \x3c */ + { 0x08, 0x0348 }, /* Index: 0x3c, char: \x3d */ + { 0x08, 0x0356 }, /* Index: 0x3d, char: \x3e */ + { 0x08, 0x0364 }, /* Index: 0x3e, char: \x3f */ + { 0x08, 0x0372 }, /* Index: 0x3f, char: \x40 */ + { 0x08, 0x0380 }, /* Index: 0x40, char: \x41 */ + { 0x08, 0x038e }, /* Index: 0x41, char: \x42 */ + { 0x08, 0x039c }, /* Index: 0x42, char: \x43 */ + { 0x08, 0x03aa }, /* Index: 0x43, char: \x44 */ + { 0x08, 0x03b8 }, /* Index: 0x44, char: \x45 */ + { 0x08, 0x03c6 }, /* Index: 0x45, char: \x46 */ + { 0x08, 0x03d4 }, /* Index: 0x46, char: \x47 */ + { 0x08, 0x03e2 }, /* Index: 0x47, char: \x48 */ + { 0x08, 0x03f0 }, /* Index: 0x48, char: \x49 */ + { 0x08, 0x03fe }, /* Index: 0x49, char: \x4a */ + { 0x08, 0x040c }, /* Index: 0x4a, char: \x4b */ + { 0x08, 0x041a }, /* Index: 0x4b, char: \x4c */ + { 0x08, 0x0428 }, /* Index: 0x4c, char: \x4d */ + { 0x08, 0x0436 }, /* Index: 0x4d, char: \x4e */ + { 0x08, 0x0444 }, /* Index: 0x4e, char: \x4f */ + { 0x08, 0x0452 }, /* Index: 0x4f, char: \x50 */ + { 0x08, 0x0460 }, /* Index: 0x50, char: \x51 */ + { 0x08, 0x046e }, /* Index: 0x51, char: \x52 */ + { 0x08, 0x047c }, /* Index: 0x52, char: \x53 */ + { 0x08, 0x048a }, /* Index: 0x53, char: \x54 */ + { 0x08, 0x0498 }, /* Index: 0x54, char: \x55 */ + { 0x08, 0x04a6 }, /* Index: 0x55, char: \x56 */ + { 0x08, 0x04b4 }, /* Index: 0x56, char: \x57 */ + { 0x08, 0x04c2 }, /* Index: 0x57, char: \x58 */ + { 0x08, 0x04d0 }, /* Index: 0x58, char: \x59 */ + { 0x08, 0x04de }, /* Index: 0x59, char: \x5a */ + { 0x08, 0x04ec }, /* Index: 0x5a, char: \x5b */ + { 0x08, 0x04fa }, /* Index: 0x5b, char: \x5c */ + { 0x08, 0x0508 }, /* Index: 0x5c, char: \x5d */ + { 0x08, 0x0516 }, /* Index: 0x5d, char: \x5e */ + { 0x08, 0x0524 }, /* Index: 0x5e, char: \x5f */ + { 0x08, 0x0532 }, /* Index: 0x5f, char: \x60 */ + { 0x08, 0x0540 }, /* Index: 0x60, char: \x61 */ + { 0x08, 0x054e }, /* Index: 0x61, char: \x62 */ + { 0x08, 0x055c }, /* Index: 0x62, char: \x63 */ + { 0x08, 0x056a }, /* Index: 0x63, char: \x64 */ + { 0x08, 0x0578 }, /* Index: 0x64, char: \x65 */ + { 0x08, 0x0586 }, /* Index: 0x65, char: \x66 */ + { 0x08, 0x0594 }, /* Index: 0x66, char: \x67 */ + { 0x08, 0x05a2 }, /* Index: 0x67, char: \x68 */ + { 0x08, 0x05b0 }, /* Index: 0x68, char: \x69 */ + { 0x08, 0x05be }, /* Index: 0x69, char: \x6a */ + { 0x08, 0x05cc }, /* Index: 0x6a, char: \x6b */ + { 0x08, 0x05da }, /* Index: 0x6b, char: \x6c */ + { 0x08, 0x05e8 }, /* Index: 0x6c, char: \x6d */ + { 0x08, 0x05f6 }, /* Index: 0x6d, char: \x6e */ + { 0x08, 0x0604 }, /* Index: 0x6e, char: \x6f */ + { 0x08, 0x0612 }, /* Index: 0x6f, char: \x70 */ + { 0x08, 0x0620 }, /* Index: 0x70, char: \x71 */ + { 0x08, 0x062e }, /* Index: 0x71, char: \x72 */ + { 0x08, 0x063c }, /* Index: 0x72, char: \x73 */ + { 0x08, 0x064a }, /* Index: 0x73, char: \x74 */ + { 0x08, 0x0658 }, /* Index: 0x74, char: \x75 */ + { 0x08, 0x0666 }, /* Index: 0x75, char: \x76 */ + { 0x08, 0x0674 }, /* Index: 0x76, char: \x77 */ + { 0x08, 0x0682 }, /* Index: 0x77, char: \x78 */ + { 0x08, 0x0690 }, /* Index: 0x78, char: \x79 */ + { 0x08, 0x069e }, /* Index: 0x79, char: \x7a */ + { 0x08, 0x06ac }, /* Index: 0x7a, char: \x7b */ + { 0x08, 0x06ba }, /* Index: 0x7b, char: \x7c */ + { 0x08, 0x06c8 }, /* Index: 0x7c, char: \x7d */ + { 0x08, 0x06d6 }, /* Index: 0x7d, char: \x7e */ + { 0x08, 0x06e4 }, /* Index: 0x7e, char: \x7f */ + { 0x08, 0x06f2 }, /* Index: 0x7f, char: \x80 */ + { 0x08, 0x0700 }, /* Index: 0x80, char: \x81 */ + { 0x08, 0x070e }, /* Index: 0x81, char: \x82 */ + { 0x08, 0x071c }, /* Index: 0x82, char: \x83 */ + { 0x08, 0x072a }, /* Index: 0x83, char: \x84 */ + { 0x08, 0x0738 }, /* Index: 0x84, char: \x85 */ + { 0x08, 0x0746 }, /* Index: 0x85, char: \x86 */ + { 0x08, 0x0754 }, /* Index: 0x86, char: \x87 */ + { 0x08, 0x0762 }, /* Index: 0x87, char: \x88 */ + { 0x08, 0x0770 }, /* Index: 0x88, char: \x89 */ + { 0x08, 0x077e }, /* Index: 0x89, char: \x8a */ + { 0x08, 0x078c }, /* Index: 0x8a, char: \x8b */ + { 0x08, 0x079a }, /* Index: 0x8b, char: \x8c */ + { 0x08, 0x07a8 }, /* Index: 0x8c, char: \x8d */ + { 0x08, 0x07b6 }, /* Index: 0x8d, char: \x8e */ + { 0x08, 0x07c4 }, /* Index: 0x8e, char: \x8f */ + { 0x08, 0x07d2 }, /* Index: 0x8f, char: \x90 */ + { 0x08, 0x07e0 }, /* Index: 0x90, char: \x91 */ + { 0x08, 0x07ee }, /* Index: 0x91, char: \x92 */ + { 0x08, 0x07fc }, /* Index: 0x92, char: \x93 */ + { 0x08, 0x080a }, /* Index: 0x93, char: \x94 */ + { 0x08, 0x0818 }, /* Index: 0x94, char: \x95 */ + { 0x08, 0x0826 }, /* Index: 0x95, char: \x96 */ + { 0x08, 0x0834 }, /* Index: 0x96, char: \x97 */ + { 0x08, 0x0842 }, /* Index: 0x97, char: \x98 */ + { 0x08, 0x0850 }, /* Index: 0x98, char: \x99 */ + { 0x08, 0x085e }, /* Index: 0x99, char: \x9a */ + { 0x08, 0x086c }, /* Index: 0x9a, char: \x9b */ + { 0x08, 0x087a }, /* Index: 0x9b, char: \x9c */ + { 0x08, 0x0888 }, /* Index: 0x9c, char: \x9d */ + { 0x08, 0x0896 }, /* Index: 0x9d, char: \x9e */ + { 0x08, 0x08a4 }, /* Index: 0x9e, char: \x9f */ + { 0x08, 0x08b2 }, /* Index: 0x9f, char: \xa0 */ + { 0x08, 0x08c0 }, /* Index: 0xa0, char: \xa1 */ + { 0x08, 0x08ce }, /* Index: 0xa1, char: \xa2 */ + { 0x08, 0x08dc }, /* Index: 0xa2, char: \xa3 */ + { 0x08, 0x08ea }, /* Index: 0xa3, char: \xa4 */ + { 0x08, 0x08f8 }, /* Index: 0xa4, char: \xa5 */ + { 0x08, 0x0906 }, /* Index: 0xa5, char: \xa6 */ + { 0x08, 0x0914 }, /* Index: 0xa6, char: \xa7 */ + { 0x08, 0x0922 }, /* Index: 0xa7, char: \xa8 */ + { 0x08, 0x0930 }, /* Index: 0xa8, char: \xa9 */ + { 0x08, 0x093e }, /* Index: 0xa9, char: \xaa */ + { 0x08, 0x094c }, /* Index: 0xaa, char: \xab */ + { 0x08, 0x095a }, /* Index: 0xab, char: \xac */ + { 0x08, 0x0968 }, /* Index: 0xac, char: \xad */ + { 0x08, 0x0976 }, /* Index: 0xad, char: \xae */ + { 0x08, 0x0984 }, /* Index: 0xae, char: \xaf */ + { 0x08, 0x0992 }, /* Index: 0xaf, char: \xb0 */ + { 0x08, 0x09a0 }, /* Index: 0xb0, char: \xb1 */ + { 0x08, 0x09ae }, /* Index: 0xb1, char: \xb2 */ + { 0x08, 0x09bc }, /* Index: 0xb2, char: \xb3 */ + { 0x08, 0x09ca }, /* Index: 0xb3, char: \xb4 */ + { 0x08, 0x09d8 }, /* Index: 0xb4, char: \xb5 */ + { 0x08, 0x09e6 }, /* Index: 0xb5, char: \xb6 */ + { 0x08, 0x09f4 }, /* Index: 0xb6, char: \xb7 */ + { 0x08, 0x0a02 }, /* Index: 0xb7, char: \xb8 */ + { 0x08, 0x0a10 }, /* Index: 0xb8, char: \xb9 */ + { 0x08, 0x0a1e }, /* Index: 0xb9, char: \xba */ + { 0x08, 0x0a2c }, /* Index: 0xba, char: \xbb */ + { 0x08, 0x0a3a }, /* Index: 0xbb, char: \xbc */ + { 0x08, 0x0a48 }, /* Index: 0xbc, char: \xbd */ + { 0x08, 0x0a56 }, /* Index: 0xbd, char: \xbe */ + { 0x08, 0x0a64 }, /* Index: 0xbe, char: \xbf */ + { 0x08, 0x0a72 }, /* Index: 0xbf, char: \xc0 */ + { 0x08, 0x0a80 }, /* Index: 0xc0, char: \xc1 */ + { 0x08, 0x0a8e }, /* Index: 0xc1, char: \xc2 */ + { 0x08, 0x0a9c }, /* Index: 0xc2, char: \xc3 */ + { 0x08, 0x0aaa }, /* Index: 0xc3, char: \xc4 */ + { 0x08, 0x0ab8 }, /* Index: 0xc4, char: \xc5 */ + { 0x08, 0x0ac6 }, /* Index: 0xc5, char: \xc6 */ + { 0x08, 0x0ad4 }, /* Index: 0xc6, char: \xc7 */ + { 0x08, 0x0ae2 }, /* Index: 0xc7, char: \xc8 */ + { 0x08, 0x0af0 }, /* Index: 0xc8, char: \xc9 */ + { 0x08, 0x0afe }, /* Index: 0xc9, char: \xca */ + { 0x08, 0x0b0c }, /* Index: 0xca, char: \xcb */ + { 0x08, 0x0b1a }, /* Index: 0xcb, char: \xcc */ + { 0x08, 0x0b28 }, /* Index: 0xcc, char: \xcd */ + { 0x08, 0x0b36 }, /* Index: 0xcd, char: \xce */ + { 0x08, 0x0b44 }, /* Index: 0xce, char: \xcf */ + { 0x08, 0x0b52 }, /* Index: 0xcf, char: \xd0 */ + { 0x08, 0x0b60 }, /* Index: 0xd0, char: \xd1 */ + { 0x08, 0x0b6e }, /* Index: 0xd1, char: \xd2 */ + { 0x08, 0x0b7c }, /* Index: 0xd2, char: \xd3 */ + { 0x08, 0x0b8a }, /* Index: 0xd3, char: \xd4 */ + { 0x08, 0x0b98 }, /* Index: 0xd4, char: \xd5 */ + { 0x08, 0x0ba6 }, /* Index: 0xd5, char: \xd6 */ + { 0x08, 0x0bb4 }, /* Index: 0xd6, char: \xd7 */ + { 0x08, 0x0bc2 }, /* Index: 0xd7, char: \xd8 */ + { 0x08, 0x0bd0 }, /* Index: 0xd8, char: \xd9 */ + { 0x08, 0x0bde }, /* Index: 0xd9, char: \xda */ + { 0x08, 0x0bec }, /* Index: 0xda, char: \xdb */ + { 0x08, 0x0bfa }, /* Index: 0xdb, char: \xdc */ + { 0x08, 0x0c08 }, /* Index: 0xdc, char: \xdd */ + { 0x08, 0x0c16 }, /* Index: 0xdd, char: \xde */ + { 0x08, 0x0c24 }, /* Index: 0xde, char: \xdf */ + { 0x08, 0x0c32 }, /* Index: 0xdf, char: \xe0 */ + { 0x08, 0x0c40 }, /* Index: 0xe0, char: \xe1 */ + { 0x08, 0x0c4e }, /* Index: 0xe1, char: \xe2 */ + { 0x08, 0x0c5c }, /* Index: 0xe2, char: \xe3 */ + { 0x08, 0x0c6a }, /* Index: 0xe3, char: \xe4 */ + { 0x08, 0x0c78 }, /* Index: 0xe4, char: \xe5 */ + { 0x08, 0x0c86 }, /* Index: 0xe5, char: \xe6 */ + { 0x08, 0x0c94 }, /* Index: 0xe6, char: \xe7 */ + { 0x08, 0x0ca2 }, /* Index: 0xe7, char: \xe8 */ + { 0x08, 0x0cb0 }, /* Index: 0xe8, char: \xe9 */ + { 0x08, 0x0cbe }, /* Index: 0xe9, char: \xea */ + { 0x08, 0x0ccc }, /* Index: 0xea, char: \xeb */ + { 0x08, 0x0cda }, /* Index: 0xeb, char: \xec */ + { 0x08, 0x0ce8 }, /* Index: 0xec, char: \xed */ + { 0x08, 0x0cf6 }, /* Index: 0xed, char: \xee */ + { 0x08, 0x0d04 }, /* Index: 0xee, char: \xef */ + { 0x08, 0x0d12 }, /* Index: 0xef, char: \xf0 */ + { 0x08, 0x0d20 }, /* Index: 0xf0, char: \xf1 */ + { 0x08, 0x0d2e }, /* Index: 0xf1, char: \xf2 */ + { 0x08, 0x0d3c }, /* Index: 0xf2, char: \xf3 */ + { 0x08, 0x0d4a }, /* Index: 0xf3, char: \xf4 */ + { 0x08, 0x0d58 }, /* Index: 0xf4, char: \xf5 */ + { 0x08, 0x0d66 }, /* Index: 0xf5, char: \xf6 */ + { 0x08, 0x0d74 }, /* Index: 0xf6, char: \xf7 */ + { 0x08, 0x0d82 }, /* Index: 0xf7, char: \xf8 */ + { 0x08, 0x0d90 }, /* Index: 0xf8, char: \xf9 */ + { 0x08, 0x0d9e }, /* Index: 0xf9, char: \xfa */ + { 0x08, 0x0dac }, /* Index: 0xfa, char: \xfb */ + { 0x08, 0x0dba }, /* Index: 0xfb, char: \xfc */ + { 0x08, 0x0dc8 }, /* Index: 0xfc, char: \xfd */ + { 0x08, 0x0dd6 }, /* Index: 0xfd, char: \xfe */ + { 0x08, 0x0de4 }, /* Index: 0xfe, char: \xff */ +}; + +const font_info_t _fonts_terminus_bold_8x14_koi8_r_info = +{ + .height = 14, /* Character height */ + .c = 0, /* C */ + .char_start = 1, /* Start character */ + .char_end = 255, /* End character */ + .char_descriptors = _fonts_terminus_bold_8x14_koi8_r_descriptors, /* Character descriptor array */ + .bitmap = _fonts_terminus_bold_8x14_koi8_r_bitmaps, /* Character bitmap array */ +}; + +#endif /* _EXTRAS_FONTS_FONT_TERMINUS_BOLD_8X14_KOI8_R_H_ */ diff --git a/extras/fonts/defaults.mk b/extras/fonts/defaults.mk new file mode 100644 index 0000000..98344af --- /dev/null +++ b/extras/fonts/defaults.mk @@ -0,0 +1,39 @@ +######################################### +# Default built-in fonts +######################################### + +# FIXME + +FONTS_GLCD_5X7 ?= 1 + +FONTS_ROBOTO_8PT ?= 0 +FONTS_ROBOTO_10PT ?= 0 + +# BitOCRA +FONTS_BITOCRA_4X7 ?= 0 +FONTS_BITOCRA_6X11 ?= 0 +FONTS_BITOCRA_7X13 ?= 0 + +# Terminus, ISO8859-1 (Latin-1) +FONTS_TERMINUS_6X12_ISO8859_1 ?= 0 +FONTS_TERMINUS_8X14_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_8X14_ISO8859_1 ?= 0 +FONTS_TERMINUS_10X18_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_10X18_ISO8859_1 ?= 0 +FONTS_TERMINUS_11X22_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_11X22_ISO8859_1 ?= 0 +FONTS_TERMINUS_12X24_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_12X24_ISO8859_1 ?= 0 +FONTS_TERMINUS_14X28_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_14X28_ISO8859_1 ?= 0 +FONTS_TERMINUS_16X32_ISO8859_1 ?= 0 +FONTS_TERMINUS_BOLD_16X32_ISO8859_1 ?= 0 + +# Terminus, KOI8-R +FONTS_TERMINUS_6X12_KOI8_R ?= 0 +FONTS_TERMINUS_8X14_KOI8_R ?= 0 +FONTS_TERMINUS_BOLD_8X14_KOI8_R ?= 0 +FONTS_TERMINUS_14X28_KOI8_R ?= 0 +FONTS_TERMINUS_BOLD_14X28_KOI8_R ?= 0 +FONTS_TERMINUS_16X32_KOI8_R ?= 0 +FONTS_TERMINUS_BOLD_16X32_KOI8_R ?= 0 diff --git a/extras/fonts/fonts.c b/extras/fonts/fonts.c new file mode 100644 index 0000000..fb6bcc3 --- /dev/null +++ b/extras/fonts/fonts.c @@ -0,0 +1,259 @@ +/** + * LCD/OLED fonts library + * + * FIXME: License? + * + * @date: 8 dec. 2016 + * Author: zaltora + */ +#include "fonts.h" + +#ifndef FONTS_GLCD_5X7 +#define FONTS_GLCD_5X7 1 +#endif + +#if FONTS_GLCD_5X7 + #include "data/font_glcd_5x7.h" +#endif + +#if FONTS_ROBOTO_8PT + #include "data/font_roboto_8pt.h" +#endif +#if FONTS_ROBOTO_10PT + #include "data/font_roboto_10pt.h" +#endif + +#if FONTS_BITOCRA_4X7 + #include "data/font_bitocra_4x7_ascii.h" +#endif +#if FONTS_BITOCRA_6X11 + #include "data/font_bitocra_6x11_iso8859_1.h" +#endif +#if FONTS_BITOCRA_7X13 + #include "data/font_bitocra_7x13_iso8859_1.h" +#endif + +#if FONTS_TERMINUS_6X12_ISO8859_1 + #include "data/font_terminus_6x12_iso8859_1.h" +#endif +#if FONTS_TERMINUS_8X14_ISO8859_1 + #include "data/font_terminus_8x14_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_8X14_ISO8859_1 + #include "data/font_terminus_bold_8x14_iso8859_1.h" +#endif +#if FONTS_TERMINUS_10X18_ISO8859_1 + #include "data/font_terminus_10x18_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_10X18_ISO8859_1 + #include "data/font_terminus_bold_10x18_iso8859_1.h" +#endif +#if FONTS_TERMINUS_11X22_ISO8859_1 + #include "data/font_terminus_11x22_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_11X22_ISO8859_1 + #include "data/font_terminus_bold_11x22_iso8859_1.h" +#endif +#if FONTS_TERMINUS_12X24_ISO8859_1 + #include "data/font_terminus_12x24_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_12X24_ISO8859_1 + #include "data/font_terminus_bold_12x24_iso8859_1.h" +#endif +#if FONTS_TERMINUS_14X28_ISO8859_1 + #include "data/font_terminus_14x28_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_14X28_ISO8859_1 + #include "data/font_terminus_bold_14x28_iso8859_1.h" +#endif +#if FONTS_TERMINUS_16X32_ISO8859_1 + #include "data/font_terminus_16x32_iso8859_1.h" +#endif +#if FONTS_TERMINUS_BOLD_16X32_ISO8859_1 + #include "data/font_terminus_bold_16x32_iso8859_1.h" +#endif + +#if FONTS_TERMINUS_6X12_KOI8_R + #include "data/font_terminus_6x12_koi8_r.h" +#endif +#if FONTS_TERMINUS_8X14_KOI8_R + #include "data/font_terminus_8x14_koi8_r.h" +#endif +#if FONTS_TERMINUS_BOLD_8X14_KOI8_R + #include "data/font_terminus_bold_8x14_koi8_r.h" +#endif +#if FONTS_TERMINUS_14X28_KOI8_R + #include "data/font_terminus_14x28_koi8_r.h" +#endif +#if FONTS_TERMINUS_BOLD_14X28_KOI8_R + #include "data/font_terminus_bold_14x28_koi8_r.h" +#endif +#if FONTS_TERMINUS_16X32_KOI8_R + #include "data/font_terminus_16x32_koi8_r.h" +#endif +#if FONTS_TERMINUS_BOLD_16X32_KOI8_R + #include "data/font_terminus_bold_16x32_koi8_r.h" +#endif + +///////////////////////////////////////////// + +// FIXME: this declaration is noisy + +const font_info_t *font_builtin_fonts[] = +{ +#if FONTS_GLCD_5X7 + [FONT_FACE_GLCD5x7] = &_fonts_glcd_5x7_info, +#else + [FONT_FACE_GLCD5x7] = NULL, +#endif + +#if FONTS_ROBOTO_8PT + [FONT_FACE_ROBOTO_8PT] = &_fonts_roboto_8pt_info, +#else + [FONT_FACE_ROBOTO_8PT] = NULL, +#endif +#if FONTS_ROBOTO_10PT + [FONT_FACE_ROBOTO_10PT] = &_fonts_roboto_10pt_info, +#else + [FONT_FACE_ROBOTO_10PT] = NULL, +#endif + +#if FONTS_BITOCRA_4X7 + [FONT_FACE_BITOCRA_4X7] = &_fonts_bitocra_4x7_ascii_info, +#else + [FONT_FACE_BITOCRA_4X7] = NULL, +#endif +#if FONTS_BITOCRA_6X11 + [FONT_FACE_BITOCRA_6X11] = &_fonts_bitocra_6x11_iso8859_1_info, +#else + [FONT_FACE_BITOCRA_6X11] = NULL, +#endif +#if FONTS_BITOCRA_7X13 + [FONT_FACE_BITOCRA_7X13] = &_fonts_bitocra_7x13_iso8859_1_info, +#else + [FONT_FACE_BITOCRA_7X13] = NULL, +#endif + +#if FONTS_TERMINUS_6X12_ISO8859_1 + [FONT_FACE_TERMINUS_6X12_ISO8859_1] = &_fonts_terminus_6x12_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_6X12_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_8X14_ISO8859_1 + [FONT_FACE_TERMINUS_8X14_ISO8859_1] = &_fonts_terminus_8x14_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_8X14_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_8X14_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_8X14_ISO8859_1] = &_fonts_terminus_bold_8x14_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_8X14_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_10X18_ISO8859_1 + [FONT_FACE_TERMINUS_10X18_ISO8859_1] = &_fonts_terminus_10x18_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_10X18_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_10X18_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_10X18_ISO8859_1] = &_fonts_terminus_bold_10x18_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_10X18_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_11X22_ISO8859_1 + [FONT_FACE_TERMINUS_11X22_ISO8859_1] = &_fonts_terminus_11x22_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_11X22_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_11X22_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_11X22_ISO8859_1] = &_fonts_terminus_bold_11x22_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_11X22_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_12X24_ISO8859_1 + [FONT_FACE_TERMINUS_12X24_ISO8859_1] = &_fonts_terminus_12x24_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_12X24_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_12X24_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_12X24_ISO8859_1] = &_fonts_terminus_bold_12x24_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_12X24_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_14X28_ISO8859_1 + [FONT_FACE_TERMINUS_14X28_ISO8859_1] = &_fonts_terminus_14x28_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_14X28_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_14X28_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_14X28_ISO8859_1] = &_fonts_terminus_bold_14x28_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_14X28_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_16X32_ISO8859_1 + [FONT_FACE_TERMINUS_16X32_ISO8859_1] = &_fonts_terminus_16x32_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_16X32_ISO8859_1] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_16X32_ISO8859_1 + [FONT_FACE_TERMINUS_BOLD_16X32_ISO8859_1] = &_fonts_terminus_bold_16x32_iso8859_1_info, +#else + [FONT_FACE_TERMINUS_BOLD_16X32_ISO8859_1] = NULL, +#endif + +#if FONTS_TERMINUS_6X12_KOI8_R + [FONT_FACE_TERMINUS_6X12_KOI8_R] = &_fonts_terminus_6x12_koi8_r_info, +#else + [FONT_FACE_TERMINUS_6X12_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_8X14_KOI8_R + [FONT_FACE_TERMINUS_8X14_KOI8_R] = &_fonts_terminus_8x14_koi8_r_info, +#else + [FONT_FACE_TERMINUS_8X14_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_8X14_KOI8_R + [FONT_FACE_TERMINUS_BOLD_8X14_KOI8_R] = &_fonts_terminus_bold_8x14_koi8_r_info, +#else + [FONT_FACE_TERMINUS_BOLD_8X14_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_14X28_KOI8_R + [FONT_FACE_TERMINUS_14X28_KOI8_R] = &_fonts_terminus_14x28_koi8_r_info, +#else + [FONT_FACE_TERMINUS_14X28_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_14X28_KOI8_R + [FONT_FACE_TERMINUS_BOLD_14X28_KOI8_R] = &_fonts_terminus_bold_14x28_koi8_r_info, +#else + [FONT_FACE_TERMINUS_BOLD_14X28_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_16X32_KOI8_R + [FONT_FACE_TERMINUS_16X32_KOI8_R] = &_fonts_terminus_16x32_koi8_r_info, +#else + [FONT_FACE_TERMINUS_16X32_KOI8_R] = NULL, +#endif +#if FONTS_TERMINUS_BOLD_16X32_KOI8_R + [FONT_FACE_TERMINUS_BOLD_16X32_KOI8_R] = &_fonts_terminus_bold_16x32_koi8_r_info, +#else + [FONT_FACE_TERMINUS_BOLD_16X32_KOI8_R] = NULL, +#endif +}; + +const size_t font_builtin_fonts_count = (sizeof(font_builtin_fonts) / sizeof(font_info_t *)); + +///////////////////////////////////////////// + +uint16_t font_measure_string(const font_info_t *fnt, const char *s) +{ + if (!s || !fnt) return 0; + + uint16_t res = 0; + while (*s) + { + const font_char_desc_t *d = font_get_char_desc(fnt, *s); + if (d) + res += d->width + fnt->c; + s++; + } + + return res > 0 ? res - fnt->c : 0; +} + diff --git a/extras/fonts/fonts.h b/extras/fonts/fonts.h new file mode 100644 index 0000000..e5856d9 --- /dev/null +++ b/extras/fonts/fonts.h @@ -0,0 +1,105 @@ +/** + * LCD/OLED fonts library + * + * Copyright (c) 2016 Ruslan V. Uss (https://github.com/UncleRus), + * Zaltora (https://github.com/Zaltora) + * MIT Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_FONTS_H_ +#define _EXTRAS_FONTS_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + FONT_FACE_GLCD5x7 = 0, + + FONT_FACE_ROBOTO_8PT, + FONT_FACE_ROBOTO_10PT, + + FONT_FACE_BITOCRA_4X7, + FONT_FACE_BITOCRA_6X11, + FONT_FACE_BITOCRA_7X13, + + FONT_FACE_TERMINUS_6X12_ISO8859_1, + FONT_FACE_TERMINUS_8X14_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_8X14_ISO8859_1, + FONT_FACE_TERMINUS_10X18_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_10X18_ISO8859_1, + FONT_FACE_TERMINUS_11X22_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_11X22_ISO8859_1, + FONT_FACE_TERMINUS_12X24_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_12X24_ISO8859_1, + FONT_FACE_TERMINUS_14X28_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_14X28_ISO8859_1, + FONT_FACE_TERMINUS_16X32_ISO8859_1, + FONT_FACE_TERMINUS_BOLD_16X32_ISO8859_1, + + FONT_FACE_TERMINUS_6X12_KOI8_R, + FONT_FACE_TERMINUS_8X14_KOI8_R, + FONT_FACE_TERMINUS_BOLD_8X14_KOI8_R, + FONT_FACE_TERMINUS_14X28_KOI8_R, + FONT_FACE_TERMINUS_BOLD_14X28_KOI8_R, + FONT_FACE_TERMINUS_16X32_KOI8_R, + FONT_FACE_TERMINUS_BOLD_16X32_KOI8_R, +} font_face_t; + +/** + * Character descriptor + */ +typedef struct _font_char_desc +{ + uint8_t width; ///< Character width in pixel + uint16_t offset; ///< Offset of this character in bitmap +} font_char_desc_t; + +/** + * Font information + */ +typedef struct _font_info +{ + uint8_t height; ///< Character height in pixel, all characters have same height + uint8_t c; ///< Simulation of "C" width in TrueType term, the space between adjacent characters + char char_start; ///< First character + char char_end; ///< Last character + const font_char_desc_t *char_descriptors; ///< descriptor for each character + const uint8_t *bitmap; ///< Character bitmap +} font_info_t; + +/** + * Built-in fonts + */ +extern const font_info_t *font_builtin_fonts[]; +extern const size_t font_builtin_fonts_count; + +/** + * Find character decriptor in font + * @param fnt Poniter to font information struct + * @param c Character + * @return Character descriptor or NULL if no character found + */ +inline const font_char_desc_t *font_get_char_desc(const font_info_t *fnt, char c) +{ + return c < fnt->char_start || c > fnt->char_end + ? NULL + : fnt->char_descriptors + c - fnt->char_start; +} + +/** + * Calculate width of string in pixels + * @param fnt Poniter to font information struct + * @param s String + * @return String width + */ +uint16_t font_measure_string(const font_info_t *fnt, const char *s); + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_FONTS_H_ */ diff --git a/extras/fonts/tools/create_font.py b/extras/fonts/tools/create_font.py new file mode 100755 index 0000000..a001f66 --- /dev/null +++ b/extras/fonts/tools/create_font.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import sys, os +from PIL import Image, ImageFont, ImageDraw +import argparse +import jinja2 +import re +import time + +def gen_char(index, c, im): + bw = (im.size[0] + 7) // 8 + res = { + 'index': index, + 'code': c, + 'offset': bw * im.size[1] * index, + 'rows': [] + } + + data = tuple(im.getdata()) + + for row in range(im.size[1]): + r = { + 'data': [], + 'asc': [], + } + for b in range(bw): + byte = 0 + for i in range(8): + idx = b * 8 + i + bit = data[row * im.size[0] + idx] if idx < im.size[0] else 0 + if bit: + byte |= 1 + r['asc'].append('#') + else: + r['asc'].append('.') + byte <<= 1 + r['data'].append(byte >> 1) + + r['asc'] = ''.join(r['asc']) + res['rows'].append(r) + + return res + + +def main(args): + fnt = ImageFont.load(args.font) + size = fnt.getsize('A') + + im = Image.new('RGB', size) + draw = ImageDraw.Draw(im) + + if args.last - args.first < 1: + raise ValueError('Invalid --first or --last') + + chars = [] + for idx in range(args.last - args.first + 1): + draw.rectangle(((0, 0), size), fill = 0) + draw.text((0, 0), chr(idx + args.first), font=fnt) + chars.append(gen_char(idx, idx + args.first, im.convert('1'))) + + env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__))), finalize=lambda x: '' if x is None else x) + print(env.get_template(args.template).render({ + 'font': { + 'name': args.name, + 'size': size, + 'charset': args.charset, + 'first': args.first, + 'last': args.last, + }, + 'chars': chars, + 'created': time.ctime() + })) + + +_CLEAN_RE = re.compile(r'[^a-z0-9_]', re.I) + +def clean_str(s): + return _CLEAN_RE.sub('_', s) + +if __name__ == "__main__": + parser=argparse.ArgumentParser(description='Fixed fonts converter') + parser.add_argument('-f', '--font', type=str, required=True, help='PIL font filename') + parser.add_argument('-n', '--name', type=clean_str, required=True, help='Font name') + parser.add_argument('-c', '--charset', type=clean_str, required=True, help='Charset') + parser.add_argument('--first', type=int, help='First character', default=1) + parser.add_argument('--last', type=int, help='Last character', default=255) + parser.add_argument('-t', '--template', type=str, help='Template filename', default='template.c') + main(parser.parse_args(sys.argv[1:])) + diff --git a/extras/fonts/tools/template.c b/extras/fonts/tools/template.c new file mode 100644 index 0000000..49938f6 --- /dev/null +++ b/extras/fonts/tools/template.c @@ -0,0 +1,51 @@ +{%- set header_id -%} +_EXTRAS_FONTS_FONT_{{ font.name|upper }}_{{ font.size[0] }}X{{ font.size[1] }}_{{ font.charset|upper }}_H_ +{%- endset -%} +{%- set font_size -%} +{{ font.size[0] }}x{{ font.size[1] }} +{%- endset -%} +{%- set font_prefix -%} +_fonts_{{ font.name|lower }}_{{ font_size }}_{{ font.charset|lower }} +{%- endset -%} +/** + * This file contains generated binary font data. + * + * Font: {{ font.name }} + * Size: {{ font_size }} + * Charset: {{ font.charset }} + * {{ chars|length }} characters ({{ font.first }}..{{ font.last }}) + * + * License: FIXME + * + * Generated: {{ created }} + */ +#ifndef {{ header_id }} +#define {{ header_id }} + +static const uint8_t {{ font_prefix }}_bitmaps[] = { + {%- for char in chars %} + + /* {{ 'Index: 0x%02x, char: \\x%02x, offset: 0x%04x'|format(char.index, char.code, char.offset) }} */ + {%- for row in char.rows %} + {% for byte in row.data %}{{ '0x%02x'|format(byte) }}, {% endfor -%} /* {{ row.asc }} */ + {%- endfor -%} + {%- endfor %} +}; + +const font_char_desc_t {{ font_prefix }}_descriptors[] = { + {%- for char in chars %} + { {{ '0x%02x'|format(font.size[0]) }}, {{ '0x%04x'|format(char.offset) }} }, /* {{ 'Index: 0x%02x, char: \\x%02x'|format(char.index, char.code) }} */ + {%- endfor %} +}; + +const font_info_t {{ font_prefix }}_info = +{ + .height = {{ font.size[1] }}, /* Character height */ + .c = 0, /* C */ + .char_start = {{ font.first }}, /* Start character */ + .char_end = {{ font.last }}, /* End character */ + .char_descriptors = {{ font_prefix }}_descriptors, /* Character descriptor array */ + .bitmap = {{ font_prefix }}_bitmaps, /* Character bitmap array */ +}; + +#endif /* {{ header_id }} */ diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index 06370a8..dd198f4 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -3,10 +3,11 @@ * * Copyright (c) 2016 urx (https://github.com/urx), * Ruslan V. Uss (https://github.com/UncleRus) + * Zaltora (https://github.com/Zaltora) * * MIT Licensed as described in the file LICENSE * - * @todo Scrolling, fonts + * @todo HW scrolling, sprites */ #include "ssd1306.h" #include @@ -62,12 +63,22 @@ #define SSD1306_CHARGE_PUMP_EN (0x14) #define SSD1306_CHARGE_PUMP_DIS (0x10) +#define SSD1306_SCROLL_HOR_LEFT (0x27) +#define SSD1306_SCROLL_HOR_RIGHT (0x26) +#define SSD1306_SCROLL_HOR_VER_LEFT (0x2A) +#define SSD1306_SCROLL_HOR_VER_RIGHT (0x29) +#define SSD1306_SCROLL_ENABLE (0x2F) +#define SSD1306_SCROLL_DISABLE (0x2E) + #ifdef SSD1306_DEBUG #define debug(fmt, ...) printf("%s: " fmt "\n", "SSD1306", ## __VA_ARGS__) #else #define debug(fmt, ...) #endif +#define abs(x) ((x)<0 ? -(x) : (x)) +#define swap(x, y) do { typeof(x) temp##x##y = x; x = y; y = temp##x##y; } while (0) + /* Issue a command to SSD1306 device * I2C proto format: * |S|Slave Address|W|ACK|0x00|Command|Ack|P| @@ -403,4 +414,603 @@ int ssd1306_load_xbm(const ssd1306_t *dev, uint8_t *xbm, uint8_t *fb) return ssd1306_load_frame_buffer(dev, fb); } +int ssd1306_draw_pixel(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ssd1306_color_t color) +{ + uint16_t index; + if ((x >= dev->width) || (x < 0) || (y >= dev->height) || (y < 0)) + return -EINVAL; + + index = x + (y / 8) * dev->width; + switch (color) + { + case OLED_COLOR_WHITE: + fb[index] |= (1 << (y & 7)); + break; + case OLED_COLOR_BLACK: + fb[index] &= ~(1 << (y & 7)); + break; + case OLED_COLOR_INVERT: + fb[index] ^= (1 << (y & 7)); + break; + default: + break; + } + return 0; +} + +int ssd1306_draw_hline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, ssd1306_color_t color) +{ + uint16_t index; + uint8_t mask, t; + + // boundary check + if ((x >= dev->width) || (x < 0) || (y >= dev->height) || (y < 0)) + return -EINVAL; + if (w == 0) + return -EINVAL; + if (x + w > dev->width) + w = dev->width - x; + + t = w; + index = x + (y / 8) * dev->width; + mask = 1 << (y & 7); + switch (color) + { + case OLED_COLOR_WHITE: + while (t--) + { + fb[index] |= mask; + ++index; + } + break; + case OLED_COLOR_BLACK: + mask = ~mask; + while (t--) + { + fb[index] &= mask; + ++index; + } + break; + case OLED_COLOR_INVERT: + while (t--) + { + fb[index] ^= mask; + ++index; + } + break; + default: + break; + } + return 0; +} + +int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t h, ssd1306_color_t color) +{ + uint16_t index; + uint8_t mask, mod, t; + + // boundary check + if ((x >= dev->width) || (x < 0) || (y >= dev->height) || (y < 0)) + return -EINVAL; + if (h == 0) + return -EINVAL; + if (y + h > dev->height) + h = dev->height - y; + + t = h; + index = x + (y / 8) * dev->width; + mod = y & 7; + if (mod) // partial line that does not fit into byte at top + { + // Magic from Adafruit + mod = 8 - mod; + static const uint8_t premask[8] = { 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE }; + mask = premask[mod]; + if (t < mod) + mask &= (0xFF >> (mod - t)); + switch (color) + { + case OLED_COLOR_WHITE: + fb[index] |= mask; + break; + case OLED_COLOR_BLACK: + fb[index] &= ~mask; + break; + case OLED_COLOR_INVERT: + fb[index] ^= mask; + break; + default: + break; + } + + if (t < mod) + return 0; + t -= mod; + index += dev->width; + } + if (t >= 8) // byte aligned line at middle + { + switch (color) + { + case OLED_COLOR_WHITE: + do + { + fb[index] = 0xff; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + case OLED_COLOR_BLACK: + do + { + fb[index] = 0x00; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + case OLED_COLOR_INVERT: + do + { + fb[index] = ~fb[index]; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + default: + break; + } + } + if (t) // partial line at bottom + { + mod = t & 7; + static const uint8_t postmask[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; + mask = postmask[mod]; + switch (color) + { + case OLED_COLOR_WHITE: + fb[index] |= mask; + break; + case OLED_COLOR_BLACK: + fb[index] &= ~mask; + break; + case OLED_COLOR_INVERT: + fb[index] ^= mask; + break; + default: + break; + } + } + return 0; +} + +int ssd1306_draw_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color) +{ + int err = 0; + if ((err = ssd1306_draw_hline(dev, fb, x, y, w, color))) + return err; + if ((err = ssd1306_draw_hline(dev, fb, x, y + h - 1, w, color))) + return err; + if ((err = ssd1306_draw_vline(dev, fb, x, y, h, color))) + return err; + return ssd1306_draw_vline(dev, fb, x + w - 1, y, h, color); +} + + +int ssd1306_fill_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color) +{ + // Can be optimized? + uint8_t i; + int err = 0; + for (i = x; i < x + w; ++i) + if ((err = ssd1306_draw_vline(dev, fb, i, y, h, color))) + return err; + return 0; +} + +int ssd1306_draw_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, uint8_t r, ssd1306_color_t color) +{ + // Refer to http://en.wikipedia.org/wiki/Midpoint_circle_algorithm for the algorithm + int8_t x = r; + int8_t y = 1; + int16_t radius_err = 1 - x; + int err = 0; + + if (r == 0) + return -EINVAL; + + if ((err = ssd1306_draw_pixel(dev, fb, x0 - r, y0, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 + r, y0, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0, y0 - r, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0, y0 + r, color))) + return err; + + while (x >= y) + { + if ((err = ssd1306_draw_pixel(dev, fb, x0 + x, y0 + y, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 - x, y0 + y, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 + x, y0 - y, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 - x, y0 - y, color))) + return err; + if (x != y) + { + /* Otherwise the 4 drawings below are the same as above, causing + * problem when color is INVERT + */ + if ((err = ssd1306_draw_pixel(dev, fb, x0 + y, y0 + x, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 - y, y0 + x, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 + y, y0 - x, color))) + return err; + if ((err = ssd1306_draw_pixel(dev, fb, x0 - y, y0 - x, color))) + return err; + } + ++y; + if (radius_err < 0) { + radius_err += 2 * y + 1; + } + else { + --x; + radius_err += 2 * (y - x + 1); + } + + } + return 0; +} + +int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, uint8_t r, ssd1306_color_t color) +{ + int8_t x = 1; + int8_t y = r; + int16_t radius_err = 1 - y; + int8_t x1; + int err = 0; + + if (r == 0) + return -EINVAL; + + if ((err = ssd1306_draw_vline(dev, fb, x0, y0 - r, 2 * r + 1, color))) // Center vertical line + return err; + while (y >= x) + { + if ((err = ssd1306_draw_vline(dev, fb, x0 - x, y0 - y, 2 * y + 1, color))) + return err; + if ((err = ssd1306_draw_vline(dev, fb, x0 + x, y0 - y, 2 * y + 1, color))) + return err; + if (color != OLED_COLOR_INVERT) + { + if ((err = ssd1306_draw_vline(dev, fb, x0 - y, y0 - x, 2 * x + 1, color))) + return err; + if ((err = ssd1306_draw_vline(dev, fb, x0 + y, y0 - x, 2 * x + 1, color))) + return err; + } + ++x; + if (radius_err < 0) { + radius_err += 2 * x + 1; + } + else { + --y; + radius_err += 2 * (x - y + 1); + } + } + + if (color == OLED_COLOR_INVERT) + { + x1 = x; // Save where we stopped + + y = 1; + x = r; + radius_err = 1 - x; + if ((err = ssd1306_draw_hline(dev, fb, x0 + x1, y0, r - x1 + 1, color))) + return err; + if ((err = ssd1306_draw_hline(dev, fb, x0 - r, y0, r - x1 + 1, color))) + return err; + while (x >= y) + { + if ((err = ssd1306_draw_hline(dev, fb, x0 + x1, y0 - y, x - x1 + 1, color))) + return err; + if ((err = ssd1306_draw_hline(dev, fb, x0 + x1, y0 + y, x - x1 + 1, color))) + return err; + if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 - y, x - x1 + 1, color))) + return err; + if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 + y, x - x1 + 1, color))) + return err; + ++y; + if (radius_err < 0) { + radius_err += 2 * y + 1; + } + else { + --x; + radius_err += 2 * (y - x + 1); + } + } + } + return 0; +} + +int ssd1306_draw_line(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, + int16_t x1, int16_t y1, ssd1306_color_t color) +{ + if ((x0 >= dev->width) || (x0 < 0) || (y0 >= dev->height) || (y0 < 0)) + return -EINVAL; + if ((x1 >= dev->width) || (x1 < 0) || (y1 >= dev->height) || (y1 < 0)) + return -EINVAL; + + int err; + bool steep = abs(y1 - y0) > abs(x1 - x0); + if (steep) { + swap(x0, y0); + swap(x1, y1); + } + + if (x0 > x1) { + swap(x0, x1); + swap(y0, y1); + } + + int16_t dx, dy; + dx = x1 - x0; + dy = abs(y1 - y0); + + int16_t errx = dx / 2; + int16_t ystep; + + if (y0 < y1) { + ystep = 1; + } else { + ystep = -1; + } + + for (; x0 <= x1; x0++) { + if (steep) { + if ((err = ssd1306_draw_pixel(dev, fb, y0, x0, color))) + return err; + } else { + if ((err = ssd1306_draw_pixel(dev, fb, x0, y0, color))) + return err; + } + errx -= dy; + if (errx < 0) { + y0 += ystep; + errx += dx; + } + } + return 0; +} + +int ssd1306_draw_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, + int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, + ssd1306_color_t color) +{ + int err; + if ((err = ssd1306_draw_line(dev, fb, x0, y0, x1, y1, color))) + return err; + if ((err = ssd1306_draw_line(dev, fb, x1, y1, x2, y2, color))) + return err; + return ssd1306_draw_line(dev, fb, x2, y2, x0, y0, color); +} + +int ssd1306_fill_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, + int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, + ssd1306_color_t color) +{ + int16_t a, b, y, last; + int err; + + // Sort coordinates by Y order (y2 >= y1 >= y0) + if (y0 > y1) { + swap(y0, y1); swap(x0, x1); + } + if (y1 > y2) { + swap(y2, y1); swap(x2, x1); + } + if (y0 > y1) { + swap(y0, y1); swap(x0, x1); + } + + if(y0 == y2) { // Handle awkward all-on-same-line case as its own thing + a = b = x0; + if (x1 < a) a = x1; + else if (x1 > b) b = x1; + if (x2 < a) a = x2; + else if (x2 > b) b = x2; + if ((err = ssd1306_draw_hline(dev, fb, a, y0, b - a + 1, color))) + return err; + return 0; + } + + int16_t + dx01 = x1 - x0, + dy01 = y1 - y0, + dx02 = x2 - x0, + dy02 = y2 - y0, + dx12 = x2 - x1, + dy12 = y2 - y1, + sa = 0, + sb = 0; + + // For upper part of triangle, find scanline crossings for segments + // 0-1 and 0-2. If y1=y2 (flat-bottomed triangle), the scanline y1 + // is included here (and second loop will be skipped, avoiding a /0 + // error there), otherwise scanline y1 is skipped here and handled + // in the second loop...which also avoids a /0 error here if y0=y1 + // (flat-topped triangle). + if (y1 == y2) last = y1; // Include y1 scanline + else last = y1 - 1; // Skip it + + for (y = y0; y <= last; y++) { + a = x0 + sa / dy01; + b = x0 + sb / dy02; + sa += dx01; + sb += dx02; + /* longhand: + a = x0 + (x1 - x0) * (y - y0) / (y1 - y0); + b = x0 + (x2 - x0) * (y - y0) / (y2 - y0); + */ + if (a > b) swap(a, b); + if ((err = ssd1306_draw_hline(dev, fb, a, y, b - a + 1, color))) + return err; + } + + // For lower part of triangle, find scanline crossings for segments + // 0-2 and 1-2. This loop is skipped if y1=y2. + sa = dx12 * (y - y1); + sb = dx02 * (y - y0); + for (; y <= y2; y++) { + a = x1 + sa / dy12; + b = x0 + sb / dy02; + sa += dx12; + sb += dx02; + /* longhand: + a = x1 + (x2 - x1) * (y - y1) / (y2 - y1); + b = x0 + (x2 - x0) * (y - y0) / (y2 - y0); + */ + if (a > b) swap(a, b); + if ((err = ssd1306_draw_hline(dev, fb, a, y, b - a + 1, color))) + return err; + } + return 0; +} + +int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, + const font_info_t *font, uint8_t x, uint8_t y, char c, + ssd1306_color_t foreground, ssd1306_color_t background) +{ + uint8_t i, j; + const uint8_t *bitmap; + uint8_t line = 0; + int err; + + if (font == NULL) + return 0; + + const font_char_desc_t *d = font_get_char_desc(font, c); + if (d == NULL) + return 0; + + bitmap = font->bitmap + d->offset; + for (j = 0; j < font->height; ++j) { + for (i = 0; i < d->width; ++i) { + if (i % 8 == 0) { + line = bitmap[(d->width + 7) / 8 * j + i / 8]; // line data + } + if (line & 0x80) { + err = ssd1306_draw_pixel(dev, fb, x + i, y + j, foreground); + } + else { + switch (background) + { + case OLED_COLOR_TRANSPARENT: + // Not drawing for transparent background + break; + case OLED_COLOR_WHITE: + case OLED_COLOR_BLACK: + err = ssd1306_draw_pixel(dev, fb, x + i, y + j, background); + break; + case OLED_COLOR_INVERT: + // I don't know why I need invert background + break; + } + } + if (err) return -ERANGE ; + line = line << 1; + } + } + return d->width; +} + +int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, + const font_info_t *font, uint8_t x, uint8_t y, char *str, + ssd1306_color_t foreground, ssd1306_color_t background) +{ + uint8_t t = x; + int err; + + if (font == NULL || str == NULL) + return 0; + + while (*str) + { + if ((err = ssd1306_draw_char(dev, fb, font, x, y, *str, foreground, background)) < 0 ) + return err; + x += err; + ++str; + if (*str) + x += font->c; + } + return x - t; +} + +int ssd1306_stop_scroll(const ssd1306_t *dev) +{ + return ssd1306_command(dev, SSD1306_SCROLL_DISABLE); +} + +int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, ssd1306_scroll_t frame) +{ + int err; + + if (way) + { + if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_LEFT))) + return err; + } + else + { + if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_RIGHT))) + return err; + } + if (!ssd1306_command(dev, 0x00) && //dummy + !ssd1306_command(dev, (start&0x07)) && + !ssd1306_command(dev, frame) && + !ssd1306_command(dev, (stop&0x07)) && + !ssd1306_command(dev, 0x00) && //dummy + !ssd1306_command(dev, 0xFF) && //dummy + !ssd1306_command(dev, SSD1306_SCROLL_ENABLE)) { + return 0; + } + return -EIO; +} + +int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame) +{ + //this function dont work well if no vertical setting. + if ((!dy) || (dy > 63)) + return -EINVAL; + int err; + + //vertical scrolling selection (all screen) + if ((err = ssd1306_command(dev, 0xA3))) + return err; + if ((err = ssd1306_command(dev, 0))) + return err; + if ((err = ssd1306_command(dev, dev->height))) + return err; + + if (way) + { + if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_VER_LEFT))) + return err; + } + else + { + if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_VER_RIGHT))) + return err; + } + if (!ssd1306_command(dev, 0x00) && //dummy + !ssd1306_command(dev, (start&0x07)) && + !ssd1306_command(dev, frame) && + !ssd1306_command(dev, (stop&0x07)) && + !ssd1306_command(dev, dy) && + !ssd1306_command(dev, SSD1306_SCROLL_ENABLE)) { + return 0; + } + return -EIO; +} diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index b4309f9..d8cb4d2 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -3,6 +3,7 @@ * * Copyright (c) 2016 urx (https://github.com/urx), * Ruslan V. Uss (https://github.com/UncleRus) + * Zaltora (https://github.com/Zaltora) * * MIT Licensed as described in the file LICENSE */ @@ -12,6 +13,7 @@ #include #include #include +#include #include "config.h" @@ -63,6 +65,33 @@ typedef enum SSD1306_ADDR_MODE_PAGE } ssd1306_mem_addr_mode_t; +/** + * Drawing color + */ +typedef enum +{ + OLED_COLOR_TRANSPARENT = -1, //!< Transparent (not drawing) + OLED_COLOR_BLACK = 0, //!< Black (pixel off) + OLED_COLOR_WHITE = 1, //!< White (or blue, yellow, pixel on) + OLED_COLOR_INVERT = 2, //!< Invert pixel (XOR) +} ssd1306_color_t; + +/** + * Scrolling time frame interval + */ +typedef enum +{ + FRAME_5 = 0, + FRAME_64, + FRAME_128, + FRAME_256, + FRAME_3, + FRAME_4, + FRAME_25, + FRAME_2 + +} ssd1306_scroll_t; + /** * Issue a single command on SSD1306. * @param dev Pointer to device descriptor @@ -275,6 +304,192 @@ int ssd1306_set_deseltct_lvl(const ssd1306_t *dev, uint8_t lvl); */ int ssd1306_set_whole_display_lighting(const ssd1306_t *dev, bool light); +/** + * Draw one pixel + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x X coordinate + * @param y Y coordinate + * @param color Color of the pixel + * @return Non-zero if error occured + */ +int ssd1306_draw_pixel(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ssd1306_color_t color); + +/** + * Draw a horizontal line + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x X coordinate or starting (left) point + * @param y Y coordinate or starting (left) point + * @param w Line width + * @param color Color of the line + * @return Non-zero if error occured + */ +int ssd1306_draw_hline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, ssd1306_color_t color); + +/** + * Draw a vertical line + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x X coordinate or starting (top) point + * @param y Y coordinate or starting (top) point + * @param h Line height + * @param color Color of the line + * @return Non-zero if error occured + */ +int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t h, ssd1306_color_t color); + +/** + * Draw a line + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x0 First x point coordinate + * @param y0 First y point coordinate + * @param x1 Second x point coordinate + * @param y1 Second y point coordinate + * @param color Color of the line + * @return Non-zero if error occured + */ +int ssd1306_draw_line(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, ssd1306_color_t color); + +/** + * Draw a rectangle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x X coordinate or starting (top left) point + * @param y Y coordinate or starting (top left) point + * @param w Rectangle width + * @param h Rectangle height + * @param color Color of the rectangle border + * @return Non-zero if error occured + */ +int ssd1306_draw_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color); + +/** + * Draw a filled rectangle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x X coordinate or starting (top left) point + * @param y Y coordinate or starting (top left) point + * @param w Rectangle width + * @param h Rectangle height + * @param color Color of the rectangle + * @return Non-zero if error occured + */ +int ssd1306_fill_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color); + +/** + * Draw a circle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x0 X coordinate or center + * @param y0 Y coordinate or center + * @param r Radius + * @param color Color of the circle border + * @return Non-zero if error occured + */ +int ssd1306_draw_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, uint8_t r, ssd1306_color_t color); + +/** + * Draw a filled circle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x0 X coordinate or center + * @param y0 Y coordinate or center + * @param r Radius + * @param color Color of the circle + * @return Non-zero if error occured + */ +int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, uint8_t r, ssd1306_color_t color); + +/** + * Draw a triangle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x0 First x point coordinate + * @param y0 First y point coordinate + * @param x1 Second x point coordinate + * @param y1 Second y point coordinate + * @param x2 third x point coordinate + * @param y2 third y point coordinate + * @param color Color of the triangle border + * @return Non-zero if error occured + */ +int ssd1306_draw_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, ssd1306_color_t color); + +/** + * Draw a filled triangle + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param x0 First x point coordinate + * @param y0 First y point coordinate + * @param x1 Second x point coordinate + * @param y1 Second y point coordinate + * @param x2 third x point coordinate + * @param y2 third y point coordinate + * @param color Color of the triangle + * @return Non-zero if error occured + */ +int ssd1306_fill_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, ssd1306_color_t color); + +/** + * Draw one character using currently selected font + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param font Pointer to font info structure + * @param x X position of character (top-left corner) + * @param y Y position of character (top-left corner) + * @param c The character to draw + * @param foreground Character color + * @param background Background color + * @return Width of the character or negative value if error occured + */ +int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char c, ssd1306_color_t foreground, ssd1306_color_t background); + +/** + * Draw one character using currently selected font + * @param dev Pointer to device descriptor + * @param fb Pointer to framebuffer. Framebuffer size = width * height / 8 + * @param font Pointer to font info structure + * @param x X position of character (top-left corner) + * @param y Y position of character (top-left corner) + * @param str The string to draw + * @param foreground Character color + * @param background Background color + * @return Width of the string or negative value if error occured + */ +int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char *str, ssd1306_color_t foreground, ssd1306_color_t background); + +/** + * Stop scrolling (the ram data needs to be rewritten) + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ssd1306_stop_scroll(const ssd1306_t *dev); + +/** + * Start horizontal scrolling + * @param dev Pointer to device descriptor + * @param way Orientation ( true: left // false: right ) + * @param start Page address start + * @param stop Page address stop + * @param frame Time interval between each scroll + * @return Non-zero if error occured + */ +int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, ssd1306_scroll_t frame); + +/** + * Start horizontal+vertical scrolling (cant vertical scrolling) + * @param dev Pointer to device descriptor + * @param way Orientation ( true: left // false: right ) + * @param start Page address start + * @param stop Page address stop + * @param dy vertical size shifting (min : 1 // max: 63 ) + * @param frame Time interval between each scroll + * @return Non-zero if error occured + */ +int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame); + #ifdef __cplusplus extern "C" } From dc9b6a29885984792cfd0768abcded2a12ca496a Mon Sep 17 00:00:00 2001 From: UncleRus Date: Sat, 17 Dec 2016 21:00:37 +0500 Subject: [PATCH 135/349] Fix #313 --- extras/rboot-ota/ota-tftp.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/extras/rboot-ota/ota-tftp.h b/extras/rboot-ota/ota-tftp.h index 6be63aa..3e1d985 100644 --- a/extras/rboot-ota/ota-tftp.h +++ b/extras/rboot-ota/ota-tftp.h @@ -3,6 +3,10 @@ #include "lwip/err.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*tftp_receive_cb)(size_t bytes_received); /* TFTP Server OTA Support @@ -52,4 +56,8 @@ err_t ota_tftp_download(const char *server, int port, const char *filename, #define TFTP_PORT 69 +#ifdef __cplusplus +} +#endif + #endif From e96fb4242ef51954b71e684cadc076cfcc5b5339 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Mon, 19 Dec 2016 05:53:07 +0500 Subject: [PATCH 136/349] Driver for PCA9685 + example --- examples/pca9685_pwm/Makefile | 3 + examples/pca9685_pwm/main.c | 43 +++++++ extras/pca9685/component.mk | 9 ++ extras/pca9685/pca9685.c | 217 ++++++++++++++++++++++++++++++++++ extras/pca9685/pca9685.h | 137 +++++++++++++++++++++ 5 files changed, 409 insertions(+) create mode 100644 examples/pca9685_pwm/Makefile create mode 100644 examples/pca9685_pwm/main.c create mode 100644 extras/pca9685/component.mk create mode 100644 extras/pca9685/pca9685.c create mode 100644 extras/pca9685/pca9685.h diff --git a/examples/pca9685_pwm/Makefile b/examples/pca9685_pwm/Makefile new file mode 100644 index 0000000..21a2d90 --- /dev/null +++ b/examples/pca9685_pwm/Makefile @@ -0,0 +1,3 @@ +PROGRAM = pca9685_pwm +EXTRA_COMPONENTS = extras/i2c extras/pca9685 +include ../../common.mk diff --git a/examples/pca9685_pwm/main.c b/examples/pca9685_pwm/main.c new file mode 100644 index 0000000..b191334 --- /dev/null +++ b/examples/pca9685_pwm/main.c @@ -0,0 +1,43 @@ +/* + * Example of using PCA9685 PWM driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * Public domain + */ +#include +#include +#include +#include +#include + +#define ADDR 0x40 + +#define SCL_PIN 5 +#define SDA_PIN 4 + +#define PWM_FREQ 500 + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + pca9685_init(ADDR); + + pca9685_set_pwm_frequency(ADDR, 1000); + printf("Freq 1000Hz, real %d\n", pca9685_get_pwm_frequency(ADDR)); + + uint16_t val = 0; + while (true) + { + printf("Set ch0 to %d, ch4 to %d\n", val, 4096 - val); + pca9685_set_pwm_value(ADDR, 0, val); + pca9685_set_pwm_value(ADDR, 4, 4096 - val); + + if (val++ == 4096) + val = 0; + } +} diff --git a/extras/pca9685/component.mk b/extras/pca9685/component.mk new file mode 100644 index 0000000..31d7848 --- /dev/null +++ b/extras/pca9685/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/pca9685 + +# expected anyone using this driver includes it as 'pca9685/pca9685.h' +INC_DIRS += $(pca9685_ROOT).. + +# args for passing into compile rule generation +pca9685_SRC_DIR = $(pca9685_ROOT) + +$(eval $(call component_compile_rules,pca9685)) diff --git a/extras/pca9685/pca9685.c b/extras/pca9685/pca9685.c new file mode 100644 index 0000000..0e116e2 --- /dev/null +++ b/extras/pca9685/pca9685.c @@ -0,0 +1,217 @@ +/** + * Driver for 16-channel, 12-bit PWM PCA9685 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "pca9685.h" + +#include +#include + +#define REG_MODE1 0x00 +#define REG_MODE2 0x01 +#define REG_SUBADR1 0x02 +#define REG_SUBADR2 0x03 +#define REG_SUBADR3 0x04 +#define REG_ALLCALLADR 0x05 +#define REG_LEDX 0x06 +#define REG_ALL_LED 0xfa +#define REG_PRE_SCALE 0xfe + +#define MODE1_RESTART (1 << 7) +#define MODE1_EXTCLK (1 << 6) +#define MODE1_AI (1 << 5) +#define MODE1_SLEEP (1 << 4) + +#define MODE1_SUB_BIT 3 + +#define MODE2_INVRT (1 << 4) +#define MODE2_OUTDRV (1 << 2) + +#define LED_FULL_ON_OFF (1 << 4) + +#define REG_LED_N(x) (REG_LEDX + (x) * 4) +#define OFFS_REG_LED_ON 1 +#define OFFS_REG_LED_OFF 3 + +#define INTERNAL_FREQ 25000000 + +#define MIN_PRESCALER 0x03 +#define MAX_PRESCALER 0xff +#define MAX_CHANNEL 15 +#define MAX_SUBADDR 2 + +#define WAKEUP_DELAY_US 500 + +//#define PCA9685_DEBUG + +#ifdef PCA9685_DEBUG +#include +#define debug(fmt, ...) printf("%s: " fmt "\n", "PCA9685", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +inline static uint32_t round_div(uint32_t x, uint32_t y) +{ + return (x + y / 2) / y; +} + +inline static void write_reg(uint8_t addr, uint8_t reg, uint8_t val) +{ + uint8_t data[2] = { reg, val }; + if (!i2c_slave_write(addr, data, 2)) + debug("Could not write 0x%02x to 0x%02x, addr = 0x%02x", reg, val, addr); +} + +inline static uint8_t read_reg(uint8_t addr, uint8_t reg) +{ + uint8_t res = 0; + if (!i2c_slave_read(addr, reg, &res, 1)) + debug("Could not read from 0x%02x, addr = 0x%02x", reg, addr); + return res; +} + +inline static void update_reg(uint8_t addr, uint8_t reg, uint8_t mask, uint8_t val) +{ + write_reg(addr, reg, (read_reg(addr, reg) & ~mask) | val); +} + +void pca9685_init(uint8_t addr) +{ + // Enable autoincrement + update_reg(addr, REG_MODE1, MODE1_AI, MODE1_AI); +} + +bool pca9685_set_subaddr(uint8_t addr, uint8_t num, uint8_t subaddr, bool enable) +{ + if (num > MAX_SUBADDR) + { + debug("Invalid subaddress number: %d", num); + return false; + } + + write_reg(addr, REG_SUBADR1 + num, subaddr << 1); + + uint8_t mask = 1 << (MODE1_SUB_BIT - num); + update_reg(addr, REG_MODE1, mask, enable ? mask : 0); + + return true; +} + +bool pca9685_is_sleeping(uint8_t addr) +{ + return (read_reg(addr, REG_MODE1) & MODE1_SLEEP) != 0; +} + +void pca9685_sleep(uint8_t addr, bool sleep) +{ + update_reg(addr, REG_MODE1, MODE1_SLEEP, sleep ? MODE1_SLEEP : 0); + if (!sleep) + sdk_os_delay_us(WAKEUP_DELAY_US); +} + +void pca9685_restart(uint8_t addr) +{ + uint8_t mode = read_reg(addr, REG_MODE1); + if (mode & MODE1_RESTART) + { + write_reg(addr, REG_MODE1, mode & ~MODE1_SLEEP); + sdk_os_delay_us(WAKEUP_DELAY_US); + } + write_reg(addr, REG_MODE1, (mode & ~MODE1_SLEEP) | MODE1_RESTART); +} + +bool pca9685_is_output_inverted(uint8_t addr) +{ + return (read_reg(addr, REG_MODE2) & MODE2_INVRT) != 0; +} + +void pca9685_set_output_inverted(uint8_t addr, bool inverted) +{ + update_reg(addr, REG_MODE2, MODE2_INVRT, inverted ? MODE2_INVRT : 0); +} + +bool pca9685_get_output_open_drain(uint8_t addr) +{ + return (read_reg(addr, REG_MODE2) & MODE2_OUTDRV) == 0; +} + +void pca9685_set_output_open_drain(uint8_t addr, bool open_drain) +{ + update_reg(addr, REG_MODE2, MODE2_OUTDRV, open_drain ? 0 : MODE2_OUTDRV); +} + +uint8_t pca9685_get_prescaler(uint8_t addr) +{ + return read_reg(addr, REG_PRE_SCALE); +} + +bool pca9685_set_prescaler(uint8_t addr, uint8_t prescaler) +{ + if (prescaler < MIN_PRESCALER) + { + debug("Inavlid prescaler value: %d", prescaler); + return false; + } + + pca9685_sleep(addr, true); + write_reg(addr, REG_PRE_SCALE, prescaler); + pca9685_sleep(addr, false); + return true; +} + +uint16_t pca9685_get_pwm_frequency(uint8_t addr) +{ + return INTERNAL_FREQ / ((uint32_t)4096 * (read_reg(addr, REG_PRE_SCALE) + 1)); +} + +bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq) +{ + uint16_t prescaler = round_div(INTERNAL_FREQ, (uint32_t)4096 * freq) - 1; + if (prescaler < MIN_PRESCALER || prescaler > MAX_PRESCALER) + { + debug("Inavlid prescaler value: %d", prescaler); + return false; + } + + return pca9685_set_prescaler(addr, prescaler); +} + +void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val) +{ + uint8_t reg = channel > MAX_CHANNEL ? REG_ALL_LED : REG_LED_N(channel); + + if (val == 0) + { + // Full off + write_reg(addr, reg + OFFS_REG_LED_OFF, LED_FULL_ON_OFF); + } + else if (val < 4096) + { + // Normal + uint8_t buf[5] = { reg, 0, 0, val, val >> 8 }; + i2c_slave_write(addr, buf, 5); + } + else + { + // Full on + write_reg(addr, reg + OFFS_REG_LED_ON, LED_FULL_ON_OFF); + } +} + +bool pca9685_set_pwm_values(uint8_t addr, uint8_t first_ch, uint8_t channels, const uint16_t *values) +{ + if (channels == 0 || first_ch + channels - 1 > MAX_CHANNEL) + { + debug("Invalid channels"); + return false; + } + + for (uint8_t i = 0; i < channels; i ++) + pca9685_set_pwm_value(addr, first_ch + i, values [i]); + + return true; +} diff --git a/extras/pca9685/pca9685.h b/extras/pca9685/pca9685.h new file mode 100644 index 0000000..0ee0000 --- /dev/null +++ b/extras/pca9685/pca9685.h @@ -0,0 +1,137 @@ +/** + * Driver for 16-channel, 12-bit PWM PCA9685 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_PCA9685_H_ +#define _EXTRAS_PCA9685_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define PCA9685_ADDR_BASE 0x40 + +/** + * Init device + * @param addr Device address + */ +void pca9685_init(uint8_t addr); + +/** + * Setup device subaddress (see section 7.3.6 if the datasheet) + * @param addr Device address + * @param num Subaddress number, 0..2 + * @param subaddr Subaddress, 7 bit + * @param enable True to enable subaddress, false to disable + * @return False if error occured + */ +bool pca9685_set_subaddr(uint8_t addr, uint8_t num, uint8_t subaddr, bool enable); + +/** + * Restart device (see section 7.3.1.1 of the datasheet) + * @param addr Device address + */ +void pca9685_restart(uint8_t addr); + +/** + * Check if device is in sleep mode + * @param addr Device address + * @return True if device is sleeping + */ +bool pca9685_is_sleeping(uint8_t addr); + +/** + * Switch device to low-power mode or wake it up. + * @param addr Device address + * @param sleep True for sleep mode, false for wake up + */ +void pca9685_sleep(uint8_t addr, bool sleep); + +/** + * Get logic inversion of the outputs + * @param addr Device address + * @return True if outputs are inverted, false otherwise + */ +bool pca9685_is_output_inverted(uint8_t addr); + +/** + * Logically invert outputs (see section 7.7 of the datasheet) + * @param addr Device address + * @param inverted True for inverted outputs + */ +void pca9685_set_output_inverted(uint8_t addr, bool inverted); + +/** + * Get outputs mode + * @param addr Device address + * @return True if outputs are in open drain mode + */ +bool pca9685_get_output_open_drain(uint8_t addr); + +/** + * Set outputs mode + * @param addr Device address + * @param open_drain True to set open drain mode, false to normal mode + */ +void pca9685_set_output_open_drain(uint8_t addr, bool open_drain); + +/** + * Get current PWM frequency prescaler. + * @param addr Device address + * @return Frequency prescaler + */ +uint8_t pca9685_get_prescaler(uint8_t addr); + +/** + * Set PWM frequency prescaler. + * @param addr Device address + * @param prescaler Prescaler value + * @return False if error occured + */ +bool pca9685_set_prescaler(uint8_t addr, uint8_t prescaler); + +/** + * Get current PWM frequency + * @param addr Device address + * @return PWM frequency, Hz + */ +uint16_t pca9685_get_pwm_frequency(uint8_t addr); + +/** + * Set PWM frequency + * @param addr Device address + * @param freq PWM frequency, Hz + * @return False if error occured + */ +bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq); + +/** + * Set PWM value on output channel + * @param addr Device address + * @param channel Channel number, 0..15 or >15 for all channels + * @param val PWM value, 0..4096 + */ +void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val); + +/** + * Set PWM values on output channels + * @param addr Device address + * @param first_ch First channel, 0..15 + * @param channels Number of updating channels + * @param values Array of the channel values, each 0..4096 + * @return False if error occured + */ +bool pca9685_set_pwm_values(uint8_t addr, uint8_t first_ch, uint8_t channels, const uint16_t *values); + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_PCA9685_H_ */ From 8f5d49de812d2686c854ec37be5422f6b793603f Mon Sep 17 00:00:00 2001 From: otopetrik Date: Mon, 19 Dec 2016 16:55:26 +0100 Subject: [PATCH 137/349] Allow changing write function of stdout (#304) * Allow changing write function of stdout. Required for stdout redirection. Works on blocks, not chars - does _not_ use sdk_os_putc ! Should work even when linking with SPIFFS. --- core/include/stdout_redirect.h | 45 +++++++++++++++++++++++++++++++ core/newlib_syscalls.c | 48 +++++++++++++++++++++++++++++----- extras/spiffs/esp_spiffs.c | 25 +++--------------- 3 files changed, 90 insertions(+), 28 deletions(-) create mode 100644 core/include/stdout_redirect.h diff --git a/core/include/stdout_redirect.h b/core/include/stdout_redirect.h new file mode 100644 index 0000000..8cc06ed --- /dev/null +++ b/core/include/stdout_redirect.h @@ -0,0 +1,45 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2016 Oto Petrik + * BSD Licensed as described in the file LICENSE + */ + +#ifndef _STDOUT_REDIRECT_H_ +#define _STDOUT_REDIRECT_H_ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef long _WriteFunction(struct _reent *r, int fd, const char *ptr, int len ); + +/** Set implementation of write syscall for stdout. + * + * Use this function to redirect stdout for further processing (save to file, send over network). + * It may be good idea to save result of `get_write_stdout()` beforehand and call + * it at the end of the supplied function. + * + * NOTE: use NULL to reset to default implementation. + * + * @param[in] f New code to handle stdout output + * + */ +void set_write_stdout(_WriteFunction *f); + +/** Get current implementation of write syscall for stdout. + * + * Save returned value before calling `set_write_stdout`, it allows for chaining + * multiple independent handlers. + * + * @returns current stdout handler + */ +_WriteFunction *get_write_stdout(); + +#ifdef __cplusplus +} +#endif + +#endif /* _STDOUT_REDIRECT_H_ */ diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index f526bea..146a010 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -12,6 +12,7 @@ #include #include #include +#include extern void *xPortSupervisorStackPointer; @@ -41,12 +42,8 @@ IRAM caddr_t _sbrk_r (struct _reent *r, int incr) } /* syscall implementation for stdio write to UART */ -__attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +__attribute__((weak)) long _write_stdout_r(struct _reent *r, int fd, const char *ptr, int len ) { - if(fd != r->_stdout->_file) { - r->_errno = EBADF; - return -1; - } for(int i = 0; i < len; i++) { /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ if(ptr[i] == '\r') @@ -58,6 +55,37 @@ __attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, i return len; } +static _WriteFunction *current_stdout_write_r = &_write_stdout_r; + +void set_write_stdout(_WriteFunction *f) +{ + if (f != NULL) { + current_stdout_write_r = f; + } else { + current_stdout_write_r = &_write_stdout_r; + } +} + +_WriteFunction *get_write_stdout() +{ + return current_stdout_write_r; +} + +/* default implementation, replace in a filesystem */ +__attribute__((weak)) long _write_filesystem_r(struct _reent *r, int fd, const char *ptr, int len ) +{ + r->_errno = EBADF; + return -1; +} + +__attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +{ + if(fd != r->_stdout->_file) { + return _write_filesystem_r(r, fd, ptr, len); + } + return current_stdout_write_r(r, fd, ptr, len); +} + /* syscall implementation for stdio read from UART */ __attribute__((weak)) long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len) { @@ -71,11 +99,17 @@ __attribute__((weak)) long _read_stdin_r(struct _reent *r, int fd, char *ptr, in return i; } +/* default implementation, replace in a filesystem */ +__attribute__((weak)) long _read_filesystem_r( struct _reent *r, int fd, char *ptr, int len ) +{ + r->_errno = EBADF; + return -1; +} + __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len ) { if(fd != r->_stdin->_file) { - r->_errno = EBADF; - return -1; + return _read_filesystem_r(r, fd, ptr, len); } return _read_stdin_r(r, fd, ptr, len); } diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 96ec743..3d81218 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -125,32 +125,15 @@ int32_t esp_spiffs_mount() } // This implementation replaces implementation in core/newlib_syscals.c -long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +long _write_filesystem_r(struct _reent *r, int fd, const char *ptr, int len ) { - if(fd != r->_stdout->_file) { - return SPIFFS_write(&fs, (spiffs_file)fd, (char*)ptr, len); - } - for(int i = 0; i < len; i++) { - /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ - if(ptr[i] == '\r') - continue; - if(ptr[i] == '\n') - uart_putc(0, '\r'); - uart_putc(0, ptr[i]); - } - return len; + return SPIFFS_write(&fs, (spiffs_file)fd, (char*)ptr, len); } -// This function is weakly defined in core/newlib_syscalls.c -long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len); - // This implementation replaces implementation in core/newlib_syscals.c -long _read_r( struct _reent *r, int fd, char *ptr, int len ) +long _read_filesystem_r( struct _reent *r, int fd, char *ptr, int len ) { - if(fd != r->_stdin->_file) { - return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); - } - return _read_stdin_r(r, fd, ptr, len); + return SPIFFS_read(&fs, (spiffs_file)fd, ptr, len); } int _open_r(struct _reent *r, const char *pathname, int flags, int mode) From 34d783a2893dadff67bbf1a5e318e73a0c5f8e62 Mon Sep 17 00:00:00 2001 From: mr-nice Date: Sat, 24 Dec 2016 18:08:42 +0100 Subject: [PATCH 138/349] Feature/ms561101ba03 (#308) Driver for the ms561101ba03 barometric pressure sensor --- examples/ms561101ba03/Makefile | 4 + examples/ms561101ba03/main.c | 39 ++++++ extras/ms561101ba03/component.mk | 9 ++ extras/ms561101ba03/ms561101ba03.c | 218 +++++++++++++++++++++++++++++ extras/ms561101ba03/ms561101ba03.h | 96 +++++++++++++ 5 files changed, 366 insertions(+) create mode 100644 examples/ms561101ba03/Makefile create mode 100644 examples/ms561101ba03/main.c create mode 100644 extras/ms561101ba03/component.mk create mode 100644 extras/ms561101ba03/ms561101ba03.c create mode 100644 extras/ms561101ba03/ms561101ba03.h diff --git a/examples/ms561101ba03/Makefile b/examples/ms561101ba03/Makefile new file mode 100644 index 0000000..8f1b28c --- /dev/null +++ b/examples/ms561101ba03/Makefile @@ -0,0 +1,4 @@ +PROGRAM = ms561101ba03 +EXTRA_COMPONENTS = extras/i2c extras/ms561101ba03 +ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/ms561101ba03/main.c b/examples/ms561101ba03/main.c new file mode 100644 index 0000000..915f055 --- /dev/null +++ b/examples/ms561101ba03/main.c @@ -0,0 +1,39 @@ +/* + * Example of using MS561101ba03 driver + * + * Copyright (C) 2016 Bernhard Guillon + * + * Loosely based on main.c with: + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include + +#define SCL_PIN 5 +#define SDA_PIN 4 + +void user_init(void) +{ + i2c_init(SCL_PIN, SDA_PIN); + + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + ms561101ba03_config_data_t conf = {0,0,0,0,0,0}; + ms561101ba03_result_t result = {0,0}; + ms561101ba03_t device= {MS561101BA03_ADDR_CSB_LOW, MS561101BA03_OSR_4096, conf, result, 0}; + + while (!ms561101ba03_init(&device)) + printf("Device not found\n"); + + while (true) + { + if (!ms561101ba03_get_sensor_data(&device)) + printf("Error reading sensor data from device"); + printf("Temperature in C * 100: %i \nPressure in mbar * 100: %i\n", device.result.temperature, device.result.pressure); + } +} diff --git a/extras/ms561101ba03/component.mk b/extras/ms561101ba03/component.mk new file mode 100644 index 0000000..b4986d2 --- /dev/null +++ b/extras/ms561101ba03/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ms561101ba03 + +# expected anyone using this driver includes it as 'ms561101ba03/ms561101ba03.h' +INC_DIRS += $(ms561101ba03_ROOT).. + +# args for passing into compile rule generation +ms561101ba03_SRC_DIR = $(ms561101ba03_ROOT) + +$(eval $(call component_compile_rules,ms561101ba03)) diff --git a/extras/ms561101ba03/ms561101ba03.c b/extras/ms561101ba03/ms561101ba03.c new file mode 100644 index 0000000..34ed6d3 --- /dev/null +++ b/extras/ms561101ba03/ms561101ba03.c @@ -0,0 +1,218 @@ +/* + * Driver for barometic pressure sensor ms511-01BA03 + * + * Copyright (C) 2016 Bernhard Guillon + * + * Loosely based on hmc5831 with: + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "ms561101ba03.h" +#include +#include +#include "FreeRTOS.h" +#include "task.h" + +#define CONVERT_D1 0x40 +#define CONVERT_D2 0x50 +#define ADC_READ 0x00 + +/* + * FIXME: + * The chip has different response times for the different oversampling rates + * (0.5 ms/1.1ms/2.1ms/4.1ms/8.22ms) + * For now use a save value. + */ +#define CONVERSION_TIME 20 / portTICK_PERIOD_MS // milliseconds + +static const uint8_t RESET = 0x1E; + +static inline bool reset(uint8_t addr) +{ + uint8_t buf[1] = { RESET }; + return i2c_slave_write(addr, buf, 1); +} + +static inline bool read_prom(ms561101ba03_t *dev) +{ + uint8_t tmp[2] = {0,0}; + + if (!i2c_slave_read(dev->addr, 0xA2 , tmp, 2)) + return false; + dev->config_data.sens = tmp[0] << 8 | tmp[1]; + + if (!i2c_slave_read(dev->addr, 0xA4 , tmp, 2)) + return false; + dev->config_data.off = tmp[0] << 8 | tmp[1]; + + if (!i2c_slave_read(dev->addr, 0xA6 , tmp, 2)) + return false; + dev->config_data.tcs = tmp[0] << 8 | tmp[1]; + + if (!i2c_slave_read(dev->addr, 0xA8 , tmp, 2)) + return false; + dev->config_data.tco = tmp[0] << 8 | tmp[1]; + + if (!i2c_slave_read(dev->addr, 0xAA , tmp, 2)) + return false; + dev->config_data.t_ref = tmp[0] << 8 | tmp[1]; + + if (!i2c_slave_read(dev->addr, 0xAC , tmp, 2)) + return false; + dev->config_data.tempsens = tmp[0] << 8 | tmp[1]; + + return true; +} + +static inline bool start_pressure_conversion(ms561101ba03_t *dev) //D1 +{ + uint8_t buf = CONVERT_D1 + dev->osr; + return i2c_slave_write(dev->addr, &buf, 1); +} + +static inline bool start_temperature_conversion(ms561101ba03_t *dev) //D2 +{ + uint8_t buf = CONVERT_D2 + dev->osr; + return i2c_slave_write(dev->addr, &buf, 1); +} + +static inline bool read_adc(uint8_t addr, uint32_t *result) +{ + *result = 0; + uint8_t tmp[3]; + if (!i2c_slave_read(addr, 0x00, tmp, 3)) + return false; + + *result = (tmp[0] << 16) | (tmp[1] << 8) | tmp[2]; + + // If we are to fast the ADC will return 0 instead of the actual result + if (*result == 0) + return false; + + return true; +} + +static inline void calc_dt(ms561101ba03_t *dev, uint32_t digital_temperature) +{ + // Difference between actual and reference digital_temperature + // dT = D2 - T_ref = D2 - C5 *2^8 + dev->dT = digital_temperature - ((int32_t)dev->config_data.t_ref << 8); +} + +static inline int32_t calc_temp(ms561101ba03_t *dev) +{ + // Actual temerature (-40...85C with 0.01 resulution) + // TEMP = 20C +dT * TEMPSENSE =2000 + dT * C6 / 2^23 + return (int32_t)((int64_t)2000 +(int64_t)dev->dT * (int64_t)dev->config_data.tempsens / (int64_t)8388608); +} + +static inline int64_t calc_off(ms561101ba03_t *dev) +{ + // Offset at actual temperature + // OFF=OFF_t1 + TCO * dT = OFF_t1(C2) * 2^16 + (C4*dT)/2^7 + return (int64_t)((int64_t)dev->config_data.off * (int64_t)65536) + (((int64_t)dev->config_data.tco * (int64_t)dev->dT ) /(int64_t)128); +} + +static inline int64_t calc_sens(ms561101ba03_t *dev) +{ + // Senisitivity at actual temperature + // SENS=SENS_t1 + TCS *dT = SENS_t1(C1) *2^15 + (TCS(C3) *dT)/2^8 + return (int64_t)(((int64_t)dev->config_data.sens) *(int64_t)32768) + (((int64_t)dev->config_data.tcs * (int64_t)dev->dT ) /(int64_t)256); +} + +static inline int32_t calc_p(uint32_t digital_pressure, int64_t sens, int64_t off) +{ + // Temperature compensated pressure (10...1200mbar with 0.01mbar resolution + // P = digital pressure value * SENS - OFF = (D1 * SENS/2^21 -OFF)/2^15 + return (int32_t) (((int64_t)digital_pressure * (int64_t)((int64_t)sens / (int64_t)0x200000) - (int64_t)off) / (int64_t)32768); +} + +static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) +{ + if (!start_temperature_conversion(dev)) + return false; + + vTaskDelay(CONVERSION_TIME); + + if (!read_adc(dev->addr, result)) + return false; + + return true; +} + +static inline bool get_raw_pressure(ms561101ba03_t *dev, uint32_t *result) +{ + if (!start_pressure_conversion(dev)) + return false; + + vTaskDelay(CONVERSION_TIME); + + if (!read_adc(dev->addr, result)) + return false; + + return true; +} + +/////////////////////////Public////////////////////////////////////// + +bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) +{ + // Second order temperature compensation see datasheet p8 + uint32_t raw_pressure = 0; + if (!get_raw_pressure(dev, &raw_pressure)) + return false; + + uint32_t raw_temperature = 0; + if(!get_raw_temperature(dev, &raw_temperature)) + return false; + + calc_dt(dev, raw_temperature); + int64_t temp = calc_temp(dev); + int64_t off = calc_off(dev); + int64_t sens = calc_sens(dev); + + //Set defaults for temp >= 2000 + int64_t t_2 = 0; + int64_t off_2 = 0; + int64_t sens_2 = 0; + int64_t help = 0; + if (temp < 2000) + { + //Low temperature + t_2 = ((dev->dT * dev->dT) >> 31); // T2 = dT^2/2^31 + help = (temp-2000); + help = 5 * help * help; + off_2 = help >> 1; // OFF_2 = 5 * (TEMP - 2000)^2/2^1 + sens_2 = help >> 2; // SENS_2 = 5 * (TEMP - 2000)^2/2^2 + if(temp < -1500) + { + // Very low temperature + help = (temp+1500); + help = help * help; + off_2 = off_2 + 7 * help; // OFF_2 = OFF_2 + 7 * (TEMP + 1500)^2 + sens_2 = sens_2 + ((11 * help) >> 1); // SENS_2 = SENS_2 + 7 * (TEMP + 1500)^2/2^1 + } + } + + temp = temp - t_2; + off = off - off_2; + sens = sens - sens_2; + + dev->result.pressure = calc_p(raw_pressure, sens, off); + dev->result.temperature = (int32_t)temp; + return true; +} + +bool ms561101ba03_init(ms561101ba03_t *dev) +{ + // First of all we need to reset the chip + if(!reset(dev->addr)) + return false; + // Wait a bit for the device to reset + vTaskDelay(CONVERSION_TIME); + // Get the config + if(!read_prom(dev)) + return false; + // Every thing went fine + return true; +} diff --git a/extras/ms561101ba03/ms561101ba03.h b/extras/ms561101ba03/ms561101ba03.h new file mode 100644 index 0000000..d658be2 --- /dev/null +++ b/extras/ms561101ba03/ms561101ba03.h @@ -0,0 +1,96 @@ +/* + * Driver for barometic pressure sensor MS5611-01BA03 + * + * Copyright (C) 2016 Bernhard Guillon + * + * Loosely based on hmc5831 with: + * Copyright (C) 2016 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_MS561101BA03_H_ +#define EXTRAS_MS561101BA03_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define MS561101BA03_ADDR_CSB_HIGH 0x76 +#define MS561101BA03_ADDR_CSB_LOW 0x77 + +/** + * Oversampling ratio + */ +typedef enum +{ + MS561101BA03_OSR_256 = 0x00, //!< 256 samples per measurement + MS561101BA03_OSR_512 = 0x02, //!< 512 samples per measurement + MS561101BA03_OSR_1024 = 0x04, //!< 1024 samples per measurement + MS561101BA03_OSR_2048 = 0x06, //!< 2048 samples per measurement + MS561101BA03_OSR_4096 = 0x08 //!< 4096 samples per measurement +} ms561101ba03_osr_t; + +/** + * Configuration data + */ +typedef struct +{ + uint16_t sens; //!< C1 Pressure sensitivity | SENS_t1 + uint16_t off; //!< C2 Pressure offset | OFF_t1 + uint16_t tcs; //!< C3 Temperature coefficient of pressure sensitivity | TCS + uint16_t tco; //!< C4 Temperature coefficient of pressuer offset | TCO + uint16_t t_ref; //!< C5 Reference temperature | T_ref + uint16_t tempsens; //!< C6 Temperature coefficient of the temperature | TEMPSENSE +} ms561101ba03_config_data_t; + +/** + * Result + */ +typedef struct +{ + int32_t pressure; //!< Compensated pressure from 10 mbar to 1200 mbar with 0.01 mbar resolution + int32_t temperature; //!< Temperature from -40 C to 85 C with 0.01 C resulution +} ms561101ba03_result_t; + +/** + * Device descriptor + */ +typedef struct +{ + uint8_t addr; //!< I2C address + ms561101ba03_osr_t osr; //!< Oversampling setting + ms561101ba03_config_data_t config_data; //!< Device configuration, filled upon initalize + ms561101ba03_result_t result; //!< Result, filled upon co + int32_t dT; //!< delta temperature, filled uppon co and for internal use only +} ms561101ba03_t; + +/** + * Initialize device and read its configuration + * @param dev Pointer to device descriptor + * @return true if no errors occured + */ +bool ms561101ba03_init(ms561101ba03_t *dev); + +/** + * Get sensor data with second order temperature compensation + * + * The result will be: + * Compensated pressure from 10 mbar to 1200 mbar with 0.01 mbar resolution + * dev->result.pressure + * + * Temperature from -40 C to 85 C with 0.01 C resulution + * dev->result.temperature + * + * @param dev Pointer to device descriptor + * @return true if no errors occured + */ +bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_MS561101BA03_H_ */ From b675ae6f29653668fb91cd6dc06821fcea5f18de Mon Sep 17 00:00:00 2001 From: UncleRus Date: Sat, 24 Dec 2016 22:26:48 +0500 Subject: [PATCH 139/349] Code style fixes for MS5611 --- examples/ms561101ba03/main.c | 7 +-- extras/ms561101ba03/ms561101ba03.c | 73 ++++++++++++++++-------------- 2 files changed, 42 insertions(+), 38 deletions(-) diff --git a/examples/ms561101ba03/main.c b/examples/ms561101ba03/main.c index 915f055..9e993d1 100644 --- a/examples/ms561101ba03/main.c +++ b/examples/ms561101ba03/main.c @@ -23,9 +23,10 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); - ms561101ba03_config_data_t conf = {0,0,0,0,0,0}; - ms561101ba03_result_t result = {0,0}; - ms561101ba03_t device= {MS561101BA03_ADDR_CSB_LOW, MS561101BA03_OSR_4096, conf, result, 0}; + ms561101ba03_t device = { + .addr = MS561101BA03_ADDR_CSB_LOW, + .osr = MS561101BA03_OSR_4096, + }; while (!ms561101ba03_init(&device)) printf("Device not found\n"); diff --git a/extras/ms561101ba03/ms561101ba03.c b/extras/ms561101ba03/ms561101ba03.c index 34ed6d3..282b21b 100644 --- a/extras/ms561101ba03/ms561101ba03.c +++ b/extras/ms561101ba03/ms561101ba03.c @@ -1,5 +1,5 @@ /* - * Driver for barometic pressure sensor ms511-01BA03 + * Driver for barometic pressure sensor MS5611-01BA03 * * Copyright (C) 2016 Bernhard Guillon * @@ -13,9 +13,10 @@ #include "FreeRTOS.h" #include "task.h" -#define CONVERT_D1 0x40 -#define CONVERT_D2 0x50 -#define ADC_READ 0x00 +#define CONVERT_D1 0x40 +#define CONVERT_D2 0x50 +#define ADC_READ 0x00 +#define RESET 0x1E /* * FIXME: @@ -25,8 +26,6 @@ */ #define CONVERSION_TIME 20 / portTICK_PERIOD_MS // milliseconds -static const uint8_t RESET = 0x1E; - static inline bool reset(uint8_t addr) { uint8_t buf[1] = { RESET }; @@ -35,29 +34,29 @@ static inline bool reset(uint8_t addr) static inline bool read_prom(ms561101ba03_t *dev) { - uint8_t tmp[2] = {0,0}; + uint8_t tmp[2] = { 0, 0 }; - if (!i2c_slave_read(dev->addr, 0xA2 , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xA2, tmp, 2)) return false; dev->config_data.sens = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA4 , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xA4, tmp, 2)) return false; dev->config_data.off = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA6 , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xA6, tmp, 2)) return false; dev->config_data.tcs = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA8 , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xA8, tmp, 2)) return false; dev->config_data.tco = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xAA , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xAA, tmp, 2)) return false; dev->config_data.t_ref = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xAC , tmp, 2)) + if (!i2c_slave_read(dev->addr, 0xAC, tmp, 2)) return false; dev->config_data.tempsens = tmp[0] << 8 | tmp[1]; @@ -103,28 +102,32 @@ static inline int32_t calc_temp(ms561101ba03_t *dev) { // Actual temerature (-40...85C with 0.01 resulution) // TEMP = 20C +dT * TEMPSENSE =2000 + dT * C6 / 2^23 - return (int32_t)((int64_t)2000 +(int64_t)dev->dT * (int64_t)dev->config_data.tempsens / (int64_t)8388608); + return (int32_t)(2000 + (int64_t)dev->dT * dev->config_data.tempsens / 8388608); } static inline int64_t calc_off(ms561101ba03_t *dev) { // Offset at actual temperature // OFF=OFF_t1 + TCO * dT = OFF_t1(C2) * 2^16 + (C4*dT)/2^7 - return (int64_t)((int64_t)dev->config_data.off * (int64_t)65536) + (((int64_t)dev->config_data.tco * (int64_t)dev->dT ) /(int64_t)128); + return (int64_t)((int64_t)dev->config_data.off * (int64_t)65536) + + (((int64_t)dev->config_data.tco * (int64_t)dev->dT) / (int64_t)128); } static inline int64_t calc_sens(ms561101ba03_t *dev) { // Senisitivity at actual temperature // SENS=SENS_t1 + TCS *dT = SENS_t1(C1) *2^15 + (TCS(C3) *dT)/2^8 - return (int64_t)(((int64_t)dev->config_data.sens) *(int64_t)32768) + (((int64_t)dev->config_data.tcs * (int64_t)dev->dT ) /(int64_t)256); + return (int64_t)(((int64_t)dev->config_data.sens) * (int64_t)32768) + + (((int64_t)dev->config_data.tcs * (int64_t)dev->dT) / (int64_t)256); } static inline int32_t calc_p(uint32_t digital_pressure, int64_t sens, int64_t off) { // Temperature compensated pressure (10...1200mbar with 0.01mbar resolution // P = digital pressure value * SENS - OFF = (D1 * SENS/2^21 -OFF)/2^15 - return (int32_t) (((int64_t)digital_pressure * (int64_t)((int64_t)sens / (int64_t)0x200000) - (int64_t)off) / (int64_t)32768); + return (int32_t)(((int64_t)digital_pressure + * (int64_t)((int64_t)sens / (int64_t)0x200000) - (int64_t)off) + / (int64_t)32768); } static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) @@ -143,12 +146,12 @@ static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) static inline bool get_raw_pressure(ms561101ba03_t *dev, uint32_t *result) { if (!start_pressure_conversion(dev)) - return false; + return false; vTaskDelay(CONVERSION_TIME); if (!read_adc(dev->addr, result)) - return false; + return false; return true; } @@ -160,15 +163,15 @@ bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) // Second order temperature compensation see datasheet p8 uint32_t raw_pressure = 0; if (!get_raw_pressure(dev, &raw_pressure)) - return false; + return false; uint32_t raw_temperature = 0; - if(!get_raw_temperature(dev, &raw_temperature)) - return false; + if (!get_raw_temperature(dev, &raw_temperature)) + return false; calc_dt(dev, raw_temperature); - int64_t temp = calc_temp(dev); - int64_t off = calc_off(dev); + int64_t temp = calc_temp(dev); + int64_t off = calc_off(dev); int64_t sens = calc_sens(dev); //Set defaults for temp >= 2000 @@ -180,17 +183,17 @@ bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) { //Low temperature t_2 = ((dev->dT * dev->dT) >> 31); // T2 = dT^2/2^31 - help = (temp-2000); + help = (temp - 2000); help = 5 * help * help; - off_2 = help >> 1; // OFF_2 = 5 * (TEMP - 2000)^2/2^1 - sens_2 = help >> 2; // SENS_2 = 5 * (TEMP - 2000)^2/2^2 - if(temp < -1500) + off_2 = help >> 1; // OFF_2 = 5 * (TEMP - 2000)^2/2^1 + sens_2 = help >> 2; // SENS_2 = 5 * (TEMP - 2000)^2/2^2 + if (temp < -1500) { // Very low temperature - help = (temp+1500); + help = (temp + 1500); help = help * help; - off_2 = off_2 + 7 * help; // OFF_2 = OFF_2 + 7 * (TEMP + 1500)^2 - sens_2 = sens_2 + ((11 * help) >> 1); // SENS_2 = SENS_2 + 7 * (TEMP + 1500)^2/2^1 + off_2 = off_2 + 7 * help; // OFF_2 = OFF_2 + 7 * (TEMP + 1500)^2 + sens_2 = sens_2 + ((11 * help) >> 1); // SENS_2 = SENS_2 + 7 * (TEMP + 1500)^2/2^1 } } @@ -206,13 +209,13 @@ bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) bool ms561101ba03_init(ms561101ba03_t *dev) { // First of all we need to reset the chip - if(!reset(dev->addr)) - return false; + if (!reset(dev->addr)) + return false; // Wait a bit for the device to reset vTaskDelay(CONVERSION_TIME); // Get the config - if(!read_prom(dev)) - return false; + if (!read_prom(dev)) + return false; // Every thing went fine return true; } From 14c8ff57ca0279ddd56d99581a3eabae24e76184 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Thu, 29 Dec 2016 15:42:43 +0100 Subject: [PATCH 140/349] SPI3 support ssd1306 (#309) SPI3 support, SH1106 port --- extras/ssd1306/config.h | 4 + extras/ssd1306/ssd1306.c | 195 ++++++++++++++++++++++++++++++++------- extras/ssd1306/ssd1306.h | 45 ++++++++- 3 files changed, 208 insertions(+), 36 deletions(-) diff --git a/extras/ssd1306/config.h b/extras/ssd1306/config.h index bd622c3..5bce8ea 100644 --- a/extras/ssd1306/config.h +++ b/extras/ssd1306/config.h @@ -9,4 +9,8 @@ #define SSD1306_SPI4_SUPPORT 1 #endif +#ifndef SSD1306_SPI3_SUPPORT +#define SSD1306_SPI3_SUPPORT 1 +#endif + #endif /* _EXTRAS_SSD1306_CONFIG_H_ */ diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index dd198f4..dae29fa 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -14,7 +14,7 @@ #if (SSD1306_I2C_SUPPORT) #include #endif -#if (SSD1306_SPI4_SUPPORT) +#if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT) #include #endif #include @@ -70,6 +70,15 @@ #define SSD1306_SCROLL_ENABLE (0x2F) #define SSD1306_SCROLL_DISABLE (0x2E) +#define SH1106_SET_CHARGE_PUMP (0xAD) +#define SH1106_CHARGE_PUMP_EN (0x8B) +#define SH1106_CHARGE_PUMP_DIS (0x8A) +#define SH1106_CHARGE_PUMP_VALUE (0x30) + +#define SH1106_SET_PAGE_ADDRESS (0xB0) +#define SH1106_SET_LOW_COL_ADDR (0x00) +#define SH1106_SET_HIGH_COL_ADDR (0x10) + #ifdef SSD1306_DEBUG #define debug(fmt, ...) printf("%s: " fmt "\n", "SSD1306", ## __VA_ARGS__) #else @@ -118,6 +127,15 @@ int ssd1306_command(const ssd1306_t *dev, uint8_t cmd) spi_transfer_8(SPI_BUS, cmd); gpio_write(dev->cs_pin, true); break; +#endif +#if (SSD1306_SPI3_SUPPORT) + case SSD1306_PROTO_SPI3: + gpio_write(dev->cs_pin, false); + spi_set_command(SPI_BUS,1,0); // command mode + spi_transfer_8(SPI_BUS, cmd); + spi_clear_command(SPI_BUS); + gpio_write(dev->cs_pin, true); + break; #endif default: debug("Unsupported protocol"); @@ -157,48 +175,91 @@ int ssd1306_init(const ssd1306_t *dev) gpio_enable(dev->dc_pin, GPIO_OUTPUT); spi_init(SPI_BUS, SPI_MODE0, SPI_FREQ_DIV_8M, true, SPI_LITTLE_ENDIAN, true); break; +#endif +#if (SSD1306_SPI3_SUPPORT) + case SSD1306_PROTO_SPI3: + gpio_enable(dev->cs_pin, GPIO_OUTPUT); + gpio_write(dev->cs_pin, true); + spi_init(SPI_BUS, SPI_MODE0, SPI_FREQ_DIV_8M, true, SPI_LITTLE_ENDIAN, true); + break; #endif default: debug("Unsupported protocol"); return -EPROTONOSUPPORT; } - - if (!ssd1306_display_on(dev, false) && - !ssd1306_set_osc_freq(dev, 0x80) && - !ssd1306_set_mux_ratio(dev, dev->height - 1) && - !ssd1306_set_display_offset(dev, 0x0) && - !ssd1306_set_display_start_line(dev, 0x0) && - !ssd1306_set_charge_pump_enabled(dev, true) && - !ssd1306_set_mem_addr_mode(dev, SSD1306_ADDR_MODE_HORIZONTAL) && - !ssd1306_set_segment_remapping_enabled(dev, false) && - !ssd1306_set_scan_direction_fwd(dev, true) && - !ssd1306_set_com_pin_hw_config(dev, pin_cfg) && - !ssd1306_set_contrast(dev, 0x9f) && - !ssd1306_set_precharge_period(dev, 0xf1) && - !ssd1306_set_deseltct_lvl(dev, 0x40) && - !ssd1306_set_whole_display_lighting(dev, true) && - !ssd1306_set_inversion(dev, false) && - !ssd1306_display_on(dev, true)) { - return 0; + switch (dev->screen) { + case SSD1306_SCREEN: + if (!ssd1306_display_on(dev, false) && + !ssd1306_set_osc_freq(dev, 0x80) && + !ssd1306_set_mux_ratio(dev, dev->height - 1) && + !ssd1306_set_display_offset(dev, 0x0) && + !ssd1306_set_display_start_line(dev, 0x0) && + !ssd1306_set_charge_pump_enabled(dev, true) && + !ssd1306_set_mem_addr_mode(dev, SSD1306_ADDR_MODE_HORIZONTAL) && + !ssd1306_set_segment_remapping_enabled(dev, false) && + !ssd1306_set_scan_direction_fwd(dev, true) && + !ssd1306_set_com_pin_hw_config(dev, pin_cfg) && + !ssd1306_set_contrast(dev, 0x9f) && + !ssd1306_set_precharge_period(dev, 0xf1) && + !ssd1306_set_deseltct_lvl(dev, 0x40) && + !ssd1306_set_whole_display_lighting(dev, true) && + !ssd1306_set_inversion(dev, false) && + !ssd1306_display_on(dev, true)) { + return 0; + } + break; + case SH1106_SCREEN: + if (!ssd1306_display_on(dev, false) && + !ssd1306_set_charge_pump_enabled(dev, true) && + !sh1106_set_charge_pump_voltage(dev,SH1106_VOLTAGE_74) && + !ssd1306_set_osc_freq(dev, 0x80) && + !ssd1306_set_mux_ratio(dev, dev->height - 1) && + !ssd1306_set_display_offset(dev, 0x0) && + !ssd1306_set_display_start_line(dev, 0x0) && + !ssd1306_set_segment_remapping_enabled(dev, true) && + !ssd1306_set_scan_direction_fwd(dev, true) && + !ssd1306_set_com_pin_hw_config(dev, pin_cfg) && + !ssd1306_set_contrast(dev, 0x9f) && + !ssd1306_set_precharge_period(dev, 0xf1) && + !ssd1306_set_deseltct_lvl(dev, 0x40) && + !ssd1306_set_whole_display_lighting(dev, true) && + !ssd1306_set_inversion(dev, false) && + !ssd1306_display_on(dev, true)) { + return 0; + } + break; } - return -EIO; } +static int sh1106_go_coordinate(const ssd1306_t *dev, uint8_t x, uint8_t y) { + if (x >= dev->width || y >= (dev->height/8)) return -EINVAL; + int err = 0; + x+=2 ; //offset : panel is 128 ; RAM is 132 for sh1106 + if ((err = ssd1306_command(dev, SH1106_SET_PAGE_ADDRESS + y))) // Set row + return err; + if ((err = ssd1306_command(dev, SH1106_SET_LOW_COL_ADDR | (x & 0xf)))) // Set lower column address + return err; + return ssd1306_command(dev, SH1106_SET_HIGH_COL_ADDR | (x >> 4)); //Set higher column address +} + int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) { uint16_t i; uint8_t j; - ssd1306_set_column_addr(dev, 0, dev->width - 1); - ssd1306_set_page_addr(dev, 0, dev->height / 8 - 1); - size_t len = dev->width * dev->height / 8; + if(dev->screen == SSD1306_SCREEN) + { + ssd1306_set_column_addr(dev, 0, dev->width - 1); + ssd1306_set_page_addr(dev, 0, dev->height / 8 - 1); + } switch (dev->protocol) { #if (SSD1306_I2C_SUPPORT) case SSD1306_PROTO_I2C: for (i = 0; i < len; i++) { + if(dev->screen == SH1106_SCREEN) sh1106_go_coordinate(dev,0,i/dev->width); i2c_start(); if (!i2c_write(dev->addr << 1)) { debug("Error while xmitting I2C slave address\n"); @@ -227,14 +288,56 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) #endif #if (SSD1306_SPI4_SUPPORT) case SSD1306_PROTO_SPI4: - gpio_write(dev->dc_pin, true); // data mode gpio_write(dev->cs_pin, false); - if (buf) - spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); + if(dev->screen == SSD1306_SCREEN) + { + gpio_write(dev->dc_pin, true); // data mode + if (buf) + spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); + else + spi_repeat_send_8(SPI_BUS,0,len); + } else - for (i = 0; i < len; i ++) { - spi_transfer_8(SPI_BUS, 0); + { + for (i = 0 ; i < (dev->height/8) ; i++) { + sh1106_go_coordinate(dev,0,i); + gpio_write(dev->dc_pin, true); // data mode + gpio_write(dev->cs_pin, false); + if (buf) + spi_transfer(SPI_BUS, &buf[dev->width*i], NULL, dev->width, SPI_8BIT); + else + spi_repeat_send_8(SPI_BUS,0,dev->width); } + } + gpio_write(dev->cs_pin, true); + break; +#endif +#if (SSD1306_SPI3_SUPPORT) + case SSD1306_PROTO_SPI3: + gpio_write(dev->cs_pin, false); + if(dev->screen == SSD1306_SCREEN) + { + spi_set_command(SPI_BUS,1,1); // data mode + if (buf) + spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); + else + spi_repeat_send_8(SPI_BUS,0,len); + } + else + { + for (i = 0 ; i < (dev->height/8) ; i++) { + sh1106_go_coordinate(dev,0,i); + spi_set_command(SPI_BUS,1,1); // data mode + gpio_write(dev->cs_pin, false); + if (buf) + for (j = 0 ; j < dev->width ; j++) + spi_transfer_8(SPI_BUS, buf[dev->width*i+j]); + else + for (j = 0 ; j < dev->width ; j++) + spi_transfer_8(SPI_BUS, buf[dev->width*i+j]); + } + } + spi_clear_command(SPI_BUS); gpio_write(dev->cs_pin, true); break; #endif @@ -271,17 +374,44 @@ int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset) return ssd1306_command(dev, offset); } +int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select) +{ + if (dev->screen == SSD1306_SCREEN) + { + debug("Unsupported screen type"); + return -ENOTSUP ; + } + return ssd1306_command(dev, select | SH1106_CHARGE_PUMP_VALUE); +} + + int ssd1306_set_charge_pump_enabled(const ssd1306_t *dev, bool enabled) { int err = 0; - if ((err = ssd1306_command(dev, SSD1306_SET_CHARGE_PUMP))) - return err; - - return ssd1306_command(dev, enabled ? SSD1306_CHARGE_PUMP_EN : SSD1306_CHARGE_PUMP_DIS); + switch (dev->screen) { + case SH1106_SCREEN: + if ((err = ssd1306_command(dev, SH1106_SET_CHARGE_PUMP))) + return err; + return ssd1306_command(dev, enabled ? SH1106_CHARGE_PUMP_EN : SH1106_CHARGE_PUMP_DIS); + break; + case SSD1306_SCREEN: + if ((err = ssd1306_command(dev, SSD1306_SET_CHARGE_PUMP))) + return err; + return ssd1306_command(dev, enabled ? SSD1306_CHARGE_PUMP_EN : SSD1306_CHARGE_PUMP_DIS); + break; + default: + debug("Unsupported screen type"); + return -ENOTSUP; + } } int ssd1306_set_mem_addr_mode(const ssd1306_t *dev, ssd1306_mem_addr_mode_t mode) { + if (dev->screen == SH1106_SCREEN) + { + debug("Unsupported screen type"); + return -ENOTSUP ; + } int err = 0; if ((err = ssd1306_command(dev, SSD1306_SET_MEM_ADDR_MODE))) return err; @@ -390,7 +520,6 @@ int ssd1306_set_whole_display_lighting(const ssd1306_t *dev, bool light) return ssd1306_command(dev, light ? SSD1306_SET_ENTIRE_DISP_ON : SSD1306_SET_ENTIRE_DISP_OFF); } - /* one byte of xbm - 8 dots in line of picture source * one byte of fb - 8 rows for 1 column of screen */ diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index d8cb4d2..9f620d1 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -28,6 +28,17 @@ extern "C" { #endif +/** + * SH1106 pump voltage value + */ +typedef enum +{ + SH1106_VOLTAGE_74 = 0, // 7.4 Volt + SH1106_VOLTAGE_80, // 8.0 Volt + SH1106_VOLTAGE_84, // 8.4 Volt + SH1106_VOLTAGE_90 // 9.0 Volt +} sh1106_voltage_t; + /** * I/O protocols */ @@ -35,20 +46,32 @@ typedef enum { SSD1306_PROTO_I2C = 0, //!< I2C SSD1306_PROTO_SPI4, //!< SPI 8 bits + D/C pin - SSD1306_PROTO_SPI3 //!< SPI 9 bits, currently not supported + SSD1306_PROTO_SPI3 //!< SPI 9 bits } ssd1306_protocol_t; +/** + * Screen type + */ +typedef enum +{ + SSD1306_SCREEN = 0, + SH1106_SCREEN +} ssd1306_screen_t; + /** * Device descriptor */ typedef struct { ssd1306_protocol_t protocol; + ssd1306_screen_t screen ; + union { #if (SSD1306_I2C_SUPPORT) - uint8_t addr; //!< I2C address, used by SSD1306_PROTO_I2C + uint8_t addr ; //!< I2C address, used by SSD1306_PROTO_I2C #endif + uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 + } ; #if (SSD1306_SPI4_SUPPORT) - uint8_t cs_pin; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 uint8_t dc_pin; //!< Data/Command GPIO pin, used by SSD1306_PROTO_SPI4 #endif uint8_t width; //!< Screen width, currently supported 128px, 96px @@ -161,6 +184,22 @@ int ssd1306_set_display_start_line(const ssd1306_t *dev, uint8_t start); */ int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset); +/** + * Select charge pump voltage. See value in datasheet. + * @param dev Pointer to device descriptor + * @param select Select charge pump voltage value + * @return Non-zero if error occured + */ +int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select); + +/** + * Select charge pump voltage. See value in datasheet. + * @param dev Pointer to device descriptor + * @param select Select charge pump voltage value + * @return Non-zero if error occured + */ +int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select); + /** * Enable or disable the charge pump. See application note in datasheet. * @param dev Pointer to device descriptor From 5eae1664e52bafdc1b270941414db0c0420e1b29 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Thu, 29 Dec 2016 15:45:25 +0100 Subject: [PATCH 141/349] Ina3221 (#318) INA3221 driver + example --- examples/ina3221_test/Makefile | 3 + examples/ina3221_test/main.c | 126 ++++++++++++++ extras/ina3221/component.mk | 9 + extras/ina3221/ina3221.c | 230 +++++++++++++++++++++++++ extras/ina3221/ina3221.h | 306 +++++++++++++++++++++++++++++++++ 5 files changed, 674 insertions(+) create mode 100644 examples/ina3221_test/Makefile create mode 100644 examples/ina3221_test/main.c create mode 100644 extras/ina3221/component.mk create mode 100644 extras/ina3221/ina3221.c create mode 100644 extras/ina3221/ina3221.h diff --git a/examples/ina3221_test/Makefile b/examples/ina3221_test/Makefile new file mode 100644 index 0000000..a257987 --- /dev/null +++ b/examples/ina3221_test/Makefile @@ -0,0 +1,3 @@ +PROGRAM=ina3221_test +EXTRA_COMPONENTS = extras/i2c extras/ina3221 +include ../../common.mk diff --git a/examples/ina3221_test/main.c b/examples/ina3221_test/main.c new file mode 100644 index 0000000..5a883d2 --- /dev/null +++ b/examples/ina3221_test/main.c @@ -0,0 +1,126 @@ +/* + * Example of using INA3221 + * + * Part of esp-open-rtos + * Copyright (C) 2016 Zaltora + * MIT Licensed as described in the file LICENSE + */ + +#include "espressif/esp_common.h" +#include "FreeRTOS.h" +#include "task.h" +#include +#include +#include "ina3221/ina3221.h" + +#define PIN_SCL 5 +#define PIN_SDA 2 +#define ADDR INA3221_ADDR_0 + +#define WARNING_CHANNEL 1 +#define WARNING_CURRENT (40.0) + +//#define STRUCT_SETTING 0 +#define MODE false // true : continuous measurements // false : trigger measurements + +void ina_measure(void *pvParameters) +{ + uint32_t measure_number = 0; + float bus_voltage; + float shunt_voltage; + float shunt_current; + bool warning = false ; + + // Create ina3221 device + ina3221_t dev = { + .addr = ADDR, + .shunt = { 100 ,100 ,100 }, // shunt values are 100 mOhm for each channel + .mask.mask_register = INA3221_DEFAULT_MASK, // Init + .config.config_register = INA3221_DEFAULT_CONFIG, // Init + }; + +#ifndef STRUCT_SETTING + if(ina3221_setting(&dev ,MODE, true, true)) // mode selection , bus and shunt activated + goto error_loop; + if(ina3221_enableChannel(&dev , true, true, true)) // Enable all channels + goto error_loop; + if(ina3221_setAverage(&dev, INA3221_AVG_64)) // 64 samples average + goto error_loop; + if(ina3221_setBusConversionTime(&dev, INA3221_CT_2116)) // 2ms by channel + goto error_loop; + if(ina3221_setShuntConversionTime(&dev, INA3221_CT_2116)) // 2ms by channel + goto error_loop; +#else + dev.config.mode = MODE; // mode selection + dev.config.esht = true; // shunt enable + dev.config.ebus = true; // bus enable + dev.config.ch1 = true; // channel 1 enable + dev.config.ch2 = true; // channel 2 enable + dev.config.ch3 = true; // channel 3 enable + dev.config.avg = INA3221_AVG_64; // 64 samples average + dev.config.vbus = INA3221_CT_2116; // 2ms by channel (bus) + dev.config.vsht = INA3221_CT_2116; // 2ms by channel (shunt) + if(ina3221_sync(&dev)) + goto error_loop; +#endif + + ina3221_setWarningAlert(&dev, WARNING_CHANNEL-1, WARNING_CURRENT); //Set security flag overcurrent + + while(1) + { + measure_number++; +#if !MODE + if (ina3221_trigger(&dev)) // Start a measure + goto error_loop; + printf("trig done, wait: "); + do + { + printf("X"); + if (ina3221_getStatus(&dev)) // get mask + goto error_loop; + vTaskDelay(20/portTICK_PERIOD_MS); + if(dev.mask.wf&(1<<(3-WARNING_CHANNEL))) + warning = true ; + } while(!(dev.mask.cvrf)); // check if measure done +#else + if (ina3221_getStatus(&dev)) // get mask + goto error_loop; + if(dev.mask.wf&(1<<(3-WARNING_CHANNEL))) + warning = true ; +#endif + for (uint8_t i = 0 ; i < BUS_NUMBER ; i++) + { + if(ina3221_getBusVoltage(&dev, i, &bus_voltage)) // Get voltage in V + goto error_loop; + if(ina3221_getShuntValue(&dev, i, &shunt_voltage, &shunt_current)) // Get voltage in mV and currant in mA + goto error_loop; + + printf("\nC%u:Measure number %u\n",i+1,measure_number); + if (warning && (i+1) == WARNING_CHANNEL) printf("C%u:Warning Current > %.2f mA !!\n",i+1,WARNING_CURRENT); + printf("C%u:Bus voltage: %.02f V\n",i+1,bus_voltage ); + printf("C%u:Shunt voltage: %.02f mV\n",i+1,shunt_voltage ); + printf("C%u:Shunt current: %.02f mA\n\n",i+1,shunt_current ); + + } + warning = false ; + vTaskDelay(5000/portTICK_PERIOD_MS); + } + + error_loop: + printf("%s: error while com with INA3221\n", __func__); + for(;;) + { + vTaskDelay(2000/portTICK_PERIOD_MS); + printf("%s: error loop\n", __FUNCTION__); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(PIN_SCL,PIN_SDA); + + xTaskCreate(ina_measure, "Measurements_task", 512, NULL, 2, NULL); +} diff --git a/extras/ina3221/component.mk b/extras/ina3221/component.mk new file mode 100644 index 0000000..9f39aef --- /dev/null +++ b/extras/ina3221/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ina3221 + +# expected anyone using this driver includes it as 'ina3221/ina3221.h' +INC_DIRS += $(ina3221_ROOT).. + +# args for passing into compile rule generation +ina3221_SRC_DIR = $(ina3221_ROOT) + +$(eval $(call component_compile_rules,ina3221)) diff --git a/extras/ina3221/ina3221.c b/extras/ina3221/ina3221.c new file mode 100644 index 0000000..f507b2c --- /dev/null +++ b/extras/ina3221/ina3221.c @@ -0,0 +1,230 @@ +/** + * INA3221 driver for esp-open-rtos. + * + * Copyright (c) 2016 Zaltora (https://github.com/Zaltora) + * + * MIT Licensed as described in the file LICENSE + * + * @todo Interupt system for critical and warning alert pin + */ + +#include "ina3221.h" + +#ifdef INA3221_DEBUG +#define debug(fmt, ...) printf("%s: " fmt "\n", "INA3221", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +static int _wireWriteRegister (uint8_t addr, uint8_t reg, uint16_t value) +{ + i2c_start(); + if (!i2c_write(addr<<1)) // adress + W + goto error; + if (!i2c_write(reg)) + goto error; + if (!i2c_write((value >> 8) & 0xFF)) + goto error; + if (!i2c_write(value & 0xFF)) + goto error; + i2c_stop(); + debug("Data write to %02X : %02X+%04X\n",addr,reg,value); + + return 0 ; + + error: + debug("Error while xmitting I2C slave\n"); + i2c_stop(); + return -EIO; +} + +static int _wireReadRegister(uint8_t addr, uint8_t reg, uint16_t *value) +{ + uint8_t tampon[2] = { 0 } ; + + i2c_start(); + if (!i2c_write(addr<<1)) // adress + W + goto error; + if (!i2c_write(reg)) + goto error; + i2c_stop(); + i2c_start(); // restart condition + if (!i2c_write((addr<<1) | 1)) // adress + R + goto error; + tampon[1] = i2c_read(0); + tampon[0] = i2c_read(1); + i2c_stop(); + *value = tampon[1]<<8 | tampon[0] ; + debug("Data read from %02X: %02X+%04X\n",addr,reg,*value); + + return 0; + + error: + debug("Error while xmitting I2C slave\n"); + i2c_stop(); + return -EIO; +} + +int ina3221_trigger(ina3221_t *dev) +{ + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_getStatus(ina3221_t *dev) +{ + return _wireReadRegister(dev->addr, INA3221_REG_MASK, &dev->mask.mask_register); +} + +int ina3221_sync(ina3221_t *dev) +{ + uint16_t ptr_data; + int err = 0; + //////////////////////// Sync config register + if ((err = _wireReadRegister(dev->addr, INA3221_REG_CONFIG, &ptr_data))) // Read config + return err; + if( ptr_data != dev->config.config_register) { + if ((err = _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register))) // Update config + return err; + } + //////////////////////// Sync mask register config + if ((err = _wireReadRegister(dev->addr, INA3221_REG_MASK, &ptr_data))) // Read mask + return err; + if( (ptr_data & INA3221_MASK_CONFIG) != (dev->mask.mask_register & INA3221_MASK_CONFIG)) { + if ((err = _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG))) // Update config + return err; + } + return 0; +} + +int ina3221_setting(ina3221_t *dev ,bool mode, bool bus, bool shunt) +{ + dev->config.mode = mode; + dev->config.ebus = bus; + dev->config.esht = shunt; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) +{ + dev->config.ch1 = ch1; + dev->config.ch2 = ch2; + dev->config.ch3 = ch3; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) +{ + dev->mask.scc1 = ch1; + dev->mask.scc2 = ch2; + dev->mask.scc3 = ch3; + return _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); +} + +int ina3221_enableLatchPin(ina3221_t *dev ,bool warning, bool critical) +{ + dev->mask.wen = warning; + dev->mask.cen = critical; + return _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); +} + +int ina3221_setAverage(ina3221_t *dev, ina3221_avg_t avg) +{ + dev->config.avg = avg; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_setBusConversionTime(ina3221_t *dev,ina3221_ct_t ct) +{ + dev->config.vbus = ct; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_setShuntConversionTime(ina3221_t *dev,ina3221_ct_t ct) +{ + dev->config.vsht = ct; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); +} + +int ina3221_reset(ina3221_t *dev) +{ + dev->config.config_register = INA3221_DEFAULT_CONFIG ; //dev reset + dev->mask.mask_register = INA3221_DEFAULT_CONFIG ; //dev reset + dev->config.rst = 1 ; + return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); // send reset to device +} + +int ina3221_getBusVoltage(ina3221_t *dev, ina3221_channel_t channel, float *voltage) +{ + int16_t raw_value; + int err = 0; + if ((err = _wireReadRegister(dev->addr,INA3221_REG_BUSVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + return err; + *voltage = raw_value*0.001 ; //V 8mV step + return 0; +} + +int ina3221_getShuntValue(ina3221_t *dev, ina3221_channel_t channel, float *voltage, float *current) +{ + int16_t raw_value; + int err = 0; + if ((err = _wireReadRegister(dev->addr,INA3221_REG_SHUNTVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + return err; + *voltage = raw_value*0.005; //mV 40uV step + if(!dev->shunt[channel]) + { + debug("No shunt configured for channel %u. Dev:%X\n",channel+1, dev->addr); + return -EINVAL; + } + *current = (*voltage*1000.0)/dev->shunt[channel] ; //mA + return 0; +} + +int ina3221_getSumShuntValue(ina3221_t *dev, float *voltage) +{ + int16_t raw_value; + int err = 0; + if ((err = _wireReadRegister(dev->addr,INA3221_REG_SHUNT_VOLTAGE_SUM, (uint16_t*)&raw_value))) + return err; + *voltage = raw_value*0.02; //uV 40uV step + return 0; +} + +int ina3221_setCriticalAlert(ina3221_t *dev, ina3221_channel_t channel, float current) +{ + int16_t raw_value = current*dev->shunt[channel]*0.2; // format + return _wireWriteRegister(dev->addr,INA3221_REG_CRITICAL_ALERT_1+channel*2, *(uint16_t*)&raw_value); +} + +int ina3221_setWarningAlert(ina3221_t *dev, ina3221_channel_t channel, float current) +{ + int16_t raw_value = current*dev->shunt[channel]*0.2 ; // format + return _wireWriteRegister(dev->addr,INA3221_REG_WARNING_ALERT_1+channel*2, *(uint16_t*)&raw_value); +} + +int ina3221_setSumWarningAlert(ina3221_t *dev, float voltage) +{ + int16_t raw_value = voltage*50.0 ; // format + return _wireWriteRegister(dev->addr,INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT, *(uint16_t*)&raw_value); +} + +int ina3221_setPowerValidUpperLimit(ina3221_t *dev, float voltage) +{ + if(!dev->config.ebus) + { + debug("Bus not enable. Dev:%X\n", dev->addr); + return -ENOTSUP; + } + int16_t raw_value = voltage*1000.0; //format + return _wireWriteRegister(dev->addr,INA3221_REG_VALID_POWER_UPPER_LIMIT, *(uint16_t*)&raw_value); +} + +int ina3221_setPowerValidLowerLimit(ina3221_t *dev, float voltage) +{ + if(!dev->config.ebus) + { + debug("Bus not enable. Dev:%X\n", dev->addr); + return -ENOTSUP; + } + int16_t raw_value = voltage*1000.0; // round and format + return _wireWriteRegister(dev->addr,INA3221_REG_VALID_POWER_LOWER_LIMIT, *(uint16_t*)&raw_value); +} diff --git a/extras/ina3221/ina3221.h b/extras/ina3221/ina3221.h new file mode 100644 index 0000000..000919c --- /dev/null +++ b/extras/ina3221/ina3221.h @@ -0,0 +1,306 @@ +/** + * INA3221 driver for esp-open-rtos. + * + * Copyright (c) 2016 Zaltora (https://github.com/Zaltora) + * + * MIT Licensed as described in the file LICENSE + * + */ + +#ifndef INA3221_H_ +#define INA3221_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include "i2c/i2c.h" + +#define INA3221_ADDR_0 (0x40) // A0 to GND +#define INA3221_ADDR_1 (0x41) // A0 to Vs+ +#define INA3221_ADDR_2 (0x42) // A0 to SDA +#define INA3221_ADDR_3 (0x43) // A0 to SCL + +#define BUS_NUMBER 3 //Number of shunt available + +#define INA3221_REG_CONFIG (0x00) +#define INA3221_REG_SHUNTVOLTAGE_1 (0x01) +#define INA3221_REG_BUSVOLTAGE_1 (0x02) +#define INA3221_REG_CRITICAL_ALERT_1 (0x07) +#define INA3221_REG_WARNING_ALERT_1 (0x08) +#define INA3221_REG_SHUNT_VOLTAGE_SUM (0x0D) +#define INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT (0x0E) +#define INA3221_REG_MASK (0x0F) +#define INA3221_REG_VALID_POWER_UPPER_LIMIT (0x10) +#define INA3221_REG_VALID_POWER_LOWER_LIMIT (0x11) + +/* + * Default register after reset + */ +#define INA3221_DEFAULT_CONFIG (0x7127) +#define INA3221_DEFAULT_MASK (0x0002) +#define INA3221_DEFAULT_POWER_UPPER_LIMIT (0x2710) //10V +#define INA3221_DEFAULT_POWER_LOWER_LIMIT (0x2328) //9V + +#define INA3221_MASK_CONFIG (0x7C00) +/* + * Numbrer of samples + */ +typedef enum { + INA3221_AVG_1 = 0, //Default + INA3221_AVG_4, + INA3221_AVG_16, + INA3221_AVG_64, + INA3221_AVG_128, + INA3221_AVG_256, + INA3221_AVG_512, + INA3221_AVG_1024, +} ina3221_avg_t; + +/* + * Channel selection list + */ +typedef enum { + CHANNEL_1 = 0, + CHANNEL_2, + CHANNEL_3, +} ina3221_channel_t; + +/* + * Conversion time in us + */ +typedef enum { + INA3221_CT_140 = 0, + INA3221_CT_204, + INA3221_CT_332, + INA3221_CT_588, + INA3221_CT_1100, //Default + INA3221_CT_2116, + INA3221_CT_4156, + INA3221_CT_8244, +} ina3221_ct_t ; + +/* + * Config description register + */ +typedef union +{ + struct { + uint16_t esht : 1; // Enable/Disable shunt measure // LSB + uint16_t ebus : 1; // Enable/Disable bus measure + uint16_t mode : 1; // Single shot measure or continious mode + uint16_t vsht : 3; // Shunt voltage conversion time + uint16_t vbus : 3; // Bus voltage conversion time + uint16_t avg : 3; // number of sample collected and averaged together + uint16_t ch3 : 1; // Enable/Disable channel 3 + uint16_t ch2 : 1; // Enable/Disable channel 2 + uint16_t ch1 : 1; // Enable/Disable channel 1 + uint16_t rst : 1; //Set this bit to 1 to reset device // MSB + }; + uint16_t config_register; +} ina3221_config_t; + + +/* + * Mask/enable description register + */ +typedef union +{ + struct { + uint16_t cvrf : 1 ; // Conversion ready flag (1: ready) // LSB + uint16_t tcf : 1 ; // Timing control flag + uint16_t pvf : 1 ; // Power valid flag + uint16_t wf : 3 ; // Warning alert flag (Read mask to clear) (order : Channel1:channel2:channel3) + uint16_t sf : 1 ; // Sum alert flag (Read mask to clear) + uint16_t cf : 3 ; // Critical alert flag (Read mask to clear) (order : Channel1:channel2:channel3) + uint16_t cen : 1 ; // Critical alert latch (1:enable) + uint16_t wen : 1 ; // Warning alert latch (1:enable) + uint16_t scc3 : 1 ; // channel 3 sum (1:enable) + uint16_t scc2 : 1 ; // channel 2 sum (1:enable) + uint16_t scc1 : 1 ; // channel 1 sum (1:enable) + uint16_t : 1 ; //Reserved //MSB + }; + uint16_t mask_register; +} ina3221_mask_t; + +/* + * Device description + */ +typedef struct { + const uint8_t addr; // ina3221 I2C address + const uint16_t shunt[BUS_NUMBER]; //Memory of shunt value (mOhm) + ina3221_config_t config; //Memory of ina3221 config + ina3221_mask_t mask; //Memory of mask_config +} ina3221_t; + +/** + * sync internal config buffer and mask with external device register ( When struct is manually set ) + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ina3221_sync(ina3221_t *dev); + +/** + * send current config register to trig a measurement in single-shot mode + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ina3221_trigger(ina3221_t *dev); + +/** + * get mask register from the device ( Used to read flags ) + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ina3221_getStatus(ina3221_t *dev); + +/** + * Set options for bus and shunt + * @param dev Pointer to device descriptor + * @param mode Selection of measurement (true :continuous // false:single-shot) + * @param bus Enable/Disable bus measures + * @param shunt Enable/Disable shunt measures + * @return Non-zero if error occured + */ +int ina3221_setting(ina3221_t *dev ,bool mode, bool bus, bool shunt); + +/** + * Select channel + * @param dev Pointer to device descriptor + * @param ch1 Enable/Disable channel 1 ( true : enable // false : disable ) + * @param ch2 Enable/Disable channel 2 ( true : enable // false : disable ) + * @param ch3 Enable/Disable channel 3 ( true : enable // false : disable ) + * @return Non-zero if error occured + */ +int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3); + +/** + * Select channel to be sum (don't impact enable channel status) + * @param dev Pointer to device descriptor + * @param ch1 Enable/Disable channel 1 ( true : enable // false : disable ) + * @param ch2 Enable/Disable channel 2 ( true : enable // false : disable ) + * @param ch3 Enable/Disable channel 3 ( true : enable // false : disable ) + * @return Non-zero if error occured + */ +int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3); + +/** + * enable Latch on warning and critical alert pin + * @param dev Pointer to device descriptor + * @param warning Enable/Disable warning latch ( true : Latch // false : Transparent ) + * @param critical Enable/Disable critical latch ( true : Latch // false : Transparent ) + * @return Non-zero if error occured + */ +int ina3221_enableLatchPin(ina3221_t *dev ,bool warning, bool critical); + +/** + * Set average ( number(s) of point measured ) + * @param dev Pointer to device descriptor + * @param avg Value of average selection + * @return Non-zero if error occured + */ +int ina3221_setAverage(ina3221_t *dev, ina3221_avg_t avg); + +/** + * Set conversion time ( time for a measurement ) for bus. + * @param dev Pointer to device descriptor + * @param ct Value of conversion time selection + * @return Non-zero if error occured + */ +int ina3221_setBusConversionTime(ina3221_t *dev,ina3221_ct_t ct); + +/** + * Set conversion time ( time for a measurement ) for shunt. + * @param dev Pointer to device descriptor + * @param ct Value of conversion time selection + * @return Non-zero if error occured + */ +int ina3221_setShuntConversionTime(ina3221_t *dev,ina3221_ct_t ct); + +/** + * Reset device and config like POR (Power-On-Reset) + * @param dev Pointer to device descriptor + * @return Non-zero if error occured + */ +int ina3221_reset(ina3221_t *dev); + +/** + * Get Bus voltage (V) + * @param dev Pointer to device descriptor + * @param channel Select channel value to get + * @param voltage Data pointer to get bus voltage (V) + * @return Non-zero if error occured + */ +int ina3221_getBusVoltage(ina3221_t *dev, ina3221_channel_t channel, float *voltage); + +/** + * Get Shunt voltage (mV) and current (mA) + * @param dev Pointer to device descriptor + * @param channel Select channel value to get + * @param voltage Data pointer to get shunt voltage (mV) + * @param current Data pointer to get shunt voltage (mA) + * @return Non-zero if error occured + */ +int ina3221_getShuntValue(ina3221_t *dev, ina3221_channel_t channel, float *voltage, float *current); + +/** + * Get Shunt-voltage (mV) sum value of selected channels + * @param dev Pointer to device descriptor + * @param channel Select channel value to get + * @param voltage Data pointer to get shunt voltage (mV) + * @return Non-zero if error occured + */ +int ina3221_getSumShuntValue(ina3221_t *dev, float *voltage); + +/** + * Set Critical alert (when measurement(s) is greater that value set ) + * @param dev Pointer to device descriptor + * @param channel Select channel value to set + * @param current Value to set (mA) // max : 163800/shunt (mOhm) + * @return Non-zero if error occured + */ +int ina3221_setCriticalAlert(ina3221_t *dev, ina3221_channel_t channel, float current); + +/** + * Set Warning alert (when average measurement(s) is greater that value set ) + * @param dev Pointer to device descriptor + * @param channel Select channel value to set + * @param current Value to set (mA) // max : 163800/shunt (mOhm) + * @return Non-zero if error occured + */ +int ina3221_setWarningAlert(ina3221_t *dev, ina3221_channel_t channel, float current); + +/** + * Set Sum Warning alert (Compared to each completed cycle of all selected channels : Sum register ) + * @param dev Pointer to device descriptor + * @param voltage voltage to set (mV) // max : 655.32 + * @return Non-zero if error occured + */ +int ina3221_setSumWarningAlert(ina3221_t *dev, float voltage); + +/** + * Set Power-valid upper-limit ( To determine if power conditions are met.)( bus need enable ) + * If bus voltage exceed the value set, PV pin is high + * @param dev Pointer to device descriptor + * @param voltage voltage to set (V) + * @return Non-zero if error occured + */ +int ina3221_setPowerValidUpperLimit(ina3221_t *dev, float voltage); + +/** + * Set Power-valid lower-limit ( To determine if power conditions are met.)( bus need enable ) + * If bus voltage drops below the value set, PV pin is low + * @param dev Pointer to device descriptor + * @param voltage voltage to set (V) + * @return Non-zero if error occured + */ +int ina3221_setPowerValidLowerLimit(ina3221_t *dev, float voltage); + +#ifdef __cplusplus +} +#endif + +#endif /* INA3221_H_ */ From 2b915c11c771c8685faeec1116115db4b04c076c Mon Sep 17 00:00:00 2001 From: Tuan PM Date: Tue, 3 Jan 2017 05:40:54 +0700 Subject: [PATCH 142/349] add some missing include & fixed display output on sh1104 (#319) * add some missing include * Fixed display on SH1106 --- core/app_main.c | 2 ++ core/debug_dumps.c | 1 + extras/i2s_dma/i2s_dma.c | 1 + extras/ssd1306/ssd1306.c | 2 +- open_esplibs/libmain/user_interface.c | 2 ++ open_esplibs/libwpa/wpa_main.c | 1 + 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/app_main.c b/core/app_main.c index ee27092..05ad952 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -21,6 +21,8 @@ #include "esp/spi_regs.h" #include "esp/dport_regs.h" #include "esp/wdev_regs.h" +#include "esp/wdt_regs.h" +#include "esp/rtcmem_regs.h" #include "esp/hwrand.h" #include "os_version.h" diff --git a/core/debug_dumps.c b/core/debug_dumps.c index c5af763..6300439 100644 --- a/core/debug_dumps.c +++ b/core/debug_dumps.c @@ -19,6 +19,7 @@ #include "xtensa_ops.h" #include "esp/rom.h" #include "esp/uart.h" +#include "esp/dport_regs.h" #include "espressif/esp_common.h" #include "esplibs/libmain.h" diff --git a/extras/i2s_dma/i2s_dma.c b/extras/i2s_dma/i2s_dma.c index 6cccc72..442cdf3 100644 --- a/extras/i2s_dma/i2s_dma.c +++ b/extras/i2s_dma/i2s_dma.c @@ -26,6 +26,7 @@ #include "esp/iomux.h" #include "esp/i2s_regs.h" #include "esp/interrupts.h" +#include "esp/iomux.h" #include "common_macros.h" #include diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index dae29fa..c4f43a9 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -259,7 +259,7 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) #if (SSD1306_I2C_SUPPORT) case SSD1306_PROTO_I2C: for (i = 0; i < len; i++) { - if(dev->screen == SH1106_SCREEN) sh1106_go_coordinate(dev,0,i/dev->width); + if(dev->screen == SH1106_SCREEN && i%dev->width == 0) sh1106_go_coordinate(dev,0,i/dev->width); i2c_start(); if (!i2c_write(dev->addr << 1)) { debug("Error while xmitting I2C slave address\n"); diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index de38e6e..01ac331 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -21,6 +21,8 @@ #include "esp/sar_regs.h" #include "esp/wdev_regs.h" #include "esp/uart.h" +#include "esp/rtc_regs.h" +#include "esp/iomux.h" #include "etstimer.h" #include "espressif/sdk_private.h" diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c index 28acb45..1c70516 100644 --- a/open_esplibs/libwpa/wpa_main.c +++ b/open_esplibs/libwpa/wpa_main.c @@ -15,6 +15,7 @@ #include "esplibs/libwpa.h" #include "esplibs/libpp.h" #include "lwip/dhcp.h" +#include "esp/rtcmem_regs.h" static void wpa_callback1(struct pbuf* pb) { struct netif *netif = sdk_g_ic.v.station_netif_info->netif; From ebfbc1144c93417467c159172b6458437948857f Mon Sep 17 00:00:00 2001 From: Tuan PM Date: Thu, 12 Jan 2017 19:57:50 +0700 Subject: [PATCH 143/349] Process recursive folder for spiffs images (#320) * Process rercursive folder for spiffs images * Flat file name from the directory structure * change method to find '/' as the suggestion of @sheinz * remove unused variable --- extras/spiffs/mkspiffs/mkspiffs.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/extras/spiffs/mkspiffs/mkspiffs.c b/extras/spiffs/mkspiffs/mkspiffs.c index 85fb35f..9ed6a7d 100644 --- a/extras/spiffs/mkspiffs/mkspiffs.c +++ b/extras/spiffs/mkspiffs/mkspiffs.c @@ -178,7 +178,7 @@ static bool process_directory(const char *direcotry) { DIR *dp; struct dirent *ep; - char path[256]; + char path[256], *filename; dp = opendir(direcotry); if (dp != NULL) { @@ -187,12 +187,22 @@ static bool process_directory(const char *direcotry) !strcmp(ep->d_name, "..")) { continue; } + if(ep->d_type == DT_DIR) { + char *new_dir_name = malloc(strlen(direcotry) + strlen(ep->d_name) + 2); + sprintf(new_dir_name, "%s/%s", direcotry, ep->d_name); + process_directory(new_dir_name); + free(new_dir_name); + continue; + } if (ep->d_type != DT_REG) { continue; // not a regular file } sprintf(path, "%s/%s", direcotry, ep->d_name); - printf("Processing file %s\n", path); - if (!process_file(path, ep->d_name)) { + filename = strchr(path, '/'); + filename = filename ? &filename[1] : path; + + printf("Processing file source %s, dest: %s\n", path, filename); + if (!process_file(path, filename)) { printf("Error processing file\n"); break; } From f64935eb1dae74a5be2fedf1f4e0686dd9085637 Mon Sep 17 00:00:00 2001 From: lujji Date: Fri, 27 Jan 2017 08:38:01 +0000 Subject: [PATCH 144/349] HTTP server (#324) extras/httpd and http_server example --- examples/http_server/Makefile | 13 + examples/http_server/fsdata/fs/404.html | 25 + examples/http_server/fsdata/fs/about.html | 26 + .../http_server/fsdata/fs/css/siimple.min.css | 8 + examples/http_server/fsdata/fs/css/style.css | 73 + .../http_server/fsdata/fs/img/favicon.png | Bin 0 -> 760 bytes examples/http_server/fsdata/fs/index.ssi | 76 + examples/http_server/fsdata/fsdata.c | 1361 +++++++++ examples/http_server/fsdata/makefsdata | 114 + examples/http_server/fsdata/readme.txt | 2 + examples/http_server/http_server.c | 114 + extras/httpd/component.mk | 9 + extras/httpd/fs.c | 180 ++ extras/httpd/fs.h | 132 + extras/httpd/fsdata.h | 50 + extras/httpd/httpd.c | 2504 +++++++++++++++++ extras/httpd/httpd.h | 236 ++ extras/httpd/httpd_structs.h | 125 + extras/httpd/readme.txt | 2 + 19 files changed, 5050 insertions(+) create mode 100644 examples/http_server/Makefile create mode 100644 examples/http_server/fsdata/fs/404.html create mode 100644 examples/http_server/fsdata/fs/about.html create mode 100644 examples/http_server/fsdata/fs/css/siimple.min.css create mode 100644 examples/http_server/fsdata/fs/css/style.css create mode 100644 examples/http_server/fsdata/fs/img/favicon.png create mode 100644 examples/http_server/fsdata/fs/index.ssi create mode 100644 examples/http_server/fsdata/fsdata.c create mode 100755 examples/http_server/fsdata/makefsdata create mode 100644 examples/http_server/fsdata/readme.txt create mode 100644 examples/http_server/http_server.c create mode 100644 extras/httpd/component.mk create mode 100644 extras/httpd/fs.c create mode 100644 extras/httpd/fs.h create mode 100644 extras/httpd/fsdata.h create mode 100644 extras/httpd/httpd.c create mode 100644 extras/httpd/httpd.h create mode 100644 extras/httpd/httpd_structs.h create mode 100644 extras/httpd/readme.txt diff --git a/examples/http_server/Makefile b/examples/http_server/Makefile new file mode 100644 index 0000000..42fdd33 --- /dev/null +++ b/examples/http_server/Makefile @@ -0,0 +1,13 @@ +PROGRAM=http_server + +#ESPBAUD=921600 + +EXTRA_CFLAGS=-DLWIP_HTTPD_CGI=1 -DLWIP_HTTPD_SSI=1 -I./fsdata + +EXTRA_COMPONENTS=extras/httpd + +include ../../common.mk + +html: + @echo "Generating fsdata.." + cd fsdata && ./makefsdata diff --git a/examples/http_server/fsdata/fs/404.html b/examples/http_server/fsdata/fs/404.html new file mode 100644 index 0000000..8155203 --- /dev/null +++ b/examples/http_server/fsdata/fs/404.html @@ -0,0 +1,25 @@ + + + + + + + + + + + HTTP Server + + + + +
+

404 - Page not found

+
Sorry, the page you are requesting was not found on this server.
+
+ + + diff --git a/examples/http_server/fsdata/fs/about.html b/examples/http_server/fsdata/fs/about.html new file mode 100644 index 0000000..1692485 --- /dev/null +++ b/examples/http_server/fsdata/fs/about.html @@ -0,0 +1,26 @@ + + + + + + + + + + + HTTP Server + + + + +
+

About

+

This server is built on httpd from LwIP.

+

For more info see HTTP Server documentation.

+
+ + + diff --git a/examples/http_server/fsdata/fs/css/siimple.min.css b/examples/http_server/fsdata/fs/css/siimple.min.css new file mode 100644 index 0000000..a52f026 --- /dev/null +++ b/examples/http_server/fsdata/fs/css/siimple.min.css @@ -0,0 +1,8 @@ +/** + * siimple - Minimal CSS framework for flat and clean designs. + * @version v1.3.7 + * @link https://siimple.juanes.xyz/ + * @license MIT + */ + +@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300);ol,ol li,p,ul,ul li{line-height:28px}.alert,pre{width:calc(100% - 30px)}.alert,.btn{border-radius:5px}.heart:after{content:"\2764";color:#f45660}body,h1,h2,h3,h4,h5,h6{color:#526475}body{margin:0;padding:0;font-family:'Open Sans';font-size:16px;font-weight:300;background-color:#fff}.alert a,a{text-decoration:none;font-weight:400}blockquote{border-left:4px solid #6a7e95;padding:5px 5px 5px 20px}a{color:#09a0f6;transition:all .3s}a:hover{text-decoration:underline;cursor:pointer}p{margin-bottom:20px;margin-top:0;display:block}ol,ul{margin-bottom:16px;margin-top:0}.alert,h1,h2,h3,h4,h5,h6{font-weight:300;margin-top:0;margin-bottom:20px;display:block}small{color:#6a7e95;font-size:14px}h1{font-size:36px;line-height:50px}h2{font-size:32px;line-height:46px}h3{font-size:28px;line-height:42px}h4{font-size:24px;line-height:38px}h5{font-size:20px;line-height:34px}.alert,.btn,h6{font-size:16px}h6{line-height:30px}.alert{text-align:left;border-width:1px;border-style:solid;background-color:#E1F5FE;color:#03A9F4;border-color:#03A9F4;padding:16px 14px;padding:16px 14px;padding:16px 14px}.btn,.btn-outline{font-family:'Open Sans';font-weight:300;display:inline-block;transition:all .3s;-webkit-touch-callout:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;text-align:center;cursor:pointer;margin:5px 5px 20px}.alert-error{color:#D32F2F;background-color:#FFEBEE;border-color:#F44336}.alert-warning{background-color:#FFF8E1;color:#FF8F00;border-color:#FFC107}.alert-done{background-color:#E8F5E9;color:#388E3C;border-color:#4CAF50}.btn{text-decoration:none!important;line-height:28px;color:#fff;background-color:#09a0f6;border:0;padding:5px 25px}.btn:hover{text-decoration:none;opacity:.8}.btn-small{font-size:14px!important;line-height:20px!important;padding:4px 15px!important}.btn-big{font-size:22px!important;line-height:34px!important;padding:8px 30px!important}.btn-outline,pre{line-height:28px}.btn-outline{font-size:16px;text-decoration:none!important;border-radius:5px;color:#09a0f6;background-color:transparent;border:1px solid #09a0f6;padding:5px 25px}.btn-outline:hover{text-decoration:none;color:#fff;background-color:#09a0f6}code,pre{font-family:'Open Sans';font-size:16px;font-weight:300;border-radius:5px;background-color:#f1f5fa}code{color:#09a0f6;padding-left:6px;padding-right:6px}pre{display:block;padding:14px;margin-bottom:20px;color:#526475;overflow-x:auto}.form-input[disabled],.form-input[type=text],.form-input[type=password],.form-input[type=number],.form-input[type=email],.form-input[type=date]{color:#526475;padding:10px;outline:0;box-sizing:border-box;margin:0 5px 20px;font-family:'Open Sans';font-size:16px;font-weight:300;display:inline-block;transition:all .3s;height:40px}.form-input[type=text],.form-input[type=password],.form-input[type=number],.form-input[type=email]{width:100%;border:1px solid #d1e1e8;border-radius:5px;line-height:40px}.form-input[type=text]:focus,.form-input[type=password]:focus,.form-input[type=number]:focus,.form-input[type=email]:focus{border:1px solid #09a0f6}.form-input[type=date]{border:1px solid #d1e1e8;border-radius:5px;width:auto!important}.form-input[type=date]:focus{border:1px solid #09a0f6}.form-input[disabled]{width:100%;border:1px solid #d1e1e8;border-radius:5px;cursor:not-allowed;background-color:#d1e1e8}.form-input[disabled]:focus{border:1px solid #09a0f6}.form-input[type=submit],.form-input[type=button]{font-family:'Open Sans';font-size:16px;font-weight:300;-webkit-touch-callout:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;text-align:center;text-decoration:none!important;line-height:28px;display:inline-block;cursor:pointer;border-radius:5px;transition:all .3s;color:#fff;background-color:#09a0f6;border:0;margin:5px 5px 20px;padding:5px 25px}.form-select,.form-textarea{font-family:'Open Sans';font-size:16px;display:inline-block;width:100%;transition:all .3s;outline:0;box-sizing:border-box;margin:0 5px 20px;font-weight:300;color:#526475}.form-input[type=submit]:hover,.form-input[type=button]:hover{text-decoration:none;opacity:.8}.form-select{padding:6px 10px 10px;border:1px solid #d1e1e8;border-radius:5px;height:40px;background-color:#fff}.form-select:focus{border:1px solid #09a0f6}.form-textarea{padding:10px;border:1px solid #d1e1e8;border-radius:5px;resize:vertical}.form-textarea:focus{border:1px solid #09a0f6}.form-auto{width:auto!important}.grid{display:block;width:960px;margin-left:auto;margin-right:auto;min-height:40px}@media (max-width:960px){.grid{width:94%}}.grid-fluid,.row{width:100%}.row{display:inline-block;margin-left:0;margin-right:0}.row:after{content:" ";clear:both;display:table;line-height:0}.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-7,.col-8,.col-9{display:inline-block;vertical-align:top;float:left;padding:1%}.col-1{width:6.33%}.col-2{width:14.66%}.col-3{width:22.99%}.col-4{width:31.33%}.col-5{width:39.66%}.col-6{width:47.99%;display:inline-block;vertical-align:top;float:left;padding:1%}.col-7{width:56.33%}.col-8{width:64.66%}.col-9{width:72.99%}.col-10{width:81.33%}.col-11{width:89.66%}.col-12{width:97.99%}@media (max-width:400px){.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{width:98%}}.table{display:table;width:100%;border-width:0;border-collapse:collapse;font-weight:300;color:#526475;margin-top:0;margin-bottom:20px}.table thead tr td{font-weight:400;border-bottom:2px solid #d1e1e8;background-color:#f6f8fa}.table tr td{border-bottom:1px solid #d1e1e8;padding-top:10px;padding-bottom:10px;padding-left:10px} \ No newline at end of file diff --git a/examples/http_server/fsdata/fs/css/style.css b/examples/http_server/fsdata/fs/css/style.css new file mode 100644 index 0000000..b5b27d6 --- /dev/null +++ b/examples/http_server/fsdata/fs/css/style.css @@ -0,0 +1,73 @@ +ul.navbar { + list-style-type: none; + margin-bottom: 32px; + padding: 0; + overflow: hidden; + background-color: #333; +} +ul.navbar li { + float: left; +} +ul.navbar li a { + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} +ul.navbar li a:hover:not(.active) { + background-color: #111; +} +ul.navbar li a.active { + background-color: #09a0f6; +} +@media screen and (max-width: 600px){ + ul.navbar li.right, + ul.navbar li {float: none;} +} +.onoffswitch { + position: relative; width: 90px; + -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; +} +.onoffswitch-checkbox { + display: none; +} +.onoffswitch-label { + display: block; overflow: hidden; cursor: pointer; + border: 2px solid #03A9F4; border-radius: 20px; +} +.onoffswitch-inner { + display: block; width: 200%; margin-left: -100%; + transition: margin 0.3s ease-in 0s; +} +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px; + font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; + box-sizing: border-box; +} +.onoffswitch-inner:before { + content: "ON"; + text-align: left; + padding-left: 14px; + background-color: #E1F5FE; color: #03A9F4; +} +.onoffswitch-inner:after { + content: "OFF"; + padding-right: 14px; + background-color: #FFFFFF; color: #999999; + text-align: right; +} +.onoffswitch-switch { + display: block; width: 18px; margin: 6px; + background: #FFFFFF; + position: absolute; top: 0; bottom: 0; + right: 56px; + border: 2px solid #03A9F4; border-radius: 20px; + transition: all 0.3s ease-in 0s; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0px; +} \ No newline at end of file diff --git a/examples/http_server/fsdata/fs/img/favicon.png b/examples/http_server/fsdata/fs/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..126f24bde71131a4525e4f01194a005c1c02080b GIT binary patch literal 760 zcmVE%W_PcPXx9ZNFu_^23#{9&T!sj(X?Ov8tY$dSU1=sy~EZQ`omVL_qUWZ9%H1 zk5`YM)(#yzwFvCllzBG?EpsM!c68LUC%KEkR2PY;AFJ&U_N(lT2hnwnbTW#f`iSh> zd+yQPkDqrOOuYBuo~8puv&sHcgtl-|6c6k5Hdb5E+a1KGt3)GVGMUUl*qP}7 zqOtC=LaC1Hx|~1SgK631j2g>EjjCl+YYJMnO)R7%TuC?*V`yY_yaN!fOu4RP^yOZ< z0xGT$M1vZ$E9Z?9g0ilG9~So^G1D}OpYYoe)M&K~YZkrKyo3F;n}^Q+uj{*x<)0hWnb z{JjAA`G0ayUTP2bCnjl>sGB8L*UFUEO?HGd7IS%~uFp^?6j+$Q$8Wh`@p;`h|CNK> z!t~vfBj;o+q@OwRQW_xyUwnO&?{3VoRw(es>w_#lxKBivd}RvrKbumQ;JfcW1rjR4_TGMyY6=#?`+-zow& q&;V9};`0F8U3s?5a!Z$6kN*OAnJ3*~Q27S{0000 + + + + + + + + + + HTTP Server + + + + +
+

ESP8266 HTTP Server

+ +
HTTP Server is up and running.
+ +

This is an example HTTP server with CGI and SSI support. The switch below will allow you to test CGI handler and turn + the blue LED on or off.

+ +
+
+ + +
+
+ +

Server Status

+ + + + + + + + + + + + + +
Uptime: seconds
Free heap: bytes
LED state:
+ +

How it works

+

Each time the server detects a tag of the form <!--#name--> in a .shtml, .ssi or .shtm file + where name appears as one of the tags supplied to http_set_ssi_handler in the pcConfigSSITags array, + an insert string is appended after the tag string in file and sent back to the client.

+

A CGI handler function is called each time the server is asked for a file + whose name was previously registered as a CGI function using a call to http_set_cgi_handler. + This function allows you to access the parameters provided along with the URI.

+
+ + + + diff --git a/examples/http_server/fsdata/fsdata.c b/examples/http_server/fsdata/fsdata.c new file mode 100644 index 0000000..90d8c06 --- /dev/null +++ b/examples/http_server/fsdata/fsdata.c @@ -0,0 +1,1361 @@ +#include "httpd/fsdata.h" + +static const unsigned char data_index_ssi[] = { + /* /index.ssi */ + 0x2F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x2E, 0x73, 0x73, 0x69, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, + 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, + 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, + 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, + 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, + 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, + 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, + 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, + 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, + 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, + 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, + 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, + 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, + 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, + 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, + 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, + 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, + 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, + 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, + 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3D, 0x22, 0x2F, 0x22, 0x3E, 0x48, 0x6F, 0x6D, 0x65, 0x3C, + 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, + 0x22, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, + 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x2F, 0x75, 0x6C, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, + 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x67, 0x72, 0x69, 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x45, + 0x53, 0x50, 0x38, 0x32, 0x36, 0x36, 0x20, 0x48, 0x54, 0x54, + 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3C, 0x2F, + 0x68, 0x31, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, + 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x61, 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, + 0x74, 0x2D, 0x64, 0x6F, 0x6E, 0x65, 0x22, 0x3E, 0x48, 0x54, + 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x69, 0x73, 0x20, 0x75, 0x70, 0x20, 0x61, 0x6E, 0x64, 0x20, + 0x72, 0x75, 0x6E, 0x6E, 0x69, 0x6E, 0x67, 0x2E, 0x3C, 0x2F, + 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x6E, 0x20, 0x65, 0x78, 0x61, 0x6D, 0x70, 0x6C, 0x65, + 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x47, + 0x49, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x53, 0x53, 0x49, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x2E, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, + 0x62, 0x65, 0x6C, 0x6F, 0x77, 0x20, 0x77, 0x69, 0x6C, 0x6C, + 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x20, 0x79, 0x6F, 0x75, + 0x20, 0x74, 0x6F, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x43, + 0x47, 0x49, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, + 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x75, 0x72, 0x6E, 0x0A, + 0x09, 0x09, 0x09, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6C, 0x75, + 0x65, 0x20, 0x4C, 0x45, 0x44, 0x20, 0x6F, 0x6E, 0x20, 0x6F, + 0x72, 0x20, 0x6F, 0x66, 0x66, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x63, 0x6F, 0x76, + 0x65, 0x72, 0x22, 0x20, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3D, + 0x22, 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x22, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x69, 0x6E, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x63, 0x68, + 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x22, 0x20, 0x6E, 0x61, + 0x6D, 0x65, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x20, 0x63, 0x6C, 0x61, + 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, 0x65, 0x63, + 0x6B, 0x62, 0x6F, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3D, 0x22, + 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x22, 0x20, 0x6F, 0x6E, 0x63, 0x6C, 0x69, 0x63, 0x6B, 0x3D, + 0x22, 0x67, 0x70, 0x69, 0x6F, 0x28, 0x29, 0x3B, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x61, 0x62, + 0x65, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x2D, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x22, 0x20, 0x66, + 0x6F, 0x72, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x3C, 0x73, 0x70, 0x61, 0x6E, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x22, 0x3E, 0x3C, 0x2F, 0x73, 0x70, 0x61, + 0x6E, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, + 0x73, 0x70, 0x61, 0x6E, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x22, 0x3E, 0x3C, 0x2F, 0x73, 0x70, 0x61, 0x6E, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x6C, 0x61, 0x62, + 0x65, 0x6C, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, + 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, + 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x68, 0x31, 0x3E, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3C, 0x2F, 0x68, 0x31, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x61, 0x62, 0x6C, + 0x65, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x74, + 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, 0x61, 0x62, 0x6C, 0x65, + 0x2D, 0x73, 0x74, 0x72, 0x69, 0x70, 0x65, 0x64, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, + 0x62, 0x3E, 0x55, 0x70, 0x74, 0x69, 0x6D, 0x65, 0x3A, 0x3C, + 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x21, + 0x2D, 0x2D, 0x23, 0x75, 0x70, 0x74, 0x69, 0x6D, 0x65, 0x2D, + 0x2D, 0x3E, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, + 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x46, 0x72, 0x65, + 0x65, 0x20, 0x68, 0x65, 0x61, 0x70, 0x3A, 0x3C, 0x2F, 0x62, + 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, + 0x23, 0x68, 0x65, 0x61, 0x70, 0x2D, 0x2D, 0x3E, 0x20, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, + 0x3E, 0x4C, 0x45, 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x20, + 0x69, 0x64, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, 0x23, 0x6C, + 0x65, 0x64, 0x2D, 0x2D, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x61, 0x62, 0x6C, + 0x65, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, + 0x3E, 0x48, 0x6F, 0x77, 0x20, 0x69, 0x74, 0x20, 0x77, 0x6F, + 0x72, 0x6B, 0x73, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x20, 0x45, 0x61, 0x63, 0x68, + 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x67, + 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, + 0x72, 0x6D, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x26, + 0x6C, 0x74, 0x3B, 0x21, 0x2D, 0x2D, 0x23, 0x6E, 0x61, 0x6D, + 0x65, 0x2D, 0x2D, 0x26, 0x67, 0x74, 0x3B, 0x3C, 0x2F, 0x63, + 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x69, 0x6E, 0x20, 0x61, 0x20, + 0x2E, 0x73, 0x68, 0x74, 0x6D, 0x6C, 0x2C, 0x20, 0x2E, 0x73, + 0x73, 0x69, 0x20, 0x6F, 0x72, 0x20, 0x2E, 0x73, 0x68, 0x74, + 0x6D, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x3C, 0x63, 0x6F, + 0x64, 0x65, 0x3E, 0x6E, 0x61, 0x6D, 0x65, 0x3C, 0x2F, 0x63, + 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, + 0x72, 0x73, 0x20, 0x61, 0x73, 0x20, 0x6F, 0x6E, 0x65, 0x20, + 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6C, 0x69, 0x65, 0x64, + 0x20, 0x74, 0x6F, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, + 0x68, 0x74, 0x74, 0x70, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x73, + 0x73, 0x69, 0x5F, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, + 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x69, 0x6E, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, + 0x3E, 0x70, 0x63, 0x43, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x53, + 0x53, 0x49, 0x54, 0x61, 0x67, 0x73, 0x3C, 0x2F, 0x63, 0x6F, + 0x64, 0x65, 0x3E, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x2C, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x61, 0x6E, 0x20, 0x69, 0x6E, + 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6E, + 0x64, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x6E, 0x20, 0x66, 0x69, + 0x6C, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x65, 0x6E, + 0x74, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x20, 0x74, 0x6F, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, + 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x70, 0x3E, 0x41, 0x20, 0x43, 0x47, 0x49, 0x20, 0x68, 0x61, + 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x20, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x69, 0x73, 0x20, 0x63, 0x61, + 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x73, 0x6B, 0x65, 0x64, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x61, + 0x20, 0x66, 0x69, 0x6C, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x68, 0x6F, 0x73, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, + 0x20, 0x77, 0x61, 0x73, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6F, 0x75, 0x73, 0x6C, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x61, 0x20, 0x43, 0x47, 0x49, 0x20, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x75, 0x73, 0x69, 0x6E, 0x67, + 0x20, 0x61, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x6F, + 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x68, 0x74, 0x74, + 0x70, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x67, 0x69, 0x5F, + 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x3C, 0x2F, 0x63, + 0x6F, 0x64, 0x65, 0x3E, 0x2E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, + 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x73, + 0x20, 0x79, 0x6F, 0x75, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x70, 0x72, 0x6F, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x61, + 0x6C, 0x6F, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x55, 0x52, 0x49, 0x2E, 0x3C, 0x2F, + 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, + 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, + 0x64, 0x6F, 0x77, 0x2E, 0x6F, 0x6E, 0x6C, 0x6F, 0x61, 0x64, + 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x20, 0x28, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x76, 0x61, 0x72, 0x20, 0x6C, 0x73, 0x20, 0x3D, 0x20, + 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, + 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x27, 0x29, 0x2E, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x6C, 0x73, 0x20, 0x3D, 0x20, 0x6C, 0x73, 0x2E, 0x73, + 0x70, 0x6C, 0x69, 0x74, 0x28, 0x2F, 0x2D, 0x2D, 0x3E, 0x2F, + 0x29, 0x2E, 0x70, 0x6F, 0x70, 0x28, 0x29, 0x2E, 0x74, 0x72, + 0x69, 0x6D, 0x28, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, + 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, + 0x65, 0x63, 0x6B, 0x65, 0x64, 0x20, 0x3D, 0x20, 0x28, 0x6C, + 0x73, 0x20, 0x3D, 0x3D, 0x20, 0x27, 0x4F, 0x6E, 0x27, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, + 0x67, 0x70, 0x69, 0x6F, 0x28, 0x29, 0x20, 0x7B, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6F, 0x63, + 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, + 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, 0x65, 0x63, 0x6B, + 0x65, 0x64, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, + 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x6C, 0x6F, 0x63, 0x61, + 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x68, 0x72, 0x65, 0x66, 0x20, + 0x3D, 0x20, 0x27, 0x67, 0x70, 0x69, 0x6F, 0x3F, 0x6F, 0x66, + 0x66, 0x3D, 0x32, 0x27, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x6C, 0x6F, 0x63, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x68, 0x72, 0x65, 0x66, + 0x20, 0x3D, 0x20, 0x27, 0x67, 0x70, 0x69, 0x6F, 0x3F, 0x6F, + 0x6E, 0x3D, 0x32, 0x27, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, + 0x3B, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, + 0x79, 0x3E, 0x0A, 0x3C, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, + 0x0A, }; + +static const unsigned char data_404_html[] = { + /* /404.html */ + 0x2F, 0x34, 0x30, 0x34, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x34, + 0x30, 0x34, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x6F, + 0x74, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x0D, 0x0A, 0x6C, + 0x77, 0x49, 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, + 0x28, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, + 0x76, 0x61, 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, + 0x67, 0x6E, 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, + 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, + 0x70, 0x29, 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, + 0x74, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, + 0x0A, 0x3C, 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, + 0x20, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, + 0x6D, 0x6C, 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, + 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, + 0x74, 0x66, 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6D, 0x65, 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, + 0x22, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, + 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, + 0x62, 0x6C, 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, + 0x6C, 0x3D, 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, + 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, + 0x22, 0x74, 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, + 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, + 0x69, 0x6E, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, + 0x3D, 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, + 0x74, 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, + 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, + 0x72, 0x65, 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, + 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, + 0x66, 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, + 0x67, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, + 0x74, 0x6C, 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, + 0x6C, 0x65, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, + 0x64, 0x3E, 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, + 0x73, 0x73, 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, + 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, + 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, + 0x22, 0x3E, 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, + 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, + 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, + 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, + 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, + 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x34, 0x30, 0x34, 0x20, + 0x2D, 0x20, 0x50, 0x61, 0x67, 0x65, 0x20, 0x6E, 0x6F, 0x74, + 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x3C, 0x2F, 0x68, 0x31, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x6C, 0x65, + 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x65, + 0x72, 0x72, 0x6F, 0x72, 0x22, 0x3E, 0x53, 0x6F, 0x72, 0x72, + 0x79, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, + 0x20, 0x77, 0x61, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x66, + 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2E, + 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x62, + 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, 0x2F, 0x68, 0x74, 0x6D, + 0x6C, 0x3E, 0x0A, 0x0A, }; + +static const unsigned char data_about_html[] = { + /* /about.html */ + 0x2F, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, + 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, + 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, + 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, + 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, + 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, + 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, + 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, + 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, + 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, + 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, + 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, + 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, + 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, + 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, + 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, + 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, + 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, + 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, 0x22, 0x3E, + 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, + 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, + 0x3E, 0x3C, 0x61, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, + 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, + 0x22, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, + 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x2F, 0x75, 0x6C, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, + 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x67, 0x72, 0x69, 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x41, + 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, + 0x20, 0x62, 0x75, 0x69, 0x6C, 0x74, 0x20, 0x6F, 0x6E, 0x20, + 0x68, 0x74, 0x74, 0x70, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, + 0x20, 0x4C, 0x77, 0x49, 0x50, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x46, 0x6F, 0x72, + 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x69, 0x6E, 0x66, 0x6F, + 0x20, 0x73, 0x65, 0x65, 0x20, 0x3C, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, + 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x6C, 0x77, 0x69, 0x70, + 0x2F, 0x32, 0x5F, 0x30, 0x5F, 0x30, 0x2F, 0x67, 0x72, 0x6F, + 0x75, 0x70, 0x5F, 0x5F, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2E, + 0x68, 0x74, 0x6D, 0x6C, 0x22, 0x3E, 0x48, 0x54, 0x54, 0x50, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x6F, + 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x3C, 0x2F, 0x61, 0x3E, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x0A, }; + +static const unsigned char data_img_favicon_png[] = { + /* /img/favicon.png */ + 0x2F, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x69, 0x6D, 0x61, 0x67, + 0x65, 0x2F, 0x70, 0x6E, 0x67, 0x0D, 0x0A, 0x0D, 0x0A, 0x89, + 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, + 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 0xF3, + 0xFF, 0x61, 0x00, 0x00, 0x02, 0xBF, 0x49, 0x44, 0x41, 0x54, + 0x38, 0xCB, 0xA5, 0x92, 0x4F, 0x6C, 0x14, 0x75, 0x14, 0xC7, + 0x3F, 0x3B, 0x3B, 0x33, 0xFB, 0xBF, 0xBB, 0x74, 0x59, 0xD8, + 0xA5, 0xC5, 0x76, 0x4B, 0x65, 0x6B, 0x49, 0x10, 0x41, 0x41, + 0x20, 0x84, 0xD2, 0x80, 0x6D, 0x6C, 0x62, 0x80, 0xC4, 0x78, + 0xF1, 0x64, 0xD2, 0x93, 0x89, 0x77, 0xF1, 0xE4, 0xD9, 0x83, + 0x37, 0x63, 0x3C, 0xE0, 0xC5, 0x43, 0x2F, 0x46, 0x23, 0x90, + 0x70, 0x30, 0x01, 0xA5, 0x6A, 0x29, 0x2D, 0x65, 0xA1, 0x14, + 0xD3, 0xAD, 0x08, 0xBB, 0x9A, 0xD9, 0xA6, 0xBB, 0x65, 0xF6, + 0x5F, 0x67, 0x77, 0xE7, 0x37, 0xF3, 0xF3, 0x62, 0xD7, 0xA6, + 0xE2, 0xC9, 0x77, 0x79, 0x2F, 0x2F, 0xEF, 0xFB, 0xC9, 0x37, + 0x2F, 0x5F, 0xF8, 0x9F, 0xE5, 0xD9, 0xBE, 0x78, 0x77, 0xF2, + 0x83, 0x54, 0xA2, 0x7F, 0xF8, 0x13, 0xAF, 0x2F, 0xFC, 0xB6, + 0xAB, 0x06, 0xF4, 0xEE, 0xB0, 0x9F, 0xDB, 0xF3, 0xD9, 0x92, + 0x91, 0x5F, 0xF9, 0x72, 0xEE, 0xDA, 0xE5, 0x4B, 0x80, 0xF8, + 0x4F, 0xC0, 0x89, 0x8B, 0xEF, 0xBF, 0x63, 0x05, 0x52, 0x53, + 0x17, 0x26, 0xC6, 0x19, 0x39, 0xD4, 0x47, 0xD0, 0xA7, 0x52, + 0xB1, 0xDA, 0x2C, 0x3D, 0x2D, 0xF3, 0xFD, 0x4F, 0x77, 0x29, + 0xAE, 0x64, 0x6D, 0xBF, 0x65, 0xBC, 0xF2, 0xC3, 0x95, 0xAF, + 0x1E, 0x6E, 0x6A, 0x94, 0x8E, 0x7A, 0xE7, 0xD1, 0xB1, 0xAA, + 0x9E, 0x9A, 0x7A, 0x61, 0xE8, 0x30, 0xAA, 0x3F, 0x84, 0x5F, + 0x53, 0xD8, 0xB7, 0x3B, 0x44, 0x40, 0xF3, 0x52, 0x6D, 0x41, + 0xAA, 0xA7, 0x8F, 0x57, 0x8F, 0x9F, 0xD6, 0x0E, 0x1D, 0x3B, + 0xB5, 0x08, 0xEC, 0xD9, 0x94, 0x79, 0x37, 0x07, 0x2D, 0x73, + 0x26, 0x77, 0x76, 0x74, 0xD4, 0xB3, 0x27, 0xB9, 0x8B, 0xC1, + 0x54, 0x17, 0x89, 0xA8, 0x1F, 0xAB, 0xED, 0x10, 0xF6, 0xAB, + 0xEC, 0x8D, 0x07, 0xD1, 0x75, 0x8D, 0x74, 0x32, 0x8A, 0xA2, + 0xFA, 0x88, 0xEC, 0xDA, 0x7B, 0xEE, 0xD1, 0xDC, 0x8F, 0x9F, + 0x77, 0x1C, 0x4C, 0xBC, 0xF7, 0xE1, 0xE4, 0x81, 0xE1, 0x03, + 0x9E, 0xA6, 0x03, 0x45, 0xB3, 0xC9, 0xFE, 0x54, 0x84, 0xB6, + 0x70, 0x51, 0x14, 0x0F, 0xEB, 0xF5, 0x36, 0x56, 0x5B, 0xD0, + 0xDB, 0x1D, 0xC4, 0xA7, 0xAB, 0x44, 0x23, 0x61, 0x32, 0x99, + 0xCC, 0x41, 0xD8, 0x99, 0xE9, 0x00, 0xA2, 0xB1, 0xEE, 0xB1, + 0x42, 0xA9, 0x8E, 0xEB, 0xBA, 0x9C, 0x3F, 0xDA, 0x83, 0x69, + 0xD9, 0xE4, 0x8C, 0x1A, 0xCB, 0x46, 0x8D, 0xAA, 0x65, 0x53, + 0x6B, 0x0A, 0x5A, 0xB6, 0x4D, 0x2C, 0xA4, 0x23, 0x5C, 0x49, + 0x38, 0x12, 0x63, 0x68, 0x64, 0x74, 0xBC, 0x03, 0x10, 0xAE, + 0x4C, 0xB9, 0xAE, 0x64, 0xF4, 0xE5, 0x5E, 0xBA, 0x02, 0x2A, + 0xAE, 0x10, 0x44, 0x83, 0x1A, 0xB3, 0x2B, 0xEB, 0xAC, 0x18, + 0x35, 0xCC, 0x5A, 0x93, 0xC7, 0x46, 0x85, 0xB6, 0xED, 0x20, + 0xA5, 0x8B, 0x70, 0x1C, 0xF6, 0xA7, 0xFB, 0x77, 0x77, 0x00, + 0xD9, 0xA5, 0x5C, 0xA9, 0x65, 0x35, 0x28, 0x99, 0x75, 0x2A, + 0xB5, 0x06, 0x21, 0x5D, 0xC1, 0x15, 0x36, 0xC7, 0x06, 0xBA, + 0xF0, 0x79, 0x5D, 0x14, 0x1C, 0xE2, 0x61, 0x15, 0x29, 0x1D, + 0x14, 0x24, 0x9A, 0xD7, 0xC3, 0xAD, 0x3B, 0xD9, 0xF5, 0xCE, + 0x13, 0xCB, 0x76, 0x24, 0xB9, 0x6F, 0xA0, 0x6F, 0xBC, 0x58, + 0xB5, 0x69, 0xD8, 0x92, 0x54, 0x3C, 0x4C, 0xAB, 0x2D, 0x10, + 0xC2, 0xE1, 0x59, 0x75, 0x03, 0x9F, 0xEA, 0x21, 0xF7, 0x47, + 0x09, 0x5C, 0x87, 0x46, 0xA3, 0x4E, 0x76, 0x71, 0x89, 0xD9, + 0x6F, 0xAF, 0x5E, 0x82, 0x8A, 0xA1, 0x02, 0xD0, 0x58, 0xFB, + 0xAC, 0x55, 0x2B, 0x7F, 0x3A, 0x3D, 0x6B, 0xA2, 0xA9, 0x5E, + 0xCE, 0x1E, 0xEE, 0x47, 0x91, 0x12, 0xC7, 0x71, 0x09, 0xEA, + 0x1E, 0x96, 0xF3, 0xAB, 0xDC, 0x5B, 0xFE, 0x93, 0x2B, 0x86, + 0x01, 0x96, 0x89, 0x59, 0xFC, 0xBD, 0x00, 0xF9, 0xF9, 0x7F, + 0x72, 0x50, 0x5E, 0x6A, 0x0F, 0xF7, 0x27, 0x26, 0x69, 0x94, + 0xA8, 0x9B, 0x25, 0x56, 0xD7, 0xCA, 0x94, 0xD6, 0x4D, 0x76, + 0x84, 0x34, 0x16, 0x73, 0x79, 0xA6, 0xAE, 0xCF, 0x50, 0x28, + 0x14, 0x58, 0x98, 0xBF, 0xC7, 0x6F, 0xB9, 0x5F, 0xF1, 0x79, + 0xDD, 0x37, 0xFF, 0x95, 0x83, 0xDC, 0xC2, 0xF4, 0xDD, 0x93, + 0x23, 0xE7, 0x64, 0x2C, 0xA4, 0x9F, 0x39, 0xF2, 0x52, 0x1A, + 0x21, 0x04, 0x5F, 0x7C, 0x7D, 0x93, 0xEF, 0x6E, 0xCC, 0xB1, + 0x56, 0x28, 0xF0, 0xC6, 0xEB, 0x83, 0x2C, 0x3E, 0xB8, 0x4F, + 0x44, 0x97, 0xE3, 0xF9, 0x99, 0x6F, 0x7E, 0x79, 0x5E, 0x94, + 0x35, 0x20, 0x46, 0xA0, 0xE7, 0xAD, 0x17, 0x5F, 0x3B, 0xF5, + 0x91, 0xF0, 0x06, 0xD3, 0x89, 0xF8, 0x0E, 0x1E, 0x3D, 0x2E, + 0x30, 0xD8, 0x9B, 0x60, 0x61, 0x7A, 0x3A, 0xCB, 0xC6, 0x93, + 0x8F, 0x69, 0x56, 0x1E, 0x00, 0x06, 0xB0, 0x01, 0xC8, 0xED, + 0x80, 0xF8, 0xDF, 0x31, 0x8D, 0x00, 0xE1, 0x58, 0x32, 0x9D, + 0x1C, 0x1A, 0xE8, 0x95, 0x33, 0x3F, 0xDF, 0x2A, 0x02, 0x36, + 0xD0, 0x00, 0x56, 0x81, 0xE2, 0xF3, 0x00, 0xDB, 0x5D, 0x79, + 0xB6, 0xCC, 0x72, 0x4B, 0x97, 0x5B, 0x8F, 0xFF, 0x02, 0x78, + 0x99, 0x27, 0xDD, 0x60, 0x50, 0xF9, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, }; + +static const unsigned char data_css_siimple_min_css[] = { + /* /css/siimple.min.css */ + 0x2F, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2E, 0x63, 0x73, 0x73, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, + 0x2F, 0x2A, 0x2A, 0x0A, 0x20, 0x2A, 0x20, 0x73, 0x69, 0x69, + 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x69, 0x6E, + 0x69, 0x6D, 0x61, 0x6C, 0x20, 0x43, 0x53, 0x53, 0x20, 0x66, + 0x72, 0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x20, 0x66, + 0x6F, 0x72, 0x20, 0x66, 0x6C, 0x61, 0x74, 0x20, 0x61, 0x6E, + 0x64, 0x20, 0x63, 0x6C, 0x65, 0x61, 0x6E, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x67, 0x6E, 0x73, 0x2E, 0x0A, 0x20, 0x2A, 0x20, + 0x40, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x76, + 0x31, 0x2E, 0x33, 0x2E, 0x37, 0x0A, 0x20, 0x2A, 0x20, 0x40, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3A, 0x2F, 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, + 0x2E, 0x6A, 0x75, 0x61, 0x6E, 0x65, 0x73, 0x2E, 0x78, 0x79, + 0x7A, 0x2F, 0x0A, 0x20, 0x2A, 0x20, 0x40, 0x6C, 0x69, 0x63, + 0x65, 0x6E, 0x73, 0x65, 0x20, 0x4D, 0x49, 0x54, 0x0A, 0x20, + 0x2A, 0x2F, 0x0A, 0x0A, 0x40, 0x69, 0x6D, 0x70, 0x6F, 0x72, + 0x74, 0x20, 0x75, 0x72, 0x6C, 0x28, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3A, 0x2F, 0x2F, 0x66, 0x6F, 0x6E, 0x74, 0x73, 0x2E, + 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x63, 0x73, 0x73, 0x3F, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3D, 0x4F, 0x70, 0x65, 0x6E, + 0x2B, 0x53, 0x61, 0x6E, 0x73, 0x3A, 0x34, 0x30, 0x30, 0x2C, + 0x33, 0x30, 0x30, 0x29, 0x3B, 0x6F, 0x6C, 0x2C, 0x6F, 0x6C, + 0x20, 0x6C, 0x69, 0x2C, 0x70, 0x2C, 0x75, 0x6C, 0x2C, 0x75, + 0x6C, 0x20, 0x6C, 0x69, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, + 0x78, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x70, + 0x72, 0x65, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x63, + 0x61, 0x6C, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2D, + 0x20, 0x33, 0x30, 0x70, 0x78, 0x29, 0x7D, 0x2E, 0x61, 0x6C, + 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, 0x7B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x5C, + 0x32, 0x37, 0x36, 0x34, 0x22, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x66, 0x34, 0x35, 0x36, 0x36, 0x30, 0x7D, + 0x62, 0x6F, 0x64, 0x79, 0x2C, 0x68, 0x31, 0x2C, 0x68, 0x32, + 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, 0x2C, 0x68, 0x35, 0x2C, + 0x68, 0x36, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x7D, 0x62, 0x6F, 0x64, + 0x79, 0x7B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x30, + 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, + 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, + 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, 0x61, 0x63, 0x6B, + 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, 0x2E, 0x61, + 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, 0x2C, 0x61, 0x7B, 0x74, + 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, + 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x34, 0x30, 0x30, 0x7D, 0x62, 0x6C, 0x6F, 0x63, + 0x6B, 0x71, 0x75, 0x6F, 0x74, 0x65, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x34, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, + 0x70, 0x78, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, + 0x78, 0x7D, 0x61, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x74, 0x72, + 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, + 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x7D, 0x61, 0x3A, 0x68, + 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x3A, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, + 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, 0x6F, + 0x69, 0x6E, 0x74, 0x65, 0x72, 0x7D, 0x70, 0x7B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, + 0x6D, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x7D, 0x6F, 0x6C, 0x2C, 0x75, 0x6C, 0x7B, + 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, + 0x74, 0x6F, 0x6D, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, + 0x30, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x68, + 0x31, 0x2C, 0x68, 0x32, 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, + 0x2C, 0x68, 0x35, 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, + 0x30, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, + 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, + 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, + 0x32, 0x30, 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x7D, 0x73, + 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, + 0x3A, 0x23, 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x66, + 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, + 0x34, 0x70, 0x78, 0x7D, 0x68, 0x31, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x33, 0x36, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x35, 0x30, 0x70, 0x78, 0x7D, 0x68, + 0x32, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x36, 0x70, 0x78, 0x7D, 0x68, 0x33, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x38, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x34, 0x32, 0x70, 0x78, 0x7D, 0x68, + 0x34, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x32, 0x34, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, + 0x38, 0x70, 0x78, 0x7D, 0x68, 0x35, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x30, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x33, 0x34, 0x70, 0x78, 0x7D, 0x2E, + 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, + 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, + 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x7D, 0x68, + 0x36, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x70, 0x78, 0x7D, 0x2E, + 0x61, 0x6C, 0x65, 0x72, 0x74, 0x7B, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x6C, 0x65, 0x66, + 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x70, 0x78, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x73, 0x74, 0x79, 0x6C, + 0x65, 0x3A, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x31, 0x46, 0x35, + 0x46, 0x45, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, + 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, + 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, 0x34, 0x70, + 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2C, 0x2E, 0x62, 0x74, + 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, + 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, + 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, + 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x3B, + 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, 0x6F, + 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, 0x75, + 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, 0x68, + 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, + 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, + 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, + 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, + 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, + 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, 0x65, + 0x72, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, + 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, 0x70, + 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x61, 0x6C, + 0x65, 0x72, 0x74, 0x2D, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x7B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x44, 0x33, 0x32, + 0x46, 0x32, 0x46, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, + 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, + 0x3A, 0x23, 0x46, 0x46, 0x45, 0x42, 0x45, 0x45, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x46, 0x34, 0x34, 0x33, 0x33, 0x36, 0x7D, + 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x77, 0x61, 0x72, + 0x6E, 0x69, 0x6E, 0x67, 0x7B, 0x62, 0x61, 0x63, 0x6B, 0x67, + 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x46, 0x46, 0x46, 0x38, 0x45, 0x31, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, 0x38, + 0x46, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, + 0x43, 0x31, 0x30, 0x37, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, + 0x74, 0x2D, 0x64, 0x6F, 0x6E, 0x65, 0x7B, 0x62, 0x61, 0x63, + 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, + 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x38, 0x46, 0x35, 0x45, + 0x39, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x33, + 0x38, 0x38, 0x45, 0x33, 0x43, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x34, 0x43, 0x41, 0x46, 0x35, 0x30, 0x7D, 0x2E, 0x62, 0x74, + 0x6E, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, + 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, + 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, + 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, + 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, + 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, + 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, + 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x3A, 0x68, 0x6F, 0x76, + 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, + 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, + 0x73, 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x34, 0x70, 0x78, + 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, + 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x21, 0x69, 0x6D, + 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x34, 0x70, 0x78, 0x20, + 0x31, 0x35, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, + 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, + 0x62, 0x69, 0x67, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, + 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x32, 0x70, 0x78, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x6C, + 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x33, 0x34, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, + 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x3A, 0x38, 0x70, 0x78, 0x20, 0x33, 0x30, + 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, + 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, + 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x2C, 0x70, 0x72, 0x65, 0x7B, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x7D, 0x2E, 0x62, 0x74, + 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, + 0x31, 0x36, 0x70, 0x78, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, + 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, + 0x35, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x70, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, + 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, + 0x36, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, + 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, + 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, + 0x65, 0x3A, 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, + 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x3B, + 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, + 0x61, 0x30, 0x66, 0x36, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x2C, + 0x70, 0x72, 0x65, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, + 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, + 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, + 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x62, 0x61, 0x63, + 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, + 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x31, 0x66, 0x35, 0x66, + 0x61, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x7B, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, + 0x65, 0x66, 0x74, 0x3A, 0x36, 0x70, 0x78, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x36, 0x70, 0x78, 0x7D, 0x70, 0x72, 0x65, 0x7B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, + 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x2D, 0x78, + 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6C, 0x65, 0x64, 0x5D, 0x2C, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, + 0x74, 0x79, 0x70, 0x65, 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, + 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, + 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, + 0x74, 0x79, 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, + 0x72, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, + 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, 0x5D, 0x7B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, + 0x34, 0x37, 0x35, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x6F, 0x75, 0x74, + 0x6C, 0x69, 0x6E, 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, + 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, + 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, + 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, + 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, + 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, + 0x30, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, + 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, + 0x63, 0x6B, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, + 0x73, 0x3B, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, + 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, 0x2C, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, + 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, + 0x6C, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, + 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x3A, 0x66, 0x6F, 0x63, + 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x3A, + 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, + 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, + 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, + 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, + 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, + 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, + 0x61, 0x74, 0x65, 0x5D, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, + 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, + 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, + 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, + 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6C, 0x65, 0x64, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, + 0x69, 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, + 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x63, + 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x2D, + 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x65, 0x64, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x64, 0x31, 0x65, 0x31, + 0x65, 0x38, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6C, 0x65, 0x64, 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, + 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, + 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, + 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, + 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, + 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x62, 0x75, + 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x7B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, + 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, + 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, + 0x3B, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, + 0x6F, 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, + 0x75, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, + 0x68, 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, + 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, + 0x65, 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, + 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, + 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, + 0x65, 0x72, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, + 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, + 0x61, 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, + 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, + 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, + 0x6B, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, + 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, + 0x2E, 0x33, 0x73, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x66, 0x66, 0x66, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, + 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, + 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, + 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x2C, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, 0x74, 0x61, + 0x72, 0x65, 0x61, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, + 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, + 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, + 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, + 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x3B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x31, 0x30, 0x30, 0x25, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, + 0x2E, 0x33, 0x73, 0x3B, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, + 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, 0x2D, 0x73, 0x69, + 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, 0x61, 0x72, 0x67, + 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, + 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, + 0x34, 0x37, 0x35, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, 0x3A, 0x68, + 0x6F, 0x76, 0x65, 0x72, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, + 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, + 0x65, 0x3D, 0x62, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x3A, + 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, + 0x7B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x36, + 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, + 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, 0x78, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, + 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, + 0x63, 0x74, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, + 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x7B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x30, 0x70, + 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x72, 0x65, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, + 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, + 0x74, 0x61, 0x72, 0x65, 0x61, 0x3A, 0x66, 0x6F, 0x63, 0x75, + 0x73, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x61, 0x75, 0x74, 0x6F, 0x7B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, + 0x67, 0x72, 0x69, 0x64, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x36, 0x30, 0x70, 0x78, + 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, + 0x66, 0x74, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x69, 0x6E, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, + 0x78, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, + 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x39, 0x36, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x2E, 0x67, 0x72, + 0x69, 0x64, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, + 0x34, 0x25, 0x7D, 0x7D, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2D, + 0x66, 0x6C, 0x75, 0x69, 0x64, 0x2C, 0x2E, 0x72, 0x6F, 0x77, + 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, + 0x25, 0x7D, 0x2E, 0x72, 0x6F, 0x77, 0x7B, 0x64, 0x69, 0x73, + 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, + 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, 0x72, 0x6F, + 0x77, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x20, 0x22, 0x3B, + 0x63, 0x6C, 0x65, 0x61, 0x72, 0x3A, 0x62, 0x6F, 0x74, 0x68, + 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x74, + 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, + 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, + 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, + 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, 0x2C, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, 0x6F, + 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, + 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, 0x63, + 0x6F, 0x6C, 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x38, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x64, + 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, + 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, 0x61, + 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, 0x66, + 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, 0x3B, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x25, + 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x7B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x36, 0x2E, 0x33, 0x33, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x31, 0x34, 0x2E, 0x36, 0x36, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x33, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x32, 0x32, 0x2E, 0x39, 0x39, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x33, 0x31, 0x2E, 0x33, 0x33, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x33, 0x39, 0x2E, 0x36, 0x36, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x34, 0x37, 0x2E, 0x39, 0x39, 0x25, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, + 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, + 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x37, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x35, 0x36, 0x2E, 0x33, 0x33, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x36, 0x34, 0x2E, 0x36, 0x36, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x37, 0x32, 0x2E, 0x39, 0x39, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x30, 0x7B, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x31, 0x2E, 0x33, + 0x33, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x31, + 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x39, 0x2E, + 0x36, 0x36, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, + 0x32, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x37, + 0x2E, 0x39, 0x39, 0x25, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x34, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, + 0x6C, 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x31, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, + 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, + 0x6F, 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x34, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, + 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, + 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x2C, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x39, 0x38, 0x25, 0x7D, 0x7D, 0x2E, 0x74, + 0x61, 0x62, 0x6C, 0x65, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, + 0x3A, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, + 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, + 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, + 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, 0x32, 0x30, 0x70, + 0x78, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, + 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x34, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, + 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x36, 0x66, + 0x38, 0x66, 0x61, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, + 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x74, 0x6F, 0x70, + 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x31, + 0x30, 0x70, 0x78, 0x7D, }; + +static const unsigned char data_css_style_css[] = { + /* /css/style.css */ + 0x2F, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, + 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, + 0x7B, 0x0A, 0x09, 0x6C, 0x69, 0x73, 0x74, 0x2D, 0x73, 0x74, + 0x79, 0x6C, 0x65, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, + 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x09, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x20, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x30, 0x3B, + 0x0A, 0x09, 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, + 0x3A, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6E, 0x3B, 0x0A, + 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, + 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, + 0x33, 0x33, 0x33, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, + 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, + 0x7B, 0x0A, 0x09, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x20, + 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, + 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, + 0x20, 0x61, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, + 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x0A, 0x09, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x74, 0x65, + 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, + 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x31, 0x34, + 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, + 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, + 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, 0x6E, 0x61, + 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x61, 0x3A, + 0x68, 0x6F, 0x76, 0x65, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x28, + 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, + 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x23, 0x31, 0x31, 0x31, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, + 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, + 0x20, 0x61, 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x7B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, + 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x0A, + 0x7D, 0x0A, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x73, + 0x63, 0x72, 0x65, 0x65, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, + 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3A, 0x20, 0x36, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x0A, + 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, + 0x20, 0x6C, 0x69, 0x2E, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2C, + 0x20, 0x0A, 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, + 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x7B, 0x66, 0x6C, 0x6F, + 0x61, 0x74, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x7D, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x70, + 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x72, + 0x65, 0x6C, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3B, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x39, 0x30, 0x70, 0x78, + 0x3B, 0x0A, 0x09, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, + 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, + 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x20, 0x2D, + 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, + 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, + 0x3B, 0x20, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x20, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x20, 0x7B, + 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, + 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x2D, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x7B, 0x0A, + 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, + 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x6F, 0x76, 0x65, + 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x3A, 0x20, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6E, 0x3B, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6F, + 0x72, 0x3A, 0x20, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, + 0x3B, 0x0A, 0x09, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, + 0x20, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3A, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x32, 0x30, + 0x30, 0x25, 0x3B, 0x20, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, + 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, 0x2D, 0x31, 0x30, + 0x30, 0x25, 0x3B, 0x0A, 0x09, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, + 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x2C, 0x20, + 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x3A, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, + 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, + 0x63, 0x6B, 0x3B, 0x20, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, + 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x20, 0x35, 0x30, 0x25, 0x3B, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, 0x70, + 0x78, 0x3B, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, + 0x3A, 0x20, 0x30, 0x3B, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, + 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, + 0x3B, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x3B, 0x20, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x20, 0x54, + 0x72, 0x65, 0x62, 0x75, 0x63, 0x68, 0x65, 0x74, 0x2C, 0x20, + 0x41, 0x72, 0x69, 0x61, 0x6C, 0x2C, 0x20, 0x73, 0x61, 0x6E, + 0x73, 0x2D, 0x73, 0x65, 0x72, 0x69, 0x66, 0x3B, 0x20, 0x66, + 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x20, 0x62, 0x6F, 0x6C, 0x64, 0x3B, 0x0A, 0x09, 0x62, + 0x6F, 0x78, 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, + 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, + 0x78, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, + 0x20, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, + 0x74, 0x3A, 0x20, 0x22, 0x4F, 0x4E, 0x22, 0x3B, 0x0A, 0x09, + 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, + 0x3A, 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, + 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x0A, 0x09, + 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x45, + 0x31, 0x46, 0x35, 0x46, 0x45, 0x3B, 0x20, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, + 0x34, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, + 0x3A, 0x20, 0x22, 0x4F, 0x46, 0x46, 0x22, 0x3B, 0x0A, 0x09, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, + 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, + 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x23, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x3B, 0x20, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x39, 0x39, 0x39, + 0x39, 0x39, 0x39, 0x3B, 0x0A, 0x09, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, + 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3A, 0x20, 0x31, 0x38, 0x70, 0x78, 0x3B, 0x20, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x20, 0x36, 0x70, 0x78, + 0x3B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, + 0x75, 0x6E, 0x64, 0x3A, 0x20, 0x23, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x3B, 0x0A, 0x09, 0x70, 0x6F, 0x73, 0x69, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x61, 0x62, 0x73, 0x6F, 0x6C, + 0x75, 0x74, 0x65, 0x3B, 0x20, 0x74, 0x6F, 0x70, 0x3A, 0x20, + 0x30, 0x3B, 0x20, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, + 0x20, 0x30, 0x3B, 0x0A, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x20, 0x35, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x20, 0x32, 0x70, 0x78, + 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x33, + 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, + 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x74, 0x72, + 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, + 0x61, 0x6C, 0x6C, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, + 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, + 0x20, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, 0x65, + 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, 0x63, + 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, + 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x6C, + 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, + 0x30, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, + 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, + 0x63, 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, + 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x30, 0x70, 0x78, 0x3B, + 0x20, 0x0A, 0x7D, }; + +const struct fsdata_file file_index_ssi[] = {{ +NULL, +data_index_ssi, data_index_ssi + 11, +sizeof(data_index_ssi) - 11, +1 +}}; + +const struct fsdata_file file_404_html[] = {{ +file_index_ssi, +data_404_html, data_404_html + 10, +sizeof(data_404_html) - 10, +1 +}}; + +const struct fsdata_file file_about_html[] = {{ +file_404_html, +data_about_html, data_about_html + 12, +sizeof(data_about_html) - 12, +1 +}}; + +const struct fsdata_file file_img_favicon_png[] = {{ +file_about_html, +data_img_favicon_png, data_img_favicon_png + 17, +sizeof(data_img_favicon_png) - 17, +1 +}}; + +const struct fsdata_file file_css_siimple_min_css[] = {{ +file_img_favicon_png, +data_css_siimple_min_css, data_css_siimple_min_css + 21, +sizeof(data_css_siimple_min_css) - 21, +1 +}}; + +const struct fsdata_file file_css_style_css[] = {{ +file_css_siimple_min_css, +data_css_style_css, data_css_style_css + 15, +sizeof(data_css_style_css) - 15, +1 +}}; + +#define FS_ROOT file_css_style_css + +#define FS_NUMFILES 6 diff --git a/examples/http_server/fsdata/makefsdata b/examples/http_server/fsdata/makefsdata new file mode 100755 index 0000000..5361370 --- /dev/null +++ b/examples/http_server/fsdata/makefsdata @@ -0,0 +1,114 @@ +#!/usr/bin/perl + +$incHttpHeader = 1; + +open(OUTPUT, "> fsdata.c"); +print(OUTPUT "#include \"httpd/fsdata.h\"\n\n"); + +chdir("fs"); +open(FILES, "find . -type f |"); + +while($file = ) { + + # Do not include files in CVS directories nor backup files. + if($file =~ /(CVS|~)/) { + next; + } + + chop($file); + + if($incHttpHeader == 1) { + open(HEADER, "> /tmp/header") || die $!; + if($file =~ /404/) { + print(HEADER "HTTP/1.0 404 File not found\r\n"); + } else { + print(HEADER "HTTP/1.0 200 OK\r\n"); + } + print(HEADER "lwIP/1.4.1 (http://savannah.nongnu.org/projects/lwip)\r\n"); + if($file =~ /\.html$/ || $file =~ /\.htm$/ || $file =~ /\.shtml$/ || $file =~ /\.shtm$/ || $file =~ /\.ssi$/) { + print(HEADER "Content-type: text/html\r\n"); + } elsif($file =~ /\.js$/) { + print(HEADER "Content-type: application/x-javascript\r\n\r\n"); + } elsif($file =~ /\.css$/) { + print(HEADER "Content-type: text/css\r\n\r\n"); + } elsif($file =~ /\.ico$/) { + print(HEADER "Content-type: image/x-icon\r\n\r\n"); + } elsif($file =~ /\.gif$/) { + print(HEADER "Content-type: image/gif\r\n"); + } elsif($file =~ /\.png$/) { + print(HEADER "Content-type: image/png\r\n"); + } elsif($file =~ /\.jpg$/) { + print(HEADER "Content-type: image/jpeg\r\n"); + } elsif($file =~ /\.bmp$/) { + print(HEADER "Content-type: image/bmp\r\n\r\n"); + } elsif($file =~ /\.class$/) { + print(HEADER "Content-type: application/octet-stream\r\n"); + } elsif($file =~ /\.ram$/) { + print(HEADER "Content-type: audio/x-pn-realaudio\r\n"); + } else { + print(HEADER "Content-type: text/plain\r\n"); + } + print(HEADER "\r\n"); + close(HEADER); + + unless($file =~ /\.plain$/ || $file =~ /cgi/) { + system("cat /tmp/header $file > /tmp/file"); + } else { + system("cp $file /tmp/file"); + } + } else { + system("cp $file /tmp/file"); + } + + open(FILE, "/tmp/file"); + unlink("/tmp/file"); + unlink("/tmp/header"); + + $file =~ s/\.//; + $fvar = $file; + $fvar =~ s-/-_-g; + $fvar =~ s-\.-_-g; + + print(OUTPUT "static const unsigned char data".$fvar."[] = {\n"); + print(OUTPUT "\t/* $file */\n\t"); + for($j = 0; $j < length($file); $j++) { + printf(OUTPUT "0x%02X, ", unpack("C", substr($file, $j, 1))); + } + printf(OUTPUT "0,\n"); + + + $i = 0; + while(read(FILE, $data, 1)) { + if($i == 0) { + print(OUTPUT "\t"); + } + printf(OUTPUT "0x%02X, ", unpack("C", $data)); + $i++; + if($i == 10) { + print(OUTPUT "\n"); + $i = 0; + } + } + print(OUTPUT "};\n\n"); + close(FILE); + push(@fvars, $fvar); + push(@files, $file); +} + +for($i = 0; $i < @fvars; $i++) { + $file = $files[$i]; + $fvar = $fvars[$i]; + + if($i == 0) { + $prevfile = "NULL"; + } else { + $prevfile = "file" . $fvars[$i - 1]; + } + print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{\n$prevfile,\ndata$fvar, "); + print(OUTPUT "data$fvar + ". (length($file) + 1) .",\n"); + print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) .",\n"); + print(OUTPUT $incHttpHeader."\n}};\n\n"); +} + +print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n"); +print(OUTPUT "#define FS_NUMFILES $i\n"); diff --git a/examples/http_server/fsdata/readme.txt b/examples/http_server/fsdata/readme.txt new file mode 100644 index 0000000..a1db0c7 --- /dev/null +++ b/examples/http_server/fsdata/readme.txt @@ -0,0 +1,2 @@ +This directory contains a script ('makefsdata') to create C code suitable for +httpd for given html pages (or other files) in a directory. diff --git a/examples/http_server/http_server.c b/examples/http_server/http_server.c new file mode 100644 index 0000000..fd1937c --- /dev/null +++ b/examples/http_server/http_server.c @@ -0,0 +1,114 @@ +/* + * HTTP server example. + * + * This sample code is in the public domain. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LED_PIN 2 + +enum { + SSI_UPTIME, + SSI_FREE_HEAP, + SSI_LED_STATE +}; + +char *gpio_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) +{ + for (int i = 0; i < iNumParams; i++) { + if (strcmp(pcParam[i], "on") == 0) { + uint8_t gpio_num = atoi(pcValue[i]); + gpio_enable(gpio_num, GPIO_OUTPUT); + gpio_write(gpio_num, true); + } else if (strcmp(pcParam[i], "off") == 0) { + uint8_t gpio_num = atoi(pcValue[i]); + gpio_enable(gpio_num, GPIO_OUTPUT); + gpio_write(gpio_num, false); + } else if (strcmp(pcParam[i], "toggle") == 0) { + uint8_t gpio_num = atoi(pcValue[i]); + gpio_enable(gpio_num, GPIO_OUTPUT); + gpio_toggle(gpio_num); + } + } + return "/index.ssi"; +} + +char *about_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) +{ + return "/about.html"; +} + +int32_t ssi_handler(int32_t iIndex, char *pcInsert, int32_t iInsertLen) +{ + switch (iIndex) { + case SSI_UPTIME: + snprintf(pcInsert, iInsertLen, "%d", + xTaskGetTickCount() * portTICK_PERIOD_MS / 1000); + break; + case SSI_FREE_HEAP: + snprintf(pcInsert, iInsertLen, "%d", (int) xPortGetFreeHeapSize()); + break; + case SSI_LED_STATE: + snprintf(pcInsert, iInsertLen, (GPIO.OUT & BIT(LED_PIN)) ? "Off" : "On"); + break; + default: + snprintf(pcInsert, iInsertLen, "N/A"); + break; + } + + /* Tell the server how many characters to insert */ + return (strlen(pcInsert)); +} + +void httpd_task(void *pvParameters) +{ + tCGI pCGIs[] = { + {"/gpio", (tCGIHandler) gpio_cgi_handler}, + {"/about", (tCGIHandler) about_cgi_handler}, + }; + + const char *pcConfigSSITags[] = { + "uptime", // SSI_UPTIME + "heap", // SSI_FREE_HEAP + "led" // SSI_LED_STATE + }; + + /* register handlers and start the server */ + http_set_cgi_handlers(pCGIs, sizeof (pCGIs) / sizeof (pCGIs[0])); + http_set_ssi_handler((tSSIHandler) ssi_handler, pcConfigSSITags, + sizeof (pcConfigSSITags) / sizeof (pcConfigSSITags[0])); + httpd_init(); + + for (;;); +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + struct sdk_station_config config = { + .ssid = WIFI_SSID, + .password = WIFI_PASS, + }; + + /* required to call wifi_set_opmode before station_set_config */ + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + sdk_wifi_station_connect(); + + /* turn off LED */ + gpio_enable(LED_PIN, GPIO_OUTPUT); + gpio_write(LED_PIN, true); + + /* initialize tasks */ + xTaskCreate(&httpd_task, "HTTP Daemon", 1024, NULL, 2, NULL); +} diff --git a/extras/httpd/component.mk b/extras/httpd/component.mk new file mode 100644 index 0000000..c93f8f9 --- /dev/null +++ b/extras/httpd/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/httpd + +# expected anyone using httpd includes it as 'httpd/httpd.h' +INC_DIRS += $(httpd_ROOT).. + +# args for passing into compile rule generation +httpd_SRC_DIR = $(httpd_ROOT) + +$(eval $(call component_compile_rules,httpd)) diff --git a/extras/httpd/fs.c b/extras/httpd/fs.c new file mode 100644 index 0000000..2cb7575 --- /dev/null +++ b/extras/httpd/fs.c @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#include "lwip/opt.h" +#include "lwip/def.h" +#include "fs.h" +#include "fsdata.h" +#include + +/** Set this to 1 to include "fsdata_custom.c" instead of "fsdata.c" for the + * file system (to prevent changing the file included in CVS) */ +#ifndef HTTPD_USE_CUSTOM_FSDATA +#define HTTPD_USE_CUSTOM_FSDATA 0 +#endif + +#if HTTPD_USE_CUSTOM_FSDATA +#include "fsdata_custom.c" +#else /* HTTPD_USE_CUSTOM_FSDATA */ +#include "fsdata.c" +#endif /* HTTPD_USE_CUSTOM_FSDATA */ + +/*-----------------------------------------------------------------------------------*/ + +#if LWIP_HTTPD_CUSTOM_FILES +int fs_open_custom(struct fs_file *file, const char *name); +void fs_close_custom(struct fs_file *file); +#if LWIP_HTTPD_FS_ASYNC_READ +u8_t fs_canread_custom(struct fs_file *file); +u8_t fs_wait_read_custom(struct fs_file *file, fs_wait_cb callback_fn, void *callback_arg); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +#endif /* LWIP_HTTPD_CUSTOM_FILES */ + +/*-----------------------------------------------------------------------------------*/ +err_t +fs_open(struct fs_file *file, const char *name) +{ + const struct fsdata_file *f; + + if ((file == NULL) || (name == NULL)) { + return ERR_ARG; + } + +#if LWIP_HTTPD_CUSTOM_FILES + if (fs_open_custom(file, name)) { + file->is_custom_file = 1; + return ERR_OK; + } + file->is_custom_file = 0; +#endif /* LWIP_HTTPD_CUSTOM_FILES */ + + for (f = FS_ROOT; f != NULL; f = f->next) { + if (!strcmp(name, (char *)f->name)) { + file->data = (const char *)f->data; + file->len = f->len; + file->index = f->len; + file->pextension = NULL; + file->http_header_included = f->http_header_included; +#if HTTPD_PRECALCULATED_CHECKSUM + file->chksum_count = f->chksum_count; + file->chksum = f->chksum; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ +#if LWIP_HTTPD_FILE_STATE + file->state = fs_state_init(file, name); +#endif /* #if LWIP_HTTPD_FILE_STATE */ + return ERR_OK; + } + } + /* file not found */ + return ERR_VAL; +} + +/*-----------------------------------------------------------------------------------*/ +void +fs_close(struct fs_file *file) +{ +#if LWIP_HTTPD_CUSTOM_FILES + if (file->is_custom_file) { + fs_close_custom(file); + } +#endif /* LWIP_HTTPD_CUSTOM_FILES */ +#if LWIP_HTTPD_FILE_STATE + fs_state_free(file, file->state); +#endif /* #if LWIP_HTTPD_FILE_STATE */ + LWIP_UNUSED_ARG(file); +} +/*-----------------------------------------------------------------------------------*/ +#if LWIP_HTTPD_DYNAMIC_FILE_READ +#if LWIP_HTTPD_FS_ASYNC_READ +int +fs_read_async(struct fs_file *file, char *buffer, int count, fs_wait_cb callback_fn, void *callback_arg) +#else /* LWIP_HTTPD_FS_ASYNC_READ */ +int +fs_read(struct fs_file *file, char *buffer, int count) +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +{ + int read; + + if(file->index == file->len) { + return FS_READ_EOF; + } +#if LWIP_HTTPD_FS_ASYNC_READ +#if LWIP_HTTPD_CUSTOM_FILES + if (!fs_canread_custom(file)) { + if (fs_wait_read_custom(file, callback_fn, callback_arg)) { + return FS_READ_DELAYED; + } + } +#else /* LWIP_HTTPD_CUSTOM_FILES */ + LWIP_UNUSED_ARG(callback_fn); + LWIP_UNUSED_ARG(callback_arg); +#endif /* LWIP_HTTPD_CUSTOM_FILES */ +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + + read = file->len - file->index; + if(read > count) { + read = count; + } + + MEMCPY(buffer, (file->data + file->index), read); + file->index += read; + + return(read); +} +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ +/*-----------------------------------------------------------------------------------*/ +#if LWIP_HTTPD_FS_ASYNC_READ +int +fs_is_file_ready(struct fs_file *file, fs_wait_cb callback_fn, void *callback_arg) +{ + if (file != NULL) { +#if LWIP_HTTPD_FS_ASYNC_READ +#if LWIP_HTTPD_CUSTOM_FILES + if (!fs_canread_custom(file)) { + if (fs_wait_read_custom(file, callback_fn, callback_arg)) { + return 0; + } + } +#else /* LWIP_HTTPD_CUSTOM_FILES */ + LWIP_UNUSED_ARG(callback_fn); + LWIP_UNUSED_ARG(callback_arg); +#endif /* LWIP_HTTPD_CUSTOM_FILES */ +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + } + return 1; +} +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +/*-----------------------------------------------------------------------------------*/ +int +fs_bytes_left(struct fs_file *file) +{ + return file->len - file->index; +} diff --git a/extras/httpd/fs.h b/extras/httpd/fs.h new file mode 100644 index 0000000..c021e2f --- /dev/null +++ b/extras/httpd/fs.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef __FS_H__ +#define __FS_H__ + +#include "lwip/opt.h" +#include "lwip/err.h" + +/** Set this to 1 and provide the functions: + * - "int fs_open_custom(struct fs_file *file, const char *name)" + * Called first for every opened file to allow opening files + * that are not included in fsdata(_custom).c + * - "void fs_close_custom(struct fs_file *file)" + * Called to free resources allocated by fs_open_custom(). + */ +#ifndef LWIP_HTTPD_CUSTOM_FILES +#define LWIP_HTTPD_CUSTOM_FILES 0 +#endif + +/** Set this to 1 to support fs_read() to dynamically read file data. + * Without this (default=off), only one-block files are supported, + * and the contents must be ready after fs_open(). + */ +#ifndef LWIP_HTTPD_DYNAMIC_FILE_READ +#define LWIP_HTTPD_DYNAMIC_FILE_READ 0 +#endif + +/** Set this to 1 to include an application state argument per file + * that is opened. This allows to keep a state per connection/file. + */ +#ifndef LWIP_HTTPD_FILE_STATE +#define LWIP_HTTPD_FILE_STATE 0 +#endif + +/** HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for + * predefined (MSS-sized) chunks of the files to prevent having to calculate + * the checksums at runtime. */ +#ifndef HTTPD_PRECALCULATED_CHECKSUM +#define HTTPD_PRECALCULATED_CHECKSUM 0 +#endif + +/** LWIP_HTTPD_FS_ASYNC_READ==1: support asynchronous read operations + * (fs_read_async returns FS_READ_DELAYED and calls a callback when finished). + */ +#ifndef LWIP_HTTPD_FS_ASYNC_READ +#define LWIP_HTTPD_FS_ASYNC_READ 0 +#endif + +#define FS_READ_EOF -1 +#define FS_READ_DELAYED -2 + +#if HTTPD_PRECALCULATED_CHECKSUM +struct fsdata_chksum { + u32_t offset; + u16_t chksum; + u16_t len; +}; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ + +struct fs_file { + const char *data; + int len; + int index; + void *pextension; +#if HTTPD_PRECALCULATED_CHECKSUM + const struct fsdata_chksum *chksum; + u16_t chksum_count; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ + u8_t http_header_included; +#if LWIP_HTTPD_CUSTOM_FILES + u8_t is_custom_file; +#endif /* LWIP_HTTPD_CUSTOM_FILES */ +#if LWIP_HTTPD_FILE_STATE + void *state; +#endif /* LWIP_HTTPD_FILE_STATE */ +}; + +#if LWIP_HTTPD_FS_ASYNC_READ +typedef void (*fs_wait_cb)(void *arg); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + +err_t fs_open(struct fs_file *file, const char *name); +void fs_close(struct fs_file *file); +#if LWIP_HTTPD_DYNAMIC_FILE_READ +#if LWIP_HTTPD_FS_ASYNC_READ +int fs_read_async(struct fs_file *file, char *buffer, int count, fs_wait_cb callback_fn, void *callback_arg); +#else /* LWIP_HTTPD_FS_ASYNC_READ */ +int fs_read(struct fs_file *file, char *buffer, int count); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ +#if LWIP_HTTPD_FS_ASYNC_READ +int fs_is_file_ready(struct fs_file *file, fs_wait_cb callback_fn, void *callback_arg); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ +int fs_bytes_left(struct fs_file *file); + +#if LWIP_HTTPD_FILE_STATE +/** This user-defined function is called when a file is opened. */ +void *fs_state_init(struct fs_file *file, const char *name); +/** This user-defined function is called when a file is closed. */ +void fs_state_free(struct fs_file *file, void *state); +#endif /* #if LWIP_HTTPD_FILE_STATE */ + +#endif /* __FS_H__ */ diff --git a/extras/httpd/fsdata.h b/extras/httpd/fsdata.h new file mode 100644 index 0000000..6f6c557 --- /dev/null +++ b/extras/httpd/fsdata.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef __FSDATA_H__ +#define __FSDATA_H__ + +#include "lwip/opt.h" +#include "fs.h" + +struct fsdata_file { + const struct fsdata_file *next; + const unsigned char *name; + const unsigned char *data; + int len; + u8_t http_header_included; +#if HTTPD_PRECALCULATED_CHECKSUM + u16_t chksum_count; + const struct fsdata_chksum *chksum; +#endif /* HTTPD_PRECALCULATED_CHECKSUM */ +}; + +#endif /* __FSDATA_H__ */ diff --git a/extras/httpd/httpd.c b/extras/httpd/httpd.c new file mode 100644 index 0000000..04e4bc5 --- /dev/null +++ b/extras/httpd/httpd.c @@ -0,0 +1,2504 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * Simon Goldschmidt + * + */ + +/* This httpd supports for a + * rudimentary server-side-include facility which will replace tags of the form + * in any file whose extension is .shtml, .shtm or .ssi with + * strings provided by an include handler whose pointer is provided to the + * module via function http_set_ssi_handler(). + * Additionally, a simple common + * gateway interface (CGI) handling mechanism has been added to allow clients + * to hook functions to particular request URIs. + * + * To enable SSI support, define label LWIP_HTTPD_SSI in lwipopts.h. + * To enable CGI support, define label LWIP_HTTPD_CGI in lwipopts.h. + * + * By default, the server assumes that HTTP headers are already present in + * each file stored in the file system. By defining LWIP_HTTPD_DYNAMIC_HEADERS in + * lwipopts.h, this behavior can be changed such that the server inserts the + * headers automatically based on the extension of the file being served. If + * this mode is used, be careful to ensure that the file system image used + * does not already contain the header information. + * + * File system images without headers can be created using the makefsfile + * tool with the -h command line option. + * + * + * Notes about valid SSI tags + * -------------------------- + * + * The following assumptions are made about tags used in SSI markers: + * + * 1. No tag may contain '-' or whitespace characters within the tag name. + * 2. Whitespace is allowed between the tag leadin "". + * 3. The maximum tag name length is LWIP_HTTPD_MAX_TAG_NAME_LEN, currently 8 characters. + * + * Notes on CGI usage + * ------------------ + * + * The simple CGI support offered here works with GET method requests only + * and can handle up to 16 parameters encoded into the URI. The handler + * function may not write directly to the HTTP output but must return a + * filename that the HTTP server will send to the browser as a response to + * the incoming CGI request. + * + * + * + * The list of supported file types is quite short, so if makefsdata complains + * about an unknown extension, make sure to add it (and its doctype) to + * the 'g_psHTTPHeaders' list. + */ +#include "httpd.h" +#include "lwip/debug.h" +#include "lwip/stats.h" +#include "httpd_structs.h" +#include "lwip/tcp.h" +#include "fs.h" + +#include +#include + +#if LWIP_TCP + +#ifndef HTTPD_DEBUG +#define HTTPD_DEBUG LWIP_DBG_OFF +#endif + +/** Set this to 1 and add the next line to lwippools.h to use a memp pool + * for allocating struct http_state instead of the heap: + * + * LWIP_MEMPOOL(HTTPD_STATE, 20, 100, "HTTPD_STATE") + */ +#ifndef HTTPD_USE_MEM_POOL +#define HTTPD_USE_MEM_POOL 0 +#endif + +/** The server port for HTTPD to use */ +#ifndef HTTPD_SERVER_PORT +#define HTTPD_SERVER_PORT 80 +#endif + +/** Maximum retries before the connection is aborted/closed. + * - number of times pcb->poll is called -> default is 4*500ms = 2s; + * - reset when pcb->sent is called + */ +#ifndef HTTPD_MAX_RETRIES +#define HTTPD_MAX_RETRIES 4 +#endif + +/** The poll delay is X*500ms */ +#ifndef HTTPD_POLL_INTERVAL +#define HTTPD_POLL_INTERVAL 4 +#endif + +/** Priority for tcp pcbs created by HTTPD (very low by default). + * Lower priorities get killed first when running out of memroy. + */ +#ifndef HTTPD_TCP_PRIO +#define HTTPD_TCP_PRIO TCP_PRIO_MIN +#endif + +/** Set this to 1 to enabled timing each file sent */ +#ifndef LWIP_HTTPD_TIMING +#define LWIP_HTTPD_TIMING 0 +#endif +#ifndef HTTPD_DEBUG_TIMING +#define HTTPD_DEBUG_TIMING LWIP_DBG_OFF +#endif + +/** Set this to 1 on platforms where strnstr is not available */ +#ifndef LWIP_HTTPD_STRNSTR_PRIVATE +#define LWIP_HTTPD_STRNSTR_PRIVATE 1 +#endif + +/** Set this to one to show error pages when parsing a request fails instead + of simply closing the connection. */ +#ifndef LWIP_HTTPD_SUPPORT_EXTSTATUS +#define LWIP_HTTPD_SUPPORT_EXTSTATUS 0 +#endif + +/** Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes) */ +#ifndef LWIP_HTTPD_SUPPORT_V09 +#define LWIP_HTTPD_SUPPORT_V09 1 +#endif + +/** Set this to 1 to enable HTTP/1.1 persistent connections. + * ATTENTION: If the generated file system includes HTTP headers, these must + * include the "Connection: keep-alive" header (pass argument "-11" to makefsdata). + */ +#ifndef LWIP_HTTPD_SUPPORT_11_KEEPALIVE +#define LWIP_HTTPD_SUPPORT_11_KEEPALIVE 0 +#endif + +/** Set this to 1 to support HTTP request coming in in multiple packets/pbufs */ +#ifndef LWIP_HTTPD_SUPPORT_REQUESTLIST +#define LWIP_HTTPD_SUPPORT_REQUESTLIST 1 +#endif + +#if LWIP_HTTPD_SUPPORT_REQUESTLIST +/** Number of rx pbufs to enqueue to parse an incoming request (up to the first + newline) */ +#ifndef LWIP_HTTPD_REQ_QUEUELEN +#define LWIP_HTTPD_REQ_QUEUELEN 5 +#endif + +/** Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming + request (up to the first double-newline) */ +#ifndef LWIP_HTTPD_REQ_BUFSIZE +#define LWIP_HTTPD_REQ_BUFSIZE LWIP_HTTPD_MAX_REQ_LENGTH +#endif + +/** Defines the maximum length of a HTTP request line (up to the first CRLF, + copied from pbuf into this a global buffer when pbuf- or packet-queues + are received - otherwise the input pbuf is used directly) */ +#ifndef LWIP_HTTPD_MAX_REQ_LENGTH +#define LWIP_HTTPD_MAX_REQ_LENGTH LWIP_MIN(1023, (LWIP_HTTPD_REQ_QUEUELEN * PBUF_POOL_BUFSIZE)) +#endif +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + +/** Maximum length of the filename to send as response to a POST request, + * filled in by the application when a POST is finished. + */ +#ifndef LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN +#define LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN 63 +#endif + +/** Set this to 0 to not send the SSI tag (default is on, so the tag will + * be sent in the HTML page */ +#ifndef LWIP_HTTPD_SSI_INCLUDE_TAG +#define LWIP_HTTPD_SSI_INCLUDE_TAG 1 +#endif + +/** Set this to 1 to call tcp_abort when tcp_close fails with memory error. + * This can be used to prevent consuming all memory in situations where the + * HTTP server has low priority compared to other communication. */ +#ifndef LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR +#define LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR 0 +#endif + +/** Set this to 1 to kill the oldest connection when running out of + * memory for 'struct http_state' or 'struct http_ssi_state'. + * ATTENTION: This puts all connections on a linked list, so may be kind of slow. + */ +#ifndef LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED +#define LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED 0 +#endif + +/** Minimum length for a valid HTTP/0.9 request: "GET /\r\n" -> 7 bytes */ +#define MIN_REQ_LEN 7 + +#define CRLF "\r\n" +#define HTTP11_CONNECTIONKEEPALIVE "Connection: keep-alive" + +#if LWIP_HTTPD_SSI +#define LWIP_HTTPD_IS_SSI(hs) ((hs)->ssi) +#else /* LWIP_HTTPD_SSI */ +#define LWIP_HTTPD_IS_SSI(hs) 0 +#endif /* LWIP_HTTPD_SSI */ + +/** These defines check whether tcp_write has to copy data or not */ + +/** This was TI's check whether to let TCP copy data or not +#define HTTP_IS_DATA_VOLATILE(hs) ((hs->file < (char *)0x20000000) ? 0 : TCP_WRITE_FLAG_COPY)*/ +#ifndef HTTP_IS_DATA_VOLATILE +#if LWIP_HTTPD_SSI +/* Copy for SSI files, no copy for non-SSI files */ +#define HTTP_IS_DATA_VOLATILE(hs) ((hs)->ssi ? TCP_WRITE_FLAG_COPY : 0) +#else /* LWIP_HTTPD_SSI */ +/** Default: don't copy if the data is sent from file-system directly */ +#define HTTP_IS_DATA_VOLATILE(hs) (((hs->file != NULL) && (hs->handle != NULL) && (hs->file == \ + (char*)hs->handle->data + hs->handle->len - hs->left)) \ + ? 0 : TCP_WRITE_FLAG_COPY) +#endif /* LWIP_HTTPD_SSI */ +#endif + +/** Default: headers are sent from ROM */ +#ifndef HTTP_IS_HDR_VOLATILE +#define HTTP_IS_HDR_VOLATILE(hs, ptr) 0 +#endif + +#if LWIP_HTTPD_SSI +/** Default: Tags are sent from struct http_state and are therefore volatile */ +#ifndef HTTP_IS_TAG_VOLATILE +#define HTTP_IS_TAG_VOLATILE(ptr) TCP_WRITE_FLAG_COPY +#endif +#endif /* LWIP_HTTPD_SSI */ + +/* Return values for http_send_*() */ +#define HTTP_DATA_TO_SEND_BREAK 2 +#define HTTP_DATA_TO_SEND_CONTINUE 1 +#define HTTP_NO_DATA_TO_SEND 0 + +#if HTTPD_USE_MEM_POOL +#define HTTP_ALLOC_SSI_STATE() (struct http_ssi_state *)memp_malloc(MEMP_HTTPD_SSI_STATE) +#define HTTP_ALLOC_HTTP_STATE() (struct http_state *)memp_malloc(MEMP_HTTPD_STATE) +#else /* HTTPD_USE_MEM_POOL */ +#define HTTP_ALLOC_SSI_STATE() (struct http_ssi_state *)mem_malloc(sizeof(struct http_ssi_state)) +#define HTTP_ALLOC_HTTP_STATE() (struct http_state *)mem_malloc(sizeof(struct http_state)) +#endif /* HTTPD_USE_MEM_POOL */ + +typedef struct +{ + const char *name; + u8_t shtml; +} default_filename; + +const default_filename g_psDefaultFilenames[] = { + {"/index.shtml", 1 }, + {"/index.ssi", 1 }, + {"/index.shtm", 1 }, + {"/index.html", 0 }, + {"/index.htm", 0 } +}; + +#define NUM_DEFAULT_FILENAMES (sizeof(g_psDefaultFilenames) / \ + sizeof(default_filename)) + +#if LWIP_HTTPD_SUPPORT_REQUESTLIST +/** HTTP request is copied here from pbufs for simple parsing */ +static char httpd_req_buf[LWIP_HTTPD_MAX_REQ_LENGTH+1]; +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + +#if LWIP_HTTPD_SUPPORT_POST +/** Filename for response file to send when POST is finished */ +static char http_post_response_filename[LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN+1]; +#endif /* LWIP_HTTPD_SUPPORT_POST */ + +#if LWIP_HTTPD_DYNAMIC_HEADERS +/* The number of individual strings that comprise the headers sent before each + * requested file. + */ +#define NUM_FILE_HDR_STRINGS 3 +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ + +#if LWIP_HTTPD_SSI + +#define HTTPD_LAST_TAG_PART 0xFFFF + +enum tag_check_state { + TAG_NONE, /* Not processing an SSI tag */ + TAG_LEADIN, /* Tag lead in "" being processed */ + TAG_SENDING /* Sending tag replacement string */ +}; + +struct http_ssi_state { + const char *parsed; /* Pointer to the first unparsed byte in buf. */ +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + const char *tag_started;/* Pointer to the first opening '<' of the tag. */ +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ + const char *tag_end; /* Pointer to char after the closing '>' of the tag. */ + u32_t parse_left; /* Number of unparsed bytes in buf. */ + u16_t tag_index; /* Counter used by tag parsing state machine */ + u16_t tag_insert_len; /* Length of insert in string tag_insert */ +#if LWIP_HTTPD_SSI_MULTIPART + u16_t tag_part; /* Counter passed to and changed by tag insertion function to insert multiple times */ +#endif /* LWIP_HTTPD_SSI_MULTIPART */ + u8_t tag_name_len; /* Length of the tag name in string tag_name */ + char tag_name[LWIP_HTTPD_MAX_TAG_NAME_LEN + 1]; /* Last tag name extracted */ + char tag_insert[LWIP_HTTPD_MAX_TAG_INSERT_LEN + 1]; /* Insert string for tag_name */ + enum tag_check_state tag_state; /* State of the tag processor */ +}; +#endif /* LWIP_HTTPD_SSI */ + +struct http_state { +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED + struct http_state *next; +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + struct fs_file file_handle; + struct fs_file *handle; + char *file; /* Pointer to first unsent byte in buf. */ + + struct tcp_pcb *pcb; +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + struct pbuf *req; +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + +#if LWIP_HTTPD_DYNAMIC_FILE_READ + char *buf; /* File read buffer. */ + int buf_len; /* Size of file read buffer, buf. */ +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ + u32_t left; /* Number of unsent bytes in buf. */ + u8_t retries; +#if LWIP_HTTPD_SUPPORT_11_KEEPALIVE + u8_t keepalive; +#endif /* LWIP_HTTPD_SUPPORT_11_KEEPALIVE */ +#if LWIP_HTTPD_SSI + struct http_ssi_state *ssi; +#endif /* LWIP_HTTPD_SSI */ +#if LWIP_HTTPD_CGI + char *params[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Params extracted from the request URI */ + char *param_vals[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Values for each extracted param */ +#endif /* LWIP_HTTPD_CGI */ +#if LWIP_HTTPD_DYNAMIC_HEADERS + const char *hdrs[NUM_FILE_HDR_STRINGS]; /* HTTP headers to be sent. */ + u16_t hdr_pos; /* The position of the first unsent header byte in the + current string */ + u16_t hdr_index; /* The index of the hdr string currently being sent. */ +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ +#if LWIP_HTTPD_TIMING + u32_t time_started; +#endif /* LWIP_HTTPD_TIMING */ +#if LWIP_HTTPD_SUPPORT_POST + u32_t post_content_len_left; +#if LWIP_HTTPD_POST_MANUAL_WND + u32_t unrecved_bytes; + u8_t no_auto_wnd; + u8_t post_finished; +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ +#endif /* LWIP_HTTPD_SUPPORT_POST*/ +}; + +static err_t http_close_conn(struct tcp_pcb *pcb, struct http_state *hs); +static err_t http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs, u8_t abort_conn); +static err_t http_find_file(struct http_state *hs, const char *uri, int is_09); +static err_t http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri, u8_t tag_check); +static err_t http_poll(void *arg, struct tcp_pcb *pcb); +#if LWIP_HTTPD_FS_ASYNC_READ +static void http_continue(void *connection); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + +#if LWIP_HTTPD_SSI +/* SSI insert handler function pointer. */ +tSSIHandler g_pfnSSIHandler = NULL; +int g_iNumTags = 0; +const char **g_ppcTags = NULL; + +#define LEN_TAG_LEAD_IN 5 +const char * const g_pcTagLeadIn = ""; +#endif /* LWIP_HTTPD_SSI */ + +#if LWIP_HTTPD_CGI +/* CGI handler information */ +const tCGI *g_pCGIs; +int g_iNumCGIs; +#endif /* LWIP_HTTPD_CGI */ + +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED +/** global list of active HTTP connections, use to kill the oldest when + running out of memory */ +static struct http_state *http_connections; +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + +#if LWIP_HTTPD_STRNSTR_PRIVATE +/** Like strstr but does not need 'buffer' to be NULL-terminated */ +static char* +strnstr(const char* buffer, const char* token, size_t n) +{ + const char* p; + int tokenlen = (int)strlen(token); + if (tokenlen == 0) { + return (char *)buffer; + } + for (p = buffer; *p && (p + tokenlen <= buffer + n); p++) { + if ((*p == *token) && (strncmp(p, token, tokenlen) == 0)) { + return (char *)p; + } + } + return NULL; +} +#endif /* LWIP_HTTPD_STRNSTR_PRIVATE */ + +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED +static void +http_kill_oldest_connection(u8_t ssi_required) +{ + struct http_state *hs = http_connections; + struct http_state *hs_free_next = NULL; + while(hs && hs->next) { + if (ssi_required) { + if (hs->next->ssi != NULL) { + hs_free_next = hs; + } + } else { + hs_free_next = hs; + } + hs = hs->next; + } + if (hs_free_next != NULL) { + LWIP_ASSERT("hs_free_next->next != NULL", hs_free_next->next != NULL); + LWIP_ASSERT("hs_free_next->next->pcb != NULL", hs_free_next->next->pcb != NULL); + /* send RST when killing a connection because of memory shortage */ + http_close_or_abort_conn(hs_free_next->next->pcb, hs_free_next->next, 1); /* this also unlinks the http_state from the list */ + } +} +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + +#if LWIP_HTTPD_SSI +/** Allocate as struct http_ssi_state. */ +static struct http_ssi_state* +http_ssi_state_alloc(void) +{ + struct http_ssi_state *ret = HTTP_ALLOC_SSI_STATE(); +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED + if (ret == NULL) { + http_kill_oldest_connection(1); + ret = HTTP_ALLOC_SSI_STATE(); + } +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + if (ret != NULL) { + memset(ret, 0, sizeof(struct http_ssi_state)); + } + return ret; +} + +/** Free a struct http_ssi_state. */ +static void +http_ssi_state_free(struct http_ssi_state *ssi) +{ + if (ssi != NULL) { +#if HTTPD_USE_MEM_POOL + memp_free(MEMP_HTTPD_SSI_STATE, ssi); +#else /* HTTPD_USE_MEM_POOL */ + mem_free(ssi); +#endif /* HTTPD_USE_MEM_POOL */ + } +} +#endif /* LWIP_HTTPD_SSI */ + +/** Initialize a struct http_state. + */ +static void +http_state_init(struct http_state* hs) +{ + /* Initialize the structure. */ + memset(hs, 0, sizeof(struct http_state)); +#if LWIP_HTTPD_DYNAMIC_HEADERS + /* Indicate that the headers are not yet valid */ + hs->hdr_index = NUM_FILE_HDR_STRINGS; +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ +} + +/** Allocate a struct http_state. */ +static struct http_state* +http_state_alloc(void) +{ + struct http_state *ret = HTTP_ALLOC_HTTP_STATE(); +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED + if (ret == NULL) { + http_kill_oldest_connection(0); + ret = HTTP_ALLOC_HTTP_STATE(); + } +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + if (ret != NULL) { + http_state_init(ret); +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED + /* add the connection to the list */ + if (http_connections == NULL) { + http_connections = ret; + } else { + struct http_state *last; + for(last = http_connections; last->next != NULL; last = last->next); + LWIP_ASSERT("last != NULL", last != NULL); + last->next = ret; + } +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ + } + return ret; +} + +/** Free a struct http_state. + * Also frees the file data if dynamic. + */ +static void +http_state_eof(struct http_state *hs) +{ + if(hs->handle) { +#if LWIP_HTTPD_TIMING + u32_t ms_needed = sys_now() - hs->time_started; + u32_t needed = LWIP_MAX(1, (ms_needed/100)); + LWIP_DEBUGF(HTTPD_DEBUG_TIMING, ("httpd: needed %"U32_F" ms to send file of %d bytes -> %"U32_F" bytes/sec\n", + ms_needed, hs->handle->len, ((((u32_t)hs->handle->len) * 10) / needed))); +#endif /* LWIP_HTTPD_TIMING */ + fs_close(hs->handle); + hs->handle = NULL; + } +#if LWIP_HTTPD_DYNAMIC_FILE_READ + if (hs->buf != NULL) { + mem_free(hs->buf); + hs->buf = NULL; + } +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ +#if LWIP_HTTPD_SSI + if (hs->ssi) { + http_ssi_state_free(hs->ssi); + hs->ssi = NULL; + } +#endif /* LWIP_HTTPD_SSI */ +} + +/** Free a struct http_state. + * Also frees the file data if dynamic. + */ +static void +http_state_free(struct http_state *hs) +{ + if (hs != NULL) { + http_state_eof(hs); +#if LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED + /* take the connection off the list */ + if (http_connections) { + if (http_connections == hs) { + http_connections = hs->next; + } else { + struct http_state *last; + for(last = http_connections; last->next != NULL; last = last->next) { + if (last->next == hs) { + last->next = hs->next; + break; + } + } + } + } +#endif /* LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED */ +#if HTTPD_USE_MEM_POOL + memp_free(MEMP_HTTPD_STATE, hs); +#else /* HTTPD_USE_MEM_POOL */ + mem_free(hs); +#endif /* HTTPD_USE_MEM_POOL */ + } +} + +/** Call tcp_write() in a loop trying smaller and smaller length + * + * @param pcb tcp_pcb to send + * @param ptr Data to send + * @param length Length of data to send (in/out: on return, contains the + * amount of data sent) + * @param apiflags directly passed to tcp_write + * @return the return value of tcp_write + */ +static err_t +http_write(struct tcp_pcb *pcb, const void* ptr, u16_t *length, u8_t apiflags) +{ + u16_t len; + err_t err; + LWIP_ASSERT("length != NULL", length != NULL); + len = *length; + if (len == 0) { + return ERR_OK; + } + do { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Trying to send %d bytes\n", len)); + err = tcp_write(pcb, ptr, len, apiflags); + if (err == ERR_MEM) { + if ((tcp_sndbuf(pcb) == 0) || + (tcp_sndqueuelen(pcb) >= TCP_SND_QUEUELEN)) { + /* no need to try smaller sizes */ + len = 1; + } else { + len /= 2; + } + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, + ("Send failed, trying less (%d bytes)\n", len)); + } + } while ((err == ERR_MEM) && (len > 1)); + + if (err == ERR_OK) { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Sent %d bytes\n", len)); + } else { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Send failed with err %d (\"%s\")\n", err, lwip_strerr(err))); + } + + *length = len; + return err; +} + +/** + * The connection shall be actively closed (using RST to close from fault states). + * Reset the sent- and recv-callbacks. + * + * @param pcb the tcp pcb to reset callbacks + * @param hs connection state to free + */ +static err_t +http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs, u8_t abort_conn) +{ + err_t err; + LWIP_DEBUGF(HTTPD_DEBUG, ("Closing connection %p\n", (void*)pcb)); + +#if LWIP_HTTPD_SUPPORT_POST + if (hs != NULL) { + if ((hs->post_content_len_left != 0) +#if LWIP_HTTPD_POST_MANUAL_WND + || ((hs->no_auto_wnd != 0) && (hs->unrecved_bytes != 0)) +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + ) { + /* make sure the post code knows that the connection is closed */ + http_post_response_filename[0] = 0; + httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); + } + } +#endif /* LWIP_HTTPD_SUPPORT_POST*/ + + + tcp_arg(pcb, NULL); + tcp_recv(pcb, NULL); + tcp_err(pcb, NULL); + tcp_poll(pcb, NULL, 0); + tcp_sent(pcb, NULL); + if (hs != NULL) { + http_state_free(hs); + } + + if (abort_conn) { + tcp_abort(pcb); + return ERR_OK; + } + err = tcp_close(pcb); + if (err != ERR_OK) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Error %d closing %p\n", err, (void*)pcb)); + /* error closing, try again later in poll */ + tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); + } + return err; +} + +/** + * The connection shall be actively closed. + * Reset the sent- and recv-callbacks. + * + * @param pcb the tcp pcb to reset callbacks + * @param hs connection state to free + */ +static err_t +http_close_conn(struct tcp_pcb *pcb, struct http_state *hs) +{ + return http_close_or_abort_conn(pcb, hs, 0); +} + +/** End of file: either close the connection (Connection: close) or + * close the file (Connection: keep-alive) + */ +static void +http_eof(struct tcp_pcb *pcb, struct http_state *hs) +{ + /* HTTP/1.1 persistent connection? (Not supported for SSI) */ +#if LWIP_HTTPD_SUPPORT_11_KEEPALIVE + if (hs->keepalive && !LWIP_HTTPD_IS_SSI(hs)) { + http_state_eof(hs); + http_state_init(hs); + hs->keepalive = 1; + } else +#endif /* LWIP_HTTPD_SUPPORT_11_KEEPALIVE */ + { + http_close_conn(pcb, hs); + } +} + +#if LWIP_HTTPD_CGI +/** + * Extract URI parameters from the parameter-part of an URI in the form + * "test.cgi?x=y" @todo: better explanation! + * Pointers to the parameters are stored in hs->param_vals. + * + * @param hs http connection state + * @param params pointer to the NULL-terminated parameter string from the URI + * @return number of parameters extracted + */ +static int +extract_uri_parameters(struct http_state *hs, char *params) +{ + char *pair; + char *equals; + int loop; + + /* If we have no parameters at all, return immediately. */ + if(!params || (params[0] == '\0')) { + return(0); + } + + /* Get a pointer to our first parameter */ + pair = params; + + /* Parse up to LWIP_HTTPD_MAX_CGI_PARAMETERS from the passed string and ignore the + * remainder (if any) */ + for(loop = 0; (loop < LWIP_HTTPD_MAX_CGI_PARAMETERS) && pair; loop++) { + + /* Save the name of the parameter */ + hs->params[loop] = pair; + + /* Remember the start of this name=value pair */ + equals = pair; + + /* Find the start of the next name=value pair and replace the delimiter + * with a 0 to terminate the previous pair string. */ + pair = strchr(pair, '&'); + if(pair) { + *pair = '\0'; + pair++; + } else { + /* We didn't find a new parameter so find the end of the URI and + * replace the space with a '\0' */ + pair = strchr(equals, ' '); + if(pair) { + *pair = '\0'; + } + + /* Revert to NULL so that we exit the loop as expected. */ + pair = NULL; + } + + /* Now find the '=' in the previous pair, replace it with '\0' and save + * the parameter value string. */ + equals = strchr(equals, '='); + if(equals) { + *equals = '\0'; + hs->param_vals[loop] = equals + 1; + } else { + hs->param_vals[loop] = NULL; + } + } + + return loop; +} +#endif /* LWIP_HTTPD_CGI */ + +#if LWIP_HTTPD_SSI +/** + * Insert a tag (found in an shtml in the form of "" into the file. + * The tag's name is stored in ssi->tag_name (NULL-terminated), the replacement + * should be written to hs->tag_insert (up to a length of LWIP_HTTPD_MAX_TAG_INSERT_LEN). + * The amount of data written is stored to ssi->tag_insert_len. + * + * @todo: return tag_insert_len - maybe it can be removed from struct http_state? + * + * @param hs http connection state + */ +static void +get_tag_insert(struct http_state *hs) +{ + int loop; + size_t len; + struct http_ssi_state *ssi; + LWIP_ASSERT("hs != NULL", hs != NULL); + ssi = hs->ssi; + LWIP_ASSERT("ssi != NULL", ssi != NULL); +#if LWIP_HTTPD_SSI_MULTIPART + u16_t current_tag_part = ssi->tag_part; + ssi->tag_part = HTTPD_LAST_TAG_PART; +#endif /* LWIP_HTTPD_SSI_MULTIPART */ + + if(g_pfnSSIHandler && g_ppcTags && g_iNumTags) { + + /* Find this tag in the list we have been provided. */ + for(loop = 0; loop < g_iNumTags; loop++) { + if(strcmp(ssi->tag_name, g_ppcTags[loop]) == 0) { + ssi->tag_insert_len = g_pfnSSIHandler(loop, ssi->tag_insert, + LWIP_HTTPD_MAX_TAG_INSERT_LEN +#if LWIP_HTTPD_SSI_MULTIPART + , current_tag_part, &ssi->tag_part +#endif /* LWIP_HTTPD_SSI_MULTIPART */ +#if LWIP_HTTPD_FILE_STATE + , hs->handle->state +#endif /* LWIP_HTTPD_FILE_STATE */ + ); + return; + } + } + } + + /* If we drop out, we were asked to serve a page which contains tags that + * we don't have a handler for. Merely echo back the tags with an error + * marker. */ +#define UNKNOWN_TAG1_TEXT "***UNKNOWN TAG " +#define UNKNOWN_TAG1_LEN 18 +#define UNKNOWN_TAG2_TEXT "***" +#define UNKNOWN_TAG2_LEN 7 + len = LWIP_MIN(strlen(ssi->tag_name), + LWIP_HTTPD_MAX_TAG_INSERT_LEN - (UNKNOWN_TAG1_LEN + UNKNOWN_TAG2_LEN)); + MEMCPY(ssi->tag_insert, UNKNOWN_TAG1_TEXT, UNKNOWN_TAG1_LEN); + MEMCPY(&ssi->tag_insert[UNKNOWN_TAG1_LEN], ssi->tag_name, len); + MEMCPY(&ssi->tag_insert[UNKNOWN_TAG1_LEN + len], UNKNOWN_TAG2_TEXT, UNKNOWN_TAG2_LEN); + ssi->tag_insert[UNKNOWN_TAG1_LEN + len + UNKNOWN_TAG2_LEN] = 0; + + len = strlen(ssi->tag_insert); + LWIP_ASSERT("len <= 0xffff", len <= 0xffff); + ssi->tag_insert_len = (u16_t)len; +} +#endif /* LWIP_HTTPD_SSI */ + +#if LWIP_HTTPD_DYNAMIC_HEADERS +/** + * Generate the relevant HTTP headers for the given filename and write + * them into the supplied buffer. + */ +static void +get_http_headers(struct http_state *pState, char *pszURI) +{ + unsigned int iLoop; + char *pszWork; + char *pszExt; + char *pszVars; + + /* Ensure that we initialize the loop counter. */ + iLoop = 0; + + /* In all cases, the second header we send is the server identification + so set it here. */ + pState->hdrs[1] = g_psHTTPHeaderStrings[HTTP_HDR_SERVER]; + + /* Is this a normal file or the special case we use to send back the + default "404: Page not found" response? */ + if (pszURI == NULL) { + pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; + pState->hdrs[2] = g_psHTTPHeaderStrings[DEFAULT_404_HTML]; + + /* Set up to send the first header string. */ + pState->hdr_index = 0; + pState->hdr_pos = 0; + return; + } else { + /* We are dealing with a particular filename. Look for one other + special case. We assume that any filename with "404" in it must be + indicative of a 404 server error whereas all other files require + the 200 OK header. */ + if (strstr(pszURI, "404")) { + pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; + } else if (strstr(pszURI, "400")) { + pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_BAD_REQUEST]; + } else if (strstr(pszURI, "501")) { + pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_IMPL]; + } else { + pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_OK]; + } + + /* Determine if the URI has any variables and, if so, temporarily remove + them. */ + pszVars = strchr(pszURI, '?'); + if(pszVars) { + *pszVars = '\0'; + } + + /* Get a pointer to the file extension. We find this by looking for the + last occurrence of "." in the filename passed. */ + pszExt = NULL; + pszWork = strchr(pszURI, '.'); + while(pszWork) { + pszExt = pszWork + 1; + pszWork = strchr(pszExt, '.'); + } + + /* Now determine the content type and add the relevant header for that. */ + for(iLoop = 0; (iLoop < NUM_HTTP_HEADERS) && pszExt; iLoop++) { + /* Have we found a matching extension? */ + if(!strcmp(g_psHTTPHeaders[iLoop].extension, pszExt)) { + pState->hdrs[2] = + g_psHTTPHeaderStrings[g_psHTTPHeaders[iLoop].headerIndex]; + break; + } + } + + /* Reinstate the parameter marker if there was one in the original URI. */ + if(pszVars) { + *pszVars = '?'; + } + } + + /* Does the URL passed have any file extension? If not, we assume it + is a special-case URL used for control state notification and we do + not send any HTTP headers with the response. */ + if(!pszExt) { + /* Force the header index to a value indicating that all headers + have already been sent. */ + pState->hdr_index = NUM_FILE_HDR_STRINGS; + } else { + /* Did we find a matching extension? */ + if(iLoop == NUM_HTTP_HEADERS) { + /* No - use the default, plain text file type. */ + pState->hdrs[2] = g_psHTTPHeaderStrings[HTTP_HDR_DEFAULT_TYPE]; + } + + /* Set up to send the first header string. */ + pState->hdr_index = 0; + pState->hdr_pos = 0; + } +} + +/** Sub-function of http_send(): send dynamic headers + * + * @returns: - HTTP_NO_DATA_TO_SEND: no new data has been enqueued + * - HTTP_DATA_TO_SEND_CONTINUE: continue with sending HTTP body + * - HTTP_DATA_TO_SEND_BREAK: data has been enqueued, headers pending, + * so don't send HTTP body yet + */ +static u8_t +http_send_headers(struct tcp_pcb *pcb, struct http_state *hs) +{ + err_t err; + u16_t len; + u8_t data_to_send = HTTP_NO_DATA_TO_SEND; + u16_t hdrlen, sendlen; + + /* How much data can we send? */ + len = tcp_sndbuf(pcb); + sendlen = len; + + while(len && (hs->hdr_index < NUM_FILE_HDR_STRINGS) && sendlen) { + const void *ptr; + u16_t old_sendlen; + /* How much do we have to send from the current header? */ + hdrlen = (u16_t)strlen(hs->hdrs[hs->hdr_index]); + + /* How much of this can we send? */ + sendlen = (len < (hdrlen - hs->hdr_pos)) ? len : (hdrlen - hs->hdr_pos); + + /* Send this amount of data or as much as we can given memory + * constraints. */ + ptr = (const void *)(hs->hdrs[hs->hdr_index] + hs->hdr_pos); + old_sendlen = sendlen; + err = http_write(pcb, ptr, &sendlen, HTTP_IS_HDR_VOLATILE(hs, ptr)); + if ((err == ERR_OK) && (old_sendlen != sendlen)) { + /* Remember that we added some more data to be transmitted. */ + data_to_send = HTTP_DATA_TO_SEND_CONTINUE; + } else if (err != ERR_OK) { + /* special case: http_write does not try to send 1 byte */ + sendlen = 0; + } + + /* Fix up the header position for the next time round. */ + hs->hdr_pos += sendlen; + len -= sendlen; + + /* Have we finished sending this string? */ + if(hs->hdr_pos == hdrlen) { + /* Yes - move on to the next one */ + hs->hdr_index++; + hs->hdr_pos = 0; + } + } + /* If we get here and there are still header bytes to send, we send + * the header information we just wrote immediately. If there are no + * more headers to send, but we do have file data to send, drop through + * to try to send some file data too. */ + if((hs->hdr_index < NUM_FILE_HDR_STRINGS) || !hs->file) { + LWIP_DEBUGF(HTTPD_DEBUG, ("tcp_output\n")); + return HTTP_DATA_TO_SEND_BREAK; + } + return data_to_send; +} +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ + +/** Sub-function of http_send(): end-of-file (or block) is reached, + * either close the file or read the next block (if supported). + * + * @returns: 0 if the file is finished or no data has been read + * 1 if the file is not finished and data has been read + */ +static u8_t +http_check_eof(struct tcp_pcb *pcb, struct http_state *hs) +{ +#if LWIP_HTTPD_DYNAMIC_FILE_READ + int count; +#endif /* LWIP_HTTPD_DYNAMIC_FILE_READ */ + + /* Do we have a valid file handle? */ + if (hs->handle == NULL) { + /* No - close the connection. */ + http_eof(pcb, hs); + return 0; + } + if (fs_bytes_left(hs->handle) <= 0) { + /* We reached the end of the file so this request is done. */ + LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); + http_eof(pcb, hs); + return 0; + } +#if LWIP_HTTPD_DYNAMIC_FILE_READ + /* Do we already have a send buffer allocated? */ + if(hs->buf) { + /* Yes - get the length of the buffer */ + count = hs->buf_len; + } else { + /* We don't have a send buffer so allocate one up to 2mss bytes long. */ + count = 2 * tcp_mss(pcb); + do { + hs->buf = (char*)mem_malloc((mem_size_t)count); + if (hs->buf != NULL) { + hs->buf_len = count; + break; + } + count = count / 2; + } while (count > 100); + + /* Did we get a send buffer? If not, return immediately. */ + if (hs->buf == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("No buff\n")); + return 0; + } + } + + /* Read a block of data from the file. */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Trying to read %d bytes.\n", count)); + +#if LWIP_HTTPD_FS_ASYNC_READ + count = fs_read_async(hs->handle, hs->buf, count, http_continue, hs); +#else /* LWIP_HTTPD_FS_ASYNC_READ */ + count = fs_read(hs->handle, hs->buf, count); +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + if (count < 0) { + if (count == FS_READ_DELAYED) { + /* Delayed read, wait for FS to unblock us */ + return 0; + } + /* We reached the end of the file so this request is done. + * @todo: don't close here for HTTP/1.1? */ + LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); + http_eof(pcb, hs); + return 0; + } + + /* Set up to send the block of data we just read */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Read %d bytes.\n", count)); + hs->left = count; + hs->file = hs->buf; +#if LWIP_HTTPD_SSI + if (hs->ssi) { + hs->ssi->parse_left = count; + hs->ssi->parsed = hs->buf; + } +#endif /* LWIP_HTTPD_SSI */ +#else /* LWIP_HTTPD_DYNAMIC_FILE_READ */ + LWIP_ASSERT("SSI and DYNAMIC_HEADERS turned off but eof not reached", 0); +#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ + return 1; +} + +/** Sub-function of http_send(): This is the normal send-routine for non-ssi files + * + * @returns: - 1: data has been written (so call tcp_ouput) + * - 0: no data has been written (no need to call tcp_output) + */ +static u8_t +http_send_data_nonssi(struct tcp_pcb *pcb, struct http_state *hs) +{ + err_t err; + u16_t len; + u16_t mss; + u8_t data_to_send = 0; + + /* We are not processing an SHTML file so no tag checking is necessary. + * Just send the data as we received it from the file. */ + + /* We cannot send more data than space available in the send + buffer. */ + if (tcp_sndbuf(pcb) < hs->left) { + len = tcp_sndbuf(pcb); + } else { + len = (u16_t)hs->left; + LWIP_ASSERT("hs->left did not fit into u16_t!", (len == hs->left)); + } + mss = tcp_mss(pcb); + if (len > (2 * mss)) { + len = 2 * mss; + } + + err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); + if (err == ERR_OK) { + data_to_send = 1; + hs->file += len; + hs->left -= len; + } + + return data_to_send; +} + +#if LWIP_HTTPD_SSI +/** Sub-function of http_send(): This is the send-routine for ssi files + * + * @returns: - 1: data has been written (so call tcp_ouput) + * - 0: no data has been written (no need to call tcp_output) + */ +static u8_t +http_send_data_ssi(struct tcp_pcb *pcb, struct http_state *hs) +{ + err_t err = ERR_OK; + u16_t len; + u16_t mss; + u8_t data_to_send = 0; + + struct http_ssi_state *ssi = hs->ssi; + LWIP_ASSERT("ssi != NULL", ssi != NULL); + /* We are processing an SHTML file so need to scan for tags and replace + * them with insert strings. We need to be careful here since a tag may + * straddle the boundary of two blocks read from the file and we may also + * have to split the insert string between two tcp_write operations. */ + + /* Do we have remaining data to send before parsing more? */ + if(ssi->parsed > hs->file) { + /* We cannot send more data than space available in the send + buffer. */ + if (tcp_sndbuf(pcb) < (ssi->parsed - hs->file)) { + len = tcp_sndbuf(pcb); + } else { + LWIP_ASSERT("Data size does not fit into u16_t!", + (ssi->parsed - hs->file) <= 0xffff); + len = (u16_t)(ssi->parsed - hs->file); + } + mss = tcp_mss(pcb); + if(len > (2 * mss)) { + len = 2 * mss; + } + + err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); + if (err == ERR_OK) { + data_to_send = 1; + hs->file += len; + hs->left -= len; + } + + /* If the send buffer is full, return now. */ + if(tcp_sndbuf(pcb) == 0) { + return data_to_send; + } + } + + LWIP_DEBUGF(HTTPD_DEBUG, ("State %d, %d left\n", ssi->tag_state, (int)ssi->parse_left)); + + /* We have sent all the data that was already parsed so continue parsing + * the buffer contents looking for SSI tags. */ + while((ssi->parse_left) && (err == ERR_OK)) { + /* How much data could we send? */ + len = tcp_sndbuf(pcb); + if (len == 0) { + return data_to_send; + } + switch(ssi->tag_state) { + case TAG_NONE: + /* We are not currently processing an SSI tag so scan for the + * start of the lead-in marker. */ + if(*ssi->parsed == g_pcTagLeadIn[0]) { + /* We found what could be the lead-in for a new tag so change + * state appropriately. */ + ssi->tag_state = TAG_LEADIN; + ssi->tag_index = 1; +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + ssi->tag_started = ssi->parsed; +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ + } + + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + break; + + case TAG_LEADIN: + /* We are processing the lead-in marker, looking for the start of + * the tag name. */ + + /* Have we reached the end of the leadin? */ + if(ssi->tag_index == LEN_TAG_LEAD_IN) { + ssi->tag_index = 0; + ssi->tag_state = TAG_FOUND; + } else { + /* Have we found the next character we expect for the tag leadin? */ + if(*ssi->parsed == g_pcTagLeadIn[ssi->tag_index]) { + /* Yes - move to the next one unless we have found the complete + * leadin, in which case we start looking for the tag itself */ + ssi->tag_index++; + } else { + /* We found an unexpected character so this is not a tag. Move + * back to idle state. */ + ssi->tag_state = TAG_NONE; + } + + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + } + break; + + case TAG_FOUND: + /* We are reading the tag name, looking for the start of the + * lead-out marker and removing any whitespace found. */ + + /* Remove leading whitespace between the tag leading and the first + * tag name character. */ + if((ssi->tag_index == 0) && ((*ssi->parsed == ' ') || + (*ssi->parsed == '\t') || (*ssi->parsed == '\n') || + (*ssi->parsed == '\r'))) { + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + break; + } + + /* Have we found the end of the tag name? This is signalled by + * us finding the first leadout character or whitespace */ + if((*ssi->parsed == g_pcTagLeadOut[0]) || + (*ssi->parsed == ' ') || (*ssi->parsed == '\t') || + (*ssi->parsed == '\n') || (*ssi->parsed == '\r')) { + + if(ssi->tag_index == 0) { + /* We read a zero length tag so ignore it. */ + ssi->tag_state = TAG_NONE; + } else { + /* We read a non-empty tag so go ahead and look for the + * leadout string. */ + ssi->tag_state = TAG_LEADOUT; + LWIP_ASSERT("ssi->tag_index <= 0xff", ssi->tag_index <= 0xff); + ssi->tag_name_len = (u8_t)ssi->tag_index; + ssi->tag_name[ssi->tag_index] = '\0'; + if(*ssi->parsed == g_pcTagLeadOut[0]) { + ssi->tag_index = 1; + } else { + ssi->tag_index = 0; + } + } + } else { + /* This character is part of the tag name so save it */ + if(ssi->tag_index < LWIP_HTTPD_MAX_TAG_NAME_LEN) { + ssi->tag_name[ssi->tag_index++] = *ssi->parsed; + } else { + /* The tag was too long so ignore it. */ + ssi->tag_state = TAG_NONE; + } + } + + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + + break; + + /* We are looking for the end of the lead-out marker. */ + case TAG_LEADOUT: + /* Remove leading whitespace between the tag leading and the first + * tag leadout character. */ + if((ssi->tag_index == 0) && ((*ssi->parsed == ' ') || + (*ssi->parsed == '\t') || (*ssi->parsed == '\n') || + (*ssi->parsed == '\r'))) { + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + break; + } + + /* Have we found the next character we expect for the tag leadout? */ + if(*ssi->parsed == g_pcTagLeadOut[ssi->tag_index]) { + /* Yes - move to the next one unless we have found the complete + * leadout, in which case we need to call the client to process + * the tag. */ + + /* Move on to the next character in the buffer */ + ssi->parse_left--; + ssi->parsed++; + + if(ssi->tag_index == (LEN_TAG_LEAD_OUT - 1)) { + /* Call the client to ask for the insert string for the + * tag we just found. */ +#if LWIP_HTTPD_SSI_MULTIPART + ssi->tag_part = 0; /* start with tag part 0 */ +#endif /* LWIP_HTTPD_SSI_MULTIPART */ + get_tag_insert(hs); + + /* Next time through, we are going to be sending data + * immediately, either the end of the block we start + * sending here or the insert string. */ + ssi->tag_index = 0; + ssi->tag_state = TAG_SENDING; + ssi->tag_end = ssi->parsed; +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + ssi->parsed = ssi->tag_started; +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ + + /* If there is any unsent data in the buffer prior to the + * tag, we need to send it now. */ + if (ssi->tag_end > hs->file) { + /* How much of the data can we send? */ +#if LWIP_HTTPD_SSI_INCLUDE_TAG + if(len > ssi->tag_end - hs->file) { + len = (u16_t)(ssi->tag_end - hs->file); + } +#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ + if(len > ssi->tag_started - hs->file) { + /* we would include the tag in sending */ + len = (u16_t)(ssi->tag_started - hs->file); + } +#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ + + err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); + if (err == ERR_OK) { + data_to_send = 1; +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + if(ssi->tag_started <= hs->file) { + /* pretend to have sent the tag, too */ + len += ssi->tag_end - ssi->tag_started; + } +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ + hs->file += len; + hs->left -= len; + } + } + } else { + ssi->tag_index++; + } + } else { + /* We found an unexpected character so this is not a tag. Move + * back to idle state. */ + ssi->parse_left--; + ssi->parsed++; + ssi->tag_state = TAG_NONE; + } + break; + + /* + * We have found a valid tag and are in the process of sending + * data as a result of that discovery. We send either remaining data + * from the file prior to the insert point or the insert string itself. + */ + case TAG_SENDING: + /* Do we have any remaining file data to send from the buffer prior + * to the tag? */ + if(ssi->tag_end > hs->file) { + /* How much of the data can we send? */ +#if LWIP_HTTPD_SSI_INCLUDE_TAG + if(len > ssi->tag_end - hs->file) { + len = (u16_t)(ssi->tag_end - hs->file); + } +#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ + LWIP_ASSERT("hs->started >= hs->file", ssi->tag_started >= hs->file); + if (len > ssi->tag_started - hs->file) { + /* we would include the tag in sending */ + len = (u16_t)(ssi->tag_started - hs->file); + } +#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ + if (len != 0) { + err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); + } else { + err = ERR_OK; + } + if (err == ERR_OK) { + data_to_send = 1; +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + if(ssi->tag_started <= hs->file) { + /* pretend to have sent the tag, too */ + len += ssi->tag_end - ssi->tag_started; + } +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ + hs->file += len; + hs->left -= len; + } + } else { +#if LWIP_HTTPD_SSI_MULTIPART + if(ssi->tag_index >= ssi->tag_insert_len) { + /* Did the last SSIHandler have more to send? */ + if (ssi->tag_part != HTTPD_LAST_TAG_PART) { + /* If so, call it again */ + ssi->tag_index = 0; + get_tag_insert(hs); + } + } +#endif /* LWIP_HTTPD_SSI_MULTIPART */ + + /* Do we still have insert data left to send? */ + if(ssi->tag_index < ssi->tag_insert_len) { + /* We are sending the insert string itself. How much of the + * insert can we send? */ + if(len > (ssi->tag_insert_len - ssi->tag_index)) { + len = (ssi->tag_insert_len - ssi->tag_index); + } + + /* Note that we set the copy flag here since we only have a + * single tag insert buffer per connection. If we don't do + * this, insert corruption can occur if more than one insert + * is processed before we call tcp_output. */ + err = http_write(pcb, &(ssi->tag_insert[ssi->tag_index]), &len, + HTTP_IS_TAG_VOLATILE(hs)); + if (err == ERR_OK) { + data_to_send = 1; + ssi->tag_index += len; + /* Don't return here: keep on sending data */ + } + } else { +#if LWIP_HTTPD_SSI_MULTIPART + if (ssi->tag_part == HTTPD_LAST_TAG_PART) +#endif /* LWIP_HTTPD_SSI_MULTIPART */ + { + /* We have sent all the insert data so go back to looking for + * a new tag. */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Everything sent.\n")); + ssi->tag_index = 0; + ssi->tag_state = TAG_NONE; +#if !LWIP_HTTPD_SSI_INCLUDE_TAG + ssi->parsed = ssi->tag_end; +#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ + } + } + break; + } + } + } + + /* If we drop out of the end of the for loop, this implies we must have + * file data to send so send it now. In TAG_SENDING state, we've already + * handled this so skip the send if that's the case. */ + if((ssi->tag_state != TAG_SENDING) && (ssi->parsed > hs->file)) { + /* We cannot send more data than space available in the send + buffer. */ + if (tcp_sndbuf(pcb) < (ssi->parsed - hs->file)) { + len = tcp_sndbuf(pcb); + } else { + LWIP_ASSERT("Data size does not fit into u16_t!", + (ssi->parsed - hs->file) <= 0xffff); + len = (u16_t)(ssi->parsed - hs->file); + } + if(len > (2 * tcp_mss(pcb))) { + len = 2 * tcp_mss(pcb); + } + + err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); + if (err == ERR_OK) { + data_to_send = 1; + hs->file += len; + hs->left -= len; + } + } + return data_to_send; +} +#endif /* LWIP_HTTPD_SSI */ + +/** + * Try to send more data on this pcb. + * + * @param pcb the pcb to send data + * @param hs connection state + */ +static u8_t +http_send(struct tcp_pcb *pcb, struct http_state *hs) +{ + u8_t data_to_send = HTTP_NO_DATA_TO_SEND; + + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_send: pcb=%p hs=%p left=%d\n", (void*)pcb, + (void*)hs, hs != NULL ? (int)hs->left : 0)); + +#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND + if (hs->unrecved_bytes != 0) { + return 0; + } +#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ + + /* If we were passed a NULL state structure pointer, ignore the call. */ + if (hs == NULL) { + return 0; + } + +#if LWIP_HTTPD_FS_ASYNC_READ + /* Check if we are allowed to read from this file. + (e.g. SSI might want to delay sending until data is available) */ + if (!fs_is_file_ready(hs->handle, http_continue, hs)) { + return 0; + } +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + +#if LWIP_HTTPD_DYNAMIC_HEADERS + /* Do we have any more header data to send for this file? */ + if(hs->hdr_index < NUM_FILE_HDR_STRINGS) { + data_to_send = http_send_headers(pcb, hs); + if (data_to_send != HTTP_DATA_TO_SEND_CONTINUE) { + return data_to_send; + } + } +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ + + /* Have we run out of file data to send? If so, we need to read the next + * block from the file. */ + if (hs->left == 0) { + if (!http_check_eof(pcb, hs)) { + return 0; + } + } + +#if LWIP_HTTPD_SSI + if(hs->ssi) { + data_to_send = http_send_data_ssi(pcb, hs); + } else +#endif /* LWIP_HTTPD_SSI */ + { + data_to_send = http_send_data_nonssi(pcb, hs); + } + + if((hs->left == 0) && (fs_bytes_left(hs->handle) <= 0)) { + /* We reached the end of the file so this request is done. + * This adds the FIN flag right into the last data segment. */ + LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); + http_eof(pcb, hs); + return 0; + } + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("send_data end.\n")); + return data_to_send; +} + +#if LWIP_HTTPD_SUPPORT_EXTSTATUS +/** Initialize a http connection with a file to send for an error message + * + * @param hs http connection state + * @param error_nr HTTP error number + * @return ERR_OK if file was found and hs has been initialized correctly + * another err_t otherwise + */ +static err_t +http_find_error_file(struct http_state *hs, u16_t error_nr) +{ + const char *uri1, *uri2, *uri3; + err_t err; + + if (error_nr == 501) { + uri1 = "/501.html"; + uri2 = "/501.htm"; + uri3 = "/501.shtml"; + } else { + /* 400 (bad request is the default) */ + uri1 = "/400.html"; + uri2 = "/400.htm"; + uri3 = "/400.shtml"; + } + err = fs_open(&hs->file_handle, uri1); + if (err != ERR_OK) { + err = fs_open(&hs->file_handle, uri2); + if (err != ERR_OK) { + err = fs_open(&hs->file_handle, uri3); + if (err != ERR_OK) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Error page for error %"U16_F" not found\n", + error_nr)); + return ERR_ARG; + } + } + } + return http_init_file(hs, &hs->file_handle, 0, NULL, 0); +} +#else /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ +#define http_find_error_file(hs, error_nr) ERR_ARG +#endif /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ + +/** + * Get the file struct for a 404 error page. + * Tries some file names and returns NULL if none found. + * + * @param uri pointer that receives the actual file name URI + * @return file struct for the error page or NULL no matching file was found + */ +static struct fs_file * +http_get_404_file(struct http_state *hs, const char **uri) +{ + err_t err; + + *uri = "/404.html"; + err = fs_open(&hs->file_handle, *uri); + if (err != ERR_OK) { + /* 404.html doesn't exist. Try 404.htm instead. */ + *uri = "/404.htm"; + err = fs_open(&hs->file_handle, *uri); + if (err != ERR_OK) { + /* 404.htm doesn't exist either. Try 404.shtml instead. */ + *uri = "/404.shtml"; + err = fs_open(&hs->file_handle, *uri); + if (err != ERR_OK) { + /* 404.htm doesn't exist either. Indicate to the caller that it should + * send back a default 404 page. + */ + *uri = NULL; + return NULL; + } + } + } + + return &hs->file_handle; +} + +#if LWIP_HTTPD_SUPPORT_POST +static err_t +http_handle_post_finished(struct http_state *hs) +{ +#if LWIP_HTTPD_POST_MANUAL_WND + /* Prevent multiple calls to httpd_post_finished, since it might have already + been called before from httpd_post_data_recved(). */ + if (hs->post_finished) { + return ERR_OK; + } + hs->post_finished = 1; +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + /* application error or POST finished */ + /* NULL-terminate the buffer */ + http_post_response_filename[0] = 0; + httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); + return http_find_file(hs, http_post_response_filename, 0); +} + +/** Pass received POST body data to the application and correctly handle + * returning a response document or closing the connection. + * ATTENTION: The application is responsible for the pbuf now, so don't free it! + * + * @param hs http connection state + * @param p pbuf to pass to the application + * @return ERR_OK if passed successfully, another err_t if the response file + * hasn't been found (after POST finished) + */ +static err_t +http_post_rxpbuf(struct http_state *hs, struct pbuf *p) +{ + err_t err; + + /* adjust remaining Content-Length */ + if (hs->post_content_len_left < p->tot_len) { + hs->post_content_len_left = 0; + } else { + hs->post_content_len_left -= p->tot_len; + } + err = httpd_post_receive_data(hs, p); + if ((err != ERR_OK) || (hs->post_content_len_left == 0)) { +#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND + if (hs->unrecved_bytes != 0) { + return ERR_OK; + } +#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ + /* application error or POST finished */ + return http_handle_post_finished(hs); + } + + return ERR_OK; +} + +/** Handle a post request. Called from http_parse_request when method 'POST' + * is found. + * + * @param p The input pbuf (containing the POST header and body). + * @param hs The http connection state. + * @param data HTTP request (header and part of body) from input pbuf(s). + * @param data_len Size of 'data'. + * @param uri The HTTP URI parsed from input pbuf(s). + * @param uri_end Pointer to the end of 'uri' (here, the rest of the HTTP + * header starts). + * @return ERR_OK: POST correctly parsed and accepted by the application. + * ERR_INPROGRESS: POST not completely parsed (no error yet) + * another err_t: Error parsing POST or denied by the application + */ +static err_t +http_post_request(struct pbuf **inp, struct http_state *hs, + char *data, u16_t data_len, char *uri, char *uri_end) +{ + err_t err; + /* search for end-of-header (first double-CRLF) */ + char* crlfcrlf = strnstr(uri_end + 1, CRLF CRLF, data_len - (uri_end + 1 - data)); + + if (crlfcrlf != NULL) { + /* search for "Content-Length: " */ +#define HTTP_HDR_CONTENT_LEN "Content-Length: " +#define HTTP_HDR_CONTENT_LEN_LEN 16 +#define HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN 10 + char *scontent_len = strnstr(uri_end + 1, HTTP_HDR_CONTENT_LEN, crlfcrlf - (uri_end + 1)); + if (scontent_len != NULL) { + char *scontent_len_end = strnstr(scontent_len + HTTP_HDR_CONTENT_LEN_LEN, CRLF, HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN); + if (scontent_len_end != NULL) { + int content_len; + char *conten_len_num = scontent_len + HTTP_HDR_CONTENT_LEN_LEN; + *scontent_len_end = 0; + content_len = atoi(conten_len_num); + if (content_len > 0) { + /* adjust length of HTTP header passed to application */ + const char *hdr_start_after_uri = uri_end + 1; + u16_t hdr_len = LWIP_MIN(data_len, crlfcrlf + 4 - data); + u16_t hdr_data_len = LWIP_MIN(data_len, crlfcrlf + 4 - hdr_start_after_uri); + u8_t post_auto_wnd = 1; + http_post_response_filename[0] = 0; + err = httpd_post_begin(hs, uri, hdr_start_after_uri, hdr_data_len, content_len, + http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN, &post_auto_wnd); + if (err == ERR_OK) { + /* try to pass in data of the first pbuf(s) */ + struct pbuf *q = *inp; + u16_t start_offset = hdr_len; +#if LWIP_HTTPD_POST_MANUAL_WND + hs->no_auto_wnd = !post_auto_wnd; +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + /* set the Content-Length to be received for this POST */ + hs->post_content_len_left = (u32_t)content_len; + + /* get to the pbuf where the body starts */ + while((q != NULL) && (q->len <= start_offset)) { + struct pbuf *head = q; + start_offset -= q->len; + q = q->next; + /* free the head pbuf */ + head->next = NULL; + pbuf_free(head); + } + *inp = NULL; + if (q != NULL) { + /* hide the remaining HTTP header */ + pbuf_header(q, -(s16_t)start_offset); +#if LWIP_HTTPD_POST_MANUAL_WND + if (!post_auto_wnd) { + /* already tcp_recved() this data... */ + hs->unrecved_bytes = q->tot_len; + } +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + return http_post_rxpbuf(hs, q); + } else { + return ERR_OK; + } + } else { + /* return file passed from application */ + return http_find_file(hs, http_post_response_filename, 0); + } + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("POST received invalid Content-Length: %s\n", + conten_len_num)); + return ERR_ARG; + } + } + } + } + /* if we come here, the POST is incomplete */ +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + return ERR_INPROGRESS; +#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + return ERR_ARG; +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ +} + +#if LWIP_HTTPD_POST_MANUAL_WND +/** A POST implementation can call this function to update the TCP window. + * This can be used to throttle data reception (e.g. when received data is + * programmed to flash and data is received faster than programmed). + * + * @param connection A connection handle passed to httpd_post_begin for which + * httpd_post_finished has *NOT* been called yet! + * @param recved_len Length of data received (for window update) + */ +void httpd_post_data_recved(void *connection, u16_t recved_len) +{ + struct http_state *hs = (struct http_state*)connection; + if (hs != NULL) { + if (hs->no_auto_wnd) { + u16_t len = recved_len; + if (hs->unrecved_bytes >= recved_len) { + hs->unrecved_bytes -= recved_len; + } else { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_LEVEL_WARNING, ("httpd_post_data_recved: recved_len too big\n")); + len = (u16_t)hs->unrecved_bytes; + hs->unrecved_bytes = 0; + } + if (hs->pcb != NULL) { + if (len != 0) { + tcp_recved(hs->pcb, len); + } + if ((hs->post_content_len_left == 0) && (hs->unrecved_bytes == 0)) { + /* finished handling POST */ + http_handle_post_finished(hs); + http_send(hs->pcb, hs); + } + } + } + } +} +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + +#endif /* LWIP_HTTPD_SUPPORT_POST */ + +#if LWIP_HTTPD_FS_ASYNC_READ +/** Try to send more data if file has been blocked before + * This is a callback function passed to fs_read_async(). + */ +static void +http_continue(void *connection) +{ + struct http_state *hs = (struct http_state*)connection; + if (hs && (hs->pcb) && (hs->handle)) { + LWIP_ASSERT("hs->pcb != NULL", hs->pcb != NULL); + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("httpd_continue: try to send more data\n")); + if (http_send(hs->pcb, hs)) { + /* If we wrote anything to be sent, go ahead and send it now. */ + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("tcp_output\n")); + tcp_output(hs->pcb); + } + } +} +#endif /* LWIP_HTTPD_FS_ASYNC_READ */ + +/** + * When data has been received in the correct state, try to parse it + * as a HTTP request. + * + * @param p the received pbuf + * @param hs the connection state + * @param pcb the tcp_pcb which received this packet + * @return ERR_OK if request was OK and hs has been initialized correctly + * ERR_INPROGRESS if request was OK so far but not fully received + * another err_t otherwise + */ +static err_t +http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb) +{ + char *data; + char *crlf; + u16_t data_len; + struct pbuf *p = *inp; +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + u16_t clen; +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ +#if LWIP_HTTPD_SUPPORT_POST + err_t err; +#endif /* LWIP_HTTPD_SUPPORT_POST */ + + LWIP_UNUSED_ARG(pcb); /* only used for post */ + LWIP_ASSERT("p != NULL", p != NULL); + LWIP_ASSERT("hs != NULL", hs != NULL); + + if ((hs->handle != NULL) || (hs->file != NULL)) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Received data while sending a file\n")); + /* already sending a file */ + /* @todo: abort? */ + return ERR_USE; + } + +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + + LWIP_DEBUGF(HTTPD_DEBUG, ("Received %"U16_F" bytes\n", p->tot_len)); + + /* first check allowed characters in this pbuf? */ + + /* enqueue the pbuf */ + if (hs->req == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("First pbuf\n")); + hs->req = p; + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("pbuf enqueued\n")); + pbuf_cat(hs->req, p); + } + + if (hs->req->next != NULL) { + data_len = LWIP_MIN(hs->req->tot_len, LWIP_HTTPD_MAX_REQ_LENGTH); + pbuf_copy_partial(hs->req, httpd_req_buf, data_len, 0); + data = httpd_req_buf; + } else +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + { + data = (char *)p->payload; + data_len = p->len; + if (p->len != p->tot_len) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: incomplete header due to chained pbufs\n")); + } + } + + /* received enough data for minimal request? */ + if (data_len >= MIN_REQ_LEN) { + /* wait for CRLF before parsing anything */ + crlf = strnstr(data, CRLF, data_len); + if (crlf != NULL) { +#if LWIP_HTTPD_SUPPORT_POST + int is_post = 0; +#endif /* LWIP_HTTPD_SUPPORT_POST */ + int is_09 = 0; + char *sp1, *sp2; + u16_t left_len, uri_len; + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("CRLF received, parsing request\n")); + /* parse method */ + if (!strncmp(data, "GET ", 4)) { + sp1 = data + 3; + /* received GET request */ + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received GET request\"\n")); +#if LWIP_HTTPD_SUPPORT_POST + } else if (!strncmp(data, "POST ", 5)) { + /* store request type */ + is_post = 1; + sp1 = data + 4; + /* received GET request */ + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received POST request\n")); +#endif /* LWIP_HTTPD_SUPPORT_POST */ + } else { + /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ + data[4] = 0; + /* unsupported method! */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported request method (not implemented): \"%s\"\n", + data)); + return http_find_error_file(hs, 501); + } + /* if we come here, method is OK, parse URI */ + left_len = data_len - ((sp1 +1) - data); + sp2 = strnstr(sp1 + 1, " ", left_len); +#if LWIP_HTTPD_SUPPORT_V09 + if (sp2 == NULL) { + /* HTTP 0.9: respond with correct protocol version */ + sp2 = strnstr(sp1 + 1, CRLF, left_len); + is_09 = 1; +#if LWIP_HTTPD_SUPPORT_POST + if (is_post) { + /* HTTP/0.9 does not support POST */ + goto badrequest; + } +#endif /* LWIP_HTTPD_SUPPORT_POST */ + } +#endif /* LWIP_HTTPD_SUPPORT_V09 */ + uri_len = sp2 - (sp1 + 1); + if ((sp2 != 0) && (sp2 > sp1)) { + /* wait for CRLFCRLF (indicating end of HTTP headers) before parsing anything */ + if (strnstr(data, CRLF CRLF, data_len) != NULL) { + char *uri = sp1 + 1; +#if LWIP_HTTPD_SUPPORT_11_KEEPALIVE + if (!is_09 && strnstr(data, HTTP11_CONNECTIONKEEPALIVE, data_len)) { + hs->keepalive = 1; + } +#endif /* LWIP_HTTPD_SUPPORT_11_KEEPALIVE */ + /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ + *sp1 = 0; + uri[uri_len] = 0; + LWIP_DEBUGF(HTTPD_DEBUG, ("Received \"%s\" request for URI: \"%s\"\n", + data, uri)); +#if LWIP_HTTPD_SUPPORT_POST + if (is_post) { +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + struct pbuf **q = &hs->req; +#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + struct pbuf **q = inp; +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + err = http_post_request(q, hs, data, data_len, uri, sp2); + if (err != ERR_OK) { + /* restore header for next try */ + *sp1 = ' '; + *sp2 = ' '; + uri[uri_len] = ' '; + } + if (err == ERR_ARG) { + goto badrequest; + } + return err; + } else +#endif /* LWIP_HTTPD_SUPPORT_POST */ + { + return http_find_file(hs, uri, is_09); + } + } + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("invalid URI\n")); + } + } + } + +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + clen = pbuf_clen(hs->req); + if ((hs->req->tot_len <= LWIP_HTTPD_REQ_BUFSIZE) && + (clen <= LWIP_HTTPD_REQ_QUEUELEN)) { + /* request not fully received (too short or CRLF is missing) */ + return ERR_INPROGRESS; + } else +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + { +#if LWIP_HTTPD_SUPPORT_POST +badrequest: +#endif /* LWIP_HTTPD_SUPPORT_POST */ + LWIP_DEBUGF(HTTPD_DEBUG, ("bad request\n")); + /* could not parse request */ + return http_find_error_file(hs, 400); + } +} + +/** Try to find the file specified by uri and, if found, initialize hs + * accordingly. + * + * @param hs the connection state + * @param uri the HTTP header URI + * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) + * @return ERR_OK if file was found and hs has been initialized correctly + * another err_t otherwise + */ +static err_t +http_find_file(struct http_state *hs, const char *uri, int is_09) +{ + size_t loop; + struct fs_file *file = NULL; + char *params; + err_t err; +#if LWIP_HTTPD_CGI + int i; + int count; +#endif /* LWIP_HTTPD_CGI */ +#if !LWIP_HTTPD_SSI + const +#endif /* !LWIP_HTTPD_SSI */ + /* By default, assume we will not be processing server-side-includes tags */ + u8_t tag_check = 0; + + /* Have we been asked for the default root file? */ + if((uri[0] == '/') && (uri[1] == 0)) { + /* Try each of the configured default filenames until we find one + that exists. */ + for (loop = 0; loop < NUM_DEFAULT_FILENAMES; loop++) { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Looking for %s...\n", g_psDefaultFilenames[loop].name)); + err = fs_open(&hs->file_handle, (char *)g_psDefaultFilenames[loop].name); + uri = (char *)g_psDefaultFilenames[loop].name; + if(err == ERR_OK) { + file = &hs->file_handle; + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opened.\n")); +#if LWIP_HTTPD_SSI + tag_check = g_psDefaultFilenames[loop].shtml; +#endif /* LWIP_HTTPD_SSI */ + break; + } + } + if (file == NULL) { + /* None of the default filenames exist so send back a 404 page */ + file = http_get_404_file(hs, &uri); +#if LWIP_HTTPD_SSI + tag_check = 0; +#endif /* LWIP_HTTPD_SSI */ + } + } else { + /* No - we've been asked for a specific file. */ + /* First, isolate the base URI (without any parameters) */ + params = (char *)strchr(uri, '?'); + if (params != NULL) { + /* URI contains parameters. NULL-terminate the base URI */ + *params = '\0'; + params++; + } + +#if LWIP_HTTPD_CGI + /* Does the base URI we have isolated correspond to a CGI handler? */ + if (g_iNumCGIs && g_pCGIs) { + for (i = 0; i < g_iNumCGIs; i++) { + if (strcmp(uri, g_pCGIs[i].pcCGIName) == 0) { + /* + * We found a CGI that handles this URI so extract the + * parameters and call the handler. + */ + count = extract_uri_parameters(hs, params); + uri = g_pCGIs[i].pfnCGIHandler(i, count, hs->params, + hs->param_vals); + break; + } + } + } +#endif /* LWIP_HTTPD_CGI */ + + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opening %s\n", uri)); + + err = fs_open(&hs->file_handle, uri); + if (err == ERR_OK) { + file = &hs->file_handle; + } else { + file = http_get_404_file(hs, &uri); + } +#if LWIP_HTTPD_SSI + if (file != NULL) { + /* See if we have been asked for an shtml file and, if so, + enable tag checking. */ + tag_check = 0; + for (loop = 0; loop < NUM_SHTML_EXTENSIONS; loop++) { + if (strstr(uri, g_pcSSIExtensions[loop])) { + tag_check = 1; + break; + } + } + } +#endif /* LWIP_HTTPD_SSI */ + } + return http_init_file(hs, file, is_09, uri, tag_check); +} + +/** Initialize a http connection with a file to send (if found). + * Called by http_find_file and http_find_error_file. + * + * @param hs http connection state + * @param file file structure to send (or NULL if not found) + * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) + * @param uri the HTTP header URI + * @param tag_check enable SSI tag checking + * @return ERR_OK if file was found and hs has been initialized correctly + * another err_t otherwise + */ +static err_t +http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri, u8_t tag_check) +{ + if (file != NULL) { + /* file opened, initialise struct http_state */ +#if LWIP_HTTPD_SSI + if (tag_check) { + struct http_ssi_state *ssi = http_ssi_state_alloc(); + if (ssi != NULL) { + ssi->tag_index = 0; + ssi->tag_state = TAG_NONE; + ssi->parsed = file->data; + ssi->parse_left = file->len; + ssi->tag_end = file->data; + hs->ssi = ssi; + } + } +#else /* LWIP_HTTPD_SSI */ + LWIP_UNUSED_ARG(tag_check); +#endif /* LWIP_HTTPD_SSI */ + hs->handle = file; + hs->file = (char*)file->data; + LWIP_ASSERT("File length must be positive!", (file->len >= 0)); + hs->left = file->len; + hs->retries = 0; +#if LWIP_HTTPD_TIMING + hs->time_started = sys_now(); +#endif /* LWIP_HTTPD_TIMING */ +#if !LWIP_HTTPD_DYNAMIC_HEADERS + LWIP_ASSERT("HTTP headers not included in file system", hs->handle->http_header_included); +#endif /* !LWIP_HTTPD_DYNAMIC_HEADERS */ +#if LWIP_HTTPD_SUPPORT_V09 + if (hs->handle->http_header_included && is_09) { + /* HTTP/0.9 responses are sent without HTTP header, + search for the end of the header. */ + char *file_start = strnstr(hs->file, CRLF CRLF, hs->left); + if (file_start != NULL) { + size_t diff = file_start + 4 - hs->file; + hs->file += diff; + hs->left -= (u32_t)diff; + } + } +#endif /* LWIP_HTTPD_SUPPORT_V09*/ + } else { + hs->handle = NULL; + hs->file = NULL; + hs->left = 0; + hs->retries = 0; + } +#if LWIP_HTTPD_DYNAMIC_HEADERS + /* Determine the HTTP headers to send based on the file extension of + * the requested URI. */ + if ((hs->handle == NULL) || !hs->handle->http_header_included) { + get_http_headers(hs, (char*)uri); + } +#else /* LWIP_HTTPD_DYNAMIC_HEADERS */ + LWIP_UNUSED_ARG(uri); +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ + return ERR_OK; +} + +/** + * The pcb had an error and is already deallocated. + * The argument might still be valid (if != NULL). + */ +static void +http_err(void *arg, err_t err) +{ + struct http_state *hs = (struct http_state *)arg; + LWIP_UNUSED_ARG(err); + + LWIP_DEBUGF(HTTPD_DEBUG, ("http_err: %s", lwip_strerr(err))); + + if (hs != NULL) { + http_state_free(hs); + } +} + +/** + * Data has been sent and acknowledged by the remote host. + * This means that more data can be sent. + */ +static err_t +http_sent(void *arg, struct tcp_pcb *pcb, u16_t len) +{ + struct http_state *hs = (struct http_state *)arg; + + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_sent %p\n", (void*)pcb)); + + LWIP_UNUSED_ARG(len); + + if (hs == NULL) { + return ERR_OK; + } + + hs->retries = 0; + + http_send(pcb, hs); + + return ERR_OK; +} + +/** + * The poll function is called every 2nd second. + * If there has been no data sent (which resets the retries) in 8 seconds, close. + * If the last portion of a file has not been sent in 2 seconds, close. + * + * This could be increased, but we don't want to waste resources for bad connections. + */ +static err_t +http_poll(void *arg, struct tcp_pcb *pcb) +{ + struct http_state *hs = (struct http_state *)arg; + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: pcb=%p hs=%p pcb_state=%s\n", + (void*)pcb, (void*)hs, tcp_debug_state_str(pcb->state))); + + if (hs == NULL) { + err_t closed; + /* arg is null, close. */ + LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: arg is NULL, close\n")); + closed = http_close_conn(pcb, NULL); + LWIP_UNUSED_ARG(closed); +#if LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR + if (closed == ERR_MEM) { + tcp_abort(pcb); + return ERR_ABRT; + } +#endif /* LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR */ + return ERR_OK; + } else { + hs->retries++; + if (hs->retries == HTTPD_MAX_RETRIES) { + LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: too many retries, close\n")); + http_close_conn(pcb, hs); + return ERR_OK; + } + + /* If this connection has a file open, try to send some more data. If + * it has not yet received a GET request, don't do this since it will + * cause the connection to close immediately. */ + if(hs && (hs->handle)) { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: try to send more data\n")); + if(http_send(pcb, hs)) { + /* If we wrote anything to be sent, go ahead and send it now. */ + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("tcp_output\n")); + tcp_output(pcb); + } + } + } + + return ERR_OK; +} + +/** + * Data has been received on this pcb. + * For HTTP 1.0, this should normally only happen once (if the request fits in one packet). + */ +static err_t +http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) +{ + err_t parsed = ERR_ABRT; + struct http_state *hs = (struct http_state *)arg; + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: pcb=%p pbuf=%p err=%s\n", (void*)pcb, + (void*)p, lwip_strerr(err))); + + if ((err != ERR_OK) || (p == NULL) || (hs == NULL)) { + /* error or closed by other side? */ + if (p != NULL) { + /* Inform TCP that we have taken the data. */ + tcp_recved(pcb, p->tot_len); + pbuf_free(p); + } + if (hs == NULL) { + /* this should not happen, only to be robust */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Error, http_recv: hs is NULL, close\n")); + } + http_close_conn(pcb, hs); + return ERR_OK; + } + +#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND + if (hs->no_auto_wnd) { + hs->unrecved_bytes += p->tot_len; + } else +#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ + { + /* Inform TCP that we have taken the data. */ + tcp_recved(pcb, p->tot_len); + } + +#if LWIP_HTTPD_SUPPORT_POST + if (hs->post_content_len_left > 0) { + /* reset idle counter when POST data is received */ + hs->retries = 0; + /* this is data for a POST, pass the complete pbuf to the application */ + http_post_rxpbuf(hs, p); + /* pbuf is passed to the application, don't free it! */ + if (hs->post_content_len_left == 0) { + /* all data received, send response or close connection */ + http_send(pcb, hs); + } + return ERR_OK; + } else +#endif /* LWIP_HTTPD_SUPPORT_POST */ + { + if (hs->handle == NULL) { + parsed = http_parse_request(&p, hs, pcb); + LWIP_ASSERT("http_parse_request: unexpected return value", parsed == ERR_OK + || parsed == ERR_INPROGRESS ||parsed == ERR_ARG || parsed == ERR_USE); + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: already sending data\n")); + } +#if LWIP_HTTPD_SUPPORT_REQUESTLIST + if (parsed != ERR_INPROGRESS) { + /* request fully parsed or error */ + if (hs->req != NULL) { + pbuf_free(hs->req); + hs->req = NULL; + } + } +#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + if (p != NULL) { + /* pbuf not passed to application, free it now */ + pbuf_free(p); + } +#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ + if (parsed == ERR_OK) { +#if LWIP_HTTPD_SUPPORT_POST + if (hs->post_content_len_left == 0) +#endif /* LWIP_HTTPD_SUPPORT_POST */ + { + LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: data %p len %"S32_F"\n", hs->file, hs->left)); + http_send(pcb, hs); + } + } else if (parsed == ERR_ARG) { + /* @todo: close on ERR_USE? */ + http_close_conn(pcb, hs); + } + } + return ERR_OK; +} + +/** + * A new incoming connection has been accepted. + */ +static err_t +http_accept(void *arg, struct tcp_pcb *pcb, err_t err) +{ + struct http_state *hs; + struct tcp_pcb_listen *lpcb = (struct tcp_pcb_listen*)arg; + LWIP_UNUSED_ARG(err); + LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept %p / %p\n", (void*)pcb, arg)); + + /* Decrease the listen backlog counter */ + tcp_accepted(lpcb); + /* Set priority */ + tcp_setprio(pcb, HTTPD_TCP_PRIO); + + /* Allocate memory for the structure that holds the state of the + connection - initialized by that function. */ + hs = http_state_alloc(); + if (hs == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept: Out of memory, RST\n")); + return ERR_MEM; + } + hs->pcb = pcb; + + /* Tell TCP that this is the structure we wish to be passed for our + callbacks. */ + tcp_arg(pcb, hs); + + /* Set up the various callback functions */ + tcp_recv(pcb, http_recv); + tcp_err(pcb, http_err); + tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); + tcp_sent(pcb, http_sent); + + return ERR_OK; +} + +/** + * Initialize the httpd with the specified local address. + */ +static void +httpd_init_addr(ip_addr_t *local_addr) +{ + struct tcp_pcb *pcb; + err_t err; + + pcb = tcp_new(); + LWIP_ASSERT("httpd_init: tcp_new failed", pcb != NULL); + tcp_setprio(pcb, HTTPD_TCP_PRIO); + /* set SOF_REUSEADDR here to explicitly bind httpd to multiple interfaces */ + err = tcp_bind(pcb, local_addr, HTTPD_SERVER_PORT); + LWIP_ASSERT("httpd_init: tcp_bind failed", err == ERR_OK); + pcb = tcp_listen(pcb); + LWIP_ASSERT("httpd_init: tcp_listen failed", pcb != NULL); + /* initialize callback arg and accept callback */ + tcp_arg(pcb, pcb); + tcp_accept(pcb, http_accept); +} + +/** + * Initialize the httpd: set up a listening PCB and bind it to the defined port + */ +void +httpd_init(void) +{ +#if HTTPD_USE_MEM_POOL + LWIP_ASSERT("memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)", + memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)); + LWIP_ASSERT("memp_sizes[MEMP_HTTPD_SSI_STATE] >= sizeof(http_ssi_state)", + memp_sizes[MEMP_HTTPD_SSI_STATE] >= sizeof(http_ssi_state)); +#endif + LWIP_DEBUGF(HTTPD_DEBUG, ("httpd_init\n")); + + httpd_init_addr(IP_ADDR_ANY); +} + +#if LWIP_HTTPD_SSI +/** + * Set the SSI handler function. + * + * @param ssi_handler the SSI handler function + * @param tags an array of SSI tag strings to search for in SSI-enabled files + * @param num_tags number of tags in the 'tags' array + */ +void +http_set_ssi_handler(tSSIHandler ssi_handler, const char **tags, int num_tags) +{ + LWIP_DEBUGF(HTTPD_DEBUG, ("http_set_ssi_handler\n")); + + LWIP_ASSERT("no ssi_handler given", ssi_handler != NULL); + LWIP_ASSERT("no tags given", tags != NULL); + LWIP_ASSERT("invalid number of tags", num_tags > 0); + + g_pfnSSIHandler = ssi_handler; + g_ppcTags = tags; + g_iNumTags = num_tags; +} +#endif /* LWIP_HTTPD_SSI */ + +#if LWIP_HTTPD_CGI +/** + * Set an array of CGI filenames/handler functions + * + * @param cgis an array of CGI filenames/handler functions + * @param num_handlers number of elements in the 'cgis' array + */ +void +http_set_cgi_handlers(const tCGI *cgis, int num_handlers) +{ + LWIP_ASSERT("no cgis given", cgis != NULL); + LWIP_ASSERT("invalid number of handlers", num_handlers > 0); + + g_pCGIs = cgis; + g_iNumCGIs = num_handlers; +} +#endif /* LWIP_HTTPD_CGI */ + +#endif /* LWIP_TCP */ diff --git a/extras/httpd/httpd.h b/extras/httpd/httpd.h new file mode 100644 index 0000000..88cefce --- /dev/null +++ b/extras/httpd/httpd.h @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + * This version of the file has been modified by Texas Instruments to offer + * simple server-side-include (SSI) and Common Gateway Interface (CGI) + * capability. + */ + +#ifndef __HTTPD_H__ +#define __HTTPD_H__ + +#include "lwip/opt.h" +#include "lwip/err.h" +#include "lwip/pbuf.h" + + +/** Set this to 1 to support CGI */ +#ifndef LWIP_HTTPD_CGI +#define LWIP_HTTPD_CGI 0 +#endif + +/** Set this to 1 to support SSI (Server-Side-Includes) */ +#ifndef LWIP_HTTPD_SSI +#define LWIP_HTTPD_SSI 0 +#endif + +/** Set this to 1 to support HTTP POST */ +#ifndef LWIP_HTTPD_SUPPORT_POST +#define LWIP_HTTPD_SUPPORT_POST 0 +#endif + + +#if LWIP_HTTPD_CGI + +/* + * Function pointer for a CGI script handler. + * + * This function is called each time the HTTPD server is asked for a file + * whose name was previously registered as a CGI function using a call to + * http_set_cgi_handler. The iIndex parameter provides the index of the + * CGI within the ppcURLs array passed to http_set_cgi_handler. Parameters + * pcParam and pcValue provide access to the parameters provided along with + * the URI. iNumParams provides a count of the entries in the pcParam and + * pcValue arrays. Each entry in the pcParam array contains the name of a + * parameter with the corresponding entry in the pcValue array containing the + * value for that parameter. Note that pcParam may contain multiple elements + * with the same name if, for example, a multi-selection list control is used + * in the form generating the data. + * + * The function should return a pointer to a character string which is the + * path and filename of the response that is to be sent to the connected + * browser, for example "/thanks.htm" or "/response/error.ssi". + * + * The maximum number of parameters that will be passed to this function via + * iNumParams is defined by LWIP_HTTPD_MAX_CGI_PARAMETERS. Any parameters in the incoming + * HTTP request above this number will be discarded. + * + * Requests intended for use by this CGI mechanism must be sent using the GET + * method (which encodes all parameters within the URI rather than in a block + * later in the request). Attempts to use the POST method will result in the + * request being ignored. + * + */ +typedef const char *(*tCGIHandler)(int iIndex, int iNumParams, char *pcParam[], + char *pcValue[]); + +/* + * Structure defining the base filename (URL) of a CGI and the associated + * function which is to be called when that URL is requested. + */ +typedef struct +{ + const char *pcCGIName; + tCGIHandler pfnCGIHandler; +} tCGI; + +void http_set_cgi_handlers(const tCGI *pCGIs, int iNumHandlers); + + +/* The maximum number of parameters that the CGI handler can be sent. */ +#ifndef LWIP_HTTPD_MAX_CGI_PARAMETERS +#define LWIP_HTTPD_MAX_CGI_PARAMETERS 16 +#endif + +#endif /* LWIP_HTTPD_CGI */ + +#if LWIP_HTTPD_SSI + +/** LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more + * arguments indicating a counter for insert string that are too long to be + * inserted at once: the SSI handler function must then set 'next_tag_part' + * which will be passed back to it in the next call. */ +#ifndef LWIP_HTTPD_SSI_MULTIPART +#define LWIP_HTTPD_SSI_MULTIPART 0 +#endif + +/* + * Function pointer for the SSI tag handler callback. + * + * This function will be called each time the HTTPD server detects a tag of the + * form in a .shtml, .ssi or .shtm file where "name" appears as + * one of the tags supplied to http_set_ssi_handler in the ppcTags array. The + * returned insert string, which will be appended after the the string + * "" in file sent back to the client,should be written to pointer + * pcInsert. iInsertLen contains the size of the buffer pointed to by + * pcInsert. The iIndex parameter provides the zero-based index of the tag as + * found in the ppcTags array and identifies the tag that is to be processed. + * + * The handler returns the number of characters written to pcInsert excluding + * any terminating NULL or a negative number to indicate a failure (tag not + * recognized, for example). + * + * Note that the behavior of this SSI mechanism is somewhat different from the + * "normal" SSI processing as found in, for example, the Apache web server. In + * this case, the inserted text is appended following the SSI tag rather than + * replacing the tag entirely. This allows for an implementation that does not + * require significant additional buffering of output data yet which will still + * offer usable SSI functionality. One downside to this approach is when + * attempting to use SSI within JavaScript. The SSI tag is structured to + * resemble an HTML comment but this syntax does not constitute a comment + * within JavaScript and, hence, leaving the tag in place will result in + * problems in these cases. To work around this, any SSI tag which needs to + * output JavaScript code must do so in an encapsulated way, sending the whole + * HTML section as a single include. + */ +typedef u16_t (*tSSIHandler)(int iIndex, char *pcInsert, int iInsertLen +#if LWIP_HTTPD_SSI_MULTIPART + , u16_t current_tag_part, u16_t *next_tag_part +#endif /* LWIP_HTTPD_SSI_MULTIPART */ +#if LWIP_HTTPD_FILE_STATE + , void *connection_state +#endif /* LWIP_HTTPD_FILE_STATE */ + ); + +void http_set_ssi_handler(tSSIHandler pfnSSIHandler, + const char **ppcTags, int iNumTags); + +/* The maximum length of the string comprising the tag name */ +#ifndef LWIP_HTTPD_MAX_TAG_NAME_LEN +#define LWIP_HTTPD_MAX_TAG_NAME_LEN 8 +#endif + +/* The maximum length of string that can be returned to replace any given tag */ +#ifndef LWIP_HTTPD_MAX_TAG_INSERT_LEN +#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 192 +#endif + +#endif /* LWIP_HTTPD_SSI */ + +#if LWIP_HTTPD_SUPPORT_POST + +/* These functions must be implemented by the application */ + +/** Called when a POST request has been received. The application can decide + * whether to accept it or not. + * + * @param connection Unique connection identifier, valid until httpd_post_end + * is called. + * @param uri The HTTP header URI receiving the POST request. + * @param http_request The raw HTTP request (the first packet, normally). + * @param http_request_len Size of 'http_request'. + * @param content_len Content-Length from HTTP header. + * @param response_uri Filename of response file, to be filled when denying the + * request + * @param response_uri_len Size of the 'response_uri' buffer. + * @param post_auto_wnd Set this to 0 to let the callback code handle window + * updates by calling 'httpd_post_data_recved' (to throttle rx speed) + * default is 1 (httpd handles window updates automatically) + * @return ERR_OK: Accept the POST request, data may be passed in + * another err_t: Deny the POST request, send back 'bad request'. + */ +err_t httpd_post_begin(void *connection, const char *uri, const char *http_request, + u16_t http_request_len, int content_len, char *response_uri, + u16_t response_uri_len, u8_t *post_auto_wnd); + +/** Called for each pbuf of data that has been received for a POST. + * ATTENTION: The application is responsible for freeing the pbufs passed in! + * + * @param connection Unique connection identifier. + * @param p Received data. + * @return ERR_OK: Data accepted. + * another err_t: Data denied, http_post_get_response_uri will be called. + */ +err_t httpd_post_receive_data(void *connection, struct pbuf *p); + +/** Called when all data is received or when the connection is closed. + * The application must return the filename/URI of a file to send in response + * to this POST request. If the response_uri buffer is untouched, a 404 + * response is returned. + * + * @param connection Unique connection identifier. + * @param response_uri Filename of response file, to be filled when denying the request + * @param response_uri_len Size of the 'response_uri' buffer. + */ +void httpd_post_finished(void *connection, char *response_uri, u16_t response_uri_len); + +#ifndef LWIP_HTTPD_POST_MANUAL_WND +#define LWIP_HTTPD_POST_MANUAL_WND 0 +#endif + +#if LWIP_HTTPD_POST_MANUAL_WND +void httpd_post_data_recved(void *connection, u16_t recved_len); +#endif /* LWIP_HTTPD_POST_MANUAL_WND */ + +#endif /* LWIP_HTTPD_SUPPORT_POST */ + +void httpd_init(void); + +#endif /* __HTTPD_H__ */ diff --git a/extras/httpd/httpd_structs.h b/extras/httpd/httpd_structs.h new file mode 100644 index 0000000..51dc807 --- /dev/null +++ b/extras/httpd/httpd_structs.h @@ -0,0 +1,125 @@ +#ifndef __HTTPD_STRUCTS_H__ +#define __HTTPD_STRUCTS_H__ + +#include "httpd.h" + +/** This string is passed in the HTTP header as "Server: " */ +#ifndef HTTPD_SERVER_AGENT +#define HTTPD_SERVER_AGENT "lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)" +#endif + +/** Set this to 1 if you want to include code that creates HTTP headers + * at runtime. Default is off: HTTP headers are then created statically + * by the makefsdata tool. Static headers mean smaller code size, but + * the (readonly) fsdata will grow a bit as every file includes the HTTP + * header. */ +#ifndef LWIP_HTTPD_DYNAMIC_HEADERS +#define LWIP_HTTPD_DYNAMIC_HEADERS 0 +#endif + + +#if LWIP_HTTPD_DYNAMIC_HEADERS +/** This struct is used for a list of HTTP header strings for various + * filename extensions. */ +typedef struct +{ + const char *extension; + int headerIndex; +} tHTTPHeader; + +/** A list of strings used in HTTP headers */ +static const char * const g_psHTTPHeaderStrings[] = +{ + "Content-type: text/html\r\n\r\n", + "Content-type: text/html\r\nExpires: Fri, 10 Apr 2008 14:00:00 GMT\r\nPragma: no-cache\r\n\r\n", + "Content-type: image/gif\r\n\r\n", + "Content-type: image/png\r\n\r\n", + "Content-type: image/jpeg\r\n\r\n", + "Content-type: image/bmp\r\n\r\n", + "Content-type: image/x-icon\r\n\r\n", + "Content-type: application/octet-stream\r\n\r\n", + "Content-type: application/x-javascript\r\n\r\n", + "Content-type: application/x-javascript\r\n\r\n", + "Content-type: text/css\r\n\r\n", + "Content-type: application/x-shockwave-flash\r\n\r\n", + "Content-type: text/xml\r\n\r\n", + "Content-type: text/plain\r\n\r\n", + "HTTP/1.0 200 OK\r\n", + "HTTP/1.0 404 File not found\r\n", + "HTTP/1.0 400 Bad Request\r\n", + "HTTP/1.0 501 Not Implemented\r\n", + "HTTP/1.1 200 OK\r\n", + "HTTP/1.1 404 File not found\r\n", + "HTTP/1.1 400 Bad Request\r\n", + "HTTP/1.1 501 Not Implemented\r\n", + "Content-Length: ", + "Connection: Close\r\n", + "Connection: keep-alive\r\n", + "Server: "HTTPD_SERVER_AGENT"\r\n", + "\r\n

404: The requested file cannot be found.

\r\n" +}; + +/* Indexes into the g_psHTTPHeaderStrings array */ +#define HTTP_HDR_HTML 0 /* text/html */ +#define HTTP_HDR_SSI 1 /* text/html Expires... */ +#define HTTP_HDR_GIF 2 /* image/gif */ +#define HTTP_HDR_PNG 3 /* image/png */ +#define HTTP_HDR_JPG 4 /* image/jpeg */ +#define HTTP_HDR_BMP 5 /* image/bmp */ +#define HTTP_HDR_ICO 6 /* image/x-icon */ +#define HTTP_HDR_APP 7 /* application/octet-stream */ +#define HTTP_HDR_JS 8 /* application/x-javascript */ +#define HTTP_HDR_RA 9 /* application/x-javascript */ +#define HTTP_HDR_CSS 10 /* text/css */ +#define HTTP_HDR_SWF 11 /* application/x-shockwave-flash */ +#define HTTP_HDR_XML 12 /* text/xml */ +#define HTTP_HDR_DEFAULT_TYPE 13 /* text/plain */ +#define HTTP_HDR_OK 14 /* 200 OK */ +#define HTTP_HDR_NOT_FOUND 15 /* 404 File not found */ +#define HTTP_HDR_BAD_REQUEST 16 /* 400 Bad request */ +#define HTTP_HDR_NOT_IMPL 17 /* 501 Not Implemented */ +#define HTTP_HDR_OK_11 18 /* 200 OK */ +#define HTTP_HDR_NOT_FOUND_11 19 /* 404 File not found */ +#define HTTP_HDR_BAD_REQUEST_11 20 /* 400 Bad request */ +#define HTTP_HDR_NOT_IMPL_11 21 /* 501 Not Implemented */ +#define HTTP_HDR_CONTENT_LENGTH 22 /* Content-Length: (HTTP 1.1)*/ +#define HTTP_HDR_CONN_CLOSE 23 /* Connection: Close (HTTP 1.1) */ +#define HTTP_HDR_CONN_KEEPALIVE 24 /* Connection: keep-alive (HTTP 1.1) */ +#define HTTP_HDR_SERVER 25 /* Server: HTTPD_SERVER_AGENT */ +#define DEFAULT_404_HTML 26 /* default 404 body */ + +/** A list of extension-to-HTTP header strings */ +const static tHTTPHeader g_psHTTPHeaders[] = +{ + { "html", HTTP_HDR_HTML}, + { "htm", HTTP_HDR_HTML}, + { "shtml",HTTP_HDR_SSI}, + { "shtm", HTTP_HDR_SSI}, + { "ssi", HTTP_HDR_SSI}, + { "gif", HTTP_HDR_GIF}, + { "png", HTTP_HDR_PNG}, + { "jpg", HTTP_HDR_JPG}, + { "bmp", HTTP_HDR_BMP}, + { "ico", HTTP_HDR_ICO}, + { "class",HTTP_HDR_APP}, + { "cls", HTTP_HDR_APP}, + { "js", HTTP_HDR_JS}, + { "ram", HTTP_HDR_RA}, + { "css", HTTP_HDR_CSS}, + { "swf", HTTP_HDR_SWF}, + { "xml", HTTP_HDR_XML}, + { "xsl", HTTP_HDR_XML} +}; + +#define NUM_HTTP_HEADERS (sizeof(g_psHTTPHeaders) / sizeof(tHTTPHeader)) + +#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ + +#if LWIP_HTTPD_SSI +static const char * const g_pcSSIExtensions[] = { + ".shtml", ".shtm", ".ssi", ".xml" +}; +#define NUM_SHTML_EXTENSIONS (sizeof(g_pcSSIExtensions) / sizeof(const char *)) +#endif /* LWIP_HTTPD_SSI */ + +#endif /* __HTTPD_STRUCTS_H__ */ diff --git a/extras/httpd/readme.txt b/extras/httpd/readme.txt new file mode 100644 index 0000000..8cf4ed7 --- /dev/null +++ b/extras/httpd/readme.txt @@ -0,0 +1,2 @@ +Note: this module expects your project to provide "fsdata.c" created with "makefsdata" utility. +See examples/http_server. From bce2139f06989984d6a6a295013d9cbbc64a4fb6 Mon Sep 17 00:00:00 2001 From: lujji Date: Thu, 2 Feb 2017 06:17:53 +0000 Subject: [PATCH 145/349] added WebSockets (#331) --- examples/http_server/Makefile | 7 +- examples/http_server/fsdata/fs/404.html | 3 +- examples/http_server/fsdata/fs/about.html | 7 +- examples/http_server/fsdata/fs/index.ssi | 3 +- .../http_server/fsdata/fs/js/smoothie_min.js | 15 + .../http_server/fsdata/fs/websockets.html | 130 + examples/http_server/fsdata/fsdata.c | 4459 ++++++++++++----- examples/http_server/http_server.c | 114 +- extras/httpd/fs.c | 28 +- extras/httpd/fs.h | 28 +- extras/httpd/fsdata.h | 28 +- extras/httpd/httpd.c | 231 +- extras/httpd/httpd.h | 29 +- extras/httpd/readme.txt | 2 + extras/httpd/strcasestr.c | 80 + extras/httpd/strcasestr.h | 9 + 16 files changed, 3810 insertions(+), 1363 deletions(-) create mode 100644 examples/http_server/fsdata/fs/js/smoothie_min.js create mode 100644 examples/http_server/fsdata/fs/websockets.html create mode 100644 extras/httpd/strcasestr.c create mode 100644 extras/httpd/strcasestr.h diff --git a/examples/http_server/Makefile b/examples/http_server/Makefile index 42fdd33..713083a 100644 --- a/examples/http_server/Makefile +++ b/examples/http_server/Makefile @@ -1,10 +1,11 @@ PROGRAM=http_server -#ESPBAUD=921600 - EXTRA_CFLAGS=-DLWIP_HTTPD_CGI=1 -DLWIP_HTTPD_SSI=1 -I./fsdata -EXTRA_COMPONENTS=extras/httpd +#Enable debugging +#EXTRA_CFLAGS+=-DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON + +EXTRA_COMPONENTS=extras/mbedtls extras/httpd include ../../common.mk diff --git a/examples/http_server/fsdata/fs/404.html b/examples/http_server/fsdata/fs/404.html index 8155203..0a03490 100644 --- a/examples/http_server/fsdata/fs/404.html +++ b/examples/http_server/fsdata/fs/404.html @@ -3,16 +3,15 @@ - - HTTP Server diff --git a/examples/http_server/fsdata/fs/about.html b/examples/http_server/fsdata/fs/about.html index 1692485..46eb050 100644 --- a/examples/http_server/fsdata/fs/about.html +++ b/examples/http_server/fsdata/fs/about.html @@ -3,24 +3,23 @@ - - HTTP Server

About

-

This server is built on httpd from LwIP.

+

This server is based on httpd from LwIP.

+

To enable debugging compile with flags -DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON.

For more info see HTTP Server documentation.

- diff --git a/examples/http_server/fsdata/fs/index.ssi b/examples/http_server/fsdata/fs/index.ssi index eb9db29..3a21206 100644 --- a/examples/http_server/fsdata/fs/index.ssi +++ b/examples/http_server/fsdata/fs/index.ssi @@ -3,16 +3,15 @@ - - HTTP Server diff --git a/examples/http_server/fsdata/fs/js/smoothie_min.js b/examples/http_server/fsdata/fs/js/smoothie_min.js new file mode 100644 index 0000000..87ce47d --- /dev/null +++ b/examples/http_server/fsdata/fs/js/smoothie_min.js @@ -0,0 +1,15 @@ +// MIT License: +// +// Copyright (c) 2010-2013, Joe Walnes +// 2013-2014, Drew Noakes +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +;(function(exports){var Util={extend:function(){arguments[0]=arguments[0]||{};for(var i=1;ithis.maxValue){this.maxValue=value}if(value=0&&this.data[i][0]>timestamp){i-=1}if(i===-1){this.data.splice(0,0,[timestamp,value])}else if(this.data.length>0&&this.data[i][0]===timestamp){if(sumRepeatedTimeStampValues){this.data[i][1]+=value;value=this.data[i][1]}else{this.data[i][1]=value}}else if(i=maxDataSetLength&&this.data[removeCount+1][0]0){timeSeries.resetBoundsTimerId=setInterval(function(){timeSeries.resetBounds()},timeSeries.options.resetBoundsInterval)}};SmoothieChart.prototype.removeTimeSeries=function(timeSeries){var numSeries=this.seriesSet.length;for(var i=0;i0.1||Math.abs(minValueDiff)>0.1;this.currentValueRange+=chartOptions.scaleSmoothing*valueRangeDiff;this.currentVisMinValue+=chartOptions.scaleSmoothing*minValueDiff}this.valueRange={min:chartMinValue,max:chartMaxValue}};SmoothieChart.prototype.render=function(canvas,time){var nowMillis=new Date().getTime();if(!this.isAnimatingScale){var maxIdleMillis=Math.min(1000/6,this.options.millisPerPixel);if(nowMillis-this.lastRenderTimeMillis0){context.beginPath();for(var t=time-(time%chartOptions.grid.millisPerLine);t>=oldestValidTime;t-=chartOptions.grid.millisPerLine){var gx=timeToXPixel(t);if(chartOptions.grid.sharpLines){gx-=0.5}context.moveTo(gx,0);context.lineTo(gx,dimensions.height)}context.stroke();context.closePath()}for(var v=1;v1){if(seriesOptions.fillStyle){context.lineTo(dimensions.width+seriesOptions.lineWidth+1,lastY);context.lineTo(dimensions.width+seriesOptions.lineWidth+1,dimensions.height+seriesOptions.lineWidth+1);context.lineTo(firstX,dimensions.height+seriesOptions.lineWidth);context.fillStyle=seriesOptions.fillStyle;context.fill()}if(seriesOptions.strokeStyle&&seriesOptions.strokeStyle!=='none'){context.stroke()}context.closePath()}context.restore()}if(!chartOptions.labels.disabled&&!isNaN(this.valueRange.min)&&!isNaN(this.valueRange.max)){var maxValueString=chartOptions.yMaxFormatter(this.valueRange.max,chartOptions.labels.precision),minValueString=chartOptions.yMinFormatter(this.valueRange.min,chartOptions.labels.precision),maxLabelPos=chartOptions.scrollBackwards?0:dimensions.width-context.measureText(maxValueString).width-2,minLabelPos=chartOptions.scrollBackwards?0:dimensions.width-context.measureText(minValueString).width-2;context.fillStyle=chartOptions.labels.fillStyle;context.fillText(maxValueString,maxLabelPos,chartOptions.labels.fontSize);context.fillText(minValueString,minLabelPos,dimensions.height-2)}if(chartOptions.timestampFormatter&&chartOptions.grid.millisPerLine>0){var textUntilX=chartOptions.scrollBackwards?context.measureText(minValueString).width:dimensions.width-context.measureText(minValueString).width+4;for(var t=time-(time%chartOptions.grid.millisPerLine);t>=oldestValidTime;t-=chartOptions.grid.millisPerLine){var gx=timeToXPixel(t);if((!chartOptions.scrollBackwards&&gxtextUntilX)){var tx=new Date(t),ts=chartOptions.timestampFormatter(tx),tsWidth=context.measureText(ts).width;textUntilX=chartOptions.scrollBackwards?gx+tsWidth+2:gx-tsWidth-2;context.fillStyle=chartOptions.labels.fillStyle;if(chartOptions.scrollBackwards){context.fillText(ts,gx,dimensions.height-2)}else{context.fillText(ts,gx-tsWidth,dimensions.height-2)}}}}context.restore();};SmoothieChart.timeFormatter=function(date){function pad2(number){return(number<10?'0':'')+number}return pad2(date.getHours())+':'+pad2(date.getMinutes())+':'+pad2(date.getSeconds())};exports.TimeSeries=TimeSeries;exports.SmoothieChart=SmoothieChart})(typeof exports==='undefined'?this:exports); \ No newline at end of file diff --git a/examples/http_server/fsdata/fs/websockets.html b/examples/http_server/fsdata/fs/websockets.html new file mode 100644 index 0000000..25b02c0 --- /dev/null +++ b/examples/http_server/fsdata/fs/websockets.html @@ -0,0 +1,130 @@ + + + + + + + + + HTTP Server + + + + +
+

WebSockets Demo

+
Loading..
+

This page is similar to the home page but uses WebSockets for real-time updates.

+
+ +

+

LED Control

+
+ + +
+
+ +

Server Status

+ + + + + + + + + + + + + +
Uptime:
Free heap:
LED state:
+ +

How it works

+

This demo uses 2 WebScokets. Status parameters are streamed by the server in JSON format every 2 seconds. + A websocket_task is created each time a specific URI is requested.

+

ADC values are being continuously polled by the client (i.e. your browser). + Each time a WebSocket frame is received on the server side, websocket_cb function is being called.

+
+ + + + + diff --git a/examples/http_server/fsdata/fsdata.c b/examples/http_server/fsdata/fsdata.c index 90d8c06..ac0b569 100644 --- a/examples/http_server/fsdata/fsdata.c +++ b/examples/http_server/fsdata/fsdata.c @@ -3,1315 +3,3180 @@ static const unsigned char data_index_ssi[] = { /* /index.ssi */ 0x2F, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x2E, 0x73, 0x73, 0x69, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, - 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, - 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, - 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, - 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, - 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, - 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, - 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, - 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, - 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, - 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, - 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, - 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, - 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, - 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, - 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, - 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, - 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, - 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, - 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, - 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, - 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, - 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, - 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, - 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, - 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, - 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, - 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, - 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, - 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, - 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, - 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, - 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3D, 0x22, 0x2F, 0x22, 0x3E, 0x48, 0x6F, 0x6D, 0x65, 0x3C, - 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, - 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, - 0x22, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, - 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x2F, 0x75, 0x6C, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, - 0x67, 0x72, 0x69, 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, - 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x45, - 0x53, 0x50, 0x38, 0x32, 0x36, 0x36, 0x20, 0x48, 0x54, 0x54, - 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3C, 0x2F, - 0x68, 0x31, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, - 0x61, 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, - 0x74, 0x2D, 0x64, 0x6F, 0x6E, 0x65, 0x22, 0x3E, 0x48, 0x54, - 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, - 0x69, 0x73, 0x20, 0x75, 0x70, 0x20, 0x61, 0x6E, 0x64, 0x20, - 0x72, 0x75, 0x6E, 0x6E, 0x69, 0x6E, 0x67, 0x2E, 0x3C, 0x2F, - 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, - 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x6E, 0x20, 0x65, 0x78, 0x61, 0x6D, 0x70, 0x6C, 0x65, - 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x47, - 0x49, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x53, 0x53, 0x49, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x2E, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, - 0x62, 0x65, 0x6C, 0x6F, 0x77, 0x20, 0x77, 0x69, 0x6C, 0x6C, - 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x20, 0x79, 0x6F, 0x75, - 0x20, 0x74, 0x6F, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x43, - 0x47, 0x49, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, - 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x75, 0x72, 0x6E, 0x0A, - 0x09, 0x09, 0x09, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6C, 0x75, - 0x65, 0x20, 0x4C, 0x45, 0x44, 0x20, 0x6F, 0x6E, 0x20, 0x6F, - 0x72, 0x20, 0x6F, 0x66, 0x66, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, - 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, - 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x63, 0x6F, 0x76, - 0x65, 0x72, 0x22, 0x20, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3D, - 0x22, 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x22, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x69, 0x6E, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x63, 0x68, - 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x22, 0x20, 0x6E, 0x61, - 0x6D, 0x65, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x20, 0x63, 0x6C, 0x61, - 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, 0x65, 0x63, - 0x6B, 0x62, 0x6F, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3D, 0x22, - 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x22, 0x20, 0x6F, 0x6E, 0x63, 0x6C, 0x69, 0x63, 0x6B, 0x3D, - 0x22, 0x67, 0x70, 0x69, 0x6F, 0x28, 0x29, 0x3B, 0x22, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x61, 0x62, - 0x65, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, - 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x2D, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x22, 0x20, 0x66, - 0x6F, 0x72, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x3C, 0x73, 0x70, 0x61, 0x6E, 0x20, 0x63, - 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, - 0x6E, 0x65, 0x72, 0x22, 0x3E, 0x3C, 0x2F, 0x73, 0x70, 0x61, - 0x6E, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, - 0x73, 0x70, 0x61, 0x6E, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, - 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x22, 0x3E, 0x3C, 0x2F, 0x73, 0x70, 0x61, 0x6E, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x6C, 0x61, 0x62, - 0x65, 0x6C, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, - 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, - 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, - 0x68, 0x31, 0x3E, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3C, 0x2F, 0x68, 0x31, - 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x61, 0x62, 0x6C, - 0x65, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x74, - 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, 0x61, 0x62, 0x6C, 0x65, - 0x2D, 0x73, 0x74, 0x72, 0x69, 0x70, 0x65, 0x64, 0x22, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, - 0x62, 0x3E, 0x55, 0x70, 0x74, 0x69, 0x6D, 0x65, 0x3A, 0x3C, - 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, - 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x21, - 0x2D, 0x2D, 0x23, 0x75, 0x70, 0x74, 0x69, 0x6D, 0x65, 0x2D, - 0x2D, 0x3E, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, - 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x46, 0x72, 0x65, - 0x65, 0x20, 0x68, 0x65, 0x61, 0x70, 0x3A, 0x3C, 0x2F, 0x62, - 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, - 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, - 0x23, 0x68, 0x65, 0x61, 0x70, 0x2D, 0x2D, 0x3E, 0x20, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, - 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, - 0x3E, 0x4C, 0x45, 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x20, - 0x69, 0x64, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, 0x23, 0x6C, - 0x65, 0x64, 0x2D, 0x2D, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x61, 0x62, 0x6C, - 0x65, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, - 0x3E, 0x48, 0x6F, 0x77, 0x20, 0x69, 0x74, 0x20, 0x77, 0x6F, - 0x72, 0x6B, 0x73, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, - 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x20, 0x45, 0x61, 0x63, 0x68, - 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x67, - 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, - 0x72, 0x6D, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x26, - 0x6C, 0x74, 0x3B, 0x21, 0x2D, 0x2D, 0x23, 0x6E, 0x61, 0x6D, - 0x65, 0x2D, 0x2D, 0x26, 0x67, 0x74, 0x3B, 0x3C, 0x2F, 0x63, - 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x69, 0x6E, 0x20, 0x61, 0x20, - 0x2E, 0x73, 0x68, 0x74, 0x6D, 0x6C, 0x2C, 0x20, 0x2E, 0x73, - 0x73, 0x69, 0x20, 0x6F, 0x72, 0x20, 0x2E, 0x73, 0x68, 0x74, - 0x6D, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x0A, 0x09, 0x09, 0x09, - 0x09, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x3C, 0x63, 0x6F, - 0x64, 0x65, 0x3E, 0x6E, 0x61, 0x6D, 0x65, 0x3C, 0x2F, 0x63, - 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, - 0x72, 0x73, 0x20, 0x61, 0x73, 0x20, 0x6F, 0x6E, 0x65, 0x20, - 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, - 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6C, 0x69, 0x65, 0x64, - 0x20, 0x74, 0x6F, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, - 0x68, 0x74, 0x74, 0x70, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x73, - 0x73, 0x69, 0x5F, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, - 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x69, 0x6E, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, - 0x3E, 0x70, 0x63, 0x43, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x53, - 0x53, 0x49, 0x54, 0x61, 0x67, 0x73, 0x3C, 0x2F, 0x63, 0x6F, - 0x64, 0x65, 0x3E, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x2C, - 0x0A, 0x09, 0x09, 0x09, 0x09, 0x61, 0x6E, 0x20, 0x69, 0x6E, - 0x73, 0x65, 0x72, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, - 0x67, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6E, - 0x64, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x6E, 0x20, 0x66, 0x69, - 0x6C, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x65, 0x6E, - 0x74, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x20, 0x74, 0x6F, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, - 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, - 0x70, 0x3E, 0x41, 0x20, 0x43, 0x47, 0x49, 0x20, 0x68, 0x61, - 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x20, 0x66, 0x75, 0x6E, 0x63, - 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x69, 0x73, 0x20, 0x63, 0x61, - 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x73, 0x6B, 0x65, 0x64, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x61, - 0x20, 0x66, 0x69, 0x6C, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x77, 0x68, 0x6F, 0x73, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, - 0x20, 0x77, 0x61, 0x73, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6F, 0x75, 0x73, 0x6C, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x61, 0x20, 0x43, 0x47, 0x49, 0x20, 0x66, 0x75, 0x6E, 0x63, - 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x75, 0x73, 0x69, 0x6E, 0x67, - 0x20, 0x61, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x6F, - 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x68, 0x74, 0x74, - 0x70, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x67, 0x69, 0x5F, - 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x3C, 0x2F, 0x63, - 0x6F, 0x64, 0x65, 0x3E, 0x2E, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, - 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x73, - 0x20, 0x79, 0x6F, 0x75, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x70, 0x72, 0x6F, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x61, - 0x6C, 0x6F, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x55, 0x52, 0x49, 0x2E, 0x3C, 0x2F, - 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, - 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, - 0x64, 0x6F, 0x77, 0x2E, 0x6F, 0x6E, 0x6C, 0x6F, 0x61, 0x64, - 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, - 0x6E, 0x20, 0x28, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, - 0x09, 0x76, 0x61, 0x72, 0x20, 0x6C, 0x73, 0x20, 0x3D, 0x20, - 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, - 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, - 0x79, 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x27, 0x29, 0x2E, 0x69, 0x6E, 0x6E, 0x65, - 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x3B, 0x0A, 0x09, 0x09, 0x09, - 0x09, 0x6C, 0x73, 0x20, 0x3D, 0x20, 0x6C, 0x73, 0x2E, 0x73, - 0x70, 0x6C, 0x69, 0x74, 0x28, 0x2F, 0x2D, 0x2D, 0x3E, 0x2F, - 0x29, 0x2E, 0x70, 0x6F, 0x70, 0x28, 0x29, 0x2E, 0x74, 0x72, - 0x69, 0x6D, 0x28, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, - 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, - 0x79, 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, - 0x65, 0x63, 0x6B, 0x65, 0x64, 0x20, 0x3D, 0x20, 0x28, 0x6C, - 0x73, 0x20, 0x3D, 0x3D, 0x20, 0x27, 0x4F, 0x6E, 0x27, 0x29, - 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x3B, 0x0A, 0x09, 0x09, - 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, - 0x67, 0x70, 0x69, 0x6F, 0x28, 0x29, 0x20, 0x7B, 0x0A, 0x09, - 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6F, 0x63, - 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, - 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, - 0x28, 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, 0x65, 0x63, 0x6B, - 0x65, 0x64, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, - 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x6C, 0x6F, 0x63, 0x61, - 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x68, 0x72, 0x65, 0x66, 0x20, - 0x3D, 0x20, 0x27, 0x67, 0x70, 0x69, 0x6F, 0x3F, 0x6F, 0x66, - 0x66, 0x3D, 0x32, 0x27, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, - 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x6C, 0x6F, 0x63, - 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x68, 0x72, 0x65, 0x66, - 0x20, 0x3D, 0x20, 0x27, 0x67, 0x70, 0x69, 0x6F, 0x3F, 0x6F, - 0x6E, 0x3D, 0x32, 0x27, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, - 0x3B, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, - 0x79, 0x3E, 0x0A, 0x3C, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, - 0x0A, }; + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, + 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, + 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, + 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, + 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, + 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, + 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x69, + 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2E, + 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6C, + 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, 0x73, + 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, 0x79, + 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, + 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, 0x74, + 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, 0x76, + 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, + 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, 0x09, + 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, + 0x2F, 0x22, 0x3E, 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, + 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, 0x6B, + 0x65, 0x74, 0x73, 0x22, 0x3E, 0x57, 0x65, 0x62, 0x53, 0x6F, + 0x63, 0x6B, 0x65, 0x74, 0x73, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, + 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, + 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, + 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, 0x62, + 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, + 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, 0x64, + 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x45, 0x53, 0x50, 0x38, 0x32, + 0x36, 0x36, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x6C, 0x65, 0x72, + 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x64, 0x6F, + 0x6E, 0x65, 0x22, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x75, + 0x70, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x72, 0x75, 0x6E, 0x6E, + 0x69, 0x6E, 0x67, 0x2E, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6E, 0x20, 0x65, + 0x78, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x48, 0x54, 0x54, + 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x43, 0x47, 0x49, 0x20, 0x61, 0x6E, + 0x64, 0x20, 0x53, 0x53, 0x49, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6F, 0x72, 0x74, 0x2E, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, 0x65, 0x6C, 0x6F, + 0x77, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x61, 0x6C, 0x6C, + 0x6F, 0x77, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x74, 0x6F, 0x20, + 0x74, 0x65, 0x73, 0x74, 0x20, 0x43, 0x47, 0x49, 0x20, 0x68, + 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x20, 0x61, 0x6E, 0x64, + 0x20, 0x74, 0x75, 0x72, 0x6E, 0x0A, 0x09, 0x09, 0x09, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x6C, 0x75, 0x65, 0x20, 0x4C, 0x45, + 0x44, 0x20, 0x6F, 0x6E, 0x20, 0x6F, 0x72, 0x20, 0x6F, 0x66, + 0x66, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, + 0x73, 0x3D, 0x22, 0x63, 0x6F, 0x76, 0x65, 0x72, 0x22, 0x20, + 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3D, 0x22, 0x63, 0x65, 0x6E, + 0x74, 0x65, 0x72, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x22, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, + 0x6F, 0x78, 0x22, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x22, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, + 0x22, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x2D, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x20, 0x6F, 0x6E, + 0x63, 0x6C, 0x69, 0x63, 0x6B, 0x3D, 0x22, 0x67, 0x70, 0x69, + 0x6F, 0x28, 0x29, 0x3B, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x3C, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x6C, 0x61, + 0x62, 0x65, 0x6C, 0x22, 0x20, 0x66, 0x6F, 0x72, 0x3D, 0x22, + 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, + 0x73, 0x70, 0x61, 0x6E, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x22, + 0x3E, 0x3C, 0x2F, 0x73, 0x70, 0x61, 0x6E, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x73, 0x70, 0x61, 0x6E, + 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x3C, 0x2F, + 0x73, 0x70, 0x61, 0x6E, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x2F, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x63, 0x6C, + 0x61, 0x73, 0x73, 0x3D, 0x22, 0x74, 0x61, 0x62, 0x6C, 0x65, + 0x20, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x2D, 0x73, 0x74, 0x72, + 0x69, 0x70, 0x65, 0x64, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x55, 0x70, + 0x74, 0x69, 0x6D, 0x65, 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, + 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, 0x23, 0x75, + 0x70, 0x74, 0x69, 0x6D, 0x65, 0x2D, 0x2D, 0x3E, 0x20, 0x73, + 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x3C, 0x2F, 0x74, 0x64, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, + 0x3C, 0x62, 0x3E, 0x46, 0x72, 0x65, 0x65, 0x20, 0x68, 0x65, + 0x61, 0x70, 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, + 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, + 0x64, 0x3E, 0x3C, 0x21, 0x2D, 0x2D, 0x23, 0x68, 0x65, 0x61, + 0x70, 0x2D, 0x2D, 0x3E, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x4C, 0x45, 0x44, + 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3A, 0x3C, 0x2F, 0x62, + 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x3C, 0x74, 0x64, 0x20, 0x69, 0x64, 0x3D, 0x22, + 0x6C, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3E, + 0x3C, 0x21, 0x2D, 0x2D, 0x23, 0x6C, 0x65, 0x64, 0x2D, 0x2D, + 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x3C, 0x2F, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3E, 0x0A, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x48, 0x6F, 0x77, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x6F, 0x72, 0x6B, 0x73, 0x3C, + 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, + 0x3E, 0x20, 0x45, 0x61, 0x63, 0x68, 0x20, 0x74, 0x69, 0x6D, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x73, + 0x20, 0x61, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6F, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x72, 0x6D, 0x20, 0x3C, + 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x26, 0x6C, 0x74, 0x3B, 0x21, + 0x2D, 0x2D, 0x23, 0x6E, 0x61, 0x6D, 0x65, 0x2D, 0x2D, 0x26, + 0x67, 0x74, 0x3B, 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, + 0x20, 0x69, 0x6E, 0x20, 0x61, 0x20, 0x2E, 0x73, 0x68, 0x74, + 0x6D, 0x6C, 0x2C, 0x20, 0x2E, 0x73, 0x73, 0x69, 0x20, 0x6F, + 0x72, 0x20, 0x2E, 0x73, 0x68, 0x74, 0x6D, 0x20, 0x66, 0x69, + 0x6C, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x6E, + 0x61, 0x6D, 0x65, 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, + 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x20, 0x61, + 0x73, 0x20, 0x6F, 0x6E, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6C, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, + 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x68, 0x74, 0x74, 0x70, + 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x73, 0x73, 0x69, 0x5F, 0x68, + 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x3C, 0x2F, 0x63, 0x6F, + 0x64, 0x65, 0x3E, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x3C, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x70, 0x63, 0x43, + 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x53, 0x53, 0x49, 0x54, 0x61, + 0x67, 0x73, 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x20, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x2C, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x61, 0x6E, 0x20, 0x69, 0x6E, 0x73, 0x65, 0x72, 0x74, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x65, 0x6E, 0x64, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x61, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, + 0x20, 0x69, 0x6E, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x61, + 0x6E, 0x64, 0x20, 0x73, 0x65, 0x6E, 0x74, 0x20, 0x62, 0x61, + 0x63, 0x6B, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x2E, 0x3C, 0x2F, 0x70, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x41, 0x20, + 0x43, 0x47, 0x49, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, + 0x72, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x65, 0x64, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x74, 0x69, 0x6D, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x6B, 0x65, 0x64, + 0x20, 0x66, 0x6F, 0x72, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6C, + 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x77, 0x68, 0x6F, 0x73, + 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x77, 0x61, 0x73, + 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6F, 0x75, 0x73, 0x6C, + 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x43, 0x47, + 0x49, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x20, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x20, 0x63, + 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x6F, 0x20, 0x3C, 0x63, 0x6F, + 0x64, 0x65, 0x3E, 0x68, 0x74, 0x74, 0x70, 0x5F, 0x73, 0x65, + 0x74, 0x5F, 0x63, 0x67, 0x69, 0x5F, 0x68, 0x61, 0x6E, 0x64, + 0x6C, 0x65, 0x72, 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, 0x3E, + 0x2E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, + 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x73, 0x20, 0x79, 0x6F, 0x75, + 0x20, 0x74, 0x6F, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6D, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x61, 0x6C, 0x6F, 0x6E, 0x67, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x55, 0x52, 0x49, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x0A, 0x09, + 0x09, 0x3C, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, + 0x6F, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x3D, 0x20, 0x66, + 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x28, 0x29, + 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, + 0x20, 0x6C, 0x73, 0x20, 0x3D, 0x20, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x27, 0x6C, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x27, + 0x29, 0x2E, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x48, 0x54, 0x4D, + 0x4C, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x6C, 0x73, 0x20, + 0x3D, 0x20, 0x6C, 0x73, 0x2E, 0x73, 0x70, 0x6C, 0x69, 0x74, + 0x28, 0x2F, 0x2D, 0x2D, 0x3E, 0x2F, 0x29, 0x2E, 0x70, 0x6F, + 0x70, 0x28, 0x29, 0x2E, 0x74, 0x72, 0x69, 0x6D, 0x28, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x65, + 0x64, 0x20, 0x3D, 0x20, 0x28, 0x6C, 0x73, 0x20, 0x3D, 0x3D, + 0x20, 0x27, 0x4F, 0x6E, 0x27, 0x29, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x7D, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, + 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x67, 0x70, 0x69, 0x6F, + 0x28, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, + 0x66, 0x20, 0x28, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, + 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, + 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, + 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x27, 0x29, + 0x2E, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x65, 0x64, 0x29, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, 0x64, 0x6F, + 0x77, 0x2E, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x2E, 0x68, 0x72, 0x65, 0x66, 0x20, 0x3D, 0x20, 0x27, 0x67, + 0x70, 0x69, 0x6F, 0x3F, 0x6F, 0x66, 0x66, 0x3D, 0x32, 0x27, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6C, 0x73, 0x65, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, 0x64, + 0x6F, 0x77, 0x2E, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x2E, 0x68, 0x72, 0x65, 0x66, 0x20, 0x3D, 0x20, 0x27, + 0x67, 0x70, 0x69, 0x6F, 0x3F, 0x6F, 0x6E, 0x3D, 0x32, 0x27, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x3B, 0x0A, 0x09, 0x09, + 0x3C, 0x2F, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, }; static const unsigned char data_404_html[] = { /* /404.html */ 0x2F, 0x34, 0x30, 0x34, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x34, - 0x30, 0x34, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x6F, - 0x74, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x0D, 0x0A, 0x6C, - 0x77, 0x49, 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, - 0x28, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, - 0x76, 0x61, 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, - 0x67, 0x6E, 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, - 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, - 0x70, 0x29, 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, - 0x74, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, - 0x78, 0x74, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, - 0x0A, 0x3C, 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, - 0x20, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, - 0x6D, 0x6C, 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, - 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, - 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, - 0x74, 0x66, 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x6D, 0x65, 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, - 0x22, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, - 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, - 0x62, 0x6C, 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, - 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, - 0x6C, 0x3D, 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, - 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, - 0x22, 0x74, 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, - 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, - 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, - 0x69, 0x6E, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, - 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, - 0x3D, 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, - 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, - 0x73, 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, - 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, - 0x72, 0x65, 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, - 0x66, 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, - 0x67, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, - 0x74, 0x6C, 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, - 0x6C, 0x65, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, - 0x64, 0x3E, 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, - 0x0A, 0x09, 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, - 0x73, 0x73, 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, - 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, - 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, - 0x22, 0x3E, 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, - 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, - 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, - 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, - 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, - 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, - 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, - 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, - 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x34, 0x30, 0x34, 0x20, - 0x2D, 0x20, 0x50, 0x61, 0x67, 0x65, 0x20, 0x6E, 0x6F, 0x74, - 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x3C, 0x2F, 0x68, 0x31, - 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, - 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x6C, 0x65, - 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x65, - 0x72, 0x72, 0x6F, 0x72, 0x22, 0x3E, 0x53, 0x6F, 0x72, 0x72, - 0x79, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, - 0x65, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, - 0x20, 0x77, 0x61, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x66, - 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2E, - 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x62, - 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, 0x2F, 0x68, 0x74, 0x6D, - 0x6C, 0x3E, 0x0A, 0x0A, }; + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x34, + 0x30, 0x34, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x6F, + 0x74, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x0D, 0x0A, 0x6C, + 0x77, 0x49, 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, + 0x28, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, + 0x76, 0x61, 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, + 0x67, 0x6E, 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, + 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, + 0x70, 0x29, 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, + 0x74, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, + 0x0A, 0x3C, 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, + 0x20, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, + 0x6D, 0x6C, 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, + 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, + 0x74, 0x66, 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6D, 0x65, 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, + 0x22, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, + 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, + 0x62, 0x6C, 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, + 0x3D, 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, + 0x74, 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, + 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, + 0x6E, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, + 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, + 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, + 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, + 0x65, 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, + 0x75, 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, + 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, + 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, + 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, + 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, + 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, 0x22, 0x3E, + 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, + 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, + 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, + 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x73, + 0x22, 0x3E, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, + 0x74, 0x73, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x61, 0x62, + 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, + 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, 0x3E, 0x0A, 0x0A, 0x09, + 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, + 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, 0x64, 0x20, 0x6D, 0x61, + 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, + 0x31, 0x3E, 0x34, 0x30, 0x34, 0x20, 0x2D, 0x20, 0x50, 0x61, + 0x67, 0x65, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x66, 0x6F, 0x75, + 0x6E, 0x64, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, + 0x73, 0x3D, 0x22, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, + 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x65, 0x72, 0x72, 0x6F, 0x72, + 0x22, 0x3E, 0x53, 0x6F, 0x72, 0x72, 0x79, 0x2C, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x79, 0x6F, + 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x61, 0x73, + 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, + 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2E, 0x3C, 0x2F, 0x64, 0x69, + 0x76, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, + 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, 0x79, 0x3E, + 0x0A, 0x3C, 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x0A, +}; + +static const unsigned char data_websockets_html[] = { + /* /websockets.html */ + 0x2F, 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x73, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, + 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, + 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, + 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, + 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, + 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, + 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x69, + 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2E, + 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6C, + 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, 0x73, + 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, 0x79, + 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, + 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, 0x74, + 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, 0x76, + 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, + 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, 0x09, + 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, 0x22, 0x3E, 0x48, 0x6F, + 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, + 0x61, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, 0x6B, + 0x65, 0x74, 0x73, 0x22, 0x3E, 0x57, 0x65, 0x62, 0x53, 0x6F, + 0x63, 0x6B, 0x65, 0x74, 0x73, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, + 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, + 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, + 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, 0x62, + 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, + 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, 0x64, + 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x57, 0x65, 0x62, 0x53, 0x6F, + 0x63, 0x6B, 0x65, 0x74, 0x73, 0x20, 0x44, 0x65, 0x6D, 0x6F, + 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5F, 0x62, 0x6F, 0x78, 0x22, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x6C, 0x65, + 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x69, + 0x6E, 0x66, 0x6F, 0x22, 0x3E, 0x4C, 0x6F, 0x61, 0x64, 0x69, + 0x6E, 0x67, 0x2E, 0x2E, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x69, 0x6D, 0x69, 0x6C, 0x61, 0x72, 0x20, 0x74, 0x6F, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x6F, 0x6D, 0x65, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x20, 0x62, 0x75, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x73, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, + 0x6B, 0x65, 0x74, 0x73, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x6C, 0x2D, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2E, 0x3C, 0x2F, 0x70, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x63, 0x6F, 0x76, + 0x65, 0x72, 0x22, 0x20, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3D, + 0x22, 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x22, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x63, 0x61, 0x6E, 0x76, 0x61, + 0x73, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x43, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x22, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3D, 0x22, 0x35, 0x31, 0x32, 0x22, + 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3D, 0x22, 0x31, + 0x30, 0x30, 0x22, 0x3E, 0x3C, 0x2F, 0x63, 0x61, 0x6E, 0x76, + 0x61, 0x73, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x70, + 0x2F, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, + 0x4C, 0x45, 0x44, 0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, + 0x6C, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, + 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x22, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, + 0x6F, 0x78, 0x22, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x22, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x2D, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, + 0x22, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x6C, 0x65, 0x64, 0x2D, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x20, 0x6F, 0x6E, + 0x63, 0x6C, 0x69, 0x63, 0x6B, 0x3D, 0x22, 0x67, 0x70, 0x69, + 0x6F, 0x28, 0x29, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x63, 0x6C, + 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x6C, 0x61, 0x62, + 0x65, 0x6C, 0x22, 0x20, 0x66, 0x6F, 0x72, 0x3D, 0x22, 0x6C, + 0x65, 0x64, 0x2D, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x73, + 0x70, 0x61, 0x6E, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, + 0x22, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x22, 0x3E, + 0x3C, 0x2F, 0x73, 0x70, 0x61, 0x6E, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x3C, 0x73, 0x70, 0x61, 0x6E, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x6F, 0x6E, 0x6F, + 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x3E, 0x3C, 0x2F, 0x73, + 0x70, 0x61, 0x6E, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x2F, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x20, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x63, 0x6C, 0x61, + 0x73, 0x73, 0x3D, 0x22, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, + 0x74, 0x61, 0x62, 0x6C, 0x65, 0x2D, 0x73, 0x74, 0x72, 0x69, + 0x70, 0x65, 0x64, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x55, 0x70, 0x74, + 0x69, 0x6D, 0x65, 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, 0x2F, + 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, + 0x74, 0x64, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x75, 0x70, 0x74, + 0x69, 0x6D, 0x65, 0x22, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, + 0x62, 0x3E, 0x46, 0x72, 0x65, 0x65, 0x20, 0x68, 0x65, 0x61, + 0x70, 0x3A, 0x3C, 0x2F, 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, + 0x20, 0x69, 0x64, 0x3D, 0x22, 0x68, 0x65, 0x61, 0x70, 0x22, + 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x2F, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x74, 0x72, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x3C, 0x74, 0x64, 0x3E, 0x3C, 0x62, 0x3E, 0x4C, 0x45, + 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3A, 0x3C, 0x2F, + 0x62, 0x3E, 0x3C, 0x2F, 0x74, 0x64, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x3C, 0x74, 0x64, 0x20, 0x69, 0x64, 0x3D, + 0x22, 0x6C, 0x65, 0x64, 0x22, 0x3E, 0x3C, 0x2F, 0x74, 0x64, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x72, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x2F, 0x74, 0x61, 0x62, + 0x6C, 0x65, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, + 0x31, 0x3E, 0x48, 0x6F, 0x77, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x6F, 0x72, 0x6B, 0x73, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x64, 0x65, 0x6D, 0x6F, 0x20, 0x75, 0x73, 0x65, 0x73, + 0x20, 0x32, 0x20, 0x57, 0x65, 0x62, 0x53, 0x63, 0x6F, 0x6B, + 0x65, 0x74, 0x73, 0x2E, 0x20, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6D, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x69, 0x6E, 0x20, 0x4A, 0x53, 0x4F, 0x4E, 0x20, 0x66, 0x6F, + 0x72, 0x6D, 0x61, 0x74, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x32, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, + 0x2E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x41, 0x20, 0x3C, 0x63, + 0x6F, 0x64, 0x65, 0x3E, 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, + 0x6B, 0x65, 0x74, 0x5F, 0x74, 0x61, 0x73, 0x6B, 0x3C, 0x2F, + 0x63, 0x6F, 0x64, 0x65, 0x3E, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x61, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x55, 0x52, + 0x49, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x41, 0x44, 0x43, 0x20, + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x62, 0x65, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x6E, + 0x74, 0x69, 0x6E, 0x75, 0x6F, 0x75, 0x73, 0x6C, 0x79, 0x20, + 0x70, 0x6F, 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, + 0x20, 0x28, 0x69, 0x2E, 0x65, 0x2E, 0x20, 0x79, 0x6F, 0x75, + 0x72, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x73, 0x65, 0x72, 0x29, + 0x2E, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x45, 0x61, 0x63, 0x68, + 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x61, 0x20, 0x57, 0x65, + 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x66, 0x72, + 0x61, 0x6D, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x73, 0x69, 0x64, 0x65, 0x2C, 0x20, 0x3C, 0x63, 0x6F, 0x64, + 0x65, 0x3E, 0x77, 0x65, 0x62, 0x73, 0x6F, 0x63, 0x6B, 0x65, + 0x74, 0x5F, 0x63, 0x62, 0x3C, 0x2F, 0x63, 0x6F, 0x64, 0x65, + 0x3E, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x20, 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6E, 0x67, 0x20, + 0x63, 0x61, 0x6C, 0x6C, 0x65, 0x64, 0x2E, 0x3C, 0x2F, 0x70, + 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x6A, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x22, 0x20, 0x73, 0x72, 0x63, 0x3D, 0x22, + 0x6A, 0x73, 0x2F, 0x73, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, + 0x65, 0x5F, 0x6D, 0x69, 0x6E, 0x2E, 0x6A, 0x73, 0x22, 0x3E, + 0x3C, 0x2F, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, + 0x0A, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, 0x77, 0x73, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x76, 0x61, 0x72, 0x20, 0x73, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x20, 0x3D, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x54, 0x69, + 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x28, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x77, 0x69, 0x6E, 0x64, 0x6F, + 0x77, 0x2E, 0x6F, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x3D, + 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, + 0x4F, 0x70, 0x65, 0x6E, 0x28, 0x29, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6F, 0x6C, + 0x6C, 0x69, 0x6E, 0x67, 0x28, 0x29, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x74, 0x4D, 0x73, + 0x67, 0x28, 0x63, 0x6C, 0x73, 0x2C, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x73, + 0x62, 0x6F, 0x78, 0x20, 0x3D, 0x20, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x27, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x62, 0x6F, + 0x78, 0x27, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x73, + 0x62, 0x6F, 0x78, 0x2E, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x4E, + 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x22, 0x61, 0x6C, 0x65, + 0x72, 0x74, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x22, + 0x20, 0x2B, 0x20, 0x63, 0x6C, 0x73, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x09, 0x73, 0x62, 0x6F, 0x78, 0x2E, 0x69, 0x6E, 0x6E, + 0x65, 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x20, 0x3D, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x63, + 0x6F, 0x6E, 0x73, 0x6F, 0x6C, 0x65, 0x2E, 0x6C, 0x6F, 0x67, + 0x28, 0x74, 0x65, 0x78, 0x74, 0x29, 0x3B, 0x0A, 0x09, 0x09, + 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x50, 0x6F, 0x6C, 0x6C, 0x69, 0x6E, 0x67, 0x28, 0x29, 0x20, + 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3D, 0x20, 0x6E, 0x65, + 0x77, 0x20, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x7B, 0x6D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, 0x78, 0x65, + 0x6C, 0x3A, 0x31, 0x31, 0x2C, 0x67, 0x72, 0x69, 0x64, 0x3A, + 0x7B, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, 0x65, + 0x3A, 0x27, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x27, + 0x2C, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, 0x79, + 0x6C, 0x65, 0x3A, 0x27, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x27, 0x2C, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x56, + 0x69, 0x73, 0x69, 0x62, 0x6C, 0x65, 0x3A, 0x66, 0x61, 0x6C, + 0x73, 0x65, 0x7D, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x73, 0x3A, 0x7B, 0x66, 0x69, + 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3A, 0x27, 0x23, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x27, 0x7D, 0x2C, 0x6D, + 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3A, 0x31, 0x30, + 0x32, 0x34, 0x2C, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x3A, 0x30, 0x7D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x61, 0x64, 0x64, + 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x28, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2C, 0x20, 0x7B, + 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x32, 0x2C, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, + 0x79, 0x6C, 0x65, 0x3A, 0x27, 0x23, 0x30, 0x33, 0x61, 0x39, + 0x66, 0x34, 0x27, 0x2C, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, + 0x79, 0x6C, 0x65, 0x3A, 0x27, 0x23, 0x66, 0x31, 0x66, 0x35, + 0x66, 0x61, 0x27, 0x7D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6D, 0x54, 0x6F, 0x28, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x63, 0x68, 0x61, 0x72, 0x74, 0x43, 0x61, 0x6E, 0x76, + 0x61, 0x73, 0x22, 0x29, 0x2C, 0x20, 0x35, 0x30, 0x30, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x74, 0x49, + 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x28, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x20, 0x7B, + 0x20, 0x77, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x27, + 0x41, 0x27, 0x29, 0x3B, 0x20, 0x7D, 0x2C, 0x20, 0x35, 0x30, + 0x30, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, + 0x09, 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x20, 0x6F, 0x6E, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x28, 0x65, 0x76, 0x74, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x09, + 0x09, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x3D, 0x20, 0x30, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, + 0x61, 0x72, 0x20, 0x64, 0x76, 0x20, 0x3D, 0x20, 0x6E, 0x65, + 0x77, 0x20, 0x44, 0x61, 0x74, 0x61, 0x56, 0x69, 0x65, 0x77, + 0x28, 0x65, 0x76, 0x74, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, + 0x76, 0x61, 0x6C, 0x20, 0x3D, 0x20, 0x64, 0x76, 0x2E, 0x67, + 0x65, 0x74, 0x55, 0x69, 0x6E, 0x74, 0x31, 0x36, 0x28, 0x30, + 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, + 0x28, 0x76, 0x61, 0x6C, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x78, + 0x42, 0x45, 0x45, 0x46, 0x20, 0x7C, 0x7C, 0x20, 0x76, 0x61, + 0x6C, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x78, 0x44, 0x45, 0x41, + 0x44, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6F, + 0x6E, 0x73, 0x6F, 0x6C, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x28, + 0x22, 0x4C, 0x45, 0x44, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x61, 0x70, + 0x70, 0x65, 0x6E, 0x64, 0x28, 0x6E, 0x65, 0x77, 0x20, 0x44, + 0x61, 0x74, 0x65, 0x28, 0x29, 0x2E, 0x67, 0x65, 0x74, 0x54, + 0x69, 0x6D, 0x65, 0x28, 0x29, 0x2C, 0x20, 0x76, 0x61, 0x6C, + 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, + 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, + 0x77, 0x73, 0x4F, 0x70, 0x65, 0x6E, 0x28, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x77, + 0x73, 0x20, 0x3D, 0x3D, 0x3D, 0x20, 0x75, 0x6E, 0x64, 0x65, + 0x66, 0x69, 0x6E, 0x65, 0x64, 0x20, 0x7C, 0x7C, 0x20, 0x77, + 0x73, 0x2E, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x29, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x74, 0x4D, 0x73, + 0x67, 0x28, 0x22, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x22, 0x2C, + 0x20, 0x22, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, + 0x74, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x2C, + 0x20, 0x72, 0x65, 0x74, 0x72, 0x79, 0x69, 0x6E, 0x67, 0x2E, + 0x2E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x73, 0x65, 0x74, 0x4D, 0x73, 0x67, 0x28, 0x22, 0x69, + 0x6E, 0x66, 0x6F, 0x22, 0x2C, 0x20, 0x22, 0x4F, 0x70, 0x65, + 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6F, + 0x63, 0x6B, 0x65, 0x74, 0x2E, 0x2E, 0x22, 0x29, 0x3B, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, 0x20, 0x3D, 0x20, + 0x6E, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, + 0x6B, 0x65, 0x74, 0x28, 0x22, 0x77, 0x73, 0x3A, 0x2F, 0x2F, + 0x22, 0x20, 0x2B, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, + 0x6F, 0x6E, 0x2E, 0x68, 0x6F, 0x73, 0x74, 0x29, 0x3B, 0x0A, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, 0x2E, 0x62, 0x69, + 0x6E, 0x61, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3D, + 0x20, 0x27, 0x61, 0x72, 0x72, 0x61, 0x79, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x27, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x73, 0x2E, 0x6F, 0x6E, 0x6F, 0x70, 0x65, 0x6E, + 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x28, 0x65, 0x76, 0x74, 0x29, 0x20, 0x7B, 0x20, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, 0x3D, 0x20, 0x30, + 0x3B, 0x20, 0x73, 0x65, 0x74, 0x4D, 0x73, 0x67, 0x28, 0x22, + 0x64, 0x6F, 0x6E, 0x65, 0x22, 0x2C, 0x20, 0x22, 0x57, 0x65, + 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x6F, 0x70, 0x65, 0x6E, 0x2E, 0x22, 0x29, 0x3B, 0x20, + 0x7D, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, + 0x2E, 0x6F, 0x6E, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x3D, + 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x65, 0x76, 0x74, 0x29, 0x20, 0x7B, 0x20, 0x73, 0x65, 0x74, + 0x4D, 0x73, 0x67, 0x28, 0x22, 0x65, 0x72, 0x72, 0x6F, 0x72, + 0x22, 0x2C, 0x20, 0x22, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, + 0x6B, 0x65, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x21, + 0x22, 0x29, 0x3B, 0x20, 0x7D, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x77, 0x73, 0x2E, 0x6F, 0x6E, 0x6D, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, + 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x65, 0x76, 0x74, 0x29, + 0x20, 0x7B, 0x20, 0x6F, 0x6E, 0x4D, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x28, 0x65, 0x76, 0x74, 0x29, 0x3B, 0x20, 0x7D, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, 0x4F, + 0x70, 0x65, 0x6E, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x28, + 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, 0x3D, 0x20, 0x30, 0x3B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, + 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, + 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x73, 0x4F, 0x70, 0x65, 0x6E, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x28, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x72, 0x69, 0x20, 0x3D, 0x20, 0x22, 0x2F, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6D, 0x22, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x76, + 0x61, 0x72, 0x20, 0x77, 0x73, 0x20, 0x3D, 0x20, 0x6E, 0x65, + 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, + 0x74, 0x28, 0x22, 0x77, 0x73, 0x3A, 0x2F, 0x2F, 0x22, 0x20, + 0x2B, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x2E, 0x68, 0x6F, 0x73, 0x74, 0x20, 0x2B, 0x20, 0x75, 0x72, + 0x69, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, + 0x2E, 0x6F, 0x6E, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x28, 0x65, 0x76, 0x74, 0x29, 0x20, 0x7B, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x6F, 0x6C, + 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x28, 0x65, 0x76, 0x74, 0x2E, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x76, 0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x20, 0x3D, 0x20, 0x4A, 0x53, 0x4F, 0x4E, 0x2E, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x28, 0x65, 0x76, 0x74, 0x2E, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x6F, 0x6C, 0x65, 0x2E, 0x6C, + 0x6F, 0x67, 0x28, 0x73, 0x74, 0x61, 0x74, 0x73, 0x29, 0x3B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x27, 0x75, 0x70, 0x74, 0x69, 0x6D, 0x65, 0x27, 0x29, 0x2E, + 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x20, + 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2E, 0x75, 0x70, + 0x74, 0x69, 0x6D, 0x65, 0x20, 0x2B, 0x20, 0x27, 0x20, 0x73, + 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x27, 0x3B, 0x0A, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, + 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, 0x65, 0x6D, + 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x68, + 0x65, 0x61, 0x70, 0x27, 0x29, 0x2E, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x20, 0x3D, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x2E, 0x68, 0x65, 0x61, 0x70, 0x20, 0x2B, + 0x20, 0x27, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x3B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x6F, 0x63, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, 0x74, 0x45, 0x6C, + 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x27, 0x6C, 0x65, 0x64, 0x27, 0x29, 0x2E, 0x69, 0x6E, 0x6E, + 0x65, 0x72, 0x48, 0x54, 0x4D, 0x4C, 0x20, 0x3D, 0x20, 0x28, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x2E, 0x6C, 0x65, 0x64, 0x20, + 0x3D, 0x3D, 0x20, 0x31, 0x29, 0x20, 0x3F, 0x20, 0x27, 0x4F, + 0x6E, 0x27, 0x20, 0x3A, 0x20, 0x27, 0x4F, 0x66, 0x66, 0x27, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x7D, 0x3B, 0x0A, 0x09, + 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, + 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x73, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, + 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, + 0x77, 0x73, 0x2E, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x20, 0x3D, 0x3D, 0x20, 0x33, 0x20, 0x7C, + 0x7C, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2B, + 0x2B, 0x20, 0x3E, 0x20, 0x35, 0x29, 0x0A, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x77, 0x73, 0x4F, 0x70, 0x65, 0x6E, 0x28, 0x29, + 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6C, 0x73, 0x65, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x77, 0x73, 0x2E, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, + 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x73, 0x2E, 0x73, 0x65, 0x6E, 0x64, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, + 0x09, 0x09, 0x09, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x20, 0x67, 0x70, 0x69, 0x6F, 0x28, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x64, + 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x2E, 0x67, 0x65, + 0x74, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x6C, 0x65, 0x64, 0x2D, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x27, 0x29, 0x2E, 0x63, 0x68, 0x65, + 0x63, 0x6B, 0x65, 0x64, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x27, + 0x45, 0x27, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x65, + 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, + 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x27, 0x44, 0x27, + 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, + 0x3C, 0x2F, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, }; static const unsigned char data_about_html[] = { /* /about.html */ 0x2F, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x2E, 0x68, 0x74, 0x6D, 0x6C, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, - 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, - 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, - 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, - 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, - 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, - 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, - 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, - 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, - 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, - 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, - 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, - 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, - 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, - 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x0A, 0x09, 0x09, - 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, - 0x22, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, - 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, - 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, - 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, - 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, - 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, - 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, - 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, - 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, - 0x6C, 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, - 0x74, 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, - 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, - 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, - 0x65, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, - 0x3E, 0x0A, 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, - 0x0A, 0x09, 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, - 0x09, 0x3C, 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, - 0x3D, 0x22, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, - 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, 0x22, 0x3E, - 0x48, 0x6F, 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, - 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, - 0x3E, 0x3C, 0x61, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, - 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3D, 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, - 0x22, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, - 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, - 0x2F, 0x75, 0x6C, 0x3E, 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, - 0x67, 0x72, 0x69, 0x64, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, - 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x41, - 0x62, 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, - 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x62, 0x75, 0x69, 0x6C, 0x74, 0x20, 0x6F, 0x6E, 0x20, - 0x68, 0x74, 0x74, 0x70, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, - 0x20, 0x4C, 0x77, 0x49, 0x50, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, - 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x70, 0x3E, 0x46, 0x6F, 0x72, - 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x69, 0x6E, 0x66, 0x6F, - 0x20, 0x73, 0x65, 0x65, 0x20, 0x3C, 0x61, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, - 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x6C, 0x77, 0x69, 0x70, - 0x2F, 0x32, 0x5F, 0x30, 0x5F, 0x30, 0x2F, 0x67, 0x72, 0x6F, - 0x75, 0x70, 0x5F, 0x5F, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2E, - 0x68, 0x74, 0x6D, 0x6C, 0x22, 0x3E, 0x48, 0x54, 0x54, 0x50, - 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x6F, - 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, - 0x6E, 0x3C, 0x2F, 0x61, 0x3E, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, - 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, - 0x09, 0x3C, 0x2F, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, - 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x0A, }; + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x68, 0x74, 0x6D, 0x6C, 0x0D, 0x0A, 0x0D, 0x0A, 0x3C, + 0x21, 0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, + 0x74, 0x6D, 0x6C, 0x3E, 0x0A, 0x3C, 0x68, 0x74, 0x6D, 0x6C, + 0x3E, 0x0A, 0x09, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, + 0x09, 0x09, 0x3C, 0x6D, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3D, 0x22, 0x75, 0x74, 0x66, + 0x2D, 0x38, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6D, 0x65, + 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x76, + 0x69, 0x65, 0x77, 0x70, 0x6F, 0x72, 0x74, 0x22, 0x20, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3D, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x20, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, + 0x65, 0x3D, 0x6E, 0x6F, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, + 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x69, + 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2E, + 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x6C, + 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, 0x3D, 0x22, 0x73, + 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2F, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, 0x79, + 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x3C, 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x72, 0x65, 0x6C, + 0x3D, 0x22, 0x73, 0x68, 0x6F, 0x72, 0x74, 0x63, 0x75, 0x74, + 0x20, 0x69, 0x63, 0x6F, 0x6E, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3D, 0x22, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, 0x76, + 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0x22, 0x3E, + 0x0A, 0x09, 0x09, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, + 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x3C, 0x2F, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, 0x0A, + 0x09, 0x3C, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x3E, 0x0A, 0x09, + 0x3C, 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x09, 0x09, 0x3C, + 0x75, 0x6C, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, + 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x22, 0x3E, 0x0A, 0x09, + 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3D, 0x22, 0x2F, 0x22, 0x3E, 0x48, 0x6F, + 0x6D, 0x65, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, + 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x22, 0x77, 0x65, + 0x62, 0x73, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x73, 0x22, 0x3E, + 0x57, 0x65, 0x62, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x73, + 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, 0x69, 0x3E, 0x0A, + 0x09, 0x09, 0x09, 0x3C, 0x6C, 0x69, 0x3E, 0x3C, 0x61, 0x20, + 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, + 0x22, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x22, 0x3E, 0x41, 0x62, + 0x6F, 0x75, 0x74, 0x3C, 0x2F, 0x61, 0x3E, 0x3C, 0x2F, 0x6C, + 0x69, 0x3E, 0x0A, 0x09, 0x09, 0x3C, 0x2F, 0x75, 0x6C, 0x3E, + 0x0A, 0x0A, 0x09, 0x09, 0x3C, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x67, 0x72, 0x69, 0x64, + 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x22, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x68, 0x31, 0x3E, 0x41, 0x62, 0x6F, 0x75, 0x74, + 0x3C, 0x2F, 0x68, 0x31, 0x3E, 0x0A, 0x09, 0x09, 0x09, 0x3C, + 0x70, 0x3E, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x68, 0x74, 0x74, 0x70, + 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x4C, 0x77, 0x49, + 0x50, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, 0x09, + 0x3C, 0x70, 0x3E, 0x54, 0x6F, 0x20, 0x65, 0x6E, 0x61, 0x62, + 0x6C, 0x65, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x69, + 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x6C, 0x61, 0x67, + 0x73, 0x20, 0x2D, 0x44, 0x4C, 0x57, 0x49, 0x50, 0x5F, 0x44, + 0x45, 0x42, 0x55, 0x47, 0x3D, 0x31, 0x20, 0x2D, 0x44, 0x48, + 0x54, 0x54, 0x50, 0x44, 0x5F, 0x44, 0x45, 0x42, 0x55, 0x47, + 0x3D, 0x4C, 0x57, 0x49, 0x50, 0x5F, 0x44, 0x42, 0x47, 0x5F, + 0x4F, 0x4E, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, + 0x09, 0x3C, 0x70, 0x3E, 0x46, 0x6F, 0x72, 0x20, 0x6D, 0x6F, + 0x72, 0x65, 0x20, 0x69, 0x6E, 0x66, 0x6F, 0x20, 0x73, 0x65, + 0x65, 0x20, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, + 0x77, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, 0x75, 0x2E, 0x6F, + 0x72, 0x67, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x2F, 0x32, 0x5F, + 0x30, 0x5F, 0x30, 0x2F, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x5F, + 0x5F, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2E, 0x68, 0x74, 0x6D, + 0x6C, 0x22, 0x3E, 0x48, 0x54, 0x54, 0x50, 0x20, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x6F, 0x63, 0x75, 0x6D, + 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3C, 0x2F, + 0x61, 0x3E, 0x2E, 0x3C, 0x2F, 0x70, 0x3E, 0x0A, 0x09, 0x09, + 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x0A, 0x09, 0x3C, 0x2F, + 0x62, 0x6F, 0x64, 0x79, 0x3E, 0x0A, 0x3C, 0x2F, 0x68, 0x74, + 0x6D, 0x6C, 0x3E, 0x0A, }; + +static const unsigned char data_js_smoothie_min_js[] = { + /* /js/smoothie_min.js */ + 0x2F, 0x6A, 0x73, 0x2F, 0x73, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x5F, 0x6D, 0x69, 0x6E, 0x2E, 0x6A, 0x73, 0, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x61, 0x70, 0x70, 0x6C, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, + 0x6A, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x2F, 0x2F, 0x20, 0x4D, + 0x49, 0x54, 0x20, 0x4C, 0x69, 0x63, 0x65, 0x6E, 0x73, 0x65, + 0x3A, 0x0A, 0x2F, 0x2F, 0x0A, 0x2F, 0x2F, 0x20, 0x43, 0x6F, + 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, + 0x29, 0x20, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x32, 0x30, 0x31, + 0x33, 0x2C, 0x20, 0x4A, 0x6F, 0x65, 0x20, 0x57, 0x61, 0x6C, + 0x6E, 0x65, 0x73, 0x0A, 0x2F, 0x2F, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x31, 0x33, 0x2D, 0x32, 0x30, 0x31, 0x34, + 0x2C, 0x20, 0x44, 0x72, 0x65, 0x77, 0x20, 0x4E, 0x6F, 0x61, + 0x6B, 0x65, 0x73, 0x0A, 0x2F, 0x2F, 0x0A, 0x2F, 0x2F, 0x20, + 0x50, 0x65, 0x72, 0x6D, 0x69, 0x73, 0x73, 0x69, 0x6F, 0x6E, + 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, + 0x20, 0x67, 0x72, 0x61, 0x6E, 0x74, 0x65, 0x64, 0x2C, 0x20, + 0x66, 0x72, 0x65, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x2C, 0x20, 0x74, 0x6F, 0x20, 0x61, + 0x6E, 0x79, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6F, 0x6E, 0x20, + 0x6F, 0x62, 0x74, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, + 0x61, 0x20, 0x63, 0x6F, 0x70, 0x79, 0x0A, 0x2F, 0x2F, 0x20, + 0x6F, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6F, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6E, 0x64, + 0x20, 0x61, 0x73, 0x73, 0x6F, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x66, 0x69, 0x6C, 0x65, + 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x22, 0x53, 0x6F, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x22, 0x29, 0x2C, 0x20, + 0x74, 0x6F, 0x20, 0x64, 0x65, 0x61, 0x6C, 0x0A, 0x2F, 0x2F, + 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x6F, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6F, 0x75, 0x74, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x69, 0x6E, + 0x63, 0x6C, 0x75, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6F, 0x75, 0x74, 0x20, 0x6C, 0x69, 0x6D, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x0A, 0x2F, 0x2F, + 0x20, 0x74, 0x6F, 0x20, 0x75, 0x73, 0x65, 0x2C, 0x20, 0x63, + 0x6F, 0x70, 0x79, 0x2C, 0x20, 0x6D, 0x6F, 0x64, 0x69, 0x66, + 0x79, 0x2C, 0x20, 0x6D, 0x65, 0x72, 0x67, 0x65, 0x2C, 0x20, + 0x70, 0x75, 0x62, 0x6C, 0x69, 0x73, 0x68, 0x2C, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2C, + 0x20, 0x73, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x65, 0x6E, 0x73, + 0x65, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x2F, 0x6F, 0x72, 0x20, + 0x73, 0x65, 0x6C, 0x6C, 0x0A, 0x2F, 0x2F, 0x20, 0x63, 0x6F, + 0x70, 0x69, 0x65, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x70, + 0x65, 0x72, 0x6D, 0x69, 0x74, 0x20, 0x70, 0x65, 0x72, 0x73, + 0x6F, 0x6E, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x77, 0x68, 0x6F, + 0x6D, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x6F, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x20, 0x69, 0x73, 0x0A, 0x2F, 0x2F, + 0x20, 0x66, 0x75, 0x72, 0x6E, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x20, 0x74, 0x6F, 0x20, 0x64, 0x6F, 0x20, 0x73, 0x6F, 0x2C, + 0x20, 0x73, 0x75, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x20, 0x74, + 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, + 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x6E, 0x64, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3A, 0x0A, 0x2F, 0x2F, + 0x0A, 0x2F, 0x2F, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x62, + 0x6F, 0x76, 0x65, 0x20, 0x63, 0x6F, 0x70, 0x79, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x6E, 0x6F, 0x74, 0x69, 0x63, 0x65, + 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x6D, 0x69, 0x73, 0x73, 0x69, 0x6F, 0x6E, + 0x20, 0x6E, 0x6F, 0x74, 0x69, 0x63, 0x65, 0x20, 0x73, 0x68, + 0x61, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6E, 0x63, + 0x6C, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x0A, 0x2F, + 0x2F, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x63, 0x6F, 0x70, 0x69, + 0x65, 0x73, 0x20, 0x6F, 0x72, 0x20, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x61, 0x6E, 0x74, 0x69, 0x61, 0x6C, 0x20, 0x70, 0x6F, + 0x72, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x20, 0x6F, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x2E, 0x0A, 0x3B, 0x28, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x65, 0x78, 0x70, 0x6F, 0x72, + 0x74, 0x73, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x55, 0x74, + 0x69, 0x6C, 0x3D, 0x7B, 0x65, 0x78, 0x74, 0x65, 0x6E, 0x64, + 0x3A, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x29, 0x7B, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, + 0x73, 0x5B, 0x30, 0x5D, 0x3D, 0x61, 0x72, 0x67, 0x75, 0x6D, + 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, 0x7C, 0x7C, 0x7B, + 0x7D, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3D, 0x31, 0x3B, 0x69, 0x3C, 0x61, 0x72, 0x67, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x2E, 0x6C, 0x65, 0x6E, 0x67, + 0x74, 0x68, 0x3B, 0x69, 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x66, + 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6B, 0x65, 0x79, + 0x20, 0x69, 0x6E, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, + 0x6E, 0x74, 0x73, 0x5B, 0x69, 0x5D, 0x29, 0x7B, 0x69, 0x66, + 0x28, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x73, + 0x5B, 0x69, 0x5D, 0x2E, 0x68, 0x61, 0x73, 0x4F, 0x77, 0x6E, + 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6B, + 0x65, 0x79, 0x29, 0x29, 0x7B, 0x69, 0x66, 0x28, 0x74, 0x79, + 0x70, 0x65, 0x6F, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6D, + 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x69, 0x5D, 0x5B, 0x6B, 0x65, + 0x79, 0x5D, 0x29, 0x3D, 0x3D, 0x3D, 0x27, 0x6F, 0x62, 0x6A, + 0x65, 0x63, 0x74, 0x27, 0x29, 0x7B, 0x69, 0x66, 0x28, 0x61, + 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x69, + 0x5D, 0x5B, 0x6B, 0x65, 0x79, 0x5D, 0x69, 0x6E, 0x73, 0x74, + 0x61, 0x6E, 0x63, 0x65, 0x6F, 0x66, 0x20, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x29, 0x7B, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, + 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, 0x5B, 0x6B, 0x65, 0x79, + 0x5D, 0x3D, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, + 0x73, 0x5B, 0x69, 0x5D, 0x5B, 0x6B, 0x65, 0x79, 0x5D, 0x7D, + 0x65, 0x6C, 0x73, 0x65, 0x7B, 0x61, 0x72, 0x67, 0x75, 0x6D, + 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, 0x5B, 0x6B, 0x65, + 0x79, 0x5D, 0x3D, 0x55, 0x74, 0x69, 0x6C, 0x2E, 0x65, 0x78, + 0x74, 0x65, 0x6E, 0x64, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6D, + 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, 0x5B, 0x6B, 0x65, + 0x79, 0x5D, 0x2C, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, + 0x74, 0x73, 0x5B, 0x69, 0x5D, 0x5B, 0x6B, 0x65, 0x79, 0x5D, + 0x29, 0x7D, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x7B, 0x61, 0x72, + 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, + 0x5B, 0x6B, 0x65, 0x79, 0x5D, 0x3D, 0x61, 0x72, 0x67, 0x75, + 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x5B, 0x69, 0x5D, 0x5B, 0x6B, + 0x65, 0x79, 0x5D, 0x7D, 0x7D, 0x7D, 0x7D, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6E, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, + 0x6E, 0x74, 0x73, 0x5B, 0x30, 0x5D, 0x7D, 0x7D, 0x3B, 0x66, + 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x54, 0x69, + 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x28, 0x6F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x29, 0x7B, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x3D, 0x55, 0x74, 0x69, 0x6C, 0x2E, 0x65, 0x78, 0x74, 0x65, + 0x6E, 0x64, 0x28, 0x7B, 0x7D, 0x2C, 0x54, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6C, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2C, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x29, + 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x6C, 0x65, 0x61, + 0x72, 0x28, 0x29, 0x7D, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2E, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6C, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3D, + 0x7B, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, + 0x64, 0x73, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, + 0x3A, 0x33, 0x30, 0x30, 0x30, 0x2C, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x3A, 0x74, 0x72, + 0x75, 0x65, 0x7D, 0x3B, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, + 0x74, 0x79, 0x70, 0x65, 0x2E, 0x63, 0x6C, 0x65, 0x61, 0x72, + 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, + 0x61, 0x3D, 0x5B, 0x5D, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x4E, + 0x75, 0x6D, 0x62, 0x65, 0x72, 0x2E, 0x4E, 0x61, 0x4E, 0x3B, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x3D, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, + 0x2E, 0x4E, 0x61, 0x4E, 0x3B, 0x7D, 0x3B, 0x54, 0x69, 0x6D, + 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x70, 0x72, + 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x3D, + 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, + 0x7B, 0x69, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, + 0x61, 0x74, 0x61, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, + 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x61, 0x78, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x5B, 0x31, + 0x5D, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x5B, 0x31, + 0x5D, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3D, 0x31, 0x3B, 0x69, 0x3C, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x6C, 0x65, 0x6E, 0x67, + 0x74, 0x68, 0x3B, 0x69, 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x76, + 0x61, 0x72, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, + 0x5D, 0x5B, 0x31, 0x5D, 0x3B, 0x69, 0x66, 0x28, 0x76, 0x61, + 0x6C, 0x75, 0x65, 0x3E, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, + 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x7B, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, + 0x75, 0x65, 0x3D, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x7D, 0x69, + 0x66, 0x28, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3C, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x76, 0x61, 0x6C, + 0x75, 0x65, 0x7D, 0x7D, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x7B, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6D, 0x61, 0x78, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x3D, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, + 0x2E, 0x4E, 0x61, 0x4E, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x4E, + 0x75, 0x6D, 0x62, 0x65, 0x72, 0x2E, 0x4E, 0x61, 0x4E, 0x7D, + 0x7D, 0x3B, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, + 0x70, 0x65, 0x2E, 0x61, 0x70, 0x70, 0x65, 0x6E, 0x64, 0x3D, + 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x74, + 0x69, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x2C, 0x76, + 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x73, 0x75, 0x6D, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6D, 0x65, + 0x53, 0x74, 0x61, 0x6D, 0x70, 0x56, 0x61, 0x6C, 0x75, 0x65, + 0x73, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x6C, + 0x65, 0x6E, 0x67, 0x74, 0x68, 0x2D, 0x31, 0x3B, 0x77, 0x68, + 0x69, 0x6C, 0x65, 0x28, 0x69, 0x3E, 0x3D, 0x30, 0x26, 0x26, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, + 0x69, 0x5D, 0x5B, 0x30, 0x5D, 0x3E, 0x74, 0x69, 0x6D, 0x65, + 0x73, 0x74, 0x61, 0x6D, 0x70, 0x29, 0x7B, 0x69, 0x2D, 0x3D, + 0x31, 0x7D, 0x69, 0x66, 0x28, 0x69, 0x3D, 0x3D, 0x3D, 0x2D, + 0x31, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, + 0x74, 0x61, 0x2E, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x28, + 0x30, 0x2C, 0x30, 0x2C, 0x5B, 0x74, 0x69, 0x6D, 0x65, 0x73, + 0x74, 0x61, 0x6D, 0x70, 0x2C, 0x76, 0x61, 0x6C, 0x75, 0x65, + 0x5D, 0x29, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x20, 0x69, 0x66, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, + 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x3E, 0x30, 0x26, + 0x26, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, + 0x5B, 0x69, 0x5D, 0x5B, 0x30, 0x5D, 0x3D, 0x3D, 0x3D, 0x74, + 0x69, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x29, 0x7B, + 0x69, 0x66, 0x28, 0x73, 0x75, 0x6D, 0x52, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x74, + 0x61, 0x6D, 0x70, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x73, 0x29, + 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, + 0x5B, 0x69, 0x5D, 0x5B, 0x31, 0x5D, 0x2B, 0x3D, 0x76, 0x61, + 0x6C, 0x75, 0x65, 0x3B, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, + 0x69, 0x5D, 0x5B, 0x31, 0x5D, 0x7D, 0x65, 0x6C, 0x73, 0x65, + 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, + 0x5B, 0x69, 0x5D, 0x5B, 0x31, 0x5D, 0x3D, 0x76, 0x61, 0x6C, + 0x75, 0x65, 0x7D, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x28, 0x69, 0x3C, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, + 0x61, 0x74, 0x61, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, + 0x2D, 0x31, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, + 0x61, 0x74, 0x61, 0x2E, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, + 0x28, 0x69, 0x2B, 0x31, 0x2C, 0x30, 0x2C, 0x5B, 0x74, 0x69, + 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x2C, 0x76, 0x61, + 0x6C, 0x75, 0x65, 0x5D, 0x29, 0x7D, 0x65, 0x6C, 0x73, 0x65, + 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, + 0x2E, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5B, 0x74, 0x69, 0x6D, + 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x2C, 0x76, 0x61, 0x6C, + 0x75, 0x65, 0x5D, 0x29, 0x7D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x69, + 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x3F, + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3A, 0x4D, 0x61, 0x74, 0x68, + 0x2E, 0x6D, 0x61, 0x78, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x76, + 0x61, 0x6C, 0x75, 0x65, 0x29, 0x3B, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, + 0x3F, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3A, 0x4D, 0x61, 0x74, + 0x68, 0x2E, 0x6D, 0x69, 0x6E, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2C, + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x7D, 0x3B, 0x54, 0x69, + 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x70, + 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x64, + 0x72, 0x6F, 0x70, 0x4F, 0x6C, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x6F, 0x6C, 0x64, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6C, 0x69, + 0x64, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x6D, 0x61, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4C, 0x65, 0x6E, 0x67, + 0x74, 0x68, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, + 0x6D, 0x6F, 0x76, 0x65, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x3D, + 0x30, 0x3B, 0x77, 0x68, 0x69, 0x6C, 0x65, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x6C, 0x65, + 0x6E, 0x67, 0x74, 0x68, 0x2D, 0x72, 0x65, 0x6D, 0x6F, 0x76, + 0x65, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x3E, 0x3D, 0x6D, 0x61, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4C, 0x65, + 0x6E, 0x67, 0x74, 0x68, 0x26, 0x26, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x72, 0x65, 0x6D, 0x6F, + 0x76, 0x65, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x2B, 0x31, 0x5D, + 0x5B, 0x30, 0x5D, 0x3C, 0x6F, 0x6C, 0x64, 0x65, 0x73, 0x74, + 0x56, 0x61, 0x6C, 0x69, 0x64, 0x54, 0x69, 0x6D, 0x65, 0x29, + 0x7B, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x43, 0x6F, 0x75, + 0x6E, 0x74, 0x2B, 0x3D, 0x31, 0x7D, 0x69, 0x66, 0x28, 0x72, + 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x43, 0x6F, 0x75, 0x6E, 0x74, + 0x21, 0x3D, 0x3D, 0x30, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x73, 0x70, 0x6C, 0x69, + 0x63, 0x65, 0x28, 0x30, 0x2C, 0x72, 0x65, 0x6D, 0x6F, 0x76, + 0x65, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x29, 0x7D, 0x7D, 0x3B, + 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, + 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x28, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x3D, 0x55, 0x74, 0x69, 0x6C, 0x2E, + 0x65, 0x78, 0x74, 0x65, 0x6E, 0x64, 0x28, 0x7B, 0x7D, 0x2C, + 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x2E, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6C, + 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x2C, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x29, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x3D, 0x5B, 0x5D, + 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6E, 0x74, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, + 0x6E, 0x67, 0x65, 0x3D, 0x31, 0x3B, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x56, 0x69, + 0x73, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x30, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6C, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6D, + 0x65, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x3D, 0x30, 0x7D, + 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x2E, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6C, + 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x3D, 0x7B, 0x6D, 0x69, 0x6C, 0x6C, 0x69, + 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x3A, + 0x32, 0x30, 0x2C, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x44, + 0x70, 0x69, 0x53, 0x63, 0x61, 0x6C, 0x69, 0x6E, 0x67, 0x3A, + 0x74, 0x72, 0x75, 0x65, 0x2C, 0x79, 0x4D, 0x69, 0x6E, 0x46, + 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x3A, 0x66, + 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x6D, 0x69, + 0x6E, 0x2C, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6F, + 0x6E, 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6C, 0x6F, 0x61, 0x74, + 0x28, 0x6D, 0x69, 0x6E, 0x29, 0x2E, 0x74, 0x6F, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x28, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6F, 0x6E, 0x29, 0x7D, 0x2C, 0x79, 0x4D, 0x61, 0x78, + 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x3A, + 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x6D, + 0x61, 0x78, 0x2C, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6F, 0x6E, 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, + 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6C, 0x6F, 0x61, + 0x74, 0x28, 0x6D, 0x61, 0x78, 0x29, 0x2E, 0x74, 0x6F, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x28, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6F, 0x6E, 0x29, 0x7D, 0x2C, 0x6D, 0x61, 0x78, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x63, 0x61, 0x6C, 0x65, + 0x3A, 0x31, 0x2C, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x53, 0x63, 0x61, 0x6C, 0x65, 0x3A, 0x31, 0x2C, 0x69, + 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x69, + 0x6F, 0x6E, 0x3A, 0x27, 0x62, 0x65, 0x7A, 0x69, 0x65, 0x72, + 0x27, 0x2C, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x53, 0x6D, 0x6F, + 0x6F, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x3A, 0x30, 0x2E, 0x31, + 0x32, 0x35, 0x2C, 0x6D, 0x61, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x74, 0x4C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x3A, + 0x32, 0x2C, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, 0x61, + 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x73, 0x3A, 0x66, 0x61, + 0x6C, 0x73, 0x65, 0x2C, 0x67, 0x72, 0x69, 0x64, 0x3A, 0x7B, + 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3A, + 0x27, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x27, 0x2C, + 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, 0x79, 0x6C, + 0x65, 0x3A, 0x27, 0x23, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, + 0x27, 0x2C, 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x3A, 0x31, 0x2C, 0x73, 0x68, 0x61, 0x72, 0x70, 0x4C, + 0x69, 0x6E, 0x65, 0x73, 0x3A, 0x66, 0x61, 0x6C, 0x73, 0x65, + 0x2C, 0x6D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, + 0x4C, 0x69, 0x6E, 0x65, 0x3A, 0x31, 0x30, 0x30, 0x30, 0x2C, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3A, 0x32, 0x2C, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, + 0x6C, 0x65, 0x3A, 0x74, 0x72, 0x75, 0x65, 0x7D, 0x2C, 0x6C, + 0x61, 0x62, 0x65, 0x6C, 0x73, 0x3A, 0x7B, 0x66, 0x69, 0x6C, + 0x6C, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3A, 0x27, 0x23, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x27, 0x2C, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6C, 0x65, 0x64, 0x3A, 0x66, 0x61, 0x6C, 0x73, + 0x65, 0x2C, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, + 0x3A, 0x31, 0x30, 0x2C, 0x66, 0x6F, 0x6E, 0x74, 0x46, 0x61, + 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x6D, 0x6F, 0x6E, 0x6F, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x27, 0x2C, 0x70, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x3A, 0x32, 0x7D, 0x2C, + 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, + 0x4C, 0x69, 0x6E, 0x65, 0x73, 0x3A, 0x5B, 0x5D, 0x7D, 0x3B, + 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x2E, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, + 0x65, 0x43, 0x6F, 0x6D, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, + 0x6C, 0x69, 0x74, 0x79, 0x3D, 0x28, 0x66, 0x75, 0x6E, 0x63, + 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x7B, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6E, + 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, + 0x6D, 0x65, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x28, 0x63, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, 0x6B, + 0x2C, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x29, 0x7B, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x46, 0x72, 0x61, 0x6D, 0x65, 0x3D, 0x77, 0x69, 0x6E, 0x64, + 0x6F, 0x77, 0x2E, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, + 0x72, 0x61, 0x6D, 0x65, 0x7C, 0x7C, 0x77, 0x69, 0x6E, 0x64, + 0x6F, 0x77, 0x2E, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6E, 0x69, 0x6D, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, + 0x7C, 0x7C, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x6D, + 0x6F, 0x7A, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, + 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, + 0x61, 0x6D, 0x65, 0x7C, 0x7C, 0x77, 0x69, 0x6E, 0x64, 0x6F, + 0x77, 0x2E, 0x6F, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, + 0x72, 0x61, 0x6D, 0x65, 0x7C, 0x7C, 0x77, 0x69, 0x6E, 0x64, + 0x6F, 0x77, 0x2E, 0x6D, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x7C, 0x7C, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x63, 0x61, 0x6C, + 0x6C, 0x62, 0x61, 0x63, 0x6B, 0x29, 0x7B, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6E, 0x20, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, + 0x2E, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, + 0x74, 0x28, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x28, 0x29, 0x7B, 0x63, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, + 0x6B, 0x28, 0x6E, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, + 0x28, 0x29, 0x2E, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6D, 0x65, + 0x28, 0x29, 0x29, 0x7D, 0x2C, 0x31, 0x36, 0x29, 0x7D, 0x3B, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, + 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x2E, 0x63, + 0x61, 0x6C, 0x6C, 0x28, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, + 0x2C, 0x63, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, 0x6B, 0x2C, + 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x29, 0x7D, 0x2C, + 0x63, 0x61, 0x6E, 0x63, 0x65, 0x6C, 0x41, 0x6E, 0x69, 0x6D, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, + 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, + 0x69, 0x64, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x63, 0x61, + 0x6E, 0x63, 0x65, 0x6C, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, + 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x3D, 0x77, + 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, 0x63, 0x61, 0x6E, 0x63, + 0x65, 0x6C, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x7C, 0x7C, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x69, 0x64, 0x29, + 0x7B, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6D, 0x65, + 0x6F, 0x75, 0x74, 0x28, 0x69, 0x64, 0x29, 0x7D, 0x3B, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x63, 0x61, 0x6E, 0x63, + 0x65, 0x6C, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x2E, 0x63, 0x61, 0x6C, + 0x6C, 0x28, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2C, 0x69, + 0x64, 0x29, 0x7D, 0x3B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, + 0x7B, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6E, + 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, + 0x6D, 0x65, 0x3A, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, + 0x72, 0x61, 0x6D, 0x65, 0x2C, 0x63, 0x61, 0x6E, 0x63, 0x65, + 0x6C, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x46, 0x72, 0x61, 0x6D, 0x65, 0x3A, 0x63, 0x61, 0x6E, 0x63, + 0x65, 0x6C, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x46, 0x72, 0x61, 0x6D, 0x65, 0x7D, 0x7D, 0x29, 0x28, + 0x29, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6C, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x73, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3D, 0x7B, + 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x31, 0x2C, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, + 0x79, 0x6C, 0x65, 0x3A, 0x27, 0x23, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x27, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, 0x74, + 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x70, + 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x61, + 0x64, 0x64, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x2C, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x7B, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x3A, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2C, 0x6F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x3A, 0x55, 0x74, 0x69, 0x6C, 0x2E, 0x65, 0x78, + 0x74, 0x65, 0x6E, 0x64, 0x28, 0x7B, 0x7D, 0x2C, 0x53, 0x6D, + 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x2E, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, + 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2C, 0x6F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x29, 0x7D, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x74, + 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, + 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x26, + 0x26, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, + 0x73, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x3E, + 0x30, 0x29, 0x7B, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x2E, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, + 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x54, 0x69, 0x6D, 0x65, 0x72, + 0x49, 0x64, 0x3D, 0x73, 0x65, 0x74, 0x49, 0x6E, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6C, 0x28, 0x66, 0x75, 0x6E, 0x63, 0x74, + 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x7B, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x72, 0x65, 0x73, + 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x28, 0x29, + 0x7D, 0x2C, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, + 0x64, 0x73, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, + 0x29, 0x7D, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, + 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x70, 0x72, + 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x72, 0x65, + 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, + 0x69, 0x6F, 0x6E, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, + 0x6E, 0x75, 0x6D, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3D, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x53, 0x65, 0x74, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, + 0x68, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3D, 0x30, 0x3B, 0x69, 0x3C, 0x6E, 0x75, 0x6D, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x3B, 0x69, 0x2B, 0x3D, 0x31, + 0x29, 0x7B, 0x69, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x5B, + 0x69, 0x5D, 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x3D, 0x3D, 0x3D, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x29, 0x7B, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, + 0x65, 0x74, 0x2E, 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x28, + 0x69, 0x2C, 0x31, 0x29, 0x3B, 0x62, 0x72, 0x65, 0x61, 0x6B, + 0x7D, 0x7D, 0x69, 0x66, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x42, 0x6F, 0x75, 0x6E, 0x64, 0x73, 0x54, 0x69, 0x6D, + 0x65, 0x72, 0x49, 0x64, 0x29, 0x7B, 0x63, 0x6C, 0x65, 0x61, + 0x72, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6C, 0x28, + 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x2E, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x6F, 0x75, 0x6E, + 0x64, 0x73, 0x54, 0x69, 0x6D, 0x65, 0x72, 0x49, 0x64, 0x29, + 0x7D, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x70, 0x72, 0x6F, + 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x67, 0x65, 0x74, + 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x74, 0x69, 0x6D, + 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x29, 0x7B, 0x76, + 0x61, 0x72, 0x20, 0x6E, 0x75, 0x6D, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x3D, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, 0x6C, 0x65, + 0x6E, 0x67, 0x74, 0x68, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x3D, 0x30, 0x3B, 0x69, 0x3C, 0x6E, + 0x75, 0x6D, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3B, 0x69, + 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x69, 0x66, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, + 0x65, 0x74, 0x5B, 0x69, 0x5D, 0x2E, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3D, 0x3D, 0x3D, 0x74, + 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x29, + 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, + 0x65, 0x74, 0x5B, 0x69, 0x5D, 0x2E, 0x6F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x7D, 0x7D, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, + 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, + 0x2E, 0x62, 0x72, 0x69, 0x6E, 0x67, 0x54, 0x6F, 0x46, 0x72, + 0x6F, 0x6E, 0x74, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, + 0x6F, 0x6E, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x6E, + 0x75, 0x6D, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x53, 0x65, 0x74, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, + 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x3D, 0x30, 0x3B, 0x69, 0x3C, 0x6E, 0x75, 0x6D, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x3B, 0x69, 0x2B, 0x3D, 0x31, 0x29, + 0x7B, 0x69, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x5B, 0x69, + 0x5D, 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x3D, 0x3D, 0x3D, 0x74, 0x69, 0x6D, 0x65, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x29, 0x7B, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x65, 0x74, 0x3D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, + 0x73, 0x70, 0x6C, 0x69, 0x63, 0x65, 0x28, 0x69, 0x2C, 0x31, + 0x29, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x73, 0x65, 0x74, 0x5B, 0x30, 0x5D, 0x29, 0x3B, + 0x62, 0x72, 0x65, 0x61, 0x6B, 0x7D, 0x7D, 0x7D, 0x3B, 0x53, + 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, + 0x70, 0x65, 0x2E, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x54, + 0x6F, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x28, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2C, 0x64, 0x65, + 0x6C, 0x61, 0x79, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x29, + 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x61, 0x6E, 0x76, + 0x61, 0x73, 0x3D, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x3B, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x64, 0x65, 0x6C, 0x61, 0x79, + 0x3D, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x4D, 0x69, 0x6C, 0x6C, + 0x69, 0x73, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x28, 0x29, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, + 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, + 0x2E, 0x72, 0x65, 0x73, 0x69, 0x7A, 0x65, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x7B, 0x69, + 0x66, 0x28, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x65, 0x6E, 0x61, 0x62, + 0x6C, 0x65, 0x44, 0x70, 0x69, 0x53, 0x63, 0x61, 0x6C, 0x69, + 0x6E, 0x67, 0x7C, 0x7C, 0x21, 0x77, 0x69, 0x6E, 0x64, 0x6F, + 0x77, 0x7C, 0x7C, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x69, 0x78, 0x65, + 0x6C, 0x52, 0x61, 0x74, 0x69, 0x6F, 0x3D, 0x3D, 0x3D, 0x31, + 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x7D, 0x76, + 0x61, 0x72, 0x20, 0x64, 0x70, 0x72, 0x3D, 0x77, 0x69, 0x6E, + 0x64, 0x6F, 0x77, 0x2E, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x69, 0x78, 0x65, 0x6C, 0x52, 0x61, 0x74, 0x69, 0x6F, + 0x3B, 0x76, 0x61, 0x72, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3D, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6E, 0x74, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x61, 0x6E, 0x76, 0x61, + 0x73, 0x2E, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x27, 0x29, 0x29, 0x3B, 0x76, 0x61, 0x72, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3D, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x49, 0x6E, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x29, 0x29, + 0x3B, 0x69, 0x66, 0x28, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x7C, 0x7C, 0x28, 0x4D, 0x61, 0x74, 0x68, + 0x2E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2E, 0x6F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x2A, 0x64, 0x70, 0x72, 0x29, + 0x21, 0x3D, 0x3D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x29, + 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x72, 0x69, 0x67, + 0x69, 0x6E, 0x61, 0x6C, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3D, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3B, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x73, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2C, 0x28, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, + 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2A, 0x64, 0x70, 0x72, + 0x29, 0x29, 0x2E, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x28, 0x29, 0x29, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x73, 0x74, 0x79, + 0x6C, 0x65, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x2B, 0x27, 0x70, 0x78, 0x27, 0x3B, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x61, 0x6E, 0x76, 0x61, + 0x73, 0x2E, 0x67, 0x65, 0x74, 0x43, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x28, 0x27, 0x32, 0x64, 0x27, 0x29, 0x2E, 0x73, + 0x63, 0x61, 0x6C, 0x65, 0x28, 0x64, 0x70, 0x72, 0x2C, 0x64, + 0x70, 0x72, 0x29, 0x7D, 0x69, 0x66, 0x28, 0x21, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x6F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, + 0x6C, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7C, 0x7C, 0x28, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x72, 0x69, 0x67, + 0x69, 0x6E, 0x61, 0x6C, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x2A, 0x64, 0x70, 0x72, 0x29, 0x21, 0x3D, 0x3D, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x7B, 0x74, 0x68, 0x69, + 0x73, 0x2E, 0x6F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, + 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x73, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x2C, 0x28, 0x4D, + 0x61, 0x74, 0x68, 0x2E, 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x28, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2A, 0x64, 0x70, 0x72, + 0x29, 0x29, 0x2E, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x28, 0x29, 0x29, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x73, 0x74, 0x79, + 0x6C, 0x65, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2B, 0x27, 0x70, 0x78, + 0x27, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x61, 0x6E, + 0x76, 0x61, 0x73, 0x2E, 0x67, 0x65, 0x74, 0x43, 0x6F, 0x6E, + 0x74, 0x65, 0x78, 0x74, 0x28, 0x27, 0x32, 0x64, 0x27, 0x29, + 0x2E, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x28, 0x64, 0x70, 0x72, + 0x2C, 0x64, 0x70, 0x72, 0x29, 0x7D, 0x7D, 0x3B, 0x53, 0x6D, + 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, + 0x65, 0x2E, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x7B, 0x69, + 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x66, 0x72, 0x61, + 0x6D, 0x65, 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, + 0x7D, 0x76, 0x61, 0x72, 0x20, 0x61, 0x6E, 0x69, 0x6D, 0x61, + 0x74, 0x65, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x28, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x66, + 0x72, 0x61, 0x6D, 0x65, 0x3D, 0x53, 0x6D, 0x6F, 0x6F, 0x74, + 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x41, + 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x65, 0x43, 0x6F, 0x6D, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x2E, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6E, 0x69, + 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, 0x61, 0x6D, + 0x65, 0x28, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x28, 0x29, 0x7B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x72, 0x65, + 0x6E, 0x64, 0x65, 0x72, 0x28, 0x29, 0x3B, 0x61, 0x6E, 0x69, + 0x6D, 0x61, 0x74, 0x65, 0x28, 0x29, 0x7D, 0x2E, 0x62, 0x69, + 0x6E, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x7D, + 0x2E, 0x62, 0x69, 0x6E, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x3B, 0x61, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x65, 0x28, + 0x29, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, 0x70, 0x72, 0x6F, + 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, 0x73, 0x74, 0x6F, + 0x70, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x28, 0x29, 0x7B, 0x69, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x29, 0x7B, 0x53, 0x6D, + 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x2E, 0x41, 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x65, 0x43, + 0x6F, 0x6D, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6C, 0x69, + 0x74, 0x79, 0x2E, 0x63, 0x61, 0x6E, 0x63, 0x65, 0x6C, 0x41, + 0x6E, 0x69, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x46, 0x72, + 0x61, 0x6D, 0x65, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x66, + 0x72, 0x61, 0x6D, 0x65, 0x29, 0x3B, 0x64, 0x65, 0x6C, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x66, 0x72, + 0x61, 0x6D, 0x65, 0x7D, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, 0x6F, + 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x2E, + 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x2E, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x3D, 0x66, 0x75, 0x6E, + 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x29, 0x7B, 0x76, 0x61, + 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x3D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2C, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x3D, 0x4E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x2E, 0x4E, + 0x61, 0x4E, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x4E, 0x75, 0x6D, + 0x62, 0x65, 0x72, 0x2E, 0x4E, 0x61, 0x4E, 0x3B, 0x66, 0x6F, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x64, 0x3D, 0x30, 0x3B, + 0x64, 0x3C, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, 0x6C, 0x65, 0x6E, + 0x67, 0x74, 0x68, 0x3B, 0x64, 0x2B, 0x3D, 0x31, 0x29, 0x7B, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x3D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x5B, + 0x64, 0x5D, 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x3B, 0x69, 0x66, 0x28, 0x21, 0x69, 0x73, + 0x4E, 0x61, 0x4E, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, 0x61, 0x78, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x29, 0x29, 0x7B, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x21, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, + 0x29, 0x3F, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x6D, 0x61, 0x78, + 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x74, 0x69, 0x6D, 0x65, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, 0x61, 0x78, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x29, 0x3A, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, 0x61, 0x78, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x7D, 0x69, 0x66, 0x28, 0x21, + 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x29, 0x7B, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x3D, 0x21, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, + 0x75, 0x65, 0x29, 0x3F, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x6D, + 0x69, 0x6E, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x74, 0x69, 0x6D, + 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x3A, 0x74, 0x69, + 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x6D, + 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x7D, 0x7D, 0x69, + 0x66, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x61, 0x78, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x21, 0x3D, 0x6E, 0x75, 0x6C, 0x6C, 0x29, + 0x7B, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x61, + 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x7D, 0x65, 0x6C, 0x73, + 0x65, 0x7B, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2A, 0x3D, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x63, + 0x61, 0x6C, 0x65, 0x7D, 0x69, 0x66, 0x28, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x21, 0x3D, + 0x6E, 0x75, 0x6C, 0x6C, 0x29, 0x7B, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x7B, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, + 0x2D, 0x3D, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x61, 0x62, 0x73, + 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x2A, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x63, 0x61, 0x6C, + 0x65, 0x2D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x7D, 0x69, 0x66, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x79, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x46, + 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x29, 0x7B, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x61, 0x6E, 0x67, 0x65, 0x3D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x79, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x46, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x7B, 0x6D, 0x69, + 0x6E, 0x3A, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x6D, 0x61, 0x78, 0x3A, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x7D, 0x29, 0x3B, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, + 0x72, 0x61, 0x6E, 0x67, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x3B, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x3D, 0x72, 0x61, 0x6E, 0x67, 0x65, 0x2E, + 0x6D, 0x61, 0x78, 0x7D, 0x69, 0x66, 0x28, 0x21, 0x69, 0x73, + 0x4E, 0x61, 0x4E, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, + 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x26, 0x26, + 0x21, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, + 0x29, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, + 0x6E, 0x67, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, + 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2D, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x3B, 0x76, 0x61, 0x72, 0x20, 0x76, 0x61, 0x6C, 0x75, + 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x44, 0x69, 0x66, 0x66, + 0x3D, 0x28, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x2D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, + 0x74, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x29, 0x3B, 0x76, 0x61, 0x72, 0x20, 0x6D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x44, 0x69, 0x66, 0x66, 0x3D, + 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, 0x6E, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x2D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x56, 0x69, 0x73, + 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x3B, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x69, 0x73, 0x41, 0x6E, 0x69, + 0x6D, 0x61, 0x74, 0x69, 0x6E, 0x67, 0x53, 0x63, 0x61, 0x6C, + 0x65, 0x3D, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x61, 0x62, 0x73, + 0x28, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x44, 0x69, 0x66, 0x66, 0x29, 0x3E, 0x30, 0x2E, 0x31, + 0x7C, 0x7C, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x61, 0x62, 0x73, + 0x28, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x44, + 0x69, 0x66, 0x66, 0x29, 0x3E, 0x30, 0x2E, 0x31, 0x3B, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, + 0x74, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x2B, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x61, 0x6C, + 0x65, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x6E, 0x67, + 0x2A, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x44, 0x69, 0x66, 0x66, 0x3B, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x56, 0x69, + 0x73, 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2B, + 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x53, + 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x2A, 0x6D, + 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x44, 0x69, 0x66, + 0x66, 0x7D, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x76, 0x61, 0x6C, + 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x3D, 0x7B, 0x6D, + 0x69, 0x6E, 0x3A, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x69, + 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x2C, 0x6D, 0x61, 0x78, + 0x3A, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4D, 0x61, 0x78, 0x56, + 0x61, 0x6C, 0x75, 0x65, 0x7D, 0x7D, 0x3B, 0x53, 0x6D, 0x6F, + 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x2E, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, + 0x2E, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x63, 0x61, 0x6E, + 0x76, 0x61, 0x73, 0x2C, 0x74, 0x69, 0x6D, 0x65, 0x29, 0x7B, + 0x76, 0x61, 0x72, 0x20, 0x6E, 0x6F, 0x77, 0x4D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x3D, 0x6E, 0x65, 0x77, 0x20, 0x44, 0x61, + 0x74, 0x65, 0x28, 0x29, 0x2E, 0x67, 0x65, 0x74, 0x54, 0x69, + 0x6D, 0x65, 0x28, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x21, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x69, 0x73, 0x41, 0x6E, 0x69, 0x6D, + 0x61, 0x74, 0x69, 0x6E, 0x67, 0x53, 0x63, 0x61, 0x6C, 0x65, + 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x6D, 0x61, 0x78, 0x49, + 0x64, 0x6C, 0x65, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x3D, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x6D, 0x69, 0x6E, 0x28, 0x31, + 0x30, 0x30, 0x30, 0x2F, 0x36, 0x2C, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, + 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, + 0x78, 0x65, 0x6C, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x6E, 0x6F, + 0x77, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x2D, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x6C, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6E, + 0x64, 0x65, 0x72, 0x54, 0x69, 0x6D, 0x65, 0x4D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x3C, 0x6D, 0x61, 0x78, 0x49, 0x64, 0x6C, + 0x65, 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x29, 0x7B, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6E, 0x7D, 0x7D, 0x74, 0x68, 0x69, + 0x73, 0x2E, 0x72, 0x65, 0x73, 0x69, 0x7A, 0x65, 0x28, 0x29, + 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6C, 0x61, 0x73, 0x74, + 0x52, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6D, 0x65, + 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x3D, 0x6E, 0x6F, 0x77, + 0x4D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x3B, 0x63, 0x61, 0x6E, + 0x76, 0x61, 0x73, 0x3D, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, + 0x7C, 0x7C, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x63, 0x61, 0x6E, + 0x76, 0x61, 0x73, 0x3B, 0x74, 0x69, 0x6D, 0x65, 0x3D, 0x74, + 0x69, 0x6D, 0x65, 0x7C, 0x7C, 0x6E, 0x6F, 0x77, 0x4D, 0x69, + 0x6C, 0x6C, 0x69, 0x73, 0x2D, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x64, 0x65, 0x6C, 0x61, 0x79, 0x7C, 0x7C, 0x30, 0x29, + 0x3B, 0x74, 0x69, 0x6D, 0x65, 0x2D, 0x3D, 0x74, 0x69, 0x6D, + 0x65, 0x25, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x69, 0x6C, 0x6C, 0x69, + 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x3B, + 0x76, 0x61, 0x72, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x3D, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x67, + 0x65, 0x74, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x28, + 0x27, 0x32, 0x64, 0x27, 0x29, 0x2C, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3D, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, + 0x6E, 0x73, 0x3D, 0x7B, 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x2C, + 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x30, 0x2C, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x63, 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, + 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x2C, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x63, + 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x63, 0x6C, 0x69, 0x65, + 0x6E, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7D, 0x2C, + 0x6F, 0x6C, 0x64, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6C, 0x69, + 0x64, 0x54, 0x69, 0x6D, 0x65, 0x3D, 0x74, 0x69, 0x6D, 0x65, + 0x2D, 0x28, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2A, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x6D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, + 0x72, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x29, 0x2C, 0x76, 0x61, + 0x6C, 0x75, 0x65, 0x54, 0x6F, 0x59, 0x50, 0x69, 0x78, 0x65, + 0x6C, 0x3D, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, + 0x28, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x29, 0x7B, 0x76, 0x61, + 0x72, 0x20, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3D, 0x76, + 0x61, 0x6C, 0x75, 0x65, 0x2D, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x56, 0x69, 0x73, + 0x4D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3B, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x56, 0x61, + 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x3D, 0x3D, + 0x3D, 0x30, 0x3F, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2D, 0x28, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x28, 0x28, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2F, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, + 0x74, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x29, 0x2A, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x29, 0x29, 0x7D, 0x2E, 0x62, 0x69, 0x6E, 0x64, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2C, 0x74, 0x69, 0x6D, 0x65, 0x54, + 0x6F, 0x58, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x74, 0x29, 0x7B, + 0x69, 0x66, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x72, 0x6F, + 0x6C, 0x6C, 0x42, 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x28, 0x28, 0x74, 0x69, 0x6D, 0x65, 0x2D, 0x74, 0x29, 0x2F, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x6D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, + 0x65, 0x72, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x29, 0x7D, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x4D, 0x61, 0x74, 0x68, + 0x2E, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x28, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x2D, 0x28, 0x28, 0x74, 0x69, 0x6D, 0x65, + 0x2D, 0x74, 0x29, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x50, 0x69, 0x78, 0x65, + 0x6C, 0x29, 0x29, 0x7D, 0x3B, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x52, 0x61, 0x6E, 0x67, 0x65, 0x28, 0x29, 0x3B, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x66, 0x6F, 0x6E, + 0x74, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, + 0x73, 0x2E, 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, + 0x2B, 0x27, 0x70, 0x78, 0x20, 0x27, 0x2B, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x73, 0x2E, 0x66, 0x6F, 0x6E, + 0x74, 0x46, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x73, 0x61, 0x76, 0x65, + 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x6C, 0x61, 0x74, 0x65, + 0x28, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x6C, 0x65, 0x66, 0x74, 0x2C, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x74, 0x6F, + 0x70, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, 0x68, + 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x72, 0x65, 0x63, 0x74, 0x28, 0x30, 0x2C, 0x30, 0x2C, + 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x63, 0x6C, 0x69, 0x70, 0x28, 0x29, + 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x73, + 0x61, 0x76, 0x65, 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, + 0x79, 0x6C, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, 0x69, + 0x64, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, + 0x65, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x63, 0x6C, 0x65, 0x61, 0x72, 0x52, 0x65, 0x63, 0x74, 0x28, + 0x30, 0x2C, 0x30, 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x3B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, + 0x6C, 0x6C, 0x52, 0x65, 0x63, 0x74, 0x28, 0x30, 0x2C, 0x30, + 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x64, 0x69, + 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x3B, 0x63, 0x6F, 0x6E, + 0x74, 0x65, 0x78, 0x74, 0x2E, 0x72, 0x65, 0x73, 0x74, 0x6F, + 0x72, 0x65, 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x2E, 0x73, 0x61, 0x76, 0x65, 0x28, 0x29, 0x3B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, + 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x6C, 0x69, 0x6E, 0x65, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, + 0x72, 0x69, 0x64, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3B, 0x69, 0x66, 0x28, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x6D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x4C, 0x69, 0x6E, 0x65, + 0x3E, 0x30, 0x29, 0x7B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, + 0x68, 0x28, 0x29, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3D, 0x74, 0x69, 0x6D, 0x65, 0x2D, 0x28, + 0x74, 0x69, 0x6D, 0x65, 0x25, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, + 0x69, 0x64, 0x2E, 0x6D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, + 0x65, 0x72, 0x4C, 0x69, 0x6E, 0x65, 0x29, 0x3B, 0x74, 0x3E, + 0x3D, 0x6F, 0x6C, 0x64, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6C, + 0x69, 0x64, 0x54, 0x69, 0x6D, 0x65, 0x3B, 0x74, 0x2D, 0x3D, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x6D, 0x69, + 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x4C, 0x69, 0x6E, + 0x65, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x67, 0x78, 0x3D, + 0x74, 0x69, 0x6D, 0x65, 0x54, 0x6F, 0x58, 0x50, 0x69, 0x78, + 0x65, 0x6C, 0x28, 0x74, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x73, 0x68, 0x61, + 0x72, 0x70, 0x4C, 0x69, 0x6E, 0x65, 0x73, 0x29, 0x7B, 0x67, + 0x78, 0x2D, 0x3D, 0x30, 0x2E, 0x35, 0x7D, 0x63, 0x6F, 0x6E, + 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6D, 0x6F, 0x76, 0x65, 0x54, + 0x6F, 0x28, 0x67, 0x78, 0x2C, 0x30, 0x29, 0x3B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, + 0x54, 0x6F, 0x28, 0x67, 0x78, 0x2C, 0x64, 0x69, 0x6D, 0x65, + 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x29, 0x7D, 0x63, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x28, + 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x28, + 0x29, 0x7D, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x76, 0x3D, 0x31, 0x3B, 0x76, 0x3C, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, + 0x72, 0x69, 0x64, 0x2E, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, + 0x61, 0x6C, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x3B, 0x76, 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x76, 0x61, 0x72, + 0x20, 0x67, 0x79, 0x3D, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, + 0x6F, 0x75, 0x6E, 0x64, 0x28, 0x76, 0x2A, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, + 0x69, 0x64, 0x2E, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, + 0x6C, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x29, + 0x3B, 0x69, 0x66, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, 0x69, + 0x64, 0x2E, 0x73, 0x68, 0x61, 0x72, 0x70, 0x4C, 0x69, 0x6E, + 0x65, 0x73, 0x29, 0x7B, 0x67, 0x79, 0x2D, 0x3D, 0x30, 0x2E, + 0x35, 0x7D, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, 0x68, 0x28, + 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x28, 0x30, 0x2C, 0x67, + 0x79, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F, 0x28, 0x64, 0x69, + 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x2C, 0x67, 0x79, 0x29, 0x3B, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x73, 0x74, 0x72, + 0x6F, 0x6B, 0x65, 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x28, 0x29, 0x7D, 0x69, 0x66, 0x28, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6C, 0x65, + 0x29, 0x7B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, 0x68, 0x28, + 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x52, 0x65, 0x63, 0x74, + 0x28, 0x30, 0x2C, 0x30, 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, + 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, + 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x63, + 0x6C, 0x6F, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x28, 0x29, + 0x7D, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x72, + 0x65, 0x73, 0x74, 0x6F, 0x72, 0x65, 0x28, 0x29, 0x3B, 0x69, + 0x66, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x6F, 0x72, 0x69, 0x7A, + 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x4C, 0x69, 0x6E, 0x65, 0x73, + 0x26, 0x26, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x6F, 0x72, 0x69, 0x7A, + 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x4C, 0x69, 0x6E, 0x65, 0x73, + 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x29, 0x7B, 0x66, + 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x68, 0x6C, 0x3D, + 0x30, 0x3B, 0x68, 0x6C, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x6F, + 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, 0x4C, 0x69, + 0x6E, 0x65, 0x73, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, + 0x3B, 0x68, 0x6C, 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x76, 0x61, + 0x72, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x3D, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x74, 0x61, 0x6C, + 0x4C, 0x69, 0x6E, 0x65, 0x73, 0x5B, 0x68, 0x6C, 0x5D, 0x2C, + 0x68, 0x6C, 0x79, 0x3D, 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, + 0x6F, 0x75, 0x6E, 0x64, 0x28, 0x76, 0x61, 0x6C, 0x75, 0x65, + 0x54, 0x6F, 0x59, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x28, 0x6C, + 0x69, 0x6E, 0x65, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x29, + 0x29, 0x2D, 0x30, 0x2E, 0x35, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3D, 0x6C, 0x69, 0x6E, 0x65, + 0x2E, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x7C, 0x7C, 0x27, 0x23, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x27, 0x3B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x6C, 0x69, 0x6E, 0x65, + 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x7C, 0x7C, 0x31, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, + 0x68, 0x28, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x28, 0x30, + 0x2C, 0x68, 0x6C, 0x79, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F, + 0x28, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x68, 0x6C, + 0x79, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x28, 0x29, 0x3B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x63, 0x6C, + 0x6F, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x28, 0x29, 0x7D, + 0x7D, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x64, + 0x3D, 0x30, 0x3B, 0x64, 0x3C, 0x74, 0x68, 0x69, 0x73, 0x2E, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x2E, + 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x3B, 0x64, 0x2B, 0x3D, + 0x31, 0x29, 0x7B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x73, 0x61, 0x76, 0x65, 0x28, 0x29, 0x3B, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x3D, 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x53, 0x65, 0x74, 0x5B, 0x64, 0x5D, + 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x2C, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x3D, + 0x74, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x2E, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x73, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3D, + 0x74, 0x68, 0x69, 0x73, 0x2E, 0x73, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x53, 0x65, 0x74, 0x5B, 0x64, 0x5D, 0x2E, 0x6F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x3B, 0x74, 0x69, 0x6D, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2E, 0x64, 0x72, 0x6F, + 0x70, 0x4F, 0x6C, 0x64, 0x44, 0x61, 0x74, 0x61, 0x28, 0x6F, + 0x6C, 0x64, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6C, 0x69, 0x64, + 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6D, 0x61, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4C, 0x65, + 0x6E, 0x67, 0x74, 0x68, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x3D, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, 0x69, + 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x73, 0x74, 0x72, 0x6F, + 0x6B, 0x65, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3D, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, + 0x79, 0x6C, 0x65, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x50, 0x61, 0x74, + 0x68, 0x28, 0x29, 0x3B, 0x76, 0x61, 0x72, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x58, 0x3D, 0x30, 0x2C, 0x6C, 0x61, 0x73, + 0x74, 0x58, 0x3D, 0x30, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x59, + 0x3D, 0x30, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3D, 0x30, 0x3B, 0x69, 0x3C, 0x64, 0x61, 0x74, + 0x61, 0x53, 0x65, 0x74, 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, + 0x68, 0x26, 0x26, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, + 0x2E, 0x6C, 0x65, 0x6E, 0x67, 0x74, 0x68, 0x21, 0x3D, 0x3D, + 0x31, 0x3B, 0x69, 0x2B, 0x3D, 0x31, 0x29, 0x7B, 0x76, 0x61, + 0x72, 0x20, 0x78, 0x3D, 0x74, 0x69, 0x6D, 0x65, 0x54, 0x6F, + 0x58, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x53, 0x65, 0x74, 0x5B, 0x69, 0x5D, 0x5B, 0x30, 0x5D, + 0x29, 0x2C, 0x79, 0x3D, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x54, + 0x6F, 0x59, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x65, 0x74, 0x5B, 0x69, 0x5D, 0x5B, 0x31, + 0x5D, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x69, 0x3D, 0x3D, 0x3D, + 0x30, 0x29, 0x7B, 0x66, 0x69, 0x72, 0x73, 0x74, 0x58, 0x3D, + 0x78, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x6D, 0x6F, 0x76, 0x65, 0x54, 0x6F, 0x28, 0x78, 0x2C, 0x79, + 0x29, 0x7D, 0x65, 0x6C, 0x73, 0x65, 0x7B, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x69, 0x6E, 0x74, + 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x29, 0x7B, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x6C, 0x69, + 0x6E, 0x65, 0x61, 0x72, 0x22, 0x3A, 0x63, 0x61, 0x73, 0x65, + 0x20, 0x22, 0x6C, 0x69, 0x6E, 0x65, 0x22, 0x3A, 0x7B, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, + 0x65, 0x54, 0x6F, 0x28, 0x78, 0x2C, 0x79, 0x29, 0x3B, 0x62, + 0x72, 0x65, 0x61, 0x6B, 0x7D, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x22, 0x62, 0x65, 0x7A, 0x69, 0x65, 0x72, 0x22, 0x3A, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x3A, 0x7B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x62, 0x65, 0x7A, 0x69, + 0x65, 0x72, 0x43, 0x75, 0x72, 0x76, 0x65, 0x54, 0x6F, 0x28, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x28, 0x28, 0x6C, 0x61, 0x73, 0x74, 0x58, 0x2B, 0x78, 0x29, + 0x2F, 0x32, 0x29, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x59, 0x2C, + 0x4D, 0x61, 0x74, 0x68, 0x2E, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x28, 0x28, 0x6C, 0x61, 0x73, 0x74, 0x58, 0x2B, 0x78, 0x29, + 0x29, 0x2F, 0x32, 0x2C, 0x79, 0x2C, 0x78, 0x2C, 0x79, 0x29, + 0x3B, 0x62, 0x72, 0x65, 0x61, 0x6B, 0x7D, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x22, 0x73, 0x74, 0x65, 0x70, 0x22, 0x3A, 0x7B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, + 0x6E, 0x65, 0x54, 0x6F, 0x28, 0x78, 0x2C, 0x6C, 0x61, 0x73, + 0x74, 0x59, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F, 0x28, 0x78, + 0x2C, 0x79, 0x29, 0x3B, 0x62, 0x72, 0x65, 0x61, 0x6B, 0x7D, + 0x7D, 0x7D, 0x6C, 0x61, 0x73, 0x74, 0x58, 0x3D, 0x78, 0x3B, + 0x6C, 0x61, 0x73, 0x74, 0x59, 0x3D, 0x79, 0x7D, 0x69, 0x66, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x2E, 0x6C, + 0x65, 0x6E, 0x67, 0x74, 0x68, 0x3E, 0x31, 0x29, 0x7B, 0x69, + 0x66, 0x28, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x66, 0x69, 0x6C, 0x6C, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x29, 0x7B, 0x63, 0x6F, 0x6E, + 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x54, + 0x6F, 0x28, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2B, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x2B, 0x31, 0x2C, 0x6C, 0x61, 0x73, 0x74, 0x59, + 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F, 0x28, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x2B, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, 0x69, + 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2B, 0x31, 0x2C, + 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2B, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x2B, 0x31, 0x29, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x54, 0x6F, 0x28, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x58, 0x2C, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x2B, 0x73, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, + 0x69, 0x6E, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x29, 0x3B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, + 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3D, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, 0x6C, + 0x65, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, + 0x66, 0x69, 0x6C, 0x6C, 0x28, 0x29, 0x7D, 0x69, 0x66, 0x28, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x26, 0x26, 0x73, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x53, 0x74, 0x79, + 0x6C, 0x65, 0x21, 0x3D, 0x3D, 0x27, 0x6E, 0x6F, 0x6E, 0x65, + 0x27, 0x29, 0x7B, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, + 0x2E, 0x73, 0x74, 0x72, 0x6F, 0x6B, 0x65, 0x28, 0x29, 0x7D, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x63, 0x6C, + 0x6F, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x28, 0x29, 0x7D, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x72, 0x65, + 0x73, 0x74, 0x6F, 0x72, 0x65, 0x28, 0x29, 0x7D, 0x69, 0x66, + 0x28, 0x21, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, + 0x73, 0x2E, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x64, + 0x26, 0x26, 0x21, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, + 0x61, 0x6E, 0x67, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x29, 0x26, + 0x26, 0x21, 0x69, 0x73, 0x4E, 0x61, 0x4E, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, + 0x6E, 0x67, 0x65, 0x2E, 0x6D, 0x61, 0x78, 0x29, 0x29, 0x7B, + 0x76, 0x61, 0x72, 0x20, 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, + 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3D, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x79, 0x4D, 0x61, 0x78, 0x46, 0x6F, 0x72, 0x6D, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, 0x61, 0x6E, 0x67, + 0x65, 0x2E, 0x6D, 0x61, 0x78, 0x2C, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, + 0x61, 0x62, 0x65, 0x6C, 0x73, 0x2E, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x29, 0x2C, 0x6D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x79, 0x4D, 0x69, 0x6E, 0x46, + 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2E, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x52, + 0x61, 0x6E, 0x67, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2C, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x73, 0x2E, 0x70, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x29, 0x2C, + 0x6D, 0x61, 0x78, 0x4C, 0x61, 0x62, 0x65, 0x6C, 0x50, 0x6F, + 0x73, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x72, 0x6F, 0x6C, + 0x6C, 0x42, 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x3F, 0x30, 0x3A, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2D, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6D, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x54, 0x65, 0x78, 0x74, 0x28, + 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x29, 0x2E, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x2D, 0x32, 0x2C, 0x6D, 0x69, 0x6E, 0x4C, 0x61, 0x62, + 0x65, 0x6C, 0x50, 0x6F, 0x73, 0x3D, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x73, + 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, 0x61, 0x63, 0x6B, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x3F, 0x30, 0x3A, 0x64, 0x69, 0x6D, + 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x2D, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, + 0x74, 0x2E, 0x6D, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x54, + 0x65, 0x78, 0x74, 0x28, 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, + 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x29, 0x2E, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x2D, 0x32, 0x3B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, + 0x61, 0x62, 0x65, 0x6C, 0x73, 0x2E, 0x66, 0x69, 0x6C, 0x6C, + 0x53, 0x74, 0x79, 0x6C, 0x65, 0x3B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x54, 0x65, + 0x78, 0x74, 0x28, 0x6D, 0x61, 0x78, 0x56, 0x61, 0x6C, 0x75, + 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2C, 0x6D, 0x61, + 0x78, 0x4C, 0x61, 0x62, 0x65, 0x6C, 0x50, 0x6F, 0x73, 0x2C, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x73, 0x2E, + 0x66, 0x6F, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x29, 0x3B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, + 0x6C, 0x6C, 0x54, 0x65, 0x78, 0x74, 0x28, 0x6D, 0x69, 0x6E, + 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x2C, 0x6D, 0x69, 0x6E, 0x4C, 0x61, 0x62, 0x65, 0x6C, + 0x50, 0x6F, 0x73, 0x2C, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, + 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x2D, 0x32, 0x29, 0x7D, 0x69, 0x66, 0x28, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, + 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, + 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x26, + 0x26, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x6D, + 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x4C, 0x69, + 0x6E, 0x65, 0x3E, 0x30, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x55, 0x6E, 0x74, 0x69, 0x6C, 0x58, + 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, + 0x6F, 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, + 0x42, 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x73, 0x3F, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6D, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x54, 0x65, 0x78, 0x74, 0x28, + 0x6D, 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x29, 0x2E, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3A, 0x64, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2D, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6D, 0x65, 0x61, + 0x73, 0x75, 0x72, 0x65, 0x54, 0x65, 0x78, 0x74, 0x28, 0x6D, + 0x69, 0x6E, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6E, 0x67, 0x29, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x2B, 0x34, 0x3B, 0x66, 0x6F, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3D, 0x74, 0x69, 0x6D, 0x65, 0x2D, 0x28, 0x74, + 0x69, 0x6D, 0x65, 0x25, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, + 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x67, 0x72, 0x69, + 0x64, 0x2E, 0x6D, 0x69, 0x6C, 0x6C, 0x69, 0x73, 0x50, 0x65, + 0x72, 0x4C, 0x69, 0x6E, 0x65, 0x29, 0x3B, 0x74, 0x3E, 0x3D, + 0x6F, 0x6C, 0x64, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6C, 0x69, + 0x64, 0x54, 0x69, 0x6D, 0x65, 0x3B, 0x74, 0x2D, 0x3D, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, + 0x73, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2E, 0x6D, 0x69, 0x6C, + 0x6C, 0x69, 0x73, 0x50, 0x65, 0x72, 0x4C, 0x69, 0x6E, 0x65, + 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x67, 0x78, 0x3D, 0x74, + 0x69, 0x6D, 0x65, 0x54, 0x6F, 0x58, 0x50, 0x69, 0x78, 0x65, + 0x6C, 0x28, 0x74, 0x29, 0x3B, 0x69, 0x66, 0x28, 0x28, 0x21, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, + 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x73, 0x26, 0x26, + 0x67, 0x78, 0x3C, 0x74, 0x65, 0x78, 0x74, 0x55, 0x6E, 0x74, + 0x69, 0x6C, 0x58, 0x29, 0x7C, 0x7C, 0x28, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, 0x61, 0x63, 0x6B, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x26, 0x26, 0x67, 0x78, 0x3E, + 0x74, 0x65, 0x78, 0x74, 0x55, 0x6E, 0x74, 0x69, 0x6C, 0x58, + 0x29, 0x29, 0x7B, 0x76, 0x61, 0x72, 0x20, 0x74, 0x78, 0x3D, + 0x6E, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x74, + 0x29, 0x2C, 0x74, 0x73, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x74, 0x69, + 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x46, 0x6F, 0x72, + 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x28, 0x74, 0x78, 0x29, + 0x2C, 0x74, 0x73, 0x57, 0x69, 0x64, 0x74, 0x68, 0x3D, 0x63, + 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x6D, 0x65, 0x61, + 0x73, 0x75, 0x72, 0x65, 0x54, 0x65, 0x78, 0x74, 0x28, 0x74, + 0x73, 0x29, 0x2E, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3B, 0x74, + 0x65, 0x78, 0x74, 0x55, 0x6E, 0x74, 0x69, 0x6C, 0x58, 0x3D, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, + 0x6E, 0x73, 0x2E, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, + 0x61, 0x63, 0x6B, 0x77, 0x61, 0x72, 0x64, 0x73, 0x3F, 0x67, + 0x78, 0x2B, 0x74, 0x73, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2B, + 0x32, 0x3A, 0x67, 0x78, 0x2D, 0x74, 0x73, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x2D, 0x32, 0x3B, 0x63, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, + 0x6C, 0x65, 0x3D, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4F, 0x70, + 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x6C, 0x61, 0x62, 0x65, + 0x6C, 0x73, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x53, 0x74, 0x79, + 0x6C, 0x65, 0x3B, 0x69, 0x66, 0x28, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x73, + 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x42, 0x61, 0x63, 0x6B, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x29, 0x7B, 0x63, 0x6F, 0x6E, 0x74, + 0x65, 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x54, 0x65, + 0x78, 0x74, 0x28, 0x74, 0x73, 0x2C, 0x67, 0x78, 0x2C, 0x64, + 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2D, 0x32, 0x29, 0x7D, + 0x65, 0x6C, 0x73, 0x65, 0x7B, 0x63, 0x6F, 0x6E, 0x74, 0x65, + 0x78, 0x74, 0x2E, 0x66, 0x69, 0x6C, 0x6C, 0x54, 0x65, 0x78, + 0x74, 0x28, 0x74, 0x73, 0x2C, 0x67, 0x78, 0x2D, 0x74, 0x73, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x2C, 0x64, 0x69, 0x6D, 0x65, + 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x2E, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x2D, 0x32, 0x29, 0x7D, 0x7D, 0x7D, 0x7D, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x78, 0x74, 0x2E, 0x72, 0x65, + 0x73, 0x74, 0x6F, 0x72, 0x65, 0x28, 0x29, 0x3B, 0x7D, 0x3B, + 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x2E, 0x74, 0x69, 0x6D, 0x65, 0x46, 0x6F, + 0x72, 0x6D, 0x61, 0x74, 0x74, 0x65, 0x72, 0x3D, 0x66, 0x75, + 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x64, 0x61, 0x74, + 0x65, 0x29, 0x7B, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, + 0x6E, 0x20, 0x70, 0x61, 0x64, 0x32, 0x28, 0x6E, 0x75, 0x6D, + 0x62, 0x65, 0x72, 0x29, 0x7B, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6E, 0x28, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x3C, 0x31, + 0x30, 0x3F, 0x27, 0x30, 0x27, 0x3A, 0x27, 0x27, 0x29, 0x2B, + 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x7D, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6E, 0x20, 0x70, 0x61, 0x64, 0x32, 0x28, 0x64, + 0x61, 0x74, 0x65, 0x2E, 0x67, 0x65, 0x74, 0x48, 0x6F, 0x75, + 0x72, 0x73, 0x28, 0x29, 0x29, 0x2B, 0x27, 0x3A, 0x27, 0x2B, + 0x70, 0x61, 0x64, 0x32, 0x28, 0x64, 0x61, 0x74, 0x65, 0x2E, + 0x67, 0x65, 0x74, 0x4D, 0x69, 0x6E, 0x75, 0x74, 0x65, 0x73, + 0x28, 0x29, 0x29, 0x2B, 0x27, 0x3A, 0x27, 0x2B, 0x70, 0x61, + 0x64, 0x32, 0x28, 0x64, 0x61, 0x74, 0x65, 0x2E, 0x67, 0x65, + 0x74, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x73, 0x28, 0x29, + 0x29, 0x7D, 0x3B, 0x65, 0x78, 0x70, 0x6F, 0x72, 0x74, 0x73, + 0x2E, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x3D, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x3B, 0x65, 0x78, 0x70, 0x6F, 0x72, 0x74, 0x73, + 0x2E, 0x53, 0x6D, 0x6F, 0x6F, 0x74, 0x68, 0x69, 0x65, 0x43, + 0x68, 0x61, 0x72, 0x74, 0x3D, 0x53, 0x6D, 0x6F, 0x6F, 0x74, + 0x68, 0x69, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x7D, 0x29, + 0x28, 0x74, 0x79, 0x70, 0x65, 0x6F, 0x66, 0x20, 0x65, 0x78, + 0x70, 0x6F, 0x72, 0x74, 0x73, 0x3D, 0x3D, 0x3D, 0x27, 0x75, + 0x6E, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x27, 0x3F, + 0x74, 0x68, 0x69, 0x73, 0x3A, 0x65, 0x78, 0x70, 0x6F, 0x72, + 0x74, 0x73, 0x29, 0x3B, }; static const unsigned char data_img_favicon_png[] = { /* /img/favicon.png */ 0x2F, 0x69, 0x6D, 0x67, 0x2F, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x70, 0x6E, 0x67, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, - 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, - 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, - 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, - 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, - 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x69, 0x6D, 0x61, 0x67, - 0x65, 0x2F, 0x70, 0x6E, 0x67, 0x0D, 0x0A, 0x0D, 0x0A, 0x89, - 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, - 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 0xF3, - 0xFF, 0x61, 0x00, 0x00, 0x02, 0xBF, 0x49, 0x44, 0x41, 0x54, - 0x38, 0xCB, 0xA5, 0x92, 0x4F, 0x6C, 0x14, 0x75, 0x14, 0xC7, - 0x3F, 0x3B, 0x3B, 0x33, 0xFB, 0xBF, 0xBB, 0x74, 0x59, 0xD8, - 0xA5, 0xC5, 0x76, 0x4B, 0x65, 0x6B, 0x49, 0x10, 0x41, 0x41, - 0x20, 0x84, 0xD2, 0x80, 0x6D, 0x6C, 0x62, 0x80, 0xC4, 0x78, - 0xF1, 0x64, 0xD2, 0x93, 0x89, 0x77, 0xF1, 0xE4, 0xD9, 0x83, - 0x37, 0x63, 0x3C, 0xE0, 0xC5, 0x43, 0x2F, 0x46, 0x23, 0x90, - 0x70, 0x30, 0x01, 0xA5, 0x6A, 0x29, 0x2D, 0x65, 0xA1, 0x14, - 0xD3, 0xAD, 0x08, 0xBB, 0x9A, 0xD9, 0xA6, 0xBB, 0x65, 0xF6, - 0x5F, 0x67, 0x77, 0xE7, 0x37, 0xF3, 0xF3, 0x62, 0xD7, 0xA6, - 0xE2, 0xC9, 0x77, 0x79, 0x2F, 0x2F, 0xEF, 0xFB, 0xC9, 0x37, - 0x2F, 0x5F, 0xF8, 0x9F, 0xE5, 0xD9, 0xBE, 0x78, 0x77, 0xF2, - 0x83, 0x54, 0xA2, 0x7F, 0xF8, 0x13, 0xAF, 0x2F, 0xFC, 0xB6, - 0xAB, 0x06, 0xF4, 0xEE, 0xB0, 0x9F, 0xDB, 0xF3, 0xD9, 0x92, - 0x91, 0x5F, 0xF9, 0x72, 0xEE, 0xDA, 0xE5, 0x4B, 0x80, 0xF8, - 0x4F, 0xC0, 0x89, 0x8B, 0xEF, 0xBF, 0x63, 0x05, 0x52, 0x53, - 0x17, 0x26, 0xC6, 0x19, 0x39, 0xD4, 0x47, 0xD0, 0xA7, 0x52, - 0xB1, 0xDA, 0x2C, 0x3D, 0x2D, 0xF3, 0xFD, 0x4F, 0x77, 0x29, - 0xAE, 0x64, 0x6D, 0xBF, 0x65, 0xBC, 0xF2, 0xC3, 0x95, 0xAF, - 0x1E, 0x6E, 0x6A, 0x94, 0x8E, 0x7A, 0xE7, 0xD1, 0xB1, 0xAA, - 0x9E, 0x9A, 0x7A, 0x61, 0xE8, 0x30, 0xAA, 0x3F, 0x84, 0x5F, - 0x53, 0xD8, 0xB7, 0x3B, 0x44, 0x40, 0xF3, 0x52, 0x6D, 0x41, - 0xAA, 0xA7, 0x8F, 0x57, 0x8F, 0x9F, 0xD6, 0x0E, 0x1D, 0x3B, - 0xB5, 0x08, 0xEC, 0xD9, 0x94, 0x79, 0x37, 0x07, 0x2D, 0x73, - 0x26, 0x77, 0x76, 0x74, 0xD4, 0xB3, 0x27, 0xB9, 0x8B, 0xC1, - 0x54, 0x17, 0x89, 0xA8, 0x1F, 0xAB, 0xED, 0x10, 0xF6, 0xAB, - 0xEC, 0x8D, 0x07, 0xD1, 0x75, 0x8D, 0x74, 0x32, 0x8A, 0xA2, - 0xFA, 0x88, 0xEC, 0xDA, 0x7B, 0xEE, 0xD1, 0xDC, 0x8F, 0x9F, - 0x77, 0x1C, 0x4C, 0xBC, 0xF7, 0xE1, 0xE4, 0x81, 0xE1, 0x03, - 0x9E, 0xA6, 0x03, 0x45, 0xB3, 0xC9, 0xFE, 0x54, 0x84, 0xB6, - 0x70, 0x51, 0x14, 0x0F, 0xEB, 0xF5, 0x36, 0x56, 0x5B, 0xD0, - 0xDB, 0x1D, 0xC4, 0xA7, 0xAB, 0x44, 0x23, 0x61, 0x32, 0x99, - 0xCC, 0x41, 0xD8, 0x99, 0xE9, 0x00, 0xA2, 0xB1, 0xEE, 0xB1, - 0x42, 0xA9, 0x8E, 0xEB, 0xBA, 0x9C, 0x3F, 0xDA, 0x83, 0x69, - 0xD9, 0xE4, 0x8C, 0x1A, 0xCB, 0x46, 0x8D, 0xAA, 0x65, 0x53, - 0x6B, 0x0A, 0x5A, 0xB6, 0x4D, 0x2C, 0xA4, 0x23, 0x5C, 0x49, - 0x38, 0x12, 0x63, 0x68, 0x64, 0x74, 0xBC, 0x03, 0x10, 0xAE, - 0x4C, 0xB9, 0xAE, 0x64, 0xF4, 0xE5, 0x5E, 0xBA, 0x02, 0x2A, - 0xAE, 0x10, 0x44, 0x83, 0x1A, 0xB3, 0x2B, 0xEB, 0xAC, 0x18, - 0x35, 0xCC, 0x5A, 0x93, 0xC7, 0x46, 0x85, 0xB6, 0xED, 0x20, - 0xA5, 0x8B, 0x70, 0x1C, 0xF6, 0xA7, 0xFB, 0x77, 0x77, 0x00, - 0xD9, 0xA5, 0x5C, 0xA9, 0x65, 0x35, 0x28, 0x99, 0x75, 0x2A, - 0xB5, 0x06, 0x21, 0x5D, 0xC1, 0x15, 0x36, 0xC7, 0x06, 0xBA, - 0xF0, 0x79, 0x5D, 0x14, 0x1C, 0xE2, 0x61, 0x15, 0x29, 0x1D, - 0x14, 0x24, 0x9A, 0xD7, 0xC3, 0xAD, 0x3B, 0xD9, 0xF5, 0xCE, - 0x13, 0xCB, 0x76, 0x24, 0xB9, 0x6F, 0xA0, 0x6F, 0xBC, 0x58, - 0xB5, 0x69, 0xD8, 0x92, 0x54, 0x3C, 0x4C, 0xAB, 0x2D, 0x10, - 0xC2, 0xE1, 0x59, 0x75, 0x03, 0x9F, 0xEA, 0x21, 0xF7, 0x47, - 0x09, 0x5C, 0x87, 0x46, 0xA3, 0x4E, 0x76, 0x71, 0x89, 0xD9, - 0x6F, 0xAF, 0x5E, 0x82, 0x8A, 0xA1, 0x02, 0xD0, 0x58, 0xFB, - 0xAC, 0x55, 0x2B, 0x7F, 0x3A, 0x3D, 0x6B, 0xA2, 0xA9, 0x5E, - 0xCE, 0x1E, 0xEE, 0x47, 0x91, 0x12, 0xC7, 0x71, 0x09, 0xEA, - 0x1E, 0x96, 0xF3, 0xAB, 0xDC, 0x5B, 0xFE, 0x93, 0x2B, 0x86, - 0x01, 0x96, 0x89, 0x59, 0xFC, 0xBD, 0x00, 0xF9, 0xF9, 0x7F, - 0x72, 0x50, 0x5E, 0x6A, 0x0F, 0xF7, 0x27, 0x26, 0x69, 0x94, - 0xA8, 0x9B, 0x25, 0x56, 0xD7, 0xCA, 0x94, 0xD6, 0x4D, 0x76, - 0x84, 0x34, 0x16, 0x73, 0x79, 0xA6, 0xAE, 0xCF, 0x50, 0x28, - 0x14, 0x58, 0x98, 0xBF, 0xC7, 0x6F, 0xB9, 0x5F, 0xF1, 0x79, - 0xDD, 0x37, 0xFF, 0x95, 0x83, 0xDC, 0xC2, 0xF4, 0xDD, 0x93, - 0x23, 0xE7, 0x64, 0x2C, 0xA4, 0x9F, 0x39, 0xF2, 0x52, 0x1A, - 0x21, 0x04, 0x5F, 0x7C, 0x7D, 0x93, 0xEF, 0x6E, 0xCC, 0xB1, - 0x56, 0x28, 0xF0, 0xC6, 0xEB, 0x83, 0x2C, 0x3E, 0xB8, 0x4F, - 0x44, 0x97, 0xE3, 0xF9, 0x99, 0x6F, 0x7E, 0x79, 0x5E, 0x94, - 0x35, 0x20, 0x46, 0xA0, 0xE7, 0xAD, 0x17, 0x5F, 0x3B, 0xF5, - 0x91, 0xF0, 0x06, 0xD3, 0x89, 0xF8, 0x0E, 0x1E, 0x3D, 0x2E, - 0x30, 0xD8, 0x9B, 0x60, 0x61, 0x7A, 0x3A, 0xCB, 0xC6, 0x93, - 0x8F, 0x69, 0x56, 0x1E, 0x00, 0x06, 0xB0, 0x01, 0xC8, 0xED, - 0x80, 0xF8, 0xDF, 0x31, 0x8D, 0x00, 0xE1, 0x58, 0x32, 0x9D, - 0x1C, 0x1A, 0xE8, 0x95, 0x33, 0x3F, 0xDF, 0x2A, 0x02, 0x36, - 0xD0, 0x00, 0x56, 0x81, 0xE2, 0xF3, 0x00, 0xDB, 0x5D, 0x79, - 0xB6, 0xCC, 0x72, 0x4B, 0x97, 0x5B, 0x8F, 0xFF, 0x02, 0x78, - 0x99, 0x27, 0xDD, 0x60, 0x50, 0xF9, 0x07, 0x00, 0x00, 0x00, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x69, 0x6D, 0x61, 0x67, + 0x65, 0x2F, 0x70, 0x6E, 0x67, 0x0D, 0x0A, 0x0D, 0x0A, 0x89, + 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, + 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 0xF3, + 0xFF, 0x61, 0x00, 0x00, 0x02, 0xBF, 0x49, 0x44, 0x41, 0x54, + 0x38, 0xCB, 0xA5, 0x92, 0x4F, 0x6C, 0x14, 0x75, 0x14, 0xC7, + 0x3F, 0x3B, 0x3B, 0x33, 0xFB, 0xBF, 0xBB, 0x74, 0x59, 0xD8, + 0xA5, 0xC5, 0x76, 0x4B, 0x65, 0x6B, 0x49, 0x10, 0x41, 0x41, + 0x20, 0x84, 0xD2, 0x80, 0x6D, 0x6C, 0x62, 0x80, 0xC4, 0x78, + 0xF1, 0x64, 0xD2, 0x93, 0x89, 0x77, 0xF1, 0xE4, 0xD9, 0x83, + 0x37, 0x63, 0x3C, 0xE0, 0xC5, 0x43, 0x2F, 0x46, 0x23, 0x90, + 0x70, 0x30, 0x01, 0xA5, 0x6A, 0x29, 0x2D, 0x65, 0xA1, 0x14, + 0xD3, 0xAD, 0x08, 0xBB, 0x9A, 0xD9, 0xA6, 0xBB, 0x65, 0xF6, + 0x5F, 0x67, 0x77, 0xE7, 0x37, 0xF3, 0xF3, 0x62, 0xD7, 0xA6, + 0xE2, 0xC9, 0x77, 0x79, 0x2F, 0x2F, 0xEF, 0xFB, 0xC9, 0x37, + 0x2F, 0x5F, 0xF8, 0x9F, 0xE5, 0xD9, 0xBE, 0x78, 0x77, 0xF2, + 0x83, 0x54, 0xA2, 0x7F, 0xF8, 0x13, 0xAF, 0x2F, 0xFC, 0xB6, + 0xAB, 0x06, 0xF4, 0xEE, 0xB0, 0x9F, 0xDB, 0xF3, 0xD9, 0x92, + 0x91, 0x5F, 0xF9, 0x72, 0xEE, 0xDA, 0xE5, 0x4B, 0x80, 0xF8, + 0x4F, 0xC0, 0x89, 0x8B, 0xEF, 0xBF, 0x63, 0x05, 0x52, 0x53, + 0x17, 0x26, 0xC6, 0x19, 0x39, 0xD4, 0x47, 0xD0, 0xA7, 0x52, + 0xB1, 0xDA, 0x2C, 0x3D, 0x2D, 0xF3, 0xFD, 0x4F, 0x77, 0x29, + 0xAE, 0x64, 0x6D, 0xBF, 0x65, 0xBC, 0xF2, 0xC3, 0x95, 0xAF, + 0x1E, 0x6E, 0x6A, 0x94, 0x8E, 0x7A, 0xE7, 0xD1, 0xB1, 0xAA, + 0x9E, 0x9A, 0x7A, 0x61, 0xE8, 0x30, 0xAA, 0x3F, 0x84, 0x5F, + 0x53, 0xD8, 0xB7, 0x3B, 0x44, 0x40, 0xF3, 0x52, 0x6D, 0x41, + 0xAA, 0xA7, 0x8F, 0x57, 0x8F, 0x9F, 0xD6, 0x0E, 0x1D, 0x3B, + 0xB5, 0x08, 0xEC, 0xD9, 0x94, 0x79, 0x37, 0x07, 0x2D, 0x73, + 0x26, 0x77, 0x76, 0x74, 0xD4, 0xB3, 0x27, 0xB9, 0x8B, 0xC1, + 0x54, 0x17, 0x89, 0xA8, 0x1F, 0xAB, 0xED, 0x10, 0xF6, 0xAB, + 0xEC, 0x8D, 0x07, 0xD1, 0x75, 0x8D, 0x74, 0x32, 0x8A, 0xA2, + 0xFA, 0x88, 0xEC, 0xDA, 0x7B, 0xEE, 0xD1, 0xDC, 0x8F, 0x9F, + 0x77, 0x1C, 0x4C, 0xBC, 0xF7, 0xE1, 0xE4, 0x81, 0xE1, 0x03, + 0x9E, 0xA6, 0x03, 0x45, 0xB3, 0xC9, 0xFE, 0x54, 0x84, 0xB6, + 0x70, 0x51, 0x14, 0x0F, 0xEB, 0xF5, 0x36, 0x56, 0x5B, 0xD0, + 0xDB, 0x1D, 0xC4, 0xA7, 0xAB, 0x44, 0x23, 0x61, 0x32, 0x99, + 0xCC, 0x41, 0xD8, 0x99, 0xE9, 0x00, 0xA2, 0xB1, 0xEE, 0xB1, + 0x42, 0xA9, 0x8E, 0xEB, 0xBA, 0x9C, 0x3F, 0xDA, 0x83, 0x69, + 0xD9, 0xE4, 0x8C, 0x1A, 0xCB, 0x46, 0x8D, 0xAA, 0x65, 0x53, + 0x6B, 0x0A, 0x5A, 0xB6, 0x4D, 0x2C, 0xA4, 0x23, 0x5C, 0x49, + 0x38, 0x12, 0x63, 0x68, 0x64, 0x74, 0xBC, 0x03, 0x10, 0xAE, + 0x4C, 0xB9, 0xAE, 0x64, 0xF4, 0xE5, 0x5E, 0xBA, 0x02, 0x2A, + 0xAE, 0x10, 0x44, 0x83, 0x1A, 0xB3, 0x2B, 0xEB, 0xAC, 0x18, + 0x35, 0xCC, 0x5A, 0x93, 0xC7, 0x46, 0x85, 0xB6, 0xED, 0x20, + 0xA5, 0x8B, 0x70, 0x1C, 0xF6, 0xA7, 0xFB, 0x77, 0x77, 0x00, + 0xD9, 0xA5, 0x5C, 0xA9, 0x65, 0x35, 0x28, 0x99, 0x75, 0x2A, + 0xB5, 0x06, 0x21, 0x5D, 0xC1, 0x15, 0x36, 0xC7, 0x06, 0xBA, + 0xF0, 0x79, 0x5D, 0x14, 0x1C, 0xE2, 0x61, 0x15, 0x29, 0x1D, + 0x14, 0x24, 0x9A, 0xD7, 0xC3, 0xAD, 0x3B, 0xD9, 0xF5, 0xCE, + 0x13, 0xCB, 0x76, 0x24, 0xB9, 0x6F, 0xA0, 0x6F, 0xBC, 0x58, + 0xB5, 0x69, 0xD8, 0x92, 0x54, 0x3C, 0x4C, 0xAB, 0x2D, 0x10, + 0xC2, 0xE1, 0x59, 0x75, 0x03, 0x9F, 0xEA, 0x21, 0xF7, 0x47, + 0x09, 0x5C, 0x87, 0x46, 0xA3, 0x4E, 0x76, 0x71, 0x89, 0xD9, + 0x6F, 0xAF, 0x5E, 0x82, 0x8A, 0xA1, 0x02, 0xD0, 0x58, 0xFB, + 0xAC, 0x55, 0x2B, 0x7F, 0x3A, 0x3D, 0x6B, 0xA2, 0xA9, 0x5E, + 0xCE, 0x1E, 0xEE, 0x47, 0x91, 0x12, 0xC7, 0x71, 0x09, 0xEA, + 0x1E, 0x96, 0xF3, 0xAB, 0xDC, 0x5B, 0xFE, 0x93, 0x2B, 0x86, + 0x01, 0x96, 0x89, 0x59, 0xFC, 0xBD, 0x00, 0xF9, 0xF9, 0x7F, + 0x72, 0x50, 0x5E, 0x6A, 0x0F, 0xF7, 0x27, 0x26, 0x69, 0x94, + 0xA8, 0x9B, 0x25, 0x56, 0xD7, 0xCA, 0x94, 0xD6, 0x4D, 0x76, + 0x84, 0x34, 0x16, 0x73, 0x79, 0xA6, 0xAE, 0xCF, 0x50, 0x28, + 0x14, 0x58, 0x98, 0xBF, 0xC7, 0x6F, 0xB9, 0x5F, 0xF1, 0x79, + 0xDD, 0x37, 0xFF, 0x95, 0x83, 0xDC, 0xC2, 0xF4, 0xDD, 0x93, + 0x23, 0xE7, 0x64, 0x2C, 0xA4, 0x9F, 0x39, 0xF2, 0x52, 0x1A, + 0x21, 0x04, 0x5F, 0x7C, 0x7D, 0x93, 0xEF, 0x6E, 0xCC, 0xB1, + 0x56, 0x28, 0xF0, 0xC6, 0xEB, 0x83, 0x2C, 0x3E, 0xB8, 0x4F, + 0x44, 0x97, 0xE3, 0xF9, 0x99, 0x6F, 0x7E, 0x79, 0x5E, 0x94, + 0x35, 0x20, 0x46, 0xA0, 0xE7, 0xAD, 0x17, 0x5F, 0x3B, 0xF5, + 0x91, 0xF0, 0x06, 0xD3, 0x89, 0xF8, 0x0E, 0x1E, 0x3D, 0x2E, + 0x30, 0xD8, 0x9B, 0x60, 0x61, 0x7A, 0x3A, 0xCB, 0xC6, 0x93, + 0x8F, 0x69, 0x56, 0x1E, 0x00, 0x06, 0xB0, 0x01, 0xC8, 0xED, + 0x80, 0xF8, 0xDF, 0x31, 0x8D, 0x00, 0xE1, 0x58, 0x32, 0x9D, + 0x1C, 0x1A, 0xE8, 0x95, 0x33, 0x3F, 0xDF, 0x2A, 0x02, 0x36, + 0xD0, 0x00, 0x56, 0x81, 0xE2, 0xF3, 0x00, 0xDB, 0x5D, 0x79, + 0xB6, 0xCC, 0x72, 0x4B, 0x97, 0x5B, 0x8F, 0xFF, 0x02, 0x78, + 0x99, 0x27, 0xDD, 0x60, 0x50, 0xF9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, }; static const unsigned char data_css_siimple_min_css[] = { /* /css/siimple.min.css */ 0x2F, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, 0x2E, 0x6D, 0x69, 0x6E, 0x2E, 0x63, 0x73, 0x73, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, - 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, - 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, - 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, - 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, - 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, - 0x2F, 0x2A, 0x2A, 0x0A, 0x20, 0x2A, 0x20, 0x73, 0x69, 0x69, - 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x69, 0x6E, - 0x69, 0x6D, 0x61, 0x6C, 0x20, 0x43, 0x53, 0x53, 0x20, 0x66, - 0x72, 0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x20, 0x66, - 0x6F, 0x72, 0x20, 0x66, 0x6C, 0x61, 0x74, 0x20, 0x61, 0x6E, - 0x64, 0x20, 0x63, 0x6C, 0x65, 0x61, 0x6E, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x67, 0x6E, 0x73, 0x2E, 0x0A, 0x20, 0x2A, 0x20, - 0x40, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x76, - 0x31, 0x2E, 0x33, 0x2E, 0x37, 0x0A, 0x20, 0x2A, 0x20, 0x40, - 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3A, 0x2F, 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, - 0x2E, 0x6A, 0x75, 0x61, 0x6E, 0x65, 0x73, 0x2E, 0x78, 0x79, - 0x7A, 0x2F, 0x0A, 0x20, 0x2A, 0x20, 0x40, 0x6C, 0x69, 0x63, - 0x65, 0x6E, 0x73, 0x65, 0x20, 0x4D, 0x49, 0x54, 0x0A, 0x20, - 0x2A, 0x2F, 0x0A, 0x0A, 0x40, 0x69, 0x6D, 0x70, 0x6F, 0x72, - 0x74, 0x20, 0x75, 0x72, 0x6C, 0x28, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3A, 0x2F, 0x2F, 0x66, 0x6F, 0x6E, 0x74, 0x73, 0x2E, - 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x63, 0x73, 0x73, 0x3F, 0x66, - 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3D, 0x4F, 0x70, 0x65, 0x6E, - 0x2B, 0x53, 0x61, 0x6E, 0x73, 0x3A, 0x34, 0x30, 0x30, 0x2C, - 0x33, 0x30, 0x30, 0x29, 0x3B, 0x6F, 0x6C, 0x2C, 0x6F, 0x6C, - 0x20, 0x6C, 0x69, 0x2C, 0x70, 0x2C, 0x75, 0x6C, 0x2C, 0x75, - 0x6C, 0x20, 0x6C, 0x69, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, - 0x78, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x70, - 0x72, 0x65, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x63, - 0x61, 0x6C, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2D, - 0x20, 0x33, 0x30, 0x70, 0x78, 0x29, 0x7D, 0x2E, 0x61, 0x6C, - 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, 0x7B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, - 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x5C, - 0x32, 0x37, 0x36, 0x34, 0x22, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x66, 0x34, 0x35, 0x36, 0x36, 0x30, 0x7D, - 0x62, 0x6F, 0x64, 0x79, 0x2C, 0x68, 0x31, 0x2C, 0x68, 0x32, - 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, 0x2C, 0x68, 0x35, 0x2C, - 0x68, 0x36, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, - 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x7D, 0x62, 0x6F, 0x64, - 0x79, 0x7B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, - 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x30, - 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, - 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, - 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, - 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, 0x61, 0x63, 0x6B, - 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, - 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, 0x2E, 0x61, - 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, 0x2C, 0x61, 0x7B, 0x74, - 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, - 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3A, 0x34, 0x30, 0x30, 0x7D, 0x62, 0x6C, 0x6F, 0x63, - 0x6B, 0x71, 0x75, 0x6F, 0x74, 0x65, 0x7B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x34, - 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, - 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, - 0x70, 0x78, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, - 0x78, 0x7D, 0x61, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, - 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x74, 0x72, - 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, - 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x7D, 0x61, 0x3A, 0x68, - 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, - 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, - 0x3A, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, - 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, 0x6F, - 0x69, 0x6E, 0x74, 0x65, 0x72, 0x7D, 0x70, 0x7B, 0x6D, 0x61, - 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, - 0x6D, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, - 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, - 0x6F, 0x63, 0x6B, 0x7D, 0x6F, 0x6C, 0x2C, 0x75, 0x6C, 0x7B, - 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, - 0x74, 0x6F, 0x6D, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x6D, - 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, - 0x30, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x68, - 0x31, 0x2C, 0x68, 0x32, 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, - 0x2C, 0x68, 0x35, 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, - 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, - 0x30, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, - 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, - 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, - 0x32, 0x30, 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, - 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x7D, 0x73, - 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, - 0x3A, 0x23, 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x66, - 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, - 0x34, 0x70, 0x78, 0x7D, 0x68, 0x31, 0x7B, 0x66, 0x6F, 0x6E, - 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x33, 0x36, 0x70, - 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3A, 0x35, 0x30, 0x70, 0x78, 0x7D, 0x68, - 0x32, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, - 0x65, 0x3A, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, - 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, - 0x36, 0x70, 0x78, 0x7D, 0x68, 0x33, 0x7B, 0x66, 0x6F, 0x6E, - 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x38, 0x70, - 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3A, 0x34, 0x32, 0x70, 0x78, 0x7D, 0x68, - 0x34, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, - 0x65, 0x3A, 0x32, 0x34, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, - 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, - 0x38, 0x70, 0x78, 0x7D, 0x68, 0x35, 0x7B, 0x66, 0x6F, 0x6E, - 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x30, 0x70, - 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3A, 0x33, 0x34, 0x70, 0x78, 0x7D, 0x2E, - 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, - 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, - 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x7D, 0x68, - 0x36, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x70, 0x78, 0x7D, 0x2E, - 0x61, 0x6C, 0x65, 0x72, 0x74, 0x7B, 0x74, 0x65, 0x78, 0x74, - 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x6C, 0x65, 0x66, - 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x70, 0x78, 0x3B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x73, 0x74, 0x79, 0x6C, - 0x65, 0x3A, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x3B, 0x62, 0x61, - 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x31, 0x46, 0x35, - 0x46, 0x45, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, - 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, - 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, - 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, - 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, - 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, 0x34, 0x70, - 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2C, 0x2E, 0x62, 0x74, - 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, - 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, - 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, - 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, - 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, - 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, - 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x3B, - 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, 0x6F, - 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, 0x75, - 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, 0x68, - 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, - 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, - 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, - 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, - 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, - 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, - 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, - 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, 0x65, - 0x72, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, - 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, 0x70, - 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x61, 0x6C, - 0x65, 0x72, 0x74, 0x2D, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x7B, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x44, 0x33, 0x32, - 0x46, 0x32, 0x46, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, - 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, - 0x3A, 0x23, 0x46, 0x46, 0x45, 0x42, 0x45, 0x45, 0x3B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x46, 0x34, 0x34, 0x33, 0x33, 0x36, 0x7D, - 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x77, 0x61, 0x72, - 0x6E, 0x69, 0x6E, 0x67, 0x7B, 0x62, 0x61, 0x63, 0x6B, 0x67, - 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x46, 0x46, 0x46, 0x38, 0x45, 0x31, 0x3B, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, 0x38, - 0x46, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, - 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, - 0x43, 0x31, 0x30, 0x37, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, - 0x74, 0x2D, 0x64, 0x6F, 0x6E, 0x65, 0x7B, 0x62, 0x61, 0x63, - 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, - 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x38, 0x46, 0x35, 0x45, - 0x39, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x33, - 0x38, 0x38, 0x45, 0x33, 0x43, 0x3B, 0x62, 0x6F, 0x72, 0x64, - 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, - 0x34, 0x43, 0x41, 0x46, 0x35, 0x30, 0x7D, 0x2E, 0x62, 0x74, - 0x6E, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, - 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, - 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, - 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x3B, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, - 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, - 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, - 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x6F, 0x72, 0x64, - 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, - 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x3A, 0x68, 0x6F, 0x76, - 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, - 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, - 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, - 0x73, 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x66, 0x6F, 0x6E, 0x74, - 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x34, 0x70, 0x78, - 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, - 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x21, 0x69, 0x6D, - 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x34, 0x70, 0x78, 0x20, - 0x31, 0x35, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, - 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, - 0x62, 0x69, 0x67, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, - 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x32, 0x70, 0x78, 0x21, 0x69, - 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x6C, - 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3A, 0x33, 0x34, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, - 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6E, 0x67, 0x3A, 0x38, 0x70, 0x78, 0x20, 0x33, 0x30, - 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, - 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, - 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x2C, 0x70, 0x72, 0x65, 0x7B, - 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x7D, 0x2E, 0x62, 0x74, - 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, - 0x31, 0x36, 0x70, 0x78, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, - 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, - 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, - 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, - 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, - 0x35, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, - 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x61, - 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x74, 0x72, 0x61, 0x6E, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, - 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, - 0x36, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, - 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, - 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, - 0x65, 0x3A, 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, - 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, - 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x3B, - 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, - 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, - 0x61, 0x30, 0x66, 0x36, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x2C, - 0x70, 0x72, 0x65, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, - 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, - 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, - 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, - 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x62, 0x61, 0x63, - 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, - 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x31, 0x66, 0x35, 0x66, - 0x61, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x7B, 0x63, 0x6F, 0x6C, - 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, - 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, - 0x65, 0x66, 0x74, 0x3A, 0x36, 0x70, 0x78, 0x3B, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x3A, 0x36, 0x70, 0x78, 0x7D, 0x70, 0x72, 0x65, 0x7B, - 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, - 0x6F, 0x63, 0x6B, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, - 0x67, 0x3A, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, - 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, - 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x2D, 0x78, - 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x7D, 0x2E, 0x66, 0x6F, 0x72, - 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6C, 0x65, 0x64, 0x5D, 0x2C, 0x2E, 0x66, - 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, - 0x74, 0x79, 0x70, 0x65, 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, - 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, - 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, - 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, - 0x74, 0x79, 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, - 0x72, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, - 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, - 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, - 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, - 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, 0x5D, 0x7B, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, - 0x34, 0x37, 0x35, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, - 0x67, 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x6F, 0x75, 0x74, - 0x6C, 0x69, 0x6E, 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, - 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, - 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, - 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, - 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, - 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, - 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, - 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, - 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, - 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, - 0x30, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, - 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, - 0x63, 0x6B, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, - 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, - 0x73, 0x3B, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, - 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, - 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, - 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, - 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, - 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, - 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, - 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, - 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, 0x2C, 0x2E, - 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, - 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, - 0x6C, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, - 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, - 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, - 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, - 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, - 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, - 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, - 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x3A, 0x66, 0x6F, 0x63, - 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, - 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x3A, - 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, - 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, - 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, - 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, - 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, - 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, - 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, - 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, - 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, - 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, - 0x61, 0x74, 0x65, 0x5D, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, - 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, - 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, - 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, - 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, - 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, - 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, - 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, - 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, - 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, - 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, - 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6C, 0x65, 0x64, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, - 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, - 0x69, 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, - 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x63, - 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x2D, - 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x65, 0x64, 0x3B, 0x62, 0x61, - 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x64, 0x31, 0x65, 0x31, - 0x65, 0x38, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, - 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6C, 0x65, 0x64, 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, - 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, - 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, - 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, - 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, - 0x70, 0x65, 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, - 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, - 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x62, 0x75, - 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x7B, 0x66, 0x6F, 0x6E, 0x74, - 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, - 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, - 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, - 0x3B, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, - 0x6F, 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, - 0x75, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, - 0x68, 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, - 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, - 0x65, 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, - 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, - 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, - 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, - 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, - 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, - 0x65, 0x72, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, - 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, - 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, - 0x61, 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, - 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, - 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, - 0x6B, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, - 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, - 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, - 0x2E, 0x33, 0x73, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, - 0x23, 0x66, 0x66, 0x66, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, - 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, - 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x6D, - 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, - 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, - 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, - 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x2C, 0x2E, - 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, 0x74, 0x61, - 0x72, 0x65, 0x61, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, - 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, - 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, - 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, - 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, - 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, - 0x6F, 0x63, 0x6B, 0x3B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, - 0x31, 0x30, 0x30, 0x25, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, - 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, - 0x2E, 0x33, 0x73, 0x3B, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, - 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, 0x2D, 0x73, 0x69, - 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, 0x72, 0x64, 0x65, - 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, 0x61, 0x72, 0x67, - 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, - 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, - 0x34, 0x37, 0x35, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, - 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, - 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, 0x3A, 0x68, - 0x6F, 0x76, 0x65, 0x72, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, - 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, - 0x65, 0x3D, 0x62, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x3A, - 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, - 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, - 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x66, - 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, - 0x7B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x36, - 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x30, - 0x70, 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, - 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, - 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, - 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, 0x78, 0x3B, 0x62, 0x61, - 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, - 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, - 0x63, 0x74, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, - 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, - 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, - 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x7B, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x30, 0x70, - 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, - 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, - 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x72, 0x65, 0x73, 0x69, 0x7A, - 0x65, 0x3A, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, - 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, - 0x74, 0x61, 0x72, 0x65, 0x61, 0x3A, 0x66, 0x6F, 0x63, 0x75, - 0x73, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, - 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, - 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, - 0x72, 0x6D, 0x2D, 0x61, 0x75, 0x74, 0x6F, 0x7B, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, - 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, - 0x67, 0x72, 0x69, 0x64, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, - 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x36, 0x30, 0x70, 0x78, - 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, - 0x66, 0x74, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x61, - 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x69, 0x6E, 0x2D, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, - 0x78, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, - 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, - 0x39, 0x36, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x2E, 0x67, 0x72, - 0x69, 0x64, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, - 0x34, 0x25, 0x7D, 0x7D, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2D, - 0x66, 0x6C, 0x75, 0x69, 0x64, 0x2C, 0x2E, 0x72, 0x6F, 0x77, - 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, - 0x25, 0x7D, 0x2E, 0x72, 0x6F, 0x77, 0x7B, 0x64, 0x69, 0x73, - 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, - 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x6D, 0x61, - 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, - 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, 0x72, 0x6F, - 0x77, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, 0x63, 0x6F, - 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x20, 0x22, 0x3B, - 0x63, 0x6C, 0x65, 0x61, 0x72, 0x3A, 0x62, 0x6F, 0x74, 0x68, - 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x74, - 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, - 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, - 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, - 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, 0x2C, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, 0x6F, - 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, - 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, 0x63, - 0x6F, 0x6C, 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, - 0x38, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x64, - 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, - 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, 0x61, - 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, 0x66, - 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, 0x3B, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x25, - 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x7B, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3A, 0x36, 0x2E, 0x33, 0x33, 0x25, 0x7D, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x31, 0x34, 0x2E, 0x36, 0x36, 0x25, 0x7D, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x33, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x32, 0x32, 0x2E, 0x39, 0x39, 0x25, 0x7D, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x33, 0x31, 0x2E, 0x33, 0x33, 0x25, 0x7D, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x33, 0x39, 0x2E, 0x36, 0x36, 0x25, 0x7D, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x34, 0x37, 0x2E, 0x39, 0x39, 0x25, 0x3B, - 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, - 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, - 0x3B, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, - 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, - 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, - 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, - 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x37, 0x7B, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x35, 0x36, 0x2E, 0x33, 0x33, - 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x7B, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x36, 0x34, 0x2E, 0x36, 0x36, - 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x37, 0x32, 0x2E, 0x39, 0x39, - 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x30, 0x7B, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x31, 0x2E, 0x33, - 0x33, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x31, - 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x39, 0x2E, - 0x36, 0x36, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, - 0x32, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x37, - 0x2E, 0x39, 0x39, 0x25, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, - 0x61, 0x20, 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x34, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, - 0x6C, 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, - 0x31, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, - 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, - 0x6F, 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, - 0x34, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, - 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, - 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x2C, - 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x39, 0x38, 0x25, 0x7D, 0x7D, 0x2E, 0x74, - 0x61, 0x62, 0x6C, 0x65, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, - 0x61, 0x79, 0x3A, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, - 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, - 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, - 0x3A, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, 0x3B, - 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, - 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, - 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, - 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, - 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, 0x32, 0x30, 0x70, - 0x78, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, - 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3A, 0x34, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, - 0x3A, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, - 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, - 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, - 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x36, 0x66, - 0x38, 0x66, 0x61, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, - 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, 0x7B, 0x62, 0x6F, 0x72, - 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, - 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, - 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x74, 0x6F, 0x70, - 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, - 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x31, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, + 0x2F, 0x2A, 0x2A, 0x0A, 0x20, 0x2A, 0x20, 0x73, 0x69, 0x69, + 0x6D, 0x70, 0x6C, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x69, 0x6E, + 0x69, 0x6D, 0x61, 0x6C, 0x20, 0x43, 0x53, 0x53, 0x20, 0x66, + 0x72, 0x61, 0x6D, 0x65, 0x77, 0x6F, 0x72, 0x6B, 0x20, 0x66, + 0x6F, 0x72, 0x20, 0x66, 0x6C, 0x61, 0x74, 0x20, 0x61, 0x6E, + 0x64, 0x20, 0x63, 0x6C, 0x65, 0x61, 0x6E, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x67, 0x6E, 0x73, 0x2E, 0x0A, 0x20, 0x2A, 0x20, + 0x40, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x76, + 0x31, 0x2E, 0x33, 0x2E, 0x37, 0x0A, 0x20, 0x2A, 0x20, 0x40, + 0x6C, 0x69, 0x6E, 0x6B, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3A, 0x2F, 0x2F, 0x73, 0x69, 0x69, 0x6D, 0x70, 0x6C, 0x65, + 0x2E, 0x6A, 0x75, 0x61, 0x6E, 0x65, 0x73, 0x2E, 0x78, 0x79, + 0x7A, 0x2F, 0x0A, 0x20, 0x2A, 0x20, 0x40, 0x6C, 0x69, 0x63, + 0x65, 0x6E, 0x73, 0x65, 0x20, 0x4D, 0x49, 0x54, 0x0A, 0x20, + 0x2A, 0x2F, 0x0A, 0x0A, 0x40, 0x69, 0x6D, 0x70, 0x6F, 0x72, + 0x74, 0x20, 0x75, 0x72, 0x6C, 0x28, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3A, 0x2F, 0x2F, 0x66, 0x6F, 0x6E, 0x74, 0x73, 0x2E, + 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x63, 0x73, 0x73, 0x3F, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3D, 0x4F, 0x70, 0x65, 0x6E, + 0x2B, 0x53, 0x61, 0x6E, 0x73, 0x3A, 0x34, 0x30, 0x30, 0x2C, + 0x33, 0x30, 0x30, 0x29, 0x3B, 0x6F, 0x6C, 0x2C, 0x6F, 0x6C, + 0x20, 0x6C, 0x69, 0x2C, 0x70, 0x2C, 0x75, 0x6C, 0x2C, 0x75, + 0x6C, 0x20, 0x6C, 0x69, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, + 0x78, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x70, + 0x72, 0x65, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x63, + 0x61, 0x6C, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2D, + 0x20, 0x33, 0x30, 0x70, 0x78, 0x29, 0x7D, 0x2E, 0x61, 0x6C, + 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, 0x7B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, + 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x5C, + 0x32, 0x37, 0x36, 0x34, 0x22, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x66, 0x34, 0x35, 0x36, 0x36, 0x30, 0x7D, + 0x62, 0x6F, 0x64, 0x79, 0x2C, 0x68, 0x31, 0x2C, 0x68, 0x32, + 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, 0x2C, 0x68, 0x35, 0x2C, + 0x68, 0x36, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x7D, 0x62, 0x6F, 0x64, + 0x79, 0x7B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x30, + 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, + 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, + 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, 0x61, 0x63, 0x6B, + 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, 0x2E, 0x61, + 0x6C, 0x65, 0x72, 0x74, 0x20, 0x61, 0x2C, 0x61, 0x7B, 0x74, + 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, + 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x34, 0x30, 0x30, 0x7D, 0x62, 0x6C, 0x6F, 0x63, + 0x6B, 0x71, 0x75, 0x6F, 0x74, 0x65, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x34, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, + 0x70, 0x78, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, + 0x78, 0x7D, 0x61, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x74, 0x72, + 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, + 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x7D, 0x61, 0x3A, 0x68, + 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x3A, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x6C, 0x69, 0x6E, 0x65, + 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, 0x6F, + 0x69, 0x6E, 0x74, 0x65, 0x72, 0x7D, 0x70, 0x7B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, + 0x6D, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x7D, 0x6F, 0x6C, 0x2C, 0x75, 0x6C, 0x7B, + 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, + 0x74, 0x6F, 0x6D, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, 0x3A, + 0x30, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x68, + 0x31, 0x2C, 0x68, 0x32, 0x2C, 0x68, 0x33, 0x2C, 0x68, 0x34, + 0x2C, 0x68, 0x35, 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, + 0x30, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, + 0x74, 0x6F, 0x70, 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, + 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, + 0x32, 0x30, 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x7D, 0x73, + 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, + 0x3A, 0x23, 0x36, 0x61, 0x37, 0x65, 0x39, 0x35, 0x3B, 0x66, + 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, + 0x34, 0x70, 0x78, 0x7D, 0x68, 0x31, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x33, 0x36, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x35, 0x30, 0x70, 0x78, 0x7D, 0x68, + 0x32, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x36, 0x70, 0x78, 0x7D, 0x68, 0x33, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x38, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x34, 0x32, 0x70, 0x78, 0x7D, 0x68, + 0x34, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x32, 0x34, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, + 0x38, 0x70, 0x78, 0x7D, 0x68, 0x35, 0x7B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x30, 0x70, + 0x78, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x33, 0x34, 0x70, 0x78, 0x7D, 0x2E, + 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2C, 0x2E, 0x62, 0x74, 0x6E, + 0x2C, 0x68, 0x36, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, + 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x7D, 0x68, + 0x36, 0x7B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x70, 0x78, 0x7D, 0x2E, + 0x61, 0x6C, 0x65, 0x72, 0x74, 0x7B, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x6C, 0x65, 0x66, + 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x70, 0x78, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x73, 0x74, 0x79, 0x6C, + 0x65, 0x3A, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x31, 0x46, 0x35, + 0x46, 0x45, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, + 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, + 0x34, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x36, 0x70, 0x78, 0x20, 0x31, 0x34, 0x70, + 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2C, 0x2E, 0x62, 0x74, + 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, + 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, + 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, + 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, 0x73, 0x3B, + 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, 0x6F, + 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, 0x75, + 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, 0x68, + 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, + 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, + 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, + 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, + 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, + 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, 0x65, + 0x72, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, + 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x35, 0x70, + 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x61, 0x6C, + 0x65, 0x72, 0x74, 0x2D, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x7B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x44, 0x33, 0x32, + 0x46, 0x32, 0x46, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, + 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, + 0x3A, 0x23, 0x46, 0x46, 0x45, 0x42, 0x45, 0x45, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x46, 0x34, 0x34, 0x33, 0x33, 0x36, 0x7D, + 0x2E, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2D, 0x77, 0x61, 0x72, + 0x6E, 0x69, 0x6E, 0x67, 0x7B, 0x62, 0x61, 0x63, 0x6B, 0x67, + 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x46, 0x46, 0x46, 0x38, 0x45, 0x31, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, 0x38, + 0x46, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x46, 0x46, + 0x43, 0x31, 0x30, 0x37, 0x7D, 0x2E, 0x61, 0x6C, 0x65, 0x72, + 0x74, 0x2D, 0x64, 0x6F, 0x6E, 0x65, 0x7B, 0x62, 0x61, 0x63, + 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, + 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x45, 0x38, 0x46, 0x35, 0x45, + 0x39, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x33, + 0x38, 0x38, 0x45, 0x33, 0x43, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, + 0x34, 0x43, 0x41, 0x46, 0x35, 0x30, 0x7D, 0x2E, 0x62, 0x74, + 0x6E, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, + 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, + 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, + 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, + 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, + 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, + 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, + 0x78, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x3A, 0x68, 0x6F, 0x76, + 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, + 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, + 0x73, 0x6D, 0x61, 0x6C, 0x6C, 0x7B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x34, 0x70, 0x78, + 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, + 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x32, 0x30, 0x70, 0x78, 0x21, 0x69, 0x6D, + 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x34, 0x70, 0x78, 0x20, + 0x31, 0x35, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, + 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, + 0x62, 0x69, 0x67, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, + 0x69, 0x7A, 0x65, 0x3A, 0x32, 0x32, 0x70, 0x78, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x6C, + 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x33, 0x34, 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, + 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x3A, 0x38, 0x70, 0x78, 0x20, 0x33, 0x30, + 0x70, 0x78, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, + 0x6E, 0x74, 0x7D, 0x2E, 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, + 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x2C, 0x70, 0x72, 0x65, 0x7B, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, 0x7D, 0x2E, 0x62, 0x74, + 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x7B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, + 0x31, 0x36, 0x70, 0x78, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, + 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, + 0x72, 0x74, 0x61, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, + 0x35, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x70, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, + 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, + 0x36, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, + 0x35, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, + 0x62, 0x74, 0x6E, 0x2D, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, + 0x65, 0x3A, 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, + 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x3B, + 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, + 0x61, 0x30, 0x66, 0x36, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x2C, + 0x70, 0x72, 0x65, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, + 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, + 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, + 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x62, 0x61, 0x63, + 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, + 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x31, 0x66, 0x35, 0x66, + 0x61, 0x7D, 0x63, 0x6F, 0x64, 0x65, 0x7B, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, + 0x65, 0x66, 0x74, 0x3A, 0x36, 0x70, 0x78, 0x3B, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x36, 0x70, 0x78, 0x7D, 0x70, 0x72, 0x65, 0x7B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, + 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x2D, 0x78, + 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6C, 0x65, 0x64, 0x5D, 0x2C, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, + 0x74, 0x79, 0x70, 0x65, 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, + 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, + 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, + 0x74, 0x79, 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, + 0x72, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, + 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, 0x5D, 0x7B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, + 0x34, 0x37, 0x35, 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, + 0x67, 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x6F, 0x75, 0x74, + 0x6C, 0x69, 0x6E, 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, + 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, + 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, + 0x74, 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, + 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, + 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, + 0x3A, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, + 0x30, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, + 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, + 0x63, 0x6B, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x69, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, 0x2E, 0x33, + 0x73, 0x3B, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, + 0x72, 0x64, 0x5D, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, 0x2C, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, + 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, + 0x6C, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, + 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, + 0x30, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x74, 0x65, 0x78, 0x74, 0x5D, 0x3A, 0x66, 0x6F, 0x63, + 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x5D, 0x3A, + 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x5D, + 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x2C, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, + 0x79, 0x70, 0x65, 0x3D, 0x65, 0x6D, 0x61, 0x69, 0x6C, 0x5D, + 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, + 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, + 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, + 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, + 0x61, 0x74, 0x65, 0x5D, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, + 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, + 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x64, 0x61, 0x74, 0x65, + 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, + 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6C, 0x65, 0x64, 0x5D, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, + 0x69, 0x64, 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, + 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x63, + 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x2D, + 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x65, 0x64, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x64, 0x31, 0x65, 0x31, + 0x65, 0x38, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, + 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6C, 0x65, 0x64, 0x5D, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, + 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, + 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, + 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, + 0x70, 0x65, 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, + 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x69, 0x6E, 0x70, + 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x62, 0x75, + 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x7B, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, + 0x70, 0x65, 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, + 0x31, 0x36, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, + 0x3B, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, 0x2D, 0x74, + 0x6F, 0x75, 0x63, 0x68, 0x2D, 0x63, 0x61, 0x6C, 0x6C, 0x6F, + 0x75, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6B, + 0x68, 0x74, 0x6D, 0x6C, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, + 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, + 0x65, 0x3B, 0x2D, 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, + 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, + 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, + 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, + 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x63, 0x65, 0x6E, 0x74, + 0x65, 0x72, 0x3B, 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, + 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x6E, + 0x6F, 0x6E, 0x65, 0x21, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, + 0x61, 0x6E, 0x74, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x32, 0x38, 0x70, 0x78, + 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, + 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, + 0x6B, 0x3B, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x3A, 0x70, + 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, + 0x2E, 0x33, 0x73, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x23, 0x66, 0x66, 0x66, 0x3B, 0x62, 0x61, 0x63, 0x6B, 0x67, + 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x30, 0x3B, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x35, 0x70, 0x78, 0x20, + 0x35, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x35, 0x70, 0x78, + 0x20, 0x32, 0x35, 0x70, 0x78, 0x7D, 0x2E, 0x66, 0x6F, 0x72, + 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x2C, 0x2E, + 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, 0x74, 0x61, + 0x72, 0x65, 0x61, 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x66, + 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x27, 0x4F, 0x70, 0x65, + 0x6E, 0x20, 0x53, 0x61, 0x6E, 0x73, 0x27, 0x3B, 0x66, 0x6F, + 0x6E, 0x74, 0x2D, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x31, 0x36, + 0x70, 0x78, 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, + 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, + 0x6F, 0x63, 0x6B, 0x3B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x31, 0x30, 0x30, 0x25, 0x3B, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x61, 0x6C, 0x6C, 0x20, + 0x2E, 0x33, 0x73, 0x3B, 0x6F, 0x75, 0x74, 0x6C, 0x69, 0x6E, + 0x65, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x78, 0x2D, 0x73, 0x69, + 0x7A, 0x69, 0x6E, 0x67, 0x3A, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x2D, 0x62, 0x6F, 0x78, 0x3B, 0x6D, 0x61, 0x72, 0x67, + 0x69, 0x6E, 0x3A, 0x30, 0x20, 0x35, 0x70, 0x78, 0x20, 0x32, + 0x30, 0x70, 0x78, 0x3B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, + 0x34, 0x37, 0x35, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, 0x65, + 0x3D, 0x73, 0x75, 0x62, 0x6D, 0x69, 0x74, 0x5D, 0x3A, 0x68, + 0x6F, 0x76, 0x65, 0x72, 0x2C, 0x2E, 0x66, 0x6F, 0x72, 0x6D, + 0x2D, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x5B, 0x74, 0x79, 0x70, + 0x65, 0x3D, 0x62, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x5D, 0x3A, + 0x68, 0x6F, 0x76, 0x65, 0x72, 0x7B, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, + 0x6E, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x6F, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x3A, 0x2E, 0x38, 0x7D, 0x2E, 0x66, + 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, + 0x7B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x36, + 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, + 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, + 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, 0x78, 0x3B, 0x62, 0x61, + 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x66, 0x66, 0x7D, + 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x73, 0x65, 0x6C, 0x65, + 0x63, 0x74, 0x3A, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x7B, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x39, 0x61, + 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, + 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x7B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x30, 0x70, + 0x78, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3A, 0x35, 0x70, 0x78, 0x3B, 0x72, 0x65, 0x73, 0x69, 0x7A, + 0x65, 0x3A, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, + 0x7D, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x2D, 0x74, 0x65, 0x78, + 0x74, 0x61, 0x72, 0x65, 0x61, 0x3A, 0x66, 0x6F, 0x63, 0x75, + 0x73, 0x7B, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x31, + 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, + 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x7D, 0x2E, 0x66, 0x6F, + 0x72, 0x6D, 0x2D, 0x61, 0x75, 0x74, 0x6F, 0x7B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x21, 0x69, + 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x61, 0x6E, 0x74, 0x7D, 0x2E, + 0x67, 0x72, 0x69, 0x64, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x36, 0x30, 0x70, 0x78, + 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, + 0x66, 0x74, 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x61, 0x75, 0x74, 0x6F, 0x3B, 0x6D, 0x69, 0x6E, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x34, 0x30, 0x70, + 0x78, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, + 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, + 0x39, 0x36, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x2E, 0x67, 0x72, + 0x69, 0x64, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, + 0x34, 0x25, 0x7D, 0x7D, 0x2E, 0x67, 0x72, 0x69, 0x64, 0x2D, + 0x66, 0x6C, 0x75, 0x69, 0x64, 0x2C, 0x2E, 0x72, 0x6F, 0x77, + 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, + 0x25, 0x7D, 0x2E, 0x72, 0x6F, 0x77, 0x7B, 0x64, 0x69, 0x73, + 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, + 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x6D, 0x61, + 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, + 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, 0x72, 0x6F, + 0x77, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7B, 0x63, 0x6F, + 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x3A, 0x22, 0x20, 0x22, 0x3B, + 0x63, 0x6C, 0x65, 0x61, 0x72, 0x3A, 0x62, 0x6F, 0x74, 0x68, + 0x3B, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x74, + 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x30, 0x7D, 0x2E, + 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, + 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, + 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, 0x2C, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, 0x6F, + 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, + 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, 0x63, + 0x6F, 0x6C, 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x38, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x64, + 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, 0x6C, + 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, 0x61, + 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, 0x66, + 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, 0x3B, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x25, + 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x7B, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3A, 0x36, 0x2E, 0x33, 0x33, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x31, 0x34, 0x2E, 0x36, 0x36, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x33, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x32, 0x32, 0x2E, 0x39, 0x39, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x34, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x33, 0x31, 0x2E, 0x33, 0x33, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x33, 0x39, 0x2E, 0x36, 0x36, 0x25, 0x7D, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x34, 0x37, 0x2E, 0x39, 0x39, 0x25, 0x3B, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x69, 0x6E, + 0x6C, 0x69, 0x6E, 0x65, 0x2D, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6C, 0x2D, + 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x74, 0x6F, 0x70, 0x3B, + 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x6C, 0x65, 0x66, 0x74, + 0x3B, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x31, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x37, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x35, 0x36, 0x2E, 0x33, 0x33, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x36, 0x34, 0x2E, 0x36, 0x36, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x37, 0x32, 0x2E, 0x39, 0x39, + 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x30, 0x7B, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x31, 0x2E, 0x33, + 0x33, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x31, + 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x38, 0x39, 0x2E, + 0x36, 0x36, 0x25, 0x7D, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, + 0x32, 0x7B, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x39, 0x37, + 0x2E, 0x39, 0x39, 0x25, 0x7D, 0x40, 0x6D, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x34, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x2C, 0x2E, 0x63, 0x6F, + 0x6C, 0x2D, 0x31, 0x30, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x31, 0x31, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x31, 0x32, + 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x32, 0x2C, 0x2E, 0x63, + 0x6F, 0x6C, 0x2D, 0x33, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, + 0x34, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x35, 0x2C, 0x2E, + 0x63, 0x6F, 0x6C, 0x2D, 0x36, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, + 0x2D, 0x37, 0x2C, 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x38, 0x2C, + 0x2E, 0x63, 0x6F, 0x6C, 0x2D, 0x39, 0x7B, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x39, 0x38, 0x25, 0x7D, 0x7D, 0x2E, 0x74, + 0x61, 0x62, 0x6C, 0x65, 0x7B, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x31, 0x30, 0x30, 0x25, 0x3B, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x30, 0x3B, 0x62, 0x6F, 0x72, 0x64, 0x65, + 0x72, 0x2D, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, + 0x3A, 0x63, 0x6F, 0x6C, 0x6C, 0x61, 0x70, 0x73, 0x65, 0x3B, + 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3A, 0x33, 0x30, 0x30, 0x3B, 0x63, 0x6F, 0x6C, 0x6F, + 0x72, 0x3A, 0x23, 0x35, 0x32, 0x36, 0x34, 0x37, 0x35, 0x3B, + 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, 0x74, 0x6F, 0x70, + 0x3A, 0x30, 0x3B, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, 0x2D, + 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, 0x32, 0x30, 0x70, + 0x78, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, + 0x7B, 0x66, 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3A, 0x34, 0x30, 0x30, 0x3B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x62, + 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2D, + 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x23, 0x66, 0x36, 0x66, + 0x38, 0x66, 0x61, 0x7D, 0x2E, 0x74, 0x61, 0x62, 0x6C, 0x65, + 0x20, 0x74, 0x72, 0x20, 0x74, 0x64, 0x7B, 0x62, 0x6F, 0x72, + 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x64, 0x31, 0x65, 0x31, 0x65, 0x38, 0x3B, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x74, 0x6F, 0x70, + 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x31, 0x30, 0x70, 0x78, 0x3B, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x31, 0x30, 0x70, 0x78, 0x7D, }; static const unsigned char data_css_style_css[] = { /* /css/style.css */ 0x2F, 0x63, 0x73, 0x73, 0x2F, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x73, 0x73, 0, - 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, - 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, - 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, - 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, - 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, - 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, - 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, - 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, - 0x7B, 0x0A, 0x09, 0x6C, 0x69, 0x73, 0x74, 0x2D, 0x73, 0x74, - 0x79, 0x6C, 0x65, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, - 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x09, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, - 0x3A, 0x20, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x30, 0x3B, - 0x0A, 0x09, 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, - 0x3A, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6E, 0x3B, 0x0A, - 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, - 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, - 0x33, 0x33, 0x33, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, - 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, - 0x7B, 0x0A, 0x09, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x20, - 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, - 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, - 0x20, 0x61, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, - 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, - 0x3B, 0x0A, 0x09, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, - 0x77, 0x68, 0x69, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x74, 0x65, - 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, - 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x0A, 0x09, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x31, 0x34, - 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, - 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, - 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, - 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, 0x6E, 0x61, - 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x61, 0x3A, - 0x68, 0x6F, 0x76, 0x65, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x28, - 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x29, 0x20, 0x7B, - 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, - 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, - 0x23, 0x31, 0x31, 0x31, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, - 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, - 0x20, 0x61, 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x7B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, - 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, - 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x0A, - 0x7D, 0x0A, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x73, - 0x63, 0x72, 0x65, 0x65, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, - 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3A, 0x20, 0x36, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x0A, - 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, - 0x20, 0x6C, 0x69, 0x2E, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2C, - 0x20, 0x0A, 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, - 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x7B, 0x66, 0x6C, 0x6F, - 0x61, 0x74, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x7D, - 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x70, - 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x72, - 0x65, 0x6C, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3B, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x39, 0x30, 0x70, 0x78, - 0x3B, 0x0A, 0x09, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, - 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, - 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x20, 0x2D, - 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, - 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, - 0x3B, 0x20, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, 0x72, - 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x20, 0x6E, - 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, - 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, - 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x20, 0x7B, - 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, - 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, - 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x2D, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x7B, 0x0A, - 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, - 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x6F, 0x76, 0x65, - 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x3A, 0x20, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6E, 0x3B, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6F, - 0x72, 0x3A, 0x20, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, - 0x3B, 0x0A, 0x09, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, - 0x20, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, - 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, - 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x3A, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, - 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, - 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, - 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, - 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x32, 0x30, - 0x30, 0x25, 0x3B, 0x20, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, - 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, 0x2D, 0x31, 0x30, - 0x30, 0x25, 0x3B, 0x0A, 0x09, 0x74, 0x72, 0x61, 0x6E, 0x73, - 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, - 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, - 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, - 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x2C, 0x20, - 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x3A, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, - 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, - 0x63, 0x6B, 0x3B, 0x20, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, - 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3A, 0x20, 0x35, 0x30, 0x25, 0x3B, 0x20, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, 0x70, - 0x78, 0x3B, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, - 0x3A, 0x20, 0x30, 0x3B, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x2D, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, - 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x6E, 0x74, 0x2D, - 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, - 0x3B, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x3B, 0x20, 0x66, 0x6F, 0x6E, 0x74, - 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x20, 0x54, - 0x72, 0x65, 0x62, 0x75, 0x63, 0x68, 0x65, 0x74, 0x2C, 0x20, - 0x41, 0x72, 0x69, 0x61, 0x6C, 0x2C, 0x20, 0x73, 0x61, 0x6E, - 0x73, 0x2D, 0x73, 0x65, 0x72, 0x69, 0x66, 0x3B, 0x20, 0x66, - 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3A, 0x20, 0x62, 0x6F, 0x6C, 0x64, 0x3B, 0x0A, 0x09, 0x62, - 0x6F, 0x78, 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, - 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, - 0x78, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, - 0x6E, 0x65, 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, - 0x20, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, - 0x74, 0x3A, 0x20, 0x22, 0x4F, 0x4E, 0x22, 0x3B, 0x0A, 0x09, - 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, - 0x3A, 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x09, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, - 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x0A, 0x09, - 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, - 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x45, - 0x31, 0x46, 0x35, 0x46, 0x45, 0x3B, 0x20, 0x63, 0x6F, 0x6C, - 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, - 0x34, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, - 0x6E, 0x65, 0x72, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, - 0x3A, 0x20, 0x22, 0x4F, 0x46, 0x46, 0x22, 0x3B, 0x0A, 0x09, - 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, - 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, - 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, - 0x23, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x3B, 0x20, 0x63, - 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x39, 0x39, 0x39, - 0x39, 0x39, 0x39, 0x3B, 0x0A, 0x09, 0x74, 0x65, 0x78, 0x74, - 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, - 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, - 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, - 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3A, 0x20, 0x31, 0x38, 0x70, 0x78, 0x3B, 0x20, 0x6D, - 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x20, 0x36, 0x70, 0x78, - 0x3B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, - 0x75, 0x6E, 0x64, 0x3A, 0x20, 0x23, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x3B, 0x0A, 0x09, 0x70, 0x6F, 0x73, 0x69, 0x74, - 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x61, 0x62, 0x73, 0x6F, 0x6C, - 0x75, 0x74, 0x65, 0x3B, 0x20, 0x74, 0x6F, 0x70, 0x3A, 0x20, - 0x30, 0x3B, 0x20, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, - 0x20, 0x30, 0x3B, 0x0A, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3A, 0x20, 0x35, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x62, - 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x20, 0x32, 0x70, 0x78, - 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x33, - 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, 0x62, 0x6F, 0x72, 0x64, - 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, - 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x74, 0x72, - 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, - 0x61, 0x6C, 0x6C, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, - 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, - 0x20, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, 0x65, - 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, 0x63, - 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, - 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x6C, - 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, - 0x6E, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x6D, 0x61, 0x72, - 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, - 0x30, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, - 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, - 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, - 0x63, 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, - 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, - 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, - 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x73, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x30, 0x70, 0x78, 0x3B, + 0x48, 0x54, 0x54, 0x50, 0x2F, 0x31, 0x2E, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x20, 0x4F, 0x4B, 0x0D, 0x0A, 0x6C, 0x77, 0x49, + 0x50, 0x2F, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x20, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x61, 0x76, 0x61, + 0x6E, 0x6E, 0x61, 0x68, 0x2E, 0x6E, 0x6F, 0x6E, 0x67, 0x6E, + 0x75, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x70, 0x72, 0x6F, 0x6A, + 0x65, 0x63, 0x74, 0x73, 0x2F, 0x6C, 0x77, 0x69, 0x70, 0x29, + 0x0D, 0x0A, 0x43, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2D, + 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2F, 0x63, 0x73, 0x73, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, + 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, + 0x7B, 0x0A, 0x09, 0x6C, 0x69, 0x73, 0x74, 0x2D, 0x73, 0x74, + 0x79, 0x6C, 0x65, 0x2D, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, + 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x09, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, + 0x3A, 0x20, 0x33, 0x32, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x30, 0x3B, + 0x0A, 0x09, 0x6F, 0x76, 0x65, 0x72, 0x66, 0x6C, 0x6F, 0x77, + 0x3A, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6E, 0x3B, 0x0A, + 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, + 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, + 0x33, 0x33, 0x33, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, + 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, + 0x7B, 0x0A, 0x09, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, 0x20, + 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, + 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, + 0x20, 0x61, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, + 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, + 0x3B, 0x0A, 0x09, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x74, 0x65, + 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, + 0x63, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x31, 0x34, + 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, + 0x74, 0x65, 0x78, 0x74, 0x2D, 0x64, 0x65, 0x63, 0x6F, 0x72, + 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, + 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, 0x2E, 0x6E, 0x61, + 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x61, 0x3A, + 0x68, 0x6F, 0x76, 0x65, 0x72, 0x3A, 0x6E, 0x6F, 0x74, 0x28, + 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x29, 0x20, 0x7B, + 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, + 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x23, 0x31, 0x31, 0x31, 0x3B, 0x0A, 0x7D, 0x0A, 0x75, 0x6C, + 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, 0x20, 0x6C, 0x69, + 0x20, 0x61, 0x2E, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x7B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, + 0x75, 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, + 0x20, 0x23, 0x30, 0x39, 0x61, 0x30, 0x66, 0x36, 0x3B, 0x0A, + 0x7D, 0x0A, 0x40, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x73, + 0x63, 0x72, 0x65, 0x65, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, + 0x28, 0x6D, 0x61, 0x78, 0x2D, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3A, 0x20, 0x36, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7B, 0x0A, + 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, 0x61, 0x72, + 0x20, 0x6C, 0x69, 0x2E, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2C, + 0x20, 0x0A, 0x09, 0x75, 0x6C, 0x2E, 0x6E, 0x61, 0x76, 0x62, + 0x61, 0x72, 0x20, 0x6C, 0x69, 0x20, 0x7B, 0x66, 0x6C, 0x6F, + 0x61, 0x74, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x7D, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x70, + 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x72, + 0x65, 0x6C, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3B, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x39, 0x30, 0x70, 0x78, + 0x3B, 0x0A, 0x09, 0x2D, 0x77, 0x65, 0x62, 0x6B, 0x69, 0x74, + 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, 0x65, 0x6C, 0x65, + 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x20, 0x2D, + 0x6D, 0x6F, 0x7A, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2D, 0x73, + 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x6E, 0x6F, 0x6E, 0x65, + 0x3B, 0x20, 0x2D, 0x6D, 0x73, 0x2D, 0x75, 0x73, 0x65, 0x72, + 0x2D, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x3A, 0x20, 0x6E, + 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x63, 0x68, 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x20, 0x7B, + 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, + 0x20, 0x6E, 0x6F, 0x6E, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, + 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x2D, 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x7B, 0x0A, + 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, + 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x6F, 0x76, 0x65, + 0x72, 0x66, 0x6C, 0x6F, 0x77, 0x3A, 0x20, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6E, 0x3B, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6F, + 0x72, 0x3A, 0x20, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, + 0x3B, 0x0A, 0x09, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, + 0x20, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, + 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, + 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3A, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6C, + 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x3B, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3A, 0x20, 0x32, 0x30, + 0x30, 0x25, 0x3B, 0x20, 0x6D, 0x61, 0x72, 0x67, 0x69, 0x6E, + 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, 0x2D, 0x31, 0x30, + 0x30, 0x25, 0x3B, 0x0A, 0x09, 0x74, 0x72, 0x61, 0x6E, 0x73, + 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, + 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, + 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, + 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, 0x2C, 0x20, + 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x2D, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x3A, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x64, 0x69, + 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, 0x6C, 0x6F, + 0x63, 0x6B, 0x3B, 0x20, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x3A, + 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3A, 0x20, 0x35, 0x30, 0x25, 0x3B, 0x20, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, 0x70, + 0x78, 0x3B, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, + 0x3A, 0x20, 0x30, 0x3B, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x2D, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x33, 0x30, + 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x6E, 0x74, 0x2D, + 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, + 0x3B, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x3B, 0x20, 0x66, 0x6F, 0x6E, 0x74, + 0x2D, 0x66, 0x61, 0x6D, 0x69, 0x6C, 0x79, 0x3A, 0x20, 0x54, + 0x72, 0x65, 0x62, 0x75, 0x63, 0x68, 0x65, 0x74, 0x2C, 0x20, + 0x41, 0x72, 0x69, 0x61, 0x6C, 0x2C, 0x20, 0x73, 0x61, 0x6E, + 0x73, 0x2D, 0x73, 0x65, 0x72, 0x69, 0x66, 0x3B, 0x20, 0x66, + 0x6F, 0x6E, 0x74, 0x2D, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x20, 0x62, 0x6F, 0x6C, 0x64, 0x3B, 0x0A, 0x09, 0x62, + 0x6F, 0x78, 0x2D, 0x73, 0x69, 0x7A, 0x69, 0x6E, 0x67, 0x3A, + 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x2D, 0x62, 0x6F, + 0x78, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x3A, 0x62, 0x65, 0x66, 0x6F, 0x72, 0x65, + 0x20, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, + 0x74, 0x3A, 0x20, 0x22, 0x4F, 0x4E, 0x22, 0x3B, 0x0A, 0x09, + 0x74, 0x65, 0x78, 0x74, 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, + 0x3A, 0x20, 0x6C, 0x65, 0x66, 0x74, 0x3B, 0x0A, 0x09, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x6C, 0x65, 0x66, + 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, 0x0A, 0x09, + 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, + 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x45, + 0x31, 0x46, 0x35, 0x46, 0x45, 0x3B, 0x20, 0x63, 0x6F, 0x6C, + 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x30, 0x33, 0x41, 0x39, 0x46, + 0x34, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x3A, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, + 0x3A, 0x20, 0x22, 0x4F, 0x46, 0x46, 0x22, 0x3B, 0x0A, 0x09, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x2D, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3A, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3B, + 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, 0x75, + 0x6E, 0x64, 0x2D, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, + 0x23, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x3B, 0x20, 0x63, + 0x6F, 0x6C, 0x6F, 0x72, 0x3A, 0x20, 0x23, 0x39, 0x39, 0x39, + 0x39, 0x39, 0x39, 0x3B, 0x0A, 0x09, 0x74, 0x65, 0x78, 0x74, + 0x2D, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x3A, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, + 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x3A, 0x20, 0x62, + 0x6C, 0x6F, 0x63, 0x6B, 0x3B, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3A, 0x20, 0x31, 0x38, 0x70, 0x78, 0x3B, 0x20, 0x6D, + 0x61, 0x72, 0x67, 0x69, 0x6E, 0x3A, 0x20, 0x36, 0x70, 0x78, + 0x3B, 0x0A, 0x09, 0x62, 0x61, 0x63, 0x6B, 0x67, 0x72, 0x6F, + 0x75, 0x6E, 0x64, 0x3A, 0x20, 0x23, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x3B, 0x0A, 0x09, 0x70, 0x6F, 0x73, 0x69, 0x74, + 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x61, 0x62, 0x73, 0x6F, 0x6C, + 0x75, 0x74, 0x65, 0x3B, 0x20, 0x74, 0x6F, 0x70, 0x3A, 0x20, + 0x30, 0x3B, 0x20, 0x62, 0x6F, 0x74, 0x74, 0x6F, 0x6D, 0x3A, + 0x20, 0x30, 0x3B, 0x0A, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3A, 0x20, 0x35, 0x36, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x62, + 0x6F, 0x72, 0x64, 0x65, 0x72, 0x3A, 0x20, 0x32, 0x70, 0x78, + 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x20, 0x23, 0x30, 0x33, + 0x41, 0x39, 0x46, 0x34, 0x3B, 0x20, 0x62, 0x6F, 0x72, 0x64, + 0x65, 0x72, 0x2D, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3A, + 0x20, 0x32, 0x30, 0x70, 0x78, 0x3B, 0x0A, 0x09, 0x74, 0x72, + 0x61, 0x6E, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x20, + 0x61, 0x6C, 0x6C, 0x20, 0x30, 0x2E, 0x33, 0x73, 0x20, 0x65, + 0x61, 0x73, 0x65, 0x2D, 0x69, 0x6E, 0x20, 0x30, 0x73, 0x3B, + 0x20, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, 0x66, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, 0x65, + 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, 0x63, + 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, + 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x6C, + 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x69, 0x6E, + 0x6E, 0x65, 0x72, 0x20, 0x7B, 0x0A, 0x09, 0x6D, 0x61, 0x72, + 0x67, 0x69, 0x6E, 0x2D, 0x6C, 0x65, 0x66, 0x74, 0x3A, 0x20, + 0x30, 0x3B, 0x0A, 0x7D, 0x0A, 0x2E, 0x6F, 0x6E, 0x6F, 0x66, + 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x63, 0x68, + 0x65, 0x63, 0x6B, 0x62, 0x6F, 0x78, 0x3A, 0x63, 0x68, 0x65, + 0x63, 0x6B, 0x65, 0x64, 0x20, 0x2B, 0x20, 0x2E, 0x6F, 0x6E, + 0x6F, 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, + 0x6C, 0x61, 0x62, 0x65, 0x6C, 0x20, 0x2E, 0x6F, 0x6E, 0x6F, + 0x66, 0x66, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x2D, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x7B, 0x0A, 0x09, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3A, 0x20, 0x30, 0x70, 0x78, 0x3B, 0x20, 0x0A, 0x7D, }; const struct fsdata_file file_index_ssi[] = {{ @@ -1328,15 +3193,29 @@ sizeof(data_404_html) - 10, 1 }}; -const struct fsdata_file file_about_html[] = {{ +const struct fsdata_file file_websockets_html[] = {{ file_404_html, +data_websockets_html, data_websockets_html + 17, +sizeof(data_websockets_html) - 17, +1 +}}; + +const struct fsdata_file file_about_html[] = {{ +file_websockets_html, data_about_html, data_about_html + 12, sizeof(data_about_html) - 12, 1 }}; -const struct fsdata_file file_img_favicon_png[] = {{ +const struct fsdata_file file_js_smoothie_min_js[] = {{ file_about_html, +data_js_smoothie_min_js, data_js_smoothie_min_js + 20, +sizeof(data_js_smoothie_min_js) - 20, +1 +}}; + +const struct fsdata_file file_img_favicon_png[] = {{ +file_js_smoothie_min_js, data_img_favicon_png, data_img_favicon_png + 17, sizeof(data_img_favicon_png) - 17, 1 @@ -1358,4 +3237,4 @@ sizeof(data_css_style_css) - 15, #define FS_ROOT file_css_style_css -#define FS_NUMFILES 6 +#define FS_NUMFILES 8 diff --git a/examples/http_server/http_server.c b/examples/http_server/http_server.c index fd1937c..985732e 100644 --- a/examples/http_server/http_server.c +++ b/examples/http_server/http_server.c @@ -21,6 +21,28 @@ enum { SSI_LED_STATE }; +int32_t ssi_handler(int32_t iIndex, char *pcInsert, int32_t iInsertLen) +{ + switch (iIndex) { + case SSI_UPTIME: + snprintf(pcInsert, iInsertLen, "%d", + xTaskGetTickCount() * portTICK_PERIOD_MS / 1000); + break; + case SSI_FREE_HEAP: + snprintf(pcInsert, iInsertLen, "%d", (int) xPortGetFreeHeapSize()); + break; + case SSI_LED_STATE: + snprintf(pcInsert, iInsertLen, (GPIO.OUT & BIT(LED_PIN)) ? "Off" : "On"); + break; + default: + snprintf(pcInsert, iInsertLen, "N/A"); + break; + } + + /* Tell the server how many characters to insert */ + return (strlen(pcInsert)); +} + char *gpio_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) { for (int i = 0; i < iNumParams; i++) { @@ -46,26 +68,89 @@ char *about_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcVal return "/about.html"; } -int32_t ssi_handler(int32_t iIndex, char *pcInsert, int32_t iInsertLen) +char *websocket_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) { - switch (iIndex) { - case SSI_UPTIME: - snprintf(pcInsert, iInsertLen, "%d", - xTaskGetTickCount() * portTICK_PERIOD_MS / 1000); + return "/websockets.html"; +} + +void websocket_task(void *pvParameter) +{ + struct tcp_pcb *pcb = (struct tcp_pcb *) pvParameter; + + for (;;) { + if (pcb == NULL || pcb->state != ESTABLISHED) { + printf("Connection closed, deleting task\n"); break; - case SSI_FREE_HEAP: - snprintf(pcInsert, iInsertLen, "%d", (int) xPortGetFreeHeapSize()); + } + + int uptime = xTaskGetTickCount() * portTICK_PERIOD_MS / 1000; + int heap = (int) xPortGetFreeHeapSize(); + int led = !gpio_read(LED_PIN); + + /* Generate response in JSON format */ + char response[64]; + int len = snprintf(response, sizeof (response), + "{\"uptime\" : \"%d\"," + " \"heap\" : \"%d\"," + " \"led\" : \"%d\"}", uptime, heap, led); + if (len < sizeof (response)) + websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE); + + vTaskDelay(2000 / portTICK_PERIOD_MS); + } + + vTaskDelete(NULL); +} + +/** + * This function is called when websocket frame is received. + * + * Note: this function is executed on TCP thread and should return as soon + * as possible. + */ +void websocket_cb(struct tcp_pcb *pcb, uint8_t *data, u16_t data_len, uint8_t mode) +{ + printf("[websocket_callback]:\n%.*s\n", (int) data_len, (char*) data); + + uint8_t response[2]; + uint16_t val; + + switch (data[0]) { + case 'A': // ADC + /* This should be done on a separate thread in 'real' applications */ + val = sdk_system_adc_read(); break; - case SSI_LED_STATE: - snprintf(pcInsert, iInsertLen, (GPIO.OUT & BIT(LED_PIN)) ? "Off" : "On"); + case 'D': // Disable LED + gpio_write(LED_PIN, true); + val = 0xDEAD; + break; + case 'E': // Enable LED + gpio_write(LED_PIN, false); + val = 0xBEEF; break; default: - snprintf(pcInsert, iInsertLen, "N/A"); + printf("Unknown command\n"); + val = 0; break; } - /* Tell the server how many characters to insert */ - return (strlen(pcInsert)); + response[1] = (uint8_t) val; + response[0] = val >> 8; + + websocket_write(pcb, response, 2, WS_BIN_MODE); +} + +/** + * This function is called when new websocket is open and + * creates a new websocket_task if requested URI equals '/stream'. + */ +void websocket_open_cb(struct tcp_pcb *pcb, const char *uri) +{ + printf("WS URI: %s\n", uri); + if (!strcmp(uri, "/stream")) { + printf("request for streaming\n"); + xTaskCreate(&websocket_task, "websocket_task", 256, (void *) pcb, 2, NULL); + } } void httpd_task(void *pvParameters) @@ -73,6 +158,7 @@ void httpd_task(void *pvParameters) tCGI pCGIs[] = { {"/gpio", (tCGIHandler) gpio_cgi_handler}, {"/about", (tCGIHandler) about_cgi_handler}, + {"/websockets", (tCGIHandler) websocket_cgi_handler}, }; const char *pcConfigSSITags[] = { @@ -85,6 +171,8 @@ void httpd_task(void *pvParameters) http_set_cgi_handlers(pCGIs, sizeof (pCGIs) / sizeof (pCGIs[0])); http_set_ssi_handler((tSSIHandler) ssi_handler, pcConfigSSITags, sizeof (pcConfigSSITags) / sizeof (pcConfigSSITags[0])); + websocket_register_callbacks((tWsOpenHandler) websocket_open_cb, + (tWsHandler) websocket_cb); httpd_init(); for (;;); @@ -110,5 +198,5 @@ void user_init(void) gpio_write(LED_PIN, true); /* initialize tasks */ - xTaskCreate(&httpd_task, "HTTP Daemon", 1024, NULL, 2, NULL); + xTaskCreate(&httpd_task, "HTTP Daemon", 128, NULL, 2, NULL); } diff --git a/extras/httpd/fs.c b/extras/httpd/fs.c index 2cb7575..6faa628 100644 --- a/extras/httpd/fs.c +++ b/extras/httpd/fs.c @@ -1,8 +1,8 @@ /* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, @@ -11,21 +11,21 @@ * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ diff --git a/extras/httpd/fs.h b/extras/httpd/fs.h index c021e2f..e8286a7 100644 --- a/extras/httpd/fs.h +++ b/extras/httpd/fs.h @@ -1,8 +1,8 @@ /* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, @@ -11,21 +11,21 @@ * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ diff --git a/extras/httpd/fsdata.h b/extras/httpd/fsdata.h index 6f6c557..de1d259 100644 --- a/extras/httpd/fsdata.h +++ b/extras/httpd/fsdata.h @@ -1,8 +1,8 @@ /* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, @@ -11,21 +11,21 @@ * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ diff --git a/extras/httpd/httpd.c b/extras/httpd/httpd.c index 04e4bc5..5503525 100644 --- a/extras/httpd/httpd.c +++ b/extras/httpd/httpd.c @@ -268,6 +268,29 @@ #define HTTP_ALLOC_HTTP_STATE() (struct http_state *)mem_malloc(sizeof(struct http_state)) #endif /* HTTPD_USE_MEM_POOL */ +#include +#include +#include "strcasestr.h" + +static const char WS_HEADER[] = "Upgrade: websocket\r\n"; +static const char WS_GUID[] = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; +static const char WS_RSP[] = "HTTP/1.1 101 Switching Protocols\r\n" \ + "Upgrade: websocket\r\n" \ + "Connection: Upgrade\r\n" \ + "Sec-WebSocket-Accept: "; + +/* Response buffer length (30 = base64 encoded key max length) */ +#define WS_BUF_LEN (sizeof(WS_RSP) + sizeof(CRLF CRLF) + 30 - 2) + +/* WebSocket timeout: X*(HTTPD_POLL_INTERVAL), default is 10*4*500ms = 20s */ +#ifndef WS_TIMEOUT +#define WS_TIMEOUT 10 +#endif + +/* Callback functions */ +static tWsHandler websocket_cb = NULL; +static tWsOpenHandler websocket_open_cb = NULL; + typedef struct { const char *name; @@ -341,6 +364,8 @@ struct http_state { struct fs_file *handle; char *file; /* Pointer to first unsent byte in buf. */ + u8_t is_websocket; + struct tcp_pcb *pcb; #if LWIP_HTTPD_SUPPORT_REQUESTLIST struct pbuf *req; @@ -386,6 +411,9 @@ static err_t http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs static err_t http_find_file(struct http_state *hs, const char *uri, int is_09); static err_t http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri, u8_t tag_check); static err_t http_poll(void *arg, struct tcp_pcb *pcb); + +static err_t websocket_send_close(struct tcp_pcb *pcb); + #if LWIP_HTTPD_FS_ASYNC_READ static void http_continue(void *connection); #endif /* LWIP_HTTPD_FS_ASYNC_READ */ @@ -666,6 +694,17 @@ http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs, u8_t abort_ } #endif /* LWIP_HTTPD_SUPPORT_POST*/ + if (hs != NULL) { + if (hs->is_websocket) + websocket_send_close(pcb); + + if (hs->req != NULL) { + /* this should not happen */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Freeing buffer (malformed request?)\n")); + pbuf_free(hs->req); + hs->req = NULL; + } + } tcp_arg(pcb, NULL); tcp_recv(pcb, NULL); @@ -699,7 +738,7 @@ http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs, u8_t abort_ static err_t http_close_conn(struct tcp_pcb *pcb, struct http_state *hs) { - return http_close_or_abort_conn(pcb, hs, 0); + return http_close_or_abort_conn(pcb, hs, 0); } /** End of file: either close the connection (Connection: close) or @@ -716,7 +755,11 @@ http_eof(struct tcp_pcb *pcb, struct http_state *hs) hs->keepalive = 1; } else #endif /* LWIP_HTTPD_SUPPORT_11_KEEPALIVE */ - { + if (hs->is_websocket) { + http_state_eof(hs); + http_state_init(hs); + hs->is_websocket = 1; + } else { http_close_conn(pcb, hs); } } @@ -1915,6 +1958,60 @@ http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb } } + /* Parse WebSocket request */ + hs->is_websocket = 0; + unsigned char *retval = NULL; + if (strncasestr(data, WS_HEADER, data_len)) { + LWIP_DEBUGF(HTTPD_DEBUG, ("WebSocket opening handshake\n")); + char *key_start = strncasestr(data, "Sec-WebSocket-Key: ", data_len); + if (key_start) { + key_start += 19; + char *key_end = strncasestr(key_start, "\r\n", data_len); + if (key_end) { + char key[64]; + int len = sizeof (char) * (key_end - key_start); + if ((len + sizeof (WS_GUID) < sizeof (key)) && (len > 0)) { + /* Allocate response buffer */ + retval = mem_malloc(WS_BUF_LEN); + if (retval == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Out of memory\n")); + return ERR_MEM; + } + unsigned char *retval_ptr; + retval_ptr = memcpy(retval, WS_RSP, sizeof(WS_RSP)); + retval_ptr += sizeof(WS_RSP) - 1; + + /* Concatenate key */ + memcpy(key, key_start, len); + strlcpy(&key[len], WS_GUID, sizeof(key)); + LWIP_DEBUGF(HTTPD_DEBUG, ("Resulting key: %s\n", key)); + + /* Get SHA1 */ + int key_len = sizeof(WS_GUID) - 1 + len; + unsigned char sha1sum[20]; + mbedtls_sha1((unsigned char *) key, key_len, sha1sum); + + /* Base64 encode */ + unsigned int olen; + mbedtls_base64_encode(NULL, 0, &olen, sha1sum, 20); //get length + int ok = mbedtls_base64_encode(retval_ptr, WS_BUF_LEN, &olen, sha1sum, 20); + + if (ok == 0) { + memcpy(&retval_ptr[olen], CRLF CRLF, sizeof(CRLF CRLF)); + hs->is_websocket = 1; + LWIP_DEBUGF(HTTPD_DEBUG, ("Base64 encoded: %s\n", retval_ptr)); + } + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("Key overflow")); + return ERR_MEM; + } + } + } else { + LWIP_DEBUGF(HTTPD_DEBUG, ("error: malformed packet\n")); + return ERR_ARG; + } + } + /* received enough data for minimal request? */ if (data_len >= MIN_REQ_LEN) { /* wait for CRLF before parsing anything */ @@ -2000,7 +2097,17 @@ http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb } else #endif /* LWIP_HTTPD_SUPPORT_POST */ { - return http_find_file(hs, uri, is_09); + if (hs->is_websocket && retval != NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Sending:\n%s\n", retval)); + u16_t len = strlen((char *) retval); + http_write(pcb, retval, &len, 0); + mem_free(retval); + if(websocket_open_cb) + websocket_open_cb(pcb, uri); + return ERR_OK; // We handled this + } else { + return http_find_file(hs, uri, is_09); + } } } } else { @@ -2272,7 +2379,7 @@ http_poll(void *arg, struct tcp_pcb *pcb) return ERR_OK; } else { hs->retries++; - if (hs->retries == HTTPD_MAX_RETRIES) { + if (hs->retries == ((hs->is_websocket) ? WS_TIMEOUT : HTTPD_MAX_RETRIES)) { LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: too many retries, close\n")); http_close_conn(pcb, hs); return ERR_OK; @@ -2294,6 +2401,94 @@ http_poll(void *arg, struct tcp_pcb *pcb) return ERR_OK; } +void +websocket_register_callbacks(tWsOpenHandler ws_open_cb, tWsHandler ws_cb) +{ + websocket_open_cb = ws_open_cb; + websocket_cb = ws_cb; +} + +err_t +websocket_write(struct tcp_pcb *pcb, const uint8_t *data, uint16_t len, uint8_t mode) +{ + if (len > 125) + return ERR_BUF; + + unsigned char buf[len + 2]; + buf[0] = 0x80 | mode; + buf[1] = len; + memcpy(&buf[2], data, len); + len += 2; + + LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] sending packet\n")); + + return http_write(pcb, buf, &len, TCP_WRITE_FLAG_COPY); +} + +/** + * Send status code 1000 (normal closure). + */ +static err_t +websocket_send_close(struct tcp_pcb *pcb) +{ + const char buf[] = {0x88, 0x02, 0x03, 0xe8}; + u16_t len = sizeof (buf); + LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] closing connection\n")); + return tcp_write(pcb, buf, len, TCP_WRITE_FLAG_COPY); +} + +/** + * Parse websocket frame. + * + * @return ERR_OK: frame parsed + * ERR_CLSD: close request from client + * ERR_VAL: invalid frame. + */ +static err_t +websocket_parse(struct tcp_pcb *pcb, struct pbuf *p) +{ + unsigned char *data; + data = (unsigned char*) p->payload; + u16_t data_len = p->len; + + if (data != NULL && data_len > 1) { + LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] frame received\n")); + u8_t opcode = data[0] & 0x0F; + switch (opcode) { + case WS_TEXT_MODE: + case WS_BIN_MODE: + LWIP_DEBUGF(HTTPD_DEBUG, ("Opcode: 0x%hX, frame length: %d\n", opcode, data_len)); + if (data_len > 6) { + u8_t len = data[1] & 0x7F; + if (len > data_len || len > 125) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Error: large frames not supported\n")); + return ERR_VAL; + } else { + if (data_len - 6 != len) + LWIP_DEBUGF(HTTPD_DEBUG, ("Multiple frames received\n")); + data_len = len; + } + /* unmask */ + for (int i = 0; i < data_len; i++) + data[i + 6] = (data[i + 6] ^ data[2 + i % 4]); + /* user callback */ + if (websocket_cb) + websocket_cb(pcb, &data[6], data_len, opcode); + } + break; + case 0x08: // close + LWIP_DEBUGF(HTTPD_DEBUG, ("Close request\n")); + return ERR_CLSD; + break; + default: + LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported opcode 0x%hX\n", opcode)); + break; + } + return ERR_OK; + } + return ERR_VAL; +} + /** * Data has been received on this pcb. * For HTTP 1.0, this should normally only happen once (if the request fits in one packet). @@ -2306,6 +2501,29 @@ http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: pcb=%p pbuf=%p err=%s\n", (void*)pcb, (void*)p, lwip_strerr(err))); + if (hs != NULL && hs->is_websocket) { + if (p == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: buffer error\n")); + http_close_or_abort_conn(pcb, hs, 0); + return ERR_BUF; + } + tcp_recved(pcb, p->tot_len); + + err_t err = websocket_parse(pcb, p); + + if (p != NULL) { + /* otherwise tcp buffer hogs */ + LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] freeing buffer\n")); + pbuf_free(p); + } + + if (err == ERR_CLSD) { + http_close_conn(pcb, hs); + } + + return ERR_OK; + } + if ((err != ERR_OK) || (p == NULL) || (hs == NULL)) { /* error or closed by other side? */ if (p != NULL) { @@ -2349,7 +2567,8 @@ http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) if (hs->handle == NULL) { parsed = http_parse_request(&p, hs, pcb); LWIP_ASSERT("http_parse_request: unexpected return value", parsed == ERR_OK - || parsed == ERR_INPROGRESS ||parsed == ERR_ARG || parsed == ERR_USE); + || parsed == ERR_INPROGRESS ||parsed == ERR_ARG + || parsed == ERR_USE || parsed == ERR_MEM); } else { LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: already sending data\n")); } @@ -2375,7 +2594,7 @@ http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: data %p len %"S32_F"\n", hs->file, hs->left)); http_send(pcb, hs); } - } else if (parsed == ERR_ARG) { + } else if (parsed == ERR_ARG || parsed == ERR_MEM) { /* @todo: close on ERR_USE? */ http_close_conn(pcb, hs); } diff --git a/extras/httpd/httpd.h b/extras/httpd/httpd.h index 88cefce..e2120b6 100644 --- a/extras/httpd/httpd.h +++ b/extras/httpd/httpd.h @@ -39,6 +39,7 @@ #include "lwip/opt.h" #include "lwip/err.h" #include "lwip/pbuf.h" +#include "lwip/tcp.h" /** Set this to 1 to support CGI */ @@ -56,7 +57,6 @@ #define LWIP_HTTPD_SUPPORT_POST 0 #endif - #if LWIP_HTTPD_CGI /* @@ -231,6 +231,33 @@ void httpd_post_data_recved(void *connection, u16_t recved_len); #endif /* LWIP_HTTPD_SUPPORT_POST */ +enum { + WS_TEXT_MODE = 0x01, + WS_BIN_MODE = 0x02, +} WS_MODE; + +typedef void (*tWsHandler)(struct tcp_pcb *pcb, uint8_t *data, u16_t data_len, uint8_t mode); +typedef void (*tWsOpenHandler)(struct tcp_pcb *pcb, const char *uri); + +/** + * Write data into a websocket. + * + * @param pcb tcp_pcb to send. + * @param data data to send. + * @param len data length (should not exceed 125). + * @param mode WS_TEXT_MODE or WS_BIN_MODE. + * @return ERR_OK if write succeeded. + */ +err_t websocket_write(struct tcp_pcb *pcb, const uint8_t *data, uint16_t len, uint8_t mode); + +/** + * Register websocket callback functions. Use NULL if callback is not needed. + * + * @param ws_open_cb called when new websocket is opened. + * @param ws_cb called when data is received from client. + */ +void websocket_register_callbacks(tWsOpenHandler ws_open_cb, tWsHandler ws_cb); + void httpd_init(void); #endif /* __HTTPD_H__ */ diff --git a/extras/httpd/readme.txt b/extras/httpd/readme.txt index 8cf4ed7..94ae277 100644 --- a/extras/httpd/readme.txt +++ b/extras/httpd/readme.txt @@ -1,2 +1,4 @@ +Maintained by lujji (https://github.com/lujji/esp-httpd). + Note: this module expects your project to provide "fsdata.c" created with "makefsdata" utility. See examples/http_server. diff --git a/extras/httpd/strcasestr.c b/extras/httpd/strcasestr.c new file mode 100644 index 0000000..26a0e53 --- /dev/null +++ b/extras/httpd/strcasestr.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2001 Mike Barcroft + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "strcasestr.h" +#include +#include + +char * +strcasestr(s, find) +const char *s, *find; +{ + char c, sc; + size_t len; + + if ((c = *find++) != 0) { + c = tolower((unsigned char) c); + len = strlen(find); + do { + do { + if ((sc = *s++) == 0) + return (NULL); + } while ((char) tolower((unsigned char) sc) != c); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char *) s); +} + +char * +strncasestr(s, find, slen) +const char *s; +const char *find; +size_t slen; +{ + char c, sc; + size_t len; + + if ((c = *find++) != '\0') { + len = strlen(find); + do { + do { + if (slen-- < 1 || (sc = *s++) == '\0') + return (NULL); + } while (sc != c); + if (len > slen) + return (NULL); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char *) s); +} \ No newline at end of file diff --git a/extras/httpd/strcasestr.h b/extras/httpd/strcasestr.h new file mode 100644 index 0000000..4947c11 --- /dev/null +++ b/extras/httpd/strcasestr.h @@ -0,0 +1,9 @@ +#ifndef STRCASESTR_H +#define STRCASESTR_H + +#include + +char *strcasestr(const char *s, const char *find); +char *strncasestr(const char *s, const char * find, size_t slen); + +#endif /* STRCASESTR_H */ From 3b5397f2a4e6c3620cf59150ee00dfb4932d23f2 Mon Sep 17 00:00:00 2001 From: lujji Date: Fri, 3 Feb 2017 07:33:27 +0000 Subject: [PATCH 146/349] added support for large WebSocket frames --- extras/httpd/httpd.c | 89 +++++++++++++++++++++++++++-------------- extras/httpd/httpd.h | 2 +- extras/httpd/readme.txt | 11 ++++- 3 files changed, 70 insertions(+), 32 deletions(-) diff --git a/extras/httpd/httpd.c b/extras/httpd/httpd.c index 5503525..f647ca6 100644 --- a/extras/httpd/httpd.c +++ b/extras/httpd/httpd.c @@ -2411,18 +2411,31 @@ websocket_register_callbacks(tWsOpenHandler ws_open_cb, tWsHandler ws_cb) err_t websocket_write(struct tcp_pcb *pcb, const uint8_t *data, uint16_t len, uint8_t mode) { - if (len > 125) - return ERR_BUF; + uint8_t *buf = mem_malloc(len + 4); + if (buf == NULL) { + LWIP_DEBUGF(HTTPD_DEBUG, ("[websocket_write] out of memory\n")); + return ERR_MEM; + } - unsigned char buf[len + 2]; + int offset = 2; buf[0] = 0x80 | mode; - buf[1] = len; - memcpy(&buf[2], data, len); - len += 2; + if (len > 125) { + offset = 4; + buf[1] = 126; + buf[2] = len >> 8; + buf[3] = len; + } else { + buf[1] = len; + } - LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] sending packet\n")); + memcpy(&buf[offset], data, len); + len += offset; - return http_write(pcb, buf, &len, TCP_WRITE_FLAG_COPY); + LWIP_DEBUGF(HTTPD_DEBUG, ("[websocket_write] sending packet\n")); + err_t retval = http_write(pcb, buf, &len, TCP_WRITE_FLAG_COPY); + mem_free(buf); + + return retval; } /** @@ -2431,7 +2444,7 @@ websocket_write(struct tcp_pcb *pcb, const uint8_t *data, uint16_t len, uint8_t static err_t websocket_send_close(struct tcp_pcb *pcb) { - const char buf[] = {0x88, 0x02, 0x03, 0xe8}; + const u8_t buf[] = {0x88, 0x02, 0x03, 0xe8}; u16_t len = sizeof (buf); LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] closing connection\n")); return tcp_write(pcb, buf, len, TCP_WRITE_FLAG_COPY); @@ -2447,39 +2460,59 @@ websocket_send_close(struct tcp_pcb *pcb) static err_t websocket_parse(struct tcp_pcb *pcb, struct pbuf *p) { - unsigned char *data; - data = (unsigned char*) p->payload; + u8_t *data = (u8_t *) p->payload; u16_t data_len = p->len; if (data != NULL && data_len > 1) { LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] frame received\n")); + if ((data[0] & 0x80) == 0) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: continuation frames not supported\n")); + return ERR_OK; + } u8_t opcode = data[0] & 0x0F; switch (opcode) { case WS_TEXT_MODE: case WS_BIN_MODE: LWIP_DEBUGF(HTTPD_DEBUG, ("Opcode: 0x%hX, frame length: %d\n", opcode, data_len)); - if (data_len > 6) { - u8_t len = data[1] & 0x7F; - if (len > data_len || len > 125) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Error: large frames not supported\n")); - return ERR_VAL; - } else { - if (data_len - 6 != len) - LWIP_DEBUGF(HTTPD_DEBUG, ("Multiple frames received\n")); - data_len = len; + if (data_len > 6 && websocket_cb != NULL) { + int data_offset = 6; + u8_t *dptr = &data[6]; + u8_t *kptr = &data[2]; + u16_t len = data[1] & 0x7F; + + if (len == 127) { + /* most likely won't happen inside non-fragmented frame */ + LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: frame is too long\n")); + return ERR_OK; + } else if (len == 126) { + /* extended length */ + dptr += 2; + kptr += 2; + data_offset += 2; + len = (data[2] << 8) | data[3]; } + + data_len -= data_offset; + + if (len > data_len) { + LWIP_DEBUGF(HTTPD_DEBUG, ("Error: incorrect frame size\n")); + return ERR_VAL; + } + + if (data_len != len) + LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: segmented frame received\n")); + /* unmask */ - for (int i = 0; i < data_len; i++) - data[i + 6] = (data[i + 6] ^ data[2 + i % 4]); + for (int i = 0; i < len; i++) + *(dptr++) ^= kptr[i % 4]; + /* user callback */ - if (websocket_cb) - websocket_cb(pcb, &data[6], data_len, opcode); + websocket_cb(pcb, &data[data_offset], len, opcode); } break; case 0x08: // close LWIP_DEBUGF(HTTPD_DEBUG, ("Close request\n")); return ERR_CLSD; - break; default: LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported opcode 0x%hX\n", opcode)); break; @@ -2508,19 +2541,17 @@ http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) return ERR_BUF; } tcp_recved(pcb, p->tot_len); - err_t err = websocket_parse(pcb, p); - if (p != NULL) { /* otherwise tcp buffer hogs */ LWIP_DEBUGF(HTTPD_DEBUG, ("[wsoc] freeing buffer\n")); pbuf_free(p); } - if (err == ERR_CLSD) { http_close_conn(pcb, hs); } - + /* reset timeout */ + hs->retries = 0; return ERR_OK; } diff --git a/extras/httpd/httpd.h b/extras/httpd/httpd.h index e2120b6..59b0095 100644 --- a/extras/httpd/httpd.h +++ b/extras/httpd/httpd.h @@ -244,7 +244,7 @@ typedef void (*tWsOpenHandler)(struct tcp_pcb *pcb, const char *uri); * * @param pcb tcp_pcb to send. * @param data data to send. - * @param len data length (should not exceed 125). + * @param len data length. * @param mode WS_TEXT_MODE or WS_BIN_MODE. * @return ERR_OK if write succeeded. */ diff --git a/extras/httpd/readme.txt b/extras/httpd/readme.txt index 94ae277..ebf1109 100644 --- a/extras/httpd/readme.txt +++ b/extras/httpd/readme.txt @@ -1,4 +1,11 @@ -Maintained by lujji (https://github.com/lujji/esp-httpd). +This is a basic HTTP server with WebSockets based on httpd from LwIP. -Note: this module expects your project to provide "fsdata.c" created with "makefsdata" utility. +WebSockets implementation supports binary and text modes. Multiple sockets are supported. Continuation frames are not implemented. +By default, a WebSocket is closed after 20 seconds of inactivity to conserve memory. This behavior can be changed by overriding `WS_TIMEOUT` option. + +To enable debugging extra flags `-DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON` should be passed at compile-time. + +This module expects your project to provide "fsdata.c" created with "makefsdata" utility. See examples/http_server. + +Maintained by lujji (https://github.com/lujji/esp-httpd). From 87b4befd879c18fb3e8d55d5a76b2bddfbec77b1 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Thu, 9 Feb 2017 03:31:51 +0500 Subject: [PATCH 147/349] MAX7219/MAX7221 dirver + example --- examples/max7219_7seg/Makefile | 3 + examples/max7219_7seg/main.c | 52 +++++++++ extras/max7219/component.mk | 7 ++ extras/max7219/max7219.c | 189 +++++++++++++++++++++++++++++++++ extras/max7219/max7219.h | 96 +++++++++++++++++ extras/max7219/max7219_priv.h | 36 +++++++ 6 files changed, 383 insertions(+) create mode 100644 examples/max7219_7seg/Makefile create mode 100644 examples/max7219_7seg/main.c create mode 100644 extras/max7219/component.mk create mode 100644 extras/max7219/max7219.c create mode 100644 extras/max7219/max7219.h create mode 100644 extras/max7219/max7219_priv.h diff --git a/examples/max7219_7seg/Makefile b/examples/max7219_7seg/Makefile new file mode 100644 index 0000000..fc55387 --- /dev/null +++ b/examples/max7219_7seg/Makefile @@ -0,0 +1,3 @@ +PROGRAM = max7219_7seg +EXTRA_COMPONENTS = extras/max7219 +include ../../common.mk diff --git a/examples/max7219_7seg/main.c b/examples/max7219_7seg/main.c new file mode 100644 index 0000000..d90d01b --- /dev/null +++ b/examples/max7219_7seg/main.c @@ -0,0 +1,52 @@ +/* + * Example of using MAX7219 driver with 7 segment displays + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define CS_PIN 5 +#define DELAY 2000 + +static max7219_display_t disp = { + .cs_pin = CS_PIN, + .digits = 8, + .cascade_size = 1, + .mirrored = true +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + max7219_init(&disp); + //max7219_set_decode_mode(&disp, true); + + char buf[9]; + while (true) + { + max7219_clear(&disp); + max7219_draw_text(&disp, 0, "7219LEDS"); + vTaskDelay(DELAY / portTICK_PERIOD_MS); + + max7219_clear(&disp); + sprintf(buf, "%2.4f A", 34.6782); + max7219_draw_text(&disp, 0, buf); + vTaskDelay(DELAY / portTICK_PERIOD_MS); + + max7219_clear(&disp); + sprintf(buf, "%08x", hwrand()); + max7219_draw_text(&disp, 0, buf); + vTaskDelay(DELAY / portTICK_PERIOD_MS); + } +} diff --git a/extras/max7219/component.mk b/extras/max7219/component.mk new file mode 100644 index 0000000..29dcf2e --- /dev/null +++ b/extras/max7219/component.mk @@ -0,0 +1,7 @@ +# include it as 'max7219/max7219.h' +INC_DIRS += $(max7219_ROOT).. + +# args for passing into compile rule generation +max7219_SRC_DIR = $(max7219_ROOT) + +$(eval $(call component_compile_rules,max7219)) diff --git a/extras/max7219/max7219.c b/extras/max7219/max7219.c new file mode 100644 index 0000000..34ad069 --- /dev/null +++ b/extras/max7219/max7219.c @@ -0,0 +1,189 @@ +/* + * Driver for MAX7219/MAX7221 + * Serially Interfaced, 8-Digit LED Display Drivers + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "max7219.h" +#include +#include +#include + +#include "max7219_priv.h" + +#define SPI_BUS 1 + +//#define MAX7219_DEBUG + +#ifdef MAX7219_DEBUG +#include +#define debug(fmt, ...) printf("%s: " fmt "\n", "MAX7219", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +#define ALL_CHIPS 0xff +#define ALL_DIGITS 8 + +#define REG_DIGIT_0 (1 << 8) +#define REG_DECODE_MODE (9 << 8) +#define REG_INTENSITY (10 << 8) +#define REG_SCAN_LIMIT (11 << 8) +#define REG_SHUTDOWN (12 << 8) +#define REG_DISPLAY_TEST (15 << 8) + +#define VAL_CLEAR_BCD 0x0f +#define VAL_CLEAR_NORMAL 0x00 + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_10M, + .msb = true, + .minimal_pins = true, + .endianness = SPI_BIG_ENDIAN +}; + +static void send(const max7219_display_t *disp, uint8_t chip, uint16_t value) +{ + uint16_t buf[MAX7219_MAX_CASCADE_SIZE] = { 0 }; + if (chip == ALL_CHIPS) + { + for (uint8_t i = 0; i < disp->cascade_size; i++) + buf[i] = value; + } + else buf[chip] = value; + + spi_settings_t old_settings; + spi_get_settings(SPI_BUS, &old_settings); + spi_set_settings(SPI_BUS, &bus_settings); + gpio_write(disp->cs_pin, false); + + spi_transfer(SPI_BUS, buf, NULL, disp->cascade_size, SPI_16BIT); + + gpio_write(disp->cs_pin, true); + spi_set_settings(SPI_BUS, &old_settings); +} + +bool max7219_init(max7219_display_t *disp) +{ + if (!disp->cascade_size || disp->cascade_size > MAX7219_MAX_CASCADE_SIZE) + { + debug("Invalid cascade size %d", disp->cascade_size); + return false; + } + + uint8_t max_digits = disp->cascade_size * ALL_DIGITS; + if (!disp->digits || disp->digits > max_digits) + { + debug("Invalid digits count %d, max %d", disp->cascade_size, max_digits); + return false; + } + + gpio_enable(disp->cs_pin, GPIO_OUTPUT); + gpio_write(disp->cs_pin, true); + + // Shutdown all chips + max7219_set_shutdown_mode(disp, true); + // Disable test + send(disp, ALL_CHIPS, REG_DISPLAY_TEST); + // Set max scan limit + send(disp, ALL_CHIPS, REG_SCAN_LIMIT | (ALL_DIGITS - 1)); + // Set normal decode mode & clear display + max7219_set_decode_mode(disp, false); + // Set minimal brightness + max7219_set_brightness(disp, 0); + // Wake up + max7219_set_shutdown_mode(disp, false); + + return true; +} + +void max7219_set_decode_mode(max7219_display_t *disp, bool bcd) +{ + disp->bcd = bcd; + send(disp, ALL_CHIPS, REG_DECODE_MODE | (bcd ? 0xff : 0)); + max7219_clear(disp); +} + +void max7219_set_brightness(const max7219_display_t *disp, uint8_t value) +{ + send(disp, ALL_CHIPS, REG_INTENSITY | (value > MAX7219_MAX_BRIGHTNESS ? MAX7219_MAX_BRIGHTNESS : value)); +} + +void max7219_set_shutdown_mode(const max7219_display_t *disp, bool shutdown) +{ + send(disp, ALL_CHIPS, REG_SHUTDOWN | !shutdown); +} + +bool max7219_set_digit(const max7219_display_t *disp, uint8_t digit, uint8_t val) +{ + if (digit >= disp->digits) + { + debug("Invalid digit: %d", digit); + return false; + } + + if (disp->mirrored) + digit = disp->digits - digit - 1; + + uint8_t c = digit / ALL_DIGITS; + uint8_t d = digit % ALL_DIGITS; + + send(disp, c, (REG_DIGIT_0 + ((uint16_t)d << 8)) | val); + + return true; +} + +void max7219_clear(const max7219_display_t *disp) +{ + uint8_t val = disp->bcd ? VAL_CLEAR_BCD : VAL_CLEAR_NORMAL; + for (uint8_t i = 0; i < ALL_DIGITS; i++) + send(disp, ALL_CHIPS, (REG_DIGIT_0 + ((uint16_t)i << 8)) | val); +} + +inline static uint8_t get_char(const max7219_display_t *disp, char c) +{ + if (disp->bcd) + { + if (c >= '0' && c <= '9') + return c - '0'; + switch (c) + { + case '-': + return 0x0a; + case 'E': + case 'e': + return 0x0b; + case 'H': + case 'h': + return 0x0c; + case 'L': + case 'l': + return 0x0d; + case 'P': + case 'p': + return 0x0e; + } + return VAL_CLEAR_BCD; + } + + return font_7seg[(c - 0x20) & 0x7f]; +} + +void max7219_draw_text(const max7219_display_t *disp, uint8_t pos, const char *s) +{ + while (s && pos < disp->digits) + { + uint8_t c = get_char(disp, *s); + if (*(s + 1) == '.') + { + c |= 0x80; + s++; + } + max7219_set_digit(disp, pos, c); + pos++; + s++; + } +} diff --git a/extras/max7219/max7219.h b/extras/max7219/max7219.h new file mode 100644 index 0000000..127d6c0 --- /dev/null +++ b/extras/max7219/max7219.h @@ -0,0 +1,96 @@ +/* + * Driver for MAX7219/MAX7221 + * Serially Interfaced, 8-Digit LED Display Drivers + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_MAX7219_H_ +#define EXTRAS_MAX7219_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define MAX7219_MAX_CASCADE_SIZE 8 +#define MAX7219_MAX_BRIGHTNESS 31 + +/** + * Display descriptor + */ +typedef struct +{ + uint8_t cs_pin; //!< GPIO connected to CS/LOAD pin + + uint8_t digits; //!< Accessible digits in 7seg. Up to cascade_size * 8 + + uint8_t cascade_size; //!< Up to 8 MAX721xx cascaded + bool mirrored; //!< true for horizontally mirrored displays + + bool bcd; +} max7219_display_t; + +/** + * Initialize display: switch it to normal operation from shutdown mode, + * set scan limit to the max and clear + * @param disp Pointer to display descriptor + * @return false if error occured + */ +bool max7219_init(max7219_display_t *disp); + +/** + * Set decode mode and clear display + * @param disp Pointer to display descriptor + * @param bcd true to set BCD decode mode, false to normal + */ +void max7219_set_decode_mode(max7219_display_t *disp, bool bcd); + +/** + * Set display brightness + * @param disp Pointer to display descriptor + * @param value Brightness value, 0..MAX7219_MAX_BRIGHTNESS + */ +void max7219_set_brightness(const max7219_display_t *disp, uint8_t value); + +/** + * Shutdown display or set it to normal mode + * @param disp Pointer to display descriptor + * @param shutdown Shutdown display if true + */ +void max7219_set_shutdown_mode(const max7219_display_t *disp, bool shutdown); + +/** + * Write data to display digit + * @param disp Pointer to display descriptor + * @param digit Digit index, 0..disp->digits - 1 + * @param val Data + * @return false if error occured + */ +bool max7219_set_digit(const max7219_display_t *disp, uint8_t digit, uint8_t val); + +/** + * Clear display + * @param disp Pointer to display descriptor + */ +void max7219_clear(const max7219_display_t *disp); + +/** + * Draw text. + * Currently only 7-segment displays supported + * @param disp Pointer to display descriptor + * @param pos Start digit + * @param s Text + */ +void max7219_draw_text(const max7219_display_t *disp, uint8_t pos, const char *s); + +#ifdef __cplusplus +extern "C" +} +#endif + +#endif /* EXTRAS_MAX7219_H_ */ diff --git a/extras/max7219/max7219_priv.h b/extras/max7219/max7219_priv.h new file mode 100644 index 0000000..f7c03cd --- /dev/null +++ b/extras/max7219/max7219_priv.h @@ -0,0 +1,36 @@ +/* + * Driver for MAX7219/MAX7221 + * Serially Interfaced, 8-Digit LED Display Drivers + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_MAX7219_PRIV_H_ +#define EXTRAS_MAX7219_PRIV_H_ + +static const uint8_t font_7seg[] = { + /* ' ' ! " # $ % & ' ( ) */ + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x02, 0x4e, 0x78, + /* * + , - . / 0 1 2 3 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x30, 0x6d, 0x79, + /* 4 5 6 7 8 9 : ; < = */ + 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x00, 0x00, 0x0d, 0x09, + /* > ? @ A B C D E F G */ + 0x19, 0x65, 0x00, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47, 0x5e, + /* H I J K L M N O P Q */ + 0x37, 0x06, 0x38, 0x57, 0x0e, 0x76, 0x15, 0x1d, 0x67, 0x73, + /* R S T U V W X Y Z [ */ + 0x05, 0x5b, 0x0f, 0x1c, 0x3e, 0x2a, 0x49, 0x3b, 0x6d, 0x4e, + /* \ ] ^ _ ` a b c d e */ + 0x00, 0x78, 0x00, 0x08, 0x02, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, + /* f g h i j k l m n o */ + 0x47, 0x5e, 0x37, 0x06, 0x38, 0x57, 0x0e, 0x76, 0x15, 0x1d, + /* p q r s t u v w x y */ + 0x67, 0x73, 0x05, 0x5b, 0x0f, 0x1c, 0x3e, 0x2a, 0x49, 0x3b, + /* z { | } ~ */ + 0x6d, 0x4e, 0x06, 0x78, 0x00 +}; + + +#endif /* EXTRAS_MAX7219_PRIV_H_ */ From 398ed46776d0f04c8cd8ed100cbb5a51e8c53d52 Mon Sep 17 00:00:00 2001 From: Milosch Meriac Date: Wed, 15 Feb 2017 11:44:11 +0000 Subject: [PATCH 148/349] Add BearSSL extra (#340) Add BearSSL extra + http_get example, TLS server example --- .gitmodules | 3 + examples/http_get_bearssl/Makefile | 6 + examples/http_get_bearssl/http_get_bearssl.c | 342 ++++++++++++++++++ examples/tls_server_bearssl/Makefile | 4 + examples/tls_server_bearssl/certificate.h | 183 ++++++++++ examples/tls_server_bearssl/key.h | 108 ++++++ .../tls_server_bearssl/tls_server_bearssl.c | 188 ++++++++++ extras/bearssl/BearSSL | 1 + extras/bearssl/component.mk | 14 + 9 files changed, 849 insertions(+) create mode 100644 examples/http_get_bearssl/Makefile create mode 100644 examples/http_get_bearssl/http_get_bearssl.c create mode 100644 examples/tls_server_bearssl/Makefile create mode 100644 examples/tls_server_bearssl/certificate.h create mode 100644 examples/tls_server_bearssl/key.h create mode 100644 examples/tls_server_bearssl/tls_server_bearssl.c create mode 160000 extras/bearssl/BearSSL create mode 100644 extras/bearssl/component.mk diff --git a/.gitmodules b/.gitmodules index a769e1d..4e13af8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,6 +19,9 @@ [submodule "tests/fs-test"] path = tests/fs-test url = https://github.com/sheinz/fs-test +[submodule "extras/bearssl/BearSSL"] + path = extras/bearssl/BearSSL + url = https://www.bearssl.org/git/BearSSL [submodule "extras/http-parser/http-parser"] path = extras/http-parser/http-parser url = https://github.com/nodejs/http-parser diff --git a/examples/http_get_bearssl/Makefile b/examples/http_get_bearssl/Makefile new file mode 100644 index 0000000..5f0b736 --- /dev/null +++ b/examples/http_get_bearssl/Makefile @@ -0,0 +1,6 @@ +PROGRAM=http_get_bearssl +EXTRA_COMPONENTS = extras/bearssl + +EXTRA_CFLAGS +=-DCONFIG_EPOCH_TIME=$(shell date --utc '+%s') + +include ../../common.mk diff --git a/examples/http_get_bearssl/http_get_bearssl.c b/examples/http_get_bearssl/http_get_bearssl.c new file mode 100644 index 0000000..593b423 --- /dev/null +++ b/examples/http_get_bearssl/http_get_bearssl.c @@ -0,0 +1,342 @@ +/* http_get_bearssl - HTTPS version of the http_get example, using BearSSL. + * + * Retrieves a JSON response from the howsmyssl.com API via HTTPS over TLS v1.2. + * + * Validates the server's certificate using a hardcoded public key. + * + * Adapted from the client_basic sample in BearSSL. + * + * Original Copyright (c) 2016 Thomas Pornin , MIT License. + * Additions Copyright (C) 2016 Stefan Schake, MIT License. + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "esp/hwrand.h" + +#include + +#include "FreeRTOS.h" +#include "task.h" + +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" +#include "lwip/api.h" + +#include "ssid_config.h" + +#include "bearssl.h" + +#define CLOCK_SECONDS_PER_MINUTE (60UL) +#define CLOCK_MINUTES_PER_HOUR (60UL) +#define CLOCK_HOURS_PER_DAY (24UL) +#define CLOCK_SECONDS_PER_HOUR (CLOCK_MINUTES_PER_HOUR*CLOCK_SECONDS_PER_MINUTE) +#define CLOCK_SECONDS_PER_DAY (CLOCK_HOURS_PER_DAY*CLOCK_SECONDS_PER_HOUR) + +#define WEB_SERVER "www.howsmyssl.com" +#define WEB_PORT "443" +#define WEB_URL "https://www.howsmyssl.com/a/check" + +#define GET_REQUEST "GET "WEB_URL" HTTP/1.1\nHost: "WEB_SERVER"\n\n" + +/* + * Low-level data read callback for the simplified SSL I/O API. + */ +static int +sock_read(void *ctx, unsigned char *buf, size_t len) +{ + for (;;) { + ssize_t rlen; + + rlen = read(*(int *)ctx, buf, len); + if (rlen <= 0) { + if (rlen < 0 && errno == EINTR) { + continue; + } + return -1; + } + return (int)rlen; + } +} + +/* + * Low-level data write callback for the simplified SSL I/O API. + */ +static int +sock_write(void *ctx, const unsigned char *buf, size_t len) +{ + for (;;) { + ssize_t wlen; + + wlen = write(*(int *)ctx, buf, len); + if (wlen <= 0) { + if (wlen < 0 && errno == EINTR) { + continue; + } + return -1; + } + return (int)wlen; + } +} + +/* + * The hardcoded trust anchors. These are the two DN + public key that + * correspond to the self-signed certificates cert-root-rsa.pem and + * cert-root-ec.pem. + * + * C code for hardcoded trust anchors can be generated with the "brssl" + * command-line tool (with the "ta" command). + * + * Below is the imported "Let's Encrypt" root certificate, as howsmyssl + * is depending on it: + * + * https://letsencrypt.org/certs/letsencryptauthorityx3.pem + * + */ + +static const unsigned char TA0_DN[] = { + 0x30, 0x4A, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, + 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0A, + 0x13, 0x0D, 0x4C, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6E, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, + 0x13, 0x1A, 0x4C, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6E, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x74, + 0x79, 0x20, 0x58, 0x33 +}; + +static const unsigned char TA0_RSA_N[] = { + 0x9C, 0xD3, 0x0C, 0xF0, 0x5A, 0xE5, 0x2E, 0x47, 0xB7, 0x72, 0x5D, 0x37, + 0x83, 0xB3, 0x68, 0x63, 0x30, 0xEA, 0xD7, 0x35, 0x26, 0x19, 0x25, 0xE1, + 0xBD, 0xBE, 0x35, 0xF1, 0x70, 0x92, 0x2F, 0xB7, 0xB8, 0x4B, 0x41, 0x05, + 0xAB, 0xA9, 0x9E, 0x35, 0x08, 0x58, 0xEC, 0xB1, 0x2A, 0xC4, 0x68, 0x87, + 0x0B, 0xA3, 0xE3, 0x75, 0xE4, 0xE6, 0xF3, 0xA7, 0x62, 0x71, 0xBA, 0x79, + 0x81, 0x60, 0x1F, 0xD7, 0x91, 0x9A, 0x9F, 0xF3, 0xD0, 0x78, 0x67, 0x71, + 0xC8, 0x69, 0x0E, 0x95, 0x91, 0xCF, 0xFE, 0xE6, 0x99, 0xE9, 0x60, 0x3C, + 0x48, 0xCC, 0x7E, 0xCA, 0x4D, 0x77, 0x12, 0x24, 0x9D, 0x47, 0x1B, 0x5A, + 0xEB, 0xB9, 0xEC, 0x1E, 0x37, 0x00, 0x1C, 0x9C, 0xAC, 0x7B, 0xA7, 0x05, + 0xEA, 0xCE, 0x4A, 0xEB, 0xBD, 0x41, 0xE5, 0x36, 0x98, 0xB9, 0xCB, 0xFD, + 0x6D, 0x3C, 0x96, 0x68, 0xDF, 0x23, 0x2A, 0x42, 0x90, 0x0C, 0x86, 0x74, + 0x67, 0xC8, 0x7F, 0xA5, 0x9A, 0xB8, 0x52, 0x61, 0x14, 0x13, 0x3F, 0x65, + 0xE9, 0x82, 0x87, 0xCB, 0xDB, 0xFA, 0x0E, 0x56, 0xF6, 0x86, 0x89, 0xF3, + 0x85, 0x3F, 0x97, 0x86, 0xAF, 0xB0, 0xDC, 0x1A, 0xEF, 0x6B, 0x0D, 0x95, + 0x16, 0x7D, 0xC4, 0x2B, 0xA0, 0x65, 0xB2, 0x99, 0x04, 0x36, 0x75, 0x80, + 0x6B, 0xAC, 0x4A, 0xF3, 0x1B, 0x90, 0x49, 0x78, 0x2F, 0xA2, 0x96, 0x4F, + 0x2A, 0x20, 0x25, 0x29, 0x04, 0xC6, 0x74, 0xC0, 0xD0, 0x31, 0xCD, 0x8F, + 0x31, 0x38, 0x95, 0x16, 0xBA, 0xA8, 0x33, 0xB8, 0x43, 0xF1, 0xB1, 0x1F, + 0xC3, 0x30, 0x7F, 0xA2, 0x79, 0x31, 0x13, 0x3D, 0x2D, 0x36, 0xF8, 0xE3, + 0xFC, 0xF2, 0x33, 0x6A, 0xB9, 0x39, 0x31, 0xC5, 0xAF, 0xC4, 0x8D, 0x0D, + 0x1D, 0x64, 0x16, 0x33, 0xAA, 0xFA, 0x84, 0x29, 0xB6, 0xD4, 0x0B, 0xC0, + 0xD8, 0x7D, 0xC3, 0x93 +}; + +static const unsigned char TA0_RSA_E[] = { + 0x01, 0x00, 0x01 +}; + +static const br_x509_trust_anchor TAs[1] = { + { + { (unsigned char *)TA0_DN, sizeof TA0_DN }, + BR_X509_TA_CA, + { + BR_KEYTYPE_RSA, + { .rsa = { + (unsigned char *)TA0_RSA_N, sizeof TA0_RSA_N, + (unsigned char *)TA0_RSA_E, sizeof TA0_RSA_E, + } } + } + } +}; + +#define TAs_NUM 1 + +/* + * Buffer to store a record + BearSSL state + * We use MONO mode to save 16k of RAM. + * This could be even smaller by using max_fragment_len, but + * the howsmyssl.com server doesn't seem to support it. + */ +static unsigned char bearssl_buffer[BR_SSL_BUFSIZE_MONO]; + +static br_ssl_client_context sc; +static br_x509_minimal_context xc; +static br_sslio_context ioc; + +void http_get_task(void *pvParameters) +{ + int successes = 0, failures = 0; + int provisional_time = 0; + + while (1) { + /* + * Wait until we can resolve the DNS for the server, as an indication + * our network is probably working... + */ + const struct addrinfo hints = { + .ai_family = AF_INET, + .ai_socktype = SOCK_STREAM, + }; + struct addrinfo *res = NULL; + int dns_err = 0; + do { + if (res) + freeaddrinfo(res); + vTaskDelay(1000 / portTICK_PERIOD_MS); + dns_err = getaddrinfo(WEB_SERVER, WEB_PORT, &hints, &res); + } while(dns_err != 0 || res == NULL); + + int fd = socket(res->ai_family, res->ai_socktype, 0); + if (fd < 0) { + freeaddrinfo(res); + printf("socket failed\n"); + failures++; + continue; + } + + printf("Initializing BearSSL... "); + br_ssl_client_init_full(&sc, &xc, TAs, TAs_NUM); + + /* + * Set the I/O buffer to the provided array. We allocated a + * buffer large enough for full-duplex behaviour with all + * allowed sizes of SSL records, hence we set the last argument + * to 1 (which means "split the buffer into separate input and + * output areas"). + */ + br_ssl_engine_set_buffer(&sc.eng, bearssl_buffer, sizeof bearssl_buffer, 0); + + /* + * Inject some entropy from the ESP hardware RNG + * This is necessary because we don't support any of the BearSSL methods + */ + for (int i = 0; i < 10; i++) { + int rand = hwrand(); + br_ssl_engine_inject_entropy(&sc.eng, &rand, 4); + } + + /* + * Reset the client context, for a new handshake. We provide the + * target host name: it will be used for the SNI extension. The + * last parameter is 0: we are not trying to resume a session. + */ + br_ssl_client_reset(&sc, WEB_SERVER, 0); + + /* + * Initialise the simplified I/O wrapper context, to use our + * SSL client context, and the two callbacks for socket I/O. + */ + br_sslio_init(&ioc, &sc.eng, sock_read, &fd, sock_write, &fd); + printf("done.\r\n"); + + /* FIXME: set date & time using epoch time precompiler flag for now */ + provisional_time = CONFIG_EPOCH_TIME + (xTaskGetTickCount()/configTICK_RATE_HZ); + xc.days = (provisional_time / CLOCK_SECONDS_PER_DAY) + 719528; + xc.seconds = provisional_time % CLOCK_SECONDS_PER_DAY; + printf("Time: %02i:%02i\r\n", + (int)(xc.seconds / CLOCK_SECONDS_PER_HOUR), + (int)((xc.seconds % CLOCK_SECONDS_PER_HOUR)/CLOCK_SECONDS_PER_MINUTE) + ); + + if (connect(fd, res->ai_addr, res->ai_addrlen) != 0) + { + close(fd); + freeaddrinfo(res); + printf("connect failed\n"); + failures++; + continue; + } + printf("Connected\r\n"); + + /* + * Note that while the context has, at that point, already + * assembled the ClientHello to send, nothing happened on the + * network yet. Real I/O will occur only with the next call. + * + * We write our simple HTTP request. We test the call + * for an error (-1), but this is not strictly necessary, since + * the error state "sticks": if the context fails for any reason + * (e.g. bad server certificate), then it will remain in failed + * state and all subsequent calls will return -1 as well. + */ + if (br_sslio_write_all(&ioc, GET_REQUEST, strlen(GET_REQUEST)) != BR_ERR_OK) { + close(fd); + freeaddrinfo(res); + printf("br_sslio_write_all failed: %d\r\n", br_ssl_engine_last_error(&sc.eng)); + failures++; + continue; + } + + /* + * SSL is a buffered protocol: we make sure that all our request + * bytes are sent onto the wire. + */ + br_sslio_flush(&ioc); + + /* + * Read and print the server response + */ + for (;;) + { + int rlen; + unsigned char buf[128]; + + bzero(buf, 128); + // Leave the final byte for zero termination + rlen = br_sslio_read(&ioc, buf, sizeof(buf) - 1); + + if (rlen < 0) { + break; + } + if (rlen > 0) { + printf("%s", buf); + } + } + + /* + * If reading the response failed for any reason, we detect it here + */ + if (br_ssl_engine_last_error(&sc.eng) != BR_ERR_OK) { + close(fd); + freeaddrinfo(res); + printf("failure, error = %d\r\n", br_ssl_engine_last_error(&sc.eng)); + failures++; + continue; + } + + printf("\r\n\r\nfree heap pre = %u\r\n", xPortGetFreeHeapSize()); + + /* + * Close the connection and start over after a delay + */ + close(fd); + freeaddrinfo(res); + + printf("free heap post = %u\r\n", xPortGetFreeHeapSize()); + + successes++; + printf("successes = %d failures = %d\r\n", successes, failures); + for(int countdown = 10; countdown >= 0; countdown--) { + printf("%d...\n", countdown); + vTaskDelay(1000 / portTICK_PERIOD_MS); + } + printf("Starting again!\r\n\r\n"); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + struct sdk_station_config config = { + .ssid = WIFI_SSID, + .password = WIFI_PASS, + }; + + /* required to call wifi_set_opmode before station_set_config */ + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + + xTaskCreate(&http_get_task, "get_task", 2048, NULL, 2, NULL); +} diff --git a/examples/tls_server_bearssl/Makefile b/examples/tls_server_bearssl/Makefile new file mode 100644 index 0000000..79c0e38 --- /dev/null +++ b/examples/tls_server_bearssl/Makefile @@ -0,0 +1,4 @@ +PROGRAM=tls_server_bearssl +EXTRA_COMPONENTS = extras/bearssl + +include ../../common.mk diff --git a/examples/tls_server_bearssl/certificate.h b/examples/tls_server_bearssl/certificate.h new file mode 100644 index 0000000..bafd713 --- /dev/null +++ b/examples/tls_server_bearssl/certificate.h @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "bearssl.h" + +/* + * A sample server certificate chain with a single intermediate CA. + * Certificate key type: RSA + * Signing algorithm for both certificates: RSA + */ + +static const unsigned char CERT0[] = { + 0x30, 0x82, 0x03, 0x3C, 0x30, 0x82, 0x02, 0x24, 0xA0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x14, 0x58, 0xDA, 0xBA, 0x36, 0xCD, 0xED, 0xA0, 0xDA, 0x5C, + 0x10, 0x33, 0x73, 0x8E, 0x0C, 0x64, 0x92, 0x79, 0x92, 0xAF, 0x03, 0x30, + 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, + 0x05, 0x00, 0x30, 0x27, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, + 0x06, 0x13, 0x02, 0x43, 0x41, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, + 0x04, 0x03, 0x13, 0x0F, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6D, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, 0x41, 0x30, 0x1E, 0x17, 0x0D, 0x31, + 0x30, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, + 0x17, 0x0D, 0x33, 0x37, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, + 0x35, 0x39, 0x5A, 0x30, 0x21, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, + 0x04, 0x06, 0x13, 0x02, 0x43, 0x41, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, + 0x55, 0x04, 0x03, 0x13, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, + 0x73, 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, + 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, + 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xD4, + 0x7A, 0x1D, 0x27, 0xBA, 0x2B, 0x3A, 0x67, 0xB2, 0x91, 0x6A, 0xFB, 0xE7, + 0x83, 0x44, 0xCA, 0xED, 0x1C, 0x75, 0xAD, 0xDD, 0x4D, 0x83, 0x62, 0xD6, + 0xAA, 0x68, 0x95, 0xB2, 0x24, 0x21, 0x7B, 0x15, 0xAE, 0x2A, 0x99, 0x68, + 0x15, 0xED, 0x66, 0xF0, 0xB8, 0x58, 0xE7, 0xD3, 0xF5, 0x2E, 0xC6, 0xD9, + 0x2A, 0x5E, 0xE7, 0x0E, 0x2E, 0xE7, 0xFC, 0x67, 0x59, 0xC0, 0xC8, 0x61, + 0x7D, 0x4B, 0xA4, 0x6F, 0xDD, 0x9F, 0xD9, 0xC8, 0x85, 0x87, 0x64, 0xC7, + 0xBA, 0x1A, 0x0F, 0x29, 0xD4, 0x96, 0xA8, 0x78, 0x9A, 0x6B, 0x62, 0x20, + 0xA9, 0x32, 0xD0, 0xEE, 0xA9, 0x8C, 0x28, 0x61, 0x47, 0xA2, 0x50, 0x2A, + 0x63, 0xF6, 0x21, 0xDE, 0xDA, 0xD8, 0xD5, 0xF0, 0x7F, 0xC5, 0x00, 0x82, + 0x70, 0xE6, 0xA3, 0xBF, 0x5C, 0x89, 0x27, 0x4F, 0x51, 0x92, 0x77, 0x03, + 0xC3, 0xB0, 0xCC, 0x2E, 0x3B, 0xEC, 0x23, 0xF2, 0x2F, 0x53, 0x41, 0xAF, + 0x89, 0x93, 0xFF, 0xD2, 0x80, 0xB1, 0x43, 0x97, 0xDE, 0xD6, 0x19, 0xA0, + 0x92, 0x12, 0x7A, 0x3D, 0x66, 0x79, 0xE1, 0xC1, 0xBC, 0xE1, 0x77, 0x70, + 0xA2, 0x8B, 0x3D, 0x46, 0x84, 0x53, 0x3F, 0xE4, 0x4E, 0x42, 0x41, 0x37, + 0x92, 0x1E, 0x1F, 0xFD, 0x38, 0xB3, 0xF7, 0xEF, 0x87, 0x39, 0x80, 0xD3, + 0x56, 0xCF, 0xF4, 0xE0, 0x13, 0xDE, 0x64, 0xB0, 0x72, 0xA4, 0x03, 0x84, + 0xC4, 0x41, 0xED, 0x6F, 0xFA, 0x3E, 0xE2, 0xCA, 0x04, 0x20, 0xD2, 0xD7, + 0xDC, 0x2C, 0x82, 0x2B, 0x7A, 0xE2, 0x6D, 0xA1, 0x1C, 0x48, 0xDB, 0xCF, + 0x89, 0x4F, 0x34, 0x97, 0x3D, 0x28, 0xA8, 0x53, 0xDA, 0xE7, 0xC1, 0xE1, + 0x73, 0x15, 0xA3, 0x30, 0x76, 0x7F, 0x8F, 0x23, 0x42, 0x14, 0x3D, 0x51, + 0x34, 0xD2, 0x5A, 0xAD, 0x3C, 0x9B, 0xCB, 0xC8, 0xFE, 0x7F, 0x6E, 0x8E, + 0x40, 0xF3, 0xBD, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x66, 0x30, 0x64, + 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, + 0x14, 0xC5, 0x01, 0xAD, 0x7C, 0xE6, 0x63, 0xC9, 0x9C, 0x17, 0x5F, 0xC5, + 0xA2, 0xA7, 0xE1, 0x50, 0x5F, 0xE8, 0xF5, 0xA8, 0xC6, 0x30, 0x1D, 0x06, + 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0xC5, 0x01, 0xAD, 0x7C, + 0xE6, 0x63, 0xC9, 0x9C, 0x17, 0x5F, 0xC5, 0xA2, 0xA7, 0xE1, 0x50, 0x5F, + 0xE8, 0xF5, 0xA8, 0xC6, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, + 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x14, 0x06, 0x03, 0x55, 0x1D, + 0x11, 0x04, 0x0D, 0x30, 0x0B, 0x82, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, + 0x68, 0x6F, 0x73, 0x74, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, + 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, + 0x71, 0xB3, 0x5D, 0x21, 0xC2, 0x0E, 0xD7, 0xD0, 0xC6, 0xF8, 0x4A, 0x73, + 0x87, 0x4D, 0x22, 0x02, 0x27, 0xD0, 0xC7, 0xF8, 0xFD, 0x1A, 0x6D, 0x62, + 0x58, 0x82, 0x08, 0x76, 0x20, 0x07, 0xC0, 0x48, 0x92, 0xF3, 0xE9, 0x98, + 0x5A, 0xEB, 0x0D, 0x4E, 0x56, 0x95, 0x63, 0x68, 0x4D, 0xAB, 0xD4, 0x00, + 0x76, 0xE0, 0x37, 0xCF, 0x0B, 0x11, 0x61, 0x59, 0x5C, 0xDE, 0xF6, 0xA5, + 0x14, 0x59, 0xD9, 0x25, 0x9F, 0x59, 0xD9, 0xD3, 0x5E, 0x86, 0xAC, 0x1D, + 0xA6, 0x2C, 0x32, 0x42, 0x19, 0x32, 0x13, 0x40, 0x0B, 0x54, 0xCD, 0x67, + 0x26, 0xB6, 0xBD, 0xB4, 0x96, 0xA4, 0xCA, 0x1F, 0x7F, 0x37, 0xD6, 0xA8, + 0x75, 0xEB, 0x3A, 0x81, 0x51, 0x30, 0xB9, 0xF9, 0x4A, 0x01, 0x6F, 0xD1, + 0xD6, 0xED, 0x4F, 0xDF, 0x3F, 0x30, 0x60, 0x06, 0x67, 0x92, 0x8E, 0x61, + 0x85, 0x5F, 0x1A, 0xB5, 0x8C, 0xB3, 0x0F, 0x61, 0xA9, 0xFA, 0xDF, 0x5D, + 0xC4, 0x64, 0x00, 0xEA, 0x87, 0xB1, 0x33, 0x5F, 0x7D, 0xCB, 0xA3, 0x85, + 0x24, 0x6E, 0x2C, 0x65, 0x3B, 0xEA, 0x73, 0x3F, 0x86, 0xD3, 0xFD, 0xE8, + 0xE4, 0x02, 0xC6, 0x61, 0x6A, 0x26, 0x17, 0x52, 0x01, 0x25, 0x5C, 0x7F, + 0xA8, 0xCE, 0x69, 0x1F, 0xAC, 0x61, 0x2C, 0xB7, 0x04, 0xAF, 0xFD, 0xA4, + 0x7A, 0x99, 0xCB, 0x26, 0x15, 0x4C, 0xFF, 0x74, 0xD4, 0x73, 0x0C, 0x57, + 0x0C, 0x26, 0xEB, 0xD7, 0x2A, 0xDC, 0x5C, 0xC3, 0x41, 0xBB, 0xC2, 0xF3, + 0xCE, 0x16, 0xBD, 0x8E, 0x7B, 0xFB, 0xE9, 0xDF, 0xAB, 0x21, 0x0D, 0x91, + 0xB3, 0x8D, 0xD8, 0xCF, 0xC8, 0xF4, 0x49, 0xB9, 0xD0, 0xE3, 0x16, 0x70, + 0x3F, 0xB3, 0xDE, 0xD4, 0x07, 0x25, 0xFA, 0x46, 0x44, 0x52, 0x89, 0x4D, + 0x89, 0xC8, 0xE2, 0xCA, 0xB5, 0x33, 0x7F, 0xC7, 0x21, 0xBD, 0x28, 0xEF, + 0xFE, 0x66, 0x74, 0x03 +}; + +static const unsigned char CERT1[] = { + 0x30, 0x82, 0x03, 0x34, 0x30, 0x82, 0x02, 0x1C, 0xA0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x14, 0x70, 0x0F, 0x60, 0xEE, 0xF0, 0x07, 0x9A, 0x9C, 0x69, + 0xAC, 0x97, 0x62, 0x26, 0x4F, 0x5D, 0x05, 0xB6, 0xF9, 0x8F, 0x48, 0x30, + 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, + 0x05, 0x00, 0x30, 0x1C, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, + 0x06, 0x13, 0x02, 0x43, 0x41, 0x31, 0x0D, 0x30, 0x0B, 0x06, 0x03, 0x55, + 0x04, 0x03, 0x13, 0x04, 0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, + 0x31, 0x30, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x5A, 0x17, 0x0D, 0x33, 0x37, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, + 0x39, 0x35, 0x39, 0x5A, 0x30, 0x27, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, + 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x41, 0x31, 0x18, 0x30, 0x16, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x13, 0x0F, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6D, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, + 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, + 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, + 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xB3, 0xE8, 0x6B, 0xAF, 0x9C, 0x16, + 0x52, 0xE3, 0x81, 0x0C, 0x50, 0xAB, 0x25, 0xCE, 0xCC, 0x0D, 0xC7, 0xF2, + 0x1F, 0x7F, 0x50, 0xDF, 0x2C, 0x5C, 0x35, 0xD6, 0x62, 0x2E, 0x63, 0x27, + 0x41, 0xA7, 0xE4, 0x53, 0xA8, 0x4B, 0x27, 0xFA, 0x13, 0x91, 0xA3, 0xFA, + 0x09, 0x4A, 0x2F, 0x3B, 0x5E, 0xCF, 0x77, 0xB3, 0x8A, 0xC1, 0xCD, 0x49, + 0x95, 0x9C, 0x75, 0x0D, 0x64, 0x74, 0xEF, 0xE4, 0xD7, 0x4B, 0xB9, 0xA1, + 0x9B, 0x68, 0xD2, 0x30, 0x71, 0x48, 0xEA, 0xF7, 0x4B, 0x14, 0xDF, 0x3F, + 0x47, 0xA9, 0xD8, 0xBB, 0xEC, 0x8F, 0x28, 0xCC, 0xFA, 0xDF, 0xB4, 0x1F, + 0x94, 0x7C, 0x96, 0xFC, 0x08, 0x05, 0x28, 0xF9, 0xE8, 0xF4, 0x2F, 0x2F, + 0xEE, 0x62, 0x9C, 0x8A, 0x3A, 0xE0, 0x85, 0x58, 0x60, 0xB6, 0x0F, 0x2D, + 0x30, 0xB4, 0xC0, 0x41, 0x54, 0x91, 0x4C, 0x1F, 0x5F, 0xAD, 0xF1, 0x19, + 0xF0, 0xC0, 0x22, 0xA6, 0x7D, 0xD8, 0x3F, 0x79, 0x34, 0x59, 0x42, 0x7B, + 0x5B, 0xB5, 0x41, 0xC4, 0x64, 0x7F, 0x52, 0xCF, 0x3C, 0x37, 0x22, 0xA1, + 0x2F, 0x79, 0x25, 0x94, 0x24, 0x41, 0xC2, 0x3F, 0xFA, 0xC7, 0x75, 0xFB, + 0x48, 0xB5, 0x0D, 0x18, 0xA7, 0xF4, 0x54, 0xF3, 0x2E, 0x6E, 0xD8, 0x43, + 0x58, 0xC4, 0xAB, 0x50, 0xE8, 0x05, 0xAD, 0x91, 0xB6, 0x1E, 0x01, 0x75, + 0xB3, 0x54, 0x9C, 0xDE, 0xA0, 0x99, 0x15, 0xFB, 0xAC, 0xF1, 0x5C, 0x97, + 0x49, 0x51, 0xCC, 0xEF, 0x58, 0x12, 0x6F, 0x73, 0x6B, 0xB3, 0x34, 0x14, + 0x01, 0x0F, 0x5A, 0x9D, 0xFA, 0xAA, 0xD6, 0x93, 0xD3, 0xE2, 0xEA, 0xC3, + 0xAB, 0xBC, 0x4E, 0xED, 0xCC, 0x51, 0xA1, 0xB8, 0xF8, 0x94, 0xB6, 0xB4, + 0x2C, 0xA8, 0x86, 0x2B, 0x1F, 0xF6, 0x51, 0x43, 0x29, 0x52, 0x5E, 0x13, + 0x89, 0xB3, 0x6A, 0x78, 0x60, 0x4E, 0x4E, 0xC0, 0x1B, 0xA5, 0x02, 0x03, + 0x01, 0x00, 0x01, 0xA3, 0x63, 0x30, 0x61, 0x30, 0x1F, 0x06, 0x03, 0x55, + 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xC3, 0x0A, 0xBC, 0xB4, + 0x90, 0x63, 0x96, 0x92, 0x45, 0xBC, 0x27, 0xA0, 0xF0, 0x58, 0x89, 0x2A, + 0xD5, 0x78, 0x00, 0x12, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, + 0x16, 0x04, 0x14, 0x7C, 0xCF, 0xA3, 0xC6, 0x29, 0xF7, 0xF3, 0xC5, 0xAA, + 0x19, 0xD0, 0xC0, 0x16, 0xEB, 0xE0, 0x40, 0x0F, 0xCE, 0x44, 0xA7, 0x30, + 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, + 0x02, 0x00, 0x86, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, + 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30, 0x0D, 0x06, 0x09, + 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, + 0x82, 0x01, 0x01, 0x00, 0x54, 0x3B, 0xF4, 0xEA, 0xC6, 0xE4, 0xE8, 0xC0, + 0x5B, 0x12, 0xB2, 0xAD, 0xFA, 0xBD, 0xA9, 0xF4, 0x62, 0x03, 0xAD, 0x57, + 0x4C, 0x6F, 0x07, 0xA7, 0x47, 0x35, 0x75, 0x3E, 0x48, 0xA2, 0x5B, 0x71, + 0x10, 0x01, 0x8F, 0x93, 0x99, 0x9D, 0xA7, 0x47, 0xE3, 0x8E, 0x3E, 0xAF, + 0x2D, 0xBA, 0x06, 0xFE, 0xD4, 0xE4, 0x97, 0xBC, 0x10, 0x8D, 0xA6, 0xA5, + 0x3A, 0x3C, 0xE6, 0x21, 0xCB, 0x3B, 0xDA, 0x13, 0xE3, 0x4A, 0x23, 0xEB, + 0xBC, 0xBA, 0xA5, 0x90, 0x91, 0xAD, 0x55, 0x6E, 0xD5, 0xDD, 0x85, 0x4B, + 0x6B, 0x27, 0xD2, 0x39, 0x76, 0x06, 0x2E, 0xD4, 0x23, 0x5B, 0xBB, 0x55, + 0xB5, 0x49, 0x3F, 0x7D, 0x2F, 0x21, 0xCB, 0x96, 0x75, 0x19, 0x99, 0xA9, + 0x99, 0xF1, 0x0B, 0xBB, 0x3E, 0xC7, 0x10, 0xA7, 0x8B, 0x7A, 0x52, 0xB9, + 0x49, 0xE4, 0x14, 0x08, 0x78, 0xE7, 0x3D, 0xD9, 0x98, 0x57, 0xDA, 0xFF, + 0xDA, 0xB9, 0x8D, 0x66, 0x75, 0x80, 0xB5, 0x5D, 0xB9, 0xDF, 0x69, 0x65, + 0xDB, 0x16, 0xE7, 0x1E, 0xC4, 0x40, 0xE4, 0x46, 0x8A, 0x1E, 0x76, 0x32, + 0x16, 0xE7, 0x83, 0x67, 0xDA, 0x78, 0x56, 0xAB, 0x0F, 0x4C, 0x5C, 0xF1, + 0x70, 0xDA, 0x66, 0x20, 0xF4, 0xF8, 0x0F, 0xF6, 0xDC, 0x2F, 0x72, 0x97, + 0x6B, 0x78, 0x40, 0x79, 0x9D, 0x5B, 0x6D, 0xBE, 0x03, 0xCE, 0x70, 0x42, + 0xA8, 0x2A, 0x71, 0x11, 0xDF, 0x2E, 0x81, 0x01, 0xEA, 0x86, 0x12, 0x91, + 0x4F, 0xD0, 0x18, 0xED, 0x84, 0xA4, 0x48, 0x30, 0xB9, 0xB9, 0x7B, 0x56, + 0x3E, 0xEF, 0x8D, 0xE1, 0x1F, 0xFD, 0x90, 0xB2, 0x44, 0x85, 0x58, 0x6F, + 0xA7, 0x30, 0x74, 0x7C, 0xF1, 0xAE, 0x8C, 0x99, 0x3F, 0xF1, 0x4D, 0x57, + 0xC5, 0x95, 0x68, 0xC2, 0x36, 0xB2, 0xEC, 0xC2, 0x68, 0x7A, 0xC0, 0x81, + 0xA9, 0x55, 0x05, 0xE7, 0xCF, 0xAF, 0x50, 0xAC +}; + +static const br_x509_certificate SERVER_CERTIFICATE_CHAIN[] = { + { (unsigned char *)CERT0, sizeof CERT0 }, + { (unsigned char *)CERT1, sizeof CERT1 } +}; + +#define SERVER_CERTIFICATE_CHAIN_LEN 2 diff --git a/examples/tls_server_bearssl/key.h b/examples/tls_server_bearssl/key.h new file mode 100644 index 0000000..41c6b28 --- /dev/null +++ b/examples/tls_server_bearssl/key.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "bearssl.h" + +/* + * The private key for the server certificate (RSA). + */ + +static const unsigned char RSA_P[] = { + 0xF9, 0xF6, 0x32, 0x9C, 0x51, 0xD7, 0x71, 0xB2, 0x62, 0xED, 0x81, 0x24, + 0xDA, 0xF6, 0xA9, 0x2C, 0xC3, 0x2D, 0x55, 0x94, 0x95, 0x51, 0xE5, 0x36, + 0x12, 0x9E, 0x2E, 0x1F, 0x8E, 0xD8, 0x22, 0x22, 0x64, 0x5E, 0xA3, 0xFC, + 0x60, 0xF0, 0x14, 0xDC, 0x10, 0x48, 0x6F, 0x4F, 0x1A, 0x7D, 0xCC, 0x37, + 0x23, 0x27, 0x76, 0xB6, 0x31, 0xAA, 0xDE, 0x70, 0xC9, 0xEC, 0xAB, 0x0A, + 0x50, 0xF1, 0xEA, 0x79, 0x79, 0x74, 0xBE, 0x3B, 0xAB, 0x2E, 0x63, 0x97, + 0xA2, 0x6F, 0x0A, 0x45, 0x7B, 0xD7, 0x6C, 0xD2, 0x6D, 0x1B, 0x70, 0x31, + 0x03, 0xAF, 0x26, 0x8B, 0x28, 0xC5, 0xF8, 0x49, 0x67, 0x45, 0x41, 0xF1, + 0xD3, 0x35, 0x05, 0x27, 0x2A, 0x79, 0x21, 0xDA, 0x06, 0xB6, 0x3D, 0xA2, + 0xE8, 0x3C, 0x40, 0xFA, 0x6F, 0xC4, 0xFC, 0xF5, 0xC4, 0x05, 0xEB, 0x9A, + 0x31, 0xAA, 0x40, 0x7E, 0x5E, 0xEE, 0x22, 0x5B +}; + +static const unsigned char RSA_Q[] = { + 0xD9, 0x9C, 0x1A, 0xDC, 0x94, 0x51, 0xF6, 0xC1, 0x96, 0xDA, 0x0E, 0x11, + 0x3F, 0x37, 0x28, 0x7A, 0x33, 0xB0, 0xC4, 0xBE, 0xDF, 0x68, 0x2B, 0xD3, + 0x1C, 0x65, 0x67, 0x7A, 0x3C, 0xAF, 0x59, 0x50, 0xAB, 0x29, 0x36, 0x17, + 0x39, 0x15, 0x71, 0x97, 0x62, 0xDD, 0xCD, 0x25, 0xEE, 0x8D, 0xFF, 0x26, + 0x8F, 0x71, 0x21, 0xBE, 0x8F, 0x9C, 0x85, 0x4E, 0x3A, 0xE1, 0x24, 0xC7, + 0xE1, 0x4A, 0xDF, 0xD0, 0x60, 0xB3, 0xC4, 0x44, 0x2E, 0xAC, 0x73, 0x16, + 0x5F, 0x07, 0xC9, 0x3A, 0x73, 0x5E, 0xDA, 0x9B, 0xEE, 0xE2, 0xB4, 0xA9, + 0x3D, 0x33, 0x14, 0x7B, 0xEE, 0xA7, 0xD4, 0xAC, 0xF7, 0x53, 0xE6, 0x3E, + 0xF0, 0x85, 0x57, 0x4C, 0x8B, 0x96, 0x1B, 0xDD, 0xD7, 0x36, 0xFC, 0x89, + 0x37, 0x59, 0x75, 0x96, 0x75, 0x8B, 0x2E, 0xF7, 0x04, 0x2D, 0x29, 0x89, + 0xD9, 0xB7, 0x9F, 0x71, 0x3B, 0xE2, 0xED, 0xC7 +}; + +static const unsigned char RSA_DP[] = { + 0xE4, 0xFC, 0x02, 0x2F, 0x2B, 0xD6, 0x47, 0x04, 0xD9, 0x15, 0xA4, 0x5A, + 0x23, 0xF1, 0x14, 0xD7, 0xB9, 0xD1, 0x1C, 0xF6, 0x29, 0xB8, 0x45, 0x57, + 0x3C, 0xC5, 0x05, 0x91, 0xC9, 0x64, 0xFC, 0x18, 0x2F, 0x84, 0x77, 0x8B, + 0x6B, 0x2E, 0x64, 0x9D, 0x98, 0x99, 0x12, 0xC7, 0x0F, 0x88, 0xB0, 0x7C, + 0xCE, 0x4A, 0x87, 0xB8, 0xAE, 0x55, 0x4E, 0xC3, 0x5A, 0x67, 0xE1, 0xE4, + 0x68, 0x74, 0xC5, 0x8D, 0x14, 0x93, 0xBA, 0xF5, 0xA4, 0x82, 0xB1, 0x9F, + 0xA6, 0xA1, 0x3C, 0x72, 0x9C, 0xD9, 0xA3, 0x8A, 0x3D, 0x83, 0x86, 0x4A, + 0x90, 0x8A, 0x72, 0xAF, 0xC6, 0xE1, 0x5C, 0xEB, 0xB9, 0x9C, 0x3B, 0xA6, + 0x12, 0x0B, 0x1F, 0x36, 0x5A, 0xF5, 0x6E, 0xEA, 0x71, 0x7D, 0x9F, 0x87, + 0x4E, 0x62, 0x6C, 0x50, 0x3F, 0xF5, 0xE0, 0x9A, 0x30, 0x42, 0x10, 0x2C, + 0x48, 0x55, 0x24, 0x11, 0xE0, 0x5B, 0x1C, 0xC3 +}; + +static const unsigned char RSA_DQ[] = { + 0x8D, 0xAC, 0xE0, 0xA0, 0x33, 0xC0, 0x99, 0x52, 0xB8, 0x90, 0x07, 0x10, + 0x9B, 0x83, 0xA1, 0xCA, 0xCD, 0xD4, 0x8C, 0x83, 0x68, 0x98, 0x3D, 0xD0, + 0x18, 0x70, 0xBC, 0xCA, 0x0C, 0xB0, 0x6D, 0x09, 0xE4, 0x25, 0xD4, 0x9D, + 0x92, 0x00, 0xB0, 0x0F, 0xCB, 0xC2, 0x74, 0x49, 0xF9, 0xE2, 0x60, 0xF8, + 0x0D, 0xF3, 0xAD, 0xF0, 0x8F, 0x37, 0x6C, 0x62, 0xDE, 0x5A, 0xAE, 0xC3, + 0xA3, 0x9E, 0x47, 0xD1, 0x36, 0xE4, 0x53, 0x27, 0xC0, 0xEB, 0x6D, 0x92, + 0x67, 0x14, 0x7E, 0xA2, 0x9B, 0x72, 0x6A, 0x09, 0x93, 0xA1, 0xED, 0xD5, + 0x31, 0x8F, 0x0C, 0x0B, 0x13, 0xFA, 0x18, 0xB0, 0xF3, 0xE5, 0x9F, 0xC5, + 0xE2, 0x7A, 0x2D, 0xB8, 0x1C, 0x39, 0x02, 0xB3, 0x8F, 0xE6, 0xB0, 0xCB, + 0xF5, 0x49, 0x3D, 0x11, 0x54, 0x3D, 0xE5, 0xB9, 0xD4, 0xF2, 0x42, 0x55, + 0x09, 0x76, 0x4F, 0x4C, 0x3D, 0x9D, 0x25, 0x09 +}; + +static const unsigned char RSA_IQ[] = { + 0x72, 0x0C, 0xA7, 0xCF, 0x06, 0x95, 0x69, 0xF4, 0x75, 0x20, 0x34, 0x03, + 0xE0, 0xCF, 0x9A, 0x51, 0x93, 0xF5, 0x42, 0x2E, 0xF2, 0x85, 0xBE, 0xCE, + 0x4F, 0x38, 0xB5, 0x8C, 0xA2, 0x99, 0x42, 0xF3, 0xBD, 0x65, 0x38, 0xE2, + 0x34, 0x3F, 0x21, 0x9D, 0xF5, 0xBD, 0xB3, 0xBF, 0x73, 0x3C, 0x18, 0xDE, + 0xF6, 0xF0, 0x7F, 0xA1, 0xC2, 0x55, 0xF2, 0x38, 0xE9, 0x0E, 0x1E, 0x31, + 0xE7, 0xDB, 0x51, 0xC5, 0x71, 0x8D, 0x67, 0x71, 0x3A, 0x9F, 0x55, 0x52, + 0x60, 0xEE, 0x45, 0xF6, 0x08, 0x98, 0x81, 0xB7, 0x7B, 0x2F, 0xF2, 0x96, + 0x7D, 0x73, 0xD0, 0xA6, 0xAB, 0xAA, 0x83, 0x49, 0x41, 0x35, 0xA9, 0x90, + 0x67, 0xCE, 0xD3, 0xB9, 0x73, 0x54, 0xAA, 0x84, 0x00, 0x88, 0x88, 0x90, + 0x1D, 0x86, 0x9B, 0xE5, 0xB8, 0xCE, 0x89, 0x0A, 0x1B, 0x47, 0x62, 0x31, + 0xC2, 0x3F, 0xC3, 0x8C, 0x86, 0x09, 0x3C, 0x86 +}; + +static const br_rsa_private_key SERVER_PRIVATE_KEY = { + 2048, + (unsigned char *)RSA_P, sizeof RSA_P, + (unsigned char *)RSA_Q, sizeof RSA_Q, + (unsigned char *)RSA_DP, sizeof RSA_DP, + (unsigned char *)RSA_DQ, sizeof RSA_DQ, + (unsigned char *)RSA_IQ, sizeof RSA_IQ +}; \ No newline at end of file diff --git a/examples/tls_server_bearssl/tls_server_bearssl.c b/examples/tls_server_bearssl/tls_server_bearssl.c new file mode 100644 index 0000000..09632ae --- /dev/null +++ b/examples/tls_server_bearssl/tls_server_bearssl.c @@ -0,0 +1,188 @@ +/* tls_server_bearssl - simple BearSSL TLS server that outputs some statistics to a connecting client, + * then closes the socket. + * + * Uses code from the server_basic example in BearSSL and the tls_server example. + * + * To test this program, connect to the ESP using openssl command line like this: + * + * openssl s_client -connect 192.168.66.209:800 + * + * The openssl command line client will print some information for the (self-signed) server certificate, + * then after a couple of seconds (validation) there will be a few lines of text output sent from the ESP. + * + * See the certificate.h and key.h files for private key & certificate, plus information for generation. + * + * Original Copyright (c) 2016 Thomas Pornin , MIT License. + * Additions Copyright (C) 2016 Stefan Schake, MIT License. + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "esp/hwrand.h" + +#include + +#include "FreeRTOS.h" +#include "task.h" + +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" +#include "lwip/api.h" + +#include "ssid_config.h" + +/* Server cert & key */ +#include "certificate.h" +#include "key.h" + +#include "bearssl.h" + +#define PORT 800 + +/* + * Low-level data read callback for the simplified SSL I/O API. + */ +static int +sock_read(void *ctx, unsigned char *buf, size_t len) +{ + for (;;) { + ssize_t rlen; + + rlen = read(*(int *)ctx, buf, len); + if (rlen <= 0) { + if (rlen < 0 && errno == EINTR) { + continue; + } + return -1; + } + return (int)rlen; + } +} + +/* + * Low-level data write callback for the simplified SSL I/O API. + */ +static int +sock_write(void *ctx, const unsigned char *buf, size_t len) +{ + for (;;) { + ssize_t wlen; + + wlen = write(*(int *)ctx, buf, len); + if (wlen <= 0) { + if (wlen < 0 && errno == EINTR) { + continue; + } + return -1; + } + return (int)wlen; + } +} + +/* + * BearSSL IO buffer and server state + */ +static unsigned char iobuf[BR_SSL_BUFSIZE_MONO]; +br_ssl_server_context sc; +br_sslio_context ioc; + +void tls_server_task(void *pvParameters) +{ + int successes = 0, failures = 0; + printf("TLS server task starting...\n"); + + /* Prepare server socket */ + int sfd = socket(PF_INET, SOCK_STREAM, 0); + if (sfd < 0) { + printf("Failed to allocate socket.\r\n"); + return; + } + struct sockaddr_in addr; + bzero(&addr, sizeof(addr)); + addr.sin_port = htons(PORT); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + if (bind(sfd, (const struct sockaddr*) &addr, sizeof(addr)) < 0) { + close(sfd); + printf("Failed to bind socket\r\n"); + return; + } + if (listen(sfd, 0) < 0) { + close(sfd); + printf("Failed to listen\r\n"); + return; + } + + /* Initialize engine */ + br_ssl_server_init_full_rsa(&sc, SERVER_CERTIFICATE_CHAIN, SERVER_CERTIFICATE_CHAIN_LEN, &SERVER_PRIVATE_KEY); + br_ssl_engine_set_buffer(&sc.eng, iobuf, sizeof iobuf, 0); + + /* + * Inject some entropy from the ESP hardware RNG + * This is necessary because we don't support any of the BearSSL methods + */ + for (int i = 0; i < 10; i++) { + int rand = hwrand(); + br_ssl_engine_inject_entropy(&sc.eng, &rand, 4); + } + + while(1) { + printf("Top of the loop, free heap = %u\r\n", xPortGetFreeHeapSize()); + + /* Accept a new client */ + struct sockaddr_in sa; + socklen_t sa_len = sizeof(sa); + int cfd = accept(sfd, (struct sockaddr*)&sa, &sa_len); + if (cfd < 0) { + continue; + } + + /* Prepare for a new handshake */ + br_ssl_server_reset(&sc); + /* Initialize the simplified IO wrapper */ + br_sslio_init(&ioc, &sc.eng, sock_read, &cfd, sock_write, &cfd); + + /* Prepare a message to the client */ + unsigned char buf[100]; + int len = sprintf((char *) buf, "O hai, client %d.%d.%d.%d:%d\r\nFree heap size is %d bytes\r\n", + ip4_addr1(&sa.sin_addr), ip4_addr2(&sa.sin_addr), + ip4_addr3(&sa.sin_addr), ip4_addr4(&sa.sin_addr), + ntohs(sa.sin_port), xPortGetFreeHeapSize()); + + /* Send the message and close the connection */ + br_sslio_write_all(&ioc, buf, len); + br_sslio_close(&ioc); + + /* Check if something bad happened */ + if (br_ssl_engine_last_error(&sc.eng) != BR_ERR_OK) { + close(cfd); + printf("failure, error = %d\r\n", br_ssl_engine_last_error(&sc.eng)); + failures++; + continue; + } + + close(cfd); + successes++; + printf("successes = %d failures = %d\r\n", successes, failures); + printf("Waiting for next client...\r\n"); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + struct sdk_station_config config = { + .ssid = WIFI_SSID, + .password = WIFI_PASS, + }; + + /* required to call wifi_set_opmode before station_set_config */ + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + + xTaskCreate(&tls_server_task, "server_task", 2048, NULL, 2, NULL); +} diff --git a/extras/bearssl/BearSSL b/extras/bearssl/BearSSL new file mode 160000 index 0000000..f0c0046 --- /dev/null +++ b/extras/bearssl/BearSSL @@ -0,0 +1 @@ +Subproject commit f0c00466018e4bcdaa2d965ac723d53f015cde9a diff --git a/extras/bearssl/component.mk b/extras/bearssl/component.mk new file mode 100644 index 0000000..4e99cb6 --- /dev/null +++ b/extras/bearssl/component.mk @@ -0,0 +1,14 @@ +# Component makefile for BearSSL + +BEARSSL_DIR = $(bearssl_ROOT)BearSSL/ +INC_DIRS += $(BEARSSL_DIR)inc + +# args for passing into compile rule generation +bearssl_INC_DIR = $(BEARSSL_DIR)inc $(BEARSSL_DIR)src +bearssl_SRC_DIR = $(BEARSSL_DIR)src $(sort $(dir $(wildcard $(BEARSSL_DIR)src/*/))) + +$(eval $(call component_compile_rules,bearssl)) + +# Helpful error if git submodule not initialised +$(BEARSSL_DIR): + $(error "bearssl git submodule not installed. Please run 'git submodule update --init'") From c415d49f1e2acaaca3ee028fe05c81cfa0e34bb1 Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Mon, 20 Feb 2017 20:27:24 +0100 Subject: [PATCH 149/349] Added sdk_system_get_netif --- include/espressif/esp_system.h | 2 ++ open_esplibs/libmain/user_interface.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/include/espressif/esp_system.h b/include/espressif/esp_system.h index c7185d4..690bc60 100644 --- a/include/espressif/esp_system.h +++ b/include/espressif/esp_system.h @@ -28,6 +28,8 @@ struct sdk_rst_info{ uint32_t rtn_addr; }; +struct netif *sdk_system_get_netif(uint32_t mode); + struct sdk_rst_info* sdk_system_get_rst_info(void); const char* sdk_system_get_sdk_version(void); diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 01ac331..eed34a1 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -517,6 +517,10 @@ struct sdk_rst_info *sdk_system_get_rst_info(void) { return &sdk_rst_if; } +struct netif *sdk_system_get_netif(uint32_t mode) { + return _get_netif(mode); +} + static struct netif *_get_netif(uint32_t mode) { struct sdk_g_ic_netif_info *info; From f51a2109b1c1a3b4a712b93c5a50d0aa2553fa6f Mon Sep 17 00:00:00 2001 From: Zaltora Date: Tue, 21 Feb 2017 20:44:03 +0100 Subject: [PATCH 150/349] CRC library (#339) * Crc initial example * Update example and fix submodule --- .gitmodules | 3 + examples/crc_example/Makefile | 3 + examples/crc_example/crc_config_perso.h | 15 +++ examples/crc_example/crc_main.c | 142 ++++++++++++++++++++++++ extras/crc_generic/component.mk | 9 ++ extras/crc_generic/crc_lib | 1 + 6 files changed, 173 insertions(+) create mode 100644 examples/crc_example/Makefile create mode 100644 examples/crc_example/crc_config_perso.h create mode 100644 examples/crc_example/crc_main.c create mode 100644 extras/crc_generic/component.mk create mode 160000 extras/crc_generic/crc_lib diff --git a/.gitmodules b/.gitmodules index 4e13af8..19b3794 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,6 @@ [submodule "extras/http-parser/http-parser"] path = extras/http-parser/http-parser url = https://github.com/nodejs/http-parser +[submodule "extras/crc_generic/crc_lib"] + path = extras/crc_generic/crc_lib + url = https://github.com/Zaltora/crc_generic_lib.git diff --git a/examples/crc_example/Makefile b/examples/crc_example/Makefile new file mode 100644 index 0000000..4df8190 --- /dev/null +++ b/examples/crc_example/Makefile @@ -0,0 +1,3 @@ +PROGRAM=crc_example +EXTRA_COMPONENTS = extras/crc_generic +include ../../common.mk diff --git a/examples/crc_example/crc_config_perso.h b/examples/crc_example/crc_config_perso.h new file mode 100644 index 0000000..4f4b97d --- /dev/null +++ b/examples/crc_example/crc_config_perso.h @@ -0,0 +1,15 @@ +/* + * perso_config.h + * + * Created on: 11 févr. 2017 + * Author: lilian + */ + +#include "espressif/esp_common.h" +#include "FreeRTOS.h" + +#define CRC_DEBUG 0 +#define CRC_4BYTE_SUPPORT 0 +/* Use the defaults for everything else */ +#include_next "crc_config.h" + diff --git a/examples/crc_example/crc_main.c b/examples/crc_example/crc_main.c new file mode 100644 index 0000000..ae42e31 --- /dev/null +++ b/examples/crc_example/crc_main.c @@ -0,0 +1,142 @@ +/* + * Example code to test crc and speed + */ +/////////////////////////////////Lib +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "esp8266.h" +#include + +//extras +#include "crc_config_perso.h" + +#define NUMBER_COMPUTE_TEST 1000 + +unsigned char check_data[] = { "123456789" }; +uint8_t tab_data[512]; // + +void crc_8bit(void *pvParameters) { + + config_crc_8 customcrc ; // my crc object + uint8_t tabsrc[256]; // my crc look-up table + + //init crc parameters (MAXIM parameters) + crc_8_generic_init(&customcrc,0x31, 8, 0x00, 0x00, 1, 1, 1); + + // Use table algorithm / generate table + crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE, 0); + + + //show setting of crc + printf("\nCRC library v1.0 written on 11/02/2017 by Zaltora\n"); + printf("-------------------------------------------------\n"); + printf("\n"); + printf("Parameters:\n"); + printf("\n"); + printf(" polynom : 0x%02X\n", customcrc.polynom); + printf(" order : %d\n", customcrc.order); + printf(" crcinit : 0x%02X direct, 0x%x nondirect\n", customcrc.private.crcinit_direct, customcrc.private.crcinit_nondirect); + printf(" crcxor : 0x%02X\n", customcrc.crcxor); + printf(" refin : %d\n", customcrc.refin); + printf(" refout : %d\n", customcrc.refout); + printf("\n"); + printf("check_data : '%s' (%d bytes)\n", check_data, sizeof(check_data)); + printf("\n"); + + + //show table + printf("Lookup table generated:\n"); + printf("\n"); + printf("tabsrc[256] = {"); + for (uint16_t i = 0 ; i < 256 ; i++) + { + if(!(i%8)) printf("\n"); + printf("0x%02X, ",tabsrc[i]); + } + printf("\n};\n\n"); + + printf("Check value results with all algorithms:\n"); + printf("\n"); + + //try different crc algorithm + crc_8_generic_select_algo(&customcrc, (crc_8*)tabsrc, CRC_TABLE, 0); + printf("CRC_TABLE\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); + crc_8_generic_select_algo(&customcrc, (crc_8*)tabsrc, CRC_TABLE_FAST, 0); + printf("CRC_TABLE_FAST\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); + crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT, 0); + printf("CRC_BIT_TO_BIT\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); + crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT_FAST, 0); + printf("CRC_BIT_TO_BIT_FAST\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); + crc_8_generic_select_algo(&customcrc, (crc_8*)crc_8_tab_MAXIM, CRC_TABLE_FAST, 1); + printf("CRC_TABLE_BUILTIN\t: 0x%02X\n\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); + + printf("Test speed algorithms with random data:\n"); + printf("\n"); + + //data to process + printf("%u bytes of DATA:",sizeof(tab_data)); + for (uint16_t i = 0 ; i < sizeof(tab_data) ; i++) + { + tab_data[i] = (uint8_t)hwrand(); + if(!(i%32)) printf("\n"); + printf("%02X",tab_data[i]); + } + printf("\n\n"); + + const uint32_t cst = NUMBER_COMPUTE_TEST ; + char algo_txt[30] ; + uint32_t time = 0; + uint8_t select = 0; + uint8_t result = 0; + for(select = 0; select < 5 ; select++) + { + switch(select){ + case 0: + crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT, 0); + sprintf(algo_txt,"CRC_BIT_TO_BIT"); + break; + case 1: + crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT_FAST, 0); + sprintf(algo_txt,"CRC_BIT_TO_BIT_FAST"); + break; + case 2: + crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE, 0); + sprintf(algo_txt,"CRC_TABLE"); + break; + case 3: + crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE_FAST, 0); + sprintf(algo_txt,"CRC_TABLE_FAST"); + break; + case 4: + crc_8_generic_select_algo(&customcrc, (crc_8*)crc_8_tab_MAXIM, CRC_TABLE_FAST, 1); + sprintf(algo_txt,"CRC_TABLE_FAST_BUILTIN"); + break; + } + vTaskDelay(1000 / portTICK_PERIOD_MS) ; + printf("test speed algorithm %s \n",algo_txt); + time = sdk_system_get_time(); + for (uint32_t i = 0 ; i < cst ; i++) + { + result = crc_8_generic_compute(&customcrc, tab_data, sizeof(tab_data)); + } + time = sdk_system_get_time()-time ; + printf("Speed algorithm: %.3f us\n",(float)time/(float)cst); + printf("Result algorithm: %02X\n\n",result); + } + + while (1) { + vTaskDelay(10000 / portTICK_PERIOD_MS) ; + } +} + +void user_init(void) +{ + sdk_system_update_cpu_freq(160); + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + printf("Start\n\n"); + vTaskDelay(2000 / portTICK_PERIOD_MS) ; + xTaskCreate(crc_8bit, "crc_8bit", 512, NULL, 2, NULL); +} diff --git a/extras/crc_generic/component.mk b/extras/crc_generic/component.mk new file mode 100644 index 0000000..59efb53 --- /dev/null +++ b/extras/crc_generic/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/crc_generic + +# expected anyone using bmp driver includes it as 'crc_generic/crc_generic.h' +INC_DIRS += $(crc_generic_ROOT)crc_lib/ + +# args for passing into compile rule generation +crc_generic_SRC_DIR = $(crc_generic_ROOT)crc_lib/ + +$(eval $(call component_compile_rules,crc_generic)) diff --git a/extras/crc_generic/crc_lib b/extras/crc_generic/crc_lib new file mode 160000 index 0000000..a3b902a --- /dev/null +++ b/extras/crc_generic/crc_lib @@ -0,0 +1 @@ +Subproject commit a3b902a53216b1378e5cc856ed1dfc3ffd38bc09 From fda5d0b942853d4c4dfb20c95211fe2a6100070a Mon Sep 17 00:00:00 2001 From: Zaltora Date: Mon, 27 Feb 2017 17:35:56 +0100 Subject: [PATCH 151/349] Crc fix and update (#347) Update crc example API and config. --- examples/crc_example/crc_config_user.h | 25 +++++++++++++++++ examples/crc_example/crc_main.c | 39 ++++++++++++-------------- extras/crc_generic/crc_lib | 2 +- 3 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 examples/crc_example/crc_config_user.h diff --git a/examples/crc_example/crc_config_user.h b/examples/crc_example/crc_config_user.h new file mode 100644 index 0000000..3198013 --- /dev/null +++ b/examples/crc_example/crc_config_user.h @@ -0,0 +1,25 @@ +/* + * perso_config.h + * + * Created on: 11 févr. 2017 + * Author: lilian + */ + +#ifndef CRC_CONFIG_USER_H_ +#define CRC_CONFIG_USER_H_ + +#include "espressif/esp_common.h" +#include "FreeRTOS.h" + +#define CRC_DEBUG 0 +#define CRC_1BYTE_SUPPORT 1 +#define CRC_4BYTE_SUPPORT 0 +#define CRC_8BYTE_SUPPORT 0 + +typedef uint8_t crc_8; +typedef uint16_t crc_16; +typedef uint32_t crc_32; +typedef uint64_t crc_64; + +#endif /* CRC_CONFIG_USER_H_ */ + diff --git a/examples/crc_example/crc_main.c b/examples/crc_example/crc_main.c index ae42e31..85f4434 100644 --- a/examples/crc_example/crc_main.c +++ b/examples/crc_example/crc_main.c @@ -9,25 +9,24 @@ #include "esp8266.h" #include -//extras -#include "crc_config_perso.h" +//crc lib +#include "crc_generic.h" #define NUMBER_COMPUTE_TEST 1000 unsigned char check_data[] = { "123456789" }; -uint8_t tab_data[512]; // +uint8_t tab_data[512]; void crc_8bit(void *pvParameters) { config_crc_8 customcrc ; // my crc object - uint8_t tabsrc[256]; // my crc look-up table + crc_8 tabsrc[256]; // my crc look-up table //init crc parameters (MAXIM parameters) crc_8_generic_init(&customcrc,0x31, 8, 0x00, 0x00, 1, 1, 1); - // Use table algorithm / generate table - crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE, 0); - + //generate table + crc_8_generate_table(&customcrc, tabsrc, sizeof(tabsrc)); //show setting of crc printf("\nCRC library v1.0 written on 11/02/2017 by Zaltora\n"); @@ -45,7 +44,6 @@ void crc_8bit(void *pvParameters) { printf("check_data : '%s' (%d bytes)\n", check_data, sizeof(check_data)); printf("\n"); - //show table printf("Lookup table generated:\n"); printf("\n"); @@ -61,15 +59,15 @@ void crc_8bit(void *pvParameters) { printf("\n"); //try different crc algorithm - crc_8_generic_select_algo(&customcrc, (crc_8*)tabsrc, CRC_TABLE, 0); + crc_8_generic_select_algo(&customcrc, tabsrc, sizeof(tabsrc), CRC_TABLE); printf("CRC_TABLE\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); - crc_8_generic_select_algo(&customcrc, (crc_8*)tabsrc, CRC_TABLE_FAST, 0); + crc_8_generic_select_algo(&customcrc, tabsrc, sizeof(tabsrc), CRC_TABLE_FAST); printf("CRC_TABLE_FAST\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); - crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT, 0); + crc_8_generic_select_algo(&customcrc, NULL, 0, CRC_BIT_TO_BIT); printf("CRC_BIT_TO_BIT\t\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); - crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT_FAST, 0); + crc_8_generic_select_algo(&customcrc, NULL, 0, CRC_BIT_TO_BIT_FAST); printf("CRC_BIT_TO_BIT_FAST\t: 0x%02X\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); - crc_8_generic_select_algo(&customcrc, (crc_8*)crc_8_tab_MAXIM, CRC_TABLE_FAST, 1); + crc_8_generic_select_algo(&customcrc, crc_8_tab_MAXIM, sizeof(crc_8_tab_MAXIM), CRC_TABLE_FAST); printf("CRC_TABLE_BUILTIN\t: 0x%02X\n\n", crc_8_generic_compute(&customcrc, check_data, sizeof(check_data))); printf("Test speed algorithms with random data:\n"); @@ -94,27 +92,26 @@ void crc_8bit(void *pvParameters) { { switch(select){ case 0: - crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT, 0); + crc_8_generic_select_algo(&customcrc, NULL, 0, CRC_BIT_TO_BIT); sprintf(algo_txt,"CRC_BIT_TO_BIT"); break; case 1: - crc_8_generic_select_algo(&customcrc, NULL, CRC_BIT_TO_BIT_FAST, 0); + crc_8_generic_select_algo(&customcrc, NULL, 0, CRC_BIT_TO_BIT_FAST); sprintf(algo_txt,"CRC_BIT_TO_BIT_FAST"); break; case 2: - crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE, 0); + crc_8_generic_select_algo(&customcrc, tabsrc, sizeof(tabsrc), CRC_TABLE); sprintf(algo_txt,"CRC_TABLE"); break; case 3: - crc_8_generic_select_algo(&customcrc, tabsrc, CRC_TABLE_FAST, 0); + crc_8_generic_select_algo(&customcrc, tabsrc, sizeof(tabsrc), CRC_TABLE_FAST); sprintf(algo_txt,"CRC_TABLE_FAST"); break; case 4: - crc_8_generic_select_algo(&customcrc, (crc_8*)crc_8_tab_MAXIM, CRC_TABLE_FAST, 1); + crc_8_generic_select_algo(&customcrc, crc_8_tab_MAXIM, sizeof(crc_8_tab_MAXIM), CRC_TABLE_FAST); sprintf(algo_txt,"CRC_TABLE_FAST_BUILTIN"); break; } - vTaskDelay(1000 / portTICK_PERIOD_MS) ; printf("test speed algorithm %s \n",algo_txt); time = sdk_system_get_time(); for (uint32_t i = 0 ; i < cst ; i++) @@ -125,8 +122,8 @@ void crc_8bit(void *pvParameters) { printf("Speed algorithm: %.3f us\n",(float)time/(float)cst); printf("Result algorithm: %02X\n\n",result); } - - while (1) { + while (1) + { vTaskDelay(10000 / portTICK_PERIOD_MS) ; } } diff --git a/extras/crc_generic/crc_lib b/extras/crc_generic/crc_lib index a3b902a..a97013c 160000 --- a/extras/crc_generic/crc_lib +++ b/extras/crc_generic/crc_lib @@ -1 +1 @@ -Subproject commit a3b902a53216b1378e5cc856ed1dfc3ffd38bc09 +Subproject commit a97013c72f686735889b7a0908bbbf15a104f7d0 From 6b0547b963fd76a05a6e778ed5f4fe727478aadb Mon Sep 17 00:00:00 2001 From: mr-nice Date: Mon, 6 Mar 2017 18:28:20 +0100 Subject: [PATCH 152/349] Softuart (#307) * extras/softuart: support for multiple UARTs, dynamic RX/TX pins --- examples/softuart/LICENSE | 23 +++ examples/softuart/Makefile | 4 + examples/softuart/main.c | 40 ++++++ extras/softuart/LICENSE | 23 +++ extras/softuart/component.mk | 10 ++ extras/softuart/softuart.c | 270 +++++++++++++++++++++++++++++++++++ extras/softuart/softuart.h | 93 ++++++++++++ 7 files changed, 463 insertions(+) create mode 100644 examples/softuart/LICENSE create mode 100644 examples/softuart/Makefile create mode 100644 examples/softuart/main.c create mode 100644 extras/softuart/LICENSE create mode 100644 extras/softuart/component.mk create mode 100644 extras/softuart/softuart.c create mode 100644 extras/softuart/softuart.h diff --git a/examples/softuart/LICENSE b/examples/softuart/LICENSE new file mode 100644 index 0000000..104c838 --- /dev/null +++ b/examples/softuart/LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (C) 2016 Bernhard Guillon +Copyright (c) 2015 plieningerweb + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/examples/softuart/Makefile b/examples/softuart/Makefile new file mode 100644 index 0000000..5b3f951 --- /dev/null +++ b/examples/softuart/Makefile @@ -0,0 +1,4 @@ +PROGRAM = softuart +EXTRA_COMPONENTS = extras/softuart +ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/softuart/main.c b/examples/softuart/main.c new file mode 100644 index 0000000..75b280e --- /dev/null +++ b/examples/softuart/main.c @@ -0,0 +1,40 @@ +/* + * Softuart example + * + * Copyright (C) 2017 Ruslan V. Uss + * Copyright (C) 2016 Bernhard Guillon + * Copyright (c) 2015 plieningerweb + * + * MIT Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +//#include +//#include + +#include + +#define RX_PIN 5 +#define TX_PIN 4 + +void user_init(void) +{ + // setup real UART for now + uart_set_baud(0, 115200); + printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); + + // setup software uart to 9600 8n1 + softuart_open(0, 9600, RX_PIN, TX_PIN); + + while (true) + { + if (!softuart_available(0)) + continue; + + char c = softuart_read(0); + printf("input: %c, 0x%02x\n", c, c); + softuart_puts(0, "start\r\n"); + } +} diff --git a/extras/softuart/LICENSE b/extras/softuart/LICENSE new file mode 100644 index 0000000..104c838 --- /dev/null +++ b/extras/softuart/LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (C) 2016 Bernhard Guillon +Copyright (c) 2015 plieningerweb + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/extras/softuart/component.mk b/extras/softuart/component.mk new file mode 100644 index 0000000..9517cf2 --- /dev/null +++ b/extras/softuart/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/softuart + +# expected anyone using this driver includes it as 'softuart/softuart.h' +INC_DIRS += $(softuart_ROOT).. + +# args for passing into compile rule generation +softuart_SRC_DIR = $(softuart_ROOT) + +$(eval $(call component_compile_rules,softuart)) + diff --git a/extras/softuart/softuart.c b/extras/softuart/softuart.c new file mode 100644 index 0000000..7cfc0fc --- /dev/null +++ b/extras/softuart/softuart.c @@ -0,0 +1,270 @@ +/* + * Softuart + * + * Copyright (C) 2017 Ruslan V. Uss + * Copyright (C) 2016 Bernhard Guillon + * + * This code is based on Softuart from here [1] and reworked to + * fit into esp-open-rtos. + * + * it fits my needs to read the GY-GPS6MV2 module with 9600 8n1 + * + * Original Copyright: + * Copyright (c) 2015 plieningerweb + * + * MIT Licensed as described in the file LICENSE + * + * 1 https://github.com/plieningerweb/esp8266-software-uart + */ + +#include "softuart.h" +#include +#include +#include +#include + +//#define SOFTUART_DEBUG + +#ifdef SOFTUART_DEBUG +#define debug(fmt, ...) printf("%s: " fmt "\n", "SOFTUART", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +typedef struct +{ + char receive_buffer[SOFTUART_MAX_RX_BUFF]; + uint8_t receive_buffer_tail; + uint8_t receive_buffer_head; + uint8_t buffer_overflow; +} softuart_buffer_t; + +typedef struct +{ + uint8_t rx_pin, tx_pin; + uint32_t baudrate; + volatile softuart_buffer_t buffer; + uint16_t bit_time; +} softuart_t; + +static softuart_t uarts[SOFTUART_MAX_UARTS] = { { 0 } }; + +inline static int8_t find_uart_by_rx(uint8_t rx_pin) +{ + for (uint8_t i = 0; i < SOFTUART_MAX_UARTS; i++) + if (uarts[i].baudrate && uarts[i].rx_pin == rx_pin) return i; + + return -1; +} + +// GPIO interrupt handler +static void handle_rx(uint8_t gpio_num) +{ + // find uart + int8_t uart_no = find_uart_by_rx(gpio_num); + if (uart_no < 0) return; + + softuart_t *uart = uarts + uart_no; + + // Disable interrupt + gpio_set_interrupt(gpio_num, GPIO_INTTYPE_NONE, handle_rx); + + // Wait till start bit is half over so we can sample the next one in the center + sdk_os_delay_us(uart->bit_time / 2); + + // Now sample bits + uint8_t d = 0; + uint32_t start_time = 0x7FFFFFFF & sdk_system_get_time(); + + for (uint8_t i = 0; i < 8; i++) + { + while ((0x7FFFFFFF & sdk_system_get_time()) < (start_time + (uart->bit_time * (i + 1)))) + { + // If system timer overflow, escape from while loop + if ((0x7FFFFFFF & sdk_system_get_time()) < start_time) + break; + } + // Shift d to the right + d >>= 1; + + // Read bit + if (gpio_read(uart->rx_pin)) + { + // If high, set msb of 8bit to 1 + d |= 0x80; + } + } + + // Store byte in buffer + // If buffer full, set the overflow flag and return + uint8_t next = (uart->buffer.receive_buffer_tail + 1) % SOFTUART_MAX_RX_BUFF; + if (next != uart->buffer.receive_buffer_head) + { + // save new data in buffer: tail points to where byte goes + uart->buffer.receive_buffer[uart->buffer.receive_buffer_tail] = d; // save new byte + uart->buffer.receive_buffer_tail = next; + } + else + { + uart->buffer.buffer_overflow = 1; + } + + // Wait for stop bit + sdk_os_delay_us(uart->bit_time); + + // Done, reenable interrupt + gpio_set_interrupt(uart->rx_pin, GPIO_INTTYPE_EDGE_NEG, handle_rx); +} + +static bool check_uart_no(uint8_t uart_no) +{ + if (uart_no >= SOFTUART_MAX_UARTS) + { + debug("Invalid uart number %d, %d max", uart_no, SOFTUART_MAX_UARTS); + return false; + } + + return true; +} + +static bool check_uart_enabled(uint8_t uart_no) +{ + if (!uarts[uart_no].baudrate) + { + debug("Uart %d is disabled", uart_no); + return false; + } + + return true; +} + +/////////////////////////////////////////////////////////////////////////////// +/// Public +/////////////////////////////////////////////////////////////////////////////// + +bool softuart_open(uint8_t uart_no, uint32_t baudrate, uint8_t rx_pin, uint8_t tx_pin) +{ + // do some checks + if (!check_uart_no(uart_no)) return false; + if (baudrate == 0) + { + debug("Invalid baudrate"); + return false; + } + for (uint8_t i = 0; i < SOFTUART_MAX_UARTS; i++) + if (uarts[i].baudrate && i != uart_no + && (uarts[i].rx_pin == rx_pin || uarts[i].tx_pin == tx_pin || uarts[i].rx_pin == tx_pin || uarts[i].tx_pin == rx_pin)) + { + debug("Cannot share pins between uarts"); + return false; + } + + softuart_close(uart_no); + + softuart_t *uart = uarts + uart_no; + + uart->baudrate = baudrate; + uart->rx_pin = rx_pin; + uart->tx_pin = tx_pin; + + // Calculate bit_time + uart->bit_time = (1000000 / baudrate); + if (((100000000 / baudrate) - (100 * uart->bit_time)) > 50) uart->bit_time++; + + // Setup Rx + gpio_enable(rx_pin, GPIO_INPUT); + gpio_set_pullup(rx_pin, true, false); + + // Setup Tx + gpio_enable(tx_pin, GPIO_OUTPUT); + gpio_set_pullup(tx_pin, true, false); + gpio_write(tx_pin, 1); + + // Setup the interrupt handler to get the start bit + gpio_set_interrupt(rx_pin, GPIO_INTTYPE_EDGE_NEG, handle_rx); + + sdk_os_delay_us(1000); // TODO: not sure if it really needed + + return true; +} + +bool softuart_close(uint8_t uart_no) +{ + if (!check_uart_no(uart_no)) return false; + softuart_t *uart = uarts + uart_no; + + if (!uart->baudrate) return true; + + // Remove interrupt + gpio_set_interrupt(uart->rx_pin, GPIO_INTTYPE_NONE, NULL); + // Mark as unused + uart->baudrate = 0; + + return true; +} + +bool softuart_put(uint8_t uart_no, char c) +{ + if (!check_uart_no(uart_no)) return false; + if (!check_uart_enabled(uart_no)) return false; + softuart_t *uart = uarts + uart_no; + + uint32_t start_time = 0x7FFFFFFF & sdk_system_get_time(); + gpio_write(uart->tx_pin, 0); + + for (uint8_t i = 0; i <= 8; i++) + { + while ((0x7FFFFFFF & sdk_system_get_time()) < (start_time + (uart->bit_time * (i + 1)))) + { + if ((0x7FFFFFFF & sdk_system_get_time()) < start_time) + break; + } + gpio_write(uart->tx_pin, c & (1 << i)); + } + + while ((0x7FFFFFFF & sdk_system_get_time()) < (start_time + (uart->bit_time * 9))) + { + if ((0x7FFFFFFF & sdk_system_get_time()) < start_time) + break; + } + gpio_write(uart->tx_pin, 1); + sdk_os_delay_us(uart->bit_time * 6); + + return true; +} + +bool softuart_puts(uint8_t uart_no, const char *s) +{ + while (*s) + { + if (!softuart_put(uart_no, *s++)) + return false; + } + + return true; +} + +bool softuart_available(uint8_t uart_no) +{ + if (!check_uart_no(uart_no)) return false; + if (!check_uart_enabled(uart_no)) return false; + softuart_t *uart = uarts + uart_no; + + return (uart->buffer.receive_buffer_tail + SOFTUART_MAX_RX_BUFF - uart->buffer.receive_buffer_head) % SOFTUART_MAX_RX_BUFF; +} + +uint8_t softuart_read(uint8_t uart_no) +{ + if (!check_uart_no(uart_no)) return 0; + if (!check_uart_enabled(uart_no)) return 0; + softuart_t *uart = uarts + uart_no; + + // Empty buffer? + if (uart->buffer.receive_buffer_head == uart->buffer.receive_buffer_tail) return 0; + + // Read from "head" + uint8_t d = uart->buffer.receive_buffer[uart->buffer.receive_buffer_head]; // grab next byte + uart->buffer.receive_buffer_head = (uart->buffer.receive_buffer_head + 1) % SOFTUART_MAX_RX_BUFF; + return d; +} + diff --git a/extras/softuart/softuart.h b/extras/softuart/softuart.h new file mode 100644 index 0000000..e5fa8f6 --- /dev/null +++ b/extras/softuart/softuart.h @@ -0,0 +1,93 @@ +/* + * Softuart for esp-open-rtos + * + * Copyright (C) 2017 Ruslan V. Uss + * Copyright (C) 2016 Bernhard Guillon + * + * This code is based on Softuart from here [1] and reworked to + * fit into esp-open-rtos. For now only the RX part is ported. + * Also the configuration of the pin is for now hardcoded. + * + * it fits my needs to read the GY-GPS6MV2 module with 9600 8n1 + * + * Original Copyright: + * Copyright (c) 2015 plieningerweb + * + * MIT Licensed as described in the file LICENSE + * + * 1 https://github.com/plieningerweb/esp8266-software-uart + */ +#ifndef SOFTUART_H_ +#define SOFTUART_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef SOFTUART_MAX_UARTS + #define SOFTUART_MAX_UARTS 2 +#endif + +#ifndef SOFTUART_MAX_RX_BUFF + #define SOFTUART_MAX_RX_BUFF 64 //!< Must be power of two: 2, 4, 8, 16 etc. +#endif + +/** + * Initialize software uart and setup interrupt handler + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @param baudrate Baudrate, e.g. 9600, 19200, etc + * @param rx_pin GPIO pin number for RX + * @param tx_pin GPIO pin number for TX + * @return true if no errors occured otherwise false + */ +bool softuart_open(uint8_t uart_no, uint32_t baudrate, uint8_t rx_pin, uint8_t tx_pin); + +/** + * Deinitialize software uart + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @return true if no errors occured otherwise false + */ +bool softuart_close(uint8_t uart_no); + +/** + * Put char to software uart + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @param c Char + * @return true if no errors occured otherwise false + */ +bool softuart_put(uint8_t uart_no, char c); + +/** + * Put string to software uart + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @param s Null-terminated string + * @return true if no errors occured otherwise false + */ +bool softuart_puts(uint8_t uart_no, const char *s); + +/** + * Check if data is available + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @return true if data is available otherwise false + */ +bool softuart_available(uint8_t uart_no); + +/** + * Read current byte from internal buffer if available. + * + * NOTE: This call is non blocking. + * NOTE: You have to check softuart_available() first. + * @param uart_no Software uart index, 0..SOFTUART_MAX_UARTS + * @return current byte if available otherwise 0 + */ +uint8_t softuart_read(uint8_t uart_no); + +#ifdef __cplusplus +} +#endif + +#endif /* SOFTUART_H_ */ From 65a0c95b13c6eaed26c9a237fafec99e73bc1d42 Mon Sep 17 00:00:00 2001 From: funnydog Date: Tue, 14 Mar 2017 20:30:20 +0100 Subject: [PATCH 153/349] extras/sntp: fix an off-by-one bug in sntp_set_servers() The function sntp_set_servers() duplicates the strings supplied in the server_url[] array into new strings but forgets to allocate the extra byte needed for the \0 terminator for each string. Fix the problem by using strdup(), which allocates the right amount of memory and copies the string at once. --- extras/sntp/sntp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/extras/sntp/sntp.c b/extras/sntp/sntp.c index 48b2f14..d69b60e 100644 --- a/extras/sntp/sntp.c +++ b/extras/sntp/sntp.c @@ -730,10 +730,8 @@ int sntp_set_servers(char *server_url[], int num_servers) /* Allocate memory and copy servers */ for (i = 0; i < num_servers; i++) { - sntp_server_addresses[i] = malloc(strlen(server_url[i])); - if (sntp_server_addresses[i]) { - strcpy(sntp_server_addresses[i], server_url[i]); - } else { + sntp_server_addresses[i] = strdup(server_url[i]); + if (!sntp_server_addresses[i]) { sntp_num_servers = i; return -2; } From 1457a3ed193baa3be9cea9b27a1dda3ec42fd5a7 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 15 Mar 2017 18:18:32 +0500 Subject: [PATCH 154/349] Fixed error of writing to SPI registers with memcpy (#352) fixed memcpy() writing registers bug --- core/esp_spi.c | 72 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 0bda9d2..1a46e83 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -189,7 +189,9 @@ static void _spi_buf_transfer(uint8_t bus, const void *out_data, void *in_data, _wait(bus); size_t bytes = len * (uint8_t)word_size; _set_size(bus, bytes); - memcpy((void *)SPI(bus).W, out_data, bytes); + // memcpy((void *)SPI(bus).W, out_data, bytes); // <- It's buggy + for (uint8_t i = 0; i < bytes; i ++) + ((uint8_t *)SPI(bus).W)[i] = ((uint8_t *)out_data)[i]; _spi_buf_prepare(bus, len, e, word_size); _start(bus); _wait(bus); @@ -221,23 +223,36 @@ uint32_t spi_transfer_32(uint8_t bus, uint32_t data) return res; } -static void _rearm_extras_bit(uint8_t bus, bool arm) { - - if(!_minimal_pins[bus]) return ; - static uint8_t status[2] ; +static void _rearm_extras_bit(uint8_t bus, bool arm) +{ + if (!_minimal_pins[bus]) return; + static uint8_t status[2]; if (arm) { - if (status[bus] & 0x01) SPI(bus).USER0 |= (SPI_USER0_ADDR) ; - if (status[bus] & 0x02) SPI(bus).USER0 |= (SPI_USER0_COMMAND) ; - if (status[bus] & 0x04) SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); + if (status[bus] & 0x01) SPI(bus).USER0 |= (SPI_USER0_ADDR); + if (status[bus] & 0x02) SPI(bus).USER0 |= (SPI_USER0_COMMAND); + if (status[bus] & 0x04) + SPI(bus).USER0 |= (SPI_USER0_DUMMY | SPI_USER0_MISO); status[bus] = 0; } else { - if (SPI(bus).USER0 & SPI_USER0_ADDR) { SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; status[bus] |= 0x01 ; } - if (SPI(bus).USER0 & SPI_USER0_COMMAND) { SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; status[bus] |= 0x02 ; } - if (SPI(bus).USER0 & SPI_USER0_DUMMY) { SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); status[bus] |= 0x04 ; } + if (SPI(bus).USER0 & SPI_USER0_ADDR) + { + SPI(bus).USER0 &= ~(SPI_USER0_ADDR); + status[bus] |= 0x01; + } + if (SPI(bus).USER0 & SPI_USER0_COMMAND) + { + SPI(bus).USER0 &= ~(SPI_USER0_COMMAND); + status[bus] |= 0x02; + } + if (SPI(bus).USER0 & SPI_USER0_DUMMY) + { + SPI(bus).USER0 &= ~(SPI_USER0_DUMMY | SPI_USER0_MISO); + status[bus] |= 0x04; + } } } @@ -254,7 +269,7 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len size_t offset = i * _SPI_BUF_SIZE; _spi_buf_transfer(bus, (const uint8_t *)out_data + offset, in_data ? (uint8_t *)in_data + offset : NULL, buf_size, e, word_size); - if (blocks) _rearm_extras_bit(bus, false) ; + if (blocks) _rearm_extras_bit(bus, false); } uint8_t tail = len % buf_size; @@ -264,41 +279,42 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len in_data ? (uint8_t *)in_data + blocks * _SPI_BUF_SIZE : NULL, tail, e, word_size); } - if (blocks) _rearm_extras_bit(bus, true) ; + if (blocks) _rearm_extras_bit(bus, true); return len; } -static void _repeat_send(uint8_t bus, uint32_t* dword,int32_t* repeats,spi_word_size_t size) +static void _repeat_send(uint8_t bus, uint32_t *dword, int32_t *repeats, + spi_word_size_t size) { - uint8_t i = 0 ; - while(*repeats > 0) + uint8_t i = 0; + while (*repeats > 0) { - uint16_t bytes_to_transfer = __min(*repeats * size , _SPI_BUF_SIZE); + uint16_t bytes_to_transfer = __min(*repeats * size, _SPI_BUF_SIZE); _wait(bus); - if (i) _rearm_extras_bit(bus, false) ; - _set_size(bus,bytes_to_transfer); - for(i = 0; i < (bytes_to_transfer + 3) / 4;i++) + if (i) _rearm_extras_bit(bus, false); + _set_size(bus, bytes_to_transfer); + for (i = 0; i < (bytes_to_transfer + 3) / 4; i++) SPI(bus).W[i] = *dword; //need test with memcpy ! _start(bus); - *repeats -= (bytes_to_transfer / size ) ; + *repeats -= (bytes_to_transfer / size); } _wait(bus); - _rearm_extras_bit(bus, true) ; + _rearm_extras_bit(bus, true); } -void spi_repeat_send_8(uint8_t bus, uint8_t data,int32_t repeats) +void spi_repeat_send_8(uint8_t bus, uint8_t data, int32_t repeats) { uint32_t dword = data << 24 | data << 16 | data << 8 | data; - _repeat_send(bus,&dword,&repeats, SPI_8BIT); + _repeat_send(bus, &dword, &repeats, SPI_8BIT); } -void spi_repeat_send_16(uint8_t bus, uint16_t data,int32_t repeats) +void spi_repeat_send_16(uint8_t bus, uint16_t data, int32_t repeats) { uint32_t dword = data << 16 | data; - _repeat_send(bus,&dword,&repeats, SPI_16BIT); + _repeat_send(bus, &dword, &repeats, SPI_16BIT); } -void spi_repeat_send_32(uint8_t bus, uint32_t data,int32_t repeats) +void spi_repeat_send_32(uint8_t bus, uint32_t data, int32_t repeats) { - _repeat_send(bus,&data,&repeats, SPI_32BIT); + _repeat_send(bus, &data, &repeats, SPI_32BIT); } From 9300729533fb3601665d38c69afe5e24ebe59ddd Mon Sep 17 00:00:00 2001 From: UncleRus Date: Wed, 15 Mar 2017 21:08:44 +0500 Subject: [PATCH 155/349] FatFS update to R0.12c --- extras/fatfs/ff.c | 724 +++++++++++++++++++++++------------------- extras/fatfs/ff.h | 25 +- extras/fatfs/ffconf.h | 2 +- 3 files changed, 417 insertions(+), 334 deletions(-) diff --git a/extras/fatfs/ff.c b/extras/fatfs/ff.c index ac1e571..faac347 100644 --- a/extras/fatfs/ff.c +++ b/extras/fatfs/ff.c @@ -1,13 +1,13 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12b / +/ FatFs - Generic FAT file system module R0.12c / /-----------------------------------------------------------------------------/ / -/ Copyright (C) 2016, ChaN, all right reserved. +/ Copyright (C) 2017, ChaN, all right reserved. / / FatFs module is an open source software. Redistribution and use of FatFs in / source and binary forms, with or without modification, are permitted provided / that the following condition is met: - +/ / 1. Redistributions of source code must retain the above copyright notice, / this condition and the following disclaimer. / @@ -28,65 +28,11 @@ ---------------------------------------------------------------------------*/ -#if _FATFS != 68020 /* Revision ID */ +#if _FATFS != 68300 /* Revision ID */ #error Wrong include file (ff.h). #endif -#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } - - -/* Reentrancy related */ -#if _FS_REENTRANT -#if _USE_LFN == 1 -#error Static LFN work area cannot be used at thread-safe configuration -#endif -#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } -#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } -#else -#define ENTER_FF(fs) -#define LEAVE_FF(fs, res) return res -#endif - - - -/* Definitions of sector size */ -#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) -#error Wrong sector size configuration -#endif -#if _MAX_SS == _MIN_SS -#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ -#else -#define SS(fs) ((fs)->ssize) /* Variable sector size */ -#endif - - -/* Timestamp */ -#if _FS_NORTC == 1 -#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 -#error Invalid _FS_NORTC settings -#endif -#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) -#else -#define GET_FATTIME() get_fattime() -#endif - - -/* File lock controls */ -#if _FS_LOCK != 0 -#if _FS_READONLY -#error _FS_LOCK must be 0 at read-only configuration -#endif -typedef struct { - FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ - DWORD clu; /* Object ID 2, directory (0:root) */ - DWORD ofs; /* Object ID 3, directory offset */ - WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ -} FILESEM; -#endif - - - /* DBCS code ranges and SBCS upper conversion tables */ #if _CODE_PAGE == 932 /* Japanese Shift-JIS */ @@ -351,20 +297,20 @@ typedef struct { #endif /* _DF1S */ -/* File attribute bits (internal use) */ +/* Additional file attribute bits for internal use */ #define AM_VOL 0x08 /* Volume label */ #define AM_LFN 0x0F /* LFN entry */ #define AM_MASK 0x3F /* Mask of defined bits */ -/* File access control and file status flags (internal use) */ +/* Additional file access control and file status flags for internal use */ #define FA_SEEKEND 0x20 /* Seek to end of the file on file open */ #define FA_MODIFIED 0x40 /* File has been modified */ #define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */ -/* Name status flags */ -#define NSFLAG 11 /* Index of name status byte in fn[] */ +/* Name status flags in fn[] */ +#define NSFLAG 11 /* Index of the name status byte */ #define NS_LOSS 0x01 /* Out of 8.3 format */ #define NS_LFN 0x02 /* Force to create LFN entry */ #define NS_LAST 0x04 /* Last segment */ @@ -375,18 +321,17 @@ typedef struct { #define NS_NONAME 0x80 /* Not followed */ -/* Limits and boundaries (differ from specs but correct for real DOS/Windows) */ -#define MAX_FAT12 0xFF5 /* Maximum number of FAT12 clusters */ -#define MAX_FAT16 0xFFF5 /* Maximum number of FAT16 clusters */ -#define MAX_FAT32 0xFFFFFF5 /* Maximum number of FAT32 clusters */ -#define MAX_EXFAT 0x7FFFFFFD /* Maximum number of exFAT clusters (limited by implementation) */ -#define MAX_DIR 0x200000 /* Maximum size of FAT directory */ -#define MAX_DIR_EX 0x10000000 /* Maximum size of exFAT directory */ +/* Limits and boundaries */ +#define MAX_DIR 0x200000 /* Max size of FAT directory */ +#define MAX_DIR_EX 0x10000000 /* Max size of exFAT directory */ +#define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but correct for real DOS/Windows behavior) */ +#define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but correct for real DOS/Windows behavior) */ +#define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */ +#define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */ -/* FatFs refers the members in the FAT structures as byte array instead of -/ structure members because the structure is not binary compatible between -/ different platforms */ +/* FatFs refers the FAT structure as simple byte array instead of structure member +/ because the C structure is not binary compatible between different platforms */ #define BS_JmpBoot 0 /* x86 jump instruction (3-byte) */ #define BS_OEMName 3 /* OEM name (8-byte) */ @@ -432,19 +377,61 @@ typedef struct { #define BPB_FatSzEx 84 /* exFAT: FAT size [sector] (DWORD) */ #define BPB_DataOfsEx 88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */ #define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */ -#define BPB_RootClusEx 96 /* exFAT: Root directory cluster (DWORD) */ +#define BPB_RootClusEx 96 /* exFAT: Root directory start cluster (DWORD) */ #define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */ #define BPB_FSVerEx 104 /* exFAT: File system version (WORD) */ #define BPB_VolFlagEx 106 /* exFAT: Volume flags (BYTE) */ #define BPB_ActFatEx 107 /* exFAT: Active FAT flags (BYTE) */ -#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in byte (BYTE) */ -#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in sector (BYTE) */ +#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */ +#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */ #define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */ #define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */ #define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */ #define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ #define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */ +#define DIR_Name 0 /* Short file name (11-byte) */ +#define DIR_Attr 11 /* Attribute (BYTE) */ +#define DIR_NTres 12 /* Lower case flag (BYTE) */ +#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ +#define DIR_CrtTime 14 /* Created time (DWORD) */ +#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ +#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ +#define DIR_ModTime 22 /* Modified time (DWORD) */ +#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ +#define DIR_FileSize 28 /* File size (DWORD) */ +#define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */ +#define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */ +#define LDIR_Type 12 /* LFN: Entry type (BYTE) */ +#define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */ +#define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */ +#define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */ +#define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */ +#define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */ +#define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */ +#define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */ +#define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */ +#define XDIR_Attr 4 /* exFAT: File attribute (WORD) */ +#define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */ +#define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */ +#define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */ +#define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */ +#define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */ +#define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */ +#define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */ +#define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */ +#define XDIR_GenFlags 33 /* exFAT: General secondary flags (WORD) */ +#define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */ +#define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */ +#define XDIR_ValidFileSize 40 /* exFAT: Valid file size (QWORD) */ +#define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */ +#define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */ + +#define SZDIRE 32 /* Size of a directory entry */ +#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ +#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ +#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ + #define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ #define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ #define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ @@ -463,47 +450,68 @@ typedef struct { #define PTE_StLba 8 /* MBR PTE: Start in LBA */ #define PTE_SizLba 12 /* MBR PTE: Size in LBA */ -#define DIR_Name 0 /* Short file name (11-byte) */ -#define DIR_Attr 11 /* Attribute (BYTE) */ -#define DIR_NTres 12 /* Lower case flag (BYTE) */ -#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ -#define DIR_CrtTime 14 /* Created time (DWORD) */ -#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ -#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ -#define DIR_ModTime 22 /* Modified time (DWORD) */ -#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ -#define DIR_FileSize 28 /* File size (DWORD) */ -#define LDIR_Ord 0 /* LFN entry order and LLE flag (BYTE) */ -#define LDIR_Attr 11 /* LFN attribute (BYTE) */ -#define LDIR_Type 12 /* LFN type (BYTE) */ -#define LDIR_Chksum 13 /* Checksum of the SFN entry (BYTE) */ -#define LDIR_FstClusLO 26 /* Must be zero (WORD) */ -#define XDIR_Type 0 /* Type of exFAT directory entry (BYTE) */ -#define XDIR_NumLabel 1 /* Number of volume label characters (BYTE) */ -#define XDIR_Label 2 /* Volume label (11-WORD) */ -#define XDIR_CaseSum 4 /* Sum of case conversion table (DWORD) */ -#define XDIR_NumSec 1 /* Number of secondary entries (BYTE) */ -#define XDIR_SetSum 2 /* Sum of the set of directory entries (WORD) */ -#define XDIR_Attr 4 /* File attribute (WORD) */ -#define XDIR_CrtTime 8 /* Created time (DWORD) */ -#define XDIR_ModTime 12 /* Modified time (DWORD) */ -#define XDIR_AccTime 16 /* Last accessed time (DWORD) */ -#define XDIR_CrtTime10 20 /* Created time subsecond (BYTE) */ -#define XDIR_ModTime10 21 /* Modified time subsecond (BYTE) */ -#define XDIR_CrtTZ 22 /* Created timezone (BYTE) */ -#define XDIR_ModTZ 23 /* Modified timezone (BYTE) */ -#define XDIR_AccTZ 24 /* Last accessed timezone (BYTE) */ -#define XDIR_GenFlags 33 /* Gneral secondary flags (WORD) */ -#define XDIR_NumName 35 /* Number of file name characters (BYTE) */ -#define XDIR_NameHash 36 /* Hash of file name (WORD) */ -#define XDIR_ValidFileSize 40 /* Valid file size (QWORD) */ -#define XDIR_FstClus 52 /* First cluster of the file data (DWORD) */ -#define XDIR_FileSize 56 /* File/Directory size (QWORD) */ -#define SZDIRE 32 /* Size of a directory entry */ -#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ -#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ -#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ +/* Post process after fatal error on file operation */ +#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } + + +/* Reentrancy related */ +#if _FS_REENTRANT +#if _USE_LFN == 1 +#error Static LFN work area cannot be used at thread-safe configuration +#endif +#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } +#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } +#else +#define ENTER_FF(fs) +#define LEAVE_FF(fs, res) return res +#endif + + +/* Definitions of volume - partition conversion */ +#if _MULTI_PARTITION +#define LD2PD(vol) VolToPart[vol].pd /* Get physical drive number */ +#define LD2PT(vol) VolToPart[vol].pt /* Get partition index */ +#else +#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */ +#define LD2PT(vol) 0 /* Find first valid partition or in SFD */ +#endif + + +/* Definitions of sector size */ +#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) +#error Wrong sector size configuration +#endif +#if _MAX_SS == _MIN_SS +#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ +#else +#define SS(fs) ((fs)->ssize) /* Variable sector size */ +#endif + + +/* Timestamp */ +#if _FS_NORTC == 1 +#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 +#error Invalid _FS_NORTC settings +#endif +#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) +#else +#define GET_FATTIME() get_fattime() +#endif + + +/* File lock controls */ +#if _FS_LOCK != 0 +#if _FS_READONLY +#error _FS_LOCK must be 0 at read-only configuration +#endif +typedef struct { + FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ + DWORD clu; /* Object ID 2, containing directory (0:root) */ + DWORD ofs; /* Object ID 3, offset in the directory */ + WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ +} FILESEM; +#endif @@ -515,11 +523,11 @@ typedef struct { ---------------------------------------------------------------------------*/ -/* Remark: Variables here without initial value shall be guaranteed zero/null -/ at start-up. If not, either the linker or start-up routine being used is +/* Remark: Variables defined here without initial value shall be guaranteed +/ zero/null at start-up. If not, the linker option or start-up routine is / not compliance with C standard. */ -#if _VOLUMES < 1 || _VOLUMES > 9 +#if _VOLUMES < 1 || _VOLUMES > 10 #error Wrong _VOLUMES setting #endif static FATFS *FatFs[_VOLUMES]; /* Pointer to the file system objects (logical drives) */ @@ -533,27 +541,29 @@ static BYTE CurrVol; /* Current drive */ static FILESEM Files[_FS_LOCK]; /* Open object lock semaphores */ #endif -#if _USE_LFN == 0 /* Non-LFN configuration */ +#if _USE_LFN == 0 /* Non-LFN configuration */ #define DEF_NAMBUF #define INIT_NAMBUF(fs) #define FREE_NAMBUF() -#else + +#else /* LFN configuration */ #if _MAX_LFN < 12 || _MAX_LFN > 255 -#error Wrong _MAX_LFN setting +#error Wrong _MAX_LFN value #endif +#define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE) #if _USE_LFN == 1 /* LFN enabled with static working buffer */ #if _FS_EXFAT -static BYTE DirBuf[SZDIRE*19]; /* Directory entry block scratchpad buffer (19 entries in size) */ +static BYTE DirBuf[MAXDIRB(_MAX_LFN)]; /* Directory entry block scratchpad buffer */ #endif -static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ +static WCHAR LfnBuf[_MAX_LFN + 1]; /* LFN enabled with static working buffer */ #define DEF_NAMBUF #define INIT_NAMBUF(fs) #define FREE_NAMBUF() #elif _USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ #if _FS_EXFAT -#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[SZDIRE*19]; +#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[MAXDIRB(_MAX_LFN)]; #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; } #define FREE_NAMBUF() #else @@ -565,7 +575,7 @@ static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ #elif _USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ #if _FS_EXFAT #define DEF_NAMBUF WCHAR *lfn; -#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + SZDIRE*19); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + MAXDIRB(_MAX_LFN)); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } #define FREE_NAMBUF() ff_memfree(lfn) #else #define DEF_NAMBUF WCHAR *lfn; @@ -575,8 +585,9 @@ static WCHAR LfnBuf[_MAX_LFN+1]; /* LFN enabled with static working buffer */ #else #error Wrong _USE_LFN setting + #endif -#endif +#endif /* else _USE_LFN == 0 */ #ifdef _EXCVT static const BYTE ExCvt[] = _EXCVT; /* Upper conversion table for SBCS extended characters */ @@ -684,7 +695,9 @@ void mem_cpy (void* dst, const void* src, UINT cnt) { const BYTE *s = (const BYTE*)src; if (cnt) { - do *d++ = *s++; while (--cnt); + do { + *d++ = *s++; + } while (--cnt); } } @@ -693,7 +706,9 @@ static void mem_set (void* dst, int val, UINT cnt) { BYTE *d = (BYTE*)dst; - do *d++ = (BYTE)val; while (--cnt); + do { + *d++ = (BYTE)val; + } while (--cnt); } /* Compare memory block */ @@ -728,7 +743,7 @@ int lock_fs ( FATFS* fs /* File system object */ ) { - return ff_req_grant(fs->sobj); + return (fs && ff_req_grant(fs->sobj)) ? 1 : 0; } @@ -1030,17 +1045,21 @@ DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluste break; } } - if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the contiguous part? */ + if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the 1st fragment? */ val = clst + 1; /* Generate the value */ break; } if (obj->stat != 2) { /* Get value from FAT if FAT chain is valid */ - if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; - val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + if (obj->n_frag != 0) { /* Is it on the growing edge? */ + val = 0x7FFFFFFF; /* Generate EOC */ + } else { + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + } break; } } - /* go next */ + /* go to default */ #endif default: val = 1; /* Internal error */ @@ -1069,7 +1088,6 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ BYTE *p; FRESULT res = FR_INT_ERR; - if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */ switch (fs->fs_type) { case FS_FAT12 : /* Bitfield items */ @@ -1120,12 +1138,12 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ /* exFAT: Accessing FAT and Allocation Bitmap */ /*-----------------------------------------------------------------------*/ -/*---------------------------------------------*/ -/* exFAT: Find a contiguous free cluster block */ -/*---------------------------------------------*/ +/*--------------------------------------*/ +/* Find a contiguous free cluster block */ +/*--------------------------------------*/ static -DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Disk error */ +DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk error */ FATFS* fs, /* File system object */ DWORD clst, /* Cluster number to scan from */ DWORD ncl /* Number of contiguous clusters to find (1..) */ @@ -1146,12 +1164,12 @@ DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Dis do { bv = fs->win[i] & bm; bm <<= 1; /* Get bit value */ if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */ - val = 0; bm = 0; i = 4096; + val = 0; bm = 0; i = SS(fs); } if (!bv) { /* Is it a free cluster? */ - if (++ctr == ncl) return scl + 2; /* Check run length */ + if (++ctr == ncl) return scl + 2; /* Check if run length is sufficient for required */ } else { - scl = val; ctr = 0; /* Encountered a live cluster, restart to scan */ + scl = val; ctr = 0; /* Encountered a cluster in-use, restart to scan */ } if (val == clst) return 0; /* All cluster scanned? */ } while (bm); @@ -1161,9 +1179,9 @@ DWORD find_bitmap ( /* 0:No free cluster, 2..:Free cluster found, 0xFFFFFFFF:Dis } -/*------------------------------------*/ -/* exFAT: Set/Clear a block of bitmap */ -/*------------------------------------*/ +/*----------------------------------------*/ +/* Set/Clear a block of allocation bitmap */ +/*----------------------------------------*/ static FRESULT change_bitmap ( @@ -1177,7 +1195,6 @@ FRESULT change_bitmap ( UINT i; DWORD sect; - clst -= 2; /* The first bit corresponds to cluster #2 */ sect = fs->database + clst / 8 / SS(fs); /* Sector address (assuming bitmap is located top of the cluster heap) */ i = clst / 8 % SS(fs); /* Byte offset in the sector */ @@ -1199,11 +1216,11 @@ FRESULT change_bitmap ( /*---------------------------------------------*/ -/* Complement contiguous part of the FAT chain */ +/* Fill the first fragment of the FAT chain */ /*---------------------------------------------*/ static -FRESULT fill_fat_chain ( +FRESULT fill_first_frag ( _FDID* obj /* Pointer to the corresponding object */ ) { @@ -1220,6 +1237,28 @@ FRESULT fill_fat_chain ( return FR_OK; } + +/*---------------------------------------------*/ +/* Fill the last fragment of the FAT chain */ +/*---------------------------------------------*/ + +static +FRESULT fill_last_frag ( + _FDID* obj, /* Pointer to the corresponding object */ + DWORD lcl, /* Last cluster of the fragment */ + DWORD term /* Value to set the last FAT entry */ +) +{ + FRESULT res; + + while (obj->n_frag > 0) { /* Create the last chain on the FAT */ + res = put_fat(obj->fs, lcl - obj->n_frag + 1, (obj->n_frag > 1) ? lcl - obj->n_frag + 2 : term); + if (res != FR_OK) return res; + obj->n_frag--; + } + return FR_OK; +} + #endif /* _FS_EXFAT && !_FS_READONLY */ @@ -1270,7 +1309,7 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ #if _FS_EXFAT || _USE_TRIM if (ecl + 1 == nxt) { /* Is next cluster contiguous? */ ecl = nxt; - } else { /* End of contiguous cluster block */ + } else { /* End of contiguous cluster block */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap */ @@ -1290,10 +1329,10 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - if (pclst == 0) { /* Does object have no chain? */ + if (pclst == 0) { /* Does the object have no chain? */ obj->stat = 0; /* Change the object status 'initial' */ } else { - if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the chain got contiguous? */ + if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the chain get contiguous? */ obj->stat = 2; /* Change the object status 'contiguous' */ } } @@ -1325,7 +1364,7 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err } else { /* Stretch current chain */ cs = get_fat(obj, clst); /* Check the cluster status */ - if (cs < 2) return 1; /* Invalid value */ + if (cs < 2) return 1; /* Invalid FAT value */ if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ scl = clst; @@ -1339,13 +1378,22 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err if (res == FR_INT_ERR) return 1; if (res == FR_DISK_ERR) return 0xFFFFFFFF; if (clst == 0) { /* Is it a new chain? */ - obj->stat = 2; /* Set status 'contiguous chain' */ - } else { /* This is a stretched chain */ + obj->stat = 2; /* Set status 'contiguous' */ + } else { /* It is a stretched chain */ if (obj->stat == 2 && ncl != scl + 1) { /* Is the chain got fragmented? */ obj->n_cont = scl - obj->sclust; /* Set size of the contiguous part */ obj->stat = 3; /* Change status 'just fragmented' */ } } + if (obj->stat != 2) { /* Is the file non-contiguous? */ + if (ncl == clst + 1) { /* Is the cluster next to previous one? */ + obj->n_frag = obj->n_frag ? obj->n_frag + 1 : 2; /* Increment size of last framgent */ + } else { /* New fragment */ + if (obj->n_frag == 0) obj->n_frag = 1; + res = fill_last_frag(obj, clst, ncl); /* Fill last fragment on the FAT and link it to new one */ + if (res == FR_OK) obj->n_frag = 1; + } + } } else #endif { /* On the FAT12/16/32 volume */ @@ -1361,23 +1409,18 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ if (ncl == scl) return 0; /* No free cluster */ } - } - - if (_FS_EXFAT && fs->fs_type == FS_EXFAT && obj->stat == 2) { /* Is it a contiguous chain? */ - res = FR_OK; /* FAT does not need to be written */ - } else { res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ - if (res == FR_OK && clst) { + if (res == FR_OK && clst != 0) { res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ } } if (res == FR_OK) { /* Update FSINFO if function succeeded. */ fs->last_clst = ncl; - if (fs->free_clst < fs->n_fatent - 2) fs->free_clst--; + if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--; fs->fsi_flag |= 1; } else { - ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Create error status */ + ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Generate error status */ } return ncl; /* Return new cluster number or error status */ @@ -1519,7 +1562,7 @@ FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Cou } fs->winsect -= n; /* Restore window offset */ #else - if (!stretch) dp->sect = 0; /* If no stretch, report EOT (this is to suppress warning) */ + if (!stretch) dp->sect = 0; /* (this line is to suppress compiler warning) */ dp->sect = 0; return FR_NO_FILE; /* Report EOT */ #endif } @@ -1676,9 +1719,9 @@ int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ WCHAR wc, uc; - if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */ + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO is 0 */ - i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */ + i = ((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the LFN buffer */ for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ @@ -1809,7 +1852,9 @@ BYTE sum_sfn ( BYTE sum = 0; UINT n = 11; - do sum = (sum >> 1) + (sum << 7) + *dir++; while (--n); + do { + sum = (sum >> 1) + (sum << 7) + *dir++; + } while (--n); return sum; } @@ -1893,30 +1938,26 @@ void get_xdir_info ( #endif /* Get file name */ + di = 0; #if _LFN_UNICODE - if (dirb[XDIR_NumName] <= _MAX_LFN) { - for (si = SZDIRE * 2, di = 0; di < dirb[XDIR_NumName]; si += 2, di++) { - if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ld_word(dirb + si); /* Get a character */ - fno->fname[di] = w; /* Store it */ - } - } else { - di = 0; /* Buffer overflow and inaccessible object */ + for (si = SZDIRE * 2; di < dirb[XDIR_NumName]; si += 2, di++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ld_word(dirb + si); /* Get a character */ + if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow --> inaccessible object name */ + fno->fname[di] = w; /* Store it */ } #else - for (si = SZDIRE * 2, di = nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { - if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ld_word(dirb + si); /* Get a character */ - w = ff_convert(w, 0); /* Unicode -> OEM */ - if (w == 0) { di = 0; break; } /* Could not be converted and inaccessible object */ - if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */ - fno->fname[di++] = (char)(w >> 8); + for (si = SZDIRE * 2, nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + w = ff_convert(ld_word(dirb + si), 0); /* Get a character and Unicode -> OEM */ + if (_DF1S && w >= 0x100) { /* Is it a double byte char? (always false at SBCS cfg) */ + fno->fname[di++] = (char)(w >> 8); /* Put 1st byte of the DBC */ } - if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow and inaccessible object */ + if (w == 0 || di >= _MAX_LFN) { di = 0; break; } /* Invalid char or buffer overflow --> inaccessible object name */ fno->fname[di++] = (char)w; } #endif - if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object? */ + if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object name? */ fno->fname[di] = 0; /* Terminate file name */ fno->altname[0] = 0; /* No SFN */ @@ -1939,7 +1980,7 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ ) { FRESULT res; - UINT i, nent; + UINT i, sz_ent; BYTE* dirb = dp->obj.fs->dirbuf; /* Pointer to the on-memory direcotry entry block 85+C0+C1s */ @@ -1947,8 +1988,9 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR; - mem_cpy(dirb, dp->dir, SZDIRE); - nent = dirb[XDIR_NumSec] + 1; + mem_cpy(dirb + 0, dp->dir, SZDIRE); + sz_ent = (dirb[XDIR_NumSec] + 1) * SZDIRE; + if (sz_ent < 3 * SZDIRE || sz_ent > 19 * SZDIRE) return FR_INT_ERR; /* Load C0 entry */ res = dir_next(dp, 0); @@ -1957,40 +1999,39 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR; mem_cpy(dirb + SZDIRE, dp->dir, SZDIRE); + if (MAXDIRB(dirb[XDIR_NumName]) > sz_ent) return FR_INT_ERR; /* Load C1 entries */ - if (nent < 3 || nent > 19) return FR_NO_FILE; - i = SZDIRE * 2; nent *= SZDIRE; + i = SZDIRE * 2; /* C1 offset */ do { res = dir_next(dp, 0); if (res != FR_OK) return res; res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR; - mem_cpy(dirb + i, dp->dir, SZDIRE); - i += SZDIRE; - } while (i < nent); - - /* Sanity check */ - if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + if (i < MAXDIRB(_MAX_LFN)) mem_cpy(dirb + i, dp->dir, SZDIRE); + } while ((i += SZDIRE) < sz_ent); + /* Sanity check (do it when accessible object name) */ + if (i <= MAXDIRB(_MAX_LFN)) { + if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + } return FR_OK; } -#if !_FS_READONLY || _FS_RPATH != 0 +#if !_FS_READONLY || _FS_RPATH != 0 /*------------------------------------------------*/ /* exFAT: Load the object's directory entry block */ /*------------------------------------------------*/ static FRESULT load_obj_dir ( DIR* dp, /* Blank directory object to be used to access containing direcotry */ - const _FDID* obj /* Object with containing directory information */ + const _FDID* obj /* Object with its containing directory information */ ) { FRESULT res; - /* Open object containing directory */ dp->obj.fs = obj->fs; dp->obj.sclust = obj->c_scl; @@ -1998,7 +2039,7 @@ FRESULT load_obj_dir ( dp->obj.objsize = obj->c_size & 0xFFFFFF00; dp->blk_ofs = obj->c_ofs; - res = dir_sdi(dp, dp->blk_ofs); /* Goto the block location */ + res = dir_sdi(dp, dp->blk_ofs); /* Goto object's entry block */ if (res == FR_OK) { res = load_xdir(dp); /* Load the object's entry block */ } @@ -2055,24 +2096,25 @@ void create_xdir ( WCHAR chr; - mem_set(dirb, 0, 2 * SZDIRE); /* Initialize 85+C0 entry */ + /* Create 85+C0 entry */ + mem_set(dirb, 0, 2 * SZDIRE); dirb[XDIR_Type] = 0x85; dirb[XDIR_Type + SZDIRE] = 0xC0; - st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ - i = SZDIRE * 2; /* C1 offset */ - nc = 0; nb = 1; chr = 1; + /* Create C1 entries */ + nc = 0; nb = 1; chr = 1; i = SZDIRE * 2; do { dirb[i++] = 0xC1; dirb[i++] = 0; /* Entry type C1 */ do { /* Fill name field */ if (chr && (chr = lfn[nc]) != 0) nc++; /* Get a character if exist */ - st_word(dirb + i, chr); i += 2; /* Store it */ - } while (i % SZDIRE); + st_word(dirb + i, chr); /* Store it */ + } while ((i += 2) % SZDIRE != 0); nb++; } while (lfn[nc]); /* Fill next entry if any char follows */ dirb[XDIR_NumName] = nc; /* Set name length */ - dirb[XDIR_NumSec] = nb; /* Set number of C0+C1s */ + dirb[XDIR_NumSec] = nb; /* Set block length */ + st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ } #endif /* !_FS_READONLY */ @@ -2102,7 +2144,9 @@ FRESULT dir_read ( res = move_window(fs, dp->sect); if (res != FR_OK) break; c = dp->dir[DIR_Name]; /* Test for the entry type */ - if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of the directory */ + if (c == 0) { + res = FR_NO_FILE; break; /* Reached to end of the directory */ + } #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ if (_USE_LABEL && vol) { @@ -2183,7 +2227,10 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */ while ((res = dir_read(dp, 0)) == FR_OK) { /* Read an item */ - if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip the comparison if hash value mismatched */ +#if _MAX_LFN < 255 + if (fs->dirbuf[XDIR_NumName] > _MAX_LFN) continue; /* Skip comparison if inaccessible object name */ +#endif + if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip comparison if hash mismatched */ for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compare the name */ if ((di % SZDIRE) == 0) di += 2; if (ff_wtoupper(ld_word(fs->dirbuf + di)) != ff_wtoupper(fs->lfnbuf[ni])) break; @@ -2254,7 +2301,7 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S if (dp->fn[NSFLAG] & (NS_DOT | NS_NONAME)) return FR_INVALID_NAME; /* Check name validity */ - for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */ + for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ @@ -2263,19 +2310,20 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S nent = (nlen + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */ res = dir_alloc(dp, nent); /* Allocate entries */ if (res != FR_OK) return res; - dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set block position */ + dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set the allocated entry block offset */ if (dp->obj.sclust != 0 && (dp->obj.stat & 4)) { /* Has the sub-directory been stretched? */ - dp->obj.stat &= 3; - dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase object size by cluster size */ - res = fill_fat_chain(&dp->obj); /* Complement FAT chain if needed */ + dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */ + res = fill_first_frag(&dp->obj); /* Fill first fragment on the FAT if needed */ + if (res != FR_OK) return res; + res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + if (res != FR_OK) return res; + res = load_obj_dir(&dj, &dp->obj); /* Load the object status */ if (res != FR_OK) return res; - res = load_obj_dir(&dj, &dp->obj); - if (res != FR_OK) return res; /* Load the object status */ st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; - res = store_xdir(&dj); /* Store the object status */ + res = store_xdir(&dj); /* Store the object status */ if (res != FR_OK) return res; } @@ -2454,7 +2502,7 @@ void get_fileinfo ( /* No return code */ #endif fno->altname[j] = c; if (!lfv) { - if (IsUpper(c) && (dp->dir[DIR_NTres] & (i >= 9 ? NS_EXT : NS_BODY))) { + if (IsUpper(c) && (dp->dir[DIR_NTres] & ((i >= 9) ? NS_EXT : NS_BODY))) { c += 0x20; /* To lower */ } fno->fname[j] = c; @@ -2775,14 +2823,16 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ #if _FS_RPATH != 0 if (*path != '/' && *path != '\\') { /* Without heading separator */ - obj->sclust = fs->cdir; /* Start from the current directory */ + obj->sclust = fs->cdir; /* Start from current directory */ } else #endif { /* With heading separator */ while (*path == '/' || *path == '\\') path++; /* Strip heading separator */ - obj->sclust = 0; /* Start from the root directory */ + obj->sclust = 0; /* Start from root directory */ } -#if _FS_EXFAT && _FS_RPATH != 0 +#if _FS_EXFAT + obj->n_frag = 0; /* Invalidate last fragment counter of the object */ +#if _FS_RPATH != 0 if (fs->fs_type == FS_EXFAT && obj->sclust) { /* Retrieve the sub-directory status if needed */ DIR dj; @@ -2794,6 +2844,7 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ obj->objsize = ld_dword(fs->dirbuf + XDIR_FileSize); obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; } +#endif #endif if ((UINT)*path < ' ') { /* Null path name is the origin directory itself */ @@ -2824,8 +2875,8 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ res = FR_NO_PATH; break; } #if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { - obj->c_scl = obj->sclust; /* Save containing directory information for next dir */ + if (fs->fs_type == FS_EXFAT) { /* Save containing directory information for next dir */ + obj->c_scl = obj->sclust; obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; obj->c_ofs = dp->blk_ofs; obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Open next directory */ @@ -2858,7 +2909,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ UINT i; int vol = -1; #if _STR_VOLUME_ID /* Find string drive id */ - static const char* const str[] = {_VOLUME_STRS}; + static const char* const volid[] = {_VOLUME_STRS}; const char *sp; char c; TCHAR tc; @@ -2869,7 +2920,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the path */ if (*tt == ':') { /* If a ':' is exist in the path name */ tp = *path; - i = *tp++ - '0'; + i = *tp++ - '0'; if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ vol = (int)i; @@ -2880,7 +2931,7 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ else { /* No numeric drive number, find string drive id */ i = 0; tt++; do { - sp = str[i]; tp = *path; + sp = volid[i]; tp = *path; do { /* Compare a string drive id with path name */ c = *sp++; tc = *tp++; if (IsLower(tc)) tc -= 0x20; @@ -2913,13 +2964,13 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ static BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk error */ FATFS* fs, /* File system object */ - DWORD sect /* Sector# (lba) to check if it is an FAT-VBR or not */ + DWORD sect /* Sector# (lba) to load and check if it is an FAT-VBR or not */ ) { fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ if (move_window(fs, sect) != FR_OK) return 4; /* Load boot record */ - if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed at offset 510 even if the sector size is >512) */ + if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed here even if the sector size is >512) */ if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90)) { if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string */ @@ -2989,29 +3040,30 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ return FR_WRITE_PROTECTED; } -#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ +#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; #endif - /* Find an FAT partition on the drive. Supports only generic partitioning, FDISK and SFD. */ + + /* Find an FAT partition on the drive. Supports only generic partitioning rules, FDISK and SFD. */ bsect = 0; fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT-VBR as SFD */ if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) { /* Not an FAT-VBR or forced partition number */ - for (i = 0; i < 4; i++) { /* Get partition offset */ + for (i = 0; i < 4; i++) { /* Get partition offset */ pt = fs->win + (MBR_Table + i * SZ_PTE); br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; } - i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ + i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ if (i) i--; - do { /* Find an FAT volume */ + do { /* Find an FAT volume */ bsect = br[i]; fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ - } while (!LD2PT(vol) && fmt >= 2 && ++i < 4); + } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4); } if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */ if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ - /* An FAT volume is found. Following code initializes the file system object */ + /* An FAT volume is found (bsect). Following code initializes the file system object */ #if _FS_EXFAT if (fmt == 1) { @@ -3022,8 +3074,9 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT revision (Must be 1.0) */ - if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ + if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) { /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ return FR_NO_FILESYSTEM; + } maxlba = ld_qword(fs->win + BPB_TotSecEx) + bsect; /* Last LBA + 1 of the volume */ if (maxlba >= 0x100000000) return FR_NO_FILESYSTEM; /* (It cannot be handled in 32-bit LBA) */ @@ -3062,49 +3115,49 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ { if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must be equal to the physical sector size) */ - fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ + fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); fs->fsize = fasize; - fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ + fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */ - fasize *= fs->n_fats; /* Number of sectors for FAT area */ + fasize *= fs->n_fats; /* Number of sectors for FAT area */ - fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ + fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power of 2) */ fs->n_rootdir = ld_word(fs->win + BPB_RootEntCnt); /* Number of root directory entries */ if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ - tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ + tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); - nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ - if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ + nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ + if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ /* Determine the FAT sub type */ sysect = nrsv + fasize + fs->n_rootdir / (SS(fs) / SZDIRE); /* RSV + FAT + DIR */ - if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ - nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ - if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ + if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ fmt = FS_FAT32; if (nclst <= MAX_FAT16) fmt = FS_FAT16; if (nclst <= MAX_FAT12) fmt = FS_FAT12; /* Boundaries and Limits */ - fs->n_fatent = nclst + 2; /* Number of FAT entries */ - fs->volbase = bsect; /* Volume start sector */ - fs->fatbase = bsect + nrsv; /* FAT start sector */ - fs->database = bsect + sysect; /* Data start sector */ + fs->n_fatent = nclst + 2; /* Number of FAT entries */ + fs->volbase = bsect; /* Volume start sector */ + fs->fatbase = bsect + nrsv; /* FAT start sector */ + fs->database = bsect + sysect; /* Data start sector */ if (fmt == FS_FAT32) { if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0) */ - if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ + if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ - szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ + szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ } else { if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM;/* (BPB_RootEntCnt must not be 0) */ - fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ - szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ + fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ + szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1); } if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not be less than the size needed) */ @@ -3135,18 +3188,18 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ #endif /* !_FS_READONLY */ } - fs->fs_type = fmt; /* FAT sub-type */ - fs->id = ++Fsid; /* File system mount ID */ + fs->fs_type = fmt; /* FAT sub-type */ + fs->id = ++Fsid; /* File system mount ID */ #if _USE_LFN == 1 fs->lfnbuf = LfnBuf; /* Static LFN working buffer */ #if _FS_EXFAT - fs->dirbuf = DirBuf; /* Static directory block working buuffer */ + fs->dirbuf = DirBuf; /* Static directory block scratchpad buuffer */ #endif #endif #if _FS_RPATH != 0 - fs->cdir = 0; /* Initialize current directory */ + fs->cdir = 0; /* Initialize current directory */ #endif -#if _FS_LOCK != 0 /* Clear file lock semaphores */ +#if _FS_LOCK != 0 /* Clear file lock semaphores */ clear_lock(fs); #endif return FR_OK; @@ -3167,14 +3220,13 @@ FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ { FRESULT res; - if (!obj || !obj->fs || !obj->fs->fs_type || obj->fs->id != obj->id || (disk_status(obj->fs->drv) & STA_NOINIT)) { - *fs = 0; /* The object is invalid */ - res = FR_INVALID_OBJECT; + *fs = 0; + res = FR_INVALID_OBJECT; /* The object is invalid */ } else { *fs = obj->fs; /* Owner file sytem object */ ENTER_FF(obj->fs); /* Lock file system */ - res = FR_OK; + res = FR_OK; /* Valid object */ } return res; } @@ -3281,12 +3333,13 @@ FRESULT f_open ( /* Create or Open a file */ if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) { if (res != FR_OK) { /* No file, create new */ - if (res == FR_NO_FILE) /* There is no file to open, create a new entry */ + if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ #if _FS_LOCK != 0 res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES; #else res = dir_register(&dj); #endif + } mode |= FA_CREATE_ALWAYS; /* File is created */ } else { /* Any object is already existing */ @@ -3305,6 +3358,7 @@ FRESULT f_open ( fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + fp->obj.n_frag = 0; /* Initialize directory entry block */ st_dword(fs->dirbuf + XDIR_CrtTime, dw); /* Set created time */ fs->dirbuf[XDIR_CrtTime10] = 0; @@ -3379,16 +3433,16 @@ FRESULT f_open ( if (res == FR_OK) { #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get allocation info */ - fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; - fp->obj.c_scl = dj.obj.sclust; + fp->obj.c_scl = dj.obj.sclust; /* Get containing directory info */ fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; fp->obj.c_ofs = dj.blk_ofs; + fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ + fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; } else #endif { - fp->obj.sclust = ld_clust(fs, dj.dir); /* Get allocation info */ + fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */ fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); } #if _USE_FASTSEEK @@ -3672,8 +3726,10 @@ FRESULT f_sync ( FATFS *fs; DWORD tm; BYTE *dir; +#if _FS_EXFAT + DIR dj; DEF_NAMBUF - +#endif res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) { @@ -3688,10 +3744,11 @@ FRESULT f_sync ( tm = GET_FATTIME(); /* Modified time */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - res = fill_fat_chain(&fp->obj); /* Create FAT chain if needed */ + res = fill_first_frag(&fp->obj); /* Fill first fragment on the FAT if needed */ + if (res == FR_OK) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } if (res == FR_OK) { - DIR dj; - INIT_NAMBUF(fs); res = load_obj_dir(&dj, &fp->obj); /* Load directory entry block */ if (res == FR_OK) { @@ -3944,7 +4001,14 @@ FRESULT f_lseek ( #endif res = validate(&fp->obj, &fs); /* Check validity of the file object */ - if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + if (res == FR_OK) res = (FRESULT)fp->err; +#if _FS_EXFAT && !_FS_READONLY + if (res == FR_OK && fs->fs_type == FS_EXFAT) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } +#endif + if (res != FR_OK) LEAVE_FF(fs, res); + #if _USE_FASTSEEK if (fp->cltbl) { /* Fast seek */ if (ofs == CREATE_LINKMAP) { /* Create CLMT */ @@ -4109,16 +4173,16 @@ FRESULT f_opendir ( if (obj->attr & AM_DIR) { /* This object is a sub-directory */ #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { - obj->c_scl = obj->sclust; /* Save containing directory inforamation */ + obj->c_scl = obj->sclust; /* Get containing directory inforamation */ obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; obj->c_ofs = dp->blk_ofs; - obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object location and status */ + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; } else #endif { - obj->sclust = ld_clust(fs, dp->dir); /* Get object location */ + obj->sclust = ld_clust(fs, dp->dir); /* Get object allocation info */ } } else { /* This object is a file */ res = FR_NO_PATH; @@ -4410,7 +4474,7 @@ FRESULT f_truncate ( if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ - if (fp->obj.objsize > fp->fptr) { + if (fp->fptr < fp->obj.objsize) { /* Process when fptr is not on the eof */ if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ res = remove_chain(&fp->obj, fp->obj.sclust, 0); fp->obj.sclust = 0; @@ -4493,7 +4557,7 @@ FRESULT f_unlink ( { dclst = ld_clust(fs, dj.dir); } - if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory ? */ + if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory? */ #if _FS_RPATH != 0 if (dclst == fs->cdir) { /* Is it the current directory? */ res = FR_DENIED; @@ -4597,7 +4661,9 @@ FRESULT f_mkdir ( mem_set(dir, 0, SS(fs)); } } - if (res == FR_OK) res = dir_register(&dj); /* Register the object to the directoy */ + if (res == FR_OK) { + res = dir_register(&dj); /* Register the object to the directoy */ + } if (res == FR_OK) { #if _FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ @@ -4617,7 +4683,9 @@ FRESULT f_mkdir ( dir[DIR_Attr] = AM_DIR; /* Attribute */ fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } else { remove_chain(&dj.obj, dcl, 0); /* Could not register, remove cluster chain */ } @@ -4648,7 +4716,7 @@ FRESULT f_rename ( DEF_NAMBUF - get_ldnumber(&path_new); /* Ignore drive number of new name */ + get_ldnumber(&path_new); /* Snip drive number of new name off */ res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ if (res == FR_OK) { djo.obj.fs = fs; @@ -4656,7 +4724,9 @@ FRESULT f_rename ( res = follow_path(&djo, path_old); /* Check old object */ if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check validity of name */ #if _FS_LOCK != 0 - if (res == FR_OK) res = chk_lock(&djo, 2); + if (res == FR_OK) { + res = chk_lock(&djo, 2); + } #endif if (res == FR_OK) { /* Object to be renamed is found */ #if _FS_EXFAT @@ -4678,7 +4748,7 @@ FRESULT f_rename ( mem_cpy(fs->dirbuf, buf, SZDIRE * 2); fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn; st_word(fs->dirbuf + XDIR_NameHash, nh); -/* Start of critical section where any interruption can cause a cross-link */ +/* Start of critical section where an interruption can cause a cross-link */ res = store_xdir(&djn); } } @@ -4703,7 +4773,7 @@ FRESULT f_rename ( if (!dw) { res = FR_INT_ERR; } else { -/* Start of critical section where any interruption can cause a cross-link */ +/* Start of critical section where an interruption can cause a cross-link */ res = move_window(fs, dw); dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ if (res == FR_OK && dir[1] == '.') { @@ -4721,7 +4791,7 @@ FRESULT f_rename ( res = sync_fs(fs); } } -/* End of critical section */ +/* End of the critical section */ } FREE_NAMBUF(); } @@ -4771,7 +4841,9 @@ FRESULT f_chmod ( dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */ fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } FREE_NAMBUF(); } @@ -4814,7 +4886,9 @@ FRESULT f_utime ( st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); fs->wflag = 1; } - if (res == FR_OK) res = sync_fs(fs); + if (res == FR_OK) { + res = sync_fs(fs); + } } FREE_NAMBUF(); } @@ -4902,9 +4976,14 @@ FRESULT f_getlabel ( res = move_window(fs, fs->volbase); if (res == FR_OK) { switch (fs->fs_type) { - case FS_EXFAT: di = BPB_VolIDEx; break; - case FS_FAT32: di = BS_VolID32; break; - default: di = BS_VolID; + case FS_EXFAT: + di = BPB_VolIDEx; break; + + case FS_FAT32: + di = BS_VolID32; break; + + default: + di = BS_VolID; } *vsn = ld_dword(fs->win + di); } @@ -5074,11 +5153,11 @@ FRESULT f_expand ( scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */ if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */ if (scl == 0xFFFFFFFF) res = FR_DISK_ERR; - if (res == FR_OK) { - if (opt) { + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ res = change_bitmap(fs, scl, tcl, 1); /* Mark the cluster block 'in use' */ lclst = scl + tcl - 1; - } else { + } else { /* Set it as suggested point for next allocation */ lclst = scl - 1; } } @@ -5098,14 +5177,14 @@ FRESULT f_expand ( } if (clst == stcl) { res = FR_DENIED; break; } /* No contiguous cluster? */ } - if (res == FR_OK) { - if (opt) { + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ for (clst = scl, n = tcl; n; clst++, n--) { /* Create a cluster chain on the FAT */ res = put_fat(fs, clst, (n == 1) ? 0xFFFFFFFF : clst + 1); if (res != FR_OK) break; lclst = clst; } - } else { + } else { /* Set it as suggested point for next allocation */ lclst = scl - 1; } } @@ -5113,12 +5192,12 @@ FRESULT f_expand ( if (res == FR_OK) { fs->last_clst = lclst; /* Set suggested start cluster to start next */ - if (opt) { + if (opt) { /* Is it allocated now? */ fp->obj.sclust = scl; /* Update object allocation information */ fp->obj.objsize = fsz; if (_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ fp->flag |= FA_MODIFIED; - if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */ + if (fs->free_clst <= fs->n_fatent - 2) { /* Update FSINFO */ fs->free_clst -= tcl; fs->fsi_flag |= 1; } @@ -5205,13 +5284,13 @@ FRESULT f_forward ( #if _USE_MKFS && !_FS_READONLY /*-----------------------------------------------------------------------*/ -/* Create FAT file system on the logical drive */ +/* Create an FAT/exFAT volume */ /*-----------------------------------------------------------------------*/ FRESULT f_mkfs ( const TCHAR* path, /* Logical drive number */ BYTE opt, /* Format option */ - DWORD au, /* Size of allocation unit [byte] */ + DWORD au, /* Size of allocation unit (cluster) [byte] */ void* work, /* Pointer to working buffer */ UINT len /* Size of working buffer */ ) @@ -5236,7 +5315,7 @@ FRESULT f_mkfs ( /* Check mounted drive and clear work area */ vol = get_ldnumber(&path); /* Get target logical drive */ if (vol < 0) return FR_INVALID_DRIVE; - if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear mounted volume */ + if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ pdrv = LD2PD(vol); /* Physical drive */ part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ @@ -5245,7 +5324,7 @@ FRESULT f_mkfs ( if (stat & STA_NOINIT) return FR_NOT_READY; if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk & (sz_blk - 1))) sz_blk = 1; /* Erase block to align data area */ -#if _MAX_SS != _MIN_SS /* Get sector size of the medium */ +#if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; #else @@ -5304,7 +5383,7 @@ FRESULT f_mkfs ( if (sz_vol < 0x1000) return FR_MKFS_ABORTED; /* Too small volume? */ #if _USE_TRIM - tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased */ + tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area may be erased */ disk_ioctl(pdrv, CTRL_TRIM, tbl); #endif /* Determine FAT location, data location and number of clusters */ @@ -5340,11 +5419,12 @@ FRESULT f_mkfs ( ch = 0xFFFF; st = 2; break; /* Compress the no-case block if run is >= 128 */ } st = 1; /* Do not compress short run */ - /* continue */ + /* go to next case */ case 1: ch = si++; /* Fill the short run */ if (--j == 0) st = 0; break; + default: ch = (WCHAR)j; si += j; /* Number of chars to skip */ st = 0; @@ -5626,14 +5706,14 @@ FRESULT f_mkfs ( } } - if (_MULTI_PARTITION && part != 0) { + /* Update partition information */ + if (_MULTI_PARTITION && part != 0) { /* Created in the existing partition */ /* Update system ID in the partition table */ if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Read the MBR */ - buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system type */ + buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system ID */ if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it back to the MBR */ - } else { - if (!(opt & FM_SFD)) { - /* Create partition table in FDISK format */ + } else { /* Created as a new single partition */ + if (!(opt & FM_SFD)) { /* Create partition table if in FDISK format */ mem_set(buf, 0, ss); st_word(buf + BS_55AA, 0xAA55); /* MBR signature */ pte = buf + MBR_Table; /* Create partition table for single partition in the drive */ @@ -5642,7 +5722,7 @@ FRESULT f_mkfs ( pte[PTE_StSec] = 1; /* Start sector */ pte[PTE_StCyl] = 0; /* Start cylinder */ pte[PTE_System] = sys; /* System type */ - n = (b_vol + sz_vol) / (63 * 255); /* (End CHS is incorrect) */ + n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */ pte[PTE_EdHead] = 254; /* End head */ pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ @@ -5681,7 +5761,7 @@ FRESULT f_fdisk ( if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_disk)) return FR_DISK_ERR; - /* Determine the CHS without any care of the drive geometry */ + /* Determine the CHS without any consideration of the drive geometry */ for (n = 16; n < 256 && sz_disk / n / 63 > 1024; n *= 2) ; if (n == 256) n--; e_hd = n - 1; @@ -5692,7 +5772,7 @@ FRESULT f_fdisk ( mem_set(buf, 0, _MAX_SS); p = buf + MBR_Table; b_cyl = 0; for (i = 0; i < 4; i++, p += SZ_PTE) { - p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; + p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; /* Number of cylinders */ if (!p_cyl) continue; s_part = (DWORD)sz_cyl * b_cyl; sz_part = (DWORD)sz_cyl * p_cyl; @@ -5702,19 +5782,19 @@ FRESULT f_fdisk ( } else { s_hd = 0; } - e_cyl = b_cyl + p_cyl - 1; + e_cyl = b_cyl + p_cyl - 1; /* End cylinder */ if (e_cyl >= tot_cyl) return FR_INVALID_PARAMETER; /* Set partition table */ p[1] = s_hd; /* Start head */ p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */ p[3] = (BYTE)b_cyl; /* Start cylinder */ - p[4] = 0x06; /* System type (temporary setting) */ + p[4] = 0x07; /* System type (temporary setting) */ p[5] = e_hd; /* End head */ p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */ p[7] = (BYTE)e_cyl; /* End cylinder */ st_dword(p + 8, s_part); /* Start sector in LBA */ - st_dword(p + 12, sz_part); /* Partition size */ + st_dword(p + 12, sz_part); /* Number of sectors */ /* Next partition */ b_cyl += p_cyl; @@ -5756,17 +5836,17 @@ TCHAR* f_gets ( c = s[0]; if (c >= 0x80) { if (c < 0xC0) continue; /* Skip stray trailer */ - if (c < 0xE0) { /* Two-byte sequence */ + if (c < 0xE0) { /* Two-byte sequence (0x80-0x7FF) */ f_read(fp, s, 1, &rc); if (rc != 1) break; c = (c & 0x1F) << 6 | (s[0] & 0x3F); - if (c < 0x80) c = '?'; + if (c < 0x80) c = '?'; /* Reject invalid code range */ } else { - if (c < 0xF0) { /* Three-byte sequence */ + if (c < 0xF0) { /* Three-byte sequence (0x800-0xFFFF) */ f_read(fp, s, 2, &rc); if (rc != 2) break; c = c << 12 | (s[0] & 0x3F) << 6 | (s[1] & 0x3F); - if (c < 0x800) c = '?'; + if (c < 0x800) c = '?'; /* Reject invalid code range */ } else { /* Reject four-byte sequence */ c = '?'; } @@ -5998,17 +6078,23 @@ int f_printf ( while (*p) putc_bfd(&pb, *p++); while (j++ < w) putc_bfd(&pb, ' '); continue; + case 'C' : /* Character */ putc_bfd(&pb, (TCHAR)va_arg(arp, int)); continue; + case 'B' : /* Binary */ r = 2; break; + case 'O' : /* Octal */ r = 8; break; + case 'D' : /* Signed decimal */ case 'U' : /* Unsigned decimal */ r = 10; break; + case 'X' : /* Hexdecimal */ r = 16; break; + default: /* Unknown type (pass-through) */ putc_bfd(&pb, c); continue; } @@ -6028,7 +6114,9 @@ int f_printf ( if (f & 8) str[i++] = '-'; j = i; d = (f & 1) ? '0' : ' '; while (!(f & 2) && j++ < w) putc_bfd(&pb, d); - do putc_bfd(&pb, str[--i]); while (i); + do { + putc_bfd(&pb, str[--i]); + } while (i); while (j++ < w) putc_bfd(&pb, d); } diff --git a/extras/fatfs/ff.h b/extras/fatfs/ff.h index 981a886..f902519 100644 --- a/extras/fatfs/ff.h +++ b/extras/fatfs/ff.h @@ -1,8 +1,8 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12b / +/ FatFs - Generic FAT file system module R0.12c / /-----------------------------------------------------------------------------/ / -/ Copyright (C) 2016, ChaN, all right reserved. +/ Copyright (C) 2017, ChaN, all right reserved. / / FatFs module is an open source software. Redistribution and use of FatFs in / source and binary forms, with or without modification, are permitted provided @@ -19,7 +19,7 @@ #ifndef _FATFS -#define _FATFS 68020 /* Revision ID */ +#define _FATFS 68300 /* Revision ID */ #ifdef __cplusplus extern "C" { @@ -42,13 +42,6 @@ typedef struct { BYTE pt; /* Partition: 0:Auto detect, 1-4:Forced partition) */ } PARTITION; extern PARTITION VolToPart[]; /* Volume - Partition resolution table */ -#define LD2PD(vol) (VolToPart[vol].pd) /* Get physical drive number */ -#define LD2PT(vol) (VolToPart[vol].pt) /* Get partition index */ - -#else /* Single partition configuration */ -#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is bound to the same physical drive number */ -#define LD2PT(vol) 0 /* Find first valid partition or in SFD */ - #endif @@ -140,14 +133,15 @@ typedef struct { FATFS* fs; /* Pointer to the owner file system object */ WORD id; /* Owner file system mount ID */ BYTE attr; /* Object attribute */ - BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:got flagmented, b2:sub-directory stretched) */ + BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:flagmented in this session, b2:sub-directory stretched) */ DWORD sclust; /* Object start cluster (0:no cluster or root directory) */ FSIZE_t objsize; /* Object size (valid when sclust != 0) */ #if _FS_EXFAT - DWORD n_cont; /* Size of coutiguous part, clusters - 1 (valid when stat == 3) */ + DWORD n_cont; /* Size of first fragment, clusters - 1 (valid when stat == 3) */ + DWORD n_frag; /* Size of last fragment needs to be written (valid when not zero) */ DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ - DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0) */ + DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0 and non-directory object) */ #endif #if _FS_LOCK != 0 UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ @@ -163,7 +157,7 @@ typedef struct { BYTE flag; /* File status flags */ BYTE err; /* Abort flag (error code) */ FSIZE_t fptr; /* File read/write pointer (Zeroed on file open) */ - DWORD clust; /* Current cluster of fpter (invalid when fprt is 0) */ + DWORD clust; /* Current cluster of fpter (invalid when fptr is 0) */ DWORD sect; /* Sector number appearing in buf[] (0:invalid) */ #if !_FS_READONLY DWORD dir_sect; /* Sector number containing the directory entry */ @@ -185,7 +179,7 @@ typedef struct { _FDID obj; /* Object identifier */ DWORD dptr; /* Current read/write offset */ DWORD clust; /* Current cluster */ - DWORD sect; /* Current sector */ + DWORD sect; /* Current sector (0:Read operation has terminated) */ BYTE* dir; /* Pointer to the directory item in the win[] */ BYTE fn[12]; /* SFN (in/out) {body[8],ext[3],status[1]} */ #if _USE_LFN != 0 @@ -285,6 +279,7 @@ TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the fil #define f_size(fp) ((fp)->obj.objsize) #define f_rewind(fp) f_lseek((fp), 0) #define f_rewinddir(dp) f_readdir((dp), 0) +#define f_rmdir(path) f_unlink(path) #ifndef EOF #define EOF (-1) diff --git a/extras/fatfs/ffconf.h b/extras/fatfs/ffconf.h index 7962e2a..a97a6ae 100644 --- a/extras/fatfs/ffconf.h +++ b/extras/fatfs/ffconf.h @@ -1,7 +1,7 @@ /*---------------------------------------------------------------------------/ / FatFs - FAT file system module configuration file /---------------------------------------------------------------------------*/ -#define _FFCONF 68020 /* Revision ID */ +#define _FFCONF 68300 /* Revision ID */ /*---------------------------------------------------------------------------/ / Function Configurations From 03597d9162a2fcbdd32e4d187b07a021c221d613 Mon Sep 17 00:00:00 2001 From: Andrew Clink Date: Mon, 20 Mar 2017 12:56:17 -0700 Subject: [PATCH 156/349] Make FreeRTOS hooks weak; Add example --- core/app_main.c | 4 +- examples/tick_idle_hooks/FreeRTOSConfig.h | 10 ++++ examples/tick_idle_hooks/Makefile | 3 ++ examples/tick_idle_hooks/hooks_example.c | 56 +++++++++++++++++++++++ 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 examples/tick_idle_hooks/FreeRTOSConfig.h create mode 100644 examples/tick_idle_hooks/Makefile create mode 100644 examples/tick_idle_hooks/hooks_example.c diff --git a/core/app_main.c b/core/app_main.c index 05ad952..e56b0ab 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -236,12 +236,12 @@ void IRAM vApplicationStackOverflowHook(TaskHandle_t task, char *task_name) { } // .text+0x3d8 -void IRAM vApplicationIdleHook(void) { +void __attribute__((weak)) IRAM vApplicationIdleHook(void) { printf("idle %u\n", WDEV.SYS_TIME); } // .text+0x404 -void IRAM vApplicationTickHook(void) { +void __attribute__((weak)) IRAM vApplicationTickHook(void) { printf("tick %u\n", WDEV.SYS_TIME); } diff --git a/examples/tick_idle_hooks/FreeRTOSConfig.h b/examples/tick_idle_hooks/FreeRTOSConfig.h new file mode 100644 index 0000000..e21d827 --- /dev/null +++ b/examples/tick_idle_hooks/FreeRTOSConfig.h @@ -0,0 +1,10 @@ +/** + + Configuration overrides for FreeRTOS. + +**/ + +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 1 + +#include_next "FreeRTOSConfig.h" \ No newline at end of file diff --git a/examples/tick_idle_hooks/Makefile b/examples/tick_idle_hooks/Makefile new file mode 100644 index 0000000..717b163 --- /dev/null +++ b/examples/tick_idle_hooks/Makefile @@ -0,0 +1,3 @@ +# Simple makefile for simple example +PROGRAM=simple +include ../../common.mk diff --git a/examples/tick_idle_hooks/hooks_example.c b/examples/tick_idle_hooks/hooks_example.c new file mode 100644 index 0000000..8b9fa49 --- /dev/null +++ b/examples/tick_idle_hooks/hooks_example.c @@ -0,0 +1,56 @@ +/* Very basic example that just demonstrates we can run at all! + */ +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +void vApplicationIdleHook(void) +{ + // Go to sleep; either deeply (waiting for an event to wake) + // or light, allowing FreeRTOS ticks to wake + sdk_wifi_set_sleep_type(WIFI_SLEEP_MODEM); +} + +void vApplicationTickHook(void) +{ + // Called every tick +} + +void task1(void *pvParameters) +{ + QueueHandle_t *queue = (QueueHandle_t *)pvParameters; + printf("Hello from task1!\r\n"); + uint32_t count = 0; + while(1) { + vTaskDelay(100); + xQueueSend(*queue, &count, 0); + count++; + } +} + +void task2(void *pvParameters) +{ + printf("Hello from task 2!\r\n"); + QueueHandle_t *queue = (QueueHandle_t *)pvParameters; + while(1) { + uint32_t count; + if(xQueueReceive(*queue, &count, 1000)) { + printf("Got %u\n", count); + } else { + printf("No msg :(\n"); + } + } +} + +static QueueHandle_t mainqueue; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + mainqueue = xQueueCreate(10, sizeof(uint32_t)); + xTaskCreate(task1, "tsk1", 256, &mainqueue, 2, NULL); + xTaskCreate(task2, "tsk2", 256, &mainqueue, 2, NULL); +} From 813477aa8aea18ec6400bb2fe96cf6f4bb811716 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Tue, 21 Mar 2017 07:41:47 +0100 Subject: [PATCH 157/349] I2c optimization and features (#321) * custom delay * Update comment * add bus control status, add some missing include & fixed display output on sh1104 (#319) * add some missing include * Fixed display on SH1106 * Fix comment, add force sytem, rework flag, 16 bits data transfert * Update all library with new I2C API * custom delay * Update comment, add bus control status * fix i2c read + fix ds3231 temp + fix ssd1306 send --- extras/ads111x/ads111x.c | 6 +- extras/bmp180/bmp180.c | 54 +++++---- extras/bmp280/bmp280.c | 39 +++--- extras/ds1307/ds1307.c | 39 ++---- extras/ds1307/ds1307.h | 8 +- extras/ds3231/ds3231.c | 86 +++++++------- extras/ds3231/ds3231.h | 4 +- extras/hmc5883l/hmc5883l.c | 11 +- extras/i2c/i2c.c | 185 +++++++++++++++++++++-------- extras/i2c/i2c.h | 103 ++++++++++++++-- extras/ina3221/ina3221.c | 49 ++------ extras/ina3221/ina3221.h | 2 + extras/mcp4725/mcp4725.c | 10 +- extras/ms561101ba03/ms561101ba03.c | 39 +++--- extras/pca9685/pca9685.c | 9 +- extras/pcf8574/pcf8574.c | 23 ++-- extras/ssd1306/ssd1306.c | 58 +++------ extras/ssd1306/ssd1306.h | 8 -- extras/tsl2561/tsl2561.c | 20 ++-- 19 files changed, 418 insertions(+), 335 deletions(-) diff --git a/extras/ads111x/ads111x.c b/extras/ads111x/ads111x.c index 9241e13..c9d3cf3 100644 --- a/extras/ads111x/ads111x.c +++ b/extras/ads111x/ads111x.c @@ -55,7 +55,7 @@ const float ads111x_gain_values[] = { static uint16_t read_reg(uint8_t addr, uint8_t reg) { uint16_t res = 0; - if (!i2c_slave_read(addr, reg, (uint8_t *)&res, 2)) + if (i2c_slave_read(addr, ®, (uint8_t *)&res, 2)) debug("Could not read register %d", reg); //debug("Read %d: 0x%04x", reg, res); return res; @@ -64,8 +64,8 @@ static uint16_t read_reg(uint8_t addr, uint8_t reg) static void write_reg(uint8_t addr, uint8_t reg, uint16_t val) { //debug("Write %d: 0x%04x", reg, val); - uint8_t buf[3] = {reg, val >> 8, val}; - if (!i2c_slave_write(addr, buf, 3)) + uint8_t buf[2] = { val >> 8, val}; + if (i2c_slave_write(addr, ®, buf, 2)) debug("Could not write 0x%04x to register %d", val, reg); } diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index c3c8afd..df7a503 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -39,35 +39,36 @@ // #define BMP180_RESET_VALUE 0xB6 -static bool bmp180_readRegister16(uint8_t reg, int16_t *r) +static int bmp180_readRegister16(uint8_t reg, int16_t *r) { uint8_t d[] = { 0, 0 }; + int error ; - if (!i2c_slave_read(BMP180_DEVICE_ADDRESS, reg, d, 2)) - return false; + if ((error = i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, d, 2))) + return error; *r = ((int16_t)d[0] << 8) | (d[1]); - return true; + return 0; } -static bool bmp180_start_Messurement(uint8_t cmd) +static int bmp180_start_Messurement(uint8_t cmd) { - uint8_t d[] = { BMP180_CONTROL_REG, cmd }; + uint8_t reg = BMP180_CONTROL_REG ; - return i2c_slave_write(BMP180_DEVICE_ADDRESS, d, 2); + return i2c_slave_write(BMP180_DEVICE_ADDRESS, ®, &cmd, 1); } static bool bmp180_get_uncompensated_temperature(int32_t *ut) { // Write Start Code into reg 0xF4. - if (!bmp180_start_Messurement(BMP180_MEASURE_TEMP)) + if (bmp180_start_Messurement(BMP180_MEASURE_TEMP)) return false; // Wait 5ms, datasheet states 4.5ms sdk_os_delay_us(5000); int16_t v; - if (!bmp180_readRegister16(BMP180_OUT_MSB_REG, &v)) + if (bmp180_readRegister16(BMP180_OUT_MSB_REG, &v)) return false; *ut = v; @@ -88,13 +89,14 @@ static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) } // Write Start Code into reg 0xF4 - if (!bmp180_start_Messurement(BMP180_MEASURE_PRESS | (oss << 6))) + if (bmp180_start_Messurement(BMP180_MEASURE_PRESS | (oss << 6))) return false; sdk_os_delay_us(us); uint8_t d[] = { 0, 0, 0 }; - if (!i2c_slave_read(BMP180_DEVICE_ADDRESS, BMP180_OUT_MSB_REG, d, 3)) + uint8_t reg = BMP180_OUT_MSB_REG; + if (i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, d, 3)) return false; uint32_t r = ((uint32_t)d[0] << 16) | ((uint32_t)d[1] << 8) | d[2]; @@ -106,17 +108,17 @@ static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) // Returns true of success else false. bool bmp180_fillInternalConstants(bmp180_constants_t *c) { - if (!bmp180_readRegister16(BMP180_CALIBRATION_REG+0, &c->AC1) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+2, &c->AC2) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+4, &c->AC3) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+6, (int16_t *)&c->AC4) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+8, (int16_t *)&c->AC5) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+10, (int16_t *)&c->AC6) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+12, &c->B1) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+14, &c->B2) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+16, &c->MB) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+18, &c->MC) || - !bmp180_readRegister16(BMP180_CALIBRATION_REG+20, &c->MD)) { + if (bmp180_readRegister16(BMP180_CALIBRATION_REG+0, &c->AC1) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+2, &c->AC2) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+4, &c->AC3) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+6, (int16_t *)&c->AC4) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+8, (int16_t *)&c->AC5) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+10, (int16_t *)&c->AC6) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+12, &c->B1) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+14, &c->B2) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+16, &c->MB) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+18, &c->MC) || + bmp180_readRegister16(BMP180_CALIBRATION_REG+20, &c->MD)) { return false; } @@ -140,8 +142,10 @@ bool bmp180_fillInternalConstants(bmp180_constants_t *c) bool bmp180_is_available() { uint8_t id; - return i2c_slave_read(BMP180_DEVICE_ADDRESS, BMP180_VERSION_REG, &id, 1) && - id == BMP180_CHIP_ID; + uint8_t reg = BMP180_VERSION_REG; + if (i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, &id, 1)) + return false; + return id == BMP180_CHIP_ID; } bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, @@ -208,8 +212,6 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, return true; } - - // BMP180_Event_Command typedef struct { diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index 83fdfe0..a106b07 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -69,13 +69,18 @@ void bmp280_init_default_params(bmp280_params_t *params) static bool read_register16(uint8_t i2c_addr, uint8_t addr, uint16_t *value) { uint8_t d[] = {0, 0}; - if (i2c_slave_read(i2c_addr, addr, d, sizeof(d))) { + if (!i2c_slave_read(i2c_addr, &addr, d, sizeof(d))) { *value = d[0] | (d[1] << 8); return true; } return false; } +static inline int read_data(uint8_t i2c_addr, uint8_t addr, uint8_t *value, uint8_t len) +{ + return i2c_slave_read(i2c_addr, &addr, value, len); +} + static bool read_calibration_data(bmp280_t *dev) { uint8_t i2c_addr = dev->i2c_addr; @@ -118,12 +123,12 @@ static bool read_hum_calibration_data(bmp280_t *dev) uint8_t i2c_addr = dev->i2c_addr; uint16_t h4, h5; - if (i2c_slave_read(i2c_addr, 0xa1, &dev->dig_H1, 1) && + if (!read_data(i2c_addr, 0xa1, &dev->dig_H1, 1) && read_register16(i2c_addr, 0xe1, (uint16_t *)&dev->dig_H2) && - i2c_slave_read(i2c_addr, 0xe3, &dev->dig_H3, 1) && + !read_data(i2c_addr, 0xe3, &dev->dig_H3, 1) && read_register16(i2c_addr, 0xe4, &h4) && read_register16(i2c_addr, 0xe5, &h5) && - i2c_slave_read(i2c_addr, 0xe7, (uint8_t *)&dev->dig_H6, 1)) { + !read_data(i2c_addr, 0xe7, (uint8_t *)&dev->dig_H6, 1)) { dev->dig_H4 = (h4 & 0x00ff) << 4 | (h4 & 0x0f00) >> 8; dev->dig_H5 = h5 >> 4; debug("Calibration data received:"); @@ -139,11 +144,9 @@ static bool read_hum_calibration_data(bmp280_t *dev) return false; } -static bool write_register8(uint8_t i2c_addr, uint8_t addr, uint8_t value) +static int write_register8(uint8_t i2c_addr, uint8_t addr, uint8_t value) { - uint8_t d[] = {addr, value}; - - return i2c_slave_write(i2c_addr, d, 2); + return i2c_slave_write(i2c_addr, &addr, &value, 1); } bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) @@ -155,7 +158,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) return false; } - if (!i2c_slave_read(i2c_addr, BMP280_REG_ID, &dev->id, 1)) { + if (read_data(i2c_addr, BMP280_REG_ID, &dev->id, 1)) { debug("Sensor not found"); return false; } @@ -166,7 +169,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) } // Soft reset. - if (!write_register8(i2c_addr, BMP280_REG_RESET, BMP280_RESET_VALUE)) { + if (write_register8(i2c_addr, BMP280_REG_RESET, BMP280_RESET_VALUE)) { debug("Failed resetting sensor"); return false; } @@ -174,7 +177,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) // Wait until finished copying over the NVP data. while (1) { uint8_t status; - if (i2c_slave_read(i2c_addr, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) + if (!read_data(i2c_addr, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) break; } @@ -190,7 +193,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) uint8_t config = (params->standby << 5) | (params->filter << 2); debug("Writing config reg=%x", config); - if (!write_register8(i2c_addr, BMP280_REG_CONFIG, config)) { + if (write_register8(i2c_addr, BMP280_REG_CONFIG, config)) { debug("Failed configuring sensor"); return false; } @@ -207,14 +210,14 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) // Write crtl hum reg first, only active after write to BMP280_REG_CTRL. uint8_t ctrl_hum = params->oversampling_humidity; debug("Writing ctrl hum reg=%x", ctrl_hum); - if (!write_register8(i2c_addr, BMP280_REG_CTRL_HUM, ctrl_hum)) { + if (write_register8(i2c_addr, BMP280_REG_CTRL_HUM, ctrl_hum)) { debug("Failed controlling sensor"); return false; } } debug("Writing ctrl reg=%x", ctrl); - if (!write_register8(i2c_addr, BMP280_REG_CTRL, ctrl)) { + if (write_register8(i2c_addr, BMP280_REG_CTRL, ctrl)) { debug("Failed controlling sensor"); return false; } @@ -225,12 +228,12 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) bool bmp280_force_measurement(bmp280_t *dev) { uint8_t ctrl; - if (!i2c_slave_read(dev->i2c_addr, BMP280_REG_CTRL, &ctrl, 1)) + if (read_data(dev->i2c_addr, BMP280_REG_CTRL, &ctrl, 1)) return false; ctrl &= ~0b11; // clear two lower bits ctrl |= BMP280_MODE_FORCED; debug("Writing ctrl reg=%x", ctrl); - if (!write_register8(dev->i2c_addr, BMP280_REG_CTRL, ctrl)) { + if (write_register8(dev->i2c_addr, BMP280_REG_CTRL, ctrl)) { debug("Failed starting forced mode"); return false; } @@ -240,7 +243,7 @@ bool bmp280_force_measurement(bmp280_t *dev) bool bmp280_is_measuring(bmp280_t *dev) { uint8_t status; - if (!i2c_slave_read(dev->i2c_addr, BMP280_REG_STATUS, &status, 1)) + if (read_data(dev->i2c_addr, BMP280_REG_STATUS, &status, 1)) return false; if (status & (1 << 3)) { debug("Status: measuring"); @@ -342,7 +345,7 @@ bool bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, // Need to read in one sequence to ensure they match. size_t size = humidity ? 8 : 6; - if (!i2c_slave_read(dev->i2c_addr, 0xf7, data, size)) { + if (read_data(dev->i2c_addr, 0xf7, data, size)) { debug("Failed reading"); return false; } diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c index e5306a8..f0f52c2 100644 --- a/extras/ds1307/ds1307.c +++ b/extras/ds1307/ds1307.c @@ -43,18 +43,15 @@ static uint8_t dec2bcd(uint8_t val) static uint8_t read_register(uint8_t reg) { uint8_t val; - i2c_slave_read(ADDR, reg, &val, 1); + i2c_slave_read(ADDR, ®, &val, 1); return val; } static void update_register(uint8_t reg, uint8_t mask, uint8_t val) { - uint8_t buf[2]; + uint8_t buf = (read_register(reg) & mask) | val; - buf[0] = reg; - buf[1] = (read_register(reg) & mask) | val; - - i2c_slave_write(ADDR, buf, 2); + i2c_slave_write(ADDR, ®, &buf, 1); } void ds1307_start(bool start) @@ -70,8 +67,9 @@ bool ds1307_is_running() void ds1307_get_time(struct tm *time) { uint8_t buf[7]; + uint8_t reg = TIME_REG ; - i2c_slave_read(ADDR, TIME_REG, buf, 7); + i2c_slave_read(ADDR, ® , buf, 7); time->tm_sec = bcd2dec(buf[0] & SECONDS_MASK); time->tm_min = bcd2dec(buf[1]); @@ -101,7 +99,7 @@ void ds1307_set_time(const struct tm *time) buf[6] = dec2bcd(time->tm_mon + 1); buf[7] = dec2bcd(time->tm_year - 2000); - i2c_slave_write(ADDR, buf, 8); + i2c_slave_write(ADDR, &buf[0], &buf[1] , 7); } void ds1307_enable_squarewave(bool enable) @@ -134,31 +132,18 @@ void ds1307_set_output(bool value) update_register(CONTROL_REG, OUT_MASK, value ? OUT_BIT : 0); } -bool ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len) { if (offset + len > RAM_SIZE) return false; + uint8_t reg = RAM_REG + offset ; - return i2c_slave_read(ADDR, RAM_REG + offset, buf, len); + return i2c_slave_read(ADDR, ®, buf, len); } -bool ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len) { if (offset + len > RAM_SIZE) return false; + uint8_t reg = RAM_REG + offset ; - // temporary buffer on the stack is not good so copy-paste :( - bool success = false; - do { - i2c_start(); - if (!i2c_write(ADDR << 1)) - break; - if (!i2c_write(RAM_REG + offset)) - break; - while (len--) { - if (!i2c_write(*buf++)) - break; - } - i2c_stop(); - success = true; - } while(0); - return success; + return i2c_slave_write(ADDR, ®, buf, len); } diff --git a/extras/ds1307/ds1307.h b/extras/ds1307/ds1307.h index d2daeee..5af38ae 100644 --- a/extras/ds1307/ds1307.h +++ b/extras/ds1307/ds1307.h @@ -93,18 +93,18 @@ void ds1307_set_output(bool value); * \param offset Start byte, 0..55 * \param buf Buffer * \param len Bytes to read, 1..56 - * \return false if error occured + * \return Non-zero if error occured */ -bool ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len); /** * \brief Write buffer to RTC RAM * \param offset Start byte, 0..55 * \param buf Buffer * \param len Bytes to write, 1..56 - * \return false if error occured + * \return Non-zero if error occured */ -bool ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len); #ifdef __cplusplus diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c index 543474e..4de534c 100644 --- a/extras/ds3231/ds3231.c +++ b/extras/ds3231/ds3231.c @@ -28,47 +28,43 @@ static inline uint8_t bcdToDec(uint8_t bcd) /* Send a number of bytes to the rtc over i2c * returns true to indicate success */ -static inline bool ds3231_send(uint8_t *data, uint8_t len) +static inline int ds3231_send(uint8_t reg, uint8_t *data, uint8_t len) { - return i2c_slave_write(DS3231_ADDR, data, len); + return i2c_slave_write(DS3231_ADDR, ®, data, len); } /* Read a number of bytes from the rtc over i2c * returns true to indicate success */ -static inline bool ds3231_recv(uint8_t *data, uint8_t len) +static inline int ds3231_recv(uint8_t reg, uint8_t *data, uint8_t len) { - return i2c_slave_read(DS3231_ADDR, data[0], data, len); + return i2c_slave_read(DS3231_ADDR, ®, data, len); } -bool ds3231_setTime(struct tm *time) +int ds3231_setTime(struct tm *time) { - uint8_t data[8]; + uint8_t data[7]; - /* start register */ - data[0] = DS3231_ADDR_TIME; /* time/date data */ - data[1] = decToBcd(time->tm_sec); - data[2] = decToBcd(time->tm_min); - data[3] = decToBcd(time->tm_hour); - data[4] = decToBcd(time->tm_wday + 1); - data[5] = decToBcd(time->tm_mday); - data[6] = decToBcd(time->tm_mon + 1); - data[7] = decToBcd(time->tm_year - 100); + data[0] = decToBcd(time->tm_sec); + data[1] = decToBcd(time->tm_min); + data[2] = decToBcd(time->tm_hour); + data[3] = decToBcd(time->tm_wday + 1); + data[4] = decToBcd(time->tm_mday); + data[5] = decToBcd(time->tm_mon + 1); + data[6] = decToBcd(time->tm_year - 100); - return ds3231_send(data, 8); + return ds3231_send(DS3231_ADDR_TIME, data, 7); } -bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2) +int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2) { int i = 0; - uint8_t data[8]; - - /* start register */ - data[i++] = (alarms == DS3231_ALARM_2 ? DS3231_ADDR_ALARM2 : DS3231_ADDR_ALARM1); + uint8_t data[7]; /* alarm 1 data */ - if (alarms != DS3231_ALARM_2) { + if (alarms != DS3231_ALARM_2) + { data[i++] = (option1 >= DS3231_ALARM1_MATCH_SEC ? decToBcd(time1->tm_sec) : DS3231_ALARM_NOTSET); data[i++] = (option1 >= DS3231_ALARM1_MATCH_SECMIN ? decToBcd(time1->tm_min) : DS3231_ALARM_NOTSET); data[i++] = (option1 >= DS3231_ALARM1_MATCH_SECMINHOUR ? decToBcd(time1->tm_hour) : DS3231_ALARM_NOTSET); @@ -77,14 +73,15 @@ bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct t } /* alarm 2 data */ - if (alarms != DS3231_ALARM_1) { + if (alarms != DS3231_ALARM_1) + { data[i++] = (option2 >= DS3231_ALARM2_MATCH_MIN ? decToBcd(time2->tm_min) : DS3231_ALARM_NOTSET); data[i++] = (option2 >= DS3231_ALARM2_MATCH_MINHOUR ? decToBcd(time2->tm_hour) : DS3231_ALARM_NOTSET); data[i++] = (option2 == DS3231_ALARM2_MATCH_MINHOURDAY ? (decToBcd(time2->tm_wday + 1) & DS3231_ALARM_WDAY) : (option2 == DS3231_ALARM2_MATCH_MINHOURDATE ? decToBcd(time2->tm_mday) : DS3231_ALARM_NOTSET)); } - return ds3231_send(data, i); + return ds3231_send((alarms == DS3231_ALARM_2 ? DS3231_ADDR_ALARM2 : DS3231_ADDR_ALARM1), data, i); } /* Get a byte containing just the requested bits @@ -96,13 +93,13 @@ bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct t */ bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag) { - uint8_t data[1]; + uint8_t data; /* get register */ - data[0] = addr; - if (ds3231_send(data, 1) && ds3231_recv(data, 1)) { + if (!ds3231_recv(addr, &data, 1)) + { /* return only requested flag */ - *flag = (data[0] & mask); + *flag = (data & mask); return true; } @@ -117,22 +114,21 @@ bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag) */ bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode) { - uint8_t data[2]; + uint8_t data; - data[0] = addr; /* get status register */ - if (ds3231_send(data, 1) && ds3231_recv(data+1, 1)) { + if (!ds3231_recv(addr, &data, 1)) + { /* clear the flag */ if (mode == DS3231_REPLACE) - data[1] = bits; + data = bits; else if (mode == DS3231_SET) - data[1] |= bits; + data |= bits; else - data[1] &= ~bits; + data &= ~bits; - if (ds3231_send(data, 2)) { + if (!ds3231_send(addr, &data, 1)) return true; - } } return false; @@ -142,7 +138,8 @@ bool ds3231_getOscillatorStopFlag(bool *flag) { uint8_t f; - if (ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, &f)) { + if (ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, &f)) + { *flag = (f ? true : false); return true; } @@ -202,7 +199,8 @@ bool ds3231_setSquarewaveFreq(uint8_t freq) { uint8_t flag = 0; - if (ds3231_getFlag(DS3231_ADDR_CONTROL, 0xff, &flag)) { + if (ds3231_getFlag(DS3231_ADDR_CONTROL, 0xff, &flag)) + { /* clear current rate */ flag &= ~DS3231_CTRL_SQWAVE_8192HZ; /* set new rate */ @@ -218,7 +216,8 @@ bool ds3231_getRawTemp(int16_t *temp) uint8_t data[2]; data[0] = DS3231_ADDR_TEMP; - if (ds3231_send(data, 1) && ds3231_recv(data, 2)) { + if (!ds3231_recv(DS3231_ADDR_TEMP,data, 2)) + { *temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6; return true; } @@ -254,14 +253,9 @@ bool ds3231_getTime(struct tm *time) { uint8_t data[7]; - /* start register address */ - data[0] = DS3231_ADDR_TIME; - if (!ds3231_send(data, 1)) { - return false; - } - /* read time */ - if (!ds3231_recv(data, 7)) { + if (ds3231_recv(DS3231_ADDR_TIME, data, 7)) + { return false; } diff --git a/extras/ds3231/ds3231.h b/extras/ds3231/ds3231.h index ccc7335..40ff596 100644 --- a/extras/ds3231/ds3231.h +++ b/extras/ds3231/ds3231.h @@ -87,7 +87,7 @@ enum { * I suggest using GMT and applying timezone and DST when read back * returns true to indicate success */ -bool ds3231_setTime(struct tm *time); +int ds3231_setTime(struct tm *time); /* Set alarms * alarm1 works with seconds, minutes, hours and day of week/month, or fires every second @@ -100,7 +100,7 @@ bool ds3231_setTime(struct tm *time); * if you want to enable interrupts for the alarms you need to do that separately * returns true to indicate success */ -bool ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2); +int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2); /* Check if oscillator has previously stopped, e.g. no power/battery or disabled * sets flag to true if there has been a stop diff --git a/extras/hmc5883l/hmc5883l.c b/extras/hmc5883l/hmc5883l.c index 28d9cf7..ac1bcf2 100644 --- a/extras/hmc5883l/hmc5883l.c +++ b/extras/hmc5883l/hmc5883l.c @@ -54,14 +54,13 @@ static hmc5883l_operating_mode_t current_mode; static inline void write_register(uint8_t reg, uint8_t val) { - uint8_t buf[2] = { reg, val }; - i2c_slave_write(ADDR, buf, 2); + i2c_slave_write(ADDR, ®, &val, 1); } static inline uint8_t read_register(uint8_t reg) { uint8_t res; - i2c_slave_read(ADDR, reg, &res, 1); + i2c_slave_read(ADDR, ®, &res, 1); return res; } @@ -82,7 +81,8 @@ bool hmc5883l_init() uint32_t hmc5883l_get_id() { uint32_t res = 0; - i2c_slave_read(ADDR, REG_ID_A, (uint8_t *)&res, 3); + uint8_t reg = REG_ID_A; + i2c_slave_read(ADDR, ®, (uint8_t *)&res, 3); return res; } @@ -164,7 +164,8 @@ bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data) } } uint8_t buf[6]; - i2c_slave_read(ADDR, REG_DX_H, buf, 6); + uint8_t reg = REG_DX_H; + i2c_slave_read(ADDR, ®, buf, 6); data->x = ((int16_t)buf[REG_DX_H - REG_DX_H] << 8) | buf[REG_DX_L - REG_DX_H]; data->y = ((int16_t)buf[REG_DY_H - REG_DX_H] << 8) | buf[REG_DY_L - REG_DX_H]; data->z = ((int16_t)buf[REG_DZ_H - REG_DX_H] << 8) | buf[REG_DZ_L - REG_DX_H]; diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index 2d31e8e..fb875f4 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -24,24 +24,35 @@ #include #include // sdk_os_delay_us +#include #include "i2c.h" +//#define I2C_DEBUG true -// I2C driver for ESP8266 written for use with esp-open-rtos -// Based on https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol - -// With calling overhead, we end up at ~100kbit/s -#define CLK_HALF_PERIOD_US (1) +#ifdef I2C_DEBUG +#define debug(fmt, ...) printf("%s: " fmt "\n", "I2C", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif #define CLK_STRETCH (10) static bool started; +static bool flag; +static bool force; +static uint8_t freq ; static uint8_t g_scl_pin; static uint8_t g_sda_pin; +inline bool i2c_status(void) +{ + return started; +} + void i2c_init(uint8_t scl_pin, uint8_t sda_pin) { started = false; + flag = false ; g_scl_pin = scl_pin; g_sda_pin = sda_pin; @@ -55,11 +66,33 @@ void i2c_init(uint8_t scl_pin, uint8_t sda_pin) // I2C bus idle state. gpio_write(g_scl_pin, 1); gpio_write(g_sda_pin, 1); + + // Prevent user, if frequency is high + if (sdk_system_get_cpu_freq() == SYS_CPU_80MHZ) + if (I2C_CUSTOM_DELAY_80MHZ == 1) + debug("Max frequency is 320Khz at 80MHz"); + } static inline void i2c_delay(void) { - sdk_os_delay_us(CLK_HALF_PERIOD_US); + uint32_t delay; + if (freq == SYS_CPU_160MHZ) + { + __asm volatile ( + "movi %0, %1" "\n" + "1: addi %0, %0, -1" "\n" + "bnez %0, 1b" "\n" + : "=a" (delay) : "i" (I2C_CUSTOM_DELAY_160MHZ)); + } + else + { + __asm volatile ( + "movi %0, %1" "\n" + "1: addi %0, %0, -1" "\n" + "bnez %0, 1b" "\n" + : "=a" (delay) : "i" (I2C_CUSTOM_DELAY_80MHZ)); + } } // Set SCL as input, allowing it to float high, and return current @@ -96,6 +129,7 @@ static inline void clear_sda(void) void i2c_start(void) { uint32_t clk_stretch = CLK_STRETCH; + freq = sdk_system_get_cpu_freq(); if (started) { // if started, do a restart cond // Set SDA to 1 (void) read_sda(); @@ -104,18 +138,18 @@ void i2c_start(void) // Repeated start setup time, minimum 4.7us i2c_delay(); } + started = true; if (read_sda() == 0) { - printf("I2C: arbitration lost in i2c_start\n"); + debug("arbitration lost in i2c_start"); } // SCL is high, set SDA from 1 to 0. clear_sda(); i2c_delay(); clear_scl(); - started = true; } // Output stop condition -void i2c_stop(void) +bool i2c_stop(void) { uint32_t clk_stretch = CLK_STRETCH; // Set SDA to 0 @@ -127,10 +161,15 @@ void i2c_stop(void) i2c_delay(); // SCL is high, set SDA from 0 to 1 if (read_sda() == 0) { - printf("I2C: arbitration lost in i2c_stop\n"); + debug("arbitration lost in i2c_stop"); } i2c_delay(); + if (!started) { + debug("link was break!"); + return false ; //If bus was stop in other way, the current transmission Failed + } started = false; + return true; } // Write a bit to I2C bus @@ -148,7 +187,7 @@ static void i2c_write_bit(bool bit) // SCL is high, now data is valid // If SDA is high, check that nobody else is driving SDA if (bit && read_sda() == 0) { - printf("I2C: arbitration lost in i2c_write_bit\n"); + debug("arbitration lost in i2c_write_bit"); } i2c_delay(); clear_scl(); @@ -194,47 +233,95 @@ uint8_t i2c_read(bool ack) return byte; } -bool i2c_slave_write(uint8_t slave_addr, uint8_t *data, uint8_t len) +void i2c_force_bus(bool state) { - bool success = false; - do { - i2c_start(); - if (!i2c_write(slave_addr << 1)) - break; - while (len--) { - if (!i2c_write(*data++)) - break; - } - i2c_stop(); - success = true; - } while(0); - return success; + force = state ; } -bool i2c_slave_read(uint8_t slave_addr, uint8_t data, uint8_t *buf, uint32_t len) +static int i2c_bus_test() { - bool success = false; - do { - i2c_start(); - if (!i2c_write(slave_addr << 1)) { - break; - } - i2c_write(data); - i2c_stop(); - i2c_start(); - if (!i2c_write(slave_addr << 1 | 1)) { // Slave address + read - break; - } - while(len) { - *buf = i2c_read(len == 1); - buf++; - len--; - } - success = true; - } while(0); - i2c_stop(); - if (!success) { - printf("I2C: write error\n"); + taskENTER_CRITICAL(); // To prevent task swaping after checking flag and before set it! + bool status = flag ; // get current status + if(force) + { + flag = true ; // force bus on + taskEXIT_CRITICAL(); + if(status) + i2c_stop(); //Bus was busy, stop it. } - return success; + else + { + if (status) + { + taskEXIT_CRITICAL(); + debug("busy"); + taskYIELD(); // If bus busy, change task to try finish last com. + return -EBUSY ; // If bus busy, inform user + } + else + { + flag = true ; // Set Bus busy + taskEXIT_CRITICAL(); + } + } + return 0 ; +} + +int i2c_slave_write(uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len) +{ + if(i2c_bus_test()) + return -EBUSY ; + i2c_start(); + if (!i2c_write(slave_addr << 1)) + goto error; + if(data != NULL) + if (!i2c_write(*data)) + goto error; + while (len--) { + if (!i2c_write(*buf++)) + goto error; + } + if (!i2c_stop()) + goto error; + flag = false ; // Bus free + return 0; + + error: + debug("Write Error"); + i2c_stop(); + flag = false ; // Bus free + return -EIO; +} + +int i2c_slave_read(uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len) +{ + if(i2c_bus_test()) + return -EBUSY ; + if(data != NULL) { + i2c_start(); + if (!i2c_write(slave_addr << 1)) + goto error; + if (!i2c_write(*data)) + goto error; + if (!i2c_stop()) + goto error; + } + i2c_start(); + if (!i2c_write(slave_addr << 1 | 1)) // Slave address + read + goto error; + while(len) { + *buf = i2c_read(len == 1); + buf++; + len--; + } + if (!i2c_stop()) + goto error; + flag = false ; // Bus free + return 0; + + error: + debug("Read Error"); + i2c_stop(); + flag = false ; // Bus free + return -EIO; } diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index bfb3811..9fa65ca 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -27,31 +27,108 @@ #include #include +#include +#include +#include #ifdef __cplusplus extern "C" { #endif -// Init bitbanging I2C driver on given pins + +#define I2C_FREQUENCY_400K true // for test WIP + +/* + * Some bit can be transmit slower. + * Selected frequency fix the speed of a bit transmission + * I2C lib take the maximum frequency defined + * Don't change frequency when I2C transaction had begin + */ + +#ifdef I2C_FREQUENCY_500K +#define I2C_CUSTOM_DELAY_160MHZ 6 +#define I2C_CUSTOM_DELAY_80MHZ 1 //Sry, maximum is 320kHz at 80MHz +#elif defined(I2C_FREQUENCY_400K) +#define I2C_CUSTOM_DELAY_160MHZ 10 +#define I2C_CUSTOM_DELAY_80MHZ 1 //Sry, maximum is 320kHz at 80MHz +#else +#define I2C_CUSTOM_DELAY_160MHZ 100 +#define I2C_CUSTOM_DELAY_80MHZ 20 +#endif + +// I2C driver for ESP8266 written for use with esp-open-rtos +// Based on https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol +// With calling overhead, we end up at ~320kbit/s + +//Level 0 API + +/** + * Init bitbanging I2C driver on given pins + * @param scl_pin SCL pin for I2C + * @param sda_pin SDA pin for I2C + */ void i2c_init(uint8_t scl_pin, uint8_t sda_pin); -// Write a byte to I2C bus. Return true if slave acked. +/** + * Write a byte to I2C bus. + * @param byte Pointer to device descriptor + * @return true if slave acked + */ bool i2c_write(uint8_t byte); -// Read a byte from I2C bus. Return true if slave acked. +/** + * Read a byte from I2C bus. + * @param ack Set Ack for slave (false: Ack // true: NoAck) + * @return byte read from slave. + */ uint8_t i2c_read(bool ack); -// Write 'len' bytes from 'buf' to slave. Return true if slave acked. -bool i2c_slave_write(uint8_t slave_addr, uint8_t *buf, uint8_t len); - -// Issue a read operation and send 'data', followed by reading 'len' bytes -// from slave into 'buf'. Return true if slave acked. -bool i2c_slave_read(uint8_t slave_addr, uint8_t data, uint8_t *buf, uint32_t len); - -// Send start and stop conditions. Only needed when implementing protocols for -// devices where the i2c_slave_[read|write] functions above are of no use. +/** + * Send start or restart condition + */ void i2c_start(void); -void i2c_stop(void); + +/** + * Send stop condition + * @return false if link was broken + */ +bool i2c_stop(void); + +/** + * get status from I2C bus. + * @return true if busy. + */ +bool i2c_status(void); + +//Level 1 API (Don't need functions above) + +/** + * This function will allow you to force a transmission I2C, cancel current transmission. + * Warning: Use with precaution. Don't use it if you can avoid it. Usefull for priority transmission. + * @param state Force the next I2C transmission if true (Use with precaution) + */ +void i2c_force_bus(bool state); + +/** + * Write 'len' bytes from 'buf' to slave at 'data' register adress . + * @param slave_addr slave device address + * @param data Pointer to register address to send if non-null + * @param buf Pointer to data buffer + * @param len Number of byte to send + * @return Non-Zero if error occured + */ +int i2c_slave_write(uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len); + +/** + * Issue a send operation of 'data' register adress, followed by reading 'len' bytes + * from slave into 'buf'. + * @param slave_addr slave device address + * @param data Pointer to register address to send if non-null + * @param buf Pointer to data buffer + * @param len Number of byte to read + * @return Non-Zero if error occured + */ +int i2c_slave_read(uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len); #ifdef __cplusplus } diff --git a/extras/ina3221/ina3221.c b/extras/ina3221/ina3221.c index f507b2c..805b09d 100644 --- a/extras/ina3221/ina3221.c +++ b/extras/ina3221/ina3221.c @@ -10,6 +10,8 @@ #include "ina3221.h" +//#define INA3221_DEBUG true + #ifdef INA3221_DEBUG #define debug(fmt, ...) printf("%s: " fmt "\n", "INA3221", ## __VA_ARGS__) #else @@ -18,51 +20,20 @@ static int _wireWriteRegister (uint8_t addr, uint8_t reg, uint16_t value) { - i2c_start(); - if (!i2c_write(addr<<1)) // adress + W - goto error; - if (!i2c_write(reg)) - goto error; - if (!i2c_write((value >> 8) & 0xFF)) - goto error; - if (!i2c_write(value & 0xFF)) - goto error; - i2c_stop(); + uint8_t d[2] = { 0 , 0 }; + d[1] = value & 0x00FF; + d[0] = (value >> 8) & 0x00FF; debug("Data write to %02X : %02X+%04X\n",addr,reg,value); - - return 0 ; - - error: - debug("Error while xmitting I2C slave\n"); - i2c_stop(); - return -EIO; + return i2c_slave_write(addr, ®, d, sizeof(d)); } static int _wireReadRegister(uint8_t addr, uint8_t reg, uint16_t *value) { - uint8_t tampon[2] = { 0 } ; - - i2c_start(); - if (!i2c_write(addr<<1)) // adress + W - goto error; - if (!i2c_write(reg)) - goto error; - i2c_stop(); - i2c_start(); // restart condition - if (!i2c_write((addr<<1) | 1)) // adress + R - goto error; - tampon[1] = i2c_read(0); - tampon[0] = i2c_read(1); - i2c_stop(); - *value = tampon[1]<<8 | tampon[0] ; + uint8_t d[] = {0, 0}; + int error = i2c_slave_read(addr, ®, d, sizeof(d)) debug("Data read from %02X: %02X+%04X\n",addr,reg,*value); - - return 0; - - error: - debug("Error while xmitting I2C slave\n"); - i2c_stop(); - return -EIO; + *value = d[1] | (d[0] << 8); + return error; } int ina3221_trigger(ina3221_t *dev) diff --git a/extras/ina3221/ina3221.h b/extras/ina3221/ina3221.h index 000919c..74cec76 100644 --- a/extras/ina3221/ina3221.h +++ b/extras/ina3221/ina3221.h @@ -12,6 +12,8 @@ #include #include +#include +#include #ifdef __cplusplus extern "C" { diff --git a/extras/mcp4725/mcp4725.c b/extras/mcp4725/mcp4725.c index 889ddef..f53d6bd 100644 --- a/extras/mcp4725/mcp4725.c +++ b/extras/mcp4725/mcp4725.c @@ -14,11 +14,7 @@ static void read_data(uint8_t addr, uint8_t *buf, uint8_t size) { - i2c_start(); - i2c_write(addr << 1 | 1); - while (size--) - *(buf++) = i2c_read(!size); - i2c_stop(); + i2c_slave_read(addr, NULL, buf, size); } bool mcp4725_eeprom_busy(uint8_t addr) @@ -45,7 +41,7 @@ void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom value >> 4, value << 4 }; - i2c_slave_write(addr, data, 3); + i2c_slave_write(addr, &data[0], &data[1], 2); } uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom) @@ -65,7 +61,7 @@ void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom) value >> 4, value << 4 }; - i2c_slave_write(addr, data, 3); + i2c_slave_write(addr, &data[0], &data[1], 2); } diff --git a/extras/ms561101ba03/ms561101ba03.c b/extras/ms561101ba03/ms561101ba03.c index 282b21b..965e9df 100644 --- a/extras/ms561101ba03/ms561101ba03.c +++ b/extras/ms561101ba03/ms561101ba03.c @@ -26,60 +26,67 @@ */ #define CONVERSION_TIME 20 / portTICK_PERIOD_MS // milliseconds -static inline bool reset(uint8_t addr) +static inline int reset(uint8_t addr) { uint8_t buf[1] = { RESET }; - return i2c_slave_write(addr, buf, 1); + return i2c_slave_write(addr, NULL, buf, 1); } static inline bool read_prom(ms561101ba03_t *dev) { uint8_t tmp[2] = { 0, 0 }; + uint8_t reg = 0xA2 ; - if (!i2c_slave_read(dev->addr, 0xA2, tmp, 2)) + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.sens = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA4, tmp, 2)) + reg = 0xA4 ; + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.off = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA6, tmp, 2)) + reg = 0xA6 ; + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.tcs = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xA8, tmp, 2)) + reg = 0xA8 ; + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.tco = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xAA, tmp, 2)) + reg = 0xAA ; + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.t_ref = tmp[0] << 8 | tmp[1]; - if (!i2c_slave_read(dev->addr, 0xAC, tmp, 2)) + reg = 0xAC ; + if (i2c_slave_read(dev->addr, ®, tmp, 2)) return false; dev->config_data.tempsens = tmp[0] << 8 | tmp[1]; return true; } -static inline bool start_pressure_conversion(ms561101ba03_t *dev) //D1 +static inline int start_pressure_conversion(ms561101ba03_t *dev) //D1 { uint8_t buf = CONVERT_D1 + dev->osr; - return i2c_slave_write(dev->addr, &buf, 1); + return i2c_slave_write(dev->addr, NULL, &buf, 1); } -static inline bool start_temperature_conversion(ms561101ba03_t *dev) //D2 +static inline int start_temperature_conversion(ms561101ba03_t *dev) //D2 { uint8_t buf = CONVERT_D2 + dev->osr; - return i2c_slave_write(dev->addr, &buf, 1); + return i2c_slave_write(dev->addr, NULL, &buf, 1); } static inline bool read_adc(uint8_t addr, uint32_t *result) { *result = 0; uint8_t tmp[3]; - if (!i2c_slave_read(addr, 0x00, tmp, 3)) + uint8_t reg = 0x00 ; + if (i2c_slave_read(addr, ®, tmp, 3)) return false; *result = (tmp[0] << 16) | (tmp[1] << 8) | tmp[2]; @@ -132,7 +139,7 @@ static inline int32_t calc_p(uint32_t digital_pressure, int64_t sens, int64_t of static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) { - if (!start_temperature_conversion(dev)) + if (start_temperature_conversion(dev)) return false; vTaskDelay(CONVERSION_TIME); @@ -145,7 +152,7 @@ static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) static inline bool get_raw_pressure(ms561101ba03_t *dev, uint32_t *result) { - if (!start_pressure_conversion(dev)) + if (start_pressure_conversion(dev)) return false; vTaskDelay(CONVERSION_TIME); @@ -209,7 +216,7 @@ bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) bool ms561101ba03_init(ms561101ba03_t *dev) { // First of all we need to reset the chip - if (!reset(dev->addr)) + if (reset(dev->addr)) return false; // Wait a bit for the device to reset vTaskDelay(CONVERSION_TIME); diff --git a/extras/pca9685/pca9685.c b/extras/pca9685/pca9685.c index 0e116e2..daea4fc 100644 --- a/extras/pca9685/pca9685.c +++ b/extras/pca9685/pca9685.c @@ -61,15 +61,14 @@ inline static uint32_t round_div(uint32_t x, uint32_t y) inline static void write_reg(uint8_t addr, uint8_t reg, uint8_t val) { - uint8_t data[2] = { reg, val }; - if (!i2c_slave_write(addr, data, 2)) + if (i2c_slave_write(addr, ®, &val, 1)) debug("Could not write 0x%02x to 0x%02x, addr = 0x%02x", reg, val, addr); } inline static uint8_t read_reg(uint8_t addr, uint8_t reg) { uint8_t res = 0; - if (!i2c_slave_read(addr, reg, &res, 1)) + if (i2c_slave_read(addr, ®, &res, 1)) debug("Could not read from 0x%02x, addr = 0x%02x", reg, addr); return res; } @@ -192,8 +191,8 @@ void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val) else if (val < 4096) { // Normal - uint8_t buf[5] = { reg, 0, 0, val, val >> 8 }; - i2c_slave_write(addr, buf, 5); + uint8_t buf[4] = { 0, 0, val, val >> 8 }; + i2c_slave_write(addr, ®, buf, 4); } else { diff --git a/extras/pcf8574/pcf8574.c b/extras/pcf8574/pcf8574.c index e92ebc8..1d08625 100644 --- a/extras/pcf8574/pcf8574.c +++ b/extras/pcf8574/pcf8574.c @@ -3,9 +3,9 @@ uint8_t pcf8574_port_read(uint8_t addr) { - i2c_start(); - uint8_t res = i2c_write((addr << 1) | 1) ? i2c_read(1) : 0; - i2c_stop(); + uint8_t res; + if (i2c_slave_read(addr, NULL, &res, 1)) + return 0; return res; } @@ -14,11 +14,8 @@ size_t pcf8574_port_read_buf(uint8_t addr, void *buf, size_t len) if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; - i2c_start(); - if (!i2c_write((addr << 1) | 1)) return 0; - for (size_t i = 0; i < len; i++) - *_buf++ = i2c_read(i == len - 1); - i2c_stop(); + if (i2c_slave_read(addr, NULL, _buf, len)) + return 0; return len; } @@ -27,18 +24,14 @@ size_t pcf8574_port_write_buf(uint8_t addr, void *buf, size_t len) if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; - i2c_start(); - if (!i2c_write(addr << 1)) return 0; - for (size_t i = 0; i < len; i++) - i2c_write(*_buf++); + if (i2c_slave_write(addr, NULL, _buf, len)) + return 0; return len; } void pcf8574_port_write(uint8_t addr, uint8_t value) { - i2c_start(); - if (i2c_write(addr << 1)) i2c_write(value); - i2c_stop(); + i2c_slave_write(addr, NULL, &value, 1); } bool pcf8574_gpio_read(uint8_t addr, uint8_t num) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index c4f43a9..ca3b48a 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -88,6 +88,14 @@ #define abs(x) ((x)<0 ? -(x) : (x)) #define swap(x, y) do { typeof(x) temp##x##y = x; x = y; y = temp##x##y; } while (0) + +#if (SSD1306_I2C_SUPPORT) +static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len) +{ + return i2c_slave_write(dev->addr, ®, data, len); +} +#endif + /* Issue a command to SSD1306 device * I2C proto format: * |S|Slave Address|W|ACK|0x00|Command|Ack|P| @@ -101,23 +109,7 @@ int ssd1306_command(const ssd1306_t *dev, uint8_t cmd) switch (dev->protocol) { #if (SSD1306_I2C_SUPPORT) case SSD1306_PROTO_I2C: - i2c_start(); - if (!i2c_write(dev->addr << 1)) { - debug("Error while xmitting I2C slave address\n"); - i2c_stop(); - return -EIO; - } - if (!i2c_write(0x00)) { - debug("Error while xmitting transmission type\n"); - i2c_stop(); - return -EIO; - } - if (!i2c_write(cmd)) { - debug("Error while xmitting command: 0x%02X\n", cmd); - i2c_stop(); - return -EIO; - } - i2c_stop(); + return i2c_send(dev, 0x00, &cmd, 1); break; #endif #if (SSD1306_SPI4_SUPPORT) @@ -247,7 +239,9 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) { uint16_t i; uint8_t j; - +#if (SSD1306_I2C_SUPPORT) + uint8_t tab[16] = { 0 } ; +#endif size_t len = dev->width * dev->height / 8; if(dev->screen == SSD1306_SCREEN) { @@ -258,31 +252,11 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) switch (dev->protocol) { #if (SSD1306_I2C_SUPPORT) case SSD1306_PROTO_I2C: - for (i = 0; i < len; i++) { + for (i = 0; i < len; i++) + { if(dev->screen == SH1106_SCREEN && i%dev->width == 0) sh1106_go_coordinate(dev,0,i/dev->width); - i2c_start(); - if (!i2c_write(dev->addr << 1)) { - debug("Error while xmitting I2C slave address\n"); - i2c_stop(); - return -EIO; - } - if (!i2c_write(0x40)) { - debug("Error while xmitting transmission type\n"); - i2c_stop(); - return -EIO; - } - - for (j = 0; j < 16; j++) { - if (!i2c_write(buf ? buf[i] : 0)) { - debug("Error while writing to GDDRAM\n"); - i2c_stop(); - return -EIO; - } - i++; - } - i--; - i2c_stop(); - taskYIELD(); + i2c_send(dev, 0x40, buf ? &buf[i] : tab, 16); + i+=15 ; } break; #endif diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index 9f620d1..cdfae61 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -192,14 +192,6 @@ int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset); */ int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select); -/** - * Select charge pump voltage. See value in datasheet. - * @param dev Pointer to device descriptor - * @param select Select charge pump voltage value - * @return Non-zero if error occured - */ -int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select); - /** * Enable or disable the charge pump. See application note in datasheet. * @param dev Pointer to device descriptor diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index 36c52e9..991d803 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -96,19 +96,18 @@ #define B8C 0x0000 // 0.000 * 2^LUX_SCALE #define M8C 0x0000 // 0.000 * 2^LUX_SCALE -static bool write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +static int write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) { - uint8_t data[2]; - data[0] = TSL2561_REG_COMMAND | reg; - data[1] = value; - return i2c_slave_write(i2c_addr, data, 2); + reg = TSL2561_REG_COMMAND | reg; + return i2c_slave_write(i2c_addr, ®, &value, 1); } static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) { uint8_t data[1]; + reg = TSL2561_REG_COMMAND | reg; - if (!i2c_slave_read(i2c_addr, TSL2561_REG_COMMAND | reg, data, 1)) + if (i2c_slave_read(i2c_addr, ® , data, 1)) { printf("Error in tsl261 read_register\n"); } @@ -120,8 +119,9 @@ static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; + low_register_addr = TSL2561_REG_COMMAND | TSL2561_READ_WORD | low_register_addr; - if (!i2c_slave_read(i2c_addr, TSL2561_REG_COMMAND | TSL2561_READ_WORD | low_register_addr, data, 2)) + if (i2c_slave_read(i2c_addr, &low_register_addr, data, 2)) { printf("Error with i2c_slave_read in read_register_16\n"); } @@ -131,19 +131,19 @@ static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) return value; } -static bool enable(uint8_t i2c_addr) +static int enable(uint8_t i2c_addr) { return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_ON); } -static bool disable(uint8_t i2c_addr) +static int disable(uint8_t i2c_addr) { return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_OFF); } void tsl2561_init(tsl2561_t *device) { - if (!enable(device->i2c_addr)) + if (enable(device->i2c_addr)) { printf("Error initializing tsl2561\n"); } From 8b5ee93b55cd5cff5e2c76d8b5860104fb022e7f Mon Sep 17 00:00:00 2001 From: Brian Schwind Date: Tue, 21 Mar 2017 01:50:46 +0900 Subject: [PATCH 158/349] Add a TSL4531 driver and example --- examples/tsl4531/Makefile | 3 + examples/tsl4531/tsl4531_example.c | 55 ++++++++++ extras/tsl2561/tsl2561.c | 4 +- extras/tsl4531/component.mk | 9 ++ extras/tsl4531/tsl4531.c | 166 +++++++++++++++++++++++++++++ extras/tsl4531/tsl4531.h | 56 ++++++++++ 6 files changed, 291 insertions(+), 2 deletions(-) create mode 100644 examples/tsl4531/Makefile create mode 100644 examples/tsl4531/tsl4531_example.c create mode 100644 extras/tsl4531/component.mk create mode 100644 extras/tsl4531/tsl4531.c create mode 100644 extras/tsl4531/tsl4531.h diff --git a/examples/tsl4531/Makefile b/examples/tsl4531/Makefile new file mode 100644 index 0000000..f52d04f --- /dev/null +++ b/examples/tsl4531/Makefile @@ -0,0 +1,3 @@ +PROGRAM=tsl4531_example +EXTRA_COMPONENTS = extras/i2c extras/tsl4531 +include ../../common.mk diff --git a/examples/tsl4531/tsl4531_example.c b/examples/tsl4531/tsl4531_example.c new file mode 100644 index 0000000..9b69b29 --- /dev/null +++ b/examples/tsl4531/tsl4531_example.c @@ -0,0 +1,55 @@ +/* + * This sample code is in the public domain. + */ + +#include +#include +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "i2c/i2c.h" +#include "task.h" +#include "tsl4531/tsl4531.h" + +/* An example using the TSL4531 light sensor + * to read and print lux values from a sensor + * attached to GPIO pin 2 (SCL) and GPIO pin 0 (SDA) + * Connect 3.3v from the ESP to Vin and GND to GND + */ + +#define SCL_PIN (2) +#define SDA_PIN (0) + +void tsl4531MeasurementTask(void *pvParameters) +{ + tsl4531_t lightSensor; + lightSensor.i2c_addr = TSL4531_I2C_ADDR; + tsl4531_init(&lightSensor); + + tsl4531_set_integration_time(&lightSensor, TSL4531_INTEGRATION_400MS); + tsl4531_set_power_save_skip(&lightSensor, true); + + uint16_t lux = 0; + + while (1) + { + if (tsl4531_read_lux(&lightSensor, &lux)) + { + printf("Lux: %u\n", lux); + } + else + { + printf("Could not read data from TSL4531\n"); + } + + // 0.05 second delay + vTaskDelay(50 / portTICK_PERIOD_MS); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + i2c_init(SCL_PIN, SDA_PIN); + + xTaskCreate(tsl4531MeasurementTask, "tsl4531MeasurementTask", 256, NULL, 2, NULL); +} diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index 991d803..f60825a 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -107,9 +107,9 @@ static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) uint8_t data[1]; reg = TSL2561_REG_COMMAND | reg; - if (i2c_slave_read(i2c_addr, ® , data, 1)) + if (i2c_slave_read(i2c_addr, ®, data, 1)) { - printf("Error in tsl261 read_register\n"); + printf("Error in tsl2561 read_register\n"); } return data[0]; diff --git a/extras/tsl4531/component.mk b/extras/tsl4531/component.mk new file mode 100644 index 0000000..8752823 --- /dev/null +++ b/extras/tsl4531/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/tsl4531 + +# Include the TSL4531 driver as "tsl4531/tsl4531.h" +INC_DIRS += $(tsl4531_ROOT).. + +# args for passing into compile rule generation +tsl4531_SRC_DIR = $(tsl4531_ROOT) + +$(eval $(call component_compile_rules,tsl4531)) diff --git a/extras/tsl4531/tsl4531.c b/extras/tsl4531/tsl4531.c new file mode 100644 index 0000000..54963e9 --- /dev/null +++ b/extras/tsl4531/tsl4531.c @@ -0,0 +1,166 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2017 Brian Schwind (https://github.com/bschwind) + * BSD Licensed as described in the file LICENSE + */ + +#include +#include "FreeRTOS.h" +#include "i2c/i2c.h" +#include "task.h" +#include "tsl4531.h" + +// Registers +#define TSL4531_REG_COMMAND 0x80 +#define TSL4531_REG_CONTROL 0x00 +#define TSL4531_REG_CONFIG 0x01 +#define TSL4531_REG_DATA_LOW 0x04 +#define TSL4531_REG_DATA_HIGH 0x05 +#define TSL4531_REG_DEVICE_ID 0x0A + +// TSL4531 Misc Values +#define TSL4531_ON 0x03 +#define TSL4531_OFF 0x00 + +// Integration times in milliseconds +#define TSL4531_INTEGRATION_TIME_100MS 120 +#define TSL4531_INTEGRATION_TIME_200MS 240 +#define TSL4531_INTEGRATION_TIME_400MS 480 // Default + +static int write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +{ + reg = TSL4531_REG_COMMAND | reg; + return i2c_slave_write(i2c_addr, ®, &value, 1); +} + +static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) +{ + uint8_t data[1]; + reg = TSL4531_REG_COMMAND | reg; + + if (i2c_slave_read(i2c_addr, ®, data, 1)) + { + printf("Error in tsl4531 read_register\n"); + } + + return data[0]; +} + +static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) +{ + uint16_t value = 0; + uint8_t data[2]; + low_register_addr = TSL4531_REG_COMMAND | low_register_addr; + + if (i2c_slave_read(i2c_addr, &low_register_addr, data, 2)) + { + printf("Error with i2c_slave_read in read_register_16\n"); + } + + value = ((uint16_t)data[1] << 8) | (data[0]); + + return value; +} + +static int enable(tsl4531_t *device) +{ + return write_register(device->i2c_addr, TSL4531_REG_CONTROL, TSL4531_ON); +} + +static int disable(tsl4531_t *device) +{ + return write_register(device->i2c_addr, TSL4531_REG_CONTROL, TSL4531_OFF); +} + +void tsl4531_init(tsl4531_t *device) +{ + if (enable(device)) + { + printf("Error initializing tsl4531, the enable write failed\n"); + } + + uint8_t control_reg = read_register(device->i2c_addr, TSL4531_REG_CONTROL); + + if (control_reg != TSL4531_ON) { + printf("Error initializing tsl4531, control register wasn't set to ON\n"); + } + + uint8_t idRegister = read_register(device->i2c_addr, TSL4531_REG_DEVICE_ID); + uint8_t id = (idRegister & 0xF0) >> 4; + + if (id == TSL4531_PART_TSL45317) { + device->part_id = TSL4531_PART_TSL45317; + } else if (id == TSL4531_PART_TSL45313) { + device->part_id = TSL4531_PART_TSL45313; + } else if (id == TSL4531_PART_TSL45315) { + device->part_id = TSL4531_PART_TSL45315; + } else if (id == TSL4531_PART_TSL45311) { + device->part_id = TSL4531_PART_TSL45311; + } else { + printf("Unknown part id for TSL4531 sensor: %u\n", id); + } + + disable(device); +} + +void tsl4531_set_integration_time(tsl4531_t *device, tsl4531_integration_time_t integration_time_id) +{ + uint8_t power_save_bit = device->skip_power_save ? 0x08 : 0x00; + uint8_t integration_time_bits = 0x03 & integration_time_id; + uint8_t new_config_reg = power_save_bit | integration_time_bits; + + enable(device); + write_register(device->i2c_addr, TSL4531_REG_CONFIG, new_config_reg); + disable(device); + + device->integration_time_id = integration_time_id; +} + +void tsl4531_set_power_save_skip(tsl4531_t *device, bool skip_power_save) +{ + uint8_t power_save_bit = skip_power_save ? 0x08 : 0x00; + uint8_t integration_time_bits = 0x03 & device->integration_time_id; + uint8_t new_config_reg = power_save_bit | integration_time_bits; + + enable(device); + write_register(device->i2c_addr, TSL4531_REG_CONFIG, new_config_reg); + disable(device); + + device->skip_power_save = skip_power_save; +} + +bool tsl4531_read_lux(tsl4531_t *device, uint16_t *lux) +{ + bool success = true; + uint16_t multiplier = 1; + + enable(device); + + switch (device->integration_time_id) + { + case TSL4531_INTEGRATION_100MS: + multiplier = 4; + vTaskDelay(TSL4531_INTEGRATION_TIME_100MS / portTICK_PERIOD_MS); + break; + case TSL4531_INTEGRATION_200MS: + multiplier = 2; + vTaskDelay(TSL4531_INTEGRATION_TIME_200MS / portTICK_PERIOD_MS); + break; + case TSL4531_INTEGRATION_400MS: + multiplier = 1; + vTaskDelay(TSL4531_INTEGRATION_TIME_400MS / portTICK_PERIOD_MS); + break; + default: + multiplier = 1; + vTaskDelay(TSL4531_INTEGRATION_TIME_400MS / portTICK_PERIOD_MS); + break; + } + + uint16_t lux_data = read_register_16(device->i2c_addr, TSL4531_REG_DATA_LOW); + + disable(device); + + *lux = multiplier * lux_data; + + return success; +} diff --git a/extras/tsl4531/tsl4531.h b/extras/tsl4531/tsl4531.h new file mode 100644 index 0000000..3b57664 --- /dev/null +++ b/extras/tsl4531/tsl4531.h @@ -0,0 +1,56 @@ +/* + * Part of esp-open-rtos + * Copyright (C) 2017 Brian Schwind (https://github.com/bschwind) + * BSD Licensed as described in the file LICENSE + */ + +#ifndef __TSL4531_H__ +#define __TSL4531_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// I2C Addresses +typedef enum +{ + TSL4531_I2C_ADDR = 0x29 +} tsl4531_i2c_addr_t; + +// Integration time IDs +typedef enum +{ + TSL4531_INTEGRATION_100MS = 0x02, + TSL4531_INTEGRATION_200MS = 0x01, + TSL4531_INTEGRATION_400MS = 0x00 // Default +} tsl4531_integration_time_t; + +// Part IDs +typedef enum +{ + TSL4531_PART_TSL45317 = 0x08, + TSL4531_PART_TSL45313 = 0x09, + TSL4531_PART_TSL45315 = 0x0A, + TSL4531_PART_TSL45311 = 0x0B +} tsl4531_part_id_t; + +typedef struct { + tsl4531_i2c_addr_t i2c_addr; + uint8_t integration_time_id; + bool skip_power_save; + tsl4531_part_id_t part_id; +} tsl4531_t; + +void tsl4531_init(tsl4531_t *device); +void tsl4531_set_integration_time(tsl4531_t *device, tsl4531_integration_time_t integration_time_id); +void tsl4531_set_power_save_skip(tsl4531_t *device, bool skip_power_save); +bool tsl4531_read_lux(tsl4531_t *device, uint16_t *lux); + +#ifdef __cplusplus +} +#endif + +#endif // __TSL4531_H__ From 07ca0d2e9eb68ef9bff32d60d325237ea3ee9cb9 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Wed, 22 Mar 2017 02:14:06 +0500 Subject: [PATCH 159/349] Update I2C README --- extras/i2c/README.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/extras/i2c/README.md b/extras/i2c/README.md index 7ab90f6..cac119d 100644 --- a/extras/i2c/README.md +++ b/extras/i2c/README.md @@ -2,18 +2,8 @@ This time a driver for the excellent esp-open-rtos. This is a bit banging I2C driver based on the Wikipedia pesudo C code [1]. -### Adding to your project - -Add the driver to your project as a submodule rather than cloning it: - -```` -% git submodule add https://github.com/kanflo/esp-open-rtos-driver-i2c.git i2c -```` -The esp-open-rtos makefile-fu will make sure the driver is built. - ### Usage - ```` #include @@ -23,18 +13,23 @@ The esp-open-rtos makefile-fu will make sure the driver is built. uint8_t slave_addr = 0x20; uint8_t reg_addr = 0x1f; uint8_t reg_data; -uint8_t data[] = {reg_addr, 0xc8}; i2c_init(SCL_PIN, SDA_PIN); -// Write data to slave -bool success = i2c_slave_write(slave_addr, data, sizeof(data)); +// Write 1 byte to slave register +int err = i2c_slave_write(slave_addr, ®_addr, &data, 1); +if (err != 0) +{ + // do something with error +} // Issue write to slave, sending reg_addr, followed by reading 1 byte -success = i2c_slave_read(slave_addr, ®_addr, reg_data, 1); +err = i2c_slave_read(slave_addr, ®_addr, ®_data, 1); ```` +For details please see `extras/i2c/i2c.h`. + The driver is released under the MIT license. [1] https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol \ No newline at end of file From a91ec6eb61dd6c3a71e3fb7826fb1a51ca25bcee Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 21 Mar 2017 23:18:04 +0200 Subject: [PATCH 160/349] sysparam fixes, tests, spi flash refactoring (#299) Original work by @ourairquality * Sysparam threadsafe and SPI access * Sysparam test cases * Fix for negative int8 * Sysparam getting bool without memory allocation. Bool tests. * SPI flash refactoring. * Extract common spiflash.c into core. * Use spiflash.c in sysparam. * Use memcpy in spiflash.c insted of hand-written version. * Tests for spiflash.c --- core/include/flashchip.h | 2 + .../include/spiflash.h | 22 +- core/include/sysparam.h | 51 ++- .../esp_spiffs_flash.c => core/spiflash.c | 96 ++--- core/sysparam.c | 371 ++++++++-------- extras/spiffs/esp_spiffs.c | 12 +- extras/spiffs/unaligned_memcpy.S | 112 ----- include/espressif/spi_flash.h | 10 +- tests/cases/07_sysparam.c | 403 ++++++++++++++++++ tests/cases/08_spiflash.c | 51 +++ 10 files changed, 724 insertions(+), 406 deletions(-) rename extras/spiffs/esp_spiffs_flash.h => core/include/spiflash.h (76%) rename extras/spiffs/esp_spiffs_flash.c => core/spiflash.c (71%) delete mode 100644 extras/spiffs/unaligned_memcpy.S create mode 100644 tests/cases/07_sysparam.c create mode 100644 tests/cases/08_spiflash.c diff --git a/core/include/flashchip.h b/core/include/flashchip.h index c14d4a3..c3edbe4 100644 --- a/core/include/flashchip.h +++ b/core/include/flashchip.h @@ -36,4 +36,6 @@ typedef struct { uint32_t status_mask; } sdk_flashchip_t; +extern sdk_flashchip_t sdk_flashchip; + #endif /* _FLASHCHIP_H */ diff --git a/extras/spiffs/esp_spiffs_flash.h b/core/include/spiflash.h similarity index 76% rename from extras/spiffs/esp_spiffs_flash.h rename to core/include/spiflash.h index abfe864..f8397db 100644 --- a/extras/spiffs/esp_spiffs_flash.h +++ b/core/include/spiflash.h @@ -21,14 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#ifndef __ESP_SPIFFS_FLASH_H__ -#define __ESP_SPIFFS_FLASH_H__ +#ifndef __SPIFLASH_H__ +#define __SPIFLASH_H__ #include +#include #include "common_macros.h" -#define ESP_SPIFFS_FLASH_OK 0 -#define ESP_SPIFFS_FLASH_ERROR 1 +#define SPI_FLASH_SECTOR_SIZE 4096 /** * Read data from SPI flash. @@ -37,9 +37,9 @@ * @param buf Buffer to read to. Doesn't have to be aligned. * @param size Size of data to read. Buffer size must be >= than data size. * - * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + * @return true if success, otherwise false */ -uint32_t IRAM esp_spiffs_flash_read(uint32_t addr, uint8_t *buf, uint32_t size); +bool IRAM spiflash_read(uint32_t addr, uint8_t *buf, uint32_t size); /** * Write data to SPI flash. @@ -48,17 +48,17 @@ uint32_t IRAM esp_spiffs_flash_read(uint32_t addr, uint8_t *buf, uint32_t size); * @param buf Buffer of data to write to flash. Doesn't have to be aligned. * @param size Size of data to write. Buffer size must be >= than data size. * - * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + * @return true if success, otherwise false */ -uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size); +bool IRAM spiflash_write(uint32_t addr, uint8_t *buf, uint32_t size); /** * Erase a sector. * * @param addr Address of sector to erase. Must be sector aligned. * - * @return ESP_SPIFFS_FLASH_OK or ESP_SPIFFS_FLASH_ERROR + * @return true if success, otherwise false */ -uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr); +bool IRAM spiflash_erase_sector(uint32_t addr); -#endif // __ESP_SPIFFS_FLASH_H__ +#endif // __SPIFLASH_H__ diff --git a/core/include/sysparam.h b/core/include/sysparam.h index 60084be..130bd05 100644 --- a/core/include/sysparam.h +++ b/core/include/sysparam.h @@ -119,7 +119,7 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr); * you reformat the area currently being used, you will also need to call * sysparam_init() again afterward before you will be able to continue using * it. - */ + */ sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors, bool force); /** Get the start address and size of the currently active sysparam area @@ -180,24 +180,20 @@ sysparam_status_t sysparam_compact(); */ sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t *actual_length, bool *is_binary); -/** Get the value associated with a key (static buffers only) +/** Get the value associated with a key (static value buffer) * * This performs the same function as sysparam_get_data() but without - * performing any memory allocations. It can thus be used before the heap has - * been configured or in other cases where using the heap would be a problem - * (i.e. in an OOM handler, etc). It requires that the caller pass in a - * suitably sized buffer for the value to be read (if the supplied buffer is - * not large enough, the returned value will be truncated and the full - * required length will be returned in `actual_length`). - * - * NOTE: In addition to being large enough for the value, the supplied buffer - * must also be at least as large as the length of the key being requested. - * If it is not, an error will be returned. + * allocating memory for the result value. It can thus be used before the heap + * has been configured or in other cases where using the heap would be a + * problem (i.e. in an OOM handler, etc). It requires that the caller pass in + * a suitably sized buffer for the value to be read (if the supplied buffer is + * not large enough, the returned value will be truncated and the full required + * length will be returned in `actual_length`). * * @param[in] key Key name (zero-terminated string) - * @param[in] buffer Pointer to a buffer to hold the returned value - * @param[in] buffer_size Length of the supplied buffer in bytes - * @param[out] actual_length pointer to a location to hold the actual length + * @param[in] dest Pointer to a buffer to hold the returned value. + * @param[in] dest_size Length of the supplied buffer in bytes. + * @param[out] actual_length Pointer to a location to hold the actual length * of the data which was associated with the key * (may be NULL). * @param[out] is_binary Pointer to a bool to hold whether the returned @@ -210,10 +206,10 @@ sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t * * @retval ::SYSPARAM_ERR_CORRUPT Sysparam region has bad/corrupted data * @retval ::SYSPARAM_ERR_IO I/O error reading/writing flash */ -sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *buffer, size_t buffer_size, size_t *actual_length, bool *is_binary); +sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *dest, size_t dest_size, size_t *actual_length, bool *is_binary); /** Get the string value associated with a key - * + * * This routine can be used if you know that the value in a key will (or at * least should) be a string. It will return a zero-terminated char buffer * containing the value retrieved. @@ -240,9 +236,10 @@ sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *buffer, siz sysparam_status_t sysparam_get_string(const char *key, char **destptr); /** Get the int32_t value associated with a key - * + * * This routine can be used if you know that the value in a key will (or at - * least should) be an int32_t value. + * least should) be an int32_t value. This is done without allocating any + * memory. * * Note: If the status result is anything other than ::SYSPARAM_OK, the value * in `result` is not changed. This means it is possible to set a default @@ -266,7 +263,8 @@ sysparam_status_t sysparam_get_int32(const char *key, int32_t *result); /** Get the int8_t value associated with a key * * This routine can be used if you know that the value in a key will (or at - * least should) be a uint8_t binary value. + * least should) be a uint8_t binary value. This is done without allocating any + * memory. * * Note: If the status result is anything other than ::SYSPARAM_OK, the value * in `result` is not changed. This means it is possible to set a default @@ -288,7 +286,7 @@ sysparam_status_t sysparam_get_int32(const char *key, int32_t *result); sysparam_status_t sysparam_get_int8(const char *key, int8_t *result); /** Get the boolean value associated with a key - * + * * This routine can be used if you know that the value in a key will (or at * least should) be a boolean setting. It will read the specified value as a * text string and attempt to parse it as a boolean value. @@ -320,7 +318,7 @@ sysparam_status_t sysparam_get_bool(const char *key, bool *result); * * The supplied value can be any data, up to 255 bytes in length. If `value` * is NULL or `value_len` is 0, this is treated as a request to delete any - * current entry matching `key`. + * current entry matching `key`. This is done without allocating any memory. * * If `binary` is true, the data will be considered binary (unprintable) data, * and this will be annotated in the saved entry. This does not affect the @@ -368,7 +366,8 @@ sysparam_status_t sysparam_set_string(const char *key, const char *value); /** Set a key's value as a number * * Write an int32_t binary value to the specified key. This does the inverse of - * the sysparam_get_int32() function. + * the sysparam_get_int32() function. This is done without allocating any + * memory. * * @param[in] key Key name (zero-terminated string) * @param[in] value Value to set @@ -386,10 +385,8 @@ sysparam_status_t sysparam_set_int32(const char *key, int32_t value); /** Set a key's value as a number * * Write an int8_t binary value to the specified key. This does the inverse of - * the sysparam_get_int8() function. - * - * Note that if the key already contains a value which parses to the same - * boolean (true/false) value, it is left unchanged. + * the sysparam_get_int8() function. This is done without allocating any + * memory. * * @param[in] key Key name (zero-terminated string) * @param[in] value Value to set diff --git a/extras/spiffs/esp_spiffs_flash.c b/core/spiflash.c similarity index 71% rename from extras/spiffs/esp_spiffs_flash.c rename to core/spiflash.c index f0a6049..386d7c9 100644 --- a/extras/spiffs/esp_spiffs_flash.c +++ b/core/spiflash.c @@ -21,12 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "esp_spiffs_flash.h" -#include "flashchip.h" -#include "espressif/spi_flash.h" -#include "FreeRTOS.h" -#include "esp/rom.h" -#include "esp/spi_regs.h" +#include "include/spiflash.h" + +#include "include/flashchip.h" +#include "include/esp/rom.h" +#include "include/esp/spi_regs.h" + +#include #include /** @@ -52,25 +53,6 @@ #define SPI_READ_MAX_SIZE 60 -/** - * Copy unaligned data to 4-byte aligned destination buffer. - * - * @param words Number of 4-byte words to write. - * - * @see unaligned_memcpy.S - */ -void memcpy_unaligned_src(volatile uint32_t *dst, uint8_t *src, uint8_t words); - -/** - * Copy 4-byte aligned source data to unaligned destination buffer. - * - * @param bytes Number of byte to copy to dst. - * - * @see unaligned_memcpy.S - */ -void memcpy_unaligned_dst(uint8_t *dst, volatile uint32_t *src, uint8_t bytes); - - /** * Low level SPI flash write. Write block of data up to 64 bytes. */ @@ -86,7 +68,9 @@ static inline void IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, SPI(0).ADDR = (addr & 0x00FFFFFF) | (size << 24); - memcpy_unaligned_src(SPI(0).W, buf, words); + memcpy((void*)SPI(0).W, buf, words<<2); + + __asm__ volatile("memw"); SPI_write_enable(chip); @@ -97,16 +81,16 @@ static inline void IRAM spi_write_data(sdk_flashchip_t *chip, uint32_t addr, /** * Write a page of flash. Data block should not cross page boundary. */ -static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_addr, +static bool IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_addr, uint8_t *buf, uint32_t size) { // check if block to write doesn't cross page boundary if (flashchip->page_size < size + (dest_addr % flashchip->page_size)) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } if (size < 1) { - return ESP_SPIFFS_FLASH_OK; + return true; } while (size >= SPI_WRITE_MAX_SIZE) { @@ -117,58 +101,58 @@ static uint32_t IRAM spi_write_page(sdk_flashchip_t *flashchip, uint32_t dest_ad buf += SPI_WRITE_MAX_SIZE; if (size < 1) { - return ESP_SPIFFS_FLASH_OK; + return true; } } spi_write_data(flashchip, dest_addr, buf, size); - return ESP_SPIFFS_FLASH_OK; + return true; } /** * Split block of data into pages and write pages. */ -static uint32_t IRAM spi_write(uint32_t addr, uint8_t *dst, uint32_t size) +static bool IRAM spi_write(uint32_t addr, uint8_t *dst, uint32_t size) { if (sdk_flashchip.chip_size < (addr + size)) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } uint32_t write_bytes_to_page = sdk_flashchip.page_size - (addr % sdk_flashchip.page_size); // TODO: place for optimization if (size < write_bytes_to_page) { - if (spi_write_page(&sdk_flashchip, addr, dst, size)) { - return ESP_SPIFFS_FLASH_ERROR; + if (!spi_write_page(&sdk_flashchip, addr, dst, size)) { + return false; } } else { - if (spi_write_page(&sdk_flashchip, addr, dst, write_bytes_to_page)) { - return ESP_SPIFFS_FLASH_ERROR; + if (!spi_write_page(&sdk_flashchip, addr, dst, write_bytes_to_page)) { + return false; } uint32_t offset = write_bytes_to_page; uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; for (uint8_t i = 0; i != pages_to_write; i++) { - if (spi_write_page(&sdk_flashchip, addr + offset, + if (!spi_write_page(&sdk_flashchip, addr + offset, dst + offset, sdk_flashchip.page_size)) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } offset += sdk_flashchip.page_size; } - if (spi_write_page(&sdk_flashchip, addr + offset, + if (!spi_write_page(&sdk_flashchip, addr + offset, dst + offset, size - offset)) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } } - return ESP_SPIFFS_FLASH_OK; + return true; } -uint32_t IRAM esp_spiffs_flash_write(uint32_t addr, uint8_t *buf, uint32_t size) +bool IRAM spiflash_write(uint32_t addr, uint8_t *buf, uint32_t size) { - uint32_t result = ESP_SPIFFS_FLASH_ERROR; + bool result = false; if (buf) { vPortEnterCritical(); @@ -197,21 +181,23 @@ static inline void IRAM read_block(sdk_flashchip_t *chip, uint32_t addr, while (SPI(0).CMD) {}; - memcpy_unaligned_dst(buf, SPI(0).W, size); + __asm__ volatile("memw"); + + memcpy(buf, (const void*)SPI(0).W, size); } /** * Read SPI flash data. Data region doesn't need to be page aligned. */ -static inline uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, +static inline bool IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, uint8_t *dst, uint32_t size) { if (size < 1) { - return ESP_SPIFFS_FLASH_OK; + return true; } if ((addr + size) > flashchip->chip_size) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } while (size >= SPI_READ_MAX_SIZE) { @@ -225,12 +211,12 @@ static inline uint32_t IRAM read_data(sdk_flashchip_t *flashchip, uint32_t addr, read_block(flashchip, addr, dst, size); } - return ESP_SPIFFS_FLASH_OK; + return true; } -uint32_t IRAM esp_spiffs_flash_read(uint32_t dest_addr, uint8_t *buf, uint32_t size) +bool IRAM spiflash_read(uint32_t dest_addr, uint8_t *buf, uint32_t size) { - uint32_t result = ESP_SPIFFS_FLASH_ERROR; + bool result = false; if (buf) { vPortEnterCritical(); @@ -245,14 +231,14 @@ uint32_t IRAM esp_spiffs_flash_read(uint32_t dest_addr, uint8_t *buf, uint32_t s return result; } -uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr) +bool IRAM spiflash_erase_sector(uint32_t addr) { if ((addr + sdk_flashchip.sector_size) > sdk_flashchip.chip_size) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } if (addr & 0xFFF) { - return ESP_SPIFFS_FLASH_ERROR; + return false; } vPortEnterCritical(); @@ -269,5 +255,5 @@ uint32_t IRAM esp_spiffs_flash_erase_sector(uint32_t addr) Cache_Read_Enable(0, 0, 1); vPortExitCritical(); - return ESP_SPIFFS_FLASH_OK; + return true; } diff --git a/core/sysparam.c b/core/sysparam.c index 084a2be..126cfe0 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -8,14 +8,12 @@ #include #include #include -#include +#include "spiflash.h" +#include "flashchip.h" #include #include "FreeRTOS.h" #include "semphr.h" -//TODO: make this properly threadsafe -//TODO: reduce stack usage - /* The "magic" value that indicates the start of a sysparam region in flash. */ #define SYSPARAM_MAGIC 0x70524f45 // "EORp" in little-endian @@ -33,11 +31,14 @@ */ #define SCAN_BUFFER_SIZE 8 // words -/* The size of the temporary buffer used for reading back and verifying data - * written to flash. Making this larger will make the write-and-verify - * operation slightly faster, but will use more heap during writes +/* The size in words of the buffer used for reading keys when searching for a + * match, for reading payloads to check if the value has changed, and reading + * back from the flash to verify writes. Will work well if big enough for + * commonly used keys, and must be at least one word. Stack allocated so not too + * large! */ -#define VERIFY_BUF_SIZE 64 +#define BOUNCE_BUFFER_WORDS 3 +#define BOUNCE_BUFFER_SIZE (BOUNCE_BUFFER_WORDS * sizeof(uint32_t)) /* Size of region/entry headers. These should not normally need tweaking (and * will probably require some code changes if they are tweaked). @@ -76,14 +77,16 @@ /******************************* Useful Macros *******************************/ #define ROUND_TO_WORD_BOUNDARY(x) (((x) + 3) & 0xfffffffc) -#define ENTRY_SIZE(payload_len) (ENTRY_HEADER_SIZE + ROUND_TO_WORD_BOUNDARY(payload_len)) +#define ENTRY_SIZE(payload_len) (ENTRY_HEADER_SIZE + payload_len) #define max(x, y) ((x) > (y) ? (x) : (y)) #define min(x, y) ((x) < (y) ? (x) : (y)) #define debug(level, format, ...) if (SYSPARAM_DEBUG >= (level)) { printf("%s" format "\n", "sysparam: ", ## __VA_ARGS__); } -#define CHECK_FLASH_OP(x) do { int __x = (x); if ((__x) != SPI_FLASH_RESULT_OK) { debug(1, "FLASH ERR: %d", __x); return SYSPARAM_ERR_IO; } } while (0); +#define CHECK_FLASH_OP(x) do { bool __x = (x); if (!(__x)) { \ + debug(1, "FLASH ERR: %d", __x); return SYSPARAM_ERR_IO; \ + } } while (0); /********************* Internal datatypes and structures *********************/ @@ -119,50 +122,28 @@ static struct { /***************************** Internal routines *****************************/ -static inline IRAM sysparam_status_t _do_write(uint32_t addr, const void *data, size_t data_size) { - CHECK_FLASH_OP(sdk_spi_flash_write(addr, (void*) data, data_size)); - return SYSPARAM_OK; -} +static sysparam_status_t _write_and_verify(uint32_t addr, const void *data, size_t data_size) { + uint8_t bounce[BOUNCE_BUFFER_SIZE]; -static inline IRAM sysparam_status_t _do_verify(uint32_t addr, const void *data, void *buffer, size_t len) { - CHECK_FLASH_OP(sdk_spi_flash_read(addr, buffer, len)); - if (memcmp(data, buffer, len)) { - return SYSPARAM_ERR_IO; + for (int i = 0; i < data_size; i += BOUNCE_BUFFER_SIZE) { + size_t count = min(data_size - i, BOUNCE_BUFFER_SIZE); + memcpy(bounce, data + i, count); + CHECK_FLASH_OP(spiflash_write(addr + i, bounce, count)); + CHECK_FLASH_OP(spiflash_read(addr + i, bounce, count)); + if (memcmp(data + i, bounce, count) != 0) { + debug(1, "Flash write (@ 0x%08x) verify failed!", addr); + return SYSPARAM_ERR_IO; + } } return SYSPARAM_OK; } -/*FIXME: Eventually, this should probably be implemented down at the SPI flash library layer, where it can just compare bytes/words straight from the SPI hardware buffer instead of allocating a whole separate temp buffer, reading chunks into that, and then doing a memcmp.. */ -static IRAM sysparam_status_t _write_and_verify(uint32_t addr, const void *data, size_t data_size) { - int i; - size_t count; - sysparam_status_t status = SYSPARAM_OK; - uint8_t *verify_buf = malloc(VERIFY_BUF_SIZE); - - if (!verify_buf) return SYSPARAM_ERR_NOMEM; - do { - status = _do_write(addr, data, data_size); - if (status != SYSPARAM_OK) break; - for (i = 0; i < data_size; i += VERIFY_BUF_SIZE) { - count = min(data_size - i, VERIFY_BUF_SIZE); - status = _do_verify(addr + i, data + i, verify_buf, count); - if (status != SYSPARAM_OK) { - debug(1, "Flash write (@ 0x%08x) verify failed!", addr); - break; - } - } - } while (false); - free(verify_buf); - return status; -} - /** Erase the sectors of a region */ static sysparam_status_t _format_region(uint32_t addr, uint16_t num_sectors) { - uint16_t sector = addr / sdk_flashchip.sector_size; int i; for (i = 0; i < num_sectors; i++) { - CHECK_FLASH_OP(sdk_spi_flash_erase_sector(sector + i)); + CHECK_FLASH_OP(spiflash_erase_sector(addr + (i * SPI_FLASH_SECTOR_SIZE))); } return SYSPARAM_OK; } @@ -212,7 +193,7 @@ static sysparam_status_t init_write_context(struct sysparam_context *ctx) { memset(ctx, 0, sizeof(*ctx)); ctx->addr = _sysparam_info.end_addr; debug(3, "read entry header @ 0x%08x", ctx->addr); - CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); + CHECK_FLASH_OP(spiflash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); return SYSPARAM_OK; } @@ -238,7 +219,10 @@ static sysparam_status_t _find_entry(struct sysparam_context *ctx, uint16_t matc // workaround is to make sure that the next write operation // will always start with a compaction, which will leave off // the invalid data at the end and fix the issue going forward. - debug(1, "Encountered entry with invalid length (0x%04x) @ 0x%08x (region end is 0x%08x). Truncating entries.", ctx->entry.len, ctx->addr, _sysparam_info.end_addr); + debug(1, "Encountered entry with invalid length (0x%04x) @ 0x%08x (region end is 0x%08x). Truncating entries.", + ctx->entry.len, + ctx->addr, _sysparam_info.end_addr); + _sysparam_info.force_compact = true; break; } @@ -251,7 +235,7 @@ static sysparam_status_t _find_entry(struct sysparam_context *ctx, uint16_t matc } debug(3, "read entry header @ 0x%08x", ctx->addr); - CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); + CHECK_FLASH_OP(spiflash_read(ctx->addr, (void*) &ctx->entry, ENTRY_HEADER_SIZE)); debug(3, " idflags = 0x%04x", ctx->entry.idflags); if (ctx->entry.idflags == 0xffff) { // 0xffff is never a valid id field, so this means we've hit the @@ -295,17 +279,39 @@ static sysparam_status_t _find_entry(struct sysparam_context *ctx, uint16_t matc } /** Read the payload from the current entry pointed to by `ctx` */ + static inline sysparam_status_t _read_payload(struct sysparam_context *ctx, uint8_t *buffer, size_t buffer_size) { - debug(3, "read payload (%d) @ 0x%08x", min(buffer_size, ctx->entry.len), ctx->addr); - CHECK_FLASH_OP(sdk_spi_flash_read(ctx->addr + ENTRY_HEADER_SIZE, (void*) buffer, min(buffer_size, ctx->entry.len))); + uint32_t addr = ctx->addr + ENTRY_HEADER_SIZE; + size_t size = min(buffer_size, ctx->entry.len); + debug(3, "read payload (%d) @ 0x%08x", size, addr); + + CHECK_FLASH_OP(spiflash_read(addr, buffer, buffer_size)); + + return SYSPARAM_OK; +} + +static inline sysparam_status_t _compare_payload(struct sysparam_context *ctx, uint8_t *value, size_t size) { + debug(3, "compare payload (%d) @ 0x%08x", size, ctx->addr); + if (ctx->entry.len != size) return SYSPARAM_NOTFOUND; + uint32_t bounce[BOUNCE_BUFFER_WORDS]; + uint32_t addr = ctx->addr + ENTRY_HEADER_SIZE; + int i; + for (i = 0; i < size; i += BOUNCE_BUFFER_SIZE) { + int len = min(size - i, BOUNCE_BUFFER_SIZE); + CHECK_FLASH_OP(spiflash_read(addr + i, (void*)bounce, len)); + if (memcmp(value + i, bounce, len)) { + // Mismatch. + return SYSPARAM_NOTFOUND; + } + } return SYSPARAM_OK; } /** Find the entry corresponding to the specified key name */ -static sysparam_status_t _find_key(struct sysparam_context *ctx, const char *key, uint16_t key_len, uint8_t *buffer) { +static sysparam_status_t _find_key(struct sysparam_context *ctx, const char *key, uint16_t key_len) { sysparam_status_t status; - debug(3, "find key: %s", key ? key : "(null)"); + debug(3, "find key len %d: %s", key_len, key ? key : "(null)"); while (true) { // Find the next key entry status = _find_entry(ctx, ENTRY_ID_ANY, false); @@ -316,12 +322,12 @@ static sysparam_status_t _find_key(struct sysparam_context *ctx, const char *key break; } if (ctx->entry.len == key_len) { - status = _read_payload(ctx, buffer, key_len); - if (status < 0) return status; - if (!memcmp(key, buffer, key_len)) { + status = _compare_payload(ctx, (uint8_t *)key, key_len); + if (status == SYSPARAM_OK) { // We have a match break; } + if (status != SYSPARAM_NOTFOUND) return status; debug(3, "entry payload does not match"); } else { debug(3, "key length (%d) does not match (%d)", ctx->entry.len, key_len); @@ -394,13 +400,11 @@ static inline sysparam_status_t _delete_entry(uint32_t addr) { debug(2, "Deleting entry @ 0x%08x", addr); debug(3, "read entry header @ 0x%08x", addr); - CHECK_FLASH_OP(sdk_spi_flash_read(addr, (void*) &entry, ENTRY_HEADER_SIZE)); + CHECK_FLASH_OP(spiflash_read(addr, (uint8_t*) &entry, ENTRY_HEADER_SIZE)); // Set the ID to zero to mark it as "deleted" entry.idflags &= ~ENTRY_FLAG_ALIVE; debug(3, "write entry header @ 0x%08x", addr); - CHECK_FLASH_OP(sdk_spi_flash_write(addr, (void*) &entry, ENTRY_HEADER_SIZE)); - - return SYSPARAM_OK; + return _write_and_verify(addr, &entry, ENTRY_HEADER_SIZE); } /** Compact the current region, removing all deleted/unused entries, and write @@ -424,7 +428,11 @@ static sysparam_status_t _compact_params(struct sysparam_context *ctx, int *key_ uint16_t binary_flag; uint16_t num_sectors = _sysparam_info.region_size / sdk_flashchip.sector_size; - debug(1, "compacting region (current size %d, expect to recover %d%s bytes)...", _sysparam_info.end_addr - _sysparam_info.cur_base, ctx ? ctx->compactable : 0, (ctx && ctx->unused_keys > 0) ? "+ (unused keys present)" : ""); + debug(1, "compacting region (current size %d, expect to recover %d%s bytes)...", + _sysparam_info.end_addr - _sysparam_info.cur_base, + ctx ? ctx->compactable : 0, + (ctx && ctx->unused_keys > 0) ? "+ (unused keys present)" : ""); + status = _format_region(new_base, num_sectors); if (status < 0) return status; status = sysparam_iter_start(&iter); @@ -505,7 +513,7 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { top_addr = base_addr + sdk_flashchip.sector_size; } for (addr0 = base_addr; addr0 < top_addr; addr0 += sdk_flashchip.sector_size) { - CHECK_FLASH_OP(sdk_spi_flash_read(addr0, (void*) &header0, REGION_HEADER_SIZE)); + CHECK_FLASH_OP(spiflash_read(addr0, (void*) &header0, REGION_HEADER_SIZE)); if (header0.magic == SYSPARAM_MAGIC) { // Found a starting point... break; @@ -523,7 +531,7 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) { } else { addr1 = addr0 + num_sectors * sdk_flashchip.sector_size; } - CHECK_FLASH_OP(sdk_spi_flash_read(addr1, (void*) &header1, REGION_HEADER_SIZE)); + CHECK_FLASH_OP(spiflash_read(addr1, (uint8_t*) &header1, REGION_HEADER_SIZE)); if (header1.magic == SYSPARAM_MAGIC) { // Yay! Found the other one. Sanity-check it.. @@ -600,7 +608,7 @@ sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors, // we're not going to be clobbering something else important. for (addr = base_addr; addr < base_addr + region_size * 2; addr += SCAN_BUFFER_SIZE) { debug(3, "read %d words @ 0x%08x", SCAN_BUFFER_SIZE, addr); - CHECK_FLASH_OP(sdk_spi_flash_read(addr, buffer, SCAN_BUFFER_SIZE * 4)); + CHECK_FLASH_OP(spiflash_read(addr, (uint8_t*)buffer, SCAN_BUFFER_SIZE * 4)); for (i = 0; i < SCAN_BUFFER_SIZE; i++) { if (buffer[i] != 0xffffffff) { // Uh oh, not empty. @@ -655,70 +663,79 @@ sysparam_status_t sysparam_get_data(const char *key, uint8_t **destptr, size_t * sysparam_status_t status; size_t key_len = strlen(key); uint8_t *buffer; - uint8_t *newbuf; - - if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; - buffer = malloc(key_len + 2); - if (!buffer) return SYSPARAM_ERR_NOMEM; - do { - _init_context(&ctx); - status = _find_key(&ctx, key, key_len, buffer); - if (status != SYSPARAM_OK) break; + xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); - // Find the associated value - status = _find_value(&ctx, ctx.entry.idflags); - if (status != SYSPARAM_OK) break; - - newbuf = realloc(buffer, ctx.entry.len + 1); - if (!newbuf) { - status = SYSPARAM_ERR_NOMEM; - break; - } - buffer = newbuf; - status = _read_payload(&ctx, buffer, ctx.entry.len); - if (status != SYSPARAM_OK) break; - - // Zero-terminate the result, just in case (doesn't hurt anything for - // non-string data, and can avoid nasty mistakes if the caller wants to - // interpret the result as a string). - buffer[ctx.entry.len] = 0; - - *destptr = buffer; - if (actual_length) *actual_length = ctx.entry.len; - if (is_binary) *is_binary = (bool)(ctx.entry.idflags & ENTRY_FLAG_BINARY); - return SYSPARAM_OK; - } while (false); - - free(buffer); if (actual_length) *actual_length = 0; + + if (!_sysparam_info.cur_base) { + status = SYSPARAM_ERR_NOINIT; + goto done; + } + + _init_context(&ctx); + status = _find_key(&ctx, key, key_len); + if (status != SYSPARAM_OK) goto done; + + // Find the associated value + status = _find_value(&ctx, ctx.entry.idflags); + if (status != SYSPARAM_OK) goto done; + + buffer = malloc(ctx.entry.len + 1); + if (!buffer) { + status = SYSPARAM_ERR_NOMEM; + goto done; + } + + status = _read_payload(&ctx, buffer, ctx.entry.len); + if (status != SYSPARAM_OK) { + free(buffer); + goto done; + } + + // Zero-terminate the result, just in case (doesn't hurt anything for + // non-string data, and can avoid nasty mistakes if the caller wants to + // interpret the result as a string). + buffer[ctx.entry.len] = 0; + + *destptr = buffer; + if (actual_length) *actual_length = ctx.entry.len; + if (is_binary) *is_binary = (bool)(ctx.entry.idflags & ENTRY_FLAG_BINARY); + status = SYSPARAM_OK; + + done: + xSemaphoreGive(_sysparam_info.sem); return status; } -sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *buffer, size_t buffer_size, size_t *actual_length, bool *is_binary) { +sysparam_status_t sysparam_get_data_static(const char *key, uint8_t *dest, size_t dest_size, size_t *actual_length, bool *is_binary) { struct sysparam_context ctx; sysparam_status_t status = SYSPARAM_OK; size_t key_len = strlen(key); - if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; - - // Supplied buffer must be at least as large as the key, or 2 bytes, - // whichever is larger. - if (buffer_size < max(key_len, 2)) return SYSPARAM_ERR_NOMEM; + xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); if (actual_length) *actual_length = 0; + if (!_sysparam_info.cur_base) { + status = SYSPARAM_ERR_NOINIT; + goto done; + } + _init_context(&ctx); - status = _find_key(&ctx, key, key_len, buffer); - if (status != SYSPARAM_OK) return status; + status = _find_key(&ctx, key, key_len); + if (status != SYSPARAM_OK) goto done; status = _find_value(&ctx, ctx.entry.idflags); - if (status != SYSPARAM_OK) return status; - status = _read_payload(&ctx, buffer, buffer_size); - if (status != SYSPARAM_OK) return status; + if (status != SYSPARAM_OK) goto done; + status = _read_payload(&ctx, dest, dest_size); + if (status != SYSPARAM_OK) goto done; if (actual_length) *actual_length = ctx.entry.len; if (is_binary) *is_binary = (bool)(ctx.entry.idflags & ENTRY_FLAG_BINARY); - return SYSPARAM_OK; + + done: + xSemaphoreGive(_sysparam_info.sem); + return status; } sysparam_status_t sysparam_get_string(const char *key, char **destptr) { @@ -741,63 +758,78 @@ sysparam_status_t sysparam_get_string(const char *key, char **destptr) { } sysparam_status_t sysparam_get_int32(const char *key, int32_t *result) { - char *buffer; - char *endptr; int32_t value; + size_t actual_length; + bool is_binary; sysparam_status_t status; - status = sysparam_get_string(key, &buffer); + status = sysparam_get_data_static(key, (uint8_t *)&value, sizeof(int32_t), + &actual_length, &is_binary); if (status != SYSPARAM_OK) return status; - value = strtol(buffer, &endptr, 0); - if (*endptr) { - // There was extra crap at the end of the string. - free(buffer); + if (!is_binary || actual_length != sizeof(int32_t)) return SYSPARAM_PARSEFAILED; - } - *result = value; - free(buffer); - return SYSPARAM_OK; + return status; } sysparam_status_t sysparam_get_int8(const char *key, int8_t *result) { - int32_t value; + int8_t value; + size_t actual_length; + bool is_binary; sysparam_status_t status; - status = sysparam_get_int32(key, &value); - if (status == SYSPARAM_OK) { - *result = value; - } + status = sysparam_get_data_static(key, (uint8_t *)&value, sizeof(int8_t), + &actual_length, &is_binary); + if (status != SYSPARAM_OK) return status; + if (!is_binary || actual_length != sizeof(int8_t)) + return SYSPARAM_PARSEFAILED; + *result = value; return status; } sysparam_status_t sysparam_get_bool(const char *key, bool *result) { - char *buffer; + const size_t buf_size = 8; + char buf[buf_size + 1]; // extra byte for zero termination + size_t data_len = 0; + bool binary = false; sysparam_status_t status; - status = sysparam_get_string(key, &buffer); + status = sysparam_get_data_static(key, (uint8_t*)buf, + buf_size, &data_len, &binary); + if (status != SYSPARAM_OK) return status; do { - if (!strcasecmp(buffer, "y") || - !strcasecmp(buffer, "yes") || - !strcasecmp(buffer, "t") || - !strcasecmp(buffer, "true") || - !strcmp(buffer, "1")) { + if (binary) { + if (data_len == 1) { // int8 value + *result = (int8_t)(*buf) ? true : false; + } else if (data_len == 4) { // int32 value + *result = (int32_t)(*buf) ? true : false; + } else { + status = SYSPARAM_PARSEFAILED; + } + break; + } + buf[data_len] = 0; + + if (!strcasecmp(buf, "y") || + !strcasecmp(buf, "yes") || + !strcasecmp(buf, "t") || + !strcasecmp(buf, "true") || + !strcmp(buf, "1")) { *result = true; break; } - if (!strcasecmp(buffer, "n") || - !strcasecmp(buffer, "no") || - !strcasecmp(buffer, "f") || - !strcasecmp(buffer, "false") || - !strcmp(buffer, "0")) { + if (!strcasecmp(buf, "n") || + !strcasecmp(buf, "no") || + !strcasecmp(buf, "f") || + !strcasecmp(buf, "false") || + !strcmp(buf, "0")) { *result = false; break; } status = SYSPARAM_PARSEFAILED; } while (0); - free(buffer); return status; } @@ -806,48 +838,30 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ struct sysparam_context write_ctx; sysparam_status_t status = SYSPARAM_OK; uint16_t key_len = strlen(key); - uint8_t *buffer; - uint8_t *newbuf; size_t free_space; size_t needed_space; - bool free_value = false; int key_id = -1; uint32_t old_value_addr = 0; uint16_t binary_flag; - - if (!_sysparam_info.cur_base) return SYSPARAM_ERR_NOINIT; + if (!key_len) return SYSPARAM_ERR_BADVALUE; if (key_len > MAX_KEY_LEN) return SYSPARAM_ERR_BADVALUE; if (value_len > MAX_VALUE_LEN) return SYSPARAM_ERR_BADVALUE; - xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); - if (!value) value_len = 0; debug(1, "updating value for '%s' (%d bytes)", key, value_len); - if (value_len && ((intptr_t)value & 0x3)) { - // The passed value isn't word-aligned. This will be a problem later - // when calling `sdk_spi_flash_write`, so make a word-aligned copy. - buffer = malloc(value_len); - if (!buffer) { - status = SYSPARAM_ERR_NOMEM; - goto done; - } - memcpy(buffer, value, value_len); - value = buffer; - free_value = true; - } - // Create a working buffer for `_find_key` to use. - buffer = malloc(key_len); - if (!buffer) { - if (free_value) free((void *)value); - status = SYSPARAM_ERR_NOMEM; + + xSemaphoreTake(_sysparam_info.sem, portMAX_DELAY); + + if (!_sysparam_info.cur_base) { + status = SYSPARAM_ERR_NOINIT; goto done; } do { _init_context(&ctx); - status = _find_key(&ctx, key, key_len, buffer); + status = _find_key(&ctx, key, key_len); if (status == SYSPARAM_OK) { // Key already exists, see if there's a current value. key_id = ctx.entry.idflags & ENTRY_MASK_ID; @@ -862,24 +876,17 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ if (value_len) { if (old_value_addr) { - if ((ctx.entry.idflags & ENTRY_FLAG_BINARY) == binary_flag && ctx.entry.len == value_len) { + if ((ctx.entry.idflags & ENTRY_FLAG_BINARY) == binary_flag && + ctx.entry.len == value_len) { // Are we trying to write the same value that's already there? - if (value_len > key_len) { - newbuf = realloc(buffer, value_len); - if (!newbuf) { - status = SYSPARAM_ERR_NOMEM; - break; - } - buffer = newbuf; - } - status = _read_payload(&ctx, buffer, value_len); - if (status < 0) break; - if (!memcmp(buffer, value, value_len)) { + status = _compare_payload(&ctx, (uint8_t *)value, value_len); + if (status == SYSPARAM_OK) { // Yup, it's a match! No need to do anything further, // just leave the current value as-is. status = SYSPARAM_OK; break; } + if (status != SYSPARAM_NOTFOUND) goto done; } // Since we will be deleting the old value (if any) make sure @@ -981,9 +988,6 @@ sysparam_status_t sysparam_set_data(const char *key, const uint8_t *value, size_ debug(1, "New addr is 0x%08x (%d bytes remaining)", _sysparam_info.end_addr, _sysparam_info.cur_base + _sysparam_info.region_size - _sysparam_info.end_addr); } while (false); - if (free_value) free((void *)value); - free(buffer); - done: xSemaphoreGive(_sysparam_info.sem); @@ -995,15 +999,11 @@ sysparam_status_t sysparam_set_string(const char *key, const char *value) { } sysparam_status_t sysparam_set_int32(const char *key, int32_t value) { - uint8_t buffer[12]; - int len; - - len = snprintf((char *)buffer, 12, "%d", value); - return sysparam_set_data(key, buffer, len, false); + return sysparam_set_data(key, (const uint8_t *)&value, sizeof(value), true); } sysparam_status_t sysparam_set_int8(const char *key, int8_t value) { - return sysparam_set_int32(key, value); + return sysparam_set_data(key, (const uint8_t *)&value, sizeof(value), true); } sysparam_status_t sysparam_set_bool(const char *key, bool value) { @@ -1043,7 +1043,6 @@ sysparam_status_t sysparam_iter_start(sysparam_iter_t *iter) { } sysparam_status_t sysparam_iter_next(sysparam_iter_t *iter) { - uint8_t buffer[2]; sysparam_status_t status; size_t required_len; struct sysparam_context *ctx = iter->ctx; @@ -1052,7 +1051,7 @@ sysparam_status_t sysparam_iter_next(sysparam_iter_t *iter) { char *newbuf; while (true) { - status = _find_key(ctx, NULL, 0, buffer); + status = _find_key(ctx, NULL, 0); if (status != SYSPARAM_OK) return status; memcpy(&value_ctx, ctx, sizeof(value_ctx)); @@ -1060,7 +1059,7 @@ sysparam_status_t sysparam_iter_next(sysparam_iter_t *iter) { if (status < 0) return status; if (status == SYSPARAM_NOTFOUND) continue; - key_space = ROUND_TO_WORD_BOUNDARY(ctx->entry.len + 1); + key_space = ctx->entry.len + 1; required_len = key_space + value_ctx.entry.len + 1; if (required_len > iter->bufsize) { newbuf = realloc(iter->key, required_len); diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 3d81218..58f1d33 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -7,11 +7,10 @@ */ #include "esp_spiffs.h" #include "spiffs.h" -#include +#include #include #include #include -#include "esp_spiffs_flash.h" spiffs fs; @@ -34,7 +33,7 @@ static fs_buf_t cache_buf = {0}; static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) { - if (esp_spiffs_flash_read(addr, dst, size) == ESP_SPIFFS_FLASH_ERROR) { + if (!spiflash_read(addr, dst, size)) { return SPIFFS_ERR_INTERNAL; } @@ -43,7 +42,7 @@ static s32_t esp_spiffs_read(u32_t addr, u32_t size, u8_t *dst) static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) { - if (esp_spiffs_flash_write(addr, src, size) == ESP_SPIFFS_FLASH_ERROR) { + if (!spiflash_write(addr, src, size)) { return SPIFFS_ERR_INTERNAL; } @@ -52,11 +51,10 @@ static s32_t esp_spiffs_write(u32_t addr, u32_t size, u8_t *src) static s32_t esp_spiffs_erase(u32_t addr, u32_t size) { - uint32_t sectors = size / SPI_FLASH_SEC_SIZE; + uint32_t sectors = size / SPI_FLASH_SECTOR_SIZE; for (uint32_t i = 0; i < sectors; i++) { - if (esp_spiffs_flash_erase_sector(addr + (SPI_FLASH_SEC_SIZE * i)) - == ESP_SPIFFS_FLASH_ERROR) { + if (!spiflash_erase_sector(addr + (SPI_FLASH_SECTOR_SIZE * i))) { return SPIFFS_ERR_INTERNAL; } } diff --git a/extras/spiffs/unaligned_memcpy.S b/extras/spiffs/unaligned_memcpy.S deleted file mode 100644 index b96c92c..0000000 --- a/extras/spiffs/unaligned_memcpy.S +++ /dev/null @@ -1,112 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2016 sheinz (https://github.com/sheinz) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - - .text - .section .iram1.text, "x" - .literal_position - -/** - * Copy unaligned data to 4-byte aligned buffer. - */ - .align 4 - .global memcpy_unaligned_src - .type memcpy_unaligned_src, @function -memcpy_unaligned_src: -/* a2: dst, a3: src, a4: size */ - ssa8l a3 - srli a3, a3, 2 - slli a3, a3, 2 - beqz a4, u_src_end - l32i a6, a3, 0 -u_src_loop: - l32i a7, a3, 4 - src a8, a7, a6 - memw - s32i a8, a2, 0 - mov a6, a7 - addi a3, a3, 4 - addi a2, a2, 4 - addi a4, a4, -1 - bnez a4, u_src_loop -u_src_end: - movi a2, 0 - ret.n - - -/** - * Copy data from 4-byte aligned source to unaligned destination buffer. - */ - .align 4 - .global memcpy_unaligned_dst - .type memcpy_unaligned_dst, @function -memcpy_unaligned_dst: -/* a2: dst, a3: src, a4: size */ - beqz.n a4, u_dst_end - extui a5, a4, 0, 2 - beqz.n a5, aligned_dst_loop -u_dst_loop: - /* Load data word */ - memw - l32i.n a5, a3, 0 - - /* Save byte number 0 */ - s8i a5, a2, 0 - addi.n a4, a4, -1 - beqz a4, u_dst_end - addi.n a2, a2, 1 - - /* Shift and save byte number 1 */ - srli a5, a5, 8 - s8i a5, a2, 0 - addi.n a4, a4, -1 - beqz a4, u_dst_end - addi.n a2, a2, 1 - - /* Shift and save byte number 2 */ - srli a5, a5, 8 - s8i a5, a2, 0 - addi.n a4, a4, -1 - beqz a4, u_dst_end - addi.n a2, a2, 1 - - /* Shift and save byte number 3 */ - srli a5, a5, 8 - s8i a5, a2, 0 - addi.n a4, a4, -1 - addi.n a2, a2, 1 - - /* Next word */ - addi.n a3, a3, 4 - bnez.n a4, u_dst_loop - ret.n -aligned_dst_loop: - memw - l32i a5, a3, 0 - s32i a5, a2, 0 - addi.n a3, a3, 4 - addi.n a2, a2, 4 - addi.n a4, a4, -4 - bnez.n a4, aligned_dst_loop -u_dst_end: ret.n - diff --git a/include/espressif/spi_flash.h b/include/espressif/spi_flash.h index 61f8ae9..1c6a3b1 100644 --- a/include/espressif/spi_flash.h +++ b/include/espressif/spi_flash.h @@ -1,6 +1,6 @@ -/* +/* * copyright (c) Espressif System 2010 - * + * */ #ifndef __SPI_FLASH_H__ @@ -46,12 +46,6 @@ sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, uint32_t *src, uint3 */ sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, uint32_t *des, uint32_t size); -/* SDK uses this structure internally to account for flash size. - - See flashchip.h for more info. -*/ -extern sdk_flashchip_t sdk_flashchip; - #ifdef __cplusplus } #endif diff --git a/tests/cases/07_sysparam.c b/tests/cases/07_sysparam.c new file mode 100644 index 0000000..c1a4697 --- /dev/null +++ b/tests/cases/07_sysparam.c @@ -0,0 +1,403 @@ + +#include +#include + +#include +#include + +#include + +#include + +// #define DEBUG + +#ifdef DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt, "test: ", ## __VA_ARGS__); +#else +#define debug(fmt, ...) +#endif + +DEFINE_SOLO_TESTCASE(07_sysparam_basic_test); +DEFINE_SOLO_TESTCASE(07_sysparam_load_test); +DEFINE_SOLO_TESTCASE(07_sysparam_bool_test); + +#define TEST_ITERATIONS 10 +#define KEY_BUF_SIZE 32 +#define TEST_STRING_BUF_SIZE 64 +#define NUMBER_OF_TEST_DATA 20 + +typedef struct { + uint32_t start_key_index; + uint32_t key_index; +} test_data_t; + +typedef enum { + VALUE_STRING = 0, + VALUE_INT32, + VALUE_INT8, + VALUE_BOOL, + VALUE_ENUM_END +} value_type_t; + + +static uint32_t get_current_time() +{ + return timer_get_count(FRC2) / 5000; // to get roughly 1ms resolution +} + +/** + * Recreate sysparam area + */ +static inline void init_sysparam() +{ + sysparam_status_t status; + uint32_t base_addr, num_sectors; + + status = sysparam_get_info(&base_addr, &num_sectors); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + status = sysparam_create_area(base_addr, num_sectors, /*force=*/true); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + status = sysparam_init(base_addr, 0); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + debug("sysparam initialized at addr=%x, sectors=%d\n", + base_addr, num_sectors); +} + +/** + * Initialize test data with random seed. + */ +static void test_data_init(test_data_t *data) +{ + debug("test_data_init\n"); + data->start_key_index = data->key_index = rand() % 100; +} + +/** + * Reset test data to the initial seed. + */ +static void test_data_reset(test_data_t *data) +{ + debug("test_data_reset\n"); + data->key_index = data->start_key_index; +} + +/** + * Get key string for the current data. + */ +static void test_data_get_key(test_data_t *data, char *key_buf) +{ + sprintf(key_buf, "key_%d", data->key_index); + debug("test_data_get_key: key=%s\n", key_buf); +} + +/** + * Generate test string for the current data. + */ +static void test_data_get_string(test_data_t *data, char *str_buf) +{ + srand(data->key_index); + for (int i = 0; i < TEST_STRING_BUF_SIZE - 1; ++i) { + str_buf[i] = '0' + rand() % 74; // generate a char 0-9,a-z,A-Z and other + } + str_buf[TEST_STRING_BUF_SIZE-1] = 0; // terminate string with zero + debug("test_data_get_string: str=%s\n", str_buf); +} + +/** + * Generate test int32 value for the current data. + */ +static int32_t test_data_get_int32(test_data_t *data) +{ + srand(data->key_index); + int32_t v = rand(); + debug("test_data_get_int32: value=%d\n", v); + return v; +} + +/** + * Generate test int8 value for the current data. + */ +int8_t test_data_get_int8(test_data_t *data) +{ + srand(data->key_index); + int8_t v = rand() % 256; + debug("test_data_get_int8: value=%d\n", v); + return v; +} + +/** + * Generate test bool value for the current data. + */ +bool test_data_get_bool(test_data_t *data) +{ + srand(data->key_index); + bool v = rand() % 2; + debug("test_data_get_bool, value=%s\n", v ? "true" : "false"); + return v; +} + +/** + * Get type of the current data. + */ +value_type_t test_data_get_type(test_data_t *data) +{ + srand(data->key_index); + value_type_t t = rand() % VALUE_ENUM_END; + debug("test_data_get_type: type=%d\n", t); + return t; +} + +/** + * Generate next data. + */ +void test_data_next(test_data_t *data) +{ + data->key_index++; + debug("test_data_next: key_index=%d\n", data->key_index); +} + +static void write_test_values(test_data_t *data) +{ + sysparam_status_t status = SYSPARAM_ERR_BADVALUE; + char key_buf[KEY_BUF_SIZE]; + char str_buf[TEST_STRING_BUF_SIZE]; + + for (int i = 0; i < NUMBER_OF_TEST_DATA; ++i) { + test_data_get_key(data, key_buf); + switch (test_data_get_type(data)) { + case VALUE_STRING: + test_data_get_string(data, str_buf); + status = sysparam_set_string(key_buf, str_buf); + break; + case VALUE_INT32: + status = sysparam_set_int32(key_buf, test_data_get_int32(data)); + break; + case VALUE_INT8: + status = sysparam_set_int8(key_buf, test_data_get_int8(data)); + break; + case VALUE_BOOL: + status = sysparam_set_bool(key_buf, test_data_get_bool(data)); + break; + case VALUE_ENUM_END: + default: + break; + } + + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + test_data_next(data); + } +} + +static void verify_test_values(test_data_t *data) +{ + sysparam_status_t status = SYSPARAM_ERR_BADVALUE; + char key_buf[KEY_BUF_SIZE]; + char expected_str_buf[TEST_STRING_BUF_SIZE]; + char *actual_str; + int32_t actual_int32; + int8_t actual_int8; + bool actual_bool; + + for (int i = 0; i < NUMBER_OF_TEST_DATA; ++i) { + test_data_get_key(data, key_buf); + switch (test_data_get_type(data)) { + case VALUE_STRING: + test_data_get_string(data, expected_str_buf); + status = sysparam_get_string(key_buf, &actual_str); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_STRING(expected_str_buf, actual_str); + free(actual_str); + break; + case VALUE_INT32: + status = sysparam_get_int32(key_buf, &actual_int32); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_INT(test_data_get_int32(data), actual_int32); + break; + case VALUE_INT8: + status = sysparam_get_int8(key_buf, &actual_int8); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_INT(test_data_get_int8(data), actual_int8); + break; + case VALUE_BOOL: + status = sysparam_get_bool(key_buf, &actual_bool); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_TRUE(test_data_get_bool(data) == actual_bool); + break; + case VALUE_ENUM_END: + default: + break; + } + + test_data_next(data); + } +} + +static void clear_test_values(test_data_t *data) +{ + char key_buf[KEY_BUF_SIZE]; + sysparam_status_t status = SYSPARAM_ERR_BADVALUE; + + for (int i = 0; i < NUMBER_OF_TEST_DATA; ++i) { + test_data_get_key(data, key_buf); + status = sysparam_set_data(key_buf, NULL, 0, false); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + test_data_next(data); + } +} + + +static void a_07_sysparam_load_test(void) +{ + test_data_t test_data; + init_sysparam(); + uint32_t start_time = get_current_time(); + uint32_t free_heap_at_start = xPortGetFreeHeapSize(); + + for (int i = 0; i < TEST_ITERATIONS; ++i) { + test_data_init(&test_data); + write_test_values(&test_data); + test_data_reset(&test_data); + verify_test_values(&test_data); + test_data_reset(&test_data); + clear_test_values(&test_data); + } + + TEST_ASSERT_EQUAL_INT_MESSAGE(free_heap_at_start, xPortGetFreeHeapSize(), + "Free heap size is less than at test start. Possible memory leak."); + + printf("Test took %d ms\n", get_current_time() - start_time); + + TEST_PASS(); +} + +static void a_07_sysparam_basic_test(void) +{ + sysparam_status_t status; + int32_t int32_val = 0; + int8_t int8_val = 0; + char *str; + bool bool_val; + + init_sysparam(); + + status = sysparam_set_int32("int_1", -123); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + status = sysparam_get_int32("int_1", &int32_val); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_INT(-123, int32_val); + + status = sysparam_set_int8("int_2", -34); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + status = sysparam_get_int8("int_2", &int8_val); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_INT(-34, int8_val); + + status = sysparam_set_string("str_1", "test string"); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + status = sysparam_get_string("str_1", &str); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_EQUAL_STRING("test string", str); + free(str); + + status = sysparam_set_bool("bool_true", true); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + status = sysparam_get_bool("bool_true", &bool_val); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_TRUE(bool_val); + + status = sysparam_set_bool("bool_false", false); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + status = sysparam_get_bool("bool_false", &bool_val); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_FALSE(bool_val); + + TEST_PASS(); +} + +typedef struct { + const char *key; + const char *str; + bool value; +} bool_test_data_t; + +const static bool_test_data_t bool_data[] = { + {"str_true", "true", true}, + {"str_True", "True", true}, + {"str_TRUE", "TRUE", true}, + {"str_t", "t", true}, + {"str_T", "T", true}, + {"str_y", "y", true}, + {"str_Y", "Y", true}, + {"str_yes", "yes", true}, + {"str_Yes", "Yes", true}, + {"str_YES", "YES", true}, + {"str_1", "1", true}, + + {"str_false", "false", false}, + {"str_False", "False", false}, + {"str_FALSE", "FALSE", false}, + {"str_f", "f", false}, + {"str_F", "F", false}, + {"str_n", "n", false}, + {"str_N", "N", false}, + {"str_no", "no", false}, + {"str_No", "No", false}, + {"str_NO", "NO", false}, + {"str_0", "0", false}, +}; + +static void a_07_sysparam_bool_test(void) +{ + sysparam_status_t status; + bool value; + + init_sysparam(); + + for (int i = 0; i < sizeof(bool_data) / sizeof(bool_data[0]); ++i) { + status = sysparam_set_string(bool_data[i].key, bool_data[i].str); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + } + + status = sysparam_set_int8("int8_0", 0); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + status = sysparam_set_int8("int8_1", 1); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + status = sysparam_set_int32("int32_0", 0); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + status = sysparam_set_int32("int32_1", 1); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + + for (int i = 0; i < sizeof(bool_data) / sizeof(bool_data[0]); ++i) { + debug("Getting bool key=%s\n", bool_data[i].key); + status = sysparam_get_bool(bool_data[i].key, &value); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_TRUE(bool_data[i].value == value); + } + + status = sysparam_get_bool("int8_0", &value); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_FALSE(value); + + status = sysparam_get_bool("int8_1", &value); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_TRUE(value); + + status = sysparam_get_bool("int32_0", &value); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_FALSE(value); + + status = sysparam_get_bool("int32_1", &value); + TEST_ASSERT_EQUAL_INT(SYSPARAM_OK, status); + TEST_ASSERT_TRUE(value); + + TEST_PASS(); +} diff --git a/tests/cases/08_spiflash.c b/tests/cases/08_spiflash.c new file mode 100644 index 0000000..67b2783 --- /dev/null +++ b/tests/cases/08_spiflash.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +DEFINE_SOLO_TESTCASE(08_spiflash_unaligned) + +/** + * Test unaligned access to spi flash. + */ +static void a_08_spiflash_unaligned(void) +{ + const int test_addr = 0x100000 - (4096 * 8); + const char test_str[] = "test_string"; + const int buf_size = 256; + uint8_t buf[buf_size]; + + TEST_ASSERT_TRUE(spiflash_erase_sector(test_addr)); + TEST_ASSERT_TRUE(spiflash_erase_sector(test_addr + 4096)); + + TEST_ASSERT_TRUE( + spiflash_write(test_addr, (uint8_t*)test_str, sizeof(test_str))); + + TEST_ASSERT_TRUE(spiflash_read(test_addr, buf, buf_size)); + + TEST_ASSERT_EQUAL_STRING(test_str, buf); + + TEST_ASSERT_TRUE( + spiflash_write(test_addr + 31, (uint8_t*)test_str, sizeof(test_str))); + TEST_ASSERT_TRUE(spiflash_read(test_addr + 31, buf, buf_size)); + TEST_ASSERT_EQUAL_STRING(test_str, buf); + + TEST_ASSERT_TRUE( + spiflash_write(test_addr + 101, (uint8_t*)test_str, sizeof(test_str))); + TEST_ASSERT_TRUE(spiflash_read(test_addr + 101, buf + 1, buf_size - 1)); + TEST_ASSERT_EQUAL_STRING(test_str, buf + 1); + + TEST_ASSERT_TRUE( + spiflash_write(test_addr + 201, (uint8_t*)test_str + 1, sizeof(test_str) - 1)); + TEST_ASSERT_TRUE(spiflash_read(test_addr + 201, buf + 1, buf_size - 1)); + TEST_ASSERT_EQUAL_STRING(test_str + 1, buf + 1); + + TEST_PASS(); +} From 31ef50c9a9805ebfc25c9d1996e905f7440efff7 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Wed, 22 Mar 2017 10:50:54 +0500 Subject: [PATCH 161/349] Revert SPI memcpy() --- core/esp_spi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 1a46e83..4645adb 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -189,9 +189,9 @@ static void _spi_buf_transfer(uint8_t bus, const void *out_data, void *in_data, _wait(bus); size_t bytes = len * (uint8_t)word_size; _set_size(bus, bytes); - // memcpy((void *)SPI(bus).W, out_data, bytes); // <- It's buggy - for (uint8_t i = 0; i < bytes; i ++) - ((uint8_t *)SPI(bus).W)[i] = ((uint8_t *)out_data)[i]; + memcpy((void *)SPI(bus).W, out_data, bytes); // FIXME: It's buggy when bytes = 2 or 3 +// for (uint8_t i = 0; i < bytes; i ++) +// ((uint8_t *)SPI(bus).W)[i] = ((uint8_t *)out_data)[i]; _spi_buf_prepare(bus, len, e, word_size); _start(bus); _wait(bus); From b3f658bdbf8b546f1c59a625227cd24910a93a58 Mon Sep 17 00:00:00 2001 From: andree182 Date: Sat, 1 Apr 2017 02:20:37 +0200 Subject: [PATCH 162/349] bh1750 i2c light sensor driver + pwm cleanup (#330) Add bh1750 (I2C light sensor) driver + usage example --- examples/bh1750/Makefile | 3 ++ examples/bh1750/bh1750_example.c | 41 ++++++++++++++++ extras/bh1750/bh1750.c | 28 +++++++++++ extras/bh1750/bh1750.h | 82 ++++++++++++++++++++++++++++++++ extras/bh1750/component.mk | 9 ++++ extras/pwm/pwm.c | 12 ++--- extras/pwm/pwm.h | 2 +- 7 files changed, 170 insertions(+), 7 deletions(-) create mode 100644 examples/bh1750/Makefile create mode 100644 examples/bh1750/bh1750_example.c create mode 100644 extras/bh1750/bh1750.c create mode 100644 extras/bh1750/bh1750.h create mode 100644 extras/bh1750/component.mk diff --git a/examples/bh1750/Makefile b/examples/bh1750/Makefile new file mode 100644 index 0000000..5abb97a --- /dev/null +++ b/examples/bh1750/Makefile @@ -0,0 +1,3 @@ +PROGRAM=bh1750_example +EXTRA_COMPONENTS = extras/i2c extras/bh1750 +include ../../common.mk diff --git a/examples/bh1750/bh1750_example.c b/examples/bh1750/bh1750_example.c new file mode 100644 index 0000000..fad67bd --- /dev/null +++ b/examples/bh1750/bh1750_example.c @@ -0,0 +1,41 @@ +#include + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +#include "i2c/i2c.h" +#include "bh1750/bh1750.h" + +#define SCL_PIN 5 +#define SDA_PIN 4 + +static void measure(void *pvParameters) +{ + bh1750_configure(BH1750_ADDR_LO, + BH1750_CONTINUOUS_MODE | BH1750_HIGH_RES_MODE); + + while (1) { + while(1) { + vTaskDelay(200 / portTICK_PERIOD_MS); + + printf("Lux: %d\n", bh1750_read(BH1750_ADDR_LO)); + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + + // Just some information + printf("\n"); + printf("SDK version : %s\n", sdk_system_get_sdk_version()); + printf("GIT version : %s\n", GITSHORTREV); + + i2c_init(SCL_PIN, SDA_PIN); + + xTaskCreate(measure, "measure_task", 256, NULL, 2, NULL); +} diff --git a/extras/bh1750/bh1750.c b/extras/bh1750/bh1750.c new file mode 100644 index 0000000..68e623a --- /dev/null +++ b/extras/bh1750/bh1750.c @@ -0,0 +1,28 @@ +/* + * Driver for BH1750 light sensor + * + * Part of esp-open-rtos + * Copyright (C) 2017 Andrej Krutak + * BSD Licensed as described in the file LICENSE + */ +#include "bh1750.h" +#include +#include + +void bh1750_configure(uint8_t addr, uint8_t mode) +{ + i2c_slave_write(addr, NULL, &mode, 1); +} + +uint16_t bh1750_read(uint8_t addr) +{ + uint8_t buf[2]; + uint16_t level; + + i2c_slave_read(addr, NULL, buf, 2); + + level = buf[0] << 8 | buf[1]; + level = (level * 10) / 12; // convert to LUX + + return level; +} diff --git a/extras/bh1750/bh1750.h b/extras/bh1750/bh1750.h new file mode 100644 index 0000000..b280c45 --- /dev/null +++ b/extras/bh1750/bh1750.h @@ -0,0 +1,82 @@ +/* + * Driver for BH1750 light sensor + * + * Part of esp-open-rtos + * Copyright (C) 2017 Andrej Krutak + * BSD Licensed as described in the file LICENSE + * + * ROHM Semiconductor bh1750fvi-e.pdf + */ +#ifndef EXTRAS_BH1750_H_ +#define EXTRAS_BH1750_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Possible chip addresses */ +#define BH1750_ADDR_LO 0x23 // ADDR pin floating/low +#define BH1750_ADDR_HI 0x5c + + +/* Configuration options */ + +// No active state +#define BH1750_POWER_DOWN 0x00 + +// Wating for measurement command +#define BH1750_POWER_ON 0x01 + +// Reset data register value - not accepted in POWER_DOWN mode +#define BH1750_RESET 0x07 + + +/* Measurement modes */ + +#define BH1750_CONTINUOUS_MODE 0x10 +#define BH1750_ONE_TIME_MODE 0x20 + +// Start measurement at 1 lx resolution (measurement time typically 120ms) +#define BH1750_HIGH_RES_MODE 0x00 +// Start measurement at 0.5 lx resolution (measurement time typically 120ms) +#define BH1750_HIGH_RES_MODE2 0x01 +// Start measurement at 4 lx resolution (measurement time typically 16ms) +#define BH1750_LOW_RES_MODE 0x03 + +/* Adjust measurement time to account for optical window size (see datasheet). + * Procedure from datasheet suggests order Hi, Low and finally measurement mode + */ +#define BH1750_MEASURE_TIME_HI(mt) (0x40 | (((mt) >> 5) & 0x7)) +#define BH1750_MEASURE_TIME_LO(mt) (0x60 | ((mt) & 0x1f)) +#define BH1750_DEFAULT_MEASURE_TIME 0x45 + + +/** + * Configure the device. + * @param addr Device address + * @param mode Combination of BH1750_* flags + * + * May be called multiple times e.g. to configure the measurement time and + * the readout mode afterwards - or if one time mode is used consecutively. + * + * Example: BH1750_ADDR_LO, BH1750_CONTINUOUS_MODE | BH1750_HIGH_RES_MODE + */ +void bh1750_configure(uint8_t addr, uint8_t mode); + +/** + * Read LUX value from the device. + * + * @param addr Device address + * @returns read value in lux units + */ +uint16_t bh1750_read(uint8_t addr); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_BH1750_H_ */ diff --git a/extras/bh1750/component.mk b/extras/bh1750/component.mk new file mode 100644 index 0000000..0a57b31 --- /dev/null +++ b/extras/bh1750/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/bh1750 + +# expected anyone using RTC driver includes it as 'bh1750/bh1750.h' +INC_DIRS += $(bh1750_ROOT).. + +# args for passing into compile rule generation +bh1750_SRC_DIR = $(bh1750_ROOT) + +$(eval $(call component_compile_rules,bh1750)) diff --git a/extras/pwm/pwm.c b/extras/pwm/pwm.c index 338dff0..792d899 100644 --- a/extras/pwm/pwm.c +++ b/extras/pwm/pwm.c @@ -29,7 +29,7 @@ typedef struct pwmInfoDefinition uint8_t running; uint16_t freq; - uint16_t dutyCicle; + uint16_t dutyCycle; /* private */ uint32_t _maxLoad; @@ -66,7 +66,7 @@ static void frc1_interrupt_handler(void) pwmInfo._step = step; } -void pwm_init(uint8_t npins, uint8_t* pins) +void pwm_init(uint8_t npins, const uint8_t* pins) { /* Assert number of pins is correct */ if (npins > MAX_PWM_PINS) @@ -127,10 +127,10 @@ void pwm_set_duty(uint16_t duty) { bool output; - pwmInfo.dutyCicle = duty; + pwmInfo.dutyCycle = duty; if (duty > 0 && duty < UINT16_MAX) { pwm_restart(); - return; + return; } // 0% and 100% duty cycle are special cases: constant output. @@ -139,7 +139,7 @@ void pwm_set_duty(uint16_t duty) output = (duty == UINT16_MAX); for (uint8_t i = 0; i < pwmInfo.usedPins; ++i) { - gpio_write(pwmInfo.pins[i].pin, output); + gpio_write(pwmInfo.pins[i].pin, output); } } @@ -154,7 +154,7 @@ void pwm_restart() void pwm_start() { - pwmInfo._onLoad = pwmInfo.dutyCicle * pwmInfo._maxLoad / UINT16_MAX; + pwmInfo._onLoad = pwmInfo.dutyCycle * pwmInfo._maxLoad / UINT16_MAX; pwmInfo._offLoad = pwmInfo._maxLoad - pwmInfo._onLoad; pwmInfo._step = PERIOD_ON; diff --git a/extras/pwm/pwm.h b/extras/pwm/pwm.h index 55b8761..e2e7d75 100644 --- a/extras/pwm/pwm.h +++ b/extras/pwm/pwm.h @@ -16,7 +16,7 @@ extern "C" { #endif -void pwm_init(uint8_t npins, uint8_t* pins); +void pwm_init(uint8_t npins, const uint8_t* pins); void pwm_set_freq(uint16_t freq); void pwm_set_duty(uint16_t duty); From 852ed2f1ad9ca7aeddd44f603a000522a5eae513 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Thu, 20 Apr 2017 01:35:38 +0500 Subject: [PATCH 163/349] Fixes unaligned writes to SPI data register --- core/esp_spi.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/core/esp_spi.c b/core/esp_spi.c index 4645adb..47dcd66 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -159,6 +159,22 @@ inline static void _start(uint8_t bus) SPI(bus).CMD |= SPI_CMD_USR; } +inline static void _store_data(uint8_t bus, const void *data, size_t len) +{ + uint8_t words = len / 4; + uint8_t tail = len % 4; + + memcpy((void *)SPI(bus).W, data, len - tail); + + if (!tail) return; + + uint32_t last = 0; + uint8_t *offs = (uint8_t *)data + len - tail; + for (uint8_t i = 0; i < tail; i++) + last = last | (offs[i] << (i * 8)); + SPI(bus).W[words] = last; +} + inline static uint32_t _swap_bytes(uint32_t value) { return (value << 24) | ((value << 8) & 0x00ff0000) | ((value >> 8) & 0x0000ff00) | (value >> 24); @@ -189,9 +205,7 @@ static void _spi_buf_transfer(uint8_t bus, const void *out_data, void *in_data, _wait(bus); size_t bytes = len * (uint8_t)word_size; _set_size(bus, bytes); - memcpy((void *)SPI(bus).W, out_data, bytes); // FIXME: It's buggy when bytes = 2 or 3 -// for (uint8_t i = 0; i < bytes; i ++) -// ((uint8_t *)SPI(bus).W)[i] = ((uint8_t *)out_data)[i]; + _store_data(bus, out_data, bytes); _spi_buf_prepare(bus, len, e, word_size); _start(bus); _wait(bus); @@ -269,7 +283,7 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len size_t offset = i * _SPI_BUF_SIZE; _spi_buf_transfer(bus, (const uint8_t *)out_data + offset, in_data ? (uint8_t *)in_data + offset : NULL, buf_size, e, word_size); - if (blocks) _rearm_extras_bit(bus, false); + _rearm_extras_bit(bus, false); } uint8_t tail = len % buf_size; From 55e08de21c1ab235073db2e3da090163b661633e Mon Sep 17 00:00:00 2001 From: UncleRus Date: Fri, 21 Apr 2017 17:53:13 +0500 Subject: [PATCH 164/349] Fix for counter overflow in delays based on sdk_system_get_time() --- extras/hmc5883l/hmc5883l.c | 6 ++++-- extras/sdio/sdio.c | 23 +++++++++++++---------- extras/ultrasonic/ultrasonic.c | 10 ++++++---- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/extras/hmc5883l/hmc5883l.c b/extras/hmc5883l/hmc5883l.c index ac1bcf2..265258d 100644 --- a/extras/hmc5883l/hmc5883l.c +++ b/extras/hmc5883l/hmc5883l.c @@ -38,6 +38,8 @@ #define MEASUREMENT_TIMEOUT 6000 +#define timeout_expired(start, len) ((uint32_t)(sdk_system_get_time() - (start)) >= (len)) + static const float gain_values [] = { [HMC5883L_GAIN_1370] = 0.73, [HMC5883L_GAIN_1090] = 0.92, @@ -156,10 +158,10 @@ bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data) // overwrite mode register for measurement hmc5883l_set_operating_mode(current_mode); // wait for data - uint32_t timeout = sdk_system_get_time() + MEASUREMENT_TIMEOUT; + uint32_t start = sdk_system_get_time(); while (!hmc5883l_data_is_ready()) { - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, MEASUREMENT_TIMEOUT)) return false; } } diff --git a/extras/sdio/sdio.c b/extras/sdio/sdio.c index 573d038..e601416 100644 --- a/extras/sdio/sdio.c +++ b/extras/sdio/sdio.c @@ -141,6 +141,8 @@ static uint16_t crc_ccitt(const uint8_t *data, size_t n) #define spi_skip_word() do { spi_read_byte(); spi_read_byte(); } while(0) #define spi_skip_dword() do { spi_read_byte(); spi_read_byte(); spi_read_byte(); spi_read_byte(); } while(0) +#define timeout_expired(start, len) ((uint32_t)(sdk_system_get_time() - (start)) >= (len)) + inline static uint16_t spi_write_word(uint16_t word) { return (spi_transfer_8(BUS, word >> 8) << 8) | spi_transfer_8(BUS, word); @@ -154,9 +156,10 @@ inline static void spi_read_bytes(uint8_t *dst, size_t size) static bool wait() { - uint32_t stop = sdk_system_get_time() + IO_TIMEOUT_US; + + uint32_t start = sdk_system_get_time(); while (spi_read_byte() != 0xff) - if (sdk_system_get_time() >= stop) + if (timeout_expired(start, IO_TIMEOUT_US)) return false; return true; } @@ -208,11 +211,11 @@ inline static sdio_error_t set_error(sdio_card_t *card, sdio_error_t err) static sdio_error_t read_data(sdio_card_t *card, uint8_t *dst, size_t size) { - uint32_t timeout = sdk_system_get_time() + IO_TIMEOUT_US; + uint32_t start = sdk_system_get_time(); while (true) { - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, IO_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); uint8_t b = spi_read_byte(); @@ -269,7 +272,7 @@ sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_div spi_set_settings(BUS, &s); gpio_enable(card->cs_pin, GPIO_OUTPUT); - uint32_t timeout = sdk_system_get_time() + INIT_TIMEOUT_US; + uint32_t start = sdk_system_get_time(); spi_cs_low(card); spi_cs_high(card); @@ -279,7 +282,7 @@ sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_div // Set card to the SPI idle mode while (command(card, CMD0, 0) != BV(R1_IDLE_STATE)) { - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, INIT_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); } @@ -300,7 +303,7 @@ sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_div break; } - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, INIT_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); } @@ -311,13 +314,13 @@ sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_div { card->type = SDIO_TYPE_MMC; while (command(card, CMD1, 0)) - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, INIT_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); } else { while (app_command(card, ACMD41, 0)) - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, INIT_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); } @@ -328,7 +331,7 @@ sdio_error_t sdio_init(sdio_card_t *card, uint8_t cs_pin, uint32_t high_freq_div { // SD2 or SDHC while (app_command(card, ACMD41, BV(30)) != 0) - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, INIT_TIMEOUT_US)) return set_error(card, SDIO_ERR_TIMEOUT); } // read OCR diff --git a/extras/ultrasonic/ultrasonic.c b/extras/ultrasonic/ultrasonic.c index f6a21f6..21ae493 100644 --- a/extras/ultrasonic/ultrasonic.c +++ b/extras/ultrasonic/ultrasonic.c @@ -15,6 +15,8 @@ #define PING_TIMEOUT 6000 #define ROUNDTRIP 58 +#define timeout_expired(start, len) ((uint32_t)(sdk_system_get_time() - (start)) >= (len)) + void ultrasoinc_init(const ultrasonic_sensor_t *dev) { gpio_enable(dev->trigger_pin, GPIO_OUTPUT); @@ -36,21 +38,21 @@ int32_t ultrasoinc_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_dista return ULTRASONIC_ERROR_PING; // Wait for echo - uint32_t timeout = sdk_system_get_time() + PING_TIMEOUT; + uint32_t start = sdk_system_get_time(); while (!gpio_read(dev->echo_pin)) { - if (sdk_system_get_time() >= timeout) + if (timeout_expired(start, PING_TIMEOUT)) return ULTRASONIC_ERROR_PING_TIMEOUT; } // got echo, measuring uint32_t echo_start = sdk_system_get_time(); uint32_t time = echo_start; - timeout = echo_start + max_distance * ROUNDTRIP; + uint32_t meas_timeout = echo_start + max_distance * ROUNDTRIP; while (gpio_read(dev->echo_pin)) { time = sdk_system_get_time(); - if (time >= timeout) + if (timeout_expired(echo_start, meas_timeout)) return ULTRASONIC_ERROR_ECHO_TIMEOUT; } From b982a132ae1746bacec93de4e04cdc735d03b62f Mon Sep 17 00:00:00 2001 From: thanhpn Date: Sun, 23 Apr 2017 15:35:23 +0700 Subject: [PATCH 165/349] add --- examples/pcf8591/Makefile | 3 +++ examples/pcf8591/main.c | 43 +++++++++++++++++++++++++++++++++++++ extras/pcf8591/component.mk | 6 ++++++ extras/pcf8591/pcf8591.c | 15 +++++++++++++ extras/pcf8591/pcf8591.h | 31 ++++++++++++++++++++++++++ 5 files changed, 98 insertions(+) create mode 100644 examples/pcf8591/Makefile create mode 100644 examples/pcf8591/main.c create mode 100644 extras/pcf8591/component.mk create mode 100644 extras/pcf8591/pcf8591.c create mode 100644 extras/pcf8591/pcf8591.h diff --git a/examples/pcf8591/Makefile b/examples/pcf8591/Makefile new file mode 100644 index 0000000..f9d5768 --- /dev/null +++ b/examples/pcf8591/Makefile @@ -0,0 +1,3 @@ +PROGRAM = pcf8591 +EXTRA_COMPONENTS = extras/i2c extras/pcf8591 +include ../../common.mk diff --git a/examples/pcf8591/main.c b/examples/pcf8591/main.c new file mode 100644 index 0000000..4b1e7a6 --- /dev/null +++ b/examples/pcf8591/main.c @@ -0,0 +1,43 @@ +/* + * Example of using PCA9685 PWM driver + * + * Part of esp-open-rtos + * Copyright (C) 2016 Ruslan V. Uss + * Public domain + */ +#include +#include +#include +#include +#include + +#define ADDR 0x40 + +#define SCL_PIN 5 +#define SDA_PIN 4 + +#define PWM_FREQ 500 + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + i2c_init(SCL_PIN, SDA_PIN); + + pca9685_init(ADDR); + + pca9685_set_pwm_frequency(ADDR, 1000); + printf("Freq 1000Hz, real %d\n", pca9685_get_pwm_frequency(ADDR)); + + uint16_t val = 0; + while (true) + { + printf("Set ch0 to %d, ch4 to %d\n", val, 4096 - val); + pca9685_set_pwm_value(ADDR, 0, val); + pca9685_set_pwm_value(ADDR, 4, 4096 - val); + + if (val++ == 4096) + val = 0; + } +} diff --git a/extras/pcf8591/component.mk b/extras/pcf8591/component.mk new file mode 100644 index 0000000..5e09035 --- /dev/null +++ b/extras/pcf8591/component.mk @@ -0,0 +1,6 @@ +# Component makefile for extras/pcf8591 + +INC_DIRS += $(pcf8591_ROOT).. +pcf8591_SRC_DIR = $(pcf8591_ROOT) + +$(eval $(call component_compile_rules,pcf8591)) diff --git a/extras/pcf8591/pcf8591.c b/extras/pcf8591/pcf8591.c new file mode 100644 index 0000000..c9b45f7 --- /dev/null +++ b/extras/pcf8591/pcf8591.c @@ -0,0 +1,15 @@ +#include +#include +#include + +#include +#include "pcf8591.h" + +static uint8_t mAddress = PCF8591_DEFAULT_ADDRESS; +static float mVoltage = 3.3f; + +void +pcf8591_set_address(uint8_t addr) +{ + // +} diff --git a/extras/pcf8591/pcf8591.h b/extras/pcf8591/pcf8591.h new file mode 100644 index 0000000..2cfbfde --- /dev/null +++ b/extras/pcf8591/pcf8591.h @@ -0,0 +1,31 @@ +/** + * Driver for 8-bit analog-to-digital conversion and + * an 8-bit digital-to-analog conversion PCF8591 + * + * Part of esp-open-rtos + * Copyright (C) 2017 Pham Ngoc Thanh + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_PCF8591_H_ +#define _EXTRAS_PCF8591_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define PCF8591_DEFAULT_ADDRESS 0x90 + +/** + * Set new sensor address for switching another. + * @param[in] addr Pointer to device + * @return none + */ +void pcf8591_set_address(uint8_t addr); + + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_PCF8591_H_ */ From 4b0acbe8bfaed042de2de63392a122e253100616 Mon Sep 17 00:00:00 2001 From: Michael Hamel Date: Wed, 26 Apr 2017 02:00:09 +1200 Subject: [PATCH 166/349] Feature/mdnsresponder (#348) Basic multicast-DNS service discovery responder --- extras/mdnsresponder/component.mk | 9 + extras/mdnsresponder/mdnsresponder.c | 797 +++++++++++++++++++++++++++ extras/mdnsresponder/mdnsresponder.h | 52 ++ 3 files changed, 858 insertions(+) create mode 100644 extras/mdnsresponder/component.mk create mode 100644 extras/mdnsresponder/mdnsresponder.c create mode 100644 extras/mdnsresponder/mdnsresponder.h diff --git a/extras/mdnsresponder/component.mk b/extras/mdnsresponder/component.mk new file mode 100644 index 0000000..68c16f1 --- /dev/null +++ b/extras/mdnsresponder/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/mdnsresponder + +INC_DIRS += $(mdnsresponder_ROOT) + +# args for passing into compile rule generation +mdnsresponder_INC_DIR = $(mdnsresponder_ROOT) +mdnsresponder_SRC_DIR = $(mdnsresponder_ROOT) + +$(eval $(call component_compile_rules,mdnsresponder)) diff --git a/extras/mdnsresponder/mdnsresponder.c b/extras/mdnsresponder/mdnsresponder.c new file mode 100644 index 0000000..980210d --- /dev/null +++ b/extras/mdnsresponder/mdnsresponder.c @@ -0,0 +1,797 @@ +/* + * Basic multicast DNS responder + * + * Advertises the IP address, port, and characteristics of a service to other devices using multicast DNS on the same LAN, + * so they can find devices with addresses dynamically allocated by DHCP. See avahi, Bonjour, etc + * See RFC6762, RFC6763 + * + * This sample code is in the public domain. + * + * by M J A Hamel 2016 + */ + + +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mdnsresponder.h" + +#define qDebugLog // Log activity generally +#define qLogIncoming // Log all arriving multicast packets +#define qLogAllTraffic // Log and decode all mDNS packets + +#define kMDNSStackSize 800 + +#define DNS_MULTICAST_ADDRESS "224.0.0.251" // RFC 6762 +#define DNS_MDNS_PORT 5353 // RFC 6762 + +//------------------------------------------------------------------- + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/bpstruct.h" +#endif + +PACK_STRUCT_BEGIN +/** DNS message header */ +struct mdns_hdr { + PACK_STRUCT_FIELD(u16_t id); + PACK_STRUCT_FIELD(u8_t flags1); + PACK_STRUCT_FIELD(u8_t flags2); + PACK_STRUCT_FIELD(u16_t numquestions); + PACK_STRUCT_FIELD(u16_t numanswers); + PACK_STRUCT_FIELD(u16_t numauthrr); + PACK_STRUCT_FIELD(u16_t numextrarr); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_HDR 12 + +PACK_STRUCT_BEGIN +/** MDNS query message structure */ +struct mdns_query { + /* MDNS query record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */ + PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#define SIZEOF_DNS_QUERY 4 + +PACK_STRUCT_BEGIN +/** MDNS answer message structure */ +struct mdns_answer { + /* MDNS answer record starts with either a domain name or a pointer + to a name already present somewhere in the packet. */ + PACK_STRUCT_FIELD(u16_t type); + PACK_STRUCT_FIELD(u16_t class); + PACK_STRUCT_FIELD(u32_t ttl); + PACK_STRUCT_FIELD(u16_t len); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#define SIZEOF_DNS_ANSWER 10 + +PACK_STRUCT_BEGIN +struct mdns_rr_srv { + /* RR SRV */ + PACK_STRUCT_FIELD(u16_t prio); + PACK_STRUCT_FIELD(u16_t weight); + PACK_STRUCT_FIELD(u16_t port); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END +#define SIZEOF_DNS_RR_SRV 6 + + +#ifdef PACK_STRUCT_USE_INCLUDES +# include "arch/epstruct.h" +#endif + +#define vTaskDelayMs(ms) vTaskDelay((ms)/portTICK_PERIOD_MS) +#define UNUSED_ARG(x) (void)x +#define kDummyDataSize 8 // arbitrary, dynamically resized +#define kMaxNameSize 64 +#define kMaxQStr 128 // max incoming question key handled + +typedef struct mdns_rsrc { + struct mdns_rsrc* rNext; + u16_t rType; + u32_t rTTL; + u16_t rKeySize; + u16_t rDataSize; + char rData[kDummyDataSize]; // Key, as C str with . seperators, followed by data in network-ready form + // at rData[rKeySize] +} mdns_rsrc; + +static struct udp_pcb* gMDNS_pcb = NULL; +static ip_addr_t gMulticastAddr; // == DNS_MULTICAST_ADDRESS +static mdns_rsrc* gDictP = NULL; // RR database, linked list + +//---------------------- Debug/logging utilities ------------------------- + +#ifdef qDebugLog + + // DNS field TYPE used for "Resource Records", some additions + #define DNS_RRTYPE_AAAA 28 /* IPv6 host address */ + #define DNS_RRTYPE_SRV 33 /* Service record */ + #define DNS_RRTYPE_OPT 41 /* EDNS0 OPT record */ + #define DNS_RRTYPE_NSEC 47 /* NSEC record */ + #define DNS_RRTYPE_TSIG 250 /* Transaction Signature */ + #define DNS_RRTYPE_ANY 255 /* Not a DNS type, but a DNS query type, meaning "all types"*/ + + // DNS field CLASS used for "Resource Records" + #define DNS_RRCLASS_ANY 255 /* Any class (q) */ + + #define DNS_FLAG1_RESP 0x80 + #define DNS_FLAG1_OPMASK 0x78 + #define DNS_FLAG1_AUTH 0x04 + #define DNS_FLAG1_TRUNC 0x02 + #define DNS_FLAG1_RD 0x01 + #define DNS_FLAG2_RA 0x80 + #define DNS_FLAG2_RESMASK 0x0F + + static char qstr[12]; + + static char* mdns_qrtype(uint16_t typ) + { + switch(typ) { + case DNS_RRTYPE_A : return ("A"); + case DNS_RRTYPE_NS : return ("NS"); + case DNS_RRTYPE_PTR : return ("PTR"); + case DNS_RRTYPE_TXT : return ("TXT "); + case DNS_RRTYPE_AAAA : return ("AAAA"); + case DNS_RRTYPE_SRV : return ("SRV "); + case DNS_RRTYPE_NSEC : return ("NSEC "); + case DNS_RRTYPE_ANY : return ("ANY"); + } + sprintf(qstr,"type %d",typ); + return qstr; + } + + #ifdef qLogAllTraffic + + static void mdns_printhex(u8_t* p, int n) + { + int i; + for (i=0; i",n); + n = 0; + } else { + for (i=0; i0); + return (u8_t*)cp; + } + + + static u8_t* mdns_print_header(struct mdns_hdr* hdr) + { + if (hdr->flags1 & DNS_FLAG1_RESP) { + printf("Response, ID $%X %s ", htons(hdr->id), (hdr->flags1 & DNS_FLAG1_AUTH) ? "Auth " : "Non-auth "); + if (hdr->flags2 & DNS_FLAG2_RA) printf("RA "); + if ((hdr->flags2 & DNS_FLAG2_RESMASK)==0) printf("noerr"); + else printf("err %d", hdr->flags2 & DNS_FLAG2_RESMASK); + } else { + printf("Query, ID $%X op %d", htons(hdr->id), (hdr->flags1>>4) & 0x7 ); + } + if (hdr->flags1 & DNS_FLAG1_RD) printf("RD "); + if (hdr->flags1 & DNS_FLAG1_TRUNC) printf("[TRUNC] "); + + printf(": %d questions", htons(hdr->numquestions) ); + if (hdr->numanswers != 0) + printf(", %d answers",htons(hdr->numanswers)); + if (hdr->numauthrr != 0) + printf(", %d auth RR",htons(hdr->numauthrr)); + if (hdr->numextrarr != 0) + printf(", %d extra RR",htons(hdr->numextrarr)); + putchar('\n'); + return (u8_t*)hdr + SIZEOF_DNS_HDR; + } + + static u8_t* mdns_print_query(u8_t* p) + // Copy needed because it may be misaligned + { + struct mdns_query q; + uint16_t c; + + memcpy(&q,p,SIZEOF_DNS_QUERY); + c = htons(q.class); + printf(" %s %s", mdns_qrtype(htons(q.type)), mdns_qclass(c & 0x7FFF) ); + if (c & 0x8000) printf(" unicast-req"); + printf("\n"); + return p + SIZEOF_DNS_QUERY; + } + + static u8_t* mdns_print_answer(u8_t* p, struct mdns_hdr* hp) + // Copy needed because it may be misaligned + { + struct mdns_answer ans; + u16_t rrlen, atype, rrClass;; + + memcpy(&ans,p,SIZEOF_DNS_ANSWER); + atype = htons(ans.type); + rrlen = htons(ans.len); + rrClass = htons(ans.class); + printf(" %s %s TTL %d ", mdns_qrtype(atype), mdns_qclass(rrClass & 0x7FFF), htonl(ans.ttl)); + if (rrClass & 0x8000) + printf("cache-flush "); + if (rrlen > 0) { + u8_t* rp = p + SIZEOF_DNS_ANSWER; + if (atype==DNS_RRTYPE_A && rrlen==4) { + printf("%d.%d.%d.%d\n",rp[0],rp[1],rp[2],rp[3]); + } else if (atype==DNS_RRTYPE_PTR) { + mdns_print_name(rp, hp); + printf("\n"); + } else if (atype==DNS_RRTYPE_TXT) { + mdns_print_pstr(rp); + printf("\n"); + } else if (atype==DNS_RRTYPE_SRV && rrlen > SIZEOF_DNS_RR_SRV) { + struct mdns_rr_srv srvRR; + memcpy(&srvRR,rp,SIZEOF_DNS_RR_SRV); + printf("prio %d, weight %d, port %d, target ", srvRR.prio, srvRR.weight, srvRR.port); + mdns_print_name(rp + SIZEOF_DNS_RR_SRV, hp); + printf("\n"); + } else { + printf("%db:",rrlen); + mdns_printhex(rp,rrlen); + } + } else + printf("\n"); + return p + SIZEOF_DNS_ANSWER + rrlen; + } + + static int mdns_print_msg(u8_t* msgP, int msgLen) + { + int i; + u8_t* tp; + u8_t* limP = msgP + msgLen; + struct mdns_hdr* hdr; + + hdr = (struct mdns_hdr*) msgP; + tp = mdns_print_header(hdr); + for (i=0; inumquestions); i++) { + printf(" Q%d: ",i+1); + tp = mdns_print_name(tp,hdr); + tp = mdns_print_query(tp); + if (tp > limP) return 0; + } + + for (i=0; inumanswers); i++) { + printf(" A%d: ",i+1); + tp = mdns_print_name(tp,hdr); + tp = mdns_print_answer(tp,hdr); + if (tp > limP) return 0; + } + + for (i=0; inumauthrr); i++) { + printf(" AuRR%d: ",i+1); + tp = mdns_print_name(tp,hdr); + tp = mdns_print_answer(tp,hdr); + if (tp > limP) return 0; + } + + for (i=0; inumextrarr); i++) { + printf(" ExRR%d: ",i+1); + tp = mdns_print_name(tp,hdr); + tp = mdns_print_answer(tp,hdr); + if (tp > limP) return 0; + } + return 1; + } + #endif + +#endif // qDebugLog + +//--------------------------------------------------------------------------- + +static u8_t* mdns_labels2str(u8_t* hdrP, u8_t* p, char* qStr) +// Convert a DNS domain name label sequence into C string with . seperators +// Handles compression +{ + int i, n; + + do { + n = *p++; + if ((n & 0xC0) == 0xC0) { + n = (n & 0x3F) << 8; + n |= (u8_t)*p++; + mdns_labels2str( hdrP, hdrP + n, qStr); + return p; + } else if (n & 0xC0) { + printf(">>> mdns_labels2str,label $%X?",n); + return p; + } else { + for (i=0; i0); + return p; +} + +static int mdns_str2labels(const char* name, u8_t* lseq, int max) +// Encode a .. as a sequence of labels, return length +{ + int i,n,sdx,idx = 0; + int lc = 0; + + do { + sdx = idx; + while (name[idx] != '.' && name[idx] != 0) idx++; + n = idx-sdx; + *lseq++ = n; + lc++; + if (lc+n > max) { + printf(">>> mdns_str2labels: oversize (%d)\n",lc+n); + return 0; + } + for (i=0; i0); + return lc; +} + +static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClass, uint16_t* qType, u8_t* qUnicast) +// Unpack a DNS question RR at qp, return pointer to next RR +{ + struct mdns_query qr; + uint16_t cls; + + qp = mdns_labels2str(hdrP, qp, qStr); + memcpy(&qr,qp,SIZEOF_DNS_QUERY); + *qType = htons(qr.type); + cls = htons(qr.class); + *qUnicast = cls>>15; + *qClass = cls & 0x7FFF; + return qp + SIZEOF_DNS_QUERY; +} + +//--------------------------------------------------------------------------- + + +static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const void* dataP, u16_t vDataSize) +// Add a record to the RR database list +{ + mdns_rsrc* rsrcP; + int keyLen, recSize; + + keyLen = strlen(vKey) + 1; + recSize = sizeof(mdns_rsrc) - kDummyDataSize + keyLen + vDataSize; + rsrcP = (mdns_rsrc*)malloc(recSize); + if (rsrcP==NULL) + printf(">>> mdns_add_response: couldn't alloc %d\n",recSize); + else { + rsrcP->rType = vType; + rsrcP->rTTL = ttl; + rsrcP->rKeySize = keyLen; + rsrcP->rDataSize = vDataSize; + memcpy(rsrcP->rData, vKey, keyLen); + memcpy(&rsrcP->rData[keyLen], dataP, vDataSize); + rsrcP->rNext = gDictP; + gDictP = rsrcP; + #ifdef qDebugLog + printf("mDNS added RR '%s' %s, %d bytes\n", vKey, mdns_qrtype(vType), vDataSize); + #endif + } +} + +void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nmStr) +{ + int nl; + u8_t lBuff[kMaxNameSize]; + + nl = mdns_str2labels(nmStr,lBuff,sizeof(lBuff)); + if (nl>0) + mdns_add_response(rKey, DNS_RRTYPE_PTR, ttl, lBuff, nl); +} + +void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targName) +{ + typedef struct SrvRec { + struct mdns_rr_srv srvRR; + u8_t lBuff[kMaxNameSize]; + } __attribute__((packed)) SrvRec; + + int nl; + SrvRec temp; + + temp.srvRR.prio = 0; + temp.srvRR.weight = 0; + temp.srvRR.port = htons(rPort); + nl = mdns_str2labels(targName,temp.lBuff,sizeof(temp.lBuff)); + if (nl>0) + mdns_add_response(rKey, DNS_RRTYPE_SRV, ttl, &temp, SIZEOF_DNS_RR_SRV + nl); +} + +void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txStr) +// Single TXT str, can be concatenated +{ + char pstr[256]; + u16_t n = strlen(txStr); + if (n > 255) + printf(">>> mdns_add_TXT oversize (%d)\n",n); + else { + pstr[0] = n; + memcpy(&pstr[1],txStr,n); + mdns_add_response(rKey, DNS_RRTYPE_TXT, ttl, txStr, n+1); + } +} + +void mdns_add_A(const char* rKey, u32_t ttl, struct ip_addr addr) +{ + mdns_add_response(rKey, DNS_RRTYPE_A, ttl, &addr, sizeof(addr)); +} + +void mdns_add_facility( const char* instanceName, // Friendly name, need not be unique + const char* serviceName, // Must be _name + const char* addText, // Must be = + mdns_flags flags, // TCP or UDP + u16_t onPort, // port number + u32_t ttl // seconds + ) +{ + char key[64]; + char fullName[128]; + char devName[96]; + struct ip_info ipInfo; + + #ifdef qDebugLog + printf("\nmDNS advertising instance %s protocol %s text %s on port %d %s TTL %d secs\n", + instanceName,serviceName,addText,onPort,(flags & mdns_UDP) ? "UDP" : "TCP", ttl); + #endif + + snprintf(key,sizeof(key),"%s.%s.local.",serviceName,(flags & mdns_UDP) ? "_udp" :"_tcp"); + snprintf(fullName,sizeof(fullName),"%s.%s",instanceName,key); + snprintf(devName,sizeof(devName),"%s.local.",instanceName); + + if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) + ipInfo.ip.addr = IPADDR_NONE; + + // Order has significance for extraRR feature + mdns_add_TXT(fullName,ttl,addText); + mdns_add_A(devName,ttl,ipInfo.ip); + mdns_add_SRV(fullName,ttl,onPort,devName); + mdns_add_PTR(key,ttl,fullName); + + // Optional, makes us browsable + if (flags & mdns_Browsable) + mdns_add_PTR("_services._dns-sd._udp.local.",ttl,key); + +} + +static void mdns_update_ipaddr(struct ip_info* ipInfo) +// IP address has been defined/changed: update any A records with the new IP +{ + mdns_rsrc* rp = gDictP; + while (rp != NULL) { + if (rp->rType==DNS_RRTYPE_A) { + #ifdef qDebugLog + printf("Updating A record for '%s' to %d.%d.%d.%d\n", rp->rData, + ip4_addr1(&ipInfo->ip), ip4_addr2(&ipInfo->ip), ip4_addr3(&ipInfo->ip), ip4_addr4(&ipInfo->ip)); + #endif + memcpy(&rp->rData[rp->rKeySize], &ipInfo->ip, sizeof(ip_addr_t)); + } + rp = rp->rNext; + } +} + +static mdns_rsrc* mdns_match(const char* qstr, u16_t qType) +{ + mdns_rsrc* rp = gDictP; + while (rp != NULL) { + if (rp->rType==qType || qType==DNS_RRTYPE_ANY) { + if (strcasecmp(rp->rData,qstr)==0) { + #ifdef qDebugLog + printf(" - matched '%s' %s\n",qstr,mdns_qrtype(rp->rType)); + #endif + break; + } + } + rp = rp->rNext; + } + return rp; +} + +static int mdns_add_to_answer(mdns_rsrc* rsrcP, u8_t* resp, int respLen) +// Create answer RR and append to resp[respLen], return new length +{ + // Key is stored as C str, convert to labels + respLen += mdns_str2labels(rsrcP->rData, &resp[respLen], DNS_MSG_SIZE-respLen); + + // Answer fields: may be misaligned, so build and memcpy + struct mdns_answer ans; + ans.type = htons(rsrcP->rType); + ans.class = htons(DNS_RRCLASS_IN); + ans.ttl = htonl(rsrcP->rTTL); + ans.len = htons(rsrcP->rDataSize); + memcpy(&resp[respLen], &ans, SIZEOF_DNS_ANSWER); + respLen += SIZEOF_DNS_ANSWER; + + // Data for this key + memcpy(&resp[respLen], &rsrcP->rData[rsrcP->rKeySize], rsrcP->rDataSize); + respLen += rsrcP->rDataSize; + + return respLen; +} + +//--------------------------------------------------------------------------- + +static void mdns_send_mcast(u8_t* msgP, int nBytes) +// Send UDP to multicast address +{ + struct pbuf* p; + err_t err; + + p = pbuf_alloc(PBUF_TRANSPORT, nBytes, PBUF_RAM); + if (p) { + memcpy(p->payload, msgP, nBytes); + err = udp_sendto(gMDNS_pcb, p, &gMulticastAddr, DNS_MDNS_PORT); + if (err==ERR_OK) { + #ifdef qDebugLog + printf(" - responded with %d bytes err %d\n",nBytes,err); + #endif + } else + printf(">>> mdns_send failed %d\n",err); + pbuf_free(p); + } else + printf(">>> mdns_send: alloc failed[%d]\n",nBytes); +} + +static void mdns_reply(struct mdns_hdr* hdrP) +// Message has passed tests, may want to send an answer +{ + int i, nquestions, respLen; + struct mdns_hdr* rHdr; + mdns_rsrc* extra; + u8_t* qBase = (u8_t*)hdrP; + u8_t* qp; + u8_t* mdns_response; + + mdns_response = malloc(DNS_MSG_SIZE); + if (mdns_response==NULL) { + printf(">>> mdns_reply could not alloc %d\n",DNS_MSG_SIZE); + return; + } + + // Build response header + rHdr = (struct mdns_hdr*) mdns_response; + rHdr->id = hdrP->id; + rHdr->flags1 = DNS_FLAG1_RESP + DNS_FLAG1_AUTH; + rHdr->flags2 = 0; + rHdr->numquestions = 0; + rHdr->numanswers = 0; + rHdr->numauthrr = 0; + rHdr->numextrarr = 0; + respLen = SIZEOF_DNS_HDR; + + extra = NULL; + qp = qBase + SIZEOF_DNS_HDR; + nquestions = htons(hdrP->numquestions); + + for (i=0; inumanswers = htons( htons(rHdr->numanswers) + 1 ); + // Extra RR logic: if SRV follows PTR, or A follows SRV, volunteer it in extraRR + // Not required, but could do more here, see RFC6763 s12 + if (qType==DNS_RRTYPE_PTR) { + if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_SRV) + extra = rsrcP->rNext; + } else if (qType==DNS_RRTYPE_SRV) { + if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_A) + extra = rsrcP->rNext; + } + } + } + } // for nQuestions + + if (respLen > SIZEOF_DNS_HDR) { + if (extra) { + respLen = mdns_add_to_answer(extra, mdns_response, respLen); + rHdr->numextrarr = htons( htons(rHdr->numextrarr) + 1 ); + } + mdns_send_mcast(mdns_response,respLen); + } + free(mdns_response); +} + +static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) +// Callback from udp_recv +{ + UNUSED_ARG(pcb); + UNUSED_ARG(port); + + u8_t* mdns_payload; + int plen; + + // Sanity checks on size + plen = p->tot_len; + if (plen > DNS_MSG_SIZE) { + printf(">>> mdns_recv: pbuf too big\n"); + } else if (plen < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + 1 + SIZEOF_DNS_ANSWER + 1)) { + printf(">>> mdns_recv: pbuf too small\n"); + } else { + #ifdef qLogIncoming + printf("\n\nmDNS got %d bytes from %d.%d.%d.%d\n",plen, ip4_addr1(addr), ip4_addr2(addr), ip4_addr3(addr), ip4_addr4(addr)); + #endif + mdns_payload = malloc(plen); + if (!mdns_payload) + printf(">>> mdns_recv, could not alloc %d\n",plen); + else { + if (pbuf_copy_partial(p, mdns_payload, plen, 0) == plen) { + struct mdns_hdr* hdrP = (struct mdns_hdr*) mdns_payload; + + #ifdef qLogAllTraffic + mdns_print_msg(mdns_payload, plen); + #endif + + if ( (hdrP->flags1 & (DNS_FLAG1_RESP + DNS_FLAG1_OPMASK + DNS_FLAG1_TRUNC) ) == 0 + && hdrP->numquestions > 0 ) + mdns_reply(hdrP); + } + free(mdns_payload); + } + } + pbuf_free(p); +} + +static void mdns_start() +// If we are in station mode and have an IP address, start a multicast UDP receive +{ + struct ip_info ipInfo; + err_t err; + + if (sdk_wifi_get_opmode() != STATION_MODE) { + printf(">>> mDNS_start: wifi opmode not station\n"); + return; + } + + if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) { + printf(">>> mDNS_start: no IP addr\n"); + return; + } + + mdns_update_ipaddr(&ipInfo); + + // Start IGMP on the netif for our interface: this isn't done for us + struct netif* nfp = netif_list; + while (nfp!=NULL) { + if ( ip_addr_cmp(&ipInfo.ip, &(nfp->ip_addr)) ) { + if (!(nfp->flags & NETIF_FLAG_IGMP)) { + nfp->flags |= NETIF_FLAG_IGMP; + err = igmp_start(nfp); + if (err != ERR_OK) { + printf(">>> mDNS_start: igmp_start on %c%c failed %d\n",nfp->name[0], nfp->name[1],err); + return; + } + } + } + nfp = nfp->next; + } + + gMDNS_pcb = udp_new(); + if (!gMDNS_pcb) { + printf(">>> mDNS_start: udp_new failed\n"); + return; + } + + if ((err=igmp_joingroup(&ipInfo.ip, &gMulticastAddr)) != ERR_OK) { + printf(">>> mDNS_start: igmp_join failed %d\n",err); + return; + } + + if ((err=udp_bind(gMDNS_pcb, IP_ADDR_ANY, DNS_MDNS_PORT)) != ERR_OK) { + printf(">>> mDNS_start: udp_bind failed %d\n",err); + return; + } + + udp_recv(gMDNS_pcb, mdns_recv, NULL); +} + +static void mdns_close() +{ + udp_remove(gMDNS_pcb); + gMDNS_pcb = NULL; + #ifdef qDebugLog + printf("Closing mDNS\n"); + #endif +} + +static void mdns_task(void *pvParameters) +{ + uint8_t hasIP = 0; + uint8_t status; + UNUSED_ARG(pvParameters); + + ipaddr_aton(DNS_MULTICAST_ADDRESS, &gMulticastAddr); + // Wait until we have joined AP and are assigned an IP + while (1) { + status = (sdk_wifi_station_get_connect_status() == STATION_GOT_IP); + if (status != hasIP) { + if (status) mdns_start(); + else mdns_close(); + hasIP = status; + } + vTaskDelayMs(status ? 1000 : 100); + } +} + +void mdns_init() +{ + #if LWIP_IGMP + xTaskCreate(mdns_task, "MDNS", kMDNSStackSize, NULL, 1, NULL); + #else + #error "LWIP_IGMP needs to be defined in lwipopts.h" + #endif +} \ No newline at end of file diff --git a/extras/mdnsresponder/mdnsresponder.h b/extras/mdnsresponder/mdnsresponder.h new file mode 100644 index 0000000..2dd8c76 --- /dev/null +++ b/extras/mdnsresponder/mdnsresponder.h @@ -0,0 +1,52 @@ +#ifndef __MDNSRESPONDER_H__ +#define __MDNSRESPONDER_H__ + +/* + * Basic multicast DNS responder + * + * Advertises the IP address, port, and characteristics of a service to other devices using multicast DNS on the same LAN, + * so they can find devices with addresses dynamically allocated by DHCP. See avahi, Bonjour, etc + * See RFC6762, RFC6763 + * + * This sample code is in the public domain. + * + * by M J A Hamel 2016 + */ + + +// Starts the mDNS responder task, call first +void mdns_init(); + +// Build and advertise an appropriate linked set of PTR/TXT/SRV/A records for the parameters provided +// This is a simple canned way to build a set of records for a single service that will +// be advertised whenever the device is given an IP address by WiFi + +typedef enum { + mdns_TCP, + mdns_UDP, + mdns_Browsable // see RFC6763:11 - adds a standard record that lets browsers find the service without needing to know its name +} mdns_flags; + +void mdns_add_facility( const char* instanceName, // Short user-friendly instance name, should NOT include serial number/MAC/etc + const char* serviceName, // Must be registered, _name, (see RFC6335 5.1 & 5.2) + const char* addText, // Should be =, or "" if unused (see RFC6763 6.3) + mdns_flags flags, // TCP or UDP plus browsable + u16_t onPort, // port number + u32_t ttl // time-to-live, seconds + ); + + +// Low-level RR builders for rolling your own +void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nameStr); +void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targname); +void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txtStr); +void mdns_add_A (const char* rKey, u32_t ttl, struct ip_addr addr); + +/* Sample usage, advertising a secure web service + + mdns_init(); + mdns_add_facility("Fluffy", "_https", "Zoom=1", mdns_TCP+mdns_Browsable, 443, 600); + +*/ + +#endif From dbcb707c1c3d4d25293a4121f648ba76b30e048b Mon Sep 17 00:00:00 2001 From: thanhpn Date: Tue, 25 Apr 2017 23:57:40 +0700 Subject: [PATCH 167/349] add pcf8591 lib + example --- examples/pcf8591/main.c | 51 +++++++++++++++++----------------------- extras/pcf8591/pcf8591.c | 19 ++++++++++----- extras/pcf8591/pcf8591.h | 19 +++++++++++---- 3 files changed, 50 insertions(+), 39 deletions(-) diff --git a/examples/pcf8591/main.c b/examples/pcf8591/main.c index 4b1e7a6..7547c75 100644 --- a/examples/pcf8591/main.c +++ b/examples/pcf8591/main.c @@ -1,43 +1,36 @@ -/* - * Example of using PCA9685 PWM driver - * - * Part of esp-open-rtos - * Copyright (C) 2016 Ruslan V. Uss - * Public domain - */ -#include -#include -#include -#include #include -#define ADDR 0x40 +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +#include "i2c/i2c.h" +#include "pcf8591/pcf8591.h" #define SCL_PIN 5 #define SDA_PIN 4 -#define PWM_FREQ 500 +static void measure(void *pvParameters) +{ + while (1) + { + vTaskDelay(1000 / portTICK_PERIOD_MS); + printf("Value: %d\n", pcf8591_read(PCF8591_DEFAULT_ADDRESS, 0x03)); + } +} void user_init(void) { uart_set_baud(0, 115200); - printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + // Just some information + printf("\n"); + printf("SDK version : %s\n", sdk_system_get_sdk_version()); + printf("GIT version : %s\n", GITSHORTREV); i2c_init(SCL_PIN, SDA_PIN); - pca9685_init(ADDR); - - pca9685_set_pwm_frequency(ADDR, 1000); - printf("Freq 1000Hz, real %d\n", pca9685_get_pwm_frequency(ADDR)); - - uint16_t val = 0; - while (true) - { - printf("Set ch0 to %d, ch4 to %d\n", val, 4096 - val); - pca9685_set_pwm_value(ADDR, 0, val); - pca9685_set_pwm_value(ADDR, 4, 4096 - val); - - if (val++ == 4096) - val = 0; - } + xTaskCreate(measure, "measure_task", 256, NULL, 2, NULL); } diff --git a/extras/pcf8591/pcf8591.c b/extras/pcf8591/pcf8591.c index c9b45f7..42b9df4 100644 --- a/extras/pcf8591/pcf8591.c +++ b/extras/pcf8591/pcf8591.c @@ -1,15 +1,22 @@ #include #include -#include #include #include "pcf8591.h" -static uint8_t mAddress = PCF8591_DEFAULT_ADDRESS; -static float mVoltage = 3.3f; +/** + * CAUTION: PLEASE SET I2C_FREQUENCY_400K IS 'false' IN 'i2c.h' FILE + */ -void -pcf8591_set_address(uint8_t addr) +#define PCF8591_CTRL_REG_READ 0x03 + +uint8_t +pcf8591_read(uint8_t addr, uint8_t analog_pin) { - // + uint8_t res = 0; + uint8_t control_reg = PCF8591_CTRL_REG_READ & analog_pin; + + i2c_slave_read(addr, &control_reg, &res, 1); + + return res; } diff --git a/extras/pcf8591/pcf8591.h b/extras/pcf8591/pcf8591.h index 2cfbfde..3deac57 100644 --- a/extras/pcf8591/pcf8591.h +++ b/extras/pcf8591/pcf8591.h @@ -14,14 +14,25 @@ extern "C" { #endif -#define PCF8591_DEFAULT_ADDRESS 0x90 +/** + * CAUTION: PLEASE SET I2C_FREQUENCY_400K IS 'false' IN 'i2c.h' FILE + */ + +#define PCF8591_DEFAULT_ADDRESS 0x48 + +void pcf8591_init(void); /** - * Set new sensor address for switching another. + * Read input value of an analog pin. * @param[in] addr Pointer to device - * @return none + * @param[in] analog_pin pin number: + * 0 - AIN0 + * 1 - AIN1 + * 2 - AIN2 + * 3 - AIN3 + * @return analog value */ -void pcf8591_set_address(uint8_t addr); +uint8_t pcf8591_read(uint8_t addr, uint8_t analog_pin); #ifdef __cplusplus From 577d5e68953e4f0613a75cdf972371a029556b40 Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Tue, 16 May 2017 16:12:55 +0200 Subject: [PATCH 168/349] Fix for #381 --- examples/http_server/fsdata/fs/about.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/http_server/fsdata/fs/about.html b/examples/http_server/fsdata/fs/about.html index 46eb050..18aad61 100644 --- a/examples/http_server/fsdata/fs/about.html +++ b/examples/http_server/fsdata/fs/about.html @@ -19,7 +19,7 @@

About

This server is based on httpd from LwIP.

To enable debugging compile with flags -DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON.

-

For more info see HTTP Server documentation.

+

For more info see HTTP Server documentation.

From 5e3e69ba02af56b4d2454a49138192164fe4e010 Mon Sep 17 00:00:00 2001 From: Luigi Freitas Cruz Date: Mon, 5 Jun 2017 19:29:04 -0300 Subject: [PATCH 169/349] Change xTaskCreate priority. Priority #1 appears not to be working. Priority #2 works just fine. --- extras/mdnsresponder/mdnsresponder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/mdnsresponder/mdnsresponder.c b/extras/mdnsresponder/mdnsresponder.c index 980210d..30ff75e 100644 --- a/extras/mdnsresponder/mdnsresponder.c +++ b/extras/mdnsresponder/mdnsresponder.c @@ -790,8 +790,8 @@ static void mdns_task(void *pvParameters) void mdns_init() { #if LWIP_IGMP - xTaskCreate(mdns_task, "MDNS", kMDNSStackSize, NULL, 1, NULL); + xTaskCreate(mdns_task, "MDNS", kMDNSStackSize, NULL, 2, NULL); #else #error "LWIP_IGMP needs to be defined in lwipopts.h" #endif -} \ No newline at end of file +} From 91e89001c3179183d01dd4fbe6d6aec846380e91 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 7 Jun 2017 18:07:01 +1000 Subject: [PATCH 170/349] travis: update the esp-open-sdk version used. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c00c5d2..bf128be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: c sudo: false env: # Target commit for https://github.com/pfalcon/esp-open-sdk/ - OPENSDK_COMMIT=a48b12f + OPENSDK_COMMIT=b069537 CROSS_ROOT="${HOME}/toolchain-${OPENSDK_COMMIT}" CROSS_BINDIR="${CROSS_ROOT}/bin" CROSS="ccache xtensa-lx106-elf-" @@ -32,6 +32,7 @@ addons: - python-serial - sed - git + - help2man - vim-common before_install: From ca110fa645b7cfed5d70f4153a19a5a4b26ebd84 Mon Sep 17 00:00:00 2001 From: Fernando Date: Mon, 19 Jun 2017 21:31:09 -0300 Subject: [PATCH 171/349] MQTT ignores too many handlers registered On MQTTClient.c function mqtt_subscribe, if more than MQTT_MAX_MESSAGE_HANDLERS are registered, the variable rc receives the value of grantedQoS. If grantedQoS = 0, and all handlers are already occupied, it goes on and returns 0 to the caller. --- extras/paho_mqtt_c/MQTTClient.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extras/paho_mqtt_c/MQTTClient.c b/extras/paho_mqtt_c/MQTTClient.c index e8209ea..c2419c3 100644 --- a/extras/paho_mqtt_c/MQTTClient.c +++ b/extras/paho_mqtt_c/MQTTClient.c @@ -424,6 +424,8 @@ int mqtt_subscribe(mqtt_client_t* c, const char* topic, enum mqtt_qos qos, mqtt if (rc != 0x80) { int i; + + rc = MQTT_FAILURE; for (i = 0; i < MQTT_MAX_MESSAGE_HANDLERS; ++i) { if (c->messageHandlers[i].topicFilter == 0) From 67cd7bc031c68143ad388f9ae90dcea78096a435 Mon Sep 17 00:00:00 2001 From: Fernando Governatore Date: Mon, 3 Jul 2017 15:48:12 -0300 Subject: [PATCH 172/349] MQTT fix mqtt_timer_left_ms mqtt_timer_left_ms: timer->end_time is in ticks, now is in ticks, so left is in ticks. left * portTICK_PERIOD_MS is the time left. With that change, the select in both mqtt_esp_read and mqtt_esp_write seems to work as expected(with time, not ticks) --- extras/paho_mqtt_c/MQTTESP8266.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index e7a14d9..cebf24a 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -53,7 +53,7 @@ int mqtt_timer_left_ms(mqtt_timer_t* timer) { TickType_t now = xTaskGetTickCount(); int32_t left = timer->end_time - now; - return (left < 0) ? 0 : left / portTICK_PERIOD_MS; + return (left < 0) ? 0 : left * portTICK_PERIOD_MS; } @@ -72,9 +72,8 @@ int mqtt_esp_read(mqtt_network_t* n, unsigned char* buffer, int len, int timeou int rcvd = 0; FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); - // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_PERIOD_MS; - tv.tv_usec = 0; + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; rc = select(n->my_socket + 1, &fdset, 0, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) { @@ -97,9 +96,8 @@ int mqtt_esp_write(mqtt_network_t* n, unsigned char* buffer, int len, int timeo FD_ZERO(&fdset); FD_SET(n->my_socket, &fdset); - // It seems tv_sec actually means FreeRTOS tick - tv.tv_sec = timeout_ms / portTICK_PERIOD_MS; - tv.tv_usec = 0; + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; rc = select(n->my_socket + 1, 0, &fdset, 0, &tv); if ((rc > 0) && (FD_ISSET(n->my_socket, &fdset))) { From c1747fb8dac3e1b36c7f3edf2edc925e662de73c Mon Sep 17 00:00:00 2001 From: Fernando Governatore Date: Mon, 3 Jul 2017 15:49:05 -0300 Subject: [PATCH 173/349] MQTT fix mqtt_timer_expired If the user passes 0 as a timeout, we should not sleep(the timer has already expired). --- extras/paho_mqtt_c/MQTTESP8266.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index cebf24a..a6f1e75 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -32,7 +32,7 @@ char mqtt_timer_expired(mqtt_timer_t* timer) { TickType_t now = xTaskGetTickCount(); int32_t left = timer->end_time - now; - return (left < 0); + return (left <= 0); } From 4737e3b4383afc82309ee0792d7df0f2cba7ef56 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 4 Jul 2017 20:24:34 +1000 Subject: [PATCH 174/349] Update mbed TLS to 2.5.1 --- examples/aws_iot/ssl_connection.h | 2 +- examples/http_get_mbedtls/http_get_mbedtls.c | 2 +- examples/tls_server/tls_server.c | 3 +- extras/mbedtls/include/mbedtls/config.h | 402 +++++++++++++++---- extras/mbedtls/mbedtls | 2 +- extras/mbedtls/net_lwip.c | 2 +- 6 files changed, 327 insertions(+), 86 deletions(-) diff --git a/examples/aws_iot/ssl_connection.h b/examples/aws_iot/ssl_connection.h index b8d1bf1..5113701 100644 --- a/examples/aws_iot/ssl_connection.h +++ b/examples/aws_iot/ssl_connection.h @@ -4,7 +4,7 @@ // this must be ahead of any mbedtls header files so the local mbedtls/config.h can be properly referenced #include "mbedtls/config.h" -#include "mbedtls/net.h" +#include "mbedtls/net_sockets.h" #include "mbedtls/debug.h" #include "mbedtls/ssl.h" #include "mbedtls/entropy.h" diff --git a/examples/http_get_mbedtls/http_get_mbedtls.c b/examples/http_get_mbedtls/http_get_mbedtls.c index 596a1f7..0200a66 100644 --- a/examples/http_get_mbedtls/http_get_mbedtls.c +++ b/examples/http_get_mbedtls/http_get_mbedtls.c @@ -33,7 +33,7 @@ errors at link time if functions don't exist.) */ #include "mbedtls/config.h" -#include "mbedtls/net.h" +#include "mbedtls/net_sockets.h" #include "mbedtls/debug.h" #include "mbedtls/ssl.h" #include "mbedtls/entropy.h" diff --git a/examples/tls_server/tls_server.c b/examples/tls_server/tls_server.c index 7959609..1317785 100644 --- a/examples/tls_server/tls_server.c +++ b/examples/tls_server/tls_server.c @@ -43,7 +43,7 @@ extern const char *server_key; errors at link time if functions don't exist.) */ #include "mbedtls/config.h" -#include "mbedtls/net.h" +#include "mbedtls/net_sockets.h" #include "mbedtls/debug.h" #include "mbedtls/ssl.h" #include "mbedtls/entropy.h" @@ -216,6 +216,7 @@ void tls_server_task(void *pvParameters) } len = ret; + ret = 0; printf(" %d bytes written. Closing socket on client.\n\n%s", len, (char *) buf); mbedtls_ssl_close_notify(&ssl); diff --git a/extras/mbedtls/include/mbedtls/config.h b/extras/mbedtls/include/mbedtls/config.h index 54ce5be..ed01596 100644 --- a/extras/mbedtls/include/mbedtls/config.h +++ b/extras/mbedtls/include/mbedtls/config.h @@ -3,6 +3,10 @@ * * \brief Configuration options (set of defines) * + * This set of compile-time options may be used to enable + * or disable features selectively, and reduce the global + * memory footprint. + * * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved * SPDX-License-Identifier: Apache-2.0 * @@ -21,11 +25,6 @@ * This file is part of mbed TLS (https://tls.mbed.org) */ -/* - * This set of compile-time options may be used to enable - * or disable features selectively, and reduce the global - * memory footprint. - */ #ifndef MBEDTLS_CONFIG_H #define MBEDTLS_CONFIG_H @@ -72,6 +71,10 @@ * The time does not need to be correct, only time differences are used, * by contrast with MBEDTLS_HAVE_TIME_DATE * + * Defining MBEDTLS_HAVE_TIME allows you to specify MBEDTLS_PLATFORM_TIME_ALT, + * MBEDTLS_PLATFORM_TIME_MACRO, MBEDTLS_PLATFORM_TIME_TYPE_MACRO and + * MBEDTLS_PLATFORM_STD_TIME. + * * Comment if your system does not support time functions */ //#define MBEDTLS_HAVE_TIME @@ -132,10 +135,10 @@ //#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS /** - * \def MBEDTLS_PLATFORM_XXX_ALT + * \def MBEDTLS_PLATFORM_EXIT_ALT * - * Uncomment a macro to let mbed TLS support the function in the platform - * abstraction layer. + * MBEDTLS_PLATFORM_XXX_ALT: Uncomment a macro to let mbed TLS support the + * function in the platform abstraction layer. * * Example: In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT, mbed TLS will * provide a function "mbedtls_platform_set_printf()" that allows you to set an @@ -149,13 +152,17 @@ * \warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as * MBEDTLS_PLATFORM_XXX_MACRO! * + * Requires: MBEDTLS_PLATFORM_TIME_ALT requires MBEDTLS_HAVE_TIME + * * Uncomment a macro to enable alternate implementation of specific base * platform function */ //#define MBEDTLS_PLATFORM_EXIT_ALT +//#define MBEDTLS_PLATFORM_TIME_ALT //#define MBEDTLS_PLATFORM_FPRINTF_ALT //#define MBEDTLS_PLATFORM_PRINTF_ALT //#define MBEDTLS_PLATFORM_SNPRINTF_ALT +//#define MBEDTLS_PLATFORM_NV_SEED_ALT /** * \def MBEDTLS_DEPRECATED_WARNING @@ -208,19 +215,19 @@ //#define MBEDTLS_TIMING_ALT /** - * \def MBEDTLS__MODULE_NAME__ALT + * \def MBEDTLS_AES_ALT * - * Uncomment a macro to let mbed TLS use your alternate core implementation of - * a symmetric crypto or hash module (e.g. platform specific assembly - * optimized implementations). Keep in mind that the function prototypes - * should remain the same. + * MBEDTLS__MODULE_NAME__ALT: Uncomment a macro to let mbed TLS use your + * alternate core implementation of a symmetric crypto, an arithmetic or hash + * module (e.g. platform specific assembly optimized implementations). Keep + * in mind that the function prototypes should remain the same. * * This replaces the whole module. If you only want to replace one of the * functions, use one of the MBEDTLS__FUNCTION_NAME__ALT flags. * * Example: In case you uncomment MBEDTLS_AES_ALT, mbed TLS will no longer - * provide the "struct mbedtls_aes_context" definition and omit the base function - * declarations and implementations. "aes_alt.h" will be included from + * provide the "struct mbedtls_aes_context" definition and omit the base + * function declarations and implementations. "aes_alt.h" will be included from * "aes.h" to include the new function definitions. * * Uncomment a macro to enable alternate implementation of the corresponding @@ -239,13 +246,23 @@ //#define MBEDTLS_SHA1_ALT //#define MBEDTLS_SHA256_ALT //#define MBEDTLS_SHA512_ALT +/* + * When replacing the elliptic curve module, pleace consider, that it is + * implemented with two .c files: + * - ecp.c + * - ecp_curves.c + * You can replace them very much like all the other MBEDTLS__MODULE_NAME__ALT + * macros as described above. The only difference is that you have to make sure + * that you provide functionality for both .c files. + */ +//#define MBEDTLS_ECP_ALT /** - * \def MBEDTLS__FUNCTION_NAME__ALT + * \def MBEDTLS_MD2_PROCESS_ALT * - * Uncomment a macro to let mbed TLS use you alternate core implementation of - * symmetric crypto or hash function. Keep in mind that function prototypes - * should remain the same. + * MBEDTLS__FUNCTION_NAME__ALT: Uncomment a macro to let mbed TLS use you + * alternate core implementation of symmetric crypto or hash function. Keep in + * mind that function prototypes should remain the same. * * This replaces only one function. The header file from mbed TLS is still * used, in contrast to the MBEDTLS__MODULE_NAME__ALT flags. @@ -278,6 +295,76 @@ //#define MBEDTLS_AES_ENCRYPT_ALT //#define MBEDTLS_AES_DECRYPT_ALT +/** + * \def MBEDTLS_ECP_INTERNAL_ALT + * + * Expose a part of the internal interface of the Elliptic Curve Point module. + * + * MBEDTLS_ECP__FUNCTION_NAME__ALT: Uncomment a macro to let mbed TLS use your + * alternative core implementation of elliptic curve arithmetic. Keep in mind + * that function prototypes should remain the same. + * + * This partially replaces one function. The header file from mbed TLS is still + * used, in contrast to the MBEDTLS_ECP_ALT flag. The original implementation + * is still present and it is used for group structures not supported by the + * alternative. + * + * Any of these options become available by defining MBEDTLS_ECP_INTERNAL_ALT + * and implementing the following functions: + * unsigned char mbedtls_internal_ecp_grp_capable( + * const mbedtls_ecp_group *grp ) + * int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp ) + * void mbedtls_internal_ecp_deinit( const mbedtls_ecp_group *grp ) + * The mbedtls_internal_ecp_grp_capable function should return 1 if the + * replacement functions implement arithmetic for the given group and 0 + * otherwise. + * The functions mbedtls_internal_ecp_init and mbedtls_internal_ecp_deinit are + * called before and after each point operation and provide an opportunity to + * implement optimized set up and tear down instructions. + * + * Example: In case you uncomment MBEDTLS_ECP_INTERNAL_ALT and + * MBEDTLS_ECP_DOUBLE_JAC_ALT, mbed TLS will still provide the ecp_double_jac + * function, but will use your mbedtls_internal_ecp_double_jac if the group is + * supported (your mbedtls_internal_ecp_grp_capable function returns 1 when + * receives it as an argument). If the group is not supported then the original + * implementation is used. The other functions and the definition of + * mbedtls_ecp_group and mbedtls_ecp_point will not change, so your + * implementation of mbedtls_internal_ecp_double_jac and + * mbedtls_internal_ecp_grp_capable must be compatible with this definition. + * + * Uncomment a macro to enable alternate implementation of the corresponding + * function. + */ +/* Required for all the functions in this section */ +//#define MBEDTLS_ECP_INTERNAL_ALT +/* Support for Weierstrass curves with Jacobi representation */ +//#define MBEDTLS_ECP_RANDOMIZE_JAC_ALT +//#define MBEDTLS_ECP_ADD_MIXED_ALT +//#define MBEDTLS_ECP_DOUBLE_JAC_ALT +//#define MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT +//#define MBEDTLS_ECP_NORMALIZE_JAC_ALT +/* Support for curves with Montgomery arithmetic */ +//#define MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT +//#define MBEDTLS_ECP_RANDOMIZE_MXZ_ALT +//#define MBEDTLS_ECP_NORMALIZE_MXZ_ALT + +/** + * \def MBEDTLS_TEST_NULL_ENTROPY + * + * Enables testing and use of mbed TLS without any configured entropy sources. + * This permits use of the library on platforms before an entropy source has + * been integrated (see for example the MBEDTLS_ENTROPY_HARDWARE_ALT or the + * MBEDTLS_ENTROPY_NV_SEED switches). + * + * WARNING! This switch MUST be disabled in production builds, and is suitable + * only for development. + * Enabling the switch negates any security provided by the library. + * + * Requires MBEDTLS_ENTROPY_C, MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES + * + */ +//#define MBEDTLS_TEST_NULL_ENTROPY + /** * \def MBEDTLS_ENTROPY_HARDWARE_ALT * @@ -365,10 +452,11 @@ //#define MBEDTLS_CIPHER_NULL_CIPHER /** - * \def MBEDTLS_CIPHER_PADDING_XXX + * \def MBEDTLS_CIPHER_PADDING_PKCS7 * - * Uncomment or comment macros to add support for specific padding modes - * in the cipher layer with cipher modes that support padding (e.g. CBC) + * MBEDTLS_CIPHER_PADDING_XXX: Uncomment or comment macros to add support for + * specific padding modes in the cipher layer with cipher modes that support + * padding (e.g. CBC) * * If you disable all padding modes, only full blocks can be used with CBC. * @@ -408,10 +496,10 @@ #define MBEDTLS_REMOVE_ARC4_CIPHERSUITES /** - * \def MBEDTLS_ECP_XXXX_ENABLED + * \def MBEDTLS_ECP_DP_SECP192R1_ENABLED * - * Enables specific curves within the Elliptic Curve module. - * By default all supported curves are enabled. + * MBEDTLS_ECP_XXXX_ENABLED: Enables specific curves within the Elliptic Curve + * module. By default all supported curves are enabled. * * Comment macros to disable the curve and functions for it */ @@ -695,6 +783,25 @@ */ #define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED +/** + * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED + * + * Enable the ECJPAKE based ciphersuite modes in SSL / TLS. + * + * \warning This is currently experimental. EC J-PAKE support is based on the + * Thread v1.0.0 specification; incompatible changes to the specification + * might still happen. For this reason, this is disabled by default. + * + * Requires: MBEDTLS_ECJPAKE_C + * MBEDTLS_SHA256_C + * MBEDTLS_ECP_DP_SECP256R1_ENABLED + * + * This enables the following ciphersuites (if other requisites are + * enabled as well): + * MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8 + */ +//#define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED + /** * \def MBEDTLS_PK_PARSE_EC_EXTENDED * @@ -780,6 +887,34 @@ */ #define MBEDTLS_ENTROPY_FORCE_SHA256 +/** + * \def MBEDTLS_ENTROPY_NV_SEED + * + * Enable the non-volatile (NV) seed file-based entropy source. + * (Also enables the NV seed read/write functions in the platform layer) + * + * This is crucial (if not required) on systems that do not have a + * cryptographic entropy source (in hardware or kernel) available. + * + * Requires: MBEDTLS_ENTROPY_C, MBEDTLS_PLATFORM_C + * + * \note The read/write functions that are used by the entropy source are + * determined in the platform layer, and can be modified at runtime and/or + * compile-time depending on the flags (MBEDTLS_PLATFORM_NV_SEED_*) used. + * + * \note If you use the default implementation functions that read a seedfile + * with regular fopen(), please make sure you make a seedfile with the + * proper name (defined in MBEDTLS_PLATFORM_STD_NV_SEED_FILE) and at + * least MBEDTLS_ENTROPY_BLOCK_SIZE bytes in size that can be read from + * and written to or you will get an entropy source error! The default + * implementation will only use the first MBEDTLS_ENTROPY_BLOCK_SIZE + * bytes from the file. + * + * \note The entropy collector will write to the seed file before entropy is + * given to an external source, to update it. + */ +//#define MBEDTLS_ENTROPY_NV_SEED + /** * \def MBEDTLS_MEMORY_DEBUG * @@ -869,18 +1004,6 @@ */ #define MBEDTLS_SHA256_SMALLER -/** - * \def MBEDTLS_SSL_AEAD_RANDOM_IV - * - * Generate a random IV rather than using the record sequence number as a - * nonce for ciphersuites using and AEAD algorithm (GCM or CCM). - * - * Using the sequence number is generally recommended. - * - * Uncomment this macro to always use random IVs with AEAD ciphersuites. - */ -//#define MBEDTLS_SSL_AEAD_RANDOM_IV - /** * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES * @@ -1040,7 +1163,7 @@ * * Comment this macro to disable support for SSL 3.0 */ -#define MBEDTLS_SSL_PROTO_SSL3 +//#define MBEDTLS_SSL_PROTO_SSL3 /** * \def MBEDTLS_SSL_PROTO_TLS1 @@ -1135,6 +1258,22 @@ */ #define MBEDTLS_SSL_DTLS_HELLO_VERIFY +/** + * \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE + * + * Enable server-side support for clients that reconnect from the same port. + * + * Some clients unexpectedly close the connection and try to reconnect using the + * same source port. This needs special support from the server to handle the + * new connection securely, as described in section 4.2.8 of RFC 6347. This + * flag enables that support. + * + * Requires: MBEDTLS_SSL_DTLS_HELLO_VERIFY + * + * Comment this to disable support for clients reusing the source port. + */ +#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE + /** * \def MBEDTLS_SSL_DTLS_BADMAC_LIMIT * @@ -1160,6 +1299,16 @@ */ #define MBEDTLS_SSL_SESSION_TICKETS +/** + * \def MBEDTLS_SSL_EXPORT_KEYS + * + * Enable support for exporting key block and master secret. + * This is required for certain users of TLS, e.g. EAP-TLS. + * + * Comment this macro to disable support for key export + */ +#define MBEDTLS_SSL_EXPORT_KEYS + /** * \def MBEDTLS_SSL_SERVER_NAME_INDICATION * @@ -1231,6 +1380,8 @@ * If set, the X509 parser will not break-off when parsing an X509 certificate * and encountering an unknown critical extension. * + * \warning Depending on your PKI use, enabling this can be a security risk! + * * Uncomment to prevent an error. */ //#define MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION @@ -1438,7 +1589,7 @@ * library/pkwrite.c * library/x509_create.c * library/x509write_crt.c - * library/mbedtls_x509write_csr.c + * library/x509write_csr.c */ #define MBEDTLS_ASN1_WRITE_C @@ -1572,6 +1723,19 @@ */ #define MBEDTLS_CIPHER_C +/** + * \def MBEDTLS_CMAC_C + * + * Enable the CMAC (Cipher-based Message Authentication Code) mode for block + * ciphers. + * + * Module: library/cmac.c + * + * Requires: MBEDTLS_AES_C or MBEDTLS_DES_C + * + */ +//#define MBEDTLS_CMAC_C + /** * \def MBEDTLS_CTR_DRBG_C * @@ -1671,6 +1835,25 @@ */ #define MBEDTLS_ECDSA_C +/** + * \def MBEDTLS_ECJPAKE_C + * + * Enable the elliptic curve J-PAKE library. + * + * \warning This is currently experimental. EC J-PAKE support is based on the + * Thread v1.0.0 specification; incompatible changes to the specification + * might still happen. For this reason, this is disabled by default. + * + * Module: library/ecjpake.c + * Caller: + * + * This module is used by the following key exchanges: + * ECJPAKE + * + * Requires: MBEDTLS_ECP_C, MBEDTLS_MD_C + */ +//#define MBEDTLS_ECJPAKE_C + /** * \def MBEDTLS_ECP_C * @@ -1679,6 +1862,7 @@ * Module: library/ecp.c * Caller: library/ecdh.c * library/ecdsa.c + * library/ecjpake.c * * Requires: MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED */ @@ -1766,7 +1950,7 @@ * * Enable the generic message digest layer. * - * Module: library/mbedtls_md.c + * Module: library/md.c * Caller: * * Uncomment to enable generic message digest wrappers. @@ -1778,7 +1962,7 @@ * * Enable the MD2 hash algorithm. * - * Module: library/mbedtls_md2.c + * Module: library/md2.c * Caller: * * Uncomment to enable support for (rare) MD2-signed X.509 certs. @@ -1790,7 +1974,7 @@ * * Enable the MD4 hash algorithm. * - * Module: library/mbedtls_md4.c + * Module: library/md4.c * Caller: * * Uncomment to enable support for (rare) MD4-signed X.509 certs. @@ -1802,8 +1986,8 @@ * * Enable the MD5 hash algorithm. * - * Module: library/mbedtls_md5.c - * Caller: library/mbedtls_md.c + * Module: library/md5.c + * Caller: library/md.c * library/pem.c * library/ssl_tls.c * @@ -1831,11 +2015,19 @@ /** * \def MBEDTLS_NET_C * - * Enable the TCP/IP networking routines. + * Enable the TCP and UDP over IPv6/IPv4 networking routines. * - * Module: library/net.c + * \note This module only works on POSIX/Unix (including Linux, BSD and OS X) + * and Windows. For other platforms, you'll want to disable it, and write your + * own networking callbacks to be passed to \c mbedtls_ssl_set_bio(). * - * This module provides TCP/IP networking routines. + * \note See also our Knowledge Base article about porting to a new + * environment: + * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS + * + * Module: library/net_sockets.c + * + * This module provides networking routines. */ #define MBEDTLS_NET_C @@ -1852,11 +2044,11 @@ * library/rsa.c * library/x509.c * library/x509_create.c - * library/mbedtls_x509_crl.c - * library/mbedtls_x509_crt.c - * library/mbedtls_x509_csr.c + * library/x509_crl.c + * library/x509_crt.c + * library/x509_csr.c * library/x509write_crt.c - * library/mbedtls_x509write_csr.c + * library/x509write_csr.c * * This modules translates between OIDs and internal values. */ @@ -1884,9 +2076,9 @@ * Module: library/pem.c * Caller: library/dhm.c * library/pkparse.c - * library/mbedtls_x509_crl.c - * library/mbedtls_x509_crt.c - * library/mbedtls_x509_csr.c + * library/x509_crl.c + * library/x509_crt.c + * library/x509_csr.c * * Requires: MBEDTLS_BASE64_C * @@ -1902,7 +2094,7 @@ * Module: library/pem.c * Caller: library/pkwrite.c * library/x509write_crt.c - * library/mbedtls_x509write_csr.c + * library/x509write_csr.c * * Requires: MBEDTLS_BASE64_C * @@ -1932,8 +2124,8 @@ * Enable the generic public (asymetric) key parser. * * Module: library/pkparse.c - * Caller: library/mbedtls_x509_crt.c - * library/mbedtls_x509_csr.c + * Caller: library/x509_crt.c + * library/x509_csr.c * * Requires: MBEDTLS_PK_C * @@ -2024,8 +2216,8 @@ * * Enable the RIPEMD-160 hash algorithm. * - * Module: library/mbedtls_ripemd160.c - * Caller: library/mbedtls_md.c + * Module: library/ripemd160.c + * Caller: library/md.c * */ #define MBEDTLS_RIPEMD160_C @@ -2053,14 +2245,15 @@ * * Enable the SHA1 cryptographic hash algorithm. * - * Module: library/mbedtls_sha1.c - * Caller: library/mbedtls_md.c + * Module: library/sha1.c + * Caller: library/md.c * library/ssl_cli.c * library/ssl_srv.c * library/ssl_tls.c * library/x509write_crt.c * - * This module is required for SSL/TLS and SHA1-signed certificates. + * This module is required for SSL/TLS up to version 1.1, for TLS 1.2 + * depending on the handshake parameters, and for SHA1-signed certificates. */ #define MBEDTLS_SHA1_C @@ -2069,9 +2262,9 @@ * * Enable the SHA-224 and SHA-256 cryptographic hash algorithms. * - * Module: library/mbedtls_sha256.c + * Module: library/sha256.c * Caller: library/entropy.c - * library/mbedtls_md.c + * library/md.c * library/ssl_cli.c * library/ssl_srv.c * library/ssl_tls.c @@ -2086,9 +2279,9 @@ * * Enable the SHA-384 and SHA-512 cryptographic hash algorithms. * - * Module: library/mbedtls_sha512.c + * Module: library/sha512.c * Caller: library/entropy.c - * library/mbedtls_md.c + * library/md.c * library/ssl_cli.c * library/ssl_srv.c * @@ -2181,7 +2374,8 @@ * By default mbed TLS assumes it is used in a non-threaded environment or that * contexts are not shared between threads. If you do intend to use contexts * between threads, you will need to enable this layer to prevent race - * conditions. + * conditions. See also our Knowledge Base article about threading: + * https://tls.mbed.org/kb/development/thread-safety-and-multi-threading * * Module: library/threading.c * @@ -2198,7 +2392,18 @@ /** * \def MBEDTLS_TIMING_C * - * Enable the portable timing interface. + * Enable the semi-portable timing interface. + * + * \note The provided implementation only works on POSIX/Unix (including Linux, + * BSD and OS X) and Windows. On other platforms, you can either disable that + * module and provide your own implementations of the callbacks needed by + * \c mbedtls_ssl_set_timer_cb() for DTLS, or leave it enabled and provide + * your own implementation of the whole module by setting + * \c MBEDTLS_TIMING_ALT in the current file. + * + * \note See also our Knowledge Base article about porting to a new + * environment: + * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS * * Module: library/timing.c * Caller: library/havege.c @@ -2224,9 +2429,9 @@ * Enable X.509 core for using certificates. * * Module: library/x509.c - * Caller: library/mbedtls_x509_crl.c - * library/mbedtls_x509_crt.c - * library/mbedtls_x509_csr.c + * Caller: library/x509_crl.c + * library/x509_crt.c + * library/x509_csr.c * * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, * MBEDTLS_PK_PARSE_C @@ -2240,7 +2445,7 @@ * * Enable X.509 certificate parsing. * - * Module: library/mbedtls_x509_crt.c + * Module: library/x509_crt.c * Caller: library/ssl_cli.c * library/ssl_srv.c * library/ssl_tls.c @@ -2256,8 +2461,8 @@ * * Enable X.509 CRL parsing. * - * Module: library/mbedtls_x509_crl.c - * Caller: library/mbedtls_x509_crt.c + * Module: library/x509_crl.c + * Caller: library/x509_crt.c * * Requires: MBEDTLS_X509_USE_C * @@ -2270,7 +2475,7 @@ * * Enable X.509 Certificate Signing Request (CSR) parsing. * - * Module: library/mbedtls_x509_csr.c + * Module: library/x509_csr.c * Caller: library/x509_crt_write.c * * Requires: MBEDTLS_X509_USE_C @@ -2347,12 +2552,12 @@ /* MPI / BIGNUM options */ #define MBEDTLS_MPI_WINDOW_SIZE 1 /**< Maximum windows size used. */ -#define MBEDTLS_MPI_MAX_SIZE 512 /**< Maximum number of bytes for usable MPIs. */ +#define MBEDTLS_MPI_MAX_SIZE 512 /**< Maximum number of bytes for usable MPIs. */ /* CTR_DRBG options */ //#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */ /* this is normally 10x higher, but reseeding seems quite inexpensive on esp8266 */ -#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 1000 /**< Interval before reseed is performed by default */ +#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 1000 /**< Interval before reseed is performed by default */ //#define MBEDTLS_CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */ //#define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */ //#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */ @@ -2371,6 +2576,7 @@ /* Entropy options */ //#define MBEDTLS_ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */ //#define MBEDTLS_ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */ +//#define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Default minimum number of bytes required for the hardware entropy source mbedtls_hardware_poll() before entropy is released */ /* Memory buffer allocator options */ //#define MBEDTLS_MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */ @@ -2380,27 +2586,37 @@ //#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */ //#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */ //#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ //#define MBEDTLS_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */ //#define MBEDTLS_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */ /* Note: your snprintf must correclty zero-terminate the buffer! */ //#define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 0 /**< Default exit value to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE 1 /**< Default exit value to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */ +//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" /**< Seed file to read/write with default implementation */ /* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */ /* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */ //#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */ //#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */ //#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */ +//#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ +//#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ //#define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */ //#define MBEDTLS_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */ /* Note: your snprintf must correclty zero-terminate the buffer! */ //#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */ +//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */ +//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */ /* SSL Cache options */ //#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */ //#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */ /* SSL options */ -#define MBEDTLS_SSL_MAX_CONTENT_LEN 4096 /**< Maxium fragment length in bytes, determines the size of each of the two internal I/O buffers */ +#define MBEDTLS_SSL_MAX_CONTENT_LEN 4096 /**< Maxium fragment length in bytes, determines the size of each of the two internal I/O buffers */ //#define MBEDTLS_SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */ //#define MBEDTLS_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */ //#define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */ @@ -2421,11 +2637,35 @@ /* X509 options */ //#define MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */ +//#define MBEDTLS_X509_MAX_FILE_PATH_LEN 512 /**< Maximum length of a path/filename string in bytes including the null terminator character ('\0'). */ -/* \} name SECTION: Module configuration options */ +/** + * Allow SHA-1 in the default TLS configuration for certificate signing. + * Without this build-time option, SHA-1 support must be activated explicitly + * through mbedtls_ssl_conf_cert_profile. Turning on this option is not + * recommended because of it is possible to generte SHA-1 collisions, however + * this may be safe for legacy infrastructure where additional controls apply. + */ +// #define MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES -#if defined(TARGET_LIKE_MBED) -#include "mbedtls/target_config.h" +/** + * Allow SHA-1 in the default TLS configuration for TLS 1.2 handshake + * signature and ciphersuite selection. Without this build-time option, SHA-1 + * support must be activated explicitly through mbedtls_ssl_conf_sig_hashes. + * The use of SHA-1 in TLS <= 1.1 and in HMAC-SHA-1 is always allowed by + * default. At the time of writing, there is no practical attack on the use + * of SHA-1 in handshake signatures, hence this option is turned on by default + * for compatibility with existing peers. + */ +#define MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE + +/* \} name SECTION: Customisation configuration options */ + +/* Target and application specific configurations */ +//#define YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE "mbedtls/target_config.h" + +#if defined(TARGET_LIKE_MBED) && defined(YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE) +#include YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE #endif /* diff --git a/extras/mbedtls/mbedtls b/extras/mbedtls/mbedtls index 0a0c22e..f2a597f 160000 --- a/extras/mbedtls/mbedtls +++ b/extras/mbedtls/mbedtls @@ -1 +1 @@ -Subproject commit 0a0c22e0efcf2f8f71d7e16712f80b8f77326f72 +Subproject commit f2a597fa3dd1c7b15e0fee62f6932b253295803d diff --git a/extras/mbedtls/net_lwip.c b/extras/mbedtls/net_lwip.c index e6f7183..67453c8 100644 --- a/extras/mbedtls/net_lwip.c +++ b/extras/mbedtls/net_lwip.c @@ -29,7 +29,7 @@ #if defined(MBEDTLS_NET_C) -#include "mbedtls/net.h" +#include "mbedtls/net_sockets.h" #include From 178d0e381c8eca463d9d35e061f2a80cf4496d7f Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 4 Jul 2017 23:16:22 +1000 Subject: [PATCH 175/349] Update BearSSL --- extras/bearssl/BearSSL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/bearssl/BearSSL b/extras/bearssl/BearSSL index f0c0046..2b73849 160000 --- a/extras/bearssl/BearSSL +++ b/extras/bearssl/BearSSL @@ -1 +1 @@ -Subproject commit f0c00466018e4bcdaa2d965ac723d53f015cde9a +Subproject commit 2b738493bd16d57fdb12d38d03631981370259be From ee7bd8701168e5a3fe1d3298f5f4a123eb28e55f Mon Sep 17 00:00:00 2001 From: UncleRus Date: Fri, 7 Jul 2017 03:31:11 +0500 Subject: [PATCH 176/349] Driver for AD7705/AD7706 SPI ADC --- examples/ad770x/Makefile | 4 + examples/ad770x/main.c | 50 ++++++++++ extras/ad770x/ad770x.c | 182 +++++++++++++++++++++++++++++++++++++ extras/ad770x/ad770x.h | 118 ++++++++++++++++++++++++ extras/ad770x/component.mk | 9 ++ 5 files changed, 363 insertions(+) create mode 100644 examples/ad770x/Makefile create mode 100644 examples/ad770x/main.c create mode 100644 extras/ad770x/ad770x.c create mode 100644 extras/ad770x/ad770x.h create mode 100644 extras/ad770x/component.mk diff --git a/examples/ad770x/Makefile b/examples/ad770x/Makefile new file mode 100644 index 0000000..f102848 --- /dev/null +++ b/examples/ad770x/Makefile @@ -0,0 +1,4 @@ +PROGRAM = ad770x +EXTRA_COMPONENTS = extras/ad770x +#ESPBAUD = 460800 +include ../../common.mk diff --git a/examples/ad770x/main.c b/examples/ad770x/main.c new file mode 100644 index 0000000..6b13afc --- /dev/null +++ b/examples/ad770x/main.c @@ -0,0 +1,50 @@ +/* + * Example of using AD7705/AD7706 driver + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include +#include +#include +#include +#include +#include +#include + +#define CS_PIN 2 +#define AIN_CHANNEL 0 // AIN1+,AIN1- for AD7705 + +static const ad770x_params_t dev = { + .cs_pin = CS_PIN, + .master_clock = AD770X_MCLK_4_9152MHz, // 4.9152 MHz + .bipolar = false, // Unipolar mode + .gain = AD770X_GAIN_1, // No gain + .update_rate = AD770X_RATE_50 // 50 Hz output update rate +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + while (ad770x_init(&dev, AIN_CHANNEL) != 0) + { + printf("Cannot initialize AD7705\n"); + vTaskDelay(500 / portTICK_PERIOD_MS); + } + + while (true) + { + // wait for data + while (!ad770x_data_ready(&dev, AIN_CHANNEL)) {} + + // Read result + uint16_t raw = ad770x_raw_adc_value(&dev, AIN_CHANNEL); + + printf("Raw ADC value: %d\n", raw); + + vTaskDelay(500 / portTICK_PERIOD_MS); + } +} diff --git a/extras/ad770x/ad770x.c b/extras/ad770x/ad770x.c new file mode 100644 index 0000000..9bd8af5 --- /dev/null +++ b/extras/ad770x/ad770x.c @@ -0,0 +1,182 @@ +/** + * Driver for AD7705/AD7706 SPI ADC + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "ad770x.h" + +#include +#include +#include +#include + +#define AD770X_DEBUG + +#define BUS 1 +#define INIT_TIMEOUT 500000 // 500ms + +#ifdef AD770X_DEBUG +#include +#define debug(fmt, ...) printf("%s" fmt "\n", "AD770x: ", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +#define timeout_expired(start, len) ((uint32_t)(sdk_system_get_time() - (start)) >= (len)) + +#define _BV(x) (1 << (x)) + +#define REG_COMM 0x00 // 8 bits +#define REG_SETUP 0x01 // 8 bits +#define REG_CLOCK 0x02 // 8 bits +#define REG_DATA 0x03 // 16 bits +#define REG_TEST 0x04 // 8 bits +#define REG_OFFS 0x06 // 24 bits +#define REG_GAIN 0x07 // 24 bits + +#define BIT_COMM_CH0 0 +#define BIT_COMM_CH1 1 +#define BIT_COMM_STBY 2 +#define BIT_COMM_RW 3 +#define BIT_COMM_RS0 4 +#define BIT_COMM_RS1 5 +#define BIT_COMM_RS2 6 +#define BIT_COMM_DRDY 7 + +#define MASK_COMM_CH 0x03 +#define MASK_COMM_RS 0x70 + +#define BIT_CLOCK_FS0 0 +#define BIT_CLOCK_FS1 1 +#define BIT_CLOCK_CLK 2 +#define BIT_CLOCK_CLKDIV 3 +#define BIT_CLOCK_CLKDIS 4 + +#define MASK_CLOCK_FS 0x03 +#define MASK_CLOCK_CLK 0x0c + +#define BIT_SETUP_FSYNC 0 +#define BIT_SETUP_BUF 1 +#define BIT_SETUP_BU 2 +#define BIT_SETUP_G0 3 +#define BIT_SETUP_G1 4 +#define BIT_SETUP_G2 5 +#define BIT_SETUP_MD0 6 +#define BIT_SETUP_MD1 7 + +#define MASK_SETUP_GAIN 0x38 +#define MASK_SETUP_MODE 0xc0 + +static const spi_settings_t config = { + .endianness = SPI_BIG_ENDIAN, + .msb = true, + .minimal_pins = true, + .mode = SPI_MODE3, + .freq_divider = SPI_FREQ_DIV_500K +}; + +static uint8_t write(uint8_t cs_pin, uint8_t value) +{ + spi_settings_t old; + spi_get_settings(BUS, &old); + spi_set_settings(BUS, &config); + + gpio_write(cs_pin, false); + uint8_t res = spi_transfer_8(BUS, value); + //debug("byte wr: 0x%02x", value); + gpio_write(cs_pin, true); + + spi_set_settings(BUS, &old); + return res; +} + +inline static uint8_t read_byte(uint8_t cs_pin) +{ + return write(cs_pin, 0); +} + +static uint16_t read_word(uint8_t cs_pin) +{ + spi_settings_t old; + spi_get_settings(BUS, &old); + spi_set_settings(BUS, &config); + + gpio_write(cs_pin, false); + uint16_t res = spi_transfer_16(BUS, 0); + gpio_write(cs_pin, true); + + spi_set_settings(BUS, &old); + return res; +} + +static void prepare(uint8_t channel, uint8_t reg, bool read, uint8_t cs_pin, bool standby) +{ + write(cs_pin, + (channel & MASK_COMM_CH) | + (read ? _BV(BIT_COMM_RW) : 0) | + ((reg << BIT_COMM_RS0) & MASK_COMM_RS) | + (standby ? _BV(BIT_COMM_STBY) : 0) + ); +} + +int ad770x_init(const ad770x_params_t *params, uint8_t channel) +{ + if (!spi_set_settings(BUS, &config)) + { + debug("Cannot init SPI"); + return -EIO; + } + + if ((params->master_clock >= AD770X_MCLK_2_4576MHz && params->update_rate < AD770X_RATE_50) + || (params->master_clock < AD770X_MCLK_2_4576MHz && params->update_rate > AD770X_RATE_200)) + { + debug("Invalid update rate / master clock combination"); + return -EINVAL; + } + + gpio_enable(params->cs_pin, GPIO_OUTPUT); + gpio_write(params->cs_pin, true); + + prepare(channel, REG_CLOCK, false, params->cs_pin, false); + write(params->cs_pin, + ((params->master_clock << BIT_CLOCK_CLK) & MASK_CLOCK_CLK) | + (params->update_rate & MASK_CLOCK_FS) + ); + + ad770x_set_mode(params, channel, AD770X_MODE_CALIBRATION); + + uint32_t start = sdk_system_get_time(); + while (!ad770x_data_ready(params, channel)) + if (timeout_expired(start, INIT_TIMEOUT)) + { + debug("Timeout while calibration"); + return -EIO; + } + + return 0; +} + +void ad770x_set_mode(const ad770x_params_t *params, uint8_t channel, ad770x_mode_t mode) +{ + prepare(channel, REG_SETUP, false, params->cs_pin, false); + write(params->cs_pin, + ((params->gain << BIT_SETUP_G0) & MASK_SETUP_GAIN) | + (params->bipolar ? 0 : _BV(BIT_SETUP_BU)) | + ((mode << BIT_SETUP_MD0) & MASK_SETUP_MODE) + ); +} + +bool ad770x_data_ready(const ad770x_params_t *params, uint8_t channel) +{ + prepare(channel, REG_COMM, true, params->cs_pin, false); + return !(read_byte(params->cs_pin) & _BV(BIT_COMM_DRDY)); +} + +uint16_t ad770x_raw_adc_value(const ad770x_params_t *params, uint8_t channel) +{ + prepare(channel, REG_DATA, true, params->cs_pin, false); + return read_word(params->cs_pin); +} + diff --git a/extras/ad770x/ad770x.h b/extras/ad770x/ad770x.h new file mode 100644 index 0000000..bfa2a98 --- /dev/null +++ b/extras/ad770x/ad770x.h @@ -0,0 +1,118 @@ +/** + * Driver for AD7705/AD7706 SPI ADC + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef _EXTRAS_AD770X_H_ +#define _EXTRAS_AD770X_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Input gain + */ +typedef enum +{ + AD770X_GAIN_1 = 0, + AD770X_GAIN_2, + AD770X_GAIN_4, + AD770X_GAIN_8, + AD770X_GAIN_16, + AD770X_GAIN_32, + AD770X_GAIN_64, + AD770X_GAIN_128 +} ad770x_gain_t; + +/** + * Master clock frequency + */ +typedef enum +{ + AD770X_MCLK_1MHz = 0, //!< 1 MHz + AD770X_MCLK_2MHz, //!< 2 MHz + AD770X_MCLK_2_4576MHz, //!< 2.4576 MHz + AD770X_MCLK_4_9152MHz, //!< 4.9152 MHz +} ad770x_master_clock_t; + +/** + * Output update rate + */ +typedef enum +{ + AD770X_RATE_20 = 0, //!< Output update rate is 20 Hz, -3 dB filter cutoff = 5.24 Hz, works with 1 or 2 MHz master clock + AD770X_RATE_25, //!< Output update rate is 25 Hz, -3 dB filter cutoff = 6.55 Hz, works with 1 or 2 MHz master clock + AD770X_RATE_100, //!< Output update rate is 100 Hz, -3 dB filter cutoff = 26.2 Hz, works with 1 or 2 MHz master clock + AD770X_RATE_200, //!< Output update rate is 200 Hz, -3 dB filter cutoff = 52.4 Hz, works with 1 or 2 MHz master clock + AD770X_RATE_50, //!< Output update rate is 50 Hz, -3 dB filter cutoff = 13.1 Hz, works with 2.4576 or 4.9152 MHz master clock + AD770X_RATE_60, //!< Output update rate is 60 Hz, -3 dB filter cutoff = 15.7 Hz, works with 2.4576 or 4.9152 MHz master clock + AD770X_RATE_250, //!< Output update rate is 250 Hz, -3 dB filter cutoff = 65.5 Hz, works with 2.4576 or 4.9152 MHz master clock + AD770X_RATE_500, //!< Output update rate is 500 Hz, -3 dB filter cutoff = 131 Hz, works with 2.4576 or 4.9152 MHz master clock +} ad770x_update_rate_t; + +/** + * Device mode + */ +typedef enum +{ + AD770X_MODE_NORMAL = 0, + AD770X_MODE_CALIBRATION, + AD770X_MODE_ZERO_CALIBRATION, + AD770X_MODE_FULL_CALIBRATION +} ad770x_mode_t; + +/** + * Device descriptor + */ +typedef struct +{ + uint8_t cs_pin; //!< GPIO pin for chip select + ad770x_master_clock_t master_clock; //!< Master clock frequency + bool bipolar; //!< Bipolar/Unipolar mode + ad770x_gain_t gain; //!< Input gain + ad770x_update_rate_t update_rate; //!< Output update rate +} ad770x_params_t; + +/** + * Init device and setup channel params + * @param params Device descriptor pointer + * @param channel Input channel + * @return Non-zero when error occured + */ +int ad770x_init(const ad770x_params_t *params, uint8_t channel); + +/** + * Set device mode (see datasheet) + * @param params Device descriptor pointer + * @param channel Input channel + * @param mode Device mode + */ +void ad770x_set_mode(const ad770x_params_t *params, uint8_t channel, ad770x_mode_t mode); + +/** + * Get conversion status + * @param params Device descriptor pointer + * @param channel Input channel + * @return true when data is ready + */ +bool ad770x_data_ready(const ad770x_params_t *params, uint8_t channel); + +/** + * Get converted ADC value + * @param params Device descriptor pointer + * @param channel Input channel + * @return Raw ADC value + */ +uint16_t ad770x_raw_adc_value(const ad770x_params_t *params, uint8_t channel); + +#ifdef __cplusplus +} +#endif + +#endif /* _EXTRAS_AD770X_H_ */ diff --git a/extras/ad770x/component.mk b/extras/ad770x/component.mk new file mode 100644 index 0000000..a4d47f5 --- /dev/null +++ b/extras/ad770x/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ad770x (AD7705/AD7706 driver) + +# expected anyone using ADC driver includes it as 'ad770x/ad770x.h' +INC_DIRS += $(ad770x_ROOT).. + +# args for passing into compile rule generation +ad770x_SRC_DIR = $(ad770x_ROOT) + +$(eval $(call component_compile_rules,ad770x)) From 9e302c59edcbc5197d86377c4b5c5609f2e51d36 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 14 Jul 2017 17:39:11 +1000 Subject: [PATCH 177/349] Remove code from libgcc and libc that is provided by the ROM. This saves about 2.5k of iram. --- common.mk | 24 ++++++++++++++++++++++-- lib/libgcc.a | Bin 0 -> 736032 bytes lib/libgcc.remove | 24 ++++++++++++++++++++++++ libc/libc.remove | 13 +++++++++++++ parameters.mk | 2 +- 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 lib/libgcc.a create mode 100644 lib/libgcc.remove create mode 100644 libc/libc.remove diff --git a/common.mk b/common.mk index b35dbd9..4ece70a 100644 --- a/common.mk +++ b/common.mk @@ -160,6 +160,26 @@ endif -include $$($(1)_OBJ_FILES:.o=.d) endef +# Remove comment lines from libgcc.remove file +$(BUILD_DIR)libgcc.remove: $(ROOT)lib/libgcc.remove | $(BUILD_DIR) + $(Q) grep -v "^#" $< | cat > $@ + +# Remove unwanted object files listed in libgcc.remove +$(BUILD_DIR)libgcc.a: $(ROOT)lib/libgcc.a $(BUILD_DIR)libgcc.remove | $(BUILD_DIR) + @echo "Removing unwanted objects from $<" + $(Q) cat $< > $@ + $(Q) $(AR) d $@ @$(word 2,$^) + +# Remove comment lines from libc.remove file +$(BUILD_DIR)libc.remove: $(ROOT)libc/libc.remove | $(BUILD_DIR) + $(Q) grep -v "^#" $< | cat > $@ + +# Remove unwanted object files listed in libgcc.remove +$(BUILD_DIR)libc.a: $(ROOT)libc/xtensa-lx106-elf/lib/libc.a $(BUILD_DIR)libc.remove | $(BUILD_DIR) + @echo "Removing unwanted objects from $<" + $(Q) cat $< > $@ + $(Q) $(AR) d $@ @$(word 2,$^) + ## Linking rules for SDK libraries ## SDK libraries are preprocessed to: # - remove object files named in .remove @@ -208,9 +228,9 @@ $(foreach component,$(COMPONENTS), \ ) # final linking step to produce .elf -$(PROGRAM_OUT): $(WHOLE_ARCHIVES) $(COMPONENT_ARS) $(SDK_PROCESSED_LIBS) $(LINKER_SCRIPTS) +$(PROGRAM_OUT): $(WHOLE_ARCHIVES) $(COMPONENT_ARS) $(BUILD_DIR)libgcc.a $(BUILD_DIR)libc.a $(SDK_PROCESSED_LIBS) $(LINKER_SCRIPTS) $(vecho) "LD $@" - $(Q) $(LD) $(LDFLAGS) -Wl,--whole-archive $(WHOLE_ARCHIVES) -Wl,--no-whole-archive -Wl,--start-group $(COMPONENT_ARS) $(LIB_ARGS) $(SDK_LIB_ARGS) -Wl,--end-group -o $@ + $(Q) $(LD) $(LDFLAGS) -Wl,--whole-archive $(WHOLE_ARCHIVES) -Wl,--no-whole-archive -Wl,--start-group $(COMPONENT_ARS) $(BUILD_DIR)libgcc.a $(BUILD_DIR)libc.a $(LIB_ARGS) $(SDK_LIB_ARGS) -Wl,--end-group -o $@ $(BUILD_DIR) $(FIRMWARE_DIR) $(BUILD_DIR)sdklib: $(Q) mkdir -p $@ diff --git a/lib/libgcc.a b/lib/libgcc.a new file mode 100644 index 0000000000000000000000000000000000000000..b981970b5a2d62f39591c7ce5c0aa5b469e02a1c GIT binary patch literal 736032 zcmeF43!GL}x&QafaFrn$L`0!{8AinmFfiP_OGv zwVrj^YpuQZv-kVHLyxIwm^<&odyPu9cB97?%Z)A>Q<6#*$5G+`RBFta(PNVw<$Fa@ zv^0u(&y1peO;I%Xz9>5Ar6?+v?5LtBn*2f(O*A;XHAcysu@u6Nmw^x+2celhBz7XZ$N3V!-j@+8~IXj}9 zOO$RyamW5Yr$;$YrlOo@HbyzmKN98qep}-IESAsh-4x~SwVWYd*As{?zev)3t6{!|p@?YAz<8y-b@=~YqQ z%oR~y*$YwLf>)xv^L9je|2{m*yYA;v-fdH&yoV-6c~2EbdB2|*bvtlV)UEoOsM{AR zqi)ZpqHbzxx9!8D?$Py8_qoSJ-OqhI>i*~pQIB3x)Z^4UqaI&Yc>DCIXU?FgXD@{X zx4t93_YGsCuK2xluKJ|X__DJ3i|QI{OQN!}%Gz@in7^uiW`*dUN7@*0Zy1FruR5Z@3OEQQW5~^#V1ywbT)nu%wtZb~NB8`jYBtTKI zgnGnKbxx9YK~)mgG$mo3A6r;w@ zEiI|64qB2CtLh%(EvXDzl3`ksIWlf)ShQfSl*O&7TGCXtK%JNrPD_%Luhu3fe13fb zi{?7bt*feND4Sa`cV3lxuVPN4Mpk@^MM+wnY#VJ*qEYAFWKbegaXui^|5(A^uA(6~!TwGC~sEg67*w8p9k{KRqgJxA z#bs*uxynO|IBKj8IAe_!WsT=8n46r1MhUAHRLrTXDyv#jHFr@{Ras+G#oV)_vQrl< zu3b=BHm#~@+9~1DLyh* zYKUcY&DLmb5tmgrRLqZCs`gedY-mY%N=0pB)$vQ_R@JvsJ9S~h+^Wh%Ste~&Z+RB(K<=}+|*Dpm#NU8rZzTJHCWAR)o*2U)CA5? zJ8^BKZ3Jbp3XN=?*qrcOCtX&Bb^RSk^` z7gW?~Zk3%|EMe9BMNM^$Wi?eztojXAjq&(Qge?`ByKw$|o%2!ITb$M#o;F8g$GE6` zuVl!NupvJp9`Yj>j@oNcJm^PME*>+Yy0Qw1T?U0oZr?{0YqvC7JF4LS`0>aljGvgK zEZ^(G<7Z6G$;pY_qdNR+NhCp7S+~O#tC(X zMvNUfapbsBb+vPJFlz3?1=Y1Rqmo4=iXNux&8Eg4-reneGW^{AvD;{PMm5p+g%t;VV~ zKS-JMPBiUfr>070rN)dLGj8PQC}(L-LDa8DK~Ddiyk3KQ9n@H3gWJc7yyaO z#JWV?rR^q;IMRC>?G~eGWaD}Bxp0kaY-&itc}`7Q>!OkI{%hnMO`(xV<3_S1L?auj z>MBN7R?S&dQ&v~IpsJN1Ns&ZW%$d_rb#ANZiUzINT9XnTOPWU3H!Q5DG95dOf>x1v z)^Zo-F#!UX7xfH|m>#{ej=dKWabCpjO2*{{eTp-bgg91ImF1f)Y6tB234R) zyth2o zl)lRWbFPn2Q7!Hz9ciGxI`yYjhCKHrHo&h+V!$j+rqt2YfUY%VM)9$ngJ z%4v_kHDP?t;KJ0*^7?~r?Av_(tnyTO{lWM4ZH}S|Xdi?68xQRIe9r;fjjx1+d-P1x^lP9n;S?x7iqc$8p1S5>3NnbTU%al8G2gk zmc(Y#^oVtK>)lgnVx1lDBPw;ucJoTl9%$EFn}3FVM0>h&zvXCiSoJf$Y;p2<{&>qp0xn^newa|$jjwfn_#aSX?C@DiFYUO zp$$yi{Y$ta(pFlSad~ksgva5ENqWCZCu#DcKAFU#yp~;_$7>sJDduwnAZGx$?I346(RmTt7tg!^aoG49;CzR40e6Sr0V6M?{yu^G1G8nt7iB54PG;O&UdgO1%D zp4RTgyq(fg{i{t!e@1I|jzSWYubA5#BvKF^O$~WqW z{H*qrh3@SA^H`ma@M_@t%94jDUEe>C8)vqx&iBv5)m8=~W1lNN`{xUCQ$v&ObMeeq zlkM|G7SXb=#R7K6^-%N|m!ieu@R^Z`~yCtCqj}o8+guvjxp; zJ3HDi`*t_8o$lFc(~CSz)4fe>qB%*EY<;`O<#uU{dxARreYwSDz(zyllexyMN*q0s z?R=m6K}C?BkTtJRewaLS5oT?6`IvxNcgaVZql{UPxRz7q+-P z`&oJ~ z$SQI6ewOpjwHGk=Hh3oP`2v^dT!yc9TO>Kpe4~y!+cQ3{bnWgL?HwH7GQ^H?|(yvRmxf*s9Iqs;m1pPZ*z{-#;;}{>|IQL)3}y{`OaJ$Jk(vbGKB$ zSa9e1CQIN<+}Gs~4+M_c`_dWOm(Elq?Vu059kk8!2%}%=pey^*>!qYv>CwkJ>-x&Y zp}wDLu^u3qJCDoWmo_V1$`dI>CoX$m`jpBolALmPwJ+_b6LUQZ%z3%Xbxd8;CU2HL z(xGox`_en5Z?)wiaD9ZTdW$MJ05{!MfWj-)$co%J$eVgAA+a-hR-QR>>CEI1&&1PH4?pi972ll&Rojg+A z@xI(ts@?7FE9sAH=le>YcQV%q8Onw7tk=vfxJcgRhlxpxoa-@;H3h~-g&bQC^Aq-R z<8^0`JyJcAxZT+^(uclhOdiQ3I@s&c@0=%?^TauXIe$Zqkr9WS^G6<-^R!IfulcLQ z?3-{`$-}IzYm6BK|6xp-8;tW6-fq0NLe^>W_E+dONb2y2$pnHF%I77= z-S{V$y+^x75z{5-I!k`iajp-xW54ds*Kz1bi{qRy?>kGEy+=b|SN3Q(DcxV>-Fdm$ zd$gac;>}7#JLm&%$853Z5k~8D(3L&fQ(EYXl^%Vx&-ImyLw#S&)jX5ToyTSG(Kaew z$`dI>CoX%B_NK}$lALmPwMW}3eM?Ya&dXh{W9phVc}kr@I`r*ok2YN=aJA(jaD9X- zs>MC0bQ^Wl*&c1BD$&6njnDS!b3@54tyA0K*pl(7*meHA`94m(>c`mkJzD?G+ny}_ z$;mHQ{OO!j`t{ zx{?t+wv;}1@=Fyv&gs87_4eP%EKvu(`&+iHIqkpkh!yXUz^?b<;PJ6Pl1}W5$$xB% z;ait(9}I1dnUwwpW)h3Mx0My@%y7JgR0>_Jw(A5Y!;XhYiDQ|1UvBr>+w0L8+0OTR zLlr^i5$+>jD9@Z=oq|1Yyaw&ruc=28w>$ea`mklcW-A(6xW2OQqVKU^!Swwy`5ZBB zmHe*uVC=Dd4~AW1gQaIb=6f*KR@Pzkd_bY^!C04l561a^)Y9yyaEtN&3VjboeV;Zt zdo$mI4Ha)QIoG4#7_&F?Js5j4--C@1@31tq`z_-!3Yo&xlYVep9s4x5)v-@;TiwxO zx7A^{b6Xv@Yk#k?RP66HP8N?b{ZqwU0^Un|KUJqoE~QjzMyvgs&r=j|O~-M*;Iuq$ zgAN8M zNZP?U^mfb^dmdr*TOD*||5hX=#Y&Gp);ZT#E)MnmGPi5{w;f8CQeJoH#AWZ_W~bryPRumov;Yi!Qb>Z_il@y}-u}-jm>!UNrSWd|kwL2e2Rr1)y*Th|1 z@+G@M7D~E&iQ8bI94wxVG=$_h>nnq$0sJ0$VM;j*t89i=-$X~Sy)>Ds#%u%~q0!uYe^UjWQ`9Qmnh+T>mRtalG7Xm9U% zVwS$He%AZ1(l@~BK;ZRbPw9+&&u6{q1#Nqhukq^oHFDzEEuc7o5*HA*-o@;2*5B%Sq?@OWo%)Vw{-q-Op^eWP7!Q^_g#+YmAe;Bg|-(buh z|5jt3WBxN7`Yoe!sF-VpUvrNqGH`x9$-d@xlrH<4OS-OHbNNibUG0>cea(Gb z6`iegoCEd{EWex^?zOzG!ssv^bmf{mND7LT9({iQg}zV7hx&$Ua(3mK%lDzAl-FH6 zk9ANhPhHdUxam45Qb@Vn`w>UE%jLsz&yYUSx$`*si#%zIsM7)I(1#x42s!6|ZiUhL z(swyv&h-&0s>StEChR@ji+cUw?EBKMD;@FfTwhu8jhXM#HTQ3L@b=!g=Kg-qHJ2|m z+r6(T+jGtJS;(9ZXFbQ^oe;;&MGXvpSml zF#3f2q~rKtJN8}LM|2!II|Xgtv*;+@Xk`v}c%*CZzI(FduAA~Ml79#==W*HZS-h!= z)+r6`pbxwqv&EiA7#*X7KLX}F?j#+PCvEb1I^aB@kGbvo%Eg{X7?o&o7yy{_xa{|2 zrz>5`6Djoj?(Fw0)~KK&#Zzt{c`x@;vFjE_^Q4dWC)|15atX+jwg}!oAsza5^`6BB z>051i2wWebqFUTo_47s@v2WbfeK+r8P=9x>ugrdy;vcpL=oaq*hAk^DzMDNjaq8~k z<3|6pZvt-a@+M%H=I=o|JMY6yKzn-tx+2?kwg+Gi7s`9yJ$nGZ`XoKMJMW#+hnYP< z{KGZx${t{#>Om{sjpx;@`|tD~z{jRk$JYhIx4Q?JLFT~untp_2jD0QnvFj*Z_8x$A z6D<#c>zf=f@)h#$9K(>Rs3aT$$_vuFTK-XWs%m z+~qBRK8Ui%4v_t$A?@t}!uuuG9b9L7fIW7AY&-nh-viM9wg>Q^tb14X0DJ5JnfuOz zbxyc0`?bBJ`}^!YKu77a_W-2p${ye%rF$p$0DJ5J?LUA2huHy=pQ7|FK&PL#7*otI zf#Ev;yzCYXAR4gP!1%nyzVWB|qot)Xixd{W{R{sWr7bsFr2qejp8~6`s;ZhWZtRH0 z>a5=a8{O&wKyqn+Ev}mWMSLhNacs%o`Mdj8)!I$<$$Qkn&wTxTeh{p^YkPce?meTB zA%Y`p=`oInBTepSuzPvFINZfM`x&n`pT7CKy+N*Wcju?WG%Z4F9@E5o zB5t;hv+eZR&*4L>9{EG7F2`YSa-5$iw*PH^tAi&i8J8zZWvHQluIj7L1tmXRo1`0H zMK0H2jwN0tZtuCkwI*j*@^`zh54s@7m{xn;xCeJG3Ru`B*WUZ-;aPJ&RNCkc-+^&m z_3=wVo{l=eX?YyBbLz{p5Jm@a9FLMmpI`ga;?Vhd8Ydy;be8TYr3tz!F2B8N{|u#b z-NN{@N?!uZdE7J|hwbR4gJQ{O2jzG>&JuebVYH79b^zu)?hGA=`X&bYm<6t{R_u9D z(MO%u-u?giS?N+rmm-5XKR1hY9G1(oha$;n2j{`d#XcXFo0dM;p{SO)%PmhDq1-Ad z@bk-TbA4YHhx&L%LI1h)xHS@xCv6ctqws$2XL0D~nShT0k}i?Hn*npKk5Ex9E~QLc zbwnR}d(lguhx&L{72a*QzWCRyNtfR%n91Z*xvlpSOD{}%W9fx8 zk9DhWC|K3AZ}SM56ryP9xdrtl#ZMfgTv3I(siFAVTi&Xf^y8Yz|C3sLaq*=WUpiq% zP2TYGlGM_Yg5rs#OK;iq#&-{m_DbjXUVXJ5Qe1gdVd|EP7awrq6+NeNA5yPWN0!#) zb{o8M>T5fXDx{41!h+PHrGpnwrE_X>|4?3-S}M`-()wGaY>1RaSFKN_5>=O8xA(KP zk$$*sZNZ(lCAGXuzg1B>c;&j4IsaZ*GpSe4Pvs3RT=jC_=F}k>rN;&0FUQO;Xt(*DlMAucz)X=356l^Rh zP7Mn+UV2^1+x^Is`p)G3eUomh$@|ve#h3hkCvSq(FE6-rW%-Wu(#uM3xq0N^>S$nk z^~z<@+V$#*a@DU;9rVQSc6v_?T>Iud-+gJwB^y6=<0Y@{oWIx9?K>H+DS3wC8N2bT zvR~H}dJk+RAJuo4wEluSzO}@^5jo-TSLJx&q-Sq^a#ydKWL`cAzd0rRp^oI6R+88- zeOq~`A^iD}Bv~LZasT<*MI*$mrQ*U4gNKKr0m}6xA8I>dc+!9_W-eBZQI5s zlCV}`{X=@2<~s zdm7N=Ey~m(Ntwu7=gPDtsbSmLw%U?kF--n(Od7W|!3`^Ihp8ZDiZK*W9TE za5rxTyYQQl|D^YtbVlg7NZ<%PihWz5JRy4_*!MQb{M`!V+3%jQFG9Y*Jg(R9arzHaX09 z!r({)Gd7SniB)9G*NeSxZx*AIG`EUzipt8y>XNdGMN4F0X^iim>>!D0k&=gb%6ESCl}GOYCW_oAUPW7fkh#-w?{m^F>>8bc5373Tvcp6?xlo5lMZv$hN|W{u)|;Yq_ug%28IWBH~rW1Rk{EXMeg#s@0= zp)u>-GscXgpBXcbo;N;RA!8mrBNcMaV8+*WW5(B?j3+46t!|v=D23gXmh{Jp`xvLi z1;&iW{fwuIKWKb{c$o1=#D^MxOgzf?WbruTS>mIO8P}!8XNnmc)PecU*nrE$vyA78 z&opKplo{8GtBhF>&NgO_oMT)sW-OtT`Er3VcCd?#KP|q@n6>2d#>>QCFkT`4lJTYD z^~V1$zQvfabC>aI@x8{3BgQ&)xK{ivW5(3CjjtDf&zR3#|CjN4@sEv})4wpjMa*v{ zpz}8I%f`(0KNvIjUpL+;{)_QF;v8Kz$je&M)A#{#U*m_w`xrkg-rx8?#RnR15+7vD zSmt+V(fNdUv@z?-1Y_2jV~tsVCL1%}PcZ&(@kz#v{Zoyf6Mw>(HLAk+7vdV@ZQ}XH ztWk}|%#ZVo|DX6mW9G`m#?9i(jhQ!B8owdt`-y26Yv7lS|02H8nCr}K#@&?eYsNjr z_Zzd0K5X1qyxEv_^gG7biob8ncRBvZcz^Lvj9Fj**Z4s3uZ{VR$KM(sB>q3+;o?6U zvmXD|nD2hf%S+ldTFmVhZ7h-B+jzWqU*jXigN=_74>dkce26h~dW7*5afvbW`$%K1 zy~i0d*N->mw?RH)%)CF@nCrvo#;gHn8FSs9Ys@vG)_AUXp)uE;MaJ{QpD|{gSZ2IH ze5o;O#udg~JFYfn{a9=KY4HultR*)YUnsuAc)9p))$lvE#i+Fe@{Hi`1|5B zjkk)+jDIAqGJaNkw((EI=NSK7yx91E#TOVqFTTi_{ljI(FN!~J{QtyXFlN8-C1cjt z^~SG?Z!vyNe3$Vb#rGPs-+0jYO)-0jR?qI(NXYe*&rv*XfV^{@o_})LY4)-7#O3tn zf8w0ki@2Ua0T%^a9Plv#PY-x@z~uqg1-vBS6#=gfnCqO^=hlF^4!L|&z+5L>&NaaK zg@Bs_ely@+>KjkbUe7rd@DTw|44C!H)3Y`?e=^{C0kd9snxz4+3V2Px%t=qbG2ll6 zW? zfY$|lXTV<%`0;@Go_^Q)^MG}#yW|EdmAWRLcVrkV&%AJ_sTsRN^*>CP*6~gR<~&`I zj^VV)hxe6TOZD1E#|q*&^k+ZQK90!1x$5j^+8w21zuq&*Pr8Z0vFn>5nKRLgm5$G5 zx%0Sb5`^tov$xuzwTO054so>OEP2l(j7k)_12E@tXXrT8*K1Jb*)2#G%e9#kBz zGFk83dEEIDI1`svx)fkehp}TXAC@~&3=qr%drMbn;?9;Vp+B=kviqMB% zKlIY)p}rj|WQ1hyynbc#_2ui;_G1#M&cBa%-1rG&luWMk_v5zpS81vQa}Eng@_t-e zj9+@;&Ye3WJ^IyS&pUs)?$z{HzPlqjAg#~P=MP%9a?=wZikkIIdUWaa!`5y0xRUkx z`>$KO>5@TF{iyE!3UhjljhZhicxq*-R2HT#Ddrh+kNS%WR`nW@SASu5DUV9isY90a zI4o*jUU1sVx6aWhAC{VWa1{KmMMeDhyk^pUHIsjmx^z+T7Z(j&^2Wg4JFZ)~UiYGf zsda_@^muulzR9l54`ArWF53J3i=xff73N=)Dl1)eP@gG-SL*u#$_tn2_c11|Tbf?E zY0|p4rhR?Xv*+@#yt-iE139aCK(6ZcTbxs0m}>R28Id|it+?cko!736map5ndU(zg zukBpAwEW9GqF(7Yw(JwlS+57v`Mn1IarCYL` zmM6~1Q^L&uUcqxTe~Ooso5__tJxu;5W$n5L4i8G~+OL=-^~o;R+Ze`XI6tm=>psl1 ztF;`>;Zy#w$3hNsh4Qxj@3C!5L=yIuw<6QJ)=y)Rw|@GWX=7OD_Qq`{Ww-3N1#}Ly z*?CQiV{#?w=Bspcmgs%?+*5tg?r-(cA)(`%ha>c;A>u-LLLAq7*yR%u${~ljW|F>C z9)}#}x{CZHd2}P6X(946&kM}q7 z_v^Dan(pr1c-F=^^s!^l){@LATROT+$kQ6Rs_X?jnQ#AN%zVT4OM2!E^@eFz zjy%j9BMxT%9BVvV;dEp2Ete+`j%Nh48+WxltQEi0=S$4@J1jk8;BI5?8T|Ru0P#0X zK2YIf#``OL(wMf>UdrWJ(=*2O{m+bx6h3c!h{6|*4^xQEoV?seY&R}eNIQ{_QRvT? z7$<{(Nb(c(kQ?T7XPp1Wvuw~CDu59zBEw$f0kyD*q<*QAok}=%wvDP6z@gylJUTt_UB7nEByHq z^V^>6z>Pd})l>pD!`*{rM7hTYtWEl-Qpy9V_?*}U$$9nA?r|%w% zcWvXh>oqBJjAQ+#b5Nj@b=>u{Mmrx9@brLZ2V5R-UBIkgu4hHSs{_71;9CQ}FW^l9 zKNawE0W*KREarwYvN3b6-E}iK zRAHEIijL1hV9wJO=@?F%d`)ky?MkZPu;--nib`)tN^P0vv?VuduXb0C|*DZ`rSDGDwIgdL- z$DzJK+5j=O(WfqI(N`<>Ji_QCO)%!0JC8eG0%zjpDP0OMXHzW7wlPmvxkXAtxzyj= z5zhn5OR!Sd)Jz6Tkev-L!ePxxk=kAt`dCY|I zsn~UHW1ek|8XFhdfsHw_BbT(XBlq~AUSgY6kS;Av%*itLJ~gFO6EFS;M)^XpS7nw`PT9+pN;Lu`^6Cx`X7Mt_^=k^ao^@^ zd*uvXAv5vRKkr<(zEm2XcmsQJY%MN~KDB<`I$4WXjfsuL&-Qq8@a?iepLWS#EbVW1 zCOz@?KfFFbBjP<^JHE50+fUoG!C}7(ZG5e5h}oY+YMnC4o3Y|0v7s$*_e;#KPg~n% zTl=Gzo2iMXLDDm}EqYBd`V&c#H%XuTPi&)MY};15{WR2;Dc#FLlGsLFlIgLwlH}7< zq2`d2^Abwh_DoXG#JU~!fcH- zyru;zSyb7UCytHm`_!sCB-0(<8!a|T7jTWi5qh7IuTY*48P`{>;_-C{IoAQY86Iy; z8ul@sceWUZ93~|FC*^S*!~NxvFOYYg^M&Ue@ zvp+*8X*joEG-glvI;`}+REXUGX8awd&{^Ben3-2c7>`wmy^b`@nJQ!EMq?mfZp{3- z*qC|pIb#J8Z9ormlKm(ARfUfjGdG?zX3k)%Ar1548Dr}FQ)A`>ain1mVC#Sx>)0`1 z=0iLu6q0wS$zkg3^XLjOd2m@B2c{J4#_Onj!v=ZM`#%NTSUEo0wpv}cRmM!P_~*zz(CFED1zUSxc(_%h=q;?Em1 zhrVEZq1bJ-jF*lo1TJGap?FWpA_ zEwS5ZH;dgy%bax^?RUg(qh%hujrJ+A+h`f%Zlh&>yN#Cd?l#)z#BQTyuDgwvIa^`% z-zIh&?Jvb{qy4qmZL}|m-A4OcvD;{wD{iB07Q2o1Rk7P>Sufp2%R1vW+P{e1M$0+h|$O+(tV@>^9mD ziQPs!RO~j|BC*?O4-vbKmbIT(4=9s0(`~fH;(bhBB4+K|W7pK@&FBa92afsUyeVMD zy2}~I&MySam~;7?0skx5HGOZXX2td*!Xo1|2Xei7Yn^9|i8UQs>{Quy&GW3U$%FI5 zapGR`8lti5DBV$t4R>y&n`n6mTp!miXXJP5V2~>h;--na$*1LUmAVNS-aTmtRLSCoRP*A3{M`I~>W5ve z?^KEt^{shqe0^iVBXMHg!!{HQeDEzY#@{1VGfD9S6@Putd?{*)kC`u-+ArtYhUk!z zB=>}S{z$58b9Y)%{qytchg}rvO3FI_)r_u$y)IT(Tz*)Wma-#w|V zV-#j6f2}iQj8Wlhscw?Wn6nbI)n36%pNYgZC+4h7`cRvjyolW^`xVBlujc7oLwknP zj4`dP0Wgsyt!`c0>^gfJv(34!b9G+Bf5tY3=O|YO$o9yw~|WG21BQ>`gq)QZWwwOXd5^ljbUU9Cf=!q1Wv?v6pqTnEI0UR(Y@6Jz^Yr z?^Eb`zajR#Pl!G57P063??C=^kbaxk>->V)+x2U)x9g=K%`0MDFL~J8#eE`1Vaf{=4G+>2rtS`%{I!Bw%_`8aeu%;;q>#FS7!a9>LTClJ| z-@r2_9%KHU#sj1lyTXSQQa|L3JL(4aQb@gE<_&d%*&kCM7#%qDur4v4VcLASF>4O% z5%PHo#|C_yG4UTUW}RUT^7OL|> z9LF{UBO7eYTCrSt-G*?57#j}mYI&G-Wvwyi=LTcO=}pFc6w+SOb3MA-nClE}N6tC@ zrttuUj~R2`pETw@s2>_LuH1H=61(lXQ2e|+IuBC#qVaHrzcW5u;dW!j#-EHwE8J;3 zR-xOjdCupy>xp8wT{HGrD=CYy=Ck9}&Cln(^kg>yyQ$mVUN) zn(=Akj~bsLcH1@M`Am~De%*FGN9?xiO0nCn=ZW2ReYSY9a$C){@ZlGtt6|4;0;Yt|39UH?Jsw(D2LZo9^g?Y8Sb zirse2+;ZFXn_{W=z~uqg1-vBS6#=gf`1*jE4_+2y-FZ{MPX+v3z%K;c95CnJ z_58i<&)D$1tfqjM2F&}eo@PzJ8v@=K@W0Y`XXsRP$#K0^7sT^|3}fXPtL|**$9u{! z-3%r0dj-;Zx+3E=Lb)d0SUjza*l#rr<8;i6QS#_xZ-L``ltSl++4lL4(jBGD+D^7O z(oJkRO3LDpdb@6pZ`Q$|shByBo2Fyhls5TvRr(bPXb0sGM?21v_dLRAog#Js<~;5U z9f$hHYBR*#M<4qr*HG9>ic|3LVfJ4h0QcF)S(04%0 zoO$KURC)bD_hJi=>L(Sf>Xx6obZSAL*{S329nnozYT37GXG)$n?9LbcbDez;SgM=% za!X@tD{IEa7|J{1#CjQi!MfXfLrZ2h2bS=TZJ25G>-*7$IYjMF<`y$HacKt&J%*6+ z=g#ey2TOnsLgpW9%%Sp3g+lpadB!j7^N}<#I+3U4aq;@J=Xb8ukA0F3vH$;|-?_4t zF)0*V4vuq*je&E@d4xHq*a2Y9;}L;;x!Ct;Z`bxfIo#86k4`yv8)Gx&-VOP_3b|i{ z2Pu5anElU_#@HKvXgpM*+a8LHMGz1vM*qR?#*>}A~cFj4Hb z2lg&*d!T>zRvoG5hsE*z$G^z^ikj0U*WRAg*A)~vb1u|PEqhn`G%fGW({cXbv_-t6 z1NxagMy@<@jG^p3=@Q98M_IV+J!wbjviGEElYX!<8v?eP>vnw8c%)U}Nl}ueZGGs}*}5Vf2VPtt)#{zIQK026ORx zEzaJPHmTeq$tjof;N`9shvha)pX*RmOI-GzbdB_(2YtKRlkSkdIux1nvexLBI;2g$ zLHbCCzJBsvzwA9}r53-NEf0a~BUDi>E?)|^>Zr3l>CcreT-jY;vL~(V@}9J$_{j08 z*meHS$W}U7?PzyTI^OoAPmjHMz-0EM6WEjf=J9=s_4Q$S&wepVrOJzo%U9+0DPboX z4O_1t37h(-oxV>!x8T`RqGRLtKKe}Hjg0)fzh%Fg{C346Rrp=~jnfT%-tKYFVEhX zz2A$*wAJ_C?8CR4oPO}VH~r&#Z?0{=_nsj3y*GXD&;980{ZtNRrNx~+_oH9^x!;Lm zf9^L!?9cr^CN4Fd^uIs%J4Niz{bq~(xgY1(pZl>_JInHZT+CeF^BhB+&_(yR+*9~^ zNl~onxFUHtEswiKd+{X-*(2u46UUs*zNffGve4<2#xDDwqN8-#_Y|a?XgUa7ALGs$ z`BU<90)ZprHf%?}1{TjjXh%}Ltem+)hvc*qs05a@G@Qftf=sPE|p&r;{;np`NVXX3Ye5-J>&cplnR-xT{1-c}3 ztO+?iFlxHtl}Dz}n7!o-x6>hZzTckHEP< zz~r27_9LE#W0>>3T>jm>7od($%Cq18pu!&-rxZS8JWS#4+zZgw?Ur}6LcbR%5&OLW zedYH8?4vrn7dTF7{9b^*^>+X#i~SwIxS!Py+A>{ozZc-X!0!d<^W!YdN#Z^Gd3C~W zxW8pT?`s;x`TARAoJJ^DuLW?nLiT65@}y&aF{X6d*v`c6G7CK*4#&7+&Fm~)_I@6H zj6-*>kMZJ6+-CVHfxvN^MJb1aQ#bLPZ^ z?L8=n@^e$emgz}Bk3Z>mN3_qcJb!!g0ncYA?OZxuA3oK~F3FPu{r=^5;t!f~>QeGF zcXxLB^~&%b*y-P%|8^c3ggf-ij^6k99mOW{WY6Aqr;nud$0sxC{bQ2ZAAWRssEu5q zo;Xd%cLrzcyuEMl42G!jTvL)&B8K?0C=#3$eM+mYoM04m_MP=^`}S6%JgtP z&o-_RFEp+d@42s0C&=9@@8kTwfHws!?2`Li?tOesrl4+CT9I+uj(@HT1p8|CvaIW* zV@=4u_qkEB(CM_tF8ki6qjcH#KBQwkap(GGNZ?EyHh`u;;K*E{u4#E(od(}FMbeI* z^4^Z@dmlb;wSx@iT;CZw4)tNjE|v^^y)BM@VVrv&VKhyP=>Wi-$DOZZXQIlLE(MsA z`q*XP`<$jPSHGl!Qht;#uN-Ivp+Zd!e6&c_RrUuS%_I{DegRXzGPr{dpceEW|shN$!212;6U z>V_tKV9?vXIy$*6;6|bK&k-Wo^_%<2ZH?<}n?AWsN#sc>8A+VC<-3Vl!-+4HKSmx$JWPn(^>e(d`+$b3x{8ra zRZE(pk(Cuq7178!jg8UBB~4We8Y@QDE~s7@jf|62R?S&dQ&v~IpsJN1Ns&ZW%$d_r zb#ANZiiU~>HC0j=>sZn>vc6$qJvHjkX>hfQ%WJjzunc7Skc4@0i!)jB;&0Umk6Ao2 zuI>E*cV-!vr%%#{HRzw46Yt04epE7!^&Jk?taf@jp!Lp=VvcLaKAW`@2Xns2?_3-( z*IwkDyXEq}U%5ieei3)IJj^*?YfLZPV2tjYjP;SKmiO}eitjc#^?A^kYsNQ?2P%Bb zcz=aY8Z%~pXndf;XN(zJ>;b~^3%le}N<}q%6mt#qxh-s&4eU=D z6KQ$eQ#zm?oOkjQM>`I-W51>^(Q)Xk$?>x-##LwOxYzP^3O(p!OuKV^lO=E_ZlioE z5IFMri?AKNG(9IOl6KGs-j290b?k1d((Ld9g{}`9OQ z0KlBbHR{-zsBKD@0?eTkw?IBDw_fEINk+MSEROSWseGu94lkF?oyRSgAk=q_^p#77 zKIXZ%BYXc>E`6&N@6PoRs_HGSS?MsHviR9_7UT=sP=h-w$< zbK0uY9=oJ3>_CB^hoQz^T1V*)QMzz`ca-i3r3>db>Drs$+2gKG>5i0l=k+5Dd*)Uh z&y=SOuEZUUJLb0Q5Vmkx<2emYcF&QL+cWOM-rY0qe9XM#nB#@(KA_YWC&@f~kvm+gBc#pA|sJ=Uia_qy=-8B=p|d?n`E{ckPT zZ?5G-Y?GPnK@$63YI17eHQn=jUZPC_{B$?{V&Ah@N10DMKJu&d_Oxt%sgh+;;reJg z#=q2D-f0+kYIMrFoSD_BQ`UXctboH>TLG^h&v$v4&2Y^6{M<>8r!M*Z&cD?#_&K%l zJzyAoq;K|{4w&f@^PrpfvW%;M`?$!3#ExB9DxQ^_WoG)B!yCv(m+bv^` z`yV?b=b%9zE>_5WBwVi0-%Eh^mG|^~hlexyVa_%7Cz!Fp=jz~cg*?-SIq%Em{nBuS zINRn)`D;ziy>ELqPuh5grJ;^@8~0b}Hc#s7HqSxg$1DwF)@`1&!)=}^@iX$&hc^Ap zxJcpi#@s`{XuP{N&+*FV??7|?_IIG^Gygm!c22i>P7?dO2=u4Fi!fd6?;?Ce?C&Cc zOziI>aDVOZBFqw(s!gtJoGJEq5k4XIcM&*O{w_kf*xyCq{QA2HHDZ4k;Zx#s zO#giGV&jG43yc|G7a21KE;C*tzQXu3V$SzJn_ah@I;#yhY#`3G&3Q$@!Y;X#QlU1q z|M*&of^PhiV?4uYdE5pq6O`Rgp8UiyUkd?lAE-HKJa$T4)O@2&nV3fz?`c-NynkSiMqhBzR@pS zYg}Ks*z*XZMs?5tz?{cr+kts*pYlWsLGp4hjKQOmlhp>gq7F5+#wpc|vw*!wU?)tm;%n3F^ zet(*LXJoXrRLg8h@!Nlov4Qr6YZQEW8rW2dG{XQjrB z95Zg@=qP7tPC?YKM?p@1y*o3w*FnAZVJNoynNm6R3K zY2|m9>KwU$(EHiRYLOJ#@^1EW9s3?_mDuk^t}@mV5M67`9t8h)*`Ed*sonWrb5*BH zj_WpKl=|aX*L?hP?0l#=OvirC$8VUf$nvBS%Dt(MVvo6xJYybx9FLMmAN`0+$Nw|` zeBO+ch;lkhm;EklT6x;rbIy?5bqnMD@RtB{9yd+L)HQALUOFfi(+*CFx8p3a=MhHx z=%Bql=NXnKO(Hq=V6Knrn(M0-hx+=c)7sl}o}ZO2rF1FD-1)g#ECIUH7BNo;MPk~) zdGK;qi^Fo$(&su9)e?8PvZX(z3#lMH4;#Vv_-7Zf%i*4i$gzq zP#*&%T_Sxq1Lj;Gp`uz`N}0Cmh(7f8qBnal!8;G^aoxGTvWm*e#zk`~t4q4}F6-#x zu@lCpaGl$_HyotWRBr3NMDvA7&o^IK^X*>g#)8!1)WH3szRkyW=li8+o?B3VYVi}? zu16KxCN&mcd&^rjlYdlm{Qnd;-9K~1{g+NyT+_X{{M6LUQwwH(qIBsko8I{DvC&@X z{NAgtS(ZM2nZCjL#KMo4OuHv%a7poo`xhT@?iD?s7#^jS`je$KdEExDocij{Bt`C+ z$8xZZzwy%@QV`v@KK+GdGt*b*cOUrhU)HTnP5s?Yowt&L;$un&FYcjs)Z{gnm!xJ& za&&3^ttxi}*{)ije7f+&!kHyYz1T~y8~yBUdJA`8{~pb23kDvkZxErJfn>O6ed_9E z@dp(Le(6n>^F;H`r0sX*My2UQ+2EC1SLXbCNzLTFdVZ?=;KJ*_a(!>@y>g4k-oL3N zr+H<;(vno>-QL0aHpH55cQ2*35=ZpmxMF%!9hmgzSJjlTKYv(r{By-kH_cpe)9ED_ zoW4(KP4|zs?$VE`rdO?tTKaTm$);)dsKa)q3pcG^UB2qfKC@EeF6vWQyy2$B2V8i` z=xExQafgh3Fh8$wozA6dV*P#h;FUdotHR&-=}Xyt{Ac?3<()Nor?l?XSyuE_%aXpB z`9Q(OQ;SnYn~KM6I^@2bJ|$V@UwYjMNnfARlfFJrZ$0~YtLc8{;Kfh89G5>R?E9JH z3kE)H6=>C8>5B>;8C1R_y>wOSEjNE`aCI~=om#nUb>XsT?RxcodC4Z7fPXJ};+N8y zvUjWL|MFMUbDr3@=CHvJJn=o{S-pH&bm;p0-a(cg&+eSR*Cl`4$t+FDGXr<$ZJq~o z340IhpdXF+e#h{^M27uqT#`o>{C7zvP0!vvBo7~ygpV`2x6z!$hUt?BD`BpXlgB9G z!xxXu)GCP$AIf-o()4UohxTH#wIyki$2VSLrq!+?ktBIDvE6%jSGjG|^oZYbZ`<2p zZ?ug~^mv-=vcgukt|uuySEg=Bi#jUB>)f`Ku%*Nf)Xf%c+;vKFB{ghYH_wX(A6FS| z?bSRJo7A&=Tzc~Dr1{2~mL_Rhmz!xt+Xr*I9?9+LL0ckkueO<*bd3g>M)!a~X^1BDSuBV@`OuLfV?PX=;VQ;jJ^>RrcrVKeu<6|SypR_2` zuCO0k*Pk?Pb+$e4UKZ(l#4~r-b@ud`_O_=JZQ*0pu|Nk4SdF8_YtOzEDNR`ju&h()@~d`(xnWY5}-i(c&b)#}}}fHXGD9fg%+?8u2D z$Bjyi8l&beTu@zGV>XXbwN+JB6UL1l@g6p?sP*kVo2EZP$1VX!=$!@^nvCQy_ar#( zWnk`ek^4Ora+v!8|^GOVx9|Ahdafd_kQu-CVxDTe_xEF zEZEP{b7HUOPmM|QbFrU`{};$#5&L=PGmJRW!(O-kV(MHdKSJzfO$^dZ5&QW%QS4=% zA=Y1<_v6Os|74KnQ-Qor>}6dlR`ufg@S9NH&sPQMuMzvX-XQk2{AZA6lbA9K<@qcH zj$_!*`%{4&=GM4Sp5GC~ksihfi`>@((d`Zr7CidO<9c9K%%BsM3Y!``{Z#etTZCO)fN-3*Y zv_!9*Bz6@$NMc%~0#V`%H)TNsV8#A(|1kI*nZKN^&wBk=wW@}H$P$K<_crxCcm+XoH_XWfVUezqYy_L z=C_KBnfZFKG1nvNL>k-?@-S(zhr+D?T$|uJh1e_Ml?p#;T%oYim}`N*%kydRXHC9B zA$iCP^L`CXA5sRqLE*QIn-%`Zm}||?j5!ySLHbt|{>qrO{bl2{nEa&S`htBO=DZXd z7b`r-nCr`7#^^c17(I-8@^W1`*O)b*v4WiV^NqPiTx`s`y3&|+n`;2+S)Z>nensKe zj9LF5HfH_*jxpz#{NzRFR%7)2(wH%WF4Aya_^a`q3dw_ zGbSmUysYhfcLK~>da5z&?HpsqCwfW48va>h#wx!ni=6fL24mLP{|=b(N*dPo_i=|yAa)9;LV4zb;MjKV(|GtXqgiuEwhx=SBAj~4ea{;=5J&ngw~XYwgx ze?N z#-9^^%lJz1w~en6f6w@f;{P&c-TJZd_2OR`b4~b_G3(gN#ln5e=%nL z%h9;!yx%MCY5ah=ukl0TeT*Lw`|nhn6Z`K}vmW~I zRBsjg?^Ltyo?z*p75nd0vko)&sV8Iq6UMB^6~@ntxn_}uwRyhrZ^VtpFN^(ms$UWN z?^Ls9Uu!8cd7@8{dcMdi+^otn3w)L)hRLS9Xh!F{Lz@}&tHv) zi}Ui5G+c|gV<-I)@_QR|o!Zx!>(^l8G2)@d%JSTxrRS!%r*Rn#$0os zG5(zRXU12GpEtfn{Gu_}<=+`|&EIbPW$~Yk*NJx;-ze_hEjjNui~AVgCN41Mn!ca$ z*Tf$*zDGRF_1dy_I_ z_9j)vKN6p9{EYY<D$dcewF* z@n~cAdlQV=_Z@4@bzrjbapDtcz%o;>(TMV_s=oCH|r@*O@OHv-iBwc%k?<;|B59j2DUTH(nxs*!VNz z&Bp9ozhk^i{C(pU;vX5azx|0Z*QozB{+#&N#;e7@HD)jUf5u$9{%E{b{8!`a#d$KU zaDHzP>*-v~UlH$Zyg|IL@h#%P#%N65|KNM;bpQKF*ly;qk`o z?LT7tnD}JlC&Z^4b1!g~@pr{@joIhd8vjtd(3t)HBI9SopD}(;yv+D#;!BPHM|_3x z^Wv+Ge->H`ba@;5QJqY&(&T)GF z$z`Y6N9WF6PH!jWHO`mF^$ZHQDB$9Nj|q5sz_SA`5175R>t7P^ihx%K%>LEW-x~0J z0dETUsesuFdfpcTZVs6JnWyQczH#P0&zZfEGkYE9i2+XucxJ$#40v9^O#v?rcvZk_ z0^Sht#(*CQcuT-f2fQs{u1Q{ht~buzG|rs+1w16+;Q@~gI34hefLS+PXJx?k0iPc* zYnG>HJ#tbU!-Wu@F1AZys*8=9fBQGmIV7?FDx1o{*eyYUWoOdJk-1xuty zca-iZrRgc}j&u|KK%wiK5irpUl%h9VtB&QPC~V7yU$7wlf%jxUQnk1#4nACcxfZjFvZeb-AL>CngZ&h=%# zCpmBLuDvJO4<#y$KJ@w_qR)Ly38Q{0U<6>!>sK~^QC-VRlBv!=b1`u@e!uLI167zR z!JOkepOVj9(Chf-3wQ23FlyFYhoehVH>L)j*z5XP>$a!A^4-^?1MCX{@&~P3x#^Pe z(YjX=*Kwq{Yp>JSDC+b6Q;Ve~ReYtsIpC5JQL|pmJGnG{Q|gg#Tz~4i*G*6Q)Me3> z_4)g+Tf1rMLD9O`Vm%z0p4sd3yY--&>6uq5;nX2f{c+v+Pgr(|CctUS-)g?7;I!dyoulUx<5Ew| zlHUHCw>??oc2Q-};r!=|?u__x{H14}K$O@Y;Uq^t#$*>3cRux35Q( zJLid<{N6L~+5C;_2Om)U)<-sPtX>*p`d$~VIx2tg#_Cja!{+pVZqDE9(+@9xIQJ{x z&6#=r=K6=1CcL#V!y9j3cHQmK!|PE=y8PbFM{K^m@D{y$x_0J`o7WXCz2%=4Yk4MPG}K!UvV@_T~?7zP)5gLH>QkXO=#7{G`WomT%daeDOoM-a)Kh zKk3Gu>6M$BrxZ;4`q*bL(Ho|BHZ)fkTz~B*UKdqI^W6_6sV$|?o%~Y8j&u5NZh1}g zi8po*F1h6Oo!5Rn8oXlDM4h=yw##_6bZPmQdqlm`Z*0kr=B!U%xSXoV_QrEVqOZi? zF~Lu7>rKu4UITx!BY*$Z)v2k^E1#eKOI~=}FEkF{&~te59X(o>ATu0LfZJ=40xOkUTPNg0-vY#9ri7Ch8@)xD*sv`goAgin z^V`#8N(_6|Tb=YqyDvfWK%)Iu2*0HJi1+0yghRAn;vOp56~_?K8KGlui?eNS%m?Xz zp*$gu-6g!gJaV4*q6T?dp1m>h6XbEo;UanD^W|~KVb^ns*!8RwyPhk>IMTzq6^Qj< z55ggbsWbZTlxP2q{4RM<|8+6<1EhIGUbg@-e@~&Oe@e`AcGB>i5Xbv*+Z3KGPyI$K zG4}(cIbO{D3w*NJ%fi;m{+*^G)#}OEW-?@Ul{3?%}E1(PA9^27CWc3FL5h#TUw-5Xj-aCO=I~6ne1x z@P0y}Ja%qXBbH4J|y{neo(c0^2 z$w6{{v6FIwc^AZaYQUc|&QqF;0{&dUYmG;09NY-UCtuG;0{NDJdB24;%xj+UQ!aUb zYjU!8my9%w`BKG^hH*bN;9158DXcSIrjX|)q-V~oF-AXg13BvvdSTYY663T&-dXW9 zvyEBrK4ZL6A?p@tSf|zp%rSD-Dc-Aae#)4&?7sv4KV$U0W=z_@8Y_s;4SG%xV!MV} z%Z@WE--moyr1!8@du5W>%)v0V}}~g5RWoGNj%Ote5Z@~QEKwj#M6w=6o1tClj2#% zW#Ti9=ZMRUtHf2tHR7|4S$obgo-bzH(#Co*V;61|Glt__N|K z87~vBH@--Gi!pQjF5}C^_ZqY2J!H%p@-5?Q#NRgNJuZKzi*@n8OwJttvGIS1e_^~{ z%zUA4H;P|2zFEvW2gq*|zixb&n0E`1ZxrWf+{5>Zdm6L$^fhM9*~j=BV&)p@S)&d# z{+5_E6#1j#!;QZ!9&Nlu?C*53M)^BkjPc2qhP913iyp>1&*tIh#5|9O8T+3w-X^Xv z{*{<#?WFm&c)l@nqS5$e@p;BvD=swtz4&5d)>PJi^!$JJ&IHb?;>!Q`b-!*JXrNg{ zj2a)<2pE=T$1OfK!MGuyn5aXuL((j=NfHtPm*|Ki35FOo5j7a|kI7&(lf`7xj!JYi z2}z96NiqSm=u9+2qBGGMm;dj3?>X;Pzkc2QP*fDor>pB%r%s()Rkx~covM2GGNyjo z@ZW^}OxOPk`2p6e%sBO! z;hw_(X817SU51Yke%kO+!p|A*BmBJKzQQjV?l1hB;bVm>%9HEzeCTMHzT4ICP~k%j zj}Si6@Mz(q4IeK&!0<`JLkyoRJkszu;S&r`6dr4sem}|Z2ZYZs%yVg);j@H4X!va5 znTDqe&oewj_#=itBz%!!o@EysX3Y46VV-Z78s;3=Rfc)iU2Axu@MjHwSolW6JO^(v z%=xY_8(ty&HN&ff?>5ZX^Buz<6aIl=#-RrduM>X6Fk{kB4PPPrOT&y$zcIW~_;-dG ztNz3AXN3RDFyq#L8)iTG{|s~1E2Rk(?d=P4?F`>6+{y5*!rcvT6F$r^e=uC8KK&=d z6~ccpTqXQB!yScRG2B_Wyu!vDVJ(Qp?SZ*a7sH1NA7YrX|8T>H3->n6oU5N<=3|2l zA1yrGFwckM4EGm4*)Y$FiH4bDpJupD_-w<&gl8BYA$*}>&Wz15e4Owi!_57b8h*d< zD#K%iKW>=0;(Ei_1fMd@^XD4FoMqT-_)Ou?8$Mh3X2aMJ+YB?${HkG|QFj@>Q21Mh znTLMg@Eqa$4bK;T*zh9ZpBTn2`GsNTt-mtNGi|rw)xu93=K1!VVa`@OZ}^kKFBx7h z{F>oQg)1tP`+kLRN5fYNcQwrO@KD3dnU6HQS@>wfTZH{g7dDgFQHp;e=EQz}iFJ^a z+APF8*l{ecJVAvr-A$gjR2BadavbY7nO=%=owWh33-E~no*ZE2qn@@tzzqRrUg$EH z1$a|{nX9?X9Ra>4z>NWBKIHPubsYabz2>L z&%J)=!;a?$n7-%ymd-3C+S>kqxI}atnw+1Z%{ys$j%k4YhjJ4XzESyba=BVDz*&p9 zQ-DL_oW4RpaE4jL&(H)~7oc*(Srb3)%356E|Yrw5p5=8^+# zY#{7%lZ3-^td-GxddH+3T*u3CVUR{J8sEOO^D_?}QQG;L6SRoS*yQB-TPucR;-*M0 z12FQT>0*V$a=fVP){4jd;68Xc;xR*Er)ARTI^g-WupvWzM`&>XJ?LYN!S#JX*wY9` zYozbG;2wM2^_C`!kf^`(A%{NNq3dJK!rOpgRNbkx^E3BIZkOb#L%~=ddUczc=(|pt zXZ^#;^EY$uqSbqIerEKjp~EsUwf&y4l`OKTP$S}tws3x?tz$2hIzH3%*vrTC1#=yH z*)hZpz3A|aPUFPqaO(PGk^>Mrj`HZZvFfJ7Gu36hcPe*IN5^Z59@E)zMBysLAP>nzOQ_M|K>2$OFkoMRd+2e8*S9tnN^K_=%_Lh>8xm%oyHfM)#8s zzc-fBTez})8WW+8pFj6IuYBgVS8urTGf$>J_w6w=hPRv1{k@0Z+w=UYK^-}la(wPw zN~b-OzVW>){-Q;yNyDC+^qGH?P{+#cca7b1Z`V^^cx}t|(cxFcM^kqE^)($#iI1gp ziav77_V2FWy7kjn(1!o#iILHbw`~9L`mNhPUEN_*ADv6d49{#F9-mBk{P7nLzjx!G zbRg#3Q7qBbSofn-_5H)b;m+^D3{l_xL(^DvhNnCB?{XF9HYrQ zsb~I&n8@nd!5IvYe;muOp<5*SGG?|k-tiF z$)@=!EN`eYeDPXXZ(+{E+Dp=gr$fS2;dQ-tB>BvrGYGF9%7>*0ujn#K+4HrR@WXt% zWZ@MCOeZ7@af!G5i;3%j1}!kR|L`oA0SzbD+y_&+v2`PnH4p%ctJ1O9L2 zr~~-BykvFjCjo;6b7xRRMPs8lV=r2yo`kv=AMMC3)y^M4`=N~*L!TqMS%1oZ5Fa~5{czv=OmIq z6!lg-YcsFNKR&?Y1AGCPh9kO44tW~HtpWaOfFA-&p1%J(_Pb%h^xVJ z^oLsv(+9q8n0<)*4YLl;Z^MvB=G6dG%kU@5muVhj#+hM;8M8iQc((kD3^R_bFw7Wq zgJH&<2MsfhJZ>2IU4|J8{%n|Whdny-!1(gNhUMkXJuDPH#PUp?^fJ6l{Cg<>KGHD#@@T`f zb3fB?n(z?gpD8@j@Y%vA7@jUX*6<8r_BP1_eS&rcrms&kJX83ChUqWtPa-o{c%EU} zGwlujM}%oN;3dNBD}w1~^kFdl>{7$4gkSHOhRc+ey*_kaA^bJNj8AtPrZ0cT@U_A} zF#H+e2Mu2*{D|St3IEhEW56#Be?j;+hPMj;&hV|mex`x;NZTeqcL@KtVcI6oPxy=* z^b_#i!fl;tU_4=83;7=iA7%JogxRx#&-lbX75E`xKhyAtu%BsQ?D8`Wj7#H9{^!E% zDUp`3&CfJEDO~JK!*9f&W%9d({Y(R6yq{@!MwtB{bpA=0Js&V*;2F$H&<5PxtMqOi=@nf^$6~do4 z%yZ;s!)t`M8UDENR}C}9++}#3@V5*z-hAIM=N0ZZe5LTihOZX>iD90Hzc9R6_*aIv z2=6w0z3|h9Zxnvc@E3)jH++lmONM!VzGj$lt0JA;_pb)-dyh&l-MK_(sEwueTWftMHc% zGuD31@QcEC8)m-o9mB5*|G+R~@Pmfa!jBkcJpPGcmKB(D9NZ^Po@Xi5A9RnLX`QDxF*0y1eh}^F2flU$Jqe4v`?Jmr0xH2WZ&2AeXgSJ z6H~3>Y!ZyFtJZrymEZ0P%Zug2YPRpo93&)bcFp#ETasfA-7ZjoTq*m$pOV~To_VGB z>rN7eot1-Xw7|2qDk%roA&zofDCcPeqw^K{BEZPw&QmzlxBbx4_I;=6nmt^ZeAl-& zz(n({(hR^z!I&=A|M0rIblqC~U8Mhx*dJ5`(B4ps!WWCuj>20d|#@$oAjCL z8Jl~~(&T%5J9cWTyLH-=e0-|1OkbJG?75f^QB{{!cVBk&W^KC0lARYk`2OswuGxz- z-+KN^1Eop@QN9myY?H=IY~QuxAk735>mH##S2lYI0W zp^r;-+Vl9OuQka>+1lrm+OTU>E|}OYsE5B<8I$7o932N~ycxNa+}`Z2Zq$w34|Z4Y zulC(i-y2GHaFTtNWG{yQ$^J{z{hClRzc1taFZoo-9!&?CFn+Cs6JD|TUQhFDg)$xD z9Utcu&x!9Dg{3IWLn70BH?~;blC)?G<-LlD1b$-5{%bK+omr>f5cLo=!Qy-8!gBr_3taT>OMxKHRQ6(Yi@f#C<80Fu_<=Kf2 ze26&$7>#}8e69i?%ySn0k#Z1xu&V9(pX!4#49*YZ8>Q^KB>wKRydU{Cw1u;-Z@=;dOq$@AP( z*kyVNd%1cCGJS<1^n<-zCplkv%L;qmP7!84McGdk_G_``1fd7)`TUTu=i!2Y@9h!! z17#19qB^}Ddxmz4;w-RdNPBQ1%-oy42@z)hg#HE*?k%4-4iO$8pLPoo9x9)<0uk0n zMCM(jNwxeX^Adl-%EWK*u=x$fU$tcEa($U(Slr%vn4$L`>0?jn82RK6KJAXYfoVhJ z3(T~RJb`QElOHf+6oel5v|%t~6!ic`X1HO-AI2v5Yvi9C;L{8fKf~}M`HV*{KPSLT z4HN%y!;B%HG`vavdc%xMml5!UGJ`7ls&~EIiUM{on+{ zX9|xsJVkhtVfrZdjQr47xL;uUg6}KlzpEXRsW^JFe^vhce(=S=WhreFh;BSn7qwwzx(~tkd@K#~g#z}jdFzeyq+lBwn@K=OW z8gk*^Da=|o`0K)*3~v|iZuo9t-+N^2^u0&M4BvZXOz^$O`-FY(@d07qdt@x}y+_)+ z?>#;u?0b)lKdjS{pPj#cs`QGCT!oK&&IOlth|112DmY(|t>3ffi6TbI&uCVVto+s>kkBtAm_sIC+dyhN^eD9I5)$* zd(Ve;bI*TEzYWx_D2Wc2l(HW83lfZwqpdnw(~sx+q1@>bSOmk!Z_JMOt4h0FJSW$OA6zDSMsjsx zQion%^it=czFumljK5Bfxfr*7+k+1Q!_D}nXz7PS)MZG z(^E3_%lh7}Etc_JGZQjBYolRXqba9!?Kr(|;@yMN+BahFNP07Jlx1(WIQl5Tez3*y z?asdKP;5axStRCv^VpCR;$-o-`HycBnWmCjV9xy<4eZPI!Ywa6PgYGIxC_rmsPswS zqemx1jfCVe__RwWUw0lT20HK|#vm|lxsM!Uy5kAL5HetNBIDPDe{gM)Ax48+K;=!I zl*EU3f-p6lr}EtFAmNqABYhZO(?o-<{n^Nw$gu_oG3GKKbS%qhZp^uB9s9u=h|DmJfWd~k9+Knzt?u7y+YK7JtUaC@< z9KD8ni$2;Vv@ZUi|3@5DIImq7bMyaPu5ez99C>tdxzojPOx(BSjtLkJCy7s9vvSY` zl>>W=a?nM+9EI~*&U?N{0wdRVp2DHNE7jOanb$t9N@GsuGmF{+q`!4dVTgqQ`;XX+v(#uNzO`*Ixa&;R5d zx{MR-_u%)DWB!0F;~vi}x+naJau9ql;{^OEa*Tc83*;bVz#7J4{%rXWe6aHu!W6+j zIQM2A5RSftdCKPL&76DBU6fqM=icKK^tm_l6EOFkIWd^~?(=Z&X|3^TGXo9Nu9&+Z z4?fK>X{Q;cootXh5a;cqRc@cRQ$Id$rw)DI&Yo+rc{}%lJsjrzlZ6KurjC98^$g*W z#;4BNhe4jYA8Ytr;Yo&>pZWePd#>!OAkRJW{nx(}F1G(l8~BLH&lO&3c)l?G{op=| zDxpMrBld`osa(p(fBGgkD+k?Kk(^Uuepx0*9AkK)J+f82kaSC9Dzrzo8s9yaE3`+D z8{cm4I&podf zhDJ{#7){WCSc*Mzp5!tlFp8gZ!iDz82u0M2&vm&Ee%(#N;dS{AtLsoyF79eelZ7cd zPeSNHUu*WrI_bNE1V(lF^`Wv=ughrSw%Lx15qdw(UmU3@3khfh0m;-zCd6==&I z*{XILJ`r6X_QZvg0|Vq+U3}@g*d#x14m6K- zPBQIpO|rQ$5*i4O6Ahs@u*ZU%>Iq|&wq+CJgK7~6qKOfA*CX^l>AQ>w2~i;-c?`by zQR01_eyA`y@FBVwm@%Y}9P5-2e6aIRg(-p$MnCe*YasYw#(wzIhL4fI+wcJSPa7U6|2f0V z$(}b%{k&v&gnVEBZ^@3pmUlaXx^g=rE9~q4vdBv)t)AUDQz;JLoj0}TIRInMMsIi!7(*Q`bSTIJxZ7Ukf1 z;N`eb*wY}&+0{~Pfpt<+CwcTSKDfR`!l6Fi5#B>QCy!ezhGXLDB$ojg#m^$)LR(rhlKuFw{EO#0A+zSe93Y?V7uWaQT>v;}raA9Cock@Ng@ z6_$!TDWVix;10>{R4VGw%Zpy>Jk+;F_m})TdH!;?fNf8-X$!=saZ0lVwpu1e#1}0% zb2Bb)3p{qpmfxqty$P8Ek4=m>D7qKhph)&7cI5Ua=B|A{`Qh^8<6oOHsw>+PQL;Os z^WQ&w_4V5bYgJ48fsOEguiHjwx=9hv?eq46Z#}dWoA3)}`*vK%f5)8H7TOERFL%p} z{H`?77Frx|f?o``Y)xFG#&m#M6UA%^sv{)E6A0h?cpUD}|NQrS-!IJbs*hY&4q`ma z%F%7%pDG8z2jjy(TaI}Mm^n$A9C17^8FS#X=Bc4B#&hJ87i8wjdD;&Pd)fwJ4N~nxpdGmF!Tmm3 z4tehJ0K-}Nq=!#iWPaoLEW_x*!KclU9!%TXAh$o-D!rAjx5`$b&Wi1MP@lzYmGR=c zt-?KYTZMb)w#w7w8QJaeF0IdE1E zdR7BF^Ka(7jQ7M<%MFnu+dMO%uOwdXzZI$3`K^}Z3T-6hO0ki4OKzQCOxWQh;jkQQ z)%f`B3FTk}_Hq>3NV8PPQf#D^dcf655Bk~%`W6X$9t7j>VU}VeEmK8iNMIB{KZOfz zq%SF=R(!6@eeiN{kHYJ2l0Mg=s9ap3jr5R&(1X6#Y^3X@?@<&P`Lzmdq{pNWIrL%6 zc>cNyds`8V<|^WLfRXFNr=2-ftNra%pe-8-8@RZQ)Ub5c$`y;|&QE@s(3XufZ1{+h z_e;)WKvSXIM(U=g=$%hhx6>P_qC012E~&`$uFw88D`O~{ddrj(#%}MMn);<9v*$E6 zo|F2}@S2NL%Z6t-i}m`AoL7~B{lLh1u%_u|L;KilNX&`E%&2PhHOL zKCfZc;Fa^%tc(WFowagSGCOmCG(d?gJY4o^JcGFFtcINl6g%S zi9`}PYxeBr^Hw*Bp0#||k_GdmFxIhV<=|z@mo6hmEmHHjb~qx@l__DK%A1U!#COO? z3N=6PUpUvtD#}y2-uB|-9NcbYsd(NU*Q15?4v_hbSem_S%<@o-WaW?Y59+!xY2 z-XQFAh+_Ky+}F>`F^8kHz7K$oZN{gRUp3rG{#}N-?zapxzJK3vPx<#7K1}|@hG~yK zF?^JKpIg(0d>^2%@NSdoFaK%7v_ano7$p3>@$2NjWSFwQVwf?Q;rLCNU#hMko|9g; zy#ibtVDjfOCkA+OfCWpUjHI|U<$@@q_dUYiTA2favvSZT1;`Wki}b{i_hT&Vt^UIb zhh)W!&#=)R+L9Y886P{)gT7*Ow(;V-Zscy2Q`66pLu{Y09QP>jvUrq(I`DE#7xpxQ z@!EH>IU6=msBgQvBlib=l+X3m3y1n{QYYylo|DI|5W_KX+a;F)7@-qdA{SnFm#$kY z9@k}r@auj`IMlaO`Y4-|$88WJ)R$IeAcsEsr|T=6W7X;gZc@CH>%-Tja&(X68Wkcv zeII@3W?t)UKrmXV2-=#H>kCILW?5~`u||#_mPx4XGb!AEGBF~)Xn)i?rrs8Y2{IB_QC9GYtAJ!saYPfVNX5)pa{XX;-6YN(@>MSqma{a^#`*%xn z10@&sZ{&*g@4|N1Ai3k@ocy}@Va?p3@Dw?&p)S&5yQ6Qr4#6Bw+TGle=k~+vMvp4B z-Houu@9mDceP+CVKwMGX?h0iVJU3l;NyX!vqx=srzBecPJoEkJLz>ZP*=Y7H$&Sa= zFP+qM;{W&+(cyh=`m4TedDAi4^DsMs4~LF>Aali@*D}4w?&+g5QitnT9Sq(XEBM|t z_N#J`Rc_Sg=gqlN+^YeO|UKhTb z8Hr9f&38*&XI@WpnF<*x_9Ks$&6SVp&K`*7ii%zQ9h_81A-T=M^OG^eXWG~-bPwjB z@cYP(HvfYG?|fm#5XQX=n;I4#4z&j4KQKkX#-~%Chb(i+-vs5 zkfA+nkV^?e*T`WvL7U~kT>tZinWGl7rzoS_Q{?e3lkX_Eaz7`%Q*tzuQxk z!|kbz@Gs=Z17-S^;ad5-4fC9T+VHXRpEEp2eldG$xcIM`40gu8_G8da4+#5S z#TmlBSHT>>_bRv#V^t=~HC@>ED!3e1V9eSjMRye7bx1$a|{1xuogq*P5!>{cH)QQ)&* z+BP^V2VtL)j~Y4B6Gz`U#=<_Y{hGodAqx$ZV_a@aZm4A1$vL5Kj0fbqzVQJj`VVrS z@yH;q&~ELohQW7BC-~HAD zVB~SMVaG&WsS3&fjN)gRaG~AG9!IVCT(>p5^$zK~$#miQwKfQo*Q^|Lz4Rf6zD{yp z4xYt+&jh0hir54&a((!!vK;Z9l17C{-$4$2=q|KduT#6CtvR_qw_DwUIB2(qwaYyT z?+RgRxOAe~=g&dKwK zAJ)tr3Qv*a8fscCwmbT^>k!Q0nJbsCS~5pJ;h8@y-jr&q-3=c(sxA{#+v_D;=?JQz zqz?Vu9>w2t$yjy8X^m6n)NL76F=g(yo{y);ZGCOh?fq)b$Y#!2AC0@EZfQl${M3|V zGLO%dak^(h*NwG&kHk$;rJrJ)eHDenO`5sn_a;RMhlI zy?!%yrz&|rFms=3X66=}q@kf1;>46}Za#)GZvKWQDIbM*GZcO(6Q&JK-m-WnF8Lp( zZ7B~flbFSYC34M${N`78J#9+1Y$$J4(>_oQbiTev&fKJMoDs1_^d3CpA@-h$umpI)7x}TF#ja7 ztoZMevI>J~ZJ!0}=F)D+HMm~B+uLC5SNK`^#~P+>u}24=_AuTs?dJ3Vf5b5D<66U9 zYlB=$X`yT6unD2fa$r5?irU`fahu6h%iq_wH+gg0yH?n3Z{{bv<;WX#@U-DU@}Dz2 zME>)JshgJ!Q&(<#Q&(<#pCIh#1hF%^N;mqm!iO5BUi~*srwIEw!Bd6Z_NKnw_C8bC zZEx;{+uqZK$C^&;ZMVHYBRHr`(wh_THZb({8_{6gl{x_sqig^uMqyS;j4tdW_Y9U-G*sv{%-ou z2>-zNwD$)M(z4F~E}p%sqDb z`T#cscujyW3-G1@W5>CkI|3|N5*4!z;%9-SX54`W$f?S6HU#C`D(B>K)B`wc5f|v@ zkYAp2Wpcz(hx9-6F?K+|PQ2WI;-Hao=i#D|pGczk{&PnYV*EO?X)ty@o zpMT8%)MO`&t?QGTrFHiSQ%2~(Vl+02mM!nPanh9eU1h+D$FH_}PJeCL3)$sAd@(vS z8%?;St~Qk&KX&$Qmn@s#*f>9BNvVm99Hrcwjm)V^upd}>|Jtpoz17spNj3rt?W9m9 z+*VBZVXVIk4ht#d`%ke7HHQ{eC?DdcGD!}lzhxWi?{sGl+E|PX2~i&*`PhU{D|T`l z>u50;2k?nUu2zmd-bao(ALBUK*P4(4_cgv>Grrc~6(3!^a@K6wNGq2o{z69wZ6j5f zNDVpx_J1G!hAJ3=^$j5DcH4;i>9!Fg8qad>ALBcic(;ML-^9TOZ;(q_cK3x%L%X_5 z4x51Mf6Fk>vF{sZZ~T74l;dH;N67z);rGgSo2Iw0+ccDAx5@OA|FmJs=Qhni;pdId z{OTpcl-F$<=2LFdj23pAhPrW^=0st)X-*b)n`WG_+cXn}-KLo=>^9A5!fw-?DeN{4 z_RUz;4fQi!*ln5_!fw-iQ21<mclLh4b<2qz^slV@z^=h4b-x>1$BDlj|#-k8hPeKMYl&yDZbU$Z>z_eXQCMvJ2?hN= z^cEBBS4(V|yrj$Z6N`4+mfS$esHx=$eZ|I$!gfd7&dhKW9&;qpDTZ*;z#M< zl%14rf6>n0ZcwjkjG|qSZm7EGUw?G`iBFvU(5z?1zBshoeJq2;^PSg3vOm}I0q6cS z6eIRh(>#1SXLz-4w6W}(@_$HQTahLY>rxTlP+(4@|EbmbpZa_6$qJAdDywRDoY>{* zibYFSMrG-CdYAW>&DXlAZ!y&qFQ!2Vyr22c|S;mR-&iu&koc`7dKH-4|v}`N!o|@VUmSvfritMNyRvOD~Ru&lQf^U4(EFNJmvwW&fGl zEl&FtQQ5O8Cfe;A8ltl2Qal@@4p?txe~z_uObMrsE{h`+NBL4WO&7CzRmiVi?IEhN z(<(*wEkmr+YQ-Frz>A|)zp~wm@0`&;_Mf_>rj;=du7TV2331A!8T#K>!ERJQ{7;wc zn(EuRd&lz5hj;Fp>Q-5Es4`d^b?o?lv6RN3?pC^IRNndcjwf_HRnyOk?y2(59Xl#m zky5a-Q&e6>;MDG8I;u_-MAU*+hov!0x-N{Y1*XPC^ z#s&0?cfUZHa@c7^E~p}3wIQWa43$`yzgO!l>-Fhzy;SgHBD8kRY3;bAGkQ-vOl7Z# z<5UZJ0i0ZAG<9=&+U7Kv`%oD@U;f`^eQy@bQ6e{ebNZYDxpZFc2uUZ8;-ndq*xN05 zhg?~7iT-X_i&HYjO1x@vkzH-)4L=J`PjfzB0Gyn#9ISwe4jIr1mzutlO`cHK<|D(7I8B z<~7V8LU!gR{|C*PGf24}G=I^OSq(#)NhZaJ7A{(_Fq(AcIr@#!h{0n9kIW2O+^}@X zf;qDq8dhWmEr|cl5;|*GX3+dt`=TWa1|^BbS+aD{ij}kGd}NS*5WRBVoRv$Li@AEy zibb;*X~poPCoNnwcka9;(VV4=mo>~=lZk(B9Gx@m)RiAyHZMv-{Q7vol6iA8a~958 zu7mi=pd77OxODl-OfHf^X~K+EOBO9%63tz@YIeiCs7V}|&cy$ku2(xnZ9&YYCV2XqI94jwjaaNVF$b%PcRA3eKn^!!l+k{cL5DKct`^nktD_mH?f zB@&eQAx{&mwLCRHtHVP*PsP6b zmybnXw=k%1n0w+ime8~tK0ejqs#Shj~&PN z+OEaDcD~<7(hUswte?2di2;t+)%hnvr{^csxiR2>PPm(0mvuxiJ>xdRw1ux2)=Vk- zN5iyP>Ja&i{Cf=_E&o2l%nctj+)qA~vNj*$xE)#^!nR$Dyz!AQg)$OSb;s=-`4Mu| zvy)@i!oXRJI8nn7`Jh~+Cywx73tN@O>sJ00P*hI$0K-|BqRG-nSbq0nl>x)y z*_I|NA8M4ob&5ovU{2p`VNW9%WpqF3OHLlQN({%u9jSs(aiJiN@`dHds*lx+$91`1 zUXII!Lw$>-FC(6l$E_11)VEdoYQ;mJ43?a}&kK7R!RQ+4`&WRG$6cpzsP6&kTO%I& z=#QSiZNj9flY?d`qDpn+L>z9r`7Sq84ef4Fw0eiBPOaD`x)=Awe*fVBm zAU0p?8G8it>ls{J>lsHVfz~tFv(23)TXUx+z0gajLrno z>3i|2%6}Gn>2`QEKrQ-xF61~iK(Uh1ZP;<22OW5??k z<6w8vn#FiP)Oj}v_Q!>Yjx8=kXcZ(}h=>@WX@@qm^IzYJK!GuAX7pa> zWySJ2Ls)@`7Z%JI4s7DQA>O3GW`E~n^JaPzxzK9PMc5ibGKjtT>l#g0GR$^wzNC;W zbolbc+hp6*^xcl9JMh%-ZV^BES~>mI?6)xcnbBVSb$kqhPU&WLdKk;IF?@;=4xg5U zlP8YrYi`Gfvj^mP-sGvd9nbKUr}8Ez0Z7kNJ5S~D(>x4!%h}=F#rT~T;d+yG0aCnP zJ6cnisL5{vG>3zjSGY~b9LVv3Y$Lx&Jy;WZS=epTE^20OBa5Bm)0$j{JMFkffaCh- zp9mS(AIf|(;9n)|HY~QktnV2%FI7?Z{CFeYdMj5~E za$!#+7=23mG5{lwV;w2fH$_Tn#X}!m-1S`{>}dp}FH7I`03(lEuW+buWspBcIoJ0Y zVbYLy=w#jKXIzQGKpg8YpZ zjIbPE3hIS+?d4$n^EQf(f0n-c07kA4UsaZ)buMW(Kw$g8;zrqveDRU zP5%o5iH$ZJcCzREQ=r>uvEp=^AJWN2dn)$QC*swV-=@g)H_)+_!J&c?jP2(i$#1&- z{6&PCY(GCMPO|;H4HRxa??L;YV=Wy&tH{*W^bPVL>LPU$qeS&A_zf{vhRkdaRVI6% zooC6OyEWcaXAI~(Tfy7nV3s6Zxcq);%vH2#%xU{MHs*p&W<6#)=Qo*&?GjjbG#Iz; zz*JtLbw}q*_~*uZ%L>Mn=O^{){9@K1>75vu-)3uYYkPj`qq}P_Rk$SHGfsY5li*8i z=a?VWB(HAxWGwTEm|qE&lMUI_YRZ{K$?mCbH}0hs_r@*CnKp1Go6QBLrN%U!J6ySH z`I4FOrtq6$YUU~;wh!}_l;cxDW_T9acn(cXH~HT5J##Y}ll|a#fK92c9Y5{d@1wAH zv?_XAEB0maHyFMXj7$yeIcnR+44?8mZj&dZD`@`ShH!R+JTrwnHGfBZbv{z4?Y&_J z%{(>VEAF1NF}ah?Y|Lan5|^Tfh9B-cIdsg^+%bD;js*|eq^g7Ua&9|c8DMNT=Whux z3)IeM?(4WQz|RFZ-nTWIJ*|f7wqBL6+nX$hyM4+e$?<6cmdczwE!NXAcXb@vq|9HO zKQO@A08a>TJT2y*2%VnKP-iK2E>kaTUj0SX6`1_qVwm3aWy7@7uNkJ-F!x8EHp?Co znBMUN!?fQA4Ksg#*f4D#@;sx#J-11wk)WhABB5Zjg{U~cXsDq+e7F^dIf<)8~R z++t&qPtp@dzK*f5k3wfE91^k+_lyy{ExA#W@ic<*K4k`A&a- zJnjmGLw$|XcawPNqg}hc&k2);HUd2@eSELV35dJZe3$#JZq^AdWO2xSRgQXhdXM_@ z7!SyI)!z>=(NiVox(U17w}r!UT%a)wIm$sl^m5QYmGvBLkiH$cP+lK;bqjJdnaqmG zers!X_++&!#vmup-^^7_4e_?ljSoMr^gYt+7_U_*`Z}vYIXiqfcKFCQWQR{y0aA@p zTZ?Xy4<@q1k5ybVJNzqR$_|frJyVt6BUD!Lw7fJ!q}k!@othoK3s_)>{~Nrja-K6~ zRq3&KHRU%bdHO5pXv+>~OfT6E{|nm94&N!9x;xF4Ac~r|!|!flhbN)X4*zCTJN%yx z+TjO+9e($_+zyY=dcXbVx91=+a9cOV-*hXxL~CEiSIyXI!7Sg8Hg}nJ^0;%qj}3qF zk|R#|=ZUOZ(U!e`qi4 z@t1;!84!1?`EE1sD$yQ4Ty}9O_V_f(xo%x5_dG4M$LE%4k6$W%J5XfgMZ#x-;&gh6 z_W0>)SDaCBa(y%BG|Zc|eCC{4a~94k>HURchL^lA{wR41?D0c%X0EOMZ_4&ha`bck zPfb!rW4n7m%*YqMEcvl@dAc3TGv#IN`b)ArRmFl{d8(2#%H?GhU&pIrp-f&otmg7` z`i_`c{_WUH_r^1`8f!h(Syh!>Cw0@ELKU;;Er1J7O|8(|9-~y3Bs49mjJL#fU5xbB z_L!yAf4Qs-r*l66))sJ+pA}a$-SMsLq8~oPD<4E#c#Fc&`4x1xIsp zr*W^XX?yoHw^JDJAim{WsBSYgI~<$K7dx1HnXNX?=W5$F->;&$+@)=izUf9=VuQ7` zC%PY;uceK<6KvD$+NbAhn|`eNb^QqT-Ef|kAvI6M&eyWk3UQ~J?`;NcKbF$mS7R{a zR*l@={2o=0!KUYEH4lJTzxLmb@?3M=>N#2rI?)h0mmd}2lL9;;z^4UxYJfi&;Q9bB z2=I~suL^K%J6T!Q!%v3x=yGAV6TTV9$MwKJ5q0SDpR`NFsP8<5zbohDafRnr=Sp9dBGE@3xW2Q5Jqv9CFDrHIdX zzocH1+$mv9)LB`a!Dh2meZbXUXTpRmnW*gLwCs%^xC_s#6KIEoV++M|EyM9#i-)(UpPb7K4)DkT^Bi`W@d5rofX@yv&t#XM8Q}Q=j@P3t zKV;qCZz5O{6`Rk53H^Td78C5xfMg8LOS&BO5YA^>k{fFJTmy2PX>oFWh4YzpY7&hS z@@Eq*gnJdwUFAF7E^v$oe<6}xGt^EuN&VNlfnDF z+>t@p^?gJ;Esw6`NPkcKx0SM*S4n2r%+2 z;D^2O9?3O|#~ByOO?hkNXlkK8-d7ys6gY$s6232`R2j>BA^u2Hg z=K%-j0ZC^nZ!!`doCj2@S`N+wlD2Vh9+1?-+cpoFHG9SC75SF}wRPTgL|y6M2g@?? z&}1Z;WA@h$QL-Y@?Y=$jhd%y|NWWcud@8f5M$Jj}GUOUmQbQgW^fn2U zt?#S<>4^%LZ5T+3+z#FU5=y6&ZM*UZNMDua{dih^U@56$qyD9yWVH<<1F4%H)&ENU zLNv#2r}y~$3Yj5tRXy|%k*NJWD0+Xmf>HQ>;ijt?P2Vq^+p=r^3Z6>aw6j<6w6mXS zTChrQ1J=iLcpGs0!I8aCSW0;9Z%o|BR5TTjrJJ-Yfun8)#djonJ~j1b1#(1;#PKLw z1p-Ii42QAfzh~fA<;vopV>DZg*~@j8V(SX~WJ_)EU|xe0z7|vW z&~4WEHNq=be00Uid5Z@xOp0o65q>ho`++KQzxfP5q@Ct1!tG@}wECORy{v&ZzVbA4 zri~SauhV@~e%9H-@>SDWWodhsZ}HDMXU*2zjf=c|I9Z;0I~JtWjl6^5tA*ys-x@^k zq$}cMxAu|qt{5+&v@)5Ef6Mu?|Jq{-u6X#dVAVY0gl(YOwWXXe_DX2 z1o->_FAVU~0LSZ2rt=d4|FQsI9pFs?z5#4y`J%9wX(H^~wv@=ipc);H+?0e2n z8>VeOXPByZ-Y{i)$uMp66~pL;QbG509Jed0XVxq|KeYj_3$S2Gl#vu;wiPv=PgDO+ zj_If1tVJB50+FZp$dR5n!hp~~XfwOYZc~U-IKKY}od;ZQ94)tB8@MCgL9(T4F zp}sq%kM~`pk9AeoH(S`#2u9~Aa1Fr7<5nr`n5aJ}P;AeAnc~9h?$O0IiN|%hUw+-o zg+qN~)z&iNIeFYVF+zRoG+xz;hd$b}>-)U0rxA>1NncsOaCn`i$s#1;?5x*wjl!;P zn=onoUd_>s<~^!TK-_loU2dd0;R!Beamal~&W7wbcA4agt)V|+X<{M$yF+rcGbhi& z4l%-dc~Rx?{=wMq<#H-YRk4Ce%x`xGBLIN4J5uvFHOm|uTEDV!n=PbZq~bhAD>2*HY%@)p-;WHWasx+T%n!sb*-4xDbkesu7teM zB!Ki=*W2VZ`>iXl%++sQIrE}-P92YD=Kj~fm(PmR>aIxpjo>T#@;{yaGSOABov$Cb zW(e8KfH`B6ijwacNtPU>Zu*J-W9aAkSo&qL6cSav^$(#^OnvoKKag9cd^P!$P|nnE z{(>eq_3Z^sZt7dGBvapC)5I+%+l8-bq5#CX9M8H;5T=w#y5ti<3dU5-+(*voU2N{J zD=RejYh?N-Usc~v&3!*rVK(+T_6FP*?DD-_jVQJr6TCh+F()*1<&WI#e`l1fLf(<) zK3$YY4L*<9K62g_tAyKpq0_s~+)q(xqvq#gnmldw*oz+(F0Qc8q!U)#`(2EldD@?B zeHuYYwmzM+6@P^$ids)Hg=@$UpiRZ8*kc_7hjOyjMu9N4l(57D~<zS8Gtr3rMaKF5sFBkT_3P#g4USDL1 zYwTL&bDJD_@O!md4WbmAezG2sCn%j0I&g(H{iTv)jBxVuJ|c!=;_j6k?aayJ7{9`L z*;ArTf4}sVV$;7YeWlp+uSwr-&zyYEAHHruj&`ZTmtxb`sIc^XC)YP~*4(+;ug`th zxGkH0-+b3t`}N0<+p;36?%uDqePv4iq&}(Y^195*jpLNFM$Gy_>0}2#Y2Pi`_JdTQ zLfif+cyU2(5C2vLyznG|TH3>Jr|TE&;opdO%X|2H6y4Gu{zk=B93qve)6Wuw$Uy3* zC-ooGKF6-qOP=FEZ^dBdpNYu%a#gkZ_wRC1dvtWz4|esF_b_)Ty19>4uHAaP_~ta* z&Sw}%Mbq%uV@gY4+RdOINd%s!oR&KXz+ioJEHE99I;ldn68E{8P+YI^n4>`PpARGA z#802!rDp*ijh6yA3sA<}p4HS-l{zcW7G7Ce`)>M#kQk}<)sl$6Fx*}%fcw|kfP%$> zx9>!NRt}N@a{qkg^E+~}fWFQ%3?Je-4EBYC!-O##`pD6u8b z^t8W4rj0cSqFq02!!a{4$9)4lFu>R`E`#mr`27K%7~oR_OdY!X%mB|1@P`A8z31|4 z11u9@pR95GReCtjK%aQou*?-rhZ8=1q`hIR#wMCzrF zuh>vt!JNL?!kz{lpH$#FfRV=)o^zm0UhP8iU2d6hSdQ&#tWSu?b-7<&j?0BTjbQWz z>B|6&JZ_!Bp}s3MFw}~NzShn;d|&$53wCly*+PAHN?*Nr=&P|f^0`fpG=8ssq8nYx zn#e5`rLBqlT5_eViS*DwLOXNva_kTzEJw96O};5dYv&w}kiL4!IJrLGd(T=#FDa`R zMqg{^9M($TZcBsb`tWrNa#XKIT*{irCKdMZT&ldjc*;L_Z`MS{j4Ab;!vj>D?k|0x zEwU!RVfetf#pPNO8KI?+53T;#@GZa4Cyy5#eaPr7HT_0(xuQ&=(Z{q~u(@o~uvB%$ zl%k6zsBdYl8PQ^7D==;Vv8j0lSPtl@0dlBxAa6s(ceuZizOO4?bix9A>N!3zG&o4e`!ea z+lY7ai3%nNbW?mDvVG+G%0WD&!5A*^nK&Q|9wz5}h5#mD@EHoA_yK?5EuLsl%h7>+ z9)o63(%K2VxX9WGO^LM-njFmxOcUkl1EyKV>nFlAMV>Y;f0SYP{Q`V!AcH-HJTg2H z!8GI1U?w*r@H=hYg_(-4LyQVAWpn<70G}4%sR5o5;JE=_6yVhX{zQN;3-Hwe-W1>) zz^ZfTi*ml+@Mf&L&~98m?Z+{7<#=F#v0E92uADV>HtQR11el!S*AuoyCi?K6)!IqN~mwU!he)=^0>nF zl?SA+l=YP@QgEFslkfUg1(@h#)dto8j9hM+!sIn;{2m(cy`H&WUXII!Jq@C_N?!(G zT&nI_+qgQ*{JgrAV}G=k9}=__{M3fEUoS7NW1 zLzT|;brtr$fxd0hw;N#O*TUB=$kCN*#HFmSuDEfZ0 z^_9ADjazPu51Ul)hzrO0lh=3dWT>>aww4mVJK|Oec?FOFdXvwc@LbWmBR1+v6}+N7 zwfwC3vQb0^@@pwMHft$ypts^#OIgWU%K36t{q-+dOF>5oYbm*A@Ovw0 z2W_sMcz-RjcEX&L^$ey2v?Va@k0%nC_QylWamFxhk#^|oAK-V|`o|FE+1EKn1sI#x z`4a+sT7ahnn2CwYFAVU~0Iv@4Cjxv~fUgelrU2gn*1dq5@2Rx&hH!G zfdR&rahc--{Qdw>4DhJ|rVc&r%mB|1@Y`|jgg)`I9P1*~jh{QAkNCM0+PSW0P_XAkMzV5F19Y>&m=|XbPq6`g(>2< zDbwYnkLR81BR}YO+i#I@NW?+3EAB~KauX!uX$0f7B-*DF*M$n#MQZeb_5AS+_WYeI z9O}DC;XlebdED7zkS1#pbEU78brHRtuB3I5o@$4T6Hb2JWnzTay{E);C$~sn#+Au; zed~lneH+#IYsKTfwYDyDpY)Y-?qs|4)tkN=`CN;3wM~vZ_`Twr7Nx9L|1`CzsnHMp!R3%Cz^7*49Nb(pT@wqa+j`9plzr00UoT_+8z*`ZQ$5~bbfEoGcec^zj@KA@|%wqDZg z>rPr#J7*x3_$rk_0l=j4L3C-k1I%jv8MHIc}*ef9)7r+4w$ldJWD z&Q$z@&P(_uj&O4Jq?3lHW@k@296WoXx1bIhF?h`2k@gyo;B6jFS4xs461J;Ldwb`> zvnTOGl`hA_RbyU`e4(VPI6TDqnd819f|2wO_rAZYZ!0RV8gOb)yS~z>sSLslTb| zm%a?Z$m7;29G2q_>8llwdTDKq1=F{bvnP*AALT$_jhyFin=pCsd-Z$W=u*~L{z+>m z^iL;r;JzaluCe?@a;2=X3{Xd*ojG~E><}ZYmkFv=>XmY|w#G74`ikAR!ZnsDQs(v2 z+8WDOq;I!pPQK?4U$-Df8%tbcVeON?@8tSsE?(8JS7%R#ji@X2w>@=KobE4uKU`xW zbYb~PWoK0AOC@zD51le|XxS_lw;R<~&l)&|Z6g)Zo zPfb)f^-VzrG>8OH{@h7#h4jr5TD`tmg2|nK-^q6rN`D>k(_JCgek({DJqMpgGN{VmV+@p?*HD=Ge49#&N@;ZrB} z9@H|!aFW-YXzVC_%}J3@-sYAU_|?i@zK8UUe-&lFdGm>_rs%_t$%uLI2RwBh#*RDn zq@hf+MgBC!S2xR%FQU+A>6`dGvHQq*-;C29a6iInQcDN$I*1xV?l&`FS_SJO? zM<}}uFFS*J_-#->g1I{9K6(99t&ZQwnUc|g9_$d;IWEAb1el4N%UlrPg#m5|aNHjF zC!&q{y{3)1p2q|JZei9qpr_@)l>0fusCwQo?d>JQ)WK_p=?6@;NlW|fXqdL|>m#+o z(7sp)Ni?l6<4ovuz_D<1l=>RjLFg*}a6^bP6j5ilHHXKAtsiIz#<8u{p>Z@Rv1!lbE_ zgLddf|J0Qz48(0W-{n51X9i=4lgoWa40|NRQ9qO17#EW7svik3(H+!LXlG6?w?mAu zUY=1os9(y_+FC|8>7(5{xxSx^5$bzE`n-Q&w|Twr4D&XRjx(iiH^9jC;p-OUs7{5? zib=ml2l}XQ#;;J{G8MK~JSW!|&&>DYyvXR$BSw_Ema&Tmurfj4FI>xrS*`r*cHhp2 zZ+Y_5|FQn1i=HcMe^+M6&{xWTlm1afzs-xYLx%SIY==So2%<5Ht~fKQt~jIfNfm=Q z(kI3><<;e9biT0sm9oZxnGJmT1n#bBjc1fKPP_Zc)Z>FwJ7+gmAG%;z+48MX<2j9I zR4zNG@$W}e_nb65RbBa^bL)l-ozbnVa&$DP%PFIy_-f}BxkRT6%YRfhsLNHUbCs6qLOj> z+-Vi_E2a)g@0pp|b!NuOGQ4ri`1Fp>(Uxzf=9iCrxo?j&z8`rm;Yh6DE?arwnCsw(P{8w-bMX7#q zF1lPiG)fJKAqz55=WF%vgL2oo-23x#*%*$AA_QjcyO+q!9lNuy6#8feCSh5=WI@YRQTg@IJvH1Ob_Y*BXV)QN$yGEU&Z03a*?i+ zl%wrWJCPr!acZvb(uK|I^l7Kc_Fc4S`LXz*SY^D7Ssvr~(@u)j59##UB0l-_$v8HC z&$AXed86}MljL|=@uPs zPMqYs(}lnPtJD>fLvQ4;k{3|>p*OKTwyb^USSOP0ELXw>lF6|-^dzM#MOz}--txfL zuw@sfQg8Xs* zEI{S-usYtxE2r|`_KIHswNT%&&VUNmxcBllwDGO4WL<2+j1?=FubR{JwNv&!sJH2p z+5K(s!ViYB$QO)xM(`BIhpObj6Xf78lVeuiM~>$Ogba9+95OrQddeXaPov}`^NbwJ z9LQAa;`s0xdyh0e&j<)U*!g^s!R2{Q9Ibf5@w7pHA2}bJNqfMZ@UwcO=(6Gd!g5oN z4y5;TQ|KBwrmPT+V(-?qn;!gYvaXGRETVxqzdFEN*ZExEF?N{aBLbWWFt)X?n-36X zeVoR9MSy=7U^c*ArjOxS@=p#h*F}cTNyh`zndv;fE)Vu~`4Ps)1_L{vGf2o&Zm{z| z1YbHC6lNPBe3|_9hRNqf!_Ub799a7G7h~7|RpV2yVCUZpU)S9!|9-;{ z$$!i+6Fn?FWVjaB05hQc$uNV?p97h{1el2}`RO4a?AK+)be*Jk%o?uao?xY=?!lh+ zD3jryk`Lq=$od;5pYIDWlVkMIUcj#BM3X@e>HWHs0?fpjv>BxZd)mJ<8Pak+WN3Hb zH*4ReT>3}Kv7X*hex=;L-h=6nPLzvA$vJ)_XG>=XdKL%xV*$P-z#9XM;pBO^A;7l; z`1Sxd2AI7BPy14U)4E5#KSA5`{fYSfDpe8`#mfkWCkFDYmmoh-GTeLL*I69MTx2pV z3tSt>d^V8zyve*EnXd*icLg%vG#Qo#{x#tL*!Zjr{4U@>ZG096UJm#*%CFahE|)7W zW0RMialtWt)iLeCF=ci{U0lpx>3j^E`;57kW8{jJgyfMJn2l%D{ z-x1(D1N`j(e=oof1^CebKM~+x2l$x)KO5i|1N?G;SupatV(s2>Ccw1;X5q+X7_S^p z4)Ey#t`G3s0LNnm|3uttZ~x)Femvms7G_@!dRh+5-ka~wv2gOd@q5Xqe<8!#x9`vO z7Oqep;13k`{kao`yBdF-@S%n$2=l&Zx4FrFjNbMp+tJjbUQj+gHY-z@%2!>lvTGyG-Yj~Kp7m_ClqdxS4G{7=H4F#H|i zOAY_C@KuI)3Nt2VFvKx%z@(o~tY}BJ)1^v>hR4WBPO+Az=9lMM4*9cy@jFqEoJ{1C(PwoSWq%(K~XU4Ute z&Yv9M=>e_}a6^FC1emtvdNu|4rU2g&VA_q#HwO6806!66!ICH=DXPc1dOY{+AEZnh zrk{ed7T&7mU&`|yInonHT@JRe>$^Zl-1Aet6K& z>|Q3JBo2JMT$Nl~auXyIs(4HR?x_>kg-(_W^LL%>k9zUQANw<&zjK8{eLOo4m2>jA zv&9JYy&!!fti0_lj{2J|=V=6^ek2MQ4p%j0NBy*S$`*-}L&mo7y8U}Z(Tj?t99+-K zak;Rk5sYru4a@+HJZ_!Bp}tJd()ONzAbqD4sh8^t^i7byJFQ-7ERK9Kwvq?>B2=MD z`kVtxsOhxHHRJJ0r{@_kpL6DRC2U4CzsnHMp!R^e6jTX-j&IBeLpYI_pUDI!?yQO}8=|_ihSp7J%$`-Tk%va3?#s|Y<)wTx zG#+~>q|VT*S+e~Z{X#x?dN%&z4-*cJi*zU#A-t;8NCJrv&on2Y6wCmj-xsfIku7%L06L zfHwvB25|BqF6o_$_XqMn3-k!)*0UH=d~J*AqGOqnIeb`vj|^~afcpoSS(NK}e}E?j z_|yPT5Ab;bW|Hzozc0b`)Ys0?_o5tYC=88d8cV^HwY_25br-|5Fg zU+Zi!LVYhtA7&ByXfwo7f3xL0jbOA`0dzWfT;cix{da*2$#=PB!r^tt$lks~Jg&?2 z{JMqf3k#($qj)FRw@!>u-!AE^6%TzFU9Ru*!k$Jjx>EXj1q_FjE!3CRV9_8R`f4nW zd={=RY*m8@*P76W+it$!)8!SVtuK5{a$!g6p%pL|n} z*47vJHpOIDCg1fHt}m>WKIG8X+WNvsb>!Ve^r2U`AV>e7z4L+dswnsW`Tp5I$O_9J z$aV1;H+VghD`A3yX3!HM~+mU|MpoXlmZl8=94s)j~#g z#YD5Rd-a!?w`--PX7}n%ufNZG&OG1mv&+IRscFXZ`p$Pg=b2}oGc#w-oO$NV%sEh% zxL!=|>phJxj8|rnF|zc9{`0)O8DBVRba%%WSQo&JJSv>D^bO9cib=UbVNTV6Wk(kp zC(mKH;i&cXN4E7CQ9rxvLxcKjz@ad$?cJlY%g!oj#_jd}O^Q1khaYYR zU)&Vpss`x1SAlJY^%n_F#~n1ons?>42jV{oXSPo#iiiZ1#vO`m#vOjVU17Cy;gg%` zxC7B%@7o^IxY}%9Fj?$4o0o?vgTf|9hboopdX}nPGet>;QLt~!Pibxs0}QGi#pU-5 zBAg%QgQl}B)1~-1wmD4Vz=I~W3NrAZ>6?5BqBQWJOVM#@e$oEMp54nig0J{G{4QoX z?q%}2n8H}h`Cg1Xyy~+`(;*Et$w@k<@VESN&0)GZd0OGqI~pi=q#Ug>m>ZtP0c_E-*~D!*IAp{E5(s4F-9g zKhv@CcM3Bu0R5MoVH-yv$mZbWg`bZyj3c}hF?FL%-4^1~4PyQg7`uS2qQKbJH4#&P z4~v*O%X|-HsL#+VJ?=0bozlNIRFJTe73w_k==YOe>&-F#$p2i?nnWE@(Zs=G!sVI&?>`sofSRBCwIkQ(ew)AxzgV-VE z(-cnnc={nne(BbGeK+a2J7W-o^l0tQ7{tX=zCk*T>|E!HVVJNt>$*=iAs4nx*q8G{ zjTy`lk9?4R%g4pSUf&|=D~M-gVXb0#eRp+p4B}Gh!w54nNZ!1@C!}wqc%+Z}+R}Hu zFmdc!eY2Zm5SPiqJ5KS8(1H7=9M{oko8-DP2JwHAqn;UAKDLSB^Rc>{V-V$P!>CtA zrmy1|#0KfJ`nRVsi1$d}PE#h|^x^9g6zOhWcneFVwZE-B5MNEB89AwX?(Yij?xrReCMn67S)y zZp-|YEy?hCO)X8y@a7dOlHtqeFK!w>Z+`Q+XU$%;WWiE}1>Dr!ynOx#+XXi*Z(4HJ zd__qm7B5;d->{YiCc{+b;;unG1}Gk@u9k3+O<3!^Mo%^F5cP3 z$rXDeDJR#ir6#@}o{n;1cjpo#7glumV?F5>FKX6j6Gjf78~gXM@5nPS6V)*mYxn?% zxtDEi!eNdd`Z_T#eLahNyu&9t{7#2?Ct>n49G>m)0*B9bn55fYV}jix+HkH)%yt~# zEk(5}Rukpy3XLj>1Y~lQ1JA*(!)ONz&vv!ATHQw@=fkGJw!U|r<^aD@Kloz{Xue_^;4+3b}f)QOb2TKkt_-L>GLWL zxJ`0xg4j9aoBUSGQLVkc76qsaQY6zid%=Pg?o~wBa~=F44*Ba%=uLtY4vVPGMYinDet^bJur3&;|NLpN)4g223$(pl zSPhxY=WoZW%-tKj{6Totxpj(I#xepnaM`MZ@^%}ztU-Ib4P17LlWyShd63`0<#(w3 zebCaguW+V1OS&NPm)ST)Og3<-&MppIEjD1wmcCg6di|Ox{jyC8s+H?iRXRRd$Gw~8 z&9m@U9VgX0`FEWqb`Id{~Jay1pYI`Ij1`T*yX29Wpc&XoK5578$rwc29-fU8Tb(MUS=aR}oQQ+VZsJ~dt zK~}B7w3pfB9R2UoFMS2NSpG4qdSlPrg`vqy*b+#|U7OG3@@ik$5JQ_?#7#CbVS|qF zdPJ{2l)7U7kM39T;4kS6zWmN|*qg$-hq3b*canGoO3i(~snqE#=9uiyU3#wmXUE3Y zKIT*sMy9h){Gzj#%%4{XWoEN4U-f=_yEh=an{-*+g5pCE5f^c`?04U`-0_7XR8z5{XYESrE}Yf7yI;1MfW=P z=}A|%3}3c<=`!-sfhYr`uKW4E$3VlBK4~p}F2S%b(cbs#Y4S>x3(cQDrsqI{D((q?7i)AljP zzf_oa4-nVF@Z}Lx6kH4V)bnd1rmJ#%JkT-=R@v8@aba=6~%U>C(W6eEKtisAKDszbF#f#~DeW%{NGTO7gUZXG-h zh-6`B>DVwqU)6QGCd%MhShKJ{?*=u3H;Tu3X%FqZ9}>1Wg2^-$WC0M#!Wawi`i|Fq zJ4ihAalK66Wx^ImFlmv#F99N1*d;pl`sPR~FwduP;m^jo==nw_`(Uj;Ih`ToW zCf7&z+;QR=ncSDfpxlinO0F|I{W}tHr%5i79M{~)!fqGC=i@fz13B`+u(#!-qusw< z`nDO))Zkv*#}U@ZQ+{M~puDs6wEw*EsTx zZ*TX%Nhzp*+xn`qVfp%#))$^>eCI&6blsz^Pr0z>oqXv(^AY`LE)>JMAP7LR^&7;_ z<||m5Zzg}XBJ2c~seBHRO!+Sm$(AjWm!Af{fCfJQTSCL~#r*H#nyt^u`#jqz6lWDa z6Hb+TD0q3EP%`^h$Sd2Szs~n<{UE~a%>F0D+0DMKZ$@R@xAi}TGxuakB1Bd*8)u4H zwGuwh1t^&P_htzQU7O5~Y?Iiva=n+&Z%H!uWv2_z;5eB5>G212oK%yPzbmt!CxMy$ zU`n;4*)LXjV#wA}rk}I&uR695V9eSUL*vf>lqHaP>;>2s<hq) zjbXFB)1#tgAMEl@%yu(}<3K}E9xK0#xt4KIqO*~KbR6OAWsB#pEJV$FS@>PNR4dx_ z{?+2__@GE$+x;cEGt9*2ZsAdAca5HKdoKI)?S!> zdocW1O@d7x<&Sp!Qyj+TF?pS;sE7WX>7G+uZ zOou<<@KT3YI=sqZ?v}3BJnoIHP8Zf}b-MA_$YHnBTev=AyTj~SREcl+K!*jpMcCK6 zB<<{QYd}$u_Op|uCdye0LfLvk2XvSm)uAi75t6Yug24tV03z9Wxz6Cm$X_Vs#|txV z3m-=roG9n@E!1(dV;E$OtJim(^kHA4kLzjrP7}5`f?>a~#{rQnEZnEYlz*$P*JbY5 z1x?>2!WKtR-(>CF zzP=#FX+%iWUrMmA(MO##eV-9VU%ebup@2WR6994l6n&F>L6y5R`}ziS$Qd22i!j;_ ztXXz z{ukTXnDDQ#osH?9d9wI=J+zS<8Fj$UezLut{f8_8sh#~)2Rr-eU}u+|){-22b#<_` zQ%<-M!iPuR*p{{)NY(AXKN3GW5^4^&kQv@!in%kxo7+p@64rl_U}jr)KBGqWB;1ba zvDvcp)eQ4sG~68<`ZyIOW*k_IqY5f($_>xm-dShlcz67Oost7 z+m}AQ;aAEIww90cr2XJs?O^OgPr5XLI@-azlj~>)Pgd+gsv`W`c|&(uoW>Y7L)X7M zcJMOE&$C1c8|-KY^FFXuf!Il0Th2?FcC>@pJNSRZH!^+AVi+duZe7Rsnve_YXb1O~ z-MUiYoOe%l@DNpyf@F;BTpjITzB4;WLg=IJSUxThwm5>x$ z%@Ic5p6uZNmcH)T!N2RK9Xv!AVRTFbo~7@0hvC0Za^%;@tXXJi7aP-8@LzbUn-t?uUh* z$z(IxYz~*r@Jdo*4c6Owa)GedHF98Y1POOUUmxs#f^Pww{`w6 z2WGBU@bU}{+s3|)5?CWw&fiOttzi58if`*LJ2ZE_m}R!Sv?Rc<3w-jVp@;W(%^*9hvfbmR$-VjU7Cxi z5=h#=)NA)va4%ovz5KVR_I@+INGv7om!``N-4x?jW2Ipi6Oy?Rj9z&= zOb=a0yUtHm+v2EO>kiw=(=#X$^Oxy+1X9NOWYyM`?)eUtChc#vn45j+>wyD3wc{ne3f}Qs)VT&V}Oq0Hk03un~ z3LS&%BmZ8>{lo%e7>D6qsFS-^Cps?1!9xc32{|RHNDoVHbn&Q^rq7AzPLmv?zlK;>Ti3)0@@7jp*Odr0oSfo28$91D$ZTi&X+~u9nZMwe9yEZa? z#fM1zwnSHb;ZgOYM->8fJ?E1BC467_;P5$Bl~cY+6>n4_$u$-xubVu%|0e3$buYozwia+IC^!?q0>jE;i?BQ=zPrM@LqLVe2(c$v!T;FW(-UOsdL zR~;*9ZRhYKIA7IY$L~jMBs`!0J`pQ(hXgOroC9?;KdG=X%06>UZm>M4MlQ4QXZkPK zYnx+o?|~_*Sd?Ur3sOi_gc*_PF*i_BIbMIimg~V^=&e4YlkAt#U-p>{lOlSe)b~?6 zu8rJNU$wJuy2o{lZ~`!rsAc~0rp0lk;p=@Gq*5DGy1Uhk?F#Ad_?r=2d-@$T+z^$5 z{Tqu-A!{Go8LXv48ZXGc8%;BA`!b@>)r zhd=1>M;*S%;maIe>+n_J^x2qPEo|>*=rY;6oGlLD=kRa9(V+aj!-7RUG!~{4QNz6* zral;-PLkm|hetR}pW9@PclacSDNmE3`(${g!}A=bY)wYp;i4T#y|wb`?_|0&e-b-@ z_eSc5Ctrw|hVbTy2gv_M#Po2!6EXFgGAHg^dYDX9=CE@}Kk*6Ucz8TEeOy1TxsmA`Du&m`yClj5eb_&ykMyA5Y@#!TJrM>S zD@S>EB{xno7Dq6ljuZfqEPcFx^y%X}7Sun|hh1pt3-_;%jaCV~WC!x?TvLR-zMG_P zvI5c9BZg6a&2kn;F!_iMxNnUt>|8Mn6E;Bghw)=03tJ|JKko}VS(|vAm-AUZE*7>p zg2^YPuK->9XLcugxgRW!U~;qcZ39HIunju)`W}(K#p0ol`_a;O zy)bd=<)9V1(0l{e2#DJpeUqE18}c|4iebooQ_kD>S4fV!YGkVK7Q--M_ezd>W@KUH z&F5pH8bHc{d>jzNIDSyh;s_=`mpfy1hp8KnhBU;NIu# zHeR3)LsXToOOhXr_(jd6@~6JvXIRfw|GVjd`XtZzLGsqdV+{6|w4W{W2M7>Gxt+aN)M8s%^z-v6@ z@WU|Vkbakvxt%!;BQOXd%uqwQmQ{(7!t;9!Nn!e-h%gj!ercJdJ~ffNzCIaIvLM(5 z-i-hF+OCU5jj!yeMA3%d_Zo5dk)eGpsP3yFNoKUnU$UZU_5}71J>&F~W{(+r`e_r- zn0C_ai4&%sGRRX0b^HK)$ibXe)WPaNOCLg*{6Y9Q*u9GBn~wm?CWW1LdQSayEU` z7xcq}E>6ATzqQlHio-SON^YEFEDlOm%hdxSabAe)0&bLp?v(Or@=4#G#w>1E_)Bs| zcCIO6czp-T5bDmD#W$pYdS+z$&K1KjVN+G#7+W*4uw`QS^YUGZHu1;@*NZTG%GKfs zCOf3B0ElE^tvdGlYSpF<5)XZQ8nbvx`W}#sk?GqYhS!I!f020T<31&f^j$AU9J^L` z>OyyC%z|%La_`*>PH~F9)uzWly zY;gn=Z7AEVF^h+!uRCKF^Q3PliX+*%@O24_G+vdsJ7X3rmD$>2tWw%%FKb%9sO7vk z!=dZ%N*r-i_xF>2R`&)sGWR}bKS(XZXZ3I_)c>jQw)(>8G5n9>e}tHYQAxJ3zHm#S zz$^#K+>b+WZ1gsP8|1ha`p=A4p=7=*cvxU02?9`QjssO%a~x_UsW}c+!7FF}k0v&J zMP9y9e;p?_e33}`{J$VpnPX%kSDEL-Lz>udrNYV%(qHC`;=~3{o7u>uhBI;uAf&X1 zt(tXBY=}S!?A8#0dPMCfBZQNvvZyvr#bdIIAl`v;W!nAygtuG`JR}XlBc=7)e{E{x zVEa34^x(q`2X15>HY)HBlM+P=)R}E>MUKF&a<8#%|5MraY|$52Y|3gcFXHpV#z^Uh zAp<{M&slm!&zt$8)f(p#*j=)>uk7ClQ-9;AL05BeXeoWrL&JlWyh+07qtGRqx4 z&*4^wLtj_@DQK;nrJug2rT;qk;bs#M8K3*rFe(i9c6flp^#4p|u){+grcY}!^mz=2 zYZ0q#wfL6K{!WHIzws{>#_ohZEob=hh*59fG++TI*75C2;t=IIap zrM77ryX*hZHIi7&_HN&yQ-0iCCO2Bx+DO4-OE4(nMwlY@dm-=CTZ)S7$#JNo@^f;~ zdsDCYZ+G&M;!rKRlEZ$qI4GGZR{%ufywI_7;6^!Uj?zazpY)M8OWzb>uWyx(za(d5 zVH3sh`Zh{me+8nCbeq0#FIi;yLnJfD9h<&o;u$9R5*=`l8Ce+jpg-?soouCeoR|B= z&f6+%aRig+bWi|9vapZn*z41WHiDgrzWrku*NuDD;s_=O>Y{!f5Xr*0AH2Sa(zjSV z^l|T6`Zfs@hkFwGvGnme(Fln9a`a8^aw#~@gkl(Sx5?=e6lsU#sH;Y%dYc%A3FGah zYkrDhTNLK=al7(CIgk(919e#ds2KL+7^e}Y=uYWF4t=y^rjPdD>bzjm zD18qBBH6j{xvz{4RwXWoNjr!R^i|90H0|{9okQNm8=1anXBM|G?(*Gu{m5?5rEjHT zDpRAvNu8Z3^RgSJW+?aF*_uP7ll_Xxul_UBg)`q592pq8;i9j1-0X?J%RBDF#ne0Q zK@!ux#$!3kmNDf%e+R4!hUq{5F4*aQOWy(7zQ*XzQ}v2(z8Oc-=ZyGvQMNMA7Rq|_ zeW$!&jCQ`?(ic$B-F=PY=Zx-AoSrx8FZ2H5%XG4u*?62z#(qoh&+*KH!oJ3fa|HBS zqL8z5P2$!P)cXnk_h16c?lluww@G^w_;vQRA~)r~x0}z;-DL0B!IV`w1ZfXLajmay{ZM!Q@n?d|aGA-z5ieR5uX+1v7H-|l6Cx|p+H8g(dUn-PcCrO6$)6gGRiT^dQW z1*C?!?W+7bHORS5xy!8m4iD+SBZFL7S9@KgUDx*dr$3L^Qe#AkWz!_PaMS4B13 zcz1goAB9Y~hZRv|wl}rbF#T1-^sx<7hKA{m89u_{qa7aW@W~FB3upKfaV|@-pG_Hpv2(r{F?I9ih!2$i)rjd=d?Vr-`Oxdx<{y$KG5lLgGe}3^#=uRI zR$bpJVQd-|LkQ!zqs{+5@jR(&1UgdxR1wM*+MQfSn}3dE3vx!5zK%Bk8Yw?sLZpvs zfE?-TX!Eyf|uIyv_f-EdKp;~wus@&Wt{9*%7JpBjj-$6 z(dIu!`sx*KWcoVV{F9{*IrQzx=3gXz51BIgrVpR{%7}N%1u?s_`PuusbDMwZhZe0^ zFjCt{6`(F{{-clS_I&u6G910lpU#JG<<>1y-z|^)sOdLj>bK0q=Tmm=LaESu>>EOO?(4zJABtC< zTcfbDn}jpJE~j0AIBohKyTmI$8;QXRp|z-3l4Kq)C$Cp3)fn$&FNR`AdniV@F}NE7&8v6g8sQdGs*k# z(z8#+o0)R;ALwBHr*~pnH(*+20MjFSjfVh!y*~zjMKJrBL;tZj5WpPz6o={a8Ya+! zea)>;-@o(y;q${sifnOzCbx>O6043gq>wK7M+17w<6QgtYgg%1Jzo%*$rvI4ft3MG>92=+LJj~0d znx5kLg@}2sfO}GJMLZ2no@Wz!I1kul=v*OFkUuVBsy+`&N@zL?Mdh18E$iY>;~ft7UNPUObvm^OfP!rx#1H4$^0e=%Zo z-yHFQ@@>qB>q(l4Taf>~h`IlM5Hana%h(4(<>T4FZ zID*L?I^fG(-VR z2`~cUHb>v&ep}Z0xEE~z*U@OODlGT6k*U6048w%Yk{tES$ilXX;q&p7@w7`^=7@(r#-XfSX!ESj3no91zMX(brVn42v`9B9^NnJ1 zU!wzkls9$J>w8?8Jxn|!(-#b#d3!PLb!7LyCALO+B@x{F^o(pD2<>#qZCRwgTXy{D znqRE@%>~b&)8m%Lr{_GGKRf%;+&$Tca}|FWxg|;N(^mUDE0pH8Bq3~4c2=&gs$u_% zrF|D=mN#Y6kd=KF>I>En=bn0c%%t*J6?Nqe71OVNVN%ts{eSjC7{)E zHZEqo(zw`og_g#}S~v>hVn}{MPI3EW2KVaMGuP{&UN3iJ%I=Pf)#|i1IR#u7j;F8B zzk7Xtr0^;3c(U*^cPv;W;%ZX}ybA(+AKq#?_OG0FwLl#hBOrVGN5gukbZ6jcxS}c)!4Bgv*a@^;21N9NR*s zoUt=PI*e^qYiz5Z3NTX|Kw`kA-RRA@bf9N1$C6(D)R@H0Ma$Bqi|gKXN}+VH<{BDOC2eflhmkhT!ywYKMkS24P!@C=w3iX6P z5qY#S^m*)RTnSU-ayiC>&~a77i~(K~G55k3Bc?-nbHv{*Py?JaU#mui24R$XMh{!pl4Nosav#9w9bUl<_wR=@$!Xl zu&)-+$n*^r!|P)&ird6PA9kwg8zqc>c+ig2EB+G(am|#ZF6G8a#^MMDeSUnv(uYCn z)3;sen&Xg@{j&N$JJ%epsCq<8$?8YdbfIqI2_| z&>OLG={Qa_LHgz>+{pC(L=3NQnDosN4}E(YC;AuZ+bJ0%(}%B1TBJ3q#EoKdU(;pb zT$DFGIlI>clkLjvVSq@cFN_nd?EW~>h-11xKWd_`8HpGb&RMH;?Vl_WCXM>f+^PTY zaS-bUmc~*L&|Vp9@iLWzm0FFZTojmPU%;y@yB=m`1&zJNQdF!u%3Tqd`3vx>bF1a~ z5s%$}GA_I$P0KY+ogxN$v;MQ8pPI@1xtGjtkyvv2wKIrQyX&uR5BpgZo$ZdWaOv`v z0@i!UmT#BrSAFJ1@oay|QkpJSuEfbDX8LwGOs_~O-;}~@VGZwLMaP~#u<&YpX)UeP z?w`tRwCnl{AF4a5UCYC+d2T^zZU3Hia)`XDs&*bpa=T*wTO>%95z2(R^Wl=5Hu^-T)0CgRUWcorspk-e_ zpub8cEmumgMEm*yg}T#57U~u>pSx)ByhR!|P8(uzmMpDX(b6>c19i)mFKwAWw`J*a zF+aFy#iHg#+Ck{NhJ}mf&6~fZ)LGis4_MK%oR4D-U$M~8zJ5UIR#W@8uOHxwqf>~z zN83#w0!nSH6!UNGdQHUkOxc|r{UJZ@vOBqb{eU-kKY;nabC0m)QeCc>8Zq+7qem8? zuD>^W$1qhgRm8Mz*}ReBdZ||R7Qd%?8g!Mw_-`ocyJhpEP1R548uHnuerIO3Hub%~ zsn7FIKb$XYE$Du2W5(IgK6NaZN^wmcyMzi49ihcwkw0|I=$cx#c@h7`?C3GIBT_so z+tB-|!wXZJdZfoQ)(yCDbX{3PS@G~QM>kZN#)ho1*KE~{n|PiX>u$Qgp;uk6GuNe| zPU`-;UJWq?(){S*Rpr|TC!#Ux%lDcvMP6O62~FdtoVl)TUiJ8MY)Xfj!1IePToQl7Y##R?1>Zl1yl-&Fna- z`phXx@rGdmhQENtlcj~(OKD(v9HF21golV(FLEP&^cSzmrr^rRDc@2 zjyQ?>dL{vl_pjgfiI=i9{pxx*lx?l)dw)%zM{BB|d%EwI$(^j-tmU4H)K4ZzIyY@{ z@U(KXkAhk=Oj7%FSy-2yS}FO=ISR-uQ*Mli3}y5AN92|EgnE;N^xdNu3CmReI(X&Z z4a~B4<5iYT2wue?dHH_>ujN+H{{q={ALhR@?6joapQ;J2&T(^;J*$w+_zHW?K?*V( z=P9II^>}>6JOxAL&31G-M|16n=;ib5Xo=!gG%4_%A>u6@HY+qe{C^>|c-T`WTSaqG zcr=IF1S*xC%aNwRrAK`5Oy62skz`H{DgBv_D=*ZkKddKHkNX8OvnojR?-iiDWwQ6_ zz>gw#oHwT-23t?69#ps1lV&vHz2_CBl|406uWz}MRQirHA9@Z{LxPg2cz+0RCf+l0 zw&@f2K&87p`Da~)))U?@e2Oxpg`n@0$EbqfKghc=h1=ylm_ocq}tn!XgD7<9hxWO-Foo%VYp z)CBd@@Wx1wR@dT6h1GHj94PTTJwo+ zoux=MLYd?YyiwA_{6BnjYKkFVA4P(VPp!`-=WH(aUWOl!T;N`9l*fu`v{jAbTM z@rIT%x-1mj?0=TGDZr_Cy`)Peffw%iuof|Bnxp^ua>_ei82n7m_@UxZ-^3L&kg>{> z+3WLD*Gp4M7s{jV@`W$_56NYc>7SFwmg$1w?hGlM&ZRgng(Q?yWRnqB<5PdpfuGi0 zUib#;Y|bayFyamBYdq)ku3j0f)@R1%svfLlPI@r^GauJ5v#L4$4p=6HW`bmU4)a1Q zdQ|B@6aKUO+ssc*4=tCr-X+c;IOq2`EO2tUvbZ`rSDaOvOV20`@Y1i9wddty+>nka zr!~{eG<{nPYPX&`{kVDv*Ys0XSc?eu|By%wPR|=Bxfba{2tZO^fFyr=J)Ws;BP=+rOinJv%jmlTO~J##fBR2zz+5YHuYw zdktBdLu^t}@m`j97w<>?%i*{(fA(0-0e($hgQ`J&A~ve{YQBqPlY(y$N6l?`8^nmz zK)HM5$|AmBzFP1wQuR~$jdI9@ZAT)e+cPX;x&%Cbk>T;d8yE1k!Y4$$Qy5a;EdiU% zo3rV;kf$%fTS74Xr$ZuMC`@$X^7N^T{Lczo`oAMQH1dBfOebKVTrXvWXAhW;m|^-q zOo)I_XN685m`B=sBK|kwtT5;0@n$l=a(o_j@R8$@2O$qOzCGvQ|NTv-ju)Q1C%eA; zjztzisR`7<67BuFZU5E{eN`o8La*n!)FhO5iQGv>9CJq)aeP!fpjLG@_d4B9V8yx3 zDQKEEF9l2HYl9~3I57X5)Q_!ixFc*%c0sxg4|15h$@tv$HdnhI9Oo5<4t0MqMBLq( zi0MC@e52!!12b_zG+xeRCW2$!$>1n6&B@SVHkp}DW{%^}b9kY{i@|;MCt4|h93aO^grnM4>|mZ!;gVu-FV#b?-gc_K2M6Df~(RN6Fp$) z2{|x_Jaxc%VLr(Ot`=t9Fu1?)JDkjHhnt-YgBhHc7Mmv!aiPZ|t`vSMVuE-w*?A9% znDf3PV$M6x$(-r82<%K4Q~nSo7zmU~M2xsRFejsBSm2b=!BQ6}^%qs$!13_~WCGv9DS553KIMwxk%0h`RU zC_~$_Jj!sbz$WvF$X_fz*wX*$$me>3P5vtQIxoH1t0SiU_!3xoX^}kGW~VAFGKl%Y5Nt|+rsGGLRL7G-GP$OCx+w}6$l4Uz|2npZ{smEwa< z&qeU%=+*xtSaGTEU`z9Q_;U2>H%6IFk^!6k>mr|f0&Mzkf-i@qa4T5)Za#$Y^fu;X8$$(A&WANqB|3s9zT{2+P|7_%QUxH2l z3-IM=lXG(DZ<7qz^!J1xW%@;#J0$})J#UUOSVMTqeNxmwur z@>Tei`V(!DGfbb*@WT#2;qadw-cN0y$-mj*!yG=+;gcMGCpf0>#;UNzHgTq`?({rrDV;nxo;fW4UcKF>6zt`brhZi`! z+~E&8Ou1NkE^+vBhd<}=CWo(c_{$D|#o=!|{5^-aIZWTf((p5f|J~u84*#da&pP~^ z!!J3^-c+WadS#di6o#=o3?Jg~V26h~Ox-hi_9ijh=rH{l2s~zs|F!r*^AL{TBhv~pP=7ho z+11)<9%r)H%B~3KF>tthsghC#EkjT9>TAe|AUA} z%D+3}#G>mz=T{4Yn$Ilmt9`{i$m7@O|yh_UH@8ZqtAFC+e)e2zKS zpX4+70sNeN+9EJESzbQaY%cJ@@fbWzj`jyULT-4(qvRhMF>Oy{#MoT4Imo|TZc@b9 zSTiDCET6F^WU!mwA2Bx0IT2%ztcn=BRD z@Xd&434bqQ?1CRe{CVNKBi<-{U&Ksn_<6*PCp;W6V@SV>_+jDSM9dh{A0lR~=uZ*< zxA5~3V-rDtt^ES#a4wx2S}bRHrNg109A!e^IO2^?=0=BabGXgn?GAGv+PNNc_$h~9 zaF{U`lke|v!C}T&OlGvh+;7I8>@fF|@fSMW;&7|OYaCY6xA(?T(6MqnAG(qoCmD+)n2eG>+IJ()3!Nb6(>MOmB$*=~>BH2t^i3D``j$!G zV#hEzCB|u#58Wtz4=50QtZ6fS&B7K(FnLH1&PxH2EbLqz8zyMJ5;es#@4}V|`+Tgb z(Ypqvk@IrB?7SDdID*O7^?)q^BH6iGb?o&`Jgj^BEc{IR=${ywz6~ApEt9?*l@HQa z9m7cH^>W0imxCVIUu~Ny(J>IWIr=8|Wf_UbiDzVTJpZ|lM!%NaXgiQ^s_6q5CioB~ zih5>bVcW#;<#OQL)AA)B2gES)5!w~`Mnk0UN>d`H!Ji0weS@SAIrP!rvFpYdhr8^_ zcg5H#o{{Opcg3G<>Z|)#OzvxRpifEJWqoC}?sM)1Bh$x}l6iZxuHuMej;b#}U9YRC zrSqjsaqlOIt*ZdH+mEvqj(E1lf`eB6#5+Ir-#Gt$x3q3;I^@x&gYPMOGC!+gQhB!N z(DO3)H@)?lrh^uZcsMt-Mpvdy^HFOG&(zdRDjz!Lm?^V*YhHcTqCRQJ(5CTyYHN-; zXI5{UMLvGSjLgsrj#-CPl)2`ZTgErdIHz{Z=qV}Zli7dDjlX8bEwvYnUUy+r-_JDl zOZgYp^!-dtznin)$<%*(GG(Rfnzgq@=^&h7WL%n0{ssTg$yqH_G zrCicgZ#r+w=uGX1S=!&$rzKT1D@)kOrUM2x^&h(_)4VB}Ja7Hjn*LL34rp#-s7JMQ zQnvo|PSU+*e^jg2|;q)rz>g_wpd+`01UHDjer zsyTO)MkmN_4)o|Ij?w7OycS^HnwXU_jb*^OhHYpQC}>$1OHmzsxjX^-?lmMP&2w@m-~LEN88g9>riGU~kE>Hbli-IV))XL{8(jXsB%d!aAH z==3@cc%}#K#a`+QF?ORbUwh5yTlPlZfcxKMQPRug>-Y5RfZCcJ4F%Vn3>cV6uglM7 zB`FxX%XQh_q?ir+r`Ig%lXf)H7VeEcTJp4rwpCM; zYq&W^=-s-nrfCAUJ@|j?R1Y(s+ae)}Tv2W{S-EZs_d$7s76={M(Bm_kTI(ul_qWy@ za(~TRAFVm~nVN$>-=~XpLid)dKSHObS8FCOoPOl3pFnGdg+kau^jGwst`lMwy%CY2 zxR$51PKeRu(mJ6(Ad)HnL132g7DDTUFuwH7`M2Zc^9<)`VbE9|INbOex1x4MUsh1Yl35COTYtN7C zgwn$+&#!2jmuT@%dbmlU(qxA>o?jW(2@!aOG*yOmLLA-8QCufPO8-a4JsuMHsjPwh z?iYybgboPZ$=76^(1A*#mIt|y!uPOcL;H2IY)Gbp>{hL=IDLH{d=mwkXl+h*@YUd3 z!g0DWH~1O3%4FT@^TVFmYgGUbDX%5Y|I<;6N~6U2ppMSg(N61O8MvPSXLt zMXnS>2`f?`q4H$f`urK|!_v2dlm=Vw1J0^imnZLApVzkDeBO}NJC;N66-tkVe=erY zj!9XX5|x0K4_QhqyqE}qwB*u~0iSH?C?9+^_=75m9?7~jDyegl^?43grbRV5<#6;- zx$-1c0=_}cMIybMl}5+9H741y+ND}&C)GE|IguN6NRe7W_>5dap(X1Q{52sH>16MIL zG`;}H&aumwL=QPa$a?%z;twciV;wq&9AuMo|71kc9l#68- z_*2vTr&lC!1d(){uzrj$2E>9%dQ_*e94BNd)8l}Wj4npGR+dRdXB@A8t3TAS<{oDR z{(<`M(W6Jer0p$WEzEi&uS^Qdk2F@4#7``AwnS<7E0e~h>ze)s7bv}^E0a_&Q<85G zhOJC0h)KJSKUw}jImQDkBBo2NpB{;N^b0WVh|Fh%-xKi@!g^i=K7A|GGggXuS|Cqv z;@F5=g?mPPnXsY+{XDGaME(=P%@MyVJX=zk$-+E~2FfiKW^53=N!Zdr2gLZi+mbGfj@!ZAHY4ebYfx#QDYV;q<` z|LXX3i8RC-_}d(xhx8XBpNBL=I>9D?fv|?bLtMHf5HeuBP6>It&dJb;f{+2T>Wlo_ z^Bn%)->Rt&_s72PtA_eTRe-AH-WpK)$MKL3$Gr11BK)X$K)vd0-BkLi3ay(;f!0l> zV99(wUBSAk)K6bAr0;xeZ4CFfVcypmKHlL*a9{n2#>v^*nDJn49??WO!`#y*Kh5!H zfVpW!Gv!QX4mj$W2aYleoy=kuR8{0)wOrQ>e| z$8>IT{OcUP5ggBZljCm&$GEpSncJPr9Zsgr$=vB=?s78Qoy-m=^MI3i(D5H~_z^Is zwCFK8!;gbw`k!$8ryPFP;pe~%D~Vo^Gd;XtXKptp6wf~9URNvpBN69?TO$@s)4D(aq7lcoUc#tr2O-#PU$$!|%GrtWP z(lV^;R^w;XV6%h{;p62-Pc6v7-uH&*OLphuqG3D@)hzr6Wic!Nz}AAKZ%HYW8H95j+upZE8QP>#QD&xOz^4Blkv~U#u<2)L8~yb0 znd^-Hd6EH}{F+a^iu^*!gY8_*^Mk)we6XGCF8DeZ?cW1YW|?HbcCOz> z8R{4#pXh0k4A}J4!I#5^I3{9ji}!*hzf$sGlRrDkU{8D~Vr-7;4jd9caf75S~= zgDqb_iTsPi2b=tV!k5EFVa^|^9 zrp>l>LGb5BJ~j}8u;gol^ngwOg^_=y_+Zn&8ou;zlF#}d;%<}-*scq629e?3Y>P6R zBm*`*+oBA1)qN3TZ~Yo9o!3boZ1PV;8QSXqiI@jWPdUy7e-K!4Z&X~c=Tau+aweA43GVUk466N;)6~9+87u6@2V(68vr)_ zH%A%t-x+1vBm=he|2XpR6d!E*AAzs*V^jVv%G{+xu<3s>%AmhLPU+t+8L;U;B=UEN z4>tYv@TH&j>bNNLfMmd?f0C1VPn3C3GGNm)C(2;gE{Yg?_hVqC=OM|1P5z=NgT1>Z zV(j3nBF5gmK4R?P+ajh8d?#Y;;QPVS|A_R1tv&y3rB9bO zJX68_g>e~S=s>v)bwhNpT)&8G9A^F`eBDmT$cULo$SMBT*20}dni&`pEs-AQ;js>%?C>;)XE?mT;rBbd(&1GOuXcEi!&f@I(cxPi{<_0k z9p2{f{SN=k;YS_*wZqRi{ND~|b-k<%nYU!Pufqcz9_a88hj~G7ap_YTrVbdk^^H1x z!g>hfGqb=j{VT)gILx{WjcojL9mXy;{sj&* zQNs9FIm~(t1&cxK{qn5f7J78;(3}o~_-Y&HG;D^N!&M5g#xA?uf_9zc1qP@@?(bJB4ZU(Mh}b ztB7eAnfL>LrhMiJfoT{26!9wge~x&q{EY4qWIiig74heVnJNpPG#(Q1L&Ae2#@0JL zV(hYGBF4TuF=FhmNfC3ePm35kjJ5^+*jbAr#-3Uc@&CwYZ7MR)%l|~g|0jQ4#Jm8w zDq`;G>mxo;cyq)D34bGE?$@mmW0&0%@lxTRM~uz2GvW({ACH(x8nh>*2OG`SbTQ6W zCKvJ|zjwsgR;=-YkG(@10&WrhhlsIzMn$|yn6WZsuwN!b%zA>;BW8?hR>ZdopB3?K z!n7O2{f6*IBL228>4uLD^vQ_t623BG?4YY7{)6!K5o51yj<}aF?FM?VS++)ueet7+ zu>~H8m_Gl1M9lcsuOp@({$#|AV?7r!{q2_`{wLx6ln%~Cf4fh_j7z;KV*1-}jhJnj z-xl!z;h_;Td4;_y(8HJjdsToLH==C;Gd?sXV#a&0Tj67OK>OB-#j$0T2~?^2Uu-`e zrY$i3Fo#DwJkDXpb4>o_tP{J^>AB8f?tRmLhr{$GjL&$E;YS>%Ju?1t4zq64_|*=x zcGLK^4yPs7^?yMkI!&;Bkmk7%82BRHVu4ue0&WaPdX^lh@i3k5EjlJXVKNnWS;IC; zf%cA6!9{)8U|!!QDVn)os!z8;Q6K3+KRhTGZISe-lvJK!1a&1hPBQ2-$}1AjJR{Ns zognAa_rf5xJ>rqyiWo+Ir^|VLjncQ+F$_+LaT?`AGY4y|M}g?W_T*gXYnHP(g2_z^ z#5ORpuye&QOxQS;-9pQ}3tJ}a^TG5*+D*>O`Ru$GyEuZ$P3m+M0FmrmtvdGlHorZ6 zSAxD?F$}$*le0L2$#&^uZLX1pZ4krjdqDd7$Mn%(vh-aqOdR?!&;WIWcxD;_ahs!W za!>Z{-Ws-Ay~`SH%AyVq=?l5jBy%L^tDuE#lbp}T&EooYO_%4#^xB3#l9dsu%$V!`1m%f?XF4?d8-rU8r?fXWceHn1yHv&U5q-n6$ z9K~Zj{2cB3Rt8>VCbyld4#n|RizAdG%RgPg??Om2`H0*GW`lXYyEpzU(%vKGn0P8G+Ww^6no z=i$7*pEp~_7DsU3w}L4I5&eLcef@y&4l3X?bAH`MPpX6%H95j@$3uQ>1Q^c%tZz7<@$vv@}B>j&6- zZ(lBZ!u$FG`}zUY4<15(Jb*F$Ht~AP(f{Eo*4cPKnE#_NBlJMC=Pml+UVSTg#4#gB z6`-#7v>EjeI)T!c_AzZwo7ONa(f%93tuKYd?E7n10)4l%{o=ld^JDb3Wam9)JEm2) zjjJBo=a`H>2%PWn^l!F2&jRnZB>CC3W%?-a{^`Ms+Qh?faf=&$Y`CF!8a|qSj3SM$ zN&P3Y`i`xI^=TjWV)l{&iN2&-m9m5Ch;1*2p*6dYF4e`;Ht00%l^32VXiFIT9`S$+ zhw0m@F&zVLeY@@STr|1da_;&k->N_^9S_pJ+LMzj4Y0=6^`Jw()?CYXo>Of%jomei1IG3)eU`eae9g#h zqm!xu<7=khxxb39xhY>PLCfL7G1IeEJ42zUIOe=-eUmK5s>YM6cl@%tu4=~vF%Krb zW~)1CuTUN}%KN>PMs1(A?-wj}FH*^i`P=o|!J%@*oOE3l6{=ZvxisIFl<_rH{R$_p zpHOr1*Iuf8T04>SzH8@$_dUMlxm)^fY3yY0k74dkXWc-$_eUeIi;_>~@|dt|vic5f zqE#24%740y`B|xjlFv*R&TLT-odO62kT&q(f|vIHz#7*6A4iL+?*tzZymF@SWV2=8 z#jBLrj92j`dHJER((eTG?z{M%U|xV}Z;^Vu>fBWlEnB0%%%_Uq2_^-Zjph1A@TV%~ zDF`ZWwj;e82z!5|VND#(v#|frQN`u@%d8DC57$X5-lo5Je2yUdd!(V?=1BW{q(>|m zN%!|y7gBO-crxmvyMuf6>zV6yP_I|uGrvk}nciL<+w-`x3H|tbZ$w0=<~dIl&>`5J)Lr?EL>D^@#u0%_6m7iL~-$$z%DLcde+k=8OQ{~rYY{bz0^t6 zS;GS&s?o6ue2urk_*CyquCj-=f5@%uq3sfcwMT(4+h7=mQyDnfxCue}30*d{2%9%( zGlxS1?#M5LuSPX&nV>J(mglm3wAVNag!ASQ_aOae<40bz<+5<&7862;r*eG6HEghu zZZ#oHDs6*~xUB^-wef=f)9=Nybwu0;f-Nkx$%oF)mJqf%gnf>dtu)e8w%=HSjTo{$ zhJ|<`U4=9Q(p#IRt0tsNrz@t#r>l5!OP9(aB%xipw4p;xmu+t0(?!l(!Y6C{@jYH` z7op*_((5S((b|ou{ng*8&5l-3GH?EprDrD{KId9W>B~uF7hiepY=em9O)ZO-Ch?oE z@!PVUz4BXhmR1oL!t1tI{q0`-ub~jrG{ z5mIjYM+q#5d>VU*xL|fXATAGH2tHVMVc=Vn4u4NWmdocaZW_LLQOo@0O^cJ^;izT) z%9dpKyr!0>WO(z66_Gn{e)G9!&0es)>FoLKIE%QN!_&~F=H}(|KiDpK@zS~Nj+>S@ zEjep`d!>sPEs@Stg210czTYIxRouWHmcOYvgJ#ck;V2DFJ55o z`+jU%E3AYVN1_v8#PMJ|kk9e(4#)Jyj0g{dJ(0ojDG^iacG)LkaZCE~SjMCl9HCti z^pdK>cV>%Up6&R-*>oH$T}MRkR7BcsZF~Vtl@|??%k&R0sRc(qHktA3!J2~vF@9w- z%r&xo0geYpnMQ}lfuqjx;CQZyjz8J)r-7rM8BS&@HaeM2j(?rw-{|-^IsRsF zJnwBz=5}yQ^BoSif&1%Ebf=uj+~x3ghj)Nu9v^W02Oa+*a7@D^;Fzz+oXq1+<_RbB zl#_YZ@t<@27r;?Jk3G|$2gf{yxw8>7fMI#8b~61PKG5NV!7+~o#~=#fUkb zI^%(lexAN2!_yZGzsd2}IE;~H=lxp5JpBhM4sj2Z54N?GweS^AFGW)bgUrDZ+d5Co zUE&txgKd50iIG1@KG@c&o)-D&2All5BY&8Du*qW>qrYB0*v|Wb$R8yiY8cSw7h0zZLn@ zlvyYrY%kc^Y zcJaZ+w|#uLx4@R)k4O0j#0Q)FXCj|_4s7zDkNk(k2V41Uf-gte-T+n_9+3>#%I7Bd zau3KcjEu}mNp$CnN(l{r5&0EVu_FM*cCd&h?b!!FH}E zBL7+O!KUX~_;SQ$w3fKfNd|0j`Suq47sLl!I&0u7F3+yRq73~Gu<2**6EZy0#zh(W zBVa3k+ee9Z2yFcKMtS-vV5=wdBA@mNZ1T$@pZ*Kj_^TqHHVkb1OCq0s4cPMg>By&# z12*}vuZPNk{tnpWZ;0}>;)AVxR9vsfJ_WVtQ5i~gcy@z%&vI1cD@hs>SHFu6mxyCq z&mYFudj@t`e_(v(qh+KAdaInRS*;O%qkO;jE99k8f1>Zm8NS=$UpV~#z_F};<)^BgoR@nYHL9p*Gv=Di)}k!<{f9DcjQhdXR_K&-GwsKp)YWKMRN zmm(%J#o;E0=R3UE;bjhg$YJ_mrt=dHU*_;<9HtLu^4B_igTpsFe2c?eM~l0~VV(`f z-|p~#IQ&b8=|`FTZykQx;XgUdWCN2gbC|Zt__RlcX;Tc-ju<}N;UgSA*5P+Je6quS zuLNEana(pDp5<_p!{<1BuEVPwrY~eVv8fEx7c%@Ahd=A^KRJAj!}NbF?oAGV+u`py zyv^Z%bND`of9mi<4nN}Xe>wa+ho5oyza4(jVcJDYbEU&o4ij!NZ*uq$hX*=5)ZsdZ zdF5<+8XZ2x;Zq%+>hN@jS&wacnjBu}@M4EoIQ$`pKj!d-4qxgp>$mM(8yvpUVb*e+ z%oiM{|6}~GI~<;0{E4dN?Ag>`*yKOv_?HUzReb2va$p{Rmq)yx{Hr2n*1|Orqwk9m zA1I%8hPVgI|7yeo<$p6`+THI(e6;)@M0~3JyCXhJ{(TW&BLC+R)8;)K@eT5S74cU2 zJX1LDPWiMm;6KPuR1d-QwRpaO50cMh5-_$^zlcwhe@MjGZuCEp;oha40W%(QWW?Mb z$3^@{`C}sfll)U6{h#0$pbD$HqFyb2F6%h{-{%FL93zH6HN6M{>n8^rN zMf^VD>m!~c{N;$7g-JJYv8~!7roa8ei0Sv<6ER~gKZ&?poupqxTq*p^h?$x2pAlCJ zKNT_kT-pK7#rpk3KA1jj&xq-}9uRSZFt!ge><7Yq4Q46=c?R=-o_vC_bJ=$fOdlKC zx1Rr%ThE`CXxIM*%3UrtF<}gT7>r2t%^><*;6^!ULtm{6*L7p=4dR5+zvexK*EdH8 z_U21LK@NXt#El$?b})Y0Bh^QBFnyzh(HE;o@^(7-jtGN}m7`1BmE1VVSRBD*nDjLQ zB5_{m1UYb{9JJ$*bbN^X(wTB+x?+RTQ z+IJ(O*uukV*ilthbUVXfkLeJ>17 z-}9i4=ZWe2oUp|aOkR?{cXX1z4KYq5LZZSDy;qPN`gq=%zUzh2S1$)ODDgjYCjjC$ zN8jZ7DN)CXXJm3b$GDD0?~>eTJCJXxd6pR__!7xQ(}}}k*fwEbE|1lwQeeSHDydOmygFr7`A;@($nRUhQd0qN<)Z5gOEubo5t zChJo#rJ?)&DS^IQHb2@_eT!cF)Ew~q)6dlO-+V>&d6`d^Z~j>I&?(1^nK0tan!3t{ z9+P^{s>n9=+uGFk{-!?7O&ML{Hr-rPD{K3V&L}W`SM#3i!@0nzniXg8mcoWM9dl0Y zl+j}*6~pu;!kSbO-+WCG-+QecF}en+ORxFdEirt`j4>T0IoIlIuDs=v8qM|YGb5uZ z>n;_rEepl>|Jgee_$sQi|Ib~r zkr0xAEFtJ5fM8275Cl|^3nGi6hLAw8U=r3uSt1DtiV~;`Dk_M(w1C#7YSk7OY+Zu2 zh+AJ&ini4j*Sa?%RJ1Dp-|w9B-1{Vg#J+9y?|aYZ&OP6G=9%Z5IWu$SY;z{|>C!dD zjE!%;!)Y~*Ufz*afla1Vy?wlAVHDDjk+53L)A#~pB-ZrgP%Q2|+L+ZfH&P=lo6?_G z#^mku!Xxmct~BQi+xEAA`x_4umDtYXi`yNxG!g3?D<52Ht{YfbR@v%`%2ca_W7Cls zU!2M731h~iY11^8<8RDbzO>SO0&>MD>)$qXm3a+;q1P-XpOvV<|z6_QN{lx52@r%k53!FM@b?V7!->y|Hrq3DI+EPuh)@ zDb{}TYx1^L7hAoJm3Uua!|DgkZ9ZZJK3&@OL}p*ecOT2mdOkPvwcLz7 zA7yPSI>5UNccaV}=7T=HD4YoIvTzs@@A8E3q44ShD}tAXdLT$X$MGMS01iA4Ji-Vt z5P<4%c)x(Nt{Z3t}*8J-36|(K%I080PiDk{dBIg zHPEeJ1GMiha4Vb5?7ItGV@?lW&C}Y`v$di1cS;x0FC$A2Z z*O+yDB^2vT!oi0>n}mb)Xdr+=CLH_CPV&{b7ES!{=}j`HH=>(>WZ5K*o=iQJM4o03j|80&kGU*>qm)hG2kIA ziJm=pmetv|EbF4jI?K&Q&weN~8#=s1<-?m}z?0Sb9x&TWWjn{KTxSy5?w^Br?;Akhyc`g*yCMR^ ztlmf?zy~kQ@PDY8?{XrJM7%J7mn#gJml?hy!;2Z*GtVhSUutOjZBMZlNWlvj&f1`T zguoX$f+3$(#0_*6Ea^_ zbz2c7y!0>z|84pDMG7jk&0l)h$5{R*Zy305NB-Aehxqp1f-o;)n9pW5`vRtUxxu~< zAumGwH{W`&FE@P0UV32H0v&yaW?f!-_#M`mInw8LHV-kAZiAIP`0SR;gin48oa;CV zJ7Lx6GvhwS$wz?cXot);k31~rgGK)W@QN}tRE8tu%)14hE)V~njil(T$7NBd+pJy9+t zQ_BC(y%@oS5*L3j0)2Rr81UI1$&!aSu6LIe_*`cNL>$-I7b%YGyl};FeWY9AMYoUl zBJ9T@*|sU~MKt@4Wc16D%|9q<+e6V>iHo0iI~*^3d6%Go><*6YnliqeZO$U+jVSU6 zISYSq!?B1CZ$24oK8EaciWHY9{W5Yp{J~AaB6cdsPCkw7>{Kb8S!6a|!_{CBojP)R zO6_;DgcoC7#@5#>K2Py-#Vg1zO;(a!SXYvr{cDx}8l|&N>HJLT+@^HyRPuY2{9YyB zsN@fkUAPTO=W()&=N84!kX;&XRq}0$UsC)s*&X8!#cz;ZxNno$zz_F67SV4cJDpu* zr?W@te6Hlofo0z?+3lN5cKfE0-Enb@jxfgw%5im6a*o{*9ba)bvO6yJwTlk>5k<~+ z1&Ko<;>mH78Soz?2l35RY_G>cc`{@_c8paswpip>E4hsE?Fb##f~b=N-r?8>zwWpj zIE-)@7VC`1Ivxd|<2fk57|RP}7YFvGlNkrjmrthqi{mi(b;mrGw;c15@bO?3efFP| zsedRLdK~}B2Q=k8-d>Iwgc%zOpv{F&&SN~=F^};fC4W@OA0xv)kMRfuNan-#bg~O; zj$?*Z>lo-Qa175o+cD!H-!bEHZB+WdQTmUN5!Ms%Ss0M8apcr4rnflroj*MS+I;qb{~=XNJ&e91D7_Fg9+1D`B* ze(&T(@W~?I;p8Ro$zuOqCoh9fmUuGXV0lHdgzcv=XRyTF*l6odC(z?&O=Uz1$?%KQfE1I$fEPS(_umQ6~}ME|Bwv* z70@S3TJiWOUkN!`(&}I*zY=n?9B)s`v9O}hpNxI4g$`Nb5TP6kD-9)N=&XSbS?r(c z@TcLZ`z@=OD+_FCrtXJAB(fJG6#pfL*|4_+4Rq`a9 zZ`t=C#oZM{JsKZe+ELC>+)lBtxSQev#r+fyQ#?X3`)ec}#w$KeG1FXh&Qi=Y7x~4C zFH?NI;-4zMUGZItf35ft#m_6=uJ|>@ZzeW$-kXx2=zEj*g~%@gb9^?Pyi35{ufjq(^JnHuWHx!NcT9V? zI&KeN-X&mz?*=FD3jaaJKZO6NW8U|_bIkf2^D)|wz<X>Z{41+qH4}td-ndQ|=$LzV~Jw^EkSmrza7`((W$MmxJN49DBS@~uUd#g;lb``a&c%z7E;s-PW~GwI^*A^iK^Ll};0L-La%#gi1) z&vS#tWnmuk3brSR!znh7`3yN?)=Se4a}D zZU!?BEYH$SNpIP^3Ik!}XuFH~rwuNAPU2KWT`lwmM%Q9#!Dpo$J2&3}Jy!)V+Omz$ zMx8Eeeqhs;$H68SISxKIWgnoo0rq&0h!cDP0&VX$*rOipb#U8w-dIMEYaZxz&T84a z3ZFxd&pF=Lw85|tm9M<3umbma5#-_|etcIU{w+S#_mMF6vStd#Tqj`s8$5pg4D*q| zYRsN#zX1rzoVoe6b(K?3&&RBWbc%4IB9X(#!5E`(%xrtD9Tk7-@r+Miw@XAhon)SKs+o`l;Atec4+~$O`)% z*_V1PnY&;XuXmJFY#FmB+APpm=zifVe-@s5bQWW}Q(UdnVBQh$tC@&*Y=-20E z`d$5fyaUQ|q`0ntTd>&LdpIxx1*8BwS6E=CqXJzpoWPHL;PX~2l7@mwJ)jv1B(qZ^ z6i8(ML@1cR?u;<)1($ZGTC!>W4kai3lWXBHyWc{|p$Ci?_UUDWuEDkh7S;l92Tq1Z z$6)bd=X@=LWdEOsLSa1A%}Y%^1|N??9NK%KbbR+Ibu`AJCiD&r>10+DdUP7ymLHai zbi8I5nkXgQ}Yq|{2A4ADrX)36-|3I_;7&S zNzK3IGH!I;qMGU6H;mD~((!OfxvAcMJ`fX41M~8dytY&|cV3+z-Nf6W_W%5wOwt%k zAJ=5m$(u~PJ9uHrU1IdVrbPF>`$|c(Wbr;i#vOB^Cbd!AzAh&gjgV(@P+7%xmU?0? z)TA|@`?rd11bwwFsCBdLtog=V$UH&yx<0A2hlX?ILQUST;r4cFE7#k5==v~@mp~RL zw~O6=>Tb8?IWvw9dVEHa?Q;oZ50DIG*3HQbg^QH`Os;KnW;0%2#wwUHqU-3OO&O=e z_5xw{PYAQ!TKX2dfW=NOsXez5xsS z$7y!GW1gQ|9W#6xCcz%ZqtYJZE%wYkAUnhV0dy+V zy4b6MOqiQ5#!Bu!^my;+aBC1)0b~r9*SCaQ57zcL7R-lCoNPNA0&Q;{>~({T_L!53 zJ>F}w572uWEB6zelWmt{UE6yc_GUpwd%Whw-a0V%VchAK;$Hck7{NM`%N@=ay%8{Q zG-TpL?_LOS3ZiZ)^ae)PVsYOLnF_{x5PCdc;$+(<2pHFh+faZKC$A442lEAP<2w6s zWgnm!^DJ@Yx@`MBSlb%}dve}5-b?H;-Nip*=^K_iiuh1&cYroaap3M8GXrm{#}?3_)T9Si@oF zNJj-ae1rG~c(M6^SVhGAKTL4U|C4IG#6o&fMI@hJY4*jL!Ady1jxt*}#Dqc|AcqeY zufR5bU(*Zh42-8D9D}uW!AHLcx3~-?3_^d!i-fa)s16d0mmE?DJi!fA&P&q)ymh zaZBo-#Y%sI;%SOcSNz|sf3iF#^+}c?g<1ay@DGkU|Lyu`7Q&Qw3|JR^5DV+BtiL_# zm_?%BIc6R8X~((npL5&;zPw}b1Mn+OUI71f$4A0{$1&?)e|OA!+-}Fi;Q!O{aqt7U z*%=>}ND>^go<{d=)RQG|X85-3XvaG21fO|IgU^Ww+59K$~s}eAsRi} zZ(dKn4l?Z+7G3jt^8WOi*OS*^U!Mk?ljCS!Pi{c`c%B$P9vk%-Kc>IL0chS2Zb?1) zbJ%N1J$VL^e?g}G@nR+wLilWn}m8P|y0kfG{ZscsvOqaKUw12pfI`vm7? z+u2yx_9C#?4Kk+7*VU8LaZ+1}5$FmwuP0A~JxQ0Zt0(jQ>Xy`#UqNJ#MtI^FE|=!@ z+fy^=R+w>dDJt z?`1ItU+mH6eI;%hE@B_T1J#qy!*#mPdh*m+^J=GjgMQG$f#?mTJ8(UDA+7;kPwt43 z<=cmOi$C_e7UX=qqOZR*lG-;vbijHo^YHtz@VwyP_Ich2WF}5W1-kw9dGe*MW__MF zP`z27XCq|$>+@WJZ3zd#PQVLw2h%ZF)N2<~cCwM6&1T;8Iy~^qx^4UXntCoSK&j`V z%KNX?bCddgwMHo8RV@!kWv*qK!}rzlYlR_zsK)0e7}pyXd+`IhUy^@;2pMXX)@ zH)v+@T#~{WJ%i?7YOIi8p3LudUG>}R7cDQByWNX-k(TUx5IZkpi8m*6TfQ`mD;{)22_EKeK$syvo_rn@FnX z%$N&pv$b-{lzGz^G}%0B?$jphmGdg+%$(lT=&b5FuxU-y*3I*JquFHkbo7Jww%z%? zZ5SpR3+sC01qYT#nmayo#C>&sLcNvQJ!@q#ci{d}JeZU_@K||1jbkokMqKOljMxh3 ztNo*_9mE{_Ls@>J;I?fq`V&1V_}_+*Tt=ld8JC9D4)Z>baJ_7q+U!tVb)QF zyD2VE3~Z6}p~bsX>TvzQl3xK`dCC@}n4d)`gkzryMm;h;3T05(f5Fhr0uMOm}f>ptr9&+`~|ixKei;^mrYJlWiLzU|b_^ z1N$cBdcp9*=yC8qlxvi#8Mv4>6Py!!^l^w$_YyBU2s^;zea*1=)M5ER+j|N35z|hb z*t4aumiJBe>)&@^OY2-EJW+@Q?{&5$u+H_&v4ex0S87Hm!7nVp3~<|P1B-VS^ew=I z4uf{C__$ZN;N!^gT~qTo_B5RM`Q8JJK`n&kaX1(rH~s_WJ^p)u-HgEVs6dB)#xLQ; z`WcNdn8ZN?=x1cw;5#FOxfV=#iWYxP(b8V{509pJ8BK*bNk#B{-WI{+1kQSe-p7aO zC5N^dFU*=5dLOTcN&=fNl7p`Y9)q7aYwnpIcs$rkx(a`8CF~_92j3063Q0<>7kod! zT~lVw@`4`(c+GpQ{zj7@8Y`(|!GVkr<3-0v1=diQhRR-iY}nib-P^w+pc z+fXIMyvN&^dSSZ|BeIz5mD8qq0lR)V*1e2Z`TsSQMVwfvEaJXwT3Kux2&Jc{V*G3Z z=Uq)~9jy`$MA;?@s~lUKFuE;QlRE@rswpv59I_jP3q=gR*v}wb27rk>^)TGlu_`DI z94jugAa0O0v29$;zq0>Nax5 zK%mJW+u;*X*O))Gu30bXH|&i4%7Ei#NaG)*b0$lhI=Do?RfQ~XUay}#Hy+}tnnGbN<`5_ju!yB5< zc-r9&O-Fq)bt#wom-6pv#h=L`?)zNt=c(Lxz2EjZGt=h$pS)c7a1b_q0+91^>Fwma zH0Y?qOM?rUmmn81_4z;}%jNZ5YCq_Sxc#f`2W)AUeJ3cMqIkCAvlK5?yj(HMM`H78 z#cabD`F)CCQ~aUgPsvDgx-YOu+dw8RbZKwMB{Q#pFzW-t z?G*cpyD4T}O7vNF7apZ}jN);Mna-krs$!eBVX!gFyTz5dXV zeSlsS7N6jp#E<7g$8Q_r$24aA_}G{DnY6~bxa9!O*(gr%SO~Pe3^eA{VU5SfS!u`7Tr2CMNz8Hfq_L{dRWwdTt zd(t0Z@3DQ@y8tpBzkaZH9%M`xK1U^8t^qR+%meAJ!3NGPDUQhHM(2y(1-SWJ(w?*l zdM#;B`V@N1-^582nztuy#BorM$I%vx90&6SxkiEBRXF*Z3C@W<`Z%RgHz^qiA?n9p z+nzKD*D1pkC-%x`R4+sYY~hUBYV$Vpf!<~AbL5fzTiTv9hBpKbiq9mrCuLxC$Q%%l z8UKOD@gLwwaV7*^tPh@Rc<-1w4cYw+_s&<}U*!`m<__Fn>k89umk^))vHn$4mXLlqmI-985ay-A?6VT)y)0$#9!lO@ z@eztm*$Me3-LY82&hd)JDlSu8u6Tyx*^2SVh`!SbY>{L6h`Ac~rL%dfW&U#;T`m@~ zoT2^cF&+2_IglR9Jz^VZ!sRnxoNQxxi&sI!ZK%ge16ZEf+{SY?7>n!!jL&JpM1X5v z4*0LlZH98d!Wq+SApj5fcsZbHUKTG0#OF5q-?l=3%_~V?H@fQpW4WSZx9m`@mJQpo znT`6_dGUeUYjq7IUJhU~#>)ZrVv_49UJlrI`@#|=lP(4S9kQ)WydK*rbS$4~UNs;GMx` zf%9eD;k{_@-`BXq?|#3)thtqS)2bKFupd2%mjmMEfOt6|UJl?BFJ2BnULPMP$VPm=91t%D#LEHkasc!Gc)vir93WNT`1}Fi^Y(!0HS;heTWnQ)kz-Y@A@fBl{I#x*@m&e-m&8 z=iA0aRdy~b`+bT#AD58y80 zBz{;T98Bs$FOYl@g@MEZBTQg#P&k=WBEn1RW_Aew!U#j0#WI{6ZqK!h5a%pQ7zz%& znbaLj$6y0%cH=*>whuQD=@M)E%Ie8jO)`@WznRnv{8uc=oT}weEGbj5+dE1B1fB}h zDO0hVUF9cd@BxP~H>Dm&R#PTs2C@>HPn+mI^^nT1F@)W8ib#fpulec&J|UvN`jCWG z^`VF4RD_s?F3OaqUwmlQ#!EG!q^eIpu+JBtY@nB8u#{ddmXJ4p$=aR(cESa`QhI$2 z7Sm%AhP{si#cKgk$BO}9bD-DGB0Wy0*$TSj=6N~uy}Y$tXE13oS=WI1r~?DmnhZa` znT+d=u*0U7Yjr&t&fMz~}xiNUwRSSqaN&G&Mmfu})+b&3(C zSnx4T9elCu9t*w%hK*yAGNgbvK>`fYG(E0`X@g<#O638I>n8v|FTm}800jd7OmB_<03?X17x;#shNzu4^>AcS`R1DlhuhHs z-Z!+-^3O{kq{FM{Or14<+H^e>0r9S_n>KCwjNVoDuoKL|hu&<%FJ|DNqMxQr120KQ z#DBniJ;Q#ia&bx$BuOdA!5|0QFKNu0J7=bE{>;}Rs?VBUUf2917BQVB-`)6zDX_0p zbcxxw_ta(|@4$xxYi3Pf=-Y2ae8Z4hp4MN{bSJlEpR24zYI)_+r`Lb$%Ne!ilO8-> zO-{#m;3FBlm3dXtr%T2{&cc$1g%1^Or<~aWM@?}3a4ftxDQ70b8=CrZJ5&Ds{OARb zTHJx>P?H%q?H*s9JJpmF#2lV&-*hY#v*nokcYf=VXYwoGypUoawsGz%exD-O1yAOc zz@ieFSBreZg3N_-xzfH%-?QMeQ@-hNl;WX^M=53*O!UVqo~(G9Vl!^YO>@g}(z5R& z#r2BMSG`X)boo zQGB`L)rxOYe5>LI6#qu?Gm5t=W;tELeO>Xpia%7mNAc&1QI(0>$xzI~lh{90aeu`} zDLz5*$%ac)sFAikB)rUok5pV*fhD>lJg>chO8#dKhSl?LXKde+k#Rq=YbQvz|cM|TIY9FBYPb8#Ia869~nWXJ4#0A|AGTP($5_^|` zWgno|85@|_h!ea30&Q;%?41W0?eSg_d)I)u53gamp*RWr%BMIYmm8fgdZ|dc+}%@pjjk(9L?wPd>8gMW4k!9 zM<1st>h9si4IvvI_$*~u%$soAM6Y?EcMk*%Q=HfkI%ic>C<0s9~bazD$)|uvTCNRE@-T% z*xRu9^9yi@=LEk9rKN439!P5&iB#mR^CDeW7Zp|Xy?bxNZwvg=hS}j)k}hpC{tt(a z91=_{^!#0sHIMlP6<#P(Q?Sa*ig=f==l`_z^*{CrFRriHu{%F`aC&v-Ma*# zgf_kqmf(+T$WIuYK6+?%W^pAS05DlL_8gi_Sk%X^FYGgFsCQ=O)~&lD!=MRg~{t&!cVJ?Q`YD^#?fY`d#Pn zup0|@*XJ!O8t3=8ukC52sRL#n(W=LNN%Nlg^0ZQ15$A-E@I2<~%td`J%9V608+)QT z=+Q&%L5~``Jl8A9Y;4?Bf5o!KQoky5VV`S^y}qz_&3#FEk6C;9A#Y^n%F>3&F#n6> z7Nq6mAk(s7cO%Zs0Dsibs>~i6+TrZXpIMmNV?%QB?{Ic5K*CH;@@pINlXz|>j;+p| zR~eGCaVaC36uSU$V!Y*;;-@!j(DZ(i;8`$;v5xi z-OX!srI8QkIciOfz3Ur4^+yLLj%C8y*e=igNpNuM{N(Fch-l!ob!}!*{jL*(-jSJ& z>v*2l75WSN^w@CFDTS$5PAE+4u_0yH<6oXqxEV>{otWaUZpcp=+?r`XqgPZ0tetB! ze?hw`KX-O-%f#ur-JGsv%NjpJx|WSy*yqAW+n%yFweN%>tuB0&C+w8HxBzg%hG#~e z_Xh^H=KDz2`n?U3vIB->4OpAZLz%h0NB_k9)@k9*K`%8Q=>e6raDI4jc*XnZ14s*} z9poRkx}cyUQrM9E(UwjrJ>8h zm*cs?=Mf4N$cmncve5d*e7znq)pZiYr_1tQ|Q$2wi@}25l)NAC%3%c_^9KMlWa){NlU~-r> z27I#mIjAKJ!;bu9HEVHAKUsY?we0t+-6yNxhs1ue`eu^;Wc8C&{?J%Stp^7#2%QTr zbT$$-ZH}y_O^edJ8X`Bho`dbnLraPLGWA6k=gsp17l#;R>uCjE;F3_KL3BenoD-AI zQBrhFIE6Eyu)^+k1{54l@dB4x;gs1?Jo8L1Fh0yEq-P*O+Vnuu1fDc%ZCL*ievgOd zTjSlrJON%t>)A-lerBchY^1Qo^pQwAn`}eOHk)jYO%xoP zC^$AzaBQMr*+#*#mp+jfMtM2TP$bOD!An2gN)V~zBvK}dC)zbsjl#V6vZ&pbRnx%a z@GR~L#~UxO<|EwK?eN9)n7rKrSz{Ufps8M-dvVhyq23$nA5U_@@8t@ijEg+1tYUeuurxP9k ztOa)Fz*ayPAKRa17&{@^#Z6xVa*@M#ZiVzLBD4owPsjuOkjmX% za)&@nH6^Bsikq{Uz#iAs-mpoFJvxnU>!;FgTC8^!*LtiE73VlLK!rAtxsZ_5Y=g*@ zuGK8twc2)HowrvH>%_g=#mom$A2}!%09V_03G`{pG$~7+h-B@M;Pq*ngTv`aph73< z-OcU?3C;>VZpg747(|!UKxqfU!33P8iYQ{Q z|DaAdLkS+!#W?KhC3?lH!{b(m$%mTtk3+kI-Pe+PsqJKDCW)Tij@77R)h5v^SsgB2 z9VSQh!rhzn9%o=%&?{I=pZ4*J^4@4b+`vFG5JKe#A*>m+*PO+3lF)%IPu(Eou&^vQe7y4C+`xD!@~%U6eE;bOgPb(nGJ zXW}v0Y$p#h>sFunUbR|hJb9NUdUk(u2NSN~@I_JVW7euc-Cqu zbF3xCQt8j&y_{(DPD`Wi3U=^>N z9#0z%PcEi_S6%}NA7((dhW0SAHp#{-D&UpLg#`s3!1Y*wzjtv1#-debBZUhL2JO{Q zwhVZ=v0o;~k8veG!0rQ#rRYBGpp=az*<0d8y48BQYq`clf&Q-%7p5eTA=?vHOz(YT zWiq`Fv4p&HmaHW(R?wCh(K>B0w~&MgdVQkV3{#{8OQM(T*J0cT`E)EWL5~L`n|RH> zgN5toLY16pLK{cVo-w;gLgzv9@ds=4c$)HX+hp}j^x7u-hqv0% z>JVGlagSj!ib)8v)!x0?(X^ua9Y&{^-hBqk={;hwl-_15rMJaO>DhqGLB@TFf1Vkn zi<}^g5^@{8b%2|(;DWsi-Ufr?=rOEhq-do3d|W47d)jWKXOE=xFTnSVv=slw?ZE#V zSP&dNyLG~cz>ke|0^`HFGVW%Oad+UKl|JmltvP0EiP?ld-sm=|$I-KS-Knyb-^sN( zVcDC}tyxqTT5OCeq^L2^gc6K zN{{hM#w8!=wghL4Yc>+mbHgOqgarmajBcGM!BN@X|Ix&y=qhte(aUKNR#~2g4SM4Y zmeQMKa00z4R!VQ0mC{>er4rutSiRSXis{*)qZcMx{k#IZmEHh@6OMv6#NsG;EYIUC z&|?hj<$5L#o@+DhMtU~n35$Uj8EN#io{QCGMpR7CZY^5@yuwJ!7|UA>MlV+$ceN1} zbE}PbG=a7uf3g{7^jIkRo5{V3B@a!)BL!vloahZ7%ecq!0s32`KA9eK-~^0Pi^K|S zLm;xx*0L*sKf!{hh&*PKpxh)gq5APgrEjw});PEHY$PTw z172>V(QEcRtS&dAVtRJ#DOUimG161k!Mnp?IU~HwqQr-(G24iWnTGa}7tK6!poa4c zhcd2nEbfXs1^3WoEY(=pTg;4#cZ@jmaEIB}SoqZ9Ddq`%8VjGW;o^ylr2l-rHm2E%~u zUMXg;Boh@I%DF~AWWu%f&oLZI;TXhoQo_a#4?t$xM`a5O>hzX*9RPym(MG}P{MhAysGM%RiOFkjGH}o+O+C^O-K2ajvHOKsAjrn2S!E* z08Xu{oafnrfl(Pp2o9exe@^w>InfcFb~iV?vAi6urTFXPl@7O7_cPMdg^5_ro*K}tVSo^sUc`U*V94nUr%tb_!=cpT!}4?H&dHyOSH|<3NEcMsR!^y( zRb97ea8)%%%Fb~K!f45OQg`Iv@cbTN=xTYnxr?jksPq{=p|)<`{Hb+bZS~AK)2I37 z1i4iHmPTrhvRRBrA6ZY-g?n0L`xUbv`rMw3g$)!x!IFpNw^*2IQqGbvbt&J1g;h&( z7Itjy_zc%2{6TdDCZA_Wru>49}QXIeWU(n_g9}SM8^T5AY%4S#zhl zy{&rm!^9?JE1Oq2XXfhzTLFd4D2|vYWbP!r&Z{)$&>9_E0pa=EY@N-VF&8pd zj9y0zsd9KP%3SXvV#DP@vI3v$hq!fKXIa6Jxqd~3+oPqPsdz%n$AhibJVW@Dv*ex{ z`Vqt3*uG20!eGE1Ca+*k#&oaJ&V64o(y0Z0KYQ37Mtb2OKl+OTs$k%;QdV%)IQ^j=Ap+ z#g$m6KJ%T8j+wu_xe9N1~?r)pU!eRj5b-~aIuqjgq$q$J)1nk+W^IytX#ve+C$ITl_^tkRSD zyd1B%jtrZ;F34i@JSXSa`MiHk$v<<x#UP_09R>aOR zibpCgQq183qCZ7(71@O~3(T)gnh-`6!RG@I(#k)k5W8Fahc*tifa_tDPF9& zUhzeWFI9Y%;_DROrua_94T>LEyjAfw#XA(gp}0};F2yVpN}7ZfXDDWQQFMI8-4t_F zm*@;qJWBBx#bt^oDXvmHOYuU*ixn?dyh8D{iq|N~_M$onWBsCba#V-=57 ze3D{5H^t^e#gi3JQ(UE(&lY_Y#VG3$vU ze?;-`6hEnWtKw~n|E&10iaB&q?C(_ksp2mbhuw1-x2Tt_xQ*hrinA3Tthl@4!xR@N z?x*-@#q2ASIG>=H^#zgtNO8I1(-qHEe70hCs)?P;6tkQo^6M0{gG}Trd z#ZHpqbj6&-NOU?W?xMJxVvMtj>L0GSQ1MZUk5SCw-V)YW#bt^oDdwnf(Vwe$f#S0i zFI9ZL;?;_;QT$WIH!A+Q;$JA{;B<*kgW@L?KdtzA#oHCXqWD$C9P=*rcPaj-;=PJF zAYSyd6n9eGMKQ!;tv$>QoKho-&GL%sfx1{ zw^!UnajxQ?ihC(8R6IcOaf(MP<|`8tpGk_RDxRsB?^1~VS&I2;g~%^e%r`AWzE1J2 zitkYTE5-LKepvA)#ak3Vqxc2IFDm8>9}=H;6@R37w_?5*BKpaS+bC|UI9u_-in}X5 zOmTtYeu{@F9-;U|#bXthDW0U5ud_(}=PF*H_$ze(}!itkd) zS7=0klVZM6Bl2yE|E&10iut~c=9Yit(uT0(ef)WnhtZymnx*!)?MSGDjKNRg~G)Av&}ptnK(p z-c4~&#k~|4DDJ12{a#|9{aC`I6zev?A|)?TyaFu8dkr`X^>#Xr2O_f>^CrhUrk^|Z z;ot4}2k_aSOMS-uH;xa7zsWKCdA2w{7XI%YkAT0;G2{Lx$H&9p;h4wqmSgryzwfvd z{!YhiE!Gy z?(O(U_}oT2>^nZn@d@xFj`^n12*)Mx*=9)nQ{Wdn=EzsJA5vZopK~gaITCi7;~My< zIp*kCu2YBYXIv+l}0B?JbT2 zsOz(hk#>^6zjDk`xf>mGbnYXL*_Ok$N9uFL?o*CAN_VScj^N$yn0==&J7!zOYmQ$A zzwMZPr+;_Me${_CW}hR?|TLb8~6(^hqf!r4z74x1I zIqywj-h;xtj)i%z30EkdrI^>B=$xl`rQ$V;Z&Q4);s(XfD1J%t8;Tnhf37$gX(;h& zrJBJZVmpyJ_*ixf{%T&1{9alPUdirMZh;r>kVJ&GSvyhZUg#XA(guXvAQBtwgw z4=wB#9TnCO%=0cT?4UDza>T8d*KezE(>+RP0ETUVCrL!0T3m)b;0-vr| zSG;|WjkJeLJ8F;dp?%8e*aoE?x6vJiB^k?s^oB!6_5pg=!rnlFb7Fo7*2xhkpVq_9 zCC2#i5zB2n-tkyy54WLlTlZscEVgQU8)1+49qpmG8MQYZtmDTCwbLXq)wT+^PXs>Q z+pt##UD`vDAZpJ{T0jNo+F|2ODgeRruw9s{58&V~q#@^I8^EIlUKkOcPi{v$O?S1cN19K`#ci6 zPP5!L+T*ib_5pg2z+R@DM78aHu(r2tCHa6%j(M|db{n@p zk45X{W1z{=qU5%5`=7D!Iulm~J$;>0hwcL`!dzbmJ>Cc6WZT;iG&zpp_B`=8IPQhp zcpRT$k$r&PZLk;KN4o6BHf?VQ>`{;QB(I=7jw))*w&&;BF;x&7C-%zC`v~7)ey{=k3;X(X2c92n2Qvpmf_W211pPba2g}-Y zPq4D>W0hIYS7yFenepjI+gArTH&`;}23xkeprT^&&iWY*hXvT@#J;(bTF?Jo>vz27 z6P{S#xOI1a`ry{rEk(*T;5{tPj+8$747)b!jK&?iFzZo6!R{THcB-F$?b03_QX32F zKPgP;u^|ZXk8Kz+!h5+J=j^H;x`;(YSXnr>YUmfim3t%4JlHs+0YSh_B65me=_@~M zV7PnNd+Cvi$SQ0C)a)>Eo3S4AB(<*i&|ft6x~0P^lOzt$B2JNRzFlpM?D8gM?kL#3 zaO|~9F-uudp*xV~5i=8%wH|%ObxS8!+Fi>kXTwracYjJ{SZr4f-GL*VkqJvXX7KRt zPx)-dC;h`c?hkx6!=KUcK{!8=sZ%}F?ol-q)26k~PmI~zF>IN4L}r7(+b_iaBR8ac zR`^L_c;tq_XN8et8+b(5Esdq8**hHDyP-F_W@tT@dHNAa6 zLBXoBz=}7KCp4M2E128%vD~cZb2DGd&Dir%)~2EZ%-!{92zetGFTE(tXJmZ~=kEHt z{n$^!{1^XUox6)W(qZnd0FvYz%-z)y>Iay+>j$$t0q9^%zBiC9TAh1ht#cv&ID1zP8+G~WtGSGk%eKn{_**7rDRMPG%OguNl7v89h7W7dfie zY{sv4*v6@P=+nNL@k;{Y1_r`6NH{MPeHsdRXWYY<0pp5s;qy*O^d_wipSn7HEfm&b zk)ycN?Ii26A9Jn?vB-R0kAR<5>)l{;n6Yb*f?-sub*LIQ2LCl!Fp&;Dn!#L2VhvIn zr7=k9EjL)gHwbR9NRP1&dAR4GY#hxpdYBU@W~)>p1*yabcp3~$g#k62%}Lmmxh3Ya zqGw|@DQ0N`W3|mFOrqBbw=8t&9c*w?KX}Z2Af?CFa?H9$&mK$}J-!27IXAf}#y=SeI-ro#Pp!Z{Y;P);eTy72`Ixk8sB6fp`Jj2P0*(&}iY%%l3 zK|*`>Y)WEHnbws=;(p9Y85OeF<&nOJg)>hr!n1>naPd2p9-}Fn zjss6s>&wA>ILUUV$&aweI{6}VLljM_!(9(36K{3)QC!Mh4&kS zv^HF^>QSQ$Ao?*D6(L$+2?*C2J!`CV29Sjx+`2A4=3@rzw8Fmh?AGyT0qc!)`~~oA zc;jUs8Xs@A7Bg78HF`W;eaUQ%CSpt!O~j4R_^r{3?)VR`n$r{&-3ie>R*T*P21|bp zZ?i>uHn4H@>}62$HgLC5h^EoISmm@&I8J(YYv~@~mquC|M#wIMk>h+ATdeUC#;Z%y zxDCOo%X?%87F&5+A=TyXQb}EeEqu2TQJ`lPOX!_trDBFT6+7aPU(lP1CBe)^7QIiY zVXx@%^twSK2^!`C;flS)$J689(QP_}ZP*d9qxXuz5_&A@K}zopE2U?{ie5DAF*I+G zdBya4V!tnE(UVkg4H_%GyMXXdu}8)XsBbOO zvs+72f$fa6qzk-5Eiz8WTBK+1_j0ksWMnTY&Il9QDn_@)PEz!GTnMdZ&x#xvg9$hm z@~vZ8K^(Jpwl*i?VrqqjPm#V@`ePY{MQ(r5=bL|g`+$$@6<99Aas`$vvD}5_9xNNM z+=t~+EPP9VZ{zYG_yKDNLEOQy3FFE7Q3t*~S9pdUmRFP3ShB5@(yLbD+7zge$W+F*QOd z>G)4JaSNoh1qaOxQ-x**sDKI4&fbJt!S`tPCd?$yDWD4f`_nj$JgL+_)_#26&!5dH zo;cqU=3bgNzv>?W|^IZl?U&y2`1i=VPLky6IEv=FWq#$vjQ* z*_)6Rdu4Ug=hRk~kDfDQu2(wlxbmUH#+^K-wB)$*F{4Y4D;_##+~9&%Lx+tX+^3bz zMI$aVrO*Av$?Q!(gaFyBN1s_Qn=4qyyckO!mW^1@ykVH7LOSY@+hgIrtR!V(q5hj# z7!GwCQA>LdXcs$1q$E?&X-( zX_3qGm3HDYCovJ4JDwqN@wt;aNm3a9o6McWEA3yJJIOsHT0D1BI~zsbWiq!>2HDB! ziJW(($XWUnxv%8il)R^s^KKG-w&jYQeo8)2$p?{{6~WOCa}l3+nNy8(%p8){cIqsGzl_Z64UQ~x z#H<8U&aydK=7?eY0{3MOe7E9XDP|bd*#>_L8FrZCki`xgC#b{RxE+q4Iy{GDi9=T> z&w!jP`?BQEeVKcYQhb8qQ^~N&^G_C=HBQcJfh;!JEJB-n3S6pqrQ#dOu*qwOEH*hd zlyV<(ve;z%3T^Uf@~q;mig%E)FRweY*lcuiUOQy5$%Y!*f$9!5{O-6ipy^|$Aw>WtL_>P;}rGT@looSEd@VPT;-Tg zOtv6UpHIx|9rKAv7oVR94I)Sfnd5_{5n(ne2v1QwTk%DWR`fS(|d3#(J!Yug-v$Q81pP$I4^T)Vn0!SA+ znV*QypaeWXqK_?UBGR@)IUP$9HV%o;v&U-*IjH*QGB}MI>qNGzL4zV za0!@k;4_h9e#Pc`#kVWosCcttGbd3hj}Y^qDfw%P8x?=5IEZdt2{%HJV}KgEL;k5GKFVvY-za8D(>G?@ZsSbSd0RXS!KBB!&+>5RwvGNp5gVlyX^ zOOu}{`7Mg?R=iO$-)Wb)J*D^s#eXC_`+p<5xP7MhOE8ax&xKS}9mQrQ+36nyrVgJM z2P+-Eqb~P*Z^b;v)ThH~j55nBB4_zS*jL<5F`ucT!)K)MD8*wGmnoj4xJGfE;>C*V z6<~KIoL;-WmMr873;Z^UQ_b76n~)jBgK5Sip|dzbEJ>RlN7T| zEAlMGofNZgNpx8574E6{aK(j+`Ro?`V-#~3k;qvl7A{g;qL@9jqEoJThGO>ki_RH} z=PN!}@iN7$6knxyjpB8RZ&iGU;$JDgU-83=H!0qt_!-47C}ufdj%$Zv)(1rXp5nhN z<_IX!2_nxGMx%a|`M#aV*-ItdQSl*)yDH`gHPL7NLHHQO!xXdbAUfj}^O+&?DT+^1 zJV)^Y#jIb*z8oJXe3@d_J4F6d#WySdx#Ig2Kd5+r^CJC0>2PjV3F}S8?lyu;+GV^teB%DW#7Lm=1@tI zvur8M@}#hoC-I2&a+KUxoUgc#Vve~KJ9?g@aY{ZxG0T>sFJ()HTdm}?6>|iq=+`U0 zP%+DyqH~4fs}-}%DLU&Fb6}{*?^XO8#g8iHh*8mhUNHxdiu_H*98W6pJ&Kc1h7>u= zqQV?)D$MeyaCgOrDK1dlPw~-;hbSJQ_;|&7?xa#B=b%@KLzQAZcT%mA>$#K8RdPLd z(nU(nv9w};jpCaW->R5{Y(@XqiaF9&PKinl9%Me(bO-&Xv-Vh){_`0Q1jh(>6Uw^E#`_#nkO zihac#ku7%gTu4VL`7w(3H!o6=(kW5=BgN&4XDB{RF$acAe9lpPp5o<-IUrp0Z&1up z;Ud3FF)sgT8xHHXQeW0}Tjt}kFCIHlhM6d{eP49;S4U>Myy&opzyTZTE@uBe9S4BC~c#~uHVQq1IB>dkyX4~C1$4o!g z>$&eq@OL<7TE69&{Za2b9uJ@Oed9;Ir;e`DyU^QYM*c#t~uUT5yJAw%xUN z%s!|b#|>b%15lrF?CF?&P`w@h5!}x)c0n$IQ|Gc!tp0ywhvI}GjOrvMEGTn z8AtX#QKvQhX^#8CKg}`QBx)QFg1^A=F!+ldv#oELV-DwLUlnb#?t7VI)_t#Z+yl&g zsKY*>b&mUiZ*kloe5Yf!@3DP=`s@$d=$LJKk2q!>_i@Lp%Rc3}2F$hs?zf;rrQ``(3x{a<8`=1X(D!TFSPbYDle z{wVx|9dooF(}+4xWBGw&_Fok^=7>M03w0u3rVE*)0*5)~NWf8!SubRIQHO1YY!e{= z7<`Ij4tlI`%)VW=2~cMZnCVEC{-yx>v&0FfK_K@v^G0Fjfx^5$g_+k0GfxvPQCy*T zmg0qqndiv9D;2L%e4FBX6*nk;M)6CE-%#AB_;ba{xCSH+?G*cpdnq2Mc(~#s#gi0Q zDXvqDD747=(86wJBocS%hb2OAF6{iy@W~OkUUP`&HGmJs!u`38=ef6APlQibheby0 za9!*j<~TwjT!D}8(%^ccJ$O-jj1TQoM#pbIXvb}IM`20Eav;6o(2;$B9_#A^3C@Xm zj+`P#ocxWhEt?x<)_&}bZDwy^H~UQD@v=LKVKM!tW6|;Byu-sJG1ayTF!zaIp{s(u zb*P`w9=j35-WgzR@2yrXn;YdKM22%oiW3{`1J&Us{{VR*?sQI@jBjJRK8})O?DfXu=;XHXI9Lu4+dyvw?A0rQ;BIWw z_9|eHdbEdK%r@G~#3J`3(A%7YbuofK~tbXVa&@O!?@G5GM0TxHSB1_?6%XZN^XUK5|HKM1kk;inM<|;P0sLvSgMKOfCX` ze0}4GK4JU%hDJ7g*o{d+3Xbr5Y&htt z!qiirC`{|IA?3B-fB975W**Q73BH+Pq|NA|#g#m5uvOLvk!q8lP@QYnt8zyT#pEJe zx9*AzTefw(KR7t@;f#h?>hm7k`^4Y`%wjQeaA0uI>z(O$_0z(M_t5S$Z(uH!aLmH9 z!N}*4XSOwzH#F?n-O#uzt=;Cn7{3#Yo){*f&#|q*v!I${ZG*J%w|jr00iY<`-rn;Tjuv)ht`qSn5~hUU*;or%F@%K5<0r z3-4={_t=+Dm9qTodHEr4L}qCBWn$ldxcSBhE&Df7DQW zKBn9Af!Rge`IwyOPi??tEymWA%AlNqb7(GcQKnsA$dlonnc28=+13|vK1K~K>+?y| zbMlEfCuUxe3r_GRJQ_?K?QO+uE58`FE^y(mf?H4Y)3W|n$f;Jk;g+bwc^iiF5!zbV z;DsU)Ty0$oC1wgA8mQ{ zrRUz>wC9&unUO>4C?Cy`;0LWmm#pa&qw9!26J-)Ox}912>aq&GLdD1ZDxfR!`yY zdo(vn4n2nj-u14 zC)PS~o|8_;;4ho=oHXLr$}R!$>onP%=VT{=Z8A?HW5}Kls6a%rnaf;B;LF2130DL7 zjf?DcfEqxjI{=+os`)7ve$FnN^PGH6ohJZo&;Xsyc}@xmoacni@!9VIZXj^36EKHw4p$M61uz`+XbPz%Z)3z$y8^U(Vl>qVV8 zaD%bphf1u$1rw6GM$^)wSNVHlbhU6Xb)hHot+2xf9$;pd{xEW|9|eiNk~Wt zTUZp-ONf9FTg+cg~MWF5@$tOhs7%5%MeMIjz;VqN7)SH)?){EzX zJtUBy8)Jf|kcBkpJky-be}gFA`7Ysu(j;LcY|6 zD>h_|*^ohIU$l7gBN9)pL+`P8^7St4^OHH&SUh%@c9kGAFG5b26Gl+TA4ohoT~5T4 zzw653&5w}Nav~nPbFL}=YdKl2x3D?As2{SHbDwe{ zzM))Iu0C0=A6mH(PyUI8D>r29Q!d1_T)sYie(cUUmJ9s?{82B{&Q%=wnZ@6(T< zzo8#_eXNHY-EpJ*h$pA}74(yza`C?W`}8ZMM^T-_X%ZcY4K^s~9fvIokMb5oMO(-` zY?xZH-h@)69 z=-ub=G;4Y!uvSNchI%-SZGDV8?s4?E2oF|1tOb$H8V}i61#BBg>9HChwc5yv&W3%5 zqAgh{Z7DVjSAuIL%xCs|R&VhQhgE^HILAjb<=9|dVj#RT9iGl(fe3%j(hFM<6=aT| za}T@KIz`2+(Db%b%9eKS1^oXVw(RKqC{?sD>ac|&9tvu40n)Onf!s4|2}qAW?1!#M z?<#DGXxZ{D1eOX(kli_Ir!Hq82Ss9KsF59pdB;gJHj7{^hs^hIP(d#xQEc3;*qHP@ zBqcxQ$~J}`cWhC9-@fOKLIB$6@t6y7GPS@e?v~lfZUs?k>lUdIMF)4uiMkiH?ig#` z?cKdCFW>Taq|0`N7)y_3EQEFP17%}678s}3`Jq5!k7fjv`dY09IX4Ucw_-yEdW>y^ z{WuFGVCR@-5jGqGz4INOPVZuemGr*vrS#T%DLucp(?QNXg#T;~XtGw36P5d!>tZX< zfyW6JV(D>T+0JyzVss9MHuy+-zW9~b18;ZIbicX*!CRcDf}W2ZcNg&IPCAa|dEDV? z`0pH#@CVpXM8>}Aa4h~i$J0NB4dtTe2gCH?jf3bi7dxKb-PqEV$$(Ej-jp$U4L0nG z-kA=^(Q~hVqOtV8to^-phHZE|n6+cPGR@uQau^$l96;IJg?mSF)>`x$yJ5dF_e210v_|6(b zGQC5+lwQ(H>6Lq_?QblCvz@4dp5OHti~Te9!xiSJWO}fm0nASRrC(_ zQhM#Zl%7|e?wSK2n&@IH=uLAthTa)oN^iE8(&OrB?A4B*1&KLP6+LgXXbe3TCL2F$ zlPX$@hGmEg!O`mUd?BjJfhi|V_vWJ!JjRJC==s!@04~G*=RZ#3&GBNL#MTvCDYj#<@mw;;iPfFhcyquD9NU$x zxC9$7#^zLZfyk-r-^w`ArW~{yZj)n)kIu`zKo9T2mbN^fBG}uh?riEJPv`_2I za-~}4j1YPAM&1CB8WK9+nf37|gknzTa?$C{2A%6n6!~0nXHMvW<<7p*CT9)^rkbLE zGebaA=FOQud)kuZ^x5-j7Qy7p@I_1KPm6qL@!W;8X3U*7H92Kw&4Os*%y|nICDXE5 za~Guz08O2@c=GINQFZlMrTo`D+9y@zAg`46dXnznKG9*9YA2$)dMXu7?H)Dc;r@_j z>a4SAdgxnAK#LYEp0X&?1`5?24L$z&KFKaq7R+0?aM8SZvx`q0nrsNbC{p*5va*uW z;-00&Gs=5SF6}kF=Mmnfl6w!6#K^>P?3-Ew;$0z~ze)7W|7Hnj4H#o!+FDLFm{VTL z3bAp{J0$RP@S6mF9X`iJrstfv1vcjS7+Xth%$th>v&>AxdHkFpUn+7=18rZN2XaQw zynM84`Z?FLG@R^>4r$s$NICT%8n_Ug1fLMna19uq$~m2!FVHbPxd1*ztMRW9{6cJN z!Iu6iFm~tC^G1micX$!MjiOIIyf%{yvGL-3Vqji$>6nIWX?O+h1R2w>2itx*^PppT zvdMXMq@$eN3O;q&MUV1tEe){}_H}GGbKlw-;uE6=_f6~!v7gb-&=C#U-P)(f+i)u@ znZn^8Muiq)`1cor2I3__FCak&A9&Mo3K!!^2*-YG@;q{oHxs7F(zF#hCxs?Yio8hV zT}0khlEV(=|)AMbc<>kXPGRL_?1G7Fl1m>9CIq)#}98+oU zg^p}CWOzqPIopbCHe~obgZg>A=LhC>;{xHU$;ivLC7aG$gPiS5Hk}Vq4xKN+e=;zy zIlmS;%gr>r&b&j0{$_zq4<9u#4X-(Uu`vz%4%x~uBFNc~$d;Fn3z(N}#HRyfUZds; zUqXgX_B*oayfVm>kdsX(*M3tE+nNst$h@ZAC;WRdbh3@ert{q(Xa6Oe&PLEdJ?t~Q z=O*(S*j%`T44v%nWYc+Uke5PEHl18bK|OpZP!pKf&l!O!ch^n$e95^a$a!5lKQOP8 z-wn*`Djy_MC$Fn7kWn64?b%!=CeZM$-T)0HImvBmWxbPTqDD!wQ%gk#fziqdD%@ICZc)9Q@;dR1S3fGZ&;{o>* zk^fZq0pUl5`3<|3=Oy9Sh5t+r$MQCq$HFv<IB3Ew4LFZ_`3PT^;T-xTJx$;!`blkq=< zv(d**&Nn&6ZH4)a#pGRty9)Of?k7AL6!klZ`ewPR@6J8~}MtGC()xtLk z-zt2M@O{FM3O^zIg7C}2yM%WO|6O>maBjE`qU%RZg}Ic^j-B&eW4;zKK3uq~FyG5q zntsA5;i1A@0%7SZgvSY=CR`&-JD--9^J(LS!siGt7v@~r(qAI1c6)d~YiYI$-z0pi z@SVax6TV+~yYOSePYORP{DScBg76}FxMKJ{7K?Pb+c%U$CR9gB`!kmMde3I}~;WLG4uhP<=E&Ltf z3xqEc=G@HkZW5-wN|WCre7o@7!uJVtE@yck5&kb>wJG$R$bT>Vx-b`{o6f%po2^Us z;doX<8m?Qn^sR*pg*yos3wIapFFZhal(5P|^$+9wp2#H>^G<3C|EdQ+SE+GGTuBVR|kT zzFhc9;jO|y624Vu*4`CXUke^>Z#!k-HBqc2O}M7Th>tuVh0v-E?7M+%P?=9goZ zewOfj;YGsd3NIJthi9hea^Y))w+i$7G)w;r;Rl5u7Jfo_r||Q_zZHH>_>aPG3%@7K z1vOTl4B=eiroyd-4;Jnqe7JB|;Zk9Km1p}sUibvz6NM{?jqb(xKy}@FyCdGe!iPD9wt0ec(m|X;Wc18-YdW@ z@cfAGhuFw`e0_ajz8|?IFqc?t3(Pe`KMmXlKA+_>FIR+;^3lkj^4=Ck2GflJ}10`s$>A%VGIcw}I{AE^k; z_uf^3`R?27&hfqX)F7_~pAneP9p?w$3g+4mmWKHjYNqDyK65$Jl*9u=P ze3S59!u7&W2)`iwhVU-oe+Xxzeyq#|!t8%0Xa6(iy9wh#!lQ*J3eOZ?BwQ=JMtGC( z^}^eP?-PDh_*r2b;@5IXq(U})E#_Shcx+R1838!XkW(RCU+CBSaLi$T#<3rjgs|yb zhOn)91iEzej|iM%0B%!9tT%!Z>SI?meJl_4hwdA7XM{M$(e=TWjqO0`1|f~*0e)>; zZFLw#*}qvnUec_59P<659G-)4gbXK`HDq5GX$j5R{IP;tLl zdXwJoMzG}pMtd=^BniP;-2S%Ob`Sh|w%QKEMR1ZSgKzq-18e!(9^cSUxz?F+Jgj@M zSsq}t9QuAM0z+PZRo^b?+la>I@fL(Q>U#tm^RP|nPQeLNZJh#P#<l_?GVHhkQL- zZM%`KH}aaZ^0_rJCWPM=1><>O&eFXJfgZ<&Lwr5(I5?lMdifM=d4N$5BzRQ>h98DJ zDJFtj3w=ySeKuCGUO2Z&U^7>cMA(!-Xh>hGD{9-}>)C2sRp@`|)%2S_x3=}0*lO!t zMgwke2e#GLb|ChKgW}l4U$IR73v9K)Mw_?L_I5nyy~qCWS>lz9Ir-Nl#UI0lW%}T@b>ET1Nl8T^}Zwp4?zC4HnPx zVDT)Jtg6G#)NYzQEB$cE$*>kTx;z|3=Q|s}RIUXo&ZluM9+fYT)01y{V1=v$ta3&F z-5g3_r*38q4(k5go$u5>e{5#w`{RJ*JN2KTIK}ysYqA#9WHxAdwIo?#*3POr%&gfp za7A=<^GV4MljW$Ip?Bu6AQ?mNjJ;HzdcB?+8cG3ka0rV*x0y9C1~+NaZrECzG?g{` z)0~&4Ki@N>^G{V0*29&XALEM(5Q&Q6IIXZM4T?QC=#QTsL}qvP-OfC+oa)(mKYW zQ=tA~#10HwX<7Z7z=+-O=BvBUO1C5Ixix`3w@{BuPOhIsD`~xGC2dvrNzP6hbHB6I z+lgD`?Zm-WTCfv0s!?)beQ~4yP1qc(yEiC;t+Xb^jT$-~>cZJdn>3lW(r7AfRreVW zw0eARZs8-x<;{2?2lo3O-@5}95%rHpMYQ49yZNNO^()L8;HX4$a&kq7M6csAdu?ge z`TiEen%9r1PZieZwdve5zMw9eKe#^mAN48L*Nw-bzJ|q;$JNth-!HdD*{Qm^b#+~n zfYQ=+pEIh)F-dKz;j)=_({WB`aInfxWn{tg7S$Zq#;{O_c_~Y-=i?zh!-K)R=df0W?PMS0%}|BO2&RI+iKS`Wp?6e=Vkn! zUb6%zlK(2(YL8LnJI+E|ZY?;rGI2h<1aD^YV8qG?^I*U#(1Q6yMmL#@_*Dts>NJ^( z1gkwRSP;c7NxTImP4F#S?9xPy!|rLE+aR4Q(z0{{d`lNwX6P?0a4~c}^P7 zIVXyZ%U}`mo8g+&)ENo$_R+irw7`Gmp#}b<@Y%v{{`HM*t2xcyZdy~PIk3|l*lG6s z4Q#79&B2D6)BOM5wwfzKu%YIP@c+=Zn)?cUP1?2^PrTUGd>34>7=0owFF4ymJm*@W zKYZWCHN#2L`eTSVtr^11YctyLu|?MV_aPLuZ3!NRtt~IQwb%}_lm~Y~=wLpwIGFa< z+6~7)E`(|~7VtYlHJ}BwwBxe~{$5l&+FRqo(00_6kJ){@O93T>%K_5~b%0j^2mct* zegFzF9NUkX>t0A|aBS`PQ666;xBE5VVt})^*6yzeUCGc#fOZL#;g<;c$qavsvt28Q zo@2fa0KOe|cGlX_##&q41hpFsIEp|UYkXVV?lb^jt48flht3NC{GrWu^C0Hi({_9W z^B;tZ0S^*30G=gm0sM*ZV?d{D0Bx+D0>B3wAkN;$QW+no@Ks=R(7~YoEIUoF@hxDx z*8n#I4&nTozn9tWeMp{R)E>Zp6ZlC2K0c1xalO_sLLp!ofu`5^HmF@6Kn%A^(IGSO z?*-QHNQe&2!#{QxnqONt2+;lzNchn1UG9vQ@A;M{O4j0EyV(fx<&1M3x}g9K=Gh9% zA$9+-r*F-((TrRi4>?;k*neXXW(?I@n>W(d7TwRRwH;*E+MJm-)VWz}gNZg;dE@tG z&PW^K%gnTSBW@kO$XZ*WSZf=C7BeeeJa(6MV?bt2jhrqgtfi5!ka%*soQNl5TA0pHPVYyotu>V2 z9}mBs@a2USun8M7#-nULpO43GoXf?3E#Lm-;r=;DTlqsa_e^8|`X7eKtOzE?V14b2 z>VK_^M|luW_Q&nZN9J=zmmgNl$hWw#w_^4a@RJh$^7ixkzo`BAY}Q#>!~Vah{rXBg znWLy351G#oTp0CgJS>2* z&R_9TdX3QZkkWHAE|^9G&T-OleBMqIJkanUJYLa&{Nj$K1X=@OZ`L;$Ib@**5_#D3=&@1fP9)<=kRnMqd$Z(^nAG|&|`POF6gnT zu?u>?c37Q2nR~i&SMw0q_(+RAICnq(`&JnHD)4P=`*fI!$Ag%i7pg--x; z&S7EJ%3;_TUIJC*Qf#o(M$hk=b7=39@Ot?*|FBXmGu6(x~zZU4b z<@l$7zAujd7|7EM1_i$lkL%QdzlX=A~IV{ukLh^bIj*O>AXDGSZSz~kjR~d{`4D5ZxpshFnH#SATi*RkG14I zAvzwL6o^XOI?)(dFx1fVJ4xrE#)DmK1^4A+(+9y| zor_H$M1v?@bLS%kXU|g5|3vWdeMR#TTN_` z(hbraL4IU_G@byE%X)5xabsRko_-V6onr1yBaWM3*ayXvewO&f^ zdM~Bt^`(pVTZrCuu@&_G=5P$XkG+&0AFj#>#geXdv190Qx7pD-!M+tkG!KdN^!)C| z-wS-yNyl5k{}aInov4DIkDc&ez@1Jyfkk`6Vf7#3g%Q)Tvk*7C*a{}}Cvv(G8>%|p zax}5E-_@c$lp!x%hWpQdoFtjMAMhZyC$T+^jaPwBu>Bod4E=)V0lT)jGAKJ58z*Tt z^q&V_j_o3BEc4&7u|9bbFsCy17jx_-{jsr2@k(Ki1LnV#^{h3{dKQgXtvEl2cC)_R zViv7reLag=!;$jKEoS98J((^IZC_BHoVQP^K&|beZ84BZ_^9U;$TEr28REUjpE;>AWa@+zw(_D>>PY0QX6JI)}A@ivd z<*l$2&J4*Dgs%Y~7vwL4^8^0{Ox@JOc?Nyv-3`W{3x5c}BNQiZg2a5S!89~yV`(^h zUI`hzs1E<=Qx`Ap z8^YYTcCffYp}~Cgf%-$6{vN2C6OVdo`1tRAOXz4jE zwDd`l7m2)!$h(TXROCHG&WA&$zaP0Z{=xCSumC4z9Xi-8fjOo86E@0uN5JPN#;qYU zz9ukF{PzO$1m{B#rs05da9|F4$-o2PpGf8?1xGe}KNG=}vo6VI?}sCg!6=(3Kx>0lWj{j zouxs}b|#z76DWsH4(6kU#|Y0PLuY&BC7aGAL7s%1Y&zFc4xPLx{6Kh<@J(dsWS=6N z&YuN2`xn`C@@WQj^5XKWFkf4nob65K1?A(wyl{LPm{)<%0=EG32^`b&qH_uv&{SvU*l19kR8Ub5Mg;u9RE=j)#~fqDDH@BS$#cMi-8A8)=X=j|0;OS~>(pJ$&V z^Dw!^z;x_4F{GzsKWG`agD~5Sa;hv3jF(scqr9B7#Io@Z&W&SDJaeLAHdpxM*O()- zmGcm=mNP~La4e^#?D(%OgK)j@ z+rqpxx4iCAPpGR$(dSLhbI15qVV*lC=ec9d@z%Id_^s-p|06w-ruA(|@RNXW>%eV}u6^j}RU!e46kKawx-@V3uJ3 zioHbATp&#Q3RbpF!nCPi@>|J#u?F{Zk#85?Dg2`FYr=mOevcf=Y4#F0Pl#iDvi;I7 zf^mWHA;O)6y9xIeK9(Hzm9}|+@JW)UQqu5uyI60$)=ZW(v~ytPadxLdot!7~mBN<^ zZxY@rOnU~V^G@NPlY@TREwJ*xDEtbT<>WQuFO+j|hTBCBc|Q?(0)wxe`*;$RX6B(D zIy6g~-L)ggdF`+?N#P=4UQ;a%uaU+n;X%Tqg~tj{5}qnNUwDylt?-4yYlSxo-z0pi z@IAu!2|p_QgzyW(FAKjZ{Fd;?!v7F%hJJ5#RUn)cE)wQ^&(il09wt0exJr1U@J!*^ z!nMK|3UeN4``sv9Cw#r|HsQO3>xKE=!gTHwepdKZ;WvbL3GWu>ywG%J2sabvT*=ZT zg^PswSlZI`5KajX5*{r)R(O)|RN?u;i-cDRtNp4CBELfThr*n*TA6Pa{)zBi!hD}$ z=^qg0Jl5oo3;#-(tI90RYr>r0n*43y-NKv`TbjMXe2rjoE><(~r-%I#dVZM&AG{c2Q36B-760R1WB24?SrgN_FV&SF2wZaz)Un^iLI@DLhYjq40Nv&lkQ( zc(w3a;f=yq3G;_?tvp|5H|usubGPt)!u7(B2>+KbmzLVTekc6j!n8kXX}BiTc(?H1 zh4%_`#j2%mA*{BtXqVK|aAB))nQ$Lr&J``q5aAPqD}=`hbG@wPJwy1L+QC{Ud4C|x zd86t7k?@zZP#wX?Nb&Q+1urQaEoBRb~t}-|IUxnWn{+sY;!hAMnd9#J{gj))?5$2+H%X_47cj2Rj z`w6FnhYF7n=305vf4cBA;aS4}DtlU7aButliSS**_Xs~A{7Ydj(>FcO33JuH$^R_8 zOL(_17x!EGCc^(J`&dVd&SQl6ErIQKr0^Kw@xrGIPZm~NS#w0rPZUglt?8 zX8UE>7*m@xqr0U!Pndcvz3Sofe3R?*{G`Z>giD2c2=^B5C!7)GXFNg0Ww+B6ZNAYOjB>Z0m z?g;%jMb+Xv>dK)zdK-Uq>50zV1n8d}P^T(C!A9tRiHQqFf2slZ%D$knx!b2%ZO zL6P~M)9mH&884qlQO?!%43oJmb!uR~yEr2-S9i}3%=dt22j)ACWr6uVa7Ewg0I zUaqI5&u6(C10M#yGBCdd;qxn|>5T1$zuar~B5%4}SBQ^?*8| z%SKxm7YHYXy9)Of9wh9w9r%9|Ns!Gg0AuPN*iwYxcpaf@hmD-VM%O+WMfLCx#m4-M z%fnU@!n|J5ah#nV+L~e0cSPV6g>Ww?v3>&SsE^4_AIn4irs5?7$mkeH*9TiRHjDnU zbc2w_@&F?~TjI6JoRyCY*2t+4F{vnuCV^Q#OtI7DHymO|eqLU0y$9m1+F50yLf<6_tVGtXRv9y>v3Y?kkgKF+nMC^FhN~@*C+?+baeh#07|1nK%F> z4Buiml3-h$0!^WjDx71-!Z$|rcsv==2eFDRE(ZV5!9&lpD)y-?{`)T8jia%@=i^t< z;UK~m>o#-VoN3(_E|}77+QRwVis#LrHn(`;)HAy^{Ot0HL%Wr5z4%m@aK@A=#XU-T zmmJ;A|F|iB331kB2>BzYP-%gg44?wsDUrA?lV3kzhdC%>EVl12WAF35z&9+>l10(4K6^P#0hDtLgfi-TQvp;S=-Bwi@+6#Qy)$PkOWSWpv?x ze=^vq!!Sgfw==1dEcX*2f; z`UJD)PM?R&E^*D|$qS~Py-)tx^QP<*u31nscgD1R_c43cT>RZr4I{mLW+d5$eT`%^nBvb;1X_?nT9#@X>bX5Mb&VDn=?|vlD3G;NaTKdSwK(}D6(UEL&aPhm{q z(mDqTj}RU$e46l7;WLF72rm_`6~0J#E!mCkn74zi9(aAWwO7Ejob6(1czDKad1F_H zVbaLClIiCh!_u5D^3`D8i_?7%n=!+dm(^{oZO1fU$8q|?v&C*=8RptL1<@= z&UKlVI_NrM;{bG^bls80@&Mi3IY|i4_S+Rvmw*{uENerA>)48|7^b(fGrQuJ!47|g0r|~2&+E6V=01+ z`kI6|*7FarSstMK-Rbp&;4F^kkLr6_^zodq@@)k(56ezhhX&*`L32cIw+7$Rt$~8R zmMFwA-QC#G1Zl_h3ffmq^&?1O%*0%4P?XNq5VsvNM5X&5Z*Z87^}_R(ajX}PgVyJP zQAbSZcM^iLebKi*%BbB)*9=1T!DiT~k3M#@kG>2X6vtF^rqA6+xzCGw@HXmz_fchK z-FZ6&ci{V|jVEJoI4F(@ypKx$3v81*Rrm)RrH}pL#iu{H{k-^RiJbTT{NO7YPd55V z({a;|7#Pd1?pbv*Y+dFTXD%J!H7*%2tR_0Ad428f)W8+B z7sDjw%(I5xQ}EKN+`{L3=MKFm8wM#~TD21T`p2Vg%~PxDlO2 zSq++Ip7lyR^;v3o?1_hVR@dWTU=cO1V93#UXx=qGy0AWS_E34Kuh1mt{L$;W#E>d# z!3sg4GGG^V)>#W`G6vRU`O*!md6K2g@S&Y+cSjSO|0GV!r~`(@)_U8h1*|#NLQB-b z3D1`|?tEvXYad4~48fO88Oh`8VR02zy1Dz!9fsGKT34+Z4b{4-J1ws6+P!wcid~hc z)0;Y+b9c*^Ds#)8Kf3WbcQ-2BzUQS%=qpY{Cp4d5S)Ur1{4D2d)a_|;)~z=x+bcP& zhQ%yEF&95yp4<7(?23m`OxEpb!G0*(YQo7{rLZ5G5Bs6reYrPvM?2Ag==&>bSJQfE zP1VUW&-&<|R=&CNKDvkYLtk3811i~Ghd1Bl+N*Wz_EoXGM3kATtzEY|>zLMAv!n43 zG;N)Aa9+mJtWR1OXY81P9BV&Jy|sDh&oYX0KDxVgYH0oF>iWXE*wB9Q!n!E=qxvT^ z5NbW7&0|?Nx6aELa%$8yf9*T<(LuDn8s(=__3K7Ikp#@IU5Ed>Mz5n4R>bbzx@%RE z0OPBf{hO?g4R6jv+}ypP`ah$Y)J%Vnr^R8v6^D6T^JEI`ys3Nb;VV+*PQgdMogXjH z9sG!EXH?+hZ0FN5g8fz2-s%pUyQ33%ZA%8g9xY6;TGKCy4Xatz0d+H|`TXSW+J!5U zgOaSoP2JDAtM%i9ayvfKqscjUHKrNXLF|OC9)Ht(=dWRhb^f6G;wC(stUZR+oR&Bb zC(Neqy?SK!+St1D11+nX=e~ljUjNJbytbWt#qzRiC)PhPuDHpltgNO{vRnP=LG@*I zvChZE%j%-iLG{t0spt(FElwuaB}{T2O_bVey^68kUh9cWanU&xWM}eCM8+=i%ES3T zBjY+3k>GSPo}KXwyQ~5wfl${;_OYAL3au!DM zw_-mc&7K{_-;T`&MvWiGzb~-Y$~Ycs?COj0zrk=TF`aJ}L z5m$!|MqKk7jJRHdL&%?+HraYKu3h;J#$1=XU^@0nXw09RHtKo_F2wl_hF$M>K_p(2 zs6nA}(Gl_|N5R1BNiLK&@_HMBO}wF3maXYvWVi|292BQnXBVbN zkTAsaw*{NM*bu&p;j@$73IsHgEsBqBCe*IIe0MYgZx#h=A}qmgf{fW_r_%3L4+^94>!X&;*0OY zqZxL^_uPbvufiMbhqf(; z%>6@O{CBb+dfY+oVY574zT7`u&XdQEl2=`B{l4r;h{i zk*|9|z*er?_(acyjtU5T8B>0Lu=OgY?eF#up6ZwvcZ05%iu)N04|l z$U%><{Cy5mrH`O@VLF1u6(q<(&%NDo`ykQm8Y1X%rG-~T8tWtIou7^%^~Iqg2ff+Y zd=AnTK7!uE=?IehG&LGWFOGWfIY{oB+hA-Fo!31+fyFgGMR9Eyon}o5skI_Zep&-U zYHbIpH5;VQqNr>oNa?YGAT5FC4`3`kHWST*T5}-Is)4lhZgE(}!tz{&UOQ!B-_g!iNO_{Z?h=fr_ol*Wr&njXJZL0VPRY^LEDp z{Yh~O>*Hf=kUGyD<0-6<77nZF9pbQ(-T*Hh2JaD%@4)k&+_jiL#xeB#ft^C{NOuTh z=&^^u?rB3usp6sXYoT~_mh*jg9{UkQh3?44^161EM;`h}j}7fVrr~%`!NE9JigNkW zb!-)IiYu-3&kBAN#t*>IzbsEfN2y@jvQbg5cfn&z($?tH@Y!gzN6Ip@4Cu*L6lcaX zXftJ$SuHY~sL3Xq( zN*%s9>ac~OE3o1GqUR5)@)qFFoHX6_ZbfjL6IIajvEzRMe85S^vy@LetfKd8Y>lxS zno~UoJ7Uu@aoJI8U1-AAgOB7Y&9U>CAD-j}Z1HPj_!t)?jQX zIWzm%^hy0JL>yf)gjx0QYf}!gI2Y;pp*!7_e@ARn7h6HkCmc^N>7~2~b@6B#c}e~~ zHe3PdabA+?PW>&K!q3~PY~GeOgxfH6tKvY(-03*YKi}=4k{&-I#u3pw-%IJ$dMQ1> zuk=CjqRUG@3WDIp5Nv8D}gsU zX}Zy`MzGF_D(Lyxv9|*6bkec+!F$9b%k-5Oel5sFE>FeJ(|OXnY-qalK*2T(lO@y9 z9)P|9hq&N4S2ouhXK7z-ob3$8HVoT5Yzwh1#m3W~XR^5h6r>F{PJ(TYGah^@wi;~g zC$C{+o&E`%IhFBl|08VdhvxY0b7O3I*w_=zjYXP&D>J$)8_}w4b69Tua{IZo3F~dn zW;uJW%VFM?7GS-tSlWkmHfnJT6U$0OImbW{wy>`px35MnHsLJfE_ZwMR&*2260X_aWl8q6z3VO8WtgmfZsw(BUT=NaEbaOuWtqL@-|QULVTSwP$l2BP z7In@3Z?;R>CY>fb=;UD}TwC~>QG3MayEOY+{^fqn^6wGgIM%&=!}=MF3{g(2{c0|r z<$HsxPG=L?kvj@Uakio(XRA5Luy>H_GmRp6-qNwz6lQ6&a+L1%+bTNxa;Zu$99#=I zuYu-ggVzUHA$;B_jlxF$12*bln%A%~ALVag<3eXLZ$9XlhTIw(<=M#CDll&#>6nJh zTPLRBjRGCzZICk!r^c3s zbK^ro8s6E`F%21mgVVnq%qYqq0&pHti0xG{Wn@k|@yy@xZZI9=$d|yUh?6!t%E^=! zV&e>sQyKE}U?yW4PR%S0=Vtvwnu9nu2+Zjz9n+JW!e^cy;EwRAb3EAUhtuCiAx*W& zCxLBWd>moNZu2AR|JKklD`8*9dNud?HK}aL28YE34FS;S*POCt8XPW`4FOOhy&}|$ zKfmUbXJvy+xK%|OZqX0`CDL!Ry%;Zt_KVk}WBNAx#kbure9(U3cKejL8Dcpmm}B^` z5MV!}o#n0;37_%l)%R}AE3T0XVc6YYFdHabIw4NmerHy*i44_|*)nE7HaX8BlXG9j z1(JqGXmXzSmNzN#B9V6yIgiECmx{cH$a{;tpU6`pA4CpK^F43@PE?N5zYF{Zd_Lx( zocF_gct_^F%7(xkQ(q6vv9k~2nI?tpdx1B?|Bt{N1NcarX~^#hpNnoyc`f{B19N;T zL^?~)Z{&<83bO}M&hho&z)AQVgDK}VgpVi5e3n0&9J)2xZ1PSDa;T2TW|Noe7MPdy zvm)?%_!kLZONLJN1+wY9Bgok=$folN%AxZO_2Pb6C5uOl!mkgbQke6)srui_Q>G^CSj*ZM`3z@ErQT+H+g5*{I3A0cGzMGoz? z8_aU@8u1zBp^dU3v%F2nLC(kRCO<^v9Is5y2i=z5J%kU(>+Uato?()Hl%%f``Ap%t zWOi)0b0j^-G28FOBImefa@qj3@?0zO8%2JH$bTks-m{n_ZOqP$BZ^l76Cg(iHI4N8t%Wr*Ymmv?3wIJeQntqVndgmAHN4`Kd3is?)V4-y_B%->3}^lJ0^6p_~mPZORk%->Bh zJ?99YE6mSsEY0_Y)fV<ydS(>K8UuGA(qonC9+)cP#xUcYW!u({(_B%#+lJHdFGlk~~FB7g6UL(9# z_zK~xgl`kRQ}`Fc_Y3b3eq8uz;ok_qBK!y8H-+C4{xW;ndnHW*uVkza8w=+Pw-P=` zI4N8t%x}U>XD?xX8)otogijW(6y~>MmVU1AV&SF2wZaz)Un+c=@a4i+3U3wukubkq zv+~>{{DAN;g&!CGmGEzbUliuIaHjt);SYpA65b;m&u+-uOt?U}o$z78UuJik-{M($ z`U?*d9wvN}@EGB5YIl376$gZovH z^9xYh?+3!43hxo-H=&lkxiG&CHF=RRzY#TgFX3Z_2MP}t9wj_hxJtNMc#7~D!gGcB zjjEOB0^wD{YlJrlUm^TM;cJEY&8z9ZTlhZVdf`We|4aB8;pc>35&nblyTTs`e=593 zI1|rDt(;ihm}Y*XYx4HO9fdm!mk5^$A0ymfc#!Zg;VR*Y!u&?q$}>;+Y~k++^Q&P? z|2<)TG;H!Z;Twg2EX=QpE&ct%4+}pgyi@pD;ol1XUYH*zoBsEOKN0>+m>(}&dfJdR zZYO-0a980{;a*r+em4kTDf~m>9|_+q zyiNEn;d_N25Z)pDxG+EZw(`6p{D$zG!tV-yApEKD9$|h&Zu*-Gw-s(L+)=o*aEWl4 z@G-*ug$D@_6Fy0Jj4(fLw{lJwo+EsgFu!8A^cM>A8+MalA&lwyx4*l9I?#6_RR~*M zO%$FfJX`q7-jytoG|Pln39k|UvUey82E7bj|A=v|H;67SI@ON+*d#NF9tpi{u_Y@!~aWQei*(x@Ot=r z0`t8P-;YzzQ{eo-uYp?yroMK8xelm9VCw4}nD20k19KfvdEln-`97Wcxi09q!2IHq z-=I*=ckd$tm%=|eaBukI1NVi0T3~*^!Vh1Wmpb^4p3L_={GNqOe{tZ2@Xrm*?_5>} zUJidv;0xjNJwEf&uM4~h{tbbjg}*H@-=%P^5!1g3pYLeMe5d?qV15t(Okl1NdO0xH z4!sumeDGU=*Mpg#dNyMFBrxAI@Lde$b=Weok@?O%H}LiF`7Va?Td=hWd^>!u2cY~e zY#jsh{lgJ~xsHfynV5#}()lii%=Zs{13wLaKw!R09~$_t@VQQa>G|GyOkloG;MZ}K z^W%1|cOvJ5rv)wmpBb3%5cpn(X_DY`0`tAWd4c&2(su)Q1+NawkFGBZJRbamz^8(* z3e0x`Hw5N)OMEZGees>ZPXqJ4dVSzp@Q%QI2EQ{f*CYKlFxM&lcVIqie>X7Shx7QU zpWj6#u#rE6-z4xy@Y@FdJN&}}bM4aMfw`9HsKESQs(WC5H`OaJ*D>*TFsPsJyN?gd z56XuJ9s=fj6Q!7Egx7mp?+;AtJ0ft3Lb!Td zbZeo6`f#eG^|3tEPZ{02+>toO(e=TG$36#4HwbAg4>02Ihw@r(&eZdoPELi0)R9p% z3C!~05n#G}8KBnGt&B|fwg=yq3w zXnMb#<5(W*_y^J?3Bg(1WeBUjhtT4 z<#FK9T^x_&Q*4$881Z*ExYom*#eE2Y>gxx6Oh5J!1S?H|U9@w63_g=kAlg=I3o-MEEJSdJ$Ty@-> zU#=x1|HB|jh zPRMmgA9p{Y6#KvM(-YmM%$qxX){OAe4({uhP&H$G^>c2E19~zRzWL2TI2QZB6^b#u zSMd%5O!Tk#4TXJ5#1A6V1^R~C|L5P$@<%ELj7gT2lpS3HlYX_a=25dO`~nHSLT{IS zcsAdon`;m7eUu%*JBcbtTFntYT?qkQ>v%bOqn@tA>uB;77K~jFm2$qfjR!T=R2VxI4<$` zrs;T%vAi75ja~ZC%=@QlX$6z?PG^wgQkT{P{92A zh)O#?AJ~Qv`>K_X%(Kw?05IBwKx;y9rmtJL`ngLW{vGIdw93B0?`XZuhR1&Gdf5sy zu_n9x@v0qV9=|yr+fZz*7yOTH!GBlQ5+`Ulc$(%6U+6GT?CN3o??$g!HZfKaq3yoN z8fk;^&CUny^OI8v7zGW#O%=zvoI$Id(DX&azc#@Dq=`qx+~@vR@o3uIn#r@L6;E3- zZOYoenH4NfB8MwUvCIOV*m3|kj$OukGdGY!?S4GltuFvKzR17g|jBl znmudL(*84NO`SSzZd5aM>H@U<@yGW`c2SE8$%X*5b}uO_D=97RSz0`!yw~K?UekLX z;S1%?p(L9CTh%w1g1MH!Kl?ExHmq%obK}A{xpvFdS$_=aYyJAszSnEL=Kl|W?a0>) zkB9E_-n`-hcMnLpMhV7f+5|u`s3K7;fyo4GePLXW6qF+#aUit#qI~R81$z+f~w+O8UN% z#+4ydJI8y|&ugE(yWz7Dlc&IZCTY&(uKYpn<}Z@Q(tefyMe`R`VLiniD-_u^iSJa@ zSr6&K&f+*9 zQhgsIa3N&W$L277CxI;w(7m4;LWjr;zZ$7{~wu7g02;~uFOo)>l;`_Hd9Z@S%-!8d*M5tVjV zqa*G@i073(=c3;I=T~d6qi*S34f+<(J!jV3sl`*zDf15`4m7{&-m_O(kKUY(9r$@f zv?wS{I!~9pS<@< zX1u25_L>%XS(E1!eil0|@peY9viOddVr4~b78JE8JuY)#apyk0di99!_)ToqNek-g zC*M}TJ|4B(KIxcd(|=u1SbXH#wPTZ;R}|-6IcVUV&O>&fvZlY@KQ9~N;=KOZDBr+= z8BwZkYSc0n-LkcIP^@lM^4#*v2kj{s?u@UzC$@9*w!D_d9JD%T<=wG! zHnc(Z_VFw3h_AdomKR6d5eF6LW!)Bwx_*GoWn_qijvrdm5)-`c)dE;9@?sQLl<(3#0?{#{i{lrACwukk@zs5VRjIA#z*j$Z| z9oCn$f**(98a~=DXLB_YZfvq_d*6P^@@6ACZc1eJj#8yP@*eB;^Z1Z8v2}PLTwd2Z zfjuL6qB!rG1P=0AEJ~}}HkCg|bMMyLTVmVFljm-}{DeI_3Zwo_i}QvrpK#l(%a(3g zF)!<)H}>{!I&68>Z8I-hvSro0l?THvL%b{=tKHnZ^q6Gd!Xd5q5k%$9@q5303s*La z?uf^)jmOI3iS_Y}+IySV{Wyupy7FZ0<`{CGTDYUp0g_x*n3r=!%a)s}S3J6__OT6p z`k^(hNjz78yQcMMyYaCVP+xrHQH7ohT%IY&lf|O^j}Fq6V&(3Lhu4vZxAMJc(@ASKe=leK z5rvyi;`vp0+vp>ke=k;?-M`7ex~nJLHhEt5f_XWJs7KtK!m8Vf^VqkBydJG6E-Y@+ zKij2Z_gl>+3`n(V-lmg^^VZKSTz!)7heKX~<;>y?YaNUxXdR3u<+0j9p>?tc&M7)T z4d%66F{fkMoK8C)I&jS~Z4uM{{J?3UHESDAwvKsmbR@?WloaC%N;)W3 zTj;yVkP8lUEbZe%%W`%O+Ll*#M8Wo{FzWl&`sN%+pPu0t-LQ8>@ew@3ajLY>_SHM| zp7@UC5%<`3b-^(iJCn zh8th}=<@In_ae=(rY_aY%aCNrmK`;$-~UmUs&j&j1SIj+VW!ry6CAH5eJ!ZwlJ=);Z zEiIjtS1`QoG1*y|y7+UhIB)zN1!W~|R+NOxYH9Dy0jS4D|uagVM*(&9xt5Jxj1j>?Kf}r@i%R4 zS6J3KXJFm5BfBoSedvagfsGrN)y?d+@$kvK-ryI<;{)S~+Ud^ujqu;Uk}R({p?Bx-r^~OqCp& zMu(AU;GCnDyiQhLq*Sh7V}>M7t+O zJ~i=(m6K8DA8p9sRG4H@2hN}!mPv{ zSsAss#P?1jva~Q+dv7dxRPxm6n0b74lB=fYC3>}JRrc_%RVP=~u=iAbH+gjJb45{E z$Ea*hmm%?JVp-=6t=KMiq8ZygF|Pbiy$3vTUH_~hxN#bgSJwK2_QM(%Cr0$>(`Quv zX-$^ie$kk{OKvZ8bH7W6_G)oxGFjBA@Q}ZiWvqE-$AqX;S$6xpP6L}}jYs{iS&2(| z9u(z`ENpVe;}7L!3~g~}!`1E!`qT*{-*0j|n|Mn+>m=92)o9`lY~s9IKSUE}4T$(j z2-_IV*6I+pa^oF+F^??Z(kRX=aZL1EbH6!Av?V`1r<}<-WwguMwq&2S#guXmr<5z$ zv~^RX)^6UsDu$WfxzjHnwr5AjsDBJoO4qcT*Ijhn-rlicXZcp$(LO?-F3gMArsc__ zx?*HgfuBtt)pbXUXoX8RIWLX|Ez3(JyCkFO&6AyyIJ1y*L|63SuTFAl*CDYmw&i8b zXxXgd;a#Jz{%-BwSf5$Xb&Dou)sTuWJ&B*s_MofsEm%wdF*1A~Uq3_3|$#w5kJoVY=(TmzW zGybRXm9_3>pt7zilQ(e{Pwjj%zqm=(d9m#nyKrA{bv$cH?3udxJ6~?r=}Fud;Fmma zeWlZX##b(g4Z(fEE4(i_%!Uy{>L@YT>e9 zmKHXvijOGFni{LeUBSb>aK2Z^PKHUka95C*S=`i(dy^+;MU&DK&FQhVZrmHP2Un%y zre#mZ2G$H&P&0T%&7i>@_f~XB4eT&vL5IOBIt;>zSrJc^#pAUYYb%o@cuSxH48fyE zcOSu9g7q%l9N{Sr8}Znag%hF4$fzN zKAG=pbjYXC`%i6aAOGmu_{t9>G*n?xn@=lK$JI^F#FCglEok)V?!u-s$GzXI(~$U( zx3S6y=XR8rg+1!sH3nGBGArHPb@}Ck_q0#UxGui(4}3X`d*w4$rN-6ae67m-)51n) zOfAcrIj&`|PQ&6uUW91ni%7FIj z*5ePA<;{Fz3Xgdkc30M6z?1oXDu>(_wJtd-x1?ENT~*wjM?a2QA9`f&JH<_Q+zNw) zvE0+kY6cutIKE?i<+V}i(e=&B>#7oHqpi^&OX54Oi3)$Ury=jv6t3J9gt^DgjJxEs z5)-b!iaoi^ig?}PV)-eugCbjvM9pbx@$QihIEO_>NfT|thm!t@g3iZvI=3_Ff&$| z8I@(m(E%$m6Bysn2XVDSOC~Fm7$+9e&SLDS!cHCA{jEIn|FHKa;87J>-}qg+lU&jS z2%9WI(nwgt64nF)A#7n4I|PCzVAuo)0a-*e5JW*#Ko)o7B)B{3h&zrOA|N^lh|B0G zinxr5C<88|g86>GQ@3v44xsqH|Mz+S-}8J8m2>KxQ>RXyI#svo-rLn_b!#r4fn`jy zv@4qox)5&1y%mAblMytQjNyQcn`$hT>_n(tLAAUf`o`V%Vk5ogsB_NWex5OE)cI(_ zIHUB)s7R;unuEr2p@}US=Jyk(2idC*`t{m^?IY;8K|_r#yM8^g`}4$aYPYYf{Y~ZJ z!}FRBYHjsQ`td0%u0K2V{Hn@nwJPI`l>FMzonxr*GG&ifY#{>DYhp@?!wvFI5&XvN z_8zB@Sl$^bmZsNS-VqR9S)OjR&4+wD+$ha4A{*eRHn;_slQL>8>Pb`RqmXL>c{FQz zsu8N+>aK3vvCXdEUkTT{<=xIc9xIr8)!}VLWND2jUZS(}zqkJ87 zf`z#Tm#tA<*hRgUS7+1sDq!C_zjq~$5#r!FqoAws>S+2ae9sYdQ$JBuXH(5 zyLV-iugBTA@TS*X@R&7d&aVwVJPt2@Q`tI+#GsXWHZC+t6Mx7De6 zcwOaYTzd|bv_E8Jl%&*7P03Emtt_=lI&LZHu(u@rNJ%^8*^JbNsrZ(H9SED#zYe#q z^T7dhMWjQW+&D9BfVI4h(GS^@=7Vi3+;4jLrP4Na!W|l(gYO+!flwfKvKWBG?wxoLC_#9Lcqud=ph7=t=fWhmIw!V2DP)of|i0&X5=W5(C5I=4%4 zjfo{KmzJEht|WYCNsC}<)x^}6Fb_s9O+9N}YWU977K80eLw3dpBd#g+_OwuWR@PIf z{>3V;HjT_$aSdSDf3?nS^QtnE&q!;~ro6SgK)QA_~uJ$c3V0Y9nK%c0?R*N$s#VHT^(p`y;9C7@Eeq%KZ|X zU5}J>ITScK_vMsj#Y!)$YN`;=`>sv1PxMOtSx z(l*BA)(GW>`*X$lKlC@;z9Ez!De2I|3T9Lq8N;WCD>sGewM}i)G`A!zw*+^QLV;|o zep+nXQFUNOvX$Bct=p2?eQ#>F1F2n)q;_G8!?u~0Yc1bXHRxa!x+nRi!>^{kSLbzW zpY3!WxUDLj-fqv{jXlqtIw>J!g=ZuW!p(O?-(7rW11}(?GTJw6Td+B|62m7i@UOXX zZQHv8=!3jK?u_Jw&O1`yt&{vxZH{~TRyh;yg*OkBblqpYZXc<{N*i7r7+9`F8!WrAt#=@9g=|$hdgioyx0OcxEWMQ=gQJYAyT2pbZTKIEC;d2Ol==ZUimIffd#9qv^mLBm)1xRq1d*A zRolO<3Wc}VG}056<3R<5elj;F8A?-wgyr}N66rpa8904fzhS9u8hp`j$2rBd z_SO2SWX{goODoO&zoz8YoYp$nGigk{6Z27&!pt7FQ441Zas*PTf6Y$YpzhWt+?XSiwoB_**UCW z*f&k~HK|%qUVbDsjsv7)!yZ;3Txmy!s5VI1}^Qw0_~Z z={qO#&c~jryg*^UjE;4}EgN;}y18wO?dTBf)lat1K|EU}7{#@F-0g-e+>#q^m^C#e z-(924OU%j$+tXHNqz7@~oI22%SW1_H1@|6xS`r$3>eT~DMB?j&-$r-r&*D=X)8L4S$EsB>`t{m2H z;?6>Z!;&kOL;^-+kdanDY2DUiQ(Gn%I^*I8v2Bs9#|neM@r|_j>jpHLI&8t!H|!0k zwrJBnoO)KcsBJj4UAU-SICXHF-r>~rHcit*%TbDbl@AlQq(=6pp2OIt(d#zsfz9EP zITsWxZ}W#j(t-)22)yWj(lXc8JV%ID|EltCq1O}rzd5H20mUjbxt!_ zl^tr^aoP5&Egf^<=8k={L(7g04BApMU~fr(%)f!~?ozheDjB@&rmBqH zrRlZ2My7|p?ET(wnErTG+MGbB23BU-wIILkdDxOnTk2$owtXeG48}}yN;BYd*A5r~ z1CE;`3}wX6U0%1K5w*h{7&<6*kkmOFbJ}_uh%8k=eDD-C4EWG}1$d`=)IB3(Rqc zhqC7h+LN+31qN;IowDrXDj4%{&D)x9nKk(2j#2iY%6Bv12^a+fV32auar1R+=OT=* zhih)HgNb273as5-`g50MSJ6R-J4VAm*|VX#JrDZ*^X_T*2lGc>*y)^Yt?U{~-W)LW z0A9CYHu`T%$+<^L#v&Mxn|n*fy|#Owov~qdc-E+&yQGJ3OVKJh??6f6w#%v{D3{&( z>me(WE5F1yyw#}Kb+;}Zw2s9OGg74Fs`bkdVBHrQu7O5Q!^i+=yX zY=j|h{1p$vIs7A7$4o)G0%;>s4GhGINc=7(&o}%MDU6$ABazCHb|CTlNsZyT3z2vR zS$rJkD5RxGZz0_e-TxDbHm4ztKspTDuSDW^+=%nNqUv?t2l{(HKF>ShnJqj^h4?C@ zt8h*Ar{!qL&)~Q6@hkBnK?pCaFnx&&JmI;ZO-7oBbTtxX zn6|m;E5IbYd@u&`7a*-hx)|v$q?eGit`88a)f4Mr(sVzrX`f?4(s*_FI(YT*0>uAj zYKyl2Z>EP(|NmwxLjCOHLoU>D)547-^8R1?pY=g=i~$?tkY{kb@8W65SNHp~;C=1m z*TDEmMrx1L6=?*LE>i%!*v(G{oP~55(lVEJ2jGoJPav&AdI;$Sq`UEw=InYnqX6kW zq|V5XK*BU*oa+7b?%=gY;s=i^44zpR!2E3_jSBFcr&adq!1Y1AI*!+!YArGOdYdP| zAF@X=uWNZ0TV)48HC6|t2n$>vJPQPV-hv@KFEM~*ByF}l5mkx&?giyWA#VBIdsogB z{m|G5JZfBJUmxs5L43YO`;G%D+5M(K&t%F5aJ4}({LyxNjr#yaEFjP@Bq#kfAG zS_PHzaz04%JL#9S2&R05@aIe`3(MnjeX zs`8aqfDifH(u@a`RvK3ZP@288#0>CdSt!W?;O7JAxE|2c!8p0nj@HjsEVWh!-14h} ztK$OLP*R6(#|+#PT;VP%B_}012yo?lTrg)j`qOm#?u|^9G3%-{^+>86lG3l zyj4Q(bjBOH#@LB;syJo4zD7FTIAnh{gCn6qmS z0W1D_L~t-L479lTK)_6x1et^%FaiTXoPmKTca~so!LRyafW-4g|@oRzhGfKrxPUWJ6C|) zz*&unq@nW+G@s$jg-wl|3d|mjogBzFaq6R%rp`TR;F(T;jH_nOJ*ca>vk`cT6NG%K z^9eMBoej8*wr~<~4L-{$gF{<7!+@tbS3pB6=SDQTwZkuPw{aeaWLxJG{B7sFg?igN zXVk_X&Pj!22WKB zx2N+3{$}DAqH!#R1Jvl{+zmT>JAcF9Y^OOWeVpyU`#SA_Z#Eou$xDXQA7G2&oDJ}@ z;Y>uhZ8e;k0NV`bGJx%d^DNAI#c=qnV29znf!wQxvktk}4Cf2v{%$yTBe&CVf^gRB zhVwXlu*+~>1lVmjVbr?EaMA(Zz)wd5>@}R;aNL`QGXlA{4Cn8Vd>hpw_m1H#1o(&H zTm|s1;am^!p5fer0{=us0Ph=4fZHV0fZRS52l&u%{sHij;beff-*CP`?qkE@hVX#l zOb783!`XzM{nT&{Lg#0Ovm3e34Tt9w{>yOw1@ML8B%x!!G@M_M`^s?QLxyqCaOwhl z4O&lp}`o19C_4v)_on?+oV=_~m=UNkQ%h zxDFye8cuiQ{$n_~06!VdB7mO_=NRn##c+5e`!U0*0yu6sjS;!O8cr&7RvAtQfF-8W z3*ZXV$pctwIt2h%n$FEI{wmXX6UvsE&J?s^x#@h4+|{OY6kr9u^Me?<#&l`|Tx&Xi zhAr2bPAYOMO{W9ED$_X+!LZtNS|Nz9H=W0zbB*bI1hCe0o`c9b)43QSx!!c%hU5*V zGX%rtM$@?sZoSEL_!|c|!z37gi|O2t2)WgC?tlkxGo4Fe=k2D`1f#GVmLYeC>HHlP z{n>Puqg;jQ+zZ}*v=2I~Oy_y_rs-_JFga{G#Sr_AhX`Z*N%*mSzV$p=j5 zEr3r2ilrW1#ru$gAlNtmiQZRdZC3ur#&1R=R6O=cqbW>2~H1G<2YACQw`?`>_~Km zVkn24FW{e=&T^DWa;8GEmh*4O)OMP|x;jo{=t*|?jn29bkG-zv)P?KnJG`CIz?lOL zO`T<^x3AL|?LO1F5ZrVp89F;SH=y>8hW!aljPKL~8G9P->D-d&codEACRA?S<9i4? z92Lc9C!p1Vg!uR2rW%3x+>yvSkD={`GYq;ALNLm53So}z@J!Bta~vvyP6S;R=RAeV z7|MExOZmdZoI7!C%c;~`Wt8L?GrEhz(Dd(M;#3~TA_sK}^2X=;gKT}jCSwdVl6 zifCTak8qr|jQH@R$;6lUgBwOAjYgze*U`G7q&{$=wVL?(Nj!$fx}NytByL-+H4j4l zG{b%o1>!5NMYX}e8vGTr?*`&C(PmTPUwK4?p439`Qm7>?I9c0_I{eX+_?qUYkO~BX zwO~t~{b*x+lF8%9asA$cpafXKt_&o?`edF#Uh|R=JZ@jl<|Oq%DSIuC^EQ$mM=03q z<^T^Q<)Ns(eh=^jqvl!Yz>r-)PST&z8hb3=VkFIHfkNVeq{&cfk0Xv4S%Q&aUr5XC z*)YZalZ4`aw9%e964aVC5LY34IrS?ORwxsAww`^BGJ(#uuU$bCk_MB09mO4^E;W1v zv>s1dH|kHFJjJkYV#^u?657;*tqs||32oUIXIuiAgm(OXdBZ7}&NdR-QvmL043JDs zH3A78BFH$0(Hg_~34csy8%(vFz3`^(%$7-@CxS2Nyp91BXEaJkXgwE2YR{N8$w)~5 z3RN4mr_EYmBy?{Ma)3Jfakb)Xgx$FA!8fLJ1%tw!5KMjrwXdY{C zv?(FH3^ACLg+NIdM3PZ^HY^^(ZYocD35`h@&Pc3G`Wz-Ej9`s-CtVK5CyZo`_a}{H z(X)v^lvEoIN*G0-ZA{|LkA!oGKbmwDu1Saxe=LcI2PEVZe>|x%T|b(2Jz?0blaML+ z2{zc1px?TX^tx+c9*2o*cim@!Gr4&zHa9`6$uYLoy0spf-*C2J-OjQN=VusJIrohX z=XW)%I~ZaO=l3+MKXbBcI2YUsDKHn@%9iBL1$RReD8Z^Wco3r^kPut~i<;I#l{2iQ z;4R>tDf2ikLAX{8$)TN&LQKQ?~<^gMD@HOO9X3v{r0RI=HQ+ekZID5dT(+07F z3=4%TS<6<^ZJx&5;wb)DTRH0)XZ;7xwqCRAhcx{)(pz3qG6Uq6kTAlFIOD%5#XEaq zZ%Xm-J8-voCBw{I0A9=4ZcY@KSCW>-S9Hx~bb8u2^uM{BeV*2Z)Tiod2{bvEr+!Dub^cQ$E3>&u}A3|iU-{oUCd4$KHo;i$YwZ2rvC zbrE$NZ4+=|vC>4)t_57_OY`YV6MaVbJUZtmYP7pUP&w`=*4skr{Yf0uu9*HcP1a_P z_7s|;&}hfVvaU1PMdlojd!5U@j@)I6yT;=#bGcoqd9LFA)#J`p+;BPr<^eHpFPLz? z^}s+F+kQSVlHl5R0g|_%;o%yL$%kmN{i7@X5XFr!&&{+R6HXH}nTj6s6g?)2!gmEB zvx&WE_jP49c`}=n%z2!LZyyJ?%|9)tA{RsxV8#UGlh*?e<5g!|pchk!e<&n52wg=X z&e!2{Y3n0m(OndRMUSvHBm5vD&U#Wfueh8iJv*LMcHAC>%(EhM(3N@ClX+Ij6d^3E z7kK%Toh)m3!IODG$?&Xj>m`xtf;oUPFL^RAiA>x3z_5l(z}UsWRWuEkE>h8{m`3_R zj-&WEyX|2P)OB%;2>U9p$htTgQmwkO=|_X+10Dw%nAv9PT+&H~t2kSCm=62QTjeqZ zVs|97yf&0~#4z;8oj8unTS+(bJIi3ao!!Xod}kSuR zftn3X)?@QAmoyOs8Gv0l_8Xd1fdOcqA!2Q$&NEC(Lkn9PPNe};WEfltw1pI$!g4aM z%qi0R@cZa6^GTUe3UL)tVo!=#38#!FsR2DrUB@6IrIz-Aachis2|EdHR)OZpc;d-9oQ5i7;V`kVbRD$e{I zv@$r)$eM#ceW0nwV8~m~+4So=aC*ry_j#Mf4gJ%G&Ec8XG{^eZ z{s)AkZTgi}Xs)!W8N{VcEGKOm2*lO%HuT_eg<&1Gn`4AU^%O!TOLIjJy&-xQYd!0t zdTL{k(dpJN_60F|_~Q*(nk#xXX+3|}dOnKk=?Xn!PayC}jGiOZqq(9d2q%j@{2c{p zS9>6CyQXP9iGd$u^z?;Hmgb6{h}OgSR)bFT^yP10j)KAs*uV6^&I8L(S(2>;TRMRP z(g_U%MUaU)uL2TTnk$vONZkx9ULK{A&w*e}uv2&gNg91dAgbdh>d+j~5kd%vj^;$z z9bJIn)0c0xbO7=;EnSTOwayA~>Kg=pUOmiNlXDrTqpgH;M(ZMo4lTr=U_-VHAFHd# z&!Rkkp3*NL5qX))@TQy0##ZmZ5EP9XyA%bpXG4(~dM9#X=#xZf=&L{w=4|Xm(6NG5 z_6e+o4w(+W1Y1U=iSd+8uIOowoapI8gnA-CT<3Et7N-peycc5&Z`EaKuIS-vLiF6M z^*k8WvrFq48c03E-=-I+M{`Bb8(Pn&TF-w(kF<-oFe_o46$wm-9%)x1W-)133n1C# zik^|ki9Ht)VY{vX;&MQoZ!gf^`J;@UJ*+cY^a5D#~w{eBKOq& z;_E8{XX2r6v|Ue9kLHS=9a_)(TF9_hM<7;3;3w#jSlk7+^!?{Rvb2Qgs)H+t z*wl##Z5jYX`x?5$M}H0U1C07;5@fR4yIj$8iPm$C)^kTx&pD8kK6^57O^hBsU&_*4 z(X&VE`9$mC?E%-GIoh750&m3VseySuOLIlfnV_h45s`KQ!C_OkAP#xyJ_rRdm+xWU zxSSx?ps}2K=o^-4egbEs%gLlT$JuH(76&GC9~}l`Cw{lzF&YBlrkekN(-@`gDY>Ju6JEMZ1jPttsn( zY>_byT!Tu?JkIpyKGdyt4|yYL*vJ`Jr&&7#ynnhMMfuW)|Y`h$vqpi&&ln{EkjRm_mKNlU|$Nj z7lBrbSC|qYVIl=UXj(SK`do@!H<0^W1*D3|Y9RA5pY*v6$U{H|-wVWE`$SnTZ!=6n z1+vDu$LtE2`2uL1ezG*9&nqs)4b^*401<|bxmk(=(V_D_OKGlzY66C-glZEa4AqW6 zTs{0jM$z-Uxiv;lE@ZMaSM(HUJ=3%vz8&N0NkLbLo>$BeriZ9K*He$?ik>^Qo+q`Q zS4B_X%biTiG=WOml7J+&g)mWdJvIqG9!mT74??EwK`1VJ5N=}7eC$DPq!8C={{~O(K{jdTyvNAo9wY#h)E;EBW~x0% zLo(DJWDhw1K}PRE+JYr}kX$0%gM=Ag+=FxnlBMNk4>B4Q*@L8@EBf;H7BL`hoL3`ooXEp`~vArzSVnx zmG|58i z1vg7`q`}#sNP|ZaVS^_F!Kd$Z=+8#Y-O=h1@;s?Z?wZKHm&_hC%M41)EkGfOxe6kT zx#x*+-}^lfi8+?(56$TL94w9`=E#(oqqxM}4UkeX=TL|-S2qQvWZ%nQ6%^*YG%^`; zX=KX2_iixhe^bR=CK)Q`9s=h(a@>9IaIhri<`H4cCDONyxi&zuw7kUJU{ECHrU2>7 zy(wevUeqr!w-;2S?*|~WSB`-kjX6#A$J}97pc&EyHdS#|(trrNpe+z;<;&pcZ=(&m zAiDQ;AQ2OHviBW+Ey(J6=LXijAoMiRM+w2vP#}SoP0hnB`0)N*yZ{EW>`XS{a%*;C zpe_Qt4cObjULov!d+{C+P1rIXW9&{L7C?|C7h`G2Jta9qOdr)4H374_^?}^){sCpw zo$3#GK~s0CKWGV4(rk30^&!#ra&!G7xgmazgY}*DtK7fVZ-<)YTifBH!HpO=yt0i# zW4b-TYE*vbS^C0RC71I!sO@$kR$Nwx7W%H47^M$0~qK6=Ztwo}^Vn9?5^%3T(Mkm1uD#@LU`4Wo4l9|3tpG z+^Gs#Tpd_z2dEoWI-Ap%uL|?0$X2CcpnZ?vva&4RV3Nr_4CW|yVlPVu+9BwZffj5F zgad605e~Gsfyh8(nW3;1;r;;3m4Qa43^a<%K;um&HPGfzhy(2?cxs>(Y397^$>czb zgU8fBo6H>btAW;t4C8FxV44BWG+3(#T6?f$pba3xf!44+5Dv6%K(Z+-gDej@8Dzn9 z#Qj{TK{p$T@Q4huvq3fb-T^WPSqaF|L8htxK{gBWS(+h(Y$+%*$ZjOULG}O;e6sik zb_x&~VAk54yqzHE@wGOGgQARr_{hB_&d&%w!y00}07K;7(sR(2r5SQ>i4+vzlY*;} zP@iFqu)bx1$C2O70-Dk1IhTS0uK?wDIoM9Cz)C@QW&Q*C11z8!efGN)6sU!O;TJ!o zK(TcW3vloLJqu_?pVlq~GXn1e97cg9jH(jrMihuHMiM%pSI7~kH9=0C)`19}mJ0-b zxkOEe%8s=18tV`%eG9Y#urpr;vIt0)mgw^lC~K(VDekwC+ZO87T(R$M>g3G%1rgeJ42WwVUt|;eR#~f{N9?Nwg4h=ZlBFfY zzHXq1eR)8{KE8QS%|5pKMUYvG^{Dlk)_Wexh~Ak%vb2QgT?&fmy%C7$-BarXy=?ct zL6&wuVWne`NBiV{6wK0GY4;9Lq}}fmVY|Nt;SGRBIEr^IapsW{mKYL`}I~&r*P`)AXme4yJ)<1M+1DLT{h?~2*|qveT`NP zP{2ATXeYPV`|oqq^F(=j;T(Bkq4jOhY(;{U86m5L(Lr2__~eSO8MJx`KCpV5_E1kp zZ{GvX-tzQQp7~kXa`891a%#0og8Ew|W_bhnR6WZok?Q{eH^@f2L>_6j>WWJ@pJ7;& zf_w)H%Z0_g#KOs9;Y{$k@SY;CQQS;vv3Y^K2Vt*$t}K@i`Y(kaP_tnz4E_jP^DV@; znfU`aHM$|>I1^GtW|}spI~De%yRHTKe0JPr!HJm7Gk*f@Pbial2*^qz9|NfXl1;Hb zL8yNcxwHAM!mTKLDGL_|GhaY{FXbNta+CF25aWS~7XE0w|*bOqj_-QQ-Ivr4^Eoe8eFqb$_0~yT;lu|n=^^43+BEV|~ z1+w>pA@kDf$jQ949|%5u`ADfZkQ<@77vF}mRs^{U4D~>M27X$>x+cgKSQhefk&8!x z|FE9xf{SSlA3co#Q*Ojf0g_Fw49zQ%lc9MN5f06#fM9Lg6*{eoMTvDXTFE* zcc9~wdq#T8&LhHx zUjjrLPVs6D=dk!Y$e0$W{mX&CI~*DH>Z|3U z^>pwB>S1ed1A7o#D=mE(xwAQpDO$)Xy)MopNyU#29eTVwsIw{fT#)Cmh{s=o7V-F7 zMCkEvff#*9LAD6U%Mesfcv+la_0mq*Do*IZyf|T-IAJLA;s`2O!OC69yxKuV?^kPy+GVBSphxRVBsCC;G^1TRx*fTA_o7P!g-X7X>u;#@OlE& zRF>WyJc!Z-d{i1ZYDOwDxt$GiU=QOo$cJAc%*(PZE#*~cF>u^k!MGbf2z@GB+^$L7 zfz^!D-zGB4ujr!Z@|yC}$`okq_8ubMN{Sl}<>kyDz=hV$zlnSfUzn{e>@j?Wp-voM zVX@a%F7CYt=32>dywX@}3ws==qPlUsPn(#HJFdO20_i$zI`iF(KnE^U#zErTsR)x9sNp}540QRHPFO$^cxUsa81iZ}l5dF{#1~@F zQzWscxHgFGiSsJKN*D52^xP10j5H}fu-M2*MbmH!=I}=$BAvO3$O)Z|jmvOaxSDOy z-8_i;noVB?^HkHXXVZT{wzC5(18aAHJ3R;4Idsgr;V`(AS#ivID!rcBX{1fEHSIhl8W)S@4dwLl_3@-iUc zHEE5GUt`#D*JHg=Og!fC&I_Z+Fd@@B=M6!&h*|4mgM0cSJ}VxALwtPRG>3{SwFsWk zoLL7QbZ#8qchz6gHOn9Ai7}AbKsa>L6j<1;7ZB?_nSP!?o@>KmDfba_YDyU|Q;Iy* z;6?Bb7=ZtVH8HMkkC?S#PYg*J?i7(2k6jyX204$RGb!#ml$5pMB$ScaW*rf(4POM3 zO);5mK0;1bd#|GK`7B%Lh0`Rr9=X0X8e#Pa!GA(<%mTdi8Yi~_@!}32rOlMr42|J=km7W2$TE36 zau}9aJH|EZ8RLq3p;BB?0uh@co-4BEf`l+PdR){H^sB^#eU#?}L}n`Gm&eKEa~KSn zd;$a9$;XpWlaB~+@}Yp}W^tK(&HzOwpBx~gIr*^ck^r=Ow=W=D%qfk(wTn3slS*19 zYNW!6C?$)wav+0wKg1j}n0G_W0-4F)KoOg!9;`y+GkHJc9Y`Aexpw;kOpDB~n^GUw zZ$FYbd>0tfH^qDxSbz1~EbmXT!64Nb2(j_4umQ9jQ-2lQEZ+^j+W0uKXKDwrZu0uD zBm1Vs$aj~ugd=;WH<0fwd$2^|n`6|jJtS`|9|t#=9%2H=RH z6AqfNr9hsIjs`IZu37%GXHS9HQ@}zK&d0^r8ZV;yTj^%`2rP<}>ElK85{RD9AGv`f zd1k)MtSoR#0MzqMd5%djZXH|V?|7bvU|nF&@akWVg6GRijTeYgGg2b0zd*g_oNr8c z2@{reku-OnSL{&~Q?^_r#cpOL#e4;i&;3->c0op7!`mcnx&#u|LeZnYfozs{!n&zD zUo2FN_aNC@zO-|>$*;LsYtL8DdrM6|?~Nafk$(d!;4OMCkmT7@5NoN?b|IO(?>mUh2~7}yR%$TR8>=d)oM~x0K!cPKXbC7uva4Ig0vY7c2JKFBThl zhrs7GP-gRui!dPz9o-kkb*JliPP={M^f&*_@`13iL^kGqWdblG=Pze}<)~b~G4V`9 zT_C~>l>VN!S^hDGsJh@sc-5tAxIMo{9<2m;vF=e7X?0n%Ae#QKU1Q9=Mu)6&M0%r$Uq$`12r2b9k+b*can1 z#k>w+CHK~3$li*YcvEDBlC>}1V{74I4}-_q`T^nLZ8k2>sRt5l$FQ2vMuFE(A&^%O z0$e+KR$yt5BJH@Ac$r?+-+?#FtFYWsee*K=rXd(>tbAa(6S9RjPH|f5=f~VZ~CiU(_cG$xZrTcD!sMnkJ z#mCT{e*-JVeOG}%_r0QI?Tahv91$M24m^723*mY0JI3BXFc^7vK!9sduM!E4DL>VP zciz|E>^IB9IodPt(=#7=ZQmE$b~mfr{vq3*I23K~cBTrQ`?#!=wtvmGw*gPJ{cE;8 zg6yzth_dZBLDVx#wS72PF>Ox(fo*?T$;Pz30eEctr@}k2?ZZ+bz{vR3Uy%e=dvNHL zGtg|$1agM69db#TJluhczGDOR;RToy`e`?PM>j1-b5w}@5bGv4tKIY?wQQ!Fwn05Z zWDhEqH_Zb<`L5!JVD^w97L-~17#;OGZGod+^joPM^-r*39JLMvPFSCctQtD^fJWyT zuo|t5ao!W)(Rr!DJBjn2g8*IBOBIgJEW_Cbanbm}m@EPzQyChGA5BKs7#<(=-h*v-3n-DPVq{PIm#9l!Y zET=WfHpMl*M!*zmBB_b>%~p+w;0x?jP_wQsBaY3Q?}VN@ALc(hKeB5@rbF6~wzo9Z&_^#|Ec}Gg?G{Eg3h!qI|_|39jo9 zyv@+n^BZp0x}w2Wjg)9>SCKfYjayDKZKI;P)^^^nH>12JwugSNvh)tF@2MX<`>16@ z>c;%sbH}KO7UqFYzAQF$xO3wD7&N#Ui6;BGOQMODR@AH*h25eJp~CLbrZC&XRfv`` z+w)AbbKQtp(6BIZoH#!d_dJD@m58uU#^~zhHp?y1+ou2qW+$RBHeX%cVtrLHTA33q zh`Ey$Q6VeBj>Mm(aDN{`I(C4cfJvDZU@c7Zut$^XP<`GtOHJ5G+K_9Pnuc}8+FX!_ z(kiMQruobaN5)XXBciRqO@yc?t98!VG(x)vuX=dh?u)>4PAq*>t_)usMWe=F9duVd zEpLiY812)EERO4d!(sE7sJoaQdnV{nhZVZLilNPZ8|Ml$3*mG9I@#3oRJ(~5DHQvQ z4sI9ZoN==qONIE z{Ja>`rm9|C&wjo@NpTEzZPZ(wKCOe%w~?MDdN;x?F~6oEb(IumWcMu@BZ3%LUxhRx zLU#Y)3W$AurwYQ3NTxi=7ACq)j_R_EIb}j{|M-hw!GR)UG`lB|MM8=YyeMc9!F!5I zkYlk-5l?D8SD^&_R+MQ(2o@?T!4-;1aG#&O3L=LUoq$Kc zLYm-gL5m0`Dk{O1ib`;!q7v}yJJ3vUJCbN7^0uNA@M|~FOu%o(uu%Y`kwluvT16+| zakG#ncwSKnxT^w{;7dg%;E}YT5*$-hf?ttDGZB6h1T_+*APJoae_a-I9%jogW&kCa zjU*yO`1(8O1TP30A>h|9Kqc6UB+^8_QFH>Hj0>{}_&PkK30f;E0l#_yDnSP%(LrRI zq7(2`UFaa-7b74|umVY>iSUJb&W3jRO=T$VU=&L{=#}0T1AXG{HtiCD^B^h-CRN<|iPTMn1u%f))@^Fn|Ml z@+**$4`rtzVU!WPBbvq&XxY&*vZF<|fZ$D$Ehf;i1u?R$kt3OqYf8%~tIe4I)WsR4 zhg_WS2$F3qTwxO7(*e^MN6;U!#j=DWkxZkI;AwO}$&3`9-9(&yxZB0qLp)%JbXXuC zwvjZ`81GVKc36%KCKZElz2K!~w*cPh(h1*k>6|b=cIkxQxb*J;C*XoZJ%oP}ytIt) zYL`xUpGzlv(4`YT?9%z(%R4TekmoBy=OV&GE}ihOODC+2Nrm+i@|3U|P z45zkCy?m zcIlkSzH{k>Ke}|DyUi(#I`x!ATu(^EIo%{85htuEcxhQ{K+ZIz>*<8Jo-BxS{I`{` zoFj0k;H71H2A~Yb_rtCXzp=wXZW*Oz2r>Co;_n_L3=jf_W+K=(mdMCi+3MFvIV$+#u z{6Zus-T?53prii=@OOn0xC68)k3;)Kk#9r;Z%0Bo*eahF@pl^%NW5l>$;LQ-SMw4i zSVO?8m~AXtV@5A$h0$wRVf4aPxDQqyQU-I*r=jp(bc&8dC*#8COgm25qAXD>hC*7R zuHfV71;zztS}If*l5uRVx=Q4;U4NE#~17n z4+vD%-a1KhIlGd*MI`g_S3VEoubQr+>!eE1D5{HW1Mc%SzkbhI0(M;Qw}bQ?&|wD( z$cLm&NazC2Rh(mh`ngo(n_>B-eSSCJM`D)W$oG+$<=1$8q(Wp*W)$gDMYM>3Gb}EO z1pEd(OeLUgpz7%qR6U!5swY!W^;`<7o=QR0GbyNgA_bLgRgLqyLfeR|Og-%b(l$x; zC-V@w)m%CmB${s_Hl77kw&%YEl$IjA4g%0Tph+--HUaGnFjS!gJQ$8D^rsjFs2Y~* z8c;}cdCUMWLTKWNBrovSxKfywyy+)e(o@DOiCP+aal$Mw7^q$AKVea<#!(FaO)27; z^enP!@erN<$`Gf|SKtf4FA z_e@mGo5y%UfLi5ymPJXPvRkNke!3%zXVgvcOjw@ zxe)30Ql7->6FcduToHk)+^b1*IZKnh9?9pPMabTSjE-tpJdx-R7Naz!Sm@Ovd zeSM`x=`PADwr7Y9X_EZ?cJd-#2XN(gvdt^^up^OVQ$~bKL!Tuq$Max)0~0qvje$u1 z+9~EPrnCcj<^h#ecLV9}&iVH$*P?U-WtDB78*mFuNPa_3Uc__5OcaUPpsQ7mHxH1% z3dz^p`N;BgUVkkVa~F)dxhHJq)ehd%O#Y`xKFzNpyC2D~nPTp8PHR44i?5bro@Vlg z$+FLDW*21D)-gJFQOsS!YRx=$K`HY}lJqAe-xwN=tWp*Ydy2VBO|9&Ndkbo*=$T3W zJ)+sGY!$NiA^9CZF?V^bHJ|D}1aC*k6DQt^BEnU#FLqh(dnBLBKSH(&$zLPI+~vBi zkuP~sS@qZ@-MtC&dzEWZ#x7-*ZC>n#T$10AlNa&4#RDL?nesI!O7awUfrQ$6MSCkM z=1o#3+>GH8-sd~=XUA4ni0qw6ev>IyZGXdaA(S%Da+1~{`GRU8vPxOh%xFpPg18@I z-$}^`!A?AO!#bMaO(fp(iFjKM${rHgd;-2pWg5ip|jk?jedOZj0)m^Bwv5K*Phjg~rBmrBIV-Ap8GB?xi^Ejkb2Dp6m= zZ}L_ul<(nDg|8o2rWlD~M3^A#(G37p`Oz%&2vU+U&nQLe)S;bZ{msx#4E_9nLiG>)fCz}cGtR5(O-0p&r!pb~s6=oo^}k!<4P3mLi}OH zBG}<$>Ar#i>>k|Wp)FCbd-Dpt&cNZ|AY|NNoQ(#cv}LT#(WNM&BQe@T1@REAp-R!` zxeC>SJZ)sTbWVie8YJ78Q|c*VkGoy1i;%Pp$v4$KgzU>m{>5#yWPvWpC{U(&4|$>_ zugOPUDa*LT+qOov$8ojyTYDya`=L92Mzk z69(gr?IA-qhizfa2p?9eBGYrH_JHpm4o^$rp(s8Qvzuc{%ZHy4GofucA@bQ>a_;}1oeGEM(busAL!@Aw@dY+$lYOkM;NB(b#uMg0> z>^w{Y(g(`&=ml5Cs3Zhy+xq}+XT%g;Ed_NDW+>cA?;p0#(cdH zC3!2x1SsMN^v?oOF;CfHh^VPJW^H3&qQwn@jiz3bNJd-0bq<#;z8k4r0V$Gq^^B6d z+6KE){>5fg%o~_IWrph@OijyEQ7IQwT+-;gwnNKdC7?xoi!5^8c06hlVOvaNg0D%B znk;vVqMxXBd{nEqSmN0>|D1<0CQqmsk=Hq&b~NQSNV2w1{A{pb-Lo%MR@$ zP)&&toTaD)tptq_^iouUK8i{(UQr236qVo#MJ1qt2(@Uty{@BKYMDAtI}rD?w9j(=F zgP;-#LqOXp=hCu5_)*vEyQuR_A0F7_8*NdNH|KrgO8GDSQ88}>>P0yA9lCm+gTwD& zKtDkTL5m6IBViR{RuH*NWlAfETp^jVvI-)%D~?$~gr}a^1~^2X*Bm16YYvewHHXO8 znnQ$N){#mDkqoriKw4-H5&q_-)I)?vqDmPe{1sc_5Gg^z){KB>Vxf%$7b_|O4_5(| zfaje;mf&hdCAeKt2`UwpV6&nU@GKN)AoxsC3HV#Npc3%-1L!5-Ptbr$z(YbnCAe2n z`O~gE5CK#I{>mz333x~cs02rmFz=ZaM0iL7H3RTia7YvImnuLd;O``WN-zRnHv^TR zT+j%?KNOYV14SkHFj-^?_?x`YK=7-g5+u|WDgl2)6b9jEC4jV0bb^+G78CGPOz7Z` zg=8tzAA8@+z{n?{gnGFmDx1$DJX<05tqVr2DmmI;a&$$s;n)N+7^G<-Y{ub`taEfX{ow1}XS zq7rmLvW>;2XAvvZF5?)Tjf7c^fI~9@S9(0S##3uOP(is|QS@j{Fv=DyiXO7jQny0~ zhig=ZIgZ(=40A8X$mn4lmC<84sz(p#sEmOD!NDAr(L*~bqsMntMi26+3nPeDG~pr(rg-9Qw(22?d& z6qEzK3klTk0lG+g3kY(N@EU}Xan@S=$VQIYlm!0Z5kv_tt0wK|`K4T?{2 zcXd7qYHStMgzNYV#;7UV?A<)&k!uWftTMknO9uuZ>F(v(@F-Eb zz0(R7@-5`~^+KK;=OZ!8^WuCYW-p8-afUpZ`}E8y7V1e88RfpkqGSRAU5HE9X?t>~ zDoVh1py(-_8aahiBd2g`Rs_ejjDncO4sti2?eOFYA(B+sxPT`9j|Q8CXj zeGSDZ)fdo2eJM*A)zn*kP>$DA->~cNk-W{wK#=$guy8X03;6FJ@T@&|&8z)KQW=tO z-!t8n@>@T$%5;(nG~ybo#1-^BqZwho7oe2Rj1c6SsuwV za}!AX7P@ape2DCqLh=emN#6E4O7a}Tlk|M61)iZ7vs%z?BI5!i)Jeb-^J3&k@U1F% zNL~z|1mCKnygFak^Lu)<-0A9j4i%}@h}UINk~idDcBTA*8x`}M^%KO-OqP%*;3CE{ z77OgF$OK%vkW8r76<$3*LP0H&j1X{b6yqflR0R=TK@6WYc1FTQihxU}7(NNgl8Ck> zhEJ0sNGMOhl~oL%gmV?2ptw4pgc8Lk;2JEZJP9)tpMVRq7(NLL6rX^rwHQ7LOBJ7h zOSl+53D+t z;*c4=6Nms)^~ksFiHr8k46?Qj3qImH1YSnsgHHX_n7>{6U)cM5h-ZnsgEc zn&ngQJANjc`eR+TACv=9Yd*noB=#AhEmKiGfts#7yT}a+w?I3IdfI@5z&)drCIXUv zYDKzsP6@2O3dtA5U%G`E#8i@i3QY?aOA4^-s(xk%_P2%rwD^h_bwF4(2~q_eLy)7W1bK=|5K&Zu$%;y_SWyXhDrBq& zqP68mYb%P@Ha1#YQM9(P(b|ew+f=DyEWzc177^&$qCWf_4Z1=EJb!!v(p5t8#x8$k zD_%$uf_j1$o&~^@Hxay90JH$NUJ3xFDO5Y1@{NQP;W3(&Kp7sOIY*&d@Hpz}29jlD zRj_T8Bu+?C%NXj7H`d${376hAiz|qAM#4&gfJziYtEM=qzL=&r?h;aj;4MKX5b)ee z)hopQqZkCwG@=n}^9Y|6{9^CzBdV(u(R>0|G{+~JqmB6te5&KMgm5HO#bY0}HZQJe z1v6uic%3Ang;~Muy?z;H9z}|SOqmhAb$2_Iou&=jAqONVEEVPfGUsVt!Q}cD0_ktLHLxEm_YDbfpP=*6!$H3c^;_J6y2spX;H^5h1{)D zG@pP)61fg<;VureyC}zMP=&5dbrHV(qdq)mbcaYp2zVN(ig;q5D+a+&9^=H4`Tmmm z6)gFQl*}j4C8LwghoJtZY93a4NHlm?86HepC8UUe#@bG84o@bnjfAcu;Ax?%A;h{X z20@O;Al6?o2qGTiM3wn|mH8D^*of05ekAx>NW(5(RJQ{1zZJ?ARp{)cI@cD_^`xKYp0i@XC zJgxK*B|z}#2?9K-bc+%o*e_@?!TC6`5^ubeRS@B6p|P4-aJNY36BI)L7Zw67>+5<@ zTO&ERO;(DVTZK(4m~HPPjcr=NY{W-`l#FbUKz zu7m|UB4G(hkS}O4!MTb`uvk$ESe{i!!)Q1tqeLJ=utd=DT0c4(_3`6fghhvt@Q1DC zihCl`6r{)Tt+S_)o(w_)$ zo)f}vM)RB8`a{|*m&Wr#^ydh0o&fVR62C62Km20X8Awf#njz^Af7Uk(iQm-PfW$AU z9OPTy?uXxk*onmV^7;0;{_xH4BS_yN{oteX*GwHGeg%$Sp3)z_?s`AcUy%62PWr>w zO=cqT9SFV;pg%KCLDx^r_3L|Do^MG#hx7sxAEN3H@lTOHN8*!I{o%vIn#t<1T?;_I zz0?tj&))_j@nt2xrNrlHd_{@R%_bo6`50eL;&U**nZ)N^d@YI3wfIgFpI`BXqz91r z2GVOteC(t@UjY9OiO-#WLXuZG>uN5_17C&22OfL`pg*?)FGtc38#J9Vn~?bP1SBpAry%JM z5B27$3St_1ibH&^d}e7ArIf3fixFMe=cmndGP~0L^91^aC)qX4|vRXoHpyC zDIMp|nbdL0+}TX&vu013nLc;&pE^#OGi&bLd9!BCNFO=4V~2_Jr_Y!yf)`Ahl-{*N z&ko%>&X_(C8RP#09UVJ#=s11mq#5(^!|8ue-KF!U%$!@2KI78Pow}z_nK8AavQ+-2 z!&I6(b^6Sb86AOnm2~){)zC%NTTZL#0Av2l1=D9vPM|0IK4r0bP?NY~ratlWe$9tIR#Je=xaa?SXW4oB?VfaB^Xs~rY&NiH&VaC}aVOzLN znD`5sfMp*GIss$@PF<-Ka*$^6T0&oSnG=W1cR?z%S6(K-&0Q>tT8Q)0Bb{K zEOFD~l-7B6D~q3slUgj%uNq^D zt+pt!TrTZ3odo=yE(#lod>q>e8&--9suoysm*up9esUw#Cs8r!W75ZZAV+Bt!c2%O3Za9qfkp|B!#K zjduf^qgMrdf;icheplngl2|mI`jAnvu~K#6cWO|pz*X~rl3HFSz4^1^t4Jy@i@Jf6 z!*9CW)}#3eiB>po_oZU#Lh1a|8`B$A0J@VA46s`V)ik{W(rWFA< z^fz596P9J~P|eahpHwYAy|(%T^mo0BfPPh5!T^2#X(u~tn*wv!}^I3uY55VxYK>N28aILBHJ)<5`5y5AH( z{_bM3Ptz1!WvT0rOjAd6Z*VU1UwwA{k&4l+$F&c5NjR}he)n$qgQ~AhaHk4?#C*NL zHyNK^#H>+zOey%p;^_Q;I`eRaF3kSBXK{2G|89W%7kcGB-C|be4+k|l>VRU^L76Up zSwtY~t3}d0EOc1*qzj#EEquAx#0-0el;;F|xfD|Cn#(1Kf^x}K7hzktv5OaKS2NqU z3#7n$W%Hp0Qn8zp5D(b)7NH_cUQ3WE{Rwrc-YF|4`$?6H7qk5H>_Tar>fPmwWndjs z%L+ZIav>IbrDgn;3kjp<#Rb2Aafem+s*8(OsxC=X9Xo@=YtXrOkt`H{^C|+JfAz22 zip52(#gB#JAi<&Sl|{1h`8{oaQ`%(YV2a`N5id0V z+Gg5^E}`c@N6)o`wi9}e6B*X`tm&lP)l^Ji51wK_674PyBNa)f-(6~_q!)1Naz~St z2lQJ1=Xe>_(uZ*Pow^G?*IjU%?gB-@)r8a4L@Cu=8u#5o+(Tj*a$)FSG%OY&bpcd+ zJpYa@EV~vp$_qu28j&^JzI;e+_CfVr)3*X6O!=7Wkw045X5EC^DEyQ*n@h&i(S(7Ia>~@-U3efm?+J*h zkCn0*;_-Cr3Ah&}x@Wt({Hvb#$BhnkneO6S6=t?UsaqC2st$n3XdJRH^yU=P~vw7}vU)zWKkz`emi+B27n=GOyK^jCES zzfP%Dp>#yiu2(cw`L~N?!Ld%!#!>}>=C;dEYm}{4u2ohxk?NJB6kWMUyID1xe^r&L zl(vua*mh;#vwr(jByLfh7c_?Rk=4+pQti_jiITYh-WOJ@0ZA(PfQ6{sTGjY{9UOG zbQRDysCdHU%~cvEdPnL>l5;H~e_rnDe z%y+4k%s#o;yQ4*onM%0^*dOXimEDS60;hwgmGrB!FsPQZ#qiH$J!aqTh^=l;U!zoL zQjzK{)iru*BX_+jrzRYkD&eW)^JTbL_LViHNOYM zq49E0`f0UZberog@UR@DuMa0k06eI2Z>wg%e2Mr%-#%b-)EZZXrHYNKQ~)edCMpN) zRSQAfa^mvItx$Q?aWA`XFD4H`ai4DL+w;Ye)7wzrqvpO1mpBchHQcF8@%odMU*kx0 zT%{UzOvQqmQ!}_U56<7ZnEeWi{-!P3@<%M%q%8VbS!BujP^{cE28J z%BKwaWi=#Pdr5;-7hWdrkCRKM8X)=_q2h~wC4jj5=CcV9;_MnSI3|m>*XKJEAmn=F zr{jwr>^j~F+(;C~vDu@$h( z=Zb{7!>^{MMDe)VAz89ymkQow>61FcJa!*4|P-^~Deln!diDIG( zgoP3ZL8&Sv_=%ToOG>HMTJ{#TO$gZA=8OC!F}%5GxIl~uiM*N@)lS5ceaac6qtO+K z(l>_OYW#VgSmVy0&(shney8p&tWvfdRr406Q1)yza5z`on;=!bzd(S*xH#zE8XVGs zHW#1Fl0H(J{1<1LBy`MT1jJ!YtU`^kSSC$T@|Vd3Qj1(Ik1F)@x9PIy-8x_FcvuZ7 zw^8ra5JyQ@+w;VlwakJ4{i4zXVu*Q|9?8CLI_2e4pMYJN74B}DxHLwre>;PYNk1) z2uUbHTtx^`%9(p zt+n@F>;1mOzuVDXD)rI1oo|==VYNz9m#;2ODz-57iZ4=osM}J{Qe{<6w$pM+TD*z$ z`qWoBsrd?P-jlCK?MNf1-fpS$fz&sJsWMZi#;Nzv-%C)*^HNnyeFc>|i%spQ!di>* zWuqpO`T{4m)YOEPlluNCW+t6kDcJy0t2;iOYL}VXm!y7EO3gq?vXBl+W+o1#+DKBb zO+``%)zR8`l2wy>_xxNgIgVG>a;sRe!kpBbwov}d0MhoCs&DMj70FkvZRhb>MzS6JZI4q9ho;nG(=5h^ zx72s%Dll~{DVH4Ly6o4;BJpdvDx5l3nU+i|Rn^pjuaq1BQ>W2?-;Jp9sm#=wT;bPc7$) z$qqB-TJirir<%uD&RSEc52mRf!lxyBfz&rgsU3atQ(cABDPfeX5>mBFZI-EThY!;H z+ML_9H3j)OSw+PeJ(=ST)*6es zb^DBx(b>hh_-n@uEtp{gRNvx~358`f99ooZwdozRu0>~6o19xzl2K4vl3SEjlwFqF zC%2^Epo|{$u7yw%8NNriLq%VrFTdz(AH6qZL79f zm2J0eVu9N0+NDxU^K(bHYTYrTuqbzOMqXjo=-jadMVdtM#EksnoNT*7DLX%JoVFXq zvIOR{rvifq~EmrjUT z(aMNzPk*)PmKNJ~Xm7h@yKG(Rvtbh&bAfN3#a6NG{8SD6&-Px($SO|FR91-x3rmZ~ zXBCV-KX*)tZIn4hxwgDh3&qxdaY@_1KZ_|1>eDZ)U_xP5$@ruO6H6!9@-HaNuq``p zVqQsX)>*MoZLOu(nN6cKza(Q!spd1a`4^AR8yhvsofH+w&d+b1tb7k>K_rXE-u1at zY@zG_RAq}V%q~QhEn9n+W|d4W%*`m(c8*#4+Z>f<6y_Ec7idM6OikX?!v^&1)w|z- zUOhAN3nq@sO#UmKsKuF^lWA+ti_$jLD&Ba>lQx)sYS)oWJ~ibeqa9xx`@rNc+)`V` zUNHGfr;HN4H8Zk{#ucabMa9{ZZHr44Ya7*stdjiVeO8^-t#zl=#$hWkSw(G2Gi*O& zMcK;9(?&eDz{{|8lUM9pO}eu2)<`N5^|m!zn3rp{N$15}E3d6h!uN4mWAbyeCzi&7 z*I#3XbN&|P%yue!I}A#%6z!DaU1EEl;F&rMq^n_vo#d**ESpfWn6gT;N9X5el#I7| zi>=JkwVR54Z+^j;jO@_`wu?*e%S|ZN_Ohj;rLJwlSe zdA0RZV(T=w#OpoAHg?}%Bc<{i%_72mGr*^1i z%cZ-$?^BzJ&!RSd&q*z#!u-w=PNyqzUhrNRSQkZcC@h$ZFLUL9cM?pA+{*eMcARH zIM=G0KFnL96{)?;zI#*)l@{h`&mSu}Sq@n?cfqa+Woxl`BWih=plomz|Kw$^KX+>0C(Le`>wxPqAIgZ4r;HT3ZmpvBy$+$Bc=#Z^^Q&eKW9r zJQ*8ydSfcg8*_pFuBz;Fau6@m(Whf+*)p+Bpx>Z=+H1uUADo+QJMOF=+6KL-SUbMy z7Z&AB)}|3hq5Og@J8%}+0X-E@pK(~}QEZRYA;}i~xUAvX`8GM*RJ4io8!)VwojRS_ zZ$M9f&)Nb^PS~=tOA02$`#4WqSL$5VN*!toW^itPcb$esxOYL(nB1IHj?ZmQ-sI$r z$X0A>f_=LU=-I#5;H=&Q?Rex#$v&iYa-dCb->DUtoEAj+HrbxpCD}3AR7UC~qNHf* z-}dyj_R7vGbBgQ$o=R3Yj%_lw4cq0#J1w0XyLRPb!?1IwWa$kUIQVqij|~|*a8RtN z^v+3}fOc2drjr9!M?Y}cHZays>{CZEKYQ_ItqpEM?gZPGqu8Qcdp_DuSCextpPOV0 zv{U)A6_D(|Y~9*fyr!;8j+3$t`4l&ryCBL-z?E!e)K>`Xbe>rItv z%c`sbfB!5Ni}$~dBev5>Hp4jaPKvV$m!$UMWyRUH!~;uGi}X=Pe=Y2hI+>5z>8G=Q zottB(PVYBp2+vF6Ou^1dTiWTqpMAz>R{Mm((=dIKNoF7Cn_5cA`m!@Uoh8S_`wZ?r zHMQk)dB+`M|O^@ zBcq-6XBEdDO+}YZ)Mt}ar3VbOw|%!E0|%6qZd+M@`$$=uJuY`hVeXi`v3X;(7mdx% z=D5T@{Ux7pa_qz+Z|u~vQ;t;a?LBNC2yCB}+5~lgPd*OWuE(Lzmc7h2vn6+5I( z%)K!EZOmvpk+Q1kO@mY3R>>##oZS4>yxF#-Ws`gi+~lkXw(kO zSCyZ`WF((EV$o|?p^Z1sPDng2PG;<>t-~qy?LtbnHz+&b$ty{p;ta9R=jktaEGtg( zjB$=gh`pWIF zX0%qa{9B;1FHEd#`&elI>-;=@8e`QeTLnr<7OCDraZZ~4HY~Or+a097i%h;fGA7?D zrS~4m-W4AKTl+`A)a+!BPJesUueg_&_4kFIoH4d6TUGYvvoG#aFSj~Q@jZIk@g>=h z*iJLwmX4iAjVYY!$zxSevH@oO&rjK93)nu@n)lh`Bny3?n4LwI78UUWTGVO~od*+TV9oM&@-~y~2y>HT|Z7M%bC1MNIx5HVzd-n3Vuy3GTnw@qTwsB?l$V_hT z%xpG6y8)dk7H2jam;4)O8rV9s+1TXfO52?`OYJZ$GO?gpvYTsWXIv%r%~?T_19oL8JTI?pz!sa?kB+5L^_?=XfG4o!U@r5am3{{AttXKucobe1iPvQ=kCr#^%I z8v~u|WlStc_SqT5$ssSb0&I_EyKsI6(**ckk7lrKhV2NnwWZgZojxRA9oj(w(by{# zUyz6Qke%RX^y$&##LULLWi~VY#1>Sm=B-;dZ`rJU%Vy)+bQs;T!`SvsQp;Jrmt|z8 z?#9g+k=)Cgm3*ihHl$Zpx9&p*_8&I1S62UiLwgPG)_+Ksmesm-@7JZ3-?U%RZXMO2 zu`~6&aWYDpLC{U1cJFA0+GVY8kJkQNZf_3_RV}}xjl0@I`BUtn`-hctvpp2Ewgoa4 z*hBSIe2G2Uxj(S62Ia`Qhgms4*+cbGe78Mx54+-3yt0bR$J$uaXo|S3d;XQ*8F5*! zQ+`jx<%su3T#ooq#AV&{t#U3vT(UOK;DptU=R~qi(mFqi)ZbTiD-K<__e`YLmjMp7EyyvUo4h%Vdqt5Mnc}^8o*aqdusfjB$sLa#NQKouCj~sPq9`#&mjxyCfy2{kF9x=!MZN2$WkAGs;pnd69b4#=8 zP}3%8i!phv8gkK~kz8V9<;*tgeX8=+h)W;0IttdHk=)kC%E`1VBbvDTneAT^A8b&0 z%2%h#+WwV48u1*&)%mst<;$^b?=r`{FGBt!<|u!;S+CP`b)>67&*g}(MO==!df3&V z=d#+cP&uEQW4h{mHTJ{5BVX2{R=#>YjqO}LqH0i?aswMHM;*6nP+X4vuzGRTptv0S zVRh-ML2)_CQU9(Q6qmc%Smmp0U=51PF)uq1m)qFi>)WHQH>{(4Sx*%|&Jgpie$8W> zQMcwAlrKkIJ)CP$T#j|!)!f};DszUpyywg`$MIA>oodi)<#@l`hWv$y--EdNKaG6# zgQ`L0$a*hmde56R6b&OcgtUPsZ zc#MseU&|UrigFG$Yx7W!`li#M>B`62Sn-~S%dzg%iYy&CG$=pm$;-wnNBvJ}P+ZpjQ1NJdN^v=stvdVDpt!7MsC;!Gr9p8y&YjeYlm^9R zwb7$|btR=iaXHqJ`jgV2xEyiyF{MFqIhK_gz=~z1PNy^|M~>}W-3w|^TyA7z)nSlX zZ;kr)IL92@lDdV8^3}1^$)2+a`41sqoj1lgra^I8%T0BS2Er7V z8+&{Q^5uA6*U-jhgYsoWp!vc`(54UiQkp?}NhLI4PxWP_L2+5{7u8>V7->*E)xl9JuD**jC@yQP{Ob^x zBR(H-IpTL9F2}lFhPWL0D-f4s-KqOa4a$?FoHr1cV|i{zT#o%ub=#rEdQk^SW!t=V zbT+7bb(I?LHTCwZL2=pIElakUK@o3k`ycZ#i);DZYu0|LzCB(y$Fw$>Ej5YnHtQ{^ z9Q9bELFLODtDG9#5@EXhehJvfks0tCNp`Hm+}vR$6E_C`VS^l+(?u^{AZF%!(=JbaRxW zUM&WAj{0pn&i%SM=3Sjj#5sfd9nzrl3ia;L#jJAGTSL6B)n&s)7SnVeFt>H9@jMNx zgRD~&y>>^$Ri-)idk5M^5_M4b1eHAhP;*R6JsZSlpLS+j#mRKlr+^04Q|@Ngv}T)C zj_P)Oia!}~x3&Sr)h4?Jl_P5#u5S;u_#Vq&E!?;E`0?5~*r0rQw2hTN$E>2{ zCFb%rR?dBHJ-^=^WvcOg4XUS_GLP*?Et1EwReR*It*TY=B;Wp%m9J^3k#Y?xM@@~# zaxSM0$>SBxQNG#(kMh-sx0a{MX=9G%-_{)4#>wWGm#*eGM^dBS8Z?h`96Qt$xCYf{ zs5$DR#=0Y}1{rnAs&dsvw+7|sBYzU&C5WrZ?#Q2pxLWFt_)K%AJyH2;V_SpDm!m#v zY&+s=W;^0)V>{w%BzurOQ8^Xu4W(_YzCDgGE2ep`YmQ~rNN+kD6qir1vGUI_$Ffxu z*?O(wL(Q@8%`t0GJ!R$SF&1&Pqdn5&YSvnHRyk_hT7#x5>#(J`8o7?TsgX+!%8_G! zzcFh%imTzvQ*Es0YPed1;qY>l{w5D>+}M1l&=OpWBE)nYfwGq$XDaZ8WfKqelO7TiZ(3`YwaOxtYsqah8x>N zBR3>aWdcUOaVzU21CMlA_dje5fclKfAg81e9B3zuGoWo+a1% zH`mof8O=u*7kjj*AQeeca`aP|U$>olkzF{LTvq4Vsf6Sr(dH>Jl0VS%mo zx1a3Oo&Mh46LcUcXS>=nZLBXXrrBOse;;qpb+UK6ZGn0|&7SMz<3Bdm^Xv88wz84_ ze36ZH&{tf4Ut?n(jFbZXKiUXmZ zPqpW90Mzqq?Rgyd^!!$P9tS)FlE`R#l-5~#!RrUk- z|Gq4*?3a98GK)+0?81qCF0P6f^enqzz%OJ-UFh#ui$+%21pGK_H(@bd|&o7byXAoXqQ?1?b+WhTuxnvfxrLH>(21^!MI31!vFiu zxA?2oPZzJnCBO*(?Skb0x|}`||GqZL=7krgmIeI+pt6_#*Tw7cm;dY9hV6Q9R?&=%uJ$O`NU|^Y?GZU6Az;Fa);@OnAZ z{Uv0N4ZS<&xYOhD3@vf*|5hRQT|>z z)Be+7`~8Uj!=BbEZ~J)Lj^Be-X2kW{T7LL!Vy{(P7in~I>qppb?h!Wb2cH3tclWo~ zPnNCBidOa#kGHY-OYnQ}PPnG!sSe5?=vMtl!Q;UT;E<3`KQ85;Df8C za@N|LXotI+oz@MshhF=Med5bN%Qj!NZN7f>_%#+k#2%`T+z>tqJ`cVee#Wi!Wi8hv!I}ft$oyFPU!rFx1nnc^QtJEO;Dp zrogwtcf$|BPrx6*f62DoI@)qO(7y4B`E3lV$DW9v3ajUyh^zOWuzK(b=ffAm>dhx| zu7PiIud?xN@B_$s4Dn~((GyUV`MJln{HxkSaXAxi=RVQK7t6LB`r2|(4?%K&vw8)J z_`~pe*~-+9AnzmpGvt)BzbU7;joZpzW@p3)d3=yfYl>TSxWaRq*k}5?5r5RE>+rO!GMREb|2S9CNXIu6e3^p7}EO z0`rybh30GBi_AB=mzZyJYhJd?HoxlCsD^zQmDPo_enincF1MU(J+2=%YDT+TfC)gW$KIiliKbsKTRrBfcO}Ku)6zt@dRnrVB=L$iuIFxT>~NBn%nZGLp2^7U?AsQipu7bI_Y>%!w&{#ig57`J!pLgJI$eQliM)|dQOxpndI ze7EZJpnJKE9}e5ReCXDN#NWD=e~^EskbAmy!Emly7YrA=C)>E#t>ts4TNeyJ>{dDJ z-0N-pl3V$^+`4%9XScrlILaPcR=SY5r&|{c=ec!Z@HK8-7(CytGPNygz0|bn%GK+s z2C2`tDs#QX)+xvRl6#8f?3L}c+Gohs>+6;FzO$9Ad|epaK(?Gri_6s;D8qhi@*G`M z+{1GkT3oI!*l?!j%(n3;c#c~=Mc(9IVB`62UEFv({G9t<8^7vS`JcLVL2^a^%q7=x z>w@Ht?o1o&LS)UCE~r8 z?AGVVTitrC@-*GGHeT#j{{3!Uw7ki!3y*iW^*Qo8x5}ww^;0>z@VL2K%j8kFK6|c% zH@bBJus-+dwOStA-0F#Qr(2)D{&aV=GSv&G@^#VgL2g~>Tg$DBhYxq_f?+*ZzFg0( z&!H!|&$aOgcUK#aap&21tXn;O7Pxg`aEV(N4`1lkXV|H3eXgD6*78xF>Y$5+XS@k?%fu3hg|IlJ8-+qkklSD700H@z&SKuHc_H_1U+wTc4qhb)R74#)!9a>*Cw?Ze5_;$*s@GC%N^x`DC}sRG#KV7vlDF zD}R7n7w)PzRpsd7+pFCA+&tT@a-MYS;@el#u=uo(-e-70JsCC@RZ{gNw z+}3WD-^;CwPEU91Gq0Yj{NXkp;#U4eZe4(SnOmQaXSkI!-@VAjceqtgJy)6fEWg;T z{8et%^A)!~Tfc^!Pu#jl^-I{=k4(zcg{*blDyN}apT&=JYg#9|RZe%eKC|n&>UOG) z`?!^_i(eI&b&+fMV)x}Xz7%m?*s7d)Hog&YUD&Gl12(=7ab4J|_$xMk5piAE8q@mO z{fCYBxOIW3o+mlxKiv(@74&)B%GCD+mEF3~^Z<7)8z1D>g`m9x#ppSe~3Z*F~;uov;#`V4OSfzGy0 z?ucvpAzMvB^Rg^FAG`YeA7{0RIMtcxj?uR7?VY4x;nX`-`F7=$NY&_Ggo`Gk<|8VO&gPYy@Y_1-KRsOv;UhY

@eMY9$*l`7H@o%PZ``|W{G(gF4C}dGtDJ`RNa}CnR&HG@pucHeMp^ykSSF)A zXS|Jb-TEFtJq)WHefKckt?vrvx^)reJh#ew(5;I$^@#eccI*3z=iR#Sa-&<{PrTz+ z`MftYj1JiVdLA}%3tPw+{TZ(M_K$i zx4!c@P~QpIa=YJ_n;hqU4HUOJ=sJx?ZhaS`3q6&;%<|<}&h0!$7j`akKVah*+`4{a zt6SegeC}2mzqyrD(Z6TV1)m4I_5Fk{`qXq+*mUKX?g^fwi$B}APqeX~tNzN(b8B8^ zxb>aJ)oxt~stZGvuZuhvx!2lwv0H!FcOt68N~?n$b$HTqbPdYyZcVF7?Nph%__LZ@ z-+}14rq$KPb==3>xS?AYc^>ChehatCAL!PFqxo*-FLpm^liZhe>XvRfBzsz+$m z;X@nix#sIdn=d)$>o3nytWup+zAoUb;@0;q`@5CX0`azRd$_x7(^_xSl4GAU!gF-t zXpTGI#^<|rQD~uC-{H(~>mt%?-1BU#=bEpZYLADbe(E{8 zSadtA=PFaV`}_Al`mRV9hN_$`R*oFy)bku&{Mppq*2eAK%IyVTFIzbuTRC!kw%X+J zFDx#{d-EH`tv=eucDi+uDC37&D|Ake6w5EQZ1G3@wH7$j`i}m z=V)5byLB<-I=3#K+~C&5lkd89VdNIKF1-9K;)^|27Ii_`x;#Ox}yH(4r z@5+vL>zb_-+`3-ta<}R~N4D55D^rd#Z}S{o|8<937hXQ-R+&$`Rc0msZcSy@lr6T~ z%9Nwb+Mc6}FpqYt&Q08!mcFOcytK1%3)#xqW97)Pot)@7szX1w>TsP~7j51kx3L%6 zaF54Tw?|~l-D`0<>bA;rREO2>mu&pJZ21}X9hDq)c+GQEhxgsda`5jGby4UkZcVq3 zTie4Rw=N1D;?{+r=fb1ix)3zit^JsWa<+UlRJ2F9Dr|?gvbdc#me~$rWwvUU*;Zqj zGvS7CW4I~Y5^f83gge7s;hu0`xIa7y9tw|uN5Z4v9C$pO4;R8E@Dz9&JRP11&w}T` zbK!aL0(c?32wno;4=;n4!z3^8cjXc9 z3+ub}h!2AGJ$uA;-Aq^)bB9O4Ik2v!iJW{`-_J+91fBvz`z`FJ+@^xGd*M@c7Zp1U;hHzuJDclln3wMM&!(HK?a9_ATJO~~NkAO$Qqu?BP zJe&^~!X@w&cp5w%o(a!_=fHE}dGG>wA-o7)0^biWgO|fA;Fa)dcrE-QydK^FZ-h6) zTi}o3t?(D{*YJ1nE_gS*2i^;3*l%gEtyYAq!Zl$1{ulYR;M#CqI1_FN>-WScrzzYL z*6)jv(-H0rcZGYxePR7x8RZOu^?PN+N5CWDQE(1C9?pjg;SzWXJPn=>&xB{ebKtq~ zJa_@T5MBf?f$xWx!OP(l@Je_!ycT{DUJq}8H^Q6YE%3+iR`?6}Yxp~O7rYzZ1Mh`( z(jVJEMYt+l1Fi|zf@{Nd;Y_$8+!$^Ow}kaucGRsS+!^i)_k{bx{oz6IPF`W=7CZ-@3(tcWzzg9;@Dlibcp1DLUIDL!SHo-J7vc5r26!X9 z8Quba3~zVTx1)c^^hiAgG;5qPI zcpkg}UI;IOm%#VK%i!hk3fMj}W*lO_{n)0HT-zbnGV4*!tf96&V)@iHM+1$SvgI_i zu^y4%ShjN!4NdK#{Ejwm1?#!uC)v1%TjN2pl{wVLdPJEcWG{21a?JXUC>tK{{@mgP z?(OEu?w#i8vXwv6#(G5gvt%!Sj&jWU?c+xHR`-V%zhAa;mf2X3C}-dA8B~sbcUa}G zm0xfVH?Mb}W!@}XnOkhEN0hnm_Xa9c-<5soua$SYe>DH%-ecCyw#u(!--%VV&qpf1 zhK==z@@vYLqoI~^RKDfw`nPbV`+JM)S~taiGPjhi%(gbxBg*V3dzqb;V@?{%fOS8M z;sflv#1XQUGt$O-L^-2mFDFMiW_|aV2TyW;YVnKQUzlggR^}`l>k(znk-f~h$}#Kv z$@%a?_q7&ZCR;hnZLCL>vqJWARw~D=`%s^Q_1RhR=PkZLwsJPwSdS=Yv+U(;QI1*n zuYN3BzCJ4_pO?)V_Wiu9eBIxwdwIgU-Bm2U*UQP!H0%-6ttcyILsc8=wYo31hHTTS zX=6Pizm{wd4Yh5oeBC!&SGN328|xAI4P|?1Xl!HU>%Q8ivgNn5u^y4%Rk;`qWqWAoYh&f>zTEz@#sU-tvgku86&jrEB9d9pn;EU>Zi zb-(Z(@V)M5EWXVBocRg&dh=@8%3o_^J)-;ax~Odj#>9Y9|a%l zKHK6g-DAuh+~dsM-Noj9ZvCD!NVe$?wXq&C-4U`+ccgO6y5~9@&U0_Gc#->S^Hldv z^9=W|=Ih-0&1ar$(_LU=Jz}~GWuLA-(`mZ8xBFiBVRwz1F;0 zwrOp#u^ut4eLsIGU-ylF>93XbnM?7%%)4bPXOE5bh;sJ*oTYr-Z(gZl>b3Iz?jy{H zxiig2xsNqBbRTcF-E7%%utk^DLC5!caAUWQ?=9RqzPESl_})bkiEip%aa&BPDM8~OzJx6}ht>e@hw~kZ${&t|{ zsr}Lio+EE{YrnMbZvo2J{^2*zk<0o1U;BsTxNkYyKOE?B?H@ADQRjvp*ZVq-@3O94 zSNVEhpX}EAx|dt;>p^b4uSc1q%p8yF{Ts(?IgZzQ|4#E9y?@oPK3(J1`&9S9s(igq-*oGJ`hi>T)341@{&ybN`|$_(H@Du8 z8CIUk)cf%ux89Gn-FiRj*cW9s^|;<^t>BJsz3+4^i~Rl`*L&&=_$;^HU%Ee6b`K9p1@a6E;u-=dH+JC^e!gs;xOTK?|~nHm%~rPYha!0MwvR-4Zj2Hp0bGl3r>Dh@OAM$;=jQEfh*d1 zX_QkPJ{Yb8XTrz9&Ea-%XSfG^Dtrb!0?vZR!V};U_+oelJR45Fd-vsY3*vXe_rl5d z>Yo1u;=1Q9mfH((@}0TozlHdF@F(yW@VD@f@NaNAeV^&&9{?W;*M%FvP2d)AJ6QJy zM)}>~KJe-A5cn)O3(kcvfG5Eh!k55Tz_Z~SVBM=2b-o?G8(s?Q9>&Oj0#@585q}tTqv&{14!-;P2qy;c`{euRRDp3T^_ogS*26;IrYe za4~!-ta~`4{`25P@G^KM{384(+}Q3vj53?UZQ&E)u5fR-KRgYd0ndVOfS1Bgz|X_4 z!|%i8tEKC&`!Qo)j)m1hTEx4+{orA6Har2I3SR}^2(N+v3G3d>sKe241Go!(DtsoK z15bi4g|CIzz`Cz8>hM1N75o$Y7pzWJ;%Xwo&xK>&3Nri@N)PW+0O4ZtTF3zmxi|$x9lh#!e~BgB)AKs^5x#l3DlWUt#0*A>N9|KZ zopsM?cmeVkdcN8begHX-BIgOu(RWe0|1_rcD&ij~?(5}K%wl7A`bi`*PuKQb~o(s&X zr@otc7&+>&ByyfYj_!4hda6CH@Z0dmvX!S{t6Al%t(%{bqx)ea=TGERu`j!$%$jf= zxS{OjH#Vz${Z`opIo*-d8#x1!GXlo>C~f3I2PtIeNEwtdCEw5IIaTOHZ!bCfyq zTO+3fa!x`{Pvo2q4~Mg5FF)6;^40FpWaM0o9JO^8IkS+X_RXTsYTqn;kL=~&XVz=g z>FT43`?25|h_fEd{!?a^uQtkFM$TLCX5?={{=bl;`_^OLb+3B(PuZtc-mX#5wAAjI+Ek1j z-Nzm|naF8^oYwG3aBtbmKh>=A)s|Woa&&!F$Pg1 zP5049{xak&N6sqb=$`t>e;wW=d-=MrK3v(ZjRADTg`&OIxJ;(?fQ?Xo9?$)-Nsnm>MHL0 z>Uzl0wIh+!966nk)5UYtR^DLboQa%skduR)3Gih2a@p7Qm1fmJ?d;u#oV$>-7&*(3 z^CY|mepUAJ-!QBEO#7a78*;uv&bP?fjhz3$m5)g;!~JD1{~)uv+D^P-O0Z%6!T_;q+2yj}Kf<`>!Pri-zn z{ED*Y)RH~t2;>}XRvpw9VoT(7LQWUt3_#8h%w2SPxk=X%RJbuGS#kQ zJ;l9lC&(7p(88=7wF!Bm;-1q>wz!6VX62|Kgkg$%&Ux@SxDYOt%cshjYL0SdAm>_m zu3SEqKhLcE$85THEAG=>DqCE`LuTcuEz0K*e*y8g75CS^hnx?Q^Eq<9gMWtqBbQH2 zw_JnNbbq($9%7F8@$gCTDY9?#17)wzFyxfLv*E??GqP`oufgxaTj5{f@(t7VtZdeD z(|tn+Deh&~mA!8D5O0cjE5th^-VO2oh@XLYHk^-~Nr+F8eK}tOUv5^N)pp-p#l4>M zWv~At#FxWQB4;h)FCo4e{#^Dtd}Y>jkFnp2b|FVSI!8`L+1GDP+3QvZt`DC8x0QWb z9nG3neVbNaJgz~` zEAU461Nc+fU;7o}yWpQ?Uk<;SwH)+YU*$#?_vKkb_MDn#<*1$2`iM6|yuIT7+LMrT z3Uc})=M4C4c(m-(9c$KfpS9^0BYqQnv*(o9?}7Iz?sa$wIgcV|C360WoL4;OYAfe` z$AV?^L3C}^QD|4kaH|@nt0AjmeUD2CnKjja!y0e zaO9jV`}Rwl+N^>1dsTRwuEr{UGeUyJ-#k+TW@2>G9Ren%_+ zN5p^exZ2mP-Z;H%Ysy}?T4vQvIY%L<5!?bkQTErKY}RWpvDXej&YAE?e4N1?0R2zk~euJ%6K>{|(~*_PE*yuFxbs z-Kw%LlNx3%6XhI=oTK66;MTIgw!K-et!uw0_eRb@cqsBmAU_*9=flOwztHoWS@~Bf z?%VkS+7z%?ByJ2j&f=vClfgh zJxA>fcSKG%~**bUIae_zbpGZZi9b^D>qH&)PWnpt>M$)!Lrw9xLM0Y z_nT)UCtvpM_F{NCa&AZb0r(N*tdo6OFPk+j{oejD^1npR4&>}bTsINLGOsCn-Ri*g z;p33s67f#5*QX0|`XOg9d=5NL_Saq@`!;Yfa%RHU!8gnP+S|-p4rg0T~2kg z%DKt%k5t_A8^TSH-wgTfk#h>%7y11?U)MgIiJURW8Rt3bkL*I^OowN~|B!t-+#>rj zT#B6K@G5wn?5};wG$LhQsF|CkOEf@MQRM*~`DutoqclYZK-pXED4C`O9Um&+~}C3x9x|9kMTzAK^dX za;?(!sbp4t23dXTDDJOq0(XMD%RVo?Wv|4=X& z{6fU9f^S65ZL%+iJI$&?N1NV*h(99x@_$A4`fP;XMb4*)e^>*oUn!_F7L9);9 z*@&NK*8Hknf?~yeey1RR2I5yEek0;HBfbdndl7#W@fC=#LHwVxFSqxQvlTfzWM6JO z&8oky)7guhO6}A0Qcd>!`fwMxKYT7cL-yr%9pX2dHC?qAv=BK<<-=0nV=qJeX~bWG zUqjBPve$E)S>@khuR+dY#FxoFt>tD-tBy@; zEplE)&PLhm`4Qrunf2PC_P1}4^Rw*r`~&gIC#I)c&8*j|y{tnOx3Pvy*rsT544F{i;jvp@jYumw{%qnMzy{0en2P0>==cs+H zT;yCJ`?Mw_|02&{VSl?4Idf&N=X}H$A$~97Zy~-}_WJLJ59yq)!x6IQ9BtNo=^C*P z$mtCaLjF+C*L7rhihDgLBL5P24tz86Z4G#eKRJx};xQ zMfNfeL;MJ{UVC_5yB#K zdUyw%aY}j~E6ZL^HM8oYwv~=i+}BY<j9^L@I1HTV{3U7mVz&qhz;NRhL<^{rF|D=mi}364Tksb6WB7CUD_HGu z#k6+Af53mim2Dpo`PE>>B7Qi0G+ZBU0yl%(!qHBk)^#_;d%@9WpmGKwekOblJQ^Mg zPk<-EQ((2_74vu{JR6=1&x3D=)vi~Rb07R5`~>_oyarwetBtQH^9^`2yaoOj{3WdR zzM`C6@UQS6aQO=9{L1kD@Ii2GxGvlPJ`RpHZ?%4Pzi8C$B={7#H+(952CVkMqMRI9 z_lrin04|0vf-i;V!t-FY2^MAE1>Xlh2(O0M!mq%u!<*puV6_7l(~Wj+wG4M7u6AxC zM+fz=+5`*NfNR3F;kxj#a1*#C+!j{*U@@((a3ATK=NWzwegu9BR$F0_zYcyG*1esPvkCqX{uJI0e*>%Cuqfvj_)oZerF2d; zSnY|$YY&5ufa}AJ;O1~^_(b?*xHo(%JQyAhp9hbI&xdtSX4HQ&d=WeYz6!n`z6rh! zz7xI=eh_{fehOX#uY+HM--O?TKZLiz+u?u1Kf=Gmf5Me3rVe zKMp?wuYq5NUxPQn@4=tK+u(2Df5X4Pzr*FLq?c!9_yG7|_z3uDxDk9j+!}5V_l8e} zb?<1b-(m1r_G0L?weU^w&F~%Y-SGYJGWZGjX;^JA#=NhC--h3X zzl3+dyWrh$1^W^+%C7<+1|I>}ha17o;8t))xHH@X?gI~i2g7H<=fV?UwILbvG6kLn zt3AocxdFZtz6aL*lac=<{1W^syam>MmGRnd;qT!;;qo=o`PJbA;iKXDa4WbS+zajp zkAO$Q7r+Iu+PaK+nE~Gf-wfXiKLD?USHrKvZ^56zpTj@GzrdCDPuFulxHeoDZVI=A zPl0>DgW=(DE}REXg)f2Uz;ofd;KlGVcscw${7-lj{2sg={s#UH{tsN^fb{aL2_FMD zfZMS8Squ`4e&qUd*J)vC*f7_tMD7}W_Sy{1KtVmHpelp zoc(AN@2N^~4Os1SzU+t+wi;a7x35c9$4+KMt#)gYWP6-FmtSn28bUAH-}rpC&8z{1K`2%+3MQ_d=q>Rd>{NIyb4|qZ-767 zKZC!Ae}c;&l3t#b;RE4A;QDYQxEkCaneaLAXm~6<0iFb30bdPA8@bxHZ$kW5_zw6{_zCzKcn$m#{3^T= z-VA>Ze+B;=RzH-nZTtcM1y{D~ry{2stTuHc9&PGs-Wwv`7;XW#flq`_hI_&N;1Tdh zI0qgN7r@2vMewEYP4La|z3>C@N_aK=4*Wj69abB>u?&BJe}?zM8HcCy4}=ea>%)!U zc5o-SE8G)49XQ2I6K)8f0JnfU!kuBYCmeO?0}p@)!)L+g z!eim{;Yn~Qd?`Ewo(*3I-wfXdFNT-GkHC+^&%)2cufuP_@4+9!+u?8EAK;(iKVh|9 z9Lsz^cz^gX_z1Wjd@S4wZU=XUyTbk9LGYRIIq+zBEUdPUV_v4hm%~@WbKtq~0(c?3 z3|4!{F|DWJXW@0Q+D4B2ci|7Rl9~a%B%q&2_FNufZM>`;ok5t_$+ul ztov%B4!Q>>JRQCP{s(*yd>{NIyb695egpm(-U@$Zj?c@x5#Ixsv->xq&XwQ;;Dg~h z@KJCh_;|P#+z##ncY~wNWSzGRKzulSHarF%2Tz2H;EQ4PR~_?y6?_e>eyk(s7WgiB zF|4+iBR|?+*1W7m{6$!8FGv1c@Tc%L_y_oBxT4*g5#>~cb&pNNkA#nho5StQvCVWx zyf-`$9s-YqN5SgDJL+%&TmnylFN3duuZ3@b7r+bQCGh?5qwo{(Gw>St75H^n?NrBn zy$62=e-3{G{~K1n<5A8ZaCy7$BI1?d1K~s9`fww-J$xeE4ekXGg-5{Ia4tL%E`q1R zm%vxS*T6Tz^I^4{9n0Zv_(Av)_$l}q_@D4A@SCvO){beZZSC-9@OJnc_$T;RSpB$1 zITh^2k8rfVt^Gqy#MO6u6&9OX3B0dTphny0`r@)uNSHRc6*TeJSTj53U68Itb zQTQqN8TbYGC3pk85q=;32;K&7hj+q1zfW1a1bmg*(E1;M3s2 z@NhU6R{P}fexC%F!qedC@YV3O@J;Z|@E!2o@cr;I_zC!Fcn!P`-UPn~e**st-UaW5 zE7VUflPd6G@DcFwaC5i|+zlQC4~5Txv*5At`EW6OAv_(P310`_2;TAt@F+M3z5p(OC&L%Pm%~@WbKtq~E%5E|J@9?-!|-G9N_aK= zPxux1O?VUh0sIO41^hMqJ^T~=JNzeHrD1w~Rfi9T4}*__>%om-wO1e8KpVINd@|e} z?gyU^4~0j-S@0P6e0U;U3QvWn!!zM);Tzxu@IrVoycB)}ejHu}KL>AsH^T43AHiS3 zJ7Be$AM0W_T>02^yc&EEd?ad%~x|1L3pabKx9#JbV#+DSQ>I_V#1m zZ-nQ=3*klZQurZQ?eIsLPr=W@FTm^J4e&eg`>@*TkMg&{-@@O+f58ecxybN9ruYuRW8{y6HHh4R%cKc)bN4xzx zc2_J6!Bx=25>959o!l23ip9egNMOq!K2_D_ySmM{>MD3o&WIV@GN)^ zJRiOlUJ5@1uY#Y0Ux(j<--ADdcfdR0-S8gxFStVE^gLFB4}cGa>%f_CL-+)^1>7E1 zKLW9AyTQHS{_r4J{R_lv&w)q7W8n$#BzOuu4ZaS(5ncc_k#z)>enFZd=8uikA>C8 zLF7+@OW|qobogrcTKFdTW>|e9#I){#AAlc*SHtQzAzu3m{5t$0{3)zH6ymi%zeRW2g8TK$G{EX1=2fhz}6n+AZei>AUml1y#{s7(ztB;15m!IHY;mRkZbE?60 z;G^KCa7(y@Ikt_Si1&rhfQP~7!K2|kcmiAkPk}FouY~8obKzUzJK!bo{qUpk6Yy$y zE&K}nI=mU)0)Ga74u1#lf`5hofGajluhXjV;qZ}geOP@}#5U6o?gaOR`@_TFv*6M2 zSa$2Smv8~zaf6jq-a zQBL%!p>lpi{1>=VvvmG`u=?7Fa%#ax!pFdk;N#&|a67m&+!Y=O4}s5y&w~r#Vt598 z6+9ol6@CC#-yAXTtKqfqTkt#ZHh4SyGpznNqWr4O)2;y@2_FMDht)Snl+zvV4G)9Q zf=9tQ@Fno&@LYHvyck{ztDlaj+vD&$_+|KA_yhQB_&aznoY5jZtpnjh;QDYQxE^|LB`T@1t`N&w?kyMeq#xDtJD8D||n^41N+`1+RxUz#qY%!QaC_!R1?~=eII^ zC|n0_0yl#@!(HKl@DO-3JQgm6r^2(~Iq>c9UGRPIgYZA$SKv3{P4MUNSMa}K_3;tg zOodiySAh?J4~9>GTfpt%6X7B7nech=X!v4SeSAbcqhAkg+czP8H+(PrB)ke%e;-k1 z^!K4M-$DF+_%rx(_#61&@GtQ1@P4h+)7>Ag1=og~z|G*cu=*2;dFcnA4iAOZpGf5A z!4u#TcnUllz7C!TFMuC_ABI=JE8$n+H{i|i7I+7|6W$H)fz=mD%=`XuEx0z^1a1bm zg*(Fi;M3uu@CY~$o&cA?Q{dU~b?`iR0sI*JB>W=09)2JG2;K&7hj+q1z<7j6I_2e*RT!JXl*@Tu?sco=*Zd;wel zPlYdm=fHE}yWqv}lkh5dtvT9K-h{aNaEW!NK3u|Iz(2vi!d2R*^Q*&0!S&!Ka5K0I z+zsvrpAMf3XT#&+e7G3C5WW;vKQb}z^WX*WUGQR9eaFOWpM~Fm--frsU%=nO-@`RJ zq|2`fs~?$|ZYF#jd;)wTto~)R%>aTL_oHSHM@pH^aBV>T4#- zybpc~eg=LOegpm(-U|N;{{dI)n4azd@S$)WxE_2g+!SsJcZGYx!{M{xY&aJ#g{Q*T z!Z*OT!*{`t!%xBM;FsZl!C%6=;XQDbPU+=Y9XC2E;C1k;@Eh>E@CWc#_zUJWX_s1D;0zW}}%z6@5sHc`&C@NMv&@Wb$9@C)!u@Md@m{5`CG zZK4k4PfEKoygz&pTn9c1ZU{GqJHRKwr@{l^bKz`wygAl&DdJP%>F`YWAMh>kUGQS~ zarh~C4ZIHC1iuG=3U7mdfPaQ7bxyB~{oo_vW8g;c@o;CjE8GV@4bFwtM^9`Ug>VUc zF?<<38@>)+2rq({!Vkgf-zVzu6ucIG5q<}LAN~~H2Je7(!h7JoaP=3ZDg^3+Kayu=-<)ZQx?~I`~F-0lW}i3@?Qrfggug!Oy|!?$!@t6Rz!kcs*JBmK&&+l0ANG&k_1{X@{$W>HvFp#uZg$sVWrtWv4;ic+npP(&|ErJ^XLq9{s5FWT?pappPKKI_%%^M3tqx8HT! z*>j&WXU?2CGjrx#bIn{=Ud?*dQLd{TP)=6PRL)ZFs@y~QD&=D3Yn888o}@fQd8YE6 z%8QjBR(@1@rSfX!HOg-)zoq;y<@c4pRQ^i&JJ{>1oKf*-m8(^n*se9(qQ3IQ%1O#; z%59Z%l=GDfmHR4>P#&c`PI;p8Eakb%4=OKJeoFaSS5tz5fXP5nnJ*H><=e5vwf${mz1SI$>1P`*mJSb3Oo zsqz@*amq84=P2K;e6R9S<>ktcD?g>YR(ZYhM&&n^KT!Ty`GE2vZOXHi=P55$UatJO@>9xH%A1tm zQhrByzw$xlqsqsWPb>eT9M+>|TSO?wDK}7VuG~_&jdDBX?#fpx_fsCAe7*9G%9E9E zQNBZYw(>p7_bFE@uTp+a`32=ylwVWcrMyS^OXaVWe^UNcIjW$h{$rIJDK}M4Qch8B zt(>mhNjY0NU%5c}D&=D3Apj~=DgU7Si}E?;h%0NhOC99~%1xA8 zDyJ#8Q_fWGqTE%vNO_?0Fy&I^88rMy~sjdGRpCgsh_Z!7On-mAP%`GE2v<)g}{l+P%iRX(pAZr9ZRfBPNn zdMZsoIaxVXxs~#N`|a!;l_p>Lzx{T0iApn6d5rQn<%!B=%CnT`Dlbr8q^y50yF$fR zDz8#rtGr&hN_ms=4&`0SdzAMo?^8aYd`S7I@-gKT%BPgiD4$h6uWX@>@!AK!a=3D& za*T34^Gj%Bjk&l-nq`Q_fM&S1wR4RPL+XUwMS`DCIHA?@->QyhnMj@*(A;%Ey#XD4$h6uWb3${-YeDTu=GG z{RVfcO4CZYjdDBX9OZoF0_8&G66K-FBb4>;aZgn7Wy;f(rzWS@~_{9m>0u_bBgGKBRn9`Izzv<+IA?mH*psdF$WruII1WXa3u7d8ev0 zt(5=UZ+T~`H2QbF3siiea$n{C$|ICVDUVSer#w-)OnH{_T;&DIi`d!(NIL32Qv=~`fjl>af zqPQO1O570cAZ`L@iJQVb#23ST#K|z*d@d^m9wNr$7S^@mcJNqnCVZ0^-EnJ*xG#LW zxCovj9thtp9tyL~=dy;wOT{DMN5$8{PlzYN&xj|(FNmkWFN>$a8^w3PTf}$5?}*vA z-7UTk{zSYC{!+XgW_!-EJqrIIejGj{UIqUyeh#*9EHnLjFjV|194USct}osM$BW;D z6U5u#6fyh1Y2v+bhIl{RNqhkABK{KYCjJ)gCH?{KCq4rY5r<*_8X>L?j}_O2ZxUz0 zQ^f3(&JY*E^Thq(h2j#pTs#b3Djo$tCcY77yUn_~8-7;&0L-?U@sGf-h%4Yt;uY{) z;+61D@ze18;tlY}V)i9J7qicJSiB$pR{TADQp`T!&te{D=fv#iRg2rgAvpM0&I}9@ z;!HSJoC7xz=fMGSA>2ZI72HZ(1gDEjV7AH3pT}Pp@kqG4_&T^yJOM5ePlZdwx5C54 zGvLwU+3zG&WB3E{0r*q#*YH6xkKM1t-@|NgxsE3>{3JdFpB4WK z{~@-qo&6zh`VcruTpO+{j)5DC8^RZh18{S35`3w+1>8=Y3TKO3!(GMg;GW{n@Kxe` zc!0PEe6{#Wc$ByhzCnByJW)IdzEwODo+%y!&lB@lUnpiDtz3LNyj0BNzEV63eoA~N zyhhA6;AQbc@J8_?@D_0;{Eqk;c(-^B{E_$tc)xfZ{H2)f!Pnv{_Ek`&3tP zL-X1pT43Em{03~v>)E!iQy1%6L_2fSCzw&XMM-S8nX+m++u``{nN z2_Y$+M>Mv%WaftXmc!c<4c(nKnc%1k!JXy>>%hCjaq!3Ddhi$GCh$>lGx$3(+rm@g z*6^?5w(xl|+r^M@cRO}~BgCEHSaB}gMBEJyhzsBr;w#}+;zBrGTnuN5hr(Bghr{{e zk#KJ@+th(#wy8tK6X22JDexHa40wWgHe4p23*RB058o-i8@^k-48C9dDEyFk1-xAR zIJ{E)61-acD!fko2K=gcEBv~6C;XQ9LwKk7WB7gXK6sz_Gx!VfLHMZn5d59^2l$lu zXZTm~FYtNsS=g!NZd10w;bIHNZnQWIt|zVsHxW061LAnNg_!MeD{%nM5GTP|;#4?K z+zKubXTW{LY@7RwyTC)ldGH8vK0I376CNk-1y2_DhNp@9!!yLg;JM-v@I7L-vy+0ye2_F-$ zg?|vg44)Cd3jZ#C4Yq2#+xK5^nD~7-M$GoUfp{O>RQx5JC_VBg74ESkr7W}-p3;dEe58fo^xn--k2fR~!CH$edH@r{W5B@@20v{EZ!rzHU z!KcL6!@r8h!so>kUB{$3mppB6WRe-~d0`y$g5lz2G)to-;d$ zi{WhX061TKEqtYTHr!V{7ak~{4-Xad+&EIqbK_X?WAJ1#&xg~*Pr@_AYv8%!m*IQF zRqzAijqoF4o+np`H^WbgdCq)J{2shcya#?&{2~0h_+xmx_%OUnd;%bvV?)Hs^Bg8zf))O~?n}~T{4Tw|V7UDK=D>2Wj z>EaG>XK^N+EA9;U5a+i|4}+iPyr*#Z~Ys@n-mW@ecSE@h*6icn`c){4u;k%yZ`Z;-m1#VjFGe=i+eq zus9a}R$LE0DQ*a#5jTc^7heop(e8F^4~L5L;7D;FI8Iy)Hxge5Hxu)mmMmTXUn0I2 zZXLY#=9wg>DYM6Kje69FBc&zv%_$Ki|_!jXYc)Iuq ze5d$0e7E>}c(M2-yj;xl*edZ)@bls`@JnKz-!_PCw1r#6KKNhaP zdG8x>8vLU;9sWh!4*s{eBW%}kw__)`wwUL-7;z5VK+JPpQ*mE7QOt8)s(2vWR$Kyi z6kiSJh=;*F#be>C#7p1-;tKd0@hbQ_@w4!a;x+IjG0$UD#Z~YO@n(3g_yBy5_$&AU z@d@~0@sDtY_$T-Y@fr9TG0#^oh-;y3ds*B7-Y8Clw}?~Vcf_6G-Qp|YkHkEm>=&29 zUy5hKUyFIJ_+HF&#cA>V@NeRW;0xkqaA=IXeg6SRiYwvz;wRu{;-}yg@oKn@_*uAv zcnzE-u7dN#Z@@jpo8ha(d*K1%~aesKDcqsg~coh6E@eS}^@i_RPcmn*D zcp`jUd^7x`_%`?#@pSmScsA_By4&tiI9$y0L$sLZhkD|*a1-%MaDw<{I7Pe>P808f zGsHY6bQ1GC&_#R#?k4^N?j`o2{pcr7fCq_Nz{AA(@U`OZ@K|wA_$KjH@Dy%G{eXBl{IIwbt`Luc9~WN_uNJe7|EHL3{LA7=@FsB?yj6S$yhA(-eqTHX z{zQBid_epld_?>Rd|b@)z$tMh{Hyp4_=0#d?2mJ|^)|S+_$xS8{59M}{2d$+pMqP6 ze}h|zEwlmYVjr9-4ux~Y;cyReG~8RvHojPVF+4J_+{|^Bgird=?%iw$Tnbu)I z8SQtNI1i2z=ficy1#n~WC^#U#9!?RDgVV%3AGQ-ugFB0Fhx5dbz&*u0?_DK+3?3+6 z1rHNH4PPsM2EIYO2A(8d2Tv8h1kVz`0?!xoJh@2x7Q9%z3tlGXdGaywhw#(lz3}tm zPvMuu`{4~@o=e{p^IW=3{5AY9@iF)V@ptg2;*;<}G0(SOiGP8Qi+_WE6rY2C74v+1 zK^z798o1lH4qQtd2gitc?rkVef-e#`hm*xT4__+23~noK3wIQ^gRc$ zpNqsiKMxl7g@=oa;L+j%@OW_ve6yJ6@Y}@0;MwBg@Ll3k_&)I{_#yEP@NzNF^N)*f zf}asjfnN|$g?8Paa~ZD{uZL@k*)NC{?|>VL--Rz0vyaeR%znY8;sbD7@fUDM@mKH_;&0$? z;$v{3_zYYu{uLf9J_nBwpNFp({{fE|+c@XkEcU_E#gXtlaU8r*Tn}C>ZVWFIvrn-? z+#G&Nd@20AI1^qkz8ro{+!x*~z6Rbd9u4mnvyZS>JPrO_d^>ztJRkm6d=Gq5d@p=P z`~duK@guO)$lZ<=aJYB{94&qvt}lKPZYq8jP82^6w-mnww-Hyt9mN~rE5xtE-Nc*W zUSjq&ip0C%!Q%Jf5#kTv(PH*H#)&_LCyUt!nI`@co*_O0&lP_M-y>!pq+I+Pyi|M+ zepJlwp?gZ~hhGqf!Byf~@EhVt_-%1r_+4>Rc#rsE_!Ds={G~V<{#u*@e=p8~PmBA) zzln?C3*r&5zp=YbZ-yhpQ{Xu9G`O+&b~qru15Od&4Yw9Agxibng*%HE!@1(6a1Sy2 zBfZ5d;bQUA@DTB{aH;rt_CKJT3!c)W>;OXLR@Eq|Dc!Bs|aJhI7{15Q~_zCeB z@H1leSzZtyfnOFMhc}AZXW1hD1%5|-7TzQN9sX2&0scZ<59h$I#SP&T;wJD<;)~#O z;+C+58+F;PvdIEFNH(m-EI00I8yv594D@X8;PHQFBY>e&_cWhP80tV&Je!{cM`u0cM(^?-NdiK zy~LZ~e&RRaLEMy;fKY| z;0kd9{J1y?UM+3`|5Mx&UN2_f;Wcr4c#Aj_en)&cyhof3eG@ojKGJO^$eo(s1U-wmgW?}IbNm2jT;3AjM~ z9Nb5|4(>0mf`^FTfJ?>fUtBNV2agvYg>M#r1K%n>2G10qhUbZYfftIa;c{^p&Ob}V zk?^D9dhiqChVV1u#_$W`c=%;;GW>=(1%5|-3A|gJ4u2$W5APRW4u2`mfxi~_gufSG z1)mlVfPWK@g{_NZo5G>u1#p!35xAb1{epOLC7dXJ8Ez@w47U-#1$Pv0hp!Otgu97% z!G+@Y;9~J!c(C|0c$Ap^g$ZKz5z53T;oHP#;aTE;!}G=LFDw#Q!%M{u&P9)j!{Alo z+VHdD7b3jB`v68JrF2Y9cz6a2Zj1U@3Z20kukAK{dE6#T1r9DH8P z{(`TWyX_{zwZu2Wb;RsP)E7^MJL~j(7>&UHlZ> zTf7=B7H@*D5pRXB6Yqd;6u$>g5`O?s74L=b5Pt&SDc%p?Ej|D*5wj0cAwCR0AwC8_ zBmNG4L3|Q^S$qoKC}uxpi}*bJj`D7?ALqJ#;@a?+;u!dAaRc~!abx(jxG8*IoB)U6 zfh4x8$#AT=CEQTVe$7SV)^L)z4ct=P4!%s>0d6nu1a}taz`5dXa1U`WxVN}JT&z4q zJQVSz%45XC5r31I{i7-3>)_kP*Tb{L0l9 zTj5agHaJqe1CA5F3pWzK4>uFDkCrTEAMFzH=WrYG7jOshAvjBX6wVWW3m1slr|TnT zpRT{yk8}PIacy{nxGp?e+z=ioX5VeHI0>F6WbX1h43125&V+4KfFQAe%w~&9pW*Fe@}cHyjRSA+-Kt1@F6k#ao>m^ginaskNZjd z2z*xjJp70FRoI{4Zud9g+TyKnjQDN1fp{m}RQw*CDE=5u74L&vi$90kiP?|K7Jm)r zi%-D4#6QACV)pN@7XJd5iqFE=i~kLe7hiyH7W>e5xK$hi&lE?&^Tg~AE)+L}%f+qX zrDFEo9u>2X_JsHb_!;q3_yzF{_+{~Ic%yhOyhXeien-3n-YtF@{z$wG-Y;f+Mc;`Z<`G5cKCipRlY#Z%y$#8crZ;)U?-;(OuQ z;``yd#Eap3#mnFa#ZSVIh}Xlb#OyacCw>!NC*B6XD*g<9UCh4ETjFYXr`X21^nEe= zL?4So;LpWj@L_Qz{H?eid{P{Me-@t>6gpWpJ!G9d0P@1YacX z0w;;{;FjV-_%d-{xV?A)+*y1zoGTs%_Ye<%{DHjTPSv z^JU{$_gP#&i|O?j^J1IiW3tCiO)Z&u!=yifV4 z@+sx>%Hej+`qonpD7RA1ROa);UcL2I9;!S>xlDPM@*?GB%Bz&uDsNKe^T1vi_&l)Z zL&_(V&noj7d@p^Ba#Q70<#x(B%7w~&*4N8(l=4L7>BG>?B=UK{pPST5Crp)iS@Z$L$ z7oPcD7M}TBqUXKJhm`qjp_hiwM|<|;IWEsJ%1xD1mHAwsmp(_C&*pjYCCYs6&Wq>s z%buqzFHl~hT&c|Gk-d4Vl;2j~qkKU5nDQBA3(psMdGgs|&wO6kGoKOm+(wztn|bjC z%6w+biyxspPI;R0T;&Ip`AnCW&uZoM%A1vUDf783Z{DNIeCEoFKd&5)XIi}YdddN1 zKKtaQ;q$Ye`COCdzRE+D$0(O6&r)8byi9qOGN1qPmc?g#JoDKe&wG^*DW6b2tIX$i zym|Rdj_0Pzsmkq?bCe5}OO!_`PgI_+yg+%0a-}k#f$_@5=UzO&t<2|Gy!Zpk$CS?~ zTX^QdOCPD+NI6-V&y#rR`D~_VK9A{{&w+Rzq0DD3y?8!f>3Od51IiW3tCiO)^VttC zA3pEld7m<$>+s@FDW6y7Gagym&sh;Q4LkJ<5EB!Ao;Yna?M9@fJG$o+FhTDJLuQ`8Y3qmU4k| zf8`O%}$xk8!G78=cK&&1_w~~7{$0;!mHoKC(~FN$ZmOKB+)g=1xlp-8nfLN~`A<}yuDn2b ziE^bf@4@x*sZxGhd5<#hk@eE^URcj(lr7vZ=*34WH&RYkZlj!~T%g=vd4w|W2lbZ4 zXFWXg`3}!~ro(fE@@i$?m+7V1th`HkpYl=VQ_8$=(#t0t_rrPSeUP35%B_@nzoVBX zUzztidhtV*$0(O6&r)8byi9qO@>*p+%it}G&o6l9y@Q?)DW6b2tIT`;y!0{3yr0jD zPgQQG%=`AdG<=T0GoKysJW6?@@^s||%1e|hmDea&DZj1Ed*i(2^4>Vl$CS?~^ZtA< zO{8)o*ry@8y+Yhw@(KL(06b z%S(S&*^hgDym;Qr<+-VHs&YH!9A)0K?af=FJW6?@GVjOs(l1b6qRe}wyfkZ+c`uX~ z|F-fTwZnfuBjkn4d*;QDIp`cSW?8cmY>U^60~lv=PQ%*( ztF?@K`SJSxUGiB8CYf{$TZ(fyf>(aBZOy_x009`6Q-k@jJj|bQe7%V@`o(E{U5){l zBZBERBOOl9!I!rl`H0~>D7twu9j^g;FE3peM9?`h;q9)r#lA}b2((^}I|l?y*pugOINi{cVfaY637W9|ZHe7S`okg^HTy6;{$Au&xp3a0IV1e3|M9 zR8j!O+tOfulVM%HrmgT9eI6p^XUT%JPixbRm2JFqlES#HgUx2DV zZ(8|Z(tT2fbjZ(pdFd7*LN7OUjcpyf&0Q|Kmciw&guQu~$FrN=G&En{G=A2l^NUGw ztYpLmFrb?f%`Kx^wZ+;^8m zxi4?pTNu^(?ZTJEF3WcFLsJ^eZ!gSw+F;{3aqlrVAh;KDrLp3y*2+=E2uxO>8U1%LK6=8LGp^%8AEvF=GPa z0~ok0?q59ibbfo9+1B%FMlZk1(%S{}t8M!>c(u)FgXp%9`rn}g;yPw@YLjVZ7*Ts> zx5DnW?d8NWUK1=Q7LWU=F%5-aTZg+>tVHW#tGb%M*8HC@erMfKq&*{r=6Y0DqY?Yd zi|ghMoaC7yUktf@^o!#rKD2jed}2gVQHa%d)+no9jd0?1{|- zDlbMCo?bH>q@fjt#pTyaS4Cxutvd*VZgbs^7=?gtx9e#Sp;e8(*+j4eY+?E^^ zByP)|ohx_y3+nAJ&zY2aeD=9Xwbu2tBc`5oF8CH67#$XuYR^V1Ir*MBdlpoF)3E7$ zyni2K4+~3+j+mNVr+3t?3Eh6Ko|Z5=?D+OG)tTX`tva=889qKZIWpwdgu7!yPFF98 zot7|X$N7OzUkG2fW97c`W3$grirdnLRe>^`s?|2Vvbtkja-dCei=^aVGyIF*3iVqp zGQuL~wCLKPyKP10&Bs>6w%?3x;mpTeX}<8baa&@%b=Y6N+o`o~sB_SlQW4d;Z2H!~ z)R-}0y{2~WXl)L(i+n5PB_}k^YKzt(u`<=E#1R;Jhd(VeeriO=IX-Jvn^9I=j+L=; z)&jc?wq4@G1%GT$w9@?9cF)|w{pKC6zQY+~7vz@o>wb|n(r@FdWoM0!4U7(4S{91C zIR6x7jgB2LqV1(++vD&p)Hc4*HPP?P%7`85_f59`72OjnCk9%@ByK$w=>6cVUG|luKWS=>2@PMD7RDMK8&XrBhjx}O-@3owK_@M; z)+BfKyr}T_#7nYX$*-5^vl1(-TjV>T$yT1v9=Iwz{VgXis#ap6qiv{Ik9hIOpC3J zTlrEl!qy~?ez8gSFe}T~F)nJTujAqLlZe6de3;wj|g@v_Fe^?qdIJeum>XO`p&cbflQAJxYVcW;msfF253$F?!q3;p$ zaWxAW8K=wmpT{Ma;oJYgxplQp?>v0LchG6@SVUy#$67?#(SsNUPN=dtvXzr6Ju;RgZU4d#68rHqbR@S-*}; z>K$rRmbW@=PeyD`Vhr}jmc6;IfsC?_%|au)nuzSsg;x!;(`t<^MF!h;Rxj(9R;$~# z>gi|3l>V9*xhF3cS8mXx<*kg!PqninQ~c2dxtUS%`8{(xzG%0M%8o3k(<}eV>Vi50 z{lA3TR$6p-RA%m9R};tn+G%+omc|}*dL_2(w=k_`>5c)z3Sr(UG+x3zsg&ZaTk(RnV+KS$Jyil*mA@YjOr`9@Mx|TFBr@A$zJh z-vuWSDBE_Zx@6Mx&Z8l_-cN0vc}2_EPIiO5kkDA`)Y`J_+G!CB`}FGf$n0mzUn~uq zx3N0X*V`Fpp9-|w_F8q-q_l``uT)R}dD-mM zMQmYIUutx(#7llijUG7p*X^HHI|+5SCd7T15PKvc=IrUXEqzTpwR!&s2Ys1!dks6c z?t;^%`DSj~<6Cz7x4m5*=v&t7$A#6s>!gKbM;Dd)v6qzOF6^D{q=jG~+P1DbwQ2e; ze;{dd$kyt>p0eI`vZME;1-5-yo$V|vOpA)?7nt|L|FmDBzR#V$!0OIjcv;JSsC(4- zLI1?B$~u)6^vldW)H)y)z8j5RYE)!sWa0ITo$V=B!9@+ugr{DW5}D9z7^}NMW0b8l zEM!AKW%Bb2rSfe6vbmEXrwa-u99%~)K1_)c& z8@pJ<*x9$1Z5RiI=54Nv6-c*zD18`#>IE-85c;Z{BR@+h-yEW z8a42zU;e(%D?co)zb|iVX#=OU;gQmMKb6+)G<&xbHs0A@Y3;c>cks%A?L!-mZ+$F1 zGrGY`IR``1B13jmk9MLGpFZ2NFahtrvgV_M-s^|V=t~X`^!>4a<#u*?GSjzht8Tfn zh4U$rRILnL8k4d-CbO{brLk?=tO_IrS{AZ}ODzlpR<$fFS=pd{plao%pC39Hn-=A^ zCN1rgPJ<7dMb=4+I){D~&ucAXe?vWgVV#Sce-KXqWEDiMnVS}wZTC7j?`U;F)WCYx zCHCMgXnhN^7~Sow>MDD~mXa;Ix^+j_=J=MXEhQ^c<5TK~xY@1a@;CHLITC{dzfEFH zKRgkRgS_~`!TqXYH{>?Bv3|*xlKO+!HMp);)t1A!t#;#v(t{CIxsf=AHk4n84vn-* zN~?1FUbZ=qn6Ngn@@!(HuT$c;EBqI@yJuchP^Y9{TIA*s>*0|Xs>*vE?6q-2c}aQI zq;t*VHnd+;5kDZ* zv8r;{j-eOCC-%zdmA`cH!Bo2-7WKDaT|sW@mSN#lTL#CMF->C7*&B6~h?GN!>7VO3fC z;y3hbFf69mriF(W?%J8Vp)@k`NNHGAzjyDQbvk$LWtGPgQ=9d=0!_fS*=#P*-j?2h z=Hb@EgFooDxVq#6(^e#eE$p*xLiM!6y`4zk#6UZoZzfcyCREK%=^T@3U!IuK*&qM@ zeA6KJv<}w!H0!bX$=IJKKYe!M9Wet_LRV)kJY3Rb+3W_}!iMz7$<3`yu1rlF>4eX5 zYK`n;jdW_y>0_rm5hMFJ>3w{2oXC+*)SO)WBu(_lTzjNbCo^GAt}`;%*RfOd82g5d zjvJi$ms#;;X#9uy2X$P-ua>m-d{kDIl@`@2YhmI3ej9S<&9AP?ZCQFYzN+8B=(TIx zZJ4z1@UAZCha_0X%TLy+%KdKqh%LEmTVV&xEG;Qd?YHo%Z6nZyNSzev!`h9IwZkcu zYZnrKfJa_ho%yl&^3QLx-`swpy5acveOZ}N4Icdc*zB~(-qG`xRiBvC>tJToz@PsJ z{kl3cs{qm6mR4`aS--I1NT++Cx_gUiYtNol`}4XlMqA!+YeIt$6Y3vHsP|Js-MB3y zqE1yjKE|mSU1}=s)~?e+r=Pvs*R$^6q?Q@C7IzB8^sNO>#oS!n82|Ly!ClArr~iho zuy3$QF}ApqpB-QHVs<9%c2b>MZPz3=o#XC6*-ip_xc(BSXWgDjc~766{%g;!V|_a_ z1{Zg7!rSghkj{)*^6!7QWZcWkrT+f+OO<6dol~o=ySzw08ik&5Jrnbu{=LMvGrebC zc-!f}?noHx3@&PkjutxDrhmQ@H4wVPX^<6$>@)pqt}V$(dFZ0;Y>d!r%#K8lDgCW_ z+i_>SFWa9ww56|moVBBP;Q0$kzQez1TxMa|we>TzGJPozHo;_nYL>fvd|7Q~R?35+ zjKdeZ=k2PuW9Y!h3*9kww}by~s_?dHk->F0<-v87n*RT(Ow{3`n-S+Fuj%vgoXa{z zcgo@U_T0KoxefjZNsUg)ZV+nYi#dB_N2f(+M|FF&`hqj?NZ9rm>)15|C;YKJ+A6pv zJ1Q-@XXL!))u^NkPJypt)wJkT|I`=5+2WS?r?!ut^LD+0{sWV%vF6rn)Z{hC!xvq( zJ<8gG>j;qp-}pBg%NQ&5;`H}M3aVfMBRG!+H8Et63J z1U%cLN7Y0B2g;sQqpVze(IrsYR^Ut#HM?I%v zoUhFoW@B*Ewee$7Nax49M2m^<51D0KO)k zPavVUOx~;e4x-$20dJX1b+6AKY7+B$6JLD)-y5Ny7e=CEf@N8Q_yWfNr7Z4s1^1f4 zwZZ8*W*PVS{k$xM)x!zIx<7>X@St4xG7GP4B`C!=7v{Ikz=*O2w%L9 z^LvDD+P=Iclq4$xXne-5-Ktn3s2aaXnbi|I6`| zg>;)S%*NoB0 z4;ee5%siK5`9JB17#tb=RWH92b{;{9zZc>{!~A|b{7&TNW6KiKo(X+N$&O~8@UYz& z3FpsVghbiATJHCU1h7%UUuU9dyWB*Dl_JYpmtofl_a*E^RP7l^<4fuWTDAAk$y`l; z?RV+sOcHKI@M`Zq43YfD0*0U@A^xv167?Pa)hfp7h5PR31;yI+PzGQ5U@XY0J&+|{ z+=r`EI|pfe555YAThV@BS~n!F!{4CswPyZx%n~m%u}8V^HvRCQ>yIGB&&7oJm*Ibm z-`DOr#KqpsdE1*6voE${b2w86ceI%m`#q<2bVo0;V&`({nPxP+z7=a$wX+$;r>HDX z#&*mfH`4ND4I;)`zHGC@)>?<@jeMyMQE+!1E-6HeRhzf0`!1#ZwRu|bwW7o8PO*G# zSrL(SZ?=3_u%t1y*I8> zZY#WYJQuW($!l2=%zt*SXg=o4HXYVx0TTh~H}51dW038MCg# zF`>y#BX7VsGj1{(F!?s-edM7ROd|dySo{u54!uBPnf#Hqrt471&|0=hvI6lJnIyGr zlcpJWCg(}pw~bS(+!5m&T}$cXFuCy)SeEnS08Fq?V?3U_lk+2M3T1;>G^=q-PQSAw zmTL1~lZi6cgVI#x1#F zmyblOkN;Q&%X!FPI-kpkx(y3&%wNd!tz?;fcS#~MhOhBvJ!iYMz|9sI%~6v<(?%F~ zM)}Na+zA3)n^8WlPGI7-B=^3ATdspg`?#qR#@%E&*ZW#Addygli3#A1ZY;7N=VN9` zJmj76CW|CK+2c&`jbcSvQCwhhN2GCj+kDm{z85F=?uKcmLVL3W@jS$wJ}f~z4-1!8 zG9SjmCFI+J^Nk74H^yv;EL$$4f?&a-NAHnfu4bAd~2ezNG6Xi0Fs zB_`+QdC12($XNSSFx5dW-)b=$bK8$_%k#yC+OFt_lB8fi2u7!xec=(t+r=%--msi| z13#>8Y4(T;Zu)GFn!V!Dd0;;b*xdYB^^!lZT<04*6TS;`X))!zCsq~|I6CzL;} zZ2UyaIb(BU&c{USvT69|E6)!N!-Cq_MZQT^sMVI|Oh$SUSP#x|Nn6a~Sk7ilo{hn- z_{Ccf%i((Pw>I7NupF+(HjbNi!gjbPp2m=d^$K;kUY8(6+62p~?Qovn92;*r5l(ZA z@ssS<><+W!YmnG2c_WAAcpnq3^bkxPgmwDJlzbpd-p20l+=107c4l&A9Gq1%QYBd% zdw|{MZxUE7>L5$IfLk;lX}ch_D^jrBc5E{20&ZJ2m+ko!;a35SwcrWPewn+?T!_WA zE1tlcdv}hPImZyp+m4-M`(?I4Y`?fuy~3HE=7`y;Ug2E)#k>xD+$r3y;xB~6O)Q&i z*{^Yrjhm8g*&DAgYG>J-Sjf03nU?)JTfDfNG4+jSkVV|hnEECwF79Sb-MkiYR>vup z{no3{3M?S%HstK?o^Ox9#QlhC{V+<7uB^r10qIz3**iFeKdxrA-i%4y!THlwncQpa zee*EdiEXJj&E9``ZDiBg#=pUsE6baZT^}*y5R)AMW)hbI{3$ZLTJvogyQBQssw+(1 zhj^Gc<$W`bV-k;2Zo^4thy2;@kGj7B8^F|kh@aKzcS3riApY=>1(+ek|2bB!%PrU$ zoN#j(cyE&Iindt4ORpV!9jCAvdKLW9RBE@6J@)l9g)k*;BWq-ducgM?VIpMr=~{kM_yUp)I8RRsSW-HVjgP) zZ&^A2Z{GX~_6vWS|7*_gO|6;#>|f@`6;XHj$@b5fzcaT;BODTDtF!^Kyc9KgbVan3 zA)UX2{9OPY0aO%^ndvyRzC)a8D@`1?gq6_&%i&Rh;|R5a?PIq=o!^DhI9HlF_ug#U z6%Vn_*}7e6TDP09v`eR1PA}8!JixJAy|Hx|%c+NdIIFl7UY0Y0mF$g9w7UKaOZMKe z+7%xm^Uj|m>PyU({|ylOJO8iHZvQ=EzQS5rT`t4AID<_I`BC__h_fsBgFL2$gG~w9 z%CLlkO$l3Z3?+2O_*_*t9>~tsri61b?v~gccgpkK5__XL={!ZV4klnJY;mTCb9bKZ zcblZ{EUl^LRHS2--e=OGTJxEX4Vc?>b&%<-avlu*otY-5JGfp2th8%P)9JnKwkytK zPc-XwjcJdcN9L_=L~0~t!}%lEWf&Jf!r{S?gafb}JJwFA$!H$OO-E^@X@w7Q+^qYx z4z~`UM{3O<<6MQ2!&p|gPdM}SCbK&+u^W$HXN*a_2ID!VKjDr$un&Mf`ANNc6@an#qb$i;~EcE#0*V_m*(;?TUiHNd(InPG)jH*u>IRg%tMwPbaE zYLeDenbn@ZYspiU)q}r0%3qkoZfiN$Ii2}yqWm=(RA_V7OEc54%0Y_n5ocF?h<3_U zXfxBp;t$5S73wBzjgno;URN{IW#aQlZv6&Kzi%qXO?@W#nj=5{hL>BPi9XinA&eIw zwD_g1L+#PPT5CdM#tjM$0z~8iJ{84!ikyqT=<5bpEg|t2Glzu_v-9 z+!beFLllL~@JtHtr}}u z0`FpyU2$WqY~Zn`C3psTvn3d7T7n}SLrdU}MPt9}#-BWOZZw%(&hcwe3>oi@akpg{ zCvBOu4Blu?PxkZq1CotU9%q96B(6qvUWT|4nAL1gPQ>Bx zYiC-mJ7Fr{I^2(`?m@dTIMqG2+;IncVmg0rk+sUN)vl=*wrbLzS?&8Hi8)qs`40GI zjIj{Td(JB?70-kL9tu@JJHTomiX`TciUWd&6ua*@q;lktnu(O=keZD|SX0Y+)Zuqm zn?tGx^U3%^wyQZJgR^ss1@{XiYxV})_J4lUuslY&u@InI+$gzhPn%@a9c)qo>5AC|2P+CMj!yZ`GR>bM}Da zt5sjtC*ZD+DN?|cJ8(-|%SkYAy#lwSdrTOM*d()(31boKGN~U|G1>GJtfqXk=v25@ z8J2nrsHnNhP+`t@?p21zYOXS@aIYuu-Kk4+mEj3D7FQWonH=4#3{RR9j(e5CH8=QE z=ERd^PMS}flO{I!ey;uuw>12&ezW;z)Rbn1D$OiY8aIR4CW9o?3d}K!GuJ}ytSO~S zQ_8!7rCgv&dABO1YnJjJQ%amu_zue1XwrKZr0t4qTvsNp?g{XLxvK^MpJASYiI~0*)sQ_B zF^^+X?*)j-9*?oFFqZKt60wKNBNyFyG+>;KjR?PtzYm{)3h`lUqd|BIZjR=tJw_a# z@2Z9<$6JWA*)qHebON%x6xsap^pS{3?}T|`6R=RsAWeD(zm0%#GLC{)BG+k1k$oTL z+k*Kr#v%<*xjfmJ_jjg%J$V$*!6eg!)bTZCb?}pe-&l+@nAi|Q=i~UtpVH~gWZC>u z^t&+DlLs_^eRB`j;Yz2l5t8;qTm|RJ2Kdu4o!bJx5G{b(7~Ao}Cw{U|1LKJE0Kd<n6A+i_FRz-(HoZN6>HDhyHqacTx)@vi8!Q%;tqYePgI;V4Y$$$(D`xhU7lv9H z7a@`}n8v>^&mDRmI$RTwMFBU$Gd_NCsOfMq19Q^nL>>z0D@Af5J6xP-wV#G5ro)wf z55&`IJ0w8$NTs8GSn27!$)9KRzGmtGfB7bE5_XWSjHhIpccwRQnz3YF)cqLKhI7g9 z`;KtQ>k+pJOYZz8@F9@prO194G5kK|>`#Dm#9^QjHec2OygMa8+pEt471N6mf!22?Zam71N4akOj#NmU|Tf@_05O{?{4OhvnFHOD`` z!`Wwg7W`)3EdD$t4i_s8XQ|V*SV08_kn!Qhk z?TYbOPJSyy*+u!hY;G6l=Q8M@U&vs9)sl~i5YqcoE!Rb zKC3S?vAi7J{IT^$vvV`S``p>C7=WHhJ9CA8LLt&WiS_BoD>4&#nU-G#T*Rdp<0OGy z&vK^nTcbO3v7FYK#rP30B?uIO-Fo>4>xJ#X6|9#E){9+K%w=yuSx2zFc(fl< zy9+Jq%p&9gM0y9gEZ16TAb?*;(7q7UBZxE1sjOSuVi6*0$qF(=P_&bRqUVRAgk z93S{=j_n^t3=3ur;?+mzTeowB$o+`3D_#glZ|GYe7w`u%X|)(YLQcAbhbLF~xam8M z<0uZx?@TWI4*8Ok+@#U|w&>5aK8S3)VCEwz6A$V?e5|xjku2jFCb6%`o<{JJn$?;= zgPDgpmSI`$+r_&6<`{2|-7F^^E9%rUSD1OVif^=;9>=@o#QTdei#d7l>p0EHgA*|e zPaZuvktYvMwA!uO0r;XXkLVm>da)AETC0O3j0OrZ>(-2L8XnNDnO48PozmD{dV>(N*oMKfhOkWdd0Vs6SP#zJxHZ;<8FQ|HSsPq} ztjQ1W=4$GwsU!}mNqmt^H`UUtX1bfz#qHGGIAfT6P0|ER;R>0N#0VSjuO+RCNp5X- zY3vou&8xYN^2*vm7oVFrr_s{9#$3;onzeAS+3^vUw^IBesFpPaj(tjX2ik9^66dG%C--g4+hCpm*WAt=U&H zyb&~UvKZ`x%(p$JSh03nQYlBJxxBrn$1B%?lRa=Oqi<{WcIK;=7_ewwG<#YW4>89X6dGK zKv}x8e%jVG_0vP=hORL_>T1Y3?8*2dj9_)lQm&NZN-28PmO|m(5RO00(VMfPcW2fQ z3%#l~mJy2`tuKqgZ}aM>_ozQ@_aapab4(Pg#hZx!Is!jbt+V<|eGNp>%(08JPB57{ zg#NV55^oJy#=%lU+_EV9keX2z{OZ7spV~;^sKeo16&@z<}j3cpZa-&OO67 zUFRS$ubQOAHA&0!Rnq+bOxmAG*JH4)p$wR*-@=EoD**GV$#wwKdI<*nO@e_;@CpXo z8pgm&JMd3wrX^WYbH*4G0a0Xu5;y(Z|>m6Wyt(szV$ONCOwbAwgxfqW3p`x;5`z& zJ;AZcOBnJlH>6;YVmOeuN2Ft53Wm%VDNLUD#{;FYi7H~inH+1HH`UxQG18sPU^;T*Nd z;0iaE0dG-9ECb%vi36Vj@2^5EgRyQb1K#l9E}P;CsI9`%yX73ffJI{30V^mslK~98 z^{zP<9}LdfU(eZJ&DmeiS+l#Yz?^P14Lk|DwJ{KTgH*x5#-O|21G7MPWd{xi-8CFo zvm(LP>tW>dC!|dopBF#(VSgrju(hVB;}( z2E(7X1rtm(35pqb32IsbCb-!o=+EF53_fe}v=xMxy5=b0r*E%g!15UIj*>qwk1>%r zUn2p7Lc^g924VQmwBaT}F@uJN0~mN|Yl_Ky`GFbgi9wO!a0Xu5nnE^3Y;%*Kh(U^B zF@rva!@Sz#`&Hh~fxr&YX;!N{R35pp+n3O{q)G;h(fOktM*H8v-5sSSAFbgi>GLs^B`u9rZEnx?;#tE+P zE`+@CjjoGX+>HBs88iCta%TL0EBt-P4*duQyoDPz$-ph>k%LiQ7Q~7(NI<6-yAXqx7(y-F*^$|F1%0U*pJc}M+#}4~#SD^>MAZ-T9%-ib zXTVIbDRR8b(EZ8L8BIePZt*)1-fw0b%-|uz0jm-0a$|W@iTS#9Yp^%}P)w;XQ-?F) zor+i^1}#jPg6n$|q9(ah8Mv7b;U!2e0Q1x=XGqO*hIq?a6r6`$Ve{fGJnp=~9fSAo z@D3fHHKV38cnA?EFkl(KBDi1}+~s#;^b>a~gMEg<(*R2nV^$=%4Bi5Bg^4O+(ARJ{ zgJ&`LteMkR5HDc(^C8a}+hf4_i-GxGd21L0FKtb$#kA&&>aG3^R$;(_%)m=q(`xlZ ztob5)D|j~N?JB&qk5%?+i#N#puS>rHY5$*#T#E!7-TWE+1J}*4YcqHh19skg?!5F0 zGd{_Tdqv^gADX#~888`k&jK$wc28XWc3(`o$0Y5~;2|W%QKF}wKs0w=hJTop0~v&v zlmmD}XQAOh-o9bJx84dK@Vk&O(oDUEK^?;)2IfocYZ{zGNO;6#Uc|u7d{6@<q<#4T4f9v1Dd4fAH@0oGu4XzDuUm4+McLM_6{fS-0TUXxB!mL?Se~nXB!X$T@ zIfMD~^Ysr+R1t%-hC>;gcVijweroJt4EP1>J`11G5$togyD`PjI+2P2zrNd@K$$P_ zwuUk|iUBpk;4Fqe9|J7QZnM;4247-e%f#>)1|}|EL9uw8!ti$ts0jv5aA}m$44Ywa zXQ22|JEt&YG2AKCVGNwY&?`~Rk;a<|{{LS)dBJLX5=;HR>dM=mZ=o#zGAlcP0gJ_5 zo8f0BdYD%=*y1%CZ~!-8wMkrFU_#UZHi3gcDy)DZtH!pjX0Qm`8FfDp--BS0ORrE|7^7L~oWwPu|2iG(;Z0Vnf;Wlmz<`~H!50`Xebr227-|Y5YiAPIVL&1VEQ^WPnXn?U zcEL^|GiKa>EbaeZ6EEAhkj2LsaM6YVixh$-geLjD(qVyxHH90%!rg;`(K-_*4@F7v zT0xuN-mr$B1H+IU=ePO@m=U(5m!CJoUo+wk%1r7YIaY4d%y^)MnfGc2?JzJ6!x9r+ zXDjgv&jO#sfK@$> z;6E#%8Rl_UBDmM{Kyf$L00#JKvOiU9&E%^&S+;+Hw?uA-|JeSF{NK0#qe%TC25gin z1Y2D)*ljqR!RKzQw^){{+(Z>I;KCehil5=n#^w3HBINlGdr7`G8y^mG7j-oQIZxtF zR(bKZoE`2wIXZ4I;&6mA7>)rKK&GuAm^O@u4m(TU4E$M=0T^%?F<_cM9UYv`dwaN> zFk}K`u4i|nf}3b;Fx7A`6>r{gQw6)V6^L4C@+xBRq+zfhJR75YP61~X26r0=t*Y5a zBq`U{OKUczB*t#+<;sU5xLh2LUP{o*Rh?JI2Imd#1`~o&!EJs!qV6!+6*0KeFj#@l zV)Shj6#1sev0*bv0sHiA7b_X4GunsEN zb=0w-V;Acmj)X9#L@PzP%D0#|>AH__glS zPIoFdFT>-yp2F>0k(ir>2uCruw4r@Ix8Zm-WO5BL0e^#MzPY6}B!-*MOw8>!k(isk zoq;4jJ;UKF49IP1B=+ZmfjAZpr`4S~a_CfMa>Hd({2_AF=nyx}<&d|=2ztTiqJcQ) z`))Zub;m5Cb(9pqHw~6H&ukELD9yp}$i{4JQt-QnqlC%bBb-J?8@TCsQAYsUsNvAY zWsZgG9oJH-gJ(+;n@+rA8jG;$H6GqxlleAGhA|{q#gU>gU5(!h6Rz zr54z41<$uaz8Lj__wEevS@7;>gxFL0g*bjC{Ppm+z-NmdpU)gdy9}O>UhjC5dkOw! z_`k#RhW8G` z_A9Qgtf{H3tSrx)G_GI%oVv2|5~nz?xHxZ6{*e3w`jwZ>!A|f$+NiHhRn!#amDl$# z7@U_XpW81o?f&P%Hto+Xt0*e(2kKW=QCwb!1vv8m*JzlhJ(JomKc6z3?TUqE6(xC9 zsr*tFgYA|q9FT{_KJtryL+12qYD-E|a}fr$JqiQHZ-aTYrPX;jQdC!78%b(w7S+_I z=3~cQ5{=yD5x+bPC2g*jO!i|6DRot%Tkf1F;JrWixS<9;7q zJ~@qoFf;Bn;<212IO=pVV)6T9IT>C#?u;Q|V@OUmBiY~#H3dN?bb3O*IHx)OH==bI zxz`hYv1R{Z`f(dr9< ziz3XyH5r{UlswBY%*l2Csno>T3oY@K#9XO{Ii1ovzm~Y_0c$MzsKP`Mhb+bTQfEQs z(b-w*a_KA2@7-Rei~sj7w^{DIEiz_WLKnj_OA+guPYcV%$yt3_Ns$!RET$+*ol6VO z%vVcY6s}U>l%F4^(f@}&bUxc%XO$28&!sLgKJ1z(RNNVi>bNg(mTM!IPR{Z26(Pd~ zui}5EGv3mj;g+uaj{sleWuG;RB581`o9U&oDq-TxrFiK1a6JH{Q8s3TSin(qNIiHs*5Up zXs05o6g)*)E)5y30Q?DLwldsB;x7+o%V&`pawi#SSha*nMH(KC%6W-P$v|iA+$iGc z%tX~DmeU%6qm20yj*`Ov(TQ=l>UdLkVxn8cL9P}Z=}Oy`IU?Tid&~SK(f!hAo>^Mv ziqGB2kPV)TD6UB2vk{#s{*P`#F;_I1PJj2}pv|Z_B6-M6A`MUZG@R1NRi=Yo=FeNg zOycmLm$Dd8HqS;Cb-GK|{w_1ojcB^dWC116zinwwXQ%&%=)4WGOLuQX@2fhKyJt1J zD&|h%e=BF^!rz~Gf}?WIbxDYxEm1Cf34gcPO8ETf4(m&p)$8AvaC;oha;HDbo$G&B zlF`|`XlcW#LJ9onu6LB!4^ct~x>LSAbe1AfR7C?jtE`GwFSVNiGZhs=^glY?F_)OA zM4P&@kGRs^m>aqH7rR1e>>kw7qosw@TxQR9KD916*%|WJJWDg?o_D`ht9a#a_ctk4 zZ7s0qh80!JJD0l4>}gk};&(?^N!;1>_xOfOFUpobhkWhW>8cp+CX6FHrvv_nF7RTP zuWXl#MXnSxbK2r)oy)1agBWMHa)>l*T^3up!u@r&Vy=9aIQ9me@?A}CB4|#<)a>kdrq((Qd=$egg*1#v?krrg*cBr7qTuatNFN>7+=2GUf72QSov`4losb*?CKT$XBG?DpyvMG$l5qT-LrCdVcBx}~lz)Vu#5Mc2fq_3rAA@!i0` z*&unD@#e17>s=Mkb}`ksn4+^0Rp01;^xhkB^hQrm%`{i8p8$&bB;Ccw={? zh>FV>9Roz~2EGE&baa_T_pv3esGGUSeAc53Fs#3T87eC3sA4R0_v`4v5`}UXyepV$ z+QJR(nnf(3=!V7ucq@7zh~@AWR&SRqBZ};-IGN_o-xUP@O6&N!FF8=JX#hBuGwoEeFXd zShXaXEJ;NvHLM&{R*yEN9#SyY<}=A~*GS29&mTv<|9F)uPnBRs+t-=Z9r zri!X+Dv`Lk)s^#;Mb*_si=q;80aGPOEW}rrN-iv`Ep^#Ko`0*1Dyz%pB}bb6>mlxGUm1fVgAEYW= zfhOIlNmn*^62?uMo*0#IO^b=V`7FL-T!=M^ym{_#GHCLEMBZH2QixNL7qve^Qc;;# zQ(IJgVjj+8EiU28Y6w&H#i^>=vdRjCo4cT_rfg1Gd0FkEVWnkg#H$GExKbi>UAw3% z6%^N1<8-nH?OuF!6~11(%h+=|S2l7tj~csq zFwdzHcQw0GN}qt@Qq=OO^jLQnq^fI>Zd&wp3>SJb$!130jNA!N)>Yspbz)HK$}T$1 zsDsE9gVj_auP!xZCBgi%dYsX8Vb?dHix~gPDj+KfP=66efb|^brz&c3nvsY)+&A1+ z5zMWtDE{rs*=}Hrcz&uHb+Bj-ZxM?cBKjYz{{ML!@vk(kQF?B5DrH5Qita=;LDEhH z3NyNyl~gXQ;0^8HT0~*OdAS@#u_SF z`hkR7f3@*Khy)0R!?2 z@&*^=%^P^&oPq=A4(=UY{^*ekf<)9s5zKV`1<46~v`(KoCOKl{)X5X4PaBh*IAPkD z!Vwdv4l8IpV&sHj{jEo23Bu8F%We+uGI~YC26;BebDIy}1%80-lLy1oWka8n@g~Ak z|1|i%@YJ~-o(>&8j=A0!@N^Y9sYIiHweN@*r#}AK~S& zGa5{N+QG+WoufXPonF*06*(ClZB9NP%tO?#0H7ny*{KzsMWVx5V~mG3Ic<=Tpl_9 z$d@zc1<^4L~Mfo8j=TxNDCg-#tI_i^s z9pJ<%I;NSkaK?Zc{WV}7qRs07KFv2%2uFR+!(p1K|E!lAqifoQeO=^aZ|5DbPyaTN ze<=E7)&Zu0YsvaDZfSpH9wP@%iEmmiaT*N1%${^mKNK6~hCgE|}&?9b6Z!2aB^SKsINUtoq~7>+RRjxG21 zg~01~0`qx7n|;9jjE@l=jsRemsWThg#+ai5=(r)X{AvGeu(!`q1H1+)zXa^B zkkKYb2GDUs_V-B+rsV0S4u_P|aYN3-mU0fQq@$e7yi?9WqQ1^>3@06R$m!>W$T_T& zgXI{O0~LL|T+-aOs5YEAC6(jKI{On56e+~zHV^voR60y z=;#=R%v%TJ<#4(Kj4uQGJgx!zuvdZU7?$kg<={R#?vq*fm<}$B~%Pj zg^qGEcNz8#fKLO5(EGUjs2A>&efe-g10AnlvcFHZMMSj6JaQ>4I_i)UU>+MHItPo6 zUk!^o9M?z3u=QXptK`D26nT0{DIDW~Jv!?9)uU*KW76m-C;N1AY@Czh9~r0HrJ2Lz z=(6F-{#xTOIXcS8%s%aNoEshGWPk2Bgbue0XR|k$>+*Dg=dd|C>XVr~$~m}?j&d^X zQ~o=!KQA0^=j|7XKAGucdN_v8hpqNHy&4vnq7Dbr(XmW8gsvr+at@F4X}(Hy)`L5n z&K57nKG{DnIAD#A=_hl`^m9lY9rwvBf69LZ`+RY1n$H&pr}^~fg1rt$rupYJN2u|3 zK|34`M@Rc)Mn^eEtkF?U-XB}aj}kfAzYB3Z8Xfh?{yFPMnNjXt1`@^Vn2u~!%rWnm zbd-DNei!7|ESis>Ncv}gM7D#_LkZp-!)(5 >~X?0~J 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 literal 0 HcmV?d00001 diff --git a/lib/libgcc.remove b/lib/libgcc.remove new file mode 100644 index 0000000..f573074 --- /dev/null +++ b/lib/libgcc.remove @@ -0,0 +1,24 @@ +# Object files to be removed from libgcc +# These are provided by the ROM. +_addsubdf3.o +_addsubsf3.o +_divdf3.o +_divdi3.o +_divsi3.o +_extendsfdf2.o +_fixdfsi.o +_fixunssfsi.o +_floatsidf.o +_floatsisf.o +_floatunsidf.o +_floatunsisf.o +_muldf3.o +_muldi3.o +_mulsf3.o +_subdf3.o +_subsf3.o +_truncdfsf2.o +_udivdi3.o +_umoddi3.o +_umodsi3.o +_umulsidi3.o diff --git a/libc/libc.remove b/libc/libc.remove new file mode 100644 index 0000000..ddf65ba --- /dev/null +++ b/libc/libc.remove @@ -0,0 +1,13 @@ +# Object files to remove from libc.a +# These are provided by the ROM. +lib_a-bzero.o +lib_a-memcmp.o +lib_a-memcpy.o +lib_a-memmove.o +lib_a-memset.o +lib_a-strcmp.o +lib_a-strcpy.o +lib_a-strlen.o +lib_a-strncmp.o +lib_a-strncpy.o +lib_a-strstr.o diff --git a/parameters.mk b/parameters.mk index 8c6a8a3..e1f019e 100644 --- a/parameters.mk +++ b/parameters.mk @@ -66,7 +66,7 @@ COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core open_esplibs SDK_LIBS ?= main net80211 phy pp wpa # open source libraries linked in -LIBS ?= hal gcc c +LIBS ?= hal # set to 0 if you want to use the toolchain libc instead of esp-open-rtos newlib OWN_LIBC ?= 1 From 6a0da03809543ca9e0100e6d9043a0d76b7d6cf1 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 20 Jul 2017 16:24:45 +1000 Subject: [PATCH 178/349] Use hwrand for the sdk uses of rand, in particular with the NMI. The fiq NMI calls rand() from lmac:lmac.a:sdk_lmacTxFrame and the NMI must not touch the newlib reent structure or enter critical regions etc, so just use the simple and safe hwrand implementation as a substitute. --- core/esp_hwrand.c | 9 +++++++-- lib/allsymbols.rename | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/esp_hwrand.c b/core/esp_hwrand.c index 7a591eb..f6890c7 100644 --- a/core/esp_hwrand.c +++ b/core/esp_hwrand.c @@ -10,8 +10,13 @@ #include #include -/* Return a random 32-bit number */ -uint32_t hwrand(void) +/* Return a random 32-bit number. + * + * This is also used as a substitute for rand() called from + * lmac.a:sdk_lmacTxFrame to avoid touching the newlib reent structures within + * the NMI and the NMI code needs to be in IRAM. + */ +uint32_t IRAM hwrand(void) { return WDEV.HWRNG; } diff --git a/lib/allsymbols.rename b/lib/allsymbols.rename index 2d609bc..5425845 100644 --- a/lib/allsymbols.rename +++ b/lib/allsymbols.rename @@ -419,6 +419,7 @@ ram_set_txbb_atten sdk_ram_set_txbb_atten ram_start_noisefloor sdk_ram_start_noisefloor ram_tx_mac_disable sdk_ram_tx_mac_disable ram_tx_mac_enable sdk_ram_tx_mac_enable +rand hwrand rc4_skip sdk_rc4_skip rcAttach sdk_rcAttach rc_cal sdk_rc_cal From 3c050bc4d12ae742ff54ef114a7827bc462a3280 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 20 Jul 2017 20:23:52 +0200 Subject: [PATCH 179/349] Upnp example emulating a Wemo switch --- examples/upnp/Makefile | 5 + examples/upnp/README.md | 3 + examples/upnp/httpd.c | 53 +++++ examples/upnp/httpd.h | 3 + examples/upnp/lwipopts.h | 464 ++++++++++++++++++++++++++++++++++++++ examples/upnp/upnp.c | 134 +++++++++++ examples/upnp/upnp.h | 2 + examples/upnp/upnp_test.c | 114 ++++++++++ 8 files changed, 778 insertions(+) create mode 100644 examples/upnp/Makefile create mode 100644 examples/upnp/README.md create mode 100644 examples/upnp/httpd.c create mode 100644 examples/upnp/httpd.h create mode 100644 examples/upnp/lwipopts.h create mode 100644 examples/upnp/upnp.c create mode 100644 examples/upnp/upnp.h create mode 100644 examples/upnp/upnp_test.c diff --git a/examples/upnp/Makefile b/examples/upnp/Makefile new file mode 100644 index 0000000..8e82736 --- /dev/null +++ b/examples/upnp/Makefile @@ -0,0 +1,5 @@ +PROGRAM=upnp_test +OTA=1 +EXTRA_COMPONENTS=extras/rboot-ota + +include ../../common.mk diff --git a/examples/upnp/README.md b/examples/upnp/README.md new file mode 100644 index 0000000..d39056c --- /dev/null +++ b/examples/upnp/README.md @@ -0,0 +1,3 @@ +# upnp Example + +This is an example to generate an upnp server and emulate a WeMo switch recognizable by Amazon echo Dot. diff --git a/examples/upnp/httpd.c b/examples/upnp/httpd.c new file mode 100644 index 0000000..9db2465 --- /dev/null +++ b/examples/upnp/httpd.c @@ -0,0 +1,53 @@ +#include +#include +#include + +void httpd_task(void *pvParameters) +{ + struct netconn *client = NULL; + struct netconn *nc = netconn_new(NETCONN_TCP); + if (nc == NULL) { + printf("Failed to allocate socket\n"); + vTaskDelete(NULL); + } + netconn_bind(nc, IP_ADDR_ANY, 80); + netconn_listen(nc); + while (1) { + err_t err = netconn_accept(nc, &client); + if (err == ERR_OK) { + struct netbuf *nb; + if ((err = netconn_recv(client, &nb)) == ERR_OK) { + struct sdk_station_config config; + sdk_wifi_station_get_config(&config); + char * buf = + "\ + \ + \ + urn:Belkin:device:controllee:1\ + hello\ + Belkin International Inc.\ + Emulated Socket\ + 3.1415\ + uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e6cc3dc0\ + 221517K0101769\ + 0\ + \ + \ + urn:Belkin:service:basicevent:1\ + urn:Belkin:serviceId:basicevent1\ + /upnp/control/basicevent1\ + /upnp/event/basicevent1\ + /eventservice.xml\ + \ + \ + \ + "; + netconn_write(client, buf, strlen(buf), NETCONN_COPY); + } + netbuf_delete(nb); + } + printf("Closing connection\n"); + netconn_close(client); + netconn_delete(client); + } +} \ No newline at end of file diff --git a/examples/upnp/httpd.h b/examples/upnp/httpd.h new file mode 100644 index 0000000..2dfdd1b --- /dev/null +++ b/examples/upnp/httpd.h @@ -0,0 +1,3 @@ +#include + +void httpd_task(void *pvParameters); diff --git a/examples/upnp/lwipopts.h b/examples/upnp/lwipopts.h new file mode 100644 index 0000000..a82d3fc --- /dev/null +++ b/examples/upnp/lwipopts.h @@ -0,0 +1,464 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + +#define LWIP_ESP 1 +#define ESP_RTOS 1 +#define PBUF_RSV_FOR_WLAN 1 +#define EBUF_LWIP 1 +#define ESP_TIMEWAIT_THRESHOLD 10000 +#define LWIP_TIMEVAL_PRIVATE 0 + +#define TCP_WND (TCP_MSS * 2) + +#define LWIP_IGMP 1 +#include +#include +#define LWIP_RAND hwrand + +/* + ----------------------------------------------- + ---------- Platform specific locking ---------- + ----------------------------------------------- +*/ +/** + * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain + * critical regions during buffer allocation, deallocation and memory + * allocation and deallocation. + */ +#define SYS_LIGHTWEIGHT_PROT 1 + +/** + * MEMCPY: override this if you have a faster implementation at hand than the + * one included in your C library + */ +#define MEMCPY(dst,src,len) memcpy(dst,src,len) + +/** + * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a + * call to memcpy() if the length is known at compile time and is small. + */ +#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +/* + ------------------------------------ + ---------- Memory options ---------- + ------------------------------------ +*/ +/** + * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library + * instead of the lwip internal allocator. Can save code size if you + * already use it. + */ +#define MEM_LIBC_MALLOC 1 + +/** +* MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator. +* Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution +* speed and usage from interrupts! +*/ +#define MEMP_MEM_MALLOC 1 + +/** + * MEM_ALIGNMENT: should be set to the alignment of the CPU + * 4 byte alignment -> #define MEM_ALIGNMENT 4 + * 2 byte alignment -> #define MEM_ALIGNMENT 2 + */ +#define MEM_ALIGNMENT 4 + +/* + ------------------------------------------------ + ---------- Internal Memory Pool Sizes ---------- + ------------------------------------------------ +*/ + +/* + -------------------------------- + ---------- ARP options ------- + -------------------------------- +*/ +/** + * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address + * resolution. By default, only the most recent packet is queued per IP address. + * This is sufficient for most protocols and mainly reduces TCP connection + * startup time. Set this to 1 if you know your application sends more than one + * packet in a row to an IP address that is not in the ARP cache. + */ +#define ARP_QUEUEING 1 + +/* + -------------------------------- + ---------- IP options ---------- + -------------------------------- +*/ +/** + * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that + * this option does not affect outgoing packet sizes, which can be controlled + * via IP_FRAG. + */ +#define IP_REASSEMBLY 0 + +/** + * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note + * that this option does not affect incoming packet sizes, which can be + * controlled via IP_REASSEMBLY. + */ +#define IP_FRAG 1 + +/** + * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) + * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived + * in this time, the whole packet is discarded. + */ +#define IP_REASS_MAXAGE 3 + +/** + * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. + * Since the received pbufs are enqueued, be sure to configure + * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive + * packets even if the maximum amount of fragments is enqueued for reassembly! + */ +#define IP_REASS_MAX_PBUFS 10 + +/* + ---------------------------------- + ---------- ICMP options ---------- + ---------------------------------- +*/ + +/* + --------------------------------- + ---------- RAW options ---------- + --------------------------------- +*/ + +/* + ---------------------------------- + ---------- DHCP options ---------- + ---------------------------------- +*/ +/** + * LWIP_DHCP==1: Enable DHCP module. + */ +#define LWIP_DHCP 1 + +#define LWIP_DHCP_BOOTP_FILE 0 + +/* + ------------------------------------ + ---------- AUTOIP options ---------- + ------------------------------------ +*/ +/* + ---------------------------------- + ---------- SNMP options ---------- + ---------------------------------- +*/ +/* + ---------------------------------- + ---------- IGMP options ---------- + ---------------------------------- +*/ +/* + ---------------------------------- + ---------- DNS options ----------- + ---------------------------------- +*/ +/** + * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS + * transport. + */ +#define LWIP_DNS 1 + +#define DNS_TABLE_SIZE 1 +#define DNS_MAX_NAME_LENGTH 128 + +/* + --------------------------------- + ---------- UDP options ---------- + --------------------------------- +*/ +/* + --------------------------------- + ---------- TCP options ---------- + --------------------------------- +*/ +/** + * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. + * Define to 0 if your device is low on memory. + */ +#define TCP_QUEUE_OOSEQ 0 + +/* + * LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all + * events (accept, sent, etc) that happen in the system. + * LWIP_CALLBACK_API==1: The PCB callback function is called directly + * for the event. This is the default. +*/ +#define TCP_MSS 1460 + +/** + * TCP_MAXRTX: Maximum number of retransmissions of data segments. + */ +#define TCP_MAXRTX 6 + + +/** + * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. + */ +#define TCP_SYNMAXRTX 3 + +/* + ---------------------------------- + ---------- Pbuf options ---------- + ---------------------------------- +*/ + +/* + ------------------------------------------------ + ---------- Network Interfaces options ---------- + ------------------------------------------------ +*/ +/** + * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data + * to be sent into one single pbuf. This is for compatibility with DMA-enabled + * MACs that do not support scatter-gather. + * Beware that this might involve CPU-memcpy before transmitting that would not + * be needed without this flag! Use this only if you need to! + * + * @todo: TCP and IP-frag do not work with this, yet: + */ +#define LWIP_NETIF_TX_SINGLE_PBUF 1 + +/* + ------------------------------------ + ---------- LOOPIF options ---------- + ------------------------------------ +*/ + +/* + ------------------------------------ + ---------- SLIPIF options ---------- + ------------------------------------ +*/ + +/* + ------------------------------------ + ---------- Thread options ---------- + ------------------------------------ +*/ +/** + * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#define TCPIP_THREAD_STACKSIZE 512 //not ok:384 + +/** + * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#define TCPIP_THREAD_PRIO (configMAX_PRIORITIES-5) + +/** + * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when tcpip_init is called. + */ +#define TCPIP_MBOX_SIZE 16 + +/** + * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#define DEFAULT_UDP_RECVMBOX_SIZE 6 + +/** + * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#define DEFAULT_TCP_RECVMBOX_SIZE 6 + +/** + * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when the acceptmbox is created. + */ +#define DEFAULT_ACCEPTMBOX_SIZE 6 + +/* + ---------------------------------------------- + ---------- Sequential layer options ---------- + ---------------------------------------------- +*/ + +/* + ------------------------------------ + ---------- Socket options ---------- + ------------------------------------ +*/ +/** + * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and + * SO_SNDTIMEO processing. + */ +#define LWIP_SO_SNDTIMEO 1 + +/** + * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and + * SO_RCVTIMEO processing. + */ +#define LWIP_SO_RCVTIMEO 1 + +/** + * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT + * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set + * in seconds. (does not require sockets.c, and will affect tcp.c) + */ +#define LWIP_TCP_KEEPALIVE 1 + +/** + * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. + */ +#define LWIP_SO_RCVBUF 0 + +/** + * SO_REUSE==1: Enable SO_REUSEADDR option. + */ +#define SO_REUSE 1 + +/* + ---------------------------------------- + ---------- Statistics options ---------- + ---------------------------------------- +*/ + +/* + --------------------------------- + ---------- PPP options ---------- + --------------------------------- +*/ + +/* + -------------------------------------- + ---------- Checksum options ---------- + -------------------------------------- +*/ + +/* + --------------------------------------- + ---------- IPv6 options --------------- + --------------------------------------- +*/ + +/* + --------------------------------------- + ---------- Hook options --------------- + --------------------------------------- +*/ + +/* + --------------------------------------- + ---------- Debugging options ---------- + --------------------------------------- +*/ + +// Uncomment this line, and set the individual debug options you want, for IP stack debug output +//#define LWIP_DEBUG + +/** + * ETHARP_DEBUG: Enable debugging in etharp.c. + */ +#define ETHARP_DEBUG LWIP_DBG_OFF + +/** + * PBUF_DEBUG: Enable debugging in pbuf.c. + */ +#define PBUF_DEBUG LWIP_DBG_OFF + +/** + * API_LIB_DEBUG: Enable debugging in api_lib.c. + */ +#define API_LIB_DEBUG LWIP_DBG_OFF + +/** + * SOCKETS_DEBUG: Enable debugging in sockets.c. + */ +#define SOCKETS_DEBUG LWIP_DBG_OFF + +/** + * IP_DEBUG: Enable debugging for IP. + */ +#define IP_DEBUG LWIP_DBG_OFF + +/** + * MEMP_DEBUG: Enable debugging in memp.c. + */ +#define MEMP_DEBUG LWIP_DBG_OFF + +/** + * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. + */ +#define TCP_INPUT_DEBUG LWIP_DBG_OFF + +/** + * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. + */ +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF + +/** + * UDP_DEBUG: Enable debugging in udp.c. + */ +#define UDP_DEBUG LWIP_DBG_OFF + +/** + * ICMP_DEBUG: Enable debugging in udp.c. + */ +#define ICMP_DEBUG LWIP_DBG_OFF + +/** + * TCPIP_DEBUG: Enable debugging in tcpip.c. + */ +#define TCPIP_DEBUG LWIP_DBG_OFF + + +/** + * DHCP_DEBUG: Enable debugging in dhcp.c. + */ +#define DHCP_DEBUG LWIP_DBG_OFF + +#define LWIP_POSIX_SOCKETS_IO_NAMES 0 + +#endif /* __LWIPOPTS_H__ */ diff --git a/examples/upnp/upnp.c b/examples/upnp/upnp.c new file mode 100644 index 0000000..a223d27 --- /dev/null +++ b/examples/upnp/upnp.c @@ -0,0 +1,134 @@ +#include +#include +#include +#include +#include "upnp.h" + +#define UPNP_MCAST_GRP ("239.255.255.250") +#define UPNP_MCAST_PORT (1900) + +static const char* get_my_ip(void) +{ + static char ip[16] = "0.0.0.0"; + ip[0] = 0; + struct ip_info ipinfo; + (void) sdk_wifi_get_ip_info(STATION_IF, &ipinfo); + snprintf(ip, sizeof(ip), IPSTR, IP2STR(&ipinfo.ip)); + return (char*) ip; +} + +/** + * @brief This function joins a multicast group witht he specified ip/port + * @param group_ip the specified multicast group ip + * @param group_port the specified multicast port number + * @param recv the lwip UDP callback + * @retval udp_pcb* or NULL if joining failed + */ +static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, void (* recv)(void * arg, struct udp_pcb * upcb, struct pbuf * p, struct ip_addr * addr, u16_t port)) +{ + bool status = false; + struct udp_pcb *upcb; + + printf("Joining mcast group %s:%d\n", group_ip, group_port); + do { + upcb = udp_new(); + if (!upcb) { + printf("Error, udp_new failed"); + break; + } + udp_bind(upcb, IP_ADDR_ANY, group_port); + struct netif* netif = sdk_system_get_netif(STATION_IF); + if (!netif) { + printf("Error, netif is null"); + break; + } + if (!(netif->flags & NETIF_FLAG_IGMP)) { + netif->flags |= NETIF_FLAG_IGMP; + igmp_start(netif); + } + ip_addr_t ipgroup; + ipaddr_aton(group_ip, &ipgroup); + err_t err = igmp_joingroup(&netif->ip_addr, &ipgroup); + if(ERR_OK != err) { + printf("Failed to join multicast group: %d", err); + break; + } + status = true; + } while(0); + + if (status) { + printf("Join successs\n"); + udp_recv(upcb, recv, upcb); + } else { + if (upcb) { + udp_remove(upcb); + } + upcb = NULL; + } + return upcb; +} + +static void send(struct udp_pcb *upcb, struct ip_addr *addr, u16_t port) +{ + struct pbuf *p; + char msg[500]; + snprintf(msg, sizeof(msg), + "HTTP/1.1 200 OK\r\n" + "CACHE-CONTROL: max-age=86400\r\n" + "DATE: Fri, 15 Apr 2016 04:56:29 GMT\r\n" + "EXT:\r\n" + "LOCATION: http://%s:80/setup.xml\r\n" + "OPT: \"http://schemas.upnp.org/upnp/1/0/\"; ns=01\r\n" + "01-NLS: b9200ebb-736d-4b93-bf03-835149d13983\r\n" + "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n" + "ST: urn:Belkin:device:**\r\n" + "USN: uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e6cc3dc0::urn:Belkin:device:**\r\n" + "X-User-Agent: redsonic\r\n\r\n", get_my_ip()); + + p = pbuf_alloc(PBUF_TRANSPORT, strlen(msg)+1, PBUF_RAM); + + if (!p) { + printf("Failed to allocate transport buffer\n"); + } else { + memcpy(p->payload, msg, strlen(msg)+1); + err_t err = udp_sendto(upcb, p, addr, port); + if (err < 0) { + printf("Error sending message: %s (%d)\n", lwip_strerr(err), err); + } else { + printf("Sent message '%s'\n", msg); + } + pbuf_free(p); + } +} + +/** + * @brief This function is called when an UDP datagrm has been received on the port UDP_PORT. + * @param arg user supplied argument (udp_pcb.recv_arg) + * @param pcb the udp_pcb which received data + * @param p the packet buffer that was received + * @param addr the remote IP address from which the packet was received + * @param port the remote port from which the packet was received + * @retval None + */ +static void receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port) +{ + if (p) { + printf("Msg received port:%d len:%d\n", port, p->len); + uint8_t *buf = (uint8_t*) p->payload; + printf("Msg received port:%d len:%d\nbuf: %s\n", port, p->len, buf); + + send(upcb, addr, port); + + pbuf_free(p); + } +} + +/** + * @brief Initialize the upnp server + * @retval true if init was succcessful + */ +bool upnp_server_init(void) +{ + struct udp_pcb *upcb = mcast_join_group(UPNP_MCAST_GRP, UPNP_MCAST_PORT, receive_callback); + return (upcb != NULL); +} diff --git a/examples/upnp/upnp.h b/examples/upnp/upnp.h new file mode 100644 index 0000000..eb71f84 --- /dev/null +++ b/examples/upnp/upnp.h @@ -0,0 +1,2 @@ + +bool upnp_server_init(void); diff --git a/examples/upnp/upnp_test.c b/examples/upnp/upnp_test.c new file mode 100644 index 0000000..b3da04c --- /dev/null +++ b/examples/upnp/upnp_test.c @@ -0,0 +1,114 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lwipopts.h" +#include "upnp.h" +#include "httpd.h" + +/** User friendly FreeRTOS delay macro */ +#define delay_ms(ms) vTaskDelay(ms / portTICK_PERIOD_MS) + +/** Semaphore to signal wifi availability */ +static SemaphoreHandle_t wifi_alive; + +/** + * @brief This is the multicast task + * @param arg user supplied argument from xTaskCreate + * @retval None + */ +static void mcast_task(void *arg) +{ + xSemaphoreTake(wifi_alive, portMAX_DELAY); + xSemaphoreGive(wifi_alive); + + (void) upnp_server_init(); + while(1) { + delay_ms(2000); + } +} + +/** + * @brief This is the wifi connection task + * @param arg user supplied argument from xTaskCreate + * @retval None + */ +static void wifi_task(void *pvParameters) +{ + uint8_t status = 0; + uint8_t retries = 30; + struct sdk_station_config config = { + .ssid = WIFI_SSID, + .password = WIFI_PASS, + }; + + xSemaphoreTake(wifi_alive, portMAX_DELAY); + printf("WiFi: connecting to WiFi\n"); + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + + while(1) { + while (status != STATION_GOT_IP && retries) { + status = sdk_wifi_station_get_connect_status(); + if(status == STATION_WRONG_PASSWORD) { + printf("WiFi: wrong password\n"); + break; + } else if(status == STATION_NO_AP_FOUND) { + printf("WiFi: AP not found\n"); + break; + } else if(status == STATION_CONNECT_FAIL) { + printf("WiFi: connection failed\n"); + break; + } + delay_ms(1000); + retries--; + } + if (status == STATION_GOT_IP) { + printf("WiFi: connected\n"); + xSemaphoreGive(wifi_alive); + taskYIELD(); + } + + while ((status = sdk_wifi_station_get_connect_status()) == STATION_GOT_IP) { + xSemaphoreGive(wifi_alive); + taskYIELD(); + } + printf("WiFi: disconnected\n"); + sdk_wifi_station_disconnect(); + delay_ms(1000); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + vSemaphoreCreateBinary(wifi_alive); + ota_tftp_init_server(TFTP_PORT); + xTaskCreate(&wifi_task, "wifi_task", 256, NULL, 2, NULL); + delay_ms(250); + xTaskCreate(&httpd_task, "http_server", 1024, NULL, 4, NULL); + xTaskCreate(&mcast_task, "mcast_task", 1024, NULL, 4, NULL); +} From afa834a805bfb190df7384cf1fd187a09515eb3f Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 2 Aug 2017 09:28:54 +1000 Subject: [PATCH 180/349] i2c: remove wip 400k define Looks like this was test wip code that should not have been included. Want to be able to set the i2c per-project rather than having to patch the driver. --- extras/i2c/i2c.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index 9fa65ca..b7936ad 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -36,8 +36,6 @@ extern "C" { #endif -#define I2C_FREQUENCY_400K true // for test WIP - /* * Some bit can be transmit slower. * Selected frequency fix the speed of a bit transmission From 30920ce4ec90eb3166c18421364c728bed5fa30f Mon Sep 17 00:00:00 2001 From: Sakari Kapanen Date: Fri, 4 Aug 2017 00:39:02 +0300 Subject: [PATCH 181/349] httpd: add missing typedef --- extras/httpd/httpd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/httpd/httpd.h b/extras/httpd/httpd.h index 59b0095..1214054 100644 --- a/extras/httpd/httpd.h +++ b/extras/httpd/httpd.h @@ -231,7 +231,7 @@ void httpd_post_data_recved(void *connection, u16_t recved_len); #endif /* LWIP_HTTPD_SUPPORT_POST */ -enum { +typedef enum { WS_TEXT_MODE = 0x01, WS_BIN_MODE = 0x02, } WS_MODE; From 8ce00cdf218358c7e545ad0123ad5003712117d3 Mon Sep 17 00:00:00 2001 From: sheinz <2250775+sheinz@users.noreply.github.com> Date: Fri, 18 Aug 2017 17:29:07 +0300 Subject: [PATCH 182/349] Fix pyserial import on travis CI --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bf128be..39674fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,13 +29,14 @@ addons: - libncurses5-dev - libexpat1-dev - python - - python-serial + - python-pip - sed - git - help2man - vim-common before_install: + - pip install --user pyserial - travis_wait 30 utils/travis_build/install_toolchain.sh script: From 674c4504167087de7a7777fcea1a57d6e40ed286 Mon Sep 17 00:00:00 2001 From: lilian Date: Tue, 22 Aug 2017 15:10:15 -0300 Subject: [PATCH 183/349] Fix SPI3 protocol with SSD1306 --- extras/ssd1306/ssd1306.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index ca3b48a..4da3e10 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -99,7 +99,7 @@ static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uin /* Issue a command to SSD1306 device * I2C proto format: * |S|Slave Address|W|ACK|0x00|Command|Ack|P| - * + * * in case of two-bytes command here will be Data byte * right after the command byte. */ @@ -293,9 +293,19 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) { spi_set_command(SPI_BUS,1,1); // data mode if (buf) - spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); + { + for (i = 0; i < len; i++) + { + spi_transfer(SPI_BUS, &buf[i], NULL, 1, SPI_8BIT); + } + } else - spi_repeat_send_8(SPI_BUS,0,len); + { + for (i = 0; i < len; i++) + { + spi_transfer_8(SPI_BUS, 0); + } + } } else { From 4838072ecf0821a9647e32efe2362a9d009d42d9 Mon Sep 17 00:00:00 2001 From: Sakari Kapanen Date: Sat, 12 Aug 2017 00:54:35 +0300 Subject: [PATCH 184/349] Added an API for user exception handlers --- core/debug_dumps.c | 13 +++++++++++++ core/include/user_exception.h | 9 +++++++++ 2 files changed, 22 insertions(+) create mode 100644 core/include/user_exception.h diff --git a/core/debug_dumps.c b/core/debug_dumps.c index 6300439..0b18f1a 100644 --- a/core/debug_dumps.c +++ b/core/debug_dumps.c @@ -22,6 +22,7 @@ #include "esp/dport_regs.h" #include "espressif/esp_common.h" #include "esplibs/libmain.h" +#include "user_exception.h" /* Forward declarations */ static void IRAM fatal_handler_prelude(void); @@ -33,6 +34,8 @@ static void __attribute__((noinline)) __attribute__((noreturn)) abort_handler_in static IRAM_DATA fatal_exception_handler_fn fatal_exception_handler_inner = standard_fatal_exception_handler_inner; +static void (*user_exception_handler)(void) = NULL; + /* fatal_exception_handler called from any unhandled user exception * * (similar to a hard fault on other processor architectures) @@ -157,6 +160,10 @@ static void IRAM fatal_handler_prelude(void) { } Cache_Read_Disable(); Cache_Read_Enable(0, 0, 1); + + if (user_exception_handler != NULL) { + user_exception_handler(); + } } /* Main part of fatal exception handler, is run from flash to save @@ -230,3 +237,9 @@ static void abort_handler_inner(uint32_t *caller, uint32_t *sp) { dump_heapinfo(); post_crash_reset(); } + +void set_user_exception_handler(void (*fn)(void)) +{ + user_exception_handler = fn; +} + diff --git a/core/include/user_exception.h b/core/include/user_exception.h new file mode 100644 index 0000000..abb027a --- /dev/null +++ b/core/include/user_exception.h @@ -0,0 +1,9 @@ +/* Allows the user to set their own exception handler. */ + +#ifndef _USER_EXCEPTION_H +#define _USER_EXCEPTION_H + +void set_user_exception_handler(void (*fn)(void)); + +#endif + From ec5dabd2372029b281da361a9aa9dc259d751873 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 1 Aug 2017 09:16:12 +1000 Subject: [PATCH 185/349] sysparam: reserve one more flash sector before placing the sysparams This is to help work with recent SDKs that add a RF cal sector by default in the fifth last sector - just so the sysparam sectors do not jump around when using different SDK versions. --- core/app_main.c | 4 ++-- examples/sysparam_editor/Makefile | 4 ++-- examples/sysparam_editor/sysparam_editor.c | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/app_main.c b/core/app_main.c index e56b0ab..c944274 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -214,8 +214,8 @@ void IRAM sdk_user_start(void) { memcpy(&sdk_g_ic.s, buf32, sizeof(struct sdk_g_ic_saved_st)); // By default, put the sysparam region just below the config sectors at the - // top of the flash space - sysparam_addr = flash_size - (4 + DEFAULT_SYSPARAM_SECTORS) * sdk_flashchip.sector_size; + // top of the flash space, and allowing one extra sector spare. + sysparam_addr = flash_size - (5 + DEFAULT_SYSPARAM_SECTORS) * sdk_flashchip.sector_size; status = sysparam_init(sysparam_addr, flash_size); if (status == SYSPARAM_NOTFOUND) { status = sysparam_create_area(sysparam_addr, DEFAULT_SYSPARAM_SECTORS, false); diff --git a/examples/sysparam_editor/Makefile b/examples/sysparam_editor/Makefile index a774b68..f63e4e5 100644 --- a/examples/sysparam_editor/Makefile +++ b/examples/sysparam_editor/Makefile @@ -8,7 +8,7 @@ include ../../common.mk # `make dump-flash` can be used to view the current contents of the sysparam # regions in flash. dump-flash: - esptool.py read_flash 0x1f8000 8192 r1.bin + esptool.py read_flash 0x1f7000 8192 r1.bin hexdump -C r1.bin - esptool.py read_flash 0x1fa000 8192 r2.bin + esptool.py read_flash 0x1f9000 8192 r2.bin hexdump -C r2.bin diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index 0b58efd..f3f767b 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -173,7 +173,7 @@ void sysparam_editor_task(void *pvParameters) { // stuff, so if the user uses this utility to reformat it, it will put // it somewhere the system will find it later num_sectors = DEFAULT_SYSPARAM_SECTORS; - base_addr = sdk_flashchip.chip_size - (4 + num_sectors) * sdk_flashchip.sector_size; + base_addr = sdk_flashchip.chip_size - (5 + num_sectors) * sdk_flashchip.sector_size; } while (true) { printf("==> "); @@ -246,5 +246,7 @@ void user_init(void) { uart_set_baud(0, 115200); + sdk_wifi_set_opmode(NULL_MODE); + xTaskCreate(sysparam_editor_task, "sysparam_editor_task", 512, NULL, 2, NULL); } From 5583543f14f8f164f58928dc138f297a4f567e32 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 22 Jul 2017 22:09:09 +1000 Subject: [PATCH 186/349] Add an argument to ISRs. Disable interrupts while masking them. --- FreeRTOS/Source/portable/esp8266/port.c | 6 +- core/esp_gpio.c | 10 ++-- core/esp_interrupts.c | 23 +++++--- core/include/esp/gpio.h | 2 +- core/include/esp/interrupts.h | 56 ++++++++++++------- examples/blink_timers/blink_timers.c | 8 +-- examples/experiments/timers/timers.c | 8 +-- .../unaligned_load/unaligned_load.c | 4 +- examples/i2s_audio/i2s_audio_example.c | 4 +- extras/i2s_dma/i2s_dma.c | 4 +- extras/i2s_dma/i2s_dma.h | 5 +- extras/pwm/pwm.c | 4 +- .../stdin_uart_interrupt.c | 4 +- extras/ws2812_i2s/ws2812_i2s.c | 4 +- open_esplibs/libmain/os_cpu_a.c | 2 +- tests/cases/03_byte_load_flash.c | 2 +- 16 files changed, 87 insertions(+), 59 deletions(-) diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index 87d846f..087f778 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -153,7 +153,7 @@ void IRAM PendSV(enum SVC_ReqType req) */ extern portBASE_TYPE sdk_MacIsrSigPostDefHdl(void); -void IRAM SV_ISR(void) +void IRAM SV_ISR(void *arg) { portBASE_TYPE xHigherPriorityTaskWoken=pdFALSE ; if(pending_maclayer_sv) @@ -185,11 +185,11 @@ void xPortSysTickHandle (void) */ portBASE_TYPE xPortStartScheduler( void ) { - _xt_isr_attach(INUM_SOFT, SV_ISR); + _xt_isr_attach(INUM_SOFT, SV_ISR, NULL); _xt_isr_unmask(BIT(INUM_SOFT)); /* Initialize system tick timer interrupt and schedule the first tick. */ - _xt_isr_attach(INUM_TICK, sdk__xt_timer_int); + _xt_isr_attach(INUM_TICK, sdk__xt_timer_int, NULL); _xt_isr_unmask(BIT(INUM_TICK)); sdk__xt_tick_timer_init(); diff --git a/core/esp_gpio.c b/core/esp_gpio.c index a3011e1..359f828 100644 --- a/core/esp_gpio.c +++ b/core/esp_gpio.c @@ -58,17 +58,17 @@ void gpio_set_pullup(uint8_t gpio_num, bool enabled, bool enabled_during_sleep) static gpio_interrupt_handler_t gpio_interrupt_handlers[16] = { 0 }; -void __attribute__((weak)) IRAM gpio_interrupt_handler(void) +void __attribute__((weak)) IRAM gpio_interrupt_handler(void *arg) { uint32_t status_reg = GPIO.STATUS; GPIO.STATUS_CLEAR = status_reg; uint8_t gpio_idx; - while((gpio_idx = __builtin_ffs(status_reg))) + while ((gpio_idx = __builtin_ffs(status_reg))) { gpio_idx--; status_reg &= ~BIT(gpio_idx); - if(FIELD2VAL(GPIO_CONF_INTTYPE, GPIO.CONF[gpio_idx])) { + if (FIELD2VAL(GPIO_CONF_INTTYPE, GPIO.CONF[gpio_idx])) { gpio_interrupt_handler_t handler = gpio_interrupt_handlers[gpio_idx]; if (handler) { handler(gpio_idx); @@ -82,8 +82,8 @@ void gpio_set_interrupt(const uint8_t gpio_num, const gpio_inttype_t int_type, g gpio_interrupt_handlers[gpio_num] = handler; GPIO.CONF[gpio_num] = SET_FIELD(GPIO.CONF[gpio_num], GPIO_CONF_INTTYPE, int_type); - if(int_type != GPIO_INTTYPE_NONE) { - _xt_isr_attach(INUM_GPIO, gpio_interrupt_handler); + if (int_type != GPIO_INTTYPE_NONE) { + _xt_isr_attach(INUM_GPIO, gpio_interrupt_handler, NULL); _xt_isr_unmask(1< -_xt_isr isr[16]; +typedef struct _xt_isr_entry_ { + _xt_isr handler; + void *arg; +} _xt_isr_entry; + +_xt_isr_entry isr[16]; bool esp_in_isr; -void IRAM _xt_isr_attach(uint8_t i, _xt_isr func) +void IRAM _xt_isr_attach(uint8_t i, _xt_isr func, void *arg) { - isr[i] = func; + isr[i].handler = func; + isr[i].arg = arg; } /* Generic ISR handler. @@ -25,17 +31,20 @@ uint16_t IRAM _xt_isr_handler(uint16_t intset) esp_in_isr = true; /* WDT has highest priority (occasional WDT resets otherwise) */ - if(intset & BIT(INUM_WDT)) { + if (intset & BIT(INUM_WDT)) { _xt_clear_ints(BIT(INUM_WDT)); - isr[INUM_WDT](); + isr[INUM_WDT].handler(NULL); intset -= BIT(INUM_WDT); } - while(intset) { + while (intset) { uint8_t index = __builtin_ffs(intset) - 1; uint16_t mask = BIT(index); _xt_clear_ints(mask); - isr[index](); + _xt_isr handler = isr[index].handler; + if (handler) { + handler(isr[index].arg); + } intset -= mask; } diff --git a/core/include/esp/gpio.h b/core/include/esp/gpio.h index 9187087..85842aa 100644 --- a/core/include/esp/gpio.h +++ b/core/include/esp/gpio.h @@ -150,7 +150,7 @@ typedef void (* gpio_interrupt_handler_t)(uint8_t gpio_num); * * Example: * - * void IRAM gpio_interrupt_handler(void) { + * void IRAM gpio_interrupt_handler(void *arg) { * // check GPIO.STATUS * // write GPIO.STATUS_CLEAR * // Do something when GPIO changes diff --git a/core/include/esp/interrupts.h b/core/include/esp/interrupts.h index 47594a2..5bdd833 100644 --- a/core/include/esp/interrupts.h +++ b/core/include/esp/interrupts.h @@ -35,19 +35,37 @@ typedef enum { INUM_TIMER_FRC2 = 10, } xt_isr_num_t; -void sdk__xt_int_exit (void); -void _xt_user_exit (void); -void sdk__xt_tick_timer_init (void); -void sdk__xt_timer_int(void); +void sdk__xt_int_exit(void); +void _xt_user_exit(void); +void sdk__xt_tick_timer_init(void); +void sdk__xt_timer_int(void *); void sdk__xt_timer_int1(void); +/* The normal running level is 0. + * The system tick isr, timer frc2_isr, sv_isr etc run at level 1. + * Debug exceptions run at level 2? + * The wdev nmi runs at level 3. + */ static inline uint32_t _xt_get_intlevel(void) { uint32_t level; - __asm__ volatile("rsr %0, intlevel" : "=a"(level)); - return level; + __asm__ volatile("rsr %0, ps" : "=a"(level)); + return level & 0xf; } +/* + * There are conflicting definitions for XCHAL_EXCM_LEVEL. Newlib + * defines it to be 1 and xtensa_rtos.h defines it to be 3. Don't want + * 3 as that is for the NMI and might want to check that the OS apis + * are not entered in level 3. Setting the interrupt level to 3 does + * not disable the NMI anyway. So set the level to 2. + */ + +#ifdef XCHAL_EXCM_LEVEL +#undef XCHAL_EXCM_LEVEL +#define XCHAL_EXCM_LEVEL 2 +#endif + /* Disable interrupts and return the old ps value, to pass into _xt_restore_interrupts later. @@ -68,25 +86,27 @@ static inline void _xt_restore_interrupts(uint32_t new_ps) __asm__ volatile ("wsr %0, ps; rsync" :: "a" (new_ps)); } -/* ESPTODO: the mask/unmask functions aren't thread safe */ - -static inline void _xt_isr_unmask(uint32_t unmask) +static inline uint32_t _xt_isr_unmask(uint32_t unmask) { + uint32_t old_level = _xt_disable_interrupts(); uint32_t intenable; asm volatile ("rsr %0, intenable" : "=a" (intenable)); - intenable |= unmask; - asm volatile ("wsr %0, intenable; esync" :: "a" (intenable)); + asm volatile ("wsr %0, intenable;" :: "a" (intenable | unmask)); + _xt_restore_interrupts(old_level); + return intenable; } -static inline void _xt_isr_mask (uint32_t mask) +static inline uint32_t _xt_isr_mask(uint32_t mask) { + uint32_t old_level = _xt_disable_interrupts(); uint32_t intenable; asm volatile ("rsr %0, intenable" : "=a" (intenable)); - intenable &= ~mask; - asm volatile ("wsr %0, intenable; esync" :: "a" (intenable)); + asm volatile ("wsr %0, intenable;" :: "a" (intenable & ~mask)); + _xt_restore_interrupts(old_level); + return intenable; } -static inline uint32_t _xt_read_ints (void) +static inline uint32_t _xt_read_ints(void) { uint32_t interrupt; asm volatile ("rsr %0, interrupt" : "=a" (interrupt)); @@ -98,9 +118,7 @@ static inline void _xt_clear_ints(uint32_t mask) asm volatile ("wsr %0, intclear; esync" :: "a" (mask)); } -typedef void (* _xt_isr)(void); -/* This function is implemeneted in FreeRTOS port.c at the moment, - should be moved or converted to an inline */ -void _xt_isr_attach (uint8_t i, _xt_isr func); +typedef void (* _xt_isr)(void *arg); +void _xt_isr_attach (uint8_t i, _xt_isr func, void *arg); #endif diff --git a/examples/blink_timers/blink_timers.c b/examples/blink_timers/blink_timers.c index 177cff3..bef887d 100644 --- a/examples/blink_timers/blink_timers.c +++ b/examples/blink_timers/blink_timers.c @@ -17,13 +17,13 @@ const int freq_frc2 = 10; static volatile uint32_t frc1_count; static volatile uint32_t frc2_count; -void frc1_interrupt_handler(void) +void frc1_interrupt_handler(void *arg) { frc1_count++; gpio_toggle(gpio_frc1); } -void frc2_interrupt_handler(void) +void frc2_interrupt_handler(void *arg) { /* FRC2 needs the match register updated on each timer interrupt */ timer_set_frequency(FRC2, freq_frc2); @@ -47,8 +47,8 @@ void user_init(void) timer_set_run(FRC2, false); /* set up ISRs */ - _xt_isr_attach(INUM_TIMER_FRC1, frc1_interrupt_handler); - _xt_isr_attach(INUM_TIMER_FRC2, frc2_interrupt_handler); + _xt_isr_attach(INUM_TIMER_FRC1, frc1_interrupt_handler, NULL); + _xt_isr_attach(INUM_TIMER_FRC2, frc2_interrupt_handler, NULL); /* configure timer frequencies */ timer_set_frequency(FRC1, freq_frc1); diff --git a/examples/experiments/timers/timers.c b/examples/experiments/timers/timers.c index a2e5e66..c889643 100644 --- a/examples/experiments/timers/timers.c +++ b/examples/experiments/timers/timers.c @@ -97,7 +97,7 @@ void timerRegTask(void *pvParameters) } } -IRAM void frc1_handler(void) +IRAM void frc1_handler(void *arg) { frc1_handler_call_count++; frc1_last_count_val = TIMER(0).COUNT; @@ -106,7 +106,7 @@ IRAM void frc1_handler(void) //TIMER_FRC1_MATCH_REG = frc1_last_count_val + 0x100000; } -void frc2_handler(void) +void frc2_handler(void *arg) { frc2_handler_call_count++; frc2_last_count_val = TIMER(1).COUNT; @@ -127,9 +127,9 @@ void user_init(void) TIMER(1).LOAD = VAL2FIELD(TIMER_CTRL_CLKDIV, TIMER_CLKDIV_256); DPORT.INT_ENABLE |= DPORT_INT_ENABLE_TIMER0 | DPORT_INT_ENABLE_TIMER1; - _xt_isr_attach(INUM_TIMER_FRC1, frc1_handler); + _xt_isr_attach(INUM_TIMER_FRC1, frc1_handler, NULL); _xt_isr_unmask(1< Date: Wed, 5 Jul 2017 14:17:41 +1000 Subject: [PATCH 187/349] FreeRTOS 9.0.1 --- FreeRTOS/License/license.txt | 137 ++--- FreeRTOS/Source/croutine.c | 2 +- FreeRTOS/Source/event_groups.c | 20 +- FreeRTOS/Source/include/FreeRTOS.h | 44 +- FreeRTOS/Source/include/FreeRTOSConfig.h | 52 +- FreeRTOS/Source/include/StackMacros.h | 2 +- FreeRTOS/Source/include/croutine.h | 2 +- .../Source/include/deprecated_definitions.h | 2 +- FreeRTOS/Source/include/event_groups.h | 2 +- FreeRTOS/Source/include/list.h | 4 +- FreeRTOS/Source/include/mpu_prototypes.h | 7 +- FreeRTOS/Source/include/mpu_wrappers.h | 11 +- FreeRTOS/Source/include/portable.h | 2 +- FreeRTOS/Source/include/projdefs.h | 2 +- FreeRTOS/Source/include/queue.h | 115 +--- FreeRTOS/Source/include/semphr.h | 37 +- FreeRTOS/Source/include/task.h | 135 ++++- FreeRTOS/Source/include/timers.h | 14 +- FreeRTOS/Source/list.c | 2 +- FreeRTOS/Source/portable/esp8266/port.c | 133 +++-- FreeRTOS/Source/portable/esp8266/portmacro.h | 68 +-- FreeRTOS/Source/portable/readme.txt | 20 + FreeRTOS/Source/queue.c | 533 ++++++++++++++--- FreeRTOS/Source/readme.txt | 27 +- FreeRTOS/Source/tasks.c | 543 +++++++++++++----- FreeRTOS/Source/timers.c | 46 +- 26 files changed, 1347 insertions(+), 615 deletions(-) create mode 100644 FreeRTOS/Source/portable/readme.txt diff --git a/FreeRTOS/License/license.txt b/FreeRTOS/License/license.txt index e48ed80..5d243b8 100644 --- a/FreeRTOS/License/license.txt +++ b/FreeRTOS/License/license.txt @@ -1,65 +1,61 @@ -The FreeRTOS.org source code is licensed by the *modified* GNU General Public -License (GPL), text provided below. A special exception to the GPL is -included to allow you to distribute a combined work that includes FreeRTOS -without being obliged to provide the source code for any proprietary -components. See the licensing section of http://www.FreeRTOS.org for full -details. The exception text is also included at the bottom of this file. +The FreeRTOS open source license covers the FreeRTOS source files, +which are located in the /FreeRTOS/Source directory of the official FreeRTOS +download. It also covers most of the source files in the demo application +projects, which are located in the /FreeRTOS/Demo directory of the official +FreeRTOS download. The demo projects may also include third party software that +is not part of FreeRTOS and is licensed separately to FreeRTOS. Examples of +third party software includes header files provided by chip or tools vendors, +linker scripts, peripheral drivers, etc. All the software in subdirectories of +the /FreeRTOS directory is either open source or distributed with permission, +and is free for use. For the avoidance of doubt, refer to the comments at the +top of each source file. -The FreeRTOS download also includes demo application source code, some of -which is provided by third parties AND IS LICENSED SEPARATELY FROM FREERTOS. +---------------------------------------------------------------------------- -For the avoidance of any doubt refer to the comment included at the top -of each source and header file for license and copyright information. +NOTE: The modification to the GPL is included to allow you to distribute a +combined work that includes FreeRTOS without being obliged to provide the source +code for proprietary components. -This is a list of files for which Real Time Engineers Ltd are not the -copyright owner and are NOT COVERED BY THE GPL. +---------------------------------------------------------------------------- + +Applying to FreeRTOS V8.2.3 up to the latest version, the FreeRTOS GPL Exception +Text follows: + +Any FreeRTOS *source code*, whether modified or in it's original release form, +or whether in whole or in part, can only be distributed by you under the terms +of the GNU General Public License plus this exception. An independent module is +a module which is not derived from or based on FreeRTOS. + +Clause 1: + +Linking FreeRTOS with other modules is making a combined work based on FreeRTOS. +Thus, the terms and conditions of the GNU General Public License V2 cover the +whole combination. + +As a special exception, the copyright holders of FreeRTOS give you permission to +link FreeRTOS with independent modules to produce a statically linked +executable, regardless of the license terms of these independent modules, and to +copy and distribute the resulting executable under terms of your choice, +provided that you also meet, for each linked independent module, the terms and +conditions of the license of that module. An independent module is a module +which is not derived from or based on FreeRTOS. + +Clause 2: + +FreeRTOS may not be used for any competitive or comparative purpose, including +the publication of any form of run time or compile time metric, without the +express permission of Real Time Engineers Ltd. (this is the norm within the +industry and is intended to ensure information accuracy). -1) Various header files provided by silicon manufacturers and tool vendors - that define processor specific memory addresses and utility macros. - Permission has been granted by the various copyright holders for these - files to be included in the FreeRTOS download. Users must ensure license - conditions are adhered to for any use other than compilation of the - FreeRTOS demo applications. - -2) The uIP TCP/IP stack the copyright of which is held by Adam Dunkels. - Users must ensure the open source license conditions stated at the top - of each uIP source file is understood and adhered to. - -3) The lwIP TCP/IP stack the copyright of which is held by the Swedish - Institute of Computer Science. Users must ensure the open source license - conditions stated at the top of each lwIP source file is understood and - adhered to. - -4) Various peripheral driver source files and binaries provided by silicon - manufacturers and tool vendors. Permission has been granted by the - various copyright holders for these files to be included in the FreeRTOS - download. Users must ensure license conditions are adhered to for any - use other than compilation of the FreeRTOS demo applications. - -5) The files contained within FreeRTOS\Demo\WizNET_DEMO_TERN_186\tern_code, - which are slightly modified versions of code provided by and copyright to - Tern Inc. - -Errors and omissions should be reported to Richard Barry, contact details for -whom can be obtained from http://www.FreeRTOS.org. - - - - - -The GPL license text follows. - -A special exception to the GPL is included to allow you to distribute a -combined work that includes FreeRTOS without being obliged to provide -the source code for any proprietary components. See the licensing section -of http://www.FreeRTOS.org for full details. The exception text is also -included at the bottom of this file. -------------------------------------------------------------------- +The standard GPL V2 text: + + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -401,40 +397,3 @@ consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ----------------------------------------------------------------------------- - -The FreeRTOS GPL Exception Text: - -Any FreeRTOS source code, whether modified or in it's original release form, -or whether in whole or in part, can only be distributed by you under the terms -of the GNU General Public License plus this exception. An independent module is -a module which is not derived from or based on FreeRTOS. - -Clause 1: - -Linking FreeRTOS statically or dynamically with other modules is making a -combined work based on FreeRTOS. Thus, the terms and conditions of the GNU -General Public License cover the whole combination. - -As a special exception, the copyright holder of FreeRTOS gives you permission -to link FreeRTOS with independent modules that communicate with FreeRTOS -solely through the FreeRTOS API interface, regardless of the license terms of -these independent modules, and to copy and distribute the resulting combined -work under terms of your choice, provided that - - + Every copy of the combined work is accompanied by a written statement that - details to the recipient the version of FreeRTOS used and an offer by yourself - to provide the FreeRTOS source code (including any modifications you may have - made) should the recipient request it. - - + The combined work is not itself an RTOS, scheduler, kernel or related product. - - + The independent modules add significant and primary functionality to FreeRTOS - and do not merely extend the existing functionality already present in FreeRTOS. - -Clause 2: - -FreeRTOS may not be used for any competitive or comparative purpose, including the -publication of any form of run time or compile time metric, without the express -permission of Real Time Engineers Ltd. (this is the norm within the industry and -is intended to ensure information accuracy). diff --git a/FreeRTOS/Source/croutine.c b/FreeRTOS/Source/croutine.c index 993e09b..d3b0eff 100644 --- a/FreeRTOS/Source/croutine.c +++ b/FreeRTOS/Source/croutine.c @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/event_groups.c b/FreeRTOS/Source/event_groups.c index b8df5fd..4434bdf 100644 --- a/FreeRTOS/Source/event_groups.c +++ b/FreeRTOS/Source/event_groups.c @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -139,6 +139,16 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co /* A StaticEventGroup_t object must be provided. */ configASSERT( pxEventGroupBuffer ); + #if( configASSERT_DEFINED == 1 ) + { + /* Sanity check that the size of the structure used to declare a + variable of type StaticEventGroup_t equals the size of the real + event group structure. */ + volatile size_t xSize = sizeof( StaticEventGroup_t ); + configASSERT( xSize == sizeof( EventGroup_t ) ); + } + #endif /* configASSERT_DEFINED */ + /* The user has provided a statically allocated event group - use it. */ pxEventBits = ( EventGroup_t * ) pxEventGroupBuffer; /*lint !e740 EventGroup_t and StaticEventGroup_t are guaranteed to have the same size and alignment requirement - checked by configASSERT(). */ @@ -602,7 +612,7 @@ BaseType_t xMatchFound = pdFALSE; eventUNBLOCKED_DUE_TO_BIT_SET bit is set so the task knows that is was unblocked due to its required bits matching, rather than because it timed out. */ - ( void ) xTaskRemoveFromUnorderedEventList( pxListItem, pxEventBits->uxEventBits | eventUNBLOCKED_DUE_TO_BIT_SET ); + vTaskRemoveFromUnorderedEventList( pxListItem, pxEventBits->uxEventBits | eventUNBLOCKED_DUE_TO_BIT_SET ); } /* Move onto the next list item. Note pxListItem->pxNext is not @@ -633,9 +643,9 @@ const List_t *pxTasksWaitingForBits = &( pxEventBits->xTasksWaitingForBits ); while( listCURRENT_LIST_LENGTH( pxTasksWaitingForBits ) > ( UBaseType_t ) 0 ) { /* Unblock the task, returning 0 as the event list is being deleted - and cannot therefore have any bits set. */ - configASSERT( pxTasksWaitingForBits->xListEnd.pxNext != ( ListItem_t * ) &( pxTasksWaitingForBits->xListEnd ) ); - ( void ) xTaskRemoveFromUnorderedEventList( pxTasksWaitingForBits->xListEnd.pxNext, eventUNBLOCKED_DUE_TO_BIT_SET ); + and cannot therefore have any bits set. */ + configASSERT( pxTasksWaitingForBits->xListEnd.pxNext != ( const ListItem_t * ) &( pxTasksWaitingForBits->xListEnd ) ); + vTaskRemoveFromUnorderedEventList( pxTasksWaitingForBits->xListEnd.pxNext, eventUNBLOCKED_DUE_TO_BIT_SET ); } #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) ) diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h index 63a08b3..94ea1f8 100644 --- a/FreeRTOS/Source/include/FreeRTOS.h +++ b/FreeRTOS/Source/include/FreeRTOS.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -126,6 +126,10 @@ extern "C" { #error Missing definition: configMAX_PRIORITIES must be defined in FreeRTOSConfig.h. See the Configuration section of the FreeRTOS API documentation for details. #endif +#if configMAX_PRIORITIES < 1 + #error configMAX_PRIORITIES must be defined to be greater than or equal to 1. +#endif + #ifndef configUSE_PREEMPTION #error Missing definition: configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. #endif @@ -142,10 +146,6 @@ extern "C" { #error Missing definition: configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. #endif -#ifndef configMAX_PRIORITIES - #error configMAX_PRIORITIES must be defined to be greater than or equal to 1. -#endif - #ifndef configUSE_CO_ROUTINES #define configUSE_CO_ROUTINES 0 #endif @@ -408,6 +408,14 @@ extern "C" { #define configCHECK_FOR_STACK_OVERFLOW 0 #endif +#ifndef configRECORD_STACK_HIGH_ADDRESS + #define configRECORD_STACK_HIGH_ADDRESS 0 +#endif + +#ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H + #define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 0 +#endif + /* The following event macros are embedded in the kernel API calls. */ #ifndef traceMOVED_TASK_TO_READY_STATE @@ -708,6 +716,10 @@ extern "C" { #define configUSE_TICKLESS_IDLE 0 #endif +#ifndef configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING + #define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x ) +#endif + #ifndef configPRE_SLEEP_PROCESSING #define configPRE_SLEEP_PROCESSING( x ) #endif @@ -724,6 +736,10 @@ extern "C" { #define portTASK_USES_FLOATING_POINT() #endif +#ifndef portTASK_CALLS_SECURE_FUNCTIONS + #define portTASK_CALLS_SECURE_FUNCTIONS() +#endif + #ifndef configUSE_TIME_SLICING #define configUSE_TIME_SLICING 1 #endif @@ -782,6 +798,12 @@ extern "C" { #define configSUPPORT_DYNAMIC_ALLOCATION 1 #endif +#ifndef configSTACK_DEPTH_TYPE + /* Defaults to uint16_t for backward compatibility, but can be overridden + in FreeRTOSConfig.h if uint16_t is too restrictive. */ + #define configSTACK_DEPTH_TYPE uint16_t +#endif + /* Sanity check the configuration. */ #if( configUSE_TICKLESS_IDLE != 0 ) #if( INCLUDE_vTaskSuspend != 1 ) @@ -797,6 +819,10 @@ extern "C" { #error configUSE_MUTEXES must be set to 1 to use recursive mutexes #endif +#ifndef configINITIAL_TICK_COUNT + #define configINITIAL_TICK_COUNT 0 +#endif + #if( portTICK_TYPE_IS_ATOMIC == 0 ) /* Either variables of tick type cannot be read atomically, or portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when @@ -917,7 +943,7 @@ typedef struct xSTATIC_TCB UBaseType_t uxDummy5; void *pxDummy6; uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ]; - #if ( portSTACK_GROWTH > 0 ) + #if ( ( portSTACK_GROWTH > 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) ) void *pxDummy8; #endif #if ( portCRITICAL_NESTING_IN_TCB == 1 ) @@ -945,10 +971,14 @@ typedef struct xSTATIC_TCB uint32_t ulDummy18; uint8_t ucDummy19; #endif - #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) + #if( ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) || ( portUSING_MPU_WRAPPERS == 1 ) ) uint8_t uxDummy20; #endif + #if( INCLUDE_xTaskAbortDelay == 1 ) + uint8_t ucDummy21; + #endif + } StaticTask_t; /* diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index 7df92bf..2d87844 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -1,15 +1,38 @@ -/* Default esp-open-sdk FreeRTOSConfig file. +/* + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. + All rights reserved - You can override settings in here by creating your own - FreeRTOSConfig.h file in your program directory. + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - You could just copy this file there and edit it, but it's - recommended you instead define whatever you want to override and - then use #include_next to pick up these defaults. + This file is part of the FreeRTOS distribution. - The "blink" example in "examples/blink" provides an example of how - to do this. + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. + + *************************************************************************** + >>! NOTE: The modification to the GPL is included to allow you to !<< + >>! distribute a combined work that includes FreeRTOS without being !<< + >>! obliged to provide the source code for proprietary components !<< + >>! outside of the FreeRTOS kernel. !<< + *************************************************************************** + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available on the following + link: http://www.freertos.org/a00114.html + + + For esp-open-rtos, you can override settings in here by creating your own + FreeRTOSConfig.h file in your program directory. You could just copy this + file there and edit it, but it's recommended you instead define whatever you + want to override and then use #include_next to pick up + these defaults. The "blink" example in "examples/blink" provides an example + of how to do this. + + 1 tab == 4 spaces! */ + #ifndef __DEFAULT_FREERTOS_CONFIG_H #define __DEFAULT_FREERTOS_CONFIG_H @@ -20,7 +43,7 @@ * application requirements. * * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. * * See http://www.freertos.org/a00110.html. *----------------------------------------------------------*/ @@ -47,7 +70,7 @@ #define configTICK_RATE_HZ ( ( TickType_t ) 100 ) #endif #ifndef configMAX_PRIORITIES -#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 15 ) +#define configMAX_PRIORITIES ( 15 ) #endif #ifndef configMINIMAL_STACK_SIZE #define configMINIMAL_STACK_SIZE ( ( unsigned short )256 ) @@ -108,6 +131,10 @@ #define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) #endif +#ifndef configUSE_NEWLIB_REENTRANT +#define configUSE_NEWLIB_REENTRANT 1 +#endif + /* Set the following definitions to 1 to include the API function, or zero to exclude the API function. */ #ifndef INCLUDE_vTaskPrioritySet @@ -144,5 +171,10 @@ to exclude the API function. */ #define configENABLE_BACKWARD_COMPATIBILITY 0 #endif +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +void vAssertCalled(const char * pcFile, unsigned long ulLine); +#define configASSERT(x) if((x) == 0) vAssertCalled(__FILE__, __LINE__); + #endif /* __DEFAULT_FREERTOS_CONFIG_H */ diff --git a/FreeRTOS/Source/include/StackMacros.h b/FreeRTOS/Source/include/StackMacros.h index 13c6b82..a3f9335 100644 --- a/FreeRTOS/Source/include/StackMacros.h +++ b/FreeRTOS/Source/include/StackMacros.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h index 4f003a0..f6390de 100644 --- a/FreeRTOS/Source/include/croutine.h +++ b/FreeRTOS/Source/include/croutine.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/deprecated_definitions.h b/FreeRTOS/Source/include/deprecated_definitions.h index 4ea816c..de7aef7 100644 --- a/FreeRTOS/Source/include/deprecated_definitions.h +++ b/FreeRTOS/Source/include/deprecated_definitions.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/event_groups.h b/FreeRTOS/Source/include/event_groups.h index 7331c91..81b66ca 100644 --- a/FreeRTOS/Source/include/event_groups.h +++ b/FreeRTOS/Source/include/event_groups.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/list.h b/FreeRTOS/Source/include/list.h index a080d27..e0f5c27 100644 --- a/FreeRTOS/Source/include/list.h +++ b/FreeRTOS/Source/include/list.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -205,7 +205,7 @@ typedef struct xMINI_LIST_ITEM MiniListItem_t; typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ - configLIST_VOLATILE UBaseType_t uxNumberOfItems; + volatile UBaseType_t uxNumberOfItems; ListItem_t * configLIST_VOLATILE pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to listGET_OWNER_OF_NEXT_ENTRY (). */ MiniListItem_t xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ listSECOND_LIST_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h index 8f7500b..fcc9180 100644 --- a/FreeRTOS/Source/include/mpu_prototypes.h +++ b/FreeRTOS/Source/include/mpu_prototypes.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -83,6 +83,7 @@ BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask ); TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer ); BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ); +BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ); void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions ); void MPU_vTaskDelete( TaskHandle_t xTaskToDelete ); void MPU_vTaskDelay( const TickType_t xTicksToDelay ); @@ -124,7 +125,9 @@ BaseType_t MPU_xTaskGetSchedulerState( void ); /* MPU versions of queue.h API function. */ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ); -BaseType_t MPU_xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeek ); +BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); +BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); +BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ); UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ); UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ); void MPU_vQueueDelete( QueueHandle_t xQueue ); diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h index 78f5a9a..76315e0 100644 --- a/FreeRTOS/Source/include/mpu_wrappers.h +++ b/FreeRTOS/Source/include/mpu_wrappers.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -130,7 +130,9 @@ only for ports that are using the MPU. */ /* Map standard queue.h API functions to the MPU equivalents. */ #define xQueueGenericSend MPU_xQueueGenericSend - #define xQueueGenericReceive MPU_xQueueGenericReceive + #define xQueueReceive MPU_xQueueReceive + #define xQueuePeek MPU_xQueuePeek + #define xQueueSemaphoreTake MPU_xQueueSemaphoreTake #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting #define uxQueueSpacesAvailable MPU_uxQueueSpacesAvailable #define vQueueDelete MPU_vQueueDelete @@ -177,8 +179,11 @@ only for ports that are using the MPU. */ #define xEventGroupSync MPU_xEventGroupSync #define vEventGroupDelete MPU_vEventGroupDelete - /* Remove the privileged function macro. */ + /* Remove the privileged function macro, but keep the PRIVILEGED_DATA + macro so applications can place data in privileged access sections + (useful when using statically allocated objects). */ #define PRIVILEGED_FUNCTION + #define PRIVILEGED_DATA __attribute__((section("privileged_data"))) #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ diff --git a/FreeRTOS/Source/include/portable.h b/FreeRTOS/Source/include/portable.h index b9f8be3..5e8303a 100644 --- a/FreeRTOS/Source/include/portable.h +++ b/FreeRTOS/Source/include/portable.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h index 0b63fd8..a08f658 100644 --- a/FreeRTOS/Source/include/projdefs.h +++ b/FreeRTOS/Source/include/projdefs.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index 30be360..bbba834 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -696,12 +696,10 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQ *

  BaseType_t xQueuePeek(
 							 QueueHandle_t xQueue,
-							 void *pvBuffer,
+							 void * const pvBuffer,
 							 TickType_t xTicksToWait
 						 );
* - * This is a macro that calls the xQueueGenericReceive() function. - * * Receive an item from a queue without removing the item from the queue. * The item is received by copy so a buffer of adequate size must be * provided. The number of bytes copied into the buffer was defined when @@ -782,10 +780,10 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQ // ... Rest of task code. }
- * \defgroup xQueueReceive xQueueReceive + * \defgroup xQueuePeek xQueuePeek * \ingroup QueueManagement */ -#define xQueuePeek( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE ) +BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; /** * queue. h @@ -829,8 +827,6 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) PRIV TickType_t xTicksToWait );
* - * This is a macro that calls the xQueueGenericReceive() function. - * * Receive an item from a queue. The item is received by copy so a buffer of * adequate size must be provided. The number of bytes copied into the buffer * was defined when the queue was created. @@ -911,106 +907,7 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) PRIV * \defgroup xQueueReceive xQueueReceive * \ingroup QueueManagement */ -#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE ) - - -/** - * queue. h - *
- BaseType_t xQueueGenericReceive(
-									   QueueHandle_t	xQueue,
-									   void	*pvBuffer,
-									   TickType_t	xTicksToWait
-									   BaseType_t	xJustPeek
-									);
- * - * It is preferred that the macro xQueueReceive() be used rather than calling - * this function directly. - * - * Receive an item from a queue. The item is received by copy so a buffer of - * adequate size must be provided. The number of bytes copied into the buffer - * was defined when the queue was created. - * - * This function must not be used in an interrupt service routine. See - * xQueueReceiveFromISR for an alternative that can. - * - * @param xQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. The time is defined in tick periods so the constant - * portTICK_PERIOD_MS should be used to convert to real time if this is required. - * xQueueGenericReceive() will return immediately if the queue is empty and - * xTicksToWait is 0. - * - * @param xJustPeek When set to true, the item received from the queue is not - * actually removed from the queue - meaning a subsequent call to - * xQueueReceive() will return the same item. When set to false, the item - * being received from the queue is also removed from the queue. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: -
- struct AMessage
- {
-	char ucMessageID;
-	char ucData[ 20 ];
- } xMessage;
-
- QueueHandle_t xQueue;
-
- // Task to create a queue and post a value.
- void vATask( void *pvParameters )
- {
- struct AMessage *pxMessage;
-
-	// Create a queue capable of containing 10 pointers to AMessage structures.
-	// These should be passed by pointer as they contain a lot of data.
-	xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );
-	if( xQueue == 0 )
-	{
-		// Failed to create the queue.
-	}
-
-	// ...
-
-	// Send a pointer to a struct AMessage object.  Don't block if the
-	// queue is already full.
-	pxMessage = & xMessage;
-	xQueueSend( xQueue, ( void * ) &pxMessage, ( TickType_t ) 0 );
-
-	// ... Rest of task code.
- }
-
- // Task to receive from the queue.
- void vADifferentTask( void *pvParameters )
- {
- struct AMessage *pxRxedMessage;
-
-	if( xQueue != 0 )
-	{
-		// Receive a message on the created queue.  Block for 10 ticks if a
-		// message is not immediately available.
-		if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( TickType_t ) 10 ) )
-		{
-			// pcRxedMessage now points to the struct AMessage variable posted
-			// by vATask.
-		}
-	}
-
-	// ... Rest of task code.
- }
- 
- * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeek ) PRIVILEGED_FUNCTION; +BaseType_t xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; /** * queue. h @@ -1560,7 +1457,9 @@ QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) PRIVILEGED_FUNCTION QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION; QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) PRIVILEGED_FUNCTION; QueueHandle_t xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION; +BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION; +void* xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION; /* * For internal use only. Use xSemaphoreTakeMutexRecursive() or diff --git a/FreeRTOS/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h index a674b02..fb76636 100644 --- a/FreeRTOS/Source/include/semphr.h +++ b/FreeRTOS/Source/include/semphr.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -328,7 +328,7 @@ typedef QueueHandle_t SemaphoreHandle_t; * \defgroup xSemaphoreTake xSemaphoreTake * \ingroup Semaphores */ -#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueGenericReceive( ( QueueHandle_t ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE ) +#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueSemaphoreTake( ( xSemaphore ), ( xBlockTime ) ) /** * semphr. h @@ -392,23 +392,23 @@ typedef QueueHandle_t SemaphoreHandle_t; // ... // For some reason due to the nature of the code further calls to - // xSemaphoreTakeRecursive() are made on the same mutex. In real - // code these would not be just sequential calls as this would make - // no sense. Instead the calls are likely to be buried inside - // a more complex call structure. + // xSemaphoreTakeRecursive() are made on the same mutex. In real + // code these would not be just sequential calls as this would make + // no sense. Instead the calls are likely to be buried inside + // a more complex call structure. xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 ); xSemaphoreTakeRecursive( xMutex, ( TickType_t ) 10 ); // The mutex has now been 'taken' three times, so will not be - // available to another task until it has also been given back - // three times. Again it is unlikely that real code would have - // these calls sequentially, but instead buried in a more complex - // call structure. This is just for illustrative purposes. + // available to another task until it has also been given back + // three times. Again it is unlikely that real code would have + // these calls sequentially, but instead buried in a more complex + // call structure. This is just for illustrative purposes. + xSemaphoreGiveRecursive( xMutex ); + xSemaphoreGiveRecursive( xMutex ); xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - // Now the mutex can be taken by other tasks. + // Now the mutex can be taken by other tasks. } else { @@ -1154,6 +1154,17 @@ typedef QueueHandle_t SemaphoreHandle_t; */ #define xSemaphoreGetMutexHolder( xSemaphore ) xQueueGetMutexHolder( ( xSemaphore ) ) +/** + * semphr.h + *
TaskHandle_t xSemaphoreGetMutexHolderFromISR( SemaphoreHandle_t xMutex );
+ * + * If xMutex is indeed a mutex type semaphore, return the current mutex holder. + * If xMutex is not a mutex type semaphore, or the mutex is available (not held + * by a task), return NULL. + * + */ +#define xSemaphoreGetMutexHolderFromISR( xSemaphore ) xQueueGetMutexHolderFromISR( ( xSemaphore ) ) + /** * semphr.h *
UBaseType_t uxSemaphoreGetCount( SemaphoreHandle_t xSemaphore );
diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index d0643c0..c326ead 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -1,5 +1,5 @@ /* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. + FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. All rights reserved VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. @@ -160,6 +160,9 @@ typedef struct xTASK_PARAMETERS UBaseType_t uxPriority; StackType_t *puxStackBuffer; MemoryRegion_t xRegions[ portNUM_CONFIGURABLE_REGIONS ]; + #if ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + StaticTask_t * const pxTaskBuffer; + #endif } TaskParameters_t; /* Used with the uxTaskGetSystemState() function to return the state of each task @@ -269,7 +272,7 @@ is used in assert() statements. */ BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, - uint16_t usStackDepth, + configSTACK_DEPTH_TYPE usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pvCreatedTask @@ -358,11 +361,11 @@ is used in assert() statements. */ */ #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, - const char * const pcName, - const uint16_t usStackDepth, + const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + const configSTACK_DEPTH_TYPE usStackDepth, void * const pvParameters, UBaseType_t uxPriority, - TaskHandle_t * const pxCreatedTask ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + TaskHandle_t * const pxCreatedTask ) PRIVILEGED_FUNCTION; #endif /** @@ -474,12 +477,12 @@ is used in assert() statements. */ */ #if( configSUPPORT_STATIC_ALLOCATION == 1 ) TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode, - const char * const pcName, + const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, - StaticTask_t * const pxTaskBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ + StaticTask_t * const pxTaskBuffer ) PRIVILEGED_FUNCTION; #endif /* configSUPPORT_STATIC_ALLOCATION */ /** @@ -487,6 +490,8 @@ is used in assert() statements. */ *
  BaseType_t xTaskCreateRestricted( TaskParameters_t *pxTaskDefinition, TaskHandle_t *pxCreatedTask );
* + * Only available when configSUPPORT_DYNAMIC_ALLOCATION is set to 1. + * * xTaskCreateRestricted() should only be used in systems that include an MPU * implementation. * @@ -494,6 +499,9 @@ is used in assert() statements. */ * The function parameters define the memory regions and associated access * permissions allocated to the task. * + * See xTaskCreateRestrictedStatic() for a version that does not use any + * dynamic memory allocation. + * * @param pxTaskDefinition Pointer to a structure that contains a member * for each of the normal xTaskCreate() parameters (see the xTaskCreate() API * documentation) plus an optional stack buffer and the memory region @@ -553,6 +561,94 @@ TaskHandle_t xHandle; BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) PRIVILEGED_FUNCTION; #endif +/** + * task. h + *
+ BaseType_t xTaskCreateRestrictedStatic( TaskParameters_t *pxTaskDefinition, TaskHandle_t *pxCreatedTask );
+ * + * Only available when configSUPPORT_STATIC_ALLOCATION is set to 1. + * + * xTaskCreateRestrictedStatic() should only be used in systems that include an + * MPU implementation. + * + * Internally, within the FreeRTOS implementation, tasks use two blocks of + * memory. The first block is used to hold the task's data structures. The + * second block is used by the task as its stack. If a task is created using + * xTaskCreateRestricted() then the stack is provided by the application writer, + * and the memory used to hold the task's data structure is automatically + * dynamically allocated inside the xTaskCreateRestricted() function. If a task + * is created using xTaskCreateRestrictedStatic() then the application writer + * must provide the memory used to hold the task's data structures too. + * xTaskCreateRestrictedStatic() therefore allows a memory protected task to be + * created without using any dynamic memory allocation. + * + * @param pxTaskDefinition Pointer to a structure that contains a member + * for each of the normal xTaskCreate() parameters (see the xTaskCreate() API + * documentation) plus an optional stack buffer and the memory region + * definitions. If configSUPPORT_STATIC_ALLOCATION is set to 1 the structure + * contains an additional member, which is used to point to a variable of type + * StaticTask_t - which is then used to hold the task's data structure. + * + * @param pxCreatedTask Used to pass back a handle by which the created task + * can be referenced. + * + * @return pdPASS if the task was successfully created and added to a ready + * list, otherwise an error code defined in the file projdefs.h + * + * Example usage: +
+// Create an TaskParameters_t structure that defines the task to be created.
+// The StaticTask_t variable is only included in the structure when
+// configSUPPORT_STATIC_ALLOCATION is set to 1.  The PRIVILEGED_DATA macro can
+// be used to force the variable into the RTOS kernel's privileged data area.
+static PRIVILEGED_DATA StaticTask_t xTaskBuffer;
+static const TaskParameters_t xCheckTaskParameters =
+{
+	vATask,		// pvTaskCode - the function that implements the task.
+	"ATask",	// pcName - just a text name for the task to assist debugging.
+	100,		// usStackDepth	- the stack size DEFINED IN WORDS.
+	NULL,		// pvParameters - passed into the task function as the function parameters.
+	( 1UL | portPRIVILEGE_BIT ),// uxPriority - task priority, set the portPRIVILEGE_BIT if the task should run in a privileged state.
+	cStackBuffer,// puxStackBuffer - the buffer to be used as the task stack.
+
+	// xRegions - Allocate up to three separate memory regions for access by
+	// the task, with appropriate access permissions.  Different processors have
+	// different memory alignment requirements - refer to the FreeRTOS documentation
+	// for full information.
+	{
+		// Base address					Length	Parameters
+        { cReadWriteArray,				32,		portMPU_REGION_READ_WRITE },
+        { cReadOnlyArray,				32,		portMPU_REGION_READ_ONLY },
+        { cPrivilegedOnlyAccessArray,	128,	portMPU_REGION_PRIVILEGED_READ_WRITE }
+	}
+
+	&xTaskBuffer; // Holds the task's data structure.
+};
+
+int main( void )
+{
+TaskHandle_t xHandle;
+
+	// Create a task from the const structure defined above.  The task handle
+	// is requested (the second parameter is not NULL) but in this case just for
+	// demonstration purposes as its not actually used.
+	xTaskCreateRestricted( &xRegTest1Parameters, &xHandle );
+
+	// Start the scheduler.
+	vTaskStartScheduler();
+
+	// Will only get here if there was insufficient memory to create the idle
+	// and/or timer task.
+	for( ;; );
+}
+   
+ * \defgroup xTaskCreateRestrictedStatic xTaskCreateRestrictedStatic + * \ingroup Tasks + */ +#if( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) + BaseType_t xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) PRIVILEGED_FUNCTION; +#endif + /** * task. h *
@@ -2141,14 +2237,14 @@ void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, TickType_t xTi
  * Removes a task from both the specified event list and the list of blocked
  * tasks, and places it on a ready queue.
  *
- * xTaskRemoveFromEventList()/xTaskRemoveFromUnorderedEventList() will be called
+ * xTaskRemoveFromEventList()/vTaskRemoveFromUnorderedEventList() will be called
  * if either an event occurs to unblock a task, or the block timeout period
  * expires.
  *
  * xTaskRemoveFromEventList() is used when the event list is in task priority
  * order.  It removes the list item from the head of the event list as that will
  * have the highest priority owning task of all the tasks on the event list.
- * xTaskRemoveFromUnorderedEventList() is used when the event list is not
+ * vTaskRemoveFromUnorderedEventList() is used when the event list is not
  * ordered and the event list items hold something other than the owning tasks
  * priority.  In this case the event list item value is updated to the value
  * passed in the xItemValue parameter.
@@ -2157,7 +2253,7 @@ void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, TickType_t xTi
  * making the call, otherwise pdFALSE.
  */
 BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList ) PRIVILEGED_FUNCTION;
-BaseType_t xTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue ) PRIVILEGED_FUNCTION;
+void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue ) PRIVILEGED_FUNCTION;
 
 /*
  * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS ONLY
@@ -2207,7 +2303,7 @@ BaseType_t xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION;
  * Raises the priority of the mutex holder to that of the calling task should
  * the mutex holder have a priority less than the calling task.
  */
-void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION;
+BaseType_t xTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION;
 
 /*
  * Set the priority of a task back to its proper priority in the case that it
@@ -2215,6 +2311,16 @@ void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTIO
  */
 BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION;
 
+/*
+ * If a higher priority task attempting to obtain a mutex caused a lower
+ * priority task to inherit the higher priority task's priority - but the higher
+ * priority task then timed out without obtaining the mutex, then the lower
+ * priority task will disinherit the priority again - but only down as far as
+ * the highest priority task that is still waiting for the mutex (if there were
+ * more than one task waiting for the mutex).
+ */
+void vTaskPriorityDisinheritAfterTimeout( TaskHandle_t const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask ) PRIVILEGED_FUNCTION;
+
 /*
  * Get the uxTCBNumber assigned to the task referenced by the xTask parameter.
  */
@@ -2258,6 +2364,13 @@ eSleepModeStatus eTaskConfirmSleepModeStatus( void ) PRIVILEGED_FUNCTION;
  */
 void *pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION;
 
+/*
+ * For internal use only.  Same as vTaskSetTimeOutState(), but without a critial
+ * section.
+ */
+void vTaskInternalSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION;
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/FreeRTOS/Source/include/timers.h b/FreeRTOS/Source/include/timers.h
index 798c955..449e49c 100644
--- a/FreeRTOS/Source/include/timers.h
+++ b/FreeRTOS/Source/include/timers.h
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -75,10 +75,10 @@
 	#error "include FreeRTOS.h must appear in source files before include timers.h"
 #endif
 
-/*lint -e537 This headers are only multiply included if the application code
+/*lint -save -e537 This headers are only multiply included if the application code
 happens to also be including task.h. */
 #include "task.h"
-/*lint +e537 */
+/*lint -restore */
 
 #ifdef __cplusplus
 extern "C" {
@@ -266,11 +266,11 @@ typedef void (*PendedFunction_t)( void *, uint32_t );
  * @endverbatim
  */
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
-	TimerHandle_t xTimerCreate(	const char * const pcTimerName,
+	TimerHandle_t xTimerCreate(	const char * const pcTimerName,			/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 								const TickType_t xTimerPeriodInTicks,
 								const UBaseType_t uxAutoReload,
 								void * const pvTimerID,
-								TimerCallbackFunction_t pxCallbackFunction ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+								TimerCallbackFunction_t pxCallbackFunction ) PRIVILEGED_FUNCTION;
 #endif
 
 /**
@@ -396,12 +396,12 @@ typedef void (*PendedFunction_t)( void *, uint32_t );
  * @endverbatim
  */
 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
-	TimerHandle_t xTimerCreateStatic(	const char * const pcTimerName,
+	TimerHandle_t xTimerCreateStatic(	const char * const pcTimerName,			/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 										const TickType_t xTimerPeriodInTicks,
 										const UBaseType_t uxAutoReload,
 										void * const pvTimerID,
 										TimerCallbackFunction_t pxCallbackFunction,
-										StaticTimer_t *pxTimerBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+										StaticTimer_t *pxTimerBuffer ) PRIVILEGED_FUNCTION;
 #endif /* configSUPPORT_STATIC_ALLOCATION */
 
 /**
diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c
index 5e207c1..f890e87 100644
--- a/FreeRTOS/Source/list.c
+++ b/FreeRTOS/Source/list.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c
index 087f778..d6b2a89 100644
--- a/FreeRTOS/Source/portable/esp8266/port.c
+++ b/FreeRTOS/Source/portable/esp8266/port.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 
@@ -73,10 +73,12 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 #include "FreeRTOS.h"
 #include "task.h"
+#include "queue.h"
 #include "xtensa_rtos.h"
 
 unsigned cpu_sr;
@@ -91,6 +93,13 @@ char level1_int_disabled;
 */
 void *xPortSupervisorStackPointer;
 
+void vAssertCalled(const char * pcFile, unsigned long ulLine)
+{
+    printf("rtos assert %s %lu\n", pcFile, ulLine);
+    abort();
+    //for (;;);
+}
+
 /*
  * Stack initialization
  */
@@ -100,7 +109,7 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, TaskFunctio
     portSTACK_TYPE *sp, *tp;
 
     /* Create interrupt stack frame aligned to 16 byte boundary */
-    sp = (portSTACK_TYPE*) (((uint32_t)(pxTopOfStack+1) - XT_CP_SIZE - XT_STK_FRMSZ) & ~0xf);
+    sp = (portSTACK_TYPE*) (((uint32_t)(pxTopOfStack + 1) - XT_CP_SIZE - XT_STK_FRMSZ) & ~0xf);
 
     /* Clear the entire frame (do not use memset() because we don't depend on C library) */
     for (tp = sp; tp <= pxTopOfStack; ++tp)
@@ -121,30 +130,29 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, TaskFunctio
 static int pending_soft_sv;
 static int pending_maclayer_sv;
 
-/* PendSV is called in place of vPortYield() to request a supervisor
-   call.
-
-   The portYIELD macro calls pendSV if it's a software request.
-
-   The libpp and libudhcp libraries also call this function, assuming
-   always with arg==2 (but maybe sometimes with arg==1?)
-
-   In the original esp_iot_rtos_sdk implementation, arg was a char. Using an
-   enum is ABI-compatible, though.
-*/
+/*
+ * The portYIELD macro calls PendSV with SVC_Software to set a pending interrupt
+ * service callback that allows a task switch, and this occur when interrupts
+ * are enabled which might be after exiting the critical region below.
+ *
+ * The wdev NMI calls this function from pp_post() with SVC_MACLayer to set a
+ * pending interrupt service callback which flushs the queue of messages that
+ * the NMI stashes away. This interrupt will be triggered after the return from
+ * the NMI and when interrupts are enabled. The NMI can not touch the FreeRTOS
+ * queues itself. The NMI must not touch the interrupt masks so that path must
+ * not call vPortEnterCritical and vPortExitCritical.
+ */
 void IRAM PendSV(enum SVC_ReqType req)
 {
-	vPortEnterCritical();
-
-	if(req == SVC_Software)
-	{
-		pending_soft_sv = 1;
-	}
-	else if(req == SVC_MACLayer)
-		pending_maclayer_sv= 1;
-
-	WSR(BIT(INUM_SOFT), interrupt);
-	vPortExitCritical();
+    if (req == SVC_Software) {
+        vPortEnterCritical();
+        pending_soft_sv = 1;
+        WSR(BIT(INUM_SOFT), interrupt);
+        vPortExitCritical();
+    } else if (req == SVC_MACLayer) {
+        pending_maclayer_sv= 1;
+        WSR(BIT(INUM_SOFT), interrupt);
+    }
 }
 
 /* This MAC layer ISR handler is defined in libpp.a, and is called
@@ -155,29 +163,22 @@ extern portBASE_TYPE sdk_MacIsrSigPostDefHdl(void);
 
 void IRAM SV_ISR(void *arg)
 {
-	portBASE_TYPE xHigherPriorityTaskWoken=pdFALSE ;
-	if(pending_maclayer_sv)
-	{
-		xHigherPriorityTaskWoken = sdk_MacIsrSigPostDefHdl();
-		pending_maclayer_sv = 0;
-	}
-	if( xHigherPriorityTaskWoken || pending_soft_sv)
-	{
-	    sdk__xt_timer_int1();
-	    pending_soft_sv = 0;
-	}
+    portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE ;
+    if (pending_maclayer_sv) {
+        xHigherPriorityTaskWoken = sdk_MacIsrSigPostDefHdl();
+        pending_maclayer_sv = 0;
+    }
+    if (xHigherPriorityTaskWoken || pending_soft_sv) {
+        sdk__xt_timer_int1();
+        pending_soft_sv = 0;
+    }
 }
 
 void xPortSysTickHandle (void)
 {
-	//CloseNMI();
-	{
-		if(xTaskIncrementTick() !=pdFALSE )
-		{
-			vTaskSwitchContext();
-		}
-	}
-	//OpenNMI();
+    if (xTaskIncrementTick() != pdFALSE) {
+        vTaskSwitchContext();
+    }
 }
 
 /*
@@ -221,8 +222,10 @@ size_t xPortGetFreeHeapSize( void )
     uint32_t brk_val = (uint32_t) sbrk(0);
 
     intptr_t sp = (intptr_t)xPortSupervisorStackPointer;
-    if(sp == 0) /* scheduler not started */
+    if (sp == 0) {
+        /* scheduler not started */
         SP(sp);
+    }
     return sp - brk_val + mi.fordblks;
 }
 
@@ -233,8 +236,6 @@ void vPortEndScheduler( void )
 
 /*-----------------------------------------------------------*/
 
-/* Each task maintains its own interrupt status in the critical nesting
-variable. */
 static unsigned portBASE_TYPE uxCriticalNesting = 0;
 
 /* These nested vPortEnter/ExitCritical macros are called by SDK
@@ -243,26 +244,42 @@ static unsigned portBASE_TYPE uxCriticalNesting = 0;
  * It may be possible to replace the global nesting count variable
  * with a save/restore of interrupt level, although it's difficult as
  * the functions have no return value.
+ *
+ * These should not be called from the NMI in regular operation and
+ * the NMI must not touch the interrupt mask, but that might occur in
+ * exceptional paths such as aborts and debug code.
  */
-void IRAM vPortEnterCritical( void )
-{
+void IRAM vPortEnterCritical(void) {
     portDISABLE_INTERRUPTS();
     uxCriticalNesting++;
 }
+
 /*-----------------------------------------------------------*/
 
-void IRAM vPortExitCritical( void )
-{
+void IRAM vPortExitCritical(void) {
     uxCriticalNesting--;
-    if( uxCriticalNesting == 0 )
-	portENABLE_INTERRUPTS();
+    if (uxCriticalNesting == 0)
+        portENABLE_INTERRUPTS();
 }
 
-/* Backward compatibility with libmain.a and libpp.a and can remove when these are open. */
-signed portBASE_TYPE xTaskGenericCreate( TaskFunction_t pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, TaskHandle_t *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const MemoryRegion_t * const xRegions )
-{
-    (void)puxStackBuffer; (void)xRegions;
-    return xTaskCreate( pxTaskCode, (const char * const)pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask);
+/* Backward compatibility, for the sdk library. */
+
+signed portBASE_TYPE xTaskGenericCreate(TaskFunction_t pxTaskCode,
+                                        const signed char * const pcName,
+                                        unsigned short usStackDepth,
+                                        void *pvParameters,
+                                        unsigned portBASE_TYPE uxPriority,
+                                        TaskHandle_t *pxCreatedTask,
+                                        portSTACK_TYPE *puxStackBuffer,
+                                        const MemoryRegion_t * const xRegions) {
+    (void)puxStackBuffer;
+    (void)xRegions;
+    return xTaskCreate(pxTaskCode, (const char * const)pcName, usStackDepth,
+                       pvParameters, uxPriority, pxCreatedTask);
 }
 
-
+BaseType_t xQueueGenericReceive(QueueHandle_t xQueue, void * const pvBuffer,
+                                TickType_t xTicksToWait, const BaseType_t xJustPeeking) {
+    configASSERT(xJustPeeking == 0);
+    return xQueueReceive(xQueue, pvBuffer, xTicksToWait);
+}
diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h
index 68d5e57..0b18b47 100644
--- a/FreeRTOS/Source/portable/esp8266/portmacro.h
+++ b/FreeRTOS/Source/portable/esp8266/portmacro.h
@@ -1,65 +1,29 @@
 /*
-    FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
+    All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 
-    ***************************************************************************
-     *                                                                       *
-     *    FreeRTOS provides completely free yet professionally developed,    *
-     *    robust, strictly quality controlled, supported, and cross          *
-     *    platform software that has become a de facto standard.             *
-     *                                                                       *
-     *    Help yourself get started quickly and support the FreeRTOS         *
-     *    project by purchasing a FreeRTOS tutorial book, reference          *
-     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
-     *                                                                       *
-     *    Thank you!                                                         *
-     *                                                                       *
-    ***************************************************************************
-
     This file is part of the FreeRTOS distribution.
 
     FreeRTOS is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License (version 2) as published by the
-    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
 
-    >>! NOTE: The modification to the GPL is included to allow you to distribute
-    >>! a combined work that includes FreeRTOS without being obliged to provide
-    >>! the source code for proprietary components outside of the FreeRTOS
-    >>! kernel.
+    ***************************************************************************
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<
+    >>!   obliged to provide the source code for proprietary components     !<<
+    >>!   outside of the FreeRTOS kernel.                                   !<<
+    ***************************************************************************
 
     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-    FOR A PARTICULAR PURPOSE.  Full license text is available from the following
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following
     link: http://www.freertos.org/a00114.html
 
     1 tab == 4 spaces!
 
-    ***************************************************************************
-     *                                                                       *
-     *    Having a problem?  Start by reading the FAQ "My application does   *
-     *    not run, what could be wrong?"                                     *
-     *                                                                       *
-     *    http://www.FreeRTOS.org/FAQHelp.html                               *
-     *                                                                       *
-    ***************************************************************************
-
-    http://www.FreeRTOS.org - Documentation, books, training, latest versions,
-    license and Real Time Engineers Ltd. contact details.
-
-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS
-    compatible FAT file system, and our tiny thread aware UDP/IP stack.
-
-    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
-    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS
-    licenses offer ticketed support, indemnification and middleware.
-
-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety
-    engineered and independently SIL3 certified version for use in safety and
-    mission critical applications that require provable dependability.
-
-    1 tab == 4 spaces!
 */
 
 
@@ -92,16 +56,15 @@ extern "C" {
 #define portDOUBLE              double
 #define portLONG                long
 #define portSHORT               short
-#define portSTACK_TYPE          unsigned portLONG
+#define portSTACK_TYPE          uint32_t
 #define portBASE_TYPE           long
-#define portPOINTER_SIZE_TYPE   unsigned portLONG
 
 typedef portSTACK_TYPE StackType_t;
 typedef portBASE_TYPE BaseType_t;
 typedef unsigned portBASE_TYPE UBaseType_t;
 
 typedef uint32_t TickType_t;
-#define portMAX_DELAY ( TickType_t ) 0xffffffff
+#define portMAX_DELAY ( TickType_t ) 0xffffffffUL
 
 /* Architecture specifics. */
 #define portSTACK_GROWTH			( -1 )
@@ -156,6 +119,9 @@ extern unsigned cpu_sr;
    prefer to _xt_disable_interrupts & _xt_enable_interrupts and store
    the ps value in a local variable - that approach is recursive-safe
    and generally better.
+
+   The NMI must not touch the interrupt mask and it should not in
+   regular operation, but there is a guard here just in case.
 */
 inline static __attribute__((always_inline)) void portDISABLE_INTERRUPTS(void)
 {
@@ -185,6 +151,10 @@ not necessary for to use this port.  They are defined so the common demo files
 (which build with all the ports) will build. */
 #define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
 #define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
+
+/* FreeRTOS API functions should not be called from the NMI handler. */
+#define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() configASSERT(sdk_NMIIrqIsOn == 0)
+
 /*-----------------------------------------------------------*/
 
 #ifdef __cplusplus
diff --git a/FreeRTOS/Source/portable/readme.txt b/FreeRTOS/Source/portable/readme.txt
new file mode 100644
index 0000000..b68d2d5
--- /dev/null
+++ b/FreeRTOS/Source/portable/readme.txt
@@ -0,0 +1,20 @@
+Each real time kernel port consists of three files that contain the core kernel
+components and are common to every port, and one or more files that are
+specific to a particular microcontroller and/or compiler.
+
+
++ The FreeRTOS/Source/Portable/MemMang directory contains the five sample
+memory allocators as described on the http://www.FreeRTOS.org WEB site.
+
++ The other directories each contain files specific to a particular
+microcontroller or compiler, where the directory name denotes the compiler
+specific files the directory contains.
+
+
+
+For example, if you are interested in the [compiler] port for the [architecture]
+microcontroller, then the port specific files are contained in
+FreeRTOS/Source/Portable/[compiler]/[architecture] directory.  If this is the
+only port you are interested in then all the other directories can be
+ignored.
+
diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c
index ce623be..d076022 100644
--- a/FreeRTOS/Source/queue.c
+++ b/FreeRTOS/Source/queue.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -255,6 +255,16 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT
 	static void prvInitialiseMutex( Queue_t *pxNewQueue ) PRIVILEGED_FUNCTION;
 #endif
 
+#if( configUSE_MUTEXES == 1 )
+	/*
+	 * If a task waiting for a mutex causes the mutex holder to inherit a
+	 * priority, but the waiting task times out, then the holder should
+	 * disinherit the priority - but only down to the highest priority of any
+	 * other tasks that are waiting for the same mutex.  This function returns
+	 * that priority.
+	 */
+	static UBaseType_t prvGetDisinheritPriorityAfterTimeout( const Queue_t * const pxQueue ) PRIVILEGED_FUNCTION;
+#endif
 /*-----------------------------------------------------------*/
 
 /*
@@ -374,6 +384,10 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
 			prvInitialiseNewQueue( uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue );
 		}
+		else
+		{
+			traceQUEUE_CREATE_FAILED( ucQueueType );
+		}
 
 		return pxNewQueue;
 	}
@@ -422,6 +436,10 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
 			prvInitialiseNewQueue( uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue );
 		}
+		else
+		{
+			traceQUEUE_CREATE_FAILED( ucQueueType );
+		}
 
 		return pxNewQueue;
 	}
@@ -567,6 +585,32 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT
 #endif
 /*-----------------------------------------------------------*/
 
+#if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
+
+	void* xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore )
+	{
+	void *pxReturn;
+
+		configASSERT( xSemaphore );
+
+		/* Mutexes cannot be used in interrupt service routines, so the mutex
+		holder should not change in an ISR, and therefore a critical section is
+		not required here. */
+		if( ( ( Queue_t * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX )
+		{
+			pxReturn = ( void * ) ( ( Queue_t * ) xSemaphore )->pxMutexHolder;
+		}
+		else
+		{
+			pxReturn = NULL;
+		}
+
+		return pxReturn;
+	} /*lint !e818 xSemaphore cannot be a pointer to const because it is a typedef. */
+
+#endif
+/*-----------------------------------------------------------*/
+
 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
 
 	BaseType_t xQueueGiveMutexRecursive( QueueHandle_t xMutex )
@@ -643,7 +687,7 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT
 		}
 		else
 		{
-			xReturn = xQueueGenericReceive( pxMutex, NULL, xTicksToWait, pdFALSE );
+			xReturn = xQueueSemaphoreTake( pxMutex, xTicksToWait );
 
 			/* pdPASS will only be returned if the mutex was successfully
 			obtained.  The calling task may have entered the Blocked state
@@ -855,7 +899,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 				{
 					/* The queue was full and a block time was specified so
 					configure the timeout structure. */
-					vTaskSetTimeOutState( &xTimeOut );
+					vTaskInternalSetTimeOutState( &xTimeOut );
 					xEntryTimeSet = pdTRUE;
 				}
 				else
@@ -1127,7 +1171,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 			can be assumed there is no mutex holder and no need to determine if
 			priority disinheritance is needed.  Simply increase the count of
 			messages (semaphores) available. */
-			pxQueue->uxMessagesWaiting = uxMessagesWaiting + 1;
+			pxQueue->uxMessagesWaiting = uxMessagesWaiting + ( UBaseType_t ) 1;
 
 			/* The event list is not altered if the queue is locked.  This will
 			be done when the queue is unlocked later. */
@@ -1234,21 +1278,27 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 }
 /*-----------------------------------------------------------*/
 
-BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeeking )
+BaseType_t xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait )
 {
 BaseType_t xEntryTimeSet = pdFALSE;
 TimeOut_t xTimeOut;
-int8_t *pcOriginalReadPosition;
 Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
-	configASSERT( pxQueue );
-	configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
+	/* Check the pointer is not NULL. */
+	configASSERT( ( pxQueue ) );
+
+	/* The buffer into which data is received can only be NULL if the data size
+	is zero (so no data is copied into the buffer. */
+	configASSERT( !( ( ( pvBuffer ) == NULL ) && ( ( pxQueue )->uxItemSize != ( UBaseType_t ) 0U ) ) );
+
+	/* Cannot block if the scheduler is suspended. */
 	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
 	{
 		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
 	}
 	#endif
 
+
 	/* This function relaxes the coding standard somewhat to allow return
 	statements within the function itself.  This is done in the interest
 	of execution time efficiency. */
@@ -1263,44 +1313,19 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 			must be the highest priority task wanting to access the queue. */
 			if( uxMessagesWaiting > ( UBaseType_t ) 0 )
 			{
-				/* Remember the read position in case the queue is only being
-				peeked. */
-				pcOriginalReadPosition = pxQueue->u.pcReadFrom;
-
+				/* Data available, remove one item. */
 				prvCopyDataFromQueue( pxQueue, pvBuffer );
+				traceQUEUE_RECEIVE( pxQueue );
+				pxQueue->uxMessagesWaiting = uxMessagesWaiting - ( UBaseType_t ) 1;
 
-				if( xJustPeeking == pdFALSE )
+				/* There is now space in the queue, were any tasks waiting to
+				post to the queue?  If so, unblock the highest priority waiting
+				task. */
+				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 				{
-					traceQUEUE_RECEIVE( pxQueue );
-
-					/* Actually removing data, not just peeking. */
-					pxQueue->uxMessagesWaiting = uxMessagesWaiting - 1;
-
-					#if ( configUSE_MUTEXES == 1 )
+					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
 					{
-						if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )
-						{
-							/* Record the information required to implement
-							priority inheritance should it become necessary. */
-							pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */
-						}
-						else
-						{
-							mtCOVERAGE_TEST_MARKER();
-						}
-					}
-					#endif /* configUSE_MUTEXES */
-
-					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
-					{
-						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
-						{
-							queueYIELD_IF_USING_PREEMPTION();
-						}
-						else
-						{
-							mtCOVERAGE_TEST_MARKER();
-						}
+						queueYIELD_IF_USING_PREEMPTION();
 					}
 					else
 					{
@@ -1309,30 +1334,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 				}
 				else
 				{
-					traceQUEUE_PEEK( pxQueue );
-
-					/* The data is not being removed, so reset the read
-					pointer. */
-					pxQueue->u.pcReadFrom = pcOriginalReadPosition;
-
-					/* The data is being left in the queue, so see if there are
-					any other tasks waiting for the data. */
-					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
-					{
-						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
-						{
-							/* The task waiting has a higher priority than this task. */
-							queueYIELD_IF_USING_PREEMPTION();
-						}
-						else
-						{
-							mtCOVERAGE_TEST_MARKER();
-						}
-					}
-					else
-					{
-						mtCOVERAGE_TEST_MARKER();
-					}
+					mtCOVERAGE_TEST_MARKER();
 				}
 
 				taskEXIT_CRITICAL();
@@ -1352,7 +1354,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 				{
 					/* The queue was empty and a block time was specified so
 					configure the timeout structure. */
-					vTaskSetTimeOutState( &xTimeOut );
+					vTaskInternalSetTimeOutState( &xTimeOut );
 					xEntryTimeSet = pdTRUE;
 				}
 				else
@@ -1373,6 +1375,182 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 		/* Update the timeout state to see if it has expired yet. */
 		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
 		{
+			/* The timeout has not expired.  If the queue is still empty place
+			the task on the list of tasks waiting to receive from the queue. */
+			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
+			{
+				traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue );
+				vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );
+				prvUnlockQueue( pxQueue );
+				if( xTaskResumeAll() == pdFALSE )
+				{
+					portYIELD_WITHIN_API();
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
+			}
+			else
+			{
+				/* The queue contains data again.  Loop back to try and read the
+				data. */
+				prvUnlockQueue( pxQueue );
+				( void ) xTaskResumeAll();
+			}
+		}
+		else
+		{
+			/* Timed out.  If there is no data in the queue exit, otherwise loop
+			back and attempt to read the data. */
+			prvUnlockQueue( pxQueue );
+			( void ) xTaskResumeAll();
+
+			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
+			{
+				traceQUEUE_RECEIVE_FAILED( pxQueue );
+				return errQUEUE_EMPTY;
+			}
+			else
+			{
+				mtCOVERAGE_TEST_MARKER();
+			}
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait )
+{
+BaseType_t xEntryTimeSet = pdFALSE;
+TimeOut_t xTimeOut;
+Queue_t * const pxQueue = ( Queue_t * ) xQueue;
+
+#if( configUSE_MUTEXES == 1 )
+	BaseType_t xInheritanceOccurred = pdFALSE;
+#endif
+
+	/* Check the queue pointer is not NULL. */
+	configASSERT( ( pxQueue ) );
+
+	/* Check this really is a semaphore, in which case the item size will be
+	0. */
+	configASSERT( pxQueue->uxItemSize == 0 );
+
+	/* Cannot block if the scheduler is suspended. */
+	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
+	{
+		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
+	}
+	#endif
+
+
+	/* This function relaxes the coding standard somewhat to allow return
+	statements within the function itself.  This is done in the interest
+	of execution time efficiency. */
+
+	for( ;; )
+	{
+		taskENTER_CRITICAL();
+		{
+			/* Semaphores are queues with an item size of 0, and where the
+			number of messages in the queue is the semaphore's count value. */
+			const UBaseType_t uxSemaphoreCount = pxQueue->uxMessagesWaiting;
+
+			/* Is there data in the queue now?  To be running the calling task
+			must be the highest priority task wanting to access the queue. */
+			if( uxSemaphoreCount > ( UBaseType_t ) 0 )
+			{
+				traceQUEUE_RECEIVE( pxQueue );
+
+				/* Semaphores are queues with a data size of zero and where the
+				messages waiting is the semaphore's count.  Reduce the count. */
+				pxQueue->uxMessagesWaiting = uxSemaphoreCount - ( UBaseType_t ) 1;
+
+				#if ( configUSE_MUTEXES == 1 )
+				{
+					if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )
+					{
+						/* Record the information required to implement
+						priority inheritance should it become necessary. */
+						pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */
+					}
+					else
+					{
+						mtCOVERAGE_TEST_MARKER();
+					}
+				}
+				#endif /* configUSE_MUTEXES */
+
+				/* Check to see if other tasks are blocked waiting to give the
+				semaphore, and if so, unblock the highest priority such task. */
+				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
+				{
+					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
+					{
+						queueYIELD_IF_USING_PREEMPTION();
+					}
+					else
+					{
+						mtCOVERAGE_TEST_MARKER();
+					}
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
+
+				taskEXIT_CRITICAL();
+				return pdPASS;
+			}
+			else
+			{
+				if( xTicksToWait == ( TickType_t ) 0 )
+				{
+					/* For inheritance to have occurred there must have been an
+					initial timeout, and an adjusted timeout cannot become 0, as
+					if it were 0 the function would have exited. */
+					#if( configUSE_MUTEXES == 1 )
+					{
+						configASSERT( xInheritanceOccurred == pdFALSE );
+					}
+					#endif /* configUSE_MUTEXES */
+
+					/* The semaphore count was 0 and no block time is specified
+					(or the block time has expired) so exit now. */
+					taskEXIT_CRITICAL();
+					traceQUEUE_RECEIVE_FAILED( pxQueue );
+					return errQUEUE_EMPTY;
+				}
+				else if( xEntryTimeSet == pdFALSE )
+				{
+					/* The semaphore count was 0 and a block time was specified
+					so configure the timeout structure ready to block. */
+					vTaskInternalSetTimeOutState( &xTimeOut );
+					xEntryTimeSet = pdTRUE;
+				}
+				else
+				{
+					/* Entry time was already set. */
+					mtCOVERAGE_TEST_MARKER();
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		/* Interrupts and other tasks can give to and take from the semaphore
+		now the critical section has been exited. */
+
+		vTaskSuspendAll();
+		prvLockQueue( pxQueue );
+
+		/* Update the timeout state to see if it has expired yet. */
+		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
+		{
+			/* A block time is specified and not expired.  If the semaphore
+			count is 0 then enter the Blocked state to wait for a semaphore to
+			become available.  As semaphores are implemented with queues the
+			queue being empty is equivalent to the semaphore count being 0. */
 			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
 			{
 				traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue );
@@ -1383,7 +1561,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 					{
 						taskENTER_CRITICAL();
 						{
-							vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder );
+							xInheritanceOccurred = xTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder );
 						}
 						taskEXIT_CRITICAL();
 					}
@@ -1407,13 +1585,193 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 			}
 			else
 			{
-				/* Try again. */
+				/* There was no timeout and the semaphore count was not 0, so
+				attempt to take the semaphore again. */
 				prvUnlockQueue( pxQueue );
 				( void ) xTaskResumeAll();
 			}
 		}
 		else
 		{
+			/* Timed out. */
+			prvUnlockQueue( pxQueue );
+			( void ) xTaskResumeAll();
+
+			/* If the semaphore count is 0 exit now as the timeout has
+			expired.  Otherwise return to attempt to take the semaphore that is
+			known to be available.  As semaphores are implemented by queues the
+			queue being empty is equivalent to the semaphore count being 0. */
+			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
+			{
+				#if ( configUSE_MUTEXES == 1 )
+				{
+					/* xInheritanceOccurred could only have be set if
+					pxQueue->uxQueueType == queueQUEUE_IS_MUTEX so no need to
+					test the mutex type again to check it is actually a mutex. */
+					if( xInheritanceOccurred != pdFALSE )
+					{
+						taskENTER_CRITICAL();
+						{
+							UBaseType_t uxHighestWaitingPriority;
+
+							/* This task blocking on the mutex caused another
+							task to inherit this task's priority.  Now this task
+							has timed out the priority should be disinherited
+							again, but only as low as the next highest priority
+							task that is waiting for the same mutex. */
+							uxHighestWaitingPriority = prvGetDisinheritPriorityAfterTimeout( pxQueue );
+							vTaskPriorityDisinheritAfterTimeout( ( void * ) pxQueue->pxMutexHolder, uxHighestWaitingPriority );
+						}
+						taskEXIT_CRITICAL();
+					}
+				}
+				#endif /* configUSE_MUTEXES */
+
+				traceQUEUE_RECEIVE_FAILED( pxQueue );
+				return errQUEUE_EMPTY;
+			}
+			else
+			{
+				mtCOVERAGE_TEST_MARKER();
+			}
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait )
+{
+BaseType_t xEntryTimeSet = pdFALSE;
+TimeOut_t xTimeOut;
+int8_t *pcOriginalReadPosition;
+Queue_t * const pxQueue = ( Queue_t * ) xQueue;
+
+	/* Check the pointer is not NULL. */
+	configASSERT( ( pxQueue ) );
+
+	/* The buffer into which data is received can only be NULL if the data size
+	is zero (so no data is copied into the buffer. */
+	configASSERT( !( ( ( pvBuffer ) == NULL ) && ( ( pxQueue )->uxItemSize != ( UBaseType_t ) 0U ) ) );
+
+	/* Cannot block if the scheduler is suspended. */
+	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
+	{
+		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
+	}
+	#endif
+
+
+	/* This function relaxes the coding standard somewhat to allow return
+	statements within the function itself.  This is done in the interest
+	of execution time efficiency. */
+
+	for( ;; )
+	{
+		taskENTER_CRITICAL();
+		{
+			const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting;
+
+			/* Is there data in the queue now?  To be running the calling task
+			must be the highest priority task wanting to access the queue. */
+			if( uxMessagesWaiting > ( UBaseType_t ) 0 )
+			{
+				/* Remember the read position so it can be reset after the data
+				is read from the queue as this function is only peeking the
+				data, not removing it. */
+				pcOriginalReadPosition = pxQueue->u.pcReadFrom;
+
+				prvCopyDataFromQueue( pxQueue, pvBuffer );
+				traceQUEUE_PEEK( pxQueue );
+
+				/* The data is not being removed, so reset the read pointer. */
+				pxQueue->u.pcReadFrom = pcOriginalReadPosition;
+
+				/* The data is being left in the queue, so see if there are
+				any other tasks waiting for the data. */
+				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
+				{
+					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
+					{
+						/* The task waiting has a higher priority than this task. */
+						queueYIELD_IF_USING_PREEMPTION();
+					}
+					else
+					{
+						mtCOVERAGE_TEST_MARKER();
+					}
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
+
+				taskEXIT_CRITICAL();
+				return pdPASS;
+			}
+			else
+			{
+				if( xTicksToWait == ( TickType_t ) 0 )
+				{
+					/* The queue was empty and no block time is specified (or
+					the block time has expired) so leave now. */
+					taskEXIT_CRITICAL();
+					traceQUEUE_RECEIVE_FAILED( pxQueue );
+					return errQUEUE_EMPTY;
+				}
+				else if( xEntryTimeSet == pdFALSE )
+				{
+					/* The queue was empty and a block time was specified so
+					configure the timeout structure ready to enter the blocked
+					state. */
+					vTaskInternalSetTimeOutState( &xTimeOut );
+					xEntryTimeSet = pdTRUE;
+				}
+				else
+				{
+					/* Entry time was already set. */
+					mtCOVERAGE_TEST_MARKER();
+				}
+			}
+		}
+		taskEXIT_CRITICAL();
+
+		/* Interrupts and other tasks can send to and receive from the queue
+		now the critical section has been exited. */
+
+		vTaskSuspendAll();
+		prvLockQueue( pxQueue );
+
+		/* Update the timeout state to see if it has expired yet. */
+		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
+		{
+			/* Timeout has not expired yet, check to see if there is data in the
+			queue now, and if not enter the Blocked state to wait for data. */
+			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
+			{
+				traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue );
+				vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );
+				prvUnlockQueue( pxQueue );
+				if( xTaskResumeAll() == pdFALSE )
+				{
+					portYIELD_WITHIN_API();
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
+			}
+			else
+			{
+				/* There is data in the queue now, so don't enter the blocked
+				state, instead return to try and obtain the data. */
+				prvUnlockQueue( pxQueue );
+				( void ) xTaskResumeAll();
+			}
+		}
+		else
+		{
+			/* The timeout has expired.  If there is still no data in the queue
+			exit, otherwise go back and try to read the data again. */
 			prvUnlockQueue( pxQueue );
 			( void ) xTaskResumeAll();
 
@@ -1468,7 +1826,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 			traceQUEUE_RECEIVE_FROM_ISR( pxQueue );
 
 			prvCopyDataFromQueue( pxQueue, pvBuffer );
-			pxQueue->uxMessagesWaiting = uxMessagesWaiting - 1;
+			pxQueue->uxMessagesWaiting = uxMessagesWaiting - ( UBaseType_t ) 1;
 
 			/* If the queue is locked the event list will not be modified.
 			Instead update the lock count so the task that unlocks the queue
@@ -1694,6 +2052,33 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 #endif /* configUSE_TRACE_FACILITY */
 /*-----------------------------------------------------------*/
 
+#if( configUSE_MUTEXES == 1 )
+
+	static UBaseType_t prvGetDisinheritPriorityAfterTimeout( const Queue_t * const pxQueue )
+	{
+	UBaseType_t uxHighestPriorityOfWaitingTasks;
+
+		/* If a task waiting for a mutex causes the mutex holder to inherit a
+		priority, but the waiting task times out, then the holder should
+		disinherit the priority - but only down to the highest priority of any
+		other tasks that are waiting for the same mutex.  For this purpose,
+		return the priority of the highest priority task that is waiting for the
+		mutex. */
+		if( listCURRENT_LIST_LENGTH( &( pxQueue->xTasksWaitingToReceive ) ) > 0 )
+		{
+			uxHighestPriorityOfWaitingTasks = configMAX_PRIORITIES - listGET_ITEM_VALUE_OF_HEAD_ENTRY( &( pxQueue->xTasksWaitingToReceive ) );
+		}
+		else
+		{
+			uxHighestPriorityOfWaitingTasks = tskIDLE_PRIORITY;
+		}
+
+		return uxHighestPriorityOfWaitingTasks;
+	}
+
+#endif /* configUSE_MUTEXES */
+/*-----------------------------------------------------------*/
+
 static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition )
 {
 BaseType_t xReturn = pdFALSE;
@@ -1767,7 +2152,7 @@ UBaseType_t uxMessagesWaiting;
 		}
 	}
 
-	pxQueue->uxMessagesWaiting = uxMessagesWaiting + 1;
+	pxQueue->uxMessagesWaiting = uxMessagesWaiting + ( UBaseType_t ) 1;
 
 	return xReturn;
 }
@@ -2316,7 +2701,7 @@ BaseType_t xReturn;
 		}
 
 		return pcReturn;
-	}
+	} /*lint !e818 xQueue cannot be a pointer to const because it is a typedef. */
 
 #endif /* configQUEUE_REGISTRY_SIZE */
 /*-----------------------------------------------------------*/
@@ -2395,7 +2780,7 @@ BaseType_t xReturn;
 	{
 	QueueSetHandle_t pxQueue;
 
-		pxQueue = xQueueGenericCreate( uxEventQueueLength, sizeof( Queue_t * ), queueQUEUE_TYPE_SET );
+		pxQueue = xQueueGenericCreate( uxEventQueueLength, ( UBaseType_t ) sizeof( Queue_t * ), queueQUEUE_TYPE_SET );
 
 		return pxQueue;
 	}
@@ -2478,7 +2863,7 @@ BaseType_t xReturn;
 	{
 	QueueSetMemberHandle_t xReturn = NULL;
 
-		( void ) xQueueGenericReceive( ( QueueHandle_t ) xQueueSet, &xReturn, xTicksToWait, pdFALSE ); /*lint !e961 Casting from one typedef to another is not redundant. */
+		( void ) xQueueReceive( ( QueueHandle_t ) xQueueSet, &xReturn, xTicksToWait ); /*lint !e961 Casting from one typedef to another is not redundant. */
 		return xReturn;
 	}
 
diff --git a/FreeRTOS/Source/readme.txt b/FreeRTOS/Source/readme.txt
index 58480c5..b68d2d5 100644
--- a/FreeRTOS/Source/readme.txt
+++ b/FreeRTOS/Source/readme.txt
@@ -1,17 +1,20 @@
 Each real time kernel port consists of three files that contain the core kernel
-components and are common to every port, and one or more files that are 
-specific to a particular microcontroller and or compiler.
+components and are common to every port, and one or more files that are
+specific to a particular microcontroller and/or compiler.
 
-+ The FreeRTOS/Source directory contains the three files that are common to 
-every port - list.c, queue.c and tasks.c.  The kernel is contained within these 
-three files.  croutine.c implements the optional co-routine functionality - which
-is normally only used on very memory limited systems.
 
-+ The FreeRTOS/Source/Portable directory contains the files that are specific to 
-a particular microcontroller and or compiler.
++ The FreeRTOS/Source/Portable/MemMang directory contains the five sample
+memory allocators as described on the http://www.FreeRTOS.org WEB site.
 
-+ The FreeRTOS/Source/include directory contains the real time kernel header 
-files.
++ The other directories each contain files specific to a particular
+microcontroller or compiler, where the directory name denotes the compiler
+specific files the directory contains.
+
+
+
+For example, if you are interested in the [compiler] port for the [architecture]
+microcontroller, then the port specific files are contained in
+FreeRTOS/Source/Portable/[compiler]/[architecture] directory.  If this is the
+only port you are interested in then all the other directories can be
+ignored.
 
-See the readme file in the FreeRTOS/Source/Portable directory for more 
-information.
\ No newline at end of file
diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c
index 6c261a6..dd6a69d 100644
--- a/FreeRTOS/Source/tasks.c
+++ b/FreeRTOS/Source/tasks.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -131,12 +131,23 @@ made to free the RAM that was allocated statically.
 tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
 task to be created using either statically or dynamically allocated RAM.  Note
 that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
-a statically allocated stack and a dynamically allocated TCB. */
-#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) || ( portUSING_MPU_WRAPPERS == 1 ) )
+a statically allocated stack and a dynamically allocated TCB.
+!!!NOTE!!! If the definition of tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is
+changed then the definition of StaticTask_t must also be updated. */
+#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE	( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
 #define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB 		( ( uint8_t ) 0 )
 #define tskSTATICALLY_ALLOCATED_STACK_ONLY 			( ( uint8_t ) 1 )
 #define tskSTATICALLY_ALLOCATED_STACK_AND_TCB		( ( uint8_t ) 2 )
 
+/* If any of the following are set then task stacks are filled with a known
+value so the high water mark can be determined.  If none of the following are
+set then don't fill the stack so there is no unnecessary dependency on memset. */
+#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
+	#define tskSET_NEW_STACKS_TO_KNOWN_VALUE	1
+#else
+	#define tskSET_NEW_STACKS_TO_KNOWN_VALUE	0
+#endif
+
 /*
  * Macros used by vListTask to indicate which state a task is in.
  */
@@ -153,6 +164,12 @@ a statically allocated stack and a dynamically allocated TCB. */
 	#define static
 #endif
 
+/* The name allocated to the Idle task.  This can be overridden by defining
+configIDLE_TASK_NAME in FreeRTOSConfig.h. */
+#ifndef configIDLE_TASK_NAME
+	#define configIDLE_TASK_NAME "IDLE"
+#endif
+
 #if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 )
 
 	/* If configUSE_PORT_OPTIMISED_TASK_SELECTION is 0 then task selection is
@@ -304,8 +321,8 @@ typedef struct tskTaskControlBlock
 	StackType_t			*pxStack;			/*< Points to the start of the stack. */
 	char				pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created.  Facilitates debugging only. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
-	#if ( portSTACK_GROWTH > 0 )
-		StackType_t		*pxEndOfStack;		/*< Points to the end of the stack on architectures where the stack grows up from low memory. */
+	#if ( ( portSTACK_GROWTH > 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) )
+		StackType_t		*pxEndOfStack;		/*< Points to the highest valid address for the stack. */
 	#endif
 
 	#if ( portCRITICAL_NESTING_IN_TCB == 1 )
@@ -327,7 +344,7 @@ typedef struct tskTaskControlBlock
 	#endif
 
 	#if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 )
-		void *pvThreadLocalStoragePointers[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];
+		void			*pvThreadLocalStoragePointers[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];
 	#endif
 
 	#if( configGENERATE_RUN_TIME_STATS == 1 )
@@ -352,7 +369,7 @@ typedef struct tskTaskControlBlock
 
 	/* See the comments above the definition of
 	tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE. */
-	#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
+	#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */
 		uint8_t	ucStaticallyAllocated; 		/*< Set to pdTRUE if the task is a statically allocated to ensure no attempt is made to free the memory. */
 	#endif
 
@@ -366,8 +383,8 @@ typedef struct tskTaskControlBlock
 below to enable the use of older kernel aware debuggers. */
 typedef tskTCB TCB_t;
 
-/*lint -e956 A manual analysis and inspection has been used to determine which
-static variables must be declared volatile. */
+/*lint -save -e956 A manual analysis and inspection has been used to determine
+which static variables must be declared volatile. */
 
 PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL;
 
@@ -394,7 +411,7 @@ PRIVILEGED_DATA static List_t xPendingReadyList;						/*< Tasks that have been r
 
 /* Other file private variables. --------------------------------*/
 PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks 	= ( UBaseType_t ) 0U;
-PRIVILEGED_DATA static volatile TickType_t xTickCount 				= ( TickType_t ) 0U;
+PRIVILEGED_DATA static volatile TickType_t xTickCount 				= ( TickType_t ) configINITIAL_TICK_COUNT;
 PRIVILEGED_DATA static volatile UBaseType_t uxTopReadyPriority 		= tskIDLE_PRIORITY;
 PRIVILEGED_DATA static volatile BaseType_t xSchedulerRunning 		= pdFALSE;
 PRIVILEGED_DATA static volatile UBaseType_t uxPendedTicks 			= ( UBaseType_t ) 0U;
@@ -421,21 +438,27 @@ PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended	= ( UBaseType_t
 
 #endif
 
-/*lint +e956 */
+/*lint -restore */
 
 /*-----------------------------------------------------------*/
 
 /* Callback function prototypes. --------------------------*/
 #if(  configCHECK_FOR_STACK_OVERFLOW > 0 )
+
 	extern void vApplicationStackOverflowHook( TaskHandle_t xTask, char *pcTaskName );
+
 #endif
 
 #if( configUSE_TICK_HOOK > 0 )
+
 	extern void vApplicationTickHook( void );
+
 #endif
 
 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
+
 	extern void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
+
 #endif
 
 /* File private functions. --------------------------------*/
@@ -446,7 +469,9 @@ PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended	= ( UBaseType_t
  * is in any other state.
  */
 #if ( INCLUDE_vTaskSuspend == 1 )
+
 	static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION;
+
 #endif /* INCLUDE_vTaskSuspend */
 
 /*
@@ -565,13 +590,13 @@ static void prvResetNextTaskUnblockTime( void );
  * dynamically to fill in the structure's members.
  */
 static void prvInitialiseNewTask( 	TaskFunction_t pxTaskCode,
-									const char * const pcName,
+									const char * const pcName, 		/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 									const uint32_t ulStackDepth,
 									void * const pvParameters,
 									UBaseType_t uxPriority,
 									TaskHandle_t * const pxCreatedTask,
 									TCB_t *pxNewTCB,
-									const MemoryRegion_t * const xRegions ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+									const MemoryRegion_t * const xRegions ) PRIVILEGED_FUNCTION;
 
 /*
  * Called after a new task has been created and initialised to place the task
@@ -579,17 +604,28 @@ static void prvInitialiseNewTask( 	TaskFunction_t pxTaskCode,
  */
 static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 
+/*
+ * freertos_tasks_c_additions_init() should only be called if the user definable
+ * macro FREERTOS_TASKS_C_ADDITIONS_INIT() is defined, as that is the only macro
+ * called by the function.
+ */
+#ifdef FREERTOS_TASKS_C_ADDITIONS_INIT
+
+	static void freertos_tasks_c_additions_init( void ) PRIVILEGED_FUNCTION;
+
+#endif
+
 /*-----------------------------------------------------------*/
 
 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
 
 	TaskHandle_t xTaskCreateStatic(	TaskFunction_t pxTaskCode,
-									const char * const pcName,
+									const char * const pcName,		/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 									const uint32_t ulStackDepth,
 									void * const pvParameters,
 									UBaseType_t uxPriority,
 									StackType_t * const puxStackBuffer,
-									StaticTask_t * const pxTaskBuffer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+									StaticTask_t * const pxTaskBuffer )
 	{
 	TCB_t *pxNewTCB;
 	TaskHandle_t xReturn;
@@ -597,6 +633,17 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 		configASSERT( puxStackBuffer != NULL );
 		configASSERT( pxTaskBuffer != NULL );
 
+		#if( configASSERT_DEFINED == 1 )
+		{
+			/* Sanity check that the size of the structure used to declare a
+			variable of type StaticTask_t equals the size of the real task
+			structure. */
+			volatile size_t xSize = sizeof( StaticTask_t );
+			configASSERT( xSize == sizeof( TCB_t ) );
+		}
+		#endif /* configASSERT_DEFINED */
+
+
 		if( ( pxTaskBuffer != NULL ) && ( puxStackBuffer != NULL ) )
 		{
 			/* The memory used for the task's TCB and stack are passed into this
@@ -604,7 +651,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 			pxNewTCB = ( TCB_t * ) pxTaskBuffer; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */
 			pxNewTCB->pxStack = ( StackType_t * ) puxStackBuffer;
 
-			#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
+			#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */
 			{
 				/* Tasks can be created statically or dynamically, so note this
 				task was created statically in case the task is later deleted. */
@@ -626,7 +673,53 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 #endif /* SUPPORT_STATIC_ALLOCATION */
 /*-----------------------------------------------------------*/
 
-#if( portUSING_MPU_WRAPPERS == 1 )
+#if( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
+
+	BaseType_t xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )
+	{
+	TCB_t *pxNewTCB;
+	BaseType_t xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;
+
+		configASSERT( pxTaskDefinition->puxStackBuffer != NULL );
+		configASSERT( pxTaskDefinition->pxTaskBuffer != NULL );
+
+		if( ( pxTaskDefinition->puxStackBuffer != NULL ) && ( pxTaskDefinition->pxTaskBuffer != NULL ) )
+		{
+			/* Allocate space for the TCB.  Where the memory comes from depends
+			on the implementation of the port malloc function and whether or
+			not static allocation is being used. */
+			pxNewTCB = ( TCB_t * ) pxTaskDefinition->pxTaskBuffer;
+
+			/* Store the stack location in the TCB. */
+			pxNewTCB->pxStack = pxTaskDefinition->puxStackBuffer;
+
+			#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
+			{
+				/* Tasks can be created statically or dynamically, so note this
+				task was created statically in case the task is later deleted. */
+				pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_AND_TCB;
+			}
+			#endif /* configSUPPORT_DYNAMIC_ALLOCATION */
+
+			prvInitialiseNewTask(	pxTaskDefinition->pvTaskCode,
+									pxTaskDefinition->pcName,
+									( uint32_t ) pxTaskDefinition->usStackDepth,
+									pxTaskDefinition->pvParameters,
+									pxTaskDefinition->uxPriority,
+									pxCreatedTask, pxNewTCB,
+									pxTaskDefinition->xRegions );
+
+			prvAddNewTaskToReadyList( pxNewTCB );
+			xReturn = pdPASS;
+		}
+
+		return xReturn;
+	}
+
+#endif /* ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) */
+/*-----------------------------------------------------------*/
+
+#if( ( portUSING_MPU_WRAPPERS == 1 ) && ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) )
 
 	BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )
 	{
@@ -674,11 +767,11 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
 
 	BaseType_t xTaskCreate(	TaskFunction_t pxTaskCode,
-							const char * const pcName,
-							const uint16_t usStackDepth,
+							const char * const pcName,		/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+							const configSTACK_DEPTH_TYPE usStackDepth,
 							void * const pvParameters,
 							UBaseType_t uxPriority,
-							TaskHandle_t * const pxCreatedTask ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+							TaskHandle_t * const pxCreatedTask )
 	{
 	TCB_t *pxNewTCB;
 	BaseType_t xReturn;
@@ -741,7 +834,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 
 		if( pxNewTCB != NULL )
 		{
-			#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
+			#if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */
 			{
 				/* Tasks can be created statically or dynamically, so note this
 				task was created dynamically in case it is later deleted. */
@@ -765,13 +858,13 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION;
 /*-----------------------------------------------------------*/
 
 static void prvInitialiseNewTask( 	TaskFunction_t pxTaskCode,
-									const char * const pcName,
+									const char * const pcName,		/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 									const uint32_t ulStackDepth,
 									void * const pvParameters,
 									UBaseType_t uxPriority,
 									TaskHandle_t * const pxCreatedTask,
 									TCB_t *pxNewTCB,
-									const MemoryRegion_t * const xRegions ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+									const MemoryRegion_t * const xRegions )
 {
 StackType_t *pxTopOfStack;
 UBaseType_t x;
@@ -791,12 +884,12 @@ UBaseType_t x;
 	#endif /* portUSING_MPU_WRAPPERS == 1 */
 
 	/* Avoid dependency on memset() if it is not required. */
-	#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
+	#if( tskSET_NEW_STACKS_TO_KNOWN_VALUE == 1 )
 	{
 		/* Fill the stack with a known value to assist debugging. */
 		( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) ulStackDepth * sizeof( StackType_t ) );
 	}
-	#endif /* ( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) ) */
+	#endif /* tskSET_NEW_STACKS_TO_KNOWN_VALUE */
 
 	/* Calculate the top of stack address.  This depends on whether the stack
 	grows from high memory to low (as per the 80x86) or vice versa.
@@ -809,6 +902,14 @@ UBaseType_t x;
 
 		/* Check the alignment of the calculated top of stack is correct. */
 		configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) );
+
+		#if( configRECORD_STACK_HIGH_ADDRESS == 1 )
+		{
+			/* Also record the stack's high address, which may assist
+			debugging. */
+			pxNewTCB->pxEndOfStack = pxTopOfStack;
+		}
+		#endif /* configRECORD_STACK_HIGH_ADDRESS */
 	}
 	#else /* portSTACK_GROWTH */
 	{
@@ -936,7 +1037,7 @@ UBaseType_t x;
 	/* Initialize the TCB stack to look as if the task was already running,
 	but had been interrupted by the scheduler.  The return address is set
 	to the start of the task function. Once the stack has been initialised
-	the	top of stack variable is updated. */
+	the top of stack variable is updated. */
 	#if( portUSING_MPU_WRAPPERS == 1 )
 	{
 		pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged );
@@ -1515,14 +1616,14 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
 				}
 
 				/* If the task is in the blocked or suspended list we need do
-				nothing more than change it's priority variable. However, if
+				nothing more than change its priority variable. However, if
 				the task is in a ready list it needs to be removed and placed
 				in the list appropriate to its new priority. */
 				if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xStateListItem ) ) != pdFALSE )
 				{
-					/* The task is currently in its ready list - remove before adding
-					it to it's new ready list.  As we are in a critical section we
-					can do this even if the scheduler is suspended. */
+					/* The task is currently in its ready list - remove before
+					adding it to it's new ready list.  As we are in a critical
+					section we can do this even if the scheduler is suspended. */
 					if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 )
 					{
 						/* It is known that the task is in its ready list so
@@ -1597,6 +1698,17 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
 			}
 
 			vListInsertEnd( &xSuspendedTaskList, &( pxTCB->xStateListItem ) );
+
+			#if( configUSE_TASK_NOTIFICATIONS == 1 )
+			{
+				if( pxTCB->ucNotifyState == taskWAITING_NOTIFICATION )
+				{
+					/* The task was blocked to wait for a notification, but is
+					now suspended, so no notification was received. */
+					pxTCB->ucNotifyState = taskNOT_WAITING_NOTIFICATION;
+				}
+			}
+			#endif
 		}
 		taskEXIT_CRITICAL();
 
@@ -1672,7 +1784,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
 			{
 				/* Is it in the suspended list because it is in the	Suspended
 				state, or because is is blocked with no timeout? */
-				if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) != pdFALSE )
+				if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) != pdFALSE ) /*lint !e961.  The cast is only redundant when NULL is used. */
 				{
 					xReturn = pdTRUE;
 				}
@@ -1716,12 +1828,12 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
 				{
 					traceTASK_RESUME( pxTCB );
 
-					/* As we are in a critical section we can access the ready
-					lists even if the scheduler is suspended. */
+					/* The ready list can be accessed even if the scheduler is
+					suspended because this is inside a critical section. */
 					( void ) uxListRemove(  &( pxTCB->xStateListItem ) );
 					prvAddTaskToReadyList( pxTCB );
 
-					/* We may have just resumed a higher priority task. */
+					/* A higher priority task may have just been resumed. */
 					if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )
 					{
 						/* This yield may not cause the task just resumed to run,
@@ -1838,9 +1950,9 @@ BaseType_t xReturn;
 		address of the RAM then create the idle task. */
 		vApplicationGetIdleTaskMemory( &pxIdleTaskTCBBuffer, &pxIdleTaskStackBuffer, &ulIdleTaskStackSize );
 		xIdleTaskHandle = xTaskCreateStatic(	prvIdleTask,
-												"IDLE",
+												configIDLE_TASK_NAME,
 												ulIdleTaskStackSize,
-												( void * ) NULL,
+												( void * ) NULL, /*lint !e961.  The cast is not redundant for all compilers. */
 												( tskIDLE_PRIORITY | portPRIVILEGE_BIT ),
 												pxIdleTaskStackBuffer,
 												pxIdleTaskTCBBuffer ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
@@ -1858,7 +1970,8 @@ BaseType_t xReturn;
 	{
 		/* The Idle task is being created using dynamically allocated RAM. */
 		xReturn = xTaskCreate(	prvIdleTask,
-								"IDLE", configMINIMAL_STACK_SIZE,
+								configIDLE_TASK_NAME,
+								configMINIMAL_STACK_SIZE,
 								( void * ) NULL,
 								( tskIDLE_PRIORITY | portPRIVILEGE_BIT ),
 								&xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
@@ -1880,6 +1993,15 @@ BaseType_t xReturn;
 
 	if( xReturn == pdPASS )
 	{
+		/* freertos_tasks_c_additions_init() should only be called if the user
+		definable macro FREERTOS_TASKS_C_ADDITIONS_INIT() is defined, as that is
+		the only macro called by the function. */
+		#ifdef FREERTOS_TASKS_C_ADDITIONS_INIT
+		{
+			freertos_tasks_c_additions_init();
+		}
+		#endif
+
 		/* Interrupts are turned off here, to ensure a tick does not occur
 		before or during the call to xPortStartScheduler().  The stacks of
 		the created tasks contain a status word with interrupts switched on
@@ -1901,7 +2023,10 @@ BaseType_t xReturn;
 
 		/* If configGENERATE_RUN_TIME_STATS is defined then the following
 		macro must be defined to configure the timer/counter used to generate
-		the run time counter time base. */
+		the run time counter time base.   NOTE:  If configGENERATE_RUN_TIME_STATS
+		is set to 0 and the following line fails to build then ensure you do not
+		have portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() defined in your
+		FreeRTOSConfig.h file. */
 		portCONFIGURE_TIMER_FOR_RUN_TIME_STATS();
 
 		/* Setting up the timer tick is hardware specific and thus in the
@@ -2427,7 +2552,7 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than
 	BaseType_t xTaskAbortDelay( TaskHandle_t xTask )
 	{
 	TCB_t *pxTCB = ( TCB_t * ) xTask;
-	BaseType_t xReturn = pdFALSE;
+	BaseType_t xReturn;
 
 		configASSERT( pxTCB );
 
@@ -2437,6 +2562,8 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than
 			it is actually in the Blocked state. */
 			if( eTaskGetState( xTask ) == eBlocked )
 			{
+				xReturn = pdPASS;
+
 				/* Remove the reference to the task from the blocked list.  An
 				interrupt won't touch the xStateListItem because the
 				scheduler is suspended. */
@@ -2485,10 +2612,10 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than
 			}
 			else
 			{
-				mtCOVERAGE_TEST_MARKER();
+				xReturn = pdFAIL;
 			}
 		}
-		xTaskResumeAll();
+		( void ) xTaskResumeAll();
 
 		return xReturn;
 	}
@@ -2510,13 +2637,13 @@ BaseType_t xSwitchRequired = pdFALSE;
 	{
 		/* Minor optimisation.  The tick count cannot change in this
 		block. */
-		const TickType_t xConstTickCount = xTickCount + 1;
+		const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1;
 
 		/* Increment the RTOS tick, switching the delayed and overflowed
 		delayed lists if it wraps to 0. */
 		xTickCount = xConstTickCount;
 
-		if( xConstTickCount == ( TickType_t ) 0U )
+		if( xConstTickCount == ( TickType_t ) 0U ) /*lint !e774 'if' does not always evaluate to false as it is looking for an overflow. */
 		{
 			taskSWITCH_DELAYED_LISTS();
 		}
@@ -2959,10 +3086,9 @@ BaseType_t xReturn;
 }
 /*-----------------------------------------------------------*/
 
-BaseType_t xTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue )
+void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue )
 {
 TCB_t *pxUnblockedTCB;
-BaseType_t xReturn;
 
 	/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED.  It is used by
 	the event flags implementation. */
@@ -2985,28 +3111,30 @@ BaseType_t xReturn;
 
 	if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority )
 	{
-		/* Return true if the task removed from the event list has
-		a higher priority than the calling task.  This allows
-		the calling task to know if it should force a context
-		switch now. */
-		xReturn = pdTRUE;
-
-		/* Mark that a yield is pending in case the user is not using the
-		"xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */
+		/* The unblocked task has a priority above that of the calling task, so
+		a context switch is required.  This function is called with the
+		scheduler suspended so xYieldPending is set so the context switch
+		occurs immediately that the scheduler is resumed (unsuspended). */
 		xYieldPending = pdTRUE;
 	}
-	else
-	{
-		xReturn = pdFALSE;
-	}
-
-	return xReturn;
 }
 /*-----------------------------------------------------------*/
 
 void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
 {
 	configASSERT( pxTimeOut );
+	taskENTER_CRITICAL();
+	{
+		pxTimeOut->xOverflowCount = xNumOfOverflows;
+		pxTimeOut->xTimeOnEntering = xTickCount;
+	}
+	taskEXIT_CRITICAL();
+}
+/*-----------------------------------------------------------*/
+
+void vTaskInternalSetTimeOutState( TimeOut_t * const pxTimeOut )
+{
+	/* For internal use only as it does not use a critical section. */
 	pxTimeOut->xOverflowCount = xNumOfOverflows;
 	pxTimeOut->xTimeOnEntering = xTickCount;
 }
@@ -3023,6 +3151,7 @@ BaseType_t xReturn;
 	{
 		/* Minor optimisation.  The tick count cannot change in this block. */
 		const TickType_t xConstTickCount = xTickCount;
+		const TickType_t xElapsedTime = xConstTickCount - pxTimeOut->xTimeOnEntering;
 
 		#if( INCLUDE_xTaskAbortDelay == 1 )
 			if( pxCurrentTCB->ucDelayAborted != pdFALSE )
@@ -3055,11 +3184,11 @@ BaseType_t xReturn;
 			was called. */
 			xReturn = pdTRUE;
 		}
-		else if( ( ( TickType_t ) ( xConstTickCount - pxTimeOut->xTimeOnEntering ) ) < *pxTicksToWait ) /*lint !e961 Explicit casting is only redundant with some compilers, whereas others require it to prevent integer conversion errors. */
+		else if( xElapsedTime < *pxTicksToWait ) /*lint !e961 Explicit casting is only redundant with some compilers, whereas others require it to prevent integer conversion errors. */
 		{
 			/* Not a genuine timeout. Adjust parameters for time remaining. */
-			*pxTicksToWait -= ( xConstTickCount - pxTimeOut->xTimeOnEntering );
-			vTaskSetTimeOutState( pxTimeOut );
+			*pxTicksToWait -= xElapsedTime;
+			vTaskInternalSetTimeOutState( pxTimeOut );
 			xReturn = pdFALSE;
 		}
 		else
@@ -3136,6 +3265,11 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters )
 	/** THIS IS THE RTOS IDLE TASK - WHICH IS CREATED AUTOMATICALLY WHEN THE
 	SCHEDULER IS STARTED. **/
 
+	/* In case a task that has a secure context deletes itself, in which case
+	the idle task is responsible for deleting the task's secure context, if
+	any. */
+	portTASK_CALLS_SECURE_FUNCTIONS();
+
 	for( ;; )
 	{
 		/* See if any tasks have deleted themselves - if so then the idle task
@@ -3212,6 +3346,11 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters )
 					configASSERT( xNextTaskUnblockTime >= xTickCount );
 					xExpectedIdleTime = prvGetExpectedIdleTime();
 
+					/* Define the following macro to set xExpectedIdleTime to 0
+					if the application does not want
+					portSUPPRESS_TICKS_AND_SLEEP() to be called. */
+					configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( xExpectedIdleTime );
+
 					if( xExpectedIdleTime >= configEXPECTED_IDLE_TIME_BEFORE_SLEEP )
 					{
 						traceLOW_POWER_IDLE_BEGIN();
@@ -3369,37 +3508,22 @@ static void prvCheckTasksWaitingTermination( void )
 
 	#if ( INCLUDE_vTaskDelete == 1 )
 	{
-		BaseType_t xListIsEmpty;
+		TCB_t *pxTCB;
 
-		/* ucTasksDeleted is used to prevent vTaskSuspendAll() being called
-		too often in the idle task. */
+		/* uxDeletedTasksWaitingCleanUp is used to prevent vTaskSuspendAll()
+		being called too often in the idle task. */
 		while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U )
 		{
-			vTaskSuspendAll();
+			taskENTER_CRITICAL();
 			{
-				xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination );
+				pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) );
+				( void ) uxListRemove( &( pxTCB->xStateListItem ) );
+				--uxCurrentNumberOfTasks;
+				--uxDeletedTasksWaitingCleanUp;
 			}
-			( void ) xTaskResumeAll();
+			taskEXIT_CRITICAL();
 
-			if( xListIsEmpty == pdFALSE )
-			{
-				TCB_t *pxTCB;
-
-				taskENTER_CRITICAL();
-				{
-					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) );
-					( void ) uxListRemove( &( pxTCB->xStateListItem ) );
-					--uxCurrentNumberOfTasks;
-					--uxDeletedTasksWaitingCleanUp;
-				}
-				taskEXIT_CRITICAL();
-
-				prvDeleteTCB( pxTCB );
-			}
-			else
-			{
-				mtCOVERAGE_TEST_MARKER();
-			}
+			prvDeleteTCB( pxTCB );
 		}
 	}
 	#endif /* INCLUDE_vTaskDelete */
@@ -3421,25 +3545,6 @@ static void prvCheckTasksWaitingTermination( void )
 		pxTaskStatus->pxStackBase = pxTCB->pxStack;
 		pxTaskStatus->xTaskNumber = pxTCB->uxTCBNumber;
 
-		#if ( INCLUDE_vTaskSuspend == 1 )
-		{
-			/* If the task is in the suspended list then there is a chance it is
-			actually just blocked indefinitely - so really it should be reported as
-			being in the Blocked state. */
-			if( pxTaskStatus->eCurrentState == eSuspended )
-			{
-				vTaskSuspendAll();
-				{
-					if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL )
-					{
-						pxTaskStatus->eCurrentState = eBlocked;
-					}
-				}
-				xTaskResumeAll();
-			}
-		}
-		#endif /* INCLUDE_vTaskSuspend */
-
 		#if ( configUSE_MUTEXES == 1 )
 		{
 			pxTaskStatus->uxBasePriority = pxTCB->uxBasePriority;
@@ -3460,12 +3565,38 @@ static void prvCheckTasksWaitingTermination( void )
 		}
 		#endif
 
-		/* Obtaining the task state is a little fiddly, so is only done if the value
-		of eState passed into this function is eInvalid - otherwise the state is
-		just set to whatever is passed in. */
+		/* Obtaining the task state is a little fiddly, so is only done if the
+		value of eState passed into this function is eInvalid - otherwise the
+		state is just set to whatever is passed in. */
 		if( eState != eInvalid )
 		{
-			pxTaskStatus->eCurrentState = eState;
+			if( pxTCB == pxCurrentTCB )
+			{
+				pxTaskStatus->eCurrentState = eRunning;
+			}
+			else
+			{
+				pxTaskStatus->eCurrentState = eState;
+
+				#if ( INCLUDE_vTaskSuspend == 1 )
+				{
+					/* If the task is in the suspended list then there is a
+					chance it is actually just blocked indefinitely - so really
+					it should be reported as being in the Blocked state. */
+					if( eState == eSuspended )
+					{
+						vTaskSuspendAll();
+						{
+							if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL )
+							{
+								pxTaskStatus->eCurrentState = eBlocked;
+							}
+						}
+						( void ) xTaskResumeAll();
+					}
+				}
+				#endif /* INCLUDE_vTaskSuspend */
+			}
 		}
 		else
 		{
@@ -3499,7 +3630,7 @@ static void prvCheckTasksWaitingTermination( void )
 
 	static UBaseType_t prvListTasksWithinSingleList( TaskStatus_t *pxTaskStatusArray, List_t *pxList, eTaskState eState )
 	{
-	volatile TCB_t *pxNextTCB, *pxFirstTCB;
+	configLIST_VOLATILE TCB_t *pxNextTCB, *pxFirstTCB;
 	UBaseType_t uxTask = 0;
 
 		if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 )
@@ -3600,7 +3731,7 @@ static void prvCheckTasksWaitingTermination( void )
 			vPortFree( pxTCB->pxStack );
 			vPortFree( pxTCB );
 		}
-		#elif( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE == 1 )
+		#elif( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */
 		{
 			/* The task could have been allocated statically or dynamically, so
 			check what was statically allocated before trying to free the
@@ -3622,7 +3753,7 @@ static void prvCheckTasksWaitingTermination( void )
 			{
 				/* Neither the stack nor the TCB were allocated dynamically, so
 				nothing needs to be freed. */
-				configASSERT( pxTCB->ucStaticallyAllocated == tskSTATICALLY_ALLOCATED_STACK_AND_TCB	)
+				configASSERT( pxTCB->ucStaticallyAllocated == tskSTATICALLY_ALLOCATED_STACK_AND_TCB	);
 				mtCOVERAGE_TEST_MARKER();
 			}
 		}
@@ -3703,25 +3834,27 @@ TCB_t *pxTCB;
 
 #if ( configUSE_MUTEXES == 1 )
 
-	void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder )
+	BaseType_t xTaskPriorityInherit( TaskHandle_t const pxMutexHolder )
 	{
-	TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder;
+	TCB_t * const pxMutexHolderTCB = ( TCB_t * ) pxMutexHolder;
+	BaseType_t xReturn = pdFALSE;
 
 		/* If the mutex was given back by an interrupt while the queue was
-		locked then the mutex holder might now be NULL. */
+		locked then the mutex holder might now be NULL.  _RB_ Is this still
+		needed as interrupts can no longer use mutexes? */
 		if( pxMutexHolder != NULL )
 		{
 			/* If the holder of the mutex has a priority below the priority of
 			the task attempting to obtain the mutex then it will temporarily
 			inherit the priority of the task attempting to obtain the mutex. */
-			if( pxTCB->uxPriority < pxCurrentTCB->uxPriority )
+			if( pxMutexHolderTCB->uxPriority < pxCurrentTCB->uxPriority )
 			{
 				/* Adjust the mutex holder state to account for its new
 				priority.  Only reset the event list item value if the value is
-				not	being used for anything else. */
-				if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL )
+				not being used for anything else. */
+				if( ( listGET_LIST_ITEM_VALUE( &( pxMutexHolderTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL )
 				{
-					listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
+					listSET_LIST_ITEM_VALUE( &( pxMutexHolderTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 				}
 				else
 				{
@@ -3730,11 +3863,11 @@ TCB_t *pxTCB;
 
 				/* If the task being modified is in the ready state it will need
 				to be moved into a new list. */
-				if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xStateListItem ) ) != pdFALSE )
+				if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxMutexHolderTCB->uxPriority ] ), &( pxMutexHolderTCB->xStateListItem ) ) != pdFALSE )
 				{
-					if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 )
+					if( uxListRemove( &( pxMutexHolderTCB->xStateListItem ) ) == ( UBaseType_t ) 0 )
 					{
-						taskRESET_READY_PRIORITY( pxTCB->uxPriority );
+						taskRESET_READY_PRIORITY( pxMutexHolderTCB->uxPriority );
 					}
 					else
 					{
@@ -3742,26 +3875,45 @@ TCB_t *pxTCB;
 					}
 
 					/* Inherit the priority before being moved into the new list. */
-					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
-					prvAddTaskToReadyList( pxTCB );
+					pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority;
+					prvAddTaskToReadyList( pxMutexHolderTCB );
 				}
 				else
 				{
 					/* Just inherit the priority. */
-					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
+					pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority;
 				}
 
-				traceTASK_PRIORITY_INHERIT( pxTCB, pxCurrentTCB->uxPriority );
+				traceTASK_PRIORITY_INHERIT( pxMutexHolderTCB, pxCurrentTCB->uxPriority );
+
+				/* Inheritance occurred. */
+				xReturn = pdTRUE;
 			}
 			else
 			{
-				mtCOVERAGE_TEST_MARKER();
+				if( pxMutexHolderTCB->uxBasePriority < pxCurrentTCB->uxPriority )
+				{
+					/* The base priority of the mutex holder is lower than the
+					priority of the task attempting to take the mutex, but the
+					current priority of the mutex holder is not lower than the
+					priority of the task attempting to take the mutex.
+					Therefore the mutex holder must have already inherited a
+					priority, but inheritance would have occurred if that had
+					not been the case. */
+					xReturn = pdTRUE;
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
 			}
 		}
 		else
 		{
 			mtCOVERAGE_TEST_MARKER();
 		}
+
+		return xReturn;
 	}
 
 #endif /* configUSE_MUTEXES */
@@ -3781,7 +3933,6 @@ TCB_t *pxTCB;
 			interrupt, and if a mutex is given by the holding task then it must
 			be the running state task. */
 			configASSERT( pxTCB == pxCurrentTCB );
-
 			configASSERT( pxTCB->uxMutexesHeld );
 			( pxTCB->uxMutexesHeld )--;
 
@@ -3795,8 +3946,8 @@ TCB_t *pxTCB;
 					/* A task can only have an inherited priority if it holds
 					the mutex.  If the mutex is held by a task then it cannot be
 					given from an interrupt, and if a mutex is given by the
-					holding	task then it must be the running state task.  Remove
-					the	holding task from the ready	list. */
+					holding task then it must be the running state task.  Remove
+					the holding task from the ready list. */
 					if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 )
 					{
 						taskRESET_READY_PRIORITY( pxTCB->uxPriority );
@@ -3848,6 +3999,108 @@ TCB_t *pxTCB;
 #endif /* configUSE_MUTEXES */
 /*-----------------------------------------------------------*/
 
+#if ( configUSE_MUTEXES == 1 )
+
+	void vTaskPriorityDisinheritAfterTimeout( TaskHandle_t const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask )
+	{
+	TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder;
+	UBaseType_t uxPriorityUsedOnEntry, uxPriorityToUse;
+	const UBaseType_t uxOnlyOneMutexHeld = ( UBaseType_t ) 1;
+
+		if( pxMutexHolder != NULL )
+		{
+			/* If pxMutexHolder is not NULL then the holder must hold at least
+			one mutex. */
+			configASSERT( pxTCB->uxMutexesHeld );
+
+			/* Determine the priority to which the priority of the task that
+			holds the mutex should be set.  This will be the greater of the
+			holding task's base priority and the priority of the highest
+			priority task that is waiting to obtain the mutex. */
+			if( pxTCB->uxBasePriority < uxHighestPriorityWaitingTask )
+			{
+				uxPriorityToUse = uxHighestPriorityWaitingTask;
+			}
+			else
+			{
+				uxPriorityToUse = pxTCB->uxBasePriority;
+			}
+
+			/* Does the priority need to change? */
+			if( pxTCB->uxPriority != uxPriorityToUse )
+			{
+				/* Only disinherit if no other mutexes are held.  This is a
+				simplification in the priority inheritance implementation.  If
+				the task that holds the mutex is also holding other mutexes then
+				the other mutexes may have caused the priority inheritance. */
+				if( pxTCB->uxMutexesHeld == uxOnlyOneMutexHeld )
+				{
+					/* If a task has timed out because it already holds the
+					mutex it was trying to obtain then it cannot of inherited
+					its own priority. */
+					configASSERT( pxTCB != pxCurrentTCB );
+
+					/* Disinherit the priority, remembering the previous
+					priority to facilitate determining the subject task's
+					state. */
+					traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority );
+					uxPriorityUsedOnEntry = pxTCB->uxPriority;
+					pxTCB->uxPriority = uxPriorityToUse;
+
+					/* Only reset the event list item value if the value is not
+					being used for anything else. */
+					if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL )
+					{
+						listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriorityToUse ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
+					}
+					else
+					{
+						mtCOVERAGE_TEST_MARKER();
+					}
+
+					/* If the running task is not the task that holds the mutex
+					then the task that holds the mutex could be in either the
+					Ready, Blocked or Suspended states.  Only remove the task
+					from its current state list if it is in the Ready state as
+					the task's priority is going to change and there is one
+					Ready list per priority. */
+					if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xStateListItem ) ) != pdFALSE )
+					{
+						if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 )
+						{
+							taskRESET_READY_PRIORITY( pxTCB->uxPriority );
+						}
+						else
+						{
+							mtCOVERAGE_TEST_MARKER();
+						}
+
+						prvAddTaskToReadyList( pxTCB );
+					}
+					else
+					{
+						mtCOVERAGE_TEST_MARKER();
+					}
+				}
+				else
+				{
+					mtCOVERAGE_TEST_MARKER();
+				}
+			}
+			else
+			{
+				mtCOVERAGE_TEST_MARKER();
+			}
+		}
+		else
+		{
+			mtCOVERAGE_TEST_MARKER();
+		}
+	}
+
+#endif /* configUSE_MUTEXES */
+/*-----------------------------------------------------------*/
+
 #if ( portCRITICAL_NESTING_IN_TCB == 1 )
 
 	void vTaskEnterCritical( void )
@@ -3937,7 +4190,7 @@ TCB_t *pxTCB;
 #endif /* ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */
 /*-----------------------------------------------------------*/
 
-#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )
+#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
 
 	void vTaskList( char * pcWriteBuffer )
 	{
@@ -4029,10 +4282,10 @@ TCB_t *pxTCB;
 		}
 	}
 
-#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */
+#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
 /*----------------------------------------------------------*/
 
-#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )
+#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
 
 	void vTaskGetRunTimeStats( char *pcWriteBuffer )
 	{
@@ -4156,7 +4409,7 @@ TCB_t *pxTCB;
 		}
 	}
 
-#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */
+#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
 /*-----------------------------------------------------------*/
 
 TickType_t uxTaskResetEventItemValue( void )
@@ -4240,7 +4493,7 @@ TickType_t uxReturn;
 				}
 				else
 				{
-					pxCurrentTCB->ulNotifiedValue = ulReturn - 1;
+					pxCurrentTCB->ulNotifiedValue = ulReturn - ( uint32_t ) 1;
 				}
 			}
 			else
@@ -4315,7 +4568,7 @@ TickType_t uxReturn;
 			blocked state (because a notification was already pending) or the
 			task unblocked because of a notification.  Otherwise the task
 			unblocked because of a timeout. */
-			if( pxCurrentTCB->ucNotifyState == taskWAITING_NOTIFICATION )
+			if( pxCurrentTCB->ucNotifyState != taskNOTIFICATION_RECEIVED )
 			{
 				/* A notification was not received. */
 				xReturn = pdFALSE;
@@ -4800,8 +5053,24 @@ const TickType_t xConstTickCount = xTickCount;
 	#endif /* INCLUDE_vTaskSuspend */
 }
 
+/* Code below here allows additional code to be inserted into this source file,
+especially where access to file scope functions and data is needed (for example
+when performing module tests). */
 
 #ifdef FREERTOS_MODULE_TEST
 	#include "tasks_test_access_functions.h"
 #endif
 
+
+#if( configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H == 1 )
+
+	#include "freertos_tasks_c_additions.h"
+
+	static void freertos_tasks_c_additions_init( void )
+	{
+		#ifdef FREERTOS_TASKS_C_ADDITIONS_INIT
+			FREERTOS_TASKS_C_ADDITIONS_INIT();
+		#endif
+	}
+
+#endif
diff --git a/FreeRTOS/Source/timers.c b/FreeRTOS/Source/timers.c
index d4a821a..44d63aa 100644
--- a/FreeRTOS/Source/timers.c
+++ b/FreeRTOS/Source/timers.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.
+    FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -100,6 +100,12 @@ configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */
 /* Misc definitions. */
 #define tmrNO_DELAY		( TickType_t ) 0U
 
+/* The name assigned to the timer service task.  This can be overridden by
+defining trmTIMER_SERVICE_TASK_NAME in FreeRTOSConfig.h. */
+#ifndef configTIMER_SERVICE_TASK_NAME
+	#define configTIMER_SERVICE_TASK_NAME "Tmr Svc"
+#endif
+
 /* The definition of the timers themselves. */
 typedef struct tmrTimerControl
 {
@@ -158,8 +164,8 @@ typedef struct tmrTimerQueueMessage
 	} u;
 } DaemonTaskMessage_t;
 
-/*lint -e956 A manual analysis and inspection has been used to determine which
-static variables must be declared volatile. */
+/*lint -save -e956 A manual analysis and inspection has been used to determine
+which static variables must be declared volatile. */
 
 /* The list in which active timers are stored.  Timers are referenced in expire
 time order, with the nearest expiry time at the front of the list.  Only the
@@ -173,7 +179,7 @@ PRIVILEGED_DATA static List_t *pxOverflowTimerList;
 PRIVILEGED_DATA static QueueHandle_t xTimerQueue = NULL;
 PRIVILEGED_DATA static TaskHandle_t xTimerTaskHandle = NULL;
 
-/*lint +e956 */
+/*lint -restore */
 
 /*-----------------------------------------------------------*/
 
@@ -248,12 +254,12 @@ static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, BaseTy
  * Called after a Timer_t structure has been allocated either statically or
  * dynamically to fill in the structure's members.
  */
-static void prvInitialiseNewTimer(	const char * const pcTimerName,
+static void prvInitialiseNewTimer(	const char * const pcTimerName,			/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 									const TickType_t xTimerPeriodInTicks,
 									const UBaseType_t uxAutoReload,
 									void * const pvTimerID,
 									TimerCallbackFunction_t pxCallbackFunction,
-									Timer_t *pxNewTimer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+									Timer_t *pxNewTimer ) PRIVILEGED_FUNCTION;
 /*-----------------------------------------------------------*/
 
 BaseType_t xTimerCreateTimerTask( void )
@@ -276,7 +282,7 @@ BaseType_t xReturn = pdFAIL;
 
 			vApplicationGetTimerTaskMemory( &pxTimerTaskTCBBuffer, &pxTimerTaskStackBuffer, &ulTimerTaskStackSize );
 			xTimerTaskHandle = xTaskCreateStatic(	prvTimerTask,
-													"Tmr Svc",
+													configTIMER_SERVICE_TASK_NAME,
 													ulTimerTaskStackSize,
 													NULL,
 													( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT,
@@ -291,7 +297,7 @@ BaseType_t xReturn = pdFAIL;
 		#else
 		{
 			xReturn = xTaskCreate(	prvTimerTask,
-									"Tmr Svc",
+									configTIMER_SERVICE_TASK_NAME,
 									configTIMER_TASK_STACK_DEPTH,
 									NULL,
 									( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT,
@@ -311,11 +317,11 @@ BaseType_t xReturn = pdFAIL;
 
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
 
-	TimerHandle_t xTimerCreate(	const char * const pcTimerName,
+	TimerHandle_t xTimerCreate(	const char * const pcTimerName,			/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 								const TickType_t xTimerPeriodInTicks,
 								const UBaseType_t uxAutoReload,
 								void * const pvTimerID,
-								TimerCallbackFunction_t pxCallbackFunction ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+								TimerCallbackFunction_t pxCallbackFunction )
 	{
 	Timer_t *pxNewTimer;
 
@@ -343,12 +349,12 @@ BaseType_t xReturn = pdFAIL;
 
 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
 
-	TimerHandle_t xTimerCreateStatic(	const char * const pcTimerName,
+	TimerHandle_t xTimerCreateStatic(	const char * const pcTimerName,		/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 										const TickType_t xTimerPeriodInTicks,
 										const UBaseType_t uxAutoReload,
 										void * const pvTimerID,
 										TimerCallbackFunction_t pxCallbackFunction,
-										StaticTimer_t *pxTimerBuffer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+										StaticTimer_t *pxTimerBuffer )
 	{
 	Timer_t *pxNewTimer;
 
@@ -356,7 +362,7 @@ BaseType_t xReturn = pdFAIL;
 		{
 			/* Sanity check that the size of the structure used to declare a
 			variable of type StaticTimer_t equals the size of the real timer
-			structures. */
+			structure. */
 			volatile size_t xSize = sizeof( StaticTimer_t );
 			configASSERT( xSize == sizeof( Timer_t ) );
 		}
@@ -385,12 +391,12 @@ BaseType_t xReturn = pdFAIL;
 #endif /* configSUPPORT_STATIC_ALLOCATION */
 /*-----------------------------------------------------------*/
 
-static void prvInitialiseNewTimer(	const char * const pcTimerName,
+static void prvInitialiseNewTimer(	const char * const pcTimerName,			/*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 									const TickType_t xTimerPeriodInTicks,
 									const UBaseType_t uxAutoReload,
 									void * const pvTimerID,
 									TimerCallbackFunction_t pxCallbackFunction,
-									Timer_t *pxNewTimer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
+									Timer_t *pxNewTimer )
 {
 	/* 0 is not a valid value for xTimerPeriodInTicks. */
 	configASSERT( ( xTimerPeriodInTicks > 0 ) );
@@ -760,7 +766,7 @@ TickType_t xTimeNow;
 			software timer. */
 			pxTimer = xMessage.u.xTimerParameters.pxTimer;
 
-			if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE )
+			if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) /*lint !e961. The cast is only redundant when NULL is passed into the macro. */
 			{
 				/* The timer is in a list, remove it. */
 				( void ) uxListRemove( &( pxTimer->xTimerListItem ) );
@@ -945,10 +951,10 @@ static void prvCheckForValidListAndQueue( void )
 			{
 				/* The timer queue is allocated statically in case
 				configSUPPORT_DYNAMIC_ALLOCATION is 0. */
-				static StaticQueue_t xStaticTimerQueue;
-				static uint8_t ucStaticTimerQueueStorage[ configTIMER_QUEUE_LENGTH * sizeof( DaemonTaskMessage_t ) ];
+				static StaticQueue_t xStaticTimerQueue; /*lint !e956 Ok to declare in this manner to prevent additional conditional compilation guards in other locations. */
+				static uint8_t ucStaticTimerQueueStorage[ ( size_t ) configTIMER_QUEUE_LENGTH * sizeof( DaemonTaskMessage_t ) ]; /*lint !e956 Ok to declare in this manner to prevent additional conditional compilation guards in other locations. */
 
-				xTimerQueue = xQueueCreateStatic( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ), &( ucStaticTimerQueueStorage[ 0 ] ), &xStaticTimerQueue );
+				xTimerQueue = xQueueCreateStatic( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, ( UBaseType_t ) sizeof( DaemonTaskMessage_t ), &( ucStaticTimerQueueStorage[ 0 ] ), &xStaticTimerQueue );
 			}
 			#else
 			{
@@ -991,7 +997,7 @@ Timer_t *pxTimer = ( Timer_t * ) xTimer;
 		/* Checking to see if it is in the NULL list in effect checks to see if
 		it is referenced from either the current or the overflow timer lists in
 		one go, but the logic has to be reversed, hence the '!'. */
-		xTimerIsInActiveList = ( BaseType_t ) !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) );
+		xTimerIsInActiveList = ( BaseType_t ) !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); /*lint !e961. Cast is only redundant when NULL is passed into the macro. */
 	}
 	taskEXIT_CRITICAL();
 

From 1cfded6389004e76bf6faf491c4b2a60ed03662b Mon Sep 17 00:00:00 2001
From: Our Air Quality 
Date: Wed, 2 Aug 2017 09:47:33 +1000
Subject: [PATCH 188/349] upnp example: strip down the lwipopts.h file

---
 examples/upnp/lwipopts.h | 461 +--------------------------------------
 1 file changed, 2 insertions(+), 459 deletions(-)

diff --git a/examples/upnp/lwipopts.h b/examples/upnp/lwipopts.h
index a82d3fc..80c105b 100644
--- a/examples/upnp/lwipopts.h
+++ b/examples/upnp/lwipopts.h
@@ -1,464 +1,7 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Simon Goldschmidt
- *
- */
-#ifndef __LWIPOPTS_H__
-#define __LWIPOPTS_H__
-
-#define LWIP_ESP                            1
-#define ESP_RTOS                            1
-#define PBUF_RSV_FOR_WLAN                   1
-#define EBUF_LWIP                           1
-#define ESP_TIMEWAIT_THRESHOLD              10000
-#define LWIP_TIMEVAL_PRIVATE                0
-
-#define TCP_WND (TCP_MSS * 2)
 
 #define LWIP_IGMP 1
-#include 
-#include 
-#define LWIP_RAND hwrand
-
-/*
-   -----------------------------------------------
-   ---------- Platform specific locking ----------
-   -----------------------------------------------
-*/
-/**
- * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain
- * critical regions during buffer allocation, deallocation and memory
- * allocation and deallocation.
- */
-#define SYS_LIGHTWEIGHT_PROT        1
-
-/**
- * MEMCPY: override this if you have a faster implementation at hand than the
- * one included in your C library
- */
-#define MEMCPY(dst,src,len)             memcpy(dst,src,len)
-
-/**
- * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a
- * call to memcpy() if the length is known at compile time and is small.
- */
-#define SMEMCPY(dst,src,len)            memcpy(dst,src,len)
-
-/*
-   ------------------------------------
-   ---------- Memory options ----------
-   ------------------------------------
-*/
-/**
- * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library
- * instead of the lwip internal allocator. Can save code size if you
- * already use it.
- */
-#define MEM_LIBC_MALLOC        1
-
-/**
-* MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
-* Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
-* speed and usage from interrupts!
-*/
-#define MEMP_MEM_MALLOC                 1
-
-/**
- * MEM_ALIGNMENT: should be set to the alignment of the CPU
- *    4 byte alignment -> #define MEM_ALIGNMENT 4
- *    2 byte alignment -> #define MEM_ALIGNMENT 2
- */
-#define MEM_ALIGNMENT           4
-
-/*
-   ------------------------------------------------
-   ---------- Internal Memory Pool Sizes ----------
-   ------------------------------------------------
-*/
-
-/*
-   --------------------------------
-   ---------- ARP options -------
-   --------------------------------
-*/
-/**
- * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address
- * resolution. By default, only the most recent packet is queued per IP address.
- * This is sufficient for most protocols and mainly reduces TCP connection
- * startup time. Set this to 1 if you know your application sends more than one
- * packet in a row to an IP address that is not in the ARP cache.
- */
-#define ARP_QUEUEING                    1
-
-/*
-   --------------------------------
-   ---------- IP options ----------
-   --------------------------------
-*/
-/**
- * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
- * this option does not affect outgoing packet sizes, which can be controlled
- * via IP_FRAG.
- */
-#define IP_REASSEMBLY                   0
-
-/**
- * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
- * that this option does not affect incoming packet sizes, which can be
- * controlled via IP_REASSEMBLY.
- */
-#define IP_FRAG                         1
-
-/**
- * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
- * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
- * in this time, the whole packet is discarded.
- */
-#define IP_REASS_MAXAGE                 3
-
-/**
- * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
- * Since the received pbufs are enqueued, be sure to configure
- * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
- * packets even if the maximum amount of fragments is enqueued for reassembly!
- */
-#define IP_REASS_MAX_PBUFS              10
-
-/*
-   ----------------------------------
-   ---------- ICMP options ----------
-   ----------------------------------
-*/
-
-/*
-   ---------------------------------
-   ---------- RAW options ----------
-   ---------------------------------
-*/
-
-/*
-   ----------------------------------
-   ---------- DHCP options ----------
-   ----------------------------------
-*/
-/**
- * LWIP_DHCP==1: Enable DHCP module.
- */
-#define LWIP_DHCP                       1
-
-#define LWIP_DHCP_BOOTP_FILE            0
-
-/*
-   ------------------------------------
-   ---------- AUTOIP options ----------
-   ------------------------------------
-*/
-/*
-   ----------------------------------
-   ---------- SNMP options ----------
-   ----------------------------------
-*/
-/*
-   ----------------------------------
-   ---------- IGMP options ----------
-   ----------------------------------
-*/
-/*
-   ----------------------------------
-   ---------- DNS options -----------
-   ----------------------------------
-*/
-/**
- * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
- * transport.
- */
-#define LWIP_DNS                        1
-
-#define DNS_TABLE_SIZE 1
-#define DNS_MAX_NAME_LENGTH 128
-
-/*
-   ---------------------------------
-   ---------- UDP options ----------
-   ---------------------------------
-*/
-/*
-   ---------------------------------
-   ---------- TCP options ----------
-   ---------------------------------
-*/
-/**
- * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.
- * Define to 0 if your device is low on memory.
- */
-#define TCP_QUEUE_OOSEQ                 0
-
-/*
- *     LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all
- *         events (accept, sent, etc) that happen in the system.
- *     LWIP_CALLBACK_API==1: The PCB callback function is called directly
- *         for the event. This is the default.
-*/
-#define TCP_MSS                         1460
-
-/**
- * TCP_MAXRTX: Maximum number of retransmissions of data segments.
- */
-#define TCP_MAXRTX                      6
-
-
-/**
- * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.
- */
-#define TCP_SYNMAXRTX                   3
-
-/*
-   ----------------------------------
-   ---------- Pbuf options ----------
-   ----------------------------------
-*/
-
-/*
-   ------------------------------------------------
-   ---------- Network Interfaces options ----------
-   ------------------------------------------------
-*/
-/**
- * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data
- * to be sent into one single pbuf. This is for compatibility with DMA-enabled
- * MACs that do not support scatter-gather.
- * Beware that this might involve CPU-memcpy before transmitting that would not
- * be needed without this flag! Use this only if you need to!
- *
- * @todo: TCP and IP-frag do not work with this, yet:
- */
-#define LWIP_NETIF_TX_SINGLE_PBUF             1
-
-/*
-   ------------------------------------
-   ---------- LOOPIF options ----------
-   ------------------------------------
-*/
-
-/*
-   ------------------------------------
-   ---------- SLIPIF options ----------
-   ------------------------------------
-*/
-
-/*
-   ------------------------------------
-   ---------- Thread options ----------
-   ------------------------------------
-*/
-/**
- * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread.
- * The stack size value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#define TCPIP_THREAD_STACKSIZE          512			//not ok:384 
-
-/**
- * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread.
- * The priority value itself is platform-dependent, but is passed to
- * sys_thread_new() when the thread is created.
- */
-#define TCPIP_THREAD_PRIO               (configMAX_PRIORITIES-5)
-
-/**
- * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages
- * The queue size value itself is platform-dependent, but is passed to
- * sys_mbox_new() when tcpip_init is called.
- */
-#define TCPIP_MBOX_SIZE                 16
-
-/**
- * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
- * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed
- * to sys_mbox_new() when the recvmbox is created.
- */
-#define DEFAULT_UDP_RECVMBOX_SIZE       6
-
-/**
- * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
- * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed
- * to sys_mbox_new() when the recvmbox is created.
- */
-#define DEFAULT_TCP_RECVMBOX_SIZE       6
-
-/**
- * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections.
- * The queue size value itself is platform-dependent, but is passed to
- * sys_mbox_new() when the acceptmbox is created.
- */
-#define DEFAULT_ACCEPTMBOX_SIZE         6
-
-/*
-   ----------------------------------------------
-   ---------- Sequential layer options ----------
-   ----------------------------------------------
-*/
-
-/*
-   ------------------------------------
-   ---------- Socket options ----------
-   ------------------------------------
-*/
-/**
- * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and
- * SO_SNDTIMEO processing.
- */
-#define LWIP_SO_SNDTIMEO                1
-
-/**
- * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and
- * SO_RCVTIMEO processing.
- */
-#define LWIP_SO_RCVTIMEO                1
-
-/**
- * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
- * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
- * in seconds. (does not require sockets.c, and will affect tcp.c)
- */
-#define LWIP_TCP_KEEPALIVE              1
-
-/**
- * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
- */
-#define LWIP_SO_RCVBUF                  0
-
-/**
- * SO_REUSE==1: Enable SO_REUSEADDR option.
- */
-#define SO_REUSE                        1
-
-/*
-   ----------------------------------------
-   ---------- Statistics options ----------
-   ----------------------------------------
-*/
-
-/*
-   ---------------------------------
-   ---------- PPP options ----------
-   ---------------------------------
-*/
-
-/*
-   --------------------------------------
-   ---------- Checksum options ----------
-   --------------------------------------
-*/
-
-/*
-   ---------------------------------------
-   ---------- IPv6 options ---------------
-   ---------------------------------------
-*/
-
-/*
-   ---------------------------------------
-   ---------- Hook options ---------------
-   ---------------------------------------
-*/
-
-/*
-   ---------------------------------------
-   ---------- Debugging options ----------
-   ---------------------------------------
-*/
-
-// Uncomment this line, and set the individual debug options you want, for IP stack debug output
-//#define LWIP_DEBUG
-
-/**
- * ETHARP_DEBUG: Enable debugging in etharp.c.
- */
-#define ETHARP_DEBUG                    LWIP_DBG_OFF
-
-/**
- * PBUF_DEBUG: Enable debugging in pbuf.c.
- */
-#define PBUF_DEBUG                      LWIP_DBG_OFF
-
-/**
- * API_LIB_DEBUG: Enable debugging in api_lib.c.
- */
-#define API_LIB_DEBUG                   LWIP_DBG_OFF
-
-/**
- * SOCKETS_DEBUG: Enable debugging in sockets.c.
- */
-#define SOCKETS_DEBUG                   LWIP_DBG_OFF
-
-/**
- * IP_DEBUG: Enable debugging for IP.
- */
-#define IP_DEBUG                        LWIP_DBG_OFF
-
-/**
- * MEMP_DEBUG: Enable debugging in memp.c.
- */
-#define MEMP_DEBUG                      LWIP_DBG_OFF
-
-/**
- * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.
- */
-#define TCP_INPUT_DEBUG                 LWIP_DBG_OFF
-
-/**
- * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.
- */
-#define TCP_OUTPUT_DEBUG                LWIP_DBG_OFF
-
-/**
- * UDP_DEBUG: Enable debugging in udp.c.
- */
-#define UDP_DEBUG                     LWIP_DBG_OFF
-
-/**
- * ICMP_DEBUG: Enable debugging in udp.c.
- */
-#define ICMP_DEBUG                     LWIP_DBG_OFF
-
-/**
- * TCPIP_DEBUG: Enable debugging in tcpip.c.
- */
-#define TCPIP_DEBUG                     LWIP_DBG_OFF
-
-
-/**
- * DHCP_DEBUG: Enable debugging in dhcp.c.
- */
-#define DHCP_DEBUG                      LWIP_DBG_OFF
 
 #define LWIP_POSIX_SOCKETS_IO_NAMES     0
 
-#endif /* __LWIPOPTS_H__ */
+/* Use the defaults for everything else */
+#include_next 

From cd23acaa4a3e9962fe4862bbd304fca19628875a Mon Sep 17 00:00:00 2001
From: Our Air Quality 
Date: Tue, 6 Jun 2017 12:47:21 +1000
Subject: [PATCH 189/349] LwIP v2 support

---
 .gitmodules                                   |   2 +-
 README.md                                     |   2 +-
 core/app_main.c                               |   4 +-
 core/include/sdk_internal.h                   |  61 +--
 examples/access_point/access_point.c          |  11 +-
 examples/http_get/http_get.c                  |  35 +-
 examples/tls_server/tls_server.c              |   5 +-
 .../tls_server_bearssl/tls_server_bearssl.c   |   5 +-
 examples/upnp/lwipopts.h                      |   2 -
 examples/upnp/upnp.c                          |  21 +-
 extras/dhcpserver/dhcpserver.c                | 148 +++--
 extras/dhcpserver/include/dhcpserver.h        |  10 +-
 extras/httpd/httpd.c                          |   2 +-
 extras/sntp/sntp.c                            |  18 +-
 include/espressif/esp_wifi.h                  |   6 +-
 include/espressif/sdk_private.h               |  13 +-
 lib/allsymbols.rename                         |   1 +
 lib/libmain.a                                 | Bin 123992 -> 123992 bytes
 lib/libnet80211.a                             | Bin 183796 -> 183796 bytes
 lib/libpp.a                                   | Bin 186122 -> 186122 bytes
 lib/libwpa.a                                  | Bin 160156 -> 160156 bytes
 lwip/component.mk                             |   8 +-
 lwip/esp_interface.c                          | 247 +++++++--
 lwip/include/arch/cc.h                        |  30 +-
 lwip/include/lwipopts.h                       | 377 +++++++++++--
 lwip/lwip                                     |   2 +-
 lwip/sys_arch.c                               | 511 +++++++-----------
 open_esplibs/include/esplibs/libmain.h        |   1 +
 open_esplibs/include/esplibs/libnet80211.h    |   8 +-
 open_esplibs/include/esplibs/libpp.h          |   1 +
 open_esplibs/include/esplibs/libwpa.h         |   1 +
 open_esplibs/include/open_esplibs.h           |  24 +-
 open_esplibs/libmain/user_interface.c         |  18 +-
 open_esplibs/libnet80211/ieee80211_hostap.c   | 306 ++++++++++-
 open_esplibs/libnet80211/ieee80211_input.c    |  10 +-
 open_esplibs/libnet80211/ieee80211_sta.c      |   5 -
 open_esplibs/libnet80211/wl_cnx.c             |  65 ++-
 open_esplibs/libpp/wdev.c                     |   8 +-
 open_esplibs/libwpa/wpa_main.c                |  53 +-
 39 files changed, 1357 insertions(+), 664 deletions(-)

diff --git a/.gitmodules b/.gitmodules
index 19b3794..17f8003 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
 [submodule "lwip/lwip"]
 	path = lwip/lwip
-	url = https://github.com/SuperHouse/esp-lwip.git
+	url = https://github.com/ourairquality/lwip.git
 [submodule "extras/mbedtls/mbedtls"]
 	path = extras/mbedtls/mbedtls
 	url = https://github.com/ARMmbed/mbedtls.git
diff --git a/README.md b/README.md
index 6f1a381..5617771 100644
--- a/README.md
+++ b/README.md
@@ -78,7 +78,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl
 ## Open Source Components
 
 * [FreeRTOS](http://www.freertos.org/) V9.0.0
-* [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v1.4.1, modified via the [esp-lwip project](https://github.com/kadamski/esp-lwip) by @kadamski.
+* [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v2.0.3, with [some modifications](https://github.com/ourairquality/lwip/).
 * [newlib](https://github.com/projectgus/newlib-xtensa) v2.2.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS.
 
 For details of how third party libraries are integrated, [see the wiki page](https://github.com/SuperHouse/esp-open-rtos/wiki/Third-Party-Libraries).
diff --git a/core/app_main.c b/core/app_main.c
index c944274..fb72cac 100644
--- a/core/app_main.c
+++ b/core/app_main.c
@@ -311,8 +311,8 @@ static void init_g_ic(void) {
     if (sdk_g_ic.s._unknown310 > 4) {
         sdk_g_ic.s._unknown310 = 4;
     }
-    if (sdk_g_ic.s._unknown1e4._unknown1e4 == 0xffffffff) {
-        bzero(&sdk_g_ic.s._unknown1e4, sizeof(sdk_g_ic.s._unknown1e4));
+    if (sdk_g_ic.s.sta_ssid.ssid_length == 0xffffffff) {
+        bzero(&sdk_g_ic.s.sta_ssid, sizeof(sdk_g_ic.s.sta_ssid));
         bzero(&sdk_g_ic.s.sta_password, sizeof(sdk_g_ic.s.sta_password));
     }
     sdk_g_ic.s.wifi_led_enable = 0;
diff --git a/core/include/sdk_internal.h b/core/include/sdk_internal.h
index 1847eef..3dfa8df 100644
--- a/core/include/sdk_internal.h
+++ b/core/include/sdk_internal.h
@@ -14,12 +14,12 @@
 // 'info' is declared in app_main.o at .bss+0x4
 
 struct sdk_info_st {
-    ip_addr_t softap_ipaddr;    // 0x00
-    ip_addr_t softap_netmask;   // 0x04
-    ip_addr_t softap_gw;        // 0x08
-    ip_addr_t sta_ipaddr;       // 0x0c
-    ip_addr_t sta_netmask;      // 0x10
-    ip_addr_t sta_gw;           // 0x14
+    ip4_addr_t softap_ipaddr;    // 0x00
+    ip4_addr_t softap_netmask;   // 0x04
+    ip4_addr_t softap_gw;        // 0x08
+    ip4_addr_t sta_ipaddr;       // 0x0c
+    ip4_addr_t sta_netmask;      // 0x10
+    ip4_addr_t sta_gw;           // 0x14
     uint8_t softap_mac_addr[6]; // 0x18
     uint8_t sta_mac_addr[6];    // 0x1e
 };
@@ -83,7 +83,7 @@ struct _unknown_wpa1 {
 };
 
 
-struct sdk_netif_conninfo {
+struct sdk_cnx_node {
     uint8_t mac_addr[6];
     uint8_t _unknown07[2];
 
@@ -105,10 +105,12 @@ struct sdk_netif_conninfo {
     uint16_t _unknown9c; // ieee80211_hostap. increases by one one each timer func called.
     uint16_t _unknown9e;
 
-    uint32_t _unknowna0[18];
+    uint32_t _unknowna0[17];
 
-    int8_t _unknowne8; //
-    int8_t _unknowne9; // ppInstallKey
+    void *_unknowne4;
+
+    uint8_t _unknowne8; //
+    uint8_t _unknowne9; // ppInstallKey
     int8_t _unknownea;
     int8_t _unknowneb;
 
@@ -128,9 +130,9 @@ struct sdk_g_ic_netif_info {
     uint32_t _unknown48;     // 0x48
     uint8_t _unknown4c;      // 0x4c
     uint8_t _unknown4d[59];  // 0x4d - 0x88
-    struct sdk_netif_conninfo *_unknown88;  // 0x88
+    struct sdk_cnx_node *_unknown88;  // 0x88
     uint32_t _unknown8c;     // 0x8c
-    struct sdk_netif_conninfo *conninfo[6]; // 0x90 - 0xa8
+    struct sdk_cnx_node *cnx_nodes[6]; // 0x90 - 0xa8
     uint8_t _unknowna8[12];  // 0xa8 - 0xb4
     struct _unknown_softap1 *_unknownb4;
     uint8_t statusb8;        // 0xb8 (arg of sta_status_set)
@@ -206,10 +208,9 @@ struct sdk_g_ic_volatile_st {
 };
 
 
-struct sdk_g_ic_unk0_st {
-    uint16_t _unknown1e4;  // sdk_wpa_config_profile
-    uint16_t _unknown1e6;  // sdk_wpa_config_profile
-    uint8_t sta_ssid[32];  // 0x1e8 Station ssid. Null terminated string.
+struct sdk_g_ic_ssid_with_length {
+    uint32_t ssid_length;  // 0x1e4 sdk_wpa_config_profile
+    uint8_t ssid[32];  // 0x1e8 Station ssid. Null terminated string.
 };
 
 // This is the portion of g_ic which is loaded/saved to the flash ROM, and thus
@@ -224,7 +225,8 @@ struct sdk_g_ic_saved_st {
     uint8_t wifi_led_gpio;
     uint8_t wifi_led_state;  // 0 or 1.
 
-    struct sdk_g_ic_unk0_st _unknown1e4;
+    // Current station ap config ssid and length.
+    struct sdk_g_ic_ssid_with_length sta_ssid; // 0x1e4
 
     uint8_t _unknown208;
     uint8_t _unknown209; // sdk_wpa_config_profile
@@ -260,7 +262,7 @@ struct sdk_g_ic_saved_st {
     uint8_t _unknown30d; // result of ieee80211_chan2ieee
     uint8_t _unknown30e;
     uint8_t _unknown30f;
-    uint8_t _unknown310; // count of entries in the softap conninfo array, less two.
+    uint8_t _unknown310; // count of entries in the softap cnx_node array, less two.
 
     uint8_t _unknown311[3];
 
@@ -331,8 +333,8 @@ _Static_assert(offsetof(struct _unknown_softap1, _unknown18) == 0x18, "bad struc
 _Static_assert(sizeof(struct _unknown_wpa1) == 0x4c, "_unknown_wpa1 is the wrong size!");
 _Static_assert(offsetof(struct _unknown_wpa1, _unknown48) == 0x48, "bad struct");
 
-_Static_assert(offsetof(struct sdk_netif_conninfo, _unknown78) == 0x78, "bad struct");
-_Static_assert(offsetof(struct sdk_netif_conninfo, _unknown108) == 0x108, "bad struct");
+_Static_assert(offsetof(struct sdk_cnx_node, _unknown78) == 0x78, "bad struct");
+_Static_assert(offsetof(struct sdk_cnx_node, _unknown108) == 0x108, "bad struct");
 
 _Static_assert(offsetof(struct sdk_g_ic_netif_info, started) == 0xbb, "bad struct");
 
@@ -340,7 +342,7 @@ _Static_assert(sizeof(struct sdk_g_ic_volatile_st) == 0x1d8, "sdk_g_ic_volatile_
 _Static_assert(offsetof(struct sdk_g_ic_volatile_st, _unknown1d5) == 0x1d5, "bad struct");
 
 _Static_assert(sizeof(struct sdk_g_ic_saved_st) == 0x370, "sdk_g_ic_saved_st is the wrong size!");
-_Static_assert(offsetof(struct sdk_g_ic_saved_st, _unknown1e4) == 0x1e4 - 0x1d8, "bad struct");
+_Static_assert(offsetof(struct sdk_g_ic_saved_st, sta_ssid) == 0x1e4 - 0x1d8, "bad struct");
 _Static_assert(offsetof(struct sdk_g_ic_saved_st, _unknown546) == 0x546 - 0x1d8, "bad struct");
 
 _Static_assert(sizeof(struct sdk_g_ic_st) == 0x548, "sdk_g_ic_st is the wrong size!");
@@ -357,21 +359,16 @@ _Static_assert(offsetof(struct esf_buf, length) == 0x16, "bad struct");
 // ieee80211_output_pbuf and perhaps elsewhere. The value is just passed through
 // lwip and and not used by lwip so just ensure this slot is at the expected
 // offset.
-_Static_assert(offsetof(struct netif, state) == 28, "netif->state offset wrong!");
+_Static_assert(offsetof(struct netif, state) == 4, "netif->state offset wrong!");
 
 // Some sdk uses of netif->hwaddr have been converted to source code, but many
 // remain, but the content of this slot should not change in future versions of
-// lwip, so just ensure it is at the expected offset.
-_Static_assert(offsetof(struct netif, hwaddr) == 41, "netif->hwaddr offset wrong!");
+// lwip, so just ensure it is at the expected offset. Note the sdk binary
+// libraries have been patched to move this offset from 41 to 42 to keep it
+// 16-bit aligned to keep lwip v2 happy.
+_Static_assert(offsetof(struct netif, hwaddr) == 8, "netif->hwaddr offset wrong!");
 
-// Most sdk uses of the netif->flags have been converted to source code. One
-// known sdk binary read of the flags remains in wl_cnx.o:sdk_cnx_sta_leave
-// which checks the NETIF_FLAG_DHCP flag. The NETIF_FLAG_DHCP has been removed
-// in lwip v2, so some lwip hacks are needed to handle this for now until
-// wl_cnx.o is converted so source code too.
-_Static_assert(offsetof(struct netif, flags) == 47, "netif->flags offset wrong!");
-
-_Static_assert(offsetof(struct pbuf, eb) == 16, "pbuf->eb offset wrong!");
+_Static_assert(offsetof(struct pbuf, esf_buf) == 16, "pbuf->esf_buf offset wrong!");
 
 
 /// Misc.
diff --git a/examples/access_point/access_point.c b/examples/access_point/access_point.c
index f8fcd50..52c622f 100644
--- a/examples/access_point/access_point.c
+++ b/examples/access_point/access_point.c
@@ -48,7 +48,7 @@ void user_init(void)
     };
     sdk_wifi_softap_set_config(&ap_config);
 
-    ip_addr_t first_client_ip;
+    ip4_addr_t first_client_ip;
     IP4_ADDR(&first_client_ip, 172, 16, 0, 2);
     dhcpserver_start(&first_client_ip, 4);
 
@@ -65,14 +65,14 @@ static void telnetTask(void *pvParameters)
     printf("Status monitor: Failed to allocate socket.\r\n");
     return;
   }
-  netconn_bind(nc, IP_ADDR_ANY, TELNET_PORT);
+  netconn_bind(nc, IP_ANY_TYPE, TELNET_PORT);
   netconn_listen(nc);
 
   while(1) {
     struct netconn *client = NULL;
     err_t err = netconn_accept(nc, &client);
 
-    if ( err != ERR_OK ) {
+    if (err != ERR_OK) {
       if(client)
 	netconn_delete(client);
       continue;
@@ -88,9 +88,8 @@ static void telnetTask(void *pvParameters)
     netconn_write(client, buf, strlen(buf), NETCONN_COPY);
     snprintf(buf, sizeof(buf), "Free heap %d bytes\r\n", (int)xPortGetFreeHeapSize());
     netconn_write(client, buf, strlen(buf), NETCONN_COPY);
-    snprintf(buf, sizeof(buf), "Your address is %d.%d.%d.%d\r\n\r\n",
-             ip4_addr1(&client_addr), ip4_addr2(&client_addr),
-             ip4_addr3(&client_addr), ip4_addr4(&client_addr));
+    char abuf[40];
+    snprintf(buf, sizeof(buf), "Your address is %s\r\n\r\n", ipaddr_ntoa_r(&client_addr, abuf, sizeof(abuf)));
     netconn_write(client, buf, strlen(buf), NETCONN_COPY);
     netconn_delete(client);
   }
diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c
index 0fe0ae1..f59aa8e 100644
--- a/examples/http_get/http_get.c
+++ b/examples/http_get/http_get.c
@@ -20,9 +20,9 @@
 
 #include "ssid_config.h"
 
-#define WEB_SERVER "chainxor.org"
+#define WEB_SERVER "ipv6.google.com"
 #define WEB_PORT 80
-#define WEB_URL "http://chainxor.org/"
+#define WEB_PATH "/"
 
 void http_get_task(void *pvParameters)
 {
@@ -31,7 +31,7 @@ void http_get_task(void *pvParameters)
 
     while(1) {
         const struct addrinfo hints = {
-            .ai_family = AF_INET,
+            .ai_family = AF_UNSPEC,
             .ai_socktype = SOCK_STREAM,
         };
         struct addrinfo *res;
@@ -39,7 +39,7 @@ void http_get_task(void *pvParameters)
         printf("Running DNS lookup for %s...\r\n", WEB_SERVER);
         int err = getaddrinfo(WEB_SERVER, "80", &hints, &res);
 
-        if(err != 0 || res == NULL) {
+        if (err != 0 || res == NULL) {
             printf("DNS lookup failed err=%d res=%p\r\n", err, res);
             if(res)
                 freeaddrinfo(res);
@@ -47,9 +47,24 @@ void http_get_task(void *pvParameters)
             failures++;
             continue;
         }
-        /* Note: inet_ntoa is non-reentrant, look at ipaddr_ntoa_r for "real" code */
-        struct in_addr *addr = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
-        printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(*addr));
+
+        {
+            struct netif *netif = sdk_system_get_netif(0);
+            int i;
+            for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) {
+                printf("  ip6 %d state %x\n", i, netif_ip6_addr_state(netif, i));
+                if (!ip6_addr_isinvalid(netif_ip6_addr_state(netif, i)))
+                    printf("  ip6 addr %d = %s\n", i, ip6addr_ntoa(netif_ip6_addr(netif, i)));
+            }
+        }
+
+        struct sockaddr *sa = res->ai_addr;
+        if (sa->sa_family == AF_INET) {
+            printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(((struct sockaddr_in *)sa)->sin_addr));
+        }
+        if (sa->sa_family == AF_INET6) {
+            printf("DNS lookup succeeded. IP=%s\r\n", inet6_ntoa(((struct sockaddr_in6 *)sa)->sin6_addr));
+        }
 
         int s = socket(res->ai_family, res->ai_socktype, 0);
         if(s < 0) {
@@ -75,8 +90,10 @@ void http_get_task(void *pvParameters)
         freeaddrinfo(res);
 
         const char *req =
-            "GET "WEB_URL"\r\n"
+            "GET "WEB_PATH" HTTP/1.1\r\n"
+            "Host: "WEB_SERVER"\r\n"
             "User-Agent: esp-open-rtos/0.1 esp8266\r\n"
+            "Connection: close\r\n"
             "\r\n";
         if (write(s, req, strlen(req)) < 0) {
             printf("... socket send failed\r\n");
@@ -126,6 +143,6 @@ void user_init(void)
     sdk_wifi_set_opmode(STATION_MODE);
     sdk_wifi_station_set_config(&config);
 
-    xTaskCreate(&http_get_task, "get_task", 256, NULL, 2, NULL);
+    xTaskCreate(&http_get_task, "get_task", 384, NULL, 2, NULL);
 }
 
diff --git a/examples/tls_server/tls_server.c b/examples/tls_server/tls_server.c
index 1317785..8ecfa56 100644
--- a/examples/tls_server/tls_server.c
+++ b/examples/tls_server/tls_server.c
@@ -202,9 +202,8 @@ void tls_server_task(void *pvParameters)
         socklen_t peer_addr_len = sizeof(struct sockaddr_in);
         getpeername(client_ctx.fd, (struct sockaddr *)&peer_addr, &peer_addr_len);
         unsigned char buf[256];
-        int len = sprintf((char *) buf, "O hai, client %d.%d.%d.%d:%d\nFree heap size is %d bytes\n",
-                          ip4_addr1(&peer_addr.sin_addr), ip4_addr2(&peer_addr.sin_addr),
-                          ip4_addr3(&peer_addr.sin_addr), ip4_addr4(&peer_addr.sin_addr),
+        int len = sprintf((char *) buf, "O hai, client " IPSTR ":%d\nFree heap size is %d bytes\n",
+                          IP2STR((ip4_addr_t *)&peer_addr.sin_addr.s_addr),
                           peer_addr.sin_port, xPortGetFreeHeapSize());
         while((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0)
         {
diff --git a/examples/tls_server_bearssl/tls_server_bearssl.c b/examples/tls_server_bearssl/tls_server_bearssl.c
index 09632ae..b1e48dc 100644
--- a/examples/tls_server_bearssl/tls_server_bearssl.c
+++ b/examples/tls_server_bearssl/tls_server_bearssl.c
@@ -146,9 +146,8 @@ void tls_server_task(void *pvParameters)
 
         /* Prepare a message to the client */
         unsigned char buf[100];
-        int len = sprintf((char *) buf, "O hai, client %d.%d.%d.%d:%d\r\nFree heap size is %d bytes\r\n",
-                          ip4_addr1(&sa.sin_addr), ip4_addr2(&sa.sin_addr),
-                          ip4_addr3(&sa.sin_addr), ip4_addr4(&sa.sin_addr),
+        int len = sprintf((char *) buf, "O hai, client " IPSTR ":%d\r\nFree heap size is %d bytes\r\n",
+                          IP2STR((ip4_addr_t *)&sa.sin_addr.s_addr),
                           ntohs(sa.sin_port), xPortGetFreeHeapSize());
 
         /* Send the message and close the connection */
diff --git a/examples/upnp/lwipopts.h b/examples/upnp/lwipopts.h
index 80c105b..56f45f2 100644
--- a/examples/upnp/lwipopts.h
+++ b/examples/upnp/lwipopts.h
@@ -1,7 +1,5 @@
 
 #define LWIP_IGMP 1
 
-#define LWIP_POSIX_SOCKETS_IO_NAMES     0
-
 /* Use the defaults for everything else */
 #include_next 
diff --git a/examples/upnp/upnp.c b/examples/upnp/upnp.c
index a223d27..bb34cae 100644
--- a/examples/upnp/upnp.c
+++ b/examples/upnp/upnp.c
@@ -1,6 +1,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include "upnp.h"
 
@@ -18,13 +19,13 @@ static const char* get_my_ip(void)
 }
 
 /**
-  * @brief This function joins a multicast group witht he specified ip/port
+  * @brief This function joins a multicast group with the specified ip/port
   * @param group_ip the specified multicast group ip
   * @param group_port the specified multicast port number
   * @param recv the lwip UDP callback
   * @retval udp_pcb* or NULL if joining failed
   */
-static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, void (* recv)(void * arg, struct udp_pcb * upcb, struct pbuf * p, struct ip_addr * addr, u16_t port))
+static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port))
 {
     bool status = false;
     struct udp_pcb *upcb;
@@ -36,7 +37,7 @@ static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, voi
             printf("Error, udp_new failed");
             break;
         }
-        udp_bind(upcb, IP_ADDR_ANY, group_port);
+        udp_bind(upcb, IP4_ADDR_ANY, group_port);
         struct netif* netif = sdk_system_get_netif(STATION_IF);
         if (!netif) {
             printf("Error, netif is null");
@@ -46,10 +47,10 @@ static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, voi
             netif->flags |= NETIF_FLAG_IGMP;
             igmp_start(netif);
         }
-        ip_addr_t ipgroup;
-        ipaddr_aton(group_ip, &ipgroup);
-        err_t err = igmp_joingroup(&netif->ip_addr, &ipgroup);
-        if(ERR_OK != err) {
+        ip4_addr_t ipgroup;
+        ip4addr_aton(group_ip, &ipgroup);
+        err_t err = igmp_joingroup_netif(netif, &ipgroup);
+        if (ERR_OK != err) {
             printf("Failed to join multicast group: %d", err);
             break;
         }
@@ -68,7 +69,7 @@ static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, voi
     return upcb;
 }
 
-static void send(struct udp_pcb *upcb, struct ip_addr *addr, u16_t port)
+static void send_udp(struct udp_pcb *upcb, const ip_addr_t *addr, u16_t port)
 {
     struct pbuf *p;
     char msg[500];
@@ -110,14 +111,14 @@ static void send(struct udp_pcb *upcb, struct ip_addr *addr, u16_t port)
   * @param port the remote port from which the packet was received
   * @retval None
   */
-static void receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port)
+static void receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
 {
     if (p) {
         printf("Msg received port:%d len:%d\n", port, p->len);
         uint8_t *buf = (uint8_t*) p->payload;
         printf("Msg received port:%d len:%d\nbuf: %s\n", port, p->len, buf);
         
-        send(upcb, addr, port);
+        send_udp(upcb, addr, port);
 
         pbuf_free(p);
     }
diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c
index d87daab..934beb2 100644
--- a/extras/dhcpserver/dhcpserver.c
+++ b/extras/dhcpserver/dhcpserver.c
@@ -14,18 +14,22 @@
  * BSD Licensed as described in the file LICENSE
  */
 #include 
+#include 
 
 #include 
 #include 
 #include 
 #include 
+#include "esplibs/libmain.h"
 
 /* Grow the size of the lwip dhcp_msg struct's options field, as LWIP
    defaults to a 68 octet options field for its DHCP client, and most
    full-sized clients send us more than this. */
 #define DHCP_OPTIONS_LEN 312
 
-#include 
+#include 
+#include 
+#include 
 
 _Static_assert(sizeof(struct dhcp_msg) == offsetof(struct dhcp_msg, options) + 312, "dhcp_msg_t should have extended options size");
 
@@ -35,15 +39,20 @@ _Static_assert(sizeof(struct dhcp_msg) == offsetof(struct dhcp_msg, options) + 3
 
 typedef struct {
     uint8_t hwaddr[NETIF_MAX_HWADDR_LEN];
+    uint8_t active;
     uint32_t expires;
 } dhcp_lease_t;
 
 typedef struct {
     struct netconn *nc;
     uint8_t max_leases;
-    ip_addr_t first_client_addr;
+    ip4_addr_t first_client_addr;
     struct netif *server_if;
     dhcp_lease_t *leases; /* length max_leases */
+    /* Optional router */
+    ip4_addr_t router;
+    /* Optional DNS server */
+    ip4_addr_t dns;
 } server_state_t;
 
 /* Only one DHCP server task can run at once, so we have global state
@@ -68,51 +77,67 @@ static uint8_t *add_dhcp_option_bytes(uint8_t *opt, uint8_t type, void *value, u
 static dhcp_lease_t *find_lease_slot(uint8_t *hwaddr);
 
 /* Copy IP address as dotted decimal to 'dest', must be at least 16 bytes long */
-inline static void sprintf_ipaddr(const ip_addr_t *addr, char *dest)
+inline static void sprintf_ipaddr(const ip4_addr_t *addr, char *dest)
 {
-    if(addr == NULL)
+    if (addr == NULL)
         sprintf(dest, "NULL");
     else
         sprintf(dest, "%d.%d.%d.%d", ip4_addr1(addr),
                 ip4_addr2(addr), ip4_addr3(addr), ip4_addr4(addr));
 }
 
-void dhcpserver_start(const ip_addr_t *first_client_addr, uint8_t max_leases)
+void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases)
 {
     /* Stop any existing running dhcpserver */
-    if(dhcpserver_task_handle)
+    if (dhcpserver_task_handle)
         dhcpserver_stop();
 
     state = malloc(sizeof(server_state_t));
     state->max_leases = max_leases;
     state->leases = calloc(max_leases, sizeof(dhcp_lease_t));
+    bzero(state->leases, max_leases * sizeof(dhcp_lease_t));
     // state->server_if is assigned once the task is running - see comment in dhcpserver_task()
-    ip_addr_copy(state->first_client_addr, *first_client_addr);
+    ip4_addr_copy(state->first_client_addr, *first_client_addr);
 
-    xTaskCreate(dhcpserver_task, "DHCPServer", 768, NULL, 8, &dhcpserver_task_handle);
+    /* Clear options */
+    ip4_addr_set_zero(&state->router);
+    ip4_addr_set_zero(&state->dns);
+
+    xTaskCreate(dhcpserver_task, "DHCP Server", 448, NULL, 2, &dhcpserver_task_handle);
 }
 
 void dhcpserver_stop(void)
 {
-    if(dhcpserver_task_handle) {
+    if (dhcpserver_task_handle) {
         vTaskDelete(dhcpserver_task_handle);
         free(state);
         dhcpserver_task_handle = NULL;
     }
 }
 
+void dhcpserver_set_router(const ip4_addr_t *router)
+{
+    ip4_addr_copy(state->router, *router);
+}
+
+void dhcpserver_set_dns(const ip4_addr_t *dns)
+{
+    ip4_addr_copy(state->dns, *dns);
+}
+
 static void dhcpserver_task(void *pxParameter)
 {
     /* netif_list isn't assigned until after user_init completes, which is why we do it inside the task */
     state->server_if = netif_list; /* TODO: Make this configurable */
 
     state->nc = netconn_new (NETCONN_UDP);
-    if(!state->nc) {
+    if (!state->nc) {
         printf("DHCP Server Error: Failed to allocate socket.\r\n");
         return;
     }
 
-    netconn_bind(state->nc, IP_ADDR_ANY, DHCP_SERVER_PORT);
+    netconn_bind(state->nc, IP4_ADDR_ANY, LWIP_IANA_PORT_DHCP_SERVER);
+    netconn_bind_if (state->nc, netif_get_index(state->server_if));
 
     while(1)
     {
@@ -121,29 +146,32 @@ static void dhcpserver_task(void *pxParameter)
 
         /* Receive a DHCP packet */
         err_t err = netconn_recv(state->nc, &netbuf);
-        if(err != ERR_OK) {
+        if (err != ERR_OK) {
             printf("DHCP Server Error: Failed to receive DHCP packet. err=%d\r\n", err);
             continue;
         }
 
         /* expire any leases that have passed */
         uint32_t now = xTaskGetTickCount();
-        for(int i = 0; i < state->max_leases; i++) {
-            uint32_t expires = state->leases[i].expires;
-            if(expires && expires < now)
-                state->leases[i].expires = 0;
+        for (int i = 0; i < state->max_leases; i++) {
+            if (state->leases[i].active) {
+                uint32_t expires = state->leases[i].expires - now;
+                if (expires >= 0x80000000) {
+                    state->leases[i].active = 0;
+                }
+            }
         }
 
         ip_addr_t received_ip;
         u16_t port;
         netconn_addr(state->nc, &received_ip, &port);
 
-        if(netbuf_len(netbuf) < offsetof(struct dhcp_msg, options)) {
+        if (netbuf_len(netbuf) < offsetof(struct dhcp_msg, options)) {
             /* too short to be a valid DHCP client message */
             netbuf_delete(netbuf);
             continue;
         }
-        if(netbuf_len(netbuf) >= sizeof(struct dhcp_msg)) {
+        if (netbuf_len(netbuf) >= sizeof(struct dhcp_msg)) {
            printf("DHCP Server Warning: Client sent more options than we know how to parse. len=%d\r\n", netbuf_len(netbuf));
         }
 
@@ -152,18 +180,18 @@ static void dhcpserver_task(void *pxParameter)
 
         uint8_t *message_type = find_dhcp_option(&received, DHCP_OPTION_MESSAGE_TYPE,
                                                  DHCP_OPTION_MESSAGE_TYPE_LEN, NULL);
-        if(!message_type) {
+        if (!message_type) {
             printf("DHCP Server Error: No message type field found");
             continue;
         }
 
-
         printf("State dump. Message type %d\n", *message_type);
-        for(int i = 0; i < state->max_leases; i++) {
+        for (int i = 0; i < state->max_leases; i++) {
             dhcp_lease_t *lease = &state->leases[i];
-            printf("lease slot %d expiry %d hwaddr %02x:%02x:%02x:%02x:%02x:%02x\r\n", i, lease->expires, lease->hwaddr[0],
-                   lease->hwaddr[1], lease->hwaddr[2], lease->hwaddr[3], lease->hwaddr[4],
-                   lease->hwaddr[5]);
+            printf("lease slot %d active %d expiry %d hwaddr %02x:%02x:%02x:%02x:%02x:%02x\r\n", i,
+                   lease->active, lease->expires - now,
+                   lease->hwaddr[0], lease->hwaddr[1], lease->hwaddr[2],
+                   lease->hwaddr[3], lease->hwaddr[4], lease->hwaddr[5]);
         }
 
         switch(*message_type) {
@@ -184,13 +212,13 @@ static void dhcpserver_task(void *pxParameter)
 
 static void handle_dhcp_discover(struct dhcp_msg *dhcpmsg)
 {
-    if(dhcpmsg->htype != DHCP_HTYPE_ETH)
+    if (dhcpmsg->htype != LWIP_IANA_HWTYPE_ETHERNET)
         return;
-    if(dhcpmsg->hlen > NETIF_MAX_HWADDR_LEN)
+    if (dhcpmsg->hlen > NETIF_MAX_HWADDR_LEN)
         return;
 
     dhcp_lease_t *freelease = find_lease_slot(dhcpmsg->chaddr);
-    if(!freelease) {
+    if (!freelease) {
         printf("DHCP Server: All leases taken.\r\n");
         return; /* Nothing available, so do nothing */
     }
@@ -199,13 +227,19 @@ static void handle_dhcp_discover(struct dhcp_msg *dhcpmsg)
     dhcpmsg->op = DHCP_BOOTREPLY;
     bzero(dhcpmsg->options, DHCP_OPTIONS_LEN);
 
-    ip_addr_copy(dhcpmsg->yiaddr, state->first_client_addr);
-    ip4_addr4(&(dhcpmsg->yiaddr)) += (freelease - state->leases);
+    dhcpmsg->yiaddr.addr = lwip_htonl(lwip_ntohl(state->first_client_addr.addr) + (freelease - state->leases));
 
     uint8_t *opt = (uint8_t *)&dhcpmsg->options;
     opt = add_dhcp_option_byte(opt, DHCP_OPTION_MESSAGE_TYPE, DHCP_OFFER);
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_SERVER_ID, &state->server_if->ip_addr, 4);
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_SUBNET_MASK, &state->server_if->netmask, 4);
+    if (!ip4_addr_isany_val(state->router)) {
+        opt = add_dhcp_option_bytes(opt, DHCP_OPTION_ROUTER, &state->router, 4);
+    }
+    if (!ip4_addr_isany_val(state->dns)) {
+        opt = add_dhcp_option_bytes(opt, DHCP_OPTION_DNS_SERVER, &state->dns, 4);
+    }
+
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_END, NULL, 0);
 
     struct netbuf *netbuf = netbuf_new();
@@ -218,17 +252,17 @@ static void handle_dhcp_discover(struct dhcp_msg *dhcpmsg)
 static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
 {
     static char ipbuf[16];
-    if(dhcpmsg->htype != DHCP_HTYPE_ETH)
+    if (dhcpmsg->htype != LWIP_IANA_HWTYPE_ETHERNET)
         return;
-    if(dhcpmsg->hlen > NETIF_MAX_HWADDR_LEN)
+    if (dhcpmsg->hlen > NETIF_MAX_HWADDR_LEN)
         return;
 
-    ip_addr_t requested_ip;
+    ip4_addr_t requested_ip;
     uint8_t *requested_ip_opt = find_dhcp_option(dhcpmsg, DHCP_OPTION_REQUESTED_IP, 4, NULL);
-    if(requested_ip_opt) {
-            memcpy(&requested_ip.addr, requested_ip_opt, 4);
-    } else if(ip_addr_cmp(&requested_ip, IP_ADDR_ANY)) {
-        ip_addr_copy(requested_ip, dhcpmsg->ciaddr);
+    if (requested_ip_opt) {
+        memcpy(&requested_ip.addr, requested_ip_opt, 4);
+    } else if (ip4_addr_cmp(&requested_ip, IP4_ADDR_ANY4)) {
+        ip4_addr_copy(requested_ip, dhcpmsg->ciaddr);
     } else {
         printf("DHCP Server Error: No requested IP\r\n");
         send_dhcp_nak(dhcpmsg);
@@ -236,7 +270,7 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
     }
 
     /* Test the first 4 octets match */
-    if(ip4_addr1(&requested_ip) != ip4_addr1(&state->first_client_addr)
+    if (ip4_addr1(&requested_ip) != ip4_addr1(&state->first_client_addr)
        || ip4_addr2(&requested_ip) != ip4_addr2(&state->first_client_addr)
        || ip4_addr3(&requested_ip) != ip4_addr3(&state->first_client_addr)) {
         sprintf_ipaddr(&requested_ip, ipbuf);
@@ -246,14 +280,14 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
     }
     /* Test the last octet is in the MAXCLIENTS range */
     int16_t octet_offs = ip4_addr4(&requested_ip) - ip4_addr4(&state->first_client_addr);
-    if(octet_offs < 0 || octet_offs >= state->max_leases) {
+    if (octet_offs < 0 || octet_offs >= state->max_leases) {
         printf("DHCP Server Error: Address out of range\r\n");
         send_dhcp_nak(dhcpmsg);
         return;
     }
 
     dhcp_lease_t *requested_lease = state->leases + octet_offs;
-    if(requested_lease->expires != 0 && memcmp(requested_lease->hwaddr, dhcpmsg->chaddr,dhcpmsg->hlen))
+    if (requested_lease->active && memcmp(requested_lease->hwaddr, dhcpmsg->chaddr,dhcpmsg->hlen))
     {
         printf("DHCP Server Error: Lease for address already taken\r\n");
         send_dhcp_nak(dhcpmsg);
@@ -265,13 +299,17 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
     printf("DHCP lease addr %s assigned to MAC %02x:%02x:%02x:%02x:%02x:%02x\r\n", ipbuf, requested_lease->hwaddr[0],
            requested_lease->hwaddr[1], requested_lease->hwaddr[2], requested_lease->hwaddr[3], requested_lease->hwaddr[4],
            requested_lease->hwaddr[5]);
-    requested_lease->expires = DHCPSERVER_LEASE_TIME * configTICK_RATE_HZ;
+    uint32_t now = xTaskGetTickCount();
+    requested_lease->expires = now + DHCPSERVER_LEASE_TIME * configTICK_RATE_HZ;
+    requested_lease->active = 1;
+
+    sdk_wifi_softap_set_station_info(requested_lease->hwaddr, &requested_ip);
 
     /* Reuse the REQUEST message as the ACK message */
     dhcpmsg->op = DHCP_BOOTREPLY;
     bzero(dhcpmsg->options, DHCP_OPTIONS_LEN);
 
-    ip_addr_copy(dhcpmsg->yiaddr, requested_ip);
+    ip4_addr_copy(dhcpmsg->yiaddr, requested_ip);
 
     uint8_t *opt = (uint8_t *)&dhcpmsg->options;
     opt = add_dhcp_option_byte(opt, DHCP_OPTION_MESSAGE_TYPE, DHCP_ACK);
@@ -279,6 +317,13 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_LEASE_TIME, &expiry, 4);
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_SERVER_ID, &state->server_if->ip_addr, 4);
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_SUBNET_MASK, &state->server_if->netmask, 4);
+    if (!ip4_addr_isany_val(state->router)) {
+        opt = add_dhcp_option_bytes(opt, DHCP_OPTION_ROUTER, &state->router, 4);
+    }
+    if (!ip4_addr_isany_val(state->dns)) {
+        opt = add_dhcp_option_bytes(opt, DHCP_OPTION_DNS_SERVER, &state->dns, 4);
+    }
+
     opt = add_dhcp_option_bytes(opt, DHCP_OPTION_END, NULL, 0);
 
     struct netbuf *netbuf = netbuf_new();
@@ -291,7 +336,8 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg)
 static void handle_dhcp_release(struct dhcp_msg *dhcpmsg)
 {
     dhcp_lease_t *lease = find_lease_slot(dhcpmsg->chaddr);
-    if(lease) {
+    if (lease) {
+        lease->active = 0;
         lease->expires = 0;
     }
 }
@@ -319,17 +365,17 @@ static uint8_t *find_dhcp_option(struct dhcp_msg *msg, uint8_t option_num, uint8
     uint8_t *start = (uint8_t *)&msg->options;
     uint8_t *msg_end = (uint8_t *)msg + sizeof(struct dhcp_msg);
 
-    for(uint8_t *p = start; p < msg_end-2;) {
+    for (uint8_t *p = start; p < msg_end-2;) {
         uint8_t type = *p++;
         uint8_t len = *p++;
-        if(type == DHCP_OPTION_END)
+        if (type == DHCP_OPTION_END)
             return NULL;
-        if(p+len >= msg_end)
+        if (p+len >= msg_end)
             break; /* We've overrun our valid DHCP message size, or this isn't a valid option */
-        if(type == option_num) {
-            if(len < min_length)
+        if (type == option_num) {
+            if (len < min_length)
                 break;
-            if(length)
+            if (length)
                 *length = len;
             return p; /* start of actual option data */
         }
@@ -349,7 +395,7 @@ static uint8_t *add_dhcp_option_byte(uint8_t *opt, uint8_t type, uint8_t value)
 static uint8_t *add_dhcp_option_bytes(uint8_t *opt, uint8_t type, void *value, uint8_t len)
 {
     *opt++ = type;
-    if(len) {
+    if (len) {
         *opt++ = len;
         memcpy(opt, value, len);
     }
@@ -360,8 +406,8 @@ static uint8_t *add_dhcp_option_bytes(uint8_t *opt, uint8_t type, void *value, u
 static dhcp_lease_t *find_lease_slot(uint8_t *hwaddr)
 {
     dhcp_lease_t *empty_lease = NULL;
-    for(int i = 0; i < state->max_leases; i++) {
-        if(state->leases[i].expires == 0 && !empty_lease)
+    for (int i = 0; i < state->max_leases; i++) {
+        if (!state->leases[i].active && !empty_lease)
             empty_lease = &state->leases[i];
         else if (memcmp(hwaddr, state->leases[i].hwaddr, 6) == 0)
             return &state->leases[i];
diff --git a/extras/dhcpserver/include/dhcpserver.h b/extras/dhcpserver/include/dhcpserver.h
index 95a59b8..62fa0ac 100644
--- a/extras/dhcpserver/include/dhcpserver.h
+++ b/extras/dhcpserver/include/dhcpserver.h
@@ -26,14 +26,20 @@ extern "C" {
    to a client.  Subsequent lease addresses are calculated by
    incrementing the final octet of the IPv4 address, up to max_leases.
 */
-void dhcpserver_start(const ip_addr_t *first_client_addr, uint8_t max_leases);
+void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases);
 
-void dhcpserver_get_lease(const ip_addr_t *first_client_addr, uint8_t max_leases);
+void dhcpserver_get_lease(const ip4_addr_t *first_client_addr, uint8_t max_leases);
 
 /* Stop DHCP server.
  */
 void dhcpserver_stop(void);
 
+/* Set a router address to send as an option. */
+void dhcpserver_set_router(const ip4_addr_t *router);
+
+/* Set a DNS address to send as an option. */
+void dhcpserver_set_dns(const ip4_addr_t *dns);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/extras/httpd/httpd.c b/extras/httpd/httpd.c
index f647ca6..253bc13 100644
--- a/extras/httpd/httpd.c
+++ b/extras/httpd/httpd.c
@@ -2675,7 +2675,7 @@ http_accept(void *arg, struct tcp_pcb *pcb, err_t err)
  * Initialize the httpd with the specified local address.
  */
 static void
-httpd_init_addr(ip_addr_t *local_addr)
+httpd_init_addr(const ip_addr_t *local_addr)
 {
   struct tcp_pcb *pcb;
   err_t err;
diff --git a/extras/sntp/sntp.c b/extras/sntp/sntp.c
index d69b60e..c034df2 100644
--- a/extras/sntp/sntp.c
+++ b/extras/sntp/sntp.c
@@ -38,7 +38,7 @@
 
 #include "sntp.h"
 
-#include "lwip/timers.h"
+#include "lwip/timeouts.h"
 #include "lwip/udp.h"
 #include "lwip/dns.h"
 #include "lwip/ip_addr.h"
@@ -136,12 +136,12 @@
 #define SNTP_STARTUP_DELAY          0
 #endif
 
-/** SNTP receive timeout - in milliseconds
+/** SNTP receive timeout - in seconds
  * Also used as retry timeout - this shouldn't be too low.
  * Default is 3 seconds.
  */
 #ifndef SNTP_RECV_TIMEOUT
-#define SNTP_RECV_TIMEOUT           3000
+#define SNTP_RECV_TIMEOUT           3
 #endif
 
 /** SNTP update delay - in milliseconds
@@ -384,8 +384,8 @@ sntp_request(void *arg)
       /* bind to local address */
       if (lwip_bind(sock, (struct sockaddr *)&local, sizeof(local)) == 0) {
         /* set recv timeout */
-        timeout = SNTP_RECV_TIMEOUT;
-        lwip_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
+        const struct timeval timeout = { SNTP_RECV_TIMEOUT, 0 };
+        setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
 
         /* prepare SNTP request */
         sntp_initialize_request(&sntpmsg);
@@ -511,7 +511,7 @@ sntp_try_next_server(void* arg)
 
 /** UDP recv callback for the sntp pcb */
 static void
-sntp_recv(void *arg, struct udp_pcb* pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
+sntp_recv(void *arg, struct udp_pcb* pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
 {
   u8_t mode;
   u8_t stratum;
@@ -597,7 +597,7 @@ sntp_recv(void *arg, struct udp_pcb* pcb, struct pbuf *p, ip_addr_t *addr, u16_t
  * @param server_addr resolved IP address of the SNTP server
  */
 static void
-sntp_send_request(ip_addr_t *server_addr)
+sntp_send_request(const ip_addr_t *server_addr)
 {
   struct pbuf* p;
   p = pbuf_alloc(PBUF_TRANSPORT, SNTP_MSG_LEN, PBUF_RAM);
@@ -611,7 +611,7 @@ sntp_send_request(ip_addr_t *server_addr)
     pbuf_free(p);
 
     /* set up receive timeout: try next server or retry on timeout */
-    sys_timeout((u32_t)SNTP_RECV_TIMEOUT, sntp_try_next_server, NULL);
+    sys_timeout((u32_t)SNTP_RECV_TIMEOUT * 1000, sntp_try_next_server, NULL);
 #if SNTP_CHECK_RESPONSE >= 1
     /* save server address to verify it in sntp_recv */ 
     ip_addr_set(&sntp_last_server_address, server_addr);
@@ -629,7 +629,7 @@ sntp_send_request(ip_addr_t *server_addr)
  * DNS found callback when using DNS names as server address.
  */
 static void
-sntp_dns_found(const char* hostname, ip_addr_t *ipaddr, void *arg)
+sntp_dns_found(const char* hostname, const ip_addr_t *ipaddr, void *arg)
 {
   LWIP_UNUSED_ARG(hostname);
   LWIP_UNUSED_ARG(arg);
diff --git a/include/espressif/esp_wifi.h b/include/espressif/esp_wifi.h
index 5d9ba19..8932974 100644
--- a/include/espressif/esp_wifi.h
+++ b/include/espressif/esp_wifi.h
@@ -44,9 +44,9 @@ enum {
 };
 
 struct ip_info {
-    struct ip_addr ip;
-    struct ip_addr netmask;
-    struct ip_addr gw;
+    struct ip4_addr ip;
+    struct ip4_addr netmask;
+    struct ip4_addr gw;
 };
 
 bool sdk_wifi_get_ip_info(uint8_t if_index, struct ip_info *info);
diff --git a/include/espressif/sdk_private.h b/include/espressif/sdk_private.h
index fa643a7..7ae4336 100644
--- a/include/espressif/sdk_private.h
+++ b/include/espressif/sdk_private.h
@@ -20,7 +20,7 @@
 extern "C" {
 #endif
 
-struct ip_addr;
+struct ip4_addr;
 
 /*********************************************
 * Defined in libmain.a
@@ -43,17 +43,6 @@ int sdk_uart_rx_one_char(char *buf);
  */
 void sdk_os_putc(char c);
 
-/* Called when an IP gets set on the "station" (client) interface.
- */
-void sdk_system_station_got_ip_set(struct ip_addr *ip_addr, struct ip_addr *sn_mask, struct ip_addr *gw_addr);
-
-/* This is a no-op wrapper around ppRecycleRxPkt, which is defined in libpp.a
-
-   It's called when a pbuf is freed, and allows pp to reuse the 'eb' pointer to ESP-specific
-   pbuf data. (See esp-lwip pbuf.h)
- */
-void sdk_system_pp_recycle_rx_pkt(void *eb);
-
 #ifdef	__cplusplus
 }
 #endif
diff --git a/lib/allsymbols.rename b/lib/allsymbols.rename
index 5425845..cf30bc9 100644
--- a/lib/allsymbols.rename
+++ b/lib/allsymbols.rename
@@ -289,6 +289,7 @@ os_timer_disarm sdk_os_timer_disarm
 os_timer_setfn sdk_os_timer_setfn
 os_update_cpu_frequency sdk_os_update_cpu_frequency
 pbkdf2_sha1 sdk_pbkdf2_sha1
+pbuf_alloc sdk_pbuf_alloc
 pbus_set_rxbbgain sdk_pbus_set_rxbbgain
 pend_flag_noise_check sdk_pend_flag_noise_check
 pend_flag_periodic_cal sdk_pend_flag_periodic_cal
diff --git a/lib/libmain.a b/lib/libmain.a
index 60657ec70a21b62084159e73422b8cb181e2e616..cd6f83a659d86ce29265037b6d841e49202b791f 100644
GIT binary patch
delta 33
ocmca{g8jw`_J%Et=Y<$Kre6?ZJPM?y2{YO;a%{gU%-DPZ0OBVMF#rGn

delta 33
ocmca{g8jw`_J%Et=Y<$Gr(Y0aJPM?y2{YO;YHq(O%-DPZ0OyemlmGw#

diff --git a/lib/libnet80211.a b/lib/libnet80211.a
index 4a36331b360d0318ab80208b2ae8ddd112629e75..1146020e47b52d92c3f0413b67e2c8a96a78bbbc 100644
GIT binary patch
delta 193
zcmew|oBPXb?hWz0F~|B
z#;6M9-rvUP8w#X#d6>R|q*Vl%GQ)s$Um8;xufzuhhK3G<_8I)Tyo@jYA7Eer($D{Y
aP}nY0!t`E=Ju@vnCBHmxyU=u|M`i%ZQajlI

delta 193
zcmew|oBPXb?hWz0F~|B
z#;6M9-rvUP8w#X#d6>R|q*Vl%GQ)s$Um8;xufzcch9+Kp^9+7nUd9*yfjl7n97u1M
XDPelA#9ow|lbTqZx?N~G(<3tg)=)g`

diff --git a/lib/libpp.a b/lib/libpp.a
index 274786388ce91e877e2716ba62bf2c69f01552ac..39631a2fa9240b24b8337a19f26c95e21fb51371 100644
GIT binary patch
delta 49
zcmeBL$KAD#dxMQABmZPuQ61)M{k+XNqU|}NjN5ZWnYKkUi7-r8DP+3Nw18#%-$Ewd
FQ~-^I56}Pr

delta 49
zcmeBL$KAD#dxMQAg5GH%ZiW!e_a*BD`nUboKgO~EMvm=){!HFV0NR5MApigX

delta 28
kcmbR9m~+l!&J8#JF={s7`nUboKgO~EM$PSk{!HFV0NuO|V*mgE

diff --git a/lwip/component.mk b/lwip/component.mk
index 1bbe21c..ea35d05 100644
--- a/lwip/component.mk
+++ b/lwip/component.mk
@@ -1,14 +1,12 @@
 # Component makefile for LWIP
 
 LWIP_DIR = $(lwip_ROOT)lwip/src/
-INC_DIRS += $(LWIP_DIR)include $(ROOT)lwip/include $(lwip_ROOT)include $(LWIP_DIR)include/posix $(LWIP_DIR)include/ipv4 $(LWIP_DIR)include/ipv4/lwip $(LWIP_DIR)include/lwip
+INC_DIRS += $(LWIP_DIR)include $(ROOT)lwip/include $(lwip_ROOT)include $(LWIP_DIR)include/compat/posix $(LWIP_DIR)include/ipv4 $(LWIP_DIR)include/ipv4/lwip $(LWIP_DIR)include/lwip
 
 # args for passing into compile rule generation
 lwip_INC_DIR =  # all in INC_DIRS, needed for normal operation
-lwip_SRC_DIR = $(lwip_ROOT) $(LWIP_DIR)api $(LWIP_DIR)core $(LWIP_DIR)core/ipv4 $(LWIP_DIR)netif
-
-# LWIP 1.4.1 generates a single warning so we need to disable -Werror when building it
-lwip_CFLAGS = $(CFLAGS) -Wno-address
+lwip_SRC_DIR = $(lwip_ROOT) $(LWIP_DIR)api $(LWIP_DIR)core $(LWIP_DIR)core/ipv4 $(LWIP_DIR)core/ipv6 $(LWIP_DIR)netif
+lwip_SRC_DIR += $(LWIP_DIR)apps/*
 
 $(eval $(call component_compile_rules,lwip))
 
diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c
index 6f37b5a..1edb508 100644
--- a/lwip/esp_interface.c
+++ b/lwip/esp_interface.c
@@ -37,6 +37,7 @@
  * Original Author: Simon Goldschmidt
  * Modified by Angus Gratton based on work by @kadamski/Espressif via esp-lwip project.
  */
+#include 
 #include "lwip/opt.h"
 
 #include "lwip/def.h"
@@ -44,71 +45,138 @@
 #include "lwip/pbuf.h"
 #include 
 #include 
+#include "lwip/ip.h"
+#include "lwip/ethip6.h"
 #include "netif/etharp.h"
+#include "sysparam.h"
+#include "netif/ppp/pppoe.h"
 
 /* declared in libnet80211.a */
 int8_t sdk_ieee80211_output_pbuf(struct netif *ifp, struct pbuf* pb);
 
+/* Define those to better describe your network interface. */
+#define IFNAME0 'e'
+#define IFNAME1 'n'
+
+/**
+ * In this function, the hardware should be initialized.
+ * Called from ethernetif_init().
+ *
+ * @param netif the already initialized lwip network interface structure
+ *        for this ethernetif
+ */
+static void
+low_level_init(struct netif *netif)
+{
+    /* set MAC hardware address length */
+    netif->hwaddr_len = ETHARP_HWADDR_LEN;
+
+    /* maximum transfer unit */
+    netif->mtu = 1500;
+
+    /* device capabilities */
+    /* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */
+    netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP | NETIF_FLAG_MLD6;
+
+    /* Do whatever else is needed to initialize interface. */
+}
+
+/**
+ * This function should do the actual transmission of the packet. The packet is
+ * contained in the pbuf that is passed to the function. This pbuf
+ * might be chained.
+ *
+ * @param netif the lwip network interface structure for this ethernetif
+ * @param p the MAC packet to send (e.g. IP packet including MAC addresses and type)
+ * @return ERR_OK if the packet could be sent
+ *         an err_t value if the packet couldn't be sent
+ *
+ * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to
+ *       strange results. You might consider waiting for space in the DMA queue
+ *       to become available since the stack doesn't retry to send a packet
+ *       dropped because of memory failure (except for the TCP timers).
+ */
+#define SIZEOF_STRUCT_PBUF        LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf))
 static err_t
 low_level_output(struct netif *netif, struct pbuf *p)
 {
-  struct pbuf *q;
+    /*
+     * Note the pbuf reference count is generally one here, but not always. For
+     * example a buffer that had been queued by etharp_query() would have had
+     * its reference count increased to two, and the caller will free it on that
+     * return path.
+     */
 
-  for(q = p; q != NULL; q = q->next) {
-      sdk_ieee80211_output_pbuf(netif, q);
-  }
+    /* If the pbuf does not have contiguous data, or there is not enough room
+     * for the link layer header, or there are multiple pbufs in the chain then
+     * clone a pbuf to output. */
+    if ((p->type_internal & PBUF_TYPE_FLAG_STRUCT_DATA_CONTIGUOUS) == 0 ||
+        (u8_t *)p->payload < (u8_t *)p + SIZEOF_STRUCT_PBUF + PBUF_LINK_ENCAPSULATION_HLEN ||
+        p->next) {
+        struct pbuf *q = pbuf_clone(PBUF_RAW_TX, PBUF_RAM, p);
+        if (q == NULL) {
+            return ERR_MEM;
+        }
+        sdk_ieee80211_output_pbuf(netif, q);
+        /* The sdk will pbuf_ref the pbuf before returning and free it later
+         * when it has been sent so free the link to it here. */
+        pbuf_free(q);
+    } else {
+        /* The SDK modifies the eth_hdr, well the first 12 bytes of it at least,
+         * but otherwise leaves the payload unmodified so it can be reused by
+         * the caller. The only paths that appear to reuse the pbuf are in
+         * tcp_out for re-transmission of TCP segments, and these paths check
+         * that the number of references has returned to one before reusing the
+         * pbuf.
+         */
+        sdk_ieee80211_output_pbuf(netif, p);
+    }
 
-  LINK_STATS_INC(link.xmit);
-
-  return ERR_OK;
+    LINK_STATS_INC(link.xmit);
+    return ERR_OK;
 }
 
 
-err_t ethernetif_init(struct netif *netif)
-{
-  LWIP_ASSERT("netif != NULL", (netif != NULL));
-
-#if LWIP_NETIF_HOSTNAME
-  /* Initialize interface hostname */
-  netif->hostname = "lwip";
-#endif /* LWIP_NETIF_HOSTNAME */
-
-  /*
-   * Initialize the snmp variables and counters inside the struct netif.
-   * The last argument should be replaced with your link speed, in units
-   * of bits per second.
-   */
-  NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
-
-  // don't touch netif->state here, the field is used internally in the ESP SDK layers
-  netif->name[0] = 'e';
-  netif->name[1] = 'n';
-  netif->output = etharp_output;
-  netif->linkoutput = low_level_output;
-
-  /* low_level_init components */
-  netif->hwaddr_len = 6;
-  /* hwaddr seems to be set elsewhere, or (more likely) is set on tx by MAC layer */
-  netif->mtu = 1500;
-  netif->flags = NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
-
-  return ERR_OK;
-}
-
+/**
+ * This function should be called when a packet is ready to be read
+ * from the interface. It uses the function low_level_input() that
+ * should handle the actual reception of bytes from the network
+ * interface. Then the type of the received packet is determined and
+ * the appropriate input function is called.
+ *
+ * @param netif the lwip network interface structure for this ethernetif
+ */
 /* called from ieee80211_deliver_data with new IP frames */
 void ethernetif_input(struct netif *netif, struct pbuf *p)
 {
-    struct eth_hdr *ethhdr = p->payload;
-  /* examine packet payloads ethernet header */
+    struct eth_hdr *ethhdr;
 
+    if (p == NULL) {
+        return;
+    }
+
+    if (p->payload == NULL) {
+        return;
+    }
+
+    if (netif == NULL) {
+        return;
+    }
+
+    ethhdr = p->payload;
 
     switch(htons(ethhdr->type)) {
 	/* IP or ARP packet? */
     case ETHTYPE_IP:
+    case ETHTYPE_IPV6:
     case ETHTYPE_ARP:
-//  case ETHTYPE_IPV6:
+#if PPPOE_SUPPORT
+        /* PPPoE packet? */
+    case ETHTYPE_PPPOEDISC:
+    case ETHTYPE_PPPOE:
+#endif /* PPPOE_SUPPORT */
 	/* full packet send to tcpip_thread to process */
-	if (netif->input(p, netif)!=ERR_OK)
+	if (netif->input(p, netif) != ERR_OK)
 	{
 	    LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_input: IP input error\n"));
 	    pbuf_free(p);
@@ -122,3 +190,98 @@ void ethernetif_input(struct netif *netif, struct pbuf *p)
 	break;
     }
 }
+
+/* Since the pbuf_type definition has changed in lwip v2 and it is used by the
+ * sdk when calling pbuf_alloc, the SDK libraries have been modified to rename
+ * their references to pbuf_alloc to _pbufalloc allowing the pbuf_type to be
+ * rewritten here. Doing this here keeps this hack out of the lwip code, and
+ * ensures that this re-writing is only applied to the sdk calls to pbuf_alloc.
+ *
+ * The only pbuf types used by the SDK are type 0 for PBUF_RAM when writing
+ * data, and type 2 for the received data. The receive data path references
+ * internal buffer objects that need to be freed with custom code so a custom
+ * pbuf allocation type is used for these.
+ *
+ * The pbuf_layer is now also the header offset, but the sdk calls only call
+ * with a value of 3 which was PBUF_RAW and is now translated to a header
+ * offset of zero.
+ */
+struct pbuf *sdk_pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type) {
+    if (type == 0) {
+        LWIP_ASSERT("Unexpected sdk_pbuf_alloc layer", layer == 3 || layer == 4);
+        return pbuf_alloc(PBUF_RAW_TX, length, PBUF_RAM);
+    } else if (type == 2) {
+        LWIP_ASSERT("Unexpected sdk_pbuf_alloc layer", layer == 3);
+        return pbuf_alloc_reference(NULL, length, PBUF_ALLOC_FLAG_RX | PBUF_TYPE_ALLOC_SRC_MASK_ESP_RX);
+    } else {
+        LWIP_ASSERT("Unexpected pbuf_alloc type", 0);
+        for (;;);
+    }
+}
+
+/**
+ * Should be called at the beginning of the program to set up the
+ * network interface. It calls the function low_level_init() to do the
+ * actual setup of the hardware.
+ *
+ * This function should be passed as a parameter to netif_add().
+ *
+ * @param netif the lwip network interface structure for this ethernetif
+ * @return ERR_OK if the loopif is initialized
+ *         ERR_MEM if private data couldn't be allocated
+ *         any other err_t on error
+ */
+err_t
+ethernetif_init(struct netif *netif)
+{
+    LWIP_ASSERT("netif != NULL", (netif != NULL));
+
+    /* The hwaddr is currently set by sdk_wifi_station_start or
+     * sdk_wifi_softap_start. */
+
+#if LWIP_IPV6
+    // Where to do this???
+    netif_create_ip6_linklocal_address(netif, 1);
+    netif->ip6_autoconfig_enabled = 1;
+    printf("ip6 link local address %s\n", ip6addr_ntoa(netif_ip6_addr(netif, 0)));
+#endif
+
+#if LWIP_NETIF_HOSTNAME
+    /* Initialize interface hostname */
+    char *hostname = NULL;
+    /* Disabled for now as there were reports of crashes here, sysparam issues */
+    /* sysparam_get_string("hostname", &hostname); */
+    if (hostname && strlen(hostname) == 0) {
+        free(hostname);
+        hostname = NULL;
+    }
+    netif->hostname = hostname;
+#endif /* LWIP_NETIF_HOSTNAME */
+
+    /*
+     * Initialize the snmp variables and counters inside the struct netif.
+     * The last argument should be replaced with your link speed, in units
+     * of bits per second.
+     */
+    NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
+
+    // don't touch netif->state here, the field is used internally in the ESP SDK layers
+    netif->name[0] = IFNAME0;
+    netif->name[1] = IFNAME1;
+    /* We directly use etharp_output() here to save a function call.
+     * You can instead declare your own function an call etharp_output()
+     * from it if you have to do some checks before sending (e.g. if link
+     * is available...) */
+#if LWIP_IPV4
+    netif->output = etharp_output;
+#endif /* LWIP_IPV4 */
+#if LWIP_IPV6
+    netif->output_ip6 = ethip6_output;
+#endif /* LWIP_IPV6 */
+    netif->linkoutput = low_level_output;
+
+    /* initialize the hardware */
+    low_level_init(netif);
+
+    return ERR_OK;
+}
diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h
index 2922a54..5bf9d80 100644
--- a/lwip/include/arch/cc.h
+++ b/lwip/include/arch/cc.h
@@ -32,36 +32,18 @@
 #ifndef __ARCH_CC_H__
 #define __ARCH_CC_H__
 
-/* include ESP SDK prototypes as they're used in some LWIP routines */
-#include "espressif/sdk_private.h"
-
-/* ESP8266 SDK Interface
-
-   The lwip-esp stack is designed to be also compatible with other ESP8266 SDKs,
-   so we can't use our 'sdk_' prefixes there
-*/
-#define system_station_got_ip_set sdk_system_station_got_ip_set
-#define system_pp_recycle_rx_pkt sdk_system_pp_recycle_rx_pkt
-
 /* Include some files for defining library routines */
 #include  /* printf, fflush, FILE */
 #include  /* abort */
 #include 
 #include 
 #include 
+#include 
 
-#define ERRNO
-
-#define BYTE_ORDER LITTLE_ENDIAN
-
-/** @todo fix some warnings: don't use #pragma if compiling with cygwin gcc */
-#ifndef __GNUC__
-	#include 
-	#pragma warning (disable: 4244) /* disable conversion warning (implicit integer promotion!) */
-	#pragma warning (disable: 4127) /* conditional expression is constant */
-	#pragma warning (disable: 4996) /* 'strncpy' was declared deprecated */
-	#pragma warning (disable: 4103) /* structure packing changed by including file */
-#endif
+struct ip4_addr;
+struct esf_buf;
+void sdk_system_station_got_ip_set(struct ip4_addr *, struct ip4_addr *, struct ip4_addr *);
+void sdk_system_pp_recycle_rx_pkt(struct esf_buf *);
 
 /* Define generic types used in lwIP */
 typedef uint8_t    u8_t;
@@ -112,4 +94,6 @@ typedef int sys_prot_t;
 #define LWIP_PLATFORM_HTONS(_n)  ((u16_t)((((_n) & 0xff) << 8) | (((_n) >> 8) & 0xff)))
 #define LWIP_PLATFORM_HTONL(_n)  ((u32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8)  & 0xff00) | (((_n) >> 24) & 0xff) ))
 
+#define LWIP_RAND()                         hwrand()
+
 #endif /* __ARCH_CC_H__ */
diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h
index 8f46c7d..567c856 100644
--- a/lwip/include/lwipopts.h
+++ b/lwip/include/lwipopts.h
@@ -32,11 +32,15 @@
 #ifndef __LWIPOPTS_H__
 #define __LWIPOPTS_H__
 
-#define LWIP_ESP                            1
-#define ESP_RTOS                            1
-#define PBUF_RSV_FOR_WLAN                   1
-#define EBUF_LWIP                           1
+#define ESP_OPEN_RTOS                       1
+
+/* See tcp.c tcp_alloc(). */
+#ifndef ESP_TIMEWAIT_THRESHOLD
 #define ESP_TIMEWAIT_THRESHOLD              10000
+#endif
+
+/** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided
+ * by your system, set this to 0 and include  in cc.h */
 #define LWIP_TIMEVAL_PRIVATE                0
 
 /*
@@ -63,6 +67,32 @@
  */
 #define SMEMCPY(dst,src,len)            memcpy(dst,src,len)
 
+/*
+   ------------------------------------
+   ----------- Core locking -----------
+   ------------------------------------
+*/
+
+/**
+ * LWIP_TCPIP_CORE_LOCKING
+ * Creates a global mutex that is held during TCPIP thread operations.
+ * Can be locked by client code to perform lwIP operations without changing
+ * into TCPIP thread using callbacks. See LOCK_TCPIP_CORE() and
+ * UNLOCK_TCPIP_CORE().
+ * Your system should provide mutexes supporting priority inversion to use this.
+ */
+#define LWIP_TCPIP_CORE_LOCKING         1
+
+/**
+ * LWIP_TCPIP_CORE_LOCKING_INPUT: when LWIP_TCPIP_CORE_LOCKING is enabled,
+ * this lets tcpip_input() grab the mutex for input packets as well,
+ * instead of allocating a message and passing it to tcpip_thread.
+ *
+ * ATTENTION: this does not work when tcpip_input() is called from
+ * interrupt context!
+ */
+#define LWIP_TCPIP_CORE_LOCKING_INPUT   1
+
 /*
    ------------------------------------
    ---------- Memory options ----------
@@ -76,16 +106,20 @@
 #define MEM_LIBC_MALLOC        1
 
 /**
-* MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
-* Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
-* speed and usage from interrupts!
-*/
+ * MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
+ * Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
+ * speed (heap alloc can be much slower than pool alloc) and usage from interrupts
+ * (especially if your netif driver allocates PBUF_POOL pbufs for received frames
+ * from interrupt)!
+ * ATTENTION: Currently, this uses the heap for ALL pools (also for private pools,
+ * not only for internal pools defined in memp_std.h)!
+ */
 #define MEMP_MEM_MALLOC                 1
 
 /**
  * MEM_ALIGNMENT: should be set to the alignment of the CPU
- *    4 byte alignment -> #define MEM_ALIGNMENT 4
- *    2 byte alignment -> #define MEM_ALIGNMENT 2
+ *    4 byte alignment -> \#define MEM_ALIGNMENT 4
+ *    2 byte alignment -> \#define MEM_ALIGNMENT 2
  */
 #define MEM_ALIGNMENT           4
 
@@ -100,6 +134,14 @@
    ---------- ARP options -------
    --------------------------------
 */
+
+/**
+ * LWIP_ARP==1: Enable ARP functionality.
+ */
+#ifndef LWIP_ARP
+#define LWIP_ARP                        1
+#endif
+
 /**
  * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address
  * resolution. By default, only the most recent packet is queued per IP address.
@@ -107,7 +149,9 @@
  * startup time. Set this to 1 if you know your application sends more than one
  * packet in a row to an IP address that is not in the ARP cache.
  */
+#ifndef ARP_QUEUEING
 #define ARP_QUEUEING                    1
+#endif
 
 /*
    --------------------------------
@@ -119,21 +163,27 @@
  * this option does not affect outgoing packet sizes, which can be controlled
  * via IP_FRAG.
  */
-#define IP_REASSEMBLY                   0
+#ifndef IP_REASSEMBLY
+#define IP_REASSEMBLY                   1
+#endif
 
 /**
  * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
  * that this option does not affect incoming packet sizes, which can be
  * controlled via IP_REASSEMBLY.
  */
+#ifndef IP_FRAG
 #define IP_FRAG                         1
+#endif
 
 /**
  * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
  * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
  * in this time, the whole packet is discarded.
  */
+#ifndef IP_REASS_MAXAGE
 #define IP_REASS_MAXAGE                 3
+#endif
 
 /**
  * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
@@ -141,7 +191,9 @@
  * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
  * packets even if the maximum amount of fragments is enqueued for reassembly!
  */
-#define IP_REASS_MAX_PBUFS              10
+#ifndef IP_REASS_MAX_PBUFS
+#define IP_REASS_MAX_PBUFS              2
+#endif
 
 /*
    ----------------------------------
@@ -163,7 +215,16 @@
 /**
  * LWIP_DHCP==1: Enable DHCP module.
  */
+#ifndef LWIP_DHCP
 #define LWIP_DHCP                       1
+#endif
+
+/**
+ * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.
+ */
+#ifndef DHCP_DOES_ARP_CHECK
+#define DHCP_DOES_ARP_CHECK             ((LWIP_DHCP) && (LWIP_ARP))
+#endif
 
 #define LWIP_DHCP_BOOTP_FILE            0
 
@@ -174,14 +235,21 @@
 */
 /*
    ----------------------------------
-   ---------- SNMP options ----------
+   ----- SNMP MIB2 support      -----
    ----------------------------------
 */
 /*
    ----------------------------------
-   ---------- IGMP options ----------
+   ----- Multicast/IGMP options -----
    ----------------------------------
 */
+/**
+ * LWIP_IGMP==1: Turn on IGMP module.
+ */
+#ifndef LWIP_IGMP
+#define LWIP_IGMP                       1
+#endif
+
 /*
    ----------------------------------
    ---------- DNS options -----------
@@ -191,10 +259,19 @@
  * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
  * transport.
  */
+#ifndef LWIP_DNS
 #define LWIP_DNS                        1
+#endif
 
+/** DNS maximum number of entries to maintain locally. */
+#ifndef DNS_TABLE_SIZE
 #define DNS_TABLE_SIZE 1
+#endif
+
+/** DNS maximum host name length supported in the name table. */
+#ifndef DNS_MAX_NAME_LENGTH
 #define DNS_MAX_NAME_LENGTH 128
+#endif
 
 /*
    ---------------------------------
@@ -206,30 +283,74 @@
    ---------- TCP options ----------
    ---------------------------------
 */
-/**
- * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.
- * Define to 0 if your device is low on memory.
- */
-#define TCP_QUEUE_OOSEQ                 0
-
-/*
- *     LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all
- *         events (accept, sent, etc) that happen in the system.
- *     LWIP_CALLBACK_API==1: The PCB callback function is called directly
- *         for the event. This is the default.
-*/
-#define TCP_MSS                         1460
-
 /**
  * TCP_MAXRTX: Maximum number of retransmissions of data segments.
  */
+#ifndef TCP_MAXRTX
 #define TCP_MAXRTX                      6
-
+#endif
 
 /**
  * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.
  */
+#ifndef TCP_SYNMAXRTX
 #define TCP_SYNMAXRTX                   3
+#endif
+
+/**
+ * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.
+ * Define to 0 if your device is low on memory.
+ */
+#ifndef TCP_QUEUE_OOSEQ
+#define TCP_QUEUE_OOSEQ                 1
+#endif
+
+/**
+ * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default,
+ * you might want to increase this.)
+ * For the receive side, this MSS is advertised to the remote side
+ * when opening a connection. For the transmit size, this MSS sets
+ * an upper limit on the MSS advertised by the remote host.
+ */
+#ifndef TCP_MSS
+#define TCP_MSS                         1460
+#endif
+
+/**
+ * TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb.
+ * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==1.
+ */
+#ifndef TCP_OOSEQ_MAX_BYTES
+#if TCP_OOSEQ_MAX_BYTES
+#define TCP_OOSEQ_MAX_BYTES             (2 * TCP_MSS)
+#endif
+#endif
+
+/**
+ * TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb.
+ * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==1.
+ */
+#ifndef TCP_OOSEQ_MAX_PBUFS
+#if TCP_OOSEQ_MAX_PBUFS
+#define TCP_OOSEQ_MAX_PBUFS             2
+#endif
+#endif
+
+/**
+ * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb.
+ */
+#ifndef TCP_LISTEN_BACKLOG
+#define TCP_LISTEN_BACKLOG              1
+#endif
+
+/**
+ * The maximum allowed backlog for TCP listen netconns.
+ * This backlog is used unless another is explicitly specified.
+ * 0xff is the maximum (u8_t).
+ */
+#ifndef TCP_DEFAULT_LISTEN_BACKLOG
+#define TCP_DEFAULT_LISTEN_BACKLOG      2
+#endif
 
 /*
    ----------------------------------
@@ -237,19 +358,50 @@
    ----------------------------------
 */
 
+/**
+ * PBUF_LINK_ENCAPSULATION_HLEN: the number of bytes that should be allocated
+ * for an additional encapsulation header before ethernet headers (e.g. 802.11)
+ *
+ * 1. LINK_HLEN 14Byte will be remove in WLAN layer
+ * 2. IEEE80211_HDR_MAX_LEN needs 40 bytes.
+ * 3. encryption needs exra 4 bytes ahead of actual data payload, and require
+ *     DAddr and SAddr to be 4-byte aligned.
+ * 4. TRANSPORT and IP are all 20, 4 bytes aligned, nice...
+ * 5. LCC add 6 bytes more, We don't consider WAPI yet...
+ * 6. define LWIP_MEM_ALIGN to be 4 Byte aligned, pbuf struct is 16B, Only thing may be
+ *     matter is ether_hdr is not 4B aligned.
+ *
+ * So, we need extra (40 + 4 - 14) = 30 and it's happen to be 4-Byte aligned
+ *
+ *    1. lwip
+ *         | empty 30B    | eth_hdr (14B)  | payload ...|
+ *              total: 44B ahead payload
+ *    2. net80211
+ *         | max 80211 hdr, 32B | ccmp/tkip iv (8B) | sec rsv(4B) | payload ...|
+ *              total: 40B ahead sec_rsv and 44B ahead payload
+ *
+ */
+#define PBUF_LINK_ENCAPSULATION_HLEN    36
+
 /*
    ------------------------------------------------
    ---------- Network Interfaces options ----------
    ------------------------------------------------
 */
 /**
- * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data
+ * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname
+ * field.
+ */
+#ifndef LWIP_NETIF_HOSTNAME
+#define LWIP_NETIF_HOSTNAME             1
+#endif
+
+/**
+ * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP *tries* to put all data
  * to be sent into one single pbuf. This is for compatibility with DMA-enabled
  * MACs that do not support scatter-gather.
  * Beware that this might involve CPU-memcpy before transmitting that would not
  * be needed without this flag! Use this only if you need to!
- *
- * @todo: TCP and IP-frag do not work with this, yet:
  */
 #define LWIP_NETIF_TX_SINGLE_PBUF             1
 
@@ -275,7 +427,9 @@
  * The stack size value itself is platform-dependent, but is passed to
  * sys_thread_new() when the thread is created.
  */
-#define TCPIP_THREAD_STACKSIZE          512			//not ok:384 
+#ifndef TCPIP_THREAD_STACKSIZE
+#define TCPIP_THREAD_STACKSIZE          768
+#endif
 
 /**
  * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread.
@@ -327,30 +481,40 @@
  * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and
  * SO_SNDTIMEO processing.
  */
+#ifndef LWIP_SO_SNDTIMEO
 #define LWIP_SO_SNDTIMEO                1
+#endif
 
 /**
  * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and
  * SO_RCVTIMEO processing.
  */
+#ifndef LWIP_SO_RCVTIMEO
 #define LWIP_SO_RCVTIMEO                1
+#endif
 
 /**
  * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
  * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
  * in seconds. (does not require sockets.c, and will affect tcp.c)
  */
+#ifndef LWIP_TCP_KEEPALIVE
 #define LWIP_TCP_KEEPALIVE              1
+#endif
 
 /**
  * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
  */
+#ifndef LWIP_SO_RCVBUF
 #define LWIP_SO_RCVBUF                  0
+#endif
 
 /**
  * SO_REUSE==1: Enable SO_REUSEADDR option.
  */
+#ifndef SO_REUSE
 #define SO_REUSE                        1
+#endif
 
 /*
    ----------------------------------------
@@ -358,6 +522,20 @@
    ----------------------------------------
 */
 
+/**
+ * LWIP_STATS==1: Enable statistics collection in lwip_stats.
+ */
+#ifndef LWIP_STATS
+#define LWIP_STATS                      0
+#endif
+
+/**
+ * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions.
+ */
+#ifndef LWIP_STATS_DISPLAY
+#define LWIP_STATS_DISPLAY              0
+#endif
+
 /*
    ---------------------------------
    ---------- PPP options ----------
@@ -375,6 +553,12 @@
    ---------- IPv6 options ---------------
    ---------------------------------------
 */
+/**
+ * LWIP_IPV6==1: Enable IPv6
+ */
+#ifndef LWIP_IPV6
+#define LWIP_IPV6                       0
+#endif
 
 /*
    ---------------------------------------
@@ -391,11 +575,29 @@
 // Uncomment this line, and set the individual debug options you want, for IP stack debug output
 //#define LWIP_DEBUG
 
+/**
+ * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is
+ * compared against this value. If it is smaller, then debugging
+ * messages are written.
+ */
+//#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_WARNING
+
+/**
+ * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable
+ * debug messages of certain types.
+ */
+#define LWIP_DBG_TYPES_ON               LWIP_DBG_ON
+
 /**
  * ETHARP_DEBUG: Enable debugging in etharp.c.
  */
 #define ETHARP_DEBUG                    LWIP_DBG_OFF
 
+/**
+ * NETIF_DEBUG: Enable debugging in netif.c.
+ */
+#define NETIF_DEBUG                     LWIP_DBG_OFF
+
 /**
  * PBUF_DEBUG: Enable debugging in pbuf.c.
  */
@@ -406,50 +608,151 @@
  */
 #define API_LIB_DEBUG                   LWIP_DBG_OFF
 
+/**
+ * API_MSG_DEBUG: Enable debugging in api_msg.c.
+ */
+#define API_MSG_DEBUG                   LWIP_DBG_OFF
+
 /**
  * SOCKETS_DEBUG: Enable debugging in sockets.c.
  */
 #define SOCKETS_DEBUG                   LWIP_DBG_OFF
 
+/**
+ * ICMP_DEBUG: Enable debugging in icmp.c.
+ */
+#define ICMP_DEBUG                      LWIP_DBG_OFF
+
+/**
+ * IGMP_DEBUG: Enable debugging in igmp.c.
+ */
+#define IGMP_DEBUG                      LWIP_DBG_OFF
+
+/**
+ * INET_DEBUG: Enable debugging in inet.c.
+ */
+#define INET_DEBUG                      LWIP_DBG_OFF
+
 /**
  * IP_DEBUG: Enable debugging for IP.
  */
 #define IP_DEBUG                        LWIP_DBG_OFF
 
+/**
+ * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass.
+ */
+#define IP_REASS_DEBUG                  LWIP_DBG_OFF
+
+/**
+ * RAW_DEBUG: Enable debugging in raw.c.
+ */
+#define RAW_DEBUG                       LWIP_DBG_OFF
+
+/**
+ * MEM_DEBUG: Enable debugging in mem.c.
+ */
+#define MEM_DEBUG                       LWIP_DBG_OFF
+
 /**
  * MEMP_DEBUG: Enable debugging in memp.c.
  */
 #define MEMP_DEBUG                      LWIP_DBG_OFF
 
+/**
+ * SYS_DEBUG: Enable debugging in sys.c.
+ */
+#define SYS_DEBUG                       LWIP_DBG_OFF
+
+/**
+ * TIMERS_DEBUG: Enable debugging in timers.c.
+ */
+#define TIMERS_DEBUG                    LWIP_DBG_OFF
+
+/**
+ * TCP_DEBUG: Enable debugging for TCP.
+ */
+#define TCP_DEBUG                       LWIP_DBG_OFF
+
 /**
  * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.
  */
 #define TCP_INPUT_DEBUG                 LWIP_DBG_OFF
 
+/**
+ * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit.
+ */
+#define TCP_FR_DEBUG                    LWIP_DBG_OFF
+
+/**
+ * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit
+ * timeout.
+ */
+#define TCP_RTO_DEBUG                   LWIP_DBG_OFF
+
+/**
+ * TCP_CWND_DEBUG: Enable debugging for TCP congestion window.
+ */
+#define TCP_CWND_DEBUG                  LWIP_DBG_OFF
+
+/**
+ * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating.
+ */
+#define TCP_WND_DEBUG                   LWIP_DBG_OFF
+
 /**
  * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.
  */
 #define TCP_OUTPUT_DEBUG                LWIP_DBG_OFF
 
 /**
- * UDP_DEBUG: Enable debugging in udp.c.
+ * TCP_RST_DEBUG: Enable debugging for TCP with the RST message.
  */
-#define UDP_DEBUG                     LWIP_DBG_OFF
+#define TCP_RST_DEBUG                   LWIP_DBG_OFF
 
 /**
- * ICMP_DEBUG: Enable debugging in udp.c.
+ * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths.
  */
-#define ICMP_DEBUG                     LWIP_DBG_OFF
+#define TCP_QLEN_DEBUG                  LWIP_DBG_OFF
+
+/**
+ * UDP_DEBUG: Enable debugging in UDP.
+ */
+#define UDP_DEBUG                       LWIP_DBG_OFF
 
 /**
  * TCPIP_DEBUG: Enable debugging in tcpip.c.
  */
 #define TCPIP_DEBUG                     LWIP_DBG_OFF
 
+/**
+ * SLIP_DEBUG: Enable debugging in slipif.c.
+ */
+#define SLIP_DEBUG                      LWIP_DBG_OFF
 
 /**
  * DHCP_DEBUG: Enable debugging in dhcp.c.
  */
 #define DHCP_DEBUG                      LWIP_DBG_OFF
 
+/**
+ * AUTOIP_DEBUG: Enable debugging in autoip.c.
+ */
+#define AUTOIP_DEBUG                    LWIP_DBG_OFF
+
+/**
+ * DNS_DEBUG: Enable debugging for DNS.
+ */
+#define DNS_DEBUG                       LWIP_DBG_OFF
+
+/**
+ * IP6_DEBUG: Enable debugging for IPv6.
+ */
+#define IP6_DEBUG                       LWIP_DBG_OFF
+
+/*
+   --------------------------------------------------
+   ---------- Performance tracking options ----------
+   --------------------------------------------------
+*/
+
 #endif /* __LWIPOPTS_H__ */
diff --git a/lwip/lwip b/lwip/lwip
index 3cf8d51..ae317fe 160000
--- a/lwip/lwip
+++ b/lwip/lwip
@@ -1 +1 @@
-Subproject commit 3cf8d514bd76e6ef77e6fa514d0ec6d96da7fd9a
+Subproject commit ae317fe74dd61ab5eacf5c83dfe8f2af4795421e
diff --git a/lwip/sys_arch.c b/lwip/sys_arch.c
index 87d8450..1a9c5f9 100644
--- a/lwip/sys_arch.c
+++ b/lwip/sys_arch.c
@@ -49,17 +49,147 @@
 #include "lwip/mem.h"
 #include "lwip/stats.h"
 
-extern bool esp_in_isr;
-
-/* Based on the default xInsideISR mechanism to determine
-   if an ISR is running.
-
-   Doesn't support the possibility that LWIP functions are called from the NMI
-   handler (none are called from NMI when using current/SDK implementation.)
-*/
-static inline bool is_inside_isr()
+/*---------------------------------------------------------------------------*
+ * Routine:  sys_sem_new
+ *---------------------------------------------------------------------------*
+ * Description:
+ *      Creates and returns a new semaphore. The "ucCount" argument specifies
+ *      the initial state of the semaphore.
+ *      NOTE: Currently this routine only creates counts of 1 or 0
+ * Inputs:
+ *      sys_mbox_t mbox         -- Handle of mailbox
+ *      u8_t ucCount            -- Initial ucCount of semaphore (1 or 0)
+ * Outputs:
+ *      sys_sem_t               -- Created semaphore or 0 if could not create.
+ *---------------------------------------------------------------------------*/
+err_t sys_sem_new(sys_sem_t *pxSemaphore, u8_t ucCount)
 {
-    return esp_in_isr;
+    err_t xReturn = ERR_MEM;
+
+    vSemaphoreCreateBinary(*pxSemaphore);
+
+    if (*pxSemaphore != NULL) {
+        if (ucCount == 0U) {
+            xSemaphoreTake(*pxSemaphore, 1UL);
+        }
+
+        xReturn = ERR_OK;
+        SYS_STATS_INC_USED(sem);
+    } else {
+        SYS_STATS_INC(sem.err);
+    }
+
+    return xReturn;
+}
+
+/*---------------------------------------------------------------------------*
+ * Routine:  sys_sem_free
+ *---------------------------------------------------------------------------*
+ * Description:
+ *      Deallocates a semaphore
+ * Inputs:
+ *      sys_sem_t sem           -- Semaphore to free
+ *---------------------------------------------------------------------------*/
+void sys_sem_free(sys_sem_t *pxSemaphore)
+{
+    SYS_STATS_DEC(sem.used);
+    vQueueDelete(*pxSemaphore);
+}
+
+/*---------------------------------------------------------------------------*
+ * Routine:  sys_sem_signal
+ *---------------------------------------------------------------------------*
+ * Description:
+ *      Signals (releases) a semaphore
+ * Inputs:
+ *      sys_sem_t sem           -- Semaphore to signal
+ *---------------------------------------------------------------------------*/
+void sys_sem_signal(sys_sem_t *pxSemaphore)
+{
+    xSemaphoreGive(*pxSemaphore);
+}
+
+/*---------------------------------------------------------------------------*
+ * Routine:  sys_arch_sem_wait
+ *---------------------------------------------------------------------------*
+ * Description:
+
+ *      Blocks the thread while waiting for the semaphore to be signaled. If the
+ *      "timeout" argument is non-zero, the thread should only be blocked for
+ *      the specified time (measured in milliseconds). If the "timeout" argument
+ *      is zero, the thread should be blocked until the semaphore is signalled.
+ *
+ *      The return value is SYS_ARCH_TIMEOUT if the semaphore wasn't signaled
+ *      within the specified time or any other value if it was signaled (with or
+ *      without waiting).
+ *
+ *      Notice that lwIP implements a function with a similar name,
+ *      sys_sem_wait(), that uses the sys_arch_sem_wait() function.
+ * Inputs:
+ *      sys_sem_t sem           -- Semaphore to wait on
+ *      u32_t timeout           -- Number of milliseconds until timeout
+ * Outputs:
+ *      u32_t                   -- SYS_ARCH_TIMEOUT on timeout, any other value on success
+ *---------------------------------------------------------------------------*/
+u32_t sys_arch_sem_wait(sys_sem_t *pxSemaphore, u32_t ulTimeout)
+{
+    u32_t ulReturn;
+
+    if (ulTimeout != 0UL) {
+        if (xSemaphoreTake(*pxSemaphore, ulTimeout / portTICK_PERIOD_MS) == pdTRUE) {
+            ulReturn = 0;
+        } else {
+            ulReturn = SYS_ARCH_TIMEOUT;
+        }
+    } else {
+        while (xSemaphoreTake(*pxSemaphore, portMAX_DELAY) != pdTRUE);
+        ulReturn = 0;
+    }
+
+    return ulReturn;
+}
+
+/** Create a new mutex
+ * @param mutex pointer to the mutex to create
+ * @return a new mutex */
+err_t sys_mutex_new(sys_mutex_t *pxMutex)
+{
+    err_t xReturn;
+
+    *pxMutex = xSemaphoreCreateMutex();
+
+    if (*pxMutex != NULL) {
+        xReturn = ERR_OK;
+        SYS_STATS_INC_USED(mutex);
+    } else {
+        xReturn = ERR_MEM;
+        SYS_STATS_INC(mutex.err);
+    }
+
+    return xReturn;
+}
+
+/** Lock a mutex
+ * @param mutex the mutex to lock */
+void sys_mutex_lock(sys_mutex_t *pxMutex)
+{
+    while (xSemaphoreTake(*pxMutex, portMAX_DELAY) != pdPASS);
+}
+
+/** Unlock a mutex
+ * @param mutex the mutex to unlock */
+void sys_mutex_unlock(sys_mutex_t *pxMutex)
+{
+    xSemaphoreGive(*pxMutex);
+}
+
+
+/** Delete a semaphore
+ * @param mutex the mutex to delete */
+void sys_mutex_free(sys_mutex_t *pxMutex)
+{
+    SYS_STATS_DEC(mutex.used);
+    vQueueDelete(*pxMutex);
 }
 
 /*---------------------------------------------------------------------------*
@@ -72,16 +202,15 @@ static inline bool is_inside_isr()
  * Outputs:
  *      sys_mbox_t              -- Handle to new mailbox
  *---------------------------------------------------------------------------*/
-err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize )
+err_t sys_mbox_new(sys_mbox_t *pxMailBox, int iSize)
 {
     err_t xReturn = ERR_MEM;
 
-    *pxMailBox = xQueueCreate( iSize, sizeof( void * ) );
+    *pxMailBox = xQueueCreate(iSize, sizeof(void *));
 
-    if( *pxMailBox != NULL )
-    {
+    if (*pxMailBox != NULL) {
         xReturn = ERR_OK;
-        SYS_STATS_INC_USED( mbox );
+        SYS_STATS_INC_USED(mbox);
     }
 
     return xReturn;
@@ -100,25 +229,24 @@ err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize )
  * Outputs:
  *      sys_mbox_t              -- Handle to new mailbox
  *---------------------------------------------------------------------------*/
-void sys_mbox_free( sys_mbox_t *pxMailBox )
+void sys_mbox_free(sys_mbox_t *pxMailBox)
 {
-unsigned long ulMessagesWaiting;
+    unsigned long ulMessagesWaiting;
 
-    ulMessagesWaiting = uxQueueMessagesWaiting( *pxMailBox );
-    configASSERT( ( ulMessagesWaiting == 0 ) );
+    ulMessagesWaiting = uxQueueMessagesWaiting(*pxMailBox);
+    configASSERT(ulMessagesWaiting == 0);
 
     #if SYS_STATS
     {
-        if( ulMessagesWaiting != 0UL )
-        {
-            SYS_STATS_INC( mbox.err );
+        if (ulMessagesWaiting != 0UL) {
+            SYS_STATS_INC(mbox.err);
         }
 
-        SYS_STATS_DEC( mbox.used );
+        SYS_STATS_DEC(mbox.used);
     }
     #endif /* SYS_STATS */
 
-    vQueueDelete( *pxMailBox );
+    vQueueDelete(*pxMailBox);
 }
 
 /*---------------------------------------------------------------------------*
@@ -130,9 +258,9 @@ unsigned long ulMessagesWaiting;
  *      sys_mbox_t mbox         -- Handle of mailbox
  *      void *data              -- Pointer to data to post
  *---------------------------------------------------------------------------*/
-void sys_mbox_post( sys_mbox_t *pxMailBox, void *pxMessageToPost )
+void sys_mbox_post(sys_mbox_t *pxMailBox, void *pxMessageToPost)
 {
-    while( xQueueSendToBack( *pxMailBox, &pxMessageToPost, portMAX_DELAY ) != pdTRUE );
+    while (xQueueSendToBack(*pxMailBox, &pxMessageToPost, portMAX_DELAY) != pdTRUE);
 }
 
 /*---------------------------------------------------------------------------*
@@ -148,26 +276,13 @@ void sys_mbox_post( sys_mbox_t *pxMailBox, void *pxMessageToPost )
  *      err_t                   -- ERR_OK if message posted, else ERR_MEM
  *                                  if not.
  *---------------------------------------------------------------------------*/
-err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )
+err_t sys_mbox_trypost(sys_mbox_t *pxMailBox, void *pxMessageToPost)
 {
-err_t xReturn;
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+    err_t xReturn;
 
-    if( is_inside_isr() != pdFALSE )
-    {
-        xReturn = xQueueSendFromISR( *pxMailBox, &pxMessageToPost, &xHigherPriorityTaskWoken );
-    }
-    else
-    {
-        xReturn = xQueueSend( *pxMailBox, &pxMessageToPost, ( TickType_t ) 0 );
-    }
-
-    if( xReturn == pdPASS )
-    {
+    if (xQueueSend(*pxMailBox, &pxMessageToPost, 0)) {
         xReturn = ERR_OK;
-    }
-    else
-    {
+    } else {
         /* The queue was already full. */
         xReturn = ERR_MEM;
         SYS_STATS_INC( mbox.err );
@@ -188,8 +303,8 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
  *      should be dropped.
  *
  *      The return values are the same as for the sys_arch_sem_wait() function:
- *      Number of milliseconds spent waiting or SYS_ARCH_TIMEOUT if there was a
- *      timeout.
+ *      SYS_ARCH_TIMEOUT if there was a timeout, any other value if a messages
+ *      is received.
  *
  *      Note that a function with a similar name, sys_mbox_fetch(), is
  *      implemented by lwIP.
@@ -198,52 +313,28 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
  *      void **msg              -- Pointer to pointer to msg received
  *      u32_t timeout           -- Number of milliseconds until timeout
  * Outputs:
- *      u32_t                   -- SYS_ARCH_TIMEOUT if timeout, else number
- *                                  of milliseconds until received.
+ *      u32_t                   -- SYS_ARCH_TIMEOUT on timeout, any other value if a message has been received
  *---------------------------------------------------------------------------*/
-u32_t sys_arch_mbox_fetch( sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut )
+u32_t sys_arch_mbox_fetch(sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut)
 {
-void *pvDummy;
-TickType_t xStartTime, xEndTime, xElapsed;
-unsigned long ulReturn;
+    void *pvDummy;
+    unsigned long ulReturn;
 
-    xStartTime = xTaskGetTickCount();
-
-    if( NULL == ppvBuffer )
-    {
+    if (ppvBuffer == NULL) {
         ppvBuffer = &pvDummy;
     }
 
-    if( ulTimeOut != 0UL )
-    {
-        configASSERT( is_inside_isr() == ( portBASE_TYPE ) 0 );
-
-        if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_PERIOD_MS ) )
-        {
-            xEndTime = xTaskGetTickCount();
-            xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
-
-            ulReturn = xElapsed;
-        }
-        else
-        {
+    if (ulTimeOut != 0UL) {
+        if (xQueueReceive(*pxMailBox, &(*ppvBuffer), ulTimeOut / portTICK_PERIOD_MS) == pdTRUE) {
+            ulReturn = 0;
+        } else {
             /* Timed out. */
             *ppvBuffer = NULL;
             ulReturn = SYS_ARCH_TIMEOUT;
         }
-    }
-    else
-    {
-        while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) );
-        xEndTime = xTaskGetTickCount();
-        xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
-
-        if( xElapsed == 0UL )
-        {
-            xElapsed = 1UL;
-        }
-
-        ulReturn = xElapsed;
+    } else {
+        while (xQueueReceive(*pxMailBox, &(*ppvBuffer), portMAX_DELAY) != pdTRUE);
+        ulReturn = 0;
     }
 
     return ulReturn;
@@ -263,218 +354,24 @@ unsigned long ulReturn;
  *      u32_t                   -- SYS_MBOX_EMPTY if no messages.  Otherwise,
  *                                  return ERR_OK.
  *---------------------------------------------------------------------------*/
-u32_t sys_arch_mbox_tryfetch( sys_mbox_t *pxMailBox, void **ppvBuffer )
+u32_t sys_arch_mbox_tryfetch(sys_mbox_t *pxMailBox, void **ppvBuffer)
 {
-void *pvDummy;
-unsigned long ulReturn;
-long lResult;
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+    void *pvDummy;
+    unsigned long ulReturn;
 
-    if( ppvBuffer== NULL )
-    {
+    if (ppvBuffer== NULL) {
         ppvBuffer = &pvDummy;
     }
 
-    if( is_inside_isr() != pdFALSE )
-    {
-        lResult = xQueueReceiveFromISR( *pxMailBox, &( *ppvBuffer ), &xHigherPriorityTaskWoken );
-    }
-    else
-    {
-        lResult = xQueueReceive( *pxMailBox, &( *ppvBuffer ), 0UL );
-    }
-
-    if( lResult == pdPASS )
-    {
+    if (xQueueReceive(*pxMailBox, &(*ppvBuffer), 0UL) == pdPASS) {
         ulReturn = ERR_OK;
-    }
-    else
-    {
+    } else {
         ulReturn = SYS_MBOX_EMPTY;
     }
 
     return ulReturn;
 }
 
-/*---------------------------------------------------------------------------*
- * Routine:  sys_sem_new
- *---------------------------------------------------------------------------*
- * Description:
- *      Creates and returns a new semaphore. The "ucCount" argument specifies
- *      the initial state of the semaphore.
- *      NOTE: Currently this routine only creates counts of 1 or 0
- * Inputs:
- *      sys_mbox_t mbox         -- Handle of mailbox
- *      u8_t ucCount              -- Initial ucCount of semaphore (1 or 0)
- * Outputs:
- *      sys_sem_t               -- Created semaphore or 0 if could not create.
- *---------------------------------------------------------------------------*/
-err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount )
-{
-err_t xReturn = ERR_MEM;
-
-    vSemaphoreCreateBinary( ( *pxSemaphore ) );
-
-    if( *pxSemaphore != NULL )
-    {
-        if( ucCount == 0U )
-        {
-            xSemaphoreTake( *pxSemaphore, 1UL );
-        }
-
-        xReturn = ERR_OK;
-        SYS_STATS_INC_USED( sem );
-    }
-    else
-    {
-        SYS_STATS_INC( sem.err );
-    }
-
-    return xReturn;
-}
-
-/*---------------------------------------------------------------------------*
- * Routine:  sys_arch_sem_wait
- *---------------------------------------------------------------------------*
- * Description:
- *      Blocks the thread while waiting for the semaphore to be
- *      signaled. If the "timeout" argument is non-zero, the thread should
- *      only be blocked for the specified time (measured in
- *      milliseconds).
- *
- *      If the timeout argument is non-zero, the return value is the number of
- *      milliseconds spent waiting for the semaphore to be signaled. If the
- *      semaphore wasn't signaled within the specified time, the return value is
- *      SYS_ARCH_TIMEOUT. If the thread didn't have to wait for the semaphore
- *      (i.e., it was already signaled), the function may return zero.
- *
- *      Notice that lwIP implements a function with a similar name,
- *      sys_sem_wait(), that uses the sys_arch_sem_wait() function.
- * Inputs:
- *      sys_sem_t sem           -- Semaphore to wait on
- *      u32_t timeout           -- Number of milliseconds until timeout
- * Outputs:
- *      u32_t                   -- Time elapsed or SYS_ARCH_TIMEOUT.
- *---------------------------------------------------------------------------*/
-u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout )
-{
-TickType_t xStartTime, xEndTime, xElapsed;
-unsigned long ulReturn;
-
-    xStartTime = xTaskGetTickCount();
-
-    if( ulTimeout != 0UL )
-    {
-        if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_PERIOD_MS ) == pdTRUE )
-        {
-            xEndTime = xTaskGetTickCount();
-            xElapsed = (xEndTime - xStartTime) * portTICK_PERIOD_MS;
-            ulReturn = xElapsed;
-        }
-        else
-        {
-            ulReturn = SYS_ARCH_TIMEOUT;
-        }
-    }
-    else
-    {
-        while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE );
-        xEndTime = xTaskGetTickCount();
-        xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
-
-        if( xElapsed == 0UL )
-        {
-            xElapsed = 1UL;
-        }
-
-        ulReturn = xElapsed;
-    }
-
-    return ulReturn;
-}
-
-/** Create a new mutex
- * @param mutex pointer to the mutex to create
- * @return a new mutex */
-err_t sys_mutex_new( sys_mutex_t *pxMutex )
-{
-err_t xReturn = ERR_MEM;
-
-    *pxMutex = xSemaphoreCreateMutex();
-
-    if( *pxMutex != NULL )
-    {
-        xReturn = ERR_OK;
-        SYS_STATS_INC_USED( mutex );
-    }
-    else
-    {
-        SYS_STATS_INC( mutex.err );
-    }
-
-    return xReturn;
-}
-
-/** Lock a mutex
- * @param mutex the mutex to lock */
-void sys_mutex_lock( sys_mutex_t *pxMutex )
-{
-    while( xSemaphoreTake( *pxMutex, portMAX_DELAY ) != pdPASS );
-}
-
-/** Unlock a mutex
- * @param mutex the mutex to unlock */
-void sys_mutex_unlock(sys_mutex_t *pxMutex )
-{
-    xSemaphoreGive( *pxMutex );
-}
-
-
-/** Delete a semaphore
- * @param mutex the mutex to delete */
-void sys_mutex_free( sys_mutex_t *pxMutex )
-{
-    SYS_STATS_DEC( mutex.used );
-    vQueueDelete( *pxMutex );
-}
-
-
-/*---------------------------------------------------------------------------*
- * Routine:  sys_sem_signal
- *---------------------------------------------------------------------------*
- * Description:
- *      Signals (releases) a semaphore
- * Inputs:
- *      sys_sem_t sem           -- Semaphore to signal
- *---------------------------------------------------------------------------*/
-void sys_sem_signal( sys_sem_t *pxSemaphore )
-{
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
-
-    if( is_inside_isr() != pdFALSE )
-    {
-        xSemaphoreGiveFromISR( *pxSemaphore, &xHigherPriorityTaskWoken );
-    }
-    else
-    {
-        xSemaphoreGive( *pxSemaphore );
-    }
-}
-
-/*---------------------------------------------------------------------------*
- * Routine:  sys_sem_free
- *---------------------------------------------------------------------------*
- * Description:
- *      Deallocates a semaphore
- * Inputs:
- *      sys_sem_t sem           -- Semaphore to free
- *---------------------------------------------------------------------------*/
-void sys_sem_free( sys_sem_t *pxSemaphore )
-{
-    SYS_STATS_DEC(sem.used);
-    vQueueDelete( *pxSemaphore );
-}
-
 /*---------------------------------------------------------------------------*
  * Routine:  sys_init
  *---------------------------------------------------------------------------*
@@ -508,20 +405,17 @@ u32_t sys_now(void)
  * Outputs:
  *      sys_thread_t            -- Pointer to per-thread timeouts.
  *---------------------------------------------------------------------------*/
-sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority )
+sys_thread_t sys_thread_new(const char *pcName, void(*pxThread)(void *pvParameters), void *pvArg, int iStackSize, int iPriority)
 {
-TaskHandle_t xCreatedTask;
-portBASE_TYPE xResult;
-sys_thread_t xReturn;
+    TaskHandle_t xCreatedTask;
+    portBASE_TYPE xResult;
+    sys_thread_t xReturn;
 
-    xResult = xTaskCreate( pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask );
+    xResult = xTaskCreate(pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask);
 
-    if( xResult == pdPASS )
-    {
+    if (xResult == pdPASS) {
         xReturn = xCreatedTask;
-    }
-    else
-    {
+    } else {
         xReturn = NULL;
     }
 
@@ -547,13 +441,14 @@ sys_thread_t xReturn;
  * Outputs:
  *      sys_prot_t              -- Previous protection level (not used here)
  *---------------------------------------------------------------------------*/
-sys_prot_t sys_arch_protect( void )
+static uint32_t my_nesting = 0;
+sys_prot_t sys_arch_protect(void)
 {
-    if( is_inside_isr() == pdFALSE )
-    {
-        taskENTER_CRITICAL();
-    }
-    return ( sys_prot_t ) 1;
+    taskENTER_CRITICAL();
+    uint32_t prev = my_nesting;
+    my_nesting++;
+    return prev;
+    //return (sys_prot_t)1;
 }
 
 /*---------------------------------------------------------------------------*
@@ -567,26 +462,16 @@ sys_prot_t sys_arch_protect( void )
  * Inputs:
  *      sys_prot_t              -- Previous protection level (not used here)
  *---------------------------------------------------------------------------*/
-void sys_arch_unprotect( sys_prot_t xValue )
+void sys_arch_unprotect(sys_prot_t xValue)
 {
-    (void) xValue;
-    if( is_inside_isr() == pdFALSE )
-    {
-        taskEXIT_CRITICAL();
+    //(void) xValue;
+    my_nesting--;
+    if (xValue != my_nesting) {
+        printf("lwip nesting %d\n", my_nesting);
     }
+    taskEXIT_CRITICAL();
 }
 
-/*
- * Prints an assertion messages and aborts execution.
- */
-void sys_assert( const char *pcMessage )
-{
-    (void) pcMessage;
-
-    for (;;)
-    {
-    }
-}
 /*-------------------------------------------------------------------------*
  * End of File:  sys_arch.c
  *-------------------------------------------------------------------------*/
diff --git a/open_esplibs/include/esplibs/libmain.h b/open_esplibs/include/esplibs/libmain.h
index 9f4ad1a..593092c 100644
--- a/open_esplibs/include/esplibs/libmain.h
+++ b/open_esplibs/include/esplibs/libmain.h
@@ -56,6 +56,7 @@ uint32_t sdk_system_relative_time(uint32_t reltime);
 uint32_t sdk_system_get_checksum(uint8_t *, uint32_t);
 void sdk_wifi_softap_cacl_mac(uint8_t *, uint8_t *);
 void sdk_wifi_softap_set_default_ssid(void);
+bool sdk_wifi_softap_set_station_info(const uint8_t *hwaddr, ip4_addr_t *);
 
 // xtensa_context.o
 
diff --git a/open_esplibs/include/esplibs/libnet80211.h b/open_esplibs/include/esplibs/libnet80211.h
index b7a2db6..d2c117b 100644
--- a/open_esplibs/include/esplibs/libnet80211.h
+++ b/open_esplibs/include/esplibs/libnet80211.h
@@ -32,7 +32,7 @@ struct esf_buf *sdk_ieee80211_getmgtframe(void **arg0, uint32_t arg1, uint32_t a
 extern uint8_t sdk_TmpSTAAPCloseAP;
 extern uint8_t sdk_PendFreeBcnEb;
 void sdk_ieee80211_hostap_attach(struct sdk_g_ic_st *);
-void sdk_hostap_handle_timer(struct sdk_netif_conninfo *cnx_node);
+void sdk_hostap_handle_timer(struct sdk_cnx_node *cnx_node);
 bool sdk_wifi_softap_start();
 bool sdk_wifi_softap_stop();
 
@@ -85,10 +85,10 @@ int sdk_chm_check_same_channel();
 extern ETSTimer sdk_sta_con_timer;
 extern void *sdk_g_cnx_probe_rc_list_cb;
 void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *);
-void *sdk_cnx_node_search(uint8_t mac[6]);
-void sdk_cnx_node_leave(struct sdk_g_ic_netif_info *netif, struct sdk_netif_conninfo *conn);
+struct sdk_cnx_node *sdk_cnx_node_search(uint8_t mac[6]);
+void sdk_cnx_node_leave(struct sdk_g_ic_netif_info *netif, struct sdk_cnx_node *conn);
 void sdk_cnx_rc_update_state_metric(void *, int, int);
-void sdk_cnx_remove_rc(void *);
+void sdk_cnx_node_remove(struct sdk_cnx_node *cnx_node);
 void sdk_cnx_attach(struct sdk_g_ic_st *);
 
 #endif /* _ESPLIBS_LIBNET80211_H */
diff --git a/open_esplibs/include/esplibs/libpp.h b/open_esplibs/include/esplibs/libpp.h
index c6185b6..836a689 100644
--- a/open_esplibs/include/esplibs/libpp.h
+++ b/open_esplibs/include/esplibs/libpp.h
@@ -23,6 +23,7 @@ extern uint8_t sdk_interface_mask;
 void sdk_ic_set_vif(int, int, uint8_t (*)[6], int, int);
 void sdk_ic_bss_info_update(int, uint8_t (*hwaddr)[], int, int);
 void sdk_ic_set_sta(int, int, void *, int, int, int, int, int);
+void sdk_ic_remove_key(uint32_t);
 
 // lmac.o
 extern uint32_t sdk_lmacConfMib;
diff --git a/open_esplibs/include/esplibs/libwpa.h b/open_esplibs/include/esplibs/libwpa.h
index 36a2fc2..2839e56 100644
--- a/open_esplibs/include/esplibs/libwpa.h
+++ b/open_esplibs/include/esplibs/libwpa.h
@@ -53,6 +53,7 @@ int sdk_os_get_random(uint8_t *dst, uint32_t size);
 
 // wpa_auth.o
 uint32_t *sdk_wpa_init(uint8_t (*hwaddr)[], struct _unknown_wpa1 *, int);
+void sdk_wpa_auth_sta_deinit(void *);
 
 // wpabuf.o
 
diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h
index da59d3c..8db78c5 100644
--- a/open_esplibs/include/open_esplibs.h
+++ b/open_esplibs/include/open_esplibs.h
@@ -6,6 +6,10 @@
 // useful for quickly troubleshooting whether a bug is due to the
 // reimplementation of Espressif libraries, or something else.
 
+// Some source code is mandatory and these are not included as options here.
+// For example code referencing lwip structures and flags etc that has changed
+// since the initial binary code.
+
 #ifndef OPEN_ESPLIBS
 #define OPEN_ESPLIBS 1
 #endif
@@ -32,8 +36,8 @@
 #ifndef OPEN_LIBMAIN_XTENSA_CONTEXT
 #define OPEN_LIBMAIN_XTENSA_CONTEXT (OPEN_LIBMAIN)
 #endif
-#ifndef OPEN_LIBMAIN_USER_INTERFACE
-#define OPEN_LIBMAIN_USER_INTERFACE (OPEN_LIBMAIN)
+#ifndef OPEN_LIBMAIN_ETS_TIMER
+#define OPEN_LIBMAIN_ETS_TIMER (OPEN_LIBMAIN)
 #endif
 
 #ifndef OPEN_LIBNET80211
@@ -42,18 +46,6 @@
 #ifndef OPEN_LIBNET80211_ETS
 #define OPEN_LIBNET80211_ETS (OPEN_LIBNET80211)
 #endif
-#ifndef OPEN_LIBNET80211_HOSTAP
-#define OPEN_LIBNET80211_HOSTAP (OPEN_LIBNET80211)
-#endif
-#ifndef OPEN_LIBNET80211_INPUT
-#define OPEN_LIBNET80211_INPUT (OPEN_LIBNET80211)
-#endif
-#ifndef OPEN_LIBNET80211_STA
-#define OPEN_LIBNET80211_STA (OPEN_LIBNET80211)
-#endif
-#ifndef OPEN_LIBNET80211_WL_CNX
-#define OPEN_LIBNET80211_WL_CNX (OPEN_LIBNET80211)
-#endif
 
 #ifndef OPEN_LIBPHY
 #define OPEN_LIBPHY (OPEN_ESPLIBS)
@@ -115,8 +107,4 @@
 #define OPEN_LIBWPA_OS_XTENSA (OPEN_LIBWPA)
 #endif
 
-#ifndef OPEN_LIBWPA_WPA_MAIN
-#define OPEN_LIBWPA_WPA_MAIN (OPEN_LIBWPA)
-#endif
-
 #endif /* _OPEN_ESPLIBS_H */
diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c
index eed34a1..a21530d 100644
--- a/open_esplibs/libmain/user_interface.c
+++ b/open_esplibs/libmain/user_interface.c
@@ -3,9 +3,6 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBMAIN_USER_INTERFACE
-// The contents of this file are only built if OPEN_LIBMAIN_USER_INTERFACE is set to true
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -147,8 +144,8 @@ bool IRAM sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t sa
     return true;
 }
 
-void sdk_system_pp_recycle_rx_pkt(void *eb) {
-        sdk_ppRecycleRxPkt(eb);
+void sdk_system_pp_recycle_rx_pkt(struct esf_buf *esf_buf) {
+        sdk_ppRecycleRxPkt(esf_buf);
 }
 
 uint16_t sdk_system_adc_read(void) {
@@ -471,8 +468,7 @@ uint32_t sdk_system_relative_time(uint32_t reltime) {
     return WDEV.SYS_TIME - reltime;
 }
 
-// Change arg types to ip4_addr for lwip v2.
-void sdk_system_station_got_ip_set(struct ip_addr *ip, struct ip_addr *mask, struct ip_addr *gw) {
+void sdk_system_station_got_ip_set(struct ip4_addr *ip, struct ip4_addr *mask, struct ip4_addr *gw) {
     uint8_t *ip_bytes = (uint8_t *)&ip->addr;
     uint8_t *mask_bytes = (uint8_t *)&mask->addr;
     uint8_t *gw_bytes = (uint8_t *)&gw->addr;
@@ -588,9 +584,9 @@ bool sdk_wifi_get_ip_info(uint8_t if_index, struct ip_info *info) {
     if (!info) return false;
     struct netif *netif = _get_netif(if_index);
     if (netif) {
-        info->ip = netif->ip_addr;
-        info->netmask = netif->netmask;
-        info->gw = netif->gw;
+        ip4_addr_set(&info->ip, ip_2_ip4(&netif->ip_addr));
+        ip4_addr_set(&info->netmask, ip_2_ip4(&netif->netmask));
+        ip4_addr_set(&info->gw, ip_2_ip4(&netif->gw));
         return true;
     }
 
@@ -719,5 +715,3 @@ bool sdk_wifi_set_sleep_type(enum sdk_sleep_type type)
     sdk_pm_set_sleep_type_from_upper(type);
     return true;
 }
-
-#endif /* OPEN_LIBMAIN_USER_INTERFACE */
diff --git a/open_esplibs/libnet80211/ieee80211_hostap.c b/open_esplibs/libnet80211/ieee80211_hostap.c
index fbe7f49..74f9675 100644
--- a/open_esplibs/libnet80211/ieee80211_hostap.c
+++ b/open_esplibs/libnet80211/ieee80211_hostap.c
@@ -3,8 +3,306 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBNET80211_HOSTAP
-// The contents of this file are only built if OPEN_LIBNET80211_HOSTAP is set to true
 
-#endif /* OPEN_LIBNET80211_HOSTAP */
+#include 
+#include "tcpip.h"
+#include "espressif/esp_wifi.h"
+#include "espressif/esp_misc.h"
+#include "etstimer.h"
+#include "esplibs/libmain.h"
+#include "esplibs/libnet80211.h"
+#include "esplibs/libpp.h"
+#include "esplibs/libwpa.h"
+
+static uint8_t hostap_flags = 0;
+static ETSTimer hostap_timer;
+static struct esf_buf *hostap_timer_parg = NULL;
+
+void IRAM *zalloc(size_t nbytes);
+
+static void IRAM hostap_timer_func(struct esf_buf *esf_buf) {
+    struct sdk_cnx_node *cnx_node = sdk_g_ic.v.softap_netif_info->cnx_nodes[0];
+    int32_t mode = sdk_wifi_get_phy_mode();
+    uint8_t *frame = esf_buf->frame;
+    *(uint16_t *)(frame + 22) = (cnx_node->_unknown9c - 1) << 4;
+
+    cnx_node->_unknown9c += 1;
+
+    if (sdk_g_ic.s.wifi_led_enable) {
+        uint32_t gpio = sdk_g_ic.s.wifi_led_gpio;
+        uint32_t state = sdk_g_ic.s.wifi_led_state;
+        sdk_gpio_output_set(state << gpio, (((state & 1) == 0) ? 1 : 0) << gpio,
+                            1 << gpio, 0);
+        sdk_g_ic.s.wifi_led_state = (state & 1) ? 0 : 1;
+    }
+
+    uint8_t *frame2 = frame + sdk_g_ic.s._unknown288 + (mode == 1 ? 23 : 27) ;
+    memcpy(frame2 + 29, &sdk_g_ic.v._unknown1d2, 1);
+
+    uint32_t v1 = frame2[26];
+    if (v1 == 0) {
+        v1 = frame2[27];
+    }
+    frame2[26] = v1 - 1;
+
+    uint32_t v2 = sdk_ieee80211_chan2ieee(sdk_g_ic.v._unknown14c);
+    frame2[23] = v2;
+    sdk_g_ic.s._unknown30d = v2;
+
+    int32_t v3 = *((volatile int32_t *)0x3ff20c00); // mactime
+    *(uint32_t *)(esf_buf->extra + 16) = v3;
+    *(uint32_t *)(frame + 24) = v3;
+    *(uint32_t *)(frame + 28) = 0;
+
+    if (sdk_chm_check_same_channel()) {
+        hostap_flags |= 1;
+        sdk_ppTxPkt(esf_buf);
+        return;
+    }
+    sdk_ets_timer_disarm(&hostap_timer);
+    sdk_ets_timer_arm(&hostap_timer, sdk_wDev_Get_Next_TBTT(), 0);
+}
+
+static void IRAM hostap_tx_callback() {
+    uint32_t flags = hostap_flags & 0xfe;
+
+    if (sdk_TmpSTAAPCloseAP == 0) {
+        hostap_flags = flags;
+        sdk_ets_timer_disarm(&hostap_timer);
+        sdk_ets_timer_arm(&hostap_timer, sdk_wDev_Get_Next_TBTT(), 0);
+        return;
+    }
+
+    sdk_PendFreeBcnEb = 1;
+
+    if (flags & 2) {
+        hostap_flags = flags & 0xfd;
+        sdk_wifi_softap_start();
+        return;
+    }
+
+    hostap_flags = flags;
+}
+
+static void hostap_attach_misc() {
+    struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.softap_netif_info;
+
+    struct _unknown_softap1 *ptr1 = zalloc(28); // 0x1c
+    netif_info->_unknownb4 = ptr1;
+
+    struct _unknown_softap2 *ptr2 = zalloc(204); // 0xcc
+    ptr1->_unknown04 = ptr2;
+
+    struct _unknown_wpa1 *ptr3 = zalloc(76); // 0x4c
+
+    uint32_t v1 = sdk_g_ic.s._unknown30e;
+    if (v1 == 2) {
+        ptr3->_unknown00 = 1;
+    } else if (v1 == 3) {
+        ptr3->_unknown00 = 2;
+    } else if (v1 == 4) {
+        ptr3->_unknown00 = 3;
+    }
+
+    ptr3->_unknown28 = 2;
+    ptr3->_unknown04 = 2;
+    ptr3->_unknown0c = 2;
+    ptr3->_unknown08 = 10;
+    ptr3->_unknown20 = 10;
+
+    int s1 = (sdk_g_ic.s._unknown28a << 16) | sdk_g_ic.s._unknown288;
+    memcpy(&ptr2->_unknown10, &sdk_g_ic.s._unknown28c, s1);
+    ptr2->_unknown30 = s1;
+
+    uint8_t *ptr4 = zalloc(64); // 0x40
+    ptr2->_unknown3c = ptr4;
+
+    char *str1 = sdk_g_ic.s._unknown2ac;
+    memcpy(ptr4, str1, strlen(str1));
+
+    struct sdk_cnx_node *cnx_node = netif_info->cnx_nodes[0];
+
+    ptr2->_unknownb4 = 300;
+
+    netif_info->_unknown4c = 3;
+    netif_info->_unknown48 |= 16;
+
+    cnx_node->_unknown08 |= 1;
+
+    sdk_hostapd_setup_wpa_psk(ptr2);
+
+    struct netif *netif = netif_info->netif;
+
+    ptr1->_unknown18 = sdk_wpa_init(&netif->hwaddr, ptr3, 0);
+
+    free(ptr3);
+}
+
+static void softap_stop_free() {
+    struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.softap_netif_info;
+    netif_info->_unknown4c = 0;
+    netif_info->_unknown48 &= 0xffffffef;
+    netif_info->cnx_nodes[0]->_unknown08 = 0;
+
+    struct _unknown_softap1 *unkb4 = netif_info->_unknownb4;
+    if (!unkb4) return;
+
+    uint32_t *unk18 = unkb4->_unknown18;
+    if (unk18) {
+        uint32_t *ptr1 = ((uint32_t **)unk18)[20];
+        if (ptr1)
+            free(ptr1);
+
+        uint32_t *ptr2 = *(uint32_t **)unk18;
+        if (ptr2)
+            free(ptr2);
+
+        free(unk18);
+    }
+
+    struct _unknown_softap2 *unk04 = unkb4->_unknown04;
+    if (unk04) {
+        uint32_t *unk38 = unk04->_unknown38;
+        if (unk38)
+            free(unk38);
+
+        uint8_t *unk3c = unk04->_unknown3c;
+        if (unk3c)
+            free(unk3c);
+
+        free(unk04);
+    }
+
+    free(unkb4);
+    netif_info->_unknownb4 = NULL;
+}
+
+void sdk_ieee80211_hostap_attach(struct sdk_g_ic_st *ic) {
+    uint32_t scratch[12]; // ??
+    struct sdk_g_ic_netif_info *netif_info = ic->v.softap_netif_info;
+
+    uint32_t v1 = ic->s._unknown30e;
+    if (v1 >= 2 && v1 < 5)
+        hostap_attach_misc();
+
+    struct netif *netif = netif_info->netif;
+    sdk_ic_bss_info_update(1, &netif->hwaddr, 2, 100);
+
+    ic->v._unknown1d0 = 0;
+    netif_info->_unknown3c = 5;
+
+    sdk_ppRegisterTxCallback(hostap_tx_callback, 4);
+
+    hostap_timer_parg = sdk_ieee80211_beacon_alloc(netif_info, scratch);
+    sdk_ets_timer_disarm(&hostap_timer);
+    sdk_ets_timer_setfn(&hostap_timer, (ETSTimerFunc *)hostap_timer_func, hostap_timer_parg);
+    sdk_wDev_Reset_TBTT();
+    sdk_ets_timer_arm(&hostap_timer, sdk_wDev_Get_Next_TBTT(), 0);
+}
+
+bool sdk_wifi_softap_start() {
+    struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.softap_netif_info;
+    if (!netif_info) return 0;
+    if (netif_info->started) return 1;
+
+    uint8_t flags = hostap_flags;
+    if (flags & 1) {
+        hostap_flags = flags | 2;
+        return 1;
+    }
+
+    uint8_t (*mac_addr)[6]  = &sdk_info.softap_mac_addr;
+    if (!netif_info->netif) {
+         struct netif *netif = (struct netif *)malloc(sizeof(struct netif));
+         netif_info->netif = netif;
+         memcpy(&netif->hwaddr, mac_addr, 6);
+         netif_add(netif, &sdk_info.softap_ipaddr, &sdk_info.softap_netmask,
+                   &sdk_info.softap_gw, netif_info, ethernetif_init, tcpip_input);
+     }
+
+    sdk_ic_set_vif(1, 1, mac_addr, 1, 0);
+
+    netif_set_up(netif_info->netif);
+
+    if (sdk_wifi_get_opmode() != 3 ||
+        !sdk_g_ic.v.station_netif_info ||
+        sdk_g_ic.v.station_netif_info->_unknown3c < 2) {
+
+        uint32_t i1 = (sdk_g_ic.s._unknown30d - 1) & 0xff;
+
+        int nmi_on = sdk_NMIIrqIsOn;
+        if (!nmi_on) {
+            vPortEnterCritical();
+
+            do {
+                DPORT.DPORT0 = DPORT.DPORT0 & 0xffffffe0;
+            }  while (DPORT.DPORT0 & 1);
+        }
+
+        // current channel?
+        uint32_t *chan = &sdk_g_ic.v._unknown84[i1 * 3];
+        sdk_g_ic.v._unknown14c = chan;
+
+        if (!nmi_on) {
+            DPORT.DPORT0 = (DPORT.DPORT0 & 0xffffffe0) | 1;
+            vPortExitCritical();
+        }
+
+        sdk_chm_set_current_channel(chan);
+    }
+
+    sdk_ieee80211_hostap_attach(&sdk_g_ic);
+    sdk_TmpSTAAPCloseAP = 0;
+    netif_info->started = 1;
+    return 1;
+}
+
+bool sdk_wifi_softap_stop() {
+    struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.softap_netif_info;
+
+    if (!netif_info)
+        return 0;
+
+    if (!netif_info->started)
+        return 1;
+
+    uint32_t end = sdk_g_ic.s._unknown310 + 2;
+    uint32_t count = 1;
+
+    // Note this defensive test seems dead code, the value is loaded
+    // as a uint8_t value so adding 2 ensures this test always passes.
+    if (end >= 2) {
+        do {
+            struct sdk_cnx_node *cnx_node = netif_info->cnx_nodes[count];
+            if (cnx_node) {
+                struct sdk_cnx_node *cnx_node2 = netif_info->_unknown88;
+                netif_info->_unknown88 = cnx_node;
+
+                sdk_ieee80211_send_mgmt(netif_info, 160, 4);
+                sdk_ieee80211_send_mgmt(netif_info, 192, 2);
+
+                netif_info->_unknown88 = cnx_node2;
+
+                sdk_cnx_node_leave(netif_info, netif_info->cnx_nodes[count]);
+
+                // Number of entries might have changed, perhaps
+                // should have if one was removed above?
+                end = sdk_g_ic.s._unknown310 + 2;
+            }
+            count++;
+        } while (count < end);
+    }
+
+    netif_set_down(netif_info->netif);
+    sdk_TmpSTAAPCloseAP = 1;
+    sdk_ets_timer_disarm(&hostap_timer);
+    sdk_ic_bss_info_update(1, &sdk_info.softap_mac_addr, 2, 0);
+    sdk_ic_set_vif(1, 0, NULL, 1, 0);
+    softap_stop_free();
+
+    if ((hostap_flags & 1) == 0)
+        sdk_esf_buf_recycle(hostap_timer_parg, 4);
+
+    netif_info->started = 0;
+    return 1;
+}
diff --git a/open_esplibs/libnet80211/ieee80211_input.c b/open_esplibs/libnet80211/ieee80211_input.c
index be07a51..583dba9 100644
--- a/open_esplibs/libnet80211/ieee80211_input.c
+++ b/open_esplibs/libnet80211/ieee80211_input.c
@@ -3,9 +3,6 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBNET80211_INPUT
-// The contents of this file are only built if OPEN_LIBNET80211_INPUT is set to true
 
 #include "esplibs/libpp.h"
 
@@ -14,10 +11,9 @@ void IRAM sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, str
 
     if (netif->flags & NETIF_FLAG_LINK_UP) {
         uint16_t length = esf_buf->length;
-        struct pbuf *pbuf = pbuf_alloc(PBUF_RAW, length, PBUF_REF);
-        pbuf->payload = esf_buf->pbuf2->payload;
+        struct pbuf *pbuf = pbuf_alloc_reference(esf_buf->pbuf2->payload, length, PBUF_ALLOC_FLAG_RX | PBUF_TYPE_ALLOC_SRC_MASK_ESP_RX);
         esf_buf->pbuf1 = pbuf;
-        pbuf->eb = (void *)esf_buf;
+        pbuf->esf_buf = (void *)esf_buf;
         ethernetif_input(netif, pbuf);
         return;
     }
@@ -27,5 +23,3 @@ void IRAM sdk_ieee80211_deliver_data(struct sdk_g_ic_netif_info *netif_info, str
 
     return;
 }
-
-#endif /* OPEN_LIBNET80211_INPUT */
diff --git a/open_esplibs/libnet80211/ieee80211_sta.c b/open_esplibs/libnet80211/ieee80211_sta.c
index 5362dc3..3e7f695 100644
--- a/open_esplibs/libnet80211/ieee80211_sta.c
+++ b/open_esplibs/libnet80211/ieee80211_sta.c
@@ -3,9 +3,6 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBNET80211_STA
-// The contents of this file are only built if OPEN_LIBNET80211_STA is set to true
 
 #include 
 #include "esplibs/libmain.h"
@@ -72,5 +69,3 @@ bool sdk_wifi_station_stop() {
 
     return 1;
 }
-
-#endif /* OPEN_LIBNET80211_STA */
diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c
index 3b7d709..0d2459e 100644
--- a/open_esplibs/libnet80211/wl_cnx.c
+++ b/open_esplibs/libnet80211/wl_cnx.c
@@ -3,18 +3,29 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBNET80211_WL_CNX
-// The contents of this file are only built if OPEN_LIBNET80211_WL_CNX is set to true
 
 #include "espressif/esp_misc.h"
 #include "esplibs/libnet80211.h"
+#include "esplibs/libpp.h"
+#include "esplibs/libwpa.h"
 #include 
 #include "lwip/dhcp.h"
 
 ETSTimer sdk_sta_con_timer;
 void *sdk_g_cnx_probe_rc_list_cb;
 
+/*
+ * Called from the ESP sdk_cnx_sta_leave function. Split out via a hack to the
+ * binary library to allow modification to track changes to lwip, for example
+ * changes to the offset of the netif->flags removal of the NETIF_FLAG_DHCP flag
+ * lwip v2 etc.
+ */
+void dhcp_if_down(struct netif *netif)
+{
+    dhcp_release_and_stop(netif);
+    netif_set_down(netif);
+}
+
 #if 0
 
 // Most of the code in this file assesses static data so it will be all or none.
@@ -24,7 +35,6 @@ static uint8_t Ldata004;
 static uint32_t Ldata006;
 static void *Ldate007;
 
-// Use of the netif->flags and the NETIF_FLAG_DHCP flag removed in lwip v2.
 void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *arg1) {
     struct netif *netif = netif_info->netif;
 
@@ -32,13 +42,9 @@ void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *arg1) {
     uint16_t v1 = *(uint16_t *)(arg1 + 0x1a) & 0xfff;
     sdk_ic_set_sta(0, 0, arg1, 0, v1, phy_type, 0, 0);
 
-    netif_set_down(netif);
-
-    // The NETIF_FLAG_DHCP flags is removed in lwip v2?
-    if (netif->flags & 0x8) {
-        dhcp_release(netif);
-        dhcp_stop(netif);
-    }
+    // Note the SDK binary was modified here as it made use of the
+    // netif flags which changed in lwip v2.
+    dhcp_if_down(netif);
 
     uint32_t v2 = *(uint8_t *)(arg1 + 0xe8);
     free(sdk_g_ic.v._unknown190[v2]);
@@ -77,7 +83,30 @@ void sdk_cnx_sta_leave(struct sdk_g_ic_netif_info *netif_info, void *arg1) {
 }
 #endif
 
-void IRAM *sdk_cnx_node_search(uint8_t mac[6])
+void sdk_cnx_node_remove(struct sdk_cnx_node *cnx_node) {
+    const uint32_t num = sdk_g_ic.s._unknown310 + 2;
+    if ((int32_t)num < (int32_t)2) {
+        return;
+    }
+
+    struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.softap_netif_info;
+    uint32_t i = 1;
+    do {
+        if (netif_info->cnx_nodes[i] == cnx_node) {
+            uint32_t v2 = cnx_node->_unknowne8;
+            sdk_ic_remove_key(v2 + 2);
+            sdk_wpa_auth_sta_deinit(cnx_node->_unknowne4);
+            free(sdk_g_ic.v._unknown190[v2]);
+            sdk_g_ic.v._unknown190[v2] = NULL;
+            free(cnx_node);
+            netif_info->cnx_nodes[i] = NULL;
+            return;
+        }
+        i += 1;
+    } while (i < num);
+}
+
+struct sdk_cnx_node *sdk_cnx_node_search(uint8_t mac[6])
 {
     int end = sdk_g_ic.s._unknown310 + 2;
 
@@ -86,15 +115,15 @@ void IRAM *sdk_cnx_node_search(uint8_t mac[6])
     if (end < 1)
         return NULL;
 
-    struct sdk_netif_conninfo **conninfo = sdk_g_ic.v.softap_netif_info->conninfo;
+    struct sdk_cnx_node **cnx_nodes = sdk_g_ic.v.softap_netif_info->cnx_nodes;
 
     int i = 0;
     do {
-        struct sdk_netif_conninfo *info = conninfo[i];
+        struct sdk_cnx_node *cnx_node = cnx_nodes[i];
 
-        if (info) {
-            if (memcmp(mac, info->mac_addr, 6) == 0) {
-                return info;
+        if (cnx_node) {
+            if (memcmp(mac, cnx_node->mac_addr, 6) == 0) {
+                return cnx_node;
             }
         }
         i++;
@@ -102,5 +131,3 @@ void IRAM *sdk_cnx_node_search(uint8_t mac[6])
 
     return NULL;
 }
-
-#endif /* OPEN_LIBNET80211_WL_CNX */
diff --git a/open_esplibs/libpp/wdev.c b/open_esplibs/libpp/wdev.c
index 1564a59..902b3dc 100644
--- a/open_esplibs/libpp/wdev.c
+++ b/open_esplibs/libpp/wdev.c
@@ -5,7 +5,13 @@
 */
 #include "open_esplibs.h"
 #if OPEN_LIBPP_WDEV
-// The contents of this file are only built if OPEN_LIBPHY_PHY_CHIP_SLEEP is set to true
+// The contents of this file are only built if OPEN_LIBPP_WDEV is set to true
 
+// Note the SDK allocated 8000 bytes for TX buffers that appears to be
+// unused. Rather TX buffers appear to be allocated by upper layers. The
+// location of this areas is at wDevCtrl + 0x2190. The SDK has been modified
+// to allocate only one word (4 bytes) per buffer on initialization and even
+// these seem unused but to be sure avoid the first 20 bytes. So there are
+// 7980 bytes free starting at wDevCtrl + 0x21a4.
 
 #endif /* OPEN_LIBPP_WDEV */
diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c
index 1c70516..43f332c 100644
--- a/open_esplibs/libwpa/wpa_main.c
+++ b/open_esplibs/libwpa/wpa_main.c
@@ -3,13 +3,13 @@
    Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries.
    BSD Licensed as described in the file LICENSE
 */
-#include "open_esplibs.h"
-#if OPEN_LIBWPA_WPA_MAIN
-// The contents of this file are only built if OPEN_LIBWPA_WPA_MAIN is set to true
 
+#include 
+#include 
 #include "espressif/user_interface.h"
 #include "etstimer.h"
 #include "espressif/osapi.h"
+#include "espressif/esp_sta.h"
 #include "esplibs/libnet80211.h"
 #include "esplibs/libmain.h"
 #include "esplibs/libwpa.h"
@@ -44,8 +44,8 @@ void sdk_wpa_config_bss(struct sdk_g_ic_st *g_ic, uint8_t (* hwaddr2)[6]) {
     struct sdk_g_ic_netif_info *netif_info = g_ic->v.station_netif_info;
     struct netif *netif = netif_info->netif;
     sdk_wpa_set_bss(netif->hwaddr, hwaddr2, g_ic->s._unknown20a, g_ic->s._unknown20c,
-                    g_ic->s.sta_password, g_ic->s._unknown1e4.sta_ssid,
-                    (g_ic->s._unknown1e4._unknown1e6 << 16) | g_ic->s._unknown1e4._unknown1e4);
+                    g_ic->s.sta_password, g_ic->s.sta_ssid.ssid,
+                    g_ic->s.sta_ssid.ssid_length);
 }
 
 void sdk_wpa_config_assoc_ie(int arg0, int16_t *arg1, int32_t arg2) {
@@ -57,14 +57,14 @@ void sdk_wpa_config_assoc_ie(int arg0, int16_t *arg1, int32_t arg2) {
     *arg1 = arg2;
 }
 
-void sdk_dhcp_bind_check() {
+void sdk_dhcp_bind_check(void *parg) {
     struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info;
     uint8_t connect_status = netif_info->connect_status;
     uint8_t unknown20a = sdk_g_ic.s._unknown20a;
 
-    if (connect_status != 5) {
+    if (connect_status != STATION_GOT_IP) {
         if (unknown20a == 7 || unknown20a == 8) {
-            netif_info->connect_status = 2;
+            netif_info->connect_status = STATION_CONNECTING;
         }
     }
 }
@@ -72,13 +72,13 @@ void sdk_dhcp_bind_check() {
 void sdk_eagle_auth_done() {
     struct sdk_g_ic_netif_info *netif_info = sdk_g_ic.v.station_netif_info;
     struct netif *netif = netif_info->netif;
-    struct sdk_netif_conninfo *conninfo = netif_info->_unknown88;
+    struct sdk_cnx_node *cnx_node = netif_info->_unknown88;
 
-    if (conninfo->_unknown08 & 1)
+    if (cnx_node->_unknown08 & 1)
         return;
 
-    uint32_t channel = conninfo->_unknown78->channel;
-    char *ssid = (char *)sdk_g_ic.s._unknown1e4.sta_ssid;
+    uint32_t channel = cnx_node->_unknown78->channel;
+    char *ssid = (char *)sdk_g_ic.s.sta_ssid.ssid;
     printf("\nconnected with %s, channel %d\n", ssid, channel);
 
     RTCMEM_SYSTEM[61] = 0x00010000 | channel;
@@ -89,24 +89,29 @@ void sdk_eagle_auth_done() {
     sdk_os_timer_arm(timer, 15000, 0);
 
     netif_info->statusb9 = 0;
-    conninfo->_unknown18 = 0;
-    conninfo->_unknown08 |= 1;
+    cnx_node->_unknown18 = 0;
+    cnx_node->_unknown08 |= 1;
 
-    // TODO lwip v2 removed the NETIF_FLAG_DHCP flag.
-    if (netif->flags & 0x08) // NETIF_FLAG_DHCP
+    if (dhcp_supplied_address(netif))
         return;
 
-    // lwip v2: if (ip4_addr_isany_val(netif->ip_addr)) {
-    if (netif->ip_addr.addr == 0) {
-        if (sdk_dhcpc_flag != DHCP_STOPPED) {
-            printf("dhcp client start...\n");
-            dhcp_start(netif);
-        }
+    if (sdk_dhcpc_flag != DHCP_STOPPED) {
+        printf("dhcp client start...\n");
+        netif_set_up(netif);
+        dhcp_start(netif);
         return;
     }
 
-    system_station_got_ip_set(&netif->ip_addr, &netif->netmask, &netif->gw);
+    if (ip4_addr_isany_val(sdk_info.sta_ipaddr)) {
+        printf("expected a static ip address?\n");
+        return;
+    }
+
+    netif_set_addr(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw);
     netif_set_up(netif);
+    sdk_system_station_got_ip_set(ip_2_ip4(&netif->ip_addr),
+                                  ip_2_ip4(&netif->netmask),
+                                  ip_2_ip4(&netif->gw));
 }
 
 void sdk_wpa_neg_complete() {
@@ -120,5 +125,3 @@ void sdk_wpa_attach(struct sdk_g_ic_st *g_ic) {
                      wpa_callback2, sdk_wpa_neg_complete);
     sdk_ppRegisterTxCallback(sdk_eapol_txcb, 3);
 }
-
-#endif /* OPEN_LIBWPA_WPA_MAIN */

From af4ac44cb595e7076a325923e6dc6013de149933 Mon Sep 17 00:00:00 2001
From: Our Air Quality 
Date: Thu, 13 Apr 2017 13:52:05 +1000
Subject: [PATCH 190/349] libc: update to a recent newlib version.

---
 README.md                                     |    2 +-
 core/newlib_syscalls.c                        |    9 +
 libc/README.md                                |    4 +-
 libc/share/info/configure.info                | 2721 --------
 libc/share/info/standards.info                | 5720 -----------------
 .../include/_newlib_version.h                 |   12 +
 libc/xtensa-lx106-elf/include/complex.h       |   37 +-
 libc/xtensa-lx106-elf/include/cpio.h          |   30 +
 libc/xtensa-lx106-elf/include/ctype.h         |   92 +-
 libc/xtensa-lx106-elf/include/devctl.h        |   51 +
 libc/xtensa-lx106-elf/include/dirent.h        |    3 +-
 libc/xtensa-lx106-elf/include/fnmatch.h       |    6 +-
 libc/xtensa-lx106-elf/include/grp.h           |   19 +-
 libc/xtensa-lx106-elf/include/ieeefp.h        |  103 +-
 libc/xtensa-lx106-elf/include/inttypes.h      |  234 +-
 libc/xtensa-lx106-elf/include/langinfo.h      |   18 +-
 libc/xtensa-lx106-elf/include/libgen.h        |   16 +-
 libc/xtensa-lx106-elf/include/limits.h        |    6 +-
 libc/xtensa-lx106-elf/include/locale.h        |   44 +-
 .../include/machine/_arc4random.h             |    1 +
 .../include/machine/_default_types.h          |    3 +
 .../include/machine/_endian.h                 |   35 +
 libc/xtensa-lx106-elf/include/machine/_time.h |    3 +
 .../xtensa-lx106-elf/include/machine/endian.h |   73 +-
 .../xtensa-lx106-elf/include/machine/ieeefp.h |    8 +
 .../xtensa-lx106-elf/include/machine/setjmp.h |   31 +-
 libc/xtensa-lx106-elf/include/machine/time.h  |   12 +-
 libc/xtensa-lx106-elf/include/machine/types.h |   33 +-
 libc/xtensa-lx106-elf/include/math.h          |  193 +-
 libc/xtensa-lx106-elf/include/memory.h        |    4 +
 libc/xtensa-lx106-elf/include/newlib.h        |   16 +-
 libc/xtensa-lx106-elf/include/pthread.h       |   57 +-
 libc/xtensa-lx106-elf/include/pwd.h           |    4 +-
 libc/xtensa-lx106-elf/include/reent.h         |    1 -
 libc/xtensa-lx106-elf/include/signal.h        |    7 +-
 libc/xtensa-lx106-elf/include/stdint.h        |  195 +-
 libc/xtensa-lx106-elf/include/stdio.h         |  126 +-
 libc/xtensa-lx106-elf/include/stdlib.h        |  152 +-
 libc/xtensa-lx106-elf/include/string.h        |  107 +-
 libc/xtensa-lx106-elf/include/strings.h       |   89 +-
 .../include/sys/_default_fcntl.h              |   32 +-
 .../include/sys/_pthreadtypes.h               |  233 +
 libc/xtensa-lx106-elf/include/sys/_sigset.h   |   43 +
 libc/xtensa-lx106-elf/include/sys/_stdint.h   |   90 +
 libc/xtensa-lx106-elf/include/sys/_timespec.h |   50 +
 libc/xtensa-lx106-elf/include/sys/_timeval.h  |   89 +
 libc/xtensa-lx106-elf/include/sys/_types.h    |  148 +-
 libc/xtensa-lx106-elf/include/sys/cdefs.h     |  354 +-
 libc/xtensa-lx106-elf/include/sys/config.h    |   15 +-
 libc/xtensa-lx106-elf/include/sys/features.h  |  409 +-
 libc/xtensa-lx106-elf/include/sys/param.h     |    7 +
 libc/xtensa-lx106-elf/include/sys/queue.h     |  267 +-
 libc/xtensa-lx106-elf/include/sys/reent.h     |   55 +-
 libc/xtensa-lx106-elf/include/sys/sched.h     |    2 +
 libc/xtensa-lx106-elf/include/sys/select.h    |   87 +
 libc/xtensa-lx106-elf/include/sys/signal.h    |  144 +-
 libc/xtensa-lx106-elf/include/sys/stat.h      |   21 +-
 libc/xtensa-lx106-elf/include/sys/time.h      |  347 +-
 libc/xtensa-lx106-elf/include/sys/timeb.h     |    9 +-
 libc/xtensa-lx106-elf/include/sys/times.h     |    9 +-
 libc/xtensa-lx106-elf/include/sys/timespec.h  |   63 +
 libc/xtensa-lx106-elf/include/sys/tree.h      |  801 +++
 libc/xtensa-lx106-elf/include/sys/types.h     |  527 +-
 libc/xtensa-lx106-elf/include/sys/unistd.h    |  136 +-
 libc/xtensa-lx106-elf/include/sys/wait.h      |    2 +-
 libc/xtensa-lx106-elf/include/tar.h           |    4 +
 libc/xtensa-lx106-elf/include/tgmath.h        |    7 +-
 libc/xtensa-lx106-elf/include/threads.h       |   93 +
 libc/xtensa-lx106-elf/include/time.h          |   31 +-
 libc/xtensa-lx106-elf/include/wchar.h         |   92 +-
 libc/xtensa-lx106-elf/include/wctype.h        |   27 +
 libc/xtensa-lx106-elf/include/xlocale.h       |   12 +
 libc/xtensa-lx106-elf/lib/crt0.o              |  Bin 2180 -> 2208 bytes
 libc/xtensa-lx106-elf/lib/libc.a              |  Bin 5248602 -> 5853090 bytes
 libc/xtensa-lx106-elf/lib/libg.a              |  Bin 5248602 -> 5853090 bytes
 libc/xtensa-lx106-elf/lib/libm.a              |  Bin 2241082 -> 2371658 bytes
 parameters.mk                                 |    2 +-
 77 files changed, 4496 insertions(+), 9989 deletions(-)
 delete mode 100644 libc/share/info/configure.info
 delete mode 100644 libc/share/info/standards.info
 create mode 100644 libc/xtensa-lx106-elf/include/_newlib_version.h
 create mode 100644 libc/xtensa-lx106-elf/include/cpio.h
 create mode 100644 libc/xtensa-lx106-elf/include/devctl.h
 create mode 100644 libc/xtensa-lx106-elf/include/machine/_arc4random.h
 create mode 100644 libc/xtensa-lx106-elf/include/machine/_endian.h
 create mode 100644 libc/xtensa-lx106-elf/include/machine/_time.h
 create mode 100644 libc/xtensa-lx106-elf/include/memory.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/_pthreadtypes.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/_sigset.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/_stdint.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/_timespec.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/_timeval.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/select.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/timespec.h
 create mode 100644 libc/xtensa-lx106-elf/include/sys/tree.h
 create mode 100644 libc/xtensa-lx106-elf/include/threads.h
 create mode 100644 libc/xtensa-lx106-elf/include/xlocale.h

diff --git a/README.md b/README.md
index 5617771..4c18c40 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl
 
 * [FreeRTOS](http://www.freertos.org/) V9.0.0
 * [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v2.0.3, with [some modifications](https://github.com/ourairquality/lwip/).
-* [newlib](https://github.com/projectgus/newlib-xtensa) v2.2.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS.
+* [newlib](https://github.com/ourairquality/newlib) v2.5.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS.
 
 For details of how third party libraries are integrated, [see the wiki page](https://github.com/SuperHouse/esp-open-rtos/wiki/Third-Party-Libraries).
 
diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c
index 146a010..d095ba9 100644
--- a/core/newlib_syscalls.c
+++ b/core/newlib_syscalls.c
@@ -13,6 +13,7 @@
 #include 
 #include 
 #include 
+#include 
 
 extern void *xPortSupervisorStackPointer;
 
@@ -135,6 +136,14 @@ int _stat_r(struct _reent *r, const char *pathname, void *buf);
 __attribute__((weak, alias("syscall_returns_enosys"))) 
 off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence);
 
+__attribute__((weak, alias("_gettimeofday_r")))
+int _gettimeofday_r _PARAMS ((struct _reent *r, struct timeval *now, void *p)) {
+  now->tv_sec = 0;
+  now->tv_usec = 0;
+  errno = ENOSYS;
+  return -1;
+}
+
 /* Generic stub for any newlib syscall that fails with errno ENOSYS
    ("Function not implemented") and a return value equivalent to
    (int)-1. */
diff --git a/libc/README.md b/libc/README.md
index 0a2941d..50a299a 100644
--- a/libc/README.md
+++ b/libc/README.md
@@ -1,3 +1 @@
-Newlib 2.2.0 with xtensa & locking patches, built from commit daa6ae40cdc8099f54c3e68a586fc1b906169c5a
-
-For details on newlib in esp-open-rtos, see https://github.com/SuperHouse/esp-open-rtos/wiki/libc-configuration
+Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit cca8337a4eff8d590c54ce0a9cf335041d949296
diff --git a/libc/share/info/configure.info b/libc/share/info/configure.info
deleted file mode 100644
index eccae2a..0000000
--- a/libc/share/info/configure.info
+++ /dev/null
@@ -1,2721 +0,0 @@
-This is configure.info, produced by makeinfo version 6.0 from
-configure.texi.
-
-INFO-DIR-SECTION GNU admin
-START-INFO-DIR-ENTRY
-* configure: (configure).	The GNU configure and build system
-END-INFO-DIR-ENTRY
-
-This file documents the GNU configure and build system.
-
-   Copyright (C) 1998 Cygnus Solutions.
-
-   Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-   Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-   Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-File: configure.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-GNU configure and build system
-******************************
-
-The GNU configure and build system.
-
-* Menu:
-
-* Introduction::		Introduction.
-* Getting Started::		Getting Started.
-* Files::			Files.
-* Configuration Names::		Configuration Names.
-* Cross Compilation Tools::	Cross Compilation Tools.
-* Canadian Cross::		Canadian Cross.
-* Cygnus Configure::		Cygnus Configure.
-* Multilibs::			Multilibs.
-* FAQ::				Frequently Asked Questions.
-* Index::			Index.
-
-
-File: configure.info,  Node: Introduction,  Next: Getting Started,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-This document describes the GNU configure and build systems.  It
-describes how autoconf, automake, libtool, and make fit together.  It
-also includes a discussion of the older Cygnus configure system.
-
-   This document does not describe in detail how to use each of the
-tools; see the respective manuals for that.  Instead, it describes which
-files the developer must write, which files are machine generated and
-how they are generated, and where certain common problems should be
-addressed.
-
-   This document draws on several sources, including the autoconf manual
-by David MacKenzie (*note autoconf overview: (autoconf)Top.), the
-automake manual by David MacKenzie and Tom Tromey (*note automake
-overview: (automake)Top.), the libtool manual by Gordon Matzigkeit
-(*note libtool overview: (libtool)Top.), and the Cygnus configure manual
-by K. Richard Pixley.
-
-* Menu:
-
-* Goals::			Goals.
-* Tools::			The tools.
-* History::			History.
-* Building::			Building.
-
-
-File: configure.info,  Node: Goals,  Next: Tools,  Up: Introduction
-
-1.1 Goals
-=========
-
-The GNU configure and build system has two main goals.
-
-   The first is to simplify the development of portable programs.  The
-system permits the developer to concentrate on writing the program,
-simplifying many details of portability across Unix and even Windows
-systems, and permitting the developer to describe how to build the
-program using simple rules rather than complex Makefiles.
-
-   The second is to simplify the building of programs distributed as
-source code.  All programs are built using a simple, standardized, two
-step process.  The program builder need not install any special tools in
-order to build the program.
-
-
-File: configure.info,  Node: Tools,  Next: History,  Prev: Goals,  Up: Introduction
-
-1.2 Tools
-=========
-
-The GNU configure and build system is comprised of several different
-tools.  Program developers must build and install all of these tools.
-
-   People who just want to build programs from distributed sources
-normally do not need any special tools beyond a Unix shell, a make
-program, and a C compiler.
-
-autoconf
-     provides a general portability framework, based on testing the
-     features of the host system at build time.
-automake
-     a system for describing how to build a program, permitting the
-     developer to write a simplified 'Makefile'.
-libtool
-     a standardized approach to building shared libraries.
-gettext
-     provides a framework for translation of text messages into other
-     languages; not really discussed in this document.
-m4
-     autoconf requires the GNU version of m4; the standard Unix m4 does
-     not suffice.
-perl
-     automake requires perl.
-
-
-File: configure.info,  Node: History,  Next: Building,  Prev: Tools,  Up: Introduction
-
-1.3 History
-===========
-
-This is a very brief and probably inaccurate history.
-
-   As the number of Unix variants increased during the 1980s, it became
-harder to write programs which could run on all variants.  While it was
-often possible to use '#ifdef' to identify particular systems,
-developers frequently did not have access to every system, and the
-characteristics of some systems changed from version to version.
-
-   By 1992, at least three different approaches had been developed:
-   * The Metaconfig program, by Larry Wall, Harlan Stenn, and Raphael
-     Manfredi.
-   * The Cygnus configure script, by K. Richard Pixley, and the gcc
-     configure script, by Richard Stallman.  These use essentially the
-     same approach, and the developers communicated regularly.
-   * The autoconf program, by David MacKenzie.
-
-   The Metaconfig program is still used for Perl and a few other
-programs.  It is part of the Dist package.  I do not know if it is being
-developed.
-
-   In 1994, David MacKenzie and others modified autoconf to incorporate
-all the features of Cygnus configure.  Since then, there has been a slow
-but steady conversion of GNU programs from Cygnus configure to autoconf.
-gcc has been converted, eliminating the gcc configure script.
-
-   GNU autoconf was regularly maintained until late 1996.  As of this
-writing in June, 1998, it has no public maintainer.
-
-   Most programs are built using the make program, which requires the
-developer to write Makefiles describing how to build the programs.
-Since most programs are built in pretty much the same way, this led to a
-lot of duplication.
-
-   The X Window system is built using the imake tool, which uses a
-database of rules to eliminate the duplication.  However, building a
-tool which was developed using imake requires that the builder have
-imake installed, violating one of the goals of the GNU system.
-
-   The new BSD make provides a standard library of Makefile fragments,
-which permits developers to write very simple Makefiles.  However, this
-requires that the builder install the new BSD make program.
-
-   In 1994, David MacKenzie wrote the first version of automake, which
-permitted writing a simple build description which was converted into a
-Makefile which could be used by the standard make program.  In 1995, Tom
-Tromey completely rewrote automake in Perl, and he continues to enhance
-it.
-
-   Various free packages built libraries, and by around 1995 several
-included support to build shared libraries on various platforms.
-However, there was no consistent approach.  In early 1996, Gordon
-Matzigkeit began working on libtool, which provided a standardized
-approach to building shared libraries.  This was integrated into
-automake from the start.
-
-   The development of automake and libtool was driven by the GNITS
-project, a group of GNU maintainers who designed standardized tools to
-help meet the GNU coding standards.
-
-
-File: configure.info,  Node: Building,  Prev: History,  Up: Introduction
-
-1.4 Building
-============
-
-Most readers of this document should already know how to build a tool by
-running 'configure' and 'make'.  This section may serve as a quick
-introduction or reminder.
-
-   Building a tool is normally as simple as running 'configure' followed
-by 'make'.  You should normally run 'configure' from an empty directory,
-using some path to refer to the 'configure' script in the source
-directory.  The directory in which you run 'configure' is called the
-"object directory".
-
-   In order to use a object directory which is different from the source
-directory, you must be using the GNU version of 'make', which has the
-required 'VPATH' support.  Despite this restriction, using a different
-object directory is highly recommended:
-   * It keeps the files generated during the build from cluttering up
-     your sources.
-   * It permits you to remove the built files by simply removing the
-     entire build directory.
-   * It permits you to build from the same sources with several sets of
-     configure options simultaneously.
-
-   If you don't have GNU 'make', you will have to run 'configure' in the
-source directory.  All GNU packages should support this; in particular,
-GNU packages should not assume the presence of GNU 'make'.
-
-   After running 'configure', you can build the tools by running 'make'.
-
-   To install the tools, run 'make install'.  Installing the tools will
-copy the programs and any required support files to the "installation
-directory".  The location of the installation directory is controlled by
-'configure' options, as described below.
-
-   In the Cygnus tree at present, the info files are built and installed
-as a separate step.  To build them, run 'make info'.  To install them,
-run 'make install-info'.  The equivalent html files are also built and
-installed in a separate step.  To build the html files, run 'make html'.
-To install the html files run 'make install-html'.
-
-   All 'configure' scripts support a wide variety of options.  The most
-interesting ones are '--with' and '--enable' options which are generally
-specific to particular tools.  You can usually use the '--help' option
-to get a list of interesting options for a particular configure script.
-
-   The only generic options you are likely to use are the '--prefix' and
-'--exec-prefix' options.  These options are used to specify the
-installation directory.
-
-   The directory named by the '--prefix' option will hold machine
-independent files such as info files.
-
-   The directory named by the '--exec-prefix' option, which is normally
-a subdirectory of the '--prefix' directory, will hold machine dependent
-files such as executables.
-
-   The default for '--prefix' is '/usr/local'.  The default for
-'--exec-prefix' is the value used for '--prefix'.
-
-   The convention used in Cygnus releases is to use a '--prefix' option
-of '/usr/cygnus/RELEASE', where RELEASE is the name of the release, and
-to use a '--exec-prefix' option of '/usr/cygnus/RELEASE/H-HOST', where
-HOST is the configuration name of the host system (*note Configuration
-Names::).
-
-   Do not use either the source or the object directory as the
-installation directory.  That will just lead to confusion.
-
-
-File: configure.info,  Node: Getting Started,  Next: Files,  Prev: Introduction,  Up: Top
-
-2 Getting Started
-*****************
-
-To start using the GNU configure and build system with your software
-package, you must write three files, and you must run some tools to
-manually generate additional files.
-
-* Menu:
-
-* Write configure.in::		Write configure.in.
-* Write Makefile.am::		Write Makefile.am.
-* Write acconfig.h::		Write acconfig.h.
-* Generate files::		Generate files.
-* Getting Started Example::	Example.
-
-
-File: configure.info,  Node: Write configure.in,  Next: Write Makefile.am,  Up: Getting Started
-
-2.1 Write configure.in
-======================
-
-You must first write the file 'configure.in'.  This is an autoconf input
-file, and the autoconf manual describes in detail what this file should
-look like.
-
-   You will write tests in your 'configure.in' file to check for
-conditions that may change from one system to another, such as the
-presence of particular header files or functions.
-
-   For example, not all systems support the 'gettimeofday' function.  If
-you want to use the 'gettimeofday' function when it is available, and to
-use some other function when it is not, you would check for this by
-putting 'AC_CHECK_FUNCS(gettimeofday)' in 'configure.in'.
-
-   When the configure script is run at build time, this will arrange to
-define the preprocessor macro 'HAVE_GETTIMEOFDAY' to the value 1 if the
-'gettimeofday' function is available, and to not define the macro at all
-if the function is not available.  Your code can then use '#ifdef' to
-test whether it is safe to call 'gettimeofday'.
-
-   If you have an existing body of code, the 'autoscan' program may help
-identify potential portability problems, and hence configure tests that
-you will want to use.  *Note (autoconf)Invoking autoscan::.
-
-   Another handy tool for an existing body of code is 'ifnames'.  This
-will show you all the preprocessor conditionals that the code already
-uses.  *Note (autoconf)Invoking ifnames::.
-
-   Besides the portability tests which are specific to your particular
-package, every 'configure.in' file should contain the following macros.
-
-'AC_INIT'
-     This macro takes a single argument, which is the name of a file in
-     your package.  For example, 'AC_INIT(foo.c)'.
-
-'AC_PREREQ(VERSION)'
-     This macro is optional.  It may be used to indicate the version of
-     'autoconf' that you are using.  This will prevent users from
-     running an earlier version of 'autoconf' and perhaps getting an
-     invalid 'configure' script.  For example, 'AC_PREREQ(2.12)'.
-
-'AM_INIT_AUTOMAKE'
-     This macro takes two arguments: the name of the package, and a
-     version number.  For example, 'AM_INIT_AUTOMAKE(foo, 1.0)'.  (This
-     macro is not needed if you are not using automake).
-
-'AM_CONFIG_HEADER'
-     This macro names the header file which will hold the preprocessor
-     macro definitions at run time.  Normally this should be 'config.h'.
-     Your sources would then use '#include "config.h"' to include it.
-
-     This macro may optionally name the input file for that header file;
-     by default, this is 'config.h.in', but that file name works poorly
-     on DOS filesystems.  Therefore, it is often better to name it
-     explicitly as 'config.in'.
-
-     This is what you should normally put in 'configure.in':
-          AM_CONFIG_HEADER(config.h:config.in)
-
-     (If you are not using automake, use 'AC_CONFIG_HEADER' rather than
-     'AM_CONFIG_HEADER').
-
-'AM_MAINTAINER_MODE'
-     This macro always appears in Cygnus configure scripts.  Other
-     programs may or may not use it.
-
-     If this macro is used, the '--enable-maintainer-mode' option is
-     required to enable automatic rebuilding of generated files used by
-     the configure system.  This of course requires that developers be
-     aware of, and use, that option.
-
-     If this macro is not used, then the generated files will always be
-     rebuilt automatically.  This will cause problems if the wrong
-     versions of autoconf, automake, or others are in the builder's
-     'PATH'.
-
-     (If you are not using automake, you do not need to use this macro).
-
-'AC_EXEEXT'
-     Either this macro or 'AM_EXEEXT' always appears in Cygnus configure
-     files.  Other programs may or may not use one of them.
-
-     This macro looks for the executable suffix used on the host system.
-     On Unix systems, this is the empty string.  On Windows systems,
-     this is '.exe'.  This macro directs automake to use the executable
-     suffix as appropriate when creating programs.  This macro does not
-     take any arguments.
-
-     The 'AC_EXEEXT' form is new, and is part of a Cygnus patch to
-     autoconf to support compiling with Visual C++.  Older programs use
-     'AM_EXEEXT' instead.
-
-     (Programs which do not use automake use neither 'AC_EXEEXT' nor
-     'AM_EXEEXT').
-
-'AC_PROG_CC'
-     If you are writing C code, you will normally want to use this
-     macro.  It locates the C compiler to use.  It does not take any
-     arguments.
-
-     However, if this 'configure.in' file is for a library which is to
-     be compiled by a cross compiler which may not fully work, then you
-     will not want to use 'AC_PROG_CC'.  Instead, you will want to use a
-     variant which does not call the macro 'AC_PROG_CC_WORKS'.  Examples
-     can be found in various 'configure.in' files for libraries that are
-     compiled with cross compilers, such as libiberty or libgloss.  This
-     is essentially a bug in autoconf, and there will probably be a
-     better workaround at some point.
-
-'AC_PROG_CXX'
-     If you are writing C++ code, you will want to use this macro.  It
-     locates the C++ compiler to use.  It does not take any arguments.
-     The same cross compiler comments apply as for 'AC_PROG_CC'.
-
-'AM_PROG_LIBTOOL'
-     If you want to build libraries, and you want to permit them to be
-     shared, or you want to link against libraries which were built
-     using libtool, then you will need this macro.  This macro is
-     required in order to use libtool.
-
-     By default, this will cause all libraries to be built as shared
-     libraries.  To prevent this-to change the default-use
-     'AM_DISABLE_SHARED' before 'AM_PROG_LIBTOOL'.  The configure
-     options '--enable-shared' and '--disable-shared' may be used to
-     override the default at build time.
-
-'AC_DEFINE(_GNU_SOURCE)'
-     GNU packages should normally include this line before any other
-     feature tests.  This defines the macro '_GNU_SOURCE' when
-     compiling, which directs the libc header files to provide the
-     standard GNU system interfaces including all GNU extensions.  If
-     this macro is not defined, certain GNU extensions may not be
-     available.
-
-'AC_OUTPUT'
-     This macro takes a list of file names which the configure process
-     should produce.  This is normally a list of one or more 'Makefile'
-     files in different directories.  If your package lives entirely in
-     a single directory, you would use simply 'AC_OUTPUT(Makefile)'.  If
-     you also have, for example, a 'lib' subdirectory, you would use
-     'AC_OUTPUT(Makefile lib/Makefile)'.
-
-   If you want to use locally defined macros in your 'configure.in'
-file, then you will need to write a 'acinclude.m4' file which defines
-them (if not using automake, this file is called 'aclocal.m4').
-Alternatively, you can put separate macros in an 'm4' subdirectory, and
-put 'ACLOCAL_AMFLAGS = -I m4' in your 'Makefile.am' file so that the
-'aclocal' program will be able to find them.
-
-   The different macro prefixes indicate which tool defines the macro.
-Macros which start with 'AC_' are part of autoconf.  Macros which start
-with 'AM_' are provided by automake or libtool.
-
-
-File: configure.info,  Node: Write Makefile.am,  Next: Write acconfig.h,  Prev: Write configure.in,  Up: Getting Started
-
-2.2 Write Makefile.am
-=====================
-
-You must write the file 'Makefile.am'.  This is an automake input file,
-and the automake manual describes in detail what this file should look
-like.
-
-   The automake commands in 'Makefile.am' mostly look like variable
-assignments in a 'Makefile'.  automake recognizes special variable
-names, and automatically add make rules to the output as needed.
-
-   There will be one 'Makefile.am' file for each directory in your
-package.  For each directory with subdirectories, the 'Makefile.am' file
-should contain the line
-     SUBDIRS = DIR DIR ...
-where each DIR is the name of a subdirectory.
-
-   For each 'Makefile.am', there should be a corresponding 'Makefile' in
-the 'AC_OUTPUT' macro in 'configure.in'.
-
-   Every 'Makefile.am' written at Cygnus should contain the line
-     AUTOMAKE_OPTIONS = cygnus
-This puts automake into Cygnus mode.  See the automake manual for
-details.
-
-   You may to include the version number of 'automake' that you are
-using on the 'AUTOMAKE_OPTIONS' line.  For example,
-     AUTOMAKE_OPTIONS = cygnus 1.3
-This will prevent users from running an earlier version of 'automake'
-and perhaps getting an invalid 'Makefile.in'.
-
-   If your package builds a program, then in the directory where that
-program is built you will normally want a line like
-     bin_PROGRAMS = PROGRAM
-where PROGRAM is the name of the program.  You will then want a line
-like
-     PROGRAM_SOURCES = FILE FILE ...
-where each FILE is the name of a source file to link into the program
-(e.g., 'foo.c').
-
-   If your package builds a library, and you do not want the library to
-ever be built as a shared library, then in the directory where that
-library is built you will normally want a line like
-     lib_LIBRARIES = libNAME.a
-where 'libNAME.a' is the name of the library.  You will then want a line
-like
-     libNAME_a_SOURCES = FILE FILE ...
-where each FILE is the name of a source file to add to the library.
-
-   If your package builds a library, and you want to permit building the
-library as a shared library, then in the directory where that library is
-built you will normally want a line like
-     lib_LTLIBRARIES = libNAME.la
-   The use of 'LTLIBRARIES', and the '.la' extension, indicate a library
-to be built using libtool.  As usual, you will then want a line like
-     libNAME_la_SOURCES = FILE FILE ...
-
-   The strings 'bin' and 'lib' that appear above in 'bin_PROGRAMS' and
-'lib_LIBRARIES' are not arbitrary.  They refer to particular
-directories, which may be set by the '--bindir' and '--libdir' options
-to 'configure'.  If those options are not used, the default values are
-based on the '--prefix' or '--exec-prefix' options to 'configure'.  It
-is possible to use other names if the program or library should be
-installed in some other directory.
-
-   The 'Makefile.am' file may also contain almost anything that may
-appear in a normal 'Makefile'.  automake also supports many other
-special variables, as well as conditionals.
-
-   See the automake manual for more information.
-
-
-File: configure.info,  Node: Write acconfig.h,  Next: Generate files,  Prev: Write Makefile.am,  Up: Getting Started
-
-2.3 Write acconfig.h
-====================
-
-If you are generating a portability header file, (i.e., you are using
-'AM_CONFIG_HEADER' in 'configure.in'), then you will have to write a
-'acconfig.h' file.  It will have to contain the following lines.
-
-     /* Name of package.  */
-     #undef PACKAGE
-
-     /* Version of package.  */
-     #undef VERSION
-
-   This requirement is really a bug in the system, and the requirement
-may be eliminated at some later date.
-
-   The 'acconfig.h' file will also similar comment and '#undef' lines
-for any unusual macros in the 'configure.in' file, including any macro
-which appears in a 'AC_DEFINE' macro.
-
-   In particular, if you are writing a GNU package and therefore include
-'AC_DEFINE(_GNU_SOURCE)' in 'configure.in' as suggested above, you will
-need lines like this in 'acconfig.h':
-     /* Enable GNU extensions.  */
-     #undef _GNU_SOURCE
-
-   Normally the 'autoheader' program will inform you of any such
-requirements by printing an error message when it is run.  However, if
-you do anything particular odd in your 'configure.in' file, you will
-have to make sure that the right entries appear in 'acconfig.h', since
-otherwise the results of the tests may not be available in the
-'config.h' file which your code will use.
-
-   (Thee 'PACKAGE' and 'VERSION' lines are not required if you are not
-using automake, and in that case you may not need a 'acconfig.h' file at
-all).
-
-
-File: configure.info,  Node: Generate files,  Next: Getting Started Example,  Prev: Write acconfig.h,  Up: Getting Started
-
-2.4 Generate files
-==================
-
-Once you have written 'configure.in', 'Makefile.am', 'acconfig.h', and
-possibly 'acinclude.m4', you must use autoconf and automake programs to
-produce the first versions of the generated files.  This is done by
-executing the following sequence of commands.
-
-     aclocal
-     autoconf
-     autoheader
-     automake
-
-   The 'aclocal' and 'automake' commands are part of the automake
-package, and the 'autoconf' and 'autoheader' commands are part of the
-autoconf package.
-
-   If you are using a 'm4' subdirectory for your macros, you will need
-to use the '-I m4' option when you run 'aclocal'.
-
-   If you are not using the Cygnus tree, use the '-a' option when
-running 'automake' command in order to copy the required support files
-into your source directory.
-
-   If you are using libtool, you must build and install the libtool
-package with the same '--prefix' and '--exec-prefix' options as you used
-with the autoconf and automake packages.  You must do this before
-running any of the above commands.  If you are not using the Cygnus
-tree, you will need to run the 'libtoolize' program to copy the libtool
-support files into your directory.
-
-   Once you have managed to run these commands without getting any
-errors, you should create a new empty directory, and run the 'configure'
-script which will have been created by 'autoconf' with the
-'--enable-maintainer-mode' option.  This will give you a set of
-Makefiles which will include rules to automatically rebuild all the
-generated files.
-
-   After doing that, whenever you have changed some of the input files
-and want to regenerated the other files, go to your object directory and
-run 'make'.  Doing this is more reliable than trying to rebuild the
-files manually, because there are complex order dependencies and it is
-easy to forget something.
-
-
-File: configure.info,  Node: Getting Started Example,  Prev: Generate files,  Up: Getting Started
-
-2.5 Example
-===========
-
-Let's consider a trivial example.
-
-   Suppose we want to write a simple version of 'touch'.  Our program,
-which we will call 'poke', will take a single file name argument, and
-use the 'utime' system call to set the modification and access times of
-the file to the current time.  We want this program to be highly
-portable.
-
-   We'll first see what this looks like without using autoconf and
-automake, and then see what it looks like with them.
-
-* Menu:
-
-* Getting Started Example 1::		First Try.
-* Getting Started Example 2::		Second Try.
-* Getting Started Example 3::		Third Try.
-* Generate Files in Example::		Generate Files.
-
-
-File: configure.info,  Node: Getting Started Example 1,  Next: Getting Started Example 2,  Up: Getting Started Example
-
-2.5.1 First Try
----------------
-
-Here is our first try at 'poke.c'.  Note that we've written it without
-ANSI/ISO C prototypes, since we want it to be highly portable.
-
-     #include 
-     #include 
-     #include 
-     #include 
-
-     int
-     main (argc, argv)
-          int argc;
-          char **argv;
-     {
-       if (argc != 2)
-         {
-           fprintf (stderr, "Usage: poke file\n");
-           exit (1);
-         }
-
-       if (utime (argv[1], NULL) < 0)
-         {
-           perror ("utime");
-           exit (1);
-         }
-
-       exit (0);
-     }
-
-   We also write a simple 'Makefile'.
-
-     CC = gcc
-     CFLAGS = -g -O2
-
-     all: poke
-
-     poke: poke.o
-     	$(CC) -o poke $(CFLAGS) $(LDFLAGS) poke.o
-
-   So far, so good.
-
-   Unfortunately, there are a few problems.
-
-   On older Unix systems derived from BSD 4.3, the 'utime' system call
-does not accept a second argument of 'NULL'.  On those systems, we need
-to pass a pointer to 'struct utimbuf' structure.  Unfortunately, even
-older systems don't define that structure; on those systems, we need to
-pass an array of two 'long' values.
-
-   The header file 'stdlib.h' was invented by ANSI C, and older systems
-don't have a copy.  We included it above to get a declaration of 'exit'.
-
-   We can find some of these portability problems by running 'autoscan',
-which will create a 'configure.scan' file which we can use as a
-prototype for our 'configure.in' file.  I won't show the output, but it
-will notice the potential problems with 'utime' and 'stdlib.h'.
-
-   In our 'Makefile', we don't provide any way to install the program.
-This doesn't matter much for such a simple example, but a real program
-will need an 'install' target.  For that matter, we will also want a
-'clean' target.
-
-
-File: configure.info,  Node: Getting Started Example 2,  Next: Getting Started Example 3,  Prev: Getting Started Example 1,  Up: Getting Started Example
-
-2.5.2 Second Try
-----------------
-
-Here is our second try at this program.
-
-   We modify 'poke.c' to use preprocessor macros to control what
-features are available.  (I've cheated a bit by using the same macro
-names which autoconf will use).
-
-     #include 
-
-     #ifdef STDC_HEADERS
-     #include 
-     #endif
-
-     #include 
-
-     #ifdef HAVE_UTIME_H
-     #include 
-     #endif
-
-     #ifndef HAVE_UTIME_NULL
-
-     #include 
-
-     #ifndef HAVE_STRUCT_UTIMBUF
-
-     struct utimbuf
-     {
-       long actime;
-       long modtime;
-     };
-
-     #endif
-
-     static int
-     utime_now (file)
-          char *file;
-     {
-       struct utimbuf now;
-
-       now.actime = now.modtime = time (NULL);
-       return utime (file, &now);
-     }
-
-     #define utime(f, p) utime_now (f)
-
-     #endif /* HAVE_UTIME_NULL  */
-
-     int
-     main (argc, argv)
-          int argc;
-          char **argv;
-     {
-       if (argc != 2)
-         {
-           fprintf (stderr, "Usage: poke file\n");
-           exit (1);
-         }
-
-       if (utime (argv[1], NULL) < 0)
-         {
-           perror ("utime");
-           exit (1);
-         }
-
-       exit (0);
-     }
-
-   Here is the associated 'Makefile'.  We've added support for the
-preprocessor flags we use.  We've also added 'install' and 'clean'
-targets.
-
-     # Set this to your installation directory.
-     bindir = /usr/local/bin
-
-     # Uncomment this if you have the standard ANSI/ISO C header files.
-     # STDC_HDRS = -DSTDC_HEADERS
-
-     # Uncomment this if you have utime.h.
-     # UTIME_H = -DHAVE_UTIME_H
-
-     # Uncomment this if utime (FILE, NULL) works on your system.
-     # UTIME_NULL = -DHAVE_UTIME_NULL
-
-     # Uncomment this if struct utimbuf is defined in utime.h.
-     # UTIMBUF = -DHAVE_STRUCT_UTIMBUF
-
-     CC = gcc
-     CFLAGS = -g -O2
-
-     ALL_CFLAGS = $(STDC_HDRS) $(UTIME_H) $(UTIME_NULL) $(UTIMBUF) $(CFLAGS)
-
-     all: poke
-
-     poke: poke.o
-     	$(CC) -o poke $(ALL_CFLAGS) $(LDFLAGS) poke.o
-
-     .c.o:
-     	$(CC) -c $(ALL_CFLAGS) poke.c
-
-     install: poke
-     	cp poke $(bindir)/poke
-
-     clean:
-     	rm poke poke.o
-
-   Some problems with this approach should be clear.
-
-   Users who want to compile poke will have to know how 'utime' works on
-their systems, so that they can uncomment the 'Makefile' correctly.
-
-   The installation is done using 'cp', but many systems have an
-'install' program which may be used, and which supports optional
-features such as stripping debugging information out of the installed
-binary.
-
-   The use of 'Makefile' variables like 'CC', 'CFLAGS' and 'LDFLAGS'
-follows the requirements of the GNU standards.  This is convenient for
-all packages, since it reduces surprises for users.  However, it is easy
-to get the details wrong, and wind up with a slightly nonstandard
-distribution.
-
-
-File: configure.info,  Node: Getting Started Example 3,  Next: Generate Files in Example,  Prev: Getting Started Example 2,  Up: Getting Started Example
-
-2.5.3 Third Try
----------------
-
-For our third try at this program, we will write a 'configure.in' script
-to discover the configuration features on the host system, rather than
-requiring the user to edit the 'Makefile'.  We will also write a
-'Makefile.am' rather than a 'Makefile'.
-
-   The only change to 'poke.c' is to add a line at the start of the
-file:
-     #include "config.h"
-
-   The new 'configure.in' file is as follows.
-
-     AC_INIT(poke.c)
-     AM_INIT_AUTOMAKE(poke, 1.0)
-     AM_CONFIG_HEADER(config.h:config.in)
-     AC_PROG_CC
-     AC_HEADER_STDC
-     AC_CHECK_HEADERS(utime.h)
-     AC_EGREP_HEADER(utimbuf, utime.h, AC_DEFINE(HAVE_STRUCT_UTIMBUF))
-     AC_FUNC_UTIME_NULL
-     AC_OUTPUT(Makefile)
-
-   The first four macros in this file, and the last one, were described
-above; see *note Write configure.in::.  If we omit these macros, then
-when we run 'automake' we will get a reminder that we need them.
-
-   The other macros are standard autoconf macros.
-
-'AC_HEADER_STDC'
-     Check for standard C headers.
-'AC_CHECK_HEADERS'
-     Check whether a particular header file exists.
-'AC_EGREP_HEADER'
-     Check for a particular string in a particular header file, in this
-     case checking for 'utimbuf' in 'utime.h'.
-'AC_FUNC_UTIME_NULL'
-     Check whether 'utime' accepts a NULL second argument to set the
-     file change time to the current time.
-
-   See the autoconf manual for a more complete description.
-
-   The new 'Makefile.am' file is as follows.  Note how simple this is
-compared to our earlier 'Makefile'.
-
-     bin_PROGRAMS = poke
-
-     poke_SOURCES = poke.c
-
-   This means that we should build a single program name 'poke'.  It
-should be installed in the binary directory, which we called 'bindir'
-earlier.  The program 'poke' is built from the source file 'poke.c'.
-
-   We must also write a 'acconfig.h' file.  Besides 'PACKAGE' and
-'VERSION', which must be mentioned for all packages which use automake,
-we must include 'HAVE_STRUCT_UTIMBUF', since we mentioned it in an
-'AC_DEFINE'.
-
-     /* Name of package.  */
-     #undef PACKAGE
-
-     /* Version of package.  */
-     #undef VERSION
-
-     /* Whether utime.h defines struct utimbuf.  */
-     #undef HAVE_STRUCT_UTIMBUF
-
-
-File: configure.info,  Node: Generate Files in Example,  Prev: Getting Started Example 3,  Up: Getting Started Example
-
-2.5.4 Generate Files
---------------------
-
-We must now generate the other files, using the following commands.
-
-     aclocal
-     autoconf
-     autoheader
-     automake
-
-   When we run 'autoheader', it will remind us of any macros we forgot
-to add to 'acconfig.h'.
-
-   When we run 'automake', it will want to add some files to our
-distribution.  It will add them automatically if we use the
-'--add-missing' option.
-
-   By default, 'automake' will run in GNU mode, which means that it will
-want us to create certain additional files; as of this writing, it will
-want 'NEWS', 'README', 'AUTHORS', and 'ChangeLog', all of which are
-files which should appear in a standard GNU distribution.  We can either
-add those files, or run 'automake' with the '--foreign' option.
-
-   Running these tools will generate the following files, all of which
-are described in the next chapter.
-
-   * 'aclocal.m4'
-   * 'configure'
-   * 'config.in'
-   * 'Makefile.in'
-   * 'stamp-h.in'
-
-
-File: configure.info,  Node: Files,  Next: Configuration Names,  Prev: Getting Started,  Up: Top
-
-3 Files
-*******
-
-As was seen in the previous chapter, the GNU configure and build system
-uses a number of different files.  The developer must write a few files.
-The others are generated by various tools.
-
-   The system is rather flexible, and can be used in many different
-ways.  In describing the files that it uses, I will describe the common
-case, and mention some other cases that may arise.
-
-* Menu:
-
-* Developer Files::		Developer Files.
-* Build Files::			Build Files.
-* Support Files::		Support Files.
-
-
-File: configure.info,  Node: Developer Files,  Next: Build Files,  Up: Files
-
-3.1 Developer Files
-===================
-
-This section describes the files written or generated by the developer
-of a package.
-
-* Menu:
-
-* Developer Files Picture::	Developer Files Picture.
-* Written Developer Files::	Written Developer Files.
-* Generated Developer Files::	Generated Developer Files.
-
-
-File: configure.info,  Node: Developer Files Picture,  Next: Written Developer Files,  Up: Developer Files
-
-3.1.1 Developer Files Picture
------------------------------
-
-Here is a picture of the files which are written by the developer, the
-generated files which would be included with a complete source
-distribution, and the tools which create those files.  The file names
-are plain text and the tool names are enclosed by '*' characters (e.g.,
-'autoheader' is the name of a tool, not the name of a file).
-
-   acconfig.h       configure.in                 Makefile.am
-       |                |                           |
-       |  --------------+----------------------     |
-       |  |             |                     |     |
-       v  v             |    acinclude.m4     |     |
-   *autoheader*         |         |           v     v
-       |                |         v      --->*automake* 
-       v                |--->*aclocal*   |       |      
-   config.in            |         |      |       v      
-                        |         v      |   Makefile.in
-                        |    aclocal.m4---
-                        |     |
-                        v     v
-                       *autoconf*
-                           |
-                           v
-                       configure
-
-File: configure.info,  Node: Written Developer Files,  Next: Generated Developer Files,  Prev: Developer Files Picture,  Up: Developer Files
-
-3.1.2 Written Developer Files
------------------------------
-
-The following files would be written by the developer.
-
-'configure.in'
-     This is the configuration script.  This script contains invocations
-     of autoconf macros.  It may also contain ordinary shell script
-     code.  This file will contain feature tests for portability issues.
-     The last thing in the file will normally be an 'AC_OUTPUT' macro
-     listing which files to create when the builder runs the configure
-     script.  This file is always required when using the GNU configure
-     system.  *Note Write configure.in::.
-
-'Makefile.am'
-     This is the automake input file.  It describes how the code should
-     be built.  It consists of definitions of automake variables.  It
-     may also contain ordinary Makefile targets.  This file is only
-     needed when using automake (newer tools normally use automake, but
-     there are still older tools which have not been converted, in which
-     the developer writes 'Makefile.in' directly).  *Note Write
-     Makefile.am::.
-
-'acconfig.h'
-     When the configure script creates a portability header file, by
-     using 'AM_CONFIG_HEADER' (or, if not using automake,
-     'AC_CONFIG_HEADER'), this file is used to describe macros which are
-     not recognized by the 'autoheader' command.  This is normally a
-     fairly uninteresting file, consisting of a collection of '#undef'
-     lines with comments.  Normally any call to 'AC_DEFINE' in
-     'configure.in' will require a line in this file.  *Note Write
-     acconfig.h::.
-
-'acinclude.m4'
-     This file is not always required.  It defines local autoconf
-     macros.  These macros may then be used in 'configure.in'.  If you
-     don't need any local autoconf macros, then you don't need this file
-     at all.  In fact, in general, you never need local autoconf macros,
-     since you can put everything in 'configure.in', but sometimes a
-     local macro is convenient.
-
-     Newer tools may omit 'acinclude.m4', and instead use a
-     subdirectory, typically named 'm4', and define 'ACLOCAL_AMFLAGS =
-     -I m4' in 'Makefile.am' to force 'aclocal' to look there for macro
-     definitions.  The macro definitions are then placed in separate
-     files in that directory.
-
-     The 'acinclude.m4' file is only used when using automake; in older
-     tools, the developer writes 'aclocal.m4' directly, if it is needed.
-
-
-File: configure.info,  Node: Generated Developer Files,  Prev: Written Developer Files,  Up: Developer Files
-
-3.1.3 Generated Developer Files
--------------------------------
-
-The following files would be generated by the developer.
-
-   When using automake, these files are normally not generated manually
-after the first time.  Instead, the generated 'Makefile' contains rules
-to automatically rebuild the files as required.  When
-'AM_MAINTAINER_MODE' is used in 'configure.in' (the normal case in
-Cygnus code), the automatic rebuilding rules will only be defined if you
-configure using the '--enable-maintainer-mode' option.
-
-   When using automatic rebuilding, it is important to ensure that all
-the various tools have been built and installed on your 'PATH'.  Using
-automatic rebuilding is highly recommended, so much so that I'm not
-going to explain what you have to do if you don't use it.
-
-'configure'
-     This is the configure script which will be run when building the
-     package.  This is generated by 'autoconf' from 'configure.in' and
-     'aclocal.m4'.  This is a shell script.
-
-'Makefile.in'
-     This is the file which the configure script will turn into the
-     'Makefile' at build time.  This file is generated by 'automake'
-     from 'Makefile.am'.  If you aren't using automake, you must write
-     this file yourself.  This file is pretty much a normal 'Makefile',
-     with some configure substitutions for certain variables.
-
-'aclocal.m4'
-     This file is created by the 'aclocal' program, based on the
-     contents of 'configure.in' and 'acinclude.m4' (or, as noted in the
-     description of 'acinclude.m4' above, on the contents of an 'm4'
-     subdirectory).  This file contains definitions of autoconf macros
-     which 'autoconf' will use when generating the file 'configure'.
-     These autoconf macros may be defined by you in 'acinclude.m4' or
-     they may be defined by other packages such as automake, libtool or
-     gettext.  If you aren't using automake, you will normally write
-     this file yourself; in that case, if 'configure.in' uses only
-     standard autoconf macros, this file will not be needed at all.
-
-'config.in'
-     This file is created by 'autoheader' based on 'acconfig.h' and
-     'configure.in'.  At build time, the configure script will define
-     some of the macros in it to create 'config.h', which may then be
-     included by your program.  This permits your C code to use
-     preprocessor conditionals to change its behaviour based on the
-     characteristics of the host system.  This file may also be called
-     'config.h.in'.
-
-'stamp.h-in'
-     This rather uninteresting file, which I omitted from the picture,
-     is generated by 'automake'.  It always contains the string
-     'timestamp'.  It is used as a timestamp file indicating whether
-     'config.in' is up to date.  Using a timestamp file means that
-     'config.in' can be marked as up to date without actually changing
-     its modification time.  This is useful since 'config.in' depends
-     upon 'configure.in', but it is easy to change 'configure.in' in a
-     way which does not affect 'config.in'.
-
-
-File: configure.info,  Node: Build Files,  Next: Support Files,  Prev: Developer Files,  Up: Files
-
-3.2 Build Files
-===============
-
-This section describes the files which are created at configure and
-build time.  These are the files which somebody who builds the package
-will see.
-
-   Of course, the developer will also build the package.  The
-distinction between developer files and build files is not that the
-developer does not see the build files, but that somebody who only
-builds the package does not have to worry about the developer files.
-
-* Menu:
-
-* Build Files Picture::		Build Files Picture.
-* Build Files Description::	Build Files Description.
-
-
-File: configure.info,  Node: Build Files Picture,  Next: Build Files Description,  Up: Build Files
-
-3.2.1 Build Files Picture
--------------------------
-
-Here is a picture of the files which will be created at build time.
-'config.status' is both a created file and a shell script which is run
-to create other files, and the picture attempts to show that.
-
-   config.in        *configure*      Makefile.in
-      |                  |               |
-      |                  v               |
-      |             config.status        |
-      |                  |               |
-   *config.status*<======+==========>*config.status*
-      |                                  |
-      v                                  v
-   config.h                          Makefile
-
-File: configure.info,  Node: Build Files Description,  Prev: Build Files Picture,  Up: Build Files
-
-3.2.2 Build Files Description
------------------------------
-
-This is a description of the files which are created at build time.
-
-'config.status'
-     The first step in building a package is to run the 'configure'
-     script.  The 'configure' script will create the file
-     'config.status', which is itself a shell script.  When you first
-     run 'configure', it will automatically run 'config.status'.  An
-     'Makefile' derived from an automake generated 'Makefile.in' will
-     contain rules to automatically run 'config.status' again when
-     necessary to recreate certain files if their inputs change.
-
-'Makefile'
-     This is the file which make will read to build the program.  The
-     'config.status' script will transform 'Makefile.in' into
-     'Makefile'.
-
-'config.h'
-     This file defines C preprocessor macros which C code can use to
-     adjust its behaviour on different systems.  The 'config.status'
-     script will transform 'config.in' into 'config.h'.
-
-'config.cache'
-     This file did not fit neatly into the picture, and I omitted it.
-     It is used by the 'configure' script to cache results between runs.
-     This can be an important speedup.  If you modify 'configure.in' in
-     such a way that the results of old tests should change (perhaps you
-     have added a new library to 'LDFLAGS'), then you will have to
-     remove 'config.cache' to force the tests to be rerun.
-
-     The autoconf manual explains how to set up a site specific cache
-     file.  This can speed up running 'configure' scripts on your
-     system.
-
-'stamp.h'
-     This file, which I omitted from the picture, is similar to
-     'stamp-h.in'.  It is used as a timestamp file indicating whether
-     'config.h' is up to date.  This is useful since 'config.h' depends
-     upon 'config.status', but it is easy for 'config.status' to change
-     in a way which does not affect 'config.h'.
-
-
-File: configure.info,  Node: Support Files,  Prev: Build Files,  Up: Files
-
-3.3 Support Files
-=================
-
-The GNU configure and build system requires several support files to be
-included with your distribution.  You do not normally need to concern
-yourself with these.  If you are using the Cygnus tree, most are already
-present.  Otherwise, they will be installed with your source by
-'automake' (with the '--add-missing' option) and 'libtoolize'.
-
-   You don't have to put the support files in the top level directory.
-You can put them in a subdirectory, and use the 'AC_CONFIG_AUX_DIR'
-macro in 'configure.in' to tell 'automake' and the 'configure' script
-where they are.
-
-   In this section, I describe the support files, so that you can know
-what they are and why they are there.
-
-'ABOUT-NLS'
-     Added by automake if you are using gettext.  This is a
-     documentation file about the gettext project.
-'ansi2knr.c'
-     Used by an automake generated 'Makefile' if you put 'ansi2knr' in
-     'AUTOMAKE_OPTIONS' in 'Makefile.am'.  This permits compiling ANSI C
-     code with a K&R C compiler.
-'ansi2knr.1'
-     The man page which goes with 'ansi2knr.c'.
-'config.guess'
-     A shell script which determines the configuration name for the
-     system on which it is run.
-'config.sub'
-     A shell script which canonicalizes a configuration name entered by
-     a user.
-'elisp-comp'
-     Used to compile Emacs LISP files.
-'install-sh'
-     A shell script which installs a program.  This is used if the
-     configure script can not find an install binary.
-'ltconfig'
-     Used by libtool.  This is a shell script which configures libtool
-     for the particular system on which it is used.
-'ltmain.sh'
-     Used by libtool.  This is the actual libtool script which is used,
-     after it is configured by 'ltconfig' to build a library.
-'mdate-sh'
-     A shell script used by an automake generated 'Makefile' to pretty
-     print the modification time of a file.  This is used to maintain
-     version numbers for texinfo files.
-'missing'
-     A shell script used if some tool is missing entirely.  This is used
-     by an automake generated 'Makefile' to avoid certain sorts of
-     timestamp problems.
-'mkinstalldirs'
-     A shell script which creates a directory, including all parent
-     directories.  This is used by an automake generated 'Makefile'
-     during installation.
-'texinfo.tex'
-     Required if you have any texinfo files.  This is used when
-     converting Texinfo files into DVI using 'texi2dvi' and TeX.
-'ylwrap'
-     A shell script used by an automake generated 'Makefile' to run
-     programs like 'bison', 'yacc', 'flex', and 'lex'.  These programs
-     default to producing output files with a fixed name, and the
-     'ylwrap' script runs them in a subdirectory to avoid file name
-     conflicts when using a parallel make program.
-
-
-File: configure.info,  Node: Configuration Names,  Next: Cross Compilation Tools,  Prev: Files,  Up: Top
-
-4 Configuration Names
-*********************
-
-The GNU configure system names all systems using a "configuration name".
-All such names used to be triplets (they may now contain four parts in
-certain cases), and the term "configuration triplet" is still seen.
-
-* Menu:
-
-* Configuration Name Definition::	Configuration Name Definition.
-* Using Configuration Names::		Using Configuration Names.
-
-
-File: configure.info,  Node: Configuration Name Definition,  Next: Using Configuration Names,  Up: Configuration Names
-
-4.1 Configuration Name Definition
-=================================
-
-This is a string of the form CPU-MANUFACTURER-OPERATING_SYSTEM.  In some
-cases, this is extended to a four part form:
-CPU-MANUFACTURER-KERNEL-OPERATING_SYSTEM.
-
-   When using a configuration name in a configure option, it is normally
-not necessary to specify an entire name.  In particular, the
-MANUFACTURER field is often omitted, leading to strings such as
-'i386-linux' or 'sparc-sunos'.  The shell script 'config.sub' will
-translate these shortened strings into the canonical form.  autoconf
-will arrange for 'config.sub' to be run automatically when it is needed.
-
-   The fields of a configuration name are as follows:
-
-CPU
-     The type of processor.  This is typically something like 'i386' or
-     'sparc'.  More specific variants are used as well, such as 'mipsel'
-     to indicate a little endian MIPS processor.
-MANUFACTURER
-     A somewhat freeform field which indicates the manufacturer of the
-     system.  This is often simply 'unknown'.  Other common strings are
-     'pc' for an IBM PC compatible system, or the name of a workstation
-     vendor, such as 'sun'.
-OPERATING_SYSTEM
-     The name of the operating system which is run on the system.  This
-     will be something like 'solaris2.5' or 'irix6.3'.  There is no
-     particular restriction on the version number, and strings like
-     'aix4.1.4.0' are seen.  For an embedded system, which has no
-     operating system, this field normally indicates the type of object
-     file format, such as 'elf' or 'coff'.
-KERNEL
-     This is used mainly for GNU/Linux.  A typical GNU/Linux
-     configuration name is 'i586-pc-linux-gnulibc1'.  In this case the
-     kernel, 'linux', is separated from the operating system,
-     'gnulibc1'.
-
-   The shell script 'config.guess' will normally print the correct
-configuration name for the system on which it is run.  It does by
-running 'uname' and by examining other characteristics of the system.
-
-   Because 'config.guess' can normally determine the configuration name
-for a machine, it is normally only necessary to specify a configuration
-name when building a cross-compiler or when building using a
-cross-compiler.
-
-
-File: configure.info,  Node: Using Configuration Names,  Prev: Configuration Name Definition,  Up: Configuration Names
-
-4.2 Using Configuration Names
-=============================
-
-A configure script will sometimes have to make a decision based on a
-configuration name.  You will need to do this if you have to compile
-code differently based on something which can not be tested using a
-standard autoconf feature test.
-
-   It is normally better to test for particular features, rather than to
-test for a particular system.  This is because as Unix evolves,
-different systems copy features from one another.  Even if you need to
-determine whether the feature is supported based on a configuration
-name, you should define a macro which describes the feature, rather than
-defining a macro which describes the particular system you are on.
-
-   Testing for a particular system is normally done using a case
-statement in 'configure.in'.  The case statement might look something
-like the following, assuming that 'host' is a shell variable holding a
-canonical configuration name (which will be the case if 'configure.in'
-uses the 'AC_CANONICAL_HOST' or 'AC_CANONICAL_SYSTEM' macro).
-
-     case "${host}" in
-     i[3-7]86-*-linux-gnu*) do something ;;
-     sparc*-sun-solaris2.[56789]*) do something ;;
-     sparc*-sun-solaris*) do something ;;
-     mips*-*-elf*) do something ;;
-     esac
-
-   It is particularly important to use '*' after the operating system
-field, in order to match the version number which will be generated by
-'config.guess'.
-
-   In most cases you must be careful to match a range of processor
-types.  For most processor families, a trailing '*' suffices, as in
-'mips*' above.  For the i386 family, something along the lines of
-'i[3-7]86' suffices at present.  For the m68k family, you will need
-something like 'm68*'.  Of course, if you do not need to match on the
-processor, it is simpler to just replace the entire field by a '*', as
-in '*-*-irix*'.
-
-
-File: configure.info,  Node: Cross Compilation Tools,  Next: Canadian Cross,  Prev: Configuration Names,  Up: Top
-
-5 Cross Compilation Tools
-*************************
-
-The GNU configure and build system can be used to build "cross
-compilation" tools.  A cross compilation tool is a tool which runs on
-one system and produces code which runs on another system.
-
-* Menu:
-
-* Cross Compilation Concepts::		Cross Compilation Concepts.
-* Host and Target::			Host and Target.
-* Using the Host Type::			Using the Host Type.
-* Specifying the Target::       	Specifying the Target.
-* Using the Target Type::		Using the Target Type.
-* Cross Tools in the Cygnus Tree::	Cross Tools in the Cygnus Tree
-
-
-File: configure.info,  Node: Cross Compilation Concepts,  Next: Host and Target,  Up: Cross Compilation Tools
-
-5.1 Cross Compilation Concepts
-==============================
-
-A compiler which produces programs which run on a different system is a
-cross compilation compiler, or simply a "cross compiler".  Similarly, we
-speak of cross assemblers, cross linkers, etc.
-
-   In the normal case, a compiler produces code which runs on the same
-system as the one on which the compiler runs.  When it is necessary to
-distinguish this case from the cross compilation case, such a compiler
-is called a "native compiler".  Similarly, we speak of native
-assemblers, etc.
-
-   Although the debugger is not strictly speaking a compilation tool, it
-is nevertheless meaningful to speak of a cross debugger: a debugger
-which is used to debug code which runs on another system.  Everything
-that is said below about configuring cross compilation tools applies to
-the debugger as well.
-
-
-File: configure.info,  Node: Host and Target,  Next: Using the Host Type,  Prev: Cross Compilation Concepts,  Up: Cross Compilation Tools
-
-5.2 Host and Target
-===================
-
-When building cross compilation tools, there are two different systems
-involved: the system on which the tools will run, and the system for
-which the tools generate code.
-
-   The system on which the tools will run is called the "host" system.
-
-   The system for which the tools generate code is called the "target"
-system.
-
-   For example, suppose you have a compiler which runs on a GNU/Linux
-system and generates ELF programs for a MIPS embedded system.  In this
-case the GNU/Linux system is the host, and the MIPS ELF system is the
-target.  Such a compiler could be called a GNU/Linux cross MIPS ELF
-compiler, or, equivalently, a 'i386-linux-gnu' cross 'mips-elf'
-compiler.
-
-   Naturally, most programs are not cross compilation tools.  For those
-programs, it does not make sense to speak of a target.  It only makes
-sense to speak of a target for tools like 'gcc' or the 'binutils' which
-actually produce running code.  For example, it does not make sense to
-speak of the target of a tool like 'bison' or 'make'.
-
-   Most cross compilation tools can also serve as native tools.  For a
-native compilation tool, it is still meaningful to speak of a target.
-For a native tool, the target is the same as the host.  For example, for
-a GNU/Linux native compiler, the host is GNU/Linux, and the target is
-also GNU/Linux.
-
-
-File: configure.info,  Node: Using the Host Type,  Next: Specifying the Target,  Prev: Host and Target,  Up: Cross Compilation Tools
-
-5.3 Using the Host Type
-=======================
-
-In almost all cases the host system is the system on which you run the
-'configure' script, and on which you build the tools (for the case when
-they differ, *note Canadian Cross::).
-
-   If your configure script needs to know the configuration name of the
-host system, and the package is not a cross compilation tool and
-therefore does not have a target, put 'AC_CANONICAL_HOST' in
-'configure.in'.  This macro will arrange to define a few shell variables
-when the 'configure' script is run.
-
-'host'
-     The canonical configuration name of the host.  This will normally
-     be determined by running the 'config.guess' shell script, although
-     the user is permitted to override this by using an explicit
-     '--host' option.
-'host_alias'
-     In the unusual case that the user used an explicit '--host' option,
-     this will be the argument to '--host'.  In the normal case, this
-     will be the same as the 'host' variable.
-'host_cpu'
-'host_vendor'
-'host_os'
-     The first three parts of the canonical configuration name.
-
-   The shell variables may be used by putting shell code in
-'configure.in'.  For an example, see *note Using Configuration Names::.
-
-
-File: configure.info,  Node: Specifying the Target,  Next: Using the Target Type,  Prev: Using the Host Type,  Up: Cross Compilation Tools
-
-5.4 Specifying the Target
-=========================
-
-By default, the 'configure' script will assume that the target is the
-same as the host.  This is the more common case; for example, it leads
-to a native compiler rather than a cross compiler.
-
-   If you want to build a cross compilation tool, you must specify the
-target explicitly by using the '--target' option when you run
-'configure'.  The argument to '--target' is the configuration name of
-the system for which you wish to generate code.  *Note Configuration
-Names::.
-
-   For example, to build tools which generate code for a MIPS ELF
-embedded system, you would use '--target mips-elf'.
-
-
-File: configure.info,  Node: Using the Target Type,  Next: Cross Tools in the Cygnus Tree,  Prev: Specifying the Target,  Up: Cross Compilation Tools
-
-5.5 Using the Target Type
-=========================
-
-When writing 'configure.in' for a cross compilation tool, you will need
-to use information about the target.  To do this, put
-'AC_CANONICAL_SYSTEM' in 'configure.in'.
-
-   'AC_CANONICAL_SYSTEM' will look for a '--target' option and
-canonicalize it using the 'config.sub' shell script.  It will also run
-'AC_CANONICAL_HOST' (*note Using the Host Type::).
-
-   The target type will be recorded in the following shell variables.
-Note that the host versions of these variables will also be defined by
-'AC_CANONICAL_HOST'.
-
-'target'
-     The canonical configuration name of the target.
-'target_alias'
-     The argument to the '--target' option.  If the user did not specify
-     a '--target' option, this will be the same as 'host_alias'.
-'target_cpu'
-'target_vendor'
-'target_os'
-     The first three parts of the canonical target configuration name.
-
-   Note that if 'host' and 'target' are the same string, you can assume
-a native configuration.  If they are different, you can assume a cross
-configuration.
-
-   It is arguably possible for 'host' and 'target' to represent the same
-system, but for the strings to not be identical.  For example, if
-'config.guess' returns 'sparc-sun-sunos4.1.4', and somebody configures
-with '--target sparc-sun-sunos4.1', then the slight differences between
-the two versions of SunOS may be unimportant for your tool.  However, in
-the general case it can be quite difficult to determine whether the
-differences between two configuration names are significant or not.
-Therefore, by convention, if the user specifies a '--target' option
-without specifying a '--host' option, it is assumed that the user wants
-to configure a cross compilation tool.
-
-   The variables 'target' and 'target_alias' should be handled
-differently.
-
-   In general, whenever the user may actually see a string,
-'target_alias' should be used.  This includes anything which may appear
-in the file system, such as a directory name or part of a tool name.  It
-also includes any tool output, unless it is clearly labelled as the
-canonical target configuration name.  This permits the user to use the
-'--target' option to specify how the tool will appear to the outside
-world.
-
-   On the other hand, when checking for characteristics of the target
-system, 'target' should be used.  This is because a wide variety of
-'--target' options may map into the same canonical configuration name.
-You should not attempt to duplicate the canonicalization done by
-'config.sub' in your own code.
-
-   By convention, cross tools are installed with a prefix of the
-argument used with the '--target' option, also known as 'target_alias'
-(*note Using the Target Type::).  If the user does not use the
-'--target' option, and thus is building a native tool, no prefix is
-used.
-
-   For example, if gcc is configured with '--target mips-elf', then the
-installed binary will be named 'mips-elf-gcc'.  If gcc is configured
-without a '--target' option, then the installed binary will be named
-'gcc'.
-
-   The autoconf macro 'AC_ARG_PROGRAM' will handle this for you.  If you
-are using automake, no more need be done; the programs will
-automatically be installed with the correct prefixes.  Otherwise, see
-the autoconf documentation for 'AC_ARG_PROGRAM'.
-
-
-File: configure.info,  Node: Cross Tools in the Cygnus Tree,  Prev: Using the Target Type,  Up: Cross Compilation Tools
-
-5.6 Cross Tools in the Cygnus Tree
-==================================
-
-The Cygnus tree is used for various packages including gdb, the GNU
-binutils, and egcs.  It is also, of course, used for Cygnus releases.
-
-   In the Cygnus tree, the top level 'configure' script uses the old
-Cygnus configure system, not autoconf.  The top level 'Makefile.in' is
-written to build packages based on what is in the source tree, and
-supports building a large number of tools in a single 'configure'/'make'
-step.
-
-   The Cygnus tree may be configured with a '--target' option.  The
-'--target' option applies recursively to every subdirectory, and permits
-building an entire set of cross tools at once.
-
-* Menu:
-
-* Host and Target Libraries::		Host and Target Libraries.
-* Target Library Configure Scripts::	Target Library Configure Scripts.
-* Make Targets in Cygnus Tree::         Make Targets in Cygnus Tree.
-* Target libiberty::			Target libiberty
-
-
-File: configure.info,  Node: Host and Target Libraries,  Next: Target Library Configure Scripts,  Up: Cross Tools in the Cygnus Tree
-
-5.6.1 Host and Target Libraries
--------------------------------
-
-The Cygnus tree distinguishes host libraries from target libraries.
-
-   Host libraries are built with the compiler used to build the programs
-which run on the host, which is called the host compiler.  This includes
-libraries such as 'bfd' and 'tcl'.  These libraries are built with the
-host compiler, and are linked into programs like the binutils or gcc
-which run on the host.
-
-   Target libraries are built with the target compiler.  If gcc is
-present in the source tree, then the target compiler is the gcc that is
-built using the host compiler.  Target libraries are libraries such as
-'newlib' and 'libstdc++'.  These libraries are not linked into the host
-programs, but are instead made available for use with programs built
-with the target compiler.
-
-   For the rest of this section, assume that gcc is present in the
-source tree, so that it will be used to build the target libraries.
-
-   There is a complication here.  The configure process needs to know
-which compiler you are going to use to build a tool; otherwise, the
-feature tests will not work correctly.  The Cygnus tree handles this by
-not configuring the target libraries until the target compiler is built.
-In order to permit everything to build using a single
-'configure'/'make', the configuration of the target libraries is
-actually triggered during the make step.
-
-   When the target libraries are configured, the '--target' option is
-not used.  Instead, the '--host' option is used with the argument of the
-'--target' option for the overall configuration.  If no '--target'
-option was used for the overall configuration, the '--host' option will
-be passed with the output of the 'config.guess' shell script.  Any
-'--build' option is passed down unchanged.
-
-   This translation of configuration options is done because since the
-target libraries are compiled with the target compiler, they are being
-built in order to run on the target of the overall configuration.  By
-the definition of host, this means that their host system is the same as
-the target system of the overall configuration.
-
-   The same process is used for both a native configuration and a cross
-configuration.  Even when using a native configuration, the target
-libraries will be configured and built using the newly built compiler.
-This is particularly important for the C++ libraries, since there is no
-reason to assume that the C++ compiler used to build the host tools (if
-there even is one) uses the same ABI as the g++ compiler which will be
-used to build the target libraries.
-
-   There is one difference between a native configuration and a cross
-configuration.  In a native configuration, the target libraries are
-normally configured and built as siblings of the host tools.  In a cross
-configuration, the target libraries are normally built in a subdirectory
-whose name is the argument to '--target'.  This is mainly for historical
-reasons.
-
-   To summarize, running 'configure' in the Cygnus tree configures all
-the host libraries and tools, but does not configure any of the target
-libraries.  Running 'make' then does the following steps:
-
-   * Build the host libraries.
-   * Build the host programs, including gcc.  Note that we call gcc both
-     a host program (since it runs on the host) and a target compiler
-     (since it generates code for the target).
-   * Using the newly built target compiler, configure the target
-     libraries.
-   * Build the target libraries.
-
-   The steps need not be done in precisely this order, since they are
-actually controlled by 'Makefile' targets.
-
-
-File: configure.info,  Node: Target Library Configure Scripts,  Next: Make Targets in Cygnus Tree,  Prev: Host and Target Libraries,  Up: Cross Tools in the Cygnus Tree
-
-5.6.2 Target Library Configure Scripts
---------------------------------------
-
-There are a few things you must know in order to write a configure
-script for a target library.  This is just a quick sketch, and beginners
-shouldn't worry if they don't follow everything here.
-
-   The target libraries are configured and built using a newly built
-target compiler.  There may not be any startup files or libraries for
-this target compiler.  In fact, those files will probably be built as
-part of some target library, which naturally means that they will not
-exist when your target library is configured.
-
-   This means that the configure script for a target library may not use
-any test which requires doing a link.  This unfortunately includes many
-useful autoconf macros, such as 'AC_CHECK_FUNCS'.  autoconf macros which
-do a compile but not a link, such as 'AC_CHECK_HEADERS', may be used.
-
-   This is a severe restriction, but normally not a fatal one, as target
-libraries can often assume the presence of other target libraries, and
-thus know which functions will be available.
-
-   As of this writing, the autoconf macro 'AC_PROG_CC' does a link to
-make sure that the compiler works.  This may fail in a target library,
-so target libraries must use a different set of macros to locate the
-compiler.  See the 'configure.in' file in a directory like 'libiberty'
-or 'libgloss' for an example.
-
-   As noted in the previous section, target libraries are sometimes
-built in directories which are siblings to the host tools, and are
-sometimes built in a subdirectory.  The '--with-target-subdir' configure
-option will be passed when the library is configured.  Its value will be
-an empty string if the target library is a sibling.  Its value will be
-the name of the subdirectory if the target library is in a subdirectory.
-
-   If the overall build is not a native build (i.e., the overall
-configure used the '--target' option), then the library will be
-configured with the '--with-cross-host' option.  The value of this
-option will be the host system of the overall build.  Recall that the
-host system of the library will be the target of the overall build.  If
-the overall build is a native build, the '--with-cross-host' option will
-not be used.
-
-   A library which can be built both standalone and as a target library
-may want to install itself into different directories depending upon the
-case.  When built standalone, or when built native, the library should
-be installed in '$(libdir)'.  When built as a target library which is
-not native, the library should be installed in '$(tooldir)/lib'.  The
-'--with-cross-host' option may be used to distinguish these cases.
-
-   This same test of '--with-cross-host' may be used to see whether it
-is OK to use link tests in the configure script.  If the
-'--with-cross-host' option is not used, then the library is being built
-either standalone or native, and a link should work.
-
-
-File: configure.info,  Node: Make Targets in Cygnus Tree,  Next: Target libiberty,  Prev: Target Library Configure Scripts,  Up: Cross Tools in the Cygnus Tree
-
-5.6.3 Make Targets in Cygnus Tree
----------------------------------
-
-The top level 'Makefile' in the Cygnus tree defines targets for every
-known subdirectory.
-
-   For every subdirectory DIR which holds a host library or program, the
-'Makefile' target 'all-DIR' will build that library or program.
-
-   There are dependencies among host tools.  For example, building gcc
-requires first building gas, because the gcc build process invokes the
-target assembler.  These dependencies are reflected in the top level
-'Makefile'.
-
-   For every subdirectory DIR which holds a target library, the
-'Makefile' target 'configure-target-DIR' will configure that library.
-The 'Makefile' target 'all-target-DIR' will build that library.
-
-   Every 'configure-target-DIR' target depends upon 'all-gcc', since
-gcc, the target compiler, is required to configure the tool.  Every
-'all-target-DIR' target depends upon the corresponding
-'configure-target-DIR' target.
-
-   There are several other targets which may be of interest for each
-directory: 'install-DIR', 'clean-DIR', and 'check-DIR'.  There are also
-corresponding 'target' versions of these for the target libraries , such
-as 'install-target-DIR'.
-
-
-File: configure.info,  Node: Target libiberty,  Prev: Make Targets in Cygnus Tree,  Up: Cross Tools in the Cygnus Tree
-
-5.6.4 Target libiberty
-----------------------
-
-The 'libiberty' subdirectory is currently a special case, in that it is
-the only directory which is built both using the host compiler and using
-the target compiler.
-
-   This is because the files in 'libiberty' are used when building the
-host tools, and they are also incorporated into the 'libstdc++' target
-library as support code.
-
-   This duality does not pose any particular difficulties.  It means
-that there are targets for both 'all-libiberty' and
-'all-target-libiberty'.
-
-   In a native configuration, when target libraries are not built in a
-subdirectory, the same objects are normally used as both the host build
-and the target build.  This is normally OK, since libiberty contains
-only C code, and in a native configuration the results of the host
-compiler and the target compiler are normally interoperable.
-
-   Irix 6 is again an exception here, since the SGI native compiler
-defaults to using the 'O32' ABI, and gcc defaults to using the 'N32'
-ABI. On Irix 6, the target libraries are built in a subdirectory even
-for a native configuration, avoiding this problem.
-
-   There are currently no other libraries built for both the host and
-the target, but there is no conceptual problem with adding more.
-
-
-File: configure.info,  Node: Canadian Cross,  Next: Cygnus Configure,  Prev: Cross Compilation Tools,  Up: Top
-
-6 Canadian Cross
-****************
-
-It is possible to use the GNU configure and build system to build a
-program which will run on a system which is different from the system on
-which the tools are built.  In other words, it is possible to build
-programs using a cross compiler.
-
-   This is referred to as a "Canadian Cross".
-
-* Menu:
-
-* Canadian Cross Example::		Canadian Cross Example.
-* Canadian Cross Concepts::		Canadian Cross Concepts.
-* Build Cross Host Tools::		Build Cross Host Tools.
-* Build and Host Options::		Build and Host Options.
-* CCross not in Cygnus Tree::		Canadian Cross not in Cygnus Tree.
-* CCross in Cygnus Tree::		Canadian Cross in Cygnus Tree.
-* Supporting Canadian Cross::		Supporting Canadian Cross.
-
-
-File: configure.info,  Node: Canadian Cross Example,  Next: Canadian Cross Concepts,  Up: Canadian Cross
-
-6.1 Canadian Cross Example
-==========================
-
-Here is an example of a Canadian Cross.
-
-   While running on a GNU/Linux, you can build a program which will run
-on a Solaris system.  You would use a GNU/Linux cross Solaris compiler
-to build the program.
-
-   Of course, you could not run the resulting program on your GNU/Linux
-system.  You would have to copy it over to a Solaris system before you
-would run it.
-
-   Of course, you could also simply build the programs on the Solaris
-system in the first place.  However, perhaps the Solaris system is not
-available for some reason; perhaps you actually don't have one, but you
-want to build the tools for somebody else to use.  Or perhaps your
-GNU/Linux system is much faster than your Solaris system.
-
-   A Canadian Cross build is most frequently used when building programs
-to run on a non-Unix system, such as DOS or Windows.  It may be simpler
-to configure and build on a Unix system than to support the
-configuration machinery on a non-Unix system.
-
-
-File: configure.info,  Node: Canadian Cross Concepts,  Next: Build Cross Host Tools,  Prev: Canadian Cross Example,  Up: Canadian Cross
-
-6.2 Canadian Cross Concepts
-===========================
-
-When building a Canadian Cross, there are at least two different systems
-involved: the system on which the tools are being built, and the system
-on which the tools will run.
-
-   The system on which the tools are being built is called the "build"
-system.
-
-   The system on which the tools will run is called the host system.
-
-   For example, if you are building a Solaris program on a GNU/Linux
-system, as in the previous section, the build system would be GNU/Linux,
-and the host system would be Solaris.
-
-   It is, of course, possible to build a cross compiler using a Canadian
-Cross (i.e., build a cross compiler using a cross compiler).  In this
-case, the system for which the resulting cross compiler generates code
-is called the target system.  (For a more complete discussion of host
-and target systems, *note Host and Target::).
-
-   An example of building a cross compiler using a Canadian Cross would
-be building a Windows cross MIPS ELF compiler on a GNU/Linux system.  In
-this case the build system would be GNU/Linux, the host system would be
-Windows, and the target system would be MIPS ELF.
-
-   The name Canadian Cross comes from the case when the build, host, and
-target systems are all different.  At the time that these issues were
-all being hashed out, Canada had three national political parties.
-
-
-File: configure.info,  Node: Build Cross Host Tools,  Next: Build and Host Options,  Prev: Canadian Cross Concepts,  Up: Canadian Cross
-
-6.3 Build Cross Host Tools
-==========================
-
-In order to configure a program for a Canadian Cross build, you must
-first build and install the set of cross tools you will use to build the
-program.
-
-   These tools will be build cross host tools.  That is, they will run
-on the build system, and will produce code that runs on the host system.
-
-   It is easy to confuse the meaning of build and host here.  Always
-remember that the build system is where you are doing the build, and the
-host system is where the resulting program will run.  Therefore, you
-need a build cross host compiler.
-
-   In general, you must have a complete cross environment in order to do
-the build.  This normally means a cross compiler, cross assembler, and
-so forth, as well as libraries and include files for the host system.
-
-
-File: configure.info,  Node: Build and Host Options,  Next: CCross not in Cygnus Tree,  Prev: Build Cross Host Tools,  Up: Canadian Cross
-
-6.4 Build and Host Options
-==========================
-
-When you run 'configure', you must use both the '--build' and '--host'
-options.
-
-   The '--build' option is used to specify the configuration name of the
-build system.  This can normally be the result of running the
-'config.guess' shell script, and it is reasonable to use
-'--build=`config.guess`'.
-
-   The '--host' option is used to specify the configuration name of the
-host system.
-
-   As we explained earlier, 'config.guess' is used to set the default
-value for the '--host' option (*note Using the Host Type::).  We can now
-see that since 'config.guess' returns the type of system on which it is
-run, it really identifies the build system.  Since the host system is
-normally the same as the build system (i.e., people do not normally
-build using a cross compiler), it is reasonable to use the result of
-'config.guess' as the default for the host system when the '--host'
-option is not used.
-
-   It might seem that if the '--host' option were used without the
-'--build' option that the configure script could run 'config.guess' to
-determine the build system, and presume a Canadian Cross if the result
-of 'config.guess' differed from the '--host' option.  However, for
-historical reasons, some configure scripts are routinely run using an
-explicit '--host' option, rather than using the default from
-'config.guess'.  As noted earlier, it is difficult or impossible to
-reliably compare configuration names (*note Using the Target Type::).
-Therefore, by convention, if the '--host' option is used, but the
-'--build' option is not used, then the build system defaults to the host
-system.
-
-
-File: configure.info,  Node: CCross not in Cygnus Tree,  Next: CCross in Cygnus Tree,  Prev: Build and Host Options,  Up: Canadian Cross
-
-6.5 Canadian Cross not in Cygnus Tree.
-======================================
-
-If you are not using the Cygnus tree, you must explicitly specify the
-cross tools which you want to use to build the program.  This is done by
-setting environment variables before running the 'configure' script.
-
-   You must normally set at least the environment variables 'CC', 'AR',
-and 'RANLIB' to the cross tools which you want to use to build.
-
-   For some programs, you must set additional cross tools as well, such
-as 'AS', 'LD', or 'NM'.
-
-   You would set these environment variables to the build cross tools
-which you are going to use.
-
-   For example, if you are building a Solaris program on a GNU/Linux
-system, and your GNU/Linux cross Solaris compiler were named
-'solaris-gcc', then you would set the environment variable 'CC' to
-'solaris-gcc'.
-
-
-File: configure.info,  Node: CCross in Cygnus Tree,  Next: Supporting Canadian Cross,  Prev: CCross not in Cygnus Tree,  Up: Canadian Cross
-
-6.6 Canadian Cross in Cygnus Tree
-=================================
-
-This section describes configuring and building a Canadian Cross when
-using the Cygnus tree.
-
-* Menu:
-
-* Standard Cygnus CCross::	Building a Normal Program.
-* Cross Cygnus CCross::		Building a Cross Program.
-
-
-File: configure.info,  Node: Standard Cygnus CCross,  Next: Cross Cygnus CCross,  Up: CCross in Cygnus Tree
-
-6.6.1 Building a Normal Program
--------------------------------
-
-When configuring a Canadian Cross in the Cygnus tree, all the
-appropriate environment variables are automatically set to 'HOST-TOOL',
-where HOST is the value used for the '--host' option, and TOOL is the
-name of the tool (e.g., 'gcc', 'as', etc.).  These tools must be on your
-'PATH'.
-
-   Adding a prefix of HOST will give the usual name for the build cross
-host tools.  To see this, consider that when these cross tools were
-built, they were configured to run on the build system and to produce
-code for the host system.  That is, they were configured with a
-'--target' option that is the same as the system which we are now
-calling the host.  Recall that the default name for installed cross
-tools uses the target system as a prefix (*note Using the Target
-Type::).  Since that is the system which we are now calling the host,
-HOST is the right prefix to use.
-
-   For example, if you configure with '--build=i386-linux-gnu' and
-'--host=solaris', then the Cygnus tree will automatically default to
-using the compiler 'solaris-gcc'.  You must have previously built and
-installed this compiler, probably by doing a build with no '--host'
-option and with a '--target' option of 'solaris'.
-
-
-File: configure.info,  Node: Cross Cygnus CCross,  Prev: Standard Cygnus CCross,  Up: CCross in Cygnus Tree
-
-6.6.2 Building a Cross Program
-------------------------------
-
-There are additional considerations if you want to build a cross
-compiler, rather than a native compiler, in the Cygnus tree using a
-Canadian Cross.
-
-   When you build a cross compiler using the Cygnus tree, then the
-target libraries will normally be built with the newly built target
-compiler (*note Host and Target Libraries::).  However, this will not
-work when building with a Canadian Cross.  This is because the newly
-built target compiler will be a program which runs on the host system,
-and therefore will not be able to run on the build system.
-
-   Therefore, when building a cross compiler with the Cygnus tree, you
-must first install a set of build cross target tools.  These tools will
-be used when building the target libraries.
-
-   Note that this is not a requirement of a Canadian Cross in general.
-For example, it would be possible to build just the host cross target
-tools on the build system, to copy the tools to the host system, and to
-build the target libraries on the host system.  The requirement for
-build cross target tools is imposed by the Cygnus tree, which expects to
-be able to build both host programs and target libraries in a single
-'configure'/'make' step.  Because it builds these in a single step, it
-expects to be able to build the target libraries on the build system,
-which means that it must use a build cross target toolchain.
-
-   For example, suppose you want to build a Windows cross MIPS ELF
-compiler on a GNU/Linux system.  You must have previously installed both
-a GNU/Linux cross Windows compiler and a GNU/Linux cross MIPS ELF
-compiler.
-
-   In order to build the Windows (configuration name 'i386-cygwin32')
-cross MIPS ELF (configure name 'mips-elf') compiler, you might execute
-the following commands (long command lines are broken across lines with
-a trailing backslash as a continuation character).
-
-     mkdir linux-x-cygwin32
-     cd linux-x-cygwin32
-     SRCDIR/configure --target i386-cygwin32 --prefix=INSTALLDIR \
-       --exec-prefix=INSTALLDIR/H-i386-linux
-     make
-     make install
-     cd ..
-     mkdir linux-x-mips-elf
-     cd linux-x-mips-elf
-     SRCDIR/configure --target mips-elf --prefix=INSTALLDIR \
-       --exec-prefix=INSTALLDIR/H-i386-linux
-     make
-     make install
-     cd ..
-     mkdir cygwin32-x-mips-elf
-     cd cygwin32-x-mips-elf
-     SRCDIR/configure --build=i386-linux-gnu --host=i386-cygwin32 \
-       --target=mips-elf --prefix=WININSTALLDIR \
-       --exec-prefix=WININSTALLDIR/H-i386-cygwin32
-     make
-     make install
-
-   You would then copy the contents of WININSTALLDIR over to the Windows
-machine, and run the resulting programs.
-
-
-File: configure.info,  Node: Supporting Canadian Cross,  Prev: CCross in Cygnus Tree,  Up: Canadian Cross
-
-6.7 Supporting Canadian Cross
-=============================
-
-If you want to make it possible to build a program you are developing
-using a Canadian Cross, you must take some care when writing your
-configure and make rules.  Simple cases will normally work correctly.
-However, it is not hard to write configure and make tests which will
-fail in a Canadian Cross.
-
-* Menu:
-
-* CCross in Configure::		Supporting Canadian Cross in Configure Scripts.
-* CCross in Make::		Supporting Canadian Cross in Makefiles.
-
-
-File: configure.info,  Node: CCross in Configure,  Next: CCross in Make,  Up: Supporting Canadian Cross
-
-6.7.1 Supporting Canadian Cross in Configure Scripts
-----------------------------------------------------
-
-In a 'configure.in' file, after calling 'AC_PROG_CC', you can find out
-whether this is a Canadian Cross configure by examining the shell
-variable 'cross_compiling'.  In a Canadian Cross, which means that the
-compiler is a cross compiler, 'cross_compiling' will be 'yes'.  In a
-normal configuration, 'cross_compiling' will be 'no'.
-
-   You ordinarily do not need to know the type of the build system in a
-configure script.  However, if you do need that information, you can get
-it by using the macro 'AC_CANONICAL_SYSTEM', the same macro that is used
-to determine the target system.  This macro will set the variables
-'build', 'build_alias', 'build_cpu', 'build_vendor', and 'build_os',
-which correspond to the similar 'target' and 'host' variables, except
-that they describe the build system.
-
-   When writing tests in 'configure.in', you must remember that you want
-to test the host environment, not the build environment.
-
-   Macros like 'AC_CHECK_FUNCS' which use the compiler will test the
-host environment.  That is because the tests will be done by running the
-compiler, which is actually a build cross host compiler.  If the
-compiler can find the function, that means that the function is present
-in the host environment.
-
-   Tests like 'test -f /dev/ptyp0', on the other hand, will test the
-build environment.  Remember that the configure script is running on the
-build system, not the host system.  If your configure scripts examines
-files, those files will be on the build system.  Whatever you determine
-based on those files may or may not be the case on the host system.
-
-   Most autoconf macros will work correctly for a Canadian Cross.  The
-main exception is 'AC_TRY_RUN'.  This macro tries to compile and run a
-test program.  This will fail in a Canadian Cross, because the program
-will be compiled for the host system, which means that it will not run
-on the build system.
-
-   The 'AC_TRY_RUN' macro provides an optional argument to tell the
-configure script what to do in a Canadian Cross.  If that argument is
-not present, you will get a warning when you run 'autoconf':
-     warning: AC_TRY_RUN called without default to allow cross compiling
-This tells you that the resulting 'configure' script will not work with
-a Canadian Cross.
-
-   In some cases while it may better to perform a test at configure
-time, it is also possible to perform the test at run time.  In such a
-case you can use the cross compiling argument to 'AC_TRY_RUN' to tell
-your program that the test could not be performed at configure time.
-
-   There are a few other autoconf macros which will not work correctly
-with a Canadian Cross: a partial list is 'AC_FUNC_GETPGRP',
-'AC_FUNC_SETPGRP', 'AC_FUNC_SETVBUF_REVERSED', and
-'AC_SYS_RESTARTABLE_SYSCALLS'.  The 'AC_CHECK_SIZEOF' macro is generally
-not very useful with a Canadian Cross; it permits an optional argument
-indicating the default size, but there is no way to know what the
-correct default should be.
-
-
-File: configure.info,  Node: CCross in Make,  Prev: CCross in Configure,  Up: Supporting Canadian Cross
-
-6.7.2 Supporting Canadian Cross in Makefiles.
----------------------------------------------
-
-The main Canadian Cross issue in a 'Makefile' arises when you want to
-use a subsidiary program to generate code or data which you will then
-include in your real program.
-
-   If you compile this subsidiary program using '$(CC)' in the usual
-way, you will not be able to run it.  This is because '$(CC)' will build
-a program for the host system, but the program is being built on the
-build system.
-
-   You must instead use a compiler for the build system, rather than the
-host system.  In the Cygnus tree, this make variable '$(CC_FOR_BUILD)'
-will hold a compiler for the build system.
-
-   Note that you should not include 'config.h' in a file you are
-compiling with '$(CC_FOR_BUILD)'.  The 'configure' script will build
-'config.h' with information for the host system.  However, you are
-compiling the file using a compiler for the build system (a native
-compiler).  Subsidiary programs are normally simple filters which do no
-user interaction, and it is normally possible to write them in a highly
-portable fashion so that the absence of 'config.h' is not crucial.
-
-   The gcc 'Makefile.in' shows a complex situation in which certain
-files, such as 'rtl.c', must be compiled into both subsidiary programs
-run on the build system and into the final program.  This approach may
-be of interest for advanced build system hackers.  Note that the build
-system compiler is rather confusingly called 'HOST_CC'.
-
-
-File: configure.info,  Node: Cygnus Configure,  Next: Multilibs,  Prev: Canadian Cross,  Up: Top
-
-7 Cygnus Configure
-******************
-
-The Cygnus configure script predates autoconf.  All of its interesting
-features have been incorporated into autoconf.  No new programs should
-be written to use the Cygnus configure script.
-
-   However, the Cygnus configure script is still used in a few places:
-at the top of the Cygnus tree and in a few target libraries in the
-Cygnus tree.  Until those uses have been replaced with autoconf, some
-brief notes are appropriate here.  This is not complete documentation,
-but it should be possible to use this as a guide while examining the
-scripts themselves.
-
-* Menu:
-
-* Cygnus Configure Basics::		Cygnus Configure Basics.
-* Cygnus Configure in C++ Libraries::	Cygnus Configure in C++ Libraries.
-
-
-File: configure.info,  Node: Cygnus Configure Basics,  Next: Cygnus Configure in C++ Libraries,  Up: Cygnus Configure
-
-7.1 Cygnus Configure Basics
-===========================
-
-Cygnus configure does not use any generated files; there is no program
-corresponding to 'autoconf'.  Instead, there is a single shell script
-named 'configure' which may be found at the top of the Cygnus tree.
-This shell script was written by hand; it was not generated by autoconf,
-and it is incorrect, and indeed harmful, to run 'autoconf' in the top
-level of a Cygnus tree.
-
-   Cygnus configure works in a particular directory by examining the
-file 'configure.in' in that directory.  That file is broken into four
-separate shell scripts.
-
-   The first is the contents of 'configure.in' up to a line that starts
-with '# per-host:'.  This is the common part.
-
-   The second is the rest of 'configure.in' up to a line that starts
-with '# per-target:'.  This is the per host part.
-
-   The third is the rest of 'configure.in' up to a line that starts with
-'# post-target:'.  This is the per target part.
-
-   The fourth is the remainder of 'configure.in'.  This is the post
-target part.
-
-   If any of these comment lines are missing, the corresponding shell
-script is empty.
-
-   Cygnus configure will first execute the common part.  This must set
-the shell variable 'srctrigger' to the name of a source file, to confirm
-that Cygnus configure is looking at the right directory.  This may set
-the shell variables 'package_makefile_frag' and
-'package_makefile_rules_frag'.
-
-   Cygnus configure will next set the 'build' and 'host' shell
-variables, and execute the per host part.  This may set the shell
-variable 'host_makefile_frag'.
-
-   Cygnus configure will next set the 'target' variable, and execute the
-per target part.  This may set the shell variable
-'target_makefile_frag'.
-
-   Any of these scripts may set the 'subdirs' shell variable.  This
-variable is a list of subdirectories where a 'Makefile.in' file may be
-found.  Cygnus configure will automatically look for a 'Makefile.in'
-file in the current directory.  The 'subdirs' shell variable is not
-normally used, and I believe that the only directory which uses it at
-present is 'newlib'.
-
-   For each 'Makefile.in', Cygnus configure will automatically create a
-'Makefile' by adding definitions for 'make' variables such as 'host' and
-'target', and automatically editing the values of 'make' variables such
-as 'prefix' if they are present.
-
-   Also, if any of the 'makefile_frag' shell variables are set, Cygnus
-configure will interpret them as file names relative to either the
-working directory or the source directory, and will read the contents of
-the file into the generated 'Makefile'.  The file contents will be read
-in after the first line in 'Makefile.in' which starts with '####'.
-
-   These 'Makefile' fragments are used to customize behaviour for a
-particular host or target.  They serve to select particular files to
-compile, and to define particular preprocessor macros by providing
-values for 'make' variables which are then used during compilation.
-Cygnus configure, unlike autoconf, normally does not do feature tests,
-and normally requires support to be added manually for each new host.
-
-   The 'Makefile' fragment support is similar to the autoconf
-'AC_SUBST_FILE' macro.
-
-   After creating each 'Makefile', the post target script will be run
-(i.e., it may be run several times).  This script may further customize
-the 'Makefile'.  When it is run, the shell variable 'Makefile' will hold
-the name of the 'Makefile', including the appropriate directory
-component.
-
-   Like an autoconf generated 'configure' script, Cygnus configure will
-create a file named 'config.status' which, when run, will automatically
-recreate the configuration.  The 'config.status' file will simply
-execute the Cygnus configure script again with the appropriate
-arguments.
-
-   Any of the parts of 'configure.in' may set the shell variables
-'files' and 'links'.  Cygnus configure will set up symlinks from the
-names in 'links' to the files named in 'files'.  This is similar to the
-autoconf 'AC_LINK_FILES' macro.
-
-   Finally, any of the parts of 'configure.in' may set the shell
-variable 'configdirs' to a set of subdirectories.  If it is set, Cygnus
-configure will recursively run the configure process in each
-subdirectory.  If the subdirectory uses Cygnus configure, it will
-contain a 'configure.in' file but no 'configure' file, in which case
-Cygnus configure will invoke itself recursively.  If the subdirectory
-has a 'configure' file, Cygnus configure assumes that it is an autoconf
-generated 'configure' script, and simply invokes it directly.
-
-
-File: configure.info,  Node: Cygnus Configure in C++ Libraries,  Prev: Cygnus Configure Basics,  Up: Cygnus Configure
-
-7.2 Cygnus Configure in C++ Libraries
-=====================================
-
-The C++ library configure system, written by Per Bothner, deserves
-special mention.  It uses Cygnus configure, but it does feature testing
-like that done by autoconf generated 'configure' scripts.  This approach
-is used in the libraries 'libio', 'libstdc++', and 'libg++'.
-
-   Most of the 'Makefile' information is written out by the shell script
-'libio/config.shared'.  Each 'configure.in' file sets certain shell
-variables, and then invokes 'config.shared' to create two package
-'Makefile' fragments.  These fragments are then incorporated into the
-resulting 'Makefile' by the Cygnus configure script.
-
-   The file '_G_config.h' is created in the 'libio' object directory by
-running the shell script 'libio/gen-params'.  This shell script uses
-feature tests to define macros and typedefs in '_G_config.h'.
-
-
-File: configure.info,  Node: Multilibs,  Next: FAQ,  Prev: Cygnus Configure,  Up: Top
-
-8 Multilibs
-***********
-
-For some targets gcc may have different processor requirements depending
-upon command line options.  An obvious example is the '-msoft-float'
-option supported on several processors.  This option means that the
-floating point registers are not available, which means that floating
-point operations must be done by calling an emulation subroutine rather
-than by using machine instructions.
-
-   For such options, gcc is often configured to compile target libraries
-twice: once with '-msoft-float' and once without.  When gcc compiles
-target libraries more than once, the resulting libraries are called
-"multilibs".
-
-   Multilibs are not really part of the GNU configure and build system,
-but we discuss them here since they require support in the 'configure'
-scripts and 'Makefile's used for target libraries.
-
-* Menu:
-
-* Multilibs in gcc::		        Multilibs in gcc.
-* Multilibs in Target Libraries::	Multilibs in Target Libraries.
-
-
-File: configure.info,  Node: Multilibs in gcc,  Next: Multilibs in Target Libraries,  Up: Multilibs
-
-8.1 Multilibs in gcc
-====================
-
-In gcc, multilibs are defined by setting the variable 'MULTILIB_OPTIONS'
-in the target 'Makefile' fragment.  Several other 'MULTILIB' variables
-may also be defined there.  *Note The Target Makefile Fragment:
-(gcc)Target Fragment.
-
-   If you have built gcc, you can see what multilibs it uses by running
-it with the '-print-multi-lib' option.  The output '.;' means that no
-multilibs are used.  In general, the output is a sequence of lines, one
-per multilib.  The first part of each line, up to the ';', is the name
-of the multilib directory.  The second part is a list of compiler
-options separated by '@' characters.
-
-   Multilibs are built in a tree of directories.  The top of the tree,
-represented by '.' in the list of multilib directories, is the default
-library to use when no special compiler options are used.  The
-subdirectories of the tree hold versions of the library to use when
-particular compiler options are used.
-
-
-File: configure.info,  Node: Multilibs in Target Libraries,  Prev: Multilibs in gcc,  Up: Multilibs
-
-8.2 Multilibs in Target Libraries
-=================================
-
-The target libraries in the Cygnus tree are automatically built with
-multilibs.  That means that each library is built multiple times.
-
-   This default is set in the top level 'configure.in' file, by adding
-'--enable-multilib' to the list of arguments passed to configure when it
-is run for the target libraries (*note Host and Target Libraries::).
-
-   Each target library uses the shell script 'config-ml.in', written by
-Doug Evans, to prepare to build target libraries.  This shell script is
-invoked after the 'Makefile' has been created by the 'configure' script.
-If multilibs are not enabled, it does nothing, otherwise it modifies the
-'Makefile' to support multilibs.
-
-   The 'config-ml.in' script makes one copy of the 'Makefile' for each
-multilib in the appropriate subdirectory.  When configuring in the
-source directory (which is not recommended), it will build a symlink
-tree of the sources in each subdirectory.
-
-   The 'config-ml.in' script sets several variables in the various
-'Makefile's.  The 'Makefile.in' must have definitions for these
-variables already; 'config-ml.in' simply changes the existing values.
-The 'Makefile' should use default values for these variables which will
-do the right thing in the subdirectories.
-
-'MULTISRCTOP'
-     'config-ml.in' will set this to a sequence of '../' strings, where
-     the number of strings is the number of multilib levels in the
-     source tree.  The default value should be the empty string.
-'MULTIBUILDTOP'
-     'config-ml.in' will set this to a sequence of '../' strings, where
-     the number of strings is number of multilib levels in the object
-     directory.  The default value should be the empty string.  This
-     will differ from 'MULTISRCTOP' when configuring in the source tree
-     (which is not recommended).
-'MULTIDIRS'
-     In the top level 'Makefile' only, 'config-ml.in' will set this to
-     the list of multilib subdirectories.  The default value should be
-     the empty string.
-'MULTISUBDIR'
-     'config-ml.in' will set this to the installed subdirectory name to
-     use for this subdirectory, with a leading '/'.  The default value
-     shold be the empty string.
-'MULTIDO'
-'MULTICLEAN'
-     In the top level 'Makefile' only, 'config-ml.in' will set these
-     variables to commands to use when doing a recursive make.  These
-     variables should both default to the string 'true', so that by
-     default nothing happens.
-
-   All references to the parent of the source directory should use the
-variable 'MULTISRCTOP'.  Instead of writing '$(srcdir)/..', you must
-write '$(srcdir)/$(MULTISRCTOP)..'.
-
-   Similarly, references to the parent of the object directory should
-use the variable 'MULTIBUILDTOP'.
-
-   In the installation target, the libraries should be installed in the
-subdirectory 'MULTISUBDIR'.  Instead of installing '$(libdir)/libfoo.a',
-install '$(libdir)$(MULTISUBDIR)/libfoo.a'.
-
-   The 'config-ml.in' script also modifies the top level 'Makefile' to
-add 'multi-do' and 'multi-clean' targets which are used when building
-multilibs.
-
-   The default target of the 'Makefile' should include the following
-command:
-     @$(MULTIDO) $(FLAGS_TO_PASS) DO=all multi-do
-This assumes that '$(FLAGS_TO_PASS)' is defined as a set of variables to
-pass to a recursive invocation of 'make'.  This will build all the
-multilibs.  Note that the default value of 'MULTIDO' is 'true', so by
-default this command will do nothing.  It will only do something in the
-top level 'Makefile' if multilibs were enabled.
-
-   The 'install' target of the 'Makefile' should include the following
-command:
-     @$(MULTIDO) $(FLAGS_TO_PASS) DO=install multi-do
-
-   In general, any operation, other than clean, which should be
-performed on all the multilibs should use a '$(MULTIDO)' line, setting
-the variable 'DO' to the target of each recursive call to 'make'.
-
-   The 'clean' targets ('clean', 'mostlyclean', etc.)  should use
-'$(MULTICLEAN)'.  For example, the 'clean' target should do this:
-     @$(MULTICLEAN) DO=clean multi-clean
-
-
-File: configure.info,  Node: FAQ,  Next: Index,  Prev: Multilibs,  Up: Top
-
-9 Frequently Asked Questions
-****************************
-
-Which do I run first, 'autoconf' or 'automake'?
-     Except when you first add autoconf or automake support to a
-     package, you shouldn't run either by hand.  Instead, configure with
-     the '--enable-maintainer-mode' option, and let 'make' take care of
-     it.
-
-'autoconf' says something about undefined macros.
-     This means that you have macros in your 'configure.in' which are
-     not defined by 'autoconf'.  You may be using an old version of
-     'autoconf'; try building and installing a newer one.  Make sure the
-     newly installled 'autoconf' is first on your 'PATH'.  Also, see the
-     next question.
-
-My 'configure' script has stuff like 'CY_GNU_GETTEXT' in it.
-     This means that you have macros in your 'configure.in' which should
-     be defined in your 'aclocal.m4' file, but aren't.  This usually
-     means that 'aclocal' was not able to appropriate definitions of the
-     macros.  Make sure that you have installed all the packages you
-     need.  In particular, make sure that you have installed libtool
-     (this is where 'AM_PROG_LIBTOOL' is defined) and gettext (this is
-     where 'CY_GNU_GETTEXT' is defined, at least in the Cygnus version
-     of gettext).
-
-My 'Makefile' has '@' characters in it.
-     This may mean that you tried to use an autoconf substitution in
-     your 'Makefile.in' without adding the appropriate 'AC_SUBST' call
-     to your 'configure' script.  Or it may just mean that you need to
-     rebuild 'Makefile' in your build directory.  To rebuild 'Makefile'
-     from 'Makefile.in', run the shell script 'config.status' with no
-     arguments.  If you need to force 'configure' to run again, first
-     run 'config.status --recheck'.  These runs are normally done
-     automatically by 'Makefile' targets, but if your 'Makefile' has
-     gotten messed up you'll need to help them along.
-
-Why do I have to run both 'config.status --recheck' and 'config.status'?
-     Normally, you don't; they will be run automatically by 'Makefile'
-     targets.  If you do need to run them, use 'config.status --recheck'
-     to run the 'configure' script again with the same arguments as the
-     first time you ran it.  Use 'config.status' (with no arguments) to
-     regenerate all files ('Makefile', 'config.h', etc.)  based on the
-     results of the configure script.  The two cases are separate
-     because it isn't always necessary to regenerate all the files after
-     running 'config.status --recheck'.  The 'Makefile' targets
-     generated by automake will use the environment variables
-     'CONFIG_FILES' and 'CONFIG_HEADERS' to only regenerate files as
-     they are needed.
-
-What is the Cygnus tree?
-     The Cygnus tree is used for various packages including gdb, the GNU
-     binutils, and egcs.  It is also, of course, used for Cygnus
-     releases.  It is the build system which was developed at Cygnus,
-     using the Cygnus configure script.  It permits building many
-     different packages with a single configure and make.  The configure
-     scripts in the tree are being converted to autoconf, but the
-     general build structure remains intact.
-
-Why do I have to keep rebuilding and reinstalling the tools?
-     I know, it's a pain.  Unfortunately, there are bugs in the tools
-     themselves which need to be fixed, and each time that happens
-     everybody who uses the tools need to reinstall new versions of
-     them.  I don't know if there is going to be a clever fix until the
-     tools stabilize.
-
-Why not just have a Cygnus tree 'make' target to update the tools?
-     The tools unfortunately need to be installed before they can be
-     used.  That means that they must be built using an appropriate
-     prefix, and it seems unwise to assume that every configuration uses
-     an appropriate prefix.  It might be possible to make them work in
-     place, or it might be possible to install them in some
-     subdirectory; so far these approaches have not been implemented.
-
-
-File: configure.info,  Node: Index,  Prev: FAQ,  Up: Top
-
-Index
-*****
-
-[index]
-* Menu:
-
-* '--build' option:                      Build and Host Options.
-                                                              (line   9)
-* '--host' option:                       Build and Host Options.
-                                                              (line  14)
-* '--target' option:                     Specifying the Target.
-                                                              (line  10)
-* '_GNU_SOURCE':                         Write configure.in.  (line 132)
-* 'acconfig.h':                          Written Developer Files.
-                                                              (line  27)
-* 'acconfig.h', writing:                 Write acconfig.h.    (line   6)
-* 'acinclude.m4':                        Written Developer Files.
-                                                              (line  37)
-* 'aclocal.m4':                          Generated Developer Files.
-                                                              (line  33)
-* 'AC_CANONICAL_HOST':                   Using the Host Type. (line  10)
-* 'AC_CANONICAL_SYSTEM':                 Using the Target Type.
-                                                              (line   6)
-* 'AC_CONFIG_HEADER':                    Write configure.in.  (line  64)
-* 'AC_EXEEXT':                           Write configure.in.  (line  84)
-* 'AC_INIT':                             Write configure.in.  (line  37)
-* 'AC_OUTPUT':                           Write configure.in.  (line 140)
-* 'AC_PREREQ':                           Write configure.in.  (line  41)
-* 'AC_PROG_CC':                          Write configure.in.  (line 101)
-* 'AC_PROG_CXX':                         Write configure.in.  (line 115)
-* 'AM_CONFIG_HEADER':                    Write configure.in.  (line  52)
-* 'AM_DISABLE_SHARED':                   Write configure.in.  (line 125)
-* 'AM_EXEEXT':                           Write configure.in.  (line  84)
-* 'AM_INIT_AUTOMAKE':                    Write configure.in.  (line  47)
-* 'AM_MAINTAINER_MODE':                  Write configure.in.  (line  68)
-* 'AM_PROG_LIBTOOL':                     Write configure.in.  (line 120)
-* 'AM_PROG_LIBTOOL' in 'configure':      FAQ.                 (line  19)
-* build option:                          Build and Host Options.
-                                                              (line   9)
-* building with a cross compiler:        Canadian Cross.      (line   6)
-* canadian cross:                        Canadian Cross.      (line   6)
-* canadian cross in configure:           CCross in Configure. (line   6)
-* canadian cross in cygnus tree:         CCross in Cygnus Tree.
-                                                              (line   6)
-* canadian cross in makefile:            CCross in Make.      (line   6)
-* canadian cross, configuring:           Build and Host Options.
-                                                              (line   6)
-* canonical system names:                Configuration Names. (line   6)
-* 'config.cache':                        Build Files Description.
-                                                              (line  28)
-* 'config.h':                            Build Files Description.
-                                                              (line  23)
-* 'config.h.in':                         Generated Developer Files.
-                                                              (line  45)
-* 'config.in':                           Generated Developer Files.
-                                                              (line  45)
-* 'config.status':                       Build Files Description.
-                                                              (line   9)
-* 'config.status --recheck':             FAQ.                 (line  40)
-* configuration names:                   Configuration Names. (line   6)
-* configuration triplets:                Configuration Names. (line   6)
-* 'configure':                           Generated Developer Files.
-                                                              (line  21)
-* configure build system:                Build and Host Options.
-                                                              (line   9)
-* configure host:                        Build and Host Options.
-                                                              (line  14)
-* configure target:                      Specifying the Target.
-                                                              (line  10)
-* 'configure.in':                        Written Developer Files.
-                                                              (line   9)
-* 'configure.in', writing:               Write configure.in.  (line   6)
-* configuring a canadian cross:          Build and Host Options.
-                                                              (line   6)
-* cross compiler:                        Cross Compilation Concepts.
-                                                              (line   6)
-* cross compiler, building with:         Canadian Cross.      (line   6)
-* cross tools:                           Cross Compilation Tools.
-                                                              (line   6)
-* cygnus configure:                      Cygnus Configure.    (line   6)
-* 'CY_GNU_GETTEXT' in 'configure':       FAQ.                 (line  19)
-* goals:                                 Goals.               (line   6)
-* history:                               History.             (line   6)
-* host names:                            Configuration Names. (line   6)
-* host option:                           Build and Host Options.
-                                                              (line  14)
-* host system:                           Host and Target.     (line   6)
-* host triplets:                         Configuration Names. (line   6)
-* 'HOST_CC':                             CCross in Make.      (line  27)
-* 'libg++' configure:                    Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* 'libio' configure:                     Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* 'libstdc++' configure:                 Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* 'Makefile':                            Build Files Description.
-                                                              (line  18)
-* 'Makefile', garbage characters:        FAQ.                 (line  29)
-* 'Makefile.am':                         Written Developer Files.
-                                                              (line  18)
-* 'Makefile.am', writing:                Write Makefile.am.   (line   6)
-* 'Makefile.in':                         Generated Developer Files.
-                                                              (line  26)
-* multilibs:                             Multilibs.           (line   6)
-* 'stamp-h':                             Build Files Description.
-                                                              (line  40)
-* 'stamp-h.in':                          Generated Developer Files.
-                                                              (line  54)
-* system names:                          Configuration Names. (line   6)
-* system types:                          Configuration Names. (line   6)
-* target option:                         Specifying the Target.
-                                                              (line  10)
-* target system:                         Host and Target.     (line   6)
-* triplets:                              Configuration Names. (line   6)
-* undefined macros:                      FAQ.                 (line  12)
-
-
-
-Tag Table:
-Node: Top966
-Node: Introduction1494
-Node: Goals2576
-Node: Tools3300
-Node: History4289
-Node: Building7285
-Node: Getting Started10548
-Node: Write configure.in11061
-Node: Write Makefile.am18275
-Node: Write acconfig.h21431
-Node: Generate files22968
-Node: Getting Started Example24934
-Node: Getting Started Example 125689
-Node: Getting Started Example 227610
-Node: Getting Started Example 330605
-Node: Generate Files in Example32966
-Node: Files34052
-Node: Developer Files34663
-Node: Developer Files Picture35043
-Node: Written Developer Files36343
-Node: Generated Developer Files38895
-Node: Build Files42039
-Node: Build Files Picture42700
-Node: Build Files Description43463
-Node: Support Files45463
-Node: Configuration Names48332
-Node: Configuration Name Definition48831
-Node: Using Configuration Names51151
-Node: Cross Compilation Tools53121
-Node: Cross Compilation Concepts53812
-Node: Host and Target54780
-Node: Using the Host Type56281
-Node: Specifying the Target57628
-Node: Using the Target Type58417
-Node: Cross Tools in the Cygnus Tree61847
-Node: Host and Target Libraries62904
-Node: Target Library Configure Scripts66649
-Node: Make Targets in Cygnus Tree69741
-Node: Target libiberty71089
-Node: Canadian Cross72475
-Node: Canadian Cross Example73316
-Node: Canadian Cross Concepts74435
-Node: Build Cross Host Tools75947
-Node: Build and Host Options76899
-Node: CCross not in Cygnus Tree78685
-Node: CCross in Cygnus Tree79663
-Node: Standard Cygnus CCross80084
-Node: Cross Cygnus CCross81448
-Node: Supporting Canadian Cross84248
-Node: CCross in Configure84863
-Node: CCross in Make88028
-Node: Cygnus Configure89631
-Node: Cygnus Configure Basics90466
-Node: Cygnus Configure in C++ Libraries95144
-Node: Multilibs96151
-Node: Multilibs in gcc97196
-Node: Multilibs in Target Libraries98274
-Node: FAQ102458
-Node: Index106559
-
-End Tag Table
diff --git a/libc/share/info/standards.info b/libc/share/info/standards.info
deleted file mode 100644
index ba33f70..0000000
--- a/libc/share/info/standards.info
+++ /dev/null
@@ -1,5720 +0,0 @@
-This is standards.info, produced by makeinfo version 6.0 from
-standards.texi.
-
-The GNU coding standards, last updated April 12, 2010.
-
-   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-INFO-DIR-SECTION GNU organization
-START-INFO-DIR-ENTRY
-* Standards: (standards).       GNU coding standards.
-END-INFO-DIR-ENTRY
-
-
-File: standards.info,  Node: Top,  Next: Preface,  Prev: (dir),  Up: (dir)
-
-Version
-*******
-
-The GNU coding standards, last updated April 12, 2010.
-
-   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-
-* Menu:
-
-* Preface::                     About the GNU Coding Standards.
-* Legal Issues::                Keeping free software free.
-* Design Advice::               General program design.
-* Program Behavior::            Program behavior for all programs
-* Writing C::                   Making the best use of C.
-* Documentation::               Documenting programs.
-* Managing Releases::           The release process.
-* References::                  Mentioning non-free software or documentation.
-* GNU Free Documentation License::  Copying and sharing this manual.
-* Index::
-
-
-File: standards.info,  Node: Preface,  Next: Legal Issues,  Up: Top
-
-1 About the GNU Coding Standards
-********************************
-
-The GNU Coding Standards were written by Richard Stallman and other GNU
-Project volunteers.  Their purpose is to make the GNU system clean,
-consistent, and easy to install.  This document can also be read as a
-guide to writing portable, robust and reliable programs.  It focuses on
-programs written in C, but many of the rules and principles are useful
-even if you write in another programming language.  The rules often
-state reasons for writing in a certain way.
-
-   If you did not obtain this file directly from the GNU project and
-recently, please check for a newer version.  You can get the GNU Coding
-Standards from the GNU web server in many different formats, including
-the Texinfo source, PDF, HTML, DVI, plain text, and more, at:
-.
-
-   If you are maintaining an official GNU package, in addition to this
-document, please read and follow the GNU maintainer information (*note
-Contents: (maintain)Top.).
-
-   If you want to receive diffs for every change to these GNU documents,
-join the mailing list 'gnustandards-commit@gnu.org', via the web
-interface at
-.  Archives
-are also available there.
-
-   Please send corrections or suggestions for this document to
-.  If you make a suggestion, please include a
-suggested new wording for it, to help us consider the suggestion
-efficiently.  We prefer a context diff to the Texinfo source, but if
-that's difficult for you, you can make a context diff for some other
-version of this document, or propose it in any way that makes it clear.
-The source repository for this document can be found at
-.
-
-   These standards cover the minimum of what is important when writing a
-GNU package.  Likely, the need for additional standards will come up.
-Sometimes, you might suggest that such standards be added to this
-document.  If you think your standards would be generally useful, please
-do suggest them.
-
-   You should also set standards for your package on many questions not
-addressed or not firmly specified here.  The most important point is to
-be self-consistent--try to stick to the conventions you pick, and try to
-document them as much as possible.  That way, your program will be more
-maintainable by others.
-
-   The GNU Hello program serves as an example of how to follow the GNU
-coding standards for a trivial program.
-.
-
-   This release of the GNU Coding Standards was last updated April 12,
-2010.
-
-
-File: standards.info,  Node: Legal Issues,  Next: Design Advice,  Prev: Preface,  Up: Top
-
-2 Keeping Free Software Free
-****************************
-
-This chapter discusses how you can make sure that GNU software avoids
-legal difficulties, and other related issues.
-
-* Menu:
-
-* Reading Non-Free Code::       Referring to proprietary programs.
-* Contributions::               Accepting contributions.
-* Trademarks::                  How we deal with trademark issues.
-
-
-File: standards.info,  Node: Reading Non-Free Code,  Next: Contributions,  Up: Legal Issues
-
-2.1 Referring to Proprietary Programs
-=====================================
-
-Don't in any circumstances refer to Unix source code for or during your
-work on GNU! (Or to any other proprietary programs.)
-
-   If you have a vague recollection of the internals of a Unix program,
-this does not absolutely mean you can't write an imitation of it, but do
-try to organize the imitation internally along different lines, because
-this is likely to make the details of the Unix version irrelevant and
-dissimilar to your results.
-
-   For example, Unix utilities were generally optimized to minimize
-memory use; if you go for speed instead, your program will be very
-different.  You could keep the entire input file in memory and scan it
-there instead of using stdio.  Use a smarter algorithm discovered more
-recently than the Unix program.  Eliminate use of temporary files.  Do
-it in one pass instead of two (we did this in the assembler).
-
-   Or, on the contrary, emphasize simplicity instead of speed.  For some
-applications, the speed of today's computers makes simpler algorithms
-adequate.
-
-   Or go for generality.  For example, Unix programs often have static
-tables or fixed-size strings, which make for arbitrary limits; use
-dynamic allocation instead.  Make sure your program handles NULs and
-other funny characters in the input files.  Add a programming language
-for extensibility and write part of the program in that language.
-
-   Or turn some parts of the program into independently usable
-libraries.  Or use a simple garbage collector instead of tracking
-precisely when to free memory, or use a new GNU facility such as
-obstacks.
-
-
-File: standards.info,  Node: Contributions,  Next: Trademarks,  Prev: Reading Non-Free Code,  Up: Legal Issues
-
-2.2 Accepting Contributions
-===========================
-
-If the program you are working on is copyrighted by the Free Software
-Foundation, then when someone else sends you a piece of code to add to
-the program, we need legal papers to use it--just as we asked you to
-sign papers initially.  _Each_ person who makes a nontrivial
-contribution to a program must sign some sort of legal papers in order
-for us to have clear title to the program; the main author alone is not
-enough.
-
-   So, before adding in any contributions from other people, please tell
-us, so we can arrange to get the papers.  Then wait until we tell you
-that we have received the signed papers, before you actually use the
-contribution.
-
-   This applies both before you release the program and afterward.  If
-you receive diffs to fix a bug, and they make significant changes, we
-need legal papers for that change.
-
-   This also applies to comments and documentation files.  For copyright
-law, comments and code are just text.  Copyright applies to all kinds of
-text, so we need legal papers for all kinds.
-
-   We know it is frustrating to ask for legal papers; it's frustrating
-for us as well.  But if you don't wait, you are going out on a limb--for
-example, what if the contributor's employer won't sign a disclaimer?
-You might have to take that code out again!
-
-   You don't need papers for changes of a few lines here or there, since
-they are not significant for copyright purposes.  Also, you don't need
-papers if all you get from the suggestion is some ideas, not actual code
-which you use.  For example, if someone sent you one implementation, but
-you write a different implementation of the same idea, you don't need to
-get papers.
-
-   The very worst thing is if you forget to tell us about the other
-contributor.  We could be very embarrassed in court some day as a
-result.
-
-   We have more detailed advice for maintainers of programs; if you have
-reached the stage of actually maintaining a program for GNU (whether
-released or not), please ask us for a copy.  It is also available online
-for your perusal: .
-
-
-File: standards.info,  Node: Trademarks,  Prev: Contributions,  Up: Legal Issues
-
-2.3 Trademarks
-==============
-
-Please do not include any trademark acknowledgements in GNU software
-packages or documentation.
-
-   Trademark acknowledgements are the statements that such-and-such is a
-trademark of so-and-so.  The GNU Project has no objection to the basic
-idea of trademarks, but these acknowledgements feel like kowtowing, and
-there is no legal requirement for them, so we don't use them.
-
-   What is legally required, as regards other people's trademarks, is to
-avoid using them in ways which a reader might reasonably understand as
-naming or labeling our own programs or activities.  For example, since
-"Objective C" is (or at least was) a trademark, we made sure to say that
-we provide a "compiler for the Objective C language" rather than an
-"Objective C compiler".  The latter would have been meant as a shorter
-way of saying the former, but it does not explicitly state the
-relationship, so it could be misinterpreted as using "Objective C" as a
-label for the compiler rather than for the language.
-
-   Please don't use "win" as an abbreviation for Microsoft Windows in
-GNU software or documentation.  In hacker terminology, calling something
-a "win" is a form of praise.  If you wish to praise Microsoft Windows
-when speaking on your own, by all means do so, but not in GNU software.
-Usually we write the name "Windows" in full, but when brevity is very
-important (as in file names and sometimes symbol names), we abbreviate
-it to "w".  For instance, the files and functions in Emacs that deal
-with Windows start with 'w32'.
-
-
-File: standards.info,  Node: Design Advice,  Next: Program Behavior,  Prev: Legal Issues,  Up: Top
-
-3 General Program Design
-************************
-
-This chapter discusses some of the issues you should take into account
-when designing your program.
-
-* Menu:
-
-* Source Language::             Which languages to use.
-* Compatibility::               Compatibility with other implementations.
-* Using Extensions::            Using non-standard features.
-* Standard C::                  Using standard C features.
-* Conditional Compilation::     Compiling code only if a conditional is true.
-
-
-File: standards.info,  Node: Source Language,  Next: Compatibility,  Up: Design Advice
-
-3.1 Which Languages to Use
-==========================
-
-When you want to use a language that gets compiled and runs at high
-speed, the best language to use is C. Using another language is like
-using a non-standard feature: it will cause trouble for users.  Even if
-GCC supports the other language, users may find it inconvenient to have
-to install the compiler for that other language in order to build your
-program.  For example, if you write your program in C++, people will
-have to install the GNU C++ compiler in order to compile your program.
-
-   C has one other advantage over C++ and other compiled languages: more
-people know C, so more people will find it easy to read and modify the
-program if it is written in C.
-
-   So in general it is much better to use C, rather than the comparable
-alternatives.
-
-   But there are two exceptions to that conclusion:
-
-   * It is no problem to use another language to write a tool
-     specifically intended for use with that language.  That is because
-     the only people who want to build the tool will be those who have
-     installed the other language anyway.
-
-   * If an application is of interest only to a narrow part of the
-     community, then the question of which language it is written in has
-     less effect on other people, so you may as well please yourself.
-
-   Many programs are designed to be extensible: they include an
-interpreter for a language that is higher level than C. Often much of
-the program is written in that language, too.  The Emacs editor
-pioneered this technique.
-
-   The standard extensibility interpreter for GNU software is Guile
-(), which implements the language
-Scheme (an especially clean and simple dialect of Lisp).  Guile also
-includes bindings for GTK+/GNOME, making it practical to write modern
-GUI functionality within Guile.  We don't reject programs written in
-other "scripting languages" such as Perl and Python, but using Guile is
-very important for the overall consistency of the GNU system.
-
-
-File: standards.info,  Node: Compatibility,  Next: Using Extensions,  Prev: Source Language,  Up: Design Advice
-
-3.2 Compatibility with Other Implementations
-============================================
-
-With occasional exceptions, utility programs and libraries for GNU
-should be upward compatible with those in Berkeley Unix, and upward
-compatible with Standard C if Standard C specifies their behavior, and
-upward compatible with POSIX if POSIX specifies their behavior.
-
-   When these standards conflict, it is useful to offer compatibility
-modes for each of them.
-
-   Standard C and POSIX prohibit many kinds of extensions.  Feel free to
-make the extensions anyway, and include a '--ansi', '--posix', or
-'--compatible' option to turn them off.  However, if the extension has a
-significant chance of breaking any real programs or scripts, then it is
-not really upward compatible.  So you should try to redesign its
-interface to make it upward compatible.
-
-   Many GNU programs suppress extensions that conflict with POSIX if the
-environment variable 'POSIXLY_CORRECT' is defined (even if it is defined
-with a null value).  Please make your program recognize this variable if
-appropriate.
-
-   When a feature is used only by users (not by programs or command
-files), and it is done poorly in Unix, feel free to replace it
-completely with something totally different and better.  (For example,
-'vi' is replaced with Emacs.)  But it is nice to offer a compatible
-feature as well.  (There is a free 'vi' clone, so we offer it.)
-
-   Additional useful features are welcome regardless of whether there is
-any precedent for them.
-
-
-File: standards.info,  Node: Using Extensions,  Next: Standard C,  Prev: Compatibility,  Up: Design Advice
-
-3.3 Using Non-standard Features
-===============================
-
-Many GNU facilities that already exist support a number of convenient
-extensions over the comparable Unix facilities.  Whether to use these
-extensions in implementing your program is a difficult question.
-
-   On the one hand, using the extensions can make a cleaner program.  On
-the other hand, people will not be able to build the program unless the
-other GNU tools are available.  This might cause the program to work on
-fewer kinds of machines.
-
-   With some extensions, it might be easy to provide both alternatives.
-For example, you can define functions with a "keyword" 'INLINE' and
-define that as a macro to expand into either 'inline' or nothing,
-depending on the compiler.
-
-   In general, perhaps it is best not to use the extensions if you can
-straightforwardly do without them, but to use the extensions if they are
-a big improvement.
-
-   An exception to this rule are the large, established programs (such
-as Emacs) which run on a great variety of systems.  Using GNU extensions
-in such programs would make many users unhappy, so we don't do that.
-
-   Another exception is for programs that are used as part of
-compilation: anything that must be compiled with other compilers in
-order to bootstrap the GNU compilation facilities.  If these require the
-GNU compiler, then no one can compile them without having them installed
-already.  That would be extremely troublesome in certain cases.
-
-
-File: standards.info,  Node: Standard C,  Next: Conditional Compilation,  Prev: Using Extensions,  Up: Design Advice
-
-3.4 Standard C and Pre-Standard C
-=================================
-
-1989 Standard C is widespread enough now that it is ok to use its
-features in new programs.  There is one exception: do not ever use the
-"trigraph" feature of Standard C.
-
-   1999 Standard C is not widespread yet, so please do not require its
-features in programs.  It is ok to use its features if they are present.
-
-   However, it is easy to support pre-standard compilers in most
-programs, so if you know how to do that, feel free.  If a program you
-are maintaining has such support, you should try to keep it working.
-
-   To support pre-standard C, instead of writing function definitions in
-standard prototype form,
-
-     int
-     foo (int x, int y)
-     ...
-
-write the definition in pre-standard style like this,
-
-     int
-     foo (x, y)
-          int x, y;
-     ...
-
-and use a separate declaration to specify the argument prototype:
-
-     int foo (int, int);
-
-   You need such a declaration anyway, in a header file, to get the
-benefit of prototypes in all the files where the function is called.
-And once you have the declaration, you normally lose nothing by writing
-the function definition in the pre-standard style.
-
-   This technique does not work for integer types narrower than 'int'.
-If you think of an argument as being of a type narrower than 'int',
-declare it as 'int' instead.
-
-   There are a few special cases where this technique is hard to use.
-For example, if a function argument needs to hold the system type
-'dev_t', you run into trouble, because 'dev_t' is shorter than 'int' on
-some machines; but you cannot use 'int' instead, because 'dev_t' is
-wider than 'int' on some machines.  There is no type you can safely use
-on all machines in a non-standard definition.  The only way to support
-non-standard C and pass such an argument is to check the width of
-'dev_t' using Autoconf and choose the argument type accordingly.  This
-may not be worth the trouble.
-
-   In order to support pre-standard compilers that do not recognize
-prototypes, you may want to use a preprocessor macro like this:
-
-     /* Declare the prototype for a general external function.  */
-     #if defined (__STDC__) || defined (WINDOWSNT)
-     #define P_(proto) proto
-     #else
-     #define P_(proto) ()
-     #endif
-
-
-File: standards.info,  Node: Conditional Compilation,  Prev: Standard C,  Up: Design Advice
-
-3.5 Conditional Compilation
-===========================
-
-When supporting configuration options already known when building your
-program we prefer using 'if (... )' over conditional compilation, as in
-the former case the compiler is able to perform more extensive checking
-of all possible code paths.
-
-   For example, please write
-
-       if (HAS_FOO)
-         ...
-       else
-         ...
-
-instead of:
-
-       #ifdef HAS_FOO
-         ...
-       #else
-         ...
-       #endif
-
-   A modern compiler such as GCC will generate exactly the same code in
-both cases, and we have been using similar techniques with good success
-in several projects.  Of course, the former method assumes that
-'HAS_FOO' is defined as either 0 or 1.
-
-   While this is not a silver bullet solving all portability problems,
-and is not always appropriate, following this policy would have saved
-GCC developers many hours, or even days, per year.
-
-   In the case of function-like macros like 'REVERSIBLE_CC_MODE' in GCC
-which cannot be simply used in 'if (...)' statements, there is an easy
-workaround.  Simply introduce another macro 'HAS_REVERSIBLE_CC_MODE' as
-in the following example:
-
-       #ifdef REVERSIBLE_CC_MODE
-       #define HAS_REVERSIBLE_CC_MODE 1
-       #else
-       #define HAS_REVERSIBLE_CC_MODE 0
-       #endif
-
-
-File: standards.info,  Node: Program Behavior,  Next: Writing C,  Prev: Design Advice,  Up: Top
-
-4 Program Behavior for All Programs
-***********************************
-
-This chapter describes conventions for writing robust software.  It also
-describes general standards for error messages, the command line
-interface, and how libraries should behave.
-
-* Menu:
-
-* Non-GNU Standards::           We consider standards such as POSIX;
-                                  we don't "obey" them.
-* Semantics::                   Writing robust programs.
-* Libraries::                   Library behavior.
-* Errors::                      Formatting error messages.
-* User Interfaces::             Standards about interfaces generally.
-* Graphical Interfaces::        Standards for graphical interfaces.
-* Command-Line Interfaces::     Standards for command line interfaces.
-* Option Table::                Table of long options.
-* OID Allocations::             Table of OID slots for GNU.
-* Memory Usage::                When and how to care about memory needs.
-* File Usage::                  Which files to use, and where.
-
-
-File: standards.info,  Node: Non-GNU Standards,  Next: Semantics,  Up: Program Behavior
-
-4.1 Non-GNU Standards
-=====================
-
-The GNU Project regards standards published by other organizations as
-suggestions, not orders.  We consider those standards, but we do not
-"obey" them.  In developing a GNU program, you should implement an
-outside standard's specifications when that makes the GNU system better
-overall in an objective sense.  When it doesn't, you shouldn't.
-
-   In most cases, following published standards is convenient for
-users--it means that their programs or scripts will work more portably.
-For instance, GCC implements nearly all the features of Standard C as
-specified by that standard.  C program developers would be unhappy if it
-did not.  And GNU utilities mostly follow specifications of POSIX.2;
-shell script writers and users would be unhappy if our programs were
-incompatible.
-
-   But we do not follow either of these specifications rigidly, and
-there are specific points on which we decided not to follow them, so as
-to make the GNU system better for users.
-
-   For instance, Standard C says that nearly all extensions to C are
-prohibited.  How silly!  GCC implements many extensions, some of which
-were later adopted as part of the standard.  If you want these
-constructs to give an error message as "required" by the standard, you
-must specify '--pedantic', which was implemented only so that we can say
-"GCC is a 100% implementation of the standard," not because there is any
-reason to actually use it.
-
-   POSIX.2 specifies that 'df' and 'du' must output sizes by default in
-units of 512 bytes.  What users want is units of 1k, so that is what we
-do by default.  If you want the ridiculous behavior "required" by POSIX,
-you must set the environment variable 'POSIXLY_CORRECT' (which was
-originally going to be named 'POSIX_ME_HARDER').
-
-   GNU utilities also depart from the letter of the POSIX.2
-specification when they support long-named command-line options, and
-intermixing options with ordinary arguments.  This minor incompatibility
-with POSIX is never a problem in practice, and it is very useful.
-
-   In particular, don't reject a new feature, or remove an old one,
-merely because a standard says it is "forbidden" or "deprecated."
-
-
-File: standards.info,  Node: Semantics,  Next: Libraries,  Prev: Non-GNU Standards,  Up: Program Behavior
-
-4.2 Writing Robust Programs
-===========================
-
-Avoid arbitrary limits on the length or number of _any_ data structure,
-including file names, lines, files, and symbols, by allocating all data
-structures dynamically.  In most Unix utilities, "long lines are
-silently truncated".  This is not acceptable in a GNU utility.
-
-   Utilities reading files should not drop NUL characters, or any other
-nonprinting characters _including those with codes above 0177_.  The
-only sensible exceptions would be utilities specifically intended for
-interface to certain types of terminals or printers that can't handle
-those characters.  Whenever possible, try to make programs work properly
-with sequences of bytes that represent multibyte characters, using
-encodings such as UTF-8 and others.
-
-   Check every system call for an error return, unless you know you wish
-to ignore errors.  Include the system error text (from 'perror' or
-equivalent) in _every_ error message resulting from a failing system
-call, as well as the name of the file if any and the name of the
-utility.  Just "cannot open foo.c" or "stat failed" is not sufficient.
-
-   Check every call to 'malloc' or 'realloc' to see if it returned zero.
-Check 'realloc' even if you are making the block smaller; in a system
-that rounds block sizes to a power of 2, 'realloc' may get a different
-block if you ask for less space.
-
-   In Unix, 'realloc' can destroy the storage block if it returns zero.
-GNU 'realloc' does not have this bug: if it fails, the original block is
-unchanged.  Feel free to assume the bug is fixed.  If you wish to run
-your program on Unix, and wish to avoid lossage in this case, you can
-use the GNU 'malloc'.
-
-   You must expect 'free' to alter the contents of the block that was
-freed.  Anything you want to fetch from the block, you must fetch before
-calling 'free'.
-
-   If 'malloc' fails in a noninteractive program, make that a fatal
-error.  In an interactive program (one that reads commands from the
-user), it is better to abort the command and return to the command
-reader loop.  This allows the user to kill other processes to free up
-virtual memory, and then try the command again.
-
-   Use 'getopt_long' to decode arguments, unless the argument syntax
-makes this unreasonable.
-
-   When static storage is to be written in during program execution, use
-explicit C code to initialize it.  Reserve C initialized declarations
-for data that will not be changed.
-
-   Try to avoid low-level interfaces to obscure Unix data structures
-(such as file directories, utmp, or the layout of kernel memory), since
-these are less likely to work compatibly.  If you need to find all the
-files in a directory, use 'readdir' or some other high-level interface.
-These are supported compatibly by GNU.
-
-   The preferred signal handling facilities are the BSD variant of
-'signal', and the POSIX 'sigaction' function; the alternative USG
-'signal' interface is an inferior design.
-
-   Nowadays, using the POSIX signal functions may be the easiest way to
-make a program portable.  If you use 'signal', then on GNU/Linux systems
-running GNU libc version 1, you should include 'bsd/signal.h' instead of
-'signal.h', so as to get BSD behavior.  It is up to you whether to
-support systems where 'signal' has only the USG behavior, or give up on
-them.
-
-   In error checks that detect "impossible" conditions, just abort.
-There is usually no point in printing any message.  These checks
-indicate the existence of bugs.  Whoever wants to fix the bugs will have
-to read the source code and run a debugger.  So explain the problem with
-comments in the source.  The relevant data will be in variables, which
-are easy to examine with the debugger, so there is no point moving them
-elsewhere.
-
-   Do not use a count of errors as the exit status for a program.  _That
-does not work_, because exit status values are limited to 8 bits (0
-through 255).  A single run of the program might have 256 errors; if you
-try to return 256 as the exit status, the parent process will see 0 as
-the status, and it will appear that the program succeeded.
-
-   If you make temporary files, check the 'TMPDIR' environment variable;
-if that variable is defined, use the specified directory instead of
-'/tmp'.
-
-   In addition, be aware that there is a possible security problem when
-creating temporary files in world-writable directories.  In C, you can
-avoid this problem by creating temporary files in this manner:
-
-     fd = open (filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
-
-or by using the 'mkstemps' function from libiberty.
-
-   In bash, use 'set -C' to avoid this problem.
-
-
-File: standards.info,  Node: Libraries,  Next: Errors,  Prev: Semantics,  Up: Program Behavior
-
-4.3 Library Behavior
-====================
-
-Try to make library functions reentrant.  If they need to do dynamic
-storage allocation, at least try to avoid any nonreentrancy aside from
-that of 'malloc' itself.
-
-   Here are certain name conventions for libraries, to avoid name
-conflicts.
-
-   Choose a name prefix for the library, more than two characters long.
-All external function and variable names should start with this prefix.
-In addition, there should only be one of these in any given library
-member.  This usually means putting each one in a separate source file.
-
-   An exception can be made when two external symbols are always used
-together, so that no reasonable program could use one without the other;
-then they can both go in the same file.
-
-   External symbols that are not documented entry points for the user
-should have names beginning with '_'.  The '_' should be followed by the
-chosen name prefix for the library, to prevent collisions with other
-libraries.  These can go in the same files with user entry points if you
-like.
-
-   Static functions and variables can be used as you like and need not
-fit any naming convention.
-
-
-File: standards.info,  Node: Errors,  Next: User Interfaces,  Prev: Libraries,  Up: Program Behavior
-
-4.4 Formatting Error Messages
-=============================
-
-Error messages from compilers should look like this:
-
-     SOURCE-FILE-NAME:LINENO: MESSAGE
-
-If you want to mention the column number, use one of these formats:
-
-     SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
-     SOURCE-FILE-NAME:LINENO.COLUMN: MESSAGE
-
-
-Line numbers should start from 1 at the beginning of the file, and
-column numbers should start from 1 at the beginning of the line.  (Both
-of these conventions are chosen for compatibility.)  Calculate column
-numbers assuming that space and all ASCII printing characters have equal
-width, and assuming tab stops every 8 columns.
-
-   The error message can also give both the starting and ending
-positions of the erroneous text.  There are several formats so that you
-can avoid redundant information such as a duplicate line number.  Here
-are the possible formats:
-
-     SOURCE-FILE-NAME:LINENO-1.COLUMN-1-LINENO-2.COLUMN-2: MESSAGE
-     SOURCE-FILE-NAME:LINENO-1.COLUMN-1-COLUMN-2: MESSAGE
-     SOURCE-FILE-NAME:LINENO-1-LINENO-2: MESSAGE
-
-When an error is spread over several files, you can use this format:
-
-     FILE-1:LINENO-1.COLUMN-1-FILE-2:LINENO-2.COLUMN-2: MESSAGE
-
-   Error messages from other noninteractive programs should look like
-this:
-
-     PROGRAM:SOURCE-FILE-NAME:LINENO: MESSAGE
-
-when there is an appropriate source file, or like this:
-
-     PROGRAM: MESSAGE
-
-when there is no relevant source file.
-
-   If you want to mention the column number, use this format:
-
-     PROGRAM:SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
-
-   In an interactive program (one that is reading commands from a
-terminal), it is better not to include the program name in an error
-message.  The place to indicate which program is running is in the
-prompt or with the screen layout.  (When the same program runs with
-input from a source other than a terminal, it is not interactive and
-would do best to print error messages using the noninteractive style.)
-
-   The string MESSAGE should not begin with a capital letter when it
-follows a program name and/or file name, because that isn't the
-beginning of a sentence.  (The sentence conceptually starts at the
-beginning of the line.)  Also, it should not end with a period.
-
-   Error messages from interactive programs, and other messages such as
-usage messages, should start with a capital letter.  But they should not
-end with a period.
-
-
-File: standards.info,  Node: User Interfaces,  Next: Graphical Interfaces,  Prev: Errors,  Up: Program Behavior
-
-4.5 Standards for Interfaces Generally
-======================================
-
-Please don't make the behavior of a utility depend on the name used to
-invoke it.  It is useful sometimes to make a link to a utility with a
-different name, and that should not change what it does.
-
-   Instead, use a run time option or a compilation switch or both to
-select among the alternate behaviors.
-
-   Likewise, please don't make the behavior of the program depend on the
-type of output device it is used with.  Device independence is an
-important principle of the system's design; do not compromise it merely
-to save someone from typing an option now and then.  (Variation in error
-message syntax when using a terminal is ok, because that is a side issue
-that people do not depend on.)
-
-   If you think one behavior is most useful when the output is to a
-terminal, and another is most useful when the output is a file or a
-pipe, then it is usually best to make the default behavior the one that
-is useful with output to a terminal, and have an option for the other
-behavior.
-
-   Compatibility requires certain programs to depend on the type of
-output device.  It would be disastrous if 'ls' or 'sh' did not do so in
-the way all users expect.  In some of these cases, we supplement the
-program with a preferred alternate version that does not depend on the
-output device type.  For example, we provide a 'dir' program much like
-'ls' except that its default output format is always multi-column
-format.
-
-
-File: standards.info,  Node: Graphical Interfaces,  Next: Command-Line Interfaces,  Prev: User Interfaces,  Up: Program Behavior
-
-4.6 Standards for Graphical Interfaces
-======================================
-
-When you write a program that provides a graphical user interface,
-please make it work with the X Window System and the GTK+ toolkit unless
-the functionality specifically requires some alternative (for example,
-"displaying jpeg images while in console mode").
-
-   In addition, please provide a command-line interface to control the
-functionality.  (In many cases, the graphical user interface can be a
-separate program which invokes the command-line program.)  This is so
-that the same jobs can be done from scripts.
-
-   Please also consider providing a D-bus interface for use from other
-running programs, such as within GNOME. (GNOME used to use CORBA for
-this, but that is being phased out.)  In addition, consider providing a
-library interface (for use from C), and perhaps a keyboard-driven
-console interface (for use by users from console mode).  Once you are
-doing the work to provide the functionality and the graphical interface,
-these won't be much extra work.
-
-
-File: standards.info,  Node: Command-Line Interfaces,  Next: Option Table,  Prev: Graphical Interfaces,  Up: Program Behavior
-
-4.7 Standards for Command Line Interfaces
-=========================================
-
-It is a good idea to follow the POSIX guidelines for the command-line
-options of a program.  The easiest way to do this is to use 'getopt' to
-parse them.  Note that the GNU version of 'getopt' will normally permit
-options anywhere among the arguments unless the special argument '--' is
-used.  This is not what POSIX specifies; it is a GNU extension.
-
-   Please define long-named options that are equivalent to the
-single-letter Unix-style options.  We hope to make GNU more user
-friendly this way.  This is easy to do with the GNU function
-'getopt_long'.
-
-   One of the advantages of long-named options is that they can be
-consistent from program to program.  For example, users should be able
-to expect the "verbose" option of any GNU program which has one, to be
-spelled precisely '--verbose'.  To achieve this uniformity, look at the
-table of common long-option names when you choose the option names for
-your program (*note Option Table::).
-
-   It is usually a good idea for file names given as ordinary arguments
-to be input files only; any output files would be specified using
-options (preferably '-o' or '--output').  Even if you allow an output
-file name as an ordinary argument for compatibility, try to provide an
-option as another way to specify it.  This will lead to more consistency
-among GNU utilities, and fewer idiosyncrasies for users to remember.
-
-   All programs should support two standard options: '--version' and
-'--help'.  CGI programs should accept these as command-line options, and
-also if given as the 'PATH_INFO'; for instance, visiting
- in a browser should output the same
-information as invoking 'p.cgi --help' from the command line.
-
-* Menu:
-
-* --version::       The standard output for -version.
-* --help::          The standard output for -help.
-
-
-File: standards.info,  Node: --version,  Next: --help,  Up: Command-Line Interfaces
-
-4.7.1 '--version'
------------------
-
-The standard '--version' option should direct the program to print
-information about its name, version, origin and legal status, all on
-standard output, and then exit successfully.  Other options and
-arguments should be ignored once this is seen, and the program should
-not perform its normal function.
-
-   The first line is meant to be easy for a program to parse; the
-version number proper starts after the last space.  In addition, it
-contains the canonical name for this program, in this format:
-
-     GNU Emacs 19.30
-
-The program's name should be a constant string; _don't_ compute it from
-'argv[0]'.  The idea is to state the standard or canonical name for the
-program, not its file name.  There are other ways to find out the
-precise file name where a command is found in 'PATH'.
-
-   If the program is a subsidiary part of a larger package, mention the
-package name in parentheses, like this:
-
-     emacsserver (GNU Emacs) 19.30
-
-If the package has a version number which is different from this
-program's version number, you can mention the package version number
-just before the close-parenthesis.
-
-   If you _need_ to mention the version numbers of libraries which are
-distributed separately from the package which contains this program, you
-can do so by printing an additional line of version info for each
-library you want to mention.  Use the same format for these lines as for
-the first line.
-
-   Please do not mention all of the libraries that the program uses
-"just for completeness"--that would produce a lot of unhelpful clutter.
-Please mention library version numbers only if you find in practice that
-they are very important to you in debugging.
-
-   The following line, after the version number line or lines, should be
-a copyright notice.  If more than one copyright notice is called for,
-put each on a separate line.
-
-   Next should follow a line stating the license, preferably using one
-of abbrevations below, and a brief statement that the program is free
-software, and that users are free to copy and change it.  Also mention
-that there is no warranty, to the extent permitted by law.  See
-recommended wording below.
-
-   It is ok to finish the output with a list of the major authors of the
-program, as a way of giving credit.
-
-   Here's an example of output that follows these rules:
-
-     GNU hello 2.3
-     Copyright (C) 2007 Free Software Foundation, Inc.
-     License GPLv3+: GNU GPL version 3 or later 
-     This is free software: you are free to change and redistribute it.
-     There is NO WARRANTY, to the extent permitted by law.
-
-   You should adapt this to your program, of course, filling in the
-proper year, copyright holder, name of program, and the references to
-distribution terms, and changing the rest of the wording as necessary.
-
-   This copyright notice only needs to mention the most recent year in
-which changes were made--there's no need to list the years for previous
-versions' changes.  You don't have to mention the name of the program in
-these notices, if that is inconvenient, since it appeared in the first
-line.  (The rules are different for copyright notices in source files;
-*note (maintain)Copyright Notices::.)
-
-   Translations of the above lines must preserve the validity of the
-copyright notices (*note Internationalization::).  If the translation's
-character set supports it, the '(C)' should be replaced with the
-copyright symbol, as follows:
-
-   (the official copyright symbol, which is the letter C in a circle);
-
-   Write the word "Copyright" exactly like that, in English.  Do not
-translate it into another language.  International treaties recognize
-the English word "Copyright"; translations into other languages do not
-have legal significance.
-
-   Finally, here is the table of our suggested license abbreviations.
-Any abbreviation can be followed by 'vVERSION[+]', meaning that
-particular version, or later versions with the '+', as shown above.
-
-   In the case of exceptions for extra permissions with the GPL, we use
-'/' for a separator; the version number can follow the license
-abbreviation as usual, as in the examples below.
-
-GPL
-     GNU General Public License, .
-
-LGPL
-     GNU Lesser General Public License,
-     .
-
-GPL/Ada
-     GNU GPL with the exception for Ada.
-
-Apache
-     The Apache Software Foundation license,
-     .
-
-Artistic
-     The Artistic license used for Perl,
-     .
-
-Expat
-     The Expat license, .
-
-MPL
-     The Mozilla Public License, .
-
-OBSD
-     The original (4-clause) BSD license, incompatible with the GNU GPL
-     .
-
-PHP
-     The license used for PHP, .
-
-public domain
-     The non-license that is being in the public domain,
-     .
-
-Python
-     The license for Python, .
-
-RBSD
-     The revised (3-clause) BSD, compatible with the GNU GPL,
-     .
-
-X11
-     The simple non-copyleft license used for most versions of the X
-     Window System, .
-
-Zlib
-     The license for Zlib, .
-
-   More information about these licenses and many more are on the GNU
-licensing web pages, .
-
-
-File: standards.info,  Node: --help,  Prev: --version,  Up: Command-Line Interfaces
-
-4.7.2 '--help'
---------------
-
-The standard '--help' option should output brief documentation for how
-to invoke the program, on standard output, then exit successfully.
-Other options and arguments should be ignored once this is seen, and the
-program should not perform its normal function.
-
-   Near the end of the '--help' option's output, please place lines
-giving the email address for bug reports, the package's home page
-(normally 'http://www.gnu.org/software/PKG', and the general page for
-help using GNU programs.  The format should be like this:
-
-     Report bugs to: MAILING-ADDRESS
-     PKG home page: 
-     General help using GNU software: 
-
-   It is ok to mention other appropriate mailing lists and web pages.
-
-
-File: standards.info,  Node: Option Table,  Next: OID Allocations,  Prev: Command-Line Interfaces,  Up: Program Behavior
-
-4.8 Table of Long Options
-=========================
-
-Here is a table of long options used by GNU programs.  It is surely
-incomplete, but we aim to list all the options that a new program might
-want to be compatible with.  If you use names not already in the table,
-please send  a list of them, with their meanings,
-so we can update the table.
-
-'after-date'
-     '-N' in 'tar'.
-
-'all'
-     '-a' in 'du', 'ls', 'nm', 'stty', 'uname', and 'unexpand'.
-
-'all-text'
-     '-a' in 'diff'.
-
-'almost-all'
-     '-A' in 'ls'.
-
-'append'
-     '-a' in 'etags', 'tee', 'time'; '-r' in 'tar'.
-
-'archive'
-     '-a' in 'cp'.
-
-'archive-name'
-     '-n' in 'shar'.
-
-'arglength'
-     '-l' in 'm4'.
-
-'ascii'
-     '-a' in 'diff'.
-
-'assign'
-     '-v' in 'gawk'.
-
-'assume-new'
-     '-W' in 'make'.
-
-'assume-old'
-     '-o' in 'make'.
-
-'auto-check'
-     '-a' in 'recode'.
-
-'auto-pager'
-     '-a' in 'wdiff'.
-
-'auto-reference'
-     '-A' in 'ptx'.
-
-'avoid-wraps'
-     '-n' in 'wdiff'.
-
-'background'
-     For server programs, run in the background.
-
-'backward-search'
-     '-B' in 'ctags'.
-
-'basename'
-     '-f' in 'shar'.
-
-'batch'
-     Used in GDB.
-
-'baud'
-     Used in GDB.
-
-'before'
-     '-b' in 'tac'.
-
-'binary'
-     '-b' in 'cpio' and 'diff'.
-
-'bits-per-code'
-     '-b' in 'shar'.
-
-'block-size'
-     Used in 'cpio' and 'tar'.
-
-'blocks'
-     '-b' in 'head' and 'tail'.
-
-'break-file'
-     '-b' in 'ptx'.
-
-'brief'
-     Used in various programs to make output shorter.
-
-'bytes'
-     '-c' in 'head', 'split', and 'tail'.
-
-'c++'
-     '-C' in 'etags'.
-
-'catenate'
-     '-A' in 'tar'.
-
-'cd'
-     Used in various programs to specify the directory to use.
-
-'changes'
-     '-c' in 'chgrp' and 'chown'.
-
-'classify'
-     '-F' in 'ls'.
-
-'colons'
-     '-c' in 'recode'.
-
-'command'
-     '-c' in 'su'; '-x' in GDB.
-
-'compare'
-     '-d' in 'tar'.
-
-'compat'
-     Used in 'gawk'.
-
-'compress'
-     '-Z' in 'tar' and 'shar'.
-
-'concatenate'
-     '-A' in 'tar'.
-
-'confirmation'
-     '-w' in 'tar'.
-
-'context'
-     Used in 'diff'.
-
-'copyleft'
-     '-W copyleft' in 'gawk'.
-
-'copyright'
-     '-C' in 'ptx', 'recode', and 'wdiff'; '-W copyright' in 'gawk'.
-
-'core'
-     Used in GDB.
-
-'count'
-     '-q' in 'who'.
-
-'count-links'
-     '-l' in 'du'.
-
-'create'
-     Used in 'tar' and 'cpio'.
-
-'cut-mark'
-     '-c' in 'shar'.
-
-'cxref'
-     '-x' in 'ctags'.
-
-'date'
-     '-d' in 'touch'.
-
-'debug'
-     '-d' in 'make' and 'm4'; '-t' in Bison.
-
-'define'
-     '-D' in 'm4'.
-
-'defines'
-     '-d' in Bison and 'ctags'.
-
-'delete'
-     '-D' in 'tar'.
-
-'dereference'
-     '-L' in 'chgrp', 'chown', 'cpio', 'du', 'ls', and 'tar'.
-
-'dereference-args'
-     '-D' in 'du'.
-
-'device'
-     Specify an I/O device (special file name).
-
-'diacritics'
-     '-d' in 'recode'.
-
-'dictionary-order'
-     '-d' in 'look'.
-
-'diff'
-     '-d' in 'tar'.
-
-'digits'
-     '-n' in 'csplit'.
-
-'directory'
-     Specify the directory to use, in various programs.  In 'ls', it
-     means to show directories themselves rather than their contents.
-     In 'rm' and 'ln', it means to not treat links to directories
-     specially.
-
-'discard-all'
-     '-x' in 'strip'.
-
-'discard-locals'
-     '-X' in 'strip'.
-
-'dry-run'
-     '-n' in 'make'.
-
-'ed'
-     '-e' in 'diff'.
-
-'elide-empty-files'
-     '-z' in 'csplit'.
-
-'end-delete'
-     '-x' in 'wdiff'.
-
-'end-insert'
-     '-z' in 'wdiff'.
-
-'entire-new-file'
-     '-N' in 'diff'.
-
-'environment-overrides'
-     '-e' in 'make'.
-
-'eof'
-     '-e' in 'xargs'.
-
-'epoch'
-     Used in GDB.
-
-'error-limit'
-     Used in 'makeinfo'.
-
-'error-output'
-     '-o' in 'm4'.
-
-'escape'
-     '-b' in 'ls'.
-
-'exclude-from'
-     '-X' in 'tar'.
-
-'exec'
-     Used in GDB.
-
-'exit'
-     '-x' in 'xargs'.
-
-'exit-0'
-     '-e' in 'unshar'.
-
-'expand-tabs'
-     '-t' in 'diff'.
-
-'expression'
-     '-e' in 'sed'.
-
-'extern-only'
-     '-g' in 'nm'.
-
-'extract'
-     '-i' in 'cpio'; '-x' in 'tar'.
-
-'faces'
-     '-f' in 'finger'.
-
-'fast'
-     '-f' in 'su'.
-
-'fatal-warnings'
-     '-E' in 'm4'.
-
-'file'
-     '-f' in 'gawk', 'info', 'make', 'mt', 'sed', and 'tar'.
-
-'field-separator'
-     '-F' in 'gawk'.
-
-'file-prefix'
-     '-b' in Bison.
-
-'file-type'
-     '-F' in 'ls'.
-
-'files-from'
-     '-T' in 'tar'.
-
-'fill-column'
-     Used in 'makeinfo'.
-
-'flag-truncation'
-     '-F' in 'ptx'.
-
-'fixed-output-files'
-     '-y' in Bison.
-
-'follow'
-     '-f' in 'tail'.
-
-'footnote-style'
-     Used in 'makeinfo'.
-
-'force'
-     '-f' in 'cp', 'ln', 'mv', and 'rm'.
-
-'force-prefix'
-     '-F' in 'shar'.
-
-'foreground'
-     For server programs, run in the foreground; in other words, don't
-     do anything special to run the server in the background.
-
-'format'
-     Used in 'ls', 'time', and 'ptx'.
-
-'freeze-state'
-     '-F' in 'm4'.
-
-'fullname'
-     Used in GDB.
-
-'gap-size'
-     '-g' in 'ptx'.
-
-'get'
-     '-x' in 'tar'.
-
-'graphic'
-     '-i' in 'ul'.
-
-'graphics'
-     '-g' in 'recode'.
-
-'group'
-     '-g' in 'install'.
-
-'gzip'
-     '-z' in 'tar' and 'shar'.
-
-'hashsize'
-     '-H' in 'm4'.
-
-'header'
-     '-h' in 'objdump' and 'recode'
-
-'heading'
-     '-H' in 'who'.
-
-'help'
-     Used to ask for brief usage information.
-
-'here-delimiter'
-     '-d' in 'shar'.
-
-'hide-control-chars'
-     '-q' in 'ls'.
-
-'html'
-     In 'makeinfo', output HTML.
-
-'idle'
-     '-u' in 'who'.
-
-'ifdef'
-     '-D' in 'diff'.
-
-'ignore'
-     '-I' in 'ls'; '-x' in 'recode'.
-
-'ignore-all-space'
-     '-w' in 'diff'.
-
-'ignore-backups'
-     '-B' in 'ls'.
-
-'ignore-blank-lines'
-     '-B' in 'diff'.
-
-'ignore-case'
-     '-f' in 'look' and 'ptx'; '-i' in 'diff' and 'wdiff'.
-
-'ignore-errors'
-     '-i' in 'make'.
-
-'ignore-file'
-     '-i' in 'ptx'.
-
-'ignore-indentation'
-     '-I' in 'etags'.
-
-'ignore-init-file'
-     '-f' in Oleo.
-
-'ignore-interrupts'
-     '-i' in 'tee'.
-
-'ignore-matching-lines'
-     '-I' in 'diff'.
-
-'ignore-space-change'
-     '-b' in 'diff'.
-
-'ignore-zeros'
-     '-i' in 'tar'.
-
-'include'
-     '-i' in 'etags'; '-I' in 'm4'.
-
-'include-dir'
-     '-I' in 'make'.
-
-'incremental'
-     '-G' in 'tar'.
-
-'info'
-     '-i', '-l', and '-m' in Finger.
-
-'init-file'
-     In some programs, specify the name of the file to read as the
-     user's init file.
-
-'initial'
-     '-i' in 'expand'.
-
-'initial-tab'
-     '-T' in 'diff'.
-
-'inode'
-     '-i' in 'ls'.
-
-'interactive'
-     '-i' in 'cp', 'ln', 'mv', 'rm'; '-e' in 'm4'; '-p' in 'xargs'; '-w'
-     in 'tar'.
-
-'intermix-type'
-     '-p' in 'shar'.
-
-'iso-8601'
-     Used in 'date'
-
-'jobs'
-     '-j' in 'make'.
-
-'just-print'
-     '-n' in 'make'.
-
-'keep-going'
-     '-k' in 'make'.
-
-'keep-files'
-     '-k' in 'csplit'.
-
-'kilobytes'
-     '-k' in 'du' and 'ls'.
-
-'language'
-     '-l' in 'etags'.
-
-'less-mode'
-     '-l' in 'wdiff'.
-
-'level-for-gzip'
-     '-g' in 'shar'.
-
-'line-bytes'
-     '-C' in 'split'.
-
-'lines'
-     Used in 'split', 'head', and 'tail'.
-
-'link'
-     '-l' in 'cpio'.
-
-'lint'
-'lint-old'
-     Used in 'gawk'.
-
-'list'
-     '-t' in 'cpio'; '-l' in 'recode'.
-
-'list'
-     '-t' in 'tar'.
-
-'literal'
-     '-N' in 'ls'.
-
-'load-average'
-     '-l' in 'make'.
-
-'login'
-     Used in 'su'.
-
-'machine'
-     Used in 'uname'.
-
-'macro-name'
-     '-M' in 'ptx'.
-
-'mail'
-     '-m' in 'hello' and 'uname'.
-
-'make-directories'
-     '-d' in 'cpio'.
-
-'makefile'
-     '-f' in 'make'.
-
-'mapped'
-     Used in GDB.
-
-'max-args'
-     '-n' in 'xargs'.
-
-'max-chars'
-     '-n' in 'xargs'.
-
-'max-lines'
-     '-l' in 'xargs'.
-
-'max-load'
-     '-l' in 'make'.
-
-'max-procs'
-     '-P' in 'xargs'.
-
-'mesg'
-     '-T' in 'who'.
-
-'message'
-     '-T' in 'who'.
-
-'minimal'
-     '-d' in 'diff'.
-
-'mixed-uuencode'
-     '-M' in 'shar'.
-
-'mode'
-     '-m' in 'install', 'mkdir', and 'mkfifo'.
-
-'modification-time'
-     '-m' in 'tar'.
-
-'multi-volume'
-     '-M' in 'tar'.
-
-'name-prefix'
-     '-a' in Bison.
-
-'nesting-limit'
-     '-L' in 'm4'.
-
-'net-headers'
-     '-a' in 'shar'.
-
-'new-file'
-     '-W' in 'make'.
-
-'no-builtin-rules'
-     '-r' in 'make'.
-
-'no-character-count'
-     '-w' in 'shar'.
-
-'no-check-existing'
-     '-x' in 'shar'.
-
-'no-common'
-     '-3' in 'wdiff'.
-
-'no-create'
-     '-c' in 'touch'.
-
-'no-defines'
-     '-D' in 'etags'.
-
-'no-deleted'
-     '-1' in 'wdiff'.
-
-'no-dereference'
-     '-d' in 'cp'.
-
-'no-inserted'
-     '-2' in 'wdiff'.
-
-'no-keep-going'
-     '-S' in 'make'.
-
-'no-lines'
-     '-l' in Bison.
-
-'no-piping'
-     '-P' in 'shar'.
-
-'no-prof'
-     '-e' in 'gprof'.
-
-'no-regex'
-     '-R' in 'etags'.
-
-'no-sort'
-     '-p' in 'nm'.
-
-'no-splash'
-     Don't print a startup splash screen.
-
-'no-split'
-     Used in 'makeinfo'.
-
-'no-static'
-     '-a' in 'gprof'.
-
-'no-time'
-     '-E' in 'gprof'.
-
-'no-timestamp'
-     '-m' in 'shar'.
-
-'no-validate'
-     Used in 'makeinfo'.
-
-'no-wait'
-     Used in 'emacsclient'.
-
-'no-warn'
-     Used in various programs to inhibit warnings.
-
-'node'
-     '-n' in 'info'.
-
-'nodename'
-     '-n' in 'uname'.
-
-'nonmatching'
-     '-f' in 'cpio'.
-
-'nstuff'
-     '-n' in 'objdump'.
-
-'null'
-     '-0' in 'xargs'.
-
-'number'
-     '-n' in 'cat'.
-
-'number-nonblank'
-     '-b' in 'cat'.
-
-'numeric-sort'
-     '-n' in 'nm'.
-
-'numeric-uid-gid'
-     '-n' in 'cpio' and 'ls'.
-
-'nx'
-     Used in GDB.
-
-'old-archive'
-     '-o' in 'tar'.
-
-'old-file'
-     '-o' in 'make'.
-
-'one-file-system'
-     '-l' in 'tar', 'cp', and 'du'.
-
-'only-file'
-     '-o' in 'ptx'.
-
-'only-prof'
-     '-f' in 'gprof'.
-
-'only-time'
-     '-F' in 'gprof'.
-
-'options'
-     '-o' in 'getopt', 'fdlist', 'fdmount', 'fdmountd', and 'fdumount'.
-
-'output'
-     In various programs, specify the output file name.
-
-'output-prefix'
-     '-o' in 'shar'.
-
-'override'
-     '-o' in 'rm'.
-
-'overwrite'
-     '-c' in 'unshar'.
-
-'owner'
-     '-o' in 'install'.
-
-'paginate'
-     '-l' in 'diff'.
-
-'paragraph-indent'
-     Used in 'makeinfo'.
-
-'parents'
-     '-p' in 'mkdir' and 'rmdir'.
-
-'pass-all'
-     '-p' in 'ul'.
-
-'pass-through'
-     '-p' in 'cpio'.
-
-'port'
-     '-P' in 'finger'.
-
-'portability'
-     '-c' in 'cpio' and 'tar'.
-
-'posix'
-     Used in 'gawk'.
-
-'prefix-builtins'
-     '-P' in 'm4'.
-
-'prefix'
-     '-f' in 'csplit'.
-
-'preserve'
-     Used in 'tar' and 'cp'.
-
-'preserve-environment'
-     '-p' in 'su'.
-
-'preserve-modification-time'
-     '-m' in 'cpio'.
-
-'preserve-order'
-     '-s' in 'tar'.
-
-'preserve-permissions'
-     '-p' in 'tar'.
-
-'print'
-     '-l' in 'diff'.
-
-'print-chars'
-     '-L' in 'cmp'.
-
-'print-data-base'
-     '-p' in 'make'.
-
-'print-directory'
-     '-w' in 'make'.
-
-'print-file-name'
-     '-o' in 'nm'.
-
-'print-symdefs'
-     '-s' in 'nm'.
-
-'printer'
-     '-p' in 'wdiff'.
-
-'prompt'
-     '-p' in 'ed'.
-
-'proxy'
-     Specify an HTTP proxy.
-
-'query-user'
-     '-X' in 'shar'.
-
-'question'
-     '-q' in 'make'.
-
-'quiet'
-     Used in many programs to inhibit the usual output.  Every program
-     accepting '--quiet' should accept '--silent' as a synonym.
-
-'quiet-unshar'
-     '-Q' in 'shar'
-
-'quote-name'
-     '-Q' in 'ls'.
-
-'rcs'
-     '-n' in 'diff'.
-
-'re-interval'
-     Used in 'gawk'.
-
-'read-full-blocks'
-     '-B' in 'tar'.
-
-'readnow'
-     Used in GDB.
-
-'recon'
-     '-n' in 'make'.
-
-'record-number'
-     '-R' in 'tar'.
-
-'recursive'
-     Used in 'chgrp', 'chown', 'cp', 'ls', 'diff', and 'rm'.
-
-'reference'
-     '-r' in 'touch'.
-
-'references'
-     '-r' in 'ptx'.
-
-'regex'
-     '-r' in 'tac' and 'etags'.
-
-'release'
-     '-r' in 'uname'.
-
-'reload-state'
-     '-R' in 'm4'.
-
-'relocation'
-     '-r' in 'objdump'.
-
-'rename'
-     '-r' in 'cpio'.
-
-'replace'
-     '-i' in 'xargs'.
-
-'report-identical-files'
-     '-s' in 'diff'.
-
-'reset-access-time'
-     '-a' in 'cpio'.
-
-'reverse'
-     '-r' in 'ls' and 'nm'.
-
-'reversed-ed'
-     '-f' in 'diff'.
-
-'right-side-defs'
-     '-R' in 'ptx'.
-
-'same-order'
-     '-s' in 'tar'.
-
-'same-permissions'
-     '-p' in 'tar'.
-
-'save'
-     '-g' in 'stty'.
-
-'se'
-     Used in GDB.
-
-'sentence-regexp'
-     '-S' in 'ptx'.
-
-'separate-dirs'
-     '-S' in 'du'.
-
-'separator'
-     '-s' in 'tac'.
-
-'sequence'
-     Used by 'recode' to chose files or pipes for sequencing passes.
-
-'shell'
-     '-s' in 'su'.
-
-'show-all'
-     '-A' in 'cat'.
-
-'show-c-function'
-     '-p' in 'diff'.
-
-'show-ends'
-     '-E' in 'cat'.
-
-'show-function-line'
-     '-F' in 'diff'.
-
-'show-tabs'
-     '-T' in 'cat'.
-
-'silent'
-     Used in many programs to inhibit the usual output.  Every program
-     accepting '--silent' should accept '--quiet' as a synonym.
-
-'size'
-     '-s' in 'ls'.
-
-'socket'
-     Specify a file descriptor for a network server to use for its
-     socket, instead of opening and binding a new socket.  This provides
-     a way to run, in a non-privileged process, a server that normally
-     needs a reserved port number.
-
-'sort'
-     Used in 'ls'.
-
-'source'
-     '-W source' in 'gawk'.
-
-'sparse'
-     '-S' in 'tar'.
-
-'speed-large-files'
-     '-H' in 'diff'.
-
-'split-at'
-     '-E' in 'unshar'.
-
-'split-size-limit'
-     '-L' in 'shar'.
-
-'squeeze-blank'
-     '-s' in 'cat'.
-
-'start-delete'
-     '-w' in 'wdiff'.
-
-'start-insert'
-     '-y' in 'wdiff'.
-
-'starting-file'
-     Used in 'tar' and 'diff' to specify which file within a directory
-     to start processing with.
-
-'statistics'
-     '-s' in 'wdiff'.
-
-'stdin-file-list'
-     '-S' in 'shar'.
-
-'stop'
-     '-S' in 'make'.
-
-'strict'
-     '-s' in 'recode'.
-
-'strip'
-     '-s' in 'install'.
-
-'strip-all'
-     '-s' in 'strip'.
-
-'strip-debug'
-     '-S' in 'strip'.
-
-'submitter'
-     '-s' in 'shar'.
-
-'suffix'
-     '-S' in 'cp', 'ln', 'mv'.
-
-'suffix-format'
-     '-b' in 'csplit'.
-
-'sum'
-     '-s' in 'gprof'.
-
-'summarize'
-     '-s' in 'du'.
-
-'symbolic'
-     '-s' in 'ln'.
-
-'symbols'
-     Used in GDB and 'objdump'.
-
-'synclines'
-     '-s' in 'm4'.
-
-'sysname'
-     '-s' in 'uname'.
-
-'tabs'
-     '-t' in 'expand' and 'unexpand'.
-
-'tabsize'
-     '-T' in 'ls'.
-
-'terminal'
-     '-T' in 'tput' and 'ul'.  '-t' in 'wdiff'.
-
-'text'
-     '-a' in 'diff'.
-
-'text-files'
-     '-T' in 'shar'.
-
-'time'
-     Used in 'ls' and 'touch'.
-
-'timeout'
-     Specify how long to wait before giving up on some operation.
-
-'to-stdout'
-     '-O' in 'tar'.
-
-'total'
-     '-c' in 'du'.
-
-'touch'
-     '-t' in 'make', 'ranlib', and 'recode'.
-
-'trace'
-     '-t' in 'm4'.
-
-'traditional'
-     '-t' in 'hello'; '-W traditional' in 'gawk'; '-G' in 'ed', 'm4',
-     and 'ptx'.
-
-'tty'
-     Used in GDB.
-
-'typedefs'
-     '-t' in 'ctags'.
-
-'typedefs-and-c++'
-     '-T' in 'ctags'.
-
-'typeset-mode'
-     '-t' in 'ptx'.
-
-'uncompress'
-     '-z' in 'tar'.
-
-'unconditional'
-     '-u' in 'cpio'.
-
-'undefine'
-     '-U' in 'm4'.
-
-'undefined-only'
-     '-u' in 'nm'.
-
-'update'
-     '-u' in 'cp', 'ctags', 'mv', 'tar'.
-
-'usage'
-     Used in 'gawk'; same as '--help'.
-
-'uuencode'
-     '-B' in 'shar'.
-
-'vanilla-operation'
-     '-V' in 'shar'.
-
-'verbose'
-     Print more information about progress.  Many programs support this.
-
-'verify'
-     '-W' in 'tar'.
-
-'version'
-     Print the version number.
-
-'version-control'
-     '-V' in 'cp', 'ln', 'mv'.
-
-'vgrind'
-     '-v' in 'ctags'.
-
-'volume'
-     '-V' in 'tar'.
-
-'what-if'
-     '-W' in 'make'.
-
-'whole-size-limit'
-     '-l' in 'shar'.
-
-'width'
-     '-w' in 'ls' and 'ptx'.
-
-'word-regexp'
-     '-W' in 'ptx'.
-
-'writable'
-     '-T' in 'who'.
-
-'zeros'
-     '-z' in 'gprof'.
-
-
-File: standards.info,  Node: OID Allocations,  Next: Memory Usage,  Prev: Option Table,  Up: Program Behavior
-
-4.9 OID Allocations
-===================
-
-The OID (object identifier) 1.3.6.1.4.1.11591 has been assigned to the
-GNU Project (thanks to Werner Koch).  These are used for SNMP, LDAP,
-X.509 certificates, and so on.  The web site
- has a (voluntary) listing of many
-OID assignments.
-
-   If you need a new slot for your GNU package, write
-.  Here is a list of arcs currently assigned:
-
-
-     1.3.6.1.4.1.11591 GNU
-
-     1.3.6.1.4.1.11591.1 GNU Radius
-
-     1.3.6.1.4.1.11591.2 GnuPG
-       1.3.6.1.4.1.11591.2.1   notation
-       1.3.6.1.4.1.11591.2.1.1 pkaAddress
-
-     1.3.6.1.4.1.11591.3 GNU Radar
-
-     1.3.6.1.4.1.11591.4 GNU GSS
-
-     1.3.6.1.4.1.11591.5 GNU Mailutils
-
-     1.3.6.1.4.1.11591.6 GNU Shishi
-
-     1.3.6.1.4.1.11591.7 GNU Radio
-
-     1.3.6.1.4.1.11591.12 digestAlgorithm
-       1.3.6.1.4.1.11591.12.2 TIGER/192
-       1.3.6.1.4.1.11591.13 encryptionAlgorithm
-         1.3.6.1.4.1.11591.13.2 Serpent
-           1.3.6.1.4.1.11591.13.2.1 Serpent-128-ECB
-           1.3.6.1.4.1.11591.13.2.2 Serpent-128-CBC
-           1.3.6.1.4.1.11591.13.2.3 Serpent-128-OFB
-           1.3.6.1.4.1.11591.13.2.4 Serpent-128-CFB
-           1.3.6.1.4.1.11591.13.2.21 Serpent-192-ECB
-           1.3.6.1.4.1.11591.13.2.22 Serpent-192-CBC
-           1.3.6.1.4.1.11591.13.2.23 Serpent-192-OFB
-           1.3.6.1.4.1.11591.13.2.24 Serpent-192-CFB
-           1.3.6.1.4.1.11591.13.2.41 Serpent-256-ECB
-           1.3.6.1.4.1.11591.13.2.42 Serpent-256-CBC
-           1.3.6.1.4.1.11591.13.2.43 Serpent-256-OFB
-           1.3.6.1.4.1.11591.13.2.44 Serpent-256-CFB
-       1.3.6.1.4.1.11591.14 CRC algorithms
-         1.3.6.1.4.1.11591.14.1 CRC 32
-
-
-File: standards.info,  Node: Memory Usage,  Next: File Usage,  Prev: OID Allocations,  Up: Program Behavior
-
-4.10 Memory Usage
-=================
-
-If a program typically uses just a few meg of memory, don't bother
-making any effort to reduce memory usage.  For example, if it is
-impractical for other reasons to operate on files more than a few meg
-long, it is reasonable to read entire input files into memory to operate
-on them.
-
-   However, for programs such as 'cat' or 'tail', that can usefully
-operate on very large files, it is important to avoid using a technique
-that would artificially limit the size of files it can handle.  If a
-program works by lines and could be applied to arbitrary user-supplied
-input files, it should keep only a line in memory, because this is not
-very hard and users will want to be able to operate on input files that
-are bigger than will fit in memory all at once.
-
-   If your program creates complicated data structures, just make them
-in memory and give a fatal error if 'malloc' returns zero.
-
-
-File: standards.info,  Node: File Usage,  Prev: Memory Usage,  Up: Program Behavior
-
-4.11 File Usage
-===============
-
-Programs should be prepared to operate when '/usr' and '/etc' are
-read-only file systems.  Thus, if the program manages log files, lock
-files, backup files, score files, or any other files which are modified
-for internal purposes, these files should not be stored in '/usr' or
-'/etc'.
-
-   There are two exceptions.  '/etc' is used to store system
-configuration information; it is reasonable for a program to modify
-files in '/etc' when its job is to update the system configuration.
-Also, if the user explicitly asks to modify one file in a directory, it
-is reasonable for the program to store other files in the same
-directory.
-
-
-File: standards.info,  Node: Writing C,  Next: Documentation,  Prev: Program Behavior,  Up: Top
-
-5 Making The Best Use of C
-**************************
-
-This chapter provides advice on how best to use the C language when
-writing GNU software.
-
-* Menu:
-
-* Formatting::                  Formatting your source code.
-* Comments::                    Commenting your work.
-* Syntactic Conventions::       Clean use of C constructs.
-* Names::                       Naming variables, functions, and files.
-* System Portability::          Portability among different operating systems.
-* CPU Portability::             Supporting the range of CPU types.
-* System Functions::            Portability and "standard" library functions.
-* Internationalization::        Techniques for internationalization.
-* Character Set::               Use ASCII by default.
-* Quote Characters::            Use '...' in the C locale.
-* Mmap::                        How you can safely use 'mmap'.
-
-
-File: standards.info,  Node: Formatting,  Next: Comments,  Up: Writing C
-
-5.1 Formatting Your Source Code
-===============================
-
-It is important to put the open-brace that starts the body of a C
-function in column one, so that they will start a defun.  Several tools
-look for open-braces in column one to find the beginnings of C
-functions.  These tools will not work on code not formatted that way.
-
-   Avoid putting open-brace, open-parenthesis or open-bracket in column
-one when they are inside a function, so that they won't start a defun.
-The open-brace that starts a 'struct' body can go in column one if you
-find it useful to treat that definition as a defun.
-
-   It is also important for function definitions to start the name of
-the function in column one.  This helps people to search for function
-definitions, and may also help certain tools recognize them.  Thus,
-using Standard C syntax, the format is this:
-
-     static char *
-     concat (char *s1, char *s2)
-     {
-       ...
-     }
-
-or, if you want to use traditional C syntax, format the definition like
-this:
-
-     static char *
-     concat (s1, s2)        /* Name starts in column one here */
-          char *s1, *s2;
-     {                     /* Open brace in column one here */
-       ...
-     }
-
-   In Standard C, if the arguments don't fit nicely on one line, split
-it like this:
-
-     int
-     lots_of_args (int an_integer, long a_long, short a_short,
-                   double a_double, float a_float)
-     ...
-
-   The rest of this section gives our recommendations for other aspects
-of C formatting style, which is also the default style of the 'indent'
-program in version 1.2 and newer.  It corresponds to the options
-
-     -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
-     -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -psl -nsc -nsob
-
-   We don't think of these recommendations as requirements, because it
-causes no problems for users if two different programs have different
-formatting styles.
-
-   But whatever style you use, please use it consistently, since a
-mixture of styles within one program tends to look ugly.  If you are
-contributing changes to an existing program, please follow the style of
-that program.
-
-   For the body of the function, our recommended style looks like this:
-
-     if (x < foo (y, z))
-       haha = bar[4] + 5;
-     else
-       {
-         while (z)
-           {
-             haha += foo (z, z);
-             z--;
-           }
-         return ++x + bar ();
-       }
-
-   We find it easier to read a program when it has spaces before the
-open-parentheses and after the commas.  Especially after the commas.
-
-   When you split an expression into multiple lines, split it before an
-operator, not after one.  Here is the right way:
-
-     if (foo_this_is_long && bar > win (x, y, z)
-         && remaining_condition)
-
-   Try to avoid having two operators of different precedence at the same
-level of indentation.  For example, don't write this:
-
-     mode = (inmode[j] == VOIDmode
-             || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
-             ? outmode[j] : inmode[j]);
-
-   Instead, use extra parentheses so that the indentation shows the
-nesting:
-
-     mode = ((inmode[j] == VOIDmode
-              || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])))
-             ? outmode[j] : inmode[j]);
-
-   Insert extra parentheses so that Emacs will indent the code properly.
-For example, the following indentation looks nice if you do it by hand,
-
-     v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
-         + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
-
-but Emacs would alter it.  Adding a set of parentheses produces
-something that looks equally nice, and which Emacs will preserve:
-
-     v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
-          + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
-
-   Format do-while statements like this:
-
-     do
-       {
-         a = foo (a);
-       }
-     while (a > 0);
-
-   Please use formfeed characters (control-L) to divide the program into
-pages at logical places (but not within a function).  It does not matter
-just how long the pages are, since they do not have to fit on a printed
-page.  The formfeeds should appear alone on lines by themselves.
-
-
-File: standards.info,  Node: Comments,  Next: Syntactic Conventions,  Prev: Formatting,  Up: Writing C
-
-5.2 Commenting Your Work
-========================
-
-Every program should start with a comment saying briefly what it is for.
-Example: 'fmt - filter for simple filling of text'.  This comment should
-be at the top of the source file containing the 'main' function of the
-program.
-
-   Also, please write a brief comment at the start of each source file,
-with the file name and a line or two about the overall purpose of the
-file.
-
-   Please write the comments in a GNU program in English, because
-English is the one language that nearly all programmers in all countries
-can read.  If you do not write English well, please write comments in
-English as well as you can, then ask other people to help rewrite them.
-If you can't write comments in English, please find someone to work with
-you and translate your comments into English.
-
-   Please put a comment on each function saying what the function does,
-what sorts of arguments it gets, and what the possible values of
-arguments mean and are used for.  It is not necessary to duplicate in
-words the meaning of the C argument declarations, if a C type is being
-used in its customary fashion.  If there is anything nonstandard about
-its use (such as an argument of type 'char *' which is really the
-address of the second character of a string, not the first), or any
-possible values that would not work the way one would expect (such as,
-that strings containing newlines are not guaranteed to work), be sure to
-say so.
-
-   Also explain the significance of the return value, if there is one.
-
-   Please put two spaces after the end of a sentence in your comments,
-so that the Emacs sentence commands will work.  Also, please write
-complete sentences and capitalize the first word.  If a lower-case
-identifier comes at the beginning of a sentence, don't capitalize it!
-Changing the spelling makes it a different identifier.  If you don't
-like starting a sentence with a lower case letter, write the sentence
-differently (e.g., "The identifier lower-case is ...").
-
-   The comment on a function is much clearer if you use the argument
-names to speak about the argument values.  The variable name itself
-should be lower case, but write it in upper case when you are speaking
-about the value rather than the variable itself.  Thus, "the inode
-number NODE_NUM" rather than "an inode".
-
-   There is usually no purpose in restating the name of the function in
-the comment before it, because the reader can see that for himself.
-There might be an exception when the comment is so long that the
-function itself would be off the bottom of the screen.
-
-   There should be a comment on each static variable as well, like this:
-
-     /* Nonzero means truncate lines in the display;
-        zero means continue them.  */
-     int truncate_lines;
-
-   Every '#endif' should have a comment, except in the case of short
-conditionals (just a few lines) that are not nested.  The comment should
-state the condition of the conditional that is ending, _including its
-sense_.  '#else' should have a comment describing the condition _and
-sense_ of the code that follows.  For example:
-
-     #ifdef foo
-       ...
-     #else /* not foo */
-       ...
-     #endif /* not foo */
-     #ifdef foo
-       ...
-     #endif /* foo */
-
-but, by contrast, write the comments this way for a '#ifndef':
-
-     #ifndef foo
-       ...
-     #else /* foo */
-       ...
-     #endif /* foo */
-     #ifndef foo
-       ...
-     #endif /* not foo */
-
-
-File: standards.info,  Node: Syntactic Conventions,  Next: Names,  Prev: Comments,  Up: Writing C
-
-5.3 Clean Use of C Constructs
-=============================
-
-Please explicitly declare the types of all objects.  For example, you
-should explicitly declare all arguments to functions, and you should
-declare functions to return 'int' rather than omitting the 'int'.
-
-   Some programmers like to use the GCC '-Wall' option, and change the
-code whenever it issues a warning.  If you want to do this, then do.
-Other programmers prefer not to use '-Wall', because it gives warnings
-for valid and legitimate code which they do not want to change.  If you
-want to do this, then do.  The compiler should be your servant, not your
-master.
-
-   Declarations of external functions and functions to appear later in
-the source file should all go in one place near the beginning of the
-file (somewhere before the first function definition in the file), or
-else should go in a header file.  Don't put 'extern' declarations inside
-functions.
-
-   It used to be common practice to use the same local variables (with
-names like 'tem') over and over for different values within one
-function.  Instead of doing this, it is better to declare a separate
-local variable for each distinct purpose, and give it a name which is
-meaningful.  This not only makes programs easier to understand, it also
-facilitates optimization by good compilers.  You can also move the
-declaration of each local variable into the smallest scope that includes
-all its uses.  This makes the program even cleaner.
-
-   Don't use local variables or parameters that shadow global
-identifiers.
-
-   Don't declare multiple variables in one declaration that spans lines.
-Start a new declaration on each line, instead.  For example, instead of
-this:
-
-     int    foo,
-            bar;
-
-write either this:
-
-     int foo, bar;
-
-or this:
-
-     int foo;
-     int bar;
-
-(If they are global variables, each should have a comment preceding it
-anyway.)
-
-   When you have an 'if'-'else' statement nested in another 'if'
-statement, always put braces around the 'if'-'else'.  Thus, never write
-like this:
-
-     if (foo)
-       if (bar)
-         win ();
-       else
-         lose ();
-
-always like this:
-
-     if (foo)
-       {
-         if (bar)
-           win ();
-         else
-           lose ();
-       }
-
-   If you have an 'if' statement nested inside of an 'else' statement,
-either write 'else if' on one line, like this,
-
-     if (foo)
-       ...
-     else if (bar)
-       ...
-
-with its 'then'-part indented like the preceding 'then'-part, or write
-the nested 'if' within braces like this:
-
-     if (foo)
-       ...
-     else
-       {
-         if (bar)
-           ...
-       }
-
-   Don't declare both a structure tag and variables or typedefs in the
-same declaration.  Instead, declare the structure tag separately and
-then use it to declare the variables or typedefs.
-
-   Try to avoid assignments inside 'if'-conditions (assignments inside
-'while'-conditions are ok).  For example, don't write this:
-
-     if ((foo = (char *) malloc (sizeof *foo)) == 0)
-       fatal ("virtual memory exhausted");
-
-instead, write this:
-
-     foo = (char *) malloc (sizeof *foo);
-     if (foo == 0)
-       fatal ("virtual memory exhausted");
-
-   Don't make the program ugly to placate 'lint'.  Please don't insert
-any casts to 'void'.  Zero without a cast is perfectly fine as a null
-pointer constant, except when calling a varargs function.
-
-
-File: standards.info,  Node: Names,  Next: System Portability,  Prev: Syntactic Conventions,  Up: Writing C
-
-5.4 Naming Variables, Functions, and Files
-==========================================
-
-The names of global variables and functions in a program serve as
-comments of a sort.  So don't choose terse names--instead, look for
-names that give useful information about the meaning of the variable or
-function.  In a GNU program, names should be English, like other
-comments.
-
-   Local variable names can be shorter, because they are used only
-within one context, where (presumably) comments explain their purpose.
-
-   Try to limit your use of abbreviations in symbol names.  It is ok to
-make a few abbreviations, explain what they mean, and then use them
-frequently, but don't use lots of obscure abbreviations.
-
-   Please use underscores to separate words in a name, so that the Emacs
-word commands can be useful within them.  Stick to lower case; reserve
-upper case for macros and 'enum' constants, and for name-prefixes that
-follow a uniform convention.
-
-   For example, you should use names like 'ignore_space_change_flag';
-don't use names like 'iCantReadThis'.
-
-   Variables that indicate whether command-line options have been
-specified should be named after the meaning of the option, not after the
-option-letter.  A comment should state both the exact meaning of the
-option and its letter.  For example,
-
-     /* Ignore changes in horizontal whitespace (-b).  */
-     int ignore_space_change_flag;
-
-   When you want to define names with constant integer values, use
-'enum' rather than '#define'.  GDB knows about enumeration constants.
-
-   You might want to make sure that none of the file names would
-conflict if the files were loaded onto an MS-DOS file system which
-shortens the names.  You can use the program 'doschk' to test for this.
-
-   Some GNU programs were designed to limit themselves to file names of
-14 characters or less, to avoid file name conflicts if they are read
-into older System V systems.  Please preserve this feature in the
-existing GNU programs that have it, but there is no need to do this in
-new GNU programs.  'doschk' also reports file names longer than 14
-characters.
-
-
-File: standards.info,  Node: System Portability,  Next: CPU Portability,  Prev: Names,  Up: Writing C
-
-5.5 Portability between System Types
-====================================
-
-In the Unix world, "portability" refers to porting to different Unix
-versions.  For a GNU program, this kind of portability is desirable, but
-not paramount.
-
-   The primary purpose of GNU software is to run on top of the GNU
-kernel, compiled with the GNU C compiler, on various types of CPU.  So
-the kinds of portability that are absolutely necessary are quite
-limited.  But it is important to support Linux-based GNU systems, since
-they are the form of GNU that is popular.
-
-   Beyond that, it is good to support the other free operating systems
-(*BSD), and it is nice to support other Unix-like systems if you want
-to.  Supporting a variety of Unix-like systems is desirable, although
-not paramount.  It is usually not too hard, so you may as well do it.
-But you don't have to consider it an obligation, if it does turn out to
-be hard.
-
-   The easiest way to achieve portability to most Unix-like systems is
-to use Autoconf.  It's unlikely that your program needs to know more
-information about the host platform than Autoconf can provide, simply
-because most of the programs that need such knowledge have already been
-written.
-
-   Avoid using the format of semi-internal data bases (e.g.,
-directories) when there is a higher-level alternative ('readdir').
-
-   As for systems that are not like Unix, such as MSDOS, Windows, VMS,
-MVS, and older Macintosh systems, supporting them is often a lot of
-work.  When that is the case, it is better to spend your time adding
-features that will be useful on GNU and GNU/Linux, rather than on
-supporting other incompatible systems.
-
-   If you do support Windows, please do not abbreviate it as "win".  In
-hacker terminology, calling something a "win" is a form of praise.
-You're free to praise Microsoft Windows on your own if you want, but
-please don't do this in GNU packages.  Instead of abbreviating "Windows"
-to "win", you can write it in full or abbreviate it to "woe" or "w".  In
-GNU Emacs, for instance, we use 'w32' in file names of Windows-specific
-files, but the macro for Windows conditionals is called 'WINDOWSNT'.
-
-   It is a good idea to define the "feature test macro" '_GNU_SOURCE'
-when compiling your C files.  When you compile on GNU or GNU/Linux, this
-will enable the declarations of GNU library extension functions, and
-that will usually give you a compiler error message if you define the
-same function names in some other way in your program.  (You don't have
-to actually _use_ these functions, if you prefer to make the program
-more portable to other systems.)
-
-   But whether or not you use these GNU extensions, you should avoid
-using their names for any other meanings.  Doing so would make it hard
-to move your code into other GNU programs.
-
-
-File: standards.info,  Node: CPU Portability,  Next: System Functions,  Prev: System Portability,  Up: Writing C
-
-5.6 Portability between CPUs
-============================
-
-Even GNU systems will differ because of differences among CPU types--for
-example, difference in byte ordering and alignment requirements.  It is
-absolutely essential to handle these differences.  However, don't make
-any effort to cater to the possibility that an 'int' will be less than
-32 bits.  We don't support 16-bit machines in GNU.
-
-   Similarly, don't make any effort to cater to the possibility that
-'long' will be smaller than predefined types like 'size_t'.  For
-example, the following code is ok:
-
-     printf ("size = %lu\n", (unsigned long) sizeof array);
-     printf ("diff = %ld\n", (long) (pointer2 - pointer1));
-
-   1989 Standard C requires this to work, and we know of only one
-counterexample: 64-bit programs on Microsoft Windows.  We will leave it
-to those who want to port GNU programs to that environment to figure out
-how to do it.
-
-   Predefined file-size types like 'off_t' are an exception: they are
-longer than 'long' on many platforms, so code like the above won't work
-with them.  One way to print an 'off_t' value portably is to print its
-digits yourself, one by one.
-
-   Don't assume that the address of an 'int' object is also the address
-of its least-significant byte.  This is false on big-endian machines.
-Thus, don't make the following mistake:
-
-     int c;
-     ...
-     while ((c = getchar ()) != EOF)
-       write (file_descriptor, &c, 1);
-
-Instead, use 'unsigned char' as follows.  (The 'unsigned' is for
-portability to unusual systems where 'char' is signed and where there is
-integer overflow checking.)
-
-     int c;
-     while ((c = getchar ()) != EOF)
-       {
-         unsigned char u = c;
-         write (file_descriptor, &u, 1);
-       }
-
-   It used to be ok to not worry about the difference between pointers
-and integers when passing arguments to functions.  However, on most
-modern 64-bit machines pointers are wider than 'int'.  Conversely,
-integer types like 'long long int' and 'off_t' are wider than pointers
-on most modern 32-bit machines.  Hence it's often better nowadays to use
-prototypes to define functions whose argument types are not trivial.
-
-   In particular, if functions accept varying argument counts or types
-they should be declared using prototypes containing '...' and defined
-using 'stdarg.h'.  For an example of this, please see the Gnulib
-(http://www.gnu.org/software/gnulib/) error module, which declares and
-defines the following function:
-
-     /* Print a message with `fprintf (stderr, FORMAT, ...)';
-        if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-        If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
-
-     void error (int status, int errnum, const char *format, ...);
-
-   A simple way to use the Gnulib error module is to obtain the two
-source files 'error.c' and 'error.h' from the Gnulib library source code
-repository at .
-Here's a sample use:
-
-     #include "error.h"
-     #include 
-     #include 
-
-     char *program_name = "myprogram";
-
-     FILE *
-     xfopen (char const *name)
-     {
-       FILE *fp = fopen (name, "r");
-       if (! fp)
-         error (1, errno, "cannot read %s", name);
-       return fp;
-     }
-
-   Avoid casting pointers to integers if you can.  Such casts greatly
-reduce portability, and in most programs they are easy to avoid.  In the
-cases where casting pointers to integers is essential--such as, a Lisp
-interpreter which stores type information as well as an address in one
-word--you'll have to make explicit provisions to handle different word
-sizes.  You will also need to make provision for systems in which the
-normal range of addresses you can get from 'malloc' starts far away from
-zero.
-
-
-File: standards.info,  Node: System Functions,  Next: Internationalization,  Prev: CPU Portability,  Up: Writing C
-
-5.7 Calling System Functions
-============================
-
-C implementations differ substantially.  Standard C reduces but does not
-eliminate the incompatibilities; meanwhile, many GNU packages still
-support pre-standard compilers because this is not hard to do.  This
-chapter gives recommendations for how to use the more-or-less standard C
-library functions to avoid unnecessary loss of portability.
-
-   * Don't use the return value of 'sprintf'.  It returns the number of
-     characters written on some systems, but not on all systems.
-
-   * Be aware that 'vfprintf' is not always available.
-
-   * 'main' should be declared to return type 'int'.  It should
-     terminate either by calling 'exit' or by returning the integer
-     status code; make sure it cannot ever return an undefined value.
-
-   * Don't declare system functions explicitly.
-
-     Almost any declaration for a system function is wrong on some
-     system.  To minimize conflicts, leave it to the system header files
-     to declare system functions.  If the headers don't declare a
-     function, let it remain undeclared.
-
-     While it may seem unclean to use a function without declaring it,
-     in practice this works fine for most system library functions on
-     the systems where this really happens; thus, the disadvantage is
-     only theoretical.  By contrast, actual declarations have frequently
-     caused actual conflicts.
-
-   * If you must declare a system function, don't specify the argument
-     types.  Use an old-style declaration, not a Standard C prototype.
-     The more you specify about the function, the more likely a
-     conflict.
-
-   * In particular, don't unconditionally declare 'malloc' or 'realloc'.
-
-     Most GNU programs use those functions just once, in functions
-     conventionally named 'xmalloc' and 'xrealloc'.  These functions
-     call 'malloc' and 'realloc', respectively, and check the results.
-
-     Because 'xmalloc' and 'xrealloc' are defined in your program, you
-     can declare them in other files without any risk of type conflict.
-
-     On most systems, 'int' is the same length as a pointer; thus, the
-     calls to 'malloc' and 'realloc' work fine.  For the few exceptional
-     systems (mostly 64-bit machines), you can use *conditionalized*
-     declarations of 'malloc' and 'realloc'--or put these declarations
-     in configuration files specific to those systems.
-
-   * The string functions require special treatment.  Some Unix systems
-     have a header file 'string.h'; others have 'strings.h'.  Neither
-     file name is portable.  There are two things you can do: use
-     Autoconf to figure out which file to include, or don't include
-     either file.
-
-   * If you don't include either strings file, you can't get
-     declarations for the string functions from the header file in the
-     usual way.
-
-     That causes less of a problem than you might think.  The newer
-     standard string functions should be avoided anyway because many
-     systems still don't support them.  The string functions you can use
-     are these:
-
-          strcpy   strncpy   strcat   strncat
-          strlen   strcmp    strncmp
-          strchr   strrchr
-
-     The copy and concatenate functions work fine without a declaration
-     as long as you don't use their values.  Using their values without
-     a declaration fails on systems where the width of a pointer differs
-     from the width of 'int', and perhaps in other cases.  It is trivial
-     to avoid using their values, so do that.
-
-     The compare functions and 'strlen' work fine without a declaration
-     on most systems, possibly all the ones that GNU software runs on.
-     You may find it necessary to declare them *conditionally* on a few
-     systems.
-
-     The search functions must be declared to return 'char *'.  Luckily,
-     there is no variation in the data type they return.  But there is
-     variation in their names.  Some systems give these functions the
-     names 'index' and 'rindex'; other systems use the names 'strchr'
-     and 'strrchr'.  Some systems support both pairs of names, but
-     neither pair works on all systems.
-
-     You should pick a single pair of names and use it throughout your
-     program.  (Nowadays, it is better to choose 'strchr' and 'strrchr'
-     for new programs, since those are the standard names.)  Declare
-     both of those names as functions returning 'char *'.  On systems
-     which don't support those names, define them as macros in terms of
-     the other pair.  For example, here is what to put at the beginning
-     of your file (or in a header) if you want to use the names 'strchr'
-     and 'strrchr' throughout:
-
-          #ifndef HAVE_STRCHR
-          #define strchr index
-          #endif
-          #ifndef HAVE_STRRCHR
-          #define strrchr rindex
-          #endif
-
-          char *strchr ();
-          char *strrchr ();
-
-   Here we assume that 'HAVE_STRCHR' and 'HAVE_STRRCHR' are macros
-defined in systems where the corresponding functions exist.  One way to
-get them properly defined is to use Autoconf.
-
-
-File: standards.info,  Node: Internationalization,  Next: Character Set,  Prev: System Functions,  Up: Writing C
-
-5.8 Internationalization
-========================
-
-GNU has a library called GNU gettext that makes it easy to translate the
-messages in a program into various languages.  You should use this
-library in every program.  Use English for the messages as they appear
-in the program, and let gettext provide the way to translate them into
-other languages.
-
-   Using GNU gettext involves putting a call to the 'gettext' macro
-around each string that might need translation--like this:
-
-     printf (gettext ("Processing file `%s'..."));
-
-This permits GNU gettext to replace the string '"Processing file
-`%s'..."' with a translated version.
-
-   Once a program uses gettext, please make a point of writing calls to
-'gettext' when you add new strings that call for translation.
-
-   Using GNU gettext in a package involves specifying a "text domain
-name" for the package.  The text domain name is used to separate the
-translations for this package from the translations for other packages.
-Normally, the text domain name should be the same as the name of the
-package--for example, 'coreutils' for the GNU core utilities.
-
-   To enable gettext to work well, avoid writing code that makes
-assumptions about the structure of words or sentences.  When you want
-the precise text of a sentence to vary depending on the data, use two or
-more alternative string constants each containing a complete sentences,
-rather than inserting conditionalized words or phrases into a single
-sentence framework.
-
-   Here is an example of what not to do:
-
-     printf ("%s is full", capacity > 5000000 ? "disk" : "floppy disk");
-
-   If you apply gettext to all strings, like this,
-
-     printf (gettext ("%s is full"),
-             capacity > 5000000 ? gettext ("disk") : gettext ("floppy disk"));
-
-the translator will hardly know that "disk" and "floppy disk" are meant
-to be substituted in the other string.  Worse, in some languages (like
-French) the construction will not work: the translation of the word
-"full" depends on the gender of the first part of the sentence; it
-happens to be not the same for "disk" as for "floppy disk".
-
-   Complete sentences can be translated without problems:
-
-     printf (capacity > 5000000 ? gettext ("disk is full")
-             : gettext ("floppy disk is full"));
-
-   A similar problem appears at the level of sentence structure with
-this code:
-
-     printf ("#  Implicit rule search has%s been done.\n",
-             f->tried_implicit ? "" : " not");
-
-Adding 'gettext' calls to this code cannot give correct results for all
-languages, because negation in some languages requires adding words at
-more than one place in the sentence.  By contrast, adding 'gettext'
-calls does the job straightforwardly if the code starts out like this:
-
-     printf (f->tried_implicit
-             ? "#  Implicit rule search has been done.\n",
-             : "#  Implicit rule search has not been done.\n");
-
-   Another example is this one:
-
-     printf ("%d file%s processed", nfiles,
-             nfiles != 1 ? "s" : "");
-
-The problem with this example is that it assumes that plurals are made
-by adding 's'.  If you apply gettext to the format string, like this,
-
-     printf (gettext ("%d file%s processed"), nfiles,
-             nfiles != 1 ? "s" : "");
-
-the message can use different words, but it will still be forced to use
-'s' for the plural.  Here is a better way, with gettext being applied to
-the two strings independently:
-
-     printf ((nfiles != 1 ? gettext ("%d files processed")
-              : gettext ("%d file processed")),
-             nfiles);
-
-But this still doesn't work for languages like Polish, which has three
-plural forms: one for nfiles == 1, one for nfiles == 2, 3, 4, 22, 23,
-24, ...  and one for the rest.  The GNU 'ngettext' function solves this
-problem:
-
-     printf (ngettext ("%d files processed", "%d file processed", nfiles),
-             nfiles);
-
-
-File: standards.info,  Node: Character Set,  Next: Quote Characters,  Prev: Internationalization,  Up: Writing C
-
-5.9 Character Set
-=================
-
-Sticking to the ASCII character set (plain text, 7-bit characters) is
-preferred in GNU source code comments, text documents, and other
-contexts, unless there is good reason to do something else because of
-the application domain.  For example, if source code deals with the
-French Revolutionary calendar, it is OK if its literal strings contain
-accented characters in month names like "Flore'al".  Also, it is OK to
-use non-ASCII characters to represent proper names of contributors in
-change logs (*note Change Logs::).
-
-   If you need to use non-ASCII characters, you should normally stick
-with one encoding, as one cannot in general mix encodings reliably.
-
-
-File: standards.info,  Node: Quote Characters,  Next: Mmap,  Prev: Character Set,  Up: Writing C
-
-5.10 Quote Characters
-=====================
-
-In the C locale, GNU programs should stick to plain ASCII for quotation
-characters in messages to users: preferably 0x60 ('`') for left quotes
-and 0x27 (''') for right quotes.  It is ok, but not required, to use
-locale-specific quotes in other locales.
-
-   The Gnulib (http://www.gnu.org/software/gnulib/) 'quote' and
-'quotearg' modules provide a reasonably straightforward way to support
-locale-specific quote characters, as well as taking care of other
-issues, such as quoting a filename that itself contains a quote
-character.  See the Gnulib documentation for usage details.
-
-   In any case, the documentation for your program should clearly
-specify how it does quoting, if different than the preferred method of
-'`' and '''.  This is especially important if the output of your program
-is ever likely to be parsed by another program.
-
-   Quotation characters are a difficult area in the computing world at
-this time: there are no true left or right quote characters in Latin1;
-the '`' character we use was standardized there as a grave accent.
-Moreover, Latin1 is still not universally usable.
-
-   Unicode contains the unambiguous quote characters required, and its
-common encoding UTF-8 is upward compatible with Latin1.  However,
-Unicode and UTF-8 are not universally well-supported, either.
-
-   This may change over the next few years, and then we will revisit
-this.
-
-
-File: standards.info,  Node: Mmap,  Prev: Quote Characters,  Up: Writing C
-
-5.11 Mmap
-=========
-
-Don't assume that 'mmap' either works on all files or fails for all
-files.  It may work on some files and fail on others.
-
-   The proper way to use 'mmap' is to try it on the specific file for
-which you want to use it--and if 'mmap' doesn't work, fall back on doing
-the job in another way using 'read' and 'write'.
-
-   The reason this precaution is needed is that the GNU kernel (the
-HURD) provides a user-extensible file system, in which there can be many
-different kinds of "ordinary files."  Many of them support 'mmap', but
-some do not.  It is important to make programs handle all these kinds of
-files.
-
-
-File: standards.info,  Node: Documentation,  Next: Managing Releases,  Prev: Writing C,  Up: Top
-
-6 Documenting Programs
-**********************
-
-A GNU program should ideally come with full free documentation, adequate
-for both reference and tutorial purposes.  If the package can be
-programmed or extended, the documentation should cover programming or
-extending it, as well as just using it.
-
-* Menu:
-
-* GNU Manuals::                 Writing proper manuals.
-* Doc Strings and Manuals::     Compiling doc strings doesn't make a manual.
-* Manual Structure Details::    Specific structure conventions.
-* License for Manuals::         Writing the distribution terms for a manual.
-* Manual Credits::              Giving credit to documentation contributors.
-* Printed Manuals::             Mentioning the printed manual.
-* NEWS File::                   NEWS files supplement manuals.
-* Change Logs::                 Recording changes.
-* Man Pages::                   Man pages are secondary.
-* Reading other Manuals::       How far you can go in learning
-                                from other manuals.
-
-
-File: standards.info,  Node: GNU Manuals,  Next: Doc Strings and Manuals,  Up: Documentation
-
-6.1 GNU Manuals
-===============
-
-The preferred document format for the GNU system is the Texinfo
-formatting language.  Every GNU package should (ideally) have
-documentation in Texinfo both for reference and for learners.  Texinfo
-makes it possible to produce a good quality formatted book, using TeX,
-and to generate an Info file.  It is also possible to generate HTML
-output from Texinfo source.  See the Texinfo manual, either the
-hardcopy, or the on-line version available through 'info' or the Emacs
-Info subsystem ('C-h i').
-
-   Nowadays some other formats such as Docbook and Sgmltexi can be
-converted automatically into Texinfo.  It is ok to produce the Texinfo
-documentation by conversion this way, as long as it gives good results.
-
-   Make sure your manual is clear to a reader who knows nothing about
-the topic and reads it straight through.  This means covering basic
-topics at the beginning, and advanced topics only later.  This also
-means defining every specialized term when it is first used.
-
-   Programmers tend to carry over the structure of the program as the
-structure for its documentation.  But this structure is not necessarily
-good for explaining how to use the program; it may be irrelevant and
-confusing for a user.
-
-   Instead, the right way to structure documentation is according to the
-concepts and questions that a user will have in mind when reading it.
-This principle applies at every level, from the lowest (ordering
-sentences in a paragraph) to the highest (ordering of chapter topics
-within the manual).  Sometimes this structure of ideas matches the
-structure of the implementation of the software being documented--but
-often they are different.  An important part of learning to write good
-documentation is to learn to notice when you have unthinkingly
-structured the documentation like the implementation, stop yourself, and
-look for better alternatives.
-
-   For example, each program in the GNU system probably ought to be
-documented in one manual; but this does not mean each program should
-have its own manual.  That would be following the structure of the
-implementation, rather than the structure that helps the user
-understand.
-
-   Instead, each manual should cover a coherent _topic_.  For example,
-instead of a manual for 'diff' and a manual for 'diff3', we have one
-manual for "comparison of files" which covers both of those programs, as
-well as 'cmp'.  By documenting these programs together, we can make the
-whole subject clearer.
-
-   The manual which discusses a program should certainly document all of
-the program's command-line options and all of its commands.  It should
-give examples of their use.  But don't organize the manual as a list of
-features.  Instead, organize it logically, by subtopics.  Address the
-questions that a user will ask when thinking about the job that the
-program does.  Don't just tell the reader what each feature can do--say
-what jobs it is good for, and show how to use it for those jobs.
-Explain what is recommended usage, and what kinds of usage users should
-avoid.
-
-   In general, a GNU manual should serve both as tutorial and reference.
-It should be set up for convenient access to each topic through Info,
-and for reading straight through (appendixes aside).  A GNU manual
-should give a good introduction to a beginner reading through from the
-start, and should also provide all the details that hackers want.  The
-Bison manual is a good example of this--please take a look at it to see
-what we mean.
-
-   That is not as hard as it first sounds.  Arrange each chapter as a
-logical breakdown of its topic, but order the sections, and write their
-text, so that reading the chapter straight through makes sense.  Do
-likewise when structuring the book into chapters, and when structuring a
-section into paragraphs.  The watchword is, _at each point, address the
-most fundamental and important issue raised by the preceding text._
-
-   If necessary, add extra chapters at the beginning of the manual which
-are purely tutorial and cover the basics of the subject.  These provide
-the framework for a beginner to understand the rest of the manual.  The
-Bison manual provides a good example of how to do this.
-
-   To serve as a reference, a manual should have an Index that list all
-the functions, variables, options, and important concepts that are part
-of the program.  One combined Index should do for a short manual, but
-sometimes for a complex package it is better to use multiple indices.
-The Texinfo manual includes advice on preparing good index entries, see
-*note Making Index Entries: (texinfo)Index Entries, and see *note
-Defining the Entries of an Index: (texinfo)Indexing Commands.
-
-   Don't use Unix man pages as a model for how to write GNU
-documentation; most of them are terse, badly structured, and give
-inadequate explanation of the underlying concepts.  (There are, of
-course, some exceptions.)  Also, Unix man pages use a particular format
-which is different from what we use in GNU manuals.
-
-   Please include an email address in the manual for where to report
-bugs _in the text of the manual_.
-
-   Please do not use the term "pathname" that is used in Unix
-documentation; use "file name" (two words) instead.  We use the term
-"path" only for search paths, which are lists of directory names.
-
-   Please do not use the term "illegal" to refer to erroneous input to a
-computer program.  Please use "invalid" for this, and reserve the term
-"illegal" for activities prohibited by law.
-
-   Please do not write '()' after a function name just to indicate it is
-a function.  'foo ()' is not a function, it is a function call with no
-arguments.
-
-
-File: standards.info,  Node: Doc Strings and Manuals,  Next: Manual Structure Details,  Prev: GNU Manuals,  Up: Documentation
-
-6.2 Doc Strings and Manuals
-===========================
-
-Some programming systems, such as Emacs, provide a documentation string
-for each function, command or variable.  You may be tempted to write a
-reference manual by compiling the documentation strings and writing a
-little additional text to go around them--but you must not do it.  That
-approach is a fundamental mistake.  The text of well-written
-documentation strings will be entirely wrong for a manual.
-
-   A documentation string needs to stand alone--when it appears on the
-screen, there will be no other text to introduce or explain it.
-Meanwhile, it can be rather informal in style.
-
-   The text describing a function or variable in a manual must not stand
-alone; it appears in the context of a section or subsection.  Other text
-at the beginning of the section should explain some of the concepts, and
-should often make some general points that apply to several functions or
-variables.  The previous descriptions of functions and variables in the
-section will also have given information about the topic.  A description
-written to stand alone would repeat some of that information; this
-redundancy looks bad.  Meanwhile, the informality that is acceptable in
-a documentation string is totally unacceptable in a manual.
-
-   The only good way to use documentation strings in writing a good
-manual is to use them as a source of information for writing good text.
-
-
-File: standards.info,  Node: Manual Structure Details,  Next: License for Manuals,  Prev: Doc Strings and Manuals,  Up: Documentation
-
-6.3 Manual Structure Details
-============================
-
-The title page of the manual should state the version of the programs or
-packages documented in the manual.  The Top node of the manual should
-also contain this information.  If the manual is changing more
-frequently than or independent of the program, also state a version
-number for the manual in both of these places.
-
-   Each program documented in the manual should have a node named
-'PROGRAM Invocation' or 'Invoking PROGRAM'.  This node (together with
-its subnodes, if any) should describe the program's command line
-arguments and how to run it (the sort of information people would look
-for in a man page).  Start with an '@example' containing a template for
-all the options and arguments that the program uses.
-
-   Alternatively, put a menu item in some menu whose item name fits one
-of the above patterns.  This identifies the node which that item points
-to as the node for this purpose, regardless of the node's actual name.
-
-   The '--usage' feature of the Info reader looks for such a node or
-menu item in order to find the relevant text, so it is essential for
-every Texinfo file to have one.
-
-   If one manual describes several programs, it should have such a node
-for each program described in the manual.
-
-
-File: standards.info,  Node: License for Manuals,  Next: Manual Credits,  Prev: Manual Structure Details,  Up: Documentation
-
-6.4 License for Manuals
-=======================
-
-Please use the GNU Free Documentation License for all GNU manuals that
-are more than a few pages long.  Likewise for a collection of short
-documents--you only need one copy of the GNU FDL for the whole
-collection.  For a single short document, you can use a very permissive
-non-copyleft license, to avoid taking up space with a long license.
-
-   See  for more explanation
-of how to employ the GFDL.
-
-   Note that it is not obligatory to include a copy of the GNU GPL or
-GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It
-can be a good idea to include the program's license in a large manual;
-in a short manual, whose size would be increased considerably by
-including the program's license, it is probably better not to include
-it.
-
-
-File: standards.info,  Node: Manual Credits,  Next: Printed Manuals,  Prev: License for Manuals,  Up: Documentation
-
-6.5 Manual Credits
-==================
-
-Please credit the principal human writers of the manual as the authors,
-on the title page of the manual.  If a company sponsored the work, thank
-the company in a suitable place in the manual, but do not cite the
-company as an author.
-
-
-File: standards.info,  Node: Printed Manuals,  Next: NEWS File,  Prev: Manual Credits,  Up: Documentation
-
-6.6 Printed Manuals
-===================
-
-The FSF publishes some GNU manuals in printed form.  To encourage sales
-of these manuals, the on-line versions of the manual should mention at
-the very start that the printed manual is available and should point at
-information for getting it--for instance, with a link to the page
-.  This should not be included in
-the printed manual, though, because there it is redundant.
-
-   It is also useful to explain in the on-line forms of the manual how
-the user can print out the manual from the sources.
-
-
-File: standards.info,  Node: NEWS File,  Next: Change Logs,  Prev: Printed Manuals,  Up: Documentation
-
-6.7 The NEWS File
-=================
-
-In addition to its manual, the package should have a file named 'NEWS'
-which contains a list of user-visible changes worth mentioning.  In each
-new release, add items to the front of the file and identify the version
-they pertain to.  Don't discard old items; leave them in the file after
-the newer items.  This way, a user upgrading from any previous version
-can see what is new.
-
-   If the 'NEWS' file gets very long, move some of the older items into
-a file named 'ONEWS' and put a note at the end referring the user to
-that file.
-
-
-File: standards.info,  Node: Change Logs,  Next: Man Pages,  Prev: NEWS File,  Up: Documentation
-
-6.8 Change Logs
-===============
-
-Keep a change log to describe all the changes made to program source
-files.  The purpose of this is so that people investigating bugs in the
-future will know about the changes that might have introduced the bug.
-Often a new bug can be found by looking at what was recently changed.
-More importantly, change logs can help you eliminate conceptual
-inconsistencies between different parts of a program, by giving you a
-history of how the conflicting concepts arose and who they came from.
-
-* Menu:
-
-* Change Log Concepts::
-* Style of Change Logs::
-* Simple Changes::
-* Conditional Changes::
-* Indicating the Part Changed::
-
-
-File: standards.info,  Node: Change Log Concepts,  Next: Style of Change Logs,  Up: Change Logs
-
-6.8.1 Change Log Concepts
--------------------------
-
-You can think of the change log as a conceptual "undo list" which
-explains how earlier versions were different from the current version.
-People can see the current version; they don't need the change log to
-tell them what is in it.  What they want from a change log is a clear
-explanation of how the earlier version differed.
-
-   The change log file is normally called 'ChangeLog' and covers an
-entire directory.  Each directory can have its own change log, or a
-directory can use the change log of its parent directory--it's up to
-you.
-
-   Another alternative is to record change log information with a
-version control system such as RCS or CVS. This can be converted
-automatically to a 'ChangeLog' file using 'rcs2log'; in Emacs, the
-command 'C-x v a' ('vc-update-change-log') does the job.
-
-   There's no need to describe the full purpose of the changes or how
-they work together.  However, sometimes it is useful to write one line
-to describe the overall purpose of a change or a batch of changes.  If
-you think that a change calls for explanation, you're probably right.
-Please do explain it--but please put the full explanation in comments in
-the code, where people will see it whenever they see the code.  For
-example, "New function" is enough for the change log when you add a
-function, because there should be a comment before the function
-definition to explain what it does.
-
-   In the past, we recommended not mentioning changes in non-software
-files (manuals, help files, etc.)  in change logs.  However, we've been
-advised that it is a good idea to include them, for the sake of
-copyright records.
-
-   The easiest way to add an entry to 'ChangeLog' is with the Emacs
-command 'M-x add-change-log-entry'.  An entry should have an asterisk,
-the name of the changed file, and then in parentheses the name of the
-changed functions, variables or whatever, followed by a colon.  Then
-describe the changes you made to that function or variable.
-
-
-File: standards.info,  Node: Style of Change Logs,  Next: Simple Changes,  Prev: Change Log Concepts,  Up: Change Logs
-
-6.8.2 Style of Change Logs
---------------------------
-
-Here are some simple examples of change log entries, starting with the
-header line that says who made the change and when it was installed,
-followed by descriptions of specific changes.  (These examples are drawn
-from Emacs and GCC.)
-
-     1998-08-17  Richard Stallman  
-
-     * register.el (insert-register): Return nil.
-     (jump-to-register): Likewise.
-
-     * sort.el (sort-subr): Return nil.
-
-     * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
-     Restart the tex shell if process is gone or stopped.
-     (tex-shell-running): New function.
-
-     * expr.c (store_one_arg): Round size up for move_block_to_reg.
-     (expand_call): Round up when emitting USE insns.
-     * stmt.c (assign_parms): Round size up for move_block_from_reg.
-
-   It's important to name the changed function or variable in full.
-Don't abbreviate function or variable names, and don't combine them.
-Subsequent maintainers will often search for a function name to find all
-the change log entries that pertain to it; if you abbreviate the name,
-they won't find it when they search.
-
-   For example, some people are tempted to abbreviate groups of function
-names by writing '* register.el ({insert,jump-to}-register)'; this is
-not a good idea, since searching for 'jump-to-register' or
-'insert-register' would not find that entry.
-
-   Separate unrelated change log entries with blank lines.  When two
-entries represent parts of the same change, so that they work together,
-then don't put blank lines between them.  Then you can omit the file
-name and the asterisk when successive entries are in the same file.
-
-   Break long lists of function names by closing continued lines with
-')', rather than ',', and opening the continuation with '(' as in this
-example:
-
-     * keyboard.c (menu_bar_items, tool_bar_items)
-     (Fexecute_extended_command): Deal with `keymap' property.
-
-   When you install someone else's changes, put the contributor's name
-in the change log entry rather than in the text of the entry.  In other
-words, write this:
-
-     2002-07-14  John Doe  
-
-             * sewing.c: Make it sew.
-
-rather than this:
-
-     2002-07-14  Usual Maintainer  
-
-             * sewing.c: Make it sew.  Patch by jdoe@gnu.org.
-
-   As for the date, that should be the date you applied the change.
-
-
-File: standards.info,  Node: Simple Changes,  Next: Conditional Changes,  Prev: Style of Change Logs,  Up: Change Logs
-
-6.8.3 Simple Changes
---------------------
-
-Certain simple kinds of changes don't need much detail in the change
-log.
-
-   When you change the calling sequence of a function in a simple
-fashion, and you change all the callers of the function to use the new
-calling sequence, there is no need to make individual entries for all
-the callers that you changed.  Just write in the entry for the function
-being called, "All callers changed"--like this:
-
-     * keyboard.c (Fcommand_execute): New arg SPECIAL.
-     All callers changed.
-
-   When you change just comments or doc strings, it is enough to write
-an entry for the file, without mentioning the functions.  Just "Doc
-fixes" is enough for the change log.
-
-   There's no technical need to make change log entries for
-documentation files.  This is because documentation is not susceptible
-to bugs that are hard to fix.  Documentation does not consist of parts
-that must interact in a precisely engineered fashion.  To correct an
-error, you need not know the history of the erroneous passage; it is
-enough to compare what the documentation says with the way the program
-actually works.
-
-   However, you should keep change logs for documentation files when the
-project gets copyright assignments from its contributors, so as to make
-the records of authorship more accurate.
-
-
-File: standards.info,  Node: Conditional Changes,  Next: Indicating the Part Changed,  Prev: Simple Changes,  Up: Change Logs
-
-6.8.4 Conditional Changes
--------------------------
-
-C programs often contain compile-time '#if' conditionals.  Many changes
-are conditional; sometimes you add a new definition which is entirely
-contained in a conditional.  It is very useful to indicate in the change
-log the conditions for which the change applies.
-
-   Our convention for indicating conditional changes is to use square
-brackets around the name of the condition.
-
-   Here is a simple example, describing a change which is conditional
-but does not have a function or entity name associated with it:
-
-     * xterm.c [SOLARIS2]: Include string.h.
-
-   Here is an entry describing a new definition which is entirely
-conditional.  This new definition for the macro 'FRAME_WINDOW_P' is used
-only when 'HAVE_X_WINDOWS' is defined:
-
-     * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined.
-
-   Here is an entry for a change within the function 'init_display',
-whose definition as a whole is unconditional, but the changes themselves
-are contained in a '#ifdef HAVE_LIBNCURSES' conditional:
-
-     * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent.
-
-   Here is an entry for a change that takes affect only when a certain
-macro is _not_ defined:
-
-     (gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
-
-
-File: standards.info,  Node: Indicating the Part Changed,  Prev: Conditional Changes,  Up: Change Logs
-
-6.8.5 Indicating the Part Changed
----------------------------------
-
-Indicate the part of a function which changed by using angle brackets
-enclosing an indication of what the changed part does.  Here is an entry
-for a change in the part of the function 'sh-while-getopts' that deals
-with 'sh' commands:
-
-     * progmodes/sh-script.el (sh-while-getopts) : Handle case that
-     user-specified option string is empty.
-
-
-File: standards.info,  Node: Man Pages,  Next: Reading other Manuals,  Prev: Change Logs,  Up: Documentation
-
-6.9 Man Pages
-=============
-
-In the GNU project, man pages are secondary.  It is not necessary or
-expected for every GNU program to have a man page, but some of them do.
-It's your choice whether to include a man page in your program.
-
-   When you make this decision, consider that supporting a man page
-requires continual effort each time the program is changed.  The time
-you spend on the man page is time taken away from more useful work.
-
-   For a simple program which changes little, updating the man page may
-be a small job.  Then there is little reason not to include a man page,
-if you have one.
-
-   For a large program that changes a great deal, updating a man page
-may be a substantial burden.  If a user offers to donate a man page, you
-may find this gift costly to accept.  It may be better to refuse the man
-page unless the same person agrees to take full responsibility for
-maintaining it--so that you can wash your hands of it entirely.  If this
-volunteer later ceases to do the job, then don't feel obliged to pick it
-up yourself; it may be better to withdraw the man page from the
-distribution until someone else agrees to update it.
-
-   When a program changes only a little, you may feel that the
-discrepancies are small enough that the man page remains useful without
-updating.  If so, put a prominent note near the beginning of the man
-page explaining that you don't maintain it and that the Texinfo manual
-is more authoritative.  The note should say how to access the Texinfo
-documentation.
-
-   Be sure that man pages include a copyright statement and free
-license.  The simple all-permissive license is appropriate for simple
-man pages (*note (maintain)License Notices for Other Files::).
-
-   For long man pages, with enough explanation and documentation that
-they can be considered true manuals, use the GFDL (*note License for
-Manuals::).
-
-   Finally, the GNU help2man program
-() is one way to automate
-generation of a man page, in this case from '--help' output.  This is
-sufficient in many cases.
-
-
-File: standards.info,  Node: Reading other Manuals,  Prev: Man Pages,  Up: Documentation
-
-6.10 Reading other Manuals
-==========================
-
-There may be non-free books or documentation files that describe the
-program you are documenting.
-
-   It is ok to use these documents for reference, just as the author of
-a new algebra textbook can read other books on algebra.  A large portion
-of any non-fiction book consists of facts, in this case facts about how
-a certain program works, and these facts are necessarily the same for
-everyone who writes about the subject.  But be careful not to copy your
-outline structure, wording, tables or examples from preexisting non-free
-documentation.  Copying from free documentation may be ok; please check
-with the FSF about the individual case.
-
-
-File: standards.info,  Node: Managing Releases,  Next: References,  Prev: Documentation,  Up: Top
-
-7 The Release Process
-*********************
-
-Making a release is more than just bundling up your source files in a
-tar file and putting it up for FTP. You should set up your software so
-that it can be configured to run on a variety of systems.  Your Makefile
-should conform to the GNU standards described below, and your directory
-layout should also conform to the standards discussed below.  Doing so
-makes it easy to include your package into the larger framework of all
-GNU software.
-
-* Menu:
-
-* Configuration::               How configuration of GNU packages should work.
-* Makefile Conventions::        Makefile conventions.
-* Releases::                    Making releases
-
-
-File: standards.info,  Node: Configuration,  Next: Makefile Conventions,  Up: Managing Releases
-
-7.1 How Configuration Should Work
-=================================
-
-Each GNU distribution should come with a shell script named 'configure'.
-This script is given arguments which describe the kind of machine and
-system you want to compile the program for.  The 'configure' script must
-record the configuration options so that they affect compilation.
-
-   The description here is the specification of the interface for the
-'configure' script in GNU packages.  Many packages implement it using
-GNU Autoconf (*note Introduction: (autoconf)Top.) and/or GNU Automake
-(*note Introduction: (automake)Top.), but you do not have to use these
-tools.  You can implement it any way you like; for instance, by making
-'configure' be a wrapper around a completely different configuration
-system.
-
-   Another way for the 'configure' script to operate is to make a link
-from a standard name such as 'config.h' to the proper configuration file
-for the chosen system.  If you use this technique, the distribution
-should _not_ contain a file named 'config.h'.  This is so that people
-won't be able to build the program without configuring it first.
-
-   Another thing that 'configure' can do is to edit the Makefile.  If
-you do this, the distribution should _not_ contain a file named
-'Makefile'.  Instead, it should include a file 'Makefile.in' which
-contains the input used for editing.  Once again, this is so that people
-won't be able to build the program without configuring it first.
-
-   If 'configure' does write the 'Makefile', then 'Makefile' should have
-a target named 'Makefile' which causes 'configure' to be rerun, setting
-up the same configuration that was set up last time.  The files that
-'configure' reads should be listed as dependencies of 'Makefile'.
-
-   All the files which are output from the 'configure' script should
-have comments at the beginning explaining that they were generated
-automatically using 'configure'.  This is so that users won't think of
-trying to edit them by hand.
-
-   The 'configure' script should write a file named 'config.status'
-which describes which configuration options were specified when the
-program was last configured.  This file should be a shell script which,
-if run, will recreate the same configuration.
-
-   The 'configure' script should accept an option of the form
-'--srcdir=DIRNAME' to specify the directory where sources are found (if
-it is not the current directory).  This makes it possible to build the
-program in a separate directory, so that the actual source directory is
-not modified.
-
-   If the user does not specify '--srcdir', then 'configure' should
-check both '.' and '..' to see if it can find the sources.  If it finds
-the sources in one of these places, it should use them from there.
-Otherwise, it should report that it cannot find the sources, and should
-exit with nonzero status.
-
-   Usually the easy way to support '--srcdir' is by editing a definition
-of 'VPATH' into the Makefile.  Some rules may need to refer explicitly
-to the specified source directory.  To make this possible, 'configure'
-can add to the Makefile a variable named 'srcdir' whose value is
-precisely the specified directory.
-
-   In addition, the 'configure' script should take options corresponding
-to most of the standard directory variables (*note Directory
-Variables::).  Here is the list:
-
-     --prefix --exec-prefix --bindir --sbindir --libexecdir --sysconfdir
-     --sharedstatedir --localstatedir --libdir --includedir --oldincludedir
-     --datarootdir --datadir --infodir --localedir --mandir --docdir
-     --htmldir --dvidir --pdfdir --psdir
-
-   The 'configure' script should also take an argument which specifies
-the type of system to build the program for.  This argument should look
-like this:
-
-     CPU-COMPANY-SYSTEM
-
-   For example, an Athlon-based GNU/Linux system might be
-'i686-pc-linux-gnu'.
-
-   The 'configure' script needs to be able to decode all plausible
-alternatives for how to describe a machine.  Thus, 'athlon-pc-gnu/linux'
-would be a valid alias.  There is a shell script called 'config.sub'
-(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD)
-that you can use as a subroutine to validate system types and
-canonicalize aliases.
-
-   The 'configure' script should also take the option
-'--build=BUILDTYPE', which should be equivalent to a plain BUILDTYPE
-argument.  For example, 'configure --build=i686-pc-linux-gnu' is
-equivalent to 'configure i686-pc-linux-gnu'.  When the build type is not
-specified by an option or argument, the 'configure' script should
-normally guess it using the shell script 'config.guess'
-(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD).
-
-   Other options are permitted to specify in more detail the software or
-hardware present on the machine, to include or exclude optional parts of
-the package, or to adjust the name of some tools or arguments to them:
-
-'--enable-FEATURE[=PARAMETER]'
-     Configure the package to build and install an optional user-level
-     facility called FEATURE.  This allows users to choose which
-     optional features to include.  Giving an optional PARAMETER of 'no'
-     should omit FEATURE, if it is built by default.
-
-     No '--enable' option should *ever* cause one feature to replace
-     another.  No '--enable' option should ever substitute one useful
-     behavior for another useful behavior.  The only proper use for
-     '--enable' is for questions of whether to build part of the program
-     or exclude it.
-
-'--with-PACKAGE'
-     The package PACKAGE will be installed, so configure this package to
-     work with PACKAGE.
-
-     Possible values of PACKAGE include 'gnu-as' (or 'gas'), 'gnu-ld',
-     'gnu-libc', 'gdb', 'x', and 'x-toolkit'.
-
-     Do not use a '--with' option to specify the file name to use to
-     find certain files.  That is outside the scope of what '--with'
-     options are for.
-
-'VARIABLE=VALUE'
-     Set the value of the variable VARIABLE to VALUE.  This is used to
-     override the default values of commands or arguments in the build
-     process.  For example, the user could issue 'configure CFLAGS=-g
-     CXXFLAGS=-g' to build with debugging information and without the
-     default optimization.
-
-     Specifying variables as arguments to 'configure', like this:
-          ./configure CC=gcc
-     is preferable to setting them in environment variables:
-          CC=gcc ./configure
-     as it helps to recreate the same configuration later with
-     'config.status'.  However, both methods should be supported.
-
-   All 'configure' scripts should accept all of the "detail" options and
-the variable settings, whether or not they make any difference to the
-particular package at hand.  In particular, they should accept any
-option that starts with '--with-' or '--enable-'.  This is so users will
-be able to configure an entire GNU source tree at once with a single set
-of options.
-
-   You will note that the categories '--with-' and '--enable-' are
-narrow: they *do not* provide a place for any sort of option you might
-think of.  That is deliberate.  We want to limit the possible
-configuration options in GNU software.  We do not want GNU programs to
-have idiosyncratic configuration options.
-
-   Packages that perform part of the compilation process may support
-cross-compilation.  In such a case, the host and target machines for the
-program may be different.
-
-   The 'configure' script should normally treat the specified type of
-system as both the host and the target, thus producing a program which
-works for the same type of machine that it runs on.
-
-   To compile a program to run on a host type that differs from the
-build type, use the configure option '--host=HOSTTYPE', where HOSTTYPE
-uses the same syntax as BUILDTYPE.  The host type normally defaults to
-the build type.
-
-   To configure a cross-compiler, cross-assembler, or what have you, you
-should specify a target different from the host, using the configure
-option '--target=TARGETTYPE'.  The syntax for TARGETTYPE is the same as
-for the host type.  So the command would look like this:
-
-     ./configure --host=HOSTTYPE --target=TARGETTYPE
-
-   The target type normally defaults to the host type.  Programs for
-which cross-operation is not meaningful need not accept the '--target'
-option, because configuring an entire operating system for
-cross-operation is not a meaningful operation.
-
-   Some programs have ways of configuring themselves automatically.  If
-your program is set up to do this, your 'configure' script can simply
-ignore most of its arguments.
-
-
-File: standards.info,  Node: Makefile Conventions,  Next: Releases,  Prev: Configuration,  Up: Managing Releases
-
-7.2 Makefile Conventions
-========================
-
-This node describes conventions for writing the Makefiles for GNU
-programs.  Using Automake will help you write a Makefile that follows
-these conventions.
-
-* Menu:
-
-* Makefile Basics::             General conventions for Makefiles.
-* Utilities in Makefiles::      Utilities to be used in Makefiles.
-* Command Variables::           Variables for specifying commands.
-* DESTDIR::                     Supporting staged installs.
-* Directory Variables::         Variables for installation directories.
-* Standard Targets::            Standard targets for users.
-* Install Command Categories::  Three categories of commands in the 'install'
-                                  rule: normal, pre-install and post-install.
-
-
-File: standards.info,  Node: Makefile Basics,  Next: Utilities in Makefiles,  Up: Makefile Conventions
-
-7.2.1 General Conventions for Makefiles
----------------------------------------
-
-Every Makefile should contain this line:
-
-     SHELL = /bin/sh
-
-to avoid trouble on systems where the 'SHELL' variable might be
-inherited from the environment.  (This is never a problem with GNU
-'make'.)
-
-   Different 'make' programs have incompatible suffix lists and implicit
-rules, and this sometimes creates confusion or misbehavior.  So it is a
-good idea to set the suffix list explicitly using only the suffixes you
-need in the particular Makefile, like this:
-
-     .SUFFIXES:
-     .SUFFIXES: .c .o
-
-The first line clears out the suffix list, the second introduces all
-suffixes which may be subject to implicit rules in this Makefile.
-
-   Don't assume that '.' is in the path for command execution.  When you
-need to run programs that are a part of your package during the make,
-please make sure that it uses './' if the program is built as part of
-the make or '$(srcdir)/' if the file is an unchanging part of the source
-code.  Without one of these prefixes, the current search path is used.
-
-   The distinction between './' (the "build directory") and '$(srcdir)/'
-(the "source directory") is important because users can build in a
-separate directory using the '--srcdir' option to 'configure'.  A rule
-of the form:
-
-     foo.1 : foo.man sedscript
-             sed -e sedscript foo.man > foo.1
-
-will fail when the build directory is not the source directory, because
-'foo.man' and 'sedscript' are in the source directory.
-
-   When using GNU 'make', relying on 'VPATH' to find the source file
-will work in the case where there is a single dependency file, since the
-'make' automatic variable '$<' will represent the source file wherever
-it is.  (Many versions of 'make' set '$<' only in implicit rules.)  A
-Makefile target like
-
-     foo.o : bar.c
-             $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
-
-should instead be written as
-
-     foo.o : bar.c
-             $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
-
-in order to allow 'VPATH' to work correctly.  When the target has
-multiple dependencies, using an explicit '$(srcdir)' is the easiest way
-to make the rule work well.  For example, the target above for 'foo.1'
-is best written as:
-
-     foo.1 : foo.man sedscript
-             sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@
-
-   GNU distributions usually contain some files which are not source
-files--for example, Info files, and the output from Autoconf, Automake,
-Bison or Flex.  Since these files normally appear in the source
-directory, they should always appear in the source directory, not in the
-build directory.  So Makefile rules to update them should put the
-updated files in the source directory.
-
-   However, if a file does not appear in the distribution, then the
-Makefile should not put it in the source directory, because building a
-program in ordinary circumstances should not modify the source directory
-in any way.
-
-   Try to make the build and installation targets, at least (and all
-their subtargets) work correctly with a parallel 'make'.
-
-
-File: standards.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev: Makefile Basics,  Up: Makefile Conventions
-
-7.2.2 Utilities in Makefiles
-----------------------------
-
-Write the Makefile commands (and any shell scripts, such as 'configure')
-to run in 'sh', not in 'csh'.  Don't use any special features of 'ksh'
-or 'bash'.
-
-   The 'configure' script and the Makefile rules for building and
-installation should not use any utilities directly except these:
-
-     cat cmp cp diff echo egrep expr false grep install-info
-     ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
-
-   The compression program 'gzip' can be used in the 'dist' rule.
-
-   Stick to the generally supported options for these programs.  For
-example, don't use 'mkdir -p', convenient as it may be, because most
-systems don't support it.
-
-   It is a good idea to avoid creating symbolic links in makefiles,
-since a few systems don't support them.
-
-   The Makefile rules for building and installation can also use
-compilers and related programs, but should do so via 'make' variables so
-that the user can substitute alternatives.  Here are some of the
-programs we mean:
-
-     ar bison cc flex install ld ldconfig lex
-     make makeinfo ranlib texi2dvi yacc
-
-   Use the following 'make' variables to run those programs:
-
-     $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
-     $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
-
-   When you use 'ranlib' or 'ldconfig', you should make sure nothing bad
-happens if the system does not have the program in question.  Arrange to
-ignore an error from that command, and print a message before the
-command to tell the user that failure of this command does not mean a
-problem.  (The Autoconf 'AC_PROG_RANLIB' macro can help with this.)
-
-   If you use symbolic links, you should implement a fallback for
-systems that don't have symbolic links.
-
-   Additional utilities that can be used via Make variables are:
-
-     chgrp chmod chown mknod
-
-   It is ok to use other utilities in Makefile portions (or scripts)
-intended only for particular systems where you know those utilities
-exist.
-
-
-File: standards.info,  Node: Command Variables,  Next: DESTDIR,  Prev: Utilities in Makefiles,  Up: Makefile Conventions
-
-7.2.3 Variables for Specifying Commands
----------------------------------------
-
-Makefiles should provide variables for overriding certain commands,
-options, and so on.
-
-   In particular, you should run most utility programs via variables.
-Thus, if you use Bison, have a variable named 'BISON' whose default
-value is set with 'BISON = bison', and refer to it with '$(BISON)'
-whenever you need to use Bison.
-
-   File management utilities such as 'ln', 'rm', 'mv', and so on, need
-not be referred to through variables in this way, since users don't need
-to replace them with other programs.
-
-   Each program-name variable should come with an options variable that
-is used to supply options to the program.  Append 'FLAGS' to the
-program-name variable name to get the options variable name--for
-example, 'BISONFLAGS'.  (The names 'CFLAGS' for the C compiler, 'YFLAGS'
-for yacc, and 'LFLAGS' for lex, are exceptions to this rule, but we keep
-them because they are standard.)  Use 'CPPFLAGS' in any compilation
-command that runs the preprocessor, and use 'LDFLAGS' in any compilation
-command that does linking as well as in any direct use of 'ld'.
-
-   If there are C compiler options that _must_ be used for proper
-compilation of certain files, do not include them in 'CFLAGS'.  Users
-expect to be able to specify 'CFLAGS' freely themselves.  Instead,
-arrange to pass the necessary options to the C compiler independently of
-'CFLAGS', by writing them explicitly in the compilation commands or by
-defining an implicit rule, like this:
-
-     CFLAGS = -g
-     ALL_CFLAGS = -I. $(CFLAGS)
-     .c.o:
-             $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
-
-   Do include the '-g' option in 'CFLAGS', because that is not
-_required_ for proper compilation.  You can consider it a default that
-is only recommended.  If the package is set up so that it is compiled
-with GCC by default, then you might as well include '-O' in the default
-value of 'CFLAGS' as well.
-
-   Put 'CFLAGS' last in the compilation command, after other variables
-containing compiler options, so the user can use 'CFLAGS' to override
-the others.
-
-   'CFLAGS' should be used in every invocation of the C compiler, both
-those which do compilation and those which do linking.
-
-   Every Makefile should define the variable 'INSTALL', which is the
-basic command for installing a file into the system.
-
-   Every Makefile should also define the variables 'INSTALL_PROGRAM' and
-'INSTALL_DATA'.  (The default for 'INSTALL_PROGRAM' should be
-'$(INSTALL)'; the default for 'INSTALL_DATA' should be '${INSTALL} -m
-644'.)  Then it should use those variables as the commands for actual
-installation, for executables and non-executables respectively.  Minimal
-use of these variables is as follows:
-
-     $(INSTALL_PROGRAM) foo $(bindir)/foo
-     $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
-
-   However, it is preferable to support a 'DESTDIR' prefix on the target
-files, as explained in the next section.
-
-Always use a file name, not a directory name, as the second argument of
-the installation commands.  Use a separate command for each file to be
-installed.
-
-
-File: standards.info,  Node: DESTDIR,  Next: Directory Variables,  Prev: Command Variables,  Up: Makefile Conventions
-
-7.2.4 'DESTDIR': support for staged installs
---------------------------------------------
-
-'DESTDIR' is a variable prepended to each installed target file, like
-this:
-
-     $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
-     $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
-
-   The 'DESTDIR' variable is specified by the user on the 'make' command
-line.  For example:
-
-     make DESTDIR=/tmp/stage install
-
-'DESTDIR' should be supported only in the 'install*' and 'uninstall*'
-targets, as those are the only targets where it is useful.
-
-   If your installation step would normally install '/usr/local/bin/foo'
-and '/usr/local/lib/libfoo.a', then an installation invoked as in the
-example above would install '/tmp/stage/usr/local/bin/foo' and
-'/tmp/stage/usr/local/lib/libfoo.a' instead.
-
-   Prepending the variable 'DESTDIR' to each target in this way provides
-for "staged installs", where the installed files are not placed directly
-into their expected location but are instead copied into a temporary
-location ('DESTDIR').  However, installed files maintain their relative
-directory structure and any embedded file names will not be modified.
-
-   You should not set the value of 'DESTDIR' in your 'Makefile' at all;
-then the files are installed into their expected locations by default.
-Also, specifying 'DESTDIR' should not change the operation of the
-software in any way, so its value should not be included in any file
-contents.
-
-   'DESTDIR' support is commonly used in package creation.  It is also
-helpful to users who want to understand what a given package will
-install where, and to allow users who don't normally have permissions to
-install into protected areas to build and install before gaining those
-permissions.  Finally, it can be useful with tools such as 'stow', where
-code is installed in one place but made to appear to be installed
-somewhere else using symbolic links or special mount operations.  So, we
-strongly recommend GNU packages support 'DESTDIR', though it is not an
-absolute requirement.
-
-
-File: standards.info,  Node: Directory Variables,  Next: Standard Targets,  Prev: DESTDIR,  Up: Makefile Conventions
-
-7.2.5 Variables for Installation Directories
---------------------------------------------
-
-Installation directories should always be named by variables, so it is
-easy to install in a nonstandard place.  The standard names for these
-variables and the values they should have in GNU packages are described
-below.  They are based on a standard file system layout; variants of it
-are used in GNU/Linux and other modern operating systems.
-
-   Installers are expected to override these values when calling 'make'
-(e.g., 'make prefix=/usr install' or 'configure' (e.g., 'configure
---prefix=/usr').  GNU packages should not try to guess which value
-should be appropriate for these variables on the system they are being
-installed onto: use the default settings specified here so that all GNU
-packages behave identically, allowing the installer to achieve any
-desired layout.
-
-   These first two variables set the root for the installation.  All the
-other installation directories should be subdirectories of one of these
-two, and nothing should be directly installed into these two
-directories.
-
-'prefix'
-     A prefix used in constructing the default values of the variables
-     listed below.  The default value of 'prefix' should be
-     '/usr/local'.  When building the complete GNU system, the prefix
-     will be empty and '/usr' will be a symbolic link to '/'.  (If you
-     are using Autoconf, write it as '@prefix@'.)
-
-     Running 'make install' with a different value of 'prefix' from the
-     one used to build the program should _not_ recompile the program.
-
-'exec_prefix'
-     A prefix used in constructing the default values of some of the
-     variables listed below.  The default value of 'exec_prefix' should
-     be '$(prefix)'.  (If you are using Autoconf, write it as
-     '@exec_prefix@'.)
-
-     Generally, '$(exec_prefix)' is used for directories that contain
-     machine-specific files (such as executables and subroutine
-     libraries), while '$(prefix)' is used directly for other
-     directories.
-
-     Running 'make install' with a different value of 'exec_prefix' from
-     the one used to build the program should _not_ recompile the
-     program.
-
-   Executable programs are installed in one of the following
-directories.
-
-'bindir'
-     The directory for installing executable programs that users can
-     run.  This should normally be '/usr/local/bin', but write it as
-     '$(exec_prefix)/bin'.  (If you are using Autoconf, write it as
-     '@bindir@'.)
-
-'sbindir'
-     The directory for installing executable programs that can be run
-     from the shell, but are only generally useful to system
-     administrators.  This should normally be '/usr/local/sbin', but
-     write it as '$(exec_prefix)/sbin'.  (If you are using Autoconf,
-     write it as '@sbindir@'.)
-
-'libexecdir'
-     The directory for installing executable programs to be run by other
-     programs rather than by users.  This directory should normally be
-     '/usr/local/libexec', but write it as '$(exec_prefix)/libexec'.
-     (If you are using Autoconf, write it as '@libexecdir@'.)
-
-     The definition of 'libexecdir' is the same for all packages, so you
-     should install your data in a subdirectory thereof.  Most packages
-     install their data under '$(libexecdir)/PACKAGE-NAME/', possibly
-     within additional subdirectories thereof, such as
-     '$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
-
-   Data files used by the program during its execution are divided into
-categories in two ways.
-
-   * Some files are normally modified by programs; others are never
-     normally modified (though users may edit some of these).
-
-   * Some files are architecture-independent and can be shared by all
-     machines at a site; some are architecture-dependent and can be
-     shared only by machines of the same kind and operating system;
-     others may never be shared between two machines.
-
-   This makes for six different possibilities.  However, we want to
-discourage the use of architecture-dependent files, aside from object
-files and libraries.  It is much cleaner to make other data files
-architecture-independent, and it is generally not hard.
-
-   Here are the variables Makefiles should use to specify directories to
-put these various kinds of files in:
-
-'datarootdir'
-     The root of the directory tree for read-only
-     architecture-independent data files.  This should normally be
-     '/usr/local/share', but write it as '$(prefix)/share'.  (If you are
-     using Autoconf, write it as '@datarootdir@'.)  'datadir''s default
-     value is based on this variable; so are 'infodir', 'mandir', and
-     others.
-
-'datadir'
-     The directory for installing idiosyncratic read-only
-     architecture-independent data files for this program.  This is
-     usually the same place as 'datarootdir', but we use the two
-     separate variables so that you can move these program-specific
-     files without altering the location for Info files, man pages, etc.
-
-     This should normally be '/usr/local/share', but write it as
-     '$(datarootdir)'.  (If you are using Autoconf, write it as
-     '@datadir@'.)
-
-     The definition of 'datadir' is the same for all packages, so you
-     should install your data in a subdirectory thereof.  Most packages
-     install their data under '$(datadir)/PACKAGE-NAME/'.
-
-'sysconfdir'
-     The directory for installing read-only data files that pertain to a
-     single machine-that is to say, files for configuring a host.
-     Mailer and network configuration files, '/etc/passwd', and so forth
-     belong here.  All the files in this directory should be ordinary
-     ASCII text files.  This directory should normally be
-     '/usr/local/etc', but write it as '$(prefix)/etc'.  (If you are
-     using Autoconf, write it as '@sysconfdir@'.)
-
-     Do not install executables here in this directory (they probably
-     belong in '$(libexecdir)' or '$(sbindir)').  Also do not install
-     files that are modified in the normal course of their use (programs
-     whose purpose is to change the configuration of the system
-     excluded).  Those probably belong in '$(localstatedir)'.
-
-'sharedstatedir'
-     The directory for installing architecture-independent data files
-     which the programs modify while they run.  This should normally be
-     '/usr/local/com', but write it as '$(prefix)/com'.  (If you are
-     using Autoconf, write it as '@sharedstatedir@'.)
-
-'localstatedir'
-     The directory for installing data files which the programs modify
-     while they run, and that pertain to one specific machine.  Users
-     should never need to modify files in this directory to configure
-     the package's operation; put such configuration information in
-     separate files that go in '$(datadir)' or '$(sysconfdir)'.
-     '$(localstatedir)' should normally be '/usr/local/var', but write
-     it as '$(prefix)/var'.  (If you are using Autoconf, write it as
-     '@localstatedir@'.)
-
-   These variables specify the directory for installing certain specific
-types of files, if your program has them.  Every GNU package should have
-Info files, so every program needs 'infodir', but not all need 'libdir'
-or 'lispdir'.
-
-'includedir'
-     The directory for installing header files to be included by user
-     programs with the C '#include' preprocessor directive.  This should
-     normally be '/usr/local/include', but write it as
-     '$(prefix)/include'.  (If you are using Autoconf, write it as
-     '@includedir@'.)
-
-     Most compilers other than GCC do not look for header files in
-     directory '/usr/local/include'.  So installing the header files
-     this way is only useful with GCC. Sometimes this is not a problem
-     because some libraries are only really intended to work with GCC.
-     But some libraries are intended to work with other compilers.  They
-     should install their header files in two places, one specified by
-     'includedir' and one specified by 'oldincludedir'.
-
-'oldincludedir'
-     The directory for installing '#include' header files for use with
-     compilers other than GCC. This should normally be '/usr/include'.
-     (If you are using Autoconf, you can write it as '@oldincludedir@'.)
-
-     The Makefile commands should check whether the value of
-     'oldincludedir' is empty.  If it is, they should not try to use it;
-     they should cancel the second installation of the header files.
-
-     A package should not replace an existing header in this directory
-     unless the header came from the same package.  Thus, if your Foo
-     package provides a header file 'foo.h', then it should install the
-     header file in the 'oldincludedir' directory if either (1) there is
-     no 'foo.h' there or (2) the 'foo.h' that exists came from the Foo
-     package.
-
-     To tell whether 'foo.h' came from the Foo package, put a magic
-     string in the file--part of a comment--and 'grep' for that string.
-
-'docdir'
-     The directory for installing documentation files (other than Info)
-     for this package.  By default, it should be
-     '/usr/local/share/doc/YOURPKG', but it should be written as
-     '$(datarootdir)/doc/YOURPKG'.  (If you are using Autoconf, write it
-     as '@docdir@'.)  The YOURPKG subdirectory, which may include a
-     version number, prevents collisions among files with common names,
-     such as 'README'.
-
-'infodir'
-     The directory for installing the Info files for this package.  By
-     default, it should be '/usr/local/share/info', but it should be
-     written as '$(datarootdir)/info'.  (If you are using Autoconf,
-     write it as '@infodir@'.)  'infodir' is separate from 'docdir' for
-     compatibility with existing practice.
-
-'htmldir'
-'dvidir'
-'pdfdir'
-'psdir'
-     Directories for installing documentation files in the particular
-     format.  They should all be set to '$(docdir)' by default.  (If you
-     are using Autoconf, write them as '@htmldir@', '@dvidir@', etc.)
-     Packages which supply several translations of their documentation
-     should install them in '$(htmldir)/'LL, '$(pdfdir)/'LL, etc.  where
-     LL is a locale abbreviation such as 'en' or 'pt_BR'.
-
-'libdir'
-     The directory for object files and libraries of object code.  Do
-     not install executables here, they probably ought to go in
-     '$(libexecdir)' instead.  The value of 'libdir' should normally be
-     '/usr/local/lib', but write it as '$(exec_prefix)/lib'.  (If you
-     are using Autoconf, write it as '@libdir@'.)
-
-'lispdir'
-     The directory for installing any Emacs Lisp files in this package.
-     By default, it should be '/usr/local/share/emacs/site-lisp', but it
-     should be written as '$(datarootdir)/emacs/site-lisp'.
-
-     If you are using Autoconf, write the default as '@lispdir@'.  In
-     order to make '@lispdir@' work, you need the following lines in
-     your 'configure.in' file:
-
-          lispdir='${datarootdir}/emacs/site-lisp'
-          AC_SUBST(lispdir)
-
-'localedir'
-     The directory for installing locale-specific message catalogs for
-     this package.  By default, it should be '/usr/local/share/locale',
-     but it should be written as '$(datarootdir)/locale'.  (If you are
-     using Autoconf, write it as '@localedir@'.)  This directory usually
-     has a subdirectory per locale.
-
-   Unix-style man pages are installed in one of the following:
-
-'mandir'
-     The top-level directory for installing the man pages (if any) for
-     this package.  It will normally be '/usr/local/share/man', but you
-     should write it as '$(datarootdir)/man'.  (If you are using
-     Autoconf, write it as '@mandir@'.)
-
-'man1dir'
-     The directory for installing section 1 man pages.  Write it as
-     '$(mandir)/man1'.
-'man2dir'
-     The directory for installing section 2 man pages.  Write it as
-     '$(mandir)/man2'
-'...'
-
-     *Don't make the primary documentation for any GNU software be a man
-     page.  Write a manual in Texinfo instead.  Man pages are just for
-     the sake of people running GNU software on Unix, which is a
-     secondary application only.*
-
-'manext'
-     The file name extension for the installed man page.  This should
-     contain a period followed by the appropriate digit; it should
-     normally be '.1'.
-
-'man1ext'
-     The file name extension for installed section 1 man pages.
-'man2ext'
-     The file name extension for installed section 2 man pages.
-'...'
-     Use these names instead of 'manext' if the package needs to install
-     man pages in more than one section of the manual.
-
-   And finally, you should set the following variable:
-
-'srcdir'
-     The directory for the sources being compiled.  The value of this
-     variable is normally inserted by the 'configure' shell script.  (If
-     you are using Autoconf, use 'srcdir = @srcdir@'.)
-
-   For example:
-
-     # Common prefix for installation directories.
-     # NOTE: This directory must exist when you start the install.
-     prefix = /usr/local
-     datarootdir = $(prefix)/share
-     datadir = $(datarootdir)
-     exec_prefix = $(prefix)
-     # Where to put the executable for the command `gcc'.
-     bindir = $(exec_prefix)/bin
-     # Where to put the directories used by the compiler.
-     libexecdir = $(exec_prefix)/libexec
-     # Where to put the Info files.
-     infodir = $(datarootdir)/info
-
-   If your program installs a large number of files into one of the
-standard user-specified directories, it might be useful to group them
-into a subdirectory particular to that program.  If you do this, you
-should write the 'install' rule to create these subdirectories.
-
-   Do not expect the user to include the subdirectory name in the value
-of any of the variables listed above.  The idea of having a uniform set
-of variable names for installation directories is to enable the user to
-specify the exact same values for several different GNU packages.  In
-order for this to be useful, all the packages must be designed so that
-they will work sensibly when the user does so.
-
-   At times, not all of these variables may be implemented in the
-current release of Autoconf and/or Automake; but as of Autoconf 2.60, we
-believe all of them are.  When any are missing, the descriptions here
-serve as specifications for what Autoconf will implement.  As a
-programmer, you can either use a development version of Autoconf or
-avoid using these variables until a stable release is made which
-supports them.
-
-
-File: standards.info,  Node: Standard Targets,  Next: Install Command Categories,  Prev: Directory Variables,  Up: Makefile Conventions
-
-7.2.6 Standard Targets for Users
---------------------------------
-
-All GNU programs should have the following targets in their Makefiles:
-
-'all'
-     Compile the entire program.  This should be the default target.
-     This target need not rebuild any documentation files; Info files
-     should normally be included in the distribution, and DVI (and other
-     documentation format) files should be made only when explicitly
-     asked for.
-
-     By default, the Make rules should compile and link with '-g', so
-     that executable programs have debugging symbols.  Users who don't
-     mind being helpless can strip the executables later if they wish.
-
-'install'
-     Compile the program and copy the executables, libraries, and so on
-     to the file names where they should reside for actual use.  If
-     there is a simple test to verify that a program is properly
-     installed, this target should run that test.
-
-     Do not strip executables when installing them.  Devil-may-care
-     users can use the 'install-strip' target to do that.
-
-     If possible, write the 'install' target rule so that it does not
-     modify anything in the directory where the program was built,
-     provided 'make all' has just been done.  This is convenient for
-     building the program under one user name and installing it under
-     another.
-
-     The commands should create all the directories in which files are
-     to be installed, if they don't already exist.  This includes the
-     directories specified as the values of the variables 'prefix' and
-     'exec_prefix', as well as all subdirectories that are needed.  One
-     way to do this is by means of an 'installdirs' target as described
-     below.
-
-     Use '-' before any command for installing a man page, so that
-     'make' will ignore any errors.  This is in case there are systems
-     that don't have the Unix man page documentation system installed.
-
-     The way to install Info files is to copy them into '$(infodir)'
-     with '$(INSTALL_DATA)' (*note Command Variables::), and then run
-     the 'install-info' program if it is present.  'install-info' is a
-     program that edits the Info 'dir' file to add or update the menu
-     entry for the given Info file; it is part of the Texinfo package.
-     Here is a sample rule to install an Info file:
-
-          $(DESTDIR)$(infodir)/foo.info: foo.info
-                  $(POST_INSTALL)
-          # There may be a newer info file in . than in srcdir.
-                  -if test -f foo.info; then d=.; \
-                   else d=$(srcdir); fi; \
-                  $(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@; \
-          # Run install-info only if it exists.
-          # Use `if' instead of just prepending `-' to the
-          # line so we notice real errors from install-info.
-          # We use `$(SHELL) -c' because some shells do not
-          # fail gracefully when there is an unknown command.
-                  if $(SHELL) -c 'install-info --version' \
-                     >/dev/null 2>&1; then \
-                    install-info --dir-file=$(DESTDIR)$(infodir)/dir \
-                                 $(DESTDIR)$(infodir)/foo.info; \
-                  else true; fi
-
-     When writing the 'install' target, you must classify all the
-     commands into three categories: normal ones, "pre-installation"
-     commands and "post-installation" commands.  *Note Install Command
-     Categories::.
-
-'install-html'
-'install-dvi'
-'install-pdf'
-'install-ps'
-     These targets install documentation in formats other than Info;
-     they're intended to be called explicitly by the person installing
-     the package, if that format is desired.  GNU prefers Info files, so
-     these must be installed by the 'install' target.
-
-     When you have many documentation files to install, we recommend
-     that you avoid collisions and clutter by arranging for these
-     targets to install in subdirectories of the appropriate
-     installation directory, such as 'htmldir'.  As one example, if your
-     package has multiple manuals, and you wish to install HTML
-     documentation with many files (such as the "split" mode output by
-     'makeinfo --html'), you'll certainly want to use subdirectories, or
-     two nodes with the same name in different manuals will overwrite
-     each other.
-
-     Please make these 'install-FORMAT' targets invoke the commands for
-     the FORMAT target, for example, by making FORMAT a dependency.
-
-'uninstall'
-     Delete all the installed files--the copies that the 'install' and
-     'install-*' targets create.
-
-     This rule should not modify the directories where compilation is
-     done, only the directories where files are installed.
-
-     The uninstallation commands are divided into three categories, just
-     like the installation commands.  *Note Install Command
-     Categories::.
-
-'install-strip'
-     Like 'install', but strip the executable files while installing
-     them.  In simple cases, this target can use the 'install' target in
-     a simple way:
-
-          install-strip:
-                  $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
-                          install
-
-     But if the package installs scripts as well as real executables,
-     the 'install-strip' target can't just refer to the 'install'
-     target; it has to strip the executables but not the scripts.
-
-     'install-strip' should not strip the executables in the build
-     directory which are being copied for installation.  It should only
-     strip the copies that are installed.
-
-     Normally we do not recommend stripping an executable unless you are
-     sure the program has no bugs.  However, it can be reasonable to
-     install a stripped executable for actual execution while saving the
-     unstripped executable elsewhere in case there is a bug.
-
-'clean'
-
-     Delete all files in the current directory that are normally created
-     by building the program.  Also delete files in other directories if
-     they are created by this makefile.  However, don't delete the files
-     that record the configuration.  Also preserve files that could be
-     made by building, but normally aren't because the distribution
-     comes with them.  There is no need to delete parent directories
-     that were created with 'mkdir -p', since they could have existed
-     anyway.
-
-     Delete '.dvi' files here if they are not part of the distribution.
-
-'distclean'
-     Delete all files in the current directory (or created by this
-     makefile) that are created by configuring or building the program.
-     If you have unpacked the source and built the program without
-     creating any other files, 'make distclean' should leave only the
-     files that were in the distribution.  However, there is no need to
-     delete parent directories that were created with 'mkdir -p', since
-     they could have existed anyway.
-
-'mostlyclean'
-     Like 'clean', but may refrain from deleting a few files that people
-     normally don't want to recompile.  For example, the 'mostlyclean'
-     target for GCC does not delete 'libgcc.a', because recompiling it
-     is rarely necessary and takes a lot of time.
-
-'maintainer-clean'
-     Delete almost everything that can be reconstructed with this
-     Makefile.  This typically includes everything deleted by
-     'distclean', plus more: C source files produced by Bison, tags
-     tables, Info files, and so on.
-
-     The reason we say "almost everything" is that running the command
-     'make maintainer-clean' should not delete 'configure' even if
-     'configure' can be remade using a rule in the Makefile.  More
-     generally, 'make maintainer-clean' should not delete anything that
-     needs to exist in order to run 'configure' and then begin to build
-     the program.  Also, there is no need to delete parent directories
-     that were created with 'mkdir -p', since they could have existed
-     anyway.  These are the only exceptions; 'maintainer-clean' should
-     delete everything else that can be rebuilt.
-
-     The 'maintainer-clean' target is intended to be used by a
-     maintainer of the package, not by ordinary users.  You may need
-     special tools to reconstruct some of the files that 'make
-     maintainer-clean' deletes.  Since these files are normally included
-     in the distribution, we don't take care to make them easy to
-     reconstruct.  If you find you need to unpack the full distribution
-     again, don't blame us.
-
-     To help make users aware of this, the commands for the special
-     'maintainer-clean' target should start with these two:
-
-          @echo 'This command is intended for maintainers to use; it'
-          @echo 'deletes files that may need special tools to rebuild.'
-
-'TAGS'
-     Update a tags table for this program.
-
-'info'
-     Generate any Info files needed.  The best way to write the rules is
-     as follows:
-
-          info: foo.info
-
-          foo.info: foo.texi chap1.texi chap2.texi
-                  $(MAKEINFO) $(srcdir)/foo.texi
-
-     You must define the variable 'MAKEINFO' in the Makefile.  It should
-     run the 'makeinfo' program, which is part of the Texinfo
-     distribution.
-
-     Normally a GNU distribution comes with Info files, and that means
-     the Info files are present in the source directory.  Therefore, the
-     Make rule for an info file should update it in the source
-     directory.  When users build the package, ordinarily Make will not
-     update the Info files because they will already be up to date.
-
-'dvi'
-'html'
-'pdf'
-'ps'
-     Generate documentation files in the given format.  These targets
-     should always exist, but any or all can be a no-op if the given
-     output format cannot be generated.  These targets should not be
-     dependencies of the 'all' target; the user must manually invoke
-     them.
-
-     Here's an example rule for generating DVI files from Texinfo:
-
-          dvi: foo.dvi
-
-          foo.dvi: foo.texi chap1.texi chap2.texi
-                  $(TEXI2DVI) $(srcdir)/foo.texi
-
-     You must define the variable 'TEXI2DVI' in the Makefile.  It should
-     run the program 'texi2dvi', which is part of the Texinfo
-     distribution.(1)  Alternatively, write just the dependencies, and
-     allow GNU 'make' to provide the command.
-
-     Here's another example, this one for generating HTML from Texinfo:
-
-          html: foo.html
-
-          foo.html: foo.texi chap1.texi chap2.texi
-                  $(TEXI2HTML) $(srcdir)/foo.texi
-
-     Again, you would define the variable 'TEXI2HTML' in the Makefile;
-     for example, it might run 'makeinfo --no-split --html' ('makeinfo'
-     is part of the Texinfo distribution).
-
-'dist'
-     Create a distribution tar file for this program.  The tar file
-     should be set up so that the file names in the tar file start with
-     a subdirectory name which is the name of the package it is a
-     distribution for.  This name can include the version number.
-
-     For example, the distribution tar file of GCC version 1.40 unpacks
-     into a subdirectory named 'gcc-1.40'.
-
-     The easiest way to do this is to create a subdirectory
-     appropriately named, use 'ln' or 'cp' to install the proper files
-     in it, and then 'tar' that subdirectory.
-
-     Compress the tar file with 'gzip'.  For example, the actual
-     distribution file for GCC version 1.40 is called 'gcc-1.40.tar.gz'.
-
-     The 'dist' target should explicitly depend on all non-source files
-     that are in the distribution, to make sure they are up to date in
-     the distribution.  *Note Making Releases: Releases.
-
-'check'
-     Perform self-tests (if any).  The user must build the program
-     before running the tests, but need not install the program; you
-     should write the self-tests so that they work when the program is
-     built but not installed.
-
-   The following targets are suggested as conventional names, for
-programs in which they are useful.
-
-'installcheck'
-     Perform installation tests (if any).  The user must build and
-     install the program before running the tests.  You should not
-     assume that '$(bindir)' is in the search path.
-
-'installdirs'
-     It's useful to add a target named 'installdirs' to create the
-     directories where files are installed, and their parent
-     directories.  There is a script called 'mkinstalldirs' which is
-     convenient for this; you can find it in the Texinfo package.  You
-     can use a rule like this:
-
-          # Make sure all installation directories (e.g. $(bindir))
-          # actually exist by making them if necessary.
-          installdirs: mkinstalldirs
-                  $(srcdir)/mkinstalldirs $(bindir) $(datadir) \
-                                          $(libdir) $(infodir) \
-                                          $(mandir)
-
-     or, if you wish to support 'DESTDIR',
-
-          # Make sure all installation directories (e.g. $(bindir))
-          # actually exist by making them if necessary.
-          installdirs: mkinstalldirs
-                  $(srcdir)/mkinstalldirs \
-                      $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
-                      $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
-                      $(DESTDIR)$(mandir)
-
-     This rule should not modify the directories where compilation is
-     done.  It should do nothing but create installation directories.
-
-   ---------- Footnotes ----------
-
-   (1) 'texi2dvi' uses TeX to do the real work of formatting.  TeX is
-not distributed with Texinfo.
-
-
-File: standards.info,  Node: Install Command Categories,  Prev: Standard Targets,  Up: Makefile Conventions
-
-7.2.7 Install Command Categories
---------------------------------
-
-When writing the 'install' target, you must classify all the commands
-into three categories: normal ones, "pre-installation" commands and
-"post-installation" commands.
-
-   Normal commands move files into their proper places, and set their
-modes.  They may not alter any files except the ones that come entirely
-from the package they belong to.
-
-   Pre-installation and post-installation commands may alter other
-files; in particular, they can edit global configuration files or data
-bases.
-
-   Pre-installation commands are typically executed before the normal
-commands, and post-installation commands are typically run after the
-normal commands.
-
-   The most common use for a post-installation command is to run
-'install-info'.  This cannot be done with a normal command, since it
-alters a file (the Info directory) which does not come entirely and
-solely from the package being installed.  It is a post-installation
-command because it needs to be done after the normal command which
-installs the package's Info files.
-
-   Most programs don't need any pre-installation commands, but we have
-the feature just in case it is needed.
-
-   To classify the commands in the 'install' rule into these three
-categories, insert "category lines" among them.  A category line
-specifies the category for the commands that follow.
-
-   A category line consists of a tab and a reference to a special Make
-variable, plus an optional comment at the end.  There are three
-variables you can use, one for each category; the variable name
-specifies the category.  Category lines are no-ops in ordinary execution
-because these three Make variables are normally undefined (and you
-_should not_ define them in the makefile).
-
-   Here are the three possible category lines, each with a comment that
-explains what it means:
-
-             $(PRE_INSTALL)     # Pre-install commands follow.
-             $(POST_INSTALL)    # Post-install commands follow.
-             $(NORMAL_INSTALL)  # Normal commands follow.
-
-   If you don't use a category line at the beginning of the 'install'
-rule, all the commands are classified as normal until the first category
-line.  If you don't use any category lines, all the commands are
-classified as normal.
-
-   These are the category lines for 'uninstall':
-
-             $(PRE_UNINSTALL)     # Pre-uninstall commands follow.
-             $(POST_UNINSTALL)    # Post-uninstall commands follow.
-             $(NORMAL_UNINSTALL)  # Normal commands follow.
-
-   Typically, a pre-uninstall command would be used for deleting entries
-from the Info directory.
-
-   If the 'install' or 'uninstall' target has any dependencies which act
-as subroutines of installation, then you should start _each_
-dependency's commands with a category line, and start the main target's
-commands with a category line also.  This way, you can ensure that each
-command is placed in the right category regardless of which of the
-dependencies actually run.
-
-   Pre-installation and post-installation commands should not run any
-programs except for these:
-
-     [ basename bash cat chgrp chmod chown cmp cp dd diff echo
-     egrep expand expr false fgrep find getopt grep gunzip gzip
-     hostname install install-info kill ldconfig ln ls md5sum
-     mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
-     test touch true uname xargs yes
-
-   The reason for distinguishing the commands in this way is for the
-sake of making binary packages.  Typically a binary package contains all
-the executables and other files that need to be installed, and has its
-own method of installing them--so it does not need to run the normal
-installation commands.  But installing the binary package does need to
-execute the pre-installation and post-installation commands.
-
-   Programs to build binary packages work by extracting the
-pre-installation and post-installation commands.  Here is one way of
-extracting the pre-installation commands (the '-s' option to 'make' is
-needed to silence messages about entering subdirectories):
-
-     make -s -n install -o all \
-           PRE_INSTALL=pre-install \
-           POST_INSTALL=post-install \
-           NORMAL_INSTALL=normal-install \
-       | gawk -f pre-install.awk
-
-where the file 'pre-install.awk' could contain this:
-
-     $0 ~ /^(normal-install|post-install)[ \t]*$/ {on = 0}
-     on {print $0}
-     $0 ~ /^pre-install[ \t]*$/ {on = 1}
-
-
-File: standards.info,  Node: Releases,  Prev: Makefile Conventions,  Up: Managing Releases
-
-7.3 Making Releases
-===================
-
-You should identify each release with a pair of version numbers, a major
-version and a minor.  We have no objection to using more than two
-numbers, but it is very unlikely that you really need them.
-
-   Package the distribution of 'Foo version 69.96' up in a gzipped tar
-file with the name 'foo-69.96.tar.gz'.  It should unpack into a
-subdirectory named 'foo-69.96'.
-
-   Building and installing the program should never modify any of the
-files contained in the distribution.  This means that all the files that
-form part of the program in any way must be classified into "source
-files" and "non-source files".  Source files are written by humans and
-never changed automatically; non-source files are produced from source
-files by programs under the control of the Makefile.
-
-   The distribution should contain a file named 'README' which gives the
-name of the package, and a general description of what it does.  It is
-also good to explain the purpose of each of the first-level
-subdirectories in the package, if there are any.  The 'README' file
-should either state the version number of the package, or refer to where
-in the package it can be found.
-
-   The 'README' file should refer to the file 'INSTALL', which should
-contain an explanation of the installation procedure.
-
-   The 'README' file should also refer to the file which contains the
-copying conditions.  The GNU GPL, if used, should be in a file called
-'COPYING'.  If the GNU LGPL is used, it should be in a file called
-'COPYING.LESSER'.
-
-   Naturally, all the source files must be in the distribution.  It is
-okay to include non-source files in the distribution, provided they are
-up-to-date and machine-independent, so that building the distribution
-normally will never modify them.  We commonly include non-source files
-produced by Bison, 'lex', TeX, and 'makeinfo'; this helps avoid
-unnecessary dependencies between our distributions, so that users can
-install whichever packages they want to install.
-
-   Non-source files that might actually be modified by building and
-installing the program should *never* be included in the distribution.
-So if you do distribute non-source files, always make sure they are up
-to date when you make a new distribution.
-
-   Make sure that all the files in the distribution are world-readable,
-and that directories are world-readable and world-searchable (octal mode
-755).  We used to recommend that all directories in the distribution
-also be world-writable (octal mode 777), because ancient versions of
-'tar' would otherwise not cope when extracting the archive as an
-unprivileged user.  That can easily lead to security issues when
-creating the archive, however, so now we recommend against that.
-
-   Don't include any symbolic links in the distribution itself.  If the
-tar file contains symbolic links, then people cannot even unpack it on
-systems that don't support symbolic links.  Also, don't use multiple
-names for one file in different directories, because certain file
-systems cannot handle this and that prevents unpacking the distribution.
-
-   Try to make sure that all the file names will be unique on MS-DOS. A
-name on MS-DOS consists of up to 8 characters, optionally followed by a
-period and up to three characters.  MS-DOS will truncate extra
-characters both before and after the period.  Thus, 'foobarhacker.c' and
-'foobarhacker.o' are not ambiguous; they are truncated to 'foobarha.c'
-and 'foobarha.o', which are distinct.
-
-   Include in your distribution a copy of the 'texinfo.tex' you used to
-test print any '*.texinfo' or '*.texi' files.
-
-   Likewise, if your program uses small GNU software packages like
-regex, getopt, obstack, or termcap, include them in the distribution
-file.  Leaving them out would make the distribution file a little
-smaller at the expense of possible inconvenience to a user who doesn't
-know what other files to get.
-
-
-File: standards.info,  Node: References,  Next: GNU Free Documentation License,  Prev: Managing Releases,  Up: Top
-
-8 References to Non-Free Software and Documentation
-***************************************************
-
-A GNU program should not recommend, promote, or grant legitimacy to the
-use of any non-free program.  Proprietary software is a social and
-ethical problem, and our aim is to put an end to that problem.  We can't
-stop some people from writing proprietary programs, or stop other people
-from using them, but we can and should refuse to advertise them to new
-potential customers, or to give the public the idea that their existence
-is ethical.
-
-   The GNU definition of free software is found on the GNU web site at
-, and the definition of free
-documentation is found at .
-The terms "free" and "non-free", used in this document, refer to those
-definitions.
-
-   A list of important licenses and whether they qualify as free is in
-.  If it is not clear
-whether a license qualifies as free, please ask the GNU Project by
-writing to .  We will answer, and if the license is
-an important one, we will add it to the list.
-
-   When a non-free program or system is well known, you can mention it
-in passing--that is harmless, since users who might want to use it
-probably already know about it.  For instance, it is fine to explain how
-to build your package on top of some widely used non-free operating
-system, or how to use it together with some widely used non-free
-program.
-
-   However, you should give only the necessary information to help those
-who already use the non-free program to use your program with it--don't
-give, or refer to, any further information about the proprietary
-program, and don't imply that the proprietary program enhances your
-program, or that its existence is in any way a good thing.  The goal
-should be that people already using the proprietary program will get the
-advice they need about how to use your free program with it, while
-people who don't already use the proprietary program will not see
-anything likely to lead them to take an interest in it.
-
-   If a non-free program or system is obscure in your program's domain,
-your program should not mention or support it at all, since doing so
-would tend to popularize the non-free program more than it popularizes
-your program.  (You cannot hope to find many additional users for your
-program among the users of Foobar, if the existence of Foobar is not
-generally known among people who might want to use your program.)
-
-   Sometimes a program is free software in itself but depends on a
-non-free platform in order to run.  For instance, many Java programs
-depend on some non-free Java libraries.  To recommend or promote such a
-program is to promote the other programs it needs.  This is why we are
-careful about listing Java programs in the Free Software Directory: we
-don't want to promote the non-free Java libraries.
-
-   We hope this particular problem with Java will be gone by and by, as
-we replace the remaining non-free standard Java libraries with free
-software, but the general principle will remain the same: don't
-recommend, promote or legitimize programs that depend on non-free
-software to run.
-
-   Some free programs strongly encourage the use of non-free software.
-A typical example is 'mplayer'.  It is free software in itself, and the
-free code can handle some kinds of files.  However, 'mplayer' recommends
-use of non-free codecs for other kinds of files, and users that install
-'mplayer' are very likely to install those codecs along with it.  To
-recommend 'mplayer' is, in effect, to promote use of the non-free
-codecs.
-
-   Thus, you should not recommend programs that strongly encourage the
-use of non-free software.  This is why we do not list 'mplayer' in the
-Free Software Directory.
-
-   A GNU package should not refer the user to any non-free documentation
-for free software.  Free documentation that can be included in free
-operating systems is essential for completing the GNU system, or any
-free operating system, so encouraging it is a priority; to recommend use
-of documentation that we are not allowed to include undermines the
-impetus for the community to produce documentation that we can include.
-So GNU packages should never recommend non-free documentation.
-
-   By contrast, it is ok to refer to journal articles and textbooks in
-the comments of a program for explanation of how it functions, even
-though they are non-free.  This is because we don't include such things
-in the GNU system even they are free--they are outside the scope of what
-a software distribution needs to include.
-
-   Referring to a web site that describes or recommends a non-free
-program is promoting that program, so please do not make links (or
-mention by name) web sites that contain such material.  This policy is
-relevant particularly for the web pages for a GNU package.
-
-   Following links from nearly any web site can lead eventually to
-non-free software; this is inherent in the nature of the web.  So it
-makes no sense to criticize a site for having such links.  As long as
-the site does not itself recommend a non-free program, there is no need
-to consider the question of the sites that it links to for other
-reasons.
-
-   Thus, for example, you should not refer to AT&T's web site if that
-recommends AT&T's non-free software packages; you should not refer to a
-site that links to AT&T's site presenting it as a place to get some
-non-free program, because that link recommends and legitimizes the
-non-free program.  However, that a site contains a link to AT&T's web
-site for some other purpose (such as long-distance telephone service) is
-not an objection against it.
-
-
-File: standards.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: References,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.  We
-     recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it can
-     be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You accept
-     the license if you copy, modify or distribute the work in a way
-     requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in the
-     notice that says that the Document is released under this License.
-     If a section does not fit the above definition of Secondary then it
-     is not allowed to be designated as Invariant.  The Document may
-     contain zero Invariant Sections.  If the Document does not identify
-     any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images composed
-     of pixels) generic paint programs or (for drawings) some widely
-     available drawing editor, and that is suitable for input to text
-     formatters or for automatic translation to a variety of formats
-     suitable for input to text formatters.  A copy made in an otherwise
-     Transparent file format whose markup, or absence of markup, has
-     been arranged to thwart or discourage subsequent modification by
-     readers is not Transparent.  An image format is not Transparent if
-     used for any substantial amount of text.  A copy that is not
-     "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and standard-conforming
-     simple HTML, PostScript or PDF designed for human modification.
-     Examples of transparent image formats include PNG, XCF and JPG.
-     Opaque formats include proprietary formats that can be read and
-     edited only by proprietary word processors, SGML or XML for which
-     the DTD and/or processing tools are not generally available, and
-     the machine-generated HTML, PostScript or PDF produced by some word
-     processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow the
-     conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the title
-     equally prominent and visible.  You may add other material on the
-     covers in addition.  Copying with changes limited to the covers, as
-     long as they preserve the title of the Document and satisfy these
-     conditions, can be treated as verbatim copying in other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a machine-readable
-     Transparent copy along with each Opaque copy, or state in or with
-     each Opaque copy a computer-network location from which the general
-     network-using public has access to download using public-standard
-     network protocols a complete Transparent copy of the Document, free
-     of added material.  If you use the latter option, you must take
-     reasonably prudent steps, when you begin distribution of Opaque
-     copies in quantity, to ensure that this Transparent copy will
-     remain thus accessible at the stated location until at least one
-     year after the last time you distribute an Opaque copy (directly or
-     through your agents or retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of copies,
-     to give them a chance to provide you with an updated version of the
-     Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with the
-     Modified Version filling the role of the Document, thus licensing
-     distribution and modification of the Modified Version to whoever
-     possesses a copy of it.  In addition, you must do these things in
-     the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of previous
-          versions (which should, if there were any, be listed in the
-          History section of the Document).  You may use the same title
-          as a previous version if the original publisher of that
-          version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on the
-          Title Page.  If there is no section Entitled "History" in the
-          Document, create one stating the title, year, authors, and
-          publisher of the Document as given on its Title Page, then add
-          an item describing the Modified Version as stated in the
-          previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in the
-          "History" section.  You may omit a network location for a work
-          that was published at least four years before the Document
-          itself, or if the original publisher of the version it refers
-          to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the section
-          all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document, unaltered
-          in their text and in their titles.  Section numbers or the
-          equivalent are not considered part of the section titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option designate
-     some or all of these sections as invariant.  To do this, add their
-     titles to the list of Invariant Sections in the Modified Version's
-     license notice.  These titles must be distinct from any other
-     section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end of
-     the list of Cover Texts in the Modified Version.  Only one passage
-     of Front-Cover Text and one of Back-Cover Text may be added by (or
-     through arrangements made by) any one entity.  If the Document
-     already includes a cover text for the same cover, previously added
-     by you or by arrangement made by the same entity you are acting on
-     behalf of, you may not add another; but you may replace the old
-     one, on explicit permission from the previous publisher that added
-     the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination all
-     of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the documents
-     in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow this
-     License in all other respects regarding verbatim copying of that
-     document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of a
-     storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly and
-     finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from you
-     under this License.  If your rights have been terminated and not
-     permanently reinstated, receipt of a copy of some or all of the
-     same material does not give you any rights to use it.
-
-  10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     .
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If the
-     Document does not specify a version number of this License, you may
-     choose any version ever published (not as a draft) by the Free
-     Software Foundation.  If the Document specifies that a proxy can
-     decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
-  11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts."  line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of free
-software license, such as the GNU General Public License, to permit
-their use in free software.
-
-
-File: standards.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
-
-Index
-*****
-
-[index]
-* Menu:
-
-* '#endif', commenting:                  Comments.            (line  60)
-* '--help' output:                       --help.              (line   6)
-* '--version' output:                    --version.           (line   6)
-* '-Wall' compiler option:               Syntactic Conventions.
-                                                              (line  10)
-* accepting contributions:               Contributions.       (line   6)
-* address for bug reports:               --help.              (line  11)
-* ANSI C standard:                       Standard C.          (line   6)
-* arbitrary limits on data:              Semantics.           (line   6)
-* ASCII characters:                      Character Set.       (line   6)
-* autoconf:                              System Portability.  (line  23)
-* avoiding proprietary code:             Reading Non-Free Code.
-                                                              (line   6)
-* behavior, dependent on program's name: User Interfaces.     (line   6)
-* binary packages:                       Install Command Categories.
-                                                              (line  80)
-* bindir:                                Directory Variables. (line  54)
-* braces, in C source:                   Formatting.          (line   6)
-* bug reports:                           --help.              (line  11)
-* 'bug-standards@gnu.org' email address: Preface.             (line  30)
-* canonical name of a program:           --version.           (line  12)
-* casting pointers to integers:          CPU Portability.     (line  88)
-* CGI programs, standard options for:    Command-Line Interfaces.
-                                                              (line  31)
-* change logs:                           Change Logs.         (line   6)
-* change logs, conditional changes:      Conditional Changes. (line   6)
-* change logs, style:                    Style of Change Logs.
-                                                              (line   6)
-* character set:                         Character Set.       (line   6)
-* command-line arguments, decoding:      Semantics.           (line  46)
-* command-line interface:                Command-Line Interfaces.
-                                                              (line   6)
-* commenting:                            Comments.            (line   6)
-* compatibility with C and POSIX standards: Compatibility.    (line   6)
-* compiler warnings:                     Syntactic Conventions.
-                                                              (line  10)
-* conditional changes, and change logs:  Conditional Changes. (line   6)
-* conditionals, comments for:            Comments.            (line  60)
-* configure:                             Configuration.       (line   6)
-* control-L:                             Formatting.          (line 118)
-* conventions for makefiles:             Makefile Conventions.
-                                                              (line   6)
-* CORBA:                                 Graphical Interfaces.
-                                                              (line  16)
-* credits for manuals:                   Manual Credits.      (line   6)
-* D-bus:                                 Graphical Interfaces.
-                                                              (line  16)
-* data types, and portability:           CPU Portability.     (line   6)
-* declaration for system functions:      System Functions.    (line  21)
-* DESTDIR:                               DESTDIR.             (line   6)
-* documentation:                         Documentation.       (line   6)
-* doschk:                                Names.               (line  38)
-* downloading this manual:               Preface.             (line  14)
-* encodings:                             Character Set.       (line   6)
-* error messages:                        Semantics.           (line  19)
-* error messages, formatting:            Errors.              (line   6)
-* exec_prefix:                           Directory Variables. (line  36)
-* expressions, splitting:                Formatting.          (line  81)
-* FDL, GNU Free Documentation License:   GNU Free Documentation License.
-                                                              (line   6)
-* file usage:                            File Usage.          (line   6)
-* file-name limitations:                 Names.               (line  38)
-* formatting error messages:             Errors.              (line   6)
-* formatting source code:                Formatting.          (line   6)
-* formfeed:                              Formatting.          (line 118)
-* function argument, declaring:          Syntactic Conventions.
-                                                              (line   6)
-* function prototypes:                   Standard C.          (line  17)
-* getopt:                                Command-Line Interfaces.
-                                                              (line   6)
-* gettext:                               Internationalization.
-                                                              (line   6)
-* GNOME:                                 Graphical Interfaces.
-                                                              (line  16)
-* GNOME and Guile:                       Source Language.     (line  37)
-* gnustandards project repository:       Preface.             (line  30)
-* 'gnustandards-commit@gnu.org' mailing list: Preface.        (line  24)
-* graphical user interface:              Graphical Interfaces.
-                                                              (line   6)
-* grave accent:                          Quote Characters.    (line   6)
-* GTK+:                                  Graphical Interfaces.
-                                                              (line   6)
-* Guile:                                 Source Language.     (line  37)
-* implicit 'int':                        Syntactic Conventions.
-                                                              (line   6)
-* impossible conditions:                 Semantics.           (line  70)
-* installations, staged:                 DESTDIR.             (line   6)
-* interface styles:                      Graphical Interfaces.
-                                                              (line   6)
-* internationalization:                  Internationalization.
-                                                              (line   6)
-* keyboard interface:                    Graphical Interfaces.
-                                                              (line  16)
-* LDAP:                                  OID Allocations.     (line   6)
-* left quote:                            Quote Characters.    (line   6)
-* legal aspects:                         Legal Issues.        (line   6)
-* legal papers:                          Contributions.       (line   6)
-* libexecdir:                            Directory Variables. (line  67)
-* libraries:                             Libraries.           (line   6)
-* library functions, and portability:    System Functions.    (line   6)
-* library interface:                     Graphical Interfaces.
-                                                              (line  16)
-* license for manuals:                   License for Manuals. (line   6)
-* lint:                                  Syntactic Conventions.
-                                                              (line 109)
-* locale-specific quote characters:      Quote Characters.    (line   6)
-* long option names:                     Option Table.        (line   6)
-* long-named options:                    Command-Line Interfaces.
-                                                              (line  12)
-* makefile, conventions for:             Makefile Conventions.
-                                                              (line   6)
-* 'malloc' return value:                 Semantics.           (line  25)
-* man pages:                             Man Pages.           (line   6)
-* manual structure:                      Manual Structure Details.
-                                                              (line   6)
-* memory allocation failure:             Semantics.           (line  25)
-* memory usage:                          Memory Usage.        (line   6)
-* message text, and internationalization: Internationalization.
-                                                              (line  29)
-* mmap:                                  Mmap.                (line   6)
-* multiple variables in a line:          Syntactic Conventions.
-                                                              (line  35)
-* names of variables, functions, and files: Names.            (line   6)
-* 'NEWS' file:                           NEWS File.           (line   6)
-* non-ASCII characters:                  Character Set.       (line   6)
-* non-POSIX systems, and portability:    System Portability.  (line  32)
-* non-standard extensions:               Using Extensions.    (line   6)
-* 'NUL' characters:                      Semantics.           (line  11)
-* OID allocations for GNU:               OID Allocations.     (line   6)
-* open brace:                            Formatting.          (line   6)
-* optional features, configure-time:     Configuration.       (line  97)
-* options for compatibility:             Compatibility.       (line  14)
-* options, standard command-line:        Command-Line Interfaces.
-                                                              (line  31)
-* output device and program's behavior:  User Interfaces.     (line  13)
-* packaging:                             Releases.            (line   6)
-* PATH_INFO, specifying standard options as: Command-Line Interfaces.
-                                                              (line  31)
-* portability, and data types:           CPU Portability.     (line   6)
-* portability, and library functions:    System Functions.    (line   6)
-* portability, between system types:     System Portability.  (line   6)
-* POSIX compatibility:                   Compatibility.       (line   6)
-* 'POSIXLY_CORRECT', environment variable: Compatibility.     (line  21)
-* post-installation commands:            Install Command Categories.
-                                                              (line   6)
-* pre-installation commands:             Install Command Categories.
-                                                              (line   6)
-* prefix:                                Directory Variables. (line  26)
-* program configuration:                 Configuration.       (line   6)
-* program design:                        Design Advice.       (line   6)
-* program name and its behavior:         User Interfaces.     (line   6)
-* program's canonical name:              --version.           (line  12)
-* programming languages:                 Source Language.     (line   6)
-* proprietary programs:                  Reading Non-Free Code.
-                                                              (line   6)
-* quote characters:                      Quote Characters.    (line   6)
-* 'README' file:                         Releases.            (line  21)
-* references to non-free material:       References.          (line   6)
-* releasing:                             Managing Releases.   (line   6)
-* Savannah repository for gnustandards:  Preface.             (line  30)
-* sbindir:                               Directory Variables. (line  60)
-* signal handling:                       Semantics.           (line  59)
-* SNMP:                                  OID Allocations.     (line   6)
-* spaces before open-paren:              Formatting.          (line  75)
-* staged installs:                       DESTDIR.             (line   6)
-* standard command-line options:         Command-Line Interfaces.
-                                                              (line  31)
-* standards for makefiles:               Makefile Conventions.
-                                                              (line   6)
-* string library functions:              System Functions.    (line  54)
-* syntactic conventions:                 Syntactic Conventions.
-                                                              (line   6)
-* table of long options:                 Option Table.        (line   6)
-* temporary files:                       Semantics.           (line  84)
-* temporary variables:                   Syntactic Conventions.
-                                                              (line  23)
-* 'texinfo.tex', in a distribution:      Releases.            (line  70)
-* 'TMPDIR' environment variable:         Semantics.           (line  84)
-* trademarks:                            Trademarks.          (line   6)
-* user interface styles:                 Graphical Interfaces.
-                                                              (line   6)
-* where to obtain 'standards.texi':      Preface.             (line  14)
-* X.509:                                 OID Allocations.     (line   6)
-
-
-
-Tag Table:
-Node: Top808
-Node: Preface2083
-Node: Legal Issues4784
-Node: Reading Non-Free Code5254
-Node: Contributions6983
-Node: Trademarks9221
-Node: Design Advice10855
-Node: Source Language11447
-Node: Compatibility13566
-Node: Using Extensions15194
-Node: Standard C16771
-Node: Conditional Compilation19174
-Node: Program Behavior20572
-Node: Non-GNU Standards21688
-Node: Semantics23969
-Node: Libraries28689
-Node: Errors29934
-Node: User Interfaces32428
-Node: Graphical Interfaces34033
-Node: Command-Line Interfaces35216
-Node: --version37246
-Node: --help42965
-Node: Option Table43838
-Node: OID Allocations58793
-Node: Memory Usage60590
-Node: File Usage61626
-Node: Writing C62376
-Node: Formatting63346
-Node: Comments67635
-Node: Syntactic Conventions71186
-Node: Names74648
-Node: System Portability76860
-Node: CPU Portability79751
-Node: System Functions83653
-Node: Internationalization88845
-Node: Character Set92839
-Node: Quote Characters93652
-Node: Mmap95172
-Node: Documentation95880
-Node: GNU Manuals96986
-Node: Doc Strings and Manuals102724
-Node: Manual Structure Details104277
-Node: License for Manuals105695
-Node: Manual Credits106668
-Node: Printed Manuals107061
-Node: NEWS File107747
-Node: Change Logs108425
-Node: Change Log Concepts109179
-Node: Style of Change Logs111282
-Node: Simple Changes113782
-Node: Conditional Changes115224
-Node: Indicating the Part Changed116646
-Node: Man Pages117173
-Node: Reading other Manuals119347
-Node: Managing Releases120138
-Node: Configuration120918
-Node: Makefile Conventions129581
-Node: Makefile Basics130463
-Node: Utilities in Makefiles133637
-Node: Command Variables135783
-Node: DESTDIR139006
-Node: Directory Variables141155
-Node: Standard Targets155640
-Ref: Standard Targets-Footnote-1169156
-Node: Install Command Categories169257
-Node: Releases173790
-Node: References177794
-Node: GNU Free Documentation License183640
-Node: Index208788
-
-End Tag Table
diff --git a/libc/xtensa-lx106-elf/include/_newlib_version.h b/libc/xtensa-lx106-elf/include/_newlib_version.h
new file mode 100644
index 0000000..73b527e
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/_newlib_version.h
@@ -0,0 +1,12 @@
+/* _newlib_version.h.  Generated from _newlib_version.hin by configure.  */
+/* Version macros for internal and downstream use. */
+#ifndef _NEWLIB_VERSION_H__
+#define _NEWLIB_VERSION_H__ 1
+
+#define _NEWLIB_VERSION "2.5.0"
+#define __NEWLIB__ 2
+#define __NEWLIB_MINOR__ 5
+#define __NEWLIB_PATCHLEVEL__ 0
+
+#endif /* !_NEWLIB_VERSION_H__ */
+
diff --git a/libc/xtensa-lx106-elf/include/complex.h b/libc/xtensa-lx106-elf/include/complex.h
index 969b20e..0a3ea97 100644
--- a/libc/xtensa-lx106-elf/include/complex.h
+++ b/libc/xtensa-lx106-elf/include/complex.h
@@ -24,10 +24,12 @@ float complex cacosf(float complex);
 /* 7.3.5.2 The casin functions */
 double complex casin(double complex);
 float complex casinf(float complex);
+long double complex casinl(long double complex);
 
 /* 7.3.5.1 The catan functions */
 double complex catan(double complex);
 float complex catanf(float complex);
+long double complex catanl(long double complex);
 
 /* 7.3.5.1 The ccos functions */
 double complex ccos(double complex);
@@ -74,6 +76,7 @@ float complex cexpf(float complex);
 /* 7.3.7.2 The clog functions */
 double complex clog(double complex);
 float complex clogf(float complex);
+long double complex clogl(long double complex);
 
 /* 7.3.8 Power and absolute-value functions */
 /* 7.3.8.1 The cabs functions */
@@ -83,6 +86,7 @@ float complex clogf(float complex);
    float cabsf(float complex) __RENAME(__c99_cabsf);
    #endif
 */
+long double cabsl(long double complex) ;
 double cabs(double complex) ;
 float cabsf(float complex) ;
 
@@ -93,31 +97,56 @@ float complex cpowf(float complex, float complex);
 /* 7.3.8.3 The csqrt functions */
 double complex csqrt(double complex);
 float complex csqrtf(float complex);
+long double complex csqrtl(long double complex);
 
 /* 7.3.9 Manipulation functions */
 /* 7.3.9.1 The carg functions */ 
 double carg(double complex);
 float cargf(float complex);
+long double cargl(long double complex);
 
 /* 7.3.9.2 The cimag functions */
 double cimag(double complex);
 float cimagf(float complex);
-/*long double cimagl(long double complex); */
+long double cimagl(long double complex);
 
 /* 7.3.9.3 The conj functions */
 double complex conj(double complex);
 float complex conjf(float complex);
-/*long double complex conjl(long double complex); */
 
 /* 7.3.9.4 The cproj functions */
 double complex cproj(double complex);
 float complex cprojf(float complex);
-/*long double complex cprojl(long double complex); */
 
 /* 7.3.9.5 The creal functions */
 double creal(double complex);
 float crealf(float complex);
-/*long double creall(long double complex); */
+long double creall(long double complex);
+
+#if __GNU_VISIBLE
+double complex clog10(double complex);
+float complex clog10f(float complex);
+#endif
+
+#if defined(__CYGWIN__)
+long double complex cacosl(long double complex);
+long double complex ccosl(long double complex);
+long double complex csinl(long double complex);
+long double complex ctanl(long double complex);
+long double complex cacoshl(long double complex);
+long double complex casinhl(long double complex);
+long double complex catanhl(long double complex);
+long double complex ccoshl(long double complex);
+long double complex csinhl(long double complex);
+long double complex ctanhl(long double complex);
+long double complex cexpl(long double complex);
+long double complex cpowl(long double complex, long double complex);
+long double complex conjl(long double complex);
+long double complex cprojl(long double complex);
+#if __GNU_VISIBLE
+long double complex clog10l(long double complex);
+#endif
+#endif /* __CYGWIN__ */
 
 __END_DECLS
 
diff --git a/libc/xtensa-lx106-elf/include/cpio.h b/libc/xtensa-lx106-elf/include/cpio.h
new file mode 100644
index 0000000..99860b2
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/cpio.h
@@ -0,0 +1,30 @@
+/* POSIX.1 symbolic constants for c_mode field of cpio archive format */
+
+#ifndef _CPIO_H
+#define _CPIO_H
+
+#define	C_IRUSR		0000400	/* Read by owner */
+#define	C_IWUSR		0000200	/* Write by owner */
+#define	C_IXUSR		0000100	/* Execute by owner */
+#define	C_IRGRP		0000040	/* Read by group */
+#define	C_IWGRP		0000020	/* Write by group */
+#define	C_IXGRP		0000010	/* Execute by group */
+#define	C_IROTH		0000004	/* Read by others */
+#define	C_IWOTH		0000002	/* Write by others */
+#define	C_IXOTH		0000001	/* Execute by others */
+#define	C_ISUID		0004000	/* Set user ID */
+#define	C_ISGID		0002000	/* Set group ID */
+#define	C_ISVTX		0001000	/* On directories, restricted deletion flag */
+
+#define	C_ISDIR		0040000	/* Directory */
+#define	C_ISFIFO	0010000	/* FIFO */
+#define	C_ISREG		0100000	/* Regular file */
+#define	C_ISBLK		0060000	/* Block special */
+#define	C_ISCHR		0020000	/* Character special */
+#define	C_ISCTG		0110000	/* Reserved */
+#define	C_ISLNK		0120000	/* Symbolic link */
+#define	C_ISSOCK	0140000	/* Socket */
+
+#define	MAGIC		"070707"
+
+#endif /* _CPIO_H */
diff --git a/libc/xtensa-lx106-elf/include/ctype.h b/libc/xtensa-lx106-elf/include/ctype.h
index 56ad5ab..06458cb 100644
--- a/libc/xtensa-lx106-elf/include/ctype.h
+++ b/libc/xtensa-lx106-elf/include/ctype.h
@@ -2,6 +2,11 @@
 #define _CTYPE_H_
 
 #include "_ansi.h"
+#include 
+
+#if __POSIX_VISIBLE >= 200809 || __MISC_VISIBLE || defined (_COMPILING_NEWLIB)
+#include 
+#endif
 
 _BEGIN_STD_C
 
@@ -19,17 +24,39 @@ int _EXFUN(isxdigit,(int __c));
 int _EXFUN(tolower, (int __c));
 int _EXFUN(toupper, (int __c));
 
-#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
+#if __ISO_C_VISIBLE >= 1999
 int _EXFUN(isblank, (int __c));
 #endif
 
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE || __XSI_VISIBLE
 int _EXFUN(isascii, (int __c));
 int _EXFUN(toascii, (int __c));
 #define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a')
 #define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A')
 #endif
 
+#if __POSIX_VISIBLE >= 200809
+extern int isalnum_l (int __c, locale_t __l);
+extern int isalpha_l (int __c, locale_t __l);
+extern int isblank_l (int __c, locale_t __l);
+extern int iscntrl_l (int __c, locale_t __l);
+extern int isdigit_l (int __c, locale_t __l);
+extern int isgraph_l (int __c, locale_t __l);
+extern int islower_l (int __c, locale_t __l);
+extern int isprint_l (int __c, locale_t __l);
+extern int ispunct_l (int __c, locale_t __l);
+extern int isspace_l (int __c, locale_t __l);
+extern int isupper_l (int __c, locale_t __l);
+extern int isxdigit_l(int __c, locale_t __l);
+extern int tolower_l (int __c, locale_t __l);
+extern int toupper_l (int __c, locale_t __l);
+#endif
+
+#if __MISC_VISIBLE
+extern int isascii_l (int __c, locale_t __l);
+extern int toascii_l (int __c, locale_t __l);
+#endif
+
 #define	_U	01
 #define	_L	02
 #define	_N	04
@@ -39,22 +66,20 @@ int _EXFUN(toascii, (int __c));
 #define _X	0100
 #define	_B	0200
 
-#ifndef _MB_CAPABLE
-_CONST
-#endif
-extern	__IMPORT char	*__ctype_ptr__;
+const char *__locale_ctype_ptr (void);
+# define __CTYPE_PTR	(__locale_ctype_ptr ())
 
 #ifndef __cplusplus
 /* These macros are intentionally written in a manner that will trigger
    a gcc -Wall warning if the user mistakenly passes a 'char' instead
    of an int containing an 'unsigned char'.  Note that the sizeof will
-   always be 1, which is what we want for mapping EOF to __ctype_ptr__[0];
+   always be 1, which is what we want for mapping EOF to __CTYPE_PTR[0];
    the use of a raw index inside the sizeof triggers the gcc warning if
    __c was of type char, and sizeof masks side effects of the extra __c.
-   Meanwhile, the real index to __ctype_ptr__+1 must be cast to int,
+   Meanwhile, the real index to __CTYPE_PTR+1 must be cast to int,
    since isalpha(0x100000001LL) must equal isalpha(1), rather than being
    an out-of-bounds reference on a 64-bit machine.  */
-#define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)])
+#define __ctype_lookup(__c) ((__CTYPE_PTR+sizeof(""[__c]))[(int)(__c)])
 
 #define	isalpha(__c)	(__ctype_lookup(__c)&(_U|_L))
 #define	isupper(__c)	((__ctype_lookup(__c)&(_U|_L))==_U)
@@ -68,13 +93,45 @@ extern	__IMPORT char	*__ctype_ptr__;
 #define	isgraph(__c)	(__ctype_lookup(__c)&(_P|_U|_L|_N))
 #define iscntrl(__c)	(__ctype_lookup(__c)&_C)
 
-#if defined(__GNUC__) && \
-    (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L)
+#if defined(__GNUC__) && __ISO_C_VISIBLE >= 1999
 #define isblank(__c) \
   __extension__ ({ __typeof__ (__c) __x = (__c);		\
         (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';})
 #endif
 
+#if __POSIX_VISIBLE >= 200809
+const char *__locale_ctype_ptr_l (locale_t);
+#define __ctype_lookup_l(__c,__l) ((__locale_ctype_ptr_l(__l)+sizeof(""[__c]))[(int)(__c)])
+
+#define	isalpha_l(__c,__l)	(__ctype_lookup_l(__c,__l)&(_U|_L))
+#define	isupper_l(__c,__l)	((__ctype_lookup_l(__c,__l)&(_U|_L))==_U)
+#define	islower_l(__c,__l)	((__ctype_lookup_l(__c,__l)&(_U|_L))==_L)
+#define	isdigit_l(__c,__l)	(__ctype_lookup_l(__c,__l)&_N)
+#define	isxdigit_l(__c,__l)	(__ctype_lookup_l(__c,__l)&(_X|_N))
+#define	isspace_l(__c,__l)	(__ctype_lookup_l(__c,__l)&_S)
+#define ispunct_l(__c,__l)	(__ctype_lookup_l(__c,__l)&_P)
+#define isalnum_l(__c,__l)	(__ctype_lookup_l(__c,__l)&(_U|_L|_N))
+#define isprint_l(__c,__l)	(__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N|_B))
+#define	isgraph_l(__c,__l)	(__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N))
+#define iscntrl_l(__c,__l)	(__ctype_lookup_l(__c,__l)&_C)
+
+#if defined(__GNUC__)
+#define isblank_l(__c, __l) \
+  __extension__ ({ __typeof__ (__c) __x = (__c);		\
+        (__ctype_lookup_l(__x,__l)&_B) || (int) (__x) == '\t';})
+#endif
+
+#endif /* __POSIX_VISIBLE >= 200809 */
+
+#if __MISC_VISIBLE || __XSI_VISIBLE
+#define isascii(__c)	((unsigned)(__c)<=0177)
+#define toascii(__c)	((__c)&0177)
+#endif
+
+#if __MISC_VISIBLE
+#define isascii_l(__c,__l)	((__l),(unsigned)(__c)<=0177)
+#define toascii_l(__c,__l)	((__l),(__c)&0177)
+#endif
 
 /* Non-gcc versions will get the library versions, and will be
    slightly slower.  These macros are not NLS-aware so they are
@@ -92,18 +149,17 @@ extern	__IMPORT char	*__ctype_ptr__;
    function.  */
 #   define toupper(__c) \
   __extension__ ({ __typeof__ (__c) __x = (__c);	\
-      (void) __ctype_ptr__[__x]; (toupper) (__x);})
+      (void) __CTYPE_PTR[__x]; (toupper) (__x);})
 #   define tolower(__c) \
   __extension__ ({ __typeof__ (__c) __x = (__c);	\
-      (void) __ctype_ptr__[__x]; (tolower) (__x);})
+      (void) __CTYPE_PTR[__x]; (tolower) (__x);})
 #  endif /* _MB_EXTENDED_CHARSETS* */
 # endif /* __GNUC__ */
-#endif /* !__cplusplus */
 
-#ifndef __STRICT_ANSI__
-#define isascii(__c)	((unsigned)(__c)<=0177)
-#define toascii(__c)	((__c)&0177)
-#endif
+#if __POSIX_VISIBLE >= 200809
+#endif /* __POSIX_VISIBLE >= 200809 */
+
+#endif /* !__cplusplus */
 
 /* For C++ backward-compatibility only.  */
 extern	__IMPORT _CONST char	_ctype_[];
diff --git a/libc/xtensa-lx106-elf/include/devctl.h b/libc/xtensa-lx106-elf/include/devctl.h
new file mode 100644
index 0000000..f6055fb
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/devctl.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2016 Joel Sherrill .  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _POSIX_DEVCTL_h_
+#define _POSIX_DEVCTL_h_
+
+/*
+ * The posix_devctl() method is defined by POSIX 1003.26-2003. Aside
+ * from the single method, it adds the following requirements:
+ *
+ *   + define _POSIX_26_VERSION to 200312L
+ *   + add _SC_POSIX_26_VERSION in . Return _POSIX_26_VERSION
+ *   + application must define _POSIX_26_C_SOURCE to use posix_devctl().
+ *   + posix_devctl() is prototyped in 
+ */
+
+#ifdef _POSIX_26_C_SOURCE
+#include 
+
+int posix_devctl(
+  int              fd,
+  int              dcmd,
+  void *__restrict dev_data_ptr,
+  size_t           nbyte,
+  int *__restrict  dev_info_ptr
+);
+#endif
+
+#endif
diff --git a/libc/xtensa-lx106-elf/include/dirent.h b/libc/xtensa-lx106-elf/include/dirent.h
index 6fefc03..6135b9f 100644
--- a/libc/xtensa-lx106-elf/include/dirent.h
+++ b/libc/xtensa-lx106-elf/include/dirent.h
@@ -3,9 +3,10 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+#include 
 #include 
 
-#if !defined(MAXNAMLEN) && !defined(_POSIX_SOURCE)
+#if !defined(MAXNAMLEN) && __BSD_VISIBLE
 #define MAXNAMLEN 1024
 #endif
 
diff --git a/libc/xtensa-lx106-elf/include/fnmatch.h b/libc/xtensa-lx106-elf/include/fnmatch.h
index 06311fc..a94e923 100644
--- a/libc/xtensa-lx106-elf/include/fnmatch.h
+++ b/libc/xtensa-lx106-elf/include/fnmatch.h
@@ -33,21 +33,21 @@
 #ifndef	_FNMATCH_H_
 #define	_FNMATCH_H_
 
+#include 
+
 #define	FNM_NOMATCH	1	/* Match failed. */
 
 #define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */
 #define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */
 #define	FNM_PERIOD	0x04	/* Period must be matched by period. */
 
-#if defined(_GNU_SOURCE) || !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
+#if __GNU_VISIBLE
 #define	FNM_LEADING_DIR	0x08	/* Ignore / after Imatch. */
 #define	FNM_CASEFOLD	0x10	/* Case insensitive search. */
 #define	FNM_IGNORECASE	FNM_CASEFOLD
 #define	FNM_FILE_NAME	FNM_PATHNAME
 #endif
 
-#include 
-
 __BEGIN_DECLS
 int	 fnmatch(const char *, const char *, int);
 __END_DECLS
diff --git a/libc/xtensa-lx106-elf/include/grp.h b/libc/xtensa-lx106-elf/include/grp.h
index c3a5a67..6a26564 100644
--- a/libc/xtensa-lx106-elf/include/grp.h
+++ b/libc/xtensa-lx106-elf/include/grp.h
@@ -49,7 +49,7 @@
 #include 
 #endif
 
-#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
+#if __BSD_VISIBLE
 #define	_PATH_GROUP		"/etc/group"
 #endif
 
@@ -67,25 +67,20 @@ extern "C" {
 #ifndef __INSIDE_CYGWIN__
 struct group	*getgrgid (gid_t);
 struct group	*getgrnam (const char *);
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 int		 getgrnam_r (const char *, struct group *,
 			char *, size_t, struct group **);
 int		 getgrgid_r (gid_t, struct group *,
 			char *, size_t, struct group **);
-#ifndef _POSIX_SOURCE
+#endif /* __MISC_VISIBLE || __POSIX_VISIBLE */
+#if __MISC_VISIBLE || __XSI_VISIBLE >= 4
 struct group	*getgrent (void);
 void		 setgrent (void);
 void		 endgrent (void);
-#ifndef __CYGWIN__
-void		 setgrfile (const char *);
-#endif /* !__CYGWIN__ */
-#ifndef _XOPEN_SOURCE
-#ifndef __CYGWIN__
-char		*group_from_gid (gid_t, int);
-int		 setgroupent (int);
-#endif /* !__CYGWIN__ */
+#endif /* __MISC_VISIBLE || __XSI_VISIBLE >= 4 */
+#if __BSD_VISIBLE
 int		 initgroups (const char *, gid_t);
-#endif /* !_XOPEN_SOURCE */
-#endif /* !_POSIX_SOURCE */
+#endif /* __BSD_VISIBLE */
 #endif /* !__INSIDE_CYGWIN__ */
 
 #ifdef __cplusplus
diff --git a/libc/xtensa-lx106-elf/include/ieeefp.h b/libc/xtensa-lx106-elf/include/ieeefp.h
index 0b06fb7..2c04284 100644
--- a/libc/xtensa-lx106-elf/include/ieeefp.h
+++ b/libc/xtensa-lx106-elf/include/ieeefp.h
@@ -4,11 +4,12 @@
 #include "_ansi.h"
 
 #include 
+#include 
 
 _BEGIN_STD_C
 
 /* FIXME FIXME FIXME:
-   Neither of __ieee_{float,double}_shape_tape seem to be used anywhere
+   Neither of __ieee_{float,double}_shape_type seem to be used anywhere
    except in libm/test.  If that is the case, please delete these from here.
    If that is not the case, please insert documentation here describing why
    they're needed.  */
@@ -46,9 +47,7 @@ typedef union
     long aslong[2];
 } __ieee_double_shape_type;
 
-#endif
-
-#ifdef __IEEE_LITTLE_ENDIAN
+#elif defined __IEEE_LITTLE_ENDIAN
 
 typedef union 
 {
@@ -92,7 +91,7 @@ typedef union
 
 } __ieee_double_shape_type;
 
-#endif
+#endif /* __IEEE_LITTLE_ENDIAN */
 
 #ifdef __IEEE_BIG_ENDIAN
 
@@ -118,9 +117,7 @@ typedef union
   
 } __ieee_float_shape_type;
 
-#endif
-
-#ifdef __IEEE_LITTLE_ENDIAN
+#elif defined __IEEE_LITTLE_ENDIAN
 
 typedef union
 {
@@ -144,10 +141,70 @@ typedef union
   
 } __ieee_float_shape_type;
 
+#endif /* __IEEE_LITTLE_ENDIAN */
+
+#ifndef _LDBL_EQ_DBL
+
+#ifndef LDBL_MANT_DIG
+#error "LDBL_MANT_DIG not defined - should be found in float.h"
+
+#elif LDBL_MANT_DIG == DBL_MANT_DIG
+#error "double and long double are the same size but LDBL_EQ_DBL is not defined"
+
+#elif LDBL_MANT_DIG == 53
+/* This happens when doubles are 32-bits and long doubles are 64-bits.  */
+#define	EXT_EXPBITS	11
+#define EXT_FRACHBITS	20
+#define	EXT_FRACLBITS	32
+#define __ieee_ext_field_type unsigned long
+
+#elif LDBL_MANT_DIG == 64
+#define	EXT_EXPBITS	15
+#define EXT_FRACHBITS	32
+#define	EXT_FRACLBITS	32
+#define __ieee_ext_field_type unsigned int
+
+#elif LDBL_MANT_DIG == 65
+#define	EXT_EXPBITS	15
+#define EXT_FRACHBITS	32
+#define	EXT_FRACLBITS	32
+#define __ieee_ext_field_type unsigned int
+
+#elif LDBL_MANT_DIG == 112
+#define	EXT_EXPBITS	15
+#define EXT_FRACHBITS	48
+#define	EXT_FRACLBITS	64
+#define __ieee_ext_field_type unsigned long long
+
+#elif LDBL_MANT_DIG == 113
+#define	EXT_EXPBITS	15
+#define EXT_FRACHBITS	48
+#define	EXT_FRACLBITS	64
+#define __ieee_ext_field_type unsigned long long
+
+#else
+#error Unsupported value for LDBL_MANT_DIG
 #endif
 
+#define	EXT_EXP_INFNAN	   ((1 << EXT_EXPBITS) - 1) /* 32767 */
+#define	EXT_EXP_BIAS	   ((1 << (EXT_EXPBITS - 1)) - 1) /* 16383 */
+#define	EXT_FRACBITS	   (EXT_FRACLBITS + EXT_FRACHBITS)
 
+typedef struct ieee_ext
+{
+  __ieee_ext_field_type	 ext_fracl : EXT_FRACLBITS;
+  __ieee_ext_field_type	 ext_frach : EXT_FRACHBITS;
+  __ieee_ext_field_type	 ext_exp   : EXT_EXPBITS;
+  __ieee_ext_field_type	 ext_sign  : 1;
+} ieee_ext;
 
+typedef union ieee_ext_u
+{
+  long double		extu_ld;
+  struct ieee_ext	extu_ext;
+} ieee_ext_u;
+
+#endif /* ! _LDBL_EQ_DBL */
 
 
 /* FLOATING ROUNDING */
@@ -184,19 +241,6 @@ typedef int fp_rdi;
 fp_rdi _EXFUN(fpgetroundtoi,(void));
 fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi));
 
-#undef isnan
-#undef isinf
-
-int _EXFUN(isnan, (double));
-int _EXFUN(isinf, (double));
-int _EXFUN(finite, (double));
-
-
-
-int _EXFUN(isnanf, (float));
-int _EXFUN(isinff, (float));
-int _EXFUN(finitef, (float));
-
 #define __IEEE_DBL_EXPBIAS 1023
 #define __IEEE_FLT_EXPBIAS 127
 
@@ -213,22 +257,17 @@ int _EXFUN(finitef, (float));
 #define __IEEE_DBL_NAN_EXP 0x7ff
 #define __IEEE_FLT_NAN_EXP 0xff
 
-#ifndef __ieeefp_isnanf
-#define __ieeefp_isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
-			    ((*(long *)&(x) & 0x007fffffL)!=0000000000L))
-#endif
+#ifdef __ieeefp_isnanf
 #define isnanf(x)	__ieeefp_isnanf(x)
-
-#ifndef __ieeefp_isinff
-#define __ieeefp_isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
-			    ((*(long *)&(x) & 0x007fffffL)==0000000000L))
 #endif
+
+#ifdef __ieeefp_isinff
 #define isinff(x)	__ieeefp_isinff(x)
-
-#ifndef __ieeefp_finitef
-#define __ieeefp_finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L))
 #endif
+
+#ifdef __ieeefp_finitef
 #define finitef(x)	__ieeefp_finitef(x)
+#endif
 
 #ifdef _DOUBLE_IS_32BITS
 #undef __IEEE_DBL_EXPBIAS
diff --git a/libc/xtensa-lx106-elf/include/inttypes.h b/libc/xtensa-lx106-elf/include/inttypes.h
index 39bf135..25c6e99 100644
--- a/libc/xtensa-lx106-elf/include/inttypes.h
+++ b/libc/xtensa-lx106-elf/include/inttypes.h
@@ -14,6 +14,7 @@
 #define _INTTYPES_H
 
 #include 
+#include 
 #include 
 #include 
 #define __need_wchar_t
@@ -22,7 +23,9 @@
 #define __STRINGIFY(a) #a
 
 /* 8-bit types */
-#define __PRI8(x) __STRINGIFY(x)
+#define __PRI8(x) __INT8 __STRINGIFY(x)
+#define __PRI8LEAST(x) __LEAST8 __STRINGIFY(x)
+#define __PRI8FAST(x) __FAST8 __STRINGIFY(x)
 
 /* NOTICE: scanning 8-bit types requires use of the hh specifier
  * which is only supported on newlib platforms that
@@ -35,7 +38,9 @@
  */
 
 #if defined(_WANT_IO_C99_FORMATS)
-  #define __SCN8(x) __STRINGIFY(hh##x)
+  #define __SCN8(x) __INT8 __STRINGIFY(x)
+	#define __SCN8LEAST(x) __LEAST8 __STRINGIFY(x)
+	#define __SCN8FAST(x) __FAST8 __STRINGIFY(x)
 #endif /* _WANT_IO_C99_FORMATS */
 
 
@@ -58,45 +63,49 @@
 #endif /* _WANT_IO_C99_FORMATS */
 
 
-#define PRIdLEAST8	__PRI8(d)
-#define PRIiLEAST8	__PRI8(i)
-#define PRIoLEAST8	__PRI8(o)
-#define PRIuLEAST8	__PRI8(u)
-#define PRIxLEAST8	__PRI8(x)
-#define PRIXLEAST8	__PRI8(X)
+#define PRIdLEAST8	__PRI8LEAST(d)
+#define PRIiLEAST8	__PRI8LEAST(i)
+#define PRIoLEAST8	__PRI8LEAST(o)
+#define PRIuLEAST8	__PRI8LEAST(u)
+#define PRIxLEAST8	__PRI8LEAST(x)
+#define PRIXLEAST8	__PRI8LEAST(X)
 
 /* Macros below are only enabled for a newlib built with C99 I/O format support. */
 #if defined(_WANT_IO_C99_FORMATS)
 
-  #define SCNdLEAST8	__SCN8(d)
-  #define SCNiLEAST8	__SCN8(i)
-  #define SCNoLEAST8	__SCN8(o)
-  #define SCNuLEAST8	__SCN8(u)
-  #define SCNxLEAST8	__SCN8(x)
+  #define SCNdLEAST8	__SCN8LEAST(d)
+  #define SCNiLEAST8	__SCN8LEAST(i)
+  #define SCNoLEAST8	__SCN8LEAST(o)
+  #define SCNuLEAST8	__SCN8LEAST(u)
+  #define SCNxLEAST8	__SCN8LEAST(x)
 
 #endif /* _WANT_IO_C99_FORMATS */
 
-#define PRIdFAST8	__PRI8(d)
-#define PRIiFAST8	__PRI8(i)
-#define PRIoFAST8	__PRI8(o)
-#define PRIuFAST8	__PRI8(u)
-#define PRIxFAST8	__PRI8(x)
-#define PRIXFAST8	__PRI8(X)
+#define PRIdFAST8	__PRI8FAST(d)
+#define PRIiFAST8	__PRI8FAST(i)
+#define PRIoFAST8	__PRI8FAST(o)
+#define PRIuFAST8	__PRI8FAST(u)
+#define PRIxFAST8	__PRI8FAST(x)
+#define PRIXFAST8	__PRI8FAST(X)
 
 /* Macros below are only enabled for a newlib built with C99 I/O format support. */
 #if defined(_WANT_IO_C99_FORMATS)
 
-  #define SCNdFAST8	__SCN8(d)
-  #define SCNiFAST8	__SCN8(i)
-  #define SCNoFAST8	__SCN8(o)
-  #define SCNuFAST8	__SCN8(u)
-  #define SCNxFAST8	__SCN8(x)
+  #define SCNdFAST8	__SCN8FAST(d)
+  #define SCNiFAST8	__SCN8FAST(i)
+  #define SCNoFAST8	__SCN8FAST(o)
+  #define SCNuFAST8	__SCN8FAST(u)
+  #define SCNxFAST8	__SCN8FAST(x)
 
 #endif /* _WANT_IO_C99_FORMATS */
 
 /* 16-bit types */
-#define __PRI16(x) __STRINGIFY(x)
-#define __SCN16(x) __STRINGIFY(h##x)
+#define __PRI16(x) __INT16 __STRINGIFY(x)
+#define __PRI16LEAST(x) __LEAST16 __STRINGIFY(x)
+#define __PRI16FAST(x) __FAST16 __STRINGIFY(x)
+#define __SCN16(x) __INT16 __STRINGIFY(x)
+#define __SCN16LEAST(x) __LEAST16 __STRINGIFY(x)
+#define __SCN16FAST(x) __FAST16 __STRINGIFY(x)
 
 
 #define PRId16		__PRI16(d)
@@ -113,41 +122,40 @@
 #define SCNx16		__SCN16(x)
 
 
-#define PRIdLEAST16	__PRI16(d)
-#define PRIiLEAST16	__PRI16(i)
-#define PRIoLEAST16	__PRI16(o)
-#define PRIuLEAST16	__PRI16(u)
-#define PRIxLEAST16	__PRI16(x)
-#define PRIXLEAST16	__PRI16(X)
+#define PRIdLEAST16	__PRI16LEAST(d)
+#define PRIiLEAST16	__PRI16LEAST(i)
+#define PRIoLEAST16	__PRI16LEAST(o)
+#define PRIuLEAST16	__PRI16LEAST(u)
+#define PRIxLEAST16	__PRI16LEAST(x)
+#define PRIXLEAST16	__PRI16LEAST(X)
 
-#define SCNdLEAST16	__SCN16(d)
-#define SCNiLEAST16	__SCN16(i)
-#define SCNoLEAST16	__SCN16(o)
-#define SCNuLEAST16	__SCN16(u)
-#define SCNxLEAST16	__SCN16(x)
+#define SCNdLEAST16	__SCN16LEAST(d)
+#define SCNiLEAST16	__SCN16LEAST(i)
+#define SCNoLEAST16	__SCN16LEAST(o)
+#define SCNuLEAST16	__SCN16LEAST(u)
+#define SCNxLEAST16	__SCN16LEAST(x)
 
 
-#define PRIdFAST16	__PRI16(d)
-#define PRIiFAST16	__PRI16(i)
-#define PRIoFAST16	__PRI16(o)
-#define PRIuFAST16	__PRI16(u)
-#define PRIxFAST16	__PRI16(x)
-#define PRIXFAST16	__PRI16(X)
+#define PRIdFAST16	__PRI16FAST(d)
+#define PRIiFAST16	__PRI16FAST(i)
+#define PRIoFAST16	__PRI16FAST(o)
+#define PRIuFAST16	__PRI16FAST(u)
+#define PRIxFAST16	__PRI16FAST(x)
+#define PRIXFAST16	__PRI16FAST(X)
 
-#define SCNdFAST16	__SCN16(d)
-#define SCNiFAST16	__SCN16(i)
-#define SCNoFAST16	__SCN16(o)
-#define SCNuFAST16	__SCN16(u)
-#define SCNxFAST16	__SCN16(x)
+#define SCNdFAST16	__SCN16FAST(d)
+#define SCNiFAST16	__SCN16FAST(i)
+#define SCNoFAST16	__SCN16FAST(o)
+#define SCNuFAST16	__SCN16FAST(u)
+#define SCNxFAST16	__SCN16FAST(x)
 
 /* 32-bit types */
-#if __have_long32
-#define __PRI32(x) __STRINGIFY(l##x)
-#define __SCN32(x) __STRINGIFY(l##x)
-#else
-#define __PRI32(x) __STRINGIFY(x)
-#define __SCN32(x) __STRINGIFY(x)
-#endif
+#define __PRI32(x) __INT32 __STRINGIFY(x)
+#define __SCN32(x) __INT32 __STRINGIFY(x)
+#define __PRI32LEAST(x) __LEAST32 __STRINGIFY(x)
+#define __SCN32LEAST(x) __LEAST32 __STRINGIFY(x)
+#define __PRI32FAST(x) __FAST32 __STRINGIFY(x)
+#define __SCN32FAST(x) __FAST32 __STRINGIFY(x)
 
 #define PRId32		__PRI32(d)
 #define PRIi32		__PRI32(i)
@@ -163,46 +171,44 @@
 #define SCNx32		__SCN32(x)
 
 
-#define PRIdLEAST32	__PRI32(d)
-#define PRIiLEAST32	__PRI32(i)
-#define PRIoLEAST32	__PRI32(o)
-#define PRIuLEAST32	__PRI32(u)
-#define PRIxLEAST32	__PRI32(x)
-#define PRIXLEAST32	__PRI32(X)
+#define PRIdLEAST32	__PRI32LEAST(d)
+#define PRIiLEAST32	__PRI32LEAST(i)
+#define PRIoLEAST32	__PRI32LEAST(o)
+#define PRIuLEAST32	__PRI32LEAST(u)
+#define PRIxLEAST32	__PRI32LEAST(x)
+#define PRIXLEAST32	__PRI32LEAST(X)
 
-#define SCNdLEAST32	__SCN32(d)
-#define SCNiLEAST32	__SCN32(i)
-#define SCNoLEAST32	__SCN32(o)
-#define SCNuLEAST32	__SCN32(u)
-#define SCNxLEAST32	__SCN32(x)
+#define SCNdLEAST32	__SCN32LEAST(d)
+#define SCNiLEAST32	__SCN32LEAST(i)
+#define SCNoLEAST32	__SCN32LEAST(o)
+#define SCNuLEAST32	__SCN32LEAST(u)
+#define SCNxLEAST32	__SCN32LEAST(x)
 
 
-#define PRIdFAST32	__PRI32(d)
-#define PRIiFAST32	__PRI32(i)
-#define PRIoFAST32	__PRI32(o)
-#define PRIuFAST32	__PRI32(u)
-#define PRIxFAST32	__PRI32(x)
-#define PRIXFAST32	__PRI32(X)
+#define PRIdFAST32	__PRI32FAST(d)
+#define PRIiFAST32	__PRI32FAST(i)
+#define PRIoFAST32	__PRI32FAST(o)
+#define PRIuFAST32	__PRI32FAST(u)
+#define PRIxFAST32	__PRI32FAST(x)
+#define PRIXFAST32	__PRI32FAST(X)
 
-#define SCNdFAST32	__SCN32(d)
-#define SCNiFAST32	__SCN32(i)
-#define SCNoFAST32	__SCN32(o)
-#define SCNuFAST32	__SCN32(u)
-#define SCNxFAST32	__SCN32(x)
+#define SCNdFAST32	__SCN32FAST(d)
+#define SCNiFAST32	__SCN32FAST(i)
+#define SCNoFAST32	__SCN32FAST(o)
+#define SCNuFAST32	__SCN32FAST(u)
+#define SCNxFAST32	__SCN32FAST(x)
 
 
 /* 64-bit types */
-#if __have_long64
-#define __PRI64(x) __STRINGIFY(l##x)
-#define __SCN64(x) __STRINGIFY(l##x)
-#elif __have_longlong64
-#define __PRI64(x) __STRINGIFY(ll##x)
-#define __SCN64(x) __STRINGIFY(ll##x)
-#else
-#define __PRI64(x) __STRINGIFY(x)
-#define __SCN64(x) __STRINGIFY(x)
-#endif
+#define __PRI64(x) __INT64 __STRINGIFY(x)
+#define __SCN64(x) __INT64 __STRINGIFY(x)
 
+#define __PRI64LEAST(x) __LEAST64 __STRINGIFY(x)
+#define __SCN64LEAST(x) __LEAST64 __STRINGIFY(x)
+#define __PRI64FAST(x) __FAST64 __STRINGIFY(x)
+#define __SCN64FAST(x) __FAST64 __STRINGIFY(x)
+
+#if __int64_t_defined
 #define PRId64		__PRI64(d)
 #define PRIi64		__PRI64(i)
 #define PRIo64		__PRI64(o)
@@ -215,34 +221,36 @@
 #define SCNo64		__SCN64(o)
 #define SCNu64		__SCN64(u)
 #define SCNx64		__SCN64(x)
+#endif
 
-#if __int64_t_defined
-#define PRIdLEAST64	__PRI64(d)
-#define PRIiLEAST64	__PRI64(i)
-#define PRIoLEAST64	__PRI64(o)
-#define PRIuLEAST64	__PRI64(u)
-#define PRIxLEAST64	__PRI64(x)
-#define PRIXLEAST64	__PRI64(X)
+#if __int_least64_t_defined
+#define PRIdLEAST64	__PRI64LEAST(d)
+#define PRIiLEAST64	__PRI64LEAST(i)
+#define PRIoLEAST64	__PRI64LEAST(o)
+#define PRIuLEAST64	__PRI64LEAST(u)
+#define PRIxLEAST64	__PRI64LEAST(x)
+#define PRIXLEAST64	__PRI64LEAST(X)
 
-#define SCNdLEAST64	__SCN64(d)
-#define SCNiLEAST64	__SCN64(i)
-#define SCNoLEAST64	__SCN64(o)
-#define SCNuLEAST64	__SCN64(u)
-#define SCNxLEAST64	__SCN64(x)
+#define SCNdLEAST64	__SCN64LEAST(d)
+#define SCNiLEAST64	__SCN64LEAST(i)
+#define SCNoLEAST64	__SCN64LEAST(o)
+#define SCNuLEAST64	__SCN64LEAST(u)
+#define SCNxLEAST64	__SCN64LEAST(x)
+#endif
 
+#if __int_fast64_t_defined
+#define PRIdFAST64	__PRI64FAST(d)
+#define PRIiFAST64	__PRI64FAST(i)
+#define PRIoFAST64	__PRI64FAST(o)
+#define PRIuFAST64	__PRI64FAST(u)
+#define PRIxFAST64	__PRI64FAST(x)
+#define PRIXFAST64	__PRI64FAST(X)
 
-#define PRIdFAST64	__PRI64(d)
-#define PRIiFAST64	__PRI64(i)
-#define PRIoFAST64	__PRI64(o)
-#define PRIuFAST64	__PRI64(u)
-#define PRIxFAST64	__PRI64(x)
-#define PRIXFAST64	__PRI64(X)
-
-#define SCNdFAST64	__SCN64(d)
-#define SCNiFAST64	__SCN64(i)
-#define SCNoFAST64	__SCN64(o)
-#define SCNuFAST64	__SCN64(u)
-#define SCNxFAST64	__SCN64(x)
+#define SCNdFAST64	__SCN64FAST(d)
+#define SCNiFAST64	__SCN64FAST(i)
+#define SCNoFAST64	__SCN64FAST(o)
+#define SCNuFAST64	__SCN64FAST(u)
+#define SCNxFAST64	__SCN64FAST(x)
 #endif
 
 /* max-bit types */
@@ -271,10 +279,10 @@
 #define SCNxMAX		__SCNMAX(x)
 
 /* ptr types */
-#if defined(_UINTPTR_EQ_ULONGLONG)
+#if defined (_INTPTR_EQ_LONGLONG)
 # define __PRIPTR(x) __STRINGIFY(ll##x)
 # define __SCNPTR(x) __STRINGIFY(ll##x)
-#elif defined(_UINTPTR_EQ_ULONG)
+#elif defined (_INTPTR_EQ_LONG)
 # define __PRIPTR(x) __STRINGIFY(l##x)
 # define __SCNPTR(x) __STRINGIFY(l##x)
 #else
diff --git a/libc/xtensa-lx106-elf/include/langinfo.h b/libc/xtensa-lx106-elf/include/langinfo.h
index 9040ade..59381d6 100644
--- a/libc/xtensa-lx106-elf/include/langinfo.h
+++ b/libc/xtensa-lx106-elf/include/langinfo.h
@@ -32,6 +32,9 @@
 #include 
 #include 
 #include 
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
 
 typedef int nl_item;
 
@@ -301,7 +304,7 @@ enum __nl_item
   _NL_COLLATE_CODESET,
 
   /* This MUST be the last entry since it's used to check for an array
-     index in nl_langinfo(). */
+     index in nl_langinfo(). It also must not exceed _NL_LOCALE_NAME_BASE. */
   _NL_LOCALE_EXTENDED_LAST_ENTRY
 
 #endif /* __HAVE_LOCALE_INFO_EXTENDED__ */
@@ -309,8 +312,19 @@ enum __nl_item
 
 };
 
+/* As an extension, nl_langinfo can retrive the name of a locale
+   category, with this mapping from setlocale() category (other than
+   LC_ALL) to nl_item. */
+#define _NL_LOCALE_NAME_BASE 100000
+#if __GNU_VISIBLE
+#define NL_LOCALE_NAME(category) (_NL_LOCALE_NAME_BASE + (category))
+#endif
+
 __BEGIN_DECLS
-char	*nl_langinfo(nl_item);
+char	*nl_langinfo (nl_item);
+#if __POSIX_VISIBLE >= 200809
+char	*nl_langinfo_l (nl_item, locale_t);
+#endif
 __END_DECLS
 
 #endif /* !_LANGINFO_H_ */
diff --git a/libc/xtensa-lx106-elf/include/libgen.h b/libc/xtensa-lx106-elf/include/libgen.h
index abfab0e..3c717c5 100644
--- a/libc/xtensa-lx106-elf/include/libgen.h
+++ b/libc/xtensa-lx106-elf/include/libgen.h
@@ -6,13 +6,27 @@
 #define _LIBGEN_H_
 
 #include "_ansi.h"
+#include 
 #include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-char      *_EXFUN(basename,     (char *));
+/* There are two common basename variants.  If you do NOT #include 
+   and you do
+
+     #define _GNU_SOURCE
+     #include 
+
+   you get the GNU version.  Otherwise you get the POSIX versionfor which you
+   should #include i for the function prototype.  POSIX requires that
+   #undef basename will still let you invoke the underlying function.  However,
+   this also implies that the POSIX version is used in this case.  That's made
+   sure here. */
+#undef basename
+#define basename __xpg_basename
+char      *_EXFUN(basename,     (char *)) __asm__(__ASMNAME("basename"));
 char      *_EXFUN(dirname,     (char *));
 
 #ifdef __cplusplus
diff --git a/libc/xtensa-lx106-elf/include/limits.h b/libc/xtensa-lx106-elf/include/limits.h
index 190f1f7..dd09c1c 100644
--- a/libc/xtensa-lx106-elf/include/limits.h
+++ b/libc/xtensa-lx106-elf/include/limits.h
@@ -2,6 +2,7 @@
 # define _LIBC_LIMITS_H_	1
 
 #include 
+#include 
 
 # ifdef _MB_LEN_MAX
 #  define MB_LEN_MAX	_MB_LEN_MAX
@@ -96,8 +97,7 @@
 #    define __LONG_LONG_MAX__ 9223372036854775807LL
 #   endif
 
-#   if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) ||   \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#   if __ISO_C_VISIBLE >= 1999
 /* Minimum and maximum values a `signed long long int' can hold.  */
 #    undef LLONG_MIN
 #    define LLONG_MIN (-LLONG_MAX-1)
@@ -109,7 +109,7 @@
 #    define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
 #   endif
 
-#  if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
+#  if __GNU_VISIBLE
 /* Minimum and maximum values a `signed long long int' can hold.  */
 #    undef LONG_LONG_MIN
 #    define LONG_LONG_MIN (-LONG_LONG_MAX-1)
diff --git a/libc/xtensa-lx106-elf/include/locale.h b/libc/xtensa-lx106-elf/include/locale.h
index cbd658e..8ba88a9 100644
--- a/libc/xtensa-lx106-elf/include/locale.h
+++ b/libc/xtensa-lx106-elf/include/locale.h
@@ -8,6 +8,7 @@
 #define _LOCALE_H_
 
 #include "_ansi.h"
+#include 
 
 #define __need_NULL
 #include 
@@ -20,6 +21,22 @@
 #define LC_TIME     5
 #define LC_MESSAGES 6
 
+#if __POSIX_VISIBLE >= 200809 || defined (_COMPILING_NEWLIB)
+
+#include 
+
+#define LC_ALL_MASK		(1 << LC_ALL)
+#define LC_COLLATE_MASK		(1 << LC_COLLATE)
+#define LC_CTYPE_MASK		(1 << LC_CTYPE)
+#define LC_MONETARY_MASK	(1 << LC_MONETARY)
+#define LC_NUMERIC_MASK		(1 << LC_NUMERIC)
+#define LC_TIME_MASK		(1 << LC_TIME)
+#define LC_MESSAGES_MASK	(1 << LC_MESSAGES)
+
+#define LC_GLOBAL_LOCALE	((struct __locale_t *) -1)
+
+#endif /* __POSIX_VISIBLE >= 200809 */
+
 _BEGIN_STD_C
 
 struct lconv
@@ -50,15 +67,30 @@ struct lconv
   char int_p_sign_posn;
 };
 
-#ifndef _REENT_ONLY
-char *_EXFUN(setlocale,(int category, const char *locale));
-struct lconv *_EXFUN(localeconv,(void));
-#endif
-
 struct _reent;
-char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale));
+char *_EXFUN(_setlocale_r,(struct _reent *, int, const char *));
 struct lconv *_EXFUN(_localeconv_r,(struct _reent *));
 
+struct __locale_t *_newlocale_r (struct _reent *, int, const char *,
+				 struct __locale_t *);
+void _freelocale_r (struct _reent *, struct __locale_t *);
+struct __locale_t *_duplocale_r (struct _reent *, struct __locale_t *);
+struct __locale_t *_uselocale_r (struct _reent *, struct __locale_t *);
+
+#ifndef _REENT_ONLY
+
+char *_EXFUN(setlocale,(int, const char *));
+struct lconv *_EXFUN(localeconv,(void));
+
+#if __POSIX_VISIBLE >= 200809
+locale_t newlocale (int, const char *, locale_t);
+void freelocale (locale_t);
+locale_t duplocale (locale_t);
+locale_t uselocale (locale_t);
+#endif /* __POSIX_VISIBLE >= 200809 */
+
+#endif /* _REENT_ONLY */
+
 _END_STD_C
 
 #endif /* _LOCALE_H_ */
diff --git a/libc/xtensa-lx106-elf/include/machine/_arc4random.h b/libc/xtensa-lx106-elf/include/machine/_arc4random.h
new file mode 100644
index 0000000..52808d7
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/machine/_arc4random.h
@@ -0,0 +1 @@
+/* Use default implementation, see arc4random.h */
diff --git a/libc/xtensa-lx106-elf/include/machine/_default_types.h b/libc/xtensa-lx106-elf/include/machine/_default_types.h
index 03bdc52..59552f5 100644
--- a/libc/xtensa-lx106-elf/include/machine/_default_types.h
+++ b/libc/xtensa-lx106-elf/include/machine/_default_types.h
@@ -46,6 +46,9 @@ typedef __int64_t __int_least64_t;
 typedef __uint64_t __uint_least64_t;
 #define ___int_least64_t_defined
 
+typedef __int64_t __intmax_t;
+typedef __uint64_t __uintmax_t;
+
 typedef __INTPTR_TYPE__ __intptr_t;
 typedef __UINTPTR_TYPE__ __uintptr_t;
 
diff --git a/libc/xtensa-lx106-elf/include/machine/_endian.h b/libc/xtensa-lx106-elf/include/machine/_endian.h
new file mode 100644
index 0000000..92a14dc
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/machine/_endian.h
@@ -0,0 +1,35 @@
+#ifndef __MACHINE_ENDIAN_H__
+#error "must be included via "
+#endif /* !__MACHINE_ENDIAN_H__ */
+
+#include 
+
+#ifdef __PPC__
+/* Get rid of GCC builtin defines on PowerPC */
+#ifdef _BIG_ENDIAN
+#undef _BIG_ENDIAN
+#endif
+#ifdef _LITTLE_ENDIAN
+#undef _LITTLE_ENDIAN
+#endif
+#endif /* __PPC__ */
+
+#ifndef _LITTLE_ENDIAN
+#define	_LITTLE_ENDIAN	1234
+#endif
+
+#ifndef _BIG_ENDIAN
+#define	_BIG_ENDIAN	4321
+#endif
+
+#ifndef _PDP_ENDIAN
+#define	_PDP_ENDIAN	3412
+#endif
+
+#ifndef _BYTE_ORDER
+#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN)
+#define	_BYTE_ORDER	_LITTLE_ENDIAN
+#else
+#define	_BYTE_ORDER	_BIG_ENDIAN
+#endif
+#endif
diff --git a/libc/xtensa-lx106-elf/include/machine/_time.h b/libc/xtensa-lx106-elf/include/machine/_time.h
new file mode 100644
index 0000000..476760c
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/machine/_time.h
@@ -0,0 +1,3 @@
+#ifndef _SYS_TIME_H_
+#error "must be included via "
+#endif /* !_SYS_TIME_H_ */
diff --git a/libc/xtensa-lx106-elf/include/machine/endian.h b/libc/xtensa-lx106-elf/include/machine/endian.h
index 07ebc8f..34a5726 100644
--- a/libc/xtensa-lx106-elf/include/machine/endian.h
+++ b/libc/xtensa-lx106-elf/include/machine/endian.h
@@ -1,20 +1,69 @@
 #ifndef __MACHINE_ENDIAN_H__
+#define	__MACHINE_ENDIAN_H__
 
-#include 
+#include 
+#include 
+#include 
 
-#ifndef BIG_ENDIAN
-#define BIG_ENDIAN 4321
-#endif
-#ifndef LITTLE_ENDIAN
-#define LITTLE_ENDIAN 1234
-#endif
-
-#ifndef BYTE_ORDER
-#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN)
-#define BYTE_ORDER LITTLE_ENDIAN
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+#define	_QUAD_HIGHWORD	1
+#define	_QUAD_LOWWORD	0
 #else
-#define BYTE_ORDER BIG_ENDIAN
+#define	_QUAD_HIGHWORD	0
+#define	_QUAD_LOWWORD	1
 #endif
+
+#if __BSD_VISIBLE
+#define	LITTLE_ENDIAN	_LITTLE_ENDIAN
+#define	BIG_ENDIAN	_BIG_ENDIAN
+#define	PDP_ENDIAN	_PDP_ENDIAN
+#define	BYTE_ORDER	_BYTE_ORDER
 #endif
 
+#ifdef __GNUC__
+#define	__bswap16(_x)	__builtin_bswap16(_x)
+#define	__bswap32(_x)	__builtin_bswap32(_x)
+#define	__bswap64(_x)	__builtin_bswap64(_x)
+#else /* __GNUC__ */
+static __inline __uint16_t
+__bswap16(__uint16_t _x)
+{
+
+	return ((__uint16_t)((_x >> 8) | ((_x << 8) & 0xff00)));
+}
+
+static __inline __uint32_t
+__bswap32(__uint32_t _x)
+{
+
+	return ((__uint32_t)((_x >> 24) | ((_x >> 8) & 0xff00) |
+	    ((_x << 8) & 0xff0000) | ((_x << 24) & 0xff000000)));
+}
+
+static __inline __uint64_t
+__bswap64(__uint64_t _x)
+{
+
+	return ((__uint64_t)((_x >> 56) | ((_x >> 40) & 0xff00) |
+	    ((_x >> 24) & 0xff0000) | ((_x >> 8) & 0xff000000) |
+	    ((_x << 8) & ((__uint64_t)0xff << 32)) |
+	    ((_x << 24) & ((__uint64_t)0xff << 40)) |
+	    ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))));
+}
+#endif /* !__GNUC__ */
+
+#ifndef __machine_host_to_from_network_defined
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+#define	__htonl(_x)	__bswap32(_x)
+#define	__htons(_x)	__bswap16(_x)
+#define	__ntohl(_x)	__bswap32(_x)
+#define	__ntohs(_x)	__bswap16(_x)
+#else
+#define	__htonl(_x)	((__uint32_t)(_x))
+#define	__htons(_x)	((__uint16_t)(_x))
+#define	__ntohl(_x)	((__uint32_t)(_x))
+#define	__ntohs(_x)	((__uint16_t)(_x))
+#endif
+#endif /* __machine_host_to_from_network_defined */
+
 #endif /* __MACHINE_ENDIAN_H__ */
diff --git a/libc/xtensa-lx106-elf/include/machine/ieeefp.h b/libc/xtensa-lx106-elf/include/machine/ieeefp.h
index f11dc05..d3c6905 100644
--- a/libc/xtensa-lx106-elf/include/machine/ieeefp.h
+++ b/libc/xtensa-lx106-elf/include/machine/ieeefp.h
@@ -283,6 +283,10 @@
 #define __IEEE_BIG_ENDIAN
 #endif
 
+#ifdef __FT32__
+#define __IEEE_LITTLE_ENDIAN
+#endif
+
 #ifdef __mcore__
 #define __IEEE_BIG_ENDIAN
 #endif
@@ -415,6 +419,10 @@
 # endif
 #endif
 
+#ifdef __VISIUM__
+#define __IEEE_BIG_ENDIAN
+#endif
+
 #if (defined(__XTENSA__))
 # ifdef __XTENSA_EB__
 #  define __IEEE_BIG_ENDIAN
diff --git a/libc/xtensa-lx106-elf/include/machine/setjmp.h b/libc/xtensa-lx106-elf/include/machine/setjmp.h
index 9f9d9e4..d1bd78e 100644
--- a/libc/xtensa-lx106-elf/include/machine/setjmp.h
+++ b/libc/xtensa-lx106-elf/include/machine/setjmp.h
@@ -92,6 +92,9 @@ _BEGIN_STD_C
 #  define _JBLEN (13 * 4)
 # elif defined(__unix__) || defined(__rtems__)
 #  define _JBLEN	9
+# elif defined(__iamcu__)
+/* Intel MCU jmp_buf only covers callee-saved registers. */
+#  define _JBLEN	6
 # else
 #  include "setjmp-dj.h"
 # endif
@@ -250,6 +253,10 @@ _BEGIN_STD_C
 #define _JBLEN 10
 #endif
 
+#ifdef  __FT32__
+#define _JBLEN 27
+#endif
+
 #ifdef __iq2000__
 #define _JBLEN 32
 #endif
@@ -258,6 +265,10 @@ _BEGIN_STD_C
 #define _JBLEN 16
 #endif
 
+#ifdef __arc__
+#define _JBLEN 25 /* r13-r30,blink,lp_count,lp_start,lp_end,mlo,mhi,status32 */
+#endif
+
 #ifdef __MMIX__
 /* Using a layout compatible with GCC's built-in.  */
 #define _JBLEN 5
@@ -314,6 +325,10 @@ _BEGIN_STD_C
 #define _JBLEN 18
 #endif
 
+#ifdef __ia64
+#define _JBLEN 64
+#endif
+
 #ifdef __lm32__
 #define _JBLEN 19
 #endif
@@ -365,6 +380,11 @@ _BEGIN_STD_C
 #define _JBLEN 0x44
 #endif
 
+#ifdef __VISIUM__
+/* All call-saved GP registers: r11-r19,r21,r22,r23.  */
+#define _JBLEN 12
+#endif
+
 #ifdef _JBLEN
 #ifdef _JBTYPE
 typedef	_JBTYPE jmp_buf[_JBLEN];
@@ -403,6 +423,13 @@ typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
 #define __SIGMASK_FUNC sigprocmask
 #endif
 
+#ifdef __CYGWIN__
+/* Per POSIX, siglongjmp has to be implemented as function.  Cygwin
+   provides functions for both, siglongjmp and sigsetjmp since 2.2.0. */
+extern void siglongjmp (sigjmp_buf, int) __attribute__ ((__noreturn__));
+extern int sigsetjmp (sigjmp_buf, int);
+#endif
+
 #if defined(__GNUC__)
 
 #define sigsetjmp(env, savemask) \
@@ -440,8 +467,8 @@ typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
    are equivalent to sigsetjmp/siglongjmp when not saving the signal mask.
    New applications should use sigsetjmp/siglongjmp instead. */
 #ifdef __CYGWIN__
-extern void _longjmp(jmp_buf, int);
-extern int _setjmp(jmp_buf);
+extern void _longjmp (jmp_buf, int) __attribute__ ((__noreturn__));
+extern int _setjmp (jmp_buf);
 #else
 #define _setjmp(env)		sigsetjmp ((env), 0)
 #define _longjmp(env, val)	siglongjmp ((env), (val))
diff --git a/libc/xtensa-lx106-elf/include/machine/time.h b/libc/xtensa-lx106-elf/include/machine/time.h
index 06e2ccf..6f9a35c 100644
--- a/libc/xtensa-lx106-elf/include/machine/time.h
+++ b/libc/xtensa-lx106-elf/include/machine/time.h
@@ -1,19 +1,15 @@
 #ifndef	_MACHTIME_H_
 #define	_MACHTIME_H_
 
-#if defined(__rtems__)
-#define _CLOCKS_PER_SEC_  sysconf(_SC_CLK_TCK)
-#else  /* !__rtems__ */
-#if defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
+#if defined(__rtems__) || defined(__VISIUM__)
+#define _CLOCKS_PER_SEC_ 1000000
+#elif defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
 #define _CLOCKS_PER_SEC_ 100
 #endif
-#endif /* !__rtems__ */
 
 #ifdef __SPU__
-#include 
+#include 
 int nanosleep (const struct timespec *, struct timespec *);
 #endif
 
 #endif	/* _MACHTIME_H_ */
-
-
diff --git a/libc/xtensa-lx106-elf/include/machine/types.h b/libc/xtensa-lx106-elf/include/machine/types.h
index 40a75fa..a5a64e6 100644
--- a/libc/xtensa-lx106-elf/include/machine/types.h
+++ b/libc/xtensa-lx106-elf/include/machine/types.h
@@ -1,30 +1,7 @@
-#ifndef	_MACHTYPES_H_
-#define	_MACHTYPES_H_
-
 /*
- *  The following section is RTEMS specific and is needed to more
- *  closely match the types defined in the BSD machine/types.h.
- *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
+ * Newlib targets may provide an own version of this file in their machine
+ * directory to add custom user types for .
  */
-#if defined(__rtems__)
-#include 
-#endif
-
-#define	_CLOCK_T_	unsigned long		/* clock() */
-#define	_TIME_T_	long			/* time() */
-#define _CLOCKID_T_ 	unsigned long
-#define _TIMER_T_   	unsigned long
-
-#ifndef _HAVE_SYSTYPES
-typedef long int __off_t;
-typedef int __pid_t;
-#ifdef __GNUC__
-__extension__ typedef long long int __loff_t;
-#else
-typedef long int __loff_t;
-#endif
-#endif
-
-#endif	/* _MACHTYPES_H_ */
-
-
+#ifndef _SYS_TYPES_H
+#error "must be included via "
+#endif /* !_SYS_TYPES_H */
diff --git a/libc/xtensa-lx106-elf/include/math.h b/libc/xtensa-lx106-elf/include/math.h
index d16ce30..2a322ee 100644
--- a/libc/xtensa-lx106-elf/include/math.h
+++ b/libc/xtensa-lx106-elf/include/math.h
@@ -3,34 +3,12 @@
 #define  _MATH_H_
 
 #include 
+#include 
 #include 
 #include "_ansi.h"
 
 _BEGIN_STD_C
 
-/* __dmath, __fmath, and __ldmath are only here for backwards compatibility
- * in case any code used them.  They are no longer used by Newlib, itself,
- * other than legacy.  */
-union __dmath
-{
-  double d;
-  __ULong i[2];
-};
-
-union __fmath
-{
-  float f;
-  __ULong i[1];
-};
-
-#if defined(_HAVE_LONG_DOUBLE)
-union __ldmath
-{
-  long double ld;
-  __ULong i[4];
-};
-#endif
-
 /* Natural log of 2 */
 #define _M_LN2        0.693147180559945309417
 
@@ -136,9 +114,26 @@ extern double fmod _PARAMS((double, double));
 #endif /* ! defined (__math_68881) */
 #endif /* ! defined (_REENT_ONLY) */
 
-#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
+#if __MISC_VISIBLE
+extern int finite _PARAMS((double));
+extern int finitef _PARAMS((float));
+extern int finitel _PARAMS((long double));
+extern int isinff _PARAMS((float));
+extern int isnanf _PARAMS((float));
+#ifdef __CYGWIN__ /* not implemented in newlib yet */
+extern int isinfl _PARAMS((long double));
+extern int isnanl _PARAMS((long double));
+#endif
+#if !defined(__cplusplus) || __cplusplus < 201103L
+extern int isinf _PARAMS((double));
+#endif
+#endif /* __MISC_VISIBLE */
+#if (__MISC_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600)) \
+  && (!defined(__cplusplus) || __cplusplus < 201103L)
+extern int isnan _PARAMS((double));
+#endif
 
+#if __ISO_C_VISIBLE >= 1999
 /* ISO C99 types and macros. */
 
 /* FIXME:  FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard,
@@ -180,10 +175,10 @@ extern double fmod _PARAMS((double, double));
 #define FP_NORMAL      4
 
 #ifndef FP_ILOGB0
-# define FP_ILOGB0 (-INT_MAX)
+# define FP_ILOGB0 (-__INT_MAX__)
 #endif
 #ifndef FP_ILOGBNAN
-# define FP_ILOGBNAN INT_MAX
+# define FP_ILOGBNAN __INT_MAX__
 #endif
 
 #ifndef MATH_ERRNO
@@ -205,35 +200,70 @@ extern int __fpclassifyd (double x);
 extern int __signbitf (float x);
 extern int __signbitd (double x);
 
-#define fpclassify(__x) \
-	((sizeof(__x) == sizeof(float))  ? __fpclassifyf(__x) : \
-	__fpclassifyd(__x))
-
-#ifndef isfinite
-  #define isfinite(__y) \
-          (__extension__ ({int __cy = fpclassify(__y); \
-                           __cy != FP_INFINITE && __cy != FP_NAN;}))
-#endif
-
 /* Note: isinf and isnan were once functions in newlib that took double
  *       arguments.  C99 specifies that these names are reserved for macros
  *       supporting multiple floating point types.  Thus, they are
  *       now defined as macros.  Implementations of the old functions
  *       taking double arguments still exist for compatibility purposes
- *       (prototypes for them are in ).  */
-#ifndef isinf
-  #define isinf(y) (fpclassify(y) == FP_INFINITE)
+ *       (prototypes for them are earlier in this header).  */
+
+#if __GNUC_PREREQ (4, 4)
+  #define fpclassify(__x) (__builtin_fpclassify (FP_NAN, FP_INFINITE, \
+						 FP_NORMAL, FP_SUBNORMAL, \
+						 FP_ZERO, __x))
+  #ifndef isfinite
+    #define isfinite(__x)	(__builtin_isfinite (__x))
+  #endif
+  #ifndef isinf
+    #define isinf(__x) (__builtin_isinf_sign (__x))
+  #endif
+  #ifndef isnan
+    #define isnan(__x) (__builtin_isnan (__x))
+  #endif
+  #define isnormal(__x) (__builtin_isnormal (__x))
+#else
+  #define fpclassify(__x) \
+	  ((sizeof(__x) == sizeof(float))  ? __fpclassifyf(__x) : \
+	  __fpclassifyd(__x))
+  #ifndef isfinite
+    #define isfinite(__y) \
+	    (__extension__ ({int __cy = fpclassify(__y); \
+			     __cy != FP_INFINITE && __cy != FP_NAN;}))
+  #endif
+  #ifndef isinf
+    #define isinf(__x) (fpclassify(__x) == FP_INFINITE)
+  #endif
+  #ifndef isnan
+    #define isnan(__x) (fpclassify(__x) == FP_NAN)
+  #endif
+  #define isnormal(__x) (fpclassify(__x) == FP_NORMAL)
 #endif
 
-#ifndef isnan
-  #define isnan(y) (fpclassify(y) == FP_NAN)
+#if __GNUC_PREREQ (4, 0)
+  #if defined(_HAVE_LONG_DOUBLE)
+    #define signbit(__x) \
+	    ((sizeof(__x) == sizeof(float))  ? __builtin_signbitf(__x) : \
+	     (sizeof(__x) == sizeof(double)) ? __builtin_signbit (__x) : \
+					       __builtin_signbitl(__x))
+  #else
+    #define signbit(__x) \
+	    ((sizeof(__x) == sizeof(float))  ? __builtin_signbitf(__x) : \
+					       __builtin_signbit (__x))
+  #endif
+#else
+  #define signbit(__x) \
+	  ((sizeof(__x) == sizeof(float))  ?  __signbitf(__x) : \
+		  __signbitd(__x))
 #endif
 
-#define isnormal(y) (fpclassify(y) == FP_NORMAL)
-#define signbit(__x) \
-	((sizeof(__x) == sizeof(float))  ?  __signbitf(__x) : \
-		__signbitd(__x))
-
+#if __GNUC_PREREQ (2, 97)
+#define isgreater(__x,__y)	(__builtin_isgreater (__x, __y))
+#define isgreaterequal(__x,__y)	(__builtin_isgreaterequal (__x, __y))
+#define isless(__x,__y)		(__builtin_isless (__x, __y))
+#define islessequal(__x,__y)	(__builtin_islessequal (__x, __y))
+#define islessgreater(__x,__y)	(__builtin_islessgreater (__x, __y))
+#define isunordered(__x,__y)	(__builtin_isunordered (__x, __y))
+#else
 #define isgreater(x,y) \
           (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
                            !isunordered(__x,__y) && (__x > __y);}))
@@ -253,12 +283,12 @@ extern int __signbitd (double x);
 #define isunordered(a,b) \
           (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \
                            fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;}))
+#endif
 
 /* Non ANSI double precision functions.  */
 
 extern double infinity _PARAMS((void));
 extern double nan _PARAMS((const char *));
-extern int finite _PARAMS((double));
 extern double copysign _PARAMS((double, double));
 extern double logb _PARAMS((double));
 extern int ilogb _PARAMS((double));
@@ -357,7 +387,6 @@ extern float fmaf _PARAMS((float, float, float));
 
 extern float infinityf _PARAMS((void));
 extern float nanf _PARAMS((const char *));
-extern int finitef _PARAMS((float));
 extern float copysignf _PARAMS((float, float));
 extern float logbf _PARAMS((float));
 extern int ilogbf _PARAMS((float));
@@ -382,8 +411,12 @@ extern float log2f _PARAMS((float));
 extern float hypotf _PARAMS((float, float));
 #endif /* ! defined (_REENT_ONLY) */
 
-/* On platforms where long double equals double.  */
-#ifdef _LDBL_EQ_DBL
+/* Newlib doesn't fully support long double math functions so far.
+   On platforms where long double equals double the long double functions
+   simply call the double functions.  On Cygwin the long double functions
+   are implemented independently from newlib to be able to use optimized
+   assembler functions despite using the Microsoft x86_64 ABI. */
+#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__)
 /* Reentrant ANSI C functions.  */
 #ifndef __math_68881
 extern long double atanl _PARAMS((long double));
@@ -453,44 +486,56 @@ extern long double lgammal _PARAMS((long double));
 extern long double erfl _PARAMS((long double));
 extern long double erfcl _PARAMS((long double));
 #endif /* ! defined (_REENT_ONLY) */
-#else /* !_LDBL_EQ_DBL */
+#else /* !_LDBL_EQ_DBL && !__CYGWIN__ */
+extern long double hypotl _PARAMS((long double, long double));
+extern long double sqrtl _PARAMS((long double));
 #ifdef __i386__
 /* Other long double precision functions.  */
 extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE));
 extern long int lrintl _PARAMS((_LONG_DOUBLE));
 extern long long int llrintl _PARAMS((_LONG_DOUBLE));
 #endif /* __i386__ */
-#endif /* !_LDBL_EQ_DBL */
+#endif /* !_LDBL_EQ_DBL && !__CYGWIN__ */
 
-#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) */
-
-#if !defined (__STRICT_ANSI__) || defined(__cplusplus)
+#endif /* __ISO_C_VISIBLE >= 1999 */
 
+#if __MISC_VISIBLE
 extern double drem _PARAMS((double, double));
-extern void sincos _PARAMS((double, double *, double *));
+extern float dremf _PARAMS((float, float));
+#ifdef __CYGWIN__
+extern float dreml _PARAMS((long double, long double));
+#endif /* __CYGWIN__ */
 extern double gamma_r _PARAMS((double, int *));
 extern double lgamma_r _PARAMS((double, int *));
+extern float gammaf_r _PARAMS((float, int *));
+extern float lgammaf_r _PARAMS((float, int *));
+#endif
 
+#if __MISC_VISIBLE || __XSI_VISIBLE
 extern double y0 _PARAMS((double));
 extern double y1 _PARAMS((double));
 extern double yn _PARAMS((int, double));
 extern double j0 _PARAMS((double));
 extern double j1 _PARAMS((double));
 extern double jn _PARAMS((int, double));
+#endif
 
-extern float dremf _PARAMS((float, float));
-extern void sincosf _PARAMS((float, float *, float *));
-extern float gammaf_r _PARAMS((float, int *));
-extern float lgammaf_r _PARAMS((float, int *));
-
+#if __MISC_VISIBLE || __XSI_VISIBLE >= 600
 extern float y0f _PARAMS((float));
 extern float y1f _PARAMS((float));
 extern float ynf _PARAMS((int, float));
 extern float j0f _PARAMS((float));
 extern float j1f _PARAMS((float));
 extern float jnf _PARAMS((int, float));
+#endif
 
 /* GNU extensions */
+#if __GNU_VISIBLE
+extern void sincos _PARAMS((double, double *, double *));
+extern void sincosf _PARAMS((float, float *, float *));
+#ifdef __CYGWIN__
+extern void sincosl _PARAMS((long double, long double *, long double *));
+#endif /* __CYGWIN__ */
 # ifndef exp10
 extern double exp10 _PARAMS((double));
 # endif
@@ -503,11 +548,17 @@ extern float exp10f _PARAMS((float));
 # ifndef pow10f
 extern float pow10f _PARAMS((float));
 # endif
+#ifdef __CYGWIN__
+# ifndef exp10l
+extern float exp10l _PARAMS((float));
+# endif
+# ifndef pow10l
+extern float pow10l _PARAMS((float));
+# endif
+#endif /* __CYGWIN__ */
+#endif /* __GNU_VISIBLE */
 
-#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */
-
-#ifndef __STRICT_ANSI__
-
+#if __MISC_VISIBLE || __XSI_VISIBLE
 /* The gamma functions use a global variable, signgam.  */
 #ifndef _REENT_ONLY
 #define signgam (*__signgam())
@@ -515,7 +566,9 @@ extern int *__signgam _PARAMS((void));
 #endif /* ! defined (_REENT_ONLY) */
 
 #define __signgam_r(ptr) _REENT_SIGNGAM(ptr)
+#endif /* __MISC_VISIBLE || __XSI_VISIBLE */
 
+#if __SVID_VISIBLE
 /* The exception structure passed to the matherr routine.  */
 /* We have a problem when using C++ since `exception' is a reserved
    name in C++.  */
@@ -548,11 +601,11 @@ extern int matherr _PARAMS((struct exception *e));
 #define TLOSS 5
 #define PLOSS 6
 
-#endif /* ! defined (__STRICT_ANSI__) */
+#endif /* __SVID_VISIBLE */
 
 /* Useful constants.  */
 
-#if !defined(__STRICT_ANSI__) || ((_XOPEN_SOURCE - 0) >= 500)
+#if __BSD_VISIBLE || __XSI_VISIBLE
 
 #define MAXFLOAT	3.40282347e+38F
 
@@ -572,7 +625,7 @@ extern int matherr _PARAMS((struct exception *e));
 
 #endif
 
-#ifndef __STRICT_ANSI__
+#if __BSD_VISIBLE
 
 #define M_TWOPI         (M_PI * 2.0)
 #define M_3PI_4		2.3561944901923448370E0
@@ -604,7 +657,7 @@ extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION;
 #define _XOPEN_ __fdlibm_xopen
 #define _POSIX_ __fdlibm_posix
 
-#endif /* ! defined (__STRICT_ANSI__) */
+#endif /* __BSD_VISIBLE */
 
 _END_STD_C
 
diff --git a/libc/xtensa-lx106-elf/include/memory.h b/libc/xtensa-lx106-elf/include/memory.h
new file mode 100644
index 0000000..f4a14fc
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/memory.h
@@ -0,0 +1,4 @@
+#ifndef _MEMORY_H
+#define	_MEMORY_H
+#include 
+#endif /* !_MEMORY_H */
diff --git a/libc/xtensa-lx106-elf/include/newlib.h b/libc/xtensa-lx106-elf/include/newlib.h
index e9bf566..65b6e90 100644
--- a/libc/xtensa-lx106-elf/include/newlib.h
+++ b/libc/xtensa-lx106-elf/include/newlib.h
@@ -11,7 +11,7 @@
 /* #undef _ELIX_LEVEL */
 
 /* Newlib version */
-#define _NEWLIB_VERSION "2.2.0"
+#include <_newlib_version.h>
 
 /* C99 formats support (such as %a, %zu, ...) in IO functions like
  * printf/scanf enabled */
@@ -62,12 +62,6 @@
 /* True if long double supported and it is equal to double.  */
 #define _LDBL_EQ_DBL 1
  
-/* Define if uintptr_t is unsigned long on this architecture */
-/* #undef _UINTPTR_EQ_ULONG */
-
-/* Define if uintptr_t is unsigned long long on this architecture */
-/* #undef _UINTPTR_EQ_ULONGLONG */
-
 /* Define if ivo supported in streamio.  */
 #define _FVWRITE_IN_STREAMIO 1
 
@@ -86,9 +80,17 @@
 /* Define if declare atexit data as global.  */
 /* #undef _REENT_GLOBAL_ATEXIT */
 
+/* Define to move the stdio stream FILE objects out of struct _reent and make
+   them global.  The stdio stream pointers of struct _reent are initialized to
+   point to the global stdio FILE stream objects. */
+/* #undef _WANT_REENT_GLOBAL_STDIO_STREAMS */
+
 /* Define if small footprint nano-formatted-IO implementation used.  */
 #define _NANO_FORMATTED_IO 1
 
+/* Define if using retargetable functions for default lock routines.  */
+/* #undef _RETARGETABLE_LOCKING */
+
 /*
  * Iconv encodings enabled ("to" direction)
  */
diff --git a/libc/xtensa-lx106-elf/include/pthread.h b/libc/xtensa-lx106-elf/include/pthread.h
index db1f9c1..516131d 100644
--- a/libc/xtensa-lx106-elf/include/pthread.h
+++ b/libc/xtensa-lx106-elf/include/pthread.h
@@ -1,8 +1,7 @@
-/*  pthread.h
+/*
+ *  Written by Joel Sherrill .
  *
- *  Written by Joel Sherrill .
- *
- *  COPYRIGHT (c) 1989-2013.
+ *  COPYRIGHT (c) 1989-2013, 2015.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  Permission to use, copy, modify, and distribute this software for any
@@ -14,8 +13,6 @@
  *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
  *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
  *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- *  $Id$
  */
 
 #ifndef __PTHREAD_h
@@ -31,7 +28,7 @@ extern "C" {
 
 #include 
 #include 
-#include 
+#include 
 #include 
 
 struct _pthread_cleanup_context {
@@ -76,7 +73,7 @@ int	_EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex));
     pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
  */
 
-#define PTHREAD_MUTEX_INITIALIZER  ((pthread_mutex_t) 0xFFFFFFFF)
+#define PTHREAD_MUTEX_INITIALIZER _PTHREAD_MUTEX_INITIALIZER
 
 /*  Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93
     NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */
@@ -96,6 +93,13 @@ int	_EXFUN(pthread_mutex_timedlock,
  
 int	_EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr));
 int	_EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr));
+
+int	_EXFUN(pthread_condattr_getclock,
+		(const pthread_condattr_t *__restrict __attr,
+              clockid_t *__restrict __clock_id));
+int	_EXFUN(pthread_condattr_setclock,
+		(pthread_condattr_t *__attr, clockid_t __clock_id));
+
 int	_EXFUN(pthread_condattr_getpshared,
 		(_CONST pthread_condattr_t *__attr, int *__pshared));
 int	_EXFUN(pthread_condattr_setpshared,
@@ -112,7 +116,7 @@ int	_EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex));
     pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
  */
  
-#define PTHREAD_COND_INITIALIZER  ((pthread_cond_t) 0xFFFFFFFF)
+#define PTHREAD_COND_INITIALIZER _PTHREAD_COND_INITIALIZER
  
 /* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */
  
@@ -161,8 +165,17 @@ int	_EXFUN(pthread_getschedparam,
 int	_EXFUN(pthread_setschedparam,
 	(pthread_t __pthread, int __policy, struct sched_param *__param));
 
+/* Set Scheduling Priority of a Thread */
+int	_EXFUN(pthread_setschedprio, (pthread_t thread, int prio));
+
 #endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */
 
+#if __GNU_VISIBLE
+int	pthread_getname_np(pthread_t, char *, size_t) __nonnull(2);
+
+int	pthread_setname_np(pthread_t, const char *) __nonnull(2);
+#endif
+
 #if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT)
 
 /* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */
@@ -218,7 +231,7 @@ int	_EXFUN(pthread_attr_setguardsize,
  * in GNU/Linux. They may be provided by other OSes for
  * compatibility.
  */
-#if defined(__GNU_VISIBLE)
+#if __GNU_VISIBLE
 #if defined(__rtems__) 
 int	_EXFUN(pthread_attr_setaffinity_np,
 	(pthread_attr_t *__attr, size_t __cpusetsize, 
@@ -235,7 +248,7 @@ int	_EXFUN(pthread_getaffinity_np,
 int	_EXFUN(pthread_getattr_np,
 	(pthread_t __id, pthread_attr_t *__attr));
 #endif /* defined(__rtems__) */
-#endif /* defined(__GNU_VISIBLE) */
+#endif /* __GNU_VISIBLE */
 
 /* Thread Creation, P1003.1c/Draft 10, p. 144 */
 
@@ -253,7 +266,7 @@ int	_EXFUN(pthread_detach, (pthread_t __pthread));
 
 /* Thread Termination, p1003.1c/Draft 10, p. 150 */
 
-void	_EXFUN(pthread_exit, (void *__value_ptr));
+void	_EXFUN(pthread_exit, (void *__value_ptr)) __dead2;
 
 /* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */
 
@@ -263,6 +276,18 @@ pthread_t	_EXFUN(pthread_self, (void));
 
 int	_EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2));
 
+/* Retrieve ID of a Thread's CPU Time Clock */
+int	_EXFUN(pthread_getcpuclockid,
+		(pthread_t thread, clockid_t *clock_id));
+
+/* Get/Set Current Thread's Concurrency Level */
+int	_EXFUN(pthread_setconcurrency, (int new_level));
+int	_EXFUN(pthread_getconcurrency, (void));
+
+#if __BSD_VISIBLE || __GNU_VISIBLE
+void	_EXFUN(pthread_yield, (void));
+#endif
+
 /* Dynamic Package Initialization */
 
 /* This is used to statically initialize a pthread_once_t. Example:
@@ -271,7 +296,7 @@ int	_EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2));
   
     NOTE:  This is named inconsistently -- it should be INITIALIZER.  */
  
-#define PTHREAD_ONCE_INIT  { 1, 0 }  /* is initialized and not run */
+#define PTHREAD_ONCE_INIT _PTHREAD_ONCE_INIT
  
 int	_EXFUN(pthread_once,
 	(pthread_once_t *__once_control, void (*__init_routine)(void)));
@@ -329,7 +354,7 @@ void	_EXFUN(_pthread_cleanup_pop,
     _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \
   } while (0)
 
-#if defined(_GNU_SOURCE)
+#if __GNU_VISIBLE
 void	_EXFUN(_pthread_cleanup_push_defer,
 	(struct _pthread_cleanup_context *_context,
 	void (*_routine)(void *), void *_arg));
@@ -347,7 +372,7 @@ void	_EXFUN(_pthread_cleanup_pop_restore,
 #define pthread_cleanup_pop_restore_np(_execute) \
     _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \
   } while (0)
-#endif /* defined(_GNU_SOURCE) */
+#endif /* __GNU_VISIBLE */
 
 #if defined(_POSIX_THREAD_CPUTIME)
  
@@ -398,7 +423,7 @@ int	_EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock));
     pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER;
  */
 
-#define PTHREAD_RWLOCK_INITIALIZER  ((pthread_rwlock_t) 0xFFFFFFFF)
+#define PTHREAD_RWLOCK_INITIALIZER _PTHREAD_RWLOCK_INITIALIZER
 
 int	_EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr));
 int	_EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr));
diff --git a/libc/xtensa-lx106-elf/include/pwd.h b/libc/xtensa-lx106-elf/include/pwd.h
index 3dea4ee..f37d289 100644
--- a/libc/xtensa-lx106-elf/include/pwd.h
+++ b/libc/xtensa-lx106-elf/include/pwd.h
@@ -63,14 +63,14 @@ struct passwd {
 struct passwd	*getpwuid (uid_t);
 struct passwd	*getpwnam (const char *);
 
-#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 int 		 getpwnam_r (const char *, struct passwd *,
 			char *, size_t , struct passwd **);
 int		 getpwuid_r (uid_t, struct passwd *, char *,
 			size_t, struct passwd **);
 #endif
 
-#if __XSI_VISIBLE >= 500
+#if __MISC_VISIBLE || __XSI_VISIBLE >= 4
 struct passwd	*getpwent (void);
 void		 setpwent (void);
 void		 endpwent (void);
diff --git a/libc/xtensa-lx106-elf/include/reent.h b/libc/xtensa-lx106-elf/include/reent.h
index 861be71..b7664b0 100644
--- a/libc/xtensa-lx106-elf/include/reent.h
+++ b/libc/xtensa-lx106-elf/include/reent.h
@@ -92,7 +92,6 @@ extern "C" {
 
 #include 
 #include 
-#include 
 
 #define __need_size_t
 #define __need_ptrdiff_t
diff --git a/libc/xtensa-lx106-elf/include/signal.h b/libc/xtensa-lx106-elf/include/signal.h
index 8c50a2e..0324ae7 100644
--- a/libc/xtensa-lx106-elf/include/signal.h
+++ b/libc/xtensa-lx106-elf/include/signal.h
@@ -2,15 +2,18 @@
 #define _SIGNAL_H_
 
 #include "_ansi.h"
+#include 
 #include 
 
 _BEGIN_STD_C
 
 typedef int	sig_atomic_t;		/* Atomic entity type (ANSI) */
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
 typedef _sig_func_ptr sig_t;		/* BSD naming */
+#endif
+#if __GNU_VISIBLE
 typedef _sig_func_ptr sighandler_t;	/* glibc naming */
-#endif /* !_POSIX_SOURCE */
+#endif
 
 #define SIG_DFL ((_sig_func_ptr)0)	/* Default action */
 #define SIG_IGN ((_sig_func_ptr)1)	/* Ignore action */
diff --git a/libc/xtensa-lx106-elf/include/stdint.h b/libc/xtensa-lx106-elf/include/stdint.h
index 7386164..4abdacb 100644
--- a/libc/xtensa-lx106-elf/include/stdint.h
+++ b/libc/xtensa-lx106-elf/include/stdint.h
@@ -11,53 +11,30 @@
 
 #include 
 #include 
+#include 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifdef ___int8_t_defined
-typedef __int8_t int8_t ;
-typedef __uint8_t uint8_t ;
-#define __int8_t_defined 1
-#endif
-
 #ifdef ___int_least8_t_defined
 typedef __int_least8_t int_least8_t;
 typedef __uint_least8_t uint_least8_t;
 #define __int_least8_t_defined 1
 #endif
 
-#ifdef ___int16_t_defined
-typedef __int16_t int16_t ;
-typedef __uint16_t uint16_t ;
-#define __int16_t_defined 1
-#endif
-
 #ifdef ___int_least16_t_defined
 typedef __int_least16_t int_least16_t;
 typedef __uint_least16_t uint_least16_t;
 #define __int_least16_t_defined 1
 #endif
 
-#ifdef ___int32_t_defined
-typedef __int32_t int32_t ;
-typedef __uint32_t uint32_t ;
-#define __int32_t_defined 1
-#endif
-
 #ifdef ___int_least32_t_defined
 typedef __int_least32_t int_least32_t;
 typedef __uint_least32_t uint_least32_t;
 #define __int_least32_t_defined 1
 #endif
 
-#ifdef ___int64_t_defined
-typedef __int64_t int64_t ;
-typedef __uint64_t uint64_t ;
-#define __int64_t_defined 1
-#endif
-
 #ifdef ___int_least64_t_defined
 typedef __int_least64_t int_least64_t;
 typedef __uint_least64_t uint_least64_t;
@@ -147,37 +124,15 @@ typedef __uint_least64_t uint_least64_t;
 #endif
 #endif
 
-/* Greatest-width integer types */
-/* Modern GCCs provide __INTMAX_TYPE__ */
-#if defined(__INTMAX_TYPE__)
-  typedef __INTMAX_TYPE__ intmax_t;
-#elif __have_longlong64
-  typedef signed long long intmax_t;
-#else
-  typedef signed long intmax_t;
-#endif
-
-/* Modern GCCs provide __UINTMAX_TYPE__ */
-#if defined(__UINTMAX_TYPE__)
-  typedef __UINTMAX_TYPE__ uintmax_t;
-#elif __have_longlong64
-  typedef unsigned long long uintmax_t;
-#else
-  typedef unsigned long uintmax_t;
-#endif
-
-typedef __intptr_t intptr_t;
-typedef __uintptr_t uintptr_t;
-
 #ifdef __INTPTR_TYPE__
 #define INTPTR_MIN (-__INTPTR_MAX__ - 1)
-#define INTPTR_MAX __INTPTR_MAX__
-#define UINTPTR_MAX __UINTPTR_MAX__
+#define INTPTR_MAX (__INTPTR_MAX__)
+#define UINTPTR_MAX (__UINTPTR_MAX__)
 #elif defined(__PTRDIFF_TYPE__)
 #define INTPTR_MAX PTRDIFF_MAX
 #define INTPTR_MIN PTRDIFF_MIN
 #ifdef __UINTPTR_MAX__
-#define UINTPTR_MAX __UINTPTR_MAX__
+#define UINTPTR_MAX (__UINTPTR_MAX__)
 #else
 #define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1)
 #endif
@@ -186,7 +141,7 @@ typedef __uintptr_t uintptr_t;
  * Fallback to hardcoded values, 
  * should be valid on cpu's with 32bit int/32bit void*
  */
-#define INTPTR_MAX __STDINT_EXP(LONG_MAX)
+#define INTPTR_MAX (__STDINT_EXP(LONG_MAX))
 #define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
 #define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 #endif
@@ -195,77 +150,77 @@ typedef __uintptr_t uintptr_t;
 
 #ifdef __INT8_MAX__
 #define INT8_MIN (-__INT8_MAX__ - 1)
-#define INT8_MAX __INT8_MAX__
-#define UINT8_MAX __UINT8_MAX__
+#define INT8_MAX (__INT8_MAX__)
+#define UINT8_MAX (__UINT8_MAX__)
 #elif defined(__int8_t_defined)
-#define INT8_MIN 	-128
-#define INT8_MAX 	 127
-#define UINT8_MAX 	 255
+#define INT8_MIN 	(-128)
+#define INT8_MAX 	 (127)
+#define UINT8_MAX 	 (255)
 #endif
 
 #ifdef __INT_LEAST8_MAX__
 #define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)
-#define INT_LEAST8_MAX __INT_LEAST8_MAX__
-#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
+#define INT_LEAST8_MAX (__INT_LEAST8_MAX__)
+#define UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)
 #elif defined(__int_least8_t_defined)
-#define INT_LEAST8_MIN 	-128
-#define INT_LEAST8_MAX 	 127
-#define UINT_LEAST8_MAX	 255
+#define INT_LEAST8_MIN 	(-128)
+#define INT_LEAST8_MAX 	 (127)
+#define UINT_LEAST8_MAX	 (255)
 #else
 #error required type int_least8_t missing
 #endif
 
 #ifdef __INT16_MAX__
 #define INT16_MIN (-__INT16_MAX__ - 1)
-#define INT16_MAX __INT16_MAX__
-#define UINT16_MAX __UINT16_MAX__
+#define INT16_MAX (__INT16_MAX__)
+#define UINT16_MAX (__UINT16_MAX__)
 #elif defined(__int16_t_defined)
-#define INT16_MIN 	-32768
-#define INT16_MAX 	 32767
-#define UINT16_MAX 	 65535
+#define INT16_MIN 	(-32768)
+#define INT16_MAX 	 (32767)
+#define UINT16_MAX 	 (65535)
 #endif
 
 #ifdef __INT_LEAST16_MAX__
 #define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)
-#define INT_LEAST16_MAX __INT_LEAST16_MAX__
-#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
+#define INT_LEAST16_MAX (__INT_LEAST16_MAX__)
+#define UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)
 #elif defined(__int_least16_t_defined)
-#define INT_LEAST16_MIN	-32768
-#define INT_LEAST16_MAX	 32767
-#define UINT_LEAST16_MAX 65535
+#define INT_LEAST16_MIN	(-32768)
+#define INT_LEAST16_MAX	 (32767)
+#define UINT_LEAST16_MAX (65535)
 #else
 #error required type int_least16_t missing
 #endif
 
 #ifdef __INT32_MAX__
 #define INT32_MIN (-__INT32_MAX__ - 1)
-#define INT32_MAX __INT32_MAX__
-#define UINT32_MAX __UINT32_MAX__
+#define INT32_MAX (__INT32_MAX__)
+#define UINT32_MAX (__UINT32_MAX__)
 #elif defined(__int32_t_defined)
-#if __have_long32
+#if defined (_INT32_EQ_LONG)
 #define INT32_MIN 	 (-2147483647L-1)
-#define INT32_MAX 	 2147483647L
-#define UINT32_MAX       4294967295UL
+#define INT32_MAX 	 (2147483647L)
+#define UINT32_MAX       (4294967295UL)
 #else
 #define INT32_MIN 	 (-2147483647-1)
-#define INT32_MAX 	 2147483647
-#define UINT32_MAX       4294967295U
+#define INT32_MAX 	 (2147483647)
+#define UINT32_MAX       (4294967295U)
 #endif
 #endif
 
 #ifdef __INT_LEAST32_MAX__
 #define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)
-#define INT_LEAST32_MAX __INT_LEAST32_MAX__
-#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
+#define INT_LEAST32_MAX (__INT_LEAST32_MAX__)
+#define UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)
 #elif defined(__int_least32_t_defined)
-#if __have_long32
+#if defined (_INT32_EQ_LONG)
 #define INT_LEAST32_MIN  (-2147483647L-1)
-#define INT_LEAST32_MAX  2147483647L
-#define UINT_LEAST32_MAX 4294967295UL
+#define INT_LEAST32_MAX  (2147483647L)
+#define UINT_LEAST32_MAX (4294967295UL)
 #else
 #define INT_LEAST32_MIN  (-2147483647-1)
-#define INT_LEAST32_MAX  2147483647
-#define UINT_LEAST32_MAX 4294967295U
+#define INT_LEAST32_MAX  (2147483647)
+#define UINT_LEAST32_MAX (4294967295U)
 #endif
 #else
 #error required type int_least32_t missing
@@ -273,44 +228,44 @@ typedef __uintptr_t uintptr_t;
 
 #ifdef __INT64_MAX__
 #define INT64_MIN (-__INT64_MAX__ - 1)
-#define INT64_MAX __INT64_MAX__
-#define UINT64_MAX __UINT64_MAX__
+#define INT64_MAX (__INT64_MAX__)
+#define UINT64_MAX (__UINT64_MAX__)
 #elif defined(__int64_t_defined)
 #if __have_long64
 #define INT64_MIN 	(-9223372036854775807L-1L)
-#define INT64_MAX 	 9223372036854775807L
-#define UINT64_MAX 	18446744073709551615U
+#define INT64_MAX 	 (9223372036854775807L)
+#define UINT64_MAX 	(18446744073709551615U)
 #elif __have_longlong64
 #define INT64_MIN 	(-9223372036854775807LL-1LL)
-#define INT64_MAX 	 9223372036854775807LL
-#define UINT64_MAX 	18446744073709551615ULL
+#define INT64_MAX 	 (9223372036854775807LL)
+#define UINT64_MAX 	(18446744073709551615ULL)
 #endif
 #endif
 
 #ifdef __INT_LEAST64_MAX__
 #define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)
-#define INT_LEAST64_MAX __INT_LEAST64_MAX__
-#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
+#define INT_LEAST64_MAX (__INT_LEAST64_MAX__)
+#define UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)
 #elif defined(__int_least64_t_defined)
 #if __have_long64
 #define INT_LEAST64_MIN  (-9223372036854775807L-1L)
-#define INT_LEAST64_MAX  9223372036854775807L
-#define UINT_LEAST64_MAX 18446744073709551615U
+#define INT_LEAST64_MAX  (9223372036854775807L)
+#define UINT_LEAST64_MAX (18446744073709551615U)
 #elif __have_longlong64
 #define INT_LEAST64_MIN  (-9223372036854775807LL-1LL)
-#define INT_LEAST64_MAX  9223372036854775807LL
-#define UINT_LEAST64_MAX 18446744073709551615ULL
+#define INT_LEAST64_MAX  (9223372036854775807LL)
+#define UINT_LEAST64_MAX (18446744073709551615ULL)
 #endif
 #endif
 
 #ifdef __INT_FAST8_MAX__
 #define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)
-#define INT_FAST8_MAX __INT_FAST8_MAX__
-#define UINT_FAST8_MAX __UINT_FAST8_MAX__
+#define INT_FAST8_MAX (__INT_FAST8_MAX__)
+#define UINT_FAST8_MAX (__UINT_FAST8_MAX__)
 #elif defined(__int_fast8_t_defined)
 #if __STDINT_EXP(INT_MAX) >= 0x7f
 #define INT_FAST8_MIN	(-__STDINT_EXP(INT_MAX)-1)
-#define INT_FAST8_MAX	__STDINT_EXP(INT_MAX)
+#define INT_FAST8_MAX	(__STDINT_EXP(INT_MAX))
 #define UINT_FAST8_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 #else
 #define INT_FAST8_MIN	INT_LEAST8_MIN
@@ -321,12 +276,12 @@ typedef __uintptr_t uintptr_t;
 
 #ifdef __INT_FAST16_MAX__
 #define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)
-#define INT_FAST16_MAX __INT_FAST16_MAX__
-#define UINT_FAST16_MAX __UINT_FAST16_MAX__
+#define INT_FAST16_MAX (__INT_FAST16_MAX__)
+#define UINT_FAST16_MAX (__UINT_FAST16_MAX__)
 #elif defined(__int_fast16_t_defined)
 #if __STDINT_EXP(INT_MAX) >= 0x7fff
 #define INT_FAST16_MIN	(-__STDINT_EXP(INT_MAX)-1)
-#define INT_FAST16_MAX	__STDINT_EXP(INT_MAX)
+#define INT_FAST16_MAX	(__STDINT_EXP(INT_MAX))
 #define UINT_FAST16_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 #else
 #define INT_FAST16_MIN	INT_LEAST16_MIN
@@ -337,12 +292,12 @@ typedef __uintptr_t uintptr_t;
 
 #ifdef __INT_FAST32_MAX__
 #define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)
-#define INT_FAST32_MAX __INT_FAST32_MAX__
-#define UINT_FAST32_MAX __UINT_FAST32_MAX__
+#define INT_FAST32_MAX (__INT_FAST32_MAX__)
+#define UINT_FAST32_MAX (__UINT_FAST32_MAX__)
 #elif defined(__int_fast32_t_defined)
 #if __STDINT_EXP(INT_MAX) >= 0x7fffffff
 #define INT_FAST32_MIN	(-__STDINT_EXP(INT_MAX)-1)
-#define INT_FAST32_MAX	__STDINT_EXP(INT_MAX)
+#define INT_FAST32_MAX	(__STDINT_EXP(INT_MAX))
 #define UINT_FAST32_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 #else
 #define INT_FAST32_MIN	INT_LEAST32_MIN
@@ -353,12 +308,12 @@ typedef __uintptr_t uintptr_t;
 
 #ifdef __INT_FAST64_MAX__
 #define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)
-#define INT_FAST64_MAX __INT_FAST64_MAX__
-#define UINT_FAST64_MAX __UINT_FAST64_MAX__
+#define INT_FAST64_MAX (__INT_FAST64_MAX__)
+#define UINT_FAST64_MAX (__UINT_FAST64_MAX__)
 #elif defined(__int_fast64_t_defined)
 #if __STDINT_EXP(INT_MAX) > 0x7fffffff
 #define INT_FAST64_MIN	(-__STDINT_EXP(INT_MAX)-1)
-#define INT_FAST64_MAX	__STDINT_EXP(INT_MAX)
+#define INT_FAST64_MAX	(__STDINT_EXP(INT_MAX))
 #define UINT_FAST64_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 #else
 #define INT_FAST64_MIN	INT_LEAST64_MIN
@@ -368,7 +323,7 @@ typedef __uintptr_t uintptr_t;
 #endif
 
 #ifdef __INTMAX_MAX__
-#define INTMAX_MAX __INTMAX_MAX__
+#define INTMAX_MAX (__INTMAX_MAX__)
 #define INTMAX_MIN (-INTMAX_MAX - 1)
 #elif defined(__INTMAX_TYPE__)
 /* All relevant GCC versions prefer long to long long for intmax_t.  */
@@ -377,7 +332,7 @@ typedef __uintptr_t uintptr_t;
 #endif
 
 #ifdef __UINTMAX_MAX__
-#define UINTMAX_MAX __UINTMAX_MAX__
+#define UINTMAX_MAX (__UINTMAX_MAX__)
 #elif defined(__UINTMAX_TYPE__)
 /* All relevant GCC versions prefer long to long long for intmax_t.  */
 #define UINTMAX_MAX UINT64_MAX
@@ -385,27 +340,27 @@ typedef __uintptr_t uintptr_t;
 
 /* This must match size_t in stddef.h, currently long unsigned int */
 #ifdef __SIZE_MAX__
-#define SIZE_MAX __SIZE_MAX__
+#define SIZE_MAX (__SIZE_MAX__)
 #else
 #define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 #endif
 
 /* This must match sig_atomic_t in  (currently int) */
 #define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
-#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX)
+#define SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))
 
 /* This must match ptrdiff_t  in  (currently long int) */
 #ifdef __PTRDIFF_MAX__
-#define PTRDIFF_MAX __PTRDIFF_MAX__
+#define PTRDIFF_MAX (__PTRDIFF_MAX__)
 #else
-#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)
+#define PTRDIFF_MAX (__STDINT_EXP(LONG_MAX))
 #endif
 #define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
 
 /* This must match definition in  */
 #ifndef WCHAR_MIN
 #ifdef __WCHAR_MIN__
-#define WCHAR_MIN __WCHAR_MIN__
+#define WCHAR_MIN (__WCHAR_MIN__)
 #elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 #define WCHAR_MIN (0 + L'\0')
 #else
@@ -416,7 +371,7 @@ typedef __uintptr_t uintptr_t;
 /* This must match definition in  */
 #ifndef WCHAR_MAX
 #ifdef __WCHAR_MAX__
-#define WCHAR_MAX __WCHAR_MAX__
+#define WCHAR_MAX (__WCHAR_MAX__)
 #elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 #define WCHAR_MAX (0xffffffffu + L'\0')
 #else
@@ -426,14 +381,14 @@ typedef __uintptr_t uintptr_t;
 
 /* wint_t is unsigned int on almost all GCC targets.  */
 #ifdef __WINT_MAX__
-#define WINT_MAX __WINT_MAX__
+#define WINT_MAX (__WINT_MAX__)
 #else
 #define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U)
 #endif
 #ifdef __WINT_MIN__
-#define WINT_MIN __WINT_MIN__
+#define WINT_MIN (__WINT_MIN__)
 #else
-#define WINT_MIN 0U
+#define WINT_MIN (0U)
 #endif
 
 /** Macros for minimum-width integer constant expressions */
@@ -465,7 +420,7 @@ typedef __uintptr_t uintptr_t;
 #define INT32_C(x) __INT32_C(x)
 #define UINT32_C(x) __UINT32_C(x)
 #else
-#if __have_long32
+#if defined (_INT32_EQ_LONG)
 #define INT32_C(x)	x##L
 #define UINT32_C(x)	x##UL
 #else
diff --git a/libc/xtensa-lx106-elf/include/stdio.h b/libc/xtensa-lx106-elf/include/stdio.h
index e336ee6..1c32423 100644
--- a/libc/xtensa-lx106-elf/include/stdio.h
+++ b/libc/xtensa-lx106-elf/include/stdio.h
@@ -35,9 +35,22 @@
 #include 
 #include 
 
+/* typedef only __gnuc_va_list, used throughout the header */
 #define __need___va_list
 #include 
 
+/* typedef va_list only when required */
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
+#ifdef __GNUC__
+#ifndef _VA_LIST_DEFINED
+typedef __gnuc_va_list va_list;
+#define _VA_LIST_DEFINED
+#endif
+#else /* !__GNUC__ */
+#include 
+#endif
+#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
+
 /*
  *  defines __FILE, _fpos_t.
  * They must be defined there because struct _reent needs them (and we don't
@@ -49,7 +62,10 @@
 
 _BEGIN_STD_C
 
+#if !defined(__FILE_defined)
 typedef __FILE FILE;
+# define __FILE_defined
+#endif
 
 #ifdef __CYGWIN__
 typedef _fpos64_t fpos_t;
@@ -125,7 +141,7 @@ typedef _fpos64_t fpos64_t;
 #define	L_tmpnam	FILENAME_MAX
 #endif
 
-#ifndef __STRICT_ANSI__
+#if __BSD_VISIBLE || __XSI_VISIBLE
 #define P_tmpdir        "/tmp"
 #endif
 
@@ -161,6 +177,12 @@ typedef _fpos64_t fpos64_t;
 #endif
 #endif
 
+#if __POSIX_VISIBLE
+char *	_EXFUN(ctermid, (char *));
+#endif
+#if __XSI_VISIBLE && __XSI_VISIBLE < 600
+char *	_EXFUN(cuserid, (char *));
+#endif
 FILE *	_EXFUN(tmpfile, (void));
 char *	_EXFUN(tmpnam, (char *));
 #if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
@@ -227,7 +249,7 @@ int	_EXFUN(rename, (const char *, const char *));
 int	_EXFUN(_rename, (const char *, const char *));
 #endif
 #endif
-#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K)
+#if __LARGEFILE_VISIBLE || __POSIX_VISIBLE >= 200112
 #ifdef _COMPILING_NEWLIB
 int	_EXFUN(fseeko, (FILE *, _off_t, int));
 _off_t	_EXFUN(ftello, ( FILE *));
@@ -239,16 +261,32 @@ off_t	_EXFUN(ftello, ( FILE *));
 #if __GNU_VISIBLE
 int	_EXFUN(fcloseall, (_VOID));
 #endif
-#if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L)
 #ifndef _REENT_ONLY
+#if __ISO_C_VISIBLE >= 1999
+int	_EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...)
+               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
+int	_EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST)
+               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
+int	_EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST)
+               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
+int	_EXFUN(vscanf, (const char *, __VALIST)
+               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
+int	_EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST)
+               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
+#endif
+#if __GNU_VISIBLE
+int	_EXFUN(asprintf, (char **__restrict, const char *__restrict, ...)
+               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
+int	_EXFUN(vasprintf, (char **, const char *, __VALIST)
+               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
+#endif
+#if __MISC_VISIBLE /* Newlib-specific */
 int	_EXFUN(asiprintf, (char **, const char *, ...)
                _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 char *	_EXFUN(asniprintf, (char *, size_t *, const char *, ...)
                _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 char *	_EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...)
                _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
-int	_EXFUN(asprintf, (char **__restrict, const char *__restrict, ...)
-               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 #ifndef diprintf
 int	_EXFUN(diprintf, (int, const char *, ...)
                _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
@@ -265,8 +303,6 @@ int	_EXFUN(siprintf, (char *, const char *, ...)
                _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 int	_EXFUN(siscanf, (const char *, const char *, ...)
                _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
-int	_EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...)
-               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 int	_EXFUN(sniprintf, (char *, size_t, const char *, ...)
                _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 int	_EXFUN(vasiprintf, (char **, const char *, __VALIST)
@@ -275,50 +311,50 @@ char *	_EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 char *	_EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
-int	_EXFUN(vasprintf, (char **, const char *, __VALIST)
-               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 int	_EXFUN(vdiprintf, (int, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 int	_EXFUN(vfiprintf, (FILE *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 int	_EXFUN(vfiscanf, (FILE *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
-int	_EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST)
-               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 int	_EXFUN(viprintf, (const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 1, 0))));
 int	_EXFUN(viscanf, (const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
-int	_EXFUN(vscanf, (const char *, __VALIST)
-               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
 int	_EXFUN(vsiprintf, (char *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 int	_EXFUN(vsiscanf, (const char *, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 int	_EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
-int	_EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST)
-               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
-int	_EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST)
-               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
+#endif /* __MISC_VISIBLE */
 #endif /* !_REENT_ONLY */
-#endif /* !__STRICT_ANSI__ */
 
 /*
  * Routines in POSIX 1003.1:2001.
  */
 
-#ifndef __STRICT_ANSI__
+#if __POSIX_VISIBLE
 #ifndef _REENT_ONLY
 FILE *	_EXFUN(fdopen, (int, const char *));
 #endif
 int	_EXFUN(fileno, (FILE *));
-int	_EXFUN(getw, (FILE *));
+#endif
+#if __MISC_VISIBLE || __POSIX_VISIBLE >= 199209
 int	_EXFUN(pclose, (FILE *));
 FILE *  _EXFUN(popen, (const char *, const char *));
-int	_EXFUN(putw, (int, FILE *));
+#endif
+
+#if __BSD_VISIBLE
 void    _EXFUN(setbuffer, (FILE *, char *, int));
 int	_EXFUN(setlinebuf, (FILE *));
+#endif
+
+#if __MISC_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112)
+int	_EXFUN(getw, (FILE *));
+int	_EXFUN(putw, (int, FILE *));
+#endif
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 int	_EXFUN(getc_unlocked, (FILE *));
 int	_EXFUN(getchar_unlocked, (void));
 void	_EXFUN(flockfile, (FILE *));
@@ -326,13 +362,13 @@ int	_EXFUN(ftrylockfile, (FILE *));
 void	_EXFUN(funlockfile, (FILE *));
 int	_EXFUN(putc_unlocked, (int, FILE *));
 int	_EXFUN(putchar_unlocked, (int));
-#endif /* ! __STRICT_ANSI__ */
+#endif
 
 /*
  * Routines in POSIX 1003.1:200x.
  */
 
-#ifndef __STRICT_ANSI__
+#if __POSIX_VISIBLE >= 200809
 # ifndef _REENT_ONLY
 #  ifndef dprintf
 int	_EXFUN(dprintf, (int, const char *__restrict, ...)
@@ -342,13 +378,13 @@ FILE *	_EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict));
 /* getdelim - see __getdelim for now */
 /* getline - see __getline for now */
 FILE *	_EXFUN(open_memstream, (char **, size_t *));
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
-int	_EXFUN(renameat, (int, const char *, int, const char *));
-#endif
 int	_EXFUN(vdprintf, (int, const char *__restrict, __VALIST)
                _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 # endif
 #endif
+#if __ATFILE_VISIBLE
+int	_EXFUN(renameat, (int, const char *, int, const char *));
+#endif
 
 /*
  * Recursive versions of the above.
@@ -492,7 +528,7 @@ int	_EXFUN(fpurge, (FILE *));
 ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *));
 ssize_t _EXFUN(__getline, (char **, size_t *, FILE *));
 
-#if __BSD_VISIBLE
+#if __MISC_VISIBLE
 void	_EXFUN(clearerr_unlocked, (FILE *));
 int	_EXFUN(feof_unlocked, (FILE *));
 int	_EXFUN(ferror_unlocked, (FILE *));
@@ -542,7 +578,7 @@ int	_EXFUN(__swbuf_r, (struct _reent *, int, FILE *));
  * Stdio function-access interface.
  */
 
-#ifndef __STRICT_ANSI__
+#if __BSD_VISIBLE
 # ifdef __LARGE64_FILES
 FILE	*_EXFUN(funopen,(const _PTR __cookie,
 		int (*__readfn)(_PTR __c, char *__buf,
@@ -579,7 +615,9 @@ FILE	*_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
 					       (fpos_t (*)())0, (int (*)())0)
 # define	fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0, __fn, \
 					       (fpos_t (*)())0, (int (*)())0)
+#endif /* __BSD_VISIBLE */
 
+#if __GNU_VISIBLE
 typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n);
 typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf,
 					size_t __n);
@@ -603,7 +641,7 @@ FILE *_EXFUN(fopencookie,(void *__cookie,
 		const char *__mode, cookie_io_functions_t __functions));
 FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie,
 		const char *__mode, cookie_io_functions_t __functions));
-#endif /* ! __STRICT_ANSI__ */
+#endif /* __GNU_VISIBLE */
 
 #ifndef __CUSTOM_FILE_IO__
 /*
@@ -642,10 +680,12 @@ _ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p)
 #define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p)
 #endif
 
-#ifdef _never /* __GNUC__ */
-/* If this inline is actually used, then systems using coff debugging
-   info get hopelessly confused.  21sept93 rich@cygnus.com.  */
+#ifdef __GNUC__
 _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
+#ifdef __SCLE
+	if ((_p->_flags & __SCLE) && _c == '\n')
+	  __sputc_r (_ptr, '\r', _p);
+#endif
 	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
 		return (*_p->_p++ = _c);
 	else
@@ -678,19 +718,20 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
 #define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
 #define	__sfileno(p)	((p)->_file)
 
+#ifndef __cplusplus
 #ifndef _REENT_SMALL
 #define	feof(p)		__sfeof(p)
 #define	ferror(p)	__sferror(p)
 #define	clearerr(p)	__sclearerr(p)
 
-#if __BSD_VISIBLE
+#if __MISC_VISIBLE
 #define	feof_unlocked(p)	__sfeof(p)
 #define	ferror_unlocked(p)	__sferror(p)
 #define	clearerr_unlocked(p)	__sclearerr(p)
-#endif /* __BSD_VISIBLE */
+#endif /* __MISC_VISIBLE */
 #endif /* _REENT_SMALL */
 
-#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */
+#if 0 /* __POSIX_VISIBLE - FIXME: must initialize stdio first, use fn */
 #define	fileno(p)	__sfileno(p)
 #endif
 
@@ -700,16 +741,19 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
 #define putc(x, fp)	__sputc_r(_REENT, x, fp)
 #endif /* lint */
 #endif /* __CYGWIN__ */
+#endif /* __cplusplus */
 
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE
 /* fast always-buffered version, true iff error */
 #define	fast_putc(x,p) (--(p)->_w < 0 ? \
 	__swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0))
-
-#define	L_cuserid	9		/* posix says it goes in stdio.h :( */
-#ifdef __CYGWIN__
-#define L_ctermid       16
 #endif
+
+#if __GNU_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600)
+#define	L_cuserid	9		/* posix says it goes in stdio.h :( */
+#endif
+#if __POSIX_VISIBLE
+#define L_ctermid       16
 #endif
 
 #endif /* !__CUSTOM_FILE_IO__ */
@@ -717,7 +761,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
 #define	getchar()	getc(stdin)
 #define	putchar(x)	putc(x, stdout)
 
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 #define	getchar_unlocked()	getc_unlocked(stdin)
 #define	putchar_unlocked(x)	putc_unlocked(x, stdout)
 #endif
diff --git a/libc/xtensa-lx106-elf/include/stdlib.h b/libc/xtensa-lx106-elf/include/stdlib.h
index 254ddd7..c4e6633 100644
--- a/libc/xtensa-lx106-elf/include/stdlib.h
+++ b/libc/xtensa-lx106-elf/include/stdlib.h
@@ -26,6 +26,10 @@
 #include 
 #endif
 
+#if __GNU_VISIBLE
+#include 
+#endif
+
 _BEGIN_STD_C
 
 typedef struct 
@@ -40,9 +44,7 @@ typedef struct
   long rem; /* remainder */
 } ldiv_t;
 
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#if __ISO_C_VISIBLE >= 1999
 typedef struct
 {
   long long int quot; /* quotient */
@@ -70,9 +72,14 @@ int	_EXFUN(__locale_mb_cur_max,(_VOID));
 
 _VOID	_EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__)));
 int	_EXFUN(abs,(int));
+#if __BSD_VISIBLE
+__uint32_t _EXFUN(arc4random, (void));
+__uint32_t _EXFUN(arc4random_uniform, (__uint32_t));
+void    _EXFUN(arc4random_buf, (void *, size_t));
+#endif
 int	_EXFUN(atexit,(_VOID (*__func)(_VOID)));
 double	_EXFUN(atof,(const char *__nptr));
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE
 float	_EXFUN(atoff,(const char *__nptr));
 #endif
 int	_EXFUN(atoi,(const char *__nptr));
@@ -92,7 +99,7 @@ char *  _EXFUN(getenv,(const char *__string));
 char *	_EXFUN(_getenv_r,(struct _reent *, const char *__string));
 char *	_EXFUN(_findenv,(_CONST char *, int *));
 char *	_EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *));
-#ifndef __STRICT_ANSI__
+#if __POSIX_VISIBLE >= 200809
 extern char *suboptarg;			/* getsubopt(3) external variable */
 int	_EXFUN(getsubopt,(char **, char * const *, char **));
 #endif
@@ -109,48 +116,64 @@ size_t	_EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t));
 size_t	_EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *));
 size_t	_EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t));
 size_t	_EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *));
-#ifndef __STRICT_ANSI__
 #ifndef _REENT_ONLY
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
 char *	_EXFUN(mkdtemp,(char *));
+#endif
+#if __GNU_VISIBLE
 int	_EXFUN(mkostemp,(char *, int));
 int	_EXFUN(mkostemps,(char *, int, int));
+#endif
+#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4
 int	_EXFUN(mkstemp,(char *));
+#endif
+#if __MISC_VISIBLE
 int	_EXFUN(mkstemps,(char *, int));
+#endif
 #if (__GNUC__ < 4) || defined(__XTENSA__)
 char *	_EXFUN(mktemp,(char *));
 #else
-char *	_EXFUN(mktemp,(char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
+#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112)
+char *	_EXFUN(mktemp,(char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 #endif
 #endif
+#endif /* !_REENT_ONLY */
 char *	_EXFUN(_mkdtemp_r, (struct _reent *, char *));
 int	_EXFUN(_mkostemp_r, (struct _reent *, char *, int));
 int	_EXFUN(_mkostemps_r, (struct _reent *, char *, int, int));
 int	_EXFUN(_mkstemp_r, (struct _reent *, char *));
 int	_EXFUN(_mkstemps_r, (struct _reent *, char *, int));
 #if (__GNUC__ < 4) || defined(__XTENSA__)
-char *	_EXFUN(_mktemp_r, (struct _reent *, char *)); 
+char *	_EXFUN(_mktemp_r, (struct _reent *, char *));
 #else
-char *	_EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
-#endif
+char *	_EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 #endif
 _VOID	_EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar));
 int	_EXFUN(rand,(_VOID));
 _PTR	_EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size));
-#ifndef __STRICT_ANSI__
+#if __BSD_VISIBLE
+void	*reallocarray(void *, size_t, size_t) __result_use_check __alloc_size(2)
+	    __alloc_size(3);
 _PTR	_EXFUN(reallocf,(_PTR __r, size_t __size));
+#endif
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4
 char *	_EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path));
 #endif
+#if __BSD_VISIBLE
+int	_EXFUN(rpmatch, (const char *response));
+#endif
+#if __XSI_VISIBLE
+_VOID	_EXFUN(setkey, (const char *__key));
+#endif
 _VOID	_EXFUN(srand,(unsigned __seed));
 double	_EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR));
 double	_EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR));
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#if __ISO_C_VISIBLE >= 1999
 float	_EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR));
 #endif
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE
 /* the following strtodf interface is deprecated...use strtof instead */
-# ifndef strtodf 
+# ifndef strtodf
 #  define strtodf strtof
 # endif
 #endif
@@ -159,26 +182,45 @@ long	_EXFUN(_strtol_r,(struct _reent *,const char *__restrict __n, char **__rest
 unsigned long _EXFUN(strtoul,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base));
 
+#if __GNU_VISIBLE
+double	strtod_l (const char *__restrict, char **__restrict, locale_t);
+float	strtof_l (const char *__restrict, char **__restrict, locale_t);
+#ifdef _HAVE_LONG_DOUBLE
+extern long double strtold_l (const char *__restrict, char **__restrict,
+			      locale_t);
+#endif /* _HAVE_LONG_DOUBLE */
+long	strtol_l (const char *__restrict, char **__restrict, int, locale_t);
+unsigned long strtoul_l (const char *__restrict, char **__restrict, int,
+			 locale_t __loc);
+long long strtoll_l (const char *__restrict, char **__restrict, int, locale_t);
+unsigned long long strtoull_l (const char *__restrict, char **__restrict, int,
+			       locale_t __loc);
+#endif
+
 int	_EXFUN(system,(const char *__string));
 
-#ifndef __STRICT_ANSI__
+#if __SVID_VISIBLE || __XSI_VISIBLE >= 4
 long    _EXFUN(a64l,(const char *__input));
 char *  _EXFUN(l64a,(long __input));
 char *  _EXFUN(_l64a_r,(struct _reent *,long __input));
+#endif
+#if __MISC_VISIBLE
 int	_EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg));
-#endif /* ! __STRICT_ANSI__ */
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#endif
+#if __ISO_C_VISIBLE >= 1999
 _VOID	_EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__)));
 #endif
-#ifndef __STRICT_ANSI__
+#if __SVID_VISIBLE || __XSI_VISIBLE
 int	_EXFUN(putenv,(char *__string));
+#endif
 int	_EXFUN(_putenv_r,(struct _reent *, char *__string));
 _PTR	_EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t));
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
 int	_EXFUN(setenv,(const char *__string, const char *__value, int __overwrite));
+#endif
 int	_EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite));
 
+#if __XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112
 char *	_EXFUN(gcvt,(double,int,char *));
 char *	_EXFUN(gcvtf,(float,int,char *));
 char *	_EXFUN(fcvt,(double,int,int *,int *));
@@ -187,15 +229,18 @@ char *	_EXFUN(ecvt,(double,int,int *,int *));
 char *	_EXFUN(ecvtbuf,(double, int, int*, int*, char *));
 char *	_EXFUN(fcvtbuf,(double, int, int*, int*, char *));
 char *	_EXFUN(ecvtf,(float,int,int *,int *));
-char *	_EXFUN(dtoa,(double, int, int, int *, int*, char**));
 #endif
 char *	_EXFUN(__itoa,(int, char *, int));
 char *	_EXFUN(__utoa,(unsigned, char *, int));
-#ifndef __STRICT_ANSI__
+#if __MISC_VISIBLE
 char *	_EXFUN(itoa,(int, char *, int));
 char *	_EXFUN(utoa,(unsigned, char *, int));
+#endif
+#if __POSIX_VISIBLE
 int	_EXFUN(rand_r,(unsigned *__seed));
+#endif
 
+#if __SVID_VISIBLE || __XSI_VISIBLE
 double _EXFUN(drand48,(_VOID));
 double _EXFUN(_drand48_r,(struct _reent *));
 double _EXFUN(erand48,(unsigned short [3]));
@@ -216,45 +261,42 @@ unsigned short *
        _EXFUN(_seed48_r,(struct _reent *, unsigned short [3]));
 _VOID  _EXFUN(srand48,(long));
 _VOID  _EXFUN(_srand48_r,(struct _reent *, long));
-#endif /* ! __STRICT_ANSI__ */
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#endif /* __SVID_VISIBLE || __XSI_VISIBLE */
+#if __SVID_VISIBLE || __XSI_VISIBLE >= 4 || __BSD_VISIBLE
+char *	_EXFUN(initstate,(unsigned, char *, size_t));
+long	_EXFUN(random,(_VOID));
+char *	_EXFUN(setstate,(char *));
+_VOID	_EXFUN(srandom,(unsigned));
+#endif
+#if __ISO_C_VISIBLE >= 1999
 long long _EXFUN(atoll,(const char *__nptr));
 #endif
-#ifndef __STRICT_ANSI__
 long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr));
-#endif /* ! __STRICT_ANSI__ */
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#if __ISO_C_VISIBLE >= 1999
 long long _EXFUN(llabs,(long long));
 lldiv_t	_EXFUN(lldiv,(long long __numer, long long __denom));
 long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 #endif
-#ifndef __STRICT_ANSI__
 long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
-#endif /* ! __STRICT_ANSI__ */
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+#if __ISO_C_VISIBLE >= 1999
 unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 #endif
-#ifndef __STRICT_ANSI__
 unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
 
 #ifndef __CYGWIN__
+#if __MISC_VISIBLE
 _VOID	_EXFUN(cfree,(_PTR));
+#endif
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
 int	_EXFUN(unsetenv,(const char *__string));
+#endif
 int	_EXFUN(_unsetenv_r,(struct _reent *, const char *__string));
-#endif
+#endif /* !__CYGWIN__ */
 
-#ifdef __rtems__
-int _EXFUN(posix_memalign,(void **, size_t, size_t));
+#if __POSIX_VISIBLE >= 200112
+int _EXFUN(__nonnull (1) posix_memalign,(void **, size_t, size_t));
 #endif
 
-#endif /* ! __STRICT_ANSI__ */
-
 char *	_EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**));
 #ifndef __CYGWIN__
 _PTR	_EXFUN_NOTHROW(_malloc_r,(struct _reent *, size_t));
@@ -271,7 +313,9 @@ _VOID	_EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *))
    _BSD_SOURCE, you get the BSD version; otherwise you get the GNU
    version.  We want that #undef qsort_r will still let you
    invoke the underlying function, but that requires gcc support. */
-#ifdef _BSD_SOURCE
+#if __GNU_VISIBLE
+_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk));
+#elif __BSD_VISIBLE
 # ifdef __GNUC__
 _VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)))
              __asm__ (__ASMNAME ("__bsd_qsort_r"));
@@ -279,19 +323,27 @@ _VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk,
 _VOID	_EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)));
 #  define qsort_r __bsd_qsort_r
 # endif
-#elif __GNU_VISIBLE
-_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk));
 #endif
 
 /* On platforms where long double equals double.  */
 #ifdef _HAVE_LONG_DOUBLE
-#if !defined(__STRICT_ANSI__) || \
-  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
-  (defined(__cplusplus) && __cplusplus >= 201103L)
+extern long double _strtold_r (struct _reent *, const char *__restrict, char **__restrict);
+#if __ISO_C_VISIBLE >= 1999
 extern long double strtold (const char *__restrict, char **__restrict);
 #endif
 #endif /* _HAVE_LONG_DOUBLE */
 
+/*
+ * If we're in a mode greater than C99, expose C11 functions.
+ */
+#if __ISO_C_VISIBLE >= 2011
+void *	aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1)
+	    __alloc_size(2);
+int	at_quick_exit(void (*)(void));
+_Noreturn void
+	quick_exit(int);
+#endif /* __ISO_C_VISIBLE >= 2011 */
+
 _END_STD_C
 
 #endif /* _STDLIB_H_ */
diff --git a/libc/xtensa-lx106-elf/include/string.h b/libc/xtensa-lx106-elf/include/string.h
index af5c9da..7833aa1 100644
--- a/libc/xtensa-lx106-elf/include/string.h
+++ b/libc/xtensa-lx106-elf/include/string.h
@@ -16,6 +16,14 @@
 #define __need_NULL
 #include 
 
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
+
+#if __BSD_VISIBLE
+#include 
+#endif
+
 _BEGIN_STD_C
 
 _PTR 	 _EXFUN(memchr,(const _PTR, int, size_t));
@@ -43,57 +51,43 @@ char 	*_EXFUN(strtok,(char *__restrict, const char *__restrict));
 #endif
 size_t	 _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t));
 
-#if __POSIX_VISIBLE
+#if __POSIX_VISIBLE >= 200809
+int	 strcoll_l (const char *, const char *, locale_t);
+char	*strerror_l (int, locale_t);
+size_t	 strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);
+#endif
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 char 	*_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict));
 #endif
 #if __BSD_VISIBLE
-int	 _EXFUN(bcmp,(const void *, const void *, size_t));
-void	 _EXFUN(bcopy,(const void *, void *, size_t));
-void	 _EXFUN(bzero,(void *, size_t));
-int	 _EXFUN(ffs,(int));
-char 	*_EXFUN(index,(const char *, int));
+int	 _EXFUN(timingsafe_bcmp,(const void *, const void *, size_t));
+int	 _EXFUN(timingsafe_memcmp,(const void *, const void *, size_t));
 #endif
-#if __BSD_VISIBLE || __XSI_VISIBLE
+#if __MISC_VISIBLE || __POSIX_VISIBLE
 _PTR	 _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t));
 #endif
 #if __GNU_VISIBLE
 _PTR	 _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
 _PTR	 _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
-#endif
 _PTR 	 _EXFUN(memrchr,(const _PTR, int, size_t));
-#if __GNU_VISIBLE
 _PTR 	 _EXFUN(rawmemchr,(const _PTR, int));
 #endif
-#if __BSD_VISIBLE
-char 	*_EXFUN(rindex,(const char *, int));
-#endif
+#if __POSIX_VISIBLE >= 200809
 char 	*_EXFUN(stpcpy,(char *__restrict, const char *__restrict));
 char 	*_EXFUN(stpncpy,(char *__restrict, const char *__restrict, size_t));
-#if __BSD_VISIBLE || __POSIX_VISIBLE
-int	 _EXFUN(strcasecmp,(const char *, const char *));
 #endif
 #if __GNU_VISIBLE
 char	*_EXFUN(strcasestr,(const char *, const char *));
 char 	*_EXFUN(strchrnul,(const char *, int));
 #endif
-#if __XSI_VISIBLE >= 500
+#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4
 char 	*_EXFUN(strdup,(const char *));
 #endif
-#ifndef __STRICT_ANSI__
 char 	*_EXFUN(_strdup_r,(struct _reent *, const char *));
-#endif
-#if __XSI_VISIBLE >= 700
+#if __POSIX_VISIBLE >= 200809
 char 	*_EXFUN(strndup,(const char *, size_t));
 #endif
-
-#ifndef __STRICT_ANSI__
 char 	*_EXFUN(_strndup_r,(struct _reent *, const char *, size_t));
-#endif
-
-#if __GNU_VISIBLE
-int	 _EXFUN(ffsl,(long));
-int	 _EXFUN(ffsll, (long long));
-#endif
 
 /* There are two common strerror_r variants.  If you request
    _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX
@@ -101,10 +95,13 @@ int	 _EXFUN(ffsll, (long long));
    invoke the underlying function, but that requires gcc support.  */
 #if __GNU_VISIBLE
 char	*_EXFUN(strerror_r,(int, char *, size_t));
-#else
+#elif __POSIX_VISIBLE >= 200112
 # ifdef __GNUC__
 int	_EXFUN(strerror_r,(int, char *, size_t))
-             __asm__ (__ASMNAME ("__xpg_strerror_r"));
+#ifdef __ASMNAME
+             __asm__ (__ASMNAME ("__xpg_strerror_r"))
+#endif
+  ;
 # else
 int	_EXFUN(__xpg_strerror_r,(int, char *, size_t));
 #  define strerror_r __xpg_strerror_r
@@ -118,22 +115,14 @@ char *	_EXFUN(_strerror_r, (struct _reent *, int, int, int *));
 size_t	_EXFUN(strlcat,(char *, const char *, size_t));
 size_t	_EXFUN(strlcpy,(char *, const char *, size_t));
 #endif
-#if __BSD_VISIBLE || __POSIX_VISIBLE
-int	_EXFUN(strncasecmp,(const char *, const char *, size_t));
-#endif
-#if !defined(__STRICT_ANSI__) || __POSIX_VISIBLE >= 200809 || \
-    __XSI_VISIBLE >= 700
+#if __POSIX_VISIBLE >= 200809
 size_t	 _EXFUN(strnlen,(const char *, size_t));
 #endif
 #if __BSD_VISIBLE
 char 	*_EXFUN(strsep,(char **, const char *));
 #endif
 
-/*
- * The origin of these is unknown to me so I am conditionalizing them
- * on __STRICT_ANSI__. Finetuning this is definitely needed. --joel
- */
-#if !defined(__STRICT_ANSI__)
+#if __MISC_VISIBLE
 char	*_EXFUN(strlwr,(char *));
 char	*_EXFUN(strupr,(char *));
 #endif
@@ -146,19 +135,39 @@ char	*_EXFUN(strsignal, (int __signo));
 int	_EXFUN(strtosigno, (const char *__name));
 #endif
 
-#if defined _GNU_SOURCE && defined __GNUC__
+#if __GNU_VISIBLE
+int	 _EXFUN(strverscmp,(const char *, const char *));
+#endif
+
+#if __GNU_VISIBLE && defined(__GNUC__)
 #define strdupa(__s) \
-	(__extension__ ({const char *__in = (__s); \
-			 size_t __len = strlen (__in) + 1; \
-			 char * __out = (char *) __builtin_alloca (__len); \
-			 (char *) memcpy (__out, __in, __len);}))
+	(__extension__ ({const char *__sin = (__s); \
+			 size_t __len = strlen (__sin) + 1; \
+			 char * __sout = (char *) __builtin_alloca (__len); \
+			 (char *) memcpy (__sout, __sin, __len);}))
 #define strndupa(__s, __n) \
-	(__extension__ ({const char *__in = (__s); \
-			 size_t __len = strnlen (__in, (__n)) + 1; \
-			 char *__out = (char *) __builtin_alloca (__len); \
-			 __out[__len-1] = '\0'; \
-			 (char *) memcpy (__out, __in, __len-1);}))
-#endif /* _GNU_SOURCE && __GNUC__ */
+	(__extension__ ({const char *__sin = (__s); \
+			 size_t __len = strnlen (__sin, (__n)) + 1; \
+			 char *__sout = (char *) __builtin_alloca (__len); \
+			 __sout[__len-1] = '\0'; \
+			 (char *) memcpy (__sout, __sin, __len-1);}))
+#endif /* __GNU_VISIBLE && __GNUC__ */
+
+/* There are two common basename variants.  If you do NOT #include 
+   and you do
+
+     #define _GNU_SOURCE
+     #include 
+
+   you get the GNU version.  Otherwise you get the POSIX versionfor which you
+   should #include i for the function prototype.  POSIX requires that
+   #undef basename will still let you invoke the underlying function.  However,
+   this also implies that the POSIX version is used in this case.  That's made
+   sure here. */
+#if __GNU_VISIBLE && !defined(basename)
+# define basename basename
+char	*_EXFUN(__nonnull (1) basename,(const char *)) __asm__(__ASMNAME("__gnu_basename"));
+#endif
 
 #include 
 
diff --git a/libc/xtensa-lx106-elf/include/strings.h b/libc/xtensa-lx106-elf/include/strings.h
index 131d81d..35fcdc0 100644
--- a/libc/xtensa-lx106-elf/include/strings.h
+++ b/libc/xtensa-lx106-elf/include/strings.h
@@ -1,35 +1,76 @@
-/*
- * strings.h
+/*-
+ * Copyright (c) 2002 Mike Barcroft 
+ * All rights reserved.
  *
- * Definitions for string operations.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: head/include/strings.h 272673 2014-10-07 04:54:11Z delphij $
  */
 
 #ifndef _STRINGS_H_
-#define _STRINGS_H_
+#define	_STRINGS_H_
 
-#include "_ansi.h"
-#include 
+#include 
+#include 
 
-#include  /* for size_t */
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
 
-_BEGIN_STD_C
+#ifndef _SIZE_T_DECLARED
+typedef	__size_t	size_t;
+#define	_SIZE_T_DECLARED
+#endif
 
-#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L
-/* 
- * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
- * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
- */
-int	 _EXFUN(bcmp,(const void *, const void *, size_t));
-void	 _EXFUN(bcopy,(const void *, void *, size_t));
-void	 _EXFUN(bzero,(void *, size_t));
-char 	*_EXFUN(index,(const char *, int));
-char 	*_EXFUN(rindex,(const char *, int));
-#endif /* ! __STRICT_ANSI__ */
+__BEGIN_DECLS
+#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112
+int	 bcmp(const void *, const void *, size_t) __pure;	/* LEGACY */
+void	 bcopy(const void *, void *, size_t);			/* LEGACY */
+void	 bzero(void *, size_t);					/* LEGACY */
+#endif
+#if __BSD_VISIBLE
+void	 explicit_bzero(void *, size_t);
+#endif
+#if __XSI_VISIBLE
+int	 ffs(int) __pure2;
+#endif
+#if __BSD_VISIBLE
+int	 ffsl(long) __pure2;
+int	 ffsll(long long) __pure2;
+int	 fls(int) __pure2;
+int	 flsl(long) __pure2;
+int	 flsll(long long) __pure2;
+#endif
+#if __BSD_VISIBLE || __POSIX_VISIBLE <= 200112
+char	*index(const char *, int) __pure;			/* LEGACY */
+char	*rindex(const char *, int) __pure;			/* LEGACY */
+#endif
+int	 strcasecmp(const char *, const char *) __pure;
+int	 strncasecmp(const char *, const char *, size_t) __pure;
 
-int	 _EXFUN(ffs,(int));
-int	 _EXFUN(strcasecmp,(const char *, const char *));
-int	 _EXFUN(strncasecmp,(const char *, const char *, size_t));
-
-_END_STD_C
+#if __POSIX_VISIBLE >= 200809
+int	 strcasecmp_l (const char *, const char *, locale_t);
+int	 strncasecmp_l (const char *, const char *, size_t, locale_t);
+#endif
+__END_DECLS
 
 #endif /* _STRINGS_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
index eb674ae..ede90c4 100644
--- a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
+++ b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
@@ -65,7 +65,7 @@ extern "C" {
 #define O_SEARCH        _FEXECSRCH
 #endif
 
-#ifndef	_POSIX_SOURCE
+#if __MISC_VISIBLE
 
 /*
  * Flags that work for fcntl(fd, F_SETFL, FXXXX)
@@ -97,7 +97,11 @@ extern "C" {
 #define	FEXCL		_FEXCL
 #define	FNOCTTY		_FNOCTTY
 
-#endif	/* !_POSIX_SOURCE */
+#endif	/* __MISC_VISIBLE */
+
+#if __BSD_VISIBLE
+#define	FNONBLOCK	_FNONBLOCK
+#endif	/* __BSD_VISIBLE */
 
 /* XXX close on exec request; must match UF_EXCLOSE in user.h */
 #define	FD_CLOEXEC	1	/* posix */
@@ -108,20 +112,20 @@ extern "C" {
 #define	F_SETFD		2	/* Set fildes flags (close on exec) */
 #define	F_GETFL		3	/* Get file flags */
 #define	F_SETFL		4	/* Set file flags */
-#ifndef	_POSIX_SOURCE
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
 #define	F_GETOWN 	5	/* Get owner - for ASYNC */
 #define	F_SETOWN 	6	/* Set owner - for ASYNC */
-#endif	/* !_POSIX_SOURCE */
+#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 */
 #define	F_GETLK  	7	/* Get record-locking information */
 #define	F_SETLK  	8	/* Set or Clear a record-lock (Non-Blocking) */
 #define	F_SETLKW 	9	/* Set or Clear a record-lock (Blocking) */
-#ifndef	_POSIX_SOURCE
+#if __MISC_VISIBLE
 #define	F_RGETLK 	10	/* Test a remote lock to see if it is blocked */
 #define	F_RSETLK 	11	/* Set or unlock a remote lock */
 #define	F_CNVT 		12	/* Convert a fhandle to an open fd */
 #define	F_RSETLKW 	13	/* Set or Clear remote record-lock(Blocking) */
-#endif	/* !_POSIX_SOURCE */
-#ifdef __CYGWIN__
+#endif	/* __MISC_VISIBLE */
+#if __POSIX_VISIBLE >= 200809
 #define	F_DUPFD_CLOEXEC	14	/* As F_DUPFD, but set close-on-exec flag */
 #endif
 
@@ -129,11 +133,11 @@ extern "C" {
 #define	F_RDLCK		1	/* read lock */
 #define	F_WRLCK		2	/* write lock */
 #define	F_UNLCK		3	/* remove lock(s) */
-#ifndef	_POSIX_SOURCE
+#if __MISC_VISIBLE
 #define	F_UNLKSYS	4	/* remove remote locks for a given system */
-#endif	/* !_POSIX_SOURCE */
+#endif	/* __MISC_VISIBLE */
 
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
 /* Special descriptor value to denote the cwd in calls to openat(2) etc. */
 #define AT_FDCWD -2
 
@@ -166,7 +170,7 @@ struct flock {
 };
 #endif /* __CYGWIN__ */
 
-#ifndef	_POSIX_SOURCE
+#if __MISC_VISIBLE
 /* extended file segment locking set data type */
 struct eflock {
 	short	l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
@@ -178,13 +182,13 @@ struct eflock {
 	long	l_rpid;		/* Remote process id wanting this lock */
 	long	l_rsys;		/* Remote system id wanting this lock */
 };
-#endif	/* !_POSIX_SOURCE */
+#endif	/* __MISC_VISIBLE */
 
 #include 
 #include 		/* sigh. for the mode bits for open/creat */
 
 extern int open _PARAMS ((const char *, int, ...));
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
+#if __ATFILE_VISIBLE
 extern int openat _PARAMS ((int, const char *, int, ...));
 #endif
 extern int creat _PARAMS ((const char *, mode_t));
@@ -192,7 +196,7 @@ extern int fcntl _PARAMS ((int, int, ...));
 #if __BSD_VISIBLE
 extern int flock _PARAMS ((int, int));
 #endif
-#ifdef __CYGWIN__
+#if __GNU_VISIBLE
 #include 
 extern int futimesat _PARAMS ((int, const char *, const struct timeval *));
 #endif
diff --git a/libc/xtensa-lx106-elf/include/sys/_pthreadtypes.h b/libc/xtensa-lx106-elf/include/sys/_pthreadtypes.h
new file mode 100644
index 0000000..75e9e1c
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/_pthreadtypes.h
@@ -0,0 +1,233 @@
+/*
+ *  Written by Joel Sherrill .
+ *
+ *  COPYRIGHT (c) 1989-2013, 2015.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  Permission to use, copy, modify, and distribute this software for any
+ *  purpose without fee is hereby granted, provided that this entire notice
+ *  is included in all copies of any software which is or includes a copy
+ *  or modification of this software.
+ *
+ *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+ *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
+ *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
+ *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+ */
+
+#ifndef _SYS__PTHREADTYPES_H_
+#define	_SYS__PTHREADTYPES_H_
+
+#if defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506
+
+#include 
+
+/*
+ *  2.5 Primitive System Data Types,  P1003.1c/D10, p. 19.
+ */
+
+#if defined(__XMK__)
+typedef unsigned int pthread_t;          /* identify a thread */
+#else
+typedef __uint32_t pthread_t;            /* identify a thread */
+#endif
+
+/* P1003.1c/D10, p. 118-119 */
+#define PTHREAD_SCOPE_PROCESS 0
+#define PTHREAD_SCOPE_SYSTEM  1
+
+/* P1003.1c/D10, p. 111 */
+#define PTHREAD_INHERIT_SCHED  1      /* scheduling policy and associated */
+                                      /*   attributes are inherited from */
+                                      /*   the calling thread. */
+#define PTHREAD_EXPLICIT_SCHED 2      /* set from provided attribute object */
+
+/* P1003.1c/D10, p. 141 */
+#define PTHREAD_CREATE_DETACHED 0
+#define PTHREAD_CREATE_JOINABLE  1
+
+#if defined(__XMK__)
+typedef struct pthread_attr_s {
+  int contentionscope;
+  struct sched_param schedparam;
+  int  detachstate;
+  void *stackaddr;
+  size_t stacksize;
+} pthread_attr_t;
+
+#define PTHREAD_STACK_MIN       200
+
+#else /* !defined(__XMK__) */
+typedef struct {
+  int is_initialized;
+  void *stackaddr;
+  int stacksize;
+  int contentionscope;
+  int inheritsched;
+  int schedpolicy;
+  struct sched_param schedparam;
+
+  /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute.  */
+#if defined(_POSIX_THREAD_CPUTIME)
+  int  cputime_clock_allowed;  /* see time.h */
+#endif
+  int  detachstate;
+} pthread_attr_t;
+
+#endif /* !defined(__XMK__) */
+
+#if defined(_POSIX_THREAD_PROCESS_SHARED)
+/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared.  */
+
+#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */
+#define PTHREAD_PROCESS_SHARED  1 /* visible too all processes with access to */
+                                  /*   the memory where the resource is */
+                                  /*   located */
+#endif
+
+#if defined(_POSIX_THREAD_PRIO_PROTECT)
+/* Mutexes */
+
+/* Values for blocking protocol. */
+
+#define PTHREAD_PRIO_NONE    0
+#define PTHREAD_PRIO_INHERIT 1
+#define PTHREAD_PRIO_PROTECT 2
+#endif
+
+#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
+
+/* Values for mutex type */
+
+/* The following defines are part of the X/Open System Interface (XSI). */
+
+/*
+ * This type of mutex does not detect deadlock. A thread attempting to
+ * relock this mutex without first unlocking it shall deadlock. Attempting
+ * to unlock a mutex locked by a different thread results in undefined
+ * behavior.  Attempting to unlock an unlocked mutex results in undefined
+ * behavior.
+ */
+#define PTHREAD_MUTEX_NORMAL     0
+
+/*
+ * A thread attempting to relock this mutex without first unlocking
+ * it shall succeed in locking the mutex.  The relocking deadlock which
+ * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with
+ * this type of mutex.  Multiple locks of this mutex shall require the
+ * same number of unlocks to release the mutex before another thread can
+ * acquire the mutex. A thread attempting to unlock a mutex which another
+ * thread has locked shall return with an error.  A thread attempting to
+ * unlock an unlocked mutex shall return with an error.
+ */
+#define PTHREAD_MUTEX_RECURSIVE  1
+
+/*
+ * This type of mutex provides error checking. A thread attempting
+ * to relock this mutex without first unlocking it shall return with an
+ * error. A thread attempting to unlock a mutex which another thread has
+ * locked shall return with an error. A thread attempting to unlock an
+ * unlocked mutex shall return with an error.
+ */
+#define PTHREAD_MUTEX_ERRORCHECK 2
+
+/*
+ * Attempting to recursively lock a mutex of this type results
+ * in undefined behavior. Attempting to unlock a mutex of this type
+ * which was not locked by the calling thread results in undefined
+ * behavior. Attempting to unlock a mutex of this type which is not locked
+ * results in undefined behavior. An implementation may map this mutex to
+ * one of the other mutex types.
+ */
+#define PTHREAD_MUTEX_DEFAULT    3
+
+#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */
+
+#if defined(__XMK__)
+typedef unsigned int pthread_mutex_t;    /* identify a mutex */
+
+typedef struct {
+  int type;
+} pthread_mutexattr_t;
+
+#else /* !defined(__XMK__) */
+typedef __uint32_t pthread_mutex_t;      /* identify a mutex */
+
+typedef struct {
+  int   is_initialized;
+#if defined(_POSIX_THREAD_PROCESS_SHARED)
+  int   process_shared;  /* allow mutex to be shared amongst processes */
+#endif
+#if defined(_POSIX_THREAD_PRIO_PROTECT)
+  int   prio_ceiling;
+  int   protocol;
+#endif
+#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
+  int type;
+#endif
+  int   recursive;
+} pthread_mutexattr_t;
+#endif /* !defined(__XMK__) */
+
+#define _PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF)
+
+/* Condition Variables */
+
+typedef __uint32_t pthread_cond_t;       /* identify a condition variable */
+
+#define _PTHREAD_COND_INITIALIZER ((pthread_cond_t) 0xFFFFFFFF)
+
+typedef struct {
+  int      is_initialized;
+  clock_t  clock;             /* specifiy clock for timeouts */
+#if defined(_POSIX_THREAD_PROCESS_SHARED)
+  int      process_shared;    /* allow this to be shared amongst processes */
+#endif
+} pthread_condattr_t;         /* a condition attribute object */
+
+/* Keys */
+
+typedef __uint32_t pthread_key_t;        /* thread-specific data keys */
+
+typedef struct {
+  int   is_initialized;  /* is this structure initialized? */
+  int   init_executed;   /* has the initialization routine been run? */
+} pthread_once_t;       /* dynamic package initialization */
+
+#define _PTHREAD_ONCE_INIT  { 1, 0 }  /* is initialized and not run */
+#endif /* defined(_POSIX_THREADS) || __POSIX_VISIBLE >= 199506 */
+
+/* POSIX Barrier Types */
+
+#if defined(_POSIX_BARRIERS)
+typedef __uint32_t pthread_barrier_t;        /* POSIX Barrier Object */
+typedef struct {
+  int   is_initialized;  /* is this structure initialized? */
+#if defined(_POSIX_THREAD_PROCESS_SHARED)
+  int   process_shared;       /* allow this to be shared amongst processes */
+#endif
+} pthread_barrierattr_t;
+#endif /* defined(_POSIX_BARRIERS) */
+
+/* POSIX Spin Lock Types */
+
+#if defined(_POSIX_SPIN_LOCKS)
+typedef __uint32_t pthread_spinlock_t;        /* POSIX Spin Lock Object */
+#endif /* defined(_POSIX_SPIN_LOCKS) */
+
+/* POSIX Reader/Writer Lock Types */
+
+#if defined(_POSIX_READER_WRITER_LOCKS)
+typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
+
+#define _PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) 0xFFFFFFFF)
+
+typedef struct {
+  int   is_initialized;       /* is this structure initialized? */
+#if defined(_POSIX_THREAD_PROCESS_SHARED)
+  int   process_shared;       /* allow this to be shared amongst processes */
+#endif
+} pthread_rwlockattr_t;
+#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
+
+#endif /* ! _SYS__PTHREADTYPES_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/_sigset.h b/libc/xtensa-lx106-elf/include/sys/_sigset.h
new file mode 100644
index 0000000..a9c0d2d
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/_sigset.h
@@ -0,0 +1,43 @@
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)signal.h	8.4 (Berkeley) 5/4/95
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__SIGSET_H_
+#define	_SYS__SIGSET_H_
+
+typedef unsigned long __sigset_t;
+
+#endif /* !_SYS__SIGSET_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/_stdint.h b/libc/xtensa-lx106-elf/include/sys/_stdint.h
new file mode 100644
index 0000000..21a14d3
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/_stdint.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#ifndef _SYS__STDINT_H
+#define _SYS__STDINT_H
+
+#include 
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef ___int8_t_defined
+#ifndef _INT8_T_DECLARED
+typedef __int8_t int8_t ;
+#define _INT8_T_DECLARED
+#endif
+#ifndef _UINT8_T_DECLARED
+typedef __uint8_t uint8_t ;
+#define _UINT8_T_DECLARED
+#endif
+#define __int8_t_defined 1
+#endif /* ___int8_t_defined */
+
+#ifdef ___int16_t_defined
+#ifndef _INT16_T_DECLARED
+typedef __int16_t int16_t ;
+#define _INT16_T_DECLARED
+#endif
+#ifndef _UINT16_T_DECLARED
+typedef __uint16_t uint16_t ;
+#define _UINT16_T_DECLARED
+#endif
+#define __int16_t_defined 1
+#endif /* ___int16_t_defined */
+
+#ifdef ___int32_t_defined
+#ifndef _INT32_T_DECLARED
+typedef __int32_t int32_t ;
+#define _INT32_T_DECLARED
+#endif
+#ifndef _UINT32_T_DECLARED
+typedef __uint32_t uint32_t ;
+#define _UINT32_T_DECLARED
+#endif
+#define __int32_t_defined 1
+#endif /* ___int32_t_defined */
+
+#ifdef ___int64_t_defined
+#ifndef _INT64_T_DECLARED
+typedef __int64_t int64_t ;
+#define _INT64_T_DECLARED
+#endif
+#ifndef _UINT64_T_DECLARED
+typedef __uint64_t uint64_t ;
+#define _UINT64_T_DECLARED
+#endif
+#define __int64_t_defined 1
+#endif /* ___int64_t_defined */
+
+#ifndef _INTMAX_T_DECLARED
+typedef __intmax_t intmax_t;
+#define _INTMAX_T_DECLARED
+#endif
+
+#ifndef _UINTMAX_T_DECLARED
+typedef __uintmax_t uintmax_t;
+#define _UINTMAX_T_DECLARED
+#endif
+
+#ifndef _INTPTR_T_DECLARED
+typedef __intptr_t intptr_t;
+#define _INTPTR_T_DECLARED
+#endif
+
+#ifndef _UINTPTR_T_DECLARED
+typedef __uintptr_t uintptr_t;
+#define _UINTPTR_T_DECLARED
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS__STDINT_H */
diff --git a/libc/xtensa-lx106-elf/include/sys/_timespec.h b/libc/xtensa-lx106-elf/include/sys/_timespec.h
new file mode 100644
index 0000000..7609e4a
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/_timespec.h
@@ -0,0 +1,50 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)time.h	8.5 (Berkeley) 5/4/95
+ * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+ *	$FreeBSD$
+ */
+
+#ifndef _SYS__TIMESPEC_H_
+#define	_SYS__TIMESPEC_H_
+
+#include 
+
+#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED)
+typedef	_TIME_T_	time_t;
+#define	__time_t_defined
+#define	_TIME_T_DECLARED
+#endif
+
+struct timespec {
+	time_t	tv_sec;		/* seconds */
+	long	tv_nsec;	/* and nanoseconds */
+};
+
+#endif /* !_SYS__TIMESPEC_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/_timeval.h b/libc/xtensa-lx106-elf/include/sys/_timeval.h
new file mode 100644
index 0000000..676a0b8
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/_timeval.h
@@ -0,0 +1,89 @@
+/*-
+ * Copyright (c) 2002 Mike Barcroft 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__TIMEVAL_H_
+#define _SYS__TIMEVAL_H_
+
+#include 
+
+#ifndef _SUSECONDS_T_DECLARED
+typedef	__suseconds_t	suseconds_t;
+#define	_SUSECONDS_T_DECLARED
+#endif
+
+#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED)
+typedef	_TIME_T_	time_t;
+#define	__time_t_defined
+#define	_TIME_T_DECLARED
+#endif
+
+/* This define is also used outside of Newlib, e.g. in MinGW-w64 */
+#ifndef _TIMEVAL_DEFINED
+#define _TIMEVAL_DEFINED
+
+/*
+ * Structure returned by gettimeofday(2) system call, and used in other calls.
+ */
+struct timeval {
+	time_t		tv_sec;		/* seconds */
+	suseconds_t	tv_usec;	/* and microseconds */
+};
+
+#if __BSD_VISIBLE
+#ifndef _KERNEL			/* NetBSD/OpenBSD compatible interfaces */
+
+#define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
+#define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
+#define	timercmp(tvp, uvp, cmp)					\
+	(((tvp)->tv_sec == (uvp)->tv_sec) ?				\
+	    ((tvp)->tv_usec cmp (uvp)->tv_usec) :			\
+	    ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#define	timeradd(tvp, uvp, vvp)						\
+	do {								\
+		(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;		\
+		(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;	\
+		if ((vvp)->tv_usec >= 1000000) {			\
+			(vvp)->tv_sec++;				\
+			(vvp)->tv_usec -= 1000000;			\
+		}							\
+	} while (0)
+#define	timersub(tvp, uvp, vvp)						\
+	do {								\
+		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;		\
+		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;	\
+		if ((vvp)->tv_usec < 0) {				\
+			(vvp)->tv_sec--;				\
+			(vvp)->tv_usec += 1000000;			\
+		}							\
+	} while (0)
+#endif
+#endif /* __BSD_VISIBLE */
+
+#endif /* _TIMEVAL_DEFINED */
+
+#endif /* !_SYS__TIMEVAL_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/_types.h b/libc/xtensa-lx106-elf/include/sys/_types.h
index 07bc276..98b93ce 100644
--- a/libc/xtensa-lx106-elf/include/sys/_types.h
+++ b/libc/xtensa-lx106-elf/include/sys/_types.h
@@ -2,51 +2,141 @@
 
 /* This file defines various typedefs needed by the system calls that support
    the C library.  Basically, they're just the POSIX versions with an '_'
-   prepended.  This file lives in the `sys' directory so targets can provide
-   their own if desired (or they can put target dependant conditionals here).
+   prepended.  Targets shall use  to define their own
+   internal types if desired.
+
+   There are three define patterns used for type definitions.  Lets assume
+   xyz_t is a user type.
+
+   The internal type definition uses __machine_xyz_t_defined.  It is defined by
+    to disable a default definition in . It
+   must not be used in other files.
+
+   User type definitions are guarded by __xyz_t_defined in glibc and
+   _XYZ_T_DECLARED in BSD compatible systems.
 */
 
 #ifndef	_SYS__TYPES_H
 #define _SYS__TYPES_H
 
+#include 
+#include 
 #include 
 #include 
 
-#ifndef __off_t_defined
+#ifndef __machine_blkcnt_t_defined
+typedef long __blkcnt_t;
+#endif
+
+#ifndef __machine_blksize_t_defined
+typedef long __blksize_t;
+#endif
+
+#ifndef __machine_fsblkcnt_t_defined
+typedef __uint64_t __fsblkcnt_t;
+#endif
+
+#ifndef __machine_fsfilcnt_t_defined
+typedef __uint32_t __fsfilcnt_t;
+#endif
+
+#ifndef __machine_off_t_defined
 typedef long _off_t;
 #endif
 
-#ifndef __dev_t_defined
+#if defined(__XMK__)
+typedef signed char __pid_t;
+#else
+typedef int __pid_t;
+#endif
+
+#ifndef __machine_dev_t_defined
 typedef short __dev_t;
 #endif
 
-#ifndef __uid_t_defined
+#ifndef __machine_uid_t_defined
 typedef unsigned short __uid_t;
 #endif
-#ifndef __gid_t_defined
+#ifndef __machine_gid_t_defined
 typedef unsigned short __gid_t;
 #endif
 
-#ifndef __off64_t_defined
+#ifndef __machine_id_t_defined
+typedef __uint32_t __id_t;
+#endif
+
+#ifndef __machine_ino_t_defined
+#if (defined(__i386__) && (defined(GO32) || defined(__MSDOS__))) || \
+    defined(__sparc__) || defined(__SPU__)
+typedef unsigned long __ino_t;
+#else
+typedef unsigned short __ino_t;
+#endif
+#endif
+
+#ifndef __machine_mode_t_defined
+#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__))
+typedef int __mode_t;
+#else
+#if defined(__sparc__) && !defined(__sparc_v9__)
+#ifdef __svr4__
+typedef unsigned long __mode_t;
+#else
+typedef unsigned short __mode_t;
+#endif
+#else
+typedef __uint32_t __mode_t;
+#endif
+#endif
+#endif
+
+#ifndef __machine_off64_t_defined
 __extension__ typedef long long _off64_t;
 #endif
 
+#if defined(__CYGWIN__) && !defined(__LP64__)
+typedef _off64_t __off_t;
+#else
+typedef _off_t __off_t;
+#endif
+
+typedef _off64_t __loff_t;
+
+#ifndef __machine_key_t_defined
+typedef long __key_t;
+#endif
+
 /*
  * We need fpos_t for the following, but it doesn't have a leading "_",
  * so we use _fpos_t instead.
  */
-#ifndef __fpos_t_defined
+#ifndef __machine_fpos_t_defined
 typedef long _fpos_t;		/* XXX must match off_t in  */
 				/* (and must be `long' for now) */
 #endif
 
 #ifdef __LARGE64_FILES
-#ifndef __fpos64_t_defined
+#ifndef __machine_fpos64_t_defined
 typedef _off64_t _fpos64_t;
 #endif
 #endif
 
-#ifndef __ssize_t_defined
+/* Defined by GCC provided  */
+#undef __size_t
+
+#ifndef __machine_size_t_defined
+#ifdef __SIZE_TYPE__
+typedef __SIZE_TYPE__ __size_t;
+#else
+#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
+typedef unsigned int __size_t;
+#else
+typedef unsigned long __size_t;
+#endif
+#endif
+#endif
+
+#ifndef __machine_ssize_t_defined
 #ifdef __SIZE_TYPE__
 /* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
    We simply change "unsigned" to "signed" for this single definition
@@ -63,10 +153,12 @@ typedef long _ssize_t;
 #endif
 #endif
 
+typedef _ssize_t __ssize_t;
+
 #define __need_wint_t
 #include 
 
-#ifndef __mbstate_t_defined
+#ifndef __machine_mbstate_t_defined
 /* Conversion state information.  */
 typedef struct
 {
@@ -79,13 +171,43 @@ typedef struct
 } _mbstate_t;
 #endif
 
-#ifndef __flock_t_defined
+#ifndef __machine_flock_t_defined
 typedef _LOCK_RECURSIVE_T _flock_t;
 #endif
 
-#ifndef __iconv_t_defined
+#ifndef __machine_iconv_t_defined
 /* Iconv descriptor type */
 typedef void *_iconv_t;
 #endif
 
+#define	_CLOCK_T_	unsigned long	/* clock() */
+typedef	_CLOCK_T_	__clock_t;
+
+#define	_TIME_T_	long		/* time() */
+typedef	_TIME_T_	__time_t;
+
+#define	_CLOCKID_T_ 	unsigned long
+typedef	_CLOCKID_T_	__clockid_t;
+
+#define	_TIMER_T_	unsigned long
+typedef	_TIMER_T_	__timer_t;
+
+#ifndef __machine_sa_family_t_defined
+typedef	__uint8_t	__sa_family_t;
+#endif
+
+#ifndef __machine_socklen_t_defined
+typedef	__uint32_t	__socklen_t;
+#endif
+
+typedef	unsigned short	__nlink_t;
+typedef	long		__suseconds_t;	/* microseconds (signed) */
+typedef	unsigned long	__useconds_t;	/* microseconds (unsigned) */
+
+#ifdef __GNUCLIKE_BUILTIN_VARARGS
+typedef	__builtin_va_list	__va_list;
+#else
+typedef	char *			__va_list;
+#endif /* __GNUCLIKE_BUILTIN_VARARGS */
+
 #endif	/* _SYS__TYPES_H */
diff --git a/libc/xtensa-lx106-elf/include/sys/cdefs.h b/libc/xtensa-lx106-elf/include/sys/cdefs.h
index a5e613c..2e63a07 100644
--- a/libc/xtensa-lx106-elf/include/sys/cdefs.h
+++ b/libc/xtensa-lx106-elf/include/sys/cdefs.h
@@ -17,7 +17,7 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -69,7 +69,9 @@
 /*
  * Testing against Clang-specific extensions.
  */
-
+#ifndef	__has_attribute
+#define	__has_attribute(x)	0
+#endif
 #ifndef	__has_extension
 #define	__has_extension		__has_feature
 #endif
@@ -100,33 +102,33 @@
 #if defined(__GNUC__) || defined(__INTEL_COMPILER)
 
 #if __GNUC__ >= 3 || defined(__INTEL_COMPILER)
-#define __GNUCLIKE_ASM 3
-#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS
+#define	__GNUCLIKE_ASM 3
+#define	__GNUCLIKE_MATH_BUILTIN_CONSTANTS
 #else
-#define __GNUCLIKE_ASM 2
+#define	__GNUCLIKE_ASM 2
 #endif
-#define __GNUCLIKE___TYPEOF 1
-#define __GNUCLIKE___OFFSETOF 1
-#define __GNUCLIKE___SECTION 1
+#define	__GNUCLIKE___TYPEOF 1
+#define	__GNUCLIKE___OFFSETOF 1
+#define	__GNUCLIKE___SECTION 1
 
 #ifndef __INTEL_COMPILER
-# define __GNUCLIKE_CTOR_SECTION_HANDLING 1
+#define	__GNUCLIKE_CTOR_SECTION_HANDLING 1
 #endif
 
-#define __GNUCLIKE_BUILTIN_CONSTANT_P 1
-# if defined(__INTEL_COMPILER) && defined(__cplusplus) \
-    && __INTEL_COMPILER < 800
-#  undef __GNUCLIKE_BUILTIN_CONSTANT_P
-# endif
+#define	__GNUCLIKE_BUILTIN_CONSTANT_P 1
+#if defined(__INTEL_COMPILER) && defined(__cplusplus) && \
+   __INTEL_COMPILER < 800
+#undef __GNUCLIKE_BUILTIN_CONSTANT_P
+#endif
 
-#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER)
-# define __GNUCLIKE_BUILTIN_VARARGS 1
-# define __GNUCLIKE_BUILTIN_STDARG 1
-# define __GNUCLIKE_BUILTIN_VAALIST 1
+#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+#define	__GNUCLIKE_BUILTIN_VARARGS 1
+#define	__GNUCLIKE_BUILTIN_STDARG 1
+#define	__GNUCLIKE_BUILTIN_VAALIST 1
 #endif
 
 #if defined(__GNUC__)
-# define __GNUC_VA_LIST_COMPATIBILITY 1
+#define	__GNUC_VA_LIST_COMPATIBILITY 1
 #endif
 
 /*
@@ -137,23 +139,23 @@
 #endif
 
 #ifndef __INTEL_COMPILER
-# define __GNUCLIKE_BUILTIN_NEXT_ARG 1
-# define __GNUCLIKE_MATH_BUILTIN_RELOPS
+#define	__GNUCLIKE_BUILTIN_NEXT_ARG 1
+#define	__GNUCLIKE_MATH_BUILTIN_RELOPS
 #endif
 
-#define __GNUCLIKE_BUILTIN_MEMCPY 1
+#define	__GNUCLIKE_BUILTIN_MEMCPY 1
 
 /* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
-#define __CC_SUPPORTS_INLINE 1
-#define __CC_SUPPORTS___INLINE 1
-#define __CC_SUPPORTS___INLINE__ 1
+#define	__CC_SUPPORTS_INLINE 1
+#define	__CC_SUPPORTS___INLINE 1
+#define	__CC_SUPPORTS___INLINE__ 1
 
-#define __CC_SUPPORTS___FUNC__ 1
-#define __CC_SUPPORTS_WARNING 1
+#define	__CC_SUPPORTS___FUNC__ 1
+#define	__CC_SUPPORTS_WARNING 1
 
-#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
+#define	__CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
 
-#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
+#define	__CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
 
 #endif /* __GNUC__ || __INTEL_COMPILER */
 
@@ -229,8 +231,12 @@
 #define	__unused
 #define	__packed
 #define	__aligned(x)
+#define	__alloc_align(x)
+#define	__alloc_size(x)
 #define	__section(x)
+#define	__weak_symbol
 #else
+#define	__weak_symbol	__attribute__((__weak__))
 #if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
 #define	__dead2
 #define	__pure2
@@ -242,7 +248,7 @@
 #define	__unused
 /* XXX Find out what to do for __packed, __aligned and __section */
 #endif
-#if __GNUC_PREREQ__(2, 7)
+#if __GNUC_PREREQ__(2, 7) || defined(__INTEL_COMPILER)
 #define	__dead2		__attribute__((__noreturn__))
 #define	__pure2		__attribute__((__const__))
 #define	__unused	__attribute__((__unused__))
@@ -251,16 +257,17 @@
 #define	__aligned(x)	__attribute__((__aligned__(x)))
 #define	__section(x)	__attribute__((__section__(x)))
 #endif
-#if defined(__INTEL_COMPILER)
-#define __dead2		__attribute__((__noreturn__))
-#define __pure2		__attribute__((__const__))
-#define __unused	__attribute__((__unused__))
-#define __used		__attribute__((__used__))
-#define __packed	__attribute__((__packed__))
-#define __aligned(x)	__attribute__((__aligned__(x)))
-#define __section(x)	__attribute__((__section__(x)))
+#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)
+#define	__alloc_size(x)	__attribute__((__alloc_size__(x)))
+#else
+#define	__alloc_size(x)
 #endif
+#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)
+#define	__alloc_align(x)	__attribute__((__alloc_align__(x)))
+#else
+#define	__alloc_align(x)
 #endif
+#endif /* lint */
 
 #if !__GNUC_PREREQ__(2, 95)
 #define	__alignof(x)	__offsetof(struct { char __a; x __b; }, __b)
@@ -270,7 +277,7 @@
  * Keywords added in C11.
  */
 
-#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L || defined(lint)
 
 #if !__has_extension(c_alignas)
 #if (defined(__cplusplus) && __cplusplus >= 201103L) || \
@@ -288,7 +295,8 @@
 #define	_Alignof(x)		__alignof(x)
 #endif
 
-#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
+#if !defined(__cplusplus) && !__has_extension(c_atomic) && \
+    !__has_extension(cxx_atomic)
 /*
  * No native support for _Atomic(). Place object in structure to prevent
  * most forms of direct non-atomic access.
@@ -302,23 +310,28 @@
 #define	_Noreturn		__dead2
 #endif
 
-#if __GNUC_PREREQ__(4, 6) && !defined(__cplusplus)
-/*  Do nothing: _Static_assert() works as per C11 */
-#elif !__has_extension(c_static_assert)
+#if !__has_extension(c_static_assert)
 #if (defined(__cplusplus) && __cplusplus >= 201103L) || \
     __has_extension(cxx_static_assert)
 #define	_Static_assert(x, y)	static_assert(x, y)
+#elif __GNUC_PREREQ__(4,6)
+/* Nothing, gcc 4.6 and higher has _Static_assert built-in */
 #elif defined(__COUNTER__)
 #define	_Static_assert(x, y)	__Static_assert(x, __COUNTER__)
 #define	__Static_assert(x, y)	___Static_assert(x, y)
-#define	___Static_assert(x, y)	typedef char __assert_ ## y[(x) ? 1 : -1]
+#define	___Static_assert(x, y)	typedef char __assert_ ## y[(x) ? 1 : -1] \
+				__unused
 #else
 #define	_Static_assert(x, y)	struct __hack
 #endif
 #endif
 
 #if !__has_extension(c_thread_local)
-/* XXX: Change this to test against C++11 when clang in base supports it. */
+/*
+ * XXX: Some compilers (Clang 3.3, GCC 4.7) falsely announce C++11 mode
+ * without actually supporting the thread_local keyword. Don't check for
+ * the presence of C++11 when defining _Thread_local.
+ */
 #if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \
     __has_extension(cxx_thread_local)
 #define	_Thread_local		thread_local
@@ -338,7 +351,8 @@
  * distinguish multiple cases.
  */
 
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
+    __has_extension(c_generic_selections)
 #define	__generic(expr, t, yes, no)					\
 	_Generic(expr, t: yes, default: no)
 #elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
@@ -347,6 +361,21 @@
 	    __builtin_types_compatible_p(__typeof(expr), t), yes, no)
 #endif
 
+/*
+ * C99 Static array indices in function parameter declarations.  Syntax such as:
+ * void bar(int myArray[static 10]);
+ * is allowed in C99 but not in C++.  Define __min_size appropriately so
+ * headers using it can be compiled in either language.  Use like this:
+ * void bar(int myArray[__min_size(10)]);
+ */
+#if !defined(__cplusplus) && \
+    (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \
+    (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >= 199901))
+#define __min_size(x)	static (x)
+#else
+#define __min_size(x)	(x)
+#endif
+
 #if __GNUC_PREREQ__(2, 96)
 #define	__malloc_like	__attribute__((__malloc__))
 #define	__pure		__attribute__((__pure__))
@@ -368,15 +397,19 @@
 #endif
 
 #if __GNUC_PREREQ__(3, 3)
-#define __nonnull(x)	__attribute__((__nonnull__(x)))
+#define	__nonnull(x)	__attribute__((__nonnull__(x)))
+#define	__nonnull_all	__attribute__((__nonnull__))
 #else
-#define __nonnull(x)
+#define	__nonnull(x)
+#define	__nonnull_all
 #endif
 
 #if __GNUC_PREREQ__(3, 4)
 #define	__fastcall	__attribute__((__fastcall__))
+#define	__result_use_check	__attribute__((__warn_unused_result__))
 #else
 #define	__fastcall
+#define	__result_use_check
 #endif
 
 #if __GNUC_PREREQ__(4, 1)
@@ -385,6 +418,12 @@
 #define	__returns_twice
 #endif
 
+#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable)
+#define	__unreachable()	__builtin_unreachable()
+#else
+#define	__unreachable()	((void)0)
+#endif
+
 /* XXX: should use `#if __STDC_VERSION__ < 199901'. */
 #if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
 #define	__func__	NULL
@@ -433,19 +472,26 @@
  *	  larger code.
  */
 #if __GNUC_PREREQ__(2, 96)
-#define __predict_true(exp)     __builtin_expect((exp), 1)
-#define __predict_false(exp)    __builtin_expect((exp), 0)
+#define	__predict_true(exp)     __builtin_expect((exp), 1)
+#define	__predict_false(exp)    __builtin_expect((exp), 0)
 #else
-#define __predict_true(exp)     (exp)
-#define __predict_false(exp)    (exp)
+#define	__predict_true(exp)     (exp)
+#define	__predict_false(exp)    (exp)
 #endif
 
-#if __GNUC_PREREQ__(4, 2)
-#define	__hidden	__attribute__((__visibility__("hidden")))
+#if __GNUC_PREREQ__(4, 0)
+#define	__null_sentinel	__attribute__((__sentinel__))
 #define	__exported	__attribute__((__visibility__("default")))
+/* Only default visibility is supported on PE/COFF targets. */
+#ifndef __CYGWIN__
+#define	__hidden	__attribute__((__visibility__("hidden")))
 #else
 #define	__hidden
+#endif
+#else
+#define	__null_sentinel
 #define	__exported
+#define	__hidden
 #endif
 
 #define __offsetof(type, field)	offsetof(type, field)
@@ -460,7 +506,7 @@
  */
 #if __GNUC_PREREQ__(3, 1)
 #define	__containerof(x, s, m) ({					\
-	const volatile __typeof__(((s *)0)->m) *__x = (x);		\
+	const volatile __typeof(((s *)0)->m) *__x = (x);		\
 	__DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\
 })
 #else
@@ -583,128 +629,94 @@
 #define	__DEQUALIFY(type, var)	((type)(__uintptr_t)(const volatile void *)(var))
 #endif
 
-/*-
- * The following definitions are an extension of the behavior originally
- * implemented in , but with a different level of granularity.
- * POSIX.1 requires that the macros we test be defined before any standard
- * header file is included.
- *
- * Here's a quick run-down of the versions:
- *  defined(_POSIX_SOURCE)		1003.1-1988
- *  _POSIX_C_SOURCE == 1		1003.1-1990
- *  _POSIX_C_SOURCE == 2		1003.2-1992 C Language Binding Option
- *  _POSIX_C_SOURCE == 199309		1003.1b-1993
- *  _POSIX_C_SOURCE == 199506		1003.1c-1995, 1003.1i-1995,
- *					and the omnibus ISO/IEC 9945-1: 1996
- *  _POSIX_C_SOURCE == 200112		1003.1-2001
- *  _POSIX_C_SOURCE == 200809		1003.1-2008
- *
- * In addition, the X/Open Portability Guide, which is now the Single UNIX
- * Specification, defines a feature-test macro which indicates the version of
- * that specification, and which subsumes _POSIX_C_SOURCE.
- *
- * Our macros begin with two underscores to avoid namespace screwage.
+/*
+ * Nullability qualifiers: currently only supported by Clang.
  */
-
-/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
-#undef _POSIX_C_SOURCE		/* Probably illegal, but beyond caring now. */
-#define	_POSIX_C_SOURCE		199009
-#endif
-
-/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		199209
-#endif
-
-/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
-#ifdef _XOPEN_SOURCE
-#if _XOPEN_SOURCE - 0 >= 700
-#define	__XSI_VISIBLE		700
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		200809
-#elif _XOPEN_SOURCE - 0 >= 600
-#define	__XSI_VISIBLE		600
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		200112
-#elif _XOPEN_SOURCE - 0 >= 500
-#define	__XSI_VISIBLE		500
-#undef _POSIX_C_SOURCE
-#define	_POSIX_C_SOURCE		199506
-#endif
+#if !(defined(__clang__) && __has_feature(nullability))
+#define	_Nonnull
+#define	_Nullable
+#define	_Null_unspecified
+#define	__NULLABILITY_PRAGMA_PUSH
+#define	__NULLABILITY_PRAGMA_POP
+#else
+#define	__NULLABILITY_PRAGMA_PUSH _Pragma("clang diagnostic push")	\
+	_Pragma("clang diagnostic ignored \"-Wnullability-completeness\"")
+#define	__NULLABILITY_PRAGMA_POP _Pragma("clang diagnostic pop")
 #endif
 
 /*
- * Deal with all versions of POSIX.  The ordering relative to the tests above is
- * important.
- */
-#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
-#define	_POSIX_C_SOURCE		198808
-#endif
-#ifdef _POSIX_C_SOURCE
-#if _POSIX_C_SOURCE >= 200809
-#define	__POSIX_VISIBLE		200809
-#define	__ISO_C_VISIBLE		1999
-#elif _POSIX_C_SOURCE >= 200112
-#define	__POSIX_VISIBLE		200112
-#define	__ISO_C_VISIBLE		1999
-#elif _POSIX_C_SOURCE >= 199506
-#define	__POSIX_VISIBLE		199506
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199309
-#define	__POSIX_VISIBLE		199309
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199209
-#define	__POSIX_VISIBLE		199209
-#define	__ISO_C_VISIBLE		1990
-#elif _POSIX_C_SOURCE >= 199009
-#define	__POSIX_VISIBLE		199009
-#define	__ISO_C_VISIBLE		1990
-#else
-#define	__POSIX_VISIBLE		198808
-#define	__ISO_C_VISIBLE		0
-#endif /* _POSIX_C_SOURCE */
-#else
-/*-
- * Deal with _ANSI_SOURCE:
- * If it is defined, and no other compilation environment is explicitly
- * requested, then define our internal feature-test macros to zero.  This
- * makes no difference to the preprocessor (undefined symbols in preprocessing
- * expressions are defined to have value zero), but makes it more convenient for
- * a test program to print out the values.
+ * Type Safety Checking
  *
- * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
- * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
- * environment (and in fact we will never get here).
+ * Clang provides additional attributes to enable checking type safety
+ * properties that cannot be enforced by the C type system. 
  */
-#if defined(_ANSI_SOURCE)	/* Hide almost everything. */
-#define	__POSIX_VISIBLE		0
-#define	__XSI_VISIBLE		0
-#define	__BSD_VISIBLE		0
-#define	__ISO_C_VISIBLE		1990
-#elif defined(_C99_SOURCE)	/* Localism to specify strict C99 env. */
-#define	__POSIX_VISIBLE		0
-#define	__XSI_VISIBLE		0
-#define	__BSD_VISIBLE		0
-#define	__ISO_C_VISIBLE		1999
-#elif defined(_C11_SOURCE)	/* Localism to specify strict C11 env. */
-#define	__POSIX_VISIBLE		0
-#define	__XSI_VISIBLE		0
-#define	__BSD_VISIBLE		0
-#define	__ISO_C_VISIBLE		2011
-#elif defined(_GNU_SOURCE)	/* Everything and the kitchen sink. */
-#define	__POSIX_VISIBLE		200809
-#define	__XSI_VISIBLE		700
-#define	__BSD_VISIBLE		1
-#define	__ISO_C_VISIBLE		2011
-#define	__GNU_VISIBLE		1
-#else				/* Default: everything except __GNU_VISIBLE. */
-#define	__POSIX_VISIBLE		200809
-#define	__XSI_VISIBLE		700
-#define	__BSD_VISIBLE		1
-#define	__ISO_C_VISIBLE		2011
-#endif
+
+#if __has_attribute(__argument_with_type_tag__) && \
+    __has_attribute(__type_tag_for_datatype__) && !defined(lint)
+#define	__arg_type_tag(arg_kind, arg_idx, type_tag_idx) \
+	    __attribute__((__argument_with_type_tag__(arg_kind, arg_idx, type_tag_idx)))
+#define	__datatype_type_tag(kind, type) \
+	    __attribute__((__type_tag_for_datatype__(kind, type)))
+#else
+#define	__arg_type_tag(arg_kind, arg_idx, type_tag_idx)
+#define	__datatype_type_tag(kind, type)
 #endif
 
+/*
+ * Lock annotations.
+ *
+ * Clang provides support for doing basic thread-safety tests at
+ * compile-time, by marking which locks will/should be held when
+ * entering/leaving a functions.
+ *
+ * Furthermore, it is also possible to annotate variables and structure
+ * members to enforce that they are only accessed when certain locks are
+ * held.
+ */
+
+#if __has_extension(c_thread_safety_attributes)
+#define	__lock_annotate(x)	__attribute__((x))
+#else
+#define	__lock_annotate(x)
+#endif
+
+/* Structure implements a lock. */
+#define	__lockable		__lock_annotate(lockable)
+
+/* Function acquires an exclusive or shared lock. */
+#define	__locks_exclusive(...) \
+	__lock_annotate(exclusive_lock_function(__VA_ARGS__))
+#define	__locks_shared(...) \
+	__lock_annotate(shared_lock_function(__VA_ARGS__))
+
+/* Function attempts to acquire an exclusive or shared lock. */
+#define	__trylocks_exclusive(...) \
+	__lock_annotate(exclusive_trylock_function(__VA_ARGS__))
+#define	__trylocks_shared(...) \
+	__lock_annotate(shared_trylock_function(__VA_ARGS__))
+
+/* Function releases a lock. */
+#define	__unlocks(...)		__lock_annotate(unlock_function(__VA_ARGS__))
+
+/* Function asserts that an exclusive or shared lock is held. */
+#define	__asserts_exclusive(...) \
+	__lock_annotate(assert_exclusive_lock(__VA_ARGS__))
+#define	__asserts_shared(...) \
+	__lock_annotate(assert_shared_lock(__VA_ARGS__))
+
+/* Function requires that an exclusive or shared lock is or is not held. */
+#define	__requires_exclusive(...) \
+	__lock_annotate(exclusive_locks_required(__VA_ARGS__))
+#define	__requires_shared(...) \
+	__lock_annotate(shared_locks_required(__VA_ARGS__))
+#define	__requires_unlocked(...) \
+	__lock_annotate(locks_excluded(__VA_ARGS__))
+
+/* Function should not be analyzed. */
+#define	__no_lock_analysis	__lock_annotate(no_thread_safety_analysis)
+
+/* Guard variables and structure members by lock. */
+#define	__guarded_by(x)		__lock_annotate(guarded_by(x))
+#define	__pt_guarded_by(x)	__lock_annotate(pt_guarded_by(x))
+
 #endif /* !_SYS_CDEFS_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/config.h b/libc/xtensa-lx106-elf/include/sys/config.h
index f6f923e..24ca1a0 100644
--- a/libc/xtensa-lx106-elf/include/sys/config.h
+++ b/libc/xtensa-lx106-elf/include/sys/config.h
@@ -92,7 +92,6 @@
 /* we want the reentrancy structure to be returned by a function */
 #define __DYNAMIC_REENT__
 #define HAVE_GETDATE
-#define _HAVE_SYSTYPES
 #define _READ_WRITE_RETURN_TYPE _ssize_t
 #define __LARGE64_FILES 1
 /* we use some glibc header files so turn on glibc large file feature */
@@ -185,6 +184,10 @@
 #define __CUSTOM_FILE_IO__
 #endif
 
+#if defined(__or1k__) || defined(__or1knd__)
+#define __DYNAMIC_REENT__
+#endif
+
 #ifdef __XTENSA__
 #include 
 #define MALLOC_ALIGNMENT ((XCHAL_DATA_WIDTH) < 16 ? 16 : (XCHAL_DATA_WIDTH))
@@ -235,9 +238,6 @@
 
 #if defined(__CYGWIN__)
 #include 
-#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L)
-#define __USE_XOPEN2K 1
-#endif
 #endif
 
 #if defined(__rtems__)
@@ -245,6 +245,7 @@
 #define _READ_WRITE_RETURN_TYPE _ssize_t
 #define __DYNAMIC_REENT__
 #define _REENT_GLOBAL_ATEXIT
+#define _REENT_GLOBAL_STDIO_STREAMS
 #endif
 
 #ifndef __EXPORT
@@ -282,6 +283,12 @@
 #endif
 #endif
 
+#ifdef _WANT_REENT_GLOBAL_STDIO_STREAMS
+#ifndef _REENT_GLOBAL_STDIO_STREAMS
+#define _REENT_GLOBAL_STDIO_STREAMS
+#endif
+#endif
+
 /* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
    charsets.  The extended charsets add a few functions and a couple
    of tables of a few K each. */
diff --git a/libc/xtensa-lx106-elf/include/sys/features.h b/libc/xtensa-lx106-elf/include/sys/features.h
index 1d90921..1f9271b 100644
--- a/libc/xtensa-lx106-elf/include/sys/features.h
+++ b/libc/xtensa-lx106-elf/include/sys/features.h
@@ -1,7 +1,7 @@
 /*
  *  Written by Joel Sherrill .
  *
- *  COPYRIGHT (c) 1989-2000.
+ *  COPYRIGHT (c) 1989-2014.
  *
  *  On-Line Applications Research Corporation (OAR).
  *
@@ -25,11 +25,7 @@
 extern "C" {
 #endif
 
-/* Macros to determine that newlib is being used.  Put in this header to 
- * be similar to where glibc stores its version of these macros.
- */
-#define __NEWLIB__  		2
-#define __NEWLIB_MINOR__  	1
+#include <_newlib_version.h>
 
 /* Macro to test version of GCC.  Returns 0 for non-GCC or too old GCC. */
 #ifndef __GNUC_PREREQ
@@ -43,6 +39,281 @@ extern "C" {
 /* Version with trailing underscores for BSD compatibility. */
 #define	__GNUC_PREREQ__(ma, mi)	__GNUC_PREREQ(ma, mi)
 
+
+/*
+ * Feature test macros control which symbols are exposed by the system
+ * headers.  Any of these must be defined before including any headers.
+ *
+ * __STRICT_ANSI__ (defined by gcc -ansi, -std=c90, -std=c99, or -std=c11)
+ *	ISO C
+ *
+ * _POSIX_SOURCE (deprecated by _POSIX_C_SOURCE=1)
+ * _POSIX_C_SOURCE >= 1
+ * 	POSIX.1-1990
+ *
+ * _POSIX_C_SOURCE >= 2
+ * 	POSIX.2-1992
+ *
+ * _POSIX_C_SOURCE >= 199309L
+ * 	POSIX.1b-1993 Real-time extensions
+ *
+ * _POSIX_C_SOURCE >= 199506L
+ * 	POSIX.1c-1995 Threads extensions
+ *
+ * _POSIX_C_SOURCE >= 200112L
+ * 	POSIX.1-2001 and C99
+ *
+ * _POSIX_C_SOURCE >= 200809L
+ * 	POSIX.1-2008
+ *
+ * _XOPEN_SOURCE
+ *	POSIX.1-1990 and XPG4
+ *
+ * _XOPEN_SOURCE_EXTENDED
+ *	SUSv1 (POSIX.2-1992 plus XPG4v2)
+ *
+ * _XOPEN_SOURCE >= 500
+ *	SUSv2 (POSIX.1c-1995 plus XSI)
+ *
+ * _XOPEN_SOURCE >= 600
+ *	SUSv3 (POSIX.1-2001 plus XSI) and C99
+ *
+ * _XOPEN_SOURCE >= 700
+ *	SUSv4 (POSIX.1-2008 plus XSI)
+ *
+ * _ISOC99_SOURCE or gcc -std=c99 or g++
+ * 	ISO C99
+ *
+ * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11
+ * 	ISO C11
+ *
+ * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L)
+ *	"at" functions
+ *
+ * _LARGEFILE_SOURCE (deprecated by _XOPEN_SOURCE >= 500)
+ *	fseeko, ftello
+ *
+ * _GNU_SOURCE
+ * 	All of the above plus GNU extensions
+ *
+ * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE)
+ * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE)
+ * _DEFAULT_SOURCE (or none of the above)
+ * 	POSIX-1.2008 with BSD and SVr4 extensions
+ */
+
+#ifdef _GNU_SOURCE
+#undef _ATFILE_SOURCE
+#define	_ATFILE_SOURCE		1
+#undef	_DEFAULT_SOURCE
+#define	_DEFAULT_SOURCE		1
+#undef _ISOC99_SOURCE
+#define	_ISOC99_SOURCE		1
+#undef _ISOC11_SOURCE
+#define	_ISOC11_SOURCE		1
+#undef _POSIX_SOURCE
+#define	_POSIX_SOURCE		1
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		200809L
+#undef _XOPEN_SOURCE
+#define	_XOPEN_SOURCE		700
+#undef _XOPEN_SOURCE_EXTENDED
+#define	_XOPEN_SOURCE_EXTENDED	1
+#endif /* _GNU_SOURCE */
+
+#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \
+   (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \
+   !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \
+   !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
+#undef _DEFAULT_SOURCE
+#define	_DEFAULT_SOURCE		1
+#endif
+
+#if defined(_DEFAULT_SOURCE)
+#undef _POSIX_SOURCE
+#define	_POSIX_SOURCE		1
+#undef _POSIX_C_SOURCE
+#define	_POSIX_C_SOURCE		200809L
+#endif
+
+#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \
+  ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \
+   (_XOPEN_SOURCE - 0) >= 500)
+#define	_POSIX_SOURCE		1
+#if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700
+#define	_POSIX_C_SOURCE		200809L
+#elif (_XOPEN_SOURCE - 0) >= 600
+#define	_POSIX_C_SOURCE		200112L
+#elif (_XOPEN_SOURCE - 0) >= 500
+#define	_POSIX_C_SOURCE		199506L
+#elif (_XOPEN_SOURCE - 0) < 500
+#define	_POSIX_C_SOURCE		2
+#endif
+#endif
+
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809
+#undef _ATFILE_SOURCE
+#define	_ATFILE_SOURCE		1
+#endif
+
+/*
+ * The following private macros are used throughout the headers to control
+ * which symbols should be exposed.  They are for internal use only, as
+ * indicated by the leading double underscore, and must never be used outside
+ * of these headers.
+ *
+ * __POSIX_VISIBLE
+ * 	any version of POSIX.1; enabled by default, or with _POSIX_SOURCE,
+ * 	any value of _POSIX_C_SOURCE, or _XOPEN_SOURCE >= 500.
+ *
+ * __POSIX_VISIBLE >= 2
+ * 	POSIX.2-1992; enabled by default, with _POSIX_C_SOURCE >= 2,
+ * 	or _XOPEN_SOURCE >= 500.
+ *
+ * __POSIX_VISIBLE >= 199309
+ * 	POSIX.1b-1993; enabled by default, with _POSIX_C_SOURCE >= 199309L,
+ * 	or _XOPEN_SOURCE >= 500.
+ *
+ * __POSIX_VISIBLE >= 199506
+ * 	POSIX.1c-1995; enabled by default, with _POSIX_C_SOURCE >= 199506L,
+ * 	or _XOPEN_SOURCE >= 500.
+ *
+ * __POSIX_VISIBLE >= 200112
+ * 	POSIX.1-2001; enabled by default, with _POSIX_C_SOURCE >= 200112L,
+ * 	or _XOPEN_SOURCE >= 600.
+ *
+ * __POSIX_VISIBLE >= 200809
+ * 	POSIX.1-2008; enabled by default, with _POSIX_C_SOURCE >= 200809L,
+ * 	or _XOPEN_SOURCE >= 700.
+ *
+ * __XSI_VISIBLE
+ *	XPG4 XSI extensions; enabled with any version of _XOPEN_SOURCE.
+ *
+ * __XSI_VISIBLE >= 4
+ *	SUSv1 XSI extensions; enabled with both _XOPEN_SOURCE and
+ * 	_XOPEN_SOURCE_EXTENDED together.
+ *
+ * __XSI_VISIBLE >= 500
+ *	SUSv2 XSI extensions; enabled with _XOPEN_SOURCE >= 500.
+ *
+ * __XSI_VISIBLE >= 600
+ *	SUSv3 XSI extensions; enabled with _XOPEN_SOURCE >= 600.
+ *
+ * __XSI_VISIBLE >= 700
+ *	SUSv4 XSI extensions; enabled with _XOPEN_SOURCE >= 700.
+ *
+ * __ISO_C_VISIBLE >= 1999
+ * 	ISO C99; enabled with gcc -std=c99 or newer (on by default since GCC 5),
+ * 	any version of C++, or with _ISOC99_SOURCE, _POSIX_C_SOURCE >= 200112L,
+ * 	or _XOPEN_SOURCE >= 600.
+ *
+ * __ISO_C_VISIBLE >= 2011
+ * 	ISO C11; enabled with gcc -std=c11 or newer (on by default since GCC 5),
+ * 	g++ -std=c++11 or newer (on by default since GCC 6), or with
+ * 	_ISOC11_SOURCE.
+ *
+ * __ATFILE_VISIBLE
+ *	"at" functions; enabled by default, with _ATFILE_SOURCE,
+ * 	_POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700.
+ *
+ * __LARGEFILE_VISIBLE
+ *	fseeko, ftello; enabled with _LARGEFILE_SOURCE or _XOPEN_SOURCE >= 500.
+ *
+ * __BSD_VISIBLE
+ * 	BSD extensions; enabled by default, or with _BSD_SOURCE.
+ *
+ * __SVID_VISIBLE
+ * 	SVr4 extensions; enabled by default, or with _SVID_SOURCE.
+ *
+ * __MISC_VISIBLE
+ * 	Extensions found in both BSD and SVr4 (shorthand for
+ * 	(__BSD_VISIBLE || __SVID_VISIBLE)), or newlib-specific
+ * 	extensions; enabled by default.
+ *
+ * __GNU_VISIBLE
+ * 	GNU extensions; enabled with _GNU_SOURCE.
+ *
+ * In all cases above, "enabled by default" means either by defining
+ * _DEFAULT_SOURCE, or by not defining any of the public feature test macros.
+ * Defining _GNU_SOURCE makes all of the above avaliable.
+ */
+
+#ifdef _ATFILE_SOURCE
+#define	__ATFILE_VISIBLE	1
+#else
+#define	__ATFILE_VISIBLE	0
+#endif
+
+#ifdef _DEFAULT_SOURCE
+#define	__BSD_VISIBLE		1
+#else
+#define	__BSD_VISIBLE		0
+#endif
+
+#ifdef _GNU_SOURCE
+#define	__GNU_VISIBLE		1
+#else
+#define	__GNU_VISIBLE		0
+#endif
+
+#if defined(_ISOC11_SOURCE) || \
+  (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L
+#define	__ISO_C_VISIBLE		2011
+#elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \
+  (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus)
+#define	__ISO_C_VISIBLE		1999
+#else
+#define	__ISO_C_VISIBLE		1990
+#endif
+
+#if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500
+#define	__LARGEFILE_VISIBLE	1
+#else
+#define	__LARGEFILE_VISIBLE	0
+#endif
+
+#ifdef _DEFAULT_SOURCE
+#define	__MISC_VISIBLE		1
+#else
+#define	__MISC_VISIBLE		0
+#endif
+
+#if (_POSIX_C_SOURCE - 0) >= 200809L
+#define	__POSIX_VISIBLE		200809
+#elif (_POSIX_C_SOURCE - 0) >= 200112L
+#define	__POSIX_VISIBLE		200112
+#elif (_POSIX_C_SOURCE - 0) >= 199506L
+#define	__POSIX_VISIBLE		199506
+#elif (_POSIX_C_SOURCE - 0) >= 199309L
+#define	__POSIX_VISIBLE		199309
+#elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE)
+#define	__POSIX_VISIBLE		199209
+#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
+#define	__POSIX_VISIBLE		199009
+#else
+#define	__POSIX_VISIBLE		0
+#endif
+
+#ifdef _DEFAULT_SOURCE
+#define	__SVID_VISIBLE		1
+#else
+#define	__SVID_VISIBLE		0
+#endif
+
+#if (_XOPEN_SOURCE - 0) >= 700
+#define	__XSI_VISIBLE		700
+#elif (_XOPEN_SOURCE - 0) >= 600
+#define	__XSI_VISIBLE		600
+#elif (_XOPEN_SOURCE - 0) >= 500
+#define	__XSI_VISIBLE		500
+#elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)
+#define	__XSI_VISIBLE		4
+#elif defined(_XOPEN_SOURCE)
+#define	__XSI_VISIBLE		1
+#else
+#define	__XSI_VISIBLE		0
+#endif
+
 /* RTEMS adheres to POSIX -- 1003.1b with some features from annexes.  */
 
 #ifdef __rtems__
@@ -57,11 +328,12 @@ extern "C" {
 #define _POSIX_MEMORY_PROTECTION	1
 #define _POSIX_MESSAGE_PASSING		1
 #define _POSIX_MONOTONIC_CLOCK		200112L
+#define _POSIX_CLOCK_SELECTION		200112L
 #define _POSIX_PRIORITIZED_IO		1
 #define _POSIX_PRIORITY_SCHEDULING	1
 #define _POSIX_REALTIME_SIGNALS		1
 #define _POSIX_SEMAPHORES		1
-/* #define _POSIX_SHARED_MEMORY_OBJECTS	1 */
+#define _POSIX_SHARED_MEMORY_OBJECTS	1
 #define _POSIX_SYNCHRONIZED_IO		1
 #define _POSIX_TIMERS			1
 #define _POSIX_BARRIERS                 200112L
@@ -94,6 +366,9 @@ extern "C" {
 /* UNIX98 added some new pthread mutex attributes */
 #define _UNIX98_THREAD_MUTEX_ATTRIBUTES         1
 
+/* POSIX 1003.26-2003 defined device control method */
+#define _POSIX_26_VERSION			200312L
+
 #endif
 
 /* XMK loosely adheres to POSIX -- 1003.1 */
@@ -111,62 +386,82 @@ extern "C" {
 
 #ifdef __CYGWIN__
 
-#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
+#if __POSIX_VISIBLE >= 200809
+#define _POSIX_VERSION				200809L
+#define _POSIX2_VERSION				200809L
+#elif __POSIX_VISIBLE >= 200112
 #define _POSIX_VERSION				200112L
 #define _POSIX2_VERSION				200112L
-#define _XOPEN_VERSION				   600
+#elif __POSIX_VISIBLE >= 199506
+#define _POSIX_VERSION				199506L
+#define _POSIX2_VERSION				199506L
+#elif __POSIX_VISIBLE >= 199309
+#define _POSIX_VERSION				199309L
+#define _POSIX2_VERSION				199209L
+#elif __POSIX_VISIBLE >= 199209
+#define _POSIX_VERSION				199009L
+#define _POSIX2_VERSION				199209L
+#elif __POSIX_VISIBLE
+#define _POSIX_VERSION				199009L
+#endif
+#if __XSI_VISIBLE >= 4
+#define _XOPEN_VERSION				__XSI_VISIBLE
+#endif
 
-#define _POSIX_ADVISORY_INFO			200112L
+#define _POSIX_ADVISORY_INFO			200809L
 /* #define _POSIX_ASYNCHRONOUS_IO		    -1 */
-/* #define _POSIX_BARRIERS			    -1 */
+#define _POSIX_BARRIERS				200809L
 #define _POSIX_CHOWN_RESTRICTED			     1
-#define _POSIX_CLOCK_SELECTION			200112L
-#define _POSIX_CPUTIME			    	200112L
-#define _POSIX_FSYNC				200112L
-#define _POSIX_IPV6				200112L
+#define _POSIX_CLOCK_SELECTION			200809L
+#define _POSIX_CPUTIME				200809L
+#define _POSIX_FSYNC				200809L
+#define _POSIX_IPV6				200809L
 #define _POSIX_JOB_CONTROL			     1
-#define _POSIX_MAPPED_FILES			200112L
+#define _POSIX_MAPPED_FILES			200809L
 /* #define _POSIX_MEMLOCK			    -1 */
-#define _POSIX_MEMLOCK_RANGE			200112L
-#define _POSIX_MEMORY_PROTECTION		200112L
-#define _POSIX_MESSAGE_PASSING			200112L
-#define _POSIX_MONOTONIC_CLOCK			200112L
+#define _POSIX_MEMLOCK_RANGE			200809L
+#define _POSIX_MEMORY_PROTECTION		200809L
+#define _POSIX_MESSAGE_PASSING			200809L
+#define _POSIX_MONOTONIC_CLOCK			200809L
 #define _POSIX_NO_TRUNC				     1
 /* #define _POSIX_PRIORITIZED_IO		    -1 */
-#define _POSIX_PRIORITY_SCHEDULING		200112L
-#define _POSIX_RAW_SOCKETS			200112L
-#define _POSIX_READER_WRITER_LOCKS		200112L
-#define _POSIX_REALTIME_SIGNALS			200112L
+#define _POSIX_PRIORITY_SCHEDULING		200809L
+#define _POSIX_RAW_SOCKETS			200809L
+#define _POSIX_READER_WRITER_LOCKS		200809L
+#define _POSIX_REALTIME_SIGNALS			200809L
 #define _POSIX_REGEXP				     1
 #define _POSIX_SAVED_IDS			     1
-#define _POSIX_SEMAPHORES			200112L
-#define _POSIX_SHARED_MEMORY_OBJECTS		200112L 
+#define _POSIX_SEMAPHORES			200809L
+#define _POSIX_SHARED_MEMORY_OBJECTS		200809L
 #define _POSIX_SHELL				     1
-/* #define _POSIX_SPAWN				    -1 */
-#define _POSIX_SPIN_LOCKS			    200112L
+#define _POSIX_SPAWN				200809L
+#define _POSIX_SPIN_LOCKS			200809L
 /* #define _POSIX_SPORADIC_SERVER		    -1 */
-#define _POSIX_SYNCHRONIZED_IO			200112L
-#define _POSIX_THREAD_ATTR_STACKADDR		200112L
-#define _POSIX_THREAD_ATTR_STACKSIZE		200112L
-#define _POSIX_THREAD_CPUTIME			200112L
+#define _POSIX_SYNCHRONIZED_IO			200809L
+#define _POSIX_THREAD_ATTR_STACKADDR		200809L
+#define _POSIX_THREAD_ATTR_STACKSIZE		200809L
+#define _POSIX_THREAD_CPUTIME			200809L
 /* #define _POSIX_THREAD_PRIO_INHERIT		    -1 */
 /* #define _POSIX_THREAD_PRIO_PROTECT		    -1 */
-#define _POSIX_THREAD_PRIORITY_SCHEDULING	200112L
-#define _POSIX_THREAD_PROCESS_SHARED		200112L
-#define _POSIX_THREAD_SAFE_FUNCTIONS		200112L
+#define _POSIX_THREAD_PRIORITY_SCHEDULING	200809L
+#define _POSIX_THREAD_PROCESS_SHARED		200809L
+#define _POSIX_THREAD_SAFE_FUNCTIONS		200809L
 /* #define _POSIX_THREAD_SPORADIC_SERVER	    -1 */
-#define _POSIX_THREADS				200112L
+#define _POSIX_THREADS				200809L
 /* #define _POSIX_TIMEOUTS			    -1 */
-#define _POSIX_TIMERS				     1
+#define _POSIX_TIMERS				200809L
 /* #define _POSIX_TRACE				    -1 */
 /* #define _POSIX_TRACE_EVENT_FILTER		    -1 */
 /* #define _POSIX_TRACE_INHERIT			    -1 */
 /* #define _POSIX_TRACE_LOG			    -1 */
 /* #define _POSIX_TYPED_MEMORY_OBJECTS		    -1 */
 #define _POSIX_VDISABLE				   '\0'
-#define _POSIX2_C_BIND				200112L
-#define _POSIX2_C_DEV				200112L
-#define _POSIX2_CHAR_TERM			200112L
+
+#if __POSIX_VISIBLE >= 2
+#define _POSIX2_C_VERSION			_POSIX2_VERSION
+#define _POSIX2_C_BIND				_POSIX2_VERSION
+#define _POSIX2_C_DEV				_POSIX2_VERSION
+#define _POSIX2_CHAR_TERM			_POSIX2_VERSION
 /* #define _POSIX2_FORT_DEV			    -1 */
 /* #define _POSIX2_FORT_RUN			    -1 */
 /* #define _POSIX2_LOCALEDEF			    -1 */
@@ -176,8 +471,10 @@ extern "C" {
 /* #define _POSIX2_PBS_LOCATE			    -1 */
 /* #define _POSIX2_PBS_MESSAGE			    -1 */
 /* #define _POSIX2_PBS_TRACK			    -1 */
-#define _POSIX2_SW_DEV				200112L
-#define _POSIX2_UPE				200112L
+#define _POSIX2_SW_DEV				_POSIX2_VERSION
+#define _POSIX2_UPE				_POSIX2_VERSION
+#endif /* __POSIX_VISIBLE >= 2 */
+
 #define _POSIX_V6_ILP32_OFF32			    -1
 #ifdef __LP64__
 #define _POSIX_V6_ILP32_OFFBIG			    -1
@@ -188,10 +485,16 @@ extern "C" {
 #define _POSIX_V6_LP64_OFF64			    -1
 #define _POSIX_V6_LPBIG_OFFBIG			    -1
 #endif
+#define _POSIX_V7_ILP32_OFF32			_POSIX_V6_ILP32_OFF32
+#define _POSIX_V7_ILP32_OFFBIG			_POSIX_V6_ILP32_OFFBIG
+#define _POSIX_V7_LP64_OFF64			_POSIX_V6_LP64_OFF64
+#define _POSIX_V7_LPBIG_OFFBIG			_POSIX_V6_LPBIG_OFFBIG
 #define _XBS5_ILP32_OFF32			_POSIX_V6_ILP32_OFF32
 #define _XBS5_ILP32_OFFBIG			_POSIX_V6_ILP32_OFFBIG
 #define _XBS5_LP64_OFF64			_POSIX_V6_LP64_OFF64
 #define _XBS5_LPBIG_OFFBIG			_POSIX_V6_LPBIG_OFFBIG
+
+#if __XSI_VISIBLE
 #define _XOPEN_CRYPT				     1
 #define _XOPEN_ENH_I18N				     1
 /* #define _XOPEN_LEGACY			    -1 */
@@ -200,8 +503,7 @@ extern "C" {
 #define _XOPEN_SHM				     1
 /* #define _XOPEN_STREAMS			    -1 */
 /* #define _XOPEN_UNIX				    -1 */
-
-#endif /* !__STRICT_ANSI__ || __cplusplus || __STDC_VERSION__ >= 199901L */
+#endif /* __XSI_VISIBLE */
 
 /* The value corresponds to UNICODE version 4.0, which is the version
    supported by XP.  Newlib supports 5.2 (2011) but so far Cygwin needs
@@ -210,25 +512,6 @@ extern "C" {
 
 #endif /* __CYGWIN__ */
 
-/* Per the permission given in POSIX.1-2008 section 2.2.1, define
- * _POSIX_C_SOURCE if _XOPEN_SOURCE is defined and _POSIX_C_SOURCE is not.
- * (_XOPEN_SOURCE indicates that XSI extensions are desired by an application.)
- * This permission is first granted in 2008, but use it for older ones, also.
- * Allow for _XOPEN_SOURCE to be empty (from the earliest form of it, before it
- * was required to have specific values).
- */
-#if !defined(_POSIX_C_SOURCE)  &&  defined(_XOPEN_SOURCE) 
-  #if (_XOPEN_SOURCE - 0) == 700	/* POSIX.1-2008 */
-    #define _POSIX_C_SOURCE       200809L
-   #elif (_XOPEN_SOURCE - 0) == 600	/* POSIX.1-2001 or 2004 */
-    #define _POSIX_C_SOURCE       200112L
-   #elif (_XOPEN_SOURCE - 0) == 500	/* POSIX.1-1995 */
-    #define _POSIX_C_SOURCE       199506L
-   #elif (_XOPEN_SOURCE - 0) < 500	/* really old */
-    #define _POSIX_C_SOURCE       2
-  #endif
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/xtensa-lx106-elf/include/sys/param.h b/libc/xtensa-lx106-elf/include/sys/param.h
index ef203d3..9a6f115 100644
--- a/libc/xtensa-lx106-elf/include/sys/param.h
+++ b/libc/xtensa-lx106-elf/include/sys/param.h
@@ -10,6 +10,9 @@
 #include 
 #include 
 
+#ifndef NBBY
+# define NBBY 8		/* number of bits in a byte */
+#endif
 #ifndef HZ
 # define HZ (60)
 #endif
@@ -25,4 +28,8 @@
 #define MAX(a,b) ((a) > (b) ? (a) : (b))
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 
+#ifndef howmany
+#define    howmany(x, y)   (((x)+((y)-1))/(y))
+#endif
+
 #endif
diff --git a/libc/xtensa-lx106-elf/include/sys/queue.h b/libc/xtensa-lx106-elf/include/sys/queue.h
index 4bc7dac..491bdde 100644
--- a/libc/xtensa-lx106-elf/include/sys/queue.h
+++ b/libc/xtensa-lx106-elf/include/sys/queue.h
@@ -10,7 +10,7 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -76,11 +76,17 @@
  *
  * For details on the use of these macros, see the queue(3) manual page.
  *
+ * Below is a summary of implemented functions where:
+ *  +  means the macro is available
+ *  -  means the macro is not available
+ *  s  means the macro is available but is slow (runs in O(n) time)
  *
  *				SLIST	LIST	STAILQ	TAILQ
  * _HEAD			+	+	+	+
+ * _CLASS_HEAD			+	+	+	+
  * _HEAD_INITIALIZER		+	+	+	+
  * _ENTRY			+	+	+	+
+ * _CLASS_ENTRY			+	+	+	+
  * _INIT			+	+	+	+
  * _EMPTY			+	+	+	+
  * _FIRST			+	+	+	+
@@ -88,21 +94,31 @@
  * _PREV			-	+	-	+
  * _LAST			-	-	+	+
  * _FOREACH			+	+	+	+
+ * _FOREACH_FROM		+	+	+	+
  * _FOREACH_SAFE		+	+	+	+
+ * _FOREACH_FROM_SAFE		+	+	+	+
  * _FOREACH_REVERSE		-	-	-	+
+ * _FOREACH_REVERSE_FROM	-	-	-	+
  * _FOREACH_REVERSE_SAFE	-	-	-	+
+ * _FOREACH_REVERSE_FROM_SAFE	-	-	-	+
  * _INSERT_HEAD			+	+	+	+
  * _INSERT_BEFORE		-	+	-	+
  * _INSERT_AFTER		+	+	+	+
  * _INSERT_TAIL			-	-	+	+
- * _CONCAT			-	-	+	+
+ * _CONCAT			s	s	+	+
  * _REMOVE_AFTER		+	-	+	-
  * _REMOVE_HEAD			+	-	+	-
- * _REMOVE			+	+	+	+
+ * _REMOVE			s	+	s	+
  * _SWAP			+	+	+	+
  *
  */
 #ifdef QUEUE_MACRO_DEBUG
+#warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH
+#define	QUEUE_MACRO_DEBUG_TRACE
+#define	QUEUE_MACRO_DEBUG_TRASH
+#endif
+
+#ifdef QUEUE_MACRO_DEBUG_TRACE
 /* Store the last 2 places the queue element or head was altered */
 struct qm_trace {
 	unsigned long	 lastline;
@@ -112,9 +128,7 @@ struct qm_trace {
 };
 
 #define	TRACEBUF	struct qm_trace trace;
-#define	TRACEBUF_INITIALIZER	{ __FILE__, __LINE__, NULL, 0 } ,
-#define	TRASHIT(x)	do {(x) = (void *)-1;} while (0)
-#define	QMD_SAVELINK(name, link)	void **name = (void *)&(link)
+#define	TRACEBUF_INITIALIZER	{ __LINE__, 0, __FILE__, NULL } ,
 
 #define	QMD_TRACE_HEAD(head) do {					\
 	(head)->trace.prevline = (head)->trace.lastline;		\
@@ -130,14 +144,35 @@ struct qm_trace {
 	(elem)->trace.lastfile = __FILE__;				\
 } while (0)
 
-#else
+#else	/* !QUEUE_MACRO_DEBUG_TRACE */
 #define	QMD_TRACE_ELEM(elem)
 #define	QMD_TRACE_HEAD(head)
-#define	QMD_SAVELINK(name, link)
 #define	TRACEBUF
 #define	TRACEBUF_INITIALIZER
+#endif	/* QUEUE_MACRO_DEBUG_TRACE */
+
+#ifdef QUEUE_MACRO_DEBUG_TRASH
+#define	TRASHIT(x)		do {(x) = (void *)-1;} while (0)
+#define	QMD_IS_TRASHED(x)	((x) == (void *)(intptr_t)-1)
+#else	/* !QUEUE_MACRO_DEBUG_TRASH */
 #define	TRASHIT(x)
-#endif	/* QUEUE_MACRO_DEBUG */
+#define	QMD_IS_TRASHED(x)	0
+#endif	/* QUEUE_MACRO_DEBUG_TRASH */
+
+#if defined(QUEUE_MACRO_DEBUG_TRACE) || defined(QUEUE_MACRO_DEBUG_TRASH)
+#define	QMD_SAVELINK(name, link)	void **name = (void *)&(link)
+#else	/* !QUEUE_MACRO_DEBUG_TRACE && !QUEUE_MACRO_DEBUG_TRASH */
+#define	QMD_SAVELINK(name, link)
+#endif	/* QUEUE_MACRO_DEBUG_TRACE || QUEUE_MACRO_DEBUG_TRASH */
+
+#ifdef __cplusplus
+/*
+ * In C++ there can be structure lists and class lists:
+ */
+#define	QUEUE_TYPEOF(type) type
+#else
+#define	QUEUE_TYPEOF(type) struct type
+#endif
 
 /*
  * Singly-linked List declarations.
@@ -147,6 +182,11 @@ struct name {								\
 	struct type *slh_first;	/* first element */			\
 }
 
+#define	SLIST_CLASS_HEAD(name, type)					\
+struct name {								\
+	class type *slh_first;	/* first element */			\
+}
+
 #define	SLIST_HEAD_INITIALIZER(head)					\
 	{ NULL }
 
@@ -155,9 +195,37 @@ struct {								\
 	struct type *sle_next;	/* next element */			\
 }
 
+#define	SLIST_CLASS_ENTRY(type)						\
+struct {								\
+	class type *sle_next;		/* next element */		\
+}
+
 /*
  * Singly-linked List functions.
  */
+#if (defined(_KERNEL) && defined(INVARIANTS))
+#define	QMD_SLIST_CHECK_PREVPTR(prevp, elm) do {			\
+	if (*(prevp) != (elm))						\
+		panic("Bad prevptr *(%p) == %p != %p",			\
+		    (prevp), *(prevp), (elm));				\
+} while (0)
+#else
+#define	QMD_SLIST_CHECK_PREVPTR(prevp, elm)
+#endif
+
+#define SLIST_CONCAT(head1, head2, type, field) do {			\
+	QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head1);		\
+	if (curelm == NULL) {						\
+		if ((SLIST_FIRST(head1) = SLIST_FIRST(head2)) != NULL)	\
+			SLIST_INIT(head2);				\
+	} else if (SLIST_FIRST(head2) != NULL) {			\
+		while (SLIST_NEXT(curelm, field) != NULL)		\
+			curelm = SLIST_NEXT(curelm, field);		\
+		SLIST_NEXT(curelm, field) = SLIST_FIRST(head2);		\
+		SLIST_INIT(head2);					\
+	}								\
+} while (0)
+
 #define	SLIST_EMPTY(head)	((head)->slh_first == NULL)
 
 #define	SLIST_FIRST(head)	((head)->slh_first)
@@ -167,11 +235,21 @@ struct {								\
 	    (var);							\
 	    (var) = SLIST_NEXT((var), field))
 
+#define	SLIST_FOREACH_FROM(var, head, field)				\
+	for ((var) = ((var) ? (var) : SLIST_FIRST((head)));		\
+	    (var);							\
+	    (var) = SLIST_NEXT((var), field))
+
 #define	SLIST_FOREACH_SAFE(var, head, field, tvar)			\
 	for ((var) = SLIST_FIRST((head));				\
 	    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
 	    (var) = (tvar))
 
+#define	SLIST_FOREACH_FROM_SAFE(var, head, field, tvar)			\
+	for ((var) = ((var) ? (var) : SLIST_FIRST((head)));		\
+	    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
+	    (var) = (tvar))
+
 #define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
 	for ((varp) = &SLIST_FIRST((head));				\
 	    ((var) = *(varp)) != NULL;					\
@@ -199,7 +277,7 @@ struct {								\
 		SLIST_REMOVE_HEAD((head), field);			\
 	}								\
 	else {								\
-		struct type *curelm = SLIST_FIRST((head));		\
+		QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head);		\
 		while (SLIST_NEXT(curelm, field) != (elm))		\
 			curelm = SLIST_NEXT(curelm, field);		\
 		SLIST_REMOVE_AFTER(curelm, field);			\
@@ -216,8 +294,14 @@ struct {								\
 	SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);	\
 } while (0)
 
+#define	SLIST_REMOVE_PREVPTR(prevp, elm, field) do {			\
+	QMD_SLIST_CHECK_PREVPTR(prevp, elm);				\
+	*(prevp) = SLIST_NEXT(elm, field);				\
+	TRASHIT((elm)->field.sle_next);					\
+} while (0)
+
 #define SLIST_SWAP(head1, head2, type) do {				\
-	struct type *swap_first = SLIST_FIRST(head1);			\
+	QUEUE_TYPEOF(type) *swap_first = SLIST_FIRST(head1);		\
 	SLIST_FIRST(head1) = SLIST_FIRST(head2);			\
 	SLIST_FIRST(head2) = swap_first;				\
 } while (0)
@@ -231,6 +315,12 @@ struct name {								\
 	struct type **stqh_last;/* addr of last next element */		\
 }
 
+#define	STAILQ_CLASS_HEAD(name, type)					\
+struct name {								\
+	class type *stqh_first;	/* first element */			\
+	class type **stqh_last;	/* addr of last next element */		\
+}
+
 #define	STAILQ_HEAD_INITIALIZER(head)					\
 	{ NULL, &(head).stqh_first }
 
@@ -239,6 +329,11 @@ struct {								\
 	struct type *stqe_next;	/* next element */			\
 }
 
+#define	STAILQ_CLASS_ENTRY(type)					\
+struct {								\
+	class type *stqe_next;	/* next element */			\
+}
+
 /*
  * Singly-linked Tail queue functions.
  */
@@ -259,12 +354,21 @@ struct {								\
 	   (var);							\
 	   (var) = STAILQ_NEXT((var), field))
 
+#define	STAILQ_FOREACH_FROM(var, head, field)				\
+	for ((var) = ((var) ? (var) : STAILQ_FIRST((head)));		\
+	   (var);							\
+	   (var) = STAILQ_NEXT((var), field))
 
 #define	STAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 	for ((var) = STAILQ_FIRST((head));				\
 	    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);		\
 	    (var) = (tvar))
 
+#define	STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar)		\
+	for ((var) = ((var) ? (var) : STAILQ_FIRST((head)));		\
+	    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);		\
+	    (var) = (tvar))
+
 #define	STAILQ_INIT(head) do {						\
 	STAILQ_FIRST((head)) = NULL;					\
 	(head)->stqh_last = &STAILQ_FIRST((head));			\
@@ -288,9 +392,10 @@ struct {								\
 	(head)->stqh_last = &STAILQ_NEXT((elm), field);			\
 } while (0)
 
-#define	STAILQ_LAST(head, type, field)					\
-	(STAILQ_EMPTY((head)) ? NULL :					\
-	    __containerof((head)->stqh_last, struct type, field.stqe_next))
+#define	STAILQ_LAST(head, type, field)				\
+	(STAILQ_EMPTY((head)) ? NULL :				\
+	    __containerof((head)->stqh_last,			\
+	    QUEUE_TYPEOF(type), field.stqe_next))
 
 #define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
 
@@ -300,7 +405,7 @@ struct {								\
 		STAILQ_REMOVE_HEAD((head), field);			\
 	}								\
 	else {								\
-		struct type *curelm = STAILQ_FIRST((head));		\
+		QUEUE_TYPEOF(type) *curelm = STAILQ_FIRST(head);	\
 		while (STAILQ_NEXT(curelm, field) != (elm))		\
 			curelm = STAILQ_NEXT(curelm, field);		\
 		STAILQ_REMOVE_AFTER(head, curelm, field);		\
@@ -326,8 +431,8 @@ struct {								\
 } while (0)
 
 #define STAILQ_SWAP(head1, head2, type) do {				\
-	struct type *swap_first = STAILQ_FIRST(head1);			\
-	struct type **swap_last = (head1)->stqh_last;			\
+	QUEUE_TYPEOF(type) *swap_first = STAILQ_FIRST(head1);		\
+	QUEUE_TYPEOF(type) **swap_last = (head1)->stqh_last;		\
 	STAILQ_FIRST(head1) = STAILQ_FIRST(head2);			\
 	(head1)->stqh_last = (head2)->stqh_last;			\
 	STAILQ_FIRST(head2) = swap_first;				\
@@ -347,6 +452,11 @@ struct name {								\
 	struct type *lh_first;	/* first element */			\
 }
 
+#define	LIST_CLASS_HEAD(name, type)					\
+struct name {								\
+	class type *lh_first;	/* first element */			\
+}
+
 #define	LIST_HEAD_INITIALIZER(head)					\
 	{ NULL }
 
@@ -356,11 +466,23 @@ struct {								\
 	struct type **le_prev;	/* address of previous next element */	\
 }
 
+#define	LIST_CLASS_ENTRY(type)						\
+struct {								\
+	class type *le_next;	/* next element */			\
+	class type **le_prev;	/* address of previous next element */	\
+}
+
 /*
  * List functions.
  */
 
 #if (defined(_KERNEL) && defined(INVARIANTS))
+/*
+ * QMD_LIST_CHECK_HEAD(LIST_HEAD *head, LIST_ENTRY NAME)
+ *
+ * If the list is non-empty, validates that the first element of the list
+ * points back at 'head.'
+ */
 #define	QMD_LIST_CHECK_HEAD(head, field) do {				\
 	if (LIST_FIRST((head)) != NULL &&				\
 	    LIST_FIRST((head))->field.le_prev !=			\
@@ -368,6 +490,12 @@ struct {								\
 		panic("Bad list head %p first->prev != head", (head));	\
 } while (0)
 
+/*
+ * QMD_LIST_CHECK_NEXT(TYPE *elm, LIST_ENTRY NAME)
+ *
+ * If an element follows 'elm' in the list, validates that the next element
+ * points back at 'elm.'
+ */
 #define	QMD_LIST_CHECK_NEXT(elm, field) do {				\
 	if (LIST_NEXT((elm), field) != NULL &&				\
 	    LIST_NEXT((elm), field)->field.le_prev !=			\
@@ -375,6 +503,11 @@ struct {								\
 	     	panic("Bad link elm %p next->prev != elm", (elm));	\
 } while (0)
 
+/*
+ * QMD_LIST_CHECK_PREV(TYPE *elm, LIST_ENTRY NAME)
+ *
+ * Validates that the previous element (or head of the list) points to 'elm.'
+ */
 #define	QMD_LIST_CHECK_PREV(elm, field) do {				\
 	if (*(elm)->field.le_prev != (elm))				\
 		panic("Bad link elm %p prev->next != elm", (elm));	\
@@ -385,6 +518,23 @@ struct {								\
 #define	QMD_LIST_CHECK_PREV(elm, field)
 #endif /* (_KERNEL && INVARIANTS) */
 
+#define LIST_CONCAT(head1, head2, type, field) do {			      \
+	QUEUE_TYPEOF(type) *curelm = LIST_FIRST(head1);			      \
+	if (curelm == NULL) {						      \
+		if ((LIST_FIRST(head1) = LIST_FIRST(head2)) != NULL) {	      \
+			LIST_FIRST(head2)->field.le_prev =		      \
+			    &LIST_FIRST((head1));			      \
+			LIST_INIT(head2);				      \
+		}							      \
+	} else if (LIST_FIRST(head2) != NULL) {				      \
+		while (LIST_NEXT(curelm, field) != NULL)		      \
+			curelm = LIST_NEXT(curelm, field);		      \
+		LIST_NEXT(curelm, field) = LIST_FIRST(head2);		      \
+		LIST_FIRST(head2)->field.le_prev = &LIST_NEXT(curelm, field); \
+		LIST_INIT(head2);					      \
+	}								      \
+} while (0)
+
 #define	LIST_EMPTY(head)	((head)->lh_first == NULL)
 
 #define	LIST_FIRST(head)	((head)->lh_first)
@@ -394,11 +544,21 @@ struct {								\
 	    (var);							\
 	    (var) = LIST_NEXT((var), field))
 
+#define	LIST_FOREACH_FROM(var, head, field)				\
+	for ((var) = ((var) ? (var) : LIST_FIRST((head)));		\
+	    (var);							\
+	    (var) = LIST_NEXT((var), field))
+
 #define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
 	for ((var) = LIST_FIRST((head));				\
 	    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
 	    (var) = (tvar))
 
+#define	LIST_FOREACH_FROM_SAFE(var, head, field, tvar)			\
+	for ((var) = ((var) ? (var) : LIST_FIRST((head)));		\
+	    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
+	    (var) = (tvar))
+
 #define	LIST_INIT(head) do {						\
 	LIST_FIRST((head)) = NULL;					\
 } while (0)
@@ -430,9 +590,10 @@ struct {								\
 
 #define	LIST_NEXT(elm, field)	((elm)->field.le_next)
 
-#define	LIST_PREV(elm, head, type, field)				\
-	((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL :		\
-	    __containerof((elm)->field.le_prev, struct type, field.le_next))
+#define	LIST_PREV(elm, head, type, field)			\
+	((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL :	\
+	    __containerof((elm)->field.le_prev,			\
+	    QUEUE_TYPEOF(type), field.le_next))
 
 #define	LIST_REMOVE(elm, field) do {					\
 	QMD_SAVELINK(oldnext, (elm)->field.le_next);			\
@@ -448,7 +609,7 @@ struct {								\
 } while (0)
 
 #define LIST_SWAP(head1, head2, type, field) do {			\
-	struct type *swap_tmp = LIST_FIRST((head1));			\
+	QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1);		\
 	LIST_FIRST((head1)) = LIST_FIRST((head2));			\
 	LIST_FIRST((head2)) = swap_tmp;					\
 	if ((swap_tmp = LIST_FIRST((head1))) != NULL)			\
@@ -467,6 +628,13 @@ struct name {								\
 	TRACEBUF							\
 }
 
+#define	TAILQ_CLASS_HEAD(name, type)					\
+struct name {								\
+	class type *tqh_first;	/* first element */			\
+	class type **tqh_last;	/* addr of last next element */		\
+	TRACEBUF							\
+}
+
 #define	TAILQ_HEAD_INITIALIZER(head)					\
 	{ NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
 
@@ -477,10 +645,23 @@ struct {								\
 	TRACEBUF							\
 }
 
+#define	TAILQ_CLASS_ENTRY(type)						\
+struct {								\
+	class type *tqe_next;	/* next element */			\
+	class type **tqe_prev;	/* address of previous next element */	\
+	TRACEBUF							\
+}
+
 /*
  * Tail queue functions.
  */
 #if (defined(_KERNEL) && defined(INVARIANTS))
+/*
+ * QMD_TAILQ_CHECK_HEAD(TAILQ_HEAD *head, TAILQ_ENTRY NAME)
+ *
+ * If the tailq is non-empty, validates that the first element of the tailq
+ * points back at 'head.'
+ */
 #define	QMD_TAILQ_CHECK_HEAD(head, field) do {				\
 	if (!TAILQ_EMPTY(head) &&					\
 	    TAILQ_FIRST((head))->field.tqe_prev !=			\
@@ -488,11 +669,22 @@ struct {								\
 		panic("Bad tailq head %p first->prev != head", (head));	\
 } while (0)
 
+/*
+ * QMD_TAILQ_CHECK_TAIL(TAILQ_HEAD *head, TAILQ_ENTRY NAME)
+ *
+ * Validates that the tail of the tailq is a pointer to pointer to NULL.
+ */
 #define	QMD_TAILQ_CHECK_TAIL(head, field) do {				\
 	if (*(head)->tqh_last != NULL)					\
 	    	panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); 	\
 } while (0)
 
+/*
+ * QMD_TAILQ_CHECK_NEXT(TYPE *elm, TAILQ_ENTRY NAME)
+ *
+ * If an element follows 'elm' in the tailq, validates that the next element
+ * points back at 'elm.'
+ */
 #define	QMD_TAILQ_CHECK_NEXT(elm, field) do {				\
 	if (TAILQ_NEXT((elm), field) != NULL &&				\
 	    TAILQ_NEXT((elm), field)->field.tqe_prev !=			\
@@ -500,6 +692,11 @@ struct {								\
 		panic("Bad link elm %p next->prev != elm", (elm));	\
 } while (0)
 
+/*
+ * QMD_TAILQ_CHECK_PREV(TYPE *elm, TAILQ_ENTRY NAME)
+ *
+ * Validates that the previous element (or head of the tailq) points to 'elm.'
+ */
 #define	QMD_TAILQ_CHECK_PREV(elm, field) do {				\
 	if (*(elm)->field.tqe_prev != (elm))				\
 		panic("Bad link elm %p prev->next != elm", (elm));	\
@@ -531,21 +728,41 @@ struct {								\
 	    (var);							\
 	    (var) = TAILQ_NEXT((var), field))
 
+#define	TAILQ_FOREACH_FROM(var, head, field)				\
+	for ((var) = ((var) ? (var) : TAILQ_FIRST((head)));		\
+	    (var);							\
+	    (var) = TAILQ_NEXT((var), field))
+
 #define	TAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 	for ((var) = TAILQ_FIRST((head));				\
 	    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);		\
 	    (var) = (tvar))
 
+#define	TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar)			\
+	for ((var) = ((var) ? (var) : TAILQ_FIRST((head)));		\
+	    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);		\
+	    (var) = (tvar))
+
 #define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
 	for ((var) = TAILQ_LAST((head), headname);			\
 	    (var);							\
 	    (var) = TAILQ_PREV((var), headname, field))
 
+#define	TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field)		\
+	for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname));	\
+	    (var);							\
+	    (var) = TAILQ_PREV((var), headname, field))
+
 #define	TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)	\
 	for ((var) = TAILQ_LAST((head), headname);			\
 	    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
 	    (var) = (tvar))
 
+#define	TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar) \
+	for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname));	\
+	    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
+	    (var) = (tvar))
+
 #define	TAILQ_INIT(head) do {						\
 	TAILQ_FIRST((head)) = NULL;					\
 	(head)->tqh_last = &TAILQ_FIRST((head));			\
@@ -564,7 +781,7 @@ struct {								\
 	TAILQ_NEXT((listelm), field) = (elm);				\
 	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\
 	QMD_TRACE_ELEM(&(elm)->field);					\
-	QMD_TRACE_ELEM(&listelm->field);				\
+	QMD_TRACE_ELEM(&(listelm)->field);				\
 } while (0)
 
 #define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
@@ -574,7 +791,7 @@ struct {								\
 	*(listelm)->field.tqe_prev = (elm);				\
 	(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);		\
 	QMD_TRACE_ELEM(&(elm)->field);					\
-	QMD_TRACE_ELEM(&listelm->field);				\
+	QMD_TRACE_ELEM(&(listelm)->field);				\
 } while (0)
 
 #define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
@@ -627,8 +844,8 @@ struct {								\
 } while (0)
 
 #define TAILQ_SWAP(head1, head2, type, field) do {			\
-	struct type *swap_first = (head1)->tqh_first;			\
-	struct type **swap_last = (head1)->tqh_last;			\
+	QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first;		\
+	QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last;		\
 	(head1)->tqh_first = (head2)->tqh_first;			\
 	(head1)->tqh_last = (head2)->tqh_last;				\
 	(head2)->tqh_first = swap_first;				\
diff --git a/libc/xtensa-lx106-elf/include/sys/reent.h b/libc/xtensa-lx106-elf/include/sys/reent.h
index ce5b3ed..c045ca5 100644
--- a/libc/xtensa-lx106-elf/include/sys/reent.h
+++ b/libc/xtensa-lx106-elf/include/sys/reent.h
@@ -37,6 +37,8 @@ typedef __uint32_t __ULong;
 
 struct _reent;
 
+struct __locale_t;
+
 /*
  * If _REENT_SMALL is defined, we make struct _reent as small as possible,
  * by having nearly everything possible allocated at first use.
@@ -384,8 +386,8 @@ struct _reent
 
   int __sdidinit;		/* 1 means stdio has been init'd */
 
-  int _current_category;	/* unused */
-  _CONST char *_current_locale;	/* unused */
+  int _unspecified_locale_info;	/* unused, reserved for locale stuff */
+  struct __locale_t *_locale;/* per-thread locale */
 
   struct _mprec *_mp;
 
@@ -429,7 +431,7 @@ extern const struct __sFILE_fake __sf_fake_stderr;
     _NULL, \
     0, \
     0, \
-    "C", \
+    _NULL, \
     _NULL, \
     _NULL, \
     0, \
@@ -446,16 +448,14 @@ extern const struct __sFILE_fake __sf_fake_stderr;
     _NULL \
   }
 
-#define _REENT_INIT_PTR(var) \
-  { memset((var), 0, sizeof(*(var))); \
-    (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
+#define _REENT_INIT_PTR_ZEROED(var) \
+  { (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
     (var)->_stdout = (__FILE *)&__sf_fake_stdout; \
     (var)->_stderr = (__FILE *)&__sf_fake_stderr; \
-    (var)->_current_locale = "C"; \
   }
 
-/* Only built the assert() calls if we are built with debugging.  */
-#if DEBUG
+/* Only add assert() calls if we are specified to debug.  */
+#ifdef _REENT_CHECK_DEBUG
 #include 
 #define __reent_assert(x) assert(x)
 #else
@@ -578,8 +578,9 @@ struct _reent
   int  _inc;			/* used by tmpnam */
   char _emergency[_REENT_EMERGENCY_SIZE];
 
-  int _current_category;	/* used by setlocale */
-  _CONST char *_current_locale;
+  /* TODO */
+  int _unspecified_locale_info;	/* unused, reserved for locale stuff */
+  struct __locale_t *_locale;/* per-thread locale */
 
   int __sdidinit;		/* 1 means stdio has been init'd */
 
@@ -643,18 +644,27 @@ struct _reent
      of the above members (on the off chance that future binary compatibility
      would be broken otherwise).  */
   struct _glue __sglue;		/* root of glue chain */
+# ifndef _REENT_GLOBAL_STDIO_STREAMS
   __FILE __sf[3];  		/* first three file descriptors */
+# endif
 };
 
+#ifdef _REENT_GLOBAL_STDIO_STREAMS
+extern __FILE __sf[3];
+#define _REENT_STDIO_STREAM(var, index) &__sf[index]
+#else
+#define _REENT_STDIO_STREAM(var, index) &(var)->__sf[index]
+#endif
+
 #define _REENT_INIT(var) \
   { 0, \
-    &(var).__sf[0], \
-    &(var).__sf[1], \
-    &(var).__sf[2], \
+    _REENT_STDIO_STREAM(&(var), 0), \
+    _REENT_STDIO_STREAM(&(var), 1), \
+    _REENT_STDIO_STREAM(&(var), 2), \
     0, \
     "", \
     0, \
-    "C", \
+    _NULL, \
     0, \
     _NULL, \
     _NULL, \
@@ -694,12 +704,10 @@ struct _reent
     {_NULL, 0, _NULL} \
   }
 
-#define _REENT_INIT_PTR(var) \
-  { memset((var), 0, sizeof(*(var))); \
-    (var)->_stdin = &(var)->__sf[0]; \
-    (var)->_stdout = &(var)->__sf[1]; \
-    (var)->_stderr = &(var)->__sf[2]; \
-    (var)->_current_locale = "C"; \
+#define _REENT_INIT_PTR_ZEROED(var) \
+  { (var)->_stdin = _REENT_STDIO_STREAM(var, 0); \
+    (var)->_stdout = _REENT_STDIO_STREAM(var, 1); \
+    (var)->_stderr = _REENT_STDIO_STREAM(var, 2); \
     (var)->_new._reent._rand_next = 1; \
     (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \
     (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \
@@ -745,6 +753,11 @@ struct _reent
 
 #endif /* !_REENT_SMALL */
 
+#define _REENT_INIT_PTR(var) \
+  { memset((var), 0, sizeof(*(var))); \
+    _REENT_INIT_PTR_ZEROED(var); \
+  }
+
 /* This value is used in stdlib/misc.c.  reent/reent.c has to know it
    as well to make sure the freelist is correctly free'd.  Therefore
    we define it here, rather than in stdlib/misc.c, as before. */
diff --git a/libc/xtensa-lx106-elf/include/sys/sched.h b/libc/xtensa-lx106-elf/include/sys/sched.h
index 58f99d6..4adb6e2 100644
--- a/libc/xtensa-lx106-elf/include/sys/sched.h
+++ b/libc/xtensa-lx106-elf/include/sys/sched.h
@@ -21,6 +21,8 @@
 #ifndef _SYS_SCHED_H_
 #define _SYS_SCHED_H_
 
+#include 
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/libc/xtensa-lx106-elf/include/sys/select.h b/libc/xtensa-lx106-elf/include/sys/select.h
new file mode 100644
index 0000000..f5dc586
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/select.h
@@ -0,0 +1,87 @@
+/* select.h
+   Copyright 1998, 1999, 2000, 2001, 2005, 2009 Red Hat, Inc.
+
+   Written by Geoffrey Noer 
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#ifndef _SYS_SELECT_H
+#define _SYS_SELECT_H
+
+/* We don't define fd_set and friends if we are compiling POSIX
+   source, or if we have included (or may include as indicated
+   by __USE_W32_SOCKETS) the W32api winsock[2].h header which
+   defines Windows versions of them.   Note that a program which
+   includes the W32api winsock[2].h header must know what it is doing;
+   it must not call the Cygwin select function.
+*/
+# if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
+
+#include 
+#include 
+#include 
+#include 
+
+#if !defined(_SIGSET_T_DECLARED)
+#define	_SIGSET_T_DECLARED
+typedef	__sigset_t	sigset_t;
+#endif
+
+#  define _SYS_TYPES_FD_SET
+/*
+ * Select uses bit masks of file descriptors in longs.
+ * These macros manipulate such bit fields (the filesystem macros use chars).
+ * FD_SETSIZE may be defined by the user, but the default here
+ * should be >= NOFILE (param.h).
+ */
+#  ifndef	FD_SETSIZE
+#	define	FD_SETSIZE	64
+#  endif
+
+typedef	unsigned long	fd_mask;
+#  define	NFDBITS	(sizeof (fd_mask) * 8)	/* bits per mask */
+#  ifndef	_howmany
+#	define	_howmany(x,y)	(((x)+((y)-1))/(y))
+#  endif
+
+/* We use a macro for fd_set so that including Sockets.h afterwards
+   can work.  */
+typedef	struct _types_fd_set {
+	fd_mask	fds_bits[_howmany(FD_SETSIZE, NFDBITS)];
+} _types_fd_set;
+
+#define fd_set _types_fd_set
+
+#  define	FD_SET(n, p)	((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
+#  define	FD_CLR(n, p)	((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
+#  define	FD_ISSET(n, p)	((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
+#  define	FD_ZERO(p)	(__extension__ (void)({ \
+     size_t __i; \
+     char *__tmp = (char *)p; \
+     for (__i = 0; __i < sizeof (*(p)); ++__i) \
+       *__tmp++ = 0; \
+}))
+
+#if !defined (__INSIDE_CYGWIN_NET__)
+
+__BEGIN_DECLS
+
+int select __P ((int __n, fd_set *__readfds, fd_set *__writefds,
+		 fd_set *__exceptfds, struct timeval *__timeout));
+#if __POSIX_VISIBLE >= 200112
+int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds,
+		  fd_set *__exceptfds, const struct timespec *__timeout,
+		  const sigset_t *__set));
+#endif
+
+__END_DECLS
+
+#endif /* !__INSIDE_CYGWIN_NET__ */
+
+#endif /* !(_WINSOCK_H || _WINSOCKAPI_ || __USE_W32_SOCKETS) */
+
+#endif /* sys/select.h */
diff --git a/libc/xtensa-lx106-elf/include/sys/signal.h b/libc/xtensa-lx106-elf/include/sys/signal.h
index a29f525..ab35718 100644
--- a/libc/xtensa-lx106-elf/include/sys/signal.h
+++ b/libc/xtensa-lx106-elf/include/sys/signal.h
@@ -7,19 +7,22 @@ extern "C" {
 #endif
 
 #include "_ansi.h"
+#include 
 #include 
 #include 
+#include 
+#include 
 
-/* #ifndef __STRICT_ANSI__*/
-
-/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */
-#ifndef __CYGWIN__
-typedef unsigned long sigset_t;
+#if !defined(_SIGSET_T_DECLARED)
+#define	_SIGSET_T_DECLARED
+typedef	__sigset_t	sigset_t;
 #endif
 
-#if defined(__rtems__)
+#if defined(__CYGWIN__)
+#include 
+#else
 
-#if defined(_POSIX_REALTIME_SIGNALS)
+#if defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309
 
 /* sigev_notify values
    NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD.  */
@@ -67,14 +70,16 @@ typedef struct {
   int          si_code;     /* Cause of the signal */
   union sigval si_value;    /* Signal value */
 } siginfo_t;
-#endif
+#endif /* defined(_POSIX_REALTIME_SIGNALS) || __POSIX_VISIBLE >= 199309 */
+
+#if defined(__rtems__)
 
 /*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */
 
 #define SA_NOCLDSTOP 0x1   /* Do not generate SIGCHLD when children stop */
 #define SA_SIGINFO   0x2   /* Invoke the signal catching function with */
                            /*   three arguments instead of one. */
-#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
 #define SA_ONSTACK   0x4   /* Signal delivery will be on a separate stack. */
 #endif
 
@@ -107,7 +112,22 @@ struct sigaction {
 #define sa_sigaction  _signal_handlers._sigaction
 #endif
 
-#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
+#else /* defined(__rtems__) */
+
+#define SA_NOCLDSTOP 1  /* only value supported now for sa_flags */
+
+typedef void (*_sig_func_ptr)(int);
+
+struct sigaction 
+{
+	_sig_func_ptr sa_handler;
+	sigset_t sa_mask;
+	int sa_flags;
+};
+#endif /* defined(__rtems__) */
+#endif /* defined(__CYGWIN__) */
+
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
 /*
  * Minimum and default signal stack constants. Allow for target overrides
  * from .
@@ -125,6 +145,8 @@ struct sigaction {
 #define	SS_ONSTACK	0x1
 #define	SS_DISABLE	0x2
 
+#endif
+
 /*
  * Structure used in sigaltstack call.
  */
@@ -133,58 +155,33 @@ typedef struct sigaltstack {
   int       ss_flags; /* Flags.  */
   size_t    ss_size;  /* Stack size.  */
 } stack_t;
-#endif
-
-#elif defined(__CYGWIN__)
-#include 
-#else
-#define SA_NOCLDSTOP 1  /* only value supported now for sa_flags */
-
-typedef void (*_sig_func_ptr)(int);
-
-struct sigaction 
-{
-	_sig_func_ptr sa_handler;
-	sigset_t sa_mask;
-	int sa_flags;
-};
-#endif /* defined(__rtems__) */
 
+#if __POSIX_VISIBLE
 #define SIG_SETMASK 0	/* set mask with sigprocmask() */
 #define SIG_BLOCK 1	/* set of signals to block */
 #define SIG_UNBLOCK 2	/* set of signals to, well, unblock */
 
-/* These depend upon the type of sigset_t, which right now 
-   is always a long.. They're in the POSIX namespace, but
-   are not ANSI. */
-#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0)
-#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0)
-#define sigemptyset(what)   (*(what) = 0, 0)
-#define sigfillset(what)    (*(what) = ~(0), 0)
-#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0)
-
 int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset));
+#endif
 
-#if defined(_POSIX_THREADS)
+#if __POSIX_VISIBLE >= 199506
 int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset));
 #endif
 
 #if defined(__CYGWIN__) || defined(__rtems__)
-#undef sigaddset
-#undef sigdelset
-#undef sigemptyset
-#undef sigfillset
-#undef sigismember
-
 #ifdef _COMPILING_NEWLIB
 int _EXFUN(_kill, (pid_t, int));
 #endif /* _COMPILING_NEWLIB */
 #endif /* __CYGWIN__ || __rtems__ */
-#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
+
+#if __POSIX_VISIBLE
 int _EXFUN(kill, (pid_t, int));
-#endif /* __CYGWIN__ || __rtems__ || __SPU__ */
-#if defined(__CYGWIN__) || defined(__rtems__)
+#endif
+
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4
 int _EXFUN(killpg, (pid_t, int));
+#endif
+#if __POSIX_VISIBLE
 int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *));
 int _EXFUN(sigaddset, (sigset_t *, const int));
 int _EXFUN(sigdelset, (sigset_t *, const int));
@@ -193,24 +190,45 @@ int _EXFUN(sigfillset, (sigset_t *));
 int _EXFUN(sigemptyset, (sigset_t *));
 int _EXFUN(sigpending, (sigset_t *));
 int _EXFUN(sigsuspend, (const sigset_t *));
-int _EXFUN(sigpause, (int));
+int _EXFUN(sigwait, (const sigset_t *set, int *sig));
 
-#ifdef __rtems__
-#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
+#if !defined(__CYGWIN__) && !defined(__rtems__)
+/* These depend upon the type of sigset_t, which right now 
+   is always a long.. They're in the POSIX namespace, but
+   are not ANSI. */
+#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0)
+#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0)
+#define sigemptyset(what)   (*(what) = 0, 0)
+#define sigfillset(what)    (*(what) = ~(0), 0)
+#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0)
+#endif /* !__CYGWIN__ && !__rtems__ */
+#endif /* __POSIX_VISIBLE */
+
+/* There are two common sigpause variants, both of which take an int argument.
+   If you request _XOPEN_SOURCE or _GNU_SOURCE, you get the System V version,
+   which removes the given signal from the process's signal mask; otherwise
+   you get the BSD version, which sets the process's signal mask to the given
+   value. */
+#if __XSI_VISIBLE && !defined(__INSIDE_CYGWIN__)
+# ifdef __GNUC__
+int _EXFUN(sigpause, (int)) __asm__ (__ASMNAME ("__xpg_sigpause"));
+# else
+int _EXFUN(__xpg_sigpause, (int));
+#  define sigpause __xpg_sigpause
+# endif
+#elif __BSD_VISIBLE
+int _EXFUN(sigpause, (int));
+#endif
+
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
 int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict));
 #endif
-#endif
 
-#if defined(_POSIX_THREADS)
-#ifdef __CYGWIN__
-#  ifndef _CYGWIN_TYPES_H
-#    error You need the winsup sources or a cygwin installation to compile the cygwin version of newlib.
-#  endif
-#endif
+#if __POSIX_VISIBLE >= 199506
 int _EXFUN(pthread_kill, (pthread_t thread, int sig));
 #endif
 
-#if defined(_POSIX_REALTIME_SIGNALS)
+#if __POSIX_VISIBLE >= 199309
 
 /*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76
     NOTE: P1003.1c/D10, p. 39 adds sigwait().  */
@@ -219,16 +237,10 @@ int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info));
 int _EXFUN(sigtimedwait,
   (const sigset_t *set, siginfo_t *info, const struct timespec  *timeout)
 );
-int _EXFUN(sigwait, (const sigset_t *set, int *sig));
-
 /*  3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */
 int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value));
 
-#endif /* defined(_POSIX_REALTIME_SIGNALS) */
-
-#endif /* defined(__CYGWIN__) || defined(__rtems__) */
-
-/* #endif __STRICT_ANSI__ */
+#endif /* __POSIX_VISIBLE >= 199309 */
 
 #if defined(___AM29K__)
 /* These all need to be defined for ANSI C, but I don't think they are
@@ -349,6 +361,12 @@ int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value));
 }
 #endif
 
+#if defined(__CYGWIN__)
+#if __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
+#include 
+#endif
+#endif
+
 #ifndef _SIGNAL_H_
 /* Some applications take advantage of the fact that 
  * and  are equivalent in glibc.  Allow for that here.  */
diff --git a/libc/xtensa-lx106-elf/include/sys/stat.h b/libc/xtensa-lx106-elf/include/sys/stat.h
index 11b9d80..94a90c0 100644
--- a/libc/xtensa-lx106-elf/include/sys/stat.h
+++ b/libc/xtensa-lx106-elf/include/sys/stat.h
@@ -9,6 +9,7 @@ extern "C" {
 #include 
 #include 
 #include 
+#include 
 
 /* dj's stat defines _STAT_H_ */
 #ifndef _STAT_H_
@@ -52,8 +53,8 @@ struct	stat
   long		st_spare2;
   time_t	st_ctime;
   long		st_spare3;
-  long		st_blksize;
-  long		st_blocks;
+  blksize_t	st_blksize;
+  blkcnt_t	st_blocks;
   long	st_spare4[2];
 #endif
 #endif
@@ -81,12 +82,12 @@ struct	stat
 #define	S_ISUID		0004000	/* set user id on execution */
 #define	S_ISGID		0002000	/* set group id on execution */
 #define	S_ISVTX		0001000	/* save swapped text even after use */
-#ifndef	_POSIX_SOURCE
+#if __BSD_VISIBLE
 #define	S_IREAD		0000400	/* read permission, owner */
 #define	S_IWRITE 	0000200	/* write permission, owner */
 #define	S_IEXEC		0000100	/* execute/search permission, owner */
 #define	S_ENFMT 	0002000	/* enforcement-mode locking */
-#endif	/* !_POSIX_SOURCE */
+#endif	/* !_BSD_VISIBLE */
 
 #define	S_IFMT		_IFMT
 #define	S_IFDIR		_IFDIR
@@ -123,7 +124,7 @@ struct	stat
 #define		S_IWOTH	0000002	/* write permission, other */
 #define		S_IXOTH 0000001/* execute/search permission, other */
 
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
 #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */
 #define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */
 #define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */
@@ -156,19 +157,15 @@ int	_EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf
 int	_EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
 #endif
 
-#if (__POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
+#if __ATFILE_VISIBLE && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(fchmodat, (int, const char *, mode_t, int));
-#endif
-#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int));
 int	_EXFUN(mkdirat, (int, const char *, mode_t));
 int	_EXFUN(mkfifoat, (int, const char *, mode_t));
-#endif
-#if (__BSD_VISIBLE || __XSI_VISIBLE >= 700 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(mknodat, (int, const char *, mode_t, dev_t));
-#endif
-#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(utimensat, (int, const char *, const struct timespec *, int));
+#endif
+#if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(futimens, (int, const struct timespec *));
 #endif
 
diff --git a/libc/xtensa-lx106-elf/include/sys/time.h b/libc/xtensa-lx106-elf/include/sys/time.h
index be16497..5fdb667 100644
--- a/libc/xtensa-lx106-elf/include/sys/time.h
+++ b/libc/xtensa-lx106-elf/include/sys/time.h
@@ -2,90 +2,301 @@
    Written by Geoffrey Noer 
    Public domain; no rights reserved. */
 
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)time.h	8.5 (Berkeley) 5/4/95
+ * $FreeBSD$
+ */
+
 #ifndef _SYS_TIME_H_
-#define _SYS_TIME_H_
+#define	_SYS_TIME_H_
 
 #include <_ansi.h>
+#include 
+#include 
 #include 
+#include 
 
-#ifdef __cplusplus
-extern "C" {
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
+#include 
 #endif
 
-#ifndef _TIMEVAL_DEFINED
-#define _TIMEVAL_DEFINED
-struct timeval {
-  time_t      tv_sec;
-  suseconds_t tv_usec;
-};
-
-/* BSD time macros used by RTEMS code */
-#if defined (__rtems__) || defined (__CYGWIN__)
-
-/* Convenience macros for operations on timevals.
-   NOTE: `timercmp' does not work for >= or <=.  */
-#define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
-#define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
-#define	timercmp(a, b, CMP) 						      \
-  (((a)->tv_sec == (b)->tv_sec) ? 					      \
-   ((a)->tv_usec CMP (b)->tv_usec) : 					      \
-   ((a)->tv_sec CMP (b)->tv_sec))
-#define	timeradd(a, b, result)						      \
-  do {									      \
-    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;			      \
-    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;			      \
-    if ((result)->tv_usec >= 1000000)					      \
-      {									      \
-	++(result)->tv_sec;						      \
-	(result)->tv_usec -= 1000000;					      \
-      }									      \
-  } while (0)
-#define	timersub(a, b, result)						      \
-  do {									      \
-    (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;			      \
-    (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;			      \
-    if ((result)->tv_usec < 0) {					      \
-      --(result)->tv_sec;						      \
-      (result)->tv_usec += 1000000;					      \
-    }									      \
-  } while (0)
-#endif /* defined (__rtems__) || defined (__CYGWIN__) */
-#endif /* !_TIMEVAL_DEFINED */
-
 struct timezone {
-  int tz_minuteswest;
-  int tz_dsttime;
+	int	tz_minuteswest;	/* minutes west of Greenwich */
+	int	tz_dsttime;	/* type of dst correction */
+};
+#define	DST_NONE	0	/* not on dst */
+#define	DST_USA		1	/* USA style dst */
+#define	DST_AUST	2	/* Australian style dst */
+#define	DST_WET		3	/* Western European dst */
+#define	DST_MET		4	/* Middle European dst */
+#define	DST_EET		5	/* Eastern European dst */
+#define	DST_CAN		6	/* Canada */
+
+#if __BSD_VISIBLE
+struct bintime {
+	time_t	sec;
+	uint64_t frac;
 };
 
-#ifdef __CYGWIN__
-#include 
-#endif /* __CYGWIN__ */
+static __inline void
+bintime_addx(struct bintime *_bt, uint64_t _x)
+{
+	uint64_t _u;
 
-#define ITIMER_REAL     0
-#define ITIMER_VIRTUAL  1
-#define ITIMER_PROF     2
+	_u = _bt->frac;
+	_bt->frac += _x;
+	if (_u > _bt->frac)
+		_bt->sec++;
+}
 
-struct  itimerval {
-  struct  timeval it_interval;
-  struct  timeval it_value;
+static __inline void
+bintime_add(struct bintime *_bt, const struct bintime *_bt2)
+{
+	uint64_t _u;
+
+	_u = _bt->frac;
+	_bt->frac += _bt2->frac;
+	if (_u > _bt->frac)
+		_bt->sec++;
+	_bt->sec += _bt2->sec;
+}
+
+static __inline void
+bintime_sub(struct bintime *_bt, const struct bintime *_bt2)
+{
+	uint64_t _u;
+
+	_u = _bt->frac;
+	_bt->frac -= _bt2->frac;
+	if (_u < _bt->frac)
+		_bt->sec--;
+	_bt->sec -= _bt2->sec;
+}
+
+static __inline void
+bintime_mul(struct bintime *_bt, u_int _x)
+{
+	uint64_t _p1, _p2;
+
+	_p1 = (_bt->frac & 0xffffffffull) * _x;
+	_p2 = (_bt->frac >> 32) * _x + (_p1 >> 32);
+	_bt->sec *= _x;
+	_bt->sec += (_p2 >> 32);
+	_bt->frac = (_p2 << 32) | (_p1 & 0xffffffffull);
+}
+
+static __inline void
+bintime_shift(struct bintime *_bt, int _exp)
+{
+
+	if (_exp > 0) {
+		_bt->sec <<= _exp;
+		_bt->sec |= _bt->frac >> (64 - _exp);
+		_bt->frac <<= _exp;
+	} else if (_exp < 0) {
+		_bt->frac >>= -_exp;
+		_bt->frac |= (uint64_t)_bt->sec << (64 + _exp);
+		_bt->sec >>= -_exp;
+	}
+}
+
+#define	bintime_clear(a)	((a)->sec = (a)->frac = 0)
+#define	bintime_isset(a)	((a)->sec || (a)->frac)
+#define	bintime_cmp(a, b, cmp)						\
+	(((a)->sec == (b)->sec) ?					\
+	    ((a)->frac cmp (b)->frac) :					\
+	    ((a)->sec cmp (b)->sec))
+
+#define	SBT_1S	((sbintime_t)1 << 32)
+#define	SBT_1M	(SBT_1S * 60)
+#define	SBT_1MS	(SBT_1S / 1000)
+#define	SBT_1US	(SBT_1S / 1000000)
+#define	SBT_1NS	(SBT_1S / 1000000000)
+#define	SBT_MAX	0x7fffffffffffffffLL
+
+static __inline int
+sbintime_getsec(sbintime_t _sbt)
+{
+
+	return (_sbt >> 32);
+}
+
+static __inline sbintime_t
+bttosbt(const struct bintime _bt)
+{
+
+	return (((sbintime_t)_bt.sec << 32) + (_bt.frac >> 32));
+}
+
+static __inline struct bintime
+sbttobt(sbintime_t _sbt)
+{
+	struct bintime _bt;
+
+	_bt.sec = _sbt >> 32;
+	_bt.frac = _sbt << 32;
+	return (_bt);
+}
+
+/*-
+ * Background information:
+ *
+ * When converting between timestamps on parallel timescales of differing
+ * resolutions it is historical and scientific practice to round down rather
+ * than doing 4/5 rounding.
+ *
+ *   The date changes at midnight, not at noon.
+ *
+ *   Even at 15:59:59.999999999 it's not four'o'clock.
+ *
+ *   time_second ticks after N.999999999 not after N.4999999999
+ */
+
+static __inline void
+bintime2timespec(const struct bintime *_bt, struct timespec *_ts)
+{
+
+	_ts->tv_sec = _bt->sec;
+	_ts->tv_nsec = ((uint64_t)1000000000 *
+	    (uint32_t)(_bt->frac >> 32)) >> 32;
+}
+
+static __inline void
+timespec2bintime(const struct timespec *_ts, struct bintime *_bt)
+{
+
+	_bt->sec = _ts->tv_sec;
+	/* 18446744073 = int(2^64 / 1000000000) */
+	_bt->frac = _ts->tv_nsec * (uint64_t)18446744073LL;
+}
+
+static __inline void
+bintime2timeval(const struct bintime *_bt, struct timeval *_tv)
+{
+
+	_tv->tv_sec = _bt->sec;
+	_tv->tv_usec = ((uint64_t)1000000 * (uint32_t)(_bt->frac >> 32)) >> 32;
+}
+
+static __inline void
+timeval2bintime(const struct timeval *_tv, struct bintime *_bt)
+{
+
+	_bt->sec = _tv->tv_sec;
+	/* 18446744073709 = int(2^64 / 1000000) */
+	_bt->frac = _tv->tv_usec * (uint64_t)18446744073709LL;
+}
+
+static __inline struct timespec
+sbttots(sbintime_t _sbt)
+{
+	struct timespec _ts;
+
+	_ts.tv_sec = _sbt >> 32;
+	_ts.tv_nsec = ((uint64_t)1000000000 * (uint32_t)_sbt) >> 32;
+	return (_ts);
+}
+
+static __inline sbintime_t
+tstosbt(struct timespec _ts)
+{
+
+	return (((sbintime_t)_ts.tv_sec << 32) +
+	    (_ts.tv_nsec * (((uint64_t)1 << 63) / 500000000) >> 32));
+}
+
+static __inline struct timeval
+sbttotv(sbintime_t _sbt)
+{
+	struct timeval _tv;
+
+	_tv.tv_sec = _sbt >> 32;
+	_tv.tv_usec = ((uint64_t)1000000 * (uint32_t)_sbt) >> 32;
+	return (_tv);
+}
+
+static __inline sbintime_t
+tvtosbt(struct timeval _tv)
+{
+
+	return (((sbintime_t)_tv.tv_sec << 32) +
+	    (_tv.tv_usec * (((uint64_t)1 << 63) / 500000) >> 32));
+}
+#endif /* __BSD_VISIBLE */
+
+/*
+ * Names of the interval timers, and structure
+ * defining a timer setting.
+ */
+#define	ITIMER_REAL	0
+#define	ITIMER_VIRTUAL	1
+#define	ITIMER_PROF	2
+
+struct itimerval {
+	struct	timeval it_interval;	/* timer interval */
+	struct	timeval it_value;	/* current value */
 };
 
+#ifndef _KERNEL
+#include 
+
+__BEGIN_DECLS
+int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
+
+#if __BSD_VISIBLE
+int _EXFUN(adjtime, (const struct timeval *, struct timeval *));
+int _EXFUN(futimes, (int, const struct timeval *));
+int _EXFUN(lutimes, (const char *, const struct timeval *));
+int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
+#endif
+
+#if __MISC_VISIBLE || __XSI_VISIBLE
+int _EXFUN(getitimer, (int __which, struct itimerval *__value));
+int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value,
+					struct itimerval *__restrict __ovalue));
+#endif
+
+int _EXFUN(gettimeofday, (struct timeval *__restrict __p,
+			  void *__restrict __tz));
+
+#if __GNU_VISIBLE
+int _EXFUN(futimesat, (int, const char *, const struct timeval [2]));
+#endif
+
 #ifdef _COMPILING_NEWLIB
 int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz));
 #endif
 
-int _EXFUN(gettimeofday, (struct timeval *__restrict __p,
-			  void *__restrict __tz));
-#if __BSD_VISIBLE
-int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
-int _EXFUN(adjtime, (const struct timeval *, struct timeval *));
-#endif
-int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
-int _EXFUN(getitimer, (int __which, struct itimerval *__value));
-int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value,
-					struct itimerval *__restrict __ovalue));
+__END_DECLS
 
-#ifdef __cplusplus
-}
-#endif
-#endif /* _SYS_TIME_H_ */
+#endif /* !_KERNEL */
+#include 
+
+#endif /* !_SYS_TIME_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/timeb.h b/libc/xtensa-lx106-elf/include/sys/timeb.h
index 0a2c3de..793b481 100644
--- a/libc/xtensa-lx106-elf/include/sys/timeb.h
+++ b/libc/xtensa-lx106-elf/include/sys/timeb.h
@@ -15,11 +15,12 @@ extern "C" {
 #define _SYS_TIMEB_H
 
 #include <_ansi.h>
-#include 
+#include 
 
-#ifndef __time_t_defined
-typedef _TIME_T_ time_t;
-#define __time_t_defined
+#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED)
+typedef	_TIME_T_	time_t;
+#define	__time_t_defined
+#define	_TIME_T_DECLARED
 #endif
 
 struct timeb
diff --git a/libc/xtensa-lx106-elf/include/sys/times.h b/libc/xtensa-lx106-elf/include/sys/times.h
index 927812c..b1f1dc6 100644
--- a/libc/xtensa-lx106-elf/include/sys/times.h
+++ b/libc/xtensa-lx106-elf/include/sys/times.h
@@ -5,11 +5,12 @@ extern "C" {
 #define	_SYS_TIMES_H
 
 #include <_ansi.h>
-#include 
+#include 
 
-#ifndef __clock_t_defined
-typedef _CLOCK_T_ clock_t;
-#define __clock_t_defined
+#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED)
+typedef	_CLOCK_T_	clock_t;
+#define	__clock_t_defined
+#define	_CLOCK_T_DECLARED
 #endif
 
 /*  Get Process Times, P1003.1b-1993, p. 92 */
diff --git a/libc/xtensa-lx106-elf/include/sys/timespec.h b/libc/xtensa-lx106-elf/include/sys/timespec.h
new file mode 100644
index 0000000..2505cef
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/timespec.h
@@ -0,0 +1,63 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)time.h	8.5 (Berkeley) 5/4/95
+ * from: FreeBSD: src/sys/sys/time.h,v 1.43 2000/03/20 14:09:05 phk Exp
+ *	$FreeBSD$
+ */
+
+#ifndef _SYS_TIMESPEC_H_
+#define _SYS_TIMESPEC_H_
+
+#include 
+#include 
+
+#if __BSD_VISIBLE
+#define	TIMEVAL_TO_TIMESPEC(tv, ts)					\
+	do {								\
+		(ts)->tv_sec = (tv)->tv_sec;				\
+		(ts)->tv_nsec = (tv)->tv_usec * 1000;			\
+	} while (0)
+#define	TIMESPEC_TO_TIMEVAL(tv, ts)					\
+	do {								\
+		(tv)->tv_sec = (ts)->tv_sec;				\
+		(tv)->tv_usec = (ts)->tv_nsec / 1000;			\
+	} while (0)
+
+#endif /* __BSD_VISIBLE */
+
+/*
+ * Structure defined by POSIX.1b to be like a itimerval, but with
+ * timespecs. Used in the timer_*() system calls.
+ */
+struct itimerspec {
+	struct timespec  it_interval;
+	struct timespec  it_value;
+};
+
+#endif /* _SYS_TIMESPEC_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/tree.h b/libc/xtensa-lx106-elf/include/sys/tree.h
new file mode 100644
index 0000000..f4167c4
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/sys/tree.h
@@ -0,0 +1,801 @@
+/*	$NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $	*/
+/*	$OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $	*/
+/* $FreeBSD$ */
+
+/*-
+ * Copyright 2002 Niels Provos 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef	_SYS_TREE_H_
+#define	_SYS_TREE_H_
+
+#include 
+
+/*
+ * This file defines data structures for different types of trees:
+ * splay trees and red-black trees.
+ *
+ * A splay tree is a self-organizing data structure.  Every operation
+ * on the tree causes a splay to happen.  The splay moves the requested
+ * node to the root of the tree and partly rebalances it.
+ *
+ * This has the benefit that request locality causes faster lookups as
+ * the requested nodes move to the top of the tree.  On the other hand,
+ * every lookup causes memory writes.
+ *
+ * The Balance Theorem bounds the total access time for m operations
+ * and n inserts on an initially empty tree as O((m + n)lg n).  The
+ * amortized cost for a sequence of m accesses to a splay tree is O(lg n);
+ *
+ * A red-black tree is a binary search tree with the node color as an
+ * extra attribute.  It fulfills a set of conditions:
+ *	- every search path from the root to a leaf consists of the
+ *	  same number of black nodes,
+ *	- each red node (except for the root) has a black parent,
+ *	- each leaf node is black.
+ *
+ * Every operation on a red-black tree is bounded as O(lg n).
+ * The maximum height of a red-black tree is 2lg (n+1).
+ */
+
+#define SPLAY_HEAD(name, type)						\
+struct name {								\
+	struct type *sph_root; /* root of the tree */			\
+}
+
+#define SPLAY_INITIALIZER(root)						\
+	{ NULL }
+
+#define SPLAY_INIT(root) do {						\
+	(root)->sph_root = NULL;					\
+} while (/*CONSTCOND*/ 0)
+
+#define SPLAY_ENTRY(type)						\
+struct {								\
+	struct type *spe_left; /* left element */			\
+	struct type *spe_right; /* right element */			\
+}
+
+#define SPLAY_LEFT(elm, field)		(elm)->field.spe_left
+#define SPLAY_RIGHT(elm, field)		(elm)->field.spe_right
+#define SPLAY_ROOT(head)		(head)->sph_root
+#define SPLAY_EMPTY(head)		(SPLAY_ROOT(head) == NULL)
+
+/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */
+#define SPLAY_ROTATE_RIGHT(head, tmp, field) do {			\
+	SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field);	\
+	SPLAY_RIGHT(tmp, field) = (head)->sph_root;			\
+	(head)->sph_root = tmp;						\
+} while (/*CONSTCOND*/ 0)
+
+#define SPLAY_ROTATE_LEFT(head, tmp, field) do {			\
+	SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field);	\
+	SPLAY_LEFT(tmp, field) = (head)->sph_root;			\
+	(head)->sph_root = tmp;						\
+} while (/*CONSTCOND*/ 0)
+
+#define SPLAY_LINKLEFT(head, tmp, field) do {				\
+	SPLAY_LEFT(tmp, field) = (head)->sph_root;			\
+	tmp = (head)->sph_root;						\
+	(head)->sph_root = SPLAY_LEFT((head)->sph_root, field);		\
+} while (/*CONSTCOND*/ 0)
+
+#define SPLAY_LINKRIGHT(head, tmp, field) do {				\
+	SPLAY_RIGHT(tmp, field) = (head)->sph_root;			\
+	tmp = (head)->sph_root;						\
+	(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);	\
+} while (/*CONSTCOND*/ 0)
+
+#define SPLAY_ASSEMBLE(head, node, left, right, field) do {		\
+	SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field);	\
+	SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\
+	SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field);	\
+	SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field);	\
+} while (/*CONSTCOND*/ 0)
+
+/* Generates prototypes and inline functions */
+
+#define SPLAY_PROTOTYPE(name, type, field, cmp)				\
+void name##_SPLAY(struct name *, struct type *);			\
+void name##_SPLAY_MINMAX(struct name *, int);				\
+struct type *name##_SPLAY_INSERT(struct name *, struct type *);		\
+struct type *name##_SPLAY_REMOVE(struct name *, struct type *);		\
+									\
+/* Finds the node with the same key as elm */				\
+static __inline struct type *						\
+name##_SPLAY_FIND(struct name *head, struct type *elm)			\
+{									\
+	if (SPLAY_EMPTY(head))						\
+		return(NULL);						\
+	name##_SPLAY(head, elm);					\
+	if ((cmp)(elm, (head)->sph_root) == 0)				\
+		return (head->sph_root);				\
+	return (NULL);							\
+}									\
+									\
+static __inline struct type *						\
+name##_SPLAY_NEXT(struct name *head, struct type *elm)			\
+{									\
+	name##_SPLAY(head, elm);					\
+	if (SPLAY_RIGHT(elm, field) != NULL) {				\
+		elm = SPLAY_RIGHT(elm, field);				\
+		while (SPLAY_LEFT(elm, field) != NULL) {		\
+			elm = SPLAY_LEFT(elm, field);			\
+		}							\
+	} else								\
+		elm = NULL;						\
+	return (elm);							\
+}									\
+									\
+static __inline struct type *						\
+name##_SPLAY_MIN_MAX(struct name *head, int val)			\
+{									\
+	name##_SPLAY_MINMAX(head, val);					\
+        return (SPLAY_ROOT(head));					\
+}
+
+/* Main splay operation.
+ * Moves node close to the key of elm to top
+ */
+#define SPLAY_GENERATE(name, type, field, cmp)				\
+struct type *								\
+name##_SPLAY_INSERT(struct name *head, struct type *elm)		\
+{									\
+    if (SPLAY_EMPTY(head)) {						\
+	    SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL;	\
+    } else {								\
+	    int __comp;							\
+	    name##_SPLAY(head, elm);					\
+	    __comp = (cmp)(elm, (head)->sph_root);			\
+	    if(__comp < 0) {						\
+		    SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\
+		    SPLAY_RIGHT(elm, field) = (head)->sph_root;		\
+		    SPLAY_LEFT((head)->sph_root, field) = NULL;		\
+	    } else if (__comp > 0) {					\
+		    SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\
+		    SPLAY_LEFT(elm, field) = (head)->sph_root;		\
+		    SPLAY_RIGHT((head)->sph_root, field) = NULL;	\
+	    } else							\
+		    return ((head)->sph_root);				\
+    }									\
+    (head)->sph_root = (elm);						\
+    return (NULL);							\
+}									\
+									\
+struct type *								\
+name##_SPLAY_REMOVE(struct name *head, struct type *elm)		\
+{									\
+	struct type *__tmp;						\
+	if (SPLAY_EMPTY(head))						\
+		return (NULL);						\
+	name##_SPLAY(head, elm);					\
+	if ((cmp)(elm, (head)->sph_root) == 0) {			\
+		if (SPLAY_LEFT((head)->sph_root, field) == NULL) {	\
+			(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\
+		} else {						\
+			__tmp = SPLAY_RIGHT((head)->sph_root, field);	\
+			(head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\
+			name##_SPLAY(head, elm);			\
+			SPLAY_RIGHT((head)->sph_root, field) = __tmp;	\
+		}							\
+		return (elm);						\
+	}								\
+	return (NULL);							\
+}									\
+									\
+void									\
+name##_SPLAY(struct name *head, struct type *elm)			\
+{									\
+	struct type __node, *__left, *__right, *__tmp;			\
+	int __comp;							\
+\
+	SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
+	__left = __right = &__node;					\
+\
+	while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) {		\
+		if (__comp < 0) {					\
+			__tmp = SPLAY_LEFT((head)->sph_root, field);	\
+			if (__tmp == NULL)				\
+				break;					\
+			if ((cmp)(elm, __tmp) < 0){			\
+				SPLAY_ROTATE_RIGHT(head, __tmp, field);	\
+				if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
+					break;				\
+			}						\
+			SPLAY_LINKLEFT(head, __right, field);		\
+		} else if (__comp > 0) {				\
+			__tmp = SPLAY_RIGHT((head)->sph_root, field);	\
+			if (__tmp == NULL)				\
+				break;					\
+			if ((cmp)(elm, __tmp) > 0){			\
+				SPLAY_ROTATE_LEFT(head, __tmp, field);	\
+				if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
+					break;				\
+			}						\
+			SPLAY_LINKRIGHT(head, __left, field);		\
+		}							\
+	}								\
+	SPLAY_ASSEMBLE(head, &__node, __left, __right, field);		\
+}									\
+									\
+/* Splay with either the minimum or the maximum element			\
+ * Used to find minimum or maximum element in tree.			\
+ */									\
+void name##_SPLAY_MINMAX(struct name *head, int __comp) \
+{									\
+	struct type __node, *__left, *__right, *__tmp;			\
+\
+	SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
+	__left = __right = &__node;					\
+\
+	while (1) {							\
+		if (__comp < 0) {					\
+			__tmp = SPLAY_LEFT((head)->sph_root, field);	\
+			if (__tmp == NULL)				\
+				break;					\
+			if (__comp < 0){				\
+				SPLAY_ROTATE_RIGHT(head, __tmp, field);	\
+				if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
+					break;				\
+			}						\
+			SPLAY_LINKLEFT(head, __right, field);		\
+		} else if (__comp > 0) {				\
+			__tmp = SPLAY_RIGHT((head)->sph_root, field);	\
+			if (__tmp == NULL)				\
+				break;					\
+			if (__comp > 0) {				\
+				SPLAY_ROTATE_LEFT(head, __tmp, field);	\
+				if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
+					break;				\
+			}						\
+			SPLAY_LINKRIGHT(head, __left, field);		\
+		}							\
+	}								\
+	SPLAY_ASSEMBLE(head, &__node, __left, __right, field);		\
+}
+
+#define SPLAY_NEGINF	-1
+#define SPLAY_INF	1
+
+#define SPLAY_INSERT(name, x, y)	name##_SPLAY_INSERT(x, y)
+#define SPLAY_REMOVE(name, x, y)	name##_SPLAY_REMOVE(x, y)
+#define SPLAY_FIND(name, x, y)		name##_SPLAY_FIND(x, y)
+#define SPLAY_NEXT(name, x, y)		name##_SPLAY_NEXT(x, y)
+#define SPLAY_MIN(name, x)		(SPLAY_EMPTY(x) ? NULL	\
+					: name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF))
+#define SPLAY_MAX(name, x)		(SPLAY_EMPTY(x) ? NULL	\
+					: name##_SPLAY_MIN_MAX(x, SPLAY_INF))
+
+#define SPLAY_FOREACH(x, name, head)					\
+	for ((x) = SPLAY_MIN(name, head);				\
+	     (x) != NULL;						\
+	     (x) = SPLAY_NEXT(name, head, x))
+
+/* Macros that define a red-black tree */
+#define RB_HEAD(name, type)						\
+struct name {								\
+	struct type *rbh_root; /* root of the tree */			\
+}
+
+#define RB_INITIALIZER(root)						\
+	{ NULL }
+
+#define RB_INIT(root) do {						\
+	(root)->rbh_root = NULL;					\
+} while (/*CONSTCOND*/ 0)
+
+#define RB_BLACK	0
+#define RB_RED		1
+#define RB_ENTRY(type)							\
+struct {								\
+	struct type *rbe_left;		/* left element */		\
+	struct type *rbe_right;		/* right element */		\
+	struct type *rbe_parent;	/* parent element */		\
+	int rbe_color;			/* node color */		\
+}
+
+#define RB_LEFT(elm, field)		(elm)->field.rbe_left
+#define RB_RIGHT(elm, field)		(elm)->field.rbe_right
+#define RB_PARENT(elm, field)		(elm)->field.rbe_parent
+#define RB_COLOR(elm, field)		(elm)->field.rbe_color
+#define RB_ROOT(head)			(head)->rbh_root
+#define RB_EMPTY(head)			(RB_ROOT(head) == NULL)
+
+#define RB_SET(elm, parent, field) do {					\
+	RB_PARENT(elm, field) = parent;					\
+	RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL;		\
+	RB_COLOR(elm, field) = RB_RED;					\
+} while (/*CONSTCOND*/ 0)
+
+#define RB_SET_BLACKRED(black, red, field) do {				\
+	RB_COLOR(black, field) = RB_BLACK;				\
+	RB_COLOR(red, field) = RB_RED;					\
+} while (/*CONSTCOND*/ 0)
+
+#ifndef RB_AUGMENT
+#define RB_AUGMENT(x)	do {} while (0)
+#endif
+
+#define RB_ROTATE_LEFT(head, elm, tmp, field) do {			\
+	(tmp) = RB_RIGHT(elm, field);					\
+	if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) {	\
+		RB_PARENT(RB_LEFT(tmp, field), field) = (elm);		\
+	}								\
+	RB_AUGMENT(elm);						\
+	if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) {	\
+		if ((elm) == RB_LEFT(RB_PARENT(elm, field), field))	\
+			RB_LEFT(RB_PARENT(elm, field), field) = (tmp);	\
+		else							\
+			RB_RIGHT(RB_PARENT(elm, field), field) = (tmp);	\
+	} else								\
+		(head)->rbh_root = (tmp);				\
+	RB_LEFT(tmp, field) = (elm);					\
+	RB_PARENT(elm, field) = (tmp);					\
+	RB_AUGMENT(tmp);						\
+	if ((RB_PARENT(tmp, field)))					\
+		RB_AUGMENT(RB_PARENT(tmp, field));			\
+} while (/*CONSTCOND*/ 0)
+
+#define RB_ROTATE_RIGHT(head, elm, tmp, field) do {			\
+	(tmp) = RB_LEFT(elm, field);					\
+	if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) {	\
+		RB_PARENT(RB_RIGHT(tmp, field), field) = (elm);		\
+	}								\
+	RB_AUGMENT(elm);						\
+	if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) {	\
+		if ((elm) == RB_LEFT(RB_PARENT(elm, field), field))	\
+			RB_LEFT(RB_PARENT(elm, field), field) = (tmp);	\
+		else							\
+			RB_RIGHT(RB_PARENT(elm, field), field) = (tmp);	\
+	} else								\
+		(head)->rbh_root = (tmp);				\
+	RB_RIGHT(tmp, field) = (elm);					\
+	RB_PARENT(elm, field) = (tmp);					\
+	RB_AUGMENT(tmp);						\
+	if ((RB_PARENT(tmp, field)))					\
+		RB_AUGMENT(RB_PARENT(tmp, field));			\
+} while (/*CONSTCOND*/ 0)
+
+/* Generates prototypes and inline functions */
+#define	RB_PROTOTYPE(name, type, field, cmp)				\
+	RB_PROTOTYPE_INTERNAL(name, type, field, cmp,)
+#define	RB_PROTOTYPE_STATIC(name, type, field, cmp)			\
+	RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)
+#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr)		\
+	RB_PROTOTYPE_INSERT_COLOR(name, type, attr);			\
+	RB_PROTOTYPE_REMOVE_COLOR(name, type, attr);			\
+	RB_PROTOTYPE_INSERT(name, type, attr);				\
+	RB_PROTOTYPE_REMOVE(name, type, attr);				\
+	RB_PROTOTYPE_FIND(name, type, attr);				\
+	RB_PROTOTYPE_NFIND(name, type, attr);				\
+	RB_PROTOTYPE_NEXT(name, type, attr);				\
+	RB_PROTOTYPE_PREV(name, type, attr);				\
+	RB_PROTOTYPE_MINMAX(name, type, attr);
+#define RB_PROTOTYPE_INSERT_COLOR(name, type, attr)			\
+	attr void name##_RB_INSERT_COLOR(struct name *, struct type *)
+#define RB_PROTOTYPE_REMOVE_COLOR(name, type, attr)			\
+	attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *)
+#define RB_PROTOTYPE_REMOVE(name, type, attr)				\
+	attr struct type *name##_RB_REMOVE(struct name *, struct type *)
+#define RB_PROTOTYPE_INSERT(name, type, attr)				\
+	attr struct type *name##_RB_INSERT(struct name *, struct type *)
+#define RB_PROTOTYPE_FIND(name, type, attr)				\
+	attr struct type *name##_RB_FIND(struct name *, struct type *)
+#define RB_PROTOTYPE_NFIND(name, type, attr)				\
+	attr struct type *name##_RB_NFIND(struct name *, struct type *)
+#define RB_PROTOTYPE_NEXT(name, type, attr)				\
+	attr struct type *name##_RB_NEXT(struct type *)
+#define RB_PROTOTYPE_PREV(name, type, attr)				\
+	attr struct type *name##_RB_PREV(struct type *)
+#define RB_PROTOTYPE_MINMAX(name, type, attr)				\
+	attr struct type *name##_RB_MINMAX(struct name *, int)
+
+/* Main rb operation.
+ * Moves node close to the key of elm to top
+ */
+#define	RB_GENERATE(name, type, field, cmp)				\
+	RB_GENERATE_INTERNAL(name, type, field, cmp,)
+#define	RB_GENERATE_STATIC(name, type, field, cmp)			\
+	RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)
+#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr)		\
+	RB_GENERATE_INSERT_COLOR(name, type, field, attr)		\
+	RB_GENERATE_REMOVE_COLOR(name, type, field, attr)		\
+	RB_GENERATE_INSERT(name, type, field, cmp, attr)		\
+	RB_GENERATE_REMOVE(name, type, field, attr)			\
+	RB_GENERATE_FIND(name, type, field, cmp, attr)			\
+	RB_GENERATE_NFIND(name, type, field, cmp, attr)			\
+	RB_GENERATE_NEXT(name, type, field, attr)			\
+	RB_GENERATE_PREV(name, type, field, attr)			\
+	RB_GENERATE_MINMAX(name, type, field, attr)
+
+#define RB_GENERATE_INSERT_COLOR(name, type, field, attr)		\
+attr void								\
+name##_RB_INSERT_COLOR(struct name *head, struct type *elm)		\
+{									\
+	struct type *parent, *gparent, *tmp;				\
+	while ((parent = RB_PARENT(elm, field)) != NULL &&		\
+	    RB_COLOR(parent, field) == RB_RED) {			\
+		gparent = RB_PARENT(parent, field);			\
+		if (parent == RB_LEFT(gparent, field)) {		\
+			tmp = RB_RIGHT(gparent, field);			\
+			if (tmp && RB_COLOR(tmp, field) == RB_RED) {	\
+				RB_COLOR(tmp, field) = RB_BLACK;	\
+				RB_SET_BLACKRED(parent, gparent, field);\
+				elm = gparent;				\
+				continue;				\
+			}						\
+			if (RB_RIGHT(parent, field) == elm) {		\
+				RB_ROTATE_LEFT(head, parent, tmp, field);\
+				tmp = parent;				\
+				parent = elm;				\
+				elm = tmp;				\
+			}						\
+			RB_SET_BLACKRED(parent, gparent, field);	\
+			RB_ROTATE_RIGHT(head, gparent, tmp, field);	\
+		} else {						\
+			tmp = RB_LEFT(gparent, field);			\
+			if (tmp && RB_COLOR(tmp, field) == RB_RED) {	\
+				RB_COLOR(tmp, field) = RB_BLACK;	\
+				RB_SET_BLACKRED(parent, gparent, field);\
+				elm = gparent;				\
+				continue;				\
+			}						\
+			if (RB_LEFT(parent, field) == elm) {		\
+				RB_ROTATE_RIGHT(head, parent, tmp, field);\
+				tmp = parent;				\
+				parent = elm;				\
+				elm = tmp;				\
+			}						\
+			RB_SET_BLACKRED(parent, gparent, field);	\
+			RB_ROTATE_LEFT(head, gparent, tmp, field);	\
+		}							\
+	}								\
+	RB_COLOR(head->rbh_root, field) = RB_BLACK;			\
+}
+
+#define RB_GENERATE_REMOVE_COLOR(name, type, field, attr)		\
+attr void								\
+name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \
+{									\
+	struct type *tmp;						\
+	while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) &&	\
+	    elm != RB_ROOT(head)) {					\
+		if (RB_LEFT(parent, field) == elm) {			\
+			tmp = RB_RIGHT(parent, field);			\
+			if (RB_COLOR(tmp, field) == RB_RED) {		\
+				RB_SET_BLACKRED(tmp, parent, field);	\
+				RB_ROTATE_LEFT(head, parent, tmp, field);\
+				tmp = RB_RIGHT(parent, field);		\
+			}						\
+			if ((RB_LEFT(tmp, field) == NULL ||		\
+			    RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
+			    (RB_RIGHT(tmp, field) == NULL ||		\
+			    RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
+				RB_COLOR(tmp, field) = RB_RED;		\
+				elm = parent;				\
+				parent = RB_PARENT(elm, field);		\
+			} else {					\
+				if (RB_RIGHT(tmp, field) == NULL ||	\
+				    RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\
+					struct type *oleft;		\
+					if ((oleft = RB_LEFT(tmp, field)) \
+					    != NULL)			\
+						RB_COLOR(oleft, field) = RB_BLACK;\
+					RB_COLOR(tmp, field) = RB_RED;	\
+					RB_ROTATE_RIGHT(head, tmp, oleft, field);\
+					tmp = RB_RIGHT(parent, field);	\
+				}					\
+				RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
+				RB_COLOR(parent, field) = RB_BLACK;	\
+				if (RB_RIGHT(tmp, field))		\
+					RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\
+				RB_ROTATE_LEFT(head, parent, tmp, field);\
+				elm = RB_ROOT(head);			\
+				break;					\
+			}						\
+		} else {						\
+			tmp = RB_LEFT(parent, field);			\
+			if (RB_COLOR(tmp, field) == RB_RED) {		\
+				RB_SET_BLACKRED(tmp, parent, field);	\
+				RB_ROTATE_RIGHT(head, parent, tmp, field);\
+				tmp = RB_LEFT(parent, field);		\
+			}						\
+			if ((RB_LEFT(tmp, field) == NULL ||		\
+			    RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
+			    (RB_RIGHT(tmp, field) == NULL ||		\
+			    RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
+				RB_COLOR(tmp, field) = RB_RED;		\
+				elm = parent;				\
+				parent = RB_PARENT(elm, field);		\
+			} else {					\
+				if (RB_LEFT(tmp, field) == NULL ||	\
+				    RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\
+					struct type *oright;		\
+					if ((oright = RB_RIGHT(tmp, field)) \
+					    != NULL)			\
+						RB_COLOR(oright, field) = RB_BLACK;\
+					RB_COLOR(tmp, field) = RB_RED;	\
+					RB_ROTATE_LEFT(head, tmp, oright, field);\
+					tmp = RB_LEFT(parent, field);	\
+				}					\
+				RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
+				RB_COLOR(parent, field) = RB_BLACK;	\
+				if (RB_LEFT(tmp, field))		\
+					RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\
+				RB_ROTATE_RIGHT(head, parent, tmp, field);\
+				elm = RB_ROOT(head);			\
+				break;					\
+			}						\
+		}							\
+	}								\
+	if (elm)							\
+		RB_COLOR(elm, field) = RB_BLACK;			\
+}
+
+#define RB_GENERATE_REMOVE(name, type, field, attr)			\
+attr struct type *							\
+name##_RB_REMOVE(struct name *head, struct type *elm)			\
+{									\
+	struct type *child, *parent, *old = elm;			\
+	int color;							\
+	if (RB_LEFT(elm, field) == NULL)				\
+		child = RB_RIGHT(elm, field);				\
+	else if (RB_RIGHT(elm, field) == NULL)				\
+		child = RB_LEFT(elm, field);				\
+	else {								\
+		struct type *left;					\
+		elm = RB_RIGHT(elm, field);				\
+		while ((left = RB_LEFT(elm, field)) != NULL)		\
+			elm = left;					\
+		child = RB_RIGHT(elm, field);				\
+		parent = RB_PARENT(elm, field);				\
+		color = RB_COLOR(elm, field);				\
+		if (child)						\
+			RB_PARENT(child, field) = parent;		\
+		if (parent) {						\
+			if (RB_LEFT(parent, field) == elm)		\
+				RB_LEFT(parent, field) = child;		\
+			else						\
+				RB_RIGHT(parent, field) = child;	\
+			RB_AUGMENT(parent);				\
+		} else							\
+			RB_ROOT(head) = child;				\
+		if (RB_PARENT(elm, field) == old)			\
+			parent = elm;					\
+		(elm)->field = (old)->field;				\
+		if (RB_PARENT(old, field)) {				\
+			if (RB_LEFT(RB_PARENT(old, field), field) == old)\
+				RB_LEFT(RB_PARENT(old, field), field) = elm;\
+			else						\
+				RB_RIGHT(RB_PARENT(old, field), field) = elm;\
+			RB_AUGMENT(RB_PARENT(old, field));		\
+		} else							\
+			RB_ROOT(head) = elm;				\
+		RB_PARENT(RB_LEFT(old, field), field) = elm;		\
+		if (RB_RIGHT(old, field))				\
+			RB_PARENT(RB_RIGHT(old, field), field) = elm;	\
+		if (parent) {						\
+			left = parent;					\
+			do {						\
+				RB_AUGMENT(left);			\
+			} while ((left = RB_PARENT(left, field)) != NULL); \
+		}							\
+		goto color;						\
+	}								\
+	parent = RB_PARENT(elm, field);					\
+	color = RB_COLOR(elm, field);					\
+	if (child)							\
+		RB_PARENT(child, field) = parent;			\
+	if (parent) {							\
+		if (RB_LEFT(parent, field) == elm)			\
+			RB_LEFT(parent, field) = child;			\
+		else							\
+			RB_RIGHT(parent, field) = child;		\
+		RB_AUGMENT(parent);					\
+	} else								\
+		RB_ROOT(head) = child;					\
+color:									\
+	if (color == RB_BLACK)						\
+		name##_RB_REMOVE_COLOR(head, parent, child);		\
+	return (old);							\
+}									\
+
+#define RB_GENERATE_INSERT(name, type, field, cmp, attr)		\
+/* Inserts a node into the RB tree */					\
+attr struct type *							\
+name##_RB_INSERT(struct name *head, struct type *elm)			\
+{									\
+	struct type *tmp;						\
+	struct type *parent = NULL;					\
+	int comp = 0;							\
+	tmp = RB_ROOT(head);						\
+	while (tmp) {							\
+		parent = tmp;						\
+		comp = (cmp)(elm, parent);				\
+		if (comp < 0)						\
+			tmp = RB_LEFT(tmp, field);			\
+		else if (comp > 0)					\
+			tmp = RB_RIGHT(tmp, field);			\
+		else							\
+			return (tmp);					\
+	}								\
+	RB_SET(elm, parent, field);					\
+	if (parent != NULL) {						\
+		if (comp < 0)						\
+			RB_LEFT(parent, field) = elm;			\
+		else							\
+			RB_RIGHT(parent, field) = elm;			\
+		RB_AUGMENT(parent);					\
+	} else								\
+		RB_ROOT(head) = elm;					\
+	name##_RB_INSERT_COLOR(head, elm);				\
+	return (NULL);							\
+}
+
+#define RB_GENERATE_FIND(name, type, field, cmp, attr)			\
+/* Finds the node with the same key as elm */				\
+attr struct type *							\
+name##_RB_FIND(struct name *head, struct type *elm)			\
+{									\
+	struct type *tmp = RB_ROOT(head);				\
+	int comp;							\
+	while (tmp) {							\
+		comp = cmp(elm, tmp);					\
+		if (comp < 0)						\
+			tmp = RB_LEFT(tmp, field);			\
+		else if (comp > 0)					\
+			tmp = RB_RIGHT(tmp, field);			\
+		else							\
+			return (tmp);					\
+	}								\
+	return (NULL);							\
+}
+
+#define RB_GENERATE_NFIND(name, type, field, cmp, attr)			\
+/* Finds the first node greater than or equal to the search key */	\
+attr struct type *							\
+name##_RB_NFIND(struct name *head, struct type *elm)			\
+{									\
+	struct type *tmp = RB_ROOT(head);				\
+	struct type *res = NULL;					\
+	int comp;							\
+	while (tmp) {							\
+		comp = cmp(elm, tmp);					\
+		if (comp < 0) {						\
+			res = tmp;					\
+			tmp = RB_LEFT(tmp, field);			\
+		}							\
+		else if (comp > 0)					\
+			tmp = RB_RIGHT(tmp, field);			\
+		else							\
+			return (tmp);					\
+	}								\
+	return (res);							\
+}
+
+#define RB_GENERATE_NEXT(name, type, field, attr)			\
+/* ARGSUSED */								\
+attr struct type *							\
+name##_RB_NEXT(struct type *elm)					\
+{									\
+	if (RB_RIGHT(elm, field)) {					\
+		elm = RB_RIGHT(elm, field);				\
+		while (RB_LEFT(elm, field))				\
+			elm = RB_LEFT(elm, field);			\
+	} else {							\
+		if (RB_PARENT(elm, field) &&				\
+		    (elm == RB_LEFT(RB_PARENT(elm, field), field)))	\
+			elm = RB_PARENT(elm, field);			\
+		else {							\
+			while (RB_PARENT(elm, field) &&			\
+			    (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\
+				elm = RB_PARENT(elm, field);		\
+			elm = RB_PARENT(elm, field);			\
+		}							\
+	}								\
+	return (elm);							\
+}
+
+#define RB_GENERATE_PREV(name, type, field, attr)			\
+/* ARGSUSED */								\
+attr struct type *							\
+name##_RB_PREV(struct type *elm)					\
+{									\
+	if (RB_LEFT(elm, field)) {					\
+		elm = RB_LEFT(elm, field);				\
+		while (RB_RIGHT(elm, field))				\
+			elm = RB_RIGHT(elm, field);			\
+	} else {							\
+		if (RB_PARENT(elm, field) &&				\
+		    (elm == RB_RIGHT(RB_PARENT(elm, field), field)))	\
+			elm = RB_PARENT(elm, field);			\
+		else {							\
+			while (RB_PARENT(elm, field) &&			\
+			    (elm == RB_LEFT(RB_PARENT(elm, field), field)))\
+				elm = RB_PARENT(elm, field);		\
+			elm = RB_PARENT(elm, field);			\
+		}							\
+	}								\
+	return (elm);							\
+}
+
+#define RB_GENERATE_MINMAX(name, type, field, attr)			\
+attr struct type *							\
+name##_RB_MINMAX(struct name *head, int val)				\
+{									\
+	struct type *tmp = RB_ROOT(head);				\
+	struct type *parent = NULL;					\
+	while (tmp) {							\
+		parent = tmp;						\
+		if (val < 0)						\
+			tmp = RB_LEFT(tmp, field);			\
+		else							\
+			tmp = RB_RIGHT(tmp, field);			\
+	}								\
+	return (parent);						\
+}
+
+#define RB_NEGINF	-1
+#define RB_INF	1
+
+#define RB_INSERT(name, x, y)	name##_RB_INSERT(x, y)
+#define RB_REMOVE(name, x, y)	name##_RB_REMOVE(x, y)
+#define RB_FIND(name, x, y)	name##_RB_FIND(x, y)
+#define RB_NFIND(name, x, y)	name##_RB_NFIND(x, y)
+#define RB_NEXT(name, x, y)	name##_RB_NEXT(y)
+#define RB_PREV(name, x, y)	name##_RB_PREV(y)
+#define RB_MIN(name, x)		name##_RB_MINMAX(x, RB_NEGINF)
+#define RB_MAX(name, x)		name##_RB_MINMAX(x, RB_INF)
+
+#define RB_FOREACH(x, name, head)					\
+	for ((x) = RB_MIN(name, head);					\
+	     (x) != NULL;						\
+	     (x) = name##_RB_NEXT(x))
+
+#define RB_FOREACH_FROM(x, name, y)					\
+	for ((x) = (y);							\
+	    ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL);	\
+	     (x) = (y))
+
+#define RB_FOREACH_SAFE(x, name, head, y)				\
+	for ((x) = RB_MIN(name, head);					\
+	    ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL);	\
+	     (x) = (y))
+
+#define RB_FOREACH_REVERSE(x, name, head)				\
+	for ((x) = RB_MAX(name, head);					\
+	     (x) != NULL;						\
+	     (x) = name##_RB_PREV(x))
+
+#define RB_FOREACH_REVERSE_FROM(x, name, y)				\
+	for ((x) = (y);							\
+	    ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL);	\
+	     (x) = (y))
+
+#define RB_FOREACH_REVERSE_SAFE(x, name, head, y)			\
+	for ((x) = RB_MAX(name, head);					\
+	    ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL);	\
+	     (x) = (y))
+
+#endif	/* _SYS_TREE_H_ */
diff --git a/libc/xtensa-lx106-elf/include/sys/types.h b/libc/xtensa-lx106-elf/include/sys/types.h
index ed33e0a..65ff520 100644
--- a/libc/xtensa-lx106-elf/include/sys/types.h
+++ b/libc/xtensa-lx106-elf/include/sys/types.h
@@ -18,20 +18,12 @@
 #ifndef _SYS_TYPES_H
 
 #include <_ansi.h>
-
-#ifndef __INTTYPES_DEFINED__
-#define __INTTYPES_DEFINED__
-
+#include 
 #include 
 
-#if defined(__rtems__) || defined(__XMK__)
-/*
- *  The following section is RTEMS specific and is needed to more
- *  closely match the types defined in the BSD sys/types.h.
- *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
- */
-
-/* deprecated */
+/* BSD types permitted by POSIX and always exposed as in Glibc.  Only provided
+   for backward compatibility with BSD code.  The uintN_t standard types should
+   be preferred in new code. */
 #if ___int8_t_defined
 typedef __uint8_t	u_int8_t;
 #endif
@@ -41,52 +33,54 @@ typedef __uint16_t	u_int16_t;
 #if ___int32_t_defined
 typedef __uint32_t	u_int32_t;
 #endif
-
 #if ___int64_t_defined
 typedef __uint64_t	u_int64_t;
+#endif
+typedef int register_t;
+#define __BIT_TYPES_DEFINED__ 1
+
+#if defined(__rtems__) || defined(__XMK__)
+/*
+ *  The following section is RTEMS specific and is needed to more
+ *  closely match the types defined in the BSD sys/types.h.
+ *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
+ */
 
 /* deprecated */
+#if ___int64_t_defined
 typedef	__uint64_t	u_quad_t;
 typedef	__int64_t	quad_t;
 typedef	quad_t *	qaddr_t;
 #endif
 
-#endif
-
-#endif /* ! __INTTYPES_DEFINED */
+#endif /* __rtems__ || __XMK__ */
 
 #ifndef __need_inttypes
 
 #define _SYS_TYPES_H
+/*  must be before  for __size_t considerations */
+#include 
 #include 
+#include 
 
-#ifdef __i386__
-#if defined (GO32) || defined (__MSDOS__)
-#define __MS_types__
-#endif
-#endif
-
-# include 
-# include 
-
-/* To ensure the stat struct's layout doesn't change when sizeof(int), etc.
-   changes, we assume sizeof short and long never change and have all types
-   used to define struct stat use them and not int where possible.
-   Where not possible, _ST_INTxx are used.  It would be preferable to not have
-   such assumptions, but until the extra fluff is necessary, it's avoided.
-   No 64 bit targets use stat yet.  What to do about them is postponed
-   until necessary.  */
-#ifdef __GNUC__
-#define _ST_INT32 __attribute__ ((__mode__ (__SI__)))
-#else
-#define _ST_INT32
-#endif
-
-# ifndef	_POSIX_SOURCE
-
+#if __BSD_VISIBLE
+#include 
+#include 
 #  define	physadr		physadr_t
 #  define	quad		quad_t
 
+#ifndef _IN_ADDR_T_DECLARED
+typedef	__uint32_t	in_addr_t;	/* base type for internet address */
+#define	_IN_ADDR_T_DECLARED
+#endif
+
+#ifndef _IN_PORT_T_DECLARED
+typedef	__uint16_t	in_port_t;
+#define	_IN_PORT_T_DECLARED
+#endif
+#endif /* __BSD_VISIBLE */
+
+#if __MISC_VISIBLE
 #ifndef _BSDTYPES_DEFINED
 /* also defined in mingw/gmon.h and in w32api/winsock[2].h */
 #ifndef __u_char_defined
@@ -107,36 +101,35 @@ typedef	unsigned long	u_long;
 #endif
 #define _BSDTYPES_DEFINED
 #endif
+#endif	/*__BSD_VISIBLE || __CYGWIN__ */
 
+#if __MISC_VISIBLE
 typedef	unsigned short	ushort;		/* System V compatibility */
 typedef	unsigned int	uint;		/* System V compatibility */
 typedef	unsigned long	ulong;		/* System V compatibility */
-# endif	/*!_POSIX_SOURCE */
-
-#ifndef __clock_t_defined
-typedef _CLOCK_T_ clock_t;
-#define __clock_t_defined
 #endif
 
-#ifndef __time_t_defined
-typedef _TIME_T_ time_t;
-#define __time_t_defined
+#ifndef _BLKCNT_T_DECLARED
+typedef	__blkcnt_t	blkcnt_t;
+#define	_BLKCNT_T_DECLARED
 #endif
 
-#ifndef __timespec_defined
-#define __timespec_defined
-/* Time Value Specification Structures, P1003.1b-1993, p. 261 */
-
-struct timespec {
-  time_t  tv_sec;   /* Seconds */
-  long    tv_nsec;  /* Nanoseconds */
-};
+#ifndef _BLKSIZE_T_DECLARED
+typedef	__blksize_t	blksize_t;
+#define	_BLKSIZE_T_DECLARED
 #endif
 
-struct itimerspec {
-  struct timespec  it_interval;  /* Timer period */
-  struct timespec  it_value;     /* Timer expiration */
-};
+#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED)
+typedef	_CLOCK_T_	clock_t;
+#define	__clock_t_defined
+#define	_CLOCK_T_DECLARED
+#endif
+
+#if !defined(__time_t_defined) && !defined(_TIME_T_DECLARED)
+typedef	_TIME_T_	time_t;
+#define	__time_t_defined
+#define	_TIME_T_DECLARED
+#endif
 
 #ifndef __daddr_t_defined
 typedef	long	daddr_t;
@@ -147,31 +140,27 @@ typedef	char *	caddr_t;
 #define __caddr_t_defined
 #endif
 
-#ifndef __CYGWIN__
-#if defined(__MS_types__) || defined(__rtems__) || \
-    defined(__sparc__) || defined(__SPU__)
-typedef	unsigned long	ino_t;
-#else
-typedef	unsigned short	ino_t;
+#ifndef _FSBLKCNT_T_DECLARED		/* for statvfs() */
+typedef	__fsblkcnt_t	fsblkcnt_t;
+typedef	__fsfilcnt_t	fsfilcnt_t;
+#define	_FSBLKCNT_T_DECLARED
 #endif
-#endif /*__CYGWIN__*/
 
-#ifdef __MS_types__
+#ifndef _ID_T_DECLARED
+typedef	__id_t		id_t;		/* can hold a uid_t or pid_t */
+#define	_ID_T_DECLARED
+#endif
+
+#ifndef _INO_T_DECLARED
+typedef	__ino_t		ino_t;		/* inode number */
+#define	_INO_T_DECLARED
+#endif
+
+#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__))
+typedef	char *		addr_t;
 typedef unsigned long vm_offset_t;
 typedef unsigned long vm_size_t;
-
-#define __BIT_TYPES_DEFINED__
-
-typedef signed char int8_t;
-typedef unsigned char u_int8_t;
-typedef short int16_t;
-typedef unsigned short u_int16_t;
-typedef int int32_t;
-typedef unsigned int u_int32_t;
-typedef long long int64_t;
-typedef unsigned long long u_int64_t;
-typedef int32_t register_t;
-#endif /* __MS_types__ */
+#endif /* __i386__ && (GO32 || __MSDOS__) */
 
 /*
  * All these should be machine specific - right now they are all broken.
@@ -180,339 +169,75 @@ typedef int32_t register_t;
  * how the file was compiled (e.g. -mint16 vs -mint32, etc.).
  */
 
-#ifndef __CYGWIN__	/* which defines these types in it's own types.h. */
-typedef _off_t	off_t;
-typedef __dev_t dev_t;
-typedef __uid_t uid_t;
-typedef __gid_t gid_t;
+#ifndef _OFF_T_DECLARED
+typedef	__off_t		off_t;		/* file offset */
+#define	_OFF_T_DECLARED
+#endif
+#ifndef _DEV_T_DECLARED
+typedef	__dev_t		dev_t;		/* device number or struct cdev */
+#define	_DEV_T_DECLARED
+#endif
+#ifndef _UID_T_DECLARED
+typedef	__uid_t		uid_t;		/* user id */
+#define	_UID_T_DECLARED
+#endif
+#ifndef _GID_T_DECLARED
+typedef	__gid_t		gid_t;		/* group id */
+#define	_GID_T_DECLARED
 #endif
 
-#if defined(__XMK__)
-typedef signed char pid_t;
-#else
-typedef int pid_t;
+#ifndef _PID_T_DECLARED
+typedef	__pid_t		pid_t;		/* process id */
+#define	_PID_T_DECLARED
 #endif
 
-#if defined(__rtems__)
-typedef _mode_t mode_t;
+#ifndef _KEY_T_DECLARED
+typedef	__key_t		key_t;		/* IPC key */
+#define	_KEY_T_DECLARED
 #endif
 
-#ifndef __CYGWIN__
-typedef	long key_t;
-#endif
+#ifndef _SSIZE_T_DECLARED
 typedef _ssize_t ssize_t;
-
-#if !defined(__CYGWIN__) && !defined(__rtems__)
-#ifdef __MS_types__
-typedef	char *	addr_t;
-typedef int mode_t;
-#else
-#if defined (__sparc__) && !defined (__sparc_v9__)
-#ifdef __svr4__
-typedef unsigned long mode_t;
-#else
-typedef unsigned short mode_t;
-#endif
-#else
-typedef unsigned int mode_t _ST_INT32;
-#endif
-#endif /* ! __MS_types__ */
-#endif /*__CYGWIN__*/
-
-typedef unsigned short nlink_t;
-
-/* We don't define fd_set and friends if we are compiling POSIX
-   source, or if we have included (or may include as indicated
-   by __USE_W32_SOCKETS) the W32api winsock[2].h header which
-   defines Windows versions of them.   Note that a program which
-   includes the W32api winsock[2].h header must know what it is doing;
-   it must not call the cygwin32 select function.
-*/
-# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) 
-#  define _SYS_TYPES_FD_SET
-#  define	NBBY	8		/* number of bits in a byte */
-/*
- * Select uses bit masks of file descriptors in longs.
- * These macros manipulate such bit fields (the filesystem macros use chars).
- * FD_SETSIZE may be defined by the user, but the default here
- * should be >= NOFILE (param.h).
- */
-#  ifndef	FD_SETSIZE
-#	define	FD_SETSIZE	64
-#  endif
-
-typedef	long	fd_mask;
-#  define	NFDBITS	(sizeof (fd_mask) * NBBY)	/* bits per mask */
-#  ifndef	howmany
-#	define	howmany(x,y)	(((x)+((y)-1))/(y))
-#  endif
-
-/* We use a macro for fd_set so that including Sockets.h afterwards
-   can work.  */
-typedef	struct _types_fd_set {
-	fd_mask	fds_bits[howmany(FD_SETSIZE, NFDBITS)];
-} _types_fd_set;
-
-#define fd_set _types_fd_set
-
-#  define	FD_SET(n, p)	((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
-#  define	FD_CLR(n, p)	((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
-#  define	FD_ISSET(n, p)	((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
-#  define	FD_ZERO(p)	(__extension__ (void)({ \
-     size_t __i; \
-     char *__tmp = (char *)p; \
-     for (__i = 0; __i < sizeof (*(p)); ++__i) \
-       *__tmp++ = 0; \
-}))
-
-# endif	/* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */
-
-#undef __MS_types__
-#undef _ST_INT32
-
-
-#ifndef __clockid_t_defined
-typedef _CLOCKID_T_ clockid_t;
-#define __clockid_t_defined
+#define	_SSIZE_T_DECLARED
 #endif
 
-#ifndef __timer_t_defined
-typedef _TIMER_T_ timer_t;
-#define __timer_t_defined
+#ifndef _MODE_T_DECLARED
+typedef	__mode_t	mode_t;		/* permissions */
+#define	_MODE_T_DECLARED
 #endif
 
-typedef unsigned long useconds_t;
-typedef long suseconds_t;
+#ifndef _NLINK_T_DECLARED
+typedef	__nlink_t	nlink_t;	/* link count */
+#define	_NLINK_T_DECLARED
+#endif
+
+#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED)
+typedef	__clockid_t	clockid_t;
+#define	__clockid_t_defined
+#define	_CLOCKID_T_DECLARED
+#endif
+
+#if !defined(__timer_t_defined) && !defined(_TIMER_T_DECLARED)
+typedef	__timer_t	timer_t;
+#define	__timer_t_defined
+#define	_TIMER_T_DECLARED
+#endif
+
+#ifndef _USECONDS_T_DECLARED
+typedef	__useconds_t	useconds_t;	/* microseconds (unsigned) */
+#define	_USECONDS_T_DECLARED
+#endif
+
+#ifndef _SUSECONDS_T_DECLARED
+typedef	__suseconds_t	suseconds_t;
+#define	_SUSECONDS_T_DECLARED
+#endif
+
+typedef	__int64_t	sbintime_t;
 
 #include 
-
-
-/* Cygwin will probably never have full posix compliance due to little things
- * like an inability to set the stackaddress. Cygwin is also using void *  
- * pointers rather than structs to ensure maximum binary compatability with
- * previous releases.
- * This means that we don't use the types defined here, but rather in
- * 
- */
-#if defined(_POSIX_THREADS) && !defined(__CYGWIN__)
-
-#include 
-
-/*
- *  2.5 Primitive System Data Types,  P1003.1c/D10, p. 19.
- */
-
-#if defined(__XMK__)
-typedef unsigned int pthread_t;          /* identify a thread */
-#else
-typedef __uint32_t pthread_t;            /* identify a thread */
-#endif
-
-/* P1003.1c/D10, p. 118-119 */
-#define PTHREAD_SCOPE_PROCESS 0
-#define PTHREAD_SCOPE_SYSTEM  1
-
-/* P1003.1c/D10, p. 111 */
-#define PTHREAD_INHERIT_SCHED  1      /* scheduling policy and associated */
-                                      /*   attributes are inherited from */
-                                      /*   the calling thread. */
-#define PTHREAD_EXPLICIT_SCHED 2      /* set from provided attribute object */
-
-/* P1003.1c/D10, p. 141 */
-#define PTHREAD_CREATE_DETACHED 0
-#define PTHREAD_CREATE_JOINABLE  1
-
-#if defined(__rtems__)
-  #include 
-#endif
-
-#if defined(__XMK__)
-typedef struct pthread_attr_s {
-  int contentionscope;
-  struct sched_param schedparam;
-  int  detachstate;
-  void *stackaddr;
-  size_t stacksize;
-} pthread_attr_t;
-
-#define PTHREAD_STACK_MIN       200
-
-#else /* !defined(__XMK__) */
-typedef struct {
-  int is_initialized;
-  void *stackaddr;
-  int stacksize;
-  int contentionscope;
-  int inheritsched;
-  int schedpolicy;
-  struct sched_param schedparam;
-#if defined(__rtems__)
-  size_t guardsize;
-#endif
-
-  /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute.  */
-#if defined(_POSIX_THREAD_CPUTIME)
-  int  cputime_clock_allowed;  /* see time.h */
-#endif
-  int  detachstate;
-#if defined(__rtems__)
-  size_t affinitysetsize;
-  cpu_set_t *affinityset;
-  cpu_set_t affinitysetpreallocated;
-#endif
-} pthread_attr_t;
-
-#endif /* !defined(__XMK__) */
-
-#if defined(_POSIX_THREAD_PROCESS_SHARED)
-/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared.  */
-
-#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */
-#define PTHREAD_PROCESS_SHARED  1 /* visible too all processes with access to */
-                                  /*   the memory where the resource is */
-                                  /*   located */
-#endif
-
-#if defined(_POSIX_THREAD_PRIO_PROTECT)
-/* Mutexes */
-
-/* Values for blocking protocol. */
-
-#define PTHREAD_PRIO_NONE    0
-#define PTHREAD_PRIO_INHERIT 1
-#define PTHREAD_PRIO_PROTECT 2
-#endif
-
-#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
-
-/* Values for mutex type */
-
-/* The following defines are part of the X/Open System Interface (XSI). */
-
-/*
- * This type of mutex does not detect deadlock. A thread attempting to
- * relock this mutex without first unlocking it shall deadlock. Attempting
- * to unlock a mutex locked by a different thread results in undefined
- * behavior.  Attempting to unlock an unlocked mutex results in undefined
- * behavior.
- */
-#define PTHREAD_MUTEX_NORMAL     0
-
-/*
- * A thread attempting to relock this mutex without first unlocking
- * it shall succeed in locking the mutex.  The relocking deadlock which
- * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with
- * this type of mutex.  Multiple locks of this mutex shall require the
- * same number of unlocks to release the mutex before another thread can
- * acquire the mutex. A thread attempting to unlock a mutex which another
- * thread has locked shall return with an error.  A thread attempting to
- * unlock an unlocked mutex shall return with an error.
- */
-#define PTHREAD_MUTEX_RECURSIVE  1
-
-/* 
- * This type of mutex provides error checking. A thread attempting
- * to relock this mutex without first unlocking it shall return with an
- * error. A thread attempting to unlock a mutex which another thread has
- * locked shall return with an error. A thread attempting to unlock an
- * unlocked mutex shall return with an error.
- */
-#define PTHREAD_MUTEX_ERRORCHECK 2
-
-/*
- * Attempting to recursively lock a mutex of this type results
- * in undefined behavior. Attempting to unlock a mutex of this type
- * which was not locked by the calling thread results in undefined
- * behavior. Attempting to unlock a mutex of this type which is not locked
- * results in undefined behavior. An implementation may map this mutex to
- * one of the other mutex types.
- */
-#define PTHREAD_MUTEX_DEFAULT    3
-
-#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */
-
-#if defined(__XMK__)
-typedef unsigned int pthread_mutex_t;    /* identify a mutex */
-
-typedef struct {
-  int type;
-} pthread_mutexattr_t;
-
-#else /* !defined(__XMK__) */
-typedef __uint32_t pthread_mutex_t;      /* identify a mutex */
-
-typedef struct {
-  int   is_initialized;
-#if defined(_POSIX_THREAD_PROCESS_SHARED)
-  int   process_shared;  /* allow mutex to be shared amongst processes */
-#endif
-#if defined(_POSIX_THREAD_PRIO_PROTECT)
-  int   prio_ceiling;
-  int   protocol;
-#endif
-#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
-  int type;
-#endif
-  int   recursive;
-} pthread_mutexattr_t;
-#endif /* !defined(__XMK__) */
-
-/* Condition Variables */
-
-typedef __uint32_t pthread_cond_t;       /* identify a condition variable */
-
-typedef struct {
-  int   is_initialized;
-#if defined(_POSIX_THREAD_PROCESS_SHARED)
-  int   process_shared;       /* allow this to be shared amongst processes */
-#endif
-} pthread_condattr_t;         /* a condition attribute object */
-
-/* Keys */
-
-typedef __uint32_t pthread_key_t;        /* thread-specific data keys */
-
-typedef struct {
-  int   is_initialized;  /* is this structure initialized? */
-  int   init_executed;   /* has the initialization routine been run? */
-} pthread_once_t;       /* dynamic package initialization */
-#else
-#if defined (__CYGWIN__)
-#include 
-#endif
-#endif /* defined(_POSIX_THREADS) */
-
-/* POSIX Barrier Types */
-
-#if defined(_POSIX_BARRIERS)
-typedef __uint32_t pthread_barrier_t;        /* POSIX Barrier Object */
-typedef struct {
-  int   is_initialized;  /* is this structure initialized? */
-#if defined(_POSIX_THREAD_PROCESS_SHARED)
-  int   process_shared;       /* allow this to be shared amongst processes */
-#endif
-} pthread_barrierattr_t;
-#endif /* defined(_POSIX_BARRIERS) */
-
-/* POSIX Spin Lock Types */
-
-#if !defined (__CYGWIN__)
-#if defined(_POSIX_SPIN_LOCKS)
-typedef __uint32_t pthread_spinlock_t;        /* POSIX Spin Lock Object */
-#endif /* defined(_POSIX_SPIN_LOCKS) */
-
-/* POSIX Reader/Writer Lock Types */
-
-#if defined(_POSIX_READER_WRITER_LOCKS)
-typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
-typedef struct {
-  int   is_initialized;       /* is this structure initialized? */
-#if defined(_POSIX_THREAD_PROCESS_SHARED)
-  int   process_shared;       /* allow this to be shared amongst processes */
-#endif
-} pthread_rwlockattr_t;
-#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
-#endif /* __CYGWIN__ */
+#include 
+#include 
 
 #endif  /* !__need_inttypes */
 
diff --git a/libc/xtensa-lx106-elf/include/sys/unistd.h b/libc/xtensa-lx106-elf/include/sys/unistd.h
index a741383..75f8a51 100644
--- a/libc/xtensa-lx106-elf/include/sys/unistd.h
+++ b/libc/xtensa-lx106-elf/include/sys/unistd.h
@@ -24,72 +24,89 @@ int     _EXFUN(chmod, (const char *__path, mode_t __mode ));
 #if !defined(__INSIDE_CYGWIN__)
 int     _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group ));
 #endif
-#if defined(__CYGWIN__) || defined(__rtems__)
+#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112)
 int     _EXFUN(chroot, (const char *__path ));
 #endif
 int     _EXFUN(close, (int __fildes ));
-#if defined(__CYGWIN__)
+#if __POSIX_VISIBLE >= 199209
 size_t	_EXFUN(confstr, (int __name, char *__buf, size_t __len));
 #endif
+#if __XSI_VISIBLE
+char *  _EXFUN(crypt, (const char *__key, const char *__salt));
+#endif
+#if __XSI_VISIBLE && __XSI_VISIBLE < 700
 char *  _EXFUN(ctermid, (char *__s ));
+#endif
+#if __XSI_VISIBLE && __XSI_VISIBLE < 600
 char *  _EXFUN(cuserid, (char *__s ));
-#if defined(__CYGWIN__)
+#endif
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 int	_EXFUN(daemon, (int nochdir, int noclose));
 #endif
 int     _EXFUN(dup, (int __fildes ));
 int     _EXFUN(dup2, (int __fildes, int __fildes2 ));
-#if defined(__CYGWIN__)
+#if __GNU_VISIBLE
 int     _EXFUN(dup3, (int __fildes, int __fildes2, int flags));
 int	_EXFUN(eaccess, (const char *__path, int __mode));
+#endif
+#if __XSI_VISIBLE
+void	_EXFUN(encrypt, (char *__block, int __edflag));
+#endif
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 void	_EXFUN(endusershell, (void));
+#endif
+#if __GNU_VISIBLE
 int	_EXFUN(euidaccess, (const char *__path, int __mode));
 #endif
 int     _EXFUN(execl, (const char *__path, const char *, ... ));
 int     _EXFUN(execle, (const char *__path, const char *, ... ));
 int     _EXFUN(execlp, (const char *__file, const char *, ... ));
-#if defined(__CYGWIN__)
+#if __MISC_VISIBLE
 int     _EXFUN(execlpe, (const char *__file, const char *, ... ));
 #endif
 int     _EXFUN(execv, (const char *__path, char * const __argv[] ));
 int     _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 int     _EXFUN(execvp, (const char *__file, char * const __argv[] ));
-#if defined(__CYGWIN__)
+#if __GNU_VISIBLE
 int     _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] ));
 #endif
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
+#if __ATFILE_VISIBLE
 int	_EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags));
 #endif
-#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4
 int     _EXFUN(fchdir, (int __fildes));
 #endif
 int     _EXFUN(fchmod, (int __fildes, mode_t __mode ));
 #if !defined(__INSIDE_CYGWIN__)
 int     _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group ));
 #endif
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
+#if __ATFILE_VISIBLE
 int	_EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags));
 #endif
-#if defined(__CYGWIN__)
+#if __POSIX_VISIBLE >= 200809
 int	_EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] ));
 #endif
 pid_t   _EXFUN(fork, (void ));
 long    _EXFUN(fpathconf, (int __fd, int __name ));
 int     _EXFUN(fsync, (int __fd));
 int     _EXFUN(fdatasync, (int __fd));
-#if defined(__CYGWIN__)
+#if __GNU_VISIBLE
 char *  _EXFUN(get_current_dir_name, (void));
 #endif
 char *  _EXFUN(getcwd, (char *__buf, size_t __size ));
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 int	_EXFUN(getdomainname ,(char *__name, size_t __len));
 #endif
+#if __BSD_VISIBLE
+int     _EXFUN(getentropy, (void *, size_t));
+#endif
 #if !defined(__INSIDE_CYGWIN__)
 gid_t   _EXFUN(getegid, (void ));
 uid_t   _EXFUN(geteuid, (void ));
 gid_t   _EXFUN(getgid, (void ));
 #endif
 int     _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] ));
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4
 long    _EXFUN(gethostid, (void));
 #endif
 char *  _EXFUN(getlogin, (void ));
@@ -98,37 +115,44 @@ int _EXFUN(getlogin_r, (char *name, size_t namesize) );
 #endif
 char *  _EXFUN(getpass, (const char *__prompt));
 int	_EXFUN(getpagesize, (void));
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE
 int    _EXFUN(getpeereid, (int, uid_t *, gid_t *));
 #endif
 pid_t   _EXFUN(getpgid, (pid_t));
 pid_t   _EXFUN(getpgrp, (void ));
 pid_t   _EXFUN(getpid, (void ));
 pid_t   _EXFUN(getppid, (void ));
-#if defined(__CYGWIN__) || defined(__rtems__)
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4
 pid_t   _EXFUN(getsid, (pid_t));
 #endif
 #if !defined(__INSIDE_CYGWIN__)
 uid_t   _EXFUN(getuid, (void ));
 #endif
-#ifdef __CYGWIN__
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 char *	_EXFUN(getusershell, (void));
+#endif
+#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809)
 char *  _EXFUN(getwd, (char *__buf ));
+#endif
+#if __BSD_VISIBLE
 int	_EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser));
 #endif
 int     _EXFUN(isatty, (int __fildes ));
+#if __BSD_VISIBLE
+int        _EXFUN(issetugid, (void));
+#endif
 #if !defined(__INSIDE_CYGWIN__)
 int     _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group ));
 #endif
 int     _EXFUN(link, (const char *__path1, const char *__path2 ));
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
+#if __ATFILE_VISIBLE
 int     _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags ));
 #endif
 int	_EXFUN(nice, (int __nice_value ));
 #if !defined(__INSIDE_CYGWIN__)
 off_t   _EXFUN(lseek, (int __fildes, off_t __offset, int __whence ));
 #endif
-#if defined(__SPU__) || defined(__CYGWIN__)
+#if __MISC_VISIBLE || __XSI_VISIBLE >= 4
 #define F_ULOCK	0
 #define F_LOCK	1
 #define F_TLOCK	2
@@ -137,41 +161,41 @@ int     _EXFUN(lockf, (int __fd, int __cmd, off_t __len));
 #endif
 long    _EXFUN(pathconf, (const char *__path, int __name ));
 int     _EXFUN(pause, (void ));
-#ifdef __CYGWIN__
+#if __POSIX_VISIBLE >= 199506
 int	_EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void)));
 #endif
 int     _EXFUN(pipe, (int __fildes[2] ));
-#ifdef __CYGWIN__
+#if __GNU_VISIBLE
 int     _EXFUN(pipe2, (int __fildes[2], int flags));
 #endif
 ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset));
 ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset));
 _READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte ));
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE
 int	_EXFUN(rresvport, (int *__alport));
 int	_EXFUN(revoke, (char *__path));
 #endif
 int     _EXFUN(rmdir, (const char *__path ));
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE
 int	_EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser));
 #endif
 void *  _EXFUN(sbrk,  (ptrdiff_t __incr));
 #if !defined(__INSIDE_CYGWIN__)
-#if defined(__CYGWIN__) || defined(__rtems__)
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
 int     _EXFUN(setegid, (gid_t __gid ));
 int     _EXFUN(seteuid, (uid_t __uid ));
 #endif
 int     _EXFUN(setgid, (gid_t __gid ));
 #endif
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE
 int	_EXFUN(setgroups, (int ngroups, const gid_t *grouplist ));
 #endif
-#if __BSD_VISIBLE || (defined(_XOPEN_SOURCE) && __XSI_VISIBLE < 500)
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 int	_EXFUN(sethostname, (const char *, size_t));
 #endif
 int     _EXFUN(setpgid, (pid_t __pid, pid_t __pgid ));
 int     _EXFUN(setpgrp, (void ));
-#if defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
+#if (__BSD_VISIBLE || __XSI_VISIBLE >= 4) && !defined(__INSIDE_CYGWIN__)
 int	_EXFUN(setregid, (gid_t __rgid, gid_t __egid));
 int	_EXFUN(setreuid, (uid_t __ruid, uid_t __euid));
 #endif
@@ -179,21 +203,25 @@ pid_t   _EXFUN(setsid, (void ));
 #if !defined(__INSIDE_CYGWIN__)
 int     _EXFUN(setuid, (uid_t __uid ));
 #endif
-#if defined(__CYGWIN__)
+#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
 void	_EXFUN(setusershell, (void));
 #endif
 unsigned _EXFUN(sleep, (unsigned int __seconds ));
+#if __XSI_VISIBLE
 void    _EXFUN(swab, (const void *__restrict, void *__restrict, ssize_t));
+#endif
 long    _EXFUN(sysconf, (int __name ));
 pid_t   _EXFUN(tcgetpgrp, (int __fildes ));
 int     _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));
 char *  _EXFUN(ttyname, (int __fildes ));
-#if defined(__CYGWIN__) || defined(__rtems__)
-int     _EXFUN(ttyname_r, (int, char *, size_t)); 
-#endif
+int     _EXFUN(ttyname_r, (int, char *, size_t));
 int     _EXFUN(unlink, (const char *__path ));
+#if __XSI_VISIBLE >= 500 && __POSIX_VISIBLE < 200809 || __BSD_VISIBLE
 int 	_EXFUN(usleep, (useconds_t __useconds));
+#endif
+#if __BSD_VISIBLE
 int     _EXFUN(vhangup, (void ));
+#endif
 _READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte ));
 
 #ifdef __CYGWIN__
@@ -207,9 +235,9 @@ int	 getopt(int, char * const [], const char *);
 extern int optreset;			/* getopt(3) external variable */
 #endif
 
-#ifndef        _POSIX_SOURCE
+#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809)
 pid_t   _EXFUN(vfork, (void ));
-#endif /* _POSIX_SOURCE */
+#endif
 
 #ifdef _COMPILING_NEWLIB
 /* Provide prototypes for most of the _ names that are
@@ -230,36 +258,45 @@ _READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nb
 int     _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 #endif
 
-#if defined(__CYGWIN__) || defined(__rtems__) || defined(__aarch64__) || defined (__arm__) || defined(__sh__) || defined(__SPU__)
 #if !defined(__INSIDE_CYGWIN__)
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
 int     _EXFUN(ftruncate, (int __fd, off_t __length));
+#endif
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500
 int     _EXFUN(truncate, (const char *, off_t __length));
 #endif
 #endif
 
-#if defined(__CYGWIN__) || defined(__rtems__)
+#if __BSD_VISIBLE || __POSIX_VISIBLE < 200112
 int	_EXFUN(getdtablesize, (void));
-int	_EXFUN(setdtablesize, (int));
+#endif
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500
 useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval));
+#endif
+
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
 #if !(defined  (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
 /* winsock[2].h defines as __stdcall, and with int as 2nd arg */
  int	_EXFUN(gethostname, (char *__name, size_t __len));
 #endif
-char *	_EXFUN(mktemp, (char *));
 #endif
 
-#if defined(__CYGWIN__) || defined(__SPU__) || defined(__rtems__)
+#if __MISC_VISIBLE
+int	_EXFUN(setdtablesize, (int));
+#endif
+
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 500
 void    _EXFUN(sync, (void));
 #endif
 
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4
 ssize_t _EXFUN(readlink, (const char *__restrict __path,
                           char *__restrict __buf, size_t __buflen));
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
+int     _EXFUN(symlink, (const char *__name1, const char *__name2));
+#endif
+#if __ATFILE_VISIBLE
 ssize_t        _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path,
                             char *__restrict __buf, size_t __buflen));
-#endif
-int     _EXFUN(symlink, (const char *__name1, const char *__name2));
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 int	_EXFUN(symlinkat, (const char *, int, const char *));
 int	_EXFUN(unlinkat, (int, const char *, int));
 #endif
@@ -422,6 +459,22 @@ int	_EXFUN(unlinkat, (int, const char *, int));
 #define _SC_THREAD_ROBUST_PRIO_INHERIT  122
 #define _SC_THREAD_ROBUST_PRIO_PROTECT  123
 #define _SC_XOPEN_UUCP                  124
+#define _SC_LEVEL1_ICACHE_SIZE          125
+#define _SC_LEVEL1_ICACHE_ASSOC         126
+#define _SC_LEVEL1_ICACHE_LINESIZE      127
+#define _SC_LEVEL1_DCACHE_SIZE          128
+#define _SC_LEVEL1_DCACHE_ASSOC         129
+#define _SC_LEVEL1_DCACHE_LINESIZE      130
+#define _SC_LEVEL2_CACHE_SIZE           131
+#define _SC_LEVEL2_CACHE_ASSOC          132
+#define _SC_LEVEL2_CACHE_LINESIZE       133
+#define _SC_LEVEL3_CACHE_SIZE           134
+#define _SC_LEVEL3_CACHE_ASSOC          135
+#define _SC_LEVEL3_CACHE_LINESIZE       136
+#define _SC_LEVEL4_CACHE_SIZE           137
+#define _SC_LEVEL4_CACHE_ASSOC          138
+#define _SC_LEVEL4_CACHE_LINESIZE       139
+#define _SC_POSIX_26_VERSION            140
 
 /*
  *  pathconf values per IEEE Std 1003.1, 2008 Edition
@@ -453,6 +506,7 @@ int	_EXFUN(unlinkat, (int, const char *, int));
 #define _PC_POSIX_PERMISSIONS            90
 /* Ask for full POSIX permission support including uid/gid settings. */
 #define _PC_POSIX_SECURITY               91
+#define _PC_CASE_INSENSITIVE             92
 #endif
 
 /*
diff --git a/libc/xtensa-lx106-elf/include/sys/wait.h b/libc/xtensa-lx106-elf/include/sys/wait.h
index 73fe372..f17e53f 100644
--- a/libc/xtensa-lx106-elf/include/sys/wait.h
+++ b/libc/xtensa-lx106-elf/include/sys/wait.h
@@ -11,7 +11,7 @@ extern "C" {
 #define WUNTRACED 2
 
 /* A status looks like:
-      <2 bytes info> <2 bytes code>
+      <1 byte info> <1 byte code>
 
        == 0, child has exited, info is the exit value
        == 1..7e, child has exited, info is the signal number.
diff --git a/libc/xtensa-lx106-elf/include/tar.h b/libc/xtensa-lx106-elf/include/tar.h
index 07b06dd..36437fc 100644
--- a/libc/xtensa-lx106-elf/include/tar.h
+++ b/libc/xtensa-lx106-elf/include/tar.h
@@ -5,6 +5,8 @@
 #ifndef _TAR_H
 #define _TAR_H
 
+#include 
+
 /* General definitions */
 #define TMAGIC 		"ustar" /* ustar plus null byte. */
 #define TMAGLEN 	6 	/* Length of the above. */
@@ -25,7 +27,9 @@
 /* Mode field bit definitions (octal) */
 #define	TSUID		04000	/* Set UID on execution. */
 #define	TSGID		02000	/* Set GID on execution. */
+#if __XSI_VISIBLE || __POSIX_VISIBLE < 200112
 #define	TSVTX		01000	/* On directories, restricted deletion flag. */
+#endif
 #define	TUREAD		00400	/* Read by owner. */
 #define	TUWRITE		00200	/* Write by owner. */
 #define	TUEXEC		00100	/* Execute/search by owner. */
diff --git a/libc/xtensa-lx106-elf/include/tgmath.h b/libc/xtensa-lx106-elf/include/tgmath.h
index f9c8311..97dc50e 100644
--- a/libc/xtensa-lx106-elf/include/tgmath.h
+++ b/libc/xtensa-lx106-elf/include/tgmath.h
@@ -79,7 +79,7 @@
 	 __tg_type3(__e1, __e2, __e3, long double _Complex) ||		\
 	 __tg_type3(__e1, __e2, __e3, __typeof__(_Complex_I)))
 
-#ifdef _LDBL_EQ_DBL
+#if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__)
 #define	__tg_impl_simple(x, y, z, fn, fnf, fnl, ...)			\
 	__builtin_choose_expr(__tg_type_corr(x, y, z, long double),	\
 	    fnl(__VA_ARGS__), __builtin_choose_expr(			\
@@ -161,9 +161,10 @@
 #define	lround(__x)		__tg_simple(__x, lround)
 #define	nearbyint(__x)		__tg_simple(__x, nearbyint)
 #define	nextafter(__x, __y)	__tg_simple2(__x, __y, nextafter)
-/* not yet implemented even for _LDBL_EQ_DBL platforms
+/* not yet implemented even for _LDBL_EQ_DBL platforms */
+#ifdef __CYGWIN__
 #define	nexttoward(__x, __y)	__tg_simplev(__x, nexttoward, __x, __y)
-*/
+#endif
 #define	remainder(__x, __y)	__tg_simple2(__x, __y, remainder)
 #define	remquo(__x, __y, __z)	__tg_impl_simple(__x, __x, __y, remquo, remquof,	\
 						 remquol, __x, __y, __z)
diff --git a/libc/xtensa-lx106-elf/include/threads.h b/libc/xtensa-lx106-elf/include/threads.h
new file mode 100644
index 0000000..9fb08b0
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/threads.h
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2011 Ed Schouten 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _THREADS_H_
+#define	_THREADS_H_
+
+#include 
+#include 
+
+typedef void (*tss_dtor_t)(void *);
+typedef int (*thrd_start_t)(void *);
+
+enum {
+	mtx_plain = 0x1,
+	mtx_recursive = 0x2,
+	mtx_timed = 0x4
+};
+
+enum {
+	thrd_busy = 1,
+	thrd_error = 2,
+	thrd_nomem = 3,
+	thrd_success = 4,
+	thrd_timedout = 5
+};
+
+#if !defined(__cplusplus) || __cplusplus < 201103L
+#define	thread_local		_Thread_local
+#endif
+
+__BEGIN_DECLS
+void	call_once(once_flag *, void (*)(void));
+int	cnd_broadcast(cnd_t *);
+void	cnd_destroy(cnd_t *);
+int	cnd_init(cnd_t *);
+int	cnd_signal(cnd_t *);
+int	cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict __mtx,
+    const struct timespec *__restrict)
+    __requires_exclusive(*__mtx);
+int	cnd_wait(cnd_t *, mtx_t *__mtx)
+    __requires_exclusive(*__mtx);
+void	mtx_destroy(mtx_t *__mtx)
+    __requires_unlocked(*__mtx);
+int	mtx_init(mtx_t *__mtx, int)
+    __requires_unlocked(*__mtx);
+int	mtx_lock(mtx_t *__mtx)
+    __locks_exclusive(*__mtx);
+int	mtx_timedlock(mtx_t *__restrict __mtx,
+    const struct timespec *__restrict)
+    __trylocks_exclusive(thrd_success, *__mtx);
+int	mtx_trylock(mtx_t *__mtx)
+    __trylocks_exclusive(thrd_success, *__mtx);
+int	mtx_unlock(mtx_t *__mtx)
+    __unlocks(*__mtx);
+int	thrd_create(thrd_t *, thrd_start_t, void *);
+thrd_t	thrd_current(void);
+int	thrd_detach(thrd_t);
+int	thrd_equal(thrd_t, thrd_t);
+_Noreturn void
+	thrd_exit(int);
+int	thrd_join(thrd_t, int *);
+int	thrd_sleep(const struct timespec *, struct timespec *);
+void	thrd_yield(void);
+int	tss_create(tss_t *, tss_dtor_t);
+void	tss_delete(tss_t);
+void *	tss_get(tss_t);
+int	tss_set(tss_t, void *);
+__END_DECLS
+
+#endif /* !_THREADS_H_ */
diff --git a/libc/xtensa-lx106-elf/include/time.h b/libc/xtensa-lx106-elf/include/time.h
index d7b6612..8806b98 100644
--- a/libc/xtensa-lx106-elf/include/time.h
+++ b/libc/xtensa-lx106-elf/include/time.h
@@ -8,6 +8,7 @@
 #define _TIME_H_
 
 #include "_ansi.h"
+#include 
 #include 
 
 #define __need_size_t
@@ -25,6 +26,11 @@
 #define CLK_TCK CLOCKS_PER_SEC
 
 #include 
+#include 
+
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
 
 _BEGIN_STD_C
 
@@ -61,6 +67,12 @@ size_t	   _EXFUN(strftime, (char *__restrict _s,
 			     size_t _maxsize, const char *__restrict _fmt,
 			     const struct tm *__restrict _t));
 
+#if __POSIX_VISIBLE >= 200809
+extern size_t strftime_l (char *__restrict _s, size_t _maxsize,
+			  const char *__restrict _fmt,
+			  const struct tm *__restrict _t, locale_t _l);
+#endif
+
 char	  *_EXFUN(asctime_r,	(const struct tm *__restrict,
 				 char *__restrict));
 char	  *_EXFUN(ctime_r,	(const time_t *, char *));
@@ -75,11 +87,19 @@ _END_STD_C
 extern "C" {
 #endif
 
-#ifndef __STRICT_ANSI__
+#if __XSI_VISIBLE
 char      *_EXFUN(strptime,     (const char *__restrict,
 				 const char *__restrict,
 				 struct tm *__restrict));
+#endif
+#if __GNU_VISIBLE
+char *strptime_l (const char *__restrict, const char *__restrict,
+		  struct tm *__restrict, locale_t);
+#endif
+
+#if __POSIX_VISIBLE
 _VOID      _EXFUN(tzset,	(_VOID));
+#endif
 _VOID      _EXFUN(_tzset_r,	(struct _reent *));
 
 typedef struct __tzrule_struct
@@ -105,6 +125,7 @@ __tzinfo_type *_EXFUN (__gettzinfo, (_VOID));
 /* getdate functions */
 
 #ifdef HAVE_GETDATE
+#if __XSI_VISIBLE >= 4
 #ifndef _REENT_ONLY
 #define getdate_err (*__getdate_err())
 int *_EXFUN(__getdate_err,(_VOID));
@@ -120,21 +141,27 @@ struct tm *	_EXFUN(getdate, (const char *));
      7  there is no line in the template that matches the input,
      8  invalid input specification  */
 #endif /* !_REENT_ONLY */
+#endif /* __XSI_VISIBLE >= 4 */
 
+#if __GNU_VISIBLE
 /* getdate_r returns the error code as above */
 int		_EXFUN(getdate_r, (const char *, struct tm *));
+#endif /* __GNU_VISIBLE */
 #endif /* HAVE_GETDATE */
 
 /* defines for the opengroup specifications Derived from Issue 1 of the SVID.  */
+#if __SVID_VISIBLE || __XSI_VISIBLE
 extern __IMPORT long _timezone;
 extern __IMPORT int _daylight;
+#endif
+#if __POSIX_VISIBLE
 extern __IMPORT char *_tzname[2];
 
 /* POSIX defines the external tzname being defined in time.h */
 #ifndef tzname
 #define tzname _tzname
 #endif
-#endif /* !__STRICT_ANSI__ */
+#endif /* __POSIX_VISIBLE */
 
 #ifdef __cplusplus
 }
diff --git a/libc/xtensa-lx106-elf/include/wchar.h b/libc/xtensa-lx106-elf/include/wchar.h
index 810a6c0..6b4eff9 100644
--- a/libc/xtensa-lx106-elf/include/wchar.h
+++ b/libc/xtensa-lx106-elf/include/wchar.h
@@ -11,15 +11,32 @@
 #define __need_NULL
 #include 
 
-#define __need___va_list
-#include 
-
 /* For _mbstate_t definition. */
 #include 
 #include 
 /* For __STDC_ISO_10646__ */
 #include 
 
+/* typedef only __gnuc_va_list, used throughout the header */
+#define __need___va_list
+#include 
+
+/* typedef va_list only when required */
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
+#ifdef __GNUC__
+#ifndef _VA_LIST_DEFINED
+typedef __gnuc_va_list va_list;
+#define _VA_LIST_DEFINED
+#endif
+#else /* !__GNUC__ */
+#include 
+#endif
+#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
+
+#if __XSI_VISIBLE /* && __XSI_VISIBLE < 800 */ && !__GNU_VISIBLE
+#include 
+#endif
+
 #ifndef WEOF
 # define WEOF ((wint_t)-1)
 #endif
@@ -46,10 +63,19 @@
 #endif
 #endif
 
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
+
 _BEGIN_STD_C
 
+#if __POSIX_VISIBLE >= 200809 || _XSI_VISIBLE
 /* As in stdio.h,  defines __FILE. */
+#if !defined(__FILE_defined)
 typedef __FILE FILE;
+# define __FILE_defined
+#endif
+#endif
 
 /* As required by POSIX.1-2008, declare tm as incomplete type.
    The actual definition is in time.h. */
@@ -68,8 +94,10 @@ size_t	_EXFUN(mbrtowc, (wchar_t *__restrict, const char *__restrict, size_t,
 size_t	_EXFUN(_mbrtowc_r, (struct _reent *, wchar_t * , const char * , 
 			size_t, mbstate_t *));
 int	_EXFUN(mbsinit, (const mbstate_t *));
+#if __POSIX_VISIBLE >= 200809
 size_t	_EXFUN(mbsnrtowcs, (wchar_t *__restrict, const char **__restrict,
 				size_t, size_t, mbstate_t *__restrict));
+#endif
 size_t	_EXFUN(_mbsnrtowcs_r, (struct _reent *, wchar_t * , const char ** ,
 			size_t, size_t, mbstate_t *));
 size_t	_EXFUN(mbsrtowcs, (wchar_t *__restrict, const char **__restrict, size_t,
@@ -77,39 +105,53 @@ size_t	_EXFUN(mbsrtowcs, (wchar_t *__restrict, const char **__restrict, size_t,
 size_t	_EXFUN(_mbsrtowcs_r, (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *));
 size_t	_EXFUN(wcrtomb, (char *__restrict, wchar_t, mbstate_t *__restrict));
 size_t	_EXFUN(_wcrtomb_r, (struct _reent *, char * , wchar_t, mbstate_t *));
+#if __POSIX_VISIBLE >= 200809
 size_t	_EXFUN(wcsnrtombs, (char *__restrict, const wchar_t **__restrict,
 				size_t, size_t, mbstate_t *__restrict));
+#endif
 size_t	_EXFUN(_wcsnrtombs_r, (struct _reent *, char * , const wchar_t ** , 
 			size_t, size_t, mbstate_t *));
 size_t	_EXFUN(wcsrtombs, (char *__restrict, const wchar_t **__restrict,
 				size_t, mbstate_t *__restrict));
 size_t	_EXFUN(_wcsrtombs_r, (struct _reent *, char * , const wchar_t ** , 
 			size_t, mbstate_t *));
+#if __POSIX_VISIBLE >= 200809
 int	_EXFUN(wcscasecmp, (const wchar_t *, const wchar_t *));
+#endif
 wchar_t	*_EXFUN(wcscat, (wchar_t *__restrict, const wchar_t *__restrict));
 wchar_t	*_EXFUN(wcschr, (const wchar_t *, wchar_t));
 int	_EXFUN(wcscmp, (const wchar_t *, const wchar_t *));
 int	_EXFUN(wcscoll, (const wchar_t *, const wchar_t *));
 wchar_t	*_EXFUN(wcscpy, (wchar_t *__restrict, const wchar_t *__restrict));
+#if __POSIX_VISIBLE >= 200809
 wchar_t	*_EXFUN(wcpcpy, (wchar_t *__restrict,
 				 const wchar_t *__restrict));
 wchar_t	*_EXFUN(wcsdup, (const wchar_t *));
+#endif
 wchar_t	*_EXFUN(_wcsdup_r, (struct _reent *, const wchar_t * ));
 size_t	_EXFUN(wcscspn, (const wchar_t *, const wchar_t *));
 size_t  _EXFUN(wcsftime, (wchar_t *__restrict, size_t,
 				const wchar_t *__restrict, const struct tm *__restrict));
+#if __GNU_VISIBLE
+size_t  wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict,
+		    const struct tm *__restrict, locale_t);
+#endif
 size_t	_EXFUN(wcslcat, (wchar_t *, const wchar_t *, size_t));
 size_t	_EXFUN(wcslcpy, (wchar_t *, const wchar_t *, size_t));
 size_t	_EXFUN(wcslen, (const wchar_t *));
+#if __POSIX_VISIBLE >= 200809
 int	_EXFUN(wcsncasecmp, (const wchar_t *, const wchar_t *, size_t));
+#endif
 wchar_t	*_EXFUN(wcsncat, (wchar_t *__restrict,
 				 const wchar_t *__restrict, size_t));
 int	_EXFUN(wcsncmp, (const wchar_t *, const wchar_t *, size_t));
 wchar_t	*_EXFUN(wcsncpy, (wchar_t *__restrict,
 				 const wchar_t *__restrict, size_t));
+#if __POSIX_VISIBLE >= 200809
 wchar_t	*_EXFUN(wcpncpy, (wchar_t *__restrict,
 				 const wchar_t *__restrict, size_t));
 size_t	_EXFUN(wcsnlen, (const wchar_t *, size_t));
+#endif
 wchar_t	*_EXFUN(wcspbrk, (const wchar_t *, const wchar_t *));
 wchar_t	*_EXFUN(wcsrchr, (const wchar_t *, wchar_t));
 size_t	_EXFUN(wcsspn, (const wchar_t *, const wchar_t *));
@@ -119,15 +161,29 @@ wchar_t	*_EXFUN(wcstok, (wchar_t *__restrict, const wchar_t *__restrict,
 				 wchar_t **__restrict));
 double _EXFUN(wcstod, (const wchar_t *__restrict, wchar_t **__restrict));
 double _EXFUN(_wcstod_r, (struct _reent *, const wchar_t *, wchar_t **));
+#if __ISO_C_VISIBLE >= 1999
 float _EXFUN(wcstof, (const wchar_t *__restrict, wchar_t **__restrict));
+#endif
 float _EXFUN(_wcstof_r, (struct _reent *, const wchar_t *, wchar_t **));
 #ifdef _LDBL_EQ_DBL
 long double _EXFUN(wcstold, (const wchar_t *, wchar_t **));
 #endif /* _LDBL_EQ_DBL */
+#if __XSI_VISIBLE
 int	_EXFUN(wcswidth, (const wchar_t *, size_t));
+#endif
 size_t	_EXFUN(wcsxfrm, (wchar_t *__restrict, const wchar_t *__restrict,
 				size_t));
+#if __POSIX_VISIBLE >= 200809
+extern int wcscasecmp_l (const wchar_t *, const wchar_t *, locale_t);
+extern int wcsncasecmp_l (const wchar_t *, const wchar_t *, size_t, locale_t);
+extern int wcscoll_l (const wchar_t *, const wchar_t *, locale_t);
+extern size_t wcsxfrm_l (wchar_t *__restrict, const wchar_t *__restrict, size_t,
+			 locale_t);
+#endif
+
+#if __XSI_VISIBLE
 int	_EXFUN(wcwidth, (const wchar_t));
+#endif
 wchar_t	*_EXFUN(wmemchr, (const wchar_t *, wchar_t, size_t));
 int	_EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t));
 wchar_t	*_EXFUN(wmemcpy, (wchar_t *__restrict, const wchar_t *__restrict,
@@ -136,26 +192,44 @@ wchar_t	*_EXFUN(wmemmove, (wchar_t *, const wchar_t *, size_t));
 wchar_t	*_EXFUN(wmemset, (wchar_t *, wchar_t, size_t));
 
 long    _EXFUN(wcstol, (const wchar_t *__restrict, wchar_t **__restrict, int));
+#if __ISO_C_VISIBLE >= 1999
 long long _EXFUN(wcstoll, (const wchar_t *__restrict, wchar_t **__restrict,
 				  int));
+#endif
 unsigned long _EXFUN(wcstoul, (const wchar_t *__restrict, wchar_t **__restrict,
 					  int));
+#if __ISO_C_VISIBLE >= 1999
 unsigned long long _EXFUN(wcstoull, (const wchar_t *__restrict,
 						   wchar_t **__restrict, int));
+#endif
 long    _EXFUN(_wcstol_r, (struct _reent *, const wchar_t *, wchar_t **, int));
 long long _EXFUN(_wcstoll_r, (struct _reent *, const wchar_t *, wchar_t **, int));
 unsigned long _EXFUN(_wcstoul_r, (struct _reent *, const wchar_t *, wchar_t **, int));
 unsigned long long _EXFUN(_wcstoull_r, (struct _reent *, const wchar_t *, wchar_t **, int));
-/* On platforms where long double equals double.  */
-#ifdef _LDBL_EQ_DBL
+#if __ISO_C_VISIBLE >= 1999
 long double _EXFUN(wcstold, (const wchar_t *, wchar_t **));
-#endif /* _LDBL_EQ_DBL */
+#endif
+
+#if __GNU_VISIBLE
+long wcstol_l (const wchar_t *__restrict, wchar_t **__restrict, int, locale_t);
+long long wcstoll_l (const wchar_t *__restrict, wchar_t **__restrict, int,
+		     locale_t);
+unsigned long wcstoul_l (const wchar_t *__restrict, wchar_t **__restrict, int,
+			 locale_t);
+unsigned long long wcstoull_l (const wchar_t *__restrict, wchar_t **__restrict,
+			       int, locale_t);
+double wcstod_l (const wchar_t *, wchar_t **, locale_t);
+float wcstof_l (const wchar_t *, wchar_t **, locale_t);
+long double wcstold_l (const wchar_t *, wchar_t **, locale_t);
+#endif
 
 wint_t _EXFUN(fgetwc, (__FILE *));
 wchar_t *_EXFUN(fgetws, (wchar_t *__restrict, int, __FILE *__restrict));
 wint_t _EXFUN(fputwc, (wchar_t, __FILE *));
 int _EXFUN(fputws, (const wchar_t *__restrict, __FILE *__restrict));
+#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
 int _EXFUN (fwide, (__FILE *, int));
+#endif
 wint_t _EXFUN (getwc, (__FILE *));
 wint_t _EXFUN (getwchar, (void));
 wint_t _EXFUN(putwc, (wchar_t, __FILE *));
@@ -192,7 +266,9 @@ wint_t _EXFUN(putwc_unlocked, (wchar_t, __FILE *));
 wint_t _EXFUN(putwchar_unlocked, (wchar_t));
 #endif
 
+#if __POSIX_VISIBLE >= 200809
 __FILE *_EXFUN (open_wmemstream, (wchar_t **, size_t *));
+#endif
 __FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *));
 
 #ifndef __VALIST
@@ -203,6 +279,7 @@ __FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *));
 #endif
 #endif
 
+#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
 int	_EXFUN(fwprintf, (__FILE *__restrict, const wchar_t *__restrict, ...));
 int	_EXFUN(swprintf, (wchar_t *__restrict, size_t,
 			const wchar_t *__restrict, ...));
@@ -212,6 +289,7 @@ int	_EXFUN(vswprintf, (wchar_t *__restrict, size_t,
 			const wchar_t *__restrict, __VALIST));
 int	_EXFUN(vwprintf, (const wchar_t *__restrict, __VALIST));
 int	_EXFUN(wprintf, (const wchar_t *__restrict, ...));
+#endif
 
 int	_EXFUN(_fwprintf_r, (struct _reent *, __FILE *, const wchar_t *, ...));
 int	_EXFUN(_swprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, ...));
@@ -220,6 +298,7 @@ int	_EXFUN(_vswprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, _
 int	_EXFUN(_vwprintf_r, (struct _reent *, const wchar_t *, __VALIST));
 int	_EXFUN(_wprintf_r, (struct _reent *, const wchar_t *, ...));
 
+#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
 int	_EXFUN(fwscanf, (__FILE *__restrict, const wchar_t *__restrict, ...));
 int	_EXFUN(swscanf, (const wchar_t *__restrict,
 			const wchar_t *__restrict, ...));
@@ -229,6 +308,7 @@ int	_EXFUN(vswscanf, (const wchar_t *__restrict, const wchar_t *__restrict,
 			__VALIST));
 int	_EXFUN(vwscanf, (const wchar_t *__restrict, __VALIST));
 int	_EXFUN(wscanf, (const wchar_t *__restrict, ...));
+#endif
 
 int	_EXFUN(_fwscanf_r, (struct _reent *, __FILE *, const wchar_t *, ...));
 int	_EXFUN(_swscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, ...));
diff --git a/libc/xtensa-lx106-elf/include/wctype.h b/libc/xtensa-lx106-elf/include/wctype.h
index c72c9de..3d36d5a 100644
--- a/libc/xtensa-lx106-elf/include/wctype.h
+++ b/libc/xtensa-lx106-elf/include/wctype.h
@@ -7,6 +7,10 @@
 #define __need_wint_t
 #include 
 
+#if __POSIX_VISIBLE >= 200809
+#include 
+#endif
+
 #ifndef WEOF
 # define WEOF ((wint_t)-1)
 #endif
@@ -25,7 +29,9 @@ typedef int wctrans_t;
 
 int	_EXFUN(iswalpha, (wint_t));
 int	_EXFUN(iswalnum, (wint_t));
+#if __ISO_C_VISIBLE >= 1999
 int	_EXFUN(iswblank, (wint_t));
+#endif
 int	_EXFUN(iswcntrl, (wint_t));
 int	_EXFUN(iswctype, (wint_t, wctype_t));
 int	_EXFUN(iswdigit, (wint_t));
@@ -42,6 +48,27 @@ wint_t	_EXFUN(towlower, (wint_t));
 wctrans_t _EXFUN(wctrans, (const char *));
 wctype_t _EXFUN(wctype, (const char *));
 
+#if __POSIX_VISIBLE >= 200809
+extern int	iswalpha_l (wint_t, locale_t);
+extern int	iswalnum_l (wint_t, locale_t);
+extern int	iswblank_l (wint_t, locale_t);
+extern int	iswcntrl_l (wint_t, locale_t);
+extern int	iswctype_l (wint_t, wctype_t, locale_t);
+extern int	iswdigit_l (wint_t, locale_t);
+extern int	iswgraph_l (wint_t, locale_t);
+extern int	iswlower_l (wint_t, locale_t);
+extern int	iswprint_l (wint_t, locale_t);
+extern int	iswpunct_l (wint_t, locale_t);
+extern int	iswspace_l (wint_t, locale_t);
+extern int	iswupper_l (wint_t, locale_t);
+extern int	iswxdigit_l (wint_t, locale_t);
+extern wint_t	towctrans_l (wint_t, wctrans_t, locale_t);
+extern wint_t	towupper_l (wint_t, locale_t);
+extern wint_t	towlower_l (wint_t, locale_t);
+extern wctrans_t wctrans_l (const char *, locale_t);
+extern wctype_t wctype_l (const char *, locale_t);
+#endif
+
 _END_STD_C
 
 #endif /* _WCTYPE_H_ */
diff --git a/libc/xtensa-lx106-elf/include/xlocale.h b/libc/xtensa-lx106-elf/include/xlocale.h
new file mode 100644
index 0000000..f955426
--- /dev/null
+++ b/libc/xtensa-lx106-elf/include/xlocale.h
@@ -0,0 +1,12 @@
+/* Definition of opaque POSIX-1.2008 type locale_t for userspace. */
+
+#ifndef	_XLOCALE_H
+#define _XLOCALE_H
+
+#include 
+#include 
+
+struct __locale_t;
+typedef struct __locale_t *locale_t;
+
+#endif	/* _XLOCALE_H */
diff --git a/libc/xtensa-lx106-elf/lib/crt0.o b/libc/xtensa-lx106-elf/lib/crt0.o
index 7d17e2767c0dec85273c156eaa9cca695e3a85d4..efc11bcfa917d5d57a9be39d237675c8c0b674b6 100644
GIT binary patch
delta 377
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

dKQ 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�CSVg7&ZL2%d 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

QPxM!0rGk$X6G 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

jefSchfTQA*gZzKptQgB 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ðgOk)eG4x17@uDpWxBIqWG24N^xP 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Ⓢ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 z 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

OS#VX@l_GXG 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 z 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�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
  • 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

    2mM;p_W^eFS6^O#0qV7b@lHy%E|3~+vobRQR)e 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

    VuaFajYotNbva+cyvQj!x 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ℜTYZ#(x6;r}3Y5Wgp}E_Z|-K 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

    h;R8_@>rgUrUY! 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 taZiF`h`*118@2DYz5s$bu*LuY literal 5248602 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

    *n&FEazSQ9z4pY}m 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

    tXkbf`BDV-0yb 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

    a+ra0hN}#ZG|Vz< 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 z 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 z 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

    %GJZy?{?*JQ830`kq?_r>1cbFzmX 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�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 KKPWSp%{ViD(3g5PZ!mem<*Iis&uZz^w)_!&< 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%0AqG*N+Y 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

    %(9)lUtTwHAqPyxUZic*eC) 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�vvS$636loc_TOKUX) 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%0A8SW(%Fzgp8L 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ɔ#omenPYJq~oU@(@$tR&pY1c_+`h%v5iMP zEOp$)afRc4jt4p(>UgB%LmeOC_*losJLWs1<^L4NiyWWkn7%~QKi}~O9bfGDD#ssl zyvZ?rjArv@$6s*F?@~?YZpZgI-s0HW-jp-_l9u*K$MjE{{O68;<#?OpmmSk4x3n3x zhmC2U8#Di)F>Br!Ych!fYpRC=S2`Z#n7&R+JIXPAo+dxa@zIWtbCbUYzo^N1 zM=-8)yv#8_EjAtIvo=1<@p+CfbiCd%eW#Z8qmHj}%(raQ;rog)eXYh{bbPntZ#e$8 zGNIFxToWN9n)89I*d0n9_5(1k4!$P zalPZ^j_J#_v}+w-;P^w1>DM)V-mi>#M>GDSV`l6z`8|#|JATmdBaVOM_$Q8k>zKY@ zv;P;zyz7~qzF*@~$IRkm@_ijEX_6`D?vVBm+q)tC!=_K1u`c%l>-DR^m@pl>HjKR; z`k77c`+!>Lvy(Th!uJrGrQzhoxI?PxI+RX46@h2kFw?>;8`5f_Q zBcCk(LgZ7#d^bmDo|yJC%-Es_A}68Q`D6nPY}~iMovHO z`y#(fOdlq4&OhyBIE;~qe2@H(N2WcyDe^<|KOOlo`L{%VQvPj`x5~dO^3UYcHpc$* z+U}41viyf5^BtMCF*{eiC`E__@e+VvYwpjbhrmaI^SNkr}`DTI4gu^a-PL zp?uoCFk^B$N2Wd4BQkxzj8Q}9F8O^U)4rn(jQkP#w1HvTdK@QATaW%^nDI8_BR?mf zxpt7hD1Uln+H12ScM#JCMu)!Dn#g>2u8++3=Vg%xicgPBdu?^(1I6b=rtNk?y1vz6)`$T3e8SP=@w56Mr@G)#A;OX`^k4e6#q`$hV5W7x_-{laaqB{z+uM z!#@}Ke(|p(KQ5--OWwXO{!`>9#GFgyPl~hJVA^qLe|tXi z8}bK4=KKBukr`8pW1>5A#TW!j0Za&<9MRu8II>UUgEgb@mk009bfJE zddG~{wEW!T_#wwXaJ<#=3yv8ZX?BWLzl^&$?&G-HF>OE7ALp1pQj^ohGo~-pn0B2p zZ8_tM9AD{}cADwXHZ!I@W=tE*n0A*jZ7pNkSH`rdj1xUijmsU=UNSjtBxBk|#$z4R z{xLai9%I@$#ljA?He)5b8SU13aH!kG4h zafRc&7Ek*T&lHuHKRQdz*53UdD>{Nnf;VgVgX~GqzM)T2Y3Q-6R^Tarvg<>A z(-nAluK9HZ@(P>d`)jfGnRMz>tiufR`*Tlz9l19B&-_^bGd(2i9RzyejlRw8Uz{$i zn{CINx7OF?g<9+DUV*0x{gtw9ecd$(i*q*zuibd!irby0P+@)DPlv#T`k$_^%i}IP zpjrQM>^rmJ*ZSX1vy2bqn=Y>1QU&@8__$p9N&U+lNZgs)+B43X6kD}*&`jL#)tJ7) zQI?c16lHs3zauF+VnxaS*~{|M%FyiMewttw=5>=0x3^h`QSIR79WHB|MYw$D*>siR zbS~YH>k4w7%*5L_#k{-&Q^XspZO2J$B?!NV%p|iIUob$MrrN|ylg+}TN=k~y3BW?z zEVmK_3rwhp373hU3d%5EYIq(VnLru;5N(=F5igwDwwZYQ1TFoG6%n$U2Y+2#Hd(9x zf6JtW`r#oH_q_GYP`jJ9kl#Coi+-W|ABPT1CoE~LW`}+Kqf>X(H`K;iINp&tI{t+da^zJs6nTj@ z9Cx5lL?P66Yv`?T`n*ab?$Se#cR0o)k)Al7gWPhwy|D^g(F+SU202FlxDwBok3Alj zW-q-lrZS0>Rs3_#s>@-Lk#ExC-b` ziM_pB2s?q{i7}15;4Y9o-sP~zukX#?0AeU21I9ZD-|{-sz!DE@u-7maVy0B zIDXJ6N!BWo{c^r+zcdFdjW8Leg3JTaS=?HMy}jAG?y4lio=g|)@lC-

      GK`eIbQCV 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

      2Z@-RtZHX5XRK;xVH>ro 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

      dKQ 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�CSVg7&ZL2%d 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

      QPxM!0rGk$X6G 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

      jefSchfTQA*gZzKptQgB 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ðgOk)eG4x17@uDpWxBIqWG24N^xP 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Ⓢ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 z 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

      7Pjd2Kr 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 xY7(;~SqVutU( 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

      OS#VX@l_GXG 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 z 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�{sj&8M@ipxHV)yi(A|LX?K>sBN!oHk=L{LC26)aVKqd z&(1cM&MZx~$uz4V!sgS%G~(HZ*A(1p{w}tKt$3BgO4j9PCYSO;fuU{<3m;Y%@Y zYWW+)0u|m-c;-EZTuFPQyy&+zNOiRPdkY$LI?`6~&P9AQmonwTNZY#^N|h;Bnq|&- zyRV&KgkC1~7iEXg(C;ni0qrQKQ9t8GBkW0xb|9(_dyVp5gEjMZc9HH`F*AuRBs_UB z7KkV*d&hz48+*s0Iby0H4?6f<^VEpBCXXrj*_zH)wariY3-{SBa9e$_7A8>f5!w)+Ab#N?) zZwgyE{0csmMD)KpEMI>HM?Uj>hMCtk%pM*lbD}UZDSP(kFgdeb_@Lv&G_abL@C@Y7 zaN$|tYVt1tYuE~1o^e!~f{;4GzD~VeY%h-0tw(9Ny*dXB?&uSlovk{;tFS>F_Tce$-*!H!(S^ z*)dEVFl==|(Xw_*V-+>(uzEsYW8v{L?C%}b&iM5XH|ts^hdPGc6Pg||eZ_GRBZIkB z!cc`yjTm_>k%mvY*y9O|T6A8-)M4yu@agM1B5oGOrUaipmAzrWt-|aF1D+ww8`IC zGuT}i4jFOpAf7+qHXTq=jgaytEb;NfJvF*b-Xghq?irc9qs8#@rbym3;vtV`gvpyF zjC^>|j_g$W#}C40OT8E>+yaHMID$dmJU}F_3!SV3+@=G%Tj^V?GwEZ5V(G)c;pP2Q zZt8-OLGG=WH$jEfsQQ9DMmQ#KnXttXO!(&NV}MBJw^?q(cwrN5a}0wUVR9sL!LyJ@@^Bu%loP1 zQIC<=82w1+4jmRpFnL6g-r*Pqd3JhvVa}{o`IdnGB-*Fi4S1X);C9-gjh~x87)F6m-lMhCmmXDtc zTO7gUW(k`Ih-7|0mfOplB6);E-ni(8e6dSyNHF=L zb=%q`f%9rdT+_(XC!6x@y?Xy=_N>-oprLKb+hQWeb)>F>@U}mrE zHHD|`dMSHMa8@lTky)!~4YUwz6(Rf}7OJP%IJMtj@#$MAPs24*_N<};WNW0#?JBmN zP-$#k6g{!6i^5}H?L3V2``B&tjE5LYm>mYa%P`{&(^D8Pm_FDHKiUL%JXv^bM21gt zc!9%bJG|K8V7H0sS?2iN4hOqU40DC!U*qs=9KOZjFwTu}-|YBzf#U#ahp^@GPhXMD(K` zY}Y{?{2=xk?lK{A13BIk&lYZjg!eBO!hKMOZb6COqi_T1gZC?hyG-(*3dj92GQVA7 z_57zUH(fyqjF6#BcUf#u- zuaqCrc-D;iruf1Q<>1!=;Wnb|cj}-l^`C~ljnL-k&>#XpTI)l5+)XF^6@F&{B7u9-0sHL-L8DbHPQM{Sgp_etyr<= z1sHMBMR-odMHhM@XU`i%XhFqa>1CUWRmVYANtnX8LSL+n{}{NL!FT^6+{iN_iB98${I}w5_Cln zeaq8HZ|qclP5)%PYj~r>mpR<)@T(lY!QopSz8xF~Pj3-6UG8r9u?hd1!-AzSj5{nm z<88w{9}OSj@KFw{{q{hFcsad?mzijUJLbLbG&O?})dMmNdGh) zTsJ(gbzY>y6Mj&C{c}&@`s<&BDVW2`La;8z2*~lCc(!mXT&_g_{F1`WHDOT(&i?wR z_HpY|?=13|+mJ}6hph5B##=&ye^NS>ut!Akd_zy8U)KZHZxVEX5?C9e|w zbAlRjQHdW)|D30K%JqyaztTVF9v?K%>~CoO^NH_As9O4j^-tFCq;FDgCdM3D=Oq1e zzWjF6KYy-p(m&~+rGGxasj6_gLgsG<_tQUL3NK&yW;oTHt6fyoQR&<#T!@Ul_%HgMj-dV|YZPeyh`-W6Drg@$5yC! z&Q(42Pe?2BX)|ZG9=CUT=iDs#(DR75uJq<20NPPK34R8^QH0r{K2{q)Wrc=^JI!>MM1f|chz-v_fc|4E$+|E#~^PXd#QoWNWxAaawN% z-~Z)srYOnuQ>Q}q*w*&t-R>)#i;XwyDcVWUR2|ONkd;dAl=Zfday72yU zo_h+nuXCQ8_OtGJ_miM|p6Lq4%4Lmslx17=`>Af)#ln;`eUp`Qudu}ttavZ{Go%yQ zeH(1fv(mlrSzB6(?#W*GmCSiwr3_Z0dwxRUD$zZEqj0|7Tbb=rnaQhE&O4QlN_5XZ zD-vzQ$mI2(^L$Y9%=R%xfw>m)`>(k@{z=e1xt@`wPrB!fIeVvjR{RcTcu`;Xmp-QN zJD9ysSog%1mv%_(0J`T##NJK!{F#{2J$c_j^Om3GR8?T-fcz)G{dCXm@bZOkgi}qM zf=TzprmDDMA#QE{KjkVckx%ZWyX&5Z_R&3`2H#-&+n?gpSa7eVI1i9duvMsYpIW7nm9yes(x`u=}Av+r2s>G%yc zp6$?XdS{sL45pvp|BTL=B%LY=o7ZH#Yj~r>mpR<)@T(l=Ic;%ob@)JAb6bhdxxeQ) z{~mSDGo*vH=sq8)I_KZQI@>cD$eEpr`@#?4WgI8teDMuV%RXhFI`iDn8 z(EQUhY$%^(_tL*hS`^QyL%{Zwr*2$dbwj>4eQl1deRO;AO@FQbln;iyA~3Y^S3GN; zmAwwix^A;v+HMU1Iw^0%WzGjj(nMbvDh?Wyg7}H$M!TKZES9PvU7w3LcKPjo1A;%G7lA+pk zN!82CUMIxxyeDGehdo!!XN!>>^b`G6g>Rh`zb;(0egn)KLfQxwxOJo;8U7Xhq)#`INC* zcO;Jl4`rkzJ$y`kUf4Olt`N3yuP^z9D`$SgrzR(l%Qc)(cVdj79NBL0wQBjf77M8wmMOPnqY@Wq@6nD4Xe`vh?^Q*%};fk5 zXE9vcz9hYm@6TqNg%4uJAQ^lf-tJ#{qPk=pc#3QRGzy5b>VJuB4*CpnXf&Kzhci*f zVjZd-0n^N&Fen&gKKek|SNusZ4)iIq-R7kA5O*~6+Gi;Nj-LEI#C_@+a;SHAwENm; zo`_}2X-CKUvNJ4Gpc96u7VH^rrfqoWZASni;r<76=p6Jq*GSY*FX>q^BZ=+S+NgCA z){es%gXa}QHB6a^5RtYtCJ5OUCOj`<7(LpOG-m4%VY6XSy=~1lxGu^kD0ApEfg)HJ z;hNyODDz18F$@oG!jKklT};oc$R}N3lg}7}xHPvmup$x#Z1SH2KguT@VaNx#&fTJY z-50A_a_pVj$q`eNt92Zx`(?d=wAJZPbg>S@D;-|%@MecEclc_DuXFfTu*w|zCmmKk zcM99Jc7SX3C;GS!!#lw-?$;cC)Zs!}4#T=`liA`h`;!}AQA=rHG-K(Z2n#oTM_m=qhsaqIuU+WI>jZEIrVt9FPkh}-QLmqA4 z9qu%-Sb!sfKR6NqhQ`6GN3Ry4j zr*bcH41?#!IBhyZ_ekFL@3h2{ap)VM9rAdI36UGfad$jhxG}2OCyHle;XW#cAN`!GaC0q? z&L;W`4&(i5g`=JsS-AVf@cG!Td{7SLyos z-&naY1h6_Um^>nR-v>l8d7M?1N_4L>f3cXfYh)mg@}@3&c@xB#DV~wZld{v^ajXVU z>$*EvOzoaFls#(p+~eYsiJ|RL3r6W`N<`K!vu_)U(;L5Q$hQp7$rX>=JZ$=mPrqV9 z*Kw1k|HoUC=}A(Y*?4^Z{)58zTXJoSTHkln)j8hNzx+3?vs;6wQomDuoeDz1kIrlR zvfAmH#ff|4?M=Q9Tp~ZSH&JJLC5AoKDKq`2Sc$@z?m2;xlvbb1)^xpCvJ!n;Co?%! z)!YL!tv*}vWIDP9S5<+xaoF`+>nbSl{Qm>mcMDnYUsYT4GkE#JDY){sy#F0A)7qIK zNS+E?{%)aipV)T`1(VWu3sZ%*?-p*CNB+endllJDx80xse7A7iBsrmj4iP6E2Y;%Z zb*o#G^l-Yr9$YUm*N1{%k`_Az*!eqr#E>S#%ksnL3#5}iss9CXW*;$BSD18`JX`Tx zhG)Y9{Sh;K6>)Zl&`sj==uH~u>o1*4SkcHlsT|e4zDtAdw<(NnP4CIs%M6uUvBo5s z(TMK@77nD38)8sXzO%0!HkQ9Lo^uS-NETTZiS?i!FB9lbDdYx}aYu8Dj;D zI_mW@=dd5O4Exih+AAmA0q1BP3c!g3_6=Z{>C08HK*X7?L(w@AeN<9U@8T|U(^Er*Z)!zA|wMIIVRn6SHq&B;+4lfI$PR7f&jm2A>~Mszh<*PJ(2sRw~U zW=_{(ap6IHo~0`JxzOI24-b@`+~bpDx$eS%8@ZQ0kSPCXdJNB{xL4m{X)dp=+|%6U z?gNS0M-kcL-9C_*VuH**Y$!V6Y$|ok?bB zD{q}Qh{>(Iacv1C*Amd|~(cs@ne%KFgK zX!~>*Wio4JQ7qanXNYdIsDo$JL><#~5Dz{>QaxEh_)~Q@KJA;Ai6IBKj zlF{yKq5McyEi ze8&(vOb7No9!y2B_&kcHfW@bRwna=B+!mLLYhe%#F6zuP7EGl-0W6tRYVec!%|wlp z`q~U>xgvBNv$2qO!{fk8Cqy}zEvQ-8Y+sYXQBG*k5ufDvl!=8o+u_9ypYQN8hr1oV z)Zr@}zQ*C#IDCu4LFbNXd#B@nz~P+^Kj<(vE-Qy`3R^k+3V!H~_Ws+5VYWNQ_KkwSI6+&lPxaHT^wJ=(R{Gth9+ z;TDI{C@l>2$1uvI;S~;}Od9_-heIF2pNKxz>J@#hg~!jZuQOD4<5Rs1|6bVSROwpS zfg!%R2Ik4d+7B=?u$6(SuHz%7yC(1OM+wuuz_cTlx_}Q8o)K|TnDzyq{+II7 z1*Sh{7j-c85!)pgh2!}Vqj<3P3;sf3Xn%Zr(c7!3|5iRr9lqG%wGInbL`8*C()-xA zU9%6*IRw$BxsPo+psi~BghM$aK7P1q<6d5y+%{+vEXkw1y}WBA?;7!t$Ed~R%@RhQ zjbv^W_JkkAeWG3r6>fpTSRBEG_Rak^;<^wjE4WPuRIAKU?xauZPbq!$KVIH_a=+U# z44xa~wCN08D0#C~UywIU2iKzfmg%rKg2{S?`7feb+tmTIh(|sox+E_=YvneYCV3buj7%Qo@8#Vm zdE5`=36|vT5Vkmi$?1~E^UcU0&vh^FF$sB4Jmk?Q;77ji(Lo%p1-(Q48KyfUAjhZU z*}~0IB|FgqML)uE4eEtax58oiFf!5K5yLQk?^HPIt&#aXB8Jb$P7TmVH~Bau`r-b$ z4vQn0yjQ}u0wS5;kLC9A9+W)7A#YstLmuNmYeRy`QL3De0V0_^&Z3JCjG0G zGxv|W?d4slc0RrotDN?dy_{F3x~CO~vX{@CaeT%0^1CQtC1O^%ZuXrH8M?1*mMQH~ z@yNHgZR0jlH4AlsvQr7lGNLr|kf%e02ms0KjEbMjKGK-0s`;UqxwM*xcP_1cJ*TPy zMU<-zadNdaFNK*eyeph)c+4pJsw~3Wbjs(i)PG@P@XwzR;^yBkSM|;MtGYJ5Mkfe? z>9(2YlBQQx)EfriIK(THSXMVYYnnpH5M= zsp-3Tv9_;~HKc-@FY78NQi&~eF@vW-)V{11DUFe=KykiKM^*AN{qJWJ-au;rF-VnO z*ekE*Q@TSE$LC}plkrRG>%R=IkG1FtE|7~Bth^;1emdHr6=#uRN_ z6&dKVQW(HcwjT^tnW?U91S^@!o+1mDRXomWU?nmO7S)maZ`G2%WH8Iq-`&>``xVP> zYwG+{K;1}q%1}lb4Q+D@1!}<+KPsT5_gV(EpJ~x=r3i!WKs`IZ6)3T1Mu#K@7wAy-|*43*`LP2>a_krncNF9@nK_+I4${ zy}XafQ54U}{22Fmc`ZtOi+ISx)?xCfpB6_j`Gy>C1Vl2w8|C)$&T#T*D<*HdFmXsb z)T2tmrW8g%j`zf~g}YxB;zSD+{RsC#9V&_vrMeJx)yPEOFNR_Kj#oJDmy!AH62s?X ztpZtnrafCez9MXKkTG8#mR8*6_a$L3Z>!|leH#<~kl$Z7xW`++T7LRNk{wU?SC!LG-dz>;)Iq5(B zgZ{%JB04;X08rem(-sbC#ShG?ns0DQtA80zwQmi~!W<-0#d70k!pXESEgE_yuF{^M zUkf`&+tJgrdc|eh zR6<$t%T3xlyH<2;Ub`tQc<9lKZp!}vOHfLmi_DgeWXnkM`bcD&dpZAVbSyM6bR~;T zB9Bo!zE=*bR_I)aQ#Gu?Vv3^>@&Ah8n-83=yf2p<9u}!6QT_Gwc9*Tr^7g3v;kCA? zweP-2q-%>7xs+Fdlr(g%Inb(=pt<)~+TFsGlDholXy@5_p0aix*0^M*1HZ_n0xN`OPV2ENXCAk# z^|%#tjxNrcI(O>q@O&@Qm~>pQscU^tNBf!VPIKOp)7s~svgCOS&s%z0`@%Dqp0;@Y z!X+oQ9yI@yGf$cxb)d0|192w4k*WAaF=)b^kI^wv2i*ZYur+senFq4!zp-Qe%C4Ti zJM_@{;|4xGT9-7HdfKI`H+5?$!>QR0KjB@#t(&IGb`hh?v0-EP1~S~2`jp?_oGn04 zEJwTB1{gh-DHmoAy_?ZsnR2R8jN>5cNM;-8Tk-pLIawXFwIM~tv9%;eL`)rHm;=9F z=a~_69iI8{NhJ?M){jt6u?g6^l4m)7tHX007EJb=je|Et6D&iuC7F-AIEbeIM0X2UrK9P>EKg+Z>#WUOqMx?-5RVwiF^JjG$^ zmGRNp4KtoJOgS5VvBS$8UhgpFY~ibghuQ~MK}z9$UT6;{haxciXJISb8kLFJXV^T$ z@aTxS1+0&N&k*qNh#9UO9Wm``X2ev>lOm=rvoN2yJU`Bfn0B@#;-c^iBAzPDyd>di zf2_L!(~j3fOdY=@V%jBZa0tVFxFX`yg;|3GpEeHd?==OP)S>?m<=Q&9kI*a~l!X!Z z3!>lh;TFoxVPxT2!~nNNkDFBZ*9dbRWjFY7uczrip48JoZ-{3*;RnsuK|L8NTz`8M z@`^f)EPeg$QB4PB_9)Uv84!;2NzD!E(<#tB`ajVUC2Wu~@cCUNdDqJmd8FIqUF6~j zYNjkn9soo#c^l+5jMv9iXs?W6IGG>)p1T>Wn;|PbTjJ!o=ZP(BtwLXzu^tS zH_kPO&V+%&b0UM;zanw}jV#<(#UQP1(c^(Q79bytKrA0W7PdG9t(Ckp0Flh^`*M4E zUzI$iF@+c!~LxN%7ZJuF9CXX}i)Tm9Fz}|tXJW2=h8goxxx#MQc%B*2S+qZVaOwngC(s-6~jcx1k$A2B|TJRU0DjQdCl6;RYg7@b> z*St$@y!w%mZ%LAG=T{FOHobLW<3+i3RafLrKc=mCP4V8lI`m*T@{swV8%UF6r`GPg z_w%hwiVC=FU9xOPRojB;FIli^_*u_6lefCoRkfYROIdBRi&x~dpHuZoH4ijDJaSL_ zIZY-ZkuK5M-mjzFudm9h2T5L=%d4X4ZM%Qf>7R2dYyJB|wSddnW^-eGM zT`pIlHa9ZeB@oPJxzTBdaAr2kH3bJ|vs^>^pJLaNp{8ndBG~1d;b7 z|01)Ik->D^ExID6vl6@hIpU-*f=^KlUnS3u=L>b>T5Yavay6_q*9e*eMZ8kc8hK`? z%ShMfbtEHb`_$)Nd5-+9K)MRgY({Y;Z!4zj10xw7Hi&9EmM|CWkcV0bwCL1>L$VJn z6J6Yis=tx0@7j*xeQkCa>*D)#Dw#TEXjC26RH;XYU# z2Qd(FxoPr`CbNC9O@`-0FiQ?(iY%Eb)mEcfGEWJ`H{-q=EQjS+;4TmL!$SCfS+F8z zHp+~j*&eS9{D9T3g{`~vmKRqcV1e7TrF-_QBv=;*E5X5UU3o{YflQG@-NT;vz#eD|@ByroD_6-9n%M#O z?R~qF>9cH39pI(9uJHaH*D6_2_rt2Cr^s?yj4hk9+IES|a!H3mN5Pqg%|sp6QG`d% z0lop)U&UnEx8!!SS*n+CH1v8UKhkGBz$mv&xu98jH^Znh<-#gy?`EW2rrp;kHI+Su zcDGq#p(qpIL-xd;V4iYXJ%H|K#MSKz)ST=cxl+q+Z(p~0ZKvLm%Q~lQjBoGAVN1at z36V=MJ?)VZQv;_&j6Y9I!f;KVx?rx&V+_nw8~p%VCXclihmVe!nmz-p@H{5LPv-k_ zq#2tNd7TsS2%QbPphri(P z*B$<$!;d=re_)j-^cNjw&+~TBG3x3p%|&n=Jx_HQ4aN9j`Q|zqJ^oVKiXtD5-VfJ9@DaomkkGwM@ zrca>m5uQHayojX|g^eiS(;sw1e$Y@N9xr}R#LdE&MNB_>WyDj2uZ@`c@|uXLw>L-p zY~g>3c)sxM5ibyaYsB=s?}`{T;=K{0PJAe0`s0sAyi6F{AGYUA($N1!uBRj3@?dX< zXT<%54%Go}(*bSJgN=K_bAkBy;l?KK%lMoEGp9A};}Uf$)BcawO?W0YX>W(gzD zMh>45_JkjFf)47=P~jFRjKvWQHedPyBd!Z!obu_bSLW7=NBS6*So*MXczJm_-tQO& z&y8`~bcVJ{US9PSd5mgI9(BOt2qqs^n8O^y;O2hezM_mX*JWgIgBU&^mp3E{eKObO ze%W=e6}C8n$=Bpj1Vl2wUb(%zAF467h=)9hF3AheExC>OUK{Pu$mHE7hL=~XPN!8o zsY(VYrM-(h5;>4Od9_YH-k-Wr)7_G_PyPIYvon|v_J#1Hq+byyt1 zF2Q|Do1h&Yd-TP8NJ1&t1Qg-PpVJ^IT z-s6v7e9E1}KmR{xULs!aB5r&(l^B5isT~KC^|0y1^BTXHJEv-0RdGgfOyQtrnTg(C z-_}x8j&`a)JtC}IK7Yof=~5Tz6~sKJN}-OLa!}j(o7d$Rf95Bztdf`fpED*|bpExU zKX2mpznp(({*~0DcO2XxkDJa*TURt*JiB=Rh-B@ZN4>qM_@BMAdRLO%uP{2Dls~pU z4YE(Fzn^=kNQ*x+PLXb!lnP%wF{bAvzH5+spm|R=aEi!?J~o)U8yfS-yuPYerj@LY z=syj67i^LTojqiovdqvsyr zJ?2g$Xvyx4g;+uvhw8-DB!&@ZG_;rZn4>D&9&>aBr9I}3RA}2{j`GcC-yIMNsZY1@ zA~Ac+O_~HxG;F;bGX-ec2dzocf1s~teZWCjw1bN$_d!^@r*z0~iOMMKQ%u7k2ldQa zr&B*E=jHI~&d?u#5pw2v9G-s+o@<0?(hNiDc|NAk#`7?mk2EmtTUqir4UZXkG|Q=Uf^{yDp z8|>>2Dk}GF2WLaaEwn(^I75;cn2am+_8agTzTie!EaqToMk}rEY+Hhu%xO;NhZBynmoUp%;#?x zhub2q{sUP-DL+<7f@MjiED)M3HmZFMlm0&H#q!pmXp zQXwqK=4O_?P5t|6UHFRjY`6bxQTU*Z+O&(ljG|o&wIEyzzx~t+(<|w);o(1t2VFfO2X!h15N5|TD|_V0p2PfV7_MGCTUbYDxQJ2 zM%=>$&Pw)y{QKJ)ac*q!oYfXeWOFzFAPyY}XZ)okg~xS^&J%Sk(gDE-bB0gH2;l~! z;lf{`19|XQ=@_L0KK(odA3RbA{MYEP>s~Kx;omH5a<&VPkM57@tR@iR(icO>9PDNI z1K}ex&&)C9vY|HjD$rkJjwvVy@p=sO8Os^rK0G?8Nz6GhSTMq$%{WS3T6=p(XD2%~ zhUqB4?)|T#Ox9s@Qw%j2VneMu!v5nrqi-8uFw7%yMoD8%iHA9In1i}UXXL=Arq77D zUT4M~@JZ`AV1;LtvN-aabY_eM|NS~IkN8@h*MJq5Aq1ln!qB>|jQpa`gd@yYov#Bc z3}andDtzR>De{rO9UNuuh?t&)ayR*04@{mWf)$>;f^80M8hnMJXE_e6FoXx&H*rpZ zuP}>rzBuAlI&;9Mm$^LR?K)o-F=@XQEScOBuzeqgJizDvfbCj>`~0p#GjWw3h>KG^e3v^XEc1U!_@M4G0cX*k@-40*s z@DrK4d#9800f%=w{Gh{M2gh>wrm&U6ui)3}PxMC}hHLeBF&yUfVwe`kXECA4JXRQ) z+y~y)wK8mT;lrxFn1-`r_%jqfST*8(#EN6rT@H@nG1(xW_J`faYRa!(7A4kbcK7Pg%nw9HuQBpQp0nBON}*;pq;eZCUtv z4!1eH&|%uPg{Mv$rjIkc%wa|!#$V^~B@S?S|HNLO6KXCjXJN&4_k2y@;HaU+wJWTi0_`H8&m^~^Dk98P(o$;B|HhjFpCpmnE z!wVgLvBOyJOwJ~Uw>o^a!>@9fweJ>}^|FSk=Z0^0_#F;oqO>qr9u0rO;rkqZz~O&) z_$v;7-{BuQ{0oO^M|Q2>Is8Y5rAd~;40o7kl*JwE@Zk<0;qWmIPjz^@MuwGO}D;eU4cE{AtG{2_-w>hPx=zTe@mI{dK1 z-*@;&4r5xj^gr%!ZLZ9(cNlB4g>QBkW3%z+IQ%?^mpB}r`}~O-b=Y%(v6RWd&#>>4 zd2|_{$Bg0s6E-=_sMtD!gB)&*SV>8E4ibh(%!G(F>`5j@%(HKD#0+2Q9|%w1&%1wM z#v><0%s86oBm61CJRiX`gy}25j8zv$e3~$`6!3X&(r@%6%Qi+H;*{Rv^-Dtvdu?-2fQ z#5;tU5g^RRgrWVhHi2iN-ABsB@KT2_c6hDBJl8DzH4fk8@HU6Na$!4se?eXp;sUtvXN8L45q`bug{w<&po-=rA&QM~mU* zy-o7CzsRHhn>^BkJa`c6ZakUu1TkxM3>9vH!dM*S&{oKYk)@Be;L~@88XWhS^q~@1 z`kpWB<#ozYqdI3~e&>qel6-ovU8T?Efcmlf?>bjD#tLmxnH<-628eY@BB6h z`|GweX-r$luFL(he9+cRwqWvoWwHo}WPZJJdwI91lW7r;d|+WRd2bZ9ID%oEJr)qj z{BD!m%ezPNtX?%nKhn8Fhs6<0#_48%(lHF8t9W@omAqbglD<*V4|(_KAdcPphjkM^ zU_zoF&QJFX_ZkhlPZZCHFdPr+pk5f=uW-H{ndts&DE^{w)LSD9_lOuiAFI>=NjLd8 zB>Lh0xekjXm{g1TLqH_+W8CWHZIV2~Ax}jV{E)|U#Z{x^XJS4ko{`Dp?5cV4Jw2Q* z78AYK%9;B|-S+a@)Xt}iXJqo?yL~c|cdV^sU*G9-D*p~%JsDRbW`&DR)-!#0c<#Yg z&O;K?*9kr^FqE<51kxALmlZm!n@}|S4uC3bFq_bmFM>2I;Pv0FX0-#HD(s?F})W zp+sX+V&71fV5Qw0!&&KOeaPZ8Kk<4$3+>~ous;m2`lJX<(y1Oq*1(GUD{_A!MU=sDZ}IW|Sj<$A?6;+ha=-;(Z;<00|% zm2kf=d7lu#iC3|r~XsM z4JnG`3j#x#>%ZST+K~2}|6(}RGK;7E=Gl&-yx;t>F!P1?g;Ncy!L;8zEk+yE@6ai~ zK!0fy&-(27xZ8s-_3s*Wt5mL;}y^#OKbA7HMX2X$9xF$CVnhyNgt=a8iM zbf);q+q;!!;&}f%Ne+$oYODkvgPOpm$`jwINkl7fK zYB6AI2+!d7Fy(n+&+pVLx{8WdTi!lB?hfj6*EQil^_yUK+vnq}!Ryh7Thc`O> zaE!%XVqQV%Nyz;nZWyiV-#x2LqofBVq82TNCyTaP!n`OeTn)sMz1G zU-%Q8(+EGM2e?2<$ZZ4`mPmBIGo2z_ozK04_E2*Um%HmG;CD#CyWl3Z^Y!-y9mDvO zqNZJNB=Vrz+*|)wjJk;keLELV>W%@wdz)ZB$-j*YzvutqxC(LaT_sqbSNz||IXur? zp|Z6^aq_q6uP~-goCc<##}=ktp;O&T*wcZ@i1sx}VMfSf-Ei0e*VgeyM273@-do}~ zj%eSS6lO9N*rZDxqjT-y`a^ighc1MDy`^wmy>eZ*T~{a^pJn0#q@0jl>EGd>2(GOg zRS=#BuCF^?4*dDxV$z5atu`&3wU8@! zD;0&af!RZ=un^ok@}b^|^&gY`}x-Ce!;0^_;t;6tGcmc1sU8k}^Qtf;7#}P#i&oenTYIvT)X?VTl)D|{> zU%2jbl2*7BnAB0}3tNJG$(b+L=!2E&M+=+MV|8v?NEWuH1W1|=<)T-l=jn-*Z(_PL zI%=CA%Rrt?B3GnAbEHpW8yPwx%!P^H1qF<+GrPJ5YF2O0l2OG>uemODWfdO^@NYBOR}7 zKiq_NQ`jEL;D=4)iSw59Clc_}rYVTNGl>3$%JL_2HoR8>Ruw*UQGv>@Ono?%`iS<8 zN#P@*&_}dyNecG>YwOhKB!!QjAzWYgE|T^!aKni9Wh;`x$M2QA#=35C3ilFzY#leY z@JVjdgt}kA|1`C#SjWUv;WIDOHCyU^TRwjU9`Ga18)Bp*V44k06lP-hN- zuhOIhLzp}Ih6&CX=I!ztOOG@>{|bU%tC-~0iG*b$?(|tHrhxikkc=i`w60Y6S z)ImblgkY1Ku13Jx;Am}HgwML*nA^mdr?5Ua+L}(s(H$ITB(>b^JC(4I>6&ERR{0Lk z!x^5ZFvinsgj*}d2Lk&=Vh_*r3>i3*Vyds zuyLamjd#Mv6N3C4IyE_YTqcSr?rRJaqP<2kPaa2{Fk7VBETX(KvcVUwZMt1mVeWr# z<~A}@$iB}$^m%7R_L)IVGXs3bVA}3+x_UMo+r6P{{joirYo=v;pdY(->-5$+$9An< zF-?QzX)Bj6-`ykZK|d{iR$*_Gk?GhBzr*a#+V16RvTr7ozMr5r(X**jUsVuaHz1Uo zpxE&Z8r2pxhj52-b-cNvMv=Y0l6{V_y|bsgeO1T$&b3{MW_@0&e@$F;&YG(g(wTriInWAo4UKZsAw{Ke4-qRI#3L9`^EtHX%1ULwuA_VxHgh5&)@Bs~7Sy}Cy!FDz<>s#EqFRPY?oOEwi;*?mW zWq`MM+Bb5?!$ep6`qkabdZMYXue8kK(;o8M(X)Kh>UCY2BTJN$q{}5+lz0`>K3XHQ zn=oV0rZV^oYtES3zGdTTYA3bgvaSw&#$YNN2$p`n>6dMtS%Yg|x4K6bPc?~6mu-kL z)^+QCWlexu)VW#}L|;B=*UeXsv$v+$0jq26>K?HdKJV1C+ZUg9>UoQooca9I+LxAZ zPO#UuyMhikJS4NTL(QzcClqq~bIx3N8Vw}0GTKUePajs+THDt%PpM$8qN&SKOl5Euox3J8oY)XI4j65miIm zS8OKh>$3t>$kjcaTrOm^TxFN9?WVt2x6F4v8)hpxNMDEar^vKz57IDzq5FKETu(elPyJqeKD8RR1}j`S zfxEv)rD2yNz8|6?T#2yTX>~~;ZhN-ZUiNs_*q~2iEIlw{_>{F^APPj>hshgrXFayC2s3Wr&zZec#*@aG)hRSL-{kPWI{a~m`L2Vd=W7oCz~SFIoRi_h!Z$j6n8U|7 ze4N7z96s0K7dyPh;jIo|>+oA0e$?ULIs7MwYcvkAe!foF`uVZ&<2_Xthy0!o?-!XI z+n-R;O8XOnu{#G-9uAScOX)GDbd%$sWi5_R_)4g#K)Pg~wPC8ZB{F=dIN-MEbDbXR zq$6BkXZ&!7Ic=RO4`{BASVX~X@{X3v%e&3VQ}Zs#n+m$}%<;kzAMk#$5MZLUEx%nosk@=k~hL`s(enYkW3A{g@Gc9NXjB!rk9E@ErBK6pnH?N;N2( zYYv?)eau1{#`}1MbGM`9_hI>w);1l`TIIv)vu;f(9}ft7dGjUD(n>t@`*e)c22-@v zl?!7=D;GsC)ltG-BF2{ikxU-vDr4%rK!*FGn2b49L_r>B>W0D-pC+P5s>5RZg5&}TlX70y2 z*@kxc8fv7z=kj|_X*Dy(+K_HnU>26jm1nlRYTOk4=YI*b@3{y|TFrJ&`NFrusfKq; zwXfX`xYAl?d$o}sgVw@Vg>#=q3`BC$ZPnUtuHI5s!{&1%=qx7dsNv%(!F8cr3cPP$ zCoXM%R@cv%UEOyRwi?;CqXnK#*aA^+?2{W{5^CF>g#hsnzhU~8N4;*&mE-TADnCny zHq+unth{^=zeAuz#8CiqPY}qea&`mZTe*OzP^`)Kgeo_rudC!!8G{?s`dHGRz*m7+ z_sGK3nc1-i+WcvN4WEXyrIWH7w`;O5U}!x^{4z%0?UvxD!-h$xQ~~z?es3Q;X36}Q zfwB?M%4=GWj7BlN`#uRFJERF5z~Z_m1Gy}5n`X|CHLaB7@Ex{0ljFtmo| zh^a?MMT~xd-HW`WXJ>I8Q;cRh_lp|ju!Ue&=akD z_Tfka_qYwF=pHFFq>(nFYz05kKTQYnY+TktXN_ z9X@?5QXwy-kNb!p={r}4mv@ca43Uk@Z=o1oUcC~_f*a(KZj*PBu*DG!--Dpd8kye) zF%08}J$ImRYvkvzd!Z`cP2zD~x(d5)udtVg&9*3>k@>w$3@`5&lGh?0@@)Mv<#L-2 zizAq{OJ1vE7`#z_US6a6!E3}r-iYXjyzM%O)2aiyQ8$|Xnv8%P?}=v%_ge|4KQOXz z9~8su(9;V8>(KWroV!f2TH$=XH@{s9=ksx!@}NS>t?xA}cZ z*vs24d4xmWnCOQ*o;6nI1(UZ(-nRgeOde<2l~J!MaZyaE=0OJ6YScl$2Q{Q@RwL95g9Ap+kRMa5o+LS7J(s zP8CneFZ!PLhNm^>UkA=~=nh~%9s1?)@`d+@Qw{Sv(xKPlN^AcmF!KwB&-| z_q{N@R@`1zTZ1}WQh8Yovo8vAh(qM47gwz5t5ly%#W^S*2hiJ-_MGCZHc_Hy)aR@y z`jpAjPC0 zZ-dQKIit65A59P1SG^hK>#5M27wu=g`FnezH&0WYH8R*=Z_Zb!H{T$=YPkuKP#{Nt zz4^a&qbkvxr%2zNYl(}paNh4Q?oNfX@d$29!Y*O2=U!K#-n>@wD$$$K!zYRC_z8D!q~?S+{~SeR(Ia zpT2xKynNyAaH?SsNa@Qj!IjohV>Rd8EM@`4J@*;Ymq~A?FLzH8go3`jv5&qSTphvp z0MM67bA@xxJjRCc@O$*ijmd;NaFTyF%Pdzg_MO(X8c-}J=udcDuI zS6cIax?vpG<9dfNA8)6!mx~ zpQ86N>>;%$rI|)UL$byb!ap@Wil<99hso!Of?=ie(l`YiMp9fsN67L2@uB1U&^j2PY7_L@g`w!P-j zo!L@?xczl!c^%ODvUSO%(|R3-sNgmo(A^d4%P+`+m;O~GfoAKUF5l+J_7txFJoAN$ zQ`BK(>FYnw{6K~JG9%+}n=qX%eG7$se)CFfCHnFUB%pf$c^jN;ydO}wO#_5mBc8wR z(hBwEd8%i{0pz``pS&Mds4rhAc}xHq8SJkw*GgB~szBp(Q2$9gZDP9);+SsvD&6Qx z=9zyb0hQ>>M@!F~EBQv2zWc>6j9-Vsg`q_ZXnwoo_T}8Ge2{MPG1xpa^VXIpM4G(* z^UT*v9^sHTMu(M4|9R#&O5V5RZ)EZ~>lTz~Z}esQ8zYlfo@dqrwxW6F=@rj2->tmv z^*r-F=*w(Em3~;)YL2InYN z=*z*T{5L(xOmhnRja0Z!`+;=7sLMe=?yEHKpIPSptSeWns;Us5S)N^fp3pzo{4)It z&jRc2!t?BDq$;bYEz$0K8Th9pk0GA4W%_&2lj~x3xc^>H4)e?EfAD@rN6rd~vG>z; ze)-AJk$*vX#wPY;ugjjKhK|0BB_2AE=aj84CY{#fv_#wnQ}nh2Tt~ilKkLZ9m%OJ! zM?Pae>&Se|ihGIfHrQHhbY#{+7#ZxZBmYVAD$$W&S>c>Ad%{+tBezJmtVBn?P~j@k zkvCPSBQr-`iH?lUU5Sp&-sY9)$Q$$!Eb1lghmp%BCZ)?d;mRp#mLw)^U~3 zDUS`RVtFn0giyPz<_vruwd;G2ocmw%|1f>nC7eV zkDeTP_g;0*@M9ZJ;$;|x_+r(!d0j?m+r%vB&MC!*PKse4yejjXa>VgfzpVfB@Y+j= z`9R0R=l*p5@28L2RUB|Gn>Jx|g+LzTT|<#26Ul3HH{@?D^rqLVO`I&@s-mKNifuGK zTk!3Hkt9Tfq_h7~r?Sr846`bGy*jPN)+%NDs=zEP!Bwkjz)7zj>y$6NE}UvE!Y^MF z)cCYEDE9gMX8Gl(5@78l{X<+h-IgkJ;T-*?r`wp>u8Z;#>1e zZp|0|H}{*WNlDE-@yODz@Jp9gN$9ZW#PGwG354$}9>kkmRhJ@>z+q$bq#jdT)s&RW z5-M=(g6&{9E3|SW=IOs7A2^j;1_pXz`}L=UokV{bl1&)#A3Nbr!wyRYceufVI~ncwizW~kx)aW*||usvLr z@2pR?cf{#m+jQ7`J@_TTec`S7i*C)TklYYq(`2bdNt27(#0j-9`QLOY?+yf-pnp|C zQ8~I*Ik?=9s^p_Wd$XvW_pJw=i!Q$vy?kG{FAck>COz$0?-NW4@ilMdC+roNZB?rJ z8#0*toF?9rVfp}`UgWM(;Z)_Ts>RSd-PPiZ4*bS4zcxUkG-V+U3L)~Ej@O;;{|fj3 zGunM-=tC;^wCa2irJpS6g>lPdd{bI`n=V^lwq}&y;VvyvU%}RqU4!0(!C%b}E9t|1 z+}*-aGCX8kGO}^!6Z}e0w)x`#Q}<8NYsOI%q^- znx$$7b49FPcMV+(-3uyAH3t zz3YkAHH=f)bsMVJ!Ja)3vQy0dB2E@Y&$Ch(o(*Zt(qV){ zfT*a$-eW%_Vx7Wwa*U5mFqIx$7t_FCf$!YYKqi9~2C?9}m^Q{C7G_QiLwdn=G0km} zj}vV28C(#ThPf0h;p7Qy@?QvFVQ8>~BMf;3*STA`ukYtKOODO4lP@qey;?^at1x*s zy9?Pi%;gP-XSm`*l)uSDzU_I2d<#$c7(U721r9T`v@om-F#H0CFLrpP!|NU1?C|9d zU+wU94&MTfd3n9C<>f6d%zMDK`V)Ojhv83xW87~#{A-7Q?=Yi7%U9T^D0T}o9ACjp zX`s`#^ia* zWdKI^{z1gVV~7u*xohmpxU zS`07mZpnL8Jmk^FO&;k%9z2NqgsAd{qZ^&&blp`VXHz-rpuK zq>rx0()WB}FOSdBoaz_`&y8`~bcP<2yzAwOJY~HkZ<(;g5lo(^dh|6wB=ZaXhB0++ zQN}x++rn)S&*!68H|ZwvxGwk0@^P)O#Su*SPHGVl$^3fd_VOClSX#tGUPJUl?i+Pj z9Kqx+$>aSVBZIez;pNSeylccmUSsq_-rIE$r&R~^DMey0T_YgJ-SKSU*h}<83l#kb z_fZ}35fXftE1a(fCi)98P6(vGHz^$T%*evsFNV*@J<12^CLcVD@WcJE4vQn0yjAk3 zS4QUd6*0WL`y|impLFVyJf3-0=aKO{$@@MalF8$&s#KzfmHCUsq+KI}Yf;|RMK5oz z7}LZvGI?gRTG!pVLME%?Q13y^nK8TKbsddOx|$L(D_nH4#uPlklitT49}zgCc0Jm9 z&D$66NQX^-;RO?pKmX_%|M4S?QuVd1uWNjD{*6t~8K1mDAq#E2i{96IZDaAe;)7%F zuS+if?V{(mDoB0pD;tt|$DjYMhNJVxH_cbXs@7SJ)x(o-UU2#UDc1HyHy5vMeDJ5y z_t;wbzOo=2^9x&V&&h{NTr}()UTNE@+911C{g8|=}LMPnP(#9 zuK)Bxxl&^sAhPD9%PEdtv%D#LQ%4UiF&3yO&**g4T@JC_D+Epn!^s zh~R>Xz5Y#=_LPwR90)~`;TI#pd=U0q#$>J&rlx4STv{2mtu zzc+-#wH@Y;1`5TDojJ_hE=MOUM+i)WPO){ zmCg#x4OW%>m(c5(>72i83EQ^3ab2P}%X~+8plw#Ms=bx@JWYt|B;zb;j+2g4qu
    1. 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

      2mM;p_W^eFS6^O#0qV7b@lHy%E|3~+vobRQR)e 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

      VuaFajYotNbva+cyvQj!x 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ℜTYZ#(x6;r}3Y5Wgp}E_Z|-K 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

      h;R8_@>rgUrUY! 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 taZiF`h`*118@2DYz5s$bu*LuY literal 5248602 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¬Zw?h`u5ccYP# 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%0A<7;j2%gb!Wp^%Y1+Wixe%Z%ESG$jm`9Y99 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�j9DoAiHm42VRDOu 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

      L;zyZ(Q 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

      RHo$gJz)7*EL`$=g zjH==RBD{qOI6*3FHvR;* zxuHlwEn6YR-Y=>aG#f9|311vY{Y~L~Pm0G-|AGtyn=PKNy)+w16pF9IwlE}$#h_Kb zD3l*ioJ`K*PBT-f1qN_!Ow#+)50tV6Z5X~(h6+I8ppHOlDp9p^`Ap;aa zACPAu%1&J!TXiNgr8m^hLy{@IN9*y}rMKhFxABfsUZH!ESJbt4rm|a`z;0p+PO+x+ zhN(MD)Y>Dk<*eSGPL@uEUOOeb_0u_9mX)I!#mJ;)BWtH9Iwp7CDTCuJ82jYZUR{T~ zhNvGIkhe!ku}u|mpj)(aP+84z({(xrcT`g>m6_wBoD7(P{wYhOlSssA(q89Jgvc<{ zGt9h(3=64*SwyV2kV)nenXp-9UMM31!wjN*1Ds8Cu(tLU!#gH0%p^*AXL;VXHZZ}~ zRi%&(dv-`H2W9S1Ol%yr^yIzj-a^Gh-rC-p#W^39PM~QfYDE}n2};FKT7u{bR)l?y zMKdd_+q4(uuMN&j*r&eRf*xY@Wc$I!)n4P$hOkuRmY2s|qZ5M_7g6Jl3yzLS(uF10tkkM^aox%0 zM%CDHVN4bkT&{%~)ALiDtqYcDh0-Mww|wD3q%PF@w@a6>M&s0JhrF|4#-WGIo-uRE zoI@LCCFRDZt30~H_}5?U^8Z*9@a?Sk7f)cFO!NI6XvIFQ>6!LVSfw(|3H1~v)*QJU zOw*5tJP&SS0$O=srmE2GAs*!H*?P*dRgLqdou?H^L%i5f@WuEavvOofJwtEmZ6XA| zaavD9ut^ZTXc+n(`hL<^F`rQ=PafZFcn|XO#w%?-FIbkroXyL7Sc2+AL!Mp@%JOIr z@}Ln;O{4OjJi`9kX!q9mCW*(&2nKy4zN1^PHl>qDqbgPh@VSxp>3yc$zK%M14=Rs! zK`dBZM~Psv$y+CRH}MK5%(q+e=)d{etc+mtQDxrh2nJVo;5%F|4fj$Y2IE_yw6Awk zjXpgolX|Jo>g65J$_OT1m01GBV0mkm_VP{}nqFnd)2mon9{7ISt@zyVmhhDlix_*vw#>(9tEYPomEuon79@^lg|I0dcaqjJAi}q^Jalu7#renstzl97R=oEI zDwW=V6$PA+Jo`Xr;A8l|)ET26CTQcoS1{)}c%)+8BHwbIvC+uX{gUtwZHD=5XLyps z?{s*E!^b-OUWb=ByvpIT96sOSOC1jPx!AT_9sT7_D zVKR%FKNv1KJksHD4o`A;jlo!yM+BXFPQdPjvV&htWkh{-Yc|#^JdRw>Z4g;Zqzw-QjZ`zQEy6IDECkH#qzm zhk2G+J8ySbr(u#|r@*|(#;Yi7{9YG}Rj|;BBJig>Sf@qu#fX{j+!-zOIh+Ik9r3QhPe(jL7)2R)7@wCS-c$Hj5i?f5k9dsmpCe|Tg+c*k?fv4d z)~9OIeM0l8RNCrVbbF5*Gd3tc&FgaJp;HgbWYoYIGFo}MEtMpz_&-GV_OT(qz3!8h z*;?G|u7~gc)RULKbXMmt{OQE~GQX^NI{Q%WXSKOP#rYGYU2?4!uA4uqn`+$<{-4}U z{-y_2>Ha!I>(>eI>3mNgv{@(8uVwPfHV*j9>7%+GSXeS76|{KBEi;B^b{kxA{*cu3 z^d-L;P*rnnQhKAuoN2GsJcxq_)mQc7HfSmoraSjp|gm?#Ql7hMdwf%^Wvi z@sN{y-qNdo&5B1iJiPaY{RWIE9N1}8_anQe`9EqXRMZ@r9Hx_QctQC;s%hhx-&kP{ z`OzB>FWfNa-rtLP+UC7r56@J8;l598y!6GhUOTbZU3FbwO-@H=Y+2>-3MrT!mp!o4 zkyUT5H^#YZVQ*EO>W$T9xgPL`eQ|be=ELe!hLbQ>JiL=+^`7AM$NonJxPNJ%d4y;B zY%#t=1qm~S30i~it0AgpN}@IRjt)_$V|9|Zt-;q_DXqbG3!K%R7Anee6;?bxS^Hcz zd!(dQ<|jZ88eE0rfhCE`_V^%-+1wzpWXG#L+1;R2p$=8im_b0NZ1#xz6jy&lwCvQY zfCGR>LQOhzq4Kibg7k4Wulbu5S(|$r?1GUfO zOH1|wvE+8<)RLgRC8#Sm4XKiys;JOF?r5M?XikvI*aXTHPK6wBb>XYZwB`7IR;EW) zva^&~)PMiO6?fiQyGyl&hO462gr!Q>MU@t=lU!SlZ#q)OO$aqT34K3sb>T)0mMzD} zS&%ybdXK{QB*2#A`vqkWgxMyh`3B{@)6V=6r832!)GI@l7ZLu zT#2Nqv|0bx@1rO;jYKw+bY3hPt1^ZIkt$hNRU}n1)ECkon*~e?x6y#O9N(9aFo#ta zs|$YxAAP$p%kd$pGkQ&IQDpb*7nRU*d|ecEJwbA$N``(&;V}u$tpduYHF)&|?X!}@ zdC~PyWoS7*7V!$|Pag}MLH+6Dfib8*eF9ir*pqg|<@lcAaN8}%_f?7NQQ(o8yBhw! zg?jLMw7Ui*y)%kXS|eGUL}^=&??A+!n)zOp+EpAXDKSx9yuU4{Q2ZRdW6SZ4LiCxL z=QT{l;!fn8l?jy=zl>;Gj_)hvoSP|1bXjSwPqj{?;&;ipATwNv;l(GZ$Cl#@s%hpP z`wVg}4)u&JV)`njwLMj4T#t1k;|^~D@HS7r`X&ZHt^Eu}REcybYM zmQq?{1g92Jx02G@ht;-?#pg*}9s1yfBFbG-T02StUM#LAu|9}KX^oNU%KMCz*6vY7 zsnS~8sC|iEh)Qd~IBIb@zA$R-mg94y_Eq@fsC^@hTHz0(|o1l-7`MN^7*zl-8)LzVHz8A88W*q(XPfKH4g5 zN^6vzT$n_?8{wZ`Kqn~oF~g5EA2xhaq}tNYoc+lUNoKlatO2Hn)s$&?v3Z1O2#fgz*$% zpm6u>!=a~nUiIV3w=>|KA#?w*KVBuXECyROmJ#WmT`cl0{jXAktJb7Ptg4x`WY*!| zc|g!zJDpRPFo3_pGpBR@P9)i)!~}tJNi1BU6ou|qY9N2XXU;iJ@Q);=ecWVe^ePCaTzlz z&Q!JBHOaZPV@|0?&7=lvjQW>_1c%;1hkuL1x2axc-5%mgyYneBSY3_od}@NEe~kp) z`4rvxbEQgCwOb-tLo&0ayf7$Yrs{#U&#Q{ub(wu7weL@bYkv#j`aq~XTNP-D zLNaS>)tyrIqgRLV5|q1%F2@@3dHZx~R{5H94GzeK-^J3ZYh2r#C@(()^J1W-5l=REb*$v7L%x zsts7>H4Qs?O~dLojX&M)Ow+K7X&UCereUFt7sbD~vx?!a>b?H$75`X0vcB&}Ck7qF z0lBh1WQG2tVgpKT40 z8fBZL*+}ADLsa8mBv2bj>6M`*1*nKt5?`n-lQgVXlyWu*g>b$0cWBGBEhWJ{?vX&6 zL9|g@h5l@RLGjO0vi2c#=-O2Ddo7on*M6a0Gl#NV` zMNLhcu#FzO=eRw`j9${xv~=}?=FLnWYzzDrBW|R4DA z({xzTYBiklu&)elIKyegW;mEsX1g|2bk;JSm7PNiO(Qndltqq7rX^>FBiaT{Su|PE zG1Ou&&C+;7@3mnw%CilvsYYU|F1ZyA+JCg-?6T%%O^eme&HItxx>D?0>^XjGHH4#cYKyC2qr7p}!^#qBCGF`keKZPz{~+xYg1`_G(4jL-dg{<5 zxkNETKzZ``6M&CAUfu$wt?LELGDbKI{VB=guO;MF#ysTF9^^qIe1(JymgIC{Xt%~U zNjz2tF?T3&3?K$O#)FkMOxA0|woNy=hmPSDeIc=6b)h%l&9G7>6u$Q+$@>az2phwK3oj1fXc5XHl^`R~& zVhq&9c594{ue%yn6M2Y?k9TKoHx~91AGb9N*7gTPFihSO@r7GRWVF0{mG;N+xK3Q! zO~33E^GI*hW@QAE6U9(+1cUs!=H)#jdGH}mA9~9D%x%wgYjUYB)MrJrVDgC7t>y4| zNo(YZ$aRej>Y~3n7rnge)p<9GX2IlH+G0=tPt;AO-z?CNd|I_YdUs1GCVfCm^SDAc zc~Xb`sU6Y_I;2;0NMFz){oxMjk90_1tF%2H%ev9weMYZZ4GSAjXqE+}EY^65Y)da+ z9o{P22+b=slPgd0?1hp~2n~%*C$3(yvYkhJ|2`UcHuZWRUjyTNLr0bD)^HSCTbp#G zxH6pB3S4uWTboq3k0ir|q|jGehMfZ6p)zssN?J;k?crYg=E3YaOn07@x+*&q7FsS#Qa3tHWnH{6UAm=J0nNe$3&YIgGDN zlRwzueI4GCKL2r!=O3-x|G&}aFJ;?~ag@XO&$VMe++nZt-{|Nq4x=+?Wl_2_>~;R{ zck~}RjH^)N|C7ULCKZy!yjbl0^TO4K? zG~>C~;l~_)#$gr`GXB>cK1P!iqaW|^YOtwlmb{cF0-h*bh!~}vUJ>(N zyK}_6yAU#Z|FvKklAVW~TZU^L=ALi#@D8gs5GHFg`Yea%IlR>2lN~;8Mx^ZnVlDp(`e^~HG5@h=Y@m%vYpp%V#!WWd!n7!IjW$dgPj+5#%SmD7udIG z=Y^Jc+0G05bF=g64>mimGpIkc^IDI%)XwWeVkz5s@r>)r!^`Zv7LdECo!45(braNa z)dimCX6N<2GJRX@yf&)j=Ip#?BV`=Yvjy(*X6JRG2FvWcv~XeB&g%ziwb^<7fU?of zYau)bA!k5=x8t&%*XuOg?7Tii`!{3fwT2RA=XDTFTeS1ywrqA@p~s?~SFlQ&ogT=Q zNQib`PlLC^&TEC_Z=;>pF!jYY+j;FvJEEP}cR1YbvGZchgR-616iS<&7f-6PomVA; zlNxuPKYv=VKIcDc|C-s<}7n33_PCh|{ zURPvxTekCRw)6Tu=dIa!JqerH zdCex#!OrUg61vTHUSZUtomUvO?XdIWp=fqqOhC=f>pmJ4?YxF^xY5pwkK2E*o!4)X zvl%Uvl zc3$DGVRl|)IAF8$nnRJT+j(`Rv(3)yy(G-eD;VNFZ|p1$kLoYmd9et4+0N?*xb;x~_om{r_V$zaXcTQ(LhPKzvi$Zs+ z_%_*jjZg=a?Yzb-(caGMT6JS;=fy==8Y!_uG$ktAdCe1Hj0pRwPFXxTldkiWGgUb= zLXNZExViD4Yiy_7Kfi& zWYL7g8DMezn;2m69=pQ;OaHz8Z`XL=Rh_-V0INp5z)eL4SVaG$t-T$P2&vvg@@58D ze2v7ki5MB%W`H$aoHD>7Y6x)7BZ?kRq4wnvJ}@M2Vu1A%u{r}RK01Xzc@sVthrl;4 zDx#IdX*Sh{utNKDwK=OR?oC$((hQ>OwPAI2tK!>Ivi2b$n~s#38&N9yy&+3G?nJ-V zrd*;*-CtA-5wC{rdmG;Hr6HL~l=9B;ylqxj@bXnDlguJYd1rgxH@CX77gLo@ey+R9 z4y&vAX34d~>I!o%nK4yW_6wFxo7z})3U*$p4}gD;MO8(#(!yG*bFih_VMVnCE2>mc zuf1FFg<6rmr2#Jr4YEYkQsYg_m!GhN#qC=cEnVH5v@escz8{vMU$$apv&^3sE^VaL zlGcW%lN%FL8l1oMgw&lvQ1g@0;J=pdfh~F(XlTU&K+um&-o(K`*)7Gkc^cT9mDIKw zprsDt!x(I{Zvv;!xq1E09i~)oPgAO`TTs27-5aD{I=nVfZFRZOVX2BuDUTC_<6C*akJ`JMv(^V(=H{LDIOKXfL@ zsA7PbY!k48VnWE@6BXKQa!1)6R#0?;LP;AP%Kz*H{!6oygLIai0)Mp`CcSY;I$*m9 zQ=U8qc+Z$NdB-Si9WPjxF~VW!lQeQ`B?x(yF%NmP2l>zlO(a~fBqs<1yEVQ^;;}M_ z(butUvVr=}&~3AU`nu%3UmqzfSY1bn;QMc0t#sXWhI71pnItExlc<;ewR(B8voeCodwV2F2@r$jtyS8~yF>q& z){2HaHK8o;s{)wuxrJca~D+Hb^(5EUM2Ns=cpdK9QlOmn# zeMzJv_LhjBRQw89WlM^=&MC{cFE;Q<#WfD|i4}hRw%bODPk6{|QT*;GhjR&Rc1iQ0 zi)X3gg%LllctylKH_imB0mX>TUg?98=T^nnL>`V8Y&JgMiF77#V52_*UG+{^oYBqT z?P3S?vf4968_!TM?E}B2m^sQ0JD?=_2K^9kU|c7LUv&6)4l};Sv%?NZ9iy$fZ0mbV@lMAzd`MvnGP>=_(E`eMqJ_O9}~7` z>*t`ym!q#be4oP)fn#021V@>FbGVD%pN+n=!!-`??eLKfFLjvXv3FKNp?(p{7@}TQua-MN` zdu@5byqcXt4{dh6^S)v7-_ABWHM&1x8!}bx9Ud|74Q9VHOL%OgFAz5Sou$I{kML}dA=rmMWlaE*lc+o6kZ?cT)Sq=^SH3t@^J0m7I}DAFk2qpt<09^6=AdG z`L(dw^88l#;aK+f!cRo}y0F>xptfOlJ-lc9Eb^d&M#vP>*ked`j`6-~xYpr1hsQfS z*e^$k(lafkly}#Pv46a*`>3u5^71KpJ74?P!>W^U111+9ye+?X|4I7|m{K^f;{49Z z?vqMGH%uvv7%--1a&ImfGoWf}MQLcMW^PqlaLoD(_p3PVx7A-5RoUJ#FwBC+XTArPA*nd{nNZ>L!)y z#*`+`ts1kmAMMizYRMSckD>!YQS%E`z1OI&_YK+Dv)5fcArNFKHrk-+{5Z>b=^ea$UTkpcQpbOVn4x zmA1e;zuER6=0laig6E=&wV8{va^%FdL)f5gnYNU-M>g^@g@U&%6J_R^9r!MiFC&p8 zS_7?rcYdw88A$s~CxOfxk~U8VL^wwR2=dB=ibZ7&`0;(U&t^OQQJFb3)+;7uj(}9r z>2RgA?lJeTY^FMRRjSB+NM~-gI`?&m)ty);r4kc_%KR|kBIQ;VRsj!%vB#D0Wpkrp z!7*fZHz>KO%9M2wbyvv?6jPT@=ThC&PXoIEkA#|3AEVuK+B&nVq^TGyc99n-42| zt<3G4w)=9Vk4tOfD0BOzH9d*+{lSGi9z}BpfP3V>AOX4Y;9@@bdpZ!@H~&$14gwFz zADk0D7+gwv@QA=ZXbv?8!<{L>u=-|_I|976=a*>3RN5@33Wq7mO(UVlLN!;&LNSE{ zksqirsz~-h*C8(S*eqa@e~|{vrqXPl1JBL*jOf+*pMsCxAdDXG~3L*%{)=1<1Y4;l$fY4G6#!^Lh*Te=k!pfNAW;JpPBiUT2UpH$m67GLIgt`2?hLNOSyU6VOZqF*dFQD%J*jUOmRs_R#^lYP)5swnjX z)i!Eh8YW564-_zt+E?7D-Qh;{A}vo2>oGz|FNX7!YDyuK0x@Ri{cU~tk9J*tN)F-m<1rL}m zY2#7p*&>9SGY1^5;)*nl=caha%iY9b4a|I6&Fei_m0}-+zoBBdYYYuIDb{nqwc&)# z7T-^iVc|r=4-{ut>J6&*K57Pjpa$uYS3HP8J1F3!$kIZx44odx|MGw>Qg5U>~#siOlb19~AEW#V3>_`yh@yTYNw*mwga9)y0`eoEwVZ z2MS{ErK%G9px!#+i#Jh!Q#jv~B8IuL4`N`m#Tz6|exOJcir+x!!jLEyhmlwm$`2?$ zhJeMP?%E>qWgkSD;l+<2;P{ZJE1pEo2_Z4AIES32AyHp!Cb29eCMVSlHn)s$(D;F( z2m0auEsUoKBZRwWp9($AZMz>1-0Td%6;b!BW`EkBq>`2E)lXI9Y0xeYOLXS*pH_8* z@F&N*A^ObJKiCC*o>P|4A6u8tb9)@A)POZjN#=_O2~}J=eIV1F%#*F3EM%>7vaQ?G(}e8fbIm&Z#83o)gRYOJkWnY63Z@S60wW_4*6UehUU1r^2afC`=rc$Qt11E_s^DA1khmu3< zwbNWUsTSwJfoRze>icWq+E*Z49|*O# zXf$O;L}u+g)haV0Dj0^nV)Y@zBzD&k+I6}a$T+0;1KOMH`n(EPO=28_vnLAn2`Jor zp!c~+MRXD|^4+s|a30oOt?bd~HCxFH>()D8*{y#!oC@{mqcf|`?^C7s`;?9JZYu75KUI0(Po3KQIqAU7_fu!{ z{nW+#e#*D;;`^zP`jvV+yMSu%FsYpvrvB}{KMio+pZe;Yi$0p7%cnu|?UeM)?A2RW zgm?2)a{ix&I0+h+vO6f9&26rvHskv#Ik;bCxBc@6L`P3Lz1p{WGrpfv(s0i=-rlQq z9VD`YAqpP|lH-WDUA4D^5h18JW|EmZ3l7&N^By9pObN~;;!}{QL?)rlI)*#cg1|6i zrJ@T{sC@_QuM zojZ#^^-7ctWiy>q-$%&l9Vp8?7lk{8y37+%n^&UL$|vjWZ_bQz;7P4;g0ClGJSN$m z+^QhCG91_Gp;Ry|N{@oJYC$5%RVpQKPDbfgriiZg8(kfMCn)?r<)SAg9lbmzaV%yJ zM7@>PKgbtB0`Ms%xrj=wn<7mzH=$XVMk}aPa)zVO5hj^T!-Cf34U6SJY^f}0I_m2O ziD!3h|*rD&!#CRsLL-tATe=U{7AE?I?{m#lqGX>Qaq?r=6P zZEjdLAKyF;%NkEk8kQ|-ZAv(0SDmsV*o3t${k}P^$!#)P3ir;`9nNyCFQ3{M^aMrTJu4yllS4PPT1o zt7Nyx>}^SlTrHUkqqO5Bv}tK`W6SCl$>HysT{@%`oCKCeEo02pvrAh`qZXA$O;g0S zux0ruTm!D6BZGTAoh*28idcqttMw7Mq2Z)P?C{9bI4)VXVzn044<3{l94onS#qw5l zR@y^JyzJ7x2#$xSWZCMal9wKl-1V(menP|2#?Y@V46m&CH0Em-C~jPUBdOU_)$pW2 zoh}b?&B$y!XccB&X_QD=7DuxCQO`i;9h!*B8*L=viV0$CT5?sn+Qx1h>@@NwJ;;@p}0od zIBf*z;9lC`KSCP;I+*D*{LF_5(7}3d2=wz56QF}p7lHo@Z3O6Gy@3S!EsA?a%mkc( z9nuEHyhGB4pK2SZ4LKERJgUOrl5p3EnHm!)%e=TGOj%x~`R@h(_Xz73+A!DA7YV~l z+q8B|P=SWurpC~B*gw$;3MFmoqlC`{1Wr6V`AFNFMSq8(SJx)n!QcuJe7%$O>8?lYXX>+hxwx$iG9J{Oqy&h;^42Qt<;@zS?@^+0 z9QtlkmiKXCDW^I4KVd&S1FWf*#C>Y3cZ+%W>=!^GI*h zW@QAE&x(PYmj#25iQwfel|1;6r;jz|e&J^8x;5#fj{?t%X2IkUyVEF{JVgJOiO6-0 z4CHmrLPj<=k(8Jz{2dD-5l?Sy2(tBG%F=@WLS|ELx zwhh|&29CVxiY<`OeboZ#wU$s!`l1f$bsf^5>yZAY(mZHqDyF`BI^@UMrM`SL#HqNz zW?mYcJ(Qa)mEQ&1X7OR_xEViDTbfe($?tX>aFr)=sn=s2TS=SQSJi^KuoQ-CGyhQ| z!F*(kA=4`bTr2pzCvY#w=w3wN`ZhXaU^ZJ!j?CW_;xZ5v>a=B;{V31|?1#7q=~54v z&zy%xe2e1c5p&Nx+tDv|_(iZ9LX%j!(QLDrIDx4L?H%emQ8D)v=o~k;z(!}{1bw9F z94d5pXcKe-I3N3Dh%h`%Dt8BqhkgR*V_)gk9(Zn1%ySbS`VX9seK;4opLF;qVDU3FV6zGPb>v~9T1B65 zvsBlBOWhYCHz*~w~az3Zy*Z$YcqVX!yLQOId;Pw zyW#l`FL9XTH6D)F@LGpI=4*$mCzd0QK28qYJv-;H9Gt^4*$sEpEXkN0ym&Cyv++<2Bae3HZGIE-&t zRh|%R+9ICk=*_O|`yBT6Z8t)Xb=~TCZWpF5 z?){tCw?%&ZUs)TTa%G>1WtkJb1U>Tq*737kt{rdZE^W93j{JNqHM}i8vgSGd_c{D| zhc`I<-wwa%Fnwy{uG>Qy(=4O&q0}%_G{d}R7#`^`^FO1bcy0IqhbKCGn8P;L5-B;# z(T{O>uEXeZnSAEfhEH+$bcZi;_!5Ud>hLEWzSiLz9lpb1<|J0{-41`(;qN>AsKYNf z{G!9Za`?9nzwR(|8>_dg&OgIF9q#M!0EhQ*7@c`5t6QV~g4Rx7wqFgx^^rbb_^^n1Co|ix zlZ9tQ`ul{<_UklZv;8_lctPY@D|~#!=LxTf`2E5sMSP(!-&{Es&eO9azF637zj&9t zIMS~Xz9QnAh0XTs7UA`gzCrlLh&dn4_Un7Xw?+EH!rzFPcgpWX{Dd$H*0krR!cRoZ z`S?`Cyi5K(V&>PV`N7XQ_`8UCuY5gX?y-E7gNJu|sV@Y)zi=U9-gj^o0T17S2S&_2 zcDINp3hx#1bm0Rco+FGw2xaFAGlvAv7d|#(-aY3%Llu718VNgW)N~Ef z59$*_wfe;{-wF&f#)d~aJkDXh6&Md=W_a|zW9mvSY}E#?ZtU2!z}Edr-NMa9V>&jp zKH9*QLSnPK8JAa0&>3*otM$!2WGXgq-tXr8EUBMenlZC##?XHChn6Nb^;6R~s3-RN zXWDylU$n57K$aV;d^B;ZUaJOiPb6@hGqrgeua34`4JymCUi%DgB{KJEaQ~W8f>A43 z^5?|;q9Rk>M=bK^#9LZLMW;dHZS&{EZC?JI_y?k*x>Ktn*Aaek=8|u(jJ=yObX}IfY}oSvxWB|Va{cuR~Pv1kvsY` z!Wd~Gsq?kku|<*Hvo|RrBP}|o>%o#EBdy0pO1)aG0wx8niQMWSUvfAvy7DPRMp~0p zA~n(qoT-skU`&m)fYk-&L*~RO7QUgCoVyzSz6Iu{x%C&SV`QZDLsfy1 z7RlluI?J3m?Sa@+GvCssnJvE9mZ&aX+?FU5&!TtCi4&jSWTdrGLtHF=1!-qxLZwCI z=gf)I2Ptzdx{hr|S_Qog)fPWV&IOr)N(?XZ@hN9coL(hiPMi)QadD_;Y;h7N)Fqjr zDl@M5bLzP?GeU{+MP@uQ(xN%_#Rti`GT3rWDl*nG(qe!o7xyCZi3}q+wWu=#BQ2a% zZ!EsV@mwAH;DzG*VY?=SWygy}CRw@lK{Q5Mj8xZSw3Ct6S5;kVq}4WRUz#9E(MSsz zM=d&W3ZvG}iIW?(ufiWk?Hgg#3OvbjcX9rf3ZJ9BcmGs%))tt7B9?r<;mSQ zPIzSD4;=daGlb1Z3;AZGMJvrni@NFy%${QDz5#^WyvyMh zX7?=J847T^xB?*=3v^djUrKe){sMNUqa3n?v7hcz&BiJI5@3)*3%b*J)+;XXSw;H1bW%(4@wVH6n_P9%)9IJ>%Mk=eUO z?ZQZ_Qzr>{3bum+PKtX=w2ZXKs45;uqCUd~Rw(l2u)PzfK4OZ^?Y&b*SGR*sy zV6(+*wU?1rcxn~jjnIW5Q7nF&GK)g_0mb7r+TsElvLvt#FJ6v-<3pmZ$e%1S z(n8v}A~OIPX_2Te&L^=fBqk@F8EkGD;h-_nq6hkM-w5L=LN8&t01G|M^Qs?KoOTA( zhs@Do-=LDa;OwvJMxN3HrY4zn7b!cn%o@UZN(dH5L%1gnQEI^M+8w|YW*1Oqcgow; zC9|$dIibMr6qu;IfzPSuGNX_-Psu@(w4<(HsixFKX|&}Ho+bKhNhqbpT*=_mM3^eZ z_9jY0KElvlm+2+ezCRKk!h4cTlpqY5!g$<};=eI!uUAk(%`(wDeVFD_MS2O)$YkiD z+R0KVJ>WO76zZnAN1M@5Hnrn18zGszs5`yEP$zFNRNZC-q|40=hPs%+P~IC1720?) z82UG{6l${t8rZ=~sLjr&Y$c>2?_eW@txs-B?}PhcvQy)2c&7AD4SR-qV%e}~ga%jU zEkt4V-OhqW#3W^y=^5J0W;nAC(k2N+YXh9CeF&W2XKRy%PD)6>g6L#a&^Z^w`wb{= zP-aE)NnM<8g*A-SKwHf<44S+PMxPv1JVz}(d9S*6jA~xG&~jJFwZ)|I`rldtVDwCN3aqR51cuDEQViJ8E;1m zkcO2Sma*f?J=a2~N$~I#-;!G0S4^wIYQ6~+58HF@1Z3vy+*xIye$+G4&v9h@}sP1D@QZ|d= ztSQ@dG;Ctcv7MG1o7iJ)qbWzans#ci;Vd zyopVQGrw8-j}lDyFQ}r)plfkDG0w<}j7~Ma%7* zBkbjkRia5VFbkGof>YnAr$o|3#;(U7ON&9c0Y3tJh%4k;_t}EzX*(@ zg+Ggr|8XrKi|~Lp!=(4#DLv1?1k1Zu*dNEp;c5SJ94b=o7tV1jBbXeZ%u4_0*UQ;$ccnjfB zbrTNI2Ch~-D`K*^Ul(;UuU0${EF$$R21hy%e(2QME7EHfvq7hRu<7AXg08aEGuh#H zfyGbrz^0debmW<*xG7@lToEyC)5NN*_bwQ8wyBr4qQ6bs*i3&r^h3Nzc?O#f%n*k; zkDzm%)`2BwtYS8kGY%Z(jE6^<{0Rt7W&fYU)w+ooz3A{rhsQaL4v+EAaJa$Y zr4F-btnu@|v*F7fUhnYd9A=G350=kO~IzwU6A?p0Q{m&1b`-rZsTr!xM94xi!hg${qj;cFfK zFNdFX_!QmXO#XQeU*_;N4&UPNy$(O-@G}no(&5(~?yHHX)jQ1LF%BQ>@KlHAIlRo_ z_c{E2hp%w>Qx5-^!(VgwK8Jtk@N*9T%Hboc+m3}r745n69$}s%gcZ=W5zcV<9B}0M z5ICRmeALlDDQwTL&qLQnxE&n%zv<|AgQHCRqEL2{_#bxsKXUv(as013+({2ulOJ@* zV_mh5j^4QOjCXjB!?e}hKMXae*^23NZ?x!NwYfJK6#I?fc zvLK(oY+s3(In3`OW^VX;#Qe|2vkCrs!K#QS3bSxAbk2eP5z|jRr=ZUg9v$(!h4+hi zp70?NFBCp9V&-_WBIbSj-4Qe2GhN)%gb8m~eNKHfY-k)6UJ_cj%@4pk_8n6qY+VO( zq`qq~iD#^M>j{1UN+I!g?Rwp{VZ?-*Vf~(b>}=S%gEm;Rb#ZTy|W z+W7YzqZ46+bh59h8j>WXLweNL|L(!ZOM92bG*pcl-LIsT`YQ89aQ#$wwVnI5Lx8mgXK;v1`SN<1$ap>_21j;Njh8G*+eb{xvg(RMj*l<1$Fw zaL*-mH5>NpKIXx{9Z@r;cQRt|^rts0yu8!T*X?pX*Ts#ae)qFp?{90z&e#6&Fty{T z*n-~_Dr)8?HKXMfpyqs?cDi6j_j~4<>{Ekk2CE;s)%+m#!}-c8bgTaLsBZT?yYZ11 z?|SVEz3!@)w}4)EJ@co%{#r3a7Q9Dothm4Nr3sx+{AJ}s*)91D;CU_P-PUFA8>MS1 zz>05=s+7xs?nidpFt?=q>J#s4+<4TB6JC>sYDsl)9Nu>T*RlmPkWyXIdZ{9?z&|bn z)&>PH?r(&t;%QQx@|Ch2=ZAAyJ#p{{pc}N@2V9(8n>kxIP)1Gr47#0}l{)E`t3ia% zO9)}JJ^|3?&t0coMcF67Jf+%v0=!p}vK6^?MD2Y7ESKEq6M(h;qfdZ6VKkor^{`+# z7kvVt7}?P$z*ST?_0wu#r=h?t`UH4Uxn-XK$09WP1ZV`CPk?Vyf9ez9F4bQ43GgE^ zm3;!B3fJ{fWt&fco5|hOC%{9H>v-~1=f5U)^9jH@*D2l>p8$VS$<6r$_$1QDAw8Ra zNqh4N@Drp*p8#m%n@@m^YPII|1RhUgG)(|*A$g~0{j>4-;7Uy z@6ZbK32-z_Tl5LgUlo~8fY4*nC%_+RK=cXlWh6wO0Dl8-hfjc8CC7XMJWq#g*(bnM z^@Y?;-=h*+_X#kac0`{5{pg_W@d?1~u0+W}g6I)S^#-FlyW36M!d9?yi#drTk0a=o8=(8Wnv4ETJc(Pk^9VxE($L z`0!yq0VdOJoAC*-ka{-`6X*0iA1QLtCjc%n%qIW_&*l^0ThO=9C%{K^2yaK90N8h% zPk=quJ!PK&;jUpm0gmN>%_jh#6t=-9z>y4^`2@J0g!u%(_FC$uN2tFG#UCMUi#`FS zXf(<`0j{JK<`dvojFb5U_z?qZJ^{ufv4c;5Q&lDErokt`t<-Nm0e%YiW_kOnm0kmSfrXIWW@1~YiefnWuXcU;wWY&=y z5L^SC{V5#}VZfT!By%&m7ib0N3Hic9MUwk%CD9}F%(@BBZ%FZS&h6CKz;44Ow{plg#L|bI4wgX~UJ|);_wS36ItmyuLe$g| z0i)s^5sY|3In_H+fWhg5Pli5pKp)0F8Sz=p)G6Qt$mR(9&{=_(|lGeNnkj58{A zRxo0XL{=S!sJWD6r>yyk`ZlSO-S|(Tau~goHhuTWV%XuNK>e|kbe^kI6<>6ocit(p zTfZs2`46m5E#v`wYC)_8Q0w5c=i8Y?O5E$`;rYwid(@nkT{?hf+my>2zZ5r4`AE(?u?aJ%r?+fT*PGO!8i$@D?eZ=r)yS3Z%TVh$aT! zoq%{TlKywmMxiTn`S4EcsI1o6q zb5?s>_#buivP*%=(~(ErVyu$e1l%d4(yQB*>MD8#ZB;H3QU?gBf_v)N;ndKMDg;%g zM`+F#bXZXp{*28WExFmy+RCT|p9_?N#wDuDt6KV{caVepw4Ga0mp8WzI%<=kLW0}l zHbIS`aOz%x+S8*@tK_mF`FC}ju&jAm(_-o2Znye;`Z*gF-iFpiVe$8Wj2{K9exI5d z$T>mK@0A{RYjard9t#868JNj|EC}2R_zPQP&!T1G7q)1J);fCVECa8irmQ=0$)aF{ zu&8m_vc|w9#6tItvUErl+8d<5E^~tRJ|x1@_U#np-)8<4)M+iTb2LEhwD6rbfwx>A zU#G&>{3GZ_xm-=!Cf)mOQ}5@7{vYT?Vf(c7)2o%MVTTt5TtsY6P5+;xoj*QK@QB@X zuk0~_mq+G>!~?a}Xq%#~N5m*%5tz_}`C|v3#o8zb{djH0&lH;g9lVP+_^;4LfDYzO z06Md2y{-oQKZ;Ez)9alhy&^W8vS7Ur1^!)xHH!)|nZR3J`wHt9=;H*CNnQI3_l%gA z0|FKZOr{kDK0X@ch2iIuGi=nm*3mx*Q2{!*Rx$iGpN77}0)b8lp`<-M#xN7cYO~Xl zv}U{^psQ>cLcKm)+@zRcr962BZF|PF$y=ecb-iF&2A^BJycZ>p^{9}?X=Cze5AvZA z28+iB@(BBDV`#U=H%UBJMldN!-eN!u)~1d&2)7L1HX8)~;y9mkGzO~+JrI*k);x8< z1!^$ItB*zH{*jc68(?@kf;W81=&;u~iP#n$!*947lA@o}D6 zFg`v$_~Uq3%Dwa}$MOH!I~O>uiu(Vbv->>kuKRFN9t8w-SwI$DuA-u%f}nz;AQweL zmj#xKESI<_8Y<=`EAMGqVPZdTm6rXoymV9Zf`#R+g3>ZGFNJAkrDgg5yywjK+3&6( zcbzhwR_}>l0-`Z_*s7W(bG|a=Wf2wqTk0UJRN>xJ3e`I8j@;^={x9kvXwEno zUR~%26kX;}kL%mGRn1EV{}CluR__mOs?^W?0H-FN~o!aUOz={@lR|Hnwav8YzwEf}l;D$@T6PCN$tH z=}D*wFP)!2dD!_0gTOopGL%coe4Gr=pXo{P%)cES3%Wt3dx5w#R)`uf53r0Lt&;8q zZI7L+Fi;r12h7pB(2bxA)fDlmvQLiq1lg1=JfD>PT*UCd5%Dv!yT}bsAK61Arpq-6 zthmS<+7~c+voi8rCVN$+lTYV4I^8Sy$urs| zSp4KS*v?G&0Ce%tom~hPkA4B$ISk7p5BL7z$V1%++gS?dMV`xKuK`O4MFXy;Pb+hy zF5*JY%@NbS-wqZ(WeYZ$zl1LSjk3vWFkNBXU}!HzOxgVzEIHH*u%-WX=;DVbr||I9 zL~Lg}@I?P_%;U*Wj@#8g<$bhK43fBfp1mt zQy0#PnDW0cV(Q6NU|vYkpdUlIQwHx==Z3BWX+q9$*<7Y`GXku%VMgm>y)A7S^~&&s zh{ub5OvEhiY5|!F?U3e`$2q3mcy7Fm>MOGaR1h@M4E~2N?e< zhd=J{l@4F!Fm>L-e$(Lx9R9V#e{lF84p%E5P0kJuQ$LM9$l*O59_cXUVf@rp!;2ke z`#YnDk2f)&SrlgUdmR3O!#{QSS%?4NFbm2|&iiLCsE}pO(t~Ju^8VQiS)Tk-jhyAl z`)4m?dGdex?1humd9nJi3LM`}XAASL!F&q3F3b%M2i=-TzsJ!ZarnpJ*w#Je=&w5* zcA|8uwg&DGrktR!`_Z85TUq`&7@WzPw{PCBF>xJo?!B71~Q3X6!n0^{~oG{uZ;G>0ih?p^EkBI5}*GAkZ zTpuxWAVVTPQFvIyrwShs@k-&*5w8+HEaDFfqi;>T=LwsR+Q)<&Bb~A5+=xFZ%+9~? z-zdB+;x7uH8u6EfS4I34VHA+y|F$q2G=uLKzBFR$`;`&@Q24VEKPr4}#E%PqA!42b z^t_R?LHO$tKOv0HH}szi-xKjKh1W*>jPPR-ZxsG%#4iay6)|IlXCn^d;)n|>!#_mK z(z(A!%-9wkB;sYhVw;E=+jfeWvF#2KGuG=7G4mO<5wobPE@H+LC<`I;IN_lYPZwt2 zap=4|#zs6_cv8fSk&lm<=VMO9jDvYe)7w>RcM$q<_b!4j@PG(nEC6KMG~%?y59) z7_)OLoy!g-oy(n99M!*LTb;|b(z)D2I+r`wb#OYDQycrG(zukYsBzh$q;a`((73Fs z8`*dDj)y$0$;s>c|3NyJlH4IC<#T_z|1Tw-%N=I?IVfG$jja6ryVIpSME9(`>$|$$ z+Wv>|JOoF&cK=M7^7w-Mx1>v1PqszFd);&?bD~K{QoTKNBzbZ#%%N3j{M6x@qHam2 zvY$G4$kKn>P9R0eaZ)HOP4-F%W|KOVyb1G{=(fsAI+aJt)uL0mLXxCYNz2nlr;<%h zqE6+$@{Kx`G^Hh-O8P40?EM{eDp4Y9t5f-LqRVtDQTg7yPUVl~ThggyR}9msJPK?& zm0u$MOsDc{#a_~>3>)q5K*uPTtEiKx_O}R|PUX!Ku?d~Z2O&qD%1?>ibSlf0wOg-K z`J6&-N~iMUNFUZmMblcR^1DcnI+e5nrc-&pQf)ewmGDHJ%1^=*bt;EI-=t3E`J{gn zI+b^k3e%}%LT&Rpm0HMH(y0tN7IiA0BLPvTlGl{!RBi;n4V}t0lCzaMm1xCowNB*# z(h+qk|IY2c9i7U(6riM2c?O|Pr*eP9noea`3deLRZ*1`?6xo!1(>j&g;$u3MzeTj^ zRBpuQ?6gMx1*TJZJU*sV`DrSJ=~V8Ib z`rFf~JXg2ypQuxL1GlwPdV`YJnf-!FI+dZ-FrCUnxna|(JeMGSQnbN1!s9ctJLWFZ zf9E~bKyrk~&RTI%+@C@-ol4}FbSfXgVLFxHL)vC_D*GzGOFETjkqXnPe28)~oyu=h zu%=VF8xq^-RL)nFC7sHz62IwGa_-Njbt-Q`sOeO8#bG*?KS#jaw2yALcky%*vPqrF z1^E0MbSl55d}^&z$;ra)ZoFD^a2WbE>1te?)TzXSZq1f;D&c%coI6)5#!RR3RXI1O zQ%Qfmh5=c6U(fx;_aXJBY8wU47hqztm-GNn*Z)Lm117Z$S+1AQ{+Um@Z&J%B`aY3P z45Xkr*(+#H_6nMlgkNdldwwZ~uiY4(bSSh%Zx-gdVgaO+}IkmlhStE9BaFlyW=`Dw1E5vk$jESdy96bSjeg^&YOjUDPe) zzE2ZRZ^kaDNcIXUlH3}Zf{LWE?D`8Hh5tz>N?fKQ`4WU{17X*zsjJszxPht~RV4XN zSJm-cg~@aw>-s6SOc#=TcDj&tKbB9X3rTjj)rGA46g4d9LjJK7kX-2!oK&7n7xFdv zDl%SE(1F zw_5S>O-b14MgNm$H4p%IAI0>dP%@L@hV0n2z>G$LDgC&Swuf=$bkp%z`vg@JUuk$MQIEs;?> z6%As|EZ5uOeT~Tfc8$o2s;VR{KPBiCRs@a1Q-Y>lMbKh2oT={xJ;k6S=`|vARp=&e zP8Sl5#lck_^gksY$%Fpjd#4eZX;Z!%jY#QVYF4M^-b|;mlhRpURjvQBpy!znnw1q% zuXED}1-&Plj}lFSS~MTYv6Pg&uld-tV&1ZbOp|ctqDAxPak@}zeaClrfKX{2?7vN~ zF=}uwFP-i5zMi8_c9EW_Kh$N>a_Nh5p45Ux^2v@tg5#a)Ic}v+V>q&?q+yz!aODnX z3RJ*NXQF5}AZw?td?qGD=!Wmj9x;89rMUqmhj`eC-*t8<(&pK^cY1StV^A<|& z)ehv*^6bWDYWvLQrpATK7bk}vIi+S)O*o6KrvCzJy%?I8*7ToK(|^1yuGtG0_2&eg zWn^PepqH|3Q`4+WnI2(_mh0fIhK7?GgUYb{q+jb-d~fx6L~Uv>OVbyG1E{jQlXCvD zMe`e)8#xE)U1>eO#d$>kO@|QuYqT4)PhZ(5FxPb}X*c3e9}k;l1hu;8G-EW%4Ok=A zK&J=Im=T^yy43v(Janf~JAyt-m+{XNCQjtgjb``>~nNk7{R1r+a#$0L}Pxd++@*;g z(Fxz&#{aZ7?hEDSMLJV9>HBOO|EPcKoHGSut0t#7Ed1=CfR=_fLIW@kMO0z;6Y+|ljAjMRlb*DTqT z7nqLH?1-6RJTu~RWwS=m_+N^cPE&XBnVuRQ9@91B`G=pc*mQWHbKesjoemH5deLj6 zOx~efgdHt=Z?JgC8?fmQ9s*rFywg4a77uM5*mMRPp^Im%>?L6F=ohf*+%X9X&)Kps zjy%*+u<7?*30*wo)m0JSD*HyT1X2WGlgVT){7=Y!JYqVGxS^A8zlfMTe-(7_j&;<8%?0w&Eyxc+d90v!v{D#-{EBrU+D1l;P{TX#nEpSw)gK^ z=(>N*j~xD$!_R}GoIg1FU%+b1Fn<$9CVd%JRU3Z?aFpK}9Qk`Ye5m7}>hLUw7dyPt z;R_tT!QuNIW;V~#Q{yn{Ce4_fF2mfaVNH3I@D2{s^*5e+hv};soqn(3{Tv?U@SzSL z<1qbU3p>MM>kEk#_Kq>0QykAKhtGES;|^cs@FyMqw8Pgp%-o2@b(6!lIDDJK-*A{E zWft}khu1qyAKQ3-zS}uEeM;ls$zkfQ(dma9roV0Y zU#Z7;ri=F+hp%w>GY)^wVRovvG=I(EI~)#uY5rt7>9S{&agl}nmiUd%+#mW@m>)!} z$G)Tw$g^VlfSrY(iab0w?A1WnorE_=TqFFKh--!a5pf@3(+wOdY`TFwPn{$KIgBk# zH*l=5=>{^k*fsL-k-&5Vj}{&h>9d4QH}FJZ(+zAEHr>F*!loO@7?e3z;$0zpT*Rje zH%82JX1amr3Y%`=mBPy+&u4^BjreNeRS{n!d~U>F5;onyTZJ!;^gD%3H}G4+rW<&d zu;~WgBW${X_X*z;!!kZF-N5e&n{MDbVbcx#p|I%&GR}Q0hUK~ZX~c|upNjZt;b$Xe zoUt+DzYG5%Vsr*yjhK0fe?-i<&-4VDhcG=smM)o|AY(n#6J(u{=?T^e_f`Lvvfz0g z9Pt3*{UT-@&H1$O93)Kt8O(V3*oco5o*6M?=My9Tfbimo8AmURc&;$!eZ9XVq3yLc zp;Gx`m~u5t`5C61412x5c&6e!eZyX~Rc9&=+H;@1YA{>Y?YqgBh%y!z^@g zZ1QiryI+2==R;*Z*+FrA*$Zja;1|obc*b8oobi_^P~X*3ORKHdF@qgydxQfP*D)J& zSCZ7OZg>7ckFKt`KTU>pC|owSeC6MVi0@a`S3F%=YfP1c`?p`)bN#l@r`z4#Nhbnk z^IiT-zl zon4kzmdm%SEZ-$q6*QpbxjZWrB>D-7E33?Z9?r^&nX+;@t?-wtdZZkAj&~_5FkzFY zbtvz&N>D0qREKvvnQKg$3987IA4V%yIg5r%)6sZ%jDK7XspAMvqIu7sB9{CP%yf`Z z64d^)!cst6EUPd9-+@4#5jS7TWh0SQXoehcW#J?8%y6N=Va^$jhx(l)&!W~m)03!T zY6X?zkZ?tGpRg3r-jG#TLt6G8ssE%f5-G#LxdKgZejjjU;T)AveqV5*aIaFD-w)iW z@G!Cc|PNI3dZ z(JKqz10VBw;q#O?NUHjr{dO+ z;z#f~FWpIwx*{DsDWD;szW6GR3xZ=%@o*d$hIob+r%<6TPJ1cLu;Q!4b4l7yj^Ra= zO{IWFaz+%N#OLyKU-^tKQr1#HqkzX0IowwYXq4c%;w#+3Rq5GE+xp@L9G?w&@J#VC z*se|wk$~rm2jN%~L~m57QBv*slLFeEiY}Detu3YYHEtpoO6}{wSZcSqQoG%i+8wUc z?u0*<+P6Zf6*h{Jznl77Q=sRY|L(69XYWGLHoC80`$r^(TX*b`xYw+biItxCqNRX_N4w%O93#?w#a$>)fo)Vuhrd%&1+9yi zVsbmvN~3^wED}FJDvnJ<+h6>Ke58OzF64@*D5Io+hEHYjIoPI!AO)oiV&|TU5(Tu^ zk#jWh&kXfFDNZN;St$jZEAnQ`Hw8zbI3J<2gQHk{j4*RT_#VYGam)>I_bxV*ka>Zv zu6Py#P7IDgMLMTaKtuGf;wXHYgJVQ-B8~;YF(#>^uxT>FO;;$%R-`lya7}^!y*n<$uzbgu60E>G@R%*9Jn*@(KSC@C_-htD{I(3m>@1(l=0Fl(qh*0U!8O_z2 zKFaTqWG9Pprdhk_(D`8M`E*IEt2v;IkG_>U4y{9WTA7}#G|i4e+oq?^KpQA2)tw!0 zp@o;D)7p2|^7$4?9pb@iI`<6UjwFNVIt8}8MYydKqWsxz`=qbFXLl~i%9E;MWKw#O z_4XB)N-95jPIqf{TwC|n$F=oneLmYx)#;QjBw=S$L{cqqYDhIkhNoxSW7ld+@mBZk zmL0p+t2IgGirGe&G-a^P4se?OgK5gi4LCQWW6^(h+Bd2K2_ao5 zr)5MBM)gugH7XkGfaBBy7E;8cfuy3Y(YnkWp}=Kfzt%MUo60$rk)N(~OAC>cfpZrv zXc{EJLm;H9I*RAzRFSVo?=C_61o4|yon z@`r-5hx9MXPY+5k*#TOo2gQ#v)K`+IDDw7?vx;4C~XgBb;V6E^AC0PM)buUNFOsZPE!& z!ENU_1$~O}S6crbmb*94n7wq~salb)bDlW&sU^IZ#-jM8O*2(A3+L2?KLT_9Q`4-P zY#sgEKI+O8J~p%Uc_|j1qP;{>>zt`ZPM(^#v|;87-LL8ci;8A6&(G2y#AsFezfJLD zYYwz(P%+J&5fUF%Ae2~5wPe}ax?D0HgNE6S^HnwrosvRpwoG+mkR+-s8k-w}#zN!L znak!aXv!Sffm>QjrI?eGRcvT5kXbQDha{OY!@uCzs)pHmaGU3$JFrzJRsENqKeeTI zz`#;tw`t9d%=;ZGaQt($HNwNSiBkpsztG|+Jt6-ZWe$2D7;L%?W^#2I>Me`+7`8fl zNv*Ddy5LoRHmp4}I^QsjK3te?J^Xaqjc1lHhOporb-_a)p6^3o>;1sStB@nvc2OpVycZ;iWx8LEFPPYAg{eY4)gWhxkkS61fm(YqX=%gdV}x0QupNnSsP zp+7HqMFm8jIzfRCd87w<&@fMCR_Px<3}bN0dP{tx#baRvlc#iz&}GK%_dpR0j?#UR8>{#v}}xG;jr7vxz3h{obtCAXJ1yl?hgb03T>Ox~x2 zEsS9Dz0JtGEQWyxGhOn=$VOf#T_*1)VK47Dl6O>@h|!qe4RZVR-6(lhueOVR3L4Jn zAj}|LnEljnT%_Tu8T`1u8*StJUNLK5+VZUvp~8r=H;QkVb6fg;E}CJydvBlBTVpl9 z4I=pa_-0-9e337j87Sq;Z-p(4U{Wu6s{zrN-?MUid21yPKICb5UXsW9T6=~BleLof z3LqMjhwZXIY3{CbQbeS^wtS}isM}s%K@1-e&5X%2x7nWl-=~M6!goeH6F3+7p-gqA zJg5=25XwUddv~`mdN&IB%BM#&xb;|<3~tsjn8D36g`q7*Z(@9KWqDAI|C=i2DQBb_)KBfS|rV&oAQ{9wICLR_Q^Y-jhVnF>6_ zvq!|p<~?L_9U3uxp(7lg1XlWq6Kv=BOp83TWK*8VIbAmI3BxPE3QHQn)iegtu*N(=2+)q$dY+yRtC@mvtG#fCpz5VaI?ecnHvAO4u8VoH4fkG@SP4n?(i=i{++{rbC@re7B8PQ4A(k5 z&|y9k8V@`78s?Lg;h7FEcK9@hFL9V95Ek}(4nOVi?;QTC!|l|-SXlO_G`zFJyE)8f z9OIeoaQMI!+oF#-`X?R!oWoyo_?Hf!q6W_7pX2bQ4qxr?O%C7h@M8`?Zu3v&iImg7eq{X#HbXk@N%Jl8m$>%md}Z4R$<_!)4N|0jpTIXjWw zUL9fM>Eq#!=%aXMOC|mnFBF;M~CT47`@iveh&9{*xtV)g|V}R9qD)uc6hSG zQyu0zriGp9u&SXx9_UYo{)6QqeF)>n&#=EoWnqa<_8Cv;hs3h*az4YmBhp#2!r~pw zO%baaCI1^S#eI9k$o_W3j9nj$7}<|Syo2zQ5%(76orV0}gnu9LAmP77Ouq8b1|Irv zg@_Ll?h^56;hiHsOt^Q%^fh*i_yplW5zi9dE8-J{M@HN%JSJlLbmJnXkB3RsuQOwq zd$zpt{WtE-=-iKC?!oXFhp7)npYAYeGCKW9!)H5uvBLxR-gB=SXSQ_C!an=#H7H}> z^7_nc=``xSHdK~Y)~>E-r!uJPQ24|?Wh?(sIe6>WTQ(_$Ii)q} zu=(|tuj;|baVuIqcMb1rR_{HPQNjVRc(tsz>?{_ow`3)ASy{#Q;%!-P`F&N_H?6na z9b&fLG9^&9-tuJvc3Oq#T>f=g`GTU1>n*3sv+a7zi3G^jTdtSH&9Aros2EG@Eq|^U zZN25QU|VlF7Du+;awX!j^_EkWhSGY=mqc&RVoY0aN$+G6>n#t59M@a2q|(+~o>QW4 z&3emQ6>?MSEo+dniS?G#)fKSymS5E^+j`4Wz;V4L%SLRyCCkliz2$eHZ*slmJkr03 z^_B+_!q!`MhH10wE$QRhddrYwalIwy)7W~;4h+e4 zb!@$5*s}lathanbi7KtPERtEa-m*JlZN23$S{#){6l0=Kp?Dg(v&r?ApGKOkw_Je3 z)?0>Em782|c?HsJz2)V^W9uz>)0Ea*hQ)ri-m)(h%GO)bIWDcY+@C6C>n*>GkFB?) ztV`=H>u_v&y=7Rn*P(U*dYpB_t}Yw`4S9 z>n%5M>+f*An%g8Ve2hBaKpCVvL`{dyxwv>Y_{IAA31O9Ehpiy^_ESrZFaq7 zUU^?yZ;3)xX}#qaC?{KQc{q=at+)IOY;D$C@^US$w+u_MZM`MhI-6c^8P40V^_JI> zW?OGL9fz&A`~V5rsvCw<#?|0(2wU%)eWzD7J_Wz{!$t$d)tYMA5R#8Hz2`6k^ zm*H2)=xh~b&pjnf+qxrM5x>7Wa=*A(a)<3x);u!v-6gMOoXXQ(gVhZW$UBynB)+57 zkt#@A1leY7WZUJCJxdXV<&YGV3}dXg_HkN({0B2m{}Xh{7mI;pSo;VF)h=P~H5dkD z41%_>%8^iJ80Qf;V;q7rjvKAZ3}dUZPzoGR*gAm1Ed#OWDdtn|HO&v6elp z|7FV@ON$zbFSiukv~=mRMT?sIA9-la-~mGh4H(of z+ebXS(QEV?*E=Se8gvO7#Z8R#K~Lye?$ZRiQ{aejyyAE-4eDq5#3_@eSRv*o8iI;CL85>qX}_-%N>UAGJT+$28hOjESB5u39l8s zldz8_@shuGALj^L7{TOa$*TcGV}7gT_VOzGWb12?N8jJ%eM;EE2uc%s)ABBhVc@~k zOCEIwd7X5byqko*yg`yTpiIPQ%hZ@cKnec!H&FoSeqPEg`c%x9Q? z{J6dwZR1<3riT{BjPb1#fqG%)H{u&+4%zTwey+Ni?xE|kfVyr%!jIWz`bRYpU}Zfvk@2h3VtVR z1t%yR=KZyNnGT7qwV19vG5r2oK59skyuX$&%ZK;Z@@4t({#w2)AKqWfm*vBM%UZrq zs3U7_`&HoBvHcu4b{6k+JZuDF{6BH{R}QlQi1CmcwkD0ftl@w5+PtwYt|J`Q@auV98CVPDG-=`5o^f7jGg;MOn(ex>*YM= z9_-%frx_-#hDo1c(qwpy!;>AJ?r^iiD;%~x3>VIty?AT(FdQ;u(B4DBBDpQEksC(l zYG5=}7QOeKf;Me%Z1o?{0LJXhwRQjGqnTk53|6t+{c_b{74uyhl@7N33Pl{UUAwBm zSNy87_MWNcTPS-Q{#An?>{-Y^R5oN{yMrcH99wqmcE{FEoYC#rgN~he?2P^Mwf9Ub zoSg~oNzDCL%X;wqemBYL_f7uRt?e12Q(CG=ZP<3i;}?%OV$H*kZ~H>}V)>AVmOa?h zlKoKG>g@{U`;@(~-S=zz)gSZ_n|p@4>0emC?b@EU3!`L8R9#usU=8}?t!6Y6)N=pt z6go%hcr3&}uA8=@u%UiKj}7BCOxw`Be|szE4Nq*?_-ONXk2ZI%{Gf{FsI`sHk9<{CuBQFV z%BN5)N~5Y|U0Ie1t;!?N#aGr?p7|=O76y{^Pc*bge*aG9P|Pp`o#Vw2*OM|QV*WgH z%#YZ5Q>8h~nV3J%;amAnmH#*wp67m*w(_f&jk#9Wp}I^y{uh+zcs*X2%P|vkewk0t zMp1YVSb8&gE$K~^_P4yBE%*=Gg8!J!_}3{-nCbFANw(dOUKQ+zsvd!EYgNk5iluoE zR=nO);;jj{bbi@I`BiD;7q{i}c@pIF8M!`RZWMuWf5$0OwIg?;zkE0Hn%T;_so;j@rmLwf4%__EBS~*1`a%K5>Se5yq5GyM_ zrvT-(VlS`m14PHCyf7D717oL;28sDc#9ls6H7M5?N}k;)%NkSSYnRI%cE9Y3IYc+^ zGr+YZ;0UNmB~|Fhx~ljqCwbo!<2IGKL;oQ{^dzmlFT@C*>$_ zM%<*Of`wf9V`9qh(3AA%DxQ%~`_uHNCBYvOsrm|h2Lj_3tVqsPe--i|aAoyuv1hnY zJyO}3;kYFDOoe0%);igh?DKkwu8?#^bge>aN$@tZs{4qZ-y4ZZ^=U{S2F_K_fxb@` z)4u8^<@W^_s{f&z&hH2ARDB_MIJj7S2r1Yf+_ieCZaIGdxJUKJp&tmYNjkBw9$T=o z>aF@%(mxg$w#v{Jtl(AKejzXVIMS?TR46Cp$K%iztd*$7A16w<5pBU*p@_63nA2vm z9GeVGs=rSHrVweax)BLSU#0)b>d%9ZxmEvc!HT5HoAt*PMRv@w=2=^?k~!_qmK-e! z{)KRLqvFml118l4{pFVj`K%d}tNowlp(Vj=tetJa8aT5pSOa6W1uL+!`X9*p%p~DL z^?qc~YOrm=dZ$Ens=h;%{Ac0sTFsPCe$C}djkaLzm(P|2<1Btq4lN0WO_Og5sD;1Z zlf+!{hb@lE;_?s_8IXh*q z(3dD>q+| zmm234vb2e&{zCw&iwh8(F#vn2b|qBD+@E2;SYo(!#}27WWbY%dAd)O;;Zf+ZB80}7 z8xBu#S>`^=+`5a8Q+akuKO?L21kqU%e6Q?cXlHu`oD{WLU7{tyM42n10;(m!R3x@w zrFM19A+s|de%OL_J2i{NK}x)q1cQ^}B{&WYj&{W#;24n}Adf=vOGq1)HpWY;JI59W|75BwwesByco+g>vf)&vtikIM65FBH)o4Lf%WQ3b$3s!QV8|_9Y zPZ4$!?wETxVJ%gMt1vYuquG3%ol{@6qi#d&%`s=L? zW&fCJ6>E65@XDSo;+ANn^m&ZPb_>iefu)4t_ogvn`;R0U-94f%Q z^_wWr?yvk`-Rm3?t_#v8r^9-ulhQ%l>&hoY-t9U4r6=(GUn_JduGQP9zu!|ua01!& zqDVa#%0b3=P}c4~CrM|(f@VwoeWKng*)J+R5?y}UE2WI=MFcV4^3$HjJH%YJvOtDX zy=u^yO7Gh!MurjTYBsj*|C-<|`6dI%O06GH6cfXUboH_F??oysZ_6ooaegB&?=ETA z66aZP?kcC{qj8=@HQFh)p+&m-W;hSP#4=u$D1trYE3k+z$op)3R60giTyXw;X6 zK$~24TFBF(11aVp=+4NnDl(iN81`vlxHmGa$r#ch6w1CO|NalkpZrL6;}nH-8THu) zM(Jvf0;ggu+Z7`C+W#BeFK-O$qK5;1{|s;r%FQe~qyNPULV9{}XwJ*wF`1Mv=kZpx`k>O79-P{EE?xbcg4Cmu1?Q7l zD)Z$$&Po68h)f!j!7p;V?bEr!`B3i$PexFONP&CElj4zP#ZHow7u0+7*9t%6O32qb z@{m`RiQ22Wg>jFgRN19#K`HF?N)ZG%^B8C%ec|+E~2CD}uDzjk{+{m@+LGs%_bgTMtW%nn`cB1$Q6C zi{v*euk0FyshkkjcR)J0_1@og`DAeL(wI&_&);r7Wo>o}-(86bH<*d5x8$Hh(_fBc zTglh+TN0rZwYs^1qN#AE2S#y+y~4z>tKjasa>^ zL;4S9x{7y^E|IVv3UC_Mk9D<90584Y28M}PDAcA&0~W83*1YASuoHwbj5plL8MIiL zw&@Z`6Y(9MLG$G+)0u%p&p8+-8AXxFg@68RZV)_HEq+<@6%zLzC`0{A_gnur?J2(% zTfT=cbYaW)(&p|egQymzw_0iYca@24`7X%L-*L-#@isO~hf3w5eP8D-oRjSYFAjYL z%&^|npk)QLFqQ}pQ78Od13A8owt(54A*-MJ9TSZ-_q9Gh8M`tF(N_5NdYh zg#WZa3H!?{ahU|}EW5wz5PL50tPH+EX{&r?xS8^*oRa`9tEvqD$Vr2*r6ltu3pONG zoq{)+X}Oi^itT@i2=HmeOUo*wr8&sS|*iZYFfppKQr`i9Umz-=m5q-42{ zpSXznL!s0v!+&Wr7IY81NlRn%2WikQRd=Sn_a3`G0^|~ zArhfI(5C9KIhio=;886*W`@HN#!nt|@Wf>F*h9xoZhKI|qzQ1p-P00Ak3aI@b5O>>%;HzoWvoIG#Y+=ig36lhy_=EBhv zl<@3`fRdu&CQe?Ek|p|e4cE;+Sf?jjwO71EWd5;Zi&lqC&|7B)1kP!OFe zqH`5o_=dRCyA(MWEt)?MNlUW?BfX(<<_DM0Thb)1nah_fop(}GmN>qj9Wioh!>BP0 zqsEP#G$}cHq|}xhEQ6Gaw>ro{%*XtfpXP83<;3|DTXCer(HV1gutTV$*ZCZB9 zVrodN`P7x!;n)g0p`-LH2d~BYXP^B=I=dq~yds%2dE`VrmrhMD)2%#W{OCg_It|P4 z;Jo?dh=$oGH#W~tN;#JuN8(P*pkjtdPeFZdLDPbzO%Rrbvoad8(=Qgx&@ng5LK~Ew zyupDefs{2$4GWuADA0l#DqA}uMaSLfkOuNX&%qLHH_yY@i2m~eJ!Fe!>i9$HO=j&w za>%%mhbD&}Ii+S)rleQXe*sUk_?ws3^q*7Hf4nTN*$Wr-r^~jC(@jFJN2T7>q*(Mc zE)TbIQX?%2)cMII<2Q4{MdwYXFM}zVOG>FEu^(!nUHx)XK^M;D7}`0Q)V_VQX~3q&T9%s9EG=&N)pX? z|7egwG?%LVlMkk5`O|k6@2UF>^*UC8(c{OB8>xpOJUjn5HBO$-onUXO12;yo=OPVT*5ochQ6z?MxX)jF05bR=`Wy}+d$u2m^n?tGUz=r z(iuBrh!?z*Fr@1o{YGKpf@H&9&+-bLZP=+F6>y`*u0 z4*GB>e`E)HWT${M&X}>J>7-WPdZb&q8~>e$hbV7qbdi1SbYX_-S_OzE7j3EAmGT=B zn}4lRKrk2*6Tx=r4#a$ETcmSpsE82T_hlxM55Adfm@@<dq(*_2 zJZ4PB3K4v~ca7DIsP36~nTfP`FA%mcg2`)|`>X*(V}9q!?d83!4DBr%^0;l2ca5-x z5lp)6sJ-!NSfVk%)pC1z#Uqq2s$|I9Hu{mzH|rwIAYGW*yJ!K3#&~A%ZmwyuBX_XGT3h-TxYtbTAGJLs}}c}m#A2qp!| z8?lLU`zq~a`@ae4q>D7jkVB2E`ga+e-x>H*V{yibU$lddXV zUf#=tljH%HUZbcBj}zosx>L1sdx?(W zK5%J>G%9GA54k1lPv~la9c4o`xj&w~% zIeyAXk4Z4}HPF{3Z_MD|WDeQ5X)ny+zT6zLabMNOeSI7Em)f{*Yvca5+}G+lR2S*_ zejEQEwQ)Z$_eNdh1pL3pU)f~$!@J-5O!%{s$NEaR>*cmS5^gPMNv7-K3q9_!!t{M^ ziSF^jX1L#3ZQP6Hwmu8tPjBPTR-@K;!JjQbF*UljRsFhNZm_v;lY4}7OMg1f8ufS4EEeqhwr<$n#gj)nv5RjT0FgB>5`^K##Bq~ zP{yTUtS3S?C}|nPwoEX&LFc9hTyYrMau;q0RGMrn&HK0;^n9heR%#_M%rRwZ;z4d4 zz_pn#Xf^P&X@YDTDjT_PYIdqLgTOEe;Uz+tm+%CQlY_ByYp6#l4X6zDIHj?Yp&d)< zRpAY*Om4PFucdo*uc}y86M&A7>6f-5iB!Jm&ut6MzBn?t~56C%fOMo!qG$f zsCPStRxs6j8B@@e@^X=>(UtNi(_2?s8(>&VpVnk}s4NRR92~=rcJy(MJ{i25{$!@= zGCUo;yZ&Tm=}K$#C$m^rs&^D-r7pv`i>#fOIY$?mayUO?%Hb0clU-LvOgU_fxL$Um z=aaC51Zii$!-Q#Lz$1idU%-^ZGO+Si>Mvoe1)VZsy$hH!;qwnXopjYjOnD5Am`{hS zM}ePm`$WXe!n7^WDYq|1yh4~Vf=;=C?Hr&Q=;GsE)O86w_=BrsnT~)io^i4d0ZUFH z;_6slXGD69Y;ZL|<~zFJr~JXywfd8JKo>Hfko{w@cT#miVimV z&Cn$WI_d1d6`IRjV6XYK2ezEX6s z(ODE_^5vCuu5Rfwf_d(^?3^cx-`b)c@GCrq+cQk|f!oREIYbWigv;a%1IMt`75I@o z(%~@?Q>A$(kuzB~m&u_lP0loUBnR1z4$qBvKiT99a+b;FGC3>2F+JoFa*%zd!{y6$r%HVa>l_U4DBd~ zr$&6F?CD_1nI)UczZ~%|W#0~#%x}u(GMRUQqs)8Z5k5~BOF|7l9P!6ve8_o1G%l0#6gbLx zCi3&{q76h2_~nSdD$KKOI@<+s94cWMrq6Gfu8GN~JB3V4PhDxJ0F(aUD2MqW!y_FY zOUG>hKv3Q>TpwZA-%sIQ*Ey&pOP3Eyll#!+SeC%HatP zAMfyq4xj8W^P?vJ5{EzQ@E0Av-QoKj{)NLE9e&N>cDa_gIy+qBFbX%8o_!rY)Zxhv zH#)q~;SV`{p2Mphe$e3`IsBr-L6{@Ct`dcld0FFLwBo z4zG6ja}NKn!?!#9ZHMo5_iDQqw3F>IaV8R78g$Ujy5lN|pvhnpNe2^{bDQgBSeYDZrq zOd770%&$U^X}HVbha7$s9A*B_;ceA#GWlJ=k*B*b^65wK>gao z{GWE1v76DabNKTPqseJJ?E7Yz`Aoy?0cUuF!%sSFV}J7hc}M??!+&#FUDqU4JBaC| z%i6%Au*LOl@f-a?VdhCOKXmv<5o<`3F!uqEx=P8@5$h2x?N3KPg7*`)Gh%rz`$hT)VaBTPj1p#z6nLC4<5n;){eoAMqu^Uyhh>FJFuJN@2#@$mjd=-4S0a z%(xr+4Z;sa{CVNWBBov05b>?TzlivD;a^Am4dLHL{2k%nNBn^BUm|```0o)vB+T9g z#QQ^G=?MhxDZ+e2Z`~;yZl?r-(l&{I`gg3A0}!ah6f2Jl)}DhiU6g&e;xM>~NU7j_JA4(P@7z>|GA8b9lYO&p7wxWc;HYrrk06G>7Lpyv$+R4&&$hi{UFBzSd#d1>^aq!)qOW z+~KDj=J~g(i&4+J^=jU>X5C#?gYUYh=aXfJlqJ>c9Uk+eM*5PPeH-Wy?MaRknS`Ha(S`YPQExF(bfML92#a}gCCM#@^l`gmwWtV(G=(so*3h^xKn>S#lZU<%YSxvLEV>U~w;9XHxEti7o%J6R*(NNxugQBbIUsf)JhY*2EQrmpfK=w~`5%}l9PI!g=ZNy~Cc<0+_)Em@Z7OO_PY&`*1FmU#X7w^rc~ zYDOVrTjFmeTnp@4QqZ(eD+_UJSsfvrUmG2|ph%bLoR#j$>);A|HC$4F7A_gT31vpF zvif%Q;4*RKQ>*(bX&?S`kHn*)#9*sNm5eDv@r?1LU}Mx41k8Z8R+l|B(BHLEOjC2? zfK1)xzg-!oM!7+D@_NJYezUB`ZOsmI1cssCD<;~jtZB>q2sc2Nmp4Lg%X-0*jD8M7 ze_nyd$VMKoJmNwg=|LVe%!zE07P^j)WmFoSeqzORB_VM62va*_X@ZBl?_VoZh%=dK}#?5}3p$WkuV}ADw`}^ps#FK9BgZI7V^Lk+mBbZz#dDMF|=0`8e z%j+$9@FCB1Qjou`F01o`$%~TrOF%Rx4_if0GJIEKe86*!4B}E0Z_;sDrAS7LZpP%9 z+iXvNCps=B2m8%BDLf%9raap!x+~zML*6TF+b;QK^+lYD6 z{}eIz^hU(g?Ytg)WK!R&Bc_gbjJUrr#=gyX9O|UPV!G-;~e9`yM{^ zybo8V6DBO1Q@P!QDQjMyvaRrv2Od6kO7}g4CXPd#iLc2lBXFEps3vA(rMqc)-J~M_R{ohCy7q8dqL>oGB{vXt#8U zhPbD%t;rroi>Ku{hI>IbtM%!s(mGHO`#mAI4g2Es`#T;Z^Iv3QdJC) zXLT?Ar9FQyTDDJWC0}d`_v^2$e~5qUr$zisNShrc^R0KgWNO6Cg;dy-N9C>wGar6J zWNc@)kF9Q*1S!*_P-t;xb0SJ^rgx;>2R|XWT373B1nWgvp({-$eOT5d8PtC;_zu&R zCX=xa(p4^(w!Q%49oVDTN%QJ85F{nHrdOz z46_~1*efmDXsz`&bJ?C}%-7fkWb8|KdfbwXUCOe#8S{mbZCf^zoy;so!FJ`lgdG60 z7(?1NHJ3x@Xhq!Lr<6JB6fJqHjmfei(40uC{M^hW&081LR?Gm!0x!*wWcwgBgtBYU zR_P55@Ab6I!bMh1S~h~(%v4QC%s+RUhSv`UTXnW%Y?_9iJdYVR@AX<;8uA5R!tj>i z-3)y*p}^6_R(CY~-mEQIba= z2YJvi>ocqLj~`}VU8H+Ue7vv;LtVij&oFM2H_l<`Pv{y1h{p2eP`M4`HB1$q_Y?O) zdMsZ~5H{I@NkNV>M=%(=B``#DzT^#)C-NBLn7k8(Eexz3bQ9MDqA|bIU{b z@?e?Y3SoaA_v#_#8zu45@3wd^aA5?)I*l4YG$!vnxxKt~dT4u#hCJE=lXs1;K-$AOdwW67UhwE-#6-Jaj zOMJte8y*Z}7sI$$i_bqt=Jx~n`TMv`-7TIQ?t?zL-N#eH7Dh0+R`PBIL}PwGliSN% zBYE&4uWR%}K6zx%hF~&PH}wJ_8k2|Zp9j|cGKbVdbcqgescO7w4ylKp-%+BQF?r@T z+tc6491?M3NMqWnWVk}`arp1(pn(p1y)D}}7a?!iVkrwmjIi_NZ zr_k2yb3(b9;a+JcG1PzNl-l+gUC%(<7Sel+J&?`!qk=rn{K8Oo*j66H`?{!d#E>)0 z4_zXgxdG_#_Koy&WiyWg&xd6*_OY<1M>=6C5qP*4q5%_6eZ*(W9vJaKviEd&Y{c-> z)hFy?*-In-ud;rNI@EPPzVlv`uO=L)kf9hv6~ zvqlqqkuW;!V9E!R#7Hcfn3RqHB07f z-*Lv8ljm%|(~LEZb1omKg;PnP-SO=T2OW}2W_+%)uzl?{m0H9)<9e;VDSWv8JI(v_ z*ktRczK@C@7hqmm!yA1^GwC^t!t zT;R#2?5miv(ajYZB_R+-bC5ivn)7>JzM6x4Jy;cc%4(T|yj@jFbC6fTSy{mYkjv$H z2Fj{O%8~yufeH=4`v}-+m7tbty$t1Nio3ioly)oy%{8WDge!98hkZ+S8~(~AtYVEAt1HV7<#{gLfzYu;o)qo|ANg6qoQ_AtG5&EmbQ+-G zq!WSc0h!-n2N5Lbce2{EVp)gTE|yg&$9Etw9%efdS%qC74+2*fX38_eg#rrI8IFh9 z((~sqTQpRvn66iC$P%uIt`XK@wydu!Tt-^<9;yGN@QM;oxFn96bAjyB4TM`2)Z`3MWB75L}aVdQ=vN*|IjcaC9o4vB0eN zm_H1>YTF$MF^)9r`y8!cemstx4jQCAL%$)EfDW_$Utt|)d%mnJ$0h@l0=n|~DI*1Q zg%gl)^rfO#7On>$!!2-_Et0A}r$4SJvSW@lx;o63%xTYBejR4}xJU)+Kzsn-qX#T9==uwK=e+c*a?}++ zOqh>_F!jY}aa<4_gNl7|To~dRT4X4Yzc@t!dsy*IO5u|9J8}#!PR8fbz&4^d8=uS5 zhvhT6ND1hOS+adhaR90QbV|OCD?X3os+2=Z*B5zWbi^!q@Jx0<=hf*G67YO+3;&CbcEoJR^>8ro*G5WGJYp7Dsgq44;I=)43x$y+jg4pRVBkBx zEP0&@3q{G_34hl@7jouX6jP7FQ_%0GR@D?PLC$wSq&RyQ&L&a!eL=Xc@F4tae;{06 zxET2lJ}+!X%p%{8m?f2V#4K@*DBOnpM}8;%(S^l?ee@r~cEl`U#}sG*^6TNBP#6f_ zz}t3m;Uv=V6n8hZ!2S^Vr)g!T6;?w375qA47K=*Kh5PBkjdTf4=*rDy@=`mBibKa7 z*%<;*U0i_Ri~(3+(Unjgb7#W-5sBf}9Xq5hk^L5Uz+_1ak3zG1ZD=sL;qYvgW$q5D z0>Q1ecPDOZr*v1Pz4Oufct1Drh$=bWCpN*C6YN z*_V*mNW{mcp+zoUk;-vgOwvXqejxZ%7T3WxEd=3+S=c-OP_azV5wq-mP}CO&j+mvC zlH%dSKP#nRbH#J@uOnu06pBBGZFX=Ji>Pwwh*`q-C=SIjH^kk$IEIAG3v6}8lM!%Y za11K$jnDkx7*^aHpXT5gQ9K04g5VgFR8iP88R4cmVwN1}M!ONpQ-m9ZJLWzha>pER zk#0QsRs((M5qjOS<*6C)v;}=T4U^ z-_o8irjvJGqQef-U6Ju=T{|y`j{9*eiVnKXN>GSs>p$#e2lm-vfMIcRySN5AoD5ju zPX?@PIqgrC*)463U-JCPfQ1%bP6qr>J`(UPK5lkz{c*F0obdoa4&&3#C?%)*r8~F& z^htSyj}ZEBxtm~rUD=0A(4M;FfilaOS|Xv zk6%#-EeA(4U!}-~V-O^!eYD-Fs=9R&A@S4bK>O#Jk z_qGGE@>SjRWi>k;D*NvczQJZ+YcoprCH9oC(%#Y4Q|FAb_%&AFYYl}{$Aa(5@CErp z@hdaukL7~&9fGU{@ene;0=uunA!PQYxi);+4d-s@$SO?;v^sc7d&rUxoT+oFP7kr8 zr`)M1+4(fu`uF6ST8+P8h8_I!c2A4ix^tddz6-O^-7lAKSRT$VdDEdzOJ}z|#Hr1B zO{Hb~Z+Y}m!;I$nSsqXuIEG7S7=;*h4o^5MM@Qi(19aP#0}Ey>aR=edUYH#rHG5&m z%{e-_X10k^RSH}99yD)GIEQCW;?R$vt-`l2qsQpc?%VW&;|?))j|s&8nV-wHlfQ9(yt?JLMAmXo!N3| z%$AQ{YOp<>b$ZPyO^r*EMcm<=j#FxLMv}Hbo;7cllq*y^+383Pv-M;)&*R{lapOlF z-k?*@rc9hP_UMBfCb#5QwgzCcXCX;yxP@@gM#DelC?wky`=4?4QOGn^9v!`;8n<}S zQtGa1+rmXjxbX#xw45b7GKa&Iw*HW#&7NqaRUn-2w6(_%HN=C5RG9yYGln*ChS0z0 zydZlKW2;wNGPd@jmnghCu<=*dG<J{+)vo^Q8t#Bp0BqH1O3V!H76>&n=a}D@)+a{)P=mz$&md$ zUEbh_q038IZHX`I2ooYR>tt~+X6!x~r5eVsP8l#+Ht8b|EPY1_TN(s|Ngww5>h7v@ZKYdB`}W&?qB@m& zT6%1kbIG>5LF}@p-qy-0$t>8qk4xa~-KrC}k7U?WPpV*#7oL_!nChv6xjP3o23yB> z3vcgf*_)=7*y|YA(GE6iAy2&)!an-8fjjWZ!Lf&Ft1S5EAoS3ZmQ4bW*Y*v#+Hq}U+Kn!0g|Q11 z*XDXqPUEhQY0qY#GJE^>?H~J=H{1{6;oi^5M>{^;@eIf8v)P&Fc$wql9iQp=Jja(f zzRK~p9dCF1q~n(z|G_ceq^)d>wKL}1v+v&={;uOY z9Y5$8e_m$iMaOSA=2S2peB>D83&*&x<6(}cIiBlyiQ{#SH#o-Ei`l=`@ixalcl?s$ z-#gBzQJbBPj`1^P@;b-+ISxLiV_OYArXvTx(vgE->Bwifyuq(@ln1}kk%M39$ic64 zg<86+A>iAj5e{fu+j*FG2ljB~F2RPo}F~7lQd8a!*)^YGL9gkP= zF&#Phn2!9M(+|F(blON>xaL3p(`)V2m#dGme>wiV zV+KH&{?(4Jb$p}a?>fHAG0#?J=V8Y`bIiTWbe?hilH*q#|H<*Yj&b*6b{KbMtY%&q zpGTj>`Udn#Oy?Nsn|!gjb8LGy7K*me66GA{lOp#MpB9;8es*N~W1oy%FXkIHHfald zgM{g$eK9iqt1BWOD84Q-ZG`(K`t<9zMjk7^H}WCkhayiF|99kR;wK}|5z^YGVSR1kynZT6nU+fckz^Ay|^MW{mI=TZxG{`4jtMT!Nz)e&LNi$!S@5HQJM{uX&Z*?IGh|s3)-&wz|^9y#dCTeDg%r97R}k`=m|fYpdn;>_@6U= z;&&=4?;M#q`OQQ1*qch#6m{J+qqg^)eLnK-j!U}CDC#z#-;8mon$4-2@!hm;a_>zw zwfpqHsY7j-!)j(^QZvSP%M}e9C;x}-UmH=RQEuf!wUI4)kR6)K#BpYww?2JO(__?KE$7}mptkb3`MFHZp{bgNZg-WWHl4d^ zN^PZ99XG$G1X);jj&^EF``Up6Mvojgu~(N7m1CxC8PIz)V|rA~LG4v3m3P#2IQe&F zYqmA*nEuk(w}y7!TGjqFwPDR4uD-wMvE4@WezJJZsB-Pm{`>Z-pS|THqtg;p4$2;| z?-VXDvQss|Z z)9>qiP9}B!e)oNI;CtP#?oI8#wNjUj`&ZtyfZt1w!dS`1Ix~di$x;?RH&3!%UDxYoW@$#sb2fkLD zy{ogTeeBDX!?LMyo7Yb4a>%&NCrs>ec+KXf{+Ap%rDRZtT+!0$iM1uu&!0b{vVPc> zLp9E{WaPk+qwc$7Sgz~&Eh8$AYpz(N`puGe6Ki{sT;U-)H%f(&^2<@u!j7| zfi*`2f0?|TP|<4!^(=k1Lrt%e%bqP$(G%gxzpETSRjxL>2l4&YZf2~Xhxsx=w4*4;Vq%ClcRmKF|O-ojJ@lVI4 zYePDDHWr5S@@B=!n8~W(xbFPS1w|KTKUIt#r#FFfnCo|t@i{SE#51v{a@ zKq`X9Yu*>4vd>DQ@tO>U)12|kWVCg>roNS?G+y&|G|NiYD9Y{u2Tys$*)US3C=A`q zo~rysx#Lh-A`cz6kP7Jv#+yGV*AL zpdJ6h&`pN+Rg`5X(yVg$M9oefi)wB?e8ks<*;Mucwmq8twf#Y4chLpRA3hi=}al{R$qw1PYi-Q=J#bQ4E~<%|yFt{)1n z4gF56p_}|bckVmdf(_k#k&VWon}0?=a;*NB=b zhHl=jL~Z^Nwqrv#_s4(@-8_*s7l!Q&&+`&OLpOhw{LQSnIH--u ze~C4pPXAnMCgeE+8oEifPs&fC)SpjNuMK%xwuWx@)o$;|b8FDhP3qwJd^_@7o_`!-gqrNe!4cz+yI%K6vT6L8B7ZQY_o9u8nx8l&vo|e|N_ilEpS9++5*X2TGVCd%2 zTAvSBzutjUdHg09hHie1EPX>mV(2EVt78_MU20SehHhSsfyErOg94}We;{#iNR;Fc z&~^$#HyP8~cIf6U${mZ_<*;-zbn}l`ypvKKl@3?r{7YI>7`i!Jt2K0!HD&pASe%e&!5MdWg#&lKb!cH@E zlN#vBbt4>42^hxNF}q0Oj#=&^JvsBO1w0d0GMKYtmM>1(Ce>5PEgQ6r?5o1k;T)Wf z+43@djA?(aBt6oTPEaBje)4QGO*Ykm!5HboXt~)A8qSbPAAXF)WgQl-lDq-Vby(4K zVk$ia?v(qT?4*yN==t1D`k$T(cg^)weWs_u-BMXLmY&{D+uDPBZ~7~=T*3k^=}r8+ zRb?1Y`V~$dLa!?X>90_xYAuzaC?VTA)^60l^jF5}|EIO=sc~diV+7T`I#P;n@T%xR zCAGusW7QbSQRP_-ZV=cqw28XqHwqPqog%q%SCB6y+>N(1!TN5jdfCe=;>6d zTh&)Hciu?PkQArq>EkfW;~3q(^rpvTIN77)*rQR(ne5SVm|db|WvJ-mIO8uRDOWkc z#ug>|X_Kqj;$GoJ^O~{B^OWTMuNUm2jrZxH)QnJynVHih++(B;ZTd(Qhilcriqo5> zx3fYVNg>Kq&ZH1WQiwVwlR_NH(Vk6Gg$OoISAt5NOCeC~Gq140S(#Jf&d*XyU!j$y zXQemmO~^W_(APB)A?zNKbc z%k+TK*?ez=R@=xZDV|9Ot%Lk?hQ=?^FDKLkidngs#ONus(m;dc14z1HcEUM-( zBu4h(hdhh=CJA+W|1Q_t$++}?yP@d)RJ(f&PMZtxom_1({M`B0^25*dL3yX)=XWSO!kp)a~;y5`pn+<6PiYq>9KKK4_$Cu zhra8iZS{X%TNqpa-tE@K0!GUNTv8VIwhiGzU|{RI#3|SyZ+BGi$v(IslDGEBT@vAt zf-r195!M&HtV@X7^`QkVWleO36?B3~ca63>I!=UvS~OOkXn~gZj>+#D6lM}>r-H)F z%b~rJ6-0G~6%c2rM)4Dw$(ffcQ3#zxa%M(k3bWcM=^3>8gTgE#iXtyy?_Lg|txf8G2qaf)(Vi3W!n*CAqp&C_%p@{}*8Si{e`QdZLA19n zA?ehyM8mYSHHPkmL3bum|DZdU$aLG<-5hjh5e*8ujYOu~T2g6iB<*-7kHI7^d>G1q8UWj1e{CsO)W_Yp@)+dM0`zeTl963 zhAv5JCK0!39VeoB0cY@mpL?{VY?MHrQ?#hT5G7?elF010?gF}r!fc{9WGR!{IE@(P zOlr-v#HfDmO6%{|qDDu=yDl9rB6lP{&8k2yxgLSSFg53w3~`AukJwSpCg#l#9NWP8XHwvaW}+Fqg)AT@3SYqF=?L z=ut88x5x~f3O&IV{3l9WBF)lZC;3H;60yz3i8FdMgPqAeXeM^hOlI=z6K42iLP<_V zDe7dx%$;AJDp!nYkL2g^YT1n79CGHHBk~q1%{j~Dk3fWExn@?6Gocyv#GAGLXQc_#C z8yy0-O1_m2`%x0A_hZ4F)d6KJ300TKQ-Kpn*c-h|4=y#O*jnwBG&uyB^3LL-@^0Zj zn>;nv4f~f=ezM2*6DMpj*%_+|>f0pAVNGh9tt5^?lU+@AFI(PK@^ra&(#j@9p?>*~ z-%^1}v_28Ox9l8=@Ix%xX0o-U(Iw?dww&lBdw@=sMr2zPVxJ>z2Zc6d`+%yd`U5yjcWsObEYt}DatEnjegz0K0ELpg+S*A6~i%DNL=j()KKL?J9B`ph^ zlb^CF%ro<|)^vSqUa~e^=UNsnT((e?oZLLN1?yL=I4PN&vt-qJt<%1>o%y9{XscE& zTgnWcmc`50EB1S?X+N6y)w1;Xg-H>@A=|BHAv)s6| zgh^(qRVKW}`C`c=FT3qDYGpFNt!cq=>otpv6|us@WWc|F+8c&epOiX5hlIwv{~WA;>O{JwD^{;x8+`O7GZA;1 zR2SRD2X*y^*fC-9OCH=8G<9I!TX{)$&0{OspC@cv$`5`nsy&gGUS= z7CtgpC7t)woOKIVwlpCIkjQ-tV0?bCeJ!##@L3LqwCv^9XEOO zP`$<^G$c`oc>u6r^ZfMgF+4{Qvz}O;yD$f*MlmlQkiopkAdrT6wSb)WSnB%*IWG`+ zHbH)f7DhS1^R)1!0x!@)D637ln>eF|HwOgdJg--4LH$Q* z2Y3SdJooYv7X2@oJhD0zLH|n0t$w~P*5g5t^CU{3Jn(qMl!qr=0&=*wV&u#-VHNVO z;(elgl9+%TwlW_pMpmO`kyw8r&7(dqiIFpwpMW0BI9}vuidlvHY=Ir?&Eg4BhsX8Z zBJ+?>piX$!-Ajzfo?Ef=*XDHUD$+Fg-(_N_s-j8@$Ff8VVYn7MpGnhR2-LeV>9gvS zcE7ur{H)_x4vuNFw?S#Edtt!_=dic8WN7l+(AeWVH+z%^`^X5F86?TD4m>~$$JSQw zN^gR6uxEj9S5I3)v6bmy$E=>SZz{D-87UvzkHj*yCDl_C6=JJi^p)*_+D+Ck9)`TTyRsuI$~U z#)CcX3uf<1F?rPNLbym5$0MwfNy0jo>tk$sPpNP&zzw8IsciWF0V#^~;jgh@;-{<%~67!%#sFXeQu%~Y-1$$ig ztj!Bkuk`;Le{XG&hF!=W=e3oulbE*X?QIyM^11>$lxA!2^7qaG^%k*T+?r9uoKM;! zVS$#6BAJ=eT357 z^LdGmukE9ETHm}=dg)H-mYve)?3CWLQ~Fywr8y23Xg9Z7LNVz_cS^sqQ~E8X?f#tj z3Rk~1zWJmJ8($89p{Jg_GKdebzK@H;6FmuqEbEAP%4|dfYvCEmT>2!>f$rg{@a#}{ zaq_;82H^p+%@b$Xj$UKLrF*(wsO7T&vQYObVQ1##OMc$%H;y(p*>+YPF=fC@2inl4gSn^;*(&U=@aI zNz*x1pxvhFWGRf&lCIJ}g)v&v)lkw;OLGD%aOTs0VY0Iu@I1wzk9@u2XCiaa z{G;RDl}4XWXJ3d+pO(*2$mtXQ#xe6>f_=q@L}o;7b7Vd_t#Q1;@mFCT9FEUTkvTqF zBXfMVMW(v`7@6ZkV7pv_SYYh1z~rUs;X1|CIeduXVU7=rJWny_K05F+7-I@>MQj6~ z5u@`Z#hW8vulO6V^l2k-MQkUxBbPq+v7bbKUh%_`sejVwz%NApi(J>X*z`XYi=@#kUbkC6^sQH^%;X_I>9oZ6wq_$gTW6Ql!I)CBcZ`y$C{*fDfb!_SJP znu0lZSnRh7Q1#chF0w_a(tYuDH7e?GJkVdDSdS0|roNCbRXhfkoe7Fr%ns+L zZMOj(>7T5azPj<8$fqe@0?W>F#VlrLHLSdZby~>F^ZQATH$>iF@^d4P6kiyb@A#L( zvj17dEM|Wb9PMuwW1oBfm5#5Ce1haRMm|Nn1(wYpDP}R7+u&&PK6J#~j~{ZpBQo<_ zO3>%UgF;SAng?_R`k%&JdW<<;%|53D_6gNm%r|{Fj?s>~nT5RjIUeo!aK{?vSfdxOar`C6-*$YP*NiN z=Q!5*=z{%=9dm88?S8}Y&5rMI{D9-f9lzlCcaHz!xI)L)w$;ONAIJ5MM?3zgVs!SVMT-{trb$4@(c)iJ;OW997Ncn`<5j`wvu&hb>oa~&^re7xf`9be@5H;&(S z9Q--NbFh0^Ynl1&2`hi2<7JLdbbO}c3t*j}gpFdmUwjQYHynj)oc?#5{6~)OaXODU z`O}Vn>2!YU3f`r zJla3S>7VQ5pK*MJ;~Sj*51f1p9LsQz|3#>tz+Y?r>x3CN@Ua~+=#$Gn$0`6eg7%E@nb{3FNrIQ>VR{4png z365nBKmQuJm-;~_AL{r3$5S28alFRy#~gpk@l|l#$8S6N&0^|@e%gJ=WBokj^q+9@ zXPo>MCx0D|`?8yC*tU8(9`1Oi@eyUlcXt}s5+ z@uwYs&hci)Uv>OV$Mjdt=Jy=acQyHgjvsOSxZ|fBzv%eaj{oTRFOKn!VB0Epyockx z9QSiPz%lc*%+46cyiYLs;f{HyVDcj!^WMSa43swJ8>%tSPR6G?KEv^)jz8=8a>rLV zrtfVwc{gFa#qp0E-|P56$4@!tJ%ic#m1Ev_nf&*T-*#N4bI5dZj**$XyW={?gB%Zc zJi_t8j>kKm?f59i^Bga5yv*?`$EQ2yorab9e8(3#W}=(vT;Z6R)h7R@WcA8`DzW8RgR&P$Ge>-Y`FyfZZYzc?;df8OL8Ygk|==$RaUbjH0M^Za7+!H$PH zW@4Y|OmaNc@l3}&sRF6y?|?)$$59$S?!y^R8C{A zX|Sp+yf1~-^$hRuVRaW$Z$=%q^T)_t#3`*ur-!g4GVh$Yz9Fv`b4`Qm#Ct{_Ean{r z@_oevA|EW~eFbvv|GamFCyB>KK1|HJSL6+1-oe7WJDe5yqvE3@&l7X4LuY}QaWKZq zBQKJCZRBNQ=JunrM$9`9m}dm8d+>jWc^?9QQoJ!T@3inaft>FEUyRHKdodGW*cSbZA~g^=rQ^@_5a#;>Ggx5y8eJpz5bqJ0Zxhv#tHrgE z`F_N;k-R+b@SX=AEj}PJ?`FqD9xFaHGIOLFA|E225t+WpoXCfXkBy9P>jjbNryLh~ zo_KZSMdA}8(`Pv)GS5V3M*g^%YbNF79WU>c;M2sPj(ocK3z5$je>w8GVy>U)e^Pv1 zWWKT75}9|0Ka9LtjDJz|`Ob20WWJj`6q$a_e@CWY!@DW;IoG*8WLMudy?upDbtZhGJU0IB3~zdG4f5~S0i(6cq8(U#BWEwOZ;x+ZQ^3RqodyL)lw1p0Wp4! zkZ;$bX~=3@Mjht4S!Z8T;OT<$mGXZX9WZnUP zBr;R<32AOLF&J|nvU?f#8{m84B%>BdkXE~ndc)8;f9iQd+BFCE?U+wrN$6FlV z=Xi(X=N-T1_|J~ZI44zyguLS_#{(UYa6G{=*Fm#0*D=>SlXJZ@-r)Fr$2@tSY$B#OG+VLxn-*TLlJ=<0%$CZw29rJu-`dk-`8ywGZyuk5l$0s{J&+(;> zId9GWkP$U>}%Y9iRiRb7OdD0q^evGpzc6e{-~+_CtI9TZ7yK zzMOtFQ#c@7Ir^norMR#}ZFC$xYEz68JrWSW(_h)`KES<<|Gw1WzuC=w9x(qbJGl`;{BW9K~)aFK~pFW~$OG)be zEw?XQQ=3lQQg+^oQ%c!;Z2FU#+AjAr$&+U1lEkUzJK0x@&u#9oEXlxm-5a zS0-CGG-s4H)Nx9OEycUs2W?3upT4cB)d8lqRlWw#os|CVp|2K?d9$ib@dwuCUOTud zDgUnO=6&sMdF-K)O;2WqRd=qb-fiUcy0N3PgW69?zr6MB8_Hk5=b2}#J0)d*Cv#ut zyRxauas4}{&p);DjQ$;SwPWvFD?gd-a-mMuJJWy5!50v-KN#rO0ZbVbf+|u98Eg9MVo?efgU#$+spt?=9 zV@FJ{8?8i>ZV=bzG9#zd_q(L-)|%=rb;n3rcV93T{7{;u_wz&9dF%EsW~4tkebjDC zt4|twfm~9S-!Qs-N||m7WpYyo9vO58N=D%P;5oo_b()(KO1Y%0P%80WY31OYYAr`q^j1j`qV-P| z7s|mqu-6N=$Aof7kI^xSQN2*9RDv*18|MC&l%qb&GZzK@yk59ce*I6=M@bJ-T`epL zlGIt0RzbciIVI(2jjo`4SNFcK)L<}-<4UsyJzH(I%|tRgY>S0uO;M>m%I*l%&Sfyya2mKRFio<4}& zSe}Ei`K%oRwsB*5HsboRl9uJ@)|wm3675jJ(T(N#T8SIWeH52h>)$3Vq2SukNNq@N zEa}hYD3-ag?1S|YV<~8EFX@{b%LlQ30Prtc|KQx&S zN~r!#5ZU@zl>@=JbKRDcglp zS~DTf5s({8s(n)a6qQhJEUDLqJiR)(v8)1zRw14 z<1kg`Mv-^x63MG_yv;7YbECG|C)bA({#bWhxv_kKn%wrhcwp{W?BBzWYMUEN?3)`) zO4-(pCAYZZhq%H{$Q?x9hx7Vxzd%mjNx6&B*+JQ+qc7*3~hK%`P=625u~G#K3ke9~3y1XKsnyShAud zznR3CG~e`cdA8ivjpdzEipA}+KCQN+Um!15L(RWIDUM2qD{_7a3Ht@|?<y_(!ulBmz$#hPUyF(Q8sYnF$^m^_~k<;D^< zxv}J6bIAxhjT=j9peNUja6BczrDezL8i_k*xr_AV%(oWsN?3_w%Z}L!{m*_wRa0`y z25lpIjQ*9}`$Z5hZKcE6j}qQMmrl&|EmPCM$s51u;aV=4QY8 zM2WFerAK5|p)^*x&MPPdLZnjRqpxJ4uyk7H^QQWBQ%&vOsdRegMJ4mRPAi=qI29a! zmL8dTRV%XjE45FhAIZF-L|L9*ROy_|+e&bRdn)djWhXjjDP_m(h5BD|KgN#Au$}g= zs?vI-k7ig$E~gz!e{=~&>##^Z6Xzn$=B|)R`WT8)mTOkl^s#I?mwO#<@Lw(k*DEyQ$Nfm~Ck_+Y-zMZ;>q=8k|xF^}WKc*PLYbKZgC( z9^YXf76fw(3+5KInp@CnZUGlE%mwwt+;L`ZSuj_HOQZD72nigS^rm0QZsN}JX6zDb zLJi!EZTio>L(#(RfG&3*?fwt2$GX0BY@g{M;7v^cE)_t(NrK-A`ln~gt7iYiX=JK) zwX#~*J-z80>U-C1kmv$w*L_mJXZAYA<@^%(vY;fb4+_@`h6(omjv%vf-auZ>tL&-M zu|URSwKim21CWt7w88l21%oWZU`!3hOy5hDpRx-1G5`)aU4Xa7{&KB(YAC!`_5DO# zovOWC8Lw7qnU?gXPwGjg?!P6vj%__Fcno+|P^{CS?k&Mk!2rJO90M@ihfc-7w`71F z7>5aRUPT6S-Ug79S9rntbAmyZVKBA^W2Z0g@sk}G@~CjWO!ZICP7hPz)AdyR$)Vy; zk?P}7b;!$t(}SYzphiygebX$}(s1+IiKKlrXyiy;KZ*W8S(v9@qgGTmN^k@)QNWkU z0n-Fu13oHvP%w~}Q{q%_Opuc|(jg~9C_~OZ0M>bFJjgN(#@1l$^gU8G;t{HkIAp9~ zoNTrpA$Fj_H0y8IW=iK~xK!{Y!?Rg>)A2gCNjtxrc7B+aq@CYQJE#9w69!D)&1w04 zlGkg8(|5mHrWqPa_Tln#KQ{N30w=)(oCLh|>^*|B{=u=bbFPv@dupTU?Ih){b=YT= zl3SeApJIvE(5CQL${C>pGmKtLtrR+{geH4HveA;&2HDK?q`0E*4y~A@6~mqv%oFfa zCR!O>toCIH!wIa-sO+Z+7Pz(jcwu&tgr=UVXGlfq(V?d1X=R^KQ$JOnq-x%!YIyKU zs^(p)<{>TngsOR$s?nL)j~C@M6CDp6uqL}VLmjVwqV6|M zxynoM805P``>SE5%B~!%|I|s+Nn*R*$(q`qk3?l(J%Lb+on5EJcRZ}_1>I1)ze%~aa=c;ty4qYmW zI_%M5w{+){PTjTNeNq(_2T3Hgh^mcjw^ZUDbg~}oi~mjiq;^SHR2)!oU@^`?+xSbZ zszBr%rH1bltrg~+r0V7x-HKLFmF6Hdcn{?ejOp>2alx~wIY^b7caR#BI7scFvczN` zC7qAfzOBAc`>Z$ou6Gq`C!I^!$3Y3| zBF0MHR1)*7sxSB|eXrNmp{}?xILrz~zI~$WS9V3~hDTL7XidDX?(3bR;$l@F+x?~z z*Qxs#M4>7Z;fR9JIbt1IuooS%9#GHF&?SR(EwZGA0D z5avwF*CMmTj?f~fkwm83>T6NLRDUga{3ITtMcW{n7H}?6xMPKlDv|UuRx6IKP&WrW zhUh9SZ3{C;l0M<1xuAP2k?FQp69!WARd*J;i-K+=k?FQpWUKCMbQc8OV~I?+wIbQt;Xz>r(fojOiO_WwIY3FQ z=@k9I!qRy=T1(qHHL0u9R#Bl&TSbLBrRVnXu<02@Hv~L}h?j6lokH7_6-0Ee+g3J4 zP7De&i9RX?xv-r>jIvzV&auOaDx*8(&6ViW0cR4K+19$gNYW#fzkTZ1OR^iYTFNfb ze?*w>klLt02d#43Tn7z5x+J?snrni-ZF-B${WxrI22uE~8GflcD6nU|x6olB3eT{q zV~Ac$q(n)cLgjr{qRW%DMB(dbYon&Cw?vC95{2)gsiTPa($KaB(LGU%S^!a^JICv` zHdmenrK6z!SPb^aEhn|Sk0aj?c5;hn zhQxc^U_FuqZ?p>*E*iXq1A#9Ek$TJ@%FnH`y`OK};BQXm!m;JqRz2TamQ-?p)@f|&iJg!6+ZS03POPuu9r&1+lzCsH9p zNqHA#_*mF{N!Uzqooj`V_f)cJSKCN3p;+c07#FLF!`;MzZc(uIUPrQ7+~}Ge?Jt&F z9quMxf1Oj*=tMPfrJ4y<>>a9lx#ev=oVIl&-u-NGbQ(*UgEQ7PZG+Lq+6mOcxDa%3hpd}r_|;17X>e${~%wl|69+l(OYEVM&-TkRSN!P8$XnXSDYg* zTA5nZdJ&RO+2hyodb82oOs<$ug`LoB6^7T_?oopPpbaANM#Z4<#GzBG*e6Xq*{BK#md|jhlp~`h`TTi!* z{0h>0+>QoQI=)Nhhb^pHuPw>t?b?NMtJEnc-&?r*d|DsJKfx9uUu^(##)`hT_7 zqv9u?U=#1Jf4`g8=-*XU6P>S89n^}P??y+jALQXR=w7NFOBAn;R zHMrI5^k4HHYnSiF<@*h9Y7EyKT{42rly@V`rJ(Wuk@MK*=wU0lE`_Vo{|yhaOX!#> z5UW2}2-(^M4^l+ujacu9QZ-t5Z$c=O4i7|AwV=b>3Ig)06%W*coKFqR>>w|X-UM`b z2E`USJV_Fe^K3O#jQooxk6fx4J71NYS4J@3Qs`#FJn`vWY+#=E2xVH}{S~9b!w>;E z+*L7h-hv+%nJ1*(BJ)H?pltKReZ+|DVFf$?@oY*Z5UR9L!TQJ%!f^dx5}7DG5Gdv) zo-y+LFb#}RMh3!>pLM+59~{$WZ*Qx_EAgH!wmKm73@(S>?0#o86?TD z4&=imN7h#FN^gR6uxA0iPEKI^$QfXa?k#e*lT|aKe6(uY-y_8?d#YY5zSL2|7;N2i zrM(K>H$n(U#6 zz3y=x_PFY~=8?KXC)P8PSulIVTm>y;hon+f5^!Ey`KWK&qPN#am-gRUCdFpYi2{20 z-{aTRPMPEmQxxVXw%)CZQq|hZ)moNm!H+4Q{#x%yzQmN@A6e4uRcrWH^lQ3LYw<$6 zKX9k?c%`}1zOEQQpoQ1rN^{&ks>K57CQB$LO}$wleX1oCljc0MK>8|6C?@^Goznlk zQ~Eij=czsQQJnZGZPO<$Jm(Z1*cVwBs`aVDo@1k{(#Ez=89e4BKTYxv^iR60XXah? za(!Rk6;Ge+wBPA?f^i)&9_4t9;{|Y){>9M7Cn+bS0@oRnbFQ1OQjUko^NxEs=5?*< zR5|AOm|T~h0uOXt?|1@?VTDOr%ol0{%*9AynilhgItymw3Y@>@3w18MCsMT&E#?cA z!8>`?8$H1rBh#Dvm6J0T+$^8+nX)VPxvKix%wDBi1c4*ijVNe1P^x z9(BTXMHQTt3^pBgcM3XekMeMQVAB~FxFp|8Ji9-98?$hF7R-oj)K~+0c0lmYqI|VbkFQ z5^~xRY;wLpk(UofhejRR7i>C5IGt%xr(Qa+>0A`$6C{T#*l`6ufMB1e4ZeWDJYjq# zGEW#^i_DY6HI8qARc6{UZ2nTWL><~8^WV^+jl<>(b$is|Ddgd(Gfg_M`9ggv%4bOq zoBz}2qkN9!u=ziI4LS9!4N!Cy9Aca<%(I%=4x0vgmqfbzgqE0jyFWUM)A3kuT#vqgZ_<*KMTwL zCdDjfe={8Ie^rb={f)0XzCLny$$t>Jm-t7pY;IG`Vm9xCqs{H;h`Fc#)bSIMS4qx2 z6`dCGYp`s-shGuVz6D2{e?~_PjKfEN$(S!qm-*k-KPkt~{Ab~QRjYaE9U>(SHpI4 z>yF=Xtj|RS{cetXJ7%=M**wtkB*%*!uXTK?<4-vLjN`i;KkWD^$N0anGW^AHg)T@Y z@8P(w<6({ucFfR2%X^gLMUFQ(zQFP49pf{??A+vdtK$b8|J?CQj`8(ib~3tP8+UZf z@64OL&M|%&On#i>;~ih<`16jx=J?x=Z+H9?$3JsiqMLwix3l8`j`wps&hZhBk9N!$ zPP5rp7cb+Xj+sql^1~g^alF>?X^zi#{5i*8bNnO64>^9y@vj}fXkkItK%&iCMG^A5-NIu8Ciqt0)g{0%YXp%0d+Xf02LpOfzcNBjGWu}R-*g43De_(;c%ju*hu&JwZNIl;-#aQsQfUv~U0$2W?xbG6EI z2l80{dmTUO_({hvIR35UH{n>$x5U_||5Ys8X1{~u?vAS*_l2XKIAlE_&zDFZ}$H{MZ9DI^So$XHkQ#h9SF){Y1$$s!v8ufqc^xtxv z*7N}@LkS%1v=f`1o=)D!@gT?J9Z!K{|7wnt&lO{ne)SsUv24dX{S8ijwv&I#$uD*C zFFE!RdTKgz9WQXa#PKS}Esj6tnD?}1 z^8&{k9e>s_&#hQSA9VbP<6k;{*>QMQjmL#&RkL5BbJDn- z}R3ndwY&+~Alwg{Cv#@fyeL9W&$5^grpCcbF#sl4IUO znVk1Z#=LhjzSZ%aj_-ENbDZfv>6rIOCV$ECZymqkm~ow^&$FI!C&#>7GWi~kdGBg+ zraT(+-qm=N<1vmWIzHSnU+OJylVip$n|!(B7RM(zKF2Z7m6jKuZN{H=%v4O1U*q^T z$6Fn5cl@Yh=53mt7ajk>@gE)IUd8mizuKIW<5SIan2TxL&+#C~LmiKBJjyXsIn53( zON@EWH9p4i0>?`ne^?*27rDHbI%XoNZTB0FZ*a`yXw$jX@fOF-Lp7a896#>(DaXHb zjE_aj%gj~dcO5g4)#P0rGq2U;wT_wQYVrdeGac3B-p}l8CqK&ZJjV+huXMcD@kx$P zam>6|+b(_*jd|WT{*q&!{Z0N2$4rbR$4=IENvNXKIwPjJjMUem{Sq4BYf@v>p^rH)rPUg!8k$IJ`1yq|P@vE$D;X40+c zf8Fu*j&E{|BNEg9p<`z2n*67ZpK$!N;};$O+Ob|&q?mP1=%mH^czLne5APLqEhFsE zJ%w*_1io>=dc_dFYruMh4&U!!#wYNN1MVW`8wX5ZjP1aD7A%WAK-?kna548IbohR^ zd*n&ts>t-Y`bAzS9vFGCcv$46;t`RTiN{A?FFq{tSz;zFv#kroO!tB5Tg{Ekv*i59 z-x715LgxnY%E;dluZw((nC~y>+%7&l@*U#yBmY=@apZf%pN;&e_=?C+iE$-@o!^MB zkNlSS=E!`fyEQV;eRo9eE#4NHZ*-4D=AHE8k@+t7bY!0CxRNAASrdP_(aENIljm-&r@cT^WXR;$6FlV=Xi(X=Nk7|P#BUjc-4@qst@vKI&|2+!$(vRKG>gW4<44)Hn<-1wZAfqEe?qf{ZIZQ-(K@h z(dg`y^kW-eKE3>gd%j%tFgv(~Yt4P*N_b#*{xGk-V^Vr_$3g99e3>hOl-|kw?AdgJ zxlGO6k{a_?8D+VbcaUK2@C6n-jUMyfC{Vt(!xo5`^tq_Rzw+dVFSbZ{46G;y*>FlR`Gl`Jd+E zJW(4b{5pv=O{_v!EK~y<`Q8p zo4r~}#of9g%9e8BYtPqFd5>JJsA4&5hk((0WZ12W^AOj=WfeTMC!DKzy&#X?Bahcg zoJ{pnTvnlf=V%E<*M^=D%X{RziYmS-TgCe)0Ba$sWiF{Kilc7Gv>x2F1 zJEjY_9=u0ZDb6>r3&*EXNaYV>qaRPtR);m4FIE1SD9h7*h>2XD`>MQ0lBZLCKm9L0 zExoc>`SZ_^=k&0qN4_J8Gee>>|6TH&mA+hR1@DnxQKz;~{%+Qsm%dSn+Wc*7=My2% zzxuWszOt0<(0D?s_-3%I;y||ZT{fMo_%-!@3*4bY@Z&hbi;83>s>A#5QRGiPze3t9X+=@$)KZm}&M-tIUy0bss*^%xciCneG zv!5=RGqti~mg)={Xf7^8NX862162} z8WP?kX%Y85lE~#R#OR`s$mbcNAn%dnugqVMfhA$vee!2g zkflMbHop-A$Av_Fel2U3g~W*93sK%9F+C4E4WU}p14I#pF{E)EqjgC zza*L2IIW7#2u}MhD3hBtdCps-|G~>yb>ii$YOoaeCCx7fh2Z(D3KQEUyCcYE7qz=N ztz4PYls72UG)Uo1DO4RT__N^YBzN$3Rx?k+F6!h|@il~B&isp8TXnUB10}3cwrYIh zsaWZH?4NA*d-G|7&-2<|FsVv^R<+xQN70fesRrv@r8j*-sig95pz;{)l~i6xQvJQ3 zm+V#L*OqXEmehcT;rHcrpd6ub4Ep7yRC*=Vhzr8xJPua{k}3de`u#))w)Cr^0H&1c zH$mCUE@M4);&LKN+DQN2!qUCdwfy)W&Fa)BSrU(^E}aUIrwXD?y$n09c_q=fx@COUNmk#jFL zpdbw1#MH(J+*ah3hUm_K#}IKXYwMLpg76AaUTHXK#%qy-AtKXl^-3dQ=<>?3kB(g2 zMDRFfx~-0V>ZLG3i^@PWFW}sTinvn9A(;M$z@`q@B1NKk0UJ?V5^x4ll7}J6A?&ID zwOW*i=VF7aXc*Iz*C{t-@jyu%vizb_ba;<|+^Tbc$fKXGXNeuEY+Uo>Rp!V~l+V#qrAeHiq= z@_w@mpE*n_8q~62*?YD;c;%{<@;b3{L6hd}FU0-Mkj2f-?@=2veDH|D!^|GJvt=8Ie=6W@zPa7U4?@C0ih0yDM+fDNH~;5XUOkPaqzqI z@!&EhRgT}C;&M5+k;@po=@gaA*^W4`|LNd3CKFt=WN;P}B}GV5(KkBlskYg;pk-C# z5*@we^2$({=M{XcG_I9c&NzaXi#F4>QjH5&EL^)-E|N}?myTp=*gwj%3yw^1Y+{~F zPH6UiVsJdrvamVv8&Ytuf?tz`3#x*<3-8h;_$gSjYQ4OaXxG|0FOg4*RjZaQ4ST&f zxQqzy68@SKm++2HUN=6RHUUo4G_f{&E7sY53> z93q!NYnQI$aH$ELv`~&sf=7=OO?BN#tCQBdI$6D9mE40Q4U!|jlM|M|&8dejG~swB z4sL>9mPJcBN#5g}rBI(q`}@cGS@~NXs>s*U|1&o#joceJFLvoiWtWao)XF({a_+OD z>BJKjC}xUjn>nC5k_&L~GP^-8VN#8Y7p{{ZpoMHJ)kaUgUF2n^W$E!cM&VTcFrH8T zbse6B_P%04lcrZq96$bms@mqYt6Eytty;Bw&=C`>h7KN9Ke)awahs#3^;D`#i*9eJ zIiZ8lICywp-Kw}TW=~t;5(5WNCeh5rRQ&qd~S6zK6`gD`B_Kf;ox|C z%ayi@7Zz;PISz6i-Onl`_GlbtkMdv-8G(6MK3I}Q#DV=Fy$RB>JlL6|MB(8=i5DcgnP9ZlRj5^;Q~TJ!Pea+_WLnS1)$vQ z2Nx;Uk=~)j@(5F(lD(^e7;N1mN_%^AWe+{9r?2oQ?;Q^CPWm4uSKZcZUSd!E`=gIA-P> zgE}*xAFNJu(kke5Po?>%z#Aa*$x#KzM$!kSVijt&m`{#@a4)3EbYWDQ*Pv3mxn|q`zTm2Mlp-ooB&6glf>lRu6T;$S&?@rF42;XH$&}G z!N&ki-~0`*OUAmz6ztO+eVJ`6D&;i&{Tz>W9LiZCfdbbr)1Tq^D92pWOlPTMj;YB{ zcYKax+PUdm>G*obTzgID=Z;@={H9~RG?{)*H$dZ_j`wst!0}keQyd@Vm^mwE^AgAS zO)>d3j=$@e@s_6Zpku~Zn*2q_3^Fn~9R=g|jv4D{^1hCTIi{~_I*h$FX1uNOI>#Fv zU+Xra3;&G2={4hd~;~8y$bi z@imTbam<)d%lok7UpRin@!O6|bWyRqjO8@$?|7Eud5%wXe3oOrL7JUSjv1q6@|zrQ zar~O&KReFr`eb>l91nCn!ZBn2P5%VP9d(g1Ilp>rTf7bCI92e>OYGv-^xR>Jrj`w#w!SQs*$2wl-_(aENJATgbZyX1| z0y=*P??`Uf^Uh@|vlc>kIPPz?llOD-dMD?HBrWgZj;A^Oqn*6b$ydO!Jp2fy@mCz* z>G(d!&p7^-<98kRR%hL82LA+czYcNo$zr>2&O#n_j)i55(Cp+ZoO~@D%g^s0THebX z-|F}w$G>;{j^n)EDVUu~$AcWta7_8^IO=pPFuP%LJ(3rgKAy>UcT9iCDL+G;`mm_cRIe? zF?|NhOaIyU8OOhL{EFk(9MhMuyhXYf8#5lnIQ&pkY*&7+E&UDCVYrJievFLwb9{hf z`XQ!sh+|#4^n(@pr_f1@wP*USrhmQkP5uKh^8*N5BkNLem(MZ@&82TIpCeh^TcJ!N8W|vj**v%na6>gX9VVJz^90- zBX1Bh7X$ej;z5zm7Vi_8b~iHeC&UccMV~p|heW15GG7)seb4EUdFJ>?3K21 z{0evu&jrdu=%K}qdmqPKA56}(iSZ=IJa?FUp5x_?Pjt-rZu%EF-sCvWpIE(CpCcD( z2E_->pBOn}czsm}A3T5J6&`%l?;5U%C&-=WPjue8<)}4FPd{nn{H>j4Y^}=OUH7PZ6IJ8vD+{xwZA*m6OpI+dE-l&IHck_=Oda_5dNOER5Q-8K((?&ly> zQiK@#D^BJhjLC9-ZctWRU#s*!ZavRvte>j;Nmi`?>2v8zGI07AiKO6!wsqdYlggrb z2m9-&Yu>@F%BDfIZd3enkOxIq!hs>V~3vu4Tz3_*acTg=mHt*nPR7jk6z5cy%UTn;d^2UXc?Z4OfXzF&muj|o2XB+d<{hjc&->0hVD@2Q z-oaJmv3Um-ShINt4Xm+w2Ru<1<{dC4yD;y7`K-k@?|=uh!n^~HKw;j&ew5ng9i%aB z^A28MjmcW@nf-)G(deI%QAFbj_J4){$yn|Cmd zGQ@cY_(A-T^A4Cs`L8(dpqAZ=^A65e84L3c!ntho4(i!qn|Dx3miL`^&{=g|n0N3j zY6r!62m4U-Ht!(Jtr`>O9UP9@`1Fy=+9_4W9m~%<=&Ykrn0L@jDQw;Wepd?f4n}iz zw0Q?lqPEk#gLc|}Vcx;P6vpNq9Le@=-oa%w7Mpi41fw?Z;9~OFyo2LN*t~-k6vXBo zoQ46LcQBVVHt*nI*4Vs*BS`$y<{ez43Mi>%sC)Yc?SniR?pdan(-&%^r73Q|$xHNv zvte3VX{xWpWvMK#Sjxhjh3sHSO6D`-e)k)-!)51&@#hkT-}+5&`i_hy(-(SHX+2>N zCMfh|MRiE6Sf?bz=f^2o*=y}WrT1h@=^4G6q`Fs~R5KgL>{%t*Q1wjq3S;wU?GtL-rPWnHCDDg?0hoto(*-!e0M5Gh1m5EkW2GFW9=Do|96eG z=NZF~uvdD|*75Osxe@gG3G&u~?UUR7D0ubGW94fK%5lg$2T@@!EgIlW6nfV3EimJ9 zR#-?BW_pFzq1-4X3bVXI>+p5jY^ieHs$B?7T6R(EQ6D7K{yl(4; z>GA8VRfuPy2#XfzQ)E(KS1bO{81iJ0`~Q9nd3?-l)&a5~a#bz=ZKKFFv|eM!b*x5( z-=Nbl`-3=C`WZzVU#@FUIG{z9>7r~H=zVf|2MxH+mL~(c`AOI0_eML!q2m(>^&2Ew^0c{dllolH})C_5Xbaaql#C`}igejMTWv))Cv1BtJ9w&l<9=-{8~e zZT+U=-#2!9QF4q@jq}5p0LJ_Ntz)xA5bfjRHW|eF_x;l5e}-%St)sLTuUy|u z3rX4_NB6G}*A720x{Ke%{QrCC^#>0`FI=tuH@|Y}hh-)GG8GcyOopH2*{~Nz1 zNvm7A;6&~Fd_Tiv^}Y-{ryYj!Tia}0*R=SbJm#8LAp~OGj|#!YT+^B1enL!OOf(&g zeY7CA&O({^KVzb)1cfRsRAz}50`GpUqDfm{YY)fB%hVm~qj+~M(Kk27LKEZGo?4e5{l6w+^fZy^be#LE+8ZnY~5XAzaN$TlKN#o z_^iS@_G5<@%OgzPDSMNE7;N1mN_%^?vWFh_y2o|c+f9qLd0}u=^9&G!*&}wkRm=_@bpr2Z(ODAK@Dx5NvgFtkY_D7TS#U<>jWrAT5mf zq+QVFU;e%LANR;B)$F|k%c(LP^j@LRq$uVQs%nqNtj4yHgdB=VXB+n0~|8>WqKfpf)`e9a| zbdOA*@AW3%B4+Fvfx#^>{bhU!!t|x_6$f__?}$vl$$XGkiShG{POX@+KQMi+*CJEL ze~3&U=g*N35ND)|{ur^1{TnAXf8-Oy%nd?^W3qeXN#d%=^w;`Co+T#yqsPM8She+X zeuA^#4;rgBbXa|TGFa_{$Er2-RDo6T^aZKKoyV#L@%#Lf3*39EAKR^b=#!cIi_ZUc z?fm=JZXZ;o%H0w^=JwxIysa0`_p0?CNjwOj+JV#CM!&DG-I`4$Pt3?&T-QFV{b<3> z?_E0jBN|5La%a{L>-5AGBP&Ndacxn}eG~e3DIL^4*Ip{gpME873!^oY45 z2R=No=l1Q{BQHqTRF+)!Y`$QQa-96mIohLK`?8^f+Hb4gv0LK3SMwzqY!`g{{&l~; zRjxiB5+`HoI%R48=VvY`+Mr_THAe`K>VJ67STz)KJB+@WgJ(Ro6cH4t`57|+zQ0?a9QpKsVAJvZ7;~*XIx!*g*5T!8w#!s z@zXhRTwU%blx6?1`k%^;!^#Lan|mAiNVqI_k&aOD0dOw&8 zjfNeOKi~fm$8mK@jV0sia$ltYv&Tw1o4XbZ$+)`Q|6%V;;Oi>N{(o+Avy|NK7urHg zZ_*TsbP1(M#RBO9v{Dw^0!0gHnx+eMqe*G22t_~<3bIr{EKqh8@I^&s)v^kL3Wx#< z3W&a-fTF0V{9pgS@0@vVo}?*F6<_hS^U1mMo0(^xnKLuzoH-}IdFBmpJ6>Hk$dMdT zWqW(R$4F1))#ZLKZIM@(W1N?*2>M04U|e(`Cmn^dizg{Zut9st6N(UAF4|cT3^r&l z1y<(R7rg9qdkW`r-{ExEgQE@F%dqp>D|d}z$}UH~e{Ns!hO;C&FzNey6#;{fVE(=2 zJ~4w>l0OEuAI*GAmt;22eLDs!^Bdbza``K0osWe)z4Grt^(mRB)W!My-^g=nNa>&d zEUHfnfr0rikmq#FaJ5+u>r|&11)348B1M49h=CIcJ4D!}B$0J0}F{@+(L=HW7<{Lz zZcpV)30xl9;Klqm$#X^KKq+`BHA=i8sK#<>2vZnP@o}7<=s- zuGemLy_Q-IPJ8Wk$hcM~(@ zJU4(wd1#vOmMjNTR(k-L;S zJeMeDX6|Hq^9Al_vvM1V|2guq9E`^x>Bsr><3##}An|I=pDIar?0uEkGfQ)Z3=9{S zAp~OvmZ|k8SI;cFwCwOnso~U}I8ptgIEH(JN}8liM!DG+H{6;z;cyj~q~TQ-)?I!s zr!^?Uy1l;exMA?!ru2Nc&khMV$xq>gYr}xe=2_n;1|Js_mV+5xJ+tWSTcdix;H%Kv zK>ja??H6#8KUk{8;3J_tzk)!0hB;R*4~x9W;OjLcwt%P?u+O6fyYFHa0(zltm#> zpPxoxaR^LKy3yI(GQvq?IhYn0zY2Siv^3AF0bKbu0(fWYnH?2=86#?6Q(Db^=!18Qt$R>%;EwEZhsOEP-vhSa1%MZCLM#i>t~dX z2UWt(JdiR6Shm63@6S=LLTc1Esph5Raz#8VVMPYZyVVO7i3Qx>`N*}3d_a-qI%4+0 zw?;wBsq>nuJUiaNY5Y2zhRvWd>t`xssP}B@{iL!Eeo;S1g+d|~ujadqnX5B%CDH%K z!Zm^4c}<9@Sws(Cn_|`!h_lC;4cSX-%C6%y(heB1i`u-T`oD{!f4W^3njJpiqj^5WpQ=VEGuHCPyRCUg#hHlHeMcs05QMbZd)U9l@Y^$r>Eb4A& z7ImwkC@VJZ##ETm3WkW$}@d6Mmw0%ZR7kE9OtjvqRCRzk>od|Nb(CN zY>{a*s4L#zINp=$KY`vNhx`tZ>9-&T!8JldW!INYngRATeLG2oT;NC zS)SC_*6(r!fdx9cB`4+9m4v9p3ZCj^2%OzsW}Sl2lZ$!?Y|!EKC=?u5*wZ?6T6jMX za5^3@BJFF>^{=Zc#0O75_PRp&X(g5u%nJ?c15HZCcRWbbQ0YB@0^{Fv{Q1o&niLe3Wq`gpz2pbY+uRPmAZY8JcYg z;g%TD1$I^(4S{tSeu{jwU|Mz2oOx+g-n}Mm7cZ05O#S~gwc)$4rJ-q6BYd#AP{ige zIzFv`FsG?@`}d+op4hsmc}Z$1xP8Agv|v!SVP50$GC8%x*=ubtR;0&bUbt~lL!hlS zwluXaT-=-nmN&Nq7M+N$3zC)U^9D5%jTKvTbXPf%E%QQctl?!Ds~BFoLOTC3mSkX1 z>ZQMUdjGM8YMp`Ff0zk5ZyA?A)P!~>X=Q_Ud9y}BlZMayrOQ`~=73x@f)*{Ed0Vwx zNuo^IlmAq`hcX2odv%7D{pZw=qsjcOqDTl9_P0<-+(k4atnr|mHI(F58tS0*5 zpA#0(hZ2h)BRoh4^1MeuA_6bcVKPki2FG~bp!B{MWG<9%GEDZii}8GEUxGIzW9dxS0TeZss5BEuvW2NRUZA|JGovxy()xQz))BLr8_FHNoY@!;rY z8$v{6Lu}eLhKYJp{Y=;MKQ8im3~ zSy@~%Uf<2qw?>N4hq&pRBW!sDljXV=f8rtxuIM0lh{k`ZCAzd_!oJ)(eK}quIm)HK ztlTqP9>L^rz5f>g(V6Ns3VVGw@1Bkq^eIbG-)Ds_k6^M)iG1BKXKCvc;q^Tsea|To zef)3M>UXU$dH5eG?vUO|aw+$P=t$$ZIr=8|-y-Fysf*6!Zc_~XXs(;?6JsqPA35B^ zIt&vYFS&3FAs}aI4+#77xMf7zzMRMQF^%?qN{8hUOr}U*!9^JSfzrIbjnao4`naW8 zyQmq8V_q;>*uQJ`ac|VUoa>ESE;`Uhdovd88WK!q={lz`%~|~{Y`%~GPvnB~NHa$} z(og0HYgiW@;c+qan0&aO2NqM)emJy4cwUF_$sNL<=n&@Lpik&vtfcm9!z2qTsh>OZ z663?^T-r^p!)&H)B4_W1o7o9uv({(lX)~EkII3aR7wf$xJG2GKnJrnaqYM|79BtVp zJG3-}9Mc}-wbp`lPogh0TL|%72X!u<=a2DS7smKI<)0Vv2Kl!}e4l*2qoEW0Bd{u4 zkk9mlc*^H`GYn@K8O{k@70-)l6f)F{u>+fLFDCJn!u9JM{IU(PmD6_8+Tqy_AMY^zYx1W#e5S);>RzP?x$AY9 zJpE<(QHP&(_+^Lx=x|043(LEWSFDDS``_dhSLy+8?VoozY|t6|daR2-z~N~QH#oe= zVfMl{{hx67LWegve3QesJN$&h&pZ5@!+&)c`i_;my~F%})#67v%nsoeKgHoA9d2@X znZuaGvb^Uzj6o`k|Bk~iIQ*K!e{mQNn&s`|@Xiju$6?k&nfyG5Pj>h$hc9yYDu=)1 z@beC@)(y_|pW*NY4qxH$jSfHH@DCh*&f!-b{)@x?H8HnxhdMmk;r$(+>hNrb7d!kB zhd=4?I)|@x_)8Ao;qZeF|IlH~rC6PR-Vcp{#Gadki&sv9QFL(#aHMh!1NCWN1g9+@gs%pnK*%X<;NZ5 zWR3>MyvI3wqQf6|_*{ptaQN#Ef7@Zovv$*ERKyf%@t)_rgNtW=ZZfqF4|AC3ugUN! z%5DXG?Ay!*GqN)9RAx2)@YcJ7l|oikkZN_p_v&&{sM3>3zl zse|uZAyG2iYu2b{?B|{p)^8^4Q7}l6HJbR~u1-Dp?B5U+J92LoAwE0S{7OnHATqb{ z*Y2>qS2R1(YV#-hX>@04HeD;$hQslGmCPm$`Xl;D<>7;JTXJ1Nmas^Xa6cV^4Y&n-pFS^ zLMLo|c3$y|e0J_JjpPjxg^4aGQFh2Vmw3PALd6X9U z>~|q%eD>oBbl|hEQsukMXAiv=`Rt+BI^na2Uh9O<{tDHKeDD0pb>@U(!#%Di=L17kYcR*tYK6|aoFY?)srZUE7Ux&2u*)L$Q z7@z$Vlp3EMu78owemVi;vwwz)7@z$#6d0fVbW;8WeD>?rPLa=khiY1$E~8P+5~e4a z^#x5fQa<}~=-arRnieFP<>Q5h>lj#2qhyvNH&eku7pNsND@i?3$IiX=!;9$Cn&AxM z36)u8dIlF1{G#$jhI&$cgd*-x#A^~ZntFAkA|F>|k03dtOZXDU?$or%YB9n&Q4cRsomKjk1(LF z&YUX2Kz1MU0uk4Qh#^bp{%cd*pAJvS?zMYKTiJD-Qc8BOWu9G9{Rk2KM6&zP-_!Kh zWvCRVl5*S$^`m0RE>|nPWN4aY8|!_as`r;o=?mR{hwU@F4w%vx3VFY>1Z%eacM0C# zWz@DTDeWQMRa5$w=-+Law{^jt+eq+(joz+Nx>?q{C%Jbpdpo2fBfgFPUSz}%E#{Aw za5=|aijhH1BLm03+{7oxYYOlfyzqAMc6M?<9%PTjGubxFwTkp6b59Pkvxvo^f1VDN zink`fWAMUFBjG99)FASYl`UkPXlWtY| zEs50jz+eA|+3Q?}`v(@ua5lC8Ty@ zk@ug&PyhF2op0$H8zn|Y7))Df#djM$z2Sd@o*sIqGh)qFnDR|Y&r=VZcyPnC1126Z zZTgfW4``UNjiLU}v(>u^FMacDCayl{Ok2rJw`}iDhI(S+`^m@ z)eDN?X@{?wYEq+PcOA&;^(MSKSv;&Liytd2a$}I^eP~F;yyoy6<8jW<~SSLgN3P}o{t zu&84 zomA)=M|>*E9bweU;{T9dU;k?T|E?lEU*2L#<9z4nusnjvR9yx+hHrG1wnAaUB+b-6 zSbf`A+A^j2av#)H0gs(_raUY63}MS7m>kw4NeY1IENzX#Uf*nS&TAEiK4mHD`>e3# z5logUkx#1TENz`4yuQ<=Z>$p0*DIz`&uev%r%ng%F(qED4-4i<iPjcZ7LO{;a9uW5Dai?x))SL6*<&!kRPwB8cg2|7h zkIyRREbRx1@cJHYLgb%snqKG(Bhu1Dnc7p_g?cn^s(!{zgd z7kPBk?^f2th?&VuariK>6f#c0#_|4ejL*vl8>gDjOz2!Cf04t>!P3)TKDZr!8zs^G zD>>MV(F1hAzXDH2mTd$Q$S>oD^bi|1eGhOc(`iw=Lu;jcN&d#UAp*x~Ox{3C~d?C|pr z|H9!gkK#wJmkt{bOaZN|U@0s1-L-m|gO!Mb+Xki&p%#J}=Nlu|KVFmXL|hPlBH~?y zVId(;f4&s)XyM;Q%zT(l$&uMlI4d7qFU(%!VEWTI-prE+#(4U0NW=?;p*JGW9C%d3 zX9^p~o4Gs$I%N27>-dQ2w}T?SK=_b|*9lLLnD^hKBj&rtF%hp9#$|G;?=ex<&dk3J z*E-DDw)k-lPj+~Q!?PV;qpC0_wPpJ-j|us$p4==ifi9{Y^GWkOV*W59%weZg@>EX?sb{T z<3>dKapegQHukx@(EYb6dTThwyvv#Upg_toE@Zi1tu1Ne7t`)Lk8v;57w=AFYA>55dy!uZ z6RXHCeoLj4?X5~ge(?vTwIjdyU`k5uWj`j3o97o}kGIG#mMyd*zqmKp_{FW1pYn@W zpf0tSeVRmy{9-Qf?wANQe({G$-IQN^BGHjwyj0@GFaB0BzAOCVo0PLNesM7OI(9tW zljD|Y{Ng}C+lTmE?k_rJ;})m`Qna~T@H_%<47Yxu=5 z8jJj52%SZK@lL2Ue(_Unfy(^JZGl|=^R!N<{NgH7P7P$S{`pH#ZT#Y|kkYBW?0ZNt ze(|}KWA?J2BVhdEJqZ}U_()yyMSgKG?`-_y_cEl6U;I;QVEkhGy2vlCMr_Oc;&Tu) zeld%e$~y3iPm$6t^NT~TMSgMUwZD^Jd>Ks<`Ne_s9QnlqINiuEuB3(jPJZ!A=;?%C zTtm5$U;KV>kwt#-Y|1x&@#m24lwTaIDI34|3G$e|?6V0Nzc?)P=#*bPkt+TR z_{H7aRz>h4B($Ry}Z6HA<#{+#w1M(&Qvq z5n;EX)MEBf%NQ(X&y#?-!=ed`!8lnzD_ul1dHqGTS@|DBO>7dBSB-$3}r!#JF^|u)eS7-K>hQJN3ev*i5LPYh484uT{crcxna)WF3lD4wzs9iLK zeG=_+eW;Zq08_depm%0ykG@rD zMz3un@oukiB0JZcH(#w(Okazr+a_0DG({~N)1?*Na^V*W?&?6ztq8xX13|YU{2GS7 zyN#ebf6J zT!z5bZSaL{jWOwMJl)tkve+!E&f>%_TiSw^?|0IY^cL+$b61X|Wvf}a?@l&uYJGcd z<7&+(CQjU^Fsy0$(w3IirArr$IP{>x9wSHBjjY?P5LTrGVo5Hjf;|zA=KKu zsx=uox3RS`89Aq=CC1Kep0i@UjJY>1Zf+N|kk%NPrZ&!*v%LAlcFDTUv>NAtZ8wN_xLz{UuR@2N?~%e@A78ZA z={3=urKK+d7MmpF#4lbTMd(A^^vw~rJV3RZH*$lz8SjAY88h*z1$Y{eOB1=2qqUw-~L>O(OKF$ zg}uI2(uYkO^!18q)bm;$ps2Xa7?lhm7vAGvtqVcyh$E?t8WmtcK#Yz2QF|}qx{3f zNBn}5f7QjmE^N=iGATAa+kxXmE$`w7fTPaQPG+LRhdKOVhvz%I%3@S2%o%!@L)m z9{7xg&vp0`hk1WCnHwDbFNeSG@a+!Y?eP5$Kk4vK9Dc#!UpoA%!>>CW=0*I-F}Jhv zz?9DFyk0Lk7Jr>E+)dn#5%WIzjfgcAlDi|O&mWGsApFCKcM<+s#Psva5yMHvZX^1c z-$8@|!%5|N4Xzh7yTg-(S(8gVb3c3z=E7!!_-NssV?6zDHi(ZEHXFpVh3lfs9ATJ4 z=wWWVPs9s^aqlLMX&aZcrE9isNAFSBRW50G;noW=b8g;7HnDYEkS*w+{q1idxs#th zcR%{{`OlV&D1GS4ZeOmyukgM-)R`N_53b&A{KM6|WpaIX>%I27!xkU;@#N7Fg*2^N zoYVDX4-PWUsqhHnoUYG2xNoP1Zbz>#SH8l;UiI~FJd-U9Db&m=A3b~kaYK65EE*tN zxw%6kv2}B{a=$#H`-4|Lb$*|_>$aN5TI!B+rw-nc zJMvk-tnXdiFZG*&@|k&BZ33YN$Hk5lpY^feRjyFih|dZaNPN~cDy@yr3I$ty)_akx ztl%b=9RYrV>!mE4oiEL$f!dn=u=1DYxc_B8AeilSHiFqQR(@wOTbtdLnDXzSvN3~# zifr}+56Z8+PjT6)mjSt8vWF0xbmM}4O2>BmluB6zO;S~vJt&dV+@UC)GG1v(jy)i< zhkijYn`CdJ{KI}m;LDUgJyiTbiInY7tq3Xlkc#PkkFcn%AC;H8g49vKq({T?k;0nI zVI$C}t?=fJ+S*;snc_%oJynT$vCM|a@3w<}&esttu7bD&h}ycHyc~CAGo5=L+9S2~ zW#ZpAUcZ&OpQAleTSw|-jN1B!6d1LY)lOzQ_fll`Bk#c6!Nl(mE+oC)L|vwA@&_pS z@{CfZ0K;bkna%~T>CMjbWmBoMXg7x;bQpnbCh4|7aWqvpk-_Lc7MlS~ za=)Vj(R41i^|B)`Q+#EvpMJ}Zx<$Wds%_BJ?I!(jM3p_WUsa$_&n%78{Tk^Jwe@Gh zxt~jMSt~Hf?FwEoUcXuCVO(@yqy$l04^xgF4a<_UOM+w%eRwJRY!K|xuu^PHU}bJH zb&95QD`=p0)YjXjs#k6uWn7MY{~Vu^$~JsP4Kpz5J6;~tR)YD{X)H6HdlYIvn)!|% zdfEKG(h>ue`Pcx;UTTpA@6EK8tFjw*HBf(=&OgE^IHeQAyb+ zGW{wwjPezTotYV?z_2{)G>X*LY1F`|t$~PrZYXC={;Qnxd6|*QGd3T1uIFdQC@?Pn zdGcHk#Om{VA@-Tf0ZN&ar>{kArGqEuFGTFp3_UnC-=9J+%Y0gOdn*5X&gb&b1~2CS z2eB(MAC!WZ^6Lp~2&!LEuhCQ8@6(T{t@o>-&}+A}_1f3QOH(%V+Sh@x*CMqw^jbS= ztLwGfk&nH0SLn4|Id!~yf#M6f5-M`?1 z*P~&@oTTg#^p6o%(|?y*juY14`W|J~=bqJX*<($TpOia*ypOjCAJn5^k@EhKypwas zQin)wT?u}AjdIP%Jw_d#t5VF&919N0UPy#z<(?$|=i?Boum3qj)5 znlCF!#?E0w_RP|pAp^t3WeCBTVMitPCs)tx9}#C|45#kIiRu@{hbk$kq)FOjlzWOI z!mXJT4p(tW8a~a!y2}S<_Mpt?RK30fRUFjT`;?v!_t_x`vsijKTBZ$5Gc>zOQ1fpkEC&pRXif)Yd0eb5UDKsmy;6jk7|QoN7j7U$z*6+FGFjpTCy! zo5FZc^3NeXH$%r}^EawWGM!5xmwyPQ^Fkn>$BezGt>hn=e-s5qZRI};GM!7FVR;^n zGM!7HE`JIs$A`e!{1K!q3W56kTmp+jU~rUeFY-w6Gwh(W?VvyX!HFc29uAjpQH4hhO74FYm4kzCPbO_cj=vA z;4=L?H**4)1#V!A0t|GX3IpdYQwS+u;s!k<9jR^J;}zU_#lodYX4SdUUUL57J1<;% zVv<=+StaMs8eA&@UJe_TcMu=fGixY;heCnzcYr2U)uP#cOt_}MevVWGt1lIa;oPKV zp(2l0OuB+XiCKBLHwE0T4W)tMP3C+K&&xVlkQfst{2s@jbC!nhr>KWBe8jbpRC z%=%uE<7}_uY`>Mk**Z_)+H_ zr{7%;U`!05`d5+^Zei53A3+Jx2fO}8#gq0mzcm)!p57~?yd5n4)^?-^x0&@VTKa8g z)OSkXaiPMy7Ei`o`qhZhEpHm$#Q`3J7v7CFVGM_BHkpoR0&Uz|MTUR*isp;JS9D|& z-r<8o>7_bU6y7ZX9)lO|I&J2CYZZlXCfQ6yxLEHF0@LumAK(#qPwHsT9Y*#$L0~#w zDm%l=w$*>21awKs>6(cSjpnXYVoAcx`<>tp|F0U~{TCS+_BM_?F-t6a&-%A*OUfK> zX`MT_dEUqcbO97cA>C0M;48KWt4jixE`<_axKvOV|GX1dE*A?*0dNDG(DPZMS~znp1H-PDAz9>ooM z05`!v?9`etgivUSqIS(4GgkD(#m&p-H!o>g-S&U=z$R;0*`%&qJf}fMp<6{CUD?zU z!YwgkGe(7D`H80M^C(J;)j7(yvZ+mv*9yb5rMW338V8lIjawGZU(!6c(6pdY|LtEf zXT`jvVNPQU99D@hSgN-Lcmzqq(j^Ves}{C4$XIrZPIu|j;}WO zbitfN{W8~fyG}1FC>Ao1yr_9e+ASS&wH!EQ>H!V&8jn|h`~#e5UAB}E>#Q29Hpxm= zjKRsxK>XE3jq_VZCzO|HOvf=0F8y$Z4Xc|OAb}FS6+GvyVKp~wVtAN}Q1N1`q@z@v z6is_|>CI_LS{5u_-daf8SOa!75w0#yxgoSGmrK0hxIi10 zK<`wXO0)||_T5#^5_Pv3>Q!qsF5>EFTGZUQMDNuH9ePAzV#lGz5j-MVv1=D8%Pq~#Ts2KgS8)4iII)p60J=V#)ftXk6I$Hz{O{A8H*b!3 zA+4}-uI>f&@ygKd@ec6bF^vtO1H$8nA+AfIVcrTgW{A;PPWwk07q-l8Ne5x0nrCry znz3ooQr&|75u^UWJb!qMsl~bXZo+k1JjdTEm+jS}2Vl#JMRbPhwfLXUg63Thhp%UA z(HRSxH#VNI_?oOIH9Gd!fvjFVl6oB$f3UE{PZb`d1NntI3K4%w{*Z`yW$PX>^Ftg= zY36f$j;CCkn^D#_!^AX#TtNp7&5I+B&asXpY*X9tKMf+HyRV>Wm++1{$d6o3M@OFY zY{gl_3l{b5<}mSf)%w^bMd;H!uBeatpr1J0-UOVp;693@W49zXNivoPHDeW+35d?l zmw{=Rq_rA-pO;Vl^xdUcKmHf#_3?%1YrIcKXKDP;+Upymk=siZMjx+Iq|ttJbXXq2 zcHn9+^{}L@~Wou=1AkXIr=8Iz22qO zbwy`#+$88nb9+l}tOevFhkICuVZuu#7j7T~kwYAussZmyy`Ih_Y;Y(+bM3*G{~mm#;IoJ-LUDa5>u77w}T+GWt+t%ofW`j`xk@l#`b zrTj$^lYLFZ^wBpXrjEK@1wGUeZ1#((13D=mIm5c#gFICQ8y|b`C{r(gV#L(tu!yPi zQ4uec&!=H@f}6mqB<%qh}diyUrM}WZj`^l;p@PX=RCkwao~TK zcuqFDcbYdoN_ych@dy|T7NFlaj6+@zmJDu^4&?8YKgHq0Bfd{QbD)0*4msQ=Yn3A8?$Tj8f8y{<4!_}WMmK+xXPubgeh$|0=p=@}=kSjm{-wj%Of>obaTq&^77zE#Fnlw^aLf!t zJTUxWhvz%o;_xXBpY8A+4rAfPbpF8MUpm}Z4{wth>@dUui=XK5;SL|;@No{Wbog|K z&v*E8hxzBCm36Db_dEPEhhK5{&kmPo+w}BxxZv;zhxc*#AcwKFWc6uuc!|Rwb@)t& z*E{@>!#{NRRfjQAW@VM>o@BVU!-E{&&0&}xCJ*(&@Cgoo%HhvAe5J!TIeeSLuQ+_V zZg!^sJcloH_=^sI!{Nsq{;9*icKA()%QVrpvW7TZ=kUG`f573R96sLRRSuuw@C6QE z;qZ+P-{$ZG4*$U6=Nx|3;lDUMQxAVTuO^3=I{Z?7{ePKzR%%@9sa(<&pZ4JhhK5{w+{cw;lDbpTaNx$rXM-x z-!>+hhFaae$}>G)JKq$B1&X^bVm>0m-y1 ze~oyIF#lUb&pyIEBd!-_PX*!+6gE4{Q-$9XKZAe2HB|e`FSjx3x5h3s*NC~Z1t5_a!|KAlyRely(#GL=#^UK1SL^{MCh^d~4)eEPM)tJq&1-o~fLqVn7E>0w_-KK)V3 zANlkL3KseF1&L%=sTz?_|0xwv(t%HZn&Kj#{tt+6mQVjf2^RVEA3*7p@tja@8rb;s zU!(k#PyboerF{DPBvRzlb8qR+i;?l^VSaYPr~d}g(Ny$>5;s2m>&5u4@aZ2@&d&Js zYthmPpZ?qGEaTI^rkWa`{;S||<8{LM+#kssO+{a%6E;45fxMma=|4gJJK@uR2~EbQ z=bs3h=hN@0f{afeS}gMEU!wv?P_b+-STBxzdL9c~!>8XMJzeC}@2fbGOg1opZ@)%7@z)WR2!fE_oQ^n zrw_JrjZYtJahs`V{uxr_(;r0*j8A_igTnaqyAv=zJulrwK7B7zj89Kr7y0zl5Zf}J z{`-g-pPqO7vJQOujZ)fWK7Hu5$fpmz_IL8>@1`jtpZ-QF75VhRY;ok%@58D8oqYNo z$=eB^{y@r&eEJ6P(`$5v%*Zh@Fh2c*v~uLrGfCJ=KK&;(X5Ni_`Y&->kx$Qu$ReLU z+%=3(Kb8|VK0QnDyTGTP#8qN^dWgD3KK-`{)MuDR=JJoBZL@rOKC>11^dF@b#;5-_ z{bYRlJLp*B(;tGy4t)AWDzeC@zmoEePyYAU@ ztJf%U{~!fvz9x|7El1BR9QoQCsm)d6C1^9Z%=#BOA>+ssopR(kgIg7<-k_iRmANM6 z$V+d^ksta~2JO|E-%2oWg z53|$dn9!tV#BxLj4FvGW<6Fy9o6EEBtqjHcVY_hW{S<>tgo9o3A$By9SJ- z!w<1&=eKeQtqz8&|y6Xv_o;WaMO|BpxZ`zI6>=^QV-$-Eu=-2~d$<0uOk zVak3#Jt*U=PH?sQeOvupM(68LUGVrsBZJs@y!^B$wIh3J5SWga%FghzZPnu2hAs^` zT~g86>lDF{DRCRAea@&(=;@9|D&Y#Qcr4k6!smXF>Oq08!;WKdP+>+ zMp*xc3F}27yw)d+t{$1t;^4M4G_7h3lxPt$>O-!*=JYB*7gFtpSG9dj4XUAP3OZl$ za<125@dpcA{8V97Am6HksT`Pz9uD$3^De$!m*}uL6gsz&&uN6z739&T_BNzhI(VU$xW6&^Zj~3eazZEf!^F30B*9UK^nOE58ERFvo zdwr{_bv=pUyqnvi^xTPEzwovMakphU{0 z{-oibp~LbBCO7v;k^&$)OIxF`*LTZ%(rX)i%2L$#Sz*f~m^`Y)Q#(12bukYzxTmD= zaAiav|Npi6T`P>fIvuzV_D+(=^aa8kX&g64-{fj^W2iBqn1&qxFQ*^PO_JPL3&=+X z_plDbgin%OxQ7ssv$O|{_zx*Gu+uc&M zz}*Seyd9<7Eidda<4|Sfw!|SXAfs`M%j?(@hn!~uoM+rP9q^)O$gc-0p0PX`9OI|P zc&^){A|^X+h&=6gZo~!oa7~D(F5rJAS9~^Qsh+L!KLS>{d;(jSSwsle4G$|032T!g01f;KilP9;qWCc?^Q1TI$?Xx-bQ@X`E7?Eaq@x79qaH% z;v+86yQ$$G4)5sj?he;G%z07=9CIwgs5boX$j4^xV)Z}I;fo#qoWoZ+e4WF$I((K-ZAGLb^U*S>D(K$`fn1ZX!9C&iXYlMwcP5;b@@yydP zxQhJw!m}f0&T0JWi-e6|eTne$D08W>@vE6rpA_Ra2;<(Zyy!Om^U5X+k&E8E#~!2i z9<%rR3WYuD>O^%e{=Rq27=^}+*>g1X=PvM{-_UmeUiim^7U-P+9FjKk)93Du4?X|% zV}Jf~x7T03yYP6S{*6N2#y9jeV59n@Pw%R6b#-q{*ziAlk14-rd{VBPmh6RR4#`dX zKE@`HDd|38aQW2Ix-o^(4dvxKCGV+zHM86J2ewa!jjF2IZPbr0C>^_W@0$L@dXDaq zjGmClFG+T}u=D}lmqv6i&m@W-(fyE~skWVJa;3R^Va#cDg;uRzYs<7#&2BvpOp-^g z+Ud1n<9EIMsu4MbPWoNt>kmHv)MGE*{pOeZ++81RllQs%w@>$$9rM}&4^_XM>9&VV ztJgjEM#T#~YVze5zff6oA0PNs?`iAH$Lmf%v{#|<#v_l*a(ev{h58AFX|u{F1e@qR z4$0~3)aDGL?;(Te)lc<)DbwffUfqAIGGERVo_nJ@NuKWgRLMit-S+ry>Ds%7Eq-Kq zd)w{VV7pynyRI*PaKwQczDWqkcDtH2EwXYCr#bxw^*1^FkN2cRi$i%nnPY80%Kxs< zsyUOjCFhiWx@=A6T;1GJo`@FDqL_S|e> zjw?&KQi7@Wq@dh9KlGdVvBq9zq?)QBe$2ZZjdHS*&Oa|pc>ynZVsHIsvlY)OvFte2 zp=46#14NZn?5dCq!F`EPrgEy(WlPFt<5iYzAhNQ8I+aqn(yF1reUw_7Xhr=KF2%a&d&p|TxD5S6Xq{@?uy zVe!a6i8>ZemW={NyXq|SLEFn z+`o#It!4Xx2Ug|Fg!cy*l3qWQhh6p~DH%(`WmACR-#@a;4qnsyR5VSc&ibr09HGMq zWHU)+K|YUwa3ZqH{-&^aNGSQ`31#SRy_n_`Hr6gsS zeLH#Z$O-1Bll#OBVo9FP7LWW#x(>7X*V_V>`HR~Ex%}5@osWe)z4FzlJ|**;GUd&g)u)BP!2Cv1PR|six@ebui0<{Z`A11PGniE$mcO2I&I);k=l@LLoDitX zv+`U#a>^N#zfQm6kz-_eY<@6-^E34djLRRUa~F>svHEXY*HwRq%o@Z|hH z1TM|cgH!W=;1n*)d`@+HD$m_acG+oz7xVO`c;v@O^-KAQ1U3ZK*kz}ux}T#T@yPi% zLu!}3t=GObRGOk)c3|waZ@6B&)%DtKuGelyKK9yOq1UQjRZQ94jNd{Pi|5PkeM@E5 zR$WS^?%!Rt9ahCc>#_$A6CPeQQ>kSSEfhAp?C3YU?9|fivQt)l)$QniY^mfYRrMh6 zah zm42L0KTf1y2okT>{DYEobA}4vGfQ)Z3=9{SAp~QFU6j~1|m-6g1A|5$7$uA(Ve+ZQ4FCb7K9%8vX zi}%GNUo5F!NhJ@qk;)OP+jnO*Cp_|HXq-hYj?RR8fBsITh)2$uXY=1tbBRYzN@adG zG|mcHu**(l-~Cl2Jo3I8@cCBCZwli*$$tUqxfwb(oBx!w$u2vAT>eg!&I^Hj{x9U2 zAMy`OZPqUcW!L6qUL77ed4}abf`a2hpf1lePdsu`#^(1SWl;#!=cf=@90HS*N;;cc zMmTBgveNjPL!*pUo;Xl<{JA14zCiVDT9#S=XtDawQhoMn4%L5_>W?Bs^`E8s zA696P%*4Nd28P7oHw9i(iI<0pO$*l62Q%JQt0lh~BCVPy7pu9K(#tf3Q?*m`>^riG zr(!)?Z3>uK505)k9Ic;Gk{qvmHGQNo^E*qc z<{#EOq$LJh^VR1of`(~p#bWi6+V63RT%9>iiu%7UTpMWY*Mx}L8yL{nrg%@4E!H~4 z481{ul@o`m0=s-#u;MT}^&Y86Zzthy#)p8fe$=OIi6&CFFXkC`zawK}lhi zVA%f?EUo?<0{keNspqh7s@T$@oK_mW8zq)qmk#&0qrOXLskir@t(DdF{i;fPD7&}$ zUhZwaSG1X6*NK|V_ikqMeLHXSy{b(XtM0kfp8UJn^!wY;&39^V^?jh&=Z@w+$OZf9 zk`;+P>7Cg_6!yWM&t7much7%U?jEW6dzkS<+HA&mV)H%Oe?TgXf%tKHOtj;@8_B)R z=6f(;pVHxn`SVMoc55G{p@ZYUzhb20eImfXjz1@j#k((!#pCYRo~N#es9`!9?$IHG z@OUQM##2{hl%0X>gE}%v1D?qSg1f@vYUucoj*_JA3jCXOR3<0u`^~^1^;Z!3ii;V4 z1)*=cnEERe2yTRa_s~(2>~TfC{OLM$zWNQ0yW)>^Cx%77?ogc$e#F zUs+`52Z8B$p9yf5suJ9E1)0O^TrG-6k8Wdfy30g|T61-}!ImV~k}307?c$J;QySqd z5nDT<*l)9q->g?p*~ZuRIn5lfYybBd$Cn-L#^tFwe5ufPzYeDH@5-2I{A{;wDySqi zfiGBITG6d4F&=+5n#oU%))OD(QxlleJeZYxvB|-y3T!m0?EAo_} zKZ{W5$>BGwH&7iYu~eq*Go>Hv#=3%}n=I-pM!#0BqB}RSFQfaap=xWA%7l4-;>*Kt zrdy@3nb^mme!5~I3H52W<{`D|PyIEzQJ7Xmh`98O+sCQWZF1BwHQ2All?q)U4Rc$T zHY|{3??o8a#y&nju(}l}7L8zOzF~3Wsx7Z{Xqgvw258$M%Vg3F~b&#Gfi3hdh|cBJ!8%z!4Abt%G>}w}K-ctQXBt&pYMghzFZIZvZ&fU@&!- z7v%ZcFh~bF`Jh;cm=6l@28d^-iz6?%R=7k5p8)hO8f02bMq#kUpDc_l^;sjlbCkD< zFY(*fe$WW1E6AfM^+hH){*k~(2y^!8zzd#X(%w|3tdhT@4)T+h(=jrJP2X&Vt?dPi zI(BoI_+|QJGDaPTKE0O|^-&-66NmdB0?t`*AH~tPTaue38OsyYsLXW%q(63!`zvUe zlxudCer2S76)}zT?YQ=1o%Gc*7^AbYxK_Qs8#T7)s>0~w8YT^Wb97i9!Q@s=JN4i0 zqO-IWiZM*$uXOQr??i5y(tNqS_RxoZH4^1go|Susu-Eq|UC0H+nX|Mtitzeos)K43 zhd%BJrmy4LkA8jBzt%aDGkvtZ*LRZi&D43Iub0zzZOp@c5qI$R=`OHoDAk9~n|0uu z+(-@F8WW0Xq<38Vak%8hc90|Zunwy$;WH%{?jZ!^EbRede;!Y~H*H_eLsc!d%Tq3o zU~-=HtuZAot>fB{=cErg^yxEGQ6KkP*Q`k|-CUnnoHn?4IV3XLm7edls=VWV2nBUkw0|hV_lAMNjlHnqVE~EPtj%yh!COEG5 zOg_Mri?>6HiLyNnbURNnOl;&v=*a70*me)5uc*)aF;HubG^~6h_bDteC^T_6iPnFNJ3z?JTp9z*8+8A6F+nMu6 z=1%#HRq%)8|1#n?<-g+a@4(W-wFS1l8nW?xnQQI@=7uT9cUg2Y@5D%#Vg6f&9;yMh z^*8)$3K`n?7>DP8B~Sl@tKt~YHq=3$wm&gq+WWMK=@-~Oc^(eYz0>tX%SBmJ}cr6 z3YQDN(`$yf9*ytJST)QX&+s7*&v5v|4$pCTp~IZ7>EV10uW|Tnhc9uMYs2I}?=a)u z;=k?iFC1o^o6P?>T%~rj_#GS$|B{GvQ%oM34A+3+@eV_CwD`FWb8oSD=Jtla=r9x( zi@(R=e`NoM?KE~wXFrE)9rpV_V5iySr#Or$N{erC_!NiFcKBk4zwPi39R8WZzjN5{ z|FC;$Te*J!hr?X_EQc|2XZ1YM;nN&G&*94){-VR*aQHrlF#_4wvZ$Z!&!x z9_;XNhu`P$feu4MGd;5%UhMEk9LC9HoZ#@s9Nyaf zAMST~-*njT|FB*+K`ZwQ4u9R@dmVn(;a@rYCx^3oX*Hd_9UkTIIESY=e5Auo4zG0h zbcfG(_;QDDaQIe-?|1ldhkxeqD-QqJVd&&`Uc65m_WM74#KoTu*7b=yQ<&!w?lR(a z;BIjEHiw^Z_~#D41de)MceuY^>@A+X9jtB>UHn19)PZO2EaH_Pcbvnk96rP0v%s<3 zD;)lo!;gXEJ^v>z{%69J%QM>V^N`VtjMbqW9P{>a@!NxAxfrZO5A!3x7sPNUzlW2b z;BW&t>R;yYNe-Xs@H&UDaQGpIf8%hubesNu4%5EY@49UiF;%g6zC{{lK5TeLhpQbP z>hN%f>l~io@PQ69_b~m;n+?x&c$ULU9A575YKK4O@aYbp>F}ivU+(aA4u8?%TODS8 zV)guv!{2lGMTcK<__q$f;c%(Okm;;&xQD}i93J5CAcvW^o1Q%#-pAqn96rEd=A)MP z!wzFs+2UnWw}_8(_ymVnIQ&V6&vy6%hc9yYGKa5p7y_Nu;TDJQaQIse!{Rsj?>G$g z&f=eQ_`ecNg!@OlK)5Di z-cg1}e5&w!BW9jHK4RWY4~qCJ!iPls4dLk#bA22gG4JdR5p$n!j`&I8<0JmD@Cgw= zCv5A|ekpufjDK19+=$;4{!GML0hN3%;_Zd6i?|?sQ^dOne>Gy}`>bf7O}PIGGZ*hzYsC^|5qaBy7^vb6Zyu-IRywTxD9Dd4S?xm)O`={Zz z9IjNmSbW}L#(~ANT*mNNhZzSJf4IZ59HuW#rq$t5WB1&v;M^A1Cf1E*!J^!j_hy;V zPba8;A0v;iEMae!LI`yFGiP179-&%Icle3Dy6v%S*&AAW_{fuo&nwKCQ9h@3z~M(0 zrp@KKu~DC#_6RHQg7nLouB^Q)3v2I^YJCb@U-saLa`kb*Te0?TpsV$0;jHFi?5Uzx zf$)8wxdV>#<$krLb#xafKXVxUW*$~MW$N|A`VQQ=smC5H+?z@=mA#d!Jy^KHN=hoK zbpmaBu-vC+(H<;cK(ex;NnVzfZY7g4`v{k1%XgPRx(Q49-^iIeUh(DsEtu`KmR#8~ zhGY3SRVceFG1=Ep(6$N7LyD_BmJCywa8y1fjoCwpO}cUBPwUu@pHeBSIA4Nn!jh3x zt_Mn|j8|Hc+W~wiQ99Mh%Zgt_w8drsliZC|;E3^p*&OqqvLmtBUzy`sUv|{jgjqa?rfy%-4@XqlGkc2y zT0B=JulxI?M~mm46V5RP%36U*j%%cBMbIxjjEn9}L9}>|oifwKb3rm)JQoDh#dE;Q zTu#Ea3CpdVZo5rb?ob)Mav!0L%aQM&+ZVjyB1vlT++S4$i{}XD!yXW}3Cm8X{b=T4 z&3Ll;r`iIQ`IFlMxjfqt6gOdE>Y~MSFRF|4`DawJ7SDx3^OsRE+l1xIhL!L)de>eT0-CFL_27R*e_)7M%&M+Z;Nk0Eerh8~=ne}hxFEW-zir}A8zT0BP^ zyqG^5u`4puq~N7Io2`~@2&!2;M^AM>SwC7l_kfB^7tgiz+Sh1>xOfg2do6Cl5_+xO zCM>SkZbv@$+Fha7a<3?+>~6+yA;;{w?B3T^W^L{xRO)_Kl?}`7%;`QjNqBg!f);w{ zSYcZ{hkjc;M=fpf9A(w#?nVD&b0t41_uuGwyj9p1&yja>j(d%5!t#Fb)2Axej2u=7 z%AR9P&di0aM_%B5HY>NB_@9rLj26$~(JTEppMIQ3zYru|t@$e@>F&+C3CmgQgk~Dm}h1HFV z7^H(T?9e+ZQ4Pa{wt9!5H#I4%V0@)JopJ_N?*Cz7%# z1nTqC2rLeP$w@aln_EUWX%^4X0t2{jg#J{-&ca%H8Csg>)c~%18v#>8;`_rdd%W&g zp#~`bB2Q@?Qy(@>ldEQ&;==N->SKhe39-(snogad(7@gGv#^_fc4QT6W_PsN z#3r+Tj8a1O-O1jhBV^y5?4MR>P^HSqjH0BQ6x?}=en#nF1>K;WKxPk18_cJYGZi0~ z(ItaVRRs2gI$Ir9{Y5(W>P)>d^#7%B_3cDl6C$cVM2}sY;#&IXFC`RH^I!U@IFD1H zp!6c4;{B*^GGs6PXysPgE}7n$p*{L)Io3`+dT08S_tGS`q-}*(X@sg?)-Tp7OBY#{ z`-NQSvR&BX;S39?@yDF~QQt$gU zTQP$+Q`vt2Yp-hj@+n(;HN;0E6&#Oot)-5SWg4Mu4;Q8yq)?PwLphG9Y^~AP-+1N|Mj%hOliJ z(84*RwBV*`)WRiAi&o5S{zrBbS=kf}uc}$MY9WwY{S)Z>TKppwy0xg6^jcKQ>KOHu z*1WK$#&+yrmCYtQc_bz2${;OaiEC{nL#}ex4GF(P>u98sqO_tWMXar97q_K#G#yqD zr0Z(_4=t$au#DzEVt0@(E|-Z+F~1qd61NbfxI`rEVUn&vsY~}dXtx#R{?VaE?Kl1CoQAf=H8Pv5iP?0gkK&oK>_5}o4x{jjM= z%s8N7>XaD=OdCIS`o4ABjh`@OU;g2XvyYwl;VBkkHKQ4pf}!$wuHo~Kpc);_uW&5> zV6IcE0~u!c{DT%5-WAZN3AA3G+v1nH_+`R7>p) ztQVf(pvM{};=V!p-XVWS9popC_py;NZ2AsY*qUCjsAD&WiO;E@_+JP5N_Ch%>Vtmb za6e7G;xB19K2OuNTaue38OtM>Jf~x}4s&*n%)t$l_M+-{i+t**SL0&+juiI#>J_+1 zvomv+#{cxazDxAa%>}$;D;{yuXuml+ERSIFBV9(1xCn!RV~9X>S1I#G3&=M)E&*RI z1m1!YDVOrB-1Hqn5z)=jwOFu#eABl^*y}3{OD|9K^@wTc{j3hlBba<#`c`laM`vm4 z6!!WiNgw}vLSL_#hQ4cckf%-u?oU1S4qldGeo5oFIr=7d%J%8yujt@R?ly(!M{`$7 zZmb35BZqrfhhf4`OOA17&e9%Ggg=jU8sOBM^H7#zJ2S>Dk6`k=63+ufXK8S5y}k|7 zhaCF!C84OVx3G?*o z3!Crb{}b1K(APK~U96?h**w@Js}ySk#dAqX?ku#H`MP1srq+9H!rYe(H|9}l838lO1ETc%Hd z?bc{8_TbXv#_0faz47P=lQbKw!MsZTT(BZ3XOW9v7UL;19Fk{>!GS#GgKdq&6yhaA zIfpnr4J`To^1)RAIXL0SQ~vyjDYGSF>c(|rYYhYgXP$DYEBtw@TSgd%>Wp;acm^AP zrrKe~5%FB7bztQkBcH?cj0HzMv?21Ok9T--#Cyv>EaLac=Xr)avOL4zX&yfHH$EO8 zat*)N;e8!G*kRh=+qcpKj`oi4#P$;{qTzn7aShz@Fa&n=Bk-{bIm9iHd#a)-}y_#%g|a`;OQ z-|q0M4xgc$oz?Aphc9>d28VBT_;H7S=I|>H|JmVkO+2lvT8H;=ct3{^c6g@4iyU6< z@FyI;(BTaZ-{kP^4u9KW_9e7>KJV~r4*%8RqxGORc`P2;bR>ReEul^DHqSVS^Ma6DPlw|UavbvTIj7=NB;Q#@Zd zNbp5*w>tdIh|vep4Hial*zuW{x^9#-At*GX;6(tIHxjRT%ef<<`1=Fj~5_55}H*jUH3LZJBGjfr+=C zxuM_m*0v?CX=o_-bHRp<=k?zBc;g7|fuYSK?r9uZ(m3jc#^IwIht=O#*mVDh(d)~r zlcX@QSAG2(k33P>voLyA`RL&T3PTDtiw4vTEZ=)hcG%P-zfz%n9iR_w)C_%j_JJLf z2^%)BgT{`NrfpcWxJR0@OUZ}{8`jh`*3>lC?wcFY{R89E_-CfoR1Z7yD{nnMe88iR zW?va0wFl}HlSJE9RJ=ebC;h*RU#P2jWM(Q~u8ZQ?53GhWWTT2kF^8;kD_TYTil zllJ>qyaQa?VVp;F8C5?^g?ntw1kS8>o8Z35ZWHI~#>)K>C!S+xyjnfU*wO+8>HZXp zbOYvoOpe0@GF*^XYSMr^R!VTTKg9^J?N3p!E2-?q`Y9>yPr(9G{V%pRb<9-Wr1sbT z6c6H6mX#7&S#g6@lwL0!_orB^)VM#zYy@q8idBegRE6UH6s<}u>99Wq^WnHZ1xph) zzdyx}%3R!^0&C>9KgFeB+n?ff%0KL7D)>5;wf!mB+@!ca1uTN@CHk@bDSj>$o$OEX zH=^sfV^&uETH0)XiVvbJ#CK(XirrL@?N9L+>9YMPo z+n<8f2(~}Pk<=jWPw_bMaes<6#M}N9W2LmXKgCZep_Bb7{zxsR)+kjJ+fO63+5IUF zQ9-spMQE|OKLu1X+n?f>Xo&k$jMRy5&Hfb6NWbk*F$6tve~MjcwD$W`u*#&%`%|2W zuDCzN!8A}O`%^qY8F7D#Gr+b##VI8s5jK#J{8!5VW>Y==te@ccpo zwm-#xQ3Knb;w4nu{uE~uI6v-B!D5=?{uIkdvHdCN>*D?tfr4iHQ*iGs?oSb@ytY3D zudv1aDZYy84*OHQC4nyQPZ4@8?oSbVt&{yJLa)XBDbAp2y6!)iigj(4C6oU!a{uDXx!?r&~*m9%8{uH;U6ezY~ ze~OnW()Ona^ljUp;uQv_?N9MPj27FUf^P-I{VDPUY<~)7_r?7wo<)J}Pr;hW;{Ft8 zlVbZ*@V4^L+n?gMYMSz}DMj}?)K`@i{V&uFsp>C^t{4DJs@N5zVn-$~Sq;n2DsIQ_ zKUZ9?V&KEb-lLR?LBMp+p^BY{B3pH+PN`xr`CwPGQNd2%QK0+=l5xzJGV5Q`Y;R!L z_hR*xYHZxVl`TnTH3@t|9SEU!HTyMOq|l)7#p`6$Qt-}U8;ny}K3;nM#*=qmv2baU zIrUN%rd=_1UbytcB=d2KE;)bd;QmsdxrDd80_i1SZ(x7dY`x)noEcW^Ni>iQ9s z5JO_=k3 zHm-Fidt7AN_P9v5so26E7gf6kHnz@4Lq&&p)_CC`GRZM`+%-}XH0V|xqBrAxx0nF> zewu*CBqq%PdL>N=o=&knpIT{QRY4}1J_VEEG_TYrq<4+Kd6pxNV{!LB;e4sWB7z z#Sbq}H;sVb?KDE@R(@jR<_jMSy3@@dmV~VzQhIqNZVW+by9L5|dAI(d9JYtB^1HZ+ zgDMz`v@_d;XwHeZJ8zxL7RcwCvxsbaVw1KRZRnJTzWMzfy2im}fEZOm{>ql-))mWO zWr%LtD69QV%UhSqLVruExTXYKLbxSH1g?1aDH4R?1IJp6)XIhGXI|KkLgxOZ zL8}jn8ohpa#4XKDNt<5OwJe;!q*cwCXvHEvgRU3zn|HJbKH#q+#ijhUQfZ zTN@ge&lit2(%Pwuc-IRd({9@*f`&@3X*#8gEckyi<-Kjw2#xfH|IgmJz*$w*dwidn zbB4ilcnC)U<#8AW8H~q>sHmtQs8}c}4>7TE28M?Y3^L#&P0`e}%vYA0_{g-Ztn}(N zEh{viX=-YwWmiNiEltuaEpOi6ckT5*^Jjp7^mgmU`plm7TmSW6|GoCwYwx|*KL6id z>6u+;wTQL7;5m%)N)Ugi*SqV?OOkb5;1@NWv=ndb$x|kLsNt~vCQLtU>VY%%YnYZ$ zM;6gbyLM9U_i68x(~;&C8}*M@{h5t4G;EIRyL`V}b*dhzX>b((oyY*yb*39p1ETLCaFwGOiZU z*4#WN`Bz^#Vv9fgX86Moivu%a4d2Sa{Nb4>GKeGYr>#cYLE4x_foE##9`Ss|1Wm2N zhgkPjjLuiJX{;CI441dlR-x^FZR`{M2efH67W5f86Oe;V{sOu4PepV;to6qgT*2BBssW(Mns>3zqE-br?D4m~U%gk1l8Ss1Np$ z5xz&l1xxNB8K-t*dK0B%WiYc+i55T%?3cjr>V`>YHBDZrnELSppVe=Mu(vl%$FP__ z8iVEG7vb&QBYS*f5_@|2QMT74Y-I$K6d)+LE$o^# z`K~V1=OwdXriooQ(tE+wM`dGv`;V#dzGcP~n>{BA(98cF{q}hwO5o9jU%k3#Ina;& zJ(aZYYozxpYp0K8e3UJae~cv*lg8)90_n3Yp_ufg9nv=_ZT@0%U+;}Dq%rke+9 zxwwY)thnH(p6#>DbY|B+Vfo)%mq9~)BMkJ`aoD;EytlG78cN_k`lnE<&DLn(x-q^0 z*YW0X4eHQmCknb8gFipG8LW%zNyT4|_;$tjMEr{4A3FS~!@rJrzT&+4j&TGS>VVl@ zJy`Z9DQ2jHyd?QpCm$E(94kW}^y?LqHoPNPWoZMjaTdl#or4q~67fvM(EpTf^$hSPBEMDGA4qhLztuueXecJpW$f{caj{ANw6v06mfT9_V<4C zGKOO_j(_%WnDLa!si$G;X_$H%rk;iuIK0^5Fb0bITJGeZa`-ZbuXOkZhwpUweusbQ z@aqo$)nTq#tLL^3;~-;lu3y8uI6U6rnGVl!c(KD*Is8?JZ*%x=haYkHXAa{8Wc7L7 z;lDb(WqkylWQC7waAj?^WqpLSO`g{S#M)%b`Uq*8Y*`;6ZHJSq+xx~R9KOO~&&9aK z$-nRL;|>S@MSR|^lALE5;Z1b35i0e-G`zLL+k)dWqU7X&oUbAzz!}mGNnAmiF?C|prGoCS>R~%mB@Shz1i^KRMSy_BL4AU14GsZT|SlaMN zhr^hYe+u2TS>I;tZu&P!-{iLl!z&@&5wV8u34V6S={xsE+*|muh?xWZG~$86t0S%# zemUa3g^g>&n3VAkHm3^njWjUxAU-e*o-e$0#LQ`WMSPlYzlhHeHm=P%!g!Zcmh(S4 z;uXSsMtq&{{tDBHlyTzWLAm>%XHMw_#j_(Pu8!DPmmR2>+}+qYJ5<>P+C=8@|Ee zTOD5M@WT#2?J(!h>~Q@We#hZzwTsD%4woDr=J3cdyX;(YVWZ#PAGOOSe|!HGZss~) zqZKjp-c&wRnFl4}lc-RmE~y$Qhtb9nB0-7llyag(d7ANJvLVjX8QFHu)1Ciu%Io|0 z+yLq6h4qr2#CIAc*3%c?**~{l0@Ew+ru3x_P|Nx}_)uwMQW zch}tcvRhH+FF`Dn1JEy2MEs?N>Js8FokLWeMV);fS)G_;x`TCgsLox?d*N!(aL>;>cgRTI$AM8my+>bpFyWRMPlMj0lXs z6ux^N`Acsi-<{*B&cBKEJ-~&0UWa4+rSGZM#$SRxZ~P^`MqvDPg#G|6jU%Ht3 zuZO?1nqxHn5--v=%wK|^V*I7hVv)bJh6+rl!rA=iu@L!7JkmFZzqCSjjKB064YFbW z60F!w<}dLY*7!>UXrT4*m#$%dk-x-it}=gVAGJ@JzjPywW&EWNVb=Id)tnsTFMXpu zr%?PYt+QVKQeSe6ztn|_8Gq?ba?Z?@bbsi;Ut)>IGJolN?8o>^3~(2LJCD zi+rY|%wJ**lx>JX>$^4~o)*^o?oVE4vm#$&=k-rqqTI4Tr&&%D#W3-h25%>r1 z=-_Je-=b2HzZ9r2k-xNvL*ESk(#z~O@|O;#?0Wc1hq2$tUpf~2%qLZ9TK;p?VbwO0 z%*@}zd5-+0705S_zjTW_!#^W`>8l)86ynp5kTx(&HF4{?Z;K<^}#!-y+U9W&YBcRAfPBD@Aq1uVBFVOKs#F8*;`J z8_6;L(qa+|L(Zg>-vZ?^@LO0SV1$MZeMUB&GUWVino`Z_QvS7+1BYqcT87lPD`ldck@OR#!Wk1I>6hvdnLB6$ z8wX}q%$A*$k;FkWXKiOB-K|u=$?AqFBWabAgC5pDX4LzuoMR-BSHsM+ppj#wQzbPy zoreuFl76EzB1TfH45f@Dm}|M~f}r*;RaJ~6GHc;P86#Dyzf)69aoEUR`?9?zVJjn; z{85eisuLJo)Hv8p#kw<)%HY+2TJk>2pN`M$FZ@JRm z-m2kgf5D!rP_}ouu$2)^{wRBQa}CE}d6y{d?Pb-0o>V6Gy2m`~cfB^s)N3Q$t|{xg z+;?IikL{)yo8Gs2rlR{&x#dzQA?%l{p@HJl3qkFNEtiSdDuoBpGneP1KJ zUx$3|7Z%8Gw1i^POFE=KuJrBNKCF%Xf2KozsvRYH*z|=LSJpho1w36j2}}%hl@plw_9*22#0BdKk-GypLF<| zh#A6sA1r<9#gM~z8!v)Y_8r9xIgnGwHBQcu13C2_66L!q9vksQ#p5GpC^QKyeU1ri ze3yffYhUQh21`eei-3*S!do|V4pDq^)R9`i#%np<>3kw$j`87$IljjnehMrjCB@); zY{Tb}YhN7qZzJYd@x`+?smKU(Gl>CS2**V`f{TjTj3W}xuWS-%FY~P%=rH31W|i*_zDkG!Usgm*q8+rr~`ALsS)2Td_=_e z2scE`xoVF1hr){^=Gy#d#E%G{88LH>^CMm@d|AZIDXxw9cfvPD%>3e(i2p2nN5t<4 ze>Y+rb_oBjyo$I!3_mKeJWOe$e2CHYqw52IV&m(>JjVh=D^hh00f}cDuM@|Gksl`W5OH z?sl=(f6+-@DK{D2;;+iR)UQf&yNHKZ>AVM=d1XnU*_er@F3tb^T<` z(5}O~EPr_U@^@FJ@*9_|cQ<1)YX+?x1ItYN+^gcguE|@ObNUZ2jOqHPF*mH4Qc5%G z`i~j7re@{P{&ijde3-8 z%9*GSoC#4Z^wbr_Lga}mf#sPCa-3d5y>tgD&UV#5aV&UVEtl+JJ?FB*`k(m&<9n8b z5XB^fsltScOx0r{s-7#Aii+GvL)7Vbov6xej-Rh9vYmz~RZ*S08_nuYrzi^FfU9_t zIeIReZI-pl{CMOCt9)hQ7~o!l+3ueb6mw&^RI&}KPj(2Bs+E{*%wV8XHv7Q`6jyV% z$WG?|Ry`Vc5YnVG4fC|Nt@u|-eSWXpe0BDKL`DlcVe~+Do)mTmAN&=;Y?8$rKRe|) z5>K=DsoZt5Uz191+kq0u5LA&akoCl)I9XBQ401;Tldk%CKUY7VGKH%U2V7nFiZWAN zD1^0Bf;_GRbGkB%a^$O1+?kp3McP8ewIjU$#G~ND2ZcLiH@Dk({Z9&QSRVt<7G6TW zJGi=Vn@(144{)I{PzRIS6WqPVf{TT}P<#W)2n>&Xz@?-+uX*56 ze2_h_$VlrzVCaHL?t|dvTYnZylc}@TfjJ1JDI~&1^&ePW z2&;lzu`{L$YdBoKd6jhS+R!vtjDT;;RQCd}UUOHW-@CvNEO!kJ(>Li^s|X$i$>Kap zAD=-jDNfHQadPH|x-zpx9@8;VU3|Vhr%-&1*7;Z{)4ezW)2C%#&?zn!N0D=S$mw0Y z57QqHiN3|3k#lCIDAQ#gMXzdgqheTM%ee=Cl${{?eiJV z;N&9rdGRPNP~Dy`^5!UaRcM13i@!zf>J0AKFBLB)aZND&iq0Bms>_%4PdtiywWDy> zZf!qn|2bZkvf-@V28?IzTkfpg?#|jB?yP+q{dm^C8_rsR0Y>hw`I46k{DPAE!5Zze zw(v9Xy#rMBy25xG{DBF=!wUOw=nozxT;H`}SyPgG82h7z)wg~`EyoJ0b3MYo#uc8` z|J;vfOMhY^a6BGw6F#7;K5(4menQzvg;~_$Y4i^%ECWBYTzFc67eBdGyjq)C_$IBq zIuV{#_!06K(4UiROGGE>#qspwKzfBFa<%5m%BsjzFH&Z=EX^4T&|O@Ckch;WN zckn3gQGPMpX9oqG6p!J6YeR?47MD_FaOg-Z214)Zmc?dICQYmZ(?h@frHd-<9dJ@) z30Uzc$fzoQiNv_f9?~upZ^zn%3>R|uq%*P_DaGpc+$SS(ZboJf7QaRv?2f02QT zcoeikws^B@E*=Fr)y0WeoE3@`R5OGw7%#)ZG%J(foiV=@uytHeJ=Sx{U3d+*{rF8wJ= zlvZkIneU)DuvY)-wT+OG{yhXTE2+vNsnswlZqx{AP`YkQQoBHcB@#@KvV@hVYP2!< z3lg3yVJ(mA8wBQtTvj@X1#1~T-L0IHUAfvn#&Vwx!f6$!1@%+3-@e*8>b46tB21MX zj#fvhdXQ?{crLSInDmB(HXD+m(HLCRg+?0^8vE;{L#w6fXOteo5;#LLv>TJtn#qza z&<+M=W>mhBnLa2pUD32bnQ4lq4$^WoZ)6VB{F8}-$Pr_-$KJnGxuM+=To(jGFQ#{1 zpW*}5fFeiGjyv)zSMEzRTH2F#+(tXA9Qbhr{L`@=qyHaZ=GQ6QyJ*7nCf1}n_2O`o z4~*2m>aUL1e;Ove$x#1f*wfle<>1to1|^xnU3=y$yKdi=)kC`X(w(n1$>;Z$NNN$v zY9#XcIqgKVJ6c<@} zuS|#>OSGhGu6%C&Yp!Ssme>jvYS{i-bHybGxFuMWTWZhMRo1?|ieGfat;JI7$rFQ> zNVd-Gq+?u*|6tXNOTr9^OTy^*sZU+3UQ7;+6;N`YupG;des!629hVPykx?#&d10Ay zL01*Ifr$Hw*a<{o4z>>EqHoZhO2i8^t*%0}S{p=&saJzuOf!hg$keNqD2JVeM9d%> zu04rtF^w4IisZOyWj%pZb-GiX=~QQ~t2zT!rXS*HSnhTLL$&E3iKwym6JqL{NgAx$ zh^cq~V4y)L1WH_^O$Lb4LbKWxXGs`ByW&i8-_%x-oSIEDbsrT-O@~V#F}J&2!rl%e z`cQyJ5HUwxn_YtLzCmFsQK~!B>$bNux)X!$G@?}ZaIf1=fI)ZvpgWx?)t%vWrPV-zXK%-ND$G(u-yJ6``i<{eobxOh#1u29r&?>0AY}?W$3l_~wvC1{J2y$A& zLsCzV+cI!PSmouTfvu8s-b%Qtb5{Q|omuhar0~Bg{I9gdYGAIUOUtm5i%xdJA~T!0 z;!6cKDHwS$?aY`U(K<3ndW4#Y98)>AvzEG%B(MM3P{UI~tx|kyz+uH3>9CT`R_L$a ze&v@=!*Hne1Bun6vRtFeQ-l3&f}KoY+H?u_+u~lRPd?}@3p#nT5nHB8wt7mZbF6>5 zb`G`5gi@zDJEsMC^VQQ^nv>bB%Qm|7O+(v~X8Dx2;1{(-#YT^j zTl>Q1CG(mW%{~eC#ezi(!9C z<}{J=g4D^x_(>KvFPy#jr1DxaoUuq~8kM9Ay=-JzoANqE?|pF_HF|T)0yrD%tY8z) zM>}IF<$f$^ZEA~ckW!e$1vzO>W4M08VQ-&g5zP+EYO{<;eLxR^aMJWO>*<#y_w zM*~@IVUu6PYw<3z>IaM9e>Wct+o8piKCb;{)F)AnnaeBiYG4jVst>R$C*jo;Wbptx9wGr4CxI!E97qyu_BVrsckuwJ%K%QY(I!Kr@HpIlv76J^7KqzUW z!SpgJ1kSSc2n04n=l6fZ$ZuD(UZ|Lf5#`C_td59jv)7`uwY*^22D2z{Z&IzM`8rM5 z(|ELOkNRLA83Eq}A1p~v;LL7JZ=!Up40cv3aWo(Xs}nukFj+HqNRnF>Q$G!=%JrKe z?Cq6w43EVtOIhVSd~UtH!VuY1g|XK;=Fxsl+Pu9r63(Fe#$b8;5@(pK{pGl^(|Yt4 zE6?wDj@}jBphjZ9?2kO+v$T18C+Ko2NoK+FmP_F66*O6{l?;3Qd}{VC7q&8j$)&P) zsGS^_cZsmKS1)_`KVYwW%%gtSYr|f>Ho{9qojXlSERe@`Q;bdT1{ta`rI?2vuOm5+ z7Jeu_-|x{OJfzJq=?Yy4;SNGV!Se1C_Q&z;E@``R9NWY^j^k-^(1;1+z!&x<@j0VEP?au4`r!B%4{28;H#{UQ&U2xPpVT3 z=0a1b)0W`^Q5dEz(>uU$A2J>G1!sgXRvUbfX^O{zC8v&)z)?Oq%BgQl#1vm1G3SS$ z5Yb<)__>G~<&4sXP445b@M!F?J# zFDm|C#E&Vy$KfA>Ws~Cu8)xUIQO-F8=i_<&4RYCJ#JL8nvcn>_`c%`-(xJ_}I*daH z`t{NW+rAD&&W%2X_k;UGy?d$-x;n#>^db9me;< zW@q* z)ehh2@Es1{=kOB_uX6ZRhyUy_b5}dAV;o)v)-_2uNtkC1;e6!U2v<6MEjYH%jZS{E zlYhs_A9VN;r}MOv|I*>t9sZNkujt%f&njW+S*yBrLmunX2dpxL{!V|S!xJ4o$l-Yo zpW^W69R3D4?(23Zzf+j{@Qi*Od8|WN$0q8pcJg0?qx^Lz&*(jbl?^L48aXEJ~PbN%kXXv@9FTq z4)5>qAr3RHH9JQ-+~DwW4l|}T{ZkxX?(jJdpXcxjhp%z?%MO3dVaC9=uWvbgzrznX z{J6tUIs8k9Uv`*rui0ljWB471c~N2VP7dcC?&&aN9@EGF!|;v{?ja2Ssx~N!#{BNeuwci zGdu9748Q2`OAf#0@EZ=}qGo0FOK=(UF4g4BV+?Qa@BoMP$kMOm`lrxco87~U!d8~! zH95x!Pl|AN#Ckj=4@9h6K=Me$*myExrh7k&nCp90#LNeO6*2SL-$%?n`7aR<5$1T= z?`Yv}5$_?~C*pC!#tY-RA0FkCg-1us++v@IrwQ*L@rQ*Ejd+3Z%!p4A=KJ^T_gvvQ z5i_^I^A`E%gcnEr1!3qP$gdYZC1S4iGa}|%XWa{QzAkLMu$zQ0iE{1%S4aFE;V(se zm+;LIKPG%<#H)qxi}*$1$0Gif@KX{0M)=u?Ulm>*@gId>iuf(z-$ndq;Xg$Dt}tGt z)VWgUgo!D*N|;qDz|5O_M9h7ncf`!2`$x=ktu|ubXW$@DS?&k*5$`U%Ys7mBkByjn z10P~XA5Wu65i|ehYv0J3OA#`fr&}qnOe8|TE`zP)y&cINs^ zlFjGDi3fMY*5js&1^3KFZy(qB=KrpE`Sb%bg^FKP{-|omXDjv}nG6}wqpo$vmbiOu+OL!9cgc~szwd#qikqzEq&_xKDD}1 zw70(Zb&-cz)e$=_7?_%#Kd`Q_SK*kNp@reyj{e2+qkp$DmCxMiyw}HMRt=6x#)z-x z=Jy@mWlZ7MyMA}o!KGBKuJ0=G+xpfOesfse)`ztu)i=L)9$Q^#+w|XSin40&q-%Xv zH5Y;H)0G$GmS?hACC<-=_h>@lJ=P$_9XV`sbt6Vq|1-D9PUcdjSUQHl!<*2~VH+$J zaoBbbQKw;Q;C2ohkEy@KVVkJ@$YEn99yx4s>q^QTwr!-6?XMa{4jXsLjvTfHl0^>N zZ&2SLhwU~gmN{%|*v*0CIhw*-VB@eINh0O2osYSc!xs1s#$n^S>2kF)jl%{TVLcqS zR>bw}qq=a8)Q!W&>O(2s6b{>cD!D!m+eECahr{-Hoh;+9{Yo`84jWGc6yiSmdx>LItL?(`@16Scn|9 zhrpY`VZ#q}6FF>*P&S#vHkf)u4%?F)?&fgVUQngV9JVo(HV)fp%o>M{;Y*pr##k~Y z3dIX(o%M3q{=^AAJu_Yn*SmN(rj5gPIc3(%VfzX>#$o$1`!NpN+a!#`#uKs3VdIrb z&NysE62@VhMh%R^#@n1ShmCVx=CCn#+5`^UO{f`%Z4!wN95x8Eo6KPgXDxEr!dd$} zIc&Gl6p_Qm;L12`+$D{}Hi$;~J2`BXlwA*pjX{iY*rtJ>S*{a3t?)7G5IJm%IGd5f z_HpDdjF-+PbJ$p?>YtIrHjTrI9JZHL$1;a4+%=5DR^ot-!?rU;HqK!S6i(x?9mE+l z4%-PN#$}iq6pFmW-7trZp=p`J)<`Xk!^R}1%wgk=W0}JySKW0uY(2EgGKcL5_HP`v zGtkzXe3|ROVfzF|=Z2hO@iodAhwV%f#$j7XMb^tYuL0A4%-k}+6adYE4=vV|9y1V<*+e{D0A43RHAf|Dib+uH7dBPwhkP& zk4miu`5=vuprV~7TzirJvE=jMuLw*PI8?h9$*bZN)2U&`g^Czp?IboMp>gV@g?QA81vf>cBFi2|CivhVffor>~CJ|CDM* zC3T!z*kyZ0ve~xVWT1=Tm(VLG8k|nX4k7A82IB2@P>XF}=2HEiv&$l(3~rgu<4&RK z?d&pFy?-FP49XcDOCikElf#I9qfK-xqA)jFhhMf!P?$<|R)9wl-Kj0*mx1sk5J`>5 zjI{HfBur8x(};LW0;!7_W#K~YHUzI?bI< zM2)M(X{$Oesp@~V)n9xxt9*MV$FNG9Bdehw-Z3PH5m6={?5Y&%e+cc0Gcfb0wu*$Q zQ5tF#tS^UWYSjEFZpndAr}=8|i3&A0(p1cj+YsqRd#+ur8rW`piDqEz>A zuiMTwLzh=hYILGhcZS#f+gvl7^~y|=)024%*X;dW9O=Dt&4T}Z$}jV@Go3CynDk~L z<(k2qGOk%cxKm(48Osdb*#=lSGX1K*=wC~k7cFgQ=Z9_Kfi-SA4{R8ZRs~`WtIEN6U}GfV z@k@;N2BX6X+R$bAI#HX+r#Sf`!gbovKT#VKUGSOOtSkdj=HkftrPJgLT`QuT5i0p? ztF(2Cm@zp4z86D7=G>IAVIFnc!uO&P2qkT_Zk09yzvJ1NCvAg&e&#cbe5RVcMe%mp zC{G?|5fxKl_j@^M@)Y-I$K*JO{Eq!uji5(&J$CuMJ(jstrtQnq)!FlCe-!drT2a$PPa z6p_bvQ;bb-gkhIX2J5Fkigq3$sT&x>lO2`x3xCctjSYScwRCKW{=o)kEC~L z)7CqBU|^D5V8#@iJtqp#%l{quUOee6&~G{C7Dx}agksV>-7JtkASQTv!M{4fG8L2G z*daZ?Lwae4^m3)wXd9%hozImHjNUt=%f{i3+O<9kS4XN=d4(laN?~K1tvYmceGrP; zHi@&v1);z_$#`8{*Kl+Qd_B+9wYkBpe&tr2rRP6x{lBa+)A zUZwbTu#~BLU$As)6c31am15G!sn-yP>%l6^v4V|{wP)0!zVs8yQpc$gb1ZWrK2h;U zBc^Vj0?TIah>ef+#VDtaVBqhwL^XenIo^sjUBuQ>UwPW}Uj z9{|T^{cBD?(Olf>P;j`n!?h0Y;_x(wsULMFWVIRQ@C+_yLC>b@&N~@l7&2FFU-( z;XgS17l+?<7^fz)!{Qc(`#M~57b$0&^EZ{sa7w^|kTnNR&T;u_&MBWC{3@nUm~uzsZtcyD3qg`D|Hzlc95%rPQA zM0iBRyl>n+;+ewZBAzR}f5ayWPmcIw!iPo7e9bsaIJOyw>9fMdVY*bsKXLXP8e?Ha^oTVdFEc5jH*(b8+J{y(w&brniNS&-54JKSZ0n+%i5B_Y7XFQD^3| za4x{iZwSU8@>tX0a=)TaSRbo(xZYvrt)|2L)G%{W!$&*Z;xOmfbk216LWfs4e1pTc zI=s^1haE0+hWK9crf`OK-K~C1iLi0bPUDLx$Rt_ua#I8*FLs#eC>dUfDs^*ZZtKJ&M zb(JPEZ;h=P5SG_^lnJWz_v$*l(0zO?JoL~phbsTs&#(ZOX$&vy)h*R66wcOVU9+`T zC40DOSVc`k)!Chr-I_YLYfO6dynAjuXv_tw&dO|ZwsyN>;iSx7U4|D9`vQ*Y+TkxM z>Iy^0-YEo29e>Jys{$u9bsjTiI9*i*3Ke6X8#;36fT7)n zP8r%TwDr}BAw9d-JUVem&+76~zx-UG>!^`ER=0NjbijJ1sq|ePdOZJlSC{2t*4kehN`~L1 zMkt*X*8fZ&febF#U*Soi@PaTwt8(#e*UAropJYgv&2}29-jl89bQV#j>Uo5jY8C~{ zR^(WgDO;TjFZ-)IeOh^y{D@PT=W$Vav~nv8^MM~kvHQ7#*=%la?XD7k@azyIxd&84 ztSR1HcarPZ{=#xL&mt7L zdT@3ANvWr}ke`|}ydK_EHD6a^#1pEn9dS2~ys7*TWh=K^TJP(zJ|^80clzA!>7M#j z3GV?errZ9ys7CZ8E>k(sMLqG({LbK`-{)fMBY@|VkvJb|7R*Not0RtX#XcSqeT!NdFj+rusv9*h-qaiH=aZq# zu;M|~;L{;dUu2YB=1sBgRhc*S84|{u;#8D*Q%lIPwZAymW!}_fsM*?I{V{E8e^rvO zwZHy~n(?N-K%xV0>R}n(5N~R*S|+aj1&n9yTkfpg?#^1e_E&n=zKwo7Yw6lwc`m`+ zUG(2lzJiLRys7-F;B@V;d>{;_Yk%dh<x3B$$j&{b{U*YD=+F#)+u1M3Y z3Kj2oxo>k=kvG+p(`9FCe}((3@urq?z_p>nW{c-gWWBtpQQB{L?XN@V{>Gd71_|R$ zy+LAJW^ZX1iod|xgiNCn-IHo$tb7%#+w%Y&N|`tHZE9h>scI4*j#Z-l%DgE)0o!ry zuM@S)GH)vI9*sBk654YzoY-uU8HU#WB2g$-VRUXt6pQoKHf7#aLSlZ{cWsebuXt0G zsVg#F(b``m>Wep!b8JYADJ~?ZB_zfbPa&}|Bqk-*bP?A63J1LzYkv)v6`kjfYkyTT zCrNoz+dT?AJ97p@69q;qnH8kAU%XTcavfP-^a~1e=1AJ{Bhu@8joK?s(j?onT-A{j z%g8{#xk;vxee*j@|5H@?OcTjtl^nqQF-=xnG_GHBl9^4`?aC_g^L4$p?KS@C&rm4S zY`Y&=t7MHHb~PeN(Kv&cuk0*Ay_6-aJnd--8zuapgogy-w2I@D#VTL1)S%;)->Up( zUue06%OyN52&amJW$M=|=L+TUju1oToZ6d|!y7`=yjSVlr1`@jn_juqZ5axD%oJ*$ zk;2bhfj^Q~0ccrfWIHtivI@1M$?BtQTPNem{(I@M#ClC;T4qf7AS+LMR=@gxMETv- zeuEYZaJUet%;1TV^;YJ*cG=)lB^xT)z?)(LDOaAN236+?%bMM)vt9Ky&aVwsGb>(I zs&D8Of2CLOjwS6CA<1im&@28*si{g0d{!E)7gm!lUZ$F}c$w;+E?zdI3m4iKGjB^j z(8h-JLvURX40%(%NVG9BhqS0Rkv3KbDJ1tLIzmbttJ^_)sT?>F0snLajAe)R)xS>H z)72K3Zm)1tB`GCx>R9@*axi@%ExY5%Tph=S>zIC!-oZJbWXGFSxvHfhixcm%hMuST zRbPrl&St#rtBJxLIlV1^V2O%%uF7y4qk`(4482z3t@?0(<^=W%H**a28m52Aus!sz z(+4tjyHU{roU*i{!&YgRorZ~lxncgBTE5aRsg`YDbuH(YRjcyLs#se>bmR;-3 zutjI3M-_~_fkti9Rp6FZ8)Ra1;yP=`bU;a zYSyO(>(!x(A0aX$?fkEHBhxYR<)GU@#647pOvHO$$6KSG4{B4R5m8aq-s&qp&%0Ms zI>x zsqS>I+ur)z&2?*5(0wlkdmlowx5O0*KQU}sy-iEXg_U34)0%JL)9m4`>};L*zkB^Q z$EmXg-g3d3YPjwSZ+fzalU(^+lF`+nb=fL&o!ug6DHBfL_Sxhm+d8T8<)z)KDyu!2 zu8IZPD#GGu6`i+D70b(?WrI8umXphOhV+-ACL;IoKV9rBXJk4`iSfpAZ!DBn-5EMw zSd2}Qt%YmC5_Rd)X{QFfBrF5BebCRu1=P}|>#*?ACE*9NPX!MR=_xvW~wjqWl~>ihf)>cNGd|RbPDa|mzt{# zWlxP3+Dn;YSZFYC(LeZ&~0%2j=%-UAhxgtw%BwqcfQGivALh<&S=Kf`czvhq?WtqXAvpMkwzWj*rP{El z`9$R{Y;wItPd{-b7wNPcLoYmwU~|sa(rt^DElv(NczS6u}arT?(-?Ji^r3nww#L{#~op*_m?$#)Yj~;WaE7w~(DIR3Bws6g0I; zTsSiE(U-O!+tAX;I&tf;8QbqtaaB4IP3KU<>63L#NyEJ6rMfpYLz--Fjds3bxQ5oV zo?Vc~{`>c?au;ur|K4le&4~k6VvVKB!8ne!k}&Qe);v0?(Kb>Wx|+nNUiylW@2L%4 zc6w_!BKv?u>OJ_rj8?`oOzPfjd>2C zx~}~d6?Sb>KpnR5FKGlqNgEBOcTypY)_;1Vg=_@dD>jVi9kp&r1v&GSCr|I7*5O}X zCYiOoVA;k{hmrT)G5vNf_9|l@_NWi`kr8+e=L30!J+yIVH>NjHI#xz7_z}$n#9+tR zk$*X7csjABex0=0@y-zT_MTMzMp5w?EbmaI&34FA*X^wrzSvV#w$~(VWzehABptNZtRm_2?~Dw%>1W{YpPy0`^Na?Krptm~Fx2RlO)G0b;Pcd%XQnS zl?;1bV;*)d*Jfn|lP*P_V^`4fE>WHnC)dedNdoL~Mit}h;k@Ut`LNR&--i8<^{UzyzI|vB{%ezn5AIClFK-8P# z*e2$Yep;KA5lp@zdrO_b;1kO8_8yZx^svXB(b|Q(p7nXbq^7iK{L49mQ{OtSYiwYT z_NFg-druBY65gX*aL_~{_VO+KOa0*CT8DNW)*;Ok+5-9eSwb;so_H2WbDyz5njbp| zJni6D9+M`+fAW`fNPn_J`ZFEUU+a+m&kpJDcSzsgA^m8F^iv(uFLy}4+acYUl2;#j1yZ6=7yx8;XrwPL;89K0}A!pGW`NfpXIvW z5xCc81_T)RlbKSA$0^E`^iN@;woFO?6eelQ3=A-EWivG?J_LE(*EH~;R6Y|-1r=s# zGaW?mMG4fisAneE9`!_?RZQJX&UK2M_B$iW8Esx1@vVw)iug9gJTEBA+xuTc{G#Gr zRR%lyOZbfyo#n#kMtOH(yvxwxoZ#sL=A2v|F^73y#77Hr+OWeh@zaZ8nwYXB#b8^z zP`C1+!?ErhF~>J9V%mXr#tv=CJqSD42iw|$M@Bj49Gs6gyZOjf_AJHRkHE((UJRC< zVG-x!`TA&-Qy*|X_LEN`SJ}@hW&>ZVcm-H?Mn{~Fed)TW!@2lU#E&Q@O<6GaFUoRm z!TH$t9z!mjRf@Ssf&Zv@4OsePBhHru6!-}U9cCz9BWC7OWRw0l>3~hYHtH~oVci*Y zCQ1ivI#Z&Ywg=}23Mla7KKo*(GZU<`lO+e|Yl2DwX9M{mN`kFzmqa<|5uA_L1;6>D z&-DS$b8;1~L#}<%x4#;7W=Re<8@Q;L&G^r#W@MAVDL4MZK!@o= z$Qg5RZm>g}vzeW7;An@oL!W2Efev&0$RCrOVd4ADqt@`h%;Va_;qeZ0{*3E2#o-wa zALZ~IhZi`!)Zx<{KF{Hc9A4q@O%8v@;b$D?-emQB-Qjl~-b(FgI$LJN#9LA9DET4hJrD+;8Pp?e=>)yqm-091i^FSa!aX zALsD7;Mo43aq>%rX%of?*E*dW!D=JI%})LuCx6i4N5HWTzjONUI-J-3tq#2$9^~+7 zhd<=-Vuw$6c!k5?a`@*CzwYqX8q--F`Z&C!!yL2qVa9ESWu}bzb-?7?I?OcBIDECk z%qdLgs}A4k@JfeyH)8q^IsCZ8PdU8G;TIkLt;4T5oKc@P`#Fap+?l+)!;IfdzP-aW z4)c!Bbnw+Syt~8W9G>X#ha6`9Vr7}97@p-Y&fg|)b@+IPKk6{Q`k4M%4sR|OojH!# zxxwMv9mY@3bhvjIe!yYo7$$$xVI0&<{+z?Vb{Kk^>HNjvcO9 z_nQkMzCrl25#K6&MZ~uWe<5P-H(!pJcOB5bs3-TETOwxucSpqBV_3NconHyx8}Tc` z4@LY(;U7o*mhev_{4eL3(=!Y@aBkML^|^F9(PBs%y2|0UvwgfrPx{v+W|5kD^6C1QMg znGaHycT2q@epZ<9|NR>WPjieqcEXF=46kvRYs}DW8rhkaT zJeN&A-{JWEg|^v^i{|R{3#E;%*}D6fokx{I*!cGsUgCzXell7SzZ`V@{(`=f@ac+y zdcW6r#BmEwKk1^nil)1|A9h#ipvuB0_Nwmu`vqGckvWMAf2H2X{yt^qt4yk#suu1~ z)s{4J19EyA4kzy_$bs|}KBm!EX$y>5)3r^W zr|Ot8EMRzZDhV&g$ueGkwiA~~Wkn}egs#j~-Ko6FO!Y5GRpj0#s?L1_VRfelMcI0( zR|KMT_6g-y6nK4@y&J{ur=pk5Wu%g2wb9BUNODIhGuxOMCR~-R{2=cDJMl2DoO~gW zYp(Jjq)GL7{bPLEnSYfs*6DmHZdF}*z#9_e@5X2($8KzZE zoiA9(X2ZiDxM+UdWP<8F-KZHfbXQ%n=wFe{PXR#8=_)j8_Wc(R{P9Zl{DxGa$d^?6B5T-| zDe~NKawlh|SLqmvzi3ZX7eC&fC={nq#whZG*uiO;MQZqB@mtzwnIiv7${0nS=dLL7 zS4*w5O~b;)N$%{-wViZwi%ZElCv%Gub;Zw6#whZCB4HGHZhE4~v!BsLM$Dqf-=Q*N ziqNV>k^jCDV~hKeb8%1`S6oicXETo}XJU~vAc{QAKB>s?Q51RFb#n1-5?5v*T|Zs? zFA`UUHh8gk4rQ*+JSzh)6&Y&ht_h}J(K&$_-em_>UKII5RI9EHI;dMit9R8e!MXn& zEK6%qI%zc}pz4P0$!|!sM`sRO+{4RP`DSs_? zesHq(S(|6fnY;I^!gcw_X~_p35gwNRD)t|INw~gi!?LC%_b~QH3#*ntqLyQYRn12R z%ksGV1K9uZ@1#F5|4GU|{#W4xx;C_^>`y2=DbLu;DDvaL&$Ox3v^?K<%B^CgI5YhM z#%k^}v+{iJX)TI8C$AUB(~AS?6_V^;t+`ZLx@Gbug>G4zGjQtZF0MdG#sb$Xt2d>( zWlz`tZO@V!4&A9EGK&07=nR&CCTZ7E=_e%!w@eN=Tw9{ZkC$dw^@n&L$`xtaei<(K zo^$mNiu@Gi7sK6eP{2u%kBXHk@^6qB96D09c0=##mc?ez9x@I^{z?qoiRHZmPKu16 zM3E<>s<<18aT%Uog<|-?!-UKXB}9=&_H`-6>h|19%?U;RH7rhH$46ws9XaKn8%4gG zj!+bNa;l3DqBbiODX3-$d%md3K#{*#9lprtXtcB_XDKP}OEu?YII-E{rTQ<5Jc&Y) zU-LwfCs8aOPnmh4eBa_k5=N0fLiR zuS(Eml1vvmCH<>)$2?yYR)(VWff2uZ4%R?EzG z|EWf*z6lk=&e}37u9D5bk}iP=+s|FNG|80c%skEe_FEzt1k>L95#;0tQai)l-a)zm)cC32>aiM{ht(4?0+Bj z|9K_j{wKNpA87lZw$}cqrTd>cK-BR!GKY!l`ZT@b&lT*aW&sEPc&JQzeX+k@;gY3s zctmCfckP+4?7Dqd$g*G=+GLmLNNsByYgd@+71n2AnpgPSgi`inp;ni4MRJ2~8}A39RP2qmk&Bv7 z(0pqoY?3)6Ph8r(sI75$%ZWSH?>fA>Wv=Be6~}4#dtz>mY&)qf89BdoVe`m&%i2cH zX+C~rbKByPc#aKkn{(_sdmgcbi{>{-+wbftA$SgmuFZi)&8vTw&coj4qmr)helYY#`&P zh4$u5slb9(W$5OmTaT>i&anezLFj;|bcSx24aCG#IztmYIS?�cXSi6T*L!KyVDJ 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%0DkBy6AT0rQ3%=lwW6lzWvkbjba@@9z5Eb?f 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⪚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 z zu_)Va!aEBeB0Nv{LfHG*%S3*!@bjYcs>nYR?yzGq4Ob#1 zP52JshlC#!en$A8!fy+&68=HBP*N-h#>zz5b{6Iv10mm7xR-Em;cbMs7alA;L^$U4 zSh5PEMLt=W@zRloI^mhZCkw}%9c(gBC&Ds*CHO{R##)Dbsqix4M}?mhepC2e;je_h z6Q&=ExEPNe+(DSJ*&**CyqWNJ!aEAbycqI6ROE*XmkHMj*9*to7VMlR@(YD85oTTb zNb~K&Y2J$MvoUWabRH3oxhm+e-ec&zF8r?W2f~aG4}I2)432py*j%f$C}-|T==2mG zC_G4bnDB7nvBF0RR|`)Uo+ZpU^GL%rw`@E@kj-!gmVaBOLQb zC?D3YjIb{VzaqR^_)}rNI}l;N7j9;qb;udx65LUEZQ&lmn+f+79w5vZ_^`Q)Fk@Ll zzOOLfK?wQb!c&E7g=Y#ME6m!OVduBPti2iX^MtPwzE=1~;ah~43NI6WO!z6`*M;8_ z{y>Ykg;}RHY#t?CCp=S_xg?>__ez49R}y@-@Rh;~g>MwTMfh*R4+%dh z{ERT`!A88RgqhD0^6!P4wJyq8Gd6VA5nf-ohwx^?{e-s>-cfj0;e&)n2#*(@BwQ^# zUHA;)-wR(Pe5vsD!h8cU@_W1RUxiugHgp~k{-^Lu!fyz_BfMJpQ{iT9iuPLyGe#%k zW!>7~4TOIq%v!af(@%Ja@V>+{N}!sCRG5}qtPRk&XG7-7Cs6ZX##=9@JkXD!{} zM&WCOZxOy-_&(tWg`X6DMwoSXBd%A4-xdBq_*>y0h1Y0Xw9`qri!f{UMqHZ+Z!Wx( z@NU9;3$vDQ*cl z{Jrqc!Y$V*+G#7yy2N3>hcIgthrEw4YZQlku<$V9;lf7>j~AXM+#r0K@R`Er3tuFB zh49tFON5sS-z)q#;m3ua7Jgp%W#PAlR|$V7%pArjs}}8x+(vjUVdgf5{>H+a2=^A| zTUVja+{WO&g;_H>00g*M;8_W-aE>`BJ!~Ls8yBxP$Oo!W#qtjAtQ3A* z_#@$e34bH}gK!IbXdX7(2s3{(YW=ZZEu{ z@W#U12yZXEkMIG)%>9h?^F6rWnEOdy%0*r;e2nls;S+^V7iO+#*uPMixuPMzO88pg zn}nG|8v1_~WMVde-&+CCEgm+;TRe8VyHI|{EY+*7!hFl(Vl*qw#<6y8Vp5MkCu zkFczP9(-gm)6&P51!egM`Njvj%;{RV_SSc$V-S;gf`! zOCEME7QS3~q40IWHw)h;{Gjk7!v7F{PMG!UBMmEsKN0?1_&edBgxjxMw6mr#>)VI@ zp2AxR_Y>Yxcvs<=!%iDMO5}XQIP6yovmSoPj}<;c`1isW3ST08mGHH~HwoV=e3vk5 z=|>tK7Jgj#W#QL_nHL{nKNS96n6>vqr{#J@ZY#XL@J7O03HKA;Nq9G5*6WYBh6*1c zTrNCKxIy^0!lw%_5N6(e#C47EpM+!HJ?-IEk@NlB2>Y<`Q^L;*zbX8#@JGV`68={B zN8$Eeit(-~+(npiz>&7Cg!>6^C%mKZ9>RQ^Anc419xGffTp?T~JWZJI7lh4Ig!yhk z$j=q#8wVl3TzHZ2V&OZ4?-IUW`0v8c3G=Olh-;YmIMyE^u3bfburO;8g#E*X%Y-KhA1ypb_;}${h0hQ^PxwONYlQzK z%=!kAw&lWnGdkpt2|pwJPvO^u-xU5#_$y)7MhN>Q8x)!EP=~yO@J7Pjh50^p=(A=* z@Xo?~gCXRsr4SrzDNuJKL_S)0vhY;lI^mhZbA|b4L&SB4@b88BUPI_yBD_d=vG5(j zcM0Dw{CD9OgkKSUOZYwEkA*)IZoXkLovnpC3iBO^$jb)8zY*q}5TP?rm~V53d^h1? z!o!6p2u~KCDSWK(>B46TUn0yp5|M@*gl`sJCd{`YLjNJ*$An)Hent30;ZKCW68=uO zb=P8CYY2A{?kc>gFyF3-bnYn3S`#53COll2Z(D@U5yBINrwG>x&lH|3e1h;9!oL^3 zQ1}wzMZ$}P?-0IA_05pHV(yTfJ&;dO-97v|d@ zq2E(@JK-ILcNgAE_(0)9gv*61gsX(73C|ZkN%$P$3xqEfZWLZ5yjb{N;lBw#D*UAI ztHN&xuM%D@{GISm!fkDxjVR|1!s`idDBN4Pzwlt;A;Jd;A0#|l_;BG0;Y#7@!ZUGgZx+5y_)g(_g#Rx5sPGEm7lc;|zb*Wg@OQ!`woXWte+%LE!fOg|B-~xN zmvC?4fx?4?2MZ4o9w|IVc)ai=;cDUO!n1_u2>(|2bm4P^FA%;|xKa3z!q*GmB7D2> zGU4UIPYFLO{F3l%!tV)xDEyu9Pr@y_73;T+a2MgO!aaq13HKA;MtF$uzQUu04;LOU zJW04lxK4PE@bSW@37;u^h49tFi-Z>o-ywXL@PopS2tO^nLijb|H-+C9{z&+1;qQf; zbuZReOW{t!orO0P-dK1G;Xc9xg$D`mA-uQnfx?FfA1+)bJW2Ry;RfMZ!t;es5@!nX+DF1$>5x$vXH zPYORL{G#w%!tV)xEc}`955k2_iuKq^xSjAi!s`on6YeS8SD5vh;#$0e@Gipp2p=Fk zTzHi56yYl22H{!4rwN}ae1Y%+;p>DK3I9d-PT~86Sz{{l`;_pr!Y>KGCcH{`weaV{ zUkjJ?EXLJBcn#rB!W#(xMtD=dkHSlZmkIw(_#xpZg`W|AS@?C~cZEL?{+IBV!tFOL)-P*Wm^Iv@Y+1uC z_&woIgg+PlPWUI`mYWytv=v@ocq8GS!o7t13l9_?BD}Bg!NMbjCkRg#o-RB?c)l>} z!bO>!C48>%rNWKEe-^$`c!}^*Vb+(6xc)BuwD1by*MwPjF2cSq{E_fi!ruv(^eTpJ zA-slgC*k#kHx%wE+)H?S;hlu{7ak@&N_edBcwyGEi~LR#ZV+ZIyU;mRn6>Oe9&6bZ zY`aY4R|;P*e3S6)!haS1oA5)zPYORH%-VO6o>ju%3I8PAX^WzMXW@;6SqCp{_7@%~ zyqoZz!Xt%Q6EEyc5S}btBU~rUns^cRx5AeQUm={<&D)Bau=m0u|BLW);Rl2t6Mjng z4dHi$zZU*pxb2q3GJ*+cNgAEc&Kr#e{zV(4;3CKI+Y@?7M>wITlfUw z-wK~4e6H}t!j}s#5?(BPr|><(4+}po{H*Zv!tV=zB>c7T_rmS1T|`@AoxtEO!d->8 z67DCwz3@)LdkXI(JW6=1aHVjyaD(tH;S+^V5k5=!T;VH)7YehsVdVX0;d_PuCj6}M z^TMA9e=gjtchP=J;V!~mh5HH*5Z*y}7vY11M+lDx5aeG0OHf;X8!y5x!seQQ;?rpBH{vc(w4S!ruu0AY9s~n6_5J9fa2sUSD`4;hw^* zGa32qC%ldD9>RMI4-+0Pe3zY{iIHX*B9PMcq`$4!rKY&D7?GyUcy6#4;CIRe7Nv<;Yq^P!qbIW ze>KkEIl?CipDKK|@Oi=)3tuk0Q209Gn}u%^zF+w7!cPi6BmAQ9tHSRHzc2i$@E5}0 z3;!(KvVXCB+6u2JypC{B;aiK3up#c$V;d;gf{V6h24zD&cE| zZx#NF@ZG}q2|q0SxbU;W&kMgM{HE~x!XF8LA^eT-&%&i!7t6MT@LIy_3vVRcUwEMK z&ccI*_Ypooc%<+c;WFU~!gazkh35*NAbgJS1;UpKHwxb*e5>$X!uJY4Ed03ev%=2{ zzb5>q@Q1>m2!AE~op9-ZV%@b8?jXFDFl!yhd9< zQh1thgYa>}^My|nK2!Ko;YQ&<3Ev=moA4dN4+}po{HpL9!k-I&EzEkNQO+%dI|{EY zypeEs;jM)G3GX1hi|{_e2M8Z3e3>n&fsVYhp`U6Au#JS$JRJp~43Xj}$&ic%twW;VR)-!gGX= z7d~0|G~qLa7YJV_e5LS0;l;vBgqI306Mk6uap9+hR|u~Zep`5z@M_^tg})HiwQ!r4 z6zi+C@EXEhgu4oN6YeQ|k8!laM~qqHmF+3v=bSn8x^r{m_nliCf8yNU_)F(b#@{=4 zHYOhI!|j}HYExkyXB&oI*wDGBaSvyE{ZQ!T+}pUX@IYt#`Bd1|xxX>%%@Wr@<6+J_ z{6Fly3z!te_5a6TC{e9{iYL&QDAG=R*Fp@B;7#VV(ys3;ztfS@>G;ABA~-Y!$u< z%(-f5ljq6~!(R&D2KjE`+req+f&MSR5#hVQoX?ha?ght$e+@oBnCBDcwx!N*!M%jn zg8KzzxE4!E+5?Bz!L9 zi-hNcIkzp-xd^;O_-Ei-g_nSr8@^lkX2@3x-wu9QcsZE!+|uUV;3tGRKlgfJ&d>dV z@G9^o;opGY6n+f6Mfh>>2f}N>+YNsv{3PVNgjpYdExZ973J2+V8Qe;kb#u1xTi}ku ze*||Geiz(Bcq=$p_(O1>@OE&4FzfOog?EBEM=tZh!*Yx;>+cD|S>VaS9l_ItyMj4i zF5`B?QX$+6e1>ozaJ?|=@^gfb051?84Zc$N81NEd*73Ir9}iwG%=-RrVb=F6g{Olb z7Uo>ztA)=1KOtNLUN2k^enGeqyh(U2_)Xz+z*~fW4E{iPK6r=l#o&Jm^IGAdA;>(r z0!xPQVsNJLb>McwyoPiZz6pG=@G@|YFt06rg_nc#g?|MeBFuTvhY3Fn9wq!Jc%1M$ zFz450+Bo-lvGD8QQ-pavDG}ZVo+11xxLSB8xIuUqc&_ljz~>8p4dz_C+*T{pNtX+^ z1}_$F2fkjo3wW9E!Qi`vyMtE>_W?gF%xlXU;UVDXgolAQ3LgW0O?W)`ZDC$F-V?3> zZxfyg{+nqGuELjqdkOy(+)wyQFz4fC zUfl#9D!dfT`FJV69Xv*u*Oudi9|9K%KLVaA{1}*X^D^$^;4{xkS-;lF~P6#f$YtT3;2FA9fIU%o2b8T^)TH!$Y}=6>aXKNRi<{#bYj_;cam z;C~2@0DmJq4jgV7*x_97QQ?!poFAC>PX%`p=5_2K;Thl@;aT9m!kphd-|!IO3m_jR zd=Yq*@Fif*AFt2;nh8u)`0r_0v72xxQ z?*%UqegMq*glTgX_$uLb;2VTr0^cJ1Dwy*LQ=iwsyM%cS{FU(gV9qT}oj-$rE4&@d zd4?(f1pJKfXW-|BzW~1?%xfm+8K%C6`t?u3>EJ&L^ZNN$;g;Y}g|ona7mk5B=P>Pb z0;jhMxC^+Ya5r!pVP01|2=lsnpzr{2ci}-`&Oc0>ysq{a9tj>SJO+G(@Nr&i*$zaY)O#SKL(}Yh4mkZZ}tAuBRIWIBwdA*%2%OT$pp@bG~Ax^C9rF z!jFSr6#hM!^B7ZSE%+_rb>Me}p8w#2Md1%K0-JR*NQ@6&cT0-a11=b@MPgGkaJFBriX2T z(}lZ%D};N1&k*hn=A6dV?+czI%=W^0!iRw`7G`_lGT}n-&xA*VuM<87e6#RG@a@7U zf`2K@_QL(bY%i=5J`4Pq@Y&!s!fY=*BfJ3oyzr&qSA^MKctiMVFy}z#ek}oiAk6l{ zcHtG^&xF}V*d@$10_Q_!+~0x2nE|f{M}=Pmw-sg^p_A|%;DdzU1|K5)9+>ka(3r6o+;c0Tr13P2yiZC zriX2ZbA%5C&lk=E|3tU|e1-5)V9v43xP{=GgvWxH2_Fysr7*uCaG!7`_(9=W;75he z0CT=&+T`~Ho)T^Z|3P>*_$6VsH8|fg_0I*rBfJ3ozVPMXkA$xWe zKCq96jj2|oeO z7G4MLDEu6_tMCSJ58>Cr{e{`?C=h-de5CMJaG~(W;A4b815XhC20U3f4cDA$!eQ{~ z!u;+*g)qN+aE5R@aJ_I0JV&@A_&nh*;ERM026HZG=4}r6YGJlbmI$+L!ug-6lMh}l zJQ94j@Uh^P!u(Fc!@?85tA*JHc|y1p{Jb#RAe)4%!EXvTfjKWUw>uB~f$;g@?ZOMd zp9xD0nE9hxnCQ>rwYFeE){0`Wv1}!;2Pm~z??^#aoLucC;Sok0^z@c zFA@G5_@}}tOnS+HFgL8y$0v{@TCwPc3+b_d~?*)$*UJV{E%x^WED7+3lRronD=c#7e_}zwC z!f%0Vh2H}=34abgNBE!M`NC|QTq+#GwQG@ZOYqggY?~|*?hL+F_(1S-;e)|<3-s4}MdaZ5Ga1&3!Khe;~{@%XZ;%@Mpra zz`KOmX8Bt9JaDLOVCMob=dY&Ci@@2!3&5Pen(|A*U4^d&_Yl4XoGZ+4LF5Uu&2pIV zO7Ky_>%g4Lnl@hpA1nMP@I>LQ;3>jvcbqJ|1Dp`v1+Em{4XzVrTVu8`zwL0IFxwQI z%bMHm0p?uR?$9hh@pQ~x>eK;c)whYN284;Ow5%(<_rzYRQI znBRpsQFu4_B;jwsrwXUxI#VjlZ$!)#ZUL?lj)5D64+75Pcj6PWX0)BaNMc44*`J`-LB-X**O{I&1{;86P@F53vLgr5ax3%>&HDEun8tMF!U z4`H?!I9E2)@D4an_&soe@K*4V!e4?%3bT#Cd9xYU$Ms~Qa5{L3a0Gm^a1@*n&IVTs zcLbj)+y#7=FxwQIL!0*dfqyJK0DQ6VAn;|vL%}~2J_>xD@JR5@!ehX<3r_-bK5g2c z3cgP`0e(=J?TAN(&j9~kxE}nJ@Eq_TgwF@RB)ky(y70B&cZB(EiuZ+Y1AioZ518|8 zGd&N0zYu;L{4ZgCr^1f~I!}T*&o=cpf?Er}0&Xw-D!7aAW^gy*x4=Dx{|N3UyahZ+ z_){?F+@^gG*OQ}#)4^keGr-3QXM#EBHuc+prwVrhPZvG_Tqb-Fm~(McKMt-H?gwrX zJ_3A>@KIpS#Z7&-BQ6yl2VNx1w!_uJY$I?kZtBkg-zGd4%(=KJ=k@;{;icdQgjawc z5q<>xJK;Zp*9m_NeolA?c%v}CDe;={m*97V{{h}A?4$nvi*P3RQ{hfv&dbfT@p}7} z@E~wH=7Of2*VUH76TqCKn{r-1I|!G74;1G0v%BytaBtySFz4%L+_S)gg`2=f2+s#| z?r!Q_0Uj&71k8E7DZd#!N%(f~kA!~?K23NvxLkMxxJvkCaGfx}|1ev4EBIXD?cfWA zL#Y2ar#H9T5`2YlHuxH0Uh6p5H+6WeyG^(&_)g(m@IAtZfgcbq1ph{O0{C&^BJh*K zQ^1_}oA#%IUlcwK%z3{lF9E+LTn2tmxC#7`Ft1lTgn7OCQus>nZsEn?Gz`?D&AY%6 z;d{YZ!jFPu!oLF_AiNgLxxpEC9k`e9bKri$uYd;$^I9}i_#-gq24`Gem&OQx0X|OH zL!DG4oDQBU+!D;W#2J_0XDAbngJ%ingKLEcft!R619L8M#vKZtFMKrkQej?y76})D zuNIyTULt%3_*UU+Fy|Gg%{kzEg)aefUUAA7f*%pS3j90aTfysumxG@Zz6-ojcqRBX z;YYx43qKBiPng$=ZNj`({7rZxc&G3i;C~8l0ehJHnrY)V894Vic^f!W*j*olL#QV@ z3ul857Up#zN4O)nuQ0C(`NG}7Lxc|n4-;nHKT3EUnDdh}4HLm92(w-<7G}MEif|>k zM3{B_3}M#m)xrzF4Z{3>!d&5H;PZu7f)@y{2460`9=uri1@QI4uYftXIn&8{_YPrx z4`GGy$6(HFPMuxgRl;GMbB_r}z-xqCfu9!c4BjBj`t@bugTR}GyMg~GoCDq}%)0h3 z!UMoNgbTo53J(SE7Cs7`);UOLAvhv@3^+@8JUAwN0{8%7*2i(-VsJ0vso;LX{Kmo{ z;WF@0VSaDnXkpgJV}uugj}u-5E)u>L%sJATpSOdj3$sow6aGDTmhcncT48=mp-K1| z@HxWIgXarx1arQ0+J70mNcc7I)x!M7!V+QDueS>S9lTt)GtRBMg;_^(?sVE@9r>{E zA>h@*xnRznPM!YX^}_k!7laQ3ZxTKn{HE{`V9uk?xP{;kghzq53y%YTCd@i@m+(X| z=Tv9hVsHrac#~PDMuquJhIYc$;LgHlfx8Jeg8K^dTMYw+&j%kaybwHGcrkdi@U`Ia z!Z(9Y6ut#~lJIR{&b7|8EeBT${}Nm$d>44O@UOt<3a1Fz?@&5_E`tNBpkwd_PTI;@H@gC!S4&RPW@Q; zK=9v%dxF0f?hS5<0o1hL58Ot0Ft~&85#R%bS-*0Ab?Wo`4~Ghm1Ro~My7nmHN#K#f zr-C`ZI^*)Y5EF%2*K&S!%FDqg3(o{6gjw%a3eN`D37-v~Cwvb0V&U_^R|sDKzDD?B z@QuR!zQk?9*MaX8UIM;H_$KfJ!mOJ)zdF--EBJBYW#A`;Sx-MJd>{Bl;YYx)3O@sW zOLzABw<(4R4+M`AE&z`c9u4N)?2LO1xLEiE@F~KqgG+>` zfM*D^KCTu%8QdVux_Pef4Dk8FteY1Ip9#KPnDz8xVb;^v3(o^D73TLV?hw8Myh8X+ z@cqK9cUKAD2YyVLbuj06=RQ6Nep>h;@CIRi%i?9>HDJ#7PJPzRe-wTSyjA!a@Lz3>2Z4)(dxED5_XbZF?gK6pJ`Bvc;%W0JaINr2 zaFa0W_;Z9=$IlmL9e=6tB=92PS>UUMo4`wi`Q40Lg%^OA3oi!WExZKGIpmoh*5wZi z-vM4N%zB-3$W!Mr@Ot6jgI^GS0?aw&sq+;0P2uOjTZDV!JpMqqH+Z{nKKL`?qrsd* zo_6@nim!#ofyxoaeTF0X|#!e(?Fi zkAW8muLfT(ybjE{=o$AV@b$uPfR_rh-n~P32Y7|>F7W-rUx8N%r{SD?Oqg};8ex9d z;%Q-i%VL9Ycks)?tY0?^vrhe^Fu!ZDRhV_;UxcTEcL<*h{!%yr-Yr}KPQ%>k+(&-n zA|hM`=G^s^vmT8J*MScZW}O-ro(=9LJRi(C?HTuC@F3w!!9#`lt&F3Emw-9HJ@sz} zA1BOjWfTc715XwH1$esfBj7UO--2fe{|;O$%=)!S_(||N!hZ(O7v2WGRG8n*SS0*6 z@YTYff|m$;IB#wh&HyhLZVA3yI1{{5nBUEKShyQ_wQzUv6Tj0yh) ze4y|ZV9t|Io!h~^g?|q2FMJnxu<)=JzqGg#Qk%6aFW7w(wVA&Y90Nr=#p&B-|3bP`C~FO5t{3&Y4gBPGHWNPd)&A zyD-0}@k`;J;CqDof$98$U~L&)c%HuVh)ZFTa}4Jj9%gu);bOxjhN}(FHN3#^V#7-f zuQ0sI@EXG#3~x5P)$k6(yAAXGG~M@@;ke;`hWXBz>W?v8WSH-Fsm?6JO@`+i<~v%d z&-b#F`OcN{O2exSuQ$BO@D{^-mr3pHG8{tLQF*puzNe(}T*G`HN#%uxCm5b)xWX{s z9n!ex8Rq*xD!sGRR4D)T)=Wxji;%=ZnIw;1Mog(}}= zIE3-^D(5?c%6v~yIoB}X2UK~X;R%NMuAk~u80I^DD(8C<$_ou&Yj~MqzMr7_j~M1V z2`b-c_-(`64DU4TVSKj6<$HF@oegu`zsmCsb9}$b`L3KY$LlMX80LF$D(6^yaVR*OU2*w|)4#%S_#|?8Fxym_qT$%5eDf68& zWsVD1o@Kbn@O;CI40D{f#$9fBrQy|vIi6efHyPeynB%ZjXP4m+#_y^;+i+LIxrRA@ zTJhs+tWxlVZ%y*QO`CgJT-$hd97-HoGh8G)NYIucVj`7vFYYcPDuF5wX=Ga`7 z?=ZaEa0Fu|RfpqimE(r{86IkQjNu}~(+$ru%<->kf4<>GhL;##Zg{2P)rQv_-eh=- z;q8WZ8RpnfO%KO_D)T)TBFb@&d8GT&QKt}tA0nD3;h&O*c28eV3YV>DI& z5yKppsq&46-!{C>@J_=X8vPnK(=f+bsyxSVzG04`R2`0$ROXmS&SIDci1?N_ca%rSW?=h!=Cj@4Jb)-cD|sr+8Uj~HHOc%$LB4R15N z)3AqeRBAudaA(6DGp{=NhKCs*XSmpKiQ#I)a}6&ryx8zk!z&E0GVI2j;eLj0gOPJQ znWmZJ&y{x=<~VbeM=<_Lnd8ZoIrdALW51M#8XjY~$nbQ-vkY@gxZ0U-c#+{HhB?Mt z^*OFvnPa(?*Bj=TZIy2^yxs6F!yJRH`W$zy%(2$W9Pg!EV7SmQ$9t*HG{Y5!>kV^U zwCXQ3%(2ia=lEykdksHgc%9*mhTk^4&G1gc9>xr*{Y=B14d)onH$2SnIK#z;Io3+; zR~w#dc!6P#sZ#x=hF2I~Wq6I@4Td)x-fDP<;oXKK7`vm}jTz>+D3$j!%<)euA7hwf zo>a~;Ps+0lHyNI9c#+{HhB>xL?QlGk@@m8D4R12cu}Z4H-S95M9G|2*9G|4z)o`xi z0>g!dCm5b)xWaI~;qweHG<>aLjyKZu+-sQQKUKcY@J7RL8{TGkr(q9cP}EMQVU8tI zImZbp=Nleoc${I5=~4X>!_|i88s^v?)n9CQso@odR~cSoc!S~1hPN8#m`2^!Zo?6b zy-<0~Fvs7hoZ}LeITlfw;}4ZN=1`eqVw7hYZZgaNl z|IpyNzs~SR!*3hjX1KblEK%COx~lffhP=7~@%X@kAp-{vI=tZUBf$Cj`R0E}K|wq| zXkY6x#)V%1KOVX9-+v4LJ|}@g zpOtfIp>S1glb0UinWTq#n<{G?aX9A=%pcOfvU-Mwn$0=m%?ziu*-V_Mm|asdFTvC$8s{~ZmsVFd zrczWstF*y$f63G~&Z=u@iZ`<%$#;6ko^Vopbi5#MXx^ZB{~E?}Cgc5Q#`~Yx7%Vet z>-uv~nyP9&n`_{`G7fpjLR;s<>%%12~xmYT`wLSB5#_@wZ!<^8Fk)CQ^qDnj+%1fgp-QLCMJw89y@vDgek-G zTa6qwe)vEws+`;8c_6Vcp9sudAtH!O07bc3xo4*`M2#SKm-q zuZjE~Yo2y2s(AeATyU<62P=lrb;m*uPM_eMw&#FyZ|LAGO6m;-Tc`F0La5Ae>Rn6_ zr(ylzSKAD##uY1kqN?EV&+{l(*fG-^V z3w(^P_L!G=?AXlS1nd;L{*zAaB?SUj9`Zi@#)hXi+hf|dDWP9WaS$uL*`708&jt;* zIn8jUI_1(mQ!zlC?nP69&Tn&^;jNPvnCESoKCR96S?vbrr!UE(HO{R;$NW@A6E4XZ zZsqwr5#f4cQJp-)hZ%PL_hNIjksoJxlHqBF-8mp}XBc^n;ReI!lUWGhxJ$mfjytdC z%b}5WNp)#i5;=p)CeqpaQ`33oz9eNK* zo4m{`9K5Dz@S4_qOz3?BhjMkEm+3bo8%SZO1#2c~UW8SMwRhTw zQ}Iv7P5Dd1XL$b6DuN)@(rN3r%do8-G;y@GgOU=;^G9?E+B?0wjBiin!p=90LP5ej zbLo+w9h8Q~l5;%V8Q$b;LQ}2@k-6;*@ALF8(t6(J6hs!Bd8wL3vx7Rzu%vmeH2i>8 zQ)5#F3deq$L$dT^#$5x*~ZMV?C$&0Zd-) zSbL<-OpFOd;b&ck+hG@fd1aTV1YpJ!z{>U82XphHB?fn$2 zae&?mc$O2yY1pOkTYK!g)b!yRk+gRMm~j|J$1z?Ty1Jo|EcS?;Z%4 z@9H?NX+z+;yU?Szv`RTLozVXsWYya`U$Dyy%-wEG15`}aP2G5WD zarzZ$6SGch{e0T+HvL=98#%A^vPnVM#I)1WXN{a&x^U9{? zDVQhfE&zmhx@Q%Jn1}QIMQK;0Um5xt&WS%W3=96zvPWJY0=(M^f`X8vGUq?jTr)Jl^Psc_mECpNfAkqoK0K zOB+azcrDz`$e?-jEXQBkHhnI@{qdK!oXFJ-7ZKEwc^!CpuC=<5p;e4hga!P)?_1jY z(J1dueAMyb*2zbx-)WV444l0EVfCZ8 zKVcy9acJp#!)#$Z2cXV+9V zcxTP7Yx2JL&0|Al)11=k?|e{ST@Ca5xq<#3{R#h_JIRX5+Pa$m^Uw7463R6yrlfPv z`Qa9qEC!v7H#bs9Da0&A~x7T!ZdAnoxkK<$-*H4e~w2cDY<;xx>)NmYpT**Fo{ z&!JAS9s;}FCfo$^-6(FC$4j?+30UI*y$g|%ae_Dvn-9OWcP~!79LQ)7yOgwdBUs}A z-FIF-Cy3LqYvH%{Hp1Q-$Y_t}w5IP)FyrK7q2sqfPEjN96S=IEwd(y1?K9Q|>QwJh z2zVUTWuw5_a-gRF00m|0@;wTBerVX!2($aK7&ki1U+xF*b96s8gEbD&D}p_iD|H(7 z3Ix{PQrOe-$9rA1$NMQQ^R%%X_TD9kQ+r&ah$J1y8y7;z^O`njkNM5AXzk^q+;@je zo!V2suC09U`(|sA_Hj^*`{8{%NW5|BE~it1{og0=d0%W(&-C%Ck#gzDyWv2V?vAJp z@07f+rj+?;w?IGhnT~Z~JLa&v;GQ8gG)Q&&Lm^{mD2I} z$5^=F$WhT545pmAWvl&V`%hl<^6Tli%~D!2WN39&nLK^Ua2TVR)t4msMcRA70CJf1e^t#qykyZ!+>X zjQo8g2PSRu*sFb(JLQ;RJuVQr=fkSQ`cIkHZRH}vEGsH6Gd#m^li|6BFExC*;U$Kb z8ouA~uMMv=yx#C@hTk;2-S7^>u1xX|j(Mf!&F0lljr@ABK3`!v$$X}GhcL_U3SpL6 zrk^_9uwEs62-c4Y_r`jSFxx{s?$qaPvEmoBU zSn*j=H{7~MKuj;oxpkD&QQmItmVur(5*M?x#vd|%FyIJ(TnHj$VCFHI?8se%tN2;% z*2eMF$6enLI4%u!SK%QSx85;fbYkMzDN{xsJ9dh9`l<6yJ`Ml1C!FTZ!vLV#y5PFb zs+H;JiiLS;pBqu8u0J4nZWQNhe0XjY=rf%8%W~HV$069Ckk4;z`a2;!91C5c`^Uu_ zce&8RlOGlzJR^D#n&`5A7e0NA6l!reg^@6~f(K4~@g05D{H`$`9G#6-C9&h%RH z>gEq0iGMooyT6o=ty*1)KYuv2=vwj1r2gk&OurcS{BRkW{*-V!b1l=Koc_5#IWz4n3?vMSL2I6!{)`#0p?Qox_|PIq zv$&JzA)rkK0J~bnZTGImf0%PpxryC9zwfP1K#dGW<6-jrp~PS#+1D`M5hI;|$;j?O z!I7_};x$3qHV1#{ajNlaqwOvPv~$GJz{|jP?vEE^91LZ$pCCE+dQ*F)V9qxKFn>kUDzd?yYBVm{(F0VDjOS1F=Q}!^p*0?LW;cViu%%qCJc1|<5;_7q!0Jg4{{H%%H4yogXDo1AB3ej z4s!?u9&EL8|JXIi?PD)!;%OKjcqMe>2}w?3^xmQblK_R%3f1}_k7LlS*^Q;l*Vb{U zWFj%MvMEtMyP*N&C9R^%x8}nv_I|*IDwsz0F;e0?p5O(^8jv~$Xm#(ALy5B4Gg8mz zIIQGb#(`9qr=k{nl{NKE^W2cz#!55PH5HeZYB^XT6>D~5Rqag8@)?P<%bV(I%FM&H zA37!%SyDN-z9C33x93Kv*ipWIW$rHcYn+AU&7IkW)4+P2# z+X;Jfv8Fv<*wr4>L;LPxkM$BP*6C3{5<(UWtH*msb-Jw)5HQXl381}h!dx+o%M@9& zNYXum#a;ZJFO~Ka;8)uWs%{$;XYL2nqx(?;*0ch>^;ilC;?xG)?aB<|^PUA*(_Skq zYOeuo?QyKkftpwoRwHq+axRVrE9d#4JsvN$=SKPkD(?RfWaKX6*KJ(|nKFY9gn{yX z=&^-F+v*m?f?=23F7K6eySIa_z4H+ehfJM@u_b5i#c-3A0~zfhi<0&p0&5(g$8QAl z{#u=et%ShZ`{;Q4v;X~W1j1|2J}us;=Uq?Q+r&S?DG0$;n^&N2Scvu<9Q{wcoG})zoU@c zlk_!DyAe0rr~kzB#?~;-d}f+_)QXx;?g#xjSTldP(0>%xbm}h(yb|9YG3M8vexA`O zxBustJabYm-5mw%XUR>uy`N9&Q3-U?-KaFHj|RSR>B)<0AWTOI&~u%aZ$7`|ZIn9Z z*%eswv5mX%RQ%UBo zsvTFKO9jOA=yPizSfj@%^#Uxy;0M4~r!3O_bx|0o`(=&ufWp_aP%+YvfNG`O8NBwvp4W<{NiO znVVE*_9=Ha+|zJB!>*i5zKt^SV+>C;Jjt*t^Q|F(%f_Pl&+|^xP;KOMz!?~s4sGEPnq?A@;I`Tw_?L3hFzYB&Roi+%;5R-5P1p7J)_>=^XZ`lM+|X_-{YO7 z?W~)S*#%hX^J$0plcYFrM1@!@GrZl}9hvEw%hO8JQ6Sf#O+9MRvTq^-@eDd1Z)&$T zn-8ahXW7q|zA@>ekuA^4jEzqp={g72qDuU7TnI(yS$}xzA7=y>K2DqZ>x|si9m_Iu zCj^qs=k=M;zxCLEeA8p1_j13;#{Th3b_LuL{M6qAZUqhtN5Nyi4CI;A|03Yl)Za;7 zzkN-=co;YV57GN)tuNg?Y1_zl!Nc_Ko;T1wOaBJ@$>-@Oo-np}K^UH%--}$vv-qpr%Do1bdKUi}g^@64X2rAk?evAhFVh!l(G4s2 zEItq7#nWNUwlpWixo#LuVqi0q$6RXwQw(#=R!n^E}lPrDES6R@;7)_Kna*3ioymLQb% zUlilAzzrvC|8GjFAgM*;e8hs8UTBFYaf70iGbV#2A5|j30sJIS?*646ZLzUaM z0?|K1^lWa5$Ld69XEId1?0F(9H?m7a#xXlE=Jc)-*-wq^7Lna%WOs?|K_h!eWY45z znQKHw`|i5%IRgE~ALCz(x^{`Q=kZC$4#c=87_QQms=XN@oIVBur;wuxzSp6M3b`>z zf?k;p&tR|p{>LN*uFs^y&6J+72o{1qlMXW(??mQ%&~?+nwYrMVPsM9OSjRURuLspS zZAXmsTTTPs2c^yz0y;ZlD9#n?cRC$^A=k(9K~l*PLxVU}@9h4zLj@7ZK_5$(5+9p8 z^ag7MGI-st3Yl3gz5oz5uwON=)&)dSPo^uS~_??y?!B1(g8n)l&k zs|AL&g~tmzblQDuCr*3q#EEGqPKV~5I2}{o5nYCL!NF*roS;{ybI_~PWzR5VIUU;{ z=;-092bNH?jvm$qtjnOl6&13)rVAP|Fgiak*T+X%lRY}D5^zDJDpxOKX>N-OtgFyz z#FZ+fI*q7M;1r6vQiW8fQ8A<^I|W?J@Ff(7r*lPJY#9H}b;Uo*E?mg{^KWaCFsvJe zF3r6W_d{kUkq(yc?x@-Kd$u)owUte!4fC`=O1-WRDi}5#yn4IOzNuHx*`#BvgVEUR zcuI2}RcRQT@28*dx~PHg+nFX1V{)Zd7+LGCS1rVB{3WaHCdbAo{hPg|O2( z$Jxn{&Myq^4n}(K=Rbt+#LJj(bdcdld|TI8ZRO0;rm8uW33iZpwTZ^c`b62hL}Ptv zd8LOuO3ZAin_Z6{8n51|BvP&LdxJMHE=!DwGvxo0KR^MYtw;XdM$0ijW zJ+2cC)4Y6>;`k{S$ERapJ z>Si~V)>bsK0JtJrQCVJ9Q(BD!#;kD1h_F|`A9B43MPrYrU%Km3uKv5dg8ih*;~F(y z(rK?Ct8-S9T+^{vkd-j&bjqK^qSpo1uyoYfgf*`W)X{3yHErRiW3QlAykrd{j|o)% zZ_goTKl-7s48)OnJdhcZiM&keL8eGEeb0VF&I`8y;lZUm(948B4~w-|0{>Pl>eOBz z2$UJdIo{%kNPBG2F^u+@9@?XfZVWsuBplAocZJahYBr$A`x<4SSAm;z z-d?KHutgBq?Ouxw@;wD^mlc3+_ja(x0eZubX>o!$4OH& z;{d(sus7ET6jvh5+S>tpix5bAXiX>6w-(Ge`B>;Sp)t}{3mNE_X+HM1(`av$F-hA3|q&{g#g)|w8x4c+1kwBI&=j56*6^d zPyM>K@_(n_5Xp9q$11H^3YeZ2$+E>fVLxGRpziXB{^9WRxUg=ZpY;J<;I~JN_99*> z!p2}>x~b3p1v=)Dzt?*dJmXXD{|o(!^{M2#3;Nl6_%DM$2h06f*sr(@YjrFK52^=i z`k%+LNm%+JQw?1{j{26CSxPL8NDc_wQ@F2Yr?mdG8JKKy?b#UR>m9)z7+S}v=I=i4 z7{03s-E8b!%3d($(3Lq}c;Q%*dG0qeaei@widWZN4tdw7e}G$C@RaI&|cy zq-O${a;A$Mm9!O8j+5m{ta-<-d^#EWOglL$=|4ksuyXVMxgojWi;VnA!#5dbUy17f z+VJCsfyw-29%?vOFg(;S&}*L+ z98(@AGSlMH1EzE7VWkAe^k`pIcf(8r*OFP`A+pgGg+Z8**M4$UH((pK8mbGFs z;!eYwi}n{!CySjDFt@u2Yqnc`?gSjmr5|(X>TP8fFJ&};l6F|6?0#wAmdjhQGr+`k zPd7zA+{lkNJlQbIr*5~zFzbAk*Bkz^;VTT^X!uUU4;W^dRGZHle%0{1hCep^55t_d zLhZCQe30Qjh7U75((p9095414Yd)VvIU5gf=NrD*=-)<`e7?)b?*r2g%g-Z5=Lxdd zbWg4&?n_3_ar|m?i;;g~m~CiHGhdI;dbKlI&dtGOEOf&RyGQ6E=eRu8nQM5F;bn$b z8D4Mr4YKUZ`$qmDnE9{?X<#3i>SU88ojr|wAQ=nY5F;N&X6G5)1S6kD7CWaId6kjZ z8u>X!zQD+TX4rj0Pxj?=Bj>iYY;cpxOqMe57nHjj?rE5Hpz64~2>CtK@w7fBk zRp)Lae+aDO3Vth$!{DtIZh`eP!n_W%-9>%cenpt|=o`YgUHASZ%uDv4g>$fGyPa`a zpMNUc7wf+Z55oE@Vb-Y;oOjeO2DcIB@#!GUy8l4o3UGJf8DNfMVcc2Z{=)U(!NNRN zM+h$jj}X2VJXUxam}6aN=U(t6;YYwf5`GeVn(!uYx#23|*CFStPqgzUxKa3RFrCi~ z6sPR2Sg_9FC|NzfUy=s509tZ z{>EAi8I&(WGxk3}Y#|F73Sa?NcC3XY)k!1nKloE-_;-z=7_yHs6dRt%ZN2EC++FhZ9bkICk>*(e9C!n{BwYq=(1Mj$4R}oU0SDeAl>yB7|pS8IEHf z>}$xs4hi#bhww-MU5We0O`)H`a|YuQKH@4ZOgY{WL{Fc2N07xH;}R}pSfoWdeWCCY z`a&%_VdcgpY=<~GF5xNX`3b^;cLaGXGShmo4H0R?pN>n&Mj~}w!p|u0!;M6|maGx{ zAtUim$9?vfo(iL_ULX#k7G0|rFyIe46WE>JIR1jrQJ|pPekiS!W68|J-wqhz>BnyS z!R)rj-}mdb&pH~>2Vi?%n_T?)r`E%a=C*c?XP<+hOA+8Y`F*b)- zs(YTu}xnqMyI)N*a32t*RTNZ(#j3x-$A567wREr&epy0*9 zLm=#MA!HpKQ8DmRuY>#R!~L+G+8xJ2;KyAo{=xI#?$qArdw|-lEuU;~ZxVh>w>DLq zb!?|PsM~yN2X(e~P`A|%>UOCfX?`A}eaahjP{;P{gywcT1Rc~J_Y8A67re8CzTN)t zy7RSJ2Q_uv)irn%Q5901%2ePfj5iUvQiW8faz3Q2*RTn$j&pcASME&t?oQYEbm^5UC!&AYf%QF^$(<9SMRP1mctkIuDZ51aO9ruy8z zM@OsXBl=n0i-5`fu#bU~ott}g;-%gtOzOA}(7i{wHw*tybvy5)llzBuV!B;2d+i=p zp#!&h<_CG&Y#*rL`c{*@tce^-w^`LWCkpSJlc5xQM$Lg8u zHduOK;dxERu1vk=P^W}KxJa;a|Ln5VRt{Oi$m;&@i;tQU`&-AMz>H&!O~(qCM^2sQ zG#{fXGi)`U7qC5i5EjN~7~6Ghgjjpi;V;3WPHpsoK$&3$?Na?D=@LeJ!F3>bMn=8W zSXeUD=|Mjd0+s~ErCWm~Mi8gl+Oz+14Z^cj32WNpGDX(9t&Q+AJ?hln2@ohV>}~8v z4%W;UriWpSSAs>;3UtqK#}LG+4c<#DyC7VR7XWCF%}j>TUIP|uFAmR0O{@v40b6?u zV6Pr}v`0H??|c&n=#?TP+25#6@hS+E8FnKKEK(&CMw#92PTad~hK$?gS+Co@9c=CO zL>oO0nK}*QeU-Jh0sZGWkkKBBV$vS((=`sz8w-0c5yWZOO8Bk49k90sGTK8HCGD*R zGY;D%bRBV`9J5D0GkgOUtH*xR9*iK4VO(Ct!e<5Q&WGMm^x_ zyXP$kqaMSL!J01c+apAK5%&z9;Vd%$f9Rhq<<5xXacdOj6`cKxmx-S%hV#5tNB_fE zim;G_{>W5&aNn(!q||mq?$K7-yY-Z8EA69EWGwziIv)2(4E7AinuQzAl^g!Sv2^J3 zBUfJB^9Z>a5}mF_Cr)Oi50`^QgZeD9GCmm$a8CLfzo&P^~`WafW2 zVWx%0gmP|Yif|n3X~Ilbt}wSx*1pDk%2B`zu`Vz?lnk5PCOInU1Sa2|W193mI+s7D zQu$B6Z^^XLCey-2Uv?Qr<_QW{h=tF8nIEX?ll^DzcrjDqSoi6>e9T+rE@ZLet|P+T zDQ6@&=9}sdFwA;I<--jhZ+NodlMR;`o@uz=@Q)2&VVKX^b-Q;Oe!wuFr>o9-vh3Fe zus$n)-RQhaMmYWO3l5xnuTpf_Po~?N zVd9bzvF5dj+bY6(wc#g(Sue8uQ)epHEdS(bSkr0$x8+RAp+nahi*k-(rd8#(E*fX# z#bg!=xDqVN)rRMirQFIlE8Of`{Ak7g`W^-r3_5Ix>#Ep)-@`IiZa5&UPg$cKEVH?C zHzQ7#`irN~D-`A$?|MGl{f)LQ2R_g3eu-n+8&UCOpcgrGc>F+_Z`5!^3#Z6xZL# zz`%g&jGQuh{CG*{zE=ASXFHa8u)l@cn*l{H4I-DG5M(;|>v$GO&z3@PGxWv3RA&x4EMDfQy8JBcy z=vZthCw$m95Jk7bZusyZ-G4^9!$X5D^+aI!2y!Gk6J;ZOBsnwM3%e6Oikuxi8yOHD zMvg`AX9|XsJ4c_Q&e7zq(VmPuf*i+uhAsN0clUh4ta(4z1Z4*LjlteEIUJBAVKByKbm-9igfuZBDl zoq+%FkM6?%LgWoCMee{K7cto;v;v-XZ9>eP)-S?-B;2?Oq9|*ca1+ssvfPJfJNvLR z62A7AW0O0=4SpO^VsCK!b9^dzv9lQQT>m8ORw%Xr@x>E~aoCG^GGlES=f^Hib_|u7 z7rwx+g)A03j@fyk3+Wu=4u&swp02S28E1ii8&>fSiJE#Ze5rp2GCU`CG(#5p55kih z;|tZ{%Uzs)v0Lf6!g=yzH!y8iy6qIiUS-H)|53yl8q4Q#yUPDPR>NW((-OYgsTIb; z47twVh}D=Fk3jfFeA>tJ#>IHPg>UkiuM=X&(ey3;0od)$u>thl>hfS~>>sptoBuWp zY>V}!XPGm-9eMdC;{VWk-JwN%%49caCm@B>XrJQ`hJy#$C%&6^|ZH`IF~j zn>o>XChDoX!MV`~@gH9Q0{;6&M{w7l-3HFjO3W_v!W(G60E|>V&r}WrBbhJs#I_2f zEolEG&Zs{o+Kq8v{u+F2R-zhlUuE2J(Ye&wO#PzhZR9r^!NpOI5ejel8ayq!gSq@3 z>zV1%(;t#<;cw@1fj~@f>oOkv(rUjaWN5`w`UOHP6Tyk ztTv$w@!#gGNL$M`{($f{B2sXpg)h0xn?fW1}ox{WZTWH`a zY&CqeV=tBqNqB_wWW@Lh=WwAv7}}Y!f6&@!pG~!FFGAUU2$tlwXMcNkc&h&iEskck zpX|FDImWRC;Zr0@#XPX5x{ye$mKLYGD49qZ)!RRX#1w@~{HviDE8zCaU3vFnAttlJ z=Yb8yUc-O5(s?pt$I$2u=ZVEWVw{;Se%IJMdSqd|x6>_}wq0xGR%!1~aPE^W{Rh@K2_#(^x5UX&+xMptqu`U~98IIV2f1sM!{0IvA;+WWQ1vo$$T`tA+-^_qS#Ffm+GX@2 z_lcfJ`@PA1qyNNzMlSi#=w;Zej6URk(JyGfFS&p80LDF(oENcA?+Io{$H9NbX5iKvoqNYdk+j!at{)XuOGu-(g z%Aq|FJJOXJom>^pKd5~Bs1+Q)^c>7~eRMP(H^m|Q8M&}{!fqz)PUc&5czsG|wZ`Uj z@JLG?JkrX3w=SB}3G zfc0zyrnyfV{~P0v{wE_=FtNqV{_;)v0gdw-_wymWeaw*YEwSqAD{K2VR-8FtZc}A# zV`=~DxdZcu^slU*kyl$++t`HH@=Gy5r*Z%uKMj~!UcQ&wfP%cCd4mS%=kC9IANP?g zTt0$FTID#HM^(cEIyXP> zBTnC)a%?DGB><#DA81dDIm&&fl|paX?CJ_+{E#%#j?^yq)R8^C_m%OL^USFfCL6G znFQzHZ-g4=mf(IRaPDB)tD%sTk0WA z6;+rQrL6i)w^Q8MnfQ+89hq!f8Whme$miItw6_hRV_k z{x{C9Zo+dZ=1}u|Nz`MavSx$Q5;!We%Jwl22e(x>8{5!t8V(H+p{TWUZ--DAWX=ce}(wN-Ux_!Ld^8DU&d^XYB&F?i4IJLV2?ho!W! zys4_DGVlbsfIPtdd1o_!u`kR=Irf7*9KxXRqR=irE~XFKY#yOaS}CEjpeEFpnJ~&(`*(Wo&YE)o}AHIi0r&NDE}2zDBAd@ zW&))adBB|5qgc;CHCtWP2$cyZjy^sydF<$uCQlhZbu5OaCXZk+>d_r2J9`Yqv6i#$ zPUvw@4RLkn=e&wi6qrP#J3fhH#!ncFw~))+`N89nXly15>a#>`^ z7z$B?6CLM|%P;q;HtR+n$QiZnii%t;oqKi#=P?TME15~Dv$?baxtcg>LLKW=ypW9( zuafE1D@k%LC6vZgiO0N1xHu&O+bD-;y94d&+V3%lSQ`O}>LCTC?tD!Zq-6b$+AuL= zHV!FQkySr zO0LoDNje=;%N94=p|{>}~1 zvG?zMxY&L4#9bWn${H~>Snx5E<{vnzs4Sa}veQsnQ`zh*CsnmG>b$%lw6v_Op>j^M zV3eX}{!+BA@X4cQvg)c@*bGeIjPvr!>uPFPMPTY7HmUQ1ZMaloGNS+VH%(ZC)agyj zfe&= zjpaN?!JpbIfLGat^bU#v?XkEpjOiPJg~dhf@!31&>eR*<2)JF23!tMOZkdygVO)3` zaIJ0uJgd}$wc49vn89*D33F0*DTKKKKT{w_AkkKBiDu&VCeONRO&>IhX^Y*bHD-dSwbv+DK2_n*7I|-w` zN3qbJmh~s_Ea)uOXW|&fWu2^5Z!k`T9-_mQ>OBuO(Y=$PH*^m@djEulanxM_J(fpx z8ulgxc0U#m3G#vafk#WpeAy1xI6&_@*ozr~;)fE4I&@26k9xG%1&ii0vNd^b0KL1Q z@C8Af+T+?}zgL7z;W#A@`{;m$_IUhQw)I>Cdh>JeUME4E+Ec%-t^9|N*|kT4+mE<$ z@o^aE!ZEhUCgC9y~p5kFH$bOSxrFuIH`>L;onk@nb@>v_nv;{Xv*#X zTO?g%+)Z#P=NQ_Nsp#&wjDx=j3+qOPpNusxn>=o9A)SFW>o(>j!_UFG1dHll37&<8 z`V3!&bu|_ZzaOlQ<=`ER$2?JH9w~Pw%gM*{+@}C8jz#4;hI7e0f#LdLQ61Koen(1!b6T0D zR+-nF7!NcY>)9CUg3(yB7*FVS33?NpqZX=pZPVYYCvNI{l3fszzsr`$txtODLC9u@J2JJjU=i!xIb_ z87?-=eOEiv4VM_MFbwqCqdH=Kav#V{r#lu>O)*b(tRVAL$4_=Q%zUJr#iM|XxI?k# z;)|VOWa!WpVxd0wgZoQ;?yK8h(RceR`qZO7_mBHaeKHrd@Ag;pOQ-|pn)^%rSy*#X z{c5u4*HZ_~@Fp_!=VHx8_0J=V{(La?X=4Ey`U|nuer)BUdp^Ks~w(}v_r?^=(FI%4Zx!MEUU`H z4fA-Z{CLCY{!GeQ|EtdFhN}!SFI4A3!|h92}vXhRQ>^jp43_`xtifB1ztI zFpb77GJJ+%4lYz3H|LSWy~@aMHGGfZM+`q@_+`U?GR#jL=(adIO*tc!;`WAn8!k3n zVwgiv)y@LLiw!R|yu$D*!)pw49GKeNZ8(OufXd^B`xzc;c#Pq*4YxrhrFIT9%n?*7 zKg{qb!_y5{8J=VKV#A9K-*5Q0hSwW@)$n_UzcieV2CJqs+weh#`x-vn@EF6B44-cJ zOv7^xUt;)u!=D)bm*EzXR65%m?q>KR}BBj@Lvu8-LRX!LeAxETtD@A#SITOJe-Vrhi)WTuY)I1&I>8rDMr82$j>nH z*+za2S#184jB|kQ1|xsK@b8SyAIOsa*No1aV5Y4IcHT8Qe>FOvhz{F9Um6|0lcDJe zgK4J(I+>KqwmKP|14U;Rbb1+iUy)Zsegx%`KO@LuXS~s$DEhp%Pcu5@WQjY=$QzA( zE?M&MDx-6=k>3X9zOeoC3#0REGU{2nXN-K4k-uT&9~k*xjr=Ra_?|^_A3Kmc2lfvz z@?PW~f&5S-Kb+h>kPkERapZU)pJ?QiXgNeRoMfmZnc1y6Y|AOzwp@;p=NdlJ@X?0H z8Xj+$&llDHj|{Udr}8qxJl-m2n_2k+!xtOA-0+o#wQUTMd*-KhmKmMph95S}X9B9f z*6>q?UpLIQqUyhA_yfayPM|uU8s;ECm2*tCGT$XsZfBTnOO^8t3T0eslJ8GtlTo(m zVpvq?A?T}o4VdqL(eZT$GERGMgD{)%FALM&JHosV*eZMo_%FiwV7?njJ1iG`_DUWN z=0scMB5(+6T0!at-GRvu-Ice55eTRH5)3Fy}y^{dr)% zcR}WT(`4cE!PA82gZZ)#buI#Peoyix;4_35g6oABgW0~N4w+8psI|;0OpgVt17)6f z%FI*cVTQ*UE;d|Zn0cXbc^)Y*FwFF+ocE8)D-5qPyvFbb!P=Et4e|GR$mEUegOf!k{Eu3r}V1)jg>n{PO0OU(!0e6#(J z-|&5!y_|c;@AQ!<8b@6X#q#2>mnGH_ITzeoGD!jU7hd$jGFv%Y)s9X|JV zU(12G;Qv4Doe7*BMYaF?&fGgQ;ofZIl8uDiY!D>NBm@W$Ab|i023fMO1%}B=%t|I< zku3-avV*u1Bnl{~_)rm9L<1s=q9O=_vWtp7@FA}FT>igrb)CLvCX-~s_Qxmnxqa(b zr%s)!uCDH`t~#eG8urmfyd52F!`w1~bgjW|+)}cm3+8mIl}{M2f^WHwvW^fV+qb+h z3{Nzq<23ruh4olz{I4NJjs}7=TQ^=1H9y%!|M`6VD@vWOsXsuxQY3p4Vy=N@V)HeH zSxKTJy`6u!R)Ozn68zMgZdJwyL}kGyv!;@IYuSRZwIAtwjyhqbL3Z- z&mVBF{QA>LF!f5{KPbR~P?LtK`g=@AC;nW~8r|6W;?CoFB_d;eR>Bj2^vp242@nQuEQ-JA2Lg4`L z>h4#NVk%{p4)-{i4kCcr8&fq$iYc6k%-&eGSY~e@mzUPqbYN2a2?dyup2)|LF!L(W z8;VbZ54%|yvo|C)+^9c}D6(t*YYNEhjmqhKj^xPf?HS?X?>}?16<@ua~nY~RQ(^GQC*6AF|+&wYSQ2s(Srd0kBWj3?7VPtSd?qpSbx%?by z%&A9Rwk}0#d?N3rQt^8f?N+dvz1=Q(-HI(_AI;u^$Ps-Y8{jv$q$?_s6e^e^N1+SUrptic1!N>?Z^qJ0vrDx&xk}B2Xn& z9;JRpgz(7Zgu}fhvo~&(J{HzlT*ztl&y7~`dOV{)%-)Vvd^tS*1_vyIGfvpd-WHK$ zXlO{7z0tb5=8@T>BH@_5U5|kGNSe&vz)ATO0(*r(UHLi!6LNbhqE!Abr0tVyRzPNN z(6GLX#qGfWDrRqgL*faP;)q;$B9|HB%*@_K>QrU+ModF_A`)kXB$&NH>~W~F#O&=V zHTd$mQ&-d0nPg@J8Y z`Fb(S?2R;yVy3W0Iu@x&|+feGdJ5?B%fGJE4<^T-G%joBMD(1+(nxSk?l0@pP^ zU*xWN-XeXt^Q{Fu7a}o)>zZelG~bXvTs--F{tv1!h3=8p_mldodx$qKj?P4G&8ZEV z2Gv%+-D$eGe*7&GwZ9bba%CfL!yMKa9gOQ#qlUvhpr`)6D7vh%a+4LFsqnfq9QLm5 zd%J45?nmTo-ILs!tHm(zG?8iql0o}Xp?|9(zriID>gI7DA*ENyWXQJ_Q(t}zLb%O9 zI$fH}rmT#-X;Hpva`dj1Q7c;>EReR2HblkLhNxdLH=`Hy{xZgKTiI??lwH@Bb;M+L zMY{ZLtcv39w1e7O_6#1G^J@*KTg=Lis7g#pT-oq_Dl?c)g74QMOB=k<6K-YCL;K{( zCIvhHYAc9gA{R z6Y;hy+SL=C%4o78yA@QR(^7krmCPbVy86NP#0)4l*A`_Xn#XCqjar;lytIS8vC11X zPI>E1QDlrEh4^56@j7f!q!2D8@L+24HdvEv+ID0E<{?eqAmmLp_h^dO9!>i7>^)lB zU4+tEg}1e`Sl^^V<~hwP+j-Ra$H2y)L>dB`Gb%nZrMJ9U<`{39#YL>2j#^$+%`D!K zQN^2SNYQa~hz%M&G&Rj#W>2UMn>bYM7PzNUD}~o@mGE}iAqn+gLd|kTxUTvSjNb?#$T=aA?QsW+|~|5 zcu<5P^69LR9zOd2BV*X)(W|q|A(+YA-eKskNZ$4Gk*7{YCXezU9~$o2@L&BS4#!*< zmwQuulf+|b1cN;0G|X`xxV>~3Cj1E%%*saxlsL|pZzeB~A-AU}NOTsb(dSn3CTIfh z6;%@FODEan%@(#ag2`5zoBXLG7+lqc? zOm2O zPJ@go#=-ZX4%&se--~aY1?0nnds>HK!rPbAb_>Q?+!Mn7Jf0nzUN6q0SB#@x{#%Eo z5llu)-ef>@7WXTKy}Xws4?g5EZ9p9Iy6doeNH95B^8N^j&g9{{>Q5^AkYkx5=B2Hk zxqh^5FYi*_=i@~)XYwp;zNc@#?!G;JQfaKW?VT*{eNg4&Q?lwdy?-xfR&}-EjD1*@ z=G>d1i*F_5m51&-V>jj~4fSr0@GuL=Cp=ciavhY6^ojexsP;GQJIM7doS~@oyL3xs zd!*5R7*D`ebmZcx^IflXRf3~zV4?;`OncilVx9}bBj(XbS>dNW(pJEnLnyy6`BNWd zHNdIziGzo-fWr)f{DULC5^*t>?E}zhq|x=zeNTBv3xT!$}r_|pzEQ)T?OIDEIm zEc9hOVQ;gT@2?#FRfo~jF#e+2h+!6kG(5!NMu(ZiF`lCwUf^(x!)G|m#EPY53fJ&` z4nN}XuN?k^!`vvAwzI>19p292u?{m$U}@jy@KFx0a`=M|v)G%ZUE}Z#4&UPNcN~7m z;inw_t;2tDIIo9_<<;HcZ5$rsaFfG}96rn8OB}w^;mb{hyUqttzMW`=FVW< zW4P|Z_RJpwT?cM^u)Zm9yF2;>a7;T%n6$jZXF4ACnlYZm4xa{&?c`iXM>iNbyw^VF z=xZJSmmI#!VajLaS5wU}?|q|pb(sE;(J8m#;SM)Ctjn%-mGmdqO^2Nq?|n;4oMB%E z6*HrA+Qt)}^RW(Z*7F&?G8`HNU|qIkUBvW2zaKH@WcqvR#w3qN`cz?*E=bG!)^zy} z7yfOeA1REc4?Mhw{~YnL!her=jxY;e!ZTmEA!4pe7l-Lj!P6po--zjZR3bh}7+o89 zJ|O&_h))y7TBn z{cVKugfd42-4o4)F5;v}aUm|J2o^hMJuNlQmc9DTf+u#41s6JA;q zZYhK4^X67qe`)ank)I$YECtifNOyHqcjJq!bzodMUBV`mb^QW| z{Iin^p}@rHu@n}|$RwLPz+24=F>m4GDjQiqM2nnhQI7UU95=BJNVe`rIzHL4B|k#b z>Cm4()x+3Ad`!lBrJ7WYJh*}S2Xjl|(t9e!{2SkP!aO@S#W&ie5e)L|HY9BFh70>U z;y4v_ooF@=MI6tcJ#<(a!Q^u~wgp6IaR)1Gn5YMJ@XRu2aqktu=S!b}e8`ulgXP;K zY-t3O7j*OoL}zh}6bADg#N`y&(IN@QgJ-el8>@%HAkoYjAKzEuDHS7Tif^1T$v4q$ z$9gUn--Ye)!LO*ytx-R3okF~SId9Iln-1P-c5MX{Y`J1rgJ70#2)I8h52W?SdVDPM zeMt!W90~g?Ls*4yZqs8yzQm;G?Ob(XY$$s+#_#f&1$ANeyWzW>3Xu!nF`bthxcJjyN{zE;P4?1AMS8ye=+TRM_=MFMYl1D^nJUed68Bnn%@Ea?$M*i zH8yteeY=hm*QK)eZ9m>#)Wa(}R_kcTZF$$)hnu&0xJTXd&E=PCN`vlh?pf2^>(%BS zm8ZJ>p!UKM9~vUvrjOJ=_O;xgHFaawuCDB#pW1oCBWLOPQR><_s4{3)-F`ii5nT@C zhFYgS=9mb(Ron6y8S=WXYx0dZkH>%kGVEU(+;{e z8ML@uSHpHOmBC1RcPERZ`%7vc)t#5e@tw1@q3!E3;LR(sfgA$av@pQ#VS`%(MUZ>Ny<;c$`nv=a#)HeHDU@Ij zaPQL1@azfhS89R27r2siqdA~tzKEQ!QJ^pd7@qS<;Q;XJ?m@kIDrHs=HmKkpL?E9_ zIvpq4DPjsIA|>-}l#!IoZ$(_FvFX61G=LMCF;OsI!Y;lr^IM`fl(y1;;jl;bkCHi( zI{i?898sipg-}3B=2TASZ%MwC%z3nw{vc_El|X5yf>#Ckl0&=bfhjdg=2PXD?x{ZeVhl~3ooU6%WA1;&@DRVkTMoC)PQ#C$aOcg0L9a|NVi4#VU!uMH`gQ?FCY z+aUU?+oHfuFf^+0sUh6ONd?@M5AO*T;~_{CnfV!l~Jl>9%?;R zGM}hC;@&F2hSCH?e`81CQfW_$b}QJF%zrNN-AY%8Qn(%d-lY$a;hkKjex;tIy^B^= zDZK>#&gUgzNa;`TeD^WoVWp2!llQX~!|>8Y$bX=$Q!*uUT=gWUp$)#jYOhb8JB+d#+ zP%?+u<2vP!k~x~&Vit$Mgz{_xOG03B(us@BBO{zNO6Jr+ zAD$cGdW!H9;jZ~}MedsCEz*ZO-&z2A+FkR%4=e-qpWjmzQ1<~|t@&x|;jUEe z)!n)p>Npr~yBx?TLEY^XJAab|*WGbFP#vPA?up63zQCu01eW-yAIp{Q{6kU4H}pL~ zozK!f!VUdKsT6vlNOD8}KEm2sPp8$e&B4O?QZw`c=%_c8R!dAnWjEn1N&;o0>ZV(C4FZ~KyF(RQ$xu$ zTWld^Y}T&MZOi?R+j_qCSlN~c-a`GZP*HO4Ia-jedcQB}FAZKS#C9w@94GJ{9ouNZ z*xab&RnXeY)}AqduhVXl@{F>tw`6|<9KUJEhP;>IhA8Td=Z9IO~= z_}3_`b}(P!2JNJ(>2&Et5k@I8eJT*@MNmxSIe4tfzePSrX%LZeQSM|26Azs(4=KV^ z4W!f9@SY+1GPVINiEh1TNV>g8o!>g7-ftb!P~E~qx!TqtTiDhiMZa}OsmjYv9{(-vlqd63uGpVA}M*{|yMhb=_f(d~yb zTxPXGE_S+ehkX5x!3$p^t#tcg-!AY@!~0u+v+#_!y2S@O(X=?a16p!%_0@n| zQu;me{+L4j2lpQRld2|ZyxNlGlB27MnyQKT8V+u){%_KuQy})46ym+0qsA=_+b@Lm z7eAjs_Pqq=jZ>4{K^^4&S3A<=rqBa2oYYz@#_Q2>AcIYsA zN`bQw_|v^Hyj4OWq&+FfX+VNLAak{=f|PDy*N$S~SQR*mow}tQ>RCgmlRZO&q~`;F z`oApTa^SD&)LpSPfszZHsU1ZjSW~2%gXCgtUYt2A0rI0|1^bB9bSi21sZ8Vbwh&EC z3l`4B{vm8Iu~dV~Y%oE<8AU8vHa7&T+j+FCY?`ZOs^6%Igv89ownRn%wsA)r0|+f= zzj*HKc`H|Hz5WyD_#Ht|fM=r)u6a7;;bsV`lNhac>v%l|5h`TM^5zxuc9aVG#&+pw zYKhGmRsObHcCb6e>ot(bu8?-*=&+dt*C$-U)|+qG$&6OLrKdGU%j|b}Lyp&NLXqzB zkQ!1b=T!@}x_`RChG1-QNjnox!8qh~?xYbmao{xBnr2hR6{)tn+qPnTgNn39!+QSg zWw2p;2;~{>r0TR>n8DiATVho8aVQB3wIf4yx-AsXZ(AXbtc`{JFPb)M9}6W9yOMO+ ztRhtw4EsIUJ{Frh|7N>RXs(gH9opZiqNQ2)I@w_RVkzQ26)JQy)!%Bv3K7HYIX1Lo zCDTokT3pb|xCPeVh(c+2rs*QK-H>9#78vt+&`_|q#Qx$9Pp78+44s&s7Tnt_!t;6k zy(T#Iv<`y>5!+0trKy_U!ue3Wa4WoZgk4+B8Dv7kFmW$xdWf-4 za~8K;1fTEys`yVRl6<*d#NnT#!_o*QkLnY@0*KDyRx9k~9lJw%7b8zeGI^gAwlspt zpA`8(4JdUMcZGsp-r17(tRj)ecd3={I$_dqXXC!rUE`qE$P^}y1!;=xi@a#;Y&~XG_2xWZFq-N3G45@ z(5sbJ0rlu55LR^u$FmT74K?%35zlkZ9N|4JAfK@NkXE-9T`pNh|dPQDYjfnA^abSeW?V|%a_wqEb=(MN9 zBj$ct9x+LH*1&(6{PQARUUC;$^gqhK2P|gFNZmmnBArWgUue~VCdqZ zN3kek@@aASQ(&d#T){s`y`3Xn#R%`(Tzr@jHhT~*vtdrpFynrfZ+~H* zujvw#ukn+wVe&P+hr{o6_)v$BaQGO9xh^K>1c%Rb_+p1Y;_#;(zQN&}9sah%k2w6a z!+&>}rKPMqTRA+);Smmxb9i5e4{$h4CKQ#4+!9AW+2L~>{+h$zb{M^4E89;U{)NN; zwb3hkxequO0rQ!#r!PY{9N1 zUY9|RKFZzG#;b!zQ; z^>uh#hsQX)r^81%+zi&U3CDW!_TCKZ#w%~!dGJJhkxLuakdO2=j{Z5v|22p21;@Oe zb@*=%ch`5Oo!8C|AL1}&vU2M7%`jDC^fzL6vx}3nyTf}syr0AL2`%4Q4$pCTfy4A0 zjen)Xr#O6u!}J-9AB_jY^zjVSe=vNV!#6m5lf(2YjQ=|h-{`Wz=PrteN1vaeUkq*(HhZESg)5O~oUqvw(H5{#g`a-n&JoiV#z#C&c<+d57n37C zN_bkti-eDic&YHQ5z}X!A2HW|am42duZWoMi<2V0LiqHEx#nj_{AJU!)7V+c4w@3Ul;dK$eD9j3w)X5)(ab{=dap=Q~2iIGN zwE?b;VXlGU@eWURc)G*KI=tB7lN>(V;Y%G}uy&6^r_pM<>(o+5rz?1;V=Z2%n)Yq3zd)X6 zuh!wlTdl;+0{Os@&pk(9Y#UWLolqPJaAqSGZV+3C`^QSHb+|FY(BgJq7n>H9ohA`l zhkF5DL*erf8|s_o)nb4i*WsS1*xGa*?&nBt>u~=KJ```_I^48DDM<5Z&DP+u>_b0@Zt;5Z?L+6VWZR>C^BX<3D zxG#Vl*Wo@v?6wX!cFQU5$U59uRoXh-JfUqJ?qiWMZm1~v;t!z5b+~(~w`l8d2UWq{ z;ptWk>aB4d?psN_2lU>><8{im4)^oWZ5{3>6`ifay^!*^vkvzMNnz`7cZX?%>u{sn zZ0m4`8jI_2-%SDHI^4%2A+E#Cr{3nQ!_9)?whlM1AX|rrrmY8`7p}X z;SP$F=LZ49%l|@vt;5aDovp*&hkR@u?w2_QTZelUF}4o(!^GG+++2Zd9qw_I+ScKI zm4L0o{Zj&;j_YvWLK<6#dm(`~>u_J8!gqKb?kzZlxDNM?6s?_gxOw#2I^0vpFs{S> zTj+5e?rV_~*Wtbnp12P8NMy!!xY_b+bJpR$3;A&!?k7px&N|!`@_n3(dvFn@Tw8~m zrOj;}ZkAiHb-1sBzIp3#AEm6{iR*BGkkg9maAQ@Ft-~GeWm|{)AWqoU;ch0$(Dv5h z4!4J`!_BvSwhs3~0=5qKM+i*F?Wy`Mm9InE2G`-P)z!$>;r<|{uywdGSI^er?p{#9 z*5PhMVw-iiCn(Eo9qv`+Z|iU~#F4GTO+TPu>u}d1)Yjo<#2{OTdo2N5hx;fBV(W09 zi2z%No6)gs9qx(5*gD(?6L_oE;qE(8`PS`Q)<2Hddv47h>H%zhvq-tp@IY2@H=TMK zgw(I6{-%hne{Op1A9BQ9f0g~L2Oc{Yh`atgH}>&-(3$| z9lkzW<+kgCdTZa-daUc|(019axVx=~{oxPhqV{Wlx7hVIZCAJ+&{|}s@Tz94Nw`Dt z!nk-c121$F*Hd`qV=9+S!%KOmd)}(TD;-YVjdE%m(OEx|;A3haHOZy4x6RWnRge2! zy^v6xeu}RrM;D&OUkNJYCPJ2krCTrbGALXU3t^rp(;8X?h#2%BGm+f5~_&2hAOVFuXyl~~b70rv2RKsp#E4s{I(JXD% zlrLSiWfN<>urGmU&(?ei8E?+QFK>qWUs6%kP;HDQ;~0ChDkW^4nXMg$K2Ae(3^?@F zL3;S;36G3nlQ&*rt9rpq-u4bdKUngH$VZ+!;h8+jgM4VXBT_H>Cl0rp4$8eLzDeS- zG=gE562?-^+4=4zf??uTs(g&6Qoec}#Bsheb$EFfDm>3spv4^`x|esqQ_W6#jBw=q%@}>Ni?>WMjMlg9w@+yGn zEN->JUfw;G>UE=!Z1O%SY-t1&_T>GUBN)6Qrhy0dVnt*2@+n_89VYKOVba*O`l$+E zDTojqaU3^A-}wF_C73~x2haF!6XrUa>$7FY^#2YKpS!$49y0FL;p^qtfoc769(*v^ zc|0ym8O$9ac~(|v7Was-m$z8*;6vWV^#49AdC!T*oXNvaKTpz_2PI^Jh}_rc36WPf z9kfNehXj+7+UX8}=uDo4&G+>GMEyTC@61t;3?1Nj_Mz`LAcWFC;;Y{-O>RYI*AuRO zM}$PCv&VI^^_jVz=%L||3AXEKYbFzi?wQfws2&<^pJ)4IQ)dezjF9hhyUd;1H>l3m%~FG zX6ndzc5-;C!-qRO*Wt?@{0j z!(r{>n3j2A;|XgQNBU8YzQExYhr`;%k^cfmzr*4C9Dc;%Upf2-hk4*xdBWPoQGQsv zIO4E&al~Qm;)t2kv$SFD;z$o`7e^e{E{>SdW#bQP7e{(nyEx(-98XxgIMTz~#SybA zhsgV7^sshuq=&VOBMxg9M;z8JjySAc9C28?IO4E&al~Qm;)uiA#S!<_1Ix~3 zTZhBi#gS)%qldMNBR#BL9PvuW!*VDlGpt=4dBWPo5r?&lBfi)1hqa3%{aHs3YZpiQ zhIGur+QpG4tX&*&Si3mluy%38VeR6GXQ{(uWe#f>M|xPhIO4E&al~Qm;)s9e(*6~! z`v=F$Bt0Uo*UQ1=cL(#bkn8E_6-N(xXff@cj^_Y}NpJGid@@Y2jQ)1&FX?h^Qg0`0 zSs2gj^LjR-?}589VuI-ULZ=IRTf{o;gvns&^e4U>F|T-ZfT7dJMgsxNJO9y$t-tYl z^+_}^)6_g7j*BiERoUcT@T12zc2uupa#;n{^J=WTwt5|bq`y5f{f_l@J2n;MITbH#}o826$QrZl~1C^g4ls~ z?D~2kVOBHhg{%;}>4n?@d!TnjFXSerG`)~(R3oMravV~kUdY4Hqh821x}{7ngkFK| z&yLoX?a#iBv{5ev4RF&7`7LzQ3wcgLGrf>`l)oLlkn>4ldLcbw+Mr$ts$ZrT5^5~! zg{-3hQ7>c(5~5zn*TI{yKl{m&V|pPEQXw1OpS_Pto#}4k(PzDzHKH4QVpke_jKrWe8$XkRbnFVvUmg*-{X^g@C6uo?Ta-;4aH7xDsf z+R+OcO1@DqWKVG1pZy}r5cg;Q6jw9u&;AkUo2M5tM_IoU^+Hy2T2U|Ldn#k57ZUDe z(+k07CesUPB1yY?Ar;kiwm*A?%C`O4k0)SyA@r&4h9dLE6;|*^e08pM4^t-yXdXdJlC&(cQrDI?t`yPCbCF(U{5oWOyK}v!Fq>WTEI) z4UkJksT*Ovh}@c^Ni_@sKSvxX`!N=NmQOWcJk^ozu3mXmS=7A;W_YT)Bgw!i#EeNP zY1uZi6r0k%t4K2CO;#lFdLykAQ3kYCF{yY~TYYVyC$^_`!icMsO7KD_w3XHgjcQA*{(M*KM3e08?1nz7<>Z!jG;93k$?c>HBe$Bw z8~G+_ojjVWs+Y8{b`n%gv^LomP7!4zoa-y4q+fOI>!UP>8R)lODTTF^HnhIiJ6AL1 z?Ndl$GCpZqwzO&9Nei_GlGI#+Za}s{3hT8uNweoT=}%}Opk=F2qlpR&bDCGqTd-_} z=JBOiBh`j>wufn2F?L+iAyt&LX}_zAVyY-XTSeMj*_B9jGXDRlq@;IpSn%O3U83t< z<&=?)+gHYp95-@Im?f|1RjM~>a`?)5OIwLsPdjMpjOqI}O`S4* z-$N%(owi5g78CcLvd8E+9mohB4xjYqOgSYCAc=^NYful;`jouZ?NzQ$o>VJZPF}LI zdA9tOD^mYBL;qPyD-~4+waHj4j&Vh+X~ODc2iI0-WxOWO8x_MGI_cr#3!tse$|TXO z<^?l(+dB+>u>?()k34nRGkKH;`Ot7Dr(X7NEnzoNxU!q#qdb-dA*bp%7!aME?_LTU zChBGtY>j-%r(yc6d~J1B9#kB*+2$;-LqzcM4pxO;uS!QAdIH2zf3tO18o^|?BJXkp zgR9!`4b~ujM|4*HIa2wN%C$M zje4OSTD@E+Od8r8?uyPD{nn?lIpR2OioWrEQ=gj>nK|RTO%$%9xu?Z9&I0n`!+l?e zVZuH2b>uE@7RP{(ua{#7r`MD7*eb?xecS4+Y$JKJdvli8dO9nT2Osh_rn53%@}4tc z@=YFojiX=RJ4uceaZ@@g4a$&v(45J$u=$?;uFgtTXN9*BIxAjpk9NJC4tqNhKin!( zKJn;POuIBa7usNs1}R5-Fr637a>1m7$Mj#o zrvEZ5(xHKEohQLJT`z|F7yTOA9*3>-#64>BrQ_kzNl=dy9iANV5c#~<-qo*3l6UoM z)DYy})vrnG;a&Zjv>x8ouSx6SUHzK09)f;N>?jS>%g}UiMuH=KjIh0TuzWS1{lPkL zQ^Aq{7{~K|htGDHG^T^Y``WO&%^7|t>*idq4j_6oxGzUc@aBl=sUm-qDw z<N_boJ{D!?j7MoVJ#_?^xgAv(HOYS~`0r=1-2S{x zXzc4v+hm)^sKx4fhvz}<&bitxHHr~7dWqYtu;)u%Y84!|e>tNQmcg~bR=8G^F4zdG zs@hIwgl$#=F&jZcFn->G`&|6Nk46-rSuZIxx2o ztG{Z;nVl?Whn;lT^Zl*erGRT}qpwWAa=FbPBy4v8&-+b|xW3a31DCH@ww&|mpsR>a zH+`#dRjUs~q|f4X{KYWz)p{ZF$Uz5{^u+Nj=bc74+*tDW*Wn#;xZyge?@jUTEFMcE z7{-<=fat7DqZKwx)F)Iv-hGsh=f0J1vapwToWkGIVb0?A5y8v*iR7V|fjpkACU3g1 zr4dZFRRH@Ea~8Ki1jEE#r@%mCa&fbTeZDWMW5s)pd{u-j-xGzsJo+XT(ac#Kqb*)u zZ(XDzq9Kp#W#@5$u%!`9ex<-Jj$rUZF%3Mp@e*>ZeB|*~HhCWxCJklB_1A@-XhIYQ za(p)W#&?Vaa8H^uzAuVEy_;JtKE_zgndm!3Fiae)fthT=7I&*KWi_`(=VA4nzBkkQ z;W=S#6y6t==w3@C-{j%fIQnu1%SB`il>RVzb<+Xa%UiCCO1wFfXJPX_ef@DuAB%jS z17UxrghNlrL@VrTmUv28b+w`8`7kY~>T1K4_hHVo>T1K&)`#geR~>8bTaMKImQ-AL z^GV?%eFFw&)UvrAl-4j2uh-VCPHErlF}Lvi(>;sZQHOnV?dEWJ21TBO9DSz48?tFz zj{3+mPU zj|yB{U4lfNu0Us2FEhJ@(ZqVY z1SIE+w?b|NHx%EmDok;yh#f|XJ7SlxkGRb)fv$gHm$cmbt9*rVX-=W#?waQGBjs1v z4O}XQU8r{lcPp+V*YV(T@qE(m0q$M=CGN_=m)rT|%g_XqONcIh#SI`QrN#7wr<3fj7f0VX7pUUBWCX zD%vIdlj5!l@}=+%SC6Me%Ip&O0F_+=3`zN7n9VNXPoiY&RgS3!O65_oofgt`EB}GO z8M%}7>?oHPQ3q#+nBL{(#GDlZ{mMNFw7XvArKB;tgh2$(4{3&%3zY4m5NIr8w3FE- zyh3rzF5$ljm|X&m&I{i&zh;qP6<)Y$A2o}nbsF5x}kXqRw3 zGNWC>zmOU25?&^4hwKu_YeKOWnb9tR*F<}E2^cgL9*6(n;;G~t?GnBLf3!Co}nl`GU>HOy96S>&^kc~#srLi^(Ix<{Du1O$$R&S z*6fgaMfN-30so;Dk5WG)LKub8Vq;0C$HY>ThWl7pXTh#%W|#1USTehWa4(x(LNMGI z5*lot_wfeo5-=ss>=J&;MKimEJITiE66PXcLRg`=R1WqY*?N_`DC$-#UQNGP%=jY3ZE&oFXsEd03{ z%Hm}Sf4u{fena;sJD5aGJsmwmqBEM~@uAL@QlTCZ7m9p+ivF)JRs2}hx5Rn_%~Fk7q$MZy zuxWC8o7*<#x|5~d-Mk`QlrkHX=7QUx^tfDYXMG!YbWr;AU@=f&m^vMrPS?@X{?g40 zTE?*0qFV;9y7pV##~EGoplYs_=%jgmLNiOmX?;d*ksEdjZ)#zsxawf8t#cW+*IhBM zW!2)9O^d3dx=j+>GEYkD3^Lnp&nM1dxkm}j7I>s+*+$N)u;#^KGv=@;oidhgd?O3< zEn5}T;kAC<61RTcdaFmG^qy(Ur^z!N`KF~o=z2>J#yzWTNx^g-zNQ89R?g+b)5;)U z*5j)#lULm;T5Qd6h067``7tM;{@l`g)p>xR;cqKkHn)Vmo72_!XgIoDs?jvz!j`!$ zaRwnIYHFEJj-gQrEML|V7TH|9tYu!2VNYppJgdEy*y zQ@cwS&z>KawvA5^6=!bCvZmvdKTAt4-${2cEubp7YM|n`{MIv0H_@B6s%UtSVqz2? zDOOfz*_4*KsU>V0|Mtx?siUBGtUhja=tUc5I(TtI8>E9bw_$rXtH1UiHv3f32~#_K znBm6iu-YITJGw#l*D&==8yv$6-Vuizu7ld%6yMI`u{44S z@+yGntW0g^p1P@U9hrMtEIIEDmpv6|dF`X1$tGs1i7V-tuEWv@Cf|^( z6CJ_ef;N03HGsO31koAaY=wQkS8OBw7tzRfV{=cRRb)jx=1gAOxu@v^IyU!ox8(iK zgh;5t4+;D7og{hGA?4fH+|x~}tWxMyiBS%D9G{JTqkP;qHJHrZY0mh*C<66v?rHIj zvw(an-<=K<-BZ&XlL65g->nM!^LRn$0UzhV6T_}AW82n71(RbW?_NN3CJ&#diMbaL zB;uy#o?Z|GPbG6E&%)+=`v1kbC+0SAy3O3&Q`*HzJIu6X)s-rl`l2m>sb<`N()<$x zI5yA3GsN&24qxc-We%@#_$G(n)%jLs$i1ucoz}y^@SIwG=Hg_KO@KqScDm6AwzYEx2T#7S(`VNMPHtgr@vGp=~e}{)SJj`JRn2n!7 zX~X+EJjLN@4j<<5F%HjmSY6vquCI85Iw4j+UlV4Q756QNABdQ!Mv?OF(##K#{(`uH~YRk-{^QD?S>JO}|X=d-Rb^6|kyJm7eUgw}6iK0_CG|5v* z+B1{3vsy{l>Yz>OKQ}=*$IG25CmacIwr3`t@N8|w6U1FO63V390rIp?;y{Gu>c$4I zVOby+*5ReP*;*%YG@*Rq8}fptLbmo{?E#+?t$w-E)=oVIc$)rd4}_XD9In4xbadiR z`cC=!v&6VXL+$=gi%?tub;?lvC&jbD?>krj`J{F-frIF{D@i#2TmwzBl>dkRrKh3j zU=}+bIbFV|zx>4E`p3baThpS9x@s<_(_aEn0nNp9f`_B)a-!g&h-Y3FE`QVd`;{NpQ4OO{3sRir`^*;aav@ zHc7-p#@J$*hL`fr^t{zM6nJ@J=91}nDenx=JN;^SaNI%Z!zjH^ppm;dcE+noM(F?F zZ@#4+o%+{5MG_u^>&=j4^CEhf*J%~@GzYS{qc6;IT^fPCw{oHiih<5Yw zhTNn&|9{G^KNZyll}29+N58=;l(1nmCJaOWiJp}u`F(Yeo;boIW7y=4Q`jnAFq5&p z!_c3VJYIsxV{FUhQ6A(&!yT4-*}q+I`l7Mx6XG_+H%YOU21ee#^wZ4QIqoHbVdDO( z@=cdd`REE+`DO}xdFLs7ts@vbB&LxU+*I|6;6t9~aWi>zGAs>@!_{*C28hn$Rw-I^$7-(UL9R#R*igb@T4RYTw!Yi)u7@7@%nxb?YJlak-<4HM~6y`eE8 zo+akE{&^nrT^jSM_T<8vyxts=cya!c!s=Z38dg{;)=4s0N1o1t8&7K1#iV`fKNt2b z+E2oMh$OjlQ!g7&qMEYtr0?on3rC2vI-WE@A&n<}MQqx4Lq<02yTL9}8c(_gVnhAW z@@i3pj{9y@#8g{a33VNe-98FmzVK%#GgPwtc2ElJCzXvog-97URFr)20qAkxjYhQ^+jrwyC9-`t zJ_sHUf4TTDY2&^dD|E`X@5bMu+rArgm#}Y{NzQXrioz6N5}uBQ1Hh}hUqFhflvzVw z!7AV&0{L9hP?0}hOyNWZB%N;*mVL`L^3occ4or&QrvP!^jYVWL^9IoyieCdCMvFL4 zb%Uga+w{i~MRv`9TY)XR=Bb>{r%I0OTmDN+ z%8_@!GFyeozU3CNRkqSj-AUm?x!cqi7*c+gnDcVqQ(##664Kbd8-E~R`)<%YWZyzQ zW6Pa&ZnAGdS$$lY-MVDo@|XhS%X<=Yd0?AReuszvmiJId#Vlsn^hy{XTfWR7sUbssCGqFkH_G zhkHx*E!-$WEv&P+fK%z8+e5|c@udE+Z<(+7a(Ma;4mc^Z*I>5q#srcK4GpP5+0eSW z=8@TBpoC-Jax(%3N}B9jz)5)pfxSYYu6!eb31Ov^4a+y#4Y~PI?bgHs%A*P|+lk&|9NlGdi#2!swlYI+;QduSj*tZZUm!Buif{?yn`E~-f@5T(p%f1D+Vdc{h z@cs~JEYri1eG4(;%6kyAI0Pn?rxI8a0+W*lE;f&haMJZEGBwbL=SH}mB79r8Ykq~u zUGuy}`f%r43&8B8YyQdbU($c=@v5h~@nqX~H;JyBL{}9zM@MeWW$HL@&BFA#aAOg% z^>Ph^=8DAZO;9r_McO3a09$L4rHF)Y1xBJiF227i)Gv&+Z#h(uo@M`vz!Btz8C|&bR#`dL0Sr_J9<_Zngky}$%(zGNaD9I5LNl8Xfl5+^CBqJ!v zR|qiOGlG&lrBG$H$aw_@oXvo^+}R}v~z6{!mS!^n#syCy=lm? z7diDJhZG?_8N?1i^#iAgvunPh|G{gNy1s#%{2ezTq$hWeTy2+Pk)?~6`spH*ptz0^ zCP7_o0iA?Ryi^iru0D8R#9{e_S`DBU7yrCsaHB_ z)H|J->O%zS`?j87%2rzaCV|4uaCy)0 zdC$0-6z0;rXIjc!a&$HCnIt<>hp2d#_smujCM%{UX}lUA4%MRmgPW`Wg*rsSJ0rj& z@XpoIx(eYvAuvqCOL-6XywysB_oTo(9WUiQ%=1>O2i^|^-Whl)?@Z5It&o0V(ETo# z5C8m8Qgi(kS(99;N6x?B9OFCJrYp?Dy)m1vU|%8gE?pTt;=?7Z?UvI5D_Y~Ew$v%F z|8z|;%(Zg0HJ!@gzi;?YXFB02Xr;GYZKqD%0v*oN!#rqBkZ^iT3(x6cmb50sZq5Jt zTf@ju;{%v=rPGXY#xye}amEvw@l_l9inblcRVnF2?t-QB z=2p^K*3^J0S{upKC0H*t1rw;&c062 zE9R|~>07WG3zk!6#FA^W?bsOR z&D!mSD}*T&b>~b2t26LTC$3ny5;HMul!74>20_kBP&4mg!aHyT>m)PVa|TtZg<_nU zf79%TswRBv*#x$k=ns3pbZCA*3?N1`yVNEtHJi+AFq?uglG8U(b8SUR?Yc74FlVt@ zwa#j5z?GSmZT5VAw4q83$}%&{)bKYsw%3#y#+~RaL95oRRTItB-jkM> z+E3C-y?N=JU@sXPpgo>~F&k-8JJa}}WZnAx_t|H+%CI>rmbJ93T()fSi1+PZ89j1L zmf^;B9pb(lK2JqvK$@J2>{1p`S5W2WhR(K-xE~ z8nFzsS2m^@J#ut1GHgdPci!w(3$%Mu^OAY3C=1yUa0ZkAo+ zf_W{iXp0vvmCRIx@=Qj~S+-;et#IT?VS}ELX&#{%C#@VQy^fe%fj41IM7ugvob|z& zQ#B0zh5o7C7j&*5aU~sGCBphp4vr3~T?q&#V|$08SGGyQTtD(^V;u6v>OdYe+>cT( z`?uD!n5_9pk7M>d5X5!Q>XnqyEg9JbYLENuxf;m}B9qj1eR9QkAZ!Q?XXh zgGr*BGkF#^-_zfGoeE#$oG*7w)vd2nLCdbX+R!q6m|Cm4^>rxx*^r-qauQafa;`SB zqDzUjxTA6z?G?Z zA@7a8k&bL|G0NXD(#Z#G^vTebcDj6qH_IBFGS@>dAo3*-Frqke!Z`BH#fDDXw)y#i z4iAf1wVI5Im`4e9j?4-2IZWmxaFj{ekU3ZWfeuqv=;~pmx+d%5e~OFyxQT59R8HUpLh7X4nOSh zGY-Gx@M{it*2~Gt+}Gjl93JcNM2Fw!@KFvQ=kO|rKj`o!4zF?eZw?pq9{x0G}NE>mJ!*jv0EiHBQ7I2h*s>A0v{AqAZd%dH7Ntm+D zRoU)>9`pU7!#{WUHxB;}9P`~u=}i6u#W-8hE?{@eBhkxMkPaXcb!_PbXD~JE;@ZTM-)%(u!t#=rmQ=@O`a36>JJ3Pc; z*3GuG%z_)<)8YLbKEPq7xQ+j4hv@?t{Wyo0IgDMR@i04X_`?og>hKi~Gk<0LS3Ata zy3xPx@HZV^=kR?Ff8SxIKNm zVU&w-w?@o&`p5p_;=-hz$wqQYV@M>XPu5;>p%p=n3!GB*2 zade(7#>01nVb0TV=#wii+_5^0ZhE^dth?3$z1Dd}P3kA=?`jD<~}xr^znbWQb1!f7>d zI?17U+zY890jO&lfk&OR)-dQNO4_v3R-$0w!p9w}s;UXQAG|5E`96y0x8RF^ZGk=#bV#>)GdQ@{g(Lj?DU5$%2?xsbi@(wE35t28@%NaT+aM?=%w?sjbY7v+3>X zimcUX*Eeg9^er(Tew!?Yxp{2*jJuGV%-&Jedo)P~iOy|_gTBeBvHx3}fK_zHJeYai z;dtL!br80v60a@8&~Mh`lXo5c7t#|)c-t7(t24NLqi-I(INnuM_on!E7LTP7?C>67 z>r_7a6O^x@!^$^V*vmUk;Q@|daG#h)UT}YxyjhAwUcC;J7y2eCOZZ2(mzSYAlea(w z!^FK$?UC_Fa~3yS1YggGtIZxO8u>DMZ~2}mY-t3O^CYhVh|b~|SM~C+^&BD^^0;0m z?*d^M(t1E5or4&vW=>htGC6 z+)J^{|K;d+IDEguk2?IM!_PVVlEZ%n$434)Vf)@?tio(xMb7B7I^&^OhPfXMQ@4iu zJ3PeUVGf6D$DbVcla;3|Y;ty|Jh7bn2=kqadtbx^v5|mI8IOvXcE$Py&?zI%_8A*Jrm->oINkKO>2xYhw>a-=zD;fYFG5@1b<^F=TRz|1 z?X}<6H1~M8x%-VZ|ET>z{^i0|bq~%NmOu5i?Q=iKl{#P4_0G<9y^_hL5nJrhu%!Oz zE+-%V;fbGYzTuGD&Qt}gldi+@=S}=X^Yw?^dgkZ0+;UuLhx6XEMZ=e57>E1%};F#@8b$JaOY+pZU?fKhpaq6ow!20-ASC8miGqA_q z1Gjv5VE5+-cKhq^x4i3MeKp@%GcZYRti39KQ6X5Oo>sR<@xU#P?zE&~ZBi&QWDBGa|%}y6Zp3hGMxRMJx#5zMp#8 zH#rwOvqSwCj2}@msL9qf!zxuD7u;_$s#+*1vO_%$uc7c6hz<2e$*Uc$q|pxbFvUhY z)W4A0>`-f9nXQsVJJf%YQFCq=C1;v6&qzTYH%u>Ugl( zpV5WBt|>SrKFJ5=Ta%?|Z}jNTDDR7SDP z4)qf{WwS#)0V&ZAl^&Map)zY@cBnsBNzD%Rc5t*q{UK?i9qPF{WwS%Y@;S3ZeM~|# zJJgR;{&wt8KY=8(LuDMJut7W27gPYVLk%?+?NA@50MQQhIwV9p)R)1VVTXE|`-}tW_GBzRbxu!M<}z|p>j`UcBn6r#_UkH zCSZ1`>@C&49qP-(m>nuBHx|qebp!&;4s};z%no&bV$2S;3)ju;P){Pp>`=oVaAt?f z70B#R$53jsL*@0A*`fZJfZ3tmLz=5|sU7NK0&VP2Sv9A_cBl;9n;q(RXgclKp{^kN zXootL45Jet|jcBqq(8SPMmb>L>$q0%idJJf$5ryV=gVdVSx zP;nkyoCuC~s92zx9qL!Pn$ZsRGtf8B4)u6t{Z6z){RF2K?NA?A88bW7a4(x3>Y<$Q zkYIV8FP}(~cI{9Hs0K4T)R9!S*`c06!0b?OAYgW=cOY$pcBm+NWOk_MPztj{eVXfZ zWGvDc?i8~_MUkMb9qLSFnc1NRD|@p;4YucIhk8DZ#q3arAk^$oe?ytg4)qoSW{1kW zPiBXD3IfaybqX8wU^y=Mn9>;C%IKfqA#*dNg#Iu!6gKl5X+s&UC44+111Zcp*~C{ zH>2isVKZYzS~O;TS|?DqKLW1R!2?^1l`2VkLN`(j-q7g@-N*?s!IYlRjU=m4`O*^# z!I1g}qee29hYUZjkvAAg^HFK?GX08XQK+()~&_tCpH33cy zT`7$-bR`Fsw|j1AmmbC1E?alOEVG+Fq-)&FfFHTfSEmUIewyIjUF$Yr#~RIVgB@$t z7PUrQ-ECY@H9nwf#aeO3tpnGyXl*@rk{Ph_*wdT{-pBxt#N%dbJqsd2WS9oSr*-6# zCOqS<+F6Piv^%vv>tI3did=FC-p2x*rT@&Oxz4~lUPmrD<^*{cr%?ZyK z<_i9GH6Rsm1m6BS>XMT+{n_v8dBVrJ@CCw1wRpkIr6LZ)v$Hvj*|*H44B^blBbOX* z;ss5zpe1nSG7>&wuzAJ*qz)O#>OZ*2`d_9)*MjpuBZc}8jz`1|IuwidodA!*<724x zm4f%yz%UIjQu(|)0X?jjhWWt-A`)Ow)>usGWd*@ouwk!=s zpDiQ9d|ft2r@F>eu%nwI>WvXDUG48RUzc?1uK%vpJq}wL&!#4{%b3%v-75Syg#VMm ze`*q&>y(<->LRDJf3>HD*jzBA%>}dBR8DO)q{XOKmbdz^37n}ZuJJ3DdBxfV!9aJL z@V`Yc;!UNT5hb#8u^IXz@r+Il`nUXQ+cVRR8y*H@-TzZYx*E%kO+z+yGB^wy_`N}s z-6q=)a6`7bo4k=nRg0w-t7%zQZ#0v@Xxcmbewq#(bg=Q$O~gS5 zt1lnQaE*K%*1+_e_!O+sVSOO@H>vXQpR!Q8s-mKUYZ|AR!W>JeBhhfyi`?2_=#%t~ zL!I~4L3;T3isxE;dE*tfx);pkZSOGjS(10XeB{;YFnP@RAP*W2onh}RNc*DPo8p@! z9!rCq1_cfWL}%x_m%@gL%2$$PjeN>S+qCk{6!!9tRp2^qg6J&n5QV+GwH2MS1R)Q0 zlQ&z~(g-GnqIByW!CdgMjEP?h%E(yt3rMhdd?85xAUczW z@2Wq!SzrDKi^zSA4DzDBX^VCb2_|{nmwN)DGkF#^-_zIE*YFaN?=GAK{9jlrowkp= zMhAAde21H(UUl1Lj_{5;uGIlO+U?qxLfR#_5Z?{Xez%pmuJK3)*N@RJb7sH0g9zx5 zTp)j*!z~eCEdK)zpBM3^@;?VwBStpu1UWXH>xSx^9JBT9}o81I(ZL8|f{M9_(}@J=p0+9PD%>4tBZ`KjP8`JKacs)zO2UZlni0-H3yoZp7Q_ z2C}jRJKad1;OI=R8Beg&jXc3lH{xKY8*#AHjX2opMjY&PBMx@D5eGZnh=ZMO#KBHC z;$Wv6aj?^kIN0e%9PD%>4tBZ`2Rq$}gPm@~!A>{gV5b{#u+xn=*y%~tdzcDfM< zJKczboo>XzPB-FUryFsw(~UUT=|&vvbR*tJ&oHa=V5b}D!A>{gV5b{#u+xn=*y%~tdzcDfMXd^$@gtgPm@q2Rq$}gPm@~!A>{gV5b{#u+xn=*y%~tdz zcDfMXzPB-F-dNy0xf}L)p2Rq$}gPm@~!A>{gV5b{#u+xn=*y%~te8 zG*t82ke%+f@aVwp3obJ{>aL z(_#9;#xvaEMu&HCcz1{Qc6dLB4|jN$!*d*7;P6t1QEajDoayj64qxaneJtbuxWiXE z%*?v+eA(fzJIuF?@!ak3y$=7t;U7Evl*7+C{IbKpcbK_-%d3;a-5f4E%;dlEzsF(J z1C7qR-Y|>58=m0s{tmy_VblkV{}_kSBQW~$4xjAsX%3@kVEmUlj9#44z0EHD3ZsA7 zVQ;gGMw#)fbNC*IQA02u`W}X#bNH7Idz;-?93A}yON(u*VYV|c+}&YpTaAuwt6>x$ z43BYmSBLj-c#^}D9Y$rse;)C6!dxTxw-^3(#5)M1 z*a)3(9PFyWlZ9W4c!n^Vwa^a}X4VgUgm5w9qlLL%(2o_SZwa0)%nHchJ=(ECqn(*!spDDa=#2*r7Wq)`s5I!Vgo==BG%=gjJ5r0m2PQ*6|a~(R4IDEasd@CByI)|kjKW4LZ;~N`y*|~z-v~GNv7oz&% zW99Mn>viLyTvX83N2k@D`lq05u12>`<5zKi?6^Ntx;s+-w6H(YsekIkquFt#<5=G2 zyB~t1<9^DkPl~>|Uh6^M+~V=MXYyP?#pA7(@Fp?lh4r6%O=ZtrqQA%Eg_#&4G+31{ zV31n7rNWs$`VW-4uvDBinLhehg`|)E)gY~5yd+5<{b0O?!nF_^>W`6EJ61`fKKgqU z8}-rA8qf66dAHTFO-R&7|1lZ0(MLay1gSnckLwNVqhBY+Odow`gvNc5_|nMq(NCqI zsXqGYh_ii>ZW2?bk6tTLo!P#|^wG~Hc71*HYamB`^pnJH`sjRnq_`vc=zJxcJ~}-S z(?<{6kwks;??I3IB8}A5H+}RktE8rn{!wt$M}LSCM16F=6ipxfZ_sUDq$eaa(??%K z`PmwK02>L(?|a!a@x^H-+_FiKKdkZ)JH#o zGQ@q6h9f8Hqn`?W^YqbMl=VANAAJ>#H0q=OOl8dU(ZjuL`sl%c!t~J(AW6IW=zUa2 znLc_Wm2LXyXA&@d^e+-Hee^q#wn2S#i~uuz^kb=Z(?|aj*U9wJ+0!@EN3S5U&Av#7 zE6YqD{UY)=ef0a`HhuJqxX7lDzBNKkAN^U=H)jz0fPwyYpwWsyZ9V#8}L)%p> zpR0>d_g;!=y_wva;gXsvmiMA$caV1|SuaZVYl5L5xDI-0pNpkSv`A2q8d70wfT& zbSEeVI-Ty$BHc;oPD0p&0-`L#rnqDTaa7!9P*Krw2@E0*xFL@4jXH>+xS$9+?(#kV zI`y7gx4V;06h}qsch9Y-s@{5QIaPIPd#kkV7|r#ZH9lN+s|=}12%1BJ(gtIw5`vbH zptP$P0(#-Ph6pX8ePu{n+EolKvuxT`>?YeBJR_tn-&ITnRMgRqaPU=V$LcBHF-<*T zq8D`&w5|@~LLc@Ib1jhVA7*!Pwck<9 z?q}O|oM8UV7nI4)OA0VK z#(f`A>jrlf&H%?k>0YU|8``>(U7c;c?VHzkcP56O&fYCux(23I$5%z}gs$|)puOKv z{P($$IL%1qLa)13YL{Dz_h_qn+N`*XyZ&+R3i?y_9si{^8~KW^{d&QA92&(Trr?&TXlQ4jX^ZC8I-osZu0yEnJ3madzaoW9PGyD{ew8kWTz6^;mjW2#5Tbr)sBP z?UlKmE_28)(!$cS%5?ZaZv0jYn;*gG@F7ujb6{bR2`R(SJ*fUU^P#2;Zjwb9?z0o3 zXuhfg;qtyL+$)65k6?7z&?qVbyfU}#GKc({4l0#{VcreCZ`EUd1fvz=_uIh2;LUOi z`L&4OU9uy7wcZVW@79AKh5)G3wBSESQyivnd2 zW{?gI>Onn*F+U+X*MeY>GPnDM!*ox_Wo}=WIpkL- ze$c^hcYAwhDzNW*UTDS-omSA)W-&TVmegz3J_(EbrYu?=5{&K>0h2$bjGviJ5AFXE z_x7rIJ4Jr7SC{u>ihP}H2I-h*>rs>9zD~Bcx73G8dq>I6UfaWqseE&9;zfLTe*^99 zrL5XM-vfkguP${Ji~`&KT;hd2{=jB0==RB4Ibk1~if(dWj<1K|x+`h3wfFh}lMmSA zg*pl!!r`&Kx70&hBb^70=;3#4fERlVKQ*H-@4ZzXe42bivhTq?b0nL;EyKk{i z*Mh+Q_yDu+XZ#t@7;X>n+5m3|a8H2G4>0@9j1Nn4hHnb++XDQK0KYrH?+ft12l#UV zrjKs?*_~qeYXSa7fPWC+9|xFksQLZh0JCAi>|=dH4YRywcuar~2yjDy4-W9u0JAV? zd=>`y!~k=itI;eE@T&ss`b+#t(HFJyMt{!yy5qHcd3c}vvUd;lZyr|)vyT;f${ibH z!1N{W@fdzz@RxCclSVPn3e>|p~vZob#%IS|iW?ARw9@A(1rN?uH zQ7`u1K<&$$J-b*^gPmDBYtF1>Tizb*%e$L*puraDV1&SZD&4wEWm4UUS2QonN2_|S zUv@@x&7tEOuKeu_IwO|udbr09vnj?M&+4H)(0^R7e2I@1r1GF3KxKGCnMbJay0wID z*tv7CSrjkCDpUD{w7lO~7gzie%ebo7x#fq5ymZ~lBrJ3JYn)bjI&Qg22D|cbnY4=B zoAqD$2K`mVxOVYYQA8%*@r?ef-vm4Yh#I2h`6I3uI1+=7j&mExHpx)9Qh)JrC+eTJ zLCo2 z^T4rHVO;zKhl7a-Xk^|=K%S`lB zp})UH(Oq4lvU%fq?E{?3q!XI7-qdJyjad znhhJL5~0oOH$-G1$FAtuxrGbo7ALp&Z0uDC8@r~Sazb&&w3$uQnhs9bxu&v6Db@4J z&7B*1+gg`wShF!&-h5o^u?w0{UAnyGxYnghT8>+G?9%3=nuZ*^V98N4G}UU#78R&M zym@pKJvOsz5VpGEdUAs;D!jCANr|GOGJp*BT?zLcvkZ}S+Jssm zf86+%9pugWBsz7f*G+>KHAN2@J{a9$qA@>$(P?^$0Iw`gGh{Z56Zg2xlTQ5ddMtj6 zg+qRPmVTkfl)3RC4f#DQetU9HN{1NyvoVuy{MH5-XZmX&0eEF}t7Q(uU8+gRXJtn^ zDBG5f^MuWhVDwS(D+0VSw;q{8e)H6IXp|lNcwffvYGLyu7=2y*rUVuS`GSZ1R*By# z*};!qiSfHd7(Y#VP%r33Bg171$aA~bjqX)?Sq(&^E)?BBbN!zYK@d#z zQPEKjOqtu=vIx_$Q<1mwqCP^J4(8RZjKbq*;&(s5E8~Z*EKAikUY0D?!PxCRDce-8 z=x&)Zer7g3wC_JRAG#9XFvgg}lwwvQ0`<3WPYPubMLT2nq}Z1+{RYX6a>lt5q=*Mh zV?Hv#f`9TnH|^kyeFlVU6ZM`^v-H?}fSV)t_QwbIEdhRYfL8~2eSm4hjHhcCJkLu4 z`zr!`O@Ma<_&s1>h~F=4pY<9_66`KNjHc1oTe__JS!--ktF$x`x9!j{^hy z2?0Jbz{dobJTyKh2Kbc$UKwEW&FD7=_`(2R8eqmOMo;@@_|^cwE5H@PF@I9EdMt12 zgw5~o0(<0=7%QWg%Qrm2W1N_Kz@Gfu-(z)VBj)(Ahxa6pt;1vCQpXIB4RB+CX@`wQ zBjUT>K3J_gAV5Lj{2j9pFHg1p*x2} zSIzjZ8@a$`=ta+6sZ6`(-dFr|+*Q{cbI1$#KJ>zhYkoJis_MfJyz|i;p1$nY=Z?Im zX~4TrCo4Ep=L;nFvoz&+AJ=4ZwDi|zlWSU{F?t!i8~w+Vl)e~&&Tl0)I%7FenX{y) z4GMNk^O=7g3;}!tPyz#ozJ6NXRkjT8<4&})Y%Oa|x`aGehnm>27YOg>l z^Y*9=xg`W16_~*>nYYXj6htEPmN_1FUgj->U|b^erm2RVA{zRf{!HerSGY{(4bHj3 zZ?SFyR~0@C1BYu0=co32BJ*~Is7>arO>xQ}p2VBeX7Y2AkY0oR5lKjoE4=(%a82PX zLOl{(Tc`xj1J@Paj^CreV+&KTKN>u~@Cf$DfQwP>55zQ;dHX0XUgqsKe4MyK&f7;I zH=N46-A%%FDf5O@ipjjW9P=`7m&0y3f#wPq!p_UQZ3pj#%-d3NFqyXgp^>b^l_Oy;cum&8z2H&f2uP*dk_in!SMsjZt!04DSH zA@bld=Q6hL6L5Q-GmNiWgJD3Kw}z9ZTP?F!{qA|OLT#yBJPDw$WyNlj*}lIdmMaNr_|z=Jb-51*FPSbPo7 zy+!}~&@XzboE)n$p8N~YfL|!1k?$YN!Zn$r6<^n6W)ky6GplYMMY6oi+mFO0m3eb@ z*<{`hgR0RL*c{*WUC6vODj!psw*$yjlX?3x3{2*&0|xWm3~@~zM=O!$7$BQ zf)cp|gJ#Vu@c$YJIUgdf_`C?Ol5zi@PTk!y6xX{j$}o(gPp|ucr!nSM8Hew8aXO7GbP8;o6|3zfg%GWdY*8)ax5sHbd`PB|?K8Z%eGZe*QBIBm=5J)1xh_{G!YYH%$d%%2t?NA6y0mU2cKT+xH<~T@ zm7(kfS{q^wiR&&Z+<(?x-w{_&mQAvflw78f@fU6+;%cS;WX;J5t+}f<&UII6jB@Kv zngNO9Rws~Tf<%(H3NCIa9W$?sArLxpB1pQ{p`)`$n@d}_wsmdkjF>c&IGb~K!a1d@ z08A3j$(nT)wP%$%^AzTTG6t)r%o1J2q^LTGw`NmXud#Ymz&gyIZ@p4uxP> z>zXYabcw^7p3cs$^|}zv3xm05mAOkuC@MbtfA%Cp-y)_1|UcMV+ptpsZ}ZS3XkwRdgo?Np&A>^%~r zDpdxR9|aGSEiS`I0t=<=L2gxKdOQ6c7V9={!OFk)?$xdBTY6f#yDeSobBlqkJ)LbG zQS0h9MaY%9)hacmwZc+53{*+{&AAn0ahl{D^dInD|@^8 zXltxVYSy-OcegnSKOq&K&TY!6^E&hjyEpattRYh5nJ?w%DfZ-N`Bf^dy&da2)^AuZ zhxNU!?c3Ut7hIkTdXb%N8@6mx(Qez&kxI9@w8C=1`n5@JwQVB~Zjm>+w4<|4F9*@4 zjpwv>wNX%eJ3I9r;6p9pRi5walD+QM*r-aN*WA;o6eTZS zZ?@|k8V4nVim`r!0y(dpT5grRYxSChprdzV>pF!`x!rVVdUuR5Y*%SryRqkd<&<8& z0#+!bLAmszty~+|^V(fQWKrzw?(A9HxuIQQCsA$fJ$}j3Xv{hU4h3k`J~rk}#pC-l~-fc|AkI5HtoMQP-t z#xhPZzijUY3+t9KvNVkSV)fh_rSGQ)|G43Anl~H2`7&GH3#L2{4lwpz;&-`p`0@UX zAMt@dcBoG#TKbP0ikVd2?O=3^L}Pvgo&3N&fLDZzI!2FS%+D%*tE3Y@)>SQjD}+OS zzm|EN29Bo8?Q~g${7&0nLr!H9{2(`etA)*vU^Hq-6#ZvlVQ@9Pu7a-6gs? zW{?gY>Onn*G5qYkp0n}Vzei+a0nqSHfGX|Utr~6Xy1Rm-D+jxtN(hs zDng(JUtd>Y4^+0S#i9+MB$iaxm88%-vSbj_)q8!+8tn%v>sAR%7TK~L2>2gU79!=A zcZ8ztL)LAAGbMkxAKu68#ve&vQ=_s{N2II^+P}Y<_Camz0o#~DAw~INZUse|jaAlA zdZlh30N=`bFa=4fMGyM}m_&O8SoZJ$7d#(UB1~2eT<|F;YuZzAR5(mXAyF^_wJSe z-xlCsfcOQBKzKYp1&NF;SfbH8VD>nu=nz;eZk^r9^ zVEPqCPv5{W{S3pbR2b&lXPEwz;j03CO@MC-@GSv;M}Th+@Ld7EJHR^wd|!Yc4DeS1 z{G9+l5#S#N_?ZCzKEQN2EnSrX=9_Ew^oj@D5BCYa(Z0;wBW!!%Oa_gA!HW{>K!oTwNyw5*)e5NpGaubJ@!ia=`=>rb;c$M(J z9FJF}m1fqJp!+7`o8;h`v#hF1l+E5z$px3*19rUa*LoL(GkKi{l5bG+Ex z;QRUhg_o;N>uhNn89O<+9Se7KT(e+7Hd?SO(tk~+X4L!%Hw}GuYIf+e7dR9uQTnRsDI_ z3p8WUs=hlY{ZgF%dctqP>M#*;V{R>HGRhjOCpqR5#Nb>GXpC192hahD16ol}`N5#F z@F$YG<4uia^R1ww9-SDf|5T}^msJaz(Y6G%lx(L6I4SK(p}?}ppI0+u+txyk?HF;c6Ux+yQOz}N9We* zoxPi;Ytp}Wy3e=WFHM(;y9Mi2d%Jp6T0u<{MbyZk|6`FhT2870I!}Wh>JCaBDqoKh zd#Viz`=k~p_C+kEupe{<;Uy*ZR#bx3R+Oy~U}wsjm%eKR$m%qTh^_1RhmPDo$eUet z6i!<#VHC8eDSF85!RS~MGCzWjUlHJy#czhphH=`V_|20}{OBiH{1yv`{5H${lpa&& zwon!!zemMyjvV1fU(5KBKJz0OaV~-Tq+yUUx3vMr{!ux60N|C;t(G|qw^noOML81g z5bs7lpQp$C2u80{6(|C{GPfR?Lw-%_0yN4Fe(9Cb&iJJS9)$M&=iozE_=h224pWL*i3rr-bMhpnr1pMJK1?Cuk1R10$|}b# zgrdw|=FNZh{KwY&V2+vAoxBEHD-Py;q5jmlXS(fw&-2QzO;CA4U82Y453UICH38lc z;P-&ZRH^stv2p6>gl%5rp#VP?V8N80l4gF1iec)2;e7+FrP9>CF~E}pJTt(D1^B1{ z9~)qL)E3qm0X{pxs{`B>;7tLh9XCF&3-B8Qd|iOw5@7Py{JL_*pA>C?<#U~|(flT` z&#F4xSid^J!#(CTjrN%Q9_KMZ)O$=_nB+0_g>!e{Nqw2&F+&!V#Rorz@ne|xVwiT? z@Vo%K@2W39?wjbb$@`-51l$}XH8Uf?gMR)p8oW)Bkw6X|Aa{1h2wYLt*L_r5;?hA z#WGP-q)~no`=XPdyDpcb%50CX$y`edeuh34ykGsh>5}*w*-pkqYJH+bnbQQ)F+Z{? zx%cR=H0JM;sWj&Qxu`XS|D?ER%>N~{s{Hq`tg5^TPUkAgUViQZTx&LCyPsexKgVo9 zrbjXJ@^kfa%=D3;yN!q>@^eW2?OJ~B+j33i=T^eh%g=RyPx+`q&qWz-@AC38|DHDix5)&$%4)@^h16;pOMyo^5b zbBI}`@^cpuzRAzE;nC#h4j{`+e(t`KOHJJb{FwY)D*>4N+;Fnfp5Nng4 zn+hu@SC>tGj(coV`MEFPWxzY*=q{!5 zb1TR&lb`!13?@JKWeg@iSHO_o8MjazLisrceX0E1TZo0p&$){mO@3}EFV^JeHW9x* zcg7*;oXXF=oghtqZXXPGXWT;+7L%Vl8m1;cm&IW6bN`JWlb?GV1;*s(J_7@jpL+u? zCO_AUi`^ObS`2?N`MFOkpS=9s_XXnvX)955CE^{guTrN^@^c58{M}GmYvm_C;{f`Z@ub5=mbqcmfs&(}{A1DL zzf2BpKfcG6>xqu_VB#IDPZFIvqLUM&Bsz6OrwOB?Q%9huV^DPJh)$0TMHh!U;&79U z^{gzODsBxc1u_@uBnPDPCdA7mou{!m!E%XQB7_I~zCw6#iW-rDjE5`{WnLwT6cELU zpHcK)mcNVs((-q^-}q$S|r5=OWrI!Ik* zu~UFwDo$*m#m;&>Ijf!ZL&tS$os|T&>UXpLJ_>1;1j) zD&4u&L!G@&pv=}f`&T&$L%Zw_U&(sjrOwqZz8kOgJXLi`4hE7rd%3`+lN#L;*VN7p zTe_V{k3@m|@?R=!6o}VI#z!J@O~?q9N#OJq4cx^FVQVT(luUOf_hg7uDs9zA_{c=o zO8k=Lw~_>!mveIhY8_j;yCnmJCokTHcwM=`nHM9IH3$^IEDljSs-us)J%i5Olgxk(z!Q|2TV z%N8lUxE_&r5|#Z0wY+SlOMSUlCyE(flxLf>2a?bWWkky)AyeTqtqi{i7v_og`t_-N zTM3wGTT(dn{!6lXiMXs6;d`+blmqe6e)6b$y3p+;m(x6VYvhRlaB0Ok5b_)Bu07>N zQjp694Fd_{l60RH0}}u&2`NhY(}_Zw=$?}}Or>`d8Dr!SC01yXs)@X95`C(jle0}k zUlZBNG8x8H&^440G!axQVXgl-cjM8EN1^M>o+^_dr0YYc038J#SYr&=k86;Q!XC`Z zA^O33P*syl;}`f?hXQ(2F08?hz#ZsbJ$K=rYa*tt?(L1HCFai6TO?%N)7CA?<-le= zr}$3maIS5uSNC*oEpt{`EHk%B&UI~PIn%E78^kkVp;8r1Yv0)2jg0BEZSJJtX-OC^ z&~2NiDaxLu44Zm3vf{C4swgtv27O)>^X_Fi=4>^@lV0kqMbUP>8gg-h>6N*ykU8Xc zvleuwsHnqlh<77hYxS5P!RXa;WbdabgBQrcFmA`o^XCE!gY4lA!`-Rj{B5d6gv$`i z((y)N^CKALwZ>iqcx7%^$Q<%pH8~kB!OzytNyj_%m>q(g)H zsvg6b|5tRpe^ci6pe(|4oTiFEK9G)myc_0k>oGrq(I3U{a)4Ln_NdGuzm?(#9sH=D zxWSJ+vNA6iy;gyJAK;boLl3e)dRB~(J7maa`K&DMx94HL$~|?7jl9Jr7|F ziEr@Y#GwD4hA@Y5r-qbN|2++q!*m?i%26BxbrOw6y~CvAlOA>A zSlL~BglRH{?15#!1>rMuVt5wVN1AU0_IlN>Y=awwPw+JG1DlMYU@F@P{!{mG)ZDt z>2AJI-f)?^CRX=b1Kbth*Mjw+ZVv3<0ruar+lB4>^)c-ApzaIs*8&{g-}gQ2{deJ+ zfaW={=kMLQ3texviv!H24x?eI*zhd@en)_B5Agc}{GkB5 zz8rs2^p~xi(^EJ8><=@0#=^EQ^Yb1v3VG0DSbfc7Rh#IW9y8MTw#S6SCK>q9H)azA zxIy@59@DS>rN{J3f9Em%YvKYu%XpO@GjB4~AbGv{IUs{-5=;B8<(bdxL+GMJs+?d_Y+mk{P)GMKZQ?CQe7_lDM0 zDj9PSvOh~Jwray(;v(xrkQ#n{`^9>q&B!fMD_ z`ioB{PH~GO*C1B9F>XXWaoDIrcG$RKTr^m#Me$7OYQk)Im0_-Qm0>Uj?QaD)X&W|f(4xwQjyA22bxv0; zp1!udy&u_hcM;xne+=#b0fa(}1Iv8+mO-Vi{3Kh=ax2c$*11<=N7CM}cBO*ehd*`J zttz_{WiP27F53&;D)aqFt`98kDbYopJ=s4a!g%g}#oh~7x(w~y(BW2pRB4(9I0Cb@ zZkw)kv4E=@*A#iLO{H@}9VhpfF39e7J&hPlw}!Pn@@TO84fk@1Jkly!)2{A9{3{58 zQq%OMOQ%vX^VI2S&|~!nZ1o2Be=LDdrMIX@HL7eK$1+6LY4gH-W2vc$qNmkyr%$kt z9{l6RHGXe{P zS9(9tpc=(*m2~*g%`twr2;+yoB5IKwI*p0UK%U#ZZglU{%W9CFDWm&p2%lBYQ}uwM~i*TMEQ9fAEh0j927SQiHPssLXbU{^W>o|C0d!F2Gz`V_`8bVQCRb8aGO^#gptXtm>QM`T$Q1 z@RR`4-k9G70X{y!CkOcS0JjI2cHQ`F2r%!$>@N!N_5j};V8&ube_Me6CBO{4jOG&o zcIB2oDcTqtcT-1<{ zV;NVRCnpW#zloN~&%!Mo|L?>ym;aH|Do>P~8~^_+=D6x9X%)ZMUv~6X{iBFjyaR{I z=YflXs45Mc7Ecr)CY77?7cZtZQ1X+Z{K-EN?A0@*BZ^O1DiAkEh1`z?Y6`jMqz%RL z&m7b5W+-1-K9pxm0%hUm($ zY!jEf`0d~BdKfoczsPOou5`n7x20QVO=*-y%xtoY0GRH%3tY_CaMu%A9NHtk48FC zgB~gn?qI7aj&`sOm@lcrn3VXU9<>f-V{^+8S*N}FzGL%?)G^{)%UA~ge5Y#k&^ThI zu|u7dXz4$0s405L@WJQ~6OH*1bdo|vfLF=)G1)6)7^mA5Kfd|Ik9O7Kw^%sj*Cq3> z^_ViZg|Z0weM|h^YNmR%U`6qVSWvLoExjm_UA zenrukvT*y3&3__(jUs{{@5}P#YGLyu7=29q4h<{}66Y{}wd!M#hwyXV4e9W`MGt=H zgQ0$;7u{@3WCrrw?scO(N-wKHcBYJuJPpU@t)iP_MAD6Q-?8~EqT`*LGP=8E5vJoJ zMIJiR!H3=QrSI7Mf5h*8xtlV6=*qHGt=q$~`8t)WaO7(IQbrzx_AkY;IoXAx?McVx z?#sr|T;C!oWxX4Z*GgBmIZQ*2nQ=Pp3F_ssc@%|X^Vcd*Y@GZ00N()ih4xM4o5!~W zH17xdjQvD_KON9eAB^T30TxVoQlE@J@6Pc5<(T@_LAb2}W=LZ3IWNE!!h@Ze{2OR| zzOl|~<6Pz$46}9%ru?%15KNX9J*M3}$YaW~jd^K@*b4zY)uf$T z1V7RM?POp|5znW%phVaGdup#RG58Bu&F2vyZR z)0^VvN}WM)=oDEpJ6GK+vLi1RVr9F!S7h@rJ*`I}J){32f6fq?acRXMgJ2uis(Zb9n1!I?OF!D<42Mch83ME*t-TN8MB! ziat7uj~tjzb%P!Tkt+Spo@&Ck0(+_v3i^Mr)$yWIOqS5sK=IwQ?7(boNZ;}I@70NF zlsj3Af9U8F&|YKC>Oq~6Xz4$0D85Ey_h58~iN^d0y8F0_0Iw{5Gh{Z5Q&EwbC!P3F z1T21wg+qSZWd4~RQ|7i%79qct;x|W*@T1rmzZPNhBN(lf;W~g<=C)R5!#J_uk)DAm zgR5l`hI_Nd%Xi9=aCbNUZcs)RjhS@g*LVEANFClrxxKme)V+QHa zp!$x#hpJ%nj!YTd-LeSN@qp3+9qFLoYw74a{%#Y$`{i!R_@QUaQu@<-IR0jj$;;#K z(s{@ely~X)+kKAwN7Co7t%viD4AYc@spqJd$KT0ajW*_{&Kh?0TxAaRCOtMjd#kXG zK|h4O`xYi;-S8uU{SyHeO#M=Cj1R#WR`p6TU1YQ0KfsLvo*ZCCEk=KIfR79Ck^rv= z@R*5uYD|UQg=j%tzy=q-{+o<*Vbra4Xy=~U|i8KGB z_WVPaeZKbfv%Y_LM*+91XRXhlKl;lOu*c zyLwb~$gI`NqeGTgKFNlEMM8lOeRiLJc_ErGfBR=g-#KgNy6gwvyYsyxn%=*C+o-E1 ztXg~7`utmFZQ6F(`J>k@-2R5k-aydTzxlEoJF^P@y|W%WyrV89ygDJgdinNs#Yr7C z+eV!<%P}}qge-49 zuJzaj&8IG1-f~>)(j_g&EjxB;^HEJhj$N?is2TdWp01aXNe*s{e>Y5{IH`n9+-IyK zW4PVAyRChlP7v|?wLL72)*bJB&#a|Cvj{k+D4$?;ltnNBvfiQO2{uG+!A+O6Pb z{R(bh%7i{~O%4DnryQ8xd~u=A5O;}>9rp!&&V?27sqmpgAI8vpCHA}jFU2G|qO3fW z-T5ugrG!r@p1Y1ii8473Es43&m*Qi&5z>RJT+S!)OyX>5$2I3%LvBVBrX>s|vERK- z;#&GocqZ?{-pJnZ4>?$D2aZXSOZ{^@Tg}x@mV06ROYt<$*p%nCY?M=~LU*X_Cygm{ z$%#T>9?XGigN-3(n@A(%sq0J+*qE zS*eG94|t0n`a|H$_0UfO|C1gRe6E*nes9B43ck1LF~9#NOd7DiQxD&D_CrcN}qU@mh&W+rx7s^}#`AGIa$7hcG#;h-wQ=Fq7 zDl<-zCHXcO9djPxm>7O@0*1zKq3jIf{9zfE8}q=8zO|(Zx`!0$U#Mb`4$79LqeVF6 zS0S1Y%FdLzohplv-%eGmCfUJ{^clZZ!sbUX`iS^Z&rF$HuPhAX_JHV$0IytG6W*XF z4EI@u+bBE2rLI}HuNMyaJuQBl0}F$%^?sx|Rj0uxbnv6iFn)dK3RddnT%UMx|HcoU zx@79ps$@H5z`w;0-t?=3*A%hmg?eYo_?dYiT}^wL^+5aP%PGoDS@)(&Ec)-0r(~2= z)}*u! z$Iwp>?2q>tTE>acC{bOq-1v`pc#BfO)5s9q?_^87G48l>QcvZwU1wN&hn|tL z(=U3B$CRl}9+QV#J*NI#y;>G3q_U-g(a@V`8sCH-3-A13_?kB^Z4 zw8!(L|I}m37x_%Mi=_Y7W6BE|hCSt_!eh!6?*e<;Hgq1!(O8cuN4z8KnfpfW3Vfz8 zD{tVH!fst%_-tYBox^^W@H~%K3or1PcevQ&HNvNOyiT~qW8UqV9(N0`@_3{08jmU0 zT^_q~?(sI+Z}a#9;Y&QeNceJ(FA;vD$J>Rk_n0#BW{)oy-r+Iz<93hVD13*<*9!lu z$JYzr-QuPTXsA!`@R&KOfARP?!teL^cfxmi z{72!BdrY0hXNx(>!Kfr9$}_^CwlK$Ifi41Qo4;l-&n)N08a@p@6Tu!1^Bc8uMF_I0H<@9>JjbH-l#c; z%_%xHxNOiXtCT2}nc33l0gZPfQkBblzWUe=zd5)1!(V*o4=?M^{2}-4{0FyuDLZ$~ z{kdrBu%m{bJaj$D*{N0}zUJP-Lp#5}^P8X6wy7({W$Li14?pnEM{jugvR|J&@}4H9 z`&{`8<%%dHrcM?}?tp8`4H3RJ`%if;fV(cIGOs|SK@m5QC+h@@n5FQDvOQM&f=%A& z9DHUfnW)wtE9!Ph-lz>zy2om#yp`mQu8>;`f&t_ zYYUodccNA_<5YftNkY3EZIPZhIt$HcOZRus=}l-|w5B=Qv(aesh7v>Fe$sGJG=4&S z>nvF%@j6?`DF$|l|H0!0oxVR(NmT$5BU5}pUTWL7XzSXQ{gG}c=;&OdgHDtK10H&E zXq=7QEg2PVN_>dh#FedP6q%8b;)PDYDiNg`S6!uPO})ClqEs7noPAektK^;Rf{QDlatyxIqrIPUp&u=3qsEKri-D zD8^oQN|1nE2wtUBme-rl-_)t|Wfv}-Tb$h9v$3~#^Tv%`Q%^aeIAhw(rfE$F7u^{; z?gLU(fmeyxt2H6&h}9Z&{F`#e+sk0}3mwHb5zK(JLC=wT@Q3|8J=8_)snWCqV5^VN z3_7_v(2@Bs#nbYmsHof^>wGuV^)u{s$U1#B;{uF56GAo8m@B|PelREPY>D3-*;&>L zru+^LF!nX#M?VvO>h7fc==Z=MJJc14mj2_0nyZIbI~d&}(U>1WH%CGoO^Q??!r8=n47ll$rjcDTAlWBII|M_}wW-(#xD7Ztz>J$NUJYhm_2%fKlegT!3Nh z8F$f@GG%a+EW&U*YBlbYBjFOBg-gDgAHnGJ%E%(XD|6c}bI9-a`c5{=4t`2f%I~eh z=0`AkO8jOA76xzjexN}WM<%ji@KaP%e(x5>4BC=-#V>P4zcr zbf1(3@6ps3MHiL>W6jv!Ftm)(Tod9wn%n&{hxu}i(n0=`j?vx?vm3`qH&rcuU1pGO z{Jt(6@_S2=FY3Fc`9e3v%DiB-Mf|=C@XGk1tB9oPZbgP}3H2HtghhT+7DIkd4^7sY zWbKskGqdTTeScZAkR$x{@&c7jTc5;o@N-`Zfp7Scvn7>vB{4LUvXbh5&Py13_^C@A zsKL+0ALG{C@IqV1IrrqLDHnR$i|{=LY3w6M*}1d~kJuB}B%QJd<`YJ23{%(a{CaRf zWxK=*@!dbNQ$4t*aLw+kZ6KW8Ng+3Y)7S=WU-FX*NumH%z)>#RnDc9fN<& zfKqCz9;2Td;9~>4IKZa{*tNmFNSqbecLeyH0QUs=!T`TEz^@PR4PYPtHwjyw+!oL< zCmH*O;oky#+8ML|Y+(ODVE?7So}s1De=D&6eqjIO!2Xwk{cpiOp6uJQ{FHSXXX?4d zpDZ&>H_34L-X{k3lrf{Bj2h-!X?S6PPYm!W0bU;9R|S}NWPCOTm|?xyUl8ES0(?b) zZwc_*1AKdc-xJ^u1^B}OzAwPMFN*{3$nbv$_=y1XzKrIX0RKF|t{(9xMH^x7u1?te z{wA>J`_6tn6!WOyp~AMOk9LCngV*3| zaK}R9G3}3G%7bCrAj7WCdV2bIX1^-HrTMdsTRZpUjNRFLE?aoFzK3d#)A=*b*qt;h zSCc=!5S`e3#z%fRziHKptLHACd)V=r=)_J*8=lzSb9_`-v?llL&}YwVNBnTLEXFNA z;Z3q|Uz%{9EXXc54EdviqmJo6enS7+>yk8jSRKiql+B0j1Gf3F#Uj*v*nh}Q^I`wx zv?`h#$s8VyTRIfAPF2`sXRQqjncuD)?%Q?x@{`*9fwKUqRD(srfT!v+Ts2 z%H*(|s`7a!j_aL2_Lc?v#wzQYH%JfJRk0ir7}Y~6l%KilPT(P$NllBIsc=l;A$!<- zE68PvyPH~uMA7<53=s_qK_eVc;E->zroqtMH!oU&hHu0OkzX`U$R5h9sV5j7rpHSo z$_5j0G0{W8R8ie^ED##4L>w(ggDZlG&0!GL3V<1|vM`(=Vp$l8sG=A+MYECA)}#<) zNnA{ws#p9{JHNM^R%g$qvX1eRh;HJ_?F$X2uyRaZ`O982Olmo|OPp;rlV08|N!{!* z?EFmj@0HHn;oKW~hlN-lY8 zyO_oLD;({skBqB2=y^R2daCrG(0NAa!JcLTg&o-JX$(-#@hTqw@FVC z;FUF_Gh{Z5(<6!u{iJ>LP+Ba0i-kje*UQYhx+#MTWfAhL)hB`VN%+y_F@CPkWuB$q zD4HFC+4!xMonf4(=_^nlSQuO_w=mo;bu5_2BHSU~jeI^&kNFXdPE|%00bZFKW3iCm zczu@}Wd}d_SURp2Ha~*VM)B)=HW2n#>IwPH7eDe4e)NHiA7cdgHR(a!D~Gd#0DwHV zd)?@Y>aSCSO&Q$>WI?{0S|B>c@TQD4T_wY~T_Cz`MijW+EgYuft4arSq=SCGrGpm2 z%BW!UocP@j@XEqM*DFocHU@vPR8PrGk;6|x^qc?Lrk6l?ri`DNO%Lt+&;Nw3#5asF z<}jt0sSzbL_VK8Rc_ss8grqtYFcv^^&4=sOPf$#$`3-sLdS@SeaEJXyKI{f*Xxf&gW6EPV9SITkmMlBs-LcA8^xeB!G6FlF+*wbC5Rhp^1$DV93W=_I+i zIhNHjr*kY1%TT#lfAQ?C`bQCZyyIv3ueu1BI#i$KjJU+jRm{4@vndA$=o#WBR^~FX z(vHzhtQ?8)U3wHAjnH4?+M-}aMdgoci-JR-2E4Y&rQa=z5_6}hDVjJzqj5|pPB1W2 zVn;dItVv2BH>XreTy@jTiZQ9u{&$_Iq=^i;P@gLjn_Iz2B$f#|Rr2pHPQr&jk;(gq zeoszhg3iHlx>A|s{|Tt)6Tt)X&Eeni>B*_ET%>u4p!7Bfs!1QQg~b~Qo4 z$ofURf=Fe3psR;`{FA$e_Gmu9C$}`4lJ2x&S|v3Mbb|3f$270q(AiOR#Ctn?p{bU? zr5lGBl<>yU)#|vKL^Yzz+n~n^HFp14Qwvd1DJDz!JfZkLS$1GfzA^ph7CO}7<9p1v z9{>iAczJd7>j84;21bAifn<2AdoRB%&levXWqNPt| z%EDSGi;&;l;S3pC0Oe(*7VR|}gT!RQyNFFyu&Wo}o>9P-;Fel4BFIBY1m7ZG-Y%jkOkG(6u0-yF@tnt-FI%`TG3GsOc~wXvIx_0 zpCWJNWt4X#e`q4Cj0#3y6u7o5gd2WHW$L1FN=ghu?E)SU>pqE4+2ke?`;g{zM%FiyoN_k>q|7!z$3)mObx07!k zzbBx%6YMkgV}bp>0e&c;`R@S#D8Pa#f6Bjwr6QkV>W0}f4lvvh;DZA^HNbNNd~|?M z4DcxdZVxc+v4yoEz_gcUzdgX02l)B`-yGm~1^B%I{?`D1B)~fZd|!Yoga;e5e;OM9 z?r4t~Q=@nTtOgn`#p0s_2`OX_|3@~lB*{5UY9vwQq2m2Q^ zcHU$8p9jbgHNvx{+1R2P!VwDJjckTo6=MXgG1%iis~w%_Gc1{C72erkwpk z4`ovS@niar5gwcDERq2!(8ka8VB4d>4ch(g2>PHXG=63lrZj%0AE5E`7o1kPRBmqk z{5s5W)xFXx*ldtJW~=^DM9kk2^i|-?cLec@^nTIEoc@O-(zLblER8g|KYf0T@C>LH|x+ge)O+z=fQkq_g%?+a2KQbiZNr zfPyYu8Wg)Rb?lDzX>#%|$w5Kk)j=Hl^S5|)(4V+FKz$T4DJmCcNjC@V?fAL0qQ6Ju ze*b>b0sdd<@*t`eRRbMG7Xr*TzCn*w9Wa#@<+>UFV3!9Km2Q0u%EsK5AF}q}rT$~? z9qKqW%AK(m{%M`~&K=~<`b0XFwpHE?EozD$@_R74!$f0#1l{D8vM}DbaaQwba)ciZyrs8A*!&2(vmrhJ@XFlQ%4`^? zF)EyI_B3ebwput0cc}{Pqp~Ahz8e;9-!b=x#IGoKQ^v1H79qbzjV&8x2S47I@w-~s z{0K&062EzYg~2PmA81gE#c!K*_z9-`T;E=1`ei6Jz!5tmO#yjs_qx%Yt(VncMBWWL z@|1ixwOw>`%pl!Z_Z@TJEjr%0DWkhv7Gb{ZROF!}9lINIQ&H|WX3~uxy0R=)S0&&2 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 z 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

      |WLMq`MBV^7*_C%O<*>L? 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

        5Z{8shi;vX2GKE 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

        E14(T;Cbg3%D`qabq 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 IADhnq19`dd5dZ)H diff --git a/libc/xtensa-lx106-elf/lib/libm.a b/libc/xtensa-lx106-elf/lib/libm.a index 2e9a85954ae606ef6876a775811098bf6bf98059..cbc418d0ee7e9c98561cb20a6b3b699959b604ec 100644 GIT binary patch delta 573866 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 z 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 A%>V!Z delta 530198 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 diff --git a/parameters.mk b/parameters.mk index e1f019e..4dede4e 100644 --- a/parameters.mk +++ b/parameters.mk @@ -90,7 +90,7 @@ C_CXX_FLAGS ?= -Wall -Wl,-EL -nostdlib $(EXTRA_C_CXX_FLAGS) # Flags for C only CFLAGS ?= $(C_CXX_FLAGS) -std=gnu99 $(EXTRA_CFLAGS) # Flags for C++ only -CXXFLAGS ?= $(C_CXX_FLAGS) -fno-exceptions -fno-rtti $(EXTRA_CXXFLAGS) +CXXFLAGS ?= $(C_CXX_FLAGS) -std=c++0x -fno-exceptions -fno-rtti $(EXTRA_CXXFLAGS) # these aren't all technically preprocesor args, but used by all 3 of C, C++, assembler CPPFLAGS += -mlongcalls -mtext-section-literals From 8b0a1ae3621fb74a94d171385e235afaec36a748 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 13 Aug 2017 15:16:50 +1000 Subject: [PATCH 191/349] Add Wificfg Uses the sysparam store to save the wifi configuration. Adds a basic http server for configuration. --- examples/wificfg/.gitignore | 1 + examples/wificfg/FreeRTOSConfig.h | 7 + examples/wificfg/Makefile | 5 + examples/wificfg/content/index.html | 18 + examples/wificfg/local.mk | 1 + examples/wificfg/wificfg.c | 94 + extras/wificfg/component.mk | 10 + extras/wificfg/content/challenge.html | 30 + extras/wificfg/content/favicon.ico | 11 + extras/wificfg/content/script.js | 8 + extras/wificfg/content/style.css | 19 + extras/wificfg/content/tasks.html | 18 + extras/wificfg/content/wificfg/ap.html | 90 + extras/wificfg/content/wificfg/index.html | 52 + extras/wificfg/content/wificfg/sta.html | 68 + extras/wificfg/wificfg.c | 2027 +++++++++++++++++++++ extras/wificfg/wificfg.h | 137 ++ 17 files changed, 2596 insertions(+) create mode 100644 examples/wificfg/.gitignore create mode 100644 examples/wificfg/FreeRTOSConfig.h create mode 100644 examples/wificfg/Makefile create mode 100644 examples/wificfg/content/index.html create mode 100644 examples/wificfg/local.mk create mode 100644 examples/wificfg/wificfg.c create mode 100644 extras/wificfg/component.mk create mode 100644 extras/wificfg/content/challenge.html create mode 100644 extras/wificfg/content/favicon.ico create mode 100644 extras/wificfg/content/script.js create mode 100644 extras/wificfg/content/style.css create mode 100644 extras/wificfg/content/tasks.html create mode 100644 extras/wificfg/content/wificfg/ap.html create mode 100644 extras/wificfg/content/wificfg/index.html create mode 100644 extras/wificfg/content/wificfg/sta.html create mode 100644 extras/wificfg/wificfg.c create mode 100644 extras/wificfg/wificfg.h diff --git a/examples/wificfg/.gitignore b/examples/wificfg/.gitignore new file mode 100644 index 0000000..e067149 --- /dev/null +++ b/examples/wificfg/.gitignore @@ -0,0 +1 @@ +!local.mk diff --git a/examples/wificfg/FreeRTOSConfig.h b/examples/wificfg/FreeRTOSConfig.h new file mode 100644 index 0000000..baf25a4 --- /dev/null +++ b/examples/wificfg/FreeRTOSConfig.h @@ -0,0 +1,7 @@ +#define configUSE_TRACE_FACILITY 1 +#define configGENERATE_RUN_TIME_STATS 1 +#define portGET_RUN_TIME_COUNTER_VALUE() (RTC.COUNTER) +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() {} + +/* Use the defaults for everything else */ +#include_next diff --git a/examples/wificfg/Makefile b/examples/wificfg/Makefile new file mode 100644 index 0000000..2cbb996 --- /dev/null +++ b/examples/wificfg/Makefile @@ -0,0 +1,5 @@ +# Makefile for wificfg example +PROGRAM=wificfg +EXTRA_COMPONENTS=extras/dhcpserver extras/wificfg + +include ../../common.mk diff --git a/examples/wificfg/content/index.html b/examples/wificfg/content/index.html new file mode 100644 index 0000000..5512b7d --- /dev/null +++ b/examples/wificfg/content/index.html @@ -0,0 +1,18 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"

        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%0D?jpC+I8Lm4d%;%UI*6$! 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℘rJTI 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

        ", +"" diff --git a/examples/wificfg/local.mk b/examples/wificfg/local.mk new file mode 100644 index 0000000..c6c3129 --- /dev/null +++ b/examples/wificfg/local.mk @@ -0,0 +1 @@ +FLASH_SIZE ?= 32 diff --git a/examples/wificfg/wificfg.c b/examples/wificfg/wificfg.c new file mode 100644 index 0000000..a90a9da --- /dev/null +++ b/examples/wificfg/wificfg.c @@ -0,0 +1,94 @@ +/* + * Example Wifi configuration via an access point. + * + * Copyright (C) 2016 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include "lwip/sockets.h" + +#include "wificfg/wificfg.h" + +#include "sysparam.h" + +static const char http_success_header[] = "HTTP/1.1 200 \r\n" + "Content-Type: text/html; charset=utf-8\r\n" + "Cache-Control: no-store\r\n" + "Transfer-Encoding: chunked\r\n" + "Connection: close\r\n" + "\r\n"; +static const char *http_index_content[] = { +#include "content/index.html" +}; + +static int handle_index(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_index_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Home") < 0) return -1; + if (wificfg_write_string_chunk(s, http_index_content[1], buf, len) < 0) return -1; + + socklen_t addr_len; + struct sockaddr addr; + addr_len = sizeof(addr); + getpeername(s, (struct sockaddr*)&addr, &addr_len); + + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; + if (addr.sa_family == AF_INET) { + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR " : %d
        ", + IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_index_content[2], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static const wificfg_dispatch dispatch_list[] = { + {"/", HTTP_METHOD_GET, handle_index, false}, + {"/index.html", HTTP_METHOD_GET, handle_index, false}, + {NULL, HTTP_METHOD_ANY, NULL} +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + sdk_wifi_set_sleep_type(WIFI_SLEEP_MODEM); + + wificfg_init(80, dispatch_list); +} diff --git a/extras/wificfg/component.mk b/extras/wificfg/component.mk new file mode 100644 index 0000000..5412c52 --- /dev/null +++ b/extras/wificfg/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/wificfg + +# Expected anyone using wificfg includes it as 'wificfg/wificfg.h' +INC_DIRS += $(wificfg_ROOT).. + +# args for passing into compile rule generation +wificfg_INC_DIR = +wificfg_SRC_DIR = $(wificfg_ROOT) + +$(eval $(call component_compile_rules,wificfg)) diff --git a/extras/wificfg/content/challenge.html b/extras/wificfg/content/challenge.html new file mode 100644 index 0000000..568ead2 --- /dev/null +++ b/extras/wificfg/content/challenge.html @@ -0,0 +1,30 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"
        " +"
        " +"
        " +"Unlock the configuration interface" +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"" diff --git a/extras/wificfg/content/favicon.ico b/extras/wificfg/content/favicon.ico new file mode 100644 index 0000000..93f7af2 --- /dev/null +++ b/extras/wificfg/content/favicon.ico @@ -0,0 +1,11 @@ +"HTTP/1.1 200 \r\n" +"Content-Type: image/svg+xml\r\n" +"Cache-Control: max-age=900\r\n" +"Transfer-Encoding: chunked\r\n" +"Connection: close\r\n" +"\r\n", +"" +"" +"" +"" +"" diff --git a/extras/wificfg/content/script.js b/extras/wificfg/content/script.js new file mode 100644 index 0000000..68064c5 --- /dev/null +++ b/extras/wificfg/content/script.js @@ -0,0 +1,8 @@ +"HTTP/1.1 200 \r\n" +"Content-Type: text/javascript\r\n" +"Cache-Control: max-age=900\r\n" +"Transfer-Encoding: chunked\r\n" +"Connection: close\r\n" +"\r\n", +"function myFunction() { var x = document.getElementById(\"myTopnav\");" +"if (x.className === \"topnav\") { x.className += \" responsive\"; } else { x.className = \"topnav\"; } }" diff --git a/extras/wificfg/content/style.css b/extras/wificfg/content/style.css new file mode 100644 index 0000000..9155940 --- /dev/null +++ b/extras/wificfg/content/style.css @@ -0,0 +1,19 @@ +"HTTP/1.1 200 \r\n" +"Content-Type: text/css\r\n" +"Cache-Control: max-age=900\r\n" +"Transfer-Encoding: chunked\r\n" +"\r\n", +".dlh dd,h1{font-weight:300}.dlh{font-size:0;text-align:center}" +".dlh dd,.dlh dt{width:48%;width:calc(50% - 10px);margin:8px 0;display:inline-block;font-size:16px;vertical-align:middle}" +".dlh dt{text-align:right;padding-right:10px}" +".dlh dd{font-size:18px;text-align:left;padding-left:10px}" +"ul.topnav{list-style-type:none;margin:0;padding:0;overflow:hidden;background-color:#bbb}" +"ul.topnav li{float:left}" +"ul.topnav li a{display:inline-block;color:#444;text-align:center;padding:14px 16px;text-decoration:none;transition:.3s;font-size:17px}" +"ul.topnav li a:hover{background-color:#ddd}ul.topnav li.icon{display:none}" +"@media screen and (max-width:680px){ul.topnav li:not(.active){display:none}ul.topnav li.icon{float:right;display:inline-block}ul.topnav.responsive{position:relative}ul.topnav.responsive li.icon{position:absolute;right:0;top:0}ul.topnav.responsive li{float:none;display:inline}ul.topnav.responsive li a{display:block;text-align:left}}" +"html{min-height:100%}" +"body{background:#d0e4f7;background:-moz-linear-gradient(top, #d0e4f7 0%, #73b1e7 24%, #0a77d5 50%, #539fe1 79%, #87bcea 100%);background:-webkit-linear-gradient(top, #d0e4f7 0%,#73b1e7 24%,#0a77d5 50%,#539fe1 79%,#87bcea 100%);background:linear-gradient(to bottom, #d0e4f7 0%,#73b1e7 24%,#0a77d5 50%,#539fe1 79%,#87bcea 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d0e4f7', endColorstr='#87bcea',GradientType=0)}" +"body{font-family:helvetica,arial,sans-serif;font-size:16px}" +"h1{font-size:26px}" +"p{font-size:14px}" diff --git a/extras/wificfg/content/tasks.html b/extras/wificfg/content/tasks.html new file mode 100644 index 0000000..d084ea7 --- /dev/null +++ b/extras/wificfg/content/tasks.html @@ -0,0 +1,18 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"", +"" diff --git a/extras/wificfg/content/wificfg/ap.html b/extras/wificfg/content/wificfg/ap.html new file mode 100644 index 0000000..8dbb730 --- /dev/null +++ b/extras/wificfg/content/wificfg/ap.html @@ -0,0 +1,90 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"" +"
        " +"
        " +"WiFi Access Point configuration" +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
         
        " +"
        " +"" +"
        " +"" diff --git a/extras/wificfg/content/wificfg/index.html b/extras/wificfg/content/wificfg/index.html new file mode 100644 index 0000000..cb81712 --- /dev/null +++ b/extras/wificfg/content/wificfg/index.html @@ -0,0 +1,52 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"" +"

        WiFi Status

        " +"
        ", +"
        " +"
        " +"
        " +"
        " +"Lock the configuration interface" +"

        These WiFi configuration pages can be disabled for security on a shared network. If a password is supplied then they can be unlocked. Warning: if no password is supplied then it will not be possible to unlock these pages via this interface.

        " +"
        " +"
        " +"
        " +"
        " +"" +"
        " +"
        " +"
        " +"
        " +"
        " +"Restart device" +"

        A restart is necessary for some changes to take effect.

        " +"
        " +"
        " +"
        " +"
        " +"Erase configuration" +"

        Erases the device configuration stored in the flash memory and restarts the device. " +"This might be useful to clear stored passwords and private configuration information." +"

        " +"
        " +"
        " +"
        ", +"" diff --git a/extras/wificfg/content/wificfg/sta.html b/extras/wificfg/content/wificfg/sta.html new file mode 100644 index 0000000..65bfe9d --- /dev/null +++ b/extras/wificfg/content/wificfg/sta.html @@ -0,0 +1,68 @@ +"" +"" +"" +"" +"", +"" +"" +"" +"" +"" +"
        " +"
        " +"WiFi Station configuration" +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
        " +"
         
        " +"
        " +"" +"
        " +"" diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c new file mode 100644 index 0000000..bde84a7 --- /dev/null +++ b/extras/wificfg/wificfg.c @@ -0,0 +1,2027 @@ +/* + * WiFi configuration via a simple web server. + * + * Copyright (C) 2016 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" + +#include "wificfg.h" +#include "sysparam.h" + +char *wificfg_default_ssid = "EOR_%02X%02X%02X"; +char *wificfg_default_password = "esp-open-rtos"; +char *wificfg_default_hostname = "eor-%02x%02x%02x"; + +/* The http task stack allocates a single buffer to do much of it's work. */ +#define HTTP_BUFFER_SIZE 54 + +/* + * Read a line terminated by "\r\n" or "\n" to be robust. Used to read the http + * status line and headers. On success returns the number of characters read, + * which might be more that the available buffer size 'len'. Excess characters + * in a line are discarded as a protection against excessively long lines. On + * failure -1 is returned. The character case is lowered to give a canonical + * case for easier comparision. The buffer is null terminated on success, even + * if truncated. + */ +static int read_crlf_line(int s, char *buf, size_t len) +{ + size_t num = 0; + + do { + char c; + int r = read(s, &c, 1); + + /* Expecting a known terminator so fail on EOF. */ + if (r <= 0) + return -1; + + if (c == '\n') + break; + + /* Remove a trailing '\r', and many unexpected characters. */ + if (c < 0x20 || c > 0x7e) + continue; + + if (num < len) + buf[num] = tolower((unsigned char)c); + + num++; + } while(1); + + /* Null terminate. */ + buf[num >= len ? len - 1 : num] = 0; + + return num; +} + +int wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len) +{ + size_t num = 0; + + do { + if (*rem == 0) + break; + + char c; + int r = read(s, &c, 1); + + /* Expecting a known number of characters so fail on EOF. */ + if (r <= 0) return -1; + + (*rem)--; + + if (valp && c == '=') { + *valp = true; + break; + } + + if (c == '&') { + if (valp) + *valp = false; + break; + } + + if (num < len) + buf[num] = c; + + num++; + } while(1); + + /* Null terminate. */ + buf[num >= len ? len - 1 : num] = 0; + + return num; +} + +void wificfg_form_url_decode(char *string) +{ + char *src = string; + char *src_end = string + strlen(string); + char *dst = string; + + while (src < src_end) { + char c = *src++; + if (c == '+') { + c = ' '; + } else if (c == '%' && src < src_end - 1) { + unsigned char c1 = src[0]; + unsigned char c2 = src[1]; + if (isxdigit(c1) && isxdigit(c2)) { + c1 = tolower(c1); + int d1 = (c1 >= 'a' && c1 <= 'z') ? c1 - 'a' + 10 : c1 - '0'; + c2 = tolower(c2); + int d2 = (c2 >= 'a' && c2 <= 'z') ? c2 - 'a' + 10 : c2 - '0'; + *dst++ = (d1 << 4) + d2; + src += 2; + continue; + } + } + *dst++ = c; + } + + *dst = 0; +} + +/* HTML escaping. */ +void wificfg_html_escape(char *string, char *buf, size_t len) +{ + size_t i; + size_t out = 0; + + for (i = 0, out = 0; out < len - 1; ) { + char c = string[i++]; + if (!c) + break; + + if (c == '&') { + if (out >= len - 5) + break; + buf[out] = '&'; + buf[out + 1] = 'a'; + buf[out + 2] = 'm'; + buf[out + 3] = 'p'; + buf[out + 4] = ';'; + out += 5; + continue; + } + if (c == '"') { + if (out >= len - 6) + break; + buf[out] = '&'; + buf[out + 1] = 'q'; + buf[out + 2] = 'u'; + buf[out + 3] = 'o'; + buf[out + 4] = 't'; + buf[out + 5] = ';'; + out += 6; + continue; + } + if (c == '<') { + if (out >= len - 4) + break; + buf[out] = '&'; + buf[out + 1] = 'l'; + buf[out + 2] = 't'; + buf[out + 3] = ';'; + out += 4; + continue; + } + if (c == '>') { + if (out >= len - 4) + break; + buf[out] = '&'; + buf[out + 1] = 'g'; + buf[out + 2] = 't'; + buf[out + 3] = ';'; + out += 4; + continue; + } + + buf[out++] = c; + } + + buf[out] = 0; +} + +/* Various keywords are interned as they are read. */ + +static const struct { + const char *str; + wificfg_method method; +} method_table[] = { + {"get", HTTP_METHOD_GET}, + {"post", HTTP_METHOD_POST}, + {"head", HTTP_METHOD_HEAD} +}; + +static wificfg_method intern_http_method(char *str) +{ + int i; + for (i = 0; i < sizeof(method_table) / sizeof(method_table[0]); i++) { + if (!strcmp(str, method_table[i].str)) + return method_table[i].method; + } + return HTTP_METHOD_OTHER; +} + +/* + * The web server recognizes only these header names. Other headers are ignored. + */ +typedef enum { + HTTP_HEADER_HOST, + HTTP_HEADER_CONTENT_LENGTH, + HTTP_HEADER_CONTENT_TYPE, + HTTP_HEADER_CONNECTION, + HTTP_HEADER_OTHER +} http_header; + +static const struct { + const char *str; + http_header name; +} http_header_table[] = { + {"host", HTTP_HEADER_HOST}, + {"content-length", HTTP_HEADER_CONTENT_LENGTH}, + {"content-type", HTTP_HEADER_CONTENT_TYPE}, + {"connection", HTTP_HEADER_CONNECTION} +}; + +static http_header intern_http_header(char *str) +{ + int i; + for (i = 0; i < sizeof(http_header_table) / sizeof(http_header_table[0]); i++) { + if (!strcmp(str, http_header_table[i].str)) + return http_header_table[i].name; + } + return HTTP_HEADER_OTHER; +} + + +static const struct { + const char *str; + wificfg_content_type type; +} content_type_table[] = { + {"application/x-www-form-urlencoded", HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED} +}; + +static wificfg_content_type intern_http_content_type(char *str) +{ + int i; + for (i = 0; i < sizeof(content_type_table) / sizeof(content_type_table[0]); i++) { + if (!strcmp(str, content_type_table[i].str)) + return content_type_table[i].type; + } + return HTTP_CONTENT_TYPE_OTHER; +} + +static char *skip_whitespace(char *string) +{ + while (isspace((unsigned char)*string)) string++; + return string; +} + +static char *skip_to_whitespace(char *string) +{ + do { + unsigned char c = *string; + if (!c || isspace(c)) + break; + string++; + } while (1); + + return string; +} + +int wificfg_write_string(int s, const char *str) +{ + int res = write(s, str, strlen(str)); + return res; +} + +int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len) +{ + size_t str_len = strlen(str); + + if (str_len == 0) { + /* Can not be encoded, would be EOF. */ + return 0; + } + + if (str_len + 6 < len) { + /* Can fit the chunk in the buffer. */ + memmove(buf + 4, str, str_len); + size_t start = 1; + if (str_len < 10) { + buf[1] = '0' + str_len; + } else if (str_len < 16) { + buf[1] = 'a' + str_len - 10; + } else { + uint32_t digit0 = str_len >> 4; + if (digit0 < 10) { + buf[0] = '0' + digit0; + } else { + buf[0] = 'a' + digit0 - 10; + } + uint32_t digit1 = str_len & 0xf; + if (digit1 < 10) { + buf[1] = '0' + digit1; + } else { + buf[1] = 'a' + digit1 - 10; + } + start = 0; + } + buf[2] = '\r'; + buf[3] = '\n'; + buf[4 + str_len] = '\r'; + buf[4 + str_len + 1] = '\n'; + return write(s, buf + start, 4 - start + str_len + 2); + } + + /* Else too big for the buffer. */ + char size_buf[8]; + size_t size_len = snprintf(size_buf, sizeof(size_buf), "%x\r\n", str_len); + int res = write(s, size_buf, size_len); + if (res != size_len) { + return res; + } + res = write(s, str, str_len); + if (res != str_len) { + return res; + } + return write(s, size_buf + size_len - 2, 2); +} + +int wificfg_write_chunk_end(int s) +{ + return wificfg_write_string(s, "0\r\n\r\n"); +} + +typedef enum { + FORM_NAME_CFG_ENABLE, + FORM_NAME_CFG_PASSWORD, + FORM_NAME_HOSTNAME, + FORM_NAME_STA_ENABLE, + FORM_NAME_STA_DISABLED_RESTARTS, + FORM_NAME_STA_SSID, + FORM_NAME_STA_PASSWORD, + FORM_NAME_STA_DHCP, + FORM_NAME_STA_IP_ADDR, + FORM_NAME_STA_NETMASK, + FORM_NAME_STA_GATEWAY, + FORM_NAME_AP_ENABLE, + FORM_NAME_AP_DISABLE_IF_STA, + FORM_NAME_AP_DISABLED_RESTARTS, + FORM_NAME_AP_SSID, + FORM_NAME_AP_PASSWORD, + FORM_NAME_AP_SSID_HIDDEN, + FORM_NAME_AP_CHANNEL, + FORM_NAME_AP_AUTHMODE, + FORM_NAME_AP_MAX_CONN, + FORM_NAME_AP_BEACON_INTERVAL, + FORM_NAME_AP_IP_ADDR, + FORM_NAME_AP_NETMASK, + FORM_NAME_AP_DHCP_LEASES, + FORM_NAME_AP_DNS, + FORM_NAME_DONE, + FORM_NAME_NONE +} form_name; + +static const struct { + const char *str; + form_name name; +} form_name_table[] = { + {"cfg_enable", FORM_NAME_CFG_ENABLE}, + {"cfg_password", FORM_NAME_CFG_PASSWORD}, + {"hostname", FORM_NAME_HOSTNAME}, + {"sta_enable", FORM_NAME_STA_ENABLE}, + {"sta_disabled_restarts", FORM_NAME_STA_DISABLED_RESTARTS}, + {"sta_ssid", FORM_NAME_STA_SSID}, + {"sta_dhcp", FORM_NAME_STA_DHCP}, + {"sta_password", FORM_NAME_STA_PASSWORD}, + {"sta_ip_addr", FORM_NAME_STA_IP_ADDR}, + {"sta_netmask", FORM_NAME_STA_NETMASK}, + {"sta_gateway", FORM_NAME_STA_GATEWAY}, + {"ap_enable", FORM_NAME_AP_ENABLE}, + {"ap_disable_if_sta", FORM_NAME_AP_DISABLE_IF_STA}, + {"ap_disabled_restarts", FORM_NAME_AP_DISABLED_RESTARTS}, + {"ap_ssid", FORM_NAME_AP_SSID}, + {"ap_password", FORM_NAME_AP_PASSWORD}, + {"ap_ssid_hidden", FORM_NAME_AP_SSID_HIDDEN}, + {"ap_channel", FORM_NAME_AP_CHANNEL}, + {"ap_authmode", FORM_NAME_AP_AUTHMODE}, + {"ap_max_conn", FORM_NAME_AP_MAX_CONN}, + {"ap_beacon_interval", FORM_NAME_AP_BEACON_INTERVAL}, + {"ap_ip_addr", FORM_NAME_AP_IP_ADDR}, + {"ap_netmask", FORM_NAME_AP_NETMASK}, + {"ap_dhcp_leases", FORM_NAME_AP_DHCP_LEASES}, + {"ap_dns", FORM_NAME_AP_DNS}, + {"done", FORM_NAME_DONE} +}; + +static form_name intern_form_name(char *str) +{ + int i; + for (i = 0; i < sizeof(form_name_table) / sizeof(form_name_table[0]); i++) { + if (!strcmp(str, form_name_table[i].str)) + return form_name_table[i].name; + } + return FORM_NAME_NONE; +} + + +static const char *http_favicon[] = { +#include "content/favicon.ico" +}; + +static int handle_favicon(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_favicon[0]) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_favicon[1], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +// .value-lg{font-size:24px}.label-extra{display:block;font-style:italic;font-size:13px} +// devo: "Cache-Control: no-store\r\n" +static const char *http_style[] = { +#include "content/style.css" +}; + + +static int handle_style(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_style[0]) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_style[1], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static const char *http_script[] = { +#include "content/script.js" +}; + +static int handle_script(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_script[0]) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_script[1], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + + +static const char http_success_header[] = "HTTP/1.1 200 \r\n" + "Content-Type: text/html; charset=utf-8\r\n" + "Cache-Control: no-store\r\n" + "Transfer-Encoding: chunked\r\n" + "Connection: close\r\n" + "\r\n"; + +static const char http_redirect_header[] = "HTTP/1.1 302 \r\n" + "Location: /wificfg/\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n" + "\r\n"; + +static int handle_wificfg_redirect(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + return wificfg_write_string(s, http_redirect_header); +} + +static int handle_ipaddr_redirect(int s, char *buf, size_t len) +{ + if (wificfg_write_string(s, "HTTP/1.1 302 \r\nLocation: http://") < 0) return -1; + + struct sockaddr addr; + socklen_t addr_len = sizeof(addr); + getsockname(s, &addr, &addr_len); + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + snprintf(buf, len, "" IPSTR "/\r\n", IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr)); + if (wificfg_write_string(s, buf) < 0) return -1;; + /* Always close here - expect a new connection. */ + return wificfg_write_string(s, "Content-Length: 0\r\n" + "Connection: close\r\n" + "\r\n"); +} + +int wificfg_write_html_title(int s, char *buf, size_t len, const char *str) +{ + /* Use the hostname or AP SSID as the title prefix. */ + char *hostname = NULL; + sysparam_get_string("hostname", &hostname); + if (!hostname) { + sysparam_get_string("wifi_ap_ssid", &hostname); + } + if (hostname) { + wificfg_html_escape(hostname, buf, len); + free(hostname); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (str) { + if (wificfg_write_string_chunk(s, " ", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, str, buf, len) < 0) return -1; + } + } + + return 0; +} + +static const char *http_wificfg_content[] = { +#include "content/wificfg/index.html" +}; + +static int handle_wificfg_index(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_wificfg_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Wifi Config") < 0) return -1; + if (wificfg_write_string_chunk(s, http_wificfg_content[1], buf, len) < 0) return -1; + + char *hostname = NULL; + sysparam_get_string("hostname", &hostname); + if (hostname) { + if (wificfg_write_string_chunk(s, "
        Hostname
        ", buf, len) < 0) { + free(hostname); + return -1; + } + wificfg_html_escape(hostname, buf, len); + free(hostname); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; + } + + uint32_t chip_id = sdk_system_get_chip_id(); + snprintf(buf, len, "
        Chip ID
        %08x
        ", chip_id); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + snprintf(buf, len, "
        Uptime
        %u seconds
        ", + xTaskGetTickCount() * portTICK_PERIOD_MS / 1000); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + snprintf(buf, len, "
        Free heap
        %u bytes
        ", (int)xPortGetFreeHeapSize()); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + snprintf(buf, len, "
        Flash ID
        0x%08x
        ", sdk_spi_flash_get_id()); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + snprintf(buf, len, "
        Flash size
        %u KiB
        ", sdk_flashchip.chip_size >> 10); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, "
        LwIP version
        " LWIP_VERSION_STRING "
        ", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        FreeRTOS version
        " tskKERNEL_VERSION_NUMBER "
        ", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        Newlib version
        " _NEWLIB_VERSION "
        ", buf, len) < 0) return -1; + + enum sdk_sleep_type sleep_type = sdk_wifi_get_sleep_type(); + char *sleep_type_str = "??"; + switch (sleep_type) { + case WIFI_SLEEP_NONE: + sleep_type_str = "None"; + break; + case WIFI_SLEEP_LIGHT: + sleep_type_str = "Light"; + break; + case WIFI_SLEEP_MODEM: + sleep_type_str = "Modem"; + break; + default: + break; + } + snprintf(buf, len, "
        WiFi sleep type
        %s
        ", sleep_type_str); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + uint8_t opmode = sdk_wifi_get_opmode(); + const char *opmode_str = "??"; + switch (opmode) { + case NULL_MODE: + opmode_str = "Null"; + break; + case STATION_MODE: + opmode_str = "Station"; + break; + case SOFTAP_MODE: + opmode_str = "SoftAP"; + break; + case STATIONAP_MODE: + opmode_str = "StationAP"; + break; + default: + break; + } + snprintf(buf, len, "
        OpMode
        %s
        ", opmode_str); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (opmode > NULL_MODE) { + snprintf(buf, len, "
        WiFi channel
        %u
        ", sdk_wifi_get_channel()); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + const char *phy_mode_str = "??"; + switch (sdk_wifi_get_phy_mode()) { + case PHY_MODE_11B: + phy_mode_str = "11b"; + break; + case PHY_MODE_11G: + phy_mode_str = "11g"; + break; + case PHY_MODE_11N: + phy_mode_str = "11n"; + break; + default: + break; + } + snprintf(buf, len, "
        WiFi physical mode
        %s
        ", phy_mode_str); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (opmode == STATION_MODE || opmode == STATIONAP_MODE) { + uint8_t hwaddr[6]; + if (sdk_wifi_get_macaddr(STATION_IF, hwaddr)) { + if (wificfg_write_string_chunk(s, "
        Station MAC address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " MACSTR "
        ", MAC2STR(hwaddr)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + struct ip_info info; + if (sdk_wifi_get_ip_info(STATION_IF, &info)) { + if (wificfg_write_string_chunk(s, "
        Station IP address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.ip)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        Station netmask
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.netmask)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        Station gateway
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.gw)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + } + + if (opmode == SOFTAP_MODE || opmode == STATIONAP_MODE) { + uint8_t hwaddr[6]; + if (sdk_wifi_get_macaddr(SOFTAP_IF, hwaddr)) { + if (wificfg_write_string_chunk(s, "
        AP MAC address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " MACSTR "
        ", MAC2STR(hwaddr)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + struct ip_info info; + if (sdk_wifi_get_ip_info(SOFTAP_IF, &info)) { + if (wificfg_write_string_chunk(s, "
        AP IP address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.ip)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        AP netmask
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.netmask)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        AP gateway
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.gw)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + } + + struct sockaddr addr; + socklen_t addr_len = sizeof(addr); + getpeername(s, (struct sockaddr*)&addr, &addr_len); + + if (addr.sa_family == AF_INET) { + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR " : %u
        ", + IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wificfg_content[2], buf, len) < 0) return -1; + + char *password = NULL; + sysparam_get_string("cfg_password", &password); + if (password) { + wificfg_html_escape(password, buf, len); + free(password); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wificfg_content[3], buf, len) < 0) return -1; + + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static int handle_wificfg_index_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (content_type != HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED) { + return wificfg_write_string(s, "HTTP/1.1 400 \r\n" + "Content-Type: text/html\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n\r\n"); + } + + size_t rem = content_length; + bool valp = false; + + while (rem > 0) { + int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + form_name name = intern_form_name(buf); + + if (valp) { + int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + switch (name) { + case FORM_NAME_CFG_ENABLE: { + uint8_t enable = strtoul(buf, NULL, 10) != 0; + sysparam_set_int8("cfg_enable", enable); + break; + } + case FORM_NAME_CFG_PASSWORD: + sysparam_set_string("cfg_password", buf); + break; + default: + break; + } + } + } + + return wificfg_write_string(s, http_redirect_header); +} + +static const char *http_wifi_station_content[] = { +#include "content/wificfg/sta.html" +}; + +static int handle_wifi_station(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_wifi_station_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Wifi station") < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_station_content[1], buf, len) < 0) return -1; + + int8_t wifi_sta_enable = 1; + sysparam_get_int8("wifi_sta_enable", &wifi_sta_enable); + if (wifi_sta_enable && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_station_content[2], buf, len) < 0) return -1; + + int8_t wifi_sta_disabled_restarts = 0; + sysparam_get_int8("wifi_sta_disabled_restarts", &wifi_sta_disabled_restarts); + snprintf(buf, len, "%u", wifi_sta_disabled_restarts); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_station_content[3], buf, len) < 0) return -1; + + char *wifi_sta_ssid = NULL; + sysparam_get_string("wifi_sta_ssid", &wifi_sta_ssid); + if (wifi_sta_ssid) { + wificfg_html_escape(wifi_sta_ssid, buf, len); + free(wifi_sta_ssid); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[4], buf, len) < 0) return -1; + + char *wifi_sta_password = NULL; + sysparam_get_string("wifi_sta_password", &wifi_sta_password); + if (wifi_sta_password) { + wificfg_html_escape(wifi_sta_password, buf, len); + free(wifi_sta_password); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[5], buf, len) < 0) return -1; + + char *hostname = NULL; + sysparam_get_string("hostname", &hostname); + if (hostname) { + wificfg_html_escape(hostname, buf, len); + free(hostname); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[6], buf, len) < 0) return -1; + + int8_t wifi_sta_dhcp = 1; + sysparam_get_int8("wifi_sta_dhcp", &wifi_sta_dhcp); + if (wifi_sta_dhcp && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_station_content[7], buf, len) < 0) return -1; + if (!wifi_sta_dhcp && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_station_content[8], buf, len) < 0) return -1; + + char *wifi_sta_ip_addr = NULL; + sysparam_get_string("wifi_sta_ip_addr", &wifi_sta_ip_addr); + if (wifi_sta_ip_addr) { + wificfg_html_escape(wifi_sta_ip_addr, buf, len); + free(wifi_sta_ip_addr); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[9], buf, len) < 0) return -1; + + char *wifi_sta_netmask = NULL; + sysparam_get_string("wifi_sta_netmask", &wifi_sta_netmask); + if (wifi_sta_netmask) { + wificfg_html_escape(wifi_sta_netmask, buf, len); + free(wifi_sta_netmask); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[10], buf, len) < 0) return -1; + + char *wifi_sta_gateway = NULL; + sysparam_get_string("wifi_sta_gateway", &wifi_sta_gateway); + if (wifi_sta_gateway) { + wificfg_html_escape(wifi_sta_gateway, buf, len); + free(wifi_sta_gateway); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_station_content[11], buf, len) < 0) return -1; + + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static int handle_wifi_station_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (content_type != HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED) { + return wificfg_write_string(s, "HTTP/1.1 400 \r\n" + "Content-Type: text/html\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n\r\n"); + } + + size_t rem = content_length; + bool valp = false; + + /* Delay committing some values until all have been read. */ + bool done = false; + uint8_t sta_enable = 0; + + while (rem > 0) { + int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + form_name name = intern_form_name(buf); + + if (valp) { + int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + switch (name) { + case FORM_NAME_STA_ENABLE: { + sta_enable = strtoul(buf, NULL, 10) != 0; + break; + } + case FORM_NAME_STA_DISABLED_RESTARTS: { + uint32_t restarts = strtoul(buf, NULL, 10); + if (restarts <= 255) + sysparam_set_int8("wifi_sta_disabled_restarts", restarts); + break; + } + case FORM_NAME_STA_SSID: + sysparam_set_string("wifi_sta_ssid", buf); + break; + case FORM_NAME_STA_PASSWORD: + sysparam_set_string("wifi_sta_password", buf); + break; + case FORM_NAME_HOSTNAME: + sysparam_set_string("hostname", buf); + break; + case FORM_NAME_STA_DHCP: { + uint8_t enable = strtoul(buf, NULL, 10) != 0; + sysparam_set_int8("wifi_sta_dhcp", enable); + break; + } + case FORM_NAME_STA_IP_ADDR: + sysparam_set_string("wifi_sta_ip_addr", buf); + break; + case FORM_NAME_STA_NETMASK: + sysparam_set_string("wifi_sta_netmask", buf); + break; + case FORM_NAME_STA_GATEWAY: + sysparam_set_string("wifi_sta_gateway", buf); + break; + case FORM_NAME_DONE: + done = true; + break; + default: + break; + } + } + } + + if (done) { + sysparam_set_int8("wifi_sta_enable", sta_enable); + } + + return wificfg_write_string(s, http_redirect_header); +} + +static const char *http_wifi_ap_content[] = { +#include "content/wificfg/ap.html" +}; + +static int handle_wifi_ap(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_wifi_ap_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Wifi access point") < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[1], buf, len) < 0) return -1; + + int8_t wifi_ap_enable = 1; + sysparam_get_int8("wifi_ap_enable", &wifi_ap_enable); + if (wifi_ap_enable && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[2], buf, len) < 0) return -1; + + int8_t wifi_ap_disable_if_sta = 1; + sysparam_get_int8("wifi_ap_disable_if_sta", &wifi_ap_disable_if_sta); + if (wifi_ap_disable_if_sta && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[3], buf, len) < 0) return -1; + + int8_t wifi_ap_disabled_restarts = 0; + sysparam_get_int8("wifi_ap_disabled_restarts", &wifi_ap_disabled_restarts); + snprintf(buf, len, "%u", wifi_ap_disabled_restarts); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[4], buf, len) < 0) return -1; + + char *wifi_ap_ssid = NULL; + sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid); + if (wifi_ap_ssid) { + wificfg_html_escape(wifi_ap_ssid, buf, len); + free(wifi_ap_ssid); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[5], buf, len) < 0) return -1; + + char *wifi_ap_password = NULL; + sysparam_get_string("wifi_ap_password", &wifi_ap_password); + if (wifi_ap_password) { + wificfg_html_escape(wifi_ap_password, buf, len); + free(wifi_ap_password); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[6], buf, len) < 0) return -1; + + int8_t wifi_ap_ssid_hidden = 0; + sysparam_get_int8("wifi_ap_ssid_hidden", &wifi_ap_ssid_hidden); + if (wifi_ap_ssid_hidden && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[7], buf, len) < 0) return -1; + + int8_t wifi_ap_channel = 6; + sysparam_get_int8("wifi_ap_channel", &wifi_ap_channel); + snprintf(buf, len, "%u", wifi_ap_channel); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[8], buf, len) < 0) return -1; + + int8_t wifi_ap_authmode = 4; + sysparam_get_int8("wifi_ap_authmode", &wifi_ap_authmode); + if (wifi_ap_authmode == 0 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[9], buf, len) < 0) return -1; + if (wifi_ap_authmode == 1 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[10], buf, len) < 0) return -1; + if (wifi_ap_authmode == 2 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[11], buf, len) < 0) return -1; + if (wifi_ap_authmode == 3 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[12], buf, len) < 0) return -1; + if (wifi_ap_authmode == 4 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[13], buf, len) < 0) return -1; + + int8_t wifi_ap_max_conn = 3; + sysparam_get_int8("wifi_ap_max_conn", &wifi_ap_max_conn); + snprintf(buf, len, "%u", wifi_ap_max_conn); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[14], buf, len) < 0) return -1; + + int32_t wifi_ap_beacon_interval = 100; + sysparam_get_int32("wifi_ap_beacon_interval", &wifi_ap_beacon_interval); + snprintf(buf, len, "%u", wifi_ap_beacon_interval); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[15], buf, len) < 0) return -1; + + char *wifi_ap_ip_addr = NULL; + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + if (wifi_ap_ip_addr) { + wificfg_html_escape(wifi_ap_ip_addr, buf, len); + free(wifi_ap_ip_addr); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[16], buf, len) < 0) return -1; + + char *wifi_ap_netmask = NULL; + sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); + if (wifi_ap_netmask) { + wificfg_html_escape(wifi_ap_netmask, buf, len); + free(wifi_ap_netmask); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[17], buf, len) < 0) return -1; + + int8_t wifi_ap_dhcp_leases = 4; + sysparam_get_int8("wifi_ap_dhcp_leases", &wifi_ap_dhcp_leases); + snprintf(buf, len, "%u", wifi_ap_dhcp_leases); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[18], buf, len) < 0) return -1; + + int8_t wifi_ap_dns = 1; + sysparam_get_int8("wifi_ap_dns", &wifi_ap_dns); + if (wifi_ap_dns && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[19], buf, len) < 0) return -1; + + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static int handle_wifi_ap_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (content_type != HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED) { + return wificfg_write_string(s, "HTTP/1.1 400 \r\n" + "Content-Type: text/html\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n\r\n"); + } + + size_t rem = content_length; + bool valp = false; + + /* Delay committing some values until all have been read. */ + bool done = false; + uint8_t ap_enable = 0; + uint8_t ap_disable_if_sta = 0; + uint8_t ssid_hidden = 0; + uint8_t dns_enable = 0; + + while (rem > 0) { + int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + form_name name = intern_form_name(buf); + + if (valp) { + int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + switch (name) { + case FORM_NAME_AP_ENABLE: { + ap_enable = strtoul(buf, NULL, 10) != 0; + break; + } + case FORM_NAME_AP_DISABLE_IF_STA: { + ap_disable_if_sta = strtoul(buf, NULL, 10) != 0; + break; + } + case FORM_NAME_AP_DISABLED_RESTARTS: { + uint32_t restarts = strtoul(buf, NULL, 10); + if (restarts <= 255) + sysparam_set_int8("wifi_ap_disabled_restarts", restarts); + break; + } + case FORM_NAME_AP_SSID: + sysparam_set_string("wifi_ap_ssid", buf); + break; + case FORM_NAME_AP_PASSWORD: + sysparam_set_string("wifi_ap_password", buf); + break; + case FORM_NAME_AP_SSID_HIDDEN: { + ssid_hidden = strtoul(buf, NULL, 10) != 0; + break; + } + case FORM_NAME_AP_CHANNEL: { + uint32_t channel = strtoul(buf, NULL, 10); + if (channel >= 1 && channel <= 14) + sysparam_set_int8("wifi_ap_channel", channel); + break; + } + case FORM_NAME_AP_AUTHMODE: { + uint32_t mode = strtoul(buf, NULL, 10); + if (mode >= 0 && mode <= 5) + sysparam_set_int8("wifi_ap_authmode", mode); + break; + } + case FORM_NAME_AP_MAX_CONN: { + uint32_t max_conn = strtoul(buf, NULL, 10); + if (max_conn >= 0 && max_conn <= 8) + sysparam_set_int8("wifi_ap_max_conn", max_conn); + break; + } + case FORM_NAME_AP_BEACON_INTERVAL: { + uint32_t interval = strtoul(buf, NULL, 10); + if (interval >= 0 && interval <= 10000) + sysparam_set_int32("wifi_ap_beacon_interval", interval); + break; + } + case FORM_NAME_AP_IP_ADDR: + sysparam_set_string("wifi_ap_ip_addr", buf); + break; + case FORM_NAME_AP_NETMASK: + sysparam_set_string("wifi_ap_netmask", buf); + break; + case FORM_NAME_AP_DHCP_LEASES: { + uint32_t leases = strtoul(buf, NULL, 10); + if (leases >= 0 && leases <= 16) + sysparam_set_int8("wifi_ap_dhcp_leases", leases); + break; + } + case FORM_NAME_AP_DNS: { + dns_enable = strtoul(buf, NULL, 10) != 0; + break; + } + case FORM_NAME_DONE: + done = true; + break; + default: + break; + } + } + } + + if (done) { + sysparam_set_int8("wifi_ap_enable", ap_enable); + sysparam_set_int8("wifi_ap_disable_if_sta", ap_disable_if_sta); + sysparam_set_int8("wifi_ap_ssid_hidden", ssid_hidden); + sysparam_set_int8("wifi_ap_dns", dns_enable); + } + + return wificfg_write_string(s, http_redirect_header); +} + +static bool got_sta_connect = false; +void wificfg_got_sta_connect() +{ + /* Only process this once, to not continue adjusting the settings. */ + if (got_sta_connect) { + return; + } + got_sta_connect = true; + + /* Skip if AP not even enabled. */ + int8_t wifi_ap_enable = 1; + sysparam_get_int8("wifi_ap_enable", &wifi_ap_enable); + if (!wifi_ap_enable) { + return; + } + + int8_t wifi_ap_disable_if_sta = 1; + sysparam_get_int8("wifi_ap_disable_if_sta", &wifi_ap_disable_if_sta); + + if (wifi_ap_disable_if_sta) { + int8_t wifi_ap_disabled_restarts = 0; + sysparam_get_int8("wifi_ap_disabled_restarts", &wifi_ap_disabled_restarts); + if (wifi_ap_disabled_restarts == 0) { + sysparam_set_int8("wifi_ap_disabled_restarts", 1); + } + } +} + +static int handle_restart_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + wificfg_write_string(s, http_redirect_header); + close(s); + vTaskDelay(2000 / portTICK_PERIOD_MS); + sdk_system_restart(); + return 0; +} + +static int handle_erase_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + wificfg_write_string(s, http_redirect_header); + close(s); + vTaskDelay(2000 / portTICK_PERIOD_MS); + + /* + * Erase the area starting from the sysparams to the end of the flash. + * Configuration information may be in the sdk parameter area too, which is + * in these sectors. + */ + uint32_t num_sectors = 5 + DEFAULT_SYSPARAM_SECTORS; + uint32_t start = sdk_flashchip.chip_size - num_sectors * sdk_flashchip.sector_size; + uint32_t i; + vPortEnterCritical(); + for (i = 0; i < num_sectors; i++) { + spiflash_erase_sector(start + i * sdk_flashchip.sector_size); + } + sdk_system_restart(); + return 0; +} + +/* Minimal not-found response. */ +static const char not_found_header[] = "HTTP/1.1 404 \r\n" + "Content-Type: text/html; charset=utf-8\r\n" + "Cache-Control: no-store\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n" + "\r\n"; + +static const char *http_wificfg_challenge_content[] = { +#include "content/challenge.html" +}; + +static int handle_wificfg_challenge(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_wificfg_challenge_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Challenge") < 0) return -1; + if (wificfg_write_string_chunk(s, http_wificfg_challenge_content[1], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} + +static int handle_wificfg_challenge_post(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (content_type != HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED) { + return wificfg_write_string(s, "HTTP/1.1 400 \r\n" + "Content-Type: text/html\r\n" + "Content-Length: 0\r\n" + "Connection: close\r\n\r\n"); + } + size_t rem = content_length; + bool valp = false; + + int8_t enable = 1; + sysparam_get_int8("cfg_enable", &enable); + char *password = NULL; + sysparam_get_string("cfg_password", &password); + + if (!enable && password && strlen(password)) { + while (rem > 0) { + int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + form_name name = intern_form_name(buf); + + if (valp) { + int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + if (r < 0) { + break; + } + + wificfg_form_url_decode(buf); + + switch (name) { + case FORM_NAME_CFG_PASSWORD: + if (strcmp(password, buf) == 0) + sysparam_set_int8("cfg_enable", 1); + break; + default: + break; + } + } + } + } + + if (password) + free(password); + + return wificfg_write_string(s, http_redirect_header); +} + +#ifdef configUSE_TRACE_FACILITY +static const char *http_tasks_content[] = { +#include "content/tasks.html" +}; + +static int handle_tasks(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len) +{ + if (wificfg_write_string(s, http_success_header) < 0) return -1; + + if (method != HTTP_METHOD_HEAD) { + if (wificfg_write_string_chunk(s, http_tasks_content[0], buf, len) < 0) return -1; + if (wificfg_write_html_title(s, buf, len, "Tasks") < 0) return -1; + if (wificfg_write_string_chunk(s, http_tasks_content[1], buf, len) < 0) return -1; + int num_tasks = uxTaskGetNumberOfTasks(); + TaskStatus_t *task_status = pvPortMalloc(num_tasks * sizeof(TaskStatus_t)); + + if (task_status != NULL) { + int i; + + if (wificfg_write_string_chunk(s, "", buf, len) < 0) { + free(task_status); + return -1; + } + + /* Generate the (binary) data. */ + num_tasks = uxTaskGetSystemState(task_status, num_tasks, NULL); + + /* Create a human readable table from the binary data. */ + for(i = 0; i < num_tasks; i++) { + char cStatus; + switch(task_status[i].eCurrentState) { + case eRunning: cStatus = '*'; break; + case eReady: cStatus = 'R'; break; + case eBlocked: cStatus = 'B'; break; + case eSuspended: cStatus = 'S'; break; + case eDeleted: cStatus = 'D'; break; + default: cStatus = '?'; break; + } + + snprintf(buf, len, "", task_status[i].pcTaskName); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) { + free(task_status); + return -1; + } + snprintf(buf, len, "", + (unsigned int)task_status[i].xTaskNumber, + cStatus); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) { + free(task_status); + return -1; + } + snprintf(buf, len, "", + (unsigned int)task_status[i].uxCurrentPriority, + (unsigned int)task_status[i].uxBasePriority); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) { + free(task_status); + return -1; + } + snprintf(buf, len, "", + (unsigned int)task_status[i].ulRunTimeCounter, + (unsigned int)task_status[i].usStackHighWaterMark); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) { + free(task_status); + return -1; + } + } + + free(task_status); + + if (wificfg_write_string_chunk(s, "
        Task nameTask numberStatusPriorityBase priorityRuntimeStack high-water
        %s%u%c%u%u%u%u
        ", buf, len) < 0) return -1; + } + + if (wificfg_write_string_chunk(s, http_tasks_content[2], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; + } + return 0; +} +#endif /* configUSE_TRACE_FACILITY */ + +static const wificfg_dispatch wificfg_dispatch_list[] = { + {"/favicon.ico", HTTP_METHOD_GET, handle_favicon, false}, + {"/style.css", HTTP_METHOD_GET, handle_style, false}, + {"/script.js", HTTP_METHOD_GET, handle_script, false}, + {"/", HTTP_METHOD_GET, handle_wificfg_redirect, false}, + {"/index.html", HTTP_METHOD_GET, handle_wificfg_redirect, false}, + {"/wificfg/", HTTP_METHOD_GET, handle_wificfg_index, true}, + {"/wificfg/", HTTP_METHOD_POST, handle_wificfg_index_post, true}, + {"/wificfg/sta.html", HTTP_METHOD_GET, handle_wifi_station, true}, + {"/wificfg/sta.html", HTTP_METHOD_POST, handle_wifi_station_post, true}, + {"/wificfg/ap.html", HTTP_METHOD_GET, handle_wifi_ap, true}, + {"/wificfg/ap.html", HTTP_METHOD_POST, handle_wifi_ap_post, true}, + {"/challenge.html", HTTP_METHOD_GET, handle_wificfg_challenge, false}, + {"/challenge.html", HTTP_METHOD_POST, handle_wificfg_challenge_post, false}, + {"/wificfg/restart.html", HTTP_METHOD_POST, handle_restart_post, true}, + {"/wificfg/erase.html", HTTP_METHOD_POST, handle_erase_post, true}, +#ifdef configUSE_TRACE_FACILITY + {"/tasks", HTTP_METHOD_GET, handle_tasks, false}, + {"/tasks.html", HTTP_METHOD_GET, handle_tasks, false}, +#endif /* configUSE_TRACE_FACILITY */ + {NULL, HTTP_METHOD_ANY, NULL} +}; + +static const wificfg_dispatch wificfg_challenge_dispatch = {"/challenge.html", HTTP_METHOD_GET, handle_wificfg_challenge, false}; + +typedef struct { + int32_t port; + /* + * Two dispatch lists. First is used for the config pages. Second + * can be used to extend the pages handled in app code. + */ + const wificfg_dispatch *wificfg_dispatch; + const wificfg_dispatch *dispatch; +} server_params; + +/* + * The http server uses a single thread to service all requests, one request at + * a time, to keep peak resource usage to a minimum. Keeping connections open + * would cause delays switching between connections. Thus it closes the + * connection after each response. + * + * To help avoid the resource usage of connections in the time-wait state, the + * server asks the client to initiate the connection close and waits a short + * period for it to do so before closing the connection itself. + * + * The response length is always well defined, either sending the content-length + * header or using chunk transfer encoding. Thus the client knows the end of + * responses without the server having to close the connection, and this allows + * the client to close the connection. + * + * Always closing the connection also allows the connection-close header to be + * statically bundled in with the response. + */ +static void server_task(void *pvParameters) +{ + server_params *params = pvParameters; + + struct sockaddr_in serv_addr; + int listenfd = socket(AF_INET, SOCK_STREAM, 0); + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); + serv_addr.sin_port = htons(params->port); + bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); + listen(listenfd, 2); + + for (;;) { + int s = accept(listenfd, (struct sockaddr *)NULL, (socklen_t *)NULL); + if (s >= 0) { + const struct timeval timeout = { 10, 0 }; /* 10 second timeout */ + setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); + setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)); + + /* Buffer for reading the request and headers and the post method + * names and values. Also used for building dynamically generated + * responses. */ + char buf[HTTP_BUFFER_SIZE]; + + for (;;) { + /* Read the request line */ + int request_line_size = read_crlf_line(s, buf, sizeof(buf)); + if (request_line_size < 5) { + break; + } + + /* Parse the http method, path, and protocol version. */ + char *method_end = skip_to_whitespace(buf); + char *path_string = skip_whitespace(method_end); + *method_end = 0; + wificfg_method method = intern_http_method(buf); + char *path_end = skip_to_whitespace(path_string); + *path_end = 0; + + /* Dispatch to separate functions to handle the requests. */ + const wificfg_dispatch *match = NULL; + const wificfg_dispatch *dispatch; + + /* + * Check the optional application supplied dispatch table + * first to allow overriding the wifi config paths. + */ + if (params->dispatch) { + for (dispatch = params->dispatch; dispatch->path != NULL; dispatch++) { + if (strcmp(path_string, dispatch->path) == 0 && + (dispatch->method == HTTP_METHOD_ANY || + method == dispatch->method)) { + match = dispatch; + break; + } + } + } + + if (!match) { + for (dispatch = params->wificfg_dispatch; dispatch->path != NULL; dispatch++) { + if (strcmp(path_string, dispatch->path) == 0 && + (dispatch->method == HTTP_METHOD_ANY || + method == dispatch->method)) { + match = dispatch; + break; + } + } + } + + if (match && match->secure) { + /* A secure url so check if enabled. */ + int8_t enable = 1; + sysparam_get_int8("cfg_enable", &enable); + if (!enable) { + /* Is there a recovery password? */ + char *password = NULL; + sysparam_get_string("cfg_password", &password); + if (password && strlen(password) > 0) { + match = &wificfg_challenge_dispatch; + } else { + match = NULL; + } + if (password) + free(password); + } + } + + /* Read the headers, noting some of interest. */ + wificfg_content_type content_type = HTTP_CONTENT_TYPE_OTHER; + bool connection_close = false; + bool hostp = false; + uint32_t host = IPADDR_NONE; + long content_length = 0; + + for (;;) { + int header_length = read_crlf_line(s, buf, sizeof(buf)); + if (header_length <= 0) + break; + + char *name_end = buf; + for (; ; name_end++) { + char c = *name_end; + if (!c || c == ':') + break; + } + if (*name_end == ':') { + char *value = name_end + 1; + *name_end = 0; + http_header header = intern_http_header(buf); + value = skip_whitespace(value); + switch (header) { + case HTTP_HEADER_HOST: + hostp = true; + host = ipaddr_addr(value); + break; + case HTTP_HEADER_CONTENT_LENGTH: + content_length = strtoul(value, NULL, 10); + break; + case HTTP_HEADER_CONTENT_TYPE: + content_type = intern_http_content_type(value); + break; + case HTTP_HEADER_CONNECTION: + connection_close = strcmp(value, "close") == 0; + break; + default: + break; + } + } + } + + if (hostp && host == IPADDR_NONE) { + /* Redirect to an IP address. */ + handle_ipaddr_redirect(s, buf, sizeof(buf)); + /* Close the connection. */ + break; + } else if (match) { + if ((*match->handler)(s, method, content_length, content_type, buf, sizeof(buf)) < 0) break; + } else { + if (wificfg_write_string(s, not_found_header) < 0) break; + } + + /* + * At this point the client is expected to close the connection, + * so wait briefly for it to do so before giving up. While here + * consume any excess input to avoid a connection reset - this + * can happen if the handler aborted early. + */ + const struct timeval timeout1 = { 1, 0 }; /* 1 second timeout */ + setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout1, sizeof(timeout1)); + size_t len; + for (len = 0; len < 4096; len++) { + char c; + int res = read(s, &c, 1); + if (res != 1) break; + } + + if (connection_close) + break; + + /* Close anyway. */ + break; + } + + close(s); + + if (sdk_wifi_station_get_connect_status() == STATION_GOT_IP) { + wificfg_got_sta_connect(); + } + } + } +} + + +static void dns_task(void *pvParameters) +{ + char *wifi_ap_ip_addr = NULL; + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + if (!wifi_ap_ip_addr) { + printf("dns: no ip address\n"); + vTaskDelete(NULL); + } + ip4_addr_t server_addr; + server_addr.addr = ipaddr_addr(wifi_ap_ip_addr); + + struct sockaddr_in serv_addr; + int fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); + serv_addr.sin_port = htons(53); + bind(fd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); + + const struct ifreq ifreq0 = { "en0" }; + const struct ifreq ifreq1 = { "en1" }; + lwip_setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, + sdk_wifi_get_opmode() == STATIONAP_MODE ? &ifreq1 : &ifreq0, + sizeof(ifreq0)); + + for (;;) { + char buffer[96]; + struct sockaddr src_addr; + socklen_t src_addr_len = sizeof(src_addr); + size_t count = recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&src_addr, &src_addr_len); + + /* Drop messages that are too large to send a response in the buffer */ + if (count > 0 && count <= sizeof(buffer) - 16 && src_addr.sa_family == AF_INET) { + size_t qname_len = strlen(buffer + 12) + 1; + uint32_t reply_len = 2 + 10 + qname_len + 16 + 4; + + char *head = buffer + 2; + *head++ = 0x80; // Flags + *head++ = 0x00; + *head++ = 0x00; // Q count + *head++ = 0x01; + *head++ = 0x00; // A count + *head++ = 0x01; + *head++ = 0x00; // Auth count + *head++ = 0x00; + *head++ = 0x00; // Add count + *head++ = 0x00; + head += qname_len; + *head++ = 0x00; // Q type + *head++ = 0x01; + *head++ = 0x00; // Q class + *head++ = 0x01; + *head++ = 0xC0; // LBL offs + *head++ = 0x0C; + *head++ = 0x00; // Type + *head++ = 0x01; + *head++ = 0x00; // Class + *head++ = 0x01; + *head++ = 0x00; // TTL + *head++ = 0x00; + *head++ = 0x00; + *head++ = 0x78; + *head++ = 0x00; // RD len + *head++ = 0x04; + *head++ = ip4_addr1(&server_addr); + *head++ = ip4_addr2(&server_addr); + *head++ = ip4_addr3(&server_addr); + *head++ = ip4_addr4(&server_addr); + + sendto(fd, buffer, reply_len, 0, &src_addr, src_addr_len); + } + } +} + + +void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) +{ + char *wifi_sta_ssid = NULL; + char *wifi_sta_password = NULL; + char *wifi_ap_ssid = NULL; + char *wifi_ap_password = NULL; + + uint32_t base_addr; + uint32_t num_sectors; + if (sysparam_get_info(&base_addr, &num_sectors) != SYSPARAM_OK) { + printf("Warning: WiFi config, sysparam not initialized\n"); + return; + } + + sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid); + sysparam_get_string("wifi_ap_password", &wifi_ap_password); + sysparam_get_string("wifi_sta_ssid", &wifi_sta_ssid); + sysparam_get_string("wifi_sta_password", &wifi_sta_password); + + int8_t wifi_sta_enable = 1; + int8_t wifi_ap_enable = 1; + sysparam_get_int8("wifi_sta_enable", &wifi_sta_enable); + sysparam_get_int8("wifi_ap_enable", &wifi_ap_enable); + + int8_t wifi_sta_disabled_restarts = 0; + sysparam_get_int8("wifi_sta_disabled_restarts", &wifi_sta_disabled_restarts); + if (wifi_sta_disabled_restarts > 0) { + wifi_sta_enable = 0; + wifi_sta_disabled_restarts--; + sysparam_set_int8("wifi_sta_disabled_restarts", wifi_sta_disabled_restarts); + } + + int8_t wifi_ap_disabled_restarts = 0; + sysparam_get_int8("wifi_ap_disabled_restarts", &wifi_ap_disabled_restarts); + if (wifi_ap_disabled_restarts > 0) { + wifi_ap_enable = 0; + wifi_ap_disabled_restarts--; + sysparam_set_int8("wifi_ap_disabled_restarts", wifi_ap_disabled_restarts); + } + + /* Validate the configuration. */ + + if (wifi_sta_enable && (!wifi_sta_ssid || !wifi_sta_password || + strlen(wifi_sta_ssid) < 1 || + strlen(wifi_sta_ssid) > 32 || + !wifi_sta_password || + strlen(wifi_sta_password) < 8 || + strlen(wifi_sta_password) >= 64)) { + wifi_sta_enable = 0; + } + + if (wifi_ap_enable) { + /* Default AP ssid and password. */ + if (!wifi_ap_ssid && wificfg_default_ssid) { + uint8_t macaddr[6]; + char ssid[32]; + sdk_wifi_get_macaddr(1, macaddr); + snprintf(ssid, sizeof(ssid), wificfg_default_ssid, macaddr[3], + macaddr[4], macaddr[5]); + sysparam_set_string("wifi_ap_ssid", ssid); + sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid); + + if (!wifi_ap_password && wificfg_default_password) { + sysparam_set_string("wifi_ap_password", wificfg_default_password); + sysparam_get_string("wifi_ap_password", &wifi_ap_password); + } + } + + /* If the ssid and password are not valid then disable the AP interface. */ + if (!wifi_ap_ssid || strlen(wifi_ap_ssid) < 1 || strlen(wifi_ap_ssid) >= 32 || + !wifi_ap_password || strlen(wifi_ap_ssid) < 8 || strlen(wifi_ap_password) >= 64) { + wifi_ap_enable = 0; + } + } + + int8_t wifi_mode = NULL_MODE; + if (wifi_sta_enable && wifi_ap_enable) + wifi_mode = STATIONAP_MODE; + else if (wifi_sta_enable) + wifi_mode = STATION_MODE; + else + wifi_mode = SOFTAP_MODE; + sdk_wifi_set_opmode(wifi_mode); + + if (wifi_sta_enable) { + /* Default a hostname. */ + char *hostname = NULL; + sysparam_get_string("hostname", &hostname); + if (!hostname && wificfg_default_hostname) { + uint8_t macaddr[6]; + char name[32]; + sdk_wifi_get_macaddr(1, macaddr); + snprintf(name, sizeof(name), wificfg_default_hostname, macaddr[3], + macaddr[4], macaddr[5]); + sysparam_set_string("hostname", name); + } + if (hostname) { + free(hostname); + } + + struct sdk_station_config config; + strcpy((char *)config.ssid, wifi_sta_ssid); + strcpy((char *)config.password, wifi_sta_password); + config.bssid_set = 0; + + int8_t wifi_sta_dhcp = 1; + sysparam_get_int8("wifi_sta_dhcp", &wifi_sta_dhcp); + + if (!wifi_sta_dhcp) { + char *wifi_sta_ip_addr = NULL; + char *wifi_sta_netmask = NULL; + char *wifi_sta_gateway = NULL; + sysparam_get_string("wifi_sta_ip_addr", &wifi_sta_ip_addr); + sysparam_get_string("wifi_sta_netmask", &wifi_sta_netmask); + sysparam_get_string("wifi_sta_gateway", &wifi_sta_gateway); + + if (wifi_sta_ip_addr && strlen(wifi_sta_ip_addr) > 4 && + wifi_sta_netmask && strlen(wifi_sta_netmask) > 4 && + wifi_sta_gateway && strlen(wifi_sta_gateway) > 4) { + sdk_wifi_station_dhcpc_stop(); + struct ip_info info; + memset(&info, 0x0, sizeof(info)); + info.ip.addr = ipaddr_addr(wifi_sta_ip_addr); + info.netmask.addr = ipaddr_addr(wifi_sta_netmask); + info.gw.addr = ipaddr_addr(wifi_sta_gateway); + sdk_wifi_set_ip_info(STATION_IF, &info); + } + if (wifi_sta_ip_addr) free(wifi_sta_ip_addr); + if (wifi_sta_netmask) free(wifi_sta_netmask); + if (wifi_sta_gateway) free(wifi_sta_gateway); + } + + sdk_wifi_station_set_config(&config); + } + + if (wifi_ap_enable) { + /* Read and validate paramenters. */ + int8_t wifi_ap_ssid_hidden = 0; + sysparam_get_int8("wifi_ap_ssid_hidden", &wifi_ap_ssid_hidden); + if (wifi_ap_ssid_hidden < 0 || wifi_ap_ssid_hidden > 1) + wifi_ap_ssid_hidden = 1; + + int8_t wifi_ap_channel = 6; + sysparam_get_int8("wifi_ap_channel", &wifi_ap_channel); + /* Hack, disallow channel 1 here as it is not working on multiple + * devices. It seems to only work in STATIONAP mode when connected, but + * and not if the station is still scanning. */ + if (wifi_ap_channel < 2) { + wifi_ap_channel = 2; + } + /* AU does not allow channels above 13, although 14 works. */ + if (wifi_ap_channel > 13) { + wifi_ap_channel = 13; + } +#if 0 + /* US does not allow channels above 11, although they work. */ + if (wifi_ap_channel > 11) { + wifi_ap_channel = 11; + } +#endif + if (wifi_ap_channel < 1 || wifi_ap_channel > 14) { + wifi_ap_channel = 6; + } + + int8_t wifi_ap_authmode = AUTH_WPA_WPA2_PSK; + sysparam_get_int8("wifi_ap_authmode", &wifi_ap_authmode); + if (wifi_ap_authmode < AUTH_OPEN || wifi_ap_authmode > AUTH_MAX) + wifi_ap_authmode = AUTH_WPA_WPA2_PSK; + + int8_t wifi_ap_max_conn = 3; + sysparam_get_int8("wifi_ap_max_conn", &wifi_ap_max_conn); + if (wifi_ap_max_conn < 1 || wifi_ap_max_conn > 8) + wifi_ap_max_conn = 3; + + int32_t wifi_ap_beacon_interval = 100; + sysparam_get_int32("wifi_ap_beacon_interval", &wifi_ap_beacon_interval); + if (wifi_ap_beacon_interval < 0 || wifi_ap_beacon_interval > 1000) + wifi_ap_beacon_interval = 100; + + /* Default AP IP address and netmask. */ + char *wifi_ap_ip_addr = NULL; + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + if (!wifi_ap_ip_addr) { + sysparam_set_string("wifi_ap_ip_addr", "172.16.0.1"); + sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); + } + char *wifi_ap_netmask = NULL; + sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); + if (!wifi_ap_netmask) { + sysparam_set_string("wifi_ap_netmask", "255.255.0.0"); + sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); + } + + if (strlen(wifi_ap_ip_addr) >= 7 && strlen(wifi_ap_netmask) >= 7) { + struct ip_info ap_ip; + ap_ip.ip.addr = ipaddr_addr(wifi_ap_ip_addr); + ap_ip.netmask.addr = ipaddr_addr(wifi_ap_netmask); + IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); + sdk_wifi_set_ip_info(1, &ap_ip); + + struct sdk_softap_config ap_config = { + .ssid_hidden = wifi_ap_ssid_hidden, + .channel = wifi_ap_channel, + .authmode = wifi_ap_authmode, + .max_connection = wifi_ap_max_conn, + .beacon_interval = wifi_ap_beacon_interval, + }; + strcpy((char *)ap_config.ssid, wifi_ap_ssid); + ap_config.ssid_len = strlen(wifi_ap_ssid); + strcpy((char *)ap_config.password, wifi_ap_password); + sdk_wifi_softap_set_config(&ap_config); + + int8_t wifi_ap_dhcp_leases = 4; + sysparam_get_int8("wifi_ap_dhcp_leases", &wifi_ap_dhcp_leases); + + if (wifi_ap_dhcp_leases) { + ip4_addr_t first_client_ip; + first_client_ip.addr = ap_ip.ip.addr + htonl(1); + + int8_t wifi_ap_dns = 1; + sysparam_get_int8("wifi_ap_dns", &wifi_ap_dns); + if (wifi_ap_dns < 0 || wifi_ap_dns > 1) + wifi_ap_dns = 1; + + dhcpserver_start(&first_client_ip, wifi_ap_dhcp_leases); + dhcpserver_set_router(&ap_ip.ip); + if (wifi_ap_dns) { + dhcpserver_set_dns(&ap_ip.ip); + xTaskCreate(dns_task, "WiFi Cfg DNS", 384, NULL, 2, NULL); + } + } + } + + free(wifi_ap_ip_addr); + free(wifi_ap_netmask); + } + + if (wifi_sta_ssid) free(wifi_sta_ssid); + if (wifi_sta_password) free(wifi_sta_password); + if (wifi_ap_ssid) free(wifi_ap_ssid); + if (wifi_ap_password) free(wifi_ap_password); + + server_params *params = malloc(sizeof(server_params)); + params->port = port; + params->wificfg_dispatch = wificfg_dispatch_list; + params->dispatch = dispatch; + + xTaskCreate(server_task, "WiFi Cfg HTTP", 464, params, 2, NULL); +} diff --git a/extras/wificfg/wificfg.h b/extras/wificfg/wificfg.h new file mode 100644 index 0000000..705b2f6 --- /dev/null +++ b/extras/wificfg/wificfg.h @@ -0,0 +1,137 @@ +/* + * WiFi configuration via a simple web server. + * + * Copyright (C) 2016 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#ifndef __WIFICFG_H__ +#define __WIFICFG_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Printf format used to initialize a default AP ssid. It is passed the last + * three bytes of the mac address. This may be NULL to not default the ssid, + * but the AP network will not run without a ssid. + */ +extern char *wificfg_default_ssid; + +/* + * A default password for the AP interface. This may be NULL to not default the + * password, but the AP network will not run without a password. The minimum + * length is 8 characters. + */ +extern char *wificfg_default_password; + +/* + * A default hostname printf format string. This may be NULL to not default the + * hostname. + */ +extern char *wificfg_default_hostname; + +/* + * The web server parses the http method string in these enums. The ANY method + * is only use for dispatch. The method enum is passed to the handler functions. + */ +typedef enum { + HTTP_METHOD_GET, + HTTP_METHOD_POST, + HTTP_METHOD_HEAD, + HTTP_METHOD_OTHER, + HTTP_METHOD_ANY, +} wificfg_method; + +/* + * The web server parses these content-type header values. This is passed to the + * dispatch function. + */ +typedef enum { + HTTP_CONTENT_TYPE_WWW_FORM_URLENCODED, + HTTP_CONTENT_TYPE_OTHER +} wificfg_content_type; + +/* + * The function signature for the http server request handler functions. + * + * The buffer, with its length, is usable by the handler. + */ +typedef int (* wificfg_handler)(int s, wificfg_method method, + uint32_t content_length, + wificfg_content_type content_type, + char *buf, size_t len); + +typedef struct { + const char *path; + wificfg_method method; + wificfg_handler handler; + bool secure; +} wificfg_dispatch; + + +/* + * Start the Wifi Configuration http server task. The IP port number + * and a path dispatch list are needed. The dispatch list can not be + * stack allocated as it is passed to another task. + */ +void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch); + +/* + * Support for reading a form name or value from the socket. The name or value + * is truncated to the buffer length. The number of characters read is limited + * to the remainder which is updated. The 'valp' flag is set if a value follows. + */ +int wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len); + +/* Support for form url-encoding decoder. */ +void wificfg_form_url_decode(char *string); + +/* Support for html-escaping of form values. */ +void wificfg_html_escape(char *string, char *buf, size_t len); + +/* Support for writing a string in a response. */ +int wificfg_write_string(int s, const char *str); + +/* Support for writing a string in a response, with chunk transfer encoding. + * An optional buffer may be supplied to use to construct a chunk with the + * header and trailer, reducing the number of write() calls, and the str may be + * at the start of this buffer. + */ +int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len); + +/* Write a chunk transfer encoding end marker. */ +int wificfg_write_chunk_end(int s); + +/* Write a chunk offset 4 bytes into the buffer. */ +int wificfg_write_buffer_chunk(int s, char *buf); + +/* Write a html title meta data, using the hostname or AP SSI. */ +int wificfg_write_html_title(int s, char *buf, size_t len, const char *str); + +/* Callback to notify the wificfg logic that a station connection has been + * successfully established. It might use this to disable the AP interface after + * a restart. + */ +void wificfg_got_sta_connect(void); + +#ifdef __cplusplus +} +#endif + +#endif // __WIFICFG_H__ From 326708c9038db2509e1375658be2d3608075f240 Mon Sep 17 00:00:00 2001 From: sheinz Date: Thu, 17 Nov 2016 01:49:27 +0200 Subject: [PATCH 192/349] Reverse engineered ets_timers.o Switch from FreeRTOS queue to task notification. Removed unknown/unused code. Rename sdk_ets_handler_isr to process_pending_timers Add function for microseconds Simplify time to ticks conversion --- open_esplibs/include/open_esplibs.h | 3 + open_esplibs/libmain/ets_timer.c | 317 ++++++++++++++++++++++++++++ 2 files changed, 320 insertions(+) create mode 100644 open_esplibs/libmain/ets_timer.c diff --git a/open_esplibs/include/open_esplibs.h b/open_esplibs/include/open_esplibs.h index 8db78c5..bcbbcd4 100644 --- a/open_esplibs/include/open_esplibs.h +++ b/open_esplibs/include/open_esplibs.h @@ -39,6 +39,9 @@ #ifndef OPEN_LIBMAIN_ETS_TIMER #define OPEN_LIBMAIN_ETS_TIMER (OPEN_LIBMAIN) #endif +#ifndef OPEN_LIBMAIN_ETS_TIMER +#define OPEN_LIBMAIN_ETS_TIMER (OPEN_LIBMAIN) +#endif #ifndef OPEN_LIBNET80211 #define OPEN_LIBNET80211 (OPEN_ESPLIBS) diff --git a/open_esplibs/libmain/ets_timer.c b/open_esplibs/libmain/ets_timer.c new file mode 100644 index 0000000..27a74ca --- /dev/null +++ b/open_esplibs/libmain/ets_timer.c @@ -0,0 +1,317 @@ +/** + * Recreated Espressif libmain ets_timer.o contents. + * + * Copyright (C) 2015 Espressif Systems. Derived from MIT Licensed SDK libraries. + * BSD Licensed as described in the file LICENSE + * + * Copyright (c) 2016 sheinz (https://github.com/sheinz) + * + * This module seems to be adapted from NONOS SDK by Espressif to fit into + * RTOS SDK. Function sdk_ets_timer_handler_isr is no longer an ISR handler + * but still holds its name. Espressif just added a task that receives events + * from the real FRC2 timer ISR handler and calls former ISR handler. + * So, timer callbacks are called from the task context rather than an interrupt. + * + * Modifications from the original reverse engineered version: + * - FreeRTOS queue is replaced with Task notifications. + * - Removed unknown queue length monitoring and parameters allocation. + * - Removed unused debug variables + * - xTaskGenericCreate is replaced with xTaskCreate + * - simplified time to ticks conversion (simply multiply by 5) + * + * This timer should be used with caution together with other tasks. As the + * timer callback is executed within timer task context, access to data that + * other tasks accessing should be protected. + */ +#include "open_esplibs.h" + +#if OPEN_LIBMAIN_ETS_TIMER + +#include "open_esplibs.h" +#include +#include +#include +#include +#include +#include +#include + +typedef void ets_timer_func_t(void *); + +/** + * This structure is used for both timers: ets_timer.c and timer.c + */ +typedef struct ets_timer_st { + struct ets_timer_st *next; + TimerHandle_t timer_handle; // not used in ets_timer.c + uint32_t fire_ticks; // FRC2 timer value when timer should fire + uint32_t period_ticks; // timer value in FRC2 ticks for rpeating timers + ets_timer_func_t *callback; + bool repeat; // not used in ets_timer.c + void *timer_arg; +} ets_timer_t; + +/** + * Special values of ets_timer_t::next field + */ +#define ETS_TIMER_NOT_ARMED (ets_timer_t*)(0xffffffff) +#define ETS_TIMER_LIST_END (ets_timer_t*)(0) + +/** + * Linked list of timers + */ +static ets_timer_t* timer_list = 0; + +static TaskHandle_t task_handle = NULL; + +void sdk_ets_timer_setfn(ets_timer_t *timer, ets_timer_func_t *func, void *parg) +{ + timer->callback = func; + timer->timer_arg = parg; + timer->fire_ticks = 0; + timer->period_ticks = 0; + timer->next = ETS_TIMER_NOT_ARMED; +} + +/** + * .Lfunc004 + */ +static inline void set_alarm_value(uint32_t value) +{ + TIMER_FRC2.ALARM = value; +} + +/** + * .Lfunc005 + * + * Set timer alarm and make sure the alarm is set in the future + * and will not be missed by the timer. + */ +static void set_alarm(uint32_t ticks) +{ + uint32_t curr_time = TIMER_FRC2.COUNT; + int32_t delta = (int32_t)ticks - curr_time; + if ((delta - 40) < 1) { + if (delta < 1) { + set_alarm_value(curr_time + 40); + } else { + set_alarm_value(ticks + 44); + } + } else { + set_alarm_value(ticks); + } +} + +/** + * .Lfunc006 + * + * Pending timer list example: + * + * | Timer: | T0 | T1 | T2 | T3 | + * |-------------|----|----|----|----| + * | fire_ticks: | 10 | 20 | 30 | 40 | + * | next: | T1 | T2 | T3 | 0 | + * + * + * For example we need to add a timer that should fire at 25 ticks: + * + * | Timer: | T0 | T1 | new | T2 | T3 | + * |-------------|----|-----|-----|----|----| + * | fire_ticks: | 10 | 20 | 25 | 30 | 40 | + * | next: | T1 | new | T2 | T3 | 0 | + * + * We squeeze the timer into the list so the list will always remain sorted + * + * Note: if add the same timer twice the system halts +*/ +static void add_pending_timer(uint32_t ticks, ets_timer_t *timer) +{ + ets_timer_t *prev = 0; + ets_timer_t *curr = timer_list; + while (curr) { + if (((int32_t)ticks - (int32_t)curr->fire_ticks) < 1) { + // found a timer that should fire later + // so our timer should fire earlier + break; + } + prev = curr; + curr = curr->next; + } + + timer->next = curr; + timer->fire_ticks = ticks; + + if (prev != 0) { + prev->next = timer; + } else { + // Our timer is the first in the line to fire + timer_list = timer; + set_alarm(ticks); + } + + // This situation might happen if adding the same timer twice + if (timer == timer->next) { + // This seems like an error: %s is used for line number + // In the recent SDK Espressif fixed the format to "%s %u\n" + printf("%s %s \n", "ets_timer.c", (char*)209); + while (1); + } +} + +/** + * In the Espressif SDK 0.9.9 if try to arm already armed timer the system halts + * with error message. In the later SDK version Espressif changed the behavior. + * If the timer was previously armed it is disarmed and then armed without errors. + * This version recreates behavior of SDK 0.9.9 + */ +void sdk_ets_timer_arm_ms_us(ets_timer_t *timer, uint32_t value, + bool repeat_flag, bool value_in_ms) +{ + uint32_t ticks = 0; + + if (timer->next != ETS_TIMER_NOT_ARMED) { + // The error message doesn't tell what is wrong + printf("arm new %x %x\n", (uint32_t)timer, (uint32_t)timer->next); + while(1); // halt + } + + if (value_in_ms) { + ticks = value * 5000; + } else { + ticks = value * 5; + } + + if (repeat_flag) { + timer->period_ticks = ticks; + } + vPortEnterCritical(); + add_pending_timer(TIMER_FRC2.COUNT + ticks, timer); + vPortExitCritical(); +} + +void sdk_ets_timer_arm(ets_timer_t *timer, uint32_t milliseconds, + bool repeat_flag) +{ + sdk_ets_timer_arm_ms_us(timer, milliseconds, repeat_flag, + /*value in ms=*/true); +} + +void sdk_ets_timer_arm_us(ets_timer_t *timer, uint32_t useconds, + bool repeat_flag) +{ + sdk_ets_timer_arm_ms_us(timer, useconds, repeat_flag, + /*value in ms=*/false); +} + +/** + * Function removes a timer from the pending timers list. + */ +void sdk_ets_timer_disarm(ets_timer_t *timer) +{ + vPortEnterCritical(); + ets_timer_t *curr = timer_list; + ets_timer_t *prev = 0; + while (curr) { + if (curr == timer) { + if (prev) { + prev->next = curr->next; + } else { + timer_list = curr->next; + } + break; + } + prev = curr; + curr = curr->next; + } + vPortExitCritical(); + timer->next = ETS_TIMER_NOT_ARMED; + timer->period_ticks = 0; +} + +/** + * Check the list of pending timers for expired ones and process them. + */ +static inline void process_pending_timers() +{ + vPortEnterCritical(); + int32_t ticks = TIMER_FRC2.COUNT; + while (timer_list) { + if (((int32_t)timer_list->fire_ticks - ticks) < 1) { + ets_timer_t *timer = timer_list; + timer_list = timer->next; + timer->next = ETS_TIMER_NOT_ARMED; + + vPortExitCritical(); + timer->callback(timer->timer_arg); + vPortEnterCritical(); + + if (timer->next == ETS_TIMER_NOT_ARMED) { + if (timer->period_ticks) { + timer->fire_ticks = timer->fire_ticks + timer->period_ticks; + add_pending_timer(timer->fire_ticks, timer); + } + } + ticks = TIMER_FRC2.COUNT; + } else { + if (timer_list) { + set_alarm(timer_list->fire_ticks); + } + break; + } + } + vPortExitCritical(); +} + +/** + * .Lfunc002 + */ +static void IRAM frc2_isr(void *arg) +{ + BaseType_t task_woken = 0; + + BaseType_t result = xTaskNotifyFromISR(task_handle, 0, eNoAction, &task_woken); + if (result != pdTRUE) { + printf("TIMQ_FL:%d!!", (uint32_t)result); + } + + portEND_SWITCHING_ISR(task_woken); +} + +/** + * .Lfunc007 + * + * Timer task + */ +static void timer_task(void* param) +{ + while (true) { + if (xTaskNotifyWait(0, 0, NULL, portMAX_DELAY) == pdTRUE) { + process_pending_timers(); + } + } +} + +void sdk_ets_timer_init() +{ + timer_list = 0; + + _xt_isr_attach(INUM_TIMER_FRC2, frc2_isr, NULL); + + /* Original code calls xTaskGenericCreate: + * xTaskGenericCreate(task_handle, "rtc_timer_task", 200, 0, 12, &handle, + * NULL, NULL); + */ + xTaskCreate(timer_task, "rtc_timer_task", 200, 0, 12, &task_handle); + printf("frc2_timer_task_hdl:%p, prio:%d, stack:%d\n", task_handle, 12, 200); + + TIMER_FRC2.ALARM = 0; + TIMER_FRC2.CTRL = VAL2FIELD(TIMER_CTRL_CLKDIV, TIMER_CLKDIV_16) + | TIMER_CTRL_RUN; + TIMER_FRC2.LOAD = 0; + + DPORT.INT_ENABLE |= DPORT_INT_ENABLE_TIMER1; + + _xt_isr_unmask(BIT(INUM_TIMER_FRC2)); +} + +#endif /* OPEN_LIBMAIN_ETS_TIMER */ From 3dbf129fa1e98d9ffba260887d74e2683cb302f0 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 24 Nov 2016 09:45:34 +1100 Subject: [PATCH 193/349] ets_timer: code for using the FreeRTOS timers, and remove from libs. --- lib/libmain.remove | 1 + open_esplibs/libmain/ets_timer.c | 35 ++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/lib/libmain.remove b/lib/libmain.remove index 35145b3..158fba7 100644 --- a/lib/libmain.remove +++ b/lib/libmain.remove @@ -3,3 +3,4 @@ printf-stdarg.o libc.o xtensa_vectors.o app_main.o +ets_timer.o diff --git a/open_esplibs/libmain/ets_timer.c b/open_esplibs/libmain/ets_timer.c index 27a74ca..44b3196 100644 --- a/open_esplibs/libmain/ets_timer.c +++ b/open_esplibs/libmain/ets_timer.c @@ -27,6 +27,33 @@ #if OPEN_LIBMAIN_ETS_TIMER +#if 0 + +#include "etstimer.h" +#include "espressif/osapi.h" + +void sdk_ets_timer_setfn(ETSTimer *timer, ETSTimerFunc *func, void *parg) { + sdk_os_timer_setfn(timer, func, parg); +} + +void sdk_ets_timer_arm(ETSTimer *timer, uint32_t value, bool repeat_flag) { + sdk_os_timer_arm(timer, value, repeat_flag); +} + +void sdk_ets_timer_arm_ms_us(ETSTimer *timer, uint32_t value, + bool repeat_flag, bool value_in_ms) { + sdk_os_timer_arm(timer, value * 1000 + value_in_ms, repeat_flag); +} + +void sdk_ets_timer_disarm(ETSTimer *timer) { + sdk_os_timer_disarm(timer); +} + +void sdk_ets_timer_init() { +} + +#else + #include "open_esplibs.h" #include #include @@ -73,17 +100,12 @@ void sdk_ets_timer_setfn(ets_timer_t *timer, ets_timer_func_t *func, void *parg) timer->next = ETS_TIMER_NOT_ARMED; } -/** - * .Lfunc004 - */ static inline void set_alarm_value(uint32_t value) { TIMER_FRC2.ALARM = value; } /** - * .Lfunc005 - * * Set timer alarm and make sure the alarm is set in the future * and will not be missed by the timer. */ @@ -103,7 +125,6 @@ static void set_alarm(uint32_t ticks) } /** - * .Lfunc006 * * Pending timer list example: * @@ -314,4 +335,6 @@ void sdk_ets_timer_init() _xt_isr_unmask(BIT(INUM_TIMER_FRC2)); } +#endif + #endif /* OPEN_LIBMAIN_ETS_TIMER */ From b6fc58b743326633e56c1c86c84cced9baf9a2f4 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 6 Jun 2017 20:43:59 +1000 Subject: [PATCH 194/349] spi_write: use uint32_t for the page iteration counter. The page counter was using an uint8_t which seems unnecessary and might wrap. --- core/spiflash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/spiflash.c b/core/spiflash.c index 386d7c9..764db11 100644 --- a/core/spiflash.c +++ b/core/spiflash.c @@ -133,7 +133,7 @@ static bool IRAM spi_write(uint32_t addr, uint8_t *dst, uint32_t size) uint32_t offset = write_bytes_to_page; uint32_t pages_to_write = (size - offset) / sdk_flashchip.page_size; - for (uint8_t i = 0; i != pages_to_write; i++) { + for (uint32_t i = 0; i < pages_to_write; i++) { if (!spi_write_page(&sdk_flashchip, addr + offset, dst + offset, sdk_flashchip.page_size)) { return false; From 55958b8bc36e1b3a70ee963af6196547637d0899 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 6 Jun 2017 20:56:32 +1000 Subject: [PATCH 195/349] sysparam_get_bool: memcpy the binary values out. --- core/sysparam.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/sysparam.c b/core/sysparam.c index 126cfe0..27471a0 100644 --- a/core/sysparam.c +++ b/core/sysparam.c @@ -801,9 +801,13 @@ sysparam_status_t sysparam_get_bool(const char *key, bool *result) { do { if (binary) { if (data_len == 1) { // int8 value - *result = (int8_t)(*buf) ? true : false; + uint8_t value; + memcpy(&value, buf, sizeof(value)); + *result = value ? true : false; } else if (data_len == 4) { // int32 value - *result = (int32_t)(*buf) ? true : false; + uint32_t value; + memcpy(&value, buf, sizeof(value)); + *result = value ? true : false; } else { status = SYSPARAM_PARSEFAILED; } From 56a73454ddf98ac2a18291af73fac6213182e001 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 30 Sep 2016 00:48:05 +1000 Subject: [PATCH 196/349] bmp180: comment typo --- extras/bmp180/bmp180.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index df7a503..7c02411 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -156,7 +156,7 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, if (!temperature && !pressure) return false; - // Temperature is always needed, allso required for pressure only. + // Temperature is always needed, also required for pressure only. // // Calculation taken from BMP180 Datasheet int32_t UT, X1, X2, B5; From 5aabd643da798316783e27017957470676b4c1f7 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 30 Sep 2016 00:49:14 +1000 Subject: [PATCH 197/349] ds3231: minor code style fixes. Comment, on the week day start. --- extras/ds3231/ds3231.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c index 4de534c..00779eb 100644 --- a/extras/ds3231/ds3231.c +++ b/extras/ds3231/ds3231.c @@ -16,13 +16,13 @@ /* Convert normal decimal to binary coded decimal */ static inline uint8_t decToBcd(uint8_t dec) { - return(((dec / 10) * 16) + (dec % 10)); + return (dec / 10) * 16 + dec % 10; } /* Convert binary coded decimal to normal decimal */ static inline uint8_t bcdToDec(uint8_t bcd) { - return(((bcd / 16) * 10) + (bcd % 16)); + return (bcd / 16) * 10 + bcd % 16; } /* Send a number of bytes to the rtc over i2c @@ -49,6 +49,8 @@ int ds3231_setTime(struct tm *time) data[0] = decToBcd(time->tm_sec); data[1] = decToBcd(time->tm_min); data[2] = decToBcd(time->tm_hour); + /* The week data must be in the range 1 to 7, and to keep the start on the + * same day as for tm_wday have it start at 1 on Sunday. */ data[3] = decToBcd(time->tm_wday + 1); data[4] = decToBcd(time->tm_mday); data[5] = decToBcd(time->tm_mon + 1); From b79da1f1f1de66f37a790b1d672f6060bee3284f Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 7 Aug 2017 22:38:05 +1000 Subject: [PATCH 198/349] sysparam editor: accept newline to end a line of input. --- examples/sysparam_editor/sysparam_editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index f3f767b..29bf78e 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -45,7 +45,7 @@ size_t tty_readline(char *buffer, size_t buf_size, bool echo) { while (true) { c = getchar(); - if (c == '\r') { + if (c == '\r' || c == '\n') { if (echo) putchar('\n'); break; } else if (c == '\b' || c == 0x7f) { From 0d5e3bb66362ae9c9e4358dd3206cabb0ef9d658 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 16 Aug 2017 07:50:23 +1000 Subject: [PATCH 199/349] lwip: disable the tcpip_core_locking_input option With this option enabled some lwip input processing occurs in the pp task which works well for some uses but some code uses a lot of stack (e.g. mdns) and will overflow the pp task stask, or might unnecessarily slow the critical pp task, so disable this by default and if not already defined. --- lwip/include/lwipopts.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index 567c856..fee5732 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -91,7 +91,9 @@ * ATTENTION: this does not work when tcpip_input() is called from * interrupt context! */ -#define LWIP_TCPIP_CORE_LOCKING_INPUT 1 +#ifndef LWIP_TCPIP_CORE_LOCKING_INPUT +#define LWIP_TCPIP_CORE_LOCKING_INPUT 0 +#endif /* ------------------------------------ From 87994d3bb45e001dc2bdbd223b0a23d828dec876 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 19 Aug 2017 14:52:56 +1000 Subject: [PATCH 200/349] http_get example: fix compilation with ipv6 disabled. --- examples/http_get/http_get.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c index f59aa8e..766dd81 100644 --- a/examples/http_get/http_get.c +++ b/examples/http_get/http_get.c @@ -48,6 +48,7 @@ void http_get_task(void *pvParameters) continue; } +#if LWIP_IPV6 { struct netif *netif = sdk_system_get_netif(0); int i; @@ -57,14 +58,17 @@ void http_get_task(void *pvParameters) printf(" ip6 addr %d = %s\n", i, ip6addr_ntoa(netif_ip6_addr(netif, i))); } } +#endif struct sockaddr *sa = res->ai_addr; if (sa->sa_family == AF_INET) { printf("DNS lookup succeeded. IP=%s\r\n", inet_ntoa(((struct sockaddr_in *)sa)->sin_addr)); } +#if LWIP_IPV6 if (sa->sa_family == AF_INET6) { printf("DNS lookup succeeded. IP=%s\r\n", inet6_ntoa(((struct sockaddr_in6 *)sa)->sin6_addr)); } +#endif int s = socket(res->ai_family, res->ai_socktype, 0); if(s < 0) { From 29da4e9279e1aa35431c42398133a65f051e7a9b Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 18 Aug 2017 17:36:00 +1000 Subject: [PATCH 201/349] sdk_cnx_add_rc: fix overflow of the table, when no match is found. Also adds source code for sdk_cnx_rc_search, adding a null pointer dereference check (that is not expected to be seen), and source code for sdk_cnx_remove_rc. --- core/include/sdk_internal.h | 10 ++-- open_esplibs/libnet80211/wl_cnx.c | 79 ++++++++++++++++++++++++++++++- open_esplibs/libwpa/wpa_main.c | 2 +- 3 files changed, 83 insertions(+), 8 deletions(-) diff --git a/core/include/sdk_internal.h b/core/include/sdk_internal.h index 3dfa8df..a4e21c6 100644 --- a/core/include/sdk_internal.h +++ b/core/include/sdk_internal.h @@ -25,14 +25,14 @@ struct sdk_info_st { }; -struct _unknown_info1 { +struct wl_channel { uint8_t _unknown00; uint8_t _unknown01; uint8_t _unknown02; uint8_t _unknown03; uint8_t _unknown04; uint8_t _unknown05; - uint8_t channel; // eagle_auth_done + uint8_t num; // eagle_auth_done }; @@ -98,7 +98,7 @@ struct sdk_cnx_node { uint32_t _unknown1c[23]; - struct _unknown_info1 *_unknown78; // eagle_auth_done + struct wl_channel *channel; // 0x78 eagle_auth_done uint32_t _unknown7c[8]; @@ -322,7 +322,7 @@ struct esf_buf { _Static_assert(sizeof(struct sdk_info_st) == 0x24, "info_st is the wrong size!"); _Static_assert(offsetof(struct sdk_info_st, sta_mac_addr) == 0x1e, "bad struct"); -_Static_assert(offsetof(struct _unknown_info1, channel) == 0x06, "bad struct"); +_Static_assert(offsetof(struct wl_channel, num) == 0x06, "bad struct"); _Static_assert(sizeof(struct _unknown_softap2) == 0xcc, "_unknown_softap2 is the wrong size!"); _Static_assert(offsetof(struct _unknown_softap2, _unknownb8) == 0xb8, "bad struct"); @@ -333,7 +333,7 @@ _Static_assert(offsetof(struct _unknown_softap1, _unknown18) == 0x18, "bad struc _Static_assert(sizeof(struct _unknown_wpa1) == 0x4c, "_unknown_wpa1 is the wrong size!"); _Static_assert(offsetof(struct _unknown_wpa1, _unknown48) == 0x48, "bad struct"); -_Static_assert(offsetof(struct sdk_cnx_node, _unknown78) == 0x78, "bad struct"); +_Static_assert(offsetof(struct sdk_cnx_node, channel) == 0x78, "bad struct"); _Static_assert(offsetof(struct sdk_cnx_node, _unknown108) == 0x108, "bad struct"); _Static_assert(offsetof(struct sdk_g_ic_netif_info, started) == 0xbb, "bad struct"); diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c index 0d2459e..3b49c5d 100644 --- a/open_esplibs/libnet80211/wl_cnx.c +++ b/open_esplibs/libnet80211/wl_cnx.c @@ -11,8 +11,10 @@ #include #include "lwip/dhcp.h" -ETSTimer sdk_sta_con_timer; -void *sdk_g_cnx_probe_rc_list_cb; +/* Need to use the sdk versions of these for now as there are reference to them + * relative to other data structres. */ +extern ETSTimer sdk_sta_con_timer; +extern void *sdk_g_cnx_probe_rc_list_cb; /* * Called from the ESP sdk_cnx_sta_leave function. Split out via a hack to the @@ -26,6 +28,79 @@ void dhcp_if_down(struct netif *netif) netif_set_down(netif); } +struct sdk_cnx_node *sdk_cnx_rc_search(uint8_t *hwaddr) { + size_t len = *(uint8_t *)(sdk_g_ic.v._unknown0 + 0x689); + struct sdk_cnx_node **table = (struct sdk_cnx_node **)(sdk_g_ic.v._unknown0 + 0x670); + size_t i; + + for (i = 0; i < len; i++) { + struct sdk_cnx_node *cnx_node = table[i]; + if (cnx_node && memcmp(cnx_node->mac_addr, hwaddr, 6) == 0) { + return cnx_node; + } + } + + return NULL; +} + +int sdk_cnx_add_rc(struct sdk_cnx_node *cnx_node) { + size_t len = *(uint8_t *)(sdk_g_ic.v._unknown0 + 0x689); + struct sdk_cnx_node **table = (struct sdk_cnx_node **)(sdk_g_ic.v._unknown0 + 0x670); + + if (len >= 6) { + return -1; + } + + if (len < 2) { + table[len] = cnx_node; + } else { + struct wl_channel *channel = cnx_node->channel; + size_t found; + for (found = 0; found < len; found++) { + if (table[found]->channel == channel) { + break; + } + } + + if (found >= len) { + /* Add to the end. */ + table[len] = cnx_node; + } else { + /* Make room. */ + size_t next = found + 1; + size_t i; + for (i = len; i > next; i--) { + table[i] = table[i - 1];; + } + table[next] = cnx_node; + } + } + + *(uint8_t *)(sdk_g_ic.v._unknown0 + 0x689) += 1; + return 0; +} + +void sdk_cnx_remove_rc(struct sdk_cnx_node *cnx_node) { + size_t len = *(uint8_t *)(sdk_g_ic.v._unknown0 + 0x689); + struct sdk_cnx_node **table = (struct sdk_cnx_node **)(sdk_g_ic.v._unknown0 + 0x670); + size_t i; + + for (i = 0; i < len; i++) { + if (table[i] == cnx_node) { + bzero(cnx_node, 0x110); + table[i] = NULL; + len -= 1; + *(uint8_t *)(sdk_g_ic.v._unknown0 + 0x689) = len; + break; + } + } + + /* Fill the hole */ + for (; i < len; i++) { + table[i] = table[i + 1]; + } +} + #if 0 // Most of the code in this file assesses static data so it will be all or none. diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c index 43f332c..e13e3b6 100644 --- a/open_esplibs/libwpa/wpa_main.c +++ b/open_esplibs/libwpa/wpa_main.c @@ -77,7 +77,7 @@ void sdk_eagle_auth_done() { if (cnx_node->_unknown08 & 1) return; - uint32_t channel = cnx_node->_unknown78->channel; + uint32_t channel = cnx_node->channel->num; char *ssid = (char *)sdk_g_ic.s.sta_ssid.ssid; printf("\nconnected with %s, channel %d\n", ssid, channel); From fea8a3f4e744ca07c5b758fd8aa7ebc46dc4b05c Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 30 Aug 2017 13:26:18 +1000 Subject: [PATCH 202/349] lwip: update to master branch. --- lwip/lwip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/lwip b/lwip/lwip index ae317fe..0983b88 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit ae317fe74dd61ab5eacf5c83dfe8f2af4795421e +Subproject commit 0983b8838ea6f1d8340e3f42ec5fb5cf5f05bd4c From 1bfa6c4364c7d8b763a8ea597e2a8dc9088eddb0 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 30 Aug 2017 13:45:08 +1000 Subject: [PATCH 203/349] wificfg: allow the AP channel to be 1. --- extras/wificfg/wificfg.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index bde84a7..708af29 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -1920,12 +1920,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) int8_t wifi_ap_channel = 6; sysparam_get_int8("wifi_ap_channel", &wifi_ap_channel); - /* Hack, disallow channel 1 here as it is not working on multiple - * devices. It seems to only work in STATIONAP mode when connected, but - * and not if the station is still scanning. */ - if (wifi_ap_channel < 2) { - wifi_ap_channel = 2; - } + /* AU does not allow channels above 13, although 14 works. */ if (wifi_ap_channel > 13) { wifi_ap_channel = 13; From b83c2629b9710597563e9e67d8deb6eda6b593d7 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Fri, 1 Sep 2017 06:29:32 -0300 Subject: [PATCH 204/349] I2C bus upgrade (#432) --- examples/ad770x/main.c | 1 - examples/ads1115_test/main.c | 19 ++- examples/bh1750/bh1750_example.c | 13 +- examples/bmp180_i2c/bmp180_i2c.c | 20 ++- examples/bmp280/bmp280_example.c | 12 +- examples/ds1307/main.c | 13 +- examples/ds3231_test/ds3231_test.c | 16 +- examples/fatfs_rtc/main.c | 9 +- examples/hmc5883l/main.c | 19 ++- examples/i2c_lcd_test/main.c | 6 +- examples/ina3221_test/main.c | 6 +- examples/mcp4725_test/main.c | 25 +-- examples/ms561101ba03/main.c | 6 +- examples/pca9685_pwm/main.c | 19 ++- examples/pcf8591/main.c | 10 +- examples/ssd1306_example/main.c | 6 +- examples/ssd1306_fps/main.c | 6 +- examples/tsl2561/tsl2561_example.c | 6 +- examples/tsl4531/tsl4531_example.c | 6 +- extras/ad770x/ad770x.c | 1 - extras/ads111x/ads111x.c | 109 +++++++------ extras/ads111x/ads111x.h | 47 +++--- extras/bh1750/bh1750.c | 9 +- extras/bh1750/bh1750.h | 5 +- extras/bmp180/bmp180.c | 112 ++++++------- extras/bmp180/bmp180.h | 18 ++- extras/bmp280/bmp280.c | 74 ++++----- extras/bmp280/bmp280.h | 3 +- extras/ds1307/ds1307.c | 60 ++++--- extras/ds1307/ds1307.h | 26 +-- extras/ds3231/ds3231.c | 94 +++++------ extras/ds3231/ds3231.h | 37 ++--- extras/hd44780/hd44780.c | 6 +- extras/hd44780/hd44780.h | 9 +- extras/hmc5883l/hmc5883l.c | 86 +++++----- extras/hmc5883l/hmc5883l.h | 35 ++-- extras/i2c/i2c.c | 252 +++++++++++++++-------------- extras/i2c/i2c.h | 98 +++++++---- extras/ina3221/ina3221.c | 62 +++---- extras/ina3221/ina3221.h | 2 +- extras/mcp4725/mcp4725.c | 29 ++-- extras/mcp4725/mcp4725.h | 19 +-- extras/ms561101ba03/ms561101ba03.c | 31 ++-- extras/ms561101ba03/ms561101ba03.h | 3 +- extras/pca9685/pca9685.c | 91 ++++++----- extras/pca9685/pca9685.h | 31 ++-- extras/pcf8574/pcf8574.c | 25 ++- extras/pcf8574/pcf8574.h | 13 +- extras/pcf8591/pcf8591.c | 8 +- extras/pcf8591/pcf8591.h | 6 +- extras/ssd1306/ssd1306.c | 5 +- extras/ssd1306/ssd1306.h | 3 +- extras/tsl2561/tsl2561.c | 51 +++--- extras/tsl2561/tsl2561.h | 3 +- extras/tsl4531/tsl4531.c | 29 ++-- extras/tsl4531/tsl4531.h | 3 +- 56 files changed, 909 insertions(+), 804 deletions(-) diff --git a/examples/ad770x/main.c b/examples/ad770x/main.c index 6b13afc..2a021cc 100644 --- a/examples/ad770x/main.c +++ b/examples/ad770x/main.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/ads1115_test/main.c b/examples/ads1115_test/main.c index 8065f04..5c0c4db 100644 --- a/examples/ads1115_test/main.c +++ b/examples/ads1115_test/main.c @@ -17,6 +17,7 @@ // Connect ADDR pin to GND #define ADDR ADS111X_ADDR_GND +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 @@ -28,23 +29,27 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); + i2c_dev_t dev = { + .addr = ADDR, + .bus = I2C_BUS, + }; + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); - ads111x_set_mode(ADDR, ADS111X_MODE_CONTUNOUS); - ads111x_set_data_rate(ADDR, ADS111X_DATA_RATE_32); + ads111x_set_mode(&dev, ADS111X_MODE_CONTUNOUS); + ads111x_set_data_rate(&dev, ADS111X_DATA_RATE_32); - ads111x_set_input_mux(ADDR, ADS111X_MUX_0_GND); - ads111x_set_gain(ADDR, GAIN); + ads111x_set_input_mux(&dev, ADS111X_MUX_0_GND); + ads111x_set_gain(&dev, GAIN); float gain_val = ads111x_gain_values[GAIN]; while (true) { // wait for conversion end - while (ads111x_busy(ADDR)) {} + while (ads111x_busy(&dev)) {} // Read result - int16_t raw = ads111x_get_value(ADDR); + int16_t raw = ads111x_get_value(&dev); float voltage = gain_val / ADS111X_MAX_VALUE * raw; diff --git a/examples/bh1750/bh1750_example.c b/examples/bh1750/bh1750_example.c index fad67bd..b75115c 100644 --- a/examples/bh1750/bh1750_example.c +++ b/examples/bh1750/bh1750_example.c @@ -11,17 +11,20 @@ #define SCL_PIN 5 #define SDA_PIN 4 +#define I2C_BUS 0 static void measure(void *pvParameters) { - bh1750_configure(BH1750_ADDR_LO, - BH1750_CONTINUOUS_MODE | BH1750_HIGH_RES_MODE); + i2c_dev_t dev = { + .addr = BH1750_ADDR_LO, + .bus = I2C_BUS, + }; + bh1750_configure(&dev, BH1750_CONTINUOUS_MODE | BH1750_HIGH_RES_MODE); while (1) { while(1) { vTaskDelay(200 / portTICK_PERIOD_MS); - - printf("Lux: %d\n", bh1750_read(BH1750_ADDR_LO)); + printf("Lux: %d\n", bh1750_read(&dev)); } } } @@ -35,7 +38,7 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); xTaskCreate(measure, "measure_task", 256, NULL, 2, NULL); } diff --git a/examples/bmp180_i2c/bmp180_i2c.c b/examples/bmp180_i2c/bmp180_i2c.c index 1e188bc..7153c64 100644 --- a/examples/bmp180_i2c/bmp180_i2c.c +++ b/examples/bmp180_i2c/bmp180_i2c.c @@ -13,18 +13,25 @@ // BMP180 driver #include "bmp180/bmp180.h" -#define MY_EVT_TIMER 0x01 -#define MY_EVT_BMP180 0x02 - +#define I2C_BUS 0 #define SCL_PIN GPIO_ID_PIN((0)) #define SDA_PIN GPIO_ID_PIN((2)) +#define MY_EVT_TIMER 0x01 +#define MY_EVT_BMP180 0x02 + typedef struct { uint8_t event_type; bmp180_result_t bmp180_data; } my_event_t; +//device descriptor +i2c_dev_t dev = { + .addr = BMP180_DEVICE_ADDRESS, + .bus = I2C_BUS, +}; + // Communication Queue static QueueHandle_t mainqueue; static TimerHandle_t timerHandle; @@ -70,7 +77,7 @@ void bmp180_task(void *pvParameters) case MY_EVT_TIMER: printf("%s: Received Timer Event\n", __FUNCTION__); - bmp180_trigger_measurement(com_queue); + bmp180_trigger_measurement(&dev, com_queue); break; case MY_EVT_BMP180: printf("%s: Received BMP180 Event temp:=%d.%dC press=%d.%02dhPa\n", __FUNCTION__, \ @@ -91,6 +98,9 @@ void user_setup(void) // Give the UART some time to settle sdk_os_delay_us(500); + + // Init I2C bus Interface + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); } void user_init(void) @@ -107,7 +117,7 @@ void user_init(void) bmp180_informUser = bmp180_i2c_informUser; // Init BMP180 Interface - bmp180_init(SCL_PIN, SDA_PIN); + bmp180_init(&dev); // Create Main Communication Queue mainqueue = xQueueCreate(10, sizeof(my_event_t)); diff --git a/examples/bmp280/bmp280_example.c b/examples/bmp280/bmp280_example.c index c4c7c11..4ef7ec2 100644 --- a/examples/bmp280/bmp280_example.c +++ b/examples/bmp280/bmp280_example.c @@ -10,9 +10,9 @@ #include "bmp280/bmp280.h" // In forced mode user initiate measurement each time. -// In normal mode measurement is done continuously with specified standby time. +// In normal mode measurement is done continuously with specified standby time. // #define MODE_FORCED - +const uint8_t i2c_bus = 0; const uint8_t scl_pin = 0; const uint8_t sda_pin = 2; @@ -26,7 +26,8 @@ static void bmp280_task_forced(void *pvParameters) params.mode = BMP280_MODE_FORCED; bmp280_t bmp280_dev; - bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; + bmp280_dev.i2c_dev.bus = i2c_bus; + bmp280_dev.i2c_dev.addr = BMP280_I2C_ADDRESS_0; while (1) { while (!bmp280_init(&bmp280_dev, ¶ms)) { @@ -67,7 +68,8 @@ static void bmp280_task_normal(void *pvParameters) bmp280_init_default_params(¶ms); bmp280_t bmp280_dev; - bmp280_dev.i2c_addr = BMP280_I2C_ADDRESS_0; + bmp280_dev.i2c_dev.bus = i2c_bus; + bmp280_dev.i2c_dev.addr = BMP280_I2C_ADDRESS_0; while (1) { while (!bmp280_init(&bmp280_dev, ¶ms)) { @@ -103,7 +105,7 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - i2c_init(scl_pin, sda_pin); + i2c_init(i2c_bus, scl_pin, sda_pin, I2C_FREQ_400K); #ifdef MODE_FORCED xTaskCreate(bmp280_task_forced, "bmp280_task", 256, NULL, 2, NULL); diff --git a/examples/ds1307/main.c b/examples/ds1307/main.c index a1b847e..a276f0b 100644 --- a/examples/ds1307/main.c +++ b/examples/ds1307/main.c @@ -11,6 +11,7 @@ #include #include +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 @@ -19,8 +20,12 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); - ds1307_start(true); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); + i2c_dev_t dev = { + .addr = DS1307_ADDR, + .bus = I2C_BUS, + }; + ds1307_start(&dev, true); // setup datetime: 2016-10-09 13:50:10 struct tm time = { @@ -31,11 +36,11 @@ void user_init(void) .tm_min = 50, .tm_sec = 10 }; - ds1307_set_time(&time); + ds1307_set_time(&dev, &time); while (true) { - ds1307_get_time(&time); + ds1307_get_time(&dev, &time); printf("%04d-%02d-%02d %02d:%02d:%02d\n", time.tm_year, time.tm_mon + 1, time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); diff --git a/examples/ds3231_test/ds3231_test.c b/examples/ds3231_test/ds3231_test.c index 858b0a0..b6f41bb 100644 --- a/examples/ds3231_test/ds3231_test.c +++ b/examples/ds3231_test/ds3231_test.c @@ -1,4 +1,4 @@ -/* Test code for DS3231 high precision RTC module +/* Test code for DS3231 high precision RTC module * * Part of esp-open-rtos * Copyright (C) 2016 Bhuvanchandra DV @@ -12,15 +12,21 @@ #include "ds3231/ds3231.h" +#define ADDR DS3231_ADDR +#define I2C_BUS 0 + void task1(void *pvParameters) { struct tm time; float tempFloat; - + i2c_dev_t dev = { + .addr = ADDR, + .bus = I2C_BUS, + }; while(1) { vTaskDelay(100); - ds3231_getTime(&time); - ds3231_getTempFloat(&tempFloat); + ds3231_getTime(&dev, &time); + ds3231_getTempFloat(&dev, &tempFloat); printf("TIME:%d:%d:%d, TEMPERATURE:%.2f DegC\r\n", time.tm_hour, time.tm_min, time.tm_sec, tempFloat); } } @@ -35,7 +41,7 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - ds3231_Init(scl, sda); + i2c_init(0,scl,sda,I2C_FREQ_400K); xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL); } diff --git a/examples/fatfs_rtc/main.c b/examples/fatfs_rtc/main.c index 613eb6f..4a9ec76 100644 --- a/examples/fatfs_rtc/main.c +++ b/examples/fatfs_rtc/main.c @@ -18,6 +18,7 @@ #define CS_GPIO_PIN 2 // ds1307 +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 @@ -29,7 +30,11 @@ uint32_t get_fattime() { struct tm time; - ds1307_get_time(&time); + i2c_dev_t dev = { + .addr = DS1307_ADDR, + .bus = I2C_BUS, + }; + ds1307_get_time(&dev, &time); return ((uint32_t)(time.tm_year - 1980) << 25) | ((uint32_t)time.tm_mon << 21) @@ -127,7 +132,7 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); - i2c_init (SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); xTaskCreate(rewrite_file_task, "task1", 512, NULL, 2, NULL); } diff --git a/examples/hmc5883l/main.c b/examples/hmc5883l/main.c index c4b0bf4..866ed25 100644 --- a/examples/hmc5883l/main.c +++ b/examples/hmc5883l/main.c @@ -11,6 +11,7 @@ #include #include +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 @@ -19,20 +20,24 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); + i2c_dev_t dev = { + .addr = HMC5883L_ADDR, + .bus = I2C_BUS, + }; - while (!hmc5883l_init()) + while (!hmc5883l_init(&dev)) printf("Device not found\n"); - hmc5883l_set_operating_mode(HMC5883L_MODE_CONTINUOUS); - hmc5883l_set_samples_averaged(HMC5883L_SAMPLES_8); - hmc5883l_set_data_rate(HMC5883L_DATA_RATE_07_50); - hmc5883l_set_gain(HMC5883L_GAIN_1090); + hmc5883l_set_operating_mode(&dev, HMC5883L_MODE_CONTINUOUS); + hmc5883l_set_samples_averaged(&dev, HMC5883L_SAMPLES_8); + hmc5883l_set_data_rate(&dev, HMC5883L_DATA_RATE_07_50); + hmc5883l_set_gain(&dev, HMC5883L_GAIN_1090); while (true) { hmc5883l_data_t data; - hmc5883l_get_data(&data); + hmc5883l_get_data(&dev, &data); printf("Magnetic data: X:%.2f mG, Y:%.2f mG, Z:%.2f mG\n", data.x, data.y, data.z); for (uint32_t i = 0; i < 1000; i++) diff --git a/examples/i2c_lcd_test/main.c b/examples/i2c_lcd_test/main.c index 1951777..cb2af04 100644 --- a/examples/i2c_lcd_test/main.c +++ b/examples/i2c_lcd_test/main.c @@ -13,6 +13,7 @@ #include +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 #define ADDR 0x27 @@ -27,10 +28,11 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); hd44780_t lcd = { - .addr = ADDR, + .i2c_dev.bus = I2C_BUS, + .i2c_dev.addr = ADDR, .font = HD44780_FONT_5X8, .lines = 2, .pins = { diff --git a/examples/ina3221_test/main.c b/examples/ina3221_test/main.c index 5a883d2..cd8150e 100644 --- a/examples/ina3221_test/main.c +++ b/examples/ina3221_test/main.c @@ -13,6 +13,7 @@ #include #include "ina3221/ina3221.h" +#define I2C_BUS 0 #define PIN_SCL 5 #define PIN_SDA 2 #define ADDR INA3221_ADDR_0 @@ -33,7 +34,8 @@ void ina_measure(void *pvParameters) // Create ina3221 device ina3221_t dev = { - .addr = ADDR, + .i2c_dev.bus = I2C_BUS, + .i2c_dev.addr = ADDR, .shunt = { 100 ,100 ,100 }, // shunt values are 100 mOhm for each channel .mask.mask_register = INA3221_DEFAULT_MASK, // Init .config.config_register = INA3221_DEFAULT_CONFIG, // Init @@ -120,7 +122,7 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(PIN_SCL,PIN_SDA); + i2c_init(I2C_BUS, PIN_SCL, PIN_SDA, I2C_FREQ_400K); xTaskCreate(ina_measure, "Measurements_task", 512, NULL, 2, NULL); } diff --git a/examples/mcp4725_test/main.c b/examples/mcp4725_test/main.c index f3eae0b..b7d42af 100644 --- a/examples/mcp4725_test/main.c +++ b/examples/mcp4725_test/main.c @@ -14,14 +14,15 @@ #include #include +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 #define ADDR MCP4725A0_ADDR0 #define VDD 3.3 -inline static void wait_for_eeprom() +inline static void wait_for_eeprom(i2c_dev_t* dev) { - while (mcp4725_eeprom_busy(ADDR)) + while (mcp4725_eeprom_busy(dev)) { printf("...DAC is busy, waiting...\n"); vTaskDelay(1); @@ -33,21 +34,25 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); + i2c_dev_t dev = { + .addr = ADDR, + .bus = I2C_BUS, + }; // setup EEPROM values - if (mcp4725_get_power_mode(ADDR, true) != MCP4725_PM_NORMAL) + if (mcp4725_get_power_mode(&dev, true) != MCP4725_PM_NORMAL) { printf("DAC was sleeping... Wake up Neo!\n"); - mcp4725_set_power_mode(ADDR, MCP4725_PM_NORMAL, true); - wait_for_eeprom(); + mcp4725_set_power_mode(&dev, MCP4725_PM_NORMAL, true); + wait_for_eeprom(&dev); } printf("Set default DAC ouptut value to MAX...\n"); - mcp4725_set_raw_output(ADDR, MCP4725_MAX_VALUE, true); - wait_for_eeprom(); + mcp4725_set_raw_output(&dev, MCP4725_MAX_VALUE, true); + wait_for_eeprom(&dev); - printf("And now default DAC output value is 0x%03x\n", mcp4725_get_raw_output(ADDR, true)); + printf("And now default DAC output value is 0x%03x\n", mcp4725_get_raw_output(&dev, true)); printf("Now let's generate the sawtooth wave in slow manner\n"); @@ -58,7 +63,7 @@ void user_init(void) if (vout > VDD) vout = 0; printf("Vout: %.02f\n", vout); - mcp4725_set_voltage(ADDR, VDD, vout, false); + mcp4725_set_voltage(&dev, VDD, vout, false); // It will be very low freq wave vTaskDelay(100 / portTICK_PERIOD_MS); diff --git a/examples/ms561101ba03/main.c b/examples/ms561101ba03/main.c index 9e993d1..b4b9c73 100644 --- a/examples/ms561101ba03/main.c +++ b/examples/ms561101ba03/main.c @@ -13,18 +13,20 @@ #include #include +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 void user_init(void) { - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); uart_set_baud(0, 115200); printf("SDK version:%s\n\n", sdk_system_get_sdk_version()); ms561101ba03_t device = { - .addr = MS561101BA03_ADDR_CSB_LOW, + .i2c_dev.bus = I2C_BUS, + .i2c_dev.addr = MS561101BA03_ADDR_CSB_LOW, .osr = MS561101BA03_OSR_4096, }; diff --git a/examples/pca9685_pwm/main.c b/examples/pca9685_pwm/main.c index b191334..07c0aac 100644 --- a/examples/pca9685_pwm/main.c +++ b/examples/pca9685_pwm/main.c @@ -11,8 +11,9 @@ #include #include -#define ADDR 0x40 +#define ADDR PCA9685_ADDR_BASE +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 @@ -23,19 +24,23 @@ void user_init(void) uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); + i2c_dev_t dev = { + .addr = ADDR, + .bus = I2C_BUS, + }; - pca9685_init(ADDR); + pca9685_init(&dev); - pca9685_set_pwm_frequency(ADDR, 1000); - printf("Freq 1000Hz, real %d\n", pca9685_get_pwm_frequency(ADDR)); + pca9685_set_pwm_frequency(&dev, 1000); + printf("Freq 1000Hz, real %d\n", pca9685_get_pwm_frequency(&dev)); uint16_t val = 0; while (true) { printf("Set ch0 to %d, ch4 to %d\n", val, 4096 - val); - pca9685_set_pwm_value(ADDR, 0, val); - pca9685_set_pwm_value(ADDR, 4, 4096 - val); + pca9685_set_pwm_value(&dev, 0, val); + pca9685_set_pwm_value(&dev, 4, 4096 - val); if (val++ == 4096) val = 0; diff --git a/examples/pcf8591/main.c b/examples/pcf8591/main.c index 7547c75..a4dc8a3 100644 --- a/examples/pcf8591/main.c +++ b/examples/pcf8591/main.c @@ -9,15 +9,21 @@ #include "i2c/i2c.h" #include "pcf8591/pcf8591.h" +#define ADDR PCF8591_DEFAULT_ADDRESS +#define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 static void measure(void *pvParameters) { + i2c_dev_t dev = { + .addr = ADDR, + .bus = I2C_BUS, + }; while (1) { vTaskDelay(1000 / portTICK_PERIOD_MS); - printf("Value: %d\n", pcf8591_read(PCF8591_DEFAULT_ADDRESS, 0x03)); + printf("Value: %d\n", pcf8591_read(&dev, 0x03)); } } @@ -30,7 +36,7 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); xTaskCreate(measure, "measure_task", 256, NULL, 2, NULL); } diff --git a/examples/ssd1306_example/main.c b/examples/ssd1306_example/main.c index 58781c5..f88d798 100644 --- a/examples/ssd1306_example/main.c +++ b/examples/ssd1306_example/main.c @@ -23,6 +23,7 @@ #ifdef I2C_CONNECTION #define PROTOCOL SSD1306_PROTO_I2C #define ADDR SSD1306_I2C_ADDR_0 + #define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 #else @@ -35,7 +36,8 @@ static const ssd1306_t dev = { .protocol = PROTOCOL, #ifdef I2C_CONNECTION - .addr = ADDR, + .i2c_dev.bus = I2C_BUS, + .i2c_dev.addr = ADDR, #else .cs_pin = CS_PIN, .dc_pin = DC_PIN, @@ -97,7 +99,7 @@ void user_init(void) printf("SDK version:%s\n", sdk_system_get_sdk_version()); #ifdef I2C_CONNECTION - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); #endif while (ssd1306_init(&dev) != 0) diff --git a/examples/ssd1306_fps/main.c b/examples/ssd1306_fps/main.c index b35dbfb..dc1f1a9 100644 --- a/examples/ssd1306_fps/main.c +++ b/examples/ssd1306_fps/main.c @@ -29,6 +29,7 @@ #ifdef I2C_CONNECTION #define PROTOCOL SSD1306_PROTO_I2C #define ADDR SSD1306_I2C_ADDR_0 + #define I2C_BUS 0 #define SCL_PIN 5 #define SDA_PIN 4 #else @@ -43,7 +44,8 @@ static const ssd1306_t dev = { .protocol = PROTOCOL, #ifdef I2C_CONNECTION - .addr = ADDR, +.i2c_dev.bus = I2C_BUS, +.i2c_dev.addr = ADDR, #else .cs_pin = CS_PIN, .dc_pin = DC_PIN, @@ -162,7 +164,7 @@ void user_init(void) printf("SDK version:%s\n", sdk_system_get_sdk_version()); #ifdef I2C_CONNECTION - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); #endif while (ssd1306_init(&dev) != 0) { diff --git a/examples/tsl2561/tsl2561_example.c b/examples/tsl2561/tsl2561_example.c index b97804b..6f3582f 100644 --- a/examples/tsl2561/tsl2561_example.c +++ b/examples/tsl2561/tsl2561_example.c @@ -16,6 +16,7 @@ * Connect 3.3v from the ESP to Vin and GND to GND */ +#define I2C_BUS (0) #define SCL_PIN (2) #define SDA_PIN (0) @@ -27,7 +28,8 @@ void tsl2561MeasurementTask(void *pvParameters) // TSL2561_I2C_ADDR_VCC (0x49) // TSL2561_I2C_ADDR_GND (0x29) // TSL2561_I2C_ADDR_FLOAT (0x39) Default - lightSensor.i2c_addr = TSL2561_I2C_ADDR_FLOAT; + lightSensor.i2c_dev.bus = I2C_BUS; + lightSensor.i2c_dev.addr = TSL2561_I2C_ADDR_FLOAT; tsl2561_init(&lightSensor); @@ -63,7 +65,7 @@ void tsl2561MeasurementTask(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); xTaskCreate(tsl2561MeasurementTask, "tsl2561MeasurementTask", 256, NULL, 2, NULL); } diff --git a/examples/tsl4531/tsl4531_example.c b/examples/tsl4531/tsl4531_example.c index 9b69b29..f40213a 100644 --- a/examples/tsl4531/tsl4531_example.c +++ b/examples/tsl4531/tsl4531_example.c @@ -16,13 +16,15 @@ * Connect 3.3v from the ESP to Vin and GND to GND */ +#define I2C_BUS (0) #define SCL_PIN (2) #define SDA_PIN (0) void tsl4531MeasurementTask(void *pvParameters) { tsl4531_t lightSensor; - lightSensor.i2c_addr = TSL4531_I2C_ADDR; + lightSensor.i2c_dev.bus= I2C_BUS; + lightSensor.i2c_dev.addr= TSL4531_I2C_ADDR; tsl4531_init(&lightSensor); tsl4531_set_integration_time(&lightSensor, TSL4531_INTEGRATION_400MS); @@ -49,7 +51,7 @@ void tsl4531MeasurementTask(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); - i2c_init(SCL_PIN, SDA_PIN); + i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_100K); xTaskCreate(tsl4531MeasurementTask, "tsl4531MeasurementTask", 256, NULL, 2, NULL); } diff --git a/extras/ad770x/ad770x.c b/extras/ad770x/ad770x.c index 9bd8af5..0882d94 100644 --- a/extras/ad770x/ad770x.c +++ b/extras/ad770x/ad770x.c @@ -179,4 +179,3 @@ uint16_t ad770x_raw_adc_value(const ad770x_params_t *params, uint8_t channel) prepare(channel, REG_DATA, true, params->cs_pin, false); return read_word(params->cs_pin); } - diff --git a/extras/ads111x/ads111x.c b/extras/ads111x/ads111x.c index c9d3cf3..8e68ee4 100644 --- a/extras/ads111x/ads111x.c +++ b/extras/ads111x/ads111x.c @@ -6,7 +6,6 @@ * BSD Licensed as described in the file LICENSE */ #include "ads111x.h" -#include #define ADS111X_DEBUG @@ -52,144 +51,144 @@ const float ads111x_gain_values[] = { [ADS111X_GAIN_0V256_3] = 0.256 }; -static uint16_t read_reg(uint8_t addr, uint8_t reg) +static uint16_t read_reg(i2c_dev_t* dev, uint8_t reg) { uint16_t res = 0; - if (i2c_slave_read(addr, ®, (uint8_t *)&res, 2)) + if (i2c_slave_read(dev->bus, dev->addr, ®, (uint8_t *)&res, 2)) debug("Could not read register %d", reg); //debug("Read %d: 0x%04x", reg, res); return res; } -static void write_reg(uint8_t addr, uint8_t reg, uint16_t val) +static void write_reg(i2c_dev_t* dev, uint8_t reg, uint16_t val) { //debug("Write %d: 0x%04x", reg, val); uint8_t buf[2] = { val >> 8, val}; - if (i2c_slave_write(addr, ®, buf, 2)) + if (i2c_slave_write(dev->bus, dev->addr, ®, buf, 2)) debug("Could not write 0x%04x to register %d", val, reg); } -static uint16_t read_conf_bits(uint8_t addr, uint8_t offs, uint16_t mask) +static uint16_t read_conf_bits(i2c_dev_t* dev, uint8_t offs, uint16_t mask) { - return (read_reg(addr, REG_CONFIG) >> offs) & mask; + return (read_reg(dev, REG_CONFIG) >> offs) & mask; } -static void write_conf_bits(uint8_t addr, uint16_t val, uint8_t offs, uint16_t mask) +static void write_conf_bits(i2c_dev_t* dev, uint16_t val, uint8_t offs, uint16_t mask) { - write_reg(addr, REG_CONFIG, (read_reg(addr, REG_CONFIG) & ~(mask << offs)) | (val << offs)); + write_reg(dev, REG_CONFIG, (read_reg(dev, REG_CONFIG) & ~(mask << offs)) | (val << offs)); } -bool ads111x_busy(uint8_t addr) +bool ads111x_busy(i2c_dev_t* dev) { - return read_conf_bits(addr, OS_OFFSET, OS_MASK); + return read_conf_bits(dev, OS_OFFSET, OS_MASK); } -void ads111x_start_conversion(uint8_t addr) +void ads111x_start_conversion(i2c_dev_t* dev) { - write_conf_bits(addr, 1, OS_OFFSET, OS_MASK); + write_conf_bits(dev, 1, OS_OFFSET, OS_MASK); } -int16_t ads111x_get_value(uint8_t addr) +int16_t ads111x_get_value(i2c_dev_t* dev) { - return read_reg(addr, REG_CONVERSION); + return read_reg(dev, REG_CONVERSION); } -ads111x_gain_t ads111x_get_gain(uint8_t addr) +ads111x_gain_t ads111x_get_gain(i2c_dev_t* dev) { - return read_conf_bits(addr, PGA_OFFSET, PGA_MASK); + return read_conf_bits(dev, PGA_OFFSET, PGA_MASK); } -void ads111x_set_gain(uint8_t addr, ads111x_gain_t gain) +void ads111x_set_gain(i2c_dev_t* dev, ads111x_gain_t gain) { - write_conf_bits(addr, gain, PGA_OFFSET, PGA_MASK); + write_conf_bits(dev, gain, PGA_OFFSET, PGA_MASK); } -ads111x_mux_t ads111x_get_input_mux(uint8_t addr) +ads111x_mux_t ads111x_get_input_mux(i2c_dev_t* dev) { - return read_conf_bits(addr, MUX_OFFSET, MUX_MASK); + return read_conf_bits(dev, MUX_OFFSET, MUX_MASK); } -void ads111x_set_input_mux(uint8_t addr, ads111x_mux_t mux) +void ads111x_set_input_mux(i2c_dev_t* dev, ads111x_mux_t mux) { - write_conf_bits(addr, mux, MUX_OFFSET, MUX_MASK); + write_conf_bits(dev, mux, MUX_OFFSET, MUX_MASK); } -ads111x_mode_t ads111x_get_mode(uint8_t addr) +ads111x_mode_t ads111x_get_mode(i2c_dev_t* dev) { - return read_conf_bits(addr, MODE_OFFSET, MODE_MASK); + return read_conf_bits(dev, MODE_OFFSET, MODE_MASK); } -void ads111x_set_mode(uint8_t addr, ads111x_mode_t mode) +void ads111x_set_mode(i2c_dev_t* dev, ads111x_mode_t mode) { - write_conf_bits(addr, mode, MODE_OFFSET, MODE_MASK); + write_conf_bits(dev, mode, MODE_OFFSET, MODE_MASK); } -ads111x_data_rate_t ads111x_get_data_rate(uint8_t addr) +ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t* dev) { - return read_conf_bits(addr, DR_OFFSET, DR_MASK); + return read_conf_bits(dev, DR_OFFSET, DR_MASK); } -void ads111x_set_data_rate(uint8_t addr, ads111x_data_rate_t rate) +void ads111x_set_data_rate(i2c_dev_t* dev, ads111x_data_rate_t rate) { - write_conf_bits(addr, rate, DR_OFFSET, DR_MASK); + write_conf_bits(dev, rate, DR_OFFSET, DR_MASK); } -ads111x_comp_mode_t ads111x_get_comp_mode(uint8_t addr) +ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t* dev) { - return read_conf_bits(addr, COMP_MODE_OFFSET, COMP_MODE_MASK); + return read_conf_bits(dev, COMP_MODE_OFFSET, COMP_MODE_MASK); } -void ads111x_set_comp_mode(uint8_t addr, ads111x_comp_mode_t mode) +void ads111x_set_comp_mode(i2c_dev_t* dev, ads111x_comp_mode_t mode) { - write_conf_bits(addr, mode, COMP_MODE_OFFSET, COMP_MODE_MASK); + write_conf_bits(dev, mode, COMP_MODE_OFFSET, COMP_MODE_MASK); } -ads111x_comp_polarity_t ads111x_get_comp_polarity(uint8_t addr) +ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t* dev) { - return read_conf_bits(addr, COMP_POL_OFFSET, COMP_POL_MASK); + return read_conf_bits(dev, COMP_POL_OFFSET, COMP_POL_MASK); } -void ads111x_set_comp_polarity(uint8_t addr, ads111x_comp_polarity_t polarity) +void ads111x_set_comp_polarity(i2c_dev_t* dev, ads111x_comp_polarity_t polarity) { - write_conf_bits(addr, polarity, COMP_POL_OFFSET, COMP_POL_MASK); + write_conf_bits(dev, polarity, COMP_POL_OFFSET, COMP_POL_MASK); } -ads111x_comp_latch_t ads111x_get_comp_latch(uint8_t addr) +ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t* dev) { - return read_conf_bits(addr, COMP_LAT_OFFSET, COMP_LAT_MASK); + return read_conf_bits(dev, COMP_LAT_OFFSET, COMP_LAT_MASK); } -void ads111x_set_comp_latch(uint8_t addr, ads111x_comp_latch_t latch) +void ads111x_set_comp_latch(i2c_dev_t* dev, ads111x_comp_latch_t latch) { - write_conf_bits(addr, latch, COMP_LAT_OFFSET, COMP_LAT_MASK); + write_conf_bits(dev, latch, COMP_LAT_OFFSET, COMP_LAT_MASK); } -ads111x_comp_queue_t ads111x_get_comp_queue(uint8_t addr) +ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t* dev) { - return read_conf_bits(addr, COMP_QUE_OFFSET, COMP_QUE_MASK); + return read_conf_bits(dev, COMP_QUE_OFFSET, COMP_QUE_MASK); } -void ads111x_set_comp_queue(uint8_t addr, ads111x_comp_queue_t queue) +void ads111x_set_comp_queue(i2c_dev_t* dev, ads111x_comp_queue_t queue) { - write_conf_bits(addr, queue, COMP_QUE_OFFSET, COMP_QUE_MASK); + write_conf_bits(dev, queue, COMP_QUE_OFFSET, COMP_QUE_MASK); } -int16_t ads111x_get_comp_low_thresh(uint8_t addr) +int16_t ads111x_get_comp_low_thresh(i2c_dev_t* dev) { - return read_reg(addr, REG_THRESH_L); + return read_reg(dev, REG_THRESH_L); } -void ads111x_set_comp_low_thresh(uint8_t addr, int16_t thresh) +void ads111x_set_comp_low_thresh(i2c_dev_t* dev, int16_t thresh) { - write_reg(addr, REG_THRESH_L, thresh); + write_reg(dev, REG_THRESH_L, thresh); } -int16_t ads111x_get_comp_high_thresh(uint8_t addr) +int16_t ads111x_get_comp_high_thresh(i2c_dev_t* dev) { - return read_reg(addr, REG_THRESH_H); + return read_reg(dev, REG_THRESH_H); } -void ads111x_set_comp_high_thresh(uint8_t addr, int16_t thresh) +void ads111x_set_comp_high_thresh(i2c_dev_t* dev, int16_t thresh) { - write_reg(addr, REG_THRESH_H, thresh); + write_reg(dev, REG_THRESH_H, thresh); } diff --git a/extras/ads111x/ads111x.h b/extras/ads111x/ads111x.h index fe64464..af93d4e 100644 --- a/extras/ads111x/ads111x.h +++ b/extras/ads111x/ads111x.h @@ -10,6 +10,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -124,20 +125,20 @@ typedef enum * @param addr Deivce address * @return true when device performing conversion */ -bool ads111x_busy(uint8_t addr); +bool ads111x_busy(i2c_dev_t* dev); /** * Begin a single conversion (when in single-shot mode) * @param addr Deivce address */ -void ads111x_start_conversion(uint8_t addr); +void ads111x_start_conversion(i2c_dev_t* dev); /** * Read last conversion result * @param addr * @return Last conversion result */ -int16_t ads111x_get_value(uint8_t addr); +int16_t ads111x_get_value(i2c_dev_t* dev); /** * Read the programmable gain amplifier configuration @@ -145,70 +146,70 @@ int16_t ads111x_get_value(uint8_t addr); * @param addr Deivce address * @return Gain value */ -ads111x_gain_t ads111x_get_gain(uint8_t addr); +ads111x_gain_t ads111x_get_gain(i2c_dev_t* dev); /** * Configure the programmable gain amplifier (ADS1114 and ADS1115 only) * @param addr Deivce address * @param gain Gain value */ -void ads111x_set_gain(uint8_t addr, ads111x_gain_t gain); +void ads111x_set_gain(i2c_dev_t* dev, ads111x_gain_t gain); /** * Read the input multiplexer configuration (ADS1115 only) * @param addr Deivce address * @return Input multiplexer configuration */ -ads111x_mux_t ads111x_get_input_mux(uint8_t addr); +ads111x_mux_t ads111x_get_input_mux(i2c_dev_t* dev); /** * Configure the input multiplexer configuration (ADS1115 only) * @param addr Deivce address * @param mux Input multiplexer configuration */ -void ads111x_set_input_mux(uint8_t addr, ads111x_mux_t mux); +void ads111x_set_input_mux(i2c_dev_t* dev, ads111x_mux_t mux); /** * Read the device operating mode * @param addr Deivce address * @return Device operating mode */ -ads111x_mode_t ads111x_get_mode(uint8_t addr); +ads111x_mode_t ads111x_get_mode(i2c_dev_t* dev); /** * Set the device operating mode * @param addr Deivce address * @param mode Device operating mode */ -void ads111x_set_mode(uint8_t addr, ads111x_mode_t mode); +void ads111x_set_mode(i2c_dev_t* dev, ads111x_mode_t mode); /** * Read the data rate * @param addr Deivce address * @return Data rate */ -ads111x_data_rate_t ads111x_get_data_rate(uint8_t addr); +ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t* dev); /** * Configure the data rate * @param addr Deivce address * @param rate Data rate */ -void ads111x_set_data_rate(uint8_t addr, ads111x_data_rate_t rate); +void ads111x_set_data_rate(i2c_dev_t* dev, ads111x_data_rate_t rate); /** * Get comparator mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @return Comparator mode */ -ads111x_comp_mode_t ads111x_get_comp_mode(uint8_t addr); +ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t* dev); /** * Set comparator mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @param mode Comparator mode */ -void ads111x_set_comp_mode(uint8_t addr, ads111x_comp_mode_t mode); +void ads111x_set_comp_mode(i2c_dev_t* dev, ads111x_comp_mode_t mode); /** * Get polarity of the comparator output pin ALERT/RDY @@ -216,7 +217,7 @@ void ads111x_set_comp_mode(uint8_t addr, ads111x_comp_mode_t mode); * @param addr Deivce address * @return Comparator output pin polarity */ -ads111x_comp_polarity_t ads111x_get_comp_polarity(uint8_t addr); +ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t* dev); /** * Set polarity of the comparator output pin ALERT/RDY @@ -224,7 +225,7 @@ ads111x_comp_polarity_t ads111x_get_comp_polarity(uint8_t addr); * @param addr Deivce address * @param polarity Comparator output pin polarity */ -void ads111x_set_comp_polarity(uint8_t addr, ads111x_comp_polarity_t polarity); +void ads111x_set_comp_polarity(i2c_dev_t* dev, ads111x_comp_polarity_t polarity); /** * Get comparator output latch mode, see datasheet. @@ -232,14 +233,14 @@ void ads111x_set_comp_polarity(uint8_t addr, ads111x_comp_polarity_t polarity); * @param addr Deivce address * @return Comparator output latch mode */ -ads111x_comp_latch_t ads111x_get_comp_latch(uint8_t addr); +ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t* dev); /** * Set comparator output latch mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @param latch Comparator output latch mode */ -void ads111x_set_comp_latch(uint8_t addr, ads111x_comp_latch_t latch); +void ads111x_set_comp_latch(i2c_dev_t* dev, ads111x_comp_latch_t latch); /** * Set number of the comparator conversions before pin ALERT/RDY @@ -247,7 +248,7 @@ void ads111x_set_comp_latch(uint8_t addr, ads111x_comp_latch_t latch); * @param addr Deivce address * @return Number of the comparator conversions */ -ads111x_comp_queue_t ads111x_get_comp_queue(uint8_t addr); +ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t* dev); /** * Get number of the comparator conversions before pin ALERT/RDY @@ -255,35 +256,35 @@ ads111x_comp_queue_t ads111x_get_comp_queue(uint8_t addr); * @param addr Deivce address * @param queue Number of the comparator conversions */ -void ads111x_set_comp_queue(uint8_t addr, ads111x_comp_queue_t queue); +void ads111x_set_comp_queue(i2c_dev_t* dev, ads111x_comp_queue_t queue); /** * Get the lower threshold value used by comparator * @param addr Deivce address * @return Lower threshold value */ -int16_t ads111x_get_comp_low_thresh(uint8_t addr); +int16_t ads111x_get_comp_low_thresh(i2c_dev_t* dev); /** * Set the lower threshold value used by comparator * @param addr Deivce address * @param thresh Lower threshold value */ -void ads111x_set_comp_low_thresh(uint8_t addr, int16_t thresh); +void ads111x_set_comp_low_thresh(i2c_dev_t* dev, int16_t thresh); /** * Get the upper threshold value used by comparator * @param addr Deivce address * @return Upper threshold value */ -int16_t ads111x_get_comp_high_thresh(uint8_t addr); +int16_t ads111x_get_comp_high_thresh(i2c_dev_t* dev); /** * Set the upper threshold value used by comparator * @param addr Deivce address * @param thresh Upper threshold value */ -void ads111x_set_comp_high_thresh(uint8_t addr, int16_t thresh); +void ads111x_set_comp_high_thresh(i2c_dev_t* dev, int16_t thresh); #ifdef __cplusplus } diff --git a/extras/bh1750/bh1750.c b/extras/bh1750/bh1750.c index 68e623a..51860d0 100644 --- a/extras/bh1750/bh1750.c +++ b/extras/bh1750/bh1750.c @@ -6,20 +6,19 @@ * BSD Licensed as described in the file LICENSE */ #include "bh1750.h" -#include #include -void bh1750_configure(uint8_t addr, uint8_t mode) +void bh1750_configure(i2c_dev_t *dev, uint8_t mode) { - i2c_slave_write(addr, NULL, &mode, 1); + i2c_slave_write(dev->bus, dev->addr, NULL, &mode, 1); } -uint16_t bh1750_read(uint8_t addr) +uint16_t bh1750_read(i2c_dev_t *dev) { uint8_t buf[2]; uint16_t level; - i2c_slave_read(addr, NULL, buf, 2); + i2c_slave_read(dev->bus, dev->addr, NULL, buf, 2); level = buf[0] << 8 | buf[1]; level = (level * 10) / 12; // convert to LUX diff --git a/extras/bh1750/bh1750.h b/extras/bh1750/bh1750.h index b280c45..a6bcae6 100644 --- a/extras/bh1750/bh1750.h +++ b/extras/bh1750/bh1750.h @@ -13,6 +13,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { @@ -65,7 +66,7 @@ extern "C" { * * Example: BH1750_ADDR_LO, BH1750_CONTINUOUS_MODE | BH1750_HIGH_RES_MODE */ -void bh1750_configure(uint8_t addr, uint8_t mode); +void bh1750_configure(i2c_dev_t *dev, uint8_t mode); /** * Read LUX value from the device. @@ -73,7 +74,7 @@ void bh1750_configure(uint8_t addr, uint8_t mode); * @param addr Device address * @returns read value in lux units */ -uint16_t bh1750_read(uint8_t addr); +uint16_t bh1750_read(i2c_dev_t *dev); #ifdef __cplusplus } diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index df7a503..2cf513e 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -7,13 +7,9 @@ #include "espressif/esp_common.h" #include "espressif/sdk_private.h" -#include "i2c/i2c.h" - #define BMP180_RX_QUEUE_SIZE 10 #define BMP180_TASK_PRIORITY 9 -#define BMP180_DEVICE_ADDRESS 0x77 - #define BMP180_VERSION_REG 0xD0 #define BMP180_CONTROL_REG 0xF4 #define BMP180_RESET_REG 0xE0 @@ -39,43 +35,43 @@ // #define BMP180_RESET_VALUE 0xB6 -static int bmp180_readRegister16(uint8_t reg, int16_t *r) +static int bmp180_readRegister16(i2c_dev_t *dev, uint8_t reg, int16_t *r) { uint8_t d[] = { 0, 0 }; int error ; - if ((error = i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, d, 2))) + if ((error = i2c_slave_read(dev->bus, dev->addr, ®, d, 2))) return error; *r = ((int16_t)d[0] << 8) | (d[1]); return 0; } -static int bmp180_start_Messurement(uint8_t cmd) +static int bmp180_start_Messurement(i2c_dev_t *dev, uint8_t cmd) { uint8_t reg = BMP180_CONTROL_REG ; - return i2c_slave_write(BMP180_DEVICE_ADDRESS, ®, &cmd, 1); + return i2c_slave_write(dev->bus, dev->addr, ®, &cmd, 1); } -static bool bmp180_get_uncompensated_temperature(int32_t *ut) +static bool bmp180_get_uncompensated_temperature(i2c_dev_t *dev, int32_t *ut) { // Write Start Code into reg 0xF4. - if (bmp180_start_Messurement(BMP180_MEASURE_TEMP)) + if (bmp180_start_Messurement(dev, BMP180_MEASURE_TEMP)) return false; // Wait 5ms, datasheet states 4.5ms sdk_os_delay_us(5000); int16_t v; - if (bmp180_readRegister16(BMP180_OUT_MSB_REG, &v)) + if (bmp180_readRegister16(dev, BMP180_OUT_MSB_REG, &v)) return false; *ut = v; return true; } -static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) +static bool bmp180_get_uncompensated_pressure(i2c_dev_t *dev, uint8_t oss, uint32_t *up) { uint16_t us; @@ -89,14 +85,14 @@ static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) } // Write Start Code into reg 0xF4 - if (bmp180_start_Messurement(BMP180_MEASURE_PRESS | (oss << 6))) + if (bmp180_start_Messurement(dev, BMP180_MEASURE_PRESS | (oss << 6))) return false; sdk_os_delay_us(us); uint8_t d[] = { 0, 0, 0 }; uint8_t reg = BMP180_OUT_MSB_REG; - if (i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, d, 3)) + if (i2c_slave_read(dev->bus, dev->addr, ®, d, 3)) return false; uint32_t r = ((uint32_t)d[0] << 16) | ((uint32_t)d[1] << 8) | d[2]; @@ -106,19 +102,19 @@ static bool bmp180_get_uncompensated_pressure(uint8_t oss, uint32_t *up) } // Returns true of success else false. -bool bmp180_fillInternalConstants(bmp180_constants_t *c) +bool bmp180_fillInternalConstants(i2c_dev_t *dev, bmp180_constants_t *c) { - if (bmp180_readRegister16(BMP180_CALIBRATION_REG+0, &c->AC1) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+2, &c->AC2) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+4, &c->AC3) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+6, (int16_t *)&c->AC4) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+8, (int16_t *)&c->AC5) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+10, (int16_t *)&c->AC6) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+12, &c->B1) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+14, &c->B2) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+16, &c->MB) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+18, &c->MC) || - bmp180_readRegister16(BMP180_CALIBRATION_REG+20, &c->MD)) { + if (bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+0, &c->AC1) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+2, &c->AC2) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+4, &c->AC3) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+6, (int16_t *)&c->AC4) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+8, (int16_t *)&c->AC5) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+10, (int16_t *)&c->AC6) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+12, &c->B1) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+14, &c->B2) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+16, &c->MB) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+18, &c->MC) || + bmp180_readRegister16(dev, BMP180_CALIBRATION_REG+20, &c->MD)) { return false; } @@ -139,16 +135,16 @@ bool bmp180_fillInternalConstants(bmp180_constants_t *c) c->MB == 0xffff || c->MC == 0xffff || c->MD == 0xffff); } -bool bmp180_is_available() +bool bmp180_is_available(i2c_dev_t *dev) { uint8_t id; uint8_t reg = BMP180_VERSION_REG; - if (i2c_slave_read(BMP180_DEVICE_ADDRESS, ®, &id, 1)) + if (i2c_slave_read(dev->bus, dev->addr, ®, &id, 1)) return false; return id == BMP180_CHIP_ID; } -bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, +bool bmp180_measure(i2c_dev_t *dev, bmp180_constants_t *c, int32_t *temperature, uint32_t *pressure, uint8_t oss) { int32_t T, P; @@ -160,7 +156,7 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, // // Calculation taken from BMP180 Datasheet int32_t UT, X1, X2, B5; - if (!bmp180_get_uncompensated_temperature(&UT)) + if (!bmp180_get_uncompensated_temperature(dev, &UT)) return false; X1 = ((UT - (int32_t)c->AC6) * (int32_t)c->AC5) >> 15; @@ -177,7 +173,7 @@ bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, int32_t X3, B3, B6; uint32_t B4, B7, UP; - if (!bmp180_get_uncompensated_pressure(oss, &UP)) + if (!bmp180_get_uncompensated_pressure(dev, oss, &UP)) return false; // Calculation taken from BMP180 Datasheet @@ -220,8 +216,8 @@ typedef struct } bmp180_command_t; // Just works due to the fact that QueueHandle_t is a "void *" -static QueueHandle_t bmp180_rx_queue = NULL; -static TaskHandle_t bmp180_task_handle = NULL; +static QueueHandle_t bmp180_rx_queue[MAX_I2C_BUS] = { NULL }; +static TaskHandle_t bmp180_task_handle[MAX_I2C_BUS] = { NULL }; // // Forward declarations @@ -237,6 +233,7 @@ static void bmp180_driver_task(void *pvParameters) // Data to be received from user bmp180_command_t current_command; bmp180_constants_t bmp180_constants; + i2c_dev_t *dev = (i2c_dev_t*)pvParameters; #ifdef BMP180_DEBUG // Wait for commands from the outside @@ -244,14 +241,14 @@ static void bmp180_driver_task(void *pvParameters) #endif // Initialize all internal constants. - if (!bmp180_fillInternalConstants(&bmp180_constants)) { + if (!bmp180_fillInternalConstants(dev, &bmp180_constants)) { printf("%s: reading internal constants failed\n", __FUNCTION__); vTaskDelete(NULL); } while(1) { // Wait for user to insert commands - if (xQueueReceive(bmp180_rx_queue, ¤t_command, portMAX_DELAY) == pdTRUE) { + if (xQueueReceive(bmp180_rx_queue[dev->bus], ¤t_command, portMAX_DELAY) == pdTRUE) { #ifdef BMP180_DEBUG printf("%s: Received user command %d 0x%p\n", __FUNCTION__, current_command.cmd, current_command.resultQueue); #endif @@ -261,7 +258,7 @@ static void bmp180_driver_task(void *pvParameters) int32_t T = 0; uint32_t P = 0; - if (bmp180_measure(&bmp180_constants, &T, (current_command.cmd & BMP180_PRESSURE) ? &P : NULL, 3)) { + if (bmp180_measure(dev, &bmp180_constants, &T, (current_command.cmd & BMP180_PRESSURE) ? &P : NULL, 3)) { // Inform the user ... if (!bmp180_informUser(current_command.resultQueue, current_command.cmd, @@ -276,22 +273,22 @@ static void bmp180_driver_task(void *pvParameters) } } -static bool bmp180_create_communication_queues() +static bool bmp180_create_communication_queues(i2c_dev_t *dev) { - // Just create them once - if (bmp180_rx_queue == NULL) - bmp180_rx_queue = xQueueCreate(BMP180_RX_QUEUE_SIZE, sizeof(bmp180_result_t)); + // Just create them once by bus + if (bmp180_rx_queue[dev->bus] == NULL) + bmp180_rx_queue[dev->bus] = xQueueCreate(BMP180_RX_QUEUE_SIZE, sizeof(bmp180_result_t)); - return bmp180_rx_queue != NULL; + return bmp180_rx_queue[dev->bus] != NULL; } -static bool bmp180_createTask() +static bool bmp180_createTask(i2c_dev_t *dev) { // We already have a task portBASE_TYPE x = pdPASS; - if (bmp180_task_handle == NULL) { - x = xTaskCreate(bmp180_driver_task, "bmp180_driver_task", 256, NULL, BMP180_TASK_PRIORITY, &bmp180_task_handle); + if (bmp180_task_handle[dev->bus] == NULL) { + x = xTaskCreate(bmp180_driver_task, "bmp180_driver_task", 256, (void*)dev, BMP180_TASK_PRIORITY, &bmp180_task_handle[dev->bus]); //TODO: name task with i2c bus } return x == pdPASS; } @@ -309,54 +306,51 @@ static bool bmp180_informUser_Impl(const QueueHandle_t* resultQueue, uint8_t cmd } // Just init all needed queues -bool bmp180_init(uint8_t scl, uint8_t sda) +bool bmp180_init(i2c_dev_t *dev) { // 1. Create required queues bool result = false; - if (bmp180_create_communication_queues()) { - // 2. Init i2c driver - i2c_init(scl, sda); - // 3. Check for bmp180 ... - if (bmp180_is_available()) { - // 4. Start driver task - if (bmp180_createTask()) { + if (bmp180_create_communication_queues(dev)) { + // 2. Check for bmp180 ... + if (bmp180_is_available(dev)) { + // 3. Start driver task + if (bmp180_createTask(dev)) { // We are finished result = true; } } } - return result; } -void bmp180_trigger_measurement(const QueueHandle_t* resultQueue) +void bmp180_trigger_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue) { bmp180_command_t c; c.cmd = BMP180_PRESSURE + BMP180_TEMPERATURE; c.resultQueue = resultQueue; - xQueueSend(bmp180_rx_queue, &c, 0); + xQueueSend(bmp180_rx_queue[dev->bus], &c, 0); } -void bmp180_trigger_pressure_measurement(const QueueHandle_t* resultQueue) +void bmp180_trigger_pressure_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue) { bmp180_command_t c; c.cmd = BMP180_PRESSURE; c.resultQueue = resultQueue; - xQueueSend(bmp180_rx_queue, &c, 0); + xQueueSend(bmp180_rx_queue[dev->bus], &c, 0); } -void bmp180_trigger_temperature_measurement(const QueueHandle_t* resultQueue) +void bmp180_trigger_temperature_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue) { bmp180_command_t c; c.cmd = BMP180_TEMPERATURE; c.resultQueue = resultQueue; - xQueueSend(bmp180_rx_queue, &c, 0); + xQueueSend(bmp180_rx_queue[dev->bus], &c, 0); } diff --git a/extras/bmp180/bmp180.h b/extras/bmp180/bmp180.h index 2f46150..a29a1ae 100644 --- a/extras/bmp180/bmp180.h +++ b/extras/bmp180/bmp180.h @@ -14,9 +14,13 @@ #include "FreeRTOS.h" #include "queue.h" +#include "i2c/i2c.h" + // Uncomment to enable debug output //#define BMP180_DEBUG +#define BMP180_DEVICE_ADDRESS 0x77 + #define BMP180_TEMPERATURE (1<<0) #define BMP180_PRESSURE (1<<1) @@ -42,16 +46,16 @@ typedef struct } bmp180_result_t; // Init bmp180 driver ... -bool bmp180_init(uint8_t scl, uint8_t sda); +bool bmp180_init(i2c_dev_t *dev); // Trigger a "complete" measurement (temperature and pressure will be valid when given to "bmp180_informUser) -void bmp180_trigger_measurement(const QueueHandle_t* resultQueue); +void bmp180_trigger_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue); // Trigger a "temperature only" measurement (only temperature will be valid when given to "bmp180_informUser) -void bmp180_trigger_temperature_measurement(const QueueHandle_t* resultQueue); +void bmp180_trigger_temperature_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue); // Trigger a "pressure only" measurement (only pressure will be valid when given to "bmp180_informUser) -void bmp180_trigger_pressure_measurement(const QueueHandle_t* resultQueue); +void bmp180_trigger_pressure_measurement(i2c_dev_t *dev, const QueueHandle_t* resultQueue); // Give the user the chance to create it's own handler extern bool (*bmp180_informUser)(const QueueHandle_t* resultQueue, uint8_t cmd, bmp180_temp_t temperature, bmp180_press_t pressure); @@ -75,12 +79,12 @@ typedef struct } bmp180_constants_t; // Returns true if the bmp180 is detected. -bool bmp180_is_available(); +bool bmp180_is_available(i2c_dev_t *dev); // Reads all the internal constants, returning true on success. -bool bmp180_fillInternalConstants(bmp180_constants_t *c); +bool bmp180_fillInternalConstants(i2c_dev_t *dev, bmp180_constants_t *c); // Reads an optional temperature and pressure. The over sampling // setting, oss, may be 0 to 3. Returns true on success. -bool bmp180_measure(bmp180_constants_t *c, int32_t *temperature, +bool bmp180_measure(i2c_dev_t *dev, bmp180_constants_t *c, int32_t *temperature, uint32_t *pressure, uint8_t oss); #ifdef __cplusplus diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index a106b07..abff6fd 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -23,7 +23,6 @@ */ #include #include "bmp280.h" -#include "i2c/i2c.h" #ifdef BMP280_DEBUG #include @@ -66,37 +65,36 @@ void bmp280_init_default_params(bmp280_params_t *params) params->standby = BMP280_STANDBY_250; } -static bool read_register16(uint8_t i2c_addr, uint8_t addr, uint16_t *value) +static bool read_register16(i2c_dev_t* dev, uint8_t addr, uint16_t *value) { uint8_t d[] = {0, 0}; - if (!i2c_slave_read(i2c_addr, &addr, d, sizeof(d))) { + if (!i2c_slave_read(dev->bus, dev->addr, &addr, d, sizeof(d))) { *value = d[0] | (d[1] << 8); return true; } return false; } -static inline int read_data(uint8_t i2c_addr, uint8_t addr, uint8_t *value, uint8_t len) +static inline int read_data(i2c_dev_t* dev, uint8_t addr, uint8_t *value, uint8_t len) { - return i2c_slave_read(i2c_addr, &addr, value, len); + return i2c_slave_read(dev->bus, dev->addr, &addr, value, len); } static bool read_calibration_data(bmp280_t *dev) { - uint8_t i2c_addr = dev->i2c_addr; - if (read_register16(i2c_addr, 0x88, &dev->dig_T1) && - read_register16(i2c_addr, 0x8a, (uint16_t *)&dev->dig_T2) && - read_register16(i2c_addr, 0x8c, (uint16_t *)&dev->dig_T3) && - read_register16(i2c_addr, 0x8e, &dev->dig_P1) && - read_register16(i2c_addr, 0x90, (uint16_t *)&dev->dig_P2) && - read_register16(i2c_addr, 0x92, (uint16_t *)&dev->dig_P3) && - read_register16(i2c_addr, 0x94, (uint16_t *)&dev->dig_P4) && - read_register16(i2c_addr, 0x96, (uint16_t *)&dev->dig_P5) && - read_register16(i2c_addr, 0x98, (uint16_t *)&dev->dig_P6) && - read_register16(i2c_addr, 0x9a, (uint16_t *)&dev->dig_P7) && - read_register16(i2c_addr, 0x9c, (uint16_t *)&dev->dig_P8) && - read_register16(i2c_addr, 0x9e, (uint16_t *)&dev->dig_P9)) { + if (read_register16(&dev->i2c_dev, 0x88, &dev->dig_T1) && + read_register16(&dev->i2c_dev, 0x8a, (uint16_t *)&dev->dig_T2) && + read_register16(&dev->i2c_dev, 0x8c, (uint16_t *)&dev->dig_T3) && + read_register16(&dev->i2c_dev, 0x8e, &dev->dig_P1) && + read_register16(&dev->i2c_dev, 0x90, (uint16_t *)&dev->dig_P2) && + read_register16(&dev->i2c_dev, 0x92, (uint16_t *)&dev->dig_P3) && + read_register16(&dev->i2c_dev, 0x94, (uint16_t *)&dev->dig_P4) && + read_register16(&dev->i2c_dev, 0x96, (uint16_t *)&dev->dig_P5) && + read_register16(&dev->i2c_dev, 0x98, (uint16_t *)&dev->dig_P6) && + read_register16(&dev->i2c_dev, 0x9a, (uint16_t *)&dev->dig_P7) && + read_register16(&dev->i2c_dev, 0x9c, (uint16_t *)&dev->dig_P8) && + read_register16(&dev->i2c_dev, 0x9e, (uint16_t *)&dev->dig_P9)) { debug("Calibration data received:"); debug("dig_T1=%d", dev->dig_T1); @@ -120,15 +118,14 @@ static bool read_calibration_data(bmp280_t *dev) static bool read_hum_calibration_data(bmp280_t *dev) { - uint8_t i2c_addr = dev->i2c_addr; uint16_t h4, h5; - if (!read_data(i2c_addr, 0xa1, &dev->dig_H1, 1) && - read_register16(i2c_addr, 0xe1, (uint16_t *)&dev->dig_H2) && - !read_data(i2c_addr, 0xe3, &dev->dig_H3, 1) && - read_register16(i2c_addr, 0xe4, &h4) && - read_register16(i2c_addr, 0xe5, &h5) && - !read_data(i2c_addr, 0xe7, (uint8_t *)&dev->dig_H6, 1)) { + if (!read_data(&dev->i2c_dev, 0xa1, &dev->dig_H1, 1) && + read_register16(&dev->i2c_dev, 0xe1, (uint16_t *)&dev->dig_H2) && + !read_data(&dev->i2c_dev, 0xe3, &dev->dig_H3, 1) && + read_register16(&dev->i2c_dev, 0xe4, &h4) && + read_register16(&dev->i2c_dev, 0xe5, &h5) && + !read_data(&dev->i2c_dev, 0xe7, (uint8_t *)&dev->dig_H6, 1)) { dev->dig_H4 = (h4 & 0x00ff) << 4 | (h4 & 0x0f00) >> 8; dev->dig_H5 = h5 >> 4; debug("Calibration data received:"); @@ -144,21 +141,20 @@ static bool read_hum_calibration_data(bmp280_t *dev) return false; } -static int write_register8(uint8_t i2c_addr, uint8_t addr, uint8_t value) +static int write_register8(i2c_dev_t* dev, uint8_t addr, uint8_t value) { - return i2c_slave_write(i2c_addr, &addr, &value, 1); + return i2c_slave_write(dev->bus, dev->addr, &addr, &value, 1); } bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) { - uint8_t i2c_addr = dev->i2c_addr; - if (i2c_addr != BMP280_I2C_ADDRESS_0 && i2c_addr != BMP280_I2C_ADDRESS_1) { + if (dev->i2c_dev.addr != BMP280_I2C_ADDRESS_0 && dev->i2c_dev.addr != BMP280_I2C_ADDRESS_1) { debug("Invalid I2C address"); return false; } - if (read_data(i2c_addr, BMP280_REG_ID, &dev->id, 1)) { + if (read_data(&dev->i2c_dev, BMP280_REG_ID, &dev->id, 1)) { debug("Sensor not found"); return false; } @@ -169,7 +165,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) } // Soft reset. - if (write_register8(i2c_addr, BMP280_REG_RESET, BMP280_RESET_VALUE)) { + if (write_register8(&dev->i2c_dev, BMP280_REG_RESET, BMP280_RESET_VALUE)) { debug("Failed resetting sensor"); return false; } @@ -177,7 +173,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) // Wait until finished copying over the NVP data. while (1) { uint8_t status; - if (!read_data(i2c_addr, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) + if (!read_data(&dev->i2c_dev, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) break; } @@ -193,7 +189,7 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) uint8_t config = (params->standby << 5) | (params->filter << 2); debug("Writing config reg=%x", config); - if (write_register8(i2c_addr, BMP280_REG_CONFIG, config)) { + if (write_register8(&dev->i2c_dev, BMP280_REG_CONFIG, config)) { debug("Failed configuring sensor"); return false; } @@ -210,14 +206,14 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) // Write crtl hum reg first, only active after write to BMP280_REG_CTRL. uint8_t ctrl_hum = params->oversampling_humidity; debug("Writing ctrl hum reg=%x", ctrl_hum); - if (write_register8(i2c_addr, BMP280_REG_CTRL_HUM, ctrl_hum)) { + if (write_register8(&dev->i2c_dev, BMP280_REG_CTRL_HUM, ctrl_hum)) { debug("Failed controlling sensor"); return false; } } debug("Writing ctrl reg=%x", ctrl); - if (write_register8(i2c_addr, BMP280_REG_CTRL, ctrl)) { + if (write_register8(&dev->i2c_dev, BMP280_REG_CTRL, ctrl)) { debug("Failed controlling sensor"); return false; } @@ -228,12 +224,12 @@ bool bmp280_init(bmp280_t *dev, bmp280_params_t *params) bool bmp280_force_measurement(bmp280_t *dev) { uint8_t ctrl; - if (read_data(dev->i2c_addr, BMP280_REG_CTRL, &ctrl, 1)) + if (read_data(&dev->i2c_dev, BMP280_REG_CTRL, &ctrl, 1)) return false; ctrl &= ~0b11; // clear two lower bits ctrl |= BMP280_MODE_FORCED; debug("Writing ctrl reg=%x", ctrl); - if (write_register8(dev->i2c_addr, BMP280_REG_CTRL, ctrl)) { + if (write_register8(&dev->i2c_dev, BMP280_REG_CTRL, ctrl)) { debug("Failed starting forced mode"); return false; } @@ -243,7 +239,7 @@ bool bmp280_force_measurement(bmp280_t *dev) bool bmp280_is_measuring(bmp280_t *dev) { uint8_t status; - if (read_data(dev->i2c_addr, BMP280_REG_STATUS, &status, 1)) + if (read_data(&dev->i2c_dev, BMP280_REG_STATUS, &status, 1)) return false; if (status & (1 << 3)) { debug("Status: measuring"); @@ -345,7 +341,7 @@ bool bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, // Need to read in one sequence to ensure they match. size_t size = humidity ? 8 : 6; - if (read_data(dev->i2c_addr, 0xf7, data, size)) { + if (read_data(&dev->i2c_dev, 0xf7, data, size)) { debug("Failed reading"); return false; } diff --git a/extras/bmp280/bmp280.h b/extras/bmp280/bmp280.h index 4646d25..39805fc 100644 --- a/extras/bmp280/bmp280.h +++ b/extras/bmp280/bmp280.h @@ -26,6 +26,7 @@ #include #include +#include "i2c/i2c.h" #ifdef __cplusplus extern "C" { @@ -127,7 +128,7 @@ typedef struct { int16_t dig_H5; int8_t dig_H6; - uint8_t i2c_addr; /* I2C address. */ + i2c_dev_t i2c_dev; /* I2C dev setting. */ uint8_t id; /* Chip ID */ } bmp280_t; diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c index f0f52c2..7cee34a 100644 --- a/extras/ds1307/ds1307.c +++ b/extras/ds1307/ds1307.c @@ -6,10 +6,8 @@ * BSD Licensed as described in the file LICENSE */ #include "ds1307.h" -#include #include -#define ADDR 0x68 #define RAM_SIZE 56 #define TIME_REG 0 @@ -40,36 +38,36 @@ static uint8_t dec2bcd(uint8_t val) return ((val / 10) << 4) + (val % 10); } -static uint8_t read_register(uint8_t reg) +static uint8_t read_register(i2c_dev_t* dev, uint8_t reg) { uint8_t val; - i2c_slave_read(ADDR, ®, &val, 1); + i2c_slave_read(dev->bus, dev->addr, ®, &val, 1); return val; } -static void update_register(uint8_t reg, uint8_t mask, uint8_t val) +static void update_register(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) { - uint8_t buf = (read_register(reg) & mask) | val; + uint8_t buf = (read_register(dev,reg) & mask) | val; - i2c_slave_write(ADDR, ®, &buf, 1); + i2c_slave_write(dev->bus, dev->addr, ®, &buf, 1); } -void ds1307_start(bool start) +void ds1307_start(i2c_dev_t* dev, bool start) { - update_register(TIME_REG, CH_MASK, start ? 0 : CH_BIT); + update_register(dev, TIME_REG, CH_MASK, start ? 0 : CH_BIT); } -bool ds1307_is_running() +bool ds1307_is_running(i2c_dev_t* dev) { - return !(read_register(TIME_REG) & CH_BIT); + return !(read_register(dev, TIME_REG) & CH_BIT); } -void ds1307_get_time(struct tm *time) +void ds1307_get_time(i2c_dev_t* dev, struct tm *time) { uint8_t buf[7]; uint8_t reg = TIME_REG ; - i2c_slave_read(ADDR, ® , buf, 7); + i2c_slave_read(dev->bus, dev->addr, ® , buf, 7); time->tm_sec = bcd2dec(buf[0] & SECONDS_MASK); time->tm_min = bcd2dec(buf[1]); @@ -87,7 +85,7 @@ void ds1307_get_time(struct tm *time) time->tm_year = bcd2dec(buf[6]) + 2000; } -void ds1307_set_time(const struct tm *time) +void ds1307_set_time(i2c_dev_t* dev, const struct tm *time) { uint8_t buf[8]; buf[0] = TIME_REG; @@ -99,51 +97,51 @@ void ds1307_set_time(const struct tm *time) buf[6] = dec2bcd(time->tm_mon + 1); buf[7] = dec2bcd(time->tm_year - 2000); - i2c_slave_write(ADDR, &buf[0], &buf[1] , 7); + i2c_slave_write(dev->bus, dev->addr, &buf[0], &buf[1] , 7); } -void ds1307_enable_squarewave(bool enable) +void ds1307_enable_squarewave(i2c_dev_t* dev, bool enable) { - update_register(CONTROL_REG, SQWE_MASK, enable ? SQWE_BIT : 0); + update_register(dev, CONTROL_REG, SQWE_MASK, enable ? SQWE_BIT : 0); } -bool ds1307_is_squarewave_enabled() +bool ds1307_is_squarewave_enabled(i2c_dev_t* dev) { - return read_register(CONTROL_REG) & SQWE_BIT; + return read_register(dev, CONTROL_REG) & SQWE_BIT; } -void ds1307_set_squarewave_freq(ds1307_squarewave_freq_t freq) +void ds1307_set_squarewave_freq(i2c_dev_t* dev, ds1307_squarewave_freq_t freq) { - update_register(CONTROL_REG, SQWEF_MASK, (uint8_t)freq); + update_register(dev, CONTROL_REG, SQWEF_MASK, (uint8_t)freq); } -ds1307_squarewave_freq_t ds1307_get_squarewave_freq() +ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t* dev) { - return (ds1307_squarewave_freq_t)(read_register(CONTROL_REG) & SQWEF_MASK); + return (ds1307_squarewave_freq_t)(read_register(dev, CONTROL_REG) & SQWEF_MASK); } -bool ds1307_get_output() +bool ds1307_get_output(i2c_dev_t* dev) { - return read_register(CONTROL_REG) & OUT_BIT; + return read_register(dev, CONTROL_REG) & OUT_BIT; } -void ds1307_set_output(bool value) +void ds1307_set_output(i2c_dev_t* dev, bool value) { - update_register(CONTROL_REG, OUT_MASK, value ? OUT_BIT : 0); + update_register(dev, CONTROL_REG, OUT_MASK, value ? OUT_BIT : 0); } -int ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_read_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len) { if (offset + len > RAM_SIZE) return false; uint8_t reg = RAM_REG + offset ; - return i2c_slave_read(ADDR, ®, buf, len); + return i2c_slave_read(dev->bus, dev->addr, ®, buf, len); } -int ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_write_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len) { if (offset + len > RAM_SIZE) return false; uint8_t reg = RAM_REG + offset ; - return i2c_slave_write(ADDR, ®, buf, len); + return i2c_slave_write(dev->bus, dev->addr, ®, buf, len); } diff --git a/extras/ds1307/ds1307.h b/extras/ds1307/ds1307.h index 5af38ae..9baa904 100644 --- a/extras/ds1307/ds1307.h +++ b/extras/ds1307/ds1307.h @@ -11,11 +11,13 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { #endif +#define DS1307_ADDR 0x68 /** * Squarewave frequency */ @@ -31,62 +33,62 @@ typedef enum _ds1307_squarewave_freq_t * \brief Start/stop clock * \param start Start clock if true */ -void ds1307_start(bool start); +void ds1307_start(i2c_dev_t* dev, bool start); /** * \brief Get current clock state * \return true if clock running */ -bool ds1307_is_running(); +bool ds1307_is_running(i2c_dev_t* dev); /** * \brief Get current time * \param time Pointer to the time struct to fill */ -void ds1307_get_time(struct tm *time); +void ds1307_get_time(i2c_dev_t* dev, struct tm *time); /** * \brief Set time to RTC * \param time Pointer to the time struct */ -void ds1307_set_time(const struct tm *time); +void ds1307_set_time(i2c_dev_t* dev, const struct tm *time); /** * \brief Enable or disable square-wave oscillator output * \param enable Enable oscillator if true */ -void ds1307_enable_squarewave(bool enable); +void ds1307_enable_squarewave(i2c_dev_t* dev, bool enable); /** * \brief Get square-wave oscillator output * \return true if square-wave oscillator enabled */ -bool ds1307_is_squarewave_enabled(); +bool ds1307_is_squarewave_enabled(i2c_dev_t* dev); /** * \brief Set square-wave oscillator frequency * \param freq Frequency */ -void ds1307_set_squarewave_freq(ds1307_squarewave_freq_t freq); +void ds1307_set_squarewave_freq(i2c_dev_t* dev, ds1307_squarewave_freq_t freq); /** * \brief Get current square-wave oscillator frequency * \return Frequency */ -ds1307_squarewave_freq_t ds1307_get_squarewave_freq(); +ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t* dev); /** * \brief Get current output level of the SQW/OUT pin * \return true if high */ -bool ds1307_get_output(); +bool ds1307_get_output(i2c_dev_t* dev); /** * \brief Set output level of the SQW/OUT pin * Set output level if square-wave output is disabled * \param value High level if true */ -void ds1307_set_output(bool value); +void ds1307_set_output(i2c_dev_t* dev, bool value); /** * \brief Read RAM contents into the buffer @@ -95,7 +97,7 @@ void ds1307_set_output(bool value); * \param len Bytes to read, 1..56 * \return Non-zero if error occured */ -int ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_read_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len); /** * \brief Write buffer to RTC RAM @@ -104,7 +106,7 @@ int ds1307_read_ram(uint8_t offset, uint8_t *buf, uint8_t len); * \param len Bytes to write, 1..56 * \return Non-zero if error occured */ -int ds1307_write_ram(uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_write_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len); #ifdef __cplusplus diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c index 4de534c..dfc5757 100644 --- a/extras/ds3231/ds3231.c +++ b/extras/ds3231/ds3231.c @@ -11,7 +11,6 @@ #include "espressif/sdk_private.h" #include "esp8266.h" -#include "i2c/i2c.h" /* Convert normal decimal to binary coded decimal */ static inline uint8_t decToBcd(uint8_t dec) @@ -28,20 +27,20 @@ static inline uint8_t bcdToDec(uint8_t bcd) /* Send a number of bytes to the rtc over i2c * returns true to indicate success */ -static inline int ds3231_send(uint8_t reg, uint8_t *data, uint8_t len) +static inline int ds3231_send(i2c_dev_t *dev, uint8_t reg, uint8_t *data, uint8_t len) { - return i2c_slave_write(DS3231_ADDR, ®, data, len); + return i2c_slave_write(dev->bus, dev->addr, ®, data, len); } /* Read a number of bytes from the rtc over i2c * returns true to indicate success */ -static inline int ds3231_recv(uint8_t reg, uint8_t *data, uint8_t len) +static inline int ds3231_recv(i2c_dev_t *dev, uint8_t reg, uint8_t *data, uint8_t len) { - return i2c_slave_read(DS3231_ADDR, ®, data, len); + return i2c_slave_read(dev->bus, dev->addr, ®, data, len); } -int ds3231_setTime(struct tm *time) +int ds3231_setTime(i2c_dev_t *dev, struct tm *time) { uint8_t data[7]; @@ -54,10 +53,10 @@ int ds3231_setTime(struct tm *time) data[5] = decToBcd(time->tm_mon + 1); data[6] = decToBcd(time->tm_year - 100); - return ds3231_send(DS3231_ADDR_TIME, data, 7); + return ds3231_send(dev, DS3231_ADDR_TIME, data, 7); } -int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2) +int ds3231_setAlarm(i2c_dev_t *dev, uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2) { int i = 0; uint8_t data[7]; @@ -81,7 +80,7 @@ int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm (option2 == DS3231_ALARM2_MATCH_MINHOURDATE ? decToBcd(time2->tm_mday) : DS3231_ALARM_NOTSET)); } - return ds3231_send((alarms == DS3231_ALARM_2 ? DS3231_ADDR_ALARM2 : DS3231_ADDR_ALARM1), data, i); + return ds3231_send(dev, (alarms == DS3231_ALARM_2 ? DS3231_ADDR_ALARM2 : DS3231_ADDR_ALARM1), data, i); } /* Get a byte containing just the requested bits @@ -91,12 +90,12 @@ int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm * of use a mask of 0xff to just return the whole register byte * returns true to indicate success */ -bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag) +bool ds3231_getFlag(i2c_dev_t *dev, uint8_t addr, uint8_t mask, uint8_t *flag) { uint8_t data; /* get register */ - if (!ds3231_recv(addr, &data, 1)) + if (!ds3231_recv(dev, addr, &data, 1)) { /* return only requested flag */ *flag = (data & mask); @@ -112,12 +111,12 @@ bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag) * DS3231_SET/DS3231_CLEAR/DS3231_REPLACE * returns true to indicate success */ -bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode) +bool ds3231_setFlag(i2c_dev_t *dev, uint8_t addr, uint8_t bits, uint8_t mode) { uint8_t data; /* get status register */ - if (!ds3231_recv(addr, &data, 1)) + if (!ds3231_recv(dev, addr, &data, 1)) { /* clear the flag */ if (mode == DS3231_REPLACE) @@ -127,18 +126,18 @@ bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode) else data &= ~bits; - if (!ds3231_send(addr, &data, 1)) + if (!ds3231_send(dev, addr, &data, 1)) return true; } return false; } -bool ds3231_getOscillatorStopFlag(bool *flag) +bool ds3231_getOscillatorStopFlag(i2c_dev_t *dev, bool *flag) { uint8_t f; - if (ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, &f)) + if (ds3231_getFlag(dev, DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, &f)) { *flag = (f ? true : false); return true; @@ -147,76 +146,76 @@ bool ds3231_getOscillatorStopFlag(bool *flag) return false; } -inline bool ds3231_clearOscillatorStopFlag() +inline bool ds3231_clearOscillatorStopFlag(i2c_dev_t *dev) { - return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, DS3231_CLEAR); + return ds3231_setFlag(dev, DS3231_ADDR_STATUS, DS3231_STAT_OSCILLATOR, DS3231_CLEAR); } -inline bool ds3231_getAlarmFlags(uint8_t *alarms) +inline bool ds3231_getAlarmFlags(i2c_dev_t *dev, uint8_t *alarms) { - return ds3231_getFlag(DS3231_ADDR_STATUS, DS3231_ALARM_BOTH, alarms); + return ds3231_getFlag(dev, DS3231_ADDR_STATUS, DS3231_ALARM_BOTH, alarms); } -inline bool ds3231_clearAlarmFlags(uint8_t alarms) +inline bool ds3231_clearAlarmFlags(i2c_dev_t *dev, uint8_t alarms) { - return ds3231_setFlag(DS3231_ADDR_STATUS, alarms, DS3231_CLEAR); + return ds3231_setFlag(dev, DS3231_ADDR_STATUS, alarms, DS3231_CLEAR); } -inline bool ds3231_enableAlarmInts(uint8_t alarms) +inline bool ds3231_enableAlarmInts(i2c_dev_t *dev, uint8_t alarms) { - return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS | alarms, DS3231_SET); + return ds3231_setFlag(dev, DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS | alarms, DS3231_SET); } -inline bool ds3231_disableAlarmInts(uint8_t alarms) +inline bool ds3231_disableAlarmInts(i2c_dev_t *dev, uint8_t alarms) { /* Just disable specific alarm(s) requested * does not disable alarm interrupts generally (which would enable the squarewave) */ - return ds3231_setFlag(DS3231_ADDR_CONTROL, alarms, DS3231_CLEAR); + return ds3231_setFlag(dev, DS3231_ADDR_CONTROL, alarms, DS3231_CLEAR); } -inline bool ds3231_enable32khz() +inline bool ds3231_enable32khz(i2c_dev_t *dev) { - return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_SET); + return ds3231_setFlag(dev, DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_SET); } -inline bool ds3231_disable32khz() +inline bool ds3231_disable32khz(i2c_dev_t *dev) { - return ds3231_setFlag(DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_CLEAR); + return ds3231_setFlag(dev, DS3231_ADDR_STATUS, DS3231_STAT_32KHZ, DS3231_CLEAR); } -inline bool ds3231_enableSquarewave() +inline bool ds3231_enableSquarewave(i2c_dev_t *dev) { - return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_CLEAR); + return ds3231_setFlag(dev, DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_CLEAR); } -inline bool ds3231_disableSquarewave() +inline bool ds3231_disableSquarewave(i2c_dev_t *dev) { - return ds3231_setFlag(DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_SET); + return ds3231_setFlag(dev, DS3231_ADDR_CONTROL, DS3231_CTRL_ALARM_INTS, DS3231_SET); } -bool ds3231_setSquarewaveFreq(uint8_t freq) +bool ds3231_setSquarewaveFreq(i2c_dev_t *dev, uint8_t freq) { uint8_t flag = 0; - if (ds3231_getFlag(DS3231_ADDR_CONTROL, 0xff, &flag)) + if (ds3231_getFlag(dev, DS3231_ADDR_CONTROL, 0xff, &flag)) { /* clear current rate */ flag &= ~DS3231_CTRL_SQWAVE_8192HZ; /* set new rate */ flag |= freq; - return ds3231_setFlag(DS3231_ADDR_CONTROL, flag, DS3231_REPLACE); + return ds3231_setFlag(dev, DS3231_ADDR_CONTROL, flag, DS3231_REPLACE); } return false; } -bool ds3231_getRawTemp(int16_t *temp) +bool ds3231_getRawTemp(i2c_dev_t *dev, int16_t *temp) { uint8_t data[2]; data[0] = DS3231_ADDR_TEMP; - if (!ds3231_recv(DS3231_ADDR_TEMP,data, 2)) + if (!ds3231_recv(dev, DS3231_ADDR_TEMP,data, 2)) { *temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6; return true; @@ -225,11 +224,11 @@ bool ds3231_getRawTemp(int16_t *temp) return false; } -bool ds3231_getTempInteger(int8_t *temp) +bool ds3231_getTempInteger(i2c_dev_t *dev, int8_t *temp) { int16_t tInt; - if (ds3231_getRawTemp(&tInt)) { + if (ds3231_getRawTemp(dev, &tInt)) { *temp = tInt >> 2; return true; } @@ -237,11 +236,11 @@ bool ds3231_getTempInteger(int8_t *temp) return false; } -bool ds3231_getTempFloat(float *temp) +bool ds3231_getTempFloat(i2c_dev_t *dev, float *temp) { int16_t tInt; - if (ds3231_getRawTemp(&tInt)) { + if (ds3231_getRawTemp(dev, &tInt)) { *temp = tInt * 0.25; return true; } @@ -249,12 +248,12 @@ bool ds3231_getTempFloat(float *temp) return false; } -bool ds3231_getTime(struct tm *time) +bool ds3231_getTime(i2c_dev_t *dev, struct tm *time) { uint8_t data[7]; /* read time */ - if (ds3231_recv(DS3231_ADDR_TIME, data, 7)) + if (ds3231_recv(dev, DS3231_ADDR_TIME, data, 7)) { return false; } @@ -281,10 +280,5 @@ bool ds3231_getTime(struct tm *time) //applyTZ(time); return true; - -} -void ds3231_Init(uint8_t scl, uint8_t sda) -{ - i2c_init(scl, sda); } diff --git a/extras/ds3231/ds3231.h b/extras/ds3231/ds3231.h index 40ff596..6ef9ff7 100644 --- a/extras/ds3231/ds3231.h +++ b/extras/ds3231/ds3231.h @@ -12,6 +12,8 @@ #include #include #include +#include "i2c/i2c.h" + #ifdef __cplusplus extern "C" { @@ -87,7 +89,7 @@ enum { * I suggest using GMT and applying timezone and DST when read back * returns true to indicate success */ -int ds3231_setTime(struct tm *time); +int ds3231_setTime(i2c_dev_t *dev, struct tm *time); /* Set alarms * alarm1 works with seconds, minutes, hours and day of week/month, or fires every second @@ -100,30 +102,30 @@ int ds3231_setTime(struct tm *time); * if you want to enable interrupts for the alarms you need to do that separately * returns true to indicate success */ -int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2); +int ds3231_setAlarm(i2c_dev_t *dev, uint8_t alarms, struct tm *time1, uint8_t option1, struct tm *time2, uint8_t option2); /* Check if oscillator has previously stopped, e.g. no power/battery or disabled * sets flag to true if there has been a stop * returns true to indicate success */ -bool ds3231_getOscillatorStopFlag(bool *flag); +bool ds3231_getOscillatorStopFlag(i2c_dev_t *dev, bool *flag); /* Clear the oscillator stopped flag * returns true to indicate success */ -bool ds3231_clearOscillatorStopFlag(); +bool ds3231_clearOscillatorStopFlag(i2c_dev_t *dev); /* Check which alarm(s) have past * sets alarms to DS3231_ALARM_NONE/DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH * returns true to indicate success */ -bool ds3231_getAlarmFlags(uint8_t *alarms); +bool ds3231_getAlarmFlags(i2c_dev_t *dev, uint8_t *alarms); /* Clear alarm past flag(s) * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH * returns true to indicate success */ -bool ds3231_clearAlarmFlags(uint8_t alarm); +bool ds3231_clearAlarmFlags(i2c_dev_t *dev, uint8_t alarm); /* enable alarm interrupts (and disables squarewave) * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH @@ -132,61 +134,60 @@ bool ds3231_clearAlarmFlags(uint8_t alarm); * interrupt enabled, else it will trigger immediately * returns true to indicate success */ -bool ds3231_enableAlarmInts(uint8_t alarms); +bool ds3231_enableAlarmInts(i2c_dev_t *dev, uint8_t alarms); /* Disable alarm interrupts (does not (re-)enable squarewave) * pass DS3231_ALARM_1/DS3231_ALARM_2/DS3231_ALARM_BOTH * returns true to indicate success */ -bool ds3231_disableAlarmInts(uint8_t alarms); +bool ds3231_disableAlarmInts(i2c_dev_t *dev, uint8_t alarms); /* Enable the output of 32khz signal * returns true to indicate success */ -bool ds3231_enable32khz(); +bool ds3231_enable32khz(i2c_dev_t *dev); /* Disable the output of 32khz signal * returns true to indicate success */ -bool ds3231_disable32khz(); +bool ds3231_disable32khz(i2c_dev_t *dev); /* Enable the squarewave output (disables alarm interrupt functionality) * returns true to indicate success */ -bool ds3231_enableSquarewave(); +bool ds3231_enableSquarewave(i2c_dev_t *dev); /* Disable the squarewave output (which re-enables alarm interrupts, but individual * alarm interrupts also need to be enabled, if not already, before they will trigger) * returns true to indicate success */ -bool ds3231_disableSquarewave(); +bool ds3231_disableSquarewave(i2c_dev_t *dev); /* Set the frequency of the squarewave output (but does not enable it) * pass DS3231_SQUAREWAVE_RATE_1HZ/DS3231_SQUAREWAVE_RATE_1024HZ/DS3231_SQUAREWAVE_RATE_4096HZ/DS3231_SQUAREWAVE_RATE_8192HZ * returns true to indicate success */ -bool ds3231_setSquarewaveFreq(uint8_t freq); +bool ds3231_setSquarewaveFreq(i2c_dev_t *dev, uint8_t freq); /* Get the raw value * returns true to indicate success */ -bool ds3231_getRawTemp(int16_t *temp); +bool ds3231_getRawTemp(i2c_dev_t *dev, int16_t *temp); /* Get the temperature as an integer * returns true to indicate success */ -bool ds3231_getTempInteger(int8_t *temp); +bool ds3231_getTempInteger(i2c_dev_t *dev, int8_t *temp); /* Get the temerapture as a float (in quarter degree increments) * returns true to indicate success */ -bool ds3231_getTempFloat(float *temp); +bool ds3231_getTempFloat(i2c_dev_t *dev, float *temp); /* Get the time from the rtc, populates a supplied tm struct * returns true to indicate success */ -bool ds3231_getTime(struct tm *time); -void ds3231_Init(uint8_t scl, uint8_t sda); +bool ds3231_getTime(i2c_dev_t *dev, struct tm *time); #ifdef __cplusplus } diff --git a/extras/hd44780/hd44780.c b/extras/hd44780/hd44780.c index b44f65a..d7bbc0a 100644 --- a/extras/hd44780/hd44780.c +++ b/extras/hd44780/hd44780.c @@ -60,8 +60,8 @@ static void write_nibble(const hd44780_t *lcd, uint8_t b, bool rs) | (rs ? 1 << lcd->pins.rs : 0) | (lcd->backlight ? 1 << lcd->pins.bl : 0); - pcf8574_port_write(lcd->addr, data | (1 << lcd->pins.e)); - pcf8574_port_write(lcd->addr, data); + pcf8574_port_write(&lcd->i2c_dev, data | (1 << lcd->pins.e)); + pcf8574_port_write(&lcd->i2c_dev, data); #else gpio_write(lcd->pins.d7, (b >> 3) & 1); gpio_write(lcd->pins.d6, (b >> 2) & 1); @@ -164,7 +164,7 @@ void hd44780_set_backlight(hd44780_t *lcd, bool on) return; #if (HD44780_I2C) - pcf8574_gpio_write(lcd->addr, lcd->pins.bl, on); + pcf8574_gpio_write(&lcd->i2c_dev, lcd->pins.bl, on); #else gpio_write(lcd->pins.bl, on); #endif diff --git a/extras/hd44780/hd44780.h b/extras/hd44780/hd44780.h index a00302b..c5152de 100644 --- a/extras/hd44780/hd44780.h +++ b/extras/hd44780/hd44780.h @@ -12,7 +12,10 @@ #include #ifndef HD44780_I2C -#define HD44780_I2C 0 +#define HD44780_I2C 1 +#endif +#if (HD44780_I2C) +#include #endif #ifdef __cplusplus @@ -36,7 +39,9 @@ typedef enum */ typedef struct { - uint8_t addr; //!< PCF8574 address (0b0100) +#if (HD44780_I2C) + i2c_dev_t i2c_dev; //!< PCF8574 device settings (0b0100) +#endif struct { uint8_t rs; //!< gpio/register bit used for RS pin diff --git a/extras/hmc5883l/hmc5883l.c b/extras/hmc5883l/hmc5883l.c index 265258d..e970fa2 100644 --- a/extras/hmc5883l/hmc5883l.c +++ b/extras/hmc5883l/hmc5883l.c @@ -6,10 +6,8 @@ * BSD Licensed as described in the file LICENSE */ #include "hmc5883l.h" -#include #include -#define ADDR 0x1e #define REG_CR_A 0x00 #define REG_CR_B 0x01 @@ -54,112 +52,112 @@ static const float gain_values [] = { static float current_gain; static hmc5883l_operating_mode_t current_mode; -static inline void write_register(uint8_t reg, uint8_t val) +static inline void write_register(i2c_dev_t* dev, uint8_t reg, uint8_t val) { - i2c_slave_write(ADDR, ®, &val, 1); + i2c_slave_write(dev->bus, dev->addr, ®, &val, 1); } -static inline uint8_t read_register(uint8_t reg) +static inline uint8_t read_register(i2c_dev_t* dev, uint8_t reg) { uint8_t res; - i2c_slave_read(ADDR, ®, &res, 1); + i2c_slave_read(dev->bus, dev->addr, ®, &res, 1); return res; } -static inline void update_register(uint8_t reg, uint8_t mask, uint8_t val) +static inline void update_register(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) { - write_register(reg, (read_register(reg) & mask) | val); + write_register(dev, reg, (read_register(dev, reg) & mask) | val); } -bool hmc5883l_init() +bool hmc5883l_init(i2c_dev_t* dev) { - if (hmc5883l_get_id() != HMC5883L_ID) + if (hmc5883l_get_id(dev) != HMC5883L_ID) return false; - current_gain = gain_values[hmc5883l_get_gain()]; - current_mode = hmc5883l_get_operating_mode(); + current_gain = gain_values[hmc5883l_get_gain(dev)]; + current_mode = hmc5883l_get_operating_mode(dev); return true; } -uint32_t hmc5883l_get_id() +uint32_t hmc5883l_get_id(i2c_dev_t* dev) { uint32_t res = 0; uint8_t reg = REG_ID_A; - i2c_slave_read(ADDR, ®, (uint8_t *)&res, 3); + i2c_slave_read(dev->bus, dev->addr, ®, (uint8_t *)&res, 3); return res; } -hmc5883l_operating_mode_t hmc5883l_get_operating_mode() +hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t* dev) { - uint8_t res = read_register(REG_MODE) & MASK_MD; + uint8_t res = read_register(dev, REG_MODE) & MASK_MD; return res == 0 ? HMC5883L_MODE_CONTINUOUS : HMC5883L_MODE_SINGLE; } -void hmc5883l_set_operating_mode(hmc5883l_operating_mode_t mode) +void hmc5883l_set_operating_mode(i2c_dev_t* dev, hmc5883l_operating_mode_t mode) { - write_register(REG_MODE, mode); + write_register(dev, REG_MODE, mode); current_mode = mode; } -hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged() +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t* dev) { - return (read_register(REG_CR_A) & MASK_MA) >> BIT_MA; + return (read_register(dev, REG_CR_A) & MASK_MA) >> BIT_MA; } -void hmc5883l_set_samples_averaged(hmc5883l_samples_averaged_t samples) +void hmc5883l_set_samples_averaged(i2c_dev_t* dev, hmc5883l_samples_averaged_t samples) { - update_register(REG_CR_A, MASK_MA, samples << BIT_MA); + update_register(dev, REG_CR_A, MASK_MA, samples << BIT_MA); } -hmc5883l_data_rate_t hmc5883l_get_data_rate() +hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t* dev) { - return (read_register(REG_CR_A) & MASK_DO) >> BIT_DO; + return (read_register(dev, REG_CR_A) & MASK_DO) >> BIT_DO; } -void hmc5883l_set_data_rate(hmc5883l_data_rate_t rate) +void hmc5883l_set_data_rate(i2c_dev_t* dev, hmc5883l_data_rate_t rate) { - update_register(REG_CR_A, MASK_DO, rate << BIT_DO); + update_register(dev, REG_CR_A, MASK_DO, rate << BIT_DO); } -hmc5883l_bias_t hmc5883l_get_bias() +hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t* dev) { - return read_register(REG_CR_A) & MASK_MS; + return read_register(dev, REG_CR_A) & MASK_MS; } -void hmc5883l_set_bias(hmc5883l_bias_t bias) +void hmc5883l_set_bias(i2c_dev_t* dev, hmc5883l_bias_t bias) { - update_register(REG_CR_A, MASK_MS, bias); + update_register(dev, REG_CR_A, MASK_MS, bias); } -hmc5883l_gain_t hmc5883l_get_gain() +hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t* dev) { - return read_register(REG_CR_B) >> BIT_GN; + return read_register(dev, REG_CR_B) >> BIT_GN; } -void hmc5883l_set_gain(hmc5883l_gain_t gain) +void hmc5883l_set_gain(i2c_dev_t* dev, hmc5883l_gain_t gain) { - write_register(REG_CR_B, gain << BIT_GN); + write_register(dev, REG_CR_B, gain << BIT_GN); current_gain = gain_values[gain]; } -bool hmc5883l_data_is_locked() +bool hmc5883l_data_is_locked(i2c_dev_t* dev) { - return read_register(REG_STAT) & MASK_DL; + return read_register(dev, REG_STAT) & MASK_DL; } -bool hmc5883l_data_is_ready() +bool hmc5883l_data_is_ready(i2c_dev_t* dev) { - return read_register(REG_STAT) & MASK_DR; + return read_register(dev, REG_STAT) & MASK_DR; } -bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data) +bool hmc5883l_get_raw_data(i2c_dev_t* dev, hmc5883l_raw_data_t *data) { if (current_mode == HMC5883L_MODE_SINGLE) { // overwrite mode register for measurement - hmc5883l_set_operating_mode(current_mode); + hmc5883l_set_operating_mode(dev, current_mode); // wait for data uint32_t start = sdk_system_get_time(); - while (!hmc5883l_data_is_ready()) + while (!hmc5883l_data_is_ready(dev)) { if (timeout_expired(start, MEASUREMENT_TIMEOUT)) return false; @@ -167,7 +165,7 @@ bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data) } uint8_t buf[6]; uint8_t reg = REG_DX_H; - i2c_slave_read(ADDR, ®, buf, 6); + i2c_slave_read(dev->bus, dev->addr, ®, buf, 6); data->x = ((int16_t)buf[REG_DX_H - REG_DX_H] << 8) | buf[REG_DX_L - REG_DX_H]; data->y = ((int16_t)buf[REG_DY_H - REG_DX_H] << 8) | buf[REG_DY_L - REG_DX_H]; data->z = ((int16_t)buf[REG_DZ_H - REG_DX_H] << 8) | buf[REG_DZ_L - REG_DX_H]; @@ -181,11 +179,11 @@ void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg) mg->z = raw->z * current_gain; } -bool hmc5883l_get_data(hmc5883l_data_t *data) +bool hmc5883l_get_data(i2c_dev_t* dev, hmc5883l_data_t *data) { hmc5883l_raw_data_t raw; - if (!hmc5883l_get_raw_data(&raw)) + if (!hmc5883l_get_raw_data(dev, &raw)) return false; hmc5883l_raw_to_mg(&raw, data); return true; diff --git a/extras/hmc5883l/hmc5883l.h b/extras/hmc5883l/hmc5883l.h index 720a385..5958e61 100644 --- a/extras/hmc5883l/hmc5883l.h +++ b/extras/hmc5883l/hmc5883l.h @@ -10,12 +10,15 @@ #include #include +#include #ifdef __cplusplus extern "C" { #endif +#define HMC5883L_ADDR 0x1e + #define HMC5883L_ID 0x00333448 // "H43" /** @@ -101,82 +104,82 @@ typedef struct * \brief Init device * \return false if error occured */ -bool hmc5883l_init(); +bool hmc5883l_init(i2c_dev_t* dev); /** * \brief Get device ID * Always returns 0x00333448 if IC functioning properly. * \return Device ID */ -uint32_t hmc5883l_get_id(); +uint32_t hmc5883l_get_id(i2c_dev_t* dev); /** * \brief Get operating mode * \return Measurement mode */ -hmc5883l_operating_mode_t hmc5883l_get_operating_mode(); +hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t* dev); /** * \brief Set operating mode * \param mode Measurement mode */ -void hmc5883l_set_operating_mode(hmc5883l_operating_mode_t mode); +void hmc5883l_set_operating_mode(i2c_dev_t* dev, hmc5883l_operating_mode_t mode); /** * \brief Get number of samples averaged per measurement output * \return Number of samples */ -hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(); +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t* dev); /** * \brief Set number of samples averaged per measurement output * \param samples Number of samples */ -void hmc5883l_set_samples_averaged(hmc5883l_samples_averaged_t samples); +void hmc5883l_set_samples_averaged(i2c_dev_t* dev, hmc5883l_samples_averaged_t samples); /** * \brief Get data output rate in continuous measurement mode * \return Data output rate */ -hmc5883l_data_rate_t hmc5883l_get_data_rate(); +hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t* dev); /** * \brief Set data output rate in continuous measurement mode * \param rate Data output rate */ -void hmc5883l_set_data_rate(hmc5883l_data_rate_t rate); +void hmc5883l_set_data_rate(i2c_dev_t* dev, hmc5883l_data_rate_t rate); /** * \brief Get measurement mode (bias of the axes) * See datasheet for self test description * \return Bias */ -hmc5883l_bias_t hmc5883l_get_bias(); +hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t* dev); /** * \brief Set measurement mode (bias of the axes) * See datasheet for self test description * \param bias Bias */ -void hmc5883l_set_bias(hmc5883l_bias_t bias); +void hmc5883l_set_bias(i2c_dev_t* dev, hmc5883l_bias_t bias); /** * \brief Get device gain * \return Current gain */ -hmc5883l_gain_t hmc5883l_get_gain(); +hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t* dev); /** * \brief Set device gain * \param gain Gain */ -void hmc5883l_set_gain(hmc5883l_gain_t gain); +void hmc5883l_set_gain(i2c_dev_t* dev, hmc5883l_gain_t gain); /** * \brief Get data state * \return true when data is written to all six data registers */ -bool hmc5883l_data_is_ready(); +bool hmc5883l_data_is_ready(i2c_dev_t* dev); /** * \brief Get lock state. @@ -188,14 +191,14 @@ bool hmc5883l_data_is_ready(); * 4. power is reset. * \return true when data registers is locked */ -bool hmc5883l_data_is_locked(); +bool hmc5883l_data_is_locked(i2c_dev_t* dev); /** * \brief Get raw magnetic data * \param data Pointer to the struct to write raw data * \return false if error occured in single measurement mode, always true in continuous mode */ -bool hmc5883l_get_raw_data(hmc5883l_raw_data_t *data); +bool hmc5883l_get_raw_data(i2c_dev_t* dev, hmc5883l_raw_data_t *data); /** * \brief Convert raw magnetic data to milligausses @@ -209,7 +212,7 @@ void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg); * \param data Pointer to the struct to write data * \return false if error occured in single measurement mode, always true in continuous mode */ -bool hmc5883l_get_data(hmc5883l_data_t *data); +bool hmc5883l_get_data(i2c_dev_t* dev, hmc5883l_data_t *data); #ifdef __cplusplus } diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index fb875f4..034bcdc 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -1,18 +1,18 @@ -/* +/* * The MIT License (MIT) - * + * * Copyright (c) 2015 Johan Kanflo (github.com/kanflo) - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37,217 +37,219 @@ #define CLK_STRETCH (10) -static bool started; -static bool flag; -static bool force; -static uint8_t freq ; -static uint8_t g_scl_pin; -static uint8_t g_sda_pin; +static uint8_t freq ; // Store CPU frequency for optimisation speed in delay function ( Warning: Don't change CPU frequency during a transaction) +static i2c_bus_description_t i2c_bus[MAX_I2C_BUS]; -inline bool i2c_status(void) +inline bool i2c_status(uint8_t bus) { - return started; + return i2c_bus[bus].started; } -void i2c_init(uint8_t scl_pin, uint8_t sda_pin) +void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) { - started = false; - flag = false ; - g_scl_pin = scl_pin; - g_sda_pin = sda_pin; + i2c_bus[bus].started = false; + i2c_bus[bus].flag = false ; + i2c_bus[bus].g_scl_pin = scl_pin; + i2c_bus[bus].g_sda_pin = sda_pin; + i2c_bus[bus].frequency = freq ; // Just to prevent these pins floating too much if not connected. - gpio_set_pullup(g_scl_pin, 1, 1); - gpio_set_pullup(g_sda_pin, 1, 1); + gpio_set_pullup(i2c_bus[bus].g_scl_pin, 1, 1); + gpio_set_pullup(i2c_bus[bus].g_sda_pin, 1, 1); - gpio_enable(g_scl_pin, GPIO_OUT_OPEN_DRAIN); - gpio_enable(g_sda_pin, GPIO_OUT_OPEN_DRAIN); + gpio_enable(i2c_bus[bus].g_scl_pin, GPIO_OUT_OPEN_DRAIN); + gpio_enable(i2c_bus[bus].g_sda_pin, GPIO_OUT_OPEN_DRAIN); // I2C bus idle state. - gpio_write(g_scl_pin, 1); - gpio_write(g_sda_pin, 1); + gpio_write(i2c_bus[bus].g_scl_pin, 1); + gpio_write(i2c_bus[bus].g_sda_pin, 1); // Prevent user, if frequency is high if (sdk_system_get_cpu_freq() == SYS_CPU_80MHZ) - if (I2C_CUSTOM_DELAY_80MHZ == 1) + if (i2c_freq_array[i2c_bus[bus].frequency][1] == 1) debug("Max frequency is 320Khz at 80MHz"); } -static inline void i2c_delay(void) +void i2c_frequency(uint8_t bus, i2c_freq_t freq) +{ + i2c_bus[bus].frequency = freq ; +} + +static inline void i2c_delay(uint8_t bus) { uint32_t delay; if (freq == SYS_CPU_160MHZ) { - __asm volatile ( - "movi %0, %1" "\n" - "1: addi %0, %0, -1" "\n" - "bnez %0, 1b" "\n" - : "=a" (delay) : "i" (I2C_CUSTOM_DELAY_160MHZ)); + delay = i2c_freq_array[i2c_bus[bus].frequency][0]; + __asm volatile ( + "1: addi %0, %0, -1" "\n" + "bnez %0, 1b" "\n" + :: "a" (delay)); } else { - __asm volatile ( - "movi %0, %1" "\n" - "1: addi %0, %0, -1" "\n" - "bnez %0, 1b" "\n" - : "=a" (delay) : "i" (I2C_CUSTOM_DELAY_80MHZ)); + delay = i2c_freq_array[i2c_bus[bus].frequency][1]; + __asm volatile ( + "1: addi %0, %0, -1" "\n" + "bnez %0, 1b" "\n" + :: "a" (delay)); } } // Set SCL as input, allowing it to float high, and return current // level of line, 0 or 1 -static inline bool read_scl(void) +static inline bool read_scl(uint8_t bus) { - gpio_write(g_scl_pin, 1); - return gpio_read(g_scl_pin); // Clock high, valid ACK + gpio_write(i2c_bus[bus].g_scl_pin, 1); + return gpio_read(i2c_bus[bus].g_scl_pin); // Clock high, valid ACK } // Set SDA as input, allowing it to float high, and return current // level of line, 0 or 1 -static inline bool read_sda(void) +static inline bool read_sda(uint8_t bus) { - gpio_write(g_sda_pin, 1); + gpio_write(i2c_bus[bus].g_sda_pin, 1); // TODO: Without this delay we get arbitration lost in i2c_stop - i2c_delay(); - return gpio_read(g_sda_pin); // Clock high, valid ACK + i2c_delay(bus); + return gpio_read(i2c_bus[bus].g_sda_pin); // Clock high, valid ACK } // Actively drive SCL signal low -static inline void clear_scl(void) +static inline void clear_scl(uint8_t bus) { - gpio_write(g_scl_pin, 0); + gpio_write(i2c_bus[bus].g_scl_pin, 0); } // Actively drive SDA signal low -static inline void clear_sda(void) +static inline void clear_sda(uint8_t bus) { - gpio_write(g_sda_pin, 0); + gpio_write(i2c_bus[bus].g_sda_pin, 0); } // Output start condition -void i2c_start(void) +void i2c_start(uint8_t bus) { - uint32_t clk_stretch = CLK_STRETCH; freq = sdk_system_get_cpu_freq(); - if (started) { // if started, do a restart cond + if (i2c_bus[bus].started) { // if started, do a restart cond // Set SDA to 1 - (void) read_sda(); - i2c_delay(); - while (read_scl() == 0 && clk_stretch--) ; + (void) read_sda(bus); + i2c_delay(bus); + uint32_t clk_stretch = CLK_STRETCH; + while (read_scl(bus) == 0 && clk_stretch--) ; // Repeated start setup time, minimum 4.7us - i2c_delay(); + i2c_delay(bus); } - started = true; - if (read_sda() == 0) { - debug("arbitration lost in i2c_start"); + i2c_bus[bus].started = true; + if (read_sda(bus) == 0) { + debug("arbitration lost in i2c_start from bus %u",bus); } // SCL is high, set SDA from 1 to 0. - clear_sda(); - i2c_delay(); - clear_scl(); + clear_sda(bus); + i2c_delay(bus); + clear_scl(bus); } // Output stop condition -bool i2c_stop(void) +bool i2c_stop(uint8_t bus) { uint32_t clk_stretch = CLK_STRETCH; // Set SDA to 0 - clear_sda(); - i2c_delay(); + clear_sda(bus); + i2c_delay(bus); // Clock stretching - while (read_scl() == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) ; // Stop bit setup time, minimum 4us - i2c_delay(); + i2c_delay(bus); // SCL is high, set SDA from 0 to 1 - if (read_sda() == 0) { - debug("arbitration lost in i2c_stop"); + if (read_sda(bus) == 0) { + debug("arbitration lost in i2c_stop from bus %u",bus); } - i2c_delay(); - if (!started) { - debug("link was break!"); + i2c_delay(bus); + if (!i2c_bus[bus].started) { + debug("bus %u link was break!",bus); return false ; //If bus was stop in other way, the current transmission Failed } - started = false; + i2c_bus[bus].started = false; return true; } // Write a bit to I2C bus -static void i2c_write_bit(bool bit) +static void i2c_write_bit(uint8_t bus, bool bit) { uint32_t clk_stretch = CLK_STRETCH; if (bit) { - (void) read_sda(); + (void) read_sda(bus); } else { - clear_sda(); + clear_sda(bus); } - i2c_delay(); + i2c_delay(bus); // Clock stretching - while (read_scl() == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) ; // SCL is high, now data is valid // If SDA is high, check that nobody else is driving SDA - if (bit && read_sda() == 0) { - debug("arbitration lost in i2c_write_bit"); + if (bit && read_sda(bus) == 0) { + debug("arbitration lost in i2c_write_bit from bus %u",bus); } - i2c_delay(); - clear_scl(); + i2c_delay(bus); + clear_scl(bus); } // Read a bit from I2C bus -static bool i2c_read_bit(void) +static bool i2c_read_bit(uint8_t bus) { uint32_t clk_stretch = CLK_STRETCH; bool bit; // Let the slave drive data - (void) read_sda(); - i2c_delay(); + (void) read_sda(bus); + i2c_delay(bus); // Clock stretching - while (read_scl() == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) ; // SCL is high, now data is valid - bit = read_sda(); - i2c_delay(); - clear_scl(); + bit = read_sda(bus); + i2c_delay(bus); + clear_scl(bus); return bit; } -bool i2c_write(uint8_t byte) +bool i2c_write(uint8_t bus, uint8_t byte) { bool nack; uint8_t bit; for (bit = 0; bit < 8; bit++) { - i2c_write_bit((byte & 0x80) != 0); + i2c_write_bit(bus,(byte & 0x80) != 0); byte <<= 1; } - nack = i2c_read_bit(); + nack = i2c_read_bit(bus); return !nack; } -uint8_t i2c_read(bool ack) +uint8_t i2c_read(uint8_t bus, bool ack) { uint8_t byte = 0; uint8_t bit; for (bit = 0; bit < 8; bit++) { - byte = (byte << 1) | i2c_read_bit(); + byte = ((byte << 1)) | (i2c_read_bit(bus)); } - i2c_write_bit(ack); + i2c_write_bit(bus,ack); return byte; } -void i2c_force_bus(bool state) +void i2c_force_bus(uint8_t bus, bool state) { - force = state ; + i2c_bus[bus].force = state ; } -static int i2c_bus_test() +static int i2c_bus_test(uint8_t bus) { taskENTER_CRITICAL(); // To prevent task swaping after checking flag and before set it! - bool status = flag ; // get current status - if(force) + bool status = i2c_bus[bus].flag ; // get current status + if(i2c_bus[bus].force) { - flag = true ; // force bus on + i2c_bus[bus].flag = true ; // force bus on taskEXIT_CRITICAL(); if(status) - i2c_stop(); //Bus was busy, stop it. + i2c_stop(bus); //Bus was busy, stop it. } else { @@ -260,68 +262,68 @@ static int i2c_bus_test() } else { - flag = true ; // Set Bus busy + i2c_bus[bus].flag = true ; // Set Bus busy taskEXIT_CRITICAL(); } } return 0 ; } -int i2c_slave_write(uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len) +int i2c_slave_write(uint8_t bus, uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len) { - if(i2c_bus_test()) + if(i2c_bus_test(bus)) return -EBUSY ; - i2c_start(); - if (!i2c_write(slave_addr << 1)) + i2c_start(bus); + if (!i2c_write(bus, slave_addr << 1)) goto error; if(data != NULL) - if (!i2c_write(*data)) + if (!i2c_write(bus,*data)) goto error; while (len--) { - if (!i2c_write(*buf++)) + if (!i2c_write(bus,*buf++)) goto error; } - if (!i2c_stop()) + if (!i2c_stop(bus)) goto error; - flag = false ; // Bus free + i2c_bus[bus].flag = false ; // Bus free return 0; error: - debug("Write Error"); - i2c_stop(); - flag = false ; // Bus free + debug("Bus %u Write Error",bus); + i2c_stop(bus); + i2c_bus[bus].flag = false ; // Bus free return -EIO; } -int i2c_slave_read(uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len) +int i2c_slave_read(uint8_t bus, uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len) { - if(i2c_bus_test()) + if(i2c_bus_test(bus)) return -EBUSY ; if(data != NULL) { - i2c_start(); - if (!i2c_write(slave_addr << 1)) + i2c_start(bus); + if (!i2c_write(bus,slave_addr << 1)) goto error; - if (!i2c_write(*data)) + if (!i2c_write(bus,*data)) goto error; - if (!i2c_stop()) + if (!i2c_stop(bus)) goto error; } - i2c_start(); - if (!i2c_write(slave_addr << 1 | 1)) // Slave address + read + i2c_start(bus); + if (!i2c_write(bus,slave_addr << 1 | 1)) // Slave address + read goto error; while(len) { - *buf = i2c_read(len == 1); + *buf = i2c_read(bus,len == 1); buf++; len--; } - if (!i2c_stop()) + if (!i2c_stop(bus)) goto error; - flag = false ; // Bus free + i2c_bus[bus].flag = false ; // Bus free return 0; error: debug("Read Error"); - i2c_stop(); - flag = false ; // Bus free + i2c_stop(bus); + i2c_bus[bus].flag = false ; // Bus free return -EIO; } diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index b7936ad..c2e31cd 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -1,18 +1,18 @@ -/* +/* * The MIT License (MIT) - * + * * Copyright (c) 2015 Johan Kanflo (github.com/kanflo) - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37,22 +37,47 @@ extern "C" { /* - * Some bit can be transmit slower. - * Selected frequency fix the speed of a bit transmission - * I2C lib take the maximum frequency defined - * Don't change frequency when I2C transaction had begin + * Define i2c bus max number */ +#define MAX_I2C_BUS 2 + + +/* + * following array contain value for different frequency + * Warning : 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz + * Array format is { {160MHz, 80MHz} , {160MHz, 80MHz} , ... } + */ +#define NB_FREQ_AVAILABLE 4 + + typedef enum { + I2C_FREQ_80K = 0, + I2C_FREQ_100K, + I2C_FREQ_400K, + I2C_FREQ_500K, +} i2c_freq_t; + +const static uint8_t i2c_freq_array[NB_FREQ_AVAILABLE][2] = { {255,35}, {100,20}, {10,1}, {6,1} } ; + +/** + * Device descriptor + */ +typedef struct i2c_dev { + uint8_t bus ; + uint8_t addr ; +} i2c_dev_t ; + +/** + * Bus settings + */ +typedef struct i2c_bus_description { + uint8_t g_scl_pin; // Scl pin + uint8_t g_sda_pin; // Sda pin + uint8_t frequency; // frequency selection + bool started; + bool flag; + bool force; +} i2c_bus_description_t ; -#ifdef I2C_FREQUENCY_500K -#define I2C_CUSTOM_DELAY_160MHZ 6 -#define I2C_CUSTOM_DELAY_80MHZ 1 //Sry, maximum is 320kHz at 80MHz -#elif defined(I2C_FREQUENCY_400K) -#define I2C_CUSTOM_DELAY_160MHZ 10 -#define I2C_CUSTOM_DELAY_80MHZ 1 //Sry, maximum is 320kHz at 80MHz -#else -#define I2C_CUSTOM_DELAY_160MHZ 100 -#define I2C_CUSTOM_DELAY_80MHZ 20 -#endif // I2C driver for ESP8266 written for use with esp-open-rtos // Based on https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol @@ -62,71 +87,88 @@ extern "C" { /** * Init bitbanging I2C driver on given pins + * @param bus Bus i2c selection * @param scl_pin SCL pin for I2C * @param sda_pin SDA pin for I2C + * @param freq frequency of bus (ex : I2C_FREQ_400K) */ -void i2c_init(uint8_t scl_pin, uint8_t sda_pin); +void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq); + +/** + * Change bus frequency + * @param bus Bus i2c selection + * @param freq frequency of bus (ex : I2C_FREQ_400K) + */ +void i2c_frequency(uint8_t bus, i2c_freq_t freq); /** * Write a byte to I2C bus. + * @param bus Bus i2c selection * @param byte Pointer to device descriptor * @return true if slave acked */ -bool i2c_write(uint8_t byte); +bool i2c_write(uint8_t bus, uint8_t byte); /** * Read a byte from I2C bus. + * @param bus Bus i2c selection * @param ack Set Ack for slave (false: Ack // true: NoAck) * @return byte read from slave. */ -uint8_t i2c_read(bool ack); +uint8_t i2c_read(uint8_t bus, bool ack); /** * Send start or restart condition + * @param bus Bus i2c selection */ -void i2c_start(void); +void i2c_start(uint8_t bus); /** * Send stop condition + * @param bus Bus i2c selection * @return false if link was broken */ -bool i2c_stop(void); +bool i2c_stop(uint8_t bus); /** * get status from I2C bus. + * @param bus Bus i2c selection * @return true if busy. */ -bool i2c_status(void); +bool i2c_status(uint8_t bus); //Level 1 API (Don't need functions above) /** * This function will allow you to force a transmission I2C, cancel current transmission. * Warning: Use with precaution. Don't use it if you can avoid it. Usefull for priority transmission. + * @param bus Bus i2c selection * @param state Force the next I2C transmission if true (Use with precaution) */ -void i2c_force_bus(bool state); +void i2c_force_bus(uint8_t bus, bool state); /** * Write 'len' bytes from 'buf' to slave at 'data' register adress . + * @param bus Bus i2c selection * @param slave_addr slave device address * @param data Pointer to register address to send if non-null * @param buf Pointer to data buffer * @param len Number of byte to send * @return Non-Zero if error occured */ -int i2c_slave_write(uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len); +int i2c_slave_write(uint8_t bus, uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len); /** * Issue a send operation of 'data' register adress, followed by reading 'len' bytes * from slave into 'buf'. + * @param bus Bus i2c selection * @param slave_addr slave device address * @param data Pointer to register address to send if non-null * @param buf Pointer to data buffer * @param len Number of byte to read * @return Non-Zero if error occured */ -int i2c_slave_read(uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len); +int i2c_slave_read(uint8_t bus, uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len); #ifdef __cplusplus } diff --git a/extras/ina3221/ina3221.c b/extras/ina3221/ina3221.c index 805b09d..dc79735 100644 --- a/extras/ina3221/ina3221.c +++ b/extras/ina3221/ina3221.c @@ -18,32 +18,32 @@ #define debug(fmt, ...) #endif -static int _wireWriteRegister (uint8_t addr, uint8_t reg, uint16_t value) +static int _wireWriteRegister (const i2c_dev_t* dev, uint8_t reg, uint16_t value) { uint8_t d[2] = { 0 , 0 }; d[1] = value & 0x00FF; d[0] = (value >> 8) & 0x00FF; - debug("Data write to %02X : %02X+%04X\n",addr,reg,value); - return i2c_slave_write(addr, ®, d, sizeof(d)); + debug("Data write to bus %u at %02X : %02X+%04X\n",dev->bus, dev->addr, reg, value); + return i2c_slave_write(dev->bus, dev->addr, ®, d, sizeof(d)); } -static int _wireReadRegister(uint8_t addr, uint8_t reg, uint16_t *value) +static int _wireReadRegister(const i2c_dev_t* dev, uint8_t reg, uint16_t *value) { uint8_t d[] = {0, 0}; - int error = i2c_slave_read(addr, ®, d, sizeof(d)) - debug("Data read from %02X: %02X+%04X\n",addr,reg,*value); + int error = i2c_slave_read(dev->bus, dev->addr, ®, d, sizeof(d)) + debug("Data read from bus %u at %02X: %02X+%04X\n",dev->bus, dev->addr, reg, *value); *value = d[1] | (d[0] << 8); return error; } int ina3221_trigger(ina3221_t *dev) { - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_getStatus(ina3221_t *dev) { - return _wireReadRegister(dev->addr, INA3221_REG_MASK, &dev->mask.mask_register); + return _wireReadRegister(&dev->i2c_dev, INA3221_REG_MASK, &dev->mask.mask_register); } int ina3221_sync(ina3221_t *dev) @@ -51,17 +51,17 @@ int ina3221_sync(ina3221_t *dev) uint16_t ptr_data; int err = 0; //////////////////////// Sync config register - if ((err = _wireReadRegister(dev->addr, INA3221_REG_CONFIG, &ptr_data))) // Read config + if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_CONFIG, &ptr_data))) // Read config return err; if( ptr_data != dev->config.config_register) { - if ((err = _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register))) // Update config + if ((err = _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register))) // Update config return err; } //////////////////////// Sync mask register config - if ((err = _wireReadRegister(dev->addr, INA3221_REG_MASK, &ptr_data))) // Read mask + if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_MASK, &ptr_data))) // Read mask return err; if( (ptr_data & INA3221_MASK_CONFIG) != (dev->mask.mask_register & INA3221_MASK_CONFIG)) { - if ((err = _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG))) // Update config + if ((err = _wireWriteRegister(&dev->i2c_dev, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG))) // Update config return err; } return 0; @@ -72,7 +72,7 @@ int ina3221_setting(ina3221_t *dev ,bool mode, bool bus, bool shunt) dev->config.mode = mode; dev->config.ebus = bus; dev->config.esht = shunt; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) @@ -80,7 +80,7 @@ int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) dev->config.ch1 = ch1; dev->config.ch2 = ch2; dev->config.ch3 = ch3; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) @@ -88,32 +88,32 @@ int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) dev->mask.scc1 = ch1; dev->mask.scc2 = ch2; dev->mask.scc3 = ch3; - return _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); } int ina3221_enableLatchPin(ina3221_t *dev ,bool warning, bool critical) { dev->mask.wen = warning; dev->mask.cen = critical; - return _wireWriteRegister(dev->addr, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); } int ina3221_setAverage(ina3221_t *dev, ina3221_avg_t avg) { dev->config.avg = avg; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_setBusConversionTime(ina3221_t *dev,ina3221_ct_t ct) { dev->config.vbus = ct; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_setShuntConversionTime(ina3221_t *dev,ina3221_ct_t ct) { dev->config.vsht = ct; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } int ina3221_reset(ina3221_t *dev) @@ -121,14 +121,14 @@ int ina3221_reset(ina3221_t *dev) dev->config.config_register = INA3221_DEFAULT_CONFIG ; //dev reset dev->mask.mask_register = INA3221_DEFAULT_CONFIG ; //dev reset dev->config.rst = 1 ; - return _wireWriteRegister(dev->addr, INA3221_REG_CONFIG, dev->config.config_register); // send reset to device + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); // send reset to device } int ina3221_getBusVoltage(ina3221_t *dev, ina3221_channel_t channel, float *voltage) { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(dev->addr,INA3221_REG_BUSVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_BUSVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) return err; *voltage = raw_value*0.001 ; //V 8mV step return 0; @@ -138,12 +138,12 @@ int ina3221_getShuntValue(ina3221_t *dev, ina3221_channel_t channel, float *volt { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(dev->addr,INA3221_REG_SHUNTVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_SHUNTVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) return err; *voltage = raw_value*0.005; //mV 40uV step if(!dev->shunt[channel]) { - debug("No shunt configured for channel %u. Dev:%X\n",channel+1, dev->addr); + debug("No shunt configured for channel %u. Dev:%u:%X\n",channel+1, dev->bus, dev->addr); return -EINVAL; } *current = (*voltage*1000.0)/dev->shunt[channel] ; //mA @@ -154,7 +154,7 @@ int ina3221_getSumShuntValue(ina3221_t *dev, float *voltage) { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(dev->addr,INA3221_REG_SHUNT_VOLTAGE_SUM, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_SHUNT_VOLTAGE_SUM, (uint16_t*)&raw_value))) return err; *voltage = raw_value*0.02; //uV 40uV step return 0; @@ -163,39 +163,39 @@ int ina3221_getSumShuntValue(ina3221_t *dev, float *voltage) int ina3221_setCriticalAlert(ina3221_t *dev, ina3221_channel_t channel, float current) { int16_t raw_value = current*dev->shunt[channel]*0.2; // format - return _wireWriteRegister(dev->addr,INA3221_REG_CRITICAL_ALERT_1+channel*2, *(uint16_t*)&raw_value); + return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_CRITICAL_ALERT_1+channel*2, *(uint16_t*)&raw_value); } int ina3221_setWarningAlert(ina3221_t *dev, ina3221_channel_t channel, float current) { int16_t raw_value = current*dev->shunt[channel]*0.2 ; // format - return _wireWriteRegister(dev->addr,INA3221_REG_WARNING_ALERT_1+channel*2, *(uint16_t*)&raw_value); + return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_WARNING_ALERT_1+channel*2, *(uint16_t*)&raw_value); } int ina3221_setSumWarningAlert(ina3221_t *dev, float voltage) { int16_t raw_value = voltage*50.0 ; // format - return _wireWriteRegister(dev->addr,INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT, *(uint16_t*)&raw_value); + return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT, *(uint16_t*)&raw_value); } int ina3221_setPowerValidUpperLimit(ina3221_t *dev, float voltage) { if(!dev->config.ebus) { - debug("Bus not enable. Dev:%X\n", dev->addr); + debug("Bus not enable. Dev:%u:%X\n", dev->bus, dev->addr); return -ENOTSUP; } int16_t raw_value = voltage*1000.0; //format - return _wireWriteRegister(dev->addr,INA3221_REG_VALID_POWER_UPPER_LIMIT, *(uint16_t*)&raw_value); + return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_VALID_POWER_UPPER_LIMIT, *(uint16_t*)&raw_value); } int ina3221_setPowerValidLowerLimit(ina3221_t *dev, float voltage) { if(!dev->config.ebus) { - debug("Bus not enable. Dev:%X\n", dev->addr); + debug("Bus not enable. Dev:%u:%X\n", dev->bus, dev->addr); return -ENOTSUP; } int16_t raw_value = voltage*1000.0; // round and format - return _wireWriteRegister(dev->addr,INA3221_REG_VALID_POWER_LOWER_LIMIT, *(uint16_t*)&raw_value); + return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_VALID_POWER_LOWER_LIMIT, *(uint16_t*)&raw_value); } diff --git a/extras/ina3221/ina3221.h b/extras/ina3221/ina3221.h index 74cec76..627f3aa 100644 --- a/extras/ina3221/ina3221.h +++ b/extras/ina3221/ina3221.h @@ -132,7 +132,7 @@ typedef union * Device description */ typedef struct { - const uint8_t addr; // ina3221 I2C address + const i2c_dev_t i2c_dev; // ina3221 I2C address const uint16_t shunt[BUS_NUMBER]; //Memory of shunt value (mOhm) ina3221_config_t config; //Memory of ina3221 config ina3221_mask_t mask; //Memory of mask_config diff --git a/extras/mcp4725/mcp4725.c b/extras/mcp4725/mcp4725.c index f53d6bd..a478e67 100644 --- a/extras/mcp4725/mcp4725.c +++ b/extras/mcp4725/mcp4725.c @@ -6,62 +6,59 @@ * BSD Licensed as described in the file LICENSE */ #include "mcp4725.h" -#include #define CMD_DAC 0x40 #define CMD_EEPROM 0x60 #define BIT_READY 0x80 -static void read_data(uint8_t addr, uint8_t *buf, uint8_t size) +static void read_data(i2c_dev_t* dev, uint8_t *buf, uint8_t size) { - i2c_slave_read(addr, NULL, buf, size); + i2c_slave_read(dev->bus, dev->addr , NULL, buf, size); } -bool mcp4725_eeprom_busy(uint8_t addr) +bool mcp4725_eeprom_busy(i2c_dev_t* dev) { uint8_t res; - read_data(addr, &res, 1); + read_data(dev, &res, 1); return !(res & BIT_READY); } -mcp4725_power_mode_t mcp4725_get_power_mode(uint8_t addr, bool eeprom) +mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom) { uint8_t buf[4]; - read_data(addr, buf, eeprom ? 4 : 1); + read_data(dev, buf, eeprom ? 4 : 1); return (eeprom ? buf[3] >> 5 : buf[0] >> 1) & 0x03; } -void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom) +void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eeprom) { - uint16_t value = mcp4725_get_raw_output(addr, eeprom); + uint16_t value = mcp4725_get_raw_output(dev, eeprom); uint8_t data[] = { (eeprom ? CMD_EEPROM : CMD_DAC) | ((uint8_t)mode << 1), value >> 4, value << 4 }; - i2c_slave_write(addr, &data[0], &data[1], 2); + i2c_slave_write(dev->bus, dev->addr, &data[0], &data[1], 2); } -uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom) +uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom) { uint8_t buf[5]; - read_data(addr, buf, eeprom ? 5 : 3); + read_data(dev, buf, eeprom ? 5 : 3); return eeprom ? ((uint16_t)(buf[3] & 0x0f) << 8) | buf[4] : ((uint16_t)buf[0] << 4) | (buf[1] >> 4); } -void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom) +void mcp4725_set_raw_output(i2c_dev_t* dev, uint16_t value, bool eeprom) { uint8_t data[] = { (eeprom ? CMD_EEPROM : CMD_DAC), value >> 4, value << 4 }; - i2c_slave_write(addr, &data[0], &data[1], 2); + i2c_slave_write(dev->bus, dev->addr, &data[0], &data[1], 2); } - - diff --git a/extras/mcp4725/mcp4725.h b/extras/mcp4725/mcp4725.h index ac6d905..edb29de 100644 --- a/extras/mcp4725/mcp4725.h +++ b/extras/mcp4725/mcp4725.h @@ -10,6 +10,7 @@ #include #include +#include #ifdef __cplusplus extern "C" @@ -41,7 +42,7 @@ typedef enum * @param addr Device address * @return true when EEPROM is busy */ -bool mcp4725_eeprom_busy(uint8_t addr); +bool mcp4725_eeprom_busy(i2c_dev_t* dev); /** * Get power mode @@ -49,7 +50,7 @@ bool mcp4725_eeprom_busy(uint8_t addr); * @param eeprom Read power mode from EEPROM if true * @return Power mode */ -mcp4725_power_mode_t mcp4725_get_power_mode(uint8_t addr, bool eeprom); +mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom); /** * Set power mode @@ -57,7 +58,7 @@ mcp4725_power_mode_t mcp4725_get_power_mode(uint8_t addr, bool eeprom); * @param mode Power mode * @param eeprom Store mode to device EEPROM if true */ -void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom); +void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eeprom); /** * Get current DAC value @@ -65,7 +66,7 @@ void mcp4725_set_power_mode(uint8_t addr, mcp4725_power_mode_t mode, bool eeprom * @param eeprom Read value from device EEPROM if true * @return Raw output value, 0..4095 */ -uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom); +uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom); /** * Set DAC output value @@ -73,7 +74,7 @@ uint16_t mcp4725_get_raw_output(uint8_t addr, bool eeprom); * @param value Raw output value, 0..4095 * @param eeprom Store value to device EEPROM if true */ -void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom); +void mcp4725_set_raw_output(i2c_dev_t* dev, uint16_t value, bool eeprom); /** * Get current DAC output voltage @@ -82,9 +83,9 @@ void mcp4725_set_raw_output(uint8_t addr, uint16_t value, bool eeprom); * @param eeprom Read voltage from device EEPROM if true * @return Current output voltage, volts */ -inline float mcp4725_get_voltage(uint8_t addr, float vdd, bool eeprom) +inline float mcp4725_get_voltage(i2c_dev_t* dev, float vdd, bool eeprom) { - return vdd / MCP4725_MAX_VALUE * mcp4725_get_raw_output(addr, eeprom); + return vdd / MCP4725_MAX_VALUE * mcp4725_get_raw_output(dev, eeprom); } /** @@ -94,9 +95,9 @@ inline float mcp4725_get_voltage(uint8_t addr, float vdd, bool eeprom) * @param value Output value, volts * @param eeprom Store value to device EEPROM if true */ -inline void mcp4725_set_voltage(uint8_t addr, float vdd, float value, bool eeprom) +inline void mcp4725_set_voltage(i2c_dev_t* dev, float vdd, float value, bool eeprom) { - mcp4725_set_raw_output(addr, MCP4725_MAX_VALUE / vdd * value, eeprom); + mcp4725_set_raw_output(dev, MCP4725_MAX_VALUE / vdd * value, eeprom); } #ifdef __cplusplus diff --git a/extras/ms561101ba03/ms561101ba03.c b/extras/ms561101ba03/ms561101ba03.c index 965e9df..d88f488 100644 --- a/extras/ms561101ba03/ms561101ba03.c +++ b/extras/ms561101ba03/ms561101ba03.c @@ -8,7 +8,6 @@ * BSD Licensed as described in the file LICENSE */ #include "ms561101ba03.h" -#include #include #include "FreeRTOS.h" #include "task.h" @@ -26,10 +25,10 @@ */ #define CONVERSION_TIME 20 / portTICK_PERIOD_MS // milliseconds -static inline int reset(uint8_t addr) +static inline int reset(i2c_dev_t* i2c_dev) { uint8_t buf[1] = { RESET }; - return i2c_slave_write(addr, NULL, buf, 1); + return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, NULL, buf, 1); } static inline bool read_prom(ms561101ba03_t *dev) @@ -37,32 +36,32 @@ static inline bool read_prom(ms561101ba03_t *dev) uint8_t tmp[2] = { 0, 0 }; uint8_t reg = 0xA2 ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.sens = tmp[0] << 8 | tmp[1]; reg = 0xA4 ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.off = tmp[0] << 8 | tmp[1]; reg = 0xA6 ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tcs = tmp[0] << 8 | tmp[1]; reg = 0xA8 ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tco = tmp[0] << 8 | tmp[1]; reg = 0xAA ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.t_ref = tmp[0] << 8 | tmp[1]; reg = 0xAC ; - if (i2c_slave_read(dev->addr, ®, tmp, 2)) + if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tempsens = tmp[0] << 8 | tmp[1]; @@ -72,21 +71,21 @@ static inline bool read_prom(ms561101ba03_t *dev) static inline int start_pressure_conversion(ms561101ba03_t *dev) //D1 { uint8_t buf = CONVERT_D1 + dev->osr; - return i2c_slave_write(dev->addr, NULL, &buf, 1); + return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr, NULL, &buf, 1); } static inline int start_temperature_conversion(ms561101ba03_t *dev) //D2 { uint8_t buf = CONVERT_D2 + dev->osr; - return i2c_slave_write(dev->addr, NULL, &buf, 1); + return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr, NULL, &buf, 1); } -static inline bool read_adc(uint8_t addr, uint32_t *result) +static inline bool read_adc(i2c_dev_t* i2c_dev, uint32_t *result) { *result = 0; uint8_t tmp[3]; uint8_t reg = 0x00 ; - if (i2c_slave_read(addr, ®, tmp, 3)) + if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, ®, tmp, 3)) return false; *result = (tmp[0] << 16) | (tmp[1] << 8) | tmp[2]; @@ -144,7 +143,7 @@ static inline bool get_raw_temperature(ms561101ba03_t *dev, uint32_t *result) vTaskDelay(CONVERSION_TIME); - if (!read_adc(dev->addr, result)) + if (!read_adc(&dev->i2c_dev, result)) return false; return true; @@ -157,7 +156,7 @@ static inline bool get_raw_pressure(ms561101ba03_t *dev, uint32_t *result) vTaskDelay(CONVERSION_TIME); - if (!read_adc(dev->addr, result)) + if (!read_adc(&dev->i2c_dev, result)) return false; return true; @@ -216,7 +215,7 @@ bool ms561101ba03_get_sensor_data(ms561101ba03_t *dev) bool ms561101ba03_init(ms561101ba03_t *dev) { // First of all we need to reset the chip - if (reset(dev->addr)) + if (reset(&dev->i2c_dev)) return false; // Wait a bit for the device to reset vTaskDelay(CONVERSION_TIME); diff --git a/extras/ms561101ba03/ms561101ba03.h b/extras/ms561101ba03/ms561101ba03.h index d658be2..fb357e7 100644 --- a/extras/ms561101ba03/ms561101ba03.h +++ b/extras/ms561101ba03/ms561101ba03.h @@ -12,6 +12,7 @@ #include #include +#include #ifdef __cplusplus extern "C" @@ -60,7 +61,7 @@ typedef struct */ typedef struct { - uint8_t addr; //!< I2C address + i2c_dev_t i2c_dev; //!< I2C device settings ms561101ba03_osr_t osr; //!< Oversampling setting ms561101ba03_config_data_t config_data; //!< Device configuration, filled upon initalize ms561101ba03_result_t result; //!< Result, filled upon co diff --git a/extras/pca9685/pca9685.c b/extras/pca9685/pca9685.c index daea4fc..6b04c31 100644 --- a/extras/pca9685/pca9685.c +++ b/extras/pca9685/pca9685.c @@ -7,7 +7,6 @@ */ #include "pca9685.h" -#include #include #define REG_MODE1 0x00 @@ -59,32 +58,32 @@ inline static uint32_t round_div(uint32_t x, uint32_t y) return (x + y / 2) / y; } -inline static void write_reg(uint8_t addr, uint8_t reg, uint8_t val) +inline static void write_reg(i2c_dev_t* dev, uint8_t reg, uint8_t val) { - if (i2c_slave_write(addr, ®, &val, 1)) - debug("Could not write 0x%02x to 0x%02x, addr = 0x%02x", reg, val, addr); + if (i2c_slave_write(dev->bus, dev->addr, ®, &val, 1)) + debug("Could not write 0x%02x to 0x%02x, bus %u, addr = 0x%02x", reg, val, dev->bus, dev->addr); } -inline static uint8_t read_reg(uint8_t addr, uint8_t reg) +inline static uint8_t read_reg(i2c_dev_t* dev, uint8_t reg) { uint8_t res = 0; - if (i2c_slave_read(addr, ®, &res, 1)) - debug("Could not read from 0x%02x, addr = 0x%02x", reg, addr); + if (i2c_slave_read(dev->bus, dev->addr, ®, &res, 1)) + debug("Could not read from 0x%02x, bus %u, addr = 0x%02x", reg, dev->bus, dev->addr); return res; } -inline static void update_reg(uint8_t addr, uint8_t reg, uint8_t mask, uint8_t val) +inline static void update_reg(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) { - write_reg(addr, reg, (read_reg(addr, reg) & ~mask) | val); + write_reg(dev, reg, (read_reg(dev, reg) & ~mask) | val); } -void pca9685_init(uint8_t addr) +void pca9685_init(i2c_dev_t* dev) { // Enable autoincrement - update_reg(addr, REG_MODE1, MODE1_AI, MODE1_AI); + update_reg(dev, REG_MODE1, MODE1_AI, MODE1_AI); } -bool pca9685_set_subaddr(uint8_t addr, uint8_t num, uint8_t subaddr, bool enable) +bool pca9685_set_subaddr(i2c_dev_t* dev, uint8_t num, uint8_t subaddr, bool enable) { if (num > MAX_SUBADDR) { @@ -92,63 +91,63 @@ bool pca9685_set_subaddr(uint8_t addr, uint8_t num, uint8_t subaddr, bool enable return false; } - write_reg(addr, REG_SUBADR1 + num, subaddr << 1); + write_reg(dev, REG_SUBADR1 + num, subaddr << 1); uint8_t mask = 1 << (MODE1_SUB_BIT - num); - update_reg(addr, REG_MODE1, mask, enable ? mask : 0); + update_reg(dev, REG_MODE1, mask, enable ? mask : 0); return true; } -bool pca9685_is_sleeping(uint8_t addr) +bool pca9685_is_sleeping(i2c_dev_t* dev) { - return (read_reg(addr, REG_MODE1) & MODE1_SLEEP) != 0; + return (read_reg(dev, REG_MODE1) & MODE1_SLEEP) != 0; } -void pca9685_sleep(uint8_t addr, bool sleep) +void pca9685_sleep(i2c_dev_t* dev, bool sleep) { - update_reg(addr, REG_MODE1, MODE1_SLEEP, sleep ? MODE1_SLEEP : 0); + update_reg(dev, REG_MODE1, MODE1_SLEEP, sleep ? MODE1_SLEEP : 0); if (!sleep) sdk_os_delay_us(WAKEUP_DELAY_US); } -void pca9685_restart(uint8_t addr) +void pca9685_restart(i2c_dev_t* dev) { - uint8_t mode = read_reg(addr, REG_MODE1); + uint8_t mode = read_reg(dev, REG_MODE1); if (mode & MODE1_RESTART) { - write_reg(addr, REG_MODE1, mode & ~MODE1_SLEEP); + write_reg(dev, REG_MODE1, mode & ~MODE1_SLEEP); sdk_os_delay_us(WAKEUP_DELAY_US); } - write_reg(addr, REG_MODE1, (mode & ~MODE1_SLEEP) | MODE1_RESTART); + write_reg(dev, REG_MODE1, (mode & ~MODE1_SLEEP) | MODE1_RESTART); } -bool pca9685_is_output_inverted(uint8_t addr) +bool pca9685_is_output_inverted(i2c_dev_t* dev) { - return (read_reg(addr, REG_MODE2) & MODE2_INVRT) != 0; + return (read_reg(dev, REG_MODE2) & MODE2_INVRT) != 0; } -void pca9685_set_output_inverted(uint8_t addr, bool inverted) +void pca9685_set_output_inverted(i2c_dev_t* dev, bool inverted) { - update_reg(addr, REG_MODE2, MODE2_INVRT, inverted ? MODE2_INVRT : 0); + update_reg(dev, REG_MODE2, MODE2_INVRT, inverted ? MODE2_INVRT : 0); } -bool pca9685_get_output_open_drain(uint8_t addr) +bool pca9685_get_output_open_drain(i2c_dev_t* dev) { - return (read_reg(addr, REG_MODE2) & MODE2_OUTDRV) == 0; + return (read_reg(dev, REG_MODE2) & MODE2_OUTDRV) == 0; } -void pca9685_set_output_open_drain(uint8_t addr, bool open_drain) +void pca9685_set_output_open_drain(i2c_dev_t* dev, bool open_drain) { - update_reg(addr, REG_MODE2, MODE2_OUTDRV, open_drain ? 0 : MODE2_OUTDRV); + update_reg(dev, REG_MODE2, MODE2_OUTDRV, open_drain ? 0 : MODE2_OUTDRV); } -uint8_t pca9685_get_prescaler(uint8_t addr) +uint8_t pca9685_get_prescaler(i2c_dev_t* dev) { - return read_reg(addr, REG_PRE_SCALE); + return read_reg(dev, REG_PRE_SCALE); } -bool pca9685_set_prescaler(uint8_t addr, uint8_t prescaler) +bool pca9685_set_prescaler(i2c_dev_t* dev, uint8_t prescaler) { if (prescaler < MIN_PRESCALER) { @@ -156,18 +155,18 @@ bool pca9685_set_prescaler(uint8_t addr, uint8_t prescaler) return false; } - pca9685_sleep(addr, true); - write_reg(addr, REG_PRE_SCALE, prescaler); - pca9685_sleep(addr, false); + pca9685_sleep(dev, true); + write_reg(dev, REG_PRE_SCALE, prescaler); + pca9685_sleep(dev, false); return true; } -uint16_t pca9685_get_pwm_frequency(uint8_t addr) +uint16_t pca9685_get_pwm_frequency(i2c_dev_t* dev) { - return INTERNAL_FREQ / ((uint32_t)4096 * (read_reg(addr, REG_PRE_SCALE) + 1)); + return INTERNAL_FREQ / ((uint32_t)4096 * (read_reg(dev, REG_PRE_SCALE) + 1)); } -bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq) +bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq) { uint16_t prescaler = round_div(INTERNAL_FREQ, (uint32_t)4096 * freq) - 1; if (prescaler < MIN_PRESCALER || prescaler > MAX_PRESCALER) @@ -176,32 +175,32 @@ bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq) return false; } - return pca9685_set_prescaler(addr, prescaler); + return pca9685_set_prescaler(dev, prescaler); } -void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val) +void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val) { uint8_t reg = channel > MAX_CHANNEL ? REG_ALL_LED : REG_LED_N(channel); if (val == 0) { // Full off - write_reg(addr, reg + OFFS_REG_LED_OFF, LED_FULL_ON_OFF); + write_reg(dev, reg + OFFS_REG_LED_OFF, LED_FULL_ON_OFF); } else if (val < 4096) { // Normal uint8_t buf[4] = { 0, 0, val, val >> 8 }; - i2c_slave_write(addr, ®, buf, 4); + i2c_slave_write(dev->bus, dev->addr, ®, buf, 4); } else { // Full on - write_reg(addr, reg + OFFS_REG_LED_ON, LED_FULL_ON_OFF); + write_reg(dev, reg + OFFS_REG_LED_ON, LED_FULL_ON_OFF); } } -bool pca9685_set_pwm_values(uint8_t addr, uint8_t first_ch, uint8_t channels, const uint16_t *values) +bool pca9685_set_pwm_values(i2c_dev_t* dev, uint8_t first_ch, uint8_t channels, const uint16_t *values) { if (channels == 0 || first_ch + channels - 1 > MAX_CHANNEL) { @@ -210,7 +209,7 @@ bool pca9685_set_pwm_values(uint8_t addr, uint8_t first_ch, uint8_t channels, co } for (uint8_t i = 0; i < channels; i ++) - pca9685_set_pwm_value(addr, first_ch + i, values [i]); + pca9685_set_pwm_value(dev, first_ch + i, values [i]); return true; } diff --git a/extras/pca9685/pca9685.h b/extras/pca9685/pca9685.h index 0ee0000..a92b964 100644 --- a/extras/pca9685/pca9685.h +++ b/extras/pca9685/pca9685.h @@ -10,6 +10,7 @@ #include #include +#include #ifdef __cplusplus extern "C" @@ -22,7 +23,7 @@ extern "C" * Init device * @param addr Device address */ -void pca9685_init(uint8_t addr); +void pca9685_init(i2c_dev_t* dev); /** * Setup device subaddress (see section 7.3.6 if the datasheet) @@ -32,62 +33,62 @@ void pca9685_init(uint8_t addr); * @param enable True to enable subaddress, false to disable * @return False if error occured */ -bool pca9685_set_subaddr(uint8_t addr, uint8_t num, uint8_t subaddr, bool enable); +bool pca9685_set_subaddr(i2c_dev_t* dev, uint8_t num, uint8_t subaddr, bool enable); /** * Restart device (see section 7.3.1.1 of the datasheet) * @param addr Device address */ -void pca9685_restart(uint8_t addr); +void pca9685_restart(i2c_dev_t* dev); /** * Check if device is in sleep mode * @param addr Device address * @return True if device is sleeping */ -bool pca9685_is_sleeping(uint8_t addr); +bool pca9685_is_sleeping(i2c_dev_t* dev); /** * Switch device to low-power mode or wake it up. * @param addr Device address * @param sleep True for sleep mode, false for wake up */ -void pca9685_sleep(uint8_t addr, bool sleep); +void pca9685_sleep(i2c_dev_t* dev, bool sleep); /** * Get logic inversion of the outputs * @param addr Device address * @return True if outputs are inverted, false otherwise */ -bool pca9685_is_output_inverted(uint8_t addr); +bool pca9685_is_output_inverted(i2c_dev_t* dev); /** * Logically invert outputs (see section 7.7 of the datasheet) * @param addr Device address * @param inverted True for inverted outputs */ -void pca9685_set_output_inverted(uint8_t addr, bool inverted); +void pca9685_set_output_inverted(i2c_dev_t* dev, bool inverted); /** * Get outputs mode * @param addr Device address * @return True if outputs are in open drain mode */ -bool pca9685_get_output_open_drain(uint8_t addr); +bool pca9685_get_output_open_drain(i2c_dev_t* dev); /** * Set outputs mode * @param addr Device address * @param open_drain True to set open drain mode, false to normal mode */ -void pca9685_set_output_open_drain(uint8_t addr, bool open_drain); +void pca9685_set_output_open_drain(i2c_dev_t* dev, bool open_drain); /** * Get current PWM frequency prescaler. * @param addr Device address * @return Frequency prescaler */ -uint8_t pca9685_get_prescaler(uint8_t addr); +uint8_t pca9685_get_prescaler(i2c_dev_t* dev); /** * Set PWM frequency prescaler. @@ -95,14 +96,14 @@ uint8_t pca9685_get_prescaler(uint8_t addr); * @param prescaler Prescaler value * @return False if error occured */ -bool pca9685_set_prescaler(uint8_t addr, uint8_t prescaler); +bool pca9685_set_prescaler(i2c_dev_t* dev, uint8_t prescaler); /** * Get current PWM frequency * @param addr Device address * @return PWM frequency, Hz */ -uint16_t pca9685_get_pwm_frequency(uint8_t addr); +uint16_t pca9685_get_pwm_frequency(i2c_dev_t* dev); /** * Set PWM frequency @@ -110,7 +111,7 @@ uint16_t pca9685_get_pwm_frequency(uint8_t addr); * @param freq PWM frequency, Hz * @return False if error occured */ -bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq); +bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq); /** * Set PWM value on output channel @@ -118,7 +119,7 @@ bool pca9685_set_pwm_frequency(uint8_t addr, uint16_t freq); * @param channel Channel number, 0..15 or >15 for all channels * @param val PWM value, 0..4096 */ -void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val); +void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val); /** * Set PWM values on output channels @@ -128,7 +129,7 @@ void pca9685_set_pwm_value(uint8_t addr, uint8_t channel, uint16_t val); * @param values Array of the channel values, each 0..4096 * @return False if error occured */ -bool pca9685_set_pwm_values(uint8_t addr, uint8_t first_ch, uint8_t channels, const uint16_t *values); +bool pca9685_set_pwm_values(i2c_dev_t* dev, uint8_t first_ch, uint8_t channels, const uint16_t *values); #ifdef __cplusplus } diff --git a/extras/pcf8574/pcf8574.c b/extras/pcf8574/pcf8574.c index 1d08625..ff9a92c 100644 --- a/extras/pcf8574/pcf8574.c +++ b/extras/pcf8574/pcf8574.c @@ -1,47 +1,46 @@ #include "pcf8574.h" -#include -uint8_t pcf8574_port_read(uint8_t addr) +uint8_t pcf8574_port_read(i2c_dev_t* dev) { uint8_t res; - if (i2c_slave_read(addr, NULL, &res, 1)) + if (i2c_slave_read(dev->bus, dev->addr, NULL, &res, 1)) return 0; return res; } -size_t pcf8574_port_read_buf(uint8_t addr, void *buf, size_t len) +size_t pcf8574_port_read_buf(i2c_dev_t* dev, void *buf, size_t len) { if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; - if (i2c_slave_read(addr, NULL, _buf, len)) + if (i2c_slave_read(dev->bus, dev->addr, NULL, _buf, len)) return 0; return len; } -size_t pcf8574_port_write_buf(uint8_t addr, void *buf, size_t len) +size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len) { if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; - if (i2c_slave_write(addr, NULL, _buf, len)) + if (i2c_slave_write(dev->bus, dev->addr, NULL, _buf, len)) return 0; return len; } -void pcf8574_port_write(uint8_t addr, uint8_t value) +void pcf8574_port_write(const i2c_dev_t* dev, uint8_t value) { - i2c_slave_write(addr, NULL, &value, 1); + i2c_slave_write(dev->bus, dev->addr, NULL, &value, 1); } -bool pcf8574_gpio_read(uint8_t addr, uint8_t num) +bool pcf8574_gpio_read(i2c_dev_t* dev, uint8_t num) { - return (bool)((pcf8574_port_read(addr) >> num) & 1); + return (bool)((pcf8574_port_read(dev) >> num) & 1); } -void pcf8574_gpio_write(uint8_t addr, uint8_t num, bool value) +void pcf8574_gpio_write(i2c_dev_t* dev, uint8_t num, bool value) { uint8_t bit = (uint8_t)value << num; uint8_t mask = ~(1 << num); - pcf8574_port_write (addr, (pcf8574_port_read(addr) & mask) | bit); + pcf8574_port_write (dev, (pcf8574_port_read(dev) & mask) | bit); } diff --git a/extras/pcf8574/pcf8574.h b/extras/pcf8574/pcf8574.h index c14e25f..84b6ce0 100644 --- a/extras/pcf8574/pcf8574.h +++ b/extras/pcf8574/pcf8574.h @@ -8,6 +8,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" @@ -19,7 +20,7 @@ extern "C" * \param addr I2C register address (0b0100 for PCF8574) * \return 8-bit GPIO port value */ -uint8_t pcf8574_port_read(uint8_t addr); +uint8_t pcf8574_port_read(i2c_dev_t* dev); /** * \brief Continiously read GPIO port values to buffer @@ -28,14 +29,14 @@ uint8_t pcf8574_port_read(uint8_t addr); * @param len Buffer length * @return Number of bytes read */ -size_t pcf8574_port_read_buf(uint8_t addr, void *buf, size_t len); +size_t pcf8574_port_read_buf(i2c_dev_t* dev, void *buf, size_t len); /** * \brief Write value to GPIO port * \param addr I2C register address (0b0100 for PCF8574) * \param value GPIO port value */ -void pcf8574_port_write(uint8_t addr, uint8_t value); +void pcf8574_port_write(const i2c_dev_t* dev, uint8_t value); /** * \brief Continiously write GPIO values to GPIO port @@ -44,7 +45,7 @@ void pcf8574_port_write(uint8_t addr, uint8_t value); * @param len Buffer length * @return Number of bytes written */ -size_t pcf8574_port_write_buf(uint8_t addr, void *buf, size_t len); +size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len); /** * \brief Read input value of a GPIO pin @@ -52,7 +53,7 @@ size_t pcf8574_port_write_buf(uint8_t addr, void *buf, size_t len); * \param num pin number (0..7) * \return GPIO pin value */ -bool pcf8574_gpio_read(uint8_t addr, uint8_t num); +bool pcf8574_gpio_read(i2c_dev_t* dev, uint8_t num); /** * \brief Set GPIO pin output @@ -62,7 +63,7 @@ bool pcf8574_gpio_read(uint8_t addr, uint8_t num); * \param num pin number (0..7) * \param value true for high level */ -void pcf8574_gpio_write(uint8_t addr, uint8_t num, bool value); +void pcf8574_gpio_write(i2c_dev_t* dev, uint8_t num, bool value); #ifdef __cplusplus } diff --git a/extras/pcf8591/pcf8591.c b/extras/pcf8591/pcf8591.c index 42b9df4..ba06a5e 100644 --- a/extras/pcf8591/pcf8591.c +++ b/extras/pcf8591/pcf8591.c @@ -1,22 +1,20 @@ #include #include -#include #include "pcf8591.h" /** - * CAUTION: PLEASE SET I2C_FREQUENCY_400K IS 'false' IN 'i2c.h' FILE + * CAUTION: PLEASE SET LOW FREQUENCY */ #define PCF8591_CTRL_REG_READ 0x03 -uint8_t -pcf8591_read(uint8_t addr, uint8_t analog_pin) +uint8_t pcf8591_read(i2c_dev_t* dev, uint8_t analog_pin) { uint8_t res = 0; uint8_t control_reg = PCF8591_CTRL_REG_READ & analog_pin; - i2c_slave_read(addr, &control_reg, &res, 1); + i2c_slave_read(dev->bus, dev->addr, &control_reg, &res, 1); return res; } diff --git a/extras/pcf8591/pcf8591.h b/extras/pcf8591/pcf8591.h index 3deac57..5327323 100644 --- a/extras/pcf8591/pcf8591.h +++ b/extras/pcf8591/pcf8591.h @@ -9,6 +9,8 @@ #ifndef _EXTRAS_PCF8591_H_ #define _EXTRAS_PCF8591_H_ +#include + #ifdef __cplusplus extern "C" { @@ -20,7 +22,7 @@ extern "C" #define PCF8591_DEFAULT_ADDRESS 0x48 -void pcf8591_init(void); +void pcf8591_init(void); //FIXME : library incomplete ? /** * Read input value of an analog pin. @@ -32,7 +34,7 @@ void pcf8591_init(void); * 3 - AIN3 * @return analog value */ -uint8_t pcf8591_read(uint8_t addr, uint8_t analog_pin); +uint8_t pcf8591_read(i2c_dev_t* dev, uint8_t analog_pin); #ifdef __cplusplus diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index 4da3e10..372e867 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -11,9 +11,6 @@ */ #include "ssd1306.h" #include -#if (SSD1306_I2C_SUPPORT) - #include -#endif #if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT) #include #endif @@ -92,7 +89,7 @@ #if (SSD1306_I2C_SUPPORT) static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len) { - return i2c_slave_write(dev->addr, ®, data, len); + return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr , ®, data, len); } #endif diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index cdfae61..639517b 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -19,6 +19,7 @@ // shifted #if (SSD1306_I2C_SUPPORT) + #include #define SSD1306_I2C_ADDR_0 (0x3C) #define SSD1306_I2C_ADDR_1 (0x3D) #endif @@ -67,7 +68,7 @@ typedef struct ssd1306_screen_t screen ; union { #if (SSD1306_I2C_SUPPORT) - uint8_t addr ; //!< I2C address, used by SSD1306_PROTO_I2C + i2c_dev_t i2c_dev; //!< I2C devuce descriptor, used by SSD1306_PROTO_I2C #endif uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 } ; diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index f60825a..cc89021 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -6,7 +6,6 @@ #include #include "FreeRTOS.h" -#include "i2c/i2c.h" #include "task.h" #include "tsl2561.h" @@ -96,18 +95,18 @@ #define B8C 0x0000 // 0.000 * 2^LUX_SCALE #define M8C 0x0000 // 0.000 * 2^LUX_SCALE -static int write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +static int write_register(i2c_dev_t* i2c_dev, uint8_t reg, uint8_t value) { reg = TSL2561_REG_COMMAND | reg; - return i2c_slave_write(i2c_addr, ®, &value, 1); + return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, ®, &value, 1); } -static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) +static uint8_t read_register(i2c_dev_t* i2c_dev, uint8_t reg) { uint8_t data[1]; reg = TSL2561_REG_COMMAND | reg; - if (i2c_slave_read(i2c_addr, ®, data, 1)) + if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, ®, data, 1)) { printf("Error in tsl2561 read_register\n"); } @@ -115,13 +114,13 @@ static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) return data[0]; } -static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) +static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; low_register_addr = TSL2561_REG_COMMAND | TSL2561_READ_WORD | low_register_addr; - if (i2c_slave_read(i2c_addr, &low_register_addr, data, 2)) + if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, &low_register_addr, data, 2)) { printf("Error with i2c_slave_read in read_register_16\n"); } @@ -131,24 +130,24 @@ static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) return value; } -static int enable(uint8_t i2c_addr) +static int enable(i2c_dev_t* i2c_dev) { - return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_ON); + return write_register(i2c_dev, TSL2561_REG_CONTROL, TSL2561_ON); } -static int disable(uint8_t i2c_addr) +static int disable(i2c_dev_t* i2c_dev) { - return write_register(i2c_addr, TSL2561_REG_CONTROL, TSL2561_OFF); + return write_register(i2c_dev, TSL2561_REG_CONTROL, TSL2561_OFF); } void tsl2561_init(tsl2561_t *device) { - if (enable(device->i2c_addr)) + if (enable(&device->i2c_dev)) { printf("Error initializing tsl2561\n"); } - uint8_t control_reg = (read_register(device->i2c_addr, TSL2561_REG_CONTROL) & TSL2561_ON); + uint8_t control_reg = (read_register(&device->i2c_dev, TSL2561_REG_CONTROL) & TSL2561_ON); if (control_reg != TSL2561_ON) { @@ -156,39 +155,39 @@ void tsl2561_init(tsl2561_t *device) } // Fetch the package type - uint8_t part_reg = read_register(device->i2c_addr, TSL2561_REG_PART_ID); + uint8_t part_reg = read_register(&device->i2c_dev, TSL2561_REG_PART_ID); uint8_t package = part_reg >> 6; device->package_type = package; // Fetch the gain and integration time - uint8_t timing_register = read_register(device->i2c_addr, TSL2561_REG_TIMING); + uint8_t timing_register = read_register(&device->i2c_dev, TSL2561_REG_TIMING); device->gain = timing_register & 0x10; device->integration_time = timing_register & 0x03; - disable(device->i2c_addr); + disable(&device->i2c_dev); } void tsl2561_set_integration_time(tsl2561_t *device, tsl2561_integration_time_t integration_time_id) { - enable(device->i2c_addr); - write_register(device->i2c_addr, TSL2561_REG_TIMING, integration_time_id | device->gain); - disable(device->i2c_addr); + enable(&device->i2c_dev); + write_register(&device->i2c_dev, TSL2561_REG_TIMING, integration_time_id | device->gain); + disable(&device->i2c_dev); device->integration_time = integration_time_id; } void tsl2561_set_gain(tsl2561_t *device, tsl2561_gain_t gain) { - enable(device->i2c_addr); - write_register(device->i2c_addr, TSL2561_REG_TIMING, gain | device->integration_time); - disable(device->i2c_addr); + enable(&device->i2c_dev); + write_register(&device->i2c_dev, TSL2561_REG_TIMING, gain | device->integration_time); + disable(&device->i2c_dev); device->gain = gain; } static void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *channel1) { - enable(device->i2c_addr); + enable(&device->i2c_dev); // Since we just enabled the chip, we need to sleep // for the chip's integration time so it can gather a reading @@ -205,10 +204,10 @@ static void get_channel_data(tsl2561_t *device, uint16_t *channel0, uint16_t *ch break; } - *channel0 = read_register_16(device->i2c_addr, TSL2561_REG_CHANNEL_0_LOW); - *channel1 = read_register_16(device->i2c_addr, TSL2561_REG_CHANNEL_1_LOW); + *channel0 = read_register_16(&device->i2c_dev, TSL2561_REG_CHANNEL_0_LOW); + *channel1 = read_register_16(&device->i2c_dev, TSL2561_REG_CHANNEL_1_LOW); - disable(device->i2c_addr); + disable(&device->i2c_dev); } bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) diff --git a/extras/tsl2561/tsl2561.h b/extras/tsl2561/tsl2561.h index ad5109f..9f880b3 100644 --- a/extras/tsl2561/tsl2561.h +++ b/extras/tsl2561/tsl2561.h @@ -9,6 +9,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -38,7 +39,7 @@ typedef enum } tsl2561_gain_t; typedef struct { - tsl2561_i2c_addr_t i2c_addr; + i2c_dev_t i2c_dev; uint8_t integration_time; uint8_t gain; uint8_t package_type; diff --git a/extras/tsl4531/tsl4531.c b/extras/tsl4531/tsl4531.c index 54963e9..a15a0ee 100644 --- a/extras/tsl4531/tsl4531.c +++ b/extras/tsl4531/tsl4531.c @@ -6,7 +6,6 @@ #include #include "FreeRTOS.h" -#include "i2c/i2c.h" #include "task.h" #include "tsl4531.h" @@ -27,18 +26,18 @@ #define TSL4531_INTEGRATION_TIME_200MS 240 #define TSL4531_INTEGRATION_TIME_400MS 480 // Default -static int write_register(uint8_t i2c_addr, uint8_t reg, uint8_t value) +static int write_register(i2c_dev_t* i2c_dev, uint8_t reg, uint8_t value) { reg = TSL4531_REG_COMMAND | reg; - return i2c_slave_write(i2c_addr, ®, &value, 1); + return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, ®, &value, 1); } -static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) +static uint8_t read_register(i2c_dev_t* i2c_dev, uint8_t reg) { uint8_t data[1]; reg = TSL4531_REG_COMMAND | reg; - if (i2c_slave_read(i2c_addr, ®, data, 1)) + if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, ®, data, 1)) { printf("Error in tsl4531 read_register\n"); } @@ -46,13 +45,13 @@ static uint8_t read_register(uint8_t i2c_addr, uint8_t reg) return data[0]; } -static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) +static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; low_register_addr = TSL4531_REG_COMMAND | low_register_addr; - if (i2c_slave_read(i2c_addr, &low_register_addr, data, 2)) + if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, &low_register_addr, data, 2)) { printf("Error with i2c_slave_read in read_register_16\n"); } @@ -64,12 +63,12 @@ static uint16_t read_register_16(uint8_t i2c_addr, uint8_t low_register_addr) static int enable(tsl4531_t *device) { - return write_register(device->i2c_addr, TSL4531_REG_CONTROL, TSL4531_ON); + return write_register(&device->i2c_dev, TSL4531_REG_CONTROL, TSL4531_ON); } static int disable(tsl4531_t *device) { - return write_register(device->i2c_addr, TSL4531_REG_CONTROL, TSL4531_OFF); + return write_register(&device->i2c_dev, TSL4531_REG_CONTROL, TSL4531_OFF); } void tsl4531_init(tsl4531_t *device) @@ -79,13 +78,13 @@ void tsl4531_init(tsl4531_t *device) printf("Error initializing tsl4531, the enable write failed\n"); } - uint8_t control_reg = read_register(device->i2c_addr, TSL4531_REG_CONTROL); + uint8_t control_reg = read_register(&device->i2c_dev, TSL4531_REG_CONTROL); if (control_reg != TSL4531_ON) { printf("Error initializing tsl4531, control register wasn't set to ON\n"); } - uint8_t idRegister = read_register(device->i2c_addr, TSL4531_REG_DEVICE_ID); + uint8_t idRegister = read_register(&device->i2c_dev, TSL4531_REG_DEVICE_ID); uint8_t id = (idRegister & 0xF0) >> 4; if (id == TSL4531_PART_TSL45317) { @@ -110,7 +109,7 @@ void tsl4531_set_integration_time(tsl4531_t *device, tsl4531_integration_time_t uint8_t new_config_reg = power_save_bit | integration_time_bits; enable(device); - write_register(device->i2c_addr, TSL4531_REG_CONFIG, new_config_reg); + write_register(&device->i2c_dev, TSL4531_REG_CONFIG, new_config_reg); disable(device); device->integration_time_id = integration_time_id; @@ -123,7 +122,7 @@ void tsl4531_set_power_save_skip(tsl4531_t *device, bool skip_power_save) uint8_t new_config_reg = power_save_bit | integration_time_bits; enable(device); - write_register(device->i2c_addr, TSL4531_REG_CONFIG, new_config_reg); + write_register(&device->i2c_dev, TSL4531_REG_CONFIG, new_config_reg); disable(device); device->skip_power_save = skip_power_save; @@ -156,8 +155,8 @@ bool tsl4531_read_lux(tsl4531_t *device, uint16_t *lux) break; } - uint16_t lux_data = read_register_16(device->i2c_addr, TSL4531_REG_DATA_LOW); - + uint16_t lux_data = read_register_16(&device->i2c_dev, TSL4531_REG_DATA_LOW); + disable(device); *lux = multiplier * lux_data; diff --git a/extras/tsl4531/tsl4531.h b/extras/tsl4531/tsl4531.h index 3b57664..d4ab7ec 100644 --- a/extras/tsl4531/tsl4531.h +++ b/extras/tsl4531/tsl4531.h @@ -9,6 +9,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -38,7 +39,7 @@ typedef enum } tsl4531_part_id_t; typedef struct { - tsl4531_i2c_addr_t i2c_addr; + i2c_dev_t i2c_dev; uint8_t integration_time_id; bool skip_power_save; tsl4531_part_id_t part_id; From f5817aef01be35edea8256a0c432e478cd224d11 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 3 Sep 2017 20:10:22 +1000 Subject: [PATCH 205/349] lwip: rework the tcp ooseq handling. It now accounts for the number of rx pool buffers used and the available memory when deciding the number of ooseq buffers to retain. Enable the TCP Selective ACK support which appears to help a lot on lossy wifi when using the OOSEQ option. --- lwip/esp_interface.c | 79 +++++++++++++++++++++++++++++++++++++++-- lwip/include/arch/cc.h | 6 ++++ lwip/include/lwipopts.h | 61 +++++++++++++++++++++++++------ lwip/lwip | 2 +- 4 files changed, 135 insertions(+), 13 deletions(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index 1edb508..6b4ed71 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -50,6 +50,8 @@ #include "netif/etharp.h" #include "sysparam.h" #include "netif/ppp/pppoe.h" +#include "FreeRTOS.h" +#include "task.h" /* declared in libnet80211.a */ int8_t sdk_ieee80211_output_pbuf(struct netif *ifp, struct pbuf* pb); @@ -137,6 +139,51 @@ low_level_output(struct netif *netif, struct pbuf *p) } +/** + * Keep account of the number the PP RX pool buffers being used in lwip, + * to help make decision about the number of OOSEQ buffers to maintain etc. + */ +uint32_t pp_rx_pool_usage; + +/* Support for recycling a pbuf from the sdk rx pool, and accounting for the + * number of these used in lwip. */ +void pp_recycle_rx_pbuf(struct pbuf *p) +{ + LWIP_ASSERT("expected esf_buf", p->esf_buf); + sdk_system_pp_recycle_rx_pkt(p->esf_buf); + taskENTER_CRITICAL(); + pp_rx_pool_usage--; + taskEXIT_CRITICAL(); +} + +/* Return the number of ooseq bytes that can be retained given the current + * size 'n'. */ +size_t ooseq_max_bytes(size_t n) +{ + size_t free = xPortGetFreeHeapSize(); + size_t target = (free - 30000) + n; + + if (target < 0) { + target = 0; + } + + return target; +} + +/* Return the number of ooseq pbufs that can be retained given the current + * size 'n'. */ +size_t ooseq_max_pbufs(size_t n) +{ + uint32_t usage = pp_rx_pool_usage; + size_t target = 3 - (usage - n); + + if (target < 0) { + target = 0; + } + + return target; +} + /** * This function should be called when a packet is ready to be read * from the interface. It uses the function low_level_input() that @@ -165,24 +212,52 @@ void ethernetif_input(struct netif *netif, struct pbuf *p) ethhdr = p->payload; + /* Account for the number of rx pool buffers being used. */ + taskENTER_CRITICAL(); + uint32_t usage = pp_rx_pool_usage + 1; + pp_rx_pool_usage = usage; + taskEXIT_CRITICAL(); + switch(htons(ethhdr->type)) { /* IP or ARP packet? */ case ETHTYPE_IP: case ETHTYPE_IPV6: +#if 0 + /* Simulate IP packet loss. */ + if ((random() & 0xff) < 0x10) { + pbuf_free(p); + return; + } +#endif + case ETHTYPE_ARP: #if PPPOE_SUPPORT /* PPPoE packet? */ case ETHTYPE_PPPOEDISC: case ETHTYPE_PPPOE: #endif /* PPPOE_SUPPORT */ + { /* full packet send to tcpip_thread to process */ - if (netif->input(p, netif) != ERR_OK) - { + +#if 0 + /* Optionally copy the rx pool buffer and free it immediately. This + * helps avoid exhausting the limited rx buffer pool but uses more + * memory. */ + struct pbuf *q = pbuf_clone(PBUF_RAW, PBUF_RAM, p); + pbuf_free(p); + if (q == NULL) { + return; + } + p = q; +#endif + + if (netif->input(p, netif) != ERR_OK) { LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_input: IP input error\n")); pbuf_free(p); p = NULL; } break; + } default: pbuf_free(p); diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h index 5bf9d80..ce40e64 100644 --- a/lwip/include/arch/cc.h +++ b/lwip/include/arch/cc.h @@ -45,6 +45,12 @@ struct esf_buf; void sdk_system_station_got_ip_set(struct ip4_addr *, struct ip4_addr *, struct ip4_addr *); void sdk_system_pp_recycle_rx_pkt(struct esf_buf *); +struct pbuf; +void pp_recycle_rx_pbuf(struct pbuf *); + +size_t ooseq_max_bytes(size_t n); +size_t ooseq_max_pbufs(size_t n); + /* Define generic types used in lwIP */ typedef uint8_t u8_t; typedef int8_t s8_t; diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index fee5732..7869d85 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -307,6 +307,13 @@ #define TCP_QUEUE_OOSEQ 1 #endif +/** + * LWIP_TCP_SACK_OUT==1: TCP will support sending selective acknowledgements (SACKs). + */ +#ifndef LWIP_TCP_SACK_OUT +#define LWIP_TCP_SACK_OUT 1 +#endif + /** * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default, * you might want to increase this.) @@ -319,23 +326,21 @@ #endif /** - * TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb. - * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==1. + * TCP_OOSEQ_MAX_BYTES(n): + * Return the maximum number of bytes to be queued on ooseq per pcb, given the + * current number queued on a pcb. Only valid for TCP_QUEUE_OOSEQ==1. */ #ifndef TCP_OOSEQ_MAX_BYTES -#if TCP_OOSEQ_MAX_BYTES -#define TCP_OOSEQ_MAX_BYTES (2 * TCP_MSS) -#endif +#define TCP_OOSEQ_MAX_BYTES(n) ooseq_max_bytes(n) #endif /** - * TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb. - * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==1. + * TCP_OOSEQ_MAX_PBUFS(n): + * Return the maximum number of pbufs to be queued on ooseq per pcb, given the + * current number queued on a pcb. Only valid for TCP_QUEUE_OOSEQ==1. */ #ifndef TCP_OOSEQ_MAX_PBUFS -#if TCP_OOSEQ_MAX_PBUFS -#define TCP_OOSEQ_MAX_PBUFS 2 -#endif +#define TCP_OOSEQ_MAX_PBUFS(n) ooseq_max_pbufs(n) #endif /** @@ -354,6 +359,42 @@ #define TCP_DEFAULT_LISTEN_BACKLOG 2 #endif +/** + * TCP_OVERSIZE: The maximum number of bytes that tcp_write may + * allocate ahead of time in an attempt to create shorter pbuf chains + * for transmission. The meaningful range is 0 to TCP_MSS. Some + * suggested values are: + * + * 0: Disable oversized allocation. Each tcp_write() allocates a new + pbuf (old behaviour). + * 1: Allocate size-aligned pbufs with minimal excess. Use this if your + * scatter-gather DMA requires aligned fragments. + * 128: Limit the pbuf/memory overhead to 20%. + * TCP_MSS: Try to create unfragmented TCP packets. + * TCP_MSS/4: Try to create 4 fragments or less per TCP packet. + */ +#ifndef TCP_OVERSIZE +#define TCP_OVERSIZE TCP_MSS +#endif + +/** + * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. + * The timestamp option is currently only used to help remote hosts, it is not + * really used locally. Therefore, it is only enabled when a TS option is + * received in the initial SYN packet from a remote host. + */ +#ifndef LWIP_TCP_TIMESTAMPS +#define LWIP_TCP_TIMESTAMPS 1 +#endif + +/** + * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an + * explicit window update + */ +#ifndef TCP_WND_UPDATE_THRESHOLD +#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4)) +#endif + /* ---------------------------------- ---------- Pbuf options ---------- diff --git a/lwip/lwip b/lwip/lwip index 0983b88..4caae2e 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 0983b8838ea6f1d8340e3f42ec5fb5cf5f05bd4c +Subproject commit 4caae2e4af10c7fbebf26d05c8263856dbc07ac7 From 49f79510139fa6484d667e500186cb693df8199c Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 4 Sep 2017 07:31:42 +1000 Subject: [PATCH 206/349] Update lwip, fixes losses of pcbs and associated problems. --- lwip/lwip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/lwip b/lwip/lwip index 4caae2e..bb66be5 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 4caae2e4af10c7fbebf26d05c8263856dbc07ac7 +Subproject commit bb66be5a47e47faa4d3aa572299ceaac216de000 From 730a0f40c721599e5ec3b5bf6eeefe05d321bb4f Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 4 Sep 2017 17:18:52 +1000 Subject: [PATCH 207/349] lwip: revise the tcp ooseq limit calulations. Was making a mess of the calculation sign. Also added a COPY_PP_RX_PBUFS define to include appropriate limits for this option. --- lwip/esp_interface.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index 6b4ed71..47544a0 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -152,30 +152,51 @@ void pp_recycle_rx_pbuf(struct pbuf *p) LWIP_ASSERT("expected esf_buf", p->esf_buf); sdk_system_pp_recycle_rx_pkt(p->esf_buf); taskENTER_CRITICAL(); + LWIP_ASSERT("pp_rx_pool_usage underflow", pp_rx_pool_usage > 0); pp_rx_pool_usage--; taskEXIT_CRITICAL(); } +/* Set to true to copy the rx pbufs on input and free them. The pp rx buffer + * pool is limited so this allows a large number at the expense of memory. + */ + +#define COPY_PP_RX_PBUFS 0 + /* Return the number of ooseq bytes that can be retained given the current * size 'n'. */ size_t ooseq_max_bytes(size_t n) { +#if COPY_PP_RX_PBUFS size_t free = xPortGetFreeHeapSize(); - size_t target = (free - 30000) + n; + ssize_t target = ((ssize_t)free - 30000) + n; if (target < 0) { target = 0; } return target; +#else + /* The pool is pre-allocated so there is no need to look at the dynamic + * memory usage, just consider the number of them below. */ + return 8000; +#endif } /* Return the number of ooseq pbufs that can be retained given the current * size 'n'. */ size_t ooseq_max_pbufs(size_t n) { - uint32_t usage = pp_rx_pool_usage; - size_t target = 3 - (usage - n); +#if COPY_PP_RX_PBUFS + /* More likely memory limited, but set some limit. */ + ssize_t limit = 10; +#else + /* Set a small limit if using the pp rx pool, to avoid exhausting it. */ + ssize_t limit = 2; +#endif + + size_t usage = pp_rx_pool_usage; + ssize_t target = limit - ((ssize_t)usage - n); if (target < 0) { target = 0; @@ -239,7 +260,7 @@ void ethernetif_input(struct netif *netif, struct pbuf *p) { /* full packet send to tcpip_thread to process */ -#if 0 +#if COPY_PP_RX_PBUFS /* Optionally copy the rx pool buffer and free it immediately. This * helps avoid exhausting the limited rx buffer pool but uses more * memory. */ From 893f715852d1b831289056fc59903d3422d07611 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Mon, 4 Sep 2017 18:13:27 +1000 Subject: [PATCH 208/349] lwip: ooseq_max_bytes() - set a practical target memory size. --- lwip/esp_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index 47544a0..d241db4 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -169,7 +169,7 @@ size_t ooseq_max_bytes(size_t n) { #if COPY_PP_RX_PBUFS size_t free = xPortGetFreeHeapSize(); - ssize_t target = ((ssize_t)free - 30000) + n; + ssize_t target = ((ssize_t)free - 8000) + n; if (target < 0) { target = 0; From 0a1fd09459d5e95d5a3a73e4b243a02f9534cda7 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 8 Sep 2017 10:48:44 +1000 Subject: [PATCH 209/349] lwip: revise ooseq handling. Modified for lwip backwards compatibility based on upstream feedback. --- lwip/esp_interface.c | 23 ++++++++++++++++----- lwip/include/arch/cc.h | 5 +++-- lwip/include/lwipopts.h | 45 +++++++++++++++++++++++++++++++++-------- lwip/lwip | 2 +- 4 files changed, 59 insertions(+), 16 deletions(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index d241db4..8157c8b 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -47,6 +47,7 @@ #include #include "lwip/ip.h" #include "lwip/ethip6.h" +#include "lwip/priv/tcp_priv.h" #include "netif/etharp.h" #include "sysparam.h" #include "netif/ppp/pppoe.h" @@ -143,7 +144,7 @@ low_level_output(struct netif *netif, struct pbuf *p) * Keep account of the number the PP RX pool buffers being used in lwip, * to help make decision about the number of OOSEQ buffers to maintain etc. */ -uint32_t pp_rx_pool_usage; +volatile uint32_t pp_rx_pool_usage; /* Support for recycling a pbuf from the sdk rx pool, and accounting for the * number of these used in lwip. */ @@ -165,11 +166,17 @@ void pp_recycle_rx_pbuf(struct pbuf *p) /* Return the number of ooseq bytes that can be retained given the current * size 'n'. */ -size_t ooseq_max_bytes(size_t n) +size_t ooseq_bytes_limit(struct tcp_seg *ooseq) { #if COPY_PP_RX_PBUFS + size_t ooseq_blen = 0; + for (; ooseq != NULL; ooseq = ooseq->next) { + struct pbuf *p = ooseq->p; + ooseq_blen += p->tot_len; + } + size_t free = xPortGetFreeHeapSize(); - ssize_t target = ((ssize_t)free - 8000) + n; + ssize_t target = ((ssize_t)free - 8000) + ooseq_blen; if (target < 0) { target = 0; @@ -185,8 +192,14 @@ size_t ooseq_max_bytes(size_t n) /* Return the number of ooseq pbufs that can be retained given the current * size 'n'. */ -size_t ooseq_max_pbufs(size_t n) +size_t ooseq_pbufs_limit(struct tcp_seg *ooseq) { + size_t ooseq_qlen = 0; + for (; ooseq != NULL; ooseq = ooseq->next) { + struct pbuf *p = ooseq->p; + ooseq_qlen += pbuf_clen(p); + } + #if COPY_PP_RX_PBUFS /* More likely memory limited, but set some limit. */ ssize_t limit = 10; @@ -196,7 +209,7 @@ size_t ooseq_max_pbufs(size_t n) #endif size_t usage = pp_rx_pool_usage; - ssize_t target = limit - ((ssize_t)usage - n); + ssize_t target = limit - ((ssize_t)usage - ooseq_qlen); if (target < 0) { target = 0; diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h index ce40e64..ed169ea 100644 --- a/lwip/include/arch/cc.h +++ b/lwip/include/arch/cc.h @@ -48,8 +48,9 @@ void sdk_system_pp_recycle_rx_pkt(struct esf_buf *); struct pbuf; void pp_recycle_rx_pbuf(struct pbuf *); -size_t ooseq_max_bytes(size_t n); -size_t ooseq_max_pbufs(size_t n); +struct tcp_seg; +size_t ooseq_bytes_limit(struct tcp_seg *ooseq); +size_t ooseq_pbufs_limit(struct tcp_seg *ooseq); /* Define generic types used in lwIP */ typedef uint8_t u8_t; diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index 7869d85..4d69eda 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -125,6 +125,19 @@ */ #define MEM_ALIGNMENT 4 +/** + * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable + * amount of bytes before and after each memp element in every pool and fills + * it with a prominent default value. + * MEMP_OVERFLOW_CHECK == 0 no checking + * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed + * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time + * memp_malloc() or memp_free() is called (useful but slow!) + */ +#ifndef MEMP_OVERFLOW_CHECK +#define MEMP_OVERFLOW_CHECK 0 +#endif + /* ------------------------------------------------ ---------- Internal Memory Pool Sizes ---------- @@ -326,21 +339,37 @@ #endif /** - * TCP_OOSEQ_MAX_BYTES(n): - * Return the maximum number of bytes to be queued on ooseq per pcb, given the - * current number queued on a pcb. Only valid for TCP_QUEUE_OOSEQ==1. + * TCP_OOSEQ_MAX_BYTES: The default maximum number of bytes queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. */ #ifndef TCP_OOSEQ_MAX_BYTES -#define TCP_OOSEQ_MAX_BYTES(n) ooseq_max_bytes(n) +#define TCP_OOSEQ_MAX_BYTES (2 * TCP_MSS) #endif /** - * TCP_OOSEQ_MAX_PBUFS(n): - * Return the maximum number of pbufs to be queued on ooseq per pcb, given the - * current number queued on a pcb. Only valid for TCP_QUEUE_OOSEQ==1. + * TCP_OOSEQ_BYTES_LIMIT(ooseq): Return the maximum number of bytes to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1. + */ +#if !defined TCP_OOSEQ_BYTES_LIMIT +#define TCP_OOSEQ_BYTES_LIMIT(ooseq) ooseq_bytes_limit(ooseq) +#endif + +/** + * TCP_OOSEQ_MAX_PBUFS: The default maximum number of pbufs queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. */ #ifndef TCP_OOSEQ_MAX_PBUFS -#define TCP_OOSEQ_MAX_PBUFS(n) ooseq_max_pbufs(n) +#define TCP_OOSEQ_MAX_PBUFS 2 +#endif + +/** + * TCP_OOSEQ_PBUFS_LIMIT(ooseq): Return the maximum number of pbufs to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1. + */ +#ifndef TCP_OOSEQ_PBUFS_LIMIT +#define TCP_OOSEQ_PBUFS_LIMIT(ooseq) ooseq_pbufs_limit(ooseq) #endif /** diff --git a/lwip/lwip b/lwip/lwip index bb66be5..ecafdf0 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit bb66be5a47e47faa4d3aa572299ceaac216de000 +Subproject commit ecafdf0e5d399c610f5c2f777949d2b5fec8d0ca From 5e92d55af5484e93c7b6a2ed82167df65b26c136 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 16 Sep 2017 17:56:04 +1000 Subject: [PATCH 210/349] lwip: update to the 2.0.3 release --- lwip/lwip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/lwip b/lwip/lwip index ecafdf0..b9416cd 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit ecafdf0e5d399c610f5c2f777949d2b5fec8d0ca +Subproject commit b9416cd99fbc696f7be1894f1c4a635e2cc7503f From 1e76ce25d5f73adcd9197017eef26a5296e3945c Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 21 Sep 2017 20:49:23 +1000 Subject: [PATCH 211/349] lwip: merge upstream master. --- lwip/esp_interface.c | 6 ++++-- lwip/include/arch/cc.h | 6 +++--- lwip/lwip | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index 8157c8b..f67f9dd 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -166,9 +166,10 @@ void pp_recycle_rx_pbuf(struct pbuf *p) /* Return the number of ooseq bytes that can be retained given the current * size 'n'. */ -size_t ooseq_bytes_limit(struct tcp_seg *ooseq) +size_t ooseq_bytes_limit(struct tcp_pcb *pcb) { #if COPY_PP_RX_PBUFS + struct tcp_seg *ooseq = pcb->ooseq; size_t ooseq_blen = 0; for (; ooseq != NULL; ooseq = ooseq->next) { struct pbuf *p = ooseq->p; @@ -192,8 +193,9 @@ size_t ooseq_bytes_limit(struct tcp_seg *ooseq) /* Return the number of ooseq pbufs that can be retained given the current * size 'n'. */ -size_t ooseq_pbufs_limit(struct tcp_seg *ooseq) +size_t ooseq_pbufs_limit(struct tcp_pcb *pcb) { + struct tcp_seg *ooseq = pcb->ooseq; size_t ooseq_qlen = 0; for (; ooseq != NULL; ooseq = ooseq->next) { struct pbuf *p = ooseq->p; diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h index ed169ea..e7cf291 100644 --- a/lwip/include/arch/cc.h +++ b/lwip/include/arch/cc.h @@ -48,9 +48,9 @@ void sdk_system_pp_recycle_rx_pkt(struct esf_buf *); struct pbuf; void pp_recycle_rx_pbuf(struct pbuf *); -struct tcp_seg; -size_t ooseq_bytes_limit(struct tcp_seg *ooseq); -size_t ooseq_pbufs_limit(struct tcp_seg *ooseq); +struct tcp_pcb; +size_t ooseq_bytes_limit(struct tcp_pcb *); +size_t ooseq_pbufs_limit(struct tcp_pcb *); /* Define generic types used in lwIP */ typedef uint8_t u8_t; diff --git a/lwip/lwip b/lwip/lwip index b9416cd..16c0f92 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit b9416cd99fbc696f7be1894f1c4a635e2cc7503f +Subproject commit 16c0f928b5d6f557e845d96782cb3fa4e8e549fd From 6080bb6ef2c25fd3996487a6c19214019affe1fc Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 21 Sep 2017 21:46:20 +1000 Subject: [PATCH 212/349] libc: update to upstream master. --- extras/httpd/httpd.c | 2 +- extras/sntp/sntp_fun.c | 2 +- libc/README.md | 2 +- libc/xtensa-lx106-elf/include/inttypes.h | 18 ++ .../xtensa-lx106-elf/include/machine/ieeefp.h | 4 + .../xtensa-lx106-elf/include/machine/setjmp.h | 13 +- libc/xtensa-lx106-elf/include/machine/time.h | 2 +- libc/xtensa-lx106-elf/include/newlib.h | 3 + libc/xtensa-lx106-elf/include/stdio.h | 42 +++- libc/xtensa-lx106-elf/include/string.h | 3 + libc/xtensa-lx106-elf/include/strings.h | 6 +- libc/xtensa-lx106-elf/include/sys/_intsup.h | 181 +++++++++++++++++- libc/xtensa-lx106-elf/include/sys/_types.h | 9 +- libc/xtensa-lx106-elf/include/sys/cdefs.h | 2 + libc/xtensa-lx106-elf/include/sys/config.h | 9 +- libc/xtensa-lx106-elf/include/sys/features.h | 7 +- libc/xtensa-lx106-elf/lib/libc.a | Bin 5853090 -> 6013766 bytes libc/xtensa-lx106-elf/lib/libg.a | Bin 5853090 -> 6013766 bytes libc/xtensa-lx106-elf/lib/libm.a | Bin 2371658 -> 2383486 bytes 19 files changed, 281 insertions(+), 24 deletions(-) diff --git a/extras/httpd/httpd.c b/extras/httpd/httpd.c index 253bc13..fcbc290 100644 --- a/extras/httpd/httpd.c +++ b/extras/httpd/httpd.c @@ -139,7 +139,7 @@ /** Set this to 1 on platforms where strnstr is not available */ #ifndef LWIP_HTTPD_STRNSTR_PRIVATE -#define LWIP_HTTPD_STRNSTR_PRIVATE 1 +#define LWIP_HTTPD_STRNSTR_PRIVATE 0 #endif /** Set this to one to show error pages when parsing a request fails instead diff --git a/extras/sntp/sntp_fun.c b/extras/sntp/sntp_fun.c index 7aaca20..96e8ffc 100644 --- a/extras/sntp/sntp_fun.c +++ b/extras/sntp/sntp_fun.c @@ -102,7 +102,7 @@ void sntp_update_rtc(time_t t, uint32_t us) { // DEBUG: Compute and print drift int64_t sntp_current = sntp_base + TIMER_COUNT - tim_ref; int64_t sntp_correct = (((uint64_t)us + (uint64_t)t * 1000000U)<<12) / cal; - printf("\nRTC Adjust: drift = %ld ticks, cal = %d\n", (time_t)(sntp_correct - sntp_current), cal); + printf("\nRTC Adjust: drift = %lld ticks, cal = %d\n", (time_t)(sntp_correct - sntp_current), (uint32_t)cal); tim_ref = TIMER_COUNT; cal = sdk_system_rtc_clock_cali_proc(); diff --git a/libc/README.md b/libc/README.md index 50a299a..f4d8199 100644 --- a/libc/README.md +++ b/libc/README.md @@ -1 +1 @@ -Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit cca8337a4eff8d590c54ce0a9cf335041d949296 +Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit 7bcbbff5f7e3600806f352e88ec23ae0300edc29 diff --git a/libc/xtensa-lx106-elf/include/inttypes.h b/libc/xtensa-lx106-elf/include/inttypes.h index 25c6e99..694ba8f 100644 --- a/libc/xtensa-lx106-elf/include/inttypes.h +++ b/libc/xtensa-lx106-elf/include/inttypes.h @@ -16,10 +16,15 @@ #include #include #include +#include "_ansi.h" #include #define __need_wchar_t #include +#if __BSD_VISIBLE +#include +#endif + #define __STRINGIFY(a) #a /* 8-bit types */ @@ -309,6 +314,8 @@ typedef struct { intmax_t rem; } imaxdiv_t; +struct _reent; + #ifdef __cplusplus extern "C" { #endif @@ -316,9 +323,20 @@ extern "C" { extern intmax_t imaxabs(intmax_t j); extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer); extern intmax_t strtoimax(const char *__restrict, char **__restrict, int); +extern intmax_t _strtoimax_r(struct _reent *, const char *__restrict, char **__restrict, int); extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int); +extern uintmax_t _strtoumax_r(struct _reent *, const char *__restrict, char **__restrict, int); extern intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int); +extern intmax_t _wcstoimax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int); +extern uintmax_t _wcstoumax_r(struct _reent *, const wchar_t *__restrict, wchar_t **__restrict, int); + +#if __BSD_VISIBLE +extern intmax_t strtoimax_l(const char *__restrict, char **_restrict, int, locale_t); +extern uintmax_t strtoumax_l(const char *__restrict, char **_restrict, int, locale_t); +extern intmax_t wcstoimax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); +extern uintmax_t wcstoumax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t); +#endif #ifdef __cplusplus } diff --git a/libc/xtensa-lx106-elf/include/machine/ieeefp.h b/libc/xtensa-lx106-elf/include/machine/ieeefp.h index d3c6905..23c03a7 100644 --- a/libc/xtensa-lx106-elf/include/machine/ieeefp.h +++ b/libc/xtensa-lx106-elf/include/machine/ieeefp.h @@ -170,6 +170,10 @@ #define __IEEE_LITTLE_ENDIAN #endif +#ifdef __riscv +#define __IEEE_LITTLE_ENDIAN +#endif + #ifdef __i960__ #define __IEEE_LITTLE_ENDIAN #endif diff --git a/libc/xtensa-lx106-elf/include/machine/setjmp.h b/libc/xtensa-lx106-elf/include/machine/setjmp.h index d1bd78e..d93636b 100644 --- a/libc/xtensa-lx106-elf/include/machine/setjmp.h +++ b/libc/xtensa-lx106-elf/include/machine/setjmp.h @@ -385,6 +385,15 @@ _BEGIN_STD_C #define _JBLEN 12 #endif +#ifdef __riscv +#define _JBTYPE long +#ifdef __riscv_32e +#define _JBLEN ((4*sizeof(long))/sizeof(long)) +#else +#define _JBLEN ((14*sizeof(long) + 12*sizeof(double))/sizeof(long)) +#endif +#endif + #ifdef _JBLEN #ifdef _JBTYPE typedef _JBTYPE jmp_buf[_JBLEN]; @@ -395,7 +404,7 @@ typedef int jmp_buf[_JBLEN]; _END_STD_C -#if defined(__CYGWIN__) || defined(__rtems__) +#if (defined(__CYGWIN__) || defined(__rtems__)) && __POSIX_VISIBLE #include #ifdef __cplusplus @@ -477,4 +486,4 @@ extern int _setjmp (jmp_buf); #ifdef __cplusplus } #endif -#endif /* __CYGWIN__ or __rtems__ */ +#endif /* (__CYGWIN__ or __rtems__) and __POSIX_VISIBLE */ diff --git a/libc/xtensa-lx106-elf/include/machine/time.h b/libc/xtensa-lx106-elf/include/machine/time.h index 6f9a35c..c75edaf 100644 --- a/libc/xtensa-lx106-elf/include/machine/time.h +++ b/libc/xtensa-lx106-elf/include/machine/time.h @@ -1,7 +1,7 @@ #ifndef _MACHTIME_H_ #define _MACHTIME_H_ -#if defined(__rtems__) || defined(__VISIUM__) +#if defined(__rtems__) || defined(__VISIUM__) || defined(__riscv) #define _CLOCKS_PER_SEC_ 1000000 #elif defined(__aarch64__) || defined(__arm__) || defined(__thumb__) #define _CLOCKS_PER_SEC_ 100 diff --git a/libc/xtensa-lx106-elf/include/newlib.h b/libc/xtensa-lx106-elf/include/newlib.h index 65b6e90..f4dd838 100644 --- a/libc/xtensa-lx106-elf/include/newlib.h +++ b/libc/xtensa-lx106-elf/include/newlib.h @@ -91,6 +91,9 @@ /* Define if using retargetable functions for default lock routines. */ /* #undef _RETARGETABLE_LOCKING */ +/* Define to use type long for time_t. */ +/* #undef _WANT_USE_LONG_TIME_T */ + /* * Iconv encodings enabled ("to" direction) */ diff --git a/libc/xtensa-lx106-elf/include/stdio.h b/libc/xtensa-lx106-elf/include/stdio.h index 1c32423..ee0f612 100644 --- a/libc/xtensa-lx106-elf/include/stdio.h +++ b/libc/xtensa-lx106-elf/include/stdio.h @@ -384,6 +384,9 @@ int _EXFUN(vdprintf, (int, const char *__restrict, __VALIST) #endif #if __ATFILE_VISIBLE int _EXFUN(renameat, (int, const char *, int, const char *)); +# ifdef __CYGWIN__ +int _EXFUN(renameat2, (int, const char *, int, const char *, unsigned int)); +# endif #endif /* @@ -735,12 +738,35 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define fileno(p) __sfileno(p) #endif -#ifndef __CYGWIN__ -#ifndef lint -#define getc(fp) __sgetc_r(_REENT, fp) -#define putc(x, fp) __sputc_r(_REENT, x, fp) -#endif /* lint */ -#endif /* __CYGWIN__ */ +static __inline int +_getchar_unlocked(void) +{ + struct _reent *_ptr; + + _ptr = _REENT; + return (__sgetc_r(_ptr, _stdin_r(_ptr))); +} + +static __inline int +_putchar_unlocked(int _c) +{ + struct _reent *_ptr; + + _ptr = _REENT; + return (__sputc_r(_ptr, _c, _stdout_r(_ptr))); +} + +#ifdef __SINGLE_THREAD__ +#define getc(_p) __sgetc_r(_REENT, _p) +#define putc(_c, _p) __sputc_r(_REENT, _c, _p) +#define getchar() _getchar_unlocked() +#define putchar(_c) _putchar_unlocked(_c) +#endif /* __SINGLE_THREAD__ */ + +#if __MISC_VISIBLE || __POSIX_VISIBLE +#define getchar_unlocked() _getchar_unlocked() +#define putchar_unlocked(_c) _putchar_unlocked(_c) +#endif #endif /* __cplusplus */ #if __MISC_VISIBLE @@ -756,7 +782,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define L_ctermid 16 #endif -#endif /* !__CUSTOM_FILE_IO__ */ +#else /* __CUSTOM_FILE_IO__ */ #define getchar() getc(stdin) #define putchar(x) putc(x, stdout) @@ -766,6 +792,8 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define putchar_unlocked(x) putc_unlocked(x, stdout) #endif +#endif /* !__CUSTOM_FILE_IO__ */ + _END_STD_C #endif /* _STDIO_H_ */ diff --git a/libc/xtensa-lx106-elf/include/string.h b/libc/xtensa-lx106-elf/include/string.h index 7833aa1..9c536f3 100644 --- a/libc/xtensa-lx106-elf/include/string.h +++ b/libc/xtensa-lx106-elf/include/string.h @@ -121,6 +121,9 @@ size_t _EXFUN(strnlen,(const char *, size_t)); #if __BSD_VISIBLE char *_EXFUN(strsep,(char **, const char *)); #endif +#if __BSD_VISIBLE +char *strnstr(const char *, const char *, size_t) __pure; +#endif #if __MISC_VISIBLE char *_EXFUN(strlwr,(char *)); diff --git a/libc/xtensa-lx106-elf/include/strings.h b/libc/xtensa-lx106-elf/include/strings.h index 35fcdc0..122f2fc 100644 --- a/libc/xtensa-lx106-elf/include/strings.h +++ b/libc/xtensa-lx106-elf/include/strings.h @@ -50,12 +50,14 @@ void bzero(void *, size_t); /* LEGACY */ #if __BSD_VISIBLE void explicit_bzero(void *, size_t); #endif -#if __XSI_VISIBLE +#if __MISC_VISIBLE || __POSIX_VISIBLE < 200809 || __XSI_VISIBLE >= 700 int ffs(int) __pure2; #endif -#if __BSD_VISIBLE +#if __GNU_VISIBLE int ffsl(long) __pure2; int ffsll(long long) __pure2; +#endif +#if __BSD_VISIBLE int fls(int) __pure2; int flsl(long) __pure2; int flsll(long long) __pure2; diff --git a/libc/xtensa-lx106-elf/include/sys/_intsup.h b/libc/xtensa-lx106-elf/include/sys/_intsup.h index fa78426..88d7400 100644 --- a/libc/xtensa-lx106-elf/include/sys/_intsup.h +++ b/libc/xtensa-lx106-elf/include/sys/_intsup.h @@ -4,8 +4,6 @@ * * Permission to use, copy, modify, and distribute this software * is freely granted, provided that this notice is preserved. - * - * Modified for xtensa arch & non-long int32_t, removes automatic setting of __have_long32. */ #ifndef _SYS__INTSUP_H @@ -13,8 +11,185 @@ #include +#if __GNUC_PREREQ (3, 2) +/* gcc > 3.2 implicitly defines the values we are interested */ #define __STDINT_EXP(x) __##x##__ +#else +#define __STDINT_EXP(x) x +#include +#endif -#define __have_longlong64 1 +/* Determine how intptr_t and intN_t fastN_t and leastN_t are defined by gcc + for this target. This is used to determine the correct printf() constant in + inttypes.h and other constants in stdint.h. + So we end up with + ?(signed|unsigned) char == 0 + ?(signed|unsigned) short == 1 + ?(signed|unsigned) int == 2 + ?(signed|unsigned) short int == 3 + ?(signed|unsigned) long == 4 + ?(signed|unsigned) long int == 6 + ?(signed|unsigned) long long == 8 + ?(signed|unsigned) long long int == 10 + */ +#pragma push_macro("signed") +#pragma push_macro("unsigned") +#pragma push_macro("char") +#pragma push_macro("short") +#pragma push_macro("__int20") +#pragma push_macro("int") +#pragma push_macro("long") +#undef signed +#undef unsigned +#undef char +#undef short +#undef int +#undef __int20 +#undef long +#define signed +0 +#define unsigned +0 +#define char +0 +#define short +1 +#define __int20 +2 +#define int +2 +#define long +4 +#if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10) +#define _INTPTR_EQ_LONGLONG +#elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6) +#define _INTPTR_EQ_LONG +/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently + redundant as the values are not used. But one day they may be needed + and so the tests remain. */ +#elif __INTPTR_TYPE__ == 2 +#define _INTPTR_EQ_INT +#elif (__INTPTR_TYPE__ == 1 || __INTPTR_TYPE__ == 3) +#define _INTPTR_EQ_SHORT +#else +#error "Unable to determine type definition of intptr_t" +#endif +#if (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) +#define _INT32_EQ_LONG +#elif __INT32_TYPE__ == 2 +/* Nothing to define because int32_t is safe to print as an int. */ +#else +#error "Unable to determine type definition of int32_t" +#endif + +#if (__INT8_TYPE__ == 0) +#define __INT8 "hh" +#elif (__INT8_TYPE__ == 1 || __INT8_TYPE__ == 3) +#define __INT8 "h" +#elif (__INT8_TYPE__ == 2) +#define __INT8 +#elif (__INT8_TYPE__ == 4 || __INT8_TYPE__ == 6) +#define __INT8 "l" +#elif (__INT8_TYPE__ == 8 || __INT8_TYPE__ == 10) +#define __INT8 "ll" +#endif +#if (__INT16_TYPE__ == 1 || __INT16_TYPE__ == 3) +#define __INT16 "h" +#elif (__INT16_TYPE__ == 2) +#define __INT16 +#elif (__INT16_TYPE__ == 4 || __INT16_TYPE__ == 6) +#define __INT16 "l" +#elif (__INT16_TYPE__ == 8 || __INT16_TYPE__ == 10) +#define __INT16 "ll" +#endif +#if (__INT32_TYPE__ == 2) +#define __INT32 +#elif (__INT32_TYPE__ == 4 || __INT32_TYPE__ == 6) +#define __INT32 "l" +#elif (__INT32_TYPE__ == 8 || __INT32_TYPE__ == 10) +#define __INT32 "ll" +#endif +#if (__INT64_TYPE__ == 2) +#define __INT64 +#elif (__INT64_TYPE__ == 4 || __INT64_TYPE__ == 6) +#define __INT64 "l" +#elif (__INT64_TYPE__ == 8 || __INT64_TYPE__ == 10) +#define __INT64 "ll" +#endif +#if (__INT_FAST8_TYPE__ == 0) +#define __FAST8 "hh" +#elif (__INT_FAST8_TYPE__ == 1 || __INT_FAST8_TYPE__ == 3) +#define __FAST8 "h" +#elif (__INT_FAST8_TYPE__ == 2) +#define __FAST8 +#elif (__INT_FAST8_TYPE__ == 4 || __INT_FAST8_TYPE__ == 6) +#define __FAST8 "l" +#elif (__INT_FAST8_TYPE__ == 8 || __INT_FAST8_TYPE__ == 10) +#define __FAST8 "ll" +#endif +#if (__INT_FAST16_TYPE__ == 1 || __INT_FAST16_TYPE__ == 3) +#define __FAST16 "h" +#elif (__INT_FAST16_TYPE__ == 2) +#define __FAST16 +#elif (__INT_FAST16_TYPE__ == 4 || __INT_FAST16_TYPE__ == 6) +#define __FAST16 "l" +#elif (__INT_FAST16_TYPE__ == 8 || __INT_FAST16_TYPE__ == 10) +#define __FAST16 "ll" +#endif +#if (__INT_FAST32_TYPE__ == 2) +#define __FAST32 +#elif (__INT_FAST32_TYPE__ == 4 || __INT_FAST32_TYPE__ == 6) +#define __FAST32 "l" +#elif (__INT_FAST32_TYPE__ == 8 || __INT_FAST32_TYPE__ == 10) +#define __FAST32 "ll" +#endif +#if (__INT_FAST64_TYPE__ == 2) +#define __FAST64 +#elif (__INT_FAST64_TYPE__ == 4 || __INT_FAST64_TYPE__ == 6) +#define __FAST64 "l" +#elif (__INT_FAST64_TYPE__ == 8 || __INT_FAST64_TYPE__ == 10) +#define __FAST64 "ll" +#endif + +#if (__INT_LEAST8_TYPE__ == 0) +#define __LEAST8 "hh" +#elif (__INT_LEAST8_TYPE__ == 1 || __INT_LEAST8_TYPE__ == 3) +#define __LEAST8 "h" +#elif (__INT_LEAST8_TYPE__ == 2) +#define __LEAST8 +#elif (__INT_LEAST8_TYPE__ == 4 || __INT_LEAST8_TYPE__ == 6) +#define __LEAST8 "l" +#elif (__INT_LEAST8_TYPE__ == 8 || __INT_LEAST8_TYPE__ == 10) +#define __LEAST8 "ll" +#endif +#if (__INT_LEAST16_TYPE__ == 1 || __INT_LEAST16_TYPE__ == 3) +#define __LEAST16 "h" +#elif (__INT_LEAST16_TYPE__ == 2) +#define __LEAST16 +#elif (__INT_LEAST16_TYPE__ == 4 || __INT_LEAST16_TYPE__ == 6) +#define __LEAST16 "l" +#elif (__INT_LEAST16_TYPE__ == 8 || __INT_LEAST16_TYPE__ == 10) +#define __LEAST16 "ll" +#endif +#if (__INT_LEAST32_TYPE__ == 2) +#define __LEAST32 +#elif (__INT_LEAST32_TYPE__ == 4 || __INT_LEAST32_TYPE__ == 6) +#define __LEAST32 "l" +#elif (__INT_LEAST32_TYPE__ == 8 || __INT_LEAST32_TYPE__ == 10) +#define __LEAST32 "ll" +#endif +#if (__INT_LEAST64_TYPE__ == 2) +#define __LEAST64 +#elif (__INT_LEAST64_TYPE__ == 4 || __INT_LEAST64_TYPE__ == 6) +#define __LEAST64 "l" +#elif (__INT_LEAST64_TYPE__ == 8 || __INT_LEAST64_TYPE__ == 10) +#define __LEAST64 "ll" +#endif +#undef signed +#undef unsigned +#undef char +#undef short +#undef int +#undef long +#pragma pop_macro("signed") +#pragma pop_macro("unsigned") +#pragma pop_macro("char") +#pragma pop_macro("short") +#pragma pop_macro("__int20") +#pragma pop_macro("int") +#pragma pop_macro("long") #endif /* _SYS__INTSUP_H */ diff --git a/libc/xtensa-lx106-elf/include/sys/_types.h b/libc/xtensa-lx106-elf/include/sys/_types.h index 98b93ce..72e1dc1 100644 --- a/libc/xtensa-lx106-elf/include/sys/_types.h +++ b/libc/xtensa-lx106-elf/include/sys/_types.h @@ -180,10 +180,17 @@ typedef _LOCK_RECURSIVE_T _flock_t; typedef void *_iconv_t; #endif +#ifndef __machine_clock_t_defined #define _CLOCK_T_ unsigned long /* clock() */ +#endif + typedef _CLOCK_T_ __clock_t; -#define _TIME_T_ long /* time() */ +#if defined(_USE_LONG_TIME_T) || __LONG_MAX__ > 0x7fffffffL +#define _TIME_T_ long +#else +#define _TIME_T_ __int_least64_t +#endif typedef _TIME_T_ __time_t; #define _CLOCKID_T_ unsigned long diff --git a/libc/xtensa-lx106-elf/include/sys/cdefs.h b/libc/xtensa-lx106-elf/include/sys/cdefs.h index 2e63a07..8ce14b6 100644 --- a/libc/xtensa-lx106-elf/include/sys/cdefs.h +++ b/libc/xtensa-lx106-elf/include/sys/cdefs.h @@ -681,6 +681,8 @@ #endif /* Structure implements a lock. */ +/* FIXME: Use __lockable__, etc. to avoid colliding with user namespace macros, + * once clang is fixed: https://bugs.llvm.org/show_bug.cgi?id=34319 */ #define __lockable __lock_annotate(lockable) /* Function acquires an exclusive or shared lock. */ diff --git a/libc/xtensa-lx106-elf/include/sys/config.h b/libc/xtensa-lx106-elf/include/sys/config.h index 24ca1a0..3c185ea 100644 --- a/libc/xtensa-lx106-elf/include/sys/config.h +++ b/libc/xtensa-lx106-elf/include/sys/config.h @@ -75,7 +75,7 @@ #define _POINTER_INT short #endif -#if defined(__m68k__) || defined(__mc68000__) +#if defined(__m68k__) || defined(__mc68000__) || defined(__riscv) #define _READ_WRITE_RETURN_TYPE _ssize_t #endif @@ -154,6 +154,7 @@ #define _REENT_SMALL #endif +#define __BUFSIZ__ 256 #define __SMALL_BITFIELDS #ifdef __MSP430X_LARGE__ @@ -289,6 +290,12 @@ #endif #endif +#ifdef _WANT_USE_LONG_TIME_T +#ifndef _USE_LONG_TIME_T +#define _USE_LONG_TIME_T +#endif +#endif + /* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended charsets. The extended charsets add a few functions and a couple of tables of a few K each. */ diff --git a/libc/xtensa-lx106-elf/include/sys/features.h b/libc/xtensa-lx106-elf/include/sys/features.h index 1f9271b..c9133af 100644 --- a/libc/xtensa-lx106-elf/include/sys/features.h +++ b/libc/xtensa-lx106-elf/include/sys/features.h @@ -505,10 +505,9 @@ extern "C" { /* #define _XOPEN_UNIX -1 */ #endif /* __XSI_VISIBLE */ -/* The value corresponds to UNICODE version 4.0, which is the version - supported by XP. Newlib supports 5.2 (2011) but so far Cygwin needs - the MS conversions for double-byte charsets. */ -#define __STDC_ISO_10646__ 200305L +/* The value corresponds to UNICODE version 5.2, which is the current + state of newlib's wide char conversion functions. */ +#define __STDC_ISO_10646__ 200910L #endif /* __CYGWIN__ */ diff --git a/libc/xtensa-lx106-elf/lib/libc.a b/libc/xtensa-lx106-elf/lib/libc.a index 1df238ab965ab10e0b54611d1f0ab8d72458b31a..2c1132ea04789d3bd0b39042ca743ce7361c3265 100644 GIT binary patch delta 338497 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%0A4$dsHW93G8tim>92aC2HQ4x1y) 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ΠuW;}e{l?6(Dj-j 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 Idav*Q0A=r^M*si- delta 249123 zcmb?^33wF6_HR|sOwZPtOlCSWlaM`OvJk=~KnNj(1R*3WA#4Fz0|FvTh=70yOh7~g z1Y{t^4alYnsZ(p$ za;mzja%k>VVf~sPge6h_7Oh*i_T{v0otKc{OTeG@nUIj(BD;BzQ)MAUcZ85GI|vy& zKS(pL5V8pDZ_Om+BXB=bLde%U2o>rHb(RF_*^z{k@ME})IqQ8{S$q?lr zhBh{0c%+UPo;yzrJL`$z{maAvDL34i%Sp7aCt}<#A~r1{V!I?FF0wpG%48xUeLIX8 zKk*XduNF?G_&wwS^1ob1O#h93tR|*kK^Vv!xrmsX9VF)VhlsgP5;0F$Pt4D{i222( z#QYv$q#p%hF-{;ByO&sU0Jl3rEEQ*nWyroD&HjT}koK(((oY%0Dn}E)H9v<~9|6mA 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 diff --git a/libc/xtensa-lx106-elf/lib/libg.a b/libc/xtensa-lx106-elf/lib/libg.a index 1df238ab965ab10e0b54611d1f0ab8d72458b31a..2c1132ea04789d3bd0b39042ca743ce7361c3265 100644 GIT binary patch delta 338497 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%0A4$dsHW93G8tim>92aC2HQ4x1y) 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ΠuW;}e{l?6(Dj-j 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 Idav*Q0A=r^M*si- delta 249123 zcmb?^33wF6_HR|sOwZPtOlCSWlaM`OvJk=~KnNj(1R*3WA#4Fz0|FvTh=70yOh7~g z1Y{t^4alYnsZ(p$ za;mzja%k>VVf~sPge6h_7Oh*i_T{v0otKc{OTeG@nUIj(BD;BzQ)MAUcZ85GI|vy& zKS(pL5V8pDZ_Om+BXB=bLde%U2o>rHb(RF_*^z{k@ME})IqQ8{S$q?lr zhBh{0c%+UPo;yzrJL`$z{maAvDL34i%Sp7aCt}<#A~r1{V!I?FF0wpG%48xUeLIX8 zKk*XduNF?G_&wwS^1ob1O#h93tR|*kK^Vv!xrmsX9VF)VhlsgP5;0F$Pt4D{i222( z#QYv$q#p%hF-{;ByO&sU0Jl3rEEQ*nWyroD&HjT}koK(((oY%0Dn}E)H9v<~9|6mA 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 diff --git a/libc/xtensa-lx106-elf/lib/libm.a b/libc/xtensa-lx106-elf/lib/libm.a index cbc418d0ee7e9c98561cb20a6b3b699959b604ec..2285786dc75f25cdf40a966ed7b8ec9ee8f14168 100644 GIT binary patch delta 22454 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 KGt#muSNMNC#9!h7 delta 18240 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 DzeK$$ From 70aa7a90a52422999348aa5c8e27a41272da9048 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sun, 1 Oct 2017 21:26:15 +1100 Subject: [PATCH 213/349] lwip: fix building without TCP_QUEUE_OOSEQ --- lwip/esp_interface.c | 4 ++++ lwip/lwip | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lwip/esp_interface.c b/lwip/esp_interface.c index f67f9dd..77ad177 100644 --- a/lwip/esp_interface.c +++ b/lwip/esp_interface.c @@ -164,6 +164,8 @@ void pp_recycle_rx_pbuf(struct pbuf *p) #define COPY_PP_RX_PBUFS 0 +#if TCP_QUEUE_OOSEQ + /* Return the number of ooseq bytes that can be retained given the current * size 'n'. */ size_t ooseq_bytes_limit(struct tcp_pcb *pcb) @@ -220,6 +222,8 @@ size_t ooseq_pbufs_limit(struct tcp_pcb *pcb) return target; } +#endif /* TCP_QUEUE_OOSEQ */ + /** * This function should be called when a packet is ready to be read * from the interface. It uses the function low_level_input() that diff --git a/lwip/lwip b/lwip/lwip index 16c0f92..74676d4 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 16c0f928b5d6f557e845d96782cb3fa4e8e549fd +Subproject commit 74676d46f0bc5ed82515f8e247008b7c45ec6cf6 From 68cc1451b2a7b2040307b457a773c8049464e275 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Sun, 8 Oct 2017 08:47:23 +0200 Subject: [PATCH 214/349] example and dhcp debug (#447) --- examples/tcp_non_blocking/Makefile | 5 + examples/tcp_non_blocking/tcp_non_blocking.c | 203 +++++++++++++++++++ extras/dhcpserver/dhcpserver.c | 59 +++--- 3 files changed, 244 insertions(+), 23 deletions(-) create mode 100644 examples/tcp_non_blocking/Makefile create mode 100644 examples/tcp_non_blocking/tcp_non_blocking.c diff --git a/examples/tcp_non_blocking/Makefile b/examples/tcp_non_blocking/Makefile new file mode 100644 index 0000000..c88b576 --- /dev/null +++ b/examples/tcp_non_blocking/Makefile @@ -0,0 +1,5 @@ +# Makefile for tcp_non_blocking example +PROGRAM=tcp_non_blocking +EXTRA_COMPONENTS=extras/dhcpserver + +include ../../common.mk diff --git a/examples/tcp_non_blocking/tcp_non_blocking.c b/examples/tcp_non_blocking/tcp_non_blocking.c new file mode 100644 index 0000000..4e35aa2 --- /dev/null +++ b/examples/tcp_non_blocking/tcp_non_blocking.c @@ -0,0 +1,203 @@ +/* + The ESP in the example runs a echo server on 172.16.0.1 (port 50 and 100 ) that + outputs information about your ip/port then echo all text you write. + It is manage multiple connection and multiple port with one task. + + This example code is in the public domain. + */ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#define AP_SSID "esp-open-rtos AP" +#define AP_PSK "esp-open-rtos" +#define ECHO_PORT_1 50 +#define ECHO_PORT_2 100 +#define EVENTS_QUEUE_SIZE 10 + +#ifdef CALLBACK_DEBUG +#define debug(s, ...) printf("%s: " s "\n", "Cb:", ## __VA_ARGS__) +#else +#define debug(s, ...) +#endif + +QueueHandle_t xQueue_events; +typedef struct { + struct netconn *nc ; + uint8_t type ; +} netconn_events; + +/* + * This function will be call in Lwip in each event on netconn + */ +static void netCallback(struct netconn *conn, enum netconn_evt evt, uint16_t length) +{ + //Show some callback information (debug) + debug("sock:%u\tsta:%u\tevt:%u\tlen:%u\ttyp:%u\tfla:%02X\terr:%d", \ + (uint32_t)conn,conn->state,evt,length,conn->type,conn->flags,conn->last_err); + + netconn_events events ; + + //If netconn got error, it is close or deleted, dont do treatments on it. + if (conn->pending_err) + { + return; + } + //Treatments only on rcv events. + switch (evt) { + case NETCONN_EVT_RCVPLUS: + events.nc = conn ; + events.type = evt ; + break; + default: + return; + break; + } + + //Send the event to the queue + xQueueSend(xQueue_events, &events, 1000); + +} + +/* + * Initialize a server netconn and listen port + */ +static void set_tcp_server_netconn(struct netconn **nc, uint16_t port, netconn_callback callback) +{ + if(nc == NULL) + { + printf("%s: netconn missing .\n",__FUNCTION__); + return; + } + *nc = netconn_new_with_callback(NETCONN_TCP, netCallback); + if(!*nc) { + printf("Status monitor: Failed to allocate netconn.\n"); + return; + } + netconn_set_nonblocking(*nc,NETCONN_FLAG_NON_BLOCKING); + //netconn_set_recvtimeout(*nc, 10); + netconn_bind(*nc, IP_ADDR_ANY, port); + netconn_listen(*nc); +} + +/* + * Close and delete a socket properly + */ +static void close_tcp_netconn(struct netconn *nc) +{ + nc->pending_err=ERR_CLSD; //It is hacky way to be sure than callback will don't do treatment on a netconn closed and deleted + netconn_close(nc); + netconn_delete(nc); +} + +/* + * This task manage each netconn connection without block anything + */ +static void nonBlockingTCP(void *pvParameters) +{ + + struct netconn *nc = NULL; // To create servers + + set_tcp_server_netconn(&nc, ECHO_PORT_1, netCallback); + printf("Server netconn %u ready on port %u.\n",(uint32_t)nc, ECHO_PORT_1); + set_tcp_server_netconn(&nc, ECHO_PORT_2, netCallback); + printf("Server netconn %u ready on port %u.\n",(uint32_t)nc, ECHO_PORT_2); + + struct netbuf *netbuf = NULL; // To store incoming Data + struct netconn *nc_in = NULL; // To accept incoming netconn + // + char buf[50]; + char* buffer; + uint16_t len_buf; + + while(1) { + + netconn_events events; + xQueueReceive(xQueue_events, &events, portMAX_DELAY); // Wait here an event on netconn + + if (events.nc->state == NETCONN_LISTEN) // If netconn is a server and receive incoming event on it + { + printf("Client incoming on server %u.\n", (uint32_t)events.nc); + int err = netconn_accept(events.nc, &nc_in); + if (err != ERR_OK) + { + if(nc_in) + netconn_delete(nc_in); + } + printf("New client is %u.\n",(uint32_t)nc_in); + ip_addr_t client_addr; //Address port + uint16_t client_port; //Client port + netconn_peer(nc_in, &client_addr, &client_port); + snprintf(buf, sizeof(buf), "Your address is %d.%d.%d.%d:%u.\r\n", + ip4_addr1(&client_addr), ip4_addr2(&client_addr), + ip4_addr3(&client_addr), ip4_addr4(&client_addr), + client_port); + netconn_write(nc_in, buf, strlen(buf), NETCONN_COPY); + } + else if(events.nc->state != NETCONN_LISTEN) // If netconn is the client and receive data + { + if ((netconn_recv(events.nc, &netbuf)) == ERR_OK) // data incoming ? + { + do + { + netbuf_data(netbuf, (void*)&buffer, &len_buf); + netconn_write(events.nc, buffer, strlen(buffer), NETCONN_COPY); + printf("Client %u send: %s\n",(uint32_t)events.nc,buffer); + } + while (netbuf_next(netbuf) >= 0); + netbuf_delete(netbuf); + } + else + { + close_tcp_netconn(events.nc); + printf("Error read netconn %u, close it \n",(uint32_t)events.nc); + } + } + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + sdk_os_delay_us(500); // Wait UART + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + sdk_wifi_set_opmode(SOFTAP_MODE); + struct ip_info ap_ip; + IP4_ADDR(&ap_ip.ip, 172, 16, 0, 1); + IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); + IP4_ADDR(&ap_ip.netmask, 255, 255, 0, 0); + sdk_wifi_set_ip_info(1, &ap_ip); + + struct sdk_softap_config ap_config = { + .ssid = AP_SSID, + .ssid_hidden = 0, + .channel = 3, + .ssid_len = strlen(AP_SSID), + .authmode = AUTH_WPA_WPA2_PSK, + .password = AP_PSK, + .max_connection = 3, + .beacon_interval = 100, + }; + sdk_wifi_softap_set_config(&ap_config); + + ip_addr_t first_client_ip; + IP4_ADDR(&first_client_ip, 172, 16, 0, 2); + dhcpserver_start(&first_client_ip, 4); + printf("DHCP started\n"); + + //Create a queue to store events on netconns + xQueue_events = xQueueCreate( EVENTS_QUEUE_SIZE, sizeof(netconn_events)); + + xTaskCreate(nonBlockingTCP, "lwiptest_noblock", 512, NULL, 2, NULL); +} diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 934beb2..1881e60 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -22,6 +22,18 @@ #include #include "esplibs/libmain.h" +#if (DHCP_DEBUG == LWIP_DBG_ON) +#define debug(s, ...) printf("%s: " s "\n", "DHCP", ## __VA_ARGS__) +#else +#define debug(s, ...) +#endif + +#if (DHCP_DEBUG == LWIP_DBG_ON) +#define debug(s, ...) printf("%s: " s "\n", "DHCP", ## __VA_ARGS__) +#else +#define debug(s, ...) +#endif + /* Grow the size of the lwip dhcp_msg struct's options field, as LWIP defaults to a 68 octet options field for its DHCP client, and most full-sized clients send us more than this. */ @@ -131,8 +143,8 @@ static void dhcpserver_task(void *pxParameter) state->server_if = netif_list; /* TODO: Make this configurable */ state->nc = netconn_new (NETCONN_UDP); - if (!state->nc) { - printf("DHCP Server Error: Failed to allocate socket.\r\n"); + if(!state->nc) { + debug("DHCP Server Error: Failed to allocate socket."); return; } @@ -146,8 +158,8 @@ static void dhcpserver_task(void *pxParameter) /* Receive a DHCP packet */ err_t err = netconn_recv(state->nc, &netbuf); - if (err != ERR_OK) { - printf("DHCP Server Error: Failed to receive DHCP packet. err=%d\r\n", err); + if(err != ERR_OK) { + debug("DHCP Server Error: Failed to receive DHCP packet. err=%d", err); continue; } @@ -171,8 +183,8 @@ static void dhcpserver_task(void *pxParameter) netbuf_delete(netbuf); continue; } - if (netbuf_len(netbuf) >= sizeof(struct dhcp_msg)) { - printf("DHCP Server Warning: Client sent more options than we know how to parse. len=%d\r\n", netbuf_len(netbuf)); + if(netbuf_len(netbuf) >= sizeof(struct dhcp_msg)) { + debug("DHCP Server Warning: Client sent more options than we know how to parse. len=%d", netbuf_len(netbuf)); } netbuf_copy(netbuf, &received, sizeof(struct dhcp_msg)); @@ -180,19 +192,20 @@ static void dhcpserver_task(void *pxParameter) uint8_t *message_type = find_dhcp_option(&received, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN, NULL); - if (!message_type) { - printf("DHCP Server Error: No message type field found"); + if(!message_type) { + debug("DHCP Server Error: No message type field found"); continue; } - printf("State dump. Message type %d\n", *message_type); - for (int i = 0; i < state->max_leases; i++) { +#if (DHCP_DEBUG == LWIP_DBG_ON) + debug("State dump. Message type %d", *message_type); + for(int i = 0; i < state->max_leases; i++) { dhcp_lease_t *lease = &state->leases[i]; - printf("lease slot %d active %d expiry %d hwaddr %02x:%02x:%02x:%02x:%02x:%02x\r\n", i, - lease->active, lease->expires - now, - lease->hwaddr[0], lease->hwaddr[1], lease->hwaddr[2], - lease->hwaddr[3], lease->hwaddr[4], lease->hwaddr[5]); + debug("lease slot %d expiry %d hwaddr %02x:%02x:%02x:%02x:%02x:%02x", i, lease->expires, lease->hwaddr[0], + lease->hwaddr[1], lease->hwaddr[2], lease->hwaddr[3], lease->hwaddr[4], + lease->hwaddr[5]); } +#endif switch(*message_type) { case DHCP_DISCOVER: @@ -204,7 +217,7 @@ static void dhcpserver_task(void *pxParameter) case DHCP_RELEASE: handle_dhcp_release(&received); default: - printf("DHCP Server Error: Unsupported message type %d\r\n", *message_type); + debug("DHCP Server Error: Unsupported message type %d", *message_type); break; } } @@ -218,8 +231,8 @@ static void handle_dhcp_discover(struct dhcp_msg *dhcpmsg) return; dhcp_lease_t *freelease = find_lease_slot(dhcpmsg->chaddr); - if (!freelease) { - printf("DHCP Server: All leases taken.\r\n"); + if(!freelease) { + debug("DHCP Server: All leases taken."); return; /* Nothing available, so do nothing */ } @@ -264,7 +277,7 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg) } else if (ip4_addr_cmp(&requested_ip, IP4_ADDR_ANY4)) { ip4_addr_copy(requested_ip, dhcpmsg->ciaddr); } else { - printf("DHCP Server Error: No requested IP\r\n"); + debug("DHCP Server Error: No requested IP"); send_dhcp_nak(dhcpmsg); return; } @@ -274,14 +287,14 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg) || ip4_addr2(&requested_ip) != ip4_addr2(&state->first_client_addr) || ip4_addr3(&requested_ip) != ip4_addr3(&state->first_client_addr)) { sprintf_ipaddr(&requested_ip, ipbuf); - printf("DHCP Server Error: %s not an allowed IP\r\n", ipbuf); + debug("DHCP Server Error: %s not an allowed IP", ipbuf); send_dhcp_nak(dhcpmsg); return; } /* Test the last octet is in the MAXCLIENTS range */ int16_t octet_offs = ip4_addr4(&requested_ip) - ip4_addr4(&state->first_client_addr); - if (octet_offs < 0 || octet_offs >= state->max_leases) { - printf("DHCP Server Error: Address out of range\r\n"); + if(octet_offs < 0 || octet_offs >= state->max_leases) { + debug("DHCP Server Error: Address out of range"); send_dhcp_nak(dhcpmsg); return; } @@ -289,14 +302,14 @@ static void handle_dhcp_request(struct dhcp_msg *dhcpmsg) dhcp_lease_t *requested_lease = state->leases + octet_offs; if (requested_lease->active && memcmp(requested_lease->hwaddr, dhcpmsg->chaddr,dhcpmsg->hlen)) { - printf("DHCP Server Error: Lease for address already taken\r\n"); + debug("DHCP Server Error: Lease for address already taken"); send_dhcp_nak(dhcpmsg); return; } memcpy(requested_lease->hwaddr, dhcpmsg->chaddr, dhcpmsg->hlen); sprintf_ipaddr(&requested_ip, ipbuf); - printf("DHCP lease addr %s assigned to MAC %02x:%02x:%02x:%02x:%02x:%02x\r\n", ipbuf, requested_lease->hwaddr[0], + debug("DHCP lease addr %s assigned to MAC %02x:%02x:%02x:%02x:%02x:%02x", ipbuf, requested_lease->hwaddr[0], requested_lease->hwaddr[1], requested_lease->hwaddr[2], requested_lease->hwaddr[3], requested_lease->hwaddr[4], requested_lease->hwaddr[5]); uint32_t now = xTaskGetTickCount(); From e24b6579fff04e59e5bfde7e222a93165383d5e5 Mon Sep 17 00:00:00 2001 From: Erwin Boskma Date: Sun, 8 Oct 2017 20:02:39 +0200 Subject: [PATCH 215/349] Added support for RGBW NeoPixels (#449) --- examples/ws2812_i2s/ws2812_i2s_colour_loop.c | 18 +++++++++++++----- extras/ws2812_i2s/ws2812_i2s.c | 16 +++++++++++----- extras/ws2812_i2s/ws2812_i2s.h | 10 ++++++++-- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c index 05f47c4..c5b5411 100644 --- a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c +++ b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c @@ -17,7 +17,7 @@ #include "ws2812_i2s/ws2812_i2s.h" -const uint32_t led_number = 60; +const uint32_t led_number = 12; const uint32_t tail_fade_factor = 2; const uint32_t tail_length = 8; @@ -41,7 +41,7 @@ static int fix_index(int index) static ws2812_pixel_t next_colour() { - ws2812_pixel_t colour = {0, 0, 0}; + ws2812_pixel_t colour = {0, 0, 0, 0}; colour.red = rand() % 256; colour.green = rand() % 256; colour.blue = rand() % 256; @@ -54,7 +54,7 @@ static void demo(void *pvParameters) ws2812_pixel_t pixels[led_number]; int head_index = 0; - ws2812_i2s_init(led_number); + ws2812_i2s_init(led_number, PIXEL_RGB); memset(pixels, 0, sizeof(ws2812_pixel_t) * led_number); @@ -69,8 +69,8 @@ static void demo(void *pvParameters) memset(&pixels[fix_index(head_index - tail_length)], 0, sizeof(ws2812_pixel_t)); - ws2812_i2s_update(pixels); - vTaskDelay(20 / portTICK_PERIOD_MS); + ws2812_i2s_update(pixels, PIXEL_RGB); + vTaskDelay(50 / portTICK_PERIOD_MS); } } } @@ -78,6 +78,14 @@ static void demo(void *pvParameters) void user_init(void) { uart_set_baud(0, 115200); + struct sdk_station_config config = { + .ssid = "Loading...", + .password = "morays59924_howitzer", + }; + + /* required to call wifi_set_opmode before station_set_config */ + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); xTaskCreate(&demo, "ws2812_i2s", 256, NULL, 10, NULL); } diff --git a/extras/ws2812_i2s/ws2812_i2s.c b/extras/ws2812_i2s/ws2812_i2s.c index 712c894..62dc496 100644 --- a/extras/ws2812_i2s/ws2812_i2s.c +++ b/extras/ws2812_i2s/ws2812_i2s.c @@ -37,7 +37,7 @@ #endif #define MAX_DMA_BLOCK_SIZE 4095 -#define DMA_PIXEL_SIZE 12 // each colour takes 4 bytes +// #define DMA_PIXEL_SIZE 16 // each colour takes 4 bytes /** * Amount of zero data to produce WS2812 reset condition. @@ -117,9 +117,9 @@ static inline void init_descriptors_list(uint8_t *buf, uint32_t total_dma_data_s } } -void ws2812_i2s_init(uint32_t pixels_number) +void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type) { - dma_buffer_size = pixels_number * DMA_PIXEL_SIZE; + dma_buffer_size = pixels_number * type; dma_block_list_size = dma_buffer_size / MAX_DMA_BLOCK_SIZE; if (dma_buffer_size % MAX_DMA_BLOCK_SIZE) { @@ -156,13 +156,13 @@ const IRAM_DATA int16_t bitpatterns[16] = 0b1110111010001000, 0b1110111010001110, 0b1110111011101000, 0b1110111011101110, }; -void ws2812_i2s_update(ws2812_pixel_t *pixels) +void ws2812_i2s_update(ws2812_pixel_t *pixels, pixeltype_t type) { while (i2s_dma_processing) {}; uint16_t *p_dma_buf = dma_buffer; - for (uint32_t i = 0; i < (dma_buffer_size / DMA_PIXEL_SIZE); i++) { + for (uint32_t i = 0; i < (dma_buffer_size / type); i++) { // green *p_dma_buf++ = bitpatterns[pixels[i].green & 0x0F]; *p_dma_buf++ = bitpatterns[pixels[i].green >> 4]; @@ -174,6 +174,12 @@ void ws2812_i2s_update(ws2812_pixel_t *pixels) // blue *p_dma_buf++ = bitpatterns[pixels[i].blue & 0x0F]; *p_dma_buf++ = bitpatterns[pixels[i].blue >> 4]; + + if(type == PIXEL_RGBW) { + // white + *p_dma_buf++ = bitpatterns[pixels[i].white & 0x0F]; + *p_dma_buf++ = bitpatterns[pixels[i].white >> 4]; + } } i2s_dma_processing = true; diff --git a/extras/ws2812_i2s/ws2812_i2s.h b/extras/ws2812_i2s/ws2812_i2s.h index f6ebc82..16956dc 100644 --- a/extras/ws2812_i2s/ws2812_i2s.h +++ b/extras/ws2812_i2s/ws2812_i2s.h @@ -35,8 +35,14 @@ typedef struct { uint8_t red; uint8_t green; uint8_t blue; + uint8_t white; } ws2812_pixel_t; +typedef enum { + PIXEL_RGB = 12, + PIXEL_RGBW = 16 +} pixeltype_t; + /** * Initialize i2s and dma subsystems to work with ws2812 led strip. * @@ -44,7 +50,7 @@ typedef struct { * * @param pixels_number Number of pixels in the strip. */ -void ws2812_i2s_init(uint32_t pixels_number); +void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type); /** * Update ws2812 pixels. @@ -52,7 +58,7 @@ void ws2812_i2s_init(uint32_t pixels_number); * @param pixels Array of 'pixels_number' pixels. The array must contain all * the pixels. */ -void ws2812_i2s_update(ws2812_pixel_t *pixels); +void ws2812_i2s_update(ws2812_pixel_t *pixels, pixeltype_t type); #ifdef __cplusplus } From e3403eb5db936bfe2d55ffdc2dec56a1b2070046 Mon Sep 17 00:00:00 2001 From: Johan Kanflo Date: Tue, 10 Oct 2017 15:37:43 +0200 Subject: [PATCH 216/349] Added fflush for terminal echo (#455) --- examples/terminal/terminal.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/terminal/terminal.c b/examples/terminal/terminal.c index 6f8b940..f25293a 100644 --- a/examples/terminal/terminal.c +++ b/examples/terminal/terminal.c @@ -94,18 +94,23 @@ static void gpiomon() int i = 0; printf("\n\n\nWelcome to gpiomon. Type 'help' for, well, help\n"); printf("%% "); + fflush(stdout); // stdout is line buffered while(1) { if (read(0, (void*)&ch, 1)) { // 0 is stdin printf("%c", ch); + fflush(stdout); if (ch == '\n' || ch == '\r') { cmd[i] = 0; i = 0; printf("\n"); handle_command((char*) cmd); printf("%% "); + fflush(stdout); } else { if (i < sizeof(cmd)) cmd[i++] = ch; } + } else { + printf("You will never see this print as read(...) is blocking\n"); } } } From b58cd12f8512c277f19859f675d10e1790efdbcb Mon Sep 17 00:00:00 2001 From: UncleRus Date: Tue, 10 Oct 2017 20:01:07 +0500 Subject: [PATCH 217/349] Minor fixes in dhcpserver.c --- extras/dhcpserver/dhcpserver.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 1881e60..6b9655c 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -28,12 +28,6 @@ #define debug(s, ...) #endif -#if (DHCP_DEBUG == LWIP_DBG_ON) -#define debug(s, ...) printf("%s: " s "\n", "DHCP", ## __VA_ARGS__) -#else -#define debug(s, ...) -#endif - /* Grow the size of the lwip dhcp_msg struct's options field, as LWIP defaults to a 68 octet options field for its DHCP client, and most full-sized clients send us more than this. */ @@ -216,6 +210,7 @@ static void dhcpserver_task(void *pxParameter) break; case DHCP_RELEASE: handle_dhcp_release(&received); + break; default: debug("DHCP Server Error: Unsupported message type %d", *message_type); break; From cb4ea206fa7eca57574da13534ae7aad5ee6c548 Mon Sep 17 00:00:00 2001 From: Fernando Date: Tue, 10 Oct 2017 14:01:32 -0300 Subject: [PATCH 218/349] DHCP Allows selecting the DHCP server's network interface (#426) --- examples/access_point/access_point.c | 100 ++++++++++++------------- extras/dhcpserver/dhcpserver.c | 18 ++--- extras/dhcpserver/include/dhcpserver.h | 4 +- tests/cases/04_wifi_basic.c | 9 ++- 4 files changed, 64 insertions(+), 67 deletions(-) diff --git a/examples/access_point/access_point.c b/examples/access_point/access_point.c index 52c622f..4adfca2 100644 --- a/examples/access_point/access_point.c +++ b/examples/access_point/access_point.c @@ -1,11 +1,11 @@ -/* Very basic example showing usage of access point mode and the DHCP server. - - The ESP in the example runs a telnet server on 172.16.0.1 (port 23) that - outputs some status information if you connect to it, then closes - the connection. - - This example code is in the public domain. -*/ +/** + * Very basic example showing usage of access point mode and the DHCP server. + * The ESP in the example runs a telnet server on 172.16.0.1 (port 23) that + * outputs some status information if you connect to it, then closes + * the connection. + * + * This example code is in the public domain. + */ #include #include @@ -36,61 +36,55 @@ void user_init(void) IP4_ADDR(&ap_ip.netmask, 255, 255, 0, 0); sdk_wifi_set_ip_info(1, &ap_ip); - struct sdk_softap_config ap_config = { - .ssid = AP_SSID, - .ssid_hidden = 0, - .channel = 3, - .ssid_len = strlen(AP_SSID), - .authmode = AUTH_WPA_WPA2_PSK, - .password = AP_PSK, - .max_connection = 3, - .beacon_interval = 100, - }; + struct sdk_softap_config ap_config = { .ssid = AP_SSID, .ssid_hidden = 0, .channel = 3, .ssid_len = strlen(AP_SSID), .authmode = + AUTH_WPA_WPA2_PSK, .password = AP_PSK, .max_connection = 3, .beacon_interval = 100, }; sdk_wifi_softap_set_config(&ap_config); - ip4_addr_t first_client_ip; - IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(&first_client_ip, 4); - xTaskCreate(telnetTask, "telnetTask", 512, NULL, 2, NULL); } /* Telnet task listens on port 23, returns some status information and then closes - the connection if you connect to it. -*/ + the connection if you connect to it. + */ static void telnetTask(void *pvParameters) { - struct netconn *nc = netconn_new (NETCONN_TCP); - if(!nc) { - printf("Status monitor: Failed to allocate socket.\r\n"); - return; - } - netconn_bind(nc, IP_ANY_TYPE, TELNET_PORT); - netconn_listen(nc); + ip_addr_t first_client_ip; + IP4_ADDR(&first_client_ip, 172, 16, 0, 2); + dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); - while(1) { - struct netconn *client = NULL; - err_t err = netconn_accept(nc, &client); - - if (err != ERR_OK) { - if(client) - netconn_delete(client); - continue; + struct netconn *nc = netconn_new(NETCONN_TCP); + if (!nc) + { + printf("Status monitor: Failed to allocate socket.\r\n"); + return; } + netconn_bind(nc, IP_ANY_TYPE, TELNET_PORT); + netconn_listen(nc); - ip_addr_t client_addr; - uint16_t port_ignore; - netconn_peer(client, &client_addr, &port_ignore); + while (1) + { + struct netconn *client = NULL; + err_t err = netconn_accept(nc, &client); - char buf[80]; - snprintf(buf, sizeof(buf), "Uptime %d seconds\r\n", - xTaskGetTickCount()*portTICK_PERIOD_MS/1000); - netconn_write(client, buf, strlen(buf), NETCONN_COPY); - snprintf(buf, sizeof(buf), "Free heap %d bytes\r\n", (int)xPortGetFreeHeapSize()); - netconn_write(client, buf, strlen(buf), NETCONN_COPY); - char abuf[40]; - snprintf(buf, sizeof(buf), "Your address is %s\r\n\r\n", ipaddr_ntoa_r(&client_addr, abuf, sizeof(abuf))); - netconn_write(client, buf, strlen(buf), NETCONN_COPY); - netconn_delete(client); - } + if (err != ERR_OK) + { + if (client) + netconn_delete(client); + continue; + } + + ip_addr_t client_addr; + uint16_t port_ignore; + netconn_peer(client, &client_addr, &port_ignore); + + char buf[80]; + snprintf(buf, sizeof(buf), "Uptime %d seconds\r\n", xTaskGetTickCount() * portTICK_PERIOD_MS / 1000); + netconn_write(client, buf, strlen(buf), NETCONN_COPY); + snprintf(buf, sizeof(buf), "Free heap %d bytes\r\n", (int) xPortGetFreeHeapSize()); + netconn_write(client, buf, strlen(buf), NETCONN_COPY); + char abuf[40]; + snprintf(buf, sizeof(buf), "Your address is %s\r\n\r\n", ipaddr_ntoa_r(&client_addr, abuf, sizeof(abuf))); + netconn_write(client, buf, strlen(buf), NETCONN_COPY); + netconn_delete(client); + } } diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 6b9655c..12acd2c 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -3,11 +3,7 @@ * Based on RFC2131 http://www.ietf.org/rfc/rfc2131.txt * ... although not fully RFC compliant yet. * - * TODO - * * Allow binding on a single interface only (for mixed AP/client mode), lwip seems to make it hard to - * listen for or send broadcasts on a specific interface only. - * - * * Probably allocates more memory than it should, it should be possible to reuse netbufs in most cases. + * Probably allocates more memory than it should, it should be possible to reuse netbufs in most cases. * * Part of esp-open-rtos * Copyright (C) 2015 Superhouse Automation Pty Ltd @@ -92,8 +88,12 @@ inline static void sprintf_ipaddr(const ip4_addr_t *addr, char *dest) ip4_addr2(addr), ip4_addr3(addr), ip4_addr4(addr)); } -void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases) +void dhcpserver_start(struct netif *server_if, const ip_addr_t *first_client_addr, uint8_t max_leases) { + if(!server_if){ + printf("DHCP Server Error: server_if is NULL.\r\n"); + return; + } /* Stop any existing running dhcpserver */ if (dhcpserver_task_handle) dhcpserver_stop(); @@ -109,7 +109,7 @@ void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases) ip4_addr_set_zero(&state->router); ip4_addr_set_zero(&state->dns); - xTaskCreate(dhcpserver_task, "DHCP Server", 448, NULL, 2, &dhcpserver_task_handle); + xTaskCreate(dhcpserver_task, "DHCPServer", 768, server_if, 8, &dhcpserver_task_handle); } void dhcpserver_stop(void) @@ -134,7 +134,7 @@ void dhcpserver_set_dns(const ip4_addr_t *dns) static void dhcpserver_task(void *pxParameter) { /* netif_list isn't assigned until after user_init completes, which is why we do it inside the task */ - state->server_if = netif_list; /* TODO: Make this configurable */ + state->server_if = pxParameter; state->nc = netconn_new (NETCONN_UDP); if(!state->nc) { @@ -143,7 +143,7 @@ static void dhcpserver_task(void *pxParameter) } netconn_bind(state->nc, IP4_ADDR_ANY, LWIP_IANA_PORT_DHCP_SERVER); - netconn_bind_if (state->nc, netif_get_index(state->server_if)); + netconn_bind_if(state->nc, netif_get_index(state->server_if)); while(1) { diff --git a/extras/dhcpserver/include/dhcpserver.h b/extras/dhcpserver/include/dhcpserver.h index 62fa0ac..a6ac608 100644 --- a/extras/dhcpserver/include/dhcpserver.h +++ b/extras/dhcpserver/include/dhcpserver.h @@ -25,8 +25,10 @@ extern "C" { first_client_addr is the IP address of the first lease to be handed to a client. Subsequent lease addresses are calculated by incrementing the final octet of the IPv4 address, up to max_leases. + + The server will wait for requests on server_if interface. */ -void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases); +void dhcpserver_start(struct netif *server_if, const ip_addr_t *first_client_addr, uint8_t max_leases); void dhcpserver_get_lease(const ip4_addr_t *first_client_addr, uint8_t max_leases); diff --git a/tests/cases/04_wifi_basic.c b/tests/cases/04_wifi_basic.c index 129ddd0..9fa8be2 100644 --- a/tests/cases/04_wifi_basic.c +++ b/tests/cases/04_wifi_basic.c @@ -40,6 +40,11 @@ DEFINE_TESTCASE(04_wifi_basic, DUAL) static void server_task(void *pvParameters) { + + ip_addr_t first_client_ip; + IP4_ADDR(&first_client_ip, 172, 16, 0, 2); + dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); + char buf[BUF_SIZE]; struct netconn *nc = netconn_new(NETCONN_TCP); TEST_ASSERT_TRUE_MESSAGE(nc != 0, "Failed to allocate socket"); @@ -103,10 +108,6 @@ static void a_04_wifi_basic(void) }; sdk_wifi_softap_set_config(&ap_config); - ip_addr_t first_client_ip; - IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(&first_client_ip, 4); - xTaskCreate(server_task, "setver_task", 1024, NULL, 2, NULL); } From 715bc8148c53c795b59f1bd11793b9781a994810 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 11 Oct 2017 03:21:47 +0500 Subject: [PATCH 219/349] Fix example broken by DHCP update (#461) --- examples/tcp_non_blocking/tcp_non_blocking.c | 2 +- extras/wificfg/wificfg.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/tcp_non_blocking/tcp_non_blocking.c b/examples/tcp_non_blocking/tcp_non_blocking.c index 4e35aa2..6fe4e99 100644 --- a/examples/tcp_non_blocking/tcp_non_blocking.c +++ b/examples/tcp_non_blocking/tcp_non_blocking.c @@ -193,7 +193,7 @@ void user_init(void) ip_addr_t first_client_ip; IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(&first_client_ip, 4); + dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); printf("DHCP started\n"); //Create a queue to store events on netconns diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 708af29..605e31f 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -1995,7 +1995,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) if (wifi_ap_dns < 0 || wifi_ap_dns > 1) wifi_ap_dns = 1; - dhcpserver_start(&first_client_ip, wifi_ap_dhcp_leases); + dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, wifi_ap_dhcp_leases); dhcpserver_set_router(&ap_ip.ip); if (wifi_ap_dns) { dhcpserver_set_dns(&ap_ip.ip); From 62d99e1554d307ea15b18a8700279f26afa0eccc Mon Sep 17 00:00:00 2001 From: UncleRus Date: Wed, 11 Oct 2017 15:26:43 +0500 Subject: [PATCH 220/349] Revert #426 --- examples/access_point/access_point.c | 2 +- examples/tcp_non_blocking/tcp_non_blocking.c | 2 +- extras/dhcpserver/dhcpserver.c | 18 +++++++++--------- extras/dhcpserver/include/dhcpserver.h | 4 +--- extras/wificfg/wificfg.c | 2 +- tests/cases/04_wifi_basic.c | 2 +- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/examples/access_point/access_point.c b/examples/access_point/access_point.c index 4adfca2..20e9d88 100644 --- a/examples/access_point/access_point.c +++ b/examples/access_point/access_point.c @@ -50,7 +50,7 @@ static void telnetTask(void *pvParameters) { ip_addr_t first_client_ip; IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); + dhcpserver_start(&first_client_ip, 4); struct netconn *nc = netconn_new(NETCONN_TCP); if (!nc) diff --git a/examples/tcp_non_blocking/tcp_non_blocking.c b/examples/tcp_non_blocking/tcp_non_blocking.c index 6fe4e99..4e35aa2 100644 --- a/examples/tcp_non_blocking/tcp_non_blocking.c +++ b/examples/tcp_non_blocking/tcp_non_blocking.c @@ -193,7 +193,7 @@ void user_init(void) ip_addr_t first_client_ip; IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); + dhcpserver_start(&first_client_ip, 4); printf("DHCP started\n"); //Create a queue to store events on netconns diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 12acd2c..6b9655c 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -3,7 +3,11 @@ * Based on RFC2131 http://www.ietf.org/rfc/rfc2131.txt * ... although not fully RFC compliant yet. * - * Probably allocates more memory than it should, it should be possible to reuse netbufs in most cases. + * TODO + * * Allow binding on a single interface only (for mixed AP/client mode), lwip seems to make it hard to + * listen for or send broadcasts on a specific interface only. + * + * * Probably allocates more memory than it should, it should be possible to reuse netbufs in most cases. * * Part of esp-open-rtos * Copyright (C) 2015 Superhouse Automation Pty Ltd @@ -88,12 +92,8 @@ inline static void sprintf_ipaddr(const ip4_addr_t *addr, char *dest) ip4_addr2(addr), ip4_addr3(addr), ip4_addr4(addr)); } -void dhcpserver_start(struct netif *server_if, const ip_addr_t *first_client_addr, uint8_t max_leases) +void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases) { - if(!server_if){ - printf("DHCP Server Error: server_if is NULL.\r\n"); - return; - } /* Stop any existing running dhcpserver */ if (dhcpserver_task_handle) dhcpserver_stop(); @@ -109,7 +109,7 @@ void dhcpserver_start(struct netif *server_if, const ip_addr_t *first_client_add ip4_addr_set_zero(&state->router); ip4_addr_set_zero(&state->dns); - xTaskCreate(dhcpserver_task, "DHCPServer", 768, server_if, 8, &dhcpserver_task_handle); + xTaskCreate(dhcpserver_task, "DHCP Server", 448, NULL, 2, &dhcpserver_task_handle); } void dhcpserver_stop(void) @@ -134,7 +134,7 @@ void dhcpserver_set_dns(const ip4_addr_t *dns) static void dhcpserver_task(void *pxParameter) { /* netif_list isn't assigned until after user_init completes, which is why we do it inside the task */ - state->server_if = pxParameter; + state->server_if = netif_list; /* TODO: Make this configurable */ state->nc = netconn_new (NETCONN_UDP); if(!state->nc) { @@ -143,7 +143,7 @@ static void dhcpserver_task(void *pxParameter) } netconn_bind(state->nc, IP4_ADDR_ANY, LWIP_IANA_PORT_DHCP_SERVER); - netconn_bind_if(state->nc, netif_get_index(state->server_if)); + netconn_bind_if (state->nc, netif_get_index(state->server_if)); while(1) { diff --git a/extras/dhcpserver/include/dhcpserver.h b/extras/dhcpserver/include/dhcpserver.h index a6ac608..62fa0ac 100644 --- a/extras/dhcpserver/include/dhcpserver.h +++ b/extras/dhcpserver/include/dhcpserver.h @@ -25,10 +25,8 @@ extern "C" { first_client_addr is the IP address of the first lease to be handed to a client. Subsequent lease addresses are calculated by incrementing the final octet of the IPv4 address, up to max_leases. - - The server will wait for requests on server_if interface. */ -void dhcpserver_start(struct netif *server_if, const ip_addr_t *first_client_addr, uint8_t max_leases); +void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases); void dhcpserver_get_lease(const ip4_addr_t *first_client_addr, uint8_t max_leases); diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 605e31f..708af29 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -1995,7 +1995,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) if (wifi_ap_dns < 0 || wifi_ap_dns > 1) wifi_ap_dns = 1; - dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, wifi_ap_dhcp_leases); + dhcpserver_start(&first_client_ip, wifi_ap_dhcp_leases); dhcpserver_set_router(&ap_ip.ip); if (wifi_ap_dns) { dhcpserver_set_dns(&ap_ip.ip); diff --git a/tests/cases/04_wifi_basic.c b/tests/cases/04_wifi_basic.c index 9fa8be2..8deef3e 100644 --- a/tests/cases/04_wifi_basic.c +++ b/tests/cases/04_wifi_basic.c @@ -43,7 +43,7 @@ static void server_task(void *pvParameters) ip_addr_t first_client_ip; IP4_ADDR(&first_client_ip, 172, 16, 0, 2); - dhcpserver_start(sdk_system_get_netif(SOFTAP_IF), &first_client_ip, 4); + dhcpserver_start(&first_client_ip, 4); char buf[BUF_SIZE]; struct netconn *nc = netconn_new(NETCONN_TCP); From 87a3503f931021f28d4dbe083f5dec08c626354b Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 12 Oct 2017 17:42:34 +0500 Subject: [PATCH 221/349] I2C code formatting, README fix (#462) --- extras/i2c/README.md | 13 +++--- extras/i2c/i2c.c | 102 +++++++++++++++++++++++++++---------------- extras/i2c/i2c.h | 66 ++++++++++------------------ 3 files changed, 94 insertions(+), 87 deletions(-) diff --git a/extras/i2c/README.md b/extras/i2c/README.md index cac119d..d36209b 100644 --- a/extras/i2c/README.md +++ b/extras/i2c/README.md @@ -2,11 +2,12 @@ This time a driver for the excellent esp-open-rtos. This is a bit banging I2C driver based on the Wikipedia pesudo C code [1]. -### Usage +### Basic usage -```` +```C #include +#define BUS (0) #define SCL_PIN (0) #define SDA_PIN (2) @@ -14,19 +15,19 @@ uint8_t slave_addr = 0x20; uint8_t reg_addr = 0x1f; uint8_t reg_data; -i2c_init(SCL_PIN, SDA_PIN); +i2c_init(BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); // Write 1 byte to slave register -int err = i2c_slave_write(slave_addr, ®_addr, &data, 1); +int err = i2c_slave_write(BUS, slave_addr, ®_addr, &data, 1); if (err != 0) { // do something with error } // Issue write to slave, sending reg_addr, followed by reading 1 byte -err = i2c_slave_read(slave_addr, ®_addr, ®_data, 1); +err = i2c_slave_read(BUS, slave_addr, ®_addr, ®_data, 1); -```` +``` For details please see `extras/i2c/i2c.h`. diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index 034bcdc..3ba0caf 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -22,10 +22,13 @@ * THE SOFTWARE. */ +#include "i2c.h" + #include #include // sdk_os_delay_us #include -#include "i2c.h" +#include +#include //#define I2C_DEBUG true @@ -37,7 +40,28 @@ #define CLK_STRETCH (10) -static uint8_t freq ; // Store CPU frequency for optimisation speed in delay function ( Warning: Don't change CPU frequency during a transaction) +// Following array contain delay values for different frequencies +// Warning: 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz +const static uint8_t i2c_freq_array[][2] = { + [I2C_FREQ_80K] = {255, 35}, + [I2C_FREQ_100K] = {100, 20}, + [I2C_FREQ_400K] = {10, 1}, + [I2C_FREQ_500K] = {6, 1} +}; + +static uint8_t freq; // Store CPU frequency for optimisation speed in delay function (Warning: Don't change CPU frequency during a transaction) + +// Bus settings +typedef struct i2c_bus_description +{ + uint8_t g_scl_pin; // SCL pin + uint8_t g_sda_pin; // SDA pin + i2c_freq_t frequency; // Frequency + bool started; + bool flag; + bool force; +} i2c_bus_description_t; + static i2c_bus_description_t i2c_bus[MAX_I2C_BUS]; inline bool i2c_status(uint8_t bus) @@ -48,10 +72,10 @@ inline bool i2c_status(uint8_t bus) void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) { i2c_bus[bus].started = false; - i2c_bus[bus].flag = false ; + i2c_bus[bus].flag = false; i2c_bus[bus].g_scl_pin = scl_pin; i2c_bus[bus].g_sda_pin = sda_pin; - i2c_bus[bus].frequency = freq ; + i2c_bus[bus].frequency = freq; // Just to prevent these pins floating too much if not connected. gpio_set_pullup(i2c_bus[bus].g_scl_pin, 1, 1); @@ -73,7 +97,7 @@ void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) void i2c_frequency(uint8_t bus, i2c_freq_t freq) { - i2c_bus[bus].frequency = freq ; + i2c_bus[bus].frequency = freq; } static inline void i2c_delay(uint8_t bus) @@ -136,13 +160,14 @@ void i2c_start(uint8_t bus) (void) read_sda(bus); i2c_delay(bus); uint32_t clk_stretch = CLK_STRETCH; - while (read_scl(bus) == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) + ; // Repeated start setup time, minimum 4.7us i2c_delay(bus); } i2c_bus[bus].started = true; if (read_sda(bus) == 0) { - debug("arbitration lost in i2c_start from bus %u",bus); + debug("arbitration lost in i2c_start from bus %u", bus); } // SCL is high, set SDA from 1 to 0. clear_sda(bus); @@ -158,17 +183,18 @@ bool i2c_stop(uint8_t bus) clear_sda(bus); i2c_delay(bus); // Clock stretching - while (read_scl(bus) == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) + ; // Stop bit setup time, minimum 4us i2c_delay(bus); // SCL is high, set SDA from 0 to 1 if (read_sda(bus) == 0) { - debug("arbitration lost in i2c_stop from bus %u",bus); + debug("arbitration lost in i2c_stop from bus %u", bus); } i2c_delay(bus); if (!i2c_bus[bus].started) { - debug("bus %u link was break!",bus); - return false ; //If bus was stop in other way, the current transmission Failed + debug("bus %u link was break!", bus); + return false; // If bus was stop in other way, the current transmission Failed } i2c_bus[bus].started = false; return true; @@ -185,11 +211,12 @@ static void i2c_write_bit(uint8_t bus, bool bit) } i2c_delay(bus); // Clock stretching - while (read_scl(bus) == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) + ; // SCL is high, now data is valid // If SDA is high, check that nobody else is driving SDA if (bit && read_sda(bus) == 0) { - debug("arbitration lost in i2c_write_bit from bus %u",bus); + debug("arbitration lost in i2c_write_bit from bus %u", bus); } i2c_delay(bus); clear_scl(bus); @@ -204,7 +231,8 @@ static bool i2c_read_bit(uint8_t bus) (void) read_sda(bus); i2c_delay(bus); // Clock stretching - while (read_scl(bus) == 0 && clk_stretch--) ; + while (read_scl(bus) == 0 && clk_stretch--) + ; // SCL is high, now data is valid bit = read_sda(bus); i2c_delay(bus); @@ -217,7 +245,7 @@ bool i2c_write(uint8_t bus, uint8_t byte) bool nack; uint8_t bit; for (bit = 0; bit < 8; bit++) { - i2c_write_bit(bus,(byte & 0x80) != 0); + i2c_write_bit(bus, (byte & 0x80) != 0); byte <<= 1; } nack = i2c_read_bit(bus); @@ -231,22 +259,22 @@ uint8_t i2c_read(uint8_t bus, bool ack) for (bit = 0; bit < 8; bit++) { byte = ((byte << 1)) | (i2c_read_bit(bus)); } - i2c_write_bit(bus,ack); + i2c_write_bit(bus, ack); return byte; } void i2c_force_bus(uint8_t bus, bool state) { - i2c_bus[bus].force = state ; + i2c_bus[bus].force = state; } static int i2c_bus_test(uint8_t bus) { taskENTER_CRITICAL(); // To prevent task swaping after checking flag and before set it! - bool status = i2c_bus[bus].flag ; // get current status + bool status = i2c_bus[bus].flag; // get current status if(i2c_bus[bus].force) { - i2c_bus[bus].flag = true ; // force bus on + i2c_bus[bus].flag = true; // force bus on taskEXIT_CRITICAL(); if(status) i2c_stop(bus); //Bus was busy, stop it. @@ -258,72 +286,72 @@ static int i2c_bus_test(uint8_t bus) taskEXIT_CRITICAL(); debug("busy"); taskYIELD(); // If bus busy, change task to try finish last com. - return -EBUSY ; // If bus busy, inform user + return -EBUSY; // If bus busy, inform user } else { - i2c_bus[bus].flag = true ; // Set Bus busy + i2c_bus[bus].flag = true; // Set Bus busy taskEXIT_CRITICAL(); } } - return 0 ; + return 0; } int i2c_slave_write(uint8_t bus, uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len) { if(i2c_bus_test(bus)) - return -EBUSY ; + return -EBUSY; i2c_start(bus); if (!i2c_write(bus, slave_addr << 1)) goto error; if(data != NULL) - if (!i2c_write(bus,*data)) + if (!i2c_write(bus, *data)) goto error; while (len--) { - if (!i2c_write(bus,*buf++)) + if (!i2c_write(bus, *buf++)) goto error; } if (!i2c_stop(bus)) goto error; - i2c_bus[bus].flag = false ; // Bus free + i2c_bus[bus].flag = false; // Bus free return 0; - error: - debug("Bus %u Write Error",bus); +error: + debug("Bus %u Write Error", bus); i2c_stop(bus); - i2c_bus[bus].flag = false ; // Bus free + i2c_bus[bus].flag = false; // Bus free return -EIO; } int i2c_slave_read(uint8_t bus, uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len) { if(i2c_bus_test(bus)) - return -EBUSY ; + return -EBUSY; if(data != NULL) { i2c_start(bus); - if (!i2c_write(bus,slave_addr << 1)) + if (!i2c_write(bus, slave_addr << 1)) goto error; - if (!i2c_write(bus,*data)) + if (!i2c_write(bus, *data)) goto error; if (!i2c_stop(bus)) goto error; } i2c_start(bus); - if (!i2c_write(bus,slave_addr << 1 | 1)) // Slave address + read + if (!i2c_write(bus, slave_addr << 1 | 1)) // Slave address + read goto error; while(len) { - *buf = i2c_read(bus,len == 1); + *buf = i2c_read(bus, len == 1); buf++; len--; } if (!i2c_stop(bus)) goto error; - i2c_bus[bus].flag = false ; // Bus free + i2c_bus[bus].flag = false; // Bus free return 0; - error: +error: debug("Read Error"); i2c_stop(bus); - i2c_bus[bus].flag = false ; // Bus free + i2c_bus[bus].flag = false; // Bus free return -EIO; } diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index c2e31cd..80015a6 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -21,6 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +/** + * I2C driver for ESP8266 written for use with esp-open-rtos + * Based on https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol + */ #ifndef __I2C_H__ #define __I2C_H__ @@ -28,62 +32,36 @@ #include #include #include -#include -#include #ifdef __cplusplus extern "C" { #endif - -/* - * Define i2c bus max number +/** + * Define i2c bus max number */ -#define MAX_I2C_BUS 2 +#ifndef MAX_I2C_BUS + #define MAX_I2C_BUS 2 +#endif - -/* - * following array contain value for different frequency - * Warning : 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz - * Array format is { {160MHz, 80MHz} , {160MHz, 80MHz} , ... } - */ -#define NB_FREQ_AVAILABLE 4 - - typedef enum { - I2C_FREQ_80K = 0, - I2C_FREQ_100K, - I2C_FREQ_400K, - I2C_FREQ_500K, +typedef enum +{ + I2C_FREQ_80K = 0,//!< I2C_FREQ_80K + I2C_FREQ_100K, //!< I2C_FREQ_100K + I2C_FREQ_400K, //!< I2C_FREQ_400K + I2C_FREQ_500K, //!< I2C_FREQ_500K } i2c_freq_t; -const static uint8_t i2c_freq_array[NB_FREQ_AVAILABLE][2] = { {255,35}, {100,20}, {10,1}, {6,1} } ; - /** * Device descriptor */ -typedef struct i2c_dev { - uint8_t bus ; - uint8_t addr ; -} i2c_dev_t ; +typedef struct i2c_dev +{ + uint8_t bus; + uint8_t addr; +} i2c_dev_t; -/** - * Bus settings - */ -typedef struct i2c_bus_description { - uint8_t g_scl_pin; // Scl pin - uint8_t g_sda_pin; // Sda pin - uint8_t frequency; // frequency selection - bool started; - bool flag; - bool force; -} i2c_bus_description_t ; - - -// I2C driver for ESP8266 written for use with esp-open-rtos -// Based on https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol -// With calling overhead, we end up at ~320kbit/s - -//Level 0 API +/// Level 0 API /** * Init bitbanging I2C driver on given pins @@ -137,7 +115,7 @@ bool i2c_stop(uint8_t bus); */ bool i2c_status(uint8_t bus); -//Level 1 API (Don't need functions above) +/// Level 1 API (Don't need functions above) /** * This function will allow you to force a transmission I2C, cancel current transmission. From 60b671ea44ae657aa141d201378a3eaac3e9f4fc Mon Sep 17 00:00:00 2001 From: UncleRus Date: Fri, 13 Oct 2017 00:49:15 +0500 Subject: [PATCH 222/349] Added DAC support to PCF8591 driver --- examples/pcf8591/main.c | 2 +- extras/pcf8591/pcf8591.c | 39 ++++++++++++++++++++++++++++++--------- extras/pcf8591/pcf8591.h | 36 +++++++++++++++++++++++------------- 3 files changed, 54 insertions(+), 23 deletions(-) diff --git a/examples/pcf8591/main.c b/examples/pcf8591/main.c index a4dc8a3..442d3c1 100644 --- a/examples/pcf8591/main.c +++ b/examples/pcf8591/main.c @@ -23,7 +23,7 @@ static void measure(void *pvParameters) while (1) { vTaskDelay(1000 / portTICK_PERIOD_MS); - printf("Value: %d\n", pcf8591_read(&dev, 0x03)); + printf("Value: %d\n", pcf8591_read(&dev, PCF8591_IC_4_SINGLES, 3)); } } diff --git a/extras/pcf8591/pcf8591.c b/extras/pcf8591/pcf8591.c index ba06a5e..f1cec30 100644 --- a/extras/pcf8591/pcf8591.c +++ b/extras/pcf8591/pcf8591.c @@ -1,20 +1,41 @@ -#include -#include - +/** + * Driver for 8-bit analog-to-digital conversion and + * an 8-bit digital-to-analog conversion PCF8591 + * + * Part of esp-open-rtos + * Copyright (C) 2017 Pham Ngoc Thanh + * 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ #include "pcf8591.h" -/** - * CAUTION: PLEASE SET LOW FREQUENCY - */ +#include -#define PCF8591_CTRL_REG_READ 0x03 +#define BV(x) (1 << (x)) -uint8_t pcf8591_read(i2c_dev_t* dev, uint8_t analog_pin) +#define CTRL_AD_CH_MASK 0x03 + +#define CTRL_AD_IN_PRG 4 +#define CTRL_AD_IN_PRG_MASK (0x03 << CTRL_AD_IN_PRG) + +#define CTRL_DA_OUT_EN 6 + +uint8_t pcf8591_read(i2c_dev_t *dev, pcf8591_input_conf_t conf, uint8_t channel) { uint8_t res = 0; - uint8_t control_reg = PCF8591_CTRL_REG_READ & analog_pin; + uint8_t control_reg = + ((conf << CTRL_AD_IN_PRG) & CTRL_AD_IN_PRG_MASK) | + (channel & CTRL_AD_CH_MASK) | + BV(CTRL_DA_OUT_EN); i2c_slave_read(dev->bus, dev->addr, &control_reg, &res, 1); return res; } + +void pcf8591_write(i2c_dev_t *dev, uint8_t value) +{ + uint8_t buf[2] = { BV(CTRL_DA_OUT_EN), value }; + + i2c_slave_write(dev->bus, dev->addr, NULL, buf, 2); +} diff --git a/extras/pcf8591/pcf8591.h b/extras/pcf8591/pcf8591.h index 5327323..f136a46 100644 --- a/extras/pcf8591/pcf8591.h +++ b/extras/pcf8591/pcf8591.h @@ -1,14 +1,16 @@ /** - * Driver for 8-bit analog-to-digital conversion and + * Driver for 8-bit analog-to-digital conversion and * an 8-bit digital-to-analog conversion PCF8591 * * Part of esp-open-rtos * Copyright (C) 2017 Pham Ngoc Thanh + * 2017 Ruslan V. Uss * BSD Licensed as described in the file LICENSE */ #ifndef _EXTRAS_PCF8591_H_ #define _EXTRAS_PCF8591_H_ +#include #include #ifdef __cplusplus @@ -16,25 +18,33 @@ extern "C" { #endif -/** - * CAUTION: PLEASE SET I2C_FREQUENCY_400K IS 'false' IN 'i2c.h' FILE - */ - #define PCF8591_DEFAULT_ADDRESS 0x48 -void pcf8591_init(void); //FIXME : library incomplete ? +/** + * Analog inputs configuration, see datasheet + */ +typedef enum { + PCF8591_IC_4_SINGLES = 0, //!< Four single-ended inputs + PCF8591_IC_DIFF, //!< Three differential inputs + PCF8591_IC_2_SINGLES_DIFF, //!< Two single-ended and differnetial mixed + PCF8591_IC_2_DIFFS //!< Two differential inputs +} pcf8591_input_conf_t; /** * Read input value of an analog pin. - * @param[in] addr Pointer to device - * @param[in] analog_pin pin number: - * 0 - AIN0 - * 1 - AIN1 - * 2 - AIN2 - * 3 - AIN3 + * @param[in] dev Pointer to device + * @param[in] conf Analog inputs configuration + * @param[in] channel Analog channel * @return analog value */ -uint8_t pcf8591_read(i2c_dev_t* dev, uint8_t analog_pin); +uint8_t pcf8591_read(i2c_dev_t *dev, pcf8591_input_conf_t conf, uint8_t channel); + +/** + * Write value to analog output + * @param[in] dev Pointer to device + * @param[in] value DAC value + */ +void pcf8591_write(i2c_dev_t *dev, uint8_t value); #ifdef __cplusplus From ebdd2f983bec275058addf7fed46bbbbd0c4dc50 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 19 Oct 2017 03:33:32 +1000 Subject: [PATCH 223/349] lwip: define LWIP_POSIX_SOCKETS_IO_NAMES as zero (#457) This patch gets the newlib standard stream descriptors playing well with the lwip socket descriptors and the spiffs file descriptors. The LWIP_SOCKET_OFFSET is now defined to be 3, rather than zero, to avoid clashing with the standard stream descriptors, and the SPIFFS_FILEHDL_OFFSET is bumped up to start after the lwip descriptors. --- core/newlib_syscalls.c | 59 ++++++++++++++++--- examples/http_get/http_get.c | 1 + examples/http_get_bearssl/http_get_bearssl.c | 1 + .../tls_server_bearssl/tls_server_bearssl.c | 1 + extras/mbedtls/net_lwip.c | 1 + extras/paho_mqtt_c/MQTTESP8266.c | 1 + extras/spiffs/esp_spiffs.c | 3 +- extras/spiffs/spiffs_config.h | 10 +++- extras/wificfg/wificfg.c | 7 ++- lwip/include/arch/cc.h | 1 + lwip/include/lwipopts.h | 28 +++++++++ lwip/lwip | 2 +- 12 files changed, 102 insertions(+), 13 deletions(-) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index d095ba9..610b570 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -14,6 +14,21 @@ #include #include #include +#include + +/* + * The file descriptor index space is allocated in blocks. The first block of 3 + * is for newlib I/O the stdin stdout and stderr. The next block of + * MEMP_NUM_NETCONN is allocated for lwip sockets, and the remainer to file + * system descriptors. The newlib default FD_SETSIZE is 64. + */ +#if LWIP_SOCKET_OFFSET < 3 +#error Expecting a LWIP_SOCKET_OFFSET >= 3, to allow room for the standard I/O descriptors. +#endif +#define FILE_DESCRIPTOR_OFFSET (LWIP_SOCKET_OFFSET + MEMP_NUM_NETCONN) +#if FILE_DESCRIPTOR_OFFSET > FD_SETSIZE +#error Too many lwip sockets for the FD_SETSIZE. +#endif extern void *xPortSupervisorStackPointer; @@ -81,10 +96,17 @@ __attribute__((weak)) long _write_filesystem_r(struct _reent *r, int fd, const c __attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, int len ) { - if(fd != r->_stdout->_file) { + if (fd >= FILE_DESCRIPTOR_OFFSET) { return _write_filesystem_r(r, fd, ptr, len); } - return current_stdout_write_r(r, fd, ptr, len); + if (fd >= LWIP_SOCKET_OFFSET) { + return lwip_write(fd, ptr, len); + } + if (fd == r->_stdout->_file) { + current_stdout_write_r(r, fd, ptr, len); + } + r->_errno = EBADF; + return -1; } /* syscall implementation for stdio read from UART */ @@ -109,10 +131,36 @@ __attribute__((weak)) long _read_filesystem_r( struct _reent *r, int fd, char *p __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len ) { - if(fd != r->_stdin->_file) { + if (fd >= FILE_DESCRIPTOR_OFFSET) { return _read_filesystem_r(r, fd, ptr, len); } - return _read_stdin_r(r, fd, ptr, len); + if (fd >= LWIP_SOCKET_OFFSET) { + return lwip_read(fd, ptr, len); + } + if (fd == r->_stdin->_file) { + _read_stdin_r(r, fd, ptr, len); + } + r->_errno = EBADF; + return -1; +} + +/* default implementation, replace in a filesystem */ +__attribute__((weak)) int _close_filesystem_r(struct _reent *r, int fd) +{ + r->_errno = EBADF; + return -1; +} + +__attribute__((weak)) int _close_r(struct _reent *r, int fd) +{ + if (fd >= FILE_DESCRIPTOR_OFFSET) { + return _close_filesystem_r(r, fd); + } + if (fd >= LWIP_SOCKET_OFFSET) { + return lwip_close(fd); + } + r->_errno = EBADF; + return -1; } /* Stub syscall implementations follow, to allow compiling newlib functions that @@ -121,9 +169,6 @@ __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len __attribute__((weak, alias("syscall_returns_enosys"))) int _open_r(struct _reent *r, const char *pathname, int flags, int mode); -__attribute__((weak, alias("syscall_returns_enosys"))) -int _close_r(struct _reent *r, int fd); - __attribute__((weak, alias("syscall_returns_enosys"))) int _unlink_r(struct _reent *r, const char *path); diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c index 766dd81..7b6fad6 100644 --- a/examples/http_get/http_get.c +++ b/examples/http_get/http_get.c @@ -7,6 +7,7 @@ #include "espressif/esp_common.h" #include "esp/uart.h" +#include #include #include "FreeRTOS.h" diff --git a/examples/http_get_bearssl/http_get_bearssl.c b/examples/http_get_bearssl/http_get_bearssl.c index 593b423..3fe123c 100644 --- a/examples/http_get_bearssl/http_get_bearssl.c +++ b/examples/http_get_bearssl/http_get_bearssl.c @@ -13,6 +13,7 @@ #include "esp/uart.h" #include "esp/hwrand.h" +#include #include #include "FreeRTOS.h" diff --git a/examples/tls_server_bearssl/tls_server_bearssl.c b/examples/tls_server_bearssl/tls_server_bearssl.c index b1e48dc..79e231d 100644 --- a/examples/tls_server_bearssl/tls_server_bearssl.c +++ b/examples/tls_server_bearssl/tls_server_bearssl.c @@ -19,6 +19,7 @@ #include "esp/uart.h" #include "esp/hwrand.h" +#include #include #include "FreeRTOS.h" diff --git a/extras/mbedtls/net_lwip.c b/extras/mbedtls/net_lwip.c index 67453c8..3101380 100644 --- a/extras/mbedtls/net_lwip.c +++ b/extras/mbedtls/net_lwip.c @@ -21,6 +21,7 @@ * This file is part of mbed TLS (https://tls.mbed.org) */ +#include #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/config.h" #else diff --git a/extras/paho_mqtt_c/MQTTESP8266.c b/extras/paho_mqtt_c/MQTTESP8266.c index a6f1e75..23c6f01 100644 --- a/extras/paho_mqtt_c/MQTTESP8266.c +++ b/extras/paho_mqtt_c/MQTTESP8266.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 58f1d33..93ea24a 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -149,7 +149,8 @@ int _open_r(struct _reent *r, const char *pathname, int flags, int mode) return SPIFFS_open(&fs, pathname, spiffs_flags, mode); } -int _close_r(struct _reent *r, int fd) +// This implementation replaces implementation in core/newlib_syscals.c +int _close_filesystem_r(struct _reent *r, int fd) { return SPIFFS_close(&fs, (spiffs_file)fd); } diff --git a/extras/spiffs/spiffs_config.h b/extras/spiffs/spiffs_config.h index 0c848a5..52c3aea 100644 --- a/extras/spiffs/spiffs_config.h +++ b/extras/spiffs/spiffs_config.h @@ -198,7 +198,15 @@ typedef unsigned char u8_t; // NB: This adds config field fh_ix_offset in the configuration struct when // mounting, which must be defined. #ifndef SPIFFS_FILEHDL_OFFSET -#define SPIFFS_FILEHDL_OFFSET 1 +#define SPIFFS_FILEHDL_OFFSET 17 +// Not ideal having to use a literal above, which is necessary because this file +// is also included by tools that run on the host, but at least do some checks +// when building the target code. +#ifdef LWIP_SOCKET_OFFSET +#if SPIFFS_FILEHDL_OFFSET < (LWIP_SOCKET_OFFSET + MEMP_NUM_NETCONN) +#error SPIFFS_FILEHDL_OFFSET clashes with lwip sockets range. +#endif +#endif #endif // Enable this to compile a read only version of spiffs. diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 708af29..c2ca1ed 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -1722,9 +1723,9 @@ static void dns_task(void *pvParameters) const struct ifreq ifreq0 = { "en0" }; const struct ifreq ifreq1 = { "en1" }; - lwip_setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, - sdk_wifi_get_opmode() == STATIONAP_MODE ? &ifreq1 : &ifreq0, - sizeof(ifreq0)); + setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, + sdk_wifi_get_opmode() == STATIONAP_MODE ? &ifreq1 : &ifreq0, + sizeof(ifreq0)); for (;;) { char buffer[96]; diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h index e7cf291..5787157 100644 --- a/lwip/include/arch/cc.h +++ b/lwip/include/arch/cc.h @@ -39,6 +39,7 @@ #include #include #include +#include struct ip4_addr; struct esf_buf; diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index 4d69eda..30282b5 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -144,6 +144,15 @@ ------------------------------------------------ */ +/** + * MEMP_NUM_NETCONN: the number of struct netconns. + * (only needed if you use the sequential API, like api_lib.c) + * This also sets the number of lwip socket descriptors. + */ +#ifndef MEMP_NUM_NETCONN +#define MEMP_NUM_NETCONN 12 +#endif + /* -------------------------------- ---------- ARP options ------- @@ -549,6 +558,25 @@ ---------- Socket options ---------- ------------------------------------ */ + +/** + * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. + * Disable this option if you use a POSIX operating system that uses the same + * names (read, write & close). (only used if you use sockets.c) + */ +#define LWIP_POSIX_SOCKETS_IO_NAMES 0 + +/** + * LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. + * This can be useful when there are multiple APIs which create file descriptors. + * When they all start with a different offset and you won't make them overlap you can + * re implement read/write/close/ioctl/fnctl to send the requested action to the right + * library (sharing select will need more work though). + */ +#ifndef LWIP_SOCKET_OFFSET +#define LWIP_SOCKET_OFFSET 3 +#endif + /** * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and * SO_SNDTIMEO processing. diff --git a/lwip/lwip b/lwip/lwip index 74676d4..f372198 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 74676d46f0bc5ed82515f8e247008b7c45ec6cf6 +Subproject commit f372198834caf642c4b2d29d98fc1e120e3ce2b2 From 8a474d749d69d21cdd09c8e0b3481744c01e3968 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 19 Oct 2017 04:56:17 +1000 Subject: [PATCH 224/349] wificfg: correct a few initialization issues (#464) * Correct checking of the AP password and SSID lengths. * Only enable AP mode if it is really configured enabled. * Only start the http server if wifi is enabled. --- extras/wificfg/wificfg.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index c2ca1ed..5c7a089 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -1847,7 +1847,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) /* If the ssid and password are not valid then disable the AP interface. */ if (!wifi_ap_ssid || strlen(wifi_ap_ssid) < 1 || strlen(wifi_ap_ssid) >= 32 || - !wifi_ap_password || strlen(wifi_ap_ssid) < 8 || strlen(wifi_ap_password) >= 64) { + !wifi_ap_password || strlen(wifi_ap_password) < 8 || strlen(wifi_ap_password) >= 64) { wifi_ap_enable = 0; } } @@ -1857,7 +1857,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) wifi_mode = STATIONAP_MODE; else if (wifi_sta_enable) wifi_mode = STATION_MODE; - else + else if (wifi_ap_enable) wifi_mode = SOFTAP_MODE; sdk_wifi_set_opmode(wifi_mode); @@ -2014,10 +2014,12 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) if (wifi_ap_ssid) free(wifi_ap_ssid); if (wifi_ap_password) free(wifi_ap_password); - server_params *params = malloc(sizeof(server_params)); - params->port = port; - params->wificfg_dispatch = wificfg_dispatch_list; - params->dispatch = dispatch; + if (wifi_mode != NULL_MODE) { + server_params *params = malloc(sizeof(server_params)); + params->port = port; + params->wificfg_dispatch = wificfg_dispatch_list; + params->dispatch = dispatch; - xTaskCreate(server_task, "WiFi Cfg HTTP", 464, params, 2, NULL); + xTaskCreate(server_task, "WiFi Cfg HTTP", 464, params, 2, NULL); + } } From 5fa48d0298713f0124a7d738866d2eedcabcef2a Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 19 Oct 2017 00:25:48 +0500 Subject: [PATCH 225/349] Code formatted, minor fixes (#466) --- core/include/esp/spi.h | 59 ++-- examples/mcp4725_test/main.c | 2 +- extras/ads111x/ads111x.c | 54 ++-- extras/ads111x/ads111x.h | 46 +-- extras/bmp180/bmp180.c | 4 +- extras/bmp280/bmp280.c | 8 +- extras/ds1302/ds1302.h | 2 +- extras/ds1307/ds1307.c | 53 ++-- extras/ds1307/ds1307.h | 29 +- extras/hd44780/README.md | 2 +- extras/hmc5883l/hmc5883l.c | 38 +-- extras/hmc5883l/hmc5883l.h | 32 +- extras/ina3221/ina3221.c | 88 +++--- extras/ina3221/ina3221.h | 87 +++--- extras/mcp4725/mcp4725.c | 14 +- extras/mcp4725/mcp4725.h | 14 +- extras/ms561101ba03/ms561101ba03.c | 18 +- extras/ms561101ba03/ms561101ba03.h | 2 +- extras/onewire/onewire.c | 6 +- extras/pca9685/pca9685.c | 36 +-- extras/pca9685/pca9685.h | 30 +- extras/pcf8574/pcf8574.c | 16 +- extras/pcf8574/pcf8574.h | 12 +- extras/ssd1306/README.md | 64 ++-- extras/ssd1306/ssd1306.c | 469 +++++++++++++---------------- extras/ssd1306/ssd1306.h | 13 +- extras/tsl2561/tsl2561.c | 27 +- extras/tsl4531/tsl4531.c | 6 +- 28 files changed, 623 insertions(+), 608 deletions(-) diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index ca11720..ff77c79 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -186,7 +186,7 @@ void spi_set_frequency_div(uint8_t bus, uint32_t divider); inline uint32_t spi_get_frequency_div(uint8_t bus) { return (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) | - (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); + (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); } /** * \brief Get SPI bus frequency in Hz @@ -196,8 +196,8 @@ inline uint32_t spi_get_frequency_div(uint8_t bus) inline uint32_t spi_get_frequency_hz(uint8_t bus) { return APB_CLK_FREQ / - (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) / - (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); + (FIELD2VAL(SPI_CLOCK_DIV_PRE, SPI(bus).CLOCK) + 1) / + (FIELD2VAL(SPI_CLOCK_COUNT_NUM, SPI(bus).CLOCK) + 1); } /** @@ -231,7 +231,7 @@ inline spi_endianness_t spi_get_endianness(uint8_t bus) { return SPI(bus).USER0 & (SPI_USER0_WR_BYTE_ORDER | SPI_USER0_RD_BYTE_ORDER) ? SPI_BIG_ENDIAN - : SPI_LITTLE_ENDIAN; + : SPI_LITTLE_ENDIAN; } /** @@ -278,25 +278,26 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len * \brief Add permanent command bits when transfert data over SPI * Example: * - * spi_set_command(1,1,0x01); // Set one command bit to 1 - * for (uint8_t i = 0 ; i < x ; i++ ) { - * spi_transfer_8(1,0x55); // Send 1 bit command + 8 bits data x times + * spi_set_command(1, 1, 0x01); // Set one command bit to 1 + * for (uint8_t i = 0; i < x; i++ ) { + * spi_transfer_8(1, 0x55); // Send 1 bit command + 8 bits data x times * } * spi_clear_command(1); // Clear command - * spi_transfer_8(1,0x55); // Send 8 bits data + * spi_transfer_8(1, 0x55); // Send 8 bits data * * \param bus Bus ID: 0 - system, 1 - user * \param bits Number of bits (max: 16). * \param data Command to send for each transfert. */ -static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) +static inline void spi_set_command(uint8_t bus, uint8_t bits, uint16_t data) { - if(!bits) return ; - SPI(bus).USER0 |= SPI_USER0_COMMAND ; //enable COMMAND function in SPI module - uint16_t command = data << (16-bits); //align command data to high bits - command = ((command>>8)&0xff) | ((command<<8)&0xff00); //swap byte order - SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits); - SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command); + if (!bits) return; + + SPI(bus).USER0 |= SPI_USER0_COMMAND; //enable COMMAND function in SPI module + uint16_t command = data << (16 - bits); //align command data to high bits + command = ((command >> 8) & 0xff) | ((command << 8) & 0xff00); //swap byte order + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits); + SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command); } /** @@ -314,11 +315,12 @@ static inline void spi_set_command(uint8_t bus,uint8_t bits, uint16_t data) * \param bits Number of bits (max: 32). * \param data Address to send for each transfert. */ -static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) +static inline void spi_set_address(uint8_t bus, uint8_t bits, uint32_t data) { - if(!bits) return ; - SPI(bus).USER0 |= SPI_USER0_ADDR ; //enable ADDRess function in SPI module - SPI(bus).ADDR = data<<(32-bits) ; //align address data to high bits + if (!bits) return; + + SPI(bus).USER0 |= SPI_USER0_ADDR; //enable ADDRess function in SPI module + SPI(bus).ADDR = data << (32 - bits); //align address data to high bits SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits); } @@ -326,12 +328,12 @@ static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) * \brief Add permanent dummy bits when transfert data over SPI * Example: * - * spi_set_dummy_bits(1,4,false); // Set 4 dummy bit before Dout - * for (uint8_t i = 0 ; i < x ; i++ ) { - * spi_transfer_16(1,0xC584); // Send 4 bits dummy + 16 bits Dout x times + * spi_set_dummy_bits(1, 4, false); // Set 4 dummy bit before Dout + * for (uint8_t i = 0; i < x; i++ ) { + * spi_transfer_16(1, 0xC584); // Send 4 bits dummy + 16 bits Dout x times * } - * spi_set_dummy_bits(1,4,true); // Set 4 dummy bit between Dout and Din - * spi_transfer_8(1,0x55); // Send 8 bits Dout + 4 bits dummy + 8 bits Din + * spi_set_dummy_bits(1, 4, true); // Set 4 dummy bit between Dout and Din + * spi_transfer_8(1, 0x55); // Send 8 bits Dout + 4 bits dummy + 8 bits Din * * \param bus Bus ID: 0 - system, 1 - user * \param bits Number of bits @@ -339,8 +341,9 @@ static inline void spi_set_address(uint8_t bus,uint8_t bits, uint32_t data) */ static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits, bool pos) { - if(!bits) return ; - if(pos) { SPI(bus).USER0 |= SPI_USER0_MISO; } // Dummy bit will be between Dout and Din data if set + if (!bits) return; + if (pos) + SPI(bus).USER0 |= SPI_USER0_MISO; // Dummy bit will be between Dout and Din data if set SPI(bus).USER0 |= SPI_USER0_DUMMY; //enable dummy bits SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_DUMMY_CYCLELEN, --bits); } @@ -351,7 +354,7 @@ static inline void spi_set_dummy_bits(uint8_t bus, uint8_t bits, bool pos) */ static inline void spi_clear_address(uint8_t bus) { - SPI(bus).USER0 &= ~(SPI_USER0_ADDR) ; + SPI(bus).USER0 &= ~(SPI_USER0_ADDR); } /** @@ -361,7 +364,7 @@ static inline void spi_clear_address(uint8_t bus) static inline void spi_clear_command(uint8_t bus) { - SPI(bus).USER0 &= ~(SPI_USER0_COMMAND) ; + SPI(bus).USER0 &= ~(SPI_USER0_COMMAND); } /** diff --git a/examples/mcp4725_test/main.c b/examples/mcp4725_test/main.c index b7d42af..bcb839b 100644 --- a/examples/mcp4725_test/main.c +++ b/examples/mcp4725_test/main.c @@ -20,7 +20,7 @@ #define ADDR MCP4725A0_ADDR0 #define VDD 3.3 -inline static void wait_for_eeprom(i2c_dev_t* dev) +inline static void wait_for_eeprom(i2c_dev_t *dev) { while (mcp4725_eeprom_busy(dev)) { diff --git a/extras/ads111x/ads111x.c b/extras/ads111x/ads111x.c index 8e68ee4..f2724bb 100644 --- a/extras/ads111x/ads111x.c +++ b/extras/ads111x/ads111x.c @@ -51,7 +51,7 @@ const float ads111x_gain_values[] = { [ADS111X_GAIN_0V256_3] = 0.256 }; -static uint16_t read_reg(i2c_dev_t* dev, uint8_t reg) +static uint16_t read_reg(i2c_dev_t *dev, uint8_t reg) { uint16_t res = 0; if (i2c_slave_read(dev->bus, dev->addr, ®, (uint8_t *)&res, 2)) @@ -60,7 +60,7 @@ static uint16_t read_reg(i2c_dev_t* dev, uint8_t reg) return res; } -static void write_reg(i2c_dev_t* dev, uint8_t reg, uint16_t val) +static void write_reg(i2c_dev_t *dev, uint8_t reg, uint16_t val) { //debug("Write %d: 0x%04x", reg, val); uint8_t buf[2] = { val >> 8, val}; @@ -68,127 +68,127 @@ static void write_reg(i2c_dev_t* dev, uint8_t reg, uint16_t val) debug("Could not write 0x%04x to register %d", val, reg); } -static uint16_t read_conf_bits(i2c_dev_t* dev, uint8_t offs, uint16_t mask) +static uint16_t read_conf_bits(i2c_dev_t *dev, uint8_t offs, uint16_t mask) { return (read_reg(dev, REG_CONFIG) >> offs) & mask; } -static void write_conf_bits(i2c_dev_t* dev, uint16_t val, uint8_t offs, uint16_t mask) +static void write_conf_bits(i2c_dev_t *dev, uint16_t val, uint8_t offs, uint16_t mask) { write_reg(dev, REG_CONFIG, (read_reg(dev, REG_CONFIG) & ~(mask << offs)) | (val << offs)); } -bool ads111x_busy(i2c_dev_t* dev) +bool ads111x_busy(i2c_dev_t *dev) { return read_conf_bits(dev, OS_OFFSET, OS_MASK); } -void ads111x_start_conversion(i2c_dev_t* dev) +void ads111x_start_conversion(i2c_dev_t *dev) { write_conf_bits(dev, 1, OS_OFFSET, OS_MASK); } -int16_t ads111x_get_value(i2c_dev_t* dev) +int16_t ads111x_get_value(i2c_dev_t *dev) { return read_reg(dev, REG_CONVERSION); } -ads111x_gain_t ads111x_get_gain(i2c_dev_t* dev) +ads111x_gain_t ads111x_get_gain(i2c_dev_t *dev) { return read_conf_bits(dev, PGA_OFFSET, PGA_MASK); } -void ads111x_set_gain(i2c_dev_t* dev, ads111x_gain_t gain) +void ads111x_set_gain(i2c_dev_t *dev, ads111x_gain_t gain) { write_conf_bits(dev, gain, PGA_OFFSET, PGA_MASK); } -ads111x_mux_t ads111x_get_input_mux(i2c_dev_t* dev) +ads111x_mux_t ads111x_get_input_mux(i2c_dev_t *dev) { return read_conf_bits(dev, MUX_OFFSET, MUX_MASK); } -void ads111x_set_input_mux(i2c_dev_t* dev, ads111x_mux_t mux) +void ads111x_set_input_mux(i2c_dev_t *dev, ads111x_mux_t mux) { write_conf_bits(dev, mux, MUX_OFFSET, MUX_MASK); } -ads111x_mode_t ads111x_get_mode(i2c_dev_t* dev) +ads111x_mode_t ads111x_get_mode(i2c_dev_t *dev) { return read_conf_bits(dev, MODE_OFFSET, MODE_MASK); } -void ads111x_set_mode(i2c_dev_t* dev, ads111x_mode_t mode) +void ads111x_set_mode(i2c_dev_t *dev, ads111x_mode_t mode) { write_conf_bits(dev, mode, MODE_OFFSET, MODE_MASK); } -ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t* dev) +ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t *dev) { return read_conf_bits(dev, DR_OFFSET, DR_MASK); } -void ads111x_set_data_rate(i2c_dev_t* dev, ads111x_data_rate_t rate) +void ads111x_set_data_rate(i2c_dev_t *dev, ads111x_data_rate_t rate) { write_conf_bits(dev, rate, DR_OFFSET, DR_MASK); } -ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t* dev) +ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t *dev) { return read_conf_bits(dev, COMP_MODE_OFFSET, COMP_MODE_MASK); } -void ads111x_set_comp_mode(i2c_dev_t* dev, ads111x_comp_mode_t mode) +void ads111x_set_comp_mode(i2c_dev_t *dev, ads111x_comp_mode_t mode) { write_conf_bits(dev, mode, COMP_MODE_OFFSET, COMP_MODE_MASK); } -ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t* dev) +ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t *dev) { return read_conf_bits(dev, COMP_POL_OFFSET, COMP_POL_MASK); } -void ads111x_set_comp_polarity(i2c_dev_t* dev, ads111x_comp_polarity_t polarity) +void ads111x_set_comp_polarity(i2c_dev_t *dev, ads111x_comp_polarity_t polarity) { write_conf_bits(dev, polarity, COMP_POL_OFFSET, COMP_POL_MASK); } -ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t* dev) +ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t *dev) { return read_conf_bits(dev, COMP_LAT_OFFSET, COMP_LAT_MASK); } -void ads111x_set_comp_latch(i2c_dev_t* dev, ads111x_comp_latch_t latch) +void ads111x_set_comp_latch(i2c_dev_t *dev, ads111x_comp_latch_t latch) { write_conf_bits(dev, latch, COMP_LAT_OFFSET, COMP_LAT_MASK); } -ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t* dev) +ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t *dev) { return read_conf_bits(dev, COMP_QUE_OFFSET, COMP_QUE_MASK); } -void ads111x_set_comp_queue(i2c_dev_t* dev, ads111x_comp_queue_t queue) +void ads111x_set_comp_queue(i2c_dev_t *dev, ads111x_comp_queue_t queue) { write_conf_bits(dev, queue, COMP_QUE_OFFSET, COMP_QUE_MASK); } -int16_t ads111x_get_comp_low_thresh(i2c_dev_t* dev) +int16_t ads111x_get_comp_low_thresh(i2c_dev_t *dev) { return read_reg(dev, REG_THRESH_L); } -void ads111x_set_comp_low_thresh(i2c_dev_t* dev, int16_t thresh) +void ads111x_set_comp_low_thresh(i2c_dev_t *dev, int16_t thresh) { write_reg(dev, REG_THRESH_L, thresh); } -int16_t ads111x_get_comp_high_thresh(i2c_dev_t* dev) +int16_t ads111x_get_comp_high_thresh(i2c_dev_t *dev) { return read_reg(dev, REG_THRESH_H); } -void ads111x_set_comp_high_thresh(i2c_dev_t* dev, int16_t thresh) +void ads111x_set_comp_high_thresh(i2c_dev_t *dev, int16_t thresh) { write_reg(dev, REG_THRESH_H, thresh); } diff --git a/extras/ads111x/ads111x.h b/extras/ads111x/ads111x.h index af93d4e..b9eb673 100644 --- a/extras/ads111x/ads111x.h +++ b/extras/ads111x/ads111x.h @@ -125,20 +125,20 @@ typedef enum * @param addr Deivce address * @return true when device performing conversion */ -bool ads111x_busy(i2c_dev_t* dev); +bool ads111x_busy(i2c_dev_t *dev); /** * Begin a single conversion (when in single-shot mode) * @param addr Deivce address */ -void ads111x_start_conversion(i2c_dev_t* dev); +void ads111x_start_conversion(i2c_dev_t *dev); /** * Read last conversion result * @param addr * @return Last conversion result */ -int16_t ads111x_get_value(i2c_dev_t* dev); +int16_t ads111x_get_value(i2c_dev_t *dev); /** * Read the programmable gain amplifier configuration @@ -146,70 +146,70 @@ int16_t ads111x_get_value(i2c_dev_t* dev); * @param addr Deivce address * @return Gain value */ -ads111x_gain_t ads111x_get_gain(i2c_dev_t* dev); +ads111x_gain_t ads111x_get_gain(i2c_dev_t *dev); /** * Configure the programmable gain amplifier (ADS1114 and ADS1115 only) * @param addr Deivce address * @param gain Gain value */ -void ads111x_set_gain(i2c_dev_t* dev, ads111x_gain_t gain); +void ads111x_set_gain(i2c_dev_t *dev, ads111x_gain_t gain); /** * Read the input multiplexer configuration (ADS1115 only) * @param addr Deivce address * @return Input multiplexer configuration */ -ads111x_mux_t ads111x_get_input_mux(i2c_dev_t* dev); +ads111x_mux_t ads111x_get_input_mux(i2c_dev_t *dev); /** * Configure the input multiplexer configuration (ADS1115 only) * @param addr Deivce address * @param mux Input multiplexer configuration */ -void ads111x_set_input_mux(i2c_dev_t* dev, ads111x_mux_t mux); +void ads111x_set_input_mux(i2c_dev_t *dev, ads111x_mux_t mux); /** * Read the device operating mode * @param addr Deivce address * @return Device operating mode */ -ads111x_mode_t ads111x_get_mode(i2c_dev_t* dev); +ads111x_mode_t ads111x_get_mode(i2c_dev_t *dev); /** * Set the device operating mode * @param addr Deivce address * @param mode Device operating mode */ -void ads111x_set_mode(i2c_dev_t* dev, ads111x_mode_t mode); +void ads111x_set_mode(i2c_dev_t *dev, ads111x_mode_t mode); /** * Read the data rate * @param addr Deivce address * @return Data rate */ -ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t* dev); +ads111x_data_rate_t ads111x_get_data_rate(i2c_dev_t *dev); /** * Configure the data rate * @param addr Deivce address * @param rate Data rate */ -void ads111x_set_data_rate(i2c_dev_t* dev, ads111x_data_rate_t rate); +void ads111x_set_data_rate(i2c_dev_t *dev, ads111x_data_rate_t rate); /** * Get comparator mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @return Comparator mode */ -ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t* dev); +ads111x_comp_mode_t ads111x_get_comp_mode(i2c_dev_t *dev); /** * Set comparator mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @param mode Comparator mode */ -void ads111x_set_comp_mode(i2c_dev_t* dev, ads111x_comp_mode_t mode); +void ads111x_set_comp_mode(i2c_dev_t *dev, ads111x_comp_mode_t mode); /** * Get polarity of the comparator output pin ALERT/RDY @@ -217,7 +217,7 @@ void ads111x_set_comp_mode(i2c_dev_t* dev, ads111x_comp_mode_t mode); * @param addr Deivce address * @return Comparator output pin polarity */ -ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t* dev); +ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t *dev); /** * Set polarity of the comparator output pin ALERT/RDY @@ -225,7 +225,7 @@ ads111x_comp_polarity_t ads111x_get_comp_polarity(i2c_dev_t* dev); * @param addr Deivce address * @param polarity Comparator output pin polarity */ -void ads111x_set_comp_polarity(i2c_dev_t* dev, ads111x_comp_polarity_t polarity); +void ads111x_set_comp_polarity(i2c_dev_t *dev, ads111x_comp_polarity_t polarity); /** * Get comparator output latch mode, see datasheet. @@ -233,14 +233,14 @@ void ads111x_set_comp_polarity(i2c_dev_t* dev, ads111x_comp_polarity_t polarity) * @param addr Deivce address * @return Comparator output latch mode */ -ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t* dev); +ads111x_comp_latch_t ads111x_get_comp_latch(i2c_dev_t *dev); /** * Set comparator output latch mode (ADS1114 and ADS1115 only) * @param addr Deivce address * @param latch Comparator output latch mode */ -void ads111x_set_comp_latch(i2c_dev_t* dev, ads111x_comp_latch_t latch); +void ads111x_set_comp_latch(i2c_dev_t *dev, ads111x_comp_latch_t latch); /** * Set number of the comparator conversions before pin ALERT/RDY @@ -248,7 +248,7 @@ void ads111x_set_comp_latch(i2c_dev_t* dev, ads111x_comp_latch_t latch); * @param addr Deivce address * @return Number of the comparator conversions */ -ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t* dev); +ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t *dev); /** * Get number of the comparator conversions before pin ALERT/RDY @@ -256,35 +256,35 @@ ads111x_comp_queue_t ads111x_get_comp_queue(i2c_dev_t* dev); * @param addr Deivce address * @param queue Number of the comparator conversions */ -void ads111x_set_comp_queue(i2c_dev_t* dev, ads111x_comp_queue_t queue); +void ads111x_set_comp_queue(i2c_dev_t *dev, ads111x_comp_queue_t queue); /** * Get the lower threshold value used by comparator * @param addr Deivce address * @return Lower threshold value */ -int16_t ads111x_get_comp_low_thresh(i2c_dev_t* dev); +int16_t ads111x_get_comp_low_thresh(i2c_dev_t *dev); /** * Set the lower threshold value used by comparator * @param addr Deivce address * @param thresh Lower threshold value */ -void ads111x_set_comp_low_thresh(i2c_dev_t* dev, int16_t thresh); +void ads111x_set_comp_low_thresh(i2c_dev_t *dev, int16_t thresh); /** * Get the upper threshold value used by comparator * @param addr Deivce address * @return Upper threshold value */ -int16_t ads111x_get_comp_high_thresh(i2c_dev_t* dev); +int16_t ads111x_get_comp_high_thresh(i2c_dev_t *dev); /** * Set the upper threshold value used by comparator * @param addr Deivce address * @param thresh Upper threshold value */ -void ads111x_set_comp_high_thresh(i2c_dev_t* dev, int16_t thresh); +void ads111x_set_comp_high_thresh(i2c_dev_t *dev, int16_t thresh); #ifdef __cplusplus } diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index d7d4330..947772b 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -38,7 +38,7 @@ static int bmp180_readRegister16(i2c_dev_t *dev, uint8_t reg, int16_t *r) { uint8_t d[] = { 0, 0 }; - int error ; + int error; if ((error = i2c_slave_read(dev->bus, dev->addr, ®, d, 2))) return error; @@ -49,7 +49,7 @@ static int bmp180_readRegister16(i2c_dev_t *dev, uint8_t reg, int16_t *r) static int bmp180_start_Messurement(i2c_dev_t *dev, uint8_t cmd) { - uint8_t reg = BMP180_CONTROL_REG ; + uint8_t reg = BMP180_CONTROL_REG; return i2c_slave_write(dev->bus, dev->addr, ®, &cmd, 1); } diff --git a/extras/bmp280/bmp280.c b/extras/bmp280/bmp280.c index abff6fd..d2f3795 100644 --- a/extras/bmp280/bmp280.c +++ b/extras/bmp280/bmp280.c @@ -60,12 +60,12 @@ void bmp280_init_default_params(bmp280_params_t *params) params->mode = BMP280_MODE_NORMAL; params->filter = BMP280_FILTER_OFF; params->oversampling_pressure = BMP280_STANDARD; - params->oversampling_temperature = BMP280_STANDARD ; + params->oversampling_temperature = BMP280_STANDARD; params->oversampling_humidity = BMP280_STANDARD; params->standby = BMP280_STANDBY_250; } -static bool read_register16(i2c_dev_t* dev, uint8_t addr, uint16_t *value) +static bool read_register16(i2c_dev_t *dev, uint8_t addr, uint16_t *value) { uint8_t d[] = {0, 0}; if (!i2c_slave_read(dev->bus, dev->addr, &addr, d, sizeof(d))) { @@ -75,7 +75,7 @@ static bool read_register16(i2c_dev_t* dev, uint8_t addr, uint16_t *value) return false; } -static inline int read_data(i2c_dev_t* dev, uint8_t addr, uint8_t *value, uint8_t len) +static inline int read_data(i2c_dev_t *dev, uint8_t addr, uint8_t *value, uint8_t len) { return i2c_slave_read(dev->bus, dev->addr, &addr, value, len); } @@ -141,7 +141,7 @@ static bool read_hum_calibration_data(bmp280_t *dev) return false; } -static int write_register8(i2c_dev_t* dev, uint8_t addr, uint8_t value) +static int write_register8(i2c_dev_t *dev, uint8_t addr, uint8_t value) { return i2c_slave_write(dev->bus, dev->addr, &addr, &value, 1); } diff --git a/extras/ds1302/ds1302.h b/extras/ds1302/ds1302.h index 4b3c1ba..ce49a72 100644 --- a/extras/ds1302/ds1302.h +++ b/extras/ds1302/ds1302.h @@ -3,7 +3,7 @@ * * Part of esp-open-rtos * Copyright (C) 2016 Ruslan V. Uss , - * Pavel Merlyakov + * Pavel Merzlyakov * BSD Licensed as described in the file LICENSE */ #ifndef EXTRAS_DS1302_H_ diff --git a/extras/ds1307/ds1307.c b/extras/ds1307/ds1307.c index 7cee34a..7b29563 100644 --- a/extras/ds1307/ds1307.c +++ b/extras/ds1307/ds1307.c @@ -38,36 +38,36 @@ static uint8_t dec2bcd(uint8_t val) return ((val / 10) << 4) + (val % 10); } -static uint8_t read_register(i2c_dev_t* dev, uint8_t reg) +static uint8_t read_register(i2c_dev_t *dev, uint8_t reg) { uint8_t val; i2c_slave_read(dev->bus, dev->addr, ®, &val, 1); return val; } -static void update_register(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) +static void update_register(i2c_dev_t *dev, uint8_t reg, uint8_t mask, uint8_t val) { - uint8_t buf = (read_register(dev,reg) & mask) | val; + uint8_t buf = (read_register(dev, reg) & mask) | val; i2c_slave_write(dev->bus, dev->addr, ®, &buf, 1); } -void ds1307_start(i2c_dev_t* dev, bool start) +void ds1307_start(i2c_dev_t *dev, bool start) { update_register(dev, TIME_REG, CH_MASK, start ? 0 : CH_BIT); } -bool ds1307_is_running(i2c_dev_t* dev) +bool ds1307_is_running(i2c_dev_t *dev) { return !(read_register(dev, TIME_REG) & CH_BIT); } -void ds1307_get_time(i2c_dev_t* dev, struct tm *time) +void ds1307_get_time(i2c_dev_t *dev, struct tm *time) { uint8_t buf[7]; - uint8_t reg = TIME_REG ; + uint8_t reg = TIME_REG; - i2c_slave_read(dev->bus, dev->addr, ® , buf, 7); + i2c_slave_read(dev->bus, dev->addr, ®, buf, 7); time->tm_sec = bcd2dec(buf[0] & SECONDS_MASK); time->tm_min = bcd2dec(buf[1]); @@ -78,14 +78,15 @@ void ds1307_get_time(i2c_dev_t* dev, struct tm *time) if (buf[2] & PM_BIT) time->tm_hour += 12; } - else time->tm_hour = bcd2dec(buf[2] & HOUR24_MASK); + else + time->tm_hour = bcd2dec(buf[2] & HOUR24_MASK); time->tm_wday = bcd2dec(buf[3]) - 1; time->tm_mday = bcd2dec(buf[4]); - time->tm_mon = bcd2dec(buf[5]) - 1; + time->tm_mon = bcd2dec(buf[5]) - 1; time->tm_year = bcd2dec(buf[6]) + 2000; } -void ds1307_set_time(i2c_dev_t* dev, const struct tm *time) +void ds1307_set_time(i2c_dev_t *dev, const struct tm *time) { uint8_t buf[8]; buf[0] = TIME_REG; @@ -97,51 +98,55 @@ void ds1307_set_time(i2c_dev_t* dev, const struct tm *time) buf[6] = dec2bcd(time->tm_mon + 1); buf[7] = dec2bcd(time->tm_year - 2000); - i2c_slave_write(dev->bus, dev->addr, &buf[0], &buf[1] , 7); + i2c_slave_write(dev->bus, dev->addr, &buf[0], &buf[1], 7); } -void ds1307_enable_squarewave(i2c_dev_t* dev, bool enable) +void ds1307_enable_squarewave(i2c_dev_t *dev, bool enable) { update_register(dev, CONTROL_REG, SQWE_MASK, enable ? SQWE_BIT : 0); } -bool ds1307_is_squarewave_enabled(i2c_dev_t* dev) +bool ds1307_is_squarewave_enabled(i2c_dev_t *dev) { return read_register(dev, CONTROL_REG) & SQWE_BIT; } -void ds1307_set_squarewave_freq(i2c_dev_t* dev, ds1307_squarewave_freq_t freq) +void ds1307_set_squarewave_freq(i2c_dev_t *dev, ds1307_squarewave_freq_t freq) { update_register(dev, CONTROL_REG, SQWEF_MASK, (uint8_t)freq); } -ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t* dev) +ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t *dev) { return (ds1307_squarewave_freq_t)(read_register(dev, CONTROL_REG) & SQWEF_MASK); } -bool ds1307_get_output(i2c_dev_t* dev) +bool ds1307_get_output(i2c_dev_t *dev) { return read_register(dev, CONTROL_REG) & OUT_BIT; } -void ds1307_set_output(i2c_dev_t* dev, bool value) +void ds1307_set_output(i2c_dev_t *dev, bool value) { update_register(dev, CONTROL_REG, OUT_MASK, value ? OUT_BIT : 0); } -int ds1307_read_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_read_ram(i2c_dev_t *dev, uint8_t offset, uint8_t *buf, uint8_t len) { - if (offset + len > RAM_SIZE) return false; - uint8_t reg = RAM_REG + offset ; + if (offset + len > RAM_SIZE) + return -EINVAL; + + uint8_t reg = RAM_REG + offset; return i2c_slave_read(dev->bus, dev->addr, ®, buf, len); } -int ds1307_write_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len) +int ds1307_write_ram(i2c_dev_t *dev, uint8_t offset, uint8_t *buf, uint8_t len) { - if (offset + len > RAM_SIZE) return false; - uint8_t reg = RAM_REG + offset ; + if (offset + len > RAM_SIZE) + return -EINVAL; + + uint8_t reg = RAM_REG + offset; return i2c_slave_write(dev->bus, dev->addr, ®, buf, len); } diff --git a/extras/ds1307/ds1307.h b/extras/ds1307/ds1307.h index 9baa904..aff8e34 100644 --- a/extras/ds1307/ds1307.h +++ b/extras/ds1307/ds1307.h @@ -17,11 +17,12 @@ extern "C" { #endif -#define DS1307_ADDR 0x68 +#define DS1307_ADDR 0x68 + /** * Squarewave frequency */ -typedef enum _ds1307_squarewave_freq_t +typedef enum { DS1307_1HZ = 0, //!< 1 Hz DS1307_4096HZ, //!< 4096 Hz @@ -33,62 +34,62 @@ typedef enum _ds1307_squarewave_freq_t * \brief Start/stop clock * \param start Start clock if true */ -void ds1307_start(i2c_dev_t* dev, bool start); +void ds1307_start(i2c_dev_t *dev, bool start); /** * \brief Get current clock state * \return true if clock running */ -bool ds1307_is_running(i2c_dev_t* dev); +bool ds1307_is_running(i2c_dev_t *dev); /** * \brief Get current time * \param time Pointer to the time struct to fill */ -void ds1307_get_time(i2c_dev_t* dev, struct tm *time); +void ds1307_get_time(i2c_dev_t *dev, struct tm *time); /** * \brief Set time to RTC * \param time Pointer to the time struct */ -void ds1307_set_time(i2c_dev_t* dev, const struct tm *time); +void ds1307_set_time(i2c_dev_t *dev, const struct tm *time); /** * \brief Enable or disable square-wave oscillator output * \param enable Enable oscillator if true */ -void ds1307_enable_squarewave(i2c_dev_t* dev, bool enable); +void ds1307_enable_squarewave(i2c_dev_t *dev, bool enable); /** * \brief Get square-wave oscillator output * \return true if square-wave oscillator enabled */ -bool ds1307_is_squarewave_enabled(i2c_dev_t* dev); +bool ds1307_is_squarewave_enabled(i2c_dev_t *dev); /** * \brief Set square-wave oscillator frequency * \param freq Frequency */ -void ds1307_set_squarewave_freq(i2c_dev_t* dev, ds1307_squarewave_freq_t freq); +void ds1307_set_squarewave_freq(i2c_dev_t *dev, ds1307_squarewave_freq_t freq); /** * \brief Get current square-wave oscillator frequency * \return Frequency */ -ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t* dev); +ds1307_squarewave_freq_t ds1307_get_squarewave_freq(i2c_dev_t *dev); /** * \brief Get current output level of the SQW/OUT pin * \return true if high */ -bool ds1307_get_output(i2c_dev_t* dev); +bool ds1307_get_output(i2c_dev_t *dev); /** * \brief Set output level of the SQW/OUT pin * Set output level if square-wave output is disabled * \param value High level if true */ -void ds1307_set_output(i2c_dev_t* dev, bool value); +void ds1307_set_output(i2c_dev_t *dev, bool value); /** * \brief Read RAM contents into the buffer @@ -97,7 +98,7 @@ void ds1307_set_output(i2c_dev_t* dev, bool value); * \param len Bytes to read, 1..56 * \return Non-zero if error occured */ -int ds1307_read_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_read_ram(i2c_dev_t *dev, uint8_t offset, uint8_t *buf, uint8_t len); /** * \brief Write buffer to RTC RAM @@ -106,7 +107,7 @@ int ds1307_read_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len); * \param len Bytes to write, 1..56 * \return Non-zero if error occured */ -int ds1307_write_ram(i2c_dev_t* dev, uint8_t offset, uint8_t *buf, uint8_t len); +int ds1307_write_ram(i2c_dev_t *dev, uint8_t offset, uint8_t *buf, uint8_t len); #ifdef __cplusplus diff --git a/extras/hd44780/README.md b/extras/hd44780/README.md index 519bc92..c8f6b22 100644 --- a/extras/hd44780/README.md +++ b/extras/hd44780/README.md @@ -104,7 +104,7 @@ hd44780_t lcd = { hd44780_t lcd = { .addr = ADDR, .font = HD44780_FONT_5X8, - .lines = 2, + .lines = 4, .pins = { .rs = 0, .e = 2, diff --git a/extras/hmc5883l/hmc5883l.c b/extras/hmc5883l/hmc5883l.c index e970fa2..2a95407 100644 --- a/extras/hmc5883l/hmc5883l.c +++ b/extras/hmc5883l/hmc5883l.c @@ -52,24 +52,24 @@ static const float gain_values [] = { static float current_gain; static hmc5883l_operating_mode_t current_mode; -static inline void write_register(i2c_dev_t* dev, uint8_t reg, uint8_t val) +static inline void write_register(i2c_dev_t *dev, uint8_t reg, uint8_t val) { i2c_slave_write(dev->bus, dev->addr, ®, &val, 1); } -static inline uint8_t read_register(i2c_dev_t* dev, uint8_t reg) +static inline uint8_t read_register(i2c_dev_t *dev, uint8_t reg) { uint8_t res; i2c_slave_read(dev->bus, dev->addr, ®, &res, 1); return res; } -static inline void update_register(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) +static inline void update_register(i2c_dev_t *dev, uint8_t reg, uint8_t mask, uint8_t val) { write_register(dev, reg, (read_register(dev, reg) & mask) | val); } -bool hmc5883l_init(i2c_dev_t* dev) +bool hmc5883l_init(i2c_dev_t *dev) { if (hmc5883l_get_id(dev) != HMC5883L_ID) return false; @@ -78,7 +78,7 @@ bool hmc5883l_init(i2c_dev_t* dev) return true; } -uint32_t hmc5883l_get_id(i2c_dev_t* dev) +uint32_t hmc5883l_get_id(i2c_dev_t *dev) { uint32_t res = 0; uint8_t reg = REG_ID_A; @@ -86,70 +86,70 @@ uint32_t hmc5883l_get_id(i2c_dev_t* dev) return res; } -hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t* dev) +hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t *dev) { uint8_t res = read_register(dev, REG_MODE) & MASK_MD; return res == 0 ? HMC5883L_MODE_CONTINUOUS : HMC5883L_MODE_SINGLE; } -void hmc5883l_set_operating_mode(i2c_dev_t* dev, hmc5883l_operating_mode_t mode) +void hmc5883l_set_operating_mode(i2c_dev_t *dev, hmc5883l_operating_mode_t mode) { write_register(dev, REG_MODE, mode); current_mode = mode; } -hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t* dev) +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t *dev) { return (read_register(dev, REG_CR_A) & MASK_MA) >> BIT_MA; } -void hmc5883l_set_samples_averaged(i2c_dev_t* dev, hmc5883l_samples_averaged_t samples) +void hmc5883l_set_samples_averaged(i2c_dev_t *dev, hmc5883l_samples_averaged_t samples) { update_register(dev, REG_CR_A, MASK_MA, samples << BIT_MA); } -hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t* dev) +hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t *dev) { return (read_register(dev, REG_CR_A) & MASK_DO) >> BIT_DO; } -void hmc5883l_set_data_rate(i2c_dev_t* dev, hmc5883l_data_rate_t rate) +void hmc5883l_set_data_rate(i2c_dev_t *dev, hmc5883l_data_rate_t rate) { update_register(dev, REG_CR_A, MASK_DO, rate << BIT_DO); } -hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t* dev) +hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t *dev) { return read_register(dev, REG_CR_A) & MASK_MS; } -void hmc5883l_set_bias(i2c_dev_t* dev, hmc5883l_bias_t bias) +void hmc5883l_set_bias(i2c_dev_t *dev, hmc5883l_bias_t bias) { update_register(dev, REG_CR_A, MASK_MS, bias); } -hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t* dev) +hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t *dev) { return read_register(dev, REG_CR_B) >> BIT_GN; } -void hmc5883l_set_gain(i2c_dev_t* dev, hmc5883l_gain_t gain) +void hmc5883l_set_gain(i2c_dev_t *dev, hmc5883l_gain_t gain) { write_register(dev, REG_CR_B, gain << BIT_GN); current_gain = gain_values[gain]; } -bool hmc5883l_data_is_locked(i2c_dev_t* dev) +bool hmc5883l_data_is_locked(i2c_dev_t *dev) { return read_register(dev, REG_STAT) & MASK_DL; } -bool hmc5883l_data_is_ready(i2c_dev_t* dev) +bool hmc5883l_data_is_ready(i2c_dev_t *dev) { return read_register(dev, REG_STAT) & MASK_DR; } -bool hmc5883l_get_raw_data(i2c_dev_t* dev, hmc5883l_raw_data_t *data) +bool hmc5883l_get_raw_data(i2c_dev_t *dev, hmc5883l_raw_data_t *data) { if (current_mode == HMC5883L_MODE_SINGLE) { @@ -179,7 +179,7 @@ void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg) mg->z = raw->z * current_gain; } -bool hmc5883l_get_data(i2c_dev_t* dev, hmc5883l_data_t *data) +bool hmc5883l_get_data(i2c_dev_t *dev, hmc5883l_data_t *data) { hmc5883l_raw_data_t raw; diff --git a/extras/hmc5883l/hmc5883l.h b/extras/hmc5883l/hmc5883l.h index 5958e61..041e818 100644 --- a/extras/hmc5883l/hmc5883l.h +++ b/extras/hmc5883l/hmc5883l.h @@ -104,82 +104,82 @@ typedef struct * \brief Init device * \return false if error occured */ -bool hmc5883l_init(i2c_dev_t* dev); +bool hmc5883l_init(i2c_dev_t *dev); /** * \brief Get device ID * Always returns 0x00333448 if IC functioning properly. * \return Device ID */ -uint32_t hmc5883l_get_id(i2c_dev_t* dev); +uint32_t hmc5883l_get_id(i2c_dev_t *dev); /** * \brief Get operating mode * \return Measurement mode */ -hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t* dev); +hmc5883l_operating_mode_t hmc5883l_get_operating_mode(i2c_dev_t *dev); /** * \brief Set operating mode * \param mode Measurement mode */ -void hmc5883l_set_operating_mode(i2c_dev_t* dev, hmc5883l_operating_mode_t mode); +void hmc5883l_set_operating_mode(i2c_dev_t *dev, hmc5883l_operating_mode_t mode); /** * \brief Get number of samples averaged per measurement output * \return Number of samples */ -hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t* dev); +hmc5883l_samples_averaged_t hmc5883l_get_samples_averaged(i2c_dev_t *dev); /** * \brief Set number of samples averaged per measurement output * \param samples Number of samples */ -void hmc5883l_set_samples_averaged(i2c_dev_t* dev, hmc5883l_samples_averaged_t samples); +void hmc5883l_set_samples_averaged(i2c_dev_t *dev, hmc5883l_samples_averaged_t samples); /** * \brief Get data output rate in continuous measurement mode * \return Data output rate */ -hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t* dev); +hmc5883l_data_rate_t hmc5883l_get_data_rate(i2c_dev_t *dev); /** * \brief Set data output rate in continuous measurement mode * \param rate Data output rate */ -void hmc5883l_set_data_rate(i2c_dev_t* dev, hmc5883l_data_rate_t rate); +void hmc5883l_set_data_rate(i2c_dev_t *dev, hmc5883l_data_rate_t rate); /** * \brief Get measurement mode (bias of the axes) * See datasheet for self test description * \return Bias */ -hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t* dev); +hmc5883l_bias_t hmc5883l_get_bias(i2c_dev_t *dev); /** * \brief Set measurement mode (bias of the axes) * See datasheet for self test description * \param bias Bias */ -void hmc5883l_set_bias(i2c_dev_t* dev, hmc5883l_bias_t bias); +void hmc5883l_set_bias(i2c_dev_t *dev, hmc5883l_bias_t bias); /** * \brief Get device gain * \return Current gain */ -hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t* dev); +hmc5883l_gain_t hmc5883l_get_gain(i2c_dev_t *dev); /** * \brief Set device gain * \param gain Gain */ -void hmc5883l_set_gain(i2c_dev_t* dev, hmc5883l_gain_t gain); +void hmc5883l_set_gain(i2c_dev_t *dev, hmc5883l_gain_t gain); /** * \brief Get data state * \return true when data is written to all six data registers */ -bool hmc5883l_data_is_ready(i2c_dev_t* dev); +bool hmc5883l_data_is_ready(i2c_dev_t *dev); /** * \brief Get lock state. @@ -191,14 +191,14 @@ bool hmc5883l_data_is_ready(i2c_dev_t* dev); * 4. power is reset. * \return true when data registers is locked */ -bool hmc5883l_data_is_locked(i2c_dev_t* dev); +bool hmc5883l_data_is_locked(i2c_dev_t *dev); /** * \brief Get raw magnetic data * \param data Pointer to the struct to write raw data * \return false if error occured in single measurement mode, always true in continuous mode */ -bool hmc5883l_get_raw_data(i2c_dev_t* dev, hmc5883l_raw_data_t *data); +bool hmc5883l_get_raw_data(i2c_dev_t *dev, hmc5883l_raw_data_t *data); /** * \brief Convert raw magnetic data to milligausses @@ -212,7 +212,7 @@ void hmc5883l_raw_to_mg(const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg); * \param data Pointer to the struct to write data * \return false if error occured in single measurement mode, always true in continuous mode */ -bool hmc5883l_get_data(i2c_dev_t* dev, hmc5883l_data_t *data); +bool hmc5883l_get_data(i2c_dev_t *dev, hmc5883l_data_t *data); #ifdef __cplusplus } diff --git a/extras/ina3221/ina3221.c b/extras/ina3221/ina3221.c index dc79735..1c6c51a 100644 --- a/extras/ina3221/ina3221.c +++ b/extras/ina3221/ina3221.c @@ -18,20 +18,20 @@ #define debug(fmt, ...) #endif -static int _wireWriteRegister (const i2c_dev_t* dev, uint8_t reg, uint16_t value) +static int _wireWriteRegister(const i2c_dev_t *dev, uint8_t reg, uint16_t value) { - uint8_t d[2] = { 0 , 0 }; - d[1] = value & 0x00FF; + uint8_t d[2] = { 0, 0 }; + d[1] = value & 0x00FF; d[0] = (value >> 8) & 0x00FF; - debug("Data write to bus %u at %02X : %02X+%04X\n",dev->bus, dev->addr, reg, value); + debug("Data write to bus %u at %02X : %02X+%04X\n", dev->bus, dev->addr, reg, value); return i2c_slave_write(dev->bus, dev->addr, ®, d, sizeof(d)); } -static int _wireReadRegister(const i2c_dev_t* dev, uint8_t reg, uint16_t *value) +static int _wireReadRegister(const i2c_dev_t *dev, uint8_t reg, uint16_t *value) { - uint8_t d[] = {0, 0}; - int error = i2c_slave_read(dev->bus, dev->addr, ®, d, sizeof(d)) - debug("Data read from bus %u at %02X: %02X+%04X\n",dev->bus, dev->addr, reg, *value); + uint8_t d[] = { 0, 0 }; + int error = i2c_slave_read(dev->bus, dev->addr, ®, d, sizeof(d)); + debug("Data read from bus %u at %02X: %02X+%04X\n", dev->bus, dev->addr, reg, *value); *value = d[1] | (d[0] << 8); return error; } @@ -53,21 +53,23 @@ int ina3221_sync(ina3221_t *dev) //////////////////////// Sync config register if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_CONFIG, &ptr_data))) // Read config return err; - if( ptr_data != dev->config.config_register) { + if (ptr_data != dev->config.config_register) + { if ((err = _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register))) // Update config return err; } //////////////////////// Sync mask register config if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_MASK, &ptr_data))) // Read mask return err; - if( (ptr_data & INA3221_MASK_CONFIG) != (dev->mask.mask_register & INA3221_MASK_CONFIG)) { + if ((ptr_data & INA3221_MASK_CONFIG) != (dev->mask.mask_register & INA3221_MASK_CONFIG)) + { if ((err = _wireWriteRegister(&dev->i2c_dev, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG))) // Update config return err; } return 0; } -int ina3221_setting(ina3221_t *dev ,bool mode, bool bus, bool shunt) +int ina3221_setting(ina3221_t *dev, bool mode, bool bus, bool shunt) { dev->config.mode = mode; dev->config.ebus = bus; @@ -75,7 +77,7 @@ int ina3221_setting(ina3221_t *dev ,bool mode, bool bus, bool shunt) return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } -int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) +int ina3221_enableChannel(ina3221_t *dev, bool ch1, bool ch2, bool ch3) { dev->config.ch1 = ch1; dev->config.ch2 = ch2; @@ -83,7 +85,7 @@ int ina3221_enableChannel(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } -int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) +int ina3221_enableChannelSum(ina3221_t *dev, bool ch1, bool ch2, bool ch3) { dev->mask.scc1 = ch1; dev->mask.scc2 = ch2; @@ -91,7 +93,7 @@ int ina3221_enableChannelSum(ina3221_t *dev ,bool ch1, bool ch2, bool ch3) return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_MASK, dev->mask.mask_register & INA3221_MASK_CONFIG); } -int ina3221_enableLatchPin(ina3221_t *dev ,bool warning, bool critical) +int ina3221_enableLatchPin(ina3221_t *dev, bool warning, bool critical) { dev->mask.wen = warning; dev->mask.cen = critical; @@ -104,13 +106,13 @@ int ina3221_setAverage(ina3221_t *dev, ina3221_avg_t avg) return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } -int ina3221_setBusConversionTime(ina3221_t *dev,ina3221_ct_t ct) +int ina3221_setBusConversionTime(ina3221_t *dev, ina3221_ct_t ct) { dev->config.vbus = ct; return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); } -int ina3221_setShuntConversionTime(ina3221_t *dev,ina3221_ct_t ct) +int ina3221_setShuntConversionTime(ina3221_t *dev, ina3221_ct_t ct) { dev->config.vsht = ct; return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); @@ -118,9 +120,9 @@ int ina3221_setShuntConversionTime(ina3221_t *dev,ina3221_ct_t ct) int ina3221_reset(ina3221_t *dev) { - dev->config.config_register = INA3221_DEFAULT_CONFIG ; //dev reset - dev->mask.mask_register = INA3221_DEFAULT_CONFIG ; //dev reset - dev->config.rst = 1 ; + dev->config.config_register = INA3221_DEFAULT_CONFIG; //dev reset + dev->mask.mask_register = INA3221_DEFAULT_CONFIG; //dev reset + dev->config.rst = 1; return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CONFIG, dev->config.config_register); // send reset to device } @@ -128,74 +130,74 @@ int ina3221_getBusVoltage(ina3221_t *dev, ina3221_channel_t channel, float *volt { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_BUSVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_BUSVOLTAGE_1 + channel * 2, (uint16_t*)&raw_value))) return err; - *voltage = raw_value*0.001 ; //V 8mV step - return 0; + *voltage = raw_value * 0.001; //V 8mV step + return 0; } int ina3221_getShuntValue(ina3221_t *dev, ina3221_channel_t channel, float *voltage, float *current) { int16_t raw_value; - int err = 0; - if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_SHUNTVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) + int err = 0; + if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_SHUNTVOLTAGE_1 + channel * 2, (uint16_t*)&raw_value))) return err; - *voltage = raw_value*0.005; //mV 40uV step - if(!dev->shunt[channel]) + *voltage = raw_value * 0.005; //mV 40uV step + if (!dev->shunt[channel]) { - debug("No shunt configured for channel %u. Dev:%u:%X\n",channel+1, dev->bus, dev->addr); + debug("No shunt configured for channel %u. Dev:%u:%X\n", channel+1, dev->bus, dev->addr); return -EINVAL; } - *current = (*voltage*1000.0)/dev->shunt[channel] ; //mA - return 0; + *current = (*voltage * 1000.0) / dev->shunt[channel]; //mA + return 0; } int ina3221_getSumShuntValue(ina3221_t *dev, float *voltage) { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_SHUNT_VOLTAGE_SUM, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_SHUNT_VOLTAGE_SUM, (uint16_t*)&raw_value))) return err; - *voltage = raw_value*0.02; //uV 40uV step + *voltage = raw_value * 0.02; //uV 40uV step return 0; } int ina3221_setCriticalAlert(ina3221_t *dev, ina3221_channel_t channel, float current) { - int16_t raw_value = current*dev->shunt[channel]*0.2; // format - return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_CRITICAL_ALERT_1+channel*2, *(uint16_t*)&raw_value); + int16_t raw_value = current * dev->shunt[channel] * 0.2; // format + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_CRITICAL_ALERT_1 + channel * 2, *(uint16_t*)&raw_value); } int ina3221_setWarningAlert(ina3221_t *dev, ina3221_channel_t channel, float current) { - int16_t raw_value = current*dev->shunt[channel]*0.2 ; // format - return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_WARNING_ALERT_1+channel*2, *(uint16_t*)&raw_value); + int16_t raw_value = current * dev->shunt[channel] * 0.2; // format + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_WARNING_ALERT_1 + channel * 2, *(uint16_t*)&raw_value); } int ina3221_setSumWarningAlert(ina3221_t *dev, float voltage) { - int16_t raw_value = voltage*50.0 ; // format - return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT, *(uint16_t*)&raw_value); + int16_t raw_value = voltage * 50.0; // format + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_SHUNT_VOLTAGE_SUM_LIMIT, *(uint16_t*)&raw_value); } int ina3221_setPowerValidUpperLimit(ina3221_t *dev, float voltage) { - if(!dev->config.ebus) + if (!dev->config.ebus) { debug("Bus not enable. Dev:%u:%X\n", dev->bus, dev->addr); return -ENOTSUP; } - int16_t raw_value = voltage*1000.0; //format - return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_VALID_POWER_UPPER_LIMIT, *(uint16_t*)&raw_value); + int16_t raw_value = voltage * 1000.0; //format + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_VALID_POWER_UPPER_LIMIT, *(uint16_t*)&raw_value); } int ina3221_setPowerValidLowerLimit(ina3221_t *dev, float voltage) { - if(!dev->config.ebus) + if (!dev->config.ebus) { debug("Bus not enable. Dev:%u:%X\n", dev->bus, dev->addr); return -ENOTSUP; } - int16_t raw_value = voltage*1000.0; // round and format - return _wireWriteRegister(&dev->i2c_dev,INA3221_REG_VALID_POWER_LOWER_LIMIT, *(uint16_t*)&raw_value); + int16_t raw_value = voltage * 1000.0; // round and format + return _wireWriteRegister(&dev->i2c_dev, INA3221_REG_VALID_POWER_LOWER_LIMIT, *(uint16_t*)&raw_value); } diff --git a/extras/ina3221/ina3221.h b/extras/ina3221/ina3221.h index 627f3aa..c16206e 100644 --- a/extras/ina3221/ina3221.h +++ b/extras/ina3221/ina3221.h @@ -19,14 +19,14 @@ extern "C" { #endif -#include "i2c/i2c.h" +#include -#define INA3221_ADDR_0 (0x40) // A0 to GND -#define INA3221_ADDR_1 (0x41) // A0 to Vs+ -#define INA3221_ADDR_2 (0x42) // A0 to SDA -#define INA3221_ADDR_3 (0x43) // A0 to SCL +#define INA3221_ADDR_0 (0x40) ///< A0 to GND +#define INA3221_ADDR_1 (0x41) ///< A0 to Vs+ +#define INA3221_ADDR_2 (0x42) ///< A0 to SDA +#define INA3221_ADDR_3 (0x43) ///< A0 to SCL -#define BUS_NUMBER 3 //Number of shunt available +#define BUS_NUMBER 3 ///< Number of shunt available #define INA3221_REG_CONFIG (0x00) #define INA3221_REG_SHUNTVOLTAGE_1 (0x01) @@ -39,7 +39,7 @@ extern "C" { #define INA3221_REG_VALID_POWER_UPPER_LIMIT (0x10) #define INA3221_REG_VALID_POWER_LOWER_LIMIT (0x11) -/* +/** * Default register after reset */ #define INA3221_DEFAULT_CONFIG (0x7127) @@ -48,11 +48,12 @@ extern "C" { #define INA3221_DEFAULT_POWER_LOWER_LIMIT (0x2328) //9V #define INA3221_MASK_CONFIG (0x7C00) -/* - * Numbrer of samples + +/** + * Number of samples */ typedef enum { - INA3221_AVG_1 = 0, //Default + INA3221_AVG_1 = 0, ///< Default INA3221_AVG_4, INA3221_AVG_16, INA3221_AVG_64, @@ -62,7 +63,7 @@ typedef enum { INA3221_AVG_1024, } ina3221_avg_t; -/* +/** * Channel selection list */ typedef enum { @@ -71,7 +72,7 @@ typedef enum { CHANNEL_3, } ina3221_channel_t; -/* +/** * Conversion time in us */ typedef enum { @@ -79,63 +80,63 @@ typedef enum { INA3221_CT_204, INA3221_CT_332, INA3221_CT_588, - INA3221_CT_1100, //Default + INA3221_CT_1100, ///< Default INA3221_CT_2116, INA3221_CT_4156, INA3221_CT_8244, -} ina3221_ct_t ; +} ina3221_ct_t; -/* +/** * Config description register */ typedef union { struct { - uint16_t esht : 1; // Enable/Disable shunt measure // LSB - uint16_t ebus : 1; // Enable/Disable bus measure - uint16_t mode : 1; // Single shot measure or continious mode - uint16_t vsht : 3; // Shunt voltage conversion time - uint16_t vbus : 3; // Bus voltage conversion time - uint16_t avg : 3; // number of sample collected and averaged together - uint16_t ch3 : 1; // Enable/Disable channel 3 - uint16_t ch2 : 1; // Enable/Disable channel 2 - uint16_t ch1 : 1; // Enable/Disable channel 1 - uint16_t rst : 1; //Set this bit to 1 to reset device // MSB + uint16_t esht : 1; ///< Enable/Disable shunt measure // LSB + uint16_t ebus : 1; ///< Enable/Disable bus measure + uint16_t mode : 1; ///< Single shot measure or continious mode + uint16_t vsht : 3; ///< Shunt voltage conversion time + uint16_t vbus : 3; ///< Bus voltage conversion time + uint16_t avg : 3; ///< number of sample collected and averaged together + uint16_t ch3 : 1; ///< Enable/Disable channel 3 + uint16_t ch2 : 1; ///< Enable/Disable channel 2 + uint16_t ch1 : 1; ///< Enable/Disable channel 1 + uint16_t rst : 1; ///< Set this bit to 1 to reset device // MSB }; uint16_t config_register; } ina3221_config_t; -/* +/** * Mask/enable description register */ typedef union { struct { - uint16_t cvrf : 1 ; // Conversion ready flag (1: ready) // LSB - uint16_t tcf : 1 ; // Timing control flag - uint16_t pvf : 1 ; // Power valid flag - uint16_t wf : 3 ; // Warning alert flag (Read mask to clear) (order : Channel1:channel2:channel3) - uint16_t sf : 1 ; // Sum alert flag (Read mask to clear) - uint16_t cf : 3 ; // Critical alert flag (Read mask to clear) (order : Channel1:channel2:channel3) - uint16_t cen : 1 ; // Critical alert latch (1:enable) - uint16_t wen : 1 ; // Warning alert latch (1:enable) - uint16_t scc3 : 1 ; // channel 3 sum (1:enable) - uint16_t scc2 : 1 ; // channel 2 sum (1:enable) - uint16_t scc1 : 1 ; // channel 1 sum (1:enable) - uint16_t : 1 ; //Reserved //MSB + uint16_t cvrf : 1; ///< Conversion ready flag (1: ready) // LSB + uint16_t tcf : 1; ///< Timing control flag + uint16_t pvf : 1; ///< Power valid flag + uint16_t wf : 3; ///< Warning alert flag (Read mask to clear) (order : Channel1:channel2:channel3) + uint16_t sf : 1; ///< Sum alert flag (Read mask to clear) + uint16_t cf : 3; ///< Critical alert flag (Read mask to clear) (order : Channel1:channel2:channel3) + uint16_t cen : 1; ///< Critical alert latch (1:enable) + uint16_t wen : 1; ///< Warning alert latch (1:enable) + uint16_t scc3 : 1; ///< channel 3 sum (1:enable) + uint16_t scc2 : 1; ///< channel 2 sum (1:enable) + uint16_t scc1 : 1; ///< channel 1 sum (1:enable) + uint16_t : 1; ///< Reserved //MSB }; uint16_t mask_register; } ina3221_mask_t; -/* +/** * Device description */ typedef struct { - const i2c_dev_t i2c_dev; // ina3221 I2C address - const uint16_t shunt[BUS_NUMBER]; //Memory of shunt value (mOhm) - ina3221_config_t config; //Memory of ina3221 config - ina3221_mask_t mask; //Memory of mask_config + const i2c_dev_t i2c_dev; ///< ina3221 I2C address + const uint16_t shunt[BUS_NUMBER]; ///< Memory of shunt value (mOhm) + ina3221_config_t config; ///< Memory of ina3221 config + ina3221_mask_t mask; ///< Memory of mask_config } ina3221_t; /** diff --git a/extras/mcp4725/mcp4725.c b/extras/mcp4725/mcp4725.c index a478e67..edf2dbb 100644 --- a/extras/mcp4725/mcp4725.c +++ b/extras/mcp4725/mcp4725.c @@ -11,12 +11,12 @@ #define CMD_EEPROM 0x60 #define BIT_READY 0x80 -static void read_data(i2c_dev_t* dev, uint8_t *buf, uint8_t size) +static void read_data(i2c_dev_t *dev, uint8_t *buf, uint8_t size) { - i2c_slave_read(dev->bus, dev->addr , NULL, buf, size); + i2c_slave_read(dev->bus, dev->addr, NULL, buf, size); } -bool mcp4725_eeprom_busy(i2c_dev_t* dev) +bool mcp4725_eeprom_busy(i2c_dev_t *dev) { uint8_t res; read_data(dev, &res, 1); @@ -24,7 +24,7 @@ bool mcp4725_eeprom_busy(i2c_dev_t* dev) return !(res & BIT_READY); } -mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom) +mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t *dev, bool eeprom) { uint8_t buf[4]; read_data(dev, buf, eeprom ? 4 : 1); @@ -32,7 +32,7 @@ mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom) return (eeprom ? buf[3] >> 5 : buf[0] >> 1) & 0x03; } -void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eeprom) +void mcp4725_set_power_mode(i2c_dev_t *dev, mcp4725_power_mode_t mode, bool eeprom) { uint16_t value = mcp4725_get_raw_output(dev, eeprom); uint8_t data[] = { @@ -43,7 +43,7 @@ void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eepr i2c_slave_write(dev->bus, dev->addr, &data[0], &data[1], 2); } -uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom) +uint16_t mcp4725_get_raw_output(i2c_dev_t *dev, bool eeprom) { uint8_t buf[5]; read_data(dev, buf, eeprom ? 5 : 3); @@ -53,7 +53,7 @@ uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom) : ((uint16_t)buf[0] << 4) | (buf[1] >> 4); } -void mcp4725_set_raw_output(i2c_dev_t* dev, uint16_t value, bool eeprom) +void mcp4725_set_raw_output(i2c_dev_t *dev, uint16_t value, bool eeprom) { uint8_t data[] = { (eeprom ? CMD_EEPROM : CMD_DAC), diff --git a/extras/mcp4725/mcp4725.h b/extras/mcp4725/mcp4725.h index edb29de..6e69601 100644 --- a/extras/mcp4725/mcp4725.h +++ b/extras/mcp4725/mcp4725.h @@ -42,7 +42,7 @@ typedef enum * @param addr Device address * @return true when EEPROM is busy */ -bool mcp4725_eeprom_busy(i2c_dev_t* dev); +bool mcp4725_eeprom_busy(i2c_dev_t *dev); /** * Get power mode @@ -50,7 +50,7 @@ bool mcp4725_eeprom_busy(i2c_dev_t* dev); * @param eeprom Read power mode from EEPROM if true * @return Power mode */ -mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom); +mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t *dev, bool eeprom); /** * Set power mode @@ -58,7 +58,7 @@ mcp4725_power_mode_t mcp4725_get_power_mode(i2c_dev_t* dev, bool eeprom); * @param mode Power mode * @param eeprom Store mode to device EEPROM if true */ -void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eeprom); +void mcp4725_set_power_mode(i2c_dev_t *dev, mcp4725_power_mode_t mode, bool eeprom); /** * Get current DAC value @@ -66,7 +66,7 @@ void mcp4725_set_power_mode(i2c_dev_t* dev, mcp4725_power_mode_t mode, bool eepr * @param eeprom Read value from device EEPROM if true * @return Raw output value, 0..4095 */ -uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom); +uint16_t mcp4725_get_raw_output(i2c_dev_t *dev, bool eeprom); /** * Set DAC output value @@ -74,7 +74,7 @@ uint16_t mcp4725_get_raw_output(i2c_dev_t* dev, bool eeprom); * @param value Raw output value, 0..4095 * @param eeprom Store value to device EEPROM if true */ -void mcp4725_set_raw_output(i2c_dev_t* dev, uint16_t value, bool eeprom); +void mcp4725_set_raw_output(i2c_dev_t *dev, uint16_t value, bool eeprom); /** * Get current DAC output voltage @@ -83,7 +83,7 @@ void mcp4725_set_raw_output(i2c_dev_t* dev, uint16_t value, bool eeprom); * @param eeprom Read voltage from device EEPROM if true * @return Current output voltage, volts */ -inline float mcp4725_get_voltage(i2c_dev_t* dev, float vdd, bool eeprom) +inline float mcp4725_get_voltage(i2c_dev_t *dev, float vdd, bool eeprom) { return vdd / MCP4725_MAX_VALUE * mcp4725_get_raw_output(dev, eeprom); } @@ -95,7 +95,7 @@ inline float mcp4725_get_voltage(i2c_dev_t* dev, float vdd, bool eeprom) * @param value Output value, volts * @param eeprom Store value to device EEPROM if true */ -inline void mcp4725_set_voltage(i2c_dev_t* dev, float vdd, float value, bool eeprom) +inline void mcp4725_set_voltage(i2c_dev_t *dev, float vdd, float value, bool eeprom) { mcp4725_set_raw_output(dev, MCP4725_MAX_VALUE / vdd * value, eeprom); } diff --git a/extras/ms561101ba03/ms561101ba03.c b/extras/ms561101ba03/ms561101ba03.c index d88f488..a6f350e 100644 --- a/extras/ms561101ba03/ms561101ba03.c +++ b/extras/ms561101ba03/ms561101ba03.c @@ -25,7 +25,7 @@ */ #define CONVERSION_TIME 20 / portTICK_PERIOD_MS // milliseconds -static inline int reset(i2c_dev_t* i2c_dev) +static inline int reset(i2c_dev_t *i2c_dev) { uint8_t buf[1] = { RESET }; return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, NULL, buf, 1); @@ -34,33 +34,33 @@ static inline int reset(i2c_dev_t* i2c_dev) static inline bool read_prom(ms561101ba03_t *dev) { uint8_t tmp[2] = { 0, 0 }; - uint8_t reg = 0xA2 ; + uint8_t reg = 0xA2; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.sens = tmp[0] << 8 | tmp[1]; - reg = 0xA4 ; + reg = 0xA4; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.off = tmp[0] << 8 | tmp[1]; - reg = 0xA6 ; + reg = 0xA6; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tcs = tmp[0] << 8 | tmp[1]; - reg = 0xA8 ; + reg = 0xA8; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tco = tmp[0] << 8 | tmp[1]; - reg = 0xAA ; + reg = 0xAA; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.t_ref = tmp[0] << 8 | tmp[1]; - reg = 0xAC ; + reg = 0xAC; if (i2c_slave_read(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, tmp, 2)) return false; dev->config_data.tempsens = tmp[0] << 8 | tmp[1]; @@ -80,11 +80,11 @@ static inline int start_temperature_conversion(ms561101ba03_t *dev) //D2 return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr, NULL, &buf, 1); } -static inline bool read_adc(i2c_dev_t* i2c_dev, uint32_t *result) +static inline bool read_adc(i2c_dev_t *i2c_dev, uint32_t *result) { *result = 0; uint8_t tmp[3]; - uint8_t reg = 0x00 ; + uint8_t reg = 0x00; if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, ®, tmp, 3)) return false; diff --git a/extras/ms561101ba03/ms561101ba03.h b/extras/ms561101ba03/ms561101ba03.h index fb357e7..091f5f6 100644 --- a/extras/ms561101ba03/ms561101ba03.h +++ b/extras/ms561101ba03/ms561101ba03.h @@ -61,7 +61,7 @@ typedef struct */ typedef struct { - i2c_dev_t i2c_dev; //!< I2C device settings + i2c_dev_t i2c_dev; //!< I2C device settings ms561101ba03_osr_t osr; //!< Oversampling setting ms561101ba03_config_data_t config_data; //!< Device configuration, filled upon initalize ms561101ba03_result_t result; //!< Result, filled upon co diff --git a/extras/onewire/onewire.c b/extras/onewire/onewire.c index 159360b..5508684 100644 --- a/extras/onewire/onewire.c +++ b/extras/onewire/onewire.c @@ -108,7 +108,7 @@ bool onewire_write(int pin, uint8_t v) { bool onewire_write_bytes(int pin, const uint8_t *buf, size_t count) { size_t i; - for (i = 0 ; i < count ; i++) { + for (i = 0; i < count; i++) { if (!onewire_write(pin, buf[i])) { return false; } @@ -138,7 +138,7 @@ bool onewire_read_bytes(int pin, uint8_t *buf, size_t count) { size_t i; int b; - for (i = 0 ; i < count ; i++) { + for (i = 0; i < count; i++) { b = onewire_read(pin); if (b < 0) return false; buf[i] = b; @@ -434,7 +434,7 @@ uint16_t onewire_crc16(const uint8_t* input, size_t len, uint16_t crc_iv) { { 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 }; uint16_t i; - for (i = 0 ; i < len ; i++) { + for (i = 0; i < len; i++) { // Even though we're just copying a byte from the input, // we'll be doing 16-bit computation with it. uint16_t cdata = input[i]; diff --git a/extras/pca9685/pca9685.c b/extras/pca9685/pca9685.c index 6b04c31..b115170 100644 --- a/extras/pca9685/pca9685.c +++ b/extras/pca9685/pca9685.c @@ -58,13 +58,13 @@ inline static uint32_t round_div(uint32_t x, uint32_t y) return (x + y / 2) / y; } -inline static void write_reg(i2c_dev_t* dev, uint8_t reg, uint8_t val) +inline static void write_reg(i2c_dev_t *dev, uint8_t reg, uint8_t val) { if (i2c_slave_write(dev->bus, dev->addr, ®, &val, 1)) debug("Could not write 0x%02x to 0x%02x, bus %u, addr = 0x%02x", reg, val, dev->bus, dev->addr); } -inline static uint8_t read_reg(i2c_dev_t* dev, uint8_t reg) +inline static uint8_t read_reg(i2c_dev_t *dev, uint8_t reg) { uint8_t res = 0; if (i2c_slave_read(dev->bus, dev->addr, ®, &res, 1)) @@ -72,18 +72,18 @@ inline static uint8_t read_reg(i2c_dev_t* dev, uint8_t reg) return res; } -inline static void update_reg(i2c_dev_t* dev, uint8_t reg, uint8_t mask, uint8_t val) +inline static void update_reg(i2c_dev_t *dev, uint8_t reg, uint8_t mask, uint8_t val) { write_reg(dev, reg, (read_reg(dev, reg) & ~mask) | val); } -void pca9685_init(i2c_dev_t* dev) +void pca9685_init(i2c_dev_t *dev) { // Enable autoincrement update_reg(dev, REG_MODE1, MODE1_AI, MODE1_AI); } -bool pca9685_set_subaddr(i2c_dev_t* dev, uint8_t num, uint8_t subaddr, bool enable) +bool pca9685_set_subaddr(i2c_dev_t *dev, uint8_t num, uint8_t subaddr, bool enable) { if (num > MAX_SUBADDR) { @@ -99,19 +99,19 @@ bool pca9685_set_subaddr(i2c_dev_t* dev, uint8_t num, uint8_t subaddr, bool enab return true; } -bool pca9685_is_sleeping(i2c_dev_t* dev) +bool pca9685_is_sleeping(i2c_dev_t *dev) { return (read_reg(dev, REG_MODE1) & MODE1_SLEEP) != 0; } -void pca9685_sleep(i2c_dev_t* dev, bool sleep) +void pca9685_sleep(i2c_dev_t *dev, bool sleep) { update_reg(dev, REG_MODE1, MODE1_SLEEP, sleep ? MODE1_SLEEP : 0); if (!sleep) sdk_os_delay_us(WAKEUP_DELAY_US); } -void pca9685_restart(i2c_dev_t* dev) +void pca9685_restart(i2c_dev_t *dev) { uint8_t mode = read_reg(dev, REG_MODE1); if (mode & MODE1_RESTART) @@ -122,32 +122,32 @@ void pca9685_restart(i2c_dev_t* dev) write_reg(dev, REG_MODE1, (mode & ~MODE1_SLEEP) | MODE1_RESTART); } -bool pca9685_is_output_inverted(i2c_dev_t* dev) +bool pca9685_is_output_inverted(i2c_dev_t *dev) { return (read_reg(dev, REG_MODE2) & MODE2_INVRT) != 0; } -void pca9685_set_output_inverted(i2c_dev_t* dev, bool inverted) +void pca9685_set_output_inverted(i2c_dev_t *dev, bool inverted) { update_reg(dev, REG_MODE2, MODE2_INVRT, inverted ? MODE2_INVRT : 0); } -bool pca9685_get_output_open_drain(i2c_dev_t* dev) +bool pca9685_get_output_open_drain(i2c_dev_t *dev) { return (read_reg(dev, REG_MODE2) & MODE2_OUTDRV) == 0; } -void pca9685_set_output_open_drain(i2c_dev_t* dev, bool open_drain) +void pca9685_set_output_open_drain(i2c_dev_t *dev, bool open_drain) { update_reg(dev, REG_MODE2, MODE2_OUTDRV, open_drain ? 0 : MODE2_OUTDRV); } -uint8_t pca9685_get_prescaler(i2c_dev_t* dev) +uint8_t pca9685_get_prescaler(i2c_dev_t *dev) { return read_reg(dev, REG_PRE_SCALE); } -bool pca9685_set_prescaler(i2c_dev_t* dev, uint8_t prescaler) +bool pca9685_set_prescaler(i2c_dev_t *dev, uint8_t prescaler) { if (prescaler < MIN_PRESCALER) { @@ -161,12 +161,12 @@ bool pca9685_set_prescaler(i2c_dev_t* dev, uint8_t prescaler) return true; } -uint16_t pca9685_get_pwm_frequency(i2c_dev_t* dev) +uint16_t pca9685_get_pwm_frequency(i2c_dev_t *dev) { return INTERNAL_FREQ / ((uint32_t)4096 * (read_reg(dev, REG_PRE_SCALE) + 1)); } -bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq) +bool pca9685_set_pwm_frequency(i2c_dev_t *dev, uint16_t freq) { uint16_t prescaler = round_div(INTERNAL_FREQ, (uint32_t)4096 * freq) - 1; if (prescaler < MIN_PRESCALER || prescaler > MAX_PRESCALER) @@ -178,7 +178,7 @@ bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq) return pca9685_set_prescaler(dev, prescaler); } -void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val) +void pca9685_set_pwm_value(i2c_dev_t *dev, uint8_t channel, uint16_t val) { uint8_t reg = channel > MAX_CHANNEL ? REG_ALL_LED : REG_LED_N(channel); @@ -200,7 +200,7 @@ void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val) } } -bool pca9685_set_pwm_values(i2c_dev_t* dev, uint8_t first_ch, uint8_t channels, const uint16_t *values) +bool pca9685_set_pwm_values(i2c_dev_t *dev, uint8_t first_ch, uint8_t channels, const uint16_t *values) { if (channels == 0 || first_ch + channels - 1 > MAX_CHANNEL) { diff --git a/extras/pca9685/pca9685.h b/extras/pca9685/pca9685.h index a92b964..94b877f 100644 --- a/extras/pca9685/pca9685.h +++ b/extras/pca9685/pca9685.h @@ -23,7 +23,7 @@ extern "C" * Init device * @param addr Device address */ -void pca9685_init(i2c_dev_t* dev); +void pca9685_init(i2c_dev_t *dev); /** * Setup device subaddress (see section 7.3.6 if the datasheet) @@ -33,62 +33,62 @@ void pca9685_init(i2c_dev_t* dev); * @param enable True to enable subaddress, false to disable * @return False if error occured */ -bool pca9685_set_subaddr(i2c_dev_t* dev, uint8_t num, uint8_t subaddr, bool enable); +bool pca9685_set_subaddr(i2c_dev_t *dev, uint8_t num, uint8_t subaddr, bool enable); /** * Restart device (see section 7.3.1.1 of the datasheet) * @param addr Device address */ -void pca9685_restart(i2c_dev_t* dev); +void pca9685_restart(i2c_dev_t *dev); /** * Check if device is in sleep mode * @param addr Device address * @return True if device is sleeping */ -bool pca9685_is_sleeping(i2c_dev_t* dev); +bool pca9685_is_sleeping(i2c_dev_t *dev); /** * Switch device to low-power mode or wake it up. * @param addr Device address * @param sleep True for sleep mode, false for wake up */ -void pca9685_sleep(i2c_dev_t* dev, bool sleep); +void pca9685_sleep(i2c_dev_t *dev, bool sleep); /** * Get logic inversion of the outputs * @param addr Device address * @return True if outputs are inverted, false otherwise */ -bool pca9685_is_output_inverted(i2c_dev_t* dev); +bool pca9685_is_output_inverted(i2c_dev_t *dev); /** * Logically invert outputs (see section 7.7 of the datasheet) * @param addr Device address * @param inverted True for inverted outputs */ -void pca9685_set_output_inverted(i2c_dev_t* dev, bool inverted); +void pca9685_set_output_inverted(i2c_dev_t *dev, bool inverted); /** * Get outputs mode * @param addr Device address * @return True if outputs are in open drain mode */ -bool pca9685_get_output_open_drain(i2c_dev_t* dev); +bool pca9685_get_output_open_drain(i2c_dev_t *dev); /** * Set outputs mode * @param addr Device address * @param open_drain True to set open drain mode, false to normal mode */ -void pca9685_set_output_open_drain(i2c_dev_t* dev, bool open_drain); +void pca9685_set_output_open_drain(i2c_dev_t *dev, bool open_drain); /** * Get current PWM frequency prescaler. * @param addr Device address * @return Frequency prescaler */ -uint8_t pca9685_get_prescaler(i2c_dev_t* dev); +uint8_t pca9685_get_prescaler(i2c_dev_t *dev); /** * Set PWM frequency prescaler. @@ -96,14 +96,14 @@ uint8_t pca9685_get_prescaler(i2c_dev_t* dev); * @param prescaler Prescaler value * @return False if error occured */ -bool pca9685_set_prescaler(i2c_dev_t* dev, uint8_t prescaler); +bool pca9685_set_prescaler(i2c_dev_t *dev, uint8_t prescaler); /** * Get current PWM frequency * @param addr Device address * @return PWM frequency, Hz */ -uint16_t pca9685_get_pwm_frequency(i2c_dev_t* dev); +uint16_t pca9685_get_pwm_frequency(i2c_dev_t *dev); /** * Set PWM frequency @@ -111,7 +111,7 @@ uint16_t pca9685_get_pwm_frequency(i2c_dev_t* dev); * @param freq PWM frequency, Hz * @return False if error occured */ -bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq); +bool pca9685_set_pwm_frequency(i2c_dev_t *dev, uint16_t freq); /** * Set PWM value on output channel @@ -119,7 +119,7 @@ bool pca9685_set_pwm_frequency(i2c_dev_t* dev, uint16_t freq); * @param channel Channel number, 0..15 or >15 for all channels * @param val PWM value, 0..4096 */ -void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val); +void pca9685_set_pwm_value(i2c_dev_t *dev, uint8_t channel, uint16_t val); /** * Set PWM values on output channels @@ -129,7 +129,7 @@ void pca9685_set_pwm_value(i2c_dev_t* dev, uint8_t channel, uint16_t val); * @param values Array of the channel values, each 0..4096 * @return False if error occured */ -bool pca9685_set_pwm_values(i2c_dev_t* dev, uint8_t first_ch, uint8_t channels, const uint16_t *values); +bool pca9685_set_pwm_values(i2c_dev_t *dev, uint8_t first_ch, uint8_t channels, const uint16_t *values); #ifdef __cplusplus } diff --git a/extras/pcf8574/pcf8574.c b/extras/pcf8574/pcf8574.c index ff9a92c..f3e1c84 100644 --- a/extras/pcf8574/pcf8574.c +++ b/extras/pcf8574/pcf8574.c @@ -1,14 +1,14 @@ #include "pcf8574.h" -uint8_t pcf8574_port_read(i2c_dev_t* dev) +uint8_t pcf8574_port_read(i2c_dev_t *dev) { uint8_t res; if (i2c_slave_read(dev->bus, dev->addr, NULL, &res, 1)) - return 0; + return 0; return res; } -size_t pcf8574_port_read_buf(i2c_dev_t* dev, void *buf, size_t len) +size_t pcf8574_port_read_buf(i2c_dev_t *dev, void *buf, size_t len) { if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; @@ -18,7 +18,7 @@ size_t pcf8574_port_read_buf(i2c_dev_t* dev, void *buf, size_t len) return len; } -size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len) +size_t pcf8574_port_write_buf(const i2c_dev_t *dev, void *buf, size_t len) { if (!len || !buf) return 0; uint8_t *_buf = (uint8_t *)buf; @@ -28,19 +28,19 @@ size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len) return len; } -void pcf8574_port_write(const i2c_dev_t* dev, uint8_t value) +void pcf8574_port_write(const i2c_dev_t *dev, uint8_t value) { i2c_slave_write(dev->bus, dev->addr, NULL, &value, 1); } -bool pcf8574_gpio_read(i2c_dev_t* dev, uint8_t num) +bool pcf8574_gpio_read(i2c_dev_t *dev, uint8_t num) { return (bool)((pcf8574_port_read(dev) >> num) & 1); } -void pcf8574_gpio_write(i2c_dev_t* dev, uint8_t num, bool value) +void pcf8574_gpio_write(i2c_dev_t *dev, uint8_t num, bool value) { uint8_t bit = (uint8_t)value << num; uint8_t mask = ~(1 << num); - pcf8574_port_write (dev, (pcf8574_port_read(dev) & mask) | bit); + pcf8574_port_write(dev, (pcf8574_port_read(dev) & mask) | bit); } diff --git a/extras/pcf8574/pcf8574.h b/extras/pcf8574/pcf8574.h index 84b6ce0..4e2fed0 100644 --- a/extras/pcf8574/pcf8574.h +++ b/extras/pcf8574/pcf8574.h @@ -20,7 +20,7 @@ extern "C" * \param addr I2C register address (0b0100 for PCF8574) * \return 8-bit GPIO port value */ -uint8_t pcf8574_port_read(i2c_dev_t* dev); +uint8_t pcf8574_port_read(i2c_dev_t *dev); /** * \brief Continiously read GPIO port values to buffer @@ -29,14 +29,14 @@ uint8_t pcf8574_port_read(i2c_dev_t* dev); * @param len Buffer length * @return Number of bytes read */ -size_t pcf8574_port_read_buf(i2c_dev_t* dev, void *buf, size_t len); +size_t pcf8574_port_read_buf(i2c_dev_t *dev, void *buf, size_t len); /** * \brief Write value to GPIO port * \param addr I2C register address (0b0100 for PCF8574) * \param value GPIO port value */ -void pcf8574_port_write(const i2c_dev_t* dev, uint8_t value); +void pcf8574_port_write(const i2c_dev_t *dev, uint8_t value); /** * \brief Continiously write GPIO values to GPIO port @@ -45,7 +45,7 @@ void pcf8574_port_write(const i2c_dev_t* dev, uint8_t value); * @param len Buffer length * @return Number of bytes written */ -size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len); +size_t pcf8574_port_write_buf(const i2c_dev_t *dev, void *buf, size_t len); /** * \brief Read input value of a GPIO pin @@ -53,7 +53,7 @@ size_t pcf8574_port_write_buf(const i2c_dev_t* dev, void *buf, size_t len); * \param num pin number (0..7) * \return GPIO pin value */ -bool pcf8574_gpio_read(i2c_dev_t* dev, uint8_t num); +bool pcf8574_gpio_read(i2c_dev_t *dev, uint8_t num); /** * \brief Set GPIO pin output @@ -63,7 +63,7 @@ bool pcf8574_gpio_read(i2c_dev_t* dev, uint8_t num); * \param num pin number (0..7) * \param value true for high level */ -void pcf8574_gpio_write(i2c_dev_t* dev, uint8_t num, bool value); +void pcf8574_gpio_write(i2c_dev_t *dev, uint8_t num, bool value); #ifdef __cplusplus } diff --git a/extras/ssd1306/README.md b/extras/ssd1306/README.md index f3a06e9..50d29fc 100644 --- a/extras/ssd1306/README.md +++ b/extras/ssd1306/README.md @@ -1,4 +1,4 @@ -# Driver for SSD1306 OLED LCD +# Driver for SSD1306/SH1106 OLED LCD This driver is written for usage with the ESP8266 and FreeRTOS ([esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos)). @@ -11,34 +11,38 @@ This driver is written for usage with the ESP8266 and FreeRTOS ([esp-open-rtos]( ## Supported connection interfaces -Currently supported two of them: I2C and SPI4. +I2C, SPI3 and SPI4. ## Usage If Reset pin is accesible in your display module, connect it to the RESET pin of ESP8266. -If you don't do this, display RAM may be glitchy after the power lost/restore. +If you don't, display RAM could be glitchy after the power cycle. ### I2C protocol -Before using the SSD1306 LCD module the function `i2c_init(SCL_PIN, SDA_PIN)` needs to be -called to setup the I2C interface and then you must call `ssd1306_init()`. +Before using the OLED module you need to call the function `i2c_init(BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K)` +to configure the I2C interface and then you should call `ssd1306_init()`. #### Example ```C #define SCL_PIN 5 #define SDA_PIN 4 +#define I2C_BUS 0 ... static const ssd1306_t device = { - .protocol = SSD1306_PROTO_I2C, - .width = 128, - .height = 64 + .protocol = SSD1306_PROTO_I2C, + .screen = SSD1306_SCREEN, // or SH1106_SCREEN + .i2c_dev.bus = I2C_BUS, + .i2c_dev.addr = SSD1306_I2C_ADDR_0, + .width = 128, + .height = 64 }; ... -i2c_init(SCL_PIN, SDA_PIN); +i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K); if (ssd1306_init(&device)) { // An error occured, while performing SSD1306 init (E.g device not found etc.) @@ -47,14 +51,15 @@ if (ssd1306_init(&device)) { // rest of the code ``` -### SPI4 protocol +### SPI3 and SPI4 protocols -This protocol MUCH faster than I2C but uses 2 additional GPIO pins (beside of HSPI CLK -and HSPI MOSI): Data/Command pin and Chip Select pin. +These protocols are MUCH faster than I2C, but use 2 additional GPIO pins +(besides the **HSPI CLK** and **HSPI MOSI**): **Chip Select** and **Data/Command** (in case of SPI4). No additional function calls are required before `ssd1306_init()`. -#### Example + +#### SPI4 Example ```C #define CS_PIN 5 @@ -64,10 +69,35 @@ No additional function calls are required before `ssd1306_init()`. static const ssd1306_t device = { .protocol = SSD1306_PROTO_SPI4, - .cs_pin = CS_PIN, - .dc_pin = DC_PIN, - .width = 128, - .height = 64 + .screen = SSD1306_SCREEN, + .cs_pin = CS_PIN, + .dc_pin = DC_PIN, + .width = 128, + .height = 64 +}; + +... + +if (ssd1306_init(&device)) { +// An error occured, while performing SSD1306 init +} + +// rest of the code +``` + +#### SPI3 example +```C + +#define CS_PIN 5 + +... + +static const ssd1306_t device = { + .protocol = SSD1306_PROTO_SPI3, + .screen = SSD1306_SCREEN, + .cs_pin = CS_PIN, + .width = 128, + .height = 64 }; ... diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index 372e867..6ce2c74 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -85,11 +85,10 @@ #define abs(x) ((x)<0 ? -(x) : (x)) #define swap(x, y) do { typeof(x) temp##x##y = x; x = y; y = temp##x##y; } while (0) - #if (SSD1306_I2C_SUPPORT) static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len) { - return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr , ®, data, len); + return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr, ®, data, len); } #endif @@ -120,7 +119,7 @@ int ssd1306_command(const ssd1306_t *dev, uint8_t cmd) #if (SSD1306_SPI3_SUPPORT) case SSD1306_PROTO_SPI3: gpio_write(dev->cs_pin, false); - spi_set_command(SPI_BUS,1,0); // command mode + spi_set_command(SPI_BUS, 1, 0); // command mode spi_transfer_8(SPI_BUS, cmd); spi_clear_command(SPI_BUS); gpio_write(dev->cs_pin, true); @@ -135,7 +134,7 @@ int ssd1306_command(const ssd1306_t *dev, uint8_t cmd) } /* Perform default init routine according -* to SSD1306 datasheet from adafruit.com */ + * to SSD1306 datasheet from adafruit.com */ int ssd1306_init(const ssd1306_t *dev) { uint8_t pin_cfg; @@ -221,10 +220,12 @@ int ssd1306_init(const ssd1306_t *dev) return -EIO; } -static int sh1106_go_coordinate(const ssd1306_t *dev, uint8_t x, uint8_t y) { - if (x >= dev->width || y >= (dev->height/8)) return -EINVAL; +static int sh1106_go_coordinate(const ssd1306_t *dev, uint8_t x, uint8_t y) +{ + if (x >= dev->width || y >= (dev->height / 8)) + return -EINVAL; int err = 0; - x+=2 ; //offset : panel is 128 ; RAM is 132 for sh1106 + x += 2; //offset : panel is 128 ; RAM is 132 for sh1106 if ((err = ssd1306_command(dev, SH1106_SET_PAGE_ADDRESS + y))) // Set row return err; if ((err = ssd1306_command(dev, SH1106_SET_LOW_COL_ADDR | (x & 0xf)))) // Set lower column address @@ -237,11 +238,10 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) uint16_t i; uint8_t j; #if (SSD1306_I2C_SUPPORT) - uint8_t tab[16] = { 0 } ; + uint8_t tab[16] = { 0 }; #endif size_t len = dev->width * dev->height / 8; - if(dev->screen == SSD1306_SCREEN) - { + if (dev->screen == SSD1306_SCREEN) { ssd1306_set_column_addr(dev, 0, dev->width - 1); ssd1306_set_page_addr(dev, 0, dev->height / 8 - 1); } @@ -249,35 +249,33 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) switch (dev->protocol) { #if (SSD1306_I2C_SUPPORT) case SSD1306_PROTO_I2C: - for (i = 0; i < len; i++) - { - if(dev->screen == SH1106_SCREEN && i%dev->width == 0) sh1106_go_coordinate(dev,0,i/dev->width); + for (i = 0; i < len; i++) { + if (dev->screen == SH1106_SCREEN && i % dev->width == 0) + sh1106_go_coordinate(dev, 0, i / dev->width); i2c_send(dev, 0x40, buf ? &buf[i] : tab, 16); - i+=15 ; + i += 15; } break; #endif #if (SSD1306_SPI4_SUPPORT) case SSD1306_PROTO_SPI4: gpio_write(dev->cs_pin, false); - if(dev->screen == SSD1306_SCREEN) - { + if (dev->screen == SSD1306_SCREEN) { gpio_write(dev->dc_pin, true); // data mode if (buf) spi_transfer(SPI_BUS, buf, NULL, len, SPI_8BIT); else - spi_repeat_send_8(SPI_BUS,0,len); + spi_repeat_send_8(SPI_BUS, 0, len); } - else - { - for (i = 0 ; i < (dev->height/8) ; i++) { - sh1106_go_coordinate(dev,0,i); + else { + for (i = 0; i < (dev->height / 8); i++) { + sh1106_go_coordinate(dev, 0, i); gpio_write(dev->dc_pin, true); // data mode gpio_write(dev->cs_pin, false); if (buf) - spi_transfer(SPI_BUS, &buf[dev->width*i], NULL, dev->width, SPI_8BIT); + spi_transfer(SPI_BUS, &buf[dev->width * i], NULL, dev->width, SPI_8BIT); else - spi_repeat_send_8(SPI_BUS,0,dev->width); + spi_repeat_send_8(SPI_BUS, 0, dev->width); } } gpio_write(dev->cs_pin, true); @@ -286,36 +284,30 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) #if (SSD1306_SPI3_SUPPORT) case SSD1306_PROTO_SPI3: gpio_write(dev->cs_pin, false); - if(dev->screen == SSD1306_SCREEN) - { - spi_set_command(SPI_BUS,1,1); // data mode - if (buf) - { - for (i = 0; i < len; i++) - { + if (dev->screen == SSD1306_SCREEN) { + spi_set_command(SPI_BUS, 1, 1); // data mode + if (buf) { + for (i = 0; i < len; i++) { spi_transfer(SPI_BUS, &buf[i], NULL, 1, SPI_8BIT); } } - else - { - for (i = 0; i < len; i++) - { + else { + for (i = 0; i < len; i++) { spi_transfer_8(SPI_BUS, 0); } } } - else - { - for (i = 0 ; i < (dev->height/8) ; i++) { - sh1106_go_coordinate(dev,0,i); - spi_set_command(SPI_BUS,1,1); // data mode + else { + for (i = 0; i < (dev->height / 8); i++) { + sh1106_go_coordinate(dev, 0, i); + spi_set_command(SPI_BUS, 1, 1); // data mode gpio_write(dev->cs_pin, false); if (buf) - for (j = 0 ; j < dev->width ; j++) - spi_transfer_8(SPI_BUS, buf[dev->width*i+j]); + for (j = 0; j < dev->width; j++) + spi_transfer_8(SPI_BUS, buf[dev->width * i + j]); else - for (j = 0 ; j < dev->width ; j++) - spi_transfer_8(SPI_BUS, buf[dev->width*i+j]); + for (j = 0; j < dev->width; j++) + spi_transfer_8(SPI_BUS, buf[dev->width * i + j]); } } spi_clear_command(SPI_BUS); @@ -357,41 +349,38 @@ int ssd1306_set_display_offset(const ssd1306_t *dev, uint8_t offset) int sh1106_set_charge_pump_voltage(const ssd1306_t *dev, sh1106_voltage_t select) { - if (dev->screen == SSD1306_SCREEN) - { + if (dev->screen == SSD1306_SCREEN) { debug("Unsupported screen type"); - return -ENOTSUP ; + return -ENOTSUP; } return ssd1306_command(dev, select | SH1106_CHARGE_PUMP_VALUE); } - int ssd1306_set_charge_pump_enabled(const ssd1306_t *dev, bool enabled) { int err = 0; switch (dev->screen) { - case SH1106_SCREEN: - if ((err = ssd1306_command(dev, SH1106_SET_CHARGE_PUMP))) - return err; - return ssd1306_command(dev, enabled ? SH1106_CHARGE_PUMP_EN : SH1106_CHARGE_PUMP_DIS); - break; - case SSD1306_SCREEN: - if ((err = ssd1306_command(dev, SSD1306_SET_CHARGE_PUMP))) - return err; - return ssd1306_command(dev, enabled ? SSD1306_CHARGE_PUMP_EN : SSD1306_CHARGE_PUMP_DIS); - break; - default: - debug("Unsupported screen type"); - return -ENOTSUP; + case SH1106_SCREEN: + if ((err = ssd1306_command(dev, SH1106_SET_CHARGE_PUMP))) + return err; + return ssd1306_command(dev, enabled ? SH1106_CHARGE_PUMP_EN : SH1106_CHARGE_PUMP_DIS); + break; + case SSD1306_SCREEN: + if ((err = ssd1306_command(dev, SSD1306_SET_CHARGE_PUMP))) + return err; + return ssd1306_command(dev, enabled ? SSD1306_CHARGE_PUMP_EN : SSD1306_CHARGE_PUMP_DIS); + break; + default: + debug("Unsupported screen type"); + return -ENOTSUP; } } int ssd1306_set_mem_addr_mode(const ssd1306_t *dev, ssd1306_mem_addr_mode_t mode) { - if (dev->screen == SH1106_SCREEN) - { + if (dev->screen == SH1106_SCREEN) { debug("Unsupported screen type"); - return -ENOTSUP ; + return -ENOTSUP; } int err = 0; if ((err = ssd1306_command(dev, SSD1306_SET_MEM_ADDR_MODE))) @@ -498,7 +487,7 @@ int ssd1306_set_deseltct_lvl(const ssd1306_t *dev, uint8_t lvl) int ssd1306_set_whole_display_lighting(const ssd1306_t *dev, bool light) { - return ssd1306_command(dev, light ? SSD1306_SET_ENTIRE_DISP_ON : SSD1306_SET_ENTIRE_DISP_OFF); + return ssd1306_command(dev, light ? SSD1306_SET_ENTIRE_DISP_ON : SSD1306_SET_ENTIRE_DISP_OFF); } /* one byte of xbm - 8 dots in line of picture source @@ -510,9 +499,9 @@ int ssd1306_load_xbm(const ssd1306_t *dev, uint8_t *xbm, uint8_t *fb) int row = 0; int column = 0; - for (row = 0; row < dev->height; row ++) { + for (row = 0; row < dev->height; row++) { for (column = 0; column < dev->width / 8; column++) { - uint16_t xbm_offset = row * 16 + column; + uint16_t xbm_offset = row * 16 + column; for (bit = 0; bit < 8; bit++) { if (*(xbm + xbm_offset) & 1 << bit) { *(fb + dev->width * (row / 8) + column * 8 + bit) |= 1 << row % 8; @@ -532,19 +521,18 @@ int ssd1306_draw_pixel(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ss return -EINVAL; index = x + (y / 8) * dev->width; - switch (color) - { - case OLED_COLOR_WHITE: - fb[index] |= (1 << (y & 7)); - break; - case OLED_COLOR_BLACK: - fb[index] &= ~(1 << (y & 7)); - break; - case OLED_COLOR_INVERT: - fb[index] ^= (1 << (y & 7)); - break; - default: - break; + switch (color) { + case OLED_COLOR_WHITE: + fb[index] |= (1 << (y & 7)); + break; + case OLED_COLOR_BLACK: + fb[index] &= ~(1 << (y & 7)); + break; + case OLED_COLOR_INVERT: + fb[index] ^= (1 << (y & 7)); + break; + default: + break; } return 0; } @@ -565,32 +553,28 @@ int ssd1306_draw_hline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui t = w; index = x + (y / 8) * dev->width; mask = 1 << (y & 7); - switch (color) - { - case OLED_COLOR_WHITE: - while (t--) - { - fb[index] |= mask; - ++index; - } - break; - case OLED_COLOR_BLACK: - mask = ~mask; - while (t--) - { - fb[index] &= mask; - ++index; - } - break; - case OLED_COLOR_INVERT: - while (t--) - { - fb[index] ^= mask; - ++index; - } - break; - default: - break; + switch (color) { + case OLED_COLOR_WHITE: + while (t--) { + fb[index] |= mask; + ++index; + } + break; + case OLED_COLOR_BLACK: + mask = ~mask; + while (t--) { + fb[index] &= mask; + ++index; + } + break; + case OLED_COLOR_INVERT: + while (t--) { + fb[index] ^= mask; + ++index; + } + break; + default: + break; } return 0; } @@ -619,19 +603,18 @@ int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui mask = premask[mod]; if (t < mod) mask &= (0xFF >> (mod - t)); - switch (color) - { - case OLED_COLOR_WHITE: - fb[index] |= mask; - break; - case OLED_COLOR_BLACK: - fb[index] &= ~mask; - break; - case OLED_COLOR_INVERT: - fb[index] ^= mask; - break; - default: - break; + switch (color) { + case OLED_COLOR_WHITE: + fb[index] |= mask; + break; + case OLED_COLOR_BLACK: + fb[index] &= ~mask; + break; + case OLED_COLOR_INVERT: + fb[index] ^= mask; + break; + default: + break; } if (t < mod) @@ -640,35 +623,31 @@ int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui index += dev->width; } if (t >= 8) // byte aligned line at middle - { - switch (color) - { - case OLED_COLOR_WHITE: - do { - fb[index] = 0xff; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - case OLED_COLOR_BLACK: - do - { - fb[index] = 0x00; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - case OLED_COLOR_INVERT: - do - { - fb[index] = ~fb[index]; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - default: - break; + switch (color) { + case OLED_COLOR_WHITE: + do { + fb[index] = 0xff; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + case OLED_COLOR_BLACK: + do { + fb[index] = 0x00; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + case OLED_COLOR_INVERT: + do { + fb[index] = ~fb[index]; + index += dev->width; + t -= 8; + } while (t >= 8); + break; + default: + break; } } if (t) // partial line at bottom @@ -676,19 +655,18 @@ int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui mod = t & 7; static const uint8_t postmask[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; mask = postmask[mod]; - switch (color) - { - case OLED_COLOR_WHITE: - fb[index] |= mask; - break; - case OLED_COLOR_BLACK: - fb[index] &= ~mask; - break; - case OLED_COLOR_INVERT: - fb[index] ^= mask; - break; - default: - break; + switch (color) { + case OLED_COLOR_WHITE: + fb[index] |= mask; + break; + case OLED_COLOR_BLACK: + fb[index] &= ~mask; + break; + case OLED_COLOR_INVERT: + fb[index] ^= mask; + break; + default: + break; } } return 0; @@ -706,7 +684,6 @@ int ssd1306_draw_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y return ssd1306_draw_vline(dev, fb, x + w - 1, y, h, color); } - int ssd1306_fill_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color) { // Can be optimized? @@ -738,8 +715,7 @@ int ssd1306_draw_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, if ((err = ssd1306_draw_pixel(dev, fb, x0, y0 + r, color))) return err; - while (x >= y) - { + while (x >= y) { if ((err = ssd1306_draw_pixel(dev, fb, x0 + x, y0 + y, color))) return err; if ((err = ssd1306_draw_pixel(dev, fb, x0 - x, y0 + y, color))) @@ -748,8 +724,7 @@ int ssd1306_draw_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, return err; if ((err = ssd1306_draw_pixel(dev, fb, x0 - x, y0 - y, color))) return err; - if (x != y) - { + if (x != y) { /* Otherwise the 4 drawings below are the same as above, causing * problem when color is INVERT */ @@ -788,14 +763,12 @@ int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, if ((err = ssd1306_draw_vline(dev, fb, x0, y0 - r, 2 * r + 1, color))) // Center vertical line return err; - while (y >= x) - { + while (y >= x) { if ((err = ssd1306_draw_vline(dev, fb, x0 - x, y0 - y, 2 * y + 1, color))) return err; if ((err = ssd1306_draw_vline(dev, fb, x0 + x, y0 - y, 2 * y + 1, color))) return err; - if (color != OLED_COLOR_INVERT) - { + if (color != OLED_COLOR_INVERT) { if ((err = ssd1306_draw_vline(dev, fb, x0 - y, y0 - x, 2 * x + 1, color))) return err; if ((err = ssd1306_draw_vline(dev, fb, x0 + y, y0 - x, 2 * x + 1, color))) @@ -811,8 +784,7 @@ int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, } } - if (color == OLED_COLOR_INVERT) - { + if (color == OLED_COLOR_INVERT) { x1 = x; // Save where we stopped y = 1; @@ -822,15 +794,14 @@ int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, return err; if ((err = ssd1306_draw_hline(dev, fb, x0 - r, y0, r - x1 + 1, color))) return err; - while (x >= y) - { + while (x >= y) { if ((err = ssd1306_draw_hline(dev, fb, x0 + x1, y0 - y, x - x1 + 1, color))) return err; if ((err = ssd1306_draw_hline(dev, fb, x0 + x1, y0 + y, x - x1 + 1, color))) return err; - if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 - y, x - x1 + 1, color))) + if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 - y, x - x1 + 1, color))) return err; - if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 + y, x - x1 + 1, color))) + if ((err = ssd1306_draw_hline(dev, fb, x0 - x, y0 + y, x - x1 + 1, color))) return err; ++y; if (radius_err < 0) { @@ -845,59 +816,59 @@ int ssd1306_fill_circle(const ssd1306_t *dev, uint8_t *fb, int8_t x0, int8_t y0, return 0; } -int ssd1306_draw_line(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, - int16_t x1, int16_t y1, ssd1306_color_t color) +int ssd1306_draw_line(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, ssd1306_color_t color) { if ((x0 >= dev->width) || (x0 < 0) || (y0 >= dev->height) || (y0 < 0)) return -EINVAL; if ((x1 >= dev->width) || (x1 < 0) || (y1 >= dev->height) || (y1 < 0)) return -EINVAL; - int err; - bool steep = abs(y1 - y0) > abs(x1 - x0); - if (steep) { - swap(x0, y0); - swap(x1, y1); - } + int err; + bool steep = abs(y1 - y0) > abs(x1 - x0); + if (steep) { + swap(x0, y0); + swap(x1, y1); + } - if (x0 > x1) { - swap(x0, x1); - swap(y0, y1); - } + if (x0 > x1) { + swap(x0, x1); + swap(y0, y1); + } - int16_t dx, dy; - dx = x1 - x0; - dy = abs(y1 - y0); + int16_t dx, dy; + dx = x1 - x0; + dy = abs(y1 - y0); - int16_t errx = dx / 2; - int16_t ystep; + int16_t errx = dx / 2; + int16_t ystep; - if (y0 < y1) { - ystep = 1; - } else { - ystep = -1; - } + if (y0 < y1) { + ystep = 1; + } + else { + ystep = -1; + } for (; x0 <= x1; x0++) { - if (steep) { - if ((err = ssd1306_draw_pixel(dev, fb, y0, x0, color))) - return err; - } else { - if ((err = ssd1306_draw_pixel(dev, fb, x0, y0, color))) - return err; - } - errx -= dy; - if (errx < 0) { - y0 += ystep; - errx += dx; - } - } - return 0; + if (steep) { + if ((err = ssd1306_draw_pixel(dev, fb, y0, x0, color))) + return err; + } + else { + if ((err = ssd1306_draw_pixel(dev, fb, x0, y0, color))) + return err; + } + errx -= dy; + if (errx < 0) { + y0 += ystep; + errx += dx; + } + } + return 0; } -int ssd1306_draw_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, - int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, - ssd1306_color_t color) +int ssd1306_draw_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, + ssd1306_color_t color) { int err; if ((err = ssd1306_draw_line(dev, fb, x0, y0, x1, y1, color))) @@ -907,25 +878,24 @@ int ssd1306_draw_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, return ssd1306_draw_line(dev, fb, x2, y2, x0, y0, color); } -int ssd1306_fill_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, - int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, - ssd1306_color_t color) +int ssd1306_fill_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, + ssd1306_color_t color) { int16_t a, b, y, last; int err; // Sort coordinates by Y order (y2 >= y1 >= y0) if (y0 > y1) { - swap(y0, y1); swap(x0, x1); + swap(y0, y1);swap(x0, x1); } if (y1 > y2) { - swap(y2, y1); swap(x2, x1); + swap(y2, y1);swap(x2, x1); } if (y0 > y1) { - swap(y0, y1); swap(x0, x1); + swap(y0, y1);swap(x0, x1); } - if(y0 == y2) { // Handle awkward all-on-same-line case as its own thing + if (y0 == y2) { // Handle awkward all-on-same-line case as its own thing a = b = x0; if (x1 < a) a = x1; else if (x1 > b) b = x1; @@ -984,14 +954,13 @@ int ssd1306_fill_triangle(const ssd1306_t *dev, uint8_t *fb, int16_t x0, */ if (a > b) swap(a, b); if ((err = ssd1306_draw_hline(dev, fb, a, y, b - a + 1, color))) - return err; + return err; } return 0; } -int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, - const font_info_t *font, uint8_t x, uint8_t y, char c, - ssd1306_color_t foreground, ssd1306_color_t background) +int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char c, ssd1306_color_t foreground, + ssd1306_color_t background) { uint8_t i, j; const uint8_t *bitmap; @@ -1015,30 +984,29 @@ int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, err = ssd1306_draw_pixel(dev, fb, x + i, y + j, foreground); } else { - switch (background) - { - case OLED_COLOR_TRANSPARENT: - // Not drawing for transparent background - break; - case OLED_COLOR_WHITE: - case OLED_COLOR_BLACK: - err = ssd1306_draw_pixel(dev, fb, x + i, y + j, background); - break; - case OLED_COLOR_INVERT: - // I don't know why I need invert background - break; + switch (background) { + case OLED_COLOR_TRANSPARENT: + // Not drawing for transparent background + break; + case OLED_COLOR_WHITE: + case OLED_COLOR_BLACK: + err = ssd1306_draw_pixel(dev, fb, x + i, y + j, background); + break; + case OLED_COLOR_INVERT: + // I don't know why I need invert background + break; } } - if (err) return -ERANGE ; + if (err) + return -ERANGE; line = line << 1; } } return d->width; } -int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, - const font_info_t *font, uint8_t x, uint8_t y, char *str, - ssd1306_color_t foreground, ssd1306_color_t background) +int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char *str, + ssd1306_color_t foreground, ssd1306_color_t background) { uint8_t t = x; int err; @@ -1046,11 +1014,10 @@ int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, if (font == NULL || str == NULL) return 0; - while (*str) - { - if ((err = ssd1306_draw_char(dev, fb, font, x, y, *str, foreground, background)) < 0 ) + while (*str) { + if ((err = ssd1306_draw_char(dev, fb, font, x, y, *str, foreground, background)) < 0) return err; - x += err; + x += err; ++str; if (*str) x += font->c; @@ -1067,13 +1034,11 @@ int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uin { int err; - if (way) - { + if (way) { if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_LEFT))) return err; } - else - { + else { if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_RIGHT))) return err; } @@ -1089,7 +1054,7 @@ int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uin return -EIO; } -int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame) +int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame) { //this function dont work well if no vertical setting. if ((!dy) || (dy > 63)) @@ -1104,13 +1069,11 @@ int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t star if ((err = ssd1306_command(dev, dev->height))) return err; - if (way) - { + if (way) { if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_VER_LEFT))) return err; } - else - { + else { if ((err = ssd1306_command(dev, SSD1306_SCROLL_HOR_VER_RIGHT))) return err; } diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index 639517b..f79ed66 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -65,13 +65,16 @@ typedef enum typedef struct { ssd1306_protocol_t protocol; - ssd1306_screen_t screen ; - union { + ssd1306_screen_t screen; + union + { #if (SSD1306_I2C_SUPPORT) i2c_dev_t i2c_dev; //!< I2C devuce descriptor, used by SSD1306_PROTO_I2C #endif - uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 - } ; +#if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT) + uint8_t cs_pin; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 +#endif + }; #if (SSD1306_SPI4_SUPPORT) uint8_t dc_pin; //!< Data/Command GPIO pin, used by SSD1306_PROTO_SPI4 #endif @@ -520,7 +523,7 @@ int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uin * @param frame Time interval between each scroll * @return Non-zero if error occured */ -int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame); +int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame); #ifdef __cplusplus extern "C" diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index cc89021..d17c074 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -95,26 +95,33 @@ #define B8C 0x0000 // 0.000 * 2^LUX_SCALE #define M8C 0x0000 // 0.000 * 2^LUX_SCALE -static int write_register(i2c_dev_t* i2c_dev, uint8_t reg, uint8_t value) +#ifdef TSL2561_DEBUG +#include +#define debug(fmt, ...) printf("%s: " fmt "\n", "TSL2561", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + +static int write_register(i2c_dev_t *i2c_dev, uint8_t reg, uint8_t value) { reg = TSL2561_REG_COMMAND | reg; return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, ®, &value, 1); } -static uint8_t read_register(i2c_dev_t* i2c_dev, uint8_t reg) +static uint8_t read_register(i2c_dev_t *i2c_dev, uint8_t reg) { uint8_t data[1]; reg = TSL2561_REG_COMMAND | reg; if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, ®, data, 1)) { - printf("Error in tsl2561 read_register\n"); + debug("Error in tsl2561 read_register\n"); } return data[0]; } -static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) +static uint16_t read_register_16(i2c_dev_t *i2c_dev, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; @@ -122,7 +129,7 @@ static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) if (i2c_slave_read(i2c_dev->bus, i2c_dev->addr, &low_register_addr, data, 2)) { - printf("Error with i2c_slave_read in read_register_16\n"); + debug("Error with i2c_slave_read in read_register_16\n"); } value = ((uint16_t)data[1] << 8) | (data[0]); @@ -130,12 +137,12 @@ static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) return value; } -static int enable(i2c_dev_t* i2c_dev) +static int enable(i2c_dev_t *i2c_dev) { return write_register(i2c_dev, TSL2561_REG_CONTROL, TSL2561_ON); } -static int disable(i2c_dev_t* i2c_dev) +static int disable(i2c_dev_t *i2c_dev) { return write_register(i2c_dev, TSL2561_REG_CONTROL, TSL2561_OFF); } @@ -144,14 +151,14 @@ void tsl2561_init(tsl2561_t *device) { if (enable(&device->i2c_dev)) { - printf("Error initializing tsl2561\n"); + debug("Error initializing tsl2561\n"); } uint8_t control_reg = (read_register(&device->i2c_dev, TSL2561_REG_CONTROL) & TSL2561_ON); if (control_reg != TSL2561_ON) { - printf("Error initializing tsl2561, control register wasn't set to ON\n"); + debug("Error initializing tsl2561, control register wasn't set to ON\n"); } // Fetch the package type @@ -348,7 +355,7 @@ bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) break; default: - printf("Invalid package type in CalculateLux\n"); + debug("Invalid package type in CalculateLux\n"); b = 0; m = 0; success = false; diff --git a/extras/tsl4531/tsl4531.c b/extras/tsl4531/tsl4531.c index a15a0ee..cac7669 100644 --- a/extras/tsl4531/tsl4531.c +++ b/extras/tsl4531/tsl4531.c @@ -26,13 +26,13 @@ #define TSL4531_INTEGRATION_TIME_200MS 240 #define TSL4531_INTEGRATION_TIME_400MS 480 // Default -static int write_register(i2c_dev_t* i2c_dev, uint8_t reg, uint8_t value) +static int write_register(i2c_dev_t *i2c_dev, uint8_t reg, uint8_t value) { reg = TSL4531_REG_COMMAND | reg; return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, ®, &value, 1); } -static uint8_t read_register(i2c_dev_t* i2c_dev, uint8_t reg) +static uint8_t read_register(i2c_dev_t *i2c_dev, uint8_t reg) { uint8_t data[1]; reg = TSL4531_REG_COMMAND | reg; @@ -45,7 +45,7 @@ static uint8_t read_register(i2c_dev_t* i2c_dev, uint8_t reg) return data[0]; } -static uint16_t read_register_16(i2c_dev_t* i2c_dev, uint8_t low_register_addr) +static uint16_t read_register_16(i2c_dev_t *i2c_dev, uint8_t low_register_addr) { uint16_t value = 0; uint8_t data[2]; From ac6797e9165384ab2f1267edddf4625aeffd3a0d Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Mon, 23 Oct 2017 23:39:48 +0200 Subject: [PATCH 226/349] Driver for Sensirion SHT3x temperature and humidity sensor readded (#453) * Driver for Sensirion SHT3x sensor added This is a driver for Sensirion SHT3x temperature and humidity sensors connected via I2C. This commit is a rebasing and contains some interface changes based on the review from @ourairquality. * SHT3x driver changes Additional include to satisfy the Travis CI test build * SHT3x driver - small changes README.md has been shortened * SHT3x driver - small changes * SHT3x driver - small changes - crc8 lookup table is now static to be held in flash memory - special handling for the timer overflow in sht3x_is_measuring removed - initialization reduced to availability check * SHT3x driver - some small changes - crc8 lookup table is now static to be held in flash memory - special handling for the timer overflow in sht3x_is_measuring removed - some whitespace removed - initialization reduced to availability check * SHT3x driver - some minor changes - lookup tables made const to be held in flash - crc8 computation changed to a non table lookup version - measurement duration is now given in ticks and can be used directly for vTaskDelay (documentation and examples changed accordingly) * SHT3x driver - documentation changed * SHT3x driver - minor correction - number of ticks for measurement duration takes now into account portTICK_PERIOD_MS * SHT3x driver - minor correction - number of ticks for measurement duration takes now into account portTICK_PERIOD_MS * SHT3x driver - minor correction - number of ticks for measurement duration takes now into account portTICK_PERIOD_MS * SHT3x driver - minor correction - number of ticks for measurement duration takes now into account portTICK_PERIOD_MS * SHT3x driver - minor corrections * SHT3x driver - minor corrections * Driver for Sensirion SHT3x sensor added This is a driver for Sensirion SHT3x temperature and humidity sensors connected via I2C. This commit is a rebasing and contains some interface changes based on the review from @ourairquality. SHT3x driver changes - additional include to satisfy the Travis CI test build - README.md has been shortened - special handling for the timer overflow in sht3x_is_measuring removed - some whitespaces removed - crc8 computation changed to a non table lookup version - measurement duration is now given in ticks and can be used directly for vTaskDelay (documentation and examples changed accordingly) - number of ticks for measurement duration takes now into account portTICK_PERIOD_MS - clock stretching disabled on sensor to avoid blocking when data are not ready to read - calculation of maesurement duration adds now one and a half ticks to be sure that measurement duration is not too short - function sht3x_is_measuring is now private and only for internal use, user task has always to use function vTaskDelay to wait for measurement results - function sht3x_is_measuring was simplified and returns now just a boolean value - private function sht3x_reset added which is used to reset the sensor during initialization - active flag in sensor data structure not needed anymore - function sht3_get_raw_data simplified - function sht3x_start_measurement returns now only a boolean - function sht3x_start_measurement does not check anymore whether there is already a measurment running - new function sht3x_get_measurement_duration which returns the measurement duration in ticks for configured repeatability * SHT3x driver minor changes - type sht3x_values_t replaced by separate float values - additional repeatability parameter defined for function sht3x_start_measurement - parameter of function sht3x_get_measurement_duration changed from sht3x_sensort_t to sht3_repeat_t - sensor modes and repeatability levels extended by prefix sht3x_ * SHT3x driver minor changes - new high level function sht3x_measure added, it comprises all three steps to perform one measurement in only one function - example with two sensors removed * SHT3x driver small correction --- examples/sht3x/Makefile | 3 + examples/sht3x/README.md | 36 +++ examples/sht3x/sht3x.c | 153 +++++++++++++ extras/sht3x/README.md | 309 ++++++++++++++++++++++++++ extras/sht3x/component.mk | 9 + extras/sht3x/sht3x.c | 447 ++++++++++++++++++++++++++++++++++++++ extras/sht3x/sht3x.h | 279 ++++++++++++++++++++++++ 7 files changed, 1236 insertions(+) create mode 100644 examples/sht3x/Makefile create mode 100644 examples/sht3x/README.md create mode 100644 examples/sht3x/sht3x.c create mode 100644 extras/sht3x/README.md create mode 100644 extras/sht3x/component.mk create mode 100644 extras/sht3x/sht3x.c create mode 100644 extras/sht3x/sht3x.h diff --git a/examples/sht3x/Makefile b/examples/sht3x/Makefile new file mode 100644 index 0000000..d17a4e1 --- /dev/null +++ b/examples/sht3x/Makefile @@ -0,0 +1,3 @@ +PROGRAM=SHT3x +EXTRA_COMPONENTS = extras/i2c extras/sht3x +include ../../common.mk diff --git a/examples/sht3x/README.md b/examples/sht3x/README.md new file mode 100644 index 0000000..610894c --- /dev/null +++ b/examples/sht3x/README.md @@ -0,0 +1,36 @@ +# SHT3x Driver Examples + +These examples demonstrate the usage of the SHT3x driver with only one and multiple SHT3x sensors. + +## Hardware setup + +There are examples for only one sensor and examples for two sensors. + +To run examples with **one sensor**, just use GPIO5 (SCL) and GPIO4 (SDA) to connect to the SHT3x sensor's I2C interface. + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | SHT3x | + | GPIO 5 (SCL) >---- > SCL | + | GPIO 4 (SDA) ------- SDA | + | | +--------+ + +------------------------+ +``` + +If you want to run examples with **two sensors**, you could do this with only one bus and different I2C addresses or with two buses and the same or different I2C addresses. In later case, use GPIO14 (SCL) and GPIO12 (SDA) for the second bus to connect to the second SHT3x sensor's I2C interface. + +``` + +------------------------+ +----------+ + | ESP8266 Bus 0 | | SHT3x_1 | + | GPIO 5 (SCL) >-----> SCL | + | GPIO 4 (SDA) ------- SDA | + | | +----------+ + | Bus 1 | | SHT3x_2 | + | GPIO 14 (SCL) >-----> SCL | + | GPIO 12 (SDA) ------- SDA | + +------------------------+ +----------+ +``` + +## Example description + +It shows different user task implementations in *single shot mode* and *periodic mode*. In *single shot* mode either low level or high level functions are used. Constants SINGLE_SHOT_LOW_LEVEL and SINGLE_SHOT_HIGH_LEVEL controls which task implementation is used. diff --git a/examples/sht3x/sht3x.c b/examples/sht3x/sht3x.c new file mode 100644 index 0000000..cd5d990 --- /dev/null +++ b/examples/sht3x/sht3x.c @@ -0,0 +1,153 @@ +/** + * Simple example with SHT3x sensor. + * + * It shows different user task implementations in *single shot mode* and + * *periodic mode*. In *single shot* mode either low level or high level + * functions are used. + * + * Constants SINGLE_SHOT_LOW_LEVEL and SINGLE_SHOT_HIGH_LEVEL controls which + * task implementation is used. + * + * Harware configuration: + * + * +------------------------+ +----------+ + * | ESP8266 Bus 0 | | SHT3x | + * | GPIO 5 (SCL) ------> SCL | + * | GPIO 4 (SDA) ------- SDA | + * +------------------------+ +----------+ + */ + +// #define SINGLE_SHOT_LOW_LEVEL +// #define SINGLE_SHOT_HIGH_LEVEL + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include SHT3x driver +#include "sht3x/sht3x.h" + +// define I2C interfaces at which SHTx3 sensors are connected +#define I2C_BUS 0 +#define I2C_SCL_PIN GPIO_ID_PIN((5)) +#define I2C_SDA_PIN GPIO_ID_PIN((4)) + +static sht3x_sensor_t* sensor; // sensor device data structure + +#if defined(SINGLE_SHOT_HIGH_LEVEL) +/* + * User task that triggers a measurement every 5 seconds. Due to power + * efficiency reasons it uses *single shot* mode. In this example it uses the + * high level function *sht3x_measure* to perform one measurement in each cycle. + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // perform one measurement and do something with the results + if (sht3x_measure (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} + +#elif defined(SINGLE_SHOT_LOW_LEVEL) +/* + * User task that triggers a measurement every 5 seconds. Due to power + * efficiency reasons it uses *single shot* mode. In this example it starts the + * measurement, waits for the results and fetches the results using separate + * functions + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + + // get the measurement duration for high repeatability; + uint8_t duration = sht3x_get_measurement_duration(sht3x_high); + + while (1) + { + // Trigger one measurement in single shot mode with high repeatability. + sht3x_start_measurement (sensor, sht3x_single_shot, sht3x_high); + + // Wait until measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (duration); + + // retrieve the values and do something with them + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} + +#else // PERIODIC MODE +/* + * User task that fetches latest measurement results of sensor every 2 + * seconds. It starts the SHT3x in periodic mode with 1 measurements per + * second (*sht3x_periodic_1mps*). + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + // Start periodic measurements with 1 measurement per second. + sht3x_start_measurement (sensor, sht3x_periodic_1mps, sht3x_high); + + // Wait until first measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (sht3x_get_measurement_duration(sht3x_high)); + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // Get the values and do something with them. + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // Wait until 2 seconds (cycle time) are over. + vTaskDelayUntil(&last_wakeup, 2000 / portTICK_PERIOD_MS); + } +} +#endif + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + + // Give the UART some time to settle. + sdk_os_delay_us(500); + + // Init I2C bus interfaces at which SHT3x sensors are connected + // (different busses are possible). + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Create the sensors, multiple sensors are possible. + if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) + { + // Create a user task that uses the sensors. + xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); + } + + // That's it. +} diff --git a/extras/sht3x/README.md b/extras/sht3x/README.md new file mode 100644 index 0000000..c8cd13c --- /dev/null +++ b/extras/sht3x/README.md @@ -0,0 +1,309 @@ +# Driver for **SHT3x** digital **temperature and humidity sensor** + +This driver is written for usage with the ESP8266 and FreeRTOS using the I2C interface driver. It supports multiple SHT3x sensors connected to the same or different I2C interfaces. + +## About the sensor + +SHT3x is a digital temperature and humidity sensor that uses an I2C interface with up to 1 MHz communication speed. It can operate with **three levels of repeatability** (low, medium and high) and in two different modes, the **single shot data acquisition mode** (or short **single shot mode**) and the **periodic data acquisition mode** (or short **periodic mode**). + +## Measurement process + +Once the SHT3x sensor is initialized, it can be used for measurements. + +### Single shot mode + +In **single shot mode**, a measurement command triggers the acquisition of **exactly one data pair**. Each data pair consists of temperature and humidity as 16-bit decimal values. + +Due to the measurement duration of up to 15 ms, the measurement process is separated into steps to avoid blocking the user task during measurements: + +1. Trigger the sensor with function ```sht3x_start_measurement``` to perform exactly one single measurement. + +2. Wait the measurement duration using function ```vTaskDelay``` until the results are available . Use either a constant duration of at least 30 ms or the duration in RTOS ticks returned from function ```sht3x_get_measurement_duration``` to wait. + +3. Fetch the results as floating point sensor values with function ```sht3x_get_results``` or as raw data with function ```sht3x_get_raw_data```. + +In the *single shot mode*, the user task has to perform all steps every time new sensor values ​​are needed. + +For convenience a high level function ```sht3x_measure``` that comprises all three steps above in only one function to perform a measurement. This function is the easiest way to use the sensor. It is most suitable for users that don't want to have the control on sensor details. + +The advantage of this mode is that the sensor can switch between successive measurements into the sleep mode, which is more energy-efficient. This is particularly useful when the measurement rate is less than 1 measurement per second. + +### Periodic mode + +In this mode, one issued measurement command yields a stream of data pairs. Each data pair consists again of temperature and humidity as 16-bit decimal values. As soon as the measurement command has been sent to the sensor, it automatically performs measurements **periodically at a rate of 0.5, 1, 2, 4 or 10 measurements per second (mps)**. The data pairs can be fetched with the same rate or a lower rate. + +As in *single shot mode*, the measurement process is separated into the following steps: + +1. Trigger the sensor with function ```sht3x_start_measurement``` with a given rate to start periodic measurements. + +2. Wait the measurement duration using function ```vTaskDelay``` until the first results are available . Use either a constant duration of at least 30 ms or the duration in RTOS ticks returned from function ```sht3x_get_measurement_duration``` to wait. + +3. Fetch the results as floating point sensor values with function ```sht3x_get_results``` or as raw data with function ```sht3x_get_raw_data```. + +However, in contrast to the *single shot mode*, steps 1 and 2 have to be executed only once. Once the measurement is started, the user task hast can simply fetch data periodically. + +**Please note:** The rate of fetching the measurement results must not be greater than the rate of periodic measurements of the sensor. Even more, it *should be less* to avoid conflicts caused by the timing tolerance of the sensor. + +## Measurement results + +Once new measurement results are available, either function ```sht3x_get_raw_data``` or function ```sht3x_get_results``` can be used to fetch the results. + +Function ```_sht3x_get_raw_data``` fetches only raw sensor data in 16-decimal format, checks the CRC checksums and stores them in an byte array of type ```sht3x_raw_data_t```. The user task then can use them directly or to call function ```sht3x_compute_values``` to compute floating point sensor values from them. + +Function ```sht3x_get_results``` combines function ```sht3x_read_raw_data``` and function + ```sht3x_compute_values``` to get the sensor values. This is the preferred approach to get sensor values by the user task. + +## Error Handling + +Most driver functions return a simple boolean value to indicate whether its execution was successful or an error happened. In the latter case, the member ```error_code``` of the sensor device data structure is set which indicates what error happened. + +There are two different error levels that are ORed into one single ```error_code```, errors in the I2C communication and errors with the SHT3x sensor itself. To test for a certain error you can AND the *error_code* with one of the error masks, ```SHT3x_I2C_ERROR_MASK``` for I2C errors and ```SHT3x_DRV_ERROR_MASK``` for other errors and then test for a certain error code. + + +## Repeatability + +The SHT3x sensor supports **three levels of repeatability** (low, medium and high). Repeatability is the variation in measurement results taken by the sensor under the same conditions, and in a short period of time. It is a measure for the noise on the physical sensor output. The higher the repeatability the smaller are changes in the output of subsequent measurements. + +The repeatability settings influences the measurement duration as well as the power consumption of the sensor. The measurement takes 3 ms with low repeatability, 5 ms with medium repeatability and 13.5 ms with high repeatability. That is, the measurement produces a noticeable delay in execution. + +While the sensor measures at the lowest repeatability, the average current consumption is 800 μA. That is, the higher the repeatability level, the longer the measurement takes and the higher the power consumption. The sensor consumes only 0.2 μA in standby mode. + +The repeatability used for a measurement is specified as parameter of function ```sht3x_start_measurement```. + + +## Usage + +Before using the SHT3x driver, function ```i2c_init``` needs to be called for each I2C interface to setup them. + +``` +#include "sht3x/sht3x.h" +... +#define I2C_BUS 0 +#define I2C_SCL_PIN GPIO_ID_PIN((5)) +#define I2C_SDA_PIN GPIO_ID_PIN((4)) + +... +i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K)) +... +``` + +Once I2C interfaces to be used are initialized, function ```sht3x_init_sensor``` has to be called for each SHT3x sensor to initialize the sensor and to check its availability as well as its error state. The parameters specify the I2C bus to which it is connected and its I2C slave address. + +``` +static sht3x_sensor_t* sensor; // pointer to sensor device data structure +... +if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) +{ + ... +} +``` + +Function ```sht3x_init_sensor``` returns a pointer to the sensor device data structure or NULL in case of error. + +Last, the user task that uses the sensor has to be created. + +``` +xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); +``` + +In **periodic mode**, the user task has to start the periodic measurement only once at the beginning of the task. After that, it has only to wait for the results of the first measurement. In the task loop itself, it simply fetches the next measurement results in each cycle. + +Thus, in this mode the user task could look like the following: + +``` +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + // Start periodic measurements with 1 measurement per second. + sht3x_start_measurement (sensor, sht3x_periodic_1mps, sht3x_high); + + // Wait until first measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (sht3x_get_measurement_duration(sht3x_high)); + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // Get the values and do something with them. + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // Wait until 2 seconds (cycle time) are over. + vTaskDelayUntil(&last_wakeup, 2000 / portTICK_PERIOD_MS); + } +} + +``` + +At the beginning of the task, the periodic measurement is started with function ```sht3x_start_measurement``` at high repeatability level and a rate of 1 measurement per second. The task is then delayed with function ```vTaskDelay``` to wait for first measurement results. The duration can be either a constant time of at least 30 ms or the duration returned by ```sht3x_get_measurement_duration```, as in the example. Inside the task loop, simply the measurement results are fetched periodically using function ```sht3x_get_results``` every 2 seconds. + +**Please note:** The rate of fetching the measurement results must be not greater than the rate of periodic measurements of the sensor, however, it *should be less* to avoid conflicts caused by the timing tolerance of the sensor. + +In **single shot mode**, the measurement has to be triggered +in each cycle. Also the waiting for measurement results is required in each cylce, before the results can be fetched. + +Thus the user task could look like the following: + +``` +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + + uint8_t duration = sht3x_get_measurement_duration(sht3x_high); + + while (1) + { + // Trigger one measurement in single shot mode with high repeatability. + sht3x_start_measurement (sensor, sht3x_single_shot, sht3x_high); + + // Wait until measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (duration); + + // retrieve the values and do something with them + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} +``` + +In contrast to the *periodic mode*, the function ```sht3x_start_measurement``` is called inside the task loop to start exactly one measurement in each cycle. The task is then also delayed every time using function ```vTaskDelay``` before the results are fetched with function ```sht3x_get_results```. + +Alternatively, user task can use the high level function ```sht3x_measure``` that comprises these steps in only one function. This would simplify the user task that would then look like the following: + +``` +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // perform one measurement and do something with the results + if (sht3x_measure (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} +``` + + +The code could be extended by an error handling. In the event of an error, most driver functions set the ```error_code``` element of the sensor device data structure. This indicates which error has occurred. Error codes are a combination of I2C communication error codes and SHT3x sensor error codes. To test for a particular error, the *error code* has to be ANDed with one of the error masks ```SHT3x_I2C_ERROR_MASK``` or ```SHT3x_DRV_ERROR_MASK``` and then tested for a certain value. + +For example, error handling for ```sht3x_get_results``` could look like: +``` + +if (!sht3x_get_results (sensor, &values)) +{ + // error happened + + switch (sensor->error_code & SHT3x_I2C_ERROR_MASK) + { + case SHT3x_I2C_BUSY: ... + case SHT3x_I2C_READ_FAILED: ... + ... + } + switch (sensor->error_code & SHT3x_DRV_ERROR_MASK) + { + case SHT3x_MEAS_NOT_RUNNING: ... + case SHT3x_READ_RAW_DATA_FAILED: ... + case SHT3x_WRONG_CRC_TEMPERATURE: ... + ... + } +} +``` + +## Full Example + +``` +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include SHT3x driver +#include "sht3x/sht3x.h" + +// define I2C interfaces at which SHTx3 sensors are connected +#define I2C_BUS 0 +#define I2C_SCL_PIN GPIO_ID_PIN((5)) +#define I2C_SDA_PIN GPIO_ID_PIN((4)) + +static sht3x_sensor_t* sensor; // sensor device data structure + +/* + * User task that triggers a measurement every 5 seconds. Due to + * power efficiency reasons, it uses the SHT3x *sht3x_single_shot*. + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + + // get the measurement duration for high repeatability; + uint8_t duration = sht3x_get_measurement_duration(sht3x_high); + + while (1) + { + // Trigger one measurement in single shot mode with high repeatability. + sht3x_start_measurement (sensor, sht3x_single_shot, sht3x_high); + + // Wait until measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (duration); + + // retrieve the values and do something with them + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + + // Give the UART some time to settle. + sdk_os_delay_us(500); + + // Init I2C bus interfaces at which SHT3x sensors are connected + // (different busses are possible). + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Create the sensors. + if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) + { + // Create a user task that uses the sensors. + xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); + } + + // That's it. +} +``` + +## Further Examples + +See also the examples in the examples directory [examples directory](../../examples/sht3x/README.md). diff --git a/extras/sht3x/component.mk b/extras/sht3x/component.mk new file mode 100644 index 0000000..3d8c544 --- /dev/null +++ b/extras/sht3x/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/sht3x + +# expected anyone using SHT3x driver includes it as 'sht3x/sht3x.h' +INC_DIRS += $(sht3x_ROOT).. + +# args for passing into compile rule generation +sht3x_SRC_DIR = $(sht3x_ROOT) + +$(eval $(call component_compile_rules,sht3x)) diff --git a/extras/sht3x/sht3x.c b/extras/sht3x/sht3x.c new file mode 100644 index 0000000..2a8b38b --- /dev/null +++ b/extras/sht3x/sht3x.c @@ -0,0 +1,447 @@ +/* + * Driver for Sensirion SHT3x digital temperature and humidity sensor + * connected to I2C + * + * Part of esp-open-rtos + * + * ---------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Driver for Sensirion SHT3x digital temperature and humity sensor + * connected to I2C + * + * Part of esp-open-rtos + */ + +#include + +#include "sht3x.h" + +#include "FreeRTOS.h" +#include "task.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#define SHT3x_STATUS_CMD 0xF32D +#define SHT3x_CLEAR_STATUS_CMD 0x3041 +#define SHT3x_RESET_CMD 0x30A2 +#define SHT3x_FETCH_DATA_CMD 0xE000 +#define SHT3x_HEATER_OFF_CMD 0x3066 + +const uint16_t SHT3x_MEASURE_CMD[6][3] = { + {0x2400,0x240b,0x2416}, // [SINGLE_SHOT][H,M,L] without clock stretching + {0x2032,0x2024,0x202f}, // [PERIODIC_05][H,M,L] + {0x2130,0x2126,0x212d}, // [PERIODIC_1 ][H,M,L] + {0x2236,0x2220,0x222b}, // [PERIODIC_2 ][H,M,L] + {0x2234,0x2322,0x2329}, // [PERIODIC_4 ][H,M,L] + {0x2737,0x2721,0x272a} }; // [PERIODIC_10][H,M,L] + +// due to the fact that ticks can be smaller than portTICK_PERIOD_MS, one and +// a half tick period added to the duration to be sure that waiting time for +// the results is long enough +#define TIME_TO_TICKS(ms) (1 + ((ms) + (portTICK_PERIOD_MS-1) + portTICK_PERIOD_MS/2 ) / portTICK_PERIOD_MS) + +#define SHT3x_MEAS_DURATION_REP_HIGH 15 +#define SHT3x_MEAS_DURATION_REP_MEDIUM 6 +#define SHT3x_MEAS_DURATION_REP_LOW 4 + +// measurement durations in us +const uint16_t SHT3x_MEAS_DURATION_US[3] = { SHT3x_MEAS_DURATION_REP_HIGH * 1000, + SHT3x_MEAS_DURATION_REP_MEDIUM * 1000, + SHT3x_MEAS_DURATION_REP_LOW * 1000 }; + +// measurement durations in RTOS ticks +const uint8_t SHT3x_MEAS_DURATION_TICKS[3] = { TIME_TO_TICKS(SHT3x_MEAS_DURATION_REP_HIGH), + TIME_TO_TICKS(SHT3x_MEAS_DURATION_REP_MEDIUM), + TIME_TO_TICKS(SHT3x_MEAS_DURATION_REP_LOW) }; + +#if defined(SHT3x_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "SHT3x", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "SHT3x", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(SHT3x_DEBUG_LEVEL_1) || defined(SHT3x_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "SHT3x", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "SHT3x", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +/** Forward declaration of function for internal use */ + +static bool sht3x_is_measuring (sht3x_sensor_t*); +static bool sht3x_send_command (sht3x_sensor_t*, uint16_t); +static bool sht3x_read_data (sht3x_sensor_t*, uint8_t*, uint32_t); +static bool sht3x_get_status (sht3x_sensor_t*, uint16_t*); +static bool sht3x_reset (sht3x_sensor_t*); + +static uint8_t crc8 (uint8_t data[], int len); + +/** ------------------------------------------------ */ + +bool sht3x_init_driver() +{ + return true; +} + + +sht3x_sensor_t* sht3x_init_sensor(uint8_t bus, uint8_t addr) +{ + sht3x_sensor_t* dev; + + if ((dev = malloc (sizeof(sht3x_sensor_t))) == NULL) + return NULL; + + // inititalize sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->mode = sht3x_single_shot; + dev->meas_start_time = 0; + dev->meas_started = false; + dev->meas_first = false; + + uint16_t status; + + // reset the sensor + if (!sht3x_reset(dev)) + { + error_dev ("could not reset the sensor", __FUNCTION__, dev); + free(dev); + return NULL; + } + + // check again the status after clear status command + if (!sht3x_get_status(dev, &status)) + { + error_dev ("could not get sensor status", __FUNCTION__, dev); + free(dev); + return NULL; + } + + debug_dev ("sensor initialized", __FUNCTION__, dev); + return dev; +} + + +bool sht3x_measure (sht3x_sensor_t* dev, float* temperature, float* humidity) +{ + if (!dev || (!temperature && !humidity)) return false; + + if (!sht3x_start_measurement (dev, sht3x_single_shot, sht3x_high)) + return false; + + vTaskDelay (SHT3x_MEAS_DURATION_TICKS[sht3x_high]); + + sht3x_raw_data_t raw_data; + + if (!sht3x_get_raw_data (dev, raw_data)) + return false; + + return sht3x_compute_values (raw_data, temperature, humidity); +} + + +bool sht3x_start_measurement (sht3x_sensor_t* dev, sht3x_mode_t mode, sht3x_repeat_t repeat) +{ + if (!dev) return false; + + dev->error_code = SHT3x_OK; + dev->mode = mode; + dev->repeatability = repeat; + + // start measurement according to selected mode and return an duration estimate + if (!sht3x_send_command(dev, SHT3x_MEASURE_CMD[mode][repeat])) + { + error_dev ("could not send start measurment command", __FUNCTION__, dev); + dev->error_code |= SHT3x_SEND_MEAS_CMD_FAILED; + return false; + } + + dev->meas_start_time = sdk_system_get_time (); + dev->meas_started = true; + dev->meas_first = true; + + return true; +} + + +uint8_t sht3x_get_measurement_duration (sht3x_repeat_t repeat) +{ + return SHT3x_MEAS_DURATION_TICKS[repeat]; // in RTOS ticks +} + + +bool sht3x_get_raw_data(sht3x_sensor_t* dev, sht3x_raw_data_t raw_data) +{ + if (!dev || !raw_data) return false; + + dev->error_code = SHT3x_OK; + + if (!dev->meas_started) + { + debug_dev ("measurement is not started", __FUNCTION__, dev); + dev->error_code = SHT3x_MEAS_NOT_STARTED; + return sht3x_is_measuring (dev); + } + + if (sht3x_is_measuring(dev)) + { + error_dev ("measurement is still running", __FUNCTION__, dev); + dev->error_code = SHT3x_MEAS_STILL_RUNNING; + return false; + } + + // send fetch command in any periodic mode (mode > 0) before read raw data + if (dev->mode && !sht3x_send_command(dev, SHT3x_FETCH_DATA_CMD)) + { + debug_dev ("send fetch command failed", __FUNCTION__, dev); + dev->error_code |= SHT3x_SEND_FETCH_CMD_FAILED; + return false; + } + + // read raw data + if (!sht3x_read_data(dev, raw_data, sizeof(sht3x_raw_data_t))) + { + error_dev ("read raw data failed", __FUNCTION__, dev); + dev->error_code |= SHT3x_READ_RAW_DATA_FAILED; + return false; + } + + // reset first measurement flag + dev->meas_first = false; + + // reset measurement started flag in single shot mode + if (dev->mode == sht3x_single_shot) + dev->meas_started = false; + + // check temperature crc + if (crc8(raw_data,2) != raw_data[2]) + { + error_dev ("CRC check for temperature data failed", __FUNCTION__, dev); + dev->error_code |= SHT3x_WRONG_CRC_TEMPERATURE; + return false; + } + + // check humidity crc + if (crc8(raw_data+3,2) != raw_data[5]) + { + error_dev ("CRC check for humidity data failed", __FUNCTION__, dev); + dev->error_code |= SHT3x_WRONG_CRC_HUMIDITY; + return false; + } + + return true; +} + + +bool sht3x_compute_values (sht3x_raw_data_t raw_data, float* temperature, float* humidity) +{ + if (!raw_data) return false; + + if (temperature) + *temperature = ((((raw_data[0] * 256.0) + raw_data[1]) * 175) / 65535.0) - 45; + + if (humidity) + *humidity = ((((raw_data[3] * 256.0) + raw_data[4]) * 100) / 65535.0); + + return true; +} + + +bool sht3x_get_results (sht3x_sensor_t* dev, float* temperature, float* humidity) +{ + if (!dev || (!temperature && !humidity)) return false; + + sht3x_raw_data_t raw_data; + + if (!sht3x_get_raw_data (dev, raw_data)) + return false; + + return sht3x_compute_values (raw_data, temperature, humidity); +} + +/* Functions for internal use only */ + +static bool sht3x_is_measuring (sht3x_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = SHT3x_OK; + + // not running if measurement is not started at all or + // it is not the first measurement in periodic mode + if (!dev->meas_started || !dev->meas_first) + return false; + + // not running if time elapsed is greater than duration + uint32_t elapsed = sdk_system_get_time() - dev->meas_start_time; + + return elapsed < SHT3x_MEAS_DURATION_US[dev->repeatability]; +} + + +static bool sht3x_send_command(sht3x_sensor_t* dev, uint16_t cmd) +{ + if (!dev) return false; + + uint8_t data[2] = { cmd >> 8, cmd & 0xff }; + + debug_dev ("send command MSB=%02x LSB=%02x", __FUNCTION__, dev, data[0], data[1]); + + int err; + int count = 10; + + // in case i2c is busy, try to write up to ten ticks (normally 100 ms) + // tested with a task that is disturbing by using i2c bus almost all the time + while ((err=i2c_slave_write(dev->bus, dev->addr, 0, data, 2)) == -EBUSY && count--) + vTaskDelay (1); + + if (err) + { + dev->error_code |= (err == -EBUSY) ? SHT3x_I2C_BUSY : SHT3x_I2C_SEND_CMD_FAILED; + error_dev ("i2c error %d on write command %02x", __FUNCTION__, dev, err, cmd); + return false; + } + + return true; +} + + +static bool sht3x_read_data(sht3x_sensor_t* dev, uint8_t *data, uint32_t len) +{ + if (!dev) return false; + + int err; + int count = 10; + + // in case i2c is busy, try to read up to ten ticks (normally 100 ms) + while ((err=i2c_slave_read(dev->bus, dev->addr, 0, data, len)) == -EBUSY && count--) + vTaskDelay (1); + + if (err) + { + dev->error_code |= (err == -EBUSY) ? SHT3x_I2C_BUSY : SHT3x_I2C_READ_FAILED; + error_dev ("error %d on read %d byte", __FUNCTION__, dev, err, len); + return false; + } + +# ifdef SHT3x_DEBUG_LEVEL_2 + printf("SHT3x %s: bus %d, addr %02x - read following bytes: ", + __FUNCTION__, dev->bus, dev->addr); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool sht3x_reset (sht3x_sensor_t* dev) +{ + if (!dev) return false; + + debug_dev ("soft-reset triggered", __FUNCTION__, dev); + + dev->error_code = SHT3x_OK; + + // send reset command + if (!sht3x_send_command(dev, SHT3x_RESET_CMD)) + { + dev->error_code |= SHT3x_SEND_RESET_CMD_FAILED; + return false; + } + // wait for small amount of time needed (according to datasheet 0.5ms) + vTaskDelay (100 / portTICK_PERIOD_MS); + + uint16_t status; + + // check the status after reset + if (!sht3x_get_status(dev, &status)) + return false; + + return true; +} + + +static bool sht3x_get_status (sht3x_sensor_t* dev, uint16_t* status) +{ + if (!dev || !status) return false; + + dev->error_code = SHT3x_OK; + + uint8_t data[3]; + + if (!sht3x_send_command(dev, SHT3x_STATUS_CMD) || !sht3x_read_data(dev, data, 3)) + { + dev->error_code |= SHT3x_SEND_STATUS_CMD_FAILED; + return false; + } + + *status = data[0] << 8 | data[1]; + debug_dev ("status=%02x", __FUNCTION__, dev, *status); + return true; +} + + +const uint8_t g_polynom = 0x31; + +static uint8_t crc8 (uint8_t data[], int len) +{ + // initialization value + uint8_t crc = 0xff; + + // iterate over all bytes + for (int i=0; i < len; i++) + { + crc ^= data[i]; + + for (int i = 0; i < 8; i++) + { + bool xor = crc & 0x80; + crc = crc << 1; + crc = xor ? crc ^ g_polynom : crc; + } + } + + return crc; +} + + diff --git a/extras/sht3x/sht3x.h b/extras/sht3x/sht3x.h new file mode 100644 index 0000000..4ec1d35 --- /dev/null +++ b/extras/sht3x/sht3x.h @@ -0,0 +1,279 @@ +/* + * Driver for Sensirion SHT3x digital temperature and humidity sensor + * connected to I2C + * + * Part of esp-open-rtos + * + * ---------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DRIVER_SHT3x_H_ +#define DRIVER_SHT3x_H_ + +#include "stdint.h" +#include "stdbool.h" + +#include "FreeRTOS.h" + +#include "i2c/i2c.h" + +// Uncomment to enable debug output +// #define SHT3x_DEBUG_LEVEL_1 // only error messages +// #define SHT3x_DEBUG_LEVEL_2 // error and debug messages + +#ifdef __cplusplus +extern "C" { +#endif + +// definition of possible I2C slave addresses +#define SHT3x_ADDR_1 0x44 // ADDR pin connected to GND/VSS (default) +#define SHT3x_ADDR_2 0x45 // ADDR pin connected to VDD + +// definition of error codes +#define SHT3x_OK 0 +#define SHT3x_NOK -1 + +#define SHT3x_I2C_ERROR_MASK 0x000f +#define SHT3x_DRV_ERROR_MASK 0xfff0 + +// error codes for I2C interface ORed with SHT3x error codes +#define SHT3x_I2C_READ_FAILED 1 +#define SHT3x_I2C_SEND_CMD_FAILED 2 +#define SHT3x_I2C_BUSY 3 + +// SHT3x driver error codes OR ed with error codes for I2C interface +#define SHT3x_MEAS_NOT_STARTED (1 << 8) +#define SHT3x_MEAS_ALREADY_RUNNING (2 << 8) +#define SHT3x_MEAS_STILL_RUNNING (3 << 8) +#define SHT3x_READ_RAW_DATA_FAILED (4 << 8) + +#define SHT3x_SEND_MEAS_CMD_FAILED (5 << 8) +#define SHT3x_SEND_RESET_CMD_FAILED (6 << 8) +#define SHT3x_SEND_STATUS_CMD_FAILED (7 << 8) +#define SHT3x_SEND_FETCH_CMD_FAILED (8 << 8) + +#define SHT3x_WRONG_CRC_TEMPERATURE (9 << 8) +#define SHT3x_WRONG_CRC_HUMIDITY (10 << 8) + +#define SHT3x_RAW_DATA_SIZE 6 + +/** + * @brief raw data type + */ +typedef uint8_t sht3x_raw_data_t [SHT3x_RAW_DATA_SIZE]; + + +/** + * @brief possible measurement modes + */ +typedef enum { + sht3x_single_shot = 0, // one single measurement + sht3x_periodic_05mps, // periodic with 0.5 measurements per second (mps) + sht3x_periodic_1mps, // periodic with 1 measurements per second (mps) + sht3x_periodic_2mps, // periodic with 2 measurements per second (mps) + sht3x_periodic_4mps, // periodic with 4 measurements per second (mps) + sht3x_periodic_10mps // periodic with 10 measurements per second (mps) +} sht3x_mode_t; + + +/** + * @brief possible repeatability modes + */ +typedef enum { + sht3x_high = 0, + sht3x_medium, + sht3x_low +} sht3x_repeat_t; + +/** + * @brief SHT3x sensor device data structure type + */ +typedef struct { + + uint32_t error_code; // combined error codes + + uint8_t bus; // I2C bus at which sensor is connected + uint8_t addr; // I2C slave address of the sensor + + sht3x_mode_t mode; // used measurement mode + sht3x_repeat_t repeatability; // used repeatability + + bool meas_started; // indicates whether measurement started + uint32_t meas_start_time; // measurement start time in us + bool meas_first; // first measurement in periodic mode + +} sht3x_sensor_t; + + +/** + * @brief Initialize a SHT3x sensor + * + * The function creates a data structure describing the sensor and + * initializes the sensor device. + * + * @param bus I2C bus at which the sensor is connected + * @param addr I2C slave address of the sensor + * @return pointer to sensor data structure, or NULL on error + */ +sht3x_sensor_t* sht3x_init_sensor (uint8_t bus, uint8_t addr); + + +/** + * @brief High level measurement function + * + * For convenience this function comprises all three steps to perform + * one measurement in only one function: + * + * 1. Starts a measurement in single shot mode with high reliability + * 2. Waits using *vTaskDelay* until measurement results are available + * 3. Returns the results in kind of floating point sensor values + * + * This function is the easiest way to use the sensor. It is most suitable + * for users that don't want to have the control on sensor details. + * + * Please note: The function delays the calling task up to 30 ms to wait for + * the the measurement results. This might lead to problems when the function + * is called from a software timer callback function. + * + * @param dev pointer to sensor device data structure + * @param temperature returns temperature in degree Celsius + * @param humidity returns humidity in percent + * @return true on success, false on error + */ +bool sht3x_measure (sht3x_sensor_t* dev, float* temperature, float* humidity); + + +/** + * @brief Start the measurement in single shot or periodic mode + * + * The function starts the measurement either in *single shot mode* + * (exactly one measurement) or *periodic mode* (periodic measurements) + * with given repeatabilty. + * + * In the *single shot mode*, this function has to be called for each + * measurement. The measurement duration has to be waited every time + * before the results can be fetched. + * + * In the *periodic mode*, this function has to be called only once. Also + * the measurement duration has to be waited only once until the first + * results are available. After this first measurement, the sensor then + * automatically performs all subsequent measurements. The rate of periodic + * measurements can be 10, 4, 2, 1 or 0.5 measurements per second (mps). + * + * Please note: Due to inaccuracies in timing of the sensor, the user task + * should fetch the results at a lower rate. The rate of the periodic + * measurements is defined by the parameter *mode*. + * + * @param dev pointer to sensor device data structure + * @param mode measurement mode, see type *sht3x_mode_t* + * @param repeat repeatability, see type *sht3x_repeat_t* + * @return true on success, false on error + */ +bool sht3x_start_measurement (sht3x_sensor_t* dev, sht3x_mode_t mode, + sht3x_repeat_t repeat); + +/** + * @brief Get the duration of a measurement in RTOS ticks. + * + * The function returns the duration in RTOS ticks required by the sensor to + * perform a measurement for the given repeatability. Once a measurement is + * started with function *sht3x_start_measurement* the user task can use this + * duration in RTOS ticks directly to wait with function *vTaskDelay* until + * the measurement results can be fetched. + * + * Please note: The duration only depends on repeatability level. Therefore, + * it can be considered as constant for a repeatibility. + * + * @param repeat repeatability, see type *sht3x_repeat_t* + * @return measurement duration given in RTOS ticks + */ +uint8_t sht3x_get_measurement_duration (sht3x_repeat_t repeat); + + +/** + * @brief Read measurement results from sensor as raw data + * + * The function read measurement results from the sensor, checks the CRC + * checksum and stores them in the byte array as following. + * + * data[0] = Temperature MSB + * data[1] = Temperature LSB + * data[2] = Temperature CRC + * data[3] = Pressure MSB + * data[4] = Pressure LSB + * data[2] = Pressure CRC + * + * In case that there are no new data that can be read, the function fails. + * + * @param dev pointer to sensor device data structure + * @param raw_data byte array in which raw data are stored + * @return true on success, false on error + */ +bool sht3x_get_raw_data(sht3x_sensor_t* dev, sht3x_raw_data_t raw_data); + + +/** + * @brief Computes sensor values from raw data + * + * @param raw_data byte array that contains raw data + * @param temperature returns temperature in degree Celsius + * @param humidity returns humidity in percent + * @return true on success, false on error + */ +bool sht3x_compute_values (sht3x_raw_data_t raw_data, + float* temperature, float* humidity); + + +/** + * @brief Get measurement results in form of sensor values + * + * The function combines function *sht3x_read_raw_data* and function + * *sht3x_compute_values* to get the measurement results. + * + * In case that there are no results that can be read, the function fails. + * + * @param dev pointer to sensor device data structure + * @param temperature returns temperature in degree Celsius + * @param humidity returns humidity in percent + * @return true on success, false on error + */ +bool sht3x_get_results (sht3x_sensor_t* dev, + float* temperature, float* humidity); + + +#ifdef __cplusplus +} +#endif + +#endif /* DRIVER_SHT3x_H_ */ From d36e9d65a051ac0cee7253e43b5141b14fc7cddf Mon Sep 17 00:00:00 2001 From: dora38 Date: Tue, 24 Oct 2017 06:55:11 +0900 Subject: [PATCH 227/349] Fix a printf issue. (#474) Added missing return statements to stdio --- core/newlib_syscalls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 610b570..a793cec 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -103,7 +103,7 @@ __attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, i return lwip_write(fd, ptr, len); } if (fd == r->_stdout->_file) { - current_stdout_write_r(r, fd, ptr, len); + return current_stdout_write_r(r, fd, ptr, len); } r->_errno = EBADF; return -1; @@ -138,7 +138,7 @@ __attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len return lwip_read(fd, ptr, len); } if (fd == r->_stdin->_file) { - _read_stdin_r(r, fd, ptr, len); + return _read_stdin_r(r, fd, ptr, len); } r->_errno = EBADF; return -1; From 09b8b8087c0ef761c51c35461c64cf82b7ae2f2e Mon Sep 17 00:00:00 2001 From: Sashka Date: Mon, 23 Oct 2017 17:59:13 -0400 Subject: [PATCH 228/349] Add libesphttpd to extras and supporting example (#458) * libesphttpd: added extras and example * Added "heatshrink" as a submodule * Updated libesphttpd * Updated libesphttpd * Trying to fix the commit id * Updated libesphttpd * Added zlib1g-dev package * Use native gcc to build mkespfsimage and mkupgimg * Added NS and GW for DHCP server configuration --- .gitmodules | 6 + .travis.yml | 1 + examples/esphttpd/FreeRTOSConfig.h | 11 + examples/esphttpd/Makefile | 16 ++ examples/esphttpd/cgi-test.c | 90 ++++++++ examples/esphttpd/cgi-test.h | 8 + examples/esphttpd/cgi.c | 81 +++++++ examples/esphttpd/cgi.h | 10 + .../esphttpd/html/cats/cross-eyed-cat.jpg | Bin 0 -> 36487 bytes .../esphttpd/html/cats/junge-katze-iv.jpg | Bin 0 -> 34289 bytes .../esphttpd/html/cats/kitten-loves-toy.jpg | Bin 0 -> 49447 bytes examples/esphttpd/html/flash/140medley.min.js | 2 + examples/esphttpd/html/flash/index.html | 75 +++++++ examples/esphttpd/html/flash/style.css | 34 +++ examples/esphttpd/html/index.tpl | 26 +++ examples/esphttpd/html/led.tpl | 15 ++ examples/esphttpd/html/style.css | 17 ++ examples/esphttpd/html/test/index.html | 9 + examples/esphttpd/html/test/test.js | 205 +++++++++++++++++ examples/esphttpd/html/websocket/index.html | 69 ++++++ examples/esphttpd/html/wifi/140medley.min.js | 2 + examples/esphttpd/html/wifi/connecting.html | 43 ++++ examples/esphttpd/html/wifi/icons.png | Bin 0 -> 914 bytes examples/esphttpd/html/wifi/style.css | 24 ++ examples/esphttpd/html/wifi/wifi.tpl | 94 ++++++++ examples/esphttpd/io.c | 72 ++++++ examples/esphttpd/io.h | 7 + examples/esphttpd/user_main.c | 210 ++++++++++++++++++ extras/libesphttpd/component.mk | 64 ++++++ extras/libesphttpd/libesphttpd | 1 + 30 files changed, 1192 insertions(+) create mode 100644 examples/esphttpd/FreeRTOSConfig.h create mode 100644 examples/esphttpd/Makefile create mode 100644 examples/esphttpd/cgi-test.c create mode 100644 examples/esphttpd/cgi-test.h create mode 100644 examples/esphttpd/cgi.c create mode 100644 examples/esphttpd/cgi.h create mode 100644 examples/esphttpd/html/cats/cross-eyed-cat.jpg create mode 100644 examples/esphttpd/html/cats/junge-katze-iv.jpg create mode 100644 examples/esphttpd/html/cats/kitten-loves-toy.jpg create mode 100644 examples/esphttpd/html/flash/140medley.min.js create mode 100644 examples/esphttpd/html/flash/index.html create mode 100644 examples/esphttpd/html/flash/style.css create mode 100644 examples/esphttpd/html/index.tpl create mode 100644 examples/esphttpd/html/led.tpl create mode 100644 examples/esphttpd/html/style.css create mode 100644 examples/esphttpd/html/test/index.html create mode 100644 examples/esphttpd/html/test/test.js create mode 100644 examples/esphttpd/html/websocket/index.html create mode 100644 examples/esphttpd/html/wifi/140medley.min.js create mode 100644 examples/esphttpd/html/wifi/connecting.html create mode 100644 examples/esphttpd/html/wifi/icons.png create mode 100644 examples/esphttpd/html/wifi/style.css create mode 100644 examples/esphttpd/html/wifi/wifi.tpl create mode 100644 examples/esphttpd/io.c create mode 100644 examples/esphttpd/io.h create mode 100644 examples/esphttpd/user_main.c create mode 100644 extras/libesphttpd/component.mk create mode 160000 extras/libesphttpd/libesphttpd diff --git a/.gitmodules b/.gitmodules index 17f8003..6790fd5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,9 @@ [submodule "extras/crc_generic/crc_lib"] path = extras/crc_generic/crc_lib url = https://github.com/Zaltora/crc_generic_lib.git +[submodule "extras/libesphttpd/libesphttpd"] + path = extras/libesphttpd/libesphttpd + url = https://github.com/nochkin/libesphttpd +[submodule "extras/libesphttpd/libesphttpd/lib/heatshrink"] + path = extras/libesphttpd/libesphttpd/lib/heatshrink + url = https://github.com/atomicobject/heatshrink diff --git a/.travis.yml b/.travis.yml index 39674fe..4d2597d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,7 @@ addons: - git - help2man - vim-common + - zlib1g-dev before_install: - pip install --user pyserial diff --git a/examples/esphttpd/FreeRTOSConfig.h b/examples/esphttpd/FreeRTOSConfig.h new file mode 100644 index 0000000..d6d9c5e --- /dev/null +++ b/examples/esphttpd/FreeRTOSConfig.h @@ -0,0 +1,11 @@ +/* FreeRTOSConfig overrides. + + This is intended as an example of overriding some of the default FreeRTOSConfig settings, + which are otherwise found in FreeRTOS/Source/include/FreeRTOSConfig.h +*/ + +#define configUSE_RECURSIVE_MUTEXES 1 + +/* Use the defaults for everything else */ +#include_next + diff --git a/examples/esphttpd/Makefile b/examples/esphttpd/Makefile new file mode 100644 index 0000000..2362443 --- /dev/null +++ b/examples/esphttpd/Makefile @@ -0,0 +1,16 @@ +PROGRAM = esphttpd +EXTRA_COMPONENTS = extras/dhcpserver extras/rboot-ota extras/libesphttpd + +ESP_IP ?= 192.168.4.1 + +#Tag for OTA images. 0-27 characters. Change to eg your projects title. +LIBESPHTTPD_OTA_TAGNAME ?= generic + +LIBESPHTTPD_MAX_CONNECTIONS ?= 8 +LIBESPHTTPD_STACKSIZE ?= 2048 + +PROGRAM_CFLAGS += -DFREERTOS -DLIBESPHTTPD_OTA_TAGNAME="\"$(LIBESPHTTPD_OTA_TAGNAME)\"" -DFLASH_SIZE=$(FLASH_SIZE) +EXTRA_CFLAGS += -DMEMP_NUM_NETCONN=$(LIBESPHTTPD_MAX_CONNECTIONS) + +include ../../common.mk + diff --git a/examples/esphttpd/cgi-test.c b/examples/esphttpd/cgi-test.c new file mode 100644 index 0000000..7a16aed --- /dev/null +++ b/examples/esphttpd/cgi-test.c @@ -0,0 +1,90 @@ +/* +Cgi routines as used by the tests in the html/test subdirectory. +*/ + +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * Jeroen Domburg wrote this file. As long as you retain + * this notice you can do whatever you want with this stuff. If we meet some day, + * and you think this stuff is worth it, you can buy me a beer in return. + * ---------------------------------------------------------------------------- + */ + + +#include +#include +#include + +#include + +#include "cgi-test.h" + +typedef struct { + int len; + int sendPos; +} TestbedState; + + +int ICACHE_FLASH_ATTR cgiTestbed(HttpdConnData *connData) { + char buff[1024]; + int first=0; + int l, x; + TestbedState *state=(TestbedState*)connData->cgiData; + + if (connData->conn==NULL) { + //Connection aborted. Clean up. + if (state) free(state); + return HTTPD_CGI_DONE; + } + + if (state==NULL) { + //First call + state=malloc(sizeof(TestbedState)); + memset(state, 0, sizeof(state)); + connData->cgiData=state; + first=1; + } + + if (connData->requestType==HTTPD_METHOD_GET) { + if (first) { + httpdStartResponse(connData, 200); + httpdHeader(connData, "content-type", "application/data"); + httpdEndHeaders(connData); + l=httpdFindArg(connData->getArgs, "len", buff, sizeof(buff)); + state->len=1024; + if (l!=-1) state->len=atoi(buff); + state->sendPos=0; + return HTTPD_CGI_MORE; + } else { + l=sizeof(buff); + if (l>(state->len-state->sendPos)) l=(state->len-state->sendPos); + //Fill with semi-random data + for (x=0; xsendPos>>10))&0x1F)+'0'; + httpdSend(connData, buff, l); + state->sendPos+=l; + printf("Test: Uploaded %d/%d bytes\n", state->sendPos, state->len); + if (state->len<=state->sendPos) { + if (state) free(state); + return HTTPD_CGI_DONE; + } else { + return HTTPD_CGI_MORE; + } + } + } + if (connData->requestType==HTTPD_METHOD_POST) { + if (connData->post->len!=connData->post->received) { + //Still receiving data. Ignore this. + printf("Test: got %d/%d bytes\n", connData->post->received, connData->post->len); + return HTTPD_CGI_MORE; + } else { + httpdStartResponse(connData, 200); + httpdHeader(connData, "content-type", "text/plain"); + httpdEndHeaders(connData); + l=sprintf(buff, "%d", connData->post->received); + httpdSend(connData, buff, l); + return HTTPD_CGI_DONE; + } + } + return HTTPD_CGI_DONE; +} diff --git a/examples/esphttpd/cgi-test.h b/examples/esphttpd/cgi-test.h new file mode 100644 index 0000000..a2c752e --- /dev/null +++ b/examples/esphttpd/cgi-test.h @@ -0,0 +1,8 @@ +#ifndef CGI_TEST_H +#define CGI_TEST_H + +#include + +int cgiTestbed(HttpdConnData *connData); + +#endif diff --git a/examples/esphttpd/cgi.c b/examples/esphttpd/cgi.c new file mode 100644 index 0000000..5b83ca2 --- /dev/null +++ b/examples/esphttpd/cgi.c @@ -0,0 +1,81 @@ +/* +Some random cgi routines. Used in the LED example and the page that returns the entire +flash as a binary. Also handles the hit counter on the main page. +*/ + +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * Jeroen Domburg wrote this file. As long as you retain + * this notice you can do whatever you want with this stuff. If we meet some day, + * and you think this stuff is worth it, you can buy me a beer in return. + * ---------------------------------------------------------------------------- + */ + + +#include +#include +#include + +#include + +#include "cgi.h" +#include "io.h" + + +//cause I can't be bothered to write an ioGetLed() +static char currLedState=0; + +//Cgi that turns the LED on or off according to the 'led' param in the POST data +int ICACHE_FLASH_ATTR cgiLed(HttpdConnData *connData) { + int len; + char buff[1024]; + + if (connData->conn==NULL) { + //Connection aborted. Clean up. + return HTTPD_CGI_DONE; + } + + len=httpdFindArg(connData->post->buff, "led", buff, sizeof(buff)); + if (len!=0) { + currLedState=atoi(buff); + ioLed(currLedState); + } + + httpdRedirect(connData, "led.tpl"); + return HTTPD_CGI_DONE; +} + + + +//Template code for the led page. +int ICACHE_FLASH_ATTR tplLed(HttpdConnData *connData, char *token, void **arg) { + char buff[128]; + if (token==NULL) return HTTPD_CGI_DONE; + + strcpy(buff, "Unknown"); + if (strcmp(token, "ledstate")==0) { + if (currLedState) { + strcpy(buff, "on"); + } else { + strcpy(buff, "off"); + } + } + httpdSend(connData, buff, -1); + return HTTPD_CGI_DONE; +} + +static int hitCounter=0; + +//Template code for the counter on the index page. +int ICACHE_FLASH_ATTR tplCounter(HttpdConnData *connData, char *token, void **arg) { + char buff[128]; + if (token==NULL) return HTTPD_CGI_DONE; + + if (strcmp(token, "counter")==0) { + hitCounter++; + sprintf(buff, "%d", hitCounter); + } + httpdSend(connData, buff, -1); + return HTTPD_CGI_DONE; +} diff --git a/examples/esphttpd/cgi.h b/examples/esphttpd/cgi.h new file mode 100644 index 0000000..5cb7296 --- /dev/null +++ b/examples/esphttpd/cgi.h @@ -0,0 +1,10 @@ +#ifndef CGI_H +#define CGI_H + +#include + +int cgiLed(HttpdConnData *connData); +int tplLed(HttpdConnData *connData, char *token, void **arg); +int tplCounter(HttpdConnData *connData, char *token, void **arg); + +#endif diff --git a/examples/esphttpd/html/cats/cross-eyed-cat.jpg b/examples/esphttpd/html/cats/cross-eyed-cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e166e871d87539efd48b1695540f6abbc96444af GIT binary patch literal 36487 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

        pGO8 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

        tsrjhj^j>eKG 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 +Upgrade firmware + + + + + +

        +

        Update firmware

        +
        Loading...
        + + +
        + \ No newline at end of file diff --git a/examples/esphttpd/html/flash/style.css b/examples/esphttpd/html/flash/style.css new file mode 100644 index 0000000..7678ec8 --- /dev/null +++ b/examples/esphttpd/html/flash/style.css @@ -0,0 +1,34 @@ + +body { + background-color: #404040; + font-family: sans-serif; +} + +#main { + background-color: #d0d0FF; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border: 2px solid #000000; + width: 800px; + margin: 0 auto; + padding: 20px +} + +#progressbar { + margin: 10px; + padding: 0; + border: 1px solid #000000; + height: 20px; + width: 200px; + background-color: #808080; +} + +#progressbarinner { + width: 10px; + height: 20px; + border: none; + background-color: #00ff00; +} + + diff --git a/examples/esphttpd/html/index.tpl b/examples/esphttpd/html/index.tpl new file mode 100644 index 0000000..737f301 --- /dev/null +++ b/examples/esphttpd/html/index.tpl @@ -0,0 +1,26 @@ + +Esp8266 web server + + + +
        +

        It Works

        +

        +If you see this, it means the tiny li'l website in your ESP8266 does actually work. Fyi, this page has +been loaded %counter% times. +

        + +

        + +

        And because we're on the Internets now, here are the required pictures of cats:
        +
        +
        +
        +

        +
        + diff --git a/examples/esphttpd/html/led.tpl b/examples/esphttpd/html/led.tpl new file mode 100644 index 0000000..7a9cf89 --- /dev/null +++ b/examples/esphttpd/html/led.tpl @@ -0,0 +1,15 @@ +Test + + + +
        +

        The LED

        +

        +If there's a LED connected to GPIO2, it's now %ledstate%. You can change that using the buttons below. +

        +
        + + +
        +
        + diff --git a/examples/esphttpd/html/style.css b/examples/esphttpd/html/style.css new file mode 100644 index 0000000..2a2f758 --- /dev/null +++ b/examples/esphttpd/html/style.css @@ -0,0 +1,17 @@ + +body { + background-color: #404040; + font-family: sans-serif; +} + +#main { + background-color: #d0d0FF; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border: 2px solid #000000; + width: 800px; + margin: 0 auto; + padding: 20px +} + diff --git a/examples/esphttpd/html/test/index.html b/examples/esphttpd/html/test/index.html new file mode 100644 index 0000000..01f4121 --- /dev/null +++ b/examples/esphttpd/html/test/index.html @@ -0,0 +1,9 @@ +Webserver test + + + + +
        +
        Initializing test...
        +
        + \ No newline at end of file diff --git a/examples/esphttpd/html/test/test.js b/examples/esphttpd/html/test/test.js new file mode 100644 index 0000000..03c0cd4 --- /dev/null +++ b/examples/esphttpd/html/test/test.js @@ -0,0 +1,205 @@ + +/* +Code to test the webserver. This depends on: +- The cat images being available, for concurrent espfs testing +- the test.cgi script available, for generic data mangling tests + + +This test does a max of 4 requests in parallel. The nonos SDK supports a max of +5 connections; the default libesphttpd setting is 4 sockets at a time. Unfortunately, +the nonos sdk just closes all sockets opened after the available sockets are opened, +instead of queueing them until a socket frees up. +*/ + + +function log(line) { + $("#log").insertAdjacentHTML('beforeend', line+'
        '); +} + + +//Load an image multiple times in parallel +function testParLdImg(url, ct, doneFn) { + var im=[]; + var state={"loaded":0, "count":ct, "doneFn": doneFn, "error":false}; + for (var x=0; xthis.ts+2000) { + log("..."+Math.floor(e.loaded*100/this.len).toString()+"%"); + this.ts=Date.now(); + } + }.bind(state); + } + xhr.send(); +} + + +function testUploadCgi(len, doneFn) { + var xhr=j(); + var state={"len":len, "doneFn":doneFn, "ts": Date.now()}; + var data=""; + for (var x=0; x=200 && xhr.status<300) { + var ulen=parseInt(xhr.responseText); + if (ulen==this.len) { + log("Uploaded "+this.len+" bytes successfully."); + this.doneFn(true); + } else { + log("Webserver received "+ulen+" bytes successfully, but sent "+this.len+"!"); + this.doneFn(false); + } + } else if (xhr.readyState==4) { + log("Failed! Error "+xhr.status); + this.doneFn(false); + } + }.bind(state); + //If the webbrowser enables it, show progress. + if (typeof xhr.upload.onprogress != 'undefined') { + xhr.upload.onprogress=function(e) { + if (Date.now()>this.ts+2000) { + log("..."+Math.floor(e.loaded*100/e.total).toString()+"%"); + this.ts=Date.now(); + } + }.bind(state); + } + //Upload the file + xhr.send(data); +} + +function hammerNext(state, xhr) { + if (state.done==state.count) { + state.doneFn(!state.error); + } + if (state.started==state.count) return; + xhr.open("GET", "test.cgi?len="+state.len+"&nocache="+Math.floor(Math.random()*100000).toString()); + xhr.onreadystatechange=function(xhr) { + if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) { + if (xhr.response.length==this.len) { + state.done++; + hammerNext(this, xhr); + } else { + log("Downloaded "+xhr.response.length+" bytes successfully, but needed "+this.len+"!"); + state.done++; + hammerNext(this, xhr); + } + } else if (xhr.readyState==4) { + log("Failed! Error "+xhr.status); + state.done++; + hammerNext(this, xhr); + } + }.bind(state, xhr); + //If the webbrowser enables it, show progress. + if (typeof xhr.onprogress != 'undefined') { + xhr.onprogress=function(e) { + if (Date.now()>this.ts+2000) { + log("..."+state.done+"/"+state.count); + this.ts=Date.now(); + } + }.bind(state); + } + state.started++; + xhr.send(); +} + +function testHammer(count, par, len, doneFn) { + var state={"count":count, "started":0, "done":0, "par":par, "len":len, "doneFn":doneFn, "ts": Date.now(), "error":false}; + var xhr=[]; + for (var i=0; iSuccess!
        "); + successCnt++; + } else { + log("Test failed!"); + } + } + tstState++; + if (tstState==1) { + log("Testing parallel load of espfs files..."); + testParLdImg("../cats/kitten-loves-toy.jpg", 3, nextTest); + } else if (tstState==2) { + log("Testing GET request of 32K..."); + testDownloadCgi(32*1024, nextTest); + } else if (tstState==3) { + log("Testing GET request of 128K..."); + testDownloadCgi(128*1024, nextTest); + } else if (tstState==4) { + log("Testing GET request of 512K..."); + testDownloadCgi(512*1024, nextTest); + } else if (tstState==5) { + log("Testing POST request of 512 bytes..."); + testUploadCgi(512, nextTest); + } else if (tstState==6) { + log("Testing POST request of 16K bytes..."); + testUploadCgi(16*1024, nextTest); + } else if (tstState==7) { + log("Testing POST request of 512K bytes..."); + testUploadCgi(512*1024, nextTest); + } else if (tstState==8) { + log("Hammering webserver with 500 requests of size 512..."); + testHammer(500, 3, 512, nextTest); + } else if (tstState==9) { + log("Hammering webserver with 500 requests of size 2048..."); + testHammer(500, 3, 2048, nextTest); + } else { + log("Tests done! "+successCnt+" out of "+(tstState-1)+" tests were successful."); + } +} + + + +window.onload=function(e) { + log("Starting tests."); + nextTest(false); +} + + + diff --git a/examples/esphttpd/html/websocket/index.html b/examples/esphttpd/html/websocket/index.html new file mode 100644 index 0000000..d7423ec --- /dev/null +++ b/examples/esphttpd/html/websocket/index.html @@ -0,0 +1,69 @@ + + + + +WebSocket Test + + + +

        WebSocket Test

        + +
        diff --git a/examples/esphttpd/html/wifi/140medley.min.js b/examples/esphttpd/html/wifi/140medley.min.js new file mode 100644 index 0000000..d1495d1 --- /dev/null +++ b/examples/esphttpd/html/wifi/140medley.min.js @@ -0,0 +1,2 @@ +var t=function(a,b){return function(c,d){return a.replace(/#{([^}]*)}/g,function(a,f){return Function("x","with(x)return "+f).call(c,d||b||{})})}},s=function(a,b){return b?{get:function(c){return a[c]&&b.parse(a[c])},set:function(c,d){a[c]=b.stringify(d)}}:{}}(this.localStorage||{},JSON),p=function(a,b,c,d){c=c||document;d=c[b="on"+b];a=c[b]=function(e){d=d&&d(e=e||c.event);return(a=a&&b(e))?b:d};c=this},m=function(a,b,c){b=document;c=b.createElement("p");c.innerHTML=a;for(a=b.createDocumentFragment();b= +c.firstChild;)a.appendChild(b);return a},$=function(a,b){a=a.match(/^(\W)?(.*)/);return(b||document)["getElement"+(a[1]?a[1]=="#"?"ById":"sByClassName":"sByTagName")](a[2])},j=function(a){for(a=0;a<4;a++)try{return a?new ActiveXObject([,"Msxml2","Msxml3","Microsoft"][a]+".XMLHTTP"):new XMLHttpRequest}catch(b){}}; diff --git a/examples/esphttpd/html/wifi/connecting.html b/examples/esphttpd/html/wifi/connecting.html new file mode 100644 index 0000000..12e3a83 --- /dev/null +++ b/examples/esphttpd/html/wifi/connecting.html @@ -0,0 +1,43 @@ +Connecting... + + + + + +
        +

        Connecting to AP...

        +

        Status:
        +

        ...
        +

        +
        + + diff --git a/examples/esphttpd/html/wifi/icons.png b/examples/esphttpd/html/wifi/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..03109e15a4c83edbec901d41b9e1598d151fcaf4 GIT binary patch literal 914 zcmV;D18w|?P)600006VoOIv0RI60 z0RN!9r;`8x010qNS#tmYE+YT{E+YYWr9XB6000McNliru-V6j3Di2DDcf0@q10P95 zK~#9!?VK@h(?Ar*pOJ@1NRWXcVn9mSQTY~(1&M{BOO`S+GqenyJHnDBLl>mNRH1$c z1Y$)>B&Hh}0ur-3R7o7$T+XS_x##=+q^hwmZsUL7`}^+RQ$+v(A|_G$$&b$L;~(BA z7vSV`_TMoxOJpz<%eb=$X`p}IY-9PA1b6eV-ew!$V`euZ*vFlI zo%aYBjYg#pIv$VRQg1L6IXOty#JTsNIGz_z*2Y7K0Aq~I=kw*4GsT-15jj6i*VVbnwEVs=*E`z`>CQ_&u(#D(w!8jllKlOqT2&RL|#8# zy?+0#IS=rj>rLPM;<%;=Y1f|XOogKopcwAkc)+KRze>6O{NTDQ^h06aibt{-1y@_2uB zJek@jJCkW9hkHq*5#a5)?sD_nut6lsGVl{Zg=gu`^128lq{0yIbj4*LNra$SP}G)Uk9k$AvP z3n?BNBx(z=vqH*k8YCNVIev0000$*YQ3}3cY6NeJv1r z&5%7omctF9b#JjT0krNd;sJO-B)Q(009~si-~o6*B)MK&0RDjj9uSEK&>uj503Lt< z2!H?p0000G9p2adq3<_%?+*xlzk$V2>;ljq5KFF;0tnDh3eX=we*hj3hX>FfKz{%p o5QhiQA3%Qq9)JJ{fB^Aw4Q_yb2{`v!WiFi connection + + + + + +
        +

        +Current WiFi mode: %WiFiMode% +

        +

        +Note: %WiFiapwarn% +

        +
        +

        +To connect to a WiFi network, please select one of the detected networks...
        +

        Scanning...
        +
        +WiFi password, if applicable:
        +
        + +

        +
        + + diff --git a/examples/esphttpd/io.c b/examples/esphttpd/io.c new file mode 100644 index 0000000..c104b9c --- /dev/null +++ b/examples/esphttpd/io.c @@ -0,0 +1,72 @@ + +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * Jeroen Domburg wrote this file. As long as you retain + * this notice you can do whatever you want with this stuff. If we meet some day, + * and you think this stuff is worth it, you can buy me a beer in return. + * ---------------------------------------------------------------------------- + */ + + +#include +//#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define LEDGPIO 2 +#define BTNGPIO 0 + +#ifndef ESP32 +static ETSTimer resetBtntimer; +#endif + +void ioLed(int ena) { +#ifndef ESP32 + //gpio_output_set is overkill. ToDo: use better mactos + if (ena) { + sdk_gpio_output_set((1<=6) { //3 sec pressed + sdk_wifi_station_disconnect(); + sdk_wifi_set_opmode(STATIONAP_MODE); //reset to AP+STA mode + printf("Reset to AP mode. Restarting system...\n"); + sdk_system_restart(); + } + resetCnt=0; + } +} +#endif + + +void ioInit() { +#ifndef ESP32 + PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); + PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); + sdk_gpio_output_set(0, 0, (1< wrote this file. As long as you retain + * this notice you can do whatever you want with this stuff. If we meet some day, + * and you think this stuff is worth it, you can buy me a beer in return. + * ---------------------------------------------------------------------------- + */ + +/* +This is example code for the esphttpd library. It's a small-ish demo showing off +the server, including WiFi connection management capabilities, some IO and +some pictures of cats. +*/ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "io.h" +#include "cgi.h" +#include "cgi-test.h" + +#define AP_SSID "esp-open-rtos AP" +#define AP_PSK "esp-open-rtos" + +//Function that tells the authentication system what users/passwords live on the system. +//This is disabled in the default build; if you want to try it, enable the authBasic line in +//the builtInUrls below. +int myPassFn(HttpdConnData *connData, int no, char *user, int userLen, char *pass, int passLen) { + if (no==0) { + strcpy(user, "admin"); + strcpy(pass, "s3cr3t"); + return 1; +//Add more users this way. Check against incrementing no for each user added. +// } else if (no==1) { +// strcpy(user, "user1"); +// strcpy(pass, "something"); +// return 1; + } + return 0; +} + + +static ETSTimer websockTimer; + +//Broadcast the uptime in seconds every second over connected websockets +static void websocketBcast(void *arg) { + static int ctr=0; + char buff[128]; + while(1) { + ctr++; + sprintf(buff, "Up for %d minutes %d seconds!\n", ctr/60, ctr%60); + cgiWebsockBroadcast("/websocket/ws.cgi", buff, strlen(buff), WEBSOCK_FLAG_NONE); + vTaskDelay(1000/portTICK_PERIOD_MS); + } +} + +//On reception of a message, send "You sent: " plus whatever the other side sent +static void myWebsocketRecv(Websock *ws, char *data, int len, int flags) { + int i; + char buff[128]; + sprintf(buff, "You sent: "); + for (i=0; irecvCb=myWebsocketRecv; + cgiWebsocketSend(ws, "Hi, Websocket!", 14, WEBSOCK_FLAG_NONE); +} + +//On reception of a message, echo it back verbatim +void myEchoWebsocketRecv(Websock *ws, char *data, int len, int flags) { + printf("EchoWs: echo, len=%d\n", len); + cgiWebsocketSend(ws, data, len, flags); +} + +//Echo websocket connected. Install reception handler. +void myEchoWebsocketConnect(Websock *ws) { + printf("EchoWs: connect\n"); + ws->recvCb=myEchoWebsocketRecv; +} + +CgiUploadFlashDef uploadParams={ + .type=CGIFLASH_TYPE_FW, + .fw1Pos=0x2000, + .fw2Pos=((FLASH_SIZE*1024*1024)/2)+0x2000, + .fwSize=((FLASH_SIZE*1024*1024)/2)-0x2000, + .tagName=LIBESPHTTPD_OTA_TAGNAME +}; + + +/* +This is the main url->function dispatching data struct. +In short, it's a struct with various URLs plus their handlers. The handlers can +be 'standard' CGI functions you wrote, or 'special' CGIs requiring an argument. +They can also be auth-functions. An asterisk will match any url starting with +everything before the asterisks; "*" matches everything. The list will be +handled top-down, so make sure to put more specific rules above the more +general ones. Authorization things (like authBasic) act as a 'barrier' and +should be placed above the URLs they protect. +*/ +HttpdBuiltInUrl builtInUrls[]={ + {"*", cgiRedirectApClientToHostname, "esp8266.nonet"}, + {"/", cgiRedirect, "/index.tpl"}, + {"/led.tpl", cgiEspFsTemplate, tplLed}, + {"/index.tpl", cgiEspFsTemplate, tplCounter}, + {"/led.cgi", cgiLed, NULL}, +#ifndef ESP32 + {"/flash/", cgiRedirect, "/flash/index.html"}, + {"/flash/next", cgiGetFirmwareNext, &uploadParams}, + {"/flash/upload", cgiUploadFirmware, &uploadParams}, + {"/flash/reboot", cgiRebootFirmware, NULL}, +#endif + //Routines to make the /wifi URL and everything beneath it work. + +//Enable the line below to protect the WiFi configuration with an username/password combo. +// {"/wifi/*", authBasic, myPassFn}, + + {"/wifi", cgiRedirect, "/wifi/wifi.tpl"}, + {"/wifi/", cgiRedirect, "/wifi/wifi.tpl"}, + {"/wifi/wifiscan.cgi", cgiWiFiScan, NULL}, + {"/wifi/wifi.tpl", cgiEspFsTemplate, tplWlan}, + {"/wifi/connect.cgi", cgiWiFiConnect, NULL}, + {"/wifi/connstatus.cgi", cgiWiFiConnStatus, NULL}, + {"/wifi/setmode.cgi", cgiWiFiSetMode, NULL}, + + {"/websocket/ws.cgi", cgiWebsocket, myWebsocketConnect}, + {"/websocket/echo.cgi", cgiWebsocket, myEchoWebsocketConnect}, + + {"/test", cgiRedirect, "/test/index.html"}, + {"/test/", cgiRedirect, "/test/index.html"}, + {"/test/test.cgi", cgiTestbed, NULL}, + + {"*", cgiEspFsHook, NULL}, //Catch-all cgi function for the filesystem + {NULL, NULL, NULL} +}; + +void wifiInit() { + struct ip_info ap_ip; + uint8_t sdk_wifi_get_opmode(); + switch(sdk_wifi_get_opmode()) { + case STATIONAP_MODE: + case SOFTAP_MODE: + IP4_ADDR(&ap_ip.ip, 172, 16, 0, 1); + IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); + IP4_ADDR(&ap_ip.netmask, 255, 255, 0, 0); + sdk_wifi_set_ip_info(1, &ap_ip); + + struct sdk_softap_config ap_config = { + .ssid = AP_SSID, + .ssid_hidden = 0, + .channel = 3, + .ssid_len = strlen(AP_SSID), + .authmode = AUTH_WPA_WPA2_PSK, + .password = AP_PSK, + .max_connection = 3, + .beacon_interval = 100, + }; + sdk_wifi_softap_set_config(&ap_config); + + ip_addr_t first_client_ip; + IP4_ADDR(&first_client_ip, 172, 16, 0, 2); + dhcpserver_start(&first_client_ip, 4); + dhcpserver_set_dns(&ap_ip.ip); + dhcpserver_set_router(&ap_ip.ip); + break; + case STATION_MODE: + break; + default: + break; + } +} + +//Main routine. Initialize stdout, the I/O, filesystem and the webserver and we're done. +void user_init(void) { + uart_set_baud(0, 115200); + + wifiInit(); + ioInit(); + captdnsInit(); + + espFsInit((void*)(_binary_build_web_espfs_bin_start)); + httpdInit(builtInUrls, 80); + + xTaskCreate(websocketBcast, "wsbcast", 300, NULL, 3, NULL); + + printf("\nReady\n"); +} diff --git a/extras/libesphttpd/component.mk b/extras/libesphttpd/component.mk new file mode 100644 index 0000000..22e433e --- /dev/null +++ b/extras/libesphttpd/component.mk @@ -0,0 +1,64 @@ +# Component makefile for extras/libesphttpd + +INC_DIRS += $(libesphttpd_ROOT)/libesphttpd/include $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/lib/heatshrink + +LIBESPHTTPD_MAX_CONNECTIONS ?= 4 +LIBESPHTTPD_STACKSIZE ?= 2048 +LIBESPHTTPD_OTA_TAGNAME ?= generic + +RBOOT_OTA ?= 1 +ESP_IP ?= 192.168.4.1 + +# args for passing into compile rule generation +libesphttpd_SRC_DIR = $(libesphttpd_ROOT)/libesphttpd/core $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/util +libesphttpd_CFLAGS += -DFREERTOS -DUSE_OPEN_SDK -DHTTPD_MAX_CONNECTIONS=$(LIBESPHTTPD_MAX_CONNECTIONS) -DHTTPD_STACKSIZE=$(LIBESPHTTPD_STACKSIZE) -DESPFS_HEATSHRINK -D__ets__ -DRBOOT_OTA=1 -std=gnu99 + +$(eval $(call component_compile_rules,libesphttpd)) + +rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) + +LIBESPHTTPD_MKESPFSIMAGE_DIR = $(BUILD_DIR)mkespfsimage + +LIBESPHTTPD_MKESPFS = $(LIBESPHTTPD_MKESPFSIMAGE_DIR)/mkespfsimage +LIBESPHTTPD_HTML_DIR = html +LIBESPHTTPD_HTML_FILES = $(call rwildcard,$(LIBESPHTTPD_HTML_DIR),*) +LIBESPHTTPD_HTML_TINY_DIR = $(BUILD_DIR)html +LIBESPHTTPD_HTML_ESPFS = $(BUILD_DIR)web.espfs.bin +LIBESPHTTPD_HTML_ESPFS_PATH = $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_HTML_ESPFS) +LIBESPHTTPD_HTML_ESPFS_OBJ = $(BUILD_DIR)web.espfs.o + +CROSS_BINARY_ARCH ?= xtensa +CROSS_OUTPUT_TARGET ?= elf32-xtensa-le + +LIBESPHTTPD_HTML_TINY ?= no + +CURL = curl +LIBESPHTTPD_CURL_OPTS = --connect-timeout 3 --max-time 60 -s + +$(LIBESPHTTPD_MKESPFSIMAGE_DIR): + $(Q)mkdir -p $(LIBESPHTTPD_MKESPFSIMAGE_DIR) + +$(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS): $(LIBESPHTTPD_MKESPFSIMAGE_DIR) + make -C $(libesphttpd_ROOT)/libesphttpd/espfs/mkespfsimage CC=gcc GZIP_COMPRESSION=yes USE_HEATSHRINK=yes BUILD_DIR=$(PROGRAM_REAL_ROOT)/$(BUILD_DIR) + +$(LIBESPHTTPD_HTML_ESPFS): $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS) $(LIBESPHTTPD_HTML_FILES) + cd $(LIBESPHTTPD_HTML_DIR) && find . | $< > $(LIBESPHTTPD_HTML_ESPFS_PATH) || rm -f $(LIBESPHTTPD_HTML_ESPFS_PATH) + +$(LIBESPHTTPD_HTML_ESPFS_OBJ): $(LIBESPHTTPD_HTML_ESPFS) + $(Q)$(OBJCOPY) -I binary -O $(CROSS_OUTPUT_TARGET) -B $(CROSS_BINARY_ARCH) --rename-section .data=.irom.espfs $^ $@ + +$(BUILD_DIR)libesphttpd.a: $(LIBESPHTTPD_HTML_ESPFS_OBJ) + +htmlfs: $(LIBESPHTTPD_HTML_ESPFS_OBJ) + +$(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg: + make -C $(libesphttpd_ROOT)/libesphttpd/mkupgimg CC=gcc RBOOT_OTA=$(RBOOT_OTA) + +$(FIRMWARE_DIR)ota_$(PROGRAM).bin: $(FW_FILE) $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg + $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg $(FW_FILE) "$(LIBESPHTTPD_OTA_TAGNAME)" $(FIRMWARE_DIR)ota_$(PROGRAM).bin + +ota: $(FIRMWARE_DIR)ota_$(PROGRAM).bin $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg + +webflash: $(FIRMWARE_DIR)ota_$(PROGRAM).bin + $(CURL) $(LIBESPHTTPD_CURL_OPTS) --data-binary "@$(FIRMWARE_DIR)ota_$(PROGRAM).bin" http://$(ESP_IP)/flash/upload && $(CURL) $(LIBESPHTTPD_CURL_OPTS) http://$(ESP_IP)/flash/reboot + diff --git a/extras/libesphttpd/libesphttpd b/extras/libesphttpd/libesphttpd new file mode 160000 index 0000000..c329aee --- /dev/null +++ b/extras/libesphttpd/libesphttpd @@ -0,0 +1 @@ +Subproject commit c329aeef0469a40152e1630dbd0f0b34bcebd4d5 From f8c87c3d6c9a9013915fe46802fe998ea3a579b2 Mon Sep 17 00:00:00 2001 From: Peter Dunshee Date: Fri, 27 Oct 2017 09:04:57 -0500 Subject: [PATCH 229/349] Fix a typo in ssd1306 driver that prevents compiling with c++ compiler --- extras/ssd1306/ssd1306.h | 1 - 1 file changed, 1 deletion(-) diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index f79ed66..86abaab 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -526,7 +526,6 @@ int ssd1306_start_scroll_hori(const ssd1306_t *dev, bool way, uint8_t start, uin int ssd1306_start_scroll_hori_vert(const ssd1306_t *dev, bool way, uint8_t start, uint8_t stop, uint8_t dy, ssd1306_scroll_t frame); #ifdef __cplusplus -extern "C" } #endif From 1d3ca574f14374a5261319e0ce8c3a2625883b91 Mon Sep 17 00:00:00 2001 From: rus Date: Wed, 25 Oct 2017 12:58:00 +0500 Subject: [PATCH 230/349] Fix #471 --- examples/ds3231_test/ds3231_test.c | 2 +- extras/bmp180/bmp180.c | 4 +-- extras/bmp280/README.md | 3 +- extras/i2c/i2c.c | 55 ++++++++++++++++++------------ extras/i2c/i2c.h | 19 ++++++++--- extras/sht3x/README.md | 2 +- 6 files changed, 54 insertions(+), 31 deletions(-) diff --git a/examples/ds3231_test/ds3231_test.c b/examples/ds3231_test/ds3231_test.c index b6f41bb..aeef939 100644 --- a/examples/ds3231_test/ds3231_test.c +++ b/examples/ds3231_test/ds3231_test.c @@ -41,7 +41,7 @@ void user_init(void) printf("SDK version : %s\n", sdk_system_get_sdk_version()); printf("GIT version : %s\n", GITSHORTREV); - i2c_init(0,scl,sda,I2C_FREQ_400K); + i2c_init(0, scl, sda, I2C_FREQ_400K); xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL); } diff --git a/extras/bmp180/bmp180.c b/extras/bmp180/bmp180.c index 947772b..e1627a1 100644 --- a/extras/bmp180/bmp180.c +++ b/extras/bmp180/bmp180.c @@ -216,8 +216,8 @@ typedef struct } bmp180_command_t; // Just works due to the fact that QueueHandle_t is a "void *" -static QueueHandle_t bmp180_rx_queue[MAX_I2C_BUS] = { NULL }; -static TaskHandle_t bmp180_task_handle[MAX_I2C_BUS] = { NULL }; +static QueueHandle_t bmp180_rx_queue[I2C_MAX_BUS] = { NULL }; +static TaskHandle_t bmp180_task_handle[I2C_MAX_BUS] = { NULL }; // // Forward declarations diff --git a/extras/bmp280/README.md b/extras/bmp280/README.md index 09e0115..29d14f0 100644 --- a/extras/bmp280/README.md +++ b/extras/bmp280/README.md @@ -21,9 +21,10 @@ from it. Connect BMP280 or BME280 module to you ESP8266 module and initialize the I2C SCL and SDA pins: ``` +const uint8_t bus = 0; const uint8_t scl_pin = 0; const uint8_t sda_pin = 2; -i2c_init(scl_pin, sda_pin); +i2c_init(bus, scl_pin, sda_pin, I2C_FREQ_100K); ``` diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index 3ba0caf..6379736 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -38,7 +38,7 @@ #define debug(fmt, ...) #endif -#define CLK_STRETCH (10) +//#define CLK_STRETCH (10) // Following array contain delay values for different frequencies // Warning: 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz @@ -60,22 +60,29 @@ typedef struct i2c_bus_description bool started; bool flag; bool force; + uint32_t clk_stretch; } i2c_bus_description_t; -static i2c_bus_description_t i2c_bus[MAX_I2C_BUS]; +static i2c_bus_description_t i2c_bus[I2C_MAX_BUS]; inline bool i2c_status(uint8_t bus) { return i2c_bus[bus].started; } -void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) +int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) { + if (bus >= I2C_MAX_BUS) { + debug("Invalid bus"); + return -EINVAL; + } + i2c_bus[bus].started = false; i2c_bus[bus].flag = false; i2c_bus[bus].g_scl_pin = scl_pin; i2c_bus[bus].g_sda_pin = sda_pin; i2c_bus[bus].frequency = freq; + i2c_bus[bus].clk_stretch = I2C_DEFAULT_CLK_STRETCH; // Just to prevent these pins floating too much if not connected. gpio_set_pullup(i2c_bus[bus].g_scl_pin, 1, 1); @@ -90,16 +97,24 @@ void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) // Prevent user, if frequency is high if (sdk_system_get_cpu_freq() == SYS_CPU_80MHZ) - if (i2c_freq_array[i2c_bus[bus].frequency][1] == 1) + if (i2c_freq_array[i2c_bus[bus].frequency][1] == 1) { debug("Max frequency is 320Khz at 80MHz"); + return -ENOTSUP; + } + return 0; } -void i2c_frequency(uint8_t bus, i2c_freq_t freq) +void i2c_set_frequency(uint8_t bus, i2c_freq_t freq) { i2c_bus[bus].frequency = freq; } +void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch) +{ + i2c_bus[bus].clk_stretch = clk_stretch; +} + static inline void i2c_delay(uint8_t bus) { uint32_t delay; @@ -159,7 +174,7 @@ void i2c_start(uint8_t bus) // Set SDA to 1 (void) read_sda(bus); i2c_delay(bus); - uint32_t clk_stretch = CLK_STRETCH; + uint32_t clk_stretch = i2c_bus[bus].clk_stretch; while (read_scl(bus) == 0 && clk_stretch--) ; // Repeated start setup time, minimum 4.7us @@ -178,7 +193,7 @@ void i2c_start(uint8_t bus) // Output stop condition bool i2c_stop(uint8_t bus) { - uint32_t clk_stretch = CLK_STRETCH; + uint32_t clk_stretch = i2c_bus[bus].clk_stretch; // Set SDA to 0 clear_sda(bus); i2c_delay(bus); @@ -203,7 +218,7 @@ bool i2c_stop(uint8_t bus) // Write a bit to I2C bus static void i2c_write_bit(uint8_t bus, bool bit) { - uint32_t clk_stretch = CLK_STRETCH; + uint32_t clk_stretch = i2c_bus[bus].clk_stretch; if (bit) { (void) read_sda(bus); } else { @@ -225,7 +240,7 @@ static void i2c_write_bit(uint8_t bus, bool bit) // Read a bit from I2C bus static bool i2c_read_bit(uint8_t bus) { - uint32_t clk_stretch = CLK_STRETCH; + uint32_t clk_stretch = i2c_bus[bus].clk_stretch; bool bit; // Let the slave drive data (void) read_sda(bus); @@ -272,24 +287,20 @@ static int i2c_bus_test(uint8_t bus) { taskENTER_CRITICAL(); // To prevent task swaping after checking flag and before set it! bool status = i2c_bus[bus].flag; // get current status - if(i2c_bus[bus].force) - { + if (i2c_bus[bus].force) { i2c_bus[bus].flag = true; // force bus on taskEXIT_CRITICAL(); - if(status) + if (status) i2c_stop(bus); //Bus was busy, stop it. } - else - { - if (status) - { + else { + if (status) { taskEXIT_CRITICAL(); debug("busy"); taskYIELD(); // If bus busy, change task to try finish last com. return -EBUSY; // If bus busy, inform user } - else - { + else { i2c_bus[bus].flag = true; // Set Bus busy taskEXIT_CRITICAL(); } @@ -299,12 +310,12 @@ static int i2c_bus_test(uint8_t bus) int i2c_slave_write(uint8_t bus, uint8_t slave_addr, const uint8_t *data, const uint8_t *buf, uint32_t len) { - if(i2c_bus_test(bus)) + if (i2c_bus_test(bus)) return -EBUSY; i2c_start(bus); if (!i2c_write(bus, slave_addr << 1)) goto error; - if(data != NULL) + if (data != NULL) if (!i2c_write(bus, *data)) goto error; while (len--) { @@ -325,9 +336,9 @@ error: int i2c_slave_read(uint8_t bus, uint8_t slave_addr, const uint8_t *data, uint8_t *buf, uint32_t len) { - if(i2c_bus_test(bus)) + if (i2c_bus_test(bus)) return -EBUSY; - if(data != NULL) { + if (data != NULL) { i2c_start(bus); if (!i2c_write(bus, slave_addr << 1)) goto error; diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index 80015a6..26e3926 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -40,10 +40,12 @@ extern "C" { /** * Define i2c bus max number */ -#ifndef MAX_I2C_BUS - #define MAX_I2C_BUS 2 +#ifndef I2C_MAX_BUS + #define I2C_MAX_BUS 2 #endif +#define I2C_DEFAULT_CLK_STRETCH (10) + typedef enum { I2C_FREQ_80K = 0,//!< I2C_FREQ_80K @@ -69,15 +71,24 @@ typedef struct i2c_dev * @param scl_pin SCL pin for I2C * @param sda_pin SDA pin for I2C * @param freq frequency of bus (ex : I2C_FREQ_400K) + * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH would be good in most cases + * @return Non-zero if error occured */ -void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq); +int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq); /** * Change bus frequency * @param bus Bus i2c selection * @param freq frequency of bus (ex : I2C_FREQ_400K) */ -void i2c_frequency(uint8_t bus, i2c_freq_t freq); +void i2c_set_frequency(uint8_t bus, i2c_freq_t freq); + +/** + * Change clock stretch + * @param bus I2C bus + * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH by default + */ +void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch); /** * Write a byte to I2C bus. diff --git a/extras/sht3x/README.md b/extras/sht3x/README.md index c8cd13c..e303c67 100644 --- a/extras/sht3x/README.md +++ b/extras/sht3x/README.md @@ -83,7 +83,7 @@ Before using the SHT3x driver, function ```i2c_init``` needs to be called for ea #define I2C_SDA_PIN GPIO_ID_PIN((4)) ... -i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K)) +i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K) ... ``` From 691cf4ed62b00daf2e34414629c1cd3bd469e7fc Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Tue, 7 Nov 2017 08:47:58 +0100 Subject: [PATCH 231/349] Driver for Bosch Sensortec BME680 added (#469) * Driver for Bosch Sensortec BME680 added --- examples/bme680/README.md | 46 + .../bme680/bme680_heating_profiles/Makefile | 3 + .../bme680_heating_profiles.c | 125 ++ examples/bme680/bme680_one_sensor/Makefile | 3 + .../bme680_one_sensor/bme680_one_sensor.c | 131 ++ examples/bme680/bme680_two_sensors/Makefile | 3 + .../bme680_two_sensors/bme680_two_sensors.c | 155 ++ extras/bme680/README.md | 555 +++++++ extras/bme680/bme680.c | 1475 +++++++++++++++++ extras/bme680/bme680.h | 384 +++++ extras/bme680/bme680_types.h | 192 +++ extras/bme680/component.mk | 9 + 12 files changed, 3081 insertions(+) create mode 100644 examples/bme680/README.md create mode 100644 examples/bme680/bme680_heating_profiles/Makefile create mode 100644 examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c create mode 100644 examples/bme680/bme680_one_sensor/Makefile create mode 100644 examples/bme680/bme680_one_sensor/bme680_one_sensor.c create mode 100644 examples/bme680/bme680_two_sensors/Makefile create mode 100644 examples/bme680/bme680_two_sensors/bme680_two_sensors.c create mode 100644 extras/bme680/README.md create mode 100644 extras/bme680/bme680.c create mode 100644 extras/bme680/bme680.h create mode 100644 extras/bme680/bme680_types.h create mode 100644 extras/bme680/component.mk diff --git a/examples/bme680/README.md b/examples/bme680/README.md new file mode 100644 index 0000000..d8a1a30 --- /dev/null +++ b/examples/bme680/README.md @@ -0,0 +1,46 @@ +# BME680 Driver Examples + +These examples demonstrate the usage of the BME680 driver with only one and multiple BME680 sensors. + +## Hardware setup + +There are examples that are using either I2C or SPI with one or two sensors. + +For examples using BME680 sensor as I2C slave, just use GPIO5 (SCL) and GPIO4 (SDA) to connect to the BME680 sensor's I2C interface. + +``` + +-------------------------+ +--------+ + | ESP8266 Bus 0 | | BME680 | + | GPIO 5 (SCL) +---->+ SCL | + | GPIO 4 (SDA) +-----+ SDA | + | | +--------+ + +-------------------------+ +``` + +For examples that are using SPI, BME680 sensor has to be connected to SPI bus 1. Since GPIO15 used as default CS signal of SPI bus 1 does not work correctly together with BME680, you have to connect CS to another GPIO pin, e.g., GPIO2. + +``` + +-------------------------+ +----------+ + | ESP8266 Bus 1 | | BME680 | + | GPIO 12 (MISO) <-----< SDO | + | GPIO 13 (MOSI) >-----> SDI | + | GPIO 14 (SCK) >-----> SCK | + | GPIO 2 (CS) >-----> CS | + +-------------------------+ +----------+ +``` + +The example with two sensors use the combination of I2C and SPI. + +## Example description + +__*bme680_one_sensor*__ + +This simple example uses only **one sensor** connected either to **I2C** or to **SPI**. Which of these interfaces is used is defined by constant **SPI_USED**. The user task triggers a measurement every second and uses function ```vTaskDelay``` to wait for the measurement results. + +__*bme680_two_sensors*__ + +This example uses **two sensors**. One sensor is connected to **I2C** bus 0 and one sensor is connected to **SPI**. It defines two different user tasks, one for each sensor. It demonstrate the possible approaches to wait for measurement results, active busy waiting using ```bme680_is_measuring``` and passive waiting using *vTaskDelay*. + +__*bme680_heating_profiles*__ + +This simple example uses one **only sensor** connected to **I2C** bus 0 and a sequence of heating profiles. The heating profile is changed with each cycle. diff --git a/examples/bme680/bme680_heating_profiles/Makefile b/examples/bme680/bme680_heating_profiles/Makefile new file mode 100644 index 0000000..c3158ba --- /dev/null +++ b/examples/bme680/bme680_heating_profiles/Makefile @@ -0,0 +1,3 @@ +PROGRAM=BME680_heating_profiles +EXTRA_COMPONENTS = extras/i2c extras/bme680 +include ../../../common.mk diff --git a/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c new file mode 100644 index 0000000..56d7eb5 --- /dev/null +++ b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c @@ -0,0 +1,125 @@ +/** + * Simple example with one sensor connected to I2C bus 0 and a sequence of + * heating profiles. The heating profile is changed with each cycle. + * + * Harware configuration: + * + * I2C +-------------------------+ +----------+ + * | ESP8266 Bus 0 | | BME680 | + * | GPIO 5 (SCL) ------> SCL | + * | GPIO 4 (SDA) ------- SDA | + * +-------------------------+ +----------+ + */ + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include communication interface driver +#include "i2c/i2c.h" + +// include BME680 driver +#include "bme680/bme680.h" + +// define I2C interface for BME680 sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +static bme680_sensor_t* sensor; + +/* + * User task that triggers measurements of sensor every seconds. It uses + * function *vTaskDelay* to wait for measurement results and changes the + * heating profile in each cycle. + */ +void user_task(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + uint32_t count = 0; + + while (1) + { + if (count++ < 60) + // disable gas measurement for cycle counter < 60 + bme680_use_heater_profile (sensor, BME680_HEATER_NOT_USED); + else + // change heating profile in each cycle + switch (count % 5) + { + case 0: bme680_use_heater_profile (sensor, 0); break; + case 1: bme680_use_heater_profile (sensor, 1); break; + case 2: bme680_use_heater_profile (sensor, 2); break; + case 3: bme680_use_heater_profile (sensor, 3); break; + case 4: bme680_use_heater_profile (sensor, 4); break; + } + + // measurement duration changes in each cycle + uint32_t duration = bme680_get_measurement_duration(sensor); + + // trigger the sensor to start one TPHG measurement cycle + if (bme680_force_measurement (sensor)) + { + // passive waiting until measurement results are available + vTaskDelay (duration); + + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + } + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // Set UART Parameter + uart_set_baud(0, 115200); + // Give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + // Init the sensor connected either to SPI. + sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + #else + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Init the sensor connected either to I2C. + sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); + #endif + + if (sensor) + { + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + + /** -- OPTIONAL PART -- */ + + // Changes the oversampling rates to 4x oversampling for temperature + // and 2x oversampling for humidity. Pressure measurement is skipped. + bme680_set_oversampling_rates(sensor, osr_4x, osr_none, osr_2x); + + // Change the IIR filter size for temperature and pressure to 7. + bme680_set_filter_size(sensor, iir_size_7); + + // Define a number of different heating profiles + bme680_set_heater_profile (sensor, 0, 200, 100); + bme680_set_heater_profile (sensor, 1, 250, 120); + bme680_set_heater_profile (sensor, 2, 300, 140); + bme680_set_heater_profile (sensor, 3, 350, 160); + bme680_set_heater_profile (sensor, 4, 400, 180); + } +} diff --git a/examples/bme680/bme680_one_sensor/Makefile b/examples/bme680/bme680_one_sensor/Makefile new file mode 100644 index 0000000..dba740d --- /dev/null +++ b/examples/bme680/bme680_one_sensor/Makefile @@ -0,0 +1,3 @@ +PROGRAM=BME680_One_Sensor +EXTRA_COMPONENTS = extras/i2c extras/bme680 +include ../../../common.mk diff --git a/examples/bme680/bme680_one_sensor/bme680_one_sensor.c b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c new file mode 100644 index 0000000..65de6f1 --- /dev/null +++ b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c @@ -0,0 +1,131 @@ +/** + * Simple example with one sensor connected either to I2C bus 0 or + * SPI bus 1. + * + * Harware configuration: + * + * I2C +-------------------------+ +----------+ + * | ESP8266 Bus 0 | | BME680 | + * | GPIO 5 (SCL) ------> SCL | + * | GPIO 4 (SDA) ------- SDA | + * +-------------------------+ +----------+ + * + * SPI +-------------------------+ +----------+ + * | ESP8266 Bus 1 | | BME680 | + * | GPIO 12 (MISO) <-----< SDO | + * | GPIO 13 (MOSI) >-----> SDI | + * | GPIO 14 (SCK) >-----> SCK | + * | GPIO 2 (CS) >-----> CS | + * +-------------------------+ +----------+ + */ + +// Uncomment to use SPI +// #define SPI_USED + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include communication interface driver +#include "esp/spi.h" +#include "i2c/i2c.h" + +// include BME680 driver +#include "bme680/bme680.h" + + +#ifdef SPI_USED +// define SPI interface for BME680 sensors +#define SPI_BUS 1 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used +#else +// define I2C interface for BME680 sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 +#endif + +static bme680_sensor_t* sensor; + +/* + * User task that triggers measurements of sensor every seconds. It uses + * function *vTaskDelay* to wait for measurement results. Busy wating + * alternative is shown in comments + */ +void user_task(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + // as long as sensor configuration isn't changed, duration is constant + uint32_t duration = bme680_get_measurement_duration(sensor); + + while (1) + { + // trigger the sensor to start one TPHG measurement cycle + if (bme680_force_measurement (sensor)) + { + // passive waiting until measurement results are available + vTaskDelay (duration); + + // alternatively: busy waiting until measurement results are available + // while (bme680_is_measuring (sensor)) ; + + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + } + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // Set UART Parameter + uart_set_baud(0, 115200); + // Give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + // Init the sensor connected either to SPI. + sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + #else + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Init the sensor connected either to I2C. + sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); + #endif + + if (sensor) + { + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + + /** -- OPTIONAL PART -- */ + + // Changes the oversampling rates to 4x oversampling for temperature + // and 2x oversampling for humidity. Pressure measurement is skipped. + bme680_set_oversampling_rates(sensor, osr_4x, osr_none, osr_2x); + + // Change the IIR filter size for temperature and pressure to 7. + bme680_set_filter_size(sensor, iir_size_7); + + // Change the heater profile 0 to 200 degree Celcius for 100 ms. + bme680_set_heater_profile (sensor, 0, 200, 100); + bme680_use_heater_profile (sensor, 0); + + // Set ambient temperature to 10 degree Celsius + bme680_set_ambient_temperature (sensor, 10); + } +} diff --git a/examples/bme680/bme680_two_sensors/Makefile b/examples/bme680/bme680_two_sensors/Makefile new file mode 100644 index 0000000..e17e876 --- /dev/null +++ b/examples/bme680/bme680_two_sensors/Makefile @@ -0,0 +1,3 @@ +PROGRAM=BME680_Tow_Sensors +EXTRA_COMPONENTS = extras/i2c extras/bme680 +include ../../../common.mk diff --git a/examples/bme680/bme680_two_sensors/bme680_two_sensors.c b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c new file mode 100644 index 0000000..5fa1999 --- /dev/null +++ b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c @@ -0,0 +1,155 @@ +/** + * Simple example with two sensors, one sensor connected to I2C bus 0 and + * one sensor connected to SPI. It defines two different user tasks, one for + * each sensor. It demonstrate the possible approaches to wait for measurement + * results, active busy waiting using ```bme680_is_measuring``` and passive + * waiting using *vTaskDelay*. + * + * Harware configuration: + * + * +-------------------------+ +----------+ + * | ESP8266 I2C Bus 0 | | BME680_1 | + * | GPIO 5 (SCL) ------> SCL | + * | GPIO 4 (SDA) ------- SDA | + * | | +----------+ + * | SPI Bus 1 | | BME680_2 | + * | GPIO 12 (MISO) <------ SDO | + * | GPIO 13 (MOSI) >-----> SDI | + * | GPIO 14 (SCK) >-----> SCK | + * | GPIO 2 (CS) >-----> CS | + * +-------------------------+ +----------+ + */ + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include communication interface driver +#include "esp/spi.h" +#include "i2c/i2c.h" + +// include BME680 driver +#include "bme680/bme680.h" + +// define I2C interface for BME680 sensor 1 +#define SPI_BUS 1 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used +// define SPI interface for BME680 sensor 2 +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +static bme680_sensor_t* sensor1; +static bme680_sensor_t* sensor2; + +/* + * User task that triggers measurements of sensor1 every 5 seconds and + * uses *vTaskDelay* to wait for measurement results. + */ +void user_task_sensor1(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + uint32_t duration = bme680_get_measurement_duration (sensor1); + + while (1) + { + // trigger the sensor to start one TPHG measurement cycle + if (bme680_force_measurement (sensor1)) + { + + // passive waiting until measurement results are available + vTaskDelay (duration); + + // get the results and so something with them + if (bme680_get_results_float (sensor1, &values)) + printf("%.3f BME680 Sensor1: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + } + + // passive waiting until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} + +/* + * User task that triggers measurements of sensor1 every 2 seconds and + * uses *bme680_is_measuring* to wait for measurement results. + */ +void user_task_sensor2(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // trigger the sensor to start one TPHG measurement cycle + if (bme680_force_measurement (sensor2)) + { + // busy waiting until measurement results are available + while (bme680_is_measuring (sensor2)) ; + + // get the results and so something with them + if (bme680_get_results_float (sensor2, &values)) + printf("%.3f BME680 Sensor2: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + } + + // passive waiting until 2 seconds are over + vTaskDelayUntil(&last_wakeup, 2000 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // Set UART Parameter + uart_set_baud(0, 115200); + // Give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Init the sensors connected to different I2C buses with same address + sensor1 = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); + sensor2 = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + if (sensor1 && sensor2) + { + // Create the tasks that use the sensors + xTaskCreate(user_task_sensor1, "user_task_sensor1", 256, NULL, 2, 0); + xTaskCreate(user_task_sensor2, "user_task_sensor2", 256, NULL, 2, 0); + + // That's it. + + /** -- OPTIONAL PART -- */ + + // Changes the oversampling rates for both sensor to different values + bme680_set_oversampling_rates(sensor1, osr_4x, osr_2x, osr_1x); + bme680_set_oversampling_rates(sensor2, osr_8x, osr_8x, osr_8x); + + // Change the IIR filter size for temperature and and pressure to 7. + bme680_set_filter_size(sensor1, iir_size_7); + bme680_set_filter_size(sensor2, iir_size_7); + + // Change the heater profile 0 to 200 degree Celcius for 150 ms. + bme680_set_heater_profile (sensor1, 0, 200, 150); + bme680_set_heater_profile (sensor2, 0, 200, 150); + + // Activate the heater profile 0 + bme680_use_heater_profile (sensor1, 0); + bme680_use_heater_profile (sensor2, 0); + } +} diff --git a/extras/bme680/README.md b/extras/bme680/README.md new file mode 100644 index 0000000..629322f --- /dev/null +++ b/extras/bme680/README.md @@ -0,0 +1,555 @@ +# Driver for **BME680** digital **environmental sensor** + +This driver is written for usage with the ESP8266 and FreeRTOS. It supports multiple BME680 sensors which are either connected to the SPI or to different I2C interfaces with different addresses. + +## About the sensor + +BME680 is an ultra-low-power environmental sensor that integrates temperature, pressure, humidity and gas sensors in only one unit. + +## Communication interfaces + +The BME680 sensor can be connected using I2C or SPI. + +The I2C interface supports data rates up to 3.4 Mbps. It is possible to connect multiple BME680 sensors with different I2C slave addresses to the same I2C bus or to different I2C buses. Possible I2C slave addresses are 0x76 and 0x77. + +The SPI interface allows clock rates up to 10 MHz and the SPI modes '00' (CPOL=CPHA=0) and '11' (CPOL=CPHA=1). + +Interface selection is done automatically by the sensor using the SPI CS signal. As long as the CS signal keeps high after power-on reset, the I2C interface is used. Once the CS signal has been pulled down, SPI interface is used until next power-on reset. + +## Measurement process + +Once the BME680 has been initialized, it can be used for measurements. The BME680 operates in two different modes, the **sleep mode** and the **forced mode**. + +The sensor starts after power-up automatically in the *sleep mode* where it does not perform any measurement and consumes only 0.15 μA. Measurements are only done in *forced mode*. + +**Please note:** There are two further undocumented modes, the *parallel* and the *sequential* mode. They can't be supported by the driver, since it is not clear what they do and how to use them. + +#### Measurement cylce + +To perform measurements, the BME680 sensor has to be triggered to switch to the **forced mode**. In this mode, it performs exactly one measurement of temperature, pressure, humidity, and gas in that order, the so-called **TPHG measurement cycle**. After the execution of this TPHG measurement cycle, **raw sensor data** become available and the sensor returns automatically back to sleep mode. + +Each of the individual measurements can be configured or skipped separately via the sensor settings, see section **Measurement settings**. Dependent on the configuration, the **duration of a TPHG measurement cycle** can vary from some milliseconds up to about 4.5 seconds, especially if gas measurement is enabled. + +To avoid the blocking of the user task during measurements, the measurement process is therefore separated into the following steps: + +1. Trigger the sensor with function ```bme680_force_measurement``` to switch to *forced mode* in which it performs exactly one THPG measurement cycle. + +2. Wait the measurement duration using function ```vTaskDelay``` and the value returned from function ```bme680_get_measurement_duration``` or wait as long as function ```bme680_is_measuring``` returns true. + +3. Fetch the results as fixed point values with function ```bme680_get_results_fixed``` or as floating point values with function ```bme680_get_results_float```. + +``` +... +// as long as sensor configuration isn't changed, the duration can be considered as constant +uint32_t duration = bme680_get_measurement_duration(sensor); +... +if (bme680_force_measurement (sensor)) // STEP 1 +{ + // STEP 2: passive waiting until measurement results are available + vTaskDelay (duration); + + // STEP 3: get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + ... +} +... +``` +Alternatively, busy waiting can be realized using function ```bme680_is_measuring```. +``` +... +if (bme680_force_measurement (sensor)) // STEP 1 +{ + // STEP 2: busy waiting until measurement results are available + while (bme680_is_measuring (sensor)) ; + + // STEP 3: get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + ... +} +... +``` + +For convenience, it is also possible to use the high-level functions ```bme680_measure_float``` or ```bme680_measure_fixed```. These functions combine all 3 steps above within a single function and are therefore very easy to use. **Please note** that these functions must not be used when they are called from a software timer callback function since the calling task is delayed using function *vTaskDelay*. + +``` +... +// ONE STEP: measure, wait, get the results and do something with them +if (bme680_measure_float (sensor, &values)) + ... +... +``` + +#### Measurement results + +Once the sensor has finished the measurement raw data are available at the sensor. Either function ```bme680_get_results_fixed``` or function ```bme680_get_results_float``` can be used to fetch the results. Both functions read raw data from the sensor and converts them into utilizable fixed point or floating point sensor values. + +**Please note:** Conversion of raw sensor data into the final sensor values is based on very complex calculations that use a large number of calibration parameters. Therefore, the driver does not provide functions that only return the raw sensor data. + +Dependent on sensor value representation, measurement results contain different dimensions: + +| Value | Fixed Point | Floating Point | Conversion +| ----------- | ------------- | -------- |----------- +| temperature | 1/100 °C | °C | float = fixed / 100 +| pressure | Pascal | hPascal | float = fixed / 100 +| humidity | 1/1000 % | % | float = fixed / 1000 +| gas_resistance | Ohm | Ohm | float = fixed + +The gas resistance value in Ohm represents the resistance of sensor's gas sensitive layer. + +If the TPHG measurement cycle or fetching the results fails, invalid sensor values are returned: + +| Invalid Value | Fixed Point | Floating Point | +| ----------- | ------------- | -------- | +| temperature | INT16_MIN | -327.68 | +| pressure | 0 | 0.0 | +| humidity | 0 | 0.0 | +| gas_resistance | 0 | 0.0 | + + +## Measurement settings + +The sensor allows to change a lot of measurement parameters. + +#### Oversampling rates + +To increase the resolution of raw sensor data, the sensor supports oversampling for temperature, pressure, and humidity measurements. Using function ```bme680_set_oversampling_rates```, individual **oversampling rates** can be defined for these measurements. With an oversampling rate *osr*, the resolution of the according raw sensor data can be increased from 16 bit to 16+ld(*osr*) bit. + +Possible oversampling rates are 1x (default by the driver) 2x, 4x, 8x and 16x. It is also possible to define an oversampling rate of 0. This **deactivates** the corresponding measurement and the output values become invalid. + +``` +... +// Changes the oversampling rate for temperature to 4x and for pressure to 2x. Humidity measurement is skipped. +bme680_set_oversampling_rates(sensor, osr_4x, osr_2x, osr_none); +... +``` + +#### IIR Filter + +The sensor also integrates an internal IIR filter (low pass filter) to reduce short-term changes in sensor output values caused by external disturbances. It effectively reduces the bandwidth of the sensor output values. + +The filter can optionally be used for pressure and temperature data that are subject to many short-term changes. With the IIR filter the resolution of pressure and temperature data increases to 20 bit. Humidity and gas inside the sensor does not fluctuate rapidly and does not require such a low pass filtering. + +Using function ```bme680_set_filter_size```, the user task can change the **size of the filter**. The default size is 3. If the size of the filter becomes 0, the filter is **not used**. + +``` +... +// Change the IIR filter size for temperature and pressure to 7. +bme680_set_filter_size(sensor, iir_size_7); +... +// Don't use IIR filter +bme680_set_filter_size(sensor, iir_size_0); +... +``` + +#### Heater profile + +For the gas measurement, the sensor integrates a heater. Parameters for this heater are defined by **heater profiles**. The sensor supports up to 10 such heater profiles, which are numbered from 0 to 9. Each profile consists of a temperature set-point (the target temperature) and a heating duration. By default, only the heater profile 0 with 320 degree Celsius as target temperature and 150 ms heating duration is defined. + +**Please note:** According to the data sheet, target temperatures between 200 and 400 degrees Celsius are typical and about 20 to 30 ms are necessary for the heater to reach the desired target temperature. + +Function ```bme680_set_heater_profile``` can be used to set the parameters for one of the heater profiles 0 ... 9. Once the parameters of a heater profile are defined, the gas measurement can be activated with that heater profile using function ```bme680_use_heater_profile```. If -1 or ```BME680_HEATER_NOT_USED``` is used as heater profile, gas measurement is deactivated completely. + +``` +... +// Change the heater profile 1 to 300 degree Celsius for 100 ms and activate it +bme680_set_heater_profile (sensor, 1, 300, 100); +bme680_use_heater_profile (sensor, 1); +... +// Deactivate gas measurement completely +bme680_use_heater_profile (sensor, BME680_HEATER_NOT_USED); +... + +``` + +If several heater profiles have been defined with function ```bme680_set_heater_profile```, a sequence of gas measurements with different heater parameters can be realized by a sequence of activations of different heater profiles for successive TPHG measurements using function ```bme680_use_heater_profile```. + +For example, if there were 5 heater profiles defined with following code during the setup +``` +bme680_set_heater_profile (sensor, 0, 200, 100); +bme680_set_heater_profile (sensor, 1, 250, 120); +bme680_set_heater_profile (sensor, 2, 300, 140); +bme680_set_heater_profile (sensor, 3, 350, 160); +bme680_set_heater_profile (sensor, 4, 400, 180); +``` + +the user task could use them as a sequence like following: + +``` +... +while (1) +{ + switch (count++ % 5) + { + case 0: bme680_use_heater_profile (sensor, 0); break; + case 1: bme680_use_heater_profile (sensor, 1); break; + case 2: bme680_use_heater_profile (sensor, 2); break; + case 3: bme680_use_heater_profile (sensor, 3); break; + case 4: bme680_use_heater_profile (sensor, 4); break; + } + + // measurement duration changes in each cycle + uint32_t duration = bme680_get_measurement_duration(sensor); + + // trigger the sensor to start one TPHG measurement cycle + if (bme680_force_measurement (sensor)) + { + vTaskDelay (duration); + + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + ... + } + ... +} +... +``` + +#### Ambient temperature + +The heater resistance calculation algorithm takes into account the ambient temperature of the sensor. Using function ```bme680_set_ambient_temperature```, the ambient temperature either determined from the sensor itself or from another temperature sensor can be set. + +``` +... +bme680_set_ambient_temperature (sensor, ambient); +... +``` + +## Error Handling + +Most driver functions return a simple boolean value to indicate whether its execution was successful or an error happened. In the latter case, the member ```error_code``` of the sensor device data structure is set which indicates what error happened. + +There are two different error levels that are ORed into one single *error_code*, errors in the I2C or SPI communication and errors of the BME680 sensor itself. To test for a certain error, first you can AND the *error_code* with one of the error masks, ```BME680_INT_ERROR_MASK``` for I2C or SPI errors and ```BME680_DRV_ERROR_MASK``` for other errors. Then you can test the result for a certain error code. + +For example, error handling for ```bme680_get_results_float``` could look like: + +``` +if (bme680_get_results_float (sensor, &values)) +{ + // no error happened + ... +} +else +{ + // error happened + + switch (sensor->error_code & BME680_INT_ERROR_MASK) + { + case BME680_INT_BUSY: ... + case BME680_INT_READ_FAILED: ... + ... + } + switch (sensor->error_code & BME680_DRV_ERROR_MASK) + { + case BME680_MEAS_STILL_RUNNING: ... + case BME680_NO_NEW_DATA: ... + ... + } +} +``` + +## Usage + +First, the hardware configuration has to be established. This can differ dependent on the communication interface and the number of sensors used. + +### Hardware configurations + +The driver supports multiple BME680 sensors at the same time that are connected either to I2C or SPI. Following figures show some possible hardware configurations. + +First figure shows the configuration with only one sensor at I2C bus 0. + +``` + +-------------------------+ +--------+ + | ESP8266 Bus 0 | | BME680 | + | GPIO 5 (SCL) +---->+ SCL | + | GPIO 4 (SDA) +-----+ SDA | + | | +--------+ + +-------------------------+ +``` + +Next figure shows the configuration with only one sensor at SPI bus using GPIO2 as CS signal. + +``` + +-------------------------+ +--------+ + | Bus 1 | | BME680 | + | GPIO 12 (MISO) <------ SDO | + | GPIO 13 (MOSI) >-----> SDI | + | GPIO 14 (SCK) >-----> SCK | + | GPIO 2 (CS) >-----> CS | + +-------------------------+ +--------+ +``` + +**Please note:** + +1. Since the system flash memory is connected to SPI bus 0, the sensor has to be connected to SPI bus 1. + +2. GPIO15 which is used as CS signal of SPI bus 1 does not work correctly together with the BME680. Therefore, the user has to specify another GPIO pin as CS signal, e.g., GPIO2. +Next figure shows a possible configuration with two I2C buses. In that case, the sensors can have same or different I2C slave addresses. + +``` + +-------------------------+ +----------+ + | ESP8266 Bus 0 | | BME680_1 | + | GPIO 5 (SCL) ------> SCL | + | GPIO 4 (SDA) ------- SDA | + | | +----------+ + | Bus 1 | | BME680_2 | + | GPIO 14 (SCL) ------> SCL | + | GPIO 12 (SDA) ------- SDA | + +-------------------------+ +----------+ +``` + +Last figure shows a possible configuration using I2C bus 0 and SPI bus 1 at the same time. +``` + +-------------------------+ +----------+ + | ESP8266 Bus 0 | | BME680_1 | + | GPIO 5 (SCL) ------> SCL | + | GPIO 4 (SDA) ------- SDA | + | | +----------+ + | Bus 1 | | BME680_2 | + | GPIO 12 (MISO) <------ SDO | + | GPIO 13 (MOSI) >-----> SDI | + | GPIO 14 (SCK) >-----> SCK | + | GPIO 2 (CS) >-----> CS | + +-------------------------+ +----------+ +``` + +Further configurations are possible, e.g., two sensors that are connected at the same I2C bus with different slave addresses. + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface settings have to be defined. + +``` +// define SPI interface for BME680 sensors +#define SPI_BUS 1 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used +#else + +// define I2C interface for BME680 sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 +#endif + +``` + +### Main program + +If I2C interfaces are used, they have to be initialized first. + +``` +i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K)) +``` + +SPI interface has not to be initialized explicitly. + +Once the I2C interfaces are initialized, function ```bme680_init_sensor``` has to be called for each BME680 sensor in order to initialize the sensor and to check its availability as well as its error state. This function returns a pointer to a sensor device data structure or NULL in case of error. + +The parameter *bus* specifies the ID of the I2C or SPI bus to which the sensor is connected. + +``` +static bme680_sensor_t* sensor; +``` + +For sensors connected to an I2C interface, a valid I2C slave address has to be defined as parameter *addr*. In that case parameter *cs* is ignored. + +``` +sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); + +``` + +If parameter *addr* is 0, the sensor is connected to a SPI bus. In that case, parameter *cs* defines the GPIO used as CS signal. + +``` +sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + +``` + +The remaining part of the program is independent on the communication interface. + +Optionally, you could wish to set some measurement parameters. For details see the section **Measurement settings** above, the header file of the driver ```bme680.h```, and of course the data sheet of the sensor. + +``` +if (sensor) +{ + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + + /** -- OPTIONAL PART -- */ + + // Changes the oversampling rates to 4x oversampling for temperature + // and 2x oversampling for humidity. Pressure measurement is skipped. + bme680_set_oversampling_rates(sensor, osr_4x, osr_none, osr_2x); + + // Change the IIR filter size for temperature and pressure to 7. + bme680_set_filter_size(sensor, iir_size_7); + + // Change the heater profile 0 to 200 degree Celsius for 100 ms. + bme680_set_heater_profile (sensor, 0, 200, 100); + bme680_use_heater_profile (sensor, 0); + + ... +} +``` + +Last, the user task that uses the sensor has to be created. + + +### User task + +BME680 supports only the *forced mode* that performs exactly one measurement. Therefore, the measurement has to be triggered in each cycle. The waiting for measurement results is also required in each cycle, before the results can be fetched. + +Thus the user task could look like the following: + + +``` +void user_task(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + // as long as sensor configuration isn't changed, duration is constant + uint32_t duration = bme680_get_measurement_duration(sensor); + + while (1) + { + // trigger the sensor to start one TPHG measurement cycle + bme680_force_measurement (sensor); + + // passive waiting until measurement results are available + vTaskDelay (duration); + + // alternatively: busy waiting until measurement results are available + // while (bme680_is_measuring (sensor)) ; + + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} +``` + +Function ```bme680_force_measurement``` is called inside the task loop to perform exactly one measurement in each cycle. + +The task is then delayed using function ```vTaskDelay``` and the value returned from function ```bme680_get_measurement_duration``` or as long as function ```bme680_is_measuring``` returns true. + +Since the measurement duration only depends on the current sensor configuration, it changes only when sensor configuration is changed. Therefore, it can be considered as constant as long as the sensor configuration isn't changed and can be determined with function ```bme680_get_measurement_duration``` outside the task loop. If the sensor configuration changes, the function has to be executed again. + +Once the measurement results are available, they can be fetched as fixed point oder floating point sensor values using function ```bme680_get_results_float``` and ```bme680_get_results_fixed```, respectively. + +## Full Example + +``` +// Uncomment to use SPI +// #define SPI_USED + +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include "FreeRTOS.h" +#include "task.h" + +// include communication interface driver +#include "esp/spi.h" +#include "i2c/i2c.h" + +// include BME680 driver +#include "bme680/bme680.h" + +#ifdef SPI_USED +// define SPI interface for BME680 sensors +#define SPI_BUS 1 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used +#else +// define I2C interface for BME680 sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 +#endif + +static bme680_sensor_t* sensor; + +/* + * User task that triggers measurements of sensor every seconds. It uses + * function *vTaskDelay* to wait for measurement results. Busy waiting + * alternative is shown in comments + */ +void user_task(void *pvParameters) +{ + bme680_values_float_t values; + + TickType_t last_wakeup = xTaskGetTickCount(); + + // as long as sensor configuration isn't changed, duration is constant + uint32_t duration = bme680_get_measurement_duration(sensor); + + while (1) + { + // trigger the sensor to start one TPHG measurement cycle + bme680_force_measurement (sensor); + + // passive waiting until measurement results are available + vTaskDelay (duration); + + // alternatively: busy waiting until measurement results are available + // while (bme680_is_measuring (sensor)) ; + + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // Set UART Parameter + uart_set_baud(0, 115200); + // Give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + // Init the sensor connected either to SPI. + sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + #else + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // Init the sensor connected either to I2C. + sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); + #endif + + if (sensor) + { + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + + /** -- OPTIONAL PART -- */ + + // Changes the oversampling rates to 4x oversampling for temperature + // and 2x oversampling for humidity. Pressure measurement is skipped. + bme680_set_oversampling_rates(sensor, osr_4x, osr_none, osr_2x); + + // Change the IIR filter size for temperature and pressure to 7. + bme680_set_filter_size(sensor, iir_size_7); + + // Change the heater profile 0 to 200 degree Celcius for 100 ms. + bme680_set_heater_profile (sensor, 0, 200, 100); + bme680_use_heater_profile (sensor, 0); + } +} +``` diff --git a/extras/bme680/bme680.c b/extras/bme680/bme680.c new file mode 100644 index 0000000..f2742ee --- /dev/null +++ b/extras/bme680/bme680.c @@ -0,0 +1,1475 @@ +/* + * Driver for Bosch Sensortec BME680 digital temperature, humity, pressure and + * gas sensor connected to I2C or SPI + * + * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The information provided is believed to be accurate and reliable. The + * copyright holder assumes no responsibility for the consequences of use + * of such information nor for any infringement of patents or other rights + * of third parties which may result from its use. No license is granted by + * implication or otherwise under any patent or patent rights of the copyright + * holder. + */ + +#include + +#include "FreeRTOS.h" +#include "task.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/spi.h" +#include "i2c/i2c.h" + +#include "bme680.h" + +#if defined(BME680_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "BME680", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "BME680", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(BME680_DEBUG_LEVEL_1) || defined(BME680_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "BME680", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "BME680", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +// modes: unfortunatly, only SLEEP_MODE and FORCED_MODE are documented +#define BME680_SLEEP_MODE 0x00 // low power sleeping +#define BME680_FORCED_MODE 0x01 // perform one TPHG cycle (field data 0 filled) +#define BME680_PARALLEL_MODE 0x02 // no information what it does :-( +#define BME680_SQUENTUAL_MODE 0x02 // no information what it does (field data 0+1+2 filled) + +// register addresses +#define BME680_REG_RES_HEAT_VAL 0x00 +#define BME680_REG_RES_HEAT_RANGE 0x02 +#define BME680_REG_RANGE_SW_ERROR 0x06 + +#define BME680_REG_IDAC_HEAT_BASE 0x50 // 10 regsrs idac_heat_0 ... idac_heat_9 +#define BME680_REG_RES_HEAT_BASE 0x5a // 10 registers res_heat_0 ... res_heat_9 +#define BME680_REG_GAS_WAIT_BASE 0x64 // 10 registers gas_wait_0 ... gas_wait_9 +#define BME680_REG_CTRL_GAS_0 0x70 +#define BME680_REG_CTRL_GAS_1 0x71 +#define BME680_REG_CTRL_HUM 0x72 +#define BME680_REG_STATUS 0x73 +#define BME680_REG_CTRL_MEAS 0x74 +#define BME680_REG_CONFIG 0x75 +#define BME680_REG_ID 0xd0 +#define BME680_REG_RESET 0xe0 + +// field data 0 registers +#define BME680_REG_MEAS_STATUS_0 0x1d +#define BME680_REG_MEAS_INDEX_0 0x1e +#define BME680_REG_PRESS_MSB_0 0x1f +#define BME680_REG_PRESS_LSB_0 0x20 +#define BME680_REG_PRESS_XLSB_0 0x21 +#define BME680_REG_TEMP_MSB_0 0x22 +#define BME680_REG_TEMP_LSB_0 0x23 +#define BME680_REG_TEMP_XLSB_0 0x24 +#define BME680_REG_HUM_MSB_0 0x25 +#define BME680_REG_HUM_LSB_0 0x26 +#define BME680_REG_GAS_R_MSB_0 0x2a +#define BME680_REG_GAS_R_LSB_0 0x2b + +// field data 1 registers (not documented, used in SEQUENTIAL_MODE) +#define BME680_REG_MEAS_STATUS_1 0x2e +#define BME680_REG_MEAS_INDEX_1 0x2f + +// field data 2 registers (not documented, used in SEQUENTIAL_MODE) +#define BME680_REG_MEAS_STATUS_2 0x3f +#define BME680_REG_MEAS_INDEX_2 0x40 + +// field data addresses +#define BME680_REG_RAW_DATA_0 BME680_REG_MEAS_STATUS_0 // 0x1d ... 0x2b +#define BME680_REG_RAW_DATA_1 BME680_REG_MEAS_STATUS_1 // 0x2e ... 0x3c +#define BME680_REG_RAW_DATA_2 BME680_REG_MEAS_STATUS_2 // 0x40 ... 0x4d +#define BME680_REG_RAW_DATA_LEN (BME680_REG_GAS_R_LSB_0 - BME680_REG_MEAS_STATUS_0 + 1) + +// calibration data registers +#define BME680_REG_CD1_ADDR 0x89 // 25 byte calibration data +#define BME680_REG_CD1_LEN 25 +#define BME680_REG_CD2_ADDR 0xe1 // 16 byte calibration data +#define BME680_REG_CD2_LEN 16 +#define BME680_REG_CD3_ADDR 0x00 // 8 byte device specific calibration data +#define BME680_REG_CD3_LEN 8 + +// register structure definitions +#define BME680_NEW_DATA_BITS 0x80 // BME680_REG_MEAS_STATUS<7> +#define BME680_NEW_DATA_SHIFT 7 // BME680_REG_MEAS_STATUS<7> +#define BME680_GAS_MEASURING_BITS 0x40 // BME680_REG_MEAS_STATUS<6> +#define BME680_GAS_MEASURING_SHIFT 6 // BME680_REG_MEAS_STATUS<6> +#define BME680_MEASURING_BITS 0x20 // BME680_REG_MEAS_STATUS<5> +#define BME680_MEASURING_SHIFT 5 // BME680_REG_MEAS_STATUS<5> +#define BME680_GAS_MEAS_INDEX_BITS 0x0f // BME680_REG_MEAS_STATUS<3:0> +#define BME680_GAS_MEAS_INDEX_SHIFT 0 // BME680_REG_MEAS_STATUS<3:0> + +#define BME680_GAS_R_LSB_BITS 0xc0 // BME680_REG_GAS_R_LSB<7:6> +#define BME680_GAS_R_LSB_SHIFT 6 // BME680_REG_GAS_R_LSB<7:6> +#define BME680_GAS_VALID_BITS 0x20 // BME680_REG_GAS_R_LSB<5> +#define BME680_GAS_VALID_SHIFT 5 // BME680_REG_GAS_R_LSB<5> +#define BME680_HEAT_STAB_R_BITS 0x10 // BME680_REG_GAS_R_LSB<4> +#define BME680_HEAT_STAB_R_SHIFT 4 // BME680_REG_GAS_R_LSB<4> +#define BME680_GAS_RANGE_R_BITS 0x0f // BME680_REG_GAS_R_LSB<3:0> +#define BME680_GAS_RANGE_R_SHIFT 0 // BME680_REG_GAS_R_LSB<3:0> + +#define BME680_HEAT_OFF_BITS 0x04 // BME680_REG_CTRL_GAS_0<3> +#define BME680_HEAT_OFF_SHIFT 3 // BME680_REG_CTRL_GAS_0<3> + +#define BME680_RUN_GAS_BITS 0x10 // BME680_REG_CTRL_GAS_1<4> +#define BME680_RUN_GAS_SHIFT 4 // BME680_REG_CTRL_GAS_1<4> +#define BME680_NB_CONV_BITS 0x0f // BME680_REG_CTRL_GAS_1<3:0> +#define BME680_NB_CONV_SHIFT 0 // BME680_REG_CTRL_GAS_1<3:0> + +#define BME680_SPI_3W_INT_EN_BITS 0x40 // BME680_REG_CTRL_HUM<6> +#define BME680_SPI_3W_INT_EN_SHIFT 6 // BME680_REG_CTRL_HUM<6> +#define BME680_OSR_H_BITS 0x07 // BME680_REG_CTRL_HUM<2:0> +#define BME680_OSR_H_SHIFT 0 // BME680_REG_CTRL_HUM<2:0> + +#define BME680_OSR_T_BITS 0xe0 // BME680_REG_CTRL_MEAS<7:5> +#define BME680_OSR_T_SHIFT 5 // BME680_REG_CTRL_MEAS<7:5> +#define BME680_OSR_P_BITS 0x1c // BME680_REG_CTRL_MEAS<4:2> +#define BME680_OSR_P_SHIFT 2 // BME680_REG_CTRL_MEAS<4:2> +#define BME680_MODE_BITS 0x03 // BME680_REG_CTRL_MEAS<1:0> +#define BME680_MODE_SHIFT 0 // BME680_REG_CTRL_MEAS<1:0> + +#define BME680_FILTER_BITS 0x1c // BME680_REG_CONFIG<4:2> +#define BME680_FILTER_SHIFT 2 // BME680_REG_CONFIG<4:2> +#define BME680_SPI_3W_EN_BITS 0x01 // BME680_REG_CONFIG<0> +#define BME680_SPI_3W_EN_SHIFT 0 // BME680_REG_CONFIG<0> + +#define BME680_SPI_MEM_PAGE_BITS 0x10 // BME680_REG_STATUS<4> +#define BME680_SPI_MEM_PAGE_SHIFT 4 // BME680_REG_STATUS<4> + +#define BME680_GAS_WAIT_BITS 0x3f // BME680_REG_GAS_WAIT+x<5:0> +#define BME680_GAS_WAIT_SHIFT 0 // BME680_REG_GAS_WAIT+x<5:0> +#define BME680_GAS_WAIT_MULT_BITS 0xc0 // BME680_REG_GAS_WAIT+x<7:6> +#define BME680_GAS_WAIT_MULT_SHIFT 6 // BME680_REG_GAS_WAIT+x<7:6> + +// commands +#define BME680_RESET_CMD 0xb6 // BME680_REG_RESET<7:0> +#define BME680_RESET_PERIOD 5 // reset time in ms + +#define BME680_RHR_BITS 0x30 // BME680_REG_RES_HEAT_RANGE<5:4> +#define BME680_RHR_SHIFT 4 // BME680_REG_RES_HEAT_RANGE<5:4> +#define BME680_RSWE_BITS 0xf0 // BME680_REG_RANGE_SW_ERROR<7:4> +#define BME680_RSWE_SHIFT 4 // BME680_REG_RANGE_SW_ERROR<7:4> + +// calibration data are stored in a calibration data map +#define BME680_CDM_SIZE (BME680_REG_CD1_LEN + BME680_REG_CD2_LEN + BME680_REG_CD3_LEN) +#define BME680_CDM_OFF1 0 +#define BME680_CDM_OFF2 BME680_REG_CD1_LEN +#define BME680_CDM_OFF3 BME680_CDM_OFF2 + BME680_REG_CD2_LEN + +// calibration parameter offsets in calibration data map +// calibration data from 0x89 +#define BME680_CDM_T2 1 +#define BME680_CDM_T3 3 +#define BME680_CDM_P1 5 +#define BME680_CDM_P2 7 +#define BME680_CDM_P3 9 +#define BME680_CDM_P4 11 +#define BME680_CDM_P5 13 +#define BME680_CDM_P7 15 +#define BME680_CDM_P6 16 +#define BME680_CDM_P8 19 +#define BME680_CDM_P9 21 +#define BME680_CDM_P10 23 +// calibration data from 0e1 +#define BME680_CDM_H2 25 +#define BME680_CDM_H1 26 +#define BME680_CDM_H3 28 +#define BME680_CDM_H4 29 +#define BME680_CDM_H5 30 +#define BME680_CDM_H6 31 +#define BME680_CDM_H7 32 +#define BME680_CDM_T1 33 +#define BME680_CDM_GH2 35 +#define BME680_CDM_GH1 37 +#define BME680_CDM_GH3 38 +// device specific calibration data from 0x00 +#define BME680_CDM_RHV 41 // 0x00 - res_heat_val +#define BME680_CDM_RHR 43 // 0x02 - res_heat_range +#define BME680_CDM_RSWE 45 // 0x04 - range_sw_error + + +/** + * @brief Raw data (integer values) read from sensor + */ +typedef struct { + + bool gas_valid; // indicate that gas measurement results are valid + bool heater_stable; // indicate that heater temperature was stable + + uint32_t temperature; // degree celsius x100 + uint32_t pressure; // pressure in Pascal + uint16_t humidity; // relative humidity x1000 in % + uint16_t gas_resistance; // gas resistance data + uint8_t gas_range; // gas resistance range + + uint8_t gas_index; // heater profile used (0 ... 9) + uint8_t meas_index; + + +} bme680_raw_data_t; + + +/** Forward declaration of functions for internal use */ + +static bool bme680_set_mode (bme680_sensor_t* dev, uint8_t mode); +static bool bme680_get_raw_data (bme680_sensor_t* dev, bme680_raw_data_t* raw); +static int16_t bme680_convert_temperature (bme680_sensor_t *dev, uint32_t raw_temperature); +static uint32_t bme680_convert_pressure (bme680_sensor_t *dev, uint32_t raw_pressure); +static uint32_t bme680_convert_humidity (bme680_sensor_t *dev, uint16_t raw_humidity); +static uint32_t bme680_convert_gas (bme680_sensor_t *dev, uint16_t raw_gas, uint8_t gas_range); + +static uint8_t bme680_heater_resistance (const bme680_sensor_t* dev, uint16_t temperature); +static uint8_t bme680_heater_duration (uint16_t duration); + +static bool bme680_reset (bme680_sensor_t* dev); +static bool bme680_is_available (bme680_sensor_t* dev); +static void bme680_delay_ms(uint32_t delay); + +static bool bme680_read_reg (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool bme680_write_reg (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool bme680_i2c_read (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool bme680_i2c_write (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool bme680_spi_read (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool bme680_spi_write (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); + +/** */ + +#define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) +#define lsb_to_type(t,b,o) (t)(b[o]) + +bme680_sensor_t* bme680_init_sensor(uint8_t bus, uint8_t addr, uint8_t cs) +{ + bme680_sensor_t* dev; + + if ((dev = malloc (sizeof(bme680_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->spi_cs_pin = cs; + dev->meas_started = false; + dev->meas_status = 0; + dev->settings.ambient_temperature = 0; + dev->settings.osr_temperature = osr_none; + dev->settings.osr_pressure = osr_none; + dev->settings.osr_humidity = osr_none; + dev->settings.filter_size = iir_size_0; + dev->settings.heater_profile = BME680_HEATER_NOT_USED; + memset(dev->settings.heater_temperature, 0, sizeof(uint16_t)*10); + memset(dev->settings.heater_duration, 0, sizeof(uint16_t)*10); + + if (!addr) + { + // SPI interface used + gpio_enable(dev->spi_cs_pin, GPIO_OUTPUT); + gpio_write (dev->spi_cs_pin, true); + } + + // reset the sensor + if (!bme680_reset(dev)) + { + error_dev ("Could not reset the sensor device.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // check availability of the sensor + if (!bme680_is_available (dev)) + { + error_dev ("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + uint8_t buf[BME680_CDM_SIZE]; + + // read all calibration parameters from sensor + if (bme680_read_reg(dev, BME680_REG_CD1_ADDR, buf+BME680_CDM_OFF1, BME680_REG_CD1_LEN) && + bme680_read_reg(dev, BME680_REG_CD2_ADDR, buf+BME680_CDM_OFF2, BME680_REG_CD2_LEN) && + bme680_read_reg(dev, BME680_REG_CD3_ADDR, buf+BME680_CDM_OFF3, BME680_REG_CD3_LEN)) + { + dev->calib_data.par_t1 = lsb_msb_to_type (uint16_t, buf, BME680_CDM_T1); + dev->calib_data.par_t2 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_T2); + dev->calib_data.par_t3 = lsb_to_type ( int8_t, buf, BME680_CDM_T3); + + // pressure compensation parameters + dev->calib_data.par_p1 = lsb_msb_to_type (uint16_t, buf, BME680_CDM_P1); + dev->calib_data.par_p2 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_P2); + dev->calib_data.par_p3 = lsb_to_type ( int8_t, buf, BME680_CDM_P3); + dev->calib_data.par_p4 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_P4); + dev->calib_data.par_p5 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_P5); + dev->calib_data.par_p6 = lsb_to_type ( int8_t, buf, BME680_CDM_P6); + dev->calib_data.par_p7 = lsb_to_type ( int8_t, buf, BME680_CDM_P7); + dev->calib_data.par_p8 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_P8); + dev->calib_data.par_p9 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_P9); + dev->calib_data.par_p10 = lsb_to_type ( uint8_t, buf, BME680_CDM_P10); + + // humidity compensation parameters + dev->calib_data.par_h1 = (uint16_t)(((uint16_t)buf[BME680_CDM_H1+1] << 4) | + (buf[BME680_CDM_H1] & 0x0F)); + dev->calib_data.par_h2 = (uint16_t)(((uint16_t)buf[BME680_CDM_H2] << 4) | + (buf[BME680_CDM_H2+1] >> 4)); + dev->calib_data.par_h3 = lsb_to_type ( int8_t, buf, BME680_CDM_H3); + dev->calib_data.par_h4 = lsb_to_type ( int8_t, buf, BME680_CDM_H4); + dev->calib_data.par_h5 = lsb_to_type ( int8_t, buf, BME680_CDM_H5); + dev->calib_data.par_h6 = lsb_to_type ( uint8_t, buf, BME680_CDM_H6); + dev->calib_data.par_h7 = lsb_to_type ( int8_t, buf, BME680_CDM_H7); + + // gas sensor compensation parameters + dev->calib_data.par_gh1 = lsb_to_type ( int8_t, buf, BME680_CDM_GH1); + dev->calib_data.par_gh2 = lsb_msb_to_type ( int16_t, buf, BME680_CDM_GH2); + dev->calib_data.par_gh3 = lsb_to_type ( int8_t, buf, BME680_CDM_GH3); + + dev->calib_data.res_heat_range = (lsb_to_type (uint8_t, buf ,BME680_CDM_RHR) & + BME680_RHR_BITS) >> + BME680_RHR_SHIFT; + dev->calib_data.res_heat_val = (lsb_to_type ( int8_t, buf, BME680_CDM_RHV)); + dev->calib_data.range_sw_err = (lsb_to_type ( int8_t, buf, BME680_CDM_RSWE) & + BME680_RSWE_BITS) >> + BME680_RSWE_SHIFT; + } + else + { + error_dev ("Could not read in calibration parameters.", __FUNCTION__, dev); + dev->error_code |= BME680_READ_CALIB_DATA_FAILED; + free (dev); + return NULL; + + } + + // Set the default temperature, pressure and humidity settings + if (!bme680_set_oversampling_rates (dev, osr_1x, osr_1x, osr_1x) || + !bme680_set_filter_size (dev, iir_size_3)) + { + error_dev ("Could not configure default sensor settings for TPH.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // Set ambient temperature of sensor to default value (25 degree C) + dev->settings.ambient_temperature = 25; + + // Set heater default profile 0 to 320 degree Celcius for 150 ms + if (!bme680_set_heater_profile (dev, 0, 320, 150)) + { + error_dev ("Could not configure default heater profile settings.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + if (!bme680_use_heater_profile (dev, 0)) + { + error_dev ("Could not configure default heater profile.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + return dev; +} + +bool bme680_force_measurement (bme680_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + // return remaining time when measurement is already running + if (dev->meas_started) + { + debug_dev ("Measurement is already running.", __FUNCTION__, dev); + dev->error_code |= BME680_MEAS_ALREADY_RUNNING; + return false; + } + + // Set the power mode to forced mode to trigger one TPHG measurement cycle + if (!bme680_set_mode(dev, BME680_FORCED_MODE)) + { + error_dev ("Could not set forced mode to start TPHG measurement cycle.", __FUNCTION__, dev); + dev->error_code |= BME680_FORCE_MODE_FAILED; + return false; + } + + dev->meas_started = true; + dev->meas_start_tick = xTaskGetTickCount (); // system time in RTOS ticks + dev->meas_status = 0; + + debug_dev ("Started measurement at %.3f.", __FUNCTION__, dev, + (double)sdk_system_get_time()*1e-3); + + return true; +} + + +/** + * @brief Estimate the measuerment duration in ms + * + * Timing formulas extracted from BME280 datasheet and test in some + * experiments. They represent the maximum measurement duration. + * + * @return estimated measurument duration in RTOS ticks or -1 on error + */ +uint32_t bme680_get_measurement_duration (const bme680_sensor_t *dev) +{ + if (!dev) return 0; + + int32_t duration = 0; /* Calculate in us */ + + // wake up duration from sleep into forced mode + duration += 1250; + + // THP cycle duration which consumes 1963 µs for each measurement at maximum + if (dev->settings.osr_temperature) duration += (1 << (dev->settings.osr_temperature-1)) * 2300; + if (dev->settings.osr_pressure ) duration += (1 << (dev->settings.osr_pressure-1)) * 2300 + 575; + if (dev->settings.osr_humidity ) duration += (1 << (dev->settings.osr_humidity-1)) * 2300 + 575; + + // if gas measurement is used + if (dev->settings.heater_profile != BME680_HEATER_NOT_USED && + dev->settings.heater_duration[dev->settings.heater_profile] && + dev->settings.heater_temperature[dev->settings.heater_profile]) + { + // gas heating time + duration += dev->settings.heater_duration[dev->settings.heater_profile]*1000; + // gas measurement duration; + duration += 2300 + 575; + } + + // round up to next ms (1 us ... 1000 us => 1 ms) + duration += 999; + duration /= 1000; + + // some ms tolerance + duration += 5; + + // ceil to next integer value that is divisible by portTICK_PERIOD_MS and + // compute RTOS ticks (1 ... portTICK_PERIOD_MS = 1 tick) + duration = (duration + portTICK_PERIOD_MS-1) / portTICK_PERIOD_MS; + + // Since first RTOS tick can be shorter than the half of defined tick period, + // the delay caused by vTaskDelay(duration) might be 1 or 2 ms shorter than + // computed duration in rare cases. Since the duration is computed for maximum + // and not for the typical durations and therefore tends to be too long, this + // should not be a problem. Therefore, only one additional tick used. + return duration + 1; +} + + +bool bme680_is_measuring (bme680_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + // if measurement wasn't started, it is of course not measuring + if (!dev->meas_started) + { + dev->error_code |= BME680_MEAS_NOT_RUNNING; + return false; + } + + uint8_t raw[2]; + + // read maesurment status from sensor + if (!bme680_read_reg(dev, BME680_REG_MEAS_STATUS_0, raw, 2)) + { + error_dev ("Could not read measurement status from sensor.", __FUNCTION__, dev); + return false; + } + + dev->meas_status = raw[0]; + + // test whether measuring bit is set + return (dev->meas_status & BME680_MEASURING_BITS); +} + + +bool bme680_get_results_fixed (bme680_sensor_t* dev, bme680_values_fixed_t* results) +{ + if (!dev || !results) return false; + + dev->error_code = BME680_OK; + + // fill data structure with invalid values + results->temperature = INT16_MIN; + results->pressure = 0; + results->humidity = 0; + results->gas_resistance = 0; + + bme680_raw_data_t raw; + + if (!bme680_get_raw_data(dev, &raw)) + // return invalid values + return false; + + // use compensation algorithms to compute sensor values in fixed point format + + if (dev->settings.osr_temperature) + results->temperature = bme680_convert_temperature (dev, raw.temperature); + + if (dev->settings.osr_pressure) + results->pressure = bme680_convert_pressure (dev, raw.pressure); + + if (dev->settings.osr_humidity) + results->humidity = bme680_convert_humidity (dev, raw.humidity); + + if (dev->settings.heater_profile != BME680_HEATER_NOT_USED) + { + // convert gas only if raw data are valid and heater was stable + if (raw.gas_valid && raw.heater_stable) + results->gas_resistance = bme680_convert_gas (dev, raw.gas_resistance, + raw.gas_range); + else if (!raw.gas_valid) + dev->error_code = BME680_MEAS_GAS_NOT_VALID; + else + dev->error_code = BME680_HEATER_NOT_STABLE; + } + + debug_dev ("Fixed point sensor valus - %d ms: %d/100 C, %d/1000 Percent, %d Pascal, %d Ohm", + __FUNCTION__, dev, sdk_system_get_time (), + results->temperature, + results->humidity, + results->pressure, + results->gas_resistance); + + return true; +} + + +bool bme680_get_results_float (bme680_sensor_t* dev, bme680_values_float_t* results) +{ + if (!dev || !results) return false; + + bme680_values_fixed_t fixed; + + if (!bme680_get_results_fixed (dev, &fixed)) + return false; + + results->temperature = fixed.temperature / 100.0f; + results->pressure = fixed.pressure / 100.0f; + results->humidity = fixed.humidity / 1000.0f; + results->gas_resistance = fixed.gas_resistance; + + return true; +} + + +bool bme680_measure_fixed (bme680_sensor_t* dev, bme680_values_fixed_t* results) +{ + int32_t duration = bme680_force_measurement (dev); + + if (duration == BME680_NOK) + return false; // measurment couldn't be started + + else if (duration > 0) // wait for results + vTaskDelay (duration); + + return bme680_get_results_fixed (dev, results); +} + + +bool bme680_measure_float (bme680_sensor_t* dev, bme680_values_float_t* results) +{ + int32_t duration = bme680_force_measurement (dev); + + if (duration == BME680_NOK) + return false; // measurment couldn't be started + + else if (duration > 0) // wait for results + vTaskDelay (duration); + + return bme680_get_results_float (dev, results); +} + + + +#define bme_set_reg_bit(byte, bitname, bit) ( (byte & ~bitname##_BITS) | \ + ((bit << bitname##_SHIFT) & bitname##_BITS) ) +#define bme_get_reg_bit(byte, bitname) ( (byte & bitname##_BITS) >> bitname##_SHIFT ) + +bool bme680_set_oversampling_rates (bme680_sensor_t* dev, + bme680_oversampling_rate_t ost, + bme680_oversampling_rate_t osp, + bme680_oversampling_rate_t osh) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + bool ost_changed = dev->settings.osr_temperature != ost; + bool osp_changed = dev->settings.osr_pressure != osp; + bool osh_changed = dev->settings.osr_humidity != osh; + + if (!ost_changed && !osp_changed && !osh_changed) + return true; + + // Set the temperature, pressure and humidity oversampling + dev->settings.osr_temperature = ost; + dev->settings.osr_pressure = osp; + dev->settings.osr_humidity = osh; + + uint8_t reg; + + if (ost_changed || osp_changed) + { + // read the current register value + if (!bme680_read_reg(dev, BME680_REG_CTRL_MEAS, ®, 1)) + return false; + + // set changed bit values + if (ost_changed) reg = bme_set_reg_bit (reg, BME680_OSR_T, ost); + if (osp_changed) reg = bme_set_reg_bit (reg, BME680_OSR_P, osp); + + // write back the new register value + if (!bme680_write_reg(dev, BME680_REG_CTRL_MEAS, ®, 1)) + return false; + } + + if (osh_changed) + { + // read the current register value + if (!bme680_read_reg(dev, BME680_REG_CTRL_HUM, ®, 1)) + return false; + + // set changed bit value + reg = bme_set_reg_bit (reg, BME680_OSR_H, osh); + + // write back the new register value + if (!bme680_write_reg(dev, BME680_REG_CTRL_HUM, ®, 1)) + return false; + } + + debug_dev ("Setting oversampling rates done: osrt=%d osp=%d osrh=%d", + __FUNCTION__, dev, + dev->settings.osr_temperature, + dev->settings.osr_pressure, + dev->settings.osr_humidity); + + return true; +} + + +bool bme680_set_filter_size(bme680_sensor_t* dev, bme680_filter_size_t size) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + bool size_changed = dev->settings.filter_size != size; + + if (!size_changed) return true; + + /* Set the temperature, pressure and humidity settings */ + dev->settings.filter_size = size; + + uint8_t reg; + + // read the current register value + if (!bme680_read_reg(dev, BME680_REG_CONFIG, ®, 1)) + return false; + + // set changed bit value + reg = bme_set_reg_bit (reg, BME680_FILTER, size); + + // write back the new register value + if (!bme680_write_reg(dev, BME680_REG_CONFIG, ®, 1)) + return false; + + debug_dev ("Setting filter size done: size=%d", __FUNCTION__, dev, + dev->settings.filter_size); + + return true; +} + +bool bme680_set_heater_profile (bme680_sensor_t* dev, uint8_t profile, + uint16_t temperature, uint16_t duration) +{ + if (!dev) return false; + + if (profile > BME680_HEATER_PROFILES-1) + { + error_dev("Wrong heater profile id %d.", __FUNCTION__, dev, profile); + dev->error_code = BME680_WRONG_HEAT_PROFILE; + return false; + } + + dev->error_code = BME680_OK; + + bool temperature_changed = dev->settings.heater_temperature[profile] != temperature; + bool duration_changed = dev->settings.heater_duration[profile] != duration; + + if (!temperature_changed && !duration_changed) + return true; + + // set external gas sensor configuration + dev->settings.heater_temperature[profile] = temperature; // degree Celsius + dev->settings.heater_duration [profile] = duration; // milliseconds + + // compute internal gas sensor configuration parameters + uint8_t heat_dur = bme680_heater_duration(duration); // internal duration value + uint8_t heat_res = bme680_heater_resistance(dev, temperature); // internal temperature value + + // set internal gas sensor configuration parameters if changed + if (temperature_changed && + !bme680_write_reg(dev, BME680_REG_RES_HEAT_BASE+profile, &heat_res, 1)) + return false; + + if (duration_changed && + !bme680_write_reg(dev, BME680_REG_GAS_WAIT_BASE+profile, &heat_dur, 1)) + return false; + + debug_dev ("Setting heater profile %d done: temperature=%d duration=%d " + "heater_resistance=%02x heater_duration=%02x", + __FUNCTION__, dev, profile, + dev->settings.heater_temperature[profile], + dev->settings.heater_duration[profile], + heat_dur, heat_res); + + return true; +} + +bool bme680_use_heater_profile (bme680_sensor_t* dev, int8_t profile) +{ + if (!dev) return false; + + if (profile != BME680_HEATER_NOT_USED && (profile < 0 || profile > BME680_HEATER_PROFILES-1)) + { + error_dev("Wrong heater profile id %d.", __FUNCTION__, dev, profile); + dev->error_code = BME680_WRONG_HEAT_PROFILE; + return false; + } + + if (dev->settings.heater_profile == profile) + return false; + + dev->settings.heater_profile = profile; + + uint8_t reg = 0; // set + // set active profile + reg = bme_set_reg_bit (reg, BME680_NB_CONV, profile != BME680_HEATER_NOT_USED ? profile : 0); + + // enable or disable gas measurement + reg = bme_set_reg_bit (reg, BME680_RUN_GAS, (profile != BME680_HEATER_NOT_USED && + dev->settings.heater_temperature[profile] && + dev->settings.heater_duration[profile])); + + if (!bme680_write_reg(dev, BME680_REG_CTRL_GAS_1, ®, 1)) + return false; + + return true; +} + + +bool bme680_set_ambient_temperature (bme680_sensor_t* dev, int16_t ambient) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + bool ambient_changed = dev->settings.ambient_temperature != ambient; + + if (!ambient_changed) + return true; + + // set ambient temperature configuration + dev->settings.ambient_temperature = ambient; // degree Celsius + + + // update all valid heater profiles + + // takes 894 us for only one defined profile and 1585 us for 10 defined profiles + uint8_t data[10]; + for (int i = 0; i < BME680_HEATER_PROFILES; i++) + { + data[i] = dev->settings.heater_temperature[i] ? + bme680_heater_resistance(dev, dev->settings.heater_temperature[i]) : 0; + } + if (!bme680_write_reg(dev, BME680_REG_RES_HEAT_BASE, data, 10)) + return false; + + /* + // takes 346 us for only one defined profile and 3316 us for 10 defined profiles + for (int i = 0; i < BME680_HEATER_PROFILES; i++) + if (dev->settings.heater_temperature[i]) + { + uint8_t heat_res = bme680_heater_resistance(dev, dev->settings.heater_temperature[i]); + if (!bme680_write_reg(dev, BME680_REG_RES_HEAT_BASE+i, &heat_res, 1)) + return false; + } + */ + + debug_dev ("Setting heater ambient temperature done: ambient=%d", + __FUNCTION__, dev, dev->settings.ambient_temperature); + + return true; +} + +bool bme680_set_mode (bme680_sensor_t *dev, uint8_t mode) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + uint8_t reg; + + if (!bme680_read_reg(dev, BME680_REG_CTRL_MEAS, ®, 1)) + return false; + + reg = bme_set_reg_bit (reg, BME680_MODE, mode); + + if (!bme680_write_reg(dev, BME680_REG_CTRL_MEAS, ®, 1)) + return false; + + return true; +} + + +/** Functions for internal use only */ + +/** + * @brief Check the chip ID to test whether sensor is available + */ +static bool bme680_is_available (bme680_sensor_t* dev) +{ + uint8_t chip_id; + + if (!dev) return false; + + dev->error_code = BME680_OK; + + if (!bme680_read_reg (dev, BME680_REG_ID, &chip_id, 1)) + return false; + + if (chip_id != 0x61) + { + error_dev ("Chip id %02x is wrong, should be 0x61.", __FUNCTION__, dev, chip_id); + dev->error_code = BME680_WRONG_CHIP_ID; + return false; + } + + return true; +} + + +static bool bme680_reset (bme680_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = BME680_OK; + + uint8_t reg = BME680_RESET_CMD; + + // send reset command + if (!bme680_write_reg(dev, BME680_REG_RESET, ®, 1)) + return false; + + // wait the time the sensor needs for reset + bme680_delay_ms (BME680_RESET_PERIOD); + + // check whether the sensor is reachable again + if (!bme680_read_reg(dev, BME680_REG_STATUS, ®, 1)) + { + dev->error_code = BME680_RESET_CMD_FAILED; + return false; + } + + return true; +} + + +/** + * @brief Calculate temperature from raw temperature value + * @ref BME280 datasheet, page 50 + */ +static int16_t bme680_convert_temperature (bme680_sensor_t *dev, uint32_t raw_temperature) +{ + if (!dev) return 0; + + bme680_calib_data_t* cd = &dev->calib_data; + + int64_t var1; + int64_t var2; + int16_t temperature; + + var1 = ((((raw_temperature >> 3) - ((int32_t)cd->par_t1 << 1))) * + ((int32_t)cd->par_t2)) >> 11; + var2 = (((((raw_temperature >> 4) - ((int32_t)cd->par_t1)) * + ((raw_temperature >> 4) - ((int32_t)cd->par_t1))) >> 12) * + ((int32_t)cd->par_t3)) >> 14; + cd->t_fine = (int32_t)(var1 + var2); + temperature = (cd->t_fine * 5 + 128) >> 8; + + return temperature; +} + + +/** + * @brief Calculate pressure from raw pressure value + * @copyright Copyright (C) 2017 - 2018 Bosch Sensortec GmbH + * + * The algorithm was extracted from the original Bosch Sensortec BME680 driver + * published as open source. Divisions and multiplications by potences of 2 + * were replaced by shift operations for effeciency reasons. + * + * @ref [BME680_diver](https://github.com/BoschSensortec/BME680_driver) + * @ref BME280 datasheet, page 50 + */ +static uint32_t bme680_convert_pressure (bme680_sensor_t *dev, uint32_t raw_pressure) +{ + if (!dev) return 0; + + bme680_calib_data_t* cd = &dev->calib_data; + + int32_t var1; + int32_t var2; + int32_t var3; + int32_t var4; + int32_t pressure; + + var1 = (((int32_t) cd->t_fine) >> 1) - 64000; + var2 = ((((var1 >> 2) * (var1 >> 2)) >> 11) * (int32_t) cd->par_p6) >> 2; + var2 = ((var2) * (int32_t) cd->par_p6) >> 2; + var2 = var2 + ((var1 * (int32_t)cd->par_p5) << 1); + var2 = (var2 >> 2) + ((int32_t) cd->par_p4 << 16); + var1 = (((var1 >> 2) * (var1 >> 2)) >> 13); + var1 = (((var1) * ((int32_t) cd->par_p3 << 5)) >> 3) + (((int32_t) cd->par_p2 * var1) >> 1); + var1 = var1 >> 18; + var1 = ((32768 + var1) * (int32_t) cd->par_p1) >> 15; + pressure = 1048576 - raw_pressure; + pressure = (int32_t)((pressure - (var2 >> 12)) * ((uint32_t)3125)); + var4 = (1 << 31); + pressure = (pressure >= var4) ? (( pressure / (uint32_t) var1) << 1) + : ((pressure << 1) / (uint32_t) var1); + var1 = ((int32_t) cd->par_p9 * (int32_t) (((pressure >> 3) * (pressure >> 3)) >> 13)) >> 12; + var2 = ((int32_t)(pressure >> 2) * (int32_t) cd->par_p8) >> 13; + var3 = ((int32_t)(pressure >> 8) * (int32_t)(pressure >> 8) + * (int32_t)(pressure >> 8) + * (int32_t)cd->par_p10) >> 17; + pressure = (int32_t)(pressure) + ((var1 + var2 + var3 + ((int32_t)cd->par_p7 << 7)) >> 4); + + return (uint32_t) pressure; +} + +/** + * @brief Calculate humidty from raw humidity data + * @copyright Copyright (C) 2017 - 2018 Bosch Sensortec GmbH + * + * The algorithm was extracted from the original Bosch Sensortec BME680 driver + * published as open source. Divisions and multiplications by potences of 2 + * were replaced by shift operations for effeciency reasons. + * + * @ref [BME680_diver](https://github.com/BoschSensortec/BME680_driver) + */ +static uint32_t bme680_convert_humidity (bme680_sensor_t *dev, uint16_t raw_humidity) +{ + if (!dev) return 0; + + bme680_calib_data_t* cd = &dev->calib_data; + + int32_t var1; + int32_t var2; + int32_t var3; + int32_t var4; + int32_t var5; + int32_t var6; + int32_t temp_scaled; + int32_t humidity; + + temp_scaled = (((int32_t) cd->t_fine * 5) + 128) >> 8; + var1 = (int32_t) (raw_humidity - ((int32_t) ((int32_t) cd->par_h1 << 4))) - + (((temp_scaled * (int32_t) cd->par_h3) / ((int32_t) 100)) >> 1); + var2 = ((int32_t) cd->par_h2 * + (((temp_scaled * (int32_t) cd->par_h4) / ((int32_t) 100)) + + (((temp_scaled * ((temp_scaled * (int32_t) cd->par_h5) / ((int32_t) 100))) >> 6) / + ((int32_t) 100)) + (int32_t) (1 << 14))) >> 10; + var3 = var1 * var2; + var4 = (int32_t) cd->par_h6 << 7; + var4 = ((var4) + ((temp_scaled * (int32_t) cd->par_h7) / ((int32_t) 100))) >> 4; + var5 = ((var3 >> 14) * (var3 >> 14)) >> 10; + var6 = (var4 * var5) >> 1; + humidity = (((var3 + var6) >> 10) * ((int32_t) 1000)) >> 12; + + if (humidity > 100000) /* Cap at 100%rH */ + humidity = 100000; + else if (humidity < 0) + humidity = 0; + + return (uint32_t) humidity; +} + + +/** + * @brief Lookup table for gas resitance computation + * @ref BME680 datasheet, page 19 + */ +static float lookup_table[16][2] = { // const1, const2 // gas_range + { 1.0 , 8000000.0 }, // 0 + { 1.0 , 4000000.0 }, // 1 + { 1.0 , 2000000.0 }, // 2 + { 1.0 , 1000000.0 }, // 3 + { 1.0 , 499500.4995 }, // 4 + { 0.99 , 248262.1648 }, // 5 + { 1.0 , 125000.0 }, // 6 + { 0.992, 63004.03226 }, // 7 + { 1.0 , 31281.28128 }, // 8 + { 1.0 , 15625.0 }, // 9 + { 0.998, 7812.5 }, // 10 + { 0.995, 3906.25 }, // 11 + { 1.0 , 1953.125 }, // 12 + { 0.99 , 976.5625 }, // 13 + { 1.0 , 488.28125 }, // 14 + { 1.0 , 244.140625 } // 15 + }; + +/** + * @brief Calculate gas resistance from raw gas resitance value and gas range + * @ref BME680 datasheet + */ +static uint32_t bme680_convert_gas (bme680_sensor_t *dev, uint16_t gas, uint8_t gas_range) +{ + if (!dev) return 0; + + bme680_calib_data_t* cd = &dev->calib_data; + + float var1 = (1340.0 + 5.0 * cd->range_sw_err) * lookup_table[gas_range][0]; + return var1 * lookup_table[gas_range][1] / (gas - 512.0 + var1); +} + +#define msb_lsb_xlsb_to_20bit(t,b,o) (t)((t) b[o] << 12 | (t) b[o+1] << 4 | b[o+2] >> 4) +#define msb_lsb_to_type(t,b,o) (t)(((t)b[o] << 8) | b[o+1]) + +#define BME680_RAW_P_OFF BME680_REG_PRESS_MSB_0-BME680_REG_MEAS_STATUS_0 +#define BME680_RAW_T_OFF (BME680_RAW_P_OFF + BME680_REG_TEMP_MSB_0 - BME680_REG_PRESS_MSB_0) +#define BME680_RAW_H_OFF (BME680_RAW_T_OFF + BME680_REG_HUM_MSB_0 - BME680_REG_TEMP_MSB_0) +#define BME680_RAW_G_OFF (BME680_RAW_H_OFF + BME680_REG_GAS_R_MSB_0 - BME680_REG_HUM_MSB_0) + +static bool bme680_get_raw_data(bme680_sensor_t *dev, bme680_raw_data_t* raw_data) +{ + if (!dev || !raw_data) return false; + + dev->error_code = BME680_OK; + + if (!dev->meas_started) + { + error_dev ("Measurement was not started.", __FUNCTION__, dev); + dev->error_code = BME680_MEAS_NOT_RUNNING; + return false; + } + + uint8_t raw[BME680_REG_RAW_DATA_LEN] = { 0 }; + + if (!(dev->meas_status & BME680_NEW_DATA_BITS)) + { + // read maesurment status from sensor + if (!bme680_read_reg(dev, BME680_REG_MEAS_STATUS_0, raw, 2)) + { + error_dev ("Could not read measurement status from sensor.", __FUNCTION__, dev); + return false; + } + + dev->meas_status = raw[0]; + if (dev->meas_status & BME680_MEASURING_BITS) + { + debug_dev ("Measurement is still running.", __FUNCTION__, dev); + dev->error_code = BME680_MEAS_STILL_RUNNING; + return false; + } + + // test whether there are new data + if (!(dev->meas_status & BME680_NEW_DATA_BITS)) + { + debug_dev ("No new data.", __FUNCTION__, dev); + dev->error_code = BME680_NO_NEW_DATA; + return false; + } + } + + dev->meas_started = false; + raw_data->gas_index = (dev->meas_status & BME680_GAS_MEAS_INDEX_BITS); + + // if there are new data, read raw data from sensor + + if (!bme680_read_reg(dev, BME680_REG_RAW_DATA_0, raw, BME680_REG_RAW_DATA_LEN)) + { + error_dev ("Could not read raw data from sensor.", __FUNCTION__, dev); + return false; + } + + raw_data->gas_valid = bme_get_reg_bit(raw[BME680_RAW_G_OFF+1],BME680_GAS_VALID); + raw_data->heater_stable = bme_get_reg_bit(raw[BME680_RAW_G_OFF+1],BME680_HEAT_STAB_R); + + raw_data->temperature = msb_lsb_xlsb_to_20bit (uint32_t, raw, BME680_RAW_T_OFF); + raw_data->pressure = msb_lsb_xlsb_to_20bit (uint32_t, raw, BME680_RAW_P_OFF); + raw_data->humidity = msb_lsb_to_type (uint16_t, raw, BME680_RAW_H_OFF); + raw_data->gas_resistance = ((uint16_t)raw[BME680_RAW_G_OFF] << 2) | raw[BME680_RAW_G_OFF+1] >> 6; + raw_data->gas_range = raw[BME680_RAW_G_OFF+1] & BME680_GAS_RANGE_R_BITS; + + /* + // These data are not documented and it is not really clear when they are filled + if (!bme680_read_reg(dev, BME680_REG_MEAS_STATUS_1, raw, BME680_REG_RAW_DATA_LEN)) + { + error_dev ("Could not read raw data from sensor.", __FUNCTION__, dev); + return false; + } + + if (!bme680_read_reg(dev, BME680_REG_MEAS_STATUS_2, raw, BME680_REG_RAW_DATA_LEN)) + { + error_dev ("Could not read raw data from sensor.", __FUNCTION__, dev); + return false; + } + */ + debug ("Raw data: %d %d %d %d %d",__FUNCTION__, + raw_data->temperature, raw_data->pressure, + raw_data->humidity, raw_data->gas_resistance, raw_data->gas_range); + + return true; +} + + +/** + * @brief Calculate internal duration representation + * + * Durations are internally representes as one byte + * + * duration = value<5:0> * multiplier<7:6> + * + * where the multiplier is 1, 4, 16, or 64. Maximum duration is therefore + * 64*64 = 4032 ms. The function takes a real world duration value given + * in milliseconds and computes the internal representation. + * + * @ref Datasheet + */ +static uint8_t bme680_heater_duration (uint16_t duration) +{ + uint8_t multiplier = 0; + + while (duration > 63) + { + duration = duration / 4; + multiplier++; + } + return (uint8_t) (duration | (multiplier << 6)); +} + + +/** + * @brief Calculate internal heater resistance value from real temperature. + * + * @ref Datasheet of BME680 + */ +static uint8_t bme680_heater_resistance (const bme680_sensor_t *dev, uint16_t temp) +{ + if (!dev) return 0; + + if (temp < BME680_HEATER_TEMP_MIN) + temp = BME680_HEATER_TEMP_MIN; + else if (temp > BME680_HEATER_TEMP_MAX) + temp = BME680_HEATER_TEMP_MAX; + + const bme680_calib_data_t* cd = &dev->calib_data; + + // from datasheet + double var1; + double var2; + double var3; + double var4; + double var5; + uint8_t res_heat_x; + + var1 = ((double)cd->par_gh1 / 16.0) + 49.0; + var2 = (((double)cd->par_gh2 / 32768.0) * 0.0005) + 0.00235; + var3 = (double)cd->par_gh3 / 1024.0; + var4 = var1 * (1.0 + (var2 * (double) temp)); + var5 = var4 + (var3 * (double)dev->settings.ambient_temperature); + res_heat_x = (uint8_t)(3.4 * ((var5 * (4.0 / (4.0 + (double)cd->res_heat_range)) * + (1.0/(1.0 + ((double)cd->res_heat_val * 0.002)))) - 25)); + return res_heat_x; + +} + + +static void bme680_delay_ms(uint32_t period) +{ + uint32_t start_time = sdk_system_get_time () / 1000; + + vTaskDelay((period + portTICK_PERIOD_MS-1) / portTICK_PERIOD_MS); + + while (sdk_system_get_time()/1000 - start_time < period) + vTaskDelay (1); +} + + +#define BME680_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE3, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + + +static bool bme680_read_reg(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? bme680_i2c_read (dev, reg, data, len) + : bme680_spi_read (dev, reg, data, len); +} + + +static bool bme680_write_reg(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? bme680_i2c_write (dev, reg, data, len) + : bme680_spi_write (dev, reg, data, len); +} + +#define BME680_REG_SWITCH_MEM_PAGE BME680_REG_STATUS +#define BME680_BIT_SWITCH_MEM_PAGE_0 0x00 +#define BME680_BIT_SWITCH_MEM_PAGE_1 0x10 + +static bool bme680_spi_set_mem_page (bme680_sensor_t* dev, uint8_t reg) +{ + // mem pages (reg 0x00 .. 0x7f = 1, reg 0x80 ... 0xff = 0 + uint8_t mem_page = (reg < 0x80) ? BME680_BIT_SWITCH_MEM_PAGE_1 + : BME680_BIT_SWITCH_MEM_PAGE_0; + + debug_dev ("Set mem page for register %02x to %d.", __FUNCTION__, dev, reg, mem_page); + + if (!bme680_spi_write (dev, BME680_REG_SWITCH_MEM_PAGE, &mem_page, 1)) + { + dev->error_code |= BME680_SPI_SET_PAGE_FAILED; + return false; + } + // sdk_os_delay_us (100); + + return true; +} + + +static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + if (len >= BME680_SPI_BUF_SIZE) + { + dev->error_code |= BME680_SPI_BUFFER_OVERFLOW; + error_dev ("Error on read from SPI slave on bus 1. Tried to transfer " + "more than %d byte in one read operation.", + __FUNCTION__, dev, BME680_SPI_BUF_SIZE); + return false; + } + + // set mem page first + if (!bme680_spi_set_mem_page (dev, reg)) + { + error_dev ("Error on read from SPI slave on bus 1. Could not set mem page.", + __FUNCTION__, dev); + return false; + } + + reg &= 0x7f; + reg |= 0x80; + + spi_settings_t old_settings; + + static uint8_t mosi[BME680_SPI_BUF_SIZE]; + static uint8_t miso[BME680_SPI_BUF_SIZE]; + + memset (mosi, 0xff, BME680_SPI_BUF_SIZE); + memset (miso, 0xff, BME680_SPI_BUF_SIZE); + + mosi[0] = reg; + + spi_get_settings(dev->bus, &old_settings); + spi_set_settings(dev->bus, &bus_settings); + gpio_write(dev->spi_cs_pin, false); + + size_t transfered = spi_transfer (dev->bus, (const void*)mosi, (void*)miso, len+1, SPI_8BIT); + + gpio_write(dev->spi_cs_pin, true); + spi_set_settings(dev->bus, &old_settings); + + if (!transfered) + { + error_dev ("Could not read data from SPI", __FUNCTION__, dev); + dev->error_code |= BME680_SPI_READ_FAILED; + return false; + } + + // shift data one by left, first byte received while sending register address is invalid + for (int i=0; i < len; i++) + data[i] = miso[i+1]; + +# ifdef BME680_DEBUG_LEVEL_2 + printf("BME680 %s: read the following bytes: ", __FUNCTION__); + printf("%0x ", reg); + for (int i=0; i < len; i++) + printf("%0x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool bme680_spi_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + static uint8_t mosi[BME680_SPI_BUF_SIZE]; + + if (len >= BME680_SPI_BUF_SIZE) + { + dev->error_code |= BME680_SPI_BUFFER_OVERFLOW; + error_dev ("Error on write to SPI slave on bus 1. Tried to transfer more" + "than %d byte in one write operation.", __FUNCTION__, dev, BME680_SPI_BUF_SIZE); + + return false; + } + + // set mem page first if not mem page register is used + if (reg != BME680_REG_STATUS && !bme680_spi_set_mem_page (dev, reg)) + { + error_dev ("Error on write from SPI slave on bus 1. Could not set mem page.", + __FUNCTION__, dev); + return false; + } + + reg &= 0x7f; + + // first byte in output is the register address + mosi[0] = reg; + + // shift data one byte right, first byte in output is the register address + for (int i = 0; i < len; i++) + mosi[i+1] = data[i]; + +# ifdef BME680_DEBUG_LEVEL_2 + printf("BME680 %s: Write the following bytes: ", __FUNCTION__); + for (int i = 0; i < len+1; i++) + printf("%0x ", mosi[i]); + printf("\n"); +# endif + + spi_settings_t old_settings; + + spi_get_settings(dev->bus, &old_settings); + spi_set_settings(dev->bus, &bus_settings); + gpio_write(dev->spi_cs_pin, false); + + size_t transfered = spi_transfer (dev->bus, (const void*)mosi, NULL, len+1, SPI_8BIT); + + gpio_write(dev->spi_cs_pin, true); + spi_set_settings(dev->bus, &old_settings); + + if (!transfered) + { + error_dev ("Could not write data to SPI.", __FUNCTION__, dev); + dev->error_code |= BME680_SPI_WRITE_FAILED; + return false; + } + + return true; +} + +static bool bme680_i2c_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? BME680_I2C_BUSY : BME680_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef BME680_DEBUG_LEVEL_2 + printf("BME680 %s: Read following bytes: ", __FUNCTION__); + printf("%0x: ", reg); + for (int i=0; i < len; i++) + printf("%0x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool bme680_i2c_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? BME680_I2C_BUSY : BME680_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef BME680_DEBUG_LEVEL_2 + printf("BME680 %s: Wrote the following bytes: ", __FUNCTION__); + printf("%0x: ", reg); + for (int i=0; i < len; i++) + printf("%0x ", data[i]); + printf("\n"); +# endif + + return true; +} diff --git a/extras/bme680/bme680.h b/extras/bme680/bme680.h new file mode 100644 index 0000000..21658f6 --- /dev/null +++ b/extras/bme680/bme680.h @@ -0,0 +1,384 @@ +/* + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure and + * gas sensor connected to I2C or SPI + * + * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __BME680_H__ +#define __BME680_H__ + +#include "bme680/bme680_types.h" + +// Uncomment one of the following defines to enable debug output +// #define BME680_DEBUG_LEVEL_1 // only error messages +// #define BME680_DEBUG_LEVEL_2 // debug and error messages + +// BME680 addresses +#define BME680_I2C_ADDRESS_1 0x76 // SDO pin is low +#define BME680_I2C_ADDRESS_2 0x77 // SDO pin is high + +// BME680 chip id +#define BME680_CHIP_ID 0x61 // BME680_REG_ID<7:0> + +// Definition of error codes +#define BME680_OK 0 +#define BME680_NOK -1 + +#define BME680_INT_ERROR_MASK 0x000f +#define BME680_DRV_ERROR_MASK 0xfff0 + +// Error codes for I2C and SPI interfaces ORed with BME680 driver error codes +#define BME680_I2C_READ_FAILED 1 +#define BME680_I2C_WRITE_FAILED 2 +#define BME680_I2C_BUSY 3 +#define BME680_SPI_WRITE_FAILED 4 +#define BME680_SPI_READ_FAILED 5 +#define BME680_SPI_BUFFER_OVERFLOW 6 +#define BME680_SPI_SET_PAGE_FAILED 7 + +// BME680 driver error codes ORed with error codes for I2C and SPI interfaces +#define BME680_RESET_CMD_FAILED ( 1 << 8) +#define BME680_WRONG_CHIP_ID ( 2 << 8) +#define BME680_READ_CALIB_DATA_FAILED ( 3 << 8) +#define BME680_MEAS_ALREADY_RUNNING ( 4 << 8) +#define BME680_MEAS_NOT_RUNNING ( 5 << 8) +#define BME680_MEAS_STILL_RUNNING ( 6 << 8) +#define BME680_FORCE_MODE_FAILED ( 7 << 8) +#define BME680_NO_NEW_DATA ( 8 << 8) +#define BME680_WRONG_HEAT_PROFILE ( 9 << 8) +#define BME680_MEAS_GAS_NOT_VALID (10 << 8) +#define BME680_HEATER_NOT_STABLE (11 << 8) + +// Driver range definitions +#define BME680_HEATER_TEMP_MIN 200 // min. 200 degree Celsius +#define BME680_HEATER_TEMP_MAX 400 // max. 200 degree Celsius +#define BME680_HEATER_PROFILES 10 // max. 10 heater profiles 0 ... 9 +#define BME680_HEATER_NOT_USED -1 // heater not used profile + +#ifdef __cplusplus +extern "C" +{ +#endif + +/** -------------------------------------------------------------------------- + * + * Functional Description of the BME680 sensor + * + * The BME680 sensor only support two modes, the sleep mode and the forced + * mode in which measurements are done. After power-up sequence, the sensor + * automatically starts in sleep mode. To start a measurement, the sensor has + * to switch in the forced mode. In this mode it performs exactly one + * measurement of temperature, pressure, humidity, and gas in that order, + * the so-called TPHG measurement cycle. After the execution of this TPHG + * measurement cycle, raw sensor data are available and the sensor returns + * automatically back to sleep mode. + * + * Using the BME680 consists of the following steps + * + * 1. Trigger the sensor to switch into forced mode to perform one THPG cycle + * 2. Wait until the THPG cycle has been finished (measurement duration) + * 3. Fetch raw sensor data, compensate and convert them to sensor values + * + * --------------------------------------------------------------------------- + */ + +/** + * @brief Initialize a BME680 sensor + * + * The function initializes the sensor device data structure, probes the + * sensor, soft resets the sensor, and configures the sensor with the + * the following default settings: + * + * - Oversampling rate for temperature, pressure, humidity is osr_1x + * - Filter size for pressure and temperature is iir_size 3 + * - Heater profile 0 with 320 degree C and 150 ms duration + * + * The sensor can be connected either to an I2C or a SPI bus. In both cases, + * the parameter *bus* specifies the ID of the corresponding bus. Please note + * that in case of SPI, bus 1 has to be used since bus 0 is used for system + * flash memory. + * + * If parameter *addr* is greater than 0, it defines a valid I2C slave address + * and the sensor is connected to an I2C bus. In that case parameter *cs* is + * ignored. + * + * If parameter *addr* is 0, the sensor is connected to a SPI bus. In that + * case, parameter *cs* defines the GPIO used as CS signal + * + * @param bus I2C or SPI bus at which BME680 sensor is connected + * @param addr I2C addr of the BME680 sensor, 0 for SPI + * @param cs SPI CS GPIO, ignored for I2C + * @return pointer to sensor data structure, or NULL on error + */ +bme680_sensor_t* bme680_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs_pin); + + +/** + * @brief Force one single TPHG measurement + * + * The function triggers the sensor to start one THPG measurement cycle. + * Parameters for the measurement like oversampling rates, IIR filter sizes + * and heater profile can be configured before. + * + * Once the TPHG measurement is started, the user task has to wait for the + * results. The duration of the TPHG measurement can be determined with + * function *bme680_get_measurement_duration*. + * + * @param dev pointer to the sensor device data structure + * @return true on success, false on error + */ +bool bme680_force_measurement (bme680_sensor_t* dev); + + +/** + * @brief Get estimated duration of a TPHG measurement + * + * The function returns an estimated duration of the TPHG measurement cycle + * in RTOS ticks for the current configuration of the sensor. + * + * This duration is the time required by the sensor for one TPHG measurement + * until the results are available. It strongly depends on which measurements + * are performed in the THPG measurement cycle and what configuration + * parameters were set. It can vary from 1 RTOS (10 ms) tick up to 4500 RTOS + * ticks (4.5 seconds). + * + * If the measurement configuration is not changed, the duration can be + * considered as constant. + * + * @param dev pointer to the sensor device data structure + * @return duration of TPHG measurement cycle in ticks or 0 on error + */ +uint32_t bme680_get_measurement_duration (const bme680_sensor_t *dev); + +/** + * @brief Get the measurement status + * + * The function can be used to test whether a measurement that was started + * before is still running. + * + * @param dev pointer to the sensor device data structure + * @return true if measurement is still running or false otherwise + */ +bool bme680_is_measuring (bme680_sensor_t* dev); + + +/** + * @brief Get results of a measurement in fixed point representation + * + * The function returns the results of a TPHG measurement that has been + * started before. If the measurement is still running, the function fails + * and returns invalid values (see type declaration). + * + * @param dev pointer to the sensor device data structure + * @param results pointer to a data structure that is filled with results + * @return true on success, false on error + */ +bool bme680_get_results_fixed (bme680_sensor_t* dev, + bme680_values_fixed_t* results); + +/** + * @brief Get results of a measurement in floating point representation + * + * The function returns the results of a TPHG measurement that has been + * started before. If the measurement is still running, the function fails + * and returns invalid values (see type declaration). + * + * @param dev pointer to the sensor device data structure + * @param results pointer to a data structure that is filled with results + * @return true on success, false on error + */ +bool bme680_get_results_float (bme680_sensor_t* dev, + bme680_values_float_t* results); + +/** + * @brief Start a measurement, wait and return the results (fixed point) + * + * This function is a combination of functions above. For convenience it + * starts a TPHG measurement using *bme680_force_measurement*, then it waits + * the measurement duration for the results using *vTaskDelay* and finally it + * returns the results using function *bme680_get_results_fixed*. + * + * Note: Since the calling task is delayed using function *vTaskDelay*, this + * function must not be used when it is called from a software timer callback + * function. + * + * @param dev pointer to the sensor device data structure + * @param results pointer to a data structure that is filled with results + * @return true on success, false on error + */ +bool bme680_measure_fixed (bme680_sensor_t* dev, + bme680_values_fixed_t* results); + + +/** + * @brief Start a measurement, wait and return the results (floating point) + * + * This function is a combination of functions above. For convenience it + * starts a TPHG measurement using *bme680_force_measurement*, then it waits + * the measurement duration for the results using *vTaskDelay* and finally it + * returns the results using function *bme680_get_results_float*. + * + * Note: Since the calling task is delayed using function *vTaskDelay*, this + * function must not be used when it is called from a software timer callback + * function. + * + * @param dev pointer to the sensor device data structure + * @param results pointer to a data structure that is filled with results + * @return true on success, false on error + */ +bool bme680_measure_float (bme680_sensor_t* dev, + bme680_values_float_t* results); + +/** + * @brief Set the oversampling rates for measurements + * + * The BME680 sensor allows to define individual oversampling rates for + * the measurements of temperature, pressure and humidity. Using an + * oversampling rate of *osr*, the resolution of raw sensor data can be + * increased by ld(*osr*) bits. + * + * Possible oversampling rates are 1x (default), 2x, 4x, 8x, 16x, see type + * *bme680_oversampling_rate_t*. The default oversampling rate is 1. + * + * Please note: Use *osr_none* to skip the corresponding measurement. + * + * @param dev pointer to the sensor device data structure + * @param ost oversampling rate for temperature measurements + * @param osp oversampling rate for pressure measurements + * @param osh oversampling rate for humidity measurements + * @return true on success, false on error + */ +bool bme680_set_oversampling_rates (bme680_sensor_t* dev, + bme680_oversampling_rate_t osr_t, + bme680_oversampling_rate_t osr_p, + bme680_oversampling_rate_t osr_h); + + +/** + * @brief Set the size of the IIR filter + * + * The sensor integrates an internal IIR filter (low pass filter) to reduce + * short-term changes in sensor output values caused by external disturbances. + * It effectively reduces the bandwidth of the sensor output values. + * + * The filter can optionally be used for pressure and temperature data that + * are subject to many short-term changes. Using the IIR filter, increases the + * resolution of pressure and temperature data to 20 bit. Humidity and gas + * inside the sensor does not fluctuate rapidly and does not require such a + * low pass filtering. + * + * The default filter size is 3 (*iir_size_3*). + * + * Please note: If the size of the filter is 0, the filter is not used. + * + * @param dev pointer to the sensor device data structure + * @param size IIR filter size + * @return true on success, false on error + */ +bool bme680_set_filter_size(bme680_sensor_t* dev, bme680_filter_size_t size); + + +/** + * @brief Set a heater profile for gas measurements + * + * The sensor integrates a heater for the gas measurement. Parameters for this + * heater are defined by so called heater profiles. The sensor supports up to + * 10 heater profiles, which are numbered from 0 to 9. Each profile consists of + * a temperature set-point (the target temperature) and a heating duration. + * + * This function sets the parameters for one of the heater profiles 0 ... 9. + * To activate the gas measurement with this profile, use function + * *bme680_use_heater_profile*, see below. + * + * Please note: According to the data sheet, a target temperatures of between + * 200 and 400 degrees Celsius are typical and about 20 to 30 ms are necessary + * for the heater to reach the desired target temperature. + * + * @param dev pointer to the sensor device data structure + * @param profile heater profile 0 ... 9 + * @param temperature target temperature in degree Celsius + * @param duration heating duration in milliseconds + * @return true on success, false on error + */ +bool bme680_set_heater_profile (bme680_sensor_t* dev, + uint8_t profile, + uint16_t temperature, + uint16_t duration); + +/** + * @brief Activate gas measurement with a given heater profile + * + * The function activates the gas measurement with one of the heater + * profiles 0 ... 9 or deactivates the gas measurement completely when + * -1 or BME680_HEATER_NOT_USED is used as heater profile. + * + * Parameters of the activated heater profile have to be set before with + * function *bme680_set_heater_profile* otherwise the function fails. + * + * If several heater profiles have been defined with function + * *bme680_set_heater_profile*, a sequence of gas measurements with different + * heater parameters can be realized by a sequence of activations of different + * heater profiles for successive TPHG measurements using this function. + * + * @param dev pointer to the sensor device data structure0 * + * @param profile 0 ... 9 to activate or -1 to deactivate gas measure + * @return true on success, false on error + */ +bool bme680_use_heater_profile (bme680_sensor_t* dev, int8_t profile); + +/** + * @brief Set ambient temperature + * + * The heater resistance calculation algorithm takes into account the ambient + * temperature of the sensor. This function can be used to set this ambient + * temperature. Either values determined from the sensor itself or from + * another temperature sensor can be used. The default ambient temperature + * is 25 degree Celsius. + * + * @param dev pointer to the sensor device data structure + * @param temperature ambient temperature in degree Celsius + * @return true on success, false on error + */ +bool bme680_set_ambient_temperature (bme680_sensor_t* dev, + int16_t temperature); + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __BME680_H__ */ diff --git a/extras/bme680/bme680_types.h b/extras/bme680/bme680_types.h new file mode 100644 index 0000000..8234135 --- /dev/null +++ b/extras/bme680/bme680_types.h @@ -0,0 +1,192 @@ +/* + * Driver for Bosch Sensortec BME680 digital temperature, humity, pressure and + * gas sensor connected to I2C or SPI + * + * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __BME680_TYPES_H__ +#define __BME680_TYPES_H__ + +#include "stdint.h" +#include "stdbool.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +/** + * @brief Fixed point sensor values (fixed THPG values) + */ +typedef struct { // invalid value + int16_t temperature; // temperature in degree C * 100 (INT16_MIN) + uint32_t pressure; // barometric pressure in Pascal (0) + uint32_t humidity; // relative humidity in % * 1000 (0) + uint32_t gas_resistance; // gas resistance in Ohm (0) +} bme680_values_fixed_t; + +/** + * @brief Floating point sensor values (real THPG values) + */ +typedef struct { // invalid value + float temperature; // temperature in degree C (-327.68) + float pressure; // barometric pressure in hPascal (0.0) + float humidity; // relative humidity in % (0.0) + float gas_resistance; // gas resistance in Ohm (0.0) +} bme680_values_float_t; + + +/** + * @brief Oversampling rates + */ +typedef enum { + osr_none = 0, // measurement is skipped, output values are invalid + osr_1x = 1, // default oversampling rates + osr_2x = 2, + osr_4x = 3, + osr_8x = 4, + osr_16x = 5 +} bme680_oversampling_rate_t; + + +/** + * @brief Filter sizes + */ +typedef enum { + iir_size_0 = 0, // filter is not used + iir_size_1 = 1, + iir_size_3 = 2, + iir_size_7 = 3, + iir_size_15 = 4, + iir_size_31 = 5, + iir_size_63 = 6, + iir_size_127 = 7 +} bme680_filter_size_t; + + +/** + * @brief Sensor parameters that configure the TPHG measurement cycle + * + * T - temperature measurement + * P - pressure measurement + * H - humidity measurement + * G - gas measurement + */ +typedef struct { + + uint8_t osr_temperature; // T oversampling rate (default osr_1x) + uint8_t osr_pressure; // P oversampling rate (default osr_1x) + uint8_t osr_humidity; // H oversampling rate (default osr_1x) + uint8_t filter_size; // IIR filter size (default iir_size_3) + + int8_t heater_profile; // Heater profile used (default 0) + uint16_t heater_temperature[10]; // Heater temperature for G (default 320) + uint16_t heater_duration[10]; // Heater duration for G (default 150) + + int8_t ambient_temperature; // Ambient temperature for G (default 25) + +} bme680_settings_t; + +/** + * @brief Data structure for calibration parameters + * + * These calibration parameters are used in compensation algorithms to convert + * raw sensor data to measurement results. + */ +typedef struct { + + uint16_t par_t1; // calibration data for temperature compensation + int16_t par_t2; + int8_t par_t3; + + uint16_t par_p1; // calibration data for pressure compensation + int16_t par_p2; + int8_t par_p3; + int16_t par_p4; + int16_t par_p5; + int8_t par_p7; + int8_t par_p6; + int16_t par_p8; + int16_t par_p9; + uint8_t par_p10; + + uint16_t par_h1; // calibration data for humidity compensation + uint16_t par_h2; + int8_t par_h3; + int8_t par_h4; + int8_t par_h5; + uint8_t par_h6; + int8_t par_h7; + + int8_t par_gh1; // calibration data for gas compensation + int16_t par_gh2; + int8_t par_gh3; + + int32_t t_fine; // temperatur correction factor for P and G + uint8_t res_heat_range; + int8_t res_heat_val; + int8_t range_sw_err; + +} bme680_calib_data_t; + + +/** + * @brief BME680 sensor device data structure type + */ +typedef struct { + + int error_code; // contains the error code of last operation + + uint8_t bus; // I2C = x, SPI = 1 + uint8_t addr; // I2C = slave address, SPI = 0 + uint8_t spi_cs_pin; // GPIO used as SPI CS + + bool meas_started; // indicates whether measurement started + uint32_t meas_start_tick; // measurement start time in RTOS ticks + uint8_t meas_status; // last sensor status (for internal use only) + + bme680_settings_t settings; // sensor settings + bme680_calib_data_t calib_data; // calibration data of the sensor + +} bme680_sensor_t; + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __BME680_TYPES_H__ */ diff --git a/extras/bme680/component.mk b/extras/bme680/component.mk new file mode 100644 index 0000000..f890ad0 --- /dev/null +++ b/extras/bme680/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/bme60 + +# expected anyone using bme680 driver includes it as 'bme680/bme680.h' +INC_DIRS += $(bme680_ROOT).. + +# args for passing into compile rule generation +bme680_SRC_DIR = $(bme680_ROOT) + +$(eval $(call component_compile_rules,bme680)) From 8a9c3fd9e81bc0daaf06529abcad3a995613816f Mon Sep 17 00:00:00 2001 From: lilian Date: Fri, 17 Nov 2017 20:44:02 +0100 Subject: [PATCH 232/349] ina3221 ptr NULL security --- examples/ina3221_test/main.c | 2 +- extras/ina3221/ina3221.c | 14 +++++++++----- extras/ina3221/ina3221.h | 10 +++++----- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/examples/ina3221_test/main.c b/examples/ina3221_test/main.c index cd8150e..e64e879 100644 --- a/examples/ina3221_test/main.c +++ b/examples/ina3221_test/main.c @@ -90,7 +90,7 @@ void ina_measure(void *pvParameters) if(dev.mask.wf&(1<<(3-WARNING_CHANNEL))) warning = true ; #endif - for (uint8_t i = 0 ; i < BUS_NUMBER ; i++) + for (uint8_t i = 0 ; i < INA3221_BUS_NUMBER ; i++) { if(ina3221_getBusVoltage(&dev, i, &bus_voltage)) // Get voltage in V goto error_loop; diff --git a/extras/ina3221/ina3221.c b/extras/ina3221/ina3221.c index 1c6c51a..7d54e76 100644 --- a/extras/ina3221/ina3221.c +++ b/extras/ina3221/ina3221.c @@ -132,7 +132,8 @@ int ina3221_getBusVoltage(ina3221_t *dev, ina3221_channel_t channel, float *volt int err = 0; if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_BUSVOLTAGE_1 + channel * 2, (uint16_t*)&raw_value))) return err; - *voltage = raw_value * 0.001; //V 8mV step + if (voltage) + *voltage = raw_value * 0.001; //V 8mV step return 0; } @@ -140,15 +141,18 @@ int ina3221_getShuntValue(ina3221_t *dev, ina3221_channel_t channel, float *volt { int16_t raw_value; int err = 0; - if ((err = _wireReadRegister(&dev->i2c_dev, INA3221_REG_SHUNTVOLTAGE_1 + channel * 2, (uint16_t*)&raw_value))) + if ((err = _wireReadRegister(&dev->i2c_dev,INA3221_REG_SHUNTVOLTAGE_1+channel*2, (uint16_t*)&raw_value))) return err; - *voltage = raw_value * 0.005; //mV 40uV step - if (!dev->shunt[channel]) + float compute = raw_value*0.005; //mV 40uV step + if (voltage) + *voltage = compute; + if(!dev->shunt[channel]) { debug("No shunt configured for channel %u. Dev:%u:%X\n", channel+1, dev->bus, dev->addr); return -EINVAL; } - *current = (*voltage * 1000.0) / dev->shunt[channel]; //mA + if (current) + *current = (compute*1000.0)/dev->shunt[channel]; //mA return 0; } diff --git a/extras/ina3221/ina3221.h b/extras/ina3221/ina3221.h index c16206e..6783dfa 100644 --- a/extras/ina3221/ina3221.h +++ b/extras/ina3221/ina3221.h @@ -26,7 +26,7 @@ extern "C" { #define INA3221_ADDR_2 (0x42) ///< A0 to SDA #define INA3221_ADDR_3 (0x43) ///< A0 to SCL -#define BUS_NUMBER 3 ///< Number of shunt available +#define INA3221_BUS_NUMBER 3 ///< Number of shunt available #define INA3221_REG_CONFIG (0x00) #define INA3221_REG_SHUNTVOLTAGE_1 (0x01) @@ -133,10 +133,10 @@ typedef union * Device description */ typedef struct { - const i2c_dev_t i2c_dev; ///< ina3221 I2C address - const uint16_t shunt[BUS_NUMBER]; ///< Memory of shunt value (mOhm) - ina3221_config_t config; ///< Memory of ina3221 config - ina3221_mask_t mask; ///< Memory of mask_config + const i2c_dev_t i2c_dev; ///< ina3221 I2C address + const uint16_t shunt[INA3221_BUS_NUMBER]; ///< Memory of shunt value (mOhm) + ina3221_config_t config; ///< Memory of ina3221 config + ina3221_mask_t mask; ///< Memory of mask_config } ina3221_t; /** From 0e6694144fc13252d04929a4d116d3d720f762cb Mon Sep 17 00:00:00 2001 From: Efthymios Kalyviotis Date: Sun, 19 Nov 2017 23:27:55 +0200 Subject: [PATCH 233/349] Fixed Repeated-start in I2C --- extras/i2c/i2c.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index 6379736..4cdd02f 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -344,8 +344,6 @@ int i2c_slave_read(uint8_t bus, uint8_t slave_addr, const uint8_t *data, uint8_t goto error; if (!i2c_write(bus, *data)) goto error; - if (!i2c_stop(bus)) - goto error; } i2c_start(bus); if (!i2c_write(bus, slave_addr << 1 | 1)) // Slave address + read From 8354c03a1221779fde1489d049d263dbc217d691 Mon Sep 17 00:00:00 2001 From: funnydog Date: Wed, 22 Nov 2017 16:23:52 +0100 Subject: [PATCH 234/349] Fix the SPIFFS POSIX API (#489) The commit ebdd2f9 defined some offsets to differentiate between the standard, socket and file descriptors. SPIFFS_FILEHDL_OFFSET was updated accordingly but the code didn't use that constant and this broke the SPIFFS POSIX API. Fix it by initializing the fh_ix_offset field of the spiffs_config structure to SPIFFS_FILEHDL_OFFSET. --- extras/spiffs/esp_spiffs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/spiffs/esp_spiffs.c b/extras/spiffs/esp_spiffs.c index 93ea24a..a541595 100644 --- a/extras/spiffs/esp_spiffs.c +++ b/extras/spiffs/esp_spiffs.c @@ -90,7 +90,7 @@ void esp_spiffs_init(uint32_t addr, uint32_t size) config.hal_write_f = esp_spiffs_write; config.hal_erase_f = esp_spiffs_erase; - config.fh_ix_offset = 3; + config.fh_ix_offset = SPIFFS_FILEHDL_OFFSET; } From a0f846013c473a4215deeebe2718e049bcc62548 Mon Sep 17 00:00:00 2001 From: Zaltora Date: Sat, 2 Dec 2017 07:54:04 +0100 Subject: [PATCH 235/349] pwm fix (#485) * pwm fix special state + debug print + IRAM interupt * Special state = don't set timer, safer * fix timer crash, cant divide by 0 * pwm dont start when duty is set * reverse option * fix low duty crash + comments --- core/esp_timer.c | 5 +++ examples/pwm_test/pwm_test.c | 2 +- extras/pwm/pwm.c | 85 +++++++++++++++++++++++------------- extras/pwm/pwm.h | 31 ++++++++++++- 4 files changed, 91 insertions(+), 32 deletions(-) diff --git a/core/esp_timer.c b/core/esp_timer.c index 9282e26..2110948 100644 --- a/core/esp_timer.c +++ b/core/esp_timer.c @@ -83,6 +83,11 @@ int timer_set_frequency(const timer_frc_t frc, uint32_t freq) uint32_t counts = 0; timer_clkdiv_t div = timer_freq_to_div(freq); + if(freq == 0) //can't divide by 0 + { + return -EINVAL; + } + counts = timer_freq_to_count(frc, freq, div); if(counts == 0) { diff --git a/examples/pwm_test/pwm_test.c b/examples/pwm_test/pwm_test.c index 1cd2bc5..782d295 100644 --- a/examples/pwm_test/pwm_test.c +++ b/examples/pwm_test/pwm_test.c @@ -35,7 +35,7 @@ void user_init(void) printf("pwm_init(1, [14])\n"); pins[0] = 14; - pwm_init(1, pins); + pwm_init(1, pins, false); printf("pwm_set_freq(1000) # 1 kHz\n"); pwm_set_freq(1000); diff --git a/extras/pwm/pwm.c b/extras/pwm/pwm.c index 3fbc8a4..371518e 100644 --- a/extras/pwm/pwm.c +++ b/extras/pwm/pwm.c @@ -12,6 +12,12 @@ #include #include +#ifdef PWM_DEBUG +#define debug(fmt, ...) printf("%s: " fmt "\n", "PWM", ## __VA_ARGS__) +#else +#define debug(fmt, ...) +#endif + typedef struct PWMPinDefinition { uint8_t pin; @@ -27,6 +33,8 @@ typedef enum { typedef struct pwmInfoDefinition { uint8_t running; + bool output; + bool reverse; uint16_t freq; uint16_t dutyCycle; @@ -43,7 +51,7 @@ typedef struct pwmInfoDefinition static PWMInfo pwmInfo; -static void frc1_interrupt_handler(void *arg) +static void IRAM frc1_interrupt_handler(void *arg) { uint8_t i = 0; bool out = true; @@ -59,19 +67,19 @@ static void frc1_interrupt_handler(void *arg) for (; i < pwmInfo.usedPins; ++i) { - gpio_write(pwmInfo.pins[i].pin, out); + gpio_write(pwmInfo.pins[i].pin, pwmInfo.reverse ? !out : out); } timer_set_load(FRC1, load); pwmInfo._step = step; } -void pwm_init(uint8_t npins, const uint8_t* pins) +void pwm_init(uint8_t npins, const uint8_t* pins, uint8_t reverse) { /* Assert number of pins is correct */ if (npins > MAX_PWM_PINS) { - printf("Incorrect number of PWM pins (%d)\n", npins); + debug("Incorrect number of PWM pins (%d)\n", npins); return; } @@ -80,6 +88,7 @@ void pwm_init(uint8_t npins, const uint8_t* pins) pwmInfo._onLoad = 0; pwmInfo._offLoad = 0; pwmInfo._step = PERIOD_ON; + pwmInfo.reverse = reverse; /* Save pins information */ pwmInfo.usedPins = npins; @@ -101,12 +110,11 @@ void pwm_init(uint8_t npins, const uint8_t* pins) /* Flag not running */ pwmInfo.running = 0; + debug("PWM Init"); } void pwm_set_freq(uint16_t freq) { - pwmInfo.freq = freq; - /* Stop now to avoid load being used */ if (pwmInfo.running) { @@ -114,8 +122,13 @@ void pwm_set_freq(uint16_t freq) pwmInfo.running = 1; } - timer_set_frequency(FRC1, freq); - pwmInfo._maxLoad = timer_get_load(FRC1); + if (!timer_set_frequency(FRC1, freq)) + { + pwmInfo._maxLoad = timer_get_load(FRC1); + pwmInfo.freq = freq; + debug("Frequency set at %u",pwmInfo.freq); + debug("MaxLoad is %u",pwmInfo._maxLoad); + } if (pwmInfo.running) { @@ -125,22 +138,13 @@ void pwm_set_freq(uint16_t freq) void pwm_set_duty(uint16_t duty) { - bool output; - pwmInfo.dutyCycle = duty; - if (duty > 0 && duty < UINT16_MAX) { - pwm_restart(); - return; - } - - // 0% and 100% duty cycle are special cases: constant output. - pwm_stop(); - pwmInfo.running = 1; - output = (duty == UINT16_MAX); - for (uint8_t i = 0; i < pwmInfo.usedPins; ++i) + if (duty == 0 || duty == UINT16_MAX) { - gpio_write(pwmInfo.pins[i].pin, output); + pwmInfo.output = (duty == UINT16_MAX); } + debug("Duty set at %u",pwmInfo.dutyCycle); + pwm_restart(); } void pwm_restart() @@ -158,18 +162,34 @@ void pwm_start() pwmInfo._offLoad = pwmInfo._maxLoad - pwmInfo._onLoad; pwmInfo._step = PERIOD_ON; - // Trigger ON - uint8_t i = 0; - for (; i < pwmInfo.usedPins; ++i) + if(!pwmInfo._onLoad) { - gpio_write(pwmInfo.pins[i].pin, true); + debug("Can't set timer with low duty and frequency settings, put duty at 0"); + pwmInfo.dutyCycle = 0; } - timer_set_load(FRC1, pwmInfo._onLoad); - timer_set_reload(FRC1, false); - timer_set_interrupts(FRC1, true); - timer_set_run(FRC1, true); - + // 0% and 100% duty cycle are special cases: constant output. + if (pwmInfo.dutyCycle > 0 && pwmInfo.dutyCycle < UINT16_MAX) + { + // Trigger ON + uint8_t i = 0; + for (; i < pwmInfo.usedPins; ++i) + { + gpio_write(pwmInfo.pins[i].pin, pwmInfo.reverse ? false : true); + } + timer_set_load(FRC1, pwmInfo._onLoad); + timer_set_reload(FRC1, false); + timer_set_interrupts(FRC1, true); + timer_set_run(FRC1, true); + } + else + { + for (uint8_t i = 0; i < pwmInfo.usedPins; ++i) + { + gpio_write(pwmInfo.pins[i].pin, pwmInfo.reverse ? !pwmInfo.output : pwmInfo.output ); + } + } + debug("PWM started"); pwmInfo.running = 1; } @@ -177,5 +197,10 @@ void pwm_stop() { timer_set_interrupts(FRC1, false); timer_set_run(FRC1, false); + for (uint8_t i = 0; i < pwmInfo.usedPins; ++i) + { + gpio_write(pwmInfo.pins[i].pin, pwmInfo.reverse ? true : false); + } + debug("PWM stopped"); pwmInfo.running = 0; } diff --git a/extras/pwm/pwm.h b/extras/pwm/pwm.h index e2e7d75..813520b 100644 --- a/extras/pwm/pwm.h +++ b/extras/pwm/pwm.h @@ -16,12 +16,41 @@ extern "C" { #endif -void pwm_init(uint8_t npins, const uint8_t* pins); +//Warning: Printf disturb pwm. You can use "uart_putc" instead. + +/** + * Initialize pwm + * @param npins Number of pwm pin used + * @param pins Array pointer to the pins + * @param reverse If true, the pwm work in reverse mode + */ +void pwm_init(uint8_t npins, const uint8_t* pins, uint8_t reverse); + +/** + * Set PWM frequency. If error, frequency not set + * @param freq PWM frequency value in Hertz + */ void pwm_set_freq(uint16_t freq); + +/** + * Set Duty between 0 and UINT16_MAX + * @param duty Duty value + */ void pwm_set_duty(uint16_t duty); +/** + * Restart the pwm signal + */ void pwm_restart(); + +/** + * Start the pwm signal + */ void pwm_start(); + +/** + * Stop the pwm signal + */ void pwm_stop(); #ifdef __cplusplus From 962196ef1d0036b749da374ec5c5c79e989a256f Mon Sep 17 00:00:00 2001 From: Zaltora Date: Sat, 2 Dec 2017 10:37:52 +0100 Subject: [PATCH 236/349] color and timing (ws2812_i2s) (#493) --- examples/ws2812_i2s/ws2812_i2s_colour_loop.c | 2 +- extras/ws2812_i2s/ws2812_i2s.h | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c index c5b5411..b28f83b 100644 --- a/examples/ws2812_i2s/ws2812_i2s_colour_loop.c +++ b/examples/ws2812_i2s/ws2812_i2s_colour_loop.c @@ -41,7 +41,7 @@ static int fix_index(int index) static ws2812_pixel_t next_colour() { - ws2812_pixel_t colour = {0, 0, 0, 0}; + ws2812_pixel_t colour = { {0, 0, 0, 0} }; colour.red = rand() % 256; colour.green = rand() % 256; colour.blue = rand() % 256; diff --git a/extras/ws2812_i2s/ws2812_i2s.h b/extras/ws2812_i2s/ws2812_i2s.h index 16956dc..ffb2701 100644 --- a/extras/ws2812_i2s/ws2812_i2s.h +++ b/extras/ws2812_i2s/ws2812_i2s.h @@ -31,11 +31,14 @@ extern "C" { #endif -typedef struct { - uint8_t red; - uint8_t green; - uint8_t blue; - uint8_t white; +typedef union { + struct { + uint8_t blue; //LSB + uint8_t green; + uint8_t red; + uint8_t white; + }; + uint32_t color; // 0xWWRRGGBB } ws2812_pixel_t; typedef enum { From 6faf7c569dd0bbfda96d99ce4ddf2901fb9a58d3 Mon Sep 17 00:00:00 2001 From: Maxim Kulkin Date: Mon, 4 Dec 2017 23:15:18 -0800 Subject: [PATCH 237/349] Fix mdnsresponder compilation issues (#481) --- extras/mdnsresponder/mdnsresponder.c | 131 ++++++++++++++------------- extras/mdnsresponder/mdnsresponder.h | 10 +- 2 files changed, 72 insertions(+), 69 deletions(-) diff --git a/extras/mdnsresponder/mdnsresponder.c b/extras/mdnsresponder/mdnsresponder.c index 30ff75e..98d0897 100644 --- a/extras/mdnsresponder/mdnsresponder.c +++ b/extras/mdnsresponder/mdnsresponder.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,7 @@ #define DNS_MULTICAST_ADDRESS "224.0.0.251" // RFC 6762 #define DNS_MDNS_PORT 5353 // RFC 6762 +#define DNS_MSG_SIZE 512 //------------------------------------------------------------------- @@ -100,7 +102,7 @@ PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif - + #define vTaskDelayMs(ms) vTaskDelay((ms)/portTICK_PERIOD_MS) #define UNUSED_ARG(x) (void)x #define kDummyDataSize 8 // arbitrary, dynamically resized @@ -145,7 +147,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list #define DNS_FLAG2_RESMASK 0x0F static char qstr[12]; - + static char* mdns_qrtype(uint16_t typ) { switch(typ) { @@ -161,9 +163,9 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list sprintf(qstr,"type %d",typ); return qstr; } - + #ifdef qLogAllTraffic - + static void mdns_printhex(u8_t* p, int n) { int i; @@ -178,14 +180,14 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list { int i, n; char* cp; - + n = *p++; cp = (char*)p; for (i=0; iflags1 & DNS_FLAG1_RESP) { @@ -235,7 +237,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list } if (hdr->flags1 & DNS_FLAG1_RD) printf("RD "); if (hdr->flags1 & DNS_FLAG1_TRUNC) printf("[TRUNC] "); - + printf(": %d questions", htons(hdr->numquestions) ); if (hdr->numanswers != 0) printf(", %d answers",htons(hdr->numanswers)); @@ -252,7 +254,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list { struct mdns_query q; uint16_t c; - + memcpy(&q,p,SIZEOF_DNS_QUERY); c = htons(q.class); printf(" %s %s", mdns_qrtype(htons(q.type)), mdns_qclass(c & 0x7FFF) ); @@ -266,7 +268,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list { struct mdns_answer ans; u16_t rrlen, atype, rrClass;; - + memcpy(&ans,p,SIZEOF_DNS_ANSWER); atype = htons(ans.type); rrlen = htons(ans.len); @@ -305,7 +307,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list u8_t* tp; u8_t* limP = msgP + msgLen; struct mdns_hdr* hdr; - + hdr = (struct mdns_hdr*) msgP; tp = mdns_print_header(hdr); for (i=0; inumquestions); i++) { @@ -314,21 +316,21 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list tp = mdns_print_query(tp); if (tp > limP) return 0; } - + for (i=0; inumanswers); i++) { printf(" A%d: ",i+1); tp = mdns_print_name(tp,hdr); tp = mdns_print_answer(tp,hdr); if (tp > limP) return 0; } - + for (i=0; inumauthrr); i++) { printf(" AuRR%d: ",i+1); tp = mdns_print_name(tp,hdr); tp = mdns_print_answer(tp,hdr); if (tp > limP) return 0; } - + for (i=0; inumextrarr); i++) { printf(" ExRR%d: ",i+1); tp = mdns_print_name(tp,hdr); @@ -348,7 +350,7 @@ static u8_t* mdns_labels2str(u8_t* hdrP, u8_t* p, char* qStr) // Handles compression { int i, n; - + do { n = *p++; if ((n & 0xC0) == 0xC0) { @@ -374,7 +376,7 @@ static int mdns_str2labels(const char* name, u8_t* lseq, int max) { int i,n,sdx,idx = 0; int lc = 0; - + do { sdx = idx; while (name[idx] != '.' && name[idx] != 0) idx++; @@ -399,7 +401,7 @@ static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClas { struct mdns_query qr; uint16_t cls; - + qp = mdns_labels2str(hdrP, qp, qStr); memcpy(&qr,qp,SIZEOF_DNS_QUERY); *qType = htons(qr.type); @@ -417,7 +419,7 @@ static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const vo { mdns_rsrc* rsrcP; int keyLen, recSize; - + keyLen = strlen(vKey) + 1; recSize = sizeof(mdns_rsrc) - kDummyDataSize + keyLen + vDataSize; rsrcP = (mdns_rsrc*)malloc(recSize); @@ -442,7 +444,7 @@ void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nmStr) { int nl; u8_t lBuff[kMaxNameSize]; - + nl = mdns_str2labels(nmStr,lBuff,sizeof(lBuff)); if (nl>0) mdns_add_response(rKey, DNS_RRTYPE_PTR, ttl, lBuff, nl); @@ -454,10 +456,10 @@ void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targName struct mdns_rr_srv srvRR; u8_t lBuff[kMaxNameSize]; } __attribute__((packed)) SrvRec; - + int nl; SrvRec temp; - + temp.srvRR.prio = 0; temp.srvRR.weight = 0; temp.srvRR.port = htons(rPort); @@ -480,46 +482,45 @@ void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txStr) } } -void mdns_add_A(const char* rKey, u32_t ttl, struct ip_addr addr) +void mdns_add_A(const char* rKey, u32_t ttl, ip_addr_t addr) { mdns_add_response(rKey, DNS_RRTYPE_A, ttl, &addr, sizeof(addr)); } void mdns_add_facility( const char* instanceName, // Friendly name, need not be unique - const char* serviceName, // Must be _name + const char* serviceName, // Must be "name", e.g. "hap" or "http" const char* addText, // Must be = - mdns_flags flags, // TCP or UDP - u16_t onPort, // port number - u32_t ttl // seconds + mdns_flags flags, // TCP or UDP + u16_t onPort, // port number + u32_t ttl // seconds ) { char key[64]; char fullName[128]; char devName[96]; struct ip_info ipInfo; - + #ifdef qDebugLog printf("\nmDNS advertising instance %s protocol %s text %s on port %d %s TTL %d secs\n", - instanceName,serviceName,addText,onPort,(flags & mdns_UDP) ? "UDP" : "TCP", ttl); + instanceName, serviceName, addText, onPort, (flags & mdns_UDP) ? "UDP" : "TCP", ttl); #endif - - snprintf(key,sizeof(key),"%s.%s.local.",serviceName,(flags & mdns_UDP) ? "_udp" :"_tcp"); - snprintf(fullName,sizeof(fullName),"%s.%s",instanceName,key); - snprintf(devName,sizeof(devName),"%s.local.",instanceName); - + + snprintf(key, sizeof(key), "%s.%s.local.", serviceName, (flags & mdns_UDP) ? "_udp" :"_tcp"); + snprintf(fullName, sizeof(fullName), "%s.%s", instanceName, key); + snprintf(devName, sizeof(devName), "%s.local.", instanceName); + if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) ipInfo.ip.addr = IPADDR_NONE; - + // Order has significance for extraRR feature - mdns_add_TXT(fullName,ttl,addText); - mdns_add_A(devName,ttl,ipInfo.ip); - mdns_add_SRV(fullName,ttl,onPort,devName); - mdns_add_PTR(key,ttl,fullName); - + mdns_add_TXT(fullName, ttl, addText); + mdns_add_A(devName, ttl, ipInfo.ip); + mdns_add_SRV(fullName, ttl, onPort, devName); + mdns_add_PTR(key, ttl, fullName); + // Optional, makes us browsable if (flags & mdns_Browsable) mdns_add_PTR("_services._dns-sd._udp.local.",ttl,key); - } static void mdns_update_ipaddr(struct ip_info* ipInfo) @@ -573,7 +574,7 @@ static int mdns_add_to_answer(mdns_rsrc* rsrcP, u8_t* resp, int respLen) // Data for this key memcpy(&resp[respLen], &rsrcP->rData[rsrcP->rKeySize], rsrcP->rDataSize); respLen += rsrcP->rDataSize; - + return respLen; } @@ -599,7 +600,7 @@ static void mdns_send_mcast(u8_t* msgP, int nBytes) } else printf(">>> mdns_send: alloc failed[%d]\n",nBytes); } - + static void mdns_reply(struct mdns_hdr* hdrP) // Message has passed tests, may want to send an answer { @@ -609,13 +610,13 @@ static void mdns_reply(struct mdns_hdr* hdrP) u8_t* qBase = (u8_t*)hdrP; u8_t* qp; u8_t* mdns_response; - + mdns_response = malloc(DNS_MSG_SIZE); if (mdns_response==NULL) { printf(">>> mdns_reply could not alloc %d\n",DNS_MSG_SIZE); return; } - + // Build response header rHdr = (struct mdns_hdr*) mdns_response; rHdr->id = hdrP->id; @@ -630,28 +631,28 @@ static void mdns_reply(struct mdns_hdr* hdrP) extra = NULL; qp = qBase + SIZEOF_DNS_HDR; nquestions = htons(hdrP->numquestions); - + for (i=0; inumanswers = htons( htons(rHdr->numanswers) + 1 ); // Extra RR logic: if SRV follows PTR, or A follows SRV, volunteer it in extraRR // Not required, but could do more here, see RFC6763 s12 if (qType==DNS_RRTYPE_PTR) { - if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_SRV) + if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_SRV) extra = rsrcP->rNext; } else if (qType==DNS_RRTYPE_SRV) { - if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_A) + if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_A) extra = rsrcP->rNext; - } + } } } } // for nQuestions @@ -661,20 +662,20 @@ static void mdns_reply(struct mdns_hdr* hdrP) respLen = mdns_add_to_answer(extra, mdns_response, respLen); rHdr->numextrarr = htons( htons(rHdr->numextrarr) + 1 ); } - mdns_send_mcast(mdns_response,respLen); + mdns_send_mcast(mdns_response, respLen); } free(mdns_response); } -static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) +static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port) // Callback from udp_recv { UNUSED_ARG(pcb); UNUSED_ARG(port); - + u8_t* mdns_payload; int plen; - + // Sanity checks on size plen = p->tot_len; if (plen > DNS_MSG_SIZE) { @@ -691,12 +692,12 @@ static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_ else { if (pbuf_copy_partial(p, mdns_payload, plen, 0) == plen) { struct mdns_hdr* hdrP = (struct mdns_hdr*) mdns_payload; - + #ifdef qLogAllTraffic mdns_print_msg(mdns_payload, plen); #endif - - if ( (hdrP->flags1 & (DNS_FLAG1_RESP + DNS_FLAG1_OPMASK + DNS_FLAG1_TRUNC) ) == 0 + + if ( (hdrP->flags1 & (DNS_FLAG1_RESP + DNS_FLAG1_OPMASK + DNS_FLAG1_TRUNC) ) == 0 && hdrP->numquestions > 0 ) mdns_reply(hdrP); } @@ -711,19 +712,19 @@ static void mdns_start() { struct ip_info ipInfo; err_t err; - + if (sdk_wifi_get_opmode() != STATION_MODE) { printf(">>> mDNS_start: wifi opmode not station\n"); return; } - + if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) { printf(">>> mDNS_start: no IP addr\n"); return; } mdns_update_ipaddr(&ipInfo); - + // Start IGMP on the netif for our interface: this isn't done for us struct netif* nfp = netif_list; while (nfp!=NULL) { @@ -739,23 +740,23 @@ static void mdns_start() } nfp = nfp->next; } - + gMDNS_pcb = udp_new(); if (!gMDNS_pcb) { printf(">>> mDNS_start: udp_new failed\n"); return; } - + if ((err=igmp_joingroup(&ipInfo.ip, &gMulticastAddr)) != ERR_OK) { printf(">>> mDNS_start: igmp_join failed %d\n",err); return; } - + if ((err=udp_bind(gMDNS_pcb, IP_ADDR_ANY, DNS_MDNS_PORT)) != ERR_OK) { printf(">>> mDNS_start: udp_bind failed %d\n",err); return; } - + udp_recv(gMDNS_pcb, mdns_recv, NULL); } diff --git a/extras/mdnsresponder/mdnsresponder.h b/extras/mdnsresponder/mdnsresponder.h index 2dd8c76..0008464 100644 --- a/extras/mdnsresponder/mdnsresponder.h +++ b/extras/mdnsresponder/mdnsresponder.h @@ -1,9 +1,11 @@ #ifndef __MDNSRESPONDER_H__ #define __MDNSRESPONDER_H__ +#include + /* * Basic multicast DNS responder - * + * * Advertises the IP address, port, and characteristics of a service to other devices using multicast DNS on the same LAN, * so they can find devices with addresses dynamically allocated by DHCP. See avahi, Bonjour, etc * See RFC6762, RFC6763 @@ -26,7 +28,7 @@ typedef enum { mdns_UDP, mdns_Browsable // see RFC6763:11 - adds a standard record that lets browsers find the service without needing to know its name } mdns_flags; - + void mdns_add_facility( const char* instanceName, // Short user-friendly instance name, should NOT include serial number/MAC/etc const char* serviceName, // Must be registered, _name, (see RFC6335 5.1 & 5.2) const char* addText, // Should be =, or "" if unused (see RFC6763 6.3) @@ -40,13 +42,13 @@ void mdns_add_facility( const char* instanceName, // Short user-friendly insta void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nameStr); void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targname); void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txtStr); -void mdns_add_A (const char* rKey, u32_t ttl, struct ip_addr addr); +void mdns_add_A (const char* rKey, u32_t ttl, ip_addr_t addr); /* Sample usage, advertising a secure web service mdns_init(); mdns_add_facility("Fluffy", "_https", "Zoom=1", mdns_TCP+mdns_Browsable, 443, 600); - + */ #endif From d05d3020eb7762a702998e1f62d13ba3f62ffd87 Mon Sep 17 00:00:00 2001 From: Sashka Date: Wed, 6 Dec 2017 10:13:29 -0500 Subject: [PATCH 238/349] Bringing libesphttpd up-to-date (#504) * libesphttpd: added extras and example * Added "heatshrink" as a submodule * Updated libesphttpd * Updated libesphttpd * Trying to fix the commit id * Updated libesphttpd * Added zlib1g-dev package * Use native gcc to build mkespfsimage and mkupgimg * Added NS and GW for DHCP server configuration * Making libeshttpd up-to-date * Making libeshttpd up-to-date (heatshrink updated) * Making libesphttpd up-to-date --- extras/libesphttpd/libesphttpd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/libesphttpd/libesphttpd b/extras/libesphttpd/libesphttpd index c329aee..3047230 160000 --- a/extras/libesphttpd/libesphttpd +++ b/extras/libesphttpd/libesphttpd @@ -1 +1 @@ -Subproject commit c329aeef0469a40152e1630dbd0f0b34bcebd4d5 +Subproject commit 30472301589fb0c4eae792884cafc92651a959e3 From a7f7f5c01c62b181b7ba1503e6765a9a1ffca279 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 7 Dec 2017 11:05:04 +1100 Subject: [PATCH 239/349] FreeRTOS v10.0.0 Based on svn r2519. * Re-licensed with the MIT license, and by Amazon. * New for this releases are Stream buffers and message buffers. --- FreeRTOS/License/license.txt | 435 +----- FreeRTOS/Source/croutine.c | 93 +- FreeRTOS/Source/event_groups.c | 119 +- FreeRTOS/Source/include/FreeRTOS.h | 210 ++- FreeRTOS/Source/include/FreeRTOSConfig.h | 59 +- FreeRTOS/Source/include/croutine.h | 93 +- .../Source/include/deprecated_definitions.h | 93 +- FreeRTOS/Source/include/event_groups.h | 94 +- FreeRTOS/Source/include/list.h | 93 +- FreeRTOS/Source/include/message_buffer.h | 780 +++++++++++ FreeRTOS/Source/include/mpu_prototypes.h | 122 +- FreeRTOS/Source/include/mpu_wrappers.h | 110 +- FreeRTOS/Source/include/portable.h | 93 +- FreeRTOS/Source/include/projdefs.h | 102 +- FreeRTOS/Source/include/queue.h | 95 +- FreeRTOS/Source/include/semphr.h | 93 +- FreeRTOS/Source/include/stack_macros.h | 130 ++ FreeRTOS/Source/include/stream_buffer.h | 849 ++++++++++++ FreeRTOS/Source/include/task.h | 93 +- FreeRTOS/Source/include/timers.h | 98 +- FreeRTOS/Source/list.c | 93 +- FreeRTOS/Source/portable/esp8266/port.c | 88 +- FreeRTOS/Source/portable/esp8266/portmacro.h | 53 +- FreeRTOS/Source/queue.c | 103 +- FreeRTOS/Source/readme.txt | 27 +- FreeRTOS/Source/stream_buffer.c | 1196 +++++++++++++++++ FreeRTOS/Source/tasks.c | 112 +- FreeRTOS/Source/timers.c | 113 +- FreeRTOS/readme.txt | 21 - 29 files changed, 3805 insertions(+), 1855 deletions(-) create mode 100644 FreeRTOS/Source/include/message_buffer.h create mode 100644 FreeRTOS/Source/include/stack_macros.h create mode 100644 FreeRTOS/Source/include/stream_buffer.h create mode 100644 FreeRTOS/Source/stream_buffer.c delete mode 100644 FreeRTOS/readme.txt diff --git a/FreeRTOS/License/license.txt b/FreeRTOS/License/license.txt index 5d243b8..83e25ea 100644 --- a/FreeRTOS/License/license.txt +++ b/FreeRTOS/License/license.txt @@ -1,399 +1,38 @@ -The FreeRTOS open source license covers the FreeRTOS source files, -which are located in the /FreeRTOS/Source directory of the official FreeRTOS -download. It also covers most of the source files in the demo application -projects, which are located in the /FreeRTOS/Demo directory of the official -FreeRTOS download. The demo projects may also include third party software that -is not part of FreeRTOS and is licensed separately to FreeRTOS. Examples of -third party software includes header files provided by chip or tools vendors, -linker scripts, peripheral drivers, etc. All the software in subdirectories of -the /FreeRTOS directory is either open source or distributed with permission, -and is free for use. For the avoidance of doubt, refer to the comments at the -top of each source file. - ----------------------------------------------------------------------------- - -NOTE: The modification to the GPL is included to allow you to distribute a -combined work that includes FreeRTOS without being obliged to provide the source -code for proprietary components. - ----------------------------------------------------------------------------- - -Applying to FreeRTOS V8.2.3 up to the latest version, the FreeRTOS GPL Exception -Text follows: - -Any FreeRTOS *source code*, whether modified or in it's original release form, -or whether in whole or in part, can only be distributed by you under the terms -of the GNU General Public License plus this exception. An independent module is -a module which is not derived from or based on FreeRTOS. - -Clause 1: - -Linking FreeRTOS with other modules is making a combined work based on FreeRTOS. -Thus, the terms and conditions of the GNU General Public License V2 cover the -whole combination. - -As a special exception, the copyright holders of FreeRTOS give you permission to -link FreeRTOS with independent modules to produce a statically linked -executable, regardless of the license terms of these independent modules, and to -copy and distribute the resulting executable under terms of your choice, -provided that you also meet, for each linked independent module, the terms and -conditions of the license of that module. An independent module is a module -which is not derived from or based on FreeRTOS. - -Clause 2: - -FreeRTOS may not be used for any competitive or comparative purpose, including -the publication of any form of run time or compile time metric, without the -express permission of Real Time Engineers Ltd. (this is the norm within the -industry and is intended to ensure information accuracy). - - - --------------------------------------------------------------------- - - - -The standard GPL V2 text: - - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License** as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +The FreeRTOS kernel is released under the MIT open source license, the text of +which is provided below. + +This license covers the FreeRTOS kernel source files, which are located in the +/FreeRTOS/Source directory of the official FreeRTOS kernel download. It also +covers most of the source files in the demo application projects, which are +located in the /FreeRTOS/Demo directory of the official FreeRTOS download. The +demo projects may also include third party software that is not part of FreeRTOS +and is licensed separately to FreeRTOS. Examples of third party software +includes header files provided by chip or tools vendors, linker scripts, +peripheral drivers, etc. All the software in subdirectories of the /FreeRTOS +directory is either open source or distributed with permission, and is free for +use. For the avoidance of doubt, refer to the comments at the top of each +source file. + + +License text: +------------- + +Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. If you wish to use our Amazon +FreeRTOS name, please do so in a fair use way that does not cause confusion. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/FreeRTOS/Source/croutine.c b/FreeRTOS/Source/croutine.c index d3b0eff..4efe70b 100644 --- a/FreeRTOS/Source/croutine.c +++ b/FreeRTOS/Source/croutine.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #include "FreeRTOS.h" #include "task.h" diff --git a/FreeRTOS/Source/event_groups.c b/FreeRTOS/Source/event_groups.c index 4434bdf..d942e15 100644 --- a/FreeRTOS/Source/event_groups.c +++ b/FreeRTOS/Source/event_groups.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /* Standard includes. */ #include @@ -269,6 +228,7 @@ BaseType_t xTimeoutOccurred = pdFALSE; /* The rendezvous bits were not set, but no block time was specified - just return the current event bit value. */ uxReturn = pxEventBits->uxEventBits; + xTimeoutOccurred = pdTRUE; } } } @@ -327,6 +287,9 @@ BaseType_t xTimeoutOccurred = pdFALSE; traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ); + /* Prevent compiler warnings when trace macros are not used. */ + ( void ) xTimeoutOccurred; + return uxReturn; } /*-----------------------------------------------------------*/ @@ -378,6 +341,7 @@ BaseType_t xTimeoutOccurred = pdFALSE; /* The wait condition has not been met, but no block time was specified, so just return the current value. */ uxReturn = uxCurrentEventBits; + xTimeoutOccurred = pdTRUE; } else { @@ -459,11 +423,9 @@ BaseType_t xTimeoutOccurred = pdFALSE; { mtCOVERAGE_TEST_MARKER(); } + xTimeoutOccurred = pdTRUE; } taskEXIT_CRITICAL(); - - /* Prevent compiler warnings when trace macros are not used. */ - xTimeoutOccurred = pdFALSE; } else { @@ -475,6 +437,9 @@ BaseType_t xTimeoutOccurred = pdFALSE; } traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ); + /* Prevent compiler warnings when trace macros are not used. */ + ( void ) xTimeoutOccurred; + return uxReturn; } /*-----------------------------------------------------------*/ @@ -758,5 +723,17 @@ BaseType_t xWaitConditionMet = pdFALSE; return xReturn; } -#endif +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TRACE_FACILITY == 1 ) + + void vEventGroupSetNumber( void * xEventGroup, UBaseType_t uxEventGroupNumber ) + { + ( ( EventGroup_t * ) xEventGroup )->uxEventGroupNumber = uxEventGroupNumber; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h index 94ea1f8..0a46f4f 100644 --- a/FreeRTOS/Source/include/FreeRTOS.h +++ b/FreeRTOS/Source/include/FreeRTOS.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef INC_FREERTOS_H #define INC_FREERTOS_H @@ -396,6 +355,14 @@ extern "C" { #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) #endif +#ifndef traceBLOCKING_ON_QUEUE_PEEK + /* Task is about to block because it cannot read from a + queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore + upon which the read was attempted. pxCurrentTCB points to the TCB of the + task that attempted the read. */ + #define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) +#endif + #ifndef traceBLOCKING_ON_QUEUE_SEND /* Task is about to block because it cannot write to a queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore @@ -482,6 +449,10 @@ extern "C" { #define traceQUEUE_PEEK( pxQueue ) #endif +#ifndef traceQUEUE_PEEK_FAILED + #define traceQUEUE_PEEK_FAILED( pxQueue ) +#endif + #ifndef traceQUEUE_PEEK_FROM_ISR #define traceQUEUE_PEEK_FROM_ISR( pxQueue ) #endif @@ -666,6 +637,58 @@ extern "C" { #define traceTASK_NOTIFY_GIVE_FROM_ISR() #endif +#ifndef traceSTREAM_BUFFER_CREATE_FAILED + #define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_CREATE_STATIC_FAILED + #define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_CREATE + #define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_DELETE + #define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_RESET + #define traceSTREAM_BUFFER_RESET( xStreamBuffer ) +#endif + +#ifndef traceBLOCKING_ON_STREAM_BUFFER_SEND + #define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_SEND + #define traceSTREAM_BUFFER_SEND( xStreamBuffer, xBytesSent ) +#endif + +#ifndef traceSTREAM_BUFFER_SEND_FAILED + #define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_SEND_FROM_ISR + #define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xBytesSent ) +#endif + +#ifndef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE + #define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_RECEIVE + #define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) +#endif + +#ifndef traceSTREAM_BUFFER_RECEIVE_FAILED + #define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) +#endif + +#ifndef traceSTREAM_BUFFER_RECEIVE_FROM_ISR + #define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) +#endif + #ifndef configGENERATE_RUN_TIME_STATS #define configGENERATE_RUN_TIME_STATS 0 #endif @@ -846,6 +869,32 @@ V8 if desired. */ #define configENABLE_BACKWARD_COMPATIBILITY 1 #endif +#ifndef configPRINTF + /* configPRINTF() was not defined, so define it away to nothing. To use + configPRINTF() then define it as follows (where MyPrintFunction() is + provided by the application writer): + + void MyPrintFunction(const char *pcFormat, ... ); + #define configPRINTF( X ) MyPrintFunction X + + Then call like a standard printf() function, but placing brackets around + all parameters so they are passed as a single parameter. For example: + configPRINTF( ("Value = %d", MyVariable) ); */ + #define configPRINTF( X ) +#endif + +#ifndef configMAX + /* The application writer has not provided their own MAX macro, so define + the following generic implementation. */ + #define configMAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) +#endif + +#ifndef configMIN + /* The application writer has not provided their own MAX macro, so define + the following generic implementation. */ + #define configMIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) +#endif + #if configENABLE_BACKWARD_COMPATIBILITY == 1 #define eTaskStateGet eTaskGetState #define portTickType TickType_t @@ -1085,6 +1134,33 @@ typedef struct xSTATIC_TIMER } StaticTimer_t; +/* +* In line with software engineering best practice, especially when supplying a +* library that is likely to change in future versions, FreeRTOS implements a +* strict data hiding policy. This means the stream buffer structure used +* internally by FreeRTOS is not accessible to application code. However, if +* the application writer wants to statically allocate the memory required to +* create a stream buffer then the size of the stream buffer object needs to be +* know. The StaticStreamBuffer_t structure below is provided for this purpose. +* Its size and alignment requirements are guaranteed to match those of the +* genuine structure, no matter which architecture is being used, and no matter +* how the values in FreeRTOSConfig.h are set. Its contents are somewhat +* obfuscated in the hope users will recognise that it would be unwise to make +* direct use of the structure members. +*/ +typedef struct xSTATIC_STREAM_BUFFER +{ + size_t uxDummy1[ 4 ]; + void * pvDummy2[ 3 ]; + uint8_t ucDummy3; + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxDummy4; + #endif +} StaticStreamBuffer_t; + +/* Message buffers are built on stream buffers. */ +typedef StaticStreamBuffer_t StaticMessageBuffer_t; + #ifdef __cplusplus } #endif diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index 2d87844..83f5c1d 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -1,37 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - - For esp-open-rtos, you can override settings in here by creating your own - FreeRTOSConfig.h file in your program directory. You could just copy this - file there and edit it, but it's recommended you instead define whatever you - want to override and then use #include_next to pick up - these defaults. The "blink" example in "examples/blink" provides an example - of how to do this. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef __DEFAULT_FREERTOS_CONFIG_H #define __DEFAULT_FREERTOS_CONFIG_H diff --git a/FreeRTOS/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h index f6390de..502045c 100644 --- a/FreeRTOS/Source/include/croutine.h +++ b/FreeRTOS/Source/include/croutine.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef CO_ROUTINE_H #define CO_ROUTINE_H diff --git a/FreeRTOS/Source/include/deprecated_definitions.h b/FreeRTOS/Source/include/deprecated_definitions.h index de7aef7..113e78b 100644 --- a/FreeRTOS/Source/include/deprecated_definitions.h +++ b/FreeRTOS/Source/include/deprecated_definitions.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef DEPRECATED_DEFINITIONS_H #define DEPRECATED_DEFINITIONS_H diff --git a/FreeRTOS/Source/include/event_groups.h b/FreeRTOS/Source/include/event_groups.h index 81b66ca..34e6926 100644 --- a/FreeRTOS/Source/include/event_groups.h +++ b/FreeRTOS/Source/include/event_groups.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef EVENT_GROUPS_H #define EVENT_GROUPS_H @@ -786,6 +745,7 @@ void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToCl #if (configUSE_TRACE_FACILITY == 1) UBaseType_t uxEventGroupGetNumber( void* xEventGroup ) PRIVILEGED_FUNCTION; + void vEventGroupSetNumber( void* xEventGroup, UBaseType_t uxEventGroupNumber ) PRIVILEGED_FUNCTION; #endif #ifdef __cplusplus diff --git a/FreeRTOS/Source/include/list.h b/FreeRTOS/Source/include/list.h index e0f5c27..e3e569f 100644 --- a/FreeRTOS/Source/include/list.h +++ b/FreeRTOS/Source/include/list.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /* * This is the list implementation used by the scheduler. While it is tailored diff --git a/FreeRTOS/Source/include/message_buffer.h b/FreeRTOS/Source/include/message_buffer.h new file mode 100644 index 0000000..cdd050c --- /dev/null +++ b/FreeRTOS/Source/include/message_buffer.h @@ -0,0 +1,780 @@ +/* + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + + +/* + * Message buffers build functionality on top of FreeRTOS stream buffers. + * Whereas stream buffers are used to send a continuous stream of data from one + * task or interrupt to another, message buffers are used to send variable + * length discrete messages from one task or interrupt to another. Their + * implementation is light weight, making them particularly suited for interrupt + * to task and core to core communication scenarios. + * + * ***NOTE***: Uniquely among FreeRTOS objects, the stream buffer + * implementation (so also the message buffer implementation, as message buffers + * are built on top of stream buffers) assumes there is only one task or + * interrupt that will write to the buffer (the writer), and only one task or + * interrupt that will read from the buffer (the reader). It is safe for the + * writer and reader to be different tasks or interrupts, but, unlike other + * FreeRTOS objects, it is not safe to have multiple different writers or + * multiple different readers. If there are to be multiple different writers + * then the application writer must place each call to a writing API function + * (such as xMessageBufferSend()) inside a critical section and set the send + * block time to 0. Likewise, if there are to be multiple different readers + * then the application writer must place each call to a reading API function + * (such as xMessageBufferRead()) inside a critical section and set the receive + * timeout to 0. + * + * Message buffers hold variable length messages. To enable that, when a + * message is written to the message buffer an additional sizeof( size_t ) bytes + * are also written to store the message's length (that happens internally, with + * the API function). sizeof( size_t ) is typically 4 bytes on a 32-bit + * architecture, so writing a 10 byte message to a message buffer on a 32-bit + * architecture will actually reduce the available space in the message buffer + * by 14 bytes (10 byte are used by the message, and 4 bytes to hold the length + * of the message). + */ + +#ifndef FREERTOS_MESSAGE_BUFFER_H +#define FREERTOS_MESSAGE_BUFFER_H + +/* Message buffers are built onto of stream buffers. */ +#include "stream_buffer.h" + +#if defined( __cplusplus ) +extern "C" { +#endif + +/** + * Type by which message buffers are referenced. For example, a call to + * xMessageBufferCreate() returns an MessageBufferHandle_t variable that can + * then be used as a parameter to xMessageBufferSend(), xMessageBufferReceive(), + * etc. + */ +typedef void * MessageBufferHandle_t; + +/*-----------------------------------------------------------*/ + +/** + * message_buffer.h + * +
        +MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes );
        +
        + * + * Creates a new message buffer using dynamically allocated memory. See + * xMessageBufferCreateStatic() for a version that uses statically allocated + * memory (memory that is allocated at compile time). + * + * configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in + * FreeRTOSConfig.h for xMessageBufferCreate() to be available. + * + * @param xBufferSizeBytes The total number of bytes (not messages) the message + * buffer will be able to hold at any one time. When a message is written to + * the message buffer an additional sizeof( size_t ) bytes are also written to + * store the message's length. sizeof( size_t ) is typically 4 bytes on a + * 32-bit architecture, so on most 32-bit architectures a 10 byte message will + * take up 14 bytes of message buffer space. + * + * @return If NULL is returned, then the message buffer cannot be created + * because there is insufficient heap memory available for FreeRTOS to allocate + * the message buffer data structures and storage area. A non-NULL value being + * returned indicates that the message buffer has been created successfully - + * the returned value should be stored as the handle to the created message + * buffer. + * + * Example use: +
        +
        +void vAFunction( void )
        +{
        +MessageBufferHandle_t xMessageBuffer;
        +const size_t xMessageBufferSizeBytes = 100;
        +
        +    // Create a message buffer that can hold 100 bytes.  The memory used to hold
        +    // both the message buffer structure and the messages themselves is allocated
        +    // dynamically.  Each message added to the buffer consumes an additional 4
        +    // bytes which are used to hold the lengh of the message.
        +    xMessageBuffer = xMessageBufferCreate( xMessageBufferSizeBytes );
        +
        +    if( xMessageBuffer == NULL )
        +    {
        +        // There was not enough heap memory space available to create the
        +        // message buffer.
        +    }
        +    else
        +    {
        +        // The message buffer was created successfully and can now be used.
        +    }
        +
        +
        + * \defgroup xMessageBufferCreate xMessageBufferCreate + * \ingroup MessageBufferManagement + */ +#define xMessageBufferCreate( xBufferSizeBytes ) ( MessageBufferHandle_t ) xStreamBufferGenericCreate( xBufferSizeBytes, ( size_t ) 0, pdTRUE ) + +/** + * message_buffer.h + * +
        +MessageBufferHandle_t xMessageBufferCreateStatic( size_t xBufferSizeBytes,
        +                                                  uint8_t *pucMessageBufferStorageArea,
        +                                                  StaticMessageBuffer_t *pxStaticMessageBuffer );
        +
        + * Creates a new message buffer using statically allocated memory. See + * xMessageBufferCreate() for a version that uses dynamically allocated memory. + * + * @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the + * pucMessageBufferStorageArea parameter. When a message is written to the + * message buffer an additional sizeof( size_t ) bytes are also written to store + * the message's length. sizeof( size_t ) is typically 4 bytes on a 32-bit + * architecture, so on most 32-bit architecture a 10 byte message will take up + * 14 bytes of message buffer space. The maximum number of bytes that can be + * stored in the message buffer is actually (xBufferSizeBytes - 1). + * + * @param pucMessageBufferStorageArea Must point to a uint8_t array that is at + * least xBufferSizeBytes + 1 big. This is the array to which messages are + * copied when they are written to the message buffer. + * + * @param pxStaticMessageBuffer Must point to a variable of type + * StaticMessageBuffer_t, which will be used to hold the message buffer's data + * structure. + * + * @return If the message buffer is created successfully then a handle to the + * created message buffer is returned. If either pucMessageBufferStorageArea or + * pxStaticmessageBuffer are NULL then NULL is returned. + * + * Example use: +
        +
        +// Used to dimension the array used to hold the messages.  The available space
        +// will actually be one less than this, so 999.
        +#define STORAGE_SIZE_BYTES 1000
        +
        +// Defines the memory that will actually hold the messages within the message
        +// buffer.
        +static uint8_t ucStorageBuffer[ STORAGE_SIZE_BYTES ];
        +
        +// The variable used to hold the message buffer structure.
        +StaticMessageBuffer_t xMessageBufferStruct;
        +
        +void MyFunction( void )
        +{
        +MessageBufferHandle_t xMessageBuffer;
        +
        +    xMessageBuffer = xMessageBufferCreateStatic( sizeof( ucBufferStorage ),
        +                                                 ucBufferStorage,
        +                                                 &xMessageBufferStruct );
        +
        +    // As neither the pucMessageBufferStorageArea or pxStaticMessageBuffer
        +    // parameters were NULL, xMessageBuffer will not be NULL, and can be used to
        +    // reference the created message buffer in other message buffer API calls.
        +
        +    // Other code that uses the message buffer can go here.
        +}
        +
        +
        + * \defgroup xMessageBufferCreateStatic xMessageBufferCreateStatic + * \ingroup MessageBufferManagement + */ +#define xMessageBufferCreateStatic( xBufferSizeBytes, pucMessageBufferStorageArea, pxStaticMessageBuffer ) ( MessageBufferHandle_t ) xStreamBufferGenericCreateStatic( xBufferSizeBytes, 0, pdTRUE, pucMessageBufferStorageArea, pxStaticMessageBuffer ) + +/** + * message_buffer.h + * +
        +size_t xMessageBufferSend( MessageBufferHandle_t xMessageBuffer,
        +                           const void *pvTxData,
        +                           size_t xDataLengthBytes,
        +                           TickType_t xTicksToWait );
        +
        + *
        + * Sends a discrete message to the message buffer.  The message can be any
        + * length that fits within the buffer's free space, and is copied into the
        + * buffer.
        + *
        + * ***NOTE***:  Uniquely among FreeRTOS objects, the stream buffer
        + * implementation (so also the message buffer implementation, as message buffers
        + * are built on top of stream buffers) assumes there is only one task or
        + * interrupt that will write to the buffer (the writer), and only one task or
        + * interrupt that will read from the buffer (the reader).  It is safe for the
        + * writer and reader to be different tasks or interrupts, but, unlike other
        + * FreeRTOS objects, it is not safe to have multiple different writers or
        + * multiple different readers.  If there are to be multiple different writers
        + * then the application writer must place each call to a writing API function
        + * (such as xMessageBufferSend()) inside a critical section and set the send
        + * block time to 0.  Likewise, if there are to be multiple different readers
        + * then the application writer must place each call to a reading API function
        + * (such as xMessageBufferRead()) inside a critical section and set the receive
        + * block time to 0.
        + *
        + * Use xMessageBufferSend() to write to a message buffer from a task.  Use
        + * xMessageBufferSendFromISR() to write to a message buffer from an interrupt
        + * service routine (ISR).
        + *
        + * @param xMessageBuffer The handle of the message buffer to which a message is
        + * being sent.
        + *
        + * @param pvTxData A pointer to the message that is to be copied into the
        + * message buffer.
        + *
        + * @param xDataLengthBytes The length of the message.  That is, the number of
        + * bytes to copy from pvTxData into the message buffer.  When a message is
        + * written to the message buffer an additional sizeof( size_t ) bytes are also
        + * written to store the message's length.  sizeof( size_t ) is typically 4 bytes
        + * on a 32-bit architecture, so on most 32-bit architecture setting
        + * xDataLengthBytes to 20 will reduce the free space in the message buffer by 24
        + * bytes (20 bytes of message data and 4 bytes to hold the message length).
        + *
        + * @param xTicksToWait The maximum amount of time the calling task should remain
        + * in the Blocked state to wait for enough space to become available in the
        + * message buffer, should the message buffer have insufficient space when
        + * xMessageBufferSend() is called.  The calling task will never block if
        + * xTicksToWait is zero.  The block time is specified in tick periods, so the
        + * absolute time it represents is dependent on the tick frequency.  The macro
        + * pdMS_TO_TICKS() can be used to convert a time specified in milliseconds into
        + * a time specified in ticks.  Setting xTicksToWait to portMAX_DELAY will cause
        + * the task to wait indefinitely (without timing out), provided
        + * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h.  Tasks do not use any
        + * CPU time when they are in the Blocked state.
        + *
        + * @return The number of bytes written to the message buffer.  If the call to
        + * xMessageBufferSend() times out before there was enough space to write the
        + * message into the message buffer then zero is returned.  If the call did not
        + * time out then xDataLengthBytes is returned.
        + *
        + * Example use:
        +
        +void vAFunction( MessageBufferHandle_t xMessageBuffer )
        +{
        +size_t xBytesSent;
        +uint8_t ucArrayToSend[] = { 0, 1, 2, 3 };
        +char *pcStringToSend = "String to send";
        +const TickType_t x100ms = pdMS_TO_TICKS( 100 );
        +
        +    // Send an array to the message buffer, blocking for a maximum of 100ms to
        +    // wait for enough space to be available in the message buffer.
        +    xBytesSent = xMessageBufferSend( xMessageBuffer, ( void * ) ucArrayToSend, sizeof( ucArrayToSend ), x100ms );
        +
        +    if( xBytesSent != sizeof( ucArrayToSend ) )
        +    {
        +        // The call to xMessageBufferSend() times out before there was enough
        +        // space in the buffer for the data to be written.
        +    }
        +
        +    // Send the string to the message buffer.  Return immediately if there is
        +    // not enough space in the buffer.
        +    xBytesSent = xMessageBufferSend( xMessageBuffer, ( void * ) pcStringToSend, strlen( pcStringToSend ), 0 );
        +
        +    if( xBytesSent != strlen( pcStringToSend ) )
        +    {
        +        // The string could not be added to the message buffer because there was
        +        // not enough free space in the buffer.
        +    }
        +}
        +
        + * \defgroup xMessageBufferSend xMessageBufferSend + * \ingroup MessageBufferManagement + */ +#define xMessageBufferSend( xMessageBuffer, pvTxData, xDataLengthBytes, xTicksToWait ) xStreamBufferSend( ( StreamBufferHandle_t ) xMessageBuffer, pvTxData, xDataLengthBytes, xTicksToWait ) + +/** + * message_buffer.h + * +
        +size_t xMessageBufferSendFromISR( MessageBufferHandle_t xMessageBuffer,
        +                                  const void *pvTxData,
        +                                  size_t xDataLengthBytes,
        +                                  BaseType_t *pxHigherPriorityTaskWoken );
        +
        + *
        + * Interrupt safe version of the API function that sends a discrete message to
        + * the message buffer.  The message can be any length that fits within the
        + * buffer's free space, and is copied into the buffer.
        + *
        + * ***NOTE***:  Uniquely among FreeRTOS objects, the stream buffer
        + * implementation (so also the message buffer implementation, as message buffers
        + * are built on top of stream buffers) assumes there is only one task or
        + * interrupt that will write to the buffer (the writer), and only one task or
        + * interrupt that will read from the buffer (the reader).  It is safe for the
        + * writer and reader to be different tasks or interrupts, but, unlike other
        + * FreeRTOS objects, it is not safe to have multiple different writers or
        + * multiple different readers.  If there are to be multiple different writers
        + * then the application writer must place each call to a writing API function
        + * (such as xMessageBufferSend()) inside a critical section and set the send
        + * block time to 0.  Likewise, if there are to be multiple different readers
        + * then the application writer must place each call to a reading API function
        + * (such as xMessageBufferRead()) inside a critical section and set the receive
        + * block time to 0.
        + *
        + * Use xMessageBufferSend() to write to a message buffer from a task.  Use
        + * xMessageBufferSendFromISR() to write to a message buffer from an interrupt
        + * service routine (ISR).
        + *
        + * @param xMessageBuffer The handle of the message buffer to which a message is
        + * being sent.
        + *
        + * @param pvTxData A pointer to the message that is to be copied into the
        + * message buffer.
        + *
        + * @param xDataLengthBytes The length of the message.  That is, the number of
        + * bytes to copy from pvTxData into the message buffer.  When a message is
        + * written to the message buffer an additional sizeof( size_t ) bytes are also
        + * written to store the message's length.  sizeof( size_t ) is typically 4 bytes
        + * on a 32-bit architecture, so on most 32-bit architecture setting
        + * xDataLengthBytes to 20 will reduce the free space in the message buffer by 24
        + * bytes (20 bytes of message data and 4 bytes to hold the message length).
        + *
        + * @param pxHigherPriorityTaskWoken  It is possible that a message buffer will
        + * have a task blocked on it waiting for data.  Calling
        + * xMessageBufferSendFromISR() can make data available, and so cause a task that
        + * was waiting for data to leave the Blocked state.  If calling
        + * xMessageBufferSendFromISR() causes a task to leave the Blocked state, and the
        + * unblocked task has a priority higher than the currently executing task (the
        + * task that was interrupted), then, internally, xMessageBufferSendFromISR()
        + * will set *pxHigherPriorityTaskWoken to pdTRUE.  If
        + * xMessageBufferSendFromISR() sets this value to pdTRUE, then normally a
        + * context switch should be performed before the interrupt is exited.  This will
        + * ensure that the interrupt returns directly to the highest priority Ready
        + * state task.  *pxHigherPriorityTaskWoken should be set to pdFALSE before it
        + * is passed into the function.  See the code example below for an example.
        + *
        + * @return The number of bytes actually written to the message buffer.  If the
        + * message buffer didn't have enough free space for the message to be stored
        + * then 0 is returned, otherwise xDataLengthBytes is returned.
        + *
        + * Example use:
        +
        +// A message buffer that has already been created.
        +MessageBufferHandle_t xMessageBuffer;
        +
        +void vAnInterruptServiceRoutine( void )
        +{
        +size_t xBytesSent;
        +char *pcStringToSend = "String to send";
        +BaseType_t xHigherPriorityTaskWoken = pdFALSE; // Initialised to pdFALSE.
        +
        +    // Attempt to send the string to the message buffer.
        +    xBytesSent = xMessageBufferSendFromISR( xMessageBuffer,
        +                                            ( void * ) pcStringToSend,
        +                                            strlen( pcStringToSend ),
        +                                            &xHigherPriorityTaskWoken );
        +
        +    if( xBytesSent != strlen( pcStringToSend ) )
        +    {
        +        // The string could not be added to the message buffer because there was
        +        // not enough free space in the buffer.
        +    }
        +
        +    // If xHigherPriorityTaskWoken was set to pdTRUE inside
        +    // xMessageBufferSendFromISR() then a task that has a priority above the
        +    // priority of the currently executing task was unblocked and a context
        +    // switch should be performed to ensure the ISR returns to the unblocked
        +    // task.  In most FreeRTOS ports this is done by simply passing
        +    // xHigherPriorityTaskWoken into taskYIELD_FROM_ISR(), which will test the
        +    // variables value, and perform the context switch if necessary.  Check the
        +    // documentation for the port in use for port specific instructions.
        +    taskYIELD_FROM_ISR( xHigherPriorityTaskWoken );
        +}
        +
        + * \defgroup xMessageBufferSendFromISR xMessageBufferSendFromISR + * \ingroup MessageBufferManagement + */ +#define xMessageBufferSendFromISR( xMessageBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken ) xStreamBufferSendFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken ) + +/** + * message_buffer.h + * +
        +size_t xMessageBufferReceive( MessageBufferHandle_t xMessageBuffer,
        +                              void *pvRxData,
        +                              size_t xBufferLengthBytes,
        +                              TickType_t xTicksToWait );
        +
        + * + * Receives a discrete message from a message buffer. Messages can be of + * variable length and are copied out of the buffer. + * + * ***NOTE***: Uniquely among FreeRTOS objects, the stream buffer + * implementation (so also the message buffer implementation, as message buffers + * are built on top of stream buffers) assumes there is only one task or + * interrupt that will write to the buffer (the writer), and only one task or + * interrupt that will read from the buffer (the reader). It is safe for the + * writer and reader to be different tasks or interrupts, but, unlike other + * FreeRTOS objects, it is not safe to have multiple different writers or + * multiple different readers. If there are to be multiple different writers + * then the application writer must place each call to a writing API function + * (such as xMessageBufferSend()) inside a critical section and set the send + * block time to 0. Likewise, if there are to be multiple different readers + * then the application writer must place each call to a reading API function + * (such as xMessageBufferRead()) inside a critical section and set the receive + * block time to 0. + * + * Use xMessageBufferReceive() to read from a message buffer from a task. Use + * xMessageBufferReceiveFromISR() to read from a message buffer from an + * interrupt service routine (ISR). + * + * @param xMessageBuffer The handle of the message buffer from which a message + * is being received. + * + * @param pvRxData A pointer to the buffer into which the received message is + * to be copied. + * + * @param xBufferLengthBytes The length of the buffer pointed to by the pvRxData + * parameter. This sets the maximum length of the message that can be received. + * If xBufferLengthBytes is too small to hold the next message then the message + * will be left in the message buffer and 0 will be returned. + * + * @param xTicksToWait The maximum amount of time the task should remain in the + * Blocked state to wait for a message, should the message buffer be empty. + * xMessageBufferReceive() will return immediately if xTicksToWait is zero and + * the message buffer is empty. The block time is specified in tick periods, so + * the absolute time it represents is dependent on the tick frequency. The + * macro pdMS_TO_TICKS() can be used to convert a time specified in milliseconds + * into a time specified in ticks. Setting xTicksToWait to portMAX_DELAY will + * cause the task to wait indefinitely (without timing out), provided + * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h. Tasks do not use any + * CPU time when they are in the Blocked state. + * + * @return The length, in bytes, of the message read from the message buffer, if + * any. If xMessageBufferReceive() times out before a message became available + * then zero is returned. If the length of the message is greater than + * xBufferLengthBytes then the message will be left in the message buffer and + * zero is returned. + * + * Example use: +
        +void vAFunction( MessageBuffer_t xMessageBuffer )
        +{
        +uint8_t ucRxData[ 20 ];
        +size_t xReceivedBytes;
        +const TickType_t xBlockTime = pdMS_TO_TICKS( 20 );
        +
        +    // Receive the next message from the message buffer.  Wait in the Blocked
        +    // state (so not using any CPU processing time) for a maximum of 100ms for
        +    // a message to become available.
        +    xReceivedBytes = xMessageBufferReceive( xMessageBuffer,
        +                                            ( void * ) ucRxData,
        +                                            sizeof( ucRxData ),
        +                                            xBlockTime );
        +
        +    if( xReceivedBytes > 0 )
        +    {
        +        // A ucRxData contains a message that is xReceivedBytes long.  Process
        +        // the message here....
        +    }
        +}
        +
        + * \defgroup xMessageBufferReceive xMessageBufferReceive + * \ingroup MessageBufferManagement + */ +#define xMessageBufferReceive( xMessageBuffer, pvRxData, xBufferLengthBytes, xTicksToWait ) xStreamBufferReceive( ( StreamBufferHandle_t ) xMessageBuffer, pvRxData, xBufferLengthBytes, xTicksToWait ) + + +/** + * message_buffer.h + * +
        +size_t xMessageBufferReceiveFromISR( MessageBufferHandle_t xMessageBuffer,
        +                                     void *pvRxData,
        +                                     size_t xBufferLengthBytes,
        +                                     BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * An interrupt safe version of the API function that receives a discrete + * message from a message buffer. Messages can be of variable length and are + * copied out of the buffer. + * + * ***NOTE***: Uniquely among FreeRTOS objects, the stream buffer + * implementation (so also the message buffer implementation, as message buffers + * are built on top of stream buffers) assumes there is only one task or + * interrupt that will write to the buffer (the writer), and only one task or + * interrupt that will read from the buffer (the reader). It is safe for the + * writer and reader to be different tasks or interrupts, but, unlike other + * FreeRTOS objects, it is not safe to have multiple different writers or + * multiple different readers. If there are to be multiple different writers + * then the application writer must place each call to a writing API function + * (such as xMessageBufferSend()) inside a critical section and set the send + * block time to 0. Likewise, if there are to be multiple different readers + * then the application writer must place each call to a reading API function + * (such as xMessageBufferRead()) inside a critical section and set the receive + * block time to 0. + * + * Use xMessageBufferReceive() to read from a message buffer from a task. Use + * xMessageBufferReceiveFromISR() to read from a message buffer from an + * interrupt service routine (ISR). + * + * @param xMessageBuffer The handle of the message buffer from which a message + * is being received. + * + * @param pvRxData A pointer to the buffer into which the received message is + * to be copied. + * + * @param xBufferLengthBytes The length of the buffer pointed to by the pvRxData + * parameter. This sets the maximum length of the message that can be received. + * If xBufferLengthBytes is too small to hold the next message then the message + * will be left in the message buffer and 0 will be returned. + * + * @param pxHigherPriorityTaskWoken It is possible that a message buffer will + * have a task blocked on it waiting for space to become available. Calling + * xMessageBufferReceiveFromISR() can make space available, and so cause a task + * that is waiting for space to leave the Blocked state. If calling + * xMessageBufferReceiveFromISR() causes a task to leave the Blocked state, and + * the unblocked task has a priority higher than the currently executing task + * (the task that was interrupted), then, internally, + * xMessageBufferReceiveFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE. + * If xMessageBufferReceiveFromISR() sets this value to pdTRUE, then normally a + * context switch should be performed before the interrupt is exited. That will + * ensure the interrupt returns directly to the highest priority Ready state + * task. *pxHigherPriorityTaskWoken should be set to pdFALSE before it is + * passed into the function. See the code example below for an example. + * + * @return The length, in bytes, of the message read from the message buffer, if + * any. + * + * Example use: +
        +// A message buffer that has already been created.
        +MessageBuffer_t xMessageBuffer;
        +
        +void vAnInterruptServiceRoutine( void )
        +{
        +uint8_t ucRxData[ 20 ];
        +size_t xReceivedBytes;
        +BaseType_t xHigherPriorityTaskWoken = pdFALSE;  // Initialised to pdFALSE.
        +
        +    // Receive the next message from the message buffer.
        +    xReceivedBytes = xMessageBufferReceiveFromISR( xMessageBuffer,
        +                                                  ( void * ) ucRxData,
        +                                                  sizeof( ucRxData ),
        +                                                  &xHigherPriorityTaskWoken );
        +
        +    if( xReceivedBytes > 0 )
        +    {
        +        // A ucRxData contains a message that is xReceivedBytes long.  Process
        +        // the message here....
        +    }
        +
        +    // If xHigherPriorityTaskWoken was set to pdTRUE inside
        +    // xMessageBufferReceiveFromISR() then a task that has a priority above the
        +    // priority of the currently executing task was unblocked and a context
        +    // switch should be performed to ensure the ISR returns to the unblocked
        +    // task.  In most FreeRTOS ports this is done by simply passing
        +    // xHigherPriorityTaskWoken into taskYIELD_FROM_ISR(), which will test the
        +    // variables value, and perform the context switch if necessary.  Check the
        +    // documentation for the port in use for port specific instructions.
        +    taskYIELD_FROM_ISR( xHigherPriorityTaskWoken );
        +}
        +
        + * \defgroup xMessageBufferReceiveFromISR xMessageBufferReceiveFromISR + * \ingroup MessageBufferManagement + */ +#define xMessageBufferReceiveFromISR( xMessageBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken ) xStreamBufferReceiveFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken ) + +/** + * message_buffer.h + * +
        +void vMessageBufferDelete( MessageBufferHandle_t xMessageBuffer );
        +
        + * + * Deletes a message buffer that was previously created using a call to + * xMessageBufferCreate() or xMessageBufferCreateStatic(). If the message + * buffer was created using dynamic memory (that is, by xMessageBufferCreate()), + * then the allocated memory is freed. + * + * A message buffer handle must not be used after the message buffer has been + * deleted. + * + * @param xMessageBuffer The handle of the message buffer to be deleted. + * + */ +#define vMessageBufferDelete( xMessageBuffer ) vStreamBufferDelete( ( StreamBufferHandle_t ) xMessageBuffer ) + +/** + * message_buffer.h +
        +BaseType_t xMessageBufferIsFull( MessageBufferHandle_t xMessageBuffer ) );
        +
        + * + * Tests to see if a message buffer is full. A message buffer is full if it + * cannot accept any more messages, of any size, until space is made available + * by a message being removed from the message buffer. + * + * @param xMessageBuffer The handle of the message buffer being queried. + * + * @return If the message buffer referenced by xMessageBuffer is full then + * pdTRUE is returned. Otherwise pdFALSE is returned. + */ +#define xMessageBufferIsFull( xMessageBuffer ) xStreamBufferIsFull( ( StreamBufferHandle_t ) xMessageBuffer ) + +/** + * message_buffer.h +
        +BaseType_t xMessageBufferIsEmpty( MessageBufferHandle_t xMessageBuffer ) );
        +
        + * + * Tests to see if a message buffer is empty (does not contain any messages). + * + * @param xMessageBuffer The handle of the message buffer being queried. + * + * @return If the message buffer referenced by xMessageBuffer is empty then + * pdTRUE is returned. Otherwise pdFALSE is returned. + * + */ +#define xMessageBufferIsEmpty( xMessageBuffer ) xStreamBufferIsEmpty( ( StreamBufferHandle_t ) xMessageBuffer ) + +/** + * message_buffer.h +
        +BaseType_t xMessageBufferReset( MessageBufferHandle_t xMessageBuffer );
        +
        + * + * Resets a message buffer to its initial empty state, discarding any message it + * contained. + * + * A message buffer can only be reset if there are no tasks blocked on it. + * + * @param xMessageBuffer The handle of the message buffer being reset. + * + * @return If the message buffer was reset then pdPASS is returned. If the + * message buffer could not be reset because either there was a task blocked on + * the message queue to wait for space to become available, or to wait for a + * a message to be available, then pdFAIL is returned. + * + * \defgroup xMessageBufferReset xMessageBufferReset + * \ingroup MessageBufferManagement + */ +#define xMessageBufferReset( xMessageBuffer ) xStreamBufferReset( ( StreamBufferHandle_t ) xMessageBuffer ) + + +/** + * message_buffer.h +
        +size_t xMessageBufferSpaceAvailable( MessageBufferHandle_t xMessageBuffer ) );
        +
        + * Returns the number of bytes of free space in the message buffer. + * + * @param xMessageBuffer The handle of the message buffer being queried. + * + * @return The number of bytes that can be written to the message buffer before + * the message buffer would be full. When a message is written to the message + * buffer an additional sizeof( size_t ) bytes are also written to store the + * message's length. sizeof( size_t ) is typically 4 bytes on a 32-bit + * architecture, so if xMessageBufferSpacesAvailable() returns 10, then the size + * of the largest message that can be written to the message buffer is 6 bytes. + * + * \defgroup xMessageBufferSpaceAvailable xMessageBufferSpaceAvailable + * \ingroup MessageBufferManagement + */ +#define xMessageBufferSpaceAvailable( xMessageBuffer ) xStreamBufferSpacesAvailable( ( StreamBufferHandle_t ) xMessageBuffer ) + +/** + * message_buffer.h + * +
        +BaseType_t xMessageBufferSendCompletedFromISR( MessageBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * For advanced users only. + * + * The sbSEND_COMPLETED() macro is called from within the FreeRTOS APIs when + * data is sent to a message buffer or stream buffer. If there was a task that + * was blocked on the message or stream buffer waiting for data to arrive then + * the sbSEND_COMPLETED() macro sends a notification to the task to remove it + * from the Blocked state. xMessageBufferSendCompletedFromISR() does the same + * thing. It is provided to enable application writers to implement their own + * version of sbSEND_COMPLETED(), and MUST NOT BE USED AT ANY OTHER TIME. + * + * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for + * additional information. + * + * @param xStreamBuffer The handle of the stream buffer to which data was + * written. + * + * @param pxHigherPriorityTaskWoken *pxHigherPriorityTaskWoken should be + * initialised to pdFALSE before it is passed into + * xMessageBufferSendCompletedFromISR(). If calling + * xMessageBufferSendCompletedFromISR() removes a task from the Blocked state, + * and the task has a priority above the priority of the currently running task, + * then *pxHigherPriorityTaskWoken will get set to pdTRUE indicating that a + * context switch should be performed before exiting the ISR. + * + * @return If a task was removed from the Blocked state then pdTRUE is returned. + * Otherwise pdFALSE is returned. + * + * \defgroup xMessageBufferSendCompletedFromISR xMessageBufferSendCompletedFromISR + * \ingroup StreamBufferManagement + */ +#define xMessageBufferSendCompletedFromISR( xMessageBuffer, pxHigherPriorityTaskWoken ) xStreamBufferSendCompletedFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pxHigherPriorityTaskWoken ) + +/** + * message_buffer.h + * +
        +BaseType_t xMessageBufferReceiveCompletedFromISR( MessageBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * For advanced users only. + * + * The sbRECEIVE_COMPLETED() macro is called from within the FreeRTOS APIs when + * data is read out of a message buffer or stream buffer. If there was a task + * that was blocked on the message or stream buffer waiting for data to arrive + * then the sbRECEIVE_COMPLETED() macro sends a notification to the task to + * remove it from the Blocked state. xMessageBufferReceiveCompletedFromISR() + * does the same thing. It is provided to enable application writers to + * implement their own version of sbRECEIVE_COMPLETED(), and MUST NOT BE USED AT + * ANY OTHER TIME. + * + * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for + * additional information. + * + * @param xStreamBuffer The handle of the stream buffer from which data was + * read. + * + * @param pxHigherPriorityTaskWoken *pxHigherPriorityTaskWoken should be + * initialised to pdFALSE before it is passed into + * xMessageBufferReceiveCompletedFromISR(). If calling + * xMessageBufferReceiveCompletedFromISR() removes a task from the Blocked state, + * and the task has a priority above the priority of the currently running task, + * then *pxHigherPriorityTaskWoken will get set to pdTRUE indicating that a + * context switch should be performed before exiting the ISR. + * + * @return If a task was removed from the Blocked state then pdTRUE is returned. + * Otherwise pdFALSE is returned. + * + * \defgroup xMessageBufferReceiveCompletedFromISR xMessageBufferReceiveCompletedFromISR + * \ingroup StreamBufferManagement + */ +#define xMessageBufferReceiveCompletedFromISR( xMessageBuffer, pxHigherPriorityTaskWoken ) xStreamBufferReceiveCompletedFromISR( ( StreamBufferHandle_t ) xMessageBuffer, pxHigherPriorityTaskWoken ) + +#if defined( __cplusplus ) +} /* extern "C" */ +#endif + +#endif /* !defined( FREERTOS_MESSAGE_BUFFER_H ) */ diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h index fcc9180..3931ee6 100644 --- a/FreeRTOS/Source/include/mpu_prototypes.h +++ b/FreeRTOS/Source/include/mpu_prototypes.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /* * When the MPU is used the standard (non MPU) API functions are mapped to @@ -79,7 +38,7 @@ #ifndef MPU_PROTOTYPES_H #define MPU_PROTOTYPES_H -/* MPU versions of tasks.h API function. */ +/* MPU versions of tasks.h API functions. */ BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask ); TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer ); BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ); @@ -123,7 +82,7 @@ BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * c void MPU_vTaskMissedYield( void ); BaseType_t MPU_xTaskGetSchedulerState( void ); -/* MPU versions of queue.h API function. */ +/* MPU versions of queue.h API functions. */ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ); BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); @@ -152,9 +111,9 @@ void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue ); uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue ); -/* MPU versions of timers.h API function. */ -TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ); -TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer ); +/* MPU versions of timers.h API functions. */ +TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ); +TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer ); void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ); void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ); BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ); @@ -166,7 +125,7 @@ TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ); BaseType_t MPU_xTimerCreateTimerTask( void ); BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ); -/* MPU versions of event_group.h API function. */ +/* MPU versions of event_group.h API functions. */ EventGroupHandle_t MPU_xEventGroupCreate( void ); EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ); EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ); @@ -176,5 +135,22 @@ EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ); UBaseType_t MPU_uxEventGroupGetNumber( void* xEventGroup ); +/* MPU versions of message/stream_buffer.h API functions. */ +size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait ); +size_t MPU_xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ); +size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait ); +size_t MPU_xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ); +void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ); +BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ); +BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ); +BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ); +size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ); +size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ); +BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ); +StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer ); +StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer, uint8_t * const pucStreamBufferStorageArea, StaticStreamBuffer_t * const pxStaticStreamBuffer ); + + + #endif /* MPU_PROTOTYPES_H */ diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h index 76315e0..e434e3b 100644 --- a/FreeRTOS/Source/include/mpu_wrappers.h +++ b/FreeRTOS/Source/include/mpu_wrappers.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef MPU_WRAPPERS_H #define MPU_WRAPPERS_H @@ -179,6 +138,23 @@ only for ports that are using the MPU. */ #define xEventGroupSync MPU_xEventGroupSync #define vEventGroupDelete MPU_vEventGroupDelete + /* Map standard message/stream_buffer.h API functions to the MPU + equivalents. */ + #define xStreamBufferSend MPU_xStreamBufferSend + #define xStreamBufferSendFromISR MPU_xStreamBufferSendFromISR + #define xStreamBufferReceive MPU_xStreamBufferReceive + #define xStreamBufferReceiveFromISR MPU_xStreamBufferReceiveFromISR + #define vStreamBufferDelete MPU_vStreamBufferDelete + #define xStreamBufferIsFull MPU_xStreamBufferIsFull + #define xStreamBufferIsEmpty MPU_xStreamBufferIsEmpty + #define xStreamBufferReset MPU_xStreamBufferReset + #define xStreamBufferSpacesAvailable MPU_xStreamBufferSpacesAvailable + #define xStreamBufferBytesAvailable MPU_xStreamBufferBytesAvailable + #define xStreamBufferSetTriggerLevel MPU_xStreamBufferSetTriggerLevel + #define xStreamBufferGenericCreate MPU_xStreamBufferGenericCreate + #define xStreamBufferGenericCreateStatic MPU_xStreamBufferGenericCreateStatic + + /* Remove the privileged function macro, but keep the PRIVILEGED_DATA macro so applications can place data in privileged access sections (useful when using statically allocated objects). */ diff --git a/FreeRTOS/Source/include/portable.h b/FreeRTOS/Source/include/portable.h index 5e8303a..95be167 100644 --- a/FreeRTOS/Source/include/portable.h +++ b/FreeRTOS/Source/include/portable.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /*----------------------------------------------------------- * Portable layer API. Each function must be defined for each port. diff --git a/FreeRTOS/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h index a08f658..f3bada2 100644 --- a/FreeRTOS/Source/include/projdefs.h +++ b/FreeRTOS/Source/include/projdefs.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef PROJDEFS_H #define PROJDEFS_H @@ -152,8 +111,13 @@ itself. */ /* The following endian values are used by FreeRTOS+ components, not FreeRTOS itself. */ -#define pdFREERTOS_LITTLE_ENDIAN 0 -#define pdFREERTOS_BIG_ENDIAN 1 +#define pdFREERTOS_LITTLE_ENDIAN 0 +#define pdFREERTOS_BIG_ENDIAN 1 + +/* Re-defining endian values for generic naming. */ +#define pdLITTLE_ENDIAN pdFREERTOS_LITTLE_ENDIAN +#define pdBIG_ENDIAN pdFREERTOS_BIG_ENDIAN + #endif /* PROJDEFS_H */ diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index bbba834..916498e 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef QUEUE_H @@ -282,8 +241,6 @@ typedef void * QueueSetMemberHandle_t; ); *
        * - * This is a macro that calls xQueueGenericSend(). - * * Post an item to the front of a queue. The item is queued by copy, not by * reference. This function must not be called from an interrupt service * routine. See xQueueSendFromISR () for an alternative which may be used diff --git a/FreeRTOS/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h index fb76636..e48f245 100644 --- a/FreeRTOS/Source/include/semphr.h +++ b/FreeRTOS/Source/include/semphr.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef SEMAPHORE_H #define SEMAPHORE_H diff --git a/FreeRTOS/Source/include/stack_macros.h b/FreeRTOS/Source/include/stack_macros.h new file mode 100644 index 0000000..99f6502 --- /dev/null +++ b/FreeRTOS/Source/include/stack_macros.h @@ -0,0 +1,130 @@ +/* + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + +#ifndef STACK_MACROS_H +#define STACK_MACROS_H + +/* + * Call the stack overflow hook function if the stack of the task being swapped + * out is currently overflowed, or looks like it might have overflowed in the + * past. + * + * Setting configCHECK_FOR_STACK_OVERFLOW to 1 will cause the macro to check + * the current stack state only - comparing the current top of stack value to + * the stack limit. Setting configCHECK_FOR_STACK_OVERFLOW to greater than 1 + * will also cause the last few stack bytes to be checked to ensure the value + * to which the bytes were set when the task was created have not been + * overwritten. Note this second test does not guarantee that an overflowed + * stack will always be recognised. + */ + +/*-----------------------------------------------------------*/ + +#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) ) + + /* Only the current stack state is to be checked. */ + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + /* Is the currently saved stack pointer within the stack limit? */ \ + if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ + } + +#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ +/*-----------------------------------------------------------*/ + +#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) ) + + /* Only the current stack state is to be checked. */ + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + \ + /* Is the currently saved stack pointer within the stack limit? */ \ + if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ + } + +#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ +/*-----------------------------------------------------------*/ + +#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) ) + + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack; \ + const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; \ + \ + if( ( pulStack[ 0 ] != ulCheckValue ) || \ + ( pulStack[ 1 ] != ulCheckValue ) || \ + ( pulStack[ 2 ] != ulCheckValue ) || \ + ( pulStack[ 3 ] != ulCheckValue ) ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ + } + +#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ +/*-----------------------------------------------------------*/ + +#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) ) + + #define taskCHECK_FOR_STACK_OVERFLOW() \ + { \ + int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack; \ + static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ + tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ + \ + \ + pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ + \ + /* Has the extremity of the task stack ever been written over? */ \ + if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ + { \ + vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ + } \ + } + +#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ +/*-----------------------------------------------------------*/ + +/* Remove stack overflow macro if not being used. */ +#ifndef taskCHECK_FOR_STACK_OVERFLOW + #define taskCHECK_FOR_STACK_OVERFLOW() +#endif + + + +#endif /* STACK_MACROS_H */ + diff --git a/FreeRTOS/Source/include/stream_buffer.h b/FreeRTOS/Source/include/stream_buffer.h new file mode 100644 index 0000000..55c6e6e --- /dev/null +++ b/FreeRTOS/Source/include/stream_buffer.h @@ -0,0 +1,849 @@ +/* + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + +/* + * Stream buffers are used to send a continuous stream of data from one task or + * interrupt to another. Their implementation is light weight, making them + * particularly suited for interrupt to task and core to core communication + * scenarios. + * + * ***NOTE***: Uniquely among FreeRTOS objects, the stream buffer + * implementation (so also the message buffer implementation, as message buffers + * are built on top of stream buffers) assumes there is only one task or + * interrupt that will write to the buffer (the writer), and only one task or + * interrupt that will read from the buffer (the reader). It is safe for the + * writer and reader to be different tasks or interrupts, but, unlike other + * FreeRTOS objects, it is not safe to have multiple different writers or + * multiple different readers. If there are to be multiple different writers + * then the application writer must place each call to a writing API function + * (such as xStreamBufferSend()) inside a critical section and set the send + * block time to 0. Likewise, if there are to be multiple different readers + * then the application writer must place each call to a reading API function + * (such as xStreamBufferRead()) inside a critical section section and set the + * receive block time to 0. + * + */ + +#ifndef STREAM_BUFFER_H +#define STREAM_BUFFER_H + +/** + * Type by which stream buffers are referenced. For example, a call to + * xStreamBufferCreate() returns an StreamBufferHandle_t variable that can + * then be used as a parameter to xStreamBufferSend(), xStreamBufferReceive(), + * etc. + */ +typedef void * StreamBufferHandle_t; + + +/** + * message_buffer.h + * +
        +StreamBufferHandle_t xStreamBufferCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes );
        +
        + * + * Creates a new stream buffer using dynamically allocated memory. See + * xStreamBufferCreateStatic() for a version that uses statically allocated + * memory (memory that is allocated at compile time). + * + * configSUPPORT_DYNAMIC_ALLOCATION must be set to 1 or left undefined in + * FreeRTOSConfig.h for xStreamBufferCreate() to be available. + * + * @param xBufferSizeBytes The total number of bytes the stream buffer will be + * able to hold at any one time. + * + * @param xTriggerLevelBytes The number of bytes that must be in the stream + * buffer before a task that is blocked on the stream buffer to wait for data is + * moved out of the blocked state. For example, if a task is blocked on a read + * of an empty stream buffer that has a trigger level of 1 then the task will be + * unblocked when a single byte is written to the buffer or the task's block + * time expires. As another example, if a task is blocked on a read of an empty + * stream buffer that has a trigger level of 10 then the task will not be + * unblocked until the stream buffer contains at least 10 bytes or the task's + * block time expires. If a reading task's block time expires before the + * trigger level is reached then the task will still receive however many bytes + * are actually available. Setting a trigger level of 0 will result in a + * trigger level of 1 being used. It is not valid to specify a trigger level + * that is greater than the buffer size. + * + * @return If NULL is returned, then the stream buffer cannot be created + * because there is insufficient heap memory available for FreeRTOS to allocate + * the stream buffer data structures and storage area. A non-NULL value being + * returned indicates that the stream buffer has been created successfully - + * the returned value should be stored as the handle to the created stream + * buffer. + * + * Example use: +
        +
        +void vAFunction( void )
        +{
        +StreamBufferHandle_t xStreamBuffer;
        +const size_t xStreamBufferSizeBytes = 100, xTriggerLevel = 10;
        +
        +    // Create a stream buffer that can hold 100 bytes.  The memory used to hold
        +    // both the stream buffer structure and the data in the stream buffer is
        +    // allocated dynamically.
        +    xStreamBuffer = xStreamBufferCreate( xStreamBufferSizeBytes, xTriggerLevel );
        +
        +    if( xStreamBuffer == NULL )
        +    {
        +        // There was not enough heap memory space available to create the
        +        // stream buffer.
        +    }
        +    else
        +    {
        +        // The stream buffer was created successfully and can now be used.
        +    }
        +}
        +
        + * \defgroup xStreamBufferCreate xStreamBufferCreate + * \ingroup StreamBufferManagement + */ +#define xStreamBufferCreate( xBufferSizeBytes, xTriggerLevelBytes ) xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, pdFALSE ) + +/** + * stream_buffer.h + * +
        +StreamBufferHandle_t xStreamBufferCreateStatic( size_t xBufferSizeBytes,
        +                                                size_t xTriggerLevelBytes,
        +                                                uint8_t *pucStreamBufferStorageArea,
        +                                                StaticStreamBuffer_t *pxStaticStreamBuffer );
        +
        + * Creates a new stream buffer using statically allocated memory. See + * xStreamBufferCreate() for a version that uses dynamically allocated memory. + * + * configSUPPORT_STATIC_ALLOCATION must be set to 1 in FreeRTOSConfig.h for + * xStreamBufferCreateStatic() to be available. + * + * @param xBufferSizeBytes The size, in bytes, of the buffer pointed to by the + * pucStreamBufferStorageArea parameter. + * + * @param xTriggerLevelBytes The number of bytes that must be in the stream + * buffer before a task that is blocked on the stream buffer to wait for data is + * moved out of the blocked state. For example, if a task is blocked on a read + * of an empty stream buffer that has a trigger level of 1 then the task will be + * unblocked when a single byte is written to the buffer or the task's block + * time expires. As another example, if a task is blocked on a read of an empty + * stream buffer that has a trigger level of 10 then the task will not be + * unblocked until the stream buffer contains at least 10 bytes or the task's + * block time expires. If a reading task's block time expires before the + * trigger level is reached then the task will still receive however many bytes + * are actually available. Setting a trigger level of 0 will result in a + * trigger level of 1 being used. It is not valid to specify a trigger level + * that is greater than the buffer size. + * + * @param pucStreamBufferStorageArea Must point to a uint8_t array that is at + * least xBufferSizeBytes + 1 big. This is the array to which streams are + * copied when they are written to the stream buffer. + * + * @param pxStaticStreamBuffer Must point to a variable of type + * StaticStreamBuffer_t, which will be used to hold the stream buffer's data + * structure. + * + * @return If the stream buffer is created successfully then a handle to the + * created stream buffer is returned. If either pucStreamBufferStorageArea or + * pxStaticstreamBuffer are NULL then NULL is returned. + * + * Example use: +
        +
        +// Used to dimension the array used to hold the streams.  The available space
        +// will actually be one less than this, so 999.
        +#define STORAGE_SIZE_BYTES 1000
        +
        +// Defines the memory that will actually hold the streams within the stream
        +// buffer.
        +static uint8_t ucStorageBuffer[ STORAGE_SIZE_BYTES ];
        +
        +// The variable used to hold the stream buffer structure.
        +StaticStreamBuffer_t xStreamBufferStruct;
        +
        +void MyFunction( void )
        +{
        +StreamBufferHandle_t xStreamBuffer;
        +const size_t xTriggerLevel = 1;
        +
        +    xStreamBuffer = xStreamBufferCreateStatic( sizeof( ucBufferStorage ),
        +                                               xTriggerLevel,
        +                                               ucBufferStorage,
        +                                               &xStreamBufferStruct );
        +
        +    // As neither the pucStreamBufferStorageArea or pxStaticStreamBuffer
        +    // parameters were NULL, xStreamBuffer will not be NULL, and can be used to
        +    // reference the created stream buffer in other stream buffer API calls.
        +
        +    // Other code that uses the stream buffer can go here.
        +}
        +
        +
        + * \defgroup xStreamBufferCreateStatic xStreamBufferCreateStatic + * \ingroup StreamBufferManagement + */ +#define xStreamBufferCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, pucStreamBufferStorageArea, pxStaticStreamBuffer ) xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, pdFALSE, pucStreamBufferStorageArea, pxStaticStreamBuffer ) + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
        +                          const void *pvTxData,
        +                          size_t xDataLengthBytes,
        +                          TickType_t xTicksToWait );
        +
        + *
        + * Sends bytes to a stream buffer.  The bytes are copied into the stream buffer.
        + *
        + * ***NOTE***:  Uniquely among FreeRTOS objects, the stream buffer
        + * implementation (so also the message buffer implementation, as message buffers
        + * are built on top of stream buffers) assumes there is only one task or
        + * interrupt that will write to the buffer (the writer), and only one task or
        + * interrupt that will read from the buffer (the reader).  It is safe for the
        + * writer and reader to be different tasks or interrupts, but, unlike other
        + * FreeRTOS objects, it is not safe to have multiple different writers or
        + * multiple different readers.  If there are to be multiple different writers
        + * then the application writer must place each call to a writing API function
        + * (such as xStreamBufferSend()) inside a critical section and set the send
        + * block time to 0.  Likewise, if there are to be multiple different readers
        + * then the application writer must place each call to a reading API function
        + * (such as xStreamBufferRead()) inside a critical section and set the receive
        + * block time to 0.
        + *
        + * Use xStreamBufferSend() to write to a stream buffer from a task.  Use
        + * xStreamBufferSendFromISR() to write to a stream buffer from an interrupt
        + * service routine (ISR).
        + *
        + * @param xStreamBuffer The handle of the stream buffer to which a stream is
        + * being sent.
        + *
        + * @param pvTxData A pointer to the buffer that holds the bytes to be copied
        + * into the stream buffer.
        + *
        + * @param xDataLengthBytes   The maximum number of bytes to copy from pvTxData
        + * into the stream buffer.
        + *
        + * @param xTicksToWait The maximum amount of time the task should remain in the
        + * Blocked state to wait for enough space to become available in the stream
        + * buffer, should the stream buffer contain too little space to hold the
        + * another xDataLengthBytes bytes.  The block time is specified in tick periods,
        + * so the absolute time it represents is dependent on the tick frequency.  The
        + * macro pdMS_TO_TICKS() can be used to convert a time specified in milliseconds
        + * into a time specified in ticks.  Setting xTicksToWait to portMAX_DELAY will
        + * cause the task to wait indefinitely (without timing out), provided
        + * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h.  If a task times out
        + * before it can write all xDataLengthBytes into the buffer it will still write
        + * as many bytes as possible.  A task does not use any CPU time when it is in
        + * the blocked state.
        + *
        + * @return The number of bytes written to the stream buffer.  If a task times
        + * out before it can write all xDataLengthBytes into the buffer it will still
        + * write as many bytes as possible.
        + *
        + * Example use:
        +
        +void vAFunction( StreamBufferHandle_t xStreamBuffer )
        +{
        +size_t xBytesSent;
        +uint8_t ucArrayToSend[] = { 0, 1, 2, 3 };
        +char *pcStringToSend = "String to send";
        +const TickType_t x100ms = pdMS_TO_TICKS( 100 );
        +
        +    // Send an array to the stream buffer, blocking for a maximum of 100ms to
        +    // wait for enough space to be available in the stream buffer.
        +    xBytesSent = xStreamBufferSend( xStreamBuffer, ( void * ) ucArrayToSend, sizeof( ucArrayToSend ), x100ms );
        +
        +    if( xBytesSent != sizeof( ucArrayToSend ) )
        +    {
        +        // The call to xStreamBufferSend() times out before there was enough
        +        // space in the buffer for the data to be written, but it did
        +        // successfully write xBytesSent bytes.
        +    }
        +
        +    // Send the string to the stream buffer.  Return immediately if there is not
        +    // enough space in the buffer.
        +    xBytesSent = xStreamBufferSend( xStreamBuffer, ( void * ) pcStringToSend, strlen( pcStringToSend ), 0 );
        +
        +    if( xBytesSent != strlen( pcStringToSend ) )
        +    {
        +        // The entire string could not be added to the stream buffer because
        +        // there was not enough free space in the buffer, but xBytesSent bytes
        +        // were sent.  Could try again to send the remaining bytes.
        +    }
        +}
        +
        + * \defgroup xStreamBufferSend xStreamBufferSend + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, + const void *pvTxData, + size_t xDataLengthBytes, + TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer,
        +                                 const void *pvTxData,
        +                                 size_t xDataLengthBytes,
        +                                 BaseType_t *pxHigherPriorityTaskWoken );
        +
        + *
        + * Interrupt safe version of the API function that sends a stream of bytes to
        + * the stream buffer.
        + *
        + * ***NOTE***:  Uniquely among FreeRTOS objects, the stream buffer
        + * implementation (so also the message buffer implementation, as message buffers
        + * are built on top of stream buffers) assumes there is only one task or
        + * interrupt that will write to the buffer (the writer), and only one task or
        + * interrupt that will read from the buffer (the reader).  It is safe for the
        + * writer and reader to be different tasks or interrupts, but, unlike other
        + * FreeRTOS objects, it is not safe to have multiple different writers or
        + * multiple different readers.  If there are to be multiple different writers
        + * then the application writer must place each call to a writing API function
        + * (such as xStreamBufferSend()) inside a critical section and set the send
        + * block time to 0.  Likewise, if there are to be multiple different readers
        + * then the application writer must place each call to a reading API function
        + * (such as xStreamBufferRead()) inside a critical section and set the receive
        + * block time to 0.
        + *
        + * Use xStreamBufferSend() to write to a stream buffer from a task.  Use
        + * xStreamBufferSendFromISR() to write to a stream buffer from an interrupt
        + * service routine (ISR).
        + *
        + * @param xStreamBuffer The handle of the stream buffer to which a stream is
        + * being sent.
        + *
        + * @param pvTxData A pointer to the data that is to be copied into the stream
        + * buffer.
        + *
        + * @param xDataLengthBytes The maximum number of bytes to copy from pvTxData
        + * into the stream buffer.
        + *
        + * @param pxHigherPriorityTaskWoken  It is possible that a stream buffer will
        + * have a task blocked on it waiting for data.  Calling
        + * xStreamBufferSendFromISR() can make data available, and so cause a task that
        + * was waiting for data to leave the Blocked state.  If calling
        + * xStreamBufferSendFromISR() causes a task to leave the Blocked state, and the
        + * unblocked task has a priority higher than the currently executing task (the
        + * task that was interrupted), then, internally, xStreamBufferSendFromISR()
        + * will set *pxHigherPriorityTaskWoken to pdTRUE.  If
        + * xStreamBufferSendFromISR() sets this value to pdTRUE, then normally a
        + * context switch should be performed before the interrupt is exited.  This will
        + * ensure that the interrupt returns directly to the highest priority Ready
        + * state task.  *pxHigherPriorityTaskWoken should be set to pdFALSE before it
        + * is passed into the function.  See the example code below for an example.
        + *
        + * @return The number of bytes actually written to the stream buffer, which will
        + * be less than xDataLengthBytes if the stream buffer didn't have enough free
        + * space for all the bytes to be written.
        + *
        + * Example use:
        +
        +// A stream buffer that has already been created.
        +StreamBufferHandle_t xStreamBuffer;
        +
        +void vAnInterruptServiceRoutine( void )
        +{
        +size_t xBytesSent;
        +char *pcStringToSend = "String to send";
        +BaseType_t xHigherPriorityTaskWoken = pdFALSE; // Initialised to pdFALSE.
        +
        +    // Attempt to send the string to the stream buffer.
        +    xBytesSent = xStreamBufferSendFromISR( xStreamBuffer,
        +                                           ( void * ) pcStringToSend,
        +                                           strlen( pcStringToSend ),
        +                                           &xHigherPriorityTaskWoken );
        +
        +    if( xBytesSent != strlen( pcStringToSend ) )
        +    {
        +        // There was not enough free space in the stream buffer for the entire
        +        // string to be written, ut xBytesSent bytes were written.
        +    }
        +
        +    // If xHigherPriorityTaskWoken was set to pdTRUE inside
        +    // xStreamBufferSendFromISR() then a task that has a priority above the
        +    // priority of the currently executing task was unblocked and a context
        +    // switch should be performed to ensure the ISR returns to the unblocked
        +    // task.  In most FreeRTOS ports this is done by simply passing
        +    // xHigherPriorityTaskWoken into taskYIELD_FROM_ISR(), which will test the
        +    // variables value, and perform the context switch if necessary.  Check the
        +    // documentation for the port in use for port specific instructions.
        +    taskYIELD_FROM_ISR( xHigherPriorityTaskWoken );
        +}
        +
        + * \defgroup xStreamBufferSendFromISR xStreamBufferSendFromISR + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, + const void *pvTxData, + size_t xDataLengthBytes, + BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
        +                             void *pvRxData,
        +                             size_t xBufferLengthBytes,
        +                             TickType_t xTicksToWait );
        +
        + * + * Receives bytes from a stream buffer. + * + * ***NOTE***: Uniquely among FreeRTOS objects, the stream buffer + * implementation (so also the message buffer implementation, as message buffers + * are built on top of stream buffers) assumes there is only one task or + * interrupt that will write to the buffer (the writer), and only one task or + * interrupt that will read from the buffer (the reader). It is safe for the + * writer and reader to be different tasks or interrupts, but, unlike other + * FreeRTOS objects, it is not safe to have multiple different writers or + * multiple different readers. If there are to be multiple different writers + * then the application writer must place each call to a writing API function + * (such as xStreamBufferSend()) inside a critical section and set the send + * block time to 0. Likewise, if there are to be multiple different readers + * then the application writer must place each call to a reading API function + * (such as xStreamBufferRead()) inside a critical section and set the receive + * block time to 0. + * + * Use xStreamBufferReceive() to read from a stream buffer from a task. Use + * xStreamBufferReceiveFromISR() to read from a stream buffer from an + * interrupt service routine (ISR). + * + * @param xStreamBuffer The handle of the stream buffer from which bytes are to + * be received. + * + * @param pvRxData A pointer to the buffer into which the received bytes will be + * copied. + * + * @param xBufferLengthBytes The length of the buffer pointed to by the + * pvRxData parameter. This sets the maximum number of bytes to receive in one + * call. xStreamBufferReceive will return as many bytes as possible up to a + * maximum set by xBufferLengthBytes. + * + * @param xTicksToWait The maximum amount of time the task should remain in the + * Blocked state to wait for data to become available if the stream buffer is + * empty. xStreamBufferReceive() will return immediately if xTicksToWait is + * zero. The block time is specified in tick periods, so the absolute time it + * represents is dependent on the tick frequency. The macro pdMS_TO_TICKS() can + * be used to convert a time specified in milliseconds into a time specified in + * ticks. Setting xTicksToWait to portMAX_DELAY will cause the task to wait + * indefinitely (without timing out), provided INCLUDE_vTaskSuspend is set to 1 + * in FreeRTOSConfig.h. A task does not use any CPU time when it is in the + * Blocked state. + * + * @return The number of bytes actually read from the stream buffer, which will + * be less than xBufferLengthBytes if the call to xStreamBufferReceive() timed + * out before xBufferLengthBytes were available. + * + * Example use: +
        +void vAFunction( StreamBuffer_t xStreamBuffer )
        +{
        +uint8_t ucRxData[ 20 ];
        +size_t xReceivedBytes;
        +const TickType_t xBlockTime = pdMS_TO_TICKS( 20 );
        +
        +    // Receive up to another sizeof( ucRxData ) bytes from the stream buffer.
        +    // Wait in the Blocked state (so not using any CPU processing time) for a
        +    // maximum of 100ms for the full sizeof( ucRxData ) number of bytes to be
        +    // available.
        +    xReceivedBytes = xStreamBufferReceive( xStreamBuffer,
        +                                           ( void * ) ucRxData,
        +                                           sizeof( ucRxData ),
        +                                           xBlockTime );
        +
        +    if( xReceivedBytes > 0 )
        +    {
        +        // A ucRxData contains another xRecievedBytes bytes of data, which can
        +        // be processed here....
        +    }
        +}
        +
        + * \defgroup xStreamBufferReceive xStreamBufferReceive + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer,
        +                                    void *pvRxData,
        +                                    size_t xBufferLengthBytes,
        +                                    BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * An interrupt safe version of the API function that receives bytes from a + * stream buffer. + * + * Use xStreamBufferReceive() to read bytes from a stream buffer from a task. + * Use xStreamBufferReceiveFromISR() to read bytes from a stream buffer from an + * interrupt service routine (ISR). + * + * @param xStreamBuffer The handle of the stream buffer from which a stream + * is being received. + * + * @param pvRxData A pointer to the buffer into which the received bytes are + * copied. + * + * @param xBufferLengthBytes The length of the buffer pointed to by the + * pvRxData parameter. This sets the maximum number of bytes to receive in one + * call. xStreamBufferReceive will return as many bytes as possible up to a + * maximum set by xBufferLengthBytes. + * + * @param pxHigherPriorityTaskWoken It is possible that a stream buffer will + * have a task blocked on it waiting for space to become available. Calling + * xStreamBufferReceiveFromISR() can make space available, and so cause a task + * that is waiting for space to leave the Blocked state. If calling + * xStreamBufferReceiveFromISR() causes a task to leave the Blocked state, and + * the unblocked task has a priority higher than the currently executing task + * (the task that was interrupted), then, internally, + * xStreamBufferReceiveFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE. + * If xStreamBufferReceiveFromISR() sets this value to pdTRUE, then normally a + * context switch should be performed before the interrupt is exited. That will + * ensure the interrupt returns directly to the highest priority Ready state + * task. *pxHigherPriorityTaskWoken should be set to pdFALSE before it is + * passed into the function. See the code example below for an example. + * + * @return The number of bytes read from the stream buffer, if any. + * + * Example use: +
        +// A stream buffer that has already been created.
        +StreamBuffer_t xStreamBuffer;
        +
        +void vAnInterruptServiceRoutine( void )
        +{
        +uint8_t ucRxData[ 20 ];
        +size_t xReceivedBytes;
        +BaseType_t xHigherPriorityTaskWoken = pdFALSE;  // Initialised to pdFALSE.
        +
        +    // Receive the next stream from the stream buffer.
        +    xReceivedBytes = xStreamBufferReceiveFromISR( xStreamBuffer,
        +                                                  ( void * ) ucRxData,
        +                                                  sizeof( ucRxData ),
        +                                                  &xHigherPriorityTaskWoken );
        +
        +    if( xReceivedBytes > 0 )
        +    {
        +        // ucRxData contains xReceivedBytes read from the stream buffer.
        +        // Process the stream here....
        +    }
        +
        +    // If xHigherPriorityTaskWoken was set to pdTRUE inside
        +    // xStreamBufferReceiveFromISR() then a task that has a priority above the
        +    // priority of the currently executing task was unblocked and a context
        +    // switch should be performed to ensure the ISR returns to the unblocked
        +    // task.  In most FreeRTOS ports this is done by simply passing
        +    // xHigherPriorityTaskWoken into taskYIELD_FROM_ISR(), which will test the
        +    // variables value, and perform the context switch if necessary.  Check the
        +    // documentation for the port in use for port specific instructions.
        +    taskYIELD_FROM_ISR( xHigherPriorityTaskWoken );
        +}
        +
        + * \defgroup xStreamBufferReceiveFromISR xStreamBufferReceiveFromISR + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +void vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Deletes a stream buffer that was previously created using a call to + * xStreamBufferCreate() or xStreamBufferCreateStatic(). If the stream + * buffer was created using dynamic memory (that is, by xStreamBufferCreate()), + * then the allocated memory is freed. + * + * A stream buffer handle must not be used after the stream buffer has been + * deleted. + * + * @param xStreamBuffer The handle of the stream buffer to be deleted. + * + * \defgroup vStreamBufferDelete vStreamBufferDelete + * \ingroup StreamBufferManagement + */ +void vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Queries a stream buffer to see if it is full. A stream buffer is full if it + * does not have any free space, and therefore cannot accept any more data. + * + * @param xStreamBuffer The handle of the stream buffer being queried. + * + * @return If the stream buffer is full then pdTRUE is returned. Otherwise + * pdFALSE is returned. + * + * \defgroup xStreamBufferIsFull xStreamBufferIsFull + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Queries a stream buffer to see if it is empty. A stream buffer is empty if + * it does not contain any data. + * + * @param xStreamBuffer The handle of the stream buffer being queried. + * + * @return If the stream buffer is empty then pdTRUE is returned. Otherwise + * pdFALSE is returned. + * + * \defgroup xStreamBufferIsEmpty xStreamBufferIsEmpty + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferReset( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Resets a stream buffer to its initial, empty, state. Any data that was in + * the stream buffer is discarded. A stream buffer can only be reset if there + * are no tasks blocked waiting to either send to or receive from the stream + * buffer. + * + * @param xStreamBuffer The handle of the stream buffer being reset. + * + * @return If the stream buffer is reset then pdPASS is returned. If there was + * a task blocked waiting to send to or read from the stream buffer then the + * stream buffer is not reset and pdFAIL is returned. + * + * \defgroup xStreamBufferReset xStreamBufferReset + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Queries a stream buffer to see how much free space it contains, which is + * equal to the amount of data that can be sent to the stream buffer before it + * is full. + * + * @param xStreamBuffer The handle of the stream buffer being queried. + * + * @return The number of bytes that can be written to the stream buffer before + * the stream buffer would be full. + * + * \defgroup xStreamBufferSpacesAvailable xStreamBufferSpacesAvailable + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +size_t xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer );
        +
        + * + * Queries a stream buffer to see how much data it contains, which is equal to + * the number of bytes that can be read from the stream buffer before the stream + * buffer would be empty. + * + * @param xStreamBuffer The handle of the stream buffer being queried. + * + * @return The number of bytes that can be read from the stream buffer before + * the stream buffer would be empty. + * + * \defgroup xStreamBufferBytesAvailable xStreamBufferBytesAvailable + * \ingroup StreamBufferManagement + */ +size_t xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel );
        +
        + * + * A stream buffer's trigger level is the number of bytes that must be in the + * stream buffer before a task that is blocked on the stream buffer to + * wait for data is moved out of the blocked state. For example, if a task is + * blocked on a read of an empty stream buffer that has a trigger level of 1 + * then the task will be unblocked when a single byte is written to the buffer + * or the task's block time expires. As another example, if a task is blocked + * on a read of an empty stream buffer that has a trigger level of 10 then the + * task will not be unblocked until the stream buffer contains at least 10 bytes + * or the task's block time expires. If a reading task's block time expires + * before the trigger level is reached then the task will still receive however + * many bytes are actually available. Setting a trigger level of 0 will result + * in a trigger level of 1 being used. It is not valid to specify a trigger + * level that is greater than the buffer size. + * + * A trigger level is set when the stream buffer is created, and can be modified + * using xStreamBufferSetTriggerLevel(). + * + * @param xStreamBuffer The handle of the stream buffer being updated. + * + * @param xTriggerLevel The new trigger level for the stream buffer. + * + * @return If xTriggerLevel was less than or equal to the stream buffer's length + * then the trigger level will be updated and pdTRUE is returned. Otherwise + * pdFALSE is returned. + * + * \defgroup xStreamBufferSetTriggerLevel xStreamBufferSetTriggerLevel + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * For advanced users only. + * + * The sbSEND_COMPLETED() macro is called from within the FreeRTOS APIs when + * data is sent to a message buffer or stream buffer. If there was a task that + * was blocked on the message or stream buffer waiting for data to arrive then + * the sbSEND_COMPLETED() macro sends a notification to the task to remove it + * from the Blocked state. xStreamBufferSendCompletedFromISR() does the same + * thing. It is provided to enable application writers to implement their own + * version of sbSEND_COMPLETED(), and MUST NOT BE USED AT ANY OTHER TIME. + * + * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for + * additional information. + * + * @param xStreamBuffer The handle of the stream buffer to which data was + * written. + * + * @param pxHigherPriorityTaskWoken *pxHigherPriorityTaskWoken should be + * initialised to pdFALSE before it is passed into + * xStreamBufferSendCompletedFromISR(). If calling + * xStreamBufferSendCompletedFromISR() removes a task from the Blocked state, + * and the task has a priority above the priority of the currently running task, + * then *pxHigherPriorityTaskWoken will get set to pdTRUE indicating that a + * context switch should be performed before exiting the ISR. + * + * @return If a task was removed from the Blocked state then pdTRUE is returned. + * Otherwise pdFALSE is returned. + * + * \defgroup xStreamBufferSendCompletedFromISR xStreamBufferSendCompletedFromISR + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; + +/** + * stream_buffer.h + * +
        +BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken );
        +
        + * + * For advanced users only. + * + * The sbRECEIVE_COMPLETED() macro is called from within the FreeRTOS APIs when + * data is read out of a message buffer or stream buffer. If there was a task + * that was blocked on the message or stream buffer waiting for data to arrive + * then the sbRECEIVE_COMPLETED() macro sends a notification to the task to + * remove it from the Blocked state. xStreamBufferReceiveCompletedFromISR() + * does the same thing. It is provided to enable application writers to + * implement their own version of sbRECEIVE_COMPLETED(), and MUST NOT BE USED AT + * ANY OTHER TIME. + * + * See the example implemented in FreeRTOS/Demo/Minimal/MessageBufferAMP.c for + * additional information. + * + * @param xStreamBuffer The handle of the stream buffer from which data was + * read. + * + * @param pxHigherPriorityTaskWoken *pxHigherPriorityTaskWoken should be + * initialised to pdFALSE before it is passed into + * xStreamBufferReceiveCompletedFromISR(). If calling + * xStreamBufferReceiveCompletedFromISR() removes a task from the Blocked state, + * and the task has a priority above the priority of the currently running task, + * then *pxHigherPriorityTaskWoken will get set to pdTRUE indicating that a + * context switch should be performed before exiting the ISR. + * + * @return If a task was removed from the Blocked state then pdTRUE is returned. + * Otherwise pdFALSE is returned. + * + * \defgroup xStreamBufferReceiveCompletedFromISR xStreamBufferReceiveCompletedFromISR + * \ingroup StreamBufferManagement + */ +BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION; + +/* Functions below here are not part of the public API. */ +StreamBufferHandle_t xStreamBufferGenericCreate( size_t xBufferSizeBytes, + size_t xTriggerLevelBytes, + BaseType_t xIsMessageBuffer ) PRIVILEGED_FUNCTION; + +StreamBufferHandle_t xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, + size_t xTriggerLevelBytes, + BaseType_t xIsMessageBuffer, + uint8_t * const pucStreamBufferStorageArea, + StaticStreamBuffer_t * const pxStaticStreamBuffer ) PRIVILEGED_FUNCTION; + +#if( configUSE_TRACE_FACILITY == 1 ) + void vStreamBufferSetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer, UBaseType_t uxStreamBufferNumber ) PRIVILEGED_FUNCTION; + UBaseType_t uxStreamBufferGetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; + uint8_t ucStreamBufferGetStreamBufferType( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION; +#endif + +#if defined( __cplusplus ) +extern "C" { +#endif + +#endif /* !defined( STREAM_BUFFER_H ) */ diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index c326ead..ca6866e 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef INC_TASK_H diff --git a/FreeRTOS/Source/include/timers.h b/FreeRTOS/Source/include/timers.h index 449e49c..084b15a 100644 --- a/FreeRTOS/Source/include/timers.h +++ b/FreeRTOS/Source/include/timers.h @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef TIMERS_H @@ -1305,6 +1264,11 @@ TickType_t xTimerGetExpiryTime( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; BaseType_t xTimerCreateTimerTask( void ) PRIVILEGED_FUNCTION; BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION; +#if( configUSE_TRACE_FACILITY == 1 ) + void vTimerSetTimerNumber( TimerHandle_t xTimer, UBaseType_t uxTimerNumber ) PRIVILEGED_FUNCTION; + UBaseType_t uxTimerGetTimerNumber( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; +#endif + #ifdef __cplusplus } #endif diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c index f890e87..8e3560a 100644 --- a/FreeRTOS/Source/list.c +++ b/FreeRTOS/Source/list.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #include diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index d6b2a89..b11a1c5 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -1,66 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /*----------------------------------------------------------- * Implementation of functions defined in portable.h for ESP8266 diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h index 0b18b47..f1ecf07 100644 --- a/FreeRTOS/Source/portable/esp8266/portmacro.h +++ b/FreeRTOS/Source/portable/esp8266/portmacro.h @@ -1,31 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - -*/ - + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #ifndef PORTMACRO_H #define PORTMACRO_H diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c index d076022..9a46f46 100644 --- a/FreeRTOS/Source/queue.c +++ b/FreeRTOS/Source/queue.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ #include #include @@ -926,8 +885,8 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); /* Unlocking the queue means queue events can effect the - event list. It is possible that interrupts occurring now - remove this task from the event list again - but as the + event list. It is possible that interrupts occurring now + remove this task from the event list again - but as the scheduler is suspended the task will go onto the pending ready last instead of the actual ready list. */ prvUnlockQueue( pxQueue ); @@ -1715,7 +1674,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* The queue was empty and no block time is specified (or the block time has expired) so leave now. */ taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); + traceQUEUE_PEEK_FAILED( pxQueue ); return errQUEUE_EMPTY; } else if( xEntryTimeSet == pdFALSE ) @@ -1748,7 +1707,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; queue now, and if not enter the Blocked state to wait for data. */ if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); + traceBLOCKING_ON_QUEUE_PEEK( pxQueue ); vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); prvUnlockQueue( pxQueue ); if( xTaskResumeAll() == pdFALSE ) @@ -1777,7 +1736,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) { - traceQUEUE_RECEIVE_FAILED( pxQueue ); + traceQUEUE_PEEK_FAILED( pxQueue ); return errQUEUE_EMPTY; } else diff --git a/FreeRTOS/Source/readme.txt b/FreeRTOS/Source/readme.txt index b68d2d5..58480c5 100644 --- a/FreeRTOS/Source/readme.txt +++ b/FreeRTOS/Source/readme.txt @@ -1,20 +1,17 @@ Each real time kernel port consists of three files that contain the core kernel -components and are common to every port, and one or more files that are -specific to a particular microcontroller and/or compiler. +components and are common to every port, and one or more files that are +specific to a particular microcontroller and or compiler. ++ The FreeRTOS/Source directory contains the three files that are common to +every port - list.c, queue.c and tasks.c. The kernel is contained within these +three files. croutine.c implements the optional co-routine functionality - which +is normally only used on very memory limited systems. -+ The FreeRTOS/Source/Portable/MemMang directory contains the five sample -memory allocators as described on the http://www.FreeRTOS.org WEB site. ++ The FreeRTOS/Source/Portable directory contains the files that are specific to +a particular microcontroller and or compiler. -+ The other directories each contain files specific to a particular -microcontroller or compiler, where the directory name denotes the compiler -specific files the directory contains. - - - -For example, if you are interested in the [compiler] port for the [architecture] -microcontroller, then the port specific files are contained in -FreeRTOS/Source/Portable/[compiler]/[architecture] directory. If this is the -only port you are interested in then all the other directories can be -ignored. ++ The FreeRTOS/Source/include directory contains the real time kernel header +files. +See the readme file in the FreeRTOS/Source/Portable directory for more +information. \ No newline at end of file diff --git a/FreeRTOS/Source/stream_buffer.c b/FreeRTOS/Source/stream_buffer.c new file mode 100644 index 0000000..f51a144 --- /dev/null +++ b/FreeRTOS/Source/stream_buffer.c @@ -0,0 +1,1196 @@ +/* + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ + +/* Standard includes. */ +#include +#include + +/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining +all the API functions to use the MPU wrappers. That should only be done when +task.h is included from an application file. */ +#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE + +/* FreeRTOS includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "stream_buffer.h" + +/* Lint e961 and e750 are suppressed as a MISRA exception justified because the +MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the +header files above, but not in this file, in order to generate the correct +privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ + +/* If the user has not provided application specific Rx notification macros, +or #defined the notification macros away, them provide default implementations +that uses task notifications. */ +/*lint -save -e9026 Function like macros allowed and needed here so they can be overidden. */ +#ifndef sbRECEIVE_COMPLETED + #define sbRECEIVE_COMPLETED( pxStreamBuffer ) \ + vTaskSuspendAll(); \ + { \ + if( ( pxStreamBuffer )->xTaskWaitingToSend != NULL ) \ + { \ + ( void ) xTaskNotify( ( pxStreamBuffer )->xTaskWaitingToSend, \ + ( uint32_t ) 0, \ + eNoAction ); \ + ( pxStreamBuffer )->xTaskWaitingToSend = NULL; \ + } \ + } \ + ( void ) xTaskResumeAll(); +#endif /* sbRECEIVE_COMPLETED */ + +#ifndef sbRECEIVE_COMPLETED_FROM_ISR + #define sbRECEIVE_COMPLETED_FROM_ISR( pxStreamBuffer, \ + pxHigherPriorityTaskWoken ) \ + { \ + UBaseType_t uxSavedInterruptStatus; \ + \ + uxSavedInterruptStatus = ( UBaseType_t ) portSET_INTERRUPT_MASK_FROM_ISR(); \ + { \ + if( ( pxStreamBuffer )->xTaskWaitingToSend != NULL ) \ + { \ + ( void ) xTaskNotifyFromISR( ( pxStreamBuffer )->xTaskWaitingToSend, \ + ( uint32_t ) 0, \ + eNoAction, \ + pxHigherPriorityTaskWoken ); \ + ( pxStreamBuffer )->xTaskWaitingToSend = NULL; \ + } \ + } \ + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); \ + } +#endif /* sbRECEIVE_COMPLETED_FROM_ISR */ + +/* If the user has not provided an application specific Tx notification macro, +or #defined the notification macro away, them provide a default implementation +that uses task notifications. */ +#ifndef sbSEND_COMPLETED + #define sbSEND_COMPLETED( pxStreamBuffer ) \ + vTaskSuspendAll(); \ + { \ + if( ( pxStreamBuffer )->xTaskWaitingToReceive != NULL ) \ + { \ + ( void ) xTaskNotify( ( pxStreamBuffer )->xTaskWaitingToReceive, \ + ( uint32_t ) 0, \ + eNoAction ); \ + ( pxStreamBuffer )->xTaskWaitingToReceive = NULL; \ + } \ + } \ + ( void ) xTaskResumeAll(); +#endif /* sbSEND_COMPLETED */ + +#ifndef sbSEND_COMPLETE_FROM_ISR + #define sbSEND_COMPLETE_FROM_ISR( pxStreamBuffer, pxHigherPriorityTaskWoken ) \ + { \ + UBaseType_t uxSavedInterruptStatus; \ + \ + uxSavedInterruptStatus = ( UBaseType_t ) portSET_INTERRUPT_MASK_FROM_ISR(); \ + { \ + if( ( pxStreamBuffer )->xTaskWaitingToReceive != NULL ) \ + { \ + ( void ) xTaskNotifyFromISR( ( pxStreamBuffer )->xTaskWaitingToReceive, \ + ( uint32_t ) 0, \ + eNoAction, \ + pxHigherPriorityTaskWoken ); \ + ( pxStreamBuffer )->xTaskWaitingToReceive = NULL; \ + } \ + } \ + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); \ + } +#endif /* sbSEND_COMPLETE_FROM_ISR */ +/*lint -restore (9026) */ + +/* The number of bytes used to hold the length of a message in the buffer. */ +#define sbBYTES_TO_STORE_MESSAGE_LENGTH ( sizeof( size_t ) ) + +/* Bits stored in the ucFlags field of the stream buffer. */ +#define sbFLAGS_IS_MESSAGE_BUFFER ( ( uint8_t ) 1 ) /* Set if the stream buffer was created as a message buffer, in which case it holds discrete messages rather than a stream. */ +#define sbFLAGS_IS_STATICALLY_ALLOCATED ( ( uint8_t ) 2 ) /* Set if the stream buffer was created using statically allocated memory. */ + +/*-----------------------------------------------------------*/ + +/* Structure that hold state information on the buffer. */ +typedef struct xSTREAM_BUFFER /*lint !e9058 Style convention uses tag. */ +{ + volatile size_t xTail; /* Index to the next item to read within the buffer. */ + volatile size_t xHead; /* Index to the next item to write within the buffer. */ + size_t xLength; /* The length of the buffer pointed to by pucBuffer. */ + size_t xTriggerLevelBytes; /* The number of bytes that must be in the stream buffer before a task that is waiting for data is unblocked. */ + volatile TaskHandle_t xTaskWaitingToReceive; /* Holds the handle of a task waiting for data, or NULL if no tasks are waiting. */ + volatile TaskHandle_t xTaskWaitingToSend; /* Holds the handle of a task waiting to send data to a message buffer that is full. */ + uint8_t *pucBuffer; /* Points to the buffer itself - that is - the RAM that stores the data passed through the buffer. */ + uint8_t ucFlags; + + #if ( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxStreamBufferNumber; /* Used for tracing purposes. */ + #endif +} StreamBuffer_t; + +/* + * The number of bytes available to be read from the buffer. + */ +static size_t prvBytesInBuffer( const StreamBuffer_t * const pxStreamBuffer ) PRIVILEGED_FUNCTION; + +/* + * Add xCount bytes from pucData into the pxStreamBuffer message buffer. + * Returns the number of bytes written, which will either equal xCount in the + * success case, or 0 if there was not enough space in the buffer (in which case + * no data is written into the buffer). + */ +static size_t prvWriteBytesToBuffer( StreamBuffer_t * const pxStreamBuffer, const uint8_t *pucData, size_t xCount ) PRIVILEGED_FUNCTION; + +/* + * If the stream buffer is being used as a message buffer, then reads an entire + * message out of the buffer. If the stream buffer is being used as a stream + * buffer then read as many bytes as possible from the buffer. + * prvReadBytesFromBuffer() is called to actually extract the bytes from the + * buffer's data storage area. + */ +static size_t prvReadMessageFromBuffer( StreamBuffer_t *pxStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + size_t xBytesAvailable, + size_t xBytesToStoreMessageLength ) PRIVILEGED_FUNCTION; + +/* + * If the stream buffer is being used as a message buffer, then writes an entire + * message to the buffer. If the stream buffer is being used as a stream + * buffer then write as many bytes as possible to the buffer. + * prvWriteBytestoBuffer() is called to actually send the bytes to the buffer's + * data storage area. + */ +static size_t prvWriteMessageToBuffer( StreamBuffer_t * const pxStreamBuffer, + const void * pvTxData, + size_t xDataLengthBytes, + size_t xSpace, + size_t xRequiredSpace ) PRIVILEGED_FUNCTION; + +/* + * Read xMaxCount bytes from the pxStreamBuffer message buffer and write them + * to pucData. + */ +static size_t prvReadBytesFromBuffer( StreamBuffer_t *pxStreamBuffer, + uint8_t *pucData, + size_t xMaxCount, + size_t xBytesAvailable ); PRIVILEGED_FUNCTION + +/* + * Called by both pxStreamBufferCreate() and pxStreamBufferCreateStatic() to + * initialise the members of the newly created stream buffer structure. + */ +static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, + uint8_t * const pucBuffer, + size_t xBufferSizeBytes, + size_t xTriggerLevelBytes, + BaseType_t xIsMessageBuffer ) PRIVILEGED_FUNCTION; + +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + + StreamBufferHandle_t xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer ) + { + uint8_t *pucAllocatedMemory; + + /* In case the stream buffer is going to be used as a message buffer + (that is, it will hold discrete messages with a little meta data that + says how big the next message is) check the buffer will be large enough + to hold at least one message. */ + configASSERT( xBufferSizeBytes > sbBYTES_TO_STORE_MESSAGE_LENGTH ); + configASSERT( xTriggerLevelBytes <= xBufferSizeBytes ); + + /* A trigger level of 0 would cause a waiting task to unblock even when + the buffer was empty. */ + if( xTriggerLevelBytes == ( size_t ) 0 ) + { + xTriggerLevelBytes = ( size_t ) 1; /*lint !e9044 Parameter modified to ensure it doesn't have a dangerous value. */ + } + + /* A stream buffer requires a StreamBuffer_t structure and a buffer. + Both are allocated in a single call to pvPortMalloc(). The + StreamBuffer_t structure is placed at the start of the allocated memory + and the buffer follows immediately after. The requested size is + incremented so the free space is returned as the user would expect - + this is a quirk of the implementation that means otherwise the free + space would be reported as one byte smaller than would be logically + expected. */ + xBufferSizeBytes++; + pucAllocatedMemory = ( uint8_t * ) pvPortMalloc( xBufferSizeBytes + sizeof( StreamBuffer_t ) ); /*lint !e9079 malloc() only returns void*. */ + + if( pucAllocatedMemory != NULL ) + { + prvInitialiseNewStreamBuffer( ( StreamBuffer_t * ) pucAllocatedMemory, /* Structure at the start of the allocated memory. */ /*lint !e9087 Safe cast as allocated memory is aligned. */ /*lint !e826 Area is not too small and alignment is guaranteed provided malloc() behaves as expected and returns aligned buffer. */ + pucAllocatedMemory + sizeof( StreamBuffer_t ), /* Storage area follows. */ /*lint !e9016 Indexing past structure valid for uint8_t pointer, also storage area has no alignment requirement. */ + xBufferSizeBytes, + xTriggerLevelBytes, + xIsMessageBuffer ); + + traceSTREAM_BUFFER_CREATE( ( ( StreamBuffer_t * ) pucAllocatedMemory ), xIsMessageBuffer ); + } + else + { + traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ); + } + + return ( StreamBufferHandle_t * ) pucAllocatedMemory; /*lint !e9087 !e826 Safe cast as allocated memory is aligned. */ + } + +#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ +/*-----------------------------------------------------------*/ + +#if( configSUPPORT_STATIC_ALLOCATION == 1 ) + + StreamBufferHandle_t xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, + size_t xTriggerLevelBytes, + BaseType_t xIsMessageBuffer, + uint8_t * const pucStreamBufferStorageArea, + StaticStreamBuffer_t * const pxStaticStreamBuffer ) + { + StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) pxStaticStreamBuffer; /*lint !e740 !e9087 Safe cast as StaticStreamBuffer_t is opaque Streambuffer_t. */ + StreamBufferHandle_t xReturn; + + configASSERT( pucStreamBufferStorageArea ); + configASSERT( pxStaticStreamBuffer ); + configASSERT( xTriggerLevelBytes <= xBufferSizeBytes ); + + /* A trigger level of 0 would cause a waiting task to unblock even when + the buffer was empty. */ + if( xTriggerLevelBytes == ( size_t ) 0 ) + { + xTriggerLevelBytes = ( size_t ) 1; /*lint !e9044 Function parameter deliberately modified to ensure it is in range. */ + } + + /* In case the stream buffer is going to be used as a message buffer + (that is, it will hold discrete messages with a little meta data that + says how big the next message is) check the buffer will be large enough + to hold at least one message. */ + configASSERT( xBufferSizeBytes > sbBYTES_TO_STORE_MESSAGE_LENGTH ); + + #if( configASSERT_DEFINED == 1 ) + { + /* Sanity check that the size of the structure used to declare a + variable of type StaticStreamBuffer_t equals the size of the real + message buffer structure. */ + volatile size_t xSize = sizeof( StaticStreamBuffer_t ); + configASSERT( xSize == sizeof( StreamBuffer_t ) ); + } + #endif /* configASSERT_DEFINED */ + + if( ( pucStreamBufferStorageArea != NULL ) && ( pxStaticStreamBuffer != NULL ) ) + { + prvInitialiseNewStreamBuffer( pxStreamBuffer, + pucStreamBufferStorageArea, + xBufferSizeBytes, + xTriggerLevelBytes, + xIsMessageBuffer ); + + /* Remember this was statically allocated in case it is ever deleted + again. */ + pxStreamBuffer->ucFlags |= sbFLAGS_IS_STATICALLY_ALLOCATED; + + traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ); + + xReturn = ( StreamBufferHandle_t ) pxStaticStreamBuffer; /*lint !e9087 Data hiding requires cast to opaque type. */ + } + else + { + xReturn = NULL; + traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ); + } + + return xReturn; + } + +#endif /* ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ +/*-----------------------------------------------------------*/ + +void vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) +{ +StreamBuffer_t * pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ + + configASSERT( pxStreamBuffer ); + + traceSTREAM_BUFFER_DELETE( xStreamBuffer ); + + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_STATICALLY_ALLOCATED ) == ( uint8_t ) pdFALSE ) + { + #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) + { + /* Both the structure and the buffer were allocated using a single call + to pvPortMalloc(), hence only one call to vPortFree() is required. */ + vPortFree( ( void * ) pxStreamBuffer ); /*lint !e9087 Standard free() semantics require void *, plus pxStreamBuffer was allocated by pvPortMalloc(). */ + } + #else + { + /* Should not be possible to get here, ucFlags must be corrupt. + Force an assert. */ + configASSERT( xStreamBuffer == ( StreamBufferHandle_t ) ~0 ); + } + #endif + } + else + { + /* The structure and buffer were not allocated dynamically and cannot be + freed - just scrub the structure so future use will assert. */ + memset( pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); + } +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +BaseType_t xReturn = pdFAIL, xIsMessageBuffer; + +#if( configUSE_TRACE_FACILITY == 1 ) + UBaseType_t uxStreamBufferNumber; +#endif + + configASSERT( pxStreamBuffer ); + + #if( configUSE_TRACE_FACILITY == 1 ) + { + /* Store the stream buffer number so it can be restored after the + reset. */ + uxStreamBufferNumber = pxStreamBuffer->uxStreamBufferNumber; + } + #endif + + /* Can only reset a message buffer if there are no tasks blocked on it. */ + if( pxStreamBuffer->xTaskWaitingToReceive == NULL ) + { + if( pxStreamBuffer->xTaskWaitingToSend == NULL ) + { + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xIsMessageBuffer = pdTRUE; + } + else + { + xIsMessageBuffer = pdFALSE; + } + + prvInitialiseNewStreamBuffer( pxStreamBuffer, + pxStreamBuffer->pucBuffer, + pxStreamBuffer->xLength, + pxStreamBuffer->xTriggerLevelBytes, + xIsMessageBuffer ); + xReturn = pdPASS; + + #if( configUSE_TRACE_FACILITY == 1 ) + { + pxStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; + } + #endif + + traceSTREAM_BUFFER_RESET( xStreamBuffer ); + } + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +BaseType_t xReturn; + + configASSERT( pxStreamBuffer ); + + /* It is not valid for the trigger level to be 0. */ + if( xTriggerLevel == ( size_t ) 0 ) + { + xTriggerLevel = ( size_t ) 1; /*lint !e9044 Parameter modified to ensure it doesn't have a dangerous value. */ + } + + /* The trigger level is the number of bytes that must be in the stream + buffer before a task that is waiting for data is unblocked. */ + if( xTriggerLevel <= pxStreamBuffer->xLength ) + { + pxStreamBuffer->xTriggerLevelBytes = xTriggerLevel; + xReturn = pdPASS; + } + else + { + xReturn = pdFALSE; + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) +{ +const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xSpace; + + configASSERT( pxStreamBuffer ); + + xSpace = pxStreamBuffer->xLength + pxStreamBuffer->xTail; + xSpace -= pxStreamBuffer->xHead; + xSpace -= ( size_t ) 1; + + if( xSpace >= pxStreamBuffer->xLength ) + { + xSpace -= pxStreamBuffer->xLength; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + return xSpace; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) +{ +const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xReturn; + + configASSERT( pxStreamBuffer ); + + xReturn = prvBytesInBuffer( pxStreamBuffer ); + return xReturn; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, + const void *pvTxData, + size_t xDataLengthBytes, + TickType_t xTicksToWait ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xReturn, xSpace = 0; +size_t xRequiredSpace = xDataLengthBytes; +TimeOut_t xTimeOut; + + configASSERT( pvTxData ); + configASSERT( pxStreamBuffer ); + + /* This send function is used to write to both message buffers and stream + buffers. If this is a message buffer then the space needed must be + increased by the amount of bytes needed to store the length of the + message. */ + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xRequiredSpace += sbBYTES_TO_STORE_MESSAGE_LENGTH; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + if( xTicksToWait != ( TickType_t ) 0 ) + { + vTaskSetTimeOutState( &xTimeOut ); + + do + { + /* Wait until the required number of bytes are free in the message + buffer. */ + taskENTER_CRITICAL(); + { + xSpace = xStreamBufferSpacesAvailable( pxStreamBuffer ); + + if( xSpace < xRequiredSpace ) + { + /* Clear notification state as going to wait for space. */ + ( void ) xTaskNotifyStateClear( NULL ); + + /* Should only be one writer. */ + configASSERT( pxStreamBuffer->xTaskWaitingToSend == NULL ); + pxStreamBuffer->xTaskWaitingToSend = xTaskGetCurrentTaskHandle(); + } + else + { + taskEXIT_CRITICAL(); + break; + } + } + taskEXIT_CRITICAL(); + + traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ); + ( void ) xTaskNotifyWait( ( uint32_t ) 0, UINT32_MAX, NULL, xTicksToWait ); + pxStreamBuffer->xTaskWaitingToSend = NULL; + + } while( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + if( xSpace == ( size_t ) 0 ) + { + xSpace = xStreamBufferSpacesAvailable( pxStreamBuffer ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + xReturn = prvWriteMessageToBuffer( pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace ); + + if( xReturn > ( size_t ) 0 ) + { + traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ); + + /* Was a task waiting for the data? */ + if( prvBytesInBuffer( pxStreamBuffer ) >= pxStreamBuffer->xTriggerLevelBytes ) + { + sbSEND_COMPLETED( pxStreamBuffer ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ); + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, + const void *pvTxData, + size_t xDataLengthBytes, + BaseType_t * const pxHigherPriorityTaskWoken ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xReturn, xSpace; +size_t xRequiredSpace = xDataLengthBytes; + + configASSERT( pvTxData ); + configASSERT( pxStreamBuffer ); + + /* This send function is used to write to both message buffers and stream + buffers. If this is a message buffer then the space needed must be + increased by the amount of bytes needed to store the length of the + message. */ + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xRequiredSpace += sbBYTES_TO_STORE_MESSAGE_LENGTH; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + xSpace = xStreamBufferSpacesAvailable( pxStreamBuffer ); + xReturn = prvWriteMessageToBuffer( pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace ); + + if( xReturn > ( size_t ) 0 ) + { + /* Was a task waiting for the data? */ + if( prvBytesInBuffer( pxStreamBuffer ) >= pxStreamBuffer->xTriggerLevelBytes ) + { + sbSEND_COMPLETE_FROM_ISR( pxStreamBuffer, pxHigherPriorityTaskWoken ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xReturn ); + + return xReturn; +} +/*-----------------------------------------------------------*/ + +static size_t prvWriteMessageToBuffer( StreamBuffer_t * const pxStreamBuffer, + const void * pvTxData, + size_t xDataLengthBytes, + size_t xSpace, + size_t xRequiredSpace ) +{ + BaseType_t xShouldWrite; + size_t xReturn; + + if( xSpace == ( size_t ) 0 ) + { + /* Doesn't matter if this is a stream buffer or a message buffer, there + is no space to write. */ + xShouldWrite = pdFALSE; + } + else if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) == ( uint8_t ) 0 ) + { + /* This is a stream buffer, as opposed to a message buffer, so writing a + stream of bytes rather than discrete messages. Write as many bytes as + possible. */ + xShouldWrite = pdTRUE; + xDataLengthBytes = configMIN( xDataLengthBytes, xSpace ); /*lint !e9044 Function parameter modified to ensure it is capped to available space. */ + } + else if( xSpace >= xRequiredSpace ) + { + /* This is a message buffer, as opposed to a stream buffer, and there + is enough space to write both the message length and the message itself + into the buffer. Start by writing the length of the data, the data + itself will be written later in this function. */ + xShouldWrite = pdTRUE; + ( void ) prvWriteBytesToBuffer( pxStreamBuffer, ( const uint8_t * ) &( xDataLengthBytes ), sbBYTES_TO_STORE_MESSAGE_LENGTH ); + } + else + { + /* There is space available, but not enough space. */ + xShouldWrite = pdFALSE; + } + + if( xShouldWrite != pdFALSE ) + { + /* Writes the data itself. */ + xReturn = prvWriteBytesToBuffer( pxStreamBuffer, ( const uint8_t * ) pvTxData, xDataLengthBytes ); /*lint !e9079 Storage buffer is implemented as uint8_t for ease of sizing, alighment and access. */ + } + else + { + xReturn = 0; + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + TickType_t xTicksToWait ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength; + + configASSERT( pvRxData ); + configASSERT( pxStreamBuffer ); + + /* This receive function is used by both message buffers, which store + discrete messages, and stream buffers, which store a continuous stream of + bytes. Discrete messages include an additional + sbBYTES_TO_STORE_MESSAGE_LENGTH bytes that hold the length of the + message. */ + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xBytesToStoreMessageLength = sbBYTES_TO_STORE_MESSAGE_LENGTH; + } + else + { + xBytesToStoreMessageLength = 0; + } + + if( xTicksToWait != ( TickType_t ) 0 ) + { + /* Checking if there is data and clearing the notification state must be + performed atomically. */ + taskENTER_CRITICAL(); + { + xBytesAvailable = prvBytesInBuffer( pxStreamBuffer ); + + /* If this function was invoked by a message buffer read then + xBytesToStoreMessageLength holds the number of bytes used to hold + the length of the next discrete message. If this function was + invoked by a stream buffer read then xBytesToStoreMessageLength will + be 0. */ + if( xBytesAvailable <= xBytesToStoreMessageLength ) + { + /* Clear notification state as going to wait for data. */ + ( void ) xTaskNotifyStateClear( NULL ); + + /* Should only be one reader. */ + configASSERT( pxStreamBuffer->xTaskWaitingToReceive == NULL ); + pxStreamBuffer->xTaskWaitingToReceive = xTaskGetCurrentTaskHandle(); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + taskEXIT_CRITICAL(); + + if( xBytesAvailable <= xBytesToStoreMessageLength ) + { + /* Wait for data to be available. */ + traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ); + ( void ) xTaskNotifyWait( ( uint32_t ) 0, UINT32_MAX, NULL, xTicksToWait ); + pxStreamBuffer->xTaskWaitingToReceive = NULL; + + /* Recheck the data available after blocking. */ + xBytesAvailable = prvBytesInBuffer( pxStreamBuffer ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + xBytesAvailable = prvBytesInBuffer( pxStreamBuffer ); + } + + /* Whether receiving a discrete message (where xBytesToStoreMessageLength + holds the number of bytes used to store the message length) or a stream of + bytes (where xBytesToStoreMessageLength is zero), the number of bytes + available must be greater than xBytesToStoreMessageLength to be able to + read bytes from the buffer. */ + if( xBytesAvailable > xBytesToStoreMessageLength ) + { + xReceivedLength = prvReadMessageFromBuffer( pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable, xBytesToStoreMessageLength ); + + /* Was a task waiting for space in the buffer? */ + if( xReceivedLength != ( size_t ) 0 ) + { + traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ); + sbRECEIVE_COMPLETED( pxStreamBuffer ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ); + mtCOVERAGE_TEST_MARKER(); + } + + return xReceivedLength; +} +/*-----------------------------------------------------------*/ + +size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + BaseType_t * const pxHigherPriorityTaskWoken ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength; + + configASSERT( pvRxData ); + configASSERT( pxStreamBuffer ); + + /* This receive function is used by both message buffers, which store + discrete messages, and stream buffers, which store a continuous stream of + bytes. Discrete messages include an additional + sbBYTES_TO_STORE_MESSAGE_LENGTH bytes that hold the length of the + message. */ + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xBytesToStoreMessageLength = sbBYTES_TO_STORE_MESSAGE_LENGTH; + } + else + { + xBytesToStoreMessageLength = 0; + } + + xBytesAvailable = prvBytesInBuffer( pxStreamBuffer ); + + /* Whether receiving a discrete message (where xBytesToStoreMessageLength + holds the number of bytes used to store the message length) or a stream of + bytes (where xBytesToStoreMessageLength is zero), the number of bytes + available must be greater than xBytesToStoreMessageLength to be able to + read bytes from the buffer. */ + if( xBytesAvailable > xBytesToStoreMessageLength ) + { + xReceivedLength = prvReadMessageFromBuffer( pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable, xBytesToStoreMessageLength ); + + /* Was a task waiting for space in the buffer? */ + if( xReceivedLength != ( size_t ) 0 ) + { + sbRECEIVE_COMPLETED_FROM_ISR( pxStreamBuffer, pxHigherPriorityTaskWoken ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ); + + return xReceivedLength; +} +/*-----------------------------------------------------------*/ + +static size_t prvReadMessageFromBuffer( StreamBuffer_t *pxStreamBuffer, + void *pvRxData, + size_t xBufferLengthBytes, + size_t xBytesAvailable, + size_t xBytesToStoreMessageLength ) +{ +size_t xOriginalTail, xReceivedLength, xNextMessageLength; + + if( xBytesToStoreMessageLength != ( size_t ) 0 ) + { + /* A discrete message is being received. First receive the length + of the message. A copy of the tail is stored so the buffer can be + returned to its prior state if the length of the message is too + large for the provided buffer. */ + xOriginalTail = pxStreamBuffer->xTail; + ( void ) prvReadBytesFromBuffer( pxStreamBuffer, ( uint8_t * ) &xNextMessageLength, xBytesToStoreMessageLength, xBytesAvailable ); + + /* Reduce the number of bytes available by the number of bytes just + read out. */ + xBytesAvailable -= xBytesToStoreMessageLength; + + /* Check there is enough space in the buffer provided by the + user. */ + if( xNextMessageLength > xBufferLengthBytes ) + { + /* The user has provided insufficient space to read the message + so return the buffer to its previous state (so the length of + the message is in the buffer again). */ + pxStreamBuffer->xTail = xOriginalTail; + xNextMessageLength = 0; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + } + else + { + /* A stream of bytes is being received (as opposed to a discrete + message), so read as many bytes as possible. */ + xNextMessageLength = xBufferLengthBytes; + } + + /* Read the actual data. */ + xReceivedLength = prvReadBytesFromBuffer( pxStreamBuffer, ( uint8_t * ) pvRxData, xNextMessageLength, xBytesAvailable ); /*lint !e9079 Data storage area is implemented as uint8_t array for ease of sizing, indexing and alignment. */ + + return xReceivedLength; +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) +{ +const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +BaseType_t xReturn; +size_t xTail; + + configASSERT( pxStreamBuffer ); + + /* True if no bytes are available. */ + xTail = pxStreamBuffer->xTail; + if( pxStreamBuffer->xHead == xTail ) + { + xReturn = pdTRUE; + } + else + { + xReturn = pdFALSE; + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) +{ +BaseType_t xReturn; +size_t xBytesToStoreMessageLength; +const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ + + configASSERT( pxStreamBuffer ); + + /* This generic version of the receive function is used by both message + buffers, which store discrete messages, and stream buffers, which store a + continuous stream of bytes. Discrete messages include an additional + sbBYTES_TO_STORE_MESSAGE_LENGTH bytes that hold the length of the message. */ + if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + { + xBytesToStoreMessageLength = sbBYTES_TO_STORE_MESSAGE_LENGTH; + } + else + { + xBytesToStoreMessageLength = 0; + } + + /* True if the available space equals zero. */ + if( xStreamBufferSpacesAvailable( xStreamBuffer ) <= xBytesToStoreMessageLength ) + { + xReturn = pdTRUE; + } + else + { + xReturn = pdFALSE; + } + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; + + configASSERT( pxStreamBuffer ); + + uxSavedInterruptStatus = ( UBaseType_t ) portSET_INTERRUPT_MASK_FROM_ISR(); + { + if( ( pxStreamBuffer )->xTaskWaitingToReceive != NULL ) + { + ( void ) xTaskNotifyFromISR( ( pxStreamBuffer )->xTaskWaitingToReceive, + ( uint32_t ) 0, + eNoAction, + pxHigherPriorityTaskWoken ); + ( pxStreamBuffer )->xTaskWaitingToReceive = NULL; + xReturn = pdTRUE; + } + else + { + xReturn = pdFALSE; + } + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return xReturn; +} +/*-----------------------------------------------------------*/ + +BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) +{ +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +BaseType_t xReturn; +UBaseType_t uxSavedInterruptStatus; + + configASSERT( pxStreamBuffer ); + + uxSavedInterruptStatus = ( UBaseType_t ) portSET_INTERRUPT_MASK_FROM_ISR(); + { + if( ( pxStreamBuffer )->xTaskWaitingToSend != NULL ) + { + ( void ) xTaskNotifyFromISR( ( pxStreamBuffer )->xTaskWaitingToSend, + ( uint32_t ) 0, + eNoAction, + pxHigherPriorityTaskWoken ); + ( pxStreamBuffer )->xTaskWaitingToSend = NULL; + xReturn = pdTRUE; + } + else + { + xReturn = pdFALSE; + } + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return xReturn; +} +/*-----------------------------------------------------------*/ + +static size_t prvWriteBytesToBuffer( StreamBuffer_t * const pxStreamBuffer, const uint8_t *pucData, size_t xCount ) +{ +size_t xNextHead, xFirstLength; + + configASSERT( xCount > ( size_t ) 0 ); + + xNextHead = pxStreamBuffer->xHead; + + /* Calculate the number of bytes that can be added in the first write - + which may be less than the total number of bytes that need to be added if + the buffer will wrap back to the beginning. */ + xFirstLength = configMIN( pxStreamBuffer->xLength - xNextHead, xCount ); + + /* Write as many bytes as can be written in the first write. */ + configASSERT( ( xNextHead + xFirstLength ) <= pxStreamBuffer->xLength ); + memcpy( ( void* ) ( &( pxStreamBuffer->pucBuffer[ xNextHead ] ) ), ( const void * ) pucData, xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + + /* If the number of bytes written was less than the number that could be + written in the first write... */ + if( xCount > xFirstLength ) + { + /* ...then write the remaining bytes to the start of the buffer. */ + configASSERT( ( xCount - xFirstLength ) <= pxStreamBuffer->xLength ); + memcpy( ( void * ) pxStreamBuffer->pucBuffer, ( const void * ) &( pucData[ xFirstLength ] ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + xNextHead += xCount; + if( xNextHead >= pxStreamBuffer->xLength ) + { + xNextHead -= pxStreamBuffer->xLength; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + pxStreamBuffer->xHead = xNextHead; + + return xCount; +} +/*-----------------------------------------------------------*/ + +static size_t prvReadBytesFromBuffer( StreamBuffer_t *pxStreamBuffer, uint8_t *pucData, size_t xMaxCount, size_t xBytesAvailable ) +{ +size_t xCount, xFirstLength, xNextTail; + + /* Use the minimum of the wanted bytes and the available bytes. */ + xCount = configMIN( xBytesAvailable, xMaxCount ); + + if( xCount > ( size_t ) 0 ) + { + xNextTail = pxStreamBuffer->xTail; + + /* Calculate the number of bytes that can be read - which may be + less than the number wanted if the data wraps around to the start of + the buffer. */ + xFirstLength = configMIN( pxStreamBuffer->xLength - xNextTail, xCount ); + + /* Obtain the number of bytes it is possible to obtain in the first + read. Asserts check bounds of read and write. */ + configASSERT( xFirstLength <= xMaxCount ); + configASSERT( ( xNextTail + xFirstLength ) <= pxStreamBuffer->xLength ); + memcpy( ( void * ) pucData, ( const void * ) &( pxStreamBuffer->pucBuffer[ xNextTail ] ), xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + + /* If the total number of wanted bytes is greater than the number + that could be read in the first read... */ + if( xCount > xFirstLength ) + { + /*...then read the remaining bytes from the start of the buffer. */ + configASSERT( xCount <= xMaxCount ); + memcpy( ( void * ) &( pucData[ xFirstLength ] ), ( void * ) ( pxStreamBuffer->pucBuffer ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + /* Move the tail pointer to effectively remove the data read from + the buffer. */ + xNextTail += xCount; + + if( xNextTail >= pxStreamBuffer->xLength ) + { + xNextTail -= pxStreamBuffer->xLength; + } + + pxStreamBuffer->xTail = xNextTail; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + return xCount; +} +/*-----------------------------------------------------------*/ + +static size_t prvBytesInBuffer( const StreamBuffer_t * const pxStreamBuffer ) +{ +/* Returns the distance between xTail and xHead. */ +size_t xCount; + + xCount = pxStreamBuffer->xLength + pxStreamBuffer->xHead; + xCount -= pxStreamBuffer->xTail; + if ( xCount >= pxStreamBuffer->xLength ) + { + xCount -= pxStreamBuffer->xLength; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + + return xCount; +} +/*-----------------------------------------------------------*/ + +static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, + uint8_t * const pucBuffer, + size_t xBufferSizeBytes, + size_t xTriggerLevelBytes, + BaseType_t xIsMessageBuffer ) +{ + /* Assert here is deliberately writing to the entire buffer to ensure it can + be written to without generating exceptions, and is setting the buffer to a + known value to assist in development/debugging. */ + #if( configASSERT_DEFINED == 1 ) + { + /* The value written just has to be identifiable when looking at the + memory. Don't use 0xA5 as that is the stack fill value and could + result in confusion as to what is actually being observed. */ + const BaseType_t xWriteValue = 0x55; + configASSERT( memset( pucBuffer, ( int ) xWriteValue, xBufferSizeBytes ) == pucBuffer ); + } + #endif + + memset( ( void * ) pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); /*lint !e9087 memset() requires void *. */ + pxStreamBuffer->pucBuffer = pucBuffer; + pxStreamBuffer->xLength = xBufferSizeBytes; + pxStreamBuffer->xTriggerLevelBytes = xTriggerLevelBytes; + + if( xIsMessageBuffer != pdFALSE ) + { + pxStreamBuffer->ucFlags |= sbFLAGS_IS_MESSAGE_BUFFER; + } +} + +#if ( configUSE_TRACE_FACILITY == 1 ) + + UBaseType_t uxStreamBufferGetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer ) + { + return ( ( StreamBuffer_t * ) xStreamBuffer )->uxStreamBufferNumber; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TRACE_FACILITY == 1 ) + + void vStreamBufferSetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer, UBaseType_t uxStreamBufferNumber ) + { + ( ( StreamBuffer_t * ) xStreamBuffer )->uxStreamBufferNumber = uxStreamBufferNumber; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TRACE_FACILITY == 1 ) + + uint8_t ucStreamBufferGetStreamBufferType( StreamBufferHandle_t xStreamBuffer ) + { + return ( ( StreamBuffer_t * )xStreamBuffer )->ucFlags | sbFLAGS_IS_MESSAGE_BUFFER; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c index dd6a69d..f191614 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /* Standard includes. */ #include @@ -80,7 +39,7 @@ task.h is included from an application file. */ #include "FreeRTOS.h" #include "task.h" #include "timers.h" -#include "StackMacros.h" +#include "stack_macros.h" /* Lint e961 and e750 are suppressed as a MISRA exception justified because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the @@ -719,7 +678,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; #endif /* ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ /*-----------------------------------------------------------*/ -#if( ( portUSING_MPU_WRAPPERS == 1 ) && ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) ) +#if( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) { @@ -740,10 +699,14 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; /* Store the stack location in the TCB. */ pxNewTCB->pxStack = pxTaskDefinition->puxStackBuffer; - /* Tasks can be created statically or dynamically, so note - this task had a statically allocated stack in case it is - later deleted. The TCB was allocated dynamically. */ - pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_ONLY; + #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + { + /* Tasks can be created statically or dynamically, so note + this task had a statically allocated stack in case it is + later deleted. The TCB was allocated dynamically. */ + pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_ONLY; + } + #endif prvInitialiseNewTask( pxTaskDefinition->pvTaskCode, pxTaskDefinition->pcName, @@ -3193,6 +3156,7 @@ BaseType_t xReturn; } else { + *pxTicksToWait = 0; xReturn = pdTRUE; } } @@ -3600,7 +3564,7 @@ static void prvCheckTasksWaitingTermination( void ) } else { - pxTaskStatus->eCurrentState = eTaskGetState( xTask ); + pxTaskStatus->eCurrentState = eTaskGetState( pxTCB ); } /* Obtaining the stack space takes some time, so the xGetFreeStackSpace diff --git a/FreeRTOS/Source/timers.c b/FreeRTOS/Source/timers.c index 44d63aa..b006385 100644 --- a/FreeRTOS/Source/timers.c +++ b/FreeRTOS/Source/timers.c @@ -1,71 +1,30 @@ /* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ + * FreeRTOS Kernel V10.0.0 + * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. If you wish to use our Amazon + * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * http://www.FreeRTOS.org + * http://aws.amazon.com/freertos + * + * 1 tab == 4 spaces! + */ /* Standard includes. */ #include @@ -1089,6 +1048,26 @@ Timer_t * const pxTimer = ( Timer_t * ) xTimer; #endif /* INCLUDE_xTimerPendFunctionCall */ /*-----------------------------------------------------------*/ +#if ( configUSE_TRACE_FACILITY == 1 ) + + UBaseType_t uxTimerGetTimerNumber( TimerHandle_t xTimer ) + { + return ( ( Timer_t * ) xTimer )->uxTimerNumber; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TRACE_FACILITY == 1 ) + + void vTimerSetTimerNumber( TimerHandle_t xTimer, UBaseType_t uxTimerNumber ) + { + ( ( Timer_t * ) xTimer )->uxTimerNumber = uxTimerNumber; + } + +#endif /* configUSE_TRACE_FACILITY */ +/*-----------------------------------------------------------*/ + /* This entire source file will be skipped if the application is not configured to include software timer functionality. If you want to include software timer functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ diff --git a/FreeRTOS/readme.txt b/FreeRTOS/readme.txt deleted file mode 100644 index 7fa63a7..0000000 --- a/FreeRTOS/readme.txt +++ /dev/null @@ -1,21 +0,0 @@ -Directories: - -+ The FreeRTOS/Source directory contains the FreeRTOS source code, and contains - its own readme file. - -+ The FreeRTOS/Demo directory contains a demo application for every official -FreeRTOS port, and contains its own readme file. - -+ See http://www.freertos.org/a00017.html for full details of the directory - structure and information on locating the files you require. - -The easiest way to use FreeRTOS is to start with one of the pre-configured demo -application projects (found in the FreeRTOS/Demo directory). That way you will -have the correct FreeRTOS source files included, and the correct include paths -configured. Once a demo application is building and executing you can remove -the demo application file, and start to add in your own application source -files. - -See also - -http://www.freertos.org/FreeRTOS-quick-start-guide.html -http://www.freertos.org/FAQHelp.html From 69220ee8667532962f0470116f49f8340e2da3e6 Mon Sep 17 00:00:00 2001 From: Ivan Mikhailov Date: Thu, 7 Dec 2017 20:48:38 +0100 Subject: [PATCH 240/349] Allow overrides of sntp.h Changed quote marks with triangle brackets for sntp.h to allow user creating a custom sntp.h --- extras/sntp/sntp.c | 2 +- extras/sntp/sntp_fun.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/sntp/sntp.c b/extras/sntp/sntp.c index c034df2..274c7cd 100644 --- a/extras/sntp/sntp.c +++ b/extras/sntp/sntp.c @@ -36,7 +36,7 @@ #include "lwip/opt.h" -#include "sntp.h" +#include #include "lwip/timeouts.h" #include "lwip/udp.h" diff --git a/extras/sntp/sntp_fun.c b/extras/sntp/sntp_fun.c index 96e8ffc..e007ff7 100644 --- a/extras/sntp/sntp_fun.c +++ b/extras/sntp/sntp_fun.c @@ -11,7 +11,7 @@ #include #include #include -#include "sntp.h" +#include #define TIMER_COUNT RTC.COUNTER From c2eed89318d84685378705abd6b84e51afe41ec2 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 9 Dec 2017 23:41:16 +1100 Subject: [PATCH 241/349] esphttpd: increase stack size for task wsbcast Seeing stack overflows on this one. --- examples/esphttpd/user_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/esphttpd/user_main.c b/examples/esphttpd/user_main.c index 94e4fd4..a532fb6 100644 --- a/examples/esphttpd/user_main.c +++ b/examples/esphttpd/user_main.c @@ -204,7 +204,7 @@ void user_init(void) { espFsInit((void*)(_binary_build_web_espfs_bin_start)); httpdInit(builtInUrls, 80); - xTaskCreate(websocketBcast, "wsbcast", 300, NULL, 3, NULL); + xTaskCreate(websocketBcast, "wsbcast", 384, NULL, 3, NULL); printf("\nReady\n"); } From d41c0f1d72b658f4d844258fad5272f404ca9cf2 Mon Sep 17 00:00:00 2001 From: Sakari Kapanen Date: Sat, 9 Dec 2017 19:27:39 +0200 Subject: [PATCH 242/349] I2C optimization (#503) Fix of #480 --- extras/i2c/i2c.c | 165 ++++++++++++++++++++++++++++++++--------------- extras/i2c/i2c.h | 25 +++++-- 2 files changed, 134 insertions(+), 56 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index 4cdd02f..f0b8972 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -25,7 +25,6 @@ #include "i2c.h" #include -#include // sdk_os_delay_us #include #include #include @@ -38,25 +37,42 @@ #define debug(fmt, ...) #endif -//#define CLK_STRETCH (10) - -// Following array contain delay values for different frequencies -// Warning: 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz +// The following array contains delay values for different frequencies. +// These were tuned to match the specified SCL frequency on average. +// The tuning was done using GCC 5.2.0 with -O2 optimization. const static uint8_t i2c_freq_array[][2] = { - [I2C_FREQ_80K] = {255, 35}, - [I2C_FREQ_100K] = {100, 20}, - [I2C_FREQ_400K] = {10, 1}, - [I2C_FREQ_500K] = {6, 1} +#if I2C_USE_GPIO16 == 1 + [I2C_FREQ_80K] = {230, 107}, + [I2C_FREQ_100K] = {180, 82}, + [I2C_FREQ_400K] = {30, 7}, + [I2C_FREQ_500K] = {20, 1}, + [I2C_FREQ_600K] = {13, 0}, + [I2C_FREQ_800K] = {5, 0}, + [I2C_FREQ_1000K] = {1, 0} +#else + [I2C_FREQ_80K] = {235, 112}, + [I2C_FREQ_100K] = {185, 88}, + [I2C_FREQ_400K] = {36, 13}, + [I2C_FREQ_500K] = {25, 8}, + [I2C_FREQ_600K] = {20, 5}, + [I2C_FREQ_800K] = {11, 1}, + [I2C_FREQ_1000K] = {5, 0}, + [I2C_FREQ_1300K] = {1, 0} +#endif }; -static uint8_t freq; // Store CPU frequency for optimisation speed in delay function (Warning: Don't change CPU frequency during a transaction) - // Bus settings typedef struct i2c_bus_description { - uint8_t g_scl_pin; // SCL pin - uint8_t g_sda_pin; // SDA pin +#if I2C_USE_GPIO16 == 1 + uint8_t g_scl_pin; // SCL pin + uint8_t g_sda_pin; // SDA pin +#else + uint32_t g_scl_mask; // SCL pin mask + uint32_t g_sda_mask; // SDA pin mask +#endif i2c_freq_t frequency; // Frequency + uint8_t delay; bool started; bool flag; bool force; @@ -77,28 +93,47 @@ int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) return -EINVAL; } +#if I2C_USE_GPIO16 == 1 + const int I2C_MAX_PIN = 16; +#else + const int I2C_MAX_PIN = 15; +#endif + + if (scl_pin > I2C_MAX_PIN || sda_pin > I2C_MAX_PIN) + { + debug("Invalid GPIO number. All pins must be less than or equal to %d", + I2C_MAX_PIN); + return -EINVAL; + } + i2c_bus[bus].started = false; i2c_bus[bus].flag = false; +#if I2C_USE_GPIO16 == 1 i2c_bus[bus].g_scl_pin = scl_pin; i2c_bus[bus].g_sda_pin = sda_pin; +#else + i2c_bus[bus].g_scl_mask = BIT(scl_pin); + i2c_bus[bus].g_sda_mask = BIT(sda_pin); +#endif + i2c_bus[bus].frequency = freq; i2c_bus[bus].clk_stretch = I2C_DEFAULT_CLK_STRETCH; // Just to prevent these pins floating too much if not connected. - gpio_set_pullup(i2c_bus[bus].g_scl_pin, 1, 1); - gpio_set_pullup(i2c_bus[bus].g_sda_pin, 1, 1); + gpio_set_pullup(scl_pin, 1, 1); + gpio_set_pullup(sda_pin, 1, 1); - gpio_enable(i2c_bus[bus].g_scl_pin, GPIO_OUT_OPEN_DRAIN); - gpio_enable(i2c_bus[bus].g_sda_pin, GPIO_OUT_OPEN_DRAIN); + gpio_enable(scl_pin, GPIO_OUT_OPEN_DRAIN); + gpio_enable(sda_pin, GPIO_OUT_OPEN_DRAIN); // I2C bus idle state. - gpio_write(i2c_bus[bus].g_scl_pin, 1); - gpio_write(i2c_bus[bus].g_sda_pin, 1); + gpio_write(scl_pin, 1); + gpio_write(sda_pin, 1); // Prevent user, if frequency is high if (sdk_system_get_cpu_freq() == SYS_CPU_80MHZ) - if (i2c_freq_array[i2c_bus[bus].frequency][1] == 1) { - debug("Max frequency is 320Khz at 80MHz"); + if (i2c_freq_array[i2c_bus[bus].frequency][1] == 0) { + debug("Frequency not supported"); return -ENOTSUP; } @@ -117,70 +152,90 @@ void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch) static inline void i2c_delay(uint8_t bus) { - uint32_t delay; - if (freq == SYS_CPU_160MHZ) - { - delay = i2c_freq_array[i2c_bus[bus].frequency][0]; - __asm volatile ( - "1: addi %0, %0, -1" "\n" - "bnez %0, 1b" "\n" - :: "a" (delay)); - } - else - { - delay = i2c_freq_array[i2c_bus[bus].frequency][1]; - __asm volatile ( - "1: addi %0, %0, -1" "\n" - "bnez %0, 1b" "\n" - :: "a" (delay)); - } + uint32_t delay = i2c_bus[bus].delay; + __asm volatile ( + "1: addi %0, %0, -1" "\n" + "bnez %0, 1b" "\n" + : "=a" (delay) : "0" (delay)); } -// Set SCL as input, allowing it to float high, and return current -// level of line, 0 or 1 static inline bool read_scl(uint8_t bus) { - gpio_write(i2c_bus[bus].g_scl_pin, 1); - return gpio_read(i2c_bus[bus].g_scl_pin); // Clock high, valid ACK +#if I2C_USE_GPIO16 == 1 + return gpio_read(i2c_bus[bus].g_scl_pin); +#else + return GPIO.IN & i2c_bus[bus].g_scl_mask; +#endif } -// Set SDA as input, allowing it to float high, and return current -// level of line, 0 or 1 static inline bool read_sda(uint8_t bus) { - gpio_write(i2c_bus[bus].g_sda_pin, 1); - // TODO: Without this delay we get arbitration lost in i2c_stop - i2c_delay(bus); - return gpio_read(i2c_bus[bus].g_sda_pin); // Clock high, valid ACK +#if I2C_USE_GPIO16 == 1 + return gpio_read(i2c_bus[bus].g_sda_pin); +#else + return GPIO.IN & i2c_bus[bus].g_sda_mask; +#endif } // Actively drive SCL signal low static inline void clear_scl(uint8_t bus) { +#if I2C_USE_GPIO16 == 1 gpio_write(i2c_bus[bus].g_scl_pin, 0); +#else + GPIO.OUT_CLEAR = i2c_bus[bus].g_scl_mask; +#endif } // Actively drive SDA signal low static inline void clear_sda(uint8_t bus) { +#if I2C_USE_GPIO16 == 1 gpio_write(i2c_bus[bus].g_sda_pin, 0); +#else + GPIO.OUT_CLEAR = i2c_bus[bus].g_sda_mask; +#endif +} + +static inline void set_scl(uint8_t bus) +{ +#if I2C_USE_GPIO16 == 1 + gpio_write(i2c_bus[bus].g_scl_pin, 1); +#else + GPIO.OUT_SET = i2c_bus[bus].g_scl_mask; +#endif +} + +static inline void set_sda(uint8_t bus) +{ +#if I2C_USE_GPIO16 == 1 + gpio_write(i2c_bus[bus].g_sda_pin, 1); +#else + GPIO.OUT_SET = i2c_bus[bus].g_sda_mask; +#endif } // Output start condition void i2c_start(uint8_t bus) { - freq = sdk_system_get_cpu_freq(); + if (sdk_system_get_cpu_freq() == SYS_CPU_160MHZ) + i2c_bus[bus].delay = i2c_freq_array[i2c_bus[bus].frequency][0]; + else + i2c_bus[bus].delay = i2c_freq_array[i2c_bus[bus].frequency][1]; + if (i2c_bus[bus].started) { // if started, do a restart cond // Set SDA to 1 - (void) read_sda(bus); + set_sda(bus); i2c_delay(bus); uint32_t clk_stretch = i2c_bus[bus].clk_stretch; + set_scl(bus); while (read_scl(bus) == 0 && clk_stretch--) ; // Repeated start setup time, minimum 4.7us i2c_delay(bus); } i2c_bus[bus].started = true; + set_sda(bus); if (read_sda(bus) == 0) { debug("arbitration lost in i2c_start from bus %u", bus); } @@ -198,11 +253,15 @@ bool i2c_stop(uint8_t bus) clear_sda(bus); i2c_delay(bus); // Clock stretching + set_scl(bus); while (read_scl(bus) == 0 && clk_stretch--) ; // Stop bit setup time, minimum 4us i2c_delay(bus); // SCL is high, set SDA from 0 to 1 + set_sda(bus); + // additional delay before testing SDA value to avoid wrong state + i2c_delay(bus); if (read_sda(bus) == 0) { debug("arbitration lost in i2c_stop from bus %u", bus); } @@ -220,12 +279,13 @@ static void i2c_write_bit(uint8_t bus, bool bit) { uint32_t clk_stretch = i2c_bus[bus].clk_stretch; if (bit) { - (void) read_sda(bus); + set_sda(bus); } else { clear_sda(bus); } i2c_delay(bus); // Clock stretching + set_scl(bus); while (read_scl(bus) == 0 && clk_stretch--) ; // SCL is high, now data is valid @@ -243,8 +303,9 @@ static bool i2c_read_bit(uint8_t bus) uint32_t clk_stretch = i2c_bus[bus].clk_stretch; bool bit; // Let the slave drive data - (void) read_sda(bus); + set_sda(bus); i2c_delay(bus); + set_scl(bus); // Clock stretching while (read_scl(bus) == 0 && clk_stretch--) ; diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index 26e3926..c9c4085 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -44,14 +44,31 @@ extern "C" { #define I2C_MAX_BUS 2 #endif +/* Set this to 1 if you intend to use GPIO 16 for I2C. It is not recommended + * and will result in degradation of performance and timing accuracy. + */ +#ifndef I2C_USE_GPIO16 + #define I2C_USE_GPIO16 0 +#endif + #define I2C_DEFAULT_CLK_STRETCH (10) +/* SCL speed settings. 160 MHz sysclk frequency will result in improved + * timing accuracy. Greater bitrates will have poorer accuracy. 1000K is the + * maximum SCL speed at 80 MHz sysclk. + */ typedef enum { - I2C_FREQ_80K = 0,//!< I2C_FREQ_80K - I2C_FREQ_100K, //!< I2C_FREQ_100K - I2C_FREQ_400K, //!< I2C_FREQ_400K - I2C_FREQ_500K, //!< I2C_FREQ_500K + I2C_FREQ_80K = 0, + I2C_FREQ_100K, + I2C_FREQ_400K, + I2C_FREQ_500K, + I2C_FREQ_600K, + I2C_FREQ_800K, + I2C_FREQ_1000K, +#if I2C_USE_GPIO16 == 0 + I2C_FREQ_1300K +#endif } i2c_freq_t; /** From c4dcfb1cac0302011f0ec1c8a094a0fea31bd19e Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 8 Dec 2017 12:30:58 +1100 Subject: [PATCH 243/349] lwip: update * Update to current master branch * Quietens unused variable warnings building mDNS. --- lwip/lwip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/lwip b/lwip/lwip index f372198..4e87c66 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit f372198834caf642c4b2d29d98fc1e120e3ce2b2 +Subproject commit 4e87c66bff75fbd02be86522de0f0bcf40a11f34 From 44d44a2cc50d65d62da4ea1e8ec5e26eac58ef80 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 8 Dec 2017 12:04:03 +1100 Subject: [PATCH 244/349] wificfg: IPv6 and mDNS support * When IPv6 is enabled the http server and the captive portal dns now also accept IPv6 connections. The interface and peer IPv6 address are now also reported. * The http server no longer redirects .local to an IP address for better integration with mDNS. * Add mDNS support, for the extras/mdnsresponder or the LWIP mDNS responder, and enable the LWIP mDNS responder for examples/wificfg. --- examples/wificfg/Makefile | 7 ++ examples/wificfg/wificfg.c | 36 ++++-- extras/wificfg/wificfg.c | 223 ++++++++++++++++++++++++++++++++----- 3 files changed, 226 insertions(+), 40 deletions(-) diff --git a/examples/wificfg/Makefile b/examples/wificfg/Makefile index 2cbb996..586b087 100644 --- a/examples/wificfg/Makefile +++ b/examples/wificfg/Makefile @@ -2,4 +2,11 @@ PROGRAM=wificfg EXTRA_COMPONENTS=extras/dhcpserver extras/wificfg +# For the mDNS responder included under extras: +# EXTRA_COMPONENTS+=extras/mdnsresponder +# EXTRA_CFLAGS=-DEXTRAS_MDNS_RESPONDER + +# For the mDNS responder included with lwip: +EXTRA_CFLAGS=-DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 -DLWIP_NETIF_EXT_STATUS_CALLBACK=1 + include ../../common.mk diff --git a/examples/wificfg/wificfg.c b/examples/wificfg/wificfg.c index a90a9da..33e70c0 100644 --- a/examples/wificfg/wificfg.c +++ b/examples/wificfg/wificfg.c @@ -56,20 +56,32 @@ static int handle_index(int s, wificfg_method method, if (wificfg_write_html_title(s, buf, len, "Home") < 0) return -1; if (wificfg_write_string_chunk(s, http_index_content[1], buf, len) < 0) return -1; - socklen_t addr_len; - struct sockaddr addr; - addr_len = sizeof(addr); - getpeername(s, (struct sockaddr*)&addr, &addr_len); - if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; - if (addr.sa_family == AF_INET) { - struct sockaddr_in *sa = (struct sockaddr_in *)&addr; - if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; - snprintf(buf, len, "
        " IPSTR " : %d
        ", - IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); - if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + + struct sockaddr_storage addr; + socklen_t addr_len = sizeof(addr); + if (getpeername(s, (struct sockaddr *)&addr, &addr_len) == 0) { + if (((struct sockaddr *)&addr)->sa_family == AF_INET) { + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR ", port %u
        ", + IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + +#if LWIP_IPV6 + if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { + struct sockaddr_in6 *sa = (struct sockaddr_in6 *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + if (inet6_ntoa_r(sa->sin6_addr, buf, len)) { + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + snprintf(buf, len, ", port %u
        ", ntohs(sa->sin6_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } +#endif } - + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; if (wificfg_write_string_chunk(s, http_index_content[2], buf, len) < 0) return -1; if (wificfg_write_chunk_end(s) < 0) return -1; diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 5c7a089..22f796e 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -45,6 +45,15 @@ #include "wificfg.h" #include "sysparam.h" +#if EXTRAS_MDNS_RESPONDER +#include +#endif + +#if LWIP_MDNS_RESPONDER +#include +#endif + + char *wificfg_default_ssid = "EOR_%02X%02X%02X"; char *wificfg_default_password = "esp-open-rtos"; char *wificfg_default_hostname = "eor-%02x%02x%02x"; @@ -529,14 +538,34 @@ static int handle_ipaddr_redirect(int s, char *buf, size_t len) { if (wificfg_write_string(s, "HTTP/1.1 302 \r\nLocation: http://") < 0) return -1; - struct sockaddr addr; + struct sockaddr_storage addr; socklen_t addr_len = sizeof(addr); - getsockname(s, &addr, &addr_len); - struct sockaddr_in *sa = (struct sockaddr_in *)&addr; - snprintf(buf, len, "" IPSTR "/\r\n", IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr)); - if (wificfg_write_string(s, buf) < 0) return -1;; + if (getsockname(s, (struct sockaddr *)&addr, &addr_len) == 0) { + if (((struct sockaddr *)&addr)->sa_family == AF_INET) { + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + snprintf(buf, len, IPSTR, IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr)); + if (wificfg_write_string(s, buf) < 0) return -1; + } +#if LWIP_IPV6 + if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { + struct sockaddr_in6 *sa = (struct sockaddr_in6 *)&addr; + const ip6_addr_t *addr6 = (const ip6_addr_t*)&(sa->sin6_addr); + if (ip6_addr_isipv4mappedipv6(addr6)) { + snprintf(buf, len, IPSTR, IP2STR((ip4_addr_t *)&addr6->addr[3])); + if (wificfg_write_string(s, buf) < 0) return -1; + } else { + if (wificfg_write_string(s, "[") < 0) return -1; + if (ip6addr_ntoa_r(addr6, buf, len)) { + if (wificfg_write_string(s, buf) < 0) return -1; + } + if (wificfg_write_string(s, "]") < 0) return -1; + } + } +#endif + } + /* Always close here - expect a new connection. */ - return wificfg_write_string(s, "Content-Length: 0\r\n" + return wificfg_write_string(s, "\r\nContent-Length: 0\r\n" "Connection: close\r\n" "\r\n"); } @@ -692,6 +721,20 @@ static int handle_wificfg_index(int s, wificfg_method method, snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.gw)); if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; } +#if LWIP_IPV6 + struct netif *netif = sdk_system_get_netif(STATION_IF); + if (netif) { + for (int i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, i))) { + if (wificfg_write_string_chunk(s, "
        Station IPv6
        ", buf, len) < 0) return -1; + const ip6_addr_t *addr6 = netif_ip6_addr(netif, i); + ip6addr_ntoa_r(addr6, buf, len); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; + } + } + } +#endif } if (opmode == SOFTAP_MODE || opmode == STATIONAP_MODE) { @@ -713,18 +756,51 @@ static int handle_wificfg_index(int s, wificfg_method method, snprintf(buf, len, "
        " IPSTR "
        ", IP2STR(&info.gw)); if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; } + +#if LWIP_IPV6 + struct netif *netif = sdk_system_get_netif(SOFTAP_IF); + if (netif) { + for (int i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, i))) { + if (wificfg_write_string_chunk(s, "
        AP IPv6
        ", buf, len) < 0) return -1; + const ip6_addr_t *addr6 = netif_ip6_addr(netif, i); + ip6addr_ntoa_r(addr6, buf, len); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, "
        ", buf, len) < 0) return -1; + } + } + } +#endif } - struct sockaddr addr; + struct sockaddr_storage addr; socklen_t addr_len = sizeof(addr); - getpeername(s, (struct sockaddr*)&addr, &addr_len); + if (getpeername(s, (struct sockaddr *)&addr, &addr_len) == 0) { + if (((struct sockaddr *)&addr)->sa_family == AF_INET) { + struct sockaddr_in *sa = (struct sockaddr_in *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + snprintf(buf, len, "
        " IPSTR ", port %u
        ", + IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } - if (addr.sa_family == AF_INET) { - struct sockaddr_in *sa = (struct sockaddr_in *)&addr; - if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; - snprintf(buf, len, "
        " IPSTR " : %u
        ", - IP2STR((ip4_addr_t *)&sa->sin_addr.s_addr), ntohs(sa->sin_port)); - if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; +#if LWIP_IPV6 + if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { + struct sockaddr_in6 *sa = (struct sockaddr_in6 *)&addr; + if (wificfg_write_string_chunk(s, "
        Peer address
        ", buf, len) < 0) return -1; + const ip6_addr_t *addr6 = (const ip6_addr_t*)&(sa->sin6_addr); + if (ip6_addr_isipv4mappedipv6(addr6)) { + snprintf(buf, len, IPSTR, IP2STR((ip4_addr_t *)&addr6->addr[3])); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } else { + if (ip6addr_ntoa_r(addr6, buf, len)) { + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } + } + snprintf(buf, len, ", port %u
        ", ntohs(sa->sin6_port)); + if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; + } +#endif } if (wificfg_write_string_chunk(s, http_wificfg_content[2], buf, len) < 0) return -1; @@ -1509,6 +1585,41 @@ typedef struct { const wificfg_dispatch *dispatch; } server_params; +/* + * Test if the http host string is a literal IP address. This is needed for the + * softap mode captive portal and must return false for typical server strings + * which will be redirected, and true for literal IP address to avoid a redirect + * for them. + */ +static bool host_is_name(const char *host) +{ + if (host == NULL) { + return true; + } + + size_t len = strlen(host); + + if (len < 4) { + return true; + } + + char first = host[0]; + char last = host[len - 1]; + + if (first == '[' && last == ']') { + /* Likely an IPv6 address */ + return false; + } + + if (first >= '0' && first <= '9' && last >= '0' && last <= '9') { + /* Likely IPv4 address */ + return false; + } + + return true; +} + + /* * The http server uses a single thread to service all requests, one request at * a time, to keep peak resource usage to a minimum. Keeping connections open @@ -1529,14 +1640,52 @@ typedef struct { */ static void server_task(void *pvParameters) { + char *hostname_local = NULL; + char *hostname = NULL; + sysparam_get_string("hostname", &hostname); + if (hostname) { + size_t len = strlen(hostname) + 6 + 1; + hostname_local = (char *)malloc(len); + if (hostname_local) { + snprintf(hostname_local, len, "%s.local", hostname); + } + +#if EXTRAS_MDNS_RESPONDER + mdns_init(); + mdns_add_facility(hostname, "_http", NULL, mdns_TCP + mdns_Browsable, 80, 600); +#endif +#if LWIP_MDNS_RESPONDER + mdns_resp_init(); + struct netif *netif = sdk_system_get_netif(STATION_IF); + if (netif) { + mdns_resp_add_netif(netif, hostname, 120); + mdns_resp_add_service(netif, hostname, "_http", + DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + } +#endif + + free(hostname); + } + server_params *params = pvParameters; - struct sockaddr_in serv_addr; +#if LWIP_IPV6 + int listenfd = socket(AF_INET6, SOCK_STREAM, 0); + struct sockaddr_in6 serv_addr; + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin6_family = AF_INET6; + serv_addr.sin6_port = htons(params->port); + serv_addr.sin6_flowinfo = 0; + serv_addr.sin6_addr = in6addr_any; + serv_addr.sin6_scope_id = IP6_NO_ZONE; +#else int listenfd = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in serv_addr; memset(&serv_addr, '0', sizeof(serv_addr)); serv_addr.sin_family = AF_INET; - serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(params->port); + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); +#endif bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); listen(listenfd, 2); @@ -1618,8 +1767,7 @@ static void server_task(void *pvParameters) /* Read the headers, noting some of interest. */ wificfg_content_type content_type = HTTP_CONTENT_TYPE_OTHER; bool connection_close = false; - bool hostp = false; - uint32_t host = IPADDR_NONE; + bool host_redirect = false; long content_length = 0; for (;;) { @@ -1640,8 +1788,10 @@ static void server_task(void *pvParameters) value = skip_whitespace(value); switch (header) { case HTTP_HEADER_HOST: - hostp = true; - host = ipaddr_addr(value); + if (hostname_local && host_is_name(value) && + strcmp(value, hostname_local)) { + host_redirect = true; + } break; case HTTP_HEADER_CONTENT_LENGTH: content_length = strtoul(value, NULL, 10); @@ -1658,12 +1808,14 @@ static void server_task(void *pvParameters) } } - if (hostp && host == IPADDR_NONE) { + if (host_redirect) { /* Redirect to an IP address. */ handle_ipaddr_redirect(s, buf, sizeof(buf)); /* Close the connection. */ break; - } else if (match) { + } + + if (match) { if ((*match->handler)(s, method, content_length, content_type, buf, sizeof(buf)) < 0) break; } else { if (wificfg_write_string(s, not_found_header) < 0) break; @@ -1712,13 +1864,23 @@ static void dns_task(void *pvParameters) ip4_addr_t server_addr; server_addr.addr = ipaddr_addr(wifi_ap_ip_addr); - struct sockaddr_in serv_addr; +#if LWIP_IPV6 + int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); + struct sockaddr_in6 serv_addr; + memset(&serv_addr, '0', sizeof(serv_addr)); + serv_addr.sin6_family = AF_INET6; + serv_addr.sin6_port = htons(53); + serv_addr.sin6_flowinfo = 0; + serv_addr.sin6_addr = in6addr_any; + serv_addr.sin6_scope_id = IP6_NO_ZONE; +#else int fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - + struct sockaddr_in serv_addr; memset(&serv_addr, '0', sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(53); +#endif bind(fd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); const struct ifreq ifreq0 = { "en0" }; @@ -1729,12 +1891,12 @@ static void dns_task(void *pvParameters) for (;;) { char buffer[96]; - struct sockaddr src_addr; + struct sockaddr_storage src_addr; socklen_t src_addr_len = sizeof(src_addr); size_t count = recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&src_addr, &src_addr_len); /* Drop messages that are too large to send a response in the buffer */ - if (count > 0 && count <= sizeof(buffer) - 16 && src_addr.sa_family == AF_INET) { + if (count > 0 && count <= sizeof(buffer) - 16) { size_t qname_len = strlen(buffer + 12) + 1; uint32_t reply_len = 2 + 10 + qname_len + 16 + 4; @@ -1771,7 +1933,7 @@ static void dns_task(void *pvParameters) *head++ = ip4_addr3(&server_addr); *head++ = ip4_addr4(&server_addr); - sendto(fd, buffer, reply_len, 0, &src_addr, src_addr_len); + sendto(fd, buffer, reply_len, 0, (struct sockaddr*)&src_addr, src_addr_len); } } } @@ -2020,6 +2182,11 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) params->wificfg_dispatch = wificfg_dispatch_list; params->dispatch = dispatch; - xTaskCreate(server_task, "WiFi Cfg HTTP", 464, params, 2, NULL); + size_t stack_size = 464; +#if LWIP_MDNS_RESPONDER + /* Uses a lot of stack space, so allocate extra. */ + stack_size += 128; +#endif + xTaskCreate(server_task, "WiFi Cfg HTTP", stack_size, params, 2, NULL); } } From d178d36e0e9ba8534f74419149a4a199dc1c6a3d Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 9 Dec 2017 20:12:36 +1100 Subject: [PATCH 245/349] wificfg: add config option for mDNS --- extras/wificfg/content/wificfg/sta.html | 3 ++ extras/wificfg/wificfg.c | 37 +++++++++++++++++++------ 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/extras/wificfg/content/wificfg/sta.html b/extras/wificfg/content/wificfg/sta.html index 65bfe9d..0df9e71 100644 --- a/extras/wificfg/content/wificfg/sta.html +++ b/extras/wificfg/content/wificfg/sta.html @@ -60,6 +60,9 @@ "pattern=\"(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)_*(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)_*){3}\" " "name=\"sta_gateway\" placeholder=\"192.168.1.1\" value=\"", "\">" +"
        " +"
        " "" "
         
        " "" diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 22f796e..60c9b3d 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -394,6 +394,7 @@ typedef enum { FORM_NAME_STA_IP_ADDR, FORM_NAME_STA_NETMASK, FORM_NAME_STA_GATEWAY, + FORM_NAME_STA_MDNS, FORM_NAME_AP_ENABLE, FORM_NAME_AP_DISABLE_IF_STA, FORM_NAME_AP_DISABLED_RESTARTS, @@ -427,6 +428,7 @@ static const struct { {"sta_ip_addr", FORM_NAME_STA_IP_ADDR}, {"sta_netmask", FORM_NAME_STA_NETMASK}, {"sta_gateway", FORM_NAME_STA_GATEWAY}, + {"sta_mdns", FORM_NAME_STA_MDNS}, {"ap_enable", FORM_NAME_AP_ENABLE}, {"ap_disable_if_sta", FORM_NAME_AP_DISABLE_IF_STA}, {"ap_disabled_restarts", FORM_NAME_AP_DISABLED_RESTARTS}, @@ -967,6 +969,12 @@ static int handle_wifi_station(int s, wificfg_method method, if (wificfg_write_string_chunk(s, http_wifi_station_content[11], buf, len) < 0) return -1; + int8_t wifi_sta_mdns = 1; + sysparam_get_int8("wifi_sta_mdns", &wifi_sta_mdns); + if (wifi_sta_mdns && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_station_content[12], buf, len) < 0) return -1; + if (wificfg_write_chunk_end(s) < 0) return -1; } return 0; @@ -990,6 +998,7 @@ static int handle_wifi_station_post(int s, wificfg_method method, /* Delay committing some values until all have been read. */ bool done = false; uint8_t sta_enable = 0; + uint8_t mdns_enable = 0; while (rem > 0) { int r = wificfg_form_name_value(s, &valp, &rem, buf, len); @@ -1044,6 +1053,10 @@ static int handle_wifi_station_post(int s, wificfg_method method, case FORM_NAME_STA_GATEWAY: sysparam_set_string("wifi_sta_gateway", buf); break; + case FORM_NAME_STA_MDNS: { + mdns_enable = strtoul(buf, NULL, 10) != 0; + break; + } case FORM_NAME_DONE: done = true; break; @@ -1055,6 +1068,7 @@ static int handle_wifi_station_post(int s, wificfg_method method, if (done) { sysparam_set_int8("wifi_sta_enable", sta_enable); + sysparam_set_int8("wifi_sta_mdns", mdns_enable); } return wificfg_write_string(s, http_redirect_header); @@ -1642,7 +1656,10 @@ static void server_task(void *pvParameters) { char *hostname_local = NULL; char *hostname = NULL; + int8_t wifi_sta_mdns = 1; + sysparam_get_string("hostname", &hostname); + sysparam_get_int8("wifi_sta_mdns", &wifi_sta_mdns); if (hostname) { size_t len = strlen(hostname) + 6 + 1; hostname_local = (char *)malloc(len); @@ -1650,19 +1667,21 @@ static void server_task(void *pvParameters) snprintf(hostname_local, len, "%s.local", hostname); } + struct netif *netif = sdk_system_get_netif(STATION_IF); + if (wifi_sta_mdns && netif) { #if EXTRAS_MDNS_RESPONDER - mdns_init(); - mdns_add_facility(hostname, "_http", NULL, mdns_TCP + mdns_Browsable, 80, 600); + mdns_init(); + mdns_add_facility(hostname, "_http", NULL, mdns_TCP + mdns_Browsable, 80, 600); #endif #if LWIP_MDNS_RESPONDER - mdns_resp_init(); - struct netif *netif = sdk_system_get_netif(STATION_IF); - if (netif) { - mdns_resp_add_netif(netif, hostname, 120); - mdns_resp_add_service(netif, hostname, "_http", - DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); - } + mdns_resp_init(); + if (netif) { + mdns_resp_add_netif(netif, hostname, 120); + mdns_resp_add_service(netif, hostname, "_http", + DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + } #endif + } free(hostname); } From 61f23d0cf4cd0b8ceba7b3dad872689da702ed6c Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Mon, 11 Dec 2017 04:00:53 +0100 Subject: [PATCH 246/349] CCS811 driver added (#479) --- examples/ccs811/README.md | 57 ++ examples/ccs811/ccs811_one_sensor/Makefile | 4 + .../ccs811_one_sensor/ccs811_one_sensor.c | 159 +++++ examples/ccs811/ccs811_plus_sht3x/Makefile | 3 + .../ccs811_plus_sht3x/ccs811_plus_sht3x.c | 106 +++ examples/ccs811/ccs811_temperature/Makefile | 4 + .../ccs811_temperature/ccs811_temperature.c | 131 ++++ extras/ccs811/README.md | 549 +++++++++++++++ extras/ccs811/ccs811.c | 636 ++++++++++++++++++ extras/ccs811/ccs811.h | 331 +++++++++ extras/ccs811/component.mk | 9 + 11 files changed, 1989 insertions(+) create mode 100644 examples/ccs811/README.md create mode 100644 examples/ccs811/ccs811_one_sensor/Makefile create mode 100644 examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c create mode 100644 examples/ccs811/ccs811_plus_sht3x/Makefile create mode 100644 examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c create mode 100644 examples/ccs811/ccs811_temperature/Makefile create mode 100644 examples/ccs811/ccs811_temperature/ccs811_temperature.c create mode 100644 extras/ccs811/README.md create mode 100644 extras/ccs811/ccs811.c create mode 100644 extras/ccs811/ccs811.h create mode 100644 extras/ccs811/component.mk diff --git a/examples/ccs811/README.md b/examples/ccs811/README.md new file mode 100644 index 0000000..1cb7e12 --- /dev/null +++ b/examples/ccs811/README.md @@ -0,0 +1,57 @@ +# CCS811 Driver Examples + +These examples demonstrate the usage of the CCS811 driver with only one sensors. + +## Hardware setup + +Most examples use only one CCS811 sensor. Following figure shows the hardware configuration if no interrupt is used. + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >----> SCL | + | GPIO 4 (SDA) ------ SDA | + | GND -----> /WAKE | + +------------------------+ +--------+ +``` + +If *nINT* interrupt is used to fetch new data, additionally the interrupt pin has to be connected to a GPIO pin. + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >----> SCL | + | GPIO 4 (SDA) ------ SDA | + | GPIO 2 <----- /nINT | + | GND -----> /WAKE | + +------------------------+ +--------+ +``` + +In examples where CCS811 sensor is used in conjunction with a SHT3x sensor, the hardware configuration looks like following: + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >--+----> SCL | + | GPIO 4 (SDA) ---|-+--- SDA | + | GND ---|-|--> /WAKE | + | | | | +--------+ + | | | | | SHT3x | + | | +----> SCL | + | | +--- SDA | + +------------------------+ +--------+ +``` + +## Example description + +__*ccs811_one_sensor*__ + +Simple example with one CCS811 sensor connected to I2C bus 0. It demonstrates the different approaches to fetch the data. Either the interrupt *nINT* is used when new data are available or exceed defined thresholds or the new data are fetched periodically. Which approach is used is defined by the constants ```INT_DATA_RDY_USED``` and ```INT_THRESHOLD_USED```. + +__*ccs811_plus_sht3x*__ + +Simple example with one CCS811 sensor connected to I2C bus 0 and one SHT3x sensor to determine ambient temperature. New data are fetched peridically every 2 seconds. + +__*ccs811_temperature*__ + +Simple example with one CCS811 sensor connected to I2C bus 0. It demonstrates how to use CCS811 with an external NTC resistor to determine ambient temperature. diff --git a/examples/ccs811/ccs811_one_sensor/Makefile b/examples/ccs811/ccs811_one_sensor/Makefile new file mode 100644 index 0000000..4383f5c --- /dev/null +++ b/examples/ccs811/ccs811_one_sensor/Makefile @@ -0,0 +1,4 @@ +PROGRAM=CCS811_One_Sensor +EXTRA_COMPONENTS = extras/i2c extras/ccs811 +include ../../../common.mk + diff --git a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c new file mode 100644 index 0000000..0123dde --- /dev/null +++ b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c @@ -0,0 +1,159 @@ +/** + * Simple example with one sensor connected to I2C bus 0. It demonstrates the + * different approaches to fetch the data. Either the interrupt *nINT* is used + * whenever new data are available or exceed defined thresholds or the new + * data are fetched periodically. + * + * Harware configuration: + * + * +------------------------+ +--------+ + * | ESP8266 Bus 0 | | CCS811 | + * | GPIO 5 (SCL) >----> SCL | + * | GPIO 4 (SDA) ------ SDA | + * | GPIO 2 <----- /nINT | + * | GND -----> /WAKE | + * +------------------------+ +--------+ + */ + +// use following constants to define the demo mode +// #define INT_DATA_RDY_USED +// #define INT_THRESHOLD_USED + +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "i2c/i2c.h" + +#include "FreeRTOS.h" +#include + +// include CCS811 driver +#include "ccs811/ccs811.h" + +// define I2C interfaces at which CCS811 sensors can be connected +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +// define GPIO for interrupt +#define INT_GPIO 2 + +static ccs811_sensor_t* sensor; + +#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +/** + * In this example, the interrupt *nINT* is used. It is triggered every time + * new data are available (INT_DATA_RDY_USED) or exceed defined thresholds + * (INT_THRESHOLD_USED). In this case, the user has to define an interrupt + * handler that fetches the data directly or triggers a task, that is waiting + * to fetch the data. In this example, a task is defined which suspends itself + * in each cycle to wait for fetching the data. The task is resumed by the + * the interrupt handler. + */ + +TaskHandle_t nINT_task; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + while (1) + { + // task suspends itself and waits to be resumed by interrupt handler + vTaskSuspend (NULL); + + // after resume get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor interrupt: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void nINT_handler (uint8_t gpio) +{ + xTaskResumeFromISR (nINT_task); +} + +#else + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // get environmental data from another sensor and set them + // ccs811_set_environmental_data (sensor, 25.3, 47.8); + + // get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor periodic: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} + +#endif + + +void user_init(void) +{ + // set UART Parameter + uart_set_baud(0, 115200); + // give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + // init all I2C bus interfaces at which CCS811 sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // longer clock stretching is required for CCS811 + i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); + + // init the sensor with slave address CCS811_I2C_ADDRESS_1 connected I2C_BUS. + sensor = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1); + + if (sensor) + { + #if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) + + // create a task that is resumed by interrupt handler to use the sensor + xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); + + // activate the interrupt for INT_GPIO and set the interrupt handler + gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + + #ifdef INT_DATA_RDY_USED + // enable the data ready interrupt + ccs811_enable_interrupt (sensor, true); + #else + // set threshold parameters and enable threshold interrupt mode + ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); + #endif + + #else + + // create a periodic task that uses the sensor + xTaskCreate(user_task_periodic, "user_task_periodic", 256, NULL, 2, NULL); + + #endif + + // start periodic measurement with one measurement per second + ccs811_set_mode (sensor, ccs811_mode_1s); + } +} + diff --git a/examples/ccs811/ccs811_plus_sht3x/Makefile b/examples/ccs811/ccs811_plus_sht3x/Makefile new file mode 100644 index 0000000..a2f2425 --- /dev/null +++ b/examples/ccs811/ccs811_plus_sht3x/Makefile @@ -0,0 +1,3 @@ +PROGRAM=CCS811_Plus_SHT3x +EXTRA_COMPONENTS = extras/i2c extras/ccs811 extras/sht3x +include ../../../common.mk diff --git a/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c b/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c new file mode 100644 index 0000000..90976bd --- /dev/null +++ b/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c @@ -0,0 +1,106 @@ +/** + * Simple example with one CCS811 sensor connected to I2C bus 0 and one SHT3x + * sensor to determine ambient temperature. New data are fetched peridically. + * + * Harware configuration: + * + * +------------------------+ +--------+ + * | ESP8266 Bus 0 | | CCS811 | + * | GPIO 5 (SCL) >--+----> SCL | + * | GPIO 4 (SDA) ---|-+--- SDA | + * | GND ---|-|--> /WAKE | + * | | | | +--------+ + * | | | | | SHT3x | + * | | +----> SCL | + * | | +--- SDA | + * +------------------------+ +--------+ + */ + +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "i2c/i2c.h" + +#include "FreeRTOS.h" +#include + +// include CCS811 driver +#include "ccs811/ccs811.h" + +// include SHT3x driver +#include "sht3x/sht3x.h" + +// define I2C interfaces at which CCS811 and SHT3x sensors are connected +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +static ccs811_sensor_t* ccs811; // CCS811 device data structure +static sht3x_sensor_t* sht3x; // SHT3x device data structure + +/* + * User task that fetches the sensor values every 2 seconds. + */ +void user_task(void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + float temperature; + float humidity; + + // start periodic measurement with 1 measurement per second + ccs811_set_mode (ccs811, ccs811_mode_1s); + + // start periodic measurements with 1 measurement per second + sht3x_start_measurement (sht3x, sht3x_periodic_1mps, sht3x_high); + + // passive waiting until measurement results are available + vTaskDelay (sht3x_get_measurement_duration (sht3x_high)); + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // get the results from CCS811 and do something with them + if (ccs811_get_results (ccs811, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor periodic: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + + // get the values from SHT3x and do something with them + if (sht3x_get_results (sht3x, &temperature, &humidity)) + { + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // set CCS811 environmental data with values fetched from SHT3x + ccs811_set_environmental_data (ccs811, temperature, humidity); + } + // passive waiting until 2 seconds is over + vTaskDelayUntil(&last_wakeup, 2000 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // set UART Parameter + uart_set_baud(0, 115200); + // give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + // init all I2C bus interfaces at which CCS811 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // longer clock stretching is required for CCS811 + i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); + + // init the sensors + ccs811 = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1); + sht3x = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2); + + if (ccs811 && sht3x) + // create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); +} diff --git a/examples/ccs811/ccs811_temperature/Makefile b/examples/ccs811/ccs811_temperature/Makefile new file mode 100644 index 0000000..46edcfb --- /dev/null +++ b/examples/ccs811/ccs811_temperature/Makefile @@ -0,0 +1,4 @@ +PROGRAM=CCS811_Temperature +EXTRA_COMPONENTS = extras/i2c extras/ccs811 +LIBS ?= gcc hal m +include ../../../common.mk diff --git a/examples/ccs811/ccs811_temperature/ccs811_temperature.c b/examples/ccs811/ccs811_temperature/ccs811_temperature.c new file mode 100644 index 0000000..56cfaad --- /dev/null +++ b/examples/ccs811/ccs811_temperature/ccs811_temperature.c @@ -0,0 +1,131 @@ +/** + * Simple example with one sensor connected to I2C bus 0. It demonstrates + * how to use CCS811 with an external NTC thermistor to determine ambient + * temperature. + * + * Harware configuration: + * + * +------------------------+ +--------+ + * | ESP8266 Bus 0 | | CCS811 | + * | GPIO 5 (SCL) >----> SCL | + * | GPIO 4 (SDA) ------ SDA | + * | GND -----> /WAKE | + * +------------------------+ +--------+ + */ + +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "i2c/i2c.h" + +#include "FreeRTOS.h" +#include + +#include + +// include CCS811 driver +#include "ccs811/ccs811.h" + +// define I2C interfaces at which CCS811 sensors can be connected +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + + +static ccs811_sensor_t* sensor; + + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +// parameters of the Adafruit CCS811 Air Quality Sensor Breakout +#define CCS811_R_REF 100000 +#define CCS811_R_NTC 10000 +#define CCS811_R_NTC_TEMP 25 +#define CCS811_BCONSTANT 3380 + +void user_task_periodic(void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // get environmental data from another sensor and set them + // ccs811_set_environmental_data (sensor, 25.3, 47.8); + + // get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor periodic: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + + // get NTC resistance + uint32_t r_ntc = ccs811_get_ntc_resistance (sensor, CCS811_R_REF); + + // calculation of temperature from application note ams AN000372 + double ntc_temp; + ntc_temp = log((double)r_ntc / CCS811_R_NTC); // 1 + ntc_temp /= CCS811_BCONSTANT; // 2 + ntc_temp += 1.0 / (CCS811_R_NTC_TEMP + 273.15); // 3 + ntc_temp = 1.0 / ntc_temp; // 4 + ntc_temp -= 273.15; // 5 + + printf("%.3f CCS811 Sensor temperature: R_NTC %u Ohm, T %f °C\n", + (double)sdk_system_get_time()*1e-3, r_ntc, ntc_temp); + + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1100 / portTICK_PERIOD_MS); + } +} + + +void user_init(void) +{ + // set UART Parameter + uart_set_baud(0, 115200); + // give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + // init all I2C bus interfaces at which CCS811 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // longer clock stretching is required for CCS811 + i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); + + // init the sensor with slave address CCS811_I2C_ADDRESS_1 connected I2C_BUS. + sensor = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1); + + if (sensor) + { + #if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) + + // create a task that is resumed by interrupt handler to use the sensor + xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); + + // set the GPIO and interrupt handler for *nINT* interrupt + gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + + #ifdef INT_DATA_RDY_USED + // enable the data ready interrupt + ccs811_enable_interrupt (sensor, true); + #else + // set threshold parameters and enable threshold interrupt mode + ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); + #endif + + #else + + // create a periodic task that uses the sensor + xTaskCreate(user_task_periodic, "user_task_periodic", 256, NULL, 2, NULL); + + #endif + + // start periodic measurement with one measurement per second + ccs811_set_mode (sensor, ccs811_mode_1s); + } +} + diff --git a/extras/ccs811/README.md b/extras/ccs811/README.md new file mode 100644 index 0000000..d1795f1 --- /dev/null +++ b/extras/ccs811/README.md @@ -0,0 +1,549 @@ +# Driver for the ams CCS811 digital gas sensor for monitoring indoor air quality. + +This driver is written for usage with the ESP8266 and FreeRTOS using the I2C interface driver. + +## About the sensor + +The CCS811 is an ultra-low power digital sensor which detects **Volatile Organic Compounds (VOC)** for Indoor Air Quality (IAQ) monitoring that. The sensor allows to + +- convert raw sensor data to Total Volatile Organic Compound (TVOC) and equivalent CO2 (eCO2), +- compensate gas readings due to temperature and humidity using an external sensor, +- trigger interrupts when new measurement results are available or eCO2 value exceeds thresholds, +- correct baseline automatically or manually +- connect a NTC thermistor to provide means of calculating the local ambient temperature. + +The sensor uses an I2C interface and supports clock stretching. See the notes on clock stretching during I2C interface intialization. + +## Measurement Process + +### Sensor modes + +The CCS811 can operate in 5 different modes: + +Mode | Driver symbol | Period | RAW data | IAQ values +---- | ------------- | ------ |:--------:|:----------: +Idle, Low Current Mode | ``` ccs811_mode_idle ``` | - | - | - +Constant Power Mode | ``` ccs811_mode_1s ``` | 1 s | X | X +Pulse Heating Mode | ``` ccs811_mode_10s ``` | 10 s | X | X +Low Power Pulse Heating Mode | ``` ccs811_mode_60s ``` | 60 s | X | X +Constant Power Mode | ``` ccs811_mode_250ms ``` | 250 ms | X | - + +After power up, the sensor starts automatically in *Idle, Low Current Mode* (```mode_idle```). To start periodic measurements, the mode of the sensor has to be changed to any measurement mode. Measurement modes with with different rates of periodic measurements are available, see table above. + +**Please note:** In *Constant Power Mode* with measurements every 250 ms (```mode_250ms```) only raw data are available. In all other measurement modes, the Indoor Air Quality (IAQ) values are available additionally. The *Constant Power Mode* with measurements every 250 ms (```mode_250ms```) is only intended for systems where an external host system wants to run an algorithm with raw data. + +Once the is initialized with function ```ccs811_init_sensor```, function ```ccs811_set_mode``` can be used to start periodic measurements with a given period. + +``` +static ccs811_sensor_t* sensor; +... +if ((sensor = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1))) +{ + ... + // start periodic measurement with one measurement per second + ccs811_set_mode (sensor, ccs811_mode_1s); +} +... +``` + +**Please note:** + +1. After setting the mode, the sensor is in conditioning period that needs up to 20 minutes, before accurate readings are generated, see the data sheet for more details. + +2. During the early-live (burn-in) period, the CCS811 sensor should run for 48 hours in the selected mode of operation to ensure sensor performance is stable, see the data sheet for more details. + +3. When the sensor operating mode is changed to a new mode with a lower sample rate, e.g., from *Pulse Heating Mode* (```mode_10s```) to *Low Power Pulse Heating Mode* (```mode_60s```), it should be placed in *Idle, Low Current Mode* (```mode_idle```) for at least 10 minutes before enabling the new mode. + +When a sensor operating mode is changed to a new mode with a higher sample rate, e.g., from *Low Power Pulse Heating Mode* (```mode_60s```) to *Pulse Heating Mode* (```mode_10s```), there is no requirement to wait before enabling the new mode. + +## Measurement results + +Once the measurement mode is set, the user task can use function ```ccs811_get_results``` with same rate as the measurement rate to fetch the results. The function returns **raw data** as well as **Indoor Air Quality (IAQ)** values. + +While raw data represents simply the current through the sensor and the voltage across the sensor with the selected current, IAQ values are the results of the processing these raw data by the sensor. IAQ values consist of the **equivalent CO2 (eCO2)** with a range from 400 ppm to 8192 ppm and **Total Volatile Organic Compound (TVOC)** with a range from 0 ppb to 1187 ppb. + +``` +uint16_t iaq_tvoc; +uint16_t iaq_eco2; +uint8_t raw_i; +uint16_t raw_v; +... +// get the results and do something with them +if (ccs811_get_results (sensor, &tvoc, &eco2, &raw_i, &raw_v)) +{ + ... +} +... +``` + +If some of the results are not needed, the corresponding pointer parameters can be set to NULL. + +If the function ```ccs811_get_results``` is called and no new data are available, e.g., due to the sensor mode time tolerance of 2%, the function still returns successfully. In this case, the results of the last measurement are returned and the error code CCS811_DRV_NO_NEW_DATA is set. + +**Please note:** + +1. In *Constant Power Mode* with measurements every 250 ms (```mode_250ms```) only raw data are available. + +2. The rate of fetching data must not be greater than the rate of measurement. Due to the sensor mode timing tolerance of 2 %, the rate of fetching data should be lower than the measurement rate. + +3. If the function is called and no new data are available, the results of the latest measurement are returned and error_code CCS811_DRV_NO_NEW_DATA is set. + +### Compensation + +If information about the environment like temperature and humidity are available from another sensor, they can be used by CCS811 to compensate gas readings due to temperature and humidity changes. Function ```ccs811_set_environmental_data``` can be used to set these environmental data. + +``` +float temperature; +float humidity; +... +if (sht3x_get_results (sht3x, &temperature, &humidity)) + // set CCS811 environmental data with values fetched from SHT3x + ccs811_set_environmental_data (ccs811, temperature, humidity); +... +``` + +### NTC + +CCS811 supports an external interface for connecting a negative thermal coefficient thermistor (R_NTC) to provide a cost effective and power efficient means of calculating the local ambient temperature. The sensor measures the voltage V_NTC across R_NTC as well as the voltage V_REF across a connected reference resistor (R_REF). Function ```ccs811_get_ntc_resistance``` can be used to fetch the current resistance of R_NTC. It uses the resistance of R_REF and measured voltages V_REF and V_NTV with the following equation: + + R_NTC = R_REF / V_REF * V_NTC + +Using the data sheet of the NTC, the ambient temperature can be calculated. See application note ams AN000372 for more details. For example, with Adafruit CCS811 Air Quality Sensor Breakout the ambienttemperature can be determined as following: + +``` +... +#define CCS811_R_REF 100000 // resistance of the reference resistor +#define CCS811_R_NTC 10000 // resistance of NTC at a reference temperature +#define CCS811_R_NTC_TEMP 25 // reference temperature for NTC +#define CCS811_BCONSTANT 3380 // B constant + +// get NTC resistance +uint32_t r_ntc = ccs811_get_ntc_resistance (sensor, CCS811_R_REF); + +// calculation of temperature from application note ams AN000372 +double ntc_temp; +ntc_temp = log((double)r_ntc / CCS811_R_NTC); // 1 +ntc_temp /= CCS811_BCONSTANT; // 2 +ntc_temp += 1.0 / (CCS811_R_NTC_TEMP + 273.15); // 3 +ntc_temp = 1.0 / ntc_temp; // 4 +ntc_temp -= 273.15; // 5 +.... +``` + +### Interrupts + +CCS811 supports two types of interrupts that can be used to fetch data: + +- data ready interrupt (INT_DATA_RDY) +- threshold interrupt (INT_THRESHOLD) + +#### Data ready interrupt + +At the end of each measurement cycle (every 250 ms, 1 second, 10 seconds, or 60 seconds), CCS811 can optionally trigger an interrupt. The signal *nINT* is driven low as soon as new sensor values are ready to read. It will stop being driven low when sensor data are read with function ```ccs811_get_results```. + +The interrupt is disabled by default. It can be enabled with function ```ccs811_enable_interrupt```. + +``` +... +// enable the data ready interrupt +ccs811_enable_interrupt (sensor, true); +... +``` + +#### Threshold interrupt + +The user task can choose that the data ready interrupt is not generated every time when new sensor values become ready but only if the eCO2 value moves from the current range (LOW, MEDIUM, or HIGH) into another range by more than a hysteresis value. Hysteresis is used to prevent multiple interrupts close to a threshold. + +The interrupt is disabled by default and can be enabled with function ```ccs811_set_eco2_thresholds```. The ranges are defined by parameters *low* and *high* as following + + LOW below parameter value *low* + MEDIUM between parameter values *low* and *high* + HIGH above parameter value *high* is range HIGH. + +If all parameters have valid values, the function sets the thresholds and enables the data ready interrupt. Using 0 for all parameters disables the interrupt. + +``` +... +// set threshold parameters and enable threshold interrupt mode +ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); +... +``` + +### Baseline + +CCS81 supports automatic baseline correction over a minimum time of 24 hours. Using function ```ccs811_get_baseline```, the current baseline value can be saved before the sensor is powered down. This baseline can then be restored with function ```ccs811_set_baseline``` after sensor is powered up again to continue the automatic baseline process. + +## Error Handling + +Most driver functions return a simple boolean value to indicate whether its execution was successful or an error happened. In the latter case, the member ```error_code``` of the sensor device data structure is set which indicates what error happened. + +There are two different error levels that are ORed into one single *error_code*, errors in the I2C communication and errors of the CCS811 sensor itself. To test for a certain error, first you can AND the *error_code* with one of the error masks, ```CCS811_I2C_ERROR_MASK``` for I2C errors and ```CCS811_DRV_ERROR_MASK``` for other errors. Then you can test the result for a certain error code. + +For example, error handling for ```ccs811_get_results``` could look like: + +``` +if (ccs811_get_results (sensor, &tvoc, &eco2, &raw_i, &raw_v)) +{ + // no error happened + ... +} +else +{ + // error happened + switch (sensor->error_code & CCS811_I2C_ERROR_MASK) + { + case CCS811_I2C_BUSY: ... + case CCS811_I2C_READ_FAILED: ... + ... + } + switch (sensor->error_code & CCS811_DRV_ERROR_MASK) + { + case CCS811_WRONG_MODE: ... + case CCS811_DRV_NO_IAQ_DATA: ... + ... + } +} +``` + +## Usage + +First, the hardware configuration has to be established. + +### Hardware configurations + +Following figure shows the hardware configuration if no interrupt is used. + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >----> SCL | + | GPIO 4 (SDA) ------ SDA | + | GND -----> /WAKE | + +------------------------+ +--------+ +``` + +If interrupt signal *nINT* is used to fetch new data, additionally the interrupt pin has to be connected to a GPIO pin. + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >----> SCL | + | GPIO 4 (SDA) ------ SDA | + | GPIO 2 <----- /nINT | + | GND -----> /WAKE | + +------------------------+ +--------+ +``` + +If CCS811 sensor is used in conjunction with another sensor, e.g., a SHT3x sensor, the hardware configuration looks like following: + +``` + +------------------------+ +--------+ + | ESP8266 Bus 0 | | CCS811 | + | GPIO 5 (SCL) >--+----> SCL | + | GPIO 4 (SDA) ---|-+--- SDA | + | GND ---|-|--> /WAKE | + | | | | +--------+ + | | | | | SHT3x | + | | +----> SCL | + | | +--- SDA | + +------------------------+ +--------+ +``` + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface settings have to be defined. + +``` +// define I2C interfaces at which CCS811 sensors can be connected +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +// define GPIO for interrupt +#define INT_GPIO 2 +#include "sht3x/sht3x.h" +``` + +### Main program + +Before using the CCS811 driver, function ```i2c_init``` needs to be called for each I2C interface to setup them. + +**Please note:** CCS811 uses clock streching that can be longer than the default I2C clock stretching. Therefore the clock stretching parameter of I2C has to be set to at least ```CCS811_I2C_CLOCK_STRETCH```. + +``` +... +i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K)); +i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); +... +``` + +Once I2C interfaces to be used are initialized, function ```ccs811_init_sensor``` has to be called for each CCS811 sensor to initialize the sensor and to check its availability as well as its error state. The parameters specify the I2C bus to which it is connected and its I2C slave address. + +``` +static ccs811_sensor_t* sensor; // pointer to sensor device data structure +... +if ((sensor = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1))) +{ + ... +} +... +``` + +Function ```ccs811_init_sensor``` returns a pointer to the sensor device data structure or NULL in case of error. + +If initialization of the sensor was successful, the sensor mode has be set to start periodic measurement. The sensor mode can be changed anytime later. + +``` +... +// start periodic measurement with one measurement per second +ccs811_set_mode (sensor, ccs811_mode_1s); +... +``` + +Last, the user task that uses the sensor has to be created. + +``` +xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); +``` + +The user task can use different approaches to fetch new data. Either new data are fetched periodically or the interrupt signal *nINT* is used when new data are available or eCO2 value exceeds defined thresholds. + +If new data are fetched **periodically** the implementation of the user task is quite simply and could look like following. + +``` +void user_task(void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + ... + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} +... +``` + +The user task simply fetches new data with the same rate as the measurements are performed. + +**Please note:** The rate of fetching the measurement results must be not greater than the rate of periodic measurements of the sensor, however, it *should be less* to avoid conflicts caused by the timing tolerance of the sensor. + +A different approach is to use the **interrupt** *nINT*. This interrupt signal is either triggered every time when new data are available (INT_DATA_RDY) or only whenever eCO2 value exceeds defined thresholds (INT_THRESHOLD). In both cases, the user has to implement an interrupt handler that either fetches the data directly or triggers a task, that is waiting to fetch the data. + +``` +... +TaskHandle_t nINT_task; + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void nINT_handler (uint8_t gpio) +{ + xTaskResumeFromISR (nINT_task); +} + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + while (1) + { + // task suspends itself and waits to be resumed by interrupt handler + vTaskSuspend (NULL); + + // after resume get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + ... + } +} +... + +xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); +... +``` + +In this example, a task is defined which suspends itself in each cycle to wait for fetching the data. The task is resumed by the interrupt handler. + +Finally, the interrupt handler has to be activated for the GPIO which is connected to the interrupt signal. Furthermore, the interrupt has to be enabled in the CCS811 sensor. + +Function ```ccs811_enable_interrupt``` enables the interrupt that is triggered whenever new data are available (INT_DATA_RDY). + +``` +... +// activate the interrupt for INT_GPIO and set the interrupt handler +gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + +// enable the data ready interrupt INT_DATA_RDY +ccs811_enable_interrupt (sensor, true); +... +```` + +Function ```ccs811_set_eco2_thresholds``` enables the interrupt that is triggered whenever eCO2 value exceeds the thresholds (INT_THRESHOLD) defined by parameters. + +``` +... +// activate the interrupt for INT_GPIO and set the interrupt handler +gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + +// set threshold parameters and enable threshold interrupt mode INT_THRESHOLD +ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); +... +```` + +## Full Example + +``` +// use following constants to define the demo mode +// #define INT_DATA_RDY_USED +// #define INT_THRESHOLD_USED + +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "i2c/i2c.h" + +#include "FreeRTOS.h" +#include + +// include CCS811 driver +#include "ccs811/ccs811.h" + +// define I2C interfaces at which CCS811 sensors can be connected +#define I2C_BUS 0 +#define I2C_SCL_PIN 5 +#define I2C_SDA_PIN 4 + +// define GPIO for interrupt +#define INT_GPIO 2 + +static ccs811_sensor_t* sensor; + +#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +/** + * In this example, the interrupt *nINT* is used. It is triggered every time + * new data are available (INT_DATA_RDY_USED) or exceed defined thresholds + * (INT_THRESHOLD_USED). In this case, the user has to define an interrupt + * handler that fetches the data directly or triggers a task, that is waiting + * to fetch the data. In this example, a task is defined which suspends itself + * in each cycle to wait for fetching the data. The task is resumed by the + * the interrupt handler. + */ + +TaskHandle_t nINT_task; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + while (1) + { + // task suspends itself and waits to be resumed by interrupt handler + vTaskSuspend (NULL); + + // after resume get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor interrupt: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void nINT_handler (uint8_t gpio) +{ + xTaskResumeFromISR (nINT_task); +} + +#else + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + uint16_t tvoc; + uint16_t eco2; + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // get environmental data from another sensor and set them + // ccs811_set_environmental_data (sensor, 25.3, 47.8); + + // get the results and do something with them + if (ccs811_get_results (sensor, &tvoc, &eco2, 0, 0)) + printf("%.3f CCS811 Sensor periodic: TVOC %d ppb, eCO2 %d ppm\n", + (double)sdk_system_get_time()*1e-3, tvoc, eco2); + + // passive waiting until 1 second is over + vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); + } +} + +#endif + + +void user_init(void) +{ + // set UART Parameter + uart_set_baud(0, 115200); + // give the UART some time to settle + sdk_os_delay_us(500); + + /** -- MANDATORY PART -- */ + + // init all I2C bus interfaces at which CCS811 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + + // longer clock stretching is required for CCS811 + i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); + + // init the sensor with slave address CCS811_I2C_ADDRESS_1 connected I2C_BUS. + sensor = ccs811_init_sensor (I2C_BUS, CCS811_I2C_ADDRESS_1); + + if (sensor) + { + #if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) + + // create a task that is resumed by interrupt handler to use the sensor + xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); + + // activate the interrupt for INT_GPIO and set the interrupt handler + gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + + #ifdef INT_DATA_RDY_USED + // enable the data ready interrupt + ccs811_enable_interrupt (sensor, true); + #else + // set threshold parameters and enable threshold interrupt mode + ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); + #endif + + #else + + // create a periodic task that uses the sensor + xTaskCreate(user_task_periodic, "user_task_periodic", 256, NULL, 2, NULL); + + #endif + + // start periodic measurement with one measurement per second + ccs811_set_mode (sensor, ccs811_mode_1s); + } +} +``` + +## Further Examples + +See also the example in the examples directory [examples directory](../../examples/ccs811/README.md). diff --git a/extras/ccs811/ccs811.c b/extras/ccs811/ccs811.c new file mode 100644 index 0000000..b1de154 --- /dev/null +++ b/extras/ccs811/ccs811.c @@ -0,0 +1,636 @@ +/* + * Driver for ams CCS811 digital temperature, humity, pressure and + * gas sensor connected to I2C or SPI + * + * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "FreeRTOS.h" +#include "task.h" + +#include "i2c/i2c.h" + +#include "ccs811.h" + +#if defined(CCS811_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "CCS811", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "CCS811", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(CCS811_DEBUG_LEVEL_1) || defined(CCS811_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "CCS811", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "CCS811", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +/* CCS811 register addresses */ +#define CCS811_REG_STATUS 0x00 +#define CCS811_REG_MEAS_MODE 0x01 +#define CCS811_REG_ALG_RESULT_DATA 0x02 +#define CCS811_REG_RAW_DATA 0x03 +#define CCS811_REG_ENV_DATA 0x05 +#define CCS811_REG_NTC 0x06 +#define CCS811_REG_THRESHOLDS 0x10 +#define CCS811_REG_BASELINE 0x11 + +#define CCS811_REG_HW_ID 0x20 +#define CCS811_REG_HW_VER 0x21 +#define CCS811_REG_FW_BOOT_VER 0x23 +#define CCS811_REG_FW_APP_VER 0x24 + +#define CCS811_REG_ERROR_ID 0xe0 + +#define CCS811_REG_APP_ERASE 0xf1 +#define CCS811_REG_APP_DATA 0xf2 +#define CCS811_REG_APP_VERIFY 0xf3 +#define CCS811_REG_APP_START 0xf4 +#define CCS811_REG_SW_RESET 0xff + +// status register bits +#define CCS811_STATUS_ERROR 0x01 // error, details in CCS811_REG_ERROR +#define CCS811_STATUS_DATA_RDY 0x08 // new data sample in ALG_RESULT_DATA +#define CCS811_STATUS_APP_VALID 0x10 // valid application firmware loaded +#define CCS811_STATUS_FW_MODE 0x80 // firmware is in application mode + +// error register bits +#define CCS811_ERR_WRITE_REG_INV 0x01 // invalid register address on write +#define CCS811_ERR_READ_REG_INV 0x02 // invalid register address on read +#define CCS811_ERR_MEASMODE_INV 0x04 // invalid requested measurement mode +#define CCS811_ERR_MAX_RESISTANCE 0x08 // maximum sensor resistance exceeded +#define CCS811_ERR_HEATER_FAULT 0x10 // heater current not in range +#define CCS811_ERR_HEATER_SUPPLY 0x20 // heater voltage not applied correctly + +/** + * Type declarations + */ + +typedef struct +{ + uint8_t reserved_1 :2; + uint8_t int_thresh :1; // interrupt if new ALG_RESULT_DAT crosses on of the thresholds + uint8_t int_datardy:1; // interrupt if new sample is ready in ALG_RESULT_DAT + uint8_t drive_mode :3; // mode number binary coded +} ccs811_meas_mode_reg_t; + + +/** + * forward declaration of functions for internal use only + */ + +static bool ccs811_reg_read(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, uint32_t len); +static bool ccs811_reg_write(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, uint32_t len); +static bool ccs811_check_error_status (ccs811_sensor_t* dev); +static bool ccs811_enable_threshold (ccs811_sensor_t* dev, bool enabled); +static bool ccs811_is_available (ccs811_sensor_t* dev); + +ccs811_sensor_t* ccs811_init_sensor (uint8_t bus, uint8_t addr) +{ + ccs811_sensor_t* dev; + + if ((dev = malloc (sizeof(ccs811_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->mode = ccs811_mode_idle; + dev->error_code = CCS811_OK; + + // check whether sensor is available including the check of the hardware + // id and the error state + if (!ccs811_is_available(dev)) + { + error_dev("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + const static uint8_t sw_reset[4] = { 0x11, 0xe5, 0x72, 0x8a }; + + // doing a software reset first + if (!ccs811_reg_write(dev, CCS811_REG_SW_RESET, (uint8_t*)sw_reset, 4)) + { + error_dev("Could not reset the sensor.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + uint8_t status; + + // wait 100 ms after the reset + vTaskDelay(100/portTICK_PERIOD_MS); + + // get the status to check whether sensor is in bootloader mode + if (!ccs811_reg_read(dev, CCS811_REG_STATUS, &status, 1)) + { + error_dev("Could not read status register %02x.", __FUNCTION__, dev, CCS811_REG_STATUS); + free (dev); + return NULL; + } + + // if sensor is in bootloader mode (FW_MODE == 0), it has to switch + // to the application mode first + if (!(status & CCS811_STATUS_FW_MODE)) + { + // check whether valid application firmware is loaded + if (!(status & CCS811_STATUS_APP_VALID)) + { + error_dev("Sensor is in boot mode, but has no valid application.", + __FUNCTION__, dev); + free (dev); + return NULL; + } + + // swtich to application mode + if (!ccs811_reg_write(dev, CCS811_REG_APP_START, 0, 0)) + { + error_dev("Could not start application", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // wait 100 ms after starting the app + vTaskDelay(100/portTICK_PERIOD_MS); + + // get the status to check whether sensor switched to application mode + if (!ccs811_reg_read(dev, CCS811_REG_STATUS, &status, 1) || + !(status & CCS811_STATUS_FW_MODE)) + { + error_dev("Could not start application.", __FUNCTION__, dev); + free (dev); + return NULL; + } + } + + // try to set default measurement mode to *ccs811_mode_1s* + if (!ccs811_set_mode(dev, ccs811_mode_1s)) + { + free (dev); + return NULL; + } + + return dev; +} + + +bool ccs811_set_mode (ccs811_sensor_t* dev, ccs811_mode_t mode) +{ + ccs811_meas_mode_reg_t reg; + + if (!dev) return false; + + dev->error_code = CCS811_OK; + + // read measurement mode register value + if (!ccs811_reg_read(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + return false; + + reg.drive_mode = mode; + + // write back measurement mode register + if (!ccs811_reg_write(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + { + error_dev ("Could not set measurement mode.", __FUNCTION__, dev); + return false; + } + + // check whether setting measurement mode were succesfull + if (!ccs811_reg_read(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1) || + !reg.drive_mode == mode) + { + error_dev ("Could not set measurement mode to %d", __FUNCTION__, dev, mode); + return ccs811_check_error_status (dev); + } + + dev->mode = mode; + + return true; +} + +#define CCS811_ALG_DATA_ECO2_HB 0 +#define CCS811_ALG_DATA_ECO2_LB 1 +#define CCS811_ALG_DATA_TVOC_HB 2 +#define CCS811_ALG_DATA_TVOC_LB 3 +#define CCS811_ALG_DATA_STATUS 4 +#define CCS811_ALG_DATA_ERROR_ID 5 +#define CCS811_ALG_DATA_RAW_HB 6 +#define CCS811_ALG_DATA_RAW_LB 7 + +bool ccs811_get_results (ccs811_sensor_t* dev, + uint16_t* iaq_tvoc, + uint16_t* iaq_eco2, + uint8_t* raw_i, + uint16_t* raw_v) +{ + if (!dev) return false; + + dev->error_code = CCS811_OK; + + if (dev->mode == ccs811_mode_idle) + { + error_dev ("Sensor is in idle mode and not performing measurements.", + __FUNCTION__, dev); + dev->error_code = CCS811_DRV_WRONG_MODE; + return false; + } + + if (dev->mode == ccs811_mode_250ms && (iaq_tvoc || iaq_eco2)) + { + error_dev ("Sensor is in constant power mode, only raw data " + "are available every 250ms", + __FUNCTION__, dev); + dev->error_code = CCS811_DRV_NO_IAQ_DATA; + return false; + } + + uint8_t data[8]; + + // read IAQ sensor values and RAW sensor data including status and error id + if (!ccs811_reg_read(dev, CCS811_REG_ALG_RESULT_DATA, data, 8)) + { + error_dev ("Could not read sensor data.", __FUNCTION__, dev); + dev->error_code |= CCS811_DRV_RD_DATA_FAILED; + return false; + } + + // check for errors + if (data[CCS811_ALG_DATA_STATUS] & CCS811_STATUS_ERROR) + { + return ccs811_check_error_status (dev); + } + + // check whether new data are ready, if not, latest values are read from sensor + // and error_code is set + if (!(data[CCS811_ALG_DATA_STATUS] & CCS811_STATUS_DATA_RDY)) + { + debug_dev ("No new data.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_NO_NEW_DATA; + } + + // if *iaq* is not NULL return IAQ sensor values + if (iaq_tvoc) *iaq_tvoc = data[CCS811_ALG_DATA_TVOC_HB] << 8 | data[CCS811_ALG_DATA_TVOC_LB]; + if (iaq_eco2) *iaq_eco2 = data[CCS811_ALG_DATA_ECO2_HB] << 8 | data[CCS811_ALG_DATA_ECO2_LB]; + + // if *raw* is not NULL return RAW sensor data + if (raw_i) *raw_i = data[CCS811_ALG_DATA_RAW_HB] >> 2; + if (raw_v) *raw_v = (data[CCS811_ALG_DATA_RAW_HB] & 0x03) << 8 | data[CCS811_ALG_DATA_RAW_LB]; + + return true; +} + +uint32_t ccs811_get_ntc_resistance (ccs811_sensor_t* dev, uint32_t r_ref) +{ + if (!dev) return 0; + + uint8_t data[4]; + + // read baseline register + if (!ccs811_reg_read(dev, CCS811_REG_NTC, data, 4)) + return 0; + + // calculation from application note ams AN000372 + uint16_t v_ref = (uint16_t)(data[0]) << 8 | data[1]; + uint16_t v_ntc = (uint16_t)(data[2]) << 8 | data[3]; + + return (v_ntc * r_ref / v_ref); +} + + +bool ccs811_set_environmental_data (ccs811_sensor_t* dev, + float temperature, + float humidity) +{ + if (!dev) return false; + + uint16_t temp = (temperature + 25) * 512; // -25 °C maps to 0 + uint16_t hum = humidity * 512; + + // fill environmental data + uint8_t data[4] = { temp >> 8, temp & 0xff, + hum >> 8, hum & 0xff }; + + // send environmental data to the sensor + if (!ccs811_reg_write(dev, CCS811_REG_ENV_DATA, data, 4)) + { + error_dev ("Could not write environmental data to sensor.", __FUNCTION__, dev); + return false; + } + + return true; +} + +bool ccs811_set_eco2_thresholds (ccs811_sensor_t* dev, + uint16_t low, uint16_t high, uint8_t hysteresis) +{ + if (!dev) return false; + + dev->error_code = CCS811_OK; + + // check whether interrupt has to be disabled + if (!low && !high && !hysteresis) + return ccs811_enable_threshold (dev, false); + + // check parameters + if (low < CCS_ECO2_RANGE_MIN || high > CCS_ECO2_RANGE_MAX || low > high || !hysteresis) + { + error_dev ("Wrong threshold parameters", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_WRONG_PARAMS; + return ccs811_enable_threshold (dev, false); + } + + // fill the threshold data + uint8_t data[5] = { low >> 8, low & 0xff, + high >> 8, high & 0xff, + hysteresis }; + + // write threshold data to the sensor + if (!ccs811_reg_write(dev, CCS811_REG_THRESHOLDS, data, 5)) + { + error_dev ("Could not write threshold interrupt data to sensor.", __FUNCTION__, dev); + return ccs811_enable_threshold (dev, false); + } + + // finally enable the threshold interrupt mode + return ccs811_enable_threshold (dev, true); +} + + +bool ccs811_enable_interrupt (ccs811_sensor_t* dev, bool enabled) +{ + if (!dev) return false; + + ccs811_meas_mode_reg_t reg; + + // read measurement mode register value + if (!ccs811_reg_read(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + return false; + + reg.int_datardy = enabled; + reg.int_thresh = false; // threshold mode must not enabled + + // write back measurement mode register + if (!ccs811_reg_write(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + { + error_dev ("Could not set measurment mode register.", __FUNCTION__, dev); + return false; + } + + return true; +} + +uint16_t ccs811_get_baseline (ccs811_sensor_t* dev) +{ + if (!dev) return 0; + + uint8_t data[2]; + + // read baseline register + if (!ccs811_reg_read(dev, CCS811_REG_BASELINE, data, 2)) + return 0; + + return (uint16_t)(data[0]) << 8 | data[1]; +} + + +bool ccs811_set_baseline (ccs811_sensor_t* dev, uint16_t baseline) +{ + if (!dev) return false; + + uint8_t data[2] = { baseline >> 8, baseline & 0xff }; + + // write baseline register + if (!ccs811_reg_write(dev, CCS811_REG_BASELINE, data, 2)) + return false; + + return true; +} + + +/** + * FUNCTIONS FOR INTERNAL USE ONLY + */ + + +static bool ccs811_enable_threshold (ccs811_sensor_t* dev, bool enabled) +{ + if (!dev) return false; + + ccs811_meas_mode_reg_t reg; + + // first, enable/disable the data ready interrupt + if (!ccs811_enable_interrupt (dev, enabled)) + return false; + + // read measurement mode register value + if (!ccs811_reg_read(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + return false; + + // second, enable/disable the threshold interrupt mode + reg.int_thresh = enabled; + + // write back measurement mode register + if (!ccs811_reg_write(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1)) + { + error_dev ("Could not set measurement mode register.", __FUNCTION__, dev); + return false; + } + + return true; +} + + +static bool ccs811_reg_read(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, uint32_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave starting at reg addr %02x.", __FUNCTION__, dev, len, reg); + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? CCS811_I2C_BUSY : CCS811_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave reg addr %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef CCS811_DEBUG_LEVEL_2 + printf("CCS811 %s: Read following bytes: ", __FUNCTION__); + printf("%0x: ", reg); + for (int i=0; i < len; i++) + printf("%0x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool ccs811_reg_write(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, uint32_t len) +{ + if (!dev) return false; + + debug_dev ("Write %d bytes to i2c slave starting at reg addr %02x", __FUNCTION__, dev, len, reg); + +# ifdef CCS811_DEBUG_LEVEL_2 + if (data && len) + { + printf("CCS811 %s: Write following bytes starting at reg addr %02x: ", __FUNCTION__, reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); + } +# endif + + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? CCS811_I2C_BUSY : CCS811_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + + return true; +} + + +static bool ccs811_check_error_status (ccs811_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = CCS811_OK; + + uint8_t status; + uint8_t err_reg; + + // check status register + if (!ccs811_reg_read(dev, CCS811_REG_STATUS, &status, 1)) + return false; + + if (!status & CCS811_STATUS_ERROR) + // everything is fine + return true; + + // Check the error register + if (!ccs811_reg_read(dev, CCS811_REG_ERROR_ID, &err_reg, 1)) + return false; + + if (err_reg & CCS811_ERR_WRITE_REG_INV) + { + error_dev ("Received an invalid register for write.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_WR_REG_INV; + return false; + } + + if (err_reg & CCS811_ERR_READ_REG_INV) + { + error_dev ("Received an invalid register for read.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_RD_REG_INV; + return false; + } + + if (err_reg & CCS811_ERR_MEASMODE_INV) + { + error_dev ("Received an invalid measurement mode request.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_MM_INV; + return false; + } + + if (err_reg & CCS811_ERR_MAX_RESISTANCE) + { + error_dev ("Sensor resistance measurement has reached" + " or exceeded the maximum range.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_MAX_RESIST; + return false; + } + + if (err_reg & CCS811_ERR_HEATER_FAULT) + { + error_dev ("Heater current not in range.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_HEAT_FAULT; + return false; + } + + if (err_reg & CCS811_ERR_HEATER_SUPPLY) + { + error_dev ("Heater voltage is not being applied correctly.", __FUNCTION__, dev); + dev->error_code = CCS811_DRV_HEAT_SUPPLY; + return false; + } + + return true; +} + + +static bool ccs811_is_available (ccs811_sensor_t* dev) +{ + if (!dev) return false; + + uint8_t reg_data[5]; + + // check hardware id (register 0x20) and hardware version (register 0x21) + if (!ccs811_reg_read(dev, CCS811_REG_HW_ID, reg_data, 5)) + return false; + + if (reg_data[0] != 0x81) + { + error_dev ("Wrong hardware ID %02x, should be 0x81", __FUNCTION__, dev, reg_data[0]); + dev->error_code = CCS811_DRV_HW_ID; + return false; + } + + debug_dev ("hardware version: %02x", __FUNCTION__, dev, reg_data[1]); + debug_dev ("firmware boot version: %02x", __FUNCTION__, dev, reg_data[3]); + debug_dev ("firmware app version: %02x", __FUNCTION__, dev, reg_data[4]); + + return ccs811_check_error_status (dev); +} + + diff --git a/extras/ccs811/ccs811.h b/extras/ccs811/ccs811.h new file mode 100644 index 0000000..d4f08e9 --- /dev/null +++ b/extras/ccs811/ccs811.h @@ -0,0 +1,331 @@ +/* + * Driver for AMS CCS811 digital gas sensor connected to I2C + * + * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef CCS811_DRV_H_ +#define CCS811_DRV_H_ + +#include "stdint.h" +#include "stdbool.h" + +// Uncomment one of the following defines to enable debug output +// #define CCS811_DEBUG_LEVEL_1 // only error messages +// #define CCS811_DEBUG_LEVEL_2 // debug and error messages + +// CCS811 I2C addresses +#define CCS811_I2C_ADDRESS_1 0x5A // default +#define CCS811_I2C_ADDRESS_2 0x5B + +// CCS811 clock streching counter +#define CCS811_I2C_CLOCK_STRETCH 200 + +// Definition of error codes +#define CCS811_OK 0 +#define CCS811_NOK -1 + +#define CCS811_INT_ERROR_MASK 0x000f +#define CCS811_DRV_ERROR_MASK 0xfff0 + +// Error codes for the I2C interface ORed with CCS811 driver error codes +#define CCS811_I2C_READ_FAILED 1 +#define CCS811_I2C_WRITE_FAILED 2 +#define CCS811_I2C_BUSY 3 + +// CCS811 driver error codes ORed with error codes for I2C the interface +#define CCS811_DRV_BOOT_MODE (1 << 8) // firmware is in boot mode +#define CCS811_DRV_NO_APP (2 << 8) // no application firmware loaded +#define CCS811_DRV_NO_NEW_DATA (3 << 8) // no new data samples are ready +#define CCS811_DRV_NO_IAQ_DATA (4 << 8) // no new data samples are ready +#define CCS811_DRV_HW_ID (5 << 8) // wrong hardware ID +#define CCS811_DRV_INV_SENS (6 << 8) // invalid sensor ID +#define CCS811_DRV_WR_REG_INV (7 << 8) // invalid register addr on write +#define CCS811_DRV_RD_REG_INV (8 << 8) // invalid register addr on read +#define CCS811_DRV_MM_INV (9 << 8) // invalid measurement mode +#define CCS811_DRV_MAX_RESIST (10 << 8) // max sensor resistance reached +#define CCS811_DRV_HEAT_FAULT (11 << 8) // heater current not in range +#define CCS811_DRV_HEAT_SUPPLY (12 << 8) // heater voltage not correct +#define CCS811_DRV_WRONG_MODE (13 << 8) // wrong measurement mode +#define CCS811_DRV_RD_STAT_FAILED (14 << 8) // read status register failed +#define CCS811_DRV_RD_DATA_FAILED (15 << 8) // read sensor data failed +#define CCS811_DRV_APP_START_FAIL (16 << 8) // sensor app start failure +#define CCS811_DRV_WRONG_PARAMS (17 << 8) // wrong parameters used + +// ranges +#define CCS_ECO2_RANGE_MIN 400 +#define CCS_ECO2_RANGE_MAX 8192 +#define CCS_TVOC_RANGE_MIN 0 +#define CCS_TVOC_RANGE_MAX 1187 + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief CCS811 operation modes + */ +typedef enum { + ccs811_mode_idle = 0, // Idle, low current mode + ccs811_mode_1s = 1, // Constant Power mode, IAQ values every 1 s + ccs811_mode_10s = 2, // Pulse Heating mode, IAQ values every 10 s + ccs811_mode_60s = 3, // Low Power Pulse Heating, IAQ values every 60 s + ccs811_mode_250ms = 4 // Constant Power mode, RAW data every 250 ms +} ccs811_mode_t; + + +/** + * @brief CCS811 sensor device data structure + */ +typedef struct { + + int error_code; // contains the error code of last operation + + uint8_t bus; // I2C bus + uint8_t addr; // I2C slave address + + ccs811_mode_t mode; // operation mode + +} ccs811_sensor_t; + + +/** + * @brief Initialize a CCS811 sensor + * + * The function initializes the CCS811 sensor and checks its availability. + * + * @param bus I2C bus at which CCS811 sensor is connected + * @param addr I2C slave address of the CCS811 sensor + * + * @return pointer to sensor data structure, or NULL on error + */ +ccs811_sensor_t* ccs811_init_sensor (uint8_t bus, uint8_t addr); + + +/** + * @brief Set the operation mode of the sensor + * + * The function sets the operating mode of the sensor. If the parameter + * *mode* is either *ccs811_mode_1s*, *ccs811_mode_10s*, *ccs811_mode_60s* + * or *ccs811_mode_250ms*, the sensor starts a periodic measurement with + * the specified period. Function *ccs811_get_results* can then be used at + * the same rate to get the results. + * + * In *ccs811_mode_1s*, *ccs811_mode_10s* and *ccs811_mode_60s*, raw sensor + * data as well as IAQ values calculated by the sensor values are available. + * In *ccs811_mode_250ms*, only raw data are available. + * + * In case, parameter mode is *ccs811_mode_idle*, the sensor does not perform + * any measurements. + * + * Please note: Mode timings are subject to typical 2% tolerance due + * to accuracy of internal sensor clock. + * + * Please note: After setting the sensor mode, the sensor needs up to + * 20 minutes, before accurate readings are generated. + * + * Please note: When a sensor operating mode is changed to a new mode with + * a lower sample rate, e.g., from *ccs811_mode_60s* to *ccs811_mode_1s, it + * should be placed in *mode_idle* for at least 10 minutes before enabling + * the new mode. + * + * @param sensor pointer to the sensor device data structure + * @param period measurement period in ms (default 1000 ms) + * + * @return true on success, false on error + */ +bool ccs811_set_mode (ccs811_sensor_t* sensor, ccs811_mode_t mode); + + +/** + * @brief Get latest IAQ sensor values and/or RAW sensor data + * + * The function reads the IAQ sensor values (TVOC and eCO2) and/or the raw + * sensor data. If some of the results are not needed, the corresponding + * pointer parameters can be set to NULL. + * + * Please note: If the function is called and no new data are available, + * e.g., due to the sensor mode time tolerance of 2%, the function still + * returns successfully. In this case, the results of the last measurement + * are returned and the error code CCS811_DRV_NO_NEW_DATA is set. + * + * Please note: In *ccs811_mode_250ms*, only RAW data are available. In + * that case, the function fails with error_code CCS811_DRV_NO_IAQ_DATA + * if parameters *iaq_tvoc* and *iaq_eco2* are not NULL. + * @param sensor pointer to the sensor device data structure + * @param iaq_tvoc TVOC total volatile organic compound (0 - 1187 ppb) + * @param iaq_eco2 eCO2 equivalent CO2 (400 - 8192 ppm) + * @param raw_i current through the sensor used for measuring (0 - 63 uA) + * @param raw_v voltage across the sensor measured (0 - 1023 = 1.65 V) + * + * @return true on success, false on error + */ +bool ccs811_get_results (ccs811_sensor_t* sensor, + uint16_t* iaq_tvoc, + uint16_t* iaq_eco2, + uint8_t* raw_i, + uint16_t* raw_v); + + +/** + * brief Get the resistance of connected NTC thermistor + * + * CCS811 supports an external interface for connecting a negative thermal + * coefficient thermistor (R_NTC) to provide a cost effective and power + * efficient means of calculating the local ambient temperature. The sensor + * measures the voltage V_NTC across the R_NTC as well as the voltage V_REF + * across a connected reference resistor (R_REF). + * + * The function returns the current resistance of R_NTC using the equation + * + * R_NTC = R_REF / V_REF * V_NTC + * + * Using the data sheet of the NTC, the ambient temperature can be calculated. + * + * @param sensor pointer to the sensor device data structure + * @param reference resistance of R_REF in Ohm + * @return resistance of R_NTC in Ohm, or 0 on error + */ +uint32_t ccs811_get_ntc_resistance (ccs811_sensor_t* sensor, uint32_t r_ref); + + +/* + * @brief Set environmental data + * + * If information about the environment are available from another sensor, + * they can be used by CCS811 to compensate gas readings due to + * temperature and humidity changes. + * + * @param sensor pointer to the sensor device data structure + * @param temperature measured temperature in degree Celsius + * @param humidity measured relative humidity in percent + * + * @return true on success, false on error + */ +bool ccs811_set_environmental_data (ccs811_sensor_t* sensor, + float temperature, float humidity); + + +/** + * @brief Enable or disable data ready interrupt signal *nINT* + * + * At the end of each measurement cycle (250ms, 1s, 10s, 60s), CCS811 can + * optionally trigger an interrupt. The signal *nINT* is driven low as soon + * as new sensor values are ready to read. It will stop being driven low + * when sensor data are read with function *ccs811_get_results*. + * + * The interrupt is disabled by default. + * + * @param sensor pointer to the sensor device data structure + * @param enabled if true, the interrupt is enabled, or disabled otherwise + * + * @return true on success, false on error + */ +bool ccs811_enable_interrupt (ccs811_sensor_t* sensor, bool enabled); + + +/* + * @brief Set eCO2 threshold mode for data ready interrupts + * + * The user task can choose that the data ready interrupt is not generated + * every time when new sensor values become ready but only if the eCO2 value + * moves from the current range (LOW, MEDIUM, or HIGH) into another range by + * more than a hysteresis value. Hysteresis is used to prevent multiple + * interrupts close to a threshold. + * + * LOW below parameter value *low* + * MEDIUM between parameter values *low* and *high* + * HIGH above parameter value *high* is range HIGH. + * + * If all parameters have valid values, the function sets the thresholds and + * enables the data ready interrupt. Using 0 for all parameters disables the + * interrupt. + * + * The interrupt is disabled by default. + * + * @param sensor pointer to the sensor device data structure + * @param low threshold LOW to MEDIUM (> 400, default 1500) + * @param high threshold MEDIUM to HIGH (< 8192, default 2500) + * @param hysteresis hysteresis value (default 50) + * + * @return true on success, false on error + */ +bool ccs811_set_eco2_thresholds (ccs811_sensor_t* sensor, + uint16_t low, + uint16_t high, + uint8_t hysteresis); + +/* + * @brief Get the current baseline value from sensor + * + * The sensor supports automatic baseline correction over a minimum time of + * 24 hours. Using this function, the current baseline value can be saved + * before the sensor is powered down. This baseline can then be restored after + * sensor is powered up again to continue the automatic baseline process. + * + * @param sensor pointer to the sensor device data structure + * @return current baseline value on success, or 0 on error + */ +uint16_t ccs811_get_baseline (ccs811_sensor_t* sensor); + + +/* + * @brief Write a previously stored baseline value to the sensor + * + * The sensor supports automatic baseline correction over a minimum time of + * 24 hours. Using this function, a previously saved baseline value be + * restored after the sensor is powered up to continue the automatic baseline + * process. + * + * Please note: The baseline must be written after the conditioning period + * of 20 min after power up. + * + * @param sensor pointer to the sensor device data structure + * @param basline baseline to be set + * @return true on success, false on error + */ +bool ccs811_set_baseline (ccs811_sensor_t* sensor, uint16_t baseline); + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* CCS811_DRV_H_ */ + + diff --git a/extras/ccs811/component.mk b/extras/ccs811/component.mk new file mode 100644 index 0000000..b69ad0b --- /dev/null +++ b/extras/ccs811/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/ccs811 + +# expected anyone using ccs811 driver includes it as 'ccs811/ccs811.h' +INC_DIRS += $(ccs811_ROOT).. + +# args for passing into compile rule generation +ccs811_SRC_DIR = $(ccs811_ROOT) + +$(eval $(call component_compile_rules,ccs811)) From 85338ee672dd71b954fa9a6451507a391b347ae5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 7 Dec 2017 11:50:43 +1100 Subject: [PATCH 247/349] mDNS-responder: ipv6 support and fixes * Adds ipv6 support. Compiles with ipv6 enabled and then accepts ipv6 connections and answers AAAA questions. * Fixes a few overflows of the reply buffer. Reduce the default reply buffer size, name it MDNS_RESPONDER_REPLY_SIZE, and allow overriding. * Fix mdns_add_TXT. * Prefer malloc to large stack buffers, to control stack sizes, and try to malloc only the buffer size needed where known in advance. * Determine the IP addresses when responding, eliminating the update function and the update task. * Allow use in SoftAP and StationAP mode too. * Fix to compile without the debug output. * Slightly better integration with lwip. * Accept a NULL TXT entry. * Some code style changes, not comprehensive. --- extras/mdnsresponder/mdnsresponder.c | 563 +++++++++++++++------------ extras/mdnsresponder/mdnsresponder.h | 26 +- 2 files changed, 340 insertions(+), 249 deletions(-) diff --git a/extras/mdnsresponder/mdnsresponder.c b/extras/mdnsresponder/mdnsresponder.c index 98d0897..0a8781d 100644 --- a/extras/mdnsresponder/mdnsresponder.c +++ b/extras/mdnsresponder/mdnsresponder.c @@ -1,9 +1,10 @@ /* * Basic multicast DNS responder * - * Advertises the IP address, port, and characteristics of a service to other devices using multicast DNS on the same LAN, - * so they can find devices with addresses dynamically allocated by DHCP. See avahi, Bonjour, etc - * See RFC6762, RFC6763 + * Advertises the IP address, port, and characteristics of a service to other + * devices using multicast DNS on the same LAN, so they can find devices with + * addresses dynamically allocated by DHCP. See avahi, Bonjour, etc. See + * RFC6762, RFC6763 * * This sample code is in the public domain. * @@ -26,22 +27,21 @@ #include #include #include +#include #include #include #include #include "mdnsresponder.h" +#if !LWIP_IGMP +#error "LWIP_IGMP needs to be defined in lwipopts.h" +#endif + #define qDebugLog // Log activity generally #define qLogIncoming // Log all arriving multicast packets #define qLogAllTraffic // Log and decode all mDNS packets -#define kMDNSStackSize 800 - -#define DNS_MULTICAST_ADDRESS "224.0.0.251" // RFC 6762 -#define DNS_MDNS_PORT 5353 // RFC 6762 -#define DNS_MSG_SIZE 512 - //------------------------------------------------------------------- #ifdef PACK_STRUCT_USE_INCLUDES @@ -120,13 +120,15 @@ typedef struct mdns_rsrc { } mdns_rsrc; static struct udp_pcb* gMDNS_pcb = NULL; -static ip_addr_t gMulticastAddr; // == DNS_MULTICAST_ADDRESS +static const ip_addr_t gMulticastV4Addr = DNS_MQUERY_IPV4_GROUP_INIT; +#if LWIP_IPV6 +#include "lwip/mld6.h" +static const ip_addr_t gMulticastV6Addr = DNS_MQUERY_IPV6_GROUP_INIT; +#endif static mdns_rsrc* gDictP = NULL; // RR database, linked list //---------------------- Debug/logging utilities ------------------------- -#ifdef qDebugLog - // DNS field TYPE used for "Resource Records", some additions #define DNS_RRTYPE_AAAA 28 /* IPv6 host address */ #define DNS_RRTYPE_SRV 33 /* Service record */ @@ -146,6 +148,7 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list #define DNS_FLAG2_RA 0x80 #define DNS_FLAG2_RESMASK 0x0F +#ifdef qDebugLog static char qstr[12]; static char* mdns_qrtype(uint16_t typ) @@ -160,11 +163,11 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list case DNS_RRTYPE_NSEC : return ("NSEC "); case DNS_RRTYPE_ANY : return ("ANY"); } - sprintf(qstr,"type %d",typ); + sprintf(qstr, "type %d", typ); return qstr; } - #ifdef qLogAllTraffic +#ifdef qLogAllTraffic static void mdns_printhex(u8_t* p, int n) { @@ -183,7 +186,9 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list n = *p++; cp = (char*)p; - for (i=0; i",n); n = 0; } else { - for (i=0; i0); + } while (n > 0); return (u8_t*)cp; } @@ -230,10 +235,10 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list if (hdr->flags1 & DNS_FLAG1_RESP) { printf("Response, ID $%X %s ", htons(hdr->id), (hdr->flags1 & DNS_FLAG1_AUTH) ? "Auth " : "Non-auth "); if (hdr->flags2 & DNS_FLAG2_RA) printf("RA "); - if ((hdr->flags2 & DNS_FLAG2_RESMASK)==0) printf("noerr"); + if ((hdr->flags2 & DNS_FLAG2_RESMASK) == 0) printf("noerr"); else printf("err %d", hdr->flags2 & DNS_FLAG2_RESMASK); } else { - printf("Query, ID $%X op %d", htons(hdr->id), (hdr->flags1>>4) & 0x7 ); + printf("Query, ID $%X op %d", htons(hdr->id), (hdr->flags1 >> 4) & 0x7 ); } if (hdr->flags1 & DNS_FLAG1_RD) printf("RD "); if (hdr->flags1 & DNS_FLAG1_TRUNC) printf("[TRUNC] "); @@ -249,13 +254,13 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list return (u8_t*)hdr + SIZEOF_DNS_HDR; } - static u8_t* mdns_print_query(u8_t* p) // Copy needed because it may be misaligned + static u8_t* mdns_print_query(u8_t* p) { struct mdns_query q; uint16_t c; - memcpy(&q,p,SIZEOF_DNS_QUERY); + memcpy(&q, p, SIZEOF_DNS_QUERY); c = htons(q.class); printf(" %s %s", mdns_qrtype(htons(q.type)), mdns_qclass(c & 0x7FFF) ); if (c & 0x8000) printf(" unicast-req"); @@ -263,8 +268,8 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list return p + SIZEOF_DNS_QUERY; } - static u8_t* mdns_print_answer(u8_t* p, struct mdns_hdr* hp) // Copy needed because it may be misaligned + static u8_t* mdns_print_answer(u8_t* p, struct mdns_hdr* hp) { struct mdns_answer ans; u16_t rrlen, atype, rrClass;; @@ -278,23 +283,23 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list printf("cache-flush "); if (rrlen > 0) { u8_t* rp = p + SIZEOF_DNS_ANSWER; - if (atype==DNS_RRTYPE_A && rrlen==4) { + if (atype == DNS_RRTYPE_A && rrlen == 4) { printf("%d.%d.%d.%d\n",rp[0],rp[1],rp[2],rp[3]); - } else if (atype==DNS_RRTYPE_PTR) { + } else if (atype == DNS_RRTYPE_PTR) { mdns_print_name(rp, hp); printf("\n"); - } else if (atype==DNS_RRTYPE_TXT) { + } else if (atype == DNS_RRTYPE_TXT) { mdns_print_pstr(rp); printf("\n"); - } else if (atype==DNS_RRTYPE_SRV && rrlen > SIZEOF_DNS_RR_SRV) { + } else if (atype == DNS_RRTYPE_SRV && rrlen > SIZEOF_DNS_RR_SRV) { struct mdns_rr_srv srvRR; - memcpy(&srvRR,rp,SIZEOF_DNS_RR_SRV); - printf("prio %d, weight %d, port %d, target ", srvRR.prio, srvRR.weight, srvRR.port); + memcpy(&srvRR, rp, SIZEOF_DNS_RR_SRV); + printf("prio %d, weight %d, port %d, target ", srvRR.prio, srvRR.weight, ntohs(srvRR.port)); mdns_print_name(rp + SIZEOF_DNS_RR_SRV, hp); printf("\n"); } else { - printf("%db:",rrlen); - mdns_printhex(rp,rrlen); + printf("%db:", rrlen); + mdns_printhex(rp, rrlen); } } else printf("\n"); @@ -304,50 +309,49 @@ static mdns_rsrc* gDictP = NULL; // RR database, linked list static int mdns_print_msg(u8_t* msgP, int msgLen) { int i; - u8_t* tp; - u8_t* limP = msgP + msgLen; + u8_t *tp; + u8_t *limP = msgP + msgLen; struct mdns_hdr* hdr; hdr = (struct mdns_hdr*) msgP; tp = mdns_print_header(hdr); - for (i=0; inumquestions); i++) { - printf(" Q%d: ",i+1); - tp = mdns_print_name(tp,hdr); + for (i = 0; i < htons(hdr->numquestions); i++) { + printf(" Q%d: ", i + 1); + tp = mdns_print_name(tp, hdr); tp = mdns_print_query(tp); if (tp > limP) return 0; } - for (i=0; inumanswers); i++) { - printf(" A%d: ",i+1); - tp = mdns_print_name(tp,hdr); - tp = mdns_print_answer(tp,hdr); + for (i = 0; i < htons(hdr->numanswers); i++) { + printf(" A%d: ", i + 1); + tp = mdns_print_name(tp, hdr); + tp = mdns_print_answer(tp, hdr); if (tp > limP) return 0; } - for (i=0; inumauthrr); i++) { - printf(" AuRR%d: ",i+1); - tp = mdns_print_name(tp,hdr); - tp = mdns_print_answer(tp,hdr); + for (i = 0; i < htons(hdr->numauthrr); i++) { + printf(" AuRR%d: ", i + 1); + tp = mdns_print_name(tp, hdr); + tp = mdns_print_answer(tp, hdr); if (tp > limP) return 0; } - for (i=0; inumextrarr); i++) { - printf(" ExRR%d: ",i+1); - tp = mdns_print_name(tp,hdr); - tp = mdns_print_answer(tp,hdr); + for (i = 0; i < htons(hdr->numextrarr); i++) { + printf(" ExRR%d: ", i + 1); + tp = mdns_print_name(tp, hdr); + tp = mdns_print_answer(tp, hdr); if (tp > limP) return 0; } return 1; } - #endif - +#endif // qLogAllTraffic #endif // qDebugLog //--------------------------------------------------------------------------- -static u8_t* mdns_labels2str(u8_t* hdrP, u8_t* p, char* qStr) // Convert a DNS domain name label sequence into C string with . seperators // Handles compression +static u8_t* mdns_labels2str(u8_t* hdrP, u8_t* p, char* qStr) { int i, n; @@ -362,51 +366,51 @@ static u8_t* mdns_labels2str(u8_t* hdrP, u8_t* p, char* qStr) printf(">>> mdns_labels2str,label $%X?",n); return p; } else { - for (i=0; i0); return p; } -static int mdns_str2labels(const char* name, u8_t* lseq, int max) // Encode a .. as a sequence of labels, return length +static int mdns_str2labels(const char* name, u8_t* lseq, int max) { - int i,n,sdx,idx = 0; + int i, n, sdx, idx = 0; int lc = 0; do { sdx = idx; while (name[idx] != '.' && name[idx] != 0) idx++; - n = idx-sdx; - *lseq++ = n; - lc++; - if (lc+n > max) { - printf(">>> mdns_str2labels: oversize (%d)\n",lc+n); + n = idx - sdx; + if (lc + 1 + n > max) { + printf(">>> mdns_str2labels: oversize (%d)\n", lc + 1 + n); return 0; } - for (i=0; i0); + } while (n > 0); return lc; } -static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClass, uint16_t* qType, u8_t* qUnicast) // Unpack a DNS question RR at qp, return pointer to next RR +static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClass, uint16_t* qType, u8_t* qUnicast) { struct mdns_query qr; uint16_t cls; qp = mdns_labels2str(hdrP, qp, qStr); - memcpy(&qr,qp,SIZEOF_DNS_QUERY); + memcpy(&qr, qp, SIZEOF_DNS_QUERY); *qType = htons(qr.type); cls = htons(qr.class); - *qUnicast = cls>>15; + *qUnicast = cls >> 15; *qClass = cls & 0x7FFF; return qp + SIZEOF_DNS_QUERY; } @@ -414,8 +418,8 @@ static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClas //--------------------------------------------------------------------------- -static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const void* dataP, u16_t vDataSize) // Add a record to the RR database list +static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const void* dataP, u16_t vDataSize) { mdns_rsrc* rsrcP; int keyLen, recSize; @@ -423,9 +427,9 @@ static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const vo keyLen = strlen(vKey) + 1; recSize = sizeof(mdns_rsrc) - kDummyDataSize + keyLen + vDataSize; rsrcP = (mdns_rsrc*)malloc(recSize); - if (rsrcP==NULL) + if (rsrcP == NULL) { printf(">>> mdns_add_response: couldn't alloc %d\n",recSize); - else { + } else { rsrcP->rType = vType; rsrcP->rTTL = ttl; rsrcP->rKeySize = keyLen; @@ -434,20 +438,21 @@ static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const vo memcpy(&rsrcP->rData[keyLen], dataP, vDataSize); rsrcP->rNext = gDictP; gDictP = rsrcP; - #ifdef qDebugLog - printf("mDNS added RR '%s' %s, %d bytes\n", vKey, mdns_qrtype(vType), vDataSize); - #endif +#ifdef qDebugLog + printf("mDNS added RR '%s' %s, %d bytes\n", vKey, mdns_qrtype(vType), vDataSize); +#endif } } void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nmStr) { - int nl; + size_t nl; u8_t lBuff[kMaxNameSize]; - nl = mdns_str2labels(nmStr,lBuff,sizeof(lBuff)); - if (nl>0) + nl = mdns_str2labels(nmStr, lBuff, sizeof(lBuff)); + if (nl > 0) { mdns_add_response(rKey, DNS_RRTYPE_PTR, ttl, lBuff, nl); + } } void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targName) @@ -463,91 +468,101 @@ void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targName temp.srvRR.prio = 0; temp.srvRR.weight = 0; temp.srvRR.port = htons(rPort); - nl = mdns_str2labels(targName,temp.lBuff,sizeof(temp.lBuff)); - if (nl>0) + nl = mdns_str2labels(targName, temp.lBuff, sizeof(temp.lBuff)); + if (nl > 0) mdns_add_response(rKey, DNS_RRTYPE_SRV, ttl, &temp, SIZEOF_DNS_RR_SRV + nl); } -void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txStr) // Single TXT str, can be concatenated +void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txStr) { - char pstr[256]; u16_t n = strlen(txStr); - if (n > 255) + if (n > 255) { printf(">>> mdns_add_TXT oversize (%d)\n",n); - else { - pstr[0] = n; - memcpy(&pstr[1],txStr,n); - mdns_add_response(rKey, DNS_RRTYPE_TXT, ttl, txStr, n+1); + return; } + + char *pstr = malloc(n + 1); + pstr[0] = n; + memcpy(&pstr[1], txStr, n); + mdns_add_response(rKey, DNS_RRTYPE_TXT, ttl, pstr, n + 1); + free(pstr); } -void mdns_add_A(const char* rKey, u32_t ttl, ip_addr_t addr) +void mdns_add_A(const char* rKey, u32_t ttl, const ip4_addr_t *addr) { - mdns_add_response(rKey, DNS_RRTYPE_A, ttl, &addr, sizeof(addr)); + mdns_add_response(rKey, DNS_RRTYPE_A, ttl, addr, sizeof(ip4_addr_t)); } +#if LWIP_IPV6 +void mdns_add_AAAA(const char* rKey, u32_t ttl, const ip6_addr_t *addr) +{ + mdns_add_response(rKey, DNS_RRTYPE_AAAA, ttl, addr, sizeof(addr->addr)); +} +#endif + void mdns_add_facility( const char* instanceName, // Friendly name, need not be unique - const char* serviceName, // Must be "name", e.g. "hap" or "http" + const char* serviceName, // Must be "_name", e.g. "_hap" or "_http" const char* addText, // Must be = mdns_flags flags, // TCP or UDP u16_t onPort, // port number u32_t ttl // seconds ) { - char key[64]; - char fullName[128]; - char devName[96]; - struct ip_info ipInfo; + size_t key_len = strlen(serviceName) + 12; + char *key = malloc(key_len + 1); + size_t full_name_len = strlen(instanceName) + 1 + key_len; + char *fullName = malloc(full_name_len + 1); + size_t dev_name_len = strlen(instanceName) + 7; + char *devName = malloc(dev_name_len + 1); - #ifdef qDebugLog - printf("\nmDNS advertising instance %s protocol %s text %s on port %d %s TTL %d secs\n", - instanceName, serviceName, addText, onPort, (flags & mdns_UDP) ? "UDP" : "TCP", ttl); - #endif +#ifdef qDebugLog + printf("\nmDNS advertising instance %s protocol %s", instanceName, serviceName); + if (addText) { + printf(" text %s", addText); + } + printf(" on port %d %s TTL %d secs\n", onPort, (flags & mdns_UDP) ? "UDP" : "TCP", ttl); +#endif - snprintf(key, sizeof(key), "%s.%s.local.", serviceName, (flags & mdns_UDP) ? "_udp" :"_tcp"); - snprintf(fullName, sizeof(fullName), "%s.%s", instanceName, key); - snprintf(devName, sizeof(devName), "%s.local.", instanceName); - - if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) - ipInfo.ip.addr = IPADDR_NONE; + snprintf(key, key_len + 1, "%s.%s.local.", serviceName, (flags & mdns_UDP) ? "_udp" :"_tcp"); + snprintf(fullName, full_name_len + 1, "%s.%s", instanceName, key); + snprintf(devName, dev_name_len + 1, "%s.local.", instanceName); // Order has significance for extraRR feature - mdns_add_TXT(fullName, ttl, addText); - mdns_add_A(devName, ttl, ipInfo.ip); + if (addText) { + mdns_add_TXT(fullName, ttl, addText); + } + +#if LWIP_IPV6 + const ip6_addr_t addr6 = { {0ul, 0ul, 0ul, 0ul} }; + mdns_add_AAAA(devName, ttl, &addr6); +#endif + + const ip4_addr_t addr4 = { 0 }; + mdns_add_A(devName, ttl, &addr4); + mdns_add_SRV(fullName, ttl, onPort, devName); mdns_add_PTR(key, ttl, fullName); // Optional, makes us browsable - if (flags & mdns_Browsable) - mdns_add_PTR("_services._dns-sd._udp.local.",ttl,key); -} - -static void mdns_update_ipaddr(struct ip_info* ipInfo) -// IP address has been defined/changed: update any A records with the new IP -{ - mdns_rsrc* rp = gDictP; - while (rp != NULL) { - if (rp->rType==DNS_RRTYPE_A) { - #ifdef qDebugLog - printf("Updating A record for '%s' to %d.%d.%d.%d\n", rp->rData, - ip4_addr1(&ipInfo->ip), ip4_addr2(&ipInfo->ip), ip4_addr3(&ipInfo->ip), ip4_addr4(&ipInfo->ip)); - #endif - memcpy(&rp->rData[rp->rKeySize], &ipInfo->ip, sizeof(ip_addr_t)); - } - rp = rp->rNext; + if (flags & mdns_Browsable) { + mdns_add_PTR("_services._dns-sd._udp.local.", ttl, key); } + + free(key); + free(fullName); + free(devName); } static mdns_rsrc* mdns_match(const char* qstr, u16_t qType) { mdns_rsrc* rp = gDictP; while (rp != NULL) { - if (rp->rType==qType || qType==DNS_RRTYPE_ANY) { - if (strcasecmp(rp->rData,qstr)==0) { - #ifdef qDebugLog - printf(" - matched '%s' %s\n",qstr,mdns_qrtype(rp->rType)); - #endif + if (rp->rType == qType || qType == DNS_RRTYPE_ANY) { + if (strcasecmp(rp->rData, qstr) == 0) { +#ifdef qDebugLog + printf(" - matched '%s' %s\n", qstr, mdns_qrtype(rp->rType)); +#endif break; } } @@ -556,11 +571,22 @@ static mdns_rsrc* mdns_match(const char* qstr, u16_t qType) return rp; } -static int mdns_add_to_answer(mdns_rsrc* rsrcP, u8_t* resp, int respLen) // Create answer RR and append to resp[respLen], return new length +static int mdns_add_to_answer(mdns_rsrc* rsrcP, u8_t* resp, int respLen) { // Key is stored as C str, convert to labels - respLen += mdns_str2labels(rsrcP->rData, &resp[respLen], DNS_MSG_SIZE-respLen); + size_t rem = MDNS_RESPONDER_REPLY_SIZE - respLen; + size_t len = mdns_str2labels(rsrcP->rData, &resp[respLen], rem); + if (len == 0) { + // Overflow, skip this answer. + return respLen; + } + if ((len + SIZEOF_DNS_ANSWER + rsrcP->rDataSize) > rem) { + // Overflow, skip this answer. + printf(">>> mdns_add_to_answer: oversize (%d)\n", len + SIZEOF_DNS_ANSWER + rsrcP->rDataSize); + return respLen; + } + respLen += len; // Answer fields: may be misaligned, so build and memcpy struct mdns_answer ans; @@ -580,29 +606,43 @@ static int mdns_add_to_answer(mdns_rsrc* rsrcP, u8_t* resp, int respLen) //--------------------------------------------------------------------------- -static void mdns_send_mcast(u8_t* msgP, int nBytes) // Send UDP to multicast address +static void mdns_send_mcast(const ip_addr_t *addr, u8_t* msgP, int nBytes) { struct pbuf* p; err_t err; +#ifdef qLogAllTraffic + mdns_print_msg(msgP, nBytes); +#endif + p = pbuf_alloc(PBUF_TRANSPORT, nBytes, PBUF_RAM); if (p) { memcpy(p->payload, msgP, nBytes); - err = udp_sendto(gMDNS_pcb, p, &gMulticastAddr, DNS_MDNS_PORT); - if (err==ERR_OK) { - #ifdef qDebugLog - printf(" - responded with %d bytes err %d\n",nBytes,err); - #endif + const ip_addr_t *dest_addr; + if (IP_IS_V6_VAL(*addr)) { +#if LWIP_IPV6 + dest_addr = &gMulticastV6Addr; +#endif + } else { + dest_addr = &gMulticastV4Addr; + } + struct netif *netif = ip_current_input_netif(); + err = udp_sendto_if(gMDNS_pcb, p, dest_addr, LWIP_IANA_PORT_MDNS, netif); + if (err == ERR_OK) { +#ifdef qDebugLog + printf(" - responded with %d bytes err %d\n", nBytes, err); +#endif } else - printf(">>> mdns_send failed %d\n",err); + printf(">>> mdns_send failed %d\n", err); pbuf_free(p); - } else - printf(">>> mdns_send: alloc failed[%d]\n",nBytes); + } else { + printf(">>> mdns_send: alloc failed[%d]\n", nBytes); + } } - -static void mdns_reply(struct mdns_hdr* hdrP) + // Message has passed tests, may want to send an answer +static void mdns_reply(const ip_addr_t *addr, struct mdns_hdr* hdrP) { int i, nquestions, respLen; struct mdns_hdr* rHdr; @@ -611,9 +651,9 @@ static void mdns_reply(struct mdns_hdr* hdrP) u8_t* qp; u8_t* mdns_response; - mdns_response = malloc(DNS_MSG_SIZE); - if (mdns_response==NULL) { - printf(">>> mdns_reply could not alloc %d\n",DNS_MSG_SIZE); + mdns_response = malloc(MDNS_RESPONDER_REPLY_SIZE); + if (mdns_response == NULL) { + printf(">>> mdns_reply could not alloc %d\n", MDNS_RESPONDER_REPLY_SIZE); return; } @@ -632,25 +672,63 @@ static void mdns_reply(struct mdns_hdr* hdrP) qp = qBase + SIZEOF_DNS_HDR; nquestions = htons(hdrP->numquestions); - for (i=0; inumanswers = htons( htons(rHdr->numanswers) + 1 ); +#if LWIP_IPV6 + if (rsrcP->rType == DNS_RRTYPE_AAAA) { + // Emit an answer for each ipv6 address. + struct netif *netif = ip_current_input_netif(); + for (int i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) { + if (ip6_addr_isvalid(netif_ip6_addr_state(netif, i))) { + const ip6_addr_t *addr6 = netif_ip6_addr(netif, i); +#ifdef qDebugLog + char addr6_str[IP6ADDR_STRLEN_MAX]; + ip6addr_ntoa_r(addr6, addr6_str, IP6ADDR_STRLEN_MAX); + printf("Updating AAAA record for '%s' to %s\n", rsrcP->rData, addr6_str); +#endif + memcpy(&rsrcP->rData[rsrcP->rKeySize], addr6, sizeof(addr6->addr)); + size_t new_len = mdns_add_to_answer(rsrcP, mdns_response, respLen); + if (new_len > respLen) { + rHdr->numanswers = htons(htons(rHdr->numanswers) + 1); + respLen = new_len; + } + } + } + continue; + } +#endif + + if (rsrcP->rType == DNS_RRTYPE_A) { + struct netif *netif = ip_current_input_netif(); +#ifdef qDebugLog + char addr4_str[IP4ADDR_STRLEN_MAX]; + ip4addr_ntoa_r(netif_ip4_addr(netif), addr4_str, IP4ADDR_STRLEN_MAX); + printf("Updating A record for '%s' to %s\n", rsrcP->rData, addr4_str); +#endif + memcpy(&rsrcP->rData[rsrcP->rKeySize], netif_ip4_addr(netif), sizeof(ip4_addr_t)); + } + + size_t new_len = mdns_add_to_answer(rsrcP, mdns_response, respLen); + if (new_len > respLen) { + rHdr->numanswers = htons(htons(rHdr->numanswers) + 1); + respLen = new_len; + } + // Extra RR logic: if SRV follows PTR, or A follows SRV, volunteer it in extraRR // Not required, but could do more here, see RFC6763 s12 - if (qType==DNS_RRTYPE_PTR) { - if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_SRV) + if (qType == DNS_RRTYPE_PTR) { + if (rsrcP->rNext && rsrcP->rNext->rType == DNS_RRTYPE_SRV) extra = rsrcP->rNext; - } else if (qType==DNS_RRTYPE_SRV) { - if (rsrcP->rNext && rsrcP->rNext->rType==DNS_RRTYPE_A) + } else if (qType == DNS_RRTYPE_SRV) { + if (rsrcP->rNext && rsrcP->rNext->rType == DNS_RRTYPE_A) extra = rsrcP->rNext; } } @@ -659,16 +737,29 @@ static void mdns_reply(struct mdns_hdr* hdrP) if (respLen > SIZEOF_DNS_HDR) { if (extra) { - respLen = mdns_add_to_answer(extra, mdns_response, respLen); - rHdr->numextrarr = htons( htons(rHdr->numextrarr) + 1 ); + if (extra->rType == DNS_RRTYPE_A) { + struct netif *netif = ip_current_input_netif(); +#ifdef qDebugLog + char addr4_str[IP4ADDR_STRLEN_MAX]; + ip4addr_ntoa_r(netif_ip4_addr(netif), addr4_str, IP4ADDR_STRLEN_MAX); + printf("Updating A record for '%s' to %s\n", extra->rData, addr4_str); +#endif + memcpy(&extra->rData[extra->rKeySize], netif_ip4_addr(netif), sizeof(ip4_addr_t)); + } + size_t new_len = mdns_add_to_answer(extra, mdns_response, respLen); + if (new_len > respLen) { + rHdr->numextrarr = htons(htons(rHdr->numextrarr) + 1); + respLen = new_len; + } } - mdns_send_mcast(mdns_response, respLen); + mdns_send_mcast(addr, mdns_response, respLen); } + free(mdns_response); } -static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port) // Callback from udp_recv +static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port) { UNUSED_ARG(pcb); UNUSED_ARG(port); @@ -676,30 +767,32 @@ static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t u8_t* mdns_payload; int plen; - // Sanity checks on size plen = p->tot_len; - if (plen > DNS_MSG_SIZE) { +#ifdef qLogIncoming + char addr_str[IPADDR_STRLEN_MAX]; + ipaddr_ntoa_r(addr, addr_str, IPADDR_STRLEN_MAX); + printf("\n\nmDNS IPv%d got %d bytes from %s\n", IP_IS_V6(addr) ? 6 : 4, plen, addr_str); +#endif + + // Sanity checks on size + if (plen > MDNS_RESPONDER_REPLY_SIZE) { printf(">>> mdns_recv: pbuf too big\n"); } else if (plen < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + 1 + SIZEOF_DNS_ANSWER + 1)) { printf(">>> mdns_recv: pbuf too small\n"); } else { - #ifdef qLogIncoming - printf("\n\nmDNS got %d bytes from %d.%d.%d.%d\n",plen, ip4_addr1(addr), ip4_addr2(addr), ip4_addr3(addr), ip4_addr4(addr)); - #endif mdns_payload = malloc(plen); - if (!mdns_payload) + if (!mdns_payload) { printf(">>> mdns_recv, could not alloc %d\n",plen); - else { + } else { if (pbuf_copy_partial(p, mdns_payload, plen, 0) == plen) { struct mdns_hdr* hdrP = (struct mdns_hdr*) mdns_payload; - - #ifdef qLogAllTraffic - mdns_print_msg(mdns_payload, plen); - #endif +#ifdef qLogAllTraffic + mdns_print_msg(mdns_payload, plen); +#endif if ( (hdrP->flags1 & (DNS_FLAG1_RESP + DNS_FLAG1_OPMASK + DNS_FLAG1_TRUNC) ) == 0 && hdrP->numquestions > 0 ) - mdns_reply(hdrP); + mdns_reply(addr, hdrP); } free(mdns_payload); } @@ -707,92 +800,82 @@ static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t pbuf_free(p); } -static void mdns_start() // If we are in station mode and have an IP address, start a multicast UDP receive +void mdns_init() { - struct ip_info ipInfo; err_t err; - if (sdk_wifi_get_opmode() != STATION_MODE) { - printf(">>> mDNS_start: wifi opmode not station\n"); - return; - } + struct netif *station_netif = sdk_system_get_netif(STATION_IF); - if (!sdk_wifi_get_ip_info(STATION_IF,&ipInfo)) { - printf(">>> mDNS_start: no IP addr\n"); - return; - } - - mdns_update_ipaddr(&ipInfo); - - // Start IGMP on the netif for our interface: this isn't done for us - struct netif* nfp = netif_list; - while (nfp!=NULL) { - if ( ip_addr_cmp(&ipInfo.ip, &(nfp->ip_addr)) ) { - if (!(nfp->flags & NETIF_FLAG_IGMP)) { - nfp->flags |= NETIF_FLAG_IGMP; - err = igmp_start(nfp); - if (err != ERR_OK) { - printf(">>> mDNS_start: igmp_start on %c%c failed %d\n",nfp->name[0], nfp->name[1],err); - return; - } - } + if (station_netif) { + // Start IGMP on the netif for our interface: this isn't done for us + if (!(station_netif->flags & NETIF_FLAG_IGMP)) { + station_netif->flags |= NETIF_FLAG_IGMP; + err = igmp_start(station_netif); + if (err != ERR_OK) { + printf(">>> mDNS_init: igmp_start on %c%c failed %d\n", station_netif->name[0], station_netif->name[1],err); + return; + } } - nfp = nfp->next; + + if ((err = igmp_joingroup_netif(station_netif, ip_2_ip4(&gMulticastV4Addr))) != ERR_OK) { + printf(">>> mDNS_init: igmp_join failed %d\n",err); + return; + } + +#if LWIP_IPV6 + if ((err = mld6_joingroup_netif(station_netif, ip_2_ip6(&gMulticastV6Addr))) != ERR_OK) { + printf(">>> mDNS_init: igmp_join failed %d\n",err); + return; + } +#endif } - gMDNS_pcb = udp_new(); + struct netif *softap_netif = sdk_system_get_netif(SOFTAP_IF); + if (softap_netif) { + if (softap_netif == NULL) { + printf(">>> mDNS_init: wifi opmode not softap\n"); + return; + } + + // Start IGMP on the netif for our interface: this isn't done for us + if (!(softap_netif->flags & NETIF_FLAG_IGMP)) { + softap_netif->flags |= NETIF_FLAG_IGMP; + err = igmp_start(softap_netif); + if (err != ERR_OK) { + printf(">>> mDNS_init: igmp_start on %c%c failed %d\n", softap_netif->name[0], softap_netif->name[1],err); + return; + } + } + + if ((err = igmp_joingroup_netif(softap_netif, ip_2_ip4(&gMulticastV4Addr))) != ERR_OK) { + printf(">>> mDNS_init: igmp_join failed %d\n",err); + return; + } + +#if LWIP_IPV6 + if ((err = mld6_joingroup_netif(softap_netif, ip_2_ip6(&gMulticastV6Addr))) != ERR_OK) { + printf(">>> mDNS_init: igmp_join failed %d\n",err); + return; + } +#endif + } + + if (station_netif == NULL && softap_netif == NULL) { + printf(">>> mDNS_init: wifi opmode none\n"); + return; + } + + gMDNS_pcb = udp_new_ip_type(IPADDR_TYPE_ANY); if (!gMDNS_pcb) { - printf(">>> mDNS_start: udp_new failed\n"); + printf(">>> mDNS_init: udp_new failed\n"); return; } - if ((err=igmp_joingroup(&ipInfo.ip, &gMulticastAddr)) != ERR_OK) { - printf(">>> mDNS_start: igmp_join failed %d\n",err); - return; - } - - if ((err=udp_bind(gMDNS_pcb, IP_ADDR_ANY, DNS_MDNS_PORT)) != ERR_OK) { - printf(">>> mDNS_start: udp_bind failed %d\n",err); + if ((err = udp_bind(gMDNS_pcb, IP_ANY_TYPE, LWIP_IANA_PORT_MDNS)) != ERR_OK) { + printf(">>> mDNS_init: udp_bind failed %d\n",err); return; } udp_recv(gMDNS_pcb, mdns_recv, NULL); } - -static void mdns_close() -{ - udp_remove(gMDNS_pcb); - gMDNS_pcb = NULL; - #ifdef qDebugLog - printf("Closing mDNS\n"); - #endif -} - -static void mdns_task(void *pvParameters) -{ - uint8_t hasIP = 0; - uint8_t status; - UNUSED_ARG(pvParameters); - - ipaddr_aton(DNS_MULTICAST_ADDRESS, &gMulticastAddr); - // Wait until we have joined AP and are assigned an IP - while (1) { - status = (sdk_wifi_station_get_connect_status() == STATION_GOT_IP); - if (status != hasIP) { - if (status) mdns_start(); - else mdns_close(); - hasIP = status; - } - vTaskDelayMs(status ? 1000 : 100); - } -} - -void mdns_init() -{ - #if LWIP_IGMP - xTaskCreate(mdns_task, "MDNS", kMDNSStackSize, NULL, 2, NULL); - #else - #error "LWIP_IGMP needs to be defined in lwipopts.h" - #endif -} diff --git a/extras/mdnsresponder/mdnsresponder.h b/extras/mdnsresponder/mdnsresponder.h index 0008464..01c6dd2 100644 --- a/extras/mdnsresponder/mdnsresponder.h +++ b/extras/mdnsresponder/mdnsresponder.h @@ -1,20 +1,25 @@ -#ifndef __MDNSRESPONDER_H__ -#define __MDNSRESPONDER_H__ - -#include - /* * Basic multicast DNS responder * - * Advertises the IP address, port, and characteristics of a service to other devices using multicast DNS on the same LAN, - * so they can find devices with addresses dynamically allocated by DHCP. See avahi, Bonjour, etc - * See RFC6762, RFC6763 + * Advertises the IP address, port, and characteristics of a service to other + * devices using multicast DNS on the same LAN, so they can find devices with + * addresses dynamically allocated by DHCP. See avahi, Bonjour, etc See RFC6762, + * RFC6763 * * This sample code is in the public domain. * * by M J A Hamel 2016 */ +#ifndef __MDNSRESPONDER_H__ +#define __MDNSRESPONDER_H__ + +#include + +/* The default maximum reply size, increase as necessary. */ +#ifndef MDNS_RESPONDER_REPLY_SIZE +#define MDNS_RESPONDER_REPLY_SIZE 320 +#endif // Starts the mDNS responder task, call first void mdns_init(); @@ -42,7 +47,10 @@ void mdns_add_facility( const char* instanceName, // Short user-friendly insta void mdns_add_PTR(const char* rKey, u32_t ttl, const char* nameStr); void mdns_add_SRV(const char* rKey, u32_t ttl, u16_t rPort, const char* targname); void mdns_add_TXT(const char* rKey, u32_t ttl, const char* txtStr); -void mdns_add_A (const char* rKey, u32_t ttl, ip_addr_t addr); +void mdns_add_A (const char* rKey, u32_t ttl, const ip4_addr_t *addr); +#if LWIP_IPV6 +void mdns_add_AAAA(const char* rKey, u32_t ttl, const ip6_addr_t *addr); +#endif /* Sample usage, advertising a secure web service From 0a07fe11e53b0acd8f06e38b4bbab7f5c7d90528 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 12 Dec 2017 11:36:40 +1100 Subject: [PATCH 248/349] softap: allow output of multicast frames. Multicast frames were being dropped by ieee80211_output_pbuf. It appears to look up the destination address using cnx_node_search which only has an entry for the broadcast address (all ones). This patch modifies cnx_node_search to return the broadcast cnx_node for the multicast addresses too. This is needed to support services such as mDNS on the softap interface. --- open_esplibs/libnet80211/wl_cnx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c index 3b49c5d..2d29960 100644 --- a/open_esplibs/libnet80211/wl_cnx.c +++ b/open_esplibs/libnet80211/wl_cnx.c @@ -192,6 +192,11 @@ struct sdk_cnx_node *sdk_cnx_node_search(uint8_t mac[6]) struct sdk_cnx_node **cnx_nodes = sdk_g_ic.v.softap_netif_info->cnx_nodes; + /* Multicast addresses */ + if (mac[0] & 0x01) { + return cnx_nodes[0]; + } + int i = 0; do { struct sdk_cnx_node *cnx_node = cnx_nodes[i]; From 7f010ef1feaa7916e8857d94dfd896d8872cc7d2 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Tue, 12 Dec 2017 09:40:21 +0500 Subject: [PATCH 249/349] FatFs updated to R13a --- extras/fatfs/README.md | 2 +- extras/fatfs/cc932.h | 3869 --------- extras/fatfs/cc936.h | 11044 ------------------------- extras/fatfs/cc949.h | 8672 -------------------- extras/fatfs/cc950.h | 6899 ---------------- extras/fatfs/ccsbcs.h | 382 - extras/fatfs/component.mk | 46 +- extras/fatfs/defaults.mk | 4 +- extras/fatfs/diskio.c | 12 +- extras/fatfs/ff.c | 3546 ++++---- extras/fatfs/ff.h | 153 +- extras/fatfs/ffconf.h | 251 +- extras/fatfs/ffsystem.c | 114 + extras/fatfs/ffunicode.c | 15586 ++++++++++++++++++++++++++++++++++++ extras/fatfs/integer.h | 28 +- extras/fatfs/syscall.c | 77 - extras/fatfs/unicode.c | 17 - 17 files changed, 17946 insertions(+), 32756 deletions(-) delete mode 100644 extras/fatfs/cc932.h delete mode 100644 extras/fatfs/cc936.h delete mode 100644 extras/fatfs/cc949.h delete mode 100644 extras/fatfs/cc950.h delete mode 100644 extras/fatfs/ccsbcs.h create mode 100644 extras/fatfs/ffsystem.c create mode 100644 extras/fatfs/ffunicode.c delete mode 100644 extras/fatfs/syscall.c delete mode 100644 extras/fatfs/unicode.c diff --git a/extras/fatfs/README.md b/extras/fatfs/README.md index 44e11f6..e135b22 100644 --- a/extras/fatfs/README.md +++ b/extras/fatfs/README.md @@ -1,6 +1,6 @@ # FatFs - Generic FAT File System Module -Current version: R0.12b +Current version: R0.13a ## How to use diff --git a/extras/fatfs/cc932.h b/extras/fatfs/cc932.h deleted file mode 100644 index f60bd29..0000000 --- a/extras/fatfs/cc932.h +++ /dev/null @@ -1,3869 +0,0 @@ -/*------------------------------------------------------------------------*/ -/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ -/* CP932 (Japanese Shift-JIS) */ -/*------------------------------------------------------------------------*/ - -#include "ff.h" - -#if _USE_LFN && _CODE_PAGE == 932 - -#define _TINY_TABLE 0 - - -static -const WCHAR uni2sjis[] = { -/* Unicode - Sjis, Unicode - Sjis, Unicode - Sjis, Unicode - Sjis, */ - 0x00A7, 0x8198, 0x00A8, 0x814E, 0x00B0, 0x818B, 0x00B1, 0x817D, - 0x00B4, 0x814C, 0x00B6, 0x81F7, 0x00D7, 0x817E, 0x00F7, 0x8180, - 0x0391, 0x839F, 0x0392, 0x83A0, 0x0393, 0x83A1, 0x0394, 0x83A2, - 0x0395, 0x83A3, 0x0396, 0x83A4, 0x0397, 0x83A5, 0x0398, 0x83A6, - 0x0399, 0x83A7, 0x039A, 0x83A8, 0x039B, 0x83A9, 0x039C, 0x83AA, - 0x039D, 0x83AB, 0x039E, 0x83AC, 0x039F, 0x83AD, 0x03A0, 0x83AE, - 0x03A1, 0x83AF, 0x03A3, 0x83B0, 0x03A4, 0x83B1, 0x03A5, 0x83B2, - 0x03A6, 0x83B3, 0x03A7, 0x83B4, 0x03A8, 0x83B5, 0x03A9, 0x83B6, - 0x03B1, 0x83BF, 0x03B2, 0x83C0, 0x03B3, 0x83C1, 0x03B4, 0x83C2, - 0x03B5, 0x83C3, 0x03B6, 0x83C4, 0x03B7, 0x83C5, 0x03B8, 0x83C6, - 0x03B9, 0x83C7, 0x03BA, 0x83C8, 0x03BB, 0x83C9, 0x03BC, 0x83CA, - 0x03BD, 0x83CB, 0x03BE, 0x83CC, 0x03BF, 0x83CD, 0x03C0, 0x83CE, - 0x03C1, 0x83CF, 0x03C3, 0x83D0, 0x03C4, 0x83D1, 0x03C5, 0x83D2, - 0x03C6, 0x83D3, 0x03C7, 0x83D4, 0x03C8, 0x83D5, 0x03C9, 0x83D6, - 0x0401, 0x8446, 0x0410, 0x8440, 0x0411, 0x8441, 0x0412, 0x8442, - 0x0413, 0x8443, 0x0414, 0x8444, 0x0415, 0x8445, 0x0416, 0x8447, - 0x0417, 0x8448, 0x0418, 0x8449, 0x0419, 0x844A, 0x041A, 0x844B, - 0x041B, 0x844C, 0x041C, 0x844D, 0x041D, 0x844E, 0x041E, 0x844F, - 0x041F, 0x8450, 0x0420, 0x8451, 0x0421, 0x8452, 0x0422, 0x8453, - 0x0423, 0x8454, 0x0424, 0x8455, 0x0425, 0x8456, 0x0426, 0x8457, - 0x0427, 0x8458, 0x0428, 0x8459, 0x0429, 0x845A, 0x042A, 0x845B, - 0x042B, 0x845C, 0x042C, 0x845D, 0x042D, 0x845E, 0x042E, 0x845F, - 0x042F, 0x8460, 0x0430, 0x8470, 0x0431, 0x8471, 0x0432, 0x8472, - 0x0433, 0x8473, 0x0434, 0x8474, 0x0435, 0x8475, 0x0436, 0x8477, - 0x0437, 0x8478, 0x0438, 0x8479, 0x0439, 0x847A, 0x043A, 0x847B, - 0x043B, 0x847C, 0x043C, 0x847D, 0x043D, 0x847E, 0x043E, 0x8480, - 0x043F, 0x8481, 0x0440, 0x8482, 0x0441, 0x8483, 0x0442, 0x8484, - 0x0443, 0x8485, 0x0444, 0x8486, 0x0445, 0x8487, 0x0446, 0x8488, - 0x0447, 0x8489, 0x0448, 0x848A, 0x0449, 0x848B, 0x044A, 0x848C, - 0x044B, 0x848D, 0x044C, 0x848E, 0x044D, 0x848F, 0x044E, 0x8490, - 0x044F, 0x8491, 0x0451, 0x8476, 0x2010, 0x815D, 0x2015, 0x815C, - 0x2018, 0x8165, 0x2019, 0x8166, 0x201C, 0x8167, 0x201D, 0x8168, - 0x2020, 0x81F5, 0x2021, 0x81F6, 0x2025, 0x8164, 0x2026, 0x8163, - 0x2030, 0x81F1, 0x2032, 0x818C, 0x2033, 0x818D, 0x203B, 0x81A6, - 0x2103, 0x818E, 0x2116, 0x8782, 0x2121, 0x8784, 0x212B, 0x81F0, - 0x2160, 0x8754, 0x2161, 0x8755, 0x2162, 0x8756, 0x2163, 0x8757, - 0x2164, 0x8758, 0x2165, 0x8759, 0x2166, 0x875A, 0x2167, 0x875B, - 0x2168, 0x875C, 0x2169, 0x875D, 0x2170, 0xFA40, 0x2171, 0xFA41, - 0x2172, 0xFA42, 0x2173, 0xFA43, 0x2174, 0xFA44, 0x2175, 0xFA45, - 0x2176, 0xFA46, 0x2177, 0xFA47, 0x2178, 0xFA48, 0x2179, 0xFA49, - 0x2190, 0x81A9, 0x2191, 0x81AA, 0x2192, 0x81A8, 0x2193, 0x81AB, - 0x21D2, 0x81CB, 0x21D4, 0x81CC, 0x2200, 0x81CD, 0x2202, 0x81DD, - 0x2203, 0x81CE, 0x2207, 0x81DE, 0x2208, 0x81B8, 0x220B, 0x81B9, - 0x2211, 0x8794, 0x221A, 0x81E3, 0x221D, 0x81E5, 0x221E, 0x8187, - 0x221F, 0x8798, 0x2220, 0x81DA, 0x2225, 0x8161, 0x2227, 0x81C8, - 0x2228, 0x81C9, 0x2229, 0x81BF, 0x222A, 0x81BE, 0x222B, 0x81E7, - 0x222C, 0x81E8, 0x222E, 0x8793, 0x2234, 0x8188, 0x2235, 0x81E6, - 0x223D, 0x81E4, 0x2252, 0x81E0, 0x2260, 0x8182, 0x2261, 0x81DF, - 0x2266, 0x8185, 0x2267, 0x8186, 0x226A, 0x81E1, 0x226B, 0x81E2, - 0x2282, 0x81BC, 0x2283, 0x81BD, 0x2286, 0x81BA, 0x2287, 0x81BB, - 0x22A5, 0x81DB, 0x22BF, 0x8799, 0x2312, 0x81DC, 0x2460, 0x8740, - 0x2461, 0x8741, 0x2462, 0x8742, 0x2463, 0x8743, 0x2464, 0x8744, - 0x2465, 0x8745, 0x2466, 0x8746, 0x2467, 0x8747, 0x2468, 0x8748, - 0x2469, 0x8749, 0x246A, 0x874A, 0x246B, 0x874B, 0x246C, 0x874C, - 0x246D, 0x874D, 0x246E, 0x874E, 0x246F, 0x874F, 0x2470, 0x8750, - 0x2471, 0x8751, 0x2472, 0x8752, 0x2473, 0x8753, 0x2500, 0x849F, - 0x2501, 0x84AA, 0x2502, 0x84A0, 0x2503, 0x84AB, 0x250C, 0x84A1, - 0x250F, 0x84AC, 0x2510, 0x84A2, 0x2513, 0x84AD, 0x2514, 0x84A4, - 0x2517, 0x84AF, 0x2518, 0x84A3, 0x251B, 0x84AE, 0x251C, 0x84A5, - 0x251D, 0x84BA, 0x2520, 0x84B5, 0x2523, 0x84B0, 0x2524, 0x84A7, - 0x2525, 0x84BC, 0x2528, 0x84B7, 0x252B, 0x84B2, 0x252C, 0x84A6, - 0x252F, 0x84B6, 0x2530, 0x84BB, 0x2533, 0x84B1, 0x2534, 0x84A8, - 0x2537, 0x84B8, 0x2538, 0x84BD, 0x253B, 0x84B3, 0x253C, 0x84A9, - 0x253F, 0x84B9, 0x2542, 0x84BE, 0x254B, 0x84B4, 0x25A0, 0x81A1, - 0x25A1, 0x81A0, 0x25B2, 0x81A3, 0x25B3, 0x81A2, 0x25BC, 0x81A5, - 0x25BD, 0x81A4, 0x25C6, 0x819F, 0x25C7, 0x819E, 0x25CB, 0x819B, - 0x25CE, 0x819D, 0x25CF, 0x819C, 0x25EF, 0x81FC, 0x2605, 0x819A, - 0x2606, 0x8199, 0x2640, 0x818A, 0x2642, 0x8189, 0x266A, 0x81F4, - 0x266D, 0x81F3, 0x266F, 0x81F2, 0x3000, 0x8140, 0x3001, 0x8141, - 0x3002, 0x8142, 0x3003, 0x8156, 0x3005, 0x8158, 0x3006, 0x8159, - 0x3007, 0x815A, 0x3008, 0x8171, 0x3009, 0x8172, 0x300A, 0x8173, - 0x300B, 0x8174, 0x300C, 0x8175, 0x300D, 0x8176, 0x300E, 0x8177, - 0x300F, 0x8178, 0x3010, 0x8179, 0x3011, 0x817A, 0x3012, 0x81A7, - 0x3013, 0x81AC, 0x3014, 0x816B, 0x3015, 0x816C, 0x301D, 0x8780, - 0x301F, 0x8781, 0x3041, 0x829F, 0x3042, 0x82A0, 0x3043, 0x82A1, - 0x3044, 0x82A2, 0x3045, 0x82A3, 0x3046, 0x82A4, 0x3047, 0x82A5, - 0x3048, 0x82A6, 0x3049, 0x82A7, 0x304A, 0x82A8, 0x304B, 0x82A9, - 0x304C, 0x82AA, 0x304D, 0x82AB, 0x304E, 0x82AC, 0x304F, 0x82AD, - 0x3050, 0x82AE, 0x3051, 0x82AF, 0x3052, 0x82B0, 0x3053, 0x82B1, - 0x3054, 0x82B2, 0x3055, 0x82B3, 0x3056, 0x82B4, 0x3057, 0x82B5, - 0x3058, 0x82B6, 0x3059, 0x82B7, 0x305A, 0x82B8, 0x305B, 0x82B9, - 0x305C, 0x82BA, 0x305D, 0x82BB, 0x305E, 0x82BC, 0x305F, 0x82BD, - 0x3060, 0x82BE, 0x3061, 0x82BF, 0x3062, 0x82C0, 0x3063, 0x82C1, - 0x3064, 0x82C2, 0x3065, 0x82C3, 0x3066, 0x82C4, 0x3067, 0x82C5, - 0x3068, 0x82C6, 0x3069, 0x82C7, 0x306A, 0x82C8, 0x306B, 0x82C9, - 0x306C, 0x82CA, 0x306D, 0x82CB, 0x306E, 0x82CC, 0x306F, 0x82CD, - 0x3070, 0x82CE, 0x3071, 0x82CF, 0x3072, 0x82D0, 0x3073, 0x82D1, - 0x3074, 0x82D2, 0x3075, 0x82D3, 0x3076, 0x82D4, 0x3077, 0x82D5, - 0x3078, 0x82D6, 0x3079, 0x82D7, 0x307A, 0x82D8, 0x307B, 0x82D9, - 0x307C, 0x82DA, 0x307D, 0x82DB, 0x307E, 0x82DC, 0x307F, 0x82DD, - 0x3080, 0x82DE, 0x3081, 0x82DF, 0x3082, 0x82E0, 0x3083, 0x82E1, - 0x3084, 0x82E2, 0x3085, 0x82E3, 0x3086, 0x82E4, 0x3087, 0x82E5, - 0x3088, 0x82E6, 0x3089, 0x82E7, 0x308A, 0x82E8, 0x308B, 0x82E9, - 0x308C, 0x82EA, 0x308D, 0x82EB, 0x308E, 0x82EC, 0x308F, 0x82ED, - 0x3090, 0x82EE, 0x3091, 0x82EF, 0x3092, 0x82F0, 0x3093, 0x82F1, - 0x309B, 0x814A, 0x309C, 0x814B, 0x309D, 0x8154, 0x309E, 0x8155, - 0x30A1, 0x8340, 0x30A2, 0x8341, 0x30A3, 0x8342, 0x30A4, 0x8343, - 0x30A5, 0x8344, 0x30A6, 0x8345, 0x30A7, 0x8346, 0x30A8, 0x8347, - 0x30A9, 0x8348, 0x30AA, 0x8349, 0x30AB, 0x834A, 0x30AC, 0x834B, - 0x30AD, 0x834C, 0x30AE, 0x834D, 0x30AF, 0x834E, 0x30B0, 0x834F, - 0x30B1, 0x8350, 0x30B2, 0x8351, 0x30B3, 0x8352, 0x30B4, 0x8353, - 0x30B5, 0x8354, 0x30B6, 0x8355, 0x30B7, 0x8356, 0x30B8, 0x8357, - 0x30B9, 0x8358, 0x30BA, 0x8359, 0x30BB, 0x835A, 0x30BC, 0x835B, - 0x30BD, 0x835C, 0x30BE, 0x835D, 0x30BF, 0x835E, 0x30C0, 0x835F, - 0x30C1, 0x8360, 0x30C2, 0x8361, 0x30C3, 0x8362, 0x30C4, 0x8363, - 0x30C5, 0x8364, 0x30C6, 0x8365, 0x30C7, 0x8366, 0x30C8, 0x8367, - 0x30C9, 0x8368, 0x30CA, 0x8369, 0x30CB, 0x836A, 0x30CC, 0x836B, - 0x30CD, 0x836C, 0x30CE, 0x836D, 0x30CF, 0x836E, 0x30D0, 0x836F, - 0x30D1, 0x8370, 0x30D2, 0x8371, 0x30D3, 0x8372, 0x30D4, 0x8373, - 0x30D5, 0x8374, 0x30D6, 0x8375, 0x30D7, 0x8376, 0x30D8, 0x8377, - 0x30D9, 0x8378, 0x30DA, 0x8379, 0x30DB, 0x837A, 0x30DC, 0x837B, - 0x30DD, 0x837C, 0x30DE, 0x837D, 0x30DF, 0x837E, 0x30E0, 0x8380, - 0x30E1, 0x8381, 0x30E2, 0x8382, 0x30E3, 0x8383, 0x30E4, 0x8384, - 0x30E5, 0x8385, 0x30E6, 0x8386, 0x30E7, 0x8387, 0x30E8, 0x8388, - 0x30E9, 0x8389, 0x30EA, 0x838A, 0x30EB, 0x838B, 0x30EC, 0x838C, - 0x30ED, 0x838D, 0x30EE, 0x838E, 0x30EF, 0x838F, 0x30F0, 0x8390, - 0x30F1, 0x8391, 0x30F2, 0x8392, 0x30F3, 0x8393, 0x30F4, 0x8394, - 0x30F5, 0x8395, 0x30F6, 0x8396, 0x30FB, 0x8145, 0x30FC, 0x815B, - 0x30FD, 0x8152, 0x30FE, 0x8153, 0x3231, 0x878A, 0x3232, 0x878B, - 0x3239, 0x878C, 0x32A4, 0x8785, 0x32A5, 0x8786, 0x32A6, 0x8787, - 0x32A7, 0x8788, 0x32A8, 0x8789, 0x3303, 0x8765, 0x330D, 0x8769, - 0x3314, 0x8760, 0x3318, 0x8763, 0x3322, 0x8761, 0x3323, 0x876B, - 0x3326, 0x876A, 0x3327, 0x8764, 0x332B, 0x876C, 0x3336, 0x8766, - 0x333B, 0x876E, 0x3349, 0x875F, 0x334A, 0x876D, 0x334D, 0x8762, - 0x3351, 0x8767, 0x3357, 0x8768, 0x337B, 0x877E, 0x337C, 0x878F, - 0x337D, 0x878E, 0x337E, 0x878D, 0x338E, 0x8772, 0x338F, 0x8773, - 0x339C, 0x876F, 0x339D, 0x8770, 0x339E, 0x8771, 0x33A1, 0x8775, - 0x33C4, 0x8774, 0x33CD, 0x8783, 0x4E00, 0x88EA, 0x4E01, 0x929A, - 0x4E03, 0x8EB5, 0x4E07, 0x969C, 0x4E08, 0x8FE4, 0x4E09, 0x8E4F, - 0x4E0A, 0x8FE3, 0x4E0B, 0x89BA, 0x4E0D, 0x9573, 0x4E0E, 0x975E, - 0x4E10, 0x98A0, 0x4E11, 0x894E, 0x4E14, 0x8A8E, 0x4E15, 0x98A1, - 0x4E16, 0x90A2, 0x4E17, 0x99C0, 0x4E18, 0x8B75, 0x4E19, 0x95B8, - 0x4E1E, 0x8FE5, 0x4E21, 0x97BC, 0x4E26, 0x95C0, 0x4E28, 0xFA68, - 0x4E2A, 0x98A2, 0x4E2D, 0x9286, 0x4E31, 0x98A3, 0x4E32, 0x8BF8, - 0x4E36, 0x98A4, 0x4E38, 0x8ADB, 0x4E39, 0x924F, 0x4E3B, 0x8EE5, - 0x4E3C, 0x98A5, 0x4E3F, 0x98A6, 0x4E42, 0x98A7, 0x4E43, 0x9454, - 0x4E45, 0x8B76, 0x4E4B, 0x9456, 0x4E4D, 0x93E1, 0x4E4E, 0x8CC1, - 0x4E4F, 0x9652, 0x4E55, 0xE568, 0x4E56, 0x98A8, 0x4E57, 0x8FE6, - 0x4E58, 0x98A9, 0x4E59, 0x89B3, 0x4E5D, 0x8BE3, 0x4E5E, 0x8CEE, - 0x4E5F, 0x96E7, 0x4E62, 0x9BA4, 0x4E71, 0x9790, 0x4E73, 0x93FB, - 0x4E7E, 0x8AA3, 0x4E80, 0x8B54, 0x4E82, 0x98AA, 0x4E85, 0x98AB, - 0x4E86, 0x97B9, 0x4E88, 0x975C, 0x4E89, 0x9188, 0x4E8A, 0x98AD, - 0x4E8B, 0x8E96, 0x4E8C, 0x93F1, 0x4E8E, 0x98B0, 0x4E91, 0x895D, - 0x4E92, 0x8CDD, 0x4E94, 0x8CDC, 0x4E95, 0x88E4, 0x4E98, 0x986A, - 0x4E99, 0x9869, 0x4E9B, 0x8DB1, 0x4E9C, 0x889F, 0x4E9E, 0x98B1, - 0x4E9F, 0x98B2, 0x4EA0, 0x98B3, 0x4EA1, 0x9653, 0x4EA2, 0x98B4, - 0x4EA4, 0x8CF0, 0x4EA5, 0x88E5, 0x4EA6, 0x9692, 0x4EA8, 0x8B9C, - 0x4EAB, 0x8B9D, 0x4EAC, 0x8B9E, 0x4EAD, 0x92E0, 0x4EAE, 0x97BA, - 0x4EB0, 0x98B5, 0x4EB3, 0x98B6, 0x4EB6, 0x98B7, 0x4EBA, 0x906C, - 0x4EC0, 0x8F59, 0x4EC1, 0x906D, 0x4EC2, 0x98BC, 0x4EC4, 0x98BA, - 0x4EC6, 0x98BB, 0x4EC7, 0x8B77, 0x4ECA, 0x8DA1, 0x4ECB, 0x89EE, - 0x4ECD, 0x98B9, 0x4ECE, 0x98B8, 0x4ECF, 0x95A7, 0x4ED4, 0x8E65, - 0x4ED5, 0x8E64, 0x4ED6, 0x91BC, 0x4ED7, 0x98BD, 0x4ED8, 0x9574, - 0x4ED9, 0x90E5, 0x4EDD, 0x8157, 0x4EDE, 0x98BE, 0x4EDF, 0x98C0, - 0x4EE1, 0xFA69, 0x4EE3, 0x91E3, 0x4EE4, 0x97DF, 0x4EE5, 0x88C8, - 0x4EED, 0x98BF, 0x4EEE, 0x89BC, 0x4EF0, 0x8BC2, 0x4EF2, 0x9287, - 0x4EF6, 0x8C8F, 0x4EF7, 0x98C1, 0x4EFB, 0x9443, 0x4EFC, 0xFA6A, - 0x4F00, 0xFA6B, 0x4F01, 0x8AE9, 0x4F03, 0xFA6C, 0x4F09, 0x98C2, - 0x4F0A, 0x88C9, 0x4F0D, 0x8CDE, 0x4F0E, 0x8AEA, 0x4F0F, 0x959A, - 0x4F10, 0x94B0, 0x4F11, 0x8B78, 0x4F1A, 0x89EF, 0x4F1C, 0x98E5, - 0x4F1D, 0x9360, 0x4F2F, 0x948C, 0x4F30, 0x98C4, 0x4F34, 0x94BA, - 0x4F36, 0x97E0, 0x4F38, 0x904C, 0x4F39, 0xFA6D, 0x4F3A, 0x8E66, - 0x4F3C, 0x8E97, 0x4F3D, 0x89BE, 0x4F43, 0x92CF, 0x4F46, 0x9241, - 0x4F47, 0x98C8, 0x4F4D, 0x88CA, 0x4F4E, 0x92E1, 0x4F4F, 0x8F5A, - 0x4F50, 0x8DB2, 0x4F51, 0x9743, 0x4F53, 0x91CC, 0x4F55, 0x89BD, - 0x4F56, 0xFA6E, 0x4F57, 0x98C7, 0x4F59, 0x975D, 0x4F5A, 0x98C3, - 0x4F5B, 0x98C5, 0x4F5C, 0x8DEC, 0x4F5D, 0x98C6, 0x4F5E, 0x9B43, - 0x4F69, 0x98CE, 0x4F6F, 0x98D1, 0x4F70, 0x98CF, 0x4F73, 0x89C0, - 0x4F75, 0x95B9, 0x4F76, 0x98C9, 0x4F7B, 0x98CD, 0x4F7C, 0x8CF1, - 0x4F7F, 0x8E67, 0x4F83, 0x8AA4, 0x4F86, 0x98D2, 0x4F88, 0x98CA, - 0x4F8A, 0xFA70, 0x4F8B, 0x97E1, 0x4F8D, 0x8E98, 0x4F8F, 0x98CB, - 0x4F91, 0x98D0, 0x4F92, 0xFA6F, 0x4F94, 0xFA72, 0x4F96, 0x98D3, - 0x4F98, 0x98CC, 0x4F9A, 0xFA71, 0x4F9B, 0x8B9F, 0x4F9D, 0x88CB, - 0x4FA0, 0x8BA0, 0x4FA1, 0x89BF, 0x4FAB, 0x9B44, 0x4FAD, 0x9699, - 0x4FAE, 0x958E, 0x4FAF, 0x8CF2, 0x4FB5, 0x904E, 0x4FB6, 0x97B5, - 0x4FBF, 0x95D6, 0x4FC2, 0x8C57, 0x4FC3, 0x91A3, 0x4FC4, 0x89E2, - 0x4FC9, 0xFA61, 0x4FCA, 0x8F72, 0x4FCD, 0xFA73, 0x4FCE, 0x98D7, - 0x4FD0, 0x98DC, 0x4FD1, 0x98DA, 0x4FD4, 0x98D5, 0x4FD7, 0x91AD, - 0x4FD8, 0x98D8, 0x4FDA, 0x98DB, 0x4FDB, 0x98D9, 0x4FDD, 0x95DB, - 0x4FDF, 0x98D6, 0x4FE1, 0x904D, 0x4FE3, 0x9693, 0x4FE4, 0x98DD, - 0x4FE5, 0x98DE, 0x4FEE, 0x8F43, 0x4FEF, 0x98EB, 0x4FF3, 0x946F, - 0x4FF5, 0x9555, 0x4FF6, 0x98E6, 0x4FF8, 0x95EE, 0x4FFA, 0x89B4, - 0x4FFE, 0x98EA, 0x4FFF, 0xFA76, 0x5005, 0x98E4, 0x5006, 0x98ED, - 0x5009, 0x9171, 0x500B, 0x8CC2, 0x500D, 0x947B, 0x500F, 0xE0C5, - 0x5011, 0x98EC, 0x5012, 0x937C, 0x5014, 0x98E1, 0x5016, 0x8CF4, - 0x5019, 0x8CF3, 0x501A, 0x98DF, 0x501E, 0xFA77, 0x501F, 0x8ED8, - 0x5021, 0x98E7, 0x5022, 0xFA75, 0x5023, 0x95ED, 0x5024, 0x926C, - 0x5025, 0x98E3, 0x5026, 0x8C91, 0x5028, 0x98E0, 0x5029, 0x98E8, - 0x502A, 0x98E2, 0x502B, 0x97CF, 0x502C, 0x98E9, 0x502D, 0x9860, - 0x5036, 0x8BE4, 0x5039, 0x8C90, 0x5040, 0xFA74, 0x5042, 0xFA7A, - 0x5043, 0x98EE, 0x5046, 0xFA78, 0x5047, 0x98EF, 0x5048, 0x98F3, - 0x5049, 0x88CC, 0x504F, 0x95CE, 0x5050, 0x98F2, 0x5055, 0x98F1, - 0x5056, 0x98F5, 0x505A, 0x98F4, 0x505C, 0x92E2, 0x5065, 0x8C92, - 0x506C, 0x98F6, 0x5070, 0xFA79, 0x5072, 0x8EC3, 0x5074, 0x91A4, - 0x5075, 0x92E3, 0x5076, 0x8BF4, 0x5078, 0x98F7, 0x507D, 0x8B55, - 0x5080, 0x98F8, 0x5085, 0x98FA, 0x508D, 0x9654, 0x5091, 0x8C86, - 0x5094, 0xFA7B, 0x5098, 0x8E50, 0x5099, 0x94F5, 0x509A, 0x98F9, - 0x50AC, 0x8DC3, 0x50AD, 0x9762, 0x50B2, 0x98FC, 0x50B3, 0x9942, - 0x50B4, 0x98FB, 0x50B5, 0x8DC2, 0x50B7, 0x8F9D, 0x50BE, 0x8C58, - 0x50C2, 0x9943, 0x50C5, 0x8BCD, 0x50C9, 0x9940, 0x50CA, 0x9941, - 0x50CD, 0x93AD, 0x50CF, 0x919C, 0x50D1, 0x8BA1, 0x50D5, 0x966C, - 0x50D6, 0x9944, 0x50D8, 0xFA7D, 0x50DA, 0x97BB, 0x50DE, 0x9945, - 0x50E3, 0x9948, 0x50E5, 0x9946, 0x50E7, 0x916D, 0x50ED, 0x9947, - 0x50EE, 0x9949, 0x50F4, 0xFA7C, 0x50F5, 0x994B, 0x50F9, 0x994A, - 0x50FB, 0x95C6, 0x5100, 0x8B56, 0x5101, 0x994D, 0x5102, 0x994E, - 0x5104, 0x89AD, 0x5109, 0x994C, 0x5112, 0x8EF2, 0x5114, 0x9951, - 0x5115, 0x9950, 0x5116, 0x994F, 0x5118, 0x98D4, 0x511A, 0x9952, - 0x511F, 0x8F9E, 0x5121, 0x9953, 0x512A, 0x9744, 0x5132, 0x96D7, - 0x5137, 0x9955, 0x513A, 0x9954, 0x513B, 0x9957, 0x513C, 0x9956, - 0x513F, 0x9958, 0x5140, 0x9959, 0x5141, 0x88F2, 0x5143, 0x8CB3, - 0x5144, 0x8C5A, 0x5145, 0x8F5B, 0x5146, 0x929B, 0x5147, 0x8BA2, - 0x5148, 0x90E6, 0x5149, 0x8CF5, 0x514A, 0xFA7E, 0x514B, 0x8D8E, - 0x514C, 0x995B, 0x514D, 0x96C6, 0x514E, 0x9365, 0x5150, 0x8E99, - 0x5152, 0x995A, 0x5154, 0x995C, 0x515A, 0x937D, 0x515C, 0x8A95, - 0x5162, 0x995D, 0x5164, 0xFA80, 0x5165, 0x93FC, 0x5168, 0x9153, - 0x5169, 0x995F, 0x516A, 0x9960, 0x516B, 0x94AA, 0x516C, 0x8CF6, - 0x516D, 0x985A, 0x516E, 0x9961, 0x5171, 0x8BA4, 0x5175, 0x95BA, - 0x5176, 0x91B4, 0x5177, 0x8BEF, 0x5178, 0x9354, 0x517C, 0x8C93, - 0x5180, 0x9962, 0x5182, 0x9963, 0x5185, 0x93E0, 0x5186, 0x897E, - 0x5189, 0x9966, 0x518A, 0x8DFB, 0x518C, 0x9965, 0x518D, 0x8DC4, - 0x518F, 0x9967, 0x5190, 0xE3EC, 0x5191, 0x9968, 0x5192, 0x9660, - 0x5193, 0x9969, 0x5195, 0x996A, 0x5196, 0x996B, 0x5197, 0x8FE7, - 0x5199, 0x8ECA, 0x519D, 0xFA81, 0x51A0, 0x8AA5, 0x51A2, 0x996E, - 0x51A4, 0x996C, 0x51A5, 0x96BB, 0x51A6, 0x996D, 0x51A8, 0x9579, - 0x51A9, 0x996F, 0x51AA, 0x9970, 0x51AB, 0x9971, 0x51AC, 0x937E, - 0x51B0, 0x9975, 0x51B1, 0x9973, 0x51B2, 0x9974, 0x51B3, 0x9972, - 0x51B4, 0x8DE1, 0x51B5, 0x9976, 0x51B6, 0x96E8, 0x51B7, 0x97E2, - 0x51BD, 0x9977, 0x51BE, 0xFA82, 0x51C4, 0x90A6, 0x51C5, 0x9978, - 0x51C6, 0x8F79, 0x51C9, 0x9979, 0x51CB, 0x929C, 0x51CC, 0x97BD, - 0x51CD, 0x9380, 0x51D6, 0x99C3, 0x51DB, 0x997A, 0x51DC, 0xEAA3, - 0x51DD, 0x8BC3, 0x51E0, 0x997B, 0x51E1, 0x967D, 0x51E6, 0x8F88, - 0x51E7, 0x91FA, 0x51E9, 0x997D, 0x51EA, 0x93E2, 0x51EC, 0xFA83, - 0x51ED, 0x997E, 0x51F0, 0x9980, 0x51F1, 0x8A4D, 0x51F5, 0x9981, - 0x51F6, 0x8BA5, 0x51F8, 0x93CA, 0x51F9, 0x899A, 0x51FA, 0x8F6F, - 0x51FD, 0x949F, 0x51FE, 0x9982, 0x5200, 0x9381, 0x5203, 0x906E, - 0x5204, 0x9983, 0x5206, 0x95AA, 0x5207, 0x90D8, 0x5208, 0x8AA0, - 0x520A, 0x8AA7, 0x520B, 0x9984, 0x520E, 0x9986, 0x5211, 0x8C59, - 0x5214, 0x9985, 0x5215, 0xFA84, 0x5217, 0x97F1, 0x521D, 0x8F89, - 0x5224, 0x94BB, 0x5225, 0x95CA, 0x5227, 0x9987, 0x5229, 0x9798, - 0x522A, 0x9988, 0x522E, 0x9989, 0x5230, 0x939E, 0x5233, 0x998A, - 0x5236, 0x90A7, 0x5237, 0x8DFC, 0x5238, 0x8C94, 0x5239, 0x998B, - 0x523A, 0x8E68, 0x523B, 0x8D8F, 0x5243, 0x92E4, 0x5244, 0x998D, - 0x5247, 0x91A5, 0x524A, 0x8DED, 0x524B, 0x998E, 0x524C, 0x998F, - 0x524D, 0x914F, 0x524F, 0x998C, 0x5254, 0x9991, 0x5256, 0x9655, - 0x525B, 0x8D84, 0x525E, 0x9990, 0x5263, 0x8C95, 0x5264, 0x8DDC, - 0x5265, 0x948D, 0x5269, 0x9994, 0x526A, 0x9992, 0x526F, 0x959B, - 0x5270, 0x8FE8, 0x5271, 0x999B, 0x5272, 0x8A84, 0x5273, 0x9995, - 0x5274, 0x9993, 0x5275, 0x916E, 0x527D, 0x9997, 0x527F, 0x9996, - 0x5283, 0x8A63, 0x5287, 0x8C80, 0x5288, 0x999C, 0x5289, 0x97AB, - 0x528D, 0x9998, 0x5291, 0x999D, 0x5292, 0x999A, 0x5294, 0x9999, - 0x529B, 0x97CD, 0x529C, 0xFA85, 0x529F, 0x8CF7, 0x52A0, 0x89C1, - 0x52A3, 0x97F2, 0x52A6, 0xFA86, 0x52A9, 0x8F95, 0x52AA, 0x9377, - 0x52AB, 0x8D85, 0x52AC, 0x99A0, 0x52AD, 0x99A1, 0x52AF, 0xFB77, - 0x52B1, 0x97E3, 0x52B4, 0x984A, 0x52B5, 0x99A3, 0x52B9, 0x8CF8, - 0x52BC, 0x99A2, 0x52BE, 0x8A4E, 0x52C0, 0xFA87, 0x52C1, 0x99A4, - 0x52C3, 0x9675, 0x52C5, 0x92BA, 0x52C7, 0x9745, 0x52C9, 0x95D7, - 0x52CD, 0x99A5, 0x52D2, 0xE8D3, 0x52D5, 0x93AE, 0x52D7, 0x99A6, - 0x52D8, 0x8AA8, 0x52D9, 0x96B1, 0x52DB, 0xFA88, 0x52DD, 0x8F9F, - 0x52DE, 0x99A7, 0x52DF, 0x95E5, 0x52E0, 0x99AB, 0x52E2, 0x90A8, - 0x52E3, 0x99A8, 0x52E4, 0x8BCE, 0x52E6, 0x99A9, 0x52E7, 0x8AA9, - 0x52F2, 0x8C4D, 0x52F3, 0x99AC, 0x52F5, 0x99AD, 0x52F8, 0x99AE, - 0x52F9, 0x99AF, 0x52FA, 0x8ED9, 0x52FE, 0x8CF9, 0x52FF, 0x96DC, - 0x5300, 0xFA89, 0x5301, 0x96E6, 0x5302, 0x93F5, 0x5305, 0x95EF, - 0x5306, 0x99B0, 0x5307, 0xFA8A, 0x5308, 0x99B1, 0x530D, 0x99B3, - 0x530F, 0x99B5, 0x5310, 0x99B4, 0x5315, 0x99B6, 0x5316, 0x89BB, - 0x5317, 0x966B, 0x5319, 0x8DFA, 0x531A, 0x99B7, 0x531D, 0x9178, - 0x5320, 0x8FA0, 0x5321, 0x8BA7, 0x5323, 0x99B8, 0x5324, 0xFA8B, - 0x532A, 0x94D9, 0x532F, 0x99B9, 0x5331, 0x99BA, 0x5333, 0x99BB, - 0x5338, 0x99BC, 0x5339, 0x9543, 0x533A, 0x8BE6, 0x533B, 0x88E3, - 0x533F, 0x93BD, 0x5340, 0x99BD, 0x5341, 0x8F5C, 0x5343, 0x90E7, - 0x5345, 0x99BF, 0x5346, 0x99BE, 0x5347, 0x8FA1, 0x5348, 0x8CDF, - 0x5349, 0x99C1, 0x534A, 0x94BC, 0x534D, 0x99C2, 0x5351, 0x94DA, - 0x5352, 0x91B2, 0x5353, 0x91EC, 0x5354, 0x8BA6, 0x5357, 0x93EC, - 0x5358, 0x9250, 0x535A, 0x948E, 0x535C, 0x966D, 0x535E, 0x99C4, - 0x5360, 0x90E8, 0x5366, 0x8C54, 0x5369, 0x99C5, 0x536E, 0x99C6, - 0x536F, 0x894B, 0x5370, 0x88F3, 0x5371, 0x8AEB, 0x5372, 0xFA8C, - 0x5373, 0x91A6, 0x5374, 0x8B70, 0x5375, 0x9791, 0x5377, 0x99C9, - 0x5378, 0x89B5, 0x537B, 0x99C8, 0x537F, 0x8BA8, 0x5382, 0x99CA, - 0x5384, 0x96EF, 0x5393, 0xFA8D, 0x5396, 0x99CB, 0x5398, 0x97D0, - 0x539A, 0x8CFA, 0x539F, 0x8CB4, 0x53A0, 0x99CC, 0x53A5, 0x99CE, - 0x53A6, 0x99CD, 0x53A8, 0x907E, 0x53A9, 0x8958, 0x53AD, 0x897D, - 0x53AE, 0x99CF, 0x53B0, 0x99D0, 0x53B2, 0xFA8E, 0x53B3, 0x8CB5, - 0x53B6, 0x99D1, 0x53BB, 0x8B8E, 0x53C2, 0x8E51, 0x53C3, 0x99D2, - 0x53C8, 0x9694, 0x53C9, 0x8DB3, 0x53CA, 0x8B79, 0x53CB, 0x9746, - 0x53CC, 0x916F, 0x53CD, 0x94BD, 0x53CE, 0x8EFB, 0x53D4, 0x8F66, - 0x53D6, 0x8EE6, 0x53D7, 0x8EF3, 0x53D9, 0x8F96, 0x53DB, 0x94BE, - 0x53DD, 0xFA8F, 0x53DF, 0x99D5, 0x53E1, 0x8962, 0x53E2, 0x9170, - 0x53E3, 0x8CFB, 0x53E4, 0x8CC3, 0x53E5, 0x8BE5, 0x53E8, 0x99D9, - 0x53E9, 0x9240, 0x53EA, 0x91FC, 0x53EB, 0x8BA9, 0x53EC, 0x8FA2, - 0x53ED, 0x99DA, 0x53EE, 0x99D8, 0x53EF, 0x89C2, 0x53F0, 0x91E4, - 0x53F1, 0x8EB6, 0x53F2, 0x8E6A, 0x53F3, 0x8945, 0x53F6, 0x8A90, - 0x53F7, 0x8D86, 0x53F8, 0x8E69, 0x53FA, 0x99DB, 0x5401, 0x99DC, - 0x5403, 0x8B68, 0x5404, 0x8A65, 0x5408, 0x8D87, 0x5409, 0x8B67, - 0x540A, 0x92DD, 0x540B, 0x8944, 0x540C, 0x93AF, 0x540D, 0x96BC, - 0x540E, 0x8D40, 0x540F, 0x9799, 0x5410, 0x9366, 0x5411, 0x8CFC, - 0x541B, 0x8C4E, 0x541D, 0x99E5, 0x541F, 0x8BE1, 0x5420, 0x9669, - 0x5426, 0x94DB, 0x5429, 0x99E4, 0x542B, 0x8ADC, 0x542C, 0x99DF, - 0x542D, 0x99E0, 0x542E, 0x99E2, 0x5436, 0x99E3, 0x5438, 0x8B7A, - 0x5439, 0x9081, 0x543B, 0x95AB, 0x543C, 0x99E1, 0x543D, 0x99DD, - 0x543E, 0x8CE1, 0x5440, 0x99DE, 0x5442, 0x9843, 0x5446, 0x95F0, - 0x5448, 0x92E6, 0x5449, 0x8CE0, 0x544A, 0x8D90, 0x544E, 0x99E6, - 0x5451, 0x93DB, 0x545F, 0x99EA, 0x5468, 0x8EFC, 0x546A, 0x8EF4, - 0x5470, 0x99ED, 0x5471, 0x99EB, 0x5473, 0x96A1, 0x5475, 0x99E8, - 0x5476, 0x99F1, 0x5477, 0x99EC, 0x547B, 0x99EF, 0x547C, 0x8CC4, - 0x547D, 0x96BD, 0x5480, 0x99F0, 0x5484, 0x99F2, 0x5486, 0x99F4, - 0x548A, 0xFA92, 0x548B, 0x8DEE, 0x548C, 0x9861, 0x548E, 0x99E9, - 0x548F, 0x99E7, 0x5490, 0x99F3, 0x5492, 0x99EE, 0x549C, 0xFA91, - 0x54A2, 0x99F6, 0x54A4, 0x9A42, 0x54A5, 0x99F8, 0x54A8, 0x99FC, - 0x54A9, 0xFA93, 0x54AB, 0x9A40, 0x54AC, 0x99F9, 0x54AF, 0x9A5D, - 0x54B2, 0x8DE7, 0x54B3, 0x8A50, 0x54B8, 0x99F7, 0x54BC, 0x9A44, - 0x54BD, 0x88F4, 0x54BE, 0x9A43, 0x54C0, 0x88A3, 0x54C1, 0x9569, - 0x54C2, 0x9A41, 0x54C4, 0x99FA, 0x54C7, 0x99F5, 0x54C8, 0x99FB, - 0x54C9, 0x8DC6, 0x54D8, 0x9A45, 0x54E1, 0x88F5, 0x54E2, 0x9A4E, - 0x54E5, 0x9A46, 0x54E6, 0x9A47, 0x54E8, 0x8FA3, 0x54E9, 0x9689, - 0x54ED, 0x9A4C, 0x54EE, 0x9A4B, 0x54F2, 0x934E, 0x54FA, 0x9A4D, - 0x54FD, 0x9A4A, 0x54FF, 0xFA94, 0x5504, 0x8953, 0x5506, 0x8DB4, - 0x5507, 0x904F, 0x550F, 0x9A48, 0x5510, 0x9382, 0x5514, 0x9A49, - 0x5516, 0x88A0, 0x552E, 0x9A53, 0x552F, 0x9742, 0x5531, 0x8FA5, - 0x5533, 0x9A59, 0x5538, 0x9A58, 0x5539, 0x9A4F, 0x553E, 0x91C1, - 0x5540, 0x9A50, 0x5544, 0x91ED, 0x5545, 0x9A55, 0x5546, 0x8FA4, - 0x554C, 0x9A52, 0x554F, 0x96E2, 0x5553, 0x8C5B, 0x5556, 0x9A56, - 0x5557, 0x9A57, 0x555C, 0x9A54, 0x555D, 0x9A5A, 0x5563, 0x9A51, - 0x557B, 0x9A60, 0x557C, 0x9A65, 0x557E, 0x9A61, 0x5580, 0x9A5C, - 0x5583, 0x9A66, 0x5584, 0x9150, 0x5586, 0xFA95, 0x5587, 0x9A68, - 0x5589, 0x8D41, 0x558A, 0x9A5E, 0x558B, 0x929D, 0x5598, 0x9A62, - 0x5599, 0x9A5B, 0x559A, 0x8AAB, 0x559C, 0x8AEC, 0x559D, 0x8A85, - 0x559E, 0x9A63, 0x559F, 0x9A5F, 0x55A7, 0x8C96, 0x55A8, 0x9A69, - 0x55A9, 0x9A67, 0x55AA, 0x9172, 0x55AB, 0x8B69, 0x55AC, 0x8BAA, - 0x55AE, 0x9A64, 0x55B0, 0x8BF2, 0x55B6, 0x8963, 0x55C4, 0x9A6D, - 0x55C5, 0x9A6B, 0x55C7, 0x9AA5, 0x55D4, 0x9A70, 0x55DA, 0x9A6A, - 0x55DC, 0x9A6E, 0x55DF, 0x9A6C, 0x55E3, 0x8E6B, 0x55E4, 0x9A6F, - 0x55F7, 0x9A72, 0x55F9, 0x9A77, 0x55FD, 0x9A75, 0x55FE, 0x9A74, - 0x5606, 0x9251, 0x5609, 0x89C3, 0x5614, 0x9A71, 0x5616, 0x9A73, - 0x5617, 0x8FA6, 0x5618, 0x8952, 0x561B, 0x9A76, 0x5629, 0x89DC, - 0x562F, 0x9A82, 0x5631, 0x8FFA, 0x5632, 0x9A7D, 0x5634, 0x9A7B, - 0x5636, 0x9A7C, 0x5638, 0x9A7E, 0x5642, 0x895C, 0x564C, 0x9158, - 0x564E, 0x9A78, 0x5650, 0x9A79, 0x565B, 0x8A9A, 0x5664, 0x9A81, - 0x5668, 0x8AED, 0x566A, 0x9A84, 0x566B, 0x9A80, 0x566C, 0x9A83, - 0x5674, 0x95AC, 0x5678, 0x93D3, 0x567A, 0x94B6, 0x5680, 0x9A86, - 0x5686, 0x9A85, 0x5687, 0x8A64, 0x568A, 0x9A87, 0x568F, 0x9A8A, - 0x5694, 0x9A89, 0x56A0, 0x9A88, 0x56A2, 0x9458, 0x56A5, 0x9A8B, - 0x56AE, 0x9A8C, 0x56B4, 0x9A8E, 0x56B6, 0x9A8D, 0x56BC, 0x9A90, - 0x56C0, 0x9A93, 0x56C1, 0x9A91, 0x56C2, 0x9A8F, 0x56C3, 0x9A92, - 0x56C8, 0x9A94, 0x56CE, 0x9A95, 0x56D1, 0x9A96, 0x56D3, 0x9A97, - 0x56D7, 0x9A98, 0x56D8, 0x9964, 0x56DA, 0x8EFA, 0x56DB, 0x8E6C, - 0x56DE, 0x89F1, 0x56E0, 0x88F6, 0x56E3, 0x9263, 0x56EE, 0x9A99, - 0x56F0, 0x8DA2, 0x56F2, 0x88CD, 0x56F3, 0x907D, 0x56F9, 0x9A9A, - 0x56FA, 0x8CC5, 0x56FD, 0x8D91, 0x56FF, 0x9A9C, 0x5700, 0x9A9B, - 0x5703, 0x95DE, 0x5704, 0x9A9D, 0x5708, 0x9A9F, 0x5709, 0x9A9E, - 0x570B, 0x9AA0, 0x570D, 0x9AA1, 0x570F, 0x8C97, 0x5712, 0x8980, - 0x5713, 0x9AA2, 0x5716, 0x9AA4, 0x5718, 0x9AA3, 0x571C, 0x9AA6, - 0x571F, 0x9379, 0x5726, 0x9AA7, 0x5727, 0x88B3, 0x5728, 0x8DDD, - 0x572D, 0x8C5C, 0x5730, 0x926E, 0x5737, 0x9AA8, 0x5738, 0x9AA9, - 0x573B, 0x9AAB, 0x5740, 0x9AAC, 0x5742, 0x8DE2, 0x5747, 0x8BCF, - 0x574A, 0x9656, 0x574E, 0x9AAA, 0x574F, 0x9AAD, 0x5750, 0x8DBF, - 0x5751, 0x8D42, 0x5759, 0xFA96, 0x5761, 0x9AB1, 0x5764, 0x8DA3, - 0x5765, 0xFA97, 0x5766, 0x9252, 0x5769, 0x9AAE, 0x576A, 0x92D8, - 0x577F, 0x9AB2, 0x5782, 0x9082, 0x5788, 0x9AB0, 0x5789, 0x9AB3, - 0x578B, 0x8C5E, 0x5793, 0x9AB4, 0x57A0, 0x9AB5, 0x57A2, 0x8D43, - 0x57A3, 0x8A5F, 0x57A4, 0x9AB7, 0x57AA, 0x9AB8, 0x57AC, 0xFA98, - 0x57B0, 0x9AB9, 0x57B3, 0x9AB6, 0x57C0, 0x9AAF, 0x57C3, 0x9ABA, - 0x57C6, 0x9ABB, 0x57C7, 0xFA9A, 0x57C8, 0xFA99, 0x57CB, 0x9684, - 0x57CE, 0x8FE9, 0x57D2, 0x9ABD, 0x57D3, 0x9ABE, 0x57D4, 0x9ABC, - 0x57D6, 0x9AC0, 0x57DC, 0x9457, 0x57DF, 0x88E6, 0x57E0, 0x9575, - 0x57E3, 0x9AC1, 0x57F4, 0x8FFB, 0x57F7, 0x8EB7, 0x57F9, 0x947C, - 0x57FA, 0x8AEE, 0x57FC, 0x8DE9, 0x5800, 0x9678, 0x5802, 0x93B0, - 0x5805, 0x8C98, 0x5806, 0x91CD, 0x580A, 0x9ABF, 0x580B, 0x9AC2, - 0x5815, 0x91C2, 0x5819, 0x9AC3, 0x581D, 0x9AC4, 0x5821, 0x9AC6, - 0x5824, 0x92E7, 0x582A, 0x8AAC, 0x582F, 0xEA9F, 0x5830, 0x8981, - 0x5831, 0x95F1, 0x5834, 0x8FEA, 0x5835, 0x9367, 0x583A, 0x8DE4, - 0x583D, 0x9ACC, 0x5840, 0x95BB, 0x5841, 0x97DB, 0x584A, 0x89F2, - 0x584B, 0x9AC8, 0x5851, 0x9159, 0x5852, 0x9ACB, 0x5854, 0x9383, - 0x5857, 0x9368, 0x5858, 0x9384, 0x5859, 0x94B7, 0x585A, 0x92CB, - 0x585E, 0x8DC7, 0x5862, 0x9AC7, 0x5869, 0x8996, 0x586B, 0x9355, - 0x5870, 0x9AC9, 0x5872, 0x9AC5, 0x5875, 0x906F, 0x5879, 0x9ACD, - 0x587E, 0x8F6D, 0x5883, 0x8BAB, 0x5885, 0x9ACE, 0x5893, 0x95E6, - 0x5897, 0x919D, 0x589C, 0x92C4, 0x589E, 0xFA9D, 0x589F, 0x9AD0, - 0x58A8, 0x966E, 0x58AB, 0x9AD1, 0x58AE, 0x9AD6, 0x58B2, 0xFA9E, - 0x58B3, 0x95AD, 0x58B8, 0x9AD5, 0x58B9, 0x9ACF, 0x58BA, 0x9AD2, - 0x58BB, 0x9AD4, 0x58BE, 0x8DA4, 0x58C1, 0x95C7, 0x58C5, 0x9AD7, - 0x58C7, 0x9264, 0x58CA, 0x89F3, 0x58CC, 0x8FEB, 0x58D1, 0x9AD9, - 0x58D3, 0x9AD8, 0x58D5, 0x8D88, 0x58D7, 0x9ADA, 0x58D8, 0x9ADC, - 0x58D9, 0x9ADB, 0x58DC, 0x9ADE, 0x58DE, 0x9AD3, 0x58DF, 0x9AE0, - 0x58E4, 0x9ADF, 0x58E5, 0x9ADD, 0x58EB, 0x8E6D, 0x58EC, 0x9070, - 0x58EE, 0x9173, 0x58EF, 0x9AE1, 0x58F0, 0x90BA, 0x58F1, 0x88EB, - 0x58F2, 0x9484, 0x58F7, 0x92D9, 0x58F9, 0x9AE3, 0x58FA, 0x9AE2, - 0x58FB, 0x9AE4, 0x58FC, 0x9AE5, 0x58FD, 0x9AE6, 0x5902, 0x9AE7, - 0x5909, 0x95CF, 0x590A, 0x9AE8, 0x590B, 0xFA9F, 0x590F, 0x89C4, - 0x5910, 0x9AE9, 0x5915, 0x975B, 0x5916, 0x8A4F, 0x5918, 0x99C7, - 0x5919, 0x8F67, 0x591A, 0x91BD, 0x591B, 0x9AEA, 0x591C, 0x96E9, - 0x5922, 0x96B2, 0x5925, 0x9AEC, 0x5927, 0x91E5, 0x5929, 0x9356, - 0x592A, 0x91BE, 0x592B, 0x9576, 0x592C, 0x9AED, 0x592D, 0x9AEE, - 0x592E, 0x899B, 0x5931, 0x8EB8, 0x5932, 0x9AEF, 0x5937, 0x88CE, - 0x5938, 0x9AF0, 0x593E, 0x9AF1, 0x5944, 0x8982, 0x5947, 0x8AEF, - 0x5948, 0x93DE, 0x5949, 0x95F2, 0x594E, 0x9AF5, 0x594F, 0x9174, - 0x5950, 0x9AF4, 0x5951, 0x8C5F, 0x5953, 0xFAA0, 0x5954, 0x967A, - 0x5955, 0x9AF3, 0x5957, 0x9385, 0x5958, 0x9AF7, 0x595A, 0x9AF6, - 0x595B, 0xFAA1, 0x595D, 0xFAA2, 0x5960, 0x9AF9, 0x5962, 0x9AF8, - 0x5963, 0xFAA3, 0x5965, 0x899C, 0x5967, 0x9AFA, 0x5968, 0x8FA7, - 0x5969, 0x9AFC, 0x596A, 0x9244, 0x596C, 0x9AFB, 0x596E, 0x95B1, - 0x5973, 0x8F97, 0x5974, 0x937A, 0x5978, 0x9B40, 0x597D, 0x8D44, - 0x5981, 0x9B41, 0x5982, 0x9440, 0x5983, 0x94DC, 0x5984, 0x96CF, - 0x598A, 0x9444, 0x598D, 0x9B4A, 0x5993, 0x8B57, 0x5996, 0x9764, - 0x5999, 0x96AD, 0x599B, 0x9BAA, 0x599D, 0x9B42, 0x59A3, 0x9B45, - 0x59A4, 0xFAA4, 0x59A5, 0x91C3, 0x59A8, 0x9657, 0x59AC, 0x9369, - 0x59B2, 0x9B46, 0x59B9, 0x9685, 0x59BA, 0xFAA5, 0x59BB, 0x8DC8, - 0x59BE, 0x8FA8, 0x59C6, 0x9B47, 0x59C9, 0x8E6F, 0x59CB, 0x8E6E, - 0x59D0, 0x88B7, 0x59D1, 0x8CC6, 0x59D3, 0x90A9, 0x59D4, 0x88CF, - 0x59D9, 0x9B4B, 0x59DA, 0x9B4C, 0x59DC, 0x9B49, 0x59E5, 0x8957, - 0x59E6, 0x8AAD, 0x59E8, 0x9B48, 0x59EA, 0x96C3, 0x59EB, 0x9550, - 0x59F6, 0x88A6, 0x59FB, 0x88F7, 0x59FF, 0x8E70, 0x5A01, 0x88D0, - 0x5A03, 0x88A1, 0x5A09, 0x9B51, 0x5A11, 0x9B4F, 0x5A18, 0x96BA, - 0x5A1A, 0x9B52, 0x5A1C, 0x9B50, 0x5A1F, 0x9B4E, 0x5A20, 0x9050, - 0x5A25, 0x9B4D, 0x5A29, 0x95D8, 0x5A2F, 0x8CE2, 0x5A35, 0x9B56, - 0x5A36, 0x9B57, 0x5A3C, 0x8FA9, 0x5A40, 0x9B53, 0x5A41, 0x984B, - 0x5A46, 0x946B, 0x5A49, 0x9B55, 0x5A5A, 0x8DA5, 0x5A62, 0x9B58, - 0x5A66, 0x9577, 0x5A6A, 0x9B59, 0x5A6C, 0x9B54, 0x5A7F, 0x96B9, - 0x5A92, 0x947D, 0x5A9A, 0x9B5A, 0x5A9B, 0x9551, 0x5ABC, 0x9B5B, - 0x5ABD, 0x9B5F, 0x5ABE, 0x9B5C, 0x5AC1, 0x89C5, 0x5AC2, 0x9B5E, - 0x5AC9, 0x8EB9, 0x5ACB, 0x9B5D, 0x5ACC, 0x8C99, 0x5AD0, 0x9B6B, - 0x5AD6, 0x9B64, 0x5AD7, 0x9B61, 0x5AE1, 0x9284, 0x5AE3, 0x9B60, - 0x5AE6, 0x9B62, 0x5AE9, 0x9B63, 0x5AFA, 0x9B65, 0x5AFB, 0x9B66, - 0x5B09, 0x8AF0, 0x5B0B, 0x9B68, 0x5B0C, 0x9B67, 0x5B16, 0x9B69, - 0x5B22, 0x8FEC, 0x5B2A, 0x9B6C, 0x5B2C, 0x92DA, 0x5B30, 0x8964, - 0x5B32, 0x9B6A, 0x5B36, 0x9B6D, 0x5B3E, 0x9B6E, 0x5B40, 0x9B71, - 0x5B43, 0x9B6F, 0x5B45, 0x9B70, 0x5B50, 0x8E71, 0x5B51, 0x9B72, - 0x5B54, 0x8D45, 0x5B55, 0x9B73, 0x5B56, 0xFAA6, 0x5B57, 0x8E9A, - 0x5B58, 0x91B6, 0x5B5A, 0x9B74, 0x5B5B, 0x9B75, 0x5B5C, 0x8E79, - 0x5B5D, 0x8D46, 0x5B5F, 0x96D0, 0x5B63, 0x8B47, 0x5B64, 0x8CC7, - 0x5B65, 0x9B76, 0x5B66, 0x8A77, 0x5B69, 0x9B77, 0x5B6B, 0x91B7, - 0x5B70, 0x9B78, 0x5B71, 0x9BA1, 0x5B73, 0x9B79, 0x5B75, 0x9B7A, - 0x5B78, 0x9B7B, 0x5B7A, 0x9B7D, 0x5B80, 0x9B7E, 0x5B83, 0x9B80, - 0x5B85, 0x91EE, 0x5B87, 0x8946, 0x5B88, 0x8EE7, 0x5B89, 0x88C0, - 0x5B8B, 0x9176, 0x5B8C, 0x8AAE, 0x5B8D, 0x8EB3, 0x5B8F, 0x8D47, - 0x5B95, 0x9386, 0x5B97, 0x8F40, 0x5B98, 0x8AAF, 0x5B99, 0x9288, - 0x5B9A, 0x92E8, 0x5B9B, 0x88B6, 0x5B9C, 0x8B58, 0x5B9D, 0x95F3, - 0x5B9F, 0x8EC0, 0x5BA2, 0x8B71, 0x5BA3, 0x90E9, 0x5BA4, 0x8EBA, - 0x5BA5, 0x9747, 0x5BA6, 0x9B81, 0x5BAE, 0x8B7B, 0x5BB0, 0x8DC9, - 0x5BB3, 0x8A51, 0x5BB4, 0x8983, 0x5BB5, 0x8FAA, 0x5BB6, 0x89C6, - 0x5BB8, 0x9B82, 0x5BB9, 0x9765, 0x5BBF, 0x8F68, 0x5BC0, 0xFAA7, - 0x5BC2, 0x8EE2, 0x5BC3, 0x9B83, 0x5BC4, 0x8AF1, 0x5BC5, 0x93D0, - 0x5BC6, 0x96A7, 0x5BC7, 0x9B84, 0x5BC9, 0x9B85, 0x5BCC, 0x9578, - 0x5BD0, 0x9B87, 0x5BD2, 0x8AA6, 0x5BD3, 0x8BF5, 0x5BD4, 0x9B86, - 0x5BD8, 0xFAA9, 0x5BDB, 0x8AB0, 0x5BDD, 0x9051, 0x5BDE, 0x9B8B, - 0x5BDF, 0x8E40, 0x5BE1, 0x89C7, 0x5BE2, 0x9B8A, 0x5BE4, 0x9B88, - 0x5BE5, 0x9B8C, 0x5BE6, 0x9B89, 0x5BE7, 0x944A, 0x5BE8, 0x9ECB, - 0x5BE9, 0x9052, 0x5BEB, 0x9B8D, 0x5BEC, 0xFAAA, 0x5BEE, 0x97BE, - 0x5BF0, 0x9B8E, 0x5BF3, 0x9B90, 0x5BF5, 0x929E, 0x5BF6, 0x9B8F, - 0x5BF8, 0x90A1, 0x5BFA, 0x8E9B, 0x5BFE, 0x91CE, 0x5BFF, 0x8EF5, - 0x5C01, 0x9595, 0x5C02, 0x90EA, 0x5C04, 0x8ECB, 0x5C05, 0x9B91, - 0x5C06, 0x8FAB, 0x5C07, 0x9B92, 0x5C08, 0x9B93, 0x5C09, 0x88D1, - 0x5C0A, 0x91B8, 0x5C0B, 0x9071, 0x5C0D, 0x9B94, 0x5C0E, 0x93B1, - 0x5C0F, 0x8FAC, 0x5C11, 0x8FAD, 0x5C13, 0x9B95, 0x5C16, 0x90EB, - 0x5C1A, 0x8FAE, 0x5C1E, 0xFAAB, 0x5C20, 0x9B96, 0x5C22, 0x9B97, - 0x5C24, 0x96DE, 0x5C28, 0x9B98, 0x5C2D, 0x8BC4, 0x5C31, 0x8F41, - 0x5C38, 0x9B99, 0x5C39, 0x9B9A, 0x5C3A, 0x8EDA, 0x5C3B, 0x904B, - 0x5C3C, 0x93F2, 0x5C3D, 0x9073, 0x5C3E, 0x94F6, 0x5C3F, 0x9441, - 0x5C40, 0x8BC7, 0x5C41, 0x9B9B, 0x5C45, 0x8B8F, 0x5C46, 0x9B9C, - 0x5C48, 0x8BFC, 0x5C4A, 0x93CD, 0x5C4B, 0x89AE, 0x5C4D, 0x8E72, - 0x5C4E, 0x9B9D, 0x5C4F, 0x9BA0, 0x5C50, 0x9B9F, 0x5C51, 0x8BFB, - 0x5C53, 0x9B9E, 0x5C55, 0x9357, 0x5C5E, 0x91AE, 0x5C60, 0x936A, - 0x5C61, 0x8EC6, 0x5C64, 0x9177, 0x5C65, 0x979A, 0x5C6C, 0x9BA2, - 0x5C6E, 0x9BA3, 0x5C6F, 0x93D4, 0x5C71, 0x8E52, 0x5C76, 0x9BA5, - 0x5C79, 0x9BA6, 0x5C8C, 0x9BA7, 0x5C90, 0x8AF2, 0x5C91, 0x9BA8, - 0x5C94, 0x9BA9, 0x5CA1, 0x89AA, 0x5CA6, 0xFAAC, 0x5CA8, 0x915A, - 0x5CA9, 0x8AE2, 0x5CAB, 0x9BAB, 0x5CAC, 0x96A6, 0x5CB1, 0x91D0, - 0x5CB3, 0x8A78, 0x5CB6, 0x9BAD, 0x5CB7, 0x9BAF, 0x5CB8, 0x8ADD, - 0x5CBA, 0xFAAD, 0x5CBB, 0x9BAC, 0x5CBC, 0x9BAE, 0x5CBE, 0x9BB1, - 0x5CC5, 0x9BB0, 0x5CC7, 0x9BB2, 0x5CD9, 0x9BB3, 0x5CE0, 0x93BB, - 0x5CE1, 0x8BAC, 0x5CE8, 0x89E3, 0x5CE9, 0x9BB4, 0x5CEA, 0x9BB9, - 0x5CED, 0x9BB7, 0x5CEF, 0x95F5, 0x5CF0, 0x95F4, 0x5CF5, 0xFAAE, - 0x5CF6, 0x9387, 0x5CFA, 0x9BB6, 0x5CFB, 0x8F73, 0x5CFD, 0x9BB5, - 0x5D07, 0x9092, 0x5D0B, 0x9BBA, 0x5D0E, 0x8DE8, 0x5D11, 0x9BC0, - 0x5D14, 0x9BC1, 0x5D15, 0x9BBB, 0x5D16, 0x8A52, 0x5D17, 0x9BBC, - 0x5D18, 0x9BC5, 0x5D19, 0x9BC4, 0x5D1A, 0x9BC3, 0x5D1B, 0x9BBF, - 0x5D1F, 0x9BBE, 0x5D22, 0x9BC2, 0x5D27, 0xFAAF, 0x5D29, 0x95F6, - 0x5D42, 0xFAB2, 0x5D4B, 0x9BC9, 0x5D4C, 0x9BC6, 0x5D4E, 0x9BC8, - 0x5D50, 0x9792, 0x5D52, 0x9BC7, 0x5D53, 0xFAB0, 0x5D5C, 0x9BBD, - 0x5D69, 0x9093, 0x5D6C, 0x9BCA, 0x5D6D, 0xFAB3, 0x5D6F, 0x8DB5, - 0x5D73, 0x9BCB, 0x5D76, 0x9BCC, 0x5D82, 0x9BCF, 0x5D84, 0x9BCE, - 0x5D87, 0x9BCD, 0x5D8B, 0x9388, 0x5D8C, 0x9BB8, 0x5D90, 0x9BD5, - 0x5D9D, 0x9BD1, 0x5DA2, 0x9BD0, 0x5DAC, 0x9BD2, 0x5DAE, 0x9BD3, - 0x5DB7, 0x9BD6, 0x5DB8, 0xFAB4, 0x5DB9, 0xFAB5, 0x5DBA, 0x97E4, - 0x5DBC, 0x9BD7, 0x5DBD, 0x9BD4, 0x5DC9, 0x9BD8, 0x5DCC, 0x8ADE, - 0x5DCD, 0x9BD9, 0x5DD0, 0xFAB6, 0x5DD2, 0x9BDB, 0x5DD3, 0x9BDA, - 0x5DD6, 0x9BDC, 0x5DDB, 0x9BDD, 0x5DDD, 0x90EC, 0x5DDE, 0x8F42, - 0x5DE1, 0x8F84, 0x5DE3, 0x9183, 0x5DE5, 0x8D48, 0x5DE6, 0x8DB6, - 0x5DE7, 0x8D49, 0x5DE8, 0x8B90, 0x5DEB, 0x9BDE, 0x5DEE, 0x8DB7, - 0x5DF1, 0x8CC8, 0x5DF2, 0x9BDF, 0x5DF3, 0x96A4, 0x5DF4, 0x9462, - 0x5DF5, 0x9BE0, 0x5DF7, 0x8D4A, 0x5DFB, 0x8AAA, 0x5DFD, 0x9246, - 0x5DFE, 0x8BD0, 0x5E02, 0x8E73, 0x5E03, 0x957A, 0x5E06, 0x94BF, - 0x5E0B, 0x9BE1, 0x5E0C, 0x8AF3, 0x5E11, 0x9BE4, 0x5E16, 0x929F, - 0x5E19, 0x9BE3, 0x5E1A, 0x9BE2, 0x5E1B, 0x9BE5, 0x5E1D, 0x92E9, - 0x5E25, 0x9083, 0x5E2B, 0x8E74, 0x5E2D, 0x90C8, 0x5E2F, 0x91D1, - 0x5E30, 0x8B41, 0x5E33, 0x92A0, 0x5E36, 0x9BE6, 0x5E37, 0x9BE7, - 0x5E38, 0x8FED, 0x5E3D, 0x9658, 0x5E40, 0x9BEA, 0x5E43, 0x9BE9, - 0x5E44, 0x9BE8, 0x5E45, 0x959D, 0x5E47, 0x9BF1, 0x5E4C, 0x9679, - 0x5E4E, 0x9BEB, 0x5E54, 0x9BED, 0x5E55, 0x968B, 0x5E57, 0x9BEC, - 0x5E5F, 0x9BEE, 0x5E61, 0x94A6, 0x5E62, 0x9BEF, 0x5E63, 0x95BC, - 0x5E64, 0x9BF0, 0x5E72, 0x8AB1, 0x5E73, 0x95BD, 0x5E74, 0x944E, - 0x5E75, 0x9BF2, 0x5E76, 0x9BF3, 0x5E78, 0x8D4B, 0x5E79, 0x8AB2, - 0x5E7A, 0x9BF4, 0x5E7B, 0x8CB6, 0x5E7C, 0x9763, 0x5E7D, 0x9748, - 0x5E7E, 0x8AF4, 0x5E7F, 0x9BF6, 0x5E81, 0x92A1, 0x5E83, 0x8D4C, - 0x5E84, 0x8FAF, 0x5E87, 0x94DD, 0x5E8A, 0x8FB0, 0x5E8F, 0x8F98, - 0x5E95, 0x92EA, 0x5E96, 0x95F7, 0x5E97, 0x9358, 0x5E9A, 0x8D4D, - 0x5E9C, 0x957B, 0x5EA0, 0x9BF7, 0x5EA6, 0x9378, 0x5EA7, 0x8DC0, - 0x5EAB, 0x8CC9, 0x5EAD, 0x92EB, 0x5EB5, 0x88C1, 0x5EB6, 0x8F8E, - 0x5EB7, 0x8D4E, 0x5EB8, 0x9766, 0x5EC1, 0x9BF8, 0x5EC2, 0x9BF9, - 0x5EC3, 0x9470, 0x5EC8, 0x9BFA, 0x5EC9, 0x97F5, 0x5ECA, 0x984C, - 0x5ECF, 0x9BFC, 0x5ED0, 0x9BFB, 0x5ED3, 0x8A66, 0x5ED6, 0x9C40, - 0x5EDA, 0x9C43, 0x5EDB, 0x9C44, 0x5EDD, 0x9C42, 0x5EDF, 0x955F, - 0x5EE0, 0x8FB1, 0x5EE1, 0x9C46, 0x5EE2, 0x9C45, 0x5EE3, 0x9C41, - 0x5EE8, 0x9C47, 0x5EE9, 0x9C48, 0x5EEC, 0x9C49, 0x5EF0, 0x9C4C, - 0x5EF1, 0x9C4A, 0x5EF3, 0x9C4B, 0x5EF4, 0x9C4D, 0x5EF6, 0x8984, - 0x5EF7, 0x92EC, 0x5EF8, 0x9C4E, 0x5EFA, 0x8C9A, 0x5EFB, 0x89F4, - 0x5EFC, 0x9455, 0x5EFE, 0x9C4F, 0x5EFF, 0x93F9, 0x5F01, 0x95D9, - 0x5F03, 0x9C50, 0x5F04, 0x984D, 0x5F09, 0x9C51, 0x5F0A, 0x95BE, - 0x5F0B, 0x9C54, 0x5F0C, 0x989F, 0x5F0D, 0x98AF, 0x5F0F, 0x8EAE, - 0x5F10, 0x93F3, 0x5F11, 0x9C55, 0x5F13, 0x8B7C, 0x5F14, 0x92A2, - 0x5F15, 0x88F8, 0x5F16, 0x9C56, 0x5F17, 0x95A4, 0x5F18, 0x8D4F, - 0x5F1B, 0x926F, 0x5F1F, 0x92ED, 0x5F21, 0xFAB7, 0x5F25, 0x96ED, - 0x5F26, 0x8CB7, 0x5F27, 0x8CCA, 0x5F29, 0x9C57, 0x5F2D, 0x9C58, - 0x5F2F, 0x9C5E, 0x5F31, 0x8EE3, 0x5F34, 0xFAB8, 0x5F35, 0x92A3, - 0x5F37, 0x8BAD, 0x5F38, 0x9C59, 0x5F3C, 0x954A, 0x5F3E, 0x9265, - 0x5F41, 0x9C5A, 0x5F45, 0xFA67, 0x5F48, 0x9C5B, 0x5F4A, 0x8BAE, - 0x5F4C, 0x9C5C, 0x5F4E, 0x9C5D, 0x5F51, 0x9C5F, 0x5F53, 0x9396, - 0x5F56, 0x9C60, 0x5F57, 0x9C61, 0x5F59, 0x9C62, 0x5F5C, 0x9C53, - 0x5F5D, 0x9C52, 0x5F61, 0x9C63, 0x5F62, 0x8C60, 0x5F66, 0x9546, - 0x5F67, 0xFAB9, 0x5F69, 0x8DCA, 0x5F6A, 0x9556, 0x5F6B, 0x92A4, - 0x5F6C, 0x956A, 0x5F6D, 0x9C64, 0x5F70, 0x8FB2, 0x5F71, 0x8965, - 0x5F73, 0x9C65, 0x5F77, 0x9C66, 0x5F79, 0x96F0, 0x5F7C, 0x94DE, - 0x5F7F, 0x9C69, 0x5F80, 0x899D, 0x5F81, 0x90AA, 0x5F82, 0x9C68, - 0x5F83, 0x9C67, 0x5F84, 0x8C61, 0x5F85, 0x91D2, 0x5F87, 0x9C6D, - 0x5F88, 0x9C6B, 0x5F8A, 0x9C6A, 0x5F8B, 0x97A5, 0x5F8C, 0x8CE3, - 0x5F90, 0x8F99, 0x5F91, 0x9C6C, 0x5F92, 0x936B, 0x5F93, 0x8F5D, - 0x5F97, 0x93BE, 0x5F98, 0x9C70, 0x5F99, 0x9C6F, 0x5F9E, 0x9C6E, - 0x5FA0, 0x9C71, 0x5FA1, 0x8CE4, 0x5FA8, 0x9C72, 0x5FA9, 0x959C, - 0x5FAA, 0x8F7A, 0x5FAD, 0x9C73, 0x5FAE, 0x94F7, 0x5FB3, 0x93BF, - 0x5FB4, 0x92A5, 0x5FB7, 0xFABA, 0x5FB9, 0x934F, 0x5FBC, 0x9C74, - 0x5FBD, 0x8B4A, 0x5FC3, 0x9053, 0x5FC5, 0x954B, 0x5FCC, 0x8AF5, - 0x5FCD, 0x9445, 0x5FD6, 0x9C75, 0x5FD7, 0x8E75, 0x5FD8, 0x9659, - 0x5FD9, 0x965A, 0x5FDC, 0x899E, 0x5FDD, 0x9C7A, 0x5FDE, 0xFABB, - 0x5FE0, 0x9289, 0x5FE4, 0x9C77, 0x5FEB, 0x89F5, 0x5FF0, 0x9CAB, - 0x5FF1, 0x9C79, 0x5FF5, 0x944F, 0x5FF8, 0x9C78, 0x5FFB, 0x9C76, - 0x5FFD, 0x8D9A, 0x5FFF, 0x9C7C, 0x600E, 0x9C83, 0x600F, 0x9C89, - 0x6010, 0x9C81, 0x6012, 0x937B, 0x6015, 0x9C86, 0x6016, 0x957C, - 0x6019, 0x9C80, 0x601B, 0x9C85, 0x601C, 0x97E5, 0x601D, 0x8E76, - 0x6020, 0x91D3, 0x6021, 0x9C7D, 0x6025, 0x8B7D, 0x6026, 0x9C88, - 0x6027, 0x90AB, 0x6028, 0x8985, 0x6029, 0x9C82, 0x602A, 0x89F6, - 0x602B, 0x9C87, 0x602F, 0x8BAF, 0x6031, 0x9C84, 0x603A, 0x9C8A, - 0x6041, 0x9C8C, 0x6042, 0x9C96, 0x6043, 0x9C94, 0x6046, 0x9C91, - 0x604A, 0x9C90, 0x604B, 0x97F6, 0x604D, 0x9C92, 0x6050, 0x8BB0, - 0x6052, 0x8D50, 0x6055, 0x8F9A, 0x6059, 0x9C99, 0x605A, 0x9C8B, - 0x605D, 0xFABC, 0x605F, 0x9C8F, 0x6060, 0x9C7E, 0x6062, 0x89F8, - 0x6063, 0x9C93, 0x6064, 0x9C95, 0x6065, 0x9270, 0x6068, 0x8DA6, - 0x6069, 0x89B6, 0x606A, 0x9C8D, 0x606B, 0x9C98, 0x606C, 0x9C97, - 0x606D, 0x8BB1, 0x606F, 0x91A7, 0x6070, 0x8A86, 0x6075, 0x8C62, - 0x6077, 0x9C8E, 0x6081, 0x9C9A, 0x6083, 0x9C9D, 0x6084, 0x9C9F, - 0x6085, 0xFABD, 0x6089, 0x8EBB, 0x608A, 0xFABE, 0x608B, 0x9CA5, - 0x608C, 0x92EE, 0x608D, 0x9C9B, 0x6092, 0x9CA3, 0x6094, 0x89F7, - 0x6096, 0x9CA1, 0x6097, 0x9CA2, 0x609A, 0x9C9E, 0x609B, 0x9CA0, - 0x609F, 0x8CE5, 0x60A0, 0x9749, 0x60A3, 0x8AB3, 0x60A6, 0x8978, - 0x60A7, 0x9CA4, 0x60A9, 0x9459, 0x60AA, 0x88AB, 0x60B2, 0x94DF, - 0x60B3, 0x9C7B, 0x60B4, 0x9CAA, 0x60B5, 0x9CAE, 0x60B6, 0x96E3, - 0x60B8, 0x9CA7, 0x60BC, 0x9389, 0x60BD, 0x9CAC, 0x60C5, 0x8FEE, - 0x60C6, 0x9CAD, 0x60C7, 0x93D5, 0x60D1, 0x9866, 0x60D3, 0x9CA9, - 0x60D5, 0xFAC0, 0x60D8, 0x9CAF, 0x60DA, 0x8D9B, 0x60DC, 0x90C9, - 0x60DE, 0xFABF, 0x60DF, 0x88D2, 0x60E0, 0x9CA8, 0x60E1, 0x9CA6, - 0x60E3, 0x9179, 0x60E7, 0x9C9C, 0x60E8, 0x8E53, 0x60F0, 0x91C4, - 0x60F1, 0x9CBB, 0x60F2, 0xFAC2, 0x60F3, 0x917A, 0x60F4, 0x9CB6, - 0x60F6, 0x9CB3, 0x60F7, 0x9CB4, 0x60F9, 0x8EE4, 0x60FA, 0x9CB7, - 0x60FB, 0x9CBA, 0x6100, 0x9CB5, 0x6101, 0x8F44, 0x6103, 0x9CB8, - 0x6106, 0x9CB2, 0x6108, 0x96FA, 0x6109, 0x96F9, 0x610D, 0x9CBC, - 0x610E, 0x9CBD, 0x610F, 0x88D3, 0x6111, 0xFAC3, 0x6115, 0x9CB1, - 0x611A, 0x8BF0, 0x611B, 0x88A4, 0x611F, 0x8AB4, 0x6120, 0xFAC1, - 0x6121, 0x9CB9, 0x6127, 0x9CC1, 0x6128, 0x9CC0, 0x612C, 0x9CC5, - 0x6130, 0xFAC5, 0x6134, 0x9CC6, 0x6137, 0xFAC4, 0x613C, 0x9CC4, - 0x613D, 0x9CC7, 0x613E, 0x9CBF, 0x613F, 0x9CC3, 0x6142, 0x9CC8, - 0x6144, 0x9CC9, 0x6147, 0x9CBE, 0x6148, 0x8E9C, 0x614A, 0x9CC2, - 0x614B, 0x91D4, 0x614C, 0x8D51, 0x614D, 0x9CB0, 0x614E, 0x9054, - 0x6153, 0x9CD6, 0x6155, 0x95E7, 0x6158, 0x9CCC, 0x6159, 0x9CCD, - 0x615A, 0x9CCE, 0x615D, 0x9CD5, 0x615F, 0x9CD4, 0x6162, 0x969D, - 0x6163, 0x8AB5, 0x6165, 0x9CD2, 0x6167, 0x8C64, 0x6168, 0x8A53, - 0x616B, 0x9CCF, 0x616E, 0x97B6, 0x616F, 0x9CD1, 0x6170, 0x88D4, - 0x6171, 0x9CD3, 0x6173, 0x9CCA, 0x6174, 0x9CD0, 0x6175, 0x9CD7, - 0x6176, 0x8C63, 0x6177, 0x9CCB, 0x617E, 0x977C, 0x6182, 0x974A, - 0x6187, 0x9CDA, 0x618A, 0x9CDE, 0x618E, 0x919E, 0x6190, 0x97F7, - 0x6191, 0x9CDF, 0x6194, 0x9CDC, 0x6196, 0x9CD9, 0x6198, 0xFAC6, - 0x6199, 0x9CD8, 0x619A, 0x9CDD, 0x61A4, 0x95AE, 0x61A7, 0x93B2, - 0x61A9, 0x8C65, 0x61AB, 0x9CE0, 0x61AC, 0x9CDB, 0x61AE, 0x9CE1, - 0x61B2, 0x8C9B, 0x61B6, 0x89AF, 0x61BA, 0x9CE9, 0x61BE, 0x8AB6, - 0x61C3, 0x9CE7, 0x61C6, 0x9CE8, 0x61C7, 0x8DA7, 0x61C8, 0x9CE6, - 0x61C9, 0x9CE4, 0x61CA, 0x9CE3, 0x61CB, 0x9CEA, 0x61CC, 0x9CE2, - 0x61CD, 0x9CEC, 0x61D0, 0x89F9, 0x61E3, 0x9CEE, 0x61E6, 0x9CED, - 0x61F2, 0x92A6, 0x61F4, 0x9CF1, 0x61F6, 0x9CEF, 0x61F7, 0x9CE5, - 0x61F8, 0x8C9C, 0x61FA, 0x9CF0, 0x61FC, 0x9CF4, 0x61FD, 0x9CF3, - 0x61FE, 0x9CF5, 0x61FF, 0x9CF2, 0x6200, 0x9CF6, 0x6208, 0x9CF7, - 0x6209, 0x9CF8, 0x620A, 0x95E8, 0x620C, 0x9CFA, 0x620D, 0x9CF9, - 0x620E, 0x8F5E, 0x6210, 0x90AC, 0x6211, 0x89E4, 0x6212, 0x89FA, - 0x6213, 0xFAC7, 0x6214, 0x9CFB, 0x6216, 0x88BD, 0x621A, 0x90CA, - 0x621B, 0x9CFC, 0x621D, 0xE6C1, 0x621E, 0x9D40, 0x621F, 0x8C81, - 0x6221, 0x9D41, 0x6226, 0x90ED, 0x622A, 0x9D42, 0x622E, 0x9D43, - 0x622F, 0x8B59, 0x6230, 0x9D44, 0x6232, 0x9D45, 0x6233, 0x9D46, - 0x6234, 0x91D5, 0x6238, 0x8CCB, 0x623B, 0x96DF, 0x623F, 0x965B, - 0x6240, 0x8F8A, 0x6241, 0x9D47, 0x6247, 0x90EE, 0x6248, 0xE7BB, - 0x6249, 0x94E0, 0x624B, 0x8EE8, 0x624D, 0x8DCB, 0x624E, 0x9D48, - 0x6253, 0x91C5, 0x6255, 0x95A5, 0x6258, 0x91EF, 0x625B, 0x9D4B, - 0x625E, 0x9D49, 0x6260, 0x9D4C, 0x6263, 0x9D4A, 0x6268, 0x9D4D, - 0x626E, 0x95AF, 0x6271, 0x88B5, 0x6276, 0x957D, 0x6279, 0x94E1, - 0x627C, 0x9D4E, 0x627E, 0x9D51, 0x627F, 0x8FB3, 0x6280, 0x8B5A, - 0x6282, 0x9D4F, 0x6283, 0x9D56, 0x6284, 0x8FB4, 0x6289, 0x9D50, - 0x628A, 0x9463, 0x6291, 0x977D, 0x6292, 0x9D52, 0x6293, 0x9D53, - 0x6294, 0x9D57, 0x6295, 0x938A, 0x6296, 0x9D54, 0x6297, 0x8D52, - 0x6298, 0x90DC, 0x629B, 0x9D65, 0x629C, 0x94B2, 0x629E, 0x91F0, - 0x62A6, 0xFAC8, 0x62AB, 0x94E2, 0x62AC, 0x9DAB, 0x62B1, 0x95F8, - 0x62B5, 0x92EF, 0x62B9, 0x9695, 0x62BB, 0x9D5A, 0x62BC, 0x899F, - 0x62BD, 0x928A, 0x62C2, 0x9D63, 0x62C5, 0x9253, 0x62C6, 0x9D5D, - 0x62C7, 0x9D64, 0x62C8, 0x9D5F, 0x62C9, 0x9D66, 0x62CA, 0x9D62, - 0x62CC, 0x9D61, 0x62CD, 0x948F, 0x62CF, 0x9D5B, 0x62D0, 0x89FB, - 0x62D1, 0x9D59, 0x62D2, 0x8B91, 0x62D3, 0x91F1, 0x62D4, 0x9D55, - 0x62D7, 0x9D58, 0x62D8, 0x8D53, 0x62D9, 0x90D9, 0x62DB, 0x8FB5, - 0x62DC, 0x9D60, 0x62DD, 0x9471, 0x62E0, 0x8B92, 0x62E1, 0x8A67, - 0x62EC, 0x8A87, 0x62ED, 0x9040, 0x62EE, 0x9D68, 0x62EF, 0x9D6D, - 0x62F1, 0x9D69, 0x62F3, 0x8C9D, 0x62F5, 0x9D6E, 0x62F6, 0x8E41, - 0x62F7, 0x8D89, 0x62FE, 0x8F45, 0x62FF, 0x9D5C, 0x6301, 0x8E9D, - 0x6302, 0x9D6B, 0x6307, 0x8E77, 0x6308, 0x9D6C, 0x6309, 0x88C2, - 0x630C, 0x9D67, 0x6311, 0x92A7, 0x6319, 0x8B93, 0x631F, 0x8BB2, - 0x6327, 0x9D6A, 0x6328, 0x88A5, 0x632B, 0x8DC1, 0x632F, 0x9055, - 0x633A, 0x92F0, 0x633D, 0x94D2, 0x633E, 0x9D70, 0x633F, 0x917D, - 0x6349, 0x91A8, 0x634C, 0x8E4A, 0x634D, 0x9D71, 0x634F, 0x9D73, - 0x6350, 0x9D6F, 0x6355, 0x95DF, 0x6357, 0x92BB, 0x635C, 0x917B, - 0x6367, 0x95F9, 0x6368, 0x8ECC, 0x6369, 0x9D80, 0x636B, 0x9D7E, - 0x636E, 0x9098, 0x6372, 0x8C9E, 0x6376, 0x9D78, 0x6377, 0x8FB7, - 0x637A, 0x93E6, 0x637B, 0x9450, 0x6380, 0x9D76, 0x6383, 0x917C, - 0x6388, 0x8EF6, 0x6389, 0x9D7B, 0x638C, 0x8FB6, 0x638E, 0x9D75, - 0x638F, 0x9D7A, 0x6392, 0x9472, 0x6396, 0x9D74, 0x6398, 0x8C40, - 0x639B, 0x8A7C, 0x639F, 0x9D7C, 0x63A0, 0x97A9, 0x63A1, 0x8DCC, - 0x63A2, 0x9254, 0x63A3, 0x9D79, 0x63A5, 0x90DA, 0x63A7, 0x8D54, - 0x63A8, 0x9084, 0x63A9, 0x8986, 0x63AA, 0x915B, 0x63AB, 0x9D77, - 0x63AC, 0x8B64, 0x63B2, 0x8C66, 0x63B4, 0x92CD, 0x63B5, 0x9D7D, - 0x63BB, 0x917E, 0x63BE, 0x9D81, 0x63C0, 0x9D83, 0x63C3, 0x91B5, - 0x63C4, 0x9D89, 0x63C6, 0x9D84, 0x63C9, 0x9D86, 0x63CF, 0x9560, - 0x63D0, 0x92F1, 0x63D2, 0x9D87, 0x63D6, 0x974B, 0x63DA, 0x9767, - 0x63DB, 0x8AB7, 0x63E1, 0x88AC, 0x63E3, 0x9D85, 0x63E9, 0x9D82, - 0x63EE, 0x8AF6, 0x63F4, 0x8987, 0x63F5, 0xFAC9, 0x63F6, 0x9D88, - 0x63FA, 0x9768, 0x6406, 0x9D8C, 0x640D, 0x91B9, 0x640F, 0x9D93, - 0x6413, 0x9D8D, 0x6416, 0x9D8A, 0x6417, 0x9D91, 0x641C, 0x9D72, - 0x6426, 0x9D8E, 0x6428, 0x9D92, 0x642C, 0x94C0, 0x642D, 0x938B, - 0x6434, 0x9D8B, 0x6436, 0x9D8F, 0x643A, 0x8C67, 0x643E, 0x8DEF, - 0x6442, 0x90DB, 0x644E, 0x9D97, 0x6458, 0x9345, 0x6460, 0xFACA, - 0x6467, 0x9D94, 0x6469, 0x9680, 0x646F, 0x9D95, 0x6476, 0x9D96, - 0x6478, 0x96CC, 0x647A, 0x90A0, 0x6483, 0x8C82, 0x6488, 0x9D9D, - 0x6492, 0x8E54, 0x6493, 0x9D9A, 0x6495, 0x9D99, 0x649A, 0x9451, - 0x649D, 0xFACB, 0x649E, 0x93B3, 0x64A4, 0x9350, 0x64A5, 0x9D9B, - 0x64A9, 0x9D9C, 0x64AB, 0x958F, 0x64AD, 0x9464, 0x64AE, 0x8E42, - 0x64B0, 0x90EF, 0x64B2, 0x966F, 0x64B9, 0x8A68, 0x64BB, 0x9DA3, - 0x64BC, 0x9D9E, 0x64C1, 0x9769, 0x64C2, 0x9DA5, 0x64C5, 0x9DA1, - 0x64C7, 0x9DA2, 0x64CD, 0x9180, 0x64CE, 0xFACC, 0x64D2, 0x9DA0, - 0x64D4, 0x9D5E, 0x64D8, 0x9DA4, 0x64DA, 0x9D9F, 0x64E0, 0x9DA9, - 0x64E1, 0x9DAA, 0x64E2, 0x9346, 0x64E3, 0x9DAC, 0x64E6, 0x8E43, - 0x64E7, 0x9DA7, 0x64EC, 0x8B5B, 0x64EF, 0x9DAD, 0x64F1, 0x9DA6, - 0x64F2, 0x9DB1, 0x64F4, 0x9DB0, 0x64F6, 0x9DAF, 0x64FA, 0x9DB2, - 0x64FD, 0x9DB4, 0x64FE, 0x8FEF, 0x6500, 0x9DB3, 0x6505, 0x9DB7, - 0x6518, 0x9DB5, 0x651C, 0x9DB6, 0x651D, 0x9D90, 0x6523, 0x9DB9, - 0x6524, 0x9DB8, 0x652A, 0x9D98, 0x652B, 0x9DBA, 0x652C, 0x9DAE, - 0x652F, 0x8E78, 0x6534, 0x9DBB, 0x6535, 0x9DBC, 0x6536, 0x9DBE, - 0x6537, 0x9DBD, 0x6538, 0x9DBF, 0x6539, 0x89FC, 0x653B, 0x8D55, - 0x653E, 0x95FA, 0x653F, 0x90AD, 0x6545, 0x8CCC, 0x6548, 0x9DC1, - 0x654D, 0x9DC4, 0x654E, 0xFACD, 0x654F, 0x9571, 0x6551, 0x8B7E, - 0x6555, 0x9DC3, 0x6556, 0x9DC2, 0x6557, 0x9473, 0x6558, 0x9DC5, - 0x6559, 0x8BB3, 0x655D, 0x9DC7, 0x655E, 0x9DC6, 0x6562, 0x8AB8, - 0x6563, 0x8E55, 0x6566, 0x93D6, 0x656C, 0x8C68, 0x6570, 0x9094, - 0x6572, 0x9DC8, 0x6574, 0x90AE, 0x6575, 0x9347, 0x6577, 0x957E, - 0x6578, 0x9DC9, 0x6582, 0x9DCA, 0x6583, 0x9DCB, 0x6587, 0x95B6, - 0x6588, 0x9B7C, 0x6589, 0x90C4, 0x658C, 0x956B, 0x658E, 0x8DD6, - 0x6590, 0x94E3, 0x6591, 0x94C1, 0x6597, 0x936C, 0x6599, 0x97BF, - 0x659B, 0x9DCD, 0x659C, 0x8ECE, 0x659F, 0x9DCE, 0x65A1, 0x88B4, - 0x65A4, 0x8BD2, 0x65A5, 0x90CB, 0x65A7, 0x9580, 0x65AB, 0x9DCF, - 0x65AC, 0x8E61, 0x65AD, 0x9266, 0x65AF, 0x8E7A, 0x65B0, 0x9056, - 0x65B7, 0x9DD0, 0x65B9, 0x95FB, 0x65BC, 0x8997, 0x65BD, 0x8E7B, - 0x65C1, 0x9DD3, 0x65C3, 0x9DD1, 0x65C4, 0x9DD4, 0x65C5, 0x97B7, - 0x65C6, 0x9DD2, 0x65CB, 0x90F9, 0x65CC, 0x9DD5, 0x65CF, 0x91B0, - 0x65D2, 0x9DD6, 0x65D7, 0x8AF8, 0x65D9, 0x9DD8, 0x65DB, 0x9DD7, - 0x65E0, 0x9DD9, 0x65E1, 0x9DDA, 0x65E2, 0x8AF9, 0x65E5, 0x93FA, - 0x65E6, 0x9255, 0x65E7, 0x8B8C, 0x65E8, 0x8E7C, 0x65E9, 0x9181, - 0x65EC, 0x8F7B, 0x65ED, 0x88AE, 0x65F1, 0x9DDB, 0x65FA, 0x89A0, - 0x65FB, 0x9DDF, 0x6600, 0xFACE, 0x6602, 0x8D56, 0x6603, 0x9DDE, - 0x6606, 0x8DA9, 0x6607, 0x8FB8, 0x6609, 0xFAD1, 0x660A, 0x9DDD, - 0x660C, 0x8FB9, 0x660E, 0x96BE, 0x660F, 0x8DA8, 0x6613, 0x88D5, - 0x6614, 0x90CC, 0x6615, 0xFACF, 0x661C, 0x9DE4, 0x661E, 0xFAD3, - 0x661F, 0x90AF, 0x6620, 0x8966, 0x6624, 0xFAD4, 0x6625, 0x8F74, - 0x6627, 0x9686, 0x6628, 0x8DF0, 0x662D, 0x8FBA, 0x662E, 0xFAD2, - 0x662F, 0x90A5, 0x6631, 0xFA63, 0x6634, 0x9DE3, 0x6635, 0x9DE1, - 0x6636, 0x9DE2, 0x663B, 0xFAD0, 0x663C, 0x928B, 0x663F, 0x9E45, - 0x6641, 0x9DE8, 0x6642, 0x8E9E, 0x6643, 0x8D57, 0x6644, 0x9DE6, - 0x6649, 0x9DE7, 0x664B, 0x9057, 0x664F, 0x9DE5, 0x6652, 0x8E4E, - 0x6657, 0xFAD6, 0x6659, 0xFAD7, 0x665D, 0x9DEA, 0x665E, 0x9DE9, - 0x665F, 0x9DEE, 0x6662, 0x9DEF, 0x6664, 0x9DEB, 0x6665, 0xFAD5, - 0x6666, 0x8A41, 0x6667, 0x9DEC, 0x6668, 0x9DED, 0x6669, 0x94D3, - 0x666E, 0x9581, 0x666F, 0x8C69, 0x6670, 0x9DF0, 0x6673, 0xFAD9, - 0x6674, 0x90B0, 0x6676, 0x8FBB, 0x667A, 0x9271, 0x6681, 0x8BC5, - 0x6683, 0x9DF1, 0x6684, 0x9DF5, 0x6687, 0x89C9, 0x6688, 0x9DF2, - 0x6689, 0x9DF4, 0x668E, 0x9DF3, 0x6691, 0x8F8B, 0x6696, 0x9267, - 0x6697, 0x88C3, 0x6698, 0x9DF6, 0x6699, 0xFADA, 0x669D, 0x9DF7, - 0x66A0, 0xFADB, 0x66A2, 0x92A8, 0x66A6, 0x97EF, 0x66AB, 0x8E62, - 0x66AE, 0x95E9, 0x66B2, 0xFADC, 0x66B4, 0x965C, 0x66B8, 0x9E41, - 0x66B9, 0x9DF9, 0x66BC, 0x9DFC, 0x66BE, 0x9DFB, 0x66BF, 0xFADD, - 0x66C1, 0x9DF8, 0x66C4, 0x9E40, 0x66C7, 0x93DC, 0x66C9, 0x9DFA, - 0x66D6, 0x9E42, 0x66D9, 0x8F8C, 0x66DA, 0x9E43, 0x66DC, 0x976A, - 0x66DD, 0x9498, 0x66E0, 0x9E44, 0x66E6, 0x9E46, 0x66E9, 0x9E47, - 0x66F0, 0x9E48, 0x66F2, 0x8BC8, 0x66F3, 0x8967, 0x66F4, 0x8D58, - 0x66F5, 0x9E49, 0x66F7, 0x9E4A, 0x66F8, 0x8F91, 0x66F9, 0x9182, - 0x66FA, 0xFADE, 0x66FB, 0xFA66, 0x66FC, 0x99D6, 0x66FD, 0x915D, - 0x66FE, 0x915C, 0x66FF, 0x91D6, 0x6700, 0x8DC5, 0x6703, 0x98F0, - 0x6708, 0x8C8E, 0x6709, 0x974C, 0x670B, 0x95FC, 0x670D, 0x959E, - 0x670E, 0xFADF, 0x670F, 0x9E4B, 0x6714, 0x8DF1, 0x6715, 0x92BD, - 0x6716, 0x9E4C, 0x6717, 0x984E, 0x671B, 0x965D, 0x671D, 0x92A9, - 0x671E, 0x9E4D, 0x671F, 0x8AFA, 0x6726, 0x9E4E, 0x6727, 0x9E4F, - 0x6728, 0x96D8, 0x672A, 0x96A2, 0x672B, 0x9696, 0x672C, 0x967B, - 0x672D, 0x8E44, 0x672E, 0x9E51, 0x6731, 0x8EE9, 0x6734, 0x9670, - 0x6736, 0x9E53, 0x6737, 0x9E56, 0x6738, 0x9E55, 0x673A, 0x8AF7, - 0x673D, 0x8B80, 0x673F, 0x9E52, 0x6741, 0x9E54, 0x6746, 0x9E57, - 0x6749, 0x9099, 0x674E, 0x979B, 0x674F, 0x88C7, 0x6750, 0x8DDE, - 0x6751, 0x91BA, 0x6753, 0x8EDB, 0x6756, 0x8FF1, 0x6759, 0x9E5A, - 0x675C, 0x936D, 0x675E, 0x9E58, 0x675F, 0x91A9, 0x6760, 0x9E59, - 0x6761, 0x8FF0, 0x6762, 0x96DB, 0x6763, 0x9E5B, 0x6764, 0x9E5C, - 0x6765, 0x9788, 0x6766, 0xFAE1, 0x676A, 0x9E61, 0x676D, 0x8D59, - 0x676F, 0x9474, 0x6770, 0x9E5E, 0x6771, 0x938C, 0x6772, 0x9DDC, - 0x6773, 0x9DE0, 0x6775, 0x8B6E, 0x6777, 0x9466, 0x677C, 0x9E60, - 0x677E, 0x8FBC, 0x677F, 0x94C2, 0x6785, 0x9E66, 0x6787, 0x94F8, - 0x6789, 0x9E5D, 0x678B, 0x9E63, 0x678C, 0x9E62, 0x6790, 0x90CD, - 0x6795, 0x968D, 0x6797, 0x97D1, 0x679A, 0x9687, 0x679C, 0x89CA, - 0x679D, 0x8E7D, 0x67A0, 0x9867, 0x67A1, 0x9E65, 0x67A2, 0x9095, - 0x67A6, 0x9E64, 0x67A9, 0x9E5F, 0x67AF, 0x8CCD, 0x67B3, 0x9E6B, - 0x67B4, 0x9E69, 0x67B6, 0x89CB, 0x67B7, 0x9E67, 0x67B8, 0x9E6D, - 0x67B9, 0x9E73, 0x67BB, 0xFAE2, 0x67C0, 0xFAE4, 0x67C1, 0x91C6, - 0x67C4, 0x95BF, 0x67C6, 0x9E75, 0x67CA, 0x9541, 0x67CE, 0x9E74, - 0x67CF, 0x9490, 0x67D0, 0x965E, 0x67D1, 0x8AB9, 0x67D3, 0x90F5, - 0x67D4, 0x8F5F, 0x67D8, 0x92D1, 0x67DA, 0x974D, 0x67DD, 0x9E70, - 0x67DE, 0x9E6F, 0x67E2, 0x9E71, 0x67E4, 0x9E6E, 0x67E7, 0x9E76, - 0x67E9, 0x9E6C, 0x67EC, 0x9E6A, 0x67EE, 0x9E72, 0x67EF, 0x9E68, - 0x67F1, 0x928C, 0x67F3, 0x96F6, 0x67F4, 0x8EC4, 0x67F5, 0x8DF2, - 0x67FB, 0x8DB8, 0x67FE, 0x968F, 0x67FF, 0x8A60, 0x6801, 0xFAE5, - 0x6802, 0x92CC, 0x6803, 0x93C8, 0x6804, 0x8968, 0x6813, 0x90F0, - 0x6816, 0x90B2, 0x6817, 0x8C49, 0x681E, 0x9E78, 0x6821, 0x8D5A, - 0x6822, 0x8A9C, 0x6829, 0x9E7A, 0x682A, 0x8A94, 0x682B, 0x9E81, - 0x6832, 0x9E7D, 0x6834, 0x90F1, 0x6838, 0x8A6A, 0x6839, 0x8DAA, - 0x683C, 0x8A69, 0x683D, 0x8DCD, 0x6840, 0x9E7B, 0x6841, 0x8C85, - 0x6842, 0x8C6A, 0x6843, 0x938D, 0x6844, 0xFAE6, 0x6846, 0x9E79, - 0x6848, 0x88C4, 0x684D, 0x9E7C, 0x684E, 0x9E7E, 0x6850, 0x8BCB, - 0x6851, 0x8C4B, 0x6852, 0xFAE3, 0x6853, 0x8ABA, 0x6854, 0x8B6A, - 0x6859, 0x9E82, 0x685C, 0x8DF7, 0x685D, 0x9691, 0x685F, 0x8E56, - 0x6863, 0x9E83, 0x6867, 0x954F, 0x6874, 0x9E8F, 0x6876, 0x89B1, - 0x6877, 0x9E84, 0x687E, 0x9E95, 0x687F, 0x9E85, 0x6881, 0x97C0, - 0x6883, 0x9E8C, 0x6885, 0x947E, 0x688D, 0x9E94, 0x688F, 0x9E87, - 0x6893, 0x88B2, 0x6894, 0x9E89, 0x6897, 0x8D5B, 0x689B, 0x9E8B, - 0x689D, 0x9E8A, 0x689F, 0x9E86, 0x68A0, 0x9E91, 0x68A2, 0x8FBD, - 0x68A6, 0x9AEB, 0x68A7, 0x8CE6, 0x68A8, 0x979C, 0x68AD, 0x9E88, - 0x68AF, 0x92F2, 0x68B0, 0x8A42, 0x68B1, 0x8DAB, 0x68B3, 0x9E80, - 0x68B5, 0x9E90, 0x68B6, 0x8A81, 0x68B9, 0x9E8E, 0x68BA, 0x9E92, - 0x68BC, 0x938E, 0x68C4, 0x8AFC, 0x68C6, 0x9EB0, 0x68C8, 0xFA64, - 0x68C9, 0x96C7, 0x68CA, 0x9E97, 0x68CB, 0x8AFB, 0x68CD, 0x9E9E, - 0x68CF, 0xFAE7, 0x68D2, 0x965F, 0x68D4, 0x9E9F, 0x68D5, 0x9EA1, - 0x68D7, 0x9EA5, 0x68D8, 0x9E99, 0x68DA, 0x9249, 0x68DF, 0x938F, - 0x68E0, 0x9EA9, 0x68E1, 0x9E9C, 0x68E3, 0x9EA6, 0x68E7, 0x9EA0, - 0x68EE, 0x9058, 0x68EF, 0x9EAA, 0x68F2, 0x90B1, 0x68F9, 0x9EA8, - 0x68FA, 0x8ABB, 0x6900, 0x986F, 0x6901, 0x9E96, 0x6904, 0x9EA4, - 0x6905, 0x88D6, 0x6908, 0x9E98, 0x690B, 0x96B8, 0x690C, 0x9E9D, - 0x690D, 0x9041, 0x690E, 0x92C5, 0x690F, 0x9E93, 0x6912, 0x9EA3, - 0x6919, 0x909A, 0x691A, 0x9EAD, 0x691B, 0x8A91, 0x691C, 0x8C9F, - 0x6921, 0x9EAF, 0x6922, 0x9E9A, 0x6923, 0x9EAE, 0x6925, 0x9EA7, - 0x6926, 0x9E9B, 0x6928, 0x9EAB, 0x692A, 0x9EAC, 0x6930, 0x9EBD, - 0x6934, 0x93CC, 0x6936, 0x9EA2, 0x6939, 0x9EB9, 0x693D, 0x9EBB, - 0x693F, 0x92D6, 0x694A, 0x976B, 0x6953, 0x9596, 0x6954, 0x9EB6, - 0x6955, 0x91C8, 0x6959, 0x9EBC, 0x695A, 0x915E, 0x695C, 0x9EB3, - 0x695D, 0x9EC0, 0x695E, 0x9EBF, 0x6960, 0x93ED, 0x6961, 0x9EBE, - 0x6962, 0x93E8, 0x6968, 0xFAE9, 0x696A, 0x9EC2, 0x696B, 0x9EB5, - 0x696D, 0x8BC6, 0x696E, 0x9EB8, 0x696F, 0x8F7C, 0x6973, 0x9480, - 0x6974, 0x9EBA, 0x6975, 0x8BC9, 0x6977, 0x9EB2, 0x6978, 0x9EB4, - 0x6979, 0x9EB1, 0x697C, 0x984F, 0x697D, 0x8A79, 0x697E, 0x9EB7, - 0x6981, 0x9EC1, 0x6982, 0x8A54, 0x698A, 0x8DE5, 0x698E, 0x897C, - 0x6991, 0x9ED2, 0x6994, 0x9850, 0x6995, 0x9ED5, 0x6998, 0xFAEB, - 0x699B, 0x9059, 0x699C, 0x9ED4, 0x69A0, 0x9ED3, 0x69A7, 0x9ED0, - 0x69AE, 0x9EC4, 0x69B1, 0x9EE1, 0x69B2, 0x9EC3, 0x69B4, 0x9ED6, - 0x69BB, 0x9ECE, 0x69BE, 0x9EC9, 0x69BF, 0x9EC6, 0x69C1, 0x9EC7, - 0x69C3, 0x9ECF, 0x69C7, 0xEAA0, 0x69CA, 0x9ECC, 0x69CB, 0x8D5C, - 0x69CC, 0x92C6, 0x69CD, 0x9184, 0x69CE, 0x9ECA, 0x69D0, 0x9EC5, - 0x69D3, 0x9EC8, 0x69D8, 0x976C, 0x69D9, 0x968A, 0x69DD, 0x9ECD, - 0x69DE, 0x9ED7, 0x69E2, 0xFAEC, 0x69E7, 0x9EDF, 0x69E8, 0x9ED8, - 0x69EB, 0x9EE5, 0x69ED, 0x9EE3, 0x69F2, 0x9EDE, 0x69F9, 0x9EDD, - 0x69FB, 0x92CE, 0x69FD, 0x9185, 0x69FF, 0x9EDB, 0x6A02, 0x9ED9, - 0x6A05, 0x9EE0, 0x6A0A, 0x9EE6, 0x6A0B, 0x94F3, 0x6A0C, 0x9EEC, - 0x6A12, 0x9EE7, 0x6A13, 0x9EEA, 0x6A14, 0x9EE4, 0x6A17, 0x9294, - 0x6A19, 0x9557, 0x6A1B, 0x9EDA, 0x6A1E, 0x9EE2, 0x6A1F, 0x8FBE, - 0x6A21, 0x96CD, 0x6A22, 0x9EF6, 0x6A23, 0x9EE9, 0x6A29, 0x8CA0, - 0x6A2A, 0x89A1, 0x6A2B, 0x8A7E, 0x6A2E, 0x9ED1, 0x6A30, 0xFAED, - 0x6A35, 0x8FBF, 0x6A36, 0x9EEE, 0x6A38, 0x9EF5, 0x6A39, 0x8EF7, - 0x6A3A, 0x8A92, 0x6A3D, 0x924D, 0x6A44, 0x9EEB, 0x6A46, 0xFAEF, - 0x6A47, 0x9EF0, 0x6A48, 0x9EF4, 0x6A4B, 0x8BB4, 0x6A58, 0x8B6B, - 0x6A59, 0x9EF2, 0x6A5F, 0x8B40, 0x6A61, 0x93C9, 0x6A62, 0x9EF1, - 0x6A66, 0x9EF3, 0x6A6B, 0xFAEE, 0x6A72, 0x9EED, 0x6A73, 0xFAF0, - 0x6A78, 0x9EEF, 0x6A7E, 0xFAF1, 0x6A7F, 0x8A80, 0x6A80, 0x9268, - 0x6A84, 0x9EFA, 0x6A8D, 0x9EF8, 0x6A8E, 0x8CE7, 0x6A90, 0x9EF7, - 0x6A97, 0x9F40, 0x6A9C, 0x9E77, 0x6AA0, 0x9EF9, 0x6AA2, 0x9EFB, - 0x6AA3, 0x9EFC, 0x6AAA, 0x9F4B, 0x6AAC, 0x9F47, 0x6AAE, 0x9E8D, - 0x6AB3, 0x9F46, 0x6AB8, 0x9F45, 0x6ABB, 0x9F42, 0x6AC1, 0x9EE8, - 0x6AC2, 0x9F44, 0x6AC3, 0x9F43, 0x6AD1, 0x9F49, 0x6AD3, 0x9845, - 0x6ADA, 0x9F4C, 0x6ADB, 0x8BF9, 0x6ADE, 0x9F48, 0x6ADF, 0x9F4A, - 0x6AE2, 0xFAF2, 0x6AE4, 0xFAF3, 0x6AE8, 0x94A5, 0x6AEA, 0x9F4D, - 0x6AFA, 0x9F51, 0x6AFB, 0x9F4E, 0x6B04, 0x9793, 0x6B05, 0x9F4F, - 0x6B0A, 0x9EDC, 0x6B12, 0x9F52, 0x6B16, 0x9F53, 0x6B1D, 0x8954, - 0x6B1F, 0x9F55, 0x6B20, 0x8C87, 0x6B21, 0x8E9F, 0x6B23, 0x8BD3, - 0x6B27, 0x89A2, 0x6B32, 0x977E, 0x6B37, 0x9F57, 0x6B38, 0x9F56, - 0x6B39, 0x9F59, 0x6B3A, 0x8B5C, 0x6B3D, 0x8BD4, 0x6B3E, 0x8ABC, - 0x6B43, 0x9F5C, 0x6B47, 0x9F5B, 0x6B49, 0x9F5D, 0x6B4C, 0x89CC, - 0x6B4E, 0x9256, 0x6B50, 0x9F5E, 0x6B53, 0x8ABD, 0x6B54, 0x9F60, - 0x6B59, 0x9F5F, 0x6B5B, 0x9F61, 0x6B5F, 0x9F62, 0x6B61, 0x9F63, - 0x6B62, 0x8E7E, 0x6B63, 0x90B3, 0x6B64, 0x8D9F, 0x6B66, 0x9590, - 0x6B69, 0x95E0, 0x6B6A, 0x9863, 0x6B6F, 0x8E95, 0x6B73, 0x8DCE, - 0x6B74, 0x97F0, 0x6B78, 0x9F64, 0x6B79, 0x9F65, 0x6B7B, 0x8E80, - 0x6B7F, 0x9F66, 0x6B80, 0x9F67, 0x6B83, 0x9F69, 0x6B84, 0x9F68, - 0x6B86, 0x9677, 0x6B89, 0x8F7D, 0x6B8A, 0x8EEA, 0x6B8B, 0x8E63, - 0x6B8D, 0x9F6A, 0x6B95, 0x9F6C, 0x6B96, 0x9042, 0x6B98, 0x9F6B, - 0x6B9E, 0x9F6D, 0x6BA4, 0x9F6E, 0x6BAA, 0x9F6F, 0x6BAB, 0x9F70, - 0x6BAF, 0x9F71, 0x6BB1, 0x9F73, 0x6BB2, 0x9F72, 0x6BB3, 0x9F74, - 0x6BB4, 0x89A3, 0x6BB5, 0x9269, 0x6BB7, 0x9F75, 0x6BBA, 0x8E45, - 0x6BBB, 0x8A6B, 0x6BBC, 0x9F76, 0x6BBF, 0x9361, 0x6BC0, 0x9ACA, - 0x6BC5, 0x8B42, 0x6BC6, 0x9F77, 0x6BCB, 0x9F78, 0x6BCD, 0x95EA, - 0x6BCE, 0x9688, 0x6BD2, 0x93C5, 0x6BD3, 0x9F79, 0x6BD4, 0x94E4, - 0x6BD6, 0xFAF4, 0x6BD8, 0x94F9, 0x6BDB, 0x96D1, 0x6BDF, 0x9F7A, - 0x6BEB, 0x9F7C, 0x6BEC, 0x9F7B, 0x6BEF, 0x9F7E, 0x6BF3, 0x9F7D, - 0x6C08, 0x9F81, 0x6C0F, 0x8E81, 0x6C11, 0x96AF, 0x6C13, 0x9F82, - 0x6C14, 0x9F83, 0x6C17, 0x8B43, 0x6C1B, 0x9F84, 0x6C23, 0x9F86, - 0x6C24, 0x9F85, 0x6C34, 0x9085, 0x6C37, 0x9558, 0x6C38, 0x8969, - 0x6C3E, 0x94C3, 0x6C3F, 0xFAF5, 0x6C40, 0x92F3, 0x6C41, 0x8F60, - 0x6C42, 0x8B81, 0x6C4E, 0x94C4, 0x6C50, 0x8EAC, 0x6C55, 0x9F88, - 0x6C57, 0x8ABE, 0x6C5A, 0x8998, 0x6C5C, 0xFAF6, 0x6C5D, 0x93F0, - 0x6C5E, 0x9F87, 0x6C5F, 0x8D5D, 0x6C60, 0x9272, 0x6C62, 0x9F89, - 0x6C68, 0x9F91, 0x6C6A, 0x9F8A, 0x6C6F, 0xFAF8, 0x6C70, 0x91BF, - 0x6C72, 0x8B82, 0x6C73, 0x9F92, 0x6C7A, 0x8C88, 0x6C7D, 0x8B44, - 0x6C7E, 0x9F90, 0x6C81, 0x9F8E, 0x6C82, 0x9F8B, 0x6C83, 0x9780, - 0x6C86, 0xFAF7, 0x6C88, 0x92BE, 0x6C8C, 0x93D7, 0x6C8D, 0x9F8C, - 0x6C90, 0x9F94, 0x6C92, 0x9F93, 0x6C93, 0x8C42, 0x6C96, 0x89AB, - 0x6C99, 0x8DB9, 0x6C9A, 0x9F8D, 0x6C9B, 0x9F8F, 0x6CA1, 0x9676, - 0x6CA2, 0x91F2, 0x6CAB, 0x9697, 0x6CAE, 0x9F9C, 0x6CB1, 0x9F9D, - 0x6CB3, 0x89CD, 0x6CB8, 0x95A6, 0x6CB9, 0x96FB, 0x6CBA, 0x9F9F, - 0x6CBB, 0x8EA1, 0x6CBC, 0x8FC0, 0x6CBD, 0x9F98, 0x6CBE, 0x9F9E, - 0x6CBF, 0x8988, 0x6CC1, 0x8BB5, 0x6CC4, 0x9F95, 0x6CC5, 0x9F9A, - 0x6CC9, 0x90F2, 0x6CCA, 0x9491, 0x6CCC, 0x94E5, 0x6CD3, 0x9F97, - 0x6CD5, 0x9640, 0x6CD7, 0x9F99, 0x6CD9, 0x9FA2, 0x6CDA, 0xFAF9, - 0x6CDB, 0x9FA0, 0x6CDD, 0x9F9B, 0x6CE1, 0x9641, 0x6CE2, 0x9467, - 0x6CE3, 0x8B83, 0x6CE5, 0x9344, 0x6CE8, 0x928D, 0x6CEA, 0x9FA3, - 0x6CEF, 0x9FA1, 0x6CF0, 0x91D7, 0x6CF1, 0x9F96, 0x6CF3, 0x896A, - 0x6D04, 0xFAFA, 0x6D0B, 0x976D, 0x6D0C, 0x9FAE, 0x6D12, 0x9FAD, - 0x6D17, 0x90F4, 0x6D19, 0x9FAA, 0x6D1B, 0x978C, 0x6D1E, 0x93B4, - 0x6D1F, 0x9FA4, 0x6D25, 0x92C3, 0x6D29, 0x896B, 0x6D2A, 0x8D5E, - 0x6D2B, 0x9FA7, 0x6D32, 0x8F46, 0x6D33, 0x9FAC, 0x6D35, 0x9FAB, - 0x6D36, 0x9FA6, 0x6D38, 0x9FA9, 0x6D3B, 0x8A88, 0x6D3D, 0x9FA8, - 0x6D3E, 0x9468, 0x6D41, 0x97AC, 0x6D44, 0x8FF2, 0x6D45, 0x90F3, - 0x6D59, 0x9FB4, 0x6D5A, 0x9FB2, 0x6D5C, 0x956C, 0x6D63, 0x9FAF, - 0x6D64, 0x9FB1, 0x6D66, 0x8959, 0x6D69, 0x8D5F, 0x6D6A, 0x9851, - 0x6D6C, 0x8A5C, 0x6D6E, 0x9582, 0x6D6F, 0xFAFC, 0x6D74, 0x9781, - 0x6D77, 0x8A43, 0x6D78, 0x905A, 0x6D79, 0x9FB3, 0x6D85, 0x9FB8, - 0x6D87, 0xFAFB, 0x6D88, 0x8FC1, 0x6D8C, 0x974F, 0x6D8E, 0x9FB5, - 0x6D93, 0x9FB0, 0x6D95, 0x9FB6, 0x6D96, 0xFB40, 0x6D99, 0x97DC, - 0x6D9B, 0x9393, 0x6D9C, 0x93C0, 0x6DAC, 0xFB41, 0x6DAF, 0x8A55, - 0x6DB2, 0x8974, 0x6DB5, 0x9FBC, 0x6DB8, 0x9FBF, 0x6DBC, 0x97C1, - 0x6DC0, 0x9784, 0x6DC5, 0x9FC6, 0x6DC6, 0x9FC0, 0x6DC7, 0x9FBD, - 0x6DCB, 0x97D2, 0x6DCC, 0x9FC3, 0x6DCF, 0xFB42, 0x6DD1, 0x8F69, - 0x6DD2, 0x9FC5, 0x6DD5, 0x9FCA, 0x6DD8, 0x9391, 0x6DD9, 0x9FC8, - 0x6DDE, 0x9FC2, 0x6DE1, 0x9257, 0x6DE4, 0x9FC9, 0x6DE6, 0x9FBE, - 0x6DE8, 0x9FC4, 0x6DEA, 0x9FCB, 0x6DEB, 0x88FA, 0x6DEC, 0x9FC1, - 0x6DEE, 0x9FCC, 0x6DF1, 0x905B, 0x6DF2, 0xFB44, 0x6DF3, 0x8F7E, - 0x6DF5, 0x95A3, 0x6DF7, 0x8DAC, 0x6DF8, 0xFB43, 0x6DF9, 0x9FB9, - 0x6DFA, 0x9FC7, 0x6DFB, 0x9359, 0x6DFC, 0xFB45, 0x6E05, 0x90B4, - 0x6E07, 0x8A89, 0x6E08, 0x8DCF, 0x6E09, 0x8FC2, 0x6E0A, 0x9FBB, - 0x6E0B, 0x8F61, 0x6E13, 0x8C6B, 0x6E15, 0x9FBA, 0x6E19, 0x9FD0, - 0x6E1A, 0x8F8D, 0x6E1B, 0x8CB8, 0x6E1D, 0x9FDF, 0x6E1F, 0x9FD9, - 0x6E20, 0x8B94, 0x6E21, 0x936E, 0x6E23, 0x9FD4, 0x6E24, 0x9FDD, - 0x6E25, 0x88AD, 0x6E26, 0x8951, 0x6E27, 0xFB48, 0x6E29, 0x89B7, - 0x6E2B, 0x9FD6, 0x6E2C, 0x91AA, 0x6E2D, 0x9FCD, 0x6E2E, 0x9FCF, - 0x6E2F, 0x8D60, 0x6E38, 0x9FE0, 0x6E39, 0xFB46, 0x6E3A, 0x9FDB, - 0x6E3C, 0xFB49, 0x6E3E, 0x9FD3, 0x6E43, 0x9FDA, 0x6E4A, 0x96A9, - 0x6E4D, 0x9FD8, 0x6E4E, 0x9FDC, 0x6E56, 0x8CCE, 0x6E58, 0x8FC3, - 0x6E5B, 0x9258, 0x6E5C, 0xFB47, 0x6E5F, 0x9FD2, 0x6E67, 0x974E, - 0x6E6B, 0x9FD5, 0x6E6E, 0x9FCE, 0x6E6F, 0x9392, 0x6E72, 0x9FD1, - 0x6E76, 0x9FD7, 0x6E7E, 0x9870, 0x6E7F, 0x8EBC, 0x6E80, 0x969E, - 0x6E82, 0x9FE1, 0x6E8C, 0x94AC, 0x6E8F, 0x9FED, 0x6E90, 0x8CB9, - 0x6E96, 0x8F80, 0x6E98, 0x9FE3, 0x6E9C, 0x97AD, 0x6E9D, 0x8D61, - 0x6E9F, 0x9FF0, 0x6EA2, 0x88EC, 0x6EA5, 0x9FEE, 0x6EAA, 0x9FE2, - 0x6EAF, 0x9FE8, 0x6EB2, 0x9FEA, 0x6EB6, 0x976E, 0x6EB7, 0x9FE5, - 0x6EBA, 0x934D, 0x6EBD, 0x9FE7, 0x6EBF, 0xFB4A, 0x6EC2, 0x9FEF, - 0x6EC4, 0x9FE9, 0x6EC5, 0x96C5, 0x6EC9, 0x9FE4, 0x6ECB, 0x8EA0, - 0x6ECC, 0x9FFC, 0x6ED1, 0x8A8A, 0x6ED3, 0x9FE6, 0x6ED4, 0x9FEB, - 0x6ED5, 0x9FEC, 0x6EDD, 0x91EA, 0x6EDE, 0x91D8, 0x6EEC, 0x9FF4, - 0x6EEF, 0x9FFA, 0x6EF2, 0x9FF8, 0x6EF4, 0x9348, 0x6EF7, 0xE042, - 0x6EF8, 0x9FF5, 0x6EFE, 0x9FF6, 0x6EFF, 0x9FDE, 0x6F01, 0x8B99, - 0x6F02, 0x9559, 0x6F06, 0x8EBD, 0x6F09, 0x8D97, 0x6F0F, 0x9852, - 0x6F11, 0x9FF2, 0x6F13, 0xE041, 0x6F14, 0x8989, 0x6F15, 0x9186, - 0x6F20, 0x9499, 0x6F22, 0x8ABF, 0x6F23, 0x97F8, 0x6F2B, 0x969F, - 0x6F2C, 0x92D0, 0x6F31, 0x9FF9, 0x6F32, 0x9FFB, 0x6F38, 0x9151, - 0x6F3E, 0xE040, 0x6F3F, 0x9FF7, 0x6F41, 0x9FF1, 0x6F45, 0x8AC1, - 0x6F54, 0x8C89, 0x6F58, 0xE04E, 0x6F5B, 0xE049, 0x6F5C, 0x90F6, - 0x6F5F, 0x8A83, 0x6F64, 0x8F81, 0x6F66, 0xE052, 0x6F6D, 0xE04B, - 0x6F6E, 0x92AA, 0x6F6F, 0xE048, 0x6F70, 0x92D7, 0x6F74, 0xE06B, - 0x6F78, 0xE045, 0x6F7A, 0xE044, 0x6F7C, 0xE04D, 0x6F80, 0xE047, - 0x6F81, 0xE046, 0x6F82, 0xE04C, 0x6F84, 0x909F, 0x6F86, 0xE043, - 0x6F88, 0xFB4B, 0x6F8E, 0xE04F, 0x6F91, 0xE050, 0x6F97, 0x8AC0, - 0x6FA1, 0xE055, 0x6FA3, 0xE054, 0x6FA4, 0xE056, 0x6FAA, 0xE059, - 0x6FB1, 0x9362, 0x6FB3, 0xE053, 0x6FB5, 0xFB4C, 0x6FB9, 0xE057, - 0x6FC0, 0x8C83, 0x6FC1, 0x91F7, 0x6FC2, 0xE051, 0x6FC3, 0x945A, - 0x6FC6, 0xE058, 0x6FD4, 0xE05D, 0x6FD5, 0xE05B, 0x6FD8, 0xE05E, - 0x6FDB, 0xE061, 0x6FDF, 0xE05A, 0x6FE0, 0x8D8A, 0x6FE1, 0x9447, - 0x6FE4, 0x9FB7, 0x6FEB, 0x9794, 0x6FEC, 0xE05C, 0x6FEE, 0xE060, - 0x6FEF, 0x91F3, 0x6FF1, 0xE05F, 0x6FF3, 0xE04A, 0x6FF5, 0xFB4D, - 0x6FF6, 0xE889, 0x6FFA, 0xE064, 0x6FFE, 0xE068, 0x7001, 0xE066, - 0x7005, 0xFB4E, 0x7007, 0xFB4F, 0x7009, 0xE062, 0x700B, 0xE063, - 0x700F, 0xE067, 0x7011, 0xE065, 0x7015, 0x956D, 0x7018, 0xE06D, - 0x701A, 0xE06A, 0x701B, 0xE069, 0x701D, 0xE06C, 0x701E, 0x93D2, - 0x701F, 0xE06E, 0x7026, 0x9295, 0x7027, 0x91EB, 0x7028, 0xFB50, - 0x702C, 0x90A3, 0x7030, 0xE06F, 0x7032, 0xE071, 0x703E, 0xE070, - 0x704C, 0x9FF3, 0x7051, 0xE072, 0x7058, 0x93E5, 0x7063, 0xE073, - 0x706B, 0x89CE, 0x706F, 0x9394, 0x7070, 0x8A44, 0x7078, 0x8B84, - 0x707C, 0x8EDC, 0x707D, 0x8DD0, 0x7085, 0xFB51, 0x7089, 0x9846, - 0x708A, 0x9086, 0x708E, 0x898A, 0x7092, 0xE075, 0x7099, 0xE074, - 0x70AB, 0xFB52, 0x70AC, 0xE078, 0x70AD, 0x9259, 0x70AE, 0xE07B, - 0x70AF, 0xE076, 0x70B3, 0xE07A, 0x70B8, 0xE079, 0x70B9, 0x935F, - 0x70BA, 0x88D7, 0x70BB, 0xFA62, 0x70C8, 0x97F3, 0x70CB, 0xE07D, - 0x70CF, 0x8947, 0x70D9, 0xE080, 0x70DD, 0xE07E, 0x70DF, 0xE07C, - 0x70F1, 0xE077, 0x70F9, 0x9642, 0x70FD, 0xE082, 0x7104, 0xFB54, - 0x7109, 0xE081, 0x710F, 0xFB53, 0x7114, 0x898B, 0x7119, 0xE084, - 0x711A, 0x95B0, 0x711C, 0xE083, 0x7121, 0x96B3, 0x7126, 0x8FC5, - 0x7136, 0x9152, 0x713C, 0x8FC4, 0x7146, 0xFB56, 0x7147, 0xFB57, - 0x7149, 0x97F9, 0x714C, 0xE08A, 0x714E, 0x90F7, 0x7155, 0xE086, - 0x7156, 0xE08B, 0x7159, 0x898C, 0x715C, 0xFB55, 0x7162, 0xE089, - 0x7164, 0x9481, 0x7165, 0xE085, 0x7166, 0xE088, 0x7167, 0x8FC6, - 0x7169, 0x94CF, 0x716C, 0xE08C, 0x716E, 0x8ECF, 0x717D, 0x90F8, - 0x7184, 0xE08F, 0x7188, 0xE087, 0x718A, 0x8C46, 0x718F, 0xE08D, - 0x7194, 0x976F, 0x7195, 0xE090, 0x7199, 0xEAA4, 0x719F, 0x8F6E, - 0x71A8, 0xE091, 0x71AC, 0xE092, 0x71B1, 0x944D, 0x71B9, 0xE094, - 0x71BE, 0xE095, 0x71C1, 0xFB59, 0x71C3, 0x9452, 0x71C8, 0x9395, - 0x71C9, 0xE097, 0x71CE, 0xE099, 0x71D0, 0x97D3, 0x71D2, 0xE096, - 0x71D4, 0xE098, 0x71D5, 0x898D, 0x71D7, 0xE093, 0x71DF, 0x9A7A, - 0x71E0, 0xE09A, 0x71E5, 0x9187, 0x71E6, 0x8E57, 0x71E7, 0xE09C, - 0x71EC, 0xE09B, 0x71ED, 0x9043, 0x71EE, 0x99D7, 0x71F5, 0xE09D, - 0x71F9, 0xE09F, 0x71FB, 0xE08E, 0x71FC, 0xE09E, 0x71FE, 0xFB5A, - 0x71FF, 0xE0A0, 0x7206, 0x949A, 0x720D, 0xE0A1, 0x7210, 0xE0A2, - 0x721B, 0xE0A3, 0x7228, 0xE0A4, 0x722A, 0x92DC, 0x722C, 0xE0A6, - 0x722D, 0xE0A5, 0x7230, 0xE0A7, 0x7232, 0xE0A8, 0x7235, 0x8EDD, - 0x7236, 0x9583, 0x723A, 0x96EA, 0x723B, 0xE0A9, 0x723C, 0xE0AA, - 0x723D, 0x9175, 0x723E, 0x8EA2, 0x723F, 0xE0AB, 0x7240, 0xE0AC, - 0x7246, 0xE0AD, 0x7247, 0x95D0, 0x7248, 0x94C5, 0x724B, 0xE0AE, - 0x724C, 0x9476, 0x7252, 0x92AB, 0x7258, 0xE0AF, 0x7259, 0x89E5, - 0x725B, 0x8B8D, 0x725D, 0x96C4, 0x725F, 0x96B4, 0x7261, 0x89B2, - 0x7262, 0x9853, 0x7267, 0x9671, 0x7269, 0x95A8, 0x7272, 0x90B5, - 0x7274, 0xE0B0, 0x7279, 0x93C1, 0x727D, 0x8CA1, 0x727E, 0xE0B1, - 0x7280, 0x8DD2, 0x7281, 0xE0B3, 0x7282, 0xE0B2, 0x7287, 0xE0B4, - 0x7292, 0xE0B5, 0x7296, 0xE0B6, 0x72A0, 0x8B5D, 0x72A2, 0xE0B7, - 0x72A7, 0xE0B8, 0x72AC, 0x8CA2, 0x72AF, 0x94C6, 0x72B1, 0xFB5B, - 0x72B2, 0xE0BA, 0x72B6, 0x8FF3, 0x72B9, 0xE0B9, 0x72BE, 0xFB5C, - 0x72C2, 0x8BB6, 0x72C3, 0xE0BB, 0x72C4, 0xE0BD, 0x72C6, 0xE0BC, - 0x72CE, 0xE0BE, 0x72D0, 0x8CCF, 0x72D2, 0xE0BF, 0x72D7, 0x8BE7, - 0x72D9, 0x915F, 0x72DB, 0x8D9D, 0x72E0, 0xE0C1, 0x72E1, 0xE0C2, - 0x72E2, 0xE0C0, 0x72E9, 0x8EEB, 0x72EC, 0x93C6, 0x72ED, 0x8BB7, - 0x72F7, 0xE0C4, 0x72F8, 0x924B, 0x72F9, 0xE0C3, 0x72FC, 0x9854, - 0x72FD, 0x9482, 0x730A, 0xE0C7, 0x7316, 0xE0C9, 0x7317, 0xE0C6, - 0x731B, 0x96D2, 0x731C, 0xE0C8, 0x731D, 0xE0CA, 0x731F, 0x97C2, - 0x7324, 0xFB5D, 0x7325, 0xE0CE, 0x7329, 0xE0CD, 0x732A, 0x9296, - 0x732B, 0x944C, 0x732E, 0x8CA3, 0x732F, 0xE0CC, 0x7334, 0xE0CB, - 0x7336, 0x9750, 0x7337, 0x9751, 0x733E, 0xE0CF, 0x733F, 0x898E, - 0x7344, 0x8D96, 0x7345, 0x8E82, 0x734E, 0xE0D0, 0x734F, 0xE0D1, - 0x7357, 0xE0D3, 0x7363, 0x8F62, 0x7368, 0xE0D5, 0x736A, 0xE0D4, - 0x7370, 0xE0D6, 0x7372, 0x8A6C, 0x7375, 0xE0D8, 0x7377, 0xFB5F, - 0x7378, 0xE0D7, 0x737A, 0xE0DA, 0x737B, 0xE0D9, 0x7384, 0x8CBA, - 0x7387, 0x97A6, 0x7389, 0x8BCA, 0x738B, 0x89A4, 0x7396, 0x8BE8, - 0x73A9, 0x8ADF, 0x73B2, 0x97E6, 0x73B3, 0xE0DC, 0x73BB, 0xE0DE, - 0x73BD, 0xFB60, 0x73C0, 0xE0DF, 0x73C2, 0x89CF, 0x73C8, 0xE0DB, - 0x73C9, 0xFB61, 0x73CA, 0x8E58, 0x73CD, 0x92BF, 0x73CE, 0xE0DD, - 0x73D2, 0xFB64, 0x73D6, 0xFB62, 0x73DE, 0xE0E2, 0x73E0, 0x8EEC, - 0x73E3, 0xFB63, 0x73E5, 0xE0E0, 0x73EA, 0x8C5D, 0x73ED, 0x94C7, - 0x73EE, 0xE0E1, 0x73F1, 0xE0FC, 0x73F5, 0xFB66, 0x73F8, 0xE0E7, - 0x73FE, 0x8CBB, 0x7403, 0x8B85, 0x7405, 0xE0E4, 0x7406, 0x979D, - 0x7407, 0xFB65, 0x7409, 0x97AE, 0x7422, 0x91F4, 0x7425, 0xE0E6, - 0x7426, 0xFB67, 0x7429, 0xFB69, 0x742A, 0xFB68, 0x742E, 0xFB6A, - 0x7432, 0xE0E8, 0x7433, 0x97D4, 0x7434, 0x8BD5, 0x7435, 0x94FA, - 0x7436, 0x9469, 0x743A, 0xE0E9, 0x743F, 0xE0EB, 0x7441, 0xE0EE, - 0x7455, 0xE0EA, 0x7459, 0xE0ED, 0x745A, 0x8CE8, 0x745B, 0x896C, - 0x745C, 0xE0EF, 0x745E, 0x9090, 0x745F, 0xE0EC, 0x7460, 0x97DA, - 0x7462, 0xFB6B, 0x7463, 0xE0F2, 0x7464, 0xEAA2, 0x7469, 0xE0F0, - 0x746A, 0xE0F3, 0x746F, 0xE0E5, 0x7470, 0xE0F1, 0x7473, 0x8DBA, - 0x7476, 0xE0F4, 0x747E, 0xE0F5, 0x7483, 0x979E, 0x7489, 0xFB6C, - 0x748B, 0xE0F6, 0x749E, 0xE0F7, 0x749F, 0xFB6D, 0x74A2, 0xE0E3, - 0x74A7, 0xE0F8, 0x74B0, 0x8AC2, 0x74BD, 0x8EA3, 0x74CA, 0xE0F9, - 0x74CF, 0xE0FA, 0x74D4, 0xE0FB, 0x74DC, 0x895A, 0x74E0, 0xE140, - 0x74E2, 0x955A, 0x74E3, 0xE141, 0x74E6, 0x8AA2, 0x74E7, 0xE142, - 0x74E9, 0xE143, 0x74EE, 0xE144, 0x74F0, 0xE146, 0x74F1, 0xE147, - 0x74F2, 0xE145, 0x74F6, 0x9572, 0x74F7, 0xE149, 0x74F8, 0xE148, - 0x7501, 0xFB6E, 0x7503, 0xE14B, 0x7504, 0xE14A, 0x7505, 0xE14C, - 0x750C, 0xE14D, 0x750D, 0xE14F, 0x750E, 0xE14E, 0x7511, 0x8D99, - 0x7513, 0xE151, 0x7515, 0xE150, 0x7518, 0x8AC3, 0x751A, 0x9072, - 0x751C, 0x935B, 0x751E, 0xE152, 0x751F, 0x90B6, 0x7523, 0x8E59, - 0x7525, 0x8999, 0x7526, 0xE153, 0x7528, 0x9770, 0x752B, 0x95E1, - 0x752C, 0xE154, 0x752F, 0xFAA8, 0x7530, 0x9363, 0x7531, 0x9752, - 0x7532, 0x8D62, 0x7533, 0x905C, 0x7537, 0x926A, 0x7538, 0x99B2, - 0x753A, 0x92AC, 0x753B, 0x89E6, 0x753C, 0xE155, 0x7544, 0xE156, - 0x7546, 0xE15B, 0x7549, 0xE159, 0x754A, 0xE158, 0x754B, 0x9DC0, - 0x754C, 0x8A45, 0x754D, 0xE157, 0x754F, 0x88D8, 0x7551, 0x94A8, - 0x7554, 0x94C8, 0x7559, 0x97AF, 0x755A, 0xE15C, 0x755B, 0xE15A, - 0x755C, 0x927B, 0x755D, 0x90A4, 0x7560, 0x94A9, 0x7562, 0x954C, - 0x7564, 0xE15E, 0x7565, 0x97AA, 0x7566, 0x8C6C, 0x7567, 0xE15F, - 0x7569, 0xE15D, 0x756A, 0x94D4, 0x756B, 0xE160, 0x756D, 0xE161, - 0x756F, 0xFB6F, 0x7570, 0x88D9, 0x7573, 0x8FF4, 0x7574, 0xE166, - 0x7576, 0xE163, 0x7577, 0x93EB, 0x7578, 0xE162, 0x757F, 0x8B45, - 0x7582, 0xE169, 0x7586, 0xE164, 0x7587, 0xE165, 0x7589, 0xE168, - 0x758A, 0xE167, 0x758B, 0x9544, 0x758E, 0x9161, 0x758F, 0x9160, - 0x7591, 0x8B5E, 0x7594, 0xE16A, 0x759A, 0xE16B, 0x759D, 0xE16C, - 0x75A3, 0xE16E, 0x75A5, 0xE16D, 0x75AB, 0x8975, 0x75B1, 0xE176, - 0x75B2, 0x94E6, 0x75B3, 0xE170, 0x75B5, 0xE172, 0x75B8, 0xE174, - 0x75B9, 0x905D, 0x75BC, 0xE175, 0x75BD, 0xE173, 0x75BE, 0x8EBE, - 0x75C2, 0xE16F, 0x75C3, 0xE171, 0x75C5, 0x9561, 0x75C7, 0x8FC7, - 0x75CA, 0xE178, 0x75CD, 0xE177, 0x75D2, 0xE179, 0x75D4, 0x8EA4, - 0x75D5, 0x8DAD, 0x75D8, 0x9397, 0x75D9, 0xE17A, 0x75DB, 0x92C9, - 0x75DE, 0xE17C, 0x75E2, 0x979F, 0x75E3, 0xE17B, 0x75E9, 0x9189, - 0x75F0, 0xE182, 0x75F2, 0xE184, 0x75F3, 0xE185, 0x75F4, 0x9273, - 0x75FA, 0xE183, 0x75FC, 0xE180, 0x75FE, 0xE17D, 0x75FF, 0xE17E, - 0x7601, 0xE181, 0x7609, 0xE188, 0x760B, 0xE186, 0x760D, 0xE187, - 0x761F, 0xE189, 0x7620, 0xE18B, 0x7621, 0xE18C, 0x7622, 0xE18D, - 0x7624, 0xE18E, 0x7627, 0xE18A, 0x7630, 0xE190, 0x7634, 0xE18F, - 0x763B, 0xE191, 0x7642, 0x97C3, 0x7646, 0xE194, 0x7647, 0xE192, - 0x7648, 0xE193, 0x764C, 0x8AE0, 0x7652, 0x96FC, 0x7656, 0x95C8, - 0x7658, 0xE196, 0x765C, 0xE195, 0x7661, 0xE197, 0x7662, 0xE198, - 0x7667, 0xE19C, 0x7668, 0xE199, 0x7669, 0xE19A, 0x766A, 0xE19B, - 0x766C, 0xE19D, 0x7670, 0xE19E, 0x7672, 0xE19F, 0x7676, 0xE1A0, - 0x7678, 0xE1A1, 0x767A, 0x94AD, 0x767B, 0x936F, 0x767C, 0xE1A2, - 0x767D, 0x9492, 0x767E, 0x9553, 0x7680, 0xE1A3, 0x7682, 0xFB70, - 0x7683, 0xE1A4, 0x7684, 0x9349, 0x7686, 0x8A46, 0x7687, 0x8D63, - 0x7688, 0xE1A5, 0x768B, 0xE1A6, 0x768E, 0xE1A7, 0x7690, 0x8E48, - 0x7693, 0xE1A9, 0x7696, 0xE1A8, 0x7699, 0xE1AA, 0x769A, 0xE1AB, - 0x769B, 0xFB73, 0x769C, 0xFB71, 0x769E, 0xFB72, 0x76A6, 0xFB74, - 0x76AE, 0x94E7, 0x76B0, 0xE1AC, 0x76B4, 0xE1AD, 0x76B7, 0xEA89, - 0x76B8, 0xE1AE, 0x76B9, 0xE1AF, 0x76BA, 0xE1B0, 0x76BF, 0x8E4D, - 0x76C2, 0xE1B1, 0x76C3, 0x9475, 0x76C6, 0x967E, 0x76C8, 0x896D, - 0x76CA, 0x8976, 0x76CD, 0xE1B2, 0x76D2, 0xE1B4, 0x76D6, 0xE1B3, - 0x76D7, 0x9390, 0x76DB, 0x90B7, 0x76DC, 0x9F58, 0x76DE, 0xE1B5, - 0x76DF, 0x96BF, 0x76E1, 0xE1B6, 0x76E3, 0x8AC4, 0x76E4, 0x94D5, - 0x76E5, 0xE1B7, 0x76E7, 0xE1B8, 0x76EA, 0xE1B9, 0x76EE, 0x96DA, - 0x76F2, 0x96D3, 0x76F4, 0x92BC, 0x76F8, 0x918A, 0x76FB, 0xE1BB, - 0x76FE, 0x8F82, 0x7701, 0x8FC8, 0x7704, 0xE1BE, 0x7707, 0xE1BD, - 0x7708, 0xE1BC, 0x7709, 0x94FB, 0x770B, 0x8AC5, 0x770C, 0x8CA7, - 0x771B, 0xE1C4, 0x771E, 0xE1C1, 0x771F, 0x905E, 0x7720, 0x96B0, - 0x7724, 0xE1C0, 0x7725, 0xE1C2, 0x7726, 0xE1C3, 0x7729, 0xE1BF, - 0x7737, 0xE1C5, 0x7738, 0xE1C6, 0x773A, 0x92AD, 0x773C, 0x8AE1, - 0x7740, 0x9285, 0x7746, 0xFB76, 0x7747, 0xE1C7, 0x775A, 0xE1C8, - 0x775B, 0xE1CB, 0x7761, 0x9087, 0x7763, 0x93C2, 0x7765, 0xE1CC, - 0x7766, 0x9672, 0x7768, 0xE1C9, 0x776B, 0xE1CA, 0x7779, 0xE1CF, - 0x777E, 0xE1CE, 0x777F, 0xE1CD, 0x778B, 0xE1D1, 0x778E, 0xE1D0, - 0x7791, 0xE1D2, 0x779E, 0xE1D4, 0x77A0, 0xE1D3, 0x77A5, 0x95CB, - 0x77AC, 0x8F75, 0x77AD, 0x97C4, 0x77B0, 0xE1D5, 0x77B3, 0x93B5, - 0x77B6, 0xE1D6, 0x77B9, 0xE1D7, 0x77BB, 0xE1DB, 0x77BC, 0xE1D9, - 0x77BD, 0xE1DA, 0x77BF, 0xE1D8, 0x77C7, 0xE1DC, 0x77CD, 0xE1DD, - 0x77D7, 0xE1DE, 0x77DA, 0xE1DF, 0x77DB, 0x96B5, 0x77DC, 0xE1E0, - 0x77E2, 0x96EE, 0x77E3, 0xE1E1, 0x77E5, 0x926D, 0x77E7, 0x948A, - 0x77E9, 0x8BE9, 0x77ED, 0x925A, 0x77EE, 0xE1E2, 0x77EF, 0x8BB8, - 0x77F3, 0x90CE, 0x77FC, 0xE1E3, 0x7802, 0x8DBB, 0x780C, 0xE1E4, - 0x7812, 0xE1E5, 0x7814, 0x8CA4, 0x7815, 0x8DD3, 0x7820, 0xE1E7, - 0x7821, 0xFB78, 0x7825, 0x9375, 0x7826, 0x8DD4, 0x7827, 0x8B6D, - 0x7832, 0x9643, 0x7834, 0x946A, 0x783A, 0x9376, 0x783F, 0x8D7B, - 0x7845, 0xE1E9, 0x784E, 0xFB79, 0x785D, 0x8FC9, 0x7864, 0xFB7A, - 0x786B, 0x97B0, 0x786C, 0x8D64, 0x786F, 0x8CA5, 0x7872, 0x94A1, - 0x7874, 0xE1EB, 0x787A, 0xFB7B, 0x787C, 0xE1ED, 0x7881, 0x8CE9, - 0x7886, 0xE1EC, 0x7887, 0x92F4, 0x788C, 0xE1EF, 0x788D, 0x8A56, - 0x788E, 0xE1EA, 0x7891, 0x94E8, 0x7893, 0x894F, 0x7895, 0x8DEA, - 0x7897, 0x9871, 0x789A, 0xE1EE, 0x78A3, 0xE1F0, 0x78A7, 0x95C9, - 0x78A9, 0x90D7, 0x78AA, 0xE1F2, 0x78AF, 0xE1F3, 0x78B5, 0xE1F1, - 0x78BA, 0x8A6D, 0x78BC, 0xE1F9, 0x78BE, 0xE1F8, 0x78C1, 0x8EA5, - 0x78C5, 0xE1FA, 0x78C6, 0xE1F5, 0x78CA, 0xE1FB, 0x78CB, 0xE1F6, - 0x78D0, 0x94D6, 0x78D1, 0xE1F4, 0x78D4, 0xE1F7, 0x78DA, 0xE241, - 0x78E7, 0xE240, 0x78E8, 0x9681, 0x78EC, 0xE1FC, 0x78EF, 0x88E9, - 0x78F4, 0xE243, 0x78FD, 0xE242, 0x7901, 0x8FCA, 0x7907, 0xE244, - 0x790E, 0x9162, 0x7911, 0xE246, 0x7912, 0xE245, 0x7919, 0xE247, - 0x7926, 0xE1E6, 0x792A, 0xE1E8, 0x792B, 0xE249, 0x792C, 0xE248, - 0x7930, 0xFB7C, 0x793A, 0x8EA6, 0x793C, 0x97E7, 0x793E, 0x8ED0, - 0x7940, 0xE24A, 0x7941, 0x8C56, 0x7947, 0x8B5F, 0x7948, 0x8B46, - 0x7949, 0x8E83, 0x7950, 0x9753, 0x7953, 0xE250, 0x7955, 0xE24F, - 0x7956, 0x9163, 0x7957, 0xE24C, 0x795A, 0xE24E, 0x795D, 0x8F6A, - 0x795E, 0x905F, 0x795F, 0xE24D, 0x7960, 0xE24B, 0x7962, 0x9449, - 0x7965, 0x8FCB, 0x7968, 0x955B, 0x796D, 0x8DD5, 0x7977, 0x9398, - 0x797A, 0xE251, 0x797F, 0xE252, 0x7980, 0xE268, 0x7981, 0x8BD6, - 0x7984, 0x985C, 0x7985, 0x9154, 0x798A, 0xE253, 0x798D, 0x89D0, - 0x798E, 0x92F5, 0x798F, 0x959F, 0x7994, 0xFB81, 0x799B, 0xFB83, - 0x799D, 0xE254, 0x79A6, 0x8B9A, 0x79A7, 0xE255, 0x79AA, 0xE257, - 0x79AE, 0xE258, 0x79B0, 0x9448, 0x79B3, 0xE259, 0x79B9, 0xE25A, - 0x79BA, 0xE25B, 0x79BD, 0x8BD7, 0x79BE, 0x89D1, 0x79BF, 0x93C3, - 0x79C0, 0x8F47, 0x79C1, 0x8E84, 0x79C9, 0xE25C, 0x79CB, 0x8F48, - 0x79D1, 0x89C8, 0x79D2, 0x9562, 0x79D5, 0xE25D, 0x79D8, 0x94E9, - 0x79DF, 0x9164, 0x79E1, 0xE260, 0x79E3, 0xE261, 0x79E4, 0x9489, - 0x79E6, 0x9060, 0x79E7, 0xE25E, 0x79E9, 0x9281, 0x79EC, 0xE25F, - 0x79F0, 0x8FCC, 0x79FB, 0x88DA, 0x7A00, 0x8B48, 0x7A08, 0xE262, - 0x7A0B, 0x92F6, 0x7A0D, 0xE263, 0x7A0E, 0x90C5, 0x7A14, 0x96AB, - 0x7A17, 0x9542, 0x7A18, 0xE264, 0x7A19, 0xE265, 0x7A1A, 0x9274, - 0x7A1C, 0x97C5, 0x7A1F, 0xE267, 0x7A20, 0xE266, 0x7A2E, 0x8EED, - 0x7A31, 0xE269, 0x7A32, 0x88EE, 0x7A37, 0xE26C, 0x7A3B, 0xE26A, - 0x7A3C, 0x89D2, 0x7A3D, 0x8C6D, 0x7A3E, 0xE26B, 0x7A3F, 0x8D65, - 0x7A40, 0x8D92, 0x7A42, 0x95E4, 0x7A43, 0xE26D, 0x7A46, 0x9673, - 0x7A49, 0xE26F, 0x7A4D, 0x90CF, 0x7A4E, 0x896E, 0x7A4F, 0x89B8, - 0x7A50, 0x88AA, 0x7A57, 0xE26E, 0x7A61, 0xE270, 0x7A62, 0xE271, - 0x7A63, 0x8FF5, 0x7A69, 0xE272, 0x7A6B, 0x8A6E, 0x7A70, 0xE274, - 0x7A74, 0x8C8A, 0x7A76, 0x8B86, 0x7A79, 0xE275, 0x7A7A, 0x8BF3, - 0x7A7D, 0xE276, 0x7A7F, 0x90FA, 0x7A81, 0x93CB, 0x7A83, 0x90DE, - 0x7A84, 0x8DF3, 0x7A88, 0xE277, 0x7A92, 0x9282, 0x7A93, 0x918B, - 0x7A95, 0xE279, 0x7A96, 0xE27B, 0x7A97, 0xE278, 0x7A98, 0xE27A, - 0x7A9F, 0x8C41, 0x7AA9, 0xE27C, 0x7AAA, 0x8C45, 0x7AAE, 0x8B87, - 0x7AAF, 0x9771, 0x7AB0, 0xE27E, 0x7AB6, 0xE280, 0x7ABA, 0x894D, - 0x7ABF, 0xE283, 0x7AC3, 0x8A96, 0x7AC4, 0xE282, 0x7AC5, 0xE281, - 0x7AC7, 0xE285, 0x7AC8, 0xE27D, 0x7ACA, 0xE286, 0x7ACB, 0x97A7, - 0x7ACD, 0xE287, 0x7ACF, 0xE288, 0x7AD1, 0xFB84, 0x7AD2, 0x9AF2, - 0x7AD3, 0xE28A, 0x7AD5, 0xE289, 0x7AD9, 0xE28B, 0x7ADA, 0xE28C, - 0x7ADC, 0x97B3, 0x7ADD, 0xE28D, 0x7ADF, 0xE8ED, 0x7AE0, 0x8FCD, - 0x7AE1, 0xE28E, 0x7AE2, 0xE28F, 0x7AE3, 0x8F76, 0x7AE5, 0x93B6, - 0x7AE6, 0xE290, 0x7AE7, 0xFB85, 0x7AEA, 0x9247, 0x7AEB, 0xFB87, - 0x7AED, 0xE291, 0x7AEF, 0x925B, 0x7AF0, 0xE292, 0x7AF6, 0x8BA3, - 0x7AF8, 0x995E, 0x7AF9, 0x927C, 0x7AFA, 0x8EB1, 0x7AFF, 0x8AC6, - 0x7B02, 0xE293, 0x7B04, 0xE2A0, 0x7B06, 0xE296, 0x7B08, 0x8B88, - 0x7B0A, 0xE295, 0x7B0B, 0xE2A2, 0x7B0F, 0xE294, 0x7B11, 0x8FCE, - 0x7B18, 0xE298, 0x7B19, 0xE299, 0x7B1B, 0x934A, 0x7B1E, 0xE29A, - 0x7B20, 0x8A7D, 0x7B25, 0x9079, 0x7B26, 0x9584, 0x7B28, 0xE29C, - 0x7B2C, 0x91E6, 0x7B33, 0xE297, 0x7B35, 0xE29B, 0x7B36, 0xE29D, - 0x7B39, 0x8DF9, 0x7B45, 0xE2A4, 0x7B46, 0x954D, 0x7B48, 0x94A4, - 0x7B49, 0x9399, 0x7B4B, 0x8BD8, 0x7B4C, 0xE2A3, 0x7B4D, 0xE2A1, - 0x7B4F, 0x94B3, 0x7B50, 0xE29E, 0x7B51, 0x927D, 0x7B52, 0x939B, - 0x7B54, 0x939A, 0x7B56, 0x8DF4, 0x7B5D, 0xE2B6, 0x7B65, 0xE2A6, - 0x7B67, 0xE2A8, 0x7B6C, 0xE2AB, 0x7B6E, 0xE2AC, 0x7B70, 0xE2A9, - 0x7B71, 0xE2AA, 0x7B74, 0xE2A7, 0x7B75, 0xE2A5, 0x7B7A, 0xE29F, - 0x7B86, 0x95CD, 0x7B87, 0x89D3, 0x7B8B, 0xE2B3, 0x7B8D, 0xE2B0, - 0x7B8F, 0xE2B5, 0x7B92, 0xE2B4, 0x7B94, 0x9493, 0x7B95, 0x96A5, - 0x7B97, 0x8E5A, 0x7B98, 0xE2AE, 0x7B99, 0xE2B7, 0x7B9A, 0xE2B2, - 0x7B9C, 0xE2B1, 0x7B9D, 0xE2AD, 0x7B9E, 0xFB88, 0x7B9F, 0xE2AF, - 0x7BA1, 0x8AC7, 0x7BAA, 0x925C, 0x7BAD, 0x90FB, 0x7BB1, 0x94A0, - 0x7BB4, 0xE2BC, 0x7BB8, 0x94A2, 0x7BC0, 0x90DF, 0x7BC1, 0xE2B9, - 0x7BC4, 0x94CD, 0x7BC6, 0xE2BD, 0x7BC7, 0x95D1, 0x7BC9, 0x927A, - 0x7BCB, 0xE2B8, 0x7BCC, 0xE2BA, 0x7BCF, 0xE2BB, 0x7BDD, 0xE2BE, - 0x7BE0, 0x8EC2, 0x7BE4, 0x93C4, 0x7BE5, 0xE2C3, 0x7BE6, 0xE2C2, - 0x7BE9, 0xE2BF, 0x7BED, 0x9855, 0x7BF3, 0xE2C8, 0x7BF6, 0xE2CC, - 0x7BF7, 0xE2C9, 0x7C00, 0xE2C5, 0x7C07, 0xE2C6, 0x7C0D, 0xE2CB, - 0x7C11, 0xE2C0, 0x7C12, 0x99D3, 0x7C13, 0xE2C7, 0x7C14, 0xE2C1, - 0x7C17, 0xE2CA, 0x7C1F, 0xE2D0, 0x7C21, 0x8AC8, 0x7C23, 0xE2CD, - 0x7C27, 0xE2CE, 0x7C2A, 0xE2CF, 0x7C2B, 0xE2D2, 0x7C37, 0xE2D1, - 0x7C38, 0x94F4, 0x7C3D, 0xE2D3, 0x7C3E, 0x97FA, 0x7C3F, 0x95EB, - 0x7C40, 0xE2D8, 0x7C43, 0xE2D5, 0x7C4C, 0xE2D4, 0x7C4D, 0x90D0, - 0x7C4F, 0xE2D7, 0x7C50, 0xE2D9, 0x7C54, 0xE2D6, 0x7C56, 0xE2DD, - 0x7C58, 0xE2DA, 0x7C5F, 0xE2DB, 0x7C60, 0xE2C4, 0x7C64, 0xE2DC, - 0x7C65, 0xE2DE, 0x7C6C, 0xE2DF, 0x7C73, 0x95C4, 0x7C75, 0xE2E0, - 0x7C7E, 0x96E0, 0x7C81, 0x8BCC, 0x7C82, 0x8C48, 0x7C83, 0xE2E1, - 0x7C89, 0x95B2, 0x7C8B, 0x9088, 0x7C8D, 0x96AE, 0x7C90, 0xE2E2, - 0x7C92, 0x97B1, 0x7C95, 0x9494, 0x7C97, 0x9165, 0x7C98, 0x9453, - 0x7C9B, 0x8F6C, 0x7C9F, 0x88BE, 0x7CA1, 0xE2E7, 0x7CA2, 0xE2E5, - 0x7CA4, 0xE2E3, 0x7CA5, 0x8A9F, 0x7CA7, 0x8FCF, 0x7CA8, 0xE2E8, - 0x7CAB, 0xE2E6, 0x7CAD, 0xE2E4, 0x7CAE, 0xE2EC, 0x7CB1, 0xE2EB, - 0x7CB2, 0xE2EA, 0x7CB3, 0xE2E9, 0x7CB9, 0xE2ED, 0x7CBD, 0xE2EE, - 0x7CBE, 0x90B8, 0x7CC0, 0xE2EF, 0x7CC2, 0xE2F1, 0x7CC5, 0xE2F0, - 0x7CCA, 0x8CD0, 0x7CCE, 0x9157, 0x7CD2, 0xE2F3, 0x7CD6, 0x939C, - 0x7CD8, 0xE2F2, 0x7CDC, 0xE2F4, 0x7CDE, 0x95B3, 0x7CDF, 0x918C, - 0x7CE0, 0x8D66, 0x7CE2, 0xE2F5, 0x7CE7, 0x97C6, 0x7CEF, 0xE2F7, - 0x7CF2, 0xE2F8, 0x7CF4, 0xE2F9, 0x7CF6, 0xE2FA, 0x7CF8, 0x8E85, - 0x7CFA, 0xE2FB, 0x7CFB, 0x8C6E, 0x7CFE, 0x8B8A, 0x7D00, 0x8B49, - 0x7D02, 0xE340, 0x7D04, 0x96F1, 0x7D05, 0x8D67, 0x7D06, 0xE2FC, - 0x7D0A, 0xE343, 0x7D0B, 0x96E4, 0x7D0D, 0x945B, 0x7D10, 0x9552, - 0x7D14, 0x8F83, 0x7D15, 0xE342, 0x7D17, 0x8ED1, 0x7D18, 0x8D68, - 0x7D19, 0x8E86, 0x7D1A, 0x8B89, 0x7D1B, 0x95B4, 0x7D1C, 0xE341, - 0x7D20, 0x9166, 0x7D21, 0x9661, 0x7D22, 0x8DF5, 0x7D2B, 0x8E87, - 0x7D2C, 0x92DB, 0x7D2E, 0xE346, 0x7D2F, 0x97DD, 0x7D30, 0x8DD7, - 0x7D32, 0xE347, 0x7D33, 0x9061, 0x7D35, 0xE349, 0x7D39, 0x8FD0, - 0x7D3A, 0x8DAE, 0x7D3F, 0xE348, 0x7D42, 0x8F49, 0x7D43, 0x8CBC, - 0x7D44, 0x9167, 0x7D45, 0xE344, 0x7D46, 0xE34A, 0x7D48, 0xFB8A, - 0x7D4B, 0xE345, 0x7D4C, 0x8C6F, 0x7D4E, 0xE34D, 0x7D4F, 0xE351, - 0x7D50, 0x8C8B, 0x7D56, 0xE34C, 0x7D5B, 0xE355, 0x7D5C, 0xFB8B, - 0x7D5E, 0x8D69, 0x7D61, 0x978D, 0x7D62, 0x88BA, 0x7D63, 0xE352, - 0x7D66, 0x8B8B, 0x7D68, 0xE34F, 0x7D6E, 0xE350, 0x7D71, 0x939D, - 0x7D72, 0xE34E, 0x7D73, 0xE34B, 0x7D75, 0x8A47, 0x7D76, 0x90E2, - 0x7D79, 0x8CA6, 0x7D7D, 0xE357, 0x7D89, 0xE354, 0x7D8F, 0xE356, - 0x7D93, 0xE353, 0x7D99, 0x8C70, 0x7D9A, 0x91B1, 0x7D9B, 0xE358, - 0x7D9C, 0x918E, 0x7D9F, 0xE365, 0x7DA0, 0xFB8D, 0x7DA2, 0xE361, - 0x7DA3, 0xE35B, 0x7DAB, 0xE35F, 0x7DAC, 0x8EF8, 0x7DAD, 0x88DB, - 0x7DAE, 0xE35A, 0x7DAF, 0xE362, 0x7DB0, 0xE366, 0x7DB1, 0x8D6A, - 0x7DB2, 0x96D4, 0x7DB4, 0x92D4, 0x7DB5, 0xE35C, 0x7DB7, 0xFB8C, - 0x7DB8, 0xE364, 0x7DBA, 0xE359, 0x7DBB, 0x925D, 0x7DBD, 0xE35E, - 0x7DBE, 0x88BB, 0x7DBF, 0x96C8, 0x7DC7, 0xE35D, 0x7DCA, 0x8BD9, - 0x7DCB, 0x94EA, 0x7DCF, 0x918D, 0x7DD1, 0x97CE, 0x7DD2, 0x8F8F, - 0x7DD5, 0xE38E, 0x7DD6, 0xFB8E, 0x7DD8, 0xE367, 0x7DDA, 0x90FC, - 0x7DDC, 0xE363, 0x7DDD, 0xE368, 0x7DDE, 0xE36A, 0x7DE0, 0x92F7, - 0x7DE1, 0xE36D, 0x7DE4, 0xE369, 0x7DE8, 0x95D2, 0x7DE9, 0x8AC9, - 0x7DEC, 0x96C9, 0x7DEF, 0x88DC, 0x7DF2, 0xE36C, 0x7DF4, 0x97FB, - 0x7DFB, 0xE36B, 0x7E01, 0x898F, 0x7E04, 0x93EA, 0x7E05, 0xE36E, - 0x7E09, 0xE375, 0x7E0A, 0xE36F, 0x7E0B, 0xE376, 0x7E12, 0xE372, - 0x7E1B, 0x949B, 0x7E1E, 0x8EC8, 0x7E1F, 0xE374, 0x7E21, 0xE371, - 0x7E22, 0xE377, 0x7E23, 0xE370, 0x7E26, 0x8F63, 0x7E2B, 0x9644, - 0x7E2E, 0x8F6B, 0x7E31, 0xE373, 0x7E32, 0xE380, 0x7E35, 0xE37B, - 0x7E37, 0xE37E, 0x7E39, 0xE37C, 0x7E3A, 0xE381, 0x7E3B, 0xE37A, - 0x7E3D, 0xE360, 0x7E3E, 0x90D1, 0x7E41, 0x94C9, 0x7E43, 0xE37D, - 0x7E46, 0xE378, 0x7E4A, 0x9140, 0x7E4B, 0x8C71, 0x7E4D, 0x8F4A, - 0x7E52, 0xFB8F, 0x7E54, 0x9044, 0x7E55, 0x9155, 0x7E56, 0xE384, - 0x7E59, 0xE386, 0x7E5A, 0xE387, 0x7E5D, 0xE383, 0x7E5E, 0xE385, - 0x7E66, 0xE379, 0x7E67, 0xE382, 0x7E69, 0xE38A, 0x7E6A, 0xE389, - 0x7E6D, 0x969A, 0x7E70, 0x8C4A, 0x7E79, 0xE388, 0x7E7B, 0xE38C, - 0x7E7C, 0xE38B, 0x7E7D, 0xE38F, 0x7E7F, 0xE391, 0x7E82, 0x8E5B, - 0x7E83, 0xE38D, 0x7E88, 0xE392, 0x7E89, 0xE393, 0x7E8A, 0xFA5C, - 0x7E8C, 0xE394, 0x7E8E, 0xE39A, 0x7E8F, 0x935A, 0x7E90, 0xE396, - 0x7E92, 0xE395, 0x7E93, 0xE397, 0x7E94, 0xE398, 0x7E96, 0xE399, - 0x7E9B, 0xE39B, 0x7E9C, 0xE39C, 0x7F36, 0x8ACA, 0x7F38, 0xE39D, - 0x7F3A, 0xE39E, 0x7F45, 0xE39F, 0x7F47, 0xFB90, 0x7F4C, 0xE3A0, - 0x7F4D, 0xE3A1, 0x7F4E, 0xE3A2, 0x7F50, 0xE3A3, 0x7F51, 0xE3A4, - 0x7F54, 0xE3A6, 0x7F55, 0xE3A5, 0x7F58, 0xE3A7, 0x7F5F, 0xE3A8, - 0x7F60, 0xE3A9, 0x7F67, 0xE3AC, 0x7F68, 0xE3AA, 0x7F69, 0xE3AB, - 0x7F6A, 0x8DDF, 0x7F6B, 0x8C72, 0x7F6E, 0x9275, 0x7F70, 0x94B1, - 0x7F72, 0x8F90, 0x7F75, 0x946C, 0x7F77, 0x94EB, 0x7F78, 0xE3AD, - 0x7F79, 0x9CEB, 0x7F82, 0xE3AE, 0x7F83, 0xE3B0, 0x7F85, 0x9785, - 0x7F86, 0xE3AF, 0x7F87, 0xE3B2, 0x7F88, 0xE3B1, 0x7F8A, 0x9772, - 0x7F8C, 0xE3B3, 0x7F8E, 0x94FC, 0x7F94, 0xE3B4, 0x7F9A, 0xE3B7, - 0x7F9D, 0xE3B6, 0x7F9E, 0xE3B5, 0x7FA1, 0xFB91, 0x7FA3, 0xE3B8, - 0x7FA4, 0x8C51, 0x7FA8, 0x9141, 0x7FA9, 0x8B60, 0x7FAE, 0xE3BC, - 0x7FAF, 0xE3B9, 0x7FB2, 0xE3BA, 0x7FB6, 0xE3BD, 0x7FB8, 0xE3BE, - 0x7FB9, 0xE3BB, 0x7FBD, 0x8948, 0x7FC1, 0x89A5, 0x7FC5, 0xE3C0, - 0x7FC6, 0xE3C1, 0x7FCA, 0xE3C2, 0x7FCC, 0x9782, 0x7FD2, 0x8F4B, - 0x7FD4, 0xE3C4, 0x7FD5, 0xE3C3, 0x7FE0, 0x9089, 0x7FE1, 0xE3C5, - 0x7FE6, 0xE3C6, 0x7FE9, 0xE3C7, 0x7FEB, 0x8AE3, 0x7FF0, 0x8ACB, - 0x7FF3, 0xE3C8, 0x7FF9, 0xE3C9, 0x7FFB, 0x967C, 0x7FFC, 0x9783, - 0x8000, 0x9773, 0x8001, 0x9856, 0x8003, 0x8D6C, 0x8004, 0xE3CC, - 0x8005, 0x8ED2, 0x8006, 0xE3CB, 0x800B, 0xE3CD, 0x800C, 0x8EA7, - 0x8010, 0x91CF, 0x8012, 0xE3CE, 0x8015, 0x8D6B, 0x8017, 0x96D5, - 0x8018, 0xE3CF, 0x8019, 0xE3D0, 0x801C, 0xE3D1, 0x8021, 0xE3D2, - 0x8028, 0xE3D3, 0x8033, 0x8EA8, 0x8036, 0x96EB, 0x803B, 0xE3D5, - 0x803D, 0x925E, 0x803F, 0xE3D4, 0x8046, 0xE3D7, 0x804A, 0xE3D6, - 0x8052, 0xE3D8, 0x8056, 0x90B9, 0x8058, 0xE3D9, 0x805A, 0xE3DA, - 0x805E, 0x95B7, 0x805F, 0xE3DB, 0x8061, 0x918F, 0x8062, 0xE3DC, - 0x8068, 0xE3DD, 0x806F, 0x97FC, 0x8070, 0xE3E0, 0x8072, 0xE3DF, - 0x8073, 0xE3DE, 0x8074, 0x92AE, 0x8076, 0xE3E1, 0x8077, 0x9045, - 0x8079, 0xE3E2, 0x807D, 0xE3E3, 0x807E, 0x9857, 0x807F, 0xE3E4, - 0x8084, 0xE3E5, 0x8085, 0xE3E7, 0x8086, 0xE3E6, 0x8087, 0x94A3, - 0x8089, 0x93F7, 0x808B, 0x985D, 0x808C, 0x94A7, 0x8093, 0xE3E9, - 0x8096, 0x8FD1, 0x8098, 0x9549, 0x809A, 0xE3EA, 0x809B, 0xE3E8, - 0x809D, 0x8ACC, 0x80A1, 0x8CD2, 0x80A2, 0x8E88, 0x80A5, 0x94EC, - 0x80A9, 0x8CA8, 0x80AA, 0x9662, 0x80AC, 0xE3ED, 0x80AD, 0xE3EB, - 0x80AF, 0x8D6D, 0x80B1, 0x8D6E, 0x80B2, 0x88E7, 0x80B4, 0x8DE6, - 0x80BA, 0x9478, 0x80C3, 0x88DD, 0x80C4, 0xE3F2, 0x80C6, 0x925F, - 0x80CC, 0x9477, 0x80CE, 0x91D9, 0x80D6, 0xE3F4, 0x80D9, 0xE3F0, - 0x80DA, 0xE3F3, 0x80DB, 0xE3EE, 0x80DD, 0xE3F1, 0x80DE, 0x9645, - 0x80E1, 0x8CD3, 0x80E4, 0x88FB, 0x80E5, 0xE3EF, 0x80EF, 0xE3F6, - 0x80F1, 0xE3F7, 0x80F4, 0x93B7, 0x80F8, 0x8BB9, 0x80FC, 0xE445, - 0x80FD, 0x945C, 0x8102, 0x8E89, 0x8105, 0x8BBA, 0x8106, 0x90C6, - 0x8107, 0x9865, 0x8108, 0x96AC, 0x8109, 0xE3F5, 0x810A, 0x90D2, - 0x811A, 0x8B72, 0x811B, 0xE3F8, 0x8123, 0xE3FA, 0x8129, 0xE3F9, - 0x812F, 0xE3FB, 0x8131, 0x9245, 0x8133, 0x945D, 0x8139, 0x92AF, - 0x813E, 0xE442, 0x8146, 0xE441, 0x814B, 0xE3FC, 0x814E, 0x9074, - 0x8150, 0x9585, 0x8151, 0xE444, 0x8153, 0xE443, 0x8154, 0x8D6F, - 0x8155, 0x9872, 0x815F, 0xE454, 0x8165, 0xE448, 0x8166, 0xE449, - 0x816B, 0x8EEE, 0x816E, 0xE447, 0x8170, 0x8D98, 0x8171, 0xE446, - 0x8174, 0xE44A, 0x8178, 0x92B0, 0x8179, 0x95A0, 0x817A, 0x9142, - 0x817F, 0x91DA, 0x8180, 0xE44E, 0x8182, 0xE44F, 0x8183, 0xE44B, - 0x8188, 0xE44C, 0x818A, 0xE44D, 0x818F, 0x8D70, 0x8193, 0xE455, - 0x8195, 0xE451, 0x819A, 0x9586, 0x819C, 0x968C, 0x819D, 0x9547, - 0x81A0, 0xE450, 0x81A3, 0xE453, 0x81A4, 0xE452, 0x81A8, 0x9663, - 0x81A9, 0xE456, 0x81B0, 0xE457, 0x81B3, 0x9156, 0x81B5, 0xE458, - 0x81B8, 0xE45A, 0x81BA, 0xE45E, 0x81BD, 0xE45B, 0x81BE, 0xE459, - 0x81BF, 0x945E, 0x81C0, 0xE45C, 0x81C2, 0xE45D, 0x81C6, 0x89B0, - 0x81C8, 0xE464, 0x81C9, 0xE45F, 0x81CD, 0xE460, 0x81D1, 0xE461, - 0x81D3, 0x919F, 0x81D8, 0xE463, 0x81D9, 0xE462, 0x81DA, 0xE465, - 0x81DF, 0xE466, 0x81E0, 0xE467, 0x81E3, 0x9062, 0x81E5, 0x89E7, - 0x81E7, 0xE468, 0x81E8, 0x97D5, 0x81EA, 0x8EA9, 0x81ED, 0x8F4C, - 0x81F3, 0x8E8A, 0x81F4, 0x9276, 0x81FA, 0xE469, 0x81FB, 0xE46A, - 0x81FC, 0x8950, 0x81FE, 0xE46B, 0x8201, 0xE46C, 0x8202, 0xE46D, - 0x8205, 0xE46E, 0x8207, 0xE46F, 0x8208, 0x8BBB, 0x8209, 0x9DA8, - 0x820A, 0xE470, 0x820C, 0x90E3, 0x820D, 0xE471, 0x820E, 0x8EC9, - 0x8210, 0xE472, 0x8212, 0x98AE, 0x8216, 0xE473, 0x8217, 0x95DC, - 0x8218, 0x8ADA, 0x821B, 0x9143, 0x821C, 0x8F77, 0x821E, 0x9591, - 0x821F, 0x8F4D, 0x8229, 0xE474, 0x822A, 0x8D71, 0x822B, 0xE475, - 0x822C, 0x94CA, 0x822E, 0xE484, 0x8233, 0xE477, 0x8235, 0x91C7, - 0x8236, 0x9495, 0x8237, 0x8CBD, 0x8238, 0xE476, 0x8239, 0x9144, - 0x8240, 0xE478, 0x8247, 0x92F8, 0x8258, 0xE47A, 0x8259, 0xE479, - 0x825A, 0xE47C, 0x825D, 0xE47B, 0x825F, 0xE47D, 0x8262, 0xE480, - 0x8264, 0xE47E, 0x8266, 0x8ACD, 0x8268, 0xE481, 0x826A, 0xE482, - 0x826B, 0xE483, 0x826E, 0x8DAF, 0x826F, 0x97C7, 0x8271, 0xE485, - 0x8272, 0x9046, 0x8276, 0x8990, 0x8277, 0xE486, 0x8278, 0xE487, - 0x827E, 0xE488, 0x828B, 0x88F0, 0x828D, 0xE489, 0x8292, 0xE48A, - 0x8299, 0x9587, 0x829D, 0x8EC5, 0x829F, 0xE48C, 0x82A5, 0x8A48, - 0x82A6, 0x88B0, 0x82AB, 0xE48B, 0x82AC, 0xE48E, 0x82AD, 0x946D, - 0x82AF, 0x9063, 0x82B1, 0x89D4, 0x82B3, 0x9646, 0x82B8, 0x8C7C, - 0x82B9, 0x8BDA, 0x82BB, 0xE48D, 0x82BD, 0x89E8, 0x82C5, 0x8AA1, - 0x82D1, 0x8991, 0x82D2, 0xE492, 0x82D3, 0x97E8, 0x82D4, 0x91DB, - 0x82D7, 0x9563, 0x82D9, 0xE49E, 0x82DB, 0x89D5, 0x82DC, 0xE49C, - 0x82DE, 0xE49A, 0x82DF, 0xE491, 0x82E1, 0xE48F, 0x82E3, 0xE490, - 0x82E5, 0x8EE1, 0x82E6, 0x8BEA, 0x82E7, 0x9297, 0x82EB, 0x93CF, - 0x82F1, 0x8970, 0x82F3, 0xE494, 0x82F4, 0xE493, 0x82F9, 0xE499, - 0x82FA, 0xE495, 0x82FB, 0xE498, 0x8301, 0xFB93, 0x8302, 0x96CE, - 0x8303, 0xE497, 0x8304, 0x89D6, 0x8305, 0x8A9D, 0x8306, 0xE49B, - 0x8309, 0xE49D, 0x830E, 0x8C73, 0x8316, 0xE4A1, 0x8317, 0xE4AA, - 0x8318, 0xE4AB, 0x831C, 0x88A9, 0x8323, 0xE4B2, 0x8328, 0x88EF, - 0x832B, 0xE4A9, 0x832F, 0xE4A8, 0x8331, 0xE4A3, 0x8332, 0xE4A2, - 0x8334, 0xE4A0, 0x8335, 0xE49F, 0x8336, 0x9283, 0x8338, 0x91F9, - 0x8339, 0xE4A5, 0x8340, 0xE4A4, 0x8345, 0xE4A7, 0x8349, 0x9190, - 0x834A, 0x8C74, 0x834F, 0x8960, 0x8350, 0xE4A6, 0x8352, 0x8D72, - 0x8358, 0x9191, 0x8362, 0xFB94, 0x8373, 0xE4B8, 0x8375, 0xE4B9, - 0x8377, 0x89D7, 0x837B, 0x89AC, 0x837C, 0xE4B6, 0x837F, 0xFB95, - 0x8385, 0xE4AC, 0x8387, 0xE4B4, 0x8389, 0xE4BB, 0x838A, 0xE4B5, - 0x838E, 0xE4B3, 0x8393, 0xE496, 0x8396, 0xE4B1, 0x839A, 0xE4AD, - 0x839E, 0x8ACE, 0x839F, 0xE4AF, 0x83A0, 0xE4BA, 0x83A2, 0xE4B0, - 0x83A8, 0xE4BC, 0x83AA, 0xE4AE, 0x83AB, 0x949C, 0x83B1, 0x9789, - 0x83B5, 0xE4B7, 0x83BD, 0xE4CD, 0x83C1, 0xE4C5, 0x83C5, 0x909B, - 0x83C7, 0xFB96, 0x83CA, 0x8B65, 0x83CC, 0x8BDB, 0x83CE, 0xE4C0, - 0x83D3, 0x89D9, 0x83D6, 0x8FD2, 0x83D8, 0xE4C3, 0x83DC, 0x8DD8, - 0x83DF, 0x9370, 0x83E0, 0xE4C8, 0x83E9, 0x95EC, 0x83EB, 0xE4BF, - 0x83EF, 0x89D8, 0x83F0, 0x8CD4, 0x83F1, 0x9548, 0x83F2, 0xE4C9, - 0x83F4, 0xE4BD, 0x83F6, 0xFB97, 0x83F7, 0xE4C6, 0x83FB, 0xE4D0, - 0x83FD, 0xE4C1, 0x8403, 0xE4C2, 0x8404, 0x93B8, 0x8407, 0xE4C7, - 0x840B, 0xE4C4, 0x840C, 0x9647, 0x840D, 0xE4CA, 0x840E, 0x88DE, - 0x8413, 0xE4BE, 0x8420, 0xE4CC, 0x8422, 0xE4CB, 0x8429, 0x948B, - 0x842A, 0xE4D2, 0x842C, 0xE4DD, 0x8431, 0x8A9E, 0x8435, 0xE4E0, - 0x8438, 0xE4CE, 0x843C, 0xE4D3, 0x843D, 0x978E, 0x8446, 0xE4DC, - 0x8448, 0xFB98, 0x8449, 0x9774, 0x844E, 0x97A8, 0x8457, 0x9298, - 0x845B, 0x8A8B, 0x8461, 0x9592, 0x8462, 0xE4E2, 0x8463, 0x939F, - 0x8466, 0x88AF, 0x8469, 0xE4DB, 0x846B, 0xE4D7, 0x846C, 0x9192, - 0x846D, 0xE4D1, 0x846E, 0xE4D9, 0x846F, 0xE4DE, 0x8471, 0x944B, - 0x8475, 0x88A8, 0x8477, 0xE4D6, 0x8479, 0xE4DF, 0x847A, 0x9598, - 0x8482, 0xE4DA, 0x8484, 0xE4D5, 0x848B, 0x8FD3, 0x8490, 0x8F4E, - 0x8494, 0x8EAA, 0x8499, 0x96D6, 0x849C, 0x9566, 0x849F, 0xE4E5, - 0x84A1, 0xE4EE, 0x84AD, 0xE4D8, 0x84B2, 0x8A97, 0x84B4, 0xFB99, - 0x84B8, 0x8FF6, 0x84B9, 0xE4E3, 0x84BB, 0xE4E8, 0x84BC, 0x9193, - 0x84BF, 0xE4E4, 0x84C1, 0xE4EB, 0x84C4, 0x927E, 0x84C6, 0xE4EC, - 0x84C9, 0x9775, 0x84CA, 0xE4E1, 0x84CB, 0x8A57, 0x84CD, 0xE4E7, - 0x84D0, 0xE4EA, 0x84D1, 0x96AA, 0x84D6, 0xE4ED, 0x84D9, 0xE4E6, - 0x84DA, 0xE4E9, 0x84DC, 0xFA60, 0x84EC, 0x9648, 0x84EE, 0x9840, - 0x84F4, 0xE4F1, 0x84FC, 0xE4F8, 0x84FF, 0xE4F0, 0x8500, 0x8EC1, - 0x8506, 0xE4CF, 0x8511, 0x95CC, 0x8513, 0x96A0, 0x8514, 0xE4F7, - 0x8515, 0xE4F6, 0x8517, 0xE4F2, 0x8518, 0xE4F3, 0x851A, 0x8955, - 0x851F, 0xE4F5, 0x8521, 0xE4EF, 0x8526, 0x92D3, 0x852C, 0xE4F4, - 0x852D, 0x88FC, 0x8535, 0x91A0, 0x853D, 0x95C1, 0x8540, 0xE4F9, - 0x8541, 0xE540, 0x8543, 0x94D7, 0x8548, 0xE4FC, 0x8549, 0x8FD4, - 0x854A, 0x8EC7, 0x854B, 0xE542, 0x854E, 0x8BBC, 0x8553, 0xFB9A, - 0x8555, 0xE543, 0x8557, 0x9599, 0x8558, 0xE4FB, 0x8559, 0xFB9B, - 0x855A, 0xE4D4, 0x8563, 0xE4FA, 0x8568, 0x986E, 0x8569, 0x93A0, - 0x856A, 0x9593, 0x856B, 0xFB9C, 0x856D, 0xE54A, 0x8577, 0xE550, - 0x857E, 0xE551, 0x8580, 0xE544, 0x8584, 0x9496, 0x8587, 0xE54E, - 0x8588, 0xE546, 0x858A, 0xE548, 0x8590, 0xE552, 0x8591, 0xE547, - 0x8594, 0xE54B, 0x8597, 0x8992, 0x8599, 0x93E3, 0x859B, 0xE54C, - 0x859C, 0xE54F, 0x85A4, 0xE545, 0x85A6, 0x9145, 0x85A8, 0xE549, - 0x85A9, 0x8E46, 0x85AA, 0x9064, 0x85AB, 0x8C4F, 0x85AC, 0x96F2, - 0x85AE, 0x96F7, 0x85AF, 0x8F92, 0x85B0, 0xFB9E, 0x85B9, 0xE556, - 0x85BA, 0xE554, 0x85C1, 0x986D, 0x85C9, 0xE553, 0x85CD, 0x9795, - 0x85CF, 0xE555, 0x85D0, 0xE557, 0x85D5, 0xE558, 0x85DC, 0xE55B, - 0x85DD, 0xE559, 0x85E4, 0x93A1, 0x85E5, 0xE55A, 0x85E9, 0x94CB, - 0x85EA, 0xE54D, 0x85F7, 0x8F93, 0x85F9, 0xE55C, 0x85FA, 0xE561, - 0x85FB, 0x9194, 0x85FE, 0xE560, 0x8602, 0xE541, 0x8606, 0xE562, - 0x8607, 0x9168, 0x860A, 0xE55D, 0x860B, 0xE55F, 0x8613, 0xE55E, - 0x8616, 0x9F50, 0x8617, 0x9F41, 0x861A, 0xE564, 0x8622, 0xE563, - 0x862D, 0x9796, 0x862F, 0xE1BA, 0x8630, 0xE565, 0x863F, 0xE566, - 0x864D, 0xE567, 0x864E, 0x8CD5, 0x8650, 0x8B73, 0x8654, 0xE569, - 0x8655, 0x997C, 0x865A, 0x8B95, 0x865C, 0x97B8, 0x865E, 0x8BF1, - 0x865F, 0xE56A, 0x8667, 0xE56B, 0x866B, 0x928E, 0x8671, 0xE56C, - 0x8679, 0x93F8, 0x867B, 0x88B8, 0x868A, 0x89E1, 0x868B, 0xE571, - 0x868C, 0xE572, 0x8693, 0xE56D, 0x8695, 0x8E5C, 0x86A3, 0xE56E, - 0x86A4, 0x9461, 0x86A9, 0xE56F, 0x86AA, 0xE570, 0x86AB, 0xE57A, - 0x86AF, 0xE574, 0x86B0, 0xE577, 0x86B6, 0xE573, 0x86C4, 0xE575, - 0x86C6, 0xE576, 0x86C7, 0x8ED6, 0x86C9, 0xE578, 0x86CB, 0x9260, - 0x86CD, 0x8C75, 0x86CE, 0x8A61, 0x86D4, 0xE57B, 0x86D9, 0x8A5E, - 0x86DB, 0xE581, 0x86DE, 0xE57C, 0x86DF, 0xE580, 0x86E4, 0x94B8, - 0x86E9, 0xE57D, 0x86EC, 0xE57E, 0x86ED, 0x9567, 0x86EE, 0x94D8, - 0x86EF, 0xE582, 0x86F8, 0x91FB, 0x86F9, 0xE58C, 0x86FB, 0xE588, - 0x86FE, 0x89E9, 0x8700, 0xE586, 0x8702, 0x9649, 0x8703, 0xE587, - 0x8706, 0xE584, 0x8708, 0xE585, 0x8709, 0xE58A, 0x870A, 0xE58D, - 0x870D, 0xE58B, 0x8711, 0xE589, 0x8712, 0xE583, 0x8718, 0x9277, - 0x871A, 0xE594, 0x871C, 0x96A8, 0x8725, 0xE592, 0x8729, 0xE593, - 0x8734, 0xE58E, 0x8737, 0xE590, 0x873B, 0xE591, 0x873F, 0xE58F, - 0x8749, 0x90E4, 0x874B, 0x9858, 0x874C, 0xE598, 0x874E, 0xE599, - 0x8753, 0xE59F, 0x8755, 0x9049, 0x8757, 0xE59B, 0x8759, 0xE59E, - 0x875F, 0xE596, 0x8760, 0xE595, 0x8763, 0xE5A0, 0x8766, 0x89DA, - 0x8768, 0xE59C, 0x876A, 0xE5A1, 0x876E, 0xE59D, 0x8774, 0xE59A, - 0x8776, 0x92B1, 0x8778, 0xE597, 0x877F, 0x9488, 0x8782, 0xE5A5, - 0x878D, 0x975A, 0x879F, 0xE5A4, 0x87A2, 0xE5A3, 0x87AB, 0xE5AC, - 0x87AF, 0xE5A6, 0x87B3, 0xE5AE, 0x87BA, 0x9786, 0x87BB, 0xE5B1, - 0x87BD, 0xE5A8, 0x87C0, 0xE5A9, 0x87C4, 0xE5AD, 0x87C6, 0xE5B0, - 0x87C7, 0xE5AF, 0x87CB, 0xE5A7, 0x87D0, 0xE5AA, 0x87D2, 0xE5BB, - 0x87E0, 0xE5B4, 0x87EF, 0xE5B2, 0x87F2, 0xE5B3, 0x87F6, 0xE5B8, - 0x87F7, 0xE5B9, 0x87F9, 0x8A49, 0x87FB, 0x8B61, 0x87FE, 0xE5B7, - 0x8805, 0xE5A2, 0x8807, 0xFBA1, 0x880D, 0xE5B6, 0x880E, 0xE5BA, - 0x880F, 0xE5B5, 0x8811, 0xE5BC, 0x8815, 0xE5BE, 0x8816, 0xE5BD, - 0x8821, 0xE5C0, 0x8822, 0xE5BF, 0x8823, 0xE579, 0x8827, 0xE5C4, - 0x8831, 0xE5C1, 0x8836, 0xE5C2, 0x8839, 0xE5C3, 0x883B, 0xE5C5, - 0x8840, 0x8C8C, 0x8842, 0xE5C7, 0x8844, 0xE5C6, 0x8846, 0x8F4F, - 0x884C, 0x8D73, 0x884D, 0x9FA5, 0x8852, 0xE5C8, 0x8853, 0x8F70, - 0x8857, 0x8A58, 0x8859, 0xE5C9, 0x885B, 0x8971, 0x885D, 0x8FD5, - 0x885E, 0xE5CA, 0x8861, 0x8D74, 0x8862, 0xE5CB, 0x8863, 0x88DF, - 0x8868, 0x955C, 0x886B, 0xE5CC, 0x8870, 0x908A, 0x8872, 0xE5D3, - 0x8875, 0xE5D0, 0x8877, 0x928F, 0x887D, 0xE5D1, 0x887E, 0xE5CE, - 0x887F, 0x8BDC, 0x8881, 0xE5CD, 0x8882, 0xE5D4, 0x8888, 0x8C55, - 0x888B, 0x91DC, 0x888D, 0xE5DA, 0x8892, 0xE5D6, 0x8896, 0x91B3, - 0x8897, 0xE5D5, 0x8899, 0xE5D8, 0x889E, 0xE5CF, 0x88A2, 0xE5D9, - 0x88A4, 0xE5DB, 0x88AB, 0x94ED, 0x88AE, 0xE5D7, 0x88B0, 0xE5DC, - 0x88B1, 0xE5DE, 0x88B4, 0x8CD1, 0x88B5, 0xE5D2, 0x88B7, 0x88BF, - 0x88BF, 0xE5DD, 0x88C1, 0x8DD9, 0x88C2, 0x97F4, 0x88C3, 0xE5DF, - 0x88C4, 0xE5E0, 0x88C5, 0x9195, 0x88CF, 0x97A0, 0x88D4, 0xE5E1, - 0x88D5, 0x9754, 0x88D8, 0xE5E2, 0x88D9, 0xE5E3, 0x88DC, 0x95E2, - 0x88DD, 0xE5E4, 0x88DF, 0x8DBE, 0x88E1, 0x97A1, 0x88E8, 0xE5E9, - 0x88F2, 0xE5EA, 0x88F3, 0x8FD6, 0x88F4, 0xE5E8, 0x88F5, 0xFBA2, - 0x88F8, 0x9787, 0x88F9, 0xE5E5, 0x88FC, 0xE5E7, 0x88FD, 0x90BB, - 0x88FE, 0x909E, 0x8902, 0xE5E6, 0x8904, 0xE5EB, 0x8907, 0x95A1, - 0x890A, 0xE5ED, 0x890C, 0xE5EC, 0x8910, 0x8A8C, 0x8912, 0x964A, - 0x8913, 0xE5EE, 0x891C, 0xFA5D, 0x891D, 0xE5FA, 0x891E, 0xE5F0, - 0x8925, 0xE5F1, 0x892A, 0xE5F2, 0x892B, 0xE5F3, 0x8936, 0xE5F7, - 0x8938, 0xE5F8, 0x893B, 0xE5F6, 0x8941, 0xE5F4, 0x8943, 0xE5EF, - 0x8944, 0xE5F5, 0x894C, 0xE5F9, 0x894D, 0xE8B5, 0x8956, 0x89A6, - 0x895E, 0xE5FC, 0x895F, 0x8BDD, 0x8960, 0xE5FB, 0x8964, 0xE641, - 0x8966, 0xE640, 0x896A, 0xE643, 0x896D, 0xE642, 0x896F, 0xE644, - 0x8972, 0x8F50, 0x8974, 0xE645, 0x8977, 0xE646, 0x897E, 0xE647, - 0x897F, 0x90BC, 0x8981, 0x9776, 0x8983, 0xE648, 0x8986, 0x95A2, - 0x8987, 0x9465, 0x8988, 0xE649, 0x898A, 0xE64A, 0x898B, 0x8CA9, - 0x898F, 0x8B4B, 0x8993, 0xE64B, 0x8996, 0x8E8B, 0x8997, 0x9460, - 0x8998, 0xE64C, 0x899A, 0x8A6F, 0x89A1, 0xE64D, 0x89A6, 0xE64F, - 0x89A7, 0x9797, 0x89A9, 0xE64E, 0x89AA, 0x9065, 0x89AC, 0xE650, - 0x89AF, 0xE651, 0x89B2, 0xE652, 0x89B3, 0x8ACF, 0x89BA, 0xE653, - 0x89BD, 0xE654, 0x89BF, 0xE655, 0x89C0, 0xE656, 0x89D2, 0x8A70, - 0x89DA, 0xE657, 0x89DC, 0xE658, 0x89DD, 0xE659, 0x89E3, 0x89F0, - 0x89E6, 0x9047, 0x89E7, 0xE65A, 0x89F4, 0xE65B, 0x89F8, 0xE65C, - 0x8A00, 0x8CBE, 0x8A02, 0x92F9, 0x8A03, 0xE65D, 0x8A08, 0x8C76, - 0x8A0A, 0x9075, 0x8A0C, 0xE660, 0x8A0E, 0x93A2, 0x8A10, 0xE65F, - 0x8A12, 0xFBA3, 0x8A13, 0x8C50, 0x8A16, 0xE65E, 0x8A17, 0x91F5, - 0x8A18, 0x8B4C, 0x8A1B, 0xE661, 0x8A1D, 0xE662, 0x8A1F, 0x8FD7, - 0x8A23, 0x8C8D, 0x8A25, 0xE663, 0x8A2A, 0x964B, 0x8A2D, 0x90DD, - 0x8A31, 0x8B96, 0x8A33, 0x96F3, 0x8A34, 0x9169, 0x8A36, 0xE664, - 0x8A37, 0xFBA4, 0x8A3A, 0x9066, 0x8A3B, 0x9290, 0x8A3C, 0x8FD8, - 0x8A41, 0xE665, 0x8A46, 0xE668, 0x8A48, 0xE669, 0x8A50, 0x8DBC, - 0x8A51, 0x91C0, 0x8A52, 0xE667, 0x8A54, 0x8FD9, 0x8A55, 0x955D, - 0x8A5B, 0xE666, 0x8A5E, 0x8E8C, 0x8A60, 0x8972, 0x8A62, 0xE66D, - 0x8A63, 0x8C77, 0x8A66, 0x8E8E, 0x8A69, 0x8E8D, 0x8A6B, 0x986C, - 0x8A6C, 0xE66C, 0x8A6D, 0xE66B, 0x8A6E, 0x9146, 0x8A70, 0x8B6C, - 0x8A71, 0x9862, 0x8A72, 0x8A59, 0x8A73, 0x8FDA, 0x8A79, 0xFBA5, - 0x8A7C, 0xE66A, 0x8A82, 0xE66F, 0x8A84, 0xE670, 0x8A85, 0xE66E, - 0x8A87, 0x8CD6, 0x8A89, 0x975F, 0x8A8C, 0x8E8F, 0x8A8D, 0x9446, - 0x8A91, 0xE673, 0x8A93, 0x90BE, 0x8A95, 0x9261, 0x8A98, 0x9755, - 0x8A9A, 0xE676, 0x8A9E, 0x8CEA, 0x8AA0, 0x90BD, 0x8AA1, 0xE672, - 0x8AA3, 0xE677, 0x8AA4, 0x8CEB, 0x8AA5, 0xE674, 0x8AA6, 0xE675, - 0x8AA7, 0xFBA6, 0x8AA8, 0xE671, 0x8AAC, 0x90E0, 0x8AAD, 0x93C7, - 0x8AB0, 0x924E, 0x8AB2, 0x89DB, 0x8AB9, 0x94EE, 0x8ABC, 0x8B62, - 0x8ABE, 0xFBA7, 0x8ABF, 0x92B2, 0x8AC2, 0xE67A, 0x8AC4, 0xE678, - 0x8AC7, 0x926B, 0x8ACB, 0x90BF, 0x8ACC, 0x8AD0, 0x8ACD, 0xE679, - 0x8ACF, 0x907A, 0x8AD2, 0x97C8, 0x8AD6, 0x985F, 0x8ADA, 0xE67B, - 0x8ADB, 0xE687, 0x8ADC, 0x92B3, 0x8ADE, 0xE686, 0x8ADF, 0xFBA8, - 0x8AE0, 0xE683, 0x8AE1, 0xE68B, 0x8AE2, 0xE684, 0x8AE4, 0xE680, - 0x8AE6, 0x92FA, 0x8AE7, 0xE67E, 0x8AEB, 0xE67C, 0x8AED, 0x9740, - 0x8AEE, 0x8E90, 0x8AF1, 0xE681, 0x8AF3, 0xE67D, 0x8AF6, 0xFBAA, - 0x8AF7, 0xE685, 0x8AF8, 0x8F94, 0x8AFA, 0x8CBF, 0x8AFE, 0x91F8, - 0x8B00, 0x9664, 0x8B01, 0x8979, 0x8B02, 0x88E0, 0x8B04, 0x93A3, - 0x8B07, 0xE689, 0x8B0C, 0xE688, 0x8B0E, 0x93E4, 0x8B10, 0xE68D, - 0x8B14, 0xE682, 0x8B16, 0xE68C, 0x8B17, 0xE68E, 0x8B19, 0x8CAA, - 0x8B1A, 0xE68A, 0x8B1B, 0x8D75, 0x8B1D, 0x8ED3, 0x8B20, 0xE68F, - 0x8B21, 0x9777, 0x8B26, 0xE692, 0x8B28, 0xE695, 0x8B2B, 0xE693, - 0x8B2C, 0x9554, 0x8B33, 0xE690, 0x8B39, 0x8BDE, 0x8B3E, 0xE694, - 0x8B41, 0xE696, 0x8B49, 0xE69A, 0x8B4C, 0xE697, 0x8B4E, 0xE699, - 0x8B4F, 0xE698, 0x8B53, 0xFBAB, 0x8B56, 0xE69B, 0x8B58, 0x8EAF, - 0x8B5A, 0xE69D, 0x8B5B, 0xE69C, 0x8B5C, 0x9588, 0x8B5F, 0xE69F, - 0x8B66, 0x8C78, 0x8B6B, 0xE69E, 0x8B6C, 0xE6A0, 0x8B6F, 0xE6A1, - 0x8B70, 0x8B63, 0x8B71, 0xE3BF, 0x8B72, 0x8FF7, 0x8B74, 0xE6A2, - 0x8B77, 0x8CEC, 0x8B7D, 0xE6A3, 0x8B7F, 0xFBAC, 0x8B80, 0xE6A4, - 0x8B83, 0x8E5D, 0x8B8A, 0x9DCC, 0x8B8C, 0xE6A5, 0x8B8E, 0xE6A6, - 0x8B90, 0x8F51, 0x8B92, 0xE6A7, 0x8B93, 0xE6A8, 0x8B96, 0xE6A9, - 0x8B99, 0xE6AA, 0x8B9A, 0xE6AB, 0x8C37, 0x924A, 0x8C3A, 0xE6AC, - 0x8C3F, 0xE6AE, 0x8C41, 0xE6AD, 0x8C46, 0x93A4, 0x8C48, 0xE6AF, - 0x8C4A, 0x964C, 0x8C4C, 0xE6B0, 0x8C4E, 0xE6B1, 0x8C50, 0xE6B2, - 0x8C55, 0xE6B3, 0x8C5A, 0x93D8, 0x8C61, 0x8FDB, 0x8C62, 0xE6B4, - 0x8C6A, 0x8D8B, 0x8C6B, 0x98AC, 0x8C6C, 0xE6B5, 0x8C78, 0xE6B6, - 0x8C79, 0x955E, 0x8C7A, 0xE6B7, 0x8C7C, 0xE6BF, 0x8C82, 0xE6B8, - 0x8C85, 0xE6BA, 0x8C89, 0xE6B9, 0x8C8A, 0xE6BB, 0x8C8C, 0x9665, - 0x8C8D, 0xE6BC, 0x8C8E, 0xE6BD, 0x8C94, 0xE6BE, 0x8C98, 0xE6C0, - 0x8C9D, 0x8A4C, 0x8C9E, 0x92E5, 0x8CA0, 0x9589, 0x8CA1, 0x8DE0, - 0x8CA2, 0x8D76, 0x8CA7, 0x956E, 0x8CA8, 0x89DD, 0x8CA9, 0x94CC, - 0x8CAA, 0xE6C3, 0x8CAB, 0x8AD1, 0x8CAC, 0x90D3, 0x8CAD, 0xE6C2, - 0x8CAE, 0xE6C7, 0x8CAF, 0x9299, 0x8CB0, 0x96E1, 0x8CB2, 0xE6C5, - 0x8CB3, 0xE6C6, 0x8CB4, 0x8B4D, 0x8CB6, 0xE6C8, 0x8CB7, 0x9483, - 0x8CB8, 0x91DD, 0x8CBB, 0x94EF, 0x8CBC, 0x935C, 0x8CBD, 0xE6C4, - 0x8CBF, 0x9666, 0x8CC0, 0x89EA, 0x8CC1, 0xE6CA, 0x8CC2, 0x9847, - 0x8CC3, 0x92C0, 0x8CC4, 0x9864, 0x8CC7, 0x8E91, 0x8CC8, 0xE6C9, - 0x8CCA, 0x91AF, 0x8CCD, 0xE6DA, 0x8CCE, 0x9147, 0x8CD1, 0x93F6, - 0x8CD3, 0x956F, 0x8CDA, 0xE6CD, 0x8CDB, 0x8E5E, 0x8CDC, 0x8E92, - 0x8CDE, 0x8FDC, 0x8CE0, 0x9485, 0x8CE2, 0x8CAB, 0x8CE3, 0xE6CC, - 0x8CE4, 0xE6CB, 0x8CE6, 0x958A, 0x8CEA, 0x8EBF, 0x8CED, 0x9371, - 0x8CF0, 0xFBAD, 0x8CF4, 0xFBAE, 0x8CFA, 0xE6CF, 0x8CFB, 0xE6D0, - 0x8CFC, 0x8D77, 0x8CFD, 0xE6CE, 0x8D04, 0xE6D1, 0x8D05, 0xE6D2, - 0x8D07, 0xE6D4, 0x8D08, 0x91A1, 0x8D0A, 0xE6D3, 0x8D0B, 0x8AE4, - 0x8D0D, 0xE6D6, 0x8D0F, 0xE6D5, 0x8D10, 0xE6D7, 0x8D12, 0xFBAF, - 0x8D13, 0xE6D9, 0x8D14, 0xE6DB, 0x8D16, 0xE6DC, 0x8D64, 0x90D4, - 0x8D66, 0x8ECD, 0x8D67, 0xE6DD, 0x8D6B, 0x8A71, 0x8D6D, 0xE6DE, - 0x8D70, 0x9196, 0x8D71, 0xE6DF, 0x8D73, 0xE6E0, 0x8D74, 0x958B, - 0x8D76, 0xFBB0, 0x8D77, 0x8B4E, 0x8D81, 0xE6E1, 0x8D85, 0x92B4, - 0x8D8A, 0x897A, 0x8D99, 0xE6E2, 0x8DA3, 0x8EEF, 0x8DA8, 0x9096, - 0x8DB3, 0x91AB, 0x8DBA, 0xE6E5, 0x8DBE, 0xE6E4, 0x8DC2, 0xE6E3, - 0x8DCB, 0xE6EB, 0x8DCC, 0xE6E9, 0x8DCF, 0xE6E6, 0x8DD6, 0xE6E8, - 0x8DDA, 0xE6E7, 0x8DDB, 0xE6EA, 0x8DDD, 0x8B97, 0x8DDF, 0xE6EE, - 0x8DE1, 0x90D5, 0x8DE3, 0xE6EF, 0x8DE8, 0x8CD7, 0x8DEA, 0xE6EC, - 0x8DEB, 0xE6ED, 0x8DEF, 0x9848, 0x8DF3, 0x92B5, 0x8DF5, 0x9148, - 0x8DFC, 0xE6F0, 0x8DFF, 0xE6F3, 0x8E08, 0xE6F1, 0x8E09, 0xE6F2, - 0x8E0A, 0x9778, 0x8E0F, 0x93A5, 0x8E10, 0xE6F6, 0x8E1D, 0xE6F4, - 0x8E1E, 0xE6F5, 0x8E1F, 0xE6F7, 0x8E2A, 0xE748, 0x8E30, 0xE6FA, - 0x8E34, 0xE6FB, 0x8E35, 0xE6F9, 0x8E42, 0xE6F8, 0x8E44, 0x92FB, - 0x8E47, 0xE740, 0x8E48, 0xE744, 0x8E49, 0xE741, 0x8E4A, 0xE6FC, - 0x8E4C, 0xE742, 0x8E50, 0xE743, 0x8E55, 0xE74A, 0x8E59, 0xE745, - 0x8E5F, 0x90D6, 0x8E60, 0xE747, 0x8E63, 0xE749, 0x8E64, 0xE746, - 0x8E72, 0xE74C, 0x8E74, 0x8F52, 0x8E76, 0xE74B, 0x8E7C, 0xE74D, - 0x8E81, 0xE74E, 0x8E84, 0xE751, 0x8E85, 0xE750, 0x8E87, 0xE74F, - 0x8E8A, 0xE753, 0x8E8B, 0xE752, 0x8E8D, 0x96F4, 0x8E91, 0xE755, - 0x8E93, 0xE754, 0x8E94, 0xE756, 0x8E99, 0xE757, 0x8EA1, 0xE759, - 0x8EAA, 0xE758, 0x8EAB, 0x9067, 0x8EAC, 0xE75A, 0x8EAF, 0x8BEB, - 0x8EB0, 0xE75B, 0x8EB1, 0xE75D, 0x8EBE, 0xE75E, 0x8EC5, 0xE75F, - 0x8EC6, 0xE75C, 0x8EC8, 0xE760, 0x8ECA, 0x8ED4, 0x8ECB, 0xE761, - 0x8ECC, 0x8B4F, 0x8ECD, 0x8C52, 0x8ECF, 0xFBB2, 0x8ED2, 0x8CAC, - 0x8EDB, 0xE762, 0x8EDF, 0x93EE, 0x8EE2, 0x935D, 0x8EE3, 0xE763, - 0x8EEB, 0xE766, 0x8EF8, 0x8EB2, 0x8EFB, 0xE765, 0x8EFC, 0xE764, - 0x8EFD, 0x8C79, 0x8EFE, 0xE767, 0x8F03, 0x8A72, 0x8F05, 0xE769, - 0x8F09, 0x8DDA, 0x8F0A, 0xE768, 0x8F0C, 0xE771, 0x8F12, 0xE76B, - 0x8F13, 0xE76D, 0x8F14, 0x95E3, 0x8F15, 0xE76A, 0x8F19, 0xE76C, - 0x8F1B, 0xE770, 0x8F1C, 0xE76E, 0x8F1D, 0x8B50, 0x8F1F, 0xE76F, - 0x8F26, 0xE772, 0x8F29, 0x9479, 0x8F2A, 0x97D6, 0x8F2F, 0x8F53, - 0x8F33, 0xE773, 0x8F38, 0x9741, 0x8F39, 0xE775, 0x8F3B, 0xE774, - 0x8F3E, 0xE778, 0x8F3F, 0x9760, 0x8F42, 0xE777, 0x8F44, 0x8A8D, - 0x8F45, 0xE776, 0x8F46, 0xE77B, 0x8F49, 0xE77A, 0x8F4C, 0xE779, - 0x8F4D, 0x9351, 0x8F4E, 0xE77C, 0x8F57, 0xE77D, 0x8F5C, 0xE77E, - 0x8F5F, 0x8D8C, 0x8F61, 0x8C44, 0x8F62, 0xE780, 0x8F63, 0xE781, - 0x8F64, 0xE782, 0x8F9B, 0x9068, 0x8F9C, 0xE783, 0x8F9E, 0x8EAB, - 0x8F9F, 0xE784, 0x8FA3, 0xE785, 0x8FA7, 0x999F, 0x8FA8, 0x999E, - 0x8FAD, 0xE786, 0x8FAE, 0xE390, 0x8FAF, 0xE787, 0x8FB0, 0x9243, - 0x8FB1, 0x904A, 0x8FB2, 0x945F, 0x8FB7, 0xE788, 0x8FBA, 0x95D3, - 0x8FBB, 0x92D2, 0x8FBC, 0x8D9E, 0x8FBF, 0x9248, 0x8FC2, 0x8949, - 0x8FC4, 0x9698, 0x8FC5, 0x9076, 0x8FCE, 0x8C7D, 0x8FD1, 0x8BDF, - 0x8FD4, 0x95D4, 0x8FDA, 0xE789, 0x8FE2, 0xE78B, 0x8FE5, 0xE78A, - 0x8FE6, 0x89DE, 0x8FE9, 0x93F4, 0x8FEA, 0xE78C, 0x8FEB, 0x9497, - 0x8FED, 0x9352, 0x8FEF, 0xE78D, 0x8FF0, 0x8F71, 0x8FF4, 0xE78F, - 0x8FF7, 0x96C0, 0x8FF8, 0xE79E, 0x8FF9, 0xE791, 0x8FFA, 0xE792, - 0x8FFD, 0x92C7, 0x9000, 0x91DE, 0x9001, 0x9197, 0x9003, 0x93A6, - 0x9005, 0xE790, 0x9006, 0x8B74, 0x900B, 0xE799, 0x900D, 0xE796, - 0x900E, 0xE7A3, 0x900F, 0x93A7, 0x9010, 0x9280, 0x9011, 0xE793, - 0x9013, 0x92FC, 0x9014, 0x9372, 0x9015, 0xE794, 0x9016, 0xE798, - 0x9017, 0x9080, 0x9019, 0x9487, 0x901A, 0x92CA, 0x901D, 0x90C0, - 0x901E, 0xE797, 0x901F, 0x91AC, 0x9020, 0x91A2, 0x9021, 0xE795, - 0x9022, 0x88A7, 0x9023, 0x9841, 0x9027, 0xE79A, 0x902E, 0x91DF, - 0x9031, 0x8F54, 0x9032, 0x9069, 0x9035, 0xE79C, 0x9036, 0xE79B, - 0x9038, 0x88ED, 0x9039, 0xE79D, 0x903C, 0x954E, 0x903E, 0xE7A5, - 0x9041, 0x93D9, 0x9042, 0x908B, 0x9045, 0x9278, 0x9047, 0x8BF6, - 0x9049, 0xE7A4, 0x904A, 0x9756, 0x904B, 0x895E, 0x904D, 0x95D5, - 0x904E, 0x89DF, 0x904F, 0xE79F, 0x9050, 0xE7A0, 0x9051, 0xE7A1, - 0x9052, 0xE7A2, 0x9053, 0x93B9, 0x9054, 0x9242, 0x9055, 0x88E1, - 0x9056, 0xE7A6, 0x9058, 0xE7A7, 0x9059, 0xEAA1, 0x905C, 0x91BB, - 0x905E, 0xE7A8, 0x9060, 0x8993, 0x9061, 0x916B, 0x9063, 0x8CAD, - 0x9065, 0x9779, 0x9067, 0xFBB5, 0x9068, 0xE7A9, 0x9069, 0x934B, - 0x906D, 0x9198, 0x906E, 0x8ED5, 0x906F, 0xE7AA, 0x9072, 0xE7AD, - 0x9075, 0x8F85, 0x9076, 0xE7AB, 0x9077, 0x914A, 0x9078, 0x9149, - 0x907A, 0x88E2, 0x907C, 0x97C9, 0x907D, 0xE7AF, 0x907F, 0x94F0, - 0x9080, 0xE7B1, 0x9081, 0xE7B0, 0x9082, 0xE7AE, 0x9083, 0xE284, - 0x9084, 0x8AD2, 0x9087, 0xE78E, 0x9089, 0xE7B3, 0x908A, 0xE7B2, - 0x908F, 0xE7B4, 0x9091, 0x9757, 0x90A3, 0x93DF, 0x90A6, 0x964D, - 0x90A8, 0xE7B5, 0x90AA, 0x8ED7, 0x90AF, 0xE7B6, 0x90B1, 0xE7B7, - 0x90B5, 0xE7B8, 0x90B8, 0x9340, 0x90C1, 0x88E8, 0x90CA, 0x8D78, - 0x90CE, 0x9859, 0x90DB, 0xE7BC, 0x90DE, 0xFBB6, 0x90E1, 0x8C53, - 0x90E2, 0xE7B9, 0x90E4, 0xE7BA, 0x90E8, 0x9594, 0x90ED, 0x8A73, - 0x90F5, 0x9758, 0x90F7, 0x8BBD, 0x90FD, 0x9373, 0x9102, 0xE7BD, - 0x9112, 0xE7BE, 0x9115, 0xFBB8, 0x9119, 0xE7BF, 0x9127, 0xFBB9, - 0x912D, 0x9341, 0x9130, 0xE7C1, 0x9132, 0xE7C0, 0x9149, 0x93D1, - 0x914A, 0xE7C2, 0x914B, 0x8F55, 0x914C, 0x8EDE, 0x914D, 0x947A, - 0x914E, 0x9291, 0x9152, 0x8EF0, 0x9154, 0x908C, 0x9156, 0xE7C3, - 0x9158, 0xE7C4, 0x9162, 0x907C, 0x9163, 0xE7C5, 0x9165, 0xE7C6, - 0x9169, 0xE7C7, 0x916A, 0x978F, 0x916C, 0x8F56, 0x9172, 0xE7C9, - 0x9173, 0xE7C8, 0x9175, 0x8D79, 0x9177, 0x8D93, 0x9178, 0x8E5F, - 0x9182, 0xE7CC, 0x9187, 0x8F86, 0x9189, 0xE7CB, 0x918B, 0xE7CA, - 0x918D, 0x91E7, 0x9190, 0x8CED, 0x9192, 0x90C1, 0x9197, 0x94AE, - 0x919C, 0x8F58, 0x91A2, 0xE7CD, 0x91A4, 0x8FDD, 0x91AA, 0xE7D0, - 0x91AB, 0xE7CE, 0x91AF, 0xE7CF, 0x91B4, 0xE7D2, 0x91B5, 0xE7D1, - 0x91B8, 0x8FF8, 0x91BA, 0xE7D3, 0x91C0, 0xE7D4, 0x91C1, 0xE7D5, - 0x91C6, 0x94CE, 0x91C7, 0x8DD1, 0x91C8, 0x8EDF, 0x91C9, 0xE7D6, - 0x91CB, 0xE7D7, 0x91CC, 0x97A2, 0x91CD, 0x8F64, 0x91CE, 0x96EC, - 0x91CF, 0x97CA, 0x91D0, 0xE7D8, 0x91D1, 0x8BE0, 0x91D6, 0xE7D9, - 0x91D7, 0xFBBB, 0x91D8, 0x9342, 0x91DA, 0xFBBA, 0x91DB, 0xE7DC, - 0x91DC, 0x8A98, 0x91DD, 0x906A, 0x91DE, 0xFBBC, 0x91DF, 0xE7DA, - 0x91E1, 0xE7DB, 0x91E3, 0x92DE, 0x91E4, 0xFBBF, 0x91E5, 0xFBC0, - 0x91E6, 0x9674, 0x91E7, 0x8BFA, 0x91ED, 0xFBBD, 0x91EE, 0xFBBE, - 0x91F5, 0xE7DE, 0x91F6, 0xE7DF, 0x91FC, 0xE7DD, 0x91FF, 0xE7E1, - 0x9206, 0xFBC1, 0x920A, 0xFBC3, 0x920D, 0x93DD, 0x920E, 0x8A62, - 0x9210, 0xFBC2, 0x9211, 0xE7E5, 0x9214, 0xE7E2, 0x9215, 0xE7E4, - 0x921E, 0xE7E0, 0x9229, 0xE86E, 0x922C, 0xE7E3, 0x9234, 0x97E9, - 0x9237, 0x8CD8, 0x9239, 0xFBCA, 0x923A, 0xFBC4, 0x923C, 0xFBC6, - 0x923F, 0xE7ED, 0x9240, 0xFBC5, 0x9244, 0x9353, 0x9245, 0xE7E8, - 0x9248, 0xE7EB, 0x9249, 0xE7E9, 0x924B, 0xE7EE, 0x924E, 0xFBC7, - 0x9250, 0xE7EF, 0x9251, 0xFBC9, 0x9257, 0xE7E7, 0x9259, 0xFBC8, - 0x925A, 0xE7F4, 0x925B, 0x8994, 0x925E, 0xE7E6, 0x9262, 0x94AB, - 0x9264, 0xE7EA, 0x9266, 0x8FDE, 0x9267, 0xFBCB, 0x9271, 0x8D7A, - 0x9277, 0xFBCD, 0x9278, 0xFBCE, 0x927E, 0x9667, 0x9280, 0x8BE2, - 0x9283, 0x8F65, 0x9285, 0x93BA, 0x9288, 0xFA5F, 0x9291, 0x914C, - 0x9293, 0xE7F2, 0x9295, 0xE7EC, 0x9296, 0xE7F1, 0x9298, 0x96C1, - 0x929A, 0x92B6, 0x929B, 0xE7F3, 0x929C, 0xE7F0, 0x92A7, 0xFBCC, - 0x92AD, 0x914B, 0x92B7, 0xE7F7, 0x92B9, 0xE7F6, 0x92CF, 0xE7F5, - 0x92D0, 0xFBD2, 0x92D2, 0x964E, 0x92D3, 0xFBD6, 0x92D5, 0xFBD4, - 0x92D7, 0xFBD0, 0x92D9, 0xFBD1, 0x92E0, 0xFBD5, 0x92E4, 0x8F9B, - 0x92E7, 0xFBCF, 0x92E9, 0xE7F8, 0x92EA, 0x95DD, 0x92ED, 0x8973, - 0x92F2, 0x9565, 0x92F3, 0x9292, 0x92F8, 0x8B98, 0x92F9, 0xFA65, - 0x92FA, 0xE7FA, 0x92FB, 0xFBD9, 0x92FC, 0x8D7C, 0x92FF, 0xFBDC, - 0x9302, 0xFBDE, 0x9306, 0x8E4B, 0x930F, 0xE7F9, 0x9310, 0x908D, - 0x9318, 0x908E, 0x9319, 0xE840, 0x931A, 0xE842, 0x931D, 0xFBDD, - 0x931E, 0xFBDB, 0x9320, 0x8FF9, 0x9321, 0xFBD8, 0x9322, 0xE841, - 0x9323, 0xE843, 0x9325, 0xFBD7, 0x9326, 0x8BD1, 0x9328, 0x9564, - 0x932B, 0x8EE0, 0x932C, 0x9842, 0x932E, 0xE7FC, 0x932F, 0x8DF6, - 0x9332, 0x985E, 0x9335, 0xE845, 0x933A, 0xE844, 0x933B, 0xE846, - 0x9344, 0xE7FB, 0x9348, 0xFA5E, 0x934B, 0x93E7, 0x934D, 0x9374, - 0x9354, 0x92D5, 0x9356, 0xE84B, 0x9357, 0xFBE0, 0x935B, 0x9262, - 0x935C, 0xE847, 0x9360, 0xE848, 0x936C, 0x8C4C, 0x936E, 0xE84A, - 0x9370, 0xFBDF, 0x9375, 0x8CAE, 0x937C, 0xE849, 0x937E, 0x8FDF, - 0x938C, 0x8A99, 0x9394, 0xE84F, 0x9396, 0x8DBD, 0x9397, 0x9199, - 0x939A, 0x92C8, 0x93A4, 0xFBE1, 0x93A7, 0x8A5A, 0x93AC, 0xE84D, - 0x93AD, 0xE84E, 0x93AE, 0x92C1, 0x93B0, 0xE84C, 0x93B9, 0xE850, - 0x93C3, 0xE856, 0x93C6, 0xFBE2, 0x93C8, 0xE859, 0x93D0, 0xE858, - 0x93D1, 0x934C, 0x93D6, 0xE851, 0x93D7, 0xE852, 0x93D8, 0xE855, - 0x93DD, 0xE857, 0x93DE, 0xFBE3, 0x93E1, 0x8BBE, 0x93E4, 0xE85A, - 0x93E5, 0xE854, 0x93E8, 0xE853, 0x93F8, 0xFBE4, 0x9403, 0xE85E, - 0x9407, 0xE85F, 0x9410, 0xE860, 0x9413, 0xE85D, 0x9414, 0xE85C, - 0x9418, 0x8FE0, 0x9419, 0x93A8, 0x941A, 0xE85B, 0x9421, 0xE864, - 0x942B, 0xE862, 0x9431, 0xFBE5, 0x9435, 0xE863, 0x9436, 0xE861, - 0x9438, 0x91F6, 0x943A, 0xE865, 0x9441, 0xE866, 0x9444, 0xE868, - 0x9445, 0xFBE6, 0x9448, 0xFBE7, 0x9451, 0x8AD3, 0x9452, 0xE867, - 0x9453, 0x96F8, 0x945A, 0xE873, 0x945B, 0xE869, 0x945E, 0xE86C, - 0x9460, 0xE86A, 0x9462, 0xE86B, 0x946A, 0xE86D, 0x9470, 0xE86F, - 0x9475, 0xE870, 0x9477, 0xE871, 0x947C, 0xE874, 0x947D, 0xE872, - 0x947E, 0xE875, 0x947F, 0xE877, 0x9481, 0xE876, 0x9577, 0x92B7, - 0x9580, 0x96E5, 0x9582, 0xE878, 0x9583, 0x914D, 0x9587, 0xE879, - 0x9589, 0x95C2, 0x958A, 0xE87A, 0x958B, 0x8A4A, 0x958F, 0x895B, - 0x9591, 0x8AD5, 0x9592, 0xFBE8, 0x9593, 0x8AD4, 0x9594, 0xE87B, - 0x9596, 0xE87C, 0x9598, 0xE87D, 0x9599, 0xE87E, 0x95A0, 0xE880, - 0x95A2, 0x8AD6, 0x95A3, 0x8A74, 0x95A4, 0x8D7D, 0x95A5, 0x94B4, - 0x95A7, 0xE882, 0x95A8, 0xE881, 0x95AD, 0xE883, 0x95B2, 0x897B, - 0x95B9, 0xE886, 0x95BB, 0xE885, 0x95BC, 0xE884, 0x95BE, 0xE887, - 0x95C3, 0xE88A, 0x95C7, 0x88C5, 0x95CA, 0xE888, 0x95CC, 0xE88C, - 0x95CD, 0xE88B, 0x95D4, 0xE88E, 0x95D5, 0xE88D, 0x95D6, 0xE88F, - 0x95D8, 0x93AC, 0x95DC, 0xE890, 0x95E1, 0xE891, 0x95E2, 0xE893, - 0x95E5, 0xE892, 0x961C, 0x958C, 0x9621, 0xE894, 0x9628, 0xE895, - 0x962A, 0x8DE3, 0x962E, 0xE896, 0x962F, 0xE897, 0x9632, 0x9668, - 0x963B, 0x916A, 0x963F, 0x88A2, 0x9640, 0x91C9, 0x9642, 0xE898, - 0x9644, 0x958D, 0x964B, 0xE89B, 0x964C, 0xE899, 0x964D, 0x8D7E, - 0x964F, 0xE89A, 0x9650, 0x8CC0, 0x965B, 0x95C3, 0x965C, 0xE89D, - 0x965D, 0xE89F, 0x965E, 0xE89E, 0x965F, 0xE8A0, 0x9662, 0x8940, - 0x9663, 0x9077, 0x9664, 0x8F9C, 0x9665, 0x8AD7, 0x9666, 0xE8A1, - 0x966A, 0x9486, 0x966C, 0xE8A3, 0x9670, 0x8941, 0x9672, 0xE8A2, - 0x9673, 0x92C2, 0x9675, 0x97CB, 0x9676, 0x93A9, 0x9677, 0xE89C, - 0x9678, 0x97A4, 0x967A, 0x8CAF, 0x967D, 0x977A, 0x9685, 0x8BF7, - 0x9686, 0x97B2, 0x9688, 0x8C47, 0x968A, 0x91E0, 0x968B, 0xE440, - 0x968D, 0xE8A4, 0x968E, 0x8A4B, 0x968F, 0x908F, 0x9694, 0x8A75, - 0x9695, 0xE8A6, 0x9697, 0xE8A7, 0x9698, 0xE8A5, 0x9699, 0x8C84, - 0x969B, 0x8DDB, 0x969C, 0x8FE1, 0x969D, 0xFBEB, 0x96A0, 0x8942, - 0x96A3, 0x97D7, 0x96A7, 0xE8A9, 0x96A8, 0xE7AC, 0x96AA, 0xE8A8, - 0x96AF, 0xFBEC, 0x96B0, 0xE8AC, 0x96B1, 0xE8AA, 0x96B2, 0xE8AB, - 0x96B4, 0xE8AD, 0x96B6, 0xE8AE, 0x96B7, 0x97EA, 0x96B8, 0xE8AF, - 0x96B9, 0xE8B0, 0x96BB, 0x90C7, 0x96BC, 0x94B9, 0x96C0, 0x909D, - 0x96C1, 0x8AE5, 0x96C4, 0x9759, 0x96C5, 0x89EB, 0x96C6, 0x8F57, - 0x96C7, 0x8CD9, 0x96C9, 0xE8B3, 0x96CB, 0xE8B2, 0x96CC, 0x8E93, - 0x96CD, 0xE8B4, 0x96CE, 0xE8B1, 0x96D1, 0x8E47, 0x96D5, 0xE8B8, - 0x96D6, 0xE5AB, 0x96D9, 0x99D4, 0x96DB, 0x9097, 0x96DC, 0xE8B6, - 0x96E2, 0x97A3, 0x96E3, 0x93EF, 0x96E8, 0x894A, 0x96EA, 0x90E1, - 0x96EB, 0x8EB4, 0x96F0, 0x95B5, 0x96F2, 0x895F, 0x96F6, 0x97EB, - 0x96F7, 0x978B, 0x96F9, 0xE8B9, 0x96FB, 0x9364, 0x9700, 0x8EF9, - 0x9704, 0xE8BA, 0x9706, 0xE8BB, 0x9707, 0x906B, 0x9708, 0xE8BC, - 0x970A, 0x97EC, 0x970D, 0xE8B7, 0x970E, 0xE8BE, 0x970F, 0xE8C0, - 0x9711, 0xE8BF, 0x9713, 0xE8BD, 0x9716, 0xE8C1, 0x9719, 0xE8C2, - 0x971C, 0x919A, 0x971E, 0x89E0, 0x9724, 0xE8C3, 0x9727, 0x96B6, - 0x972A, 0xE8C4, 0x9730, 0xE8C5, 0x9732, 0x9849, 0x9733, 0xFBED, - 0x9738, 0x9E50, 0x9739, 0xE8C6, 0x973B, 0xFBEE, 0x973D, 0xE8C7, - 0x973E, 0xE8C8, 0x9742, 0xE8CC, 0x9743, 0xFBEF, 0x9744, 0xE8C9, - 0x9746, 0xE8CA, 0x9748, 0xE8CB, 0x9749, 0xE8CD, 0x974D, 0xFBF0, - 0x974F, 0xFBF1, 0x9751, 0xFBF2, 0x9752, 0x90C2, 0x9755, 0xFBF3, - 0x9756, 0x96F5, 0x9759, 0x90C3, 0x975C, 0xE8CE, 0x975E, 0x94F1, - 0x9760, 0xE8CF, 0x9761, 0xEA72, 0x9762, 0x96CA, 0x9764, 0xE8D0, - 0x9766, 0xE8D1, 0x9768, 0xE8D2, 0x9769, 0x8A76, 0x976B, 0xE8D4, - 0x976D, 0x9078, 0x9771, 0xE8D5, 0x9774, 0x8C43, 0x9779, 0xE8D6, - 0x977A, 0xE8DA, 0x977C, 0xE8D8, 0x9781, 0xE8D9, 0x9784, 0x8A93, - 0x9785, 0xE8D7, 0x9786, 0xE8DB, 0x978B, 0xE8DC, 0x978D, 0x88C6, - 0x978F, 0xE8DD, 0x9790, 0xE8DE, 0x9798, 0x8FE2, 0x979C, 0xE8DF, - 0x97A0, 0x8B66, 0x97A3, 0xE8E2, 0x97A6, 0xE8E1, 0x97A8, 0xE8E0, - 0x97AB, 0xE691, 0x97AD, 0x95DA, 0x97B3, 0xE8E3, 0x97B4, 0xE8E4, - 0x97C3, 0xE8E5, 0x97C6, 0xE8E6, 0x97C8, 0xE8E7, 0x97CB, 0xE8E8, - 0x97D3, 0x8AD8, 0x97DC, 0xE8E9, 0x97ED, 0xE8EA, 0x97EE, 0x9442, - 0x97F2, 0xE8EC, 0x97F3, 0x89B9, 0x97F5, 0xE8EF, 0x97F6, 0xE8EE, - 0x97FB, 0x8943, 0x97FF, 0x8BBF, 0x9801, 0x95C5, 0x9802, 0x92B8, - 0x9803, 0x8DA0, 0x9805, 0x8D80, 0x9806, 0x8F87, 0x9808, 0x907B, - 0x980C, 0xE8F1, 0x980F, 0xE8F0, 0x9810, 0x9761, 0x9811, 0x8AE6, - 0x9812, 0x94D0, 0x9813, 0x93DA, 0x9817, 0x909C, 0x9818, 0x97CC, - 0x981A, 0x8C7A, 0x9821, 0xE8F4, 0x9824, 0xE8F3, 0x982C, 0x966A, - 0x982D, 0x93AA, 0x9834, 0x896F, 0x9837, 0xE8F5, 0x9838, 0xE8F2, - 0x983B, 0x9570, 0x983C, 0x978A, 0x983D, 0xE8F6, 0x9846, 0xE8F7, - 0x984B, 0xE8F9, 0x984C, 0x91E8, 0x984D, 0x8A7A, 0x984E, 0x8A7B, - 0x984F, 0xE8F8, 0x9854, 0x8AE7, 0x9855, 0x8CB0, 0x9857, 0xFBF4, - 0x9858, 0x8AE8, 0x985B, 0x935E, 0x985E, 0x97DE, 0x9865, 0xFBF5, - 0x9867, 0x8CDA, 0x986B, 0xE8FA, 0x986F, 0xE8FB, 0x9870, 0xE8FC, - 0x9871, 0xE940, 0x9873, 0xE942, 0x9874, 0xE941, 0x98A8, 0x9597, - 0x98AA, 0xE943, 0x98AF, 0xE944, 0x98B1, 0xE945, 0x98B6, 0xE946, - 0x98C3, 0xE948, 0x98C4, 0xE947, 0x98C6, 0xE949, 0x98DB, 0x94F2, - 0x98DC, 0xE3CA, 0x98DF, 0x9048, 0x98E2, 0x8B51, 0x98E9, 0xE94A, - 0x98EB, 0xE94B, 0x98ED, 0x99AA, 0x98EE, 0x9F5A, 0x98EF, 0x94D1, - 0x98F2, 0x88F9, 0x98F4, 0x88B9, 0x98FC, 0x8E94, 0x98FD, 0x964F, - 0x98FE, 0x8FFC, 0x9903, 0xE94C, 0x9905, 0x96DD, 0x9909, 0xE94D, - 0x990A, 0x977B, 0x990C, 0x8961, 0x9910, 0x8E60, 0x9912, 0xE94E, - 0x9913, 0x89EC, 0x9914, 0xE94F, 0x9918, 0xE950, 0x991D, 0xE952, - 0x991E, 0xE953, 0x9920, 0xE955, 0x9921, 0xE951, 0x9924, 0xE954, - 0x9927, 0xFBF8, 0x9928, 0x8AD9, 0x992C, 0xE956, 0x992E, 0xE957, - 0x993D, 0xE958, 0x993E, 0xE959, 0x9942, 0xE95A, 0x9945, 0xE95C, - 0x9949, 0xE95B, 0x994B, 0xE95E, 0x994C, 0xE961, 0x9950, 0xE95D, - 0x9951, 0xE95F, 0x9952, 0xE960, 0x9955, 0xE962, 0x9957, 0x8BC0, - 0x9996, 0x8EF1, 0x9997, 0xE963, 0x9998, 0xE964, 0x9999, 0x8D81, - 0x999E, 0xFBFA, 0x99A5, 0xE965, 0x99A8, 0x8A5D, 0x99AC, 0x946E, - 0x99AD, 0xE966, 0x99AE, 0xE967, 0x99B3, 0x9279, 0x99B4, 0x93E9, - 0x99BC, 0xE968, 0x99C1, 0x949D, 0x99C4, 0x91CA, 0x99C5, 0x8977, - 0x99C6, 0x8BEC, 0x99C8, 0x8BED, 0x99D0, 0x9293, 0x99D1, 0xE96D, - 0x99D2, 0x8BEE, 0x99D5, 0x89ED, 0x99D8, 0xE96C, 0x99DB, 0xE96A, - 0x99DD, 0xE96B, 0x99DF, 0xE969, 0x99E2, 0xE977, 0x99ED, 0xE96E, - 0x99EE, 0xE96F, 0x99F1, 0xE970, 0x99F2, 0xE971, 0x99F8, 0xE973, - 0x99FB, 0xE972, 0x99FF, 0x8F78, 0x9A01, 0xE974, 0x9A05, 0xE976, - 0x9A0E, 0x8B52, 0x9A0F, 0xE975, 0x9A12, 0x919B, 0x9A13, 0x8CB1, - 0x9A19, 0xE978, 0x9A28, 0x91CB, 0x9A2B, 0xE979, 0x9A30, 0x93AB, - 0x9A37, 0xE97A, 0x9A3E, 0xE980, 0x9A40, 0xE97D, 0x9A42, 0xE97C, - 0x9A43, 0xE97E, 0x9A45, 0xE97B, 0x9A4D, 0xE982, 0x9A4E, 0xFBFB, - 0x9A55, 0xE981, 0x9A57, 0xE984, 0x9A5A, 0x8BC1, 0x9A5B, 0xE983, - 0x9A5F, 0xE985, 0x9A62, 0xE986, 0x9A64, 0xE988, 0x9A65, 0xE987, - 0x9A69, 0xE989, 0x9A6A, 0xE98B, 0x9A6B, 0xE98A, 0x9AA8, 0x8D9C, - 0x9AAD, 0xE98C, 0x9AB0, 0xE98D, 0x9AB8, 0x8A5B, 0x9ABC, 0xE98E, - 0x9AC0, 0xE98F, 0x9AC4, 0x9091, 0x9ACF, 0xE990, 0x9AD1, 0xE991, - 0x9AD3, 0xE992, 0x9AD4, 0xE993, 0x9AD8, 0x8D82, 0x9AD9, 0xFBFC, - 0x9ADC, 0xFC40, 0x9ADE, 0xE994, 0x9ADF, 0xE995, 0x9AE2, 0xE996, - 0x9AE3, 0xE997, 0x9AE6, 0xE998, 0x9AEA, 0x94AF, 0x9AEB, 0xE99A, - 0x9AED, 0x9545, 0x9AEE, 0xE99B, 0x9AEF, 0xE999, 0x9AF1, 0xE99D, - 0x9AF4, 0xE99C, 0x9AF7, 0xE99E, 0x9AFB, 0xE99F, 0x9B06, 0xE9A0, - 0x9B18, 0xE9A1, 0x9B1A, 0xE9A2, 0x9B1F, 0xE9A3, 0x9B22, 0xE9A4, - 0x9B23, 0xE9A5, 0x9B25, 0xE9A6, 0x9B27, 0xE9A7, 0x9B28, 0xE9A8, - 0x9B29, 0xE9A9, 0x9B2A, 0xE9AA, 0x9B2E, 0xE9AB, 0x9B2F, 0xE9AC, - 0x9B31, 0x9F54, 0x9B32, 0xE9AD, 0x9B3B, 0xE2F6, 0x9B3C, 0x8B53, - 0x9B41, 0x8A40, 0x9B42, 0x8DB0, 0x9B43, 0xE9AF, 0x9B44, 0xE9AE, - 0x9B45, 0x96A3, 0x9B4D, 0xE9B1, 0x9B4E, 0xE9B2, 0x9B4F, 0xE9B0, - 0x9B51, 0xE9B3, 0x9B54, 0x9682, 0x9B58, 0xE9B4, 0x9B5A, 0x8B9B, - 0x9B6F, 0x9844, 0x9B72, 0xFC42, 0x9B74, 0xE9B5, 0x9B75, 0xFC41, - 0x9B83, 0xE9B7, 0x9B8E, 0x88BC, 0x9B8F, 0xFC43, 0x9B91, 0xE9B8, - 0x9B92, 0x95A9, 0x9B93, 0xE9B6, 0x9B96, 0xE9B9, 0x9B97, 0xE9BA, - 0x9B9F, 0xE9BB, 0x9BA0, 0xE9BC, 0x9BA8, 0xE9BD, 0x9BAA, 0x968E, - 0x9BAB, 0x8E4C, 0x9BAD, 0x8DF8, 0x9BAE, 0x914E, 0x9BB1, 0xFC44, - 0x9BB4, 0xE9BE, 0x9BB9, 0xE9C1, 0x9BBB, 0xFC45, 0x9BC0, 0xE9BF, - 0x9BC6, 0xE9C2, 0x9BC9, 0x8CEF, 0x9BCA, 0xE9C0, 0x9BCF, 0xE9C3, - 0x9BD1, 0xE9C4, 0x9BD2, 0xE9C5, 0x9BD4, 0xE9C9, 0x9BD6, 0x8E49, - 0x9BDB, 0x91E2, 0x9BE1, 0xE9CA, 0x9BE2, 0xE9C7, 0x9BE3, 0xE9C6, - 0x9BE4, 0xE9C8, 0x9BE8, 0x8C7E, 0x9BF0, 0xE9CE, 0x9BF1, 0xE9CD, - 0x9BF2, 0xE9CC, 0x9BF5, 0x88B1, 0x9C00, 0xFC46, 0x9C04, 0xE9D8, - 0x9C06, 0xE9D4, 0x9C08, 0xE9D5, 0x9C09, 0xE9D1, 0x9C0A, 0xE9D7, - 0x9C0C, 0xE9D3, 0x9C0D, 0x8A82, 0x9C10, 0x986B, 0x9C12, 0xE9D6, - 0x9C13, 0xE9D2, 0x9C14, 0xE9D0, 0x9C15, 0xE9CF, 0x9C1B, 0xE9DA, - 0x9C21, 0xE9DD, 0x9C24, 0xE9DC, 0x9C25, 0xE9DB, 0x9C2D, 0x9568, - 0x9C2E, 0xE9D9, 0x9C2F, 0x88F1, 0x9C30, 0xE9DE, 0x9C32, 0xE9E0, - 0x9C39, 0x8A8F, 0x9C3A, 0xE9CB, 0x9C3B, 0x8956, 0x9C3E, 0xE9E2, - 0x9C46, 0xE9E1, 0x9C47, 0xE9DF, 0x9C48, 0x924C, 0x9C52, 0x9690, - 0x9C57, 0x97D8, 0x9C5A, 0xE9E3, 0x9C60, 0xE9E4, 0x9C67, 0xE9E5, - 0x9C76, 0xE9E6, 0x9C78, 0xE9E7, 0x9CE5, 0x92B9, 0x9CE7, 0xE9E8, - 0x9CE9, 0x94B5, 0x9CEB, 0xE9ED, 0x9CEC, 0xE9E9, 0x9CF0, 0xE9EA, - 0x9CF3, 0x9650, 0x9CF4, 0x96C2, 0x9CF6, 0x93CE, 0x9D03, 0xE9EE, - 0x9D06, 0xE9EF, 0x9D07, 0x93BC, 0x9D08, 0xE9EC, 0x9D09, 0xE9EB, - 0x9D0E, 0x89A8, 0x9D12, 0xE9F7, 0x9D15, 0xE9F6, 0x9D1B, 0x8995, - 0x9D1F, 0xE9F4, 0x9D23, 0xE9F3, 0x9D26, 0xE9F1, 0x9D28, 0x8A9B, - 0x9D2A, 0xE9F0, 0x9D2B, 0x8EB0, 0x9D2C, 0x89A7, 0x9D3B, 0x8D83, - 0x9D3E, 0xE9FA, 0x9D3F, 0xE9F9, 0x9D41, 0xE9F8, 0x9D44, 0xE9F5, - 0x9D46, 0xE9FB, 0x9D48, 0xE9FC, 0x9D50, 0xEA44, 0x9D51, 0xEA43, - 0x9D59, 0xEA45, 0x9D5C, 0x894C, 0x9D5D, 0xEA40, 0x9D5E, 0xEA41, - 0x9D60, 0x8D94, 0x9D61, 0x96B7, 0x9D64, 0xEA42, 0x9D6B, 0xFC48, - 0x9D6C, 0x9651, 0x9D6F, 0xEA4A, 0x9D70, 0xFC47, 0x9D72, 0xEA46, - 0x9D7A, 0xEA4B, 0x9D87, 0xEA48, 0x9D89, 0xEA47, 0x9D8F, 0x8C7B, - 0x9D9A, 0xEA4C, 0x9DA4, 0xEA4D, 0x9DA9, 0xEA4E, 0x9DAB, 0xEA49, - 0x9DAF, 0xE9F2, 0x9DB2, 0xEA4F, 0x9DB4, 0x92DF, 0x9DB8, 0xEA53, - 0x9DBA, 0xEA54, 0x9DBB, 0xEA52, 0x9DC1, 0xEA51, 0x9DC2, 0xEA57, - 0x9DC4, 0xEA50, 0x9DC6, 0xEA55, 0x9DCF, 0xEA56, 0x9DD3, 0xEA59, - 0x9DD9, 0xEA58, 0x9DE6, 0xEA5B, 0x9DED, 0xEA5C, 0x9DEF, 0xEA5D, - 0x9DF2, 0x9868, 0x9DF8, 0xEA5A, 0x9DF9, 0x91E9, 0x9DFA, 0x8DEB, - 0x9DFD, 0xEA5E, 0x9E19, 0xFC4A, 0x9E1A, 0xEA5F, 0x9E1B, 0xEA60, - 0x9E1E, 0xEA61, 0x9E75, 0xEA62, 0x9E78, 0x8CB2, 0x9E79, 0xEA63, - 0x9E7D, 0xEA64, 0x9E7F, 0x8EAD, 0x9E81, 0xEA65, 0x9E88, 0xEA66, - 0x9E8B, 0xEA67, 0x9E8C, 0xEA68, 0x9E91, 0xEA6B, 0x9E92, 0xEA69, - 0x9E93, 0x985B, 0x9E95, 0xEA6A, 0x9E97, 0x97ED, 0x9E9D, 0xEA6C, - 0x9E9F, 0x97D9, 0x9EA5, 0xEA6D, 0x9EA6, 0x949E, 0x9EA9, 0xEA6E, - 0x9EAA, 0xEA70, 0x9EAD, 0xEA71, 0x9EB8, 0xEA6F, 0x9EB9, 0x8D8D, - 0x9EBA, 0x96CB, 0x9EBB, 0x9683, 0x9EBC, 0x9BF5, 0x9EBE, 0x9F80, - 0x9EBF, 0x969B, 0x9EC4, 0x89A9, 0x9ECC, 0xEA73, 0x9ECD, 0x8B6F, - 0x9ECE, 0xEA74, 0x9ECF, 0xEA75, 0x9ED0, 0xEA76, 0x9ED1, 0xFC4B, - 0x9ED2, 0x8D95, 0x9ED4, 0xEA77, 0x9ED8, 0xE0D2, 0x9ED9, 0x96D9, - 0x9EDB, 0x91E1, 0x9EDC, 0xEA78, 0x9EDD, 0xEA7A, 0x9EDE, 0xEA79, - 0x9EE0, 0xEA7B, 0x9EE5, 0xEA7C, 0x9EE8, 0xEA7D, 0x9EEF, 0xEA7E, - 0x9EF4, 0xEA80, 0x9EF6, 0xEA81, 0x9EF7, 0xEA82, 0x9EF9, 0xEA83, - 0x9EFB, 0xEA84, 0x9EFC, 0xEA85, 0x9EFD, 0xEA86, 0x9F07, 0xEA87, - 0x9F08, 0xEA88, 0x9F0E, 0x9343, 0x9F13, 0x8CDB, 0x9F15, 0xEA8A, - 0x9F20, 0x916C, 0x9F21, 0xEA8B, 0x9F2C, 0xEA8C, 0x9F3B, 0x9540, - 0x9F3E, 0xEA8D, 0x9F4A, 0xEA8E, 0x9F4B, 0xE256, 0x9F4E, 0xE6D8, - 0x9F4F, 0xE8EB, 0x9F52, 0xEA8F, 0x9F54, 0xEA90, 0x9F5F, 0xEA92, - 0x9F60, 0xEA93, 0x9F61, 0xEA94, 0x9F62, 0x97EE, 0x9F63, 0xEA91, - 0x9F66, 0xEA95, 0x9F67, 0xEA96, 0x9F6A, 0xEA98, 0x9F6C, 0xEA97, - 0x9F72, 0xEA9A, 0x9F76, 0xEA9B, 0x9F77, 0xEA99, 0x9F8D, 0x97B4, - 0x9F95, 0xEA9C, 0x9F9C, 0xEA9D, 0x9F9D, 0xE273, 0x9FA0, 0xEA9E, - 0xF929, 0xFAE0, 0xF9DC, 0xFBE9, 0xFA0E, 0xFA90, 0xFA0F, 0xFA9B, - 0xFA10, 0xFA9C, 0xFA11, 0xFAB1, 0xFA12, 0xFAD8, 0xFA13, 0xFAE8, - 0xFA14, 0xFAEA, 0xFA15, 0xFB58, 0xFA16, 0xFB5E, 0xFA17, 0xFB75, - 0xFA18, 0xFB7D, 0xFA19, 0xFB7E, 0xFA1A, 0xFB80, 0xFA1B, 0xFB82, - 0xFA1C, 0xFB86, 0xFA1D, 0xFB89, 0xFA1E, 0xFB92, 0xFA1F, 0xFB9D, - 0xFA20, 0xFB9F, 0xFA21, 0xFBA0, 0xFA22, 0xFBA9, 0xFA23, 0xFBB1, - 0xFA24, 0xFBB3, 0xFA25, 0xFBB4, 0xFA26, 0xFBB7, 0xFA27, 0xFBD3, - 0xFA28, 0xFBDA, 0xFA29, 0xFBEA, 0xFA2A, 0xFBF6, 0xFA2B, 0xFBF7, - 0xFA2C, 0xFBF9, 0xFA2D, 0xFC49, 0xFF01, 0x8149, 0xFF02, 0xFA57, - 0xFF03, 0x8194, 0xFF04, 0x8190, 0xFF05, 0x8193, 0xFF06, 0x8195, - 0xFF07, 0xFA56, 0xFF08, 0x8169, 0xFF09, 0x816A, 0xFF0A, 0x8196, - 0xFF0B, 0x817B, 0xFF0C, 0x8143, 0xFF0D, 0x817C, 0xFF0E, 0x8144, - 0xFF0F, 0x815E, 0xFF10, 0x824F, 0xFF11, 0x8250, 0xFF12, 0x8251, - 0xFF13, 0x8252, 0xFF14, 0x8253, 0xFF15, 0x8254, 0xFF16, 0x8255, - 0xFF17, 0x8256, 0xFF18, 0x8257, 0xFF19, 0x8258, 0xFF1A, 0x8146, - 0xFF1B, 0x8147, 0xFF1C, 0x8183, 0xFF1D, 0x8181, 0xFF1E, 0x8184, - 0xFF1F, 0x8148, 0xFF20, 0x8197, 0xFF21, 0x8260, 0xFF22, 0x8261, - 0xFF23, 0x8262, 0xFF24, 0x8263, 0xFF25, 0x8264, 0xFF26, 0x8265, - 0xFF27, 0x8266, 0xFF28, 0x8267, 0xFF29, 0x8268, 0xFF2A, 0x8269, - 0xFF2B, 0x826A, 0xFF2C, 0x826B, 0xFF2D, 0x826C, 0xFF2E, 0x826D, - 0xFF2F, 0x826E, 0xFF30, 0x826F, 0xFF31, 0x8270, 0xFF32, 0x8271, - 0xFF33, 0x8272, 0xFF34, 0x8273, 0xFF35, 0x8274, 0xFF36, 0x8275, - 0xFF37, 0x8276, 0xFF38, 0x8277, 0xFF39, 0x8278, 0xFF3A, 0x8279, - 0xFF3B, 0x816D, 0xFF3C, 0x815F, 0xFF3D, 0x816E, 0xFF3E, 0x814F, - 0xFF3F, 0x8151, 0xFF40, 0x814D, 0xFF41, 0x8281, 0xFF42, 0x8282, - 0xFF43, 0x8283, 0xFF44, 0x8284, 0xFF45, 0x8285, 0xFF46, 0x8286, - 0xFF47, 0x8287, 0xFF48, 0x8288, 0xFF49, 0x8289, 0xFF4A, 0x828A, - 0xFF4B, 0x828B, 0xFF4C, 0x828C, 0xFF4D, 0x828D, 0xFF4E, 0x828E, - 0xFF4F, 0x828F, 0xFF50, 0x8290, 0xFF51, 0x8291, 0xFF52, 0x8292, - 0xFF53, 0x8293, 0xFF54, 0x8294, 0xFF55, 0x8295, 0xFF56, 0x8296, - 0xFF57, 0x8297, 0xFF58, 0x8298, 0xFF59, 0x8299, 0xFF5A, 0x829A, - 0xFF5B, 0x816F, 0xFF5C, 0x8162, 0xFF5D, 0x8170, 0xFF5E, 0x8160, - 0xFF61, 0x00A1, 0xFF62, 0x00A2, 0xFF63, 0x00A3, 0xFF64, 0x00A4, - 0xFF65, 0x00A5, 0xFF66, 0x00A6, 0xFF67, 0x00A7, 0xFF68, 0x00A8, - 0xFF69, 0x00A9, 0xFF6A, 0x00AA, 0xFF6B, 0x00AB, 0xFF6C, 0x00AC, - 0xFF6D, 0x00AD, 0xFF6E, 0x00AE, 0xFF6F, 0x00AF, 0xFF70, 0x00B0, - 0xFF71, 0x00B1, 0xFF72, 0x00B2, 0xFF73, 0x00B3, 0xFF74, 0x00B4, - 0xFF75, 0x00B5, 0xFF76, 0x00B6, 0xFF77, 0x00B7, 0xFF78, 0x00B8, - 0xFF79, 0x00B9, 0xFF7A, 0x00BA, 0xFF7B, 0x00BB, 0xFF7C, 0x00BC, - 0xFF7D, 0x00BD, 0xFF7E, 0x00BE, 0xFF7F, 0x00BF, 0xFF80, 0x00C0, - 0xFF81, 0x00C1, 0xFF82, 0x00C2, 0xFF83, 0x00C3, 0xFF84, 0x00C4, - 0xFF85, 0x00C5, 0xFF86, 0x00C6, 0xFF87, 0x00C7, 0xFF88, 0x00C8, - 0xFF89, 0x00C9, 0xFF8A, 0x00CA, 0xFF8B, 0x00CB, 0xFF8C, 0x00CC, - 0xFF8D, 0x00CD, 0xFF8E, 0x00CE, 0xFF8F, 0x00CF, 0xFF90, 0x00D0, - 0xFF91, 0x00D1, 0xFF92, 0x00D2, 0xFF93, 0x00D3, 0xFF94, 0x00D4, - 0xFF95, 0x00D5, 0xFF96, 0x00D6, 0xFF97, 0x00D7, 0xFF98, 0x00D8, - 0xFF99, 0x00D9, 0xFF9A, 0x00DA, 0xFF9B, 0x00DB, 0xFF9C, 0x00DC, - 0xFF9D, 0x00DD, 0xFF9E, 0x00DE, 0xFF9F, 0x00DF, 0xFFE0, 0x8191, - 0xFFE1, 0x8192, 0xFFE2, 0x81CA, 0xFFE3, 0x8150, 0xFFE4, 0xFA55, - 0xFFE5, 0x818F, 0, 0 -}; - -#if !_TINY_TABLE -static -const WCHAR sjis2uni[] = { -/* SJIS - Unicode, SJIS - Unicode, SJIS - Unicode, SJIS - Unicode, */ - 0x00A1, 0xFF61, 0x00A2, 0xFF62, 0x00A3, 0xFF63, 0x00A4, 0xFF64, - 0x00A5, 0xFF65, 0x00A6, 0xFF66, 0x00A7, 0xFF67, 0x00A8, 0xFF68, - 0x00A9, 0xFF69, 0x00AA, 0xFF6A, 0x00AB, 0xFF6B, 0x00AC, 0xFF6C, - 0x00AD, 0xFF6D, 0x00AE, 0xFF6E, 0x00AF, 0xFF6F, 0x00B0, 0xFF70, - 0x00B1, 0xFF71, 0x00B2, 0xFF72, 0x00B3, 0xFF73, 0x00B4, 0xFF74, - 0x00B5, 0xFF75, 0x00B6, 0xFF76, 0x00B7, 0xFF77, 0x00B8, 0xFF78, - 0x00B9, 0xFF79, 0x00BA, 0xFF7A, 0x00BB, 0xFF7B, 0x00BC, 0xFF7C, - 0x00BD, 0xFF7D, 0x00BE, 0xFF7E, 0x00BF, 0xFF7F, 0x00C0, 0xFF80, - 0x00C1, 0xFF81, 0x00C2, 0xFF82, 0x00C3, 0xFF83, 0x00C4, 0xFF84, - 0x00C5, 0xFF85, 0x00C6, 0xFF86, 0x00C7, 0xFF87, 0x00C8, 0xFF88, - 0x00C9, 0xFF89, 0x00CA, 0xFF8A, 0x00CB, 0xFF8B, 0x00CC, 0xFF8C, - 0x00CD, 0xFF8D, 0x00CE, 0xFF8E, 0x00CF, 0xFF8F, 0x00D0, 0xFF90, - 0x00D1, 0xFF91, 0x00D2, 0xFF92, 0x00D3, 0xFF93, 0x00D4, 0xFF94, - 0x00D5, 0xFF95, 0x00D6, 0xFF96, 0x00D7, 0xFF97, 0x00D8, 0xFF98, - 0x00D9, 0xFF99, 0x00DA, 0xFF9A, 0x00DB, 0xFF9B, 0x00DC, 0xFF9C, - 0x00DD, 0xFF9D, 0x00DE, 0xFF9E, 0x00DF, 0xFF9F, 0x8140, 0x3000, - 0x8141, 0x3001, 0x8142, 0x3002, 0x8143, 0xFF0C, 0x8144, 0xFF0E, - 0x8145, 0x30FB, 0x8146, 0xFF1A, 0x8147, 0xFF1B, 0x8148, 0xFF1F, - 0x8149, 0xFF01, 0x814A, 0x309B, 0x814B, 0x309C, 0x814C, 0x00B4, - 0x814D, 0xFF40, 0x814E, 0x00A8, 0x814F, 0xFF3E, 0x8150, 0xFFE3, - 0x8151, 0xFF3F, 0x8152, 0x30FD, 0x8153, 0x30FE, 0x8154, 0x309D, - 0x8155, 0x309E, 0x8156, 0x3003, 0x8157, 0x4EDD, 0x8158, 0x3005, - 0x8159, 0x3006, 0x815A, 0x3007, 0x815B, 0x30FC, 0x815C, 0x2015, - 0x815D, 0x2010, 0x815E, 0xFF0F, 0x815F, 0xFF3C, 0x8160, 0xFF5E, - 0x8161, 0x2225, 0x8162, 0xFF5C, 0x8163, 0x2026, 0x8164, 0x2025, - 0x8165, 0x2018, 0x8166, 0x2019, 0x8167, 0x201C, 0x8168, 0x201D, - 0x8169, 0xFF08, 0x816A, 0xFF09, 0x816B, 0x3014, 0x816C, 0x3015, - 0x816D, 0xFF3B, 0x816E, 0xFF3D, 0x816F, 0xFF5B, 0x8170, 0xFF5D, - 0x8171, 0x3008, 0x8172, 0x3009, 0x8173, 0x300A, 0x8174, 0x300B, - 0x8175, 0x300C, 0x8176, 0x300D, 0x8177, 0x300E, 0x8178, 0x300F, - 0x8179, 0x3010, 0x817A, 0x3011, 0x817B, 0xFF0B, 0x817C, 0xFF0D, - 0x817D, 0x00B1, 0x817E, 0x00D7, 0x8180, 0x00F7, 0x8181, 0xFF1D, - 0x8182, 0x2260, 0x8183, 0xFF1C, 0x8184, 0xFF1E, 0x8185, 0x2266, - 0x8186, 0x2267, 0x8187, 0x221E, 0x8188, 0x2234, 0x8189, 0x2642, - 0x818A, 0x2640, 0x818B, 0x00B0, 0x818C, 0x2032, 0x818D, 0x2033, - 0x818E, 0x2103, 0x818F, 0xFFE5, 0x8190, 0xFF04, 0x8191, 0xFFE0, - 0x8192, 0xFFE1, 0x8193, 0xFF05, 0x8194, 0xFF03, 0x8195, 0xFF06, - 0x8196, 0xFF0A, 0x8197, 0xFF20, 0x8198, 0x00A7, 0x8199, 0x2606, - 0x819A, 0x2605, 0x819B, 0x25CB, 0x819C, 0x25CF, 0x819D, 0x25CE, - 0x819E, 0x25C7, 0x819F, 0x25C6, 0x81A0, 0x25A1, 0x81A1, 0x25A0, - 0x81A2, 0x25B3, 0x81A3, 0x25B2, 0x81A4, 0x25BD, 0x81A5, 0x25BC, - 0x81A6, 0x203B, 0x81A7, 0x3012, 0x81A8, 0x2192, 0x81A9, 0x2190, - 0x81AA, 0x2191, 0x81AB, 0x2193, 0x81AC, 0x3013, 0x81B8, 0x2208, - 0x81B9, 0x220B, 0x81BA, 0x2286, 0x81BB, 0x2287, 0x81BC, 0x2282, - 0x81BD, 0x2283, 0x81BE, 0x222A, 0x81BF, 0x2229, 0x81C8, 0x2227, - 0x81C9, 0x2228, 0x81CA, 0xFFE2, 0x81CB, 0x21D2, 0x81CC, 0x21D4, - 0x81CD, 0x2200, 0x81CE, 0x2203, 0x81DA, 0x2220, 0x81DB, 0x22A5, - 0x81DC, 0x2312, 0x81DD, 0x2202, 0x81DE, 0x2207, 0x81DF, 0x2261, - 0x81E0, 0x2252, 0x81E1, 0x226A, 0x81E2, 0x226B, 0x81E3, 0x221A, - 0x81E4, 0x223D, 0x81E5, 0x221D, 0x81E6, 0x2235, 0x81E7, 0x222B, - 0x81E8, 0x222C, 0x81F0, 0x212B, 0x81F1, 0x2030, 0x81F2, 0x266F, - 0x81F3, 0x266D, 0x81F4, 0x266A, 0x81F5, 0x2020, 0x81F6, 0x2021, - 0x81F7, 0x00B6, 0x81FC, 0x25EF, 0x824F, 0xFF10, 0x8250, 0xFF11, - 0x8251, 0xFF12, 0x8252, 0xFF13, 0x8253, 0xFF14, 0x8254, 0xFF15, - 0x8255, 0xFF16, 0x8256, 0xFF17, 0x8257, 0xFF18, 0x8258, 0xFF19, - 0x8260, 0xFF21, 0x8261, 0xFF22, 0x8262, 0xFF23, 0x8263, 0xFF24, - 0x8264, 0xFF25, 0x8265, 0xFF26, 0x8266, 0xFF27, 0x8267, 0xFF28, - 0x8268, 0xFF29, 0x8269, 0xFF2A, 0x826A, 0xFF2B, 0x826B, 0xFF2C, - 0x826C, 0xFF2D, 0x826D, 0xFF2E, 0x826E, 0xFF2F, 0x826F, 0xFF30, - 0x8270, 0xFF31, 0x8271, 0xFF32, 0x8272, 0xFF33, 0x8273, 0xFF34, - 0x8274, 0xFF35, 0x8275, 0xFF36, 0x8276, 0xFF37, 0x8277, 0xFF38, - 0x8278, 0xFF39, 0x8279, 0xFF3A, 0x8281, 0xFF41, 0x8282, 0xFF42, - 0x8283, 0xFF43, 0x8284, 0xFF44, 0x8285, 0xFF45, 0x8286, 0xFF46, - 0x8287, 0xFF47, 0x8288, 0xFF48, 0x8289, 0xFF49, 0x828A, 0xFF4A, - 0x828B, 0xFF4B, 0x828C, 0xFF4C, 0x828D, 0xFF4D, 0x828E, 0xFF4E, - 0x828F, 0xFF4F, 0x8290, 0xFF50, 0x8291, 0xFF51, 0x8292, 0xFF52, - 0x8293, 0xFF53, 0x8294, 0xFF54, 0x8295, 0xFF55, 0x8296, 0xFF56, - 0x8297, 0xFF57, 0x8298, 0xFF58, 0x8299, 0xFF59, 0x829A, 0xFF5A, - 0x829F, 0x3041, 0x82A0, 0x3042, 0x82A1, 0x3043, 0x82A2, 0x3044, - 0x82A3, 0x3045, 0x82A4, 0x3046, 0x82A5, 0x3047, 0x82A6, 0x3048, - 0x82A7, 0x3049, 0x82A8, 0x304A, 0x82A9, 0x304B, 0x82AA, 0x304C, - 0x82AB, 0x304D, 0x82AC, 0x304E, 0x82AD, 0x304F, 0x82AE, 0x3050, - 0x82AF, 0x3051, 0x82B0, 0x3052, 0x82B1, 0x3053, 0x82B2, 0x3054, - 0x82B3, 0x3055, 0x82B4, 0x3056, 0x82B5, 0x3057, 0x82B6, 0x3058, - 0x82B7, 0x3059, 0x82B8, 0x305A, 0x82B9, 0x305B, 0x82BA, 0x305C, - 0x82BB, 0x305D, 0x82BC, 0x305E, 0x82BD, 0x305F, 0x82BE, 0x3060, - 0x82BF, 0x3061, 0x82C0, 0x3062, 0x82C1, 0x3063, 0x82C2, 0x3064, - 0x82C3, 0x3065, 0x82C4, 0x3066, 0x82C5, 0x3067, 0x82C6, 0x3068, - 0x82C7, 0x3069, 0x82C8, 0x306A, 0x82C9, 0x306B, 0x82CA, 0x306C, - 0x82CB, 0x306D, 0x82CC, 0x306E, 0x82CD, 0x306F, 0x82CE, 0x3070, - 0x82CF, 0x3071, 0x82D0, 0x3072, 0x82D1, 0x3073, 0x82D2, 0x3074, - 0x82D3, 0x3075, 0x82D4, 0x3076, 0x82D5, 0x3077, 0x82D6, 0x3078, - 0x82D7, 0x3079, 0x82D8, 0x307A, 0x82D9, 0x307B, 0x82DA, 0x307C, - 0x82DB, 0x307D, 0x82DC, 0x307E, 0x82DD, 0x307F, 0x82DE, 0x3080, - 0x82DF, 0x3081, 0x82E0, 0x3082, 0x82E1, 0x3083, 0x82E2, 0x3084, - 0x82E3, 0x3085, 0x82E4, 0x3086, 0x82E5, 0x3087, 0x82E6, 0x3088, - 0x82E7, 0x3089, 0x82E8, 0x308A, 0x82E9, 0x308B, 0x82EA, 0x308C, - 0x82EB, 0x308D, 0x82EC, 0x308E, 0x82ED, 0x308F, 0x82EE, 0x3090, - 0x82EF, 0x3091, 0x82F0, 0x3092, 0x82F1, 0x3093, 0x8340, 0x30A1, - 0x8341, 0x30A2, 0x8342, 0x30A3, 0x8343, 0x30A4, 0x8344, 0x30A5, - 0x8345, 0x30A6, 0x8346, 0x30A7, 0x8347, 0x30A8, 0x8348, 0x30A9, - 0x8349, 0x30AA, 0x834A, 0x30AB, 0x834B, 0x30AC, 0x834C, 0x30AD, - 0x834D, 0x30AE, 0x834E, 0x30AF, 0x834F, 0x30B0, 0x8350, 0x30B1, - 0x8351, 0x30B2, 0x8352, 0x30B3, 0x8353, 0x30B4, 0x8354, 0x30B5, - 0x8355, 0x30B6, 0x8356, 0x30B7, 0x8357, 0x30B8, 0x8358, 0x30B9, - 0x8359, 0x30BA, 0x835A, 0x30BB, 0x835B, 0x30BC, 0x835C, 0x30BD, - 0x835D, 0x30BE, 0x835E, 0x30BF, 0x835F, 0x30C0, 0x8360, 0x30C1, - 0x8361, 0x30C2, 0x8362, 0x30C3, 0x8363, 0x30C4, 0x8364, 0x30C5, - 0x8365, 0x30C6, 0x8366, 0x30C7, 0x8367, 0x30C8, 0x8368, 0x30C9, - 0x8369, 0x30CA, 0x836A, 0x30CB, 0x836B, 0x30CC, 0x836C, 0x30CD, - 0x836D, 0x30CE, 0x836E, 0x30CF, 0x836F, 0x30D0, 0x8370, 0x30D1, - 0x8371, 0x30D2, 0x8372, 0x30D3, 0x8373, 0x30D4, 0x8374, 0x30D5, - 0x8375, 0x30D6, 0x8376, 0x30D7, 0x8377, 0x30D8, 0x8378, 0x30D9, - 0x8379, 0x30DA, 0x837A, 0x30DB, 0x837B, 0x30DC, 0x837C, 0x30DD, - 0x837D, 0x30DE, 0x837E, 0x30DF, 0x8380, 0x30E0, 0x8381, 0x30E1, - 0x8382, 0x30E2, 0x8383, 0x30E3, 0x8384, 0x30E4, 0x8385, 0x30E5, - 0x8386, 0x30E6, 0x8387, 0x30E7, 0x8388, 0x30E8, 0x8389, 0x30E9, - 0x838A, 0x30EA, 0x838B, 0x30EB, 0x838C, 0x30EC, 0x838D, 0x30ED, - 0x838E, 0x30EE, 0x838F, 0x30EF, 0x8390, 0x30F0, 0x8391, 0x30F1, - 0x8392, 0x30F2, 0x8393, 0x30F3, 0x8394, 0x30F4, 0x8395, 0x30F5, - 0x8396, 0x30F6, 0x839F, 0x0391, 0x83A0, 0x0392, 0x83A1, 0x0393, - 0x83A2, 0x0394, 0x83A3, 0x0395, 0x83A4, 0x0396, 0x83A5, 0x0397, - 0x83A6, 0x0398, 0x83A7, 0x0399, 0x83A8, 0x039A, 0x83A9, 0x039B, - 0x83AA, 0x039C, 0x83AB, 0x039D, 0x83AC, 0x039E, 0x83AD, 0x039F, - 0x83AE, 0x03A0, 0x83AF, 0x03A1, 0x83B0, 0x03A3, 0x83B1, 0x03A4, - 0x83B2, 0x03A5, 0x83B3, 0x03A6, 0x83B4, 0x03A7, 0x83B5, 0x03A8, - 0x83B6, 0x03A9, 0x83BF, 0x03B1, 0x83C0, 0x03B2, 0x83C1, 0x03B3, - 0x83C2, 0x03B4, 0x83C3, 0x03B5, 0x83C4, 0x03B6, 0x83C5, 0x03B7, - 0x83C6, 0x03B8, 0x83C7, 0x03B9, 0x83C8, 0x03BA, 0x83C9, 0x03BB, - 0x83CA, 0x03BC, 0x83CB, 0x03BD, 0x83CC, 0x03BE, 0x83CD, 0x03BF, - 0x83CE, 0x03C0, 0x83CF, 0x03C1, 0x83D0, 0x03C3, 0x83D1, 0x03C4, - 0x83D2, 0x03C5, 0x83D3, 0x03C6, 0x83D4, 0x03C7, 0x83D5, 0x03C8, - 0x83D6, 0x03C9, 0x8440, 0x0410, 0x8441, 0x0411, 0x8442, 0x0412, - 0x8443, 0x0413, 0x8444, 0x0414, 0x8445, 0x0415, 0x8446, 0x0401, - 0x8447, 0x0416, 0x8448, 0x0417, 0x8449, 0x0418, 0x844A, 0x0419, - 0x844B, 0x041A, 0x844C, 0x041B, 0x844D, 0x041C, 0x844E, 0x041D, - 0x844F, 0x041E, 0x8450, 0x041F, 0x8451, 0x0420, 0x8452, 0x0421, - 0x8453, 0x0422, 0x8454, 0x0423, 0x8455, 0x0424, 0x8456, 0x0425, - 0x8457, 0x0426, 0x8458, 0x0427, 0x8459, 0x0428, 0x845A, 0x0429, - 0x845B, 0x042A, 0x845C, 0x042B, 0x845D, 0x042C, 0x845E, 0x042D, - 0x845F, 0x042E, 0x8460, 0x042F, 0x8470, 0x0430, 0x8471, 0x0431, - 0x8472, 0x0432, 0x8473, 0x0433, 0x8474, 0x0434, 0x8475, 0x0435, - 0x8476, 0x0451, 0x8477, 0x0436, 0x8478, 0x0437, 0x8479, 0x0438, - 0x847A, 0x0439, 0x847B, 0x043A, 0x847C, 0x043B, 0x847D, 0x043C, - 0x847E, 0x043D, 0x8480, 0x043E, 0x8481, 0x043F, 0x8482, 0x0440, - 0x8483, 0x0441, 0x8484, 0x0442, 0x8485, 0x0443, 0x8486, 0x0444, - 0x8487, 0x0445, 0x8488, 0x0446, 0x8489, 0x0447, 0x848A, 0x0448, - 0x848B, 0x0449, 0x848C, 0x044A, 0x848D, 0x044B, 0x848E, 0x044C, - 0x848F, 0x044D, 0x8490, 0x044E, 0x8491, 0x044F, 0x849F, 0x2500, - 0x84A0, 0x2502, 0x84A1, 0x250C, 0x84A2, 0x2510, 0x84A3, 0x2518, - 0x84A4, 0x2514, 0x84A5, 0x251C, 0x84A6, 0x252C, 0x84A7, 0x2524, - 0x84A8, 0x2534, 0x84A9, 0x253C, 0x84AA, 0x2501, 0x84AB, 0x2503, - 0x84AC, 0x250F, 0x84AD, 0x2513, 0x84AE, 0x251B, 0x84AF, 0x2517, - 0x84B0, 0x2523, 0x84B1, 0x2533, 0x84B2, 0x252B, 0x84B3, 0x253B, - 0x84B4, 0x254B, 0x84B5, 0x2520, 0x84B6, 0x252F, 0x84B7, 0x2528, - 0x84B8, 0x2537, 0x84B9, 0x253F, 0x84BA, 0x251D, 0x84BB, 0x2530, - 0x84BC, 0x2525, 0x84BD, 0x2538, 0x84BE, 0x2542, 0x8740, 0x2460, - 0x8741, 0x2461, 0x8742, 0x2462, 0x8743, 0x2463, 0x8744, 0x2464, - 0x8745, 0x2465, 0x8746, 0x2466, 0x8747, 0x2467, 0x8748, 0x2468, - 0x8749, 0x2469, 0x874A, 0x246A, 0x874B, 0x246B, 0x874C, 0x246C, - 0x874D, 0x246D, 0x874E, 0x246E, 0x874F, 0x246F, 0x8750, 0x2470, - 0x8751, 0x2471, 0x8752, 0x2472, 0x8753, 0x2473, 0x8754, 0x2160, - 0x8755, 0x2161, 0x8756, 0x2162, 0x8757, 0x2163, 0x8758, 0x2164, - 0x8759, 0x2165, 0x875A, 0x2166, 0x875B, 0x2167, 0x875C, 0x2168, - 0x875D, 0x2169, 0x875F, 0x3349, 0x8760, 0x3314, 0x8761, 0x3322, - 0x8762, 0x334D, 0x8763, 0x3318, 0x8764, 0x3327, 0x8765, 0x3303, - 0x8766, 0x3336, 0x8767, 0x3351, 0x8768, 0x3357, 0x8769, 0x330D, - 0x876A, 0x3326, 0x876B, 0x3323, 0x876C, 0x332B, 0x876D, 0x334A, - 0x876E, 0x333B, 0x876F, 0x339C, 0x8770, 0x339D, 0x8771, 0x339E, - 0x8772, 0x338E, 0x8773, 0x338F, 0x8774, 0x33C4, 0x8775, 0x33A1, - 0x877E, 0x337B, 0x8780, 0x301D, 0x8781, 0x301F, 0x8782, 0x2116, - 0x8783, 0x33CD, 0x8784, 0x2121, 0x8785, 0x32A4, 0x8786, 0x32A5, - 0x8787, 0x32A6, 0x8788, 0x32A7, 0x8789, 0x32A8, 0x878A, 0x3231, - 0x878B, 0x3232, 0x878C, 0x3239, 0x878D, 0x337E, 0x878E, 0x337D, - 0x878F, 0x337C, 0x8793, 0x222E, 0x8794, 0x2211, 0x8798, 0x221F, - 0x8799, 0x22BF, 0x889F, 0x4E9C, 0x88A0, 0x5516, 0x88A1, 0x5A03, - 0x88A2, 0x963F, 0x88A3, 0x54C0, 0x88A4, 0x611B, 0x88A5, 0x6328, - 0x88A6, 0x59F6, 0x88A7, 0x9022, 0x88A8, 0x8475, 0x88A9, 0x831C, - 0x88AA, 0x7A50, 0x88AB, 0x60AA, 0x88AC, 0x63E1, 0x88AD, 0x6E25, - 0x88AE, 0x65ED, 0x88AF, 0x8466, 0x88B0, 0x82A6, 0x88B1, 0x9BF5, - 0x88B2, 0x6893, 0x88B3, 0x5727, 0x88B4, 0x65A1, 0x88B5, 0x6271, - 0x88B6, 0x5B9B, 0x88B7, 0x59D0, 0x88B8, 0x867B, 0x88B9, 0x98F4, - 0x88BA, 0x7D62, 0x88BB, 0x7DBE, 0x88BC, 0x9B8E, 0x88BD, 0x6216, - 0x88BE, 0x7C9F, 0x88BF, 0x88B7, 0x88C0, 0x5B89, 0x88C1, 0x5EB5, - 0x88C2, 0x6309, 0x88C3, 0x6697, 0x88C4, 0x6848, 0x88C5, 0x95C7, - 0x88C6, 0x978D, 0x88C7, 0x674F, 0x88C8, 0x4EE5, 0x88C9, 0x4F0A, - 0x88CA, 0x4F4D, 0x88CB, 0x4F9D, 0x88CC, 0x5049, 0x88CD, 0x56F2, - 0x88CE, 0x5937, 0x88CF, 0x59D4, 0x88D0, 0x5A01, 0x88D1, 0x5C09, - 0x88D2, 0x60DF, 0x88D3, 0x610F, 0x88D4, 0x6170, 0x88D5, 0x6613, - 0x88D6, 0x6905, 0x88D7, 0x70BA, 0x88D8, 0x754F, 0x88D9, 0x7570, - 0x88DA, 0x79FB, 0x88DB, 0x7DAD, 0x88DC, 0x7DEF, 0x88DD, 0x80C3, - 0x88DE, 0x840E, 0x88DF, 0x8863, 0x88E0, 0x8B02, 0x88E1, 0x9055, - 0x88E2, 0x907A, 0x88E3, 0x533B, 0x88E4, 0x4E95, 0x88E5, 0x4EA5, - 0x88E6, 0x57DF, 0x88E7, 0x80B2, 0x88E8, 0x90C1, 0x88E9, 0x78EF, - 0x88EA, 0x4E00, 0x88EB, 0x58F1, 0x88EC, 0x6EA2, 0x88ED, 0x9038, - 0x88EE, 0x7A32, 0x88EF, 0x8328, 0x88F0, 0x828B, 0x88F1, 0x9C2F, - 0x88F2, 0x5141, 0x88F3, 0x5370, 0x88F4, 0x54BD, 0x88F5, 0x54E1, - 0x88F6, 0x56E0, 0x88F7, 0x59FB, 0x88F8, 0x5F15, 0x88F9, 0x98F2, - 0x88FA, 0x6DEB, 0x88FB, 0x80E4, 0x88FC, 0x852D, 0x8940, 0x9662, - 0x8941, 0x9670, 0x8942, 0x96A0, 0x8943, 0x97FB, 0x8944, 0x540B, - 0x8945, 0x53F3, 0x8946, 0x5B87, 0x8947, 0x70CF, 0x8948, 0x7FBD, - 0x8949, 0x8FC2, 0x894A, 0x96E8, 0x894B, 0x536F, 0x894C, 0x9D5C, - 0x894D, 0x7ABA, 0x894E, 0x4E11, 0x894F, 0x7893, 0x8950, 0x81FC, - 0x8951, 0x6E26, 0x8952, 0x5618, 0x8953, 0x5504, 0x8954, 0x6B1D, - 0x8955, 0x851A, 0x8956, 0x9C3B, 0x8957, 0x59E5, 0x8958, 0x53A9, - 0x8959, 0x6D66, 0x895A, 0x74DC, 0x895B, 0x958F, 0x895C, 0x5642, - 0x895D, 0x4E91, 0x895E, 0x904B, 0x895F, 0x96F2, 0x8960, 0x834F, - 0x8961, 0x990C, 0x8962, 0x53E1, 0x8963, 0x55B6, 0x8964, 0x5B30, - 0x8965, 0x5F71, 0x8966, 0x6620, 0x8967, 0x66F3, 0x8968, 0x6804, - 0x8969, 0x6C38, 0x896A, 0x6CF3, 0x896B, 0x6D29, 0x896C, 0x745B, - 0x896D, 0x76C8, 0x896E, 0x7A4E, 0x896F, 0x9834, 0x8970, 0x82F1, - 0x8971, 0x885B, 0x8972, 0x8A60, 0x8973, 0x92ED, 0x8974, 0x6DB2, - 0x8975, 0x75AB, 0x8976, 0x76CA, 0x8977, 0x99C5, 0x8978, 0x60A6, - 0x8979, 0x8B01, 0x897A, 0x8D8A, 0x897B, 0x95B2, 0x897C, 0x698E, - 0x897D, 0x53AD, 0x897E, 0x5186, 0x8980, 0x5712, 0x8981, 0x5830, - 0x8982, 0x5944, 0x8983, 0x5BB4, 0x8984, 0x5EF6, 0x8985, 0x6028, - 0x8986, 0x63A9, 0x8987, 0x63F4, 0x8988, 0x6CBF, 0x8989, 0x6F14, - 0x898A, 0x708E, 0x898B, 0x7114, 0x898C, 0x7159, 0x898D, 0x71D5, - 0x898E, 0x733F, 0x898F, 0x7E01, 0x8990, 0x8276, 0x8991, 0x82D1, - 0x8992, 0x8597, 0x8993, 0x9060, 0x8994, 0x925B, 0x8995, 0x9D1B, - 0x8996, 0x5869, 0x8997, 0x65BC, 0x8998, 0x6C5A, 0x8999, 0x7525, - 0x899A, 0x51F9, 0x899B, 0x592E, 0x899C, 0x5965, 0x899D, 0x5F80, - 0x899E, 0x5FDC, 0x899F, 0x62BC, 0x89A0, 0x65FA, 0x89A1, 0x6A2A, - 0x89A2, 0x6B27, 0x89A3, 0x6BB4, 0x89A4, 0x738B, 0x89A5, 0x7FC1, - 0x89A6, 0x8956, 0x89A7, 0x9D2C, 0x89A8, 0x9D0E, 0x89A9, 0x9EC4, - 0x89AA, 0x5CA1, 0x89AB, 0x6C96, 0x89AC, 0x837B, 0x89AD, 0x5104, - 0x89AE, 0x5C4B, 0x89AF, 0x61B6, 0x89B0, 0x81C6, 0x89B1, 0x6876, - 0x89B2, 0x7261, 0x89B3, 0x4E59, 0x89B4, 0x4FFA, 0x89B5, 0x5378, - 0x89B6, 0x6069, 0x89B7, 0x6E29, 0x89B8, 0x7A4F, 0x89B9, 0x97F3, - 0x89BA, 0x4E0B, 0x89BB, 0x5316, 0x89BC, 0x4EEE, 0x89BD, 0x4F55, - 0x89BE, 0x4F3D, 0x89BF, 0x4FA1, 0x89C0, 0x4F73, 0x89C1, 0x52A0, - 0x89C2, 0x53EF, 0x89C3, 0x5609, 0x89C4, 0x590F, 0x89C5, 0x5AC1, - 0x89C6, 0x5BB6, 0x89C7, 0x5BE1, 0x89C8, 0x79D1, 0x89C9, 0x6687, - 0x89CA, 0x679C, 0x89CB, 0x67B6, 0x89CC, 0x6B4C, 0x89CD, 0x6CB3, - 0x89CE, 0x706B, 0x89CF, 0x73C2, 0x89D0, 0x798D, 0x89D1, 0x79BE, - 0x89D2, 0x7A3C, 0x89D3, 0x7B87, 0x89D4, 0x82B1, 0x89D5, 0x82DB, - 0x89D6, 0x8304, 0x89D7, 0x8377, 0x89D8, 0x83EF, 0x89D9, 0x83D3, - 0x89DA, 0x8766, 0x89DB, 0x8AB2, 0x89DC, 0x5629, 0x89DD, 0x8CA8, - 0x89DE, 0x8FE6, 0x89DF, 0x904E, 0x89E0, 0x971E, 0x89E1, 0x868A, - 0x89E2, 0x4FC4, 0x89E3, 0x5CE8, 0x89E4, 0x6211, 0x89E5, 0x7259, - 0x89E6, 0x753B, 0x89E7, 0x81E5, 0x89E8, 0x82BD, 0x89E9, 0x86FE, - 0x89EA, 0x8CC0, 0x89EB, 0x96C5, 0x89EC, 0x9913, 0x89ED, 0x99D5, - 0x89EE, 0x4ECB, 0x89EF, 0x4F1A, 0x89F0, 0x89E3, 0x89F1, 0x56DE, - 0x89F2, 0x584A, 0x89F3, 0x58CA, 0x89F4, 0x5EFB, 0x89F5, 0x5FEB, - 0x89F6, 0x602A, 0x89F7, 0x6094, 0x89F8, 0x6062, 0x89F9, 0x61D0, - 0x89FA, 0x6212, 0x89FB, 0x62D0, 0x89FC, 0x6539, 0x8A40, 0x9B41, - 0x8A41, 0x6666, 0x8A42, 0x68B0, 0x8A43, 0x6D77, 0x8A44, 0x7070, - 0x8A45, 0x754C, 0x8A46, 0x7686, 0x8A47, 0x7D75, 0x8A48, 0x82A5, - 0x8A49, 0x87F9, 0x8A4A, 0x958B, 0x8A4B, 0x968E, 0x8A4C, 0x8C9D, - 0x8A4D, 0x51F1, 0x8A4E, 0x52BE, 0x8A4F, 0x5916, 0x8A50, 0x54B3, - 0x8A51, 0x5BB3, 0x8A52, 0x5D16, 0x8A53, 0x6168, 0x8A54, 0x6982, - 0x8A55, 0x6DAF, 0x8A56, 0x788D, 0x8A57, 0x84CB, 0x8A58, 0x8857, - 0x8A59, 0x8A72, 0x8A5A, 0x93A7, 0x8A5B, 0x9AB8, 0x8A5C, 0x6D6C, - 0x8A5D, 0x99A8, 0x8A5E, 0x86D9, 0x8A5F, 0x57A3, 0x8A60, 0x67FF, - 0x8A61, 0x86CE, 0x8A62, 0x920E, 0x8A63, 0x5283, 0x8A64, 0x5687, - 0x8A65, 0x5404, 0x8A66, 0x5ED3, 0x8A67, 0x62E1, 0x8A68, 0x64B9, - 0x8A69, 0x683C, 0x8A6A, 0x6838, 0x8A6B, 0x6BBB, 0x8A6C, 0x7372, - 0x8A6D, 0x78BA, 0x8A6E, 0x7A6B, 0x8A6F, 0x899A, 0x8A70, 0x89D2, - 0x8A71, 0x8D6B, 0x8A72, 0x8F03, 0x8A73, 0x90ED, 0x8A74, 0x95A3, - 0x8A75, 0x9694, 0x8A76, 0x9769, 0x8A77, 0x5B66, 0x8A78, 0x5CB3, - 0x8A79, 0x697D, 0x8A7A, 0x984D, 0x8A7B, 0x984E, 0x8A7C, 0x639B, - 0x8A7D, 0x7B20, 0x8A7E, 0x6A2B, 0x8A80, 0x6A7F, 0x8A81, 0x68B6, - 0x8A82, 0x9C0D, 0x8A83, 0x6F5F, 0x8A84, 0x5272, 0x8A85, 0x559D, - 0x8A86, 0x6070, 0x8A87, 0x62EC, 0x8A88, 0x6D3B, 0x8A89, 0x6E07, - 0x8A8A, 0x6ED1, 0x8A8B, 0x845B, 0x8A8C, 0x8910, 0x8A8D, 0x8F44, - 0x8A8E, 0x4E14, 0x8A8F, 0x9C39, 0x8A90, 0x53F6, 0x8A91, 0x691B, - 0x8A92, 0x6A3A, 0x8A93, 0x9784, 0x8A94, 0x682A, 0x8A95, 0x515C, - 0x8A96, 0x7AC3, 0x8A97, 0x84B2, 0x8A98, 0x91DC, 0x8A99, 0x938C, - 0x8A9A, 0x565B, 0x8A9B, 0x9D28, 0x8A9C, 0x6822, 0x8A9D, 0x8305, - 0x8A9E, 0x8431, 0x8A9F, 0x7CA5, 0x8AA0, 0x5208, 0x8AA1, 0x82C5, - 0x8AA2, 0x74E6, 0x8AA3, 0x4E7E, 0x8AA4, 0x4F83, 0x8AA5, 0x51A0, - 0x8AA6, 0x5BD2, 0x8AA7, 0x520A, 0x8AA8, 0x52D8, 0x8AA9, 0x52E7, - 0x8AAA, 0x5DFB, 0x8AAB, 0x559A, 0x8AAC, 0x582A, 0x8AAD, 0x59E6, - 0x8AAE, 0x5B8C, 0x8AAF, 0x5B98, 0x8AB0, 0x5BDB, 0x8AB1, 0x5E72, - 0x8AB2, 0x5E79, 0x8AB3, 0x60A3, 0x8AB4, 0x611F, 0x8AB5, 0x6163, - 0x8AB6, 0x61BE, 0x8AB7, 0x63DB, 0x8AB8, 0x6562, 0x8AB9, 0x67D1, - 0x8ABA, 0x6853, 0x8ABB, 0x68FA, 0x8ABC, 0x6B3E, 0x8ABD, 0x6B53, - 0x8ABE, 0x6C57, 0x8ABF, 0x6F22, 0x8AC0, 0x6F97, 0x8AC1, 0x6F45, - 0x8AC2, 0x74B0, 0x8AC3, 0x7518, 0x8AC4, 0x76E3, 0x8AC5, 0x770B, - 0x8AC6, 0x7AFF, 0x8AC7, 0x7BA1, 0x8AC8, 0x7C21, 0x8AC9, 0x7DE9, - 0x8ACA, 0x7F36, 0x8ACB, 0x7FF0, 0x8ACC, 0x809D, 0x8ACD, 0x8266, - 0x8ACE, 0x839E, 0x8ACF, 0x89B3, 0x8AD0, 0x8ACC, 0x8AD1, 0x8CAB, - 0x8AD2, 0x9084, 0x8AD3, 0x9451, 0x8AD4, 0x9593, 0x8AD5, 0x9591, - 0x8AD6, 0x95A2, 0x8AD7, 0x9665, 0x8AD8, 0x97D3, 0x8AD9, 0x9928, - 0x8ADA, 0x8218, 0x8ADB, 0x4E38, 0x8ADC, 0x542B, 0x8ADD, 0x5CB8, - 0x8ADE, 0x5DCC, 0x8ADF, 0x73A9, 0x8AE0, 0x764C, 0x8AE1, 0x773C, - 0x8AE2, 0x5CA9, 0x8AE3, 0x7FEB, 0x8AE4, 0x8D0B, 0x8AE5, 0x96C1, - 0x8AE6, 0x9811, 0x8AE7, 0x9854, 0x8AE8, 0x9858, 0x8AE9, 0x4F01, - 0x8AEA, 0x4F0E, 0x8AEB, 0x5371, 0x8AEC, 0x559C, 0x8AED, 0x5668, - 0x8AEE, 0x57FA, 0x8AEF, 0x5947, 0x8AF0, 0x5B09, 0x8AF1, 0x5BC4, - 0x8AF2, 0x5C90, 0x8AF3, 0x5E0C, 0x8AF4, 0x5E7E, 0x8AF5, 0x5FCC, - 0x8AF6, 0x63EE, 0x8AF7, 0x673A, 0x8AF8, 0x65D7, 0x8AF9, 0x65E2, - 0x8AFA, 0x671F, 0x8AFB, 0x68CB, 0x8AFC, 0x68C4, 0x8B40, 0x6A5F, - 0x8B41, 0x5E30, 0x8B42, 0x6BC5, 0x8B43, 0x6C17, 0x8B44, 0x6C7D, - 0x8B45, 0x757F, 0x8B46, 0x7948, 0x8B47, 0x5B63, 0x8B48, 0x7A00, - 0x8B49, 0x7D00, 0x8B4A, 0x5FBD, 0x8B4B, 0x898F, 0x8B4C, 0x8A18, - 0x8B4D, 0x8CB4, 0x8B4E, 0x8D77, 0x8B4F, 0x8ECC, 0x8B50, 0x8F1D, - 0x8B51, 0x98E2, 0x8B52, 0x9A0E, 0x8B53, 0x9B3C, 0x8B54, 0x4E80, - 0x8B55, 0x507D, 0x8B56, 0x5100, 0x8B57, 0x5993, 0x8B58, 0x5B9C, - 0x8B59, 0x622F, 0x8B5A, 0x6280, 0x8B5B, 0x64EC, 0x8B5C, 0x6B3A, - 0x8B5D, 0x72A0, 0x8B5E, 0x7591, 0x8B5F, 0x7947, 0x8B60, 0x7FA9, - 0x8B61, 0x87FB, 0x8B62, 0x8ABC, 0x8B63, 0x8B70, 0x8B64, 0x63AC, - 0x8B65, 0x83CA, 0x8B66, 0x97A0, 0x8B67, 0x5409, 0x8B68, 0x5403, - 0x8B69, 0x55AB, 0x8B6A, 0x6854, 0x8B6B, 0x6A58, 0x8B6C, 0x8A70, - 0x8B6D, 0x7827, 0x8B6E, 0x6775, 0x8B6F, 0x9ECD, 0x8B70, 0x5374, - 0x8B71, 0x5BA2, 0x8B72, 0x811A, 0x8B73, 0x8650, 0x8B74, 0x9006, - 0x8B75, 0x4E18, 0x8B76, 0x4E45, 0x8B77, 0x4EC7, 0x8B78, 0x4F11, - 0x8B79, 0x53CA, 0x8B7A, 0x5438, 0x8B7B, 0x5BAE, 0x8B7C, 0x5F13, - 0x8B7D, 0x6025, 0x8B7E, 0x6551, 0x8B80, 0x673D, 0x8B81, 0x6C42, - 0x8B82, 0x6C72, 0x8B83, 0x6CE3, 0x8B84, 0x7078, 0x8B85, 0x7403, - 0x8B86, 0x7A76, 0x8B87, 0x7AAE, 0x8B88, 0x7B08, 0x8B89, 0x7D1A, - 0x8B8A, 0x7CFE, 0x8B8B, 0x7D66, 0x8B8C, 0x65E7, 0x8B8D, 0x725B, - 0x8B8E, 0x53BB, 0x8B8F, 0x5C45, 0x8B90, 0x5DE8, 0x8B91, 0x62D2, - 0x8B92, 0x62E0, 0x8B93, 0x6319, 0x8B94, 0x6E20, 0x8B95, 0x865A, - 0x8B96, 0x8A31, 0x8B97, 0x8DDD, 0x8B98, 0x92F8, 0x8B99, 0x6F01, - 0x8B9A, 0x79A6, 0x8B9B, 0x9B5A, 0x8B9C, 0x4EA8, 0x8B9D, 0x4EAB, - 0x8B9E, 0x4EAC, 0x8B9F, 0x4F9B, 0x8BA0, 0x4FA0, 0x8BA1, 0x50D1, - 0x8BA2, 0x5147, 0x8BA3, 0x7AF6, 0x8BA4, 0x5171, 0x8BA5, 0x51F6, - 0x8BA6, 0x5354, 0x8BA7, 0x5321, 0x8BA8, 0x537F, 0x8BA9, 0x53EB, - 0x8BAA, 0x55AC, 0x8BAB, 0x5883, 0x8BAC, 0x5CE1, 0x8BAD, 0x5F37, - 0x8BAE, 0x5F4A, 0x8BAF, 0x602F, 0x8BB0, 0x6050, 0x8BB1, 0x606D, - 0x8BB2, 0x631F, 0x8BB3, 0x6559, 0x8BB4, 0x6A4B, 0x8BB5, 0x6CC1, - 0x8BB6, 0x72C2, 0x8BB7, 0x72ED, 0x8BB8, 0x77EF, 0x8BB9, 0x80F8, - 0x8BBA, 0x8105, 0x8BBB, 0x8208, 0x8BBC, 0x854E, 0x8BBD, 0x90F7, - 0x8BBE, 0x93E1, 0x8BBF, 0x97FF, 0x8BC0, 0x9957, 0x8BC1, 0x9A5A, - 0x8BC2, 0x4EF0, 0x8BC3, 0x51DD, 0x8BC4, 0x5C2D, 0x8BC5, 0x6681, - 0x8BC6, 0x696D, 0x8BC7, 0x5C40, 0x8BC8, 0x66F2, 0x8BC9, 0x6975, - 0x8BCA, 0x7389, 0x8BCB, 0x6850, 0x8BCC, 0x7C81, 0x8BCD, 0x50C5, - 0x8BCE, 0x52E4, 0x8BCF, 0x5747, 0x8BD0, 0x5DFE, 0x8BD1, 0x9326, - 0x8BD2, 0x65A4, 0x8BD3, 0x6B23, 0x8BD4, 0x6B3D, 0x8BD5, 0x7434, - 0x8BD6, 0x7981, 0x8BD7, 0x79BD, 0x8BD8, 0x7B4B, 0x8BD9, 0x7DCA, - 0x8BDA, 0x82B9, 0x8BDB, 0x83CC, 0x8BDC, 0x887F, 0x8BDD, 0x895F, - 0x8BDE, 0x8B39, 0x8BDF, 0x8FD1, 0x8BE0, 0x91D1, 0x8BE1, 0x541F, - 0x8BE2, 0x9280, 0x8BE3, 0x4E5D, 0x8BE4, 0x5036, 0x8BE5, 0x53E5, - 0x8BE6, 0x533A, 0x8BE7, 0x72D7, 0x8BE8, 0x7396, 0x8BE9, 0x77E9, - 0x8BEA, 0x82E6, 0x8BEB, 0x8EAF, 0x8BEC, 0x99C6, 0x8BED, 0x99C8, - 0x8BEE, 0x99D2, 0x8BEF, 0x5177, 0x8BF0, 0x611A, 0x8BF1, 0x865E, - 0x8BF2, 0x55B0, 0x8BF3, 0x7A7A, 0x8BF4, 0x5076, 0x8BF5, 0x5BD3, - 0x8BF6, 0x9047, 0x8BF7, 0x9685, 0x8BF8, 0x4E32, 0x8BF9, 0x6ADB, - 0x8BFA, 0x91E7, 0x8BFB, 0x5C51, 0x8BFC, 0x5C48, 0x8C40, 0x6398, - 0x8C41, 0x7A9F, 0x8C42, 0x6C93, 0x8C43, 0x9774, 0x8C44, 0x8F61, - 0x8C45, 0x7AAA, 0x8C46, 0x718A, 0x8C47, 0x9688, 0x8C48, 0x7C82, - 0x8C49, 0x6817, 0x8C4A, 0x7E70, 0x8C4B, 0x6851, 0x8C4C, 0x936C, - 0x8C4D, 0x52F2, 0x8C4E, 0x541B, 0x8C4F, 0x85AB, 0x8C50, 0x8A13, - 0x8C51, 0x7FA4, 0x8C52, 0x8ECD, 0x8C53, 0x90E1, 0x8C54, 0x5366, - 0x8C55, 0x8888, 0x8C56, 0x7941, 0x8C57, 0x4FC2, 0x8C58, 0x50BE, - 0x8C59, 0x5211, 0x8C5A, 0x5144, 0x8C5B, 0x5553, 0x8C5C, 0x572D, - 0x8C5D, 0x73EA, 0x8C5E, 0x578B, 0x8C5F, 0x5951, 0x8C60, 0x5F62, - 0x8C61, 0x5F84, 0x8C62, 0x6075, 0x8C63, 0x6176, 0x8C64, 0x6167, - 0x8C65, 0x61A9, 0x8C66, 0x63B2, 0x8C67, 0x643A, 0x8C68, 0x656C, - 0x8C69, 0x666F, 0x8C6A, 0x6842, 0x8C6B, 0x6E13, 0x8C6C, 0x7566, - 0x8C6D, 0x7A3D, 0x8C6E, 0x7CFB, 0x8C6F, 0x7D4C, 0x8C70, 0x7D99, - 0x8C71, 0x7E4B, 0x8C72, 0x7F6B, 0x8C73, 0x830E, 0x8C74, 0x834A, - 0x8C75, 0x86CD, 0x8C76, 0x8A08, 0x8C77, 0x8A63, 0x8C78, 0x8B66, - 0x8C79, 0x8EFD, 0x8C7A, 0x981A, 0x8C7B, 0x9D8F, 0x8C7C, 0x82B8, - 0x8C7D, 0x8FCE, 0x8C7E, 0x9BE8, 0x8C80, 0x5287, 0x8C81, 0x621F, - 0x8C82, 0x6483, 0x8C83, 0x6FC0, 0x8C84, 0x9699, 0x8C85, 0x6841, - 0x8C86, 0x5091, 0x8C87, 0x6B20, 0x8C88, 0x6C7A, 0x8C89, 0x6F54, - 0x8C8A, 0x7A74, 0x8C8B, 0x7D50, 0x8C8C, 0x8840, 0x8C8D, 0x8A23, - 0x8C8E, 0x6708, 0x8C8F, 0x4EF6, 0x8C90, 0x5039, 0x8C91, 0x5026, - 0x8C92, 0x5065, 0x8C93, 0x517C, 0x8C94, 0x5238, 0x8C95, 0x5263, - 0x8C96, 0x55A7, 0x8C97, 0x570F, 0x8C98, 0x5805, 0x8C99, 0x5ACC, - 0x8C9A, 0x5EFA, 0x8C9B, 0x61B2, 0x8C9C, 0x61F8, 0x8C9D, 0x62F3, - 0x8C9E, 0x6372, 0x8C9F, 0x691C, 0x8CA0, 0x6A29, 0x8CA1, 0x727D, - 0x8CA2, 0x72AC, 0x8CA3, 0x732E, 0x8CA4, 0x7814, 0x8CA5, 0x786F, - 0x8CA6, 0x7D79, 0x8CA7, 0x770C, 0x8CA8, 0x80A9, 0x8CA9, 0x898B, - 0x8CAA, 0x8B19, 0x8CAB, 0x8CE2, 0x8CAC, 0x8ED2, 0x8CAD, 0x9063, - 0x8CAE, 0x9375, 0x8CAF, 0x967A, 0x8CB0, 0x9855, 0x8CB1, 0x9A13, - 0x8CB2, 0x9E78, 0x8CB3, 0x5143, 0x8CB4, 0x539F, 0x8CB5, 0x53B3, - 0x8CB6, 0x5E7B, 0x8CB7, 0x5F26, 0x8CB8, 0x6E1B, 0x8CB9, 0x6E90, - 0x8CBA, 0x7384, 0x8CBB, 0x73FE, 0x8CBC, 0x7D43, 0x8CBD, 0x8237, - 0x8CBE, 0x8A00, 0x8CBF, 0x8AFA, 0x8CC0, 0x9650, 0x8CC1, 0x4E4E, - 0x8CC2, 0x500B, 0x8CC3, 0x53E4, 0x8CC4, 0x547C, 0x8CC5, 0x56FA, - 0x8CC6, 0x59D1, 0x8CC7, 0x5B64, 0x8CC8, 0x5DF1, 0x8CC9, 0x5EAB, - 0x8CCA, 0x5F27, 0x8CCB, 0x6238, 0x8CCC, 0x6545, 0x8CCD, 0x67AF, - 0x8CCE, 0x6E56, 0x8CCF, 0x72D0, 0x8CD0, 0x7CCA, 0x8CD1, 0x88B4, - 0x8CD2, 0x80A1, 0x8CD3, 0x80E1, 0x8CD4, 0x83F0, 0x8CD5, 0x864E, - 0x8CD6, 0x8A87, 0x8CD7, 0x8DE8, 0x8CD8, 0x9237, 0x8CD9, 0x96C7, - 0x8CDA, 0x9867, 0x8CDB, 0x9F13, 0x8CDC, 0x4E94, 0x8CDD, 0x4E92, - 0x8CDE, 0x4F0D, 0x8CDF, 0x5348, 0x8CE0, 0x5449, 0x8CE1, 0x543E, - 0x8CE2, 0x5A2F, 0x8CE3, 0x5F8C, 0x8CE4, 0x5FA1, 0x8CE5, 0x609F, - 0x8CE6, 0x68A7, 0x8CE7, 0x6A8E, 0x8CE8, 0x745A, 0x8CE9, 0x7881, - 0x8CEA, 0x8A9E, 0x8CEB, 0x8AA4, 0x8CEC, 0x8B77, 0x8CED, 0x9190, - 0x8CEE, 0x4E5E, 0x8CEF, 0x9BC9, 0x8CF0, 0x4EA4, 0x8CF1, 0x4F7C, - 0x8CF2, 0x4FAF, 0x8CF3, 0x5019, 0x8CF4, 0x5016, 0x8CF5, 0x5149, - 0x8CF6, 0x516C, 0x8CF7, 0x529F, 0x8CF8, 0x52B9, 0x8CF9, 0x52FE, - 0x8CFA, 0x539A, 0x8CFB, 0x53E3, 0x8CFC, 0x5411, 0x8D40, 0x540E, - 0x8D41, 0x5589, 0x8D42, 0x5751, 0x8D43, 0x57A2, 0x8D44, 0x597D, - 0x8D45, 0x5B54, 0x8D46, 0x5B5D, 0x8D47, 0x5B8F, 0x8D48, 0x5DE5, - 0x8D49, 0x5DE7, 0x8D4A, 0x5DF7, 0x8D4B, 0x5E78, 0x8D4C, 0x5E83, - 0x8D4D, 0x5E9A, 0x8D4E, 0x5EB7, 0x8D4F, 0x5F18, 0x8D50, 0x6052, - 0x8D51, 0x614C, 0x8D52, 0x6297, 0x8D53, 0x62D8, 0x8D54, 0x63A7, - 0x8D55, 0x653B, 0x8D56, 0x6602, 0x8D57, 0x6643, 0x8D58, 0x66F4, - 0x8D59, 0x676D, 0x8D5A, 0x6821, 0x8D5B, 0x6897, 0x8D5C, 0x69CB, - 0x8D5D, 0x6C5F, 0x8D5E, 0x6D2A, 0x8D5F, 0x6D69, 0x8D60, 0x6E2F, - 0x8D61, 0x6E9D, 0x8D62, 0x7532, 0x8D63, 0x7687, 0x8D64, 0x786C, - 0x8D65, 0x7A3F, 0x8D66, 0x7CE0, 0x8D67, 0x7D05, 0x8D68, 0x7D18, - 0x8D69, 0x7D5E, 0x8D6A, 0x7DB1, 0x8D6B, 0x8015, 0x8D6C, 0x8003, - 0x8D6D, 0x80AF, 0x8D6E, 0x80B1, 0x8D6F, 0x8154, 0x8D70, 0x818F, - 0x8D71, 0x822A, 0x8D72, 0x8352, 0x8D73, 0x884C, 0x8D74, 0x8861, - 0x8D75, 0x8B1B, 0x8D76, 0x8CA2, 0x8D77, 0x8CFC, 0x8D78, 0x90CA, - 0x8D79, 0x9175, 0x8D7A, 0x9271, 0x8D7B, 0x783F, 0x8D7C, 0x92FC, - 0x8D7D, 0x95A4, 0x8D7E, 0x964D, 0x8D80, 0x9805, 0x8D81, 0x9999, - 0x8D82, 0x9AD8, 0x8D83, 0x9D3B, 0x8D84, 0x525B, 0x8D85, 0x52AB, - 0x8D86, 0x53F7, 0x8D87, 0x5408, 0x8D88, 0x58D5, 0x8D89, 0x62F7, - 0x8D8A, 0x6FE0, 0x8D8B, 0x8C6A, 0x8D8C, 0x8F5F, 0x8D8D, 0x9EB9, - 0x8D8E, 0x514B, 0x8D8F, 0x523B, 0x8D90, 0x544A, 0x8D91, 0x56FD, - 0x8D92, 0x7A40, 0x8D93, 0x9177, 0x8D94, 0x9D60, 0x8D95, 0x9ED2, - 0x8D96, 0x7344, 0x8D97, 0x6F09, 0x8D98, 0x8170, 0x8D99, 0x7511, - 0x8D9A, 0x5FFD, 0x8D9B, 0x60DA, 0x8D9C, 0x9AA8, 0x8D9D, 0x72DB, - 0x8D9E, 0x8FBC, 0x8D9F, 0x6B64, 0x8DA0, 0x9803, 0x8DA1, 0x4ECA, - 0x8DA2, 0x56F0, 0x8DA3, 0x5764, 0x8DA4, 0x58BE, 0x8DA5, 0x5A5A, - 0x8DA6, 0x6068, 0x8DA7, 0x61C7, 0x8DA8, 0x660F, 0x8DA9, 0x6606, - 0x8DAA, 0x6839, 0x8DAB, 0x68B1, 0x8DAC, 0x6DF7, 0x8DAD, 0x75D5, - 0x8DAE, 0x7D3A, 0x8DAF, 0x826E, 0x8DB0, 0x9B42, 0x8DB1, 0x4E9B, - 0x8DB2, 0x4F50, 0x8DB3, 0x53C9, 0x8DB4, 0x5506, 0x8DB5, 0x5D6F, - 0x8DB6, 0x5DE6, 0x8DB7, 0x5DEE, 0x8DB8, 0x67FB, 0x8DB9, 0x6C99, - 0x8DBA, 0x7473, 0x8DBB, 0x7802, 0x8DBC, 0x8A50, 0x8DBD, 0x9396, - 0x8DBE, 0x88DF, 0x8DBF, 0x5750, 0x8DC0, 0x5EA7, 0x8DC1, 0x632B, - 0x8DC2, 0x50B5, 0x8DC3, 0x50AC, 0x8DC4, 0x518D, 0x8DC5, 0x6700, - 0x8DC6, 0x54C9, 0x8DC7, 0x585E, 0x8DC8, 0x59BB, 0x8DC9, 0x5BB0, - 0x8DCA, 0x5F69, 0x8DCB, 0x624D, 0x8DCC, 0x63A1, 0x8DCD, 0x683D, - 0x8DCE, 0x6B73, 0x8DCF, 0x6E08, 0x8DD0, 0x707D, 0x8DD1, 0x91C7, - 0x8DD2, 0x7280, 0x8DD3, 0x7815, 0x8DD4, 0x7826, 0x8DD5, 0x796D, - 0x8DD6, 0x658E, 0x8DD7, 0x7D30, 0x8DD8, 0x83DC, 0x8DD9, 0x88C1, - 0x8DDA, 0x8F09, 0x8DDB, 0x969B, 0x8DDC, 0x5264, 0x8DDD, 0x5728, - 0x8DDE, 0x6750, 0x8DDF, 0x7F6A, 0x8DE0, 0x8CA1, 0x8DE1, 0x51B4, - 0x8DE2, 0x5742, 0x8DE3, 0x962A, 0x8DE4, 0x583A, 0x8DE5, 0x698A, - 0x8DE6, 0x80B4, 0x8DE7, 0x54B2, 0x8DE8, 0x5D0E, 0x8DE9, 0x57FC, - 0x8DEA, 0x7895, 0x8DEB, 0x9DFA, 0x8DEC, 0x4F5C, 0x8DED, 0x524A, - 0x8DEE, 0x548B, 0x8DEF, 0x643E, 0x8DF0, 0x6628, 0x8DF1, 0x6714, - 0x8DF2, 0x67F5, 0x8DF3, 0x7A84, 0x8DF4, 0x7B56, 0x8DF5, 0x7D22, - 0x8DF6, 0x932F, 0x8DF7, 0x685C, 0x8DF8, 0x9BAD, 0x8DF9, 0x7B39, - 0x8DFA, 0x5319, 0x8DFB, 0x518A, 0x8DFC, 0x5237, 0x8E40, 0x5BDF, - 0x8E41, 0x62F6, 0x8E42, 0x64AE, 0x8E43, 0x64E6, 0x8E44, 0x672D, - 0x8E45, 0x6BBA, 0x8E46, 0x85A9, 0x8E47, 0x96D1, 0x8E48, 0x7690, - 0x8E49, 0x9BD6, 0x8E4A, 0x634C, 0x8E4B, 0x9306, 0x8E4C, 0x9BAB, - 0x8E4D, 0x76BF, 0x8E4E, 0x6652, 0x8E4F, 0x4E09, 0x8E50, 0x5098, - 0x8E51, 0x53C2, 0x8E52, 0x5C71, 0x8E53, 0x60E8, 0x8E54, 0x6492, - 0x8E55, 0x6563, 0x8E56, 0x685F, 0x8E57, 0x71E6, 0x8E58, 0x73CA, - 0x8E59, 0x7523, 0x8E5A, 0x7B97, 0x8E5B, 0x7E82, 0x8E5C, 0x8695, - 0x8E5D, 0x8B83, 0x8E5E, 0x8CDB, 0x8E5F, 0x9178, 0x8E60, 0x9910, - 0x8E61, 0x65AC, 0x8E62, 0x66AB, 0x8E63, 0x6B8B, 0x8E64, 0x4ED5, - 0x8E65, 0x4ED4, 0x8E66, 0x4F3A, 0x8E67, 0x4F7F, 0x8E68, 0x523A, - 0x8E69, 0x53F8, 0x8E6A, 0x53F2, 0x8E6B, 0x55E3, 0x8E6C, 0x56DB, - 0x8E6D, 0x58EB, 0x8E6E, 0x59CB, 0x8E6F, 0x59C9, 0x8E70, 0x59FF, - 0x8E71, 0x5B50, 0x8E72, 0x5C4D, 0x8E73, 0x5E02, 0x8E74, 0x5E2B, - 0x8E75, 0x5FD7, 0x8E76, 0x601D, 0x8E77, 0x6307, 0x8E78, 0x652F, - 0x8E79, 0x5B5C, 0x8E7A, 0x65AF, 0x8E7B, 0x65BD, 0x8E7C, 0x65E8, - 0x8E7D, 0x679D, 0x8E7E, 0x6B62, 0x8E80, 0x6B7B, 0x8E81, 0x6C0F, - 0x8E82, 0x7345, 0x8E83, 0x7949, 0x8E84, 0x79C1, 0x8E85, 0x7CF8, - 0x8E86, 0x7D19, 0x8E87, 0x7D2B, 0x8E88, 0x80A2, 0x8E89, 0x8102, - 0x8E8A, 0x81F3, 0x8E8B, 0x8996, 0x8E8C, 0x8A5E, 0x8E8D, 0x8A69, - 0x8E8E, 0x8A66, 0x8E8F, 0x8A8C, 0x8E90, 0x8AEE, 0x8E91, 0x8CC7, - 0x8E92, 0x8CDC, 0x8E93, 0x96CC, 0x8E94, 0x98FC, 0x8E95, 0x6B6F, - 0x8E96, 0x4E8B, 0x8E97, 0x4F3C, 0x8E98, 0x4F8D, 0x8E99, 0x5150, - 0x8E9A, 0x5B57, 0x8E9B, 0x5BFA, 0x8E9C, 0x6148, 0x8E9D, 0x6301, - 0x8E9E, 0x6642, 0x8E9F, 0x6B21, 0x8EA0, 0x6ECB, 0x8EA1, 0x6CBB, - 0x8EA2, 0x723E, 0x8EA3, 0x74BD, 0x8EA4, 0x75D4, 0x8EA5, 0x78C1, - 0x8EA6, 0x793A, 0x8EA7, 0x800C, 0x8EA8, 0x8033, 0x8EA9, 0x81EA, - 0x8EAA, 0x8494, 0x8EAB, 0x8F9E, 0x8EAC, 0x6C50, 0x8EAD, 0x9E7F, - 0x8EAE, 0x5F0F, 0x8EAF, 0x8B58, 0x8EB0, 0x9D2B, 0x8EB1, 0x7AFA, - 0x8EB2, 0x8EF8, 0x8EB3, 0x5B8D, 0x8EB4, 0x96EB, 0x8EB5, 0x4E03, - 0x8EB6, 0x53F1, 0x8EB7, 0x57F7, 0x8EB8, 0x5931, 0x8EB9, 0x5AC9, - 0x8EBA, 0x5BA4, 0x8EBB, 0x6089, 0x8EBC, 0x6E7F, 0x8EBD, 0x6F06, - 0x8EBE, 0x75BE, 0x8EBF, 0x8CEA, 0x8EC0, 0x5B9F, 0x8EC1, 0x8500, - 0x8EC2, 0x7BE0, 0x8EC3, 0x5072, 0x8EC4, 0x67F4, 0x8EC5, 0x829D, - 0x8EC6, 0x5C61, 0x8EC7, 0x854A, 0x8EC8, 0x7E1E, 0x8EC9, 0x820E, - 0x8ECA, 0x5199, 0x8ECB, 0x5C04, 0x8ECC, 0x6368, 0x8ECD, 0x8D66, - 0x8ECE, 0x659C, 0x8ECF, 0x716E, 0x8ED0, 0x793E, 0x8ED1, 0x7D17, - 0x8ED2, 0x8005, 0x8ED3, 0x8B1D, 0x8ED4, 0x8ECA, 0x8ED5, 0x906E, - 0x8ED6, 0x86C7, 0x8ED7, 0x90AA, 0x8ED8, 0x501F, 0x8ED9, 0x52FA, - 0x8EDA, 0x5C3A, 0x8EDB, 0x6753, 0x8EDC, 0x707C, 0x8EDD, 0x7235, - 0x8EDE, 0x914C, 0x8EDF, 0x91C8, 0x8EE0, 0x932B, 0x8EE1, 0x82E5, - 0x8EE2, 0x5BC2, 0x8EE3, 0x5F31, 0x8EE4, 0x60F9, 0x8EE5, 0x4E3B, - 0x8EE6, 0x53D6, 0x8EE7, 0x5B88, 0x8EE8, 0x624B, 0x8EE9, 0x6731, - 0x8EEA, 0x6B8A, 0x8EEB, 0x72E9, 0x8EEC, 0x73E0, 0x8EED, 0x7A2E, - 0x8EEE, 0x816B, 0x8EEF, 0x8DA3, 0x8EF0, 0x9152, 0x8EF1, 0x9996, - 0x8EF2, 0x5112, 0x8EF3, 0x53D7, 0x8EF4, 0x546A, 0x8EF5, 0x5BFF, - 0x8EF6, 0x6388, 0x8EF7, 0x6A39, 0x8EF8, 0x7DAC, 0x8EF9, 0x9700, - 0x8EFA, 0x56DA, 0x8EFB, 0x53CE, 0x8EFC, 0x5468, 0x8F40, 0x5B97, - 0x8F41, 0x5C31, 0x8F42, 0x5DDE, 0x8F43, 0x4FEE, 0x8F44, 0x6101, - 0x8F45, 0x62FE, 0x8F46, 0x6D32, 0x8F47, 0x79C0, 0x8F48, 0x79CB, - 0x8F49, 0x7D42, 0x8F4A, 0x7E4D, 0x8F4B, 0x7FD2, 0x8F4C, 0x81ED, - 0x8F4D, 0x821F, 0x8F4E, 0x8490, 0x8F4F, 0x8846, 0x8F50, 0x8972, - 0x8F51, 0x8B90, 0x8F52, 0x8E74, 0x8F53, 0x8F2F, 0x8F54, 0x9031, - 0x8F55, 0x914B, 0x8F56, 0x916C, 0x8F57, 0x96C6, 0x8F58, 0x919C, - 0x8F59, 0x4EC0, 0x8F5A, 0x4F4F, 0x8F5B, 0x5145, 0x8F5C, 0x5341, - 0x8F5D, 0x5F93, 0x8F5E, 0x620E, 0x8F5F, 0x67D4, 0x8F60, 0x6C41, - 0x8F61, 0x6E0B, 0x8F62, 0x7363, 0x8F63, 0x7E26, 0x8F64, 0x91CD, - 0x8F65, 0x9283, 0x8F66, 0x53D4, 0x8F67, 0x5919, 0x8F68, 0x5BBF, - 0x8F69, 0x6DD1, 0x8F6A, 0x795D, 0x8F6B, 0x7E2E, 0x8F6C, 0x7C9B, - 0x8F6D, 0x587E, 0x8F6E, 0x719F, 0x8F6F, 0x51FA, 0x8F70, 0x8853, - 0x8F71, 0x8FF0, 0x8F72, 0x4FCA, 0x8F73, 0x5CFB, 0x8F74, 0x6625, - 0x8F75, 0x77AC, 0x8F76, 0x7AE3, 0x8F77, 0x821C, 0x8F78, 0x99FF, - 0x8F79, 0x51C6, 0x8F7A, 0x5FAA, 0x8F7B, 0x65EC, 0x8F7C, 0x696F, - 0x8F7D, 0x6B89, 0x8F7E, 0x6DF3, 0x8F80, 0x6E96, 0x8F81, 0x6F64, - 0x8F82, 0x76FE, 0x8F83, 0x7D14, 0x8F84, 0x5DE1, 0x8F85, 0x9075, - 0x8F86, 0x9187, 0x8F87, 0x9806, 0x8F88, 0x51E6, 0x8F89, 0x521D, - 0x8F8A, 0x6240, 0x8F8B, 0x6691, 0x8F8C, 0x66D9, 0x8F8D, 0x6E1A, - 0x8F8E, 0x5EB6, 0x8F8F, 0x7DD2, 0x8F90, 0x7F72, 0x8F91, 0x66F8, - 0x8F92, 0x85AF, 0x8F93, 0x85F7, 0x8F94, 0x8AF8, 0x8F95, 0x52A9, - 0x8F96, 0x53D9, 0x8F97, 0x5973, 0x8F98, 0x5E8F, 0x8F99, 0x5F90, - 0x8F9A, 0x6055, 0x8F9B, 0x92E4, 0x8F9C, 0x9664, 0x8F9D, 0x50B7, - 0x8F9E, 0x511F, 0x8F9F, 0x52DD, 0x8FA0, 0x5320, 0x8FA1, 0x5347, - 0x8FA2, 0x53EC, 0x8FA3, 0x54E8, 0x8FA4, 0x5546, 0x8FA5, 0x5531, - 0x8FA6, 0x5617, 0x8FA7, 0x5968, 0x8FA8, 0x59BE, 0x8FA9, 0x5A3C, - 0x8FAA, 0x5BB5, 0x8FAB, 0x5C06, 0x8FAC, 0x5C0F, 0x8FAD, 0x5C11, - 0x8FAE, 0x5C1A, 0x8FAF, 0x5E84, 0x8FB0, 0x5E8A, 0x8FB1, 0x5EE0, - 0x8FB2, 0x5F70, 0x8FB3, 0x627F, 0x8FB4, 0x6284, 0x8FB5, 0x62DB, - 0x8FB6, 0x638C, 0x8FB7, 0x6377, 0x8FB8, 0x6607, 0x8FB9, 0x660C, - 0x8FBA, 0x662D, 0x8FBB, 0x6676, 0x8FBC, 0x677E, 0x8FBD, 0x68A2, - 0x8FBE, 0x6A1F, 0x8FBF, 0x6A35, 0x8FC0, 0x6CBC, 0x8FC1, 0x6D88, - 0x8FC2, 0x6E09, 0x8FC3, 0x6E58, 0x8FC4, 0x713C, 0x8FC5, 0x7126, - 0x8FC6, 0x7167, 0x8FC7, 0x75C7, 0x8FC8, 0x7701, 0x8FC9, 0x785D, - 0x8FCA, 0x7901, 0x8FCB, 0x7965, 0x8FCC, 0x79F0, 0x8FCD, 0x7AE0, - 0x8FCE, 0x7B11, 0x8FCF, 0x7CA7, 0x8FD0, 0x7D39, 0x8FD1, 0x8096, - 0x8FD2, 0x83D6, 0x8FD3, 0x848B, 0x8FD4, 0x8549, 0x8FD5, 0x885D, - 0x8FD6, 0x88F3, 0x8FD7, 0x8A1F, 0x8FD8, 0x8A3C, 0x8FD9, 0x8A54, - 0x8FDA, 0x8A73, 0x8FDB, 0x8C61, 0x8FDC, 0x8CDE, 0x8FDD, 0x91A4, - 0x8FDE, 0x9266, 0x8FDF, 0x937E, 0x8FE0, 0x9418, 0x8FE1, 0x969C, - 0x8FE2, 0x9798, 0x8FE3, 0x4E0A, 0x8FE4, 0x4E08, 0x8FE5, 0x4E1E, - 0x8FE6, 0x4E57, 0x8FE7, 0x5197, 0x8FE8, 0x5270, 0x8FE9, 0x57CE, - 0x8FEA, 0x5834, 0x8FEB, 0x58CC, 0x8FEC, 0x5B22, 0x8FED, 0x5E38, - 0x8FEE, 0x60C5, 0x8FEF, 0x64FE, 0x8FF0, 0x6761, 0x8FF1, 0x6756, - 0x8FF2, 0x6D44, 0x8FF3, 0x72B6, 0x8FF4, 0x7573, 0x8FF5, 0x7A63, - 0x8FF6, 0x84B8, 0x8FF7, 0x8B72, 0x8FF8, 0x91B8, 0x8FF9, 0x9320, - 0x8FFA, 0x5631, 0x8FFB, 0x57F4, 0x8FFC, 0x98FE, 0x9040, 0x62ED, - 0x9041, 0x690D, 0x9042, 0x6B96, 0x9043, 0x71ED, 0x9044, 0x7E54, - 0x9045, 0x8077, 0x9046, 0x8272, 0x9047, 0x89E6, 0x9048, 0x98DF, - 0x9049, 0x8755, 0x904A, 0x8FB1, 0x904B, 0x5C3B, 0x904C, 0x4F38, - 0x904D, 0x4FE1, 0x904E, 0x4FB5, 0x904F, 0x5507, 0x9050, 0x5A20, - 0x9051, 0x5BDD, 0x9052, 0x5BE9, 0x9053, 0x5FC3, 0x9054, 0x614E, - 0x9055, 0x632F, 0x9056, 0x65B0, 0x9057, 0x664B, 0x9058, 0x68EE, - 0x9059, 0x699B, 0x905A, 0x6D78, 0x905B, 0x6DF1, 0x905C, 0x7533, - 0x905D, 0x75B9, 0x905E, 0x771F, 0x905F, 0x795E, 0x9060, 0x79E6, - 0x9061, 0x7D33, 0x9062, 0x81E3, 0x9063, 0x82AF, 0x9064, 0x85AA, - 0x9065, 0x89AA, 0x9066, 0x8A3A, 0x9067, 0x8EAB, 0x9068, 0x8F9B, - 0x9069, 0x9032, 0x906A, 0x91DD, 0x906B, 0x9707, 0x906C, 0x4EBA, - 0x906D, 0x4EC1, 0x906E, 0x5203, 0x906F, 0x5875, 0x9070, 0x58EC, - 0x9071, 0x5C0B, 0x9072, 0x751A, 0x9073, 0x5C3D, 0x9074, 0x814E, - 0x9075, 0x8A0A, 0x9076, 0x8FC5, 0x9077, 0x9663, 0x9078, 0x976D, - 0x9079, 0x7B25, 0x907A, 0x8ACF, 0x907B, 0x9808, 0x907C, 0x9162, - 0x907D, 0x56F3, 0x907E, 0x53A8, 0x9080, 0x9017, 0x9081, 0x5439, - 0x9082, 0x5782, 0x9083, 0x5E25, 0x9084, 0x63A8, 0x9085, 0x6C34, - 0x9086, 0x708A, 0x9087, 0x7761, 0x9088, 0x7C8B, 0x9089, 0x7FE0, - 0x908A, 0x8870, 0x908B, 0x9042, 0x908C, 0x9154, 0x908D, 0x9310, - 0x908E, 0x9318, 0x908F, 0x968F, 0x9090, 0x745E, 0x9091, 0x9AC4, - 0x9092, 0x5D07, 0x9093, 0x5D69, 0x9094, 0x6570, 0x9095, 0x67A2, - 0x9096, 0x8DA8, 0x9097, 0x96DB, 0x9098, 0x636E, 0x9099, 0x6749, - 0x909A, 0x6919, 0x909B, 0x83C5, 0x909C, 0x9817, 0x909D, 0x96C0, - 0x909E, 0x88FE, 0x909F, 0x6F84, 0x90A0, 0x647A, 0x90A1, 0x5BF8, - 0x90A2, 0x4E16, 0x90A3, 0x702C, 0x90A4, 0x755D, 0x90A5, 0x662F, - 0x90A6, 0x51C4, 0x90A7, 0x5236, 0x90A8, 0x52E2, 0x90A9, 0x59D3, - 0x90AA, 0x5F81, 0x90AB, 0x6027, 0x90AC, 0x6210, 0x90AD, 0x653F, - 0x90AE, 0x6574, 0x90AF, 0x661F, 0x90B0, 0x6674, 0x90B1, 0x68F2, - 0x90B2, 0x6816, 0x90B3, 0x6B63, 0x90B4, 0x6E05, 0x90B5, 0x7272, - 0x90B6, 0x751F, 0x90B7, 0x76DB, 0x90B8, 0x7CBE, 0x90B9, 0x8056, - 0x90BA, 0x58F0, 0x90BB, 0x88FD, 0x90BC, 0x897F, 0x90BD, 0x8AA0, - 0x90BE, 0x8A93, 0x90BF, 0x8ACB, 0x90C0, 0x901D, 0x90C1, 0x9192, - 0x90C2, 0x9752, 0x90C3, 0x9759, 0x90C4, 0x6589, 0x90C5, 0x7A0E, - 0x90C6, 0x8106, 0x90C7, 0x96BB, 0x90C8, 0x5E2D, 0x90C9, 0x60DC, - 0x90CA, 0x621A, 0x90CB, 0x65A5, 0x90CC, 0x6614, 0x90CD, 0x6790, - 0x90CE, 0x77F3, 0x90CF, 0x7A4D, 0x90D0, 0x7C4D, 0x90D1, 0x7E3E, - 0x90D2, 0x810A, 0x90D3, 0x8CAC, 0x90D4, 0x8D64, 0x90D5, 0x8DE1, - 0x90D6, 0x8E5F, 0x90D7, 0x78A9, 0x90D8, 0x5207, 0x90D9, 0x62D9, - 0x90DA, 0x63A5, 0x90DB, 0x6442, 0x90DC, 0x6298, 0x90DD, 0x8A2D, - 0x90DE, 0x7A83, 0x90DF, 0x7BC0, 0x90E0, 0x8AAC, 0x90E1, 0x96EA, - 0x90E2, 0x7D76, 0x90E3, 0x820C, 0x90E4, 0x8749, 0x90E5, 0x4ED9, - 0x90E6, 0x5148, 0x90E7, 0x5343, 0x90E8, 0x5360, 0x90E9, 0x5BA3, - 0x90EA, 0x5C02, 0x90EB, 0x5C16, 0x90EC, 0x5DDD, 0x90ED, 0x6226, - 0x90EE, 0x6247, 0x90EF, 0x64B0, 0x90F0, 0x6813, 0x90F1, 0x6834, - 0x90F2, 0x6CC9, 0x90F3, 0x6D45, 0x90F4, 0x6D17, 0x90F5, 0x67D3, - 0x90F6, 0x6F5C, 0x90F7, 0x714E, 0x90F8, 0x717D, 0x90F9, 0x65CB, - 0x90FA, 0x7A7F, 0x90FB, 0x7BAD, 0x90FC, 0x7DDA, 0x9140, 0x7E4A, - 0x9141, 0x7FA8, 0x9142, 0x817A, 0x9143, 0x821B, 0x9144, 0x8239, - 0x9145, 0x85A6, 0x9146, 0x8A6E, 0x9147, 0x8CCE, 0x9148, 0x8DF5, - 0x9149, 0x9078, 0x914A, 0x9077, 0x914B, 0x92AD, 0x914C, 0x9291, - 0x914D, 0x9583, 0x914E, 0x9BAE, 0x914F, 0x524D, 0x9150, 0x5584, - 0x9151, 0x6F38, 0x9152, 0x7136, 0x9153, 0x5168, 0x9154, 0x7985, - 0x9155, 0x7E55, 0x9156, 0x81B3, 0x9157, 0x7CCE, 0x9158, 0x564C, - 0x9159, 0x5851, 0x915A, 0x5CA8, 0x915B, 0x63AA, 0x915C, 0x66FE, - 0x915D, 0x66FD, 0x915E, 0x695A, 0x915F, 0x72D9, 0x9160, 0x758F, - 0x9161, 0x758E, 0x9162, 0x790E, 0x9163, 0x7956, 0x9164, 0x79DF, - 0x9165, 0x7C97, 0x9166, 0x7D20, 0x9167, 0x7D44, 0x9168, 0x8607, - 0x9169, 0x8A34, 0x916A, 0x963B, 0x916B, 0x9061, 0x916C, 0x9F20, - 0x916D, 0x50E7, 0x916E, 0x5275, 0x916F, 0x53CC, 0x9170, 0x53E2, - 0x9171, 0x5009, 0x9172, 0x55AA, 0x9173, 0x58EE, 0x9174, 0x594F, - 0x9175, 0x723D, 0x9176, 0x5B8B, 0x9177, 0x5C64, 0x9178, 0x531D, - 0x9179, 0x60E3, 0x917A, 0x60F3, 0x917B, 0x635C, 0x917C, 0x6383, - 0x917D, 0x633F, 0x917E, 0x63BB, 0x9180, 0x64CD, 0x9181, 0x65E9, - 0x9182, 0x66F9, 0x9183, 0x5DE3, 0x9184, 0x69CD, 0x9185, 0x69FD, - 0x9186, 0x6F15, 0x9187, 0x71E5, 0x9188, 0x4E89, 0x9189, 0x75E9, - 0x918A, 0x76F8, 0x918B, 0x7A93, 0x918C, 0x7CDF, 0x918D, 0x7DCF, - 0x918E, 0x7D9C, 0x918F, 0x8061, 0x9190, 0x8349, 0x9191, 0x8358, - 0x9192, 0x846C, 0x9193, 0x84BC, 0x9194, 0x85FB, 0x9195, 0x88C5, - 0x9196, 0x8D70, 0x9197, 0x9001, 0x9198, 0x906D, 0x9199, 0x9397, - 0x919A, 0x971C, 0x919B, 0x9A12, 0x919C, 0x50CF, 0x919D, 0x5897, - 0x919E, 0x618E, 0x919F, 0x81D3, 0x91A0, 0x8535, 0x91A1, 0x8D08, - 0x91A2, 0x9020, 0x91A3, 0x4FC3, 0x91A4, 0x5074, 0x91A5, 0x5247, - 0x91A6, 0x5373, 0x91A7, 0x606F, 0x91A8, 0x6349, 0x91A9, 0x675F, - 0x91AA, 0x6E2C, 0x91AB, 0x8DB3, 0x91AC, 0x901F, 0x91AD, 0x4FD7, - 0x91AE, 0x5C5E, 0x91AF, 0x8CCA, 0x91B0, 0x65CF, 0x91B1, 0x7D9A, - 0x91B2, 0x5352, 0x91B3, 0x8896, 0x91B4, 0x5176, 0x91B5, 0x63C3, - 0x91B6, 0x5B58, 0x91B7, 0x5B6B, 0x91B8, 0x5C0A, 0x91B9, 0x640D, - 0x91BA, 0x6751, 0x91BB, 0x905C, 0x91BC, 0x4ED6, 0x91BD, 0x591A, - 0x91BE, 0x592A, 0x91BF, 0x6C70, 0x91C0, 0x8A51, 0x91C1, 0x553E, - 0x91C2, 0x5815, 0x91C3, 0x59A5, 0x91C4, 0x60F0, 0x91C5, 0x6253, - 0x91C6, 0x67C1, 0x91C7, 0x8235, 0x91C8, 0x6955, 0x91C9, 0x9640, - 0x91CA, 0x99C4, 0x91CB, 0x9A28, 0x91CC, 0x4F53, 0x91CD, 0x5806, - 0x91CE, 0x5BFE, 0x91CF, 0x8010, 0x91D0, 0x5CB1, 0x91D1, 0x5E2F, - 0x91D2, 0x5F85, 0x91D3, 0x6020, 0x91D4, 0x614B, 0x91D5, 0x6234, - 0x91D6, 0x66FF, 0x91D7, 0x6CF0, 0x91D8, 0x6EDE, 0x91D9, 0x80CE, - 0x91DA, 0x817F, 0x91DB, 0x82D4, 0x91DC, 0x888B, 0x91DD, 0x8CB8, - 0x91DE, 0x9000, 0x91DF, 0x902E, 0x91E0, 0x968A, 0x91E1, 0x9EDB, - 0x91E2, 0x9BDB, 0x91E3, 0x4EE3, 0x91E4, 0x53F0, 0x91E5, 0x5927, - 0x91E6, 0x7B2C, 0x91E7, 0x918D, 0x91E8, 0x984C, 0x91E9, 0x9DF9, - 0x91EA, 0x6EDD, 0x91EB, 0x7027, 0x91EC, 0x5353, 0x91ED, 0x5544, - 0x91EE, 0x5B85, 0x91EF, 0x6258, 0x91F0, 0x629E, 0x91F1, 0x62D3, - 0x91F2, 0x6CA2, 0x91F3, 0x6FEF, 0x91F4, 0x7422, 0x91F5, 0x8A17, - 0x91F6, 0x9438, 0x91F7, 0x6FC1, 0x91F8, 0x8AFE, 0x91F9, 0x8338, - 0x91FA, 0x51E7, 0x91FB, 0x86F8, 0x91FC, 0x53EA, 0x9240, 0x53E9, - 0x9241, 0x4F46, 0x9242, 0x9054, 0x9243, 0x8FB0, 0x9244, 0x596A, - 0x9245, 0x8131, 0x9246, 0x5DFD, 0x9247, 0x7AEA, 0x9248, 0x8FBF, - 0x9249, 0x68DA, 0x924A, 0x8C37, 0x924B, 0x72F8, 0x924C, 0x9C48, - 0x924D, 0x6A3D, 0x924E, 0x8AB0, 0x924F, 0x4E39, 0x9250, 0x5358, - 0x9251, 0x5606, 0x9252, 0x5766, 0x9253, 0x62C5, 0x9254, 0x63A2, - 0x9255, 0x65E6, 0x9256, 0x6B4E, 0x9257, 0x6DE1, 0x9258, 0x6E5B, - 0x9259, 0x70AD, 0x925A, 0x77ED, 0x925B, 0x7AEF, 0x925C, 0x7BAA, - 0x925D, 0x7DBB, 0x925E, 0x803D, 0x925F, 0x80C6, 0x9260, 0x86CB, - 0x9261, 0x8A95, 0x9262, 0x935B, 0x9263, 0x56E3, 0x9264, 0x58C7, - 0x9265, 0x5F3E, 0x9266, 0x65AD, 0x9267, 0x6696, 0x9268, 0x6A80, - 0x9269, 0x6BB5, 0x926A, 0x7537, 0x926B, 0x8AC7, 0x926C, 0x5024, - 0x926D, 0x77E5, 0x926E, 0x5730, 0x926F, 0x5F1B, 0x9270, 0x6065, - 0x9271, 0x667A, 0x9272, 0x6C60, 0x9273, 0x75F4, 0x9274, 0x7A1A, - 0x9275, 0x7F6E, 0x9276, 0x81F4, 0x9277, 0x8718, 0x9278, 0x9045, - 0x9279, 0x99B3, 0x927A, 0x7BC9, 0x927B, 0x755C, 0x927C, 0x7AF9, - 0x927D, 0x7B51, 0x927E, 0x84C4, 0x9280, 0x9010, 0x9281, 0x79E9, - 0x9282, 0x7A92, 0x9283, 0x8336, 0x9284, 0x5AE1, 0x9285, 0x7740, - 0x9286, 0x4E2D, 0x9287, 0x4EF2, 0x9288, 0x5B99, 0x9289, 0x5FE0, - 0x928A, 0x62BD, 0x928B, 0x663C, 0x928C, 0x67F1, 0x928D, 0x6CE8, - 0x928E, 0x866B, 0x928F, 0x8877, 0x9290, 0x8A3B, 0x9291, 0x914E, - 0x9292, 0x92F3, 0x9293, 0x99D0, 0x9294, 0x6A17, 0x9295, 0x7026, - 0x9296, 0x732A, 0x9297, 0x82E7, 0x9298, 0x8457, 0x9299, 0x8CAF, - 0x929A, 0x4E01, 0x929B, 0x5146, 0x929C, 0x51CB, 0x929D, 0x558B, - 0x929E, 0x5BF5, 0x929F, 0x5E16, 0x92A0, 0x5E33, 0x92A1, 0x5E81, - 0x92A2, 0x5F14, 0x92A3, 0x5F35, 0x92A4, 0x5F6B, 0x92A5, 0x5FB4, - 0x92A6, 0x61F2, 0x92A7, 0x6311, 0x92A8, 0x66A2, 0x92A9, 0x671D, - 0x92AA, 0x6F6E, 0x92AB, 0x7252, 0x92AC, 0x753A, 0x92AD, 0x773A, - 0x92AE, 0x8074, 0x92AF, 0x8139, 0x92B0, 0x8178, 0x92B1, 0x8776, - 0x92B2, 0x8ABF, 0x92B3, 0x8ADC, 0x92B4, 0x8D85, 0x92B5, 0x8DF3, - 0x92B6, 0x929A, 0x92B7, 0x9577, 0x92B8, 0x9802, 0x92B9, 0x9CE5, - 0x92BA, 0x52C5, 0x92BB, 0x6357, 0x92BC, 0x76F4, 0x92BD, 0x6715, - 0x92BE, 0x6C88, 0x92BF, 0x73CD, 0x92C0, 0x8CC3, 0x92C1, 0x93AE, - 0x92C2, 0x9673, 0x92C3, 0x6D25, 0x92C4, 0x589C, 0x92C5, 0x690E, - 0x92C6, 0x69CC, 0x92C7, 0x8FFD, 0x92C8, 0x939A, 0x92C9, 0x75DB, - 0x92CA, 0x901A, 0x92CB, 0x585A, 0x92CC, 0x6802, 0x92CD, 0x63B4, - 0x92CE, 0x69FB, 0x92CF, 0x4F43, 0x92D0, 0x6F2C, 0x92D1, 0x67D8, - 0x92D2, 0x8FBB, 0x92D3, 0x8526, 0x92D4, 0x7DB4, 0x92D5, 0x9354, - 0x92D6, 0x693F, 0x92D7, 0x6F70, 0x92D8, 0x576A, 0x92D9, 0x58F7, - 0x92DA, 0x5B2C, 0x92DB, 0x7D2C, 0x92DC, 0x722A, 0x92DD, 0x540A, - 0x92DE, 0x91E3, 0x92DF, 0x9DB4, 0x92E0, 0x4EAD, 0x92E1, 0x4F4E, - 0x92E2, 0x505C, 0x92E3, 0x5075, 0x92E4, 0x5243, 0x92E5, 0x8C9E, - 0x92E6, 0x5448, 0x92E7, 0x5824, 0x92E8, 0x5B9A, 0x92E9, 0x5E1D, - 0x92EA, 0x5E95, 0x92EB, 0x5EAD, 0x92EC, 0x5EF7, 0x92ED, 0x5F1F, - 0x92EE, 0x608C, 0x92EF, 0x62B5, 0x92F0, 0x633A, 0x92F1, 0x63D0, - 0x92F2, 0x68AF, 0x92F3, 0x6C40, 0x92F4, 0x7887, 0x92F5, 0x798E, - 0x92F6, 0x7A0B, 0x92F7, 0x7DE0, 0x92F8, 0x8247, 0x92F9, 0x8A02, - 0x92FA, 0x8AE6, 0x92FB, 0x8E44, 0x92FC, 0x9013, 0x9340, 0x90B8, - 0x9341, 0x912D, 0x9342, 0x91D8, 0x9343, 0x9F0E, 0x9344, 0x6CE5, - 0x9345, 0x6458, 0x9346, 0x64E2, 0x9347, 0x6575, 0x9348, 0x6EF4, - 0x9349, 0x7684, 0x934A, 0x7B1B, 0x934B, 0x9069, 0x934C, 0x93D1, - 0x934D, 0x6EBA, 0x934E, 0x54F2, 0x934F, 0x5FB9, 0x9350, 0x64A4, - 0x9351, 0x8F4D, 0x9352, 0x8FED, 0x9353, 0x9244, 0x9354, 0x5178, - 0x9355, 0x586B, 0x9356, 0x5929, 0x9357, 0x5C55, 0x9358, 0x5E97, - 0x9359, 0x6DFB, 0x935A, 0x7E8F, 0x935B, 0x751C, 0x935C, 0x8CBC, - 0x935D, 0x8EE2, 0x935E, 0x985B, 0x935F, 0x70B9, 0x9360, 0x4F1D, - 0x9361, 0x6BBF, 0x9362, 0x6FB1, 0x9363, 0x7530, 0x9364, 0x96FB, - 0x9365, 0x514E, 0x9366, 0x5410, 0x9367, 0x5835, 0x9368, 0x5857, - 0x9369, 0x59AC, 0x936A, 0x5C60, 0x936B, 0x5F92, 0x936C, 0x6597, - 0x936D, 0x675C, 0x936E, 0x6E21, 0x936F, 0x767B, 0x9370, 0x83DF, - 0x9371, 0x8CED, 0x9372, 0x9014, 0x9373, 0x90FD, 0x9374, 0x934D, - 0x9375, 0x7825, 0x9376, 0x783A, 0x9377, 0x52AA, 0x9378, 0x5EA6, - 0x9379, 0x571F, 0x937A, 0x5974, 0x937B, 0x6012, 0x937C, 0x5012, - 0x937D, 0x515A, 0x937E, 0x51AC, 0x9380, 0x51CD, 0x9381, 0x5200, - 0x9382, 0x5510, 0x9383, 0x5854, 0x9384, 0x5858, 0x9385, 0x5957, - 0x9386, 0x5B95, 0x9387, 0x5CF6, 0x9388, 0x5D8B, 0x9389, 0x60BC, - 0x938A, 0x6295, 0x938B, 0x642D, 0x938C, 0x6771, 0x938D, 0x6843, - 0x938E, 0x68BC, 0x938F, 0x68DF, 0x9390, 0x76D7, 0x9391, 0x6DD8, - 0x9392, 0x6E6F, 0x9393, 0x6D9B, 0x9394, 0x706F, 0x9395, 0x71C8, - 0x9396, 0x5F53, 0x9397, 0x75D8, 0x9398, 0x7977, 0x9399, 0x7B49, - 0x939A, 0x7B54, 0x939B, 0x7B52, 0x939C, 0x7CD6, 0x939D, 0x7D71, - 0x939E, 0x5230, 0x939F, 0x8463, 0x93A0, 0x8569, 0x93A1, 0x85E4, - 0x93A2, 0x8A0E, 0x93A3, 0x8B04, 0x93A4, 0x8C46, 0x93A5, 0x8E0F, - 0x93A6, 0x9003, 0x93A7, 0x900F, 0x93A8, 0x9419, 0x93A9, 0x9676, - 0x93AA, 0x982D, 0x93AB, 0x9A30, 0x93AC, 0x95D8, 0x93AD, 0x50CD, - 0x93AE, 0x52D5, 0x93AF, 0x540C, 0x93B0, 0x5802, 0x93B1, 0x5C0E, - 0x93B2, 0x61A7, 0x93B3, 0x649E, 0x93B4, 0x6D1E, 0x93B5, 0x77B3, - 0x93B6, 0x7AE5, 0x93B7, 0x80F4, 0x93B8, 0x8404, 0x93B9, 0x9053, - 0x93BA, 0x9285, 0x93BB, 0x5CE0, 0x93BC, 0x9D07, 0x93BD, 0x533F, - 0x93BE, 0x5F97, 0x93BF, 0x5FB3, 0x93C0, 0x6D9C, 0x93C1, 0x7279, - 0x93C2, 0x7763, 0x93C3, 0x79BF, 0x93C4, 0x7BE4, 0x93C5, 0x6BD2, - 0x93C6, 0x72EC, 0x93C7, 0x8AAD, 0x93C8, 0x6803, 0x93C9, 0x6A61, - 0x93CA, 0x51F8, 0x93CB, 0x7A81, 0x93CC, 0x6934, 0x93CD, 0x5C4A, - 0x93CE, 0x9CF6, 0x93CF, 0x82EB, 0x93D0, 0x5BC5, 0x93D1, 0x9149, - 0x93D2, 0x701E, 0x93D3, 0x5678, 0x93D4, 0x5C6F, 0x93D5, 0x60C7, - 0x93D6, 0x6566, 0x93D7, 0x6C8C, 0x93D8, 0x8C5A, 0x93D9, 0x9041, - 0x93DA, 0x9813, 0x93DB, 0x5451, 0x93DC, 0x66C7, 0x93DD, 0x920D, - 0x93DE, 0x5948, 0x93DF, 0x90A3, 0x93E0, 0x5185, 0x93E1, 0x4E4D, - 0x93E2, 0x51EA, 0x93E3, 0x8599, 0x93E4, 0x8B0E, 0x93E5, 0x7058, - 0x93E6, 0x637A, 0x93E7, 0x934B, 0x93E8, 0x6962, 0x93E9, 0x99B4, - 0x93EA, 0x7E04, 0x93EB, 0x7577, 0x93EC, 0x5357, 0x93ED, 0x6960, - 0x93EE, 0x8EDF, 0x93EF, 0x96E3, 0x93F0, 0x6C5D, 0x93F1, 0x4E8C, - 0x93F2, 0x5C3C, 0x93F3, 0x5F10, 0x93F4, 0x8FE9, 0x93F5, 0x5302, - 0x93F6, 0x8CD1, 0x93F7, 0x8089, 0x93F8, 0x8679, 0x93F9, 0x5EFF, - 0x93FA, 0x65E5, 0x93FB, 0x4E73, 0x93FC, 0x5165, 0x9440, 0x5982, - 0x9441, 0x5C3F, 0x9442, 0x97EE, 0x9443, 0x4EFB, 0x9444, 0x598A, - 0x9445, 0x5FCD, 0x9446, 0x8A8D, 0x9447, 0x6FE1, 0x9448, 0x79B0, - 0x9449, 0x7962, 0x944A, 0x5BE7, 0x944B, 0x8471, 0x944C, 0x732B, - 0x944D, 0x71B1, 0x944E, 0x5E74, 0x944F, 0x5FF5, 0x9450, 0x637B, - 0x9451, 0x649A, 0x9452, 0x71C3, 0x9453, 0x7C98, 0x9454, 0x4E43, - 0x9455, 0x5EFC, 0x9456, 0x4E4B, 0x9457, 0x57DC, 0x9458, 0x56A2, - 0x9459, 0x60A9, 0x945A, 0x6FC3, 0x945B, 0x7D0D, 0x945C, 0x80FD, - 0x945D, 0x8133, 0x945E, 0x81BF, 0x945F, 0x8FB2, 0x9460, 0x8997, - 0x9461, 0x86A4, 0x9462, 0x5DF4, 0x9463, 0x628A, 0x9464, 0x64AD, - 0x9465, 0x8987, 0x9466, 0x6777, 0x9467, 0x6CE2, 0x9468, 0x6D3E, - 0x9469, 0x7436, 0x946A, 0x7834, 0x946B, 0x5A46, 0x946C, 0x7F75, - 0x946D, 0x82AD, 0x946E, 0x99AC, 0x946F, 0x4FF3, 0x9470, 0x5EC3, - 0x9471, 0x62DD, 0x9472, 0x6392, 0x9473, 0x6557, 0x9474, 0x676F, - 0x9475, 0x76C3, 0x9476, 0x724C, 0x9477, 0x80CC, 0x9478, 0x80BA, - 0x9479, 0x8F29, 0x947A, 0x914D, 0x947B, 0x500D, 0x947C, 0x57F9, - 0x947D, 0x5A92, 0x947E, 0x6885, 0x9480, 0x6973, 0x9481, 0x7164, - 0x9482, 0x72FD, 0x9483, 0x8CB7, 0x9484, 0x58F2, 0x9485, 0x8CE0, - 0x9486, 0x966A, 0x9487, 0x9019, 0x9488, 0x877F, 0x9489, 0x79E4, - 0x948A, 0x77E7, 0x948B, 0x8429, 0x948C, 0x4F2F, 0x948D, 0x5265, - 0x948E, 0x535A, 0x948F, 0x62CD, 0x9490, 0x67CF, 0x9491, 0x6CCA, - 0x9492, 0x767D, 0x9493, 0x7B94, 0x9494, 0x7C95, 0x9495, 0x8236, - 0x9496, 0x8584, 0x9497, 0x8FEB, 0x9498, 0x66DD, 0x9499, 0x6F20, - 0x949A, 0x7206, 0x949B, 0x7E1B, 0x949C, 0x83AB, 0x949D, 0x99C1, - 0x949E, 0x9EA6, 0x949F, 0x51FD, 0x94A0, 0x7BB1, 0x94A1, 0x7872, - 0x94A2, 0x7BB8, 0x94A3, 0x8087, 0x94A4, 0x7B48, 0x94A5, 0x6AE8, - 0x94A6, 0x5E61, 0x94A7, 0x808C, 0x94A8, 0x7551, 0x94A9, 0x7560, - 0x94AA, 0x516B, 0x94AB, 0x9262, 0x94AC, 0x6E8C, 0x94AD, 0x767A, - 0x94AE, 0x9197, 0x94AF, 0x9AEA, 0x94B0, 0x4F10, 0x94B1, 0x7F70, - 0x94B2, 0x629C, 0x94B3, 0x7B4F, 0x94B4, 0x95A5, 0x94B5, 0x9CE9, - 0x94B6, 0x567A, 0x94B7, 0x5859, 0x94B8, 0x86E4, 0x94B9, 0x96BC, - 0x94BA, 0x4F34, 0x94BB, 0x5224, 0x94BC, 0x534A, 0x94BD, 0x53CD, - 0x94BE, 0x53DB, 0x94BF, 0x5E06, 0x94C0, 0x642C, 0x94C1, 0x6591, - 0x94C2, 0x677F, 0x94C3, 0x6C3E, 0x94C4, 0x6C4E, 0x94C5, 0x7248, - 0x94C6, 0x72AF, 0x94C7, 0x73ED, 0x94C8, 0x7554, 0x94C9, 0x7E41, - 0x94CA, 0x822C, 0x94CB, 0x85E9, 0x94CC, 0x8CA9, 0x94CD, 0x7BC4, - 0x94CE, 0x91C6, 0x94CF, 0x7169, 0x94D0, 0x9812, 0x94D1, 0x98EF, - 0x94D2, 0x633D, 0x94D3, 0x6669, 0x94D4, 0x756A, 0x94D5, 0x76E4, - 0x94D6, 0x78D0, 0x94D7, 0x8543, 0x94D8, 0x86EE, 0x94D9, 0x532A, - 0x94DA, 0x5351, 0x94DB, 0x5426, 0x94DC, 0x5983, 0x94DD, 0x5E87, - 0x94DE, 0x5F7C, 0x94DF, 0x60B2, 0x94E0, 0x6249, 0x94E1, 0x6279, - 0x94E2, 0x62AB, 0x94E3, 0x6590, 0x94E4, 0x6BD4, 0x94E5, 0x6CCC, - 0x94E6, 0x75B2, 0x94E7, 0x76AE, 0x94E8, 0x7891, 0x94E9, 0x79D8, - 0x94EA, 0x7DCB, 0x94EB, 0x7F77, 0x94EC, 0x80A5, 0x94ED, 0x88AB, - 0x94EE, 0x8AB9, 0x94EF, 0x8CBB, 0x94F0, 0x907F, 0x94F1, 0x975E, - 0x94F2, 0x98DB, 0x94F3, 0x6A0B, 0x94F4, 0x7C38, 0x94F5, 0x5099, - 0x94F6, 0x5C3E, 0x94F7, 0x5FAE, 0x94F8, 0x6787, 0x94F9, 0x6BD8, - 0x94FA, 0x7435, 0x94FB, 0x7709, 0x94FC, 0x7F8E, 0x9540, 0x9F3B, - 0x9541, 0x67CA, 0x9542, 0x7A17, 0x9543, 0x5339, 0x9544, 0x758B, - 0x9545, 0x9AED, 0x9546, 0x5F66, 0x9547, 0x819D, 0x9548, 0x83F1, - 0x9549, 0x8098, 0x954A, 0x5F3C, 0x954B, 0x5FC5, 0x954C, 0x7562, - 0x954D, 0x7B46, 0x954E, 0x903C, 0x954F, 0x6867, 0x9550, 0x59EB, - 0x9551, 0x5A9B, 0x9552, 0x7D10, 0x9553, 0x767E, 0x9554, 0x8B2C, - 0x9555, 0x4FF5, 0x9556, 0x5F6A, 0x9557, 0x6A19, 0x9558, 0x6C37, - 0x9559, 0x6F02, 0x955A, 0x74E2, 0x955B, 0x7968, 0x955C, 0x8868, - 0x955D, 0x8A55, 0x955E, 0x8C79, 0x955F, 0x5EDF, 0x9560, 0x63CF, - 0x9561, 0x75C5, 0x9562, 0x79D2, 0x9563, 0x82D7, 0x9564, 0x9328, - 0x9565, 0x92F2, 0x9566, 0x849C, 0x9567, 0x86ED, 0x9568, 0x9C2D, - 0x9569, 0x54C1, 0x956A, 0x5F6C, 0x956B, 0x658C, 0x956C, 0x6D5C, - 0x956D, 0x7015, 0x956E, 0x8CA7, 0x956F, 0x8CD3, 0x9570, 0x983B, - 0x9571, 0x654F, 0x9572, 0x74F6, 0x9573, 0x4E0D, 0x9574, 0x4ED8, - 0x9575, 0x57E0, 0x9576, 0x592B, 0x9577, 0x5A66, 0x9578, 0x5BCC, - 0x9579, 0x51A8, 0x957A, 0x5E03, 0x957B, 0x5E9C, 0x957C, 0x6016, - 0x957D, 0x6276, 0x957E, 0x6577, 0x9580, 0x65A7, 0x9581, 0x666E, - 0x9582, 0x6D6E, 0x9583, 0x7236, 0x9584, 0x7B26, 0x9585, 0x8150, - 0x9586, 0x819A, 0x9587, 0x8299, 0x9588, 0x8B5C, 0x9589, 0x8CA0, - 0x958A, 0x8CE6, 0x958B, 0x8D74, 0x958C, 0x961C, 0x958D, 0x9644, - 0x958E, 0x4FAE, 0x958F, 0x64AB, 0x9590, 0x6B66, 0x9591, 0x821E, - 0x9592, 0x8461, 0x9593, 0x856A, 0x9594, 0x90E8, 0x9595, 0x5C01, - 0x9596, 0x6953, 0x9597, 0x98A8, 0x9598, 0x847A, 0x9599, 0x8557, - 0x959A, 0x4F0F, 0x959B, 0x526F, 0x959C, 0x5FA9, 0x959D, 0x5E45, - 0x959E, 0x670D, 0x959F, 0x798F, 0x95A0, 0x8179, 0x95A1, 0x8907, - 0x95A2, 0x8986, 0x95A3, 0x6DF5, 0x95A4, 0x5F17, 0x95A5, 0x6255, - 0x95A6, 0x6CB8, 0x95A7, 0x4ECF, 0x95A8, 0x7269, 0x95A9, 0x9B92, - 0x95AA, 0x5206, 0x95AB, 0x543B, 0x95AC, 0x5674, 0x95AD, 0x58B3, - 0x95AE, 0x61A4, 0x95AF, 0x626E, 0x95B0, 0x711A, 0x95B1, 0x596E, - 0x95B2, 0x7C89, 0x95B3, 0x7CDE, 0x95B4, 0x7D1B, 0x95B5, 0x96F0, - 0x95B6, 0x6587, 0x95B7, 0x805E, 0x95B8, 0x4E19, 0x95B9, 0x4F75, - 0x95BA, 0x5175, 0x95BB, 0x5840, 0x95BC, 0x5E63, 0x95BD, 0x5E73, - 0x95BE, 0x5F0A, 0x95BF, 0x67C4, 0x95C0, 0x4E26, 0x95C1, 0x853D, - 0x95C2, 0x9589, 0x95C3, 0x965B, 0x95C4, 0x7C73, 0x95C5, 0x9801, - 0x95C6, 0x50FB, 0x95C7, 0x58C1, 0x95C8, 0x7656, 0x95C9, 0x78A7, - 0x95CA, 0x5225, 0x95CB, 0x77A5, 0x95CC, 0x8511, 0x95CD, 0x7B86, - 0x95CE, 0x504F, 0x95CF, 0x5909, 0x95D0, 0x7247, 0x95D1, 0x7BC7, - 0x95D2, 0x7DE8, 0x95D3, 0x8FBA, 0x95D4, 0x8FD4, 0x95D5, 0x904D, - 0x95D6, 0x4FBF, 0x95D7, 0x52C9, 0x95D8, 0x5A29, 0x95D9, 0x5F01, - 0x95DA, 0x97AD, 0x95DB, 0x4FDD, 0x95DC, 0x8217, 0x95DD, 0x92EA, - 0x95DE, 0x5703, 0x95DF, 0x6355, 0x95E0, 0x6B69, 0x95E1, 0x752B, - 0x95E2, 0x88DC, 0x95E3, 0x8F14, 0x95E4, 0x7A42, 0x95E5, 0x52DF, - 0x95E6, 0x5893, 0x95E7, 0x6155, 0x95E8, 0x620A, 0x95E9, 0x66AE, - 0x95EA, 0x6BCD, 0x95EB, 0x7C3F, 0x95EC, 0x83E9, 0x95ED, 0x5023, - 0x95EE, 0x4FF8, 0x95EF, 0x5305, 0x95F0, 0x5446, 0x95F1, 0x5831, - 0x95F2, 0x5949, 0x95F3, 0x5B9D, 0x95F4, 0x5CF0, 0x95F5, 0x5CEF, - 0x95F6, 0x5D29, 0x95F7, 0x5E96, 0x95F8, 0x62B1, 0x95F9, 0x6367, - 0x95FA, 0x653E, 0x95FB, 0x65B9, 0x95FC, 0x670B, 0x9640, 0x6CD5, - 0x9641, 0x6CE1, 0x9642, 0x70F9, 0x9643, 0x7832, 0x9644, 0x7E2B, - 0x9645, 0x80DE, 0x9646, 0x82B3, 0x9647, 0x840C, 0x9648, 0x84EC, - 0x9649, 0x8702, 0x964A, 0x8912, 0x964B, 0x8A2A, 0x964C, 0x8C4A, - 0x964D, 0x90A6, 0x964E, 0x92D2, 0x964F, 0x98FD, 0x9650, 0x9CF3, - 0x9651, 0x9D6C, 0x9652, 0x4E4F, 0x9653, 0x4EA1, 0x9654, 0x508D, - 0x9655, 0x5256, 0x9656, 0x574A, 0x9657, 0x59A8, 0x9658, 0x5E3D, - 0x9659, 0x5FD8, 0x965A, 0x5FD9, 0x965B, 0x623F, 0x965C, 0x66B4, - 0x965D, 0x671B, 0x965E, 0x67D0, 0x965F, 0x68D2, 0x9660, 0x5192, - 0x9661, 0x7D21, 0x9662, 0x80AA, 0x9663, 0x81A8, 0x9664, 0x8B00, - 0x9665, 0x8C8C, 0x9666, 0x8CBF, 0x9667, 0x927E, 0x9668, 0x9632, - 0x9669, 0x5420, 0x966A, 0x982C, 0x966B, 0x5317, 0x966C, 0x50D5, - 0x966D, 0x535C, 0x966E, 0x58A8, 0x966F, 0x64B2, 0x9670, 0x6734, - 0x9671, 0x7267, 0x9672, 0x7766, 0x9673, 0x7A46, 0x9674, 0x91E6, - 0x9675, 0x52C3, 0x9676, 0x6CA1, 0x9677, 0x6B86, 0x9678, 0x5800, - 0x9679, 0x5E4C, 0x967A, 0x5954, 0x967B, 0x672C, 0x967C, 0x7FFB, - 0x967D, 0x51E1, 0x967E, 0x76C6, 0x9680, 0x6469, 0x9681, 0x78E8, - 0x9682, 0x9B54, 0x9683, 0x9EBB, 0x9684, 0x57CB, 0x9685, 0x59B9, - 0x9686, 0x6627, 0x9687, 0x679A, 0x9688, 0x6BCE, 0x9689, 0x54E9, - 0x968A, 0x69D9, 0x968B, 0x5E55, 0x968C, 0x819C, 0x968D, 0x6795, - 0x968E, 0x9BAA, 0x968F, 0x67FE, 0x9690, 0x9C52, 0x9691, 0x685D, - 0x9692, 0x4EA6, 0x9693, 0x4FE3, 0x9694, 0x53C8, 0x9695, 0x62B9, - 0x9696, 0x672B, 0x9697, 0x6CAB, 0x9698, 0x8FC4, 0x9699, 0x4FAD, - 0x969A, 0x7E6D, 0x969B, 0x9EBF, 0x969C, 0x4E07, 0x969D, 0x6162, - 0x969E, 0x6E80, 0x969F, 0x6F2B, 0x96A0, 0x8513, 0x96A1, 0x5473, - 0x96A2, 0x672A, 0x96A3, 0x9B45, 0x96A4, 0x5DF3, 0x96A5, 0x7B95, - 0x96A6, 0x5CAC, 0x96A7, 0x5BC6, 0x96A8, 0x871C, 0x96A9, 0x6E4A, - 0x96AA, 0x84D1, 0x96AB, 0x7A14, 0x96AC, 0x8108, 0x96AD, 0x5999, - 0x96AE, 0x7C8D, 0x96AF, 0x6C11, 0x96B0, 0x7720, 0x96B1, 0x52D9, - 0x96B2, 0x5922, 0x96B3, 0x7121, 0x96B4, 0x725F, 0x96B5, 0x77DB, - 0x96B6, 0x9727, 0x96B7, 0x9D61, 0x96B8, 0x690B, 0x96B9, 0x5A7F, - 0x96BA, 0x5A18, 0x96BB, 0x51A5, 0x96BC, 0x540D, 0x96BD, 0x547D, - 0x96BE, 0x660E, 0x96BF, 0x76DF, 0x96C0, 0x8FF7, 0x96C1, 0x9298, - 0x96C2, 0x9CF4, 0x96C3, 0x59EA, 0x96C4, 0x725D, 0x96C5, 0x6EC5, - 0x96C6, 0x514D, 0x96C7, 0x68C9, 0x96C8, 0x7DBF, 0x96C9, 0x7DEC, - 0x96CA, 0x9762, 0x96CB, 0x9EBA, 0x96CC, 0x6478, 0x96CD, 0x6A21, - 0x96CE, 0x8302, 0x96CF, 0x5984, 0x96D0, 0x5B5F, 0x96D1, 0x6BDB, - 0x96D2, 0x731B, 0x96D3, 0x76F2, 0x96D4, 0x7DB2, 0x96D5, 0x8017, - 0x96D6, 0x8499, 0x96D7, 0x5132, 0x96D8, 0x6728, 0x96D9, 0x9ED9, - 0x96DA, 0x76EE, 0x96DB, 0x6762, 0x96DC, 0x52FF, 0x96DD, 0x9905, - 0x96DE, 0x5C24, 0x96DF, 0x623B, 0x96E0, 0x7C7E, 0x96E1, 0x8CB0, - 0x96E2, 0x554F, 0x96E3, 0x60B6, 0x96E4, 0x7D0B, 0x96E5, 0x9580, - 0x96E6, 0x5301, 0x96E7, 0x4E5F, 0x96E8, 0x51B6, 0x96E9, 0x591C, - 0x96EA, 0x723A, 0x96EB, 0x8036, 0x96EC, 0x91CE, 0x96ED, 0x5F25, - 0x96EE, 0x77E2, 0x96EF, 0x5384, 0x96F0, 0x5F79, 0x96F1, 0x7D04, - 0x96F2, 0x85AC, 0x96F3, 0x8A33, 0x96F4, 0x8E8D, 0x96F5, 0x9756, - 0x96F6, 0x67F3, 0x96F7, 0x85AE, 0x96F8, 0x9453, 0x96F9, 0x6109, - 0x96FA, 0x6108, 0x96FB, 0x6CB9, 0x96FC, 0x7652, 0x9740, 0x8AED, - 0x9741, 0x8F38, 0x9742, 0x552F, 0x9743, 0x4F51, 0x9744, 0x512A, - 0x9745, 0x52C7, 0x9746, 0x53CB, 0x9747, 0x5BA5, 0x9748, 0x5E7D, - 0x9749, 0x60A0, 0x974A, 0x6182, 0x974B, 0x63D6, 0x974C, 0x6709, - 0x974D, 0x67DA, 0x974E, 0x6E67, 0x974F, 0x6D8C, 0x9750, 0x7336, - 0x9751, 0x7337, 0x9752, 0x7531, 0x9753, 0x7950, 0x9754, 0x88D5, - 0x9755, 0x8A98, 0x9756, 0x904A, 0x9757, 0x9091, 0x9758, 0x90F5, - 0x9759, 0x96C4, 0x975A, 0x878D, 0x975B, 0x5915, 0x975C, 0x4E88, - 0x975D, 0x4F59, 0x975E, 0x4E0E, 0x975F, 0x8A89, 0x9760, 0x8F3F, - 0x9761, 0x9810, 0x9762, 0x50AD, 0x9763, 0x5E7C, 0x9764, 0x5996, - 0x9765, 0x5BB9, 0x9766, 0x5EB8, 0x9767, 0x63DA, 0x9768, 0x63FA, - 0x9769, 0x64C1, 0x976A, 0x66DC, 0x976B, 0x694A, 0x976C, 0x69D8, - 0x976D, 0x6D0B, 0x976E, 0x6EB6, 0x976F, 0x7194, 0x9770, 0x7528, - 0x9771, 0x7AAF, 0x9772, 0x7F8A, 0x9773, 0x8000, 0x9774, 0x8449, - 0x9775, 0x84C9, 0x9776, 0x8981, 0x9777, 0x8B21, 0x9778, 0x8E0A, - 0x9779, 0x9065, 0x977A, 0x967D, 0x977B, 0x990A, 0x977C, 0x617E, - 0x977D, 0x6291, 0x977E, 0x6B32, 0x9780, 0x6C83, 0x9781, 0x6D74, - 0x9782, 0x7FCC, 0x9783, 0x7FFC, 0x9784, 0x6DC0, 0x9785, 0x7F85, - 0x9786, 0x87BA, 0x9787, 0x88F8, 0x9788, 0x6765, 0x9789, 0x83B1, - 0x978A, 0x983C, 0x978B, 0x96F7, 0x978C, 0x6D1B, 0x978D, 0x7D61, - 0x978E, 0x843D, 0x978F, 0x916A, 0x9790, 0x4E71, 0x9791, 0x5375, - 0x9792, 0x5D50, 0x9793, 0x6B04, 0x9794, 0x6FEB, 0x9795, 0x85CD, - 0x9796, 0x862D, 0x9797, 0x89A7, 0x9798, 0x5229, 0x9799, 0x540F, - 0x979A, 0x5C65, 0x979B, 0x674E, 0x979C, 0x68A8, 0x979D, 0x7406, - 0x979E, 0x7483, 0x979F, 0x75E2, 0x97A0, 0x88CF, 0x97A1, 0x88E1, - 0x97A2, 0x91CC, 0x97A3, 0x96E2, 0x97A4, 0x9678, 0x97A5, 0x5F8B, - 0x97A6, 0x7387, 0x97A7, 0x7ACB, 0x97A8, 0x844E, 0x97A9, 0x63A0, - 0x97AA, 0x7565, 0x97AB, 0x5289, 0x97AC, 0x6D41, 0x97AD, 0x6E9C, - 0x97AE, 0x7409, 0x97AF, 0x7559, 0x97B0, 0x786B, 0x97B1, 0x7C92, - 0x97B2, 0x9686, 0x97B3, 0x7ADC, 0x97B4, 0x9F8D, 0x97B5, 0x4FB6, - 0x97B6, 0x616E, 0x97B7, 0x65C5, 0x97B8, 0x865C, 0x97B9, 0x4E86, - 0x97BA, 0x4EAE, 0x97BB, 0x50DA, 0x97BC, 0x4E21, 0x97BD, 0x51CC, - 0x97BE, 0x5BEE, 0x97BF, 0x6599, 0x97C0, 0x6881, 0x97C1, 0x6DBC, - 0x97C2, 0x731F, 0x97C3, 0x7642, 0x97C4, 0x77AD, 0x97C5, 0x7A1C, - 0x97C6, 0x7CE7, 0x97C7, 0x826F, 0x97C8, 0x8AD2, 0x97C9, 0x907C, - 0x97CA, 0x91CF, 0x97CB, 0x9675, 0x97CC, 0x9818, 0x97CD, 0x529B, - 0x97CE, 0x7DD1, 0x97CF, 0x502B, 0x97D0, 0x5398, 0x97D1, 0x6797, - 0x97D2, 0x6DCB, 0x97D3, 0x71D0, 0x97D4, 0x7433, 0x97D5, 0x81E8, - 0x97D6, 0x8F2A, 0x97D7, 0x96A3, 0x97D8, 0x9C57, 0x97D9, 0x9E9F, - 0x97DA, 0x7460, 0x97DB, 0x5841, 0x97DC, 0x6D99, 0x97DD, 0x7D2F, - 0x97DE, 0x985E, 0x97DF, 0x4EE4, 0x97E0, 0x4F36, 0x97E1, 0x4F8B, - 0x97E2, 0x51B7, 0x97E3, 0x52B1, 0x97E4, 0x5DBA, 0x97E5, 0x601C, - 0x97E6, 0x73B2, 0x97E7, 0x793C, 0x97E8, 0x82D3, 0x97E9, 0x9234, - 0x97EA, 0x96B7, 0x97EB, 0x96F6, 0x97EC, 0x970A, 0x97ED, 0x9E97, - 0x97EE, 0x9F62, 0x97EF, 0x66A6, 0x97F0, 0x6B74, 0x97F1, 0x5217, - 0x97F2, 0x52A3, 0x97F3, 0x70C8, 0x97F4, 0x88C2, 0x97F5, 0x5EC9, - 0x97F6, 0x604B, 0x97F7, 0x6190, 0x97F8, 0x6F23, 0x97F9, 0x7149, - 0x97FA, 0x7C3E, 0x97FB, 0x7DF4, 0x97FC, 0x806F, 0x9840, 0x84EE, - 0x9841, 0x9023, 0x9842, 0x932C, 0x9843, 0x5442, 0x9844, 0x9B6F, - 0x9845, 0x6AD3, 0x9846, 0x7089, 0x9847, 0x8CC2, 0x9848, 0x8DEF, - 0x9849, 0x9732, 0x984A, 0x52B4, 0x984B, 0x5A41, 0x984C, 0x5ECA, - 0x984D, 0x5F04, 0x984E, 0x6717, 0x984F, 0x697C, 0x9850, 0x6994, - 0x9851, 0x6D6A, 0x9852, 0x6F0F, 0x9853, 0x7262, 0x9854, 0x72FC, - 0x9855, 0x7BED, 0x9856, 0x8001, 0x9857, 0x807E, 0x9858, 0x874B, - 0x9859, 0x90CE, 0x985A, 0x516D, 0x985B, 0x9E93, 0x985C, 0x7984, - 0x985D, 0x808B, 0x985E, 0x9332, 0x985F, 0x8AD6, 0x9860, 0x502D, - 0x9861, 0x548C, 0x9862, 0x8A71, 0x9863, 0x6B6A, 0x9864, 0x8CC4, - 0x9865, 0x8107, 0x9866, 0x60D1, 0x9867, 0x67A0, 0x9868, 0x9DF2, - 0x9869, 0x4E99, 0x986A, 0x4E98, 0x986B, 0x9C10, 0x986C, 0x8A6B, - 0x986D, 0x85C1, 0x986E, 0x8568, 0x986F, 0x6900, 0x9870, 0x6E7E, - 0x9871, 0x7897, 0x9872, 0x8155, 0x989F, 0x5F0C, 0x98A0, 0x4E10, - 0x98A1, 0x4E15, 0x98A2, 0x4E2A, 0x98A3, 0x4E31, 0x98A4, 0x4E36, - 0x98A5, 0x4E3C, 0x98A6, 0x4E3F, 0x98A7, 0x4E42, 0x98A8, 0x4E56, - 0x98A9, 0x4E58, 0x98AA, 0x4E82, 0x98AB, 0x4E85, 0x98AC, 0x8C6B, - 0x98AD, 0x4E8A, 0x98AE, 0x8212, 0x98AF, 0x5F0D, 0x98B0, 0x4E8E, - 0x98B1, 0x4E9E, 0x98B2, 0x4E9F, 0x98B3, 0x4EA0, 0x98B4, 0x4EA2, - 0x98B5, 0x4EB0, 0x98B6, 0x4EB3, 0x98B7, 0x4EB6, 0x98B8, 0x4ECE, - 0x98B9, 0x4ECD, 0x98BA, 0x4EC4, 0x98BB, 0x4EC6, 0x98BC, 0x4EC2, - 0x98BD, 0x4ED7, 0x98BE, 0x4EDE, 0x98BF, 0x4EED, 0x98C0, 0x4EDF, - 0x98C1, 0x4EF7, 0x98C2, 0x4F09, 0x98C3, 0x4F5A, 0x98C4, 0x4F30, - 0x98C5, 0x4F5B, 0x98C6, 0x4F5D, 0x98C7, 0x4F57, 0x98C8, 0x4F47, - 0x98C9, 0x4F76, 0x98CA, 0x4F88, 0x98CB, 0x4F8F, 0x98CC, 0x4F98, - 0x98CD, 0x4F7B, 0x98CE, 0x4F69, 0x98CF, 0x4F70, 0x98D0, 0x4F91, - 0x98D1, 0x4F6F, 0x98D2, 0x4F86, 0x98D3, 0x4F96, 0x98D4, 0x5118, - 0x98D5, 0x4FD4, 0x98D6, 0x4FDF, 0x98D7, 0x4FCE, 0x98D8, 0x4FD8, - 0x98D9, 0x4FDB, 0x98DA, 0x4FD1, 0x98DB, 0x4FDA, 0x98DC, 0x4FD0, - 0x98DD, 0x4FE4, 0x98DE, 0x4FE5, 0x98DF, 0x501A, 0x98E0, 0x5028, - 0x98E1, 0x5014, 0x98E2, 0x502A, 0x98E3, 0x5025, 0x98E4, 0x5005, - 0x98E5, 0x4F1C, 0x98E6, 0x4FF6, 0x98E7, 0x5021, 0x98E8, 0x5029, - 0x98E9, 0x502C, 0x98EA, 0x4FFE, 0x98EB, 0x4FEF, 0x98EC, 0x5011, - 0x98ED, 0x5006, 0x98EE, 0x5043, 0x98EF, 0x5047, 0x98F0, 0x6703, - 0x98F1, 0x5055, 0x98F2, 0x5050, 0x98F3, 0x5048, 0x98F4, 0x505A, - 0x98F5, 0x5056, 0x98F6, 0x506C, 0x98F7, 0x5078, 0x98F8, 0x5080, - 0x98F9, 0x509A, 0x98FA, 0x5085, 0x98FB, 0x50B4, 0x98FC, 0x50B2, - 0x9940, 0x50C9, 0x9941, 0x50CA, 0x9942, 0x50B3, 0x9943, 0x50C2, - 0x9944, 0x50D6, 0x9945, 0x50DE, 0x9946, 0x50E5, 0x9947, 0x50ED, - 0x9948, 0x50E3, 0x9949, 0x50EE, 0x994A, 0x50F9, 0x994B, 0x50F5, - 0x994C, 0x5109, 0x994D, 0x5101, 0x994E, 0x5102, 0x994F, 0x5116, - 0x9950, 0x5115, 0x9951, 0x5114, 0x9952, 0x511A, 0x9953, 0x5121, - 0x9954, 0x513A, 0x9955, 0x5137, 0x9956, 0x513C, 0x9957, 0x513B, - 0x9958, 0x513F, 0x9959, 0x5140, 0x995A, 0x5152, 0x995B, 0x514C, - 0x995C, 0x5154, 0x995D, 0x5162, 0x995E, 0x7AF8, 0x995F, 0x5169, - 0x9960, 0x516A, 0x9961, 0x516E, 0x9962, 0x5180, 0x9963, 0x5182, - 0x9964, 0x56D8, 0x9965, 0x518C, 0x9966, 0x5189, 0x9967, 0x518F, - 0x9968, 0x5191, 0x9969, 0x5193, 0x996A, 0x5195, 0x996B, 0x5196, - 0x996C, 0x51A4, 0x996D, 0x51A6, 0x996E, 0x51A2, 0x996F, 0x51A9, - 0x9970, 0x51AA, 0x9971, 0x51AB, 0x9972, 0x51B3, 0x9973, 0x51B1, - 0x9974, 0x51B2, 0x9975, 0x51B0, 0x9976, 0x51B5, 0x9977, 0x51BD, - 0x9978, 0x51C5, 0x9979, 0x51C9, 0x997A, 0x51DB, 0x997B, 0x51E0, - 0x997C, 0x8655, 0x997D, 0x51E9, 0x997E, 0x51ED, 0x9980, 0x51F0, - 0x9981, 0x51F5, 0x9982, 0x51FE, 0x9983, 0x5204, 0x9984, 0x520B, - 0x9985, 0x5214, 0x9986, 0x520E, 0x9987, 0x5227, 0x9988, 0x522A, - 0x9989, 0x522E, 0x998A, 0x5233, 0x998B, 0x5239, 0x998C, 0x524F, - 0x998D, 0x5244, 0x998E, 0x524B, 0x998F, 0x524C, 0x9990, 0x525E, - 0x9991, 0x5254, 0x9992, 0x526A, 0x9993, 0x5274, 0x9994, 0x5269, - 0x9995, 0x5273, 0x9996, 0x527F, 0x9997, 0x527D, 0x9998, 0x528D, - 0x9999, 0x5294, 0x999A, 0x5292, 0x999B, 0x5271, 0x999C, 0x5288, - 0x999D, 0x5291, 0x999E, 0x8FA8, 0x999F, 0x8FA7, 0x99A0, 0x52AC, - 0x99A1, 0x52AD, 0x99A2, 0x52BC, 0x99A3, 0x52B5, 0x99A4, 0x52C1, - 0x99A5, 0x52CD, 0x99A6, 0x52D7, 0x99A7, 0x52DE, 0x99A8, 0x52E3, - 0x99A9, 0x52E6, 0x99AA, 0x98ED, 0x99AB, 0x52E0, 0x99AC, 0x52F3, - 0x99AD, 0x52F5, 0x99AE, 0x52F8, 0x99AF, 0x52F9, 0x99B0, 0x5306, - 0x99B1, 0x5308, 0x99B2, 0x7538, 0x99B3, 0x530D, 0x99B4, 0x5310, - 0x99B5, 0x530F, 0x99B6, 0x5315, 0x99B7, 0x531A, 0x99B8, 0x5323, - 0x99B9, 0x532F, 0x99BA, 0x5331, 0x99BB, 0x5333, 0x99BC, 0x5338, - 0x99BD, 0x5340, 0x99BE, 0x5346, 0x99BF, 0x5345, 0x99C0, 0x4E17, - 0x99C1, 0x5349, 0x99C2, 0x534D, 0x99C3, 0x51D6, 0x99C4, 0x535E, - 0x99C5, 0x5369, 0x99C6, 0x536E, 0x99C7, 0x5918, 0x99C8, 0x537B, - 0x99C9, 0x5377, 0x99CA, 0x5382, 0x99CB, 0x5396, 0x99CC, 0x53A0, - 0x99CD, 0x53A6, 0x99CE, 0x53A5, 0x99CF, 0x53AE, 0x99D0, 0x53B0, - 0x99D1, 0x53B6, 0x99D2, 0x53C3, 0x99D3, 0x7C12, 0x99D4, 0x96D9, - 0x99D5, 0x53DF, 0x99D6, 0x66FC, 0x99D7, 0x71EE, 0x99D8, 0x53EE, - 0x99D9, 0x53E8, 0x99DA, 0x53ED, 0x99DB, 0x53FA, 0x99DC, 0x5401, - 0x99DD, 0x543D, 0x99DE, 0x5440, 0x99DF, 0x542C, 0x99E0, 0x542D, - 0x99E1, 0x543C, 0x99E2, 0x542E, 0x99E3, 0x5436, 0x99E4, 0x5429, - 0x99E5, 0x541D, 0x99E6, 0x544E, 0x99E7, 0x548F, 0x99E8, 0x5475, - 0x99E9, 0x548E, 0x99EA, 0x545F, 0x99EB, 0x5471, 0x99EC, 0x5477, - 0x99ED, 0x5470, 0x99EE, 0x5492, 0x99EF, 0x547B, 0x99F0, 0x5480, - 0x99F1, 0x5476, 0x99F2, 0x5484, 0x99F3, 0x5490, 0x99F4, 0x5486, - 0x99F5, 0x54C7, 0x99F6, 0x54A2, 0x99F7, 0x54B8, 0x99F8, 0x54A5, - 0x99F9, 0x54AC, 0x99FA, 0x54C4, 0x99FB, 0x54C8, 0x99FC, 0x54A8, - 0x9A40, 0x54AB, 0x9A41, 0x54C2, 0x9A42, 0x54A4, 0x9A43, 0x54BE, - 0x9A44, 0x54BC, 0x9A45, 0x54D8, 0x9A46, 0x54E5, 0x9A47, 0x54E6, - 0x9A48, 0x550F, 0x9A49, 0x5514, 0x9A4A, 0x54FD, 0x9A4B, 0x54EE, - 0x9A4C, 0x54ED, 0x9A4D, 0x54FA, 0x9A4E, 0x54E2, 0x9A4F, 0x5539, - 0x9A50, 0x5540, 0x9A51, 0x5563, 0x9A52, 0x554C, 0x9A53, 0x552E, - 0x9A54, 0x555C, 0x9A55, 0x5545, 0x9A56, 0x5556, 0x9A57, 0x5557, - 0x9A58, 0x5538, 0x9A59, 0x5533, 0x9A5A, 0x555D, 0x9A5B, 0x5599, - 0x9A5C, 0x5580, 0x9A5D, 0x54AF, 0x9A5E, 0x558A, 0x9A5F, 0x559F, - 0x9A60, 0x557B, 0x9A61, 0x557E, 0x9A62, 0x5598, 0x9A63, 0x559E, - 0x9A64, 0x55AE, 0x9A65, 0x557C, 0x9A66, 0x5583, 0x9A67, 0x55A9, - 0x9A68, 0x5587, 0x9A69, 0x55A8, 0x9A6A, 0x55DA, 0x9A6B, 0x55C5, - 0x9A6C, 0x55DF, 0x9A6D, 0x55C4, 0x9A6E, 0x55DC, 0x9A6F, 0x55E4, - 0x9A70, 0x55D4, 0x9A71, 0x5614, 0x9A72, 0x55F7, 0x9A73, 0x5616, - 0x9A74, 0x55FE, 0x9A75, 0x55FD, 0x9A76, 0x561B, 0x9A77, 0x55F9, - 0x9A78, 0x564E, 0x9A79, 0x5650, 0x9A7A, 0x71DF, 0x9A7B, 0x5634, - 0x9A7C, 0x5636, 0x9A7D, 0x5632, 0x9A7E, 0x5638, 0x9A80, 0x566B, - 0x9A81, 0x5664, 0x9A82, 0x562F, 0x9A83, 0x566C, 0x9A84, 0x566A, - 0x9A85, 0x5686, 0x9A86, 0x5680, 0x9A87, 0x568A, 0x9A88, 0x56A0, - 0x9A89, 0x5694, 0x9A8A, 0x568F, 0x9A8B, 0x56A5, 0x9A8C, 0x56AE, - 0x9A8D, 0x56B6, 0x9A8E, 0x56B4, 0x9A8F, 0x56C2, 0x9A90, 0x56BC, - 0x9A91, 0x56C1, 0x9A92, 0x56C3, 0x9A93, 0x56C0, 0x9A94, 0x56C8, - 0x9A95, 0x56CE, 0x9A96, 0x56D1, 0x9A97, 0x56D3, 0x9A98, 0x56D7, - 0x9A99, 0x56EE, 0x9A9A, 0x56F9, 0x9A9B, 0x5700, 0x9A9C, 0x56FF, - 0x9A9D, 0x5704, 0x9A9E, 0x5709, 0x9A9F, 0x5708, 0x9AA0, 0x570B, - 0x9AA1, 0x570D, 0x9AA2, 0x5713, 0x9AA3, 0x5718, 0x9AA4, 0x5716, - 0x9AA5, 0x55C7, 0x9AA6, 0x571C, 0x9AA7, 0x5726, 0x9AA8, 0x5737, - 0x9AA9, 0x5738, 0x9AAA, 0x574E, 0x9AAB, 0x573B, 0x9AAC, 0x5740, - 0x9AAD, 0x574F, 0x9AAE, 0x5769, 0x9AAF, 0x57C0, 0x9AB0, 0x5788, - 0x9AB1, 0x5761, 0x9AB2, 0x577F, 0x9AB3, 0x5789, 0x9AB4, 0x5793, - 0x9AB5, 0x57A0, 0x9AB6, 0x57B3, 0x9AB7, 0x57A4, 0x9AB8, 0x57AA, - 0x9AB9, 0x57B0, 0x9ABA, 0x57C3, 0x9ABB, 0x57C6, 0x9ABC, 0x57D4, - 0x9ABD, 0x57D2, 0x9ABE, 0x57D3, 0x9ABF, 0x580A, 0x9AC0, 0x57D6, - 0x9AC1, 0x57E3, 0x9AC2, 0x580B, 0x9AC3, 0x5819, 0x9AC4, 0x581D, - 0x9AC5, 0x5872, 0x9AC6, 0x5821, 0x9AC7, 0x5862, 0x9AC8, 0x584B, - 0x9AC9, 0x5870, 0x9ACA, 0x6BC0, 0x9ACB, 0x5852, 0x9ACC, 0x583D, - 0x9ACD, 0x5879, 0x9ACE, 0x5885, 0x9ACF, 0x58B9, 0x9AD0, 0x589F, - 0x9AD1, 0x58AB, 0x9AD2, 0x58BA, 0x9AD3, 0x58DE, 0x9AD4, 0x58BB, - 0x9AD5, 0x58B8, 0x9AD6, 0x58AE, 0x9AD7, 0x58C5, 0x9AD8, 0x58D3, - 0x9AD9, 0x58D1, 0x9ADA, 0x58D7, 0x9ADB, 0x58D9, 0x9ADC, 0x58D8, - 0x9ADD, 0x58E5, 0x9ADE, 0x58DC, 0x9ADF, 0x58E4, 0x9AE0, 0x58DF, - 0x9AE1, 0x58EF, 0x9AE2, 0x58FA, 0x9AE3, 0x58F9, 0x9AE4, 0x58FB, - 0x9AE5, 0x58FC, 0x9AE6, 0x58FD, 0x9AE7, 0x5902, 0x9AE8, 0x590A, - 0x9AE9, 0x5910, 0x9AEA, 0x591B, 0x9AEB, 0x68A6, 0x9AEC, 0x5925, - 0x9AED, 0x592C, 0x9AEE, 0x592D, 0x9AEF, 0x5932, 0x9AF0, 0x5938, - 0x9AF1, 0x593E, 0x9AF2, 0x7AD2, 0x9AF3, 0x5955, 0x9AF4, 0x5950, - 0x9AF5, 0x594E, 0x9AF6, 0x595A, 0x9AF7, 0x5958, 0x9AF8, 0x5962, - 0x9AF9, 0x5960, 0x9AFA, 0x5967, 0x9AFB, 0x596C, 0x9AFC, 0x5969, - 0x9B40, 0x5978, 0x9B41, 0x5981, 0x9B42, 0x599D, 0x9B43, 0x4F5E, - 0x9B44, 0x4FAB, 0x9B45, 0x59A3, 0x9B46, 0x59B2, 0x9B47, 0x59C6, - 0x9B48, 0x59E8, 0x9B49, 0x59DC, 0x9B4A, 0x598D, 0x9B4B, 0x59D9, - 0x9B4C, 0x59DA, 0x9B4D, 0x5A25, 0x9B4E, 0x5A1F, 0x9B4F, 0x5A11, - 0x9B50, 0x5A1C, 0x9B51, 0x5A09, 0x9B52, 0x5A1A, 0x9B53, 0x5A40, - 0x9B54, 0x5A6C, 0x9B55, 0x5A49, 0x9B56, 0x5A35, 0x9B57, 0x5A36, - 0x9B58, 0x5A62, 0x9B59, 0x5A6A, 0x9B5A, 0x5A9A, 0x9B5B, 0x5ABC, - 0x9B5C, 0x5ABE, 0x9B5D, 0x5ACB, 0x9B5E, 0x5AC2, 0x9B5F, 0x5ABD, - 0x9B60, 0x5AE3, 0x9B61, 0x5AD7, 0x9B62, 0x5AE6, 0x9B63, 0x5AE9, - 0x9B64, 0x5AD6, 0x9B65, 0x5AFA, 0x9B66, 0x5AFB, 0x9B67, 0x5B0C, - 0x9B68, 0x5B0B, 0x9B69, 0x5B16, 0x9B6A, 0x5B32, 0x9B6B, 0x5AD0, - 0x9B6C, 0x5B2A, 0x9B6D, 0x5B36, 0x9B6E, 0x5B3E, 0x9B6F, 0x5B43, - 0x9B70, 0x5B45, 0x9B71, 0x5B40, 0x9B72, 0x5B51, 0x9B73, 0x5B55, - 0x9B74, 0x5B5A, 0x9B75, 0x5B5B, 0x9B76, 0x5B65, 0x9B77, 0x5B69, - 0x9B78, 0x5B70, 0x9B79, 0x5B73, 0x9B7A, 0x5B75, 0x9B7B, 0x5B78, - 0x9B7C, 0x6588, 0x9B7D, 0x5B7A, 0x9B7E, 0x5B80, 0x9B80, 0x5B83, - 0x9B81, 0x5BA6, 0x9B82, 0x5BB8, 0x9B83, 0x5BC3, 0x9B84, 0x5BC7, - 0x9B85, 0x5BC9, 0x9B86, 0x5BD4, 0x9B87, 0x5BD0, 0x9B88, 0x5BE4, - 0x9B89, 0x5BE6, 0x9B8A, 0x5BE2, 0x9B8B, 0x5BDE, 0x9B8C, 0x5BE5, - 0x9B8D, 0x5BEB, 0x9B8E, 0x5BF0, 0x9B8F, 0x5BF6, 0x9B90, 0x5BF3, - 0x9B91, 0x5C05, 0x9B92, 0x5C07, 0x9B93, 0x5C08, 0x9B94, 0x5C0D, - 0x9B95, 0x5C13, 0x9B96, 0x5C20, 0x9B97, 0x5C22, 0x9B98, 0x5C28, - 0x9B99, 0x5C38, 0x9B9A, 0x5C39, 0x9B9B, 0x5C41, 0x9B9C, 0x5C46, - 0x9B9D, 0x5C4E, 0x9B9E, 0x5C53, 0x9B9F, 0x5C50, 0x9BA0, 0x5C4F, - 0x9BA1, 0x5B71, 0x9BA2, 0x5C6C, 0x9BA3, 0x5C6E, 0x9BA4, 0x4E62, - 0x9BA5, 0x5C76, 0x9BA6, 0x5C79, 0x9BA7, 0x5C8C, 0x9BA8, 0x5C91, - 0x9BA9, 0x5C94, 0x9BAA, 0x599B, 0x9BAB, 0x5CAB, 0x9BAC, 0x5CBB, - 0x9BAD, 0x5CB6, 0x9BAE, 0x5CBC, 0x9BAF, 0x5CB7, 0x9BB0, 0x5CC5, - 0x9BB1, 0x5CBE, 0x9BB2, 0x5CC7, 0x9BB3, 0x5CD9, 0x9BB4, 0x5CE9, - 0x9BB5, 0x5CFD, 0x9BB6, 0x5CFA, 0x9BB7, 0x5CED, 0x9BB8, 0x5D8C, - 0x9BB9, 0x5CEA, 0x9BBA, 0x5D0B, 0x9BBB, 0x5D15, 0x9BBC, 0x5D17, - 0x9BBD, 0x5D5C, 0x9BBE, 0x5D1F, 0x9BBF, 0x5D1B, 0x9BC0, 0x5D11, - 0x9BC1, 0x5D14, 0x9BC2, 0x5D22, 0x9BC3, 0x5D1A, 0x9BC4, 0x5D19, - 0x9BC5, 0x5D18, 0x9BC6, 0x5D4C, 0x9BC7, 0x5D52, 0x9BC8, 0x5D4E, - 0x9BC9, 0x5D4B, 0x9BCA, 0x5D6C, 0x9BCB, 0x5D73, 0x9BCC, 0x5D76, - 0x9BCD, 0x5D87, 0x9BCE, 0x5D84, 0x9BCF, 0x5D82, 0x9BD0, 0x5DA2, - 0x9BD1, 0x5D9D, 0x9BD2, 0x5DAC, 0x9BD3, 0x5DAE, 0x9BD4, 0x5DBD, - 0x9BD5, 0x5D90, 0x9BD6, 0x5DB7, 0x9BD7, 0x5DBC, 0x9BD8, 0x5DC9, - 0x9BD9, 0x5DCD, 0x9BDA, 0x5DD3, 0x9BDB, 0x5DD2, 0x9BDC, 0x5DD6, - 0x9BDD, 0x5DDB, 0x9BDE, 0x5DEB, 0x9BDF, 0x5DF2, 0x9BE0, 0x5DF5, - 0x9BE1, 0x5E0B, 0x9BE2, 0x5E1A, 0x9BE3, 0x5E19, 0x9BE4, 0x5E11, - 0x9BE5, 0x5E1B, 0x9BE6, 0x5E36, 0x9BE7, 0x5E37, 0x9BE8, 0x5E44, - 0x9BE9, 0x5E43, 0x9BEA, 0x5E40, 0x9BEB, 0x5E4E, 0x9BEC, 0x5E57, - 0x9BED, 0x5E54, 0x9BEE, 0x5E5F, 0x9BEF, 0x5E62, 0x9BF0, 0x5E64, - 0x9BF1, 0x5E47, 0x9BF2, 0x5E75, 0x9BF3, 0x5E76, 0x9BF4, 0x5E7A, - 0x9BF5, 0x9EBC, 0x9BF6, 0x5E7F, 0x9BF7, 0x5EA0, 0x9BF8, 0x5EC1, - 0x9BF9, 0x5EC2, 0x9BFA, 0x5EC8, 0x9BFB, 0x5ED0, 0x9BFC, 0x5ECF, - 0x9C40, 0x5ED6, 0x9C41, 0x5EE3, 0x9C42, 0x5EDD, 0x9C43, 0x5EDA, - 0x9C44, 0x5EDB, 0x9C45, 0x5EE2, 0x9C46, 0x5EE1, 0x9C47, 0x5EE8, - 0x9C48, 0x5EE9, 0x9C49, 0x5EEC, 0x9C4A, 0x5EF1, 0x9C4B, 0x5EF3, - 0x9C4C, 0x5EF0, 0x9C4D, 0x5EF4, 0x9C4E, 0x5EF8, 0x9C4F, 0x5EFE, - 0x9C50, 0x5F03, 0x9C51, 0x5F09, 0x9C52, 0x5F5D, 0x9C53, 0x5F5C, - 0x9C54, 0x5F0B, 0x9C55, 0x5F11, 0x9C56, 0x5F16, 0x9C57, 0x5F29, - 0x9C58, 0x5F2D, 0x9C59, 0x5F38, 0x9C5A, 0x5F41, 0x9C5B, 0x5F48, - 0x9C5C, 0x5F4C, 0x9C5D, 0x5F4E, 0x9C5E, 0x5F2F, 0x9C5F, 0x5F51, - 0x9C60, 0x5F56, 0x9C61, 0x5F57, 0x9C62, 0x5F59, 0x9C63, 0x5F61, - 0x9C64, 0x5F6D, 0x9C65, 0x5F73, 0x9C66, 0x5F77, 0x9C67, 0x5F83, - 0x9C68, 0x5F82, 0x9C69, 0x5F7F, 0x9C6A, 0x5F8A, 0x9C6B, 0x5F88, - 0x9C6C, 0x5F91, 0x9C6D, 0x5F87, 0x9C6E, 0x5F9E, 0x9C6F, 0x5F99, - 0x9C70, 0x5F98, 0x9C71, 0x5FA0, 0x9C72, 0x5FA8, 0x9C73, 0x5FAD, - 0x9C74, 0x5FBC, 0x9C75, 0x5FD6, 0x9C76, 0x5FFB, 0x9C77, 0x5FE4, - 0x9C78, 0x5FF8, 0x9C79, 0x5FF1, 0x9C7A, 0x5FDD, 0x9C7B, 0x60B3, - 0x9C7C, 0x5FFF, 0x9C7D, 0x6021, 0x9C7E, 0x6060, 0x9C80, 0x6019, - 0x9C81, 0x6010, 0x9C82, 0x6029, 0x9C83, 0x600E, 0x9C84, 0x6031, - 0x9C85, 0x601B, 0x9C86, 0x6015, 0x9C87, 0x602B, 0x9C88, 0x6026, - 0x9C89, 0x600F, 0x9C8A, 0x603A, 0x9C8B, 0x605A, 0x9C8C, 0x6041, - 0x9C8D, 0x606A, 0x9C8E, 0x6077, 0x9C8F, 0x605F, 0x9C90, 0x604A, - 0x9C91, 0x6046, 0x9C92, 0x604D, 0x9C93, 0x6063, 0x9C94, 0x6043, - 0x9C95, 0x6064, 0x9C96, 0x6042, 0x9C97, 0x606C, 0x9C98, 0x606B, - 0x9C99, 0x6059, 0x9C9A, 0x6081, 0x9C9B, 0x608D, 0x9C9C, 0x60E7, - 0x9C9D, 0x6083, 0x9C9E, 0x609A, 0x9C9F, 0x6084, 0x9CA0, 0x609B, - 0x9CA1, 0x6096, 0x9CA2, 0x6097, 0x9CA3, 0x6092, 0x9CA4, 0x60A7, - 0x9CA5, 0x608B, 0x9CA6, 0x60E1, 0x9CA7, 0x60B8, 0x9CA8, 0x60E0, - 0x9CA9, 0x60D3, 0x9CAA, 0x60B4, 0x9CAB, 0x5FF0, 0x9CAC, 0x60BD, - 0x9CAD, 0x60C6, 0x9CAE, 0x60B5, 0x9CAF, 0x60D8, 0x9CB0, 0x614D, - 0x9CB1, 0x6115, 0x9CB2, 0x6106, 0x9CB3, 0x60F6, 0x9CB4, 0x60F7, - 0x9CB5, 0x6100, 0x9CB6, 0x60F4, 0x9CB7, 0x60FA, 0x9CB8, 0x6103, - 0x9CB9, 0x6121, 0x9CBA, 0x60FB, 0x9CBB, 0x60F1, 0x9CBC, 0x610D, - 0x9CBD, 0x610E, 0x9CBE, 0x6147, 0x9CBF, 0x613E, 0x9CC0, 0x6128, - 0x9CC1, 0x6127, 0x9CC2, 0x614A, 0x9CC3, 0x613F, 0x9CC4, 0x613C, - 0x9CC5, 0x612C, 0x9CC6, 0x6134, 0x9CC7, 0x613D, 0x9CC8, 0x6142, - 0x9CC9, 0x6144, 0x9CCA, 0x6173, 0x9CCB, 0x6177, 0x9CCC, 0x6158, - 0x9CCD, 0x6159, 0x9CCE, 0x615A, 0x9CCF, 0x616B, 0x9CD0, 0x6174, - 0x9CD1, 0x616F, 0x9CD2, 0x6165, 0x9CD3, 0x6171, 0x9CD4, 0x615F, - 0x9CD5, 0x615D, 0x9CD6, 0x6153, 0x9CD7, 0x6175, 0x9CD8, 0x6199, - 0x9CD9, 0x6196, 0x9CDA, 0x6187, 0x9CDB, 0x61AC, 0x9CDC, 0x6194, - 0x9CDD, 0x619A, 0x9CDE, 0x618A, 0x9CDF, 0x6191, 0x9CE0, 0x61AB, - 0x9CE1, 0x61AE, 0x9CE2, 0x61CC, 0x9CE3, 0x61CA, 0x9CE4, 0x61C9, - 0x9CE5, 0x61F7, 0x9CE6, 0x61C8, 0x9CE7, 0x61C3, 0x9CE8, 0x61C6, - 0x9CE9, 0x61BA, 0x9CEA, 0x61CB, 0x9CEB, 0x7F79, 0x9CEC, 0x61CD, - 0x9CED, 0x61E6, 0x9CEE, 0x61E3, 0x9CEF, 0x61F6, 0x9CF0, 0x61FA, - 0x9CF1, 0x61F4, 0x9CF2, 0x61FF, 0x9CF3, 0x61FD, 0x9CF4, 0x61FC, - 0x9CF5, 0x61FE, 0x9CF6, 0x6200, 0x9CF7, 0x6208, 0x9CF8, 0x6209, - 0x9CF9, 0x620D, 0x9CFA, 0x620C, 0x9CFB, 0x6214, 0x9CFC, 0x621B, - 0x9D40, 0x621E, 0x9D41, 0x6221, 0x9D42, 0x622A, 0x9D43, 0x622E, - 0x9D44, 0x6230, 0x9D45, 0x6232, 0x9D46, 0x6233, 0x9D47, 0x6241, - 0x9D48, 0x624E, 0x9D49, 0x625E, 0x9D4A, 0x6263, 0x9D4B, 0x625B, - 0x9D4C, 0x6260, 0x9D4D, 0x6268, 0x9D4E, 0x627C, 0x9D4F, 0x6282, - 0x9D50, 0x6289, 0x9D51, 0x627E, 0x9D52, 0x6292, 0x9D53, 0x6293, - 0x9D54, 0x6296, 0x9D55, 0x62D4, 0x9D56, 0x6283, 0x9D57, 0x6294, - 0x9D58, 0x62D7, 0x9D59, 0x62D1, 0x9D5A, 0x62BB, 0x9D5B, 0x62CF, - 0x9D5C, 0x62FF, 0x9D5D, 0x62C6, 0x9D5E, 0x64D4, 0x9D5F, 0x62C8, - 0x9D60, 0x62DC, 0x9D61, 0x62CC, 0x9D62, 0x62CA, 0x9D63, 0x62C2, - 0x9D64, 0x62C7, 0x9D65, 0x629B, 0x9D66, 0x62C9, 0x9D67, 0x630C, - 0x9D68, 0x62EE, 0x9D69, 0x62F1, 0x9D6A, 0x6327, 0x9D6B, 0x6302, - 0x9D6C, 0x6308, 0x9D6D, 0x62EF, 0x9D6E, 0x62F5, 0x9D6F, 0x6350, - 0x9D70, 0x633E, 0x9D71, 0x634D, 0x9D72, 0x641C, 0x9D73, 0x634F, - 0x9D74, 0x6396, 0x9D75, 0x638E, 0x9D76, 0x6380, 0x9D77, 0x63AB, - 0x9D78, 0x6376, 0x9D79, 0x63A3, 0x9D7A, 0x638F, 0x9D7B, 0x6389, - 0x9D7C, 0x639F, 0x9D7D, 0x63B5, 0x9D7E, 0x636B, 0x9D80, 0x6369, - 0x9D81, 0x63BE, 0x9D82, 0x63E9, 0x9D83, 0x63C0, 0x9D84, 0x63C6, - 0x9D85, 0x63E3, 0x9D86, 0x63C9, 0x9D87, 0x63D2, 0x9D88, 0x63F6, - 0x9D89, 0x63C4, 0x9D8A, 0x6416, 0x9D8B, 0x6434, 0x9D8C, 0x6406, - 0x9D8D, 0x6413, 0x9D8E, 0x6426, 0x9D8F, 0x6436, 0x9D90, 0x651D, - 0x9D91, 0x6417, 0x9D92, 0x6428, 0x9D93, 0x640F, 0x9D94, 0x6467, - 0x9D95, 0x646F, 0x9D96, 0x6476, 0x9D97, 0x644E, 0x9D98, 0x652A, - 0x9D99, 0x6495, 0x9D9A, 0x6493, 0x9D9B, 0x64A5, 0x9D9C, 0x64A9, - 0x9D9D, 0x6488, 0x9D9E, 0x64BC, 0x9D9F, 0x64DA, 0x9DA0, 0x64D2, - 0x9DA1, 0x64C5, 0x9DA2, 0x64C7, 0x9DA3, 0x64BB, 0x9DA4, 0x64D8, - 0x9DA5, 0x64C2, 0x9DA6, 0x64F1, 0x9DA7, 0x64E7, 0x9DA8, 0x8209, - 0x9DA9, 0x64E0, 0x9DAA, 0x64E1, 0x9DAB, 0x62AC, 0x9DAC, 0x64E3, - 0x9DAD, 0x64EF, 0x9DAE, 0x652C, 0x9DAF, 0x64F6, 0x9DB0, 0x64F4, - 0x9DB1, 0x64F2, 0x9DB2, 0x64FA, 0x9DB3, 0x6500, 0x9DB4, 0x64FD, - 0x9DB5, 0x6518, 0x9DB6, 0x651C, 0x9DB7, 0x6505, 0x9DB8, 0x6524, - 0x9DB9, 0x6523, 0x9DBA, 0x652B, 0x9DBB, 0x6534, 0x9DBC, 0x6535, - 0x9DBD, 0x6537, 0x9DBE, 0x6536, 0x9DBF, 0x6538, 0x9DC0, 0x754B, - 0x9DC1, 0x6548, 0x9DC2, 0x6556, 0x9DC3, 0x6555, 0x9DC4, 0x654D, - 0x9DC5, 0x6558, 0x9DC6, 0x655E, 0x9DC7, 0x655D, 0x9DC8, 0x6572, - 0x9DC9, 0x6578, 0x9DCA, 0x6582, 0x9DCB, 0x6583, 0x9DCC, 0x8B8A, - 0x9DCD, 0x659B, 0x9DCE, 0x659F, 0x9DCF, 0x65AB, 0x9DD0, 0x65B7, - 0x9DD1, 0x65C3, 0x9DD2, 0x65C6, 0x9DD3, 0x65C1, 0x9DD4, 0x65C4, - 0x9DD5, 0x65CC, 0x9DD6, 0x65D2, 0x9DD7, 0x65DB, 0x9DD8, 0x65D9, - 0x9DD9, 0x65E0, 0x9DDA, 0x65E1, 0x9DDB, 0x65F1, 0x9DDC, 0x6772, - 0x9DDD, 0x660A, 0x9DDE, 0x6603, 0x9DDF, 0x65FB, 0x9DE0, 0x6773, - 0x9DE1, 0x6635, 0x9DE2, 0x6636, 0x9DE3, 0x6634, 0x9DE4, 0x661C, - 0x9DE5, 0x664F, 0x9DE6, 0x6644, 0x9DE7, 0x6649, 0x9DE8, 0x6641, - 0x9DE9, 0x665E, 0x9DEA, 0x665D, 0x9DEB, 0x6664, 0x9DEC, 0x6667, - 0x9DED, 0x6668, 0x9DEE, 0x665F, 0x9DEF, 0x6662, 0x9DF0, 0x6670, - 0x9DF1, 0x6683, 0x9DF2, 0x6688, 0x9DF3, 0x668E, 0x9DF4, 0x6689, - 0x9DF5, 0x6684, 0x9DF6, 0x6698, 0x9DF7, 0x669D, 0x9DF8, 0x66C1, - 0x9DF9, 0x66B9, 0x9DFA, 0x66C9, 0x9DFB, 0x66BE, 0x9DFC, 0x66BC, - 0x9E40, 0x66C4, 0x9E41, 0x66B8, 0x9E42, 0x66D6, 0x9E43, 0x66DA, - 0x9E44, 0x66E0, 0x9E45, 0x663F, 0x9E46, 0x66E6, 0x9E47, 0x66E9, - 0x9E48, 0x66F0, 0x9E49, 0x66F5, 0x9E4A, 0x66F7, 0x9E4B, 0x670F, - 0x9E4C, 0x6716, 0x9E4D, 0x671E, 0x9E4E, 0x6726, 0x9E4F, 0x6727, - 0x9E50, 0x9738, 0x9E51, 0x672E, 0x9E52, 0x673F, 0x9E53, 0x6736, - 0x9E54, 0x6741, 0x9E55, 0x6738, 0x9E56, 0x6737, 0x9E57, 0x6746, - 0x9E58, 0x675E, 0x9E59, 0x6760, 0x9E5A, 0x6759, 0x9E5B, 0x6763, - 0x9E5C, 0x6764, 0x9E5D, 0x6789, 0x9E5E, 0x6770, 0x9E5F, 0x67A9, - 0x9E60, 0x677C, 0x9E61, 0x676A, 0x9E62, 0x678C, 0x9E63, 0x678B, - 0x9E64, 0x67A6, 0x9E65, 0x67A1, 0x9E66, 0x6785, 0x9E67, 0x67B7, - 0x9E68, 0x67EF, 0x9E69, 0x67B4, 0x9E6A, 0x67EC, 0x9E6B, 0x67B3, - 0x9E6C, 0x67E9, 0x9E6D, 0x67B8, 0x9E6E, 0x67E4, 0x9E6F, 0x67DE, - 0x9E70, 0x67DD, 0x9E71, 0x67E2, 0x9E72, 0x67EE, 0x9E73, 0x67B9, - 0x9E74, 0x67CE, 0x9E75, 0x67C6, 0x9E76, 0x67E7, 0x9E77, 0x6A9C, - 0x9E78, 0x681E, 0x9E79, 0x6846, 0x9E7A, 0x6829, 0x9E7B, 0x6840, - 0x9E7C, 0x684D, 0x9E7D, 0x6832, 0x9E7E, 0x684E, 0x9E80, 0x68B3, - 0x9E81, 0x682B, 0x9E82, 0x6859, 0x9E83, 0x6863, 0x9E84, 0x6877, - 0x9E85, 0x687F, 0x9E86, 0x689F, 0x9E87, 0x688F, 0x9E88, 0x68AD, - 0x9E89, 0x6894, 0x9E8A, 0x689D, 0x9E8B, 0x689B, 0x9E8C, 0x6883, - 0x9E8D, 0x6AAE, 0x9E8E, 0x68B9, 0x9E8F, 0x6874, 0x9E90, 0x68B5, - 0x9E91, 0x68A0, 0x9E92, 0x68BA, 0x9E93, 0x690F, 0x9E94, 0x688D, - 0x9E95, 0x687E, 0x9E96, 0x6901, 0x9E97, 0x68CA, 0x9E98, 0x6908, - 0x9E99, 0x68D8, 0x9E9A, 0x6922, 0x9E9B, 0x6926, 0x9E9C, 0x68E1, - 0x9E9D, 0x690C, 0x9E9E, 0x68CD, 0x9E9F, 0x68D4, 0x9EA0, 0x68E7, - 0x9EA1, 0x68D5, 0x9EA2, 0x6936, 0x9EA3, 0x6912, 0x9EA4, 0x6904, - 0x9EA5, 0x68D7, 0x9EA6, 0x68E3, 0x9EA7, 0x6925, 0x9EA8, 0x68F9, - 0x9EA9, 0x68E0, 0x9EAA, 0x68EF, 0x9EAB, 0x6928, 0x9EAC, 0x692A, - 0x9EAD, 0x691A, 0x9EAE, 0x6923, 0x9EAF, 0x6921, 0x9EB0, 0x68C6, - 0x9EB1, 0x6979, 0x9EB2, 0x6977, 0x9EB3, 0x695C, 0x9EB4, 0x6978, - 0x9EB5, 0x696B, 0x9EB6, 0x6954, 0x9EB7, 0x697E, 0x9EB8, 0x696E, - 0x9EB9, 0x6939, 0x9EBA, 0x6974, 0x9EBB, 0x693D, 0x9EBC, 0x6959, - 0x9EBD, 0x6930, 0x9EBE, 0x6961, 0x9EBF, 0x695E, 0x9EC0, 0x695D, - 0x9EC1, 0x6981, 0x9EC2, 0x696A, 0x9EC3, 0x69B2, 0x9EC4, 0x69AE, - 0x9EC5, 0x69D0, 0x9EC6, 0x69BF, 0x9EC7, 0x69C1, 0x9EC8, 0x69D3, - 0x9EC9, 0x69BE, 0x9ECA, 0x69CE, 0x9ECB, 0x5BE8, 0x9ECC, 0x69CA, - 0x9ECD, 0x69DD, 0x9ECE, 0x69BB, 0x9ECF, 0x69C3, 0x9ED0, 0x69A7, - 0x9ED1, 0x6A2E, 0x9ED2, 0x6991, 0x9ED3, 0x69A0, 0x9ED4, 0x699C, - 0x9ED5, 0x6995, 0x9ED6, 0x69B4, 0x9ED7, 0x69DE, 0x9ED8, 0x69E8, - 0x9ED9, 0x6A02, 0x9EDA, 0x6A1B, 0x9EDB, 0x69FF, 0x9EDC, 0x6B0A, - 0x9EDD, 0x69F9, 0x9EDE, 0x69F2, 0x9EDF, 0x69E7, 0x9EE0, 0x6A05, - 0x9EE1, 0x69B1, 0x9EE2, 0x6A1E, 0x9EE3, 0x69ED, 0x9EE4, 0x6A14, - 0x9EE5, 0x69EB, 0x9EE6, 0x6A0A, 0x9EE7, 0x6A12, 0x9EE8, 0x6AC1, - 0x9EE9, 0x6A23, 0x9EEA, 0x6A13, 0x9EEB, 0x6A44, 0x9EEC, 0x6A0C, - 0x9EED, 0x6A72, 0x9EEE, 0x6A36, 0x9EEF, 0x6A78, 0x9EF0, 0x6A47, - 0x9EF1, 0x6A62, 0x9EF2, 0x6A59, 0x9EF3, 0x6A66, 0x9EF4, 0x6A48, - 0x9EF5, 0x6A38, 0x9EF6, 0x6A22, 0x9EF7, 0x6A90, 0x9EF8, 0x6A8D, - 0x9EF9, 0x6AA0, 0x9EFA, 0x6A84, 0x9EFB, 0x6AA2, 0x9EFC, 0x6AA3, - 0x9F40, 0x6A97, 0x9F41, 0x8617, 0x9F42, 0x6ABB, 0x9F43, 0x6AC3, - 0x9F44, 0x6AC2, 0x9F45, 0x6AB8, 0x9F46, 0x6AB3, 0x9F47, 0x6AAC, - 0x9F48, 0x6ADE, 0x9F49, 0x6AD1, 0x9F4A, 0x6ADF, 0x9F4B, 0x6AAA, - 0x9F4C, 0x6ADA, 0x9F4D, 0x6AEA, 0x9F4E, 0x6AFB, 0x9F4F, 0x6B05, - 0x9F50, 0x8616, 0x9F51, 0x6AFA, 0x9F52, 0x6B12, 0x9F53, 0x6B16, - 0x9F54, 0x9B31, 0x9F55, 0x6B1F, 0x9F56, 0x6B38, 0x9F57, 0x6B37, - 0x9F58, 0x76DC, 0x9F59, 0x6B39, 0x9F5A, 0x98EE, 0x9F5B, 0x6B47, - 0x9F5C, 0x6B43, 0x9F5D, 0x6B49, 0x9F5E, 0x6B50, 0x9F5F, 0x6B59, - 0x9F60, 0x6B54, 0x9F61, 0x6B5B, 0x9F62, 0x6B5F, 0x9F63, 0x6B61, - 0x9F64, 0x6B78, 0x9F65, 0x6B79, 0x9F66, 0x6B7F, 0x9F67, 0x6B80, - 0x9F68, 0x6B84, 0x9F69, 0x6B83, 0x9F6A, 0x6B8D, 0x9F6B, 0x6B98, - 0x9F6C, 0x6B95, 0x9F6D, 0x6B9E, 0x9F6E, 0x6BA4, 0x9F6F, 0x6BAA, - 0x9F70, 0x6BAB, 0x9F71, 0x6BAF, 0x9F72, 0x6BB2, 0x9F73, 0x6BB1, - 0x9F74, 0x6BB3, 0x9F75, 0x6BB7, 0x9F76, 0x6BBC, 0x9F77, 0x6BC6, - 0x9F78, 0x6BCB, 0x9F79, 0x6BD3, 0x9F7A, 0x6BDF, 0x9F7B, 0x6BEC, - 0x9F7C, 0x6BEB, 0x9F7D, 0x6BF3, 0x9F7E, 0x6BEF, 0x9F80, 0x9EBE, - 0x9F81, 0x6C08, 0x9F82, 0x6C13, 0x9F83, 0x6C14, 0x9F84, 0x6C1B, - 0x9F85, 0x6C24, 0x9F86, 0x6C23, 0x9F87, 0x6C5E, 0x9F88, 0x6C55, - 0x9F89, 0x6C62, 0x9F8A, 0x6C6A, 0x9F8B, 0x6C82, 0x9F8C, 0x6C8D, - 0x9F8D, 0x6C9A, 0x9F8E, 0x6C81, 0x9F8F, 0x6C9B, 0x9F90, 0x6C7E, - 0x9F91, 0x6C68, 0x9F92, 0x6C73, 0x9F93, 0x6C92, 0x9F94, 0x6C90, - 0x9F95, 0x6CC4, 0x9F96, 0x6CF1, 0x9F97, 0x6CD3, 0x9F98, 0x6CBD, - 0x9F99, 0x6CD7, 0x9F9A, 0x6CC5, 0x9F9B, 0x6CDD, 0x9F9C, 0x6CAE, - 0x9F9D, 0x6CB1, 0x9F9E, 0x6CBE, 0x9F9F, 0x6CBA, 0x9FA0, 0x6CDB, - 0x9FA1, 0x6CEF, 0x9FA2, 0x6CD9, 0x9FA3, 0x6CEA, 0x9FA4, 0x6D1F, - 0x9FA5, 0x884D, 0x9FA6, 0x6D36, 0x9FA7, 0x6D2B, 0x9FA8, 0x6D3D, - 0x9FA9, 0x6D38, 0x9FAA, 0x6D19, 0x9FAB, 0x6D35, 0x9FAC, 0x6D33, - 0x9FAD, 0x6D12, 0x9FAE, 0x6D0C, 0x9FAF, 0x6D63, 0x9FB0, 0x6D93, - 0x9FB1, 0x6D64, 0x9FB2, 0x6D5A, 0x9FB3, 0x6D79, 0x9FB4, 0x6D59, - 0x9FB5, 0x6D8E, 0x9FB6, 0x6D95, 0x9FB7, 0x6FE4, 0x9FB8, 0x6D85, - 0x9FB9, 0x6DF9, 0x9FBA, 0x6E15, 0x9FBB, 0x6E0A, 0x9FBC, 0x6DB5, - 0x9FBD, 0x6DC7, 0x9FBE, 0x6DE6, 0x9FBF, 0x6DB8, 0x9FC0, 0x6DC6, - 0x9FC1, 0x6DEC, 0x9FC2, 0x6DDE, 0x9FC3, 0x6DCC, 0x9FC4, 0x6DE8, - 0x9FC5, 0x6DD2, 0x9FC6, 0x6DC5, 0x9FC7, 0x6DFA, 0x9FC8, 0x6DD9, - 0x9FC9, 0x6DE4, 0x9FCA, 0x6DD5, 0x9FCB, 0x6DEA, 0x9FCC, 0x6DEE, - 0x9FCD, 0x6E2D, 0x9FCE, 0x6E6E, 0x9FCF, 0x6E2E, 0x9FD0, 0x6E19, - 0x9FD1, 0x6E72, 0x9FD2, 0x6E5F, 0x9FD3, 0x6E3E, 0x9FD4, 0x6E23, - 0x9FD5, 0x6E6B, 0x9FD6, 0x6E2B, 0x9FD7, 0x6E76, 0x9FD8, 0x6E4D, - 0x9FD9, 0x6E1F, 0x9FDA, 0x6E43, 0x9FDB, 0x6E3A, 0x9FDC, 0x6E4E, - 0x9FDD, 0x6E24, 0x9FDE, 0x6EFF, 0x9FDF, 0x6E1D, 0x9FE0, 0x6E38, - 0x9FE1, 0x6E82, 0x9FE2, 0x6EAA, 0x9FE3, 0x6E98, 0x9FE4, 0x6EC9, - 0x9FE5, 0x6EB7, 0x9FE6, 0x6ED3, 0x9FE7, 0x6EBD, 0x9FE8, 0x6EAF, - 0x9FE9, 0x6EC4, 0x9FEA, 0x6EB2, 0x9FEB, 0x6ED4, 0x9FEC, 0x6ED5, - 0x9FED, 0x6E8F, 0x9FEE, 0x6EA5, 0x9FEF, 0x6EC2, 0x9FF0, 0x6E9F, - 0x9FF1, 0x6F41, 0x9FF2, 0x6F11, 0x9FF3, 0x704C, 0x9FF4, 0x6EEC, - 0x9FF5, 0x6EF8, 0x9FF6, 0x6EFE, 0x9FF7, 0x6F3F, 0x9FF8, 0x6EF2, - 0x9FF9, 0x6F31, 0x9FFA, 0x6EEF, 0x9FFB, 0x6F32, 0x9FFC, 0x6ECC, - 0xE040, 0x6F3E, 0xE041, 0x6F13, 0xE042, 0x6EF7, 0xE043, 0x6F86, - 0xE044, 0x6F7A, 0xE045, 0x6F78, 0xE046, 0x6F81, 0xE047, 0x6F80, - 0xE048, 0x6F6F, 0xE049, 0x6F5B, 0xE04A, 0x6FF3, 0xE04B, 0x6F6D, - 0xE04C, 0x6F82, 0xE04D, 0x6F7C, 0xE04E, 0x6F58, 0xE04F, 0x6F8E, - 0xE050, 0x6F91, 0xE051, 0x6FC2, 0xE052, 0x6F66, 0xE053, 0x6FB3, - 0xE054, 0x6FA3, 0xE055, 0x6FA1, 0xE056, 0x6FA4, 0xE057, 0x6FB9, - 0xE058, 0x6FC6, 0xE059, 0x6FAA, 0xE05A, 0x6FDF, 0xE05B, 0x6FD5, - 0xE05C, 0x6FEC, 0xE05D, 0x6FD4, 0xE05E, 0x6FD8, 0xE05F, 0x6FF1, - 0xE060, 0x6FEE, 0xE061, 0x6FDB, 0xE062, 0x7009, 0xE063, 0x700B, - 0xE064, 0x6FFA, 0xE065, 0x7011, 0xE066, 0x7001, 0xE067, 0x700F, - 0xE068, 0x6FFE, 0xE069, 0x701B, 0xE06A, 0x701A, 0xE06B, 0x6F74, - 0xE06C, 0x701D, 0xE06D, 0x7018, 0xE06E, 0x701F, 0xE06F, 0x7030, - 0xE070, 0x703E, 0xE071, 0x7032, 0xE072, 0x7051, 0xE073, 0x7063, - 0xE074, 0x7099, 0xE075, 0x7092, 0xE076, 0x70AF, 0xE077, 0x70F1, - 0xE078, 0x70AC, 0xE079, 0x70B8, 0xE07A, 0x70B3, 0xE07B, 0x70AE, - 0xE07C, 0x70DF, 0xE07D, 0x70CB, 0xE07E, 0x70DD, 0xE080, 0x70D9, - 0xE081, 0x7109, 0xE082, 0x70FD, 0xE083, 0x711C, 0xE084, 0x7119, - 0xE085, 0x7165, 0xE086, 0x7155, 0xE087, 0x7188, 0xE088, 0x7166, - 0xE089, 0x7162, 0xE08A, 0x714C, 0xE08B, 0x7156, 0xE08C, 0x716C, - 0xE08D, 0x718F, 0xE08E, 0x71FB, 0xE08F, 0x7184, 0xE090, 0x7195, - 0xE091, 0x71A8, 0xE092, 0x71AC, 0xE093, 0x71D7, 0xE094, 0x71B9, - 0xE095, 0x71BE, 0xE096, 0x71D2, 0xE097, 0x71C9, 0xE098, 0x71D4, - 0xE099, 0x71CE, 0xE09A, 0x71E0, 0xE09B, 0x71EC, 0xE09C, 0x71E7, - 0xE09D, 0x71F5, 0xE09E, 0x71FC, 0xE09F, 0x71F9, 0xE0A0, 0x71FF, - 0xE0A1, 0x720D, 0xE0A2, 0x7210, 0xE0A3, 0x721B, 0xE0A4, 0x7228, - 0xE0A5, 0x722D, 0xE0A6, 0x722C, 0xE0A7, 0x7230, 0xE0A8, 0x7232, - 0xE0A9, 0x723B, 0xE0AA, 0x723C, 0xE0AB, 0x723F, 0xE0AC, 0x7240, - 0xE0AD, 0x7246, 0xE0AE, 0x724B, 0xE0AF, 0x7258, 0xE0B0, 0x7274, - 0xE0B1, 0x727E, 0xE0B2, 0x7282, 0xE0B3, 0x7281, 0xE0B4, 0x7287, - 0xE0B5, 0x7292, 0xE0B6, 0x7296, 0xE0B7, 0x72A2, 0xE0B8, 0x72A7, - 0xE0B9, 0x72B9, 0xE0BA, 0x72B2, 0xE0BB, 0x72C3, 0xE0BC, 0x72C6, - 0xE0BD, 0x72C4, 0xE0BE, 0x72CE, 0xE0BF, 0x72D2, 0xE0C0, 0x72E2, - 0xE0C1, 0x72E0, 0xE0C2, 0x72E1, 0xE0C3, 0x72F9, 0xE0C4, 0x72F7, - 0xE0C5, 0x500F, 0xE0C6, 0x7317, 0xE0C7, 0x730A, 0xE0C8, 0x731C, - 0xE0C9, 0x7316, 0xE0CA, 0x731D, 0xE0CB, 0x7334, 0xE0CC, 0x732F, - 0xE0CD, 0x7329, 0xE0CE, 0x7325, 0xE0CF, 0x733E, 0xE0D0, 0x734E, - 0xE0D1, 0x734F, 0xE0D2, 0x9ED8, 0xE0D3, 0x7357, 0xE0D4, 0x736A, - 0xE0D5, 0x7368, 0xE0D6, 0x7370, 0xE0D7, 0x7378, 0xE0D8, 0x7375, - 0xE0D9, 0x737B, 0xE0DA, 0x737A, 0xE0DB, 0x73C8, 0xE0DC, 0x73B3, - 0xE0DD, 0x73CE, 0xE0DE, 0x73BB, 0xE0DF, 0x73C0, 0xE0E0, 0x73E5, - 0xE0E1, 0x73EE, 0xE0E2, 0x73DE, 0xE0E3, 0x74A2, 0xE0E4, 0x7405, - 0xE0E5, 0x746F, 0xE0E6, 0x7425, 0xE0E7, 0x73F8, 0xE0E8, 0x7432, - 0xE0E9, 0x743A, 0xE0EA, 0x7455, 0xE0EB, 0x743F, 0xE0EC, 0x745F, - 0xE0ED, 0x7459, 0xE0EE, 0x7441, 0xE0EF, 0x745C, 0xE0F0, 0x7469, - 0xE0F1, 0x7470, 0xE0F2, 0x7463, 0xE0F3, 0x746A, 0xE0F4, 0x7476, - 0xE0F5, 0x747E, 0xE0F6, 0x748B, 0xE0F7, 0x749E, 0xE0F8, 0x74A7, - 0xE0F9, 0x74CA, 0xE0FA, 0x74CF, 0xE0FB, 0x74D4, 0xE0FC, 0x73F1, - 0xE140, 0x74E0, 0xE141, 0x74E3, 0xE142, 0x74E7, 0xE143, 0x74E9, - 0xE144, 0x74EE, 0xE145, 0x74F2, 0xE146, 0x74F0, 0xE147, 0x74F1, - 0xE148, 0x74F8, 0xE149, 0x74F7, 0xE14A, 0x7504, 0xE14B, 0x7503, - 0xE14C, 0x7505, 0xE14D, 0x750C, 0xE14E, 0x750E, 0xE14F, 0x750D, - 0xE150, 0x7515, 0xE151, 0x7513, 0xE152, 0x751E, 0xE153, 0x7526, - 0xE154, 0x752C, 0xE155, 0x753C, 0xE156, 0x7544, 0xE157, 0x754D, - 0xE158, 0x754A, 0xE159, 0x7549, 0xE15A, 0x755B, 0xE15B, 0x7546, - 0xE15C, 0x755A, 0xE15D, 0x7569, 0xE15E, 0x7564, 0xE15F, 0x7567, - 0xE160, 0x756B, 0xE161, 0x756D, 0xE162, 0x7578, 0xE163, 0x7576, - 0xE164, 0x7586, 0xE165, 0x7587, 0xE166, 0x7574, 0xE167, 0x758A, - 0xE168, 0x7589, 0xE169, 0x7582, 0xE16A, 0x7594, 0xE16B, 0x759A, - 0xE16C, 0x759D, 0xE16D, 0x75A5, 0xE16E, 0x75A3, 0xE16F, 0x75C2, - 0xE170, 0x75B3, 0xE171, 0x75C3, 0xE172, 0x75B5, 0xE173, 0x75BD, - 0xE174, 0x75B8, 0xE175, 0x75BC, 0xE176, 0x75B1, 0xE177, 0x75CD, - 0xE178, 0x75CA, 0xE179, 0x75D2, 0xE17A, 0x75D9, 0xE17B, 0x75E3, - 0xE17C, 0x75DE, 0xE17D, 0x75FE, 0xE17E, 0x75FF, 0xE180, 0x75FC, - 0xE181, 0x7601, 0xE182, 0x75F0, 0xE183, 0x75FA, 0xE184, 0x75F2, - 0xE185, 0x75F3, 0xE186, 0x760B, 0xE187, 0x760D, 0xE188, 0x7609, - 0xE189, 0x761F, 0xE18A, 0x7627, 0xE18B, 0x7620, 0xE18C, 0x7621, - 0xE18D, 0x7622, 0xE18E, 0x7624, 0xE18F, 0x7634, 0xE190, 0x7630, - 0xE191, 0x763B, 0xE192, 0x7647, 0xE193, 0x7648, 0xE194, 0x7646, - 0xE195, 0x765C, 0xE196, 0x7658, 0xE197, 0x7661, 0xE198, 0x7662, - 0xE199, 0x7668, 0xE19A, 0x7669, 0xE19B, 0x766A, 0xE19C, 0x7667, - 0xE19D, 0x766C, 0xE19E, 0x7670, 0xE19F, 0x7672, 0xE1A0, 0x7676, - 0xE1A1, 0x7678, 0xE1A2, 0x767C, 0xE1A3, 0x7680, 0xE1A4, 0x7683, - 0xE1A5, 0x7688, 0xE1A6, 0x768B, 0xE1A7, 0x768E, 0xE1A8, 0x7696, - 0xE1A9, 0x7693, 0xE1AA, 0x7699, 0xE1AB, 0x769A, 0xE1AC, 0x76B0, - 0xE1AD, 0x76B4, 0xE1AE, 0x76B8, 0xE1AF, 0x76B9, 0xE1B0, 0x76BA, - 0xE1B1, 0x76C2, 0xE1B2, 0x76CD, 0xE1B3, 0x76D6, 0xE1B4, 0x76D2, - 0xE1B5, 0x76DE, 0xE1B6, 0x76E1, 0xE1B7, 0x76E5, 0xE1B8, 0x76E7, - 0xE1B9, 0x76EA, 0xE1BA, 0x862F, 0xE1BB, 0x76FB, 0xE1BC, 0x7708, - 0xE1BD, 0x7707, 0xE1BE, 0x7704, 0xE1BF, 0x7729, 0xE1C0, 0x7724, - 0xE1C1, 0x771E, 0xE1C2, 0x7725, 0xE1C3, 0x7726, 0xE1C4, 0x771B, - 0xE1C5, 0x7737, 0xE1C6, 0x7738, 0xE1C7, 0x7747, 0xE1C8, 0x775A, - 0xE1C9, 0x7768, 0xE1CA, 0x776B, 0xE1CB, 0x775B, 0xE1CC, 0x7765, - 0xE1CD, 0x777F, 0xE1CE, 0x777E, 0xE1CF, 0x7779, 0xE1D0, 0x778E, - 0xE1D1, 0x778B, 0xE1D2, 0x7791, 0xE1D3, 0x77A0, 0xE1D4, 0x779E, - 0xE1D5, 0x77B0, 0xE1D6, 0x77B6, 0xE1D7, 0x77B9, 0xE1D8, 0x77BF, - 0xE1D9, 0x77BC, 0xE1DA, 0x77BD, 0xE1DB, 0x77BB, 0xE1DC, 0x77C7, - 0xE1DD, 0x77CD, 0xE1DE, 0x77D7, 0xE1DF, 0x77DA, 0xE1E0, 0x77DC, - 0xE1E1, 0x77E3, 0xE1E2, 0x77EE, 0xE1E3, 0x77FC, 0xE1E4, 0x780C, - 0xE1E5, 0x7812, 0xE1E6, 0x7926, 0xE1E7, 0x7820, 0xE1E8, 0x792A, - 0xE1E9, 0x7845, 0xE1EA, 0x788E, 0xE1EB, 0x7874, 0xE1EC, 0x7886, - 0xE1ED, 0x787C, 0xE1EE, 0x789A, 0xE1EF, 0x788C, 0xE1F0, 0x78A3, - 0xE1F1, 0x78B5, 0xE1F2, 0x78AA, 0xE1F3, 0x78AF, 0xE1F4, 0x78D1, - 0xE1F5, 0x78C6, 0xE1F6, 0x78CB, 0xE1F7, 0x78D4, 0xE1F8, 0x78BE, - 0xE1F9, 0x78BC, 0xE1FA, 0x78C5, 0xE1FB, 0x78CA, 0xE1FC, 0x78EC, - 0xE240, 0x78E7, 0xE241, 0x78DA, 0xE242, 0x78FD, 0xE243, 0x78F4, - 0xE244, 0x7907, 0xE245, 0x7912, 0xE246, 0x7911, 0xE247, 0x7919, - 0xE248, 0x792C, 0xE249, 0x792B, 0xE24A, 0x7940, 0xE24B, 0x7960, - 0xE24C, 0x7957, 0xE24D, 0x795F, 0xE24E, 0x795A, 0xE24F, 0x7955, - 0xE250, 0x7953, 0xE251, 0x797A, 0xE252, 0x797F, 0xE253, 0x798A, - 0xE254, 0x799D, 0xE255, 0x79A7, 0xE256, 0x9F4B, 0xE257, 0x79AA, - 0xE258, 0x79AE, 0xE259, 0x79B3, 0xE25A, 0x79B9, 0xE25B, 0x79BA, - 0xE25C, 0x79C9, 0xE25D, 0x79D5, 0xE25E, 0x79E7, 0xE25F, 0x79EC, - 0xE260, 0x79E1, 0xE261, 0x79E3, 0xE262, 0x7A08, 0xE263, 0x7A0D, - 0xE264, 0x7A18, 0xE265, 0x7A19, 0xE266, 0x7A20, 0xE267, 0x7A1F, - 0xE268, 0x7980, 0xE269, 0x7A31, 0xE26A, 0x7A3B, 0xE26B, 0x7A3E, - 0xE26C, 0x7A37, 0xE26D, 0x7A43, 0xE26E, 0x7A57, 0xE26F, 0x7A49, - 0xE270, 0x7A61, 0xE271, 0x7A62, 0xE272, 0x7A69, 0xE273, 0x9F9D, - 0xE274, 0x7A70, 0xE275, 0x7A79, 0xE276, 0x7A7D, 0xE277, 0x7A88, - 0xE278, 0x7A97, 0xE279, 0x7A95, 0xE27A, 0x7A98, 0xE27B, 0x7A96, - 0xE27C, 0x7AA9, 0xE27D, 0x7AC8, 0xE27E, 0x7AB0, 0xE280, 0x7AB6, - 0xE281, 0x7AC5, 0xE282, 0x7AC4, 0xE283, 0x7ABF, 0xE284, 0x9083, - 0xE285, 0x7AC7, 0xE286, 0x7ACA, 0xE287, 0x7ACD, 0xE288, 0x7ACF, - 0xE289, 0x7AD5, 0xE28A, 0x7AD3, 0xE28B, 0x7AD9, 0xE28C, 0x7ADA, - 0xE28D, 0x7ADD, 0xE28E, 0x7AE1, 0xE28F, 0x7AE2, 0xE290, 0x7AE6, - 0xE291, 0x7AED, 0xE292, 0x7AF0, 0xE293, 0x7B02, 0xE294, 0x7B0F, - 0xE295, 0x7B0A, 0xE296, 0x7B06, 0xE297, 0x7B33, 0xE298, 0x7B18, - 0xE299, 0x7B19, 0xE29A, 0x7B1E, 0xE29B, 0x7B35, 0xE29C, 0x7B28, - 0xE29D, 0x7B36, 0xE29E, 0x7B50, 0xE29F, 0x7B7A, 0xE2A0, 0x7B04, - 0xE2A1, 0x7B4D, 0xE2A2, 0x7B0B, 0xE2A3, 0x7B4C, 0xE2A4, 0x7B45, - 0xE2A5, 0x7B75, 0xE2A6, 0x7B65, 0xE2A7, 0x7B74, 0xE2A8, 0x7B67, - 0xE2A9, 0x7B70, 0xE2AA, 0x7B71, 0xE2AB, 0x7B6C, 0xE2AC, 0x7B6E, - 0xE2AD, 0x7B9D, 0xE2AE, 0x7B98, 0xE2AF, 0x7B9F, 0xE2B0, 0x7B8D, - 0xE2B1, 0x7B9C, 0xE2B2, 0x7B9A, 0xE2B3, 0x7B8B, 0xE2B4, 0x7B92, - 0xE2B5, 0x7B8F, 0xE2B6, 0x7B5D, 0xE2B7, 0x7B99, 0xE2B8, 0x7BCB, - 0xE2B9, 0x7BC1, 0xE2BA, 0x7BCC, 0xE2BB, 0x7BCF, 0xE2BC, 0x7BB4, - 0xE2BD, 0x7BC6, 0xE2BE, 0x7BDD, 0xE2BF, 0x7BE9, 0xE2C0, 0x7C11, - 0xE2C1, 0x7C14, 0xE2C2, 0x7BE6, 0xE2C3, 0x7BE5, 0xE2C4, 0x7C60, - 0xE2C5, 0x7C00, 0xE2C6, 0x7C07, 0xE2C7, 0x7C13, 0xE2C8, 0x7BF3, - 0xE2C9, 0x7BF7, 0xE2CA, 0x7C17, 0xE2CB, 0x7C0D, 0xE2CC, 0x7BF6, - 0xE2CD, 0x7C23, 0xE2CE, 0x7C27, 0xE2CF, 0x7C2A, 0xE2D0, 0x7C1F, - 0xE2D1, 0x7C37, 0xE2D2, 0x7C2B, 0xE2D3, 0x7C3D, 0xE2D4, 0x7C4C, - 0xE2D5, 0x7C43, 0xE2D6, 0x7C54, 0xE2D7, 0x7C4F, 0xE2D8, 0x7C40, - 0xE2D9, 0x7C50, 0xE2DA, 0x7C58, 0xE2DB, 0x7C5F, 0xE2DC, 0x7C64, - 0xE2DD, 0x7C56, 0xE2DE, 0x7C65, 0xE2DF, 0x7C6C, 0xE2E0, 0x7C75, - 0xE2E1, 0x7C83, 0xE2E2, 0x7C90, 0xE2E3, 0x7CA4, 0xE2E4, 0x7CAD, - 0xE2E5, 0x7CA2, 0xE2E6, 0x7CAB, 0xE2E7, 0x7CA1, 0xE2E8, 0x7CA8, - 0xE2E9, 0x7CB3, 0xE2EA, 0x7CB2, 0xE2EB, 0x7CB1, 0xE2EC, 0x7CAE, - 0xE2ED, 0x7CB9, 0xE2EE, 0x7CBD, 0xE2EF, 0x7CC0, 0xE2F0, 0x7CC5, - 0xE2F1, 0x7CC2, 0xE2F2, 0x7CD8, 0xE2F3, 0x7CD2, 0xE2F4, 0x7CDC, - 0xE2F5, 0x7CE2, 0xE2F6, 0x9B3B, 0xE2F7, 0x7CEF, 0xE2F8, 0x7CF2, - 0xE2F9, 0x7CF4, 0xE2FA, 0x7CF6, 0xE2FB, 0x7CFA, 0xE2FC, 0x7D06, - 0xE340, 0x7D02, 0xE341, 0x7D1C, 0xE342, 0x7D15, 0xE343, 0x7D0A, - 0xE344, 0x7D45, 0xE345, 0x7D4B, 0xE346, 0x7D2E, 0xE347, 0x7D32, - 0xE348, 0x7D3F, 0xE349, 0x7D35, 0xE34A, 0x7D46, 0xE34B, 0x7D73, - 0xE34C, 0x7D56, 0xE34D, 0x7D4E, 0xE34E, 0x7D72, 0xE34F, 0x7D68, - 0xE350, 0x7D6E, 0xE351, 0x7D4F, 0xE352, 0x7D63, 0xE353, 0x7D93, - 0xE354, 0x7D89, 0xE355, 0x7D5B, 0xE356, 0x7D8F, 0xE357, 0x7D7D, - 0xE358, 0x7D9B, 0xE359, 0x7DBA, 0xE35A, 0x7DAE, 0xE35B, 0x7DA3, - 0xE35C, 0x7DB5, 0xE35D, 0x7DC7, 0xE35E, 0x7DBD, 0xE35F, 0x7DAB, - 0xE360, 0x7E3D, 0xE361, 0x7DA2, 0xE362, 0x7DAF, 0xE363, 0x7DDC, - 0xE364, 0x7DB8, 0xE365, 0x7D9F, 0xE366, 0x7DB0, 0xE367, 0x7DD8, - 0xE368, 0x7DDD, 0xE369, 0x7DE4, 0xE36A, 0x7DDE, 0xE36B, 0x7DFB, - 0xE36C, 0x7DF2, 0xE36D, 0x7DE1, 0xE36E, 0x7E05, 0xE36F, 0x7E0A, - 0xE370, 0x7E23, 0xE371, 0x7E21, 0xE372, 0x7E12, 0xE373, 0x7E31, - 0xE374, 0x7E1F, 0xE375, 0x7E09, 0xE376, 0x7E0B, 0xE377, 0x7E22, - 0xE378, 0x7E46, 0xE379, 0x7E66, 0xE37A, 0x7E3B, 0xE37B, 0x7E35, - 0xE37C, 0x7E39, 0xE37D, 0x7E43, 0xE37E, 0x7E37, 0xE380, 0x7E32, - 0xE381, 0x7E3A, 0xE382, 0x7E67, 0xE383, 0x7E5D, 0xE384, 0x7E56, - 0xE385, 0x7E5E, 0xE386, 0x7E59, 0xE387, 0x7E5A, 0xE388, 0x7E79, - 0xE389, 0x7E6A, 0xE38A, 0x7E69, 0xE38B, 0x7E7C, 0xE38C, 0x7E7B, - 0xE38D, 0x7E83, 0xE38E, 0x7DD5, 0xE38F, 0x7E7D, 0xE390, 0x8FAE, - 0xE391, 0x7E7F, 0xE392, 0x7E88, 0xE393, 0x7E89, 0xE394, 0x7E8C, - 0xE395, 0x7E92, 0xE396, 0x7E90, 0xE397, 0x7E93, 0xE398, 0x7E94, - 0xE399, 0x7E96, 0xE39A, 0x7E8E, 0xE39B, 0x7E9B, 0xE39C, 0x7E9C, - 0xE39D, 0x7F38, 0xE39E, 0x7F3A, 0xE39F, 0x7F45, 0xE3A0, 0x7F4C, - 0xE3A1, 0x7F4D, 0xE3A2, 0x7F4E, 0xE3A3, 0x7F50, 0xE3A4, 0x7F51, - 0xE3A5, 0x7F55, 0xE3A6, 0x7F54, 0xE3A7, 0x7F58, 0xE3A8, 0x7F5F, - 0xE3A9, 0x7F60, 0xE3AA, 0x7F68, 0xE3AB, 0x7F69, 0xE3AC, 0x7F67, - 0xE3AD, 0x7F78, 0xE3AE, 0x7F82, 0xE3AF, 0x7F86, 0xE3B0, 0x7F83, - 0xE3B1, 0x7F88, 0xE3B2, 0x7F87, 0xE3B3, 0x7F8C, 0xE3B4, 0x7F94, - 0xE3B5, 0x7F9E, 0xE3B6, 0x7F9D, 0xE3B7, 0x7F9A, 0xE3B8, 0x7FA3, - 0xE3B9, 0x7FAF, 0xE3BA, 0x7FB2, 0xE3BB, 0x7FB9, 0xE3BC, 0x7FAE, - 0xE3BD, 0x7FB6, 0xE3BE, 0x7FB8, 0xE3BF, 0x8B71, 0xE3C0, 0x7FC5, - 0xE3C1, 0x7FC6, 0xE3C2, 0x7FCA, 0xE3C3, 0x7FD5, 0xE3C4, 0x7FD4, - 0xE3C5, 0x7FE1, 0xE3C6, 0x7FE6, 0xE3C7, 0x7FE9, 0xE3C8, 0x7FF3, - 0xE3C9, 0x7FF9, 0xE3CA, 0x98DC, 0xE3CB, 0x8006, 0xE3CC, 0x8004, - 0xE3CD, 0x800B, 0xE3CE, 0x8012, 0xE3CF, 0x8018, 0xE3D0, 0x8019, - 0xE3D1, 0x801C, 0xE3D2, 0x8021, 0xE3D3, 0x8028, 0xE3D4, 0x803F, - 0xE3D5, 0x803B, 0xE3D6, 0x804A, 0xE3D7, 0x8046, 0xE3D8, 0x8052, - 0xE3D9, 0x8058, 0xE3DA, 0x805A, 0xE3DB, 0x805F, 0xE3DC, 0x8062, - 0xE3DD, 0x8068, 0xE3DE, 0x8073, 0xE3DF, 0x8072, 0xE3E0, 0x8070, - 0xE3E1, 0x8076, 0xE3E2, 0x8079, 0xE3E3, 0x807D, 0xE3E4, 0x807F, - 0xE3E5, 0x8084, 0xE3E6, 0x8086, 0xE3E7, 0x8085, 0xE3E8, 0x809B, - 0xE3E9, 0x8093, 0xE3EA, 0x809A, 0xE3EB, 0x80AD, 0xE3EC, 0x5190, - 0xE3ED, 0x80AC, 0xE3EE, 0x80DB, 0xE3EF, 0x80E5, 0xE3F0, 0x80D9, - 0xE3F1, 0x80DD, 0xE3F2, 0x80C4, 0xE3F3, 0x80DA, 0xE3F4, 0x80D6, - 0xE3F5, 0x8109, 0xE3F6, 0x80EF, 0xE3F7, 0x80F1, 0xE3F8, 0x811B, - 0xE3F9, 0x8129, 0xE3FA, 0x8123, 0xE3FB, 0x812F, 0xE3FC, 0x814B, - 0xE440, 0x968B, 0xE441, 0x8146, 0xE442, 0x813E, 0xE443, 0x8153, - 0xE444, 0x8151, 0xE445, 0x80FC, 0xE446, 0x8171, 0xE447, 0x816E, - 0xE448, 0x8165, 0xE449, 0x8166, 0xE44A, 0x8174, 0xE44B, 0x8183, - 0xE44C, 0x8188, 0xE44D, 0x818A, 0xE44E, 0x8180, 0xE44F, 0x8182, - 0xE450, 0x81A0, 0xE451, 0x8195, 0xE452, 0x81A4, 0xE453, 0x81A3, - 0xE454, 0x815F, 0xE455, 0x8193, 0xE456, 0x81A9, 0xE457, 0x81B0, - 0xE458, 0x81B5, 0xE459, 0x81BE, 0xE45A, 0x81B8, 0xE45B, 0x81BD, - 0xE45C, 0x81C0, 0xE45D, 0x81C2, 0xE45E, 0x81BA, 0xE45F, 0x81C9, - 0xE460, 0x81CD, 0xE461, 0x81D1, 0xE462, 0x81D9, 0xE463, 0x81D8, - 0xE464, 0x81C8, 0xE465, 0x81DA, 0xE466, 0x81DF, 0xE467, 0x81E0, - 0xE468, 0x81E7, 0xE469, 0x81FA, 0xE46A, 0x81FB, 0xE46B, 0x81FE, - 0xE46C, 0x8201, 0xE46D, 0x8202, 0xE46E, 0x8205, 0xE46F, 0x8207, - 0xE470, 0x820A, 0xE471, 0x820D, 0xE472, 0x8210, 0xE473, 0x8216, - 0xE474, 0x8229, 0xE475, 0x822B, 0xE476, 0x8238, 0xE477, 0x8233, - 0xE478, 0x8240, 0xE479, 0x8259, 0xE47A, 0x8258, 0xE47B, 0x825D, - 0xE47C, 0x825A, 0xE47D, 0x825F, 0xE47E, 0x8264, 0xE480, 0x8262, - 0xE481, 0x8268, 0xE482, 0x826A, 0xE483, 0x826B, 0xE484, 0x822E, - 0xE485, 0x8271, 0xE486, 0x8277, 0xE487, 0x8278, 0xE488, 0x827E, - 0xE489, 0x828D, 0xE48A, 0x8292, 0xE48B, 0x82AB, 0xE48C, 0x829F, - 0xE48D, 0x82BB, 0xE48E, 0x82AC, 0xE48F, 0x82E1, 0xE490, 0x82E3, - 0xE491, 0x82DF, 0xE492, 0x82D2, 0xE493, 0x82F4, 0xE494, 0x82F3, - 0xE495, 0x82FA, 0xE496, 0x8393, 0xE497, 0x8303, 0xE498, 0x82FB, - 0xE499, 0x82F9, 0xE49A, 0x82DE, 0xE49B, 0x8306, 0xE49C, 0x82DC, - 0xE49D, 0x8309, 0xE49E, 0x82D9, 0xE49F, 0x8335, 0xE4A0, 0x8334, - 0xE4A1, 0x8316, 0xE4A2, 0x8332, 0xE4A3, 0x8331, 0xE4A4, 0x8340, - 0xE4A5, 0x8339, 0xE4A6, 0x8350, 0xE4A7, 0x8345, 0xE4A8, 0x832F, - 0xE4A9, 0x832B, 0xE4AA, 0x8317, 0xE4AB, 0x8318, 0xE4AC, 0x8385, - 0xE4AD, 0x839A, 0xE4AE, 0x83AA, 0xE4AF, 0x839F, 0xE4B0, 0x83A2, - 0xE4B1, 0x8396, 0xE4B2, 0x8323, 0xE4B3, 0x838E, 0xE4B4, 0x8387, - 0xE4B5, 0x838A, 0xE4B6, 0x837C, 0xE4B7, 0x83B5, 0xE4B8, 0x8373, - 0xE4B9, 0x8375, 0xE4BA, 0x83A0, 0xE4BB, 0x8389, 0xE4BC, 0x83A8, - 0xE4BD, 0x83F4, 0xE4BE, 0x8413, 0xE4BF, 0x83EB, 0xE4C0, 0x83CE, - 0xE4C1, 0x83FD, 0xE4C2, 0x8403, 0xE4C3, 0x83D8, 0xE4C4, 0x840B, - 0xE4C5, 0x83C1, 0xE4C6, 0x83F7, 0xE4C7, 0x8407, 0xE4C8, 0x83E0, - 0xE4C9, 0x83F2, 0xE4CA, 0x840D, 0xE4CB, 0x8422, 0xE4CC, 0x8420, - 0xE4CD, 0x83BD, 0xE4CE, 0x8438, 0xE4CF, 0x8506, 0xE4D0, 0x83FB, - 0xE4D1, 0x846D, 0xE4D2, 0x842A, 0xE4D3, 0x843C, 0xE4D4, 0x855A, - 0xE4D5, 0x8484, 0xE4D6, 0x8477, 0xE4D7, 0x846B, 0xE4D8, 0x84AD, - 0xE4D9, 0x846E, 0xE4DA, 0x8482, 0xE4DB, 0x8469, 0xE4DC, 0x8446, - 0xE4DD, 0x842C, 0xE4DE, 0x846F, 0xE4DF, 0x8479, 0xE4E0, 0x8435, - 0xE4E1, 0x84CA, 0xE4E2, 0x8462, 0xE4E3, 0x84B9, 0xE4E4, 0x84BF, - 0xE4E5, 0x849F, 0xE4E6, 0x84D9, 0xE4E7, 0x84CD, 0xE4E8, 0x84BB, - 0xE4E9, 0x84DA, 0xE4EA, 0x84D0, 0xE4EB, 0x84C1, 0xE4EC, 0x84C6, - 0xE4ED, 0x84D6, 0xE4EE, 0x84A1, 0xE4EF, 0x8521, 0xE4F0, 0x84FF, - 0xE4F1, 0x84F4, 0xE4F2, 0x8517, 0xE4F3, 0x8518, 0xE4F4, 0x852C, - 0xE4F5, 0x851F, 0xE4F6, 0x8515, 0xE4F7, 0x8514, 0xE4F8, 0x84FC, - 0xE4F9, 0x8540, 0xE4FA, 0x8563, 0xE4FB, 0x8558, 0xE4FC, 0x8548, - 0xE540, 0x8541, 0xE541, 0x8602, 0xE542, 0x854B, 0xE543, 0x8555, - 0xE544, 0x8580, 0xE545, 0x85A4, 0xE546, 0x8588, 0xE547, 0x8591, - 0xE548, 0x858A, 0xE549, 0x85A8, 0xE54A, 0x856D, 0xE54B, 0x8594, - 0xE54C, 0x859B, 0xE54D, 0x85EA, 0xE54E, 0x8587, 0xE54F, 0x859C, - 0xE550, 0x8577, 0xE551, 0x857E, 0xE552, 0x8590, 0xE553, 0x85C9, - 0xE554, 0x85BA, 0xE555, 0x85CF, 0xE556, 0x85B9, 0xE557, 0x85D0, - 0xE558, 0x85D5, 0xE559, 0x85DD, 0xE55A, 0x85E5, 0xE55B, 0x85DC, - 0xE55C, 0x85F9, 0xE55D, 0x860A, 0xE55E, 0x8613, 0xE55F, 0x860B, - 0xE560, 0x85FE, 0xE561, 0x85FA, 0xE562, 0x8606, 0xE563, 0x8622, - 0xE564, 0x861A, 0xE565, 0x8630, 0xE566, 0x863F, 0xE567, 0x864D, - 0xE568, 0x4E55, 0xE569, 0x8654, 0xE56A, 0x865F, 0xE56B, 0x8667, - 0xE56C, 0x8671, 0xE56D, 0x8693, 0xE56E, 0x86A3, 0xE56F, 0x86A9, - 0xE570, 0x86AA, 0xE571, 0x868B, 0xE572, 0x868C, 0xE573, 0x86B6, - 0xE574, 0x86AF, 0xE575, 0x86C4, 0xE576, 0x86C6, 0xE577, 0x86B0, - 0xE578, 0x86C9, 0xE579, 0x8823, 0xE57A, 0x86AB, 0xE57B, 0x86D4, - 0xE57C, 0x86DE, 0xE57D, 0x86E9, 0xE57E, 0x86EC, 0xE580, 0x86DF, - 0xE581, 0x86DB, 0xE582, 0x86EF, 0xE583, 0x8712, 0xE584, 0x8706, - 0xE585, 0x8708, 0xE586, 0x8700, 0xE587, 0x8703, 0xE588, 0x86FB, - 0xE589, 0x8711, 0xE58A, 0x8709, 0xE58B, 0x870D, 0xE58C, 0x86F9, - 0xE58D, 0x870A, 0xE58E, 0x8734, 0xE58F, 0x873F, 0xE590, 0x8737, - 0xE591, 0x873B, 0xE592, 0x8725, 0xE593, 0x8729, 0xE594, 0x871A, - 0xE595, 0x8760, 0xE596, 0x875F, 0xE597, 0x8778, 0xE598, 0x874C, - 0xE599, 0x874E, 0xE59A, 0x8774, 0xE59B, 0x8757, 0xE59C, 0x8768, - 0xE59D, 0x876E, 0xE59E, 0x8759, 0xE59F, 0x8753, 0xE5A0, 0x8763, - 0xE5A1, 0x876A, 0xE5A2, 0x8805, 0xE5A3, 0x87A2, 0xE5A4, 0x879F, - 0xE5A5, 0x8782, 0xE5A6, 0x87AF, 0xE5A7, 0x87CB, 0xE5A8, 0x87BD, - 0xE5A9, 0x87C0, 0xE5AA, 0x87D0, 0xE5AB, 0x96D6, 0xE5AC, 0x87AB, - 0xE5AD, 0x87C4, 0xE5AE, 0x87B3, 0xE5AF, 0x87C7, 0xE5B0, 0x87C6, - 0xE5B1, 0x87BB, 0xE5B2, 0x87EF, 0xE5B3, 0x87F2, 0xE5B4, 0x87E0, - 0xE5B5, 0x880F, 0xE5B6, 0x880D, 0xE5B7, 0x87FE, 0xE5B8, 0x87F6, - 0xE5B9, 0x87F7, 0xE5BA, 0x880E, 0xE5BB, 0x87D2, 0xE5BC, 0x8811, - 0xE5BD, 0x8816, 0xE5BE, 0x8815, 0xE5BF, 0x8822, 0xE5C0, 0x8821, - 0xE5C1, 0x8831, 0xE5C2, 0x8836, 0xE5C3, 0x8839, 0xE5C4, 0x8827, - 0xE5C5, 0x883B, 0xE5C6, 0x8844, 0xE5C7, 0x8842, 0xE5C8, 0x8852, - 0xE5C9, 0x8859, 0xE5CA, 0x885E, 0xE5CB, 0x8862, 0xE5CC, 0x886B, - 0xE5CD, 0x8881, 0xE5CE, 0x887E, 0xE5CF, 0x889E, 0xE5D0, 0x8875, - 0xE5D1, 0x887D, 0xE5D2, 0x88B5, 0xE5D3, 0x8872, 0xE5D4, 0x8882, - 0xE5D5, 0x8897, 0xE5D6, 0x8892, 0xE5D7, 0x88AE, 0xE5D8, 0x8899, - 0xE5D9, 0x88A2, 0xE5DA, 0x888D, 0xE5DB, 0x88A4, 0xE5DC, 0x88B0, - 0xE5DD, 0x88BF, 0xE5DE, 0x88B1, 0xE5DF, 0x88C3, 0xE5E0, 0x88C4, - 0xE5E1, 0x88D4, 0xE5E2, 0x88D8, 0xE5E3, 0x88D9, 0xE5E4, 0x88DD, - 0xE5E5, 0x88F9, 0xE5E6, 0x8902, 0xE5E7, 0x88FC, 0xE5E8, 0x88F4, - 0xE5E9, 0x88E8, 0xE5EA, 0x88F2, 0xE5EB, 0x8904, 0xE5EC, 0x890C, - 0xE5ED, 0x890A, 0xE5EE, 0x8913, 0xE5EF, 0x8943, 0xE5F0, 0x891E, - 0xE5F1, 0x8925, 0xE5F2, 0x892A, 0xE5F3, 0x892B, 0xE5F4, 0x8941, - 0xE5F5, 0x8944, 0xE5F6, 0x893B, 0xE5F7, 0x8936, 0xE5F8, 0x8938, - 0xE5F9, 0x894C, 0xE5FA, 0x891D, 0xE5FB, 0x8960, 0xE5FC, 0x895E, - 0xE640, 0x8966, 0xE641, 0x8964, 0xE642, 0x896D, 0xE643, 0x896A, - 0xE644, 0x896F, 0xE645, 0x8974, 0xE646, 0x8977, 0xE647, 0x897E, - 0xE648, 0x8983, 0xE649, 0x8988, 0xE64A, 0x898A, 0xE64B, 0x8993, - 0xE64C, 0x8998, 0xE64D, 0x89A1, 0xE64E, 0x89A9, 0xE64F, 0x89A6, - 0xE650, 0x89AC, 0xE651, 0x89AF, 0xE652, 0x89B2, 0xE653, 0x89BA, - 0xE654, 0x89BD, 0xE655, 0x89BF, 0xE656, 0x89C0, 0xE657, 0x89DA, - 0xE658, 0x89DC, 0xE659, 0x89DD, 0xE65A, 0x89E7, 0xE65B, 0x89F4, - 0xE65C, 0x89F8, 0xE65D, 0x8A03, 0xE65E, 0x8A16, 0xE65F, 0x8A10, - 0xE660, 0x8A0C, 0xE661, 0x8A1B, 0xE662, 0x8A1D, 0xE663, 0x8A25, - 0xE664, 0x8A36, 0xE665, 0x8A41, 0xE666, 0x8A5B, 0xE667, 0x8A52, - 0xE668, 0x8A46, 0xE669, 0x8A48, 0xE66A, 0x8A7C, 0xE66B, 0x8A6D, - 0xE66C, 0x8A6C, 0xE66D, 0x8A62, 0xE66E, 0x8A85, 0xE66F, 0x8A82, - 0xE670, 0x8A84, 0xE671, 0x8AA8, 0xE672, 0x8AA1, 0xE673, 0x8A91, - 0xE674, 0x8AA5, 0xE675, 0x8AA6, 0xE676, 0x8A9A, 0xE677, 0x8AA3, - 0xE678, 0x8AC4, 0xE679, 0x8ACD, 0xE67A, 0x8AC2, 0xE67B, 0x8ADA, - 0xE67C, 0x8AEB, 0xE67D, 0x8AF3, 0xE67E, 0x8AE7, 0xE680, 0x8AE4, - 0xE681, 0x8AF1, 0xE682, 0x8B14, 0xE683, 0x8AE0, 0xE684, 0x8AE2, - 0xE685, 0x8AF7, 0xE686, 0x8ADE, 0xE687, 0x8ADB, 0xE688, 0x8B0C, - 0xE689, 0x8B07, 0xE68A, 0x8B1A, 0xE68B, 0x8AE1, 0xE68C, 0x8B16, - 0xE68D, 0x8B10, 0xE68E, 0x8B17, 0xE68F, 0x8B20, 0xE690, 0x8B33, - 0xE691, 0x97AB, 0xE692, 0x8B26, 0xE693, 0x8B2B, 0xE694, 0x8B3E, - 0xE695, 0x8B28, 0xE696, 0x8B41, 0xE697, 0x8B4C, 0xE698, 0x8B4F, - 0xE699, 0x8B4E, 0xE69A, 0x8B49, 0xE69B, 0x8B56, 0xE69C, 0x8B5B, - 0xE69D, 0x8B5A, 0xE69E, 0x8B6B, 0xE69F, 0x8B5F, 0xE6A0, 0x8B6C, - 0xE6A1, 0x8B6F, 0xE6A2, 0x8B74, 0xE6A3, 0x8B7D, 0xE6A4, 0x8B80, - 0xE6A5, 0x8B8C, 0xE6A6, 0x8B8E, 0xE6A7, 0x8B92, 0xE6A8, 0x8B93, - 0xE6A9, 0x8B96, 0xE6AA, 0x8B99, 0xE6AB, 0x8B9A, 0xE6AC, 0x8C3A, - 0xE6AD, 0x8C41, 0xE6AE, 0x8C3F, 0xE6AF, 0x8C48, 0xE6B0, 0x8C4C, - 0xE6B1, 0x8C4E, 0xE6B2, 0x8C50, 0xE6B3, 0x8C55, 0xE6B4, 0x8C62, - 0xE6B5, 0x8C6C, 0xE6B6, 0x8C78, 0xE6B7, 0x8C7A, 0xE6B8, 0x8C82, - 0xE6B9, 0x8C89, 0xE6BA, 0x8C85, 0xE6BB, 0x8C8A, 0xE6BC, 0x8C8D, - 0xE6BD, 0x8C8E, 0xE6BE, 0x8C94, 0xE6BF, 0x8C7C, 0xE6C0, 0x8C98, - 0xE6C1, 0x621D, 0xE6C2, 0x8CAD, 0xE6C3, 0x8CAA, 0xE6C4, 0x8CBD, - 0xE6C5, 0x8CB2, 0xE6C6, 0x8CB3, 0xE6C7, 0x8CAE, 0xE6C8, 0x8CB6, - 0xE6C9, 0x8CC8, 0xE6CA, 0x8CC1, 0xE6CB, 0x8CE4, 0xE6CC, 0x8CE3, - 0xE6CD, 0x8CDA, 0xE6CE, 0x8CFD, 0xE6CF, 0x8CFA, 0xE6D0, 0x8CFB, - 0xE6D1, 0x8D04, 0xE6D2, 0x8D05, 0xE6D3, 0x8D0A, 0xE6D4, 0x8D07, - 0xE6D5, 0x8D0F, 0xE6D6, 0x8D0D, 0xE6D7, 0x8D10, 0xE6D8, 0x9F4E, - 0xE6D9, 0x8D13, 0xE6DA, 0x8CCD, 0xE6DB, 0x8D14, 0xE6DC, 0x8D16, - 0xE6DD, 0x8D67, 0xE6DE, 0x8D6D, 0xE6DF, 0x8D71, 0xE6E0, 0x8D73, - 0xE6E1, 0x8D81, 0xE6E2, 0x8D99, 0xE6E3, 0x8DC2, 0xE6E4, 0x8DBE, - 0xE6E5, 0x8DBA, 0xE6E6, 0x8DCF, 0xE6E7, 0x8DDA, 0xE6E8, 0x8DD6, - 0xE6E9, 0x8DCC, 0xE6EA, 0x8DDB, 0xE6EB, 0x8DCB, 0xE6EC, 0x8DEA, - 0xE6ED, 0x8DEB, 0xE6EE, 0x8DDF, 0xE6EF, 0x8DE3, 0xE6F0, 0x8DFC, - 0xE6F1, 0x8E08, 0xE6F2, 0x8E09, 0xE6F3, 0x8DFF, 0xE6F4, 0x8E1D, - 0xE6F5, 0x8E1E, 0xE6F6, 0x8E10, 0xE6F7, 0x8E1F, 0xE6F8, 0x8E42, - 0xE6F9, 0x8E35, 0xE6FA, 0x8E30, 0xE6FB, 0x8E34, 0xE6FC, 0x8E4A, - 0xE740, 0x8E47, 0xE741, 0x8E49, 0xE742, 0x8E4C, 0xE743, 0x8E50, - 0xE744, 0x8E48, 0xE745, 0x8E59, 0xE746, 0x8E64, 0xE747, 0x8E60, - 0xE748, 0x8E2A, 0xE749, 0x8E63, 0xE74A, 0x8E55, 0xE74B, 0x8E76, - 0xE74C, 0x8E72, 0xE74D, 0x8E7C, 0xE74E, 0x8E81, 0xE74F, 0x8E87, - 0xE750, 0x8E85, 0xE751, 0x8E84, 0xE752, 0x8E8B, 0xE753, 0x8E8A, - 0xE754, 0x8E93, 0xE755, 0x8E91, 0xE756, 0x8E94, 0xE757, 0x8E99, - 0xE758, 0x8EAA, 0xE759, 0x8EA1, 0xE75A, 0x8EAC, 0xE75B, 0x8EB0, - 0xE75C, 0x8EC6, 0xE75D, 0x8EB1, 0xE75E, 0x8EBE, 0xE75F, 0x8EC5, - 0xE760, 0x8EC8, 0xE761, 0x8ECB, 0xE762, 0x8EDB, 0xE763, 0x8EE3, - 0xE764, 0x8EFC, 0xE765, 0x8EFB, 0xE766, 0x8EEB, 0xE767, 0x8EFE, - 0xE768, 0x8F0A, 0xE769, 0x8F05, 0xE76A, 0x8F15, 0xE76B, 0x8F12, - 0xE76C, 0x8F19, 0xE76D, 0x8F13, 0xE76E, 0x8F1C, 0xE76F, 0x8F1F, - 0xE770, 0x8F1B, 0xE771, 0x8F0C, 0xE772, 0x8F26, 0xE773, 0x8F33, - 0xE774, 0x8F3B, 0xE775, 0x8F39, 0xE776, 0x8F45, 0xE777, 0x8F42, - 0xE778, 0x8F3E, 0xE779, 0x8F4C, 0xE77A, 0x8F49, 0xE77B, 0x8F46, - 0xE77C, 0x8F4E, 0xE77D, 0x8F57, 0xE77E, 0x8F5C, 0xE780, 0x8F62, - 0xE781, 0x8F63, 0xE782, 0x8F64, 0xE783, 0x8F9C, 0xE784, 0x8F9F, - 0xE785, 0x8FA3, 0xE786, 0x8FAD, 0xE787, 0x8FAF, 0xE788, 0x8FB7, - 0xE789, 0x8FDA, 0xE78A, 0x8FE5, 0xE78B, 0x8FE2, 0xE78C, 0x8FEA, - 0xE78D, 0x8FEF, 0xE78E, 0x9087, 0xE78F, 0x8FF4, 0xE790, 0x9005, - 0xE791, 0x8FF9, 0xE792, 0x8FFA, 0xE793, 0x9011, 0xE794, 0x9015, - 0xE795, 0x9021, 0xE796, 0x900D, 0xE797, 0x901E, 0xE798, 0x9016, - 0xE799, 0x900B, 0xE79A, 0x9027, 0xE79B, 0x9036, 0xE79C, 0x9035, - 0xE79D, 0x9039, 0xE79E, 0x8FF8, 0xE79F, 0x904F, 0xE7A0, 0x9050, - 0xE7A1, 0x9051, 0xE7A2, 0x9052, 0xE7A3, 0x900E, 0xE7A4, 0x9049, - 0xE7A5, 0x903E, 0xE7A6, 0x9056, 0xE7A7, 0x9058, 0xE7A8, 0x905E, - 0xE7A9, 0x9068, 0xE7AA, 0x906F, 0xE7AB, 0x9076, 0xE7AC, 0x96A8, - 0xE7AD, 0x9072, 0xE7AE, 0x9082, 0xE7AF, 0x907D, 0xE7B0, 0x9081, - 0xE7B1, 0x9080, 0xE7B2, 0x908A, 0xE7B3, 0x9089, 0xE7B4, 0x908F, - 0xE7B5, 0x90A8, 0xE7B6, 0x90AF, 0xE7B7, 0x90B1, 0xE7B8, 0x90B5, - 0xE7B9, 0x90E2, 0xE7BA, 0x90E4, 0xE7BB, 0x6248, 0xE7BC, 0x90DB, - 0xE7BD, 0x9102, 0xE7BE, 0x9112, 0xE7BF, 0x9119, 0xE7C0, 0x9132, - 0xE7C1, 0x9130, 0xE7C2, 0x914A, 0xE7C3, 0x9156, 0xE7C4, 0x9158, - 0xE7C5, 0x9163, 0xE7C6, 0x9165, 0xE7C7, 0x9169, 0xE7C8, 0x9173, - 0xE7C9, 0x9172, 0xE7CA, 0x918B, 0xE7CB, 0x9189, 0xE7CC, 0x9182, - 0xE7CD, 0x91A2, 0xE7CE, 0x91AB, 0xE7CF, 0x91AF, 0xE7D0, 0x91AA, - 0xE7D1, 0x91B5, 0xE7D2, 0x91B4, 0xE7D3, 0x91BA, 0xE7D4, 0x91C0, - 0xE7D5, 0x91C1, 0xE7D6, 0x91C9, 0xE7D7, 0x91CB, 0xE7D8, 0x91D0, - 0xE7D9, 0x91D6, 0xE7DA, 0x91DF, 0xE7DB, 0x91E1, 0xE7DC, 0x91DB, - 0xE7DD, 0x91FC, 0xE7DE, 0x91F5, 0xE7DF, 0x91F6, 0xE7E0, 0x921E, - 0xE7E1, 0x91FF, 0xE7E2, 0x9214, 0xE7E3, 0x922C, 0xE7E4, 0x9215, - 0xE7E5, 0x9211, 0xE7E6, 0x925E, 0xE7E7, 0x9257, 0xE7E8, 0x9245, - 0xE7E9, 0x9249, 0xE7EA, 0x9264, 0xE7EB, 0x9248, 0xE7EC, 0x9295, - 0xE7ED, 0x923F, 0xE7EE, 0x924B, 0xE7EF, 0x9250, 0xE7F0, 0x929C, - 0xE7F1, 0x9296, 0xE7F2, 0x9293, 0xE7F3, 0x929B, 0xE7F4, 0x925A, - 0xE7F5, 0x92CF, 0xE7F6, 0x92B9, 0xE7F7, 0x92B7, 0xE7F8, 0x92E9, - 0xE7F9, 0x930F, 0xE7FA, 0x92FA, 0xE7FB, 0x9344, 0xE7FC, 0x932E, - 0xE840, 0x9319, 0xE841, 0x9322, 0xE842, 0x931A, 0xE843, 0x9323, - 0xE844, 0x933A, 0xE845, 0x9335, 0xE846, 0x933B, 0xE847, 0x935C, - 0xE848, 0x9360, 0xE849, 0x937C, 0xE84A, 0x936E, 0xE84B, 0x9356, - 0xE84C, 0x93B0, 0xE84D, 0x93AC, 0xE84E, 0x93AD, 0xE84F, 0x9394, - 0xE850, 0x93B9, 0xE851, 0x93D6, 0xE852, 0x93D7, 0xE853, 0x93E8, - 0xE854, 0x93E5, 0xE855, 0x93D8, 0xE856, 0x93C3, 0xE857, 0x93DD, - 0xE858, 0x93D0, 0xE859, 0x93C8, 0xE85A, 0x93E4, 0xE85B, 0x941A, - 0xE85C, 0x9414, 0xE85D, 0x9413, 0xE85E, 0x9403, 0xE85F, 0x9407, - 0xE860, 0x9410, 0xE861, 0x9436, 0xE862, 0x942B, 0xE863, 0x9435, - 0xE864, 0x9421, 0xE865, 0x943A, 0xE866, 0x9441, 0xE867, 0x9452, - 0xE868, 0x9444, 0xE869, 0x945B, 0xE86A, 0x9460, 0xE86B, 0x9462, - 0xE86C, 0x945E, 0xE86D, 0x946A, 0xE86E, 0x9229, 0xE86F, 0x9470, - 0xE870, 0x9475, 0xE871, 0x9477, 0xE872, 0x947D, 0xE873, 0x945A, - 0xE874, 0x947C, 0xE875, 0x947E, 0xE876, 0x9481, 0xE877, 0x947F, - 0xE878, 0x9582, 0xE879, 0x9587, 0xE87A, 0x958A, 0xE87B, 0x9594, - 0xE87C, 0x9596, 0xE87D, 0x9598, 0xE87E, 0x9599, 0xE880, 0x95A0, - 0xE881, 0x95A8, 0xE882, 0x95A7, 0xE883, 0x95AD, 0xE884, 0x95BC, - 0xE885, 0x95BB, 0xE886, 0x95B9, 0xE887, 0x95BE, 0xE888, 0x95CA, - 0xE889, 0x6FF6, 0xE88A, 0x95C3, 0xE88B, 0x95CD, 0xE88C, 0x95CC, - 0xE88D, 0x95D5, 0xE88E, 0x95D4, 0xE88F, 0x95D6, 0xE890, 0x95DC, - 0xE891, 0x95E1, 0xE892, 0x95E5, 0xE893, 0x95E2, 0xE894, 0x9621, - 0xE895, 0x9628, 0xE896, 0x962E, 0xE897, 0x962F, 0xE898, 0x9642, - 0xE899, 0x964C, 0xE89A, 0x964F, 0xE89B, 0x964B, 0xE89C, 0x9677, - 0xE89D, 0x965C, 0xE89E, 0x965E, 0xE89F, 0x965D, 0xE8A0, 0x965F, - 0xE8A1, 0x9666, 0xE8A2, 0x9672, 0xE8A3, 0x966C, 0xE8A4, 0x968D, - 0xE8A5, 0x9698, 0xE8A6, 0x9695, 0xE8A7, 0x9697, 0xE8A8, 0x96AA, - 0xE8A9, 0x96A7, 0xE8AA, 0x96B1, 0xE8AB, 0x96B2, 0xE8AC, 0x96B0, - 0xE8AD, 0x96B4, 0xE8AE, 0x96B6, 0xE8AF, 0x96B8, 0xE8B0, 0x96B9, - 0xE8B1, 0x96CE, 0xE8B2, 0x96CB, 0xE8B3, 0x96C9, 0xE8B4, 0x96CD, - 0xE8B5, 0x894D, 0xE8B6, 0x96DC, 0xE8B7, 0x970D, 0xE8B8, 0x96D5, - 0xE8B9, 0x96F9, 0xE8BA, 0x9704, 0xE8BB, 0x9706, 0xE8BC, 0x9708, - 0xE8BD, 0x9713, 0xE8BE, 0x970E, 0xE8BF, 0x9711, 0xE8C0, 0x970F, - 0xE8C1, 0x9716, 0xE8C2, 0x9719, 0xE8C3, 0x9724, 0xE8C4, 0x972A, - 0xE8C5, 0x9730, 0xE8C6, 0x9739, 0xE8C7, 0x973D, 0xE8C8, 0x973E, - 0xE8C9, 0x9744, 0xE8CA, 0x9746, 0xE8CB, 0x9748, 0xE8CC, 0x9742, - 0xE8CD, 0x9749, 0xE8CE, 0x975C, 0xE8CF, 0x9760, 0xE8D0, 0x9764, - 0xE8D1, 0x9766, 0xE8D2, 0x9768, 0xE8D3, 0x52D2, 0xE8D4, 0x976B, - 0xE8D5, 0x9771, 0xE8D6, 0x9779, 0xE8D7, 0x9785, 0xE8D8, 0x977C, - 0xE8D9, 0x9781, 0xE8DA, 0x977A, 0xE8DB, 0x9786, 0xE8DC, 0x978B, - 0xE8DD, 0x978F, 0xE8DE, 0x9790, 0xE8DF, 0x979C, 0xE8E0, 0x97A8, - 0xE8E1, 0x97A6, 0xE8E2, 0x97A3, 0xE8E3, 0x97B3, 0xE8E4, 0x97B4, - 0xE8E5, 0x97C3, 0xE8E6, 0x97C6, 0xE8E7, 0x97C8, 0xE8E8, 0x97CB, - 0xE8E9, 0x97DC, 0xE8EA, 0x97ED, 0xE8EB, 0x9F4F, 0xE8EC, 0x97F2, - 0xE8ED, 0x7ADF, 0xE8EE, 0x97F6, 0xE8EF, 0x97F5, 0xE8F0, 0x980F, - 0xE8F1, 0x980C, 0xE8F2, 0x9838, 0xE8F3, 0x9824, 0xE8F4, 0x9821, - 0xE8F5, 0x9837, 0xE8F6, 0x983D, 0xE8F7, 0x9846, 0xE8F8, 0x984F, - 0xE8F9, 0x984B, 0xE8FA, 0x986B, 0xE8FB, 0x986F, 0xE8FC, 0x9870, - 0xE940, 0x9871, 0xE941, 0x9874, 0xE942, 0x9873, 0xE943, 0x98AA, - 0xE944, 0x98AF, 0xE945, 0x98B1, 0xE946, 0x98B6, 0xE947, 0x98C4, - 0xE948, 0x98C3, 0xE949, 0x98C6, 0xE94A, 0x98E9, 0xE94B, 0x98EB, - 0xE94C, 0x9903, 0xE94D, 0x9909, 0xE94E, 0x9912, 0xE94F, 0x9914, - 0xE950, 0x9918, 0xE951, 0x9921, 0xE952, 0x991D, 0xE953, 0x991E, - 0xE954, 0x9924, 0xE955, 0x9920, 0xE956, 0x992C, 0xE957, 0x992E, - 0xE958, 0x993D, 0xE959, 0x993E, 0xE95A, 0x9942, 0xE95B, 0x9949, - 0xE95C, 0x9945, 0xE95D, 0x9950, 0xE95E, 0x994B, 0xE95F, 0x9951, - 0xE960, 0x9952, 0xE961, 0x994C, 0xE962, 0x9955, 0xE963, 0x9997, - 0xE964, 0x9998, 0xE965, 0x99A5, 0xE966, 0x99AD, 0xE967, 0x99AE, - 0xE968, 0x99BC, 0xE969, 0x99DF, 0xE96A, 0x99DB, 0xE96B, 0x99DD, - 0xE96C, 0x99D8, 0xE96D, 0x99D1, 0xE96E, 0x99ED, 0xE96F, 0x99EE, - 0xE970, 0x99F1, 0xE971, 0x99F2, 0xE972, 0x99FB, 0xE973, 0x99F8, - 0xE974, 0x9A01, 0xE975, 0x9A0F, 0xE976, 0x9A05, 0xE977, 0x99E2, - 0xE978, 0x9A19, 0xE979, 0x9A2B, 0xE97A, 0x9A37, 0xE97B, 0x9A45, - 0xE97C, 0x9A42, 0xE97D, 0x9A40, 0xE97E, 0x9A43, 0xE980, 0x9A3E, - 0xE981, 0x9A55, 0xE982, 0x9A4D, 0xE983, 0x9A5B, 0xE984, 0x9A57, - 0xE985, 0x9A5F, 0xE986, 0x9A62, 0xE987, 0x9A65, 0xE988, 0x9A64, - 0xE989, 0x9A69, 0xE98A, 0x9A6B, 0xE98B, 0x9A6A, 0xE98C, 0x9AAD, - 0xE98D, 0x9AB0, 0xE98E, 0x9ABC, 0xE98F, 0x9AC0, 0xE990, 0x9ACF, - 0xE991, 0x9AD1, 0xE992, 0x9AD3, 0xE993, 0x9AD4, 0xE994, 0x9ADE, - 0xE995, 0x9ADF, 0xE996, 0x9AE2, 0xE997, 0x9AE3, 0xE998, 0x9AE6, - 0xE999, 0x9AEF, 0xE99A, 0x9AEB, 0xE99B, 0x9AEE, 0xE99C, 0x9AF4, - 0xE99D, 0x9AF1, 0xE99E, 0x9AF7, 0xE99F, 0x9AFB, 0xE9A0, 0x9B06, - 0xE9A1, 0x9B18, 0xE9A2, 0x9B1A, 0xE9A3, 0x9B1F, 0xE9A4, 0x9B22, - 0xE9A5, 0x9B23, 0xE9A6, 0x9B25, 0xE9A7, 0x9B27, 0xE9A8, 0x9B28, - 0xE9A9, 0x9B29, 0xE9AA, 0x9B2A, 0xE9AB, 0x9B2E, 0xE9AC, 0x9B2F, - 0xE9AD, 0x9B32, 0xE9AE, 0x9B44, 0xE9AF, 0x9B43, 0xE9B0, 0x9B4F, - 0xE9B1, 0x9B4D, 0xE9B2, 0x9B4E, 0xE9B3, 0x9B51, 0xE9B4, 0x9B58, - 0xE9B5, 0x9B74, 0xE9B6, 0x9B93, 0xE9B7, 0x9B83, 0xE9B8, 0x9B91, - 0xE9B9, 0x9B96, 0xE9BA, 0x9B97, 0xE9BB, 0x9B9F, 0xE9BC, 0x9BA0, - 0xE9BD, 0x9BA8, 0xE9BE, 0x9BB4, 0xE9BF, 0x9BC0, 0xE9C0, 0x9BCA, - 0xE9C1, 0x9BB9, 0xE9C2, 0x9BC6, 0xE9C3, 0x9BCF, 0xE9C4, 0x9BD1, - 0xE9C5, 0x9BD2, 0xE9C6, 0x9BE3, 0xE9C7, 0x9BE2, 0xE9C8, 0x9BE4, - 0xE9C9, 0x9BD4, 0xE9CA, 0x9BE1, 0xE9CB, 0x9C3A, 0xE9CC, 0x9BF2, - 0xE9CD, 0x9BF1, 0xE9CE, 0x9BF0, 0xE9CF, 0x9C15, 0xE9D0, 0x9C14, - 0xE9D1, 0x9C09, 0xE9D2, 0x9C13, 0xE9D3, 0x9C0C, 0xE9D4, 0x9C06, - 0xE9D5, 0x9C08, 0xE9D6, 0x9C12, 0xE9D7, 0x9C0A, 0xE9D8, 0x9C04, - 0xE9D9, 0x9C2E, 0xE9DA, 0x9C1B, 0xE9DB, 0x9C25, 0xE9DC, 0x9C24, - 0xE9DD, 0x9C21, 0xE9DE, 0x9C30, 0xE9DF, 0x9C47, 0xE9E0, 0x9C32, - 0xE9E1, 0x9C46, 0xE9E2, 0x9C3E, 0xE9E3, 0x9C5A, 0xE9E4, 0x9C60, - 0xE9E5, 0x9C67, 0xE9E6, 0x9C76, 0xE9E7, 0x9C78, 0xE9E8, 0x9CE7, - 0xE9E9, 0x9CEC, 0xE9EA, 0x9CF0, 0xE9EB, 0x9D09, 0xE9EC, 0x9D08, - 0xE9ED, 0x9CEB, 0xE9EE, 0x9D03, 0xE9EF, 0x9D06, 0xE9F0, 0x9D2A, - 0xE9F1, 0x9D26, 0xE9F2, 0x9DAF, 0xE9F3, 0x9D23, 0xE9F4, 0x9D1F, - 0xE9F5, 0x9D44, 0xE9F6, 0x9D15, 0xE9F7, 0x9D12, 0xE9F8, 0x9D41, - 0xE9F9, 0x9D3F, 0xE9FA, 0x9D3E, 0xE9FB, 0x9D46, 0xE9FC, 0x9D48, - 0xEA40, 0x9D5D, 0xEA41, 0x9D5E, 0xEA42, 0x9D64, 0xEA43, 0x9D51, - 0xEA44, 0x9D50, 0xEA45, 0x9D59, 0xEA46, 0x9D72, 0xEA47, 0x9D89, - 0xEA48, 0x9D87, 0xEA49, 0x9DAB, 0xEA4A, 0x9D6F, 0xEA4B, 0x9D7A, - 0xEA4C, 0x9D9A, 0xEA4D, 0x9DA4, 0xEA4E, 0x9DA9, 0xEA4F, 0x9DB2, - 0xEA50, 0x9DC4, 0xEA51, 0x9DC1, 0xEA52, 0x9DBB, 0xEA53, 0x9DB8, - 0xEA54, 0x9DBA, 0xEA55, 0x9DC6, 0xEA56, 0x9DCF, 0xEA57, 0x9DC2, - 0xEA58, 0x9DD9, 0xEA59, 0x9DD3, 0xEA5A, 0x9DF8, 0xEA5B, 0x9DE6, - 0xEA5C, 0x9DED, 0xEA5D, 0x9DEF, 0xEA5E, 0x9DFD, 0xEA5F, 0x9E1A, - 0xEA60, 0x9E1B, 0xEA61, 0x9E1E, 0xEA62, 0x9E75, 0xEA63, 0x9E79, - 0xEA64, 0x9E7D, 0xEA65, 0x9E81, 0xEA66, 0x9E88, 0xEA67, 0x9E8B, - 0xEA68, 0x9E8C, 0xEA69, 0x9E92, 0xEA6A, 0x9E95, 0xEA6B, 0x9E91, - 0xEA6C, 0x9E9D, 0xEA6D, 0x9EA5, 0xEA6E, 0x9EA9, 0xEA6F, 0x9EB8, - 0xEA70, 0x9EAA, 0xEA71, 0x9EAD, 0xEA72, 0x9761, 0xEA73, 0x9ECC, - 0xEA74, 0x9ECE, 0xEA75, 0x9ECF, 0xEA76, 0x9ED0, 0xEA77, 0x9ED4, - 0xEA78, 0x9EDC, 0xEA79, 0x9EDE, 0xEA7A, 0x9EDD, 0xEA7B, 0x9EE0, - 0xEA7C, 0x9EE5, 0xEA7D, 0x9EE8, 0xEA7E, 0x9EEF, 0xEA80, 0x9EF4, - 0xEA81, 0x9EF6, 0xEA82, 0x9EF7, 0xEA83, 0x9EF9, 0xEA84, 0x9EFB, - 0xEA85, 0x9EFC, 0xEA86, 0x9EFD, 0xEA87, 0x9F07, 0xEA88, 0x9F08, - 0xEA89, 0x76B7, 0xEA8A, 0x9F15, 0xEA8B, 0x9F21, 0xEA8C, 0x9F2C, - 0xEA8D, 0x9F3E, 0xEA8E, 0x9F4A, 0xEA8F, 0x9F52, 0xEA90, 0x9F54, - 0xEA91, 0x9F63, 0xEA92, 0x9F5F, 0xEA93, 0x9F60, 0xEA94, 0x9F61, - 0xEA95, 0x9F66, 0xEA96, 0x9F67, 0xEA97, 0x9F6C, 0xEA98, 0x9F6A, - 0xEA99, 0x9F77, 0xEA9A, 0x9F72, 0xEA9B, 0x9F76, 0xEA9C, 0x9F95, - 0xEA9D, 0x9F9C, 0xEA9E, 0x9FA0, 0xEA9F, 0x582F, 0xEAA0, 0x69C7, - 0xEAA1, 0x9059, 0xEAA2, 0x7464, 0xEAA3, 0x51DC, 0xEAA4, 0x7199, - 0xFA40, 0x2170, 0xFA41, 0x2171, 0xFA42, 0x2172, 0xFA43, 0x2173, - 0xFA44, 0x2174, 0xFA45, 0x2175, 0xFA46, 0x2176, 0xFA47, 0x2177, - 0xFA48, 0x2178, 0xFA49, 0x2179, 0xFA55, 0xFFE4, 0xFA56, 0xFF07, - 0xFA57, 0xFF02, 0xFA5C, 0x7E8A, 0xFA5D, 0x891C, 0xFA5E, 0x9348, - 0xFA5F, 0x9288, 0xFA60, 0x84DC, 0xFA61, 0x4FC9, 0xFA62, 0x70BB, - 0xFA63, 0x6631, 0xFA64, 0x68C8, 0xFA65, 0x92F9, 0xFA66, 0x66FB, - 0xFA67, 0x5F45, 0xFA68, 0x4E28, 0xFA69, 0x4EE1, 0xFA6A, 0x4EFC, - 0xFA6B, 0x4F00, 0xFA6C, 0x4F03, 0xFA6D, 0x4F39, 0xFA6E, 0x4F56, - 0xFA6F, 0x4F92, 0xFA70, 0x4F8A, 0xFA71, 0x4F9A, 0xFA72, 0x4F94, - 0xFA73, 0x4FCD, 0xFA74, 0x5040, 0xFA75, 0x5022, 0xFA76, 0x4FFF, - 0xFA77, 0x501E, 0xFA78, 0x5046, 0xFA79, 0x5070, 0xFA7A, 0x5042, - 0xFA7B, 0x5094, 0xFA7C, 0x50F4, 0xFA7D, 0x50D8, 0xFA7E, 0x514A, - 0xFA80, 0x5164, 0xFA81, 0x519D, 0xFA82, 0x51BE, 0xFA83, 0x51EC, - 0xFA84, 0x5215, 0xFA85, 0x529C, 0xFA86, 0x52A6, 0xFA87, 0x52C0, - 0xFA88, 0x52DB, 0xFA89, 0x5300, 0xFA8A, 0x5307, 0xFA8B, 0x5324, - 0xFA8C, 0x5372, 0xFA8D, 0x5393, 0xFA8E, 0x53B2, 0xFA8F, 0x53DD, - 0xFA90, 0xFA0E, 0xFA91, 0x549C, 0xFA92, 0x548A, 0xFA93, 0x54A9, - 0xFA94, 0x54FF, 0xFA95, 0x5586, 0xFA96, 0x5759, 0xFA97, 0x5765, - 0xFA98, 0x57AC, 0xFA99, 0x57C8, 0xFA9A, 0x57C7, 0xFA9B, 0xFA0F, - 0xFA9C, 0xFA10, 0xFA9D, 0x589E, 0xFA9E, 0x58B2, 0xFA9F, 0x590B, - 0xFAA0, 0x5953, 0xFAA1, 0x595B, 0xFAA2, 0x595D, 0xFAA3, 0x5963, - 0xFAA4, 0x59A4, 0xFAA5, 0x59BA, 0xFAA6, 0x5B56, 0xFAA7, 0x5BC0, - 0xFAA8, 0x752F, 0xFAA9, 0x5BD8, 0xFAAA, 0x5BEC, 0xFAAB, 0x5C1E, - 0xFAAC, 0x5CA6, 0xFAAD, 0x5CBA, 0xFAAE, 0x5CF5, 0xFAAF, 0x5D27, - 0xFAB0, 0x5D53, 0xFAB1, 0xFA11, 0xFAB2, 0x5D42, 0xFAB3, 0x5D6D, - 0xFAB4, 0x5DB8, 0xFAB5, 0x5DB9, 0xFAB6, 0x5DD0, 0xFAB7, 0x5F21, - 0xFAB8, 0x5F34, 0xFAB9, 0x5F67, 0xFABA, 0x5FB7, 0xFABB, 0x5FDE, - 0xFABC, 0x605D, 0xFABD, 0x6085, 0xFABE, 0x608A, 0xFABF, 0x60DE, - 0xFAC0, 0x60D5, 0xFAC1, 0x6120, 0xFAC2, 0x60F2, 0xFAC3, 0x6111, - 0xFAC4, 0x6137, 0xFAC5, 0x6130, 0xFAC6, 0x6198, 0xFAC7, 0x6213, - 0xFAC8, 0x62A6, 0xFAC9, 0x63F5, 0xFACA, 0x6460, 0xFACB, 0x649D, - 0xFACC, 0x64CE, 0xFACD, 0x654E, 0xFACE, 0x6600, 0xFACF, 0x6615, - 0xFAD0, 0x663B, 0xFAD1, 0x6609, 0xFAD2, 0x662E, 0xFAD3, 0x661E, - 0xFAD4, 0x6624, 0xFAD5, 0x6665, 0xFAD6, 0x6657, 0xFAD7, 0x6659, - 0xFAD8, 0xFA12, 0xFAD9, 0x6673, 0xFADA, 0x6699, 0xFADB, 0x66A0, - 0xFADC, 0x66B2, 0xFADD, 0x66BF, 0xFADE, 0x66FA, 0xFADF, 0x670E, - 0xFAE0, 0xF929, 0xFAE1, 0x6766, 0xFAE2, 0x67BB, 0xFAE3, 0x6852, - 0xFAE4, 0x67C0, 0xFAE5, 0x6801, 0xFAE6, 0x6844, 0xFAE7, 0x68CF, - 0xFAE8, 0xFA13, 0xFAE9, 0x6968, 0xFAEA, 0xFA14, 0xFAEB, 0x6998, - 0xFAEC, 0x69E2, 0xFAED, 0x6A30, 0xFAEE, 0x6A6B, 0xFAEF, 0x6A46, - 0xFAF0, 0x6A73, 0xFAF1, 0x6A7E, 0xFAF2, 0x6AE2, 0xFAF3, 0x6AE4, - 0xFAF4, 0x6BD6, 0xFAF5, 0x6C3F, 0xFAF6, 0x6C5C, 0xFAF7, 0x6C86, - 0xFAF8, 0x6C6F, 0xFAF9, 0x6CDA, 0xFAFA, 0x6D04, 0xFAFB, 0x6D87, - 0xFAFC, 0x6D6F, 0xFB40, 0x6D96, 0xFB41, 0x6DAC, 0xFB42, 0x6DCF, - 0xFB43, 0x6DF8, 0xFB44, 0x6DF2, 0xFB45, 0x6DFC, 0xFB46, 0x6E39, - 0xFB47, 0x6E5C, 0xFB48, 0x6E27, 0xFB49, 0x6E3C, 0xFB4A, 0x6EBF, - 0xFB4B, 0x6F88, 0xFB4C, 0x6FB5, 0xFB4D, 0x6FF5, 0xFB4E, 0x7005, - 0xFB4F, 0x7007, 0xFB50, 0x7028, 0xFB51, 0x7085, 0xFB52, 0x70AB, - 0xFB53, 0x710F, 0xFB54, 0x7104, 0xFB55, 0x715C, 0xFB56, 0x7146, - 0xFB57, 0x7147, 0xFB58, 0xFA15, 0xFB59, 0x71C1, 0xFB5A, 0x71FE, - 0xFB5B, 0x72B1, 0xFB5C, 0x72BE, 0xFB5D, 0x7324, 0xFB5E, 0xFA16, - 0xFB5F, 0x7377, 0xFB60, 0x73BD, 0xFB61, 0x73C9, 0xFB62, 0x73D6, - 0xFB63, 0x73E3, 0xFB64, 0x73D2, 0xFB65, 0x7407, 0xFB66, 0x73F5, - 0xFB67, 0x7426, 0xFB68, 0x742A, 0xFB69, 0x7429, 0xFB6A, 0x742E, - 0xFB6B, 0x7462, 0xFB6C, 0x7489, 0xFB6D, 0x749F, 0xFB6E, 0x7501, - 0xFB6F, 0x756F, 0xFB70, 0x7682, 0xFB71, 0x769C, 0xFB72, 0x769E, - 0xFB73, 0x769B, 0xFB74, 0x76A6, 0xFB75, 0xFA17, 0xFB76, 0x7746, - 0xFB77, 0x52AF, 0xFB78, 0x7821, 0xFB79, 0x784E, 0xFB7A, 0x7864, - 0xFB7B, 0x787A, 0xFB7C, 0x7930, 0xFB7D, 0xFA18, 0xFB7E, 0xFA19, - 0xFB80, 0xFA1A, 0xFB81, 0x7994, 0xFB82, 0xFA1B, 0xFB83, 0x799B, - 0xFB84, 0x7AD1, 0xFB85, 0x7AE7, 0xFB86, 0xFA1C, 0xFB87, 0x7AEB, - 0xFB88, 0x7B9E, 0xFB89, 0xFA1D, 0xFB8A, 0x7D48, 0xFB8B, 0x7D5C, - 0xFB8C, 0x7DB7, 0xFB8D, 0x7DA0, 0xFB8E, 0x7DD6, 0xFB8F, 0x7E52, - 0xFB90, 0x7F47, 0xFB91, 0x7FA1, 0xFB92, 0xFA1E, 0xFB93, 0x8301, - 0xFB94, 0x8362, 0xFB95, 0x837F, 0xFB96, 0x83C7, 0xFB97, 0x83F6, - 0xFB98, 0x8448, 0xFB99, 0x84B4, 0xFB9A, 0x8553, 0xFB9B, 0x8559, - 0xFB9C, 0x856B, 0xFB9D, 0xFA1F, 0xFB9E, 0x85B0, 0xFB9F, 0xFA20, - 0xFBA0, 0xFA21, 0xFBA1, 0x8807, 0xFBA2, 0x88F5, 0xFBA3, 0x8A12, - 0xFBA4, 0x8A37, 0xFBA5, 0x8A79, 0xFBA6, 0x8AA7, 0xFBA7, 0x8ABE, - 0xFBA8, 0x8ADF, 0xFBA9, 0xFA22, 0xFBAA, 0x8AF6, 0xFBAB, 0x8B53, - 0xFBAC, 0x8B7F, 0xFBAD, 0x8CF0, 0xFBAE, 0x8CF4, 0xFBAF, 0x8D12, - 0xFBB0, 0x8D76, 0xFBB1, 0xFA23, 0xFBB2, 0x8ECF, 0xFBB3, 0xFA24, - 0xFBB4, 0xFA25, 0xFBB5, 0x9067, 0xFBB6, 0x90DE, 0xFBB7, 0xFA26, - 0xFBB8, 0x9115, 0xFBB9, 0x9127, 0xFBBA, 0x91DA, 0xFBBB, 0x91D7, - 0xFBBC, 0x91DE, 0xFBBD, 0x91ED, 0xFBBE, 0x91EE, 0xFBBF, 0x91E4, - 0xFBC0, 0x91E5, 0xFBC1, 0x9206, 0xFBC2, 0x9210, 0xFBC3, 0x920A, - 0xFBC4, 0x923A, 0xFBC5, 0x9240, 0xFBC6, 0x923C, 0xFBC7, 0x924E, - 0xFBC8, 0x9259, 0xFBC9, 0x9251, 0xFBCA, 0x9239, 0xFBCB, 0x9267, - 0xFBCC, 0x92A7, 0xFBCD, 0x9277, 0xFBCE, 0x9278, 0xFBCF, 0x92E7, - 0xFBD0, 0x92D7, 0xFBD1, 0x92D9, 0xFBD2, 0x92D0, 0xFBD3, 0xFA27, - 0xFBD4, 0x92D5, 0xFBD5, 0x92E0, 0xFBD6, 0x92D3, 0xFBD7, 0x9325, - 0xFBD8, 0x9321, 0xFBD9, 0x92FB, 0xFBDA, 0xFA28, 0xFBDB, 0x931E, - 0xFBDC, 0x92FF, 0xFBDD, 0x931D, 0xFBDE, 0x9302, 0xFBDF, 0x9370, - 0xFBE0, 0x9357, 0xFBE1, 0x93A4, 0xFBE2, 0x93C6, 0xFBE3, 0x93DE, - 0xFBE4, 0x93F8, 0xFBE5, 0x9431, 0xFBE6, 0x9445, 0xFBE7, 0x9448, - 0xFBE8, 0x9592, 0xFBE9, 0xF9DC, 0xFBEA, 0xFA29, 0xFBEB, 0x969D, - 0xFBEC, 0x96AF, 0xFBED, 0x9733, 0xFBEE, 0x973B, 0xFBEF, 0x9743, - 0xFBF0, 0x974D, 0xFBF1, 0x974F, 0xFBF2, 0x9751, 0xFBF3, 0x9755, - 0xFBF4, 0x9857, 0xFBF5, 0x9865, 0xFBF6, 0xFA2A, 0xFBF7, 0xFA2B, - 0xFBF8, 0x9927, 0xFBF9, 0xFA2C, 0xFBFA, 0x999E, 0xFBFB, 0x9A4E, - 0xFBFC, 0x9AD9, 0xFC40, 0x9ADC, 0xFC41, 0x9B75, 0xFC42, 0x9B72, - 0xFC43, 0x9B8F, 0xFC44, 0x9BB1, 0xFC45, 0x9BBB, 0xFC46, 0x9C00, - 0xFC47, 0x9D70, 0xFC48, 0x9D6B, 0xFC49, 0xFA2D, 0xFC4A, 0x9E19, - 0xFC4B, 0x9ED1, 0, 0 -}; -#endif - - - -WCHAR ff_convert ( /* Converted code, 0 means conversion error */ - WCHAR chr, /* Character code to be converted */ - UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ -) -{ - const WCHAR *p; - WCHAR c; - int i, n, li, hi; - - - if (chr <= 0x80) { /* ASCII */ - c = chr; - } else { -#if !_TINY_TABLE - if (dir) { /* OEM code to unicode */ - p = sjis2uni; - hi = sizeof sjis2uni / 4 - 1; - } else { /* Unicode to OEM code */ - p = uni2sjis; - hi = sizeof uni2sjis / 4 - 1; - } - li = 0; - for (n = 16; n; n--) { - i = li + (hi - li) / 2; - if (chr == p[i * 2]) break; - if (chr > p[i * 2]) - li = i; - else - hi = i; - } - c = n ? p[i * 2 + 1] : 0; -#else - if (dir) { /* OEM code to unicode (Incremental search)*/ - p = &uni2sjis[1]; - do { - c = *p; - p += 2; - } while (c && c != chr); - p -= 3; - c = *p; - } else { /* Unicode to OEM code */ - li = 0; hi = sizeof uni2sjis / 4 - 1; - for (n = 16; n; n--) { - i = li + (hi - li) / 2; - if (chr == uni2sjis[i * 2]) break; - if (chr > uni2sjis[i * 2]) - li = i; - else - hi = i; - } - c = n ? uni2sjis[i * 2 + 1] : 0; - } -#endif - } - - return c; -} - - - -WCHAR ff_wtoupper ( /* Returns upper converted character */ - WCHAR chr /* Unicode character to be upper converted (BMP only) */ -) -{ - /* Compressed upper conversion table */ - static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ - /* Basic Latin */ - 0x0061,0x031A, - /* Latin-1 Supplement */ - 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, - /* Latin Extended-A */ - 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, - /* Latin Extended-B */ - 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, - 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, - 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, - /* IPA Extensions */ - 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, - /* Greek, Coptic */ - 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, - 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, - 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, - /* Cyrillic */ - 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, - /* Armenian */ - 0x0561,0x0426, - - 0x0000 - }; - static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ - /* Phonetic Extensions */ - 0x1D7D,0x0001,0x2C63, - /* Latin Extended Additional */ - 0x1E00,0x0196, 0x1EA0,0x015A, - /* Greek Extended */ - 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, - 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, - 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, - 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, - 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, - /* Letterlike Symbols */ - 0x214E,0x0001,0x2132, - /* Number forms */ - 0x2170,0x0210, 0x2184,0x0001,0x2183, - /* Enclosed Alphanumerics */ - 0x24D0,0x051A, 0x2C30,0x042F, - /* Latin Extended-C */ - 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, - /* Coptic */ - 0x2C80,0x0164, - /* Georgian Supplement */ - 0x2D00,0x0826, - /* Full-width */ - 0xFF41,0x031A, - - 0x0000 - }; - const WCHAR *p; - WCHAR bc, nc, cmd; - - - p = chr < 0x1000 ? cvt1 : cvt2; - for (;;) { - bc = *p++; /* Get block base */ - if (!bc || chr < bc) break; - nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ - if (chr < bc + nc) { /* In the block? */ - switch (cmd) { - case 0: chr = p[chr - bc]; break; /* Table conversion */ - case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ - case 2: chr -= 16; break; /* Shift -16 */ - case 3: chr -= 32; break; /* Shift -32 */ - case 4: chr -= 48; break; /* Shift -48 */ - case 5: chr -= 26; break; /* Shift -26 */ - case 6: chr += 8; break; /* Shift +8 */ - case 7: chr -= 80; break; /* Shift -80 */ - case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ - } - break; - } - if (!cmd) p += nc; - } - - return chr; -} - -#endif diff --git a/extras/fatfs/cc936.h b/extras/fatfs/cc936.h deleted file mode 100644 index 123660a..0000000 --- a/extras/fatfs/cc936.h +++ /dev/null @@ -1,11044 +0,0 @@ -/*------------------------------------------------------------------------*/ -/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ -/* CP936 (Simplified Chinese GBK) */ -/*------------------------------------------------------------------------*/ - -#include "ff.h" - - -#if _USE_LFN && _CODE_PAGE == 936 - -static -const WCHAR uni2oem[] = { -/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ - 0x00A4, 0xA1E8, 0x00A7, 0xA1EC, 0x00A8, 0xA1A7, 0x00B0, 0xA1E3, - 0x00B1, 0xA1C0, 0x00B7, 0xA1A4, 0x00D7, 0xA1C1, 0x00E0, 0xA8A4, - 0x00E1, 0xA8A2, 0x00E8, 0xA8A8, 0x00E9, 0xA8A6, 0x00EA, 0xA8BA, - 0x00EC, 0xA8AC, 0x00ED, 0xA8AA, 0x00F2, 0xA8B0, 0x00F3, 0xA8AE, - 0x00F7, 0xA1C2, 0x00F9, 0xA8B4, 0x00FA, 0xA8B2, 0x00FC, 0xA8B9, - 0x0101, 0xA8A1, 0x0113, 0xA8A5, 0x011B, 0xA8A7, 0x012B, 0xA8A9, - 0x0144, 0xA8BD, 0x0148, 0xA8BE, 0x014D, 0xA8AD, 0x016B, 0xA8B1, - 0x01CE, 0xA8A3, 0x01D0, 0xA8AB, 0x01D2, 0xA8AF, 0x01D4, 0xA8B3, - 0x01D6, 0xA8B5, 0x01D8, 0xA8B6, 0x01DA, 0xA8B7, 0x01DC, 0xA8B8, - 0x0251, 0xA8BB, 0x0261, 0xA8C0, 0x02C7, 0xA1A6, 0x02C9, 0xA1A5, - 0x02CA, 0xA840, 0x02CB, 0xA841, 0x02D9, 0xA842, 0x0391, 0xA6A1, - 0x0392, 0xA6A2, 0x0393, 0xA6A3, 0x0394, 0xA6A4, 0x0395, 0xA6A5, - 0x0396, 0xA6A6, 0x0397, 0xA6A7, 0x0398, 0xA6A8, 0x0399, 0xA6A9, - 0x039A, 0xA6AA, 0x039B, 0xA6AB, 0x039C, 0xA6AC, 0x039D, 0xA6AD, - 0x039E, 0xA6AE, 0x039F, 0xA6AF, 0x03A0, 0xA6B0, 0x03A1, 0xA6B1, - 0x03A3, 0xA6B2, 0x03A4, 0xA6B3, 0x03A5, 0xA6B4, 0x03A6, 0xA6B5, - 0x03A7, 0xA6B6, 0x03A8, 0xA6B7, 0x03A9, 0xA6B8, 0x03B1, 0xA6C1, - 0x03B2, 0xA6C2, 0x03B3, 0xA6C3, 0x03B4, 0xA6C4, 0x03B5, 0xA6C5, - 0x03B6, 0xA6C6, 0x03B7, 0xA6C7, 0x03B8, 0xA6C8, 0x03B9, 0xA6C9, - 0x03BA, 0xA6CA, 0x03BB, 0xA6CB, 0x03BC, 0xA6CC, 0x03BD, 0xA6CD, - 0x03BE, 0xA6CE, 0x03BF, 0xA6CF, 0x03C0, 0xA6D0, 0x03C1, 0xA6D1, - 0x03C3, 0xA6D2, 0x03C4, 0xA6D3, 0x03C5, 0xA6D4, 0x03C6, 0xA6D5, - 0x03C7, 0xA6D6, 0x03C8, 0xA6D7, 0x03C9, 0xA6D8, 0x0401, 0xA7A7, - 0x0410, 0xA7A1, 0x0411, 0xA7A2, 0x0412, 0xA7A3, 0x0413, 0xA7A4, - 0x0414, 0xA7A5, 0x0415, 0xA7A6, 0x0416, 0xA7A8, 0x0417, 0xA7A9, - 0x0418, 0xA7AA, 0x0419, 0xA7AB, 0x041A, 0xA7AC, 0x041B, 0xA7AD, - 0x041C, 0xA7AE, 0x041D, 0xA7AF, 0x041E, 0xA7B0, 0x041F, 0xA7B1, - 0x0420, 0xA7B2, 0x0421, 0xA7B3, 0x0422, 0xA7B4, 0x0423, 0xA7B5, - 0x0424, 0xA7B6, 0x0425, 0xA7B7, 0x0426, 0xA7B8, 0x0427, 0xA7B9, - 0x0428, 0xA7BA, 0x0429, 0xA7BB, 0x042A, 0xA7BC, 0x042B, 0xA7BD, - 0x042C, 0xA7BE, 0x042D, 0xA7BF, 0x042E, 0xA7C0, 0x042F, 0xA7C1, - 0x0430, 0xA7D1, 0x0431, 0xA7D2, 0x0432, 0xA7D3, 0x0433, 0xA7D4, - 0x0434, 0xA7D5, 0x0435, 0xA7D6, 0x0436, 0xA7D8, 0x0437, 0xA7D9, - 0x0438, 0xA7DA, 0x0439, 0xA7DB, 0x043A, 0xA7DC, 0x043B, 0xA7DD, - 0x043C, 0xA7DE, 0x043D, 0xA7DF, 0x043E, 0xA7E0, 0x043F, 0xA7E1, - 0x0440, 0xA7E2, 0x0441, 0xA7E3, 0x0442, 0xA7E4, 0x0443, 0xA7E5, - 0x0444, 0xA7E6, 0x0445, 0xA7E7, 0x0446, 0xA7E8, 0x0447, 0xA7E9, - 0x0448, 0xA7EA, 0x0449, 0xA7EB, 0x044A, 0xA7EC, 0x044B, 0xA7ED, - 0x044C, 0xA7EE, 0x044D, 0xA7EF, 0x044E, 0xA7F0, 0x044F, 0xA7F1, - 0x0451, 0xA7D7, 0x2010, 0xA95C, 0x2013, 0xA843, 0x2014, 0xA1AA, - 0x2015, 0xA844, 0x2016, 0xA1AC, 0x2018, 0xA1AE, 0x2019, 0xA1AF, - 0x201C, 0xA1B0, 0x201D, 0xA1B1, 0x2025, 0xA845, 0x2026, 0xA1AD, - 0x2030, 0xA1EB, 0x2032, 0xA1E4, 0x2033, 0xA1E5, 0x2035, 0xA846, - 0x203B, 0xA1F9, 0x20AC, 0x0080, 0x2103, 0xA1E6, 0x2105, 0xA847, - 0x2109, 0xA848, 0x2116, 0xA1ED, 0x2121, 0xA959, 0x2160, 0xA2F1, - 0x2161, 0xA2F2, 0x2162, 0xA2F3, 0x2163, 0xA2F4, 0x2164, 0xA2F5, - 0x2165, 0xA2F6, 0x2166, 0xA2F7, 0x2167, 0xA2F8, 0x2168, 0xA2F9, - 0x2169, 0xA2FA, 0x216A, 0xA2FB, 0x216B, 0xA2FC, 0x2170, 0xA2A1, - 0x2171, 0xA2A2, 0x2172, 0xA2A3, 0x2173, 0xA2A4, 0x2174, 0xA2A5, - 0x2175, 0xA2A6, 0x2176, 0xA2A7, 0x2177, 0xA2A8, 0x2178, 0xA2A9, - 0x2179, 0xA2AA, 0x2190, 0xA1FB, 0x2191, 0xA1FC, 0x2192, 0xA1FA, - 0x2193, 0xA1FD, 0x2196, 0xA849, 0x2197, 0xA84A, 0x2198, 0xA84B, - 0x2199, 0xA84C, 0x2208, 0xA1CA, 0x220F, 0xA1C7, 0x2211, 0xA1C6, - 0x2215, 0xA84D, 0x221A, 0xA1CC, 0x221D, 0xA1D8, 0x221E, 0xA1DE, - 0x221F, 0xA84E, 0x2220, 0xA1CF, 0x2223, 0xA84F, 0x2225, 0xA1CE, - 0x2227, 0xA1C4, 0x2228, 0xA1C5, 0x2229, 0xA1C9, 0x222A, 0xA1C8, - 0x222B, 0xA1D2, 0x222E, 0xA1D3, 0x2234, 0xA1E0, 0x2235, 0xA1DF, - 0x2236, 0xA1C3, 0x2237, 0xA1CB, 0x223D, 0xA1D7, 0x2248, 0xA1D6, - 0x224C, 0xA1D5, 0x2252, 0xA850, 0x2260, 0xA1D9, 0x2261, 0xA1D4, - 0x2264, 0xA1DC, 0x2265, 0xA1DD, 0x2266, 0xA851, 0x2267, 0xA852, - 0x226E, 0xA1DA, 0x226F, 0xA1DB, 0x2295, 0xA892, 0x2299, 0xA1D1, - 0x22A5, 0xA1CD, 0x22BF, 0xA853, 0x2312, 0xA1D0, 0x2460, 0xA2D9, - 0x2461, 0xA2DA, 0x2462, 0xA2DB, 0x2463, 0xA2DC, 0x2464, 0xA2DD, - 0x2465, 0xA2DE, 0x2466, 0xA2DF, 0x2467, 0xA2E0, 0x2468, 0xA2E1, - 0x2469, 0xA2E2, 0x2474, 0xA2C5, 0x2475, 0xA2C6, 0x2476, 0xA2C7, - 0x2477, 0xA2C8, 0x2478, 0xA2C9, 0x2479, 0xA2CA, 0x247A, 0xA2CB, - 0x247B, 0xA2CC, 0x247C, 0xA2CD, 0x247D, 0xA2CE, 0x247E, 0xA2CF, - 0x247F, 0xA2D0, 0x2480, 0xA2D1, 0x2481, 0xA2D2, 0x2482, 0xA2D3, - 0x2483, 0xA2D4, 0x2484, 0xA2D5, 0x2485, 0xA2D6, 0x2486, 0xA2D7, - 0x2487, 0xA2D8, 0x2488, 0xA2B1, 0x2489, 0xA2B2, 0x248A, 0xA2B3, - 0x248B, 0xA2B4, 0x248C, 0xA2B5, 0x248D, 0xA2B6, 0x248E, 0xA2B7, - 0x248F, 0xA2B8, 0x2490, 0xA2B9, 0x2491, 0xA2BA, 0x2492, 0xA2BB, - 0x2493, 0xA2BC, 0x2494, 0xA2BD, 0x2495, 0xA2BE, 0x2496, 0xA2BF, - 0x2497, 0xA2C0, 0x2498, 0xA2C1, 0x2499, 0xA2C2, 0x249A, 0xA2C3, - 0x249B, 0xA2C4, 0x2500, 0xA9A4, 0x2501, 0xA9A5, 0x2502, 0xA9A6, - 0x2503, 0xA9A7, 0x2504, 0xA9A8, 0x2505, 0xA9A9, 0x2506, 0xA9AA, - 0x2507, 0xA9AB, 0x2508, 0xA9AC, 0x2509, 0xA9AD, 0x250A, 0xA9AE, - 0x250B, 0xA9AF, 0x250C, 0xA9B0, 0x250D, 0xA9B1, 0x250E, 0xA9B2, - 0x250F, 0xA9B3, 0x2510, 0xA9B4, 0x2511, 0xA9B5, 0x2512, 0xA9B6, - 0x2513, 0xA9B7, 0x2514, 0xA9B8, 0x2515, 0xA9B9, 0x2516, 0xA9BA, - 0x2517, 0xA9BB, 0x2518, 0xA9BC, 0x2519, 0xA9BD, 0x251A, 0xA9BE, - 0x251B, 0xA9BF, 0x251C, 0xA9C0, 0x251D, 0xA9C1, 0x251E, 0xA9C2, - 0x251F, 0xA9C3, 0x2520, 0xA9C4, 0x2521, 0xA9C5, 0x2522, 0xA9C6, - 0x2523, 0xA9C7, 0x2524, 0xA9C8, 0x2525, 0xA9C9, 0x2526, 0xA9CA, - 0x2527, 0xA9CB, 0x2528, 0xA9CC, 0x2529, 0xA9CD, 0x252A, 0xA9CE, - 0x252B, 0xA9CF, 0x252C, 0xA9D0, 0x252D, 0xA9D1, 0x252E, 0xA9D2, - 0x252F, 0xA9D3, 0x2530, 0xA9D4, 0x2531, 0xA9D5, 0x2532, 0xA9D6, - 0x2533, 0xA9D7, 0x2534, 0xA9D8, 0x2535, 0xA9D9, 0x2536, 0xA9DA, - 0x2537, 0xA9DB, 0x2538, 0xA9DC, 0x2539, 0xA9DD, 0x253A, 0xA9DE, - 0x253B, 0xA9DF, 0x253C, 0xA9E0, 0x253D, 0xA9E1, 0x253E, 0xA9E2, - 0x253F, 0xA9E3, 0x2540, 0xA9E4, 0x2541, 0xA9E5, 0x2542, 0xA9E6, - 0x2543, 0xA9E7, 0x2544, 0xA9E8, 0x2545, 0xA9E9, 0x2546, 0xA9EA, - 0x2547, 0xA9EB, 0x2548, 0xA9EC, 0x2549, 0xA9ED, 0x254A, 0xA9EE, - 0x254B, 0xA9EF, 0x2550, 0xA854, 0x2551, 0xA855, 0x2552, 0xA856, - 0x2553, 0xA857, 0x2554, 0xA858, 0x2555, 0xA859, 0x2556, 0xA85A, - 0x2557, 0xA85B, 0x2558, 0xA85C, 0x2559, 0xA85D, 0x255A, 0xA85E, - 0x255B, 0xA85F, 0x255C, 0xA860, 0x255D, 0xA861, 0x255E, 0xA862, - 0x255F, 0xA863, 0x2560, 0xA864, 0x2561, 0xA865, 0x2562, 0xA866, - 0x2563, 0xA867, 0x2564, 0xA868, 0x2565, 0xA869, 0x2566, 0xA86A, - 0x2567, 0xA86B, 0x2568, 0xA86C, 0x2569, 0xA86D, 0x256A, 0xA86E, - 0x256B, 0xA86F, 0x256C, 0xA870, 0x256D, 0xA871, 0x256E, 0xA872, - 0x256F, 0xA873, 0x2570, 0xA874, 0x2571, 0xA875, 0x2572, 0xA876, - 0x2573, 0xA877, 0x2581, 0xA878, 0x2582, 0xA879, 0x2583, 0xA87A, - 0x2584, 0xA87B, 0x2585, 0xA87C, 0x2586, 0xA87D, 0x2587, 0xA87E, - 0x2588, 0xA880, 0x2589, 0xA881, 0x258A, 0xA882, 0x258B, 0xA883, - 0x258C, 0xA884, 0x258D, 0xA885, 0x258E, 0xA886, 0x258F, 0xA887, - 0x2593, 0xA888, 0x2594, 0xA889, 0x2595, 0xA88A, 0x25A0, 0xA1F6, - 0x25A1, 0xA1F5, 0x25B2, 0xA1F8, 0x25B3, 0xA1F7, 0x25BC, 0xA88B, - 0x25BD, 0xA88C, 0x25C6, 0xA1F4, 0x25C7, 0xA1F3, 0x25CB, 0xA1F0, - 0x25CE, 0xA1F2, 0x25CF, 0xA1F1, 0x25E2, 0xA88D, 0x25E3, 0xA88E, - 0x25E4, 0xA88F, 0x25E5, 0xA890, 0x2605, 0xA1EF, 0x2606, 0xA1EE, - 0x2609, 0xA891, 0x2640, 0xA1E2, 0x2642, 0xA1E1, 0x3000, 0xA1A1, - 0x3001, 0xA1A2, 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3005, 0xA1A9, - 0x3006, 0xA965, 0x3007, 0xA996, 0x3008, 0xA1B4, 0x3009, 0xA1B5, - 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, - 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BE, 0x3011, 0xA1BF, - 0x3012, 0xA893, 0x3013, 0xA1FE, 0x3014, 0xA1B2, 0x3015, 0xA1B3, - 0x3016, 0xA1BC, 0x3017, 0xA1BD, 0x301D, 0xA894, 0x301E, 0xA895, - 0x3021, 0xA940, 0x3022, 0xA941, 0x3023, 0xA942, 0x3024, 0xA943, - 0x3025, 0xA944, 0x3026, 0xA945, 0x3027, 0xA946, 0x3028, 0xA947, - 0x3029, 0xA948, 0x3041, 0xA4A1, 0x3042, 0xA4A2, 0x3043, 0xA4A3, - 0x3044, 0xA4A4, 0x3045, 0xA4A5, 0x3046, 0xA4A6, 0x3047, 0xA4A7, - 0x3048, 0xA4A8, 0x3049, 0xA4A9, 0x304A, 0xA4AA, 0x304B, 0xA4AB, - 0x304C, 0xA4AC, 0x304D, 0xA4AD, 0x304E, 0xA4AE, 0x304F, 0xA4AF, - 0x3050, 0xA4B0, 0x3051, 0xA4B1, 0x3052, 0xA4B2, 0x3053, 0xA4B3, - 0x3054, 0xA4B4, 0x3055, 0xA4B5, 0x3056, 0xA4B6, 0x3057, 0xA4B7, - 0x3058, 0xA4B8, 0x3059, 0xA4B9, 0x305A, 0xA4BA, 0x305B, 0xA4BB, - 0x305C, 0xA4BC, 0x305D, 0xA4BD, 0x305E, 0xA4BE, 0x305F, 0xA4BF, - 0x3060, 0xA4C0, 0x3061, 0xA4C1, 0x3062, 0xA4C2, 0x3063, 0xA4C3, - 0x3064, 0xA4C4, 0x3065, 0xA4C5, 0x3066, 0xA4C6, 0x3067, 0xA4C7, - 0x3068, 0xA4C8, 0x3069, 0xA4C9, 0x306A, 0xA4CA, 0x306B, 0xA4CB, - 0x306C, 0xA4CC, 0x306D, 0xA4CD, 0x306E, 0xA4CE, 0x306F, 0xA4CF, - 0x3070, 0xA4D0, 0x3071, 0xA4D1, 0x3072, 0xA4D2, 0x3073, 0xA4D3, - 0x3074, 0xA4D4, 0x3075, 0xA4D5, 0x3076, 0xA4D6, 0x3077, 0xA4D7, - 0x3078, 0xA4D8, 0x3079, 0xA4D9, 0x307A, 0xA4DA, 0x307B, 0xA4DB, - 0x307C, 0xA4DC, 0x307D, 0xA4DD, 0x307E, 0xA4DE, 0x307F, 0xA4DF, - 0x3080, 0xA4E0, 0x3081, 0xA4E1, 0x3082, 0xA4E2, 0x3083, 0xA4E3, - 0x3084, 0xA4E4, 0x3085, 0xA4E5, 0x3086, 0xA4E6, 0x3087, 0xA4E7, - 0x3088, 0xA4E8, 0x3089, 0xA4E9, 0x308A, 0xA4EA, 0x308B, 0xA4EB, - 0x308C, 0xA4EC, 0x308D, 0xA4ED, 0x308E, 0xA4EE, 0x308F, 0xA4EF, - 0x3090, 0xA4F0, 0x3091, 0xA4F1, 0x3092, 0xA4F2, 0x3093, 0xA4F3, - 0x309B, 0xA961, 0x309C, 0xA962, 0x309D, 0xA966, 0x309E, 0xA967, - 0x30A1, 0xA5A1, 0x30A2, 0xA5A2, 0x30A3, 0xA5A3, 0x30A4, 0xA5A4, - 0x30A5, 0xA5A5, 0x30A6, 0xA5A6, 0x30A7, 0xA5A7, 0x30A8, 0xA5A8, - 0x30A9, 0xA5A9, 0x30AA, 0xA5AA, 0x30AB, 0xA5AB, 0x30AC, 0xA5AC, - 0x30AD, 0xA5AD, 0x30AE, 0xA5AE, 0x30AF, 0xA5AF, 0x30B0, 0xA5B0, - 0x30B1, 0xA5B1, 0x30B2, 0xA5B2, 0x30B3, 0xA5B3, 0x30B4, 0xA5B4, - 0x30B5, 0xA5B5, 0x30B6, 0xA5B6, 0x30B7, 0xA5B7, 0x30B8, 0xA5B8, - 0x30B9, 0xA5B9, 0x30BA, 0xA5BA, 0x30BB, 0xA5BB, 0x30BC, 0xA5BC, - 0x30BD, 0xA5BD, 0x30BE, 0xA5BE, 0x30BF, 0xA5BF, 0x30C0, 0xA5C0, - 0x30C1, 0xA5C1, 0x30C2, 0xA5C2, 0x30C3, 0xA5C3, 0x30C4, 0xA5C4, - 0x30C5, 0xA5C5, 0x30C6, 0xA5C6, 0x30C7, 0xA5C7, 0x30C8, 0xA5C8, - 0x30C9, 0xA5C9, 0x30CA, 0xA5CA, 0x30CB, 0xA5CB, 0x30CC, 0xA5CC, - 0x30CD, 0xA5CD, 0x30CE, 0xA5CE, 0x30CF, 0xA5CF, 0x30D0, 0xA5D0, - 0x30D1, 0xA5D1, 0x30D2, 0xA5D2, 0x30D3, 0xA5D3, 0x30D4, 0xA5D4, - 0x30D5, 0xA5D5, 0x30D6, 0xA5D6, 0x30D7, 0xA5D7, 0x30D8, 0xA5D8, - 0x30D9, 0xA5D9, 0x30DA, 0xA5DA, 0x30DB, 0xA5DB, 0x30DC, 0xA5DC, - 0x30DD, 0xA5DD, 0x30DE, 0xA5DE, 0x30DF, 0xA5DF, 0x30E0, 0xA5E0, - 0x30E1, 0xA5E1, 0x30E2, 0xA5E2, 0x30E3, 0xA5E3, 0x30E4, 0xA5E4, - 0x30E5, 0xA5E5, 0x30E6, 0xA5E6, 0x30E7, 0xA5E7, 0x30E8, 0xA5E8, - 0x30E9, 0xA5E9, 0x30EA, 0xA5EA, 0x30EB, 0xA5EB, 0x30EC, 0xA5EC, - 0x30ED, 0xA5ED, 0x30EE, 0xA5EE, 0x30EF, 0xA5EF, 0x30F0, 0xA5F0, - 0x30F1, 0xA5F1, 0x30F2, 0xA5F2, 0x30F3, 0xA5F3, 0x30F4, 0xA5F4, - 0x30F5, 0xA5F5, 0x30F6, 0xA5F6, 0x30FC, 0xA960, 0x30FD, 0xA963, - 0x30FE, 0xA964, 0x3105, 0xA8C5, 0x3106, 0xA8C6, 0x3107, 0xA8C7, - 0x3108, 0xA8C8, 0x3109, 0xA8C9, 0x310A, 0xA8CA, 0x310B, 0xA8CB, - 0x310C, 0xA8CC, 0x310D, 0xA8CD, 0x310E, 0xA8CE, 0x310F, 0xA8CF, - 0x3110, 0xA8D0, 0x3111, 0xA8D1, 0x3112, 0xA8D2, 0x3113, 0xA8D3, - 0x3114, 0xA8D4, 0x3115, 0xA8D5, 0x3116, 0xA8D6, 0x3117, 0xA8D7, - 0x3118, 0xA8D8, 0x3119, 0xA8D9, 0x311A, 0xA8DA, 0x311B, 0xA8DB, - 0x311C, 0xA8DC, 0x311D, 0xA8DD, 0x311E, 0xA8DE, 0x311F, 0xA8DF, - 0x3120, 0xA8E0, 0x3121, 0xA8E1, 0x3122, 0xA8E2, 0x3123, 0xA8E3, - 0x3124, 0xA8E4, 0x3125, 0xA8E5, 0x3126, 0xA8E6, 0x3127, 0xA8E7, - 0x3128, 0xA8E8, 0x3129, 0xA8E9, 0x3220, 0xA2E5, 0x3221, 0xA2E6, - 0x3222, 0xA2E7, 0x3223, 0xA2E8, 0x3224, 0xA2E9, 0x3225, 0xA2EA, - 0x3226, 0xA2EB, 0x3227, 0xA2EC, 0x3228, 0xA2ED, 0x3229, 0xA2EE, - 0x3231, 0xA95A, 0x32A3, 0xA949, 0x338E, 0xA94A, 0x338F, 0xA94B, - 0x339C, 0xA94C, 0x339D, 0xA94D, 0x339E, 0xA94E, 0x33A1, 0xA94F, - 0x33C4, 0xA950, 0x33CE, 0xA951, 0x33D1, 0xA952, 0x33D2, 0xA953, - 0x33D5, 0xA954, 0x4E00, 0xD2BB, 0x4E01, 0xB6A1, 0x4E02, 0x8140, - 0x4E03, 0xC6DF, 0x4E04, 0x8141, 0x4E05, 0x8142, 0x4E06, 0x8143, - 0x4E07, 0xCDF2, 0x4E08, 0xD5C9, 0x4E09, 0xC8FD, 0x4E0A, 0xC9CF, - 0x4E0B, 0xCFC2, 0x4E0C, 0xD8A2, 0x4E0D, 0xB2BB, 0x4E0E, 0xD3EB, - 0x4E0F, 0x8144, 0x4E10, 0xD8A4, 0x4E11, 0xB3F3, 0x4E12, 0x8145, - 0x4E13, 0xD7A8, 0x4E14, 0xC7D2, 0x4E15, 0xD8A7, 0x4E16, 0xCAC0, - 0x4E17, 0x8146, 0x4E18, 0xC7F0, 0x4E19, 0xB1FB, 0x4E1A, 0xD2B5, - 0x4E1B, 0xB4D4, 0x4E1C, 0xB6AB, 0x4E1D, 0xCBBF, 0x4E1E, 0xD8A9, - 0x4E1F, 0x8147, 0x4E20, 0x8148, 0x4E21, 0x8149, 0x4E22, 0xB6AA, - 0x4E23, 0x814A, 0x4E24, 0xC1BD, 0x4E25, 0xD1CF, 0x4E26, 0x814B, - 0x4E27, 0xC9A5, 0x4E28, 0xD8AD, 0x4E29, 0x814C, 0x4E2A, 0xB8F6, - 0x4E2B, 0xD1BE, 0x4E2C, 0xE3DC, 0x4E2D, 0xD6D0, 0x4E2E, 0x814D, - 0x4E2F, 0x814E, 0x4E30, 0xB7E1, 0x4E31, 0x814F, 0x4E32, 0xB4AE, - 0x4E33, 0x8150, 0x4E34, 0xC1D9, 0x4E35, 0x8151, 0x4E36, 0xD8BC, - 0x4E37, 0x8152, 0x4E38, 0xCDE8, 0x4E39, 0xB5A4, 0x4E3A, 0xCEAA, - 0x4E3B, 0xD6F7, 0x4E3C, 0x8153, 0x4E3D, 0xC0F6, 0x4E3E, 0xBED9, - 0x4E3F, 0xD8AF, 0x4E40, 0x8154, 0x4E41, 0x8155, 0x4E42, 0x8156, - 0x4E43, 0xC4CB, 0x4E44, 0x8157, 0x4E45, 0xBEC3, 0x4E46, 0x8158, - 0x4E47, 0xD8B1, 0x4E48, 0xC3B4, 0x4E49, 0xD2E5, 0x4E4A, 0x8159, - 0x4E4B, 0xD6AE, 0x4E4C, 0xCEDA, 0x4E4D, 0xD5A7, 0x4E4E, 0xBAF5, - 0x4E4F, 0xB7A6, 0x4E50, 0xC0D6, 0x4E51, 0x815A, 0x4E52, 0xC6B9, - 0x4E53, 0xC5D2, 0x4E54, 0xC7C7, 0x4E55, 0x815B, 0x4E56, 0xB9D4, - 0x4E57, 0x815C, 0x4E58, 0xB3CB, 0x4E59, 0xD2D2, 0x4E5A, 0x815D, - 0x4E5B, 0x815E, 0x4E5C, 0xD8BF, 0x4E5D, 0xBEC5, 0x4E5E, 0xC6F2, - 0x4E5F, 0xD2B2, 0x4E60, 0xCFB0, 0x4E61, 0xCFE7, 0x4E62, 0x815F, - 0x4E63, 0x8160, 0x4E64, 0x8161, 0x4E65, 0x8162, 0x4E66, 0xCAE9, - 0x4E67, 0x8163, 0x4E68, 0x8164, 0x4E69, 0xD8C0, 0x4E6A, 0x8165, - 0x4E6B, 0x8166, 0x4E6C, 0x8167, 0x4E6D, 0x8168, 0x4E6E, 0x8169, - 0x4E6F, 0x816A, 0x4E70, 0xC2F2, 0x4E71, 0xC2D2, 0x4E72, 0x816B, - 0x4E73, 0xC8E9, 0x4E74, 0x816C, 0x4E75, 0x816D, 0x4E76, 0x816E, - 0x4E77, 0x816F, 0x4E78, 0x8170, 0x4E79, 0x8171, 0x4E7A, 0x8172, - 0x4E7B, 0x8173, 0x4E7C, 0x8174, 0x4E7D, 0x8175, 0x4E7E, 0xC7AC, - 0x4E7F, 0x8176, 0x4E80, 0x8177, 0x4E81, 0x8178, 0x4E82, 0x8179, - 0x4E83, 0x817A, 0x4E84, 0x817B, 0x4E85, 0x817C, 0x4E86, 0xC1CB, - 0x4E87, 0x817D, 0x4E88, 0xD3E8, 0x4E89, 0xD5F9, 0x4E8A, 0x817E, - 0x4E8B, 0xCAC2, 0x4E8C, 0xB6FE, 0x4E8D, 0xD8A1, 0x4E8E, 0xD3DA, - 0x4E8F, 0xBFF7, 0x4E90, 0x8180, 0x4E91, 0xD4C6, 0x4E92, 0xBBA5, - 0x4E93, 0xD8C1, 0x4E94, 0xCEE5, 0x4E95, 0xBEAE, 0x4E96, 0x8181, - 0x4E97, 0x8182, 0x4E98, 0xD8A8, 0x4E99, 0x8183, 0x4E9A, 0xD1C7, - 0x4E9B, 0xD0A9, 0x4E9C, 0x8184, 0x4E9D, 0x8185, 0x4E9E, 0x8186, - 0x4E9F, 0xD8BD, 0x4EA0, 0xD9EF, 0x4EA1, 0xCDF6, 0x4EA2, 0xBFBA, - 0x4EA3, 0x8187, 0x4EA4, 0xBDBB, 0x4EA5, 0xBAA5, 0x4EA6, 0xD2E0, - 0x4EA7, 0xB2FA, 0x4EA8, 0xBAE0, 0x4EA9, 0xC4B6, 0x4EAA, 0x8188, - 0x4EAB, 0xCFED, 0x4EAC, 0xBEA9, 0x4EAD, 0xCDA4, 0x4EAE, 0xC1C1, - 0x4EAF, 0x8189, 0x4EB0, 0x818A, 0x4EB1, 0x818B, 0x4EB2, 0xC7D7, - 0x4EB3, 0xD9F1, 0x4EB4, 0x818C, 0x4EB5, 0xD9F4, 0x4EB6, 0x818D, - 0x4EB7, 0x818E, 0x4EB8, 0x818F, 0x4EB9, 0x8190, 0x4EBA, 0xC8CB, - 0x4EBB, 0xD8E9, 0x4EBC, 0x8191, 0x4EBD, 0x8192, 0x4EBE, 0x8193, - 0x4EBF, 0xD2DA, 0x4EC0, 0xCAB2, 0x4EC1, 0xC8CA, 0x4EC2, 0xD8EC, - 0x4EC3, 0xD8EA, 0x4EC4, 0xD8C6, 0x4EC5, 0xBDF6, 0x4EC6, 0xC6CD, - 0x4EC7, 0xB3F0, 0x4EC8, 0x8194, 0x4EC9, 0xD8EB, 0x4ECA, 0xBDF1, - 0x4ECB, 0xBDE9, 0x4ECC, 0x8195, 0x4ECD, 0xC8D4, 0x4ECE, 0xB4D3, - 0x4ECF, 0x8196, 0x4ED0, 0x8197, 0x4ED1, 0xC2D8, 0x4ED2, 0x8198, - 0x4ED3, 0xB2D6, 0x4ED4, 0xD7D0, 0x4ED5, 0xCACB, 0x4ED6, 0xCBFB, - 0x4ED7, 0xD5CC, 0x4ED8, 0xB8B6, 0x4ED9, 0xCFC9, 0x4EDA, 0x8199, - 0x4EDB, 0x819A, 0x4EDC, 0x819B, 0x4EDD, 0xD9DA, 0x4EDE, 0xD8F0, - 0x4EDF, 0xC7AA, 0x4EE0, 0x819C, 0x4EE1, 0xD8EE, 0x4EE2, 0x819D, - 0x4EE3, 0xB4FA, 0x4EE4, 0xC1EE, 0x4EE5, 0xD2D4, 0x4EE6, 0x819E, - 0x4EE7, 0x819F, 0x4EE8, 0xD8ED, 0x4EE9, 0x81A0, 0x4EEA, 0xD2C7, - 0x4EEB, 0xD8EF, 0x4EEC, 0xC3C7, 0x4EED, 0x81A1, 0x4EEE, 0x81A2, - 0x4EEF, 0x81A3, 0x4EF0, 0xD1F6, 0x4EF1, 0x81A4, 0x4EF2, 0xD6D9, - 0x4EF3, 0xD8F2, 0x4EF4, 0x81A5, 0x4EF5, 0xD8F5, 0x4EF6, 0xBCFE, - 0x4EF7, 0xBCDB, 0x4EF8, 0x81A6, 0x4EF9, 0x81A7, 0x4EFA, 0x81A8, - 0x4EFB, 0xC8CE, 0x4EFC, 0x81A9, 0x4EFD, 0xB7DD, 0x4EFE, 0x81AA, - 0x4EFF, 0xB7C2, 0x4F00, 0x81AB, 0x4F01, 0xC6F3, 0x4F02, 0x81AC, - 0x4F03, 0x81AD, 0x4F04, 0x81AE, 0x4F05, 0x81AF, 0x4F06, 0x81B0, - 0x4F07, 0x81B1, 0x4F08, 0x81B2, 0x4F09, 0xD8F8, 0x4F0A, 0xD2C1, - 0x4F0B, 0x81B3, 0x4F0C, 0x81B4, 0x4F0D, 0xCEE9, 0x4F0E, 0xBCBF, - 0x4F0F, 0xB7FC, 0x4F10, 0xB7A5, 0x4F11, 0xD0DD, 0x4F12, 0x81B5, - 0x4F13, 0x81B6, 0x4F14, 0x81B7, 0x4F15, 0x81B8, 0x4F16, 0x81B9, - 0x4F17, 0xD6DA, 0x4F18, 0xD3C5, 0x4F19, 0xBBEF, 0x4F1A, 0xBBE1, - 0x4F1B, 0xD8F1, 0x4F1C, 0x81BA, 0x4F1D, 0x81BB, 0x4F1E, 0xC9A1, - 0x4F1F, 0xCEB0, 0x4F20, 0xB4AB, 0x4F21, 0x81BC, 0x4F22, 0xD8F3, - 0x4F23, 0x81BD, 0x4F24, 0xC9CB, 0x4F25, 0xD8F6, 0x4F26, 0xC2D7, - 0x4F27, 0xD8F7, 0x4F28, 0x81BE, 0x4F29, 0x81BF, 0x4F2A, 0xCEB1, - 0x4F2B, 0xD8F9, 0x4F2C, 0x81C0, 0x4F2D, 0x81C1, 0x4F2E, 0x81C2, - 0x4F2F, 0xB2AE, 0x4F30, 0xB9C0, 0x4F31, 0x81C3, 0x4F32, 0xD9A3, - 0x4F33, 0x81C4, 0x4F34, 0xB0E9, 0x4F35, 0x81C5, 0x4F36, 0xC1E6, - 0x4F37, 0x81C6, 0x4F38, 0xC9EC, 0x4F39, 0x81C7, 0x4F3A, 0xCBC5, - 0x4F3B, 0x81C8, 0x4F3C, 0xCBC6, 0x4F3D, 0xD9A4, 0x4F3E, 0x81C9, - 0x4F3F, 0x81CA, 0x4F40, 0x81CB, 0x4F41, 0x81CC, 0x4F42, 0x81CD, - 0x4F43, 0xB5E8, 0x4F44, 0x81CE, 0x4F45, 0x81CF, 0x4F46, 0xB5AB, - 0x4F47, 0x81D0, 0x4F48, 0x81D1, 0x4F49, 0x81D2, 0x4F4A, 0x81D3, - 0x4F4B, 0x81D4, 0x4F4C, 0x81D5, 0x4F4D, 0xCEBB, 0x4F4E, 0xB5CD, - 0x4F4F, 0xD7A1, 0x4F50, 0xD7F4, 0x4F51, 0xD3D3, 0x4F52, 0x81D6, - 0x4F53, 0xCCE5, 0x4F54, 0x81D7, 0x4F55, 0xBACE, 0x4F56, 0x81D8, - 0x4F57, 0xD9A2, 0x4F58, 0xD9DC, 0x4F59, 0xD3E0, 0x4F5A, 0xD8FD, - 0x4F5B, 0xB7F0, 0x4F5C, 0xD7F7, 0x4F5D, 0xD8FE, 0x4F5E, 0xD8FA, - 0x4F5F, 0xD9A1, 0x4F60, 0xC4E3, 0x4F61, 0x81D9, 0x4F62, 0x81DA, - 0x4F63, 0xD3B6, 0x4F64, 0xD8F4, 0x4F65, 0xD9DD, 0x4F66, 0x81DB, - 0x4F67, 0xD8FB, 0x4F68, 0x81DC, 0x4F69, 0xC5E5, 0x4F6A, 0x81DD, - 0x4F6B, 0x81DE, 0x4F6C, 0xC0D0, 0x4F6D, 0x81DF, 0x4F6E, 0x81E0, - 0x4F6F, 0xD1F0, 0x4F70, 0xB0DB, 0x4F71, 0x81E1, 0x4F72, 0x81E2, - 0x4F73, 0xBCD1, 0x4F74, 0xD9A6, 0x4F75, 0x81E3, 0x4F76, 0xD9A5, - 0x4F77, 0x81E4, 0x4F78, 0x81E5, 0x4F79, 0x81E6, 0x4F7A, 0x81E7, - 0x4F7B, 0xD9AC, 0x4F7C, 0xD9AE, 0x4F7D, 0x81E8, 0x4F7E, 0xD9AB, - 0x4F7F, 0xCAB9, 0x4F80, 0x81E9, 0x4F81, 0x81EA, 0x4F82, 0x81EB, - 0x4F83, 0xD9A9, 0x4F84, 0xD6B6, 0x4F85, 0x81EC, 0x4F86, 0x81ED, - 0x4F87, 0x81EE, 0x4F88, 0xB3DE, 0x4F89, 0xD9A8, 0x4F8A, 0x81EF, - 0x4F8B, 0xC0FD, 0x4F8C, 0x81F0, 0x4F8D, 0xCACC, 0x4F8E, 0x81F1, - 0x4F8F, 0xD9AA, 0x4F90, 0x81F2, 0x4F91, 0xD9A7, 0x4F92, 0x81F3, - 0x4F93, 0x81F4, 0x4F94, 0xD9B0, 0x4F95, 0x81F5, 0x4F96, 0x81F6, - 0x4F97, 0xB6B1, 0x4F98, 0x81F7, 0x4F99, 0x81F8, 0x4F9A, 0x81F9, - 0x4F9B, 0xB9A9, 0x4F9C, 0x81FA, 0x4F9D, 0xD2C0, 0x4F9E, 0x81FB, - 0x4F9F, 0x81FC, 0x4FA0, 0xCFC0, 0x4FA1, 0x81FD, 0x4FA2, 0x81FE, - 0x4FA3, 0xC2C2, 0x4FA4, 0x8240, 0x4FA5, 0xBDC4, 0x4FA6, 0xD5EC, - 0x4FA7, 0xB2E0, 0x4FA8, 0xC7C8, 0x4FA9, 0xBFEB, 0x4FAA, 0xD9AD, - 0x4FAB, 0x8241, 0x4FAC, 0xD9AF, 0x4FAD, 0x8242, 0x4FAE, 0xCEEA, - 0x4FAF, 0xBAEE, 0x4FB0, 0x8243, 0x4FB1, 0x8244, 0x4FB2, 0x8245, - 0x4FB3, 0x8246, 0x4FB4, 0x8247, 0x4FB5, 0xC7D6, 0x4FB6, 0x8248, - 0x4FB7, 0x8249, 0x4FB8, 0x824A, 0x4FB9, 0x824B, 0x4FBA, 0x824C, - 0x4FBB, 0x824D, 0x4FBC, 0x824E, 0x4FBD, 0x824F, 0x4FBE, 0x8250, - 0x4FBF, 0xB1E3, 0x4FC0, 0x8251, 0x4FC1, 0x8252, 0x4FC2, 0x8253, - 0x4FC3, 0xB4D9, 0x4FC4, 0xB6ED, 0x4FC5, 0xD9B4, 0x4FC6, 0x8254, - 0x4FC7, 0x8255, 0x4FC8, 0x8256, 0x4FC9, 0x8257, 0x4FCA, 0xBFA1, - 0x4FCB, 0x8258, 0x4FCC, 0x8259, 0x4FCD, 0x825A, 0x4FCE, 0xD9DE, - 0x4FCF, 0xC7CE, 0x4FD0, 0xC0FE, 0x4FD1, 0xD9B8, 0x4FD2, 0x825B, - 0x4FD3, 0x825C, 0x4FD4, 0x825D, 0x4FD5, 0x825E, 0x4FD6, 0x825F, - 0x4FD7, 0xCBD7, 0x4FD8, 0xB7FD, 0x4FD9, 0x8260, 0x4FDA, 0xD9B5, - 0x4FDB, 0x8261, 0x4FDC, 0xD9B7, 0x4FDD, 0xB1A3, 0x4FDE, 0xD3E1, - 0x4FDF, 0xD9B9, 0x4FE0, 0x8262, 0x4FE1, 0xD0C5, 0x4FE2, 0x8263, - 0x4FE3, 0xD9B6, 0x4FE4, 0x8264, 0x4FE5, 0x8265, 0x4FE6, 0xD9B1, - 0x4FE7, 0x8266, 0x4FE8, 0xD9B2, 0x4FE9, 0xC1A9, 0x4FEA, 0xD9B3, - 0x4FEB, 0x8267, 0x4FEC, 0x8268, 0x4FED, 0xBCF3, 0x4FEE, 0xD0DE, - 0x4FEF, 0xB8A9, 0x4FF0, 0x8269, 0x4FF1, 0xBEE3, 0x4FF2, 0x826A, - 0x4FF3, 0xD9BD, 0x4FF4, 0x826B, 0x4FF5, 0x826C, 0x4FF6, 0x826D, - 0x4FF7, 0x826E, 0x4FF8, 0xD9BA, 0x4FF9, 0x826F, 0x4FFA, 0xB0B3, - 0x4FFB, 0x8270, 0x4FFC, 0x8271, 0x4FFD, 0x8272, 0x4FFE, 0xD9C2, - 0x4FFF, 0x8273, 0x5000, 0x8274, 0x5001, 0x8275, 0x5002, 0x8276, - 0x5003, 0x8277, 0x5004, 0x8278, 0x5005, 0x8279, 0x5006, 0x827A, - 0x5007, 0x827B, 0x5008, 0x827C, 0x5009, 0x827D, 0x500A, 0x827E, - 0x500B, 0x8280, 0x500C, 0xD9C4, 0x500D, 0xB1B6, 0x500E, 0x8281, - 0x500F, 0xD9BF, 0x5010, 0x8282, 0x5011, 0x8283, 0x5012, 0xB5B9, - 0x5013, 0x8284, 0x5014, 0xBEF3, 0x5015, 0x8285, 0x5016, 0x8286, - 0x5017, 0x8287, 0x5018, 0xCCC8, 0x5019, 0xBAF2, 0x501A, 0xD2D0, - 0x501B, 0x8288, 0x501C, 0xD9C3, 0x501D, 0x8289, 0x501E, 0x828A, - 0x501F, 0xBDE8, 0x5020, 0x828B, 0x5021, 0xB3AB, 0x5022, 0x828C, - 0x5023, 0x828D, 0x5024, 0x828E, 0x5025, 0xD9C5, 0x5026, 0xBEEB, - 0x5027, 0x828F, 0x5028, 0xD9C6, 0x5029, 0xD9BB, 0x502A, 0xC4DF, - 0x502B, 0x8290, 0x502C, 0xD9BE, 0x502D, 0xD9C1, 0x502E, 0xD9C0, - 0x502F, 0x8291, 0x5030, 0x8292, 0x5031, 0x8293, 0x5032, 0x8294, - 0x5033, 0x8295, 0x5034, 0x8296, 0x5035, 0x8297, 0x5036, 0x8298, - 0x5037, 0x8299, 0x5038, 0x829A, 0x5039, 0x829B, 0x503A, 0xD5AE, - 0x503B, 0x829C, 0x503C, 0xD6B5, 0x503D, 0x829D, 0x503E, 0xC7E3, - 0x503F, 0x829E, 0x5040, 0x829F, 0x5041, 0x82A0, 0x5042, 0x82A1, - 0x5043, 0xD9C8, 0x5044, 0x82A2, 0x5045, 0x82A3, 0x5046, 0x82A4, - 0x5047, 0xBCD9, 0x5048, 0xD9CA, 0x5049, 0x82A5, 0x504A, 0x82A6, - 0x504B, 0x82A7, 0x504C, 0xD9BC, 0x504D, 0x82A8, 0x504E, 0xD9CB, - 0x504F, 0xC6AB, 0x5050, 0x82A9, 0x5051, 0x82AA, 0x5052, 0x82AB, - 0x5053, 0x82AC, 0x5054, 0x82AD, 0x5055, 0xD9C9, 0x5056, 0x82AE, - 0x5057, 0x82AF, 0x5058, 0x82B0, 0x5059, 0x82B1, 0x505A, 0xD7F6, - 0x505B, 0x82B2, 0x505C, 0xCDA3, 0x505D, 0x82B3, 0x505E, 0x82B4, - 0x505F, 0x82B5, 0x5060, 0x82B6, 0x5061, 0x82B7, 0x5062, 0x82B8, - 0x5063, 0x82B9, 0x5064, 0x82BA, 0x5065, 0xBDA1, 0x5066, 0x82BB, - 0x5067, 0x82BC, 0x5068, 0x82BD, 0x5069, 0x82BE, 0x506A, 0x82BF, - 0x506B, 0x82C0, 0x506C, 0xD9CC, 0x506D, 0x82C1, 0x506E, 0x82C2, - 0x506F, 0x82C3, 0x5070, 0x82C4, 0x5071, 0x82C5, 0x5072, 0x82C6, - 0x5073, 0x82C7, 0x5074, 0x82C8, 0x5075, 0x82C9, 0x5076, 0xC5BC, - 0x5077, 0xCDB5, 0x5078, 0x82CA, 0x5079, 0x82CB, 0x507A, 0x82CC, - 0x507B, 0xD9CD, 0x507C, 0x82CD, 0x507D, 0x82CE, 0x507E, 0xD9C7, - 0x507F, 0xB3A5, 0x5080, 0xBFFE, 0x5081, 0x82CF, 0x5082, 0x82D0, - 0x5083, 0x82D1, 0x5084, 0x82D2, 0x5085, 0xB8B5, 0x5086, 0x82D3, - 0x5087, 0x82D4, 0x5088, 0xC0FC, 0x5089, 0x82D5, 0x508A, 0x82D6, - 0x508B, 0x82D7, 0x508C, 0x82D8, 0x508D, 0xB0F8, 0x508E, 0x82D9, - 0x508F, 0x82DA, 0x5090, 0x82DB, 0x5091, 0x82DC, 0x5092, 0x82DD, - 0x5093, 0x82DE, 0x5094, 0x82DF, 0x5095, 0x82E0, 0x5096, 0x82E1, - 0x5097, 0x82E2, 0x5098, 0x82E3, 0x5099, 0x82E4, 0x509A, 0x82E5, - 0x509B, 0x82E6, 0x509C, 0x82E7, 0x509D, 0x82E8, 0x509E, 0x82E9, - 0x509F, 0x82EA, 0x50A0, 0x82EB, 0x50A1, 0x82EC, 0x50A2, 0x82ED, - 0x50A3, 0xB4F6, 0x50A4, 0x82EE, 0x50A5, 0xD9CE, 0x50A6, 0x82EF, - 0x50A7, 0xD9CF, 0x50A8, 0xB4A2, 0x50A9, 0xD9D0, 0x50AA, 0x82F0, - 0x50AB, 0x82F1, 0x50AC, 0xB4DF, 0x50AD, 0x82F2, 0x50AE, 0x82F3, - 0x50AF, 0x82F4, 0x50B0, 0x82F5, 0x50B1, 0x82F6, 0x50B2, 0xB0C1, - 0x50B3, 0x82F7, 0x50B4, 0x82F8, 0x50B5, 0x82F9, 0x50B6, 0x82FA, - 0x50B7, 0x82FB, 0x50B8, 0x82FC, 0x50B9, 0x82FD, 0x50BA, 0xD9D1, - 0x50BB, 0xC9B5, 0x50BC, 0x82FE, 0x50BD, 0x8340, 0x50BE, 0x8341, - 0x50BF, 0x8342, 0x50C0, 0x8343, 0x50C1, 0x8344, 0x50C2, 0x8345, - 0x50C3, 0x8346, 0x50C4, 0x8347, 0x50C5, 0x8348, 0x50C6, 0x8349, - 0x50C7, 0x834A, 0x50C8, 0x834B, 0x50C9, 0x834C, 0x50CA, 0x834D, - 0x50CB, 0x834E, 0x50CC, 0x834F, 0x50CD, 0x8350, 0x50CE, 0x8351, - 0x50CF, 0xCFF1, 0x50D0, 0x8352, 0x50D1, 0x8353, 0x50D2, 0x8354, - 0x50D3, 0x8355, 0x50D4, 0x8356, 0x50D5, 0x8357, 0x50D6, 0xD9D2, - 0x50D7, 0x8358, 0x50D8, 0x8359, 0x50D9, 0x835A, 0x50DA, 0xC1C5, - 0x50DB, 0x835B, 0x50DC, 0x835C, 0x50DD, 0x835D, 0x50DE, 0x835E, - 0x50DF, 0x835F, 0x50E0, 0x8360, 0x50E1, 0x8361, 0x50E2, 0x8362, - 0x50E3, 0x8363, 0x50E4, 0x8364, 0x50E5, 0x8365, 0x50E6, 0xD9D6, - 0x50E7, 0xC9AE, 0x50E8, 0x8366, 0x50E9, 0x8367, 0x50EA, 0x8368, - 0x50EB, 0x8369, 0x50EC, 0xD9D5, 0x50ED, 0xD9D4, 0x50EE, 0xD9D7, - 0x50EF, 0x836A, 0x50F0, 0x836B, 0x50F1, 0x836C, 0x50F2, 0x836D, - 0x50F3, 0xCBDB, 0x50F4, 0x836E, 0x50F5, 0xBDA9, 0x50F6, 0x836F, - 0x50F7, 0x8370, 0x50F8, 0x8371, 0x50F9, 0x8372, 0x50FA, 0x8373, - 0x50FB, 0xC6A7, 0x50FC, 0x8374, 0x50FD, 0x8375, 0x50FE, 0x8376, - 0x50FF, 0x8377, 0x5100, 0x8378, 0x5101, 0x8379, 0x5102, 0x837A, - 0x5103, 0x837B, 0x5104, 0x837C, 0x5105, 0x837D, 0x5106, 0xD9D3, - 0x5107, 0xD9D8, 0x5108, 0x837E, 0x5109, 0x8380, 0x510A, 0x8381, - 0x510B, 0xD9D9, 0x510C, 0x8382, 0x510D, 0x8383, 0x510E, 0x8384, - 0x510F, 0x8385, 0x5110, 0x8386, 0x5111, 0x8387, 0x5112, 0xC8E5, - 0x5113, 0x8388, 0x5114, 0x8389, 0x5115, 0x838A, 0x5116, 0x838B, - 0x5117, 0x838C, 0x5118, 0x838D, 0x5119, 0x838E, 0x511A, 0x838F, - 0x511B, 0x8390, 0x511C, 0x8391, 0x511D, 0x8392, 0x511E, 0x8393, - 0x511F, 0x8394, 0x5120, 0x8395, 0x5121, 0xC0DC, 0x5122, 0x8396, - 0x5123, 0x8397, 0x5124, 0x8398, 0x5125, 0x8399, 0x5126, 0x839A, - 0x5127, 0x839B, 0x5128, 0x839C, 0x5129, 0x839D, 0x512A, 0x839E, - 0x512B, 0x839F, 0x512C, 0x83A0, 0x512D, 0x83A1, 0x512E, 0x83A2, - 0x512F, 0x83A3, 0x5130, 0x83A4, 0x5131, 0x83A5, 0x5132, 0x83A6, - 0x5133, 0x83A7, 0x5134, 0x83A8, 0x5135, 0x83A9, 0x5136, 0x83AA, - 0x5137, 0x83AB, 0x5138, 0x83AC, 0x5139, 0x83AD, 0x513A, 0x83AE, - 0x513B, 0x83AF, 0x513C, 0x83B0, 0x513D, 0x83B1, 0x513E, 0x83B2, - 0x513F, 0xB6F9, 0x5140, 0xD8A3, 0x5141, 0xD4CA, 0x5142, 0x83B3, - 0x5143, 0xD4AA, 0x5144, 0xD0D6, 0x5145, 0xB3E4, 0x5146, 0xD5D7, - 0x5147, 0x83B4, 0x5148, 0xCFC8, 0x5149, 0xB9E2, 0x514A, 0x83B5, - 0x514B, 0xBFCB, 0x514C, 0x83B6, 0x514D, 0xC3E2, 0x514E, 0x83B7, - 0x514F, 0x83B8, 0x5150, 0x83B9, 0x5151, 0xB6D2, 0x5152, 0x83BA, - 0x5153, 0x83BB, 0x5154, 0xCDC3, 0x5155, 0xD9EE, 0x5156, 0xD9F0, - 0x5157, 0x83BC, 0x5158, 0x83BD, 0x5159, 0x83BE, 0x515A, 0xB5B3, - 0x515B, 0x83BF, 0x515C, 0xB6B5, 0x515D, 0x83C0, 0x515E, 0x83C1, - 0x515F, 0x83C2, 0x5160, 0x83C3, 0x5161, 0x83C4, 0x5162, 0xBEA4, - 0x5163, 0x83C5, 0x5164, 0x83C6, 0x5165, 0xC8EB, 0x5166, 0x83C7, - 0x5167, 0x83C8, 0x5168, 0xC8AB, 0x5169, 0x83C9, 0x516A, 0x83CA, - 0x516B, 0xB0CB, 0x516C, 0xB9AB, 0x516D, 0xC1F9, 0x516E, 0xD9E2, - 0x516F, 0x83CB, 0x5170, 0xC0BC, 0x5171, 0xB9B2, 0x5172, 0x83CC, - 0x5173, 0xB9D8, 0x5174, 0xD0CB, 0x5175, 0xB1F8, 0x5176, 0xC6E4, - 0x5177, 0xBEDF, 0x5178, 0xB5E4, 0x5179, 0xD7C8, 0x517A, 0x83CD, - 0x517B, 0xD1F8, 0x517C, 0xBCE6, 0x517D, 0xCADE, 0x517E, 0x83CE, - 0x517F, 0x83CF, 0x5180, 0xBCBD, 0x5181, 0xD9E6, 0x5182, 0xD8E7, - 0x5183, 0x83D0, 0x5184, 0x83D1, 0x5185, 0xC4DA, 0x5186, 0x83D2, - 0x5187, 0x83D3, 0x5188, 0xB8D4, 0x5189, 0xC8BD, 0x518A, 0x83D4, - 0x518B, 0x83D5, 0x518C, 0xB2E1, 0x518D, 0xD4D9, 0x518E, 0x83D6, - 0x518F, 0x83D7, 0x5190, 0x83D8, 0x5191, 0x83D9, 0x5192, 0xC3B0, - 0x5193, 0x83DA, 0x5194, 0x83DB, 0x5195, 0xC3E1, 0x5196, 0xDAA2, - 0x5197, 0xC8DF, 0x5198, 0x83DC, 0x5199, 0xD0B4, 0x519A, 0x83DD, - 0x519B, 0xBEFC, 0x519C, 0xC5A9, 0x519D, 0x83DE, 0x519E, 0x83DF, - 0x519F, 0x83E0, 0x51A0, 0xB9DA, 0x51A1, 0x83E1, 0x51A2, 0xDAA3, - 0x51A3, 0x83E2, 0x51A4, 0xD4A9, 0x51A5, 0xDAA4, 0x51A6, 0x83E3, - 0x51A7, 0x83E4, 0x51A8, 0x83E5, 0x51A9, 0x83E6, 0x51AA, 0x83E7, - 0x51AB, 0xD9FB, 0x51AC, 0xB6AC, 0x51AD, 0x83E8, 0x51AE, 0x83E9, - 0x51AF, 0xB7EB, 0x51B0, 0xB1F9, 0x51B1, 0xD9FC, 0x51B2, 0xB3E5, - 0x51B3, 0xBEF6, 0x51B4, 0x83EA, 0x51B5, 0xBFF6, 0x51B6, 0xD2B1, - 0x51B7, 0xC0E4, 0x51B8, 0x83EB, 0x51B9, 0x83EC, 0x51BA, 0x83ED, - 0x51BB, 0xB6B3, 0x51BC, 0xD9FE, 0x51BD, 0xD9FD, 0x51BE, 0x83EE, - 0x51BF, 0x83EF, 0x51C0, 0xBEBB, 0x51C1, 0x83F0, 0x51C2, 0x83F1, - 0x51C3, 0x83F2, 0x51C4, 0xC6E0, 0x51C5, 0x83F3, 0x51C6, 0xD7BC, - 0x51C7, 0xDAA1, 0x51C8, 0x83F4, 0x51C9, 0xC1B9, 0x51CA, 0x83F5, - 0x51CB, 0xB5F2, 0x51CC, 0xC1E8, 0x51CD, 0x83F6, 0x51CE, 0x83F7, - 0x51CF, 0xBCF5, 0x51D0, 0x83F8, 0x51D1, 0xB4D5, 0x51D2, 0x83F9, - 0x51D3, 0x83FA, 0x51D4, 0x83FB, 0x51D5, 0x83FC, 0x51D6, 0x83FD, - 0x51D7, 0x83FE, 0x51D8, 0x8440, 0x51D9, 0x8441, 0x51DA, 0x8442, - 0x51DB, 0xC1DD, 0x51DC, 0x8443, 0x51DD, 0xC4FD, 0x51DE, 0x8444, - 0x51DF, 0x8445, 0x51E0, 0xBCB8, 0x51E1, 0xB7B2, 0x51E2, 0x8446, - 0x51E3, 0x8447, 0x51E4, 0xB7EF, 0x51E5, 0x8448, 0x51E6, 0x8449, - 0x51E7, 0x844A, 0x51E8, 0x844B, 0x51E9, 0x844C, 0x51EA, 0x844D, - 0x51EB, 0xD9EC, 0x51EC, 0x844E, 0x51ED, 0xC6BE, 0x51EE, 0x844F, - 0x51EF, 0xBFAD, 0x51F0, 0xBBCB, 0x51F1, 0x8450, 0x51F2, 0x8451, - 0x51F3, 0xB5CA, 0x51F4, 0x8452, 0x51F5, 0xDBC9, 0x51F6, 0xD0D7, - 0x51F7, 0x8453, 0x51F8, 0xCDB9, 0x51F9, 0xB0BC, 0x51FA, 0xB3F6, - 0x51FB, 0xBBF7, 0x51FC, 0xDBCA, 0x51FD, 0xBAAF, 0x51FE, 0x8454, - 0x51FF, 0xD4E4, 0x5200, 0xB5B6, 0x5201, 0xB5F3, 0x5202, 0xD8D6, - 0x5203, 0xC8D0, 0x5204, 0x8455, 0x5205, 0x8456, 0x5206, 0xB7D6, - 0x5207, 0xC7D0, 0x5208, 0xD8D7, 0x5209, 0x8457, 0x520A, 0xBFAF, - 0x520B, 0x8458, 0x520C, 0x8459, 0x520D, 0xDBBB, 0x520E, 0xD8D8, - 0x520F, 0x845A, 0x5210, 0x845B, 0x5211, 0xD0CC, 0x5212, 0xBBAE, - 0x5213, 0x845C, 0x5214, 0x845D, 0x5215, 0x845E, 0x5216, 0xEBBE, - 0x5217, 0xC1D0, 0x5218, 0xC1F5, 0x5219, 0xD4F2, 0x521A, 0xB8D5, - 0x521B, 0xB4B4, 0x521C, 0x845F, 0x521D, 0xB3F5, 0x521E, 0x8460, - 0x521F, 0x8461, 0x5220, 0xC9BE, 0x5221, 0x8462, 0x5222, 0x8463, - 0x5223, 0x8464, 0x5224, 0xC5D0, 0x5225, 0x8465, 0x5226, 0x8466, - 0x5227, 0x8467, 0x5228, 0xC5D9, 0x5229, 0xC0FB, 0x522A, 0x8468, - 0x522B, 0xB1F0, 0x522C, 0x8469, 0x522D, 0xD8D9, 0x522E, 0xB9CE, - 0x522F, 0x846A, 0x5230, 0xB5BD, 0x5231, 0x846B, 0x5232, 0x846C, - 0x5233, 0xD8DA, 0x5234, 0x846D, 0x5235, 0x846E, 0x5236, 0xD6C6, - 0x5237, 0xCBA2, 0x5238, 0xC8AF, 0x5239, 0xC9B2, 0x523A, 0xB4CC, - 0x523B, 0xBFCC, 0x523C, 0x846F, 0x523D, 0xB9F4, 0x523E, 0x8470, - 0x523F, 0xD8DB, 0x5240, 0xD8DC, 0x5241, 0xB6E7, 0x5242, 0xBCC1, - 0x5243, 0xCCEA, 0x5244, 0x8471, 0x5245, 0x8472, 0x5246, 0x8473, - 0x5247, 0x8474, 0x5248, 0x8475, 0x5249, 0x8476, 0x524A, 0xCFF7, - 0x524B, 0x8477, 0x524C, 0xD8DD, 0x524D, 0xC7B0, 0x524E, 0x8478, - 0x524F, 0x8479, 0x5250, 0xB9D0, 0x5251, 0xBDA3, 0x5252, 0x847A, - 0x5253, 0x847B, 0x5254, 0xCCDE, 0x5255, 0x847C, 0x5256, 0xC6CA, - 0x5257, 0x847D, 0x5258, 0x847E, 0x5259, 0x8480, 0x525A, 0x8481, - 0x525B, 0x8482, 0x525C, 0xD8E0, 0x525D, 0x8483, 0x525E, 0xD8DE, - 0x525F, 0x8484, 0x5260, 0x8485, 0x5261, 0xD8DF, 0x5262, 0x8486, - 0x5263, 0x8487, 0x5264, 0x8488, 0x5265, 0xB0FE, 0x5266, 0x8489, - 0x5267, 0xBEE7, 0x5268, 0x848A, 0x5269, 0xCAA3, 0x526A, 0xBCF4, - 0x526B, 0x848B, 0x526C, 0x848C, 0x526D, 0x848D, 0x526E, 0x848E, - 0x526F, 0xB8B1, 0x5270, 0x848F, 0x5271, 0x8490, 0x5272, 0xB8EE, - 0x5273, 0x8491, 0x5274, 0x8492, 0x5275, 0x8493, 0x5276, 0x8494, - 0x5277, 0x8495, 0x5278, 0x8496, 0x5279, 0x8497, 0x527A, 0x8498, - 0x527B, 0x8499, 0x527C, 0x849A, 0x527D, 0xD8E2, 0x527E, 0x849B, - 0x527F, 0xBDCB, 0x5280, 0x849C, 0x5281, 0xD8E4, 0x5282, 0xD8E3, - 0x5283, 0x849D, 0x5284, 0x849E, 0x5285, 0x849F, 0x5286, 0x84A0, - 0x5287, 0x84A1, 0x5288, 0xC5FC, 0x5289, 0x84A2, 0x528A, 0x84A3, - 0x528B, 0x84A4, 0x528C, 0x84A5, 0x528D, 0x84A6, 0x528E, 0x84A7, - 0x528F, 0x84A8, 0x5290, 0xD8E5, 0x5291, 0x84A9, 0x5292, 0x84AA, - 0x5293, 0xD8E6, 0x5294, 0x84AB, 0x5295, 0x84AC, 0x5296, 0x84AD, - 0x5297, 0x84AE, 0x5298, 0x84AF, 0x5299, 0x84B0, 0x529A, 0x84B1, - 0x529B, 0xC1A6, 0x529C, 0x84B2, 0x529D, 0xC8B0, 0x529E, 0xB0EC, - 0x529F, 0xB9A6, 0x52A0, 0xBCD3, 0x52A1, 0xCEF1, 0x52A2, 0xDBBD, - 0x52A3, 0xC1D3, 0x52A4, 0x84B3, 0x52A5, 0x84B4, 0x52A6, 0x84B5, - 0x52A7, 0x84B6, 0x52A8, 0xB6AF, 0x52A9, 0xD6FA, 0x52AA, 0xC5AC, - 0x52AB, 0xBDD9, 0x52AC, 0xDBBE, 0x52AD, 0xDBBF, 0x52AE, 0x84B7, - 0x52AF, 0x84B8, 0x52B0, 0x84B9, 0x52B1, 0xC0F8, 0x52B2, 0xBEA2, - 0x52B3, 0xC0CD, 0x52B4, 0x84BA, 0x52B5, 0x84BB, 0x52B6, 0x84BC, - 0x52B7, 0x84BD, 0x52B8, 0x84BE, 0x52B9, 0x84BF, 0x52BA, 0x84C0, - 0x52BB, 0x84C1, 0x52BC, 0x84C2, 0x52BD, 0x84C3, 0x52BE, 0xDBC0, - 0x52BF, 0xCAC6, 0x52C0, 0x84C4, 0x52C1, 0x84C5, 0x52C2, 0x84C6, - 0x52C3, 0xB2AA, 0x52C4, 0x84C7, 0x52C5, 0x84C8, 0x52C6, 0x84C9, - 0x52C7, 0xD3C2, 0x52C8, 0x84CA, 0x52C9, 0xC3E3, 0x52CA, 0x84CB, - 0x52CB, 0xD1AB, 0x52CC, 0x84CC, 0x52CD, 0x84CD, 0x52CE, 0x84CE, - 0x52CF, 0x84CF, 0x52D0, 0xDBC2, 0x52D1, 0x84D0, 0x52D2, 0xC0D5, - 0x52D3, 0x84D1, 0x52D4, 0x84D2, 0x52D5, 0x84D3, 0x52D6, 0xDBC3, - 0x52D7, 0x84D4, 0x52D8, 0xBFB1, 0x52D9, 0x84D5, 0x52DA, 0x84D6, - 0x52DB, 0x84D7, 0x52DC, 0x84D8, 0x52DD, 0x84D9, 0x52DE, 0x84DA, - 0x52DF, 0xC4BC, 0x52E0, 0x84DB, 0x52E1, 0x84DC, 0x52E2, 0x84DD, - 0x52E3, 0x84DE, 0x52E4, 0xC7DA, 0x52E5, 0x84DF, 0x52E6, 0x84E0, - 0x52E7, 0x84E1, 0x52E8, 0x84E2, 0x52E9, 0x84E3, 0x52EA, 0x84E4, - 0x52EB, 0x84E5, 0x52EC, 0x84E6, 0x52ED, 0x84E7, 0x52EE, 0x84E8, - 0x52EF, 0x84E9, 0x52F0, 0xDBC4, 0x52F1, 0x84EA, 0x52F2, 0x84EB, - 0x52F3, 0x84EC, 0x52F4, 0x84ED, 0x52F5, 0x84EE, 0x52F6, 0x84EF, - 0x52F7, 0x84F0, 0x52F8, 0x84F1, 0x52F9, 0xD9E8, 0x52FA, 0xC9D7, - 0x52FB, 0x84F2, 0x52FC, 0x84F3, 0x52FD, 0x84F4, 0x52FE, 0xB9B4, - 0x52FF, 0xCEF0, 0x5300, 0xD4C8, 0x5301, 0x84F5, 0x5302, 0x84F6, - 0x5303, 0x84F7, 0x5304, 0x84F8, 0x5305, 0xB0FC, 0x5306, 0xB4D2, - 0x5307, 0x84F9, 0x5308, 0xD0D9, 0x5309, 0x84FA, 0x530A, 0x84FB, - 0x530B, 0x84FC, 0x530C, 0x84FD, 0x530D, 0xD9E9, 0x530E, 0x84FE, - 0x530F, 0xDECB, 0x5310, 0xD9EB, 0x5311, 0x8540, 0x5312, 0x8541, - 0x5313, 0x8542, 0x5314, 0x8543, 0x5315, 0xD8B0, 0x5316, 0xBBAF, - 0x5317, 0xB1B1, 0x5318, 0x8544, 0x5319, 0xB3D7, 0x531A, 0xD8CE, - 0x531B, 0x8545, 0x531C, 0x8546, 0x531D, 0xD4D1, 0x531E, 0x8547, - 0x531F, 0x8548, 0x5320, 0xBDB3, 0x5321, 0xBFEF, 0x5322, 0x8549, - 0x5323, 0xCFBB, 0x5324, 0x854A, 0x5325, 0x854B, 0x5326, 0xD8D0, - 0x5327, 0x854C, 0x5328, 0x854D, 0x5329, 0x854E, 0x532A, 0xB7CB, - 0x532B, 0x854F, 0x532C, 0x8550, 0x532D, 0x8551, 0x532E, 0xD8D1, - 0x532F, 0x8552, 0x5330, 0x8553, 0x5331, 0x8554, 0x5332, 0x8555, - 0x5333, 0x8556, 0x5334, 0x8557, 0x5335, 0x8558, 0x5336, 0x8559, - 0x5337, 0x855A, 0x5338, 0x855B, 0x5339, 0xC6A5, 0x533A, 0xC7F8, - 0x533B, 0xD2BD, 0x533C, 0x855C, 0x533D, 0x855D, 0x533E, 0xD8D2, - 0x533F, 0xC4E4, 0x5340, 0x855E, 0x5341, 0xCAAE, 0x5342, 0x855F, - 0x5343, 0xC7A7, 0x5344, 0x8560, 0x5345, 0xD8A6, 0x5346, 0x8561, - 0x5347, 0xC9FD, 0x5348, 0xCEE7, 0x5349, 0xBBDC, 0x534A, 0xB0EB, - 0x534B, 0x8562, 0x534C, 0x8563, 0x534D, 0x8564, 0x534E, 0xBBAA, - 0x534F, 0xD0AD, 0x5350, 0x8565, 0x5351, 0xB1B0, 0x5352, 0xD7E4, - 0x5353, 0xD7BF, 0x5354, 0x8566, 0x5355, 0xB5A5, 0x5356, 0xC2F4, - 0x5357, 0xC4CF, 0x5358, 0x8567, 0x5359, 0x8568, 0x535A, 0xB2A9, - 0x535B, 0x8569, 0x535C, 0xB2B7, 0x535D, 0x856A, 0x535E, 0xB1E5, - 0x535F, 0xDFB2, 0x5360, 0xD5BC, 0x5361, 0xBFA8, 0x5362, 0xC2AC, - 0x5363, 0xD8D5, 0x5364, 0xC2B1, 0x5365, 0x856B, 0x5366, 0xD8D4, - 0x5367, 0xCED4, 0x5368, 0x856C, 0x5369, 0xDAE0, 0x536A, 0x856D, - 0x536B, 0xCEC0, 0x536C, 0x856E, 0x536D, 0x856F, 0x536E, 0xD8B4, - 0x536F, 0xC3AE, 0x5370, 0xD3A1, 0x5371, 0xCEA3, 0x5372, 0x8570, - 0x5373, 0xBCB4, 0x5374, 0xC8B4, 0x5375, 0xC2D1, 0x5376, 0x8571, - 0x5377, 0xBEED, 0x5378, 0xD0B6, 0x5379, 0x8572, 0x537A, 0xDAE1, - 0x537B, 0x8573, 0x537C, 0x8574, 0x537D, 0x8575, 0x537E, 0x8576, - 0x537F, 0xC7E4, 0x5380, 0x8577, 0x5381, 0x8578, 0x5382, 0xB3A7, - 0x5383, 0x8579, 0x5384, 0xB6F2, 0x5385, 0xCCFC, 0x5386, 0xC0FA, - 0x5387, 0x857A, 0x5388, 0x857B, 0x5389, 0xC0F7, 0x538A, 0x857C, - 0x538B, 0xD1B9, 0x538C, 0xD1E1, 0x538D, 0xD8C7, 0x538E, 0x857D, - 0x538F, 0x857E, 0x5390, 0x8580, 0x5391, 0x8581, 0x5392, 0x8582, - 0x5393, 0x8583, 0x5394, 0x8584, 0x5395, 0xB2DE, 0x5396, 0x8585, - 0x5397, 0x8586, 0x5398, 0xC0E5, 0x5399, 0x8587, 0x539A, 0xBAF1, - 0x539B, 0x8588, 0x539C, 0x8589, 0x539D, 0xD8C8, 0x539E, 0x858A, - 0x539F, 0xD4AD, 0x53A0, 0x858B, 0x53A1, 0x858C, 0x53A2, 0xCFE1, - 0x53A3, 0xD8C9, 0x53A4, 0x858D, 0x53A5, 0xD8CA, 0x53A6, 0xCFC3, - 0x53A7, 0x858E, 0x53A8, 0xB3F8, 0x53A9, 0xBEC7, 0x53AA, 0x858F, - 0x53AB, 0x8590, 0x53AC, 0x8591, 0x53AD, 0x8592, 0x53AE, 0xD8CB, - 0x53AF, 0x8593, 0x53B0, 0x8594, 0x53B1, 0x8595, 0x53B2, 0x8596, - 0x53B3, 0x8597, 0x53B4, 0x8598, 0x53B5, 0x8599, 0x53B6, 0xDBCC, - 0x53B7, 0x859A, 0x53B8, 0x859B, 0x53B9, 0x859C, 0x53BA, 0x859D, - 0x53BB, 0xC8A5, 0x53BC, 0x859E, 0x53BD, 0x859F, 0x53BE, 0x85A0, - 0x53BF, 0xCFD8, 0x53C0, 0x85A1, 0x53C1, 0xC8FE, 0x53C2, 0xB2CE, - 0x53C3, 0x85A2, 0x53C4, 0x85A3, 0x53C5, 0x85A4, 0x53C6, 0x85A5, - 0x53C7, 0x85A6, 0x53C8, 0xD3D6, 0x53C9, 0xB2E6, 0x53CA, 0xBCB0, - 0x53CB, 0xD3D1, 0x53CC, 0xCBAB, 0x53CD, 0xB7B4, 0x53CE, 0x85A7, - 0x53CF, 0x85A8, 0x53D0, 0x85A9, 0x53D1, 0xB7A2, 0x53D2, 0x85AA, - 0x53D3, 0x85AB, 0x53D4, 0xCAE5, 0x53D5, 0x85AC, 0x53D6, 0xC8A1, - 0x53D7, 0xCADC, 0x53D8, 0xB1E4, 0x53D9, 0xD0F0, 0x53DA, 0x85AD, - 0x53DB, 0xC5D1, 0x53DC, 0x85AE, 0x53DD, 0x85AF, 0x53DE, 0x85B0, - 0x53DF, 0xDBC5, 0x53E0, 0xB5FE, 0x53E1, 0x85B1, 0x53E2, 0x85B2, - 0x53E3, 0xBFDA, 0x53E4, 0xB9C5, 0x53E5, 0xBEE4, 0x53E6, 0xC1ED, - 0x53E7, 0x85B3, 0x53E8, 0xDFB6, 0x53E9, 0xDFB5, 0x53EA, 0xD6BB, - 0x53EB, 0xBDD0, 0x53EC, 0xD5D9, 0x53ED, 0xB0C8, 0x53EE, 0xB6A3, - 0x53EF, 0xBFC9, 0x53F0, 0xCCA8, 0x53F1, 0xDFB3, 0x53F2, 0xCAB7, - 0x53F3, 0xD3D2, 0x53F4, 0x85B4, 0x53F5, 0xD8CF, 0x53F6, 0xD2B6, - 0x53F7, 0xBAC5, 0x53F8, 0xCBBE, 0x53F9, 0xCCBE, 0x53FA, 0x85B5, - 0x53FB, 0xDFB7, 0x53FC, 0xB5F0, 0x53FD, 0xDFB4, 0x53FE, 0x85B6, - 0x53FF, 0x85B7, 0x5400, 0x85B8, 0x5401, 0xD3F5, 0x5402, 0x85B9, - 0x5403, 0xB3D4, 0x5404, 0xB8F7, 0x5405, 0x85BA, 0x5406, 0xDFBA, - 0x5407, 0x85BB, 0x5408, 0xBACF, 0x5409, 0xBCAA, 0x540A, 0xB5F5, - 0x540B, 0x85BC, 0x540C, 0xCDAC, 0x540D, 0xC3FB, 0x540E, 0xBAF3, - 0x540F, 0xC0F4, 0x5410, 0xCDC2, 0x5411, 0xCFF2, 0x5412, 0xDFB8, - 0x5413, 0xCFC5, 0x5414, 0x85BD, 0x5415, 0xC2C0, 0x5416, 0xDFB9, - 0x5417, 0xC2F0, 0x5418, 0x85BE, 0x5419, 0x85BF, 0x541A, 0x85C0, - 0x541B, 0xBEFD, 0x541C, 0x85C1, 0x541D, 0xC1DF, 0x541E, 0xCDCC, - 0x541F, 0xD2F7, 0x5420, 0xB7CD, 0x5421, 0xDFC1, 0x5422, 0x85C2, - 0x5423, 0xDFC4, 0x5424, 0x85C3, 0x5425, 0x85C4, 0x5426, 0xB7F1, - 0x5427, 0xB0C9, 0x5428, 0xB6D6, 0x5429, 0xB7D4, 0x542A, 0x85C5, - 0x542B, 0xBAAC, 0x542C, 0xCCFD, 0x542D, 0xBFD4, 0x542E, 0xCBB1, - 0x542F, 0xC6F4, 0x5430, 0x85C6, 0x5431, 0xD6A8, 0x5432, 0xDFC5, - 0x5433, 0x85C7, 0x5434, 0xCEE2, 0x5435, 0xB3B3, 0x5436, 0x85C8, - 0x5437, 0x85C9, 0x5438, 0xCEFC, 0x5439, 0xB4B5, 0x543A, 0x85CA, - 0x543B, 0xCEC7, 0x543C, 0xBAF0, 0x543D, 0x85CB, 0x543E, 0xCEE1, - 0x543F, 0x85CC, 0x5440, 0xD1BD, 0x5441, 0x85CD, 0x5442, 0x85CE, - 0x5443, 0xDFC0, 0x5444, 0x85CF, 0x5445, 0x85D0, 0x5446, 0xB4F4, - 0x5447, 0x85D1, 0x5448, 0xB3CA, 0x5449, 0x85D2, 0x544A, 0xB8E6, - 0x544B, 0xDFBB, 0x544C, 0x85D3, 0x544D, 0x85D4, 0x544E, 0x85D5, - 0x544F, 0x85D6, 0x5450, 0xC4C5, 0x5451, 0x85D7, 0x5452, 0xDFBC, - 0x5453, 0xDFBD, 0x5454, 0xDFBE, 0x5455, 0xC5BB, 0x5456, 0xDFBF, - 0x5457, 0xDFC2, 0x5458, 0xD4B1, 0x5459, 0xDFC3, 0x545A, 0x85D8, - 0x545B, 0xC7BA, 0x545C, 0xCED8, 0x545D, 0x85D9, 0x545E, 0x85DA, - 0x545F, 0x85DB, 0x5460, 0x85DC, 0x5461, 0x85DD, 0x5462, 0xC4D8, - 0x5463, 0x85DE, 0x5464, 0xDFCA, 0x5465, 0x85DF, 0x5466, 0xDFCF, - 0x5467, 0x85E0, 0x5468, 0xD6DC, 0x5469, 0x85E1, 0x546A, 0x85E2, - 0x546B, 0x85E3, 0x546C, 0x85E4, 0x546D, 0x85E5, 0x546E, 0x85E6, - 0x546F, 0x85E7, 0x5470, 0x85E8, 0x5471, 0xDFC9, 0x5472, 0xDFDA, - 0x5473, 0xCEB6, 0x5474, 0x85E9, 0x5475, 0xBAC7, 0x5476, 0xDFCE, - 0x5477, 0xDFC8, 0x5478, 0xC5DE, 0x5479, 0x85EA, 0x547A, 0x85EB, - 0x547B, 0xC9EB, 0x547C, 0xBAF4, 0x547D, 0xC3FC, 0x547E, 0x85EC, - 0x547F, 0x85ED, 0x5480, 0xBED7, 0x5481, 0x85EE, 0x5482, 0xDFC6, - 0x5483, 0x85EF, 0x5484, 0xDFCD, 0x5485, 0x85F0, 0x5486, 0xC5D8, - 0x5487, 0x85F1, 0x5488, 0x85F2, 0x5489, 0x85F3, 0x548A, 0x85F4, - 0x548B, 0xD5A6, 0x548C, 0xBACD, 0x548D, 0x85F5, 0x548E, 0xBECC, - 0x548F, 0xD3BD, 0x5490, 0xB8C0, 0x5491, 0x85F6, 0x5492, 0xD6E4, - 0x5493, 0x85F7, 0x5494, 0xDFC7, 0x5495, 0xB9BE, 0x5496, 0xBFA7, - 0x5497, 0x85F8, 0x5498, 0x85F9, 0x5499, 0xC1FC, 0x549A, 0xDFCB, - 0x549B, 0xDFCC, 0x549C, 0x85FA, 0x549D, 0xDFD0, 0x549E, 0x85FB, - 0x549F, 0x85FC, 0x54A0, 0x85FD, 0x54A1, 0x85FE, 0x54A2, 0x8640, - 0x54A3, 0xDFDB, 0x54A4, 0xDFE5, 0x54A5, 0x8641, 0x54A6, 0xDFD7, - 0x54A7, 0xDFD6, 0x54A8, 0xD7C9, 0x54A9, 0xDFE3, 0x54AA, 0xDFE4, - 0x54AB, 0xE5EB, 0x54AC, 0xD2A7, 0x54AD, 0xDFD2, 0x54AE, 0x8642, - 0x54AF, 0xBFA9, 0x54B0, 0x8643, 0x54B1, 0xD4DB, 0x54B2, 0x8644, - 0x54B3, 0xBFC8, 0x54B4, 0xDFD4, 0x54B5, 0x8645, 0x54B6, 0x8646, - 0x54B7, 0x8647, 0x54B8, 0xCFCC, 0x54B9, 0x8648, 0x54BA, 0x8649, - 0x54BB, 0xDFDD, 0x54BC, 0x864A, 0x54BD, 0xD1CA, 0x54BE, 0x864B, - 0x54BF, 0xDFDE, 0x54C0, 0xB0A7, 0x54C1, 0xC6B7, 0x54C2, 0xDFD3, - 0x54C3, 0x864C, 0x54C4, 0xBAE5, 0x54C5, 0x864D, 0x54C6, 0xB6DF, - 0x54C7, 0xCDDB, 0x54C8, 0xB9FE, 0x54C9, 0xD4D5, 0x54CA, 0x864E, - 0x54CB, 0x864F, 0x54CC, 0xDFDF, 0x54CD, 0xCFEC, 0x54CE, 0xB0A5, - 0x54CF, 0xDFE7, 0x54D0, 0xDFD1, 0x54D1, 0xD1C6, 0x54D2, 0xDFD5, - 0x54D3, 0xDFD8, 0x54D4, 0xDFD9, 0x54D5, 0xDFDC, 0x54D6, 0x8650, - 0x54D7, 0xBBA9, 0x54D8, 0x8651, 0x54D9, 0xDFE0, 0x54DA, 0xDFE1, - 0x54DB, 0x8652, 0x54DC, 0xDFE2, 0x54DD, 0xDFE6, 0x54DE, 0xDFE8, - 0x54DF, 0xD3B4, 0x54E0, 0x8653, 0x54E1, 0x8654, 0x54E2, 0x8655, - 0x54E3, 0x8656, 0x54E4, 0x8657, 0x54E5, 0xB8E7, 0x54E6, 0xC5B6, - 0x54E7, 0xDFEA, 0x54E8, 0xC9DA, 0x54E9, 0xC1A8, 0x54EA, 0xC4C4, - 0x54EB, 0x8658, 0x54EC, 0x8659, 0x54ED, 0xBFDE, 0x54EE, 0xCFF8, - 0x54EF, 0x865A, 0x54F0, 0x865B, 0x54F1, 0x865C, 0x54F2, 0xD5DC, - 0x54F3, 0xDFEE, 0x54F4, 0x865D, 0x54F5, 0x865E, 0x54F6, 0x865F, - 0x54F7, 0x8660, 0x54F8, 0x8661, 0x54F9, 0x8662, 0x54FA, 0xB2B8, - 0x54FB, 0x8663, 0x54FC, 0xBADF, 0x54FD, 0xDFEC, 0x54FE, 0x8664, - 0x54FF, 0xDBC1, 0x5500, 0x8665, 0x5501, 0xD1E4, 0x5502, 0x8666, - 0x5503, 0x8667, 0x5504, 0x8668, 0x5505, 0x8669, 0x5506, 0xCBF4, - 0x5507, 0xB4BD, 0x5508, 0x866A, 0x5509, 0xB0A6, 0x550A, 0x866B, - 0x550B, 0x866C, 0x550C, 0x866D, 0x550D, 0x866E, 0x550E, 0x866F, - 0x550F, 0xDFF1, 0x5510, 0xCCC6, 0x5511, 0xDFF2, 0x5512, 0x8670, - 0x5513, 0x8671, 0x5514, 0xDFED, 0x5515, 0x8672, 0x5516, 0x8673, - 0x5517, 0x8674, 0x5518, 0x8675, 0x5519, 0x8676, 0x551A, 0x8677, - 0x551B, 0xDFE9, 0x551C, 0x8678, 0x551D, 0x8679, 0x551E, 0x867A, - 0x551F, 0x867B, 0x5520, 0xDFEB, 0x5521, 0x867C, 0x5522, 0xDFEF, - 0x5523, 0xDFF0, 0x5524, 0xBBBD, 0x5525, 0x867D, 0x5526, 0x867E, - 0x5527, 0xDFF3, 0x5528, 0x8680, 0x5529, 0x8681, 0x552A, 0xDFF4, - 0x552B, 0x8682, 0x552C, 0xBBA3, 0x552D, 0x8683, 0x552E, 0xCADB, - 0x552F, 0xCEA8, 0x5530, 0xE0A7, 0x5531, 0xB3AA, 0x5532, 0x8684, - 0x5533, 0xE0A6, 0x5534, 0x8685, 0x5535, 0x8686, 0x5536, 0x8687, - 0x5537, 0xE0A1, 0x5538, 0x8688, 0x5539, 0x8689, 0x553A, 0x868A, - 0x553B, 0x868B, 0x553C, 0xDFFE, 0x553D, 0x868C, 0x553E, 0xCDD9, - 0x553F, 0xDFFC, 0x5540, 0x868D, 0x5541, 0xDFFA, 0x5542, 0x868E, - 0x5543, 0xBFD0, 0x5544, 0xD7C4, 0x5545, 0x868F, 0x5546, 0xC9CC, - 0x5547, 0x8690, 0x5548, 0x8691, 0x5549, 0xDFF8, 0x554A, 0xB0A1, - 0x554B, 0x8692, 0x554C, 0x8693, 0x554D, 0x8694, 0x554E, 0x8695, - 0x554F, 0x8696, 0x5550, 0xDFFD, 0x5551, 0x8697, 0x5552, 0x8698, - 0x5553, 0x8699, 0x5554, 0x869A, 0x5555, 0xDFFB, 0x5556, 0xE0A2, - 0x5557, 0x869B, 0x5558, 0x869C, 0x5559, 0x869D, 0x555A, 0x869E, - 0x555B, 0x869F, 0x555C, 0xE0A8, 0x555D, 0x86A0, 0x555E, 0x86A1, - 0x555F, 0x86A2, 0x5560, 0x86A3, 0x5561, 0xB7C8, 0x5562, 0x86A4, - 0x5563, 0x86A5, 0x5564, 0xC6A1, 0x5565, 0xC9B6, 0x5566, 0xC0B2, - 0x5567, 0xDFF5, 0x5568, 0x86A6, 0x5569, 0x86A7, 0x556A, 0xC5BE, - 0x556B, 0x86A8, 0x556C, 0xD8C4, 0x556D, 0xDFF9, 0x556E, 0xC4F6, - 0x556F, 0x86A9, 0x5570, 0x86AA, 0x5571, 0x86AB, 0x5572, 0x86AC, - 0x5573, 0x86AD, 0x5574, 0x86AE, 0x5575, 0xE0A3, 0x5576, 0xE0A4, - 0x5577, 0xE0A5, 0x5578, 0xD0A5, 0x5579, 0x86AF, 0x557A, 0x86B0, - 0x557B, 0xE0B4, 0x557C, 0xCCE4, 0x557D, 0x86B1, 0x557E, 0xE0B1, - 0x557F, 0x86B2, 0x5580, 0xBFA6, 0x5581, 0xE0AF, 0x5582, 0xCEB9, - 0x5583, 0xE0AB, 0x5584, 0xC9C6, 0x5585, 0x86B3, 0x5586, 0x86B4, - 0x5587, 0xC0AE, 0x5588, 0xE0AE, 0x5589, 0xBAED, 0x558A, 0xBAB0, - 0x558B, 0xE0A9, 0x558C, 0x86B5, 0x558D, 0x86B6, 0x558E, 0x86B7, - 0x558F, 0xDFF6, 0x5590, 0x86B8, 0x5591, 0xE0B3, 0x5592, 0x86B9, - 0x5593, 0x86BA, 0x5594, 0xE0B8, 0x5595, 0x86BB, 0x5596, 0x86BC, - 0x5597, 0x86BD, 0x5598, 0xB4AD, 0x5599, 0xE0B9, 0x559A, 0x86BE, - 0x559B, 0x86BF, 0x559C, 0xCFB2, 0x559D, 0xBAC8, 0x559E, 0x86C0, - 0x559F, 0xE0B0, 0x55A0, 0x86C1, 0x55A1, 0x86C2, 0x55A2, 0x86C3, - 0x55A3, 0x86C4, 0x55A4, 0x86C5, 0x55A5, 0x86C6, 0x55A6, 0x86C7, - 0x55A7, 0xD0FA, 0x55A8, 0x86C8, 0x55A9, 0x86C9, 0x55AA, 0x86CA, - 0x55AB, 0x86CB, 0x55AC, 0x86CC, 0x55AD, 0x86CD, 0x55AE, 0x86CE, - 0x55AF, 0x86CF, 0x55B0, 0x86D0, 0x55B1, 0xE0AC, 0x55B2, 0x86D1, - 0x55B3, 0xD4FB, 0x55B4, 0x86D2, 0x55B5, 0xDFF7, 0x55B6, 0x86D3, - 0x55B7, 0xC5E7, 0x55B8, 0x86D4, 0x55B9, 0xE0AD, 0x55BA, 0x86D5, - 0x55BB, 0xD3F7, 0x55BC, 0x86D6, 0x55BD, 0xE0B6, 0x55BE, 0xE0B7, - 0x55BF, 0x86D7, 0x55C0, 0x86D8, 0x55C1, 0x86D9, 0x55C2, 0x86DA, - 0x55C3, 0x86DB, 0x55C4, 0xE0C4, 0x55C5, 0xD0E1, 0x55C6, 0x86DC, - 0x55C7, 0x86DD, 0x55C8, 0x86DE, 0x55C9, 0xE0BC, 0x55CA, 0x86DF, - 0x55CB, 0x86E0, 0x55CC, 0xE0C9, 0x55CD, 0xE0CA, 0x55CE, 0x86E1, - 0x55CF, 0x86E2, 0x55D0, 0x86E3, 0x55D1, 0xE0BE, 0x55D2, 0xE0AA, - 0x55D3, 0xC9A4, 0x55D4, 0xE0C1, 0x55D5, 0x86E4, 0x55D6, 0xE0B2, - 0x55D7, 0x86E5, 0x55D8, 0x86E6, 0x55D9, 0x86E7, 0x55DA, 0x86E8, - 0x55DB, 0x86E9, 0x55DC, 0xCAC8, 0x55DD, 0xE0C3, 0x55DE, 0x86EA, - 0x55DF, 0xE0B5, 0x55E0, 0x86EB, 0x55E1, 0xCECB, 0x55E2, 0x86EC, - 0x55E3, 0xCBC3, 0x55E4, 0xE0CD, 0x55E5, 0xE0C6, 0x55E6, 0xE0C2, - 0x55E7, 0x86ED, 0x55E8, 0xE0CB, 0x55E9, 0x86EE, 0x55EA, 0xE0BA, - 0x55EB, 0xE0BF, 0x55EC, 0xE0C0, 0x55ED, 0x86EF, 0x55EE, 0x86F0, - 0x55EF, 0xE0C5, 0x55F0, 0x86F1, 0x55F1, 0x86F2, 0x55F2, 0xE0C7, - 0x55F3, 0xE0C8, 0x55F4, 0x86F3, 0x55F5, 0xE0CC, 0x55F6, 0x86F4, - 0x55F7, 0xE0BB, 0x55F8, 0x86F5, 0x55F9, 0x86F6, 0x55FA, 0x86F7, - 0x55FB, 0x86F8, 0x55FC, 0x86F9, 0x55FD, 0xCBD4, 0x55FE, 0xE0D5, - 0x55FF, 0x86FA, 0x5600, 0xE0D6, 0x5601, 0xE0D2, 0x5602, 0x86FB, - 0x5603, 0x86FC, 0x5604, 0x86FD, 0x5605, 0x86FE, 0x5606, 0x8740, - 0x5607, 0x8741, 0x5608, 0xE0D0, 0x5609, 0xBCCE, 0x560A, 0x8742, - 0x560B, 0x8743, 0x560C, 0xE0D1, 0x560D, 0x8744, 0x560E, 0xB8C2, - 0x560F, 0xD8C5, 0x5610, 0x8745, 0x5611, 0x8746, 0x5612, 0x8747, - 0x5613, 0x8748, 0x5614, 0x8749, 0x5615, 0x874A, 0x5616, 0x874B, - 0x5617, 0x874C, 0x5618, 0xD0EA, 0x5619, 0x874D, 0x561A, 0x874E, - 0x561B, 0xC2EF, 0x561C, 0x874F, 0x561D, 0x8750, 0x561E, 0xE0CF, - 0x561F, 0xE0BD, 0x5620, 0x8751, 0x5621, 0x8752, 0x5622, 0x8753, - 0x5623, 0xE0D4, 0x5624, 0xE0D3, 0x5625, 0x8754, 0x5626, 0x8755, - 0x5627, 0xE0D7, 0x5628, 0x8756, 0x5629, 0x8757, 0x562A, 0x8758, - 0x562B, 0x8759, 0x562C, 0xE0DC, 0x562D, 0xE0D8, 0x562E, 0x875A, - 0x562F, 0x875B, 0x5630, 0x875C, 0x5631, 0xD6F6, 0x5632, 0xB3B0, - 0x5633, 0x875D, 0x5634, 0xD7EC, 0x5635, 0x875E, 0x5636, 0xCBBB, - 0x5637, 0x875F, 0x5638, 0x8760, 0x5639, 0xE0DA, 0x563A, 0x8761, - 0x563B, 0xCEFB, 0x563C, 0x8762, 0x563D, 0x8763, 0x563E, 0x8764, - 0x563F, 0xBAD9, 0x5640, 0x8765, 0x5641, 0x8766, 0x5642, 0x8767, - 0x5643, 0x8768, 0x5644, 0x8769, 0x5645, 0x876A, 0x5646, 0x876B, - 0x5647, 0x876C, 0x5648, 0x876D, 0x5649, 0x876E, 0x564A, 0x876F, - 0x564B, 0x8770, 0x564C, 0xE0E1, 0x564D, 0xE0DD, 0x564E, 0xD2AD, - 0x564F, 0x8771, 0x5650, 0x8772, 0x5651, 0x8773, 0x5652, 0x8774, - 0x5653, 0x8775, 0x5654, 0xE0E2, 0x5655, 0x8776, 0x5656, 0x8777, - 0x5657, 0xE0DB, 0x5658, 0xE0D9, 0x5659, 0xE0DF, 0x565A, 0x8778, - 0x565B, 0x8779, 0x565C, 0xE0E0, 0x565D, 0x877A, 0x565E, 0x877B, - 0x565F, 0x877C, 0x5660, 0x877D, 0x5661, 0x877E, 0x5662, 0xE0DE, - 0x5663, 0x8780, 0x5664, 0xE0E4, 0x5665, 0x8781, 0x5666, 0x8782, - 0x5667, 0x8783, 0x5668, 0xC6F7, 0x5669, 0xD8AC, 0x566A, 0xD4EB, - 0x566B, 0xE0E6, 0x566C, 0xCAC9, 0x566D, 0x8784, 0x566E, 0x8785, - 0x566F, 0x8786, 0x5670, 0x8787, 0x5671, 0xE0E5, 0x5672, 0x8788, - 0x5673, 0x8789, 0x5674, 0x878A, 0x5675, 0x878B, 0x5676, 0xB8C1, - 0x5677, 0x878C, 0x5678, 0x878D, 0x5679, 0x878E, 0x567A, 0x878F, - 0x567B, 0xE0E7, 0x567C, 0xE0E8, 0x567D, 0x8790, 0x567E, 0x8791, - 0x567F, 0x8792, 0x5680, 0x8793, 0x5681, 0x8794, 0x5682, 0x8795, - 0x5683, 0x8796, 0x5684, 0x8797, 0x5685, 0xE0E9, 0x5686, 0xE0E3, - 0x5687, 0x8798, 0x5688, 0x8799, 0x5689, 0x879A, 0x568A, 0x879B, - 0x568B, 0x879C, 0x568C, 0x879D, 0x568D, 0x879E, 0x568E, 0xBABF, - 0x568F, 0xCCE7, 0x5690, 0x879F, 0x5691, 0x87A0, 0x5692, 0x87A1, - 0x5693, 0xE0EA, 0x5694, 0x87A2, 0x5695, 0x87A3, 0x5696, 0x87A4, - 0x5697, 0x87A5, 0x5698, 0x87A6, 0x5699, 0x87A7, 0x569A, 0x87A8, - 0x569B, 0x87A9, 0x569C, 0x87AA, 0x569D, 0x87AB, 0x569E, 0x87AC, - 0x569F, 0x87AD, 0x56A0, 0x87AE, 0x56A1, 0x87AF, 0x56A2, 0x87B0, - 0x56A3, 0xCFF9, 0x56A4, 0x87B1, 0x56A5, 0x87B2, 0x56A6, 0x87B3, - 0x56A7, 0x87B4, 0x56A8, 0x87B5, 0x56A9, 0x87B6, 0x56AA, 0x87B7, - 0x56AB, 0x87B8, 0x56AC, 0x87B9, 0x56AD, 0x87BA, 0x56AE, 0x87BB, - 0x56AF, 0xE0EB, 0x56B0, 0x87BC, 0x56B1, 0x87BD, 0x56B2, 0x87BE, - 0x56B3, 0x87BF, 0x56B4, 0x87C0, 0x56B5, 0x87C1, 0x56B6, 0x87C2, - 0x56B7, 0xC8C2, 0x56B8, 0x87C3, 0x56B9, 0x87C4, 0x56BA, 0x87C5, - 0x56BB, 0x87C6, 0x56BC, 0xBDC0, 0x56BD, 0x87C7, 0x56BE, 0x87C8, - 0x56BF, 0x87C9, 0x56C0, 0x87CA, 0x56C1, 0x87CB, 0x56C2, 0x87CC, - 0x56C3, 0x87CD, 0x56C4, 0x87CE, 0x56C5, 0x87CF, 0x56C6, 0x87D0, - 0x56C7, 0x87D1, 0x56C8, 0x87D2, 0x56C9, 0x87D3, 0x56CA, 0xC4D2, - 0x56CB, 0x87D4, 0x56CC, 0x87D5, 0x56CD, 0x87D6, 0x56CE, 0x87D7, - 0x56CF, 0x87D8, 0x56D0, 0x87D9, 0x56D1, 0x87DA, 0x56D2, 0x87DB, - 0x56D3, 0x87DC, 0x56D4, 0xE0EC, 0x56D5, 0x87DD, 0x56D6, 0x87DE, - 0x56D7, 0xE0ED, 0x56D8, 0x87DF, 0x56D9, 0x87E0, 0x56DA, 0xC7F4, - 0x56DB, 0xCBC4, 0x56DC, 0x87E1, 0x56DD, 0xE0EE, 0x56DE, 0xBBD8, - 0x56DF, 0xD8B6, 0x56E0, 0xD2F2, 0x56E1, 0xE0EF, 0x56E2, 0xCDC5, - 0x56E3, 0x87E2, 0x56E4, 0xB6DA, 0x56E5, 0x87E3, 0x56E6, 0x87E4, - 0x56E7, 0x87E5, 0x56E8, 0x87E6, 0x56E9, 0x87E7, 0x56EA, 0x87E8, - 0x56EB, 0xE0F1, 0x56EC, 0x87E9, 0x56ED, 0xD4B0, 0x56EE, 0x87EA, - 0x56EF, 0x87EB, 0x56F0, 0xC0A7, 0x56F1, 0xB4D1, 0x56F2, 0x87EC, - 0x56F3, 0x87ED, 0x56F4, 0xCEA7, 0x56F5, 0xE0F0, 0x56F6, 0x87EE, - 0x56F7, 0x87EF, 0x56F8, 0x87F0, 0x56F9, 0xE0F2, 0x56FA, 0xB9CC, - 0x56FB, 0x87F1, 0x56FC, 0x87F2, 0x56FD, 0xB9FA, 0x56FE, 0xCDBC, - 0x56FF, 0xE0F3, 0x5700, 0x87F3, 0x5701, 0x87F4, 0x5702, 0x87F5, - 0x5703, 0xC6D4, 0x5704, 0xE0F4, 0x5705, 0x87F6, 0x5706, 0xD4B2, - 0x5707, 0x87F7, 0x5708, 0xC8A6, 0x5709, 0xE0F6, 0x570A, 0xE0F5, - 0x570B, 0x87F8, 0x570C, 0x87F9, 0x570D, 0x87FA, 0x570E, 0x87FB, - 0x570F, 0x87FC, 0x5710, 0x87FD, 0x5711, 0x87FE, 0x5712, 0x8840, - 0x5713, 0x8841, 0x5714, 0x8842, 0x5715, 0x8843, 0x5716, 0x8844, - 0x5717, 0x8845, 0x5718, 0x8846, 0x5719, 0x8847, 0x571A, 0x8848, - 0x571B, 0x8849, 0x571C, 0xE0F7, 0x571D, 0x884A, 0x571E, 0x884B, - 0x571F, 0xCDC1, 0x5720, 0x884C, 0x5721, 0x884D, 0x5722, 0x884E, - 0x5723, 0xCAA5, 0x5724, 0x884F, 0x5725, 0x8850, 0x5726, 0x8851, - 0x5727, 0x8852, 0x5728, 0xD4DA, 0x5729, 0xDBD7, 0x572A, 0xDBD9, - 0x572B, 0x8853, 0x572C, 0xDBD8, 0x572D, 0xB9E7, 0x572E, 0xDBDC, - 0x572F, 0xDBDD, 0x5730, 0xB5D8, 0x5731, 0x8854, 0x5732, 0x8855, - 0x5733, 0xDBDA, 0x5734, 0x8856, 0x5735, 0x8857, 0x5736, 0x8858, - 0x5737, 0x8859, 0x5738, 0x885A, 0x5739, 0xDBDB, 0x573A, 0xB3A1, - 0x573B, 0xDBDF, 0x573C, 0x885B, 0x573D, 0x885C, 0x573E, 0xBBF8, - 0x573F, 0x885D, 0x5740, 0xD6B7, 0x5741, 0x885E, 0x5742, 0xDBE0, - 0x5743, 0x885F, 0x5744, 0x8860, 0x5745, 0x8861, 0x5746, 0x8862, - 0x5747, 0xBEF9, 0x5748, 0x8863, 0x5749, 0x8864, 0x574A, 0xB7BB, - 0x574B, 0x8865, 0x574C, 0xDBD0, 0x574D, 0xCCAE, 0x574E, 0xBFB2, - 0x574F, 0xBBB5, 0x5750, 0xD7F8, 0x5751, 0xBFD3, 0x5752, 0x8866, - 0x5753, 0x8867, 0x5754, 0x8868, 0x5755, 0x8869, 0x5756, 0x886A, - 0x5757, 0xBFE9, 0x5758, 0x886B, 0x5759, 0x886C, 0x575A, 0xBCE1, - 0x575B, 0xCCB3, 0x575C, 0xDBDE, 0x575D, 0xB0D3, 0x575E, 0xCEEB, - 0x575F, 0xB7D8, 0x5760, 0xD7B9, 0x5761, 0xC6C2, 0x5762, 0x886D, - 0x5763, 0x886E, 0x5764, 0xC0A4, 0x5765, 0x886F, 0x5766, 0xCCB9, - 0x5767, 0x8870, 0x5768, 0xDBE7, 0x5769, 0xDBE1, 0x576A, 0xC6BA, - 0x576B, 0xDBE3, 0x576C, 0x8871, 0x576D, 0xDBE8, 0x576E, 0x8872, - 0x576F, 0xC5F7, 0x5770, 0x8873, 0x5771, 0x8874, 0x5772, 0x8875, - 0x5773, 0xDBEA, 0x5774, 0x8876, 0x5775, 0x8877, 0x5776, 0xDBE9, - 0x5777, 0xBFC0, 0x5778, 0x8878, 0x5779, 0x8879, 0x577A, 0x887A, - 0x577B, 0xDBE6, 0x577C, 0xDBE5, 0x577D, 0x887B, 0x577E, 0x887C, - 0x577F, 0x887D, 0x5780, 0x887E, 0x5781, 0x8880, 0x5782, 0xB4B9, - 0x5783, 0xC0AC, 0x5784, 0xC2A2, 0x5785, 0xDBE2, 0x5786, 0xDBE4, - 0x5787, 0x8881, 0x5788, 0x8882, 0x5789, 0x8883, 0x578A, 0x8884, - 0x578B, 0xD0CD, 0x578C, 0xDBED, 0x578D, 0x8885, 0x578E, 0x8886, - 0x578F, 0x8887, 0x5790, 0x8888, 0x5791, 0x8889, 0x5792, 0xC0DD, - 0x5793, 0xDBF2, 0x5794, 0x888A, 0x5795, 0x888B, 0x5796, 0x888C, - 0x5797, 0x888D, 0x5798, 0x888E, 0x5799, 0x888F, 0x579A, 0x8890, - 0x579B, 0xB6E2, 0x579C, 0x8891, 0x579D, 0x8892, 0x579E, 0x8893, - 0x579F, 0x8894, 0x57A0, 0xDBF3, 0x57A1, 0xDBD2, 0x57A2, 0xB9B8, - 0x57A3, 0xD4AB, 0x57A4, 0xDBEC, 0x57A5, 0x8895, 0x57A6, 0xBFD1, - 0x57A7, 0xDBF0, 0x57A8, 0x8896, 0x57A9, 0xDBD1, 0x57AA, 0x8897, - 0x57AB, 0xB5E6, 0x57AC, 0x8898, 0x57AD, 0xDBEB, 0x57AE, 0xBFE5, - 0x57AF, 0x8899, 0x57B0, 0x889A, 0x57B1, 0x889B, 0x57B2, 0xDBEE, - 0x57B3, 0x889C, 0x57B4, 0xDBF1, 0x57B5, 0x889D, 0x57B6, 0x889E, - 0x57B7, 0x889F, 0x57B8, 0xDBF9, 0x57B9, 0x88A0, 0x57BA, 0x88A1, - 0x57BB, 0x88A2, 0x57BC, 0x88A3, 0x57BD, 0x88A4, 0x57BE, 0x88A5, - 0x57BF, 0x88A6, 0x57C0, 0x88A7, 0x57C1, 0x88A8, 0x57C2, 0xB9A1, - 0x57C3, 0xB0A3, 0x57C4, 0x88A9, 0x57C5, 0x88AA, 0x57C6, 0x88AB, - 0x57C7, 0x88AC, 0x57C8, 0x88AD, 0x57C9, 0x88AE, 0x57CA, 0x88AF, - 0x57CB, 0xC2F1, 0x57CC, 0x88B0, 0x57CD, 0x88B1, 0x57CE, 0xB3C7, - 0x57CF, 0xDBEF, 0x57D0, 0x88B2, 0x57D1, 0x88B3, 0x57D2, 0xDBF8, - 0x57D3, 0x88B4, 0x57D4, 0xC6D2, 0x57D5, 0xDBF4, 0x57D6, 0x88B5, - 0x57D7, 0x88B6, 0x57D8, 0xDBF5, 0x57D9, 0xDBF7, 0x57DA, 0xDBF6, - 0x57DB, 0x88B7, 0x57DC, 0x88B8, 0x57DD, 0xDBFE, 0x57DE, 0x88B9, - 0x57DF, 0xD3F2, 0x57E0, 0xB2BA, 0x57E1, 0x88BA, 0x57E2, 0x88BB, - 0x57E3, 0x88BC, 0x57E4, 0xDBFD, 0x57E5, 0x88BD, 0x57E6, 0x88BE, - 0x57E7, 0x88BF, 0x57E8, 0x88C0, 0x57E9, 0x88C1, 0x57EA, 0x88C2, - 0x57EB, 0x88C3, 0x57EC, 0x88C4, 0x57ED, 0xDCA4, 0x57EE, 0x88C5, - 0x57EF, 0xDBFB, 0x57F0, 0x88C6, 0x57F1, 0x88C7, 0x57F2, 0x88C8, - 0x57F3, 0x88C9, 0x57F4, 0xDBFA, 0x57F5, 0x88CA, 0x57F6, 0x88CB, - 0x57F7, 0x88CC, 0x57F8, 0xDBFC, 0x57F9, 0xC5E0, 0x57FA, 0xBBF9, - 0x57FB, 0x88CD, 0x57FC, 0x88CE, 0x57FD, 0xDCA3, 0x57FE, 0x88CF, - 0x57FF, 0x88D0, 0x5800, 0xDCA5, 0x5801, 0x88D1, 0x5802, 0xCCC3, - 0x5803, 0x88D2, 0x5804, 0x88D3, 0x5805, 0x88D4, 0x5806, 0xB6D1, - 0x5807, 0xDDC0, 0x5808, 0x88D5, 0x5809, 0x88D6, 0x580A, 0x88D7, - 0x580B, 0xDCA1, 0x580C, 0x88D8, 0x580D, 0xDCA2, 0x580E, 0x88D9, - 0x580F, 0x88DA, 0x5810, 0x88DB, 0x5811, 0xC7B5, 0x5812, 0x88DC, - 0x5813, 0x88DD, 0x5814, 0x88DE, 0x5815, 0xB6E9, 0x5816, 0x88DF, - 0x5817, 0x88E0, 0x5818, 0x88E1, 0x5819, 0xDCA7, 0x581A, 0x88E2, - 0x581B, 0x88E3, 0x581C, 0x88E4, 0x581D, 0x88E5, 0x581E, 0xDCA6, - 0x581F, 0x88E6, 0x5820, 0xDCA9, 0x5821, 0xB1A4, 0x5822, 0x88E7, - 0x5823, 0x88E8, 0x5824, 0xB5CC, 0x5825, 0x88E9, 0x5826, 0x88EA, - 0x5827, 0x88EB, 0x5828, 0x88EC, 0x5829, 0x88ED, 0x582A, 0xBFB0, - 0x582B, 0x88EE, 0x582C, 0x88EF, 0x582D, 0x88F0, 0x582E, 0x88F1, - 0x582F, 0x88F2, 0x5830, 0xD1DF, 0x5831, 0x88F3, 0x5832, 0x88F4, - 0x5833, 0x88F5, 0x5834, 0x88F6, 0x5835, 0xB6C2, 0x5836, 0x88F7, - 0x5837, 0x88F8, 0x5838, 0x88F9, 0x5839, 0x88FA, 0x583A, 0x88FB, - 0x583B, 0x88FC, 0x583C, 0x88FD, 0x583D, 0x88FE, 0x583E, 0x8940, - 0x583F, 0x8941, 0x5840, 0x8942, 0x5841, 0x8943, 0x5842, 0x8944, - 0x5843, 0x8945, 0x5844, 0xDCA8, 0x5845, 0x8946, 0x5846, 0x8947, - 0x5847, 0x8948, 0x5848, 0x8949, 0x5849, 0x894A, 0x584A, 0x894B, - 0x584B, 0x894C, 0x584C, 0xCBFA, 0x584D, 0xEBF3, 0x584E, 0x894D, - 0x584F, 0x894E, 0x5850, 0x894F, 0x5851, 0xCBDC, 0x5852, 0x8950, - 0x5853, 0x8951, 0x5854, 0xCBFE, 0x5855, 0x8952, 0x5856, 0x8953, - 0x5857, 0x8954, 0x5858, 0xCCC1, 0x5859, 0x8955, 0x585A, 0x8956, - 0x585B, 0x8957, 0x585C, 0x8958, 0x585D, 0x8959, 0x585E, 0xC8FB, - 0x585F, 0x895A, 0x5860, 0x895B, 0x5861, 0x895C, 0x5862, 0x895D, - 0x5863, 0x895E, 0x5864, 0x895F, 0x5865, 0xDCAA, 0x5866, 0x8960, - 0x5867, 0x8961, 0x5868, 0x8962, 0x5869, 0x8963, 0x586A, 0x8964, - 0x586B, 0xCCEE, 0x586C, 0xDCAB, 0x586D, 0x8965, 0x586E, 0x8966, - 0x586F, 0x8967, 0x5870, 0x8968, 0x5871, 0x8969, 0x5872, 0x896A, - 0x5873, 0x896B, 0x5874, 0x896C, 0x5875, 0x896D, 0x5876, 0x896E, - 0x5877, 0x896F, 0x5878, 0x8970, 0x5879, 0x8971, 0x587A, 0x8972, - 0x587B, 0x8973, 0x587C, 0x8974, 0x587D, 0x8975, 0x587E, 0xDBD3, - 0x587F, 0x8976, 0x5880, 0xDCAF, 0x5881, 0xDCAC, 0x5882, 0x8977, - 0x5883, 0xBEB3, 0x5884, 0x8978, 0x5885, 0xCAFB, 0x5886, 0x8979, - 0x5887, 0x897A, 0x5888, 0x897B, 0x5889, 0xDCAD, 0x588A, 0x897C, - 0x588B, 0x897D, 0x588C, 0x897E, 0x588D, 0x8980, 0x588E, 0x8981, - 0x588F, 0x8982, 0x5890, 0x8983, 0x5891, 0x8984, 0x5892, 0xC9CA, - 0x5893, 0xC4B9, 0x5894, 0x8985, 0x5895, 0x8986, 0x5896, 0x8987, - 0x5897, 0x8988, 0x5898, 0x8989, 0x5899, 0xC7BD, 0x589A, 0xDCAE, - 0x589B, 0x898A, 0x589C, 0x898B, 0x589D, 0x898C, 0x589E, 0xD4F6, - 0x589F, 0xD0E6, 0x58A0, 0x898D, 0x58A1, 0x898E, 0x58A2, 0x898F, - 0x58A3, 0x8990, 0x58A4, 0x8991, 0x58A5, 0x8992, 0x58A6, 0x8993, - 0x58A7, 0x8994, 0x58A8, 0xC4AB, 0x58A9, 0xB6D5, 0x58AA, 0x8995, - 0x58AB, 0x8996, 0x58AC, 0x8997, 0x58AD, 0x8998, 0x58AE, 0x8999, - 0x58AF, 0x899A, 0x58B0, 0x899B, 0x58B1, 0x899C, 0x58B2, 0x899D, - 0x58B3, 0x899E, 0x58B4, 0x899F, 0x58B5, 0x89A0, 0x58B6, 0x89A1, - 0x58B7, 0x89A2, 0x58B8, 0x89A3, 0x58B9, 0x89A4, 0x58BA, 0x89A5, - 0x58BB, 0x89A6, 0x58BC, 0xDBD4, 0x58BD, 0x89A7, 0x58BE, 0x89A8, - 0x58BF, 0x89A9, 0x58C0, 0x89AA, 0x58C1, 0xB1DA, 0x58C2, 0x89AB, - 0x58C3, 0x89AC, 0x58C4, 0x89AD, 0x58C5, 0xDBD5, 0x58C6, 0x89AE, - 0x58C7, 0x89AF, 0x58C8, 0x89B0, 0x58C9, 0x89B1, 0x58CA, 0x89B2, - 0x58CB, 0x89B3, 0x58CC, 0x89B4, 0x58CD, 0x89B5, 0x58CE, 0x89B6, - 0x58CF, 0x89B7, 0x58D0, 0x89B8, 0x58D1, 0xDBD6, 0x58D2, 0x89B9, - 0x58D3, 0x89BA, 0x58D4, 0x89BB, 0x58D5, 0xBABE, 0x58D6, 0x89BC, - 0x58D7, 0x89BD, 0x58D8, 0x89BE, 0x58D9, 0x89BF, 0x58DA, 0x89C0, - 0x58DB, 0x89C1, 0x58DC, 0x89C2, 0x58DD, 0x89C3, 0x58DE, 0x89C4, - 0x58DF, 0x89C5, 0x58E0, 0x89C6, 0x58E1, 0x89C7, 0x58E2, 0x89C8, - 0x58E3, 0x89C9, 0x58E4, 0xC8C0, 0x58E5, 0x89CA, 0x58E6, 0x89CB, - 0x58E7, 0x89CC, 0x58E8, 0x89CD, 0x58E9, 0x89CE, 0x58EA, 0x89CF, - 0x58EB, 0xCABF, 0x58EC, 0xC8C9, 0x58ED, 0x89D0, 0x58EE, 0xD7B3, - 0x58EF, 0x89D1, 0x58F0, 0xC9F9, 0x58F1, 0x89D2, 0x58F2, 0x89D3, - 0x58F3, 0xBFC7, 0x58F4, 0x89D4, 0x58F5, 0x89D5, 0x58F6, 0xBAF8, - 0x58F7, 0x89D6, 0x58F8, 0x89D7, 0x58F9, 0xD2BC, 0x58FA, 0x89D8, - 0x58FB, 0x89D9, 0x58FC, 0x89DA, 0x58FD, 0x89DB, 0x58FE, 0x89DC, - 0x58FF, 0x89DD, 0x5900, 0x89DE, 0x5901, 0x89DF, 0x5902, 0xE2BA, - 0x5903, 0x89E0, 0x5904, 0xB4A6, 0x5905, 0x89E1, 0x5906, 0x89E2, - 0x5907, 0xB1B8, 0x5908, 0x89E3, 0x5909, 0x89E4, 0x590A, 0x89E5, - 0x590B, 0x89E6, 0x590C, 0x89E7, 0x590D, 0xB8B4, 0x590E, 0x89E8, - 0x590F, 0xCFC4, 0x5910, 0x89E9, 0x5911, 0x89EA, 0x5912, 0x89EB, - 0x5913, 0x89EC, 0x5914, 0xD9E7, 0x5915, 0xCFA6, 0x5916, 0xCDE2, - 0x5917, 0x89ED, 0x5918, 0x89EE, 0x5919, 0xD9ED, 0x591A, 0xB6E0, - 0x591B, 0x89EF, 0x591C, 0xD2B9, 0x591D, 0x89F0, 0x591E, 0x89F1, - 0x591F, 0xB9BB, 0x5920, 0x89F2, 0x5921, 0x89F3, 0x5922, 0x89F4, - 0x5923, 0x89F5, 0x5924, 0xE2B9, 0x5925, 0xE2B7, 0x5926, 0x89F6, - 0x5927, 0xB4F3, 0x5928, 0x89F7, 0x5929, 0xCCEC, 0x592A, 0xCCAB, - 0x592B, 0xB7F2, 0x592C, 0x89F8, 0x592D, 0xD8B2, 0x592E, 0xD1EB, - 0x592F, 0xBABB, 0x5930, 0x89F9, 0x5931, 0xCAA7, 0x5932, 0x89FA, - 0x5933, 0x89FB, 0x5934, 0xCDB7, 0x5935, 0x89FC, 0x5936, 0x89FD, - 0x5937, 0xD2C4, 0x5938, 0xBFE4, 0x5939, 0xBCD0, 0x593A, 0xB6E1, - 0x593B, 0x89FE, 0x593C, 0xDEC5, 0x593D, 0x8A40, 0x593E, 0x8A41, - 0x593F, 0x8A42, 0x5940, 0x8A43, 0x5941, 0xDEC6, 0x5942, 0xDBBC, - 0x5943, 0x8A44, 0x5944, 0xD1D9, 0x5945, 0x8A45, 0x5946, 0x8A46, - 0x5947, 0xC6E6, 0x5948, 0xC4CE, 0x5949, 0xB7EE, 0x594A, 0x8A47, - 0x594B, 0xB7DC, 0x594C, 0x8A48, 0x594D, 0x8A49, 0x594E, 0xBFFC, - 0x594F, 0xD7E0, 0x5950, 0x8A4A, 0x5951, 0xC6F5, 0x5952, 0x8A4B, - 0x5953, 0x8A4C, 0x5954, 0xB1BC, 0x5955, 0xDEC8, 0x5956, 0xBDB1, - 0x5957, 0xCCD7, 0x5958, 0xDECA, 0x5959, 0x8A4D, 0x595A, 0xDEC9, - 0x595B, 0x8A4E, 0x595C, 0x8A4F, 0x595D, 0x8A50, 0x595E, 0x8A51, - 0x595F, 0x8A52, 0x5960, 0xB5EC, 0x5961, 0x8A53, 0x5962, 0xC9DD, - 0x5963, 0x8A54, 0x5964, 0x8A55, 0x5965, 0xB0C2, 0x5966, 0x8A56, - 0x5967, 0x8A57, 0x5968, 0x8A58, 0x5969, 0x8A59, 0x596A, 0x8A5A, - 0x596B, 0x8A5B, 0x596C, 0x8A5C, 0x596D, 0x8A5D, 0x596E, 0x8A5E, - 0x596F, 0x8A5F, 0x5970, 0x8A60, 0x5971, 0x8A61, 0x5972, 0x8A62, - 0x5973, 0xC5AE, 0x5974, 0xC5AB, 0x5975, 0x8A63, 0x5976, 0xC4CC, - 0x5977, 0x8A64, 0x5978, 0xBCE9, 0x5979, 0xCBFD, 0x597A, 0x8A65, - 0x597B, 0x8A66, 0x597C, 0x8A67, 0x597D, 0xBAC3, 0x597E, 0x8A68, - 0x597F, 0x8A69, 0x5980, 0x8A6A, 0x5981, 0xE5F9, 0x5982, 0xC8E7, - 0x5983, 0xE5FA, 0x5984, 0xCDFD, 0x5985, 0x8A6B, 0x5986, 0xD7B1, - 0x5987, 0xB8BE, 0x5988, 0xC2E8, 0x5989, 0x8A6C, 0x598A, 0xC8D1, - 0x598B, 0x8A6D, 0x598C, 0x8A6E, 0x598D, 0xE5FB, 0x598E, 0x8A6F, - 0x598F, 0x8A70, 0x5990, 0x8A71, 0x5991, 0x8A72, 0x5992, 0xB6CA, - 0x5993, 0xBCCB, 0x5994, 0x8A73, 0x5995, 0x8A74, 0x5996, 0xD1FD, - 0x5997, 0xE6A1, 0x5998, 0x8A75, 0x5999, 0xC3EE, 0x599A, 0x8A76, - 0x599B, 0x8A77, 0x599C, 0x8A78, 0x599D, 0x8A79, 0x599E, 0xE6A4, - 0x599F, 0x8A7A, 0x59A0, 0x8A7B, 0x59A1, 0x8A7C, 0x59A2, 0x8A7D, - 0x59A3, 0xE5FE, 0x59A4, 0xE6A5, 0x59A5, 0xCDD7, 0x59A6, 0x8A7E, - 0x59A7, 0x8A80, 0x59A8, 0xB7C1, 0x59A9, 0xE5FC, 0x59AA, 0xE5FD, - 0x59AB, 0xE6A3, 0x59AC, 0x8A81, 0x59AD, 0x8A82, 0x59AE, 0xC4DD, - 0x59AF, 0xE6A8, 0x59B0, 0x8A83, 0x59B1, 0x8A84, 0x59B2, 0xE6A7, - 0x59B3, 0x8A85, 0x59B4, 0x8A86, 0x59B5, 0x8A87, 0x59B6, 0x8A88, - 0x59B7, 0x8A89, 0x59B8, 0x8A8A, 0x59B9, 0xC3C3, 0x59BA, 0x8A8B, - 0x59BB, 0xC6DE, 0x59BC, 0x8A8C, 0x59BD, 0x8A8D, 0x59BE, 0xE6AA, - 0x59BF, 0x8A8E, 0x59C0, 0x8A8F, 0x59C1, 0x8A90, 0x59C2, 0x8A91, - 0x59C3, 0x8A92, 0x59C4, 0x8A93, 0x59C5, 0x8A94, 0x59C6, 0xC4B7, - 0x59C7, 0x8A95, 0x59C8, 0x8A96, 0x59C9, 0x8A97, 0x59CA, 0xE6A2, - 0x59CB, 0xCABC, 0x59CC, 0x8A98, 0x59CD, 0x8A99, 0x59CE, 0x8A9A, - 0x59CF, 0x8A9B, 0x59D0, 0xBDE3, 0x59D1, 0xB9C3, 0x59D2, 0xE6A6, - 0x59D3, 0xD0D5, 0x59D4, 0xCEAF, 0x59D5, 0x8A9C, 0x59D6, 0x8A9D, - 0x59D7, 0xE6A9, 0x59D8, 0xE6B0, 0x59D9, 0x8A9E, 0x59DA, 0xD2A6, - 0x59DB, 0x8A9F, 0x59DC, 0xBDAA, 0x59DD, 0xE6AD, 0x59DE, 0x8AA0, - 0x59DF, 0x8AA1, 0x59E0, 0x8AA2, 0x59E1, 0x8AA3, 0x59E2, 0x8AA4, - 0x59E3, 0xE6AF, 0x59E4, 0x8AA5, 0x59E5, 0xC0D1, 0x59E6, 0x8AA6, - 0x59E7, 0x8AA7, 0x59E8, 0xD2CC, 0x59E9, 0x8AA8, 0x59EA, 0x8AA9, - 0x59EB, 0x8AAA, 0x59EC, 0xBCA7, 0x59ED, 0x8AAB, 0x59EE, 0x8AAC, - 0x59EF, 0x8AAD, 0x59F0, 0x8AAE, 0x59F1, 0x8AAF, 0x59F2, 0x8AB0, - 0x59F3, 0x8AB1, 0x59F4, 0x8AB2, 0x59F5, 0x8AB3, 0x59F6, 0x8AB4, - 0x59F7, 0x8AB5, 0x59F8, 0x8AB6, 0x59F9, 0xE6B1, 0x59FA, 0x8AB7, - 0x59FB, 0xD2F6, 0x59FC, 0x8AB8, 0x59FD, 0x8AB9, 0x59FE, 0x8ABA, - 0x59FF, 0xD7CB, 0x5A00, 0x8ABB, 0x5A01, 0xCDFE, 0x5A02, 0x8ABC, - 0x5A03, 0xCDDE, 0x5A04, 0xC2A6, 0x5A05, 0xE6AB, 0x5A06, 0xE6AC, - 0x5A07, 0xBDBF, 0x5A08, 0xE6AE, 0x5A09, 0xE6B3, 0x5A0A, 0x8ABD, - 0x5A0B, 0x8ABE, 0x5A0C, 0xE6B2, 0x5A0D, 0x8ABF, 0x5A0E, 0x8AC0, - 0x5A0F, 0x8AC1, 0x5A10, 0x8AC2, 0x5A11, 0xE6B6, 0x5A12, 0x8AC3, - 0x5A13, 0xE6B8, 0x5A14, 0x8AC4, 0x5A15, 0x8AC5, 0x5A16, 0x8AC6, - 0x5A17, 0x8AC7, 0x5A18, 0xC4EF, 0x5A19, 0x8AC8, 0x5A1A, 0x8AC9, - 0x5A1B, 0x8ACA, 0x5A1C, 0xC4C8, 0x5A1D, 0x8ACB, 0x5A1E, 0x8ACC, - 0x5A1F, 0xBEEA, 0x5A20, 0xC9EF, 0x5A21, 0x8ACD, 0x5A22, 0x8ACE, - 0x5A23, 0xE6B7, 0x5A24, 0x8ACF, 0x5A25, 0xB6F0, 0x5A26, 0x8AD0, - 0x5A27, 0x8AD1, 0x5A28, 0x8AD2, 0x5A29, 0xC3E4, 0x5A2A, 0x8AD3, - 0x5A2B, 0x8AD4, 0x5A2C, 0x8AD5, 0x5A2D, 0x8AD6, 0x5A2E, 0x8AD7, - 0x5A2F, 0x8AD8, 0x5A30, 0x8AD9, 0x5A31, 0xD3E9, 0x5A32, 0xE6B4, - 0x5A33, 0x8ADA, 0x5A34, 0xE6B5, 0x5A35, 0x8ADB, 0x5A36, 0xC8A2, - 0x5A37, 0x8ADC, 0x5A38, 0x8ADD, 0x5A39, 0x8ADE, 0x5A3A, 0x8ADF, - 0x5A3B, 0x8AE0, 0x5A3C, 0xE6BD, 0x5A3D, 0x8AE1, 0x5A3E, 0x8AE2, - 0x5A3F, 0x8AE3, 0x5A40, 0xE6B9, 0x5A41, 0x8AE4, 0x5A42, 0x8AE5, - 0x5A43, 0x8AE6, 0x5A44, 0x8AE7, 0x5A45, 0x8AE8, 0x5A46, 0xC6C5, - 0x5A47, 0x8AE9, 0x5A48, 0x8AEA, 0x5A49, 0xCDF1, 0x5A4A, 0xE6BB, - 0x5A4B, 0x8AEB, 0x5A4C, 0x8AEC, 0x5A4D, 0x8AED, 0x5A4E, 0x8AEE, - 0x5A4F, 0x8AEF, 0x5A50, 0x8AF0, 0x5A51, 0x8AF1, 0x5A52, 0x8AF2, - 0x5A53, 0x8AF3, 0x5A54, 0x8AF4, 0x5A55, 0xE6BC, 0x5A56, 0x8AF5, - 0x5A57, 0x8AF6, 0x5A58, 0x8AF7, 0x5A59, 0x8AF8, 0x5A5A, 0xBBE9, - 0x5A5B, 0x8AF9, 0x5A5C, 0x8AFA, 0x5A5D, 0x8AFB, 0x5A5E, 0x8AFC, - 0x5A5F, 0x8AFD, 0x5A60, 0x8AFE, 0x5A61, 0x8B40, 0x5A62, 0xE6BE, - 0x5A63, 0x8B41, 0x5A64, 0x8B42, 0x5A65, 0x8B43, 0x5A66, 0x8B44, - 0x5A67, 0xE6BA, 0x5A68, 0x8B45, 0x5A69, 0x8B46, 0x5A6A, 0xC0B7, - 0x5A6B, 0x8B47, 0x5A6C, 0x8B48, 0x5A6D, 0x8B49, 0x5A6E, 0x8B4A, - 0x5A6F, 0x8B4B, 0x5A70, 0x8B4C, 0x5A71, 0x8B4D, 0x5A72, 0x8B4E, - 0x5A73, 0x8B4F, 0x5A74, 0xD3A4, 0x5A75, 0xE6BF, 0x5A76, 0xC9F4, - 0x5A77, 0xE6C3, 0x5A78, 0x8B50, 0x5A79, 0x8B51, 0x5A7A, 0xE6C4, - 0x5A7B, 0x8B52, 0x5A7C, 0x8B53, 0x5A7D, 0x8B54, 0x5A7E, 0x8B55, - 0x5A7F, 0xD0F6, 0x5A80, 0x8B56, 0x5A81, 0x8B57, 0x5A82, 0x8B58, - 0x5A83, 0x8B59, 0x5A84, 0x8B5A, 0x5A85, 0x8B5B, 0x5A86, 0x8B5C, - 0x5A87, 0x8B5D, 0x5A88, 0x8B5E, 0x5A89, 0x8B5F, 0x5A8A, 0x8B60, - 0x5A8B, 0x8B61, 0x5A8C, 0x8B62, 0x5A8D, 0x8B63, 0x5A8E, 0x8B64, - 0x5A8F, 0x8B65, 0x5A90, 0x8B66, 0x5A91, 0x8B67, 0x5A92, 0xC3BD, - 0x5A93, 0x8B68, 0x5A94, 0x8B69, 0x5A95, 0x8B6A, 0x5A96, 0x8B6B, - 0x5A97, 0x8B6C, 0x5A98, 0x8B6D, 0x5A99, 0x8B6E, 0x5A9A, 0xC3C4, - 0x5A9B, 0xE6C2, 0x5A9C, 0x8B6F, 0x5A9D, 0x8B70, 0x5A9E, 0x8B71, - 0x5A9F, 0x8B72, 0x5AA0, 0x8B73, 0x5AA1, 0x8B74, 0x5AA2, 0x8B75, - 0x5AA3, 0x8B76, 0x5AA4, 0x8B77, 0x5AA5, 0x8B78, 0x5AA6, 0x8B79, - 0x5AA7, 0x8B7A, 0x5AA8, 0x8B7B, 0x5AA9, 0x8B7C, 0x5AAA, 0xE6C1, - 0x5AAB, 0x8B7D, 0x5AAC, 0x8B7E, 0x5AAD, 0x8B80, 0x5AAE, 0x8B81, - 0x5AAF, 0x8B82, 0x5AB0, 0x8B83, 0x5AB1, 0x8B84, 0x5AB2, 0xE6C7, - 0x5AB3, 0xCFB1, 0x5AB4, 0x8B85, 0x5AB5, 0xEBF4, 0x5AB6, 0x8B86, - 0x5AB7, 0x8B87, 0x5AB8, 0xE6CA, 0x5AB9, 0x8B88, 0x5ABA, 0x8B89, - 0x5ABB, 0x8B8A, 0x5ABC, 0x8B8B, 0x5ABD, 0x8B8C, 0x5ABE, 0xE6C5, - 0x5ABF, 0x8B8D, 0x5AC0, 0x8B8E, 0x5AC1, 0xBCDE, 0x5AC2, 0xC9A9, - 0x5AC3, 0x8B8F, 0x5AC4, 0x8B90, 0x5AC5, 0x8B91, 0x5AC6, 0x8B92, - 0x5AC7, 0x8B93, 0x5AC8, 0x8B94, 0x5AC9, 0xBCB5, 0x5ACA, 0x8B95, - 0x5ACB, 0x8B96, 0x5ACC, 0xCFD3, 0x5ACD, 0x8B97, 0x5ACE, 0x8B98, - 0x5ACF, 0x8B99, 0x5AD0, 0x8B9A, 0x5AD1, 0x8B9B, 0x5AD2, 0xE6C8, - 0x5AD3, 0x8B9C, 0x5AD4, 0xE6C9, 0x5AD5, 0x8B9D, 0x5AD6, 0xE6CE, - 0x5AD7, 0x8B9E, 0x5AD8, 0xE6D0, 0x5AD9, 0x8B9F, 0x5ADA, 0x8BA0, - 0x5ADB, 0x8BA1, 0x5ADC, 0xE6D1, 0x5ADD, 0x8BA2, 0x5ADE, 0x8BA3, - 0x5ADF, 0x8BA4, 0x5AE0, 0xE6CB, 0x5AE1, 0xB5D5, 0x5AE2, 0x8BA5, - 0x5AE3, 0xE6CC, 0x5AE4, 0x8BA6, 0x5AE5, 0x8BA7, 0x5AE6, 0xE6CF, - 0x5AE7, 0x8BA8, 0x5AE8, 0x8BA9, 0x5AE9, 0xC4DB, 0x5AEA, 0x8BAA, - 0x5AEB, 0xE6C6, 0x5AEC, 0x8BAB, 0x5AED, 0x8BAC, 0x5AEE, 0x8BAD, - 0x5AEF, 0x8BAE, 0x5AF0, 0x8BAF, 0x5AF1, 0xE6CD, 0x5AF2, 0x8BB0, - 0x5AF3, 0x8BB1, 0x5AF4, 0x8BB2, 0x5AF5, 0x8BB3, 0x5AF6, 0x8BB4, - 0x5AF7, 0x8BB5, 0x5AF8, 0x8BB6, 0x5AF9, 0x8BB7, 0x5AFA, 0x8BB8, - 0x5AFB, 0x8BB9, 0x5AFC, 0x8BBA, 0x5AFD, 0x8BBB, 0x5AFE, 0x8BBC, - 0x5AFF, 0x8BBD, 0x5B00, 0x8BBE, 0x5B01, 0x8BBF, 0x5B02, 0x8BC0, - 0x5B03, 0x8BC1, 0x5B04, 0x8BC2, 0x5B05, 0x8BC3, 0x5B06, 0x8BC4, - 0x5B07, 0x8BC5, 0x5B08, 0x8BC6, 0x5B09, 0xE6D2, 0x5B0A, 0x8BC7, - 0x5B0B, 0x8BC8, 0x5B0C, 0x8BC9, 0x5B0D, 0x8BCA, 0x5B0E, 0x8BCB, - 0x5B0F, 0x8BCC, 0x5B10, 0x8BCD, 0x5B11, 0x8BCE, 0x5B12, 0x8BCF, - 0x5B13, 0x8BD0, 0x5B14, 0x8BD1, 0x5B15, 0x8BD2, 0x5B16, 0xE6D4, - 0x5B17, 0xE6D3, 0x5B18, 0x8BD3, 0x5B19, 0x8BD4, 0x5B1A, 0x8BD5, - 0x5B1B, 0x8BD6, 0x5B1C, 0x8BD7, 0x5B1D, 0x8BD8, 0x5B1E, 0x8BD9, - 0x5B1F, 0x8BDA, 0x5B20, 0x8BDB, 0x5B21, 0x8BDC, 0x5B22, 0x8BDD, - 0x5B23, 0x8BDE, 0x5B24, 0x8BDF, 0x5B25, 0x8BE0, 0x5B26, 0x8BE1, - 0x5B27, 0x8BE2, 0x5B28, 0x8BE3, 0x5B29, 0x8BE4, 0x5B2A, 0x8BE5, - 0x5B2B, 0x8BE6, 0x5B2C, 0x8BE7, 0x5B2D, 0x8BE8, 0x5B2E, 0x8BE9, - 0x5B2F, 0x8BEA, 0x5B30, 0x8BEB, 0x5B31, 0x8BEC, 0x5B32, 0xE6D5, - 0x5B33, 0x8BED, 0x5B34, 0xD9F8, 0x5B35, 0x8BEE, 0x5B36, 0x8BEF, - 0x5B37, 0xE6D6, 0x5B38, 0x8BF0, 0x5B39, 0x8BF1, 0x5B3A, 0x8BF2, - 0x5B3B, 0x8BF3, 0x5B3C, 0x8BF4, 0x5B3D, 0x8BF5, 0x5B3E, 0x8BF6, - 0x5B3F, 0x8BF7, 0x5B40, 0xE6D7, 0x5B41, 0x8BF8, 0x5B42, 0x8BF9, - 0x5B43, 0x8BFA, 0x5B44, 0x8BFB, 0x5B45, 0x8BFC, 0x5B46, 0x8BFD, - 0x5B47, 0x8BFE, 0x5B48, 0x8C40, 0x5B49, 0x8C41, 0x5B4A, 0x8C42, - 0x5B4B, 0x8C43, 0x5B4C, 0x8C44, 0x5B4D, 0x8C45, 0x5B4E, 0x8C46, - 0x5B4F, 0x8C47, 0x5B50, 0xD7D3, 0x5B51, 0xE6DD, 0x5B52, 0x8C48, - 0x5B53, 0xE6DE, 0x5B54, 0xBFD7, 0x5B55, 0xD4D0, 0x5B56, 0x8C49, - 0x5B57, 0xD7D6, 0x5B58, 0xB4E6, 0x5B59, 0xCBEF, 0x5B5A, 0xE6DA, - 0x5B5B, 0xD8C3, 0x5B5C, 0xD7CE, 0x5B5D, 0xD0A2, 0x5B5E, 0x8C4A, - 0x5B5F, 0xC3CF, 0x5B60, 0x8C4B, 0x5B61, 0x8C4C, 0x5B62, 0xE6DF, - 0x5B63, 0xBCBE, 0x5B64, 0xB9C2, 0x5B65, 0xE6DB, 0x5B66, 0xD1A7, - 0x5B67, 0x8C4D, 0x5B68, 0x8C4E, 0x5B69, 0xBAA2, 0x5B6A, 0xC2CF, - 0x5B6B, 0x8C4F, 0x5B6C, 0xD8AB, 0x5B6D, 0x8C50, 0x5B6E, 0x8C51, - 0x5B6F, 0x8C52, 0x5B70, 0xCAEB, 0x5B71, 0xE5EE, 0x5B72, 0x8C53, - 0x5B73, 0xE6DC, 0x5B74, 0x8C54, 0x5B75, 0xB7F5, 0x5B76, 0x8C55, - 0x5B77, 0x8C56, 0x5B78, 0x8C57, 0x5B79, 0x8C58, 0x5B7A, 0xC8E6, - 0x5B7B, 0x8C59, 0x5B7C, 0x8C5A, 0x5B7D, 0xC4F5, 0x5B7E, 0x8C5B, - 0x5B7F, 0x8C5C, 0x5B80, 0xE5B2, 0x5B81, 0xC4FE, 0x5B82, 0x8C5D, - 0x5B83, 0xCBFC, 0x5B84, 0xE5B3, 0x5B85, 0xD5AC, 0x5B86, 0x8C5E, - 0x5B87, 0xD3EE, 0x5B88, 0xCAD8, 0x5B89, 0xB0B2, 0x5B8A, 0x8C5F, - 0x5B8B, 0xCBCE, 0x5B8C, 0xCDEA, 0x5B8D, 0x8C60, 0x5B8E, 0x8C61, - 0x5B8F, 0xBAEA, 0x5B90, 0x8C62, 0x5B91, 0x8C63, 0x5B92, 0x8C64, - 0x5B93, 0xE5B5, 0x5B94, 0x8C65, 0x5B95, 0xE5B4, 0x5B96, 0x8C66, - 0x5B97, 0xD7DA, 0x5B98, 0xB9D9, 0x5B99, 0xD6E6, 0x5B9A, 0xB6A8, - 0x5B9B, 0xCDF0, 0x5B9C, 0xD2CB, 0x5B9D, 0xB1A6, 0x5B9E, 0xCAB5, - 0x5B9F, 0x8C67, 0x5BA0, 0xB3E8, 0x5BA1, 0xC9F3, 0x5BA2, 0xBFCD, - 0x5BA3, 0xD0FB, 0x5BA4, 0xCAD2, 0x5BA5, 0xE5B6, 0x5BA6, 0xBBC2, - 0x5BA7, 0x8C68, 0x5BA8, 0x8C69, 0x5BA9, 0x8C6A, 0x5BAA, 0xCFDC, - 0x5BAB, 0xB9AC, 0x5BAC, 0x8C6B, 0x5BAD, 0x8C6C, 0x5BAE, 0x8C6D, - 0x5BAF, 0x8C6E, 0x5BB0, 0xD4D7, 0x5BB1, 0x8C6F, 0x5BB2, 0x8C70, - 0x5BB3, 0xBAA6, 0x5BB4, 0xD1E7, 0x5BB5, 0xCFFC, 0x5BB6, 0xBCD2, - 0x5BB7, 0x8C71, 0x5BB8, 0xE5B7, 0x5BB9, 0xC8DD, 0x5BBA, 0x8C72, - 0x5BBB, 0x8C73, 0x5BBC, 0x8C74, 0x5BBD, 0xBFED, 0x5BBE, 0xB1F6, - 0x5BBF, 0xCBDE, 0x5BC0, 0x8C75, 0x5BC1, 0x8C76, 0x5BC2, 0xBCC5, - 0x5BC3, 0x8C77, 0x5BC4, 0xBCC4, 0x5BC5, 0xD2FA, 0x5BC6, 0xC3DC, - 0x5BC7, 0xBFDC, 0x5BC8, 0x8C78, 0x5BC9, 0x8C79, 0x5BCA, 0x8C7A, - 0x5BCB, 0x8C7B, 0x5BCC, 0xB8BB, 0x5BCD, 0x8C7C, 0x5BCE, 0x8C7D, - 0x5BCF, 0x8C7E, 0x5BD0, 0xC3C2, 0x5BD1, 0x8C80, 0x5BD2, 0xBAAE, - 0x5BD3, 0xD4A2, 0x5BD4, 0x8C81, 0x5BD5, 0x8C82, 0x5BD6, 0x8C83, - 0x5BD7, 0x8C84, 0x5BD8, 0x8C85, 0x5BD9, 0x8C86, 0x5BDA, 0x8C87, - 0x5BDB, 0x8C88, 0x5BDC, 0x8C89, 0x5BDD, 0xC7DE, 0x5BDE, 0xC4AF, - 0x5BDF, 0xB2EC, 0x5BE0, 0x8C8A, 0x5BE1, 0xB9D1, 0x5BE2, 0x8C8B, - 0x5BE3, 0x8C8C, 0x5BE4, 0xE5BB, 0x5BE5, 0xC1C8, 0x5BE6, 0x8C8D, - 0x5BE7, 0x8C8E, 0x5BE8, 0xD5AF, 0x5BE9, 0x8C8F, 0x5BEA, 0x8C90, - 0x5BEB, 0x8C91, 0x5BEC, 0x8C92, 0x5BED, 0x8C93, 0x5BEE, 0xE5BC, - 0x5BEF, 0x8C94, 0x5BF0, 0xE5BE, 0x5BF1, 0x8C95, 0x5BF2, 0x8C96, - 0x5BF3, 0x8C97, 0x5BF4, 0x8C98, 0x5BF5, 0x8C99, 0x5BF6, 0x8C9A, - 0x5BF7, 0x8C9B, 0x5BF8, 0xB4E7, 0x5BF9, 0xB6D4, 0x5BFA, 0xCBC2, - 0x5BFB, 0xD1B0, 0x5BFC, 0xB5BC, 0x5BFD, 0x8C9C, 0x5BFE, 0x8C9D, - 0x5BFF, 0xCAD9, 0x5C00, 0x8C9E, 0x5C01, 0xB7E2, 0x5C02, 0x8C9F, - 0x5C03, 0x8CA0, 0x5C04, 0xC9E4, 0x5C05, 0x8CA1, 0x5C06, 0xBDAB, - 0x5C07, 0x8CA2, 0x5C08, 0x8CA3, 0x5C09, 0xCEBE, 0x5C0A, 0xD7F0, - 0x5C0B, 0x8CA4, 0x5C0C, 0x8CA5, 0x5C0D, 0x8CA6, 0x5C0E, 0x8CA7, - 0x5C0F, 0xD0A1, 0x5C10, 0x8CA8, 0x5C11, 0xC9D9, 0x5C12, 0x8CA9, - 0x5C13, 0x8CAA, 0x5C14, 0xB6FB, 0x5C15, 0xE6D8, 0x5C16, 0xBCE2, - 0x5C17, 0x8CAB, 0x5C18, 0xB3BE, 0x5C19, 0x8CAC, 0x5C1A, 0xC9D0, - 0x5C1B, 0x8CAD, 0x5C1C, 0xE6D9, 0x5C1D, 0xB3A2, 0x5C1E, 0x8CAE, - 0x5C1F, 0x8CAF, 0x5C20, 0x8CB0, 0x5C21, 0x8CB1, 0x5C22, 0xDECC, - 0x5C23, 0x8CB2, 0x5C24, 0xD3C8, 0x5C25, 0xDECD, 0x5C26, 0x8CB3, - 0x5C27, 0xD2A2, 0x5C28, 0x8CB4, 0x5C29, 0x8CB5, 0x5C2A, 0x8CB6, - 0x5C2B, 0x8CB7, 0x5C2C, 0xDECE, 0x5C2D, 0x8CB8, 0x5C2E, 0x8CB9, - 0x5C2F, 0x8CBA, 0x5C30, 0x8CBB, 0x5C31, 0xBECD, 0x5C32, 0x8CBC, - 0x5C33, 0x8CBD, 0x5C34, 0xDECF, 0x5C35, 0x8CBE, 0x5C36, 0x8CBF, - 0x5C37, 0x8CC0, 0x5C38, 0xCAAC, 0x5C39, 0xD2FC, 0x5C3A, 0xB3DF, - 0x5C3B, 0xE5EA, 0x5C3C, 0xC4E1, 0x5C3D, 0xBEA1, 0x5C3E, 0xCEB2, - 0x5C3F, 0xC4F2, 0x5C40, 0xBED6, 0x5C41, 0xC6A8, 0x5C42, 0xB2E3, - 0x5C43, 0x8CC1, 0x5C44, 0x8CC2, 0x5C45, 0xBED3, 0x5C46, 0x8CC3, - 0x5C47, 0x8CC4, 0x5C48, 0xC7FC, 0x5C49, 0xCCEB, 0x5C4A, 0xBDEC, - 0x5C4B, 0xCEDD, 0x5C4C, 0x8CC5, 0x5C4D, 0x8CC6, 0x5C4E, 0xCABA, - 0x5C4F, 0xC6C1, 0x5C50, 0xE5EC, 0x5C51, 0xD0BC, 0x5C52, 0x8CC7, - 0x5C53, 0x8CC8, 0x5C54, 0x8CC9, 0x5C55, 0xD5B9, 0x5C56, 0x8CCA, - 0x5C57, 0x8CCB, 0x5C58, 0x8CCC, 0x5C59, 0xE5ED, 0x5C5A, 0x8CCD, - 0x5C5B, 0x8CCE, 0x5C5C, 0x8CCF, 0x5C5D, 0x8CD0, 0x5C5E, 0xCAF4, - 0x5C5F, 0x8CD1, 0x5C60, 0xCDC0, 0x5C61, 0xC2C5, 0x5C62, 0x8CD2, - 0x5C63, 0xE5EF, 0x5C64, 0x8CD3, 0x5C65, 0xC2C4, 0x5C66, 0xE5F0, - 0x5C67, 0x8CD4, 0x5C68, 0x8CD5, 0x5C69, 0x8CD6, 0x5C6A, 0x8CD7, - 0x5C6B, 0x8CD8, 0x5C6C, 0x8CD9, 0x5C6D, 0x8CDA, 0x5C6E, 0xE5F8, - 0x5C6F, 0xCDCD, 0x5C70, 0x8CDB, 0x5C71, 0xC9BD, 0x5C72, 0x8CDC, - 0x5C73, 0x8CDD, 0x5C74, 0x8CDE, 0x5C75, 0x8CDF, 0x5C76, 0x8CE0, - 0x5C77, 0x8CE1, 0x5C78, 0x8CE2, 0x5C79, 0xD2D9, 0x5C7A, 0xE1A8, - 0x5C7B, 0x8CE3, 0x5C7C, 0x8CE4, 0x5C7D, 0x8CE5, 0x5C7E, 0x8CE6, - 0x5C7F, 0xD3EC, 0x5C80, 0x8CE7, 0x5C81, 0xCBEA, 0x5C82, 0xC6F1, - 0x5C83, 0x8CE8, 0x5C84, 0x8CE9, 0x5C85, 0x8CEA, 0x5C86, 0x8CEB, - 0x5C87, 0x8CEC, 0x5C88, 0xE1AC, 0x5C89, 0x8CED, 0x5C8A, 0x8CEE, - 0x5C8B, 0x8CEF, 0x5C8C, 0xE1A7, 0x5C8D, 0xE1A9, 0x5C8E, 0x8CF0, - 0x5C8F, 0x8CF1, 0x5C90, 0xE1AA, 0x5C91, 0xE1AF, 0x5C92, 0x8CF2, - 0x5C93, 0x8CF3, 0x5C94, 0xB2ED, 0x5C95, 0x8CF4, 0x5C96, 0xE1AB, - 0x5C97, 0xB8DA, 0x5C98, 0xE1AD, 0x5C99, 0xE1AE, 0x5C9A, 0xE1B0, - 0x5C9B, 0xB5BA, 0x5C9C, 0xE1B1, 0x5C9D, 0x8CF5, 0x5C9E, 0x8CF6, - 0x5C9F, 0x8CF7, 0x5CA0, 0x8CF8, 0x5CA1, 0x8CF9, 0x5CA2, 0xE1B3, - 0x5CA3, 0xE1B8, 0x5CA4, 0x8CFA, 0x5CA5, 0x8CFB, 0x5CA6, 0x8CFC, - 0x5CA7, 0x8CFD, 0x5CA8, 0x8CFE, 0x5CA9, 0xD1D2, 0x5CAA, 0x8D40, - 0x5CAB, 0xE1B6, 0x5CAC, 0xE1B5, 0x5CAD, 0xC1EB, 0x5CAE, 0x8D41, - 0x5CAF, 0x8D42, 0x5CB0, 0x8D43, 0x5CB1, 0xE1B7, 0x5CB2, 0x8D44, - 0x5CB3, 0xD4C0, 0x5CB4, 0x8D45, 0x5CB5, 0xE1B2, 0x5CB6, 0x8D46, - 0x5CB7, 0xE1BA, 0x5CB8, 0xB0B6, 0x5CB9, 0x8D47, 0x5CBA, 0x8D48, - 0x5CBB, 0x8D49, 0x5CBC, 0x8D4A, 0x5CBD, 0xE1B4, 0x5CBE, 0x8D4B, - 0x5CBF, 0xBFF9, 0x5CC0, 0x8D4C, 0x5CC1, 0xE1B9, 0x5CC2, 0x8D4D, - 0x5CC3, 0x8D4E, 0x5CC4, 0xE1BB, 0x5CC5, 0x8D4F, 0x5CC6, 0x8D50, - 0x5CC7, 0x8D51, 0x5CC8, 0x8D52, 0x5CC9, 0x8D53, 0x5CCA, 0x8D54, - 0x5CCB, 0xE1BE, 0x5CCC, 0x8D55, 0x5CCD, 0x8D56, 0x5CCE, 0x8D57, - 0x5CCF, 0x8D58, 0x5CD0, 0x8D59, 0x5CD1, 0x8D5A, 0x5CD2, 0xE1BC, - 0x5CD3, 0x8D5B, 0x5CD4, 0x8D5C, 0x5CD5, 0x8D5D, 0x5CD6, 0x8D5E, - 0x5CD7, 0x8D5F, 0x5CD8, 0x8D60, 0x5CD9, 0xD6C5, 0x5CDA, 0x8D61, - 0x5CDB, 0x8D62, 0x5CDC, 0x8D63, 0x5CDD, 0x8D64, 0x5CDE, 0x8D65, - 0x5CDF, 0x8D66, 0x5CE0, 0x8D67, 0x5CE1, 0xCFBF, 0x5CE2, 0x8D68, - 0x5CE3, 0x8D69, 0x5CE4, 0xE1BD, 0x5CE5, 0xE1BF, 0x5CE6, 0xC2CD, - 0x5CE7, 0x8D6A, 0x5CE8, 0xB6EB, 0x5CE9, 0x8D6B, 0x5CEA, 0xD3F8, - 0x5CEB, 0x8D6C, 0x5CEC, 0x8D6D, 0x5CED, 0xC7CD, 0x5CEE, 0x8D6E, - 0x5CEF, 0x8D6F, 0x5CF0, 0xB7E5, 0x5CF1, 0x8D70, 0x5CF2, 0x8D71, - 0x5CF3, 0x8D72, 0x5CF4, 0x8D73, 0x5CF5, 0x8D74, 0x5CF6, 0x8D75, - 0x5CF7, 0x8D76, 0x5CF8, 0x8D77, 0x5CF9, 0x8D78, 0x5CFA, 0x8D79, - 0x5CFB, 0xBEFE, 0x5CFC, 0x8D7A, 0x5CFD, 0x8D7B, 0x5CFE, 0x8D7C, - 0x5CFF, 0x8D7D, 0x5D00, 0x8D7E, 0x5D01, 0x8D80, 0x5D02, 0xE1C0, - 0x5D03, 0xE1C1, 0x5D04, 0x8D81, 0x5D05, 0x8D82, 0x5D06, 0xE1C7, - 0x5D07, 0xB3E7, 0x5D08, 0x8D83, 0x5D09, 0x8D84, 0x5D0A, 0x8D85, - 0x5D0B, 0x8D86, 0x5D0C, 0x8D87, 0x5D0D, 0x8D88, 0x5D0E, 0xC6E9, - 0x5D0F, 0x8D89, 0x5D10, 0x8D8A, 0x5D11, 0x8D8B, 0x5D12, 0x8D8C, - 0x5D13, 0x8D8D, 0x5D14, 0xB4DE, 0x5D15, 0x8D8E, 0x5D16, 0xD1C2, - 0x5D17, 0x8D8F, 0x5D18, 0x8D90, 0x5D19, 0x8D91, 0x5D1A, 0x8D92, - 0x5D1B, 0xE1C8, 0x5D1C, 0x8D93, 0x5D1D, 0x8D94, 0x5D1E, 0xE1C6, - 0x5D1F, 0x8D95, 0x5D20, 0x8D96, 0x5D21, 0x8D97, 0x5D22, 0x8D98, - 0x5D23, 0x8D99, 0x5D24, 0xE1C5, 0x5D25, 0x8D9A, 0x5D26, 0xE1C3, - 0x5D27, 0xE1C2, 0x5D28, 0x8D9B, 0x5D29, 0xB1C0, 0x5D2A, 0x8D9C, - 0x5D2B, 0x8D9D, 0x5D2C, 0x8D9E, 0x5D2D, 0xD5B8, 0x5D2E, 0xE1C4, - 0x5D2F, 0x8D9F, 0x5D30, 0x8DA0, 0x5D31, 0x8DA1, 0x5D32, 0x8DA2, - 0x5D33, 0x8DA3, 0x5D34, 0xE1CB, 0x5D35, 0x8DA4, 0x5D36, 0x8DA5, - 0x5D37, 0x8DA6, 0x5D38, 0x8DA7, 0x5D39, 0x8DA8, 0x5D3A, 0x8DA9, - 0x5D3B, 0x8DAA, 0x5D3C, 0x8DAB, 0x5D3D, 0xE1CC, 0x5D3E, 0xE1CA, - 0x5D3F, 0x8DAC, 0x5D40, 0x8DAD, 0x5D41, 0x8DAE, 0x5D42, 0x8DAF, - 0x5D43, 0x8DB0, 0x5D44, 0x8DB1, 0x5D45, 0x8DB2, 0x5D46, 0x8DB3, - 0x5D47, 0xEFFA, 0x5D48, 0x8DB4, 0x5D49, 0x8DB5, 0x5D4A, 0xE1D3, - 0x5D4B, 0xE1D2, 0x5D4C, 0xC7B6, 0x5D4D, 0x8DB6, 0x5D4E, 0x8DB7, - 0x5D4F, 0x8DB8, 0x5D50, 0x8DB9, 0x5D51, 0x8DBA, 0x5D52, 0x8DBB, - 0x5D53, 0x8DBC, 0x5D54, 0x8DBD, 0x5D55, 0x8DBE, 0x5D56, 0x8DBF, - 0x5D57, 0x8DC0, 0x5D58, 0xE1C9, 0x5D59, 0x8DC1, 0x5D5A, 0x8DC2, - 0x5D5B, 0xE1CE, 0x5D5C, 0x8DC3, 0x5D5D, 0xE1D0, 0x5D5E, 0x8DC4, - 0x5D5F, 0x8DC5, 0x5D60, 0x8DC6, 0x5D61, 0x8DC7, 0x5D62, 0x8DC8, - 0x5D63, 0x8DC9, 0x5D64, 0x8DCA, 0x5D65, 0x8DCB, 0x5D66, 0x8DCC, - 0x5D67, 0x8DCD, 0x5D68, 0x8DCE, 0x5D69, 0xE1D4, 0x5D6A, 0x8DCF, - 0x5D6B, 0xE1D1, 0x5D6C, 0xE1CD, 0x5D6D, 0x8DD0, 0x5D6E, 0x8DD1, - 0x5D6F, 0xE1CF, 0x5D70, 0x8DD2, 0x5D71, 0x8DD3, 0x5D72, 0x8DD4, - 0x5D73, 0x8DD5, 0x5D74, 0xE1D5, 0x5D75, 0x8DD6, 0x5D76, 0x8DD7, - 0x5D77, 0x8DD8, 0x5D78, 0x8DD9, 0x5D79, 0x8DDA, 0x5D7A, 0x8DDB, - 0x5D7B, 0x8DDC, 0x5D7C, 0x8DDD, 0x5D7D, 0x8DDE, 0x5D7E, 0x8DDF, - 0x5D7F, 0x8DE0, 0x5D80, 0x8DE1, 0x5D81, 0x8DE2, 0x5D82, 0xE1D6, - 0x5D83, 0x8DE3, 0x5D84, 0x8DE4, 0x5D85, 0x8DE5, 0x5D86, 0x8DE6, - 0x5D87, 0x8DE7, 0x5D88, 0x8DE8, 0x5D89, 0x8DE9, 0x5D8A, 0x8DEA, - 0x5D8B, 0x8DEB, 0x5D8C, 0x8DEC, 0x5D8D, 0x8DED, 0x5D8E, 0x8DEE, - 0x5D8F, 0x8DEF, 0x5D90, 0x8DF0, 0x5D91, 0x8DF1, 0x5D92, 0x8DF2, - 0x5D93, 0x8DF3, 0x5D94, 0x8DF4, 0x5D95, 0x8DF5, 0x5D96, 0x8DF6, - 0x5D97, 0x8DF7, 0x5D98, 0x8DF8, 0x5D99, 0xE1D7, 0x5D9A, 0x8DF9, - 0x5D9B, 0x8DFA, 0x5D9C, 0x8DFB, 0x5D9D, 0xE1D8, 0x5D9E, 0x8DFC, - 0x5D9F, 0x8DFD, 0x5DA0, 0x8DFE, 0x5DA1, 0x8E40, 0x5DA2, 0x8E41, - 0x5DA3, 0x8E42, 0x5DA4, 0x8E43, 0x5DA5, 0x8E44, 0x5DA6, 0x8E45, - 0x5DA7, 0x8E46, 0x5DA8, 0x8E47, 0x5DA9, 0x8E48, 0x5DAA, 0x8E49, - 0x5DAB, 0x8E4A, 0x5DAC, 0x8E4B, 0x5DAD, 0x8E4C, 0x5DAE, 0x8E4D, - 0x5DAF, 0x8E4E, 0x5DB0, 0x8E4F, 0x5DB1, 0x8E50, 0x5DB2, 0x8E51, - 0x5DB3, 0x8E52, 0x5DB4, 0x8E53, 0x5DB5, 0x8E54, 0x5DB6, 0x8E55, - 0x5DB7, 0xE1DA, 0x5DB8, 0x8E56, 0x5DB9, 0x8E57, 0x5DBA, 0x8E58, - 0x5DBB, 0x8E59, 0x5DBC, 0x8E5A, 0x5DBD, 0x8E5B, 0x5DBE, 0x8E5C, - 0x5DBF, 0x8E5D, 0x5DC0, 0x8E5E, 0x5DC1, 0x8E5F, 0x5DC2, 0x8E60, - 0x5DC3, 0x8E61, 0x5DC4, 0x8E62, 0x5DC5, 0xE1DB, 0x5DC6, 0x8E63, - 0x5DC7, 0x8E64, 0x5DC8, 0x8E65, 0x5DC9, 0x8E66, 0x5DCA, 0x8E67, - 0x5DCB, 0x8E68, 0x5DCC, 0x8E69, 0x5DCD, 0xCEA1, 0x5DCE, 0x8E6A, - 0x5DCF, 0x8E6B, 0x5DD0, 0x8E6C, 0x5DD1, 0x8E6D, 0x5DD2, 0x8E6E, - 0x5DD3, 0x8E6F, 0x5DD4, 0x8E70, 0x5DD5, 0x8E71, 0x5DD6, 0x8E72, - 0x5DD7, 0x8E73, 0x5DD8, 0x8E74, 0x5DD9, 0x8E75, 0x5DDA, 0x8E76, - 0x5DDB, 0xE7DD, 0x5DDC, 0x8E77, 0x5DDD, 0xB4A8, 0x5DDE, 0xD6DD, - 0x5DDF, 0x8E78, 0x5DE0, 0x8E79, 0x5DE1, 0xD1B2, 0x5DE2, 0xB3B2, - 0x5DE3, 0x8E7A, 0x5DE4, 0x8E7B, 0x5DE5, 0xB9A4, 0x5DE6, 0xD7F3, - 0x5DE7, 0xC7C9, 0x5DE8, 0xBEDE, 0x5DE9, 0xB9AE, 0x5DEA, 0x8E7C, - 0x5DEB, 0xCED7, 0x5DEC, 0x8E7D, 0x5DED, 0x8E7E, 0x5DEE, 0xB2EE, - 0x5DEF, 0xDBCF, 0x5DF0, 0x8E80, 0x5DF1, 0xBCBA, 0x5DF2, 0xD2D1, - 0x5DF3, 0xCBC8, 0x5DF4, 0xB0CD, 0x5DF5, 0x8E81, 0x5DF6, 0x8E82, - 0x5DF7, 0xCFEF, 0x5DF8, 0x8E83, 0x5DF9, 0x8E84, 0x5DFA, 0x8E85, - 0x5DFB, 0x8E86, 0x5DFC, 0x8E87, 0x5DFD, 0xD9E3, 0x5DFE, 0xBDED, - 0x5DFF, 0x8E88, 0x5E00, 0x8E89, 0x5E01, 0xB1D2, 0x5E02, 0xCAD0, - 0x5E03, 0xB2BC, 0x5E04, 0x8E8A, 0x5E05, 0xCBA7, 0x5E06, 0xB7AB, - 0x5E07, 0x8E8B, 0x5E08, 0xCAA6, 0x5E09, 0x8E8C, 0x5E0A, 0x8E8D, - 0x5E0B, 0x8E8E, 0x5E0C, 0xCFA3, 0x5E0D, 0x8E8F, 0x5E0E, 0x8E90, - 0x5E0F, 0xE0F8, 0x5E10, 0xD5CA, 0x5E11, 0xE0FB, 0x5E12, 0x8E91, - 0x5E13, 0x8E92, 0x5E14, 0xE0FA, 0x5E15, 0xC5C1, 0x5E16, 0xCCFB, - 0x5E17, 0x8E93, 0x5E18, 0xC1B1, 0x5E19, 0xE0F9, 0x5E1A, 0xD6E3, - 0x5E1B, 0xB2AF, 0x5E1C, 0xD6C4, 0x5E1D, 0xB5DB, 0x5E1E, 0x8E94, - 0x5E1F, 0x8E95, 0x5E20, 0x8E96, 0x5E21, 0x8E97, 0x5E22, 0x8E98, - 0x5E23, 0x8E99, 0x5E24, 0x8E9A, 0x5E25, 0x8E9B, 0x5E26, 0xB4F8, - 0x5E27, 0xD6A1, 0x5E28, 0x8E9C, 0x5E29, 0x8E9D, 0x5E2A, 0x8E9E, - 0x5E2B, 0x8E9F, 0x5E2C, 0x8EA0, 0x5E2D, 0xCFAF, 0x5E2E, 0xB0EF, - 0x5E2F, 0x8EA1, 0x5E30, 0x8EA2, 0x5E31, 0xE0FC, 0x5E32, 0x8EA3, - 0x5E33, 0x8EA4, 0x5E34, 0x8EA5, 0x5E35, 0x8EA6, 0x5E36, 0x8EA7, - 0x5E37, 0xE1A1, 0x5E38, 0xB3A3, 0x5E39, 0x8EA8, 0x5E3A, 0x8EA9, - 0x5E3B, 0xE0FD, 0x5E3C, 0xE0FE, 0x5E3D, 0xC3B1, 0x5E3E, 0x8EAA, - 0x5E3F, 0x8EAB, 0x5E40, 0x8EAC, 0x5E41, 0x8EAD, 0x5E42, 0xC3DD, - 0x5E43, 0x8EAE, 0x5E44, 0xE1A2, 0x5E45, 0xB7F9, 0x5E46, 0x8EAF, - 0x5E47, 0x8EB0, 0x5E48, 0x8EB1, 0x5E49, 0x8EB2, 0x5E4A, 0x8EB3, - 0x5E4B, 0x8EB4, 0x5E4C, 0xBBCF, 0x5E4D, 0x8EB5, 0x5E4E, 0x8EB6, - 0x5E4F, 0x8EB7, 0x5E50, 0x8EB8, 0x5E51, 0x8EB9, 0x5E52, 0x8EBA, - 0x5E53, 0x8EBB, 0x5E54, 0xE1A3, 0x5E55, 0xC4BB, 0x5E56, 0x8EBC, - 0x5E57, 0x8EBD, 0x5E58, 0x8EBE, 0x5E59, 0x8EBF, 0x5E5A, 0x8EC0, - 0x5E5B, 0xE1A4, 0x5E5C, 0x8EC1, 0x5E5D, 0x8EC2, 0x5E5E, 0xE1A5, - 0x5E5F, 0x8EC3, 0x5E60, 0x8EC4, 0x5E61, 0xE1A6, 0x5E62, 0xB4B1, - 0x5E63, 0x8EC5, 0x5E64, 0x8EC6, 0x5E65, 0x8EC7, 0x5E66, 0x8EC8, - 0x5E67, 0x8EC9, 0x5E68, 0x8ECA, 0x5E69, 0x8ECB, 0x5E6A, 0x8ECC, - 0x5E6B, 0x8ECD, 0x5E6C, 0x8ECE, 0x5E6D, 0x8ECF, 0x5E6E, 0x8ED0, - 0x5E6F, 0x8ED1, 0x5E70, 0x8ED2, 0x5E71, 0x8ED3, 0x5E72, 0xB8C9, - 0x5E73, 0xC6BD, 0x5E74, 0xC4EA, 0x5E75, 0x8ED4, 0x5E76, 0xB2A2, - 0x5E77, 0x8ED5, 0x5E78, 0xD0D2, 0x5E79, 0x8ED6, 0x5E7A, 0xE7DB, - 0x5E7B, 0xBBC3, 0x5E7C, 0xD3D7, 0x5E7D, 0xD3C4, 0x5E7E, 0x8ED7, - 0x5E7F, 0xB9E3, 0x5E80, 0xE2CF, 0x5E81, 0x8ED8, 0x5E82, 0x8ED9, - 0x5E83, 0x8EDA, 0x5E84, 0xD7AF, 0x5E85, 0x8EDB, 0x5E86, 0xC7EC, - 0x5E87, 0xB1D3, 0x5E88, 0x8EDC, 0x5E89, 0x8EDD, 0x5E8A, 0xB4B2, - 0x5E8B, 0xE2D1, 0x5E8C, 0x8EDE, 0x5E8D, 0x8EDF, 0x5E8E, 0x8EE0, - 0x5E8F, 0xD0F2, 0x5E90, 0xC2AE, 0x5E91, 0xE2D0, 0x5E92, 0x8EE1, - 0x5E93, 0xBFE2, 0x5E94, 0xD3A6, 0x5E95, 0xB5D7, 0x5E96, 0xE2D2, - 0x5E97, 0xB5EA, 0x5E98, 0x8EE2, 0x5E99, 0xC3ED, 0x5E9A, 0xB8FD, - 0x5E9B, 0x8EE3, 0x5E9C, 0xB8AE, 0x5E9D, 0x8EE4, 0x5E9E, 0xC5D3, - 0x5E9F, 0xB7CF, 0x5EA0, 0xE2D4, 0x5EA1, 0x8EE5, 0x5EA2, 0x8EE6, - 0x5EA3, 0x8EE7, 0x5EA4, 0x8EE8, 0x5EA5, 0xE2D3, 0x5EA6, 0xB6C8, - 0x5EA7, 0xD7F9, 0x5EA8, 0x8EE9, 0x5EA9, 0x8EEA, 0x5EAA, 0x8EEB, - 0x5EAB, 0x8EEC, 0x5EAC, 0x8EED, 0x5EAD, 0xCDA5, 0x5EAE, 0x8EEE, - 0x5EAF, 0x8EEF, 0x5EB0, 0x8EF0, 0x5EB1, 0x8EF1, 0x5EB2, 0x8EF2, - 0x5EB3, 0xE2D8, 0x5EB4, 0x8EF3, 0x5EB5, 0xE2D6, 0x5EB6, 0xCAFC, - 0x5EB7, 0xBFB5, 0x5EB8, 0xD3B9, 0x5EB9, 0xE2D5, 0x5EBA, 0x8EF4, - 0x5EBB, 0x8EF5, 0x5EBC, 0x8EF6, 0x5EBD, 0x8EF7, 0x5EBE, 0xE2D7, - 0x5EBF, 0x8EF8, 0x5EC0, 0x8EF9, 0x5EC1, 0x8EFA, 0x5EC2, 0x8EFB, - 0x5EC3, 0x8EFC, 0x5EC4, 0x8EFD, 0x5EC5, 0x8EFE, 0x5EC6, 0x8F40, - 0x5EC7, 0x8F41, 0x5EC8, 0x8F42, 0x5EC9, 0xC1AE, 0x5ECA, 0xC0C8, - 0x5ECB, 0x8F43, 0x5ECC, 0x8F44, 0x5ECD, 0x8F45, 0x5ECE, 0x8F46, - 0x5ECF, 0x8F47, 0x5ED0, 0x8F48, 0x5ED1, 0xE2DB, 0x5ED2, 0xE2DA, - 0x5ED3, 0xC0AA, 0x5ED4, 0x8F49, 0x5ED5, 0x8F4A, 0x5ED6, 0xC1CE, - 0x5ED7, 0x8F4B, 0x5ED8, 0x8F4C, 0x5ED9, 0x8F4D, 0x5EDA, 0x8F4E, - 0x5EDB, 0xE2DC, 0x5EDC, 0x8F4F, 0x5EDD, 0x8F50, 0x5EDE, 0x8F51, - 0x5EDF, 0x8F52, 0x5EE0, 0x8F53, 0x5EE1, 0x8F54, 0x5EE2, 0x8F55, - 0x5EE3, 0x8F56, 0x5EE4, 0x8F57, 0x5EE5, 0x8F58, 0x5EE6, 0x8F59, - 0x5EE7, 0x8F5A, 0x5EE8, 0xE2DD, 0x5EE9, 0x8F5B, 0x5EEA, 0xE2DE, - 0x5EEB, 0x8F5C, 0x5EEC, 0x8F5D, 0x5EED, 0x8F5E, 0x5EEE, 0x8F5F, - 0x5EEF, 0x8F60, 0x5EF0, 0x8F61, 0x5EF1, 0x8F62, 0x5EF2, 0x8F63, - 0x5EF3, 0x8F64, 0x5EF4, 0xDBC8, 0x5EF5, 0x8F65, 0x5EF6, 0xD1D3, - 0x5EF7, 0xCDA2, 0x5EF8, 0x8F66, 0x5EF9, 0x8F67, 0x5EFA, 0xBDA8, - 0x5EFB, 0x8F68, 0x5EFC, 0x8F69, 0x5EFD, 0x8F6A, 0x5EFE, 0xDEC3, - 0x5EFF, 0xD8A5, 0x5F00, 0xBFAA, 0x5F01, 0xDBCD, 0x5F02, 0xD2EC, - 0x5F03, 0xC6FA, 0x5F04, 0xC5AA, 0x5F05, 0x8F6B, 0x5F06, 0x8F6C, - 0x5F07, 0x8F6D, 0x5F08, 0xDEC4, 0x5F09, 0x8F6E, 0x5F0A, 0xB1D7, - 0x5F0B, 0xDFAE, 0x5F0C, 0x8F6F, 0x5F0D, 0x8F70, 0x5F0E, 0x8F71, - 0x5F0F, 0xCABD, 0x5F10, 0x8F72, 0x5F11, 0xDFB1, 0x5F12, 0x8F73, - 0x5F13, 0xB9AD, 0x5F14, 0x8F74, 0x5F15, 0xD2FD, 0x5F16, 0x8F75, - 0x5F17, 0xB8A5, 0x5F18, 0xBAEB, 0x5F19, 0x8F76, 0x5F1A, 0x8F77, - 0x5F1B, 0xB3DA, 0x5F1C, 0x8F78, 0x5F1D, 0x8F79, 0x5F1E, 0x8F7A, - 0x5F1F, 0xB5DC, 0x5F20, 0xD5C5, 0x5F21, 0x8F7B, 0x5F22, 0x8F7C, - 0x5F23, 0x8F7D, 0x5F24, 0x8F7E, 0x5F25, 0xC3D6, 0x5F26, 0xCFD2, - 0x5F27, 0xBBA1, 0x5F28, 0x8F80, 0x5F29, 0xE5F3, 0x5F2A, 0xE5F2, - 0x5F2B, 0x8F81, 0x5F2C, 0x8F82, 0x5F2D, 0xE5F4, 0x5F2E, 0x8F83, - 0x5F2F, 0xCDE4, 0x5F30, 0x8F84, 0x5F31, 0xC8F5, 0x5F32, 0x8F85, - 0x5F33, 0x8F86, 0x5F34, 0x8F87, 0x5F35, 0x8F88, 0x5F36, 0x8F89, - 0x5F37, 0x8F8A, 0x5F38, 0x8F8B, 0x5F39, 0xB5AF, 0x5F3A, 0xC7BF, - 0x5F3B, 0x8F8C, 0x5F3C, 0xE5F6, 0x5F3D, 0x8F8D, 0x5F3E, 0x8F8E, - 0x5F3F, 0x8F8F, 0x5F40, 0xECB0, 0x5F41, 0x8F90, 0x5F42, 0x8F91, - 0x5F43, 0x8F92, 0x5F44, 0x8F93, 0x5F45, 0x8F94, 0x5F46, 0x8F95, - 0x5F47, 0x8F96, 0x5F48, 0x8F97, 0x5F49, 0x8F98, 0x5F4A, 0x8F99, - 0x5F4B, 0x8F9A, 0x5F4C, 0x8F9B, 0x5F4D, 0x8F9C, 0x5F4E, 0x8F9D, - 0x5F4F, 0x8F9E, 0x5F50, 0xE5E6, 0x5F51, 0x8F9F, 0x5F52, 0xB9E9, - 0x5F53, 0xB5B1, 0x5F54, 0x8FA0, 0x5F55, 0xC2BC, 0x5F56, 0xE5E8, - 0x5F57, 0xE5E7, 0x5F58, 0xE5E9, 0x5F59, 0x8FA1, 0x5F5A, 0x8FA2, - 0x5F5B, 0x8FA3, 0x5F5C, 0x8FA4, 0x5F5D, 0xD2CD, 0x5F5E, 0x8FA5, - 0x5F5F, 0x8FA6, 0x5F60, 0x8FA7, 0x5F61, 0xE1EA, 0x5F62, 0xD0CE, - 0x5F63, 0x8FA8, 0x5F64, 0xCDAE, 0x5F65, 0x8FA9, 0x5F66, 0xD1E5, - 0x5F67, 0x8FAA, 0x5F68, 0x8FAB, 0x5F69, 0xB2CA, 0x5F6A, 0xB1EB, - 0x5F6B, 0x8FAC, 0x5F6C, 0xB1F2, 0x5F6D, 0xC5ED, 0x5F6E, 0x8FAD, - 0x5F6F, 0x8FAE, 0x5F70, 0xD5C3, 0x5F71, 0xD3B0, 0x5F72, 0x8FAF, - 0x5F73, 0xE1DC, 0x5F74, 0x8FB0, 0x5F75, 0x8FB1, 0x5F76, 0x8FB2, - 0x5F77, 0xE1DD, 0x5F78, 0x8FB3, 0x5F79, 0xD2DB, 0x5F7A, 0x8FB4, - 0x5F7B, 0xB3B9, 0x5F7C, 0xB1CB, 0x5F7D, 0x8FB5, 0x5F7E, 0x8FB6, - 0x5F7F, 0x8FB7, 0x5F80, 0xCDF9, 0x5F81, 0xD5F7, 0x5F82, 0xE1DE, - 0x5F83, 0x8FB8, 0x5F84, 0xBEB6, 0x5F85, 0xB4FD, 0x5F86, 0x8FB9, - 0x5F87, 0xE1DF, 0x5F88, 0xBADC, 0x5F89, 0xE1E0, 0x5F8A, 0xBBB2, - 0x5F8B, 0xC2C9, 0x5F8C, 0xE1E1, 0x5F8D, 0x8FBA, 0x5F8E, 0x8FBB, - 0x5F8F, 0x8FBC, 0x5F90, 0xD0EC, 0x5F91, 0x8FBD, 0x5F92, 0xCDBD, - 0x5F93, 0x8FBE, 0x5F94, 0x8FBF, 0x5F95, 0xE1E2, 0x5F96, 0x8FC0, - 0x5F97, 0xB5C3, 0x5F98, 0xC5C7, 0x5F99, 0xE1E3, 0x5F9A, 0x8FC1, - 0x5F9B, 0x8FC2, 0x5F9C, 0xE1E4, 0x5F9D, 0x8FC3, 0x5F9E, 0x8FC4, - 0x5F9F, 0x8FC5, 0x5FA0, 0x8FC6, 0x5FA1, 0xD3F9, 0x5FA2, 0x8FC7, - 0x5FA3, 0x8FC8, 0x5FA4, 0x8FC9, 0x5FA5, 0x8FCA, 0x5FA6, 0x8FCB, - 0x5FA7, 0x8FCC, 0x5FA8, 0xE1E5, 0x5FA9, 0x8FCD, 0x5FAA, 0xD1AD, - 0x5FAB, 0x8FCE, 0x5FAC, 0x8FCF, 0x5FAD, 0xE1E6, 0x5FAE, 0xCEA2, - 0x5FAF, 0x8FD0, 0x5FB0, 0x8FD1, 0x5FB1, 0x8FD2, 0x5FB2, 0x8FD3, - 0x5FB3, 0x8FD4, 0x5FB4, 0x8FD5, 0x5FB5, 0xE1E7, 0x5FB6, 0x8FD6, - 0x5FB7, 0xB5C2, 0x5FB8, 0x8FD7, 0x5FB9, 0x8FD8, 0x5FBA, 0x8FD9, - 0x5FBB, 0x8FDA, 0x5FBC, 0xE1E8, 0x5FBD, 0xBBD5, 0x5FBE, 0x8FDB, - 0x5FBF, 0x8FDC, 0x5FC0, 0x8FDD, 0x5FC1, 0x8FDE, 0x5FC2, 0x8FDF, - 0x5FC3, 0xD0C4, 0x5FC4, 0xE2E0, 0x5FC5, 0xB1D8, 0x5FC6, 0xD2E4, - 0x5FC7, 0x8FE0, 0x5FC8, 0x8FE1, 0x5FC9, 0xE2E1, 0x5FCA, 0x8FE2, - 0x5FCB, 0x8FE3, 0x5FCC, 0xBCC9, 0x5FCD, 0xC8CC, 0x5FCE, 0x8FE4, - 0x5FCF, 0xE2E3, 0x5FD0, 0xECFE, 0x5FD1, 0xECFD, 0x5FD2, 0xDFAF, - 0x5FD3, 0x8FE5, 0x5FD4, 0x8FE6, 0x5FD5, 0x8FE7, 0x5FD6, 0xE2E2, - 0x5FD7, 0xD6BE, 0x5FD8, 0xCDFC, 0x5FD9, 0xC3A6, 0x5FDA, 0x8FE8, - 0x5FDB, 0x8FE9, 0x5FDC, 0x8FEA, 0x5FDD, 0xE3C3, 0x5FDE, 0x8FEB, - 0x5FDF, 0x8FEC, 0x5FE0, 0xD6D2, 0x5FE1, 0xE2E7, 0x5FE2, 0x8FED, - 0x5FE3, 0x8FEE, 0x5FE4, 0xE2E8, 0x5FE5, 0x8FEF, 0x5FE6, 0x8FF0, - 0x5FE7, 0xD3C7, 0x5FE8, 0x8FF1, 0x5FE9, 0x8FF2, 0x5FEA, 0xE2EC, - 0x5FEB, 0xBFEC, 0x5FEC, 0x8FF3, 0x5FED, 0xE2ED, 0x5FEE, 0xE2E5, - 0x5FEF, 0x8FF4, 0x5FF0, 0x8FF5, 0x5FF1, 0xB3C0, 0x5FF2, 0x8FF6, - 0x5FF3, 0x8FF7, 0x5FF4, 0x8FF8, 0x5FF5, 0xC4EE, 0x5FF6, 0x8FF9, - 0x5FF7, 0x8FFA, 0x5FF8, 0xE2EE, 0x5FF9, 0x8FFB, 0x5FFA, 0x8FFC, - 0x5FFB, 0xD0C3, 0x5FFC, 0x8FFD, 0x5FFD, 0xBAF6, 0x5FFE, 0xE2E9, - 0x5FFF, 0xB7DE, 0x6000, 0xBBB3, 0x6001, 0xCCAC, 0x6002, 0xCBCB, - 0x6003, 0xE2E4, 0x6004, 0xE2E6, 0x6005, 0xE2EA, 0x6006, 0xE2EB, - 0x6007, 0x8FFE, 0x6008, 0x9040, 0x6009, 0x9041, 0x600A, 0xE2F7, - 0x600B, 0x9042, 0x600C, 0x9043, 0x600D, 0xE2F4, 0x600E, 0xD4F5, - 0x600F, 0xE2F3, 0x6010, 0x9044, 0x6011, 0x9045, 0x6012, 0xC5AD, - 0x6013, 0x9046, 0x6014, 0xD5FA, 0x6015, 0xC5C2, 0x6016, 0xB2C0, - 0x6017, 0x9047, 0x6018, 0x9048, 0x6019, 0xE2EF, 0x601A, 0x9049, - 0x601B, 0xE2F2, 0x601C, 0xC1AF, 0x601D, 0xCBBC, 0x601E, 0x904A, - 0x601F, 0x904B, 0x6020, 0xB5A1, 0x6021, 0xE2F9, 0x6022, 0x904C, - 0x6023, 0x904D, 0x6024, 0x904E, 0x6025, 0xBCB1, 0x6026, 0xE2F1, - 0x6027, 0xD0D4, 0x6028, 0xD4B9, 0x6029, 0xE2F5, 0x602A, 0xB9D6, - 0x602B, 0xE2F6, 0x602C, 0x904F, 0x602D, 0x9050, 0x602E, 0x9051, - 0x602F, 0xC7D3, 0x6030, 0x9052, 0x6031, 0x9053, 0x6032, 0x9054, - 0x6033, 0x9055, 0x6034, 0x9056, 0x6035, 0xE2F0, 0x6036, 0x9057, - 0x6037, 0x9058, 0x6038, 0x9059, 0x6039, 0x905A, 0x603A, 0x905B, - 0x603B, 0xD7DC, 0x603C, 0xEDA1, 0x603D, 0x905C, 0x603E, 0x905D, - 0x603F, 0xE2F8, 0x6040, 0x905E, 0x6041, 0xEDA5, 0x6042, 0xE2FE, - 0x6043, 0xCAD1, 0x6044, 0x905F, 0x6045, 0x9060, 0x6046, 0x9061, - 0x6047, 0x9062, 0x6048, 0x9063, 0x6049, 0x9064, 0x604A, 0x9065, - 0x604B, 0xC1B5, 0x604C, 0x9066, 0x604D, 0xBBD0, 0x604E, 0x9067, - 0x604F, 0x9068, 0x6050, 0xBFD6, 0x6051, 0x9069, 0x6052, 0xBAE3, - 0x6053, 0x906A, 0x6054, 0x906B, 0x6055, 0xCBA1, 0x6056, 0x906C, - 0x6057, 0x906D, 0x6058, 0x906E, 0x6059, 0xEDA6, 0x605A, 0xEDA3, - 0x605B, 0x906F, 0x605C, 0x9070, 0x605D, 0xEDA2, 0x605E, 0x9071, - 0x605F, 0x9072, 0x6060, 0x9073, 0x6061, 0x9074, 0x6062, 0xBBD6, - 0x6063, 0xEDA7, 0x6064, 0xD0F4, 0x6065, 0x9075, 0x6066, 0x9076, - 0x6067, 0xEDA4, 0x6068, 0xBADE, 0x6069, 0xB6F7, 0x606A, 0xE3A1, - 0x606B, 0xB6B2, 0x606C, 0xCCF1, 0x606D, 0xB9A7, 0x606E, 0x9077, - 0x606F, 0xCFA2, 0x6070, 0xC7A1, 0x6071, 0x9078, 0x6072, 0x9079, - 0x6073, 0xBFD2, 0x6074, 0x907A, 0x6075, 0x907B, 0x6076, 0xB6F1, - 0x6077, 0x907C, 0x6078, 0xE2FA, 0x6079, 0xE2FB, 0x607A, 0xE2FD, - 0x607B, 0xE2FC, 0x607C, 0xC4D5, 0x607D, 0xE3A2, 0x607E, 0x907D, - 0x607F, 0xD3C1, 0x6080, 0x907E, 0x6081, 0x9080, 0x6082, 0x9081, - 0x6083, 0xE3A7, 0x6084, 0xC7C4, 0x6085, 0x9082, 0x6086, 0x9083, - 0x6087, 0x9084, 0x6088, 0x9085, 0x6089, 0xCFA4, 0x608A, 0x9086, - 0x608B, 0x9087, 0x608C, 0xE3A9, 0x608D, 0xBAB7, 0x608E, 0x9088, - 0x608F, 0x9089, 0x6090, 0x908A, 0x6091, 0x908B, 0x6092, 0xE3A8, - 0x6093, 0x908C, 0x6094, 0xBBDA, 0x6095, 0x908D, 0x6096, 0xE3A3, - 0x6097, 0x908E, 0x6098, 0x908F, 0x6099, 0x9090, 0x609A, 0xE3A4, - 0x609B, 0xE3AA, 0x609C, 0x9091, 0x609D, 0xE3A6, 0x609E, 0x9092, - 0x609F, 0xCEF2, 0x60A0, 0xD3C6, 0x60A1, 0x9093, 0x60A2, 0x9094, - 0x60A3, 0xBBBC, 0x60A4, 0x9095, 0x60A5, 0x9096, 0x60A6, 0xD4C3, - 0x60A7, 0x9097, 0x60A8, 0xC4FA, 0x60A9, 0x9098, 0x60AA, 0x9099, - 0x60AB, 0xEDA8, 0x60AC, 0xD0FC, 0x60AD, 0xE3A5, 0x60AE, 0x909A, - 0x60AF, 0xC3F5, 0x60B0, 0x909B, 0x60B1, 0xE3AD, 0x60B2, 0xB1AF, - 0x60B3, 0x909C, 0x60B4, 0xE3B2, 0x60B5, 0x909D, 0x60B6, 0x909E, - 0x60B7, 0x909F, 0x60B8, 0xBCC2, 0x60B9, 0x90A0, 0x60BA, 0x90A1, - 0x60BB, 0xE3AC, 0x60BC, 0xB5BF, 0x60BD, 0x90A2, 0x60BE, 0x90A3, - 0x60BF, 0x90A4, 0x60C0, 0x90A5, 0x60C1, 0x90A6, 0x60C2, 0x90A7, - 0x60C3, 0x90A8, 0x60C4, 0x90A9, 0x60C5, 0xC7E9, 0x60C6, 0xE3B0, - 0x60C7, 0x90AA, 0x60C8, 0x90AB, 0x60C9, 0x90AC, 0x60CA, 0xBEAA, - 0x60CB, 0xCDEF, 0x60CC, 0x90AD, 0x60CD, 0x90AE, 0x60CE, 0x90AF, - 0x60CF, 0x90B0, 0x60D0, 0x90B1, 0x60D1, 0xBBF3, 0x60D2, 0x90B2, - 0x60D3, 0x90B3, 0x60D4, 0x90B4, 0x60D5, 0xCCE8, 0x60D6, 0x90B5, - 0x60D7, 0x90B6, 0x60D8, 0xE3AF, 0x60D9, 0x90B7, 0x60DA, 0xE3B1, - 0x60DB, 0x90B8, 0x60DC, 0xCFA7, 0x60DD, 0xE3AE, 0x60DE, 0x90B9, - 0x60DF, 0xCEA9, 0x60E0, 0xBBDD, 0x60E1, 0x90BA, 0x60E2, 0x90BB, - 0x60E3, 0x90BC, 0x60E4, 0x90BD, 0x60E5, 0x90BE, 0x60E6, 0xB5EB, - 0x60E7, 0xBEE5, 0x60E8, 0xB2D2, 0x60E9, 0xB3CD, 0x60EA, 0x90BF, - 0x60EB, 0xB1B9, 0x60EC, 0xE3AB, 0x60ED, 0xB2D1, 0x60EE, 0xB5AC, - 0x60EF, 0xB9DF, 0x60F0, 0xB6E8, 0x60F1, 0x90C0, 0x60F2, 0x90C1, - 0x60F3, 0xCFEB, 0x60F4, 0xE3B7, 0x60F5, 0x90C2, 0x60F6, 0xBBCC, - 0x60F7, 0x90C3, 0x60F8, 0x90C4, 0x60F9, 0xC8C7, 0x60FA, 0xD0CA, - 0x60FB, 0x90C5, 0x60FC, 0x90C6, 0x60FD, 0x90C7, 0x60FE, 0x90C8, - 0x60FF, 0x90C9, 0x6100, 0xE3B8, 0x6101, 0xB3EE, 0x6102, 0x90CA, - 0x6103, 0x90CB, 0x6104, 0x90CC, 0x6105, 0x90CD, 0x6106, 0xEDA9, - 0x6107, 0x90CE, 0x6108, 0xD3FA, 0x6109, 0xD3E4, 0x610A, 0x90CF, - 0x610B, 0x90D0, 0x610C, 0x90D1, 0x610D, 0xEDAA, 0x610E, 0xE3B9, - 0x610F, 0xD2E2, 0x6110, 0x90D2, 0x6111, 0x90D3, 0x6112, 0x90D4, - 0x6113, 0x90D5, 0x6114, 0x90D6, 0x6115, 0xE3B5, 0x6116, 0x90D7, - 0x6117, 0x90D8, 0x6118, 0x90D9, 0x6119, 0x90DA, 0x611A, 0xD3DE, - 0x611B, 0x90DB, 0x611C, 0x90DC, 0x611D, 0x90DD, 0x611E, 0x90DE, - 0x611F, 0xB8D0, 0x6120, 0xE3B3, 0x6121, 0x90DF, 0x6122, 0x90E0, - 0x6123, 0xE3B6, 0x6124, 0xB7DF, 0x6125, 0x90E1, 0x6126, 0xE3B4, - 0x6127, 0xC0A2, 0x6128, 0x90E2, 0x6129, 0x90E3, 0x612A, 0x90E4, - 0x612B, 0xE3BA, 0x612C, 0x90E5, 0x612D, 0x90E6, 0x612E, 0x90E7, - 0x612F, 0x90E8, 0x6130, 0x90E9, 0x6131, 0x90EA, 0x6132, 0x90EB, - 0x6133, 0x90EC, 0x6134, 0x90ED, 0x6135, 0x90EE, 0x6136, 0x90EF, - 0x6137, 0x90F0, 0x6138, 0x90F1, 0x6139, 0x90F2, 0x613A, 0x90F3, - 0x613B, 0x90F4, 0x613C, 0x90F5, 0x613D, 0x90F6, 0x613E, 0x90F7, - 0x613F, 0xD4B8, 0x6140, 0x90F8, 0x6141, 0x90F9, 0x6142, 0x90FA, - 0x6143, 0x90FB, 0x6144, 0x90FC, 0x6145, 0x90FD, 0x6146, 0x90FE, - 0x6147, 0x9140, 0x6148, 0xB4C8, 0x6149, 0x9141, 0x614A, 0xE3BB, - 0x614B, 0x9142, 0x614C, 0xBBC5, 0x614D, 0x9143, 0x614E, 0xC9F7, - 0x614F, 0x9144, 0x6150, 0x9145, 0x6151, 0xC9E5, 0x6152, 0x9146, - 0x6153, 0x9147, 0x6154, 0x9148, 0x6155, 0xC4BD, 0x6156, 0x9149, - 0x6157, 0x914A, 0x6158, 0x914B, 0x6159, 0x914C, 0x615A, 0x914D, - 0x615B, 0x914E, 0x615C, 0x914F, 0x615D, 0xEDAB, 0x615E, 0x9150, - 0x615F, 0x9151, 0x6160, 0x9152, 0x6161, 0x9153, 0x6162, 0xC2FD, - 0x6163, 0x9154, 0x6164, 0x9155, 0x6165, 0x9156, 0x6166, 0x9157, - 0x6167, 0xBBDB, 0x6168, 0xBFAE, 0x6169, 0x9158, 0x616A, 0x9159, - 0x616B, 0x915A, 0x616C, 0x915B, 0x616D, 0x915C, 0x616E, 0x915D, - 0x616F, 0x915E, 0x6170, 0xCEBF, 0x6171, 0x915F, 0x6172, 0x9160, - 0x6173, 0x9161, 0x6174, 0x9162, 0x6175, 0xE3BC, 0x6176, 0x9163, - 0x6177, 0xBFB6, 0x6178, 0x9164, 0x6179, 0x9165, 0x617A, 0x9166, - 0x617B, 0x9167, 0x617C, 0x9168, 0x617D, 0x9169, 0x617E, 0x916A, - 0x617F, 0x916B, 0x6180, 0x916C, 0x6181, 0x916D, 0x6182, 0x916E, - 0x6183, 0x916F, 0x6184, 0x9170, 0x6185, 0x9171, 0x6186, 0x9172, - 0x6187, 0x9173, 0x6188, 0x9174, 0x6189, 0x9175, 0x618A, 0x9176, - 0x618B, 0xB1EF, 0x618C, 0x9177, 0x618D, 0x9178, 0x618E, 0xD4F7, - 0x618F, 0x9179, 0x6190, 0x917A, 0x6191, 0x917B, 0x6192, 0x917C, - 0x6193, 0x917D, 0x6194, 0xE3BE, 0x6195, 0x917E, 0x6196, 0x9180, - 0x6197, 0x9181, 0x6198, 0x9182, 0x6199, 0x9183, 0x619A, 0x9184, - 0x619B, 0x9185, 0x619C, 0x9186, 0x619D, 0xEDAD, 0x619E, 0x9187, - 0x619F, 0x9188, 0x61A0, 0x9189, 0x61A1, 0x918A, 0x61A2, 0x918B, - 0x61A3, 0x918C, 0x61A4, 0x918D, 0x61A5, 0x918E, 0x61A6, 0x918F, - 0x61A7, 0xE3BF, 0x61A8, 0xBAA9, 0x61A9, 0xEDAC, 0x61AA, 0x9190, - 0x61AB, 0x9191, 0x61AC, 0xE3BD, 0x61AD, 0x9192, 0x61AE, 0x9193, - 0x61AF, 0x9194, 0x61B0, 0x9195, 0x61B1, 0x9196, 0x61B2, 0x9197, - 0x61B3, 0x9198, 0x61B4, 0x9199, 0x61B5, 0x919A, 0x61B6, 0x919B, - 0x61B7, 0xE3C0, 0x61B8, 0x919C, 0x61B9, 0x919D, 0x61BA, 0x919E, - 0x61BB, 0x919F, 0x61BC, 0x91A0, 0x61BD, 0x91A1, 0x61BE, 0xBAB6, - 0x61BF, 0x91A2, 0x61C0, 0x91A3, 0x61C1, 0x91A4, 0x61C2, 0xB6AE, - 0x61C3, 0x91A5, 0x61C4, 0x91A6, 0x61C5, 0x91A7, 0x61C6, 0x91A8, - 0x61C7, 0x91A9, 0x61C8, 0xD0B8, 0x61C9, 0x91AA, 0x61CA, 0xB0C3, - 0x61CB, 0xEDAE, 0x61CC, 0x91AB, 0x61CD, 0x91AC, 0x61CE, 0x91AD, - 0x61CF, 0x91AE, 0x61D0, 0x91AF, 0x61D1, 0xEDAF, 0x61D2, 0xC0C1, - 0x61D3, 0x91B0, 0x61D4, 0xE3C1, 0x61D5, 0x91B1, 0x61D6, 0x91B2, - 0x61D7, 0x91B3, 0x61D8, 0x91B4, 0x61D9, 0x91B5, 0x61DA, 0x91B6, - 0x61DB, 0x91B7, 0x61DC, 0x91B8, 0x61DD, 0x91B9, 0x61DE, 0x91BA, - 0x61DF, 0x91BB, 0x61E0, 0x91BC, 0x61E1, 0x91BD, 0x61E2, 0x91BE, - 0x61E3, 0x91BF, 0x61E4, 0x91C0, 0x61E5, 0x91C1, 0x61E6, 0xC5B3, - 0x61E7, 0x91C2, 0x61E8, 0x91C3, 0x61E9, 0x91C4, 0x61EA, 0x91C5, - 0x61EB, 0x91C6, 0x61EC, 0x91C7, 0x61ED, 0x91C8, 0x61EE, 0x91C9, - 0x61EF, 0x91CA, 0x61F0, 0x91CB, 0x61F1, 0x91CC, 0x61F2, 0x91CD, - 0x61F3, 0x91CE, 0x61F4, 0x91CF, 0x61F5, 0xE3C2, 0x61F6, 0x91D0, - 0x61F7, 0x91D1, 0x61F8, 0x91D2, 0x61F9, 0x91D3, 0x61FA, 0x91D4, - 0x61FB, 0x91D5, 0x61FC, 0x91D6, 0x61FD, 0x91D7, 0x61FE, 0x91D8, - 0x61FF, 0xDCB2, 0x6200, 0x91D9, 0x6201, 0x91DA, 0x6202, 0x91DB, - 0x6203, 0x91DC, 0x6204, 0x91DD, 0x6205, 0x91DE, 0x6206, 0xEDB0, - 0x6207, 0x91DF, 0x6208, 0xB8EA, 0x6209, 0x91E0, 0x620A, 0xCEEC, - 0x620B, 0xEAA7, 0x620C, 0xD0E7, 0x620D, 0xCAF9, 0x620E, 0xC8D6, - 0x620F, 0xCFB7, 0x6210, 0xB3C9, 0x6211, 0xCED2, 0x6212, 0xBDE4, - 0x6213, 0x91E1, 0x6214, 0x91E2, 0x6215, 0xE3DE, 0x6216, 0xBBF2, - 0x6217, 0xEAA8, 0x6218, 0xD5BD, 0x6219, 0x91E3, 0x621A, 0xC6DD, - 0x621B, 0xEAA9, 0x621C, 0x91E4, 0x621D, 0x91E5, 0x621E, 0x91E6, - 0x621F, 0xEAAA, 0x6220, 0x91E7, 0x6221, 0xEAAC, 0x6222, 0xEAAB, - 0x6223, 0x91E8, 0x6224, 0xEAAE, 0x6225, 0xEAAD, 0x6226, 0x91E9, - 0x6227, 0x91EA, 0x6228, 0x91EB, 0x6229, 0x91EC, 0x622A, 0xBDD8, - 0x622B, 0x91ED, 0x622C, 0xEAAF, 0x622D, 0x91EE, 0x622E, 0xC2BE, - 0x622F, 0x91EF, 0x6230, 0x91F0, 0x6231, 0x91F1, 0x6232, 0x91F2, - 0x6233, 0xB4C1, 0x6234, 0xB4F7, 0x6235, 0x91F3, 0x6236, 0x91F4, - 0x6237, 0xBBA7, 0x6238, 0x91F5, 0x6239, 0x91F6, 0x623A, 0x91F7, - 0x623B, 0x91F8, 0x623C, 0x91F9, 0x623D, 0xECE6, 0x623E, 0xECE5, - 0x623F, 0xB7BF, 0x6240, 0xCBF9, 0x6241, 0xB1E2, 0x6242, 0x91FA, - 0x6243, 0xECE7, 0x6244, 0x91FB, 0x6245, 0x91FC, 0x6246, 0x91FD, - 0x6247, 0xC9C8, 0x6248, 0xECE8, 0x6249, 0xECE9, 0x624A, 0x91FE, - 0x624B, 0xCAD6, 0x624C, 0xDED0, 0x624D, 0xB2C5, 0x624E, 0xD4FA, - 0x624F, 0x9240, 0x6250, 0x9241, 0x6251, 0xC6CB, 0x6252, 0xB0C7, - 0x6253, 0xB4F2, 0x6254, 0xC8D3, 0x6255, 0x9242, 0x6256, 0x9243, - 0x6257, 0x9244, 0x6258, 0xCDD0, 0x6259, 0x9245, 0x625A, 0x9246, - 0x625B, 0xBFB8, 0x625C, 0x9247, 0x625D, 0x9248, 0x625E, 0x9249, - 0x625F, 0x924A, 0x6260, 0x924B, 0x6261, 0x924C, 0x6262, 0x924D, - 0x6263, 0xBFDB, 0x6264, 0x924E, 0x6265, 0x924F, 0x6266, 0xC7A4, - 0x6267, 0xD6B4, 0x6268, 0x9250, 0x6269, 0xC0A9, 0x626A, 0xDED1, - 0x626B, 0xC9A8, 0x626C, 0xD1EF, 0x626D, 0xC5A4, 0x626E, 0xB0E7, - 0x626F, 0xB3B6, 0x6270, 0xC8C5, 0x6271, 0x9251, 0x6272, 0x9252, - 0x6273, 0xB0E2, 0x6274, 0x9253, 0x6275, 0x9254, 0x6276, 0xB7F6, - 0x6277, 0x9255, 0x6278, 0x9256, 0x6279, 0xC5FA, 0x627A, 0x9257, - 0x627B, 0x9258, 0x627C, 0xB6F3, 0x627D, 0x9259, 0x627E, 0xD5D2, - 0x627F, 0xB3D0, 0x6280, 0xBCBC, 0x6281, 0x925A, 0x6282, 0x925B, - 0x6283, 0x925C, 0x6284, 0xB3AD, 0x6285, 0x925D, 0x6286, 0x925E, - 0x6287, 0x925F, 0x6288, 0x9260, 0x6289, 0xBEF1, 0x628A, 0xB0D1, - 0x628B, 0x9261, 0x628C, 0x9262, 0x628D, 0x9263, 0x628E, 0x9264, - 0x628F, 0x9265, 0x6290, 0x9266, 0x6291, 0xD2D6, 0x6292, 0xCAE3, - 0x6293, 0xD7A5, 0x6294, 0x9267, 0x6295, 0xCDB6, 0x6296, 0xB6B6, - 0x6297, 0xBFB9, 0x6298, 0xD5DB, 0x6299, 0x9268, 0x629A, 0xB8A7, - 0x629B, 0xC5D7, 0x629C, 0x9269, 0x629D, 0x926A, 0x629E, 0x926B, - 0x629F, 0xDED2, 0x62A0, 0xBFD9, 0x62A1, 0xC2D5, 0x62A2, 0xC7C0, - 0x62A3, 0x926C, 0x62A4, 0xBBA4, 0x62A5, 0xB1A8, 0x62A6, 0x926D, - 0x62A7, 0x926E, 0x62A8, 0xC5EA, 0x62A9, 0x926F, 0x62AA, 0x9270, - 0x62AB, 0xC5FB, 0x62AC, 0xCCA7, 0x62AD, 0x9271, 0x62AE, 0x9272, - 0x62AF, 0x9273, 0x62B0, 0x9274, 0x62B1, 0xB1A7, 0x62B2, 0x9275, - 0x62B3, 0x9276, 0x62B4, 0x9277, 0x62B5, 0xB5D6, 0x62B6, 0x9278, - 0x62B7, 0x9279, 0x62B8, 0x927A, 0x62B9, 0xC4A8, 0x62BA, 0x927B, - 0x62BB, 0xDED3, 0x62BC, 0xD1BA, 0x62BD, 0xB3E9, 0x62BE, 0x927C, - 0x62BF, 0xC3F2, 0x62C0, 0x927D, 0x62C1, 0x927E, 0x62C2, 0xB7F7, - 0x62C3, 0x9280, 0x62C4, 0xD6F4, 0x62C5, 0xB5A3, 0x62C6, 0xB2F0, - 0x62C7, 0xC4B4, 0x62C8, 0xC4E9, 0x62C9, 0xC0AD, 0x62CA, 0xDED4, - 0x62CB, 0x9281, 0x62CC, 0xB0E8, 0x62CD, 0xC5C4, 0x62CE, 0xC1E0, - 0x62CF, 0x9282, 0x62D0, 0xB9D5, 0x62D1, 0x9283, 0x62D2, 0xBEDC, - 0x62D3, 0xCDD8, 0x62D4, 0xB0CE, 0x62D5, 0x9284, 0x62D6, 0xCDCF, - 0x62D7, 0xDED6, 0x62D8, 0xBED0, 0x62D9, 0xD7BE, 0x62DA, 0xDED5, - 0x62DB, 0xD5D0, 0x62DC, 0xB0DD, 0x62DD, 0x9285, 0x62DE, 0x9286, - 0x62DF, 0xC4E2, 0x62E0, 0x9287, 0x62E1, 0x9288, 0x62E2, 0xC2A3, - 0x62E3, 0xBCF0, 0x62E4, 0x9289, 0x62E5, 0xD3B5, 0x62E6, 0xC0B9, - 0x62E7, 0xC5A1, 0x62E8, 0xB2A6, 0x62E9, 0xD4F1, 0x62EA, 0x928A, - 0x62EB, 0x928B, 0x62EC, 0xC0A8, 0x62ED, 0xCAC3, 0x62EE, 0xDED7, - 0x62EF, 0xD5FC, 0x62F0, 0x928C, 0x62F1, 0xB9B0, 0x62F2, 0x928D, - 0x62F3, 0xC8AD, 0x62F4, 0xCBA9, 0x62F5, 0x928E, 0x62F6, 0xDED9, - 0x62F7, 0xBFBD, 0x62F8, 0x928F, 0x62F9, 0x9290, 0x62FA, 0x9291, - 0x62FB, 0x9292, 0x62FC, 0xC6B4, 0x62FD, 0xD7A7, 0x62FE, 0xCAB0, - 0x62FF, 0xC4C3, 0x6300, 0x9293, 0x6301, 0xB3D6, 0x6302, 0xB9D2, - 0x6303, 0x9294, 0x6304, 0x9295, 0x6305, 0x9296, 0x6306, 0x9297, - 0x6307, 0xD6B8, 0x6308, 0xEAFC, 0x6309, 0xB0B4, 0x630A, 0x9298, - 0x630B, 0x9299, 0x630C, 0x929A, 0x630D, 0x929B, 0x630E, 0xBFE6, - 0x630F, 0x929C, 0x6310, 0x929D, 0x6311, 0xCCF4, 0x6312, 0x929E, - 0x6313, 0x929F, 0x6314, 0x92A0, 0x6315, 0x92A1, 0x6316, 0xCDDA, - 0x6317, 0x92A2, 0x6318, 0x92A3, 0x6319, 0x92A4, 0x631A, 0xD6BF, - 0x631B, 0xC2CE, 0x631C, 0x92A5, 0x631D, 0xCECE, 0x631E, 0xCCA2, - 0x631F, 0xD0AE, 0x6320, 0xC4D3, 0x6321, 0xB5B2, 0x6322, 0xDED8, - 0x6323, 0xD5F5, 0x6324, 0xBCB7, 0x6325, 0xBBD3, 0x6326, 0x92A6, - 0x6327, 0x92A7, 0x6328, 0xB0A4, 0x6329, 0x92A8, 0x632A, 0xC5B2, - 0x632B, 0xB4EC, 0x632C, 0x92A9, 0x632D, 0x92AA, 0x632E, 0x92AB, - 0x632F, 0xD5F1, 0x6330, 0x92AC, 0x6331, 0x92AD, 0x6332, 0xEAFD, - 0x6333, 0x92AE, 0x6334, 0x92AF, 0x6335, 0x92B0, 0x6336, 0x92B1, - 0x6337, 0x92B2, 0x6338, 0x92B3, 0x6339, 0xDEDA, 0x633A, 0xCDA6, - 0x633B, 0x92B4, 0x633C, 0x92B5, 0x633D, 0xCDEC, 0x633E, 0x92B6, - 0x633F, 0x92B7, 0x6340, 0x92B8, 0x6341, 0x92B9, 0x6342, 0xCEE6, - 0x6343, 0xDEDC, 0x6344, 0x92BA, 0x6345, 0xCDB1, 0x6346, 0xC0A6, - 0x6347, 0x92BB, 0x6348, 0x92BC, 0x6349, 0xD7BD, 0x634A, 0x92BD, - 0x634B, 0xDEDB, 0x634C, 0xB0C6, 0x634D, 0xBAB4, 0x634E, 0xC9D3, - 0x634F, 0xC4F3, 0x6350, 0xBEE8, 0x6351, 0x92BE, 0x6352, 0x92BF, - 0x6353, 0x92C0, 0x6354, 0x92C1, 0x6355, 0xB2B6, 0x6356, 0x92C2, - 0x6357, 0x92C3, 0x6358, 0x92C4, 0x6359, 0x92C5, 0x635A, 0x92C6, - 0x635B, 0x92C7, 0x635C, 0x92C8, 0x635D, 0x92C9, 0x635E, 0xC0CC, - 0x635F, 0xCBF0, 0x6360, 0x92CA, 0x6361, 0xBCF1, 0x6362, 0xBBBB, - 0x6363, 0xB5B7, 0x6364, 0x92CB, 0x6365, 0x92CC, 0x6366, 0x92CD, - 0x6367, 0xC5F5, 0x6368, 0x92CE, 0x6369, 0xDEE6, 0x636A, 0x92CF, - 0x636B, 0x92D0, 0x636C, 0x92D1, 0x636D, 0xDEE3, 0x636E, 0xBEDD, - 0x636F, 0x92D2, 0x6370, 0x92D3, 0x6371, 0xDEDF, 0x6372, 0x92D4, - 0x6373, 0x92D5, 0x6374, 0x92D6, 0x6375, 0x92D7, 0x6376, 0xB4B7, - 0x6377, 0xBDDD, 0x6378, 0x92D8, 0x6379, 0x92D9, 0x637A, 0xDEE0, - 0x637B, 0xC4ED, 0x637C, 0x92DA, 0x637D, 0x92DB, 0x637E, 0x92DC, - 0x637F, 0x92DD, 0x6380, 0xCFC6, 0x6381, 0x92DE, 0x6382, 0xB5E0, - 0x6383, 0x92DF, 0x6384, 0x92E0, 0x6385, 0x92E1, 0x6386, 0x92E2, - 0x6387, 0xB6DE, 0x6388, 0xCADA, 0x6389, 0xB5F4, 0x638A, 0xDEE5, - 0x638B, 0x92E3, 0x638C, 0xD5C6, 0x638D, 0x92E4, 0x638E, 0xDEE1, - 0x638F, 0xCCCD, 0x6390, 0xC6FE, 0x6391, 0x92E5, 0x6392, 0xC5C5, - 0x6393, 0x92E6, 0x6394, 0x92E7, 0x6395, 0x92E8, 0x6396, 0xD2B4, - 0x6397, 0x92E9, 0x6398, 0xBEF2, 0x6399, 0x92EA, 0x639A, 0x92EB, - 0x639B, 0x92EC, 0x639C, 0x92ED, 0x639D, 0x92EE, 0x639E, 0x92EF, - 0x639F, 0x92F0, 0x63A0, 0xC2D3, 0x63A1, 0x92F1, 0x63A2, 0xCCBD, - 0x63A3, 0xB3B8, 0x63A4, 0x92F2, 0x63A5, 0xBDD3, 0x63A6, 0x92F3, - 0x63A7, 0xBFD8, 0x63A8, 0xCDC6, 0x63A9, 0xD1DA, 0x63AA, 0xB4EB, - 0x63AB, 0x92F4, 0x63AC, 0xDEE4, 0x63AD, 0xDEDD, 0x63AE, 0xDEE7, - 0x63AF, 0x92F5, 0x63B0, 0xEAFE, 0x63B1, 0x92F6, 0x63B2, 0x92F7, - 0x63B3, 0xC2B0, 0x63B4, 0xDEE2, 0x63B5, 0x92F8, 0x63B6, 0x92F9, - 0x63B7, 0xD6C0, 0x63B8, 0xB5A7, 0x63B9, 0x92FA, 0x63BA, 0xB2F4, - 0x63BB, 0x92FB, 0x63BC, 0xDEE8, 0x63BD, 0x92FC, 0x63BE, 0xDEF2, - 0x63BF, 0x92FD, 0x63C0, 0x92FE, 0x63C1, 0x9340, 0x63C2, 0x9341, - 0x63C3, 0x9342, 0x63C4, 0xDEED, 0x63C5, 0x9343, 0x63C6, 0xDEF1, - 0x63C7, 0x9344, 0x63C8, 0x9345, 0x63C9, 0xC8E0, 0x63CA, 0x9346, - 0x63CB, 0x9347, 0x63CC, 0x9348, 0x63CD, 0xD7E1, 0x63CE, 0xDEEF, - 0x63CF, 0xC3E8, 0x63D0, 0xCCE1, 0x63D1, 0x9349, 0x63D2, 0xB2E5, - 0x63D3, 0x934A, 0x63D4, 0x934B, 0x63D5, 0x934C, 0x63D6, 0xD2BE, - 0x63D7, 0x934D, 0x63D8, 0x934E, 0x63D9, 0x934F, 0x63DA, 0x9350, - 0x63DB, 0x9351, 0x63DC, 0x9352, 0x63DD, 0x9353, 0x63DE, 0xDEEE, - 0x63DF, 0x9354, 0x63E0, 0xDEEB, 0x63E1, 0xCED5, 0x63E2, 0x9355, - 0x63E3, 0xB4A7, 0x63E4, 0x9356, 0x63E5, 0x9357, 0x63E6, 0x9358, - 0x63E7, 0x9359, 0x63E8, 0x935A, 0x63E9, 0xBFAB, 0x63EA, 0xBEBE, - 0x63EB, 0x935B, 0x63EC, 0x935C, 0x63ED, 0xBDD2, 0x63EE, 0x935D, - 0x63EF, 0x935E, 0x63F0, 0x935F, 0x63F1, 0x9360, 0x63F2, 0xDEE9, - 0x63F3, 0x9361, 0x63F4, 0xD4AE, 0x63F5, 0x9362, 0x63F6, 0xDEDE, - 0x63F7, 0x9363, 0x63F8, 0xDEEA, 0x63F9, 0x9364, 0x63FA, 0x9365, - 0x63FB, 0x9366, 0x63FC, 0x9367, 0x63FD, 0xC0BF, 0x63FE, 0x9368, - 0x63FF, 0xDEEC, 0x6400, 0xB2F3, 0x6401, 0xB8E9, 0x6402, 0xC2A7, - 0x6403, 0x9369, 0x6404, 0x936A, 0x6405, 0xBDC1, 0x6406, 0x936B, - 0x6407, 0x936C, 0x6408, 0x936D, 0x6409, 0x936E, 0x640A, 0x936F, - 0x640B, 0xDEF5, 0x640C, 0xDEF8, 0x640D, 0x9370, 0x640E, 0x9371, - 0x640F, 0xB2AB, 0x6410, 0xB4A4, 0x6411, 0x9372, 0x6412, 0x9373, - 0x6413, 0xB4EA, 0x6414, 0xC9A6, 0x6415, 0x9374, 0x6416, 0x9375, - 0x6417, 0x9376, 0x6418, 0x9377, 0x6419, 0x9378, 0x641A, 0x9379, - 0x641B, 0xDEF6, 0x641C, 0xCBD1, 0x641D, 0x937A, 0x641E, 0xB8E3, - 0x641F, 0x937B, 0x6420, 0xDEF7, 0x6421, 0xDEFA, 0x6422, 0x937C, - 0x6423, 0x937D, 0x6424, 0x937E, 0x6425, 0x9380, 0x6426, 0xDEF9, - 0x6427, 0x9381, 0x6428, 0x9382, 0x6429, 0x9383, 0x642A, 0xCCC2, - 0x642B, 0x9384, 0x642C, 0xB0E1, 0x642D, 0xB4EE, 0x642E, 0x9385, - 0x642F, 0x9386, 0x6430, 0x9387, 0x6431, 0x9388, 0x6432, 0x9389, - 0x6433, 0x938A, 0x6434, 0xE5BA, 0x6435, 0x938B, 0x6436, 0x938C, - 0x6437, 0x938D, 0x6438, 0x938E, 0x6439, 0x938F, 0x643A, 0xD0AF, - 0x643B, 0x9390, 0x643C, 0x9391, 0x643D, 0xB2EB, 0x643E, 0x9392, - 0x643F, 0xEBA1, 0x6440, 0x9393, 0x6441, 0xDEF4, 0x6442, 0x9394, - 0x6443, 0x9395, 0x6444, 0xC9E3, 0x6445, 0xDEF3, 0x6446, 0xB0DA, - 0x6447, 0xD2A1, 0x6448, 0xB1F7, 0x6449, 0x9396, 0x644A, 0xCCAF, - 0x644B, 0x9397, 0x644C, 0x9398, 0x644D, 0x9399, 0x644E, 0x939A, - 0x644F, 0x939B, 0x6450, 0x939C, 0x6451, 0x939D, 0x6452, 0xDEF0, - 0x6453, 0x939E, 0x6454, 0xCBA4, 0x6455, 0x939F, 0x6456, 0x93A0, - 0x6457, 0x93A1, 0x6458, 0xD5AA, 0x6459, 0x93A2, 0x645A, 0x93A3, - 0x645B, 0x93A4, 0x645C, 0x93A5, 0x645D, 0x93A6, 0x645E, 0xDEFB, - 0x645F, 0x93A7, 0x6460, 0x93A8, 0x6461, 0x93A9, 0x6462, 0x93AA, - 0x6463, 0x93AB, 0x6464, 0x93AC, 0x6465, 0x93AD, 0x6466, 0x93AE, - 0x6467, 0xB4DD, 0x6468, 0x93AF, 0x6469, 0xC4A6, 0x646A, 0x93B0, - 0x646B, 0x93B1, 0x646C, 0x93B2, 0x646D, 0xDEFD, 0x646E, 0x93B3, - 0x646F, 0x93B4, 0x6470, 0x93B5, 0x6471, 0x93B6, 0x6472, 0x93B7, - 0x6473, 0x93B8, 0x6474, 0x93B9, 0x6475, 0x93BA, 0x6476, 0x93BB, - 0x6477, 0x93BC, 0x6478, 0xC3FE, 0x6479, 0xC4A1, 0x647A, 0xDFA1, - 0x647B, 0x93BD, 0x647C, 0x93BE, 0x647D, 0x93BF, 0x647E, 0x93C0, - 0x647F, 0x93C1, 0x6480, 0x93C2, 0x6481, 0x93C3, 0x6482, 0xC1CC, - 0x6483, 0x93C4, 0x6484, 0xDEFC, 0x6485, 0xBEEF, 0x6486, 0x93C5, - 0x6487, 0xC6B2, 0x6488, 0x93C6, 0x6489, 0x93C7, 0x648A, 0x93C8, - 0x648B, 0x93C9, 0x648C, 0x93CA, 0x648D, 0x93CB, 0x648E, 0x93CC, - 0x648F, 0x93CD, 0x6490, 0x93CE, 0x6491, 0xB3C5, 0x6492, 0xC8F6, - 0x6493, 0x93CF, 0x6494, 0x93D0, 0x6495, 0xCBBA, 0x6496, 0xDEFE, - 0x6497, 0x93D1, 0x6498, 0x93D2, 0x6499, 0xDFA4, 0x649A, 0x93D3, - 0x649B, 0x93D4, 0x649C, 0x93D5, 0x649D, 0x93D6, 0x649E, 0xD7B2, - 0x649F, 0x93D7, 0x64A0, 0x93D8, 0x64A1, 0x93D9, 0x64A2, 0x93DA, - 0x64A3, 0x93DB, 0x64A4, 0xB3B7, 0x64A5, 0x93DC, 0x64A6, 0x93DD, - 0x64A7, 0x93DE, 0x64A8, 0x93DF, 0x64A9, 0xC1C3, 0x64AA, 0x93E0, - 0x64AB, 0x93E1, 0x64AC, 0xC7CB, 0x64AD, 0xB2A5, 0x64AE, 0xB4E9, - 0x64AF, 0x93E2, 0x64B0, 0xD7AB, 0x64B1, 0x93E3, 0x64B2, 0x93E4, - 0x64B3, 0x93E5, 0x64B4, 0x93E6, 0x64B5, 0xC4EC, 0x64B6, 0x93E7, - 0x64B7, 0xDFA2, 0x64B8, 0xDFA3, 0x64B9, 0x93E8, 0x64BA, 0xDFA5, - 0x64BB, 0x93E9, 0x64BC, 0xBAB3, 0x64BD, 0x93EA, 0x64BE, 0x93EB, - 0x64BF, 0x93EC, 0x64C0, 0xDFA6, 0x64C1, 0x93ED, 0x64C2, 0xC0DE, - 0x64C3, 0x93EE, 0x64C4, 0x93EF, 0x64C5, 0xC9C3, 0x64C6, 0x93F0, - 0x64C7, 0x93F1, 0x64C8, 0x93F2, 0x64C9, 0x93F3, 0x64CA, 0x93F4, - 0x64CB, 0x93F5, 0x64CC, 0x93F6, 0x64CD, 0xB2D9, 0x64CE, 0xC7E6, - 0x64CF, 0x93F7, 0x64D0, 0xDFA7, 0x64D1, 0x93F8, 0x64D2, 0xC7DC, - 0x64D3, 0x93F9, 0x64D4, 0x93FA, 0x64D5, 0x93FB, 0x64D6, 0x93FC, - 0x64D7, 0xDFA8, 0x64D8, 0xEBA2, 0x64D9, 0x93FD, 0x64DA, 0x93FE, - 0x64DB, 0x9440, 0x64DC, 0x9441, 0x64DD, 0x9442, 0x64DE, 0xCBD3, - 0x64DF, 0x9443, 0x64E0, 0x9444, 0x64E1, 0x9445, 0x64E2, 0xDFAA, - 0x64E3, 0x9446, 0x64E4, 0xDFA9, 0x64E5, 0x9447, 0x64E6, 0xB2C1, - 0x64E7, 0x9448, 0x64E8, 0x9449, 0x64E9, 0x944A, 0x64EA, 0x944B, - 0x64EB, 0x944C, 0x64EC, 0x944D, 0x64ED, 0x944E, 0x64EE, 0x944F, - 0x64EF, 0x9450, 0x64F0, 0x9451, 0x64F1, 0x9452, 0x64F2, 0x9453, - 0x64F3, 0x9454, 0x64F4, 0x9455, 0x64F5, 0x9456, 0x64F6, 0x9457, - 0x64F7, 0x9458, 0x64F8, 0x9459, 0x64F9, 0x945A, 0x64FA, 0x945B, - 0x64FB, 0x945C, 0x64FC, 0x945D, 0x64FD, 0x945E, 0x64FE, 0x945F, - 0x64FF, 0x9460, 0x6500, 0xC5CA, 0x6501, 0x9461, 0x6502, 0x9462, - 0x6503, 0x9463, 0x6504, 0x9464, 0x6505, 0x9465, 0x6506, 0x9466, - 0x6507, 0x9467, 0x6508, 0x9468, 0x6509, 0xDFAB, 0x650A, 0x9469, - 0x650B, 0x946A, 0x650C, 0x946B, 0x650D, 0x946C, 0x650E, 0x946D, - 0x650F, 0x946E, 0x6510, 0x946F, 0x6511, 0x9470, 0x6512, 0xD4DC, - 0x6513, 0x9471, 0x6514, 0x9472, 0x6515, 0x9473, 0x6516, 0x9474, - 0x6517, 0x9475, 0x6518, 0xC8C1, 0x6519, 0x9476, 0x651A, 0x9477, - 0x651B, 0x9478, 0x651C, 0x9479, 0x651D, 0x947A, 0x651E, 0x947B, - 0x651F, 0x947C, 0x6520, 0x947D, 0x6521, 0x947E, 0x6522, 0x9480, - 0x6523, 0x9481, 0x6524, 0x9482, 0x6525, 0xDFAC, 0x6526, 0x9483, - 0x6527, 0x9484, 0x6528, 0x9485, 0x6529, 0x9486, 0x652A, 0x9487, - 0x652B, 0xBEF0, 0x652C, 0x9488, 0x652D, 0x9489, 0x652E, 0xDFAD, - 0x652F, 0xD6A7, 0x6530, 0x948A, 0x6531, 0x948B, 0x6532, 0x948C, - 0x6533, 0x948D, 0x6534, 0xEAB7, 0x6535, 0xEBB6, 0x6536, 0xCAD5, - 0x6537, 0x948E, 0x6538, 0xD8FC, 0x6539, 0xB8C4, 0x653A, 0x948F, - 0x653B, 0xB9A5, 0x653C, 0x9490, 0x653D, 0x9491, 0x653E, 0xB7C5, - 0x653F, 0xD5FE, 0x6540, 0x9492, 0x6541, 0x9493, 0x6542, 0x9494, - 0x6543, 0x9495, 0x6544, 0x9496, 0x6545, 0xB9CA, 0x6546, 0x9497, - 0x6547, 0x9498, 0x6548, 0xD0A7, 0x6549, 0xF4CD, 0x654A, 0x9499, - 0x654B, 0x949A, 0x654C, 0xB5D0, 0x654D, 0x949B, 0x654E, 0x949C, - 0x654F, 0xC3F4, 0x6550, 0x949D, 0x6551, 0xBEC8, 0x6552, 0x949E, - 0x6553, 0x949F, 0x6554, 0x94A0, 0x6555, 0xEBB7, 0x6556, 0xB0BD, - 0x6557, 0x94A1, 0x6558, 0x94A2, 0x6559, 0xBDCC, 0x655A, 0x94A3, - 0x655B, 0xC1B2, 0x655C, 0x94A4, 0x655D, 0xB1D6, 0x655E, 0xB3A8, - 0x655F, 0x94A5, 0x6560, 0x94A6, 0x6561, 0x94A7, 0x6562, 0xB8D2, - 0x6563, 0xC9A2, 0x6564, 0x94A8, 0x6565, 0x94A9, 0x6566, 0xB6D8, - 0x6567, 0x94AA, 0x6568, 0x94AB, 0x6569, 0x94AC, 0x656A, 0x94AD, - 0x656B, 0xEBB8, 0x656C, 0xBEB4, 0x656D, 0x94AE, 0x656E, 0x94AF, - 0x656F, 0x94B0, 0x6570, 0xCAFD, 0x6571, 0x94B1, 0x6572, 0xC7C3, - 0x6573, 0x94B2, 0x6574, 0xD5FB, 0x6575, 0x94B3, 0x6576, 0x94B4, - 0x6577, 0xB7F3, 0x6578, 0x94B5, 0x6579, 0x94B6, 0x657A, 0x94B7, - 0x657B, 0x94B8, 0x657C, 0x94B9, 0x657D, 0x94BA, 0x657E, 0x94BB, - 0x657F, 0x94BC, 0x6580, 0x94BD, 0x6581, 0x94BE, 0x6582, 0x94BF, - 0x6583, 0x94C0, 0x6584, 0x94C1, 0x6585, 0x94C2, 0x6586, 0x94C3, - 0x6587, 0xCEC4, 0x6588, 0x94C4, 0x6589, 0x94C5, 0x658A, 0x94C6, - 0x658B, 0xD5AB, 0x658C, 0xB1F3, 0x658D, 0x94C7, 0x658E, 0x94C8, - 0x658F, 0x94C9, 0x6590, 0xECB3, 0x6591, 0xB0DF, 0x6592, 0x94CA, - 0x6593, 0xECB5, 0x6594, 0x94CB, 0x6595, 0x94CC, 0x6596, 0x94CD, - 0x6597, 0xB6B7, 0x6598, 0x94CE, 0x6599, 0xC1CF, 0x659A, 0x94CF, - 0x659B, 0xF5FA, 0x659C, 0xD0B1, 0x659D, 0x94D0, 0x659E, 0x94D1, - 0x659F, 0xD5E5, 0x65A0, 0x94D2, 0x65A1, 0xCED3, 0x65A2, 0x94D3, - 0x65A3, 0x94D4, 0x65A4, 0xBDEF, 0x65A5, 0xB3E2, 0x65A6, 0x94D5, - 0x65A7, 0xB8AB, 0x65A8, 0x94D6, 0x65A9, 0xD5B6, 0x65AA, 0x94D7, - 0x65AB, 0xEDBD, 0x65AC, 0x94D8, 0x65AD, 0xB6CF, 0x65AE, 0x94D9, - 0x65AF, 0xCBB9, 0x65B0, 0xD0C2, 0x65B1, 0x94DA, 0x65B2, 0x94DB, - 0x65B3, 0x94DC, 0x65B4, 0x94DD, 0x65B5, 0x94DE, 0x65B6, 0x94DF, - 0x65B7, 0x94E0, 0x65B8, 0x94E1, 0x65B9, 0xB7BD, 0x65BA, 0x94E2, - 0x65BB, 0x94E3, 0x65BC, 0xECB6, 0x65BD, 0xCAA9, 0x65BE, 0x94E4, - 0x65BF, 0x94E5, 0x65C0, 0x94E6, 0x65C1, 0xC5D4, 0x65C2, 0x94E7, - 0x65C3, 0xECB9, 0x65C4, 0xECB8, 0x65C5, 0xC2C3, 0x65C6, 0xECB7, - 0x65C7, 0x94E8, 0x65C8, 0x94E9, 0x65C9, 0x94EA, 0x65CA, 0x94EB, - 0x65CB, 0xD0FD, 0x65CC, 0xECBA, 0x65CD, 0x94EC, 0x65CE, 0xECBB, - 0x65CF, 0xD7E5, 0x65D0, 0x94ED, 0x65D1, 0x94EE, 0x65D2, 0xECBC, - 0x65D3, 0x94EF, 0x65D4, 0x94F0, 0x65D5, 0x94F1, 0x65D6, 0xECBD, - 0x65D7, 0xC6EC, 0x65D8, 0x94F2, 0x65D9, 0x94F3, 0x65DA, 0x94F4, - 0x65DB, 0x94F5, 0x65DC, 0x94F6, 0x65DD, 0x94F7, 0x65DE, 0x94F8, - 0x65DF, 0x94F9, 0x65E0, 0xCEDE, 0x65E1, 0x94FA, 0x65E2, 0xBCC8, - 0x65E3, 0x94FB, 0x65E4, 0x94FC, 0x65E5, 0xC8D5, 0x65E6, 0xB5A9, - 0x65E7, 0xBEC9, 0x65E8, 0xD6BC, 0x65E9, 0xD4E7, 0x65EA, 0x94FD, - 0x65EB, 0x94FE, 0x65EC, 0xD1AE, 0x65ED, 0xD0F1, 0x65EE, 0xEAB8, - 0x65EF, 0xEAB9, 0x65F0, 0xEABA, 0x65F1, 0xBAB5, 0x65F2, 0x9540, - 0x65F3, 0x9541, 0x65F4, 0x9542, 0x65F5, 0x9543, 0x65F6, 0xCAB1, - 0x65F7, 0xBFF5, 0x65F8, 0x9544, 0x65F9, 0x9545, 0x65FA, 0xCDFA, - 0x65FB, 0x9546, 0x65FC, 0x9547, 0x65FD, 0x9548, 0x65FE, 0x9549, - 0x65FF, 0x954A, 0x6600, 0xEAC0, 0x6601, 0x954B, 0x6602, 0xB0BA, - 0x6603, 0xEABE, 0x6604, 0x954C, 0x6605, 0x954D, 0x6606, 0xC0A5, - 0x6607, 0x954E, 0x6608, 0x954F, 0x6609, 0x9550, 0x660A, 0xEABB, - 0x660B, 0x9551, 0x660C, 0xB2FD, 0x660D, 0x9552, 0x660E, 0xC3F7, - 0x660F, 0xBBE8, 0x6610, 0x9553, 0x6611, 0x9554, 0x6612, 0x9555, - 0x6613, 0xD2D7, 0x6614, 0xCEF4, 0x6615, 0xEABF, 0x6616, 0x9556, - 0x6617, 0x9557, 0x6618, 0x9558, 0x6619, 0xEABC, 0x661A, 0x9559, - 0x661B, 0x955A, 0x661C, 0x955B, 0x661D, 0xEAC3, 0x661E, 0x955C, - 0x661F, 0xD0C7, 0x6620, 0xD3B3, 0x6621, 0x955D, 0x6622, 0x955E, - 0x6623, 0x955F, 0x6624, 0x9560, 0x6625, 0xB4BA, 0x6626, 0x9561, - 0x6627, 0xC3C1, 0x6628, 0xD7F2, 0x6629, 0x9562, 0x662A, 0x9563, - 0x662B, 0x9564, 0x662C, 0x9565, 0x662D, 0xD5D1, 0x662E, 0x9566, - 0x662F, 0xCAC7, 0x6630, 0x9567, 0x6631, 0xEAC5, 0x6632, 0x9568, - 0x6633, 0x9569, 0x6634, 0xEAC4, 0x6635, 0xEAC7, 0x6636, 0xEAC6, - 0x6637, 0x956A, 0x6638, 0x956B, 0x6639, 0x956C, 0x663A, 0x956D, - 0x663B, 0x956E, 0x663C, 0xD6E7, 0x663D, 0x956F, 0x663E, 0xCFD4, - 0x663F, 0x9570, 0x6640, 0x9571, 0x6641, 0xEACB, 0x6642, 0x9572, - 0x6643, 0xBBCE, 0x6644, 0x9573, 0x6645, 0x9574, 0x6646, 0x9575, - 0x6647, 0x9576, 0x6648, 0x9577, 0x6649, 0x9578, 0x664A, 0x9579, - 0x664B, 0xBDFA, 0x664C, 0xC9CE, 0x664D, 0x957A, 0x664E, 0x957B, - 0x664F, 0xEACC, 0x6650, 0x957C, 0x6651, 0x957D, 0x6652, 0xC9B9, - 0x6653, 0xCFFE, 0x6654, 0xEACA, 0x6655, 0xD4CE, 0x6656, 0xEACD, - 0x6657, 0xEACF, 0x6658, 0x957E, 0x6659, 0x9580, 0x665A, 0xCDED, - 0x665B, 0x9581, 0x665C, 0x9582, 0x665D, 0x9583, 0x665E, 0x9584, - 0x665F, 0xEAC9, 0x6660, 0x9585, 0x6661, 0xEACE, 0x6662, 0x9586, - 0x6663, 0x9587, 0x6664, 0xCEEE, 0x6665, 0x9588, 0x6666, 0xBBDE, - 0x6667, 0x9589, 0x6668, 0xB3BF, 0x6669, 0x958A, 0x666A, 0x958B, - 0x666B, 0x958C, 0x666C, 0x958D, 0x666D, 0x958E, 0x666E, 0xC6D5, - 0x666F, 0xBEB0, 0x6670, 0xCEFA, 0x6671, 0x958F, 0x6672, 0x9590, - 0x6673, 0x9591, 0x6674, 0xC7E7, 0x6675, 0x9592, 0x6676, 0xBEA7, - 0x6677, 0xEAD0, 0x6678, 0x9593, 0x6679, 0x9594, 0x667A, 0xD6C7, - 0x667B, 0x9595, 0x667C, 0x9596, 0x667D, 0x9597, 0x667E, 0xC1C0, - 0x667F, 0x9598, 0x6680, 0x9599, 0x6681, 0x959A, 0x6682, 0xD4DD, - 0x6683, 0x959B, 0x6684, 0xEAD1, 0x6685, 0x959C, 0x6686, 0x959D, - 0x6687, 0xCFBE, 0x6688, 0x959E, 0x6689, 0x959F, 0x668A, 0x95A0, - 0x668B, 0x95A1, 0x668C, 0xEAD2, 0x668D, 0x95A2, 0x668E, 0x95A3, - 0x668F, 0x95A4, 0x6690, 0x95A5, 0x6691, 0xCAEE, 0x6692, 0x95A6, - 0x6693, 0x95A7, 0x6694, 0x95A8, 0x6695, 0x95A9, 0x6696, 0xC5AF, - 0x6697, 0xB0B5, 0x6698, 0x95AA, 0x6699, 0x95AB, 0x669A, 0x95AC, - 0x669B, 0x95AD, 0x669C, 0x95AE, 0x669D, 0xEAD4, 0x669E, 0x95AF, - 0x669F, 0x95B0, 0x66A0, 0x95B1, 0x66A1, 0x95B2, 0x66A2, 0x95B3, - 0x66A3, 0x95B4, 0x66A4, 0x95B5, 0x66A5, 0x95B6, 0x66A6, 0x95B7, - 0x66A7, 0xEAD3, 0x66A8, 0xF4DF, 0x66A9, 0x95B8, 0x66AA, 0x95B9, - 0x66AB, 0x95BA, 0x66AC, 0x95BB, 0x66AD, 0x95BC, 0x66AE, 0xC4BA, - 0x66AF, 0x95BD, 0x66B0, 0x95BE, 0x66B1, 0x95BF, 0x66B2, 0x95C0, - 0x66B3, 0x95C1, 0x66B4, 0xB1A9, 0x66B5, 0x95C2, 0x66B6, 0x95C3, - 0x66B7, 0x95C4, 0x66B8, 0x95C5, 0x66B9, 0xE5DF, 0x66BA, 0x95C6, - 0x66BB, 0x95C7, 0x66BC, 0x95C8, 0x66BD, 0x95C9, 0x66BE, 0xEAD5, - 0x66BF, 0x95CA, 0x66C0, 0x95CB, 0x66C1, 0x95CC, 0x66C2, 0x95CD, - 0x66C3, 0x95CE, 0x66C4, 0x95CF, 0x66C5, 0x95D0, 0x66C6, 0x95D1, - 0x66C7, 0x95D2, 0x66C8, 0x95D3, 0x66C9, 0x95D4, 0x66CA, 0x95D5, - 0x66CB, 0x95D6, 0x66CC, 0x95D7, 0x66CD, 0x95D8, 0x66CE, 0x95D9, - 0x66CF, 0x95DA, 0x66D0, 0x95DB, 0x66D1, 0x95DC, 0x66D2, 0x95DD, - 0x66D3, 0x95DE, 0x66D4, 0x95DF, 0x66D5, 0x95E0, 0x66D6, 0x95E1, - 0x66D7, 0x95E2, 0x66D8, 0x95E3, 0x66D9, 0xCAEF, 0x66DA, 0x95E4, - 0x66DB, 0xEAD6, 0x66DC, 0xEAD7, 0x66DD, 0xC6D8, 0x66DE, 0x95E5, - 0x66DF, 0x95E6, 0x66E0, 0x95E7, 0x66E1, 0x95E8, 0x66E2, 0x95E9, - 0x66E3, 0x95EA, 0x66E4, 0x95EB, 0x66E5, 0x95EC, 0x66E6, 0xEAD8, - 0x66E7, 0x95ED, 0x66E8, 0x95EE, 0x66E9, 0xEAD9, 0x66EA, 0x95EF, - 0x66EB, 0x95F0, 0x66EC, 0x95F1, 0x66ED, 0x95F2, 0x66EE, 0x95F3, - 0x66EF, 0x95F4, 0x66F0, 0xD4BB, 0x66F1, 0x95F5, 0x66F2, 0xC7FA, - 0x66F3, 0xD2B7, 0x66F4, 0xB8FC, 0x66F5, 0x95F6, 0x66F6, 0x95F7, - 0x66F7, 0xEAC2, 0x66F8, 0x95F8, 0x66F9, 0xB2DC, 0x66FA, 0x95F9, - 0x66FB, 0x95FA, 0x66FC, 0xC2FC, 0x66FD, 0x95FB, 0x66FE, 0xD4F8, - 0x66FF, 0xCCE6, 0x6700, 0xD7EE, 0x6701, 0x95FC, 0x6702, 0x95FD, - 0x6703, 0x95FE, 0x6704, 0x9640, 0x6705, 0x9641, 0x6706, 0x9642, - 0x6707, 0x9643, 0x6708, 0xD4C2, 0x6709, 0xD3D0, 0x670A, 0xEBC3, - 0x670B, 0xC5F3, 0x670C, 0x9644, 0x670D, 0xB7FE, 0x670E, 0x9645, - 0x670F, 0x9646, 0x6710, 0xEBD4, 0x6711, 0x9647, 0x6712, 0x9648, - 0x6713, 0x9649, 0x6714, 0xCBB7, 0x6715, 0xEBDE, 0x6716, 0x964A, - 0x6717, 0xC0CA, 0x6718, 0x964B, 0x6719, 0x964C, 0x671A, 0x964D, - 0x671B, 0xCDFB, 0x671C, 0x964E, 0x671D, 0xB3AF, 0x671E, 0x964F, - 0x671F, 0xC6DA, 0x6720, 0x9650, 0x6721, 0x9651, 0x6722, 0x9652, - 0x6723, 0x9653, 0x6724, 0x9654, 0x6725, 0x9655, 0x6726, 0xEBFC, - 0x6727, 0x9656, 0x6728, 0xC4BE, 0x6729, 0x9657, 0x672A, 0xCEB4, - 0x672B, 0xC4A9, 0x672C, 0xB1BE, 0x672D, 0xD4FD, 0x672E, 0x9658, - 0x672F, 0xCAF5, 0x6730, 0x9659, 0x6731, 0xD6EC, 0x6732, 0x965A, - 0x6733, 0x965B, 0x6734, 0xC6D3, 0x6735, 0xB6E4, 0x6736, 0x965C, - 0x6737, 0x965D, 0x6738, 0x965E, 0x6739, 0x965F, 0x673A, 0xBBFA, - 0x673B, 0x9660, 0x673C, 0x9661, 0x673D, 0xD0E0, 0x673E, 0x9662, - 0x673F, 0x9663, 0x6740, 0xC9B1, 0x6741, 0x9664, 0x6742, 0xD4D3, - 0x6743, 0xC8A8, 0x6744, 0x9665, 0x6745, 0x9666, 0x6746, 0xB8CB, - 0x6747, 0x9667, 0x6748, 0xE8BE, 0x6749, 0xC9BC, 0x674A, 0x9668, - 0x674B, 0x9669, 0x674C, 0xE8BB, 0x674D, 0x966A, 0x674E, 0xC0EE, - 0x674F, 0xD0D3, 0x6750, 0xB2C4, 0x6751, 0xB4E5, 0x6752, 0x966B, - 0x6753, 0xE8BC, 0x6754, 0x966C, 0x6755, 0x966D, 0x6756, 0xD5C8, - 0x6757, 0x966E, 0x6758, 0x966F, 0x6759, 0x9670, 0x675A, 0x9671, - 0x675B, 0x9672, 0x675C, 0xB6C5, 0x675D, 0x9673, 0x675E, 0xE8BD, - 0x675F, 0xCAF8, 0x6760, 0xB8DC, 0x6761, 0xCCF5, 0x6762, 0x9674, - 0x6763, 0x9675, 0x6764, 0x9676, 0x6765, 0xC0B4, 0x6766, 0x9677, - 0x6767, 0x9678, 0x6768, 0xD1EE, 0x6769, 0xE8BF, 0x676A, 0xE8C2, - 0x676B, 0x9679, 0x676C, 0x967A, 0x676D, 0xBABC, 0x676E, 0x967B, - 0x676F, 0xB1AD, 0x6770, 0xBDDC, 0x6771, 0x967C, 0x6772, 0xEABD, - 0x6773, 0xE8C3, 0x6774, 0x967D, 0x6775, 0xE8C6, 0x6776, 0x967E, - 0x6777, 0xE8CB, 0x6778, 0x9680, 0x6779, 0x9681, 0x677A, 0x9682, - 0x677B, 0x9683, 0x677C, 0xE8CC, 0x677D, 0x9684, 0x677E, 0xCBC9, - 0x677F, 0xB0E5, 0x6780, 0x9685, 0x6781, 0xBCAB, 0x6782, 0x9686, - 0x6783, 0x9687, 0x6784, 0xB9B9, 0x6785, 0x9688, 0x6786, 0x9689, - 0x6787, 0xE8C1, 0x6788, 0x968A, 0x6789, 0xCDF7, 0x678A, 0x968B, - 0x678B, 0xE8CA, 0x678C, 0x968C, 0x678D, 0x968D, 0x678E, 0x968E, - 0x678F, 0x968F, 0x6790, 0xCEF6, 0x6791, 0x9690, 0x6792, 0x9691, - 0x6793, 0x9692, 0x6794, 0x9693, 0x6795, 0xD5ED, 0x6796, 0x9694, - 0x6797, 0xC1D6, 0x6798, 0xE8C4, 0x6799, 0x9695, 0x679A, 0xC3B6, - 0x679B, 0x9696, 0x679C, 0xB9FB, 0x679D, 0xD6A6, 0x679E, 0xE8C8, - 0x679F, 0x9697, 0x67A0, 0x9698, 0x67A1, 0x9699, 0x67A2, 0xCAE0, - 0x67A3, 0xD4E6, 0x67A4, 0x969A, 0x67A5, 0xE8C0, 0x67A6, 0x969B, - 0x67A7, 0xE8C5, 0x67A8, 0xE8C7, 0x67A9, 0x969C, 0x67AA, 0xC7B9, - 0x67AB, 0xB7E3, 0x67AC, 0x969D, 0x67AD, 0xE8C9, 0x67AE, 0x969E, - 0x67AF, 0xBFDD, 0x67B0, 0xE8D2, 0x67B1, 0x969F, 0x67B2, 0x96A0, - 0x67B3, 0xE8D7, 0x67B4, 0x96A1, 0x67B5, 0xE8D5, 0x67B6, 0xBCDC, - 0x67B7, 0xBCCF, 0x67B8, 0xE8DB, 0x67B9, 0x96A2, 0x67BA, 0x96A3, - 0x67BB, 0x96A4, 0x67BC, 0x96A5, 0x67BD, 0x96A6, 0x67BE, 0x96A7, - 0x67BF, 0x96A8, 0x67C0, 0x96A9, 0x67C1, 0xE8DE, 0x67C2, 0x96AA, - 0x67C3, 0xE8DA, 0x67C4, 0xB1FA, 0x67C5, 0x96AB, 0x67C6, 0x96AC, - 0x67C7, 0x96AD, 0x67C8, 0x96AE, 0x67C9, 0x96AF, 0x67CA, 0x96B0, - 0x67CB, 0x96B1, 0x67CC, 0x96B2, 0x67CD, 0x96B3, 0x67CE, 0x96B4, - 0x67CF, 0xB0D8, 0x67D0, 0xC4B3, 0x67D1, 0xB8CC, 0x67D2, 0xC6E2, - 0x67D3, 0xC8BE, 0x67D4, 0xC8E1, 0x67D5, 0x96B5, 0x67D6, 0x96B6, - 0x67D7, 0x96B7, 0x67D8, 0xE8CF, 0x67D9, 0xE8D4, 0x67DA, 0xE8D6, - 0x67DB, 0x96B8, 0x67DC, 0xB9F1, 0x67DD, 0xE8D8, 0x67DE, 0xD7F5, - 0x67DF, 0x96B9, 0x67E0, 0xC4FB, 0x67E1, 0x96BA, 0x67E2, 0xE8DC, - 0x67E3, 0x96BB, 0x67E4, 0x96BC, 0x67E5, 0xB2E9, 0x67E6, 0x96BD, - 0x67E7, 0x96BE, 0x67E8, 0x96BF, 0x67E9, 0xE8D1, 0x67EA, 0x96C0, - 0x67EB, 0x96C1, 0x67EC, 0xBCED, 0x67ED, 0x96C2, 0x67EE, 0x96C3, - 0x67EF, 0xBFC2, 0x67F0, 0xE8CD, 0x67F1, 0xD6F9, 0x67F2, 0x96C4, - 0x67F3, 0xC1F8, 0x67F4, 0xB2F1, 0x67F5, 0x96C5, 0x67F6, 0x96C6, - 0x67F7, 0x96C7, 0x67F8, 0x96C8, 0x67F9, 0x96C9, 0x67FA, 0x96CA, - 0x67FB, 0x96CB, 0x67FC, 0x96CC, 0x67FD, 0xE8DF, 0x67FE, 0x96CD, - 0x67FF, 0xCAC1, 0x6800, 0xE8D9, 0x6801, 0x96CE, 0x6802, 0x96CF, - 0x6803, 0x96D0, 0x6804, 0x96D1, 0x6805, 0xD5A4, 0x6806, 0x96D2, - 0x6807, 0xB1EA, 0x6808, 0xD5BB, 0x6809, 0xE8CE, 0x680A, 0xE8D0, - 0x680B, 0xB6B0, 0x680C, 0xE8D3, 0x680D, 0x96D3, 0x680E, 0xE8DD, - 0x680F, 0xC0B8, 0x6810, 0x96D4, 0x6811, 0xCAF7, 0x6812, 0x96D5, - 0x6813, 0xCBA8, 0x6814, 0x96D6, 0x6815, 0x96D7, 0x6816, 0xC6DC, - 0x6817, 0xC0F5, 0x6818, 0x96D8, 0x6819, 0x96D9, 0x681A, 0x96DA, - 0x681B, 0x96DB, 0x681C, 0x96DC, 0x681D, 0xE8E9, 0x681E, 0x96DD, - 0x681F, 0x96DE, 0x6820, 0x96DF, 0x6821, 0xD0A3, 0x6822, 0x96E0, - 0x6823, 0x96E1, 0x6824, 0x96E2, 0x6825, 0x96E3, 0x6826, 0x96E4, - 0x6827, 0x96E5, 0x6828, 0x96E6, 0x6829, 0xE8F2, 0x682A, 0xD6EA, - 0x682B, 0x96E7, 0x682C, 0x96E8, 0x682D, 0x96E9, 0x682E, 0x96EA, - 0x682F, 0x96EB, 0x6830, 0x96EC, 0x6831, 0x96ED, 0x6832, 0xE8E0, - 0x6833, 0xE8E1, 0x6834, 0x96EE, 0x6835, 0x96EF, 0x6836, 0x96F0, - 0x6837, 0xD1F9, 0x6838, 0xBACB, 0x6839, 0xB8F9, 0x683A, 0x96F1, - 0x683B, 0x96F2, 0x683C, 0xB8F1, 0x683D, 0xD4D4, 0x683E, 0xE8EF, - 0x683F, 0x96F3, 0x6840, 0xE8EE, 0x6841, 0xE8EC, 0x6842, 0xB9F0, - 0x6843, 0xCCD2, 0x6844, 0xE8E6, 0x6845, 0xCEA6, 0x6846, 0xBFF2, - 0x6847, 0x96F4, 0x6848, 0xB0B8, 0x6849, 0xE8F1, 0x684A, 0xE8F0, - 0x684B, 0x96F5, 0x684C, 0xD7C0, 0x684D, 0x96F6, 0x684E, 0xE8E4, - 0x684F, 0x96F7, 0x6850, 0xCDA9, 0x6851, 0xC9A3, 0x6852, 0x96F8, - 0x6853, 0xBBB8, 0x6854, 0xBDDB, 0x6855, 0xE8EA, 0x6856, 0x96F9, - 0x6857, 0x96FA, 0x6858, 0x96FB, 0x6859, 0x96FC, 0x685A, 0x96FD, - 0x685B, 0x96FE, 0x685C, 0x9740, 0x685D, 0x9741, 0x685E, 0x9742, - 0x685F, 0x9743, 0x6860, 0xE8E2, 0x6861, 0xE8E3, 0x6862, 0xE8E5, - 0x6863, 0xB5B5, 0x6864, 0xE8E7, 0x6865, 0xC7C5, 0x6866, 0xE8EB, - 0x6867, 0xE8ED, 0x6868, 0xBDB0, 0x6869, 0xD7AE, 0x686A, 0x9744, - 0x686B, 0xE8F8, 0x686C, 0x9745, 0x686D, 0x9746, 0x686E, 0x9747, - 0x686F, 0x9748, 0x6870, 0x9749, 0x6871, 0x974A, 0x6872, 0x974B, - 0x6873, 0x974C, 0x6874, 0xE8F5, 0x6875, 0x974D, 0x6876, 0xCDB0, - 0x6877, 0xE8F6, 0x6878, 0x974E, 0x6879, 0x974F, 0x687A, 0x9750, - 0x687B, 0x9751, 0x687C, 0x9752, 0x687D, 0x9753, 0x687E, 0x9754, - 0x687F, 0x9755, 0x6880, 0x9756, 0x6881, 0xC1BA, 0x6882, 0x9757, - 0x6883, 0xE8E8, 0x6884, 0x9758, 0x6885, 0xC3B7, 0x6886, 0xB0F0, - 0x6887, 0x9759, 0x6888, 0x975A, 0x6889, 0x975B, 0x688A, 0x975C, - 0x688B, 0x975D, 0x688C, 0x975E, 0x688D, 0x975F, 0x688E, 0x9760, - 0x688F, 0xE8F4, 0x6890, 0x9761, 0x6891, 0x9762, 0x6892, 0x9763, - 0x6893, 0xE8F7, 0x6894, 0x9764, 0x6895, 0x9765, 0x6896, 0x9766, - 0x6897, 0xB9A3, 0x6898, 0x9767, 0x6899, 0x9768, 0x689A, 0x9769, - 0x689B, 0x976A, 0x689C, 0x976B, 0x689D, 0x976C, 0x689E, 0x976D, - 0x689F, 0x976E, 0x68A0, 0x976F, 0x68A1, 0x9770, 0x68A2, 0xC9D2, - 0x68A3, 0x9771, 0x68A4, 0x9772, 0x68A5, 0x9773, 0x68A6, 0xC3CE, - 0x68A7, 0xCEE0, 0x68A8, 0xC0E6, 0x68A9, 0x9774, 0x68AA, 0x9775, - 0x68AB, 0x9776, 0x68AC, 0x9777, 0x68AD, 0xCBF3, 0x68AE, 0x9778, - 0x68AF, 0xCCDD, 0x68B0, 0xD0B5, 0x68B1, 0x9779, 0x68B2, 0x977A, - 0x68B3, 0xCAE1, 0x68B4, 0x977B, 0x68B5, 0xE8F3, 0x68B6, 0x977C, - 0x68B7, 0x977D, 0x68B8, 0x977E, 0x68B9, 0x9780, 0x68BA, 0x9781, - 0x68BB, 0x9782, 0x68BC, 0x9783, 0x68BD, 0x9784, 0x68BE, 0x9785, - 0x68BF, 0x9786, 0x68C0, 0xBCEC, 0x68C1, 0x9787, 0x68C2, 0xE8F9, - 0x68C3, 0x9788, 0x68C4, 0x9789, 0x68C5, 0x978A, 0x68C6, 0x978B, - 0x68C7, 0x978C, 0x68C8, 0x978D, 0x68C9, 0xC3DE, 0x68CA, 0x978E, - 0x68CB, 0xC6E5, 0x68CC, 0x978F, 0x68CD, 0xB9F7, 0x68CE, 0x9790, - 0x68CF, 0x9791, 0x68D0, 0x9792, 0x68D1, 0x9793, 0x68D2, 0xB0F4, - 0x68D3, 0x9794, 0x68D4, 0x9795, 0x68D5, 0xD7D8, 0x68D6, 0x9796, - 0x68D7, 0x9797, 0x68D8, 0xBCAC, 0x68D9, 0x9798, 0x68DA, 0xC5EF, - 0x68DB, 0x9799, 0x68DC, 0x979A, 0x68DD, 0x979B, 0x68DE, 0x979C, - 0x68DF, 0x979D, 0x68E0, 0xCCC4, 0x68E1, 0x979E, 0x68E2, 0x979F, - 0x68E3, 0xE9A6, 0x68E4, 0x97A0, 0x68E5, 0x97A1, 0x68E6, 0x97A2, - 0x68E7, 0x97A3, 0x68E8, 0x97A4, 0x68E9, 0x97A5, 0x68EA, 0x97A6, - 0x68EB, 0x97A7, 0x68EC, 0x97A8, 0x68ED, 0x97A9, 0x68EE, 0xC9AD, - 0x68EF, 0x97AA, 0x68F0, 0xE9A2, 0x68F1, 0xC0E2, 0x68F2, 0x97AB, - 0x68F3, 0x97AC, 0x68F4, 0x97AD, 0x68F5, 0xBFC3, 0x68F6, 0x97AE, - 0x68F7, 0x97AF, 0x68F8, 0x97B0, 0x68F9, 0xE8FE, 0x68FA, 0xB9D7, - 0x68FB, 0x97B1, 0x68FC, 0xE8FB, 0x68FD, 0x97B2, 0x68FE, 0x97B3, - 0x68FF, 0x97B4, 0x6900, 0x97B5, 0x6901, 0xE9A4, 0x6902, 0x97B6, - 0x6903, 0x97B7, 0x6904, 0x97B8, 0x6905, 0xD2CE, 0x6906, 0x97B9, - 0x6907, 0x97BA, 0x6908, 0x97BB, 0x6909, 0x97BC, 0x690A, 0x97BD, - 0x690B, 0xE9A3, 0x690C, 0x97BE, 0x690D, 0xD6B2, 0x690E, 0xD7B5, - 0x690F, 0x97BF, 0x6910, 0xE9A7, 0x6911, 0x97C0, 0x6912, 0xBDB7, - 0x6913, 0x97C1, 0x6914, 0x97C2, 0x6915, 0x97C3, 0x6916, 0x97C4, - 0x6917, 0x97C5, 0x6918, 0x97C6, 0x6919, 0x97C7, 0x691A, 0x97C8, - 0x691B, 0x97C9, 0x691C, 0x97CA, 0x691D, 0x97CB, 0x691E, 0x97CC, - 0x691F, 0xE8FC, 0x6920, 0xE8FD, 0x6921, 0x97CD, 0x6922, 0x97CE, - 0x6923, 0x97CF, 0x6924, 0xE9A1, 0x6925, 0x97D0, 0x6926, 0x97D1, - 0x6927, 0x97D2, 0x6928, 0x97D3, 0x6929, 0x97D4, 0x692A, 0x97D5, - 0x692B, 0x97D6, 0x692C, 0x97D7, 0x692D, 0xCDD6, 0x692E, 0x97D8, - 0x692F, 0x97D9, 0x6930, 0xD2AC, 0x6931, 0x97DA, 0x6932, 0x97DB, - 0x6933, 0x97DC, 0x6934, 0xE9B2, 0x6935, 0x97DD, 0x6936, 0x97DE, - 0x6937, 0x97DF, 0x6938, 0x97E0, 0x6939, 0xE9A9, 0x693A, 0x97E1, - 0x693B, 0x97E2, 0x693C, 0x97E3, 0x693D, 0xB4AA, 0x693E, 0x97E4, - 0x693F, 0xB4BB, 0x6940, 0x97E5, 0x6941, 0x97E6, 0x6942, 0xE9AB, - 0x6943, 0x97E7, 0x6944, 0x97E8, 0x6945, 0x97E9, 0x6946, 0x97EA, - 0x6947, 0x97EB, 0x6948, 0x97EC, 0x6949, 0x97ED, 0x694A, 0x97EE, - 0x694B, 0x97EF, 0x694C, 0x97F0, 0x694D, 0x97F1, 0x694E, 0x97F2, - 0x694F, 0x97F3, 0x6950, 0x97F4, 0x6951, 0x97F5, 0x6952, 0x97F6, - 0x6953, 0x97F7, 0x6954, 0xD0A8, 0x6955, 0x97F8, 0x6956, 0x97F9, - 0x6957, 0xE9A5, 0x6958, 0x97FA, 0x6959, 0x97FB, 0x695A, 0xB3FE, - 0x695B, 0x97FC, 0x695C, 0x97FD, 0x695D, 0xE9AC, 0x695E, 0xC0E3, - 0x695F, 0x97FE, 0x6960, 0xE9AA, 0x6961, 0x9840, 0x6962, 0x9841, - 0x6963, 0xE9B9, 0x6964, 0x9842, 0x6965, 0x9843, 0x6966, 0xE9B8, - 0x6967, 0x9844, 0x6968, 0x9845, 0x6969, 0x9846, 0x696A, 0x9847, - 0x696B, 0xE9AE, 0x696C, 0x9848, 0x696D, 0x9849, 0x696E, 0xE8FA, - 0x696F, 0x984A, 0x6970, 0x984B, 0x6971, 0xE9A8, 0x6972, 0x984C, - 0x6973, 0x984D, 0x6974, 0x984E, 0x6975, 0x984F, 0x6976, 0x9850, - 0x6977, 0xBFAC, 0x6978, 0xE9B1, 0x6979, 0xE9BA, 0x697A, 0x9851, - 0x697B, 0x9852, 0x697C, 0xC2A5, 0x697D, 0x9853, 0x697E, 0x9854, - 0x697F, 0x9855, 0x6980, 0xE9AF, 0x6981, 0x9856, 0x6982, 0xB8C5, - 0x6983, 0x9857, 0x6984, 0xE9AD, 0x6985, 0x9858, 0x6986, 0xD3DC, - 0x6987, 0xE9B4, 0x6988, 0xE9B5, 0x6989, 0xE9B7, 0x698A, 0x9859, - 0x698B, 0x985A, 0x698C, 0x985B, 0x698D, 0xE9C7, 0x698E, 0x985C, - 0x698F, 0x985D, 0x6990, 0x985E, 0x6991, 0x985F, 0x6992, 0x9860, - 0x6993, 0x9861, 0x6994, 0xC0C6, 0x6995, 0xE9C5, 0x6996, 0x9862, - 0x6997, 0x9863, 0x6998, 0xE9B0, 0x6999, 0x9864, 0x699A, 0x9865, - 0x699B, 0xE9BB, 0x699C, 0xB0F1, 0x699D, 0x9866, 0x699E, 0x9867, - 0x699F, 0x9868, 0x69A0, 0x9869, 0x69A1, 0x986A, 0x69A2, 0x986B, - 0x69A3, 0x986C, 0x69A4, 0x986D, 0x69A5, 0x986E, 0x69A6, 0x986F, - 0x69A7, 0xE9BC, 0x69A8, 0xD5A5, 0x69A9, 0x9870, 0x69AA, 0x9871, - 0x69AB, 0xE9BE, 0x69AC, 0x9872, 0x69AD, 0xE9BF, 0x69AE, 0x9873, - 0x69AF, 0x9874, 0x69B0, 0x9875, 0x69B1, 0xE9C1, 0x69B2, 0x9876, - 0x69B3, 0x9877, 0x69B4, 0xC1F1, 0x69B5, 0x9878, 0x69B6, 0x9879, - 0x69B7, 0xC8B6, 0x69B8, 0x987A, 0x69B9, 0x987B, 0x69BA, 0x987C, - 0x69BB, 0xE9BD, 0x69BC, 0x987D, 0x69BD, 0x987E, 0x69BE, 0x9880, - 0x69BF, 0x9881, 0x69C0, 0x9882, 0x69C1, 0xE9C2, 0x69C2, 0x9883, - 0x69C3, 0x9884, 0x69C4, 0x9885, 0x69C5, 0x9886, 0x69C6, 0x9887, - 0x69C7, 0x9888, 0x69C8, 0x9889, 0x69C9, 0x988A, 0x69CA, 0xE9C3, - 0x69CB, 0x988B, 0x69CC, 0xE9B3, 0x69CD, 0x988C, 0x69CE, 0xE9B6, - 0x69CF, 0x988D, 0x69D0, 0xBBB1, 0x69D1, 0x988E, 0x69D2, 0x988F, - 0x69D3, 0x9890, 0x69D4, 0xE9C0, 0x69D5, 0x9891, 0x69D6, 0x9892, - 0x69D7, 0x9893, 0x69D8, 0x9894, 0x69D9, 0x9895, 0x69DA, 0x9896, - 0x69DB, 0xBCF7, 0x69DC, 0x9897, 0x69DD, 0x9898, 0x69DE, 0x9899, - 0x69DF, 0xE9C4, 0x69E0, 0xE9C6, 0x69E1, 0x989A, 0x69E2, 0x989B, - 0x69E3, 0x989C, 0x69E4, 0x989D, 0x69E5, 0x989E, 0x69E6, 0x989F, - 0x69E7, 0x98A0, 0x69E8, 0x98A1, 0x69E9, 0x98A2, 0x69EA, 0x98A3, - 0x69EB, 0x98A4, 0x69EC, 0x98A5, 0x69ED, 0xE9CA, 0x69EE, 0x98A6, - 0x69EF, 0x98A7, 0x69F0, 0x98A8, 0x69F1, 0x98A9, 0x69F2, 0xE9CE, - 0x69F3, 0x98AA, 0x69F4, 0x98AB, 0x69F5, 0x98AC, 0x69F6, 0x98AD, - 0x69F7, 0x98AE, 0x69F8, 0x98AF, 0x69F9, 0x98B0, 0x69FA, 0x98B1, - 0x69FB, 0x98B2, 0x69FC, 0x98B3, 0x69FD, 0xB2DB, 0x69FE, 0x98B4, - 0x69FF, 0xE9C8, 0x6A00, 0x98B5, 0x6A01, 0x98B6, 0x6A02, 0x98B7, - 0x6A03, 0x98B8, 0x6A04, 0x98B9, 0x6A05, 0x98BA, 0x6A06, 0x98BB, - 0x6A07, 0x98BC, 0x6A08, 0x98BD, 0x6A09, 0x98BE, 0x6A0A, 0xB7AE, - 0x6A0B, 0x98BF, 0x6A0C, 0x98C0, 0x6A0D, 0x98C1, 0x6A0E, 0x98C2, - 0x6A0F, 0x98C3, 0x6A10, 0x98C4, 0x6A11, 0x98C5, 0x6A12, 0x98C6, - 0x6A13, 0x98C7, 0x6A14, 0x98C8, 0x6A15, 0x98C9, 0x6A16, 0x98CA, - 0x6A17, 0xE9CB, 0x6A18, 0xE9CC, 0x6A19, 0x98CB, 0x6A1A, 0x98CC, - 0x6A1B, 0x98CD, 0x6A1C, 0x98CE, 0x6A1D, 0x98CF, 0x6A1E, 0x98D0, - 0x6A1F, 0xD5C1, 0x6A20, 0x98D1, 0x6A21, 0xC4A3, 0x6A22, 0x98D2, - 0x6A23, 0x98D3, 0x6A24, 0x98D4, 0x6A25, 0x98D5, 0x6A26, 0x98D6, - 0x6A27, 0x98D7, 0x6A28, 0xE9D8, 0x6A29, 0x98D8, 0x6A2A, 0xBAE1, - 0x6A2B, 0x98D9, 0x6A2C, 0x98DA, 0x6A2D, 0x98DB, 0x6A2E, 0x98DC, - 0x6A2F, 0xE9C9, 0x6A30, 0x98DD, 0x6A31, 0xD3A3, 0x6A32, 0x98DE, - 0x6A33, 0x98DF, 0x6A34, 0x98E0, 0x6A35, 0xE9D4, 0x6A36, 0x98E1, - 0x6A37, 0x98E2, 0x6A38, 0x98E3, 0x6A39, 0x98E4, 0x6A3A, 0x98E5, - 0x6A3B, 0x98E6, 0x6A3C, 0x98E7, 0x6A3D, 0xE9D7, 0x6A3E, 0xE9D0, - 0x6A3F, 0x98E8, 0x6A40, 0x98E9, 0x6A41, 0x98EA, 0x6A42, 0x98EB, - 0x6A43, 0x98EC, 0x6A44, 0xE9CF, 0x6A45, 0x98ED, 0x6A46, 0x98EE, - 0x6A47, 0xC7C1, 0x6A48, 0x98EF, 0x6A49, 0x98F0, 0x6A4A, 0x98F1, - 0x6A4B, 0x98F2, 0x6A4C, 0x98F3, 0x6A4D, 0x98F4, 0x6A4E, 0x98F5, - 0x6A4F, 0x98F6, 0x6A50, 0xE9D2, 0x6A51, 0x98F7, 0x6A52, 0x98F8, - 0x6A53, 0x98F9, 0x6A54, 0x98FA, 0x6A55, 0x98FB, 0x6A56, 0x98FC, - 0x6A57, 0x98FD, 0x6A58, 0xE9D9, 0x6A59, 0xB3C8, 0x6A5A, 0x98FE, - 0x6A5B, 0xE9D3, 0x6A5C, 0x9940, 0x6A5D, 0x9941, 0x6A5E, 0x9942, - 0x6A5F, 0x9943, 0x6A60, 0x9944, 0x6A61, 0xCFF0, 0x6A62, 0x9945, - 0x6A63, 0x9946, 0x6A64, 0x9947, 0x6A65, 0xE9CD, 0x6A66, 0x9948, - 0x6A67, 0x9949, 0x6A68, 0x994A, 0x6A69, 0x994B, 0x6A6A, 0x994C, - 0x6A6B, 0x994D, 0x6A6C, 0x994E, 0x6A6D, 0x994F, 0x6A6E, 0x9950, - 0x6A6F, 0x9951, 0x6A70, 0x9952, 0x6A71, 0xB3F7, 0x6A72, 0x9953, - 0x6A73, 0x9954, 0x6A74, 0x9955, 0x6A75, 0x9956, 0x6A76, 0x9957, - 0x6A77, 0x9958, 0x6A78, 0x9959, 0x6A79, 0xE9D6, 0x6A7A, 0x995A, - 0x6A7B, 0x995B, 0x6A7C, 0xE9DA, 0x6A7D, 0x995C, 0x6A7E, 0x995D, - 0x6A7F, 0x995E, 0x6A80, 0xCCB4, 0x6A81, 0x995F, 0x6A82, 0x9960, - 0x6A83, 0x9961, 0x6A84, 0xCFAD, 0x6A85, 0x9962, 0x6A86, 0x9963, - 0x6A87, 0x9964, 0x6A88, 0x9965, 0x6A89, 0x9966, 0x6A8A, 0x9967, - 0x6A8B, 0x9968, 0x6A8C, 0x9969, 0x6A8D, 0x996A, 0x6A8E, 0xE9D5, - 0x6A8F, 0x996B, 0x6A90, 0xE9DC, 0x6A91, 0xE9DB, 0x6A92, 0x996C, - 0x6A93, 0x996D, 0x6A94, 0x996E, 0x6A95, 0x996F, 0x6A96, 0x9970, - 0x6A97, 0xE9DE, 0x6A98, 0x9971, 0x6A99, 0x9972, 0x6A9A, 0x9973, - 0x6A9B, 0x9974, 0x6A9C, 0x9975, 0x6A9D, 0x9976, 0x6A9E, 0x9977, - 0x6A9F, 0x9978, 0x6AA0, 0xE9D1, 0x6AA1, 0x9979, 0x6AA2, 0x997A, - 0x6AA3, 0x997B, 0x6AA4, 0x997C, 0x6AA5, 0x997D, 0x6AA6, 0x997E, - 0x6AA7, 0x9980, 0x6AA8, 0x9981, 0x6AA9, 0xE9DD, 0x6AAA, 0x9982, - 0x6AAB, 0xE9DF, 0x6AAC, 0xC3CA, 0x6AAD, 0x9983, 0x6AAE, 0x9984, - 0x6AAF, 0x9985, 0x6AB0, 0x9986, 0x6AB1, 0x9987, 0x6AB2, 0x9988, - 0x6AB3, 0x9989, 0x6AB4, 0x998A, 0x6AB5, 0x998B, 0x6AB6, 0x998C, - 0x6AB7, 0x998D, 0x6AB8, 0x998E, 0x6AB9, 0x998F, 0x6ABA, 0x9990, - 0x6ABB, 0x9991, 0x6ABC, 0x9992, 0x6ABD, 0x9993, 0x6ABE, 0x9994, - 0x6ABF, 0x9995, 0x6AC0, 0x9996, 0x6AC1, 0x9997, 0x6AC2, 0x9998, - 0x6AC3, 0x9999, 0x6AC4, 0x999A, 0x6AC5, 0x999B, 0x6AC6, 0x999C, - 0x6AC7, 0x999D, 0x6AC8, 0x999E, 0x6AC9, 0x999F, 0x6ACA, 0x99A0, - 0x6ACB, 0x99A1, 0x6ACC, 0x99A2, 0x6ACD, 0x99A3, 0x6ACE, 0x99A4, - 0x6ACF, 0x99A5, 0x6AD0, 0x99A6, 0x6AD1, 0x99A7, 0x6AD2, 0x99A8, - 0x6AD3, 0x99A9, 0x6AD4, 0x99AA, 0x6AD5, 0x99AB, 0x6AD6, 0x99AC, - 0x6AD7, 0x99AD, 0x6AD8, 0x99AE, 0x6AD9, 0x99AF, 0x6ADA, 0x99B0, - 0x6ADB, 0x99B1, 0x6ADC, 0x99B2, 0x6ADD, 0x99B3, 0x6ADE, 0x99B4, - 0x6ADF, 0x99B5, 0x6AE0, 0x99B6, 0x6AE1, 0x99B7, 0x6AE2, 0x99B8, - 0x6AE3, 0x99B9, 0x6AE4, 0x99BA, 0x6AE5, 0x99BB, 0x6AE6, 0x99BC, - 0x6AE7, 0x99BD, 0x6AE8, 0x99BE, 0x6AE9, 0x99BF, 0x6AEA, 0x99C0, - 0x6AEB, 0x99C1, 0x6AEC, 0x99C2, 0x6AED, 0x99C3, 0x6AEE, 0x99C4, - 0x6AEF, 0x99C5, 0x6AF0, 0x99C6, 0x6AF1, 0x99C7, 0x6AF2, 0x99C8, - 0x6AF3, 0x99C9, 0x6AF4, 0x99CA, 0x6AF5, 0x99CB, 0x6AF6, 0x99CC, - 0x6AF7, 0x99CD, 0x6AF8, 0x99CE, 0x6AF9, 0x99CF, 0x6AFA, 0x99D0, - 0x6AFB, 0x99D1, 0x6AFC, 0x99D2, 0x6AFD, 0x99D3, 0x6AFE, 0x99D4, - 0x6AFF, 0x99D5, 0x6B00, 0x99D6, 0x6B01, 0x99D7, 0x6B02, 0x99D8, - 0x6B03, 0x99D9, 0x6B04, 0x99DA, 0x6B05, 0x99DB, 0x6B06, 0x99DC, - 0x6B07, 0x99DD, 0x6B08, 0x99DE, 0x6B09, 0x99DF, 0x6B0A, 0x99E0, - 0x6B0B, 0x99E1, 0x6B0C, 0x99E2, 0x6B0D, 0x99E3, 0x6B0E, 0x99E4, - 0x6B0F, 0x99E5, 0x6B10, 0x99E6, 0x6B11, 0x99E7, 0x6B12, 0x99E8, - 0x6B13, 0x99E9, 0x6B14, 0x99EA, 0x6B15, 0x99EB, 0x6B16, 0x99EC, - 0x6B17, 0x99ED, 0x6B18, 0x99EE, 0x6B19, 0x99EF, 0x6B1A, 0x99F0, - 0x6B1B, 0x99F1, 0x6B1C, 0x99F2, 0x6B1D, 0x99F3, 0x6B1E, 0x99F4, - 0x6B1F, 0x99F5, 0x6B20, 0xC7B7, 0x6B21, 0xB4CE, 0x6B22, 0xBBB6, - 0x6B23, 0xD0C0, 0x6B24, 0xECA3, 0x6B25, 0x99F6, 0x6B26, 0x99F7, - 0x6B27, 0xC5B7, 0x6B28, 0x99F8, 0x6B29, 0x99F9, 0x6B2A, 0x99FA, - 0x6B2B, 0x99FB, 0x6B2C, 0x99FC, 0x6B2D, 0x99FD, 0x6B2E, 0x99FE, - 0x6B2F, 0x9A40, 0x6B30, 0x9A41, 0x6B31, 0x9A42, 0x6B32, 0xD3FB, - 0x6B33, 0x9A43, 0x6B34, 0x9A44, 0x6B35, 0x9A45, 0x6B36, 0x9A46, - 0x6B37, 0xECA4, 0x6B38, 0x9A47, 0x6B39, 0xECA5, 0x6B3A, 0xC6DB, - 0x6B3B, 0x9A48, 0x6B3C, 0x9A49, 0x6B3D, 0x9A4A, 0x6B3E, 0xBFEE, - 0x6B3F, 0x9A4B, 0x6B40, 0x9A4C, 0x6B41, 0x9A4D, 0x6B42, 0x9A4E, - 0x6B43, 0xECA6, 0x6B44, 0x9A4F, 0x6B45, 0x9A50, 0x6B46, 0xECA7, - 0x6B47, 0xD0AA, 0x6B48, 0x9A51, 0x6B49, 0xC7B8, 0x6B4A, 0x9A52, - 0x6B4B, 0x9A53, 0x6B4C, 0xB8E8, 0x6B4D, 0x9A54, 0x6B4E, 0x9A55, - 0x6B4F, 0x9A56, 0x6B50, 0x9A57, 0x6B51, 0x9A58, 0x6B52, 0x9A59, - 0x6B53, 0x9A5A, 0x6B54, 0x9A5B, 0x6B55, 0x9A5C, 0x6B56, 0x9A5D, - 0x6B57, 0x9A5E, 0x6B58, 0x9A5F, 0x6B59, 0xECA8, 0x6B5A, 0x9A60, - 0x6B5B, 0x9A61, 0x6B5C, 0x9A62, 0x6B5D, 0x9A63, 0x6B5E, 0x9A64, - 0x6B5F, 0x9A65, 0x6B60, 0x9A66, 0x6B61, 0x9A67, 0x6B62, 0xD6B9, - 0x6B63, 0xD5FD, 0x6B64, 0xB4CB, 0x6B65, 0xB2BD, 0x6B66, 0xCEE4, - 0x6B67, 0xC6E7, 0x6B68, 0x9A68, 0x6B69, 0x9A69, 0x6B6A, 0xCDE1, - 0x6B6B, 0x9A6A, 0x6B6C, 0x9A6B, 0x6B6D, 0x9A6C, 0x6B6E, 0x9A6D, - 0x6B6F, 0x9A6E, 0x6B70, 0x9A6F, 0x6B71, 0x9A70, 0x6B72, 0x9A71, - 0x6B73, 0x9A72, 0x6B74, 0x9A73, 0x6B75, 0x9A74, 0x6B76, 0x9A75, - 0x6B77, 0x9A76, 0x6B78, 0x9A77, 0x6B79, 0xB4F5, 0x6B7A, 0x9A78, - 0x6B7B, 0xCBC0, 0x6B7C, 0xBCDF, 0x6B7D, 0x9A79, 0x6B7E, 0x9A7A, - 0x6B7F, 0x9A7B, 0x6B80, 0x9A7C, 0x6B81, 0xE9E2, 0x6B82, 0xE9E3, - 0x6B83, 0xD1EA, 0x6B84, 0xE9E5, 0x6B85, 0x9A7D, 0x6B86, 0xB4F9, - 0x6B87, 0xE9E4, 0x6B88, 0x9A7E, 0x6B89, 0xD1B3, 0x6B8A, 0xCAE2, - 0x6B8B, 0xB2D0, 0x6B8C, 0x9A80, 0x6B8D, 0xE9E8, 0x6B8E, 0x9A81, - 0x6B8F, 0x9A82, 0x6B90, 0x9A83, 0x6B91, 0x9A84, 0x6B92, 0xE9E6, - 0x6B93, 0xE9E7, 0x6B94, 0x9A85, 0x6B95, 0x9A86, 0x6B96, 0xD6B3, - 0x6B97, 0x9A87, 0x6B98, 0x9A88, 0x6B99, 0x9A89, 0x6B9A, 0xE9E9, - 0x6B9B, 0xE9EA, 0x6B9C, 0x9A8A, 0x6B9D, 0x9A8B, 0x6B9E, 0x9A8C, - 0x6B9F, 0x9A8D, 0x6BA0, 0x9A8E, 0x6BA1, 0xE9EB, 0x6BA2, 0x9A8F, - 0x6BA3, 0x9A90, 0x6BA4, 0x9A91, 0x6BA5, 0x9A92, 0x6BA6, 0x9A93, - 0x6BA7, 0x9A94, 0x6BA8, 0x9A95, 0x6BA9, 0x9A96, 0x6BAA, 0xE9EC, - 0x6BAB, 0x9A97, 0x6BAC, 0x9A98, 0x6BAD, 0x9A99, 0x6BAE, 0x9A9A, - 0x6BAF, 0x9A9B, 0x6BB0, 0x9A9C, 0x6BB1, 0x9A9D, 0x6BB2, 0x9A9E, - 0x6BB3, 0xECAF, 0x6BB4, 0xC5B9, 0x6BB5, 0xB6CE, 0x6BB6, 0x9A9F, - 0x6BB7, 0xD2F3, 0x6BB8, 0x9AA0, 0x6BB9, 0x9AA1, 0x6BBA, 0x9AA2, - 0x6BBB, 0x9AA3, 0x6BBC, 0x9AA4, 0x6BBD, 0x9AA5, 0x6BBE, 0x9AA6, - 0x6BBF, 0xB5EE, 0x6BC0, 0x9AA7, 0x6BC1, 0xBBD9, 0x6BC2, 0xECB1, - 0x6BC3, 0x9AA8, 0x6BC4, 0x9AA9, 0x6BC5, 0xD2E3, 0x6BC6, 0x9AAA, - 0x6BC7, 0x9AAB, 0x6BC8, 0x9AAC, 0x6BC9, 0x9AAD, 0x6BCA, 0x9AAE, - 0x6BCB, 0xCEE3, 0x6BCC, 0x9AAF, 0x6BCD, 0xC4B8, 0x6BCE, 0x9AB0, - 0x6BCF, 0xC3BF, 0x6BD0, 0x9AB1, 0x6BD1, 0x9AB2, 0x6BD2, 0xB6BE, - 0x6BD3, 0xD8B9, 0x6BD4, 0xB1C8, 0x6BD5, 0xB1CF, 0x6BD6, 0xB1D1, - 0x6BD7, 0xC5FE, 0x6BD8, 0x9AB3, 0x6BD9, 0xB1D0, 0x6BDA, 0x9AB4, - 0x6BDB, 0xC3AB, 0x6BDC, 0x9AB5, 0x6BDD, 0x9AB6, 0x6BDE, 0x9AB7, - 0x6BDF, 0x9AB8, 0x6BE0, 0x9AB9, 0x6BE1, 0xD5B1, 0x6BE2, 0x9ABA, - 0x6BE3, 0x9ABB, 0x6BE4, 0x9ABC, 0x6BE5, 0x9ABD, 0x6BE6, 0x9ABE, - 0x6BE7, 0x9ABF, 0x6BE8, 0x9AC0, 0x6BE9, 0x9AC1, 0x6BEA, 0xEBA4, - 0x6BEB, 0xBAC1, 0x6BEC, 0x9AC2, 0x6BED, 0x9AC3, 0x6BEE, 0x9AC4, - 0x6BEF, 0xCCBA, 0x6BF0, 0x9AC5, 0x6BF1, 0x9AC6, 0x6BF2, 0x9AC7, - 0x6BF3, 0xEBA5, 0x6BF4, 0x9AC8, 0x6BF5, 0xEBA7, 0x6BF6, 0x9AC9, - 0x6BF7, 0x9ACA, 0x6BF8, 0x9ACB, 0x6BF9, 0xEBA8, 0x6BFA, 0x9ACC, - 0x6BFB, 0x9ACD, 0x6BFC, 0x9ACE, 0x6BFD, 0xEBA6, 0x6BFE, 0x9ACF, - 0x6BFF, 0x9AD0, 0x6C00, 0x9AD1, 0x6C01, 0x9AD2, 0x6C02, 0x9AD3, - 0x6C03, 0x9AD4, 0x6C04, 0x9AD5, 0x6C05, 0xEBA9, 0x6C06, 0xEBAB, - 0x6C07, 0xEBAA, 0x6C08, 0x9AD6, 0x6C09, 0x9AD7, 0x6C0A, 0x9AD8, - 0x6C0B, 0x9AD9, 0x6C0C, 0x9ADA, 0x6C0D, 0xEBAC, 0x6C0E, 0x9ADB, - 0x6C0F, 0xCACF, 0x6C10, 0xD8B5, 0x6C11, 0xC3F1, 0x6C12, 0x9ADC, - 0x6C13, 0xC3A5, 0x6C14, 0xC6F8, 0x6C15, 0xEBAD, 0x6C16, 0xC4CA, - 0x6C17, 0x9ADD, 0x6C18, 0xEBAE, 0x6C19, 0xEBAF, 0x6C1A, 0xEBB0, - 0x6C1B, 0xB7D5, 0x6C1C, 0x9ADE, 0x6C1D, 0x9ADF, 0x6C1E, 0x9AE0, - 0x6C1F, 0xB7FA, 0x6C20, 0x9AE1, 0x6C21, 0xEBB1, 0x6C22, 0xC7E2, - 0x6C23, 0x9AE2, 0x6C24, 0xEBB3, 0x6C25, 0x9AE3, 0x6C26, 0xBAA4, - 0x6C27, 0xD1F5, 0x6C28, 0xB0B1, 0x6C29, 0xEBB2, 0x6C2A, 0xEBB4, - 0x6C2B, 0x9AE4, 0x6C2C, 0x9AE5, 0x6C2D, 0x9AE6, 0x6C2E, 0xB5AA, - 0x6C2F, 0xC2C8, 0x6C30, 0xC7E8, 0x6C31, 0x9AE7, 0x6C32, 0xEBB5, - 0x6C33, 0x9AE8, 0x6C34, 0xCBAE, 0x6C35, 0xE3DF, 0x6C36, 0x9AE9, - 0x6C37, 0x9AEA, 0x6C38, 0xD3C0, 0x6C39, 0x9AEB, 0x6C3A, 0x9AEC, - 0x6C3B, 0x9AED, 0x6C3C, 0x9AEE, 0x6C3D, 0xD9DB, 0x6C3E, 0x9AEF, - 0x6C3F, 0x9AF0, 0x6C40, 0xCDA1, 0x6C41, 0xD6AD, 0x6C42, 0xC7F3, - 0x6C43, 0x9AF1, 0x6C44, 0x9AF2, 0x6C45, 0x9AF3, 0x6C46, 0xD9E0, - 0x6C47, 0xBBE3, 0x6C48, 0x9AF4, 0x6C49, 0xBABA, 0x6C4A, 0xE3E2, - 0x6C4B, 0x9AF5, 0x6C4C, 0x9AF6, 0x6C4D, 0x9AF7, 0x6C4E, 0x9AF8, - 0x6C4F, 0x9AF9, 0x6C50, 0xCFAB, 0x6C51, 0x9AFA, 0x6C52, 0x9AFB, - 0x6C53, 0x9AFC, 0x6C54, 0xE3E0, 0x6C55, 0xC9C7, 0x6C56, 0x9AFD, - 0x6C57, 0xBAB9, 0x6C58, 0x9AFE, 0x6C59, 0x9B40, 0x6C5A, 0x9B41, - 0x6C5B, 0xD1B4, 0x6C5C, 0xE3E1, 0x6C5D, 0xC8EA, 0x6C5E, 0xB9AF, - 0x6C5F, 0xBDAD, 0x6C60, 0xB3D8, 0x6C61, 0xCEDB, 0x6C62, 0x9B42, - 0x6C63, 0x9B43, 0x6C64, 0xCCC0, 0x6C65, 0x9B44, 0x6C66, 0x9B45, - 0x6C67, 0x9B46, 0x6C68, 0xE3E8, 0x6C69, 0xE3E9, 0x6C6A, 0xCDF4, - 0x6C6B, 0x9B47, 0x6C6C, 0x9B48, 0x6C6D, 0x9B49, 0x6C6E, 0x9B4A, - 0x6C6F, 0x9B4B, 0x6C70, 0xCCAD, 0x6C71, 0x9B4C, 0x6C72, 0xBCB3, - 0x6C73, 0x9B4D, 0x6C74, 0xE3EA, 0x6C75, 0x9B4E, 0x6C76, 0xE3EB, - 0x6C77, 0x9B4F, 0x6C78, 0x9B50, 0x6C79, 0xD0DA, 0x6C7A, 0x9B51, - 0x6C7B, 0x9B52, 0x6C7C, 0x9B53, 0x6C7D, 0xC6FB, 0x6C7E, 0xB7DA, - 0x6C7F, 0x9B54, 0x6C80, 0x9B55, 0x6C81, 0xC7DF, 0x6C82, 0xD2CA, - 0x6C83, 0xCED6, 0x6C84, 0x9B56, 0x6C85, 0xE3E4, 0x6C86, 0xE3EC, - 0x6C87, 0x9B57, 0x6C88, 0xC9F2, 0x6C89, 0xB3C1, 0x6C8A, 0x9B58, - 0x6C8B, 0x9B59, 0x6C8C, 0xE3E7, 0x6C8D, 0x9B5A, 0x6C8E, 0x9B5B, - 0x6C8F, 0xC6E3, 0x6C90, 0xE3E5, 0x6C91, 0x9B5C, 0x6C92, 0x9B5D, - 0x6C93, 0xEDB3, 0x6C94, 0xE3E6, 0x6C95, 0x9B5E, 0x6C96, 0x9B5F, - 0x6C97, 0x9B60, 0x6C98, 0x9B61, 0x6C99, 0xC9B3, 0x6C9A, 0x9B62, - 0x6C9B, 0xC5E6, 0x6C9C, 0x9B63, 0x6C9D, 0x9B64, 0x6C9E, 0x9B65, - 0x6C9F, 0xB9B5, 0x6CA0, 0x9B66, 0x6CA1, 0xC3BB, 0x6CA2, 0x9B67, - 0x6CA3, 0xE3E3, 0x6CA4, 0xC5BD, 0x6CA5, 0xC1A4, 0x6CA6, 0xC2D9, - 0x6CA7, 0xB2D7, 0x6CA8, 0x9B68, 0x6CA9, 0xE3ED, 0x6CAA, 0xBBA6, - 0x6CAB, 0xC4AD, 0x6CAC, 0x9B69, 0x6CAD, 0xE3F0, 0x6CAE, 0xBEDA, - 0x6CAF, 0x9B6A, 0x6CB0, 0x9B6B, 0x6CB1, 0xE3FB, 0x6CB2, 0xE3F5, - 0x6CB3, 0xBAD3, 0x6CB4, 0x9B6C, 0x6CB5, 0x9B6D, 0x6CB6, 0x9B6E, - 0x6CB7, 0x9B6F, 0x6CB8, 0xB7D0, 0x6CB9, 0xD3CD, 0x6CBA, 0x9B70, - 0x6CBB, 0xD6CE, 0x6CBC, 0xD5D3, 0x6CBD, 0xB9C1, 0x6CBE, 0xD5B4, - 0x6CBF, 0xD1D8, 0x6CC0, 0x9B71, 0x6CC1, 0x9B72, 0x6CC2, 0x9B73, - 0x6CC3, 0x9B74, 0x6CC4, 0xD0B9, 0x6CC5, 0xC7F6, 0x6CC6, 0x9B75, - 0x6CC7, 0x9B76, 0x6CC8, 0x9B77, 0x6CC9, 0xC8AA, 0x6CCA, 0xB2B4, - 0x6CCB, 0x9B78, 0x6CCC, 0xC3DA, 0x6CCD, 0x9B79, 0x6CCE, 0x9B7A, - 0x6CCF, 0x9B7B, 0x6CD0, 0xE3EE, 0x6CD1, 0x9B7C, 0x6CD2, 0x9B7D, - 0x6CD3, 0xE3FC, 0x6CD4, 0xE3EF, 0x6CD5, 0xB7A8, 0x6CD6, 0xE3F7, - 0x6CD7, 0xE3F4, 0x6CD8, 0x9B7E, 0x6CD9, 0x9B80, 0x6CDA, 0x9B81, - 0x6CDB, 0xB7BA, 0x6CDC, 0x9B82, 0x6CDD, 0x9B83, 0x6CDE, 0xC5A2, - 0x6CDF, 0x9B84, 0x6CE0, 0xE3F6, 0x6CE1, 0xC5DD, 0x6CE2, 0xB2A8, - 0x6CE3, 0xC6FC, 0x6CE4, 0x9B85, 0x6CE5, 0xC4E0, 0x6CE6, 0x9B86, - 0x6CE7, 0x9B87, 0x6CE8, 0xD7A2, 0x6CE9, 0x9B88, 0x6CEA, 0xC0E1, - 0x6CEB, 0xE3F9, 0x6CEC, 0x9B89, 0x6CED, 0x9B8A, 0x6CEE, 0xE3FA, - 0x6CEF, 0xE3FD, 0x6CF0, 0xCCA9, 0x6CF1, 0xE3F3, 0x6CF2, 0x9B8B, - 0x6CF3, 0xD3BE, 0x6CF4, 0x9B8C, 0x6CF5, 0xB1C3, 0x6CF6, 0xEDB4, - 0x6CF7, 0xE3F1, 0x6CF8, 0xE3F2, 0x6CF9, 0x9B8D, 0x6CFA, 0xE3F8, - 0x6CFB, 0xD0BA, 0x6CFC, 0xC6C3, 0x6CFD, 0xD4F3, 0x6CFE, 0xE3FE, - 0x6CFF, 0x9B8E, 0x6D00, 0x9B8F, 0x6D01, 0xBDE0, 0x6D02, 0x9B90, - 0x6D03, 0x9B91, 0x6D04, 0xE4A7, 0x6D05, 0x9B92, 0x6D06, 0x9B93, - 0x6D07, 0xE4A6, 0x6D08, 0x9B94, 0x6D09, 0x9B95, 0x6D0A, 0x9B96, - 0x6D0B, 0xD1F3, 0x6D0C, 0xE4A3, 0x6D0D, 0x9B97, 0x6D0E, 0xE4A9, - 0x6D0F, 0x9B98, 0x6D10, 0x9B99, 0x6D11, 0x9B9A, 0x6D12, 0xC8F7, - 0x6D13, 0x9B9B, 0x6D14, 0x9B9C, 0x6D15, 0x9B9D, 0x6D16, 0x9B9E, - 0x6D17, 0xCFB4, 0x6D18, 0x9B9F, 0x6D19, 0xE4A8, 0x6D1A, 0xE4AE, - 0x6D1B, 0xC2E5, 0x6D1C, 0x9BA0, 0x6D1D, 0x9BA1, 0x6D1E, 0xB6B4, - 0x6D1F, 0x9BA2, 0x6D20, 0x9BA3, 0x6D21, 0x9BA4, 0x6D22, 0x9BA5, - 0x6D23, 0x9BA6, 0x6D24, 0x9BA7, 0x6D25, 0xBDF2, 0x6D26, 0x9BA8, - 0x6D27, 0xE4A2, 0x6D28, 0x9BA9, 0x6D29, 0x9BAA, 0x6D2A, 0xBAE9, - 0x6D2B, 0xE4AA, 0x6D2C, 0x9BAB, 0x6D2D, 0x9BAC, 0x6D2E, 0xE4AC, - 0x6D2F, 0x9BAD, 0x6D30, 0x9BAE, 0x6D31, 0xB6FD, 0x6D32, 0xD6DE, - 0x6D33, 0xE4B2, 0x6D34, 0x9BAF, 0x6D35, 0xE4AD, 0x6D36, 0x9BB0, - 0x6D37, 0x9BB1, 0x6D38, 0x9BB2, 0x6D39, 0xE4A1, 0x6D3A, 0x9BB3, - 0x6D3B, 0xBBEE, 0x6D3C, 0xCDDD, 0x6D3D, 0xC7A2, 0x6D3E, 0xC5C9, - 0x6D3F, 0x9BB4, 0x6D40, 0x9BB5, 0x6D41, 0xC1F7, 0x6D42, 0x9BB6, - 0x6D43, 0xE4A4, 0x6D44, 0x9BB7, 0x6D45, 0xC7B3, 0x6D46, 0xBDAC, - 0x6D47, 0xBDBD, 0x6D48, 0xE4A5, 0x6D49, 0x9BB8, 0x6D4A, 0xD7C7, - 0x6D4B, 0xB2E2, 0x6D4C, 0x9BB9, 0x6D4D, 0xE4AB, 0x6D4E, 0xBCC3, - 0x6D4F, 0xE4AF, 0x6D50, 0x9BBA, 0x6D51, 0xBBEB, 0x6D52, 0xE4B0, - 0x6D53, 0xC5A8, 0x6D54, 0xE4B1, 0x6D55, 0x9BBB, 0x6D56, 0x9BBC, - 0x6D57, 0x9BBD, 0x6D58, 0x9BBE, 0x6D59, 0xD5E3, 0x6D5A, 0xBFA3, - 0x6D5B, 0x9BBF, 0x6D5C, 0xE4BA, 0x6D5D, 0x9BC0, 0x6D5E, 0xE4B7, - 0x6D5F, 0x9BC1, 0x6D60, 0xE4BB, 0x6D61, 0x9BC2, 0x6D62, 0x9BC3, - 0x6D63, 0xE4BD, 0x6D64, 0x9BC4, 0x6D65, 0x9BC5, 0x6D66, 0xC6D6, - 0x6D67, 0x9BC6, 0x6D68, 0x9BC7, 0x6D69, 0xBAC6, 0x6D6A, 0xC0CB, - 0x6D6B, 0x9BC8, 0x6D6C, 0x9BC9, 0x6D6D, 0x9BCA, 0x6D6E, 0xB8A1, - 0x6D6F, 0xE4B4, 0x6D70, 0x9BCB, 0x6D71, 0x9BCC, 0x6D72, 0x9BCD, - 0x6D73, 0x9BCE, 0x6D74, 0xD4A1, 0x6D75, 0x9BCF, 0x6D76, 0x9BD0, - 0x6D77, 0xBAA3, 0x6D78, 0xBDFE, 0x6D79, 0x9BD1, 0x6D7A, 0x9BD2, - 0x6D7B, 0x9BD3, 0x6D7C, 0xE4BC, 0x6D7D, 0x9BD4, 0x6D7E, 0x9BD5, - 0x6D7F, 0x9BD6, 0x6D80, 0x9BD7, 0x6D81, 0x9BD8, 0x6D82, 0xCDBF, - 0x6D83, 0x9BD9, 0x6D84, 0x9BDA, 0x6D85, 0xC4F9, 0x6D86, 0x9BDB, - 0x6D87, 0x9BDC, 0x6D88, 0xCFFB, 0x6D89, 0xC9E6, 0x6D8A, 0x9BDD, - 0x6D8B, 0x9BDE, 0x6D8C, 0xD3BF, 0x6D8D, 0x9BDF, 0x6D8E, 0xCFD1, - 0x6D8F, 0x9BE0, 0x6D90, 0x9BE1, 0x6D91, 0xE4B3, 0x6D92, 0x9BE2, - 0x6D93, 0xE4B8, 0x6D94, 0xE4B9, 0x6D95, 0xCCE9, 0x6D96, 0x9BE3, - 0x6D97, 0x9BE4, 0x6D98, 0x9BE5, 0x6D99, 0x9BE6, 0x6D9A, 0x9BE7, - 0x6D9B, 0xCCCE, 0x6D9C, 0x9BE8, 0x6D9D, 0xC0D4, 0x6D9E, 0xE4B5, - 0x6D9F, 0xC1B0, 0x6DA0, 0xE4B6, 0x6DA1, 0xCED0, 0x6DA2, 0x9BE9, - 0x6DA3, 0xBBC1, 0x6DA4, 0xB5D3, 0x6DA5, 0x9BEA, 0x6DA6, 0xC8F3, - 0x6DA7, 0xBDA7, 0x6DA8, 0xD5C7, 0x6DA9, 0xC9AC, 0x6DAA, 0xB8A2, - 0x6DAB, 0xE4CA, 0x6DAC, 0x9BEB, 0x6DAD, 0x9BEC, 0x6DAE, 0xE4CC, - 0x6DAF, 0xD1C4, 0x6DB0, 0x9BED, 0x6DB1, 0x9BEE, 0x6DB2, 0xD2BA, - 0x6DB3, 0x9BEF, 0x6DB4, 0x9BF0, 0x6DB5, 0xBAAD, 0x6DB6, 0x9BF1, - 0x6DB7, 0x9BF2, 0x6DB8, 0xBAD4, 0x6DB9, 0x9BF3, 0x6DBA, 0x9BF4, - 0x6DBB, 0x9BF5, 0x6DBC, 0x9BF6, 0x6DBD, 0x9BF7, 0x6DBE, 0x9BF8, - 0x6DBF, 0xE4C3, 0x6DC0, 0xB5ED, 0x6DC1, 0x9BF9, 0x6DC2, 0x9BFA, - 0x6DC3, 0x9BFB, 0x6DC4, 0xD7CD, 0x6DC5, 0xE4C0, 0x6DC6, 0xCFFD, - 0x6DC7, 0xE4BF, 0x6DC8, 0x9BFC, 0x6DC9, 0x9BFD, 0x6DCA, 0x9BFE, - 0x6DCB, 0xC1DC, 0x6DCC, 0xCCCA, 0x6DCD, 0x9C40, 0x6DCE, 0x9C41, - 0x6DCF, 0x9C42, 0x6DD0, 0x9C43, 0x6DD1, 0xCAE7, 0x6DD2, 0x9C44, - 0x6DD3, 0x9C45, 0x6DD4, 0x9C46, 0x6DD5, 0x9C47, 0x6DD6, 0xC4D7, - 0x6DD7, 0x9C48, 0x6DD8, 0xCCD4, 0x6DD9, 0xE4C8, 0x6DDA, 0x9C49, - 0x6DDB, 0x9C4A, 0x6DDC, 0x9C4B, 0x6DDD, 0xE4C7, 0x6DDE, 0xE4C1, - 0x6DDF, 0x9C4C, 0x6DE0, 0xE4C4, 0x6DE1, 0xB5AD, 0x6DE2, 0x9C4D, - 0x6DE3, 0x9C4E, 0x6DE4, 0xD3D9, 0x6DE5, 0x9C4F, 0x6DE6, 0xE4C6, - 0x6DE7, 0x9C50, 0x6DE8, 0x9C51, 0x6DE9, 0x9C52, 0x6DEA, 0x9C53, - 0x6DEB, 0xD2F9, 0x6DEC, 0xB4E3, 0x6DED, 0x9C54, 0x6DEE, 0xBBB4, - 0x6DEF, 0x9C55, 0x6DF0, 0x9C56, 0x6DF1, 0xC9EE, 0x6DF2, 0x9C57, - 0x6DF3, 0xB4BE, 0x6DF4, 0x9C58, 0x6DF5, 0x9C59, 0x6DF6, 0x9C5A, - 0x6DF7, 0xBBEC, 0x6DF8, 0x9C5B, 0x6DF9, 0xD1CD, 0x6DFA, 0x9C5C, - 0x6DFB, 0xCCED, 0x6DFC, 0xEDB5, 0x6DFD, 0x9C5D, 0x6DFE, 0x9C5E, - 0x6DFF, 0x9C5F, 0x6E00, 0x9C60, 0x6E01, 0x9C61, 0x6E02, 0x9C62, - 0x6E03, 0x9C63, 0x6E04, 0x9C64, 0x6E05, 0xC7E5, 0x6E06, 0x9C65, - 0x6E07, 0x9C66, 0x6E08, 0x9C67, 0x6E09, 0x9C68, 0x6E0A, 0xD4A8, - 0x6E0B, 0x9C69, 0x6E0C, 0xE4CB, 0x6E0D, 0xD7D5, 0x6E0E, 0xE4C2, - 0x6E0F, 0x9C6A, 0x6E10, 0xBDA5, 0x6E11, 0xE4C5, 0x6E12, 0x9C6B, - 0x6E13, 0x9C6C, 0x6E14, 0xD3E6, 0x6E15, 0x9C6D, 0x6E16, 0xE4C9, - 0x6E17, 0xC9F8, 0x6E18, 0x9C6E, 0x6E19, 0x9C6F, 0x6E1A, 0xE4BE, - 0x6E1B, 0x9C70, 0x6E1C, 0x9C71, 0x6E1D, 0xD3E5, 0x6E1E, 0x9C72, - 0x6E1F, 0x9C73, 0x6E20, 0xC7FE, 0x6E21, 0xB6C9, 0x6E22, 0x9C74, - 0x6E23, 0xD4FC, 0x6E24, 0xB2B3, 0x6E25, 0xE4D7, 0x6E26, 0x9C75, - 0x6E27, 0x9C76, 0x6E28, 0x9C77, 0x6E29, 0xCEC2, 0x6E2A, 0x9C78, - 0x6E2B, 0xE4CD, 0x6E2C, 0x9C79, 0x6E2D, 0xCEBC, 0x6E2E, 0x9C7A, - 0x6E2F, 0xB8DB, 0x6E30, 0x9C7B, 0x6E31, 0x9C7C, 0x6E32, 0xE4D6, - 0x6E33, 0x9C7D, 0x6E34, 0xBFCA, 0x6E35, 0x9C7E, 0x6E36, 0x9C80, - 0x6E37, 0x9C81, 0x6E38, 0xD3CE, 0x6E39, 0x9C82, 0x6E3A, 0xC3EC, - 0x6E3B, 0x9C83, 0x6E3C, 0x9C84, 0x6E3D, 0x9C85, 0x6E3E, 0x9C86, - 0x6E3F, 0x9C87, 0x6E40, 0x9C88, 0x6E41, 0x9C89, 0x6E42, 0x9C8A, - 0x6E43, 0xC5C8, 0x6E44, 0xE4D8, 0x6E45, 0x9C8B, 0x6E46, 0x9C8C, - 0x6E47, 0x9C8D, 0x6E48, 0x9C8E, 0x6E49, 0x9C8F, 0x6E4A, 0x9C90, - 0x6E4B, 0x9C91, 0x6E4C, 0x9C92, 0x6E4D, 0xCDC4, 0x6E4E, 0xE4CF, - 0x6E4F, 0x9C93, 0x6E50, 0x9C94, 0x6E51, 0x9C95, 0x6E52, 0x9C96, - 0x6E53, 0xE4D4, 0x6E54, 0xE4D5, 0x6E55, 0x9C97, 0x6E56, 0xBAFE, - 0x6E57, 0x9C98, 0x6E58, 0xCFE6, 0x6E59, 0x9C99, 0x6E5A, 0x9C9A, - 0x6E5B, 0xD5BF, 0x6E5C, 0x9C9B, 0x6E5D, 0x9C9C, 0x6E5E, 0x9C9D, - 0x6E5F, 0xE4D2, 0x6E60, 0x9C9E, 0x6E61, 0x9C9F, 0x6E62, 0x9CA0, - 0x6E63, 0x9CA1, 0x6E64, 0x9CA2, 0x6E65, 0x9CA3, 0x6E66, 0x9CA4, - 0x6E67, 0x9CA5, 0x6E68, 0x9CA6, 0x6E69, 0x9CA7, 0x6E6A, 0x9CA8, - 0x6E6B, 0xE4D0, 0x6E6C, 0x9CA9, 0x6E6D, 0x9CAA, 0x6E6E, 0xE4CE, - 0x6E6F, 0x9CAB, 0x6E70, 0x9CAC, 0x6E71, 0x9CAD, 0x6E72, 0x9CAE, - 0x6E73, 0x9CAF, 0x6E74, 0x9CB0, 0x6E75, 0x9CB1, 0x6E76, 0x9CB2, - 0x6E77, 0x9CB3, 0x6E78, 0x9CB4, 0x6E79, 0x9CB5, 0x6E7A, 0x9CB6, - 0x6E7B, 0x9CB7, 0x6E7C, 0x9CB8, 0x6E7D, 0x9CB9, 0x6E7E, 0xCDE5, - 0x6E7F, 0xCAAA, 0x6E80, 0x9CBA, 0x6E81, 0x9CBB, 0x6E82, 0x9CBC, - 0x6E83, 0xC0A3, 0x6E84, 0x9CBD, 0x6E85, 0xBDA6, 0x6E86, 0xE4D3, - 0x6E87, 0x9CBE, 0x6E88, 0x9CBF, 0x6E89, 0xB8C8, 0x6E8A, 0x9CC0, - 0x6E8B, 0x9CC1, 0x6E8C, 0x9CC2, 0x6E8D, 0x9CC3, 0x6E8E, 0x9CC4, - 0x6E8F, 0xE4E7, 0x6E90, 0xD4B4, 0x6E91, 0x9CC5, 0x6E92, 0x9CC6, - 0x6E93, 0x9CC7, 0x6E94, 0x9CC8, 0x6E95, 0x9CC9, 0x6E96, 0x9CCA, - 0x6E97, 0x9CCB, 0x6E98, 0xE4DB, 0x6E99, 0x9CCC, 0x6E9A, 0x9CCD, - 0x6E9B, 0x9CCE, 0x6E9C, 0xC1EF, 0x6E9D, 0x9CCF, 0x6E9E, 0x9CD0, - 0x6E9F, 0xE4E9, 0x6EA0, 0x9CD1, 0x6EA1, 0x9CD2, 0x6EA2, 0xD2E7, - 0x6EA3, 0x9CD3, 0x6EA4, 0x9CD4, 0x6EA5, 0xE4DF, 0x6EA6, 0x9CD5, - 0x6EA7, 0xE4E0, 0x6EA8, 0x9CD6, 0x6EA9, 0x9CD7, 0x6EAA, 0xCFAA, - 0x6EAB, 0x9CD8, 0x6EAC, 0x9CD9, 0x6EAD, 0x9CDA, 0x6EAE, 0x9CDB, - 0x6EAF, 0xCBDD, 0x6EB0, 0x9CDC, 0x6EB1, 0xE4DA, 0x6EB2, 0xE4D1, - 0x6EB3, 0x9CDD, 0x6EB4, 0xE4E5, 0x6EB5, 0x9CDE, 0x6EB6, 0xC8DC, - 0x6EB7, 0xE4E3, 0x6EB8, 0x9CDF, 0x6EB9, 0x9CE0, 0x6EBA, 0xC4E7, - 0x6EBB, 0xE4E2, 0x6EBC, 0x9CE1, 0x6EBD, 0xE4E1, 0x6EBE, 0x9CE2, - 0x6EBF, 0x9CE3, 0x6EC0, 0x9CE4, 0x6EC1, 0xB3FC, 0x6EC2, 0xE4E8, - 0x6EC3, 0x9CE5, 0x6EC4, 0x9CE6, 0x6EC5, 0x9CE7, 0x6EC6, 0x9CE8, - 0x6EC7, 0xB5E1, 0x6EC8, 0x9CE9, 0x6EC9, 0x9CEA, 0x6ECA, 0x9CEB, - 0x6ECB, 0xD7CC, 0x6ECC, 0x9CEC, 0x6ECD, 0x9CED, 0x6ECE, 0x9CEE, - 0x6ECF, 0xE4E6, 0x6ED0, 0x9CEF, 0x6ED1, 0xBBAC, 0x6ED2, 0x9CF0, - 0x6ED3, 0xD7D2, 0x6ED4, 0xCCCF, 0x6ED5, 0xEBF8, 0x6ED6, 0x9CF1, - 0x6ED7, 0xE4E4, 0x6ED8, 0x9CF2, 0x6ED9, 0x9CF3, 0x6EDA, 0xB9F6, - 0x6EDB, 0x9CF4, 0x6EDC, 0x9CF5, 0x6EDD, 0x9CF6, 0x6EDE, 0xD6CD, - 0x6EDF, 0xE4D9, 0x6EE0, 0xE4DC, 0x6EE1, 0xC2FA, 0x6EE2, 0xE4DE, - 0x6EE3, 0x9CF7, 0x6EE4, 0xC2CB, 0x6EE5, 0xC0C4, 0x6EE6, 0xC2D0, - 0x6EE7, 0x9CF8, 0x6EE8, 0xB1F5, 0x6EE9, 0xCCB2, 0x6EEA, 0x9CF9, - 0x6EEB, 0x9CFA, 0x6EEC, 0x9CFB, 0x6EED, 0x9CFC, 0x6EEE, 0x9CFD, - 0x6EEF, 0x9CFE, 0x6EF0, 0x9D40, 0x6EF1, 0x9D41, 0x6EF2, 0x9D42, - 0x6EF3, 0x9D43, 0x6EF4, 0xB5CE, 0x6EF5, 0x9D44, 0x6EF6, 0x9D45, - 0x6EF7, 0x9D46, 0x6EF8, 0x9D47, 0x6EF9, 0xE4EF, 0x6EFA, 0x9D48, - 0x6EFB, 0x9D49, 0x6EFC, 0x9D4A, 0x6EFD, 0x9D4B, 0x6EFE, 0x9D4C, - 0x6EFF, 0x9D4D, 0x6F00, 0x9D4E, 0x6F01, 0x9D4F, 0x6F02, 0xC6AF, - 0x6F03, 0x9D50, 0x6F04, 0x9D51, 0x6F05, 0x9D52, 0x6F06, 0xC6E1, - 0x6F07, 0x9D53, 0x6F08, 0x9D54, 0x6F09, 0xE4F5, 0x6F0A, 0x9D55, - 0x6F0B, 0x9D56, 0x6F0C, 0x9D57, 0x6F0D, 0x9D58, 0x6F0E, 0x9D59, - 0x6F0F, 0xC2A9, 0x6F10, 0x9D5A, 0x6F11, 0x9D5B, 0x6F12, 0x9D5C, - 0x6F13, 0xC0EC, 0x6F14, 0xD1DD, 0x6F15, 0xE4EE, 0x6F16, 0x9D5D, - 0x6F17, 0x9D5E, 0x6F18, 0x9D5F, 0x6F19, 0x9D60, 0x6F1A, 0x9D61, - 0x6F1B, 0x9D62, 0x6F1C, 0x9D63, 0x6F1D, 0x9D64, 0x6F1E, 0x9D65, - 0x6F1F, 0x9D66, 0x6F20, 0xC4AE, 0x6F21, 0x9D67, 0x6F22, 0x9D68, - 0x6F23, 0x9D69, 0x6F24, 0xE4ED, 0x6F25, 0x9D6A, 0x6F26, 0x9D6B, - 0x6F27, 0x9D6C, 0x6F28, 0x9D6D, 0x6F29, 0xE4F6, 0x6F2A, 0xE4F4, - 0x6F2B, 0xC2FE, 0x6F2C, 0x9D6E, 0x6F2D, 0xE4DD, 0x6F2E, 0x9D6F, - 0x6F2F, 0xE4F0, 0x6F30, 0x9D70, 0x6F31, 0xCAFE, 0x6F32, 0x9D71, - 0x6F33, 0xD5C4, 0x6F34, 0x9D72, 0x6F35, 0x9D73, 0x6F36, 0xE4F1, - 0x6F37, 0x9D74, 0x6F38, 0x9D75, 0x6F39, 0x9D76, 0x6F3A, 0x9D77, - 0x6F3B, 0x9D78, 0x6F3C, 0x9D79, 0x6F3D, 0x9D7A, 0x6F3E, 0xD1FA, - 0x6F3F, 0x9D7B, 0x6F40, 0x9D7C, 0x6F41, 0x9D7D, 0x6F42, 0x9D7E, - 0x6F43, 0x9D80, 0x6F44, 0x9D81, 0x6F45, 0x9D82, 0x6F46, 0xE4EB, - 0x6F47, 0xE4EC, 0x6F48, 0x9D83, 0x6F49, 0x9D84, 0x6F4A, 0x9D85, - 0x6F4B, 0xE4F2, 0x6F4C, 0x9D86, 0x6F4D, 0xCEAB, 0x6F4E, 0x9D87, - 0x6F4F, 0x9D88, 0x6F50, 0x9D89, 0x6F51, 0x9D8A, 0x6F52, 0x9D8B, - 0x6F53, 0x9D8C, 0x6F54, 0x9D8D, 0x6F55, 0x9D8E, 0x6F56, 0x9D8F, - 0x6F57, 0x9D90, 0x6F58, 0xC5CB, 0x6F59, 0x9D91, 0x6F5A, 0x9D92, - 0x6F5B, 0x9D93, 0x6F5C, 0xC7B1, 0x6F5D, 0x9D94, 0x6F5E, 0xC2BA, - 0x6F5F, 0x9D95, 0x6F60, 0x9D96, 0x6F61, 0x9D97, 0x6F62, 0xE4EA, - 0x6F63, 0x9D98, 0x6F64, 0x9D99, 0x6F65, 0x9D9A, 0x6F66, 0xC1CA, - 0x6F67, 0x9D9B, 0x6F68, 0x9D9C, 0x6F69, 0x9D9D, 0x6F6A, 0x9D9E, - 0x6F6B, 0x9D9F, 0x6F6C, 0x9DA0, 0x6F6D, 0xCCB6, 0x6F6E, 0xB3B1, - 0x6F6F, 0x9DA1, 0x6F70, 0x9DA2, 0x6F71, 0x9DA3, 0x6F72, 0xE4FB, - 0x6F73, 0x9DA4, 0x6F74, 0xE4F3, 0x6F75, 0x9DA5, 0x6F76, 0x9DA6, - 0x6F77, 0x9DA7, 0x6F78, 0xE4FA, 0x6F79, 0x9DA8, 0x6F7A, 0xE4FD, - 0x6F7B, 0x9DA9, 0x6F7C, 0xE4FC, 0x6F7D, 0x9DAA, 0x6F7E, 0x9DAB, - 0x6F7F, 0x9DAC, 0x6F80, 0x9DAD, 0x6F81, 0x9DAE, 0x6F82, 0x9DAF, - 0x6F83, 0x9DB0, 0x6F84, 0xB3CE, 0x6F85, 0x9DB1, 0x6F86, 0x9DB2, - 0x6F87, 0x9DB3, 0x6F88, 0xB3BA, 0x6F89, 0xE4F7, 0x6F8A, 0x9DB4, - 0x6F8B, 0x9DB5, 0x6F8C, 0xE4F9, 0x6F8D, 0xE4F8, 0x6F8E, 0xC5EC, - 0x6F8F, 0x9DB6, 0x6F90, 0x9DB7, 0x6F91, 0x9DB8, 0x6F92, 0x9DB9, - 0x6F93, 0x9DBA, 0x6F94, 0x9DBB, 0x6F95, 0x9DBC, 0x6F96, 0x9DBD, - 0x6F97, 0x9DBE, 0x6F98, 0x9DBF, 0x6F99, 0x9DC0, 0x6F9A, 0x9DC1, - 0x6F9B, 0x9DC2, 0x6F9C, 0xC0BD, 0x6F9D, 0x9DC3, 0x6F9E, 0x9DC4, - 0x6F9F, 0x9DC5, 0x6FA0, 0x9DC6, 0x6FA1, 0xD4E8, 0x6FA2, 0x9DC7, - 0x6FA3, 0x9DC8, 0x6FA4, 0x9DC9, 0x6FA5, 0x9DCA, 0x6FA6, 0x9DCB, - 0x6FA7, 0xE5A2, 0x6FA8, 0x9DCC, 0x6FA9, 0x9DCD, 0x6FAA, 0x9DCE, - 0x6FAB, 0x9DCF, 0x6FAC, 0x9DD0, 0x6FAD, 0x9DD1, 0x6FAE, 0x9DD2, - 0x6FAF, 0x9DD3, 0x6FB0, 0x9DD4, 0x6FB1, 0x9DD5, 0x6FB2, 0x9DD6, - 0x6FB3, 0xB0C4, 0x6FB4, 0x9DD7, 0x6FB5, 0x9DD8, 0x6FB6, 0xE5A4, - 0x6FB7, 0x9DD9, 0x6FB8, 0x9DDA, 0x6FB9, 0xE5A3, 0x6FBA, 0x9DDB, - 0x6FBB, 0x9DDC, 0x6FBC, 0x9DDD, 0x6FBD, 0x9DDE, 0x6FBE, 0x9DDF, - 0x6FBF, 0x9DE0, 0x6FC0, 0xBCA4, 0x6FC1, 0x9DE1, 0x6FC2, 0xE5A5, - 0x6FC3, 0x9DE2, 0x6FC4, 0x9DE3, 0x6FC5, 0x9DE4, 0x6FC6, 0x9DE5, - 0x6FC7, 0x9DE6, 0x6FC8, 0x9DE7, 0x6FC9, 0xE5A1, 0x6FCA, 0x9DE8, - 0x6FCB, 0x9DE9, 0x6FCC, 0x9DEA, 0x6FCD, 0x9DEB, 0x6FCE, 0x9DEC, - 0x6FCF, 0x9DED, 0x6FD0, 0x9DEE, 0x6FD1, 0xE4FE, 0x6FD2, 0xB1F4, - 0x6FD3, 0x9DEF, 0x6FD4, 0x9DF0, 0x6FD5, 0x9DF1, 0x6FD6, 0x9DF2, - 0x6FD7, 0x9DF3, 0x6FD8, 0x9DF4, 0x6FD9, 0x9DF5, 0x6FDA, 0x9DF6, - 0x6FDB, 0x9DF7, 0x6FDC, 0x9DF8, 0x6FDD, 0x9DF9, 0x6FDE, 0xE5A8, - 0x6FDF, 0x9DFA, 0x6FE0, 0xE5A9, 0x6FE1, 0xE5A6, 0x6FE2, 0x9DFB, - 0x6FE3, 0x9DFC, 0x6FE4, 0x9DFD, 0x6FE5, 0x9DFE, 0x6FE6, 0x9E40, - 0x6FE7, 0x9E41, 0x6FE8, 0x9E42, 0x6FE9, 0x9E43, 0x6FEA, 0x9E44, - 0x6FEB, 0x9E45, 0x6FEC, 0x9E46, 0x6FED, 0x9E47, 0x6FEE, 0xE5A7, - 0x6FEF, 0xE5AA, 0x6FF0, 0x9E48, 0x6FF1, 0x9E49, 0x6FF2, 0x9E4A, - 0x6FF3, 0x9E4B, 0x6FF4, 0x9E4C, 0x6FF5, 0x9E4D, 0x6FF6, 0x9E4E, - 0x6FF7, 0x9E4F, 0x6FF8, 0x9E50, 0x6FF9, 0x9E51, 0x6FFA, 0x9E52, - 0x6FFB, 0x9E53, 0x6FFC, 0x9E54, 0x6FFD, 0x9E55, 0x6FFE, 0x9E56, - 0x6FFF, 0x9E57, 0x7000, 0x9E58, 0x7001, 0x9E59, 0x7002, 0x9E5A, - 0x7003, 0x9E5B, 0x7004, 0x9E5C, 0x7005, 0x9E5D, 0x7006, 0x9E5E, - 0x7007, 0x9E5F, 0x7008, 0x9E60, 0x7009, 0x9E61, 0x700A, 0x9E62, - 0x700B, 0x9E63, 0x700C, 0x9E64, 0x700D, 0x9E65, 0x700E, 0x9E66, - 0x700F, 0x9E67, 0x7010, 0x9E68, 0x7011, 0xC6D9, 0x7012, 0x9E69, - 0x7013, 0x9E6A, 0x7014, 0x9E6B, 0x7015, 0x9E6C, 0x7016, 0x9E6D, - 0x7017, 0x9E6E, 0x7018, 0x9E6F, 0x7019, 0x9E70, 0x701A, 0xE5AB, - 0x701B, 0xE5AD, 0x701C, 0x9E71, 0x701D, 0x9E72, 0x701E, 0x9E73, - 0x701F, 0x9E74, 0x7020, 0x9E75, 0x7021, 0x9E76, 0x7022, 0x9E77, - 0x7023, 0xE5AC, 0x7024, 0x9E78, 0x7025, 0x9E79, 0x7026, 0x9E7A, - 0x7027, 0x9E7B, 0x7028, 0x9E7C, 0x7029, 0x9E7D, 0x702A, 0x9E7E, - 0x702B, 0x9E80, 0x702C, 0x9E81, 0x702D, 0x9E82, 0x702E, 0x9E83, - 0x702F, 0x9E84, 0x7030, 0x9E85, 0x7031, 0x9E86, 0x7032, 0x9E87, - 0x7033, 0x9E88, 0x7034, 0x9E89, 0x7035, 0xE5AF, 0x7036, 0x9E8A, - 0x7037, 0x9E8B, 0x7038, 0x9E8C, 0x7039, 0xE5AE, 0x703A, 0x9E8D, - 0x703B, 0x9E8E, 0x703C, 0x9E8F, 0x703D, 0x9E90, 0x703E, 0x9E91, - 0x703F, 0x9E92, 0x7040, 0x9E93, 0x7041, 0x9E94, 0x7042, 0x9E95, - 0x7043, 0x9E96, 0x7044, 0x9E97, 0x7045, 0x9E98, 0x7046, 0x9E99, - 0x7047, 0x9E9A, 0x7048, 0x9E9B, 0x7049, 0x9E9C, 0x704A, 0x9E9D, - 0x704B, 0x9E9E, 0x704C, 0xB9E0, 0x704D, 0x9E9F, 0x704E, 0x9EA0, - 0x704F, 0xE5B0, 0x7050, 0x9EA1, 0x7051, 0x9EA2, 0x7052, 0x9EA3, - 0x7053, 0x9EA4, 0x7054, 0x9EA5, 0x7055, 0x9EA6, 0x7056, 0x9EA7, - 0x7057, 0x9EA8, 0x7058, 0x9EA9, 0x7059, 0x9EAA, 0x705A, 0x9EAB, - 0x705B, 0x9EAC, 0x705C, 0x9EAD, 0x705D, 0x9EAE, 0x705E, 0xE5B1, - 0x705F, 0x9EAF, 0x7060, 0x9EB0, 0x7061, 0x9EB1, 0x7062, 0x9EB2, - 0x7063, 0x9EB3, 0x7064, 0x9EB4, 0x7065, 0x9EB5, 0x7066, 0x9EB6, - 0x7067, 0x9EB7, 0x7068, 0x9EB8, 0x7069, 0x9EB9, 0x706A, 0x9EBA, - 0x706B, 0xBBF0, 0x706C, 0xECE1, 0x706D, 0xC3F0, 0x706E, 0x9EBB, - 0x706F, 0xB5C6, 0x7070, 0xBBD2, 0x7071, 0x9EBC, 0x7072, 0x9EBD, - 0x7073, 0x9EBE, 0x7074, 0x9EBF, 0x7075, 0xC1E9, 0x7076, 0xD4EE, - 0x7077, 0x9EC0, 0x7078, 0xBEC4, 0x7079, 0x9EC1, 0x707A, 0x9EC2, - 0x707B, 0x9EC3, 0x707C, 0xD7C6, 0x707D, 0x9EC4, 0x707E, 0xD4D6, - 0x707F, 0xB2D3, 0x7080, 0xECBE, 0x7081, 0x9EC5, 0x7082, 0x9EC6, - 0x7083, 0x9EC7, 0x7084, 0x9EC8, 0x7085, 0xEAC1, 0x7086, 0x9EC9, - 0x7087, 0x9ECA, 0x7088, 0x9ECB, 0x7089, 0xC2AF, 0x708A, 0xB4B6, - 0x708B, 0x9ECC, 0x708C, 0x9ECD, 0x708D, 0x9ECE, 0x708E, 0xD1D7, - 0x708F, 0x9ECF, 0x7090, 0x9ED0, 0x7091, 0x9ED1, 0x7092, 0xB3B4, - 0x7093, 0x9ED2, 0x7094, 0xC8B2, 0x7095, 0xBFBB, 0x7096, 0xECC0, - 0x7097, 0x9ED3, 0x7098, 0x9ED4, 0x7099, 0xD6CB, 0x709A, 0x9ED5, - 0x709B, 0x9ED6, 0x709C, 0xECBF, 0x709D, 0xECC1, 0x709E, 0x9ED7, - 0x709F, 0x9ED8, 0x70A0, 0x9ED9, 0x70A1, 0x9EDA, 0x70A2, 0x9EDB, - 0x70A3, 0x9EDC, 0x70A4, 0x9EDD, 0x70A5, 0x9EDE, 0x70A6, 0x9EDF, - 0x70A7, 0x9EE0, 0x70A8, 0x9EE1, 0x70A9, 0x9EE2, 0x70AA, 0x9EE3, - 0x70AB, 0xECC5, 0x70AC, 0xBEE6, 0x70AD, 0xCCBF, 0x70AE, 0xC5DA, - 0x70AF, 0xBEBC, 0x70B0, 0x9EE4, 0x70B1, 0xECC6, 0x70B2, 0x9EE5, - 0x70B3, 0xB1FE, 0x70B4, 0x9EE6, 0x70B5, 0x9EE7, 0x70B6, 0x9EE8, - 0x70B7, 0xECC4, 0x70B8, 0xD5A8, 0x70B9, 0xB5E3, 0x70BA, 0x9EE9, - 0x70BB, 0xECC2, 0x70BC, 0xC1B6, 0x70BD, 0xB3E3, 0x70BE, 0x9EEA, - 0x70BF, 0x9EEB, 0x70C0, 0xECC3, 0x70C1, 0xCBB8, 0x70C2, 0xC0C3, - 0x70C3, 0xCCFE, 0x70C4, 0x9EEC, 0x70C5, 0x9EED, 0x70C6, 0x9EEE, - 0x70C7, 0x9EEF, 0x70C8, 0xC1D2, 0x70C9, 0x9EF0, 0x70CA, 0xECC8, - 0x70CB, 0x9EF1, 0x70CC, 0x9EF2, 0x70CD, 0x9EF3, 0x70CE, 0x9EF4, - 0x70CF, 0x9EF5, 0x70D0, 0x9EF6, 0x70D1, 0x9EF7, 0x70D2, 0x9EF8, - 0x70D3, 0x9EF9, 0x70D4, 0x9EFA, 0x70D5, 0x9EFB, 0x70D6, 0x9EFC, - 0x70D7, 0x9EFD, 0x70D8, 0xBAE6, 0x70D9, 0xC0D3, 0x70DA, 0x9EFE, - 0x70DB, 0xD6F2, 0x70DC, 0x9F40, 0x70DD, 0x9F41, 0x70DE, 0x9F42, - 0x70DF, 0xD1CC, 0x70E0, 0x9F43, 0x70E1, 0x9F44, 0x70E2, 0x9F45, - 0x70E3, 0x9F46, 0x70E4, 0xBFBE, 0x70E5, 0x9F47, 0x70E6, 0xB7B3, - 0x70E7, 0xC9D5, 0x70E8, 0xECC7, 0x70E9, 0xBBE2, 0x70EA, 0x9F48, - 0x70EB, 0xCCCC, 0x70EC, 0xBDFD, 0x70ED, 0xC8C8, 0x70EE, 0x9F49, - 0x70EF, 0xCFA9, 0x70F0, 0x9F4A, 0x70F1, 0x9F4B, 0x70F2, 0x9F4C, - 0x70F3, 0x9F4D, 0x70F4, 0x9F4E, 0x70F5, 0x9F4F, 0x70F6, 0x9F50, - 0x70F7, 0xCDE9, 0x70F8, 0x9F51, 0x70F9, 0xC5EB, 0x70FA, 0x9F52, - 0x70FB, 0x9F53, 0x70FC, 0x9F54, 0x70FD, 0xB7E9, 0x70FE, 0x9F55, - 0x70FF, 0x9F56, 0x7100, 0x9F57, 0x7101, 0x9F58, 0x7102, 0x9F59, - 0x7103, 0x9F5A, 0x7104, 0x9F5B, 0x7105, 0x9F5C, 0x7106, 0x9F5D, - 0x7107, 0x9F5E, 0x7108, 0x9F5F, 0x7109, 0xD1C9, 0x710A, 0xBAB8, - 0x710B, 0x9F60, 0x710C, 0x9F61, 0x710D, 0x9F62, 0x710E, 0x9F63, - 0x710F, 0x9F64, 0x7110, 0xECC9, 0x7111, 0x9F65, 0x7112, 0x9F66, - 0x7113, 0xECCA, 0x7114, 0x9F67, 0x7115, 0xBBC0, 0x7116, 0xECCB, - 0x7117, 0x9F68, 0x7118, 0xECE2, 0x7119, 0xB1BA, 0x711A, 0xB7D9, - 0x711B, 0x9F69, 0x711C, 0x9F6A, 0x711D, 0x9F6B, 0x711E, 0x9F6C, - 0x711F, 0x9F6D, 0x7120, 0x9F6E, 0x7121, 0x9F6F, 0x7122, 0x9F70, - 0x7123, 0x9F71, 0x7124, 0x9F72, 0x7125, 0x9F73, 0x7126, 0xBDB9, - 0x7127, 0x9F74, 0x7128, 0x9F75, 0x7129, 0x9F76, 0x712A, 0x9F77, - 0x712B, 0x9F78, 0x712C, 0x9F79, 0x712D, 0x9F7A, 0x712E, 0x9F7B, - 0x712F, 0xECCC, 0x7130, 0xD1E6, 0x7131, 0xECCD, 0x7132, 0x9F7C, - 0x7133, 0x9F7D, 0x7134, 0x9F7E, 0x7135, 0x9F80, 0x7136, 0xC8BB, - 0x7137, 0x9F81, 0x7138, 0x9F82, 0x7139, 0x9F83, 0x713A, 0x9F84, - 0x713B, 0x9F85, 0x713C, 0x9F86, 0x713D, 0x9F87, 0x713E, 0x9F88, - 0x713F, 0x9F89, 0x7140, 0x9F8A, 0x7141, 0x9F8B, 0x7142, 0x9F8C, - 0x7143, 0x9F8D, 0x7144, 0x9F8E, 0x7145, 0xECD1, 0x7146, 0x9F8F, - 0x7147, 0x9F90, 0x7148, 0x9F91, 0x7149, 0x9F92, 0x714A, 0xECD3, - 0x714B, 0x9F93, 0x714C, 0xBBCD, 0x714D, 0x9F94, 0x714E, 0xBCE5, - 0x714F, 0x9F95, 0x7150, 0x9F96, 0x7151, 0x9F97, 0x7152, 0x9F98, - 0x7153, 0x9F99, 0x7154, 0x9F9A, 0x7155, 0x9F9B, 0x7156, 0x9F9C, - 0x7157, 0x9F9D, 0x7158, 0x9F9E, 0x7159, 0x9F9F, 0x715A, 0x9FA0, - 0x715B, 0x9FA1, 0x715C, 0xECCF, 0x715D, 0x9FA2, 0x715E, 0xC9B7, - 0x715F, 0x9FA3, 0x7160, 0x9FA4, 0x7161, 0x9FA5, 0x7162, 0x9FA6, - 0x7163, 0x9FA7, 0x7164, 0xC3BA, 0x7165, 0x9FA8, 0x7166, 0xECE3, - 0x7167, 0xD5D5, 0x7168, 0xECD0, 0x7169, 0x9FA9, 0x716A, 0x9FAA, - 0x716B, 0x9FAB, 0x716C, 0x9FAC, 0x716D, 0x9FAD, 0x716E, 0xD6F3, - 0x716F, 0x9FAE, 0x7170, 0x9FAF, 0x7171, 0x9FB0, 0x7172, 0xECD2, - 0x7173, 0xECCE, 0x7174, 0x9FB1, 0x7175, 0x9FB2, 0x7176, 0x9FB3, - 0x7177, 0x9FB4, 0x7178, 0xECD4, 0x7179, 0x9FB5, 0x717A, 0xECD5, - 0x717B, 0x9FB6, 0x717C, 0x9FB7, 0x717D, 0xC9BF, 0x717E, 0x9FB8, - 0x717F, 0x9FB9, 0x7180, 0x9FBA, 0x7181, 0x9FBB, 0x7182, 0x9FBC, - 0x7183, 0x9FBD, 0x7184, 0xCFA8, 0x7185, 0x9FBE, 0x7186, 0x9FBF, - 0x7187, 0x9FC0, 0x7188, 0x9FC1, 0x7189, 0x9FC2, 0x718A, 0xD0DC, - 0x718B, 0x9FC3, 0x718C, 0x9FC4, 0x718D, 0x9FC5, 0x718E, 0x9FC6, - 0x718F, 0xD1AC, 0x7190, 0x9FC7, 0x7191, 0x9FC8, 0x7192, 0x9FC9, - 0x7193, 0x9FCA, 0x7194, 0xC8DB, 0x7195, 0x9FCB, 0x7196, 0x9FCC, - 0x7197, 0x9FCD, 0x7198, 0xECD6, 0x7199, 0xCEF5, 0x719A, 0x9FCE, - 0x719B, 0x9FCF, 0x719C, 0x9FD0, 0x719D, 0x9FD1, 0x719E, 0x9FD2, - 0x719F, 0xCAEC, 0x71A0, 0xECDA, 0x71A1, 0x9FD3, 0x71A2, 0x9FD4, - 0x71A3, 0x9FD5, 0x71A4, 0x9FD6, 0x71A5, 0x9FD7, 0x71A6, 0x9FD8, - 0x71A7, 0x9FD9, 0x71A8, 0xECD9, 0x71A9, 0x9FDA, 0x71AA, 0x9FDB, - 0x71AB, 0x9FDC, 0x71AC, 0xB0BE, 0x71AD, 0x9FDD, 0x71AE, 0x9FDE, - 0x71AF, 0x9FDF, 0x71B0, 0x9FE0, 0x71B1, 0x9FE1, 0x71B2, 0x9FE2, - 0x71B3, 0xECD7, 0x71B4, 0x9FE3, 0x71B5, 0xECD8, 0x71B6, 0x9FE4, - 0x71B7, 0x9FE5, 0x71B8, 0x9FE6, 0x71B9, 0xECE4, 0x71BA, 0x9FE7, - 0x71BB, 0x9FE8, 0x71BC, 0x9FE9, 0x71BD, 0x9FEA, 0x71BE, 0x9FEB, - 0x71BF, 0x9FEC, 0x71C0, 0x9FED, 0x71C1, 0x9FEE, 0x71C2, 0x9FEF, - 0x71C3, 0xC8BC, 0x71C4, 0x9FF0, 0x71C5, 0x9FF1, 0x71C6, 0x9FF2, - 0x71C7, 0x9FF3, 0x71C8, 0x9FF4, 0x71C9, 0x9FF5, 0x71CA, 0x9FF6, - 0x71CB, 0x9FF7, 0x71CC, 0x9FF8, 0x71CD, 0x9FF9, 0x71CE, 0xC1C7, - 0x71CF, 0x9FFA, 0x71D0, 0x9FFB, 0x71D1, 0x9FFC, 0x71D2, 0x9FFD, - 0x71D3, 0x9FFE, 0x71D4, 0xECDC, 0x71D5, 0xD1E0, 0x71D6, 0xA040, - 0x71D7, 0xA041, 0x71D8, 0xA042, 0x71D9, 0xA043, 0x71DA, 0xA044, - 0x71DB, 0xA045, 0x71DC, 0xA046, 0x71DD, 0xA047, 0x71DE, 0xA048, - 0x71DF, 0xA049, 0x71E0, 0xECDB, 0x71E1, 0xA04A, 0x71E2, 0xA04B, - 0x71E3, 0xA04C, 0x71E4, 0xA04D, 0x71E5, 0xD4EF, 0x71E6, 0xA04E, - 0x71E7, 0xECDD, 0x71E8, 0xA04F, 0x71E9, 0xA050, 0x71EA, 0xA051, - 0x71EB, 0xA052, 0x71EC, 0xA053, 0x71ED, 0xA054, 0x71EE, 0xDBC6, - 0x71EF, 0xA055, 0x71F0, 0xA056, 0x71F1, 0xA057, 0x71F2, 0xA058, - 0x71F3, 0xA059, 0x71F4, 0xA05A, 0x71F5, 0xA05B, 0x71F6, 0xA05C, - 0x71F7, 0xA05D, 0x71F8, 0xA05E, 0x71F9, 0xECDE, 0x71FA, 0xA05F, - 0x71FB, 0xA060, 0x71FC, 0xA061, 0x71FD, 0xA062, 0x71FE, 0xA063, - 0x71FF, 0xA064, 0x7200, 0xA065, 0x7201, 0xA066, 0x7202, 0xA067, - 0x7203, 0xA068, 0x7204, 0xA069, 0x7205, 0xA06A, 0x7206, 0xB1AC, - 0x7207, 0xA06B, 0x7208, 0xA06C, 0x7209, 0xA06D, 0x720A, 0xA06E, - 0x720B, 0xA06F, 0x720C, 0xA070, 0x720D, 0xA071, 0x720E, 0xA072, - 0x720F, 0xA073, 0x7210, 0xA074, 0x7211, 0xA075, 0x7212, 0xA076, - 0x7213, 0xA077, 0x7214, 0xA078, 0x7215, 0xA079, 0x7216, 0xA07A, - 0x7217, 0xA07B, 0x7218, 0xA07C, 0x7219, 0xA07D, 0x721A, 0xA07E, - 0x721B, 0xA080, 0x721C, 0xA081, 0x721D, 0xECDF, 0x721E, 0xA082, - 0x721F, 0xA083, 0x7220, 0xA084, 0x7221, 0xA085, 0x7222, 0xA086, - 0x7223, 0xA087, 0x7224, 0xA088, 0x7225, 0xA089, 0x7226, 0xA08A, - 0x7227, 0xA08B, 0x7228, 0xECE0, 0x7229, 0xA08C, 0x722A, 0xD7A6, - 0x722B, 0xA08D, 0x722C, 0xC5C0, 0x722D, 0xA08E, 0x722E, 0xA08F, - 0x722F, 0xA090, 0x7230, 0xEBBC, 0x7231, 0xB0AE, 0x7232, 0xA091, - 0x7233, 0xA092, 0x7234, 0xA093, 0x7235, 0xBEF4, 0x7236, 0xB8B8, - 0x7237, 0xD2AF, 0x7238, 0xB0D6, 0x7239, 0xB5F9, 0x723A, 0xA094, - 0x723B, 0xD8B3, 0x723C, 0xA095, 0x723D, 0xCBAC, 0x723E, 0xA096, - 0x723F, 0xE3DD, 0x7240, 0xA097, 0x7241, 0xA098, 0x7242, 0xA099, - 0x7243, 0xA09A, 0x7244, 0xA09B, 0x7245, 0xA09C, 0x7246, 0xA09D, - 0x7247, 0xC6AC, 0x7248, 0xB0E6, 0x7249, 0xA09E, 0x724A, 0xA09F, - 0x724B, 0xA0A0, 0x724C, 0xC5C6, 0x724D, 0xEBB9, 0x724E, 0xA0A1, - 0x724F, 0xA0A2, 0x7250, 0xA0A3, 0x7251, 0xA0A4, 0x7252, 0xEBBA, - 0x7253, 0xA0A5, 0x7254, 0xA0A6, 0x7255, 0xA0A7, 0x7256, 0xEBBB, - 0x7257, 0xA0A8, 0x7258, 0xA0A9, 0x7259, 0xD1C0, 0x725A, 0xA0AA, - 0x725B, 0xC5A3, 0x725C, 0xA0AB, 0x725D, 0xEAF2, 0x725E, 0xA0AC, - 0x725F, 0xC4B2, 0x7260, 0xA0AD, 0x7261, 0xC4B5, 0x7262, 0xC0CE, - 0x7263, 0xA0AE, 0x7264, 0xA0AF, 0x7265, 0xA0B0, 0x7266, 0xEAF3, - 0x7267, 0xC4C1, 0x7268, 0xA0B1, 0x7269, 0xCEEF, 0x726A, 0xA0B2, - 0x726B, 0xA0B3, 0x726C, 0xA0B4, 0x726D, 0xA0B5, 0x726E, 0xEAF0, - 0x726F, 0xEAF4, 0x7270, 0xA0B6, 0x7271, 0xA0B7, 0x7272, 0xC9FC, - 0x7273, 0xA0B8, 0x7274, 0xA0B9, 0x7275, 0xC7A3, 0x7276, 0xA0BA, - 0x7277, 0xA0BB, 0x7278, 0xA0BC, 0x7279, 0xCCD8, 0x727A, 0xCEFE, - 0x727B, 0xA0BD, 0x727C, 0xA0BE, 0x727D, 0xA0BF, 0x727E, 0xEAF5, - 0x727F, 0xEAF6, 0x7280, 0xCFAC, 0x7281, 0xC0E7, 0x7282, 0xA0C0, - 0x7283, 0xA0C1, 0x7284, 0xEAF7, 0x7285, 0xA0C2, 0x7286, 0xA0C3, - 0x7287, 0xA0C4, 0x7288, 0xA0C5, 0x7289, 0xA0C6, 0x728A, 0xB6BF, - 0x728B, 0xEAF8, 0x728C, 0xA0C7, 0x728D, 0xEAF9, 0x728E, 0xA0C8, - 0x728F, 0xEAFA, 0x7290, 0xA0C9, 0x7291, 0xA0CA, 0x7292, 0xEAFB, - 0x7293, 0xA0CB, 0x7294, 0xA0CC, 0x7295, 0xA0CD, 0x7296, 0xA0CE, - 0x7297, 0xA0CF, 0x7298, 0xA0D0, 0x7299, 0xA0D1, 0x729A, 0xA0D2, - 0x729B, 0xA0D3, 0x729C, 0xA0D4, 0x729D, 0xA0D5, 0x729E, 0xA0D6, - 0x729F, 0xEAF1, 0x72A0, 0xA0D7, 0x72A1, 0xA0D8, 0x72A2, 0xA0D9, - 0x72A3, 0xA0DA, 0x72A4, 0xA0DB, 0x72A5, 0xA0DC, 0x72A6, 0xA0DD, - 0x72A7, 0xA0DE, 0x72A8, 0xA0DF, 0x72A9, 0xA0E0, 0x72AA, 0xA0E1, - 0x72AB, 0xA0E2, 0x72AC, 0xC8AE, 0x72AD, 0xE1EB, 0x72AE, 0xA0E3, - 0x72AF, 0xB7B8, 0x72B0, 0xE1EC, 0x72B1, 0xA0E4, 0x72B2, 0xA0E5, - 0x72B3, 0xA0E6, 0x72B4, 0xE1ED, 0x72B5, 0xA0E7, 0x72B6, 0xD7B4, - 0x72B7, 0xE1EE, 0x72B8, 0xE1EF, 0x72B9, 0xD3CC, 0x72BA, 0xA0E8, - 0x72BB, 0xA0E9, 0x72BC, 0xA0EA, 0x72BD, 0xA0EB, 0x72BE, 0xA0EC, - 0x72BF, 0xA0ED, 0x72C0, 0xA0EE, 0x72C1, 0xE1F1, 0x72C2, 0xBFF1, - 0x72C3, 0xE1F0, 0x72C4, 0xB5D2, 0x72C5, 0xA0EF, 0x72C6, 0xA0F0, - 0x72C7, 0xA0F1, 0x72C8, 0xB1B7, 0x72C9, 0xA0F2, 0x72CA, 0xA0F3, - 0x72CB, 0xA0F4, 0x72CC, 0xA0F5, 0x72CD, 0xE1F3, 0x72CE, 0xE1F2, - 0x72CF, 0xA0F6, 0x72D0, 0xBAFC, 0x72D1, 0xA0F7, 0x72D2, 0xE1F4, - 0x72D3, 0xA0F8, 0x72D4, 0xA0F9, 0x72D5, 0xA0FA, 0x72D6, 0xA0FB, - 0x72D7, 0xB9B7, 0x72D8, 0xA0FC, 0x72D9, 0xBED1, 0x72DA, 0xA0FD, - 0x72DB, 0xA0FE, 0x72DC, 0xAA40, 0x72DD, 0xAA41, 0x72DE, 0xC4FC, - 0x72DF, 0xAA42, 0x72E0, 0xBADD, 0x72E1, 0xBDC6, 0x72E2, 0xAA43, - 0x72E3, 0xAA44, 0x72E4, 0xAA45, 0x72E5, 0xAA46, 0x72E6, 0xAA47, - 0x72E7, 0xAA48, 0x72E8, 0xE1F5, 0x72E9, 0xE1F7, 0x72EA, 0xAA49, - 0x72EB, 0xAA4A, 0x72EC, 0xB6C0, 0x72ED, 0xCFC1, 0x72EE, 0xCAA8, - 0x72EF, 0xE1F6, 0x72F0, 0xD5F8, 0x72F1, 0xD3FC, 0x72F2, 0xE1F8, - 0x72F3, 0xE1FC, 0x72F4, 0xE1F9, 0x72F5, 0xAA4B, 0x72F6, 0xAA4C, - 0x72F7, 0xE1FA, 0x72F8, 0xC0EA, 0x72F9, 0xAA4D, 0x72FA, 0xE1FE, - 0x72FB, 0xE2A1, 0x72FC, 0xC0C7, 0x72FD, 0xAA4E, 0x72FE, 0xAA4F, - 0x72FF, 0xAA50, 0x7300, 0xAA51, 0x7301, 0xE1FB, 0x7302, 0xAA52, - 0x7303, 0xE1FD, 0x7304, 0xAA53, 0x7305, 0xAA54, 0x7306, 0xAA55, - 0x7307, 0xAA56, 0x7308, 0xAA57, 0x7309, 0xAA58, 0x730A, 0xE2A5, - 0x730B, 0xAA59, 0x730C, 0xAA5A, 0x730D, 0xAA5B, 0x730E, 0xC1D4, - 0x730F, 0xAA5C, 0x7310, 0xAA5D, 0x7311, 0xAA5E, 0x7312, 0xAA5F, - 0x7313, 0xE2A3, 0x7314, 0xAA60, 0x7315, 0xE2A8, 0x7316, 0xB2FE, - 0x7317, 0xE2A2, 0x7318, 0xAA61, 0x7319, 0xAA62, 0x731A, 0xAA63, - 0x731B, 0xC3CD, 0x731C, 0xB2C2, 0x731D, 0xE2A7, 0x731E, 0xE2A6, - 0x731F, 0xAA64, 0x7320, 0xAA65, 0x7321, 0xE2A4, 0x7322, 0xE2A9, - 0x7323, 0xAA66, 0x7324, 0xAA67, 0x7325, 0xE2AB, 0x7326, 0xAA68, - 0x7327, 0xAA69, 0x7328, 0xAA6A, 0x7329, 0xD0C9, 0x732A, 0xD6ED, - 0x732B, 0xC3A8, 0x732C, 0xE2AC, 0x732D, 0xAA6B, 0x732E, 0xCFD7, - 0x732F, 0xAA6C, 0x7330, 0xAA6D, 0x7331, 0xE2AE, 0x7332, 0xAA6E, - 0x7333, 0xAA6F, 0x7334, 0xBAEF, 0x7335, 0xAA70, 0x7336, 0xAA71, - 0x7337, 0xE9E0, 0x7338, 0xE2AD, 0x7339, 0xE2AA, 0x733A, 0xAA72, - 0x733B, 0xAA73, 0x733C, 0xAA74, 0x733D, 0xAA75, 0x733E, 0xBBAB, - 0x733F, 0xD4B3, 0x7340, 0xAA76, 0x7341, 0xAA77, 0x7342, 0xAA78, - 0x7343, 0xAA79, 0x7344, 0xAA7A, 0x7345, 0xAA7B, 0x7346, 0xAA7C, - 0x7347, 0xAA7D, 0x7348, 0xAA7E, 0x7349, 0xAA80, 0x734A, 0xAA81, - 0x734B, 0xAA82, 0x734C, 0xAA83, 0x734D, 0xE2B0, 0x734E, 0xAA84, - 0x734F, 0xAA85, 0x7350, 0xE2AF, 0x7351, 0xAA86, 0x7352, 0xE9E1, - 0x7353, 0xAA87, 0x7354, 0xAA88, 0x7355, 0xAA89, 0x7356, 0xAA8A, - 0x7357, 0xE2B1, 0x7358, 0xAA8B, 0x7359, 0xAA8C, 0x735A, 0xAA8D, - 0x735B, 0xAA8E, 0x735C, 0xAA8F, 0x735D, 0xAA90, 0x735E, 0xAA91, - 0x735F, 0xAA92, 0x7360, 0xE2B2, 0x7361, 0xAA93, 0x7362, 0xAA94, - 0x7363, 0xAA95, 0x7364, 0xAA96, 0x7365, 0xAA97, 0x7366, 0xAA98, - 0x7367, 0xAA99, 0x7368, 0xAA9A, 0x7369, 0xAA9B, 0x736A, 0xAA9C, - 0x736B, 0xAA9D, 0x736C, 0xE2B3, 0x736D, 0xCCA1, 0x736E, 0xAA9E, - 0x736F, 0xE2B4, 0x7370, 0xAA9F, 0x7371, 0xAAA0, 0x7372, 0xAB40, - 0x7373, 0xAB41, 0x7374, 0xAB42, 0x7375, 0xAB43, 0x7376, 0xAB44, - 0x7377, 0xAB45, 0x7378, 0xAB46, 0x7379, 0xAB47, 0x737A, 0xAB48, - 0x737B, 0xAB49, 0x737C, 0xAB4A, 0x737D, 0xAB4B, 0x737E, 0xE2B5, - 0x737F, 0xAB4C, 0x7380, 0xAB4D, 0x7381, 0xAB4E, 0x7382, 0xAB4F, - 0x7383, 0xAB50, 0x7384, 0xD0FE, 0x7385, 0xAB51, 0x7386, 0xAB52, - 0x7387, 0xC2CA, 0x7388, 0xAB53, 0x7389, 0xD3F1, 0x738A, 0xAB54, - 0x738B, 0xCDF5, 0x738C, 0xAB55, 0x738D, 0xAB56, 0x738E, 0xE7E0, - 0x738F, 0xAB57, 0x7390, 0xAB58, 0x7391, 0xE7E1, 0x7392, 0xAB59, - 0x7393, 0xAB5A, 0x7394, 0xAB5B, 0x7395, 0xAB5C, 0x7396, 0xBEC1, - 0x7397, 0xAB5D, 0x7398, 0xAB5E, 0x7399, 0xAB5F, 0x739A, 0xAB60, - 0x739B, 0xC2EA, 0x739C, 0xAB61, 0x739D, 0xAB62, 0x739E, 0xAB63, - 0x739F, 0xE7E4, 0x73A0, 0xAB64, 0x73A1, 0xAB65, 0x73A2, 0xE7E3, - 0x73A3, 0xAB66, 0x73A4, 0xAB67, 0x73A5, 0xAB68, 0x73A6, 0xAB69, - 0x73A7, 0xAB6A, 0x73A8, 0xAB6B, 0x73A9, 0xCDE6, 0x73AA, 0xAB6C, - 0x73AB, 0xC3B5, 0x73AC, 0xAB6D, 0x73AD, 0xAB6E, 0x73AE, 0xE7E2, - 0x73AF, 0xBBB7, 0x73B0, 0xCFD6, 0x73B1, 0xAB6F, 0x73B2, 0xC1E1, - 0x73B3, 0xE7E9, 0x73B4, 0xAB70, 0x73B5, 0xAB71, 0x73B6, 0xAB72, - 0x73B7, 0xE7E8, 0x73B8, 0xAB73, 0x73B9, 0xAB74, 0x73BA, 0xE7F4, - 0x73BB, 0xB2A3, 0x73BC, 0xAB75, 0x73BD, 0xAB76, 0x73BE, 0xAB77, - 0x73BF, 0xAB78, 0x73C0, 0xE7EA, 0x73C1, 0xAB79, 0x73C2, 0xE7E6, - 0x73C3, 0xAB7A, 0x73C4, 0xAB7B, 0x73C5, 0xAB7C, 0x73C6, 0xAB7D, - 0x73C7, 0xAB7E, 0x73C8, 0xE7EC, 0x73C9, 0xE7EB, 0x73CA, 0xC9BA, - 0x73CB, 0xAB80, 0x73CC, 0xAB81, 0x73CD, 0xD5E4, 0x73CE, 0xAB82, - 0x73CF, 0xE7E5, 0x73D0, 0xB7A9, 0x73D1, 0xE7E7, 0x73D2, 0xAB83, - 0x73D3, 0xAB84, 0x73D4, 0xAB85, 0x73D5, 0xAB86, 0x73D6, 0xAB87, - 0x73D7, 0xAB88, 0x73D8, 0xAB89, 0x73D9, 0xE7EE, 0x73DA, 0xAB8A, - 0x73DB, 0xAB8B, 0x73DC, 0xAB8C, 0x73DD, 0xAB8D, 0x73DE, 0xE7F3, - 0x73DF, 0xAB8E, 0x73E0, 0xD6E9, 0x73E1, 0xAB8F, 0x73E2, 0xAB90, - 0x73E3, 0xAB91, 0x73E4, 0xAB92, 0x73E5, 0xE7ED, 0x73E6, 0xAB93, - 0x73E7, 0xE7F2, 0x73E8, 0xAB94, 0x73E9, 0xE7F1, 0x73EA, 0xAB95, - 0x73EB, 0xAB96, 0x73EC, 0xAB97, 0x73ED, 0xB0E0, 0x73EE, 0xAB98, - 0x73EF, 0xAB99, 0x73F0, 0xAB9A, 0x73F1, 0xAB9B, 0x73F2, 0xE7F5, - 0x73F3, 0xAB9C, 0x73F4, 0xAB9D, 0x73F5, 0xAB9E, 0x73F6, 0xAB9F, - 0x73F7, 0xABA0, 0x73F8, 0xAC40, 0x73F9, 0xAC41, 0x73FA, 0xAC42, - 0x73FB, 0xAC43, 0x73FC, 0xAC44, 0x73FD, 0xAC45, 0x73FE, 0xAC46, - 0x73FF, 0xAC47, 0x7400, 0xAC48, 0x7401, 0xAC49, 0x7402, 0xAC4A, - 0x7403, 0xC7F2, 0x7404, 0xAC4B, 0x7405, 0xC0C5, 0x7406, 0xC0ED, - 0x7407, 0xAC4C, 0x7408, 0xAC4D, 0x7409, 0xC1F0, 0x740A, 0xE7F0, - 0x740B, 0xAC4E, 0x740C, 0xAC4F, 0x740D, 0xAC50, 0x740E, 0xAC51, - 0x740F, 0xE7F6, 0x7410, 0xCBF6, 0x7411, 0xAC52, 0x7412, 0xAC53, - 0x7413, 0xAC54, 0x7414, 0xAC55, 0x7415, 0xAC56, 0x7416, 0xAC57, - 0x7417, 0xAC58, 0x7418, 0xAC59, 0x7419, 0xAC5A, 0x741A, 0xE8A2, - 0x741B, 0xE8A1, 0x741C, 0xAC5B, 0x741D, 0xAC5C, 0x741E, 0xAC5D, - 0x741F, 0xAC5E, 0x7420, 0xAC5F, 0x7421, 0xAC60, 0x7422, 0xD7C1, - 0x7423, 0xAC61, 0x7424, 0xAC62, 0x7425, 0xE7FA, 0x7426, 0xE7F9, - 0x7427, 0xAC63, 0x7428, 0xE7FB, 0x7429, 0xAC64, 0x742A, 0xE7F7, - 0x742B, 0xAC65, 0x742C, 0xE7FE, 0x742D, 0xAC66, 0x742E, 0xE7FD, - 0x742F, 0xAC67, 0x7430, 0xE7FC, 0x7431, 0xAC68, 0x7432, 0xAC69, - 0x7433, 0xC1D5, 0x7434, 0xC7D9, 0x7435, 0xC5FD, 0x7436, 0xC5C3, - 0x7437, 0xAC6A, 0x7438, 0xAC6B, 0x7439, 0xAC6C, 0x743A, 0xAC6D, - 0x743B, 0xAC6E, 0x743C, 0xC7ED, 0x743D, 0xAC6F, 0x743E, 0xAC70, - 0x743F, 0xAC71, 0x7440, 0xAC72, 0x7441, 0xE8A3, 0x7442, 0xAC73, - 0x7443, 0xAC74, 0x7444, 0xAC75, 0x7445, 0xAC76, 0x7446, 0xAC77, - 0x7447, 0xAC78, 0x7448, 0xAC79, 0x7449, 0xAC7A, 0x744A, 0xAC7B, - 0x744B, 0xAC7C, 0x744C, 0xAC7D, 0x744D, 0xAC7E, 0x744E, 0xAC80, - 0x744F, 0xAC81, 0x7450, 0xAC82, 0x7451, 0xAC83, 0x7452, 0xAC84, - 0x7453, 0xAC85, 0x7454, 0xAC86, 0x7455, 0xE8A6, 0x7456, 0xAC87, - 0x7457, 0xE8A5, 0x7458, 0xAC88, 0x7459, 0xE8A7, 0x745A, 0xBAF7, - 0x745B, 0xE7F8, 0x745C, 0xE8A4, 0x745D, 0xAC89, 0x745E, 0xC8F0, - 0x745F, 0xC9AA, 0x7460, 0xAC8A, 0x7461, 0xAC8B, 0x7462, 0xAC8C, - 0x7463, 0xAC8D, 0x7464, 0xAC8E, 0x7465, 0xAC8F, 0x7466, 0xAC90, - 0x7467, 0xAC91, 0x7468, 0xAC92, 0x7469, 0xAC93, 0x746A, 0xAC94, - 0x746B, 0xAC95, 0x746C, 0xAC96, 0x746D, 0xE8A9, 0x746E, 0xAC97, - 0x746F, 0xAC98, 0x7470, 0xB9E5, 0x7471, 0xAC99, 0x7472, 0xAC9A, - 0x7473, 0xAC9B, 0x7474, 0xAC9C, 0x7475, 0xAC9D, 0x7476, 0xD1FE, - 0x7477, 0xE8A8, 0x7478, 0xAC9E, 0x7479, 0xAC9F, 0x747A, 0xACA0, - 0x747B, 0xAD40, 0x747C, 0xAD41, 0x747D, 0xAD42, 0x747E, 0xE8AA, - 0x747F, 0xAD43, 0x7480, 0xE8AD, 0x7481, 0xE8AE, 0x7482, 0xAD44, - 0x7483, 0xC1A7, 0x7484, 0xAD45, 0x7485, 0xAD46, 0x7486, 0xAD47, - 0x7487, 0xE8AF, 0x7488, 0xAD48, 0x7489, 0xAD49, 0x748A, 0xAD4A, - 0x748B, 0xE8B0, 0x748C, 0xAD4B, 0x748D, 0xAD4C, 0x748E, 0xE8AC, - 0x748F, 0xAD4D, 0x7490, 0xE8B4, 0x7491, 0xAD4E, 0x7492, 0xAD4F, - 0x7493, 0xAD50, 0x7494, 0xAD51, 0x7495, 0xAD52, 0x7496, 0xAD53, - 0x7497, 0xAD54, 0x7498, 0xAD55, 0x7499, 0xAD56, 0x749A, 0xAD57, - 0x749B, 0xAD58, 0x749C, 0xE8AB, 0x749D, 0xAD59, 0x749E, 0xE8B1, - 0x749F, 0xAD5A, 0x74A0, 0xAD5B, 0x74A1, 0xAD5C, 0x74A2, 0xAD5D, - 0x74A3, 0xAD5E, 0x74A4, 0xAD5F, 0x74A5, 0xAD60, 0x74A6, 0xAD61, - 0x74A7, 0xE8B5, 0x74A8, 0xE8B2, 0x74A9, 0xE8B3, 0x74AA, 0xAD62, - 0x74AB, 0xAD63, 0x74AC, 0xAD64, 0x74AD, 0xAD65, 0x74AE, 0xAD66, - 0x74AF, 0xAD67, 0x74B0, 0xAD68, 0x74B1, 0xAD69, 0x74B2, 0xAD6A, - 0x74B3, 0xAD6B, 0x74B4, 0xAD6C, 0x74B5, 0xAD6D, 0x74B6, 0xAD6E, - 0x74B7, 0xAD6F, 0x74B8, 0xAD70, 0x74B9, 0xAD71, 0x74BA, 0xE8B7, - 0x74BB, 0xAD72, 0x74BC, 0xAD73, 0x74BD, 0xAD74, 0x74BE, 0xAD75, - 0x74BF, 0xAD76, 0x74C0, 0xAD77, 0x74C1, 0xAD78, 0x74C2, 0xAD79, - 0x74C3, 0xAD7A, 0x74C4, 0xAD7B, 0x74C5, 0xAD7C, 0x74C6, 0xAD7D, - 0x74C7, 0xAD7E, 0x74C8, 0xAD80, 0x74C9, 0xAD81, 0x74CA, 0xAD82, - 0x74CB, 0xAD83, 0x74CC, 0xAD84, 0x74CD, 0xAD85, 0x74CE, 0xAD86, - 0x74CF, 0xAD87, 0x74D0, 0xAD88, 0x74D1, 0xAD89, 0x74D2, 0xE8B6, - 0x74D3, 0xAD8A, 0x74D4, 0xAD8B, 0x74D5, 0xAD8C, 0x74D6, 0xAD8D, - 0x74D7, 0xAD8E, 0x74D8, 0xAD8F, 0x74D9, 0xAD90, 0x74DA, 0xAD91, - 0x74DB, 0xAD92, 0x74DC, 0xB9CF, 0x74DD, 0xAD93, 0x74DE, 0xF0AC, - 0x74DF, 0xAD94, 0x74E0, 0xF0AD, 0x74E1, 0xAD95, 0x74E2, 0xC6B0, - 0x74E3, 0xB0EA, 0x74E4, 0xC8BF, 0x74E5, 0xAD96, 0x74E6, 0xCDDF, - 0x74E7, 0xAD97, 0x74E8, 0xAD98, 0x74E9, 0xAD99, 0x74EA, 0xAD9A, - 0x74EB, 0xAD9B, 0x74EC, 0xAD9C, 0x74ED, 0xAD9D, 0x74EE, 0xCECD, - 0x74EF, 0xEAB1, 0x74F0, 0xAD9E, 0x74F1, 0xAD9F, 0x74F2, 0xADA0, - 0x74F3, 0xAE40, 0x74F4, 0xEAB2, 0x74F5, 0xAE41, 0x74F6, 0xC6BF, - 0x74F7, 0xB4C9, 0x74F8, 0xAE42, 0x74F9, 0xAE43, 0x74FA, 0xAE44, - 0x74FB, 0xAE45, 0x74FC, 0xAE46, 0x74FD, 0xAE47, 0x74FE, 0xAE48, - 0x74FF, 0xEAB3, 0x7500, 0xAE49, 0x7501, 0xAE4A, 0x7502, 0xAE4B, - 0x7503, 0xAE4C, 0x7504, 0xD5E7, 0x7505, 0xAE4D, 0x7506, 0xAE4E, - 0x7507, 0xAE4F, 0x7508, 0xAE50, 0x7509, 0xAE51, 0x750A, 0xAE52, - 0x750B, 0xAE53, 0x750C, 0xAE54, 0x750D, 0xDDF9, 0x750E, 0xAE55, - 0x750F, 0xEAB4, 0x7510, 0xAE56, 0x7511, 0xEAB5, 0x7512, 0xAE57, - 0x7513, 0xEAB6, 0x7514, 0xAE58, 0x7515, 0xAE59, 0x7516, 0xAE5A, - 0x7517, 0xAE5B, 0x7518, 0xB8CA, 0x7519, 0xDFB0, 0x751A, 0xC9F5, - 0x751B, 0xAE5C, 0x751C, 0xCCF0, 0x751D, 0xAE5D, 0x751E, 0xAE5E, - 0x751F, 0xC9FA, 0x7520, 0xAE5F, 0x7521, 0xAE60, 0x7522, 0xAE61, - 0x7523, 0xAE62, 0x7524, 0xAE63, 0x7525, 0xC9FB, 0x7526, 0xAE64, - 0x7527, 0xAE65, 0x7528, 0xD3C3, 0x7529, 0xCBA6, 0x752A, 0xAE66, - 0x752B, 0xB8A6, 0x752C, 0xF0AE, 0x752D, 0xB1C2, 0x752E, 0xAE67, - 0x752F, 0xE5B8, 0x7530, 0xCCEF, 0x7531, 0xD3C9, 0x7532, 0xBCD7, - 0x7533, 0xC9EA, 0x7534, 0xAE68, 0x7535, 0xB5E7, 0x7536, 0xAE69, - 0x7537, 0xC4D0, 0x7538, 0xB5E9, 0x7539, 0xAE6A, 0x753A, 0xEEAE, - 0x753B, 0xBBAD, 0x753C, 0xAE6B, 0x753D, 0xAE6C, 0x753E, 0xE7DE, - 0x753F, 0xAE6D, 0x7540, 0xEEAF, 0x7541, 0xAE6E, 0x7542, 0xAE6F, - 0x7543, 0xAE70, 0x7544, 0xAE71, 0x7545, 0xB3A9, 0x7546, 0xAE72, - 0x7547, 0xAE73, 0x7548, 0xEEB2, 0x7549, 0xAE74, 0x754A, 0xAE75, - 0x754B, 0xEEB1, 0x754C, 0xBDE7, 0x754D, 0xAE76, 0x754E, 0xEEB0, - 0x754F, 0xCEB7, 0x7550, 0xAE77, 0x7551, 0xAE78, 0x7552, 0xAE79, - 0x7553, 0xAE7A, 0x7554, 0xC5CF, 0x7555, 0xAE7B, 0x7556, 0xAE7C, - 0x7557, 0xAE7D, 0x7558, 0xAE7E, 0x7559, 0xC1F4, 0x755A, 0xDBCE, - 0x755B, 0xEEB3, 0x755C, 0xD0F3, 0x755D, 0xAE80, 0x755E, 0xAE81, - 0x755F, 0xAE82, 0x7560, 0xAE83, 0x7561, 0xAE84, 0x7562, 0xAE85, - 0x7563, 0xAE86, 0x7564, 0xAE87, 0x7565, 0xC2D4, 0x7566, 0xC6E8, - 0x7567, 0xAE88, 0x7568, 0xAE89, 0x7569, 0xAE8A, 0x756A, 0xB7AC, - 0x756B, 0xAE8B, 0x756C, 0xAE8C, 0x756D, 0xAE8D, 0x756E, 0xAE8E, - 0x756F, 0xAE8F, 0x7570, 0xAE90, 0x7571, 0xAE91, 0x7572, 0xEEB4, - 0x7573, 0xAE92, 0x7574, 0xB3EB, 0x7575, 0xAE93, 0x7576, 0xAE94, - 0x7577, 0xAE95, 0x7578, 0xBBFB, 0x7579, 0xEEB5, 0x757A, 0xAE96, - 0x757B, 0xAE97, 0x757C, 0xAE98, 0x757D, 0xAE99, 0x757E, 0xAE9A, - 0x757F, 0xE7DC, 0x7580, 0xAE9B, 0x7581, 0xAE9C, 0x7582, 0xAE9D, - 0x7583, 0xEEB6, 0x7584, 0xAE9E, 0x7585, 0xAE9F, 0x7586, 0xBDAE, - 0x7587, 0xAEA0, 0x7588, 0xAF40, 0x7589, 0xAF41, 0x758A, 0xAF42, - 0x758B, 0xF1E2, 0x758C, 0xAF43, 0x758D, 0xAF44, 0x758E, 0xAF45, - 0x758F, 0xCAE8, 0x7590, 0xAF46, 0x7591, 0xD2C9, 0x7592, 0xF0DA, - 0x7593, 0xAF47, 0x7594, 0xF0DB, 0x7595, 0xAF48, 0x7596, 0xF0DC, - 0x7597, 0xC1C6, 0x7598, 0xAF49, 0x7599, 0xB8ED, 0x759A, 0xBECE, - 0x759B, 0xAF4A, 0x759C, 0xAF4B, 0x759D, 0xF0DE, 0x759E, 0xAF4C, - 0x759F, 0xC5B1, 0x75A0, 0xF0DD, 0x75A1, 0xD1F1, 0x75A2, 0xAF4D, - 0x75A3, 0xF0E0, 0x75A4, 0xB0CC, 0x75A5, 0xBDEA, 0x75A6, 0xAF4E, - 0x75A7, 0xAF4F, 0x75A8, 0xAF50, 0x75A9, 0xAF51, 0x75AA, 0xAF52, - 0x75AB, 0xD2DF, 0x75AC, 0xF0DF, 0x75AD, 0xAF53, 0x75AE, 0xB4AF, - 0x75AF, 0xB7E8, 0x75B0, 0xF0E6, 0x75B1, 0xF0E5, 0x75B2, 0xC6A3, - 0x75B3, 0xF0E1, 0x75B4, 0xF0E2, 0x75B5, 0xB4C3, 0x75B6, 0xAF54, - 0x75B7, 0xAF55, 0x75B8, 0xF0E3, 0x75B9, 0xD5EE, 0x75BA, 0xAF56, - 0x75BB, 0xAF57, 0x75BC, 0xCCDB, 0x75BD, 0xBED2, 0x75BE, 0xBCB2, - 0x75BF, 0xAF58, 0x75C0, 0xAF59, 0x75C1, 0xAF5A, 0x75C2, 0xF0E8, - 0x75C3, 0xF0E7, 0x75C4, 0xF0E4, 0x75C5, 0xB2A1, 0x75C6, 0xAF5B, - 0x75C7, 0xD6A2, 0x75C8, 0xD3B8, 0x75C9, 0xBEB7, 0x75CA, 0xC8AC, - 0x75CB, 0xAF5C, 0x75CC, 0xAF5D, 0x75CD, 0xF0EA, 0x75CE, 0xAF5E, - 0x75CF, 0xAF5F, 0x75D0, 0xAF60, 0x75D1, 0xAF61, 0x75D2, 0xD1F7, - 0x75D3, 0xAF62, 0x75D4, 0xD6CC, 0x75D5, 0xBADB, 0x75D6, 0xF0E9, - 0x75D7, 0xAF63, 0x75D8, 0xB6BB, 0x75D9, 0xAF64, 0x75DA, 0xAF65, - 0x75DB, 0xCDB4, 0x75DC, 0xAF66, 0x75DD, 0xAF67, 0x75DE, 0xC6A6, - 0x75DF, 0xAF68, 0x75E0, 0xAF69, 0x75E1, 0xAF6A, 0x75E2, 0xC1A1, - 0x75E3, 0xF0EB, 0x75E4, 0xF0EE, 0x75E5, 0xAF6B, 0x75E6, 0xF0ED, - 0x75E7, 0xF0F0, 0x75E8, 0xF0EC, 0x75E9, 0xAF6C, 0x75EA, 0xBBBE, - 0x75EB, 0xF0EF, 0x75EC, 0xAF6D, 0x75ED, 0xAF6E, 0x75EE, 0xAF6F, - 0x75EF, 0xAF70, 0x75F0, 0xCCB5, 0x75F1, 0xF0F2, 0x75F2, 0xAF71, - 0x75F3, 0xAF72, 0x75F4, 0xB3D5, 0x75F5, 0xAF73, 0x75F6, 0xAF74, - 0x75F7, 0xAF75, 0x75F8, 0xAF76, 0x75F9, 0xB1D4, 0x75FA, 0xAF77, - 0x75FB, 0xAF78, 0x75FC, 0xF0F3, 0x75FD, 0xAF79, 0x75FE, 0xAF7A, - 0x75FF, 0xF0F4, 0x7600, 0xF0F6, 0x7601, 0xB4E1, 0x7602, 0xAF7B, - 0x7603, 0xF0F1, 0x7604, 0xAF7C, 0x7605, 0xF0F7, 0x7606, 0xAF7D, - 0x7607, 0xAF7E, 0x7608, 0xAF80, 0x7609, 0xAF81, 0x760A, 0xF0FA, - 0x760B, 0xAF82, 0x760C, 0xF0F8, 0x760D, 0xAF83, 0x760E, 0xAF84, - 0x760F, 0xAF85, 0x7610, 0xF0F5, 0x7611, 0xAF86, 0x7612, 0xAF87, - 0x7613, 0xAF88, 0x7614, 0xAF89, 0x7615, 0xF0FD, 0x7616, 0xAF8A, - 0x7617, 0xF0F9, 0x7618, 0xF0FC, 0x7619, 0xF0FE, 0x761A, 0xAF8B, - 0x761B, 0xF1A1, 0x761C, 0xAF8C, 0x761D, 0xAF8D, 0x761E, 0xAF8E, - 0x761F, 0xCEC1, 0x7620, 0xF1A4, 0x7621, 0xAF8F, 0x7622, 0xF1A3, - 0x7623, 0xAF90, 0x7624, 0xC1F6, 0x7625, 0xF0FB, 0x7626, 0xCADD, - 0x7627, 0xAF91, 0x7628, 0xAF92, 0x7629, 0xB4F1, 0x762A, 0xB1F1, - 0x762B, 0xCCB1, 0x762C, 0xAF93, 0x762D, 0xF1A6, 0x762E, 0xAF94, - 0x762F, 0xAF95, 0x7630, 0xF1A7, 0x7631, 0xAF96, 0x7632, 0xAF97, - 0x7633, 0xF1AC, 0x7634, 0xD5CE, 0x7635, 0xF1A9, 0x7636, 0xAF98, - 0x7637, 0xAF99, 0x7638, 0xC8B3, 0x7639, 0xAF9A, 0x763A, 0xAF9B, - 0x763B, 0xAF9C, 0x763C, 0xF1A2, 0x763D, 0xAF9D, 0x763E, 0xF1AB, - 0x763F, 0xF1A8, 0x7640, 0xF1A5, 0x7641, 0xAF9E, 0x7642, 0xAF9F, - 0x7643, 0xF1AA, 0x7644, 0xAFA0, 0x7645, 0xB040, 0x7646, 0xB041, - 0x7647, 0xB042, 0x7648, 0xB043, 0x7649, 0xB044, 0x764A, 0xB045, - 0x764B, 0xB046, 0x764C, 0xB0A9, 0x764D, 0xF1AD, 0x764E, 0xB047, - 0x764F, 0xB048, 0x7650, 0xB049, 0x7651, 0xB04A, 0x7652, 0xB04B, - 0x7653, 0xB04C, 0x7654, 0xF1AF, 0x7655, 0xB04D, 0x7656, 0xF1B1, - 0x7657, 0xB04E, 0x7658, 0xB04F, 0x7659, 0xB050, 0x765A, 0xB051, - 0x765B, 0xB052, 0x765C, 0xF1B0, 0x765D, 0xB053, 0x765E, 0xF1AE, - 0x765F, 0xB054, 0x7660, 0xB055, 0x7661, 0xB056, 0x7662, 0xB057, - 0x7663, 0xD1A2, 0x7664, 0xB058, 0x7665, 0xB059, 0x7666, 0xB05A, - 0x7667, 0xB05B, 0x7668, 0xB05C, 0x7669, 0xB05D, 0x766A, 0xB05E, - 0x766B, 0xF1B2, 0x766C, 0xB05F, 0x766D, 0xB060, 0x766E, 0xB061, - 0x766F, 0xF1B3, 0x7670, 0xB062, 0x7671, 0xB063, 0x7672, 0xB064, - 0x7673, 0xB065, 0x7674, 0xB066, 0x7675, 0xB067, 0x7676, 0xB068, - 0x7677, 0xB069, 0x7678, 0xB9EF, 0x7679, 0xB06A, 0x767A, 0xB06B, - 0x767B, 0xB5C7, 0x767C, 0xB06C, 0x767D, 0xB0D7, 0x767E, 0xB0D9, - 0x767F, 0xB06D, 0x7680, 0xB06E, 0x7681, 0xB06F, 0x7682, 0xD4ED, - 0x7683, 0xB070, 0x7684, 0xB5C4, 0x7685, 0xB071, 0x7686, 0xBDD4, - 0x7687, 0xBBCA, 0x7688, 0xF0A7, 0x7689, 0xB072, 0x768A, 0xB073, - 0x768B, 0xB8DE, 0x768C, 0xB074, 0x768D, 0xB075, 0x768E, 0xF0A8, - 0x768F, 0xB076, 0x7690, 0xB077, 0x7691, 0xB0A8, 0x7692, 0xB078, - 0x7693, 0xF0A9, 0x7694, 0xB079, 0x7695, 0xB07A, 0x7696, 0xCDEE, - 0x7697, 0xB07B, 0x7698, 0xB07C, 0x7699, 0xF0AA, 0x769A, 0xB07D, - 0x769B, 0xB07E, 0x769C, 0xB080, 0x769D, 0xB081, 0x769E, 0xB082, - 0x769F, 0xB083, 0x76A0, 0xB084, 0x76A1, 0xB085, 0x76A2, 0xB086, - 0x76A3, 0xB087, 0x76A4, 0xF0AB, 0x76A5, 0xB088, 0x76A6, 0xB089, - 0x76A7, 0xB08A, 0x76A8, 0xB08B, 0x76A9, 0xB08C, 0x76AA, 0xB08D, - 0x76AB, 0xB08E, 0x76AC, 0xB08F, 0x76AD, 0xB090, 0x76AE, 0xC6A4, - 0x76AF, 0xB091, 0x76B0, 0xB092, 0x76B1, 0xD6E5, 0x76B2, 0xF1E4, - 0x76B3, 0xB093, 0x76B4, 0xF1E5, 0x76B5, 0xB094, 0x76B6, 0xB095, - 0x76B7, 0xB096, 0x76B8, 0xB097, 0x76B9, 0xB098, 0x76BA, 0xB099, - 0x76BB, 0xB09A, 0x76BC, 0xB09B, 0x76BD, 0xB09C, 0x76BE, 0xB09D, - 0x76BF, 0xC3F3, 0x76C0, 0xB09E, 0x76C1, 0xB09F, 0x76C2, 0xD3DB, - 0x76C3, 0xB0A0, 0x76C4, 0xB140, 0x76C5, 0xD6D1, 0x76C6, 0xC5E8, - 0x76C7, 0xB141, 0x76C8, 0xD3AF, 0x76C9, 0xB142, 0x76CA, 0xD2E6, - 0x76CB, 0xB143, 0x76CC, 0xB144, 0x76CD, 0xEEC1, 0x76CE, 0xB0BB, - 0x76CF, 0xD5B5, 0x76D0, 0xD1CE, 0x76D1, 0xBCE0, 0x76D2, 0xBAD0, - 0x76D3, 0xB145, 0x76D4, 0xBFF8, 0x76D5, 0xB146, 0x76D6, 0xB8C7, - 0x76D7, 0xB5C1, 0x76D8, 0xC5CC, 0x76D9, 0xB147, 0x76DA, 0xB148, - 0x76DB, 0xCAA2, 0x76DC, 0xB149, 0x76DD, 0xB14A, 0x76DE, 0xB14B, - 0x76DF, 0xC3CB, 0x76E0, 0xB14C, 0x76E1, 0xB14D, 0x76E2, 0xB14E, - 0x76E3, 0xB14F, 0x76E4, 0xB150, 0x76E5, 0xEEC2, 0x76E6, 0xB151, - 0x76E7, 0xB152, 0x76E8, 0xB153, 0x76E9, 0xB154, 0x76EA, 0xB155, - 0x76EB, 0xB156, 0x76EC, 0xB157, 0x76ED, 0xB158, 0x76EE, 0xC4BF, - 0x76EF, 0xB6A2, 0x76F0, 0xB159, 0x76F1, 0xEDEC, 0x76F2, 0xC3A4, - 0x76F3, 0xB15A, 0x76F4, 0xD6B1, 0x76F5, 0xB15B, 0x76F6, 0xB15C, - 0x76F7, 0xB15D, 0x76F8, 0xCFE0, 0x76F9, 0xEDEF, 0x76FA, 0xB15E, - 0x76FB, 0xB15F, 0x76FC, 0xC5CE, 0x76FD, 0xB160, 0x76FE, 0xB6DC, - 0x76FF, 0xB161, 0x7700, 0xB162, 0x7701, 0xCAA1, 0x7702, 0xB163, - 0x7703, 0xB164, 0x7704, 0xEDED, 0x7705, 0xB165, 0x7706, 0xB166, - 0x7707, 0xEDF0, 0x7708, 0xEDF1, 0x7709, 0xC3BC, 0x770A, 0xB167, - 0x770B, 0xBFB4, 0x770C, 0xB168, 0x770D, 0xEDEE, 0x770E, 0xB169, - 0x770F, 0xB16A, 0x7710, 0xB16B, 0x7711, 0xB16C, 0x7712, 0xB16D, - 0x7713, 0xB16E, 0x7714, 0xB16F, 0x7715, 0xB170, 0x7716, 0xB171, - 0x7717, 0xB172, 0x7718, 0xB173, 0x7719, 0xEDF4, 0x771A, 0xEDF2, - 0x771B, 0xB174, 0x771C, 0xB175, 0x771D, 0xB176, 0x771E, 0xB177, - 0x771F, 0xD5E6, 0x7720, 0xC3DF, 0x7721, 0xB178, 0x7722, 0xEDF3, - 0x7723, 0xB179, 0x7724, 0xB17A, 0x7725, 0xB17B, 0x7726, 0xEDF6, - 0x7727, 0xB17C, 0x7728, 0xD5A3, 0x7729, 0xD1A3, 0x772A, 0xB17D, - 0x772B, 0xB17E, 0x772C, 0xB180, 0x772D, 0xEDF5, 0x772E, 0xB181, - 0x772F, 0xC3D0, 0x7730, 0xB182, 0x7731, 0xB183, 0x7732, 0xB184, - 0x7733, 0xB185, 0x7734, 0xB186, 0x7735, 0xEDF7, 0x7736, 0xBFF4, - 0x7737, 0xBEEC, 0x7738, 0xEDF8, 0x7739, 0xB187, 0x773A, 0xCCF7, - 0x773B, 0xB188, 0x773C, 0xD1DB, 0x773D, 0xB189, 0x773E, 0xB18A, - 0x773F, 0xB18B, 0x7740, 0xD7C5, 0x7741, 0xD5F6, 0x7742, 0xB18C, - 0x7743, 0xEDFC, 0x7744, 0xB18D, 0x7745, 0xB18E, 0x7746, 0xB18F, - 0x7747, 0xEDFB, 0x7748, 0xB190, 0x7749, 0xB191, 0x774A, 0xB192, - 0x774B, 0xB193, 0x774C, 0xB194, 0x774D, 0xB195, 0x774E, 0xB196, - 0x774F, 0xB197, 0x7750, 0xEDF9, 0x7751, 0xEDFA, 0x7752, 0xB198, - 0x7753, 0xB199, 0x7754, 0xB19A, 0x7755, 0xB19B, 0x7756, 0xB19C, - 0x7757, 0xB19D, 0x7758, 0xB19E, 0x7759, 0xB19F, 0x775A, 0xEDFD, - 0x775B, 0xBEA6, 0x775C, 0xB1A0, 0x775D, 0xB240, 0x775E, 0xB241, - 0x775F, 0xB242, 0x7760, 0xB243, 0x7761, 0xCBAF, 0x7762, 0xEEA1, - 0x7763, 0xB6BD, 0x7764, 0xB244, 0x7765, 0xEEA2, 0x7766, 0xC4C0, - 0x7767, 0xB245, 0x7768, 0xEDFE, 0x7769, 0xB246, 0x776A, 0xB247, - 0x776B, 0xBDDE, 0x776C, 0xB2C7, 0x776D, 0xB248, 0x776E, 0xB249, - 0x776F, 0xB24A, 0x7770, 0xB24B, 0x7771, 0xB24C, 0x7772, 0xB24D, - 0x7773, 0xB24E, 0x7774, 0xB24F, 0x7775, 0xB250, 0x7776, 0xB251, - 0x7777, 0xB252, 0x7778, 0xB253, 0x7779, 0xB6C3, 0x777A, 0xB254, - 0x777B, 0xB255, 0x777C, 0xB256, 0x777D, 0xEEA5, 0x777E, 0xD8BA, - 0x777F, 0xEEA3, 0x7780, 0xEEA6, 0x7781, 0xB257, 0x7782, 0xB258, - 0x7783, 0xB259, 0x7784, 0xC3E9, 0x7785, 0xB3F2, 0x7786, 0xB25A, - 0x7787, 0xB25B, 0x7788, 0xB25C, 0x7789, 0xB25D, 0x778A, 0xB25E, - 0x778B, 0xB25F, 0x778C, 0xEEA7, 0x778D, 0xEEA4, 0x778E, 0xCFB9, - 0x778F, 0xB260, 0x7790, 0xB261, 0x7791, 0xEEA8, 0x7792, 0xC2F7, - 0x7793, 0xB262, 0x7794, 0xB263, 0x7795, 0xB264, 0x7796, 0xB265, - 0x7797, 0xB266, 0x7798, 0xB267, 0x7799, 0xB268, 0x779A, 0xB269, - 0x779B, 0xB26A, 0x779C, 0xB26B, 0x779D, 0xB26C, 0x779E, 0xB26D, - 0x779F, 0xEEA9, 0x77A0, 0xEEAA, 0x77A1, 0xB26E, 0x77A2, 0xDEAB, - 0x77A3, 0xB26F, 0x77A4, 0xB270, 0x77A5, 0xC6B3, 0x77A6, 0xB271, - 0x77A7, 0xC7C6, 0x77A8, 0xB272, 0x77A9, 0xD6F5, 0x77AA, 0xB5C9, - 0x77AB, 0xB273, 0x77AC, 0xCBB2, 0x77AD, 0xB274, 0x77AE, 0xB275, - 0x77AF, 0xB276, 0x77B0, 0xEEAB, 0x77B1, 0xB277, 0x77B2, 0xB278, - 0x77B3, 0xCDAB, 0x77B4, 0xB279, 0x77B5, 0xEEAC, 0x77B6, 0xB27A, - 0x77B7, 0xB27B, 0x77B8, 0xB27C, 0x77B9, 0xB27D, 0x77BA, 0xB27E, - 0x77BB, 0xD5B0, 0x77BC, 0xB280, 0x77BD, 0xEEAD, 0x77BE, 0xB281, - 0x77BF, 0xF6C4, 0x77C0, 0xB282, 0x77C1, 0xB283, 0x77C2, 0xB284, - 0x77C3, 0xB285, 0x77C4, 0xB286, 0x77C5, 0xB287, 0x77C6, 0xB288, - 0x77C7, 0xB289, 0x77C8, 0xB28A, 0x77C9, 0xB28B, 0x77CA, 0xB28C, - 0x77CB, 0xB28D, 0x77CC, 0xB28E, 0x77CD, 0xDBC7, 0x77CE, 0xB28F, - 0x77CF, 0xB290, 0x77D0, 0xB291, 0x77D1, 0xB292, 0x77D2, 0xB293, - 0x77D3, 0xB294, 0x77D4, 0xB295, 0x77D5, 0xB296, 0x77D6, 0xB297, - 0x77D7, 0xB4A3, 0x77D8, 0xB298, 0x77D9, 0xB299, 0x77DA, 0xB29A, - 0x77DB, 0xC3AC, 0x77DC, 0xF1E6, 0x77DD, 0xB29B, 0x77DE, 0xB29C, - 0x77DF, 0xB29D, 0x77E0, 0xB29E, 0x77E1, 0xB29F, 0x77E2, 0xCAB8, - 0x77E3, 0xD2D3, 0x77E4, 0xB2A0, 0x77E5, 0xD6AA, 0x77E6, 0xB340, - 0x77E7, 0xEFF2, 0x77E8, 0xB341, 0x77E9, 0xBED8, 0x77EA, 0xB342, - 0x77EB, 0xBDC3, 0x77EC, 0xEFF3, 0x77ED, 0xB6CC, 0x77EE, 0xB0AB, - 0x77EF, 0xB343, 0x77F0, 0xB344, 0x77F1, 0xB345, 0x77F2, 0xB346, - 0x77F3, 0xCAAF, 0x77F4, 0xB347, 0x77F5, 0xB348, 0x77F6, 0xEDB6, - 0x77F7, 0xB349, 0x77F8, 0xEDB7, 0x77F9, 0xB34A, 0x77FA, 0xB34B, - 0x77FB, 0xB34C, 0x77FC, 0xB34D, 0x77FD, 0xCEF9, 0x77FE, 0xB7AF, - 0x77FF, 0xBFF3, 0x7800, 0xEDB8, 0x7801, 0xC2EB, 0x7802, 0xC9B0, - 0x7803, 0xB34E, 0x7804, 0xB34F, 0x7805, 0xB350, 0x7806, 0xB351, - 0x7807, 0xB352, 0x7808, 0xB353, 0x7809, 0xEDB9, 0x780A, 0xB354, - 0x780B, 0xB355, 0x780C, 0xC6F6, 0x780D, 0xBFB3, 0x780E, 0xB356, - 0x780F, 0xB357, 0x7810, 0xB358, 0x7811, 0xEDBC, 0x7812, 0xC5F8, - 0x7813, 0xB359, 0x7814, 0xD1D0, 0x7815, 0xB35A, 0x7816, 0xD7A9, - 0x7817, 0xEDBA, 0x7818, 0xEDBB, 0x7819, 0xB35B, 0x781A, 0xD1E2, - 0x781B, 0xB35C, 0x781C, 0xEDBF, 0x781D, 0xEDC0, 0x781E, 0xB35D, - 0x781F, 0xEDC4, 0x7820, 0xB35E, 0x7821, 0xB35F, 0x7822, 0xB360, - 0x7823, 0xEDC8, 0x7824, 0xB361, 0x7825, 0xEDC6, 0x7826, 0xEDCE, - 0x7827, 0xD5E8, 0x7828, 0xB362, 0x7829, 0xEDC9, 0x782A, 0xB363, - 0x782B, 0xB364, 0x782C, 0xEDC7, 0x782D, 0xEDBE, 0x782E, 0xB365, - 0x782F, 0xB366, 0x7830, 0xC5E9, 0x7831, 0xB367, 0x7832, 0xB368, - 0x7833, 0xB369, 0x7834, 0xC6C6, 0x7835, 0xB36A, 0x7836, 0xB36B, - 0x7837, 0xC9E9, 0x7838, 0xD4D2, 0x7839, 0xEDC1, 0x783A, 0xEDC2, - 0x783B, 0xEDC3, 0x783C, 0xEDC5, 0x783D, 0xB36C, 0x783E, 0xC0F9, - 0x783F, 0xB36D, 0x7840, 0xB4A1, 0x7841, 0xB36E, 0x7842, 0xB36F, - 0x7843, 0xB370, 0x7844, 0xB371, 0x7845, 0xB9E8, 0x7846, 0xB372, - 0x7847, 0xEDD0, 0x7848, 0xB373, 0x7849, 0xB374, 0x784A, 0xB375, - 0x784B, 0xB376, 0x784C, 0xEDD1, 0x784D, 0xB377, 0x784E, 0xEDCA, - 0x784F, 0xB378, 0x7850, 0xEDCF, 0x7851, 0xB379, 0x7852, 0xCEF8, - 0x7853, 0xB37A, 0x7854, 0xB37B, 0x7855, 0xCBB6, 0x7856, 0xEDCC, - 0x7857, 0xEDCD, 0x7858, 0xB37C, 0x7859, 0xB37D, 0x785A, 0xB37E, - 0x785B, 0xB380, 0x785C, 0xB381, 0x785D, 0xCFF5, 0x785E, 0xB382, - 0x785F, 0xB383, 0x7860, 0xB384, 0x7861, 0xB385, 0x7862, 0xB386, - 0x7863, 0xB387, 0x7864, 0xB388, 0x7865, 0xB389, 0x7866, 0xB38A, - 0x7867, 0xB38B, 0x7868, 0xB38C, 0x7869, 0xB38D, 0x786A, 0xEDD2, - 0x786B, 0xC1F2, 0x786C, 0xD3B2, 0x786D, 0xEDCB, 0x786E, 0xC8B7, - 0x786F, 0xB38E, 0x7870, 0xB38F, 0x7871, 0xB390, 0x7872, 0xB391, - 0x7873, 0xB392, 0x7874, 0xB393, 0x7875, 0xB394, 0x7876, 0xB395, - 0x7877, 0xBCEF, 0x7878, 0xB396, 0x7879, 0xB397, 0x787A, 0xB398, - 0x787B, 0xB399, 0x787C, 0xC5F0, 0x787D, 0xB39A, 0x787E, 0xB39B, - 0x787F, 0xB39C, 0x7880, 0xB39D, 0x7881, 0xB39E, 0x7882, 0xB39F, - 0x7883, 0xB3A0, 0x7884, 0xB440, 0x7885, 0xB441, 0x7886, 0xB442, - 0x7887, 0xEDD6, 0x7888, 0xB443, 0x7889, 0xB5EF, 0x788A, 0xB444, - 0x788B, 0xB445, 0x788C, 0xC2B5, 0x788D, 0xB0AD, 0x788E, 0xCBE9, - 0x788F, 0xB446, 0x7890, 0xB447, 0x7891, 0xB1AE, 0x7892, 0xB448, - 0x7893, 0xEDD4, 0x7894, 0xB449, 0x7895, 0xB44A, 0x7896, 0xB44B, - 0x7897, 0xCDEB, 0x7898, 0xB5E2, 0x7899, 0xB44C, 0x789A, 0xEDD5, - 0x789B, 0xEDD3, 0x789C, 0xEDD7, 0x789D, 0xB44D, 0x789E, 0xB44E, - 0x789F, 0xB5FA, 0x78A0, 0xB44F, 0x78A1, 0xEDD8, 0x78A2, 0xB450, - 0x78A3, 0xEDD9, 0x78A4, 0xB451, 0x78A5, 0xEDDC, 0x78A6, 0xB452, - 0x78A7, 0xB1CC, 0x78A8, 0xB453, 0x78A9, 0xB454, 0x78AA, 0xB455, - 0x78AB, 0xB456, 0x78AC, 0xB457, 0x78AD, 0xB458, 0x78AE, 0xB459, - 0x78AF, 0xB45A, 0x78B0, 0xC5F6, 0x78B1, 0xBCEE, 0x78B2, 0xEDDA, - 0x78B3, 0xCCBC, 0x78B4, 0xB2EA, 0x78B5, 0xB45B, 0x78B6, 0xB45C, - 0x78B7, 0xB45D, 0x78B8, 0xB45E, 0x78B9, 0xEDDB, 0x78BA, 0xB45F, - 0x78BB, 0xB460, 0x78BC, 0xB461, 0x78BD, 0xB462, 0x78BE, 0xC4EB, - 0x78BF, 0xB463, 0x78C0, 0xB464, 0x78C1, 0xB4C5, 0x78C2, 0xB465, - 0x78C3, 0xB466, 0x78C4, 0xB467, 0x78C5, 0xB0F5, 0x78C6, 0xB468, - 0x78C7, 0xB469, 0x78C8, 0xB46A, 0x78C9, 0xEDDF, 0x78CA, 0xC0DA, - 0x78CB, 0xB4E8, 0x78CC, 0xB46B, 0x78CD, 0xB46C, 0x78CE, 0xB46D, - 0x78CF, 0xB46E, 0x78D0, 0xC5CD, 0x78D1, 0xB46F, 0x78D2, 0xB470, - 0x78D3, 0xB471, 0x78D4, 0xEDDD, 0x78D5, 0xBFC4, 0x78D6, 0xB472, - 0x78D7, 0xB473, 0x78D8, 0xB474, 0x78D9, 0xEDDE, 0x78DA, 0xB475, - 0x78DB, 0xB476, 0x78DC, 0xB477, 0x78DD, 0xB478, 0x78DE, 0xB479, - 0x78DF, 0xB47A, 0x78E0, 0xB47B, 0x78E1, 0xB47C, 0x78E2, 0xB47D, - 0x78E3, 0xB47E, 0x78E4, 0xB480, 0x78E5, 0xB481, 0x78E6, 0xB482, - 0x78E7, 0xB483, 0x78E8, 0xC4A5, 0x78E9, 0xB484, 0x78EA, 0xB485, - 0x78EB, 0xB486, 0x78EC, 0xEDE0, 0x78ED, 0xB487, 0x78EE, 0xB488, - 0x78EF, 0xB489, 0x78F0, 0xB48A, 0x78F1, 0xB48B, 0x78F2, 0xEDE1, - 0x78F3, 0xB48C, 0x78F4, 0xEDE3, 0x78F5, 0xB48D, 0x78F6, 0xB48E, - 0x78F7, 0xC1D7, 0x78F8, 0xB48F, 0x78F9, 0xB490, 0x78FA, 0xBBC7, - 0x78FB, 0xB491, 0x78FC, 0xB492, 0x78FD, 0xB493, 0x78FE, 0xB494, - 0x78FF, 0xB495, 0x7900, 0xB496, 0x7901, 0xBDB8, 0x7902, 0xB497, - 0x7903, 0xB498, 0x7904, 0xB499, 0x7905, 0xEDE2, 0x7906, 0xB49A, - 0x7907, 0xB49B, 0x7908, 0xB49C, 0x7909, 0xB49D, 0x790A, 0xB49E, - 0x790B, 0xB49F, 0x790C, 0xB4A0, 0x790D, 0xB540, 0x790E, 0xB541, - 0x790F, 0xB542, 0x7910, 0xB543, 0x7911, 0xB544, 0x7912, 0xB545, - 0x7913, 0xEDE4, 0x7914, 0xB546, 0x7915, 0xB547, 0x7916, 0xB548, - 0x7917, 0xB549, 0x7918, 0xB54A, 0x7919, 0xB54B, 0x791A, 0xB54C, - 0x791B, 0xB54D, 0x791C, 0xB54E, 0x791D, 0xB54F, 0x791E, 0xEDE6, - 0x791F, 0xB550, 0x7920, 0xB551, 0x7921, 0xB552, 0x7922, 0xB553, - 0x7923, 0xB554, 0x7924, 0xEDE5, 0x7925, 0xB555, 0x7926, 0xB556, - 0x7927, 0xB557, 0x7928, 0xB558, 0x7929, 0xB559, 0x792A, 0xB55A, - 0x792B, 0xB55B, 0x792C, 0xB55C, 0x792D, 0xB55D, 0x792E, 0xB55E, - 0x792F, 0xB55F, 0x7930, 0xB560, 0x7931, 0xB561, 0x7932, 0xB562, - 0x7933, 0xB563, 0x7934, 0xEDE7, 0x7935, 0xB564, 0x7936, 0xB565, - 0x7937, 0xB566, 0x7938, 0xB567, 0x7939, 0xB568, 0x793A, 0xCABE, - 0x793B, 0xECEA, 0x793C, 0xC0F1, 0x793D, 0xB569, 0x793E, 0xC9E7, - 0x793F, 0xB56A, 0x7940, 0xECEB, 0x7941, 0xC6EE, 0x7942, 0xB56B, - 0x7943, 0xB56C, 0x7944, 0xB56D, 0x7945, 0xB56E, 0x7946, 0xECEC, - 0x7947, 0xB56F, 0x7948, 0xC6ED, 0x7949, 0xECED, 0x794A, 0xB570, - 0x794B, 0xB571, 0x794C, 0xB572, 0x794D, 0xB573, 0x794E, 0xB574, - 0x794F, 0xB575, 0x7950, 0xB576, 0x7951, 0xB577, 0x7952, 0xB578, - 0x7953, 0xECF0, 0x7954, 0xB579, 0x7955, 0xB57A, 0x7956, 0xD7E6, - 0x7957, 0xECF3, 0x7958, 0xB57B, 0x7959, 0xB57C, 0x795A, 0xECF1, - 0x795B, 0xECEE, 0x795C, 0xECEF, 0x795D, 0xD7A3, 0x795E, 0xC9F1, - 0x795F, 0xCBEE, 0x7960, 0xECF4, 0x7961, 0xB57D, 0x7962, 0xECF2, - 0x7963, 0xB57E, 0x7964, 0xB580, 0x7965, 0xCFE9, 0x7966, 0xB581, - 0x7967, 0xECF6, 0x7968, 0xC6B1, 0x7969, 0xB582, 0x796A, 0xB583, - 0x796B, 0xB584, 0x796C, 0xB585, 0x796D, 0xBCC0, 0x796E, 0xB586, - 0x796F, 0xECF5, 0x7970, 0xB587, 0x7971, 0xB588, 0x7972, 0xB589, - 0x7973, 0xB58A, 0x7974, 0xB58B, 0x7975, 0xB58C, 0x7976, 0xB58D, - 0x7977, 0xB5BB, 0x7978, 0xBBF6, 0x7979, 0xB58E, 0x797A, 0xECF7, - 0x797B, 0xB58F, 0x797C, 0xB590, 0x797D, 0xB591, 0x797E, 0xB592, - 0x797F, 0xB593, 0x7980, 0xD9F7, 0x7981, 0xBDFB, 0x7982, 0xB594, - 0x7983, 0xB595, 0x7984, 0xC2BB, 0x7985, 0xECF8, 0x7986, 0xB596, - 0x7987, 0xB597, 0x7988, 0xB598, 0x7989, 0xB599, 0x798A, 0xECF9, - 0x798B, 0xB59A, 0x798C, 0xB59B, 0x798D, 0xB59C, 0x798E, 0xB59D, - 0x798F, 0xB8A3, 0x7990, 0xB59E, 0x7991, 0xB59F, 0x7992, 0xB5A0, - 0x7993, 0xB640, 0x7994, 0xB641, 0x7995, 0xB642, 0x7996, 0xB643, - 0x7997, 0xB644, 0x7998, 0xB645, 0x7999, 0xB646, 0x799A, 0xECFA, - 0x799B, 0xB647, 0x799C, 0xB648, 0x799D, 0xB649, 0x799E, 0xB64A, - 0x799F, 0xB64B, 0x79A0, 0xB64C, 0x79A1, 0xB64D, 0x79A2, 0xB64E, - 0x79A3, 0xB64F, 0x79A4, 0xB650, 0x79A5, 0xB651, 0x79A6, 0xB652, - 0x79A7, 0xECFB, 0x79A8, 0xB653, 0x79A9, 0xB654, 0x79AA, 0xB655, - 0x79AB, 0xB656, 0x79AC, 0xB657, 0x79AD, 0xB658, 0x79AE, 0xB659, - 0x79AF, 0xB65A, 0x79B0, 0xB65B, 0x79B1, 0xB65C, 0x79B2, 0xB65D, - 0x79B3, 0xECFC, 0x79B4, 0xB65E, 0x79B5, 0xB65F, 0x79B6, 0xB660, - 0x79B7, 0xB661, 0x79B8, 0xB662, 0x79B9, 0xD3ED, 0x79BA, 0xD8AE, - 0x79BB, 0xC0EB, 0x79BC, 0xB663, 0x79BD, 0xC7DD, 0x79BE, 0xBACC, - 0x79BF, 0xB664, 0x79C0, 0xD0E3, 0x79C1, 0xCBBD, 0x79C2, 0xB665, - 0x79C3, 0xCDBA, 0x79C4, 0xB666, 0x79C5, 0xB667, 0x79C6, 0xB8D1, - 0x79C7, 0xB668, 0x79C8, 0xB669, 0x79C9, 0xB1FC, 0x79CA, 0xB66A, - 0x79CB, 0xC7EF, 0x79CC, 0xB66B, 0x79CD, 0xD6D6, 0x79CE, 0xB66C, - 0x79CF, 0xB66D, 0x79D0, 0xB66E, 0x79D1, 0xBFC6, 0x79D2, 0xC3EB, - 0x79D3, 0xB66F, 0x79D4, 0xB670, 0x79D5, 0xEFF5, 0x79D6, 0xB671, - 0x79D7, 0xB672, 0x79D8, 0xC3D8, 0x79D9, 0xB673, 0x79DA, 0xB674, - 0x79DB, 0xB675, 0x79DC, 0xB676, 0x79DD, 0xB677, 0x79DE, 0xB678, - 0x79DF, 0xD7E2, 0x79E0, 0xB679, 0x79E1, 0xB67A, 0x79E2, 0xB67B, - 0x79E3, 0xEFF7, 0x79E4, 0xB3D3, 0x79E5, 0xB67C, 0x79E6, 0xC7D8, - 0x79E7, 0xD1ED, 0x79E8, 0xB67D, 0x79E9, 0xD6C8, 0x79EA, 0xB67E, - 0x79EB, 0xEFF8, 0x79EC, 0xB680, 0x79ED, 0xEFF6, 0x79EE, 0xB681, - 0x79EF, 0xBBFD, 0x79F0, 0xB3C6, 0x79F1, 0xB682, 0x79F2, 0xB683, - 0x79F3, 0xB684, 0x79F4, 0xB685, 0x79F5, 0xB686, 0x79F6, 0xB687, - 0x79F7, 0xB688, 0x79F8, 0xBDD5, 0x79F9, 0xB689, 0x79FA, 0xB68A, - 0x79FB, 0xD2C6, 0x79FC, 0xB68B, 0x79FD, 0xBBE0, 0x79FE, 0xB68C, - 0x79FF, 0xB68D, 0x7A00, 0xCFA1, 0x7A01, 0xB68E, 0x7A02, 0xEFFC, - 0x7A03, 0xEFFB, 0x7A04, 0xB68F, 0x7A05, 0xB690, 0x7A06, 0xEFF9, - 0x7A07, 0xB691, 0x7A08, 0xB692, 0x7A09, 0xB693, 0x7A0A, 0xB694, - 0x7A0B, 0xB3CC, 0x7A0C, 0xB695, 0x7A0D, 0xC9D4, 0x7A0E, 0xCBB0, - 0x7A0F, 0xB696, 0x7A10, 0xB697, 0x7A11, 0xB698, 0x7A12, 0xB699, - 0x7A13, 0xB69A, 0x7A14, 0xEFFE, 0x7A15, 0xB69B, 0x7A16, 0xB69C, - 0x7A17, 0xB0DE, 0x7A18, 0xB69D, 0x7A19, 0xB69E, 0x7A1A, 0xD6C9, - 0x7A1B, 0xB69F, 0x7A1C, 0xB6A0, 0x7A1D, 0xB740, 0x7A1E, 0xEFFD, - 0x7A1F, 0xB741, 0x7A20, 0xB3ED, 0x7A21, 0xB742, 0x7A22, 0xB743, - 0x7A23, 0xF6D5, 0x7A24, 0xB744, 0x7A25, 0xB745, 0x7A26, 0xB746, - 0x7A27, 0xB747, 0x7A28, 0xB748, 0x7A29, 0xB749, 0x7A2A, 0xB74A, - 0x7A2B, 0xB74B, 0x7A2C, 0xB74C, 0x7A2D, 0xB74D, 0x7A2E, 0xB74E, - 0x7A2F, 0xB74F, 0x7A30, 0xB750, 0x7A31, 0xB751, 0x7A32, 0xB752, - 0x7A33, 0xCEC8, 0x7A34, 0xB753, 0x7A35, 0xB754, 0x7A36, 0xB755, - 0x7A37, 0xF0A2, 0x7A38, 0xB756, 0x7A39, 0xF0A1, 0x7A3A, 0xB757, - 0x7A3B, 0xB5BE, 0x7A3C, 0xBCDA, 0x7A3D, 0xBBFC, 0x7A3E, 0xB758, - 0x7A3F, 0xB8E5, 0x7A40, 0xB759, 0x7A41, 0xB75A, 0x7A42, 0xB75B, - 0x7A43, 0xB75C, 0x7A44, 0xB75D, 0x7A45, 0xB75E, 0x7A46, 0xC4C2, - 0x7A47, 0xB75F, 0x7A48, 0xB760, 0x7A49, 0xB761, 0x7A4A, 0xB762, - 0x7A4B, 0xB763, 0x7A4C, 0xB764, 0x7A4D, 0xB765, 0x7A4E, 0xB766, - 0x7A4F, 0xB767, 0x7A50, 0xB768, 0x7A51, 0xF0A3, 0x7A52, 0xB769, - 0x7A53, 0xB76A, 0x7A54, 0xB76B, 0x7A55, 0xB76C, 0x7A56, 0xB76D, - 0x7A57, 0xCBEB, 0x7A58, 0xB76E, 0x7A59, 0xB76F, 0x7A5A, 0xB770, - 0x7A5B, 0xB771, 0x7A5C, 0xB772, 0x7A5D, 0xB773, 0x7A5E, 0xB774, - 0x7A5F, 0xB775, 0x7A60, 0xB776, 0x7A61, 0xB777, 0x7A62, 0xB778, - 0x7A63, 0xB779, 0x7A64, 0xB77A, 0x7A65, 0xB77B, 0x7A66, 0xB77C, - 0x7A67, 0xB77D, 0x7A68, 0xB77E, 0x7A69, 0xB780, 0x7A6A, 0xB781, - 0x7A6B, 0xB782, 0x7A6C, 0xB783, 0x7A6D, 0xB784, 0x7A6E, 0xB785, - 0x7A6F, 0xB786, 0x7A70, 0xF0A6, 0x7A71, 0xB787, 0x7A72, 0xB788, - 0x7A73, 0xB789, 0x7A74, 0xD1A8, 0x7A75, 0xB78A, 0x7A76, 0xBEBF, - 0x7A77, 0xC7EE, 0x7A78, 0xF1B6, 0x7A79, 0xF1B7, 0x7A7A, 0xBFD5, - 0x7A7B, 0xB78B, 0x7A7C, 0xB78C, 0x7A7D, 0xB78D, 0x7A7E, 0xB78E, - 0x7A7F, 0xB4A9, 0x7A80, 0xF1B8, 0x7A81, 0xCDBB, 0x7A82, 0xB78F, - 0x7A83, 0xC7D4, 0x7A84, 0xD5AD, 0x7A85, 0xB790, 0x7A86, 0xF1B9, - 0x7A87, 0xB791, 0x7A88, 0xF1BA, 0x7A89, 0xB792, 0x7A8A, 0xB793, - 0x7A8B, 0xB794, 0x7A8C, 0xB795, 0x7A8D, 0xC7CF, 0x7A8E, 0xB796, - 0x7A8F, 0xB797, 0x7A90, 0xB798, 0x7A91, 0xD2A4, 0x7A92, 0xD6CF, - 0x7A93, 0xB799, 0x7A94, 0xB79A, 0x7A95, 0xF1BB, 0x7A96, 0xBDD1, - 0x7A97, 0xB4B0, 0x7A98, 0xBEBD, 0x7A99, 0xB79B, 0x7A9A, 0xB79C, - 0x7A9B, 0xB79D, 0x7A9C, 0xB4DC, 0x7A9D, 0xCED1, 0x7A9E, 0xB79E, - 0x7A9F, 0xBFDF, 0x7AA0, 0xF1BD, 0x7AA1, 0xB79F, 0x7AA2, 0xB7A0, - 0x7AA3, 0xB840, 0x7AA4, 0xB841, 0x7AA5, 0xBFFA, 0x7AA6, 0xF1BC, - 0x7AA7, 0xB842, 0x7AA8, 0xF1BF, 0x7AA9, 0xB843, 0x7AAA, 0xB844, - 0x7AAB, 0xB845, 0x7AAC, 0xF1BE, 0x7AAD, 0xF1C0, 0x7AAE, 0xB846, - 0x7AAF, 0xB847, 0x7AB0, 0xB848, 0x7AB1, 0xB849, 0x7AB2, 0xB84A, - 0x7AB3, 0xF1C1, 0x7AB4, 0xB84B, 0x7AB5, 0xB84C, 0x7AB6, 0xB84D, - 0x7AB7, 0xB84E, 0x7AB8, 0xB84F, 0x7AB9, 0xB850, 0x7ABA, 0xB851, - 0x7ABB, 0xB852, 0x7ABC, 0xB853, 0x7ABD, 0xB854, 0x7ABE, 0xB855, - 0x7ABF, 0xC1FE, 0x7AC0, 0xB856, 0x7AC1, 0xB857, 0x7AC2, 0xB858, - 0x7AC3, 0xB859, 0x7AC4, 0xB85A, 0x7AC5, 0xB85B, 0x7AC6, 0xB85C, - 0x7AC7, 0xB85D, 0x7AC8, 0xB85E, 0x7AC9, 0xB85F, 0x7ACA, 0xB860, - 0x7ACB, 0xC1A2, 0x7ACC, 0xB861, 0x7ACD, 0xB862, 0x7ACE, 0xB863, - 0x7ACF, 0xB864, 0x7AD0, 0xB865, 0x7AD1, 0xB866, 0x7AD2, 0xB867, - 0x7AD3, 0xB868, 0x7AD4, 0xB869, 0x7AD5, 0xB86A, 0x7AD6, 0xCAFA, - 0x7AD7, 0xB86B, 0x7AD8, 0xB86C, 0x7AD9, 0xD5BE, 0x7ADA, 0xB86D, - 0x7ADB, 0xB86E, 0x7ADC, 0xB86F, 0x7ADD, 0xB870, 0x7ADE, 0xBEBA, - 0x7ADF, 0xBEB9, 0x7AE0, 0xD5C2, 0x7AE1, 0xB871, 0x7AE2, 0xB872, - 0x7AE3, 0xBFA2, 0x7AE4, 0xB873, 0x7AE5, 0xCDAF, 0x7AE6, 0xF1B5, - 0x7AE7, 0xB874, 0x7AE8, 0xB875, 0x7AE9, 0xB876, 0x7AEA, 0xB877, - 0x7AEB, 0xB878, 0x7AEC, 0xB879, 0x7AED, 0xBDDF, 0x7AEE, 0xB87A, - 0x7AEF, 0xB6CB, 0x7AF0, 0xB87B, 0x7AF1, 0xB87C, 0x7AF2, 0xB87D, - 0x7AF3, 0xB87E, 0x7AF4, 0xB880, 0x7AF5, 0xB881, 0x7AF6, 0xB882, - 0x7AF7, 0xB883, 0x7AF8, 0xB884, 0x7AF9, 0xD6F1, 0x7AFA, 0xF3C3, - 0x7AFB, 0xB885, 0x7AFC, 0xB886, 0x7AFD, 0xF3C4, 0x7AFE, 0xB887, - 0x7AFF, 0xB8CD, 0x7B00, 0xB888, 0x7B01, 0xB889, 0x7B02, 0xB88A, - 0x7B03, 0xF3C6, 0x7B04, 0xF3C7, 0x7B05, 0xB88B, 0x7B06, 0xB0CA, - 0x7B07, 0xB88C, 0x7B08, 0xF3C5, 0x7B09, 0xB88D, 0x7B0A, 0xF3C9, - 0x7B0B, 0xCBF1, 0x7B0C, 0xB88E, 0x7B0D, 0xB88F, 0x7B0E, 0xB890, - 0x7B0F, 0xF3CB, 0x7B10, 0xB891, 0x7B11, 0xD0A6, 0x7B12, 0xB892, - 0x7B13, 0xB893, 0x7B14, 0xB1CA, 0x7B15, 0xF3C8, 0x7B16, 0xB894, - 0x7B17, 0xB895, 0x7B18, 0xB896, 0x7B19, 0xF3CF, 0x7B1A, 0xB897, - 0x7B1B, 0xB5D1, 0x7B1C, 0xB898, 0x7B1D, 0xB899, 0x7B1E, 0xF3D7, - 0x7B1F, 0xB89A, 0x7B20, 0xF3D2, 0x7B21, 0xB89B, 0x7B22, 0xB89C, - 0x7B23, 0xB89D, 0x7B24, 0xF3D4, 0x7B25, 0xF3D3, 0x7B26, 0xB7FB, - 0x7B27, 0xB89E, 0x7B28, 0xB1BF, 0x7B29, 0xB89F, 0x7B2A, 0xF3CE, - 0x7B2B, 0xF3CA, 0x7B2C, 0xB5DA, 0x7B2D, 0xB8A0, 0x7B2E, 0xF3D0, - 0x7B2F, 0xB940, 0x7B30, 0xB941, 0x7B31, 0xF3D1, 0x7B32, 0xB942, - 0x7B33, 0xF3D5, 0x7B34, 0xB943, 0x7B35, 0xB944, 0x7B36, 0xB945, - 0x7B37, 0xB946, 0x7B38, 0xF3CD, 0x7B39, 0xB947, 0x7B3A, 0xBCE3, - 0x7B3B, 0xB948, 0x7B3C, 0xC1FD, 0x7B3D, 0xB949, 0x7B3E, 0xF3D6, - 0x7B3F, 0xB94A, 0x7B40, 0xB94B, 0x7B41, 0xB94C, 0x7B42, 0xB94D, - 0x7B43, 0xB94E, 0x7B44, 0xB94F, 0x7B45, 0xF3DA, 0x7B46, 0xB950, - 0x7B47, 0xF3CC, 0x7B48, 0xB951, 0x7B49, 0xB5C8, 0x7B4A, 0xB952, - 0x7B4B, 0xBDEE, 0x7B4C, 0xF3DC, 0x7B4D, 0xB953, 0x7B4E, 0xB954, - 0x7B4F, 0xB7A4, 0x7B50, 0xBFF0, 0x7B51, 0xD6FE, 0x7B52, 0xCDB2, - 0x7B53, 0xB955, 0x7B54, 0xB4F0, 0x7B55, 0xB956, 0x7B56, 0xB2DF, - 0x7B57, 0xB957, 0x7B58, 0xF3D8, 0x7B59, 0xB958, 0x7B5A, 0xF3D9, - 0x7B5B, 0xC9B8, 0x7B5C, 0xB959, 0x7B5D, 0xF3DD, 0x7B5E, 0xB95A, - 0x7B5F, 0xB95B, 0x7B60, 0xF3DE, 0x7B61, 0xB95C, 0x7B62, 0xF3E1, - 0x7B63, 0xB95D, 0x7B64, 0xB95E, 0x7B65, 0xB95F, 0x7B66, 0xB960, - 0x7B67, 0xB961, 0x7B68, 0xB962, 0x7B69, 0xB963, 0x7B6A, 0xB964, - 0x7B6B, 0xB965, 0x7B6C, 0xB966, 0x7B6D, 0xB967, 0x7B6E, 0xF3DF, - 0x7B6F, 0xB968, 0x7B70, 0xB969, 0x7B71, 0xF3E3, 0x7B72, 0xF3E2, - 0x7B73, 0xB96A, 0x7B74, 0xB96B, 0x7B75, 0xF3DB, 0x7B76, 0xB96C, - 0x7B77, 0xBFEA, 0x7B78, 0xB96D, 0x7B79, 0xB3EF, 0x7B7A, 0xB96E, - 0x7B7B, 0xF3E0, 0x7B7C, 0xB96F, 0x7B7D, 0xB970, 0x7B7E, 0xC7A9, - 0x7B7F, 0xB971, 0x7B80, 0xBCF2, 0x7B81, 0xB972, 0x7B82, 0xB973, - 0x7B83, 0xB974, 0x7B84, 0xB975, 0x7B85, 0xF3EB, 0x7B86, 0xB976, - 0x7B87, 0xB977, 0x7B88, 0xB978, 0x7B89, 0xB979, 0x7B8A, 0xB97A, - 0x7B8B, 0xB97B, 0x7B8C, 0xB97C, 0x7B8D, 0xB9BF, 0x7B8E, 0xB97D, - 0x7B8F, 0xB97E, 0x7B90, 0xF3E4, 0x7B91, 0xB980, 0x7B92, 0xB981, - 0x7B93, 0xB982, 0x7B94, 0xB2AD, 0x7B95, 0xBBFE, 0x7B96, 0xB983, - 0x7B97, 0xCBE3, 0x7B98, 0xB984, 0x7B99, 0xB985, 0x7B9A, 0xB986, - 0x7B9B, 0xB987, 0x7B9C, 0xF3ED, 0x7B9D, 0xF3E9, 0x7B9E, 0xB988, - 0x7B9F, 0xB989, 0x7BA0, 0xB98A, 0x7BA1, 0xB9DC, 0x7BA2, 0xF3EE, - 0x7BA3, 0xB98B, 0x7BA4, 0xB98C, 0x7BA5, 0xB98D, 0x7BA6, 0xF3E5, - 0x7BA7, 0xF3E6, 0x7BA8, 0xF3EA, 0x7BA9, 0xC2E1, 0x7BAA, 0xF3EC, - 0x7BAB, 0xF3EF, 0x7BAC, 0xF3E8, 0x7BAD, 0xBCFD, 0x7BAE, 0xB98E, - 0x7BAF, 0xB98F, 0x7BB0, 0xB990, 0x7BB1, 0xCFE4, 0x7BB2, 0xB991, - 0x7BB3, 0xB992, 0x7BB4, 0xF3F0, 0x7BB5, 0xB993, 0x7BB6, 0xB994, - 0x7BB7, 0xB995, 0x7BB8, 0xF3E7, 0x7BB9, 0xB996, 0x7BBA, 0xB997, - 0x7BBB, 0xB998, 0x7BBC, 0xB999, 0x7BBD, 0xB99A, 0x7BBE, 0xB99B, - 0x7BBF, 0xB99C, 0x7BC0, 0xB99D, 0x7BC1, 0xF3F2, 0x7BC2, 0xB99E, - 0x7BC3, 0xB99F, 0x7BC4, 0xB9A0, 0x7BC5, 0xBA40, 0x7BC6, 0xD7AD, - 0x7BC7, 0xC6AA, 0x7BC8, 0xBA41, 0x7BC9, 0xBA42, 0x7BCA, 0xBA43, - 0x7BCB, 0xBA44, 0x7BCC, 0xF3F3, 0x7BCD, 0xBA45, 0x7BCE, 0xBA46, - 0x7BCF, 0xBA47, 0x7BD0, 0xBA48, 0x7BD1, 0xF3F1, 0x7BD2, 0xBA49, - 0x7BD3, 0xC2A8, 0x7BD4, 0xBA4A, 0x7BD5, 0xBA4B, 0x7BD6, 0xBA4C, - 0x7BD7, 0xBA4D, 0x7BD8, 0xBA4E, 0x7BD9, 0xB8DD, 0x7BDA, 0xF3F5, - 0x7BDB, 0xBA4F, 0x7BDC, 0xBA50, 0x7BDD, 0xF3F4, 0x7BDE, 0xBA51, - 0x7BDF, 0xBA52, 0x7BE0, 0xBA53, 0x7BE1, 0xB4DB, 0x7BE2, 0xBA54, - 0x7BE3, 0xBA55, 0x7BE4, 0xBA56, 0x7BE5, 0xF3F6, 0x7BE6, 0xF3F7, - 0x7BE7, 0xBA57, 0x7BE8, 0xBA58, 0x7BE9, 0xBA59, 0x7BEA, 0xF3F8, - 0x7BEB, 0xBA5A, 0x7BEC, 0xBA5B, 0x7BED, 0xBA5C, 0x7BEE, 0xC0BA, - 0x7BEF, 0xBA5D, 0x7BF0, 0xBA5E, 0x7BF1, 0xC0E9, 0x7BF2, 0xBA5F, - 0x7BF3, 0xBA60, 0x7BF4, 0xBA61, 0x7BF5, 0xBA62, 0x7BF6, 0xBA63, - 0x7BF7, 0xC5F1, 0x7BF8, 0xBA64, 0x7BF9, 0xBA65, 0x7BFA, 0xBA66, - 0x7BFB, 0xBA67, 0x7BFC, 0xF3FB, 0x7BFD, 0xBA68, 0x7BFE, 0xF3FA, - 0x7BFF, 0xBA69, 0x7C00, 0xBA6A, 0x7C01, 0xBA6B, 0x7C02, 0xBA6C, - 0x7C03, 0xBA6D, 0x7C04, 0xBA6E, 0x7C05, 0xBA6F, 0x7C06, 0xBA70, - 0x7C07, 0xB4D8, 0x7C08, 0xBA71, 0x7C09, 0xBA72, 0x7C0A, 0xBA73, - 0x7C0B, 0xF3FE, 0x7C0C, 0xF3F9, 0x7C0D, 0xBA74, 0x7C0E, 0xBA75, - 0x7C0F, 0xF3FC, 0x7C10, 0xBA76, 0x7C11, 0xBA77, 0x7C12, 0xBA78, - 0x7C13, 0xBA79, 0x7C14, 0xBA7A, 0x7C15, 0xBA7B, 0x7C16, 0xF3FD, - 0x7C17, 0xBA7C, 0x7C18, 0xBA7D, 0x7C19, 0xBA7E, 0x7C1A, 0xBA80, - 0x7C1B, 0xBA81, 0x7C1C, 0xBA82, 0x7C1D, 0xBA83, 0x7C1E, 0xBA84, - 0x7C1F, 0xF4A1, 0x7C20, 0xBA85, 0x7C21, 0xBA86, 0x7C22, 0xBA87, - 0x7C23, 0xBA88, 0x7C24, 0xBA89, 0x7C25, 0xBA8A, 0x7C26, 0xF4A3, - 0x7C27, 0xBBC9, 0x7C28, 0xBA8B, 0x7C29, 0xBA8C, 0x7C2A, 0xF4A2, - 0x7C2B, 0xBA8D, 0x7C2C, 0xBA8E, 0x7C2D, 0xBA8F, 0x7C2E, 0xBA90, - 0x7C2F, 0xBA91, 0x7C30, 0xBA92, 0x7C31, 0xBA93, 0x7C32, 0xBA94, - 0x7C33, 0xBA95, 0x7C34, 0xBA96, 0x7C35, 0xBA97, 0x7C36, 0xBA98, - 0x7C37, 0xBA99, 0x7C38, 0xF4A4, 0x7C39, 0xBA9A, 0x7C3A, 0xBA9B, - 0x7C3B, 0xBA9C, 0x7C3C, 0xBA9D, 0x7C3D, 0xBA9E, 0x7C3E, 0xBA9F, - 0x7C3F, 0xB2BE, 0x7C40, 0xF4A6, 0x7C41, 0xF4A5, 0x7C42, 0xBAA0, - 0x7C43, 0xBB40, 0x7C44, 0xBB41, 0x7C45, 0xBB42, 0x7C46, 0xBB43, - 0x7C47, 0xBB44, 0x7C48, 0xBB45, 0x7C49, 0xBB46, 0x7C4A, 0xBB47, - 0x7C4B, 0xBB48, 0x7C4C, 0xBB49, 0x7C4D, 0xBCAE, 0x7C4E, 0xBB4A, - 0x7C4F, 0xBB4B, 0x7C50, 0xBB4C, 0x7C51, 0xBB4D, 0x7C52, 0xBB4E, - 0x7C53, 0xBB4F, 0x7C54, 0xBB50, 0x7C55, 0xBB51, 0x7C56, 0xBB52, - 0x7C57, 0xBB53, 0x7C58, 0xBB54, 0x7C59, 0xBB55, 0x7C5A, 0xBB56, - 0x7C5B, 0xBB57, 0x7C5C, 0xBB58, 0x7C5D, 0xBB59, 0x7C5E, 0xBB5A, - 0x7C5F, 0xBB5B, 0x7C60, 0xBB5C, 0x7C61, 0xBB5D, 0x7C62, 0xBB5E, - 0x7C63, 0xBB5F, 0x7C64, 0xBB60, 0x7C65, 0xBB61, 0x7C66, 0xBB62, - 0x7C67, 0xBB63, 0x7C68, 0xBB64, 0x7C69, 0xBB65, 0x7C6A, 0xBB66, - 0x7C6B, 0xBB67, 0x7C6C, 0xBB68, 0x7C6D, 0xBB69, 0x7C6E, 0xBB6A, - 0x7C6F, 0xBB6B, 0x7C70, 0xBB6C, 0x7C71, 0xBB6D, 0x7C72, 0xBB6E, - 0x7C73, 0xC3D7, 0x7C74, 0xD9E1, 0x7C75, 0xBB6F, 0x7C76, 0xBB70, - 0x7C77, 0xBB71, 0x7C78, 0xBB72, 0x7C79, 0xBB73, 0x7C7A, 0xBB74, - 0x7C7B, 0xC0E0, 0x7C7C, 0xF4CC, 0x7C7D, 0xD7D1, 0x7C7E, 0xBB75, - 0x7C7F, 0xBB76, 0x7C80, 0xBB77, 0x7C81, 0xBB78, 0x7C82, 0xBB79, - 0x7C83, 0xBB7A, 0x7C84, 0xBB7B, 0x7C85, 0xBB7C, 0x7C86, 0xBB7D, - 0x7C87, 0xBB7E, 0x7C88, 0xBB80, 0x7C89, 0xB7DB, 0x7C8A, 0xBB81, - 0x7C8B, 0xBB82, 0x7C8C, 0xBB83, 0x7C8D, 0xBB84, 0x7C8E, 0xBB85, - 0x7C8F, 0xBB86, 0x7C90, 0xBB87, 0x7C91, 0xF4CE, 0x7C92, 0xC1A3, - 0x7C93, 0xBB88, 0x7C94, 0xBB89, 0x7C95, 0xC6C9, 0x7C96, 0xBB8A, - 0x7C97, 0xB4D6, 0x7C98, 0xD5B3, 0x7C99, 0xBB8B, 0x7C9A, 0xBB8C, - 0x7C9B, 0xBB8D, 0x7C9C, 0xF4D0, 0x7C9D, 0xF4CF, 0x7C9E, 0xF4D1, - 0x7C9F, 0xCBDA, 0x7CA0, 0xBB8E, 0x7CA1, 0xBB8F, 0x7CA2, 0xF4D2, - 0x7CA3, 0xBB90, 0x7CA4, 0xD4C1, 0x7CA5, 0xD6E0, 0x7CA6, 0xBB91, - 0x7CA7, 0xBB92, 0x7CA8, 0xBB93, 0x7CA9, 0xBB94, 0x7CAA, 0xB7E0, - 0x7CAB, 0xBB95, 0x7CAC, 0xBB96, 0x7CAD, 0xBB97, 0x7CAE, 0xC1B8, - 0x7CAF, 0xBB98, 0x7CB0, 0xBB99, 0x7CB1, 0xC1BB, 0x7CB2, 0xF4D3, - 0x7CB3, 0xBEAC, 0x7CB4, 0xBB9A, 0x7CB5, 0xBB9B, 0x7CB6, 0xBB9C, - 0x7CB7, 0xBB9D, 0x7CB8, 0xBB9E, 0x7CB9, 0xB4E2, 0x7CBA, 0xBB9F, - 0x7CBB, 0xBBA0, 0x7CBC, 0xF4D4, 0x7CBD, 0xF4D5, 0x7CBE, 0xBEAB, - 0x7CBF, 0xBC40, 0x7CC0, 0xBC41, 0x7CC1, 0xF4D6, 0x7CC2, 0xBC42, - 0x7CC3, 0xBC43, 0x7CC4, 0xBC44, 0x7CC5, 0xF4DB, 0x7CC6, 0xBC45, - 0x7CC7, 0xF4D7, 0x7CC8, 0xF4DA, 0x7CC9, 0xBC46, 0x7CCA, 0xBAFD, - 0x7CCB, 0xBC47, 0x7CCC, 0xF4D8, 0x7CCD, 0xF4D9, 0x7CCE, 0xBC48, - 0x7CCF, 0xBC49, 0x7CD0, 0xBC4A, 0x7CD1, 0xBC4B, 0x7CD2, 0xBC4C, - 0x7CD3, 0xBC4D, 0x7CD4, 0xBC4E, 0x7CD5, 0xB8E2, 0x7CD6, 0xCCC7, - 0x7CD7, 0xF4DC, 0x7CD8, 0xBC4F, 0x7CD9, 0xB2DA, 0x7CDA, 0xBC50, - 0x7CDB, 0xBC51, 0x7CDC, 0xC3D3, 0x7CDD, 0xBC52, 0x7CDE, 0xBC53, - 0x7CDF, 0xD4E3, 0x7CE0, 0xBFB7, 0x7CE1, 0xBC54, 0x7CE2, 0xBC55, - 0x7CE3, 0xBC56, 0x7CE4, 0xBC57, 0x7CE5, 0xBC58, 0x7CE6, 0xBC59, - 0x7CE7, 0xBC5A, 0x7CE8, 0xF4DD, 0x7CE9, 0xBC5B, 0x7CEA, 0xBC5C, - 0x7CEB, 0xBC5D, 0x7CEC, 0xBC5E, 0x7CED, 0xBC5F, 0x7CEE, 0xBC60, - 0x7CEF, 0xC5B4, 0x7CF0, 0xBC61, 0x7CF1, 0xBC62, 0x7CF2, 0xBC63, - 0x7CF3, 0xBC64, 0x7CF4, 0xBC65, 0x7CF5, 0xBC66, 0x7CF6, 0xBC67, - 0x7CF7, 0xBC68, 0x7CF8, 0xF4E9, 0x7CF9, 0xBC69, 0x7CFA, 0xBC6A, - 0x7CFB, 0xCFB5, 0x7CFC, 0xBC6B, 0x7CFD, 0xBC6C, 0x7CFE, 0xBC6D, - 0x7CFF, 0xBC6E, 0x7D00, 0xBC6F, 0x7D01, 0xBC70, 0x7D02, 0xBC71, - 0x7D03, 0xBC72, 0x7D04, 0xBC73, 0x7D05, 0xBC74, 0x7D06, 0xBC75, - 0x7D07, 0xBC76, 0x7D08, 0xBC77, 0x7D09, 0xBC78, 0x7D0A, 0xCEC9, - 0x7D0B, 0xBC79, 0x7D0C, 0xBC7A, 0x7D0D, 0xBC7B, 0x7D0E, 0xBC7C, - 0x7D0F, 0xBC7D, 0x7D10, 0xBC7E, 0x7D11, 0xBC80, 0x7D12, 0xBC81, - 0x7D13, 0xBC82, 0x7D14, 0xBC83, 0x7D15, 0xBC84, 0x7D16, 0xBC85, - 0x7D17, 0xBC86, 0x7D18, 0xBC87, 0x7D19, 0xBC88, 0x7D1A, 0xBC89, - 0x7D1B, 0xBC8A, 0x7D1C, 0xBC8B, 0x7D1D, 0xBC8C, 0x7D1E, 0xBC8D, - 0x7D1F, 0xBC8E, 0x7D20, 0xCBD8, 0x7D21, 0xBC8F, 0x7D22, 0xCBF7, - 0x7D23, 0xBC90, 0x7D24, 0xBC91, 0x7D25, 0xBC92, 0x7D26, 0xBC93, - 0x7D27, 0xBDF4, 0x7D28, 0xBC94, 0x7D29, 0xBC95, 0x7D2A, 0xBC96, - 0x7D2B, 0xD7CF, 0x7D2C, 0xBC97, 0x7D2D, 0xBC98, 0x7D2E, 0xBC99, - 0x7D2F, 0xC0DB, 0x7D30, 0xBC9A, 0x7D31, 0xBC9B, 0x7D32, 0xBC9C, - 0x7D33, 0xBC9D, 0x7D34, 0xBC9E, 0x7D35, 0xBC9F, 0x7D36, 0xBCA0, - 0x7D37, 0xBD40, 0x7D38, 0xBD41, 0x7D39, 0xBD42, 0x7D3A, 0xBD43, - 0x7D3B, 0xBD44, 0x7D3C, 0xBD45, 0x7D3D, 0xBD46, 0x7D3E, 0xBD47, - 0x7D3F, 0xBD48, 0x7D40, 0xBD49, 0x7D41, 0xBD4A, 0x7D42, 0xBD4B, - 0x7D43, 0xBD4C, 0x7D44, 0xBD4D, 0x7D45, 0xBD4E, 0x7D46, 0xBD4F, - 0x7D47, 0xBD50, 0x7D48, 0xBD51, 0x7D49, 0xBD52, 0x7D4A, 0xBD53, - 0x7D4B, 0xBD54, 0x7D4C, 0xBD55, 0x7D4D, 0xBD56, 0x7D4E, 0xBD57, - 0x7D4F, 0xBD58, 0x7D50, 0xBD59, 0x7D51, 0xBD5A, 0x7D52, 0xBD5B, - 0x7D53, 0xBD5C, 0x7D54, 0xBD5D, 0x7D55, 0xBD5E, 0x7D56, 0xBD5F, - 0x7D57, 0xBD60, 0x7D58, 0xBD61, 0x7D59, 0xBD62, 0x7D5A, 0xBD63, - 0x7D5B, 0xBD64, 0x7D5C, 0xBD65, 0x7D5D, 0xBD66, 0x7D5E, 0xBD67, - 0x7D5F, 0xBD68, 0x7D60, 0xBD69, 0x7D61, 0xBD6A, 0x7D62, 0xBD6B, - 0x7D63, 0xBD6C, 0x7D64, 0xBD6D, 0x7D65, 0xBD6E, 0x7D66, 0xBD6F, - 0x7D67, 0xBD70, 0x7D68, 0xBD71, 0x7D69, 0xBD72, 0x7D6A, 0xBD73, - 0x7D6B, 0xBD74, 0x7D6C, 0xBD75, 0x7D6D, 0xBD76, 0x7D6E, 0xD0F5, - 0x7D6F, 0xBD77, 0x7D70, 0xBD78, 0x7D71, 0xBD79, 0x7D72, 0xBD7A, - 0x7D73, 0xBD7B, 0x7D74, 0xBD7C, 0x7D75, 0xBD7D, 0x7D76, 0xBD7E, - 0x7D77, 0xF4EA, 0x7D78, 0xBD80, 0x7D79, 0xBD81, 0x7D7A, 0xBD82, - 0x7D7B, 0xBD83, 0x7D7C, 0xBD84, 0x7D7D, 0xBD85, 0x7D7E, 0xBD86, - 0x7D7F, 0xBD87, 0x7D80, 0xBD88, 0x7D81, 0xBD89, 0x7D82, 0xBD8A, - 0x7D83, 0xBD8B, 0x7D84, 0xBD8C, 0x7D85, 0xBD8D, 0x7D86, 0xBD8E, - 0x7D87, 0xBD8F, 0x7D88, 0xBD90, 0x7D89, 0xBD91, 0x7D8A, 0xBD92, - 0x7D8B, 0xBD93, 0x7D8C, 0xBD94, 0x7D8D, 0xBD95, 0x7D8E, 0xBD96, - 0x7D8F, 0xBD97, 0x7D90, 0xBD98, 0x7D91, 0xBD99, 0x7D92, 0xBD9A, - 0x7D93, 0xBD9B, 0x7D94, 0xBD9C, 0x7D95, 0xBD9D, 0x7D96, 0xBD9E, - 0x7D97, 0xBD9F, 0x7D98, 0xBDA0, 0x7D99, 0xBE40, 0x7D9A, 0xBE41, - 0x7D9B, 0xBE42, 0x7D9C, 0xBE43, 0x7D9D, 0xBE44, 0x7D9E, 0xBE45, - 0x7D9F, 0xBE46, 0x7DA0, 0xBE47, 0x7DA1, 0xBE48, 0x7DA2, 0xBE49, - 0x7DA3, 0xBE4A, 0x7DA4, 0xBE4B, 0x7DA5, 0xBE4C, 0x7DA6, 0xF4EB, - 0x7DA7, 0xBE4D, 0x7DA8, 0xBE4E, 0x7DA9, 0xBE4F, 0x7DAA, 0xBE50, - 0x7DAB, 0xBE51, 0x7DAC, 0xBE52, 0x7DAD, 0xBE53, 0x7DAE, 0xF4EC, - 0x7DAF, 0xBE54, 0x7DB0, 0xBE55, 0x7DB1, 0xBE56, 0x7DB2, 0xBE57, - 0x7DB3, 0xBE58, 0x7DB4, 0xBE59, 0x7DB5, 0xBE5A, 0x7DB6, 0xBE5B, - 0x7DB7, 0xBE5C, 0x7DB8, 0xBE5D, 0x7DB9, 0xBE5E, 0x7DBA, 0xBE5F, - 0x7DBB, 0xBE60, 0x7DBC, 0xBE61, 0x7DBD, 0xBE62, 0x7DBE, 0xBE63, - 0x7DBF, 0xBE64, 0x7DC0, 0xBE65, 0x7DC1, 0xBE66, 0x7DC2, 0xBE67, - 0x7DC3, 0xBE68, 0x7DC4, 0xBE69, 0x7DC5, 0xBE6A, 0x7DC6, 0xBE6B, - 0x7DC7, 0xBE6C, 0x7DC8, 0xBE6D, 0x7DC9, 0xBE6E, 0x7DCA, 0xBE6F, - 0x7DCB, 0xBE70, 0x7DCC, 0xBE71, 0x7DCD, 0xBE72, 0x7DCE, 0xBE73, - 0x7DCF, 0xBE74, 0x7DD0, 0xBE75, 0x7DD1, 0xBE76, 0x7DD2, 0xBE77, - 0x7DD3, 0xBE78, 0x7DD4, 0xBE79, 0x7DD5, 0xBE7A, 0x7DD6, 0xBE7B, - 0x7DD7, 0xBE7C, 0x7DD8, 0xBE7D, 0x7DD9, 0xBE7E, 0x7DDA, 0xBE80, - 0x7DDB, 0xBE81, 0x7DDC, 0xBE82, 0x7DDD, 0xBE83, 0x7DDE, 0xBE84, - 0x7DDF, 0xBE85, 0x7DE0, 0xBE86, 0x7DE1, 0xBE87, 0x7DE2, 0xBE88, - 0x7DE3, 0xBE89, 0x7DE4, 0xBE8A, 0x7DE5, 0xBE8B, 0x7DE6, 0xBE8C, - 0x7DE7, 0xBE8D, 0x7DE8, 0xBE8E, 0x7DE9, 0xBE8F, 0x7DEA, 0xBE90, - 0x7DEB, 0xBE91, 0x7DEC, 0xBE92, 0x7DED, 0xBE93, 0x7DEE, 0xBE94, - 0x7DEF, 0xBE95, 0x7DF0, 0xBE96, 0x7DF1, 0xBE97, 0x7DF2, 0xBE98, - 0x7DF3, 0xBE99, 0x7DF4, 0xBE9A, 0x7DF5, 0xBE9B, 0x7DF6, 0xBE9C, - 0x7DF7, 0xBE9D, 0x7DF8, 0xBE9E, 0x7DF9, 0xBE9F, 0x7DFA, 0xBEA0, - 0x7DFB, 0xBF40, 0x7DFC, 0xBF41, 0x7DFD, 0xBF42, 0x7DFE, 0xBF43, - 0x7DFF, 0xBF44, 0x7E00, 0xBF45, 0x7E01, 0xBF46, 0x7E02, 0xBF47, - 0x7E03, 0xBF48, 0x7E04, 0xBF49, 0x7E05, 0xBF4A, 0x7E06, 0xBF4B, - 0x7E07, 0xBF4C, 0x7E08, 0xBF4D, 0x7E09, 0xBF4E, 0x7E0A, 0xBF4F, - 0x7E0B, 0xBF50, 0x7E0C, 0xBF51, 0x7E0D, 0xBF52, 0x7E0E, 0xBF53, - 0x7E0F, 0xBF54, 0x7E10, 0xBF55, 0x7E11, 0xBF56, 0x7E12, 0xBF57, - 0x7E13, 0xBF58, 0x7E14, 0xBF59, 0x7E15, 0xBF5A, 0x7E16, 0xBF5B, - 0x7E17, 0xBF5C, 0x7E18, 0xBF5D, 0x7E19, 0xBF5E, 0x7E1A, 0xBF5F, - 0x7E1B, 0xBF60, 0x7E1C, 0xBF61, 0x7E1D, 0xBF62, 0x7E1E, 0xBF63, - 0x7E1F, 0xBF64, 0x7E20, 0xBF65, 0x7E21, 0xBF66, 0x7E22, 0xBF67, - 0x7E23, 0xBF68, 0x7E24, 0xBF69, 0x7E25, 0xBF6A, 0x7E26, 0xBF6B, - 0x7E27, 0xBF6C, 0x7E28, 0xBF6D, 0x7E29, 0xBF6E, 0x7E2A, 0xBF6F, - 0x7E2B, 0xBF70, 0x7E2C, 0xBF71, 0x7E2D, 0xBF72, 0x7E2E, 0xBF73, - 0x7E2F, 0xBF74, 0x7E30, 0xBF75, 0x7E31, 0xBF76, 0x7E32, 0xBF77, - 0x7E33, 0xBF78, 0x7E34, 0xBF79, 0x7E35, 0xBF7A, 0x7E36, 0xBF7B, - 0x7E37, 0xBF7C, 0x7E38, 0xBF7D, 0x7E39, 0xBF7E, 0x7E3A, 0xBF80, - 0x7E3B, 0xF7E3, 0x7E3C, 0xBF81, 0x7E3D, 0xBF82, 0x7E3E, 0xBF83, - 0x7E3F, 0xBF84, 0x7E40, 0xBF85, 0x7E41, 0xB7B1, 0x7E42, 0xBF86, - 0x7E43, 0xBF87, 0x7E44, 0xBF88, 0x7E45, 0xBF89, 0x7E46, 0xBF8A, - 0x7E47, 0xF4ED, 0x7E48, 0xBF8B, 0x7E49, 0xBF8C, 0x7E4A, 0xBF8D, - 0x7E4B, 0xBF8E, 0x7E4C, 0xBF8F, 0x7E4D, 0xBF90, 0x7E4E, 0xBF91, - 0x7E4F, 0xBF92, 0x7E50, 0xBF93, 0x7E51, 0xBF94, 0x7E52, 0xBF95, - 0x7E53, 0xBF96, 0x7E54, 0xBF97, 0x7E55, 0xBF98, 0x7E56, 0xBF99, - 0x7E57, 0xBF9A, 0x7E58, 0xBF9B, 0x7E59, 0xBF9C, 0x7E5A, 0xBF9D, - 0x7E5B, 0xBF9E, 0x7E5C, 0xBF9F, 0x7E5D, 0xBFA0, 0x7E5E, 0xC040, - 0x7E5F, 0xC041, 0x7E60, 0xC042, 0x7E61, 0xC043, 0x7E62, 0xC044, - 0x7E63, 0xC045, 0x7E64, 0xC046, 0x7E65, 0xC047, 0x7E66, 0xC048, - 0x7E67, 0xC049, 0x7E68, 0xC04A, 0x7E69, 0xC04B, 0x7E6A, 0xC04C, - 0x7E6B, 0xC04D, 0x7E6C, 0xC04E, 0x7E6D, 0xC04F, 0x7E6E, 0xC050, - 0x7E6F, 0xC051, 0x7E70, 0xC052, 0x7E71, 0xC053, 0x7E72, 0xC054, - 0x7E73, 0xC055, 0x7E74, 0xC056, 0x7E75, 0xC057, 0x7E76, 0xC058, - 0x7E77, 0xC059, 0x7E78, 0xC05A, 0x7E79, 0xC05B, 0x7E7A, 0xC05C, - 0x7E7B, 0xC05D, 0x7E7C, 0xC05E, 0x7E7D, 0xC05F, 0x7E7E, 0xC060, - 0x7E7F, 0xC061, 0x7E80, 0xC062, 0x7E81, 0xC063, 0x7E82, 0xD7EB, - 0x7E83, 0xC064, 0x7E84, 0xC065, 0x7E85, 0xC066, 0x7E86, 0xC067, - 0x7E87, 0xC068, 0x7E88, 0xC069, 0x7E89, 0xC06A, 0x7E8A, 0xC06B, - 0x7E8B, 0xC06C, 0x7E8C, 0xC06D, 0x7E8D, 0xC06E, 0x7E8E, 0xC06F, - 0x7E8F, 0xC070, 0x7E90, 0xC071, 0x7E91, 0xC072, 0x7E92, 0xC073, - 0x7E93, 0xC074, 0x7E94, 0xC075, 0x7E95, 0xC076, 0x7E96, 0xC077, - 0x7E97, 0xC078, 0x7E98, 0xC079, 0x7E99, 0xC07A, 0x7E9A, 0xC07B, - 0x7E9B, 0xF4EE, 0x7E9C, 0xC07C, 0x7E9D, 0xC07D, 0x7E9E, 0xC07E, - 0x7E9F, 0xE6F9, 0x7EA0, 0xBEC0, 0x7EA1, 0xE6FA, 0x7EA2, 0xBAEC, - 0x7EA3, 0xE6FB, 0x7EA4, 0xCFCB, 0x7EA5, 0xE6FC, 0x7EA6, 0xD4BC, - 0x7EA7, 0xBCB6, 0x7EA8, 0xE6FD, 0x7EA9, 0xE6FE, 0x7EAA, 0xBCCD, - 0x7EAB, 0xC8D2, 0x7EAC, 0xCEB3, 0x7EAD, 0xE7A1, 0x7EAE, 0xC080, - 0x7EAF, 0xB4BF, 0x7EB0, 0xE7A2, 0x7EB1, 0xC9B4, 0x7EB2, 0xB8D9, - 0x7EB3, 0xC4C9, 0x7EB4, 0xC081, 0x7EB5, 0xD7DD, 0x7EB6, 0xC2DA, - 0x7EB7, 0xB7D7, 0x7EB8, 0xD6BD, 0x7EB9, 0xCEC6, 0x7EBA, 0xB7C4, - 0x7EBB, 0xC082, 0x7EBC, 0xC083, 0x7EBD, 0xC5A6, 0x7EBE, 0xE7A3, - 0x7EBF, 0xCFDF, 0x7EC0, 0xE7A4, 0x7EC1, 0xE7A5, 0x7EC2, 0xE7A6, - 0x7EC3, 0xC1B7, 0x7EC4, 0xD7E9, 0x7EC5, 0xC9F0, 0x7EC6, 0xCFB8, - 0x7EC7, 0xD6AF, 0x7EC8, 0xD6D5, 0x7EC9, 0xE7A7, 0x7ECA, 0xB0ED, - 0x7ECB, 0xE7A8, 0x7ECC, 0xE7A9, 0x7ECD, 0xC9DC, 0x7ECE, 0xD2EF, - 0x7ECF, 0xBEAD, 0x7ED0, 0xE7AA, 0x7ED1, 0xB0F3, 0x7ED2, 0xC8DE, - 0x7ED3, 0xBDE1, 0x7ED4, 0xE7AB, 0x7ED5, 0xC8C6, 0x7ED6, 0xC084, - 0x7ED7, 0xE7AC, 0x7ED8, 0xBBE6, 0x7ED9, 0xB8F8, 0x7EDA, 0xD1A4, - 0x7EDB, 0xE7AD, 0x7EDC, 0xC2E7, 0x7EDD, 0xBEF8, 0x7EDE, 0xBDCA, - 0x7EDF, 0xCDB3, 0x7EE0, 0xE7AE, 0x7EE1, 0xE7AF, 0x7EE2, 0xBEEE, - 0x7EE3, 0xD0E5, 0x7EE4, 0xC085, 0x7EE5, 0xCBE7, 0x7EE6, 0xCCD0, - 0x7EE7, 0xBCCC, 0x7EE8, 0xE7B0, 0x7EE9, 0xBCA8, 0x7EEA, 0xD0F7, - 0x7EEB, 0xE7B1, 0x7EEC, 0xC086, 0x7EED, 0xD0F8, 0x7EEE, 0xE7B2, - 0x7EEF, 0xE7B3, 0x7EF0, 0xB4C2, 0x7EF1, 0xE7B4, 0x7EF2, 0xE7B5, - 0x7EF3, 0xC9FE, 0x7EF4, 0xCEAC, 0x7EF5, 0xC3E0, 0x7EF6, 0xE7B7, - 0x7EF7, 0xB1C1, 0x7EF8, 0xB3F1, 0x7EF9, 0xC087, 0x7EFA, 0xE7B8, - 0x7EFB, 0xE7B9, 0x7EFC, 0xD7DB, 0x7EFD, 0xD5C0, 0x7EFE, 0xE7BA, - 0x7EFF, 0xC2CC, 0x7F00, 0xD7BA, 0x7F01, 0xE7BB, 0x7F02, 0xE7BC, - 0x7F03, 0xE7BD, 0x7F04, 0xBCEA, 0x7F05, 0xC3E5, 0x7F06, 0xC0C2, - 0x7F07, 0xE7BE, 0x7F08, 0xE7BF, 0x7F09, 0xBCA9, 0x7F0A, 0xC088, - 0x7F0B, 0xE7C0, 0x7F0C, 0xE7C1, 0x7F0D, 0xE7B6, 0x7F0E, 0xB6D0, - 0x7F0F, 0xE7C2, 0x7F10, 0xC089, 0x7F11, 0xE7C3, 0x7F12, 0xE7C4, - 0x7F13, 0xBBBA, 0x7F14, 0xB5DE, 0x7F15, 0xC2C6, 0x7F16, 0xB1E0, - 0x7F17, 0xE7C5, 0x7F18, 0xD4B5, 0x7F19, 0xE7C6, 0x7F1A, 0xB8BF, - 0x7F1B, 0xE7C8, 0x7F1C, 0xE7C7, 0x7F1D, 0xB7EC, 0x7F1E, 0xC08A, - 0x7F1F, 0xE7C9, 0x7F20, 0xB2F8, 0x7F21, 0xE7CA, 0x7F22, 0xE7CB, - 0x7F23, 0xE7CC, 0x7F24, 0xE7CD, 0x7F25, 0xE7CE, 0x7F26, 0xE7CF, - 0x7F27, 0xE7D0, 0x7F28, 0xD3A7, 0x7F29, 0xCBF5, 0x7F2A, 0xE7D1, - 0x7F2B, 0xE7D2, 0x7F2C, 0xE7D3, 0x7F2D, 0xE7D4, 0x7F2E, 0xC9C9, - 0x7F2F, 0xE7D5, 0x7F30, 0xE7D6, 0x7F31, 0xE7D7, 0x7F32, 0xE7D8, - 0x7F33, 0xE7D9, 0x7F34, 0xBDC9, 0x7F35, 0xE7DA, 0x7F36, 0xF3BE, - 0x7F37, 0xC08B, 0x7F38, 0xB8D7, 0x7F39, 0xC08C, 0x7F3A, 0xC8B1, - 0x7F3B, 0xC08D, 0x7F3C, 0xC08E, 0x7F3D, 0xC08F, 0x7F3E, 0xC090, - 0x7F3F, 0xC091, 0x7F40, 0xC092, 0x7F41, 0xC093, 0x7F42, 0xF3BF, - 0x7F43, 0xC094, 0x7F44, 0xF3C0, 0x7F45, 0xF3C1, 0x7F46, 0xC095, - 0x7F47, 0xC096, 0x7F48, 0xC097, 0x7F49, 0xC098, 0x7F4A, 0xC099, - 0x7F4B, 0xC09A, 0x7F4C, 0xC09B, 0x7F4D, 0xC09C, 0x7F4E, 0xC09D, - 0x7F4F, 0xC09E, 0x7F50, 0xB9DE, 0x7F51, 0xCDF8, 0x7F52, 0xC09F, - 0x7F53, 0xC0A0, 0x7F54, 0xD8E8, 0x7F55, 0xBAB1, 0x7F56, 0xC140, - 0x7F57, 0xC2DE, 0x7F58, 0xEEB7, 0x7F59, 0xC141, 0x7F5A, 0xB7A3, - 0x7F5B, 0xC142, 0x7F5C, 0xC143, 0x7F5D, 0xC144, 0x7F5E, 0xC145, - 0x7F5F, 0xEEB9, 0x7F60, 0xC146, 0x7F61, 0xEEB8, 0x7F62, 0xB0D5, - 0x7F63, 0xC147, 0x7F64, 0xC148, 0x7F65, 0xC149, 0x7F66, 0xC14A, - 0x7F67, 0xC14B, 0x7F68, 0xEEBB, 0x7F69, 0xD5D6, 0x7F6A, 0xD7EF, - 0x7F6B, 0xC14C, 0x7F6C, 0xC14D, 0x7F6D, 0xC14E, 0x7F6E, 0xD6C3, - 0x7F6F, 0xC14F, 0x7F70, 0xC150, 0x7F71, 0xEEBD, 0x7F72, 0xCAF0, - 0x7F73, 0xC151, 0x7F74, 0xEEBC, 0x7F75, 0xC152, 0x7F76, 0xC153, - 0x7F77, 0xC154, 0x7F78, 0xC155, 0x7F79, 0xEEBE, 0x7F7A, 0xC156, - 0x7F7B, 0xC157, 0x7F7C, 0xC158, 0x7F7D, 0xC159, 0x7F7E, 0xEEC0, - 0x7F7F, 0xC15A, 0x7F80, 0xC15B, 0x7F81, 0xEEBF, 0x7F82, 0xC15C, - 0x7F83, 0xC15D, 0x7F84, 0xC15E, 0x7F85, 0xC15F, 0x7F86, 0xC160, - 0x7F87, 0xC161, 0x7F88, 0xC162, 0x7F89, 0xC163, 0x7F8A, 0xD1F2, - 0x7F8B, 0xC164, 0x7F8C, 0xC7BC, 0x7F8D, 0xC165, 0x7F8E, 0xC3C0, - 0x7F8F, 0xC166, 0x7F90, 0xC167, 0x7F91, 0xC168, 0x7F92, 0xC169, - 0x7F93, 0xC16A, 0x7F94, 0xB8E1, 0x7F95, 0xC16B, 0x7F96, 0xC16C, - 0x7F97, 0xC16D, 0x7F98, 0xC16E, 0x7F99, 0xC16F, 0x7F9A, 0xC1E7, - 0x7F9B, 0xC170, 0x7F9C, 0xC171, 0x7F9D, 0xF4C6, 0x7F9E, 0xD0DF, - 0x7F9F, 0xF4C7, 0x7FA0, 0xC172, 0x7FA1, 0xCFDB, 0x7FA2, 0xC173, - 0x7FA3, 0xC174, 0x7FA4, 0xC8BA, 0x7FA5, 0xC175, 0x7FA6, 0xC176, - 0x7FA7, 0xF4C8, 0x7FA8, 0xC177, 0x7FA9, 0xC178, 0x7FAA, 0xC179, - 0x7FAB, 0xC17A, 0x7FAC, 0xC17B, 0x7FAD, 0xC17C, 0x7FAE, 0xC17D, - 0x7FAF, 0xF4C9, 0x7FB0, 0xF4CA, 0x7FB1, 0xC17E, 0x7FB2, 0xF4CB, - 0x7FB3, 0xC180, 0x7FB4, 0xC181, 0x7FB5, 0xC182, 0x7FB6, 0xC183, - 0x7FB7, 0xC184, 0x7FB8, 0xD9FA, 0x7FB9, 0xB8FE, 0x7FBA, 0xC185, - 0x7FBB, 0xC186, 0x7FBC, 0xE5F1, 0x7FBD, 0xD3F0, 0x7FBE, 0xC187, - 0x7FBF, 0xF4E0, 0x7FC0, 0xC188, 0x7FC1, 0xCECC, 0x7FC2, 0xC189, - 0x7FC3, 0xC18A, 0x7FC4, 0xC18B, 0x7FC5, 0xB3E1, 0x7FC6, 0xC18C, - 0x7FC7, 0xC18D, 0x7FC8, 0xC18E, 0x7FC9, 0xC18F, 0x7FCA, 0xF1B4, - 0x7FCB, 0xC190, 0x7FCC, 0xD2EE, 0x7FCD, 0xC191, 0x7FCE, 0xF4E1, - 0x7FCF, 0xC192, 0x7FD0, 0xC193, 0x7FD1, 0xC194, 0x7FD2, 0xC195, - 0x7FD3, 0xC196, 0x7FD4, 0xCFE8, 0x7FD5, 0xF4E2, 0x7FD6, 0xC197, - 0x7FD7, 0xC198, 0x7FD8, 0xC7CC, 0x7FD9, 0xC199, 0x7FDA, 0xC19A, - 0x7FDB, 0xC19B, 0x7FDC, 0xC19C, 0x7FDD, 0xC19D, 0x7FDE, 0xC19E, - 0x7FDF, 0xB5D4, 0x7FE0, 0xB4E4, 0x7FE1, 0xF4E4, 0x7FE2, 0xC19F, - 0x7FE3, 0xC1A0, 0x7FE4, 0xC240, 0x7FE5, 0xF4E3, 0x7FE6, 0xF4E5, - 0x7FE7, 0xC241, 0x7FE8, 0xC242, 0x7FE9, 0xF4E6, 0x7FEA, 0xC243, - 0x7FEB, 0xC244, 0x7FEC, 0xC245, 0x7FED, 0xC246, 0x7FEE, 0xF4E7, - 0x7FEF, 0xC247, 0x7FF0, 0xBAB2, 0x7FF1, 0xB0BF, 0x7FF2, 0xC248, - 0x7FF3, 0xF4E8, 0x7FF4, 0xC249, 0x7FF5, 0xC24A, 0x7FF6, 0xC24B, - 0x7FF7, 0xC24C, 0x7FF8, 0xC24D, 0x7FF9, 0xC24E, 0x7FFA, 0xC24F, - 0x7FFB, 0xB7AD, 0x7FFC, 0xD2ED, 0x7FFD, 0xC250, 0x7FFE, 0xC251, - 0x7FFF, 0xC252, 0x8000, 0xD2AB, 0x8001, 0xC0CF, 0x8002, 0xC253, - 0x8003, 0xBFBC, 0x8004, 0xEBA3, 0x8005, 0xD5DF, 0x8006, 0xEAC8, - 0x8007, 0xC254, 0x8008, 0xC255, 0x8009, 0xC256, 0x800A, 0xC257, - 0x800B, 0xF1F3, 0x800C, 0xB6F8, 0x800D, 0xCBA3, 0x800E, 0xC258, - 0x800F, 0xC259, 0x8010, 0xC4CD, 0x8011, 0xC25A, 0x8012, 0xF1E7, - 0x8013, 0xC25B, 0x8014, 0xF1E8, 0x8015, 0xB8FB, 0x8016, 0xF1E9, - 0x8017, 0xBAC4, 0x8018, 0xD4C5, 0x8019, 0xB0D2, 0x801A, 0xC25C, - 0x801B, 0xC25D, 0x801C, 0xF1EA, 0x801D, 0xC25E, 0x801E, 0xC25F, - 0x801F, 0xC260, 0x8020, 0xF1EB, 0x8021, 0xC261, 0x8022, 0xF1EC, - 0x8023, 0xC262, 0x8024, 0xC263, 0x8025, 0xF1ED, 0x8026, 0xF1EE, - 0x8027, 0xF1EF, 0x8028, 0xF1F1, 0x8029, 0xF1F0, 0x802A, 0xC5D5, - 0x802B, 0xC264, 0x802C, 0xC265, 0x802D, 0xC266, 0x802E, 0xC267, - 0x802F, 0xC268, 0x8030, 0xC269, 0x8031, 0xF1F2, 0x8032, 0xC26A, - 0x8033, 0xB6FA, 0x8034, 0xC26B, 0x8035, 0xF1F4, 0x8036, 0xD2AE, - 0x8037, 0xDEC7, 0x8038, 0xCBCA, 0x8039, 0xC26C, 0x803A, 0xC26D, - 0x803B, 0xB3DC, 0x803C, 0xC26E, 0x803D, 0xB5A2, 0x803E, 0xC26F, - 0x803F, 0xB9A2, 0x8040, 0xC270, 0x8041, 0xC271, 0x8042, 0xC4F4, - 0x8043, 0xF1F5, 0x8044, 0xC272, 0x8045, 0xC273, 0x8046, 0xF1F6, - 0x8047, 0xC274, 0x8048, 0xC275, 0x8049, 0xC276, 0x804A, 0xC1C4, - 0x804B, 0xC1FB, 0x804C, 0xD6B0, 0x804D, 0xF1F7, 0x804E, 0xC277, - 0x804F, 0xC278, 0x8050, 0xC279, 0x8051, 0xC27A, 0x8052, 0xF1F8, - 0x8053, 0xC27B, 0x8054, 0xC1AA, 0x8055, 0xC27C, 0x8056, 0xC27D, - 0x8057, 0xC27E, 0x8058, 0xC6B8, 0x8059, 0xC280, 0x805A, 0xBEDB, - 0x805B, 0xC281, 0x805C, 0xC282, 0x805D, 0xC283, 0x805E, 0xC284, - 0x805F, 0xC285, 0x8060, 0xC286, 0x8061, 0xC287, 0x8062, 0xC288, - 0x8063, 0xC289, 0x8064, 0xC28A, 0x8065, 0xC28B, 0x8066, 0xC28C, - 0x8067, 0xC28D, 0x8068, 0xC28E, 0x8069, 0xF1F9, 0x806A, 0xB4CF, - 0x806B, 0xC28F, 0x806C, 0xC290, 0x806D, 0xC291, 0x806E, 0xC292, - 0x806F, 0xC293, 0x8070, 0xC294, 0x8071, 0xF1FA, 0x8072, 0xC295, - 0x8073, 0xC296, 0x8074, 0xC297, 0x8075, 0xC298, 0x8076, 0xC299, - 0x8077, 0xC29A, 0x8078, 0xC29B, 0x8079, 0xC29C, 0x807A, 0xC29D, - 0x807B, 0xC29E, 0x807C, 0xC29F, 0x807D, 0xC2A0, 0x807E, 0xC340, - 0x807F, 0xEDB2, 0x8080, 0xEDB1, 0x8081, 0xC341, 0x8082, 0xC342, - 0x8083, 0xCBE0, 0x8084, 0xD2DE, 0x8085, 0xC343, 0x8086, 0xCBC1, - 0x8087, 0xD5D8, 0x8088, 0xC344, 0x8089, 0xC8E2, 0x808A, 0xC345, - 0x808B, 0xC0DF, 0x808C, 0xBCA1, 0x808D, 0xC346, 0x808E, 0xC347, - 0x808F, 0xC348, 0x8090, 0xC349, 0x8091, 0xC34A, 0x8092, 0xC34B, - 0x8093, 0xEBC1, 0x8094, 0xC34C, 0x8095, 0xC34D, 0x8096, 0xD0A4, - 0x8097, 0xC34E, 0x8098, 0xD6E2, 0x8099, 0xC34F, 0x809A, 0xB6C7, - 0x809B, 0xB8D8, 0x809C, 0xEBC0, 0x809D, 0xB8CE, 0x809E, 0xC350, - 0x809F, 0xEBBF, 0x80A0, 0xB3A6, 0x80A1, 0xB9C9, 0x80A2, 0xD6AB, - 0x80A3, 0xC351, 0x80A4, 0xB7F4, 0x80A5, 0xB7CA, 0x80A6, 0xC352, - 0x80A7, 0xC353, 0x80A8, 0xC354, 0x80A9, 0xBCE7, 0x80AA, 0xB7BE, - 0x80AB, 0xEBC6, 0x80AC, 0xC355, 0x80AD, 0xEBC7, 0x80AE, 0xB0B9, - 0x80AF, 0xBFCF, 0x80B0, 0xC356, 0x80B1, 0xEBC5, 0x80B2, 0xD3FD, - 0x80B3, 0xC357, 0x80B4, 0xEBC8, 0x80B5, 0xC358, 0x80B6, 0xC359, - 0x80B7, 0xEBC9, 0x80B8, 0xC35A, 0x80B9, 0xC35B, 0x80BA, 0xB7CE, - 0x80BB, 0xC35C, 0x80BC, 0xEBC2, 0x80BD, 0xEBC4, 0x80BE, 0xC9F6, - 0x80BF, 0xD6D7, 0x80C0, 0xD5CD, 0x80C1, 0xD0B2, 0x80C2, 0xEBCF, - 0x80C3, 0xCEB8, 0x80C4, 0xEBD0, 0x80C5, 0xC35D, 0x80C6, 0xB5A8, - 0x80C7, 0xC35E, 0x80C8, 0xC35F, 0x80C9, 0xC360, 0x80CA, 0xC361, - 0x80CB, 0xC362, 0x80CC, 0xB1B3, 0x80CD, 0xEBD2, 0x80CE, 0xCCA5, - 0x80CF, 0xC363, 0x80D0, 0xC364, 0x80D1, 0xC365, 0x80D2, 0xC366, - 0x80D3, 0xC367, 0x80D4, 0xC368, 0x80D5, 0xC369, 0x80D6, 0xC5D6, - 0x80D7, 0xEBD3, 0x80D8, 0xC36A, 0x80D9, 0xEBD1, 0x80DA, 0xC5DF, - 0x80DB, 0xEBCE, 0x80DC, 0xCAA4, 0x80DD, 0xEBD5, 0x80DE, 0xB0FB, - 0x80DF, 0xC36B, 0x80E0, 0xC36C, 0x80E1, 0xBAFA, 0x80E2, 0xC36D, - 0x80E3, 0xC36E, 0x80E4, 0xD8B7, 0x80E5, 0xF1E3, 0x80E6, 0xC36F, - 0x80E7, 0xEBCA, 0x80E8, 0xEBCB, 0x80E9, 0xEBCC, 0x80EA, 0xEBCD, - 0x80EB, 0xEBD6, 0x80EC, 0xE6C0, 0x80ED, 0xEBD9, 0x80EE, 0xC370, - 0x80EF, 0xBFE8, 0x80F0, 0xD2C8, 0x80F1, 0xEBD7, 0x80F2, 0xEBDC, - 0x80F3, 0xB8EC, 0x80F4, 0xEBD8, 0x80F5, 0xC371, 0x80F6, 0xBDBA, - 0x80F7, 0xC372, 0x80F8, 0xD0D8, 0x80F9, 0xC373, 0x80FA, 0xB0B7, - 0x80FB, 0xC374, 0x80FC, 0xEBDD, 0x80FD, 0xC4DC, 0x80FE, 0xC375, - 0x80FF, 0xC376, 0x8100, 0xC377, 0x8101, 0xC378, 0x8102, 0xD6AC, - 0x8103, 0xC379, 0x8104, 0xC37A, 0x8105, 0xC37B, 0x8106, 0xB4E0, - 0x8107, 0xC37C, 0x8108, 0xC37D, 0x8109, 0xC2F6, 0x810A, 0xBCB9, - 0x810B, 0xC37E, 0x810C, 0xC380, 0x810D, 0xEBDA, 0x810E, 0xEBDB, - 0x810F, 0xD4E0, 0x8110, 0xC6EA, 0x8111, 0xC4D4, 0x8112, 0xEBDF, - 0x8113, 0xC5A7, 0x8114, 0xD9F5, 0x8115, 0xC381, 0x8116, 0xB2B1, - 0x8117, 0xC382, 0x8118, 0xEBE4, 0x8119, 0xC383, 0x811A, 0xBDC5, - 0x811B, 0xC384, 0x811C, 0xC385, 0x811D, 0xC386, 0x811E, 0xEBE2, - 0x811F, 0xC387, 0x8120, 0xC388, 0x8121, 0xC389, 0x8122, 0xC38A, - 0x8123, 0xC38B, 0x8124, 0xC38C, 0x8125, 0xC38D, 0x8126, 0xC38E, - 0x8127, 0xC38F, 0x8128, 0xC390, 0x8129, 0xC391, 0x812A, 0xC392, - 0x812B, 0xC393, 0x812C, 0xEBE3, 0x812D, 0xC394, 0x812E, 0xC395, - 0x812F, 0xB8AC, 0x8130, 0xC396, 0x8131, 0xCDD1, 0x8132, 0xEBE5, - 0x8133, 0xC397, 0x8134, 0xC398, 0x8135, 0xC399, 0x8136, 0xEBE1, - 0x8137, 0xC39A, 0x8138, 0xC1B3, 0x8139, 0xC39B, 0x813A, 0xC39C, - 0x813B, 0xC39D, 0x813C, 0xC39E, 0x813D, 0xC39F, 0x813E, 0xC6A2, - 0x813F, 0xC3A0, 0x8140, 0xC440, 0x8141, 0xC441, 0x8142, 0xC442, - 0x8143, 0xC443, 0x8144, 0xC444, 0x8145, 0xC445, 0x8146, 0xCCF3, - 0x8147, 0xC446, 0x8148, 0xEBE6, 0x8149, 0xC447, 0x814A, 0xC0B0, - 0x814B, 0xD2B8, 0x814C, 0xEBE7, 0x814D, 0xC448, 0x814E, 0xC449, - 0x814F, 0xC44A, 0x8150, 0xB8AF, 0x8151, 0xB8AD, 0x8152, 0xC44B, - 0x8153, 0xEBE8, 0x8154, 0xC7BB, 0x8155, 0xCDF3, 0x8156, 0xC44C, - 0x8157, 0xC44D, 0x8158, 0xC44E, 0x8159, 0xEBEA, 0x815A, 0xEBEB, - 0x815B, 0xC44F, 0x815C, 0xC450, 0x815D, 0xC451, 0x815E, 0xC452, - 0x815F, 0xC453, 0x8160, 0xEBED, 0x8161, 0xC454, 0x8162, 0xC455, - 0x8163, 0xC456, 0x8164, 0xC457, 0x8165, 0xD0C8, 0x8166, 0xC458, - 0x8167, 0xEBF2, 0x8168, 0xC459, 0x8169, 0xEBEE, 0x816A, 0xC45A, - 0x816B, 0xC45B, 0x816C, 0xC45C, 0x816D, 0xEBF1, 0x816E, 0xC8F9, - 0x816F, 0xC45D, 0x8170, 0xD1FC, 0x8171, 0xEBEC, 0x8172, 0xC45E, - 0x8173, 0xC45F, 0x8174, 0xEBE9, 0x8175, 0xC460, 0x8176, 0xC461, - 0x8177, 0xC462, 0x8178, 0xC463, 0x8179, 0xB8B9, 0x817A, 0xCFD9, - 0x817B, 0xC4E5, 0x817C, 0xEBEF, 0x817D, 0xEBF0, 0x817E, 0xCCDA, - 0x817F, 0xCDC8, 0x8180, 0xB0F2, 0x8181, 0xC464, 0x8182, 0xEBF6, - 0x8183, 0xC465, 0x8184, 0xC466, 0x8185, 0xC467, 0x8186, 0xC468, - 0x8187, 0xC469, 0x8188, 0xEBF5, 0x8189, 0xC46A, 0x818A, 0xB2B2, - 0x818B, 0xC46B, 0x818C, 0xC46C, 0x818D, 0xC46D, 0x818E, 0xC46E, - 0x818F, 0xB8E0, 0x8190, 0xC46F, 0x8191, 0xEBF7, 0x8192, 0xC470, - 0x8193, 0xC471, 0x8194, 0xC472, 0x8195, 0xC473, 0x8196, 0xC474, - 0x8197, 0xC475, 0x8198, 0xB1EC, 0x8199, 0xC476, 0x819A, 0xC477, - 0x819B, 0xCCC5, 0x819C, 0xC4A4, 0x819D, 0xCFA5, 0x819E, 0xC478, - 0x819F, 0xC479, 0x81A0, 0xC47A, 0x81A1, 0xC47B, 0x81A2, 0xC47C, - 0x81A3, 0xEBF9, 0x81A4, 0xC47D, 0x81A5, 0xC47E, 0x81A6, 0xECA2, - 0x81A7, 0xC480, 0x81A8, 0xC5F2, 0x81A9, 0xC481, 0x81AA, 0xEBFA, - 0x81AB, 0xC482, 0x81AC, 0xC483, 0x81AD, 0xC484, 0x81AE, 0xC485, - 0x81AF, 0xC486, 0x81B0, 0xC487, 0x81B1, 0xC488, 0x81B2, 0xC489, - 0x81B3, 0xC9C5, 0x81B4, 0xC48A, 0x81B5, 0xC48B, 0x81B6, 0xC48C, - 0x81B7, 0xC48D, 0x81B8, 0xC48E, 0x81B9, 0xC48F, 0x81BA, 0xE2DF, - 0x81BB, 0xEBFE, 0x81BC, 0xC490, 0x81BD, 0xC491, 0x81BE, 0xC492, - 0x81BF, 0xC493, 0x81C0, 0xCDCE, 0x81C1, 0xECA1, 0x81C2, 0xB1DB, - 0x81C3, 0xD3B7, 0x81C4, 0xC494, 0x81C5, 0xC495, 0x81C6, 0xD2DC, - 0x81C7, 0xC496, 0x81C8, 0xC497, 0x81C9, 0xC498, 0x81CA, 0xEBFD, - 0x81CB, 0xC499, 0x81CC, 0xEBFB, 0x81CD, 0xC49A, 0x81CE, 0xC49B, - 0x81CF, 0xC49C, 0x81D0, 0xC49D, 0x81D1, 0xC49E, 0x81D2, 0xC49F, - 0x81D3, 0xC4A0, 0x81D4, 0xC540, 0x81D5, 0xC541, 0x81D6, 0xC542, - 0x81D7, 0xC543, 0x81D8, 0xC544, 0x81D9, 0xC545, 0x81DA, 0xC546, - 0x81DB, 0xC547, 0x81DC, 0xC548, 0x81DD, 0xC549, 0x81DE, 0xC54A, - 0x81DF, 0xC54B, 0x81E0, 0xC54C, 0x81E1, 0xC54D, 0x81E2, 0xC54E, - 0x81E3, 0xB3BC, 0x81E4, 0xC54F, 0x81E5, 0xC550, 0x81E6, 0xC551, - 0x81E7, 0xEAB0, 0x81E8, 0xC552, 0x81E9, 0xC553, 0x81EA, 0xD7D4, - 0x81EB, 0xC554, 0x81EC, 0xF4AB, 0x81ED, 0xB3F4, 0x81EE, 0xC555, - 0x81EF, 0xC556, 0x81F0, 0xC557, 0x81F1, 0xC558, 0x81F2, 0xC559, - 0x81F3, 0xD6C1, 0x81F4, 0xD6C2, 0x81F5, 0xC55A, 0x81F6, 0xC55B, - 0x81F7, 0xC55C, 0x81F8, 0xC55D, 0x81F9, 0xC55E, 0x81FA, 0xC55F, - 0x81FB, 0xD5E9, 0x81FC, 0xBECA, 0x81FD, 0xC560, 0x81FE, 0xF4A7, - 0x81FF, 0xC561, 0x8200, 0xD2A8, 0x8201, 0xF4A8, 0x8202, 0xF4A9, - 0x8203, 0xC562, 0x8204, 0xF4AA, 0x8205, 0xBECB, 0x8206, 0xD3DF, - 0x8207, 0xC563, 0x8208, 0xC564, 0x8209, 0xC565, 0x820A, 0xC566, - 0x820B, 0xC567, 0x820C, 0xC9E0, 0x820D, 0xC9E1, 0x820E, 0xC568, - 0x820F, 0xC569, 0x8210, 0xF3C2, 0x8211, 0xC56A, 0x8212, 0xCAE6, - 0x8213, 0xC56B, 0x8214, 0xCCF2, 0x8215, 0xC56C, 0x8216, 0xC56D, - 0x8217, 0xC56E, 0x8218, 0xC56F, 0x8219, 0xC570, 0x821A, 0xC571, - 0x821B, 0xE2B6, 0x821C, 0xCBB4, 0x821D, 0xC572, 0x821E, 0xCEE8, - 0x821F, 0xD6DB, 0x8220, 0xC573, 0x8221, 0xF4AD, 0x8222, 0xF4AE, - 0x8223, 0xF4AF, 0x8224, 0xC574, 0x8225, 0xC575, 0x8226, 0xC576, - 0x8227, 0xC577, 0x8228, 0xF4B2, 0x8229, 0xC578, 0x822A, 0xBABD, - 0x822B, 0xF4B3, 0x822C, 0xB0E3, 0x822D, 0xF4B0, 0x822E, 0xC579, - 0x822F, 0xF4B1, 0x8230, 0xBDA2, 0x8231, 0xB2D5, 0x8232, 0xC57A, - 0x8233, 0xF4B6, 0x8234, 0xF4B7, 0x8235, 0xB6E6, 0x8236, 0xB2B0, - 0x8237, 0xCFCF, 0x8238, 0xF4B4, 0x8239, 0xB4AC, 0x823A, 0xC57B, - 0x823B, 0xF4B5, 0x823C, 0xC57C, 0x823D, 0xC57D, 0x823E, 0xF4B8, - 0x823F, 0xC57E, 0x8240, 0xC580, 0x8241, 0xC581, 0x8242, 0xC582, - 0x8243, 0xC583, 0x8244, 0xF4B9, 0x8245, 0xC584, 0x8246, 0xC585, - 0x8247, 0xCDA7, 0x8248, 0xC586, 0x8249, 0xF4BA, 0x824A, 0xC587, - 0x824B, 0xF4BB, 0x824C, 0xC588, 0x824D, 0xC589, 0x824E, 0xC58A, - 0x824F, 0xF4BC, 0x8250, 0xC58B, 0x8251, 0xC58C, 0x8252, 0xC58D, - 0x8253, 0xC58E, 0x8254, 0xC58F, 0x8255, 0xC590, 0x8256, 0xC591, - 0x8257, 0xC592, 0x8258, 0xCBD2, 0x8259, 0xC593, 0x825A, 0xF4BD, - 0x825B, 0xC594, 0x825C, 0xC595, 0x825D, 0xC596, 0x825E, 0xC597, - 0x825F, 0xF4BE, 0x8260, 0xC598, 0x8261, 0xC599, 0x8262, 0xC59A, - 0x8263, 0xC59B, 0x8264, 0xC59C, 0x8265, 0xC59D, 0x8266, 0xC59E, - 0x8267, 0xC59F, 0x8268, 0xF4BF, 0x8269, 0xC5A0, 0x826A, 0xC640, - 0x826B, 0xC641, 0x826C, 0xC642, 0x826D, 0xC643, 0x826E, 0xF4DE, - 0x826F, 0xC1BC, 0x8270, 0xBCE8, 0x8271, 0xC644, 0x8272, 0xC9AB, - 0x8273, 0xD1DE, 0x8274, 0xE5F5, 0x8275, 0xC645, 0x8276, 0xC646, - 0x8277, 0xC647, 0x8278, 0xC648, 0x8279, 0xDCB3, 0x827A, 0xD2D5, - 0x827B, 0xC649, 0x827C, 0xC64A, 0x827D, 0xDCB4, 0x827E, 0xB0AC, - 0x827F, 0xDCB5, 0x8280, 0xC64B, 0x8281, 0xC64C, 0x8282, 0xBDDA, - 0x8283, 0xC64D, 0x8284, 0xDCB9, 0x8285, 0xC64E, 0x8286, 0xC64F, - 0x8287, 0xC650, 0x8288, 0xD8C2, 0x8289, 0xC651, 0x828A, 0xDCB7, - 0x828B, 0xD3F3, 0x828C, 0xC652, 0x828D, 0xC9D6, 0x828E, 0xDCBA, - 0x828F, 0xDCB6, 0x8290, 0xC653, 0x8291, 0xDCBB, 0x8292, 0xC3A2, - 0x8293, 0xC654, 0x8294, 0xC655, 0x8295, 0xC656, 0x8296, 0xC657, - 0x8297, 0xDCBC, 0x8298, 0xDCC5, 0x8299, 0xDCBD, 0x829A, 0xC658, - 0x829B, 0xC659, 0x829C, 0xCEDF, 0x829D, 0xD6A5, 0x829E, 0xC65A, - 0x829F, 0xDCCF, 0x82A0, 0xC65B, 0x82A1, 0xDCCD, 0x82A2, 0xC65C, - 0x82A3, 0xC65D, 0x82A4, 0xDCD2, 0x82A5, 0xBDE6, 0x82A6, 0xC2AB, - 0x82A7, 0xC65E, 0x82A8, 0xDCB8, 0x82A9, 0xDCCB, 0x82AA, 0xDCCE, - 0x82AB, 0xDCBE, 0x82AC, 0xB7D2, 0x82AD, 0xB0C5, 0x82AE, 0xDCC7, - 0x82AF, 0xD0BE, 0x82B0, 0xDCC1, 0x82B1, 0xBBA8, 0x82B2, 0xC65F, - 0x82B3, 0xB7BC, 0x82B4, 0xDCCC, 0x82B5, 0xC660, 0x82B6, 0xC661, - 0x82B7, 0xDCC6, 0x82B8, 0xDCBF, 0x82B9, 0xC7DB, 0x82BA, 0xC662, - 0x82BB, 0xC663, 0x82BC, 0xC664, 0x82BD, 0xD1BF, 0x82BE, 0xDCC0, - 0x82BF, 0xC665, 0x82C0, 0xC666, 0x82C1, 0xDCCA, 0x82C2, 0xC667, - 0x82C3, 0xC668, 0x82C4, 0xDCD0, 0x82C5, 0xC669, 0x82C6, 0xC66A, - 0x82C7, 0xCEAD, 0x82C8, 0xDCC2, 0x82C9, 0xC66B, 0x82CA, 0xDCC3, - 0x82CB, 0xDCC8, 0x82CC, 0xDCC9, 0x82CD, 0xB2D4, 0x82CE, 0xDCD1, - 0x82CF, 0xCBD5, 0x82D0, 0xC66C, 0x82D1, 0xD4B7, 0x82D2, 0xDCDB, - 0x82D3, 0xDCDF, 0x82D4, 0xCCA6, 0x82D5, 0xDCE6, 0x82D6, 0xC66D, - 0x82D7, 0xC3E7, 0x82D8, 0xDCDC, 0x82D9, 0xC66E, 0x82DA, 0xC66F, - 0x82DB, 0xBFC1, 0x82DC, 0xDCD9, 0x82DD, 0xC670, 0x82DE, 0xB0FA, - 0x82DF, 0xB9B6, 0x82E0, 0xDCE5, 0x82E1, 0xDCD3, 0x82E2, 0xC671, - 0x82E3, 0xDCC4, 0x82E4, 0xDCD6, 0x82E5, 0xC8F4, 0x82E6, 0xBFE0, - 0x82E7, 0xC672, 0x82E8, 0xC673, 0x82E9, 0xC674, 0x82EA, 0xC675, - 0x82EB, 0xC9BB, 0x82EC, 0xC676, 0x82ED, 0xC677, 0x82EE, 0xC678, - 0x82EF, 0xB1BD, 0x82F0, 0xC679, 0x82F1, 0xD3A2, 0x82F2, 0xC67A, - 0x82F3, 0xC67B, 0x82F4, 0xDCDA, 0x82F5, 0xC67C, 0x82F6, 0xC67D, - 0x82F7, 0xDCD5, 0x82F8, 0xC67E, 0x82F9, 0xC6BB, 0x82FA, 0xC680, - 0x82FB, 0xDCDE, 0x82FC, 0xC681, 0x82FD, 0xC682, 0x82FE, 0xC683, - 0x82FF, 0xC684, 0x8300, 0xC685, 0x8301, 0xD7C2, 0x8302, 0xC3AF, - 0x8303, 0xB7B6, 0x8304, 0xC7D1, 0x8305, 0xC3A9, 0x8306, 0xDCE2, - 0x8307, 0xDCD8, 0x8308, 0xDCEB, 0x8309, 0xDCD4, 0x830A, 0xC686, - 0x830B, 0xC687, 0x830C, 0xDCDD, 0x830D, 0xC688, 0x830E, 0xBEA5, - 0x830F, 0xDCD7, 0x8310, 0xC689, 0x8311, 0xDCE0, 0x8312, 0xC68A, - 0x8313, 0xC68B, 0x8314, 0xDCE3, 0x8315, 0xDCE4, 0x8316, 0xC68C, - 0x8317, 0xDCF8, 0x8318, 0xC68D, 0x8319, 0xC68E, 0x831A, 0xDCE1, - 0x831B, 0xDDA2, 0x831C, 0xDCE7, 0x831D, 0xC68F, 0x831E, 0xC690, - 0x831F, 0xC691, 0x8320, 0xC692, 0x8321, 0xC693, 0x8322, 0xC694, - 0x8323, 0xC695, 0x8324, 0xC696, 0x8325, 0xC697, 0x8326, 0xC698, - 0x8327, 0xBCEB, 0x8328, 0xB4C4, 0x8329, 0xC699, 0x832A, 0xC69A, - 0x832B, 0xC3A3, 0x832C, 0xB2E7, 0x832D, 0xDCFA, 0x832E, 0xC69B, - 0x832F, 0xDCF2, 0x8330, 0xC69C, 0x8331, 0xDCEF, 0x8332, 0xC69D, - 0x8333, 0xDCFC, 0x8334, 0xDCEE, 0x8335, 0xD2F0, 0x8336, 0xB2E8, - 0x8337, 0xC69E, 0x8338, 0xC8D7, 0x8339, 0xC8E3, 0x833A, 0xDCFB, - 0x833B, 0xC69F, 0x833C, 0xDCED, 0x833D, 0xC6A0, 0x833E, 0xC740, - 0x833F, 0xC741, 0x8340, 0xDCF7, 0x8341, 0xC742, 0x8342, 0xC743, - 0x8343, 0xDCF5, 0x8344, 0xC744, 0x8345, 0xC745, 0x8346, 0xBEA3, - 0x8347, 0xDCF4, 0x8348, 0xC746, 0x8349, 0xB2DD, 0x834A, 0xC747, - 0x834B, 0xC748, 0x834C, 0xC749, 0x834D, 0xC74A, 0x834E, 0xC74B, - 0x834F, 0xDCF3, 0x8350, 0xBCF6, 0x8351, 0xDCE8, 0x8352, 0xBBC4, - 0x8353, 0xC74C, 0x8354, 0xC0F3, 0x8355, 0xC74D, 0x8356, 0xC74E, - 0x8357, 0xC74F, 0x8358, 0xC750, 0x8359, 0xC751, 0x835A, 0xBCD4, - 0x835B, 0xDCE9, 0x835C, 0xDCEA, 0x835D, 0xC752, 0x835E, 0xDCF1, - 0x835F, 0xDCF6, 0x8360, 0xDCF9, 0x8361, 0xB5B4, 0x8362, 0xC753, - 0x8363, 0xC8D9, 0x8364, 0xBBE7, 0x8365, 0xDCFE, 0x8366, 0xDCFD, - 0x8367, 0xD3AB, 0x8368, 0xDDA1, 0x8369, 0xDDA3, 0x836A, 0xDDA5, - 0x836B, 0xD2F1, 0x836C, 0xDDA4, 0x836D, 0xDDA6, 0x836E, 0xDDA7, - 0x836F, 0xD2A9, 0x8370, 0xC754, 0x8371, 0xC755, 0x8372, 0xC756, - 0x8373, 0xC757, 0x8374, 0xC758, 0x8375, 0xC759, 0x8376, 0xC75A, - 0x8377, 0xBAC9, 0x8378, 0xDDA9, 0x8379, 0xC75B, 0x837A, 0xC75C, - 0x837B, 0xDDB6, 0x837C, 0xDDB1, 0x837D, 0xDDB4, 0x837E, 0xC75D, - 0x837F, 0xC75E, 0x8380, 0xC75F, 0x8381, 0xC760, 0x8382, 0xC761, - 0x8383, 0xC762, 0x8384, 0xC763, 0x8385, 0xDDB0, 0x8386, 0xC6CE, - 0x8387, 0xC764, 0x8388, 0xC765, 0x8389, 0xC0F2, 0x838A, 0xC766, - 0x838B, 0xC767, 0x838C, 0xC768, 0x838D, 0xC769, 0x838E, 0xC9AF, - 0x838F, 0xC76A, 0x8390, 0xC76B, 0x8391, 0xC76C, 0x8392, 0xDCEC, - 0x8393, 0xDDAE, 0x8394, 0xC76D, 0x8395, 0xC76E, 0x8396, 0xC76F, - 0x8397, 0xC770, 0x8398, 0xDDB7, 0x8399, 0xC771, 0x839A, 0xC772, - 0x839B, 0xDCF0, 0x839C, 0xDDAF, 0x839D, 0xC773, 0x839E, 0xDDB8, - 0x839F, 0xC774, 0x83A0, 0xDDAC, 0x83A1, 0xC775, 0x83A2, 0xC776, - 0x83A3, 0xC777, 0x83A4, 0xC778, 0x83A5, 0xC779, 0x83A6, 0xC77A, - 0x83A7, 0xC77B, 0x83A8, 0xDDB9, 0x83A9, 0xDDB3, 0x83AA, 0xDDAD, - 0x83AB, 0xC4AA, 0x83AC, 0xC77C, 0x83AD, 0xC77D, 0x83AE, 0xC77E, - 0x83AF, 0xC780, 0x83B0, 0xDDA8, 0x83B1, 0xC0B3, 0x83B2, 0xC1AB, - 0x83B3, 0xDDAA, 0x83B4, 0xDDAB, 0x83B5, 0xC781, 0x83B6, 0xDDB2, - 0x83B7, 0xBBF1, 0x83B8, 0xDDB5, 0x83B9, 0xD3A8, 0x83BA, 0xDDBA, - 0x83BB, 0xC782, 0x83BC, 0xDDBB, 0x83BD, 0xC3A7, 0x83BE, 0xC783, - 0x83BF, 0xC784, 0x83C0, 0xDDD2, 0x83C1, 0xDDBC, 0x83C2, 0xC785, - 0x83C3, 0xC786, 0x83C4, 0xC787, 0x83C5, 0xDDD1, 0x83C6, 0xC788, - 0x83C7, 0xB9BD, 0x83C8, 0xC789, 0x83C9, 0xC78A, 0x83CA, 0xBED5, - 0x83CB, 0xC78B, 0x83CC, 0xBEFA, 0x83CD, 0xC78C, 0x83CE, 0xC78D, - 0x83CF, 0xBACA, 0x83D0, 0xC78E, 0x83D1, 0xC78F, 0x83D2, 0xC790, - 0x83D3, 0xC791, 0x83D4, 0xDDCA, 0x83D5, 0xC792, 0x83D6, 0xDDC5, - 0x83D7, 0xC793, 0x83D8, 0xDDBF, 0x83D9, 0xC794, 0x83DA, 0xC795, - 0x83DB, 0xC796, 0x83DC, 0xB2CB, 0x83DD, 0xDDC3, 0x83DE, 0xC797, - 0x83DF, 0xDDCB, 0x83E0, 0xB2A4, 0x83E1, 0xDDD5, 0x83E2, 0xC798, - 0x83E3, 0xC799, 0x83E4, 0xC79A, 0x83E5, 0xDDBE, 0x83E6, 0xC79B, - 0x83E7, 0xC79C, 0x83E8, 0xC79D, 0x83E9, 0xC6D0, 0x83EA, 0xDDD0, - 0x83EB, 0xC79E, 0x83EC, 0xC79F, 0x83ED, 0xC7A0, 0x83EE, 0xC840, - 0x83EF, 0xC841, 0x83F0, 0xDDD4, 0x83F1, 0xC1E2, 0x83F2, 0xB7C6, - 0x83F3, 0xC842, 0x83F4, 0xC843, 0x83F5, 0xC844, 0x83F6, 0xC845, - 0x83F7, 0xC846, 0x83F8, 0xDDCE, 0x83F9, 0xDDCF, 0x83FA, 0xC847, - 0x83FB, 0xC848, 0x83FC, 0xC849, 0x83FD, 0xDDC4, 0x83FE, 0xC84A, - 0x83FF, 0xC84B, 0x8400, 0xC84C, 0x8401, 0xDDBD, 0x8402, 0xC84D, - 0x8403, 0xDDCD, 0x8404, 0xCCD1, 0x8405, 0xC84E, 0x8406, 0xDDC9, - 0x8407, 0xC84F, 0x8408, 0xC850, 0x8409, 0xC851, 0x840A, 0xC852, - 0x840B, 0xDDC2, 0x840C, 0xC3C8, 0x840D, 0xC6BC, 0x840E, 0xCEAE, - 0x840F, 0xDDCC, 0x8410, 0xC853, 0x8411, 0xDDC8, 0x8412, 0xC854, - 0x8413, 0xC855, 0x8414, 0xC856, 0x8415, 0xC857, 0x8416, 0xC858, - 0x8417, 0xC859, 0x8418, 0xDDC1, 0x8419, 0xC85A, 0x841A, 0xC85B, - 0x841B, 0xC85C, 0x841C, 0xDDC6, 0x841D, 0xC2DC, 0x841E, 0xC85D, - 0x841F, 0xC85E, 0x8420, 0xC85F, 0x8421, 0xC860, 0x8422, 0xC861, - 0x8423, 0xC862, 0x8424, 0xD3A9, 0x8425, 0xD3AA, 0x8426, 0xDDD3, - 0x8427, 0xCFF4, 0x8428, 0xC8F8, 0x8429, 0xC863, 0x842A, 0xC864, - 0x842B, 0xC865, 0x842C, 0xC866, 0x842D, 0xC867, 0x842E, 0xC868, - 0x842F, 0xC869, 0x8430, 0xC86A, 0x8431, 0xDDE6, 0x8432, 0xC86B, - 0x8433, 0xC86C, 0x8434, 0xC86D, 0x8435, 0xC86E, 0x8436, 0xC86F, - 0x8437, 0xC870, 0x8438, 0xDDC7, 0x8439, 0xC871, 0x843A, 0xC872, - 0x843B, 0xC873, 0x843C, 0xDDE0, 0x843D, 0xC2E4, 0x843E, 0xC874, - 0x843F, 0xC875, 0x8440, 0xC876, 0x8441, 0xC877, 0x8442, 0xC878, - 0x8443, 0xC879, 0x8444, 0xC87A, 0x8445, 0xC87B, 0x8446, 0xDDE1, - 0x8447, 0xC87C, 0x8448, 0xC87D, 0x8449, 0xC87E, 0x844A, 0xC880, - 0x844B, 0xC881, 0x844C, 0xC882, 0x844D, 0xC883, 0x844E, 0xC884, - 0x844F, 0xC885, 0x8450, 0xC886, 0x8451, 0xDDD7, 0x8452, 0xC887, - 0x8453, 0xC888, 0x8454, 0xC889, 0x8455, 0xC88A, 0x8456, 0xC88B, - 0x8457, 0xD6F8, 0x8458, 0xC88C, 0x8459, 0xDDD9, 0x845A, 0xDDD8, - 0x845B, 0xB8F0, 0x845C, 0xDDD6, 0x845D, 0xC88D, 0x845E, 0xC88E, - 0x845F, 0xC88F, 0x8460, 0xC890, 0x8461, 0xC6CF, 0x8462, 0xC891, - 0x8463, 0xB6AD, 0x8464, 0xC892, 0x8465, 0xC893, 0x8466, 0xC894, - 0x8467, 0xC895, 0x8468, 0xC896, 0x8469, 0xDDE2, 0x846A, 0xC897, - 0x846B, 0xBAF9, 0x846C, 0xD4E1, 0x846D, 0xDDE7, 0x846E, 0xC898, - 0x846F, 0xC899, 0x8470, 0xC89A, 0x8471, 0xB4D0, 0x8472, 0xC89B, - 0x8473, 0xDDDA, 0x8474, 0xC89C, 0x8475, 0xBFFB, 0x8476, 0xDDE3, - 0x8477, 0xC89D, 0x8478, 0xDDDF, 0x8479, 0xC89E, 0x847A, 0xDDDD, - 0x847B, 0xC89F, 0x847C, 0xC8A0, 0x847D, 0xC940, 0x847E, 0xC941, - 0x847F, 0xC942, 0x8480, 0xC943, 0x8481, 0xC944, 0x8482, 0xB5D9, - 0x8483, 0xC945, 0x8484, 0xC946, 0x8485, 0xC947, 0x8486, 0xC948, - 0x8487, 0xDDDB, 0x8488, 0xDDDC, 0x8489, 0xDDDE, 0x848A, 0xC949, - 0x848B, 0xBDAF, 0x848C, 0xDDE4, 0x848D, 0xC94A, 0x848E, 0xDDE5, - 0x848F, 0xC94B, 0x8490, 0xC94C, 0x8491, 0xC94D, 0x8492, 0xC94E, - 0x8493, 0xC94F, 0x8494, 0xC950, 0x8495, 0xC951, 0x8496, 0xC952, - 0x8497, 0xDDF5, 0x8498, 0xC953, 0x8499, 0xC3C9, 0x849A, 0xC954, - 0x849B, 0xC955, 0x849C, 0xCBE2, 0x849D, 0xC956, 0x849E, 0xC957, - 0x849F, 0xC958, 0x84A0, 0xC959, 0x84A1, 0xDDF2, 0x84A2, 0xC95A, - 0x84A3, 0xC95B, 0x84A4, 0xC95C, 0x84A5, 0xC95D, 0x84A6, 0xC95E, - 0x84A7, 0xC95F, 0x84A8, 0xC960, 0x84A9, 0xC961, 0x84AA, 0xC962, - 0x84AB, 0xC963, 0x84AC, 0xC964, 0x84AD, 0xC965, 0x84AE, 0xC966, - 0x84AF, 0xD8E1, 0x84B0, 0xC967, 0x84B1, 0xC968, 0x84B2, 0xC6D1, - 0x84B3, 0xC969, 0x84B4, 0xDDF4, 0x84B5, 0xC96A, 0x84B6, 0xC96B, - 0x84B7, 0xC96C, 0x84B8, 0xD5F4, 0x84B9, 0xDDF3, 0x84BA, 0xDDF0, - 0x84BB, 0xC96D, 0x84BC, 0xC96E, 0x84BD, 0xDDEC, 0x84BE, 0xC96F, - 0x84BF, 0xDDEF, 0x84C0, 0xC970, 0x84C1, 0xDDE8, 0x84C2, 0xC971, - 0x84C3, 0xC972, 0x84C4, 0xD0EE, 0x84C5, 0xC973, 0x84C6, 0xC974, - 0x84C7, 0xC975, 0x84C8, 0xC976, 0x84C9, 0xC8D8, 0x84CA, 0xDDEE, - 0x84CB, 0xC977, 0x84CC, 0xC978, 0x84CD, 0xDDE9, 0x84CE, 0xC979, - 0x84CF, 0xC97A, 0x84D0, 0xDDEA, 0x84D1, 0xCBF2, 0x84D2, 0xC97B, - 0x84D3, 0xDDED, 0x84D4, 0xC97C, 0x84D5, 0xC97D, 0x84D6, 0xB1CD, - 0x84D7, 0xC97E, 0x84D8, 0xC980, 0x84D9, 0xC981, 0x84DA, 0xC982, - 0x84DB, 0xC983, 0x84DC, 0xC984, 0x84DD, 0xC0B6, 0x84DE, 0xC985, - 0x84DF, 0xBCBB, 0x84E0, 0xDDF1, 0x84E1, 0xC986, 0x84E2, 0xC987, - 0x84E3, 0xDDF7, 0x84E4, 0xC988, 0x84E5, 0xDDF6, 0x84E6, 0xDDEB, - 0x84E7, 0xC989, 0x84E8, 0xC98A, 0x84E9, 0xC98B, 0x84EA, 0xC98C, - 0x84EB, 0xC98D, 0x84EC, 0xC5EE, 0x84ED, 0xC98E, 0x84EE, 0xC98F, - 0x84EF, 0xC990, 0x84F0, 0xDDFB, 0x84F1, 0xC991, 0x84F2, 0xC992, - 0x84F3, 0xC993, 0x84F4, 0xC994, 0x84F5, 0xC995, 0x84F6, 0xC996, - 0x84F7, 0xC997, 0x84F8, 0xC998, 0x84F9, 0xC999, 0x84FA, 0xC99A, - 0x84FB, 0xC99B, 0x84FC, 0xDEA4, 0x84FD, 0xC99C, 0x84FE, 0xC99D, - 0x84FF, 0xDEA3, 0x8500, 0xC99E, 0x8501, 0xC99F, 0x8502, 0xC9A0, - 0x8503, 0xCA40, 0x8504, 0xCA41, 0x8505, 0xCA42, 0x8506, 0xCA43, - 0x8507, 0xCA44, 0x8508, 0xCA45, 0x8509, 0xCA46, 0x850A, 0xCA47, - 0x850B, 0xCA48, 0x850C, 0xDDF8, 0x850D, 0xCA49, 0x850E, 0xCA4A, - 0x850F, 0xCA4B, 0x8510, 0xCA4C, 0x8511, 0xC3EF, 0x8512, 0xCA4D, - 0x8513, 0xC2FB, 0x8514, 0xCA4E, 0x8515, 0xCA4F, 0x8516, 0xCA50, - 0x8517, 0xD5E1, 0x8518, 0xCA51, 0x8519, 0xCA52, 0x851A, 0xCEB5, - 0x851B, 0xCA53, 0x851C, 0xCA54, 0x851D, 0xCA55, 0x851E, 0xCA56, - 0x851F, 0xDDFD, 0x8520, 0xCA57, 0x8521, 0xB2CC, 0x8522, 0xCA58, - 0x8523, 0xCA59, 0x8524, 0xCA5A, 0x8525, 0xCA5B, 0x8526, 0xCA5C, - 0x8527, 0xCA5D, 0x8528, 0xCA5E, 0x8529, 0xCA5F, 0x852A, 0xCA60, - 0x852B, 0xC4E8, 0x852C, 0xCADF, 0x852D, 0xCA61, 0x852E, 0xCA62, - 0x852F, 0xCA63, 0x8530, 0xCA64, 0x8531, 0xCA65, 0x8532, 0xCA66, - 0x8533, 0xCA67, 0x8534, 0xCA68, 0x8535, 0xCA69, 0x8536, 0xCA6A, - 0x8537, 0xC7BE, 0x8538, 0xDDFA, 0x8539, 0xDDFC, 0x853A, 0xDDFE, - 0x853B, 0xDEA2, 0x853C, 0xB0AA, 0x853D, 0xB1CE, 0x853E, 0xCA6B, - 0x853F, 0xCA6C, 0x8540, 0xCA6D, 0x8541, 0xCA6E, 0x8542, 0xCA6F, - 0x8543, 0xDEAC, 0x8544, 0xCA70, 0x8545, 0xCA71, 0x8546, 0xCA72, - 0x8547, 0xCA73, 0x8548, 0xDEA6, 0x8549, 0xBDB6, 0x854A, 0xC8EF, - 0x854B, 0xCA74, 0x854C, 0xCA75, 0x854D, 0xCA76, 0x854E, 0xCA77, - 0x854F, 0xCA78, 0x8550, 0xCA79, 0x8551, 0xCA7A, 0x8552, 0xCA7B, - 0x8553, 0xCA7C, 0x8554, 0xCA7D, 0x8555, 0xCA7E, 0x8556, 0xDEA1, - 0x8557, 0xCA80, 0x8558, 0xCA81, 0x8559, 0xDEA5, 0x855A, 0xCA82, - 0x855B, 0xCA83, 0x855C, 0xCA84, 0x855D, 0xCA85, 0x855E, 0xDEA9, - 0x855F, 0xCA86, 0x8560, 0xCA87, 0x8561, 0xCA88, 0x8562, 0xCA89, - 0x8563, 0xCA8A, 0x8564, 0xDEA8, 0x8565, 0xCA8B, 0x8566, 0xCA8C, - 0x8567, 0xCA8D, 0x8568, 0xDEA7, 0x8569, 0xCA8E, 0x856A, 0xCA8F, - 0x856B, 0xCA90, 0x856C, 0xCA91, 0x856D, 0xCA92, 0x856E, 0xCA93, - 0x856F, 0xCA94, 0x8570, 0xCA95, 0x8571, 0xCA96, 0x8572, 0xDEAD, - 0x8573, 0xCA97, 0x8574, 0xD4CC, 0x8575, 0xCA98, 0x8576, 0xCA99, - 0x8577, 0xCA9A, 0x8578, 0xCA9B, 0x8579, 0xDEB3, 0x857A, 0xDEAA, - 0x857B, 0xDEAE, 0x857C, 0xCA9C, 0x857D, 0xCA9D, 0x857E, 0xC0D9, - 0x857F, 0xCA9E, 0x8580, 0xCA9F, 0x8581, 0xCAA0, 0x8582, 0xCB40, - 0x8583, 0xCB41, 0x8584, 0xB1A1, 0x8585, 0xDEB6, 0x8586, 0xCB42, - 0x8587, 0xDEB1, 0x8588, 0xCB43, 0x8589, 0xCB44, 0x858A, 0xCB45, - 0x858B, 0xCB46, 0x858C, 0xCB47, 0x858D, 0xCB48, 0x858E, 0xCB49, - 0x858F, 0xDEB2, 0x8590, 0xCB4A, 0x8591, 0xCB4B, 0x8592, 0xCB4C, - 0x8593, 0xCB4D, 0x8594, 0xCB4E, 0x8595, 0xCB4F, 0x8596, 0xCB50, - 0x8597, 0xCB51, 0x8598, 0xCB52, 0x8599, 0xCB53, 0x859A, 0xCB54, - 0x859B, 0xD1A6, 0x859C, 0xDEB5, 0x859D, 0xCB55, 0x859E, 0xCB56, - 0x859F, 0xCB57, 0x85A0, 0xCB58, 0x85A1, 0xCB59, 0x85A2, 0xCB5A, - 0x85A3, 0xCB5B, 0x85A4, 0xDEAF, 0x85A5, 0xCB5C, 0x85A6, 0xCB5D, - 0x85A7, 0xCB5E, 0x85A8, 0xDEB0, 0x85A9, 0xCB5F, 0x85AA, 0xD0BD, - 0x85AB, 0xCB60, 0x85AC, 0xCB61, 0x85AD, 0xCB62, 0x85AE, 0xDEB4, - 0x85AF, 0xCAED, 0x85B0, 0xDEB9, 0x85B1, 0xCB63, 0x85B2, 0xCB64, - 0x85B3, 0xCB65, 0x85B4, 0xCB66, 0x85B5, 0xCB67, 0x85B6, 0xCB68, - 0x85B7, 0xDEB8, 0x85B8, 0xCB69, 0x85B9, 0xDEB7, 0x85BA, 0xCB6A, - 0x85BB, 0xCB6B, 0x85BC, 0xCB6C, 0x85BD, 0xCB6D, 0x85BE, 0xCB6E, - 0x85BF, 0xCB6F, 0x85C0, 0xCB70, 0x85C1, 0xDEBB, 0x85C2, 0xCB71, - 0x85C3, 0xCB72, 0x85C4, 0xCB73, 0x85C5, 0xCB74, 0x85C6, 0xCB75, - 0x85C7, 0xCB76, 0x85C8, 0xCB77, 0x85C9, 0xBDE5, 0x85CA, 0xCB78, - 0x85CB, 0xCB79, 0x85CC, 0xCB7A, 0x85CD, 0xCB7B, 0x85CE, 0xCB7C, - 0x85CF, 0xB2D8, 0x85D0, 0xC3EA, 0x85D1, 0xCB7D, 0x85D2, 0xCB7E, - 0x85D3, 0xDEBA, 0x85D4, 0xCB80, 0x85D5, 0xC5BA, 0x85D6, 0xCB81, - 0x85D7, 0xCB82, 0x85D8, 0xCB83, 0x85D9, 0xCB84, 0x85DA, 0xCB85, - 0x85DB, 0xCB86, 0x85DC, 0xDEBC, 0x85DD, 0xCB87, 0x85DE, 0xCB88, - 0x85DF, 0xCB89, 0x85E0, 0xCB8A, 0x85E1, 0xCB8B, 0x85E2, 0xCB8C, - 0x85E3, 0xCB8D, 0x85E4, 0xCCD9, 0x85E5, 0xCB8E, 0x85E6, 0xCB8F, - 0x85E7, 0xCB90, 0x85E8, 0xCB91, 0x85E9, 0xB7AA, 0x85EA, 0xCB92, - 0x85EB, 0xCB93, 0x85EC, 0xCB94, 0x85ED, 0xCB95, 0x85EE, 0xCB96, - 0x85EF, 0xCB97, 0x85F0, 0xCB98, 0x85F1, 0xCB99, 0x85F2, 0xCB9A, - 0x85F3, 0xCB9B, 0x85F4, 0xCB9C, 0x85F5, 0xCB9D, 0x85F6, 0xCB9E, - 0x85F7, 0xCB9F, 0x85F8, 0xCBA0, 0x85F9, 0xCC40, 0x85FA, 0xCC41, - 0x85FB, 0xD4E5, 0x85FC, 0xCC42, 0x85FD, 0xCC43, 0x85FE, 0xCC44, - 0x85FF, 0xDEBD, 0x8600, 0xCC45, 0x8601, 0xCC46, 0x8602, 0xCC47, - 0x8603, 0xCC48, 0x8604, 0xCC49, 0x8605, 0xDEBF, 0x8606, 0xCC4A, - 0x8607, 0xCC4B, 0x8608, 0xCC4C, 0x8609, 0xCC4D, 0x860A, 0xCC4E, - 0x860B, 0xCC4F, 0x860C, 0xCC50, 0x860D, 0xCC51, 0x860E, 0xCC52, - 0x860F, 0xCC53, 0x8610, 0xCC54, 0x8611, 0xC4A2, 0x8612, 0xCC55, - 0x8613, 0xCC56, 0x8614, 0xCC57, 0x8615, 0xCC58, 0x8616, 0xDEC1, - 0x8617, 0xCC59, 0x8618, 0xCC5A, 0x8619, 0xCC5B, 0x861A, 0xCC5C, - 0x861B, 0xCC5D, 0x861C, 0xCC5E, 0x861D, 0xCC5F, 0x861E, 0xCC60, - 0x861F, 0xCC61, 0x8620, 0xCC62, 0x8621, 0xCC63, 0x8622, 0xCC64, - 0x8623, 0xCC65, 0x8624, 0xCC66, 0x8625, 0xCC67, 0x8626, 0xCC68, - 0x8627, 0xDEBE, 0x8628, 0xCC69, 0x8629, 0xDEC0, 0x862A, 0xCC6A, - 0x862B, 0xCC6B, 0x862C, 0xCC6C, 0x862D, 0xCC6D, 0x862E, 0xCC6E, - 0x862F, 0xCC6F, 0x8630, 0xCC70, 0x8631, 0xCC71, 0x8632, 0xCC72, - 0x8633, 0xCC73, 0x8634, 0xCC74, 0x8635, 0xCC75, 0x8636, 0xCC76, - 0x8637, 0xCC77, 0x8638, 0xD5BA, 0x8639, 0xCC78, 0x863A, 0xCC79, - 0x863B, 0xCC7A, 0x863C, 0xDEC2, 0x863D, 0xCC7B, 0x863E, 0xCC7C, - 0x863F, 0xCC7D, 0x8640, 0xCC7E, 0x8641, 0xCC80, 0x8642, 0xCC81, - 0x8643, 0xCC82, 0x8644, 0xCC83, 0x8645, 0xCC84, 0x8646, 0xCC85, - 0x8647, 0xCC86, 0x8648, 0xCC87, 0x8649, 0xCC88, 0x864A, 0xCC89, - 0x864B, 0xCC8A, 0x864C, 0xCC8B, 0x864D, 0xF2AE, 0x864E, 0xBBA2, - 0x864F, 0xC2B2, 0x8650, 0xC5B0, 0x8651, 0xC2C7, 0x8652, 0xCC8C, - 0x8653, 0xCC8D, 0x8654, 0xF2AF, 0x8655, 0xCC8E, 0x8656, 0xCC8F, - 0x8657, 0xCC90, 0x8658, 0xCC91, 0x8659, 0xCC92, 0x865A, 0xD0E9, - 0x865B, 0xCC93, 0x865C, 0xCC94, 0x865D, 0xCC95, 0x865E, 0xD3DD, - 0x865F, 0xCC96, 0x8660, 0xCC97, 0x8661, 0xCC98, 0x8662, 0xEBBD, - 0x8663, 0xCC99, 0x8664, 0xCC9A, 0x8665, 0xCC9B, 0x8666, 0xCC9C, - 0x8667, 0xCC9D, 0x8668, 0xCC9E, 0x8669, 0xCC9F, 0x866A, 0xCCA0, - 0x866B, 0xB3E6, 0x866C, 0xF2B0, 0x866D, 0xCD40, 0x866E, 0xF2B1, - 0x866F, 0xCD41, 0x8670, 0xCD42, 0x8671, 0xCAAD, 0x8672, 0xCD43, - 0x8673, 0xCD44, 0x8674, 0xCD45, 0x8675, 0xCD46, 0x8676, 0xCD47, - 0x8677, 0xCD48, 0x8678, 0xCD49, 0x8679, 0xBAE7, 0x867A, 0xF2B3, - 0x867B, 0xF2B5, 0x867C, 0xF2B4, 0x867D, 0xCBE4, 0x867E, 0xCFBA, - 0x867F, 0xF2B2, 0x8680, 0xCAB4, 0x8681, 0xD2CF, 0x8682, 0xC2EC, - 0x8683, 0xCD4A, 0x8684, 0xCD4B, 0x8685, 0xCD4C, 0x8686, 0xCD4D, - 0x8687, 0xCD4E, 0x8688, 0xCD4F, 0x8689, 0xCD50, 0x868A, 0xCEC3, - 0x868B, 0xF2B8, 0x868C, 0xB0F6, 0x868D, 0xF2B7, 0x868E, 0xCD51, - 0x868F, 0xCD52, 0x8690, 0xCD53, 0x8691, 0xCD54, 0x8692, 0xCD55, - 0x8693, 0xF2BE, 0x8694, 0xCD56, 0x8695, 0xB2CF, 0x8696, 0xCD57, - 0x8697, 0xCD58, 0x8698, 0xCD59, 0x8699, 0xCD5A, 0x869A, 0xCD5B, - 0x869B, 0xCD5C, 0x869C, 0xD1C1, 0x869D, 0xF2BA, 0x869E, 0xCD5D, - 0x869F, 0xCD5E, 0x86A0, 0xCD5F, 0x86A1, 0xCD60, 0x86A2, 0xCD61, - 0x86A3, 0xF2BC, 0x86A4, 0xD4E9, 0x86A5, 0xCD62, 0x86A6, 0xCD63, - 0x86A7, 0xF2BB, 0x86A8, 0xF2B6, 0x86A9, 0xF2BF, 0x86AA, 0xF2BD, - 0x86AB, 0xCD64, 0x86AC, 0xF2B9, 0x86AD, 0xCD65, 0x86AE, 0xCD66, - 0x86AF, 0xF2C7, 0x86B0, 0xF2C4, 0x86B1, 0xF2C6, 0x86B2, 0xCD67, - 0x86B3, 0xCD68, 0x86B4, 0xF2CA, 0x86B5, 0xF2C2, 0x86B6, 0xF2C0, - 0x86B7, 0xCD69, 0x86B8, 0xCD6A, 0x86B9, 0xCD6B, 0x86BA, 0xF2C5, - 0x86BB, 0xCD6C, 0x86BC, 0xCD6D, 0x86BD, 0xCD6E, 0x86BE, 0xCD6F, - 0x86BF, 0xCD70, 0x86C0, 0xD6FB, 0x86C1, 0xCD71, 0x86C2, 0xCD72, - 0x86C3, 0xCD73, 0x86C4, 0xF2C1, 0x86C5, 0xCD74, 0x86C6, 0xC7F9, - 0x86C7, 0xC9DF, 0x86C8, 0xCD75, 0x86C9, 0xF2C8, 0x86CA, 0xB9C6, - 0x86CB, 0xB5B0, 0x86CC, 0xCD76, 0x86CD, 0xCD77, 0x86CE, 0xF2C3, - 0x86CF, 0xF2C9, 0x86D0, 0xF2D0, 0x86D1, 0xF2D6, 0x86D2, 0xCD78, - 0x86D3, 0xCD79, 0x86D4, 0xBBD7, 0x86D5, 0xCD7A, 0x86D6, 0xCD7B, - 0x86D7, 0xCD7C, 0x86D8, 0xF2D5, 0x86D9, 0xCDDC, 0x86DA, 0xCD7D, - 0x86DB, 0xD6EB, 0x86DC, 0xCD7E, 0x86DD, 0xCD80, 0x86DE, 0xF2D2, - 0x86DF, 0xF2D4, 0x86E0, 0xCD81, 0x86E1, 0xCD82, 0x86E2, 0xCD83, - 0x86E3, 0xCD84, 0x86E4, 0xB8F2, 0x86E5, 0xCD85, 0x86E6, 0xCD86, - 0x86E7, 0xCD87, 0x86E8, 0xCD88, 0x86E9, 0xF2CB, 0x86EA, 0xCD89, - 0x86EB, 0xCD8A, 0x86EC, 0xCD8B, 0x86ED, 0xF2CE, 0x86EE, 0xC2F9, - 0x86EF, 0xCD8C, 0x86F0, 0xD5DD, 0x86F1, 0xF2CC, 0x86F2, 0xF2CD, - 0x86F3, 0xF2CF, 0x86F4, 0xF2D3, 0x86F5, 0xCD8D, 0x86F6, 0xCD8E, - 0x86F7, 0xCD8F, 0x86F8, 0xF2D9, 0x86F9, 0xD3BC, 0x86FA, 0xCD90, - 0x86FB, 0xCD91, 0x86FC, 0xCD92, 0x86FD, 0xCD93, 0x86FE, 0xB6EA, - 0x86FF, 0xCD94, 0x8700, 0xCAF1, 0x8701, 0xCD95, 0x8702, 0xB7E4, - 0x8703, 0xF2D7, 0x8704, 0xCD96, 0x8705, 0xCD97, 0x8706, 0xCD98, - 0x8707, 0xF2D8, 0x8708, 0xF2DA, 0x8709, 0xF2DD, 0x870A, 0xF2DB, - 0x870B, 0xCD99, 0x870C, 0xCD9A, 0x870D, 0xF2DC, 0x870E, 0xCD9B, - 0x870F, 0xCD9C, 0x8710, 0xCD9D, 0x8711, 0xCD9E, 0x8712, 0xD1D1, - 0x8713, 0xF2D1, 0x8714, 0xCD9F, 0x8715, 0xCDC9, 0x8716, 0xCDA0, - 0x8717, 0xCECF, 0x8718, 0xD6A9, 0x8719, 0xCE40, 0x871A, 0xF2E3, - 0x871B, 0xCE41, 0x871C, 0xC3DB, 0x871D, 0xCE42, 0x871E, 0xF2E0, - 0x871F, 0xCE43, 0x8720, 0xCE44, 0x8721, 0xC0AF, 0x8722, 0xF2EC, - 0x8723, 0xF2DE, 0x8724, 0xCE45, 0x8725, 0xF2E1, 0x8726, 0xCE46, - 0x8727, 0xCE47, 0x8728, 0xCE48, 0x8729, 0xF2E8, 0x872A, 0xCE49, - 0x872B, 0xCE4A, 0x872C, 0xCE4B, 0x872D, 0xCE4C, 0x872E, 0xF2E2, - 0x872F, 0xCE4D, 0x8730, 0xCE4E, 0x8731, 0xF2E7, 0x8732, 0xCE4F, - 0x8733, 0xCE50, 0x8734, 0xF2E6, 0x8735, 0xCE51, 0x8736, 0xCE52, - 0x8737, 0xF2E9, 0x8738, 0xCE53, 0x8739, 0xCE54, 0x873A, 0xCE55, - 0x873B, 0xF2DF, 0x873C, 0xCE56, 0x873D, 0xCE57, 0x873E, 0xF2E4, - 0x873F, 0xF2EA, 0x8740, 0xCE58, 0x8741, 0xCE59, 0x8742, 0xCE5A, - 0x8743, 0xCE5B, 0x8744, 0xCE5C, 0x8745, 0xCE5D, 0x8746, 0xCE5E, - 0x8747, 0xD3AC, 0x8748, 0xF2E5, 0x8749, 0xB2F5, 0x874A, 0xCE5F, - 0x874B, 0xCE60, 0x874C, 0xF2F2, 0x874D, 0xCE61, 0x874E, 0xD0AB, - 0x874F, 0xCE62, 0x8750, 0xCE63, 0x8751, 0xCE64, 0x8752, 0xCE65, - 0x8753, 0xF2F5, 0x8754, 0xCE66, 0x8755, 0xCE67, 0x8756, 0xCE68, - 0x8757, 0xBBC8, 0x8758, 0xCE69, 0x8759, 0xF2F9, 0x875A, 0xCE6A, - 0x875B, 0xCE6B, 0x875C, 0xCE6C, 0x875D, 0xCE6D, 0x875E, 0xCE6E, - 0x875F, 0xCE6F, 0x8760, 0xF2F0, 0x8761, 0xCE70, 0x8762, 0xCE71, - 0x8763, 0xF2F6, 0x8764, 0xF2F8, 0x8765, 0xF2FA, 0x8766, 0xCE72, - 0x8767, 0xCE73, 0x8768, 0xCE74, 0x8769, 0xCE75, 0x876A, 0xCE76, - 0x876B, 0xCE77, 0x876C, 0xCE78, 0x876D, 0xCE79, 0x876E, 0xF2F3, - 0x876F, 0xCE7A, 0x8770, 0xF2F1, 0x8771, 0xCE7B, 0x8772, 0xCE7C, - 0x8773, 0xCE7D, 0x8774, 0xBAFB, 0x8775, 0xCE7E, 0x8776, 0xB5FB, - 0x8777, 0xCE80, 0x8778, 0xCE81, 0x8779, 0xCE82, 0x877A, 0xCE83, - 0x877B, 0xF2EF, 0x877C, 0xF2F7, 0x877D, 0xF2ED, 0x877E, 0xF2EE, - 0x877F, 0xCE84, 0x8780, 0xCE85, 0x8781, 0xCE86, 0x8782, 0xF2EB, - 0x8783, 0xF3A6, 0x8784, 0xCE87, 0x8785, 0xF3A3, 0x8786, 0xCE88, - 0x8787, 0xCE89, 0x8788, 0xF3A2, 0x8789, 0xCE8A, 0x878A, 0xCE8B, - 0x878B, 0xF2F4, 0x878C, 0xCE8C, 0x878D, 0xC8DA, 0x878E, 0xCE8D, - 0x878F, 0xCE8E, 0x8790, 0xCE8F, 0x8791, 0xCE90, 0x8792, 0xCE91, - 0x8793, 0xF2FB, 0x8794, 0xCE92, 0x8795, 0xCE93, 0x8796, 0xCE94, - 0x8797, 0xF3A5, 0x8798, 0xCE95, 0x8799, 0xCE96, 0x879A, 0xCE97, - 0x879B, 0xCE98, 0x879C, 0xCE99, 0x879D, 0xCE9A, 0x879E, 0xCE9B, - 0x879F, 0xC3F8, 0x87A0, 0xCE9C, 0x87A1, 0xCE9D, 0x87A2, 0xCE9E, - 0x87A3, 0xCE9F, 0x87A4, 0xCEA0, 0x87A5, 0xCF40, 0x87A6, 0xCF41, - 0x87A7, 0xCF42, 0x87A8, 0xF2FD, 0x87A9, 0xCF43, 0x87AA, 0xCF44, - 0x87AB, 0xF3A7, 0x87AC, 0xF3A9, 0x87AD, 0xF3A4, 0x87AE, 0xCF45, - 0x87AF, 0xF2FC, 0x87B0, 0xCF46, 0x87B1, 0xCF47, 0x87B2, 0xCF48, - 0x87B3, 0xF3AB, 0x87B4, 0xCF49, 0x87B5, 0xF3AA, 0x87B6, 0xCF4A, - 0x87B7, 0xCF4B, 0x87B8, 0xCF4C, 0x87B9, 0xCF4D, 0x87BA, 0xC2DD, - 0x87BB, 0xCF4E, 0x87BC, 0xCF4F, 0x87BD, 0xF3AE, 0x87BE, 0xCF50, - 0x87BF, 0xCF51, 0x87C0, 0xF3B0, 0x87C1, 0xCF52, 0x87C2, 0xCF53, - 0x87C3, 0xCF54, 0x87C4, 0xCF55, 0x87C5, 0xCF56, 0x87C6, 0xF3A1, - 0x87C7, 0xCF57, 0x87C8, 0xCF58, 0x87C9, 0xCF59, 0x87CA, 0xF3B1, - 0x87CB, 0xF3AC, 0x87CC, 0xCF5A, 0x87CD, 0xCF5B, 0x87CE, 0xCF5C, - 0x87CF, 0xCF5D, 0x87D0, 0xCF5E, 0x87D1, 0xF3AF, 0x87D2, 0xF2FE, - 0x87D3, 0xF3AD, 0x87D4, 0xCF5F, 0x87D5, 0xCF60, 0x87D6, 0xCF61, - 0x87D7, 0xCF62, 0x87D8, 0xCF63, 0x87D9, 0xCF64, 0x87DA, 0xCF65, - 0x87DB, 0xF3B2, 0x87DC, 0xCF66, 0x87DD, 0xCF67, 0x87DE, 0xCF68, - 0x87DF, 0xCF69, 0x87E0, 0xF3B4, 0x87E1, 0xCF6A, 0x87E2, 0xCF6B, - 0x87E3, 0xCF6C, 0x87E4, 0xCF6D, 0x87E5, 0xF3A8, 0x87E6, 0xCF6E, - 0x87E7, 0xCF6F, 0x87E8, 0xCF70, 0x87E9, 0xCF71, 0x87EA, 0xF3B3, - 0x87EB, 0xCF72, 0x87EC, 0xCF73, 0x87ED, 0xCF74, 0x87EE, 0xF3B5, - 0x87EF, 0xCF75, 0x87F0, 0xCF76, 0x87F1, 0xCF77, 0x87F2, 0xCF78, - 0x87F3, 0xCF79, 0x87F4, 0xCF7A, 0x87F5, 0xCF7B, 0x87F6, 0xCF7C, - 0x87F7, 0xCF7D, 0x87F8, 0xCF7E, 0x87F9, 0xD0B7, 0x87FA, 0xCF80, - 0x87FB, 0xCF81, 0x87FC, 0xCF82, 0x87FD, 0xCF83, 0x87FE, 0xF3B8, - 0x87FF, 0xCF84, 0x8800, 0xCF85, 0x8801, 0xCF86, 0x8802, 0xCF87, - 0x8803, 0xD9F9, 0x8804, 0xCF88, 0x8805, 0xCF89, 0x8806, 0xCF8A, - 0x8807, 0xCF8B, 0x8808, 0xCF8C, 0x8809, 0xCF8D, 0x880A, 0xF3B9, - 0x880B, 0xCF8E, 0x880C, 0xCF8F, 0x880D, 0xCF90, 0x880E, 0xCF91, - 0x880F, 0xCF92, 0x8810, 0xCF93, 0x8811, 0xCF94, 0x8812, 0xCF95, - 0x8813, 0xF3B7, 0x8814, 0xCF96, 0x8815, 0xC8E4, 0x8816, 0xF3B6, - 0x8817, 0xCF97, 0x8818, 0xCF98, 0x8819, 0xCF99, 0x881A, 0xCF9A, - 0x881B, 0xF3BA, 0x881C, 0xCF9B, 0x881D, 0xCF9C, 0x881E, 0xCF9D, - 0x881F, 0xCF9E, 0x8820, 0xCF9F, 0x8821, 0xF3BB, 0x8822, 0xB4C0, - 0x8823, 0xCFA0, 0x8824, 0xD040, 0x8825, 0xD041, 0x8826, 0xD042, - 0x8827, 0xD043, 0x8828, 0xD044, 0x8829, 0xD045, 0x882A, 0xD046, - 0x882B, 0xD047, 0x882C, 0xD048, 0x882D, 0xD049, 0x882E, 0xD04A, - 0x882F, 0xD04B, 0x8830, 0xD04C, 0x8831, 0xD04D, 0x8832, 0xEEC3, - 0x8833, 0xD04E, 0x8834, 0xD04F, 0x8835, 0xD050, 0x8836, 0xD051, - 0x8837, 0xD052, 0x8838, 0xD053, 0x8839, 0xF3BC, 0x883A, 0xD054, - 0x883B, 0xD055, 0x883C, 0xF3BD, 0x883D, 0xD056, 0x883E, 0xD057, - 0x883F, 0xD058, 0x8840, 0xD1AA, 0x8841, 0xD059, 0x8842, 0xD05A, - 0x8843, 0xD05B, 0x8844, 0xF4AC, 0x8845, 0xD0C6, 0x8846, 0xD05C, - 0x8847, 0xD05D, 0x8848, 0xD05E, 0x8849, 0xD05F, 0x884A, 0xD060, - 0x884B, 0xD061, 0x884C, 0xD0D0, 0x884D, 0xD1DC, 0x884E, 0xD062, - 0x884F, 0xD063, 0x8850, 0xD064, 0x8851, 0xD065, 0x8852, 0xD066, - 0x8853, 0xD067, 0x8854, 0xCFCE, 0x8855, 0xD068, 0x8856, 0xD069, - 0x8857, 0xBDD6, 0x8858, 0xD06A, 0x8859, 0xD1C3, 0x885A, 0xD06B, - 0x885B, 0xD06C, 0x885C, 0xD06D, 0x885D, 0xD06E, 0x885E, 0xD06F, - 0x885F, 0xD070, 0x8860, 0xD071, 0x8861, 0xBAE2, 0x8862, 0xE1E9, - 0x8863, 0xD2C2, 0x8864, 0xF1C2, 0x8865, 0xB2B9, 0x8866, 0xD072, - 0x8867, 0xD073, 0x8868, 0xB1ED, 0x8869, 0xF1C3, 0x886A, 0xD074, - 0x886B, 0xC9C0, 0x886C, 0xB3C4, 0x886D, 0xD075, 0x886E, 0xD9F2, - 0x886F, 0xD076, 0x8870, 0xCBA5, 0x8871, 0xD077, 0x8872, 0xF1C4, - 0x8873, 0xD078, 0x8874, 0xD079, 0x8875, 0xD07A, 0x8876, 0xD07B, - 0x8877, 0xD6D4, 0x8878, 0xD07C, 0x8879, 0xD07D, 0x887A, 0xD07E, - 0x887B, 0xD080, 0x887C, 0xD081, 0x887D, 0xF1C5, 0x887E, 0xF4C0, - 0x887F, 0xF1C6, 0x8880, 0xD082, 0x8881, 0xD4AC, 0x8882, 0xF1C7, - 0x8883, 0xD083, 0x8884, 0xB0C0, 0x8885, 0xF4C1, 0x8886, 0xD084, - 0x8887, 0xD085, 0x8888, 0xF4C2, 0x8889, 0xD086, 0x888A, 0xD087, - 0x888B, 0xB4FC, 0x888C, 0xD088, 0x888D, 0xC5DB, 0x888E, 0xD089, - 0x888F, 0xD08A, 0x8890, 0xD08B, 0x8891, 0xD08C, 0x8892, 0xCCBB, - 0x8893, 0xD08D, 0x8894, 0xD08E, 0x8895, 0xD08F, 0x8896, 0xD0E4, - 0x8897, 0xD090, 0x8898, 0xD091, 0x8899, 0xD092, 0x889A, 0xD093, - 0x889B, 0xD094, 0x889C, 0xCDE0, 0x889D, 0xD095, 0x889E, 0xD096, - 0x889F, 0xD097, 0x88A0, 0xD098, 0x88A1, 0xD099, 0x88A2, 0xF1C8, - 0x88A3, 0xD09A, 0x88A4, 0xD9F3, 0x88A5, 0xD09B, 0x88A6, 0xD09C, - 0x88A7, 0xD09D, 0x88A8, 0xD09E, 0x88A9, 0xD09F, 0x88AA, 0xD0A0, - 0x88AB, 0xB1BB, 0x88AC, 0xD140, 0x88AD, 0xCFAE, 0x88AE, 0xD141, - 0x88AF, 0xD142, 0x88B0, 0xD143, 0x88B1, 0xB8A4, 0x88B2, 0xD144, - 0x88B3, 0xD145, 0x88B4, 0xD146, 0x88B5, 0xD147, 0x88B6, 0xD148, - 0x88B7, 0xF1CA, 0x88B8, 0xD149, 0x88B9, 0xD14A, 0x88BA, 0xD14B, - 0x88BB, 0xD14C, 0x88BC, 0xF1CB, 0x88BD, 0xD14D, 0x88BE, 0xD14E, - 0x88BF, 0xD14F, 0x88C0, 0xD150, 0x88C1, 0xB2C3, 0x88C2, 0xC1D1, - 0x88C3, 0xD151, 0x88C4, 0xD152, 0x88C5, 0xD7B0, 0x88C6, 0xF1C9, - 0x88C7, 0xD153, 0x88C8, 0xD154, 0x88C9, 0xF1CC, 0x88CA, 0xD155, - 0x88CB, 0xD156, 0x88CC, 0xD157, 0x88CD, 0xD158, 0x88CE, 0xF1CE, - 0x88CF, 0xD159, 0x88D0, 0xD15A, 0x88D1, 0xD15B, 0x88D2, 0xD9F6, - 0x88D3, 0xD15C, 0x88D4, 0xD2E1, 0x88D5, 0xD4A3, 0x88D6, 0xD15D, - 0x88D7, 0xD15E, 0x88D8, 0xF4C3, 0x88D9, 0xC8B9, 0x88DA, 0xD15F, - 0x88DB, 0xD160, 0x88DC, 0xD161, 0x88DD, 0xD162, 0x88DE, 0xD163, - 0x88DF, 0xF4C4, 0x88E0, 0xD164, 0x88E1, 0xD165, 0x88E2, 0xF1CD, - 0x88E3, 0xF1CF, 0x88E4, 0xBFE3, 0x88E5, 0xF1D0, 0x88E6, 0xD166, - 0x88E7, 0xD167, 0x88E8, 0xF1D4, 0x88E9, 0xD168, 0x88EA, 0xD169, - 0x88EB, 0xD16A, 0x88EC, 0xD16B, 0x88ED, 0xD16C, 0x88EE, 0xD16D, - 0x88EF, 0xD16E, 0x88F0, 0xF1D6, 0x88F1, 0xF1D1, 0x88F2, 0xD16F, - 0x88F3, 0xC9D1, 0x88F4, 0xC5E1, 0x88F5, 0xD170, 0x88F6, 0xD171, - 0x88F7, 0xD172, 0x88F8, 0xC2E3, 0x88F9, 0xB9FC, 0x88FA, 0xD173, - 0x88FB, 0xD174, 0x88FC, 0xF1D3, 0x88FD, 0xD175, 0x88FE, 0xF1D5, - 0x88FF, 0xD176, 0x8900, 0xD177, 0x8901, 0xD178, 0x8902, 0xB9D3, - 0x8903, 0xD179, 0x8904, 0xD17A, 0x8905, 0xD17B, 0x8906, 0xD17C, - 0x8907, 0xD17D, 0x8908, 0xD17E, 0x8909, 0xD180, 0x890A, 0xF1DB, - 0x890B, 0xD181, 0x890C, 0xD182, 0x890D, 0xD183, 0x890E, 0xD184, - 0x890F, 0xD185, 0x8910, 0xBAD6, 0x8911, 0xD186, 0x8912, 0xB0FD, - 0x8913, 0xF1D9, 0x8914, 0xD187, 0x8915, 0xD188, 0x8916, 0xD189, - 0x8917, 0xD18A, 0x8918, 0xD18B, 0x8919, 0xF1D8, 0x891A, 0xF1D2, - 0x891B, 0xF1DA, 0x891C, 0xD18C, 0x891D, 0xD18D, 0x891E, 0xD18E, - 0x891F, 0xD18F, 0x8920, 0xD190, 0x8921, 0xF1D7, 0x8922, 0xD191, - 0x8923, 0xD192, 0x8924, 0xD193, 0x8925, 0xC8EC, 0x8926, 0xD194, - 0x8927, 0xD195, 0x8928, 0xD196, 0x8929, 0xD197, 0x892A, 0xCDCA, - 0x892B, 0xF1DD, 0x892C, 0xD198, 0x892D, 0xD199, 0x892E, 0xD19A, - 0x892F, 0xD19B, 0x8930, 0xE5BD, 0x8931, 0xD19C, 0x8932, 0xD19D, - 0x8933, 0xD19E, 0x8934, 0xF1DC, 0x8935, 0xD19F, 0x8936, 0xF1DE, - 0x8937, 0xD1A0, 0x8938, 0xD240, 0x8939, 0xD241, 0x893A, 0xD242, - 0x893B, 0xD243, 0x893C, 0xD244, 0x893D, 0xD245, 0x893E, 0xD246, - 0x893F, 0xD247, 0x8940, 0xD248, 0x8941, 0xF1DF, 0x8942, 0xD249, - 0x8943, 0xD24A, 0x8944, 0xCFE5, 0x8945, 0xD24B, 0x8946, 0xD24C, - 0x8947, 0xD24D, 0x8948, 0xD24E, 0x8949, 0xD24F, 0x894A, 0xD250, - 0x894B, 0xD251, 0x894C, 0xD252, 0x894D, 0xD253, 0x894E, 0xD254, - 0x894F, 0xD255, 0x8950, 0xD256, 0x8951, 0xD257, 0x8952, 0xD258, - 0x8953, 0xD259, 0x8954, 0xD25A, 0x8955, 0xD25B, 0x8956, 0xD25C, - 0x8957, 0xD25D, 0x8958, 0xD25E, 0x8959, 0xD25F, 0x895A, 0xD260, - 0x895B, 0xD261, 0x895C, 0xD262, 0x895D, 0xD263, 0x895E, 0xF4C5, - 0x895F, 0xBDF3, 0x8960, 0xD264, 0x8961, 0xD265, 0x8962, 0xD266, - 0x8963, 0xD267, 0x8964, 0xD268, 0x8965, 0xD269, 0x8966, 0xF1E0, - 0x8967, 0xD26A, 0x8968, 0xD26B, 0x8969, 0xD26C, 0x896A, 0xD26D, - 0x896B, 0xD26E, 0x896C, 0xD26F, 0x896D, 0xD270, 0x896E, 0xD271, - 0x896F, 0xD272, 0x8970, 0xD273, 0x8971, 0xD274, 0x8972, 0xD275, - 0x8973, 0xD276, 0x8974, 0xD277, 0x8975, 0xD278, 0x8976, 0xD279, - 0x8977, 0xD27A, 0x8978, 0xD27B, 0x8979, 0xD27C, 0x897A, 0xD27D, - 0x897B, 0xF1E1, 0x897C, 0xD27E, 0x897D, 0xD280, 0x897E, 0xD281, - 0x897F, 0xCEF7, 0x8980, 0xD282, 0x8981, 0xD2AA, 0x8982, 0xD283, - 0x8983, 0xF1FB, 0x8984, 0xD284, 0x8985, 0xD285, 0x8986, 0xB8B2, - 0x8987, 0xD286, 0x8988, 0xD287, 0x8989, 0xD288, 0x898A, 0xD289, - 0x898B, 0xD28A, 0x898C, 0xD28B, 0x898D, 0xD28C, 0x898E, 0xD28D, - 0x898F, 0xD28E, 0x8990, 0xD28F, 0x8991, 0xD290, 0x8992, 0xD291, - 0x8993, 0xD292, 0x8994, 0xD293, 0x8995, 0xD294, 0x8996, 0xD295, - 0x8997, 0xD296, 0x8998, 0xD297, 0x8999, 0xD298, 0x899A, 0xD299, - 0x899B, 0xD29A, 0x899C, 0xD29B, 0x899D, 0xD29C, 0x899E, 0xD29D, - 0x899F, 0xD29E, 0x89A0, 0xD29F, 0x89A1, 0xD2A0, 0x89A2, 0xD340, - 0x89A3, 0xD341, 0x89A4, 0xD342, 0x89A5, 0xD343, 0x89A6, 0xD344, - 0x89A7, 0xD345, 0x89A8, 0xD346, 0x89A9, 0xD347, 0x89AA, 0xD348, - 0x89AB, 0xD349, 0x89AC, 0xD34A, 0x89AD, 0xD34B, 0x89AE, 0xD34C, - 0x89AF, 0xD34D, 0x89B0, 0xD34E, 0x89B1, 0xD34F, 0x89B2, 0xD350, - 0x89B3, 0xD351, 0x89B4, 0xD352, 0x89B5, 0xD353, 0x89B6, 0xD354, - 0x89B7, 0xD355, 0x89B8, 0xD356, 0x89B9, 0xD357, 0x89BA, 0xD358, - 0x89BB, 0xD359, 0x89BC, 0xD35A, 0x89BD, 0xD35B, 0x89BE, 0xD35C, - 0x89BF, 0xD35D, 0x89C0, 0xD35E, 0x89C1, 0xBCFB, 0x89C2, 0xB9DB, - 0x89C3, 0xD35F, 0x89C4, 0xB9E6, 0x89C5, 0xC3D9, 0x89C6, 0xCAD3, - 0x89C7, 0xEAE8, 0x89C8, 0xC0C0, 0x89C9, 0xBEF5, 0x89CA, 0xEAE9, - 0x89CB, 0xEAEA, 0x89CC, 0xEAEB, 0x89CD, 0xD360, 0x89CE, 0xEAEC, - 0x89CF, 0xEAED, 0x89D0, 0xEAEE, 0x89D1, 0xEAEF, 0x89D2, 0xBDC7, - 0x89D3, 0xD361, 0x89D4, 0xD362, 0x89D5, 0xD363, 0x89D6, 0xF5FB, - 0x89D7, 0xD364, 0x89D8, 0xD365, 0x89D9, 0xD366, 0x89DA, 0xF5FD, - 0x89DB, 0xD367, 0x89DC, 0xF5FE, 0x89DD, 0xD368, 0x89DE, 0xF5FC, - 0x89DF, 0xD369, 0x89E0, 0xD36A, 0x89E1, 0xD36B, 0x89E2, 0xD36C, - 0x89E3, 0xBDE2, 0x89E4, 0xD36D, 0x89E5, 0xF6A1, 0x89E6, 0xB4A5, - 0x89E7, 0xD36E, 0x89E8, 0xD36F, 0x89E9, 0xD370, 0x89EA, 0xD371, - 0x89EB, 0xF6A2, 0x89EC, 0xD372, 0x89ED, 0xD373, 0x89EE, 0xD374, - 0x89EF, 0xF6A3, 0x89F0, 0xD375, 0x89F1, 0xD376, 0x89F2, 0xD377, - 0x89F3, 0xECB2, 0x89F4, 0xD378, 0x89F5, 0xD379, 0x89F6, 0xD37A, - 0x89F7, 0xD37B, 0x89F8, 0xD37C, 0x89F9, 0xD37D, 0x89FA, 0xD37E, - 0x89FB, 0xD380, 0x89FC, 0xD381, 0x89FD, 0xD382, 0x89FE, 0xD383, - 0x89FF, 0xD384, 0x8A00, 0xD1D4, 0x8A01, 0xD385, 0x8A02, 0xD386, - 0x8A03, 0xD387, 0x8A04, 0xD388, 0x8A05, 0xD389, 0x8A06, 0xD38A, - 0x8A07, 0xD9EA, 0x8A08, 0xD38B, 0x8A09, 0xD38C, 0x8A0A, 0xD38D, - 0x8A0B, 0xD38E, 0x8A0C, 0xD38F, 0x8A0D, 0xD390, 0x8A0E, 0xD391, - 0x8A0F, 0xD392, 0x8A10, 0xD393, 0x8A11, 0xD394, 0x8A12, 0xD395, - 0x8A13, 0xD396, 0x8A14, 0xD397, 0x8A15, 0xD398, 0x8A16, 0xD399, - 0x8A17, 0xD39A, 0x8A18, 0xD39B, 0x8A19, 0xD39C, 0x8A1A, 0xD39D, - 0x8A1B, 0xD39E, 0x8A1C, 0xD39F, 0x8A1D, 0xD3A0, 0x8A1E, 0xD440, - 0x8A1F, 0xD441, 0x8A20, 0xD442, 0x8A21, 0xD443, 0x8A22, 0xD444, - 0x8A23, 0xD445, 0x8A24, 0xD446, 0x8A25, 0xD447, 0x8A26, 0xD448, - 0x8A27, 0xD449, 0x8A28, 0xD44A, 0x8A29, 0xD44B, 0x8A2A, 0xD44C, - 0x8A2B, 0xD44D, 0x8A2C, 0xD44E, 0x8A2D, 0xD44F, 0x8A2E, 0xD450, - 0x8A2F, 0xD451, 0x8A30, 0xD452, 0x8A31, 0xD453, 0x8A32, 0xD454, - 0x8A33, 0xD455, 0x8A34, 0xD456, 0x8A35, 0xD457, 0x8A36, 0xD458, - 0x8A37, 0xD459, 0x8A38, 0xD45A, 0x8A39, 0xD45B, 0x8A3A, 0xD45C, - 0x8A3B, 0xD45D, 0x8A3C, 0xD45E, 0x8A3D, 0xD45F, 0x8A3E, 0xF6A4, - 0x8A3F, 0xD460, 0x8A40, 0xD461, 0x8A41, 0xD462, 0x8A42, 0xD463, - 0x8A43, 0xD464, 0x8A44, 0xD465, 0x8A45, 0xD466, 0x8A46, 0xD467, - 0x8A47, 0xD468, 0x8A48, 0xEEBA, 0x8A49, 0xD469, 0x8A4A, 0xD46A, - 0x8A4B, 0xD46B, 0x8A4C, 0xD46C, 0x8A4D, 0xD46D, 0x8A4E, 0xD46E, - 0x8A4F, 0xD46F, 0x8A50, 0xD470, 0x8A51, 0xD471, 0x8A52, 0xD472, - 0x8A53, 0xD473, 0x8A54, 0xD474, 0x8A55, 0xD475, 0x8A56, 0xD476, - 0x8A57, 0xD477, 0x8A58, 0xD478, 0x8A59, 0xD479, 0x8A5A, 0xD47A, - 0x8A5B, 0xD47B, 0x8A5C, 0xD47C, 0x8A5D, 0xD47D, 0x8A5E, 0xD47E, - 0x8A5F, 0xD480, 0x8A60, 0xD481, 0x8A61, 0xD482, 0x8A62, 0xD483, - 0x8A63, 0xD484, 0x8A64, 0xD485, 0x8A65, 0xD486, 0x8A66, 0xD487, - 0x8A67, 0xD488, 0x8A68, 0xD489, 0x8A69, 0xD48A, 0x8A6A, 0xD48B, - 0x8A6B, 0xD48C, 0x8A6C, 0xD48D, 0x8A6D, 0xD48E, 0x8A6E, 0xD48F, - 0x8A6F, 0xD490, 0x8A70, 0xD491, 0x8A71, 0xD492, 0x8A72, 0xD493, - 0x8A73, 0xD494, 0x8A74, 0xD495, 0x8A75, 0xD496, 0x8A76, 0xD497, - 0x8A77, 0xD498, 0x8A78, 0xD499, 0x8A79, 0xD5B2, 0x8A7A, 0xD49A, - 0x8A7B, 0xD49B, 0x8A7C, 0xD49C, 0x8A7D, 0xD49D, 0x8A7E, 0xD49E, - 0x8A7F, 0xD49F, 0x8A80, 0xD4A0, 0x8A81, 0xD540, 0x8A82, 0xD541, - 0x8A83, 0xD542, 0x8A84, 0xD543, 0x8A85, 0xD544, 0x8A86, 0xD545, - 0x8A87, 0xD546, 0x8A88, 0xD547, 0x8A89, 0xD3FE, 0x8A8A, 0xCCDC, - 0x8A8B, 0xD548, 0x8A8C, 0xD549, 0x8A8D, 0xD54A, 0x8A8E, 0xD54B, - 0x8A8F, 0xD54C, 0x8A90, 0xD54D, 0x8A91, 0xD54E, 0x8A92, 0xD54F, - 0x8A93, 0xCAC4, 0x8A94, 0xD550, 0x8A95, 0xD551, 0x8A96, 0xD552, - 0x8A97, 0xD553, 0x8A98, 0xD554, 0x8A99, 0xD555, 0x8A9A, 0xD556, - 0x8A9B, 0xD557, 0x8A9C, 0xD558, 0x8A9D, 0xD559, 0x8A9E, 0xD55A, - 0x8A9F, 0xD55B, 0x8AA0, 0xD55C, 0x8AA1, 0xD55D, 0x8AA2, 0xD55E, - 0x8AA3, 0xD55F, 0x8AA4, 0xD560, 0x8AA5, 0xD561, 0x8AA6, 0xD562, - 0x8AA7, 0xD563, 0x8AA8, 0xD564, 0x8AA9, 0xD565, 0x8AAA, 0xD566, - 0x8AAB, 0xD567, 0x8AAC, 0xD568, 0x8AAD, 0xD569, 0x8AAE, 0xD56A, - 0x8AAF, 0xD56B, 0x8AB0, 0xD56C, 0x8AB1, 0xD56D, 0x8AB2, 0xD56E, - 0x8AB3, 0xD56F, 0x8AB4, 0xD570, 0x8AB5, 0xD571, 0x8AB6, 0xD572, - 0x8AB7, 0xD573, 0x8AB8, 0xD574, 0x8AB9, 0xD575, 0x8ABA, 0xD576, - 0x8ABB, 0xD577, 0x8ABC, 0xD578, 0x8ABD, 0xD579, 0x8ABE, 0xD57A, - 0x8ABF, 0xD57B, 0x8AC0, 0xD57C, 0x8AC1, 0xD57D, 0x8AC2, 0xD57E, - 0x8AC3, 0xD580, 0x8AC4, 0xD581, 0x8AC5, 0xD582, 0x8AC6, 0xD583, - 0x8AC7, 0xD584, 0x8AC8, 0xD585, 0x8AC9, 0xD586, 0x8ACA, 0xD587, - 0x8ACB, 0xD588, 0x8ACC, 0xD589, 0x8ACD, 0xD58A, 0x8ACE, 0xD58B, - 0x8ACF, 0xD58C, 0x8AD0, 0xD58D, 0x8AD1, 0xD58E, 0x8AD2, 0xD58F, - 0x8AD3, 0xD590, 0x8AD4, 0xD591, 0x8AD5, 0xD592, 0x8AD6, 0xD593, - 0x8AD7, 0xD594, 0x8AD8, 0xD595, 0x8AD9, 0xD596, 0x8ADA, 0xD597, - 0x8ADB, 0xD598, 0x8ADC, 0xD599, 0x8ADD, 0xD59A, 0x8ADE, 0xD59B, - 0x8ADF, 0xD59C, 0x8AE0, 0xD59D, 0x8AE1, 0xD59E, 0x8AE2, 0xD59F, - 0x8AE3, 0xD5A0, 0x8AE4, 0xD640, 0x8AE5, 0xD641, 0x8AE6, 0xD642, - 0x8AE7, 0xD643, 0x8AE8, 0xD644, 0x8AE9, 0xD645, 0x8AEA, 0xD646, - 0x8AEB, 0xD647, 0x8AEC, 0xD648, 0x8AED, 0xD649, 0x8AEE, 0xD64A, - 0x8AEF, 0xD64B, 0x8AF0, 0xD64C, 0x8AF1, 0xD64D, 0x8AF2, 0xD64E, - 0x8AF3, 0xD64F, 0x8AF4, 0xD650, 0x8AF5, 0xD651, 0x8AF6, 0xD652, - 0x8AF7, 0xD653, 0x8AF8, 0xD654, 0x8AF9, 0xD655, 0x8AFA, 0xD656, - 0x8AFB, 0xD657, 0x8AFC, 0xD658, 0x8AFD, 0xD659, 0x8AFE, 0xD65A, - 0x8AFF, 0xD65B, 0x8B00, 0xD65C, 0x8B01, 0xD65D, 0x8B02, 0xD65E, - 0x8B03, 0xD65F, 0x8B04, 0xD660, 0x8B05, 0xD661, 0x8B06, 0xD662, - 0x8B07, 0xE5C0, 0x8B08, 0xD663, 0x8B09, 0xD664, 0x8B0A, 0xD665, - 0x8B0B, 0xD666, 0x8B0C, 0xD667, 0x8B0D, 0xD668, 0x8B0E, 0xD669, - 0x8B0F, 0xD66A, 0x8B10, 0xD66B, 0x8B11, 0xD66C, 0x8B12, 0xD66D, - 0x8B13, 0xD66E, 0x8B14, 0xD66F, 0x8B15, 0xD670, 0x8B16, 0xD671, - 0x8B17, 0xD672, 0x8B18, 0xD673, 0x8B19, 0xD674, 0x8B1A, 0xD675, - 0x8B1B, 0xD676, 0x8B1C, 0xD677, 0x8B1D, 0xD678, 0x8B1E, 0xD679, - 0x8B1F, 0xD67A, 0x8B20, 0xD67B, 0x8B21, 0xD67C, 0x8B22, 0xD67D, - 0x8B23, 0xD67E, 0x8B24, 0xD680, 0x8B25, 0xD681, 0x8B26, 0xF6A5, - 0x8B27, 0xD682, 0x8B28, 0xD683, 0x8B29, 0xD684, 0x8B2A, 0xD685, - 0x8B2B, 0xD686, 0x8B2C, 0xD687, 0x8B2D, 0xD688, 0x8B2E, 0xD689, - 0x8B2F, 0xD68A, 0x8B30, 0xD68B, 0x8B31, 0xD68C, 0x8B32, 0xD68D, - 0x8B33, 0xD68E, 0x8B34, 0xD68F, 0x8B35, 0xD690, 0x8B36, 0xD691, - 0x8B37, 0xD692, 0x8B38, 0xD693, 0x8B39, 0xD694, 0x8B3A, 0xD695, - 0x8B3B, 0xD696, 0x8B3C, 0xD697, 0x8B3D, 0xD698, 0x8B3E, 0xD699, - 0x8B3F, 0xD69A, 0x8B40, 0xD69B, 0x8B41, 0xD69C, 0x8B42, 0xD69D, - 0x8B43, 0xD69E, 0x8B44, 0xD69F, 0x8B45, 0xD6A0, 0x8B46, 0xD740, - 0x8B47, 0xD741, 0x8B48, 0xD742, 0x8B49, 0xD743, 0x8B4A, 0xD744, - 0x8B4B, 0xD745, 0x8B4C, 0xD746, 0x8B4D, 0xD747, 0x8B4E, 0xD748, - 0x8B4F, 0xD749, 0x8B50, 0xD74A, 0x8B51, 0xD74B, 0x8B52, 0xD74C, - 0x8B53, 0xD74D, 0x8B54, 0xD74E, 0x8B55, 0xD74F, 0x8B56, 0xD750, - 0x8B57, 0xD751, 0x8B58, 0xD752, 0x8B59, 0xD753, 0x8B5A, 0xD754, - 0x8B5B, 0xD755, 0x8B5C, 0xD756, 0x8B5D, 0xD757, 0x8B5E, 0xD758, - 0x8B5F, 0xD759, 0x8B60, 0xD75A, 0x8B61, 0xD75B, 0x8B62, 0xD75C, - 0x8B63, 0xD75D, 0x8B64, 0xD75E, 0x8B65, 0xD75F, 0x8B66, 0xBEAF, - 0x8B67, 0xD760, 0x8B68, 0xD761, 0x8B69, 0xD762, 0x8B6A, 0xD763, - 0x8B6B, 0xD764, 0x8B6C, 0xC6A9, 0x8B6D, 0xD765, 0x8B6E, 0xD766, - 0x8B6F, 0xD767, 0x8B70, 0xD768, 0x8B71, 0xD769, 0x8B72, 0xD76A, - 0x8B73, 0xD76B, 0x8B74, 0xD76C, 0x8B75, 0xD76D, 0x8B76, 0xD76E, - 0x8B77, 0xD76F, 0x8B78, 0xD770, 0x8B79, 0xD771, 0x8B7A, 0xD772, - 0x8B7B, 0xD773, 0x8B7C, 0xD774, 0x8B7D, 0xD775, 0x8B7E, 0xD776, - 0x8B7F, 0xD777, 0x8B80, 0xD778, 0x8B81, 0xD779, 0x8B82, 0xD77A, - 0x8B83, 0xD77B, 0x8B84, 0xD77C, 0x8B85, 0xD77D, 0x8B86, 0xD77E, - 0x8B87, 0xD780, 0x8B88, 0xD781, 0x8B89, 0xD782, 0x8B8A, 0xD783, - 0x8B8B, 0xD784, 0x8B8C, 0xD785, 0x8B8D, 0xD786, 0x8B8E, 0xD787, - 0x8B8F, 0xD788, 0x8B90, 0xD789, 0x8B91, 0xD78A, 0x8B92, 0xD78B, - 0x8B93, 0xD78C, 0x8B94, 0xD78D, 0x8B95, 0xD78E, 0x8B96, 0xD78F, - 0x8B97, 0xD790, 0x8B98, 0xD791, 0x8B99, 0xD792, 0x8B9A, 0xD793, - 0x8B9B, 0xD794, 0x8B9C, 0xD795, 0x8B9D, 0xD796, 0x8B9E, 0xD797, - 0x8B9F, 0xD798, 0x8BA0, 0xDAA5, 0x8BA1, 0xBCC6, 0x8BA2, 0xB6A9, - 0x8BA3, 0xB8BC, 0x8BA4, 0xC8CF, 0x8BA5, 0xBCA5, 0x8BA6, 0xDAA6, - 0x8BA7, 0xDAA7, 0x8BA8, 0xCCD6, 0x8BA9, 0xC8C3, 0x8BAA, 0xDAA8, - 0x8BAB, 0xC6FD, 0x8BAC, 0xD799, 0x8BAD, 0xD1B5, 0x8BAE, 0xD2E9, - 0x8BAF, 0xD1B6, 0x8BB0, 0xBCC7, 0x8BB1, 0xD79A, 0x8BB2, 0xBDB2, - 0x8BB3, 0xBBE4, 0x8BB4, 0xDAA9, 0x8BB5, 0xDAAA, 0x8BB6, 0xD1C8, - 0x8BB7, 0xDAAB, 0x8BB8, 0xD0ED, 0x8BB9, 0xB6EF, 0x8BBA, 0xC2DB, - 0x8BBB, 0xD79B, 0x8BBC, 0xCBCF, 0x8BBD, 0xB7ED, 0x8BBE, 0xC9E8, - 0x8BBF, 0xB7C3, 0x8BC0, 0xBEF7, 0x8BC1, 0xD6A4, 0x8BC2, 0xDAAC, - 0x8BC3, 0xDAAD, 0x8BC4, 0xC6C0, 0x8BC5, 0xD7E7, 0x8BC6, 0xCAB6, - 0x8BC7, 0xD79C, 0x8BC8, 0xD5A9, 0x8BC9, 0xCBDF, 0x8BCA, 0xD5EF, - 0x8BCB, 0xDAAE, 0x8BCC, 0xD6DF, 0x8BCD, 0xB4CA, 0x8BCE, 0xDAB0, - 0x8BCF, 0xDAAF, 0x8BD0, 0xD79D, 0x8BD1, 0xD2EB, 0x8BD2, 0xDAB1, - 0x8BD3, 0xDAB2, 0x8BD4, 0xDAB3, 0x8BD5, 0xCAD4, 0x8BD6, 0xDAB4, - 0x8BD7, 0xCAAB, 0x8BD8, 0xDAB5, 0x8BD9, 0xDAB6, 0x8BDA, 0xB3CF, - 0x8BDB, 0xD6EF, 0x8BDC, 0xDAB7, 0x8BDD, 0xBBB0, 0x8BDE, 0xB5AE, - 0x8BDF, 0xDAB8, 0x8BE0, 0xDAB9, 0x8BE1, 0xB9EE, 0x8BE2, 0xD1AF, - 0x8BE3, 0xD2E8, 0x8BE4, 0xDABA, 0x8BE5, 0xB8C3, 0x8BE6, 0xCFEA, - 0x8BE7, 0xB2EF, 0x8BE8, 0xDABB, 0x8BE9, 0xDABC, 0x8BEA, 0xD79E, - 0x8BEB, 0xBDEB, 0x8BEC, 0xCEDC, 0x8BED, 0xD3EF, 0x8BEE, 0xDABD, - 0x8BEF, 0xCEF3, 0x8BF0, 0xDABE, 0x8BF1, 0xD3D5, 0x8BF2, 0xBBE5, - 0x8BF3, 0xDABF, 0x8BF4, 0xCBB5, 0x8BF5, 0xCBD0, 0x8BF6, 0xDAC0, - 0x8BF7, 0xC7EB, 0x8BF8, 0xD6EE, 0x8BF9, 0xDAC1, 0x8BFA, 0xC5B5, - 0x8BFB, 0xB6C1, 0x8BFC, 0xDAC2, 0x8BFD, 0xB7CC, 0x8BFE, 0xBFCE, - 0x8BFF, 0xDAC3, 0x8C00, 0xDAC4, 0x8C01, 0xCBAD, 0x8C02, 0xDAC5, - 0x8C03, 0xB5F7, 0x8C04, 0xDAC6, 0x8C05, 0xC1C2, 0x8C06, 0xD7BB, - 0x8C07, 0xDAC7, 0x8C08, 0xCCB8, 0x8C09, 0xD79F, 0x8C0A, 0xD2EA, - 0x8C0B, 0xC4B1, 0x8C0C, 0xDAC8, 0x8C0D, 0xB5FD, 0x8C0E, 0xBBD1, - 0x8C0F, 0xDAC9, 0x8C10, 0xD0B3, 0x8C11, 0xDACA, 0x8C12, 0xDACB, - 0x8C13, 0xCEBD, 0x8C14, 0xDACC, 0x8C15, 0xDACD, 0x8C16, 0xDACE, - 0x8C17, 0xB2F7, 0x8C18, 0xDAD1, 0x8C19, 0xDACF, 0x8C1A, 0xD1E8, - 0x8C1B, 0xDAD0, 0x8C1C, 0xC3D5, 0x8C1D, 0xDAD2, 0x8C1E, 0xD7A0, - 0x8C1F, 0xDAD3, 0x8C20, 0xDAD4, 0x8C21, 0xDAD5, 0x8C22, 0xD0BB, - 0x8C23, 0xD2A5, 0x8C24, 0xB0F9, 0x8C25, 0xDAD6, 0x8C26, 0xC7AB, - 0x8C27, 0xDAD7, 0x8C28, 0xBDF7, 0x8C29, 0xC3A1, 0x8C2A, 0xDAD8, - 0x8C2B, 0xDAD9, 0x8C2C, 0xC3FD, 0x8C2D, 0xCCB7, 0x8C2E, 0xDADA, - 0x8C2F, 0xDADB, 0x8C30, 0xC0BE, 0x8C31, 0xC6D7, 0x8C32, 0xDADC, - 0x8C33, 0xDADD, 0x8C34, 0xC7B4, 0x8C35, 0xDADE, 0x8C36, 0xDADF, - 0x8C37, 0xB9C8, 0x8C38, 0xD840, 0x8C39, 0xD841, 0x8C3A, 0xD842, - 0x8C3B, 0xD843, 0x8C3C, 0xD844, 0x8C3D, 0xD845, 0x8C3E, 0xD846, - 0x8C3F, 0xD847, 0x8C40, 0xD848, 0x8C41, 0xBBED, 0x8C42, 0xD849, - 0x8C43, 0xD84A, 0x8C44, 0xD84B, 0x8C45, 0xD84C, 0x8C46, 0xB6B9, - 0x8C47, 0xF4F8, 0x8C48, 0xD84D, 0x8C49, 0xF4F9, 0x8C4A, 0xD84E, - 0x8C4B, 0xD84F, 0x8C4C, 0xCDE3, 0x8C4D, 0xD850, 0x8C4E, 0xD851, - 0x8C4F, 0xD852, 0x8C50, 0xD853, 0x8C51, 0xD854, 0x8C52, 0xD855, - 0x8C53, 0xD856, 0x8C54, 0xD857, 0x8C55, 0xF5B9, 0x8C56, 0xD858, - 0x8C57, 0xD859, 0x8C58, 0xD85A, 0x8C59, 0xD85B, 0x8C5A, 0xEBE0, - 0x8C5B, 0xD85C, 0x8C5C, 0xD85D, 0x8C5D, 0xD85E, 0x8C5E, 0xD85F, - 0x8C5F, 0xD860, 0x8C60, 0xD861, 0x8C61, 0xCFF3, 0x8C62, 0xBBBF, - 0x8C63, 0xD862, 0x8C64, 0xD863, 0x8C65, 0xD864, 0x8C66, 0xD865, - 0x8C67, 0xD866, 0x8C68, 0xD867, 0x8C69, 0xD868, 0x8C6A, 0xBAC0, - 0x8C6B, 0xD4A5, 0x8C6C, 0xD869, 0x8C6D, 0xD86A, 0x8C6E, 0xD86B, - 0x8C6F, 0xD86C, 0x8C70, 0xD86D, 0x8C71, 0xD86E, 0x8C72, 0xD86F, - 0x8C73, 0xE1D9, 0x8C74, 0xD870, 0x8C75, 0xD871, 0x8C76, 0xD872, - 0x8C77, 0xD873, 0x8C78, 0xF5F4, 0x8C79, 0xB1AA, 0x8C7A, 0xB2F2, - 0x8C7B, 0xD874, 0x8C7C, 0xD875, 0x8C7D, 0xD876, 0x8C7E, 0xD877, - 0x8C7F, 0xD878, 0x8C80, 0xD879, 0x8C81, 0xD87A, 0x8C82, 0xF5F5, - 0x8C83, 0xD87B, 0x8C84, 0xD87C, 0x8C85, 0xF5F7, 0x8C86, 0xD87D, - 0x8C87, 0xD87E, 0x8C88, 0xD880, 0x8C89, 0xBAD1, 0x8C8A, 0xF5F6, - 0x8C8B, 0xD881, 0x8C8C, 0xC3B2, 0x8C8D, 0xD882, 0x8C8E, 0xD883, - 0x8C8F, 0xD884, 0x8C90, 0xD885, 0x8C91, 0xD886, 0x8C92, 0xD887, - 0x8C93, 0xD888, 0x8C94, 0xF5F9, 0x8C95, 0xD889, 0x8C96, 0xD88A, - 0x8C97, 0xD88B, 0x8C98, 0xF5F8, 0x8C99, 0xD88C, 0x8C9A, 0xD88D, - 0x8C9B, 0xD88E, 0x8C9C, 0xD88F, 0x8C9D, 0xD890, 0x8C9E, 0xD891, - 0x8C9F, 0xD892, 0x8CA0, 0xD893, 0x8CA1, 0xD894, 0x8CA2, 0xD895, - 0x8CA3, 0xD896, 0x8CA4, 0xD897, 0x8CA5, 0xD898, 0x8CA6, 0xD899, - 0x8CA7, 0xD89A, 0x8CA8, 0xD89B, 0x8CA9, 0xD89C, 0x8CAA, 0xD89D, - 0x8CAB, 0xD89E, 0x8CAC, 0xD89F, 0x8CAD, 0xD8A0, 0x8CAE, 0xD940, - 0x8CAF, 0xD941, 0x8CB0, 0xD942, 0x8CB1, 0xD943, 0x8CB2, 0xD944, - 0x8CB3, 0xD945, 0x8CB4, 0xD946, 0x8CB5, 0xD947, 0x8CB6, 0xD948, - 0x8CB7, 0xD949, 0x8CB8, 0xD94A, 0x8CB9, 0xD94B, 0x8CBA, 0xD94C, - 0x8CBB, 0xD94D, 0x8CBC, 0xD94E, 0x8CBD, 0xD94F, 0x8CBE, 0xD950, - 0x8CBF, 0xD951, 0x8CC0, 0xD952, 0x8CC1, 0xD953, 0x8CC2, 0xD954, - 0x8CC3, 0xD955, 0x8CC4, 0xD956, 0x8CC5, 0xD957, 0x8CC6, 0xD958, - 0x8CC7, 0xD959, 0x8CC8, 0xD95A, 0x8CC9, 0xD95B, 0x8CCA, 0xD95C, - 0x8CCB, 0xD95D, 0x8CCC, 0xD95E, 0x8CCD, 0xD95F, 0x8CCE, 0xD960, - 0x8CCF, 0xD961, 0x8CD0, 0xD962, 0x8CD1, 0xD963, 0x8CD2, 0xD964, - 0x8CD3, 0xD965, 0x8CD4, 0xD966, 0x8CD5, 0xD967, 0x8CD6, 0xD968, - 0x8CD7, 0xD969, 0x8CD8, 0xD96A, 0x8CD9, 0xD96B, 0x8CDA, 0xD96C, - 0x8CDB, 0xD96D, 0x8CDC, 0xD96E, 0x8CDD, 0xD96F, 0x8CDE, 0xD970, - 0x8CDF, 0xD971, 0x8CE0, 0xD972, 0x8CE1, 0xD973, 0x8CE2, 0xD974, - 0x8CE3, 0xD975, 0x8CE4, 0xD976, 0x8CE5, 0xD977, 0x8CE6, 0xD978, - 0x8CE7, 0xD979, 0x8CE8, 0xD97A, 0x8CE9, 0xD97B, 0x8CEA, 0xD97C, - 0x8CEB, 0xD97D, 0x8CEC, 0xD97E, 0x8CED, 0xD980, 0x8CEE, 0xD981, - 0x8CEF, 0xD982, 0x8CF0, 0xD983, 0x8CF1, 0xD984, 0x8CF2, 0xD985, - 0x8CF3, 0xD986, 0x8CF4, 0xD987, 0x8CF5, 0xD988, 0x8CF6, 0xD989, - 0x8CF7, 0xD98A, 0x8CF8, 0xD98B, 0x8CF9, 0xD98C, 0x8CFA, 0xD98D, - 0x8CFB, 0xD98E, 0x8CFC, 0xD98F, 0x8CFD, 0xD990, 0x8CFE, 0xD991, - 0x8CFF, 0xD992, 0x8D00, 0xD993, 0x8D01, 0xD994, 0x8D02, 0xD995, - 0x8D03, 0xD996, 0x8D04, 0xD997, 0x8D05, 0xD998, 0x8D06, 0xD999, - 0x8D07, 0xD99A, 0x8D08, 0xD99B, 0x8D09, 0xD99C, 0x8D0A, 0xD99D, - 0x8D0B, 0xD99E, 0x8D0C, 0xD99F, 0x8D0D, 0xD9A0, 0x8D0E, 0xDA40, - 0x8D0F, 0xDA41, 0x8D10, 0xDA42, 0x8D11, 0xDA43, 0x8D12, 0xDA44, - 0x8D13, 0xDA45, 0x8D14, 0xDA46, 0x8D15, 0xDA47, 0x8D16, 0xDA48, - 0x8D17, 0xDA49, 0x8D18, 0xDA4A, 0x8D19, 0xDA4B, 0x8D1A, 0xDA4C, - 0x8D1B, 0xDA4D, 0x8D1C, 0xDA4E, 0x8D1D, 0xB1B4, 0x8D1E, 0xD5EA, - 0x8D1F, 0xB8BA, 0x8D20, 0xDA4F, 0x8D21, 0xB9B1, 0x8D22, 0xB2C6, - 0x8D23, 0xD4F0, 0x8D24, 0xCFCD, 0x8D25, 0xB0DC, 0x8D26, 0xD5CB, - 0x8D27, 0xBBF5, 0x8D28, 0xD6CA, 0x8D29, 0xB7B7, 0x8D2A, 0xCCB0, - 0x8D2B, 0xC6B6, 0x8D2C, 0xB1E1, 0x8D2D, 0xB9BA, 0x8D2E, 0xD6FC, - 0x8D2F, 0xB9E1, 0x8D30, 0xB7A1, 0x8D31, 0xBCFA, 0x8D32, 0xEADA, - 0x8D33, 0xEADB, 0x8D34, 0xCCF9, 0x8D35, 0xB9F3, 0x8D36, 0xEADC, - 0x8D37, 0xB4FB, 0x8D38, 0xC3B3, 0x8D39, 0xB7D1, 0x8D3A, 0xBAD8, - 0x8D3B, 0xEADD, 0x8D3C, 0xD4F4, 0x8D3D, 0xEADE, 0x8D3E, 0xBCD6, - 0x8D3F, 0xBBDF, 0x8D40, 0xEADF, 0x8D41, 0xC1DE, 0x8D42, 0xC2B8, - 0x8D43, 0xD4DF, 0x8D44, 0xD7CA, 0x8D45, 0xEAE0, 0x8D46, 0xEAE1, - 0x8D47, 0xEAE4, 0x8D48, 0xEAE2, 0x8D49, 0xEAE3, 0x8D4A, 0xC9DE, - 0x8D4B, 0xB8B3, 0x8D4C, 0xB6C4, 0x8D4D, 0xEAE5, 0x8D4E, 0xCAEA, - 0x8D4F, 0xC9CD, 0x8D50, 0xB4CD, 0x8D51, 0xDA50, 0x8D52, 0xDA51, - 0x8D53, 0xE2D9, 0x8D54, 0xC5E2, 0x8D55, 0xEAE6, 0x8D56, 0xC0B5, - 0x8D57, 0xDA52, 0x8D58, 0xD7B8, 0x8D59, 0xEAE7, 0x8D5A, 0xD7AC, - 0x8D5B, 0xC8FC, 0x8D5C, 0xD8D3, 0x8D5D, 0xD8CD, 0x8D5E, 0xD4DE, - 0x8D5F, 0xDA53, 0x8D60, 0xD4F9, 0x8D61, 0xC9C4, 0x8D62, 0xD3AE, - 0x8D63, 0xB8D3, 0x8D64, 0xB3E0, 0x8D65, 0xDA54, 0x8D66, 0xC9E2, - 0x8D67, 0xF4F6, 0x8D68, 0xDA55, 0x8D69, 0xDA56, 0x8D6A, 0xDA57, - 0x8D6B, 0xBAD5, 0x8D6C, 0xDA58, 0x8D6D, 0xF4F7, 0x8D6E, 0xDA59, - 0x8D6F, 0xDA5A, 0x8D70, 0xD7DF, 0x8D71, 0xDA5B, 0x8D72, 0xDA5C, - 0x8D73, 0xF4F1, 0x8D74, 0xB8B0, 0x8D75, 0xD5D4, 0x8D76, 0xB8CF, - 0x8D77, 0xC6F0, 0x8D78, 0xDA5D, 0x8D79, 0xDA5E, 0x8D7A, 0xDA5F, - 0x8D7B, 0xDA60, 0x8D7C, 0xDA61, 0x8D7D, 0xDA62, 0x8D7E, 0xDA63, - 0x8D7F, 0xDA64, 0x8D80, 0xDA65, 0x8D81, 0xB3C3, 0x8D82, 0xDA66, - 0x8D83, 0xDA67, 0x8D84, 0xF4F2, 0x8D85, 0xB3AC, 0x8D86, 0xDA68, - 0x8D87, 0xDA69, 0x8D88, 0xDA6A, 0x8D89, 0xDA6B, 0x8D8A, 0xD4BD, - 0x8D8B, 0xC7F7, 0x8D8C, 0xDA6C, 0x8D8D, 0xDA6D, 0x8D8E, 0xDA6E, - 0x8D8F, 0xDA6F, 0x8D90, 0xDA70, 0x8D91, 0xF4F4, 0x8D92, 0xDA71, - 0x8D93, 0xDA72, 0x8D94, 0xF4F3, 0x8D95, 0xDA73, 0x8D96, 0xDA74, - 0x8D97, 0xDA75, 0x8D98, 0xDA76, 0x8D99, 0xDA77, 0x8D9A, 0xDA78, - 0x8D9B, 0xDA79, 0x8D9C, 0xDA7A, 0x8D9D, 0xDA7B, 0x8D9E, 0xDA7C, - 0x8D9F, 0xCCCB, 0x8DA0, 0xDA7D, 0x8DA1, 0xDA7E, 0x8DA2, 0xDA80, - 0x8DA3, 0xC8A4, 0x8DA4, 0xDA81, 0x8DA5, 0xDA82, 0x8DA6, 0xDA83, - 0x8DA7, 0xDA84, 0x8DA8, 0xDA85, 0x8DA9, 0xDA86, 0x8DAA, 0xDA87, - 0x8DAB, 0xDA88, 0x8DAC, 0xDA89, 0x8DAD, 0xDA8A, 0x8DAE, 0xDA8B, - 0x8DAF, 0xDA8C, 0x8DB0, 0xDA8D, 0x8DB1, 0xF4F5, 0x8DB2, 0xDA8E, - 0x8DB3, 0xD7E3, 0x8DB4, 0xC5BF, 0x8DB5, 0xF5C0, 0x8DB6, 0xDA8F, - 0x8DB7, 0xDA90, 0x8DB8, 0xF5BB, 0x8DB9, 0xDA91, 0x8DBA, 0xF5C3, - 0x8DBB, 0xDA92, 0x8DBC, 0xF5C2, 0x8DBD, 0xDA93, 0x8DBE, 0xD6BA, - 0x8DBF, 0xF5C1, 0x8DC0, 0xDA94, 0x8DC1, 0xDA95, 0x8DC2, 0xDA96, - 0x8DC3, 0xD4BE, 0x8DC4, 0xF5C4, 0x8DC5, 0xDA97, 0x8DC6, 0xF5CC, - 0x8DC7, 0xDA98, 0x8DC8, 0xDA99, 0x8DC9, 0xDA9A, 0x8DCA, 0xDA9B, - 0x8DCB, 0xB0CF, 0x8DCC, 0xB5F8, 0x8DCD, 0xDA9C, 0x8DCE, 0xF5C9, - 0x8DCF, 0xF5CA, 0x8DD0, 0xDA9D, 0x8DD1, 0xC5DC, 0x8DD2, 0xDA9E, - 0x8DD3, 0xDA9F, 0x8DD4, 0xDAA0, 0x8DD5, 0xDB40, 0x8DD6, 0xF5C5, - 0x8DD7, 0xF5C6, 0x8DD8, 0xDB41, 0x8DD9, 0xDB42, 0x8DDA, 0xF5C7, - 0x8DDB, 0xF5CB, 0x8DDC, 0xDB43, 0x8DDD, 0xBEE0, 0x8DDE, 0xF5C8, - 0x8DDF, 0xB8FA, 0x8DE0, 0xDB44, 0x8DE1, 0xDB45, 0x8DE2, 0xDB46, - 0x8DE3, 0xF5D0, 0x8DE4, 0xF5D3, 0x8DE5, 0xDB47, 0x8DE6, 0xDB48, - 0x8DE7, 0xDB49, 0x8DE8, 0xBFE7, 0x8DE9, 0xDB4A, 0x8DEA, 0xB9F2, - 0x8DEB, 0xF5BC, 0x8DEC, 0xF5CD, 0x8DED, 0xDB4B, 0x8DEE, 0xDB4C, - 0x8DEF, 0xC2B7, 0x8DF0, 0xDB4D, 0x8DF1, 0xDB4E, 0x8DF2, 0xDB4F, - 0x8DF3, 0xCCF8, 0x8DF4, 0xDB50, 0x8DF5, 0xBCF9, 0x8DF6, 0xDB51, - 0x8DF7, 0xF5CE, 0x8DF8, 0xF5CF, 0x8DF9, 0xF5D1, 0x8DFA, 0xB6E5, - 0x8DFB, 0xF5D2, 0x8DFC, 0xDB52, 0x8DFD, 0xF5D5, 0x8DFE, 0xDB53, - 0x8DFF, 0xDB54, 0x8E00, 0xDB55, 0x8E01, 0xDB56, 0x8E02, 0xDB57, - 0x8E03, 0xDB58, 0x8E04, 0xDB59, 0x8E05, 0xF5BD, 0x8E06, 0xDB5A, - 0x8E07, 0xDB5B, 0x8E08, 0xDB5C, 0x8E09, 0xF5D4, 0x8E0A, 0xD3BB, - 0x8E0B, 0xDB5D, 0x8E0C, 0xB3EC, 0x8E0D, 0xDB5E, 0x8E0E, 0xDB5F, - 0x8E0F, 0xCCA4, 0x8E10, 0xDB60, 0x8E11, 0xDB61, 0x8E12, 0xDB62, - 0x8E13, 0xDB63, 0x8E14, 0xF5D6, 0x8E15, 0xDB64, 0x8E16, 0xDB65, - 0x8E17, 0xDB66, 0x8E18, 0xDB67, 0x8E19, 0xDB68, 0x8E1A, 0xDB69, - 0x8E1B, 0xDB6A, 0x8E1C, 0xDB6B, 0x8E1D, 0xF5D7, 0x8E1E, 0xBEE1, - 0x8E1F, 0xF5D8, 0x8E20, 0xDB6C, 0x8E21, 0xDB6D, 0x8E22, 0xCCDF, - 0x8E23, 0xF5DB, 0x8E24, 0xDB6E, 0x8E25, 0xDB6F, 0x8E26, 0xDB70, - 0x8E27, 0xDB71, 0x8E28, 0xDB72, 0x8E29, 0xB2C8, 0x8E2A, 0xD7D9, - 0x8E2B, 0xDB73, 0x8E2C, 0xF5D9, 0x8E2D, 0xDB74, 0x8E2E, 0xF5DA, - 0x8E2F, 0xF5DC, 0x8E30, 0xDB75, 0x8E31, 0xF5E2, 0x8E32, 0xDB76, - 0x8E33, 0xDB77, 0x8E34, 0xDB78, 0x8E35, 0xF5E0, 0x8E36, 0xDB79, - 0x8E37, 0xDB7A, 0x8E38, 0xDB7B, 0x8E39, 0xF5DF, 0x8E3A, 0xF5DD, - 0x8E3B, 0xDB7C, 0x8E3C, 0xDB7D, 0x8E3D, 0xF5E1, 0x8E3E, 0xDB7E, - 0x8E3F, 0xDB80, 0x8E40, 0xF5DE, 0x8E41, 0xF5E4, 0x8E42, 0xF5E5, - 0x8E43, 0xDB81, 0x8E44, 0xCCE3, 0x8E45, 0xDB82, 0x8E46, 0xDB83, - 0x8E47, 0xE5BF, 0x8E48, 0xB5B8, 0x8E49, 0xF5E3, 0x8E4A, 0xF5E8, - 0x8E4B, 0xCCA3, 0x8E4C, 0xDB84, 0x8E4D, 0xDB85, 0x8E4E, 0xDB86, - 0x8E4F, 0xDB87, 0x8E50, 0xDB88, 0x8E51, 0xF5E6, 0x8E52, 0xF5E7, - 0x8E53, 0xDB89, 0x8E54, 0xDB8A, 0x8E55, 0xDB8B, 0x8E56, 0xDB8C, - 0x8E57, 0xDB8D, 0x8E58, 0xDB8E, 0x8E59, 0xF5BE, 0x8E5A, 0xDB8F, - 0x8E5B, 0xDB90, 0x8E5C, 0xDB91, 0x8E5D, 0xDB92, 0x8E5E, 0xDB93, - 0x8E5F, 0xDB94, 0x8E60, 0xDB95, 0x8E61, 0xDB96, 0x8E62, 0xDB97, - 0x8E63, 0xDB98, 0x8E64, 0xDB99, 0x8E65, 0xDB9A, 0x8E66, 0xB1C4, - 0x8E67, 0xDB9B, 0x8E68, 0xDB9C, 0x8E69, 0xF5BF, 0x8E6A, 0xDB9D, - 0x8E6B, 0xDB9E, 0x8E6C, 0xB5C5, 0x8E6D, 0xB2E4, 0x8E6E, 0xDB9F, - 0x8E6F, 0xF5EC, 0x8E70, 0xF5E9, 0x8E71, 0xDBA0, 0x8E72, 0xB6D7, - 0x8E73, 0xDC40, 0x8E74, 0xF5ED, 0x8E75, 0xDC41, 0x8E76, 0xF5EA, - 0x8E77, 0xDC42, 0x8E78, 0xDC43, 0x8E79, 0xDC44, 0x8E7A, 0xDC45, - 0x8E7B, 0xDC46, 0x8E7C, 0xF5EB, 0x8E7D, 0xDC47, 0x8E7E, 0xDC48, - 0x8E7F, 0xB4DA, 0x8E80, 0xDC49, 0x8E81, 0xD4EA, 0x8E82, 0xDC4A, - 0x8E83, 0xDC4B, 0x8E84, 0xDC4C, 0x8E85, 0xF5EE, 0x8E86, 0xDC4D, - 0x8E87, 0xB3F9, 0x8E88, 0xDC4E, 0x8E89, 0xDC4F, 0x8E8A, 0xDC50, - 0x8E8B, 0xDC51, 0x8E8C, 0xDC52, 0x8E8D, 0xDC53, 0x8E8E, 0xDC54, - 0x8E8F, 0xF5EF, 0x8E90, 0xF5F1, 0x8E91, 0xDC55, 0x8E92, 0xDC56, - 0x8E93, 0xDC57, 0x8E94, 0xF5F0, 0x8E95, 0xDC58, 0x8E96, 0xDC59, - 0x8E97, 0xDC5A, 0x8E98, 0xDC5B, 0x8E99, 0xDC5C, 0x8E9A, 0xDC5D, - 0x8E9B, 0xDC5E, 0x8E9C, 0xF5F2, 0x8E9D, 0xDC5F, 0x8E9E, 0xF5F3, - 0x8E9F, 0xDC60, 0x8EA0, 0xDC61, 0x8EA1, 0xDC62, 0x8EA2, 0xDC63, - 0x8EA3, 0xDC64, 0x8EA4, 0xDC65, 0x8EA5, 0xDC66, 0x8EA6, 0xDC67, - 0x8EA7, 0xDC68, 0x8EA8, 0xDC69, 0x8EA9, 0xDC6A, 0x8EAA, 0xDC6B, - 0x8EAB, 0xC9ED, 0x8EAC, 0xB9AA, 0x8EAD, 0xDC6C, 0x8EAE, 0xDC6D, - 0x8EAF, 0xC7FB, 0x8EB0, 0xDC6E, 0x8EB1, 0xDC6F, 0x8EB2, 0xB6E3, - 0x8EB3, 0xDC70, 0x8EB4, 0xDC71, 0x8EB5, 0xDC72, 0x8EB6, 0xDC73, - 0x8EB7, 0xDC74, 0x8EB8, 0xDC75, 0x8EB9, 0xDC76, 0x8EBA, 0xCCC9, - 0x8EBB, 0xDC77, 0x8EBC, 0xDC78, 0x8EBD, 0xDC79, 0x8EBE, 0xDC7A, - 0x8EBF, 0xDC7B, 0x8EC0, 0xDC7C, 0x8EC1, 0xDC7D, 0x8EC2, 0xDC7E, - 0x8EC3, 0xDC80, 0x8EC4, 0xDC81, 0x8EC5, 0xDC82, 0x8EC6, 0xDC83, - 0x8EC7, 0xDC84, 0x8EC8, 0xDC85, 0x8EC9, 0xDC86, 0x8ECA, 0xDC87, - 0x8ECB, 0xDC88, 0x8ECC, 0xDC89, 0x8ECD, 0xDC8A, 0x8ECE, 0xEAA6, - 0x8ECF, 0xDC8B, 0x8ED0, 0xDC8C, 0x8ED1, 0xDC8D, 0x8ED2, 0xDC8E, - 0x8ED3, 0xDC8F, 0x8ED4, 0xDC90, 0x8ED5, 0xDC91, 0x8ED6, 0xDC92, - 0x8ED7, 0xDC93, 0x8ED8, 0xDC94, 0x8ED9, 0xDC95, 0x8EDA, 0xDC96, - 0x8EDB, 0xDC97, 0x8EDC, 0xDC98, 0x8EDD, 0xDC99, 0x8EDE, 0xDC9A, - 0x8EDF, 0xDC9B, 0x8EE0, 0xDC9C, 0x8EE1, 0xDC9D, 0x8EE2, 0xDC9E, - 0x8EE3, 0xDC9F, 0x8EE4, 0xDCA0, 0x8EE5, 0xDD40, 0x8EE6, 0xDD41, - 0x8EE7, 0xDD42, 0x8EE8, 0xDD43, 0x8EE9, 0xDD44, 0x8EEA, 0xDD45, - 0x8EEB, 0xDD46, 0x8EEC, 0xDD47, 0x8EED, 0xDD48, 0x8EEE, 0xDD49, - 0x8EEF, 0xDD4A, 0x8EF0, 0xDD4B, 0x8EF1, 0xDD4C, 0x8EF2, 0xDD4D, - 0x8EF3, 0xDD4E, 0x8EF4, 0xDD4F, 0x8EF5, 0xDD50, 0x8EF6, 0xDD51, - 0x8EF7, 0xDD52, 0x8EF8, 0xDD53, 0x8EF9, 0xDD54, 0x8EFA, 0xDD55, - 0x8EFB, 0xDD56, 0x8EFC, 0xDD57, 0x8EFD, 0xDD58, 0x8EFE, 0xDD59, - 0x8EFF, 0xDD5A, 0x8F00, 0xDD5B, 0x8F01, 0xDD5C, 0x8F02, 0xDD5D, - 0x8F03, 0xDD5E, 0x8F04, 0xDD5F, 0x8F05, 0xDD60, 0x8F06, 0xDD61, - 0x8F07, 0xDD62, 0x8F08, 0xDD63, 0x8F09, 0xDD64, 0x8F0A, 0xDD65, - 0x8F0B, 0xDD66, 0x8F0C, 0xDD67, 0x8F0D, 0xDD68, 0x8F0E, 0xDD69, - 0x8F0F, 0xDD6A, 0x8F10, 0xDD6B, 0x8F11, 0xDD6C, 0x8F12, 0xDD6D, - 0x8F13, 0xDD6E, 0x8F14, 0xDD6F, 0x8F15, 0xDD70, 0x8F16, 0xDD71, - 0x8F17, 0xDD72, 0x8F18, 0xDD73, 0x8F19, 0xDD74, 0x8F1A, 0xDD75, - 0x8F1B, 0xDD76, 0x8F1C, 0xDD77, 0x8F1D, 0xDD78, 0x8F1E, 0xDD79, - 0x8F1F, 0xDD7A, 0x8F20, 0xDD7B, 0x8F21, 0xDD7C, 0x8F22, 0xDD7D, - 0x8F23, 0xDD7E, 0x8F24, 0xDD80, 0x8F25, 0xDD81, 0x8F26, 0xDD82, - 0x8F27, 0xDD83, 0x8F28, 0xDD84, 0x8F29, 0xDD85, 0x8F2A, 0xDD86, - 0x8F2B, 0xDD87, 0x8F2C, 0xDD88, 0x8F2D, 0xDD89, 0x8F2E, 0xDD8A, - 0x8F2F, 0xDD8B, 0x8F30, 0xDD8C, 0x8F31, 0xDD8D, 0x8F32, 0xDD8E, - 0x8F33, 0xDD8F, 0x8F34, 0xDD90, 0x8F35, 0xDD91, 0x8F36, 0xDD92, - 0x8F37, 0xDD93, 0x8F38, 0xDD94, 0x8F39, 0xDD95, 0x8F3A, 0xDD96, - 0x8F3B, 0xDD97, 0x8F3C, 0xDD98, 0x8F3D, 0xDD99, 0x8F3E, 0xDD9A, - 0x8F3F, 0xDD9B, 0x8F40, 0xDD9C, 0x8F41, 0xDD9D, 0x8F42, 0xDD9E, - 0x8F43, 0xDD9F, 0x8F44, 0xDDA0, 0x8F45, 0xDE40, 0x8F46, 0xDE41, - 0x8F47, 0xDE42, 0x8F48, 0xDE43, 0x8F49, 0xDE44, 0x8F4A, 0xDE45, - 0x8F4B, 0xDE46, 0x8F4C, 0xDE47, 0x8F4D, 0xDE48, 0x8F4E, 0xDE49, - 0x8F4F, 0xDE4A, 0x8F50, 0xDE4B, 0x8F51, 0xDE4C, 0x8F52, 0xDE4D, - 0x8F53, 0xDE4E, 0x8F54, 0xDE4F, 0x8F55, 0xDE50, 0x8F56, 0xDE51, - 0x8F57, 0xDE52, 0x8F58, 0xDE53, 0x8F59, 0xDE54, 0x8F5A, 0xDE55, - 0x8F5B, 0xDE56, 0x8F5C, 0xDE57, 0x8F5D, 0xDE58, 0x8F5E, 0xDE59, - 0x8F5F, 0xDE5A, 0x8F60, 0xDE5B, 0x8F61, 0xDE5C, 0x8F62, 0xDE5D, - 0x8F63, 0xDE5E, 0x8F64, 0xDE5F, 0x8F65, 0xDE60, 0x8F66, 0xB3B5, - 0x8F67, 0xD4FE, 0x8F68, 0xB9EC, 0x8F69, 0xD0F9, 0x8F6A, 0xDE61, - 0x8F6B, 0xE9ED, 0x8F6C, 0xD7AA, 0x8F6D, 0xE9EE, 0x8F6E, 0xC2D6, - 0x8F6F, 0xC8ED, 0x8F70, 0xBAE4, 0x8F71, 0xE9EF, 0x8F72, 0xE9F0, - 0x8F73, 0xE9F1, 0x8F74, 0xD6E1, 0x8F75, 0xE9F2, 0x8F76, 0xE9F3, - 0x8F77, 0xE9F5, 0x8F78, 0xE9F4, 0x8F79, 0xE9F6, 0x8F7A, 0xE9F7, - 0x8F7B, 0xC7E1, 0x8F7C, 0xE9F8, 0x8F7D, 0xD4D8, 0x8F7E, 0xE9F9, - 0x8F7F, 0xBDCE, 0x8F80, 0xDE62, 0x8F81, 0xE9FA, 0x8F82, 0xE9FB, - 0x8F83, 0xBDCF, 0x8F84, 0xE9FC, 0x8F85, 0xB8A8, 0x8F86, 0xC1BE, - 0x8F87, 0xE9FD, 0x8F88, 0xB1B2, 0x8F89, 0xBBD4, 0x8F8A, 0xB9F5, - 0x8F8B, 0xE9FE, 0x8F8C, 0xDE63, 0x8F8D, 0xEAA1, 0x8F8E, 0xEAA2, - 0x8F8F, 0xEAA3, 0x8F90, 0xB7F8, 0x8F91, 0xBCAD, 0x8F92, 0xDE64, - 0x8F93, 0xCAE4, 0x8F94, 0xE0CE, 0x8F95, 0xD4AF, 0x8F96, 0xCFBD, - 0x8F97, 0xD5B7, 0x8F98, 0xEAA4, 0x8F99, 0xD5DE, 0x8F9A, 0xEAA5, - 0x8F9B, 0xD0C1, 0x8F9C, 0xB9BC, 0x8F9D, 0xDE65, 0x8F9E, 0xB4C7, - 0x8F9F, 0xB1D9, 0x8FA0, 0xDE66, 0x8FA1, 0xDE67, 0x8FA2, 0xDE68, - 0x8FA3, 0xC0B1, 0x8FA4, 0xDE69, 0x8FA5, 0xDE6A, 0x8FA6, 0xDE6B, - 0x8FA7, 0xDE6C, 0x8FA8, 0xB1E6, 0x8FA9, 0xB1E7, 0x8FAA, 0xDE6D, - 0x8FAB, 0xB1E8, 0x8FAC, 0xDE6E, 0x8FAD, 0xDE6F, 0x8FAE, 0xDE70, - 0x8FAF, 0xDE71, 0x8FB0, 0xB3BD, 0x8FB1, 0xC8E8, 0x8FB2, 0xDE72, - 0x8FB3, 0xDE73, 0x8FB4, 0xDE74, 0x8FB5, 0xDE75, 0x8FB6, 0xE5C1, - 0x8FB7, 0xDE76, 0x8FB8, 0xDE77, 0x8FB9, 0xB1DF, 0x8FBA, 0xDE78, - 0x8FBB, 0xDE79, 0x8FBC, 0xDE7A, 0x8FBD, 0xC1C9, 0x8FBE, 0xB4EF, - 0x8FBF, 0xDE7B, 0x8FC0, 0xDE7C, 0x8FC1, 0xC7A8, 0x8FC2, 0xD3D8, - 0x8FC3, 0xDE7D, 0x8FC4, 0xC6F9, 0x8FC5, 0xD1B8, 0x8FC6, 0xDE7E, - 0x8FC7, 0xB9FD, 0x8FC8, 0xC2F5, 0x8FC9, 0xDE80, 0x8FCA, 0xDE81, - 0x8FCB, 0xDE82, 0x8FCC, 0xDE83, 0x8FCD, 0xDE84, 0x8FCE, 0xD3AD, - 0x8FCF, 0xDE85, 0x8FD0, 0xD4CB, 0x8FD1, 0xBDFC, 0x8FD2, 0xDE86, - 0x8FD3, 0xE5C2, 0x8FD4, 0xB7B5, 0x8FD5, 0xE5C3, 0x8FD6, 0xDE87, - 0x8FD7, 0xDE88, 0x8FD8, 0xBBB9, 0x8FD9, 0xD5E2, 0x8FDA, 0xDE89, - 0x8FDB, 0xBDF8, 0x8FDC, 0xD4B6, 0x8FDD, 0xCEA5, 0x8FDE, 0xC1AC, - 0x8FDF, 0xB3D9, 0x8FE0, 0xDE8A, 0x8FE1, 0xDE8B, 0x8FE2, 0xCCF6, - 0x8FE3, 0xDE8C, 0x8FE4, 0xE5C6, 0x8FE5, 0xE5C4, 0x8FE6, 0xE5C8, - 0x8FE7, 0xDE8D, 0x8FE8, 0xE5CA, 0x8FE9, 0xE5C7, 0x8FEA, 0xB5CF, - 0x8FEB, 0xC6C8, 0x8FEC, 0xDE8E, 0x8FED, 0xB5FC, 0x8FEE, 0xE5C5, - 0x8FEF, 0xDE8F, 0x8FF0, 0xCAF6, 0x8FF1, 0xDE90, 0x8FF2, 0xDE91, - 0x8FF3, 0xE5C9, 0x8FF4, 0xDE92, 0x8FF5, 0xDE93, 0x8FF6, 0xDE94, - 0x8FF7, 0xC3D4, 0x8FF8, 0xB1C5, 0x8FF9, 0xBCA3, 0x8FFA, 0xDE95, - 0x8FFB, 0xDE96, 0x8FFC, 0xDE97, 0x8FFD, 0xD7B7, 0x8FFE, 0xDE98, - 0x8FFF, 0xDE99, 0x9000, 0xCDCB, 0x9001, 0xCBCD, 0x9002, 0xCACA, - 0x9003, 0xCCD3, 0x9004, 0xE5CC, 0x9005, 0xE5CB, 0x9006, 0xC4E6, - 0x9007, 0xDE9A, 0x9008, 0xDE9B, 0x9009, 0xD1A1, 0x900A, 0xD1B7, - 0x900B, 0xE5CD, 0x900C, 0xDE9C, 0x900D, 0xE5D0, 0x900E, 0xDE9D, - 0x900F, 0xCDB8, 0x9010, 0xD6F0, 0x9011, 0xE5CF, 0x9012, 0xB5DD, - 0x9013, 0xDE9E, 0x9014, 0xCDBE, 0x9015, 0xDE9F, 0x9016, 0xE5D1, - 0x9017, 0xB6BA, 0x9018, 0xDEA0, 0x9019, 0xDF40, 0x901A, 0xCDA8, - 0x901B, 0xB9E4, 0x901C, 0xDF41, 0x901D, 0xCAC5, 0x901E, 0xB3D1, - 0x901F, 0xCBD9, 0x9020, 0xD4EC, 0x9021, 0xE5D2, 0x9022, 0xB7EA, - 0x9023, 0xDF42, 0x9024, 0xDF43, 0x9025, 0xDF44, 0x9026, 0xE5CE, - 0x9027, 0xDF45, 0x9028, 0xDF46, 0x9029, 0xDF47, 0x902A, 0xDF48, - 0x902B, 0xDF49, 0x902C, 0xDF4A, 0x902D, 0xE5D5, 0x902E, 0xB4FE, - 0x902F, 0xE5D6, 0x9030, 0xDF4B, 0x9031, 0xDF4C, 0x9032, 0xDF4D, - 0x9033, 0xDF4E, 0x9034, 0xDF4F, 0x9035, 0xE5D3, 0x9036, 0xE5D4, - 0x9037, 0xDF50, 0x9038, 0xD2DD, 0x9039, 0xDF51, 0x903A, 0xDF52, - 0x903B, 0xC2DF, 0x903C, 0xB1C6, 0x903D, 0xDF53, 0x903E, 0xD3E2, - 0x903F, 0xDF54, 0x9040, 0xDF55, 0x9041, 0xB6DD, 0x9042, 0xCBEC, - 0x9043, 0xDF56, 0x9044, 0xE5D7, 0x9045, 0xDF57, 0x9046, 0xDF58, - 0x9047, 0xD3F6, 0x9048, 0xDF59, 0x9049, 0xDF5A, 0x904A, 0xDF5B, - 0x904B, 0xDF5C, 0x904C, 0xDF5D, 0x904D, 0xB1E9, 0x904E, 0xDF5E, - 0x904F, 0xB6F4, 0x9050, 0xE5DA, 0x9051, 0xE5D8, 0x9052, 0xE5D9, - 0x9053, 0xB5C0, 0x9054, 0xDF5F, 0x9055, 0xDF60, 0x9056, 0xDF61, - 0x9057, 0xD2C5, 0x9058, 0xE5DC, 0x9059, 0xDF62, 0x905A, 0xDF63, - 0x905B, 0xE5DE, 0x905C, 0xDF64, 0x905D, 0xDF65, 0x905E, 0xDF66, - 0x905F, 0xDF67, 0x9060, 0xDF68, 0x9061, 0xDF69, 0x9062, 0xE5DD, - 0x9063, 0xC7B2, 0x9064, 0xDF6A, 0x9065, 0xD2A3, 0x9066, 0xDF6B, - 0x9067, 0xDF6C, 0x9068, 0xE5DB, 0x9069, 0xDF6D, 0x906A, 0xDF6E, - 0x906B, 0xDF6F, 0x906C, 0xDF70, 0x906D, 0xD4E2, 0x906E, 0xD5DA, - 0x906F, 0xDF71, 0x9070, 0xDF72, 0x9071, 0xDF73, 0x9072, 0xDF74, - 0x9073, 0xDF75, 0x9074, 0xE5E0, 0x9075, 0xD7F1, 0x9076, 0xDF76, - 0x9077, 0xDF77, 0x9078, 0xDF78, 0x9079, 0xDF79, 0x907A, 0xDF7A, - 0x907B, 0xDF7B, 0x907C, 0xDF7C, 0x907D, 0xE5E1, 0x907E, 0xDF7D, - 0x907F, 0xB1DC, 0x9080, 0xD1FB, 0x9081, 0xDF7E, 0x9082, 0xE5E2, - 0x9083, 0xE5E4, 0x9084, 0xDF80, 0x9085, 0xDF81, 0x9086, 0xDF82, - 0x9087, 0xDF83, 0x9088, 0xE5E3, 0x9089, 0xDF84, 0x908A, 0xDF85, - 0x908B, 0xE5E5, 0x908C, 0xDF86, 0x908D, 0xDF87, 0x908E, 0xDF88, - 0x908F, 0xDF89, 0x9090, 0xDF8A, 0x9091, 0xD2D8, 0x9092, 0xDF8B, - 0x9093, 0xB5CB, 0x9094, 0xDF8C, 0x9095, 0xE7DF, 0x9096, 0xDF8D, - 0x9097, 0xDAF5, 0x9098, 0xDF8E, 0x9099, 0xDAF8, 0x909A, 0xDF8F, - 0x909B, 0xDAF6, 0x909C, 0xDF90, 0x909D, 0xDAF7, 0x909E, 0xDF91, - 0x909F, 0xDF92, 0x90A0, 0xDF93, 0x90A1, 0xDAFA, 0x90A2, 0xD0CF, - 0x90A3, 0xC4C7, 0x90A4, 0xDF94, 0x90A5, 0xDF95, 0x90A6, 0xB0EE, - 0x90A7, 0xDF96, 0x90A8, 0xDF97, 0x90A9, 0xDF98, 0x90AA, 0xD0B0, - 0x90AB, 0xDF99, 0x90AC, 0xDAF9, 0x90AD, 0xDF9A, 0x90AE, 0xD3CA, - 0x90AF, 0xBAAA, 0x90B0, 0xDBA2, 0x90B1, 0xC7F1, 0x90B2, 0xDF9B, - 0x90B3, 0xDAFC, 0x90B4, 0xDAFB, 0x90B5, 0xC9DB, 0x90B6, 0xDAFD, - 0x90B7, 0xDF9C, 0x90B8, 0xDBA1, 0x90B9, 0xD7DE, 0x90BA, 0xDAFE, - 0x90BB, 0xC1DA, 0x90BC, 0xDF9D, 0x90BD, 0xDF9E, 0x90BE, 0xDBA5, - 0x90BF, 0xDF9F, 0x90C0, 0xDFA0, 0x90C1, 0xD3F4, 0x90C2, 0xE040, - 0x90C3, 0xE041, 0x90C4, 0xDBA7, 0x90C5, 0xDBA4, 0x90C6, 0xE042, - 0x90C7, 0xDBA8, 0x90C8, 0xE043, 0x90C9, 0xE044, 0x90CA, 0xBDBC, - 0x90CB, 0xE045, 0x90CC, 0xE046, 0x90CD, 0xE047, 0x90CE, 0xC0C9, - 0x90CF, 0xDBA3, 0x90D0, 0xDBA6, 0x90D1, 0xD6A3, 0x90D2, 0xE048, - 0x90D3, 0xDBA9, 0x90D4, 0xE049, 0x90D5, 0xE04A, 0x90D6, 0xE04B, - 0x90D7, 0xDBAD, 0x90D8, 0xE04C, 0x90D9, 0xE04D, 0x90DA, 0xE04E, - 0x90DB, 0xDBAE, 0x90DC, 0xDBAC, 0x90DD, 0xBAC2, 0x90DE, 0xE04F, - 0x90DF, 0xE050, 0x90E0, 0xE051, 0x90E1, 0xBFA4, 0x90E2, 0xDBAB, - 0x90E3, 0xE052, 0x90E4, 0xE053, 0x90E5, 0xE054, 0x90E6, 0xDBAA, - 0x90E7, 0xD4C7, 0x90E8, 0xB2BF, 0x90E9, 0xE055, 0x90EA, 0xE056, - 0x90EB, 0xDBAF, 0x90EC, 0xE057, 0x90ED, 0xB9F9, 0x90EE, 0xE058, - 0x90EF, 0xDBB0, 0x90F0, 0xE059, 0x90F1, 0xE05A, 0x90F2, 0xE05B, - 0x90F3, 0xE05C, 0x90F4, 0xB3BB, 0x90F5, 0xE05D, 0x90F6, 0xE05E, - 0x90F7, 0xE05F, 0x90F8, 0xB5A6, 0x90F9, 0xE060, 0x90FA, 0xE061, - 0x90FB, 0xE062, 0x90FC, 0xE063, 0x90FD, 0xB6BC, 0x90FE, 0xDBB1, - 0x90FF, 0xE064, 0x9100, 0xE065, 0x9101, 0xE066, 0x9102, 0xB6F5, - 0x9103, 0xE067, 0x9104, 0xDBB2, 0x9105, 0xE068, 0x9106, 0xE069, - 0x9107, 0xE06A, 0x9108, 0xE06B, 0x9109, 0xE06C, 0x910A, 0xE06D, - 0x910B, 0xE06E, 0x910C, 0xE06F, 0x910D, 0xE070, 0x910E, 0xE071, - 0x910F, 0xE072, 0x9110, 0xE073, 0x9111, 0xE074, 0x9112, 0xE075, - 0x9113, 0xE076, 0x9114, 0xE077, 0x9115, 0xE078, 0x9116, 0xE079, - 0x9117, 0xE07A, 0x9118, 0xE07B, 0x9119, 0xB1C9, 0x911A, 0xE07C, - 0x911B, 0xE07D, 0x911C, 0xE07E, 0x911D, 0xE080, 0x911E, 0xDBB4, - 0x911F, 0xE081, 0x9120, 0xE082, 0x9121, 0xE083, 0x9122, 0xDBB3, - 0x9123, 0xDBB5, 0x9124, 0xE084, 0x9125, 0xE085, 0x9126, 0xE086, - 0x9127, 0xE087, 0x9128, 0xE088, 0x9129, 0xE089, 0x912A, 0xE08A, - 0x912B, 0xE08B, 0x912C, 0xE08C, 0x912D, 0xE08D, 0x912E, 0xE08E, - 0x912F, 0xDBB7, 0x9130, 0xE08F, 0x9131, 0xDBB6, 0x9132, 0xE090, - 0x9133, 0xE091, 0x9134, 0xE092, 0x9135, 0xE093, 0x9136, 0xE094, - 0x9137, 0xE095, 0x9138, 0xE096, 0x9139, 0xDBB8, 0x913A, 0xE097, - 0x913B, 0xE098, 0x913C, 0xE099, 0x913D, 0xE09A, 0x913E, 0xE09B, - 0x913F, 0xE09C, 0x9140, 0xE09D, 0x9141, 0xE09E, 0x9142, 0xE09F, - 0x9143, 0xDBB9, 0x9144, 0xE0A0, 0x9145, 0xE140, 0x9146, 0xDBBA, - 0x9147, 0xE141, 0x9148, 0xE142, 0x9149, 0xD3CF, 0x914A, 0xF4FA, - 0x914B, 0xC7F5, 0x914C, 0xD7C3, 0x914D, 0xC5E4, 0x914E, 0xF4FC, - 0x914F, 0xF4FD, 0x9150, 0xF4FB, 0x9151, 0xE143, 0x9152, 0xBEC6, - 0x9153, 0xE144, 0x9154, 0xE145, 0x9155, 0xE146, 0x9156, 0xE147, - 0x9157, 0xD0EF, 0x9158, 0xE148, 0x9159, 0xE149, 0x915A, 0xB7D3, - 0x915B, 0xE14A, 0x915C, 0xE14B, 0x915D, 0xD4CD, 0x915E, 0xCCAA, - 0x915F, 0xE14C, 0x9160, 0xE14D, 0x9161, 0xF5A2, 0x9162, 0xF5A1, - 0x9163, 0xBAA8, 0x9164, 0xF4FE, 0x9165, 0xCBD6, 0x9166, 0xE14E, - 0x9167, 0xE14F, 0x9168, 0xE150, 0x9169, 0xF5A4, 0x916A, 0xC0D2, - 0x916B, 0xE151, 0x916C, 0xB3EA, 0x916D, 0xE152, 0x916E, 0xCDAA, - 0x916F, 0xF5A5, 0x9170, 0xF5A3, 0x9171, 0xBDB4, 0x9172, 0xF5A8, - 0x9173, 0xE153, 0x9174, 0xF5A9, 0x9175, 0xBDCD, 0x9176, 0xC3B8, - 0x9177, 0xBFE1, 0x9178, 0xCBE1, 0x9179, 0xF5AA, 0x917A, 0xE154, - 0x917B, 0xE155, 0x917C, 0xE156, 0x917D, 0xF5A6, 0x917E, 0xF5A7, - 0x917F, 0xC4F0, 0x9180, 0xE157, 0x9181, 0xE158, 0x9182, 0xE159, - 0x9183, 0xE15A, 0x9184, 0xE15B, 0x9185, 0xF5AC, 0x9186, 0xE15C, - 0x9187, 0xB4BC, 0x9188, 0xE15D, 0x9189, 0xD7ED, 0x918A, 0xE15E, - 0x918B, 0xB4D7, 0x918C, 0xF5AB, 0x918D, 0xF5AE, 0x918E, 0xE15F, - 0x918F, 0xE160, 0x9190, 0xF5AD, 0x9191, 0xF5AF, 0x9192, 0xD0D1, - 0x9193, 0xE161, 0x9194, 0xE162, 0x9195, 0xE163, 0x9196, 0xE164, - 0x9197, 0xE165, 0x9198, 0xE166, 0x9199, 0xE167, 0x919A, 0xC3D1, - 0x919B, 0xC8A9, 0x919C, 0xE168, 0x919D, 0xE169, 0x919E, 0xE16A, - 0x919F, 0xE16B, 0x91A0, 0xE16C, 0x91A1, 0xE16D, 0x91A2, 0xF5B0, - 0x91A3, 0xF5B1, 0x91A4, 0xE16E, 0x91A5, 0xE16F, 0x91A6, 0xE170, - 0x91A7, 0xE171, 0x91A8, 0xE172, 0x91A9, 0xE173, 0x91AA, 0xF5B2, - 0x91AB, 0xE174, 0x91AC, 0xE175, 0x91AD, 0xF5B3, 0x91AE, 0xF5B4, - 0x91AF, 0xF5B5, 0x91B0, 0xE176, 0x91B1, 0xE177, 0x91B2, 0xE178, - 0x91B3, 0xE179, 0x91B4, 0xF5B7, 0x91B5, 0xF5B6, 0x91B6, 0xE17A, - 0x91B7, 0xE17B, 0x91B8, 0xE17C, 0x91B9, 0xE17D, 0x91BA, 0xF5B8, - 0x91BB, 0xE17E, 0x91BC, 0xE180, 0x91BD, 0xE181, 0x91BE, 0xE182, - 0x91BF, 0xE183, 0x91C0, 0xE184, 0x91C1, 0xE185, 0x91C2, 0xE186, - 0x91C3, 0xE187, 0x91C4, 0xE188, 0x91C5, 0xE189, 0x91C6, 0xE18A, - 0x91C7, 0xB2C9, 0x91C8, 0xE18B, 0x91C9, 0xD3D4, 0x91CA, 0xCACD, - 0x91CB, 0xE18C, 0x91CC, 0xC0EF, 0x91CD, 0xD6D8, 0x91CE, 0xD2B0, - 0x91CF, 0xC1BF, 0x91D0, 0xE18D, 0x91D1, 0xBDF0, 0x91D2, 0xE18E, - 0x91D3, 0xE18F, 0x91D4, 0xE190, 0x91D5, 0xE191, 0x91D6, 0xE192, - 0x91D7, 0xE193, 0x91D8, 0xE194, 0x91D9, 0xE195, 0x91DA, 0xE196, - 0x91DB, 0xE197, 0x91DC, 0xB8AA, 0x91DD, 0xE198, 0x91DE, 0xE199, - 0x91DF, 0xE19A, 0x91E0, 0xE19B, 0x91E1, 0xE19C, 0x91E2, 0xE19D, - 0x91E3, 0xE19E, 0x91E4, 0xE19F, 0x91E5, 0xE1A0, 0x91E6, 0xE240, - 0x91E7, 0xE241, 0x91E8, 0xE242, 0x91E9, 0xE243, 0x91EA, 0xE244, - 0x91EB, 0xE245, 0x91EC, 0xE246, 0x91ED, 0xE247, 0x91EE, 0xE248, - 0x91EF, 0xE249, 0x91F0, 0xE24A, 0x91F1, 0xE24B, 0x91F2, 0xE24C, - 0x91F3, 0xE24D, 0x91F4, 0xE24E, 0x91F5, 0xE24F, 0x91F6, 0xE250, - 0x91F7, 0xE251, 0x91F8, 0xE252, 0x91F9, 0xE253, 0x91FA, 0xE254, - 0x91FB, 0xE255, 0x91FC, 0xE256, 0x91FD, 0xE257, 0x91FE, 0xE258, - 0x91FF, 0xE259, 0x9200, 0xE25A, 0x9201, 0xE25B, 0x9202, 0xE25C, - 0x9203, 0xE25D, 0x9204, 0xE25E, 0x9205, 0xE25F, 0x9206, 0xE260, - 0x9207, 0xE261, 0x9208, 0xE262, 0x9209, 0xE263, 0x920A, 0xE264, - 0x920B, 0xE265, 0x920C, 0xE266, 0x920D, 0xE267, 0x920E, 0xE268, - 0x920F, 0xE269, 0x9210, 0xE26A, 0x9211, 0xE26B, 0x9212, 0xE26C, - 0x9213, 0xE26D, 0x9214, 0xE26E, 0x9215, 0xE26F, 0x9216, 0xE270, - 0x9217, 0xE271, 0x9218, 0xE272, 0x9219, 0xE273, 0x921A, 0xE274, - 0x921B, 0xE275, 0x921C, 0xE276, 0x921D, 0xE277, 0x921E, 0xE278, - 0x921F, 0xE279, 0x9220, 0xE27A, 0x9221, 0xE27B, 0x9222, 0xE27C, - 0x9223, 0xE27D, 0x9224, 0xE27E, 0x9225, 0xE280, 0x9226, 0xE281, - 0x9227, 0xE282, 0x9228, 0xE283, 0x9229, 0xE284, 0x922A, 0xE285, - 0x922B, 0xE286, 0x922C, 0xE287, 0x922D, 0xE288, 0x922E, 0xE289, - 0x922F, 0xE28A, 0x9230, 0xE28B, 0x9231, 0xE28C, 0x9232, 0xE28D, - 0x9233, 0xE28E, 0x9234, 0xE28F, 0x9235, 0xE290, 0x9236, 0xE291, - 0x9237, 0xE292, 0x9238, 0xE293, 0x9239, 0xE294, 0x923A, 0xE295, - 0x923B, 0xE296, 0x923C, 0xE297, 0x923D, 0xE298, 0x923E, 0xE299, - 0x923F, 0xE29A, 0x9240, 0xE29B, 0x9241, 0xE29C, 0x9242, 0xE29D, - 0x9243, 0xE29E, 0x9244, 0xE29F, 0x9245, 0xE2A0, 0x9246, 0xE340, - 0x9247, 0xE341, 0x9248, 0xE342, 0x9249, 0xE343, 0x924A, 0xE344, - 0x924B, 0xE345, 0x924C, 0xE346, 0x924D, 0xE347, 0x924E, 0xE348, - 0x924F, 0xE349, 0x9250, 0xE34A, 0x9251, 0xE34B, 0x9252, 0xE34C, - 0x9253, 0xE34D, 0x9254, 0xE34E, 0x9255, 0xE34F, 0x9256, 0xE350, - 0x9257, 0xE351, 0x9258, 0xE352, 0x9259, 0xE353, 0x925A, 0xE354, - 0x925B, 0xE355, 0x925C, 0xE356, 0x925D, 0xE357, 0x925E, 0xE358, - 0x925F, 0xE359, 0x9260, 0xE35A, 0x9261, 0xE35B, 0x9262, 0xE35C, - 0x9263, 0xE35D, 0x9264, 0xE35E, 0x9265, 0xE35F, 0x9266, 0xE360, - 0x9267, 0xE361, 0x9268, 0xE362, 0x9269, 0xE363, 0x926A, 0xE364, - 0x926B, 0xE365, 0x926C, 0xE366, 0x926D, 0xE367, 0x926E, 0xE368, - 0x926F, 0xE369, 0x9270, 0xE36A, 0x9271, 0xE36B, 0x9272, 0xE36C, - 0x9273, 0xE36D, 0x9274, 0xBCF8, 0x9275, 0xE36E, 0x9276, 0xE36F, - 0x9277, 0xE370, 0x9278, 0xE371, 0x9279, 0xE372, 0x927A, 0xE373, - 0x927B, 0xE374, 0x927C, 0xE375, 0x927D, 0xE376, 0x927E, 0xE377, - 0x927F, 0xE378, 0x9280, 0xE379, 0x9281, 0xE37A, 0x9282, 0xE37B, - 0x9283, 0xE37C, 0x9284, 0xE37D, 0x9285, 0xE37E, 0x9286, 0xE380, - 0x9287, 0xE381, 0x9288, 0xE382, 0x9289, 0xE383, 0x928A, 0xE384, - 0x928B, 0xE385, 0x928C, 0xE386, 0x928D, 0xE387, 0x928E, 0xF6C6, - 0x928F, 0xE388, 0x9290, 0xE389, 0x9291, 0xE38A, 0x9292, 0xE38B, - 0x9293, 0xE38C, 0x9294, 0xE38D, 0x9295, 0xE38E, 0x9296, 0xE38F, - 0x9297, 0xE390, 0x9298, 0xE391, 0x9299, 0xE392, 0x929A, 0xE393, - 0x929B, 0xE394, 0x929C, 0xE395, 0x929D, 0xE396, 0x929E, 0xE397, - 0x929F, 0xE398, 0x92A0, 0xE399, 0x92A1, 0xE39A, 0x92A2, 0xE39B, - 0x92A3, 0xE39C, 0x92A4, 0xE39D, 0x92A5, 0xE39E, 0x92A6, 0xE39F, - 0x92A7, 0xE3A0, 0x92A8, 0xE440, 0x92A9, 0xE441, 0x92AA, 0xE442, - 0x92AB, 0xE443, 0x92AC, 0xE444, 0x92AD, 0xE445, 0x92AE, 0xF6C7, - 0x92AF, 0xE446, 0x92B0, 0xE447, 0x92B1, 0xE448, 0x92B2, 0xE449, - 0x92B3, 0xE44A, 0x92B4, 0xE44B, 0x92B5, 0xE44C, 0x92B6, 0xE44D, - 0x92B7, 0xE44E, 0x92B8, 0xE44F, 0x92B9, 0xE450, 0x92BA, 0xE451, - 0x92BB, 0xE452, 0x92BC, 0xE453, 0x92BD, 0xE454, 0x92BE, 0xE455, - 0x92BF, 0xE456, 0x92C0, 0xE457, 0x92C1, 0xE458, 0x92C2, 0xE459, - 0x92C3, 0xE45A, 0x92C4, 0xE45B, 0x92C5, 0xE45C, 0x92C6, 0xE45D, - 0x92C7, 0xE45E, 0x92C8, 0xF6C8, 0x92C9, 0xE45F, 0x92CA, 0xE460, - 0x92CB, 0xE461, 0x92CC, 0xE462, 0x92CD, 0xE463, 0x92CE, 0xE464, - 0x92CF, 0xE465, 0x92D0, 0xE466, 0x92D1, 0xE467, 0x92D2, 0xE468, - 0x92D3, 0xE469, 0x92D4, 0xE46A, 0x92D5, 0xE46B, 0x92D6, 0xE46C, - 0x92D7, 0xE46D, 0x92D8, 0xE46E, 0x92D9, 0xE46F, 0x92DA, 0xE470, - 0x92DB, 0xE471, 0x92DC, 0xE472, 0x92DD, 0xE473, 0x92DE, 0xE474, - 0x92DF, 0xE475, 0x92E0, 0xE476, 0x92E1, 0xE477, 0x92E2, 0xE478, - 0x92E3, 0xE479, 0x92E4, 0xE47A, 0x92E5, 0xE47B, 0x92E6, 0xE47C, - 0x92E7, 0xE47D, 0x92E8, 0xE47E, 0x92E9, 0xE480, 0x92EA, 0xE481, - 0x92EB, 0xE482, 0x92EC, 0xE483, 0x92ED, 0xE484, 0x92EE, 0xE485, - 0x92EF, 0xE486, 0x92F0, 0xE487, 0x92F1, 0xE488, 0x92F2, 0xE489, - 0x92F3, 0xE48A, 0x92F4, 0xE48B, 0x92F5, 0xE48C, 0x92F6, 0xE48D, - 0x92F7, 0xE48E, 0x92F8, 0xE48F, 0x92F9, 0xE490, 0x92FA, 0xE491, - 0x92FB, 0xE492, 0x92FC, 0xE493, 0x92FD, 0xE494, 0x92FE, 0xE495, - 0x92FF, 0xE496, 0x9300, 0xE497, 0x9301, 0xE498, 0x9302, 0xE499, - 0x9303, 0xE49A, 0x9304, 0xE49B, 0x9305, 0xE49C, 0x9306, 0xE49D, - 0x9307, 0xE49E, 0x9308, 0xE49F, 0x9309, 0xE4A0, 0x930A, 0xE540, - 0x930B, 0xE541, 0x930C, 0xE542, 0x930D, 0xE543, 0x930E, 0xE544, - 0x930F, 0xE545, 0x9310, 0xE546, 0x9311, 0xE547, 0x9312, 0xE548, - 0x9313, 0xE549, 0x9314, 0xE54A, 0x9315, 0xE54B, 0x9316, 0xE54C, - 0x9317, 0xE54D, 0x9318, 0xE54E, 0x9319, 0xE54F, 0x931A, 0xE550, - 0x931B, 0xE551, 0x931C, 0xE552, 0x931D, 0xE553, 0x931E, 0xE554, - 0x931F, 0xE555, 0x9320, 0xE556, 0x9321, 0xE557, 0x9322, 0xE558, - 0x9323, 0xE559, 0x9324, 0xE55A, 0x9325, 0xE55B, 0x9326, 0xE55C, - 0x9327, 0xE55D, 0x9328, 0xE55E, 0x9329, 0xE55F, 0x932A, 0xE560, - 0x932B, 0xE561, 0x932C, 0xE562, 0x932D, 0xE563, 0x932E, 0xE564, - 0x932F, 0xE565, 0x9330, 0xE566, 0x9331, 0xE567, 0x9332, 0xE568, - 0x9333, 0xE569, 0x9334, 0xE56A, 0x9335, 0xE56B, 0x9336, 0xE56C, - 0x9337, 0xE56D, 0x9338, 0xE56E, 0x9339, 0xE56F, 0x933A, 0xE570, - 0x933B, 0xE571, 0x933C, 0xE572, 0x933D, 0xE573, 0x933E, 0xF6C9, - 0x933F, 0xE574, 0x9340, 0xE575, 0x9341, 0xE576, 0x9342, 0xE577, - 0x9343, 0xE578, 0x9344, 0xE579, 0x9345, 0xE57A, 0x9346, 0xE57B, - 0x9347, 0xE57C, 0x9348, 0xE57D, 0x9349, 0xE57E, 0x934A, 0xE580, - 0x934B, 0xE581, 0x934C, 0xE582, 0x934D, 0xE583, 0x934E, 0xE584, - 0x934F, 0xE585, 0x9350, 0xE586, 0x9351, 0xE587, 0x9352, 0xE588, - 0x9353, 0xE589, 0x9354, 0xE58A, 0x9355, 0xE58B, 0x9356, 0xE58C, - 0x9357, 0xE58D, 0x9358, 0xE58E, 0x9359, 0xE58F, 0x935A, 0xE590, - 0x935B, 0xE591, 0x935C, 0xE592, 0x935D, 0xE593, 0x935E, 0xE594, - 0x935F, 0xE595, 0x9360, 0xE596, 0x9361, 0xE597, 0x9362, 0xE598, - 0x9363, 0xE599, 0x9364, 0xE59A, 0x9365, 0xE59B, 0x9366, 0xE59C, - 0x9367, 0xE59D, 0x9368, 0xE59E, 0x9369, 0xE59F, 0x936A, 0xF6CA, - 0x936B, 0xE5A0, 0x936C, 0xE640, 0x936D, 0xE641, 0x936E, 0xE642, - 0x936F, 0xE643, 0x9370, 0xE644, 0x9371, 0xE645, 0x9372, 0xE646, - 0x9373, 0xE647, 0x9374, 0xE648, 0x9375, 0xE649, 0x9376, 0xE64A, - 0x9377, 0xE64B, 0x9378, 0xE64C, 0x9379, 0xE64D, 0x937A, 0xE64E, - 0x937B, 0xE64F, 0x937C, 0xE650, 0x937D, 0xE651, 0x937E, 0xE652, - 0x937F, 0xE653, 0x9380, 0xE654, 0x9381, 0xE655, 0x9382, 0xE656, - 0x9383, 0xE657, 0x9384, 0xE658, 0x9385, 0xE659, 0x9386, 0xE65A, - 0x9387, 0xE65B, 0x9388, 0xE65C, 0x9389, 0xE65D, 0x938A, 0xE65E, - 0x938B, 0xE65F, 0x938C, 0xE660, 0x938D, 0xE661, 0x938E, 0xE662, - 0x938F, 0xF6CC, 0x9390, 0xE663, 0x9391, 0xE664, 0x9392, 0xE665, - 0x9393, 0xE666, 0x9394, 0xE667, 0x9395, 0xE668, 0x9396, 0xE669, - 0x9397, 0xE66A, 0x9398, 0xE66B, 0x9399, 0xE66C, 0x939A, 0xE66D, - 0x939B, 0xE66E, 0x939C, 0xE66F, 0x939D, 0xE670, 0x939E, 0xE671, - 0x939F, 0xE672, 0x93A0, 0xE673, 0x93A1, 0xE674, 0x93A2, 0xE675, - 0x93A3, 0xE676, 0x93A4, 0xE677, 0x93A5, 0xE678, 0x93A6, 0xE679, - 0x93A7, 0xE67A, 0x93A8, 0xE67B, 0x93A9, 0xE67C, 0x93AA, 0xE67D, - 0x93AB, 0xE67E, 0x93AC, 0xE680, 0x93AD, 0xE681, 0x93AE, 0xE682, - 0x93AF, 0xE683, 0x93B0, 0xE684, 0x93B1, 0xE685, 0x93B2, 0xE686, - 0x93B3, 0xE687, 0x93B4, 0xE688, 0x93B5, 0xE689, 0x93B6, 0xE68A, - 0x93B7, 0xE68B, 0x93B8, 0xE68C, 0x93B9, 0xE68D, 0x93BA, 0xE68E, - 0x93BB, 0xE68F, 0x93BC, 0xE690, 0x93BD, 0xE691, 0x93BE, 0xE692, - 0x93BF, 0xE693, 0x93C0, 0xE694, 0x93C1, 0xE695, 0x93C2, 0xE696, - 0x93C3, 0xE697, 0x93C4, 0xE698, 0x93C5, 0xE699, 0x93C6, 0xE69A, - 0x93C7, 0xE69B, 0x93C8, 0xE69C, 0x93C9, 0xE69D, 0x93CA, 0xF6CB, - 0x93CB, 0xE69E, 0x93CC, 0xE69F, 0x93CD, 0xE6A0, 0x93CE, 0xE740, - 0x93CF, 0xE741, 0x93D0, 0xE742, 0x93D1, 0xE743, 0x93D2, 0xE744, - 0x93D3, 0xE745, 0x93D4, 0xE746, 0x93D5, 0xE747, 0x93D6, 0xF7E9, - 0x93D7, 0xE748, 0x93D8, 0xE749, 0x93D9, 0xE74A, 0x93DA, 0xE74B, - 0x93DB, 0xE74C, 0x93DC, 0xE74D, 0x93DD, 0xE74E, 0x93DE, 0xE74F, - 0x93DF, 0xE750, 0x93E0, 0xE751, 0x93E1, 0xE752, 0x93E2, 0xE753, - 0x93E3, 0xE754, 0x93E4, 0xE755, 0x93E5, 0xE756, 0x93E6, 0xE757, - 0x93E7, 0xE758, 0x93E8, 0xE759, 0x93E9, 0xE75A, 0x93EA, 0xE75B, - 0x93EB, 0xE75C, 0x93EC, 0xE75D, 0x93ED, 0xE75E, 0x93EE, 0xE75F, - 0x93EF, 0xE760, 0x93F0, 0xE761, 0x93F1, 0xE762, 0x93F2, 0xE763, - 0x93F3, 0xE764, 0x93F4, 0xE765, 0x93F5, 0xE766, 0x93F6, 0xE767, - 0x93F7, 0xE768, 0x93F8, 0xE769, 0x93F9, 0xE76A, 0x93FA, 0xE76B, - 0x93FB, 0xE76C, 0x93FC, 0xE76D, 0x93FD, 0xE76E, 0x93FE, 0xE76F, - 0x93FF, 0xE770, 0x9400, 0xE771, 0x9401, 0xE772, 0x9402, 0xE773, - 0x9403, 0xE774, 0x9404, 0xE775, 0x9405, 0xE776, 0x9406, 0xE777, - 0x9407, 0xE778, 0x9408, 0xE779, 0x9409, 0xE77A, 0x940A, 0xE77B, - 0x940B, 0xE77C, 0x940C, 0xE77D, 0x940D, 0xE77E, 0x940E, 0xE780, - 0x940F, 0xE781, 0x9410, 0xE782, 0x9411, 0xE783, 0x9412, 0xE784, - 0x9413, 0xE785, 0x9414, 0xE786, 0x9415, 0xE787, 0x9416, 0xE788, - 0x9417, 0xE789, 0x9418, 0xE78A, 0x9419, 0xE78B, 0x941A, 0xE78C, - 0x941B, 0xE78D, 0x941C, 0xE78E, 0x941D, 0xE78F, 0x941E, 0xE790, - 0x941F, 0xE791, 0x9420, 0xE792, 0x9421, 0xE793, 0x9422, 0xE794, - 0x9423, 0xE795, 0x9424, 0xE796, 0x9425, 0xE797, 0x9426, 0xE798, - 0x9427, 0xE799, 0x9428, 0xE79A, 0x9429, 0xE79B, 0x942A, 0xE79C, - 0x942B, 0xE79D, 0x942C, 0xE79E, 0x942D, 0xE79F, 0x942E, 0xE7A0, - 0x942F, 0xE840, 0x9430, 0xE841, 0x9431, 0xE842, 0x9432, 0xE843, - 0x9433, 0xE844, 0x9434, 0xE845, 0x9435, 0xE846, 0x9436, 0xE847, - 0x9437, 0xE848, 0x9438, 0xE849, 0x9439, 0xE84A, 0x943A, 0xE84B, - 0x943B, 0xE84C, 0x943C, 0xE84D, 0x943D, 0xE84E, 0x943E, 0xF6CD, - 0x943F, 0xE84F, 0x9440, 0xE850, 0x9441, 0xE851, 0x9442, 0xE852, - 0x9443, 0xE853, 0x9444, 0xE854, 0x9445, 0xE855, 0x9446, 0xE856, - 0x9447, 0xE857, 0x9448, 0xE858, 0x9449, 0xE859, 0x944A, 0xE85A, - 0x944B, 0xE85B, 0x944C, 0xE85C, 0x944D, 0xE85D, 0x944E, 0xE85E, - 0x944F, 0xE85F, 0x9450, 0xE860, 0x9451, 0xE861, 0x9452, 0xE862, - 0x9453, 0xE863, 0x9454, 0xE864, 0x9455, 0xE865, 0x9456, 0xE866, - 0x9457, 0xE867, 0x9458, 0xE868, 0x9459, 0xE869, 0x945A, 0xE86A, - 0x945B, 0xE86B, 0x945C, 0xE86C, 0x945D, 0xE86D, 0x945E, 0xE86E, - 0x945F, 0xE86F, 0x9460, 0xE870, 0x9461, 0xE871, 0x9462, 0xE872, - 0x9463, 0xE873, 0x9464, 0xE874, 0x9465, 0xE875, 0x9466, 0xE876, - 0x9467, 0xE877, 0x9468, 0xE878, 0x9469, 0xE879, 0x946A, 0xE87A, - 0x946B, 0xF6CE, 0x946C, 0xE87B, 0x946D, 0xE87C, 0x946E, 0xE87D, - 0x946F, 0xE87E, 0x9470, 0xE880, 0x9471, 0xE881, 0x9472, 0xE882, - 0x9473, 0xE883, 0x9474, 0xE884, 0x9475, 0xE885, 0x9476, 0xE886, - 0x9477, 0xE887, 0x9478, 0xE888, 0x9479, 0xE889, 0x947A, 0xE88A, - 0x947B, 0xE88B, 0x947C, 0xE88C, 0x947D, 0xE88D, 0x947E, 0xE88E, - 0x947F, 0xE88F, 0x9480, 0xE890, 0x9481, 0xE891, 0x9482, 0xE892, - 0x9483, 0xE893, 0x9484, 0xE894, 0x9485, 0xEEC4, 0x9486, 0xEEC5, - 0x9487, 0xEEC6, 0x9488, 0xD5EB, 0x9489, 0xB6A4, 0x948A, 0xEEC8, - 0x948B, 0xEEC7, 0x948C, 0xEEC9, 0x948D, 0xEECA, 0x948E, 0xC7A5, - 0x948F, 0xEECB, 0x9490, 0xEECC, 0x9491, 0xE895, 0x9492, 0xB7B0, - 0x9493, 0xB5F6, 0x9494, 0xEECD, 0x9495, 0xEECF, 0x9496, 0xE896, - 0x9497, 0xEECE, 0x9498, 0xE897, 0x9499, 0xB8C6, 0x949A, 0xEED0, - 0x949B, 0xEED1, 0x949C, 0xEED2, 0x949D, 0xB6DB, 0x949E, 0xB3AE, - 0x949F, 0xD6D3, 0x94A0, 0xC4C6, 0x94A1, 0xB1B5, 0x94A2, 0xB8D6, - 0x94A3, 0xEED3, 0x94A4, 0xEED4, 0x94A5, 0xD4BF, 0x94A6, 0xC7D5, - 0x94A7, 0xBEFB, 0x94A8, 0xCED9, 0x94A9, 0xB9B3, 0x94AA, 0xEED6, - 0x94AB, 0xEED5, 0x94AC, 0xEED8, 0x94AD, 0xEED7, 0x94AE, 0xC5A5, - 0x94AF, 0xEED9, 0x94B0, 0xEEDA, 0x94B1, 0xC7AE, 0x94B2, 0xEEDB, - 0x94B3, 0xC7AF, 0x94B4, 0xEEDC, 0x94B5, 0xB2A7, 0x94B6, 0xEEDD, - 0x94B7, 0xEEDE, 0x94B8, 0xEEDF, 0x94B9, 0xEEE0, 0x94BA, 0xEEE1, - 0x94BB, 0xD7EA, 0x94BC, 0xEEE2, 0x94BD, 0xEEE3, 0x94BE, 0xBCD8, - 0x94BF, 0xEEE4, 0x94C0, 0xD3CB, 0x94C1, 0xCCFA, 0x94C2, 0xB2AC, - 0x94C3, 0xC1E5, 0x94C4, 0xEEE5, 0x94C5, 0xC7A6, 0x94C6, 0xC3AD, - 0x94C7, 0xE898, 0x94C8, 0xEEE6, 0x94C9, 0xEEE7, 0x94CA, 0xEEE8, - 0x94CB, 0xEEE9, 0x94CC, 0xEEEA, 0x94CD, 0xEEEB, 0x94CE, 0xEEEC, - 0x94CF, 0xE899, 0x94D0, 0xEEED, 0x94D1, 0xEEEE, 0x94D2, 0xEEEF, - 0x94D3, 0xE89A, 0x94D4, 0xE89B, 0x94D5, 0xEEF0, 0x94D6, 0xEEF1, - 0x94D7, 0xEEF2, 0x94D8, 0xEEF4, 0x94D9, 0xEEF3, 0x94DA, 0xE89C, - 0x94DB, 0xEEF5, 0x94DC, 0xCDAD, 0x94DD, 0xC2C1, 0x94DE, 0xEEF6, - 0x94DF, 0xEEF7, 0x94E0, 0xEEF8, 0x94E1, 0xD5A1, 0x94E2, 0xEEF9, - 0x94E3, 0xCFB3, 0x94E4, 0xEEFA, 0x94E5, 0xEEFB, 0x94E6, 0xE89D, - 0x94E7, 0xEEFC, 0x94E8, 0xEEFD, 0x94E9, 0xEFA1, 0x94EA, 0xEEFE, - 0x94EB, 0xEFA2, 0x94EC, 0xB8F5, 0x94ED, 0xC3FA, 0x94EE, 0xEFA3, - 0x94EF, 0xEFA4, 0x94F0, 0xBDC2, 0x94F1, 0xD2BF, 0x94F2, 0xB2F9, - 0x94F3, 0xEFA5, 0x94F4, 0xEFA6, 0x94F5, 0xEFA7, 0x94F6, 0xD2F8, - 0x94F7, 0xEFA8, 0x94F8, 0xD6FD, 0x94F9, 0xEFA9, 0x94FA, 0xC6CC, - 0x94FB, 0xE89E, 0x94FC, 0xEFAA, 0x94FD, 0xEFAB, 0x94FE, 0xC1B4, - 0x94FF, 0xEFAC, 0x9500, 0xCFFA, 0x9501, 0xCBF8, 0x9502, 0xEFAE, - 0x9503, 0xEFAD, 0x9504, 0xB3FA, 0x9505, 0xB9F8, 0x9506, 0xEFAF, - 0x9507, 0xEFB0, 0x9508, 0xD0E2, 0x9509, 0xEFB1, 0x950A, 0xEFB2, - 0x950B, 0xB7E6, 0x950C, 0xD0BF, 0x950D, 0xEFB3, 0x950E, 0xEFB4, - 0x950F, 0xEFB5, 0x9510, 0xC8F1, 0x9511, 0xCCE0, 0x9512, 0xEFB6, - 0x9513, 0xEFB7, 0x9514, 0xEFB8, 0x9515, 0xEFB9, 0x9516, 0xEFBA, - 0x9517, 0xD5E0, 0x9518, 0xEFBB, 0x9519, 0xB4ED, 0x951A, 0xC3AA, - 0x951B, 0xEFBC, 0x951C, 0xE89F, 0x951D, 0xEFBD, 0x951E, 0xEFBE, - 0x951F, 0xEFBF, 0x9520, 0xE8A0, 0x9521, 0xCEFD, 0x9522, 0xEFC0, - 0x9523, 0xC2E0, 0x9524, 0xB4B8, 0x9525, 0xD7B6, 0x9526, 0xBDF5, - 0x9527, 0xE940, 0x9528, 0xCFC7, 0x9529, 0xEFC3, 0x952A, 0xEFC1, - 0x952B, 0xEFC2, 0x952C, 0xEFC4, 0x952D, 0xB6A7, 0x952E, 0xBCFC, - 0x952F, 0xBEE2, 0x9530, 0xC3CC, 0x9531, 0xEFC5, 0x9532, 0xEFC6, - 0x9533, 0xE941, 0x9534, 0xEFC7, 0x9535, 0xEFCF, 0x9536, 0xEFC8, - 0x9537, 0xEFC9, 0x9538, 0xEFCA, 0x9539, 0xC7C2, 0x953A, 0xEFF1, - 0x953B, 0xB6CD, 0x953C, 0xEFCB, 0x953D, 0xE942, 0x953E, 0xEFCC, - 0x953F, 0xEFCD, 0x9540, 0xB6C6, 0x9541, 0xC3BE, 0x9542, 0xEFCE, - 0x9543, 0xE943, 0x9544, 0xEFD0, 0x9545, 0xEFD1, 0x9546, 0xEFD2, - 0x9547, 0xD5F2, 0x9548, 0xE944, 0x9549, 0xEFD3, 0x954A, 0xC4F7, - 0x954B, 0xE945, 0x954C, 0xEFD4, 0x954D, 0xC4F8, 0x954E, 0xEFD5, - 0x954F, 0xEFD6, 0x9550, 0xB8E4, 0x9551, 0xB0F7, 0x9552, 0xEFD7, - 0x9553, 0xEFD8, 0x9554, 0xEFD9, 0x9555, 0xE946, 0x9556, 0xEFDA, - 0x9557, 0xEFDB, 0x9558, 0xEFDC, 0x9559, 0xEFDD, 0x955A, 0xE947, - 0x955B, 0xEFDE, 0x955C, 0xBEB5, 0x955D, 0xEFE1, 0x955E, 0xEFDF, - 0x955F, 0xEFE0, 0x9560, 0xE948, 0x9561, 0xEFE2, 0x9562, 0xEFE3, - 0x9563, 0xC1CD, 0x9564, 0xEFE4, 0x9565, 0xEFE5, 0x9566, 0xEFE6, - 0x9567, 0xEFE7, 0x9568, 0xEFE8, 0x9569, 0xEFE9, 0x956A, 0xEFEA, - 0x956B, 0xEFEB, 0x956C, 0xEFEC, 0x956D, 0xC0D8, 0x956E, 0xE949, - 0x956F, 0xEFED, 0x9570, 0xC1AD, 0x9571, 0xEFEE, 0x9572, 0xEFEF, - 0x9573, 0xEFF0, 0x9574, 0xE94A, 0x9575, 0xE94B, 0x9576, 0xCFE2, - 0x9577, 0xE94C, 0x9578, 0xE94D, 0x9579, 0xE94E, 0x957A, 0xE94F, - 0x957B, 0xE950, 0x957C, 0xE951, 0x957D, 0xE952, 0x957E, 0xE953, - 0x957F, 0xB3A4, 0x9580, 0xE954, 0x9581, 0xE955, 0x9582, 0xE956, - 0x9583, 0xE957, 0x9584, 0xE958, 0x9585, 0xE959, 0x9586, 0xE95A, - 0x9587, 0xE95B, 0x9588, 0xE95C, 0x9589, 0xE95D, 0x958A, 0xE95E, - 0x958B, 0xE95F, 0x958C, 0xE960, 0x958D, 0xE961, 0x958E, 0xE962, - 0x958F, 0xE963, 0x9590, 0xE964, 0x9591, 0xE965, 0x9592, 0xE966, - 0x9593, 0xE967, 0x9594, 0xE968, 0x9595, 0xE969, 0x9596, 0xE96A, - 0x9597, 0xE96B, 0x9598, 0xE96C, 0x9599, 0xE96D, 0x959A, 0xE96E, - 0x959B, 0xE96F, 0x959C, 0xE970, 0x959D, 0xE971, 0x959E, 0xE972, - 0x959F, 0xE973, 0x95A0, 0xE974, 0x95A1, 0xE975, 0x95A2, 0xE976, - 0x95A3, 0xE977, 0x95A4, 0xE978, 0x95A5, 0xE979, 0x95A6, 0xE97A, - 0x95A7, 0xE97B, 0x95A8, 0xE97C, 0x95A9, 0xE97D, 0x95AA, 0xE97E, - 0x95AB, 0xE980, 0x95AC, 0xE981, 0x95AD, 0xE982, 0x95AE, 0xE983, - 0x95AF, 0xE984, 0x95B0, 0xE985, 0x95B1, 0xE986, 0x95B2, 0xE987, - 0x95B3, 0xE988, 0x95B4, 0xE989, 0x95B5, 0xE98A, 0x95B6, 0xE98B, - 0x95B7, 0xE98C, 0x95B8, 0xE98D, 0x95B9, 0xE98E, 0x95BA, 0xE98F, - 0x95BB, 0xE990, 0x95BC, 0xE991, 0x95BD, 0xE992, 0x95BE, 0xE993, - 0x95BF, 0xE994, 0x95C0, 0xE995, 0x95C1, 0xE996, 0x95C2, 0xE997, - 0x95C3, 0xE998, 0x95C4, 0xE999, 0x95C5, 0xE99A, 0x95C6, 0xE99B, - 0x95C7, 0xE99C, 0x95C8, 0xE99D, 0x95C9, 0xE99E, 0x95CA, 0xE99F, - 0x95CB, 0xE9A0, 0x95CC, 0xEA40, 0x95CD, 0xEA41, 0x95CE, 0xEA42, - 0x95CF, 0xEA43, 0x95D0, 0xEA44, 0x95D1, 0xEA45, 0x95D2, 0xEA46, - 0x95D3, 0xEA47, 0x95D4, 0xEA48, 0x95D5, 0xEA49, 0x95D6, 0xEA4A, - 0x95D7, 0xEA4B, 0x95D8, 0xEA4C, 0x95D9, 0xEA4D, 0x95DA, 0xEA4E, - 0x95DB, 0xEA4F, 0x95DC, 0xEA50, 0x95DD, 0xEA51, 0x95DE, 0xEA52, - 0x95DF, 0xEA53, 0x95E0, 0xEA54, 0x95E1, 0xEA55, 0x95E2, 0xEA56, - 0x95E3, 0xEA57, 0x95E4, 0xEA58, 0x95E5, 0xEA59, 0x95E6, 0xEA5A, - 0x95E7, 0xEA5B, 0x95E8, 0xC3C5, 0x95E9, 0xE3C5, 0x95EA, 0xC9C1, - 0x95EB, 0xE3C6, 0x95EC, 0xEA5C, 0x95ED, 0xB1D5, 0x95EE, 0xCECA, - 0x95EF, 0xB4B3, 0x95F0, 0xC8F2, 0x95F1, 0xE3C7, 0x95F2, 0xCFD0, - 0x95F3, 0xE3C8, 0x95F4, 0xBCE4, 0x95F5, 0xE3C9, 0x95F6, 0xE3CA, - 0x95F7, 0xC3C6, 0x95F8, 0xD5A2, 0x95F9, 0xC4D6, 0x95FA, 0xB9EB, - 0x95FB, 0xCEC5, 0x95FC, 0xE3CB, 0x95FD, 0xC3F6, 0x95FE, 0xE3CC, - 0x95FF, 0xEA5D, 0x9600, 0xB7A7, 0x9601, 0xB8F3, 0x9602, 0xBAD2, - 0x9603, 0xE3CD, 0x9604, 0xE3CE, 0x9605, 0xD4C4, 0x9606, 0xE3CF, - 0x9607, 0xEA5E, 0x9608, 0xE3D0, 0x9609, 0xD1CB, 0x960A, 0xE3D1, - 0x960B, 0xE3D2, 0x960C, 0xE3D3, 0x960D, 0xE3D4, 0x960E, 0xD1D6, - 0x960F, 0xE3D5, 0x9610, 0xB2FB, 0x9611, 0xC0BB, 0x9612, 0xE3D6, - 0x9613, 0xEA5F, 0x9614, 0xC0AB, 0x9615, 0xE3D7, 0x9616, 0xE3D8, - 0x9617, 0xE3D9, 0x9618, 0xEA60, 0x9619, 0xE3DA, 0x961A, 0xE3DB, - 0x961B, 0xEA61, 0x961C, 0xB8B7, 0x961D, 0xDAE2, 0x961E, 0xEA62, - 0x961F, 0xB6D3, 0x9620, 0xEA63, 0x9621, 0xDAE4, 0x9622, 0xDAE3, - 0x9623, 0xEA64, 0x9624, 0xEA65, 0x9625, 0xEA66, 0x9626, 0xEA67, - 0x9627, 0xEA68, 0x9628, 0xEA69, 0x9629, 0xEA6A, 0x962A, 0xDAE6, - 0x962B, 0xEA6B, 0x962C, 0xEA6C, 0x962D, 0xEA6D, 0x962E, 0xC8EE, - 0x962F, 0xEA6E, 0x9630, 0xEA6F, 0x9631, 0xDAE5, 0x9632, 0xB7C0, - 0x9633, 0xD1F4, 0x9634, 0xD2F5, 0x9635, 0xD5F3, 0x9636, 0xBDD7, - 0x9637, 0xEA70, 0x9638, 0xEA71, 0x9639, 0xEA72, 0x963A, 0xEA73, - 0x963B, 0xD7E8, 0x963C, 0xDAE8, 0x963D, 0xDAE7, 0x963E, 0xEA74, - 0x963F, 0xB0A2, 0x9640, 0xCDD3, 0x9641, 0xEA75, 0x9642, 0xDAE9, - 0x9643, 0xEA76, 0x9644, 0xB8BD, 0x9645, 0xBCCA, 0x9646, 0xC2BD, - 0x9647, 0xC2A4, 0x9648, 0xB3C2, 0x9649, 0xDAEA, 0x964A, 0xEA77, - 0x964B, 0xC2AA, 0x964C, 0xC4B0, 0x964D, 0xBDB5, 0x964E, 0xEA78, - 0x964F, 0xEA79, 0x9650, 0xCFDE, 0x9651, 0xEA7A, 0x9652, 0xEA7B, - 0x9653, 0xEA7C, 0x9654, 0xDAEB, 0x9655, 0xC9C2, 0x9656, 0xEA7D, - 0x9657, 0xEA7E, 0x9658, 0xEA80, 0x9659, 0xEA81, 0x965A, 0xEA82, - 0x965B, 0xB1DD, 0x965C, 0xEA83, 0x965D, 0xEA84, 0x965E, 0xEA85, - 0x965F, 0xDAEC, 0x9660, 0xEA86, 0x9661, 0xB6B8, 0x9662, 0xD4BA, - 0x9663, 0xEA87, 0x9664, 0xB3FD, 0x9665, 0xEA88, 0x9666, 0xEA89, - 0x9667, 0xDAED, 0x9668, 0xD4C9, 0x9669, 0xCFD5, 0x966A, 0xC5E3, - 0x966B, 0xEA8A, 0x966C, 0xDAEE, 0x966D, 0xEA8B, 0x966E, 0xEA8C, - 0x966F, 0xEA8D, 0x9670, 0xEA8E, 0x9671, 0xEA8F, 0x9672, 0xDAEF, - 0x9673, 0xEA90, 0x9674, 0xDAF0, 0x9675, 0xC1EA, 0x9676, 0xCCD5, - 0x9677, 0xCFDD, 0x9678, 0xEA91, 0x9679, 0xEA92, 0x967A, 0xEA93, - 0x967B, 0xEA94, 0x967C, 0xEA95, 0x967D, 0xEA96, 0x967E, 0xEA97, - 0x967F, 0xEA98, 0x9680, 0xEA99, 0x9681, 0xEA9A, 0x9682, 0xEA9B, - 0x9683, 0xEA9C, 0x9684, 0xEA9D, 0x9685, 0xD3E7, 0x9686, 0xC2A1, - 0x9687, 0xEA9E, 0x9688, 0xDAF1, 0x9689, 0xEA9F, 0x968A, 0xEAA0, - 0x968B, 0xCBE5, 0x968C, 0xEB40, 0x968D, 0xDAF2, 0x968E, 0xEB41, - 0x968F, 0xCBE6, 0x9690, 0xD2FE, 0x9691, 0xEB42, 0x9692, 0xEB43, - 0x9693, 0xEB44, 0x9694, 0xB8F4, 0x9695, 0xEB45, 0x9696, 0xEB46, - 0x9697, 0xDAF3, 0x9698, 0xB0AF, 0x9699, 0xCFB6, 0x969A, 0xEB47, - 0x969B, 0xEB48, 0x969C, 0xD5CF, 0x969D, 0xEB49, 0x969E, 0xEB4A, - 0x969F, 0xEB4B, 0x96A0, 0xEB4C, 0x96A1, 0xEB4D, 0x96A2, 0xEB4E, - 0x96A3, 0xEB4F, 0x96A4, 0xEB50, 0x96A5, 0xEB51, 0x96A6, 0xEB52, - 0x96A7, 0xCBED, 0x96A8, 0xEB53, 0x96A9, 0xEB54, 0x96AA, 0xEB55, - 0x96AB, 0xEB56, 0x96AC, 0xEB57, 0x96AD, 0xEB58, 0x96AE, 0xEB59, - 0x96AF, 0xEB5A, 0x96B0, 0xDAF4, 0x96B1, 0xEB5B, 0x96B2, 0xEB5C, - 0x96B3, 0xE3C4, 0x96B4, 0xEB5D, 0x96B5, 0xEB5E, 0x96B6, 0xC1A5, - 0x96B7, 0xEB5F, 0x96B8, 0xEB60, 0x96B9, 0xF6BF, 0x96BA, 0xEB61, - 0x96BB, 0xEB62, 0x96BC, 0xF6C0, 0x96BD, 0xF6C1, 0x96BE, 0xC4D1, - 0x96BF, 0xEB63, 0x96C0, 0xC8B8, 0x96C1, 0xD1E3, 0x96C2, 0xEB64, - 0x96C3, 0xEB65, 0x96C4, 0xD0DB, 0x96C5, 0xD1C5, 0x96C6, 0xBCAF, - 0x96C7, 0xB9CD, 0x96C8, 0xEB66, 0x96C9, 0xEFF4, 0x96CA, 0xEB67, - 0x96CB, 0xEB68, 0x96CC, 0xB4C6, 0x96CD, 0xD3BA, 0x96CE, 0xF6C2, - 0x96CF, 0xB3FB, 0x96D0, 0xEB69, 0x96D1, 0xEB6A, 0x96D2, 0xF6C3, - 0x96D3, 0xEB6B, 0x96D4, 0xEB6C, 0x96D5, 0xB5F1, 0x96D6, 0xEB6D, - 0x96D7, 0xEB6E, 0x96D8, 0xEB6F, 0x96D9, 0xEB70, 0x96DA, 0xEB71, - 0x96DB, 0xEB72, 0x96DC, 0xEB73, 0x96DD, 0xEB74, 0x96DE, 0xEB75, - 0x96DF, 0xEB76, 0x96E0, 0xF6C5, 0x96E1, 0xEB77, 0x96E2, 0xEB78, - 0x96E3, 0xEB79, 0x96E4, 0xEB7A, 0x96E5, 0xEB7B, 0x96E6, 0xEB7C, - 0x96E7, 0xEB7D, 0x96E8, 0xD3EA, 0x96E9, 0xF6A7, 0x96EA, 0xD1A9, - 0x96EB, 0xEB7E, 0x96EC, 0xEB80, 0x96ED, 0xEB81, 0x96EE, 0xEB82, - 0x96EF, 0xF6A9, 0x96F0, 0xEB83, 0x96F1, 0xEB84, 0x96F2, 0xEB85, - 0x96F3, 0xF6A8, 0x96F4, 0xEB86, 0x96F5, 0xEB87, 0x96F6, 0xC1E3, - 0x96F7, 0xC0D7, 0x96F8, 0xEB88, 0x96F9, 0xB1A2, 0x96FA, 0xEB89, - 0x96FB, 0xEB8A, 0x96FC, 0xEB8B, 0x96FD, 0xEB8C, 0x96FE, 0xCEED, - 0x96FF, 0xEB8D, 0x9700, 0xD0E8, 0x9701, 0xF6AB, 0x9702, 0xEB8E, - 0x9703, 0xEB8F, 0x9704, 0xCFF6, 0x9705, 0xEB90, 0x9706, 0xF6AA, - 0x9707, 0xD5F0, 0x9708, 0xF6AC, 0x9709, 0xC3B9, 0x970A, 0xEB91, - 0x970B, 0xEB92, 0x970C, 0xEB93, 0x970D, 0xBBF4, 0x970E, 0xF6AE, - 0x970F, 0xF6AD, 0x9710, 0xEB94, 0x9711, 0xEB95, 0x9712, 0xEB96, - 0x9713, 0xC4DE, 0x9714, 0xEB97, 0x9715, 0xEB98, 0x9716, 0xC1D8, - 0x9717, 0xEB99, 0x9718, 0xEB9A, 0x9719, 0xEB9B, 0x971A, 0xEB9C, - 0x971B, 0xEB9D, 0x971C, 0xCBAA, 0x971D, 0xEB9E, 0x971E, 0xCFBC, - 0x971F, 0xEB9F, 0x9720, 0xEBA0, 0x9721, 0xEC40, 0x9722, 0xEC41, - 0x9723, 0xEC42, 0x9724, 0xEC43, 0x9725, 0xEC44, 0x9726, 0xEC45, - 0x9727, 0xEC46, 0x9728, 0xEC47, 0x9729, 0xEC48, 0x972A, 0xF6AF, - 0x972B, 0xEC49, 0x972C, 0xEC4A, 0x972D, 0xF6B0, 0x972E, 0xEC4B, - 0x972F, 0xEC4C, 0x9730, 0xF6B1, 0x9731, 0xEC4D, 0x9732, 0xC2B6, - 0x9733, 0xEC4E, 0x9734, 0xEC4F, 0x9735, 0xEC50, 0x9736, 0xEC51, - 0x9737, 0xEC52, 0x9738, 0xB0D4, 0x9739, 0xC5F9, 0x973A, 0xEC53, - 0x973B, 0xEC54, 0x973C, 0xEC55, 0x973D, 0xEC56, 0x973E, 0xF6B2, - 0x973F, 0xEC57, 0x9740, 0xEC58, 0x9741, 0xEC59, 0x9742, 0xEC5A, - 0x9743, 0xEC5B, 0x9744, 0xEC5C, 0x9745, 0xEC5D, 0x9746, 0xEC5E, - 0x9747, 0xEC5F, 0x9748, 0xEC60, 0x9749, 0xEC61, 0x974A, 0xEC62, - 0x974B, 0xEC63, 0x974C, 0xEC64, 0x974D, 0xEC65, 0x974E, 0xEC66, - 0x974F, 0xEC67, 0x9750, 0xEC68, 0x9751, 0xEC69, 0x9752, 0xC7E0, - 0x9753, 0xF6A6, 0x9754, 0xEC6A, 0x9755, 0xEC6B, 0x9756, 0xBEB8, - 0x9757, 0xEC6C, 0x9758, 0xEC6D, 0x9759, 0xBEB2, 0x975A, 0xEC6E, - 0x975B, 0xB5E5, 0x975C, 0xEC6F, 0x975D, 0xEC70, 0x975E, 0xB7C7, - 0x975F, 0xEC71, 0x9760, 0xBFBF, 0x9761, 0xC3D2, 0x9762, 0xC3E6, - 0x9763, 0xEC72, 0x9764, 0xEC73, 0x9765, 0xD8CC, 0x9766, 0xEC74, - 0x9767, 0xEC75, 0x9768, 0xEC76, 0x9769, 0xB8EF, 0x976A, 0xEC77, - 0x976B, 0xEC78, 0x976C, 0xEC79, 0x976D, 0xEC7A, 0x976E, 0xEC7B, - 0x976F, 0xEC7C, 0x9770, 0xEC7D, 0x9771, 0xEC7E, 0x9772, 0xEC80, - 0x9773, 0xBDF9, 0x9774, 0xD1A5, 0x9775, 0xEC81, 0x9776, 0xB0D0, - 0x9777, 0xEC82, 0x9778, 0xEC83, 0x9779, 0xEC84, 0x977A, 0xEC85, - 0x977B, 0xEC86, 0x977C, 0xF7B0, 0x977D, 0xEC87, 0x977E, 0xEC88, - 0x977F, 0xEC89, 0x9780, 0xEC8A, 0x9781, 0xEC8B, 0x9782, 0xEC8C, - 0x9783, 0xEC8D, 0x9784, 0xEC8E, 0x9785, 0xF7B1, 0x9786, 0xEC8F, - 0x9787, 0xEC90, 0x9788, 0xEC91, 0x9789, 0xEC92, 0x978A, 0xEC93, - 0x978B, 0xD0AC, 0x978C, 0xEC94, 0x978D, 0xB0B0, 0x978E, 0xEC95, - 0x978F, 0xEC96, 0x9790, 0xEC97, 0x9791, 0xF7B2, 0x9792, 0xF7B3, - 0x9793, 0xEC98, 0x9794, 0xF7B4, 0x9795, 0xEC99, 0x9796, 0xEC9A, - 0x9797, 0xEC9B, 0x9798, 0xC7CA, 0x9799, 0xEC9C, 0x979A, 0xEC9D, - 0x979B, 0xEC9E, 0x979C, 0xEC9F, 0x979D, 0xECA0, 0x979E, 0xED40, - 0x979F, 0xED41, 0x97A0, 0xBECF, 0x97A1, 0xED42, 0x97A2, 0xED43, - 0x97A3, 0xF7B7, 0x97A4, 0xED44, 0x97A5, 0xED45, 0x97A6, 0xED46, - 0x97A7, 0xED47, 0x97A8, 0xED48, 0x97A9, 0xED49, 0x97AA, 0xED4A, - 0x97AB, 0xF7B6, 0x97AC, 0xED4B, 0x97AD, 0xB1DE, 0x97AE, 0xED4C, - 0x97AF, 0xF7B5, 0x97B0, 0xED4D, 0x97B1, 0xED4E, 0x97B2, 0xF7B8, - 0x97B3, 0xED4F, 0x97B4, 0xF7B9, 0x97B5, 0xED50, 0x97B6, 0xED51, - 0x97B7, 0xED52, 0x97B8, 0xED53, 0x97B9, 0xED54, 0x97BA, 0xED55, - 0x97BB, 0xED56, 0x97BC, 0xED57, 0x97BD, 0xED58, 0x97BE, 0xED59, - 0x97BF, 0xED5A, 0x97C0, 0xED5B, 0x97C1, 0xED5C, 0x97C2, 0xED5D, - 0x97C3, 0xED5E, 0x97C4, 0xED5F, 0x97C5, 0xED60, 0x97C6, 0xED61, - 0x97C7, 0xED62, 0x97C8, 0xED63, 0x97C9, 0xED64, 0x97CA, 0xED65, - 0x97CB, 0xED66, 0x97CC, 0xED67, 0x97CD, 0xED68, 0x97CE, 0xED69, - 0x97CF, 0xED6A, 0x97D0, 0xED6B, 0x97D1, 0xED6C, 0x97D2, 0xED6D, - 0x97D3, 0xED6E, 0x97D4, 0xED6F, 0x97D5, 0xED70, 0x97D6, 0xED71, - 0x97D7, 0xED72, 0x97D8, 0xED73, 0x97D9, 0xED74, 0x97DA, 0xED75, - 0x97DB, 0xED76, 0x97DC, 0xED77, 0x97DD, 0xED78, 0x97DE, 0xED79, - 0x97DF, 0xED7A, 0x97E0, 0xED7B, 0x97E1, 0xED7C, 0x97E2, 0xED7D, - 0x97E3, 0xED7E, 0x97E4, 0xED80, 0x97E5, 0xED81, 0x97E6, 0xCEA4, - 0x97E7, 0xC8CD, 0x97E8, 0xED82, 0x97E9, 0xBAAB, 0x97EA, 0xE8B8, - 0x97EB, 0xE8B9, 0x97EC, 0xE8BA, 0x97ED, 0xBEC2, 0x97EE, 0xED83, - 0x97EF, 0xED84, 0x97F0, 0xED85, 0x97F1, 0xED86, 0x97F2, 0xED87, - 0x97F3, 0xD2F4, 0x97F4, 0xED88, 0x97F5, 0xD4CF, 0x97F6, 0xC9D8, - 0x97F7, 0xED89, 0x97F8, 0xED8A, 0x97F9, 0xED8B, 0x97FA, 0xED8C, - 0x97FB, 0xED8D, 0x97FC, 0xED8E, 0x97FD, 0xED8F, 0x97FE, 0xED90, - 0x97FF, 0xED91, 0x9800, 0xED92, 0x9801, 0xED93, 0x9802, 0xED94, - 0x9803, 0xED95, 0x9804, 0xED96, 0x9805, 0xED97, 0x9806, 0xED98, - 0x9807, 0xED99, 0x9808, 0xED9A, 0x9809, 0xED9B, 0x980A, 0xED9C, - 0x980B, 0xED9D, 0x980C, 0xED9E, 0x980D, 0xED9F, 0x980E, 0xEDA0, - 0x980F, 0xEE40, 0x9810, 0xEE41, 0x9811, 0xEE42, 0x9812, 0xEE43, - 0x9813, 0xEE44, 0x9814, 0xEE45, 0x9815, 0xEE46, 0x9816, 0xEE47, - 0x9817, 0xEE48, 0x9818, 0xEE49, 0x9819, 0xEE4A, 0x981A, 0xEE4B, - 0x981B, 0xEE4C, 0x981C, 0xEE4D, 0x981D, 0xEE4E, 0x981E, 0xEE4F, - 0x981F, 0xEE50, 0x9820, 0xEE51, 0x9821, 0xEE52, 0x9822, 0xEE53, - 0x9823, 0xEE54, 0x9824, 0xEE55, 0x9825, 0xEE56, 0x9826, 0xEE57, - 0x9827, 0xEE58, 0x9828, 0xEE59, 0x9829, 0xEE5A, 0x982A, 0xEE5B, - 0x982B, 0xEE5C, 0x982C, 0xEE5D, 0x982D, 0xEE5E, 0x982E, 0xEE5F, - 0x982F, 0xEE60, 0x9830, 0xEE61, 0x9831, 0xEE62, 0x9832, 0xEE63, - 0x9833, 0xEE64, 0x9834, 0xEE65, 0x9835, 0xEE66, 0x9836, 0xEE67, - 0x9837, 0xEE68, 0x9838, 0xEE69, 0x9839, 0xEE6A, 0x983A, 0xEE6B, - 0x983B, 0xEE6C, 0x983C, 0xEE6D, 0x983D, 0xEE6E, 0x983E, 0xEE6F, - 0x983F, 0xEE70, 0x9840, 0xEE71, 0x9841, 0xEE72, 0x9842, 0xEE73, - 0x9843, 0xEE74, 0x9844, 0xEE75, 0x9845, 0xEE76, 0x9846, 0xEE77, - 0x9847, 0xEE78, 0x9848, 0xEE79, 0x9849, 0xEE7A, 0x984A, 0xEE7B, - 0x984B, 0xEE7C, 0x984C, 0xEE7D, 0x984D, 0xEE7E, 0x984E, 0xEE80, - 0x984F, 0xEE81, 0x9850, 0xEE82, 0x9851, 0xEE83, 0x9852, 0xEE84, - 0x9853, 0xEE85, 0x9854, 0xEE86, 0x9855, 0xEE87, 0x9856, 0xEE88, - 0x9857, 0xEE89, 0x9858, 0xEE8A, 0x9859, 0xEE8B, 0x985A, 0xEE8C, - 0x985B, 0xEE8D, 0x985C, 0xEE8E, 0x985D, 0xEE8F, 0x985E, 0xEE90, - 0x985F, 0xEE91, 0x9860, 0xEE92, 0x9861, 0xEE93, 0x9862, 0xEE94, - 0x9863, 0xEE95, 0x9864, 0xEE96, 0x9865, 0xEE97, 0x9866, 0xEE98, - 0x9867, 0xEE99, 0x9868, 0xEE9A, 0x9869, 0xEE9B, 0x986A, 0xEE9C, - 0x986B, 0xEE9D, 0x986C, 0xEE9E, 0x986D, 0xEE9F, 0x986E, 0xEEA0, - 0x986F, 0xEF40, 0x9870, 0xEF41, 0x9871, 0xEF42, 0x9872, 0xEF43, - 0x9873, 0xEF44, 0x9874, 0xEF45, 0x9875, 0xD2B3, 0x9876, 0xB6A5, - 0x9877, 0xC7EA, 0x9878, 0xF1FC, 0x9879, 0xCFEE, 0x987A, 0xCBB3, - 0x987B, 0xD0EB, 0x987C, 0xE7EF, 0x987D, 0xCDE7, 0x987E, 0xB9CB, - 0x987F, 0xB6D9, 0x9880, 0xF1FD, 0x9881, 0xB0E4, 0x9882, 0xCBCC, - 0x9883, 0xF1FE, 0x9884, 0xD4A4, 0x9885, 0xC2AD, 0x9886, 0xC1EC, - 0x9887, 0xC6C4, 0x9888, 0xBEB1, 0x9889, 0xF2A1, 0x988A, 0xBCD5, - 0x988B, 0xEF46, 0x988C, 0xF2A2, 0x988D, 0xF2A3, 0x988E, 0xEF47, - 0x988F, 0xF2A4, 0x9890, 0xD2C3, 0x9891, 0xC6B5, 0x9892, 0xEF48, - 0x9893, 0xCDC7, 0x9894, 0xF2A5, 0x9895, 0xEF49, 0x9896, 0xD3B1, - 0x9897, 0xBFC5, 0x9898, 0xCCE2, 0x9899, 0xEF4A, 0x989A, 0xF2A6, - 0x989B, 0xF2A7, 0x989C, 0xD1D5, 0x989D, 0xB6EE, 0x989E, 0xF2A8, - 0x989F, 0xF2A9, 0x98A0, 0xB5DF, 0x98A1, 0xF2AA, 0x98A2, 0xF2AB, - 0x98A3, 0xEF4B, 0x98A4, 0xB2FC, 0x98A5, 0xF2AC, 0x98A6, 0xF2AD, - 0x98A7, 0xC8A7, 0x98A8, 0xEF4C, 0x98A9, 0xEF4D, 0x98AA, 0xEF4E, - 0x98AB, 0xEF4F, 0x98AC, 0xEF50, 0x98AD, 0xEF51, 0x98AE, 0xEF52, - 0x98AF, 0xEF53, 0x98B0, 0xEF54, 0x98B1, 0xEF55, 0x98B2, 0xEF56, - 0x98B3, 0xEF57, 0x98B4, 0xEF58, 0x98B5, 0xEF59, 0x98B6, 0xEF5A, - 0x98B7, 0xEF5B, 0x98B8, 0xEF5C, 0x98B9, 0xEF5D, 0x98BA, 0xEF5E, - 0x98BB, 0xEF5F, 0x98BC, 0xEF60, 0x98BD, 0xEF61, 0x98BE, 0xEF62, - 0x98BF, 0xEF63, 0x98C0, 0xEF64, 0x98C1, 0xEF65, 0x98C2, 0xEF66, - 0x98C3, 0xEF67, 0x98C4, 0xEF68, 0x98C5, 0xEF69, 0x98C6, 0xEF6A, - 0x98C7, 0xEF6B, 0x98C8, 0xEF6C, 0x98C9, 0xEF6D, 0x98CA, 0xEF6E, - 0x98CB, 0xEF6F, 0x98CC, 0xEF70, 0x98CD, 0xEF71, 0x98CE, 0xB7E7, - 0x98CF, 0xEF72, 0x98D0, 0xEF73, 0x98D1, 0xECA9, 0x98D2, 0xECAA, - 0x98D3, 0xECAB, 0x98D4, 0xEF74, 0x98D5, 0xECAC, 0x98D6, 0xEF75, - 0x98D7, 0xEF76, 0x98D8, 0xC6AE, 0x98D9, 0xECAD, 0x98DA, 0xECAE, - 0x98DB, 0xEF77, 0x98DC, 0xEF78, 0x98DD, 0xEF79, 0x98DE, 0xB7C9, - 0x98DF, 0xCAB3, 0x98E0, 0xEF7A, 0x98E1, 0xEF7B, 0x98E2, 0xEF7C, - 0x98E3, 0xEF7D, 0x98E4, 0xEF7E, 0x98E5, 0xEF80, 0x98E6, 0xEF81, - 0x98E7, 0xE2B8, 0x98E8, 0xF7CF, 0x98E9, 0xEF82, 0x98EA, 0xEF83, - 0x98EB, 0xEF84, 0x98EC, 0xEF85, 0x98ED, 0xEF86, 0x98EE, 0xEF87, - 0x98EF, 0xEF88, 0x98F0, 0xEF89, 0x98F1, 0xEF8A, 0x98F2, 0xEF8B, - 0x98F3, 0xEF8C, 0x98F4, 0xEF8D, 0x98F5, 0xEF8E, 0x98F6, 0xEF8F, - 0x98F7, 0xEF90, 0x98F8, 0xEF91, 0x98F9, 0xEF92, 0x98FA, 0xEF93, - 0x98FB, 0xEF94, 0x98FC, 0xEF95, 0x98FD, 0xEF96, 0x98FE, 0xEF97, - 0x98FF, 0xEF98, 0x9900, 0xEF99, 0x9901, 0xEF9A, 0x9902, 0xEF9B, - 0x9903, 0xEF9C, 0x9904, 0xEF9D, 0x9905, 0xEF9E, 0x9906, 0xEF9F, - 0x9907, 0xEFA0, 0x9908, 0xF040, 0x9909, 0xF041, 0x990A, 0xF042, - 0x990B, 0xF043, 0x990C, 0xF044, 0x990D, 0xF7D0, 0x990E, 0xF045, - 0x990F, 0xF046, 0x9910, 0xB2CD, 0x9911, 0xF047, 0x9912, 0xF048, - 0x9913, 0xF049, 0x9914, 0xF04A, 0x9915, 0xF04B, 0x9916, 0xF04C, - 0x9917, 0xF04D, 0x9918, 0xF04E, 0x9919, 0xF04F, 0x991A, 0xF050, - 0x991B, 0xF051, 0x991C, 0xF052, 0x991D, 0xF053, 0x991E, 0xF054, - 0x991F, 0xF055, 0x9920, 0xF056, 0x9921, 0xF057, 0x9922, 0xF058, - 0x9923, 0xF059, 0x9924, 0xF05A, 0x9925, 0xF05B, 0x9926, 0xF05C, - 0x9927, 0xF05D, 0x9928, 0xF05E, 0x9929, 0xF05F, 0x992A, 0xF060, - 0x992B, 0xF061, 0x992C, 0xF062, 0x992D, 0xF063, 0x992E, 0xF7D1, - 0x992F, 0xF064, 0x9930, 0xF065, 0x9931, 0xF066, 0x9932, 0xF067, - 0x9933, 0xF068, 0x9934, 0xF069, 0x9935, 0xF06A, 0x9936, 0xF06B, - 0x9937, 0xF06C, 0x9938, 0xF06D, 0x9939, 0xF06E, 0x993A, 0xF06F, - 0x993B, 0xF070, 0x993C, 0xF071, 0x993D, 0xF072, 0x993E, 0xF073, - 0x993F, 0xF074, 0x9940, 0xF075, 0x9941, 0xF076, 0x9942, 0xF077, - 0x9943, 0xF078, 0x9944, 0xF079, 0x9945, 0xF07A, 0x9946, 0xF07B, - 0x9947, 0xF07C, 0x9948, 0xF07D, 0x9949, 0xF07E, 0x994A, 0xF080, - 0x994B, 0xF081, 0x994C, 0xF082, 0x994D, 0xF083, 0x994E, 0xF084, - 0x994F, 0xF085, 0x9950, 0xF086, 0x9951, 0xF087, 0x9952, 0xF088, - 0x9953, 0xF089, 0x9954, 0xF7D3, 0x9955, 0xF7D2, 0x9956, 0xF08A, - 0x9957, 0xF08B, 0x9958, 0xF08C, 0x9959, 0xF08D, 0x995A, 0xF08E, - 0x995B, 0xF08F, 0x995C, 0xF090, 0x995D, 0xF091, 0x995E, 0xF092, - 0x995F, 0xF093, 0x9960, 0xF094, 0x9961, 0xF095, 0x9962, 0xF096, - 0x9963, 0xE2BB, 0x9964, 0xF097, 0x9965, 0xBCA2, 0x9966, 0xF098, - 0x9967, 0xE2BC, 0x9968, 0xE2BD, 0x9969, 0xE2BE, 0x996A, 0xE2BF, - 0x996B, 0xE2C0, 0x996C, 0xE2C1, 0x996D, 0xB7B9, 0x996E, 0xD2FB, - 0x996F, 0xBDA4, 0x9970, 0xCACE, 0x9971, 0xB1A5, 0x9972, 0xCBC7, - 0x9973, 0xF099, 0x9974, 0xE2C2, 0x9975, 0xB6FC, 0x9976, 0xC8C4, - 0x9977, 0xE2C3, 0x9978, 0xF09A, 0x9979, 0xF09B, 0x997A, 0xBDC8, - 0x997B, 0xF09C, 0x997C, 0xB1FD, 0x997D, 0xE2C4, 0x997E, 0xF09D, - 0x997F, 0xB6F6, 0x9980, 0xE2C5, 0x9981, 0xC4D9, 0x9982, 0xF09E, - 0x9983, 0xF09F, 0x9984, 0xE2C6, 0x9985, 0xCFDA, 0x9986, 0xB9DD, - 0x9987, 0xE2C7, 0x9988, 0xC0A1, 0x9989, 0xF0A0, 0x998A, 0xE2C8, - 0x998B, 0xB2F6, 0x998C, 0xF140, 0x998D, 0xE2C9, 0x998E, 0xF141, - 0x998F, 0xC1F3, 0x9990, 0xE2CA, 0x9991, 0xE2CB, 0x9992, 0xC2F8, - 0x9993, 0xE2CC, 0x9994, 0xE2CD, 0x9995, 0xE2CE, 0x9996, 0xCAD7, - 0x9997, 0xD8B8, 0x9998, 0xD9E5, 0x9999, 0xCFE3, 0x999A, 0xF142, - 0x999B, 0xF143, 0x999C, 0xF144, 0x999D, 0xF145, 0x999E, 0xF146, - 0x999F, 0xF147, 0x99A0, 0xF148, 0x99A1, 0xF149, 0x99A2, 0xF14A, - 0x99A3, 0xF14B, 0x99A4, 0xF14C, 0x99A5, 0xF0A5, 0x99A6, 0xF14D, - 0x99A7, 0xF14E, 0x99A8, 0xDCB0, 0x99A9, 0xF14F, 0x99AA, 0xF150, - 0x99AB, 0xF151, 0x99AC, 0xF152, 0x99AD, 0xF153, 0x99AE, 0xF154, - 0x99AF, 0xF155, 0x99B0, 0xF156, 0x99B1, 0xF157, 0x99B2, 0xF158, - 0x99B3, 0xF159, 0x99B4, 0xF15A, 0x99B5, 0xF15B, 0x99B6, 0xF15C, - 0x99B7, 0xF15D, 0x99B8, 0xF15E, 0x99B9, 0xF15F, 0x99BA, 0xF160, - 0x99BB, 0xF161, 0x99BC, 0xF162, 0x99BD, 0xF163, 0x99BE, 0xF164, - 0x99BF, 0xF165, 0x99C0, 0xF166, 0x99C1, 0xF167, 0x99C2, 0xF168, - 0x99C3, 0xF169, 0x99C4, 0xF16A, 0x99C5, 0xF16B, 0x99C6, 0xF16C, - 0x99C7, 0xF16D, 0x99C8, 0xF16E, 0x99C9, 0xF16F, 0x99CA, 0xF170, - 0x99CB, 0xF171, 0x99CC, 0xF172, 0x99CD, 0xF173, 0x99CE, 0xF174, - 0x99CF, 0xF175, 0x99D0, 0xF176, 0x99D1, 0xF177, 0x99D2, 0xF178, - 0x99D3, 0xF179, 0x99D4, 0xF17A, 0x99D5, 0xF17B, 0x99D6, 0xF17C, - 0x99D7, 0xF17D, 0x99D8, 0xF17E, 0x99D9, 0xF180, 0x99DA, 0xF181, - 0x99DB, 0xF182, 0x99DC, 0xF183, 0x99DD, 0xF184, 0x99DE, 0xF185, - 0x99DF, 0xF186, 0x99E0, 0xF187, 0x99E1, 0xF188, 0x99E2, 0xF189, - 0x99E3, 0xF18A, 0x99E4, 0xF18B, 0x99E5, 0xF18C, 0x99E6, 0xF18D, - 0x99E7, 0xF18E, 0x99E8, 0xF18F, 0x99E9, 0xF190, 0x99EA, 0xF191, - 0x99EB, 0xF192, 0x99EC, 0xF193, 0x99ED, 0xF194, 0x99EE, 0xF195, - 0x99EF, 0xF196, 0x99F0, 0xF197, 0x99F1, 0xF198, 0x99F2, 0xF199, - 0x99F3, 0xF19A, 0x99F4, 0xF19B, 0x99F5, 0xF19C, 0x99F6, 0xF19D, - 0x99F7, 0xF19E, 0x99F8, 0xF19F, 0x99F9, 0xF1A0, 0x99FA, 0xF240, - 0x99FB, 0xF241, 0x99FC, 0xF242, 0x99FD, 0xF243, 0x99FE, 0xF244, - 0x99FF, 0xF245, 0x9A00, 0xF246, 0x9A01, 0xF247, 0x9A02, 0xF248, - 0x9A03, 0xF249, 0x9A04, 0xF24A, 0x9A05, 0xF24B, 0x9A06, 0xF24C, - 0x9A07, 0xF24D, 0x9A08, 0xF24E, 0x9A09, 0xF24F, 0x9A0A, 0xF250, - 0x9A0B, 0xF251, 0x9A0C, 0xF252, 0x9A0D, 0xF253, 0x9A0E, 0xF254, - 0x9A0F, 0xF255, 0x9A10, 0xF256, 0x9A11, 0xF257, 0x9A12, 0xF258, - 0x9A13, 0xF259, 0x9A14, 0xF25A, 0x9A15, 0xF25B, 0x9A16, 0xF25C, - 0x9A17, 0xF25D, 0x9A18, 0xF25E, 0x9A19, 0xF25F, 0x9A1A, 0xF260, - 0x9A1B, 0xF261, 0x9A1C, 0xF262, 0x9A1D, 0xF263, 0x9A1E, 0xF264, - 0x9A1F, 0xF265, 0x9A20, 0xF266, 0x9A21, 0xF267, 0x9A22, 0xF268, - 0x9A23, 0xF269, 0x9A24, 0xF26A, 0x9A25, 0xF26B, 0x9A26, 0xF26C, - 0x9A27, 0xF26D, 0x9A28, 0xF26E, 0x9A29, 0xF26F, 0x9A2A, 0xF270, - 0x9A2B, 0xF271, 0x9A2C, 0xF272, 0x9A2D, 0xF273, 0x9A2E, 0xF274, - 0x9A2F, 0xF275, 0x9A30, 0xF276, 0x9A31, 0xF277, 0x9A32, 0xF278, - 0x9A33, 0xF279, 0x9A34, 0xF27A, 0x9A35, 0xF27B, 0x9A36, 0xF27C, - 0x9A37, 0xF27D, 0x9A38, 0xF27E, 0x9A39, 0xF280, 0x9A3A, 0xF281, - 0x9A3B, 0xF282, 0x9A3C, 0xF283, 0x9A3D, 0xF284, 0x9A3E, 0xF285, - 0x9A3F, 0xF286, 0x9A40, 0xF287, 0x9A41, 0xF288, 0x9A42, 0xF289, - 0x9A43, 0xF28A, 0x9A44, 0xF28B, 0x9A45, 0xF28C, 0x9A46, 0xF28D, - 0x9A47, 0xF28E, 0x9A48, 0xF28F, 0x9A49, 0xF290, 0x9A4A, 0xF291, - 0x9A4B, 0xF292, 0x9A4C, 0xF293, 0x9A4D, 0xF294, 0x9A4E, 0xF295, - 0x9A4F, 0xF296, 0x9A50, 0xF297, 0x9A51, 0xF298, 0x9A52, 0xF299, - 0x9A53, 0xF29A, 0x9A54, 0xF29B, 0x9A55, 0xF29C, 0x9A56, 0xF29D, - 0x9A57, 0xF29E, 0x9A58, 0xF29F, 0x9A59, 0xF2A0, 0x9A5A, 0xF340, - 0x9A5B, 0xF341, 0x9A5C, 0xF342, 0x9A5D, 0xF343, 0x9A5E, 0xF344, - 0x9A5F, 0xF345, 0x9A60, 0xF346, 0x9A61, 0xF347, 0x9A62, 0xF348, - 0x9A63, 0xF349, 0x9A64, 0xF34A, 0x9A65, 0xF34B, 0x9A66, 0xF34C, - 0x9A67, 0xF34D, 0x9A68, 0xF34E, 0x9A69, 0xF34F, 0x9A6A, 0xF350, - 0x9A6B, 0xF351, 0x9A6C, 0xC2ED, 0x9A6D, 0xD4A6, 0x9A6E, 0xCDD4, - 0x9A6F, 0xD1B1, 0x9A70, 0xB3DB, 0x9A71, 0xC7FD, 0x9A72, 0xF352, - 0x9A73, 0xB2B5, 0x9A74, 0xC2BF, 0x9A75, 0xE6E0, 0x9A76, 0xCABB, - 0x9A77, 0xE6E1, 0x9A78, 0xE6E2, 0x9A79, 0xBED4, 0x9A7A, 0xE6E3, - 0x9A7B, 0xD7A4, 0x9A7C, 0xCDD5, 0x9A7D, 0xE6E5, 0x9A7E, 0xBCDD, - 0x9A7F, 0xE6E4, 0x9A80, 0xE6E6, 0x9A81, 0xE6E7, 0x9A82, 0xC2EE, - 0x9A83, 0xF353, 0x9A84, 0xBDBE, 0x9A85, 0xE6E8, 0x9A86, 0xC2E6, - 0x9A87, 0xBAA7, 0x9A88, 0xE6E9, 0x9A89, 0xF354, 0x9A8A, 0xE6EA, - 0x9A8B, 0xB3D2, 0x9A8C, 0xD1E9, 0x9A8D, 0xF355, 0x9A8E, 0xF356, - 0x9A8F, 0xBFA5, 0x9A90, 0xE6EB, 0x9A91, 0xC6EF, 0x9A92, 0xE6EC, - 0x9A93, 0xE6ED, 0x9A94, 0xF357, 0x9A95, 0xF358, 0x9A96, 0xE6EE, - 0x9A97, 0xC6AD, 0x9A98, 0xE6EF, 0x9A99, 0xF359, 0x9A9A, 0xC9A7, - 0x9A9B, 0xE6F0, 0x9A9C, 0xE6F1, 0x9A9D, 0xE6F2, 0x9A9E, 0xE5B9, - 0x9A9F, 0xE6F3, 0x9AA0, 0xE6F4, 0x9AA1, 0xC2E2, 0x9AA2, 0xE6F5, - 0x9AA3, 0xE6F6, 0x9AA4, 0xD6E8, 0x9AA5, 0xE6F7, 0x9AA6, 0xF35A, - 0x9AA7, 0xE6F8, 0x9AA8, 0xB9C7, 0x9AA9, 0xF35B, 0x9AAA, 0xF35C, - 0x9AAB, 0xF35D, 0x9AAC, 0xF35E, 0x9AAD, 0xF35F, 0x9AAE, 0xF360, - 0x9AAF, 0xF361, 0x9AB0, 0xF7BB, 0x9AB1, 0xF7BA, 0x9AB2, 0xF362, - 0x9AB3, 0xF363, 0x9AB4, 0xF364, 0x9AB5, 0xF365, 0x9AB6, 0xF7BE, - 0x9AB7, 0xF7BC, 0x9AB8, 0xBAA1, 0x9AB9, 0xF366, 0x9ABA, 0xF7BF, - 0x9ABB, 0xF367, 0x9ABC, 0xF7C0, 0x9ABD, 0xF368, 0x9ABE, 0xF369, - 0x9ABF, 0xF36A, 0x9AC0, 0xF7C2, 0x9AC1, 0xF7C1, 0x9AC2, 0xF7C4, - 0x9AC3, 0xF36B, 0x9AC4, 0xF36C, 0x9AC5, 0xF7C3, 0x9AC6, 0xF36D, - 0x9AC7, 0xF36E, 0x9AC8, 0xF36F, 0x9AC9, 0xF370, 0x9ACA, 0xF371, - 0x9ACB, 0xF7C5, 0x9ACC, 0xF7C6, 0x9ACD, 0xF372, 0x9ACE, 0xF373, - 0x9ACF, 0xF374, 0x9AD0, 0xF375, 0x9AD1, 0xF7C7, 0x9AD2, 0xF376, - 0x9AD3, 0xCBE8, 0x9AD4, 0xF377, 0x9AD5, 0xF378, 0x9AD6, 0xF379, - 0x9AD7, 0xF37A, 0x9AD8, 0xB8DF, 0x9AD9, 0xF37B, 0x9ADA, 0xF37C, - 0x9ADB, 0xF37D, 0x9ADC, 0xF37E, 0x9ADD, 0xF380, 0x9ADE, 0xF381, - 0x9ADF, 0xF7D4, 0x9AE0, 0xF382, 0x9AE1, 0xF7D5, 0x9AE2, 0xF383, - 0x9AE3, 0xF384, 0x9AE4, 0xF385, 0x9AE5, 0xF386, 0x9AE6, 0xF7D6, - 0x9AE7, 0xF387, 0x9AE8, 0xF388, 0x9AE9, 0xF389, 0x9AEA, 0xF38A, - 0x9AEB, 0xF7D8, 0x9AEC, 0xF38B, 0x9AED, 0xF7DA, 0x9AEE, 0xF38C, - 0x9AEF, 0xF7D7, 0x9AF0, 0xF38D, 0x9AF1, 0xF38E, 0x9AF2, 0xF38F, - 0x9AF3, 0xF390, 0x9AF4, 0xF391, 0x9AF5, 0xF392, 0x9AF6, 0xF393, - 0x9AF7, 0xF394, 0x9AF8, 0xF395, 0x9AF9, 0xF7DB, 0x9AFA, 0xF396, - 0x9AFB, 0xF7D9, 0x9AFC, 0xF397, 0x9AFD, 0xF398, 0x9AFE, 0xF399, - 0x9AFF, 0xF39A, 0x9B00, 0xF39B, 0x9B01, 0xF39C, 0x9B02, 0xF39D, - 0x9B03, 0xD7D7, 0x9B04, 0xF39E, 0x9B05, 0xF39F, 0x9B06, 0xF3A0, - 0x9B07, 0xF440, 0x9B08, 0xF7DC, 0x9B09, 0xF441, 0x9B0A, 0xF442, - 0x9B0B, 0xF443, 0x9B0C, 0xF444, 0x9B0D, 0xF445, 0x9B0E, 0xF446, - 0x9B0F, 0xF7DD, 0x9B10, 0xF447, 0x9B11, 0xF448, 0x9B12, 0xF449, - 0x9B13, 0xF7DE, 0x9B14, 0xF44A, 0x9B15, 0xF44B, 0x9B16, 0xF44C, - 0x9B17, 0xF44D, 0x9B18, 0xF44E, 0x9B19, 0xF44F, 0x9B1A, 0xF450, - 0x9B1B, 0xF451, 0x9B1C, 0xF452, 0x9B1D, 0xF453, 0x9B1E, 0xF454, - 0x9B1F, 0xF7DF, 0x9B20, 0xF455, 0x9B21, 0xF456, 0x9B22, 0xF457, - 0x9B23, 0xF7E0, 0x9B24, 0xF458, 0x9B25, 0xF459, 0x9B26, 0xF45A, - 0x9B27, 0xF45B, 0x9B28, 0xF45C, 0x9B29, 0xF45D, 0x9B2A, 0xF45E, - 0x9B2B, 0xF45F, 0x9B2C, 0xF460, 0x9B2D, 0xF461, 0x9B2E, 0xF462, - 0x9B2F, 0xDBCB, 0x9B30, 0xF463, 0x9B31, 0xF464, 0x9B32, 0xD8AA, - 0x9B33, 0xF465, 0x9B34, 0xF466, 0x9B35, 0xF467, 0x9B36, 0xF468, - 0x9B37, 0xF469, 0x9B38, 0xF46A, 0x9B39, 0xF46B, 0x9B3A, 0xF46C, - 0x9B3B, 0xE5F7, 0x9B3C, 0xB9ED, 0x9B3D, 0xF46D, 0x9B3E, 0xF46E, - 0x9B3F, 0xF46F, 0x9B40, 0xF470, 0x9B41, 0xBFFD, 0x9B42, 0xBBEA, - 0x9B43, 0xF7C9, 0x9B44, 0xC6C7, 0x9B45, 0xF7C8, 0x9B46, 0xF471, - 0x9B47, 0xF7CA, 0x9B48, 0xF7CC, 0x9B49, 0xF7CB, 0x9B4A, 0xF472, - 0x9B4B, 0xF473, 0x9B4C, 0xF474, 0x9B4D, 0xF7CD, 0x9B4E, 0xF475, - 0x9B4F, 0xCEBA, 0x9B50, 0xF476, 0x9B51, 0xF7CE, 0x9B52, 0xF477, - 0x9B53, 0xF478, 0x9B54, 0xC4A7, 0x9B55, 0xF479, 0x9B56, 0xF47A, - 0x9B57, 0xF47B, 0x9B58, 0xF47C, 0x9B59, 0xF47D, 0x9B5A, 0xF47E, - 0x9B5B, 0xF480, 0x9B5C, 0xF481, 0x9B5D, 0xF482, 0x9B5E, 0xF483, - 0x9B5F, 0xF484, 0x9B60, 0xF485, 0x9B61, 0xF486, 0x9B62, 0xF487, - 0x9B63, 0xF488, 0x9B64, 0xF489, 0x9B65, 0xF48A, 0x9B66, 0xF48B, - 0x9B67, 0xF48C, 0x9B68, 0xF48D, 0x9B69, 0xF48E, 0x9B6A, 0xF48F, - 0x9B6B, 0xF490, 0x9B6C, 0xF491, 0x9B6D, 0xF492, 0x9B6E, 0xF493, - 0x9B6F, 0xF494, 0x9B70, 0xF495, 0x9B71, 0xF496, 0x9B72, 0xF497, - 0x9B73, 0xF498, 0x9B74, 0xF499, 0x9B75, 0xF49A, 0x9B76, 0xF49B, - 0x9B77, 0xF49C, 0x9B78, 0xF49D, 0x9B79, 0xF49E, 0x9B7A, 0xF49F, - 0x9B7B, 0xF4A0, 0x9B7C, 0xF540, 0x9B7D, 0xF541, 0x9B7E, 0xF542, - 0x9B7F, 0xF543, 0x9B80, 0xF544, 0x9B81, 0xF545, 0x9B82, 0xF546, - 0x9B83, 0xF547, 0x9B84, 0xF548, 0x9B85, 0xF549, 0x9B86, 0xF54A, - 0x9B87, 0xF54B, 0x9B88, 0xF54C, 0x9B89, 0xF54D, 0x9B8A, 0xF54E, - 0x9B8B, 0xF54F, 0x9B8C, 0xF550, 0x9B8D, 0xF551, 0x9B8E, 0xF552, - 0x9B8F, 0xF553, 0x9B90, 0xF554, 0x9B91, 0xF555, 0x9B92, 0xF556, - 0x9B93, 0xF557, 0x9B94, 0xF558, 0x9B95, 0xF559, 0x9B96, 0xF55A, - 0x9B97, 0xF55B, 0x9B98, 0xF55C, 0x9B99, 0xF55D, 0x9B9A, 0xF55E, - 0x9B9B, 0xF55F, 0x9B9C, 0xF560, 0x9B9D, 0xF561, 0x9B9E, 0xF562, - 0x9B9F, 0xF563, 0x9BA0, 0xF564, 0x9BA1, 0xF565, 0x9BA2, 0xF566, - 0x9BA3, 0xF567, 0x9BA4, 0xF568, 0x9BA5, 0xF569, 0x9BA6, 0xF56A, - 0x9BA7, 0xF56B, 0x9BA8, 0xF56C, 0x9BA9, 0xF56D, 0x9BAA, 0xF56E, - 0x9BAB, 0xF56F, 0x9BAC, 0xF570, 0x9BAD, 0xF571, 0x9BAE, 0xF572, - 0x9BAF, 0xF573, 0x9BB0, 0xF574, 0x9BB1, 0xF575, 0x9BB2, 0xF576, - 0x9BB3, 0xF577, 0x9BB4, 0xF578, 0x9BB5, 0xF579, 0x9BB6, 0xF57A, - 0x9BB7, 0xF57B, 0x9BB8, 0xF57C, 0x9BB9, 0xF57D, 0x9BBA, 0xF57E, - 0x9BBB, 0xF580, 0x9BBC, 0xF581, 0x9BBD, 0xF582, 0x9BBE, 0xF583, - 0x9BBF, 0xF584, 0x9BC0, 0xF585, 0x9BC1, 0xF586, 0x9BC2, 0xF587, - 0x9BC3, 0xF588, 0x9BC4, 0xF589, 0x9BC5, 0xF58A, 0x9BC6, 0xF58B, - 0x9BC7, 0xF58C, 0x9BC8, 0xF58D, 0x9BC9, 0xF58E, 0x9BCA, 0xF58F, - 0x9BCB, 0xF590, 0x9BCC, 0xF591, 0x9BCD, 0xF592, 0x9BCE, 0xF593, - 0x9BCF, 0xF594, 0x9BD0, 0xF595, 0x9BD1, 0xF596, 0x9BD2, 0xF597, - 0x9BD3, 0xF598, 0x9BD4, 0xF599, 0x9BD5, 0xF59A, 0x9BD6, 0xF59B, - 0x9BD7, 0xF59C, 0x9BD8, 0xF59D, 0x9BD9, 0xF59E, 0x9BDA, 0xF59F, - 0x9BDB, 0xF5A0, 0x9BDC, 0xF640, 0x9BDD, 0xF641, 0x9BDE, 0xF642, - 0x9BDF, 0xF643, 0x9BE0, 0xF644, 0x9BE1, 0xF645, 0x9BE2, 0xF646, - 0x9BE3, 0xF647, 0x9BE4, 0xF648, 0x9BE5, 0xF649, 0x9BE6, 0xF64A, - 0x9BE7, 0xF64B, 0x9BE8, 0xF64C, 0x9BE9, 0xF64D, 0x9BEA, 0xF64E, - 0x9BEB, 0xF64F, 0x9BEC, 0xF650, 0x9BED, 0xF651, 0x9BEE, 0xF652, - 0x9BEF, 0xF653, 0x9BF0, 0xF654, 0x9BF1, 0xF655, 0x9BF2, 0xF656, - 0x9BF3, 0xF657, 0x9BF4, 0xF658, 0x9BF5, 0xF659, 0x9BF6, 0xF65A, - 0x9BF7, 0xF65B, 0x9BF8, 0xF65C, 0x9BF9, 0xF65D, 0x9BFA, 0xF65E, - 0x9BFB, 0xF65F, 0x9BFC, 0xF660, 0x9BFD, 0xF661, 0x9BFE, 0xF662, - 0x9BFF, 0xF663, 0x9C00, 0xF664, 0x9C01, 0xF665, 0x9C02, 0xF666, - 0x9C03, 0xF667, 0x9C04, 0xF668, 0x9C05, 0xF669, 0x9C06, 0xF66A, - 0x9C07, 0xF66B, 0x9C08, 0xF66C, 0x9C09, 0xF66D, 0x9C0A, 0xF66E, - 0x9C0B, 0xF66F, 0x9C0C, 0xF670, 0x9C0D, 0xF671, 0x9C0E, 0xF672, - 0x9C0F, 0xF673, 0x9C10, 0xF674, 0x9C11, 0xF675, 0x9C12, 0xF676, - 0x9C13, 0xF677, 0x9C14, 0xF678, 0x9C15, 0xF679, 0x9C16, 0xF67A, - 0x9C17, 0xF67B, 0x9C18, 0xF67C, 0x9C19, 0xF67D, 0x9C1A, 0xF67E, - 0x9C1B, 0xF680, 0x9C1C, 0xF681, 0x9C1D, 0xF682, 0x9C1E, 0xF683, - 0x9C1F, 0xF684, 0x9C20, 0xF685, 0x9C21, 0xF686, 0x9C22, 0xF687, - 0x9C23, 0xF688, 0x9C24, 0xF689, 0x9C25, 0xF68A, 0x9C26, 0xF68B, - 0x9C27, 0xF68C, 0x9C28, 0xF68D, 0x9C29, 0xF68E, 0x9C2A, 0xF68F, - 0x9C2B, 0xF690, 0x9C2C, 0xF691, 0x9C2D, 0xF692, 0x9C2E, 0xF693, - 0x9C2F, 0xF694, 0x9C30, 0xF695, 0x9C31, 0xF696, 0x9C32, 0xF697, - 0x9C33, 0xF698, 0x9C34, 0xF699, 0x9C35, 0xF69A, 0x9C36, 0xF69B, - 0x9C37, 0xF69C, 0x9C38, 0xF69D, 0x9C39, 0xF69E, 0x9C3A, 0xF69F, - 0x9C3B, 0xF6A0, 0x9C3C, 0xF740, 0x9C3D, 0xF741, 0x9C3E, 0xF742, - 0x9C3F, 0xF743, 0x9C40, 0xF744, 0x9C41, 0xF745, 0x9C42, 0xF746, - 0x9C43, 0xF747, 0x9C44, 0xF748, 0x9C45, 0xF749, 0x9C46, 0xF74A, - 0x9C47, 0xF74B, 0x9C48, 0xF74C, 0x9C49, 0xF74D, 0x9C4A, 0xF74E, - 0x9C4B, 0xF74F, 0x9C4C, 0xF750, 0x9C4D, 0xF751, 0x9C4E, 0xF752, - 0x9C4F, 0xF753, 0x9C50, 0xF754, 0x9C51, 0xF755, 0x9C52, 0xF756, - 0x9C53, 0xF757, 0x9C54, 0xF758, 0x9C55, 0xF759, 0x9C56, 0xF75A, - 0x9C57, 0xF75B, 0x9C58, 0xF75C, 0x9C59, 0xF75D, 0x9C5A, 0xF75E, - 0x9C5B, 0xF75F, 0x9C5C, 0xF760, 0x9C5D, 0xF761, 0x9C5E, 0xF762, - 0x9C5F, 0xF763, 0x9C60, 0xF764, 0x9C61, 0xF765, 0x9C62, 0xF766, - 0x9C63, 0xF767, 0x9C64, 0xF768, 0x9C65, 0xF769, 0x9C66, 0xF76A, - 0x9C67, 0xF76B, 0x9C68, 0xF76C, 0x9C69, 0xF76D, 0x9C6A, 0xF76E, - 0x9C6B, 0xF76F, 0x9C6C, 0xF770, 0x9C6D, 0xF771, 0x9C6E, 0xF772, - 0x9C6F, 0xF773, 0x9C70, 0xF774, 0x9C71, 0xF775, 0x9C72, 0xF776, - 0x9C73, 0xF777, 0x9C74, 0xF778, 0x9C75, 0xF779, 0x9C76, 0xF77A, - 0x9C77, 0xF77B, 0x9C78, 0xF77C, 0x9C79, 0xF77D, 0x9C7A, 0xF77E, - 0x9C7B, 0xF780, 0x9C7C, 0xD3E3, 0x9C7D, 0xF781, 0x9C7E, 0xF782, - 0x9C7F, 0xF6CF, 0x9C80, 0xF783, 0x9C81, 0xC2B3, 0x9C82, 0xF6D0, - 0x9C83, 0xF784, 0x9C84, 0xF785, 0x9C85, 0xF6D1, 0x9C86, 0xF6D2, - 0x9C87, 0xF6D3, 0x9C88, 0xF6D4, 0x9C89, 0xF786, 0x9C8A, 0xF787, - 0x9C8B, 0xF6D6, 0x9C8C, 0xF788, 0x9C8D, 0xB1AB, 0x9C8E, 0xF6D7, - 0x9C8F, 0xF789, 0x9C90, 0xF6D8, 0x9C91, 0xF6D9, 0x9C92, 0xF6DA, - 0x9C93, 0xF78A, 0x9C94, 0xF6DB, 0x9C95, 0xF6DC, 0x9C96, 0xF78B, - 0x9C97, 0xF78C, 0x9C98, 0xF78D, 0x9C99, 0xF78E, 0x9C9A, 0xF6DD, - 0x9C9B, 0xF6DE, 0x9C9C, 0xCFCA, 0x9C9D, 0xF78F, 0x9C9E, 0xF6DF, - 0x9C9F, 0xF6E0, 0x9CA0, 0xF6E1, 0x9CA1, 0xF6E2, 0x9CA2, 0xF6E3, - 0x9CA3, 0xF6E4, 0x9CA4, 0xC0F0, 0x9CA5, 0xF6E5, 0x9CA6, 0xF6E6, - 0x9CA7, 0xF6E7, 0x9CA8, 0xF6E8, 0x9CA9, 0xF6E9, 0x9CAA, 0xF790, - 0x9CAB, 0xF6EA, 0x9CAC, 0xF791, 0x9CAD, 0xF6EB, 0x9CAE, 0xF6EC, - 0x9CAF, 0xF792, 0x9CB0, 0xF6ED, 0x9CB1, 0xF6EE, 0x9CB2, 0xF6EF, - 0x9CB3, 0xF6F0, 0x9CB4, 0xF6F1, 0x9CB5, 0xF6F2, 0x9CB6, 0xF6F3, - 0x9CB7, 0xF6F4, 0x9CB8, 0xBEA8, 0x9CB9, 0xF793, 0x9CBA, 0xF6F5, - 0x9CBB, 0xF6F6, 0x9CBC, 0xF6F7, 0x9CBD, 0xF6F8, 0x9CBE, 0xF794, - 0x9CBF, 0xF795, 0x9CC0, 0xF796, 0x9CC1, 0xF797, 0x9CC2, 0xF798, - 0x9CC3, 0xC8FA, 0x9CC4, 0xF6F9, 0x9CC5, 0xF6FA, 0x9CC6, 0xF6FB, - 0x9CC7, 0xF6FC, 0x9CC8, 0xF799, 0x9CC9, 0xF79A, 0x9CCA, 0xF6FD, - 0x9CCB, 0xF6FE, 0x9CCC, 0xF7A1, 0x9CCD, 0xF7A2, 0x9CCE, 0xF7A3, - 0x9CCF, 0xF7A4, 0x9CD0, 0xF7A5, 0x9CD1, 0xF79B, 0x9CD2, 0xF79C, - 0x9CD3, 0xF7A6, 0x9CD4, 0xF7A7, 0x9CD5, 0xF7A8, 0x9CD6, 0xB1EE, - 0x9CD7, 0xF7A9, 0x9CD8, 0xF7AA, 0x9CD9, 0xF7AB, 0x9CDA, 0xF79D, - 0x9CDB, 0xF79E, 0x9CDC, 0xF7AC, 0x9CDD, 0xF7AD, 0x9CDE, 0xC1DB, - 0x9CDF, 0xF7AE, 0x9CE0, 0xF79F, 0x9CE1, 0xF7A0, 0x9CE2, 0xF7AF, - 0x9CE3, 0xF840, 0x9CE4, 0xF841, 0x9CE5, 0xF842, 0x9CE6, 0xF843, - 0x9CE7, 0xF844, 0x9CE8, 0xF845, 0x9CE9, 0xF846, 0x9CEA, 0xF847, - 0x9CEB, 0xF848, 0x9CEC, 0xF849, 0x9CED, 0xF84A, 0x9CEE, 0xF84B, - 0x9CEF, 0xF84C, 0x9CF0, 0xF84D, 0x9CF1, 0xF84E, 0x9CF2, 0xF84F, - 0x9CF3, 0xF850, 0x9CF4, 0xF851, 0x9CF5, 0xF852, 0x9CF6, 0xF853, - 0x9CF7, 0xF854, 0x9CF8, 0xF855, 0x9CF9, 0xF856, 0x9CFA, 0xF857, - 0x9CFB, 0xF858, 0x9CFC, 0xF859, 0x9CFD, 0xF85A, 0x9CFE, 0xF85B, - 0x9CFF, 0xF85C, 0x9D00, 0xF85D, 0x9D01, 0xF85E, 0x9D02, 0xF85F, - 0x9D03, 0xF860, 0x9D04, 0xF861, 0x9D05, 0xF862, 0x9D06, 0xF863, - 0x9D07, 0xF864, 0x9D08, 0xF865, 0x9D09, 0xF866, 0x9D0A, 0xF867, - 0x9D0B, 0xF868, 0x9D0C, 0xF869, 0x9D0D, 0xF86A, 0x9D0E, 0xF86B, - 0x9D0F, 0xF86C, 0x9D10, 0xF86D, 0x9D11, 0xF86E, 0x9D12, 0xF86F, - 0x9D13, 0xF870, 0x9D14, 0xF871, 0x9D15, 0xF872, 0x9D16, 0xF873, - 0x9D17, 0xF874, 0x9D18, 0xF875, 0x9D19, 0xF876, 0x9D1A, 0xF877, - 0x9D1B, 0xF878, 0x9D1C, 0xF879, 0x9D1D, 0xF87A, 0x9D1E, 0xF87B, - 0x9D1F, 0xF87C, 0x9D20, 0xF87D, 0x9D21, 0xF87E, 0x9D22, 0xF880, - 0x9D23, 0xF881, 0x9D24, 0xF882, 0x9D25, 0xF883, 0x9D26, 0xF884, - 0x9D27, 0xF885, 0x9D28, 0xF886, 0x9D29, 0xF887, 0x9D2A, 0xF888, - 0x9D2B, 0xF889, 0x9D2C, 0xF88A, 0x9D2D, 0xF88B, 0x9D2E, 0xF88C, - 0x9D2F, 0xF88D, 0x9D30, 0xF88E, 0x9D31, 0xF88F, 0x9D32, 0xF890, - 0x9D33, 0xF891, 0x9D34, 0xF892, 0x9D35, 0xF893, 0x9D36, 0xF894, - 0x9D37, 0xF895, 0x9D38, 0xF896, 0x9D39, 0xF897, 0x9D3A, 0xF898, - 0x9D3B, 0xF899, 0x9D3C, 0xF89A, 0x9D3D, 0xF89B, 0x9D3E, 0xF89C, - 0x9D3F, 0xF89D, 0x9D40, 0xF89E, 0x9D41, 0xF89F, 0x9D42, 0xF8A0, - 0x9D43, 0xF940, 0x9D44, 0xF941, 0x9D45, 0xF942, 0x9D46, 0xF943, - 0x9D47, 0xF944, 0x9D48, 0xF945, 0x9D49, 0xF946, 0x9D4A, 0xF947, - 0x9D4B, 0xF948, 0x9D4C, 0xF949, 0x9D4D, 0xF94A, 0x9D4E, 0xF94B, - 0x9D4F, 0xF94C, 0x9D50, 0xF94D, 0x9D51, 0xF94E, 0x9D52, 0xF94F, - 0x9D53, 0xF950, 0x9D54, 0xF951, 0x9D55, 0xF952, 0x9D56, 0xF953, - 0x9D57, 0xF954, 0x9D58, 0xF955, 0x9D59, 0xF956, 0x9D5A, 0xF957, - 0x9D5B, 0xF958, 0x9D5C, 0xF959, 0x9D5D, 0xF95A, 0x9D5E, 0xF95B, - 0x9D5F, 0xF95C, 0x9D60, 0xF95D, 0x9D61, 0xF95E, 0x9D62, 0xF95F, - 0x9D63, 0xF960, 0x9D64, 0xF961, 0x9D65, 0xF962, 0x9D66, 0xF963, - 0x9D67, 0xF964, 0x9D68, 0xF965, 0x9D69, 0xF966, 0x9D6A, 0xF967, - 0x9D6B, 0xF968, 0x9D6C, 0xF969, 0x9D6D, 0xF96A, 0x9D6E, 0xF96B, - 0x9D6F, 0xF96C, 0x9D70, 0xF96D, 0x9D71, 0xF96E, 0x9D72, 0xF96F, - 0x9D73, 0xF970, 0x9D74, 0xF971, 0x9D75, 0xF972, 0x9D76, 0xF973, - 0x9D77, 0xF974, 0x9D78, 0xF975, 0x9D79, 0xF976, 0x9D7A, 0xF977, - 0x9D7B, 0xF978, 0x9D7C, 0xF979, 0x9D7D, 0xF97A, 0x9D7E, 0xF97B, - 0x9D7F, 0xF97C, 0x9D80, 0xF97D, 0x9D81, 0xF97E, 0x9D82, 0xF980, - 0x9D83, 0xF981, 0x9D84, 0xF982, 0x9D85, 0xF983, 0x9D86, 0xF984, - 0x9D87, 0xF985, 0x9D88, 0xF986, 0x9D89, 0xF987, 0x9D8A, 0xF988, - 0x9D8B, 0xF989, 0x9D8C, 0xF98A, 0x9D8D, 0xF98B, 0x9D8E, 0xF98C, - 0x9D8F, 0xF98D, 0x9D90, 0xF98E, 0x9D91, 0xF98F, 0x9D92, 0xF990, - 0x9D93, 0xF991, 0x9D94, 0xF992, 0x9D95, 0xF993, 0x9D96, 0xF994, - 0x9D97, 0xF995, 0x9D98, 0xF996, 0x9D99, 0xF997, 0x9D9A, 0xF998, - 0x9D9B, 0xF999, 0x9D9C, 0xF99A, 0x9D9D, 0xF99B, 0x9D9E, 0xF99C, - 0x9D9F, 0xF99D, 0x9DA0, 0xF99E, 0x9DA1, 0xF99F, 0x9DA2, 0xF9A0, - 0x9DA3, 0xFA40, 0x9DA4, 0xFA41, 0x9DA5, 0xFA42, 0x9DA6, 0xFA43, - 0x9DA7, 0xFA44, 0x9DA8, 0xFA45, 0x9DA9, 0xFA46, 0x9DAA, 0xFA47, - 0x9DAB, 0xFA48, 0x9DAC, 0xFA49, 0x9DAD, 0xFA4A, 0x9DAE, 0xFA4B, - 0x9DAF, 0xFA4C, 0x9DB0, 0xFA4D, 0x9DB1, 0xFA4E, 0x9DB2, 0xFA4F, - 0x9DB3, 0xFA50, 0x9DB4, 0xFA51, 0x9DB5, 0xFA52, 0x9DB6, 0xFA53, - 0x9DB7, 0xFA54, 0x9DB8, 0xFA55, 0x9DB9, 0xFA56, 0x9DBA, 0xFA57, - 0x9DBB, 0xFA58, 0x9DBC, 0xFA59, 0x9DBD, 0xFA5A, 0x9DBE, 0xFA5B, - 0x9DBF, 0xFA5C, 0x9DC0, 0xFA5D, 0x9DC1, 0xFA5E, 0x9DC2, 0xFA5F, - 0x9DC3, 0xFA60, 0x9DC4, 0xFA61, 0x9DC5, 0xFA62, 0x9DC6, 0xFA63, - 0x9DC7, 0xFA64, 0x9DC8, 0xFA65, 0x9DC9, 0xFA66, 0x9DCA, 0xFA67, - 0x9DCB, 0xFA68, 0x9DCC, 0xFA69, 0x9DCD, 0xFA6A, 0x9DCE, 0xFA6B, - 0x9DCF, 0xFA6C, 0x9DD0, 0xFA6D, 0x9DD1, 0xFA6E, 0x9DD2, 0xFA6F, - 0x9DD3, 0xFA70, 0x9DD4, 0xFA71, 0x9DD5, 0xFA72, 0x9DD6, 0xFA73, - 0x9DD7, 0xFA74, 0x9DD8, 0xFA75, 0x9DD9, 0xFA76, 0x9DDA, 0xFA77, - 0x9DDB, 0xFA78, 0x9DDC, 0xFA79, 0x9DDD, 0xFA7A, 0x9DDE, 0xFA7B, - 0x9DDF, 0xFA7C, 0x9DE0, 0xFA7D, 0x9DE1, 0xFA7E, 0x9DE2, 0xFA80, - 0x9DE3, 0xFA81, 0x9DE4, 0xFA82, 0x9DE5, 0xFA83, 0x9DE6, 0xFA84, - 0x9DE7, 0xFA85, 0x9DE8, 0xFA86, 0x9DE9, 0xFA87, 0x9DEA, 0xFA88, - 0x9DEB, 0xFA89, 0x9DEC, 0xFA8A, 0x9DED, 0xFA8B, 0x9DEE, 0xFA8C, - 0x9DEF, 0xFA8D, 0x9DF0, 0xFA8E, 0x9DF1, 0xFA8F, 0x9DF2, 0xFA90, - 0x9DF3, 0xFA91, 0x9DF4, 0xFA92, 0x9DF5, 0xFA93, 0x9DF6, 0xFA94, - 0x9DF7, 0xFA95, 0x9DF8, 0xFA96, 0x9DF9, 0xFA97, 0x9DFA, 0xFA98, - 0x9DFB, 0xFA99, 0x9DFC, 0xFA9A, 0x9DFD, 0xFA9B, 0x9DFE, 0xFA9C, - 0x9DFF, 0xFA9D, 0x9E00, 0xFA9E, 0x9E01, 0xFA9F, 0x9E02, 0xFAA0, - 0x9E03, 0xFB40, 0x9E04, 0xFB41, 0x9E05, 0xFB42, 0x9E06, 0xFB43, - 0x9E07, 0xFB44, 0x9E08, 0xFB45, 0x9E09, 0xFB46, 0x9E0A, 0xFB47, - 0x9E0B, 0xFB48, 0x9E0C, 0xFB49, 0x9E0D, 0xFB4A, 0x9E0E, 0xFB4B, - 0x9E0F, 0xFB4C, 0x9E10, 0xFB4D, 0x9E11, 0xFB4E, 0x9E12, 0xFB4F, - 0x9E13, 0xFB50, 0x9E14, 0xFB51, 0x9E15, 0xFB52, 0x9E16, 0xFB53, - 0x9E17, 0xFB54, 0x9E18, 0xFB55, 0x9E19, 0xFB56, 0x9E1A, 0xFB57, - 0x9E1B, 0xFB58, 0x9E1C, 0xFB59, 0x9E1D, 0xFB5A, 0x9E1E, 0xFB5B, - 0x9E1F, 0xC4F1, 0x9E20, 0xF0AF, 0x9E21, 0xBCA6, 0x9E22, 0xF0B0, - 0x9E23, 0xC3F9, 0x9E24, 0xFB5C, 0x9E25, 0xC5B8, 0x9E26, 0xD1BB, - 0x9E27, 0xFB5D, 0x9E28, 0xF0B1, 0x9E29, 0xF0B2, 0x9E2A, 0xF0B3, - 0x9E2B, 0xF0B4, 0x9E2C, 0xF0B5, 0x9E2D, 0xD1BC, 0x9E2E, 0xFB5E, - 0x9E2F, 0xD1EC, 0x9E30, 0xFB5F, 0x9E31, 0xF0B7, 0x9E32, 0xF0B6, - 0x9E33, 0xD4A7, 0x9E34, 0xFB60, 0x9E35, 0xCDD2, 0x9E36, 0xF0B8, - 0x9E37, 0xF0BA, 0x9E38, 0xF0B9, 0x9E39, 0xF0BB, 0x9E3A, 0xF0BC, - 0x9E3B, 0xFB61, 0x9E3C, 0xFB62, 0x9E3D, 0xB8EB, 0x9E3E, 0xF0BD, - 0x9E3F, 0xBAE8, 0x9E40, 0xFB63, 0x9E41, 0xF0BE, 0x9E42, 0xF0BF, - 0x9E43, 0xBEE9, 0x9E44, 0xF0C0, 0x9E45, 0xB6EC, 0x9E46, 0xF0C1, - 0x9E47, 0xF0C2, 0x9E48, 0xF0C3, 0x9E49, 0xF0C4, 0x9E4A, 0xC8B5, - 0x9E4B, 0xF0C5, 0x9E4C, 0xF0C6, 0x9E4D, 0xFB64, 0x9E4E, 0xF0C7, - 0x9E4F, 0xC5F4, 0x9E50, 0xFB65, 0x9E51, 0xF0C8, 0x9E52, 0xFB66, - 0x9E53, 0xFB67, 0x9E54, 0xFB68, 0x9E55, 0xF0C9, 0x9E56, 0xFB69, - 0x9E57, 0xF0CA, 0x9E58, 0xF7BD, 0x9E59, 0xFB6A, 0x9E5A, 0xF0CB, - 0x9E5B, 0xF0CC, 0x9E5C, 0xF0CD, 0x9E5D, 0xFB6B, 0x9E5E, 0xF0CE, - 0x9E5F, 0xFB6C, 0x9E60, 0xFB6D, 0x9E61, 0xFB6E, 0x9E62, 0xFB6F, - 0x9E63, 0xF0CF, 0x9E64, 0xBAD7, 0x9E65, 0xFB70, 0x9E66, 0xF0D0, - 0x9E67, 0xF0D1, 0x9E68, 0xF0D2, 0x9E69, 0xF0D3, 0x9E6A, 0xF0D4, - 0x9E6B, 0xF0D5, 0x9E6C, 0xF0D6, 0x9E6D, 0xF0D8, 0x9E6E, 0xFB71, - 0x9E6F, 0xFB72, 0x9E70, 0xD3A5, 0x9E71, 0xF0D7, 0x9E72, 0xFB73, - 0x9E73, 0xF0D9, 0x9E74, 0xFB74, 0x9E75, 0xFB75, 0x9E76, 0xFB76, - 0x9E77, 0xFB77, 0x9E78, 0xFB78, 0x9E79, 0xFB79, 0x9E7A, 0xFB7A, - 0x9E7B, 0xFB7B, 0x9E7C, 0xFB7C, 0x9E7D, 0xFB7D, 0x9E7E, 0xF5BA, - 0x9E7F, 0xC2B9, 0x9E80, 0xFB7E, 0x9E81, 0xFB80, 0x9E82, 0xF7E4, - 0x9E83, 0xFB81, 0x9E84, 0xFB82, 0x9E85, 0xFB83, 0x9E86, 0xFB84, - 0x9E87, 0xF7E5, 0x9E88, 0xF7E6, 0x9E89, 0xFB85, 0x9E8A, 0xFB86, - 0x9E8B, 0xF7E7, 0x9E8C, 0xFB87, 0x9E8D, 0xFB88, 0x9E8E, 0xFB89, - 0x9E8F, 0xFB8A, 0x9E90, 0xFB8B, 0x9E91, 0xFB8C, 0x9E92, 0xF7E8, - 0x9E93, 0xC2B4, 0x9E94, 0xFB8D, 0x9E95, 0xFB8E, 0x9E96, 0xFB8F, - 0x9E97, 0xFB90, 0x9E98, 0xFB91, 0x9E99, 0xFB92, 0x9E9A, 0xFB93, - 0x9E9B, 0xFB94, 0x9E9C, 0xFB95, 0x9E9D, 0xF7EA, 0x9E9E, 0xFB96, - 0x9E9F, 0xF7EB, 0x9EA0, 0xFB97, 0x9EA1, 0xFB98, 0x9EA2, 0xFB99, - 0x9EA3, 0xFB9A, 0x9EA4, 0xFB9B, 0x9EA5, 0xFB9C, 0x9EA6, 0xC2F3, - 0x9EA7, 0xFB9D, 0x9EA8, 0xFB9E, 0x9EA9, 0xFB9F, 0x9EAA, 0xFBA0, - 0x9EAB, 0xFC40, 0x9EAC, 0xFC41, 0x9EAD, 0xFC42, 0x9EAE, 0xFC43, - 0x9EAF, 0xFC44, 0x9EB0, 0xFC45, 0x9EB1, 0xFC46, 0x9EB2, 0xFC47, - 0x9EB3, 0xFC48, 0x9EB4, 0xF4F0, 0x9EB5, 0xFC49, 0x9EB6, 0xFC4A, - 0x9EB7, 0xFC4B, 0x9EB8, 0xF4EF, 0x9EB9, 0xFC4C, 0x9EBA, 0xFC4D, - 0x9EBB, 0xC2E9, 0x9EBC, 0xFC4E, 0x9EBD, 0xF7E1, 0x9EBE, 0xF7E2, - 0x9EBF, 0xFC4F, 0x9EC0, 0xFC50, 0x9EC1, 0xFC51, 0x9EC2, 0xFC52, - 0x9EC3, 0xFC53, 0x9EC4, 0xBBC6, 0x9EC5, 0xFC54, 0x9EC6, 0xFC55, - 0x9EC7, 0xFC56, 0x9EC8, 0xFC57, 0x9EC9, 0xD9E4, 0x9ECA, 0xFC58, - 0x9ECB, 0xFC59, 0x9ECC, 0xFC5A, 0x9ECD, 0xCAF2, 0x9ECE, 0xC0E8, - 0x9ECF, 0xF0A4, 0x9ED0, 0xFC5B, 0x9ED1, 0xBADA, 0x9ED2, 0xFC5C, - 0x9ED3, 0xFC5D, 0x9ED4, 0xC7AD, 0x9ED5, 0xFC5E, 0x9ED6, 0xFC5F, - 0x9ED7, 0xFC60, 0x9ED8, 0xC4AC, 0x9ED9, 0xFC61, 0x9EDA, 0xFC62, - 0x9EDB, 0xF7EC, 0x9EDC, 0xF7ED, 0x9EDD, 0xF7EE, 0x9EDE, 0xFC63, - 0x9EDF, 0xF7F0, 0x9EE0, 0xF7EF, 0x9EE1, 0xFC64, 0x9EE2, 0xF7F1, - 0x9EE3, 0xFC65, 0x9EE4, 0xFC66, 0x9EE5, 0xF7F4, 0x9EE6, 0xFC67, - 0x9EE7, 0xF7F3, 0x9EE8, 0xFC68, 0x9EE9, 0xF7F2, 0x9EEA, 0xF7F5, - 0x9EEB, 0xFC69, 0x9EEC, 0xFC6A, 0x9EED, 0xFC6B, 0x9EEE, 0xFC6C, - 0x9EEF, 0xF7F6, 0x9EF0, 0xFC6D, 0x9EF1, 0xFC6E, 0x9EF2, 0xFC6F, - 0x9EF3, 0xFC70, 0x9EF4, 0xFC71, 0x9EF5, 0xFC72, 0x9EF6, 0xFC73, - 0x9EF7, 0xFC74, 0x9EF8, 0xFC75, 0x9EF9, 0xEDE9, 0x9EFA, 0xFC76, - 0x9EFB, 0xEDEA, 0x9EFC, 0xEDEB, 0x9EFD, 0xFC77, 0x9EFE, 0xF6BC, - 0x9EFF, 0xFC78, 0x9F00, 0xFC79, 0x9F01, 0xFC7A, 0x9F02, 0xFC7B, - 0x9F03, 0xFC7C, 0x9F04, 0xFC7D, 0x9F05, 0xFC7E, 0x9F06, 0xFC80, - 0x9F07, 0xFC81, 0x9F08, 0xFC82, 0x9F09, 0xFC83, 0x9F0A, 0xFC84, - 0x9F0B, 0xF6BD, 0x9F0C, 0xFC85, 0x9F0D, 0xF6BE, 0x9F0E, 0xB6A6, - 0x9F0F, 0xFC86, 0x9F10, 0xD8BE, 0x9F11, 0xFC87, 0x9F12, 0xFC88, - 0x9F13, 0xB9C4, 0x9F14, 0xFC89, 0x9F15, 0xFC8A, 0x9F16, 0xFC8B, - 0x9F17, 0xD8BB, 0x9F18, 0xFC8C, 0x9F19, 0xDCB1, 0x9F1A, 0xFC8D, - 0x9F1B, 0xFC8E, 0x9F1C, 0xFC8F, 0x9F1D, 0xFC90, 0x9F1E, 0xFC91, - 0x9F1F, 0xFC92, 0x9F20, 0xCAF3, 0x9F21, 0xFC93, 0x9F22, 0xF7F7, - 0x9F23, 0xFC94, 0x9F24, 0xFC95, 0x9F25, 0xFC96, 0x9F26, 0xFC97, - 0x9F27, 0xFC98, 0x9F28, 0xFC99, 0x9F29, 0xFC9A, 0x9F2A, 0xFC9B, - 0x9F2B, 0xFC9C, 0x9F2C, 0xF7F8, 0x9F2D, 0xFC9D, 0x9F2E, 0xFC9E, - 0x9F2F, 0xF7F9, 0x9F30, 0xFC9F, 0x9F31, 0xFCA0, 0x9F32, 0xFD40, - 0x9F33, 0xFD41, 0x9F34, 0xFD42, 0x9F35, 0xFD43, 0x9F36, 0xFD44, - 0x9F37, 0xF7FB, 0x9F38, 0xFD45, 0x9F39, 0xF7FA, 0x9F3A, 0xFD46, - 0x9F3B, 0xB1C7, 0x9F3C, 0xFD47, 0x9F3D, 0xF7FC, 0x9F3E, 0xF7FD, - 0x9F3F, 0xFD48, 0x9F40, 0xFD49, 0x9F41, 0xFD4A, 0x9F42, 0xFD4B, - 0x9F43, 0xFD4C, 0x9F44, 0xF7FE, 0x9F45, 0xFD4D, 0x9F46, 0xFD4E, - 0x9F47, 0xFD4F, 0x9F48, 0xFD50, 0x9F49, 0xFD51, 0x9F4A, 0xFD52, - 0x9F4B, 0xFD53, 0x9F4C, 0xFD54, 0x9F4D, 0xFD55, 0x9F4E, 0xFD56, - 0x9F4F, 0xFD57, 0x9F50, 0xC6EB, 0x9F51, 0xECB4, 0x9F52, 0xFD58, - 0x9F53, 0xFD59, 0x9F54, 0xFD5A, 0x9F55, 0xFD5B, 0x9F56, 0xFD5C, - 0x9F57, 0xFD5D, 0x9F58, 0xFD5E, 0x9F59, 0xFD5F, 0x9F5A, 0xFD60, - 0x9F5B, 0xFD61, 0x9F5C, 0xFD62, 0x9F5D, 0xFD63, 0x9F5E, 0xFD64, - 0x9F5F, 0xFD65, 0x9F60, 0xFD66, 0x9F61, 0xFD67, 0x9F62, 0xFD68, - 0x9F63, 0xFD69, 0x9F64, 0xFD6A, 0x9F65, 0xFD6B, 0x9F66, 0xFD6C, - 0x9F67, 0xFD6D, 0x9F68, 0xFD6E, 0x9F69, 0xFD6F, 0x9F6A, 0xFD70, - 0x9F6B, 0xFD71, 0x9F6C, 0xFD72, 0x9F6D, 0xFD73, 0x9F6E, 0xFD74, - 0x9F6F, 0xFD75, 0x9F70, 0xFD76, 0x9F71, 0xFD77, 0x9F72, 0xFD78, - 0x9F73, 0xFD79, 0x9F74, 0xFD7A, 0x9F75, 0xFD7B, 0x9F76, 0xFD7C, - 0x9F77, 0xFD7D, 0x9F78, 0xFD7E, 0x9F79, 0xFD80, 0x9F7A, 0xFD81, - 0x9F7B, 0xFD82, 0x9F7C, 0xFD83, 0x9F7D, 0xFD84, 0x9F7E, 0xFD85, - 0x9F7F, 0xB3DD, 0x9F80, 0xF6B3, 0x9F81, 0xFD86, 0x9F82, 0xFD87, - 0x9F83, 0xF6B4, 0x9F84, 0xC1E4, 0x9F85, 0xF6B5, 0x9F86, 0xF6B6, - 0x9F87, 0xF6B7, 0x9F88, 0xF6B8, 0x9F89, 0xF6B9, 0x9F8A, 0xF6BA, - 0x9F8B, 0xC8A3, 0x9F8C, 0xF6BB, 0x9F8D, 0xFD88, 0x9F8E, 0xFD89, - 0x9F8F, 0xFD8A, 0x9F90, 0xFD8B, 0x9F91, 0xFD8C, 0x9F92, 0xFD8D, - 0x9F93, 0xFD8E, 0x9F94, 0xFD8F, 0x9F95, 0xFD90, 0x9F96, 0xFD91, - 0x9F97, 0xFD92, 0x9F98, 0xFD93, 0x9F99, 0xC1FA, 0x9F9A, 0xB9A8, - 0x9F9B, 0xEDE8, 0x9F9C, 0xFD94, 0x9F9D, 0xFD95, 0x9F9E, 0xFD96, - 0x9F9F, 0xB9EA, 0x9FA0, 0xD9DF, 0x9FA1, 0xFD97, 0x9FA2, 0xFD98, - 0x9FA3, 0xFD99, 0x9FA4, 0xFD9A, 0x9FA5, 0xFD9B, 0xF92C, 0xFD9C, - 0xF979, 0xFD9D, 0xF995, 0xFD9E, 0xF9E7, 0xFD9F, 0xF9F1, 0xFDA0, - 0xFA0C, 0xFE40, 0xFA0D, 0xFE41, 0xFA0E, 0xFE42, 0xFA0F, 0xFE43, - 0xFA11, 0xFE44, 0xFA13, 0xFE45, 0xFA14, 0xFE46, 0xFA18, 0xFE47, - 0xFA1F, 0xFE48, 0xFA20, 0xFE49, 0xFA21, 0xFE4A, 0xFA23, 0xFE4B, - 0xFA24, 0xFE4C, 0xFA27, 0xFE4D, 0xFA28, 0xFE4E, 0xFA29, 0xFE4F, - 0xFE30, 0xA955, 0xFE31, 0xA6F2, 0xFE33, 0xA6F4, 0xFE34, 0xA6F5, - 0xFE35, 0xA6E0, 0xFE36, 0xA6E1, 0xFE37, 0xA6F0, 0xFE38, 0xA6F1, - 0xFE39, 0xA6E2, 0xFE3A, 0xA6E3, 0xFE3B, 0xA6EE, 0xFE3C, 0xA6EF, - 0xFE3D, 0xA6E6, 0xFE3E, 0xA6E7, 0xFE3F, 0xA6E4, 0xFE40, 0xA6E5, - 0xFE41, 0xA6E8, 0xFE42, 0xA6E9, 0xFE43, 0xA6EA, 0xFE44, 0xA6EB, - 0xFE49, 0xA968, 0xFE4A, 0xA969, 0xFE4B, 0xA96A, 0xFE4C, 0xA96B, - 0xFE4D, 0xA96C, 0xFE4E, 0xA96D, 0xFE4F, 0xA96E, 0xFE50, 0xA96F, - 0xFE51, 0xA970, 0xFE52, 0xA971, 0xFE54, 0xA972, 0xFE55, 0xA973, - 0xFE56, 0xA974, 0xFE57, 0xA975, 0xFE59, 0xA976, 0xFE5A, 0xA977, - 0xFE5B, 0xA978, 0xFE5C, 0xA979, 0xFE5D, 0xA97A, 0xFE5E, 0xA97B, - 0xFE5F, 0xA97C, 0xFE60, 0xA97D, 0xFE61, 0xA97E, 0xFE62, 0xA980, - 0xFE63, 0xA981, 0xFE64, 0xA982, 0xFE65, 0xA983, 0xFE66, 0xA984, - 0xFE68, 0xA985, 0xFE69, 0xA986, 0xFE6A, 0xA987, 0xFE6B, 0xA988, - 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA1E7, - 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, - 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, - 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, - 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, - 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, - 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, - 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, - 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, - 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, - 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, - 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, - 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, - 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, - 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA3DC, - 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, - 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, - 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, - 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, - 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, - 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, - 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, - 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, - 0xFF5D, 0xA3FD, 0xFF5E, 0xA1AB, 0xFFE0, 0xA1E9, 0xFFE1, 0xA1EA, - 0xFFE2, 0xA956, 0xFFE3, 0xA3FE, 0xFFE4, 0xA957, 0xFFE5, 0xA3A4, - 0, 0 -}; - -static -const WCHAR oem2uni[] = { -/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ - 0x0080, 0x20AC, 0x8140, 0x4E02, 0x8141, 0x4E04, 0x8142, 0x4E05, - 0x8143, 0x4E06, 0x8144, 0x4E0F, 0x8145, 0x4E12, 0x8146, 0x4E17, - 0x8147, 0x4E1F, 0x8148, 0x4E20, 0x8149, 0x4E21, 0x814A, 0x4E23, - 0x814B, 0x4E26, 0x814C, 0x4E29, 0x814D, 0x4E2E, 0x814E, 0x4E2F, - 0x814F, 0x4E31, 0x8150, 0x4E33, 0x8151, 0x4E35, 0x8152, 0x4E37, - 0x8153, 0x4E3C, 0x8154, 0x4E40, 0x8155, 0x4E41, 0x8156, 0x4E42, - 0x8157, 0x4E44, 0x8158, 0x4E46, 0x8159, 0x4E4A, 0x815A, 0x4E51, - 0x815B, 0x4E55, 0x815C, 0x4E57, 0x815D, 0x4E5A, 0x815E, 0x4E5B, - 0x815F, 0x4E62, 0x8160, 0x4E63, 0x8161, 0x4E64, 0x8162, 0x4E65, - 0x8163, 0x4E67, 0x8164, 0x4E68, 0x8165, 0x4E6A, 0x8166, 0x4E6B, - 0x8167, 0x4E6C, 0x8168, 0x4E6D, 0x8169, 0x4E6E, 0x816A, 0x4E6F, - 0x816B, 0x4E72, 0x816C, 0x4E74, 0x816D, 0x4E75, 0x816E, 0x4E76, - 0x816F, 0x4E77, 0x8170, 0x4E78, 0x8171, 0x4E79, 0x8172, 0x4E7A, - 0x8173, 0x4E7B, 0x8174, 0x4E7C, 0x8175, 0x4E7D, 0x8176, 0x4E7F, - 0x8177, 0x4E80, 0x8178, 0x4E81, 0x8179, 0x4E82, 0x817A, 0x4E83, - 0x817B, 0x4E84, 0x817C, 0x4E85, 0x817D, 0x4E87, 0x817E, 0x4E8A, - 0x8180, 0x4E90, 0x8181, 0x4E96, 0x8182, 0x4E97, 0x8183, 0x4E99, - 0x8184, 0x4E9C, 0x8185, 0x4E9D, 0x8186, 0x4E9E, 0x8187, 0x4EA3, - 0x8188, 0x4EAA, 0x8189, 0x4EAF, 0x818A, 0x4EB0, 0x818B, 0x4EB1, - 0x818C, 0x4EB4, 0x818D, 0x4EB6, 0x818E, 0x4EB7, 0x818F, 0x4EB8, - 0x8190, 0x4EB9, 0x8191, 0x4EBC, 0x8192, 0x4EBD, 0x8193, 0x4EBE, - 0x8194, 0x4EC8, 0x8195, 0x4ECC, 0x8196, 0x4ECF, 0x8197, 0x4ED0, - 0x8198, 0x4ED2, 0x8199, 0x4EDA, 0x819A, 0x4EDB, 0x819B, 0x4EDC, - 0x819C, 0x4EE0, 0x819D, 0x4EE2, 0x819E, 0x4EE6, 0x819F, 0x4EE7, - 0x81A0, 0x4EE9, 0x81A1, 0x4EED, 0x81A2, 0x4EEE, 0x81A3, 0x4EEF, - 0x81A4, 0x4EF1, 0x81A5, 0x4EF4, 0x81A6, 0x4EF8, 0x81A7, 0x4EF9, - 0x81A8, 0x4EFA, 0x81A9, 0x4EFC, 0x81AA, 0x4EFE, 0x81AB, 0x4F00, - 0x81AC, 0x4F02, 0x81AD, 0x4F03, 0x81AE, 0x4F04, 0x81AF, 0x4F05, - 0x81B0, 0x4F06, 0x81B1, 0x4F07, 0x81B2, 0x4F08, 0x81B3, 0x4F0B, - 0x81B4, 0x4F0C, 0x81B5, 0x4F12, 0x81B6, 0x4F13, 0x81B7, 0x4F14, - 0x81B8, 0x4F15, 0x81B9, 0x4F16, 0x81BA, 0x4F1C, 0x81BB, 0x4F1D, - 0x81BC, 0x4F21, 0x81BD, 0x4F23, 0x81BE, 0x4F28, 0x81BF, 0x4F29, - 0x81C0, 0x4F2C, 0x81C1, 0x4F2D, 0x81C2, 0x4F2E, 0x81C3, 0x4F31, - 0x81C4, 0x4F33, 0x81C5, 0x4F35, 0x81C6, 0x4F37, 0x81C7, 0x4F39, - 0x81C8, 0x4F3B, 0x81C9, 0x4F3E, 0x81CA, 0x4F3F, 0x81CB, 0x4F40, - 0x81CC, 0x4F41, 0x81CD, 0x4F42, 0x81CE, 0x4F44, 0x81CF, 0x4F45, - 0x81D0, 0x4F47, 0x81D1, 0x4F48, 0x81D2, 0x4F49, 0x81D3, 0x4F4A, - 0x81D4, 0x4F4B, 0x81D5, 0x4F4C, 0x81D6, 0x4F52, 0x81D7, 0x4F54, - 0x81D8, 0x4F56, 0x81D9, 0x4F61, 0x81DA, 0x4F62, 0x81DB, 0x4F66, - 0x81DC, 0x4F68, 0x81DD, 0x4F6A, 0x81DE, 0x4F6B, 0x81DF, 0x4F6D, - 0x81E0, 0x4F6E, 0x81E1, 0x4F71, 0x81E2, 0x4F72, 0x81E3, 0x4F75, - 0x81E4, 0x4F77, 0x81E5, 0x4F78, 0x81E6, 0x4F79, 0x81E7, 0x4F7A, - 0x81E8, 0x4F7D, 0x81E9, 0x4F80, 0x81EA, 0x4F81, 0x81EB, 0x4F82, - 0x81EC, 0x4F85, 0x81ED, 0x4F86, 0x81EE, 0x4F87, 0x81EF, 0x4F8A, - 0x81F0, 0x4F8C, 0x81F1, 0x4F8E, 0x81F2, 0x4F90, 0x81F3, 0x4F92, - 0x81F4, 0x4F93, 0x81F5, 0x4F95, 0x81F6, 0x4F96, 0x81F7, 0x4F98, - 0x81F8, 0x4F99, 0x81F9, 0x4F9A, 0x81FA, 0x4F9C, 0x81FB, 0x4F9E, - 0x81FC, 0x4F9F, 0x81FD, 0x4FA1, 0x81FE, 0x4FA2, 0x8240, 0x4FA4, - 0x8241, 0x4FAB, 0x8242, 0x4FAD, 0x8243, 0x4FB0, 0x8244, 0x4FB1, - 0x8245, 0x4FB2, 0x8246, 0x4FB3, 0x8247, 0x4FB4, 0x8248, 0x4FB6, - 0x8249, 0x4FB7, 0x824A, 0x4FB8, 0x824B, 0x4FB9, 0x824C, 0x4FBA, - 0x824D, 0x4FBB, 0x824E, 0x4FBC, 0x824F, 0x4FBD, 0x8250, 0x4FBE, - 0x8251, 0x4FC0, 0x8252, 0x4FC1, 0x8253, 0x4FC2, 0x8254, 0x4FC6, - 0x8255, 0x4FC7, 0x8256, 0x4FC8, 0x8257, 0x4FC9, 0x8258, 0x4FCB, - 0x8259, 0x4FCC, 0x825A, 0x4FCD, 0x825B, 0x4FD2, 0x825C, 0x4FD3, - 0x825D, 0x4FD4, 0x825E, 0x4FD5, 0x825F, 0x4FD6, 0x8260, 0x4FD9, - 0x8261, 0x4FDB, 0x8262, 0x4FE0, 0x8263, 0x4FE2, 0x8264, 0x4FE4, - 0x8265, 0x4FE5, 0x8266, 0x4FE7, 0x8267, 0x4FEB, 0x8268, 0x4FEC, - 0x8269, 0x4FF0, 0x826A, 0x4FF2, 0x826B, 0x4FF4, 0x826C, 0x4FF5, - 0x826D, 0x4FF6, 0x826E, 0x4FF7, 0x826F, 0x4FF9, 0x8270, 0x4FFB, - 0x8271, 0x4FFC, 0x8272, 0x4FFD, 0x8273, 0x4FFF, 0x8274, 0x5000, - 0x8275, 0x5001, 0x8276, 0x5002, 0x8277, 0x5003, 0x8278, 0x5004, - 0x8279, 0x5005, 0x827A, 0x5006, 0x827B, 0x5007, 0x827C, 0x5008, - 0x827D, 0x5009, 0x827E, 0x500A, 0x8280, 0x500B, 0x8281, 0x500E, - 0x8282, 0x5010, 0x8283, 0x5011, 0x8284, 0x5013, 0x8285, 0x5015, - 0x8286, 0x5016, 0x8287, 0x5017, 0x8288, 0x501B, 0x8289, 0x501D, - 0x828A, 0x501E, 0x828B, 0x5020, 0x828C, 0x5022, 0x828D, 0x5023, - 0x828E, 0x5024, 0x828F, 0x5027, 0x8290, 0x502B, 0x8291, 0x502F, - 0x8292, 0x5030, 0x8293, 0x5031, 0x8294, 0x5032, 0x8295, 0x5033, - 0x8296, 0x5034, 0x8297, 0x5035, 0x8298, 0x5036, 0x8299, 0x5037, - 0x829A, 0x5038, 0x829B, 0x5039, 0x829C, 0x503B, 0x829D, 0x503D, - 0x829E, 0x503F, 0x829F, 0x5040, 0x82A0, 0x5041, 0x82A1, 0x5042, - 0x82A2, 0x5044, 0x82A3, 0x5045, 0x82A4, 0x5046, 0x82A5, 0x5049, - 0x82A6, 0x504A, 0x82A7, 0x504B, 0x82A8, 0x504D, 0x82A9, 0x5050, - 0x82AA, 0x5051, 0x82AB, 0x5052, 0x82AC, 0x5053, 0x82AD, 0x5054, - 0x82AE, 0x5056, 0x82AF, 0x5057, 0x82B0, 0x5058, 0x82B1, 0x5059, - 0x82B2, 0x505B, 0x82B3, 0x505D, 0x82B4, 0x505E, 0x82B5, 0x505F, - 0x82B6, 0x5060, 0x82B7, 0x5061, 0x82B8, 0x5062, 0x82B9, 0x5063, - 0x82BA, 0x5064, 0x82BB, 0x5066, 0x82BC, 0x5067, 0x82BD, 0x5068, - 0x82BE, 0x5069, 0x82BF, 0x506A, 0x82C0, 0x506B, 0x82C1, 0x506D, - 0x82C2, 0x506E, 0x82C3, 0x506F, 0x82C4, 0x5070, 0x82C5, 0x5071, - 0x82C6, 0x5072, 0x82C7, 0x5073, 0x82C8, 0x5074, 0x82C9, 0x5075, - 0x82CA, 0x5078, 0x82CB, 0x5079, 0x82CC, 0x507A, 0x82CD, 0x507C, - 0x82CE, 0x507D, 0x82CF, 0x5081, 0x82D0, 0x5082, 0x82D1, 0x5083, - 0x82D2, 0x5084, 0x82D3, 0x5086, 0x82D4, 0x5087, 0x82D5, 0x5089, - 0x82D6, 0x508A, 0x82D7, 0x508B, 0x82D8, 0x508C, 0x82D9, 0x508E, - 0x82DA, 0x508F, 0x82DB, 0x5090, 0x82DC, 0x5091, 0x82DD, 0x5092, - 0x82DE, 0x5093, 0x82DF, 0x5094, 0x82E0, 0x5095, 0x82E1, 0x5096, - 0x82E2, 0x5097, 0x82E3, 0x5098, 0x82E4, 0x5099, 0x82E5, 0x509A, - 0x82E6, 0x509B, 0x82E7, 0x509C, 0x82E8, 0x509D, 0x82E9, 0x509E, - 0x82EA, 0x509F, 0x82EB, 0x50A0, 0x82EC, 0x50A1, 0x82ED, 0x50A2, - 0x82EE, 0x50A4, 0x82EF, 0x50A6, 0x82F0, 0x50AA, 0x82F1, 0x50AB, - 0x82F2, 0x50AD, 0x82F3, 0x50AE, 0x82F4, 0x50AF, 0x82F5, 0x50B0, - 0x82F6, 0x50B1, 0x82F7, 0x50B3, 0x82F8, 0x50B4, 0x82F9, 0x50B5, - 0x82FA, 0x50B6, 0x82FB, 0x50B7, 0x82FC, 0x50B8, 0x82FD, 0x50B9, - 0x82FE, 0x50BC, 0x8340, 0x50BD, 0x8341, 0x50BE, 0x8342, 0x50BF, - 0x8343, 0x50C0, 0x8344, 0x50C1, 0x8345, 0x50C2, 0x8346, 0x50C3, - 0x8347, 0x50C4, 0x8348, 0x50C5, 0x8349, 0x50C6, 0x834A, 0x50C7, - 0x834B, 0x50C8, 0x834C, 0x50C9, 0x834D, 0x50CA, 0x834E, 0x50CB, - 0x834F, 0x50CC, 0x8350, 0x50CD, 0x8351, 0x50CE, 0x8352, 0x50D0, - 0x8353, 0x50D1, 0x8354, 0x50D2, 0x8355, 0x50D3, 0x8356, 0x50D4, - 0x8357, 0x50D5, 0x8358, 0x50D7, 0x8359, 0x50D8, 0x835A, 0x50D9, - 0x835B, 0x50DB, 0x835C, 0x50DC, 0x835D, 0x50DD, 0x835E, 0x50DE, - 0x835F, 0x50DF, 0x8360, 0x50E0, 0x8361, 0x50E1, 0x8362, 0x50E2, - 0x8363, 0x50E3, 0x8364, 0x50E4, 0x8365, 0x50E5, 0x8366, 0x50E8, - 0x8367, 0x50E9, 0x8368, 0x50EA, 0x8369, 0x50EB, 0x836A, 0x50EF, - 0x836B, 0x50F0, 0x836C, 0x50F1, 0x836D, 0x50F2, 0x836E, 0x50F4, - 0x836F, 0x50F6, 0x8370, 0x50F7, 0x8371, 0x50F8, 0x8372, 0x50F9, - 0x8373, 0x50FA, 0x8374, 0x50FC, 0x8375, 0x50FD, 0x8376, 0x50FE, - 0x8377, 0x50FF, 0x8378, 0x5100, 0x8379, 0x5101, 0x837A, 0x5102, - 0x837B, 0x5103, 0x837C, 0x5104, 0x837D, 0x5105, 0x837E, 0x5108, - 0x8380, 0x5109, 0x8381, 0x510A, 0x8382, 0x510C, 0x8383, 0x510D, - 0x8384, 0x510E, 0x8385, 0x510F, 0x8386, 0x5110, 0x8387, 0x5111, - 0x8388, 0x5113, 0x8389, 0x5114, 0x838A, 0x5115, 0x838B, 0x5116, - 0x838C, 0x5117, 0x838D, 0x5118, 0x838E, 0x5119, 0x838F, 0x511A, - 0x8390, 0x511B, 0x8391, 0x511C, 0x8392, 0x511D, 0x8393, 0x511E, - 0x8394, 0x511F, 0x8395, 0x5120, 0x8396, 0x5122, 0x8397, 0x5123, - 0x8398, 0x5124, 0x8399, 0x5125, 0x839A, 0x5126, 0x839B, 0x5127, - 0x839C, 0x5128, 0x839D, 0x5129, 0x839E, 0x512A, 0x839F, 0x512B, - 0x83A0, 0x512C, 0x83A1, 0x512D, 0x83A2, 0x512E, 0x83A3, 0x512F, - 0x83A4, 0x5130, 0x83A5, 0x5131, 0x83A6, 0x5132, 0x83A7, 0x5133, - 0x83A8, 0x5134, 0x83A9, 0x5135, 0x83AA, 0x5136, 0x83AB, 0x5137, - 0x83AC, 0x5138, 0x83AD, 0x5139, 0x83AE, 0x513A, 0x83AF, 0x513B, - 0x83B0, 0x513C, 0x83B1, 0x513D, 0x83B2, 0x513E, 0x83B3, 0x5142, - 0x83B4, 0x5147, 0x83B5, 0x514A, 0x83B6, 0x514C, 0x83B7, 0x514E, - 0x83B8, 0x514F, 0x83B9, 0x5150, 0x83BA, 0x5152, 0x83BB, 0x5153, - 0x83BC, 0x5157, 0x83BD, 0x5158, 0x83BE, 0x5159, 0x83BF, 0x515B, - 0x83C0, 0x515D, 0x83C1, 0x515E, 0x83C2, 0x515F, 0x83C3, 0x5160, - 0x83C4, 0x5161, 0x83C5, 0x5163, 0x83C6, 0x5164, 0x83C7, 0x5166, - 0x83C8, 0x5167, 0x83C9, 0x5169, 0x83CA, 0x516A, 0x83CB, 0x516F, - 0x83CC, 0x5172, 0x83CD, 0x517A, 0x83CE, 0x517E, 0x83CF, 0x517F, - 0x83D0, 0x5183, 0x83D1, 0x5184, 0x83D2, 0x5186, 0x83D3, 0x5187, - 0x83D4, 0x518A, 0x83D5, 0x518B, 0x83D6, 0x518E, 0x83D7, 0x518F, - 0x83D8, 0x5190, 0x83D9, 0x5191, 0x83DA, 0x5193, 0x83DB, 0x5194, - 0x83DC, 0x5198, 0x83DD, 0x519A, 0x83DE, 0x519D, 0x83DF, 0x519E, - 0x83E0, 0x519F, 0x83E1, 0x51A1, 0x83E2, 0x51A3, 0x83E3, 0x51A6, - 0x83E4, 0x51A7, 0x83E5, 0x51A8, 0x83E6, 0x51A9, 0x83E7, 0x51AA, - 0x83E8, 0x51AD, 0x83E9, 0x51AE, 0x83EA, 0x51B4, 0x83EB, 0x51B8, - 0x83EC, 0x51B9, 0x83ED, 0x51BA, 0x83EE, 0x51BE, 0x83EF, 0x51BF, - 0x83F0, 0x51C1, 0x83F1, 0x51C2, 0x83F2, 0x51C3, 0x83F3, 0x51C5, - 0x83F4, 0x51C8, 0x83F5, 0x51CA, 0x83F6, 0x51CD, 0x83F7, 0x51CE, - 0x83F8, 0x51D0, 0x83F9, 0x51D2, 0x83FA, 0x51D3, 0x83FB, 0x51D4, - 0x83FC, 0x51D5, 0x83FD, 0x51D6, 0x83FE, 0x51D7, 0x8440, 0x51D8, - 0x8441, 0x51D9, 0x8442, 0x51DA, 0x8443, 0x51DC, 0x8444, 0x51DE, - 0x8445, 0x51DF, 0x8446, 0x51E2, 0x8447, 0x51E3, 0x8448, 0x51E5, - 0x8449, 0x51E6, 0x844A, 0x51E7, 0x844B, 0x51E8, 0x844C, 0x51E9, - 0x844D, 0x51EA, 0x844E, 0x51EC, 0x844F, 0x51EE, 0x8450, 0x51F1, - 0x8451, 0x51F2, 0x8452, 0x51F4, 0x8453, 0x51F7, 0x8454, 0x51FE, - 0x8455, 0x5204, 0x8456, 0x5205, 0x8457, 0x5209, 0x8458, 0x520B, - 0x8459, 0x520C, 0x845A, 0x520F, 0x845B, 0x5210, 0x845C, 0x5213, - 0x845D, 0x5214, 0x845E, 0x5215, 0x845F, 0x521C, 0x8460, 0x521E, - 0x8461, 0x521F, 0x8462, 0x5221, 0x8463, 0x5222, 0x8464, 0x5223, - 0x8465, 0x5225, 0x8466, 0x5226, 0x8467, 0x5227, 0x8468, 0x522A, - 0x8469, 0x522C, 0x846A, 0x522F, 0x846B, 0x5231, 0x846C, 0x5232, - 0x846D, 0x5234, 0x846E, 0x5235, 0x846F, 0x523C, 0x8470, 0x523E, - 0x8471, 0x5244, 0x8472, 0x5245, 0x8473, 0x5246, 0x8474, 0x5247, - 0x8475, 0x5248, 0x8476, 0x5249, 0x8477, 0x524B, 0x8478, 0x524E, - 0x8479, 0x524F, 0x847A, 0x5252, 0x847B, 0x5253, 0x847C, 0x5255, - 0x847D, 0x5257, 0x847E, 0x5258, 0x8480, 0x5259, 0x8481, 0x525A, - 0x8482, 0x525B, 0x8483, 0x525D, 0x8484, 0x525F, 0x8485, 0x5260, - 0x8486, 0x5262, 0x8487, 0x5263, 0x8488, 0x5264, 0x8489, 0x5266, - 0x848A, 0x5268, 0x848B, 0x526B, 0x848C, 0x526C, 0x848D, 0x526D, - 0x848E, 0x526E, 0x848F, 0x5270, 0x8490, 0x5271, 0x8491, 0x5273, - 0x8492, 0x5274, 0x8493, 0x5275, 0x8494, 0x5276, 0x8495, 0x5277, - 0x8496, 0x5278, 0x8497, 0x5279, 0x8498, 0x527A, 0x8499, 0x527B, - 0x849A, 0x527C, 0x849B, 0x527E, 0x849C, 0x5280, 0x849D, 0x5283, - 0x849E, 0x5284, 0x849F, 0x5285, 0x84A0, 0x5286, 0x84A1, 0x5287, - 0x84A2, 0x5289, 0x84A3, 0x528A, 0x84A4, 0x528B, 0x84A5, 0x528C, - 0x84A6, 0x528D, 0x84A7, 0x528E, 0x84A8, 0x528F, 0x84A9, 0x5291, - 0x84AA, 0x5292, 0x84AB, 0x5294, 0x84AC, 0x5295, 0x84AD, 0x5296, - 0x84AE, 0x5297, 0x84AF, 0x5298, 0x84B0, 0x5299, 0x84B1, 0x529A, - 0x84B2, 0x529C, 0x84B3, 0x52A4, 0x84B4, 0x52A5, 0x84B5, 0x52A6, - 0x84B6, 0x52A7, 0x84B7, 0x52AE, 0x84B8, 0x52AF, 0x84B9, 0x52B0, - 0x84BA, 0x52B4, 0x84BB, 0x52B5, 0x84BC, 0x52B6, 0x84BD, 0x52B7, - 0x84BE, 0x52B8, 0x84BF, 0x52B9, 0x84C0, 0x52BA, 0x84C1, 0x52BB, - 0x84C2, 0x52BC, 0x84C3, 0x52BD, 0x84C4, 0x52C0, 0x84C5, 0x52C1, - 0x84C6, 0x52C2, 0x84C7, 0x52C4, 0x84C8, 0x52C5, 0x84C9, 0x52C6, - 0x84CA, 0x52C8, 0x84CB, 0x52CA, 0x84CC, 0x52CC, 0x84CD, 0x52CD, - 0x84CE, 0x52CE, 0x84CF, 0x52CF, 0x84D0, 0x52D1, 0x84D1, 0x52D3, - 0x84D2, 0x52D4, 0x84D3, 0x52D5, 0x84D4, 0x52D7, 0x84D5, 0x52D9, - 0x84D6, 0x52DA, 0x84D7, 0x52DB, 0x84D8, 0x52DC, 0x84D9, 0x52DD, - 0x84DA, 0x52DE, 0x84DB, 0x52E0, 0x84DC, 0x52E1, 0x84DD, 0x52E2, - 0x84DE, 0x52E3, 0x84DF, 0x52E5, 0x84E0, 0x52E6, 0x84E1, 0x52E7, - 0x84E2, 0x52E8, 0x84E3, 0x52E9, 0x84E4, 0x52EA, 0x84E5, 0x52EB, - 0x84E6, 0x52EC, 0x84E7, 0x52ED, 0x84E8, 0x52EE, 0x84E9, 0x52EF, - 0x84EA, 0x52F1, 0x84EB, 0x52F2, 0x84EC, 0x52F3, 0x84ED, 0x52F4, - 0x84EE, 0x52F5, 0x84EF, 0x52F6, 0x84F0, 0x52F7, 0x84F1, 0x52F8, - 0x84F2, 0x52FB, 0x84F3, 0x52FC, 0x84F4, 0x52FD, 0x84F5, 0x5301, - 0x84F6, 0x5302, 0x84F7, 0x5303, 0x84F8, 0x5304, 0x84F9, 0x5307, - 0x84FA, 0x5309, 0x84FB, 0x530A, 0x84FC, 0x530B, 0x84FD, 0x530C, - 0x84FE, 0x530E, 0x8540, 0x5311, 0x8541, 0x5312, 0x8542, 0x5313, - 0x8543, 0x5314, 0x8544, 0x5318, 0x8545, 0x531B, 0x8546, 0x531C, - 0x8547, 0x531E, 0x8548, 0x531F, 0x8549, 0x5322, 0x854A, 0x5324, - 0x854B, 0x5325, 0x854C, 0x5327, 0x854D, 0x5328, 0x854E, 0x5329, - 0x854F, 0x532B, 0x8550, 0x532C, 0x8551, 0x532D, 0x8552, 0x532F, - 0x8553, 0x5330, 0x8554, 0x5331, 0x8555, 0x5332, 0x8556, 0x5333, - 0x8557, 0x5334, 0x8558, 0x5335, 0x8559, 0x5336, 0x855A, 0x5337, - 0x855B, 0x5338, 0x855C, 0x533C, 0x855D, 0x533D, 0x855E, 0x5340, - 0x855F, 0x5342, 0x8560, 0x5344, 0x8561, 0x5346, 0x8562, 0x534B, - 0x8563, 0x534C, 0x8564, 0x534D, 0x8565, 0x5350, 0x8566, 0x5354, - 0x8567, 0x5358, 0x8568, 0x5359, 0x8569, 0x535B, 0x856A, 0x535D, - 0x856B, 0x5365, 0x856C, 0x5368, 0x856D, 0x536A, 0x856E, 0x536C, - 0x856F, 0x536D, 0x8570, 0x5372, 0x8571, 0x5376, 0x8572, 0x5379, - 0x8573, 0x537B, 0x8574, 0x537C, 0x8575, 0x537D, 0x8576, 0x537E, - 0x8577, 0x5380, 0x8578, 0x5381, 0x8579, 0x5383, 0x857A, 0x5387, - 0x857B, 0x5388, 0x857C, 0x538A, 0x857D, 0x538E, 0x857E, 0x538F, - 0x8580, 0x5390, 0x8581, 0x5391, 0x8582, 0x5392, 0x8583, 0x5393, - 0x8584, 0x5394, 0x8585, 0x5396, 0x8586, 0x5397, 0x8587, 0x5399, - 0x8588, 0x539B, 0x8589, 0x539C, 0x858A, 0x539E, 0x858B, 0x53A0, - 0x858C, 0x53A1, 0x858D, 0x53A4, 0x858E, 0x53A7, 0x858F, 0x53AA, - 0x8590, 0x53AB, 0x8591, 0x53AC, 0x8592, 0x53AD, 0x8593, 0x53AF, - 0x8594, 0x53B0, 0x8595, 0x53B1, 0x8596, 0x53B2, 0x8597, 0x53B3, - 0x8598, 0x53B4, 0x8599, 0x53B5, 0x859A, 0x53B7, 0x859B, 0x53B8, - 0x859C, 0x53B9, 0x859D, 0x53BA, 0x859E, 0x53BC, 0x859F, 0x53BD, - 0x85A0, 0x53BE, 0x85A1, 0x53C0, 0x85A2, 0x53C3, 0x85A3, 0x53C4, - 0x85A4, 0x53C5, 0x85A5, 0x53C6, 0x85A6, 0x53C7, 0x85A7, 0x53CE, - 0x85A8, 0x53CF, 0x85A9, 0x53D0, 0x85AA, 0x53D2, 0x85AB, 0x53D3, - 0x85AC, 0x53D5, 0x85AD, 0x53DA, 0x85AE, 0x53DC, 0x85AF, 0x53DD, - 0x85B0, 0x53DE, 0x85B1, 0x53E1, 0x85B2, 0x53E2, 0x85B3, 0x53E7, - 0x85B4, 0x53F4, 0x85B5, 0x53FA, 0x85B6, 0x53FE, 0x85B7, 0x53FF, - 0x85B8, 0x5400, 0x85B9, 0x5402, 0x85BA, 0x5405, 0x85BB, 0x5407, - 0x85BC, 0x540B, 0x85BD, 0x5414, 0x85BE, 0x5418, 0x85BF, 0x5419, - 0x85C0, 0x541A, 0x85C1, 0x541C, 0x85C2, 0x5422, 0x85C3, 0x5424, - 0x85C4, 0x5425, 0x85C5, 0x542A, 0x85C6, 0x5430, 0x85C7, 0x5433, - 0x85C8, 0x5436, 0x85C9, 0x5437, 0x85CA, 0x543A, 0x85CB, 0x543D, - 0x85CC, 0x543F, 0x85CD, 0x5441, 0x85CE, 0x5442, 0x85CF, 0x5444, - 0x85D0, 0x5445, 0x85D1, 0x5447, 0x85D2, 0x5449, 0x85D3, 0x544C, - 0x85D4, 0x544D, 0x85D5, 0x544E, 0x85D6, 0x544F, 0x85D7, 0x5451, - 0x85D8, 0x545A, 0x85D9, 0x545D, 0x85DA, 0x545E, 0x85DB, 0x545F, - 0x85DC, 0x5460, 0x85DD, 0x5461, 0x85DE, 0x5463, 0x85DF, 0x5465, - 0x85E0, 0x5467, 0x85E1, 0x5469, 0x85E2, 0x546A, 0x85E3, 0x546B, - 0x85E4, 0x546C, 0x85E5, 0x546D, 0x85E6, 0x546E, 0x85E7, 0x546F, - 0x85E8, 0x5470, 0x85E9, 0x5474, 0x85EA, 0x5479, 0x85EB, 0x547A, - 0x85EC, 0x547E, 0x85ED, 0x547F, 0x85EE, 0x5481, 0x85EF, 0x5483, - 0x85F0, 0x5485, 0x85F1, 0x5487, 0x85F2, 0x5488, 0x85F3, 0x5489, - 0x85F4, 0x548A, 0x85F5, 0x548D, 0x85F6, 0x5491, 0x85F7, 0x5493, - 0x85F8, 0x5497, 0x85F9, 0x5498, 0x85FA, 0x549C, 0x85FB, 0x549E, - 0x85FC, 0x549F, 0x85FD, 0x54A0, 0x85FE, 0x54A1, 0x8640, 0x54A2, - 0x8641, 0x54A5, 0x8642, 0x54AE, 0x8643, 0x54B0, 0x8644, 0x54B2, - 0x8645, 0x54B5, 0x8646, 0x54B6, 0x8647, 0x54B7, 0x8648, 0x54B9, - 0x8649, 0x54BA, 0x864A, 0x54BC, 0x864B, 0x54BE, 0x864C, 0x54C3, - 0x864D, 0x54C5, 0x864E, 0x54CA, 0x864F, 0x54CB, 0x8650, 0x54D6, - 0x8651, 0x54D8, 0x8652, 0x54DB, 0x8653, 0x54E0, 0x8654, 0x54E1, - 0x8655, 0x54E2, 0x8656, 0x54E3, 0x8657, 0x54E4, 0x8658, 0x54EB, - 0x8659, 0x54EC, 0x865A, 0x54EF, 0x865B, 0x54F0, 0x865C, 0x54F1, - 0x865D, 0x54F4, 0x865E, 0x54F5, 0x865F, 0x54F6, 0x8660, 0x54F7, - 0x8661, 0x54F8, 0x8662, 0x54F9, 0x8663, 0x54FB, 0x8664, 0x54FE, - 0x8665, 0x5500, 0x8666, 0x5502, 0x8667, 0x5503, 0x8668, 0x5504, - 0x8669, 0x5505, 0x866A, 0x5508, 0x866B, 0x550A, 0x866C, 0x550B, - 0x866D, 0x550C, 0x866E, 0x550D, 0x866F, 0x550E, 0x8670, 0x5512, - 0x8671, 0x5513, 0x8672, 0x5515, 0x8673, 0x5516, 0x8674, 0x5517, - 0x8675, 0x5518, 0x8676, 0x5519, 0x8677, 0x551A, 0x8678, 0x551C, - 0x8679, 0x551D, 0x867A, 0x551E, 0x867B, 0x551F, 0x867C, 0x5521, - 0x867D, 0x5525, 0x867E, 0x5526, 0x8680, 0x5528, 0x8681, 0x5529, - 0x8682, 0x552B, 0x8683, 0x552D, 0x8684, 0x5532, 0x8685, 0x5534, - 0x8686, 0x5535, 0x8687, 0x5536, 0x8688, 0x5538, 0x8689, 0x5539, - 0x868A, 0x553A, 0x868B, 0x553B, 0x868C, 0x553D, 0x868D, 0x5540, - 0x868E, 0x5542, 0x868F, 0x5545, 0x8690, 0x5547, 0x8691, 0x5548, - 0x8692, 0x554B, 0x8693, 0x554C, 0x8694, 0x554D, 0x8695, 0x554E, - 0x8696, 0x554F, 0x8697, 0x5551, 0x8698, 0x5552, 0x8699, 0x5553, - 0x869A, 0x5554, 0x869B, 0x5557, 0x869C, 0x5558, 0x869D, 0x5559, - 0x869E, 0x555A, 0x869F, 0x555B, 0x86A0, 0x555D, 0x86A1, 0x555E, - 0x86A2, 0x555F, 0x86A3, 0x5560, 0x86A4, 0x5562, 0x86A5, 0x5563, - 0x86A6, 0x5568, 0x86A7, 0x5569, 0x86A8, 0x556B, 0x86A9, 0x556F, - 0x86AA, 0x5570, 0x86AB, 0x5571, 0x86AC, 0x5572, 0x86AD, 0x5573, - 0x86AE, 0x5574, 0x86AF, 0x5579, 0x86B0, 0x557A, 0x86B1, 0x557D, - 0x86B2, 0x557F, 0x86B3, 0x5585, 0x86B4, 0x5586, 0x86B5, 0x558C, - 0x86B6, 0x558D, 0x86B7, 0x558E, 0x86B8, 0x5590, 0x86B9, 0x5592, - 0x86BA, 0x5593, 0x86BB, 0x5595, 0x86BC, 0x5596, 0x86BD, 0x5597, - 0x86BE, 0x559A, 0x86BF, 0x559B, 0x86C0, 0x559E, 0x86C1, 0x55A0, - 0x86C2, 0x55A1, 0x86C3, 0x55A2, 0x86C4, 0x55A3, 0x86C5, 0x55A4, - 0x86C6, 0x55A5, 0x86C7, 0x55A6, 0x86C8, 0x55A8, 0x86C9, 0x55A9, - 0x86CA, 0x55AA, 0x86CB, 0x55AB, 0x86CC, 0x55AC, 0x86CD, 0x55AD, - 0x86CE, 0x55AE, 0x86CF, 0x55AF, 0x86D0, 0x55B0, 0x86D1, 0x55B2, - 0x86D2, 0x55B4, 0x86D3, 0x55B6, 0x86D4, 0x55B8, 0x86D5, 0x55BA, - 0x86D6, 0x55BC, 0x86D7, 0x55BF, 0x86D8, 0x55C0, 0x86D9, 0x55C1, - 0x86DA, 0x55C2, 0x86DB, 0x55C3, 0x86DC, 0x55C6, 0x86DD, 0x55C7, - 0x86DE, 0x55C8, 0x86DF, 0x55CA, 0x86E0, 0x55CB, 0x86E1, 0x55CE, - 0x86E2, 0x55CF, 0x86E3, 0x55D0, 0x86E4, 0x55D5, 0x86E5, 0x55D7, - 0x86E6, 0x55D8, 0x86E7, 0x55D9, 0x86E8, 0x55DA, 0x86E9, 0x55DB, - 0x86EA, 0x55DE, 0x86EB, 0x55E0, 0x86EC, 0x55E2, 0x86ED, 0x55E7, - 0x86EE, 0x55E9, 0x86EF, 0x55ED, 0x86F0, 0x55EE, 0x86F1, 0x55F0, - 0x86F2, 0x55F1, 0x86F3, 0x55F4, 0x86F4, 0x55F6, 0x86F5, 0x55F8, - 0x86F6, 0x55F9, 0x86F7, 0x55FA, 0x86F8, 0x55FB, 0x86F9, 0x55FC, - 0x86FA, 0x55FF, 0x86FB, 0x5602, 0x86FC, 0x5603, 0x86FD, 0x5604, - 0x86FE, 0x5605, 0x8740, 0x5606, 0x8741, 0x5607, 0x8742, 0x560A, - 0x8743, 0x560B, 0x8744, 0x560D, 0x8745, 0x5610, 0x8746, 0x5611, - 0x8747, 0x5612, 0x8748, 0x5613, 0x8749, 0x5614, 0x874A, 0x5615, - 0x874B, 0x5616, 0x874C, 0x5617, 0x874D, 0x5619, 0x874E, 0x561A, - 0x874F, 0x561C, 0x8750, 0x561D, 0x8751, 0x5620, 0x8752, 0x5621, - 0x8753, 0x5622, 0x8754, 0x5625, 0x8755, 0x5626, 0x8756, 0x5628, - 0x8757, 0x5629, 0x8758, 0x562A, 0x8759, 0x562B, 0x875A, 0x562E, - 0x875B, 0x562F, 0x875C, 0x5630, 0x875D, 0x5633, 0x875E, 0x5635, - 0x875F, 0x5637, 0x8760, 0x5638, 0x8761, 0x563A, 0x8762, 0x563C, - 0x8763, 0x563D, 0x8764, 0x563E, 0x8765, 0x5640, 0x8766, 0x5641, - 0x8767, 0x5642, 0x8768, 0x5643, 0x8769, 0x5644, 0x876A, 0x5645, - 0x876B, 0x5646, 0x876C, 0x5647, 0x876D, 0x5648, 0x876E, 0x5649, - 0x876F, 0x564A, 0x8770, 0x564B, 0x8771, 0x564F, 0x8772, 0x5650, - 0x8773, 0x5651, 0x8774, 0x5652, 0x8775, 0x5653, 0x8776, 0x5655, - 0x8777, 0x5656, 0x8778, 0x565A, 0x8779, 0x565B, 0x877A, 0x565D, - 0x877B, 0x565E, 0x877C, 0x565F, 0x877D, 0x5660, 0x877E, 0x5661, - 0x8780, 0x5663, 0x8781, 0x5665, 0x8782, 0x5666, 0x8783, 0x5667, - 0x8784, 0x566D, 0x8785, 0x566E, 0x8786, 0x566F, 0x8787, 0x5670, - 0x8788, 0x5672, 0x8789, 0x5673, 0x878A, 0x5674, 0x878B, 0x5675, - 0x878C, 0x5677, 0x878D, 0x5678, 0x878E, 0x5679, 0x878F, 0x567A, - 0x8790, 0x567D, 0x8791, 0x567E, 0x8792, 0x567F, 0x8793, 0x5680, - 0x8794, 0x5681, 0x8795, 0x5682, 0x8796, 0x5683, 0x8797, 0x5684, - 0x8798, 0x5687, 0x8799, 0x5688, 0x879A, 0x5689, 0x879B, 0x568A, - 0x879C, 0x568B, 0x879D, 0x568C, 0x879E, 0x568D, 0x879F, 0x5690, - 0x87A0, 0x5691, 0x87A1, 0x5692, 0x87A2, 0x5694, 0x87A3, 0x5695, - 0x87A4, 0x5696, 0x87A5, 0x5697, 0x87A6, 0x5698, 0x87A7, 0x5699, - 0x87A8, 0x569A, 0x87A9, 0x569B, 0x87AA, 0x569C, 0x87AB, 0x569D, - 0x87AC, 0x569E, 0x87AD, 0x569F, 0x87AE, 0x56A0, 0x87AF, 0x56A1, - 0x87B0, 0x56A2, 0x87B1, 0x56A4, 0x87B2, 0x56A5, 0x87B3, 0x56A6, - 0x87B4, 0x56A7, 0x87B5, 0x56A8, 0x87B6, 0x56A9, 0x87B7, 0x56AA, - 0x87B8, 0x56AB, 0x87B9, 0x56AC, 0x87BA, 0x56AD, 0x87BB, 0x56AE, - 0x87BC, 0x56B0, 0x87BD, 0x56B1, 0x87BE, 0x56B2, 0x87BF, 0x56B3, - 0x87C0, 0x56B4, 0x87C1, 0x56B5, 0x87C2, 0x56B6, 0x87C3, 0x56B8, - 0x87C4, 0x56B9, 0x87C5, 0x56BA, 0x87C6, 0x56BB, 0x87C7, 0x56BD, - 0x87C8, 0x56BE, 0x87C9, 0x56BF, 0x87CA, 0x56C0, 0x87CB, 0x56C1, - 0x87CC, 0x56C2, 0x87CD, 0x56C3, 0x87CE, 0x56C4, 0x87CF, 0x56C5, - 0x87D0, 0x56C6, 0x87D1, 0x56C7, 0x87D2, 0x56C8, 0x87D3, 0x56C9, - 0x87D4, 0x56CB, 0x87D5, 0x56CC, 0x87D6, 0x56CD, 0x87D7, 0x56CE, - 0x87D8, 0x56CF, 0x87D9, 0x56D0, 0x87DA, 0x56D1, 0x87DB, 0x56D2, - 0x87DC, 0x56D3, 0x87DD, 0x56D5, 0x87DE, 0x56D6, 0x87DF, 0x56D8, - 0x87E0, 0x56D9, 0x87E1, 0x56DC, 0x87E2, 0x56E3, 0x87E3, 0x56E5, - 0x87E4, 0x56E6, 0x87E5, 0x56E7, 0x87E6, 0x56E8, 0x87E7, 0x56E9, - 0x87E8, 0x56EA, 0x87E9, 0x56EC, 0x87EA, 0x56EE, 0x87EB, 0x56EF, - 0x87EC, 0x56F2, 0x87ED, 0x56F3, 0x87EE, 0x56F6, 0x87EF, 0x56F7, - 0x87F0, 0x56F8, 0x87F1, 0x56FB, 0x87F2, 0x56FC, 0x87F3, 0x5700, - 0x87F4, 0x5701, 0x87F5, 0x5702, 0x87F6, 0x5705, 0x87F7, 0x5707, - 0x87F8, 0x570B, 0x87F9, 0x570C, 0x87FA, 0x570D, 0x87FB, 0x570E, - 0x87FC, 0x570F, 0x87FD, 0x5710, 0x87FE, 0x5711, 0x8840, 0x5712, - 0x8841, 0x5713, 0x8842, 0x5714, 0x8843, 0x5715, 0x8844, 0x5716, - 0x8845, 0x5717, 0x8846, 0x5718, 0x8847, 0x5719, 0x8848, 0x571A, - 0x8849, 0x571B, 0x884A, 0x571D, 0x884B, 0x571E, 0x884C, 0x5720, - 0x884D, 0x5721, 0x884E, 0x5722, 0x884F, 0x5724, 0x8850, 0x5725, - 0x8851, 0x5726, 0x8852, 0x5727, 0x8853, 0x572B, 0x8854, 0x5731, - 0x8855, 0x5732, 0x8856, 0x5734, 0x8857, 0x5735, 0x8858, 0x5736, - 0x8859, 0x5737, 0x885A, 0x5738, 0x885B, 0x573C, 0x885C, 0x573D, - 0x885D, 0x573F, 0x885E, 0x5741, 0x885F, 0x5743, 0x8860, 0x5744, - 0x8861, 0x5745, 0x8862, 0x5746, 0x8863, 0x5748, 0x8864, 0x5749, - 0x8865, 0x574B, 0x8866, 0x5752, 0x8867, 0x5753, 0x8868, 0x5754, - 0x8869, 0x5755, 0x886A, 0x5756, 0x886B, 0x5758, 0x886C, 0x5759, - 0x886D, 0x5762, 0x886E, 0x5763, 0x886F, 0x5765, 0x8870, 0x5767, - 0x8871, 0x576C, 0x8872, 0x576E, 0x8873, 0x5770, 0x8874, 0x5771, - 0x8875, 0x5772, 0x8876, 0x5774, 0x8877, 0x5775, 0x8878, 0x5778, - 0x8879, 0x5779, 0x887A, 0x577A, 0x887B, 0x577D, 0x887C, 0x577E, - 0x887D, 0x577F, 0x887E, 0x5780, 0x8880, 0x5781, 0x8881, 0x5787, - 0x8882, 0x5788, 0x8883, 0x5789, 0x8884, 0x578A, 0x8885, 0x578D, - 0x8886, 0x578E, 0x8887, 0x578F, 0x8888, 0x5790, 0x8889, 0x5791, - 0x888A, 0x5794, 0x888B, 0x5795, 0x888C, 0x5796, 0x888D, 0x5797, - 0x888E, 0x5798, 0x888F, 0x5799, 0x8890, 0x579A, 0x8891, 0x579C, - 0x8892, 0x579D, 0x8893, 0x579E, 0x8894, 0x579F, 0x8895, 0x57A5, - 0x8896, 0x57A8, 0x8897, 0x57AA, 0x8898, 0x57AC, 0x8899, 0x57AF, - 0x889A, 0x57B0, 0x889B, 0x57B1, 0x889C, 0x57B3, 0x889D, 0x57B5, - 0x889E, 0x57B6, 0x889F, 0x57B7, 0x88A0, 0x57B9, 0x88A1, 0x57BA, - 0x88A2, 0x57BB, 0x88A3, 0x57BC, 0x88A4, 0x57BD, 0x88A5, 0x57BE, - 0x88A6, 0x57BF, 0x88A7, 0x57C0, 0x88A8, 0x57C1, 0x88A9, 0x57C4, - 0x88AA, 0x57C5, 0x88AB, 0x57C6, 0x88AC, 0x57C7, 0x88AD, 0x57C8, - 0x88AE, 0x57C9, 0x88AF, 0x57CA, 0x88B0, 0x57CC, 0x88B1, 0x57CD, - 0x88B2, 0x57D0, 0x88B3, 0x57D1, 0x88B4, 0x57D3, 0x88B5, 0x57D6, - 0x88B6, 0x57D7, 0x88B7, 0x57DB, 0x88B8, 0x57DC, 0x88B9, 0x57DE, - 0x88BA, 0x57E1, 0x88BB, 0x57E2, 0x88BC, 0x57E3, 0x88BD, 0x57E5, - 0x88BE, 0x57E6, 0x88BF, 0x57E7, 0x88C0, 0x57E8, 0x88C1, 0x57E9, - 0x88C2, 0x57EA, 0x88C3, 0x57EB, 0x88C4, 0x57EC, 0x88C5, 0x57EE, - 0x88C6, 0x57F0, 0x88C7, 0x57F1, 0x88C8, 0x57F2, 0x88C9, 0x57F3, - 0x88CA, 0x57F5, 0x88CB, 0x57F6, 0x88CC, 0x57F7, 0x88CD, 0x57FB, - 0x88CE, 0x57FC, 0x88CF, 0x57FE, 0x88D0, 0x57FF, 0x88D1, 0x5801, - 0x88D2, 0x5803, 0x88D3, 0x5804, 0x88D4, 0x5805, 0x88D5, 0x5808, - 0x88D6, 0x5809, 0x88D7, 0x580A, 0x88D8, 0x580C, 0x88D9, 0x580E, - 0x88DA, 0x580F, 0x88DB, 0x5810, 0x88DC, 0x5812, 0x88DD, 0x5813, - 0x88DE, 0x5814, 0x88DF, 0x5816, 0x88E0, 0x5817, 0x88E1, 0x5818, - 0x88E2, 0x581A, 0x88E3, 0x581B, 0x88E4, 0x581C, 0x88E5, 0x581D, - 0x88E6, 0x581F, 0x88E7, 0x5822, 0x88E8, 0x5823, 0x88E9, 0x5825, - 0x88EA, 0x5826, 0x88EB, 0x5827, 0x88EC, 0x5828, 0x88ED, 0x5829, - 0x88EE, 0x582B, 0x88EF, 0x582C, 0x88F0, 0x582D, 0x88F1, 0x582E, - 0x88F2, 0x582F, 0x88F3, 0x5831, 0x88F4, 0x5832, 0x88F5, 0x5833, - 0x88F6, 0x5834, 0x88F7, 0x5836, 0x88F8, 0x5837, 0x88F9, 0x5838, - 0x88FA, 0x5839, 0x88FB, 0x583A, 0x88FC, 0x583B, 0x88FD, 0x583C, - 0x88FE, 0x583D, 0x8940, 0x583E, 0x8941, 0x583F, 0x8942, 0x5840, - 0x8943, 0x5841, 0x8944, 0x5842, 0x8945, 0x5843, 0x8946, 0x5845, - 0x8947, 0x5846, 0x8948, 0x5847, 0x8949, 0x5848, 0x894A, 0x5849, - 0x894B, 0x584A, 0x894C, 0x584B, 0x894D, 0x584E, 0x894E, 0x584F, - 0x894F, 0x5850, 0x8950, 0x5852, 0x8951, 0x5853, 0x8952, 0x5855, - 0x8953, 0x5856, 0x8954, 0x5857, 0x8955, 0x5859, 0x8956, 0x585A, - 0x8957, 0x585B, 0x8958, 0x585C, 0x8959, 0x585D, 0x895A, 0x585F, - 0x895B, 0x5860, 0x895C, 0x5861, 0x895D, 0x5862, 0x895E, 0x5863, - 0x895F, 0x5864, 0x8960, 0x5866, 0x8961, 0x5867, 0x8962, 0x5868, - 0x8963, 0x5869, 0x8964, 0x586A, 0x8965, 0x586D, 0x8966, 0x586E, - 0x8967, 0x586F, 0x8968, 0x5870, 0x8969, 0x5871, 0x896A, 0x5872, - 0x896B, 0x5873, 0x896C, 0x5874, 0x896D, 0x5875, 0x896E, 0x5876, - 0x896F, 0x5877, 0x8970, 0x5878, 0x8971, 0x5879, 0x8972, 0x587A, - 0x8973, 0x587B, 0x8974, 0x587C, 0x8975, 0x587D, 0x8976, 0x587F, - 0x8977, 0x5882, 0x8978, 0x5884, 0x8979, 0x5886, 0x897A, 0x5887, - 0x897B, 0x5888, 0x897C, 0x588A, 0x897D, 0x588B, 0x897E, 0x588C, - 0x8980, 0x588D, 0x8981, 0x588E, 0x8982, 0x588F, 0x8983, 0x5890, - 0x8984, 0x5891, 0x8985, 0x5894, 0x8986, 0x5895, 0x8987, 0x5896, - 0x8988, 0x5897, 0x8989, 0x5898, 0x898A, 0x589B, 0x898B, 0x589C, - 0x898C, 0x589D, 0x898D, 0x58A0, 0x898E, 0x58A1, 0x898F, 0x58A2, - 0x8990, 0x58A3, 0x8991, 0x58A4, 0x8992, 0x58A5, 0x8993, 0x58A6, - 0x8994, 0x58A7, 0x8995, 0x58AA, 0x8996, 0x58AB, 0x8997, 0x58AC, - 0x8998, 0x58AD, 0x8999, 0x58AE, 0x899A, 0x58AF, 0x899B, 0x58B0, - 0x899C, 0x58B1, 0x899D, 0x58B2, 0x899E, 0x58B3, 0x899F, 0x58B4, - 0x89A0, 0x58B5, 0x89A1, 0x58B6, 0x89A2, 0x58B7, 0x89A3, 0x58B8, - 0x89A4, 0x58B9, 0x89A5, 0x58BA, 0x89A6, 0x58BB, 0x89A7, 0x58BD, - 0x89A8, 0x58BE, 0x89A9, 0x58BF, 0x89AA, 0x58C0, 0x89AB, 0x58C2, - 0x89AC, 0x58C3, 0x89AD, 0x58C4, 0x89AE, 0x58C6, 0x89AF, 0x58C7, - 0x89B0, 0x58C8, 0x89B1, 0x58C9, 0x89B2, 0x58CA, 0x89B3, 0x58CB, - 0x89B4, 0x58CC, 0x89B5, 0x58CD, 0x89B6, 0x58CE, 0x89B7, 0x58CF, - 0x89B8, 0x58D0, 0x89B9, 0x58D2, 0x89BA, 0x58D3, 0x89BB, 0x58D4, - 0x89BC, 0x58D6, 0x89BD, 0x58D7, 0x89BE, 0x58D8, 0x89BF, 0x58D9, - 0x89C0, 0x58DA, 0x89C1, 0x58DB, 0x89C2, 0x58DC, 0x89C3, 0x58DD, - 0x89C4, 0x58DE, 0x89C5, 0x58DF, 0x89C6, 0x58E0, 0x89C7, 0x58E1, - 0x89C8, 0x58E2, 0x89C9, 0x58E3, 0x89CA, 0x58E5, 0x89CB, 0x58E6, - 0x89CC, 0x58E7, 0x89CD, 0x58E8, 0x89CE, 0x58E9, 0x89CF, 0x58EA, - 0x89D0, 0x58ED, 0x89D1, 0x58EF, 0x89D2, 0x58F1, 0x89D3, 0x58F2, - 0x89D4, 0x58F4, 0x89D5, 0x58F5, 0x89D6, 0x58F7, 0x89D7, 0x58F8, - 0x89D8, 0x58FA, 0x89D9, 0x58FB, 0x89DA, 0x58FC, 0x89DB, 0x58FD, - 0x89DC, 0x58FE, 0x89DD, 0x58FF, 0x89DE, 0x5900, 0x89DF, 0x5901, - 0x89E0, 0x5903, 0x89E1, 0x5905, 0x89E2, 0x5906, 0x89E3, 0x5908, - 0x89E4, 0x5909, 0x89E5, 0x590A, 0x89E6, 0x590B, 0x89E7, 0x590C, - 0x89E8, 0x590E, 0x89E9, 0x5910, 0x89EA, 0x5911, 0x89EB, 0x5912, - 0x89EC, 0x5913, 0x89ED, 0x5917, 0x89EE, 0x5918, 0x89EF, 0x591B, - 0x89F0, 0x591D, 0x89F1, 0x591E, 0x89F2, 0x5920, 0x89F3, 0x5921, - 0x89F4, 0x5922, 0x89F5, 0x5923, 0x89F6, 0x5926, 0x89F7, 0x5928, - 0x89F8, 0x592C, 0x89F9, 0x5930, 0x89FA, 0x5932, 0x89FB, 0x5933, - 0x89FC, 0x5935, 0x89FD, 0x5936, 0x89FE, 0x593B, 0x8A40, 0x593D, - 0x8A41, 0x593E, 0x8A42, 0x593F, 0x8A43, 0x5940, 0x8A44, 0x5943, - 0x8A45, 0x5945, 0x8A46, 0x5946, 0x8A47, 0x594A, 0x8A48, 0x594C, - 0x8A49, 0x594D, 0x8A4A, 0x5950, 0x8A4B, 0x5952, 0x8A4C, 0x5953, - 0x8A4D, 0x5959, 0x8A4E, 0x595B, 0x8A4F, 0x595C, 0x8A50, 0x595D, - 0x8A51, 0x595E, 0x8A52, 0x595F, 0x8A53, 0x5961, 0x8A54, 0x5963, - 0x8A55, 0x5964, 0x8A56, 0x5966, 0x8A57, 0x5967, 0x8A58, 0x5968, - 0x8A59, 0x5969, 0x8A5A, 0x596A, 0x8A5B, 0x596B, 0x8A5C, 0x596C, - 0x8A5D, 0x596D, 0x8A5E, 0x596E, 0x8A5F, 0x596F, 0x8A60, 0x5970, - 0x8A61, 0x5971, 0x8A62, 0x5972, 0x8A63, 0x5975, 0x8A64, 0x5977, - 0x8A65, 0x597A, 0x8A66, 0x597B, 0x8A67, 0x597C, 0x8A68, 0x597E, - 0x8A69, 0x597F, 0x8A6A, 0x5980, 0x8A6B, 0x5985, 0x8A6C, 0x5989, - 0x8A6D, 0x598B, 0x8A6E, 0x598C, 0x8A6F, 0x598E, 0x8A70, 0x598F, - 0x8A71, 0x5990, 0x8A72, 0x5991, 0x8A73, 0x5994, 0x8A74, 0x5995, - 0x8A75, 0x5998, 0x8A76, 0x599A, 0x8A77, 0x599B, 0x8A78, 0x599C, - 0x8A79, 0x599D, 0x8A7A, 0x599F, 0x8A7B, 0x59A0, 0x8A7C, 0x59A1, - 0x8A7D, 0x59A2, 0x8A7E, 0x59A6, 0x8A80, 0x59A7, 0x8A81, 0x59AC, - 0x8A82, 0x59AD, 0x8A83, 0x59B0, 0x8A84, 0x59B1, 0x8A85, 0x59B3, - 0x8A86, 0x59B4, 0x8A87, 0x59B5, 0x8A88, 0x59B6, 0x8A89, 0x59B7, - 0x8A8A, 0x59B8, 0x8A8B, 0x59BA, 0x8A8C, 0x59BC, 0x8A8D, 0x59BD, - 0x8A8E, 0x59BF, 0x8A8F, 0x59C0, 0x8A90, 0x59C1, 0x8A91, 0x59C2, - 0x8A92, 0x59C3, 0x8A93, 0x59C4, 0x8A94, 0x59C5, 0x8A95, 0x59C7, - 0x8A96, 0x59C8, 0x8A97, 0x59C9, 0x8A98, 0x59CC, 0x8A99, 0x59CD, - 0x8A9A, 0x59CE, 0x8A9B, 0x59CF, 0x8A9C, 0x59D5, 0x8A9D, 0x59D6, - 0x8A9E, 0x59D9, 0x8A9F, 0x59DB, 0x8AA0, 0x59DE, 0x8AA1, 0x59DF, - 0x8AA2, 0x59E0, 0x8AA3, 0x59E1, 0x8AA4, 0x59E2, 0x8AA5, 0x59E4, - 0x8AA6, 0x59E6, 0x8AA7, 0x59E7, 0x8AA8, 0x59E9, 0x8AA9, 0x59EA, - 0x8AAA, 0x59EB, 0x8AAB, 0x59ED, 0x8AAC, 0x59EE, 0x8AAD, 0x59EF, - 0x8AAE, 0x59F0, 0x8AAF, 0x59F1, 0x8AB0, 0x59F2, 0x8AB1, 0x59F3, - 0x8AB2, 0x59F4, 0x8AB3, 0x59F5, 0x8AB4, 0x59F6, 0x8AB5, 0x59F7, - 0x8AB6, 0x59F8, 0x8AB7, 0x59FA, 0x8AB8, 0x59FC, 0x8AB9, 0x59FD, - 0x8ABA, 0x59FE, 0x8ABB, 0x5A00, 0x8ABC, 0x5A02, 0x8ABD, 0x5A0A, - 0x8ABE, 0x5A0B, 0x8ABF, 0x5A0D, 0x8AC0, 0x5A0E, 0x8AC1, 0x5A0F, - 0x8AC2, 0x5A10, 0x8AC3, 0x5A12, 0x8AC4, 0x5A14, 0x8AC5, 0x5A15, - 0x8AC6, 0x5A16, 0x8AC7, 0x5A17, 0x8AC8, 0x5A19, 0x8AC9, 0x5A1A, - 0x8ACA, 0x5A1B, 0x8ACB, 0x5A1D, 0x8ACC, 0x5A1E, 0x8ACD, 0x5A21, - 0x8ACE, 0x5A22, 0x8ACF, 0x5A24, 0x8AD0, 0x5A26, 0x8AD1, 0x5A27, - 0x8AD2, 0x5A28, 0x8AD3, 0x5A2A, 0x8AD4, 0x5A2B, 0x8AD5, 0x5A2C, - 0x8AD6, 0x5A2D, 0x8AD7, 0x5A2E, 0x8AD8, 0x5A2F, 0x8AD9, 0x5A30, - 0x8ADA, 0x5A33, 0x8ADB, 0x5A35, 0x8ADC, 0x5A37, 0x8ADD, 0x5A38, - 0x8ADE, 0x5A39, 0x8ADF, 0x5A3A, 0x8AE0, 0x5A3B, 0x8AE1, 0x5A3D, - 0x8AE2, 0x5A3E, 0x8AE3, 0x5A3F, 0x8AE4, 0x5A41, 0x8AE5, 0x5A42, - 0x8AE6, 0x5A43, 0x8AE7, 0x5A44, 0x8AE8, 0x5A45, 0x8AE9, 0x5A47, - 0x8AEA, 0x5A48, 0x8AEB, 0x5A4B, 0x8AEC, 0x5A4C, 0x8AED, 0x5A4D, - 0x8AEE, 0x5A4E, 0x8AEF, 0x5A4F, 0x8AF0, 0x5A50, 0x8AF1, 0x5A51, - 0x8AF2, 0x5A52, 0x8AF3, 0x5A53, 0x8AF4, 0x5A54, 0x8AF5, 0x5A56, - 0x8AF6, 0x5A57, 0x8AF7, 0x5A58, 0x8AF8, 0x5A59, 0x8AF9, 0x5A5B, - 0x8AFA, 0x5A5C, 0x8AFB, 0x5A5D, 0x8AFC, 0x5A5E, 0x8AFD, 0x5A5F, - 0x8AFE, 0x5A60, 0x8B40, 0x5A61, 0x8B41, 0x5A63, 0x8B42, 0x5A64, - 0x8B43, 0x5A65, 0x8B44, 0x5A66, 0x8B45, 0x5A68, 0x8B46, 0x5A69, - 0x8B47, 0x5A6B, 0x8B48, 0x5A6C, 0x8B49, 0x5A6D, 0x8B4A, 0x5A6E, - 0x8B4B, 0x5A6F, 0x8B4C, 0x5A70, 0x8B4D, 0x5A71, 0x8B4E, 0x5A72, - 0x8B4F, 0x5A73, 0x8B50, 0x5A78, 0x8B51, 0x5A79, 0x8B52, 0x5A7B, - 0x8B53, 0x5A7C, 0x8B54, 0x5A7D, 0x8B55, 0x5A7E, 0x8B56, 0x5A80, - 0x8B57, 0x5A81, 0x8B58, 0x5A82, 0x8B59, 0x5A83, 0x8B5A, 0x5A84, - 0x8B5B, 0x5A85, 0x8B5C, 0x5A86, 0x8B5D, 0x5A87, 0x8B5E, 0x5A88, - 0x8B5F, 0x5A89, 0x8B60, 0x5A8A, 0x8B61, 0x5A8B, 0x8B62, 0x5A8C, - 0x8B63, 0x5A8D, 0x8B64, 0x5A8E, 0x8B65, 0x5A8F, 0x8B66, 0x5A90, - 0x8B67, 0x5A91, 0x8B68, 0x5A93, 0x8B69, 0x5A94, 0x8B6A, 0x5A95, - 0x8B6B, 0x5A96, 0x8B6C, 0x5A97, 0x8B6D, 0x5A98, 0x8B6E, 0x5A99, - 0x8B6F, 0x5A9C, 0x8B70, 0x5A9D, 0x8B71, 0x5A9E, 0x8B72, 0x5A9F, - 0x8B73, 0x5AA0, 0x8B74, 0x5AA1, 0x8B75, 0x5AA2, 0x8B76, 0x5AA3, - 0x8B77, 0x5AA4, 0x8B78, 0x5AA5, 0x8B79, 0x5AA6, 0x8B7A, 0x5AA7, - 0x8B7B, 0x5AA8, 0x8B7C, 0x5AA9, 0x8B7D, 0x5AAB, 0x8B7E, 0x5AAC, - 0x8B80, 0x5AAD, 0x8B81, 0x5AAE, 0x8B82, 0x5AAF, 0x8B83, 0x5AB0, - 0x8B84, 0x5AB1, 0x8B85, 0x5AB4, 0x8B86, 0x5AB6, 0x8B87, 0x5AB7, - 0x8B88, 0x5AB9, 0x8B89, 0x5ABA, 0x8B8A, 0x5ABB, 0x8B8B, 0x5ABC, - 0x8B8C, 0x5ABD, 0x8B8D, 0x5ABF, 0x8B8E, 0x5AC0, 0x8B8F, 0x5AC3, - 0x8B90, 0x5AC4, 0x8B91, 0x5AC5, 0x8B92, 0x5AC6, 0x8B93, 0x5AC7, - 0x8B94, 0x5AC8, 0x8B95, 0x5ACA, 0x8B96, 0x5ACB, 0x8B97, 0x5ACD, - 0x8B98, 0x5ACE, 0x8B99, 0x5ACF, 0x8B9A, 0x5AD0, 0x8B9B, 0x5AD1, - 0x8B9C, 0x5AD3, 0x8B9D, 0x5AD5, 0x8B9E, 0x5AD7, 0x8B9F, 0x5AD9, - 0x8BA0, 0x5ADA, 0x8BA1, 0x5ADB, 0x8BA2, 0x5ADD, 0x8BA3, 0x5ADE, - 0x8BA4, 0x5ADF, 0x8BA5, 0x5AE2, 0x8BA6, 0x5AE4, 0x8BA7, 0x5AE5, - 0x8BA8, 0x5AE7, 0x8BA9, 0x5AE8, 0x8BAA, 0x5AEA, 0x8BAB, 0x5AEC, - 0x8BAC, 0x5AED, 0x8BAD, 0x5AEE, 0x8BAE, 0x5AEF, 0x8BAF, 0x5AF0, - 0x8BB0, 0x5AF2, 0x8BB1, 0x5AF3, 0x8BB2, 0x5AF4, 0x8BB3, 0x5AF5, - 0x8BB4, 0x5AF6, 0x8BB5, 0x5AF7, 0x8BB6, 0x5AF8, 0x8BB7, 0x5AF9, - 0x8BB8, 0x5AFA, 0x8BB9, 0x5AFB, 0x8BBA, 0x5AFC, 0x8BBB, 0x5AFD, - 0x8BBC, 0x5AFE, 0x8BBD, 0x5AFF, 0x8BBE, 0x5B00, 0x8BBF, 0x5B01, - 0x8BC0, 0x5B02, 0x8BC1, 0x5B03, 0x8BC2, 0x5B04, 0x8BC3, 0x5B05, - 0x8BC4, 0x5B06, 0x8BC5, 0x5B07, 0x8BC6, 0x5B08, 0x8BC7, 0x5B0A, - 0x8BC8, 0x5B0B, 0x8BC9, 0x5B0C, 0x8BCA, 0x5B0D, 0x8BCB, 0x5B0E, - 0x8BCC, 0x5B0F, 0x8BCD, 0x5B10, 0x8BCE, 0x5B11, 0x8BCF, 0x5B12, - 0x8BD0, 0x5B13, 0x8BD1, 0x5B14, 0x8BD2, 0x5B15, 0x8BD3, 0x5B18, - 0x8BD4, 0x5B19, 0x8BD5, 0x5B1A, 0x8BD6, 0x5B1B, 0x8BD7, 0x5B1C, - 0x8BD8, 0x5B1D, 0x8BD9, 0x5B1E, 0x8BDA, 0x5B1F, 0x8BDB, 0x5B20, - 0x8BDC, 0x5B21, 0x8BDD, 0x5B22, 0x8BDE, 0x5B23, 0x8BDF, 0x5B24, - 0x8BE0, 0x5B25, 0x8BE1, 0x5B26, 0x8BE2, 0x5B27, 0x8BE3, 0x5B28, - 0x8BE4, 0x5B29, 0x8BE5, 0x5B2A, 0x8BE6, 0x5B2B, 0x8BE7, 0x5B2C, - 0x8BE8, 0x5B2D, 0x8BE9, 0x5B2E, 0x8BEA, 0x5B2F, 0x8BEB, 0x5B30, - 0x8BEC, 0x5B31, 0x8BED, 0x5B33, 0x8BEE, 0x5B35, 0x8BEF, 0x5B36, - 0x8BF0, 0x5B38, 0x8BF1, 0x5B39, 0x8BF2, 0x5B3A, 0x8BF3, 0x5B3B, - 0x8BF4, 0x5B3C, 0x8BF5, 0x5B3D, 0x8BF6, 0x5B3E, 0x8BF7, 0x5B3F, - 0x8BF8, 0x5B41, 0x8BF9, 0x5B42, 0x8BFA, 0x5B43, 0x8BFB, 0x5B44, - 0x8BFC, 0x5B45, 0x8BFD, 0x5B46, 0x8BFE, 0x5B47, 0x8C40, 0x5B48, - 0x8C41, 0x5B49, 0x8C42, 0x5B4A, 0x8C43, 0x5B4B, 0x8C44, 0x5B4C, - 0x8C45, 0x5B4D, 0x8C46, 0x5B4E, 0x8C47, 0x5B4F, 0x8C48, 0x5B52, - 0x8C49, 0x5B56, 0x8C4A, 0x5B5E, 0x8C4B, 0x5B60, 0x8C4C, 0x5B61, - 0x8C4D, 0x5B67, 0x8C4E, 0x5B68, 0x8C4F, 0x5B6B, 0x8C50, 0x5B6D, - 0x8C51, 0x5B6E, 0x8C52, 0x5B6F, 0x8C53, 0x5B72, 0x8C54, 0x5B74, - 0x8C55, 0x5B76, 0x8C56, 0x5B77, 0x8C57, 0x5B78, 0x8C58, 0x5B79, - 0x8C59, 0x5B7B, 0x8C5A, 0x5B7C, 0x8C5B, 0x5B7E, 0x8C5C, 0x5B7F, - 0x8C5D, 0x5B82, 0x8C5E, 0x5B86, 0x8C5F, 0x5B8A, 0x8C60, 0x5B8D, - 0x8C61, 0x5B8E, 0x8C62, 0x5B90, 0x8C63, 0x5B91, 0x8C64, 0x5B92, - 0x8C65, 0x5B94, 0x8C66, 0x5B96, 0x8C67, 0x5B9F, 0x8C68, 0x5BA7, - 0x8C69, 0x5BA8, 0x8C6A, 0x5BA9, 0x8C6B, 0x5BAC, 0x8C6C, 0x5BAD, - 0x8C6D, 0x5BAE, 0x8C6E, 0x5BAF, 0x8C6F, 0x5BB1, 0x8C70, 0x5BB2, - 0x8C71, 0x5BB7, 0x8C72, 0x5BBA, 0x8C73, 0x5BBB, 0x8C74, 0x5BBC, - 0x8C75, 0x5BC0, 0x8C76, 0x5BC1, 0x8C77, 0x5BC3, 0x8C78, 0x5BC8, - 0x8C79, 0x5BC9, 0x8C7A, 0x5BCA, 0x8C7B, 0x5BCB, 0x8C7C, 0x5BCD, - 0x8C7D, 0x5BCE, 0x8C7E, 0x5BCF, 0x8C80, 0x5BD1, 0x8C81, 0x5BD4, - 0x8C82, 0x5BD5, 0x8C83, 0x5BD6, 0x8C84, 0x5BD7, 0x8C85, 0x5BD8, - 0x8C86, 0x5BD9, 0x8C87, 0x5BDA, 0x8C88, 0x5BDB, 0x8C89, 0x5BDC, - 0x8C8A, 0x5BE0, 0x8C8B, 0x5BE2, 0x8C8C, 0x5BE3, 0x8C8D, 0x5BE6, - 0x8C8E, 0x5BE7, 0x8C8F, 0x5BE9, 0x8C90, 0x5BEA, 0x8C91, 0x5BEB, - 0x8C92, 0x5BEC, 0x8C93, 0x5BED, 0x8C94, 0x5BEF, 0x8C95, 0x5BF1, - 0x8C96, 0x5BF2, 0x8C97, 0x5BF3, 0x8C98, 0x5BF4, 0x8C99, 0x5BF5, - 0x8C9A, 0x5BF6, 0x8C9B, 0x5BF7, 0x8C9C, 0x5BFD, 0x8C9D, 0x5BFE, - 0x8C9E, 0x5C00, 0x8C9F, 0x5C02, 0x8CA0, 0x5C03, 0x8CA1, 0x5C05, - 0x8CA2, 0x5C07, 0x8CA3, 0x5C08, 0x8CA4, 0x5C0B, 0x8CA5, 0x5C0C, - 0x8CA6, 0x5C0D, 0x8CA7, 0x5C0E, 0x8CA8, 0x5C10, 0x8CA9, 0x5C12, - 0x8CAA, 0x5C13, 0x8CAB, 0x5C17, 0x8CAC, 0x5C19, 0x8CAD, 0x5C1B, - 0x8CAE, 0x5C1E, 0x8CAF, 0x5C1F, 0x8CB0, 0x5C20, 0x8CB1, 0x5C21, - 0x8CB2, 0x5C23, 0x8CB3, 0x5C26, 0x8CB4, 0x5C28, 0x8CB5, 0x5C29, - 0x8CB6, 0x5C2A, 0x8CB7, 0x5C2B, 0x8CB8, 0x5C2D, 0x8CB9, 0x5C2E, - 0x8CBA, 0x5C2F, 0x8CBB, 0x5C30, 0x8CBC, 0x5C32, 0x8CBD, 0x5C33, - 0x8CBE, 0x5C35, 0x8CBF, 0x5C36, 0x8CC0, 0x5C37, 0x8CC1, 0x5C43, - 0x8CC2, 0x5C44, 0x8CC3, 0x5C46, 0x8CC4, 0x5C47, 0x8CC5, 0x5C4C, - 0x8CC6, 0x5C4D, 0x8CC7, 0x5C52, 0x8CC8, 0x5C53, 0x8CC9, 0x5C54, - 0x8CCA, 0x5C56, 0x8CCB, 0x5C57, 0x8CCC, 0x5C58, 0x8CCD, 0x5C5A, - 0x8CCE, 0x5C5B, 0x8CCF, 0x5C5C, 0x8CD0, 0x5C5D, 0x8CD1, 0x5C5F, - 0x8CD2, 0x5C62, 0x8CD3, 0x5C64, 0x8CD4, 0x5C67, 0x8CD5, 0x5C68, - 0x8CD6, 0x5C69, 0x8CD7, 0x5C6A, 0x8CD8, 0x5C6B, 0x8CD9, 0x5C6C, - 0x8CDA, 0x5C6D, 0x8CDB, 0x5C70, 0x8CDC, 0x5C72, 0x8CDD, 0x5C73, - 0x8CDE, 0x5C74, 0x8CDF, 0x5C75, 0x8CE0, 0x5C76, 0x8CE1, 0x5C77, - 0x8CE2, 0x5C78, 0x8CE3, 0x5C7B, 0x8CE4, 0x5C7C, 0x8CE5, 0x5C7D, - 0x8CE6, 0x5C7E, 0x8CE7, 0x5C80, 0x8CE8, 0x5C83, 0x8CE9, 0x5C84, - 0x8CEA, 0x5C85, 0x8CEB, 0x5C86, 0x8CEC, 0x5C87, 0x8CED, 0x5C89, - 0x8CEE, 0x5C8A, 0x8CEF, 0x5C8B, 0x8CF0, 0x5C8E, 0x8CF1, 0x5C8F, - 0x8CF2, 0x5C92, 0x8CF3, 0x5C93, 0x8CF4, 0x5C95, 0x8CF5, 0x5C9D, - 0x8CF6, 0x5C9E, 0x8CF7, 0x5C9F, 0x8CF8, 0x5CA0, 0x8CF9, 0x5CA1, - 0x8CFA, 0x5CA4, 0x8CFB, 0x5CA5, 0x8CFC, 0x5CA6, 0x8CFD, 0x5CA7, - 0x8CFE, 0x5CA8, 0x8D40, 0x5CAA, 0x8D41, 0x5CAE, 0x8D42, 0x5CAF, - 0x8D43, 0x5CB0, 0x8D44, 0x5CB2, 0x8D45, 0x5CB4, 0x8D46, 0x5CB6, - 0x8D47, 0x5CB9, 0x8D48, 0x5CBA, 0x8D49, 0x5CBB, 0x8D4A, 0x5CBC, - 0x8D4B, 0x5CBE, 0x8D4C, 0x5CC0, 0x8D4D, 0x5CC2, 0x8D4E, 0x5CC3, - 0x8D4F, 0x5CC5, 0x8D50, 0x5CC6, 0x8D51, 0x5CC7, 0x8D52, 0x5CC8, - 0x8D53, 0x5CC9, 0x8D54, 0x5CCA, 0x8D55, 0x5CCC, 0x8D56, 0x5CCD, - 0x8D57, 0x5CCE, 0x8D58, 0x5CCF, 0x8D59, 0x5CD0, 0x8D5A, 0x5CD1, - 0x8D5B, 0x5CD3, 0x8D5C, 0x5CD4, 0x8D5D, 0x5CD5, 0x8D5E, 0x5CD6, - 0x8D5F, 0x5CD7, 0x8D60, 0x5CD8, 0x8D61, 0x5CDA, 0x8D62, 0x5CDB, - 0x8D63, 0x5CDC, 0x8D64, 0x5CDD, 0x8D65, 0x5CDE, 0x8D66, 0x5CDF, - 0x8D67, 0x5CE0, 0x8D68, 0x5CE2, 0x8D69, 0x5CE3, 0x8D6A, 0x5CE7, - 0x8D6B, 0x5CE9, 0x8D6C, 0x5CEB, 0x8D6D, 0x5CEC, 0x8D6E, 0x5CEE, - 0x8D6F, 0x5CEF, 0x8D70, 0x5CF1, 0x8D71, 0x5CF2, 0x8D72, 0x5CF3, - 0x8D73, 0x5CF4, 0x8D74, 0x5CF5, 0x8D75, 0x5CF6, 0x8D76, 0x5CF7, - 0x8D77, 0x5CF8, 0x8D78, 0x5CF9, 0x8D79, 0x5CFA, 0x8D7A, 0x5CFC, - 0x8D7B, 0x5CFD, 0x8D7C, 0x5CFE, 0x8D7D, 0x5CFF, 0x8D7E, 0x5D00, - 0x8D80, 0x5D01, 0x8D81, 0x5D04, 0x8D82, 0x5D05, 0x8D83, 0x5D08, - 0x8D84, 0x5D09, 0x8D85, 0x5D0A, 0x8D86, 0x5D0B, 0x8D87, 0x5D0C, - 0x8D88, 0x5D0D, 0x8D89, 0x5D0F, 0x8D8A, 0x5D10, 0x8D8B, 0x5D11, - 0x8D8C, 0x5D12, 0x8D8D, 0x5D13, 0x8D8E, 0x5D15, 0x8D8F, 0x5D17, - 0x8D90, 0x5D18, 0x8D91, 0x5D19, 0x8D92, 0x5D1A, 0x8D93, 0x5D1C, - 0x8D94, 0x5D1D, 0x8D95, 0x5D1F, 0x8D96, 0x5D20, 0x8D97, 0x5D21, - 0x8D98, 0x5D22, 0x8D99, 0x5D23, 0x8D9A, 0x5D25, 0x8D9B, 0x5D28, - 0x8D9C, 0x5D2A, 0x8D9D, 0x5D2B, 0x8D9E, 0x5D2C, 0x8D9F, 0x5D2F, - 0x8DA0, 0x5D30, 0x8DA1, 0x5D31, 0x8DA2, 0x5D32, 0x8DA3, 0x5D33, - 0x8DA4, 0x5D35, 0x8DA5, 0x5D36, 0x8DA6, 0x5D37, 0x8DA7, 0x5D38, - 0x8DA8, 0x5D39, 0x8DA9, 0x5D3A, 0x8DAA, 0x5D3B, 0x8DAB, 0x5D3C, - 0x8DAC, 0x5D3F, 0x8DAD, 0x5D40, 0x8DAE, 0x5D41, 0x8DAF, 0x5D42, - 0x8DB0, 0x5D43, 0x8DB1, 0x5D44, 0x8DB2, 0x5D45, 0x8DB3, 0x5D46, - 0x8DB4, 0x5D48, 0x8DB5, 0x5D49, 0x8DB6, 0x5D4D, 0x8DB7, 0x5D4E, - 0x8DB8, 0x5D4F, 0x8DB9, 0x5D50, 0x8DBA, 0x5D51, 0x8DBB, 0x5D52, - 0x8DBC, 0x5D53, 0x8DBD, 0x5D54, 0x8DBE, 0x5D55, 0x8DBF, 0x5D56, - 0x8DC0, 0x5D57, 0x8DC1, 0x5D59, 0x8DC2, 0x5D5A, 0x8DC3, 0x5D5C, - 0x8DC4, 0x5D5E, 0x8DC5, 0x5D5F, 0x8DC6, 0x5D60, 0x8DC7, 0x5D61, - 0x8DC8, 0x5D62, 0x8DC9, 0x5D63, 0x8DCA, 0x5D64, 0x8DCB, 0x5D65, - 0x8DCC, 0x5D66, 0x8DCD, 0x5D67, 0x8DCE, 0x5D68, 0x8DCF, 0x5D6A, - 0x8DD0, 0x5D6D, 0x8DD1, 0x5D6E, 0x8DD2, 0x5D70, 0x8DD3, 0x5D71, - 0x8DD4, 0x5D72, 0x8DD5, 0x5D73, 0x8DD6, 0x5D75, 0x8DD7, 0x5D76, - 0x8DD8, 0x5D77, 0x8DD9, 0x5D78, 0x8DDA, 0x5D79, 0x8DDB, 0x5D7A, - 0x8DDC, 0x5D7B, 0x8DDD, 0x5D7C, 0x8DDE, 0x5D7D, 0x8DDF, 0x5D7E, - 0x8DE0, 0x5D7F, 0x8DE1, 0x5D80, 0x8DE2, 0x5D81, 0x8DE3, 0x5D83, - 0x8DE4, 0x5D84, 0x8DE5, 0x5D85, 0x8DE6, 0x5D86, 0x8DE7, 0x5D87, - 0x8DE8, 0x5D88, 0x8DE9, 0x5D89, 0x8DEA, 0x5D8A, 0x8DEB, 0x5D8B, - 0x8DEC, 0x5D8C, 0x8DED, 0x5D8D, 0x8DEE, 0x5D8E, 0x8DEF, 0x5D8F, - 0x8DF0, 0x5D90, 0x8DF1, 0x5D91, 0x8DF2, 0x5D92, 0x8DF3, 0x5D93, - 0x8DF4, 0x5D94, 0x8DF5, 0x5D95, 0x8DF6, 0x5D96, 0x8DF7, 0x5D97, - 0x8DF8, 0x5D98, 0x8DF9, 0x5D9A, 0x8DFA, 0x5D9B, 0x8DFB, 0x5D9C, - 0x8DFC, 0x5D9E, 0x8DFD, 0x5D9F, 0x8DFE, 0x5DA0, 0x8E40, 0x5DA1, - 0x8E41, 0x5DA2, 0x8E42, 0x5DA3, 0x8E43, 0x5DA4, 0x8E44, 0x5DA5, - 0x8E45, 0x5DA6, 0x8E46, 0x5DA7, 0x8E47, 0x5DA8, 0x8E48, 0x5DA9, - 0x8E49, 0x5DAA, 0x8E4A, 0x5DAB, 0x8E4B, 0x5DAC, 0x8E4C, 0x5DAD, - 0x8E4D, 0x5DAE, 0x8E4E, 0x5DAF, 0x8E4F, 0x5DB0, 0x8E50, 0x5DB1, - 0x8E51, 0x5DB2, 0x8E52, 0x5DB3, 0x8E53, 0x5DB4, 0x8E54, 0x5DB5, - 0x8E55, 0x5DB6, 0x8E56, 0x5DB8, 0x8E57, 0x5DB9, 0x8E58, 0x5DBA, - 0x8E59, 0x5DBB, 0x8E5A, 0x5DBC, 0x8E5B, 0x5DBD, 0x8E5C, 0x5DBE, - 0x8E5D, 0x5DBF, 0x8E5E, 0x5DC0, 0x8E5F, 0x5DC1, 0x8E60, 0x5DC2, - 0x8E61, 0x5DC3, 0x8E62, 0x5DC4, 0x8E63, 0x5DC6, 0x8E64, 0x5DC7, - 0x8E65, 0x5DC8, 0x8E66, 0x5DC9, 0x8E67, 0x5DCA, 0x8E68, 0x5DCB, - 0x8E69, 0x5DCC, 0x8E6A, 0x5DCE, 0x8E6B, 0x5DCF, 0x8E6C, 0x5DD0, - 0x8E6D, 0x5DD1, 0x8E6E, 0x5DD2, 0x8E6F, 0x5DD3, 0x8E70, 0x5DD4, - 0x8E71, 0x5DD5, 0x8E72, 0x5DD6, 0x8E73, 0x5DD7, 0x8E74, 0x5DD8, - 0x8E75, 0x5DD9, 0x8E76, 0x5DDA, 0x8E77, 0x5DDC, 0x8E78, 0x5DDF, - 0x8E79, 0x5DE0, 0x8E7A, 0x5DE3, 0x8E7B, 0x5DE4, 0x8E7C, 0x5DEA, - 0x8E7D, 0x5DEC, 0x8E7E, 0x5DED, 0x8E80, 0x5DF0, 0x8E81, 0x5DF5, - 0x8E82, 0x5DF6, 0x8E83, 0x5DF8, 0x8E84, 0x5DF9, 0x8E85, 0x5DFA, - 0x8E86, 0x5DFB, 0x8E87, 0x5DFC, 0x8E88, 0x5DFF, 0x8E89, 0x5E00, - 0x8E8A, 0x5E04, 0x8E8B, 0x5E07, 0x8E8C, 0x5E09, 0x8E8D, 0x5E0A, - 0x8E8E, 0x5E0B, 0x8E8F, 0x5E0D, 0x8E90, 0x5E0E, 0x8E91, 0x5E12, - 0x8E92, 0x5E13, 0x8E93, 0x5E17, 0x8E94, 0x5E1E, 0x8E95, 0x5E1F, - 0x8E96, 0x5E20, 0x8E97, 0x5E21, 0x8E98, 0x5E22, 0x8E99, 0x5E23, - 0x8E9A, 0x5E24, 0x8E9B, 0x5E25, 0x8E9C, 0x5E28, 0x8E9D, 0x5E29, - 0x8E9E, 0x5E2A, 0x8E9F, 0x5E2B, 0x8EA0, 0x5E2C, 0x8EA1, 0x5E2F, - 0x8EA2, 0x5E30, 0x8EA3, 0x5E32, 0x8EA4, 0x5E33, 0x8EA5, 0x5E34, - 0x8EA6, 0x5E35, 0x8EA7, 0x5E36, 0x8EA8, 0x5E39, 0x8EA9, 0x5E3A, - 0x8EAA, 0x5E3E, 0x8EAB, 0x5E3F, 0x8EAC, 0x5E40, 0x8EAD, 0x5E41, - 0x8EAE, 0x5E43, 0x8EAF, 0x5E46, 0x8EB0, 0x5E47, 0x8EB1, 0x5E48, - 0x8EB2, 0x5E49, 0x8EB3, 0x5E4A, 0x8EB4, 0x5E4B, 0x8EB5, 0x5E4D, - 0x8EB6, 0x5E4E, 0x8EB7, 0x5E4F, 0x8EB8, 0x5E50, 0x8EB9, 0x5E51, - 0x8EBA, 0x5E52, 0x8EBB, 0x5E53, 0x8EBC, 0x5E56, 0x8EBD, 0x5E57, - 0x8EBE, 0x5E58, 0x8EBF, 0x5E59, 0x8EC0, 0x5E5A, 0x8EC1, 0x5E5C, - 0x8EC2, 0x5E5D, 0x8EC3, 0x5E5F, 0x8EC4, 0x5E60, 0x8EC5, 0x5E63, - 0x8EC6, 0x5E64, 0x8EC7, 0x5E65, 0x8EC8, 0x5E66, 0x8EC9, 0x5E67, - 0x8ECA, 0x5E68, 0x8ECB, 0x5E69, 0x8ECC, 0x5E6A, 0x8ECD, 0x5E6B, - 0x8ECE, 0x5E6C, 0x8ECF, 0x5E6D, 0x8ED0, 0x5E6E, 0x8ED1, 0x5E6F, - 0x8ED2, 0x5E70, 0x8ED3, 0x5E71, 0x8ED4, 0x5E75, 0x8ED5, 0x5E77, - 0x8ED6, 0x5E79, 0x8ED7, 0x5E7E, 0x8ED8, 0x5E81, 0x8ED9, 0x5E82, - 0x8EDA, 0x5E83, 0x8EDB, 0x5E85, 0x8EDC, 0x5E88, 0x8EDD, 0x5E89, - 0x8EDE, 0x5E8C, 0x8EDF, 0x5E8D, 0x8EE0, 0x5E8E, 0x8EE1, 0x5E92, - 0x8EE2, 0x5E98, 0x8EE3, 0x5E9B, 0x8EE4, 0x5E9D, 0x8EE5, 0x5EA1, - 0x8EE6, 0x5EA2, 0x8EE7, 0x5EA3, 0x8EE8, 0x5EA4, 0x8EE9, 0x5EA8, - 0x8EEA, 0x5EA9, 0x8EEB, 0x5EAA, 0x8EEC, 0x5EAB, 0x8EED, 0x5EAC, - 0x8EEE, 0x5EAE, 0x8EEF, 0x5EAF, 0x8EF0, 0x5EB0, 0x8EF1, 0x5EB1, - 0x8EF2, 0x5EB2, 0x8EF3, 0x5EB4, 0x8EF4, 0x5EBA, 0x8EF5, 0x5EBB, - 0x8EF6, 0x5EBC, 0x8EF7, 0x5EBD, 0x8EF8, 0x5EBF, 0x8EF9, 0x5EC0, - 0x8EFA, 0x5EC1, 0x8EFB, 0x5EC2, 0x8EFC, 0x5EC3, 0x8EFD, 0x5EC4, - 0x8EFE, 0x5EC5, 0x8F40, 0x5EC6, 0x8F41, 0x5EC7, 0x8F42, 0x5EC8, - 0x8F43, 0x5ECB, 0x8F44, 0x5ECC, 0x8F45, 0x5ECD, 0x8F46, 0x5ECE, - 0x8F47, 0x5ECF, 0x8F48, 0x5ED0, 0x8F49, 0x5ED4, 0x8F4A, 0x5ED5, - 0x8F4B, 0x5ED7, 0x8F4C, 0x5ED8, 0x8F4D, 0x5ED9, 0x8F4E, 0x5EDA, - 0x8F4F, 0x5EDC, 0x8F50, 0x5EDD, 0x8F51, 0x5EDE, 0x8F52, 0x5EDF, - 0x8F53, 0x5EE0, 0x8F54, 0x5EE1, 0x8F55, 0x5EE2, 0x8F56, 0x5EE3, - 0x8F57, 0x5EE4, 0x8F58, 0x5EE5, 0x8F59, 0x5EE6, 0x8F5A, 0x5EE7, - 0x8F5B, 0x5EE9, 0x8F5C, 0x5EEB, 0x8F5D, 0x5EEC, 0x8F5E, 0x5EED, - 0x8F5F, 0x5EEE, 0x8F60, 0x5EEF, 0x8F61, 0x5EF0, 0x8F62, 0x5EF1, - 0x8F63, 0x5EF2, 0x8F64, 0x5EF3, 0x8F65, 0x5EF5, 0x8F66, 0x5EF8, - 0x8F67, 0x5EF9, 0x8F68, 0x5EFB, 0x8F69, 0x5EFC, 0x8F6A, 0x5EFD, - 0x8F6B, 0x5F05, 0x8F6C, 0x5F06, 0x8F6D, 0x5F07, 0x8F6E, 0x5F09, - 0x8F6F, 0x5F0C, 0x8F70, 0x5F0D, 0x8F71, 0x5F0E, 0x8F72, 0x5F10, - 0x8F73, 0x5F12, 0x8F74, 0x5F14, 0x8F75, 0x5F16, 0x8F76, 0x5F19, - 0x8F77, 0x5F1A, 0x8F78, 0x5F1C, 0x8F79, 0x5F1D, 0x8F7A, 0x5F1E, - 0x8F7B, 0x5F21, 0x8F7C, 0x5F22, 0x8F7D, 0x5F23, 0x8F7E, 0x5F24, - 0x8F80, 0x5F28, 0x8F81, 0x5F2B, 0x8F82, 0x5F2C, 0x8F83, 0x5F2E, - 0x8F84, 0x5F30, 0x8F85, 0x5F32, 0x8F86, 0x5F33, 0x8F87, 0x5F34, - 0x8F88, 0x5F35, 0x8F89, 0x5F36, 0x8F8A, 0x5F37, 0x8F8B, 0x5F38, - 0x8F8C, 0x5F3B, 0x8F8D, 0x5F3D, 0x8F8E, 0x5F3E, 0x8F8F, 0x5F3F, - 0x8F90, 0x5F41, 0x8F91, 0x5F42, 0x8F92, 0x5F43, 0x8F93, 0x5F44, - 0x8F94, 0x5F45, 0x8F95, 0x5F46, 0x8F96, 0x5F47, 0x8F97, 0x5F48, - 0x8F98, 0x5F49, 0x8F99, 0x5F4A, 0x8F9A, 0x5F4B, 0x8F9B, 0x5F4C, - 0x8F9C, 0x5F4D, 0x8F9D, 0x5F4E, 0x8F9E, 0x5F4F, 0x8F9F, 0x5F51, - 0x8FA0, 0x5F54, 0x8FA1, 0x5F59, 0x8FA2, 0x5F5A, 0x8FA3, 0x5F5B, - 0x8FA4, 0x5F5C, 0x8FA5, 0x5F5E, 0x8FA6, 0x5F5F, 0x8FA7, 0x5F60, - 0x8FA8, 0x5F63, 0x8FA9, 0x5F65, 0x8FAA, 0x5F67, 0x8FAB, 0x5F68, - 0x8FAC, 0x5F6B, 0x8FAD, 0x5F6E, 0x8FAE, 0x5F6F, 0x8FAF, 0x5F72, - 0x8FB0, 0x5F74, 0x8FB1, 0x5F75, 0x8FB2, 0x5F76, 0x8FB3, 0x5F78, - 0x8FB4, 0x5F7A, 0x8FB5, 0x5F7D, 0x8FB6, 0x5F7E, 0x8FB7, 0x5F7F, - 0x8FB8, 0x5F83, 0x8FB9, 0x5F86, 0x8FBA, 0x5F8D, 0x8FBB, 0x5F8E, - 0x8FBC, 0x5F8F, 0x8FBD, 0x5F91, 0x8FBE, 0x5F93, 0x8FBF, 0x5F94, - 0x8FC0, 0x5F96, 0x8FC1, 0x5F9A, 0x8FC2, 0x5F9B, 0x8FC3, 0x5F9D, - 0x8FC4, 0x5F9E, 0x8FC5, 0x5F9F, 0x8FC6, 0x5FA0, 0x8FC7, 0x5FA2, - 0x8FC8, 0x5FA3, 0x8FC9, 0x5FA4, 0x8FCA, 0x5FA5, 0x8FCB, 0x5FA6, - 0x8FCC, 0x5FA7, 0x8FCD, 0x5FA9, 0x8FCE, 0x5FAB, 0x8FCF, 0x5FAC, - 0x8FD0, 0x5FAF, 0x8FD1, 0x5FB0, 0x8FD2, 0x5FB1, 0x8FD3, 0x5FB2, - 0x8FD4, 0x5FB3, 0x8FD5, 0x5FB4, 0x8FD6, 0x5FB6, 0x8FD7, 0x5FB8, - 0x8FD8, 0x5FB9, 0x8FD9, 0x5FBA, 0x8FDA, 0x5FBB, 0x8FDB, 0x5FBE, - 0x8FDC, 0x5FBF, 0x8FDD, 0x5FC0, 0x8FDE, 0x5FC1, 0x8FDF, 0x5FC2, - 0x8FE0, 0x5FC7, 0x8FE1, 0x5FC8, 0x8FE2, 0x5FCA, 0x8FE3, 0x5FCB, - 0x8FE4, 0x5FCE, 0x8FE5, 0x5FD3, 0x8FE6, 0x5FD4, 0x8FE7, 0x5FD5, - 0x8FE8, 0x5FDA, 0x8FE9, 0x5FDB, 0x8FEA, 0x5FDC, 0x8FEB, 0x5FDE, - 0x8FEC, 0x5FDF, 0x8FED, 0x5FE2, 0x8FEE, 0x5FE3, 0x8FEF, 0x5FE5, - 0x8FF0, 0x5FE6, 0x8FF1, 0x5FE8, 0x8FF2, 0x5FE9, 0x8FF3, 0x5FEC, - 0x8FF4, 0x5FEF, 0x8FF5, 0x5FF0, 0x8FF6, 0x5FF2, 0x8FF7, 0x5FF3, - 0x8FF8, 0x5FF4, 0x8FF9, 0x5FF6, 0x8FFA, 0x5FF7, 0x8FFB, 0x5FF9, - 0x8FFC, 0x5FFA, 0x8FFD, 0x5FFC, 0x8FFE, 0x6007, 0x9040, 0x6008, - 0x9041, 0x6009, 0x9042, 0x600B, 0x9043, 0x600C, 0x9044, 0x6010, - 0x9045, 0x6011, 0x9046, 0x6013, 0x9047, 0x6017, 0x9048, 0x6018, - 0x9049, 0x601A, 0x904A, 0x601E, 0x904B, 0x601F, 0x904C, 0x6022, - 0x904D, 0x6023, 0x904E, 0x6024, 0x904F, 0x602C, 0x9050, 0x602D, - 0x9051, 0x602E, 0x9052, 0x6030, 0x9053, 0x6031, 0x9054, 0x6032, - 0x9055, 0x6033, 0x9056, 0x6034, 0x9057, 0x6036, 0x9058, 0x6037, - 0x9059, 0x6038, 0x905A, 0x6039, 0x905B, 0x603A, 0x905C, 0x603D, - 0x905D, 0x603E, 0x905E, 0x6040, 0x905F, 0x6044, 0x9060, 0x6045, - 0x9061, 0x6046, 0x9062, 0x6047, 0x9063, 0x6048, 0x9064, 0x6049, - 0x9065, 0x604A, 0x9066, 0x604C, 0x9067, 0x604E, 0x9068, 0x604F, - 0x9069, 0x6051, 0x906A, 0x6053, 0x906B, 0x6054, 0x906C, 0x6056, - 0x906D, 0x6057, 0x906E, 0x6058, 0x906F, 0x605B, 0x9070, 0x605C, - 0x9071, 0x605E, 0x9072, 0x605F, 0x9073, 0x6060, 0x9074, 0x6061, - 0x9075, 0x6065, 0x9076, 0x6066, 0x9077, 0x606E, 0x9078, 0x6071, - 0x9079, 0x6072, 0x907A, 0x6074, 0x907B, 0x6075, 0x907C, 0x6077, - 0x907D, 0x607E, 0x907E, 0x6080, 0x9080, 0x6081, 0x9081, 0x6082, - 0x9082, 0x6085, 0x9083, 0x6086, 0x9084, 0x6087, 0x9085, 0x6088, - 0x9086, 0x608A, 0x9087, 0x608B, 0x9088, 0x608E, 0x9089, 0x608F, - 0x908A, 0x6090, 0x908B, 0x6091, 0x908C, 0x6093, 0x908D, 0x6095, - 0x908E, 0x6097, 0x908F, 0x6098, 0x9090, 0x6099, 0x9091, 0x609C, - 0x9092, 0x609E, 0x9093, 0x60A1, 0x9094, 0x60A2, 0x9095, 0x60A4, - 0x9096, 0x60A5, 0x9097, 0x60A7, 0x9098, 0x60A9, 0x9099, 0x60AA, - 0x909A, 0x60AE, 0x909B, 0x60B0, 0x909C, 0x60B3, 0x909D, 0x60B5, - 0x909E, 0x60B6, 0x909F, 0x60B7, 0x90A0, 0x60B9, 0x90A1, 0x60BA, - 0x90A2, 0x60BD, 0x90A3, 0x60BE, 0x90A4, 0x60BF, 0x90A5, 0x60C0, - 0x90A6, 0x60C1, 0x90A7, 0x60C2, 0x90A8, 0x60C3, 0x90A9, 0x60C4, - 0x90AA, 0x60C7, 0x90AB, 0x60C8, 0x90AC, 0x60C9, 0x90AD, 0x60CC, - 0x90AE, 0x60CD, 0x90AF, 0x60CE, 0x90B0, 0x60CF, 0x90B1, 0x60D0, - 0x90B2, 0x60D2, 0x90B3, 0x60D3, 0x90B4, 0x60D4, 0x90B5, 0x60D6, - 0x90B6, 0x60D7, 0x90B7, 0x60D9, 0x90B8, 0x60DB, 0x90B9, 0x60DE, - 0x90BA, 0x60E1, 0x90BB, 0x60E2, 0x90BC, 0x60E3, 0x90BD, 0x60E4, - 0x90BE, 0x60E5, 0x90BF, 0x60EA, 0x90C0, 0x60F1, 0x90C1, 0x60F2, - 0x90C2, 0x60F5, 0x90C3, 0x60F7, 0x90C4, 0x60F8, 0x90C5, 0x60FB, - 0x90C6, 0x60FC, 0x90C7, 0x60FD, 0x90C8, 0x60FE, 0x90C9, 0x60FF, - 0x90CA, 0x6102, 0x90CB, 0x6103, 0x90CC, 0x6104, 0x90CD, 0x6105, - 0x90CE, 0x6107, 0x90CF, 0x610A, 0x90D0, 0x610B, 0x90D1, 0x610C, - 0x90D2, 0x6110, 0x90D3, 0x6111, 0x90D4, 0x6112, 0x90D5, 0x6113, - 0x90D6, 0x6114, 0x90D7, 0x6116, 0x90D8, 0x6117, 0x90D9, 0x6118, - 0x90DA, 0x6119, 0x90DB, 0x611B, 0x90DC, 0x611C, 0x90DD, 0x611D, - 0x90DE, 0x611E, 0x90DF, 0x6121, 0x90E0, 0x6122, 0x90E1, 0x6125, - 0x90E2, 0x6128, 0x90E3, 0x6129, 0x90E4, 0x612A, 0x90E5, 0x612C, - 0x90E6, 0x612D, 0x90E7, 0x612E, 0x90E8, 0x612F, 0x90E9, 0x6130, - 0x90EA, 0x6131, 0x90EB, 0x6132, 0x90EC, 0x6133, 0x90ED, 0x6134, - 0x90EE, 0x6135, 0x90EF, 0x6136, 0x90F0, 0x6137, 0x90F1, 0x6138, - 0x90F2, 0x6139, 0x90F3, 0x613A, 0x90F4, 0x613B, 0x90F5, 0x613C, - 0x90F6, 0x613D, 0x90F7, 0x613E, 0x90F8, 0x6140, 0x90F9, 0x6141, - 0x90FA, 0x6142, 0x90FB, 0x6143, 0x90FC, 0x6144, 0x90FD, 0x6145, - 0x90FE, 0x6146, 0x9140, 0x6147, 0x9141, 0x6149, 0x9142, 0x614B, - 0x9143, 0x614D, 0x9144, 0x614F, 0x9145, 0x6150, 0x9146, 0x6152, - 0x9147, 0x6153, 0x9148, 0x6154, 0x9149, 0x6156, 0x914A, 0x6157, - 0x914B, 0x6158, 0x914C, 0x6159, 0x914D, 0x615A, 0x914E, 0x615B, - 0x914F, 0x615C, 0x9150, 0x615E, 0x9151, 0x615F, 0x9152, 0x6160, - 0x9153, 0x6161, 0x9154, 0x6163, 0x9155, 0x6164, 0x9156, 0x6165, - 0x9157, 0x6166, 0x9158, 0x6169, 0x9159, 0x616A, 0x915A, 0x616B, - 0x915B, 0x616C, 0x915C, 0x616D, 0x915D, 0x616E, 0x915E, 0x616F, - 0x915F, 0x6171, 0x9160, 0x6172, 0x9161, 0x6173, 0x9162, 0x6174, - 0x9163, 0x6176, 0x9164, 0x6178, 0x9165, 0x6179, 0x9166, 0x617A, - 0x9167, 0x617B, 0x9168, 0x617C, 0x9169, 0x617D, 0x916A, 0x617E, - 0x916B, 0x617F, 0x916C, 0x6180, 0x916D, 0x6181, 0x916E, 0x6182, - 0x916F, 0x6183, 0x9170, 0x6184, 0x9171, 0x6185, 0x9172, 0x6186, - 0x9173, 0x6187, 0x9174, 0x6188, 0x9175, 0x6189, 0x9176, 0x618A, - 0x9177, 0x618C, 0x9178, 0x618D, 0x9179, 0x618F, 0x917A, 0x6190, - 0x917B, 0x6191, 0x917C, 0x6192, 0x917D, 0x6193, 0x917E, 0x6195, - 0x9180, 0x6196, 0x9181, 0x6197, 0x9182, 0x6198, 0x9183, 0x6199, - 0x9184, 0x619A, 0x9185, 0x619B, 0x9186, 0x619C, 0x9187, 0x619E, - 0x9188, 0x619F, 0x9189, 0x61A0, 0x918A, 0x61A1, 0x918B, 0x61A2, - 0x918C, 0x61A3, 0x918D, 0x61A4, 0x918E, 0x61A5, 0x918F, 0x61A6, - 0x9190, 0x61AA, 0x9191, 0x61AB, 0x9192, 0x61AD, 0x9193, 0x61AE, - 0x9194, 0x61AF, 0x9195, 0x61B0, 0x9196, 0x61B1, 0x9197, 0x61B2, - 0x9198, 0x61B3, 0x9199, 0x61B4, 0x919A, 0x61B5, 0x919B, 0x61B6, - 0x919C, 0x61B8, 0x919D, 0x61B9, 0x919E, 0x61BA, 0x919F, 0x61BB, - 0x91A0, 0x61BC, 0x91A1, 0x61BD, 0x91A2, 0x61BF, 0x91A3, 0x61C0, - 0x91A4, 0x61C1, 0x91A5, 0x61C3, 0x91A6, 0x61C4, 0x91A7, 0x61C5, - 0x91A8, 0x61C6, 0x91A9, 0x61C7, 0x91AA, 0x61C9, 0x91AB, 0x61CC, - 0x91AC, 0x61CD, 0x91AD, 0x61CE, 0x91AE, 0x61CF, 0x91AF, 0x61D0, - 0x91B0, 0x61D3, 0x91B1, 0x61D5, 0x91B2, 0x61D6, 0x91B3, 0x61D7, - 0x91B4, 0x61D8, 0x91B5, 0x61D9, 0x91B6, 0x61DA, 0x91B7, 0x61DB, - 0x91B8, 0x61DC, 0x91B9, 0x61DD, 0x91BA, 0x61DE, 0x91BB, 0x61DF, - 0x91BC, 0x61E0, 0x91BD, 0x61E1, 0x91BE, 0x61E2, 0x91BF, 0x61E3, - 0x91C0, 0x61E4, 0x91C1, 0x61E5, 0x91C2, 0x61E7, 0x91C3, 0x61E8, - 0x91C4, 0x61E9, 0x91C5, 0x61EA, 0x91C6, 0x61EB, 0x91C7, 0x61EC, - 0x91C8, 0x61ED, 0x91C9, 0x61EE, 0x91CA, 0x61EF, 0x91CB, 0x61F0, - 0x91CC, 0x61F1, 0x91CD, 0x61F2, 0x91CE, 0x61F3, 0x91CF, 0x61F4, - 0x91D0, 0x61F6, 0x91D1, 0x61F7, 0x91D2, 0x61F8, 0x91D3, 0x61F9, - 0x91D4, 0x61FA, 0x91D5, 0x61FB, 0x91D6, 0x61FC, 0x91D7, 0x61FD, - 0x91D8, 0x61FE, 0x91D9, 0x6200, 0x91DA, 0x6201, 0x91DB, 0x6202, - 0x91DC, 0x6203, 0x91DD, 0x6204, 0x91DE, 0x6205, 0x91DF, 0x6207, - 0x91E0, 0x6209, 0x91E1, 0x6213, 0x91E2, 0x6214, 0x91E3, 0x6219, - 0x91E4, 0x621C, 0x91E5, 0x621D, 0x91E6, 0x621E, 0x91E7, 0x6220, - 0x91E8, 0x6223, 0x91E9, 0x6226, 0x91EA, 0x6227, 0x91EB, 0x6228, - 0x91EC, 0x6229, 0x91ED, 0x622B, 0x91EE, 0x622D, 0x91EF, 0x622F, - 0x91F0, 0x6230, 0x91F1, 0x6231, 0x91F2, 0x6232, 0x91F3, 0x6235, - 0x91F4, 0x6236, 0x91F5, 0x6238, 0x91F6, 0x6239, 0x91F7, 0x623A, - 0x91F8, 0x623B, 0x91F9, 0x623C, 0x91FA, 0x6242, 0x91FB, 0x6244, - 0x91FC, 0x6245, 0x91FD, 0x6246, 0x91FE, 0x624A, 0x9240, 0x624F, - 0x9241, 0x6250, 0x9242, 0x6255, 0x9243, 0x6256, 0x9244, 0x6257, - 0x9245, 0x6259, 0x9246, 0x625A, 0x9247, 0x625C, 0x9248, 0x625D, - 0x9249, 0x625E, 0x924A, 0x625F, 0x924B, 0x6260, 0x924C, 0x6261, - 0x924D, 0x6262, 0x924E, 0x6264, 0x924F, 0x6265, 0x9250, 0x6268, - 0x9251, 0x6271, 0x9252, 0x6272, 0x9253, 0x6274, 0x9254, 0x6275, - 0x9255, 0x6277, 0x9256, 0x6278, 0x9257, 0x627A, 0x9258, 0x627B, - 0x9259, 0x627D, 0x925A, 0x6281, 0x925B, 0x6282, 0x925C, 0x6283, - 0x925D, 0x6285, 0x925E, 0x6286, 0x925F, 0x6287, 0x9260, 0x6288, - 0x9261, 0x628B, 0x9262, 0x628C, 0x9263, 0x628D, 0x9264, 0x628E, - 0x9265, 0x628F, 0x9266, 0x6290, 0x9267, 0x6294, 0x9268, 0x6299, - 0x9269, 0x629C, 0x926A, 0x629D, 0x926B, 0x629E, 0x926C, 0x62A3, - 0x926D, 0x62A6, 0x926E, 0x62A7, 0x926F, 0x62A9, 0x9270, 0x62AA, - 0x9271, 0x62AD, 0x9272, 0x62AE, 0x9273, 0x62AF, 0x9274, 0x62B0, - 0x9275, 0x62B2, 0x9276, 0x62B3, 0x9277, 0x62B4, 0x9278, 0x62B6, - 0x9279, 0x62B7, 0x927A, 0x62B8, 0x927B, 0x62BA, 0x927C, 0x62BE, - 0x927D, 0x62C0, 0x927E, 0x62C1, 0x9280, 0x62C3, 0x9281, 0x62CB, - 0x9282, 0x62CF, 0x9283, 0x62D1, 0x9284, 0x62D5, 0x9285, 0x62DD, - 0x9286, 0x62DE, 0x9287, 0x62E0, 0x9288, 0x62E1, 0x9289, 0x62E4, - 0x928A, 0x62EA, 0x928B, 0x62EB, 0x928C, 0x62F0, 0x928D, 0x62F2, - 0x928E, 0x62F5, 0x928F, 0x62F8, 0x9290, 0x62F9, 0x9291, 0x62FA, - 0x9292, 0x62FB, 0x9293, 0x6300, 0x9294, 0x6303, 0x9295, 0x6304, - 0x9296, 0x6305, 0x9297, 0x6306, 0x9298, 0x630A, 0x9299, 0x630B, - 0x929A, 0x630C, 0x929B, 0x630D, 0x929C, 0x630F, 0x929D, 0x6310, - 0x929E, 0x6312, 0x929F, 0x6313, 0x92A0, 0x6314, 0x92A1, 0x6315, - 0x92A2, 0x6317, 0x92A3, 0x6318, 0x92A4, 0x6319, 0x92A5, 0x631C, - 0x92A6, 0x6326, 0x92A7, 0x6327, 0x92A8, 0x6329, 0x92A9, 0x632C, - 0x92AA, 0x632D, 0x92AB, 0x632E, 0x92AC, 0x6330, 0x92AD, 0x6331, - 0x92AE, 0x6333, 0x92AF, 0x6334, 0x92B0, 0x6335, 0x92B1, 0x6336, - 0x92B2, 0x6337, 0x92B3, 0x6338, 0x92B4, 0x633B, 0x92B5, 0x633C, - 0x92B6, 0x633E, 0x92B7, 0x633F, 0x92B8, 0x6340, 0x92B9, 0x6341, - 0x92BA, 0x6344, 0x92BB, 0x6347, 0x92BC, 0x6348, 0x92BD, 0x634A, - 0x92BE, 0x6351, 0x92BF, 0x6352, 0x92C0, 0x6353, 0x92C1, 0x6354, - 0x92C2, 0x6356, 0x92C3, 0x6357, 0x92C4, 0x6358, 0x92C5, 0x6359, - 0x92C6, 0x635A, 0x92C7, 0x635B, 0x92C8, 0x635C, 0x92C9, 0x635D, - 0x92CA, 0x6360, 0x92CB, 0x6364, 0x92CC, 0x6365, 0x92CD, 0x6366, - 0x92CE, 0x6368, 0x92CF, 0x636A, 0x92D0, 0x636B, 0x92D1, 0x636C, - 0x92D2, 0x636F, 0x92D3, 0x6370, 0x92D4, 0x6372, 0x92D5, 0x6373, - 0x92D6, 0x6374, 0x92D7, 0x6375, 0x92D8, 0x6378, 0x92D9, 0x6379, - 0x92DA, 0x637C, 0x92DB, 0x637D, 0x92DC, 0x637E, 0x92DD, 0x637F, - 0x92DE, 0x6381, 0x92DF, 0x6383, 0x92E0, 0x6384, 0x92E1, 0x6385, - 0x92E2, 0x6386, 0x92E3, 0x638B, 0x92E4, 0x638D, 0x92E5, 0x6391, - 0x92E6, 0x6393, 0x92E7, 0x6394, 0x92E8, 0x6395, 0x92E9, 0x6397, - 0x92EA, 0x6399, 0x92EB, 0x639A, 0x92EC, 0x639B, 0x92ED, 0x639C, - 0x92EE, 0x639D, 0x92EF, 0x639E, 0x92F0, 0x639F, 0x92F1, 0x63A1, - 0x92F2, 0x63A4, 0x92F3, 0x63A6, 0x92F4, 0x63AB, 0x92F5, 0x63AF, - 0x92F6, 0x63B1, 0x92F7, 0x63B2, 0x92F8, 0x63B5, 0x92F9, 0x63B6, - 0x92FA, 0x63B9, 0x92FB, 0x63BB, 0x92FC, 0x63BD, 0x92FD, 0x63BF, - 0x92FE, 0x63C0, 0x9340, 0x63C1, 0x9341, 0x63C2, 0x9342, 0x63C3, - 0x9343, 0x63C5, 0x9344, 0x63C7, 0x9345, 0x63C8, 0x9346, 0x63CA, - 0x9347, 0x63CB, 0x9348, 0x63CC, 0x9349, 0x63D1, 0x934A, 0x63D3, - 0x934B, 0x63D4, 0x934C, 0x63D5, 0x934D, 0x63D7, 0x934E, 0x63D8, - 0x934F, 0x63D9, 0x9350, 0x63DA, 0x9351, 0x63DB, 0x9352, 0x63DC, - 0x9353, 0x63DD, 0x9354, 0x63DF, 0x9355, 0x63E2, 0x9356, 0x63E4, - 0x9357, 0x63E5, 0x9358, 0x63E6, 0x9359, 0x63E7, 0x935A, 0x63E8, - 0x935B, 0x63EB, 0x935C, 0x63EC, 0x935D, 0x63EE, 0x935E, 0x63EF, - 0x935F, 0x63F0, 0x9360, 0x63F1, 0x9361, 0x63F3, 0x9362, 0x63F5, - 0x9363, 0x63F7, 0x9364, 0x63F9, 0x9365, 0x63FA, 0x9366, 0x63FB, - 0x9367, 0x63FC, 0x9368, 0x63FE, 0x9369, 0x6403, 0x936A, 0x6404, - 0x936B, 0x6406, 0x936C, 0x6407, 0x936D, 0x6408, 0x936E, 0x6409, - 0x936F, 0x640A, 0x9370, 0x640D, 0x9371, 0x640E, 0x9372, 0x6411, - 0x9373, 0x6412, 0x9374, 0x6415, 0x9375, 0x6416, 0x9376, 0x6417, - 0x9377, 0x6418, 0x9378, 0x6419, 0x9379, 0x641A, 0x937A, 0x641D, - 0x937B, 0x641F, 0x937C, 0x6422, 0x937D, 0x6423, 0x937E, 0x6424, - 0x9380, 0x6425, 0x9381, 0x6427, 0x9382, 0x6428, 0x9383, 0x6429, - 0x9384, 0x642B, 0x9385, 0x642E, 0x9386, 0x642F, 0x9387, 0x6430, - 0x9388, 0x6431, 0x9389, 0x6432, 0x938A, 0x6433, 0x938B, 0x6435, - 0x938C, 0x6436, 0x938D, 0x6437, 0x938E, 0x6438, 0x938F, 0x6439, - 0x9390, 0x643B, 0x9391, 0x643C, 0x9392, 0x643E, 0x9393, 0x6440, - 0x9394, 0x6442, 0x9395, 0x6443, 0x9396, 0x6449, 0x9397, 0x644B, - 0x9398, 0x644C, 0x9399, 0x644D, 0x939A, 0x644E, 0x939B, 0x644F, - 0x939C, 0x6450, 0x939D, 0x6451, 0x939E, 0x6453, 0x939F, 0x6455, - 0x93A0, 0x6456, 0x93A1, 0x6457, 0x93A2, 0x6459, 0x93A3, 0x645A, - 0x93A4, 0x645B, 0x93A5, 0x645C, 0x93A6, 0x645D, 0x93A7, 0x645F, - 0x93A8, 0x6460, 0x93A9, 0x6461, 0x93AA, 0x6462, 0x93AB, 0x6463, - 0x93AC, 0x6464, 0x93AD, 0x6465, 0x93AE, 0x6466, 0x93AF, 0x6468, - 0x93B0, 0x646A, 0x93B1, 0x646B, 0x93B2, 0x646C, 0x93B3, 0x646E, - 0x93B4, 0x646F, 0x93B5, 0x6470, 0x93B6, 0x6471, 0x93B7, 0x6472, - 0x93B8, 0x6473, 0x93B9, 0x6474, 0x93BA, 0x6475, 0x93BB, 0x6476, - 0x93BC, 0x6477, 0x93BD, 0x647B, 0x93BE, 0x647C, 0x93BF, 0x647D, - 0x93C0, 0x647E, 0x93C1, 0x647F, 0x93C2, 0x6480, 0x93C3, 0x6481, - 0x93C4, 0x6483, 0x93C5, 0x6486, 0x93C6, 0x6488, 0x93C7, 0x6489, - 0x93C8, 0x648A, 0x93C9, 0x648B, 0x93CA, 0x648C, 0x93CB, 0x648D, - 0x93CC, 0x648E, 0x93CD, 0x648F, 0x93CE, 0x6490, 0x93CF, 0x6493, - 0x93D0, 0x6494, 0x93D1, 0x6497, 0x93D2, 0x6498, 0x93D3, 0x649A, - 0x93D4, 0x649B, 0x93D5, 0x649C, 0x93D6, 0x649D, 0x93D7, 0x649F, - 0x93D8, 0x64A0, 0x93D9, 0x64A1, 0x93DA, 0x64A2, 0x93DB, 0x64A3, - 0x93DC, 0x64A5, 0x93DD, 0x64A6, 0x93DE, 0x64A7, 0x93DF, 0x64A8, - 0x93E0, 0x64AA, 0x93E1, 0x64AB, 0x93E2, 0x64AF, 0x93E3, 0x64B1, - 0x93E4, 0x64B2, 0x93E5, 0x64B3, 0x93E6, 0x64B4, 0x93E7, 0x64B6, - 0x93E8, 0x64B9, 0x93E9, 0x64BB, 0x93EA, 0x64BD, 0x93EB, 0x64BE, - 0x93EC, 0x64BF, 0x93ED, 0x64C1, 0x93EE, 0x64C3, 0x93EF, 0x64C4, - 0x93F0, 0x64C6, 0x93F1, 0x64C7, 0x93F2, 0x64C8, 0x93F3, 0x64C9, - 0x93F4, 0x64CA, 0x93F5, 0x64CB, 0x93F6, 0x64CC, 0x93F7, 0x64CF, - 0x93F8, 0x64D1, 0x93F9, 0x64D3, 0x93FA, 0x64D4, 0x93FB, 0x64D5, - 0x93FC, 0x64D6, 0x93FD, 0x64D9, 0x93FE, 0x64DA, 0x9440, 0x64DB, - 0x9441, 0x64DC, 0x9442, 0x64DD, 0x9443, 0x64DF, 0x9444, 0x64E0, - 0x9445, 0x64E1, 0x9446, 0x64E3, 0x9447, 0x64E5, 0x9448, 0x64E7, - 0x9449, 0x64E8, 0x944A, 0x64E9, 0x944B, 0x64EA, 0x944C, 0x64EB, - 0x944D, 0x64EC, 0x944E, 0x64ED, 0x944F, 0x64EE, 0x9450, 0x64EF, - 0x9451, 0x64F0, 0x9452, 0x64F1, 0x9453, 0x64F2, 0x9454, 0x64F3, - 0x9455, 0x64F4, 0x9456, 0x64F5, 0x9457, 0x64F6, 0x9458, 0x64F7, - 0x9459, 0x64F8, 0x945A, 0x64F9, 0x945B, 0x64FA, 0x945C, 0x64FB, - 0x945D, 0x64FC, 0x945E, 0x64FD, 0x945F, 0x64FE, 0x9460, 0x64FF, - 0x9461, 0x6501, 0x9462, 0x6502, 0x9463, 0x6503, 0x9464, 0x6504, - 0x9465, 0x6505, 0x9466, 0x6506, 0x9467, 0x6507, 0x9468, 0x6508, - 0x9469, 0x650A, 0x946A, 0x650B, 0x946B, 0x650C, 0x946C, 0x650D, - 0x946D, 0x650E, 0x946E, 0x650F, 0x946F, 0x6510, 0x9470, 0x6511, - 0x9471, 0x6513, 0x9472, 0x6514, 0x9473, 0x6515, 0x9474, 0x6516, - 0x9475, 0x6517, 0x9476, 0x6519, 0x9477, 0x651A, 0x9478, 0x651B, - 0x9479, 0x651C, 0x947A, 0x651D, 0x947B, 0x651E, 0x947C, 0x651F, - 0x947D, 0x6520, 0x947E, 0x6521, 0x9480, 0x6522, 0x9481, 0x6523, - 0x9482, 0x6524, 0x9483, 0x6526, 0x9484, 0x6527, 0x9485, 0x6528, - 0x9486, 0x6529, 0x9487, 0x652A, 0x9488, 0x652C, 0x9489, 0x652D, - 0x948A, 0x6530, 0x948B, 0x6531, 0x948C, 0x6532, 0x948D, 0x6533, - 0x948E, 0x6537, 0x948F, 0x653A, 0x9490, 0x653C, 0x9491, 0x653D, - 0x9492, 0x6540, 0x9493, 0x6541, 0x9494, 0x6542, 0x9495, 0x6543, - 0x9496, 0x6544, 0x9497, 0x6546, 0x9498, 0x6547, 0x9499, 0x654A, - 0x949A, 0x654B, 0x949B, 0x654D, 0x949C, 0x654E, 0x949D, 0x6550, - 0x949E, 0x6552, 0x949F, 0x6553, 0x94A0, 0x6554, 0x94A1, 0x6557, - 0x94A2, 0x6558, 0x94A3, 0x655A, 0x94A4, 0x655C, 0x94A5, 0x655F, - 0x94A6, 0x6560, 0x94A7, 0x6561, 0x94A8, 0x6564, 0x94A9, 0x6565, - 0x94AA, 0x6567, 0x94AB, 0x6568, 0x94AC, 0x6569, 0x94AD, 0x656A, - 0x94AE, 0x656D, 0x94AF, 0x656E, 0x94B0, 0x656F, 0x94B1, 0x6571, - 0x94B2, 0x6573, 0x94B3, 0x6575, 0x94B4, 0x6576, 0x94B5, 0x6578, - 0x94B6, 0x6579, 0x94B7, 0x657A, 0x94B8, 0x657B, 0x94B9, 0x657C, - 0x94BA, 0x657D, 0x94BB, 0x657E, 0x94BC, 0x657F, 0x94BD, 0x6580, - 0x94BE, 0x6581, 0x94BF, 0x6582, 0x94C0, 0x6583, 0x94C1, 0x6584, - 0x94C2, 0x6585, 0x94C3, 0x6586, 0x94C4, 0x6588, 0x94C5, 0x6589, - 0x94C6, 0x658A, 0x94C7, 0x658D, 0x94C8, 0x658E, 0x94C9, 0x658F, - 0x94CA, 0x6592, 0x94CB, 0x6594, 0x94CC, 0x6595, 0x94CD, 0x6596, - 0x94CE, 0x6598, 0x94CF, 0x659A, 0x94D0, 0x659D, 0x94D1, 0x659E, - 0x94D2, 0x65A0, 0x94D3, 0x65A2, 0x94D4, 0x65A3, 0x94D5, 0x65A6, - 0x94D6, 0x65A8, 0x94D7, 0x65AA, 0x94D8, 0x65AC, 0x94D9, 0x65AE, - 0x94DA, 0x65B1, 0x94DB, 0x65B2, 0x94DC, 0x65B3, 0x94DD, 0x65B4, - 0x94DE, 0x65B5, 0x94DF, 0x65B6, 0x94E0, 0x65B7, 0x94E1, 0x65B8, - 0x94E2, 0x65BA, 0x94E3, 0x65BB, 0x94E4, 0x65BE, 0x94E5, 0x65BF, - 0x94E6, 0x65C0, 0x94E7, 0x65C2, 0x94E8, 0x65C7, 0x94E9, 0x65C8, - 0x94EA, 0x65C9, 0x94EB, 0x65CA, 0x94EC, 0x65CD, 0x94ED, 0x65D0, - 0x94EE, 0x65D1, 0x94EF, 0x65D3, 0x94F0, 0x65D4, 0x94F1, 0x65D5, - 0x94F2, 0x65D8, 0x94F3, 0x65D9, 0x94F4, 0x65DA, 0x94F5, 0x65DB, - 0x94F6, 0x65DC, 0x94F7, 0x65DD, 0x94F8, 0x65DE, 0x94F9, 0x65DF, - 0x94FA, 0x65E1, 0x94FB, 0x65E3, 0x94FC, 0x65E4, 0x94FD, 0x65EA, - 0x94FE, 0x65EB, 0x9540, 0x65F2, 0x9541, 0x65F3, 0x9542, 0x65F4, - 0x9543, 0x65F5, 0x9544, 0x65F8, 0x9545, 0x65F9, 0x9546, 0x65FB, - 0x9547, 0x65FC, 0x9548, 0x65FD, 0x9549, 0x65FE, 0x954A, 0x65FF, - 0x954B, 0x6601, 0x954C, 0x6604, 0x954D, 0x6605, 0x954E, 0x6607, - 0x954F, 0x6608, 0x9550, 0x6609, 0x9551, 0x660B, 0x9552, 0x660D, - 0x9553, 0x6610, 0x9554, 0x6611, 0x9555, 0x6612, 0x9556, 0x6616, - 0x9557, 0x6617, 0x9558, 0x6618, 0x9559, 0x661A, 0x955A, 0x661B, - 0x955B, 0x661C, 0x955C, 0x661E, 0x955D, 0x6621, 0x955E, 0x6622, - 0x955F, 0x6623, 0x9560, 0x6624, 0x9561, 0x6626, 0x9562, 0x6629, - 0x9563, 0x662A, 0x9564, 0x662B, 0x9565, 0x662C, 0x9566, 0x662E, - 0x9567, 0x6630, 0x9568, 0x6632, 0x9569, 0x6633, 0x956A, 0x6637, - 0x956B, 0x6638, 0x956C, 0x6639, 0x956D, 0x663A, 0x956E, 0x663B, - 0x956F, 0x663D, 0x9570, 0x663F, 0x9571, 0x6640, 0x9572, 0x6642, - 0x9573, 0x6644, 0x9574, 0x6645, 0x9575, 0x6646, 0x9576, 0x6647, - 0x9577, 0x6648, 0x9578, 0x6649, 0x9579, 0x664A, 0x957A, 0x664D, - 0x957B, 0x664E, 0x957C, 0x6650, 0x957D, 0x6651, 0x957E, 0x6658, - 0x9580, 0x6659, 0x9581, 0x665B, 0x9582, 0x665C, 0x9583, 0x665D, - 0x9584, 0x665E, 0x9585, 0x6660, 0x9586, 0x6662, 0x9587, 0x6663, - 0x9588, 0x6665, 0x9589, 0x6667, 0x958A, 0x6669, 0x958B, 0x666A, - 0x958C, 0x666B, 0x958D, 0x666C, 0x958E, 0x666D, 0x958F, 0x6671, - 0x9590, 0x6672, 0x9591, 0x6673, 0x9592, 0x6675, 0x9593, 0x6678, - 0x9594, 0x6679, 0x9595, 0x667B, 0x9596, 0x667C, 0x9597, 0x667D, - 0x9598, 0x667F, 0x9599, 0x6680, 0x959A, 0x6681, 0x959B, 0x6683, - 0x959C, 0x6685, 0x959D, 0x6686, 0x959E, 0x6688, 0x959F, 0x6689, - 0x95A0, 0x668A, 0x95A1, 0x668B, 0x95A2, 0x668D, 0x95A3, 0x668E, - 0x95A4, 0x668F, 0x95A5, 0x6690, 0x95A6, 0x6692, 0x95A7, 0x6693, - 0x95A8, 0x6694, 0x95A9, 0x6695, 0x95AA, 0x6698, 0x95AB, 0x6699, - 0x95AC, 0x669A, 0x95AD, 0x669B, 0x95AE, 0x669C, 0x95AF, 0x669E, - 0x95B0, 0x669F, 0x95B1, 0x66A0, 0x95B2, 0x66A1, 0x95B3, 0x66A2, - 0x95B4, 0x66A3, 0x95B5, 0x66A4, 0x95B6, 0x66A5, 0x95B7, 0x66A6, - 0x95B8, 0x66A9, 0x95B9, 0x66AA, 0x95BA, 0x66AB, 0x95BB, 0x66AC, - 0x95BC, 0x66AD, 0x95BD, 0x66AF, 0x95BE, 0x66B0, 0x95BF, 0x66B1, - 0x95C0, 0x66B2, 0x95C1, 0x66B3, 0x95C2, 0x66B5, 0x95C3, 0x66B6, - 0x95C4, 0x66B7, 0x95C5, 0x66B8, 0x95C6, 0x66BA, 0x95C7, 0x66BB, - 0x95C8, 0x66BC, 0x95C9, 0x66BD, 0x95CA, 0x66BF, 0x95CB, 0x66C0, - 0x95CC, 0x66C1, 0x95CD, 0x66C2, 0x95CE, 0x66C3, 0x95CF, 0x66C4, - 0x95D0, 0x66C5, 0x95D1, 0x66C6, 0x95D2, 0x66C7, 0x95D3, 0x66C8, - 0x95D4, 0x66C9, 0x95D5, 0x66CA, 0x95D6, 0x66CB, 0x95D7, 0x66CC, - 0x95D8, 0x66CD, 0x95D9, 0x66CE, 0x95DA, 0x66CF, 0x95DB, 0x66D0, - 0x95DC, 0x66D1, 0x95DD, 0x66D2, 0x95DE, 0x66D3, 0x95DF, 0x66D4, - 0x95E0, 0x66D5, 0x95E1, 0x66D6, 0x95E2, 0x66D7, 0x95E3, 0x66D8, - 0x95E4, 0x66DA, 0x95E5, 0x66DE, 0x95E6, 0x66DF, 0x95E7, 0x66E0, - 0x95E8, 0x66E1, 0x95E9, 0x66E2, 0x95EA, 0x66E3, 0x95EB, 0x66E4, - 0x95EC, 0x66E5, 0x95ED, 0x66E7, 0x95EE, 0x66E8, 0x95EF, 0x66EA, - 0x95F0, 0x66EB, 0x95F1, 0x66EC, 0x95F2, 0x66ED, 0x95F3, 0x66EE, - 0x95F4, 0x66EF, 0x95F5, 0x66F1, 0x95F6, 0x66F5, 0x95F7, 0x66F6, - 0x95F8, 0x66F8, 0x95F9, 0x66FA, 0x95FA, 0x66FB, 0x95FB, 0x66FD, - 0x95FC, 0x6701, 0x95FD, 0x6702, 0x95FE, 0x6703, 0x9640, 0x6704, - 0x9641, 0x6705, 0x9642, 0x6706, 0x9643, 0x6707, 0x9644, 0x670C, - 0x9645, 0x670E, 0x9646, 0x670F, 0x9647, 0x6711, 0x9648, 0x6712, - 0x9649, 0x6713, 0x964A, 0x6716, 0x964B, 0x6718, 0x964C, 0x6719, - 0x964D, 0x671A, 0x964E, 0x671C, 0x964F, 0x671E, 0x9650, 0x6720, - 0x9651, 0x6721, 0x9652, 0x6722, 0x9653, 0x6723, 0x9654, 0x6724, - 0x9655, 0x6725, 0x9656, 0x6727, 0x9657, 0x6729, 0x9658, 0x672E, - 0x9659, 0x6730, 0x965A, 0x6732, 0x965B, 0x6733, 0x965C, 0x6736, - 0x965D, 0x6737, 0x965E, 0x6738, 0x965F, 0x6739, 0x9660, 0x673B, - 0x9661, 0x673C, 0x9662, 0x673E, 0x9663, 0x673F, 0x9664, 0x6741, - 0x9665, 0x6744, 0x9666, 0x6745, 0x9667, 0x6747, 0x9668, 0x674A, - 0x9669, 0x674B, 0x966A, 0x674D, 0x966B, 0x6752, 0x966C, 0x6754, - 0x966D, 0x6755, 0x966E, 0x6757, 0x966F, 0x6758, 0x9670, 0x6759, - 0x9671, 0x675A, 0x9672, 0x675B, 0x9673, 0x675D, 0x9674, 0x6762, - 0x9675, 0x6763, 0x9676, 0x6764, 0x9677, 0x6766, 0x9678, 0x6767, - 0x9679, 0x676B, 0x967A, 0x676C, 0x967B, 0x676E, 0x967C, 0x6771, - 0x967D, 0x6774, 0x967E, 0x6776, 0x9680, 0x6778, 0x9681, 0x6779, - 0x9682, 0x677A, 0x9683, 0x677B, 0x9684, 0x677D, 0x9685, 0x6780, - 0x9686, 0x6782, 0x9687, 0x6783, 0x9688, 0x6785, 0x9689, 0x6786, - 0x968A, 0x6788, 0x968B, 0x678A, 0x968C, 0x678C, 0x968D, 0x678D, - 0x968E, 0x678E, 0x968F, 0x678F, 0x9690, 0x6791, 0x9691, 0x6792, - 0x9692, 0x6793, 0x9693, 0x6794, 0x9694, 0x6796, 0x9695, 0x6799, - 0x9696, 0x679B, 0x9697, 0x679F, 0x9698, 0x67A0, 0x9699, 0x67A1, - 0x969A, 0x67A4, 0x969B, 0x67A6, 0x969C, 0x67A9, 0x969D, 0x67AC, - 0x969E, 0x67AE, 0x969F, 0x67B1, 0x96A0, 0x67B2, 0x96A1, 0x67B4, - 0x96A2, 0x67B9, 0x96A3, 0x67BA, 0x96A4, 0x67BB, 0x96A5, 0x67BC, - 0x96A6, 0x67BD, 0x96A7, 0x67BE, 0x96A8, 0x67BF, 0x96A9, 0x67C0, - 0x96AA, 0x67C2, 0x96AB, 0x67C5, 0x96AC, 0x67C6, 0x96AD, 0x67C7, - 0x96AE, 0x67C8, 0x96AF, 0x67C9, 0x96B0, 0x67CA, 0x96B1, 0x67CB, - 0x96B2, 0x67CC, 0x96B3, 0x67CD, 0x96B4, 0x67CE, 0x96B5, 0x67D5, - 0x96B6, 0x67D6, 0x96B7, 0x67D7, 0x96B8, 0x67DB, 0x96B9, 0x67DF, - 0x96BA, 0x67E1, 0x96BB, 0x67E3, 0x96BC, 0x67E4, 0x96BD, 0x67E6, - 0x96BE, 0x67E7, 0x96BF, 0x67E8, 0x96C0, 0x67EA, 0x96C1, 0x67EB, - 0x96C2, 0x67ED, 0x96C3, 0x67EE, 0x96C4, 0x67F2, 0x96C5, 0x67F5, - 0x96C6, 0x67F6, 0x96C7, 0x67F7, 0x96C8, 0x67F8, 0x96C9, 0x67F9, - 0x96CA, 0x67FA, 0x96CB, 0x67FB, 0x96CC, 0x67FC, 0x96CD, 0x67FE, - 0x96CE, 0x6801, 0x96CF, 0x6802, 0x96D0, 0x6803, 0x96D1, 0x6804, - 0x96D2, 0x6806, 0x96D3, 0x680D, 0x96D4, 0x6810, 0x96D5, 0x6812, - 0x96D6, 0x6814, 0x96D7, 0x6815, 0x96D8, 0x6818, 0x96D9, 0x6819, - 0x96DA, 0x681A, 0x96DB, 0x681B, 0x96DC, 0x681C, 0x96DD, 0x681E, - 0x96DE, 0x681F, 0x96DF, 0x6820, 0x96E0, 0x6822, 0x96E1, 0x6823, - 0x96E2, 0x6824, 0x96E3, 0x6825, 0x96E4, 0x6826, 0x96E5, 0x6827, - 0x96E6, 0x6828, 0x96E7, 0x682B, 0x96E8, 0x682C, 0x96E9, 0x682D, - 0x96EA, 0x682E, 0x96EB, 0x682F, 0x96EC, 0x6830, 0x96ED, 0x6831, - 0x96EE, 0x6834, 0x96EF, 0x6835, 0x96F0, 0x6836, 0x96F1, 0x683A, - 0x96F2, 0x683B, 0x96F3, 0x683F, 0x96F4, 0x6847, 0x96F5, 0x684B, - 0x96F6, 0x684D, 0x96F7, 0x684F, 0x96F8, 0x6852, 0x96F9, 0x6856, - 0x96FA, 0x6857, 0x96FB, 0x6858, 0x96FC, 0x6859, 0x96FD, 0x685A, - 0x96FE, 0x685B, 0x9740, 0x685C, 0x9741, 0x685D, 0x9742, 0x685E, - 0x9743, 0x685F, 0x9744, 0x686A, 0x9745, 0x686C, 0x9746, 0x686D, - 0x9747, 0x686E, 0x9748, 0x686F, 0x9749, 0x6870, 0x974A, 0x6871, - 0x974B, 0x6872, 0x974C, 0x6873, 0x974D, 0x6875, 0x974E, 0x6878, - 0x974F, 0x6879, 0x9750, 0x687A, 0x9751, 0x687B, 0x9752, 0x687C, - 0x9753, 0x687D, 0x9754, 0x687E, 0x9755, 0x687F, 0x9756, 0x6880, - 0x9757, 0x6882, 0x9758, 0x6884, 0x9759, 0x6887, 0x975A, 0x6888, - 0x975B, 0x6889, 0x975C, 0x688A, 0x975D, 0x688B, 0x975E, 0x688C, - 0x975F, 0x688D, 0x9760, 0x688E, 0x9761, 0x6890, 0x9762, 0x6891, - 0x9763, 0x6892, 0x9764, 0x6894, 0x9765, 0x6895, 0x9766, 0x6896, - 0x9767, 0x6898, 0x9768, 0x6899, 0x9769, 0x689A, 0x976A, 0x689B, - 0x976B, 0x689C, 0x976C, 0x689D, 0x976D, 0x689E, 0x976E, 0x689F, - 0x976F, 0x68A0, 0x9770, 0x68A1, 0x9771, 0x68A3, 0x9772, 0x68A4, - 0x9773, 0x68A5, 0x9774, 0x68A9, 0x9775, 0x68AA, 0x9776, 0x68AB, - 0x9777, 0x68AC, 0x9778, 0x68AE, 0x9779, 0x68B1, 0x977A, 0x68B2, - 0x977B, 0x68B4, 0x977C, 0x68B6, 0x977D, 0x68B7, 0x977E, 0x68B8, - 0x9780, 0x68B9, 0x9781, 0x68BA, 0x9782, 0x68BB, 0x9783, 0x68BC, - 0x9784, 0x68BD, 0x9785, 0x68BE, 0x9786, 0x68BF, 0x9787, 0x68C1, - 0x9788, 0x68C3, 0x9789, 0x68C4, 0x978A, 0x68C5, 0x978B, 0x68C6, - 0x978C, 0x68C7, 0x978D, 0x68C8, 0x978E, 0x68CA, 0x978F, 0x68CC, - 0x9790, 0x68CE, 0x9791, 0x68CF, 0x9792, 0x68D0, 0x9793, 0x68D1, - 0x9794, 0x68D3, 0x9795, 0x68D4, 0x9796, 0x68D6, 0x9797, 0x68D7, - 0x9798, 0x68D9, 0x9799, 0x68DB, 0x979A, 0x68DC, 0x979B, 0x68DD, - 0x979C, 0x68DE, 0x979D, 0x68DF, 0x979E, 0x68E1, 0x979F, 0x68E2, - 0x97A0, 0x68E4, 0x97A1, 0x68E5, 0x97A2, 0x68E6, 0x97A3, 0x68E7, - 0x97A4, 0x68E8, 0x97A5, 0x68E9, 0x97A6, 0x68EA, 0x97A7, 0x68EB, - 0x97A8, 0x68EC, 0x97A9, 0x68ED, 0x97AA, 0x68EF, 0x97AB, 0x68F2, - 0x97AC, 0x68F3, 0x97AD, 0x68F4, 0x97AE, 0x68F6, 0x97AF, 0x68F7, - 0x97B0, 0x68F8, 0x97B1, 0x68FB, 0x97B2, 0x68FD, 0x97B3, 0x68FE, - 0x97B4, 0x68FF, 0x97B5, 0x6900, 0x97B6, 0x6902, 0x97B7, 0x6903, - 0x97B8, 0x6904, 0x97B9, 0x6906, 0x97BA, 0x6907, 0x97BB, 0x6908, - 0x97BC, 0x6909, 0x97BD, 0x690A, 0x97BE, 0x690C, 0x97BF, 0x690F, - 0x97C0, 0x6911, 0x97C1, 0x6913, 0x97C2, 0x6914, 0x97C3, 0x6915, - 0x97C4, 0x6916, 0x97C5, 0x6917, 0x97C6, 0x6918, 0x97C7, 0x6919, - 0x97C8, 0x691A, 0x97C9, 0x691B, 0x97CA, 0x691C, 0x97CB, 0x691D, - 0x97CC, 0x691E, 0x97CD, 0x6921, 0x97CE, 0x6922, 0x97CF, 0x6923, - 0x97D0, 0x6925, 0x97D1, 0x6926, 0x97D2, 0x6927, 0x97D3, 0x6928, - 0x97D4, 0x6929, 0x97D5, 0x692A, 0x97D6, 0x692B, 0x97D7, 0x692C, - 0x97D8, 0x692E, 0x97D9, 0x692F, 0x97DA, 0x6931, 0x97DB, 0x6932, - 0x97DC, 0x6933, 0x97DD, 0x6935, 0x97DE, 0x6936, 0x97DF, 0x6937, - 0x97E0, 0x6938, 0x97E1, 0x693A, 0x97E2, 0x693B, 0x97E3, 0x693C, - 0x97E4, 0x693E, 0x97E5, 0x6940, 0x97E6, 0x6941, 0x97E7, 0x6943, - 0x97E8, 0x6944, 0x97E9, 0x6945, 0x97EA, 0x6946, 0x97EB, 0x6947, - 0x97EC, 0x6948, 0x97ED, 0x6949, 0x97EE, 0x694A, 0x97EF, 0x694B, - 0x97F0, 0x694C, 0x97F1, 0x694D, 0x97F2, 0x694E, 0x97F3, 0x694F, - 0x97F4, 0x6950, 0x97F5, 0x6951, 0x97F6, 0x6952, 0x97F7, 0x6953, - 0x97F8, 0x6955, 0x97F9, 0x6956, 0x97FA, 0x6958, 0x97FB, 0x6959, - 0x97FC, 0x695B, 0x97FD, 0x695C, 0x97FE, 0x695F, 0x9840, 0x6961, - 0x9841, 0x6962, 0x9842, 0x6964, 0x9843, 0x6965, 0x9844, 0x6967, - 0x9845, 0x6968, 0x9846, 0x6969, 0x9847, 0x696A, 0x9848, 0x696C, - 0x9849, 0x696D, 0x984A, 0x696F, 0x984B, 0x6970, 0x984C, 0x6972, - 0x984D, 0x6973, 0x984E, 0x6974, 0x984F, 0x6975, 0x9850, 0x6976, - 0x9851, 0x697A, 0x9852, 0x697B, 0x9853, 0x697D, 0x9854, 0x697E, - 0x9855, 0x697F, 0x9856, 0x6981, 0x9857, 0x6983, 0x9858, 0x6985, - 0x9859, 0x698A, 0x985A, 0x698B, 0x985B, 0x698C, 0x985C, 0x698E, - 0x985D, 0x698F, 0x985E, 0x6990, 0x985F, 0x6991, 0x9860, 0x6992, - 0x9861, 0x6993, 0x9862, 0x6996, 0x9863, 0x6997, 0x9864, 0x6999, - 0x9865, 0x699A, 0x9866, 0x699D, 0x9867, 0x699E, 0x9868, 0x699F, - 0x9869, 0x69A0, 0x986A, 0x69A1, 0x986B, 0x69A2, 0x986C, 0x69A3, - 0x986D, 0x69A4, 0x986E, 0x69A5, 0x986F, 0x69A6, 0x9870, 0x69A9, - 0x9871, 0x69AA, 0x9872, 0x69AC, 0x9873, 0x69AE, 0x9874, 0x69AF, - 0x9875, 0x69B0, 0x9876, 0x69B2, 0x9877, 0x69B3, 0x9878, 0x69B5, - 0x9879, 0x69B6, 0x987A, 0x69B8, 0x987B, 0x69B9, 0x987C, 0x69BA, - 0x987D, 0x69BC, 0x987E, 0x69BD, 0x9880, 0x69BE, 0x9881, 0x69BF, - 0x9882, 0x69C0, 0x9883, 0x69C2, 0x9884, 0x69C3, 0x9885, 0x69C4, - 0x9886, 0x69C5, 0x9887, 0x69C6, 0x9888, 0x69C7, 0x9889, 0x69C8, - 0x988A, 0x69C9, 0x988B, 0x69CB, 0x988C, 0x69CD, 0x988D, 0x69CF, - 0x988E, 0x69D1, 0x988F, 0x69D2, 0x9890, 0x69D3, 0x9891, 0x69D5, - 0x9892, 0x69D6, 0x9893, 0x69D7, 0x9894, 0x69D8, 0x9895, 0x69D9, - 0x9896, 0x69DA, 0x9897, 0x69DC, 0x9898, 0x69DD, 0x9899, 0x69DE, - 0x989A, 0x69E1, 0x989B, 0x69E2, 0x989C, 0x69E3, 0x989D, 0x69E4, - 0x989E, 0x69E5, 0x989F, 0x69E6, 0x98A0, 0x69E7, 0x98A1, 0x69E8, - 0x98A2, 0x69E9, 0x98A3, 0x69EA, 0x98A4, 0x69EB, 0x98A5, 0x69EC, - 0x98A6, 0x69EE, 0x98A7, 0x69EF, 0x98A8, 0x69F0, 0x98A9, 0x69F1, - 0x98AA, 0x69F3, 0x98AB, 0x69F4, 0x98AC, 0x69F5, 0x98AD, 0x69F6, - 0x98AE, 0x69F7, 0x98AF, 0x69F8, 0x98B0, 0x69F9, 0x98B1, 0x69FA, - 0x98B2, 0x69FB, 0x98B3, 0x69FC, 0x98B4, 0x69FE, 0x98B5, 0x6A00, - 0x98B6, 0x6A01, 0x98B7, 0x6A02, 0x98B8, 0x6A03, 0x98B9, 0x6A04, - 0x98BA, 0x6A05, 0x98BB, 0x6A06, 0x98BC, 0x6A07, 0x98BD, 0x6A08, - 0x98BE, 0x6A09, 0x98BF, 0x6A0B, 0x98C0, 0x6A0C, 0x98C1, 0x6A0D, - 0x98C2, 0x6A0E, 0x98C3, 0x6A0F, 0x98C4, 0x6A10, 0x98C5, 0x6A11, - 0x98C6, 0x6A12, 0x98C7, 0x6A13, 0x98C8, 0x6A14, 0x98C9, 0x6A15, - 0x98CA, 0x6A16, 0x98CB, 0x6A19, 0x98CC, 0x6A1A, 0x98CD, 0x6A1B, - 0x98CE, 0x6A1C, 0x98CF, 0x6A1D, 0x98D0, 0x6A1E, 0x98D1, 0x6A20, - 0x98D2, 0x6A22, 0x98D3, 0x6A23, 0x98D4, 0x6A24, 0x98D5, 0x6A25, - 0x98D6, 0x6A26, 0x98D7, 0x6A27, 0x98D8, 0x6A29, 0x98D9, 0x6A2B, - 0x98DA, 0x6A2C, 0x98DB, 0x6A2D, 0x98DC, 0x6A2E, 0x98DD, 0x6A30, - 0x98DE, 0x6A32, 0x98DF, 0x6A33, 0x98E0, 0x6A34, 0x98E1, 0x6A36, - 0x98E2, 0x6A37, 0x98E3, 0x6A38, 0x98E4, 0x6A39, 0x98E5, 0x6A3A, - 0x98E6, 0x6A3B, 0x98E7, 0x6A3C, 0x98E8, 0x6A3F, 0x98E9, 0x6A40, - 0x98EA, 0x6A41, 0x98EB, 0x6A42, 0x98EC, 0x6A43, 0x98ED, 0x6A45, - 0x98EE, 0x6A46, 0x98EF, 0x6A48, 0x98F0, 0x6A49, 0x98F1, 0x6A4A, - 0x98F2, 0x6A4B, 0x98F3, 0x6A4C, 0x98F4, 0x6A4D, 0x98F5, 0x6A4E, - 0x98F6, 0x6A4F, 0x98F7, 0x6A51, 0x98F8, 0x6A52, 0x98F9, 0x6A53, - 0x98FA, 0x6A54, 0x98FB, 0x6A55, 0x98FC, 0x6A56, 0x98FD, 0x6A57, - 0x98FE, 0x6A5A, 0x9940, 0x6A5C, 0x9941, 0x6A5D, 0x9942, 0x6A5E, - 0x9943, 0x6A5F, 0x9944, 0x6A60, 0x9945, 0x6A62, 0x9946, 0x6A63, - 0x9947, 0x6A64, 0x9948, 0x6A66, 0x9949, 0x6A67, 0x994A, 0x6A68, - 0x994B, 0x6A69, 0x994C, 0x6A6A, 0x994D, 0x6A6B, 0x994E, 0x6A6C, - 0x994F, 0x6A6D, 0x9950, 0x6A6E, 0x9951, 0x6A6F, 0x9952, 0x6A70, - 0x9953, 0x6A72, 0x9954, 0x6A73, 0x9955, 0x6A74, 0x9956, 0x6A75, - 0x9957, 0x6A76, 0x9958, 0x6A77, 0x9959, 0x6A78, 0x995A, 0x6A7A, - 0x995B, 0x6A7B, 0x995C, 0x6A7D, 0x995D, 0x6A7E, 0x995E, 0x6A7F, - 0x995F, 0x6A81, 0x9960, 0x6A82, 0x9961, 0x6A83, 0x9962, 0x6A85, - 0x9963, 0x6A86, 0x9964, 0x6A87, 0x9965, 0x6A88, 0x9966, 0x6A89, - 0x9967, 0x6A8A, 0x9968, 0x6A8B, 0x9969, 0x6A8C, 0x996A, 0x6A8D, - 0x996B, 0x6A8F, 0x996C, 0x6A92, 0x996D, 0x6A93, 0x996E, 0x6A94, - 0x996F, 0x6A95, 0x9970, 0x6A96, 0x9971, 0x6A98, 0x9972, 0x6A99, - 0x9973, 0x6A9A, 0x9974, 0x6A9B, 0x9975, 0x6A9C, 0x9976, 0x6A9D, - 0x9977, 0x6A9E, 0x9978, 0x6A9F, 0x9979, 0x6AA1, 0x997A, 0x6AA2, - 0x997B, 0x6AA3, 0x997C, 0x6AA4, 0x997D, 0x6AA5, 0x997E, 0x6AA6, - 0x9980, 0x6AA7, 0x9981, 0x6AA8, 0x9982, 0x6AAA, 0x9983, 0x6AAD, - 0x9984, 0x6AAE, 0x9985, 0x6AAF, 0x9986, 0x6AB0, 0x9987, 0x6AB1, - 0x9988, 0x6AB2, 0x9989, 0x6AB3, 0x998A, 0x6AB4, 0x998B, 0x6AB5, - 0x998C, 0x6AB6, 0x998D, 0x6AB7, 0x998E, 0x6AB8, 0x998F, 0x6AB9, - 0x9990, 0x6ABA, 0x9991, 0x6ABB, 0x9992, 0x6ABC, 0x9993, 0x6ABD, - 0x9994, 0x6ABE, 0x9995, 0x6ABF, 0x9996, 0x6AC0, 0x9997, 0x6AC1, - 0x9998, 0x6AC2, 0x9999, 0x6AC3, 0x999A, 0x6AC4, 0x999B, 0x6AC5, - 0x999C, 0x6AC6, 0x999D, 0x6AC7, 0x999E, 0x6AC8, 0x999F, 0x6AC9, - 0x99A0, 0x6ACA, 0x99A1, 0x6ACB, 0x99A2, 0x6ACC, 0x99A3, 0x6ACD, - 0x99A4, 0x6ACE, 0x99A5, 0x6ACF, 0x99A6, 0x6AD0, 0x99A7, 0x6AD1, - 0x99A8, 0x6AD2, 0x99A9, 0x6AD3, 0x99AA, 0x6AD4, 0x99AB, 0x6AD5, - 0x99AC, 0x6AD6, 0x99AD, 0x6AD7, 0x99AE, 0x6AD8, 0x99AF, 0x6AD9, - 0x99B0, 0x6ADA, 0x99B1, 0x6ADB, 0x99B2, 0x6ADC, 0x99B3, 0x6ADD, - 0x99B4, 0x6ADE, 0x99B5, 0x6ADF, 0x99B6, 0x6AE0, 0x99B7, 0x6AE1, - 0x99B8, 0x6AE2, 0x99B9, 0x6AE3, 0x99BA, 0x6AE4, 0x99BB, 0x6AE5, - 0x99BC, 0x6AE6, 0x99BD, 0x6AE7, 0x99BE, 0x6AE8, 0x99BF, 0x6AE9, - 0x99C0, 0x6AEA, 0x99C1, 0x6AEB, 0x99C2, 0x6AEC, 0x99C3, 0x6AED, - 0x99C4, 0x6AEE, 0x99C5, 0x6AEF, 0x99C6, 0x6AF0, 0x99C7, 0x6AF1, - 0x99C8, 0x6AF2, 0x99C9, 0x6AF3, 0x99CA, 0x6AF4, 0x99CB, 0x6AF5, - 0x99CC, 0x6AF6, 0x99CD, 0x6AF7, 0x99CE, 0x6AF8, 0x99CF, 0x6AF9, - 0x99D0, 0x6AFA, 0x99D1, 0x6AFB, 0x99D2, 0x6AFC, 0x99D3, 0x6AFD, - 0x99D4, 0x6AFE, 0x99D5, 0x6AFF, 0x99D6, 0x6B00, 0x99D7, 0x6B01, - 0x99D8, 0x6B02, 0x99D9, 0x6B03, 0x99DA, 0x6B04, 0x99DB, 0x6B05, - 0x99DC, 0x6B06, 0x99DD, 0x6B07, 0x99DE, 0x6B08, 0x99DF, 0x6B09, - 0x99E0, 0x6B0A, 0x99E1, 0x6B0B, 0x99E2, 0x6B0C, 0x99E3, 0x6B0D, - 0x99E4, 0x6B0E, 0x99E5, 0x6B0F, 0x99E6, 0x6B10, 0x99E7, 0x6B11, - 0x99E8, 0x6B12, 0x99E9, 0x6B13, 0x99EA, 0x6B14, 0x99EB, 0x6B15, - 0x99EC, 0x6B16, 0x99ED, 0x6B17, 0x99EE, 0x6B18, 0x99EF, 0x6B19, - 0x99F0, 0x6B1A, 0x99F1, 0x6B1B, 0x99F2, 0x6B1C, 0x99F3, 0x6B1D, - 0x99F4, 0x6B1E, 0x99F5, 0x6B1F, 0x99F6, 0x6B25, 0x99F7, 0x6B26, - 0x99F8, 0x6B28, 0x99F9, 0x6B29, 0x99FA, 0x6B2A, 0x99FB, 0x6B2B, - 0x99FC, 0x6B2C, 0x99FD, 0x6B2D, 0x99FE, 0x6B2E, 0x9A40, 0x6B2F, - 0x9A41, 0x6B30, 0x9A42, 0x6B31, 0x9A43, 0x6B33, 0x9A44, 0x6B34, - 0x9A45, 0x6B35, 0x9A46, 0x6B36, 0x9A47, 0x6B38, 0x9A48, 0x6B3B, - 0x9A49, 0x6B3C, 0x9A4A, 0x6B3D, 0x9A4B, 0x6B3F, 0x9A4C, 0x6B40, - 0x9A4D, 0x6B41, 0x9A4E, 0x6B42, 0x9A4F, 0x6B44, 0x9A50, 0x6B45, - 0x9A51, 0x6B48, 0x9A52, 0x6B4A, 0x9A53, 0x6B4B, 0x9A54, 0x6B4D, - 0x9A55, 0x6B4E, 0x9A56, 0x6B4F, 0x9A57, 0x6B50, 0x9A58, 0x6B51, - 0x9A59, 0x6B52, 0x9A5A, 0x6B53, 0x9A5B, 0x6B54, 0x9A5C, 0x6B55, - 0x9A5D, 0x6B56, 0x9A5E, 0x6B57, 0x9A5F, 0x6B58, 0x9A60, 0x6B5A, - 0x9A61, 0x6B5B, 0x9A62, 0x6B5C, 0x9A63, 0x6B5D, 0x9A64, 0x6B5E, - 0x9A65, 0x6B5F, 0x9A66, 0x6B60, 0x9A67, 0x6B61, 0x9A68, 0x6B68, - 0x9A69, 0x6B69, 0x9A6A, 0x6B6B, 0x9A6B, 0x6B6C, 0x9A6C, 0x6B6D, - 0x9A6D, 0x6B6E, 0x9A6E, 0x6B6F, 0x9A6F, 0x6B70, 0x9A70, 0x6B71, - 0x9A71, 0x6B72, 0x9A72, 0x6B73, 0x9A73, 0x6B74, 0x9A74, 0x6B75, - 0x9A75, 0x6B76, 0x9A76, 0x6B77, 0x9A77, 0x6B78, 0x9A78, 0x6B7A, - 0x9A79, 0x6B7D, 0x9A7A, 0x6B7E, 0x9A7B, 0x6B7F, 0x9A7C, 0x6B80, - 0x9A7D, 0x6B85, 0x9A7E, 0x6B88, 0x9A80, 0x6B8C, 0x9A81, 0x6B8E, - 0x9A82, 0x6B8F, 0x9A83, 0x6B90, 0x9A84, 0x6B91, 0x9A85, 0x6B94, - 0x9A86, 0x6B95, 0x9A87, 0x6B97, 0x9A88, 0x6B98, 0x9A89, 0x6B99, - 0x9A8A, 0x6B9C, 0x9A8B, 0x6B9D, 0x9A8C, 0x6B9E, 0x9A8D, 0x6B9F, - 0x9A8E, 0x6BA0, 0x9A8F, 0x6BA2, 0x9A90, 0x6BA3, 0x9A91, 0x6BA4, - 0x9A92, 0x6BA5, 0x9A93, 0x6BA6, 0x9A94, 0x6BA7, 0x9A95, 0x6BA8, - 0x9A96, 0x6BA9, 0x9A97, 0x6BAB, 0x9A98, 0x6BAC, 0x9A99, 0x6BAD, - 0x9A9A, 0x6BAE, 0x9A9B, 0x6BAF, 0x9A9C, 0x6BB0, 0x9A9D, 0x6BB1, - 0x9A9E, 0x6BB2, 0x9A9F, 0x6BB6, 0x9AA0, 0x6BB8, 0x9AA1, 0x6BB9, - 0x9AA2, 0x6BBA, 0x9AA3, 0x6BBB, 0x9AA4, 0x6BBC, 0x9AA5, 0x6BBD, - 0x9AA6, 0x6BBE, 0x9AA7, 0x6BC0, 0x9AA8, 0x6BC3, 0x9AA9, 0x6BC4, - 0x9AAA, 0x6BC6, 0x9AAB, 0x6BC7, 0x9AAC, 0x6BC8, 0x9AAD, 0x6BC9, - 0x9AAE, 0x6BCA, 0x9AAF, 0x6BCC, 0x9AB0, 0x6BCE, 0x9AB1, 0x6BD0, - 0x9AB2, 0x6BD1, 0x9AB3, 0x6BD8, 0x9AB4, 0x6BDA, 0x9AB5, 0x6BDC, - 0x9AB6, 0x6BDD, 0x9AB7, 0x6BDE, 0x9AB8, 0x6BDF, 0x9AB9, 0x6BE0, - 0x9ABA, 0x6BE2, 0x9ABB, 0x6BE3, 0x9ABC, 0x6BE4, 0x9ABD, 0x6BE5, - 0x9ABE, 0x6BE6, 0x9ABF, 0x6BE7, 0x9AC0, 0x6BE8, 0x9AC1, 0x6BE9, - 0x9AC2, 0x6BEC, 0x9AC3, 0x6BED, 0x9AC4, 0x6BEE, 0x9AC5, 0x6BF0, - 0x9AC6, 0x6BF1, 0x9AC7, 0x6BF2, 0x9AC8, 0x6BF4, 0x9AC9, 0x6BF6, - 0x9ACA, 0x6BF7, 0x9ACB, 0x6BF8, 0x9ACC, 0x6BFA, 0x9ACD, 0x6BFB, - 0x9ACE, 0x6BFC, 0x9ACF, 0x6BFE, 0x9AD0, 0x6BFF, 0x9AD1, 0x6C00, - 0x9AD2, 0x6C01, 0x9AD3, 0x6C02, 0x9AD4, 0x6C03, 0x9AD5, 0x6C04, - 0x9AD6, 0x6C08, 0x9AD7, 0x6C09, 0x9AD8, 0x6C0A, 0x9AD9, 0x6C0B, - 0x9ADA, 0x6C0C, 0x9ADB, 0x6C0E, 0x9ADC, 0x6C12, 0x9ADD, 0x6C17, - 0x9ADE, 0x6C1C, 0x9ADF, 0x6C1D, 0x9AE0, 0x6C1E, 0x9AE1, 0x6C20, - 0x9AE2, 0x6C23, 0x9AE3, 0x6C25, 0x9AE4, 0x6C2B, 0x9AE5, 0x6C2C, - 0x9AE6, 0x6C2D, 0x9AE7, 0x6C31, 0x9AE8, 0x6C33, 0x9AE9, 0x6C36, - 0x9AEA, 0x6C37, 0x9AEB, 0x6C39, 0x9AEC, 0x6C3A, 0x9AED, 0x6C3B, - 0x9AEE, 0x6C3C, 0x9AEF, 0x6C3E, 0x9AF0, 0x6C3F, 0x9AF1, 0x6C43, - 0x9AF2, 0x6C44, 0x9AF3, 0x6C45, 0x9AF4, 0x6C48, 0x9AF5, 0x6C4B, - 0x9AF6, 0x6C4C, 0x9AF7, 0x6C4D, 0x9AF8, 0x6C4E, 0x9AF9, 0x6C4F, - 0x9AFA, 0x6C51, 0x9AFB, 0x6C52, 0x9AFC, 0x6C53, 0x9AFD, 0x6C56, - 0x9AFE, 0x6C58, 0x9B40, 0x6C59, 0x9B41, 0x6C5A, 0x9B42, 0x6C62, - 0x9B43, 0x6C63, 0x9B44, 0x6C65, 0x9B45, 0x6C66, 0x9B46, 0x6C67, - 0x9B47, 0x6C6B, 0x9B48, 0x6C6C, 0x9B49, 0x6C6D, 0x9B4A, 0x6C6E, - 0x9B4B, 0x6C6F, 0x9B4C, 0x6C71, 0x9B4D, 0x6C73, 0x9B4E, 0x6C75, - 0x9B4F, 0x6C77, 0x9B50, 0x6C78, 0x9B51, 0x6C7A, 0x9B52, 0x6C7B, - 0x9B53, 0x6C7C, 0x9B54, 0x6C7F, 0x9B55, 0x6C80, 0x9B56, 0x6C84, - 0x9B57, 0x6C87, 0x9B58, 0x6C8A, 0x9B59, 0x6C8B, 0x9B5A, 0x6C8D, - 0x9B5B, 0x6C8E, 0x9B5C, 0x6C91, 0x9B5D, 0x6C92, 0x9B5E, 0x6C95, - 0x9B5F, 0x6C96, 0x9B60, 0x6C97, 0x9B61, 0x6C98, 0x9B62, 0x6C9A, - 0x9B63, 0x6C9C, 0x9B64, 0x6C9D, 0x9B65, 0x6C9E, 0x9B66, 0x6CA0, - 0x9B67, 0x6CA2, 0x9B68, 0x6CA8, 0x9B69, 0x6CAC, 0x9B6A, 0x6CAF, - 0x9B6B, 0x6CB0, 0x9B6C, 0x6CB4, 0x9B6D, 0x6CB5, 0x9B6E, 0x6CB6, - 0x9B6F, 0x6CB7, 0x9B70, 0x6CBA, 0x9B71, 0x6CC0, 0x9B72, 0x6CC1, - 0x9B73, 0x6CC2, 0x9B74, 0x6CC3, 0x9B75, 0x6CC6, 0x9B76, 0x6CC7, - 0x9B77, 0x6CC8, 0x9B78, 0x6CCB, 0x9B79, 0x6CCD, 0x9B7A, 0x6CCE, - 0x9B7B, 0x6CCF, 0x9B7C, 0x6CD1, 0x9B7D, 0x6CD2, 0x9B7E, 0x6CD8, - 0x9B80, 0x6CD9, 0x9B81, 0x6CDA, 0x9B82, 0x6CDC, 0x9B83, 0x6CDD, - 0x9B84, 0x6CDF, 0x9B85, 0x6CE4, 0x9B86, 0x6CE6, 0x9B87, 0x6CE7, - 0x9B88, 0x6CE9, 0x9B89, 0x6CEC, 0x9B8A, 0x6CED, 0x9B8B, 0x6CF2, - 0x9B8C, 0x6CF4, 0x9B8D, 0x6CF9, 0x9B8E, 0x6CFF, 0x9B8F, 0x6D00, - 0x9B90, 0x6D02, 0x9B91, 0x6D03, 0x9B92, 0x6D05, 0x9B93, 0x6D06, - 0x9B94, 0x6D08, 0x9B95, 0x6D09, 0x9B96, 0x6D0A, 0x9B97, 0x6D0D, - 0x9B98, 0x6D0F, 0x9B99, 0x6D10, 0x9B9A, 0x6D11, 0x9B9B, 0x6D13, - 0x9B9C, 0x6D14, 0x9B9D, 0x6D15, 0x9B9E, 0x6D16, 0x9B9F, 0x6D18, - 0x9BA0, 0x6D1C, 0x9BA1, 0x6D1D, 0x9BA2, 0x6D1F, 0x9BA3, 0x6D20, - 0x9BA4, 0x6D21, 0x9BA5, 0x6D22, 0x9BA6, 0x6D23, 0x9BA7, 0x6D24, - 0x9BA8, 0x6D26, 0x9BA9, 0x6D28, 0x9BAA, 0x6D29, 0x9BAB, 0x6D2C, - 0x9BAC, 0x6D2D, 0x9BAD, 0x6D2F, 0x9BAE, 0x6D30, 0x9BAF, 0x6D34, - 0x9BB0, 0x6D36, 0x9BB1, 0x6D37, 0x9BB2, 0x6D38, 0x9BB3, 0x6D3A, - 0x9BB4, 0x6D3F, 0x9BB5, 0x6D40, 0x9BB6, 0x6D42, 0x9BB7, 0x6D44, - 0x9BB8, 0x6D49, 0x9BB9, 0x6D4C, 0x9BBA, 0x6D50, 0x9BBB, 0x6D55, - 0x9BBC, 0x6D56, 0x9BBD, 0x6D57, 0x9BBE, 0x6D58, 0x9BBF, 0x6D5B, - 0x9BC0, 0x6D5D, 0x9BC1, 0x6D5F, 0x9BC2, 0x6D61, 0x9BC3, 0x6D62, - 0x9BC4, 0x6D64, 0x9BC5, 0x6D65, 0x9BC6, 0x6D67, 0x9BC7, 0x6D68, - 0x9BC8, 0x6D6B, 0x9BC9, 0x6D6C, 0x9BCA, 0x6D6D, 0x9BCB, 0x6D70, - 0x9BCC, 0x6D71, 0x9BCD, 0x6D72, 0x9BCE, 0x6D73, 0x9BCF, 0x6D75, - 0x9BD0, 0x6D76, 0x9BD1, 0x6D79, 0x9BD2, 0x6D7A, 0x9BD3, 0x6D7B, - 0x9BD4, 0x6D7D, 0x9BD5, 0x6D7E, 0x9BD6, 0x6D7F, 0x9BD7, 0x6D80, - 0x9BD8, 0x6D81, 0x9BD9, 0x6D83, 0x9BDA, 0x6D84, 0x9BDB, 0x6D86, - 0x9BDC, 0x6D87, 0x9BDD, 0x6D8A, 0x9BDE, 0x6D8B, 0x9BDF, 0x6D8D, - 0x9BE0, 0x6D8F, 0x9BE1, 0x6D90, 0x9BE2, 0x6D92, 0x9BE3, 0x6D96, - 0x9BE4, 0x6D97, 0x9BE5, 0x6D98, 0x9BE6, 0x6D99, 0x9BE7, 0x6D9A, - 0x9BE8, 0x6D9C, 0x9BE9, 0x6DA2, 0x9BEA, 0x6DA5, 0x9BEB, 0x6DAC, - 0x9BEC, 0x6DAD, 0x9BED, 0x6DB0, 0x9BEE, 0x6DB1, 0x9BEF, 0x6DB3, - 0x9BF0, 0x6DB4, 0x9BF1, 0x6DB6, 0x9BF2, 0x6DB7, 0x9BF3, 0x6DB9, - 0x9BF4, 0x6DBA, 0x9BF5, 0x6DBB, 0x9BF6, 0x6DBC, 0x9BF7, 0x6DBD, - 0x9BF8, 0x6DBE, 0x9BF9, 0x6DC1, 0x9BFA, 0x6DC2, 0x9BFB, 0x6DC3, - 0x9BFC, 0x6DC8, 0x9BFD, 0x6DC9, 0x9BFE, 0x6DCA, 0x9C40, 0x6DCD, - 0x9C41, 0x6DCE, 0x9C42, 0x6DCF, 0x9C43, 0x6DD0, 0x9C44, 0x6DD2, - 0x9C45, 0x6DD3, 0x9C46, 0x6DD4, 0x9C47, 0x6DD5, 0x9C48, 0x6DD7, - 0x9C49, 0x6DDA, 0x9C4A, 0x6DDB, 0x9C4B, 0x6DDC, 0x9C4C, 0x6DDF, - 0x9C4D, 0x6DE2, 0x9C4E, 0x6DE3, 0x9C4F, 0x6DE5, 0x9C50, 0x6DE7, - 0x9C51, 0x6DE8, 0x9C52, 0x6DE9, 0x9C53, 0x6DEA, 0x9C54, 0x6DED, - 0x9C55, 0x6DEF, 0x9C56, 0x6DF0, 0x9C57, 0x6DF2, 0x9C58, 0x6DF4, - 0x9C59, 0x6DF5, 0x9C5A, 0x6DF6, 0x9C5B, 0x6DF8, 0x9C5C, 0x6DFA, - 0x9C5D, 0x6DFD, 0x9C5E, 0x6DFE, 0x9C5F, 0x6DFF, 0x9C60, 0x6E00, - 0x9C61, 0x6E01, 0x9C62, 0x6E02, 0x9C63, 0x6E03, 0x9C64, 0x6E04, - 0x9C65, 0x6E06, 0x9C66, 0x6E07, 0x9C67, 0x6E08, 0x9C68, 0x6E09, - 0x9C69, 0x6E0B, 0x9C6A, 0x6E0F, 0x9C6B, 0x6E12, 0x9C6C, 0x6E13, - 0x9C6D, 0x6E15, 0x9C6E, 0x6E18, 0x9C6F, 0x6E19, 0x9C70, 0x6E1B, - 0x9C71, 0x6E1C, 0x9C72, 0x6E1E, 0x9C73, 0x6E1F, 0x9C74, 0x6E22, - 0x9C75, 0x6E26, 0x9C76, 0x6E27, 0x9C77, 0x6E28, 0x9C78, 0x6E2A, - 0x9C79, 0x6E2C, 0x9C7A, 0x6E2E, 0x9C7B, 0x6E30, 0x9C7C, 0x6E31, - 0x9C7D, 0x6E33, 0x9C7E, 0x6E35, 0x9C80, 0x6E36, 0x9C81, 0x6E37, - 0x9C82, 0x6E39, 0x9C83, 0x6E3B, 0x9C84, 0x6E3C, 0x9C85, 0x6E3D, - 0x9C86, 0x6E3E, 0x9C87, 0x6E3F, 0x9C88, 0x6E40, 0x9C89, 0x6E41, - 0x9C8A, 0x6E42, 0x9C8B, 0x6E45, 0x9C8C, 0x6E46, 0x9C8D, 0x6E47, - 0x9C8E, 0x6E48, 0x9C8F, 0x6E49, 0x9C90, 0x6E4A, 0x9C91, 0x6E4B, - 0x9C92, 0x6E4C, 0x9C93, 0x6E4F, 0x9C94, 0x6E50, 0x9C95, 0x6E51, - 0x9C96, 0x6E52, 0x9C97, 0x6E55, 0x9C98, 0x6E57, 0x9C99, 0x6E59, - 0x9C9A, 0x6E5A, 0x9C9B, 0x6E5C, 0x9C9C, 0x6E5D, 0x9C9D, 0x6E5E, - 0x9C9E, 0x6E60, 0x9C9F, 0x6E61, 0x9CA0, 0x6E62, 0x9CA1, 0x6E63, - 0x9CA2, 0x6E64, 0x9CA3, 0x6E65, 0x9CA4, 0x6E66, 0x9CA5, 0x6E67, - 0x9CA6, 0x6E68, 0x9CA7, 0x6E69, 0x9CA8, 0x6E6A, 0x9CA9, 0x6E6C, - 0x9CAA, 0x6E6D, 0x9CAB, 0x6E6F, 0x9CAC, 0x6E70, 0x9CAD, 0x6E71, - 0x9CAE, 0x6E72, 0x9CAF, 0x6E73, 0x9CB0, 0x6E74, 0x9CB1, 0x6E75, - 0x9CB2, 0x6E76, 0x9CB3, 0x6E77, 0x9CB4, 0x6E78, 0x9CB5, 0x6E79, - 0x9CB6, 0x6E7A, 0x9CB7, 0x6E7B, 0x9CB8, 0x6E7C, 0x9CB9, 0x6E7D, - 0x9CBA, 0x6E80, 0x9CBB, 0x6E81, 0x9CBC, 0x6E82, 0x9CBD, 0x6E84, - 0x9CBE, 0x6E87, 0x9CBF, 0x6E88, 0x9CC0, 0x6E8A, 0x9CC1, 0x6E8B, - 0x9CC2, 0x6E8C, 0x9CC3, 0x6E8D, 0x9CC4, 0x6E8E, 0x9CC5, 0x6E91, - 0x9CC6, 0x6E92, 0x9CC7, 0x6E93, 0x9CC8, 0x6E94, 0x9CC9, 0x6E95, - 0x9CCA, 0x6E96, 0x9CCB, 0x6E97, 0x9CCC, 0x6E99, 0x9CCD, 0x6E9A, - 0x9CCE, 0x6E9B, 0x9CCF, 0x6E9D, 0x9CD0, 0x6E9E, 0x9CD1, 0x6EA0, - 0x9CD2, 0x6EA1, 0x9CD3, 0x6EA3, 0x9CD4, 0x6EA4, 0x9CD5, 0x6EA6, - 0x9CD6, 0x6EA8, 0x9CD7, 0x6EA9, 0x9CD8, 0x6EAB, 0x9CD9, 0x6EAC, - 0x9CDA, 0x6EAD, 0x9CDB, 0x6EAE, 0x9CDC, 0x6EB0, 0x9CDD, 0x6EB3, - 0x9CDE, 0x6EB5, 0x9CDF, 0x6EB8, 0x9CE0, 0x6EB9, 0x9CE1, 0x6EBC, - 0x9CE2, 0x6EBE, 0x9CE3, 0x6EBF, 0x9CE4, 0x6EC0, 0x9CE5, 0x6EC3, - 0x9CE6, 0x6EC4, 0x9CE7, 0x6EC5, 0x9CE8, 0x6EC6, 0x9CE9, 0x6EC8, - 0x9CEA, 0x6EC9, 0x9CEB, 0x6ECA, 0x9CEC, 0x6ECC, 0x9CED, 0x6ECD, - 0x9CEE, 0x6ECE, 0x9CEF, 0x6ED0, 0x9CF0, 0x6ED2, 0x9CF1, 0x6ED6, - 0x9CF2, 0x6ED8, 0x9CF3, 0x6ED9, 0x9CF4, 0x6EDB, 0x9CF5, 0x6EDC, - 0x9CF6, 0x6EDD, 0x9CF7, 0x6EE3, 0x9CF8, 0x6EE7, 0x9CF9, 0x6EEA, - 0x9CFA, 0x6EEB, 0x9CFB, 0x6EEC, 0x9CFC, 0x6EED, 0x9CFD, 0x6EEE, - 0x9CFE, 0x6EEF, 0x9D40, 0x6EF0, 0x9D41, 0x6EF1, 0x9D42, 0x6EF2, - 0x9D43, 0x6EF3, 0x9D44, 0x6EF5, 0x9D45, 0x6EF6, 0x9D46, 0x6EF7, - 0x9D47, 0x6EF8, 0x9D48, 0x6EFA, 0x9D49, 0x6EFB, 0x9D4A, 0x6EFC, - 0x9D4B, 0x6EFD, 0x9D4C, 0x6EFE, 0x9D4D, 0x6EFF, 0x9D4E, 0x6F00, - 0x9D4F, 0x6F01, 0x9D50, 0x6F03, 0x9D51, 0x6F04, 0x9D52, 0x6F05, - 0x9D53, 0x6F07, 0x9D54, 0x6F08, 0x9D55, 0x6F0A, 0x9D56, 0x6F0B, - 0x9D57, 0x6F0C, 0x9D58, 0x6F0D, 0x9D59, 0x6F0E, 0x9D5A, 0x6F10, - 0x9D5B, 0x6F11, 0x9D5C, 0x6F12, 0x9D5D, 0x6F16, 0x9D5E, 0x6F17, - 0x9D5F, 0x6F18, 0x9D60, 0x6F19, 0x9D61, 0x6F1A, 0x9D62, 0x6F1B, - 0x9D63, 0x6F1C, 0x9D64, 0x6F1D, 0x9D65, 0x6F1E, 0x9D66, 0x6F1F, - 0x9D67, 0x6F21, 0x9D68, 0x6F22, 0x9D69, 0x6F23, 0x9D6A, 0x6F25, - 0x9D6B, 0x6F26, 0x9D6C, 0x6F27, 0x9D6D, 0x6F28, 0x9D6E, 0x6F2C, - 0x9D6F, 0x6F2E, 0x9D70, 0x6F30, 0x9D71, 0x6F32, 0x9D72, 0x6F34, - 0x9D73, 0x6F35, 0x9D74, 0x6F37, 0x9D75, 0x6F38, 0x9D76, 0x6F39, - 0x9D77, 0x6F3A, 0x9D78, 0x6F3B, 0x9D79, 0x6F3C, 0x9D7A, 0x6F3D, - 0x9D7B, 0x6F3F, 0x9D7C, 0x6F40, 0x9D7D, 0x6F41, 0x9D7E, 0x6F42, - 0x9D80, 0x6F43, 0x9D81, 0x6F44, 0x9D82, 0x6F45, 0x9D83, 0x6F48, - 0x9D84, 0x6F49, 0x9D85, 0x6F4A, 0x9D86, 0x6F4C, 0x9D87, 0x6F4E, - 0x9D88, 0x6F4F, 0x9D89, 0x6F50, 0x9D8A, 0x6F51, 0x9D8B, 0x6F52, - 0x9D8C, 0x6F53, 0x9D8D, 0x6F54, 0x9D8E, 0x6F55, 0x9D8F, 0x6F56, - 0x9D90, 0x6F57, 0x9D91, 0x6F59, 0x9D92, 0x6F5A, 0x9D93, 0x6F5B, - 0x9D94, 0x6F5D, 0x9D95, 0x6F5F, 0x9D96, 0x6F60, 0x9D97, 0x6F61, - 0x9D98, 0x6F63, 0x9D99, 0x6F64, 0x9D9A, 0x6F65, 0x9D9B, 0x6F67, - 0x9D9C, 0x6F68, 0x9D9D, 0x6F69, 0x9D9E, 0x6F6A, 0x9D9F, 0x6F6B, - 0x9DA0, 0x6F6C, 0x9DA1, 0x6F6F, 0x9DA2, 0x6F70, 0x9DA3, 0x6F71, - 0x9DA4, 0x6F73, 0x9DA5, 0x6F75, 0x9DA6, 0x6F76, 0x9DA7, 0x6F77, - 0x9DA8, 0x6F79, 0x9DA9, 0x6F7B, 0x9DAA, 0x6F7D, 0x9DAB, 0x6F7E, - 0x9DAC, 0x6F7F, 0x9DAD, 0x6F80, 0x9DAE, 0x6F81, 0x9DAF, 0x6F82, - 0x9DB0, 0x6F83, 0x9DB1, 0x6F85, 0x9DB2, 0x6F86, 0x9DB3, 0x6F87, - 0x9DB4, 0x6F8A, 0x9DB5, 0x6F8B, 0x9DB6, 0x6F8F, 0x9DB7, 0x6F90, - 0x9DB8, 0x6F91, 0x9DB9, 0x6F92, 0x9DBA, 0x6F93, 0x9DBB, 0x6F94, - 0x9DBC, 0x6F95, 0x9DBD, 0x6F96, 0x9DBE, 0x6F97, 0x9DBF, 0x6F98, - 0x9DC0, 0x6F99, 0x9DC1, 0x6F9A, 0x9DC2, 0x6F9B, 0x9DC3, 0x6F9D, - 0x9DC4, 0x6F9E, 0x9DC5, 0x6F9F, 0x9DC6, 0x6FA0, 0x9DC7, 0x6FA2, - 0x9DC8, 0x6FA3, 0x9DC9, 0x6FA4, 0x9DCA, 0x6FA5, 0x9DCB, 0x6FA6, - 0x9DCC, 0x6FA8, 0x9DCD, 0x6FA9, 0x9DCE, 0x6FAA, 0x9DCF, 0x6FAB, - 0x9DD0, 0x6FAC, 0x9DD1, 0x6FAD, 0x9DD2, 0x6FAE, 0x9DD3, 0x6FAF, - 0x9DD4, 0x6FB0, 0x9DD5, 0x6FB1, 0x9DD6, 0x6FB2, 0x9DD7, 0x6FB4, - 0x9DD8, 0x6FB5, 0x9DD9, 0x6FB7, 0x9DDA, 0x6FB8, 0x9DDB, 0x6FBA, - 0x9DDC, 0x6FBB, 0x9DDD, 0x6FBC, 0x9DDE, 0x6FBD, 0x9DDF, 0x6FBE, - 0x9DE0, 0x6FBF, 0x9DE1, 0x6FC1, 0x9DE2, 0x6FC3, 0x9DE3, 0x6FC4, - 0x9DE4, 0x6FC5, 0x9DE5, 0x6FC6, 0x9DE6, 0x6FC7, 0x9DE7, 0x6FC8, - 0x9DE8, 0x6FCA, 0x9DE9, 0x6FCB, 0x9DEA, 0x6FCC, 0x9DEB, 0x6FCD, - 0x9DEC, 0x6FCE, 0x9DED, 0x6FCF, 0x9DEE, 0x6FD0, 0x9DEF, 0x6FD3, - 0x9DF0, 0x6FD4, 0x9DF1, 0x6FD5, 0x9DF2, 0x6FD6, 0x9DF3, 0x6FD7, - 0x9DF4, 0x6FD8, 0x9DF5, 0x6FD9, 0x9DF6, 0x6FDA, 0x9DF7, 0x6FDB, - 0x9DF8, 0x6FDC, 0x9DF9, 0x6FDD, 0x9DFA, 0x6FDF, 0x9DFB, 0x6FE2, - 0x9DFC, 0x6FE3, 0x9DFD, 0x6FE4, 0x9DFE, 0x6FE5, 0x9E40, 0x6FE6, - 0x9E41, 0x6FE7, 0x9E42, 0x6FE8, 0x9E43, 0x6FE9, 0x9E44, 0x6FEA, - 0x9E45, 0x6FEB, 0x9E46, 0x6FEC, 0x9E47, 0x6FED, 0x9E48, 0x6FF0, - 0x9E49, 0x6FF1, 0x9E4A, 0x6FF2, 0x9E4B, 0x6FF3, 0x9E4C, 0x6FF4, - 0x9E4D, 0x6FF5, 0x9E4E, 0x6FF6, 0x9E4F, 0x6FF7, 0x9E50, 0x6FF8, - 0x9E51, 0x6FF9, 0x9E52, 0x6FFA, 0x9E53, 0x6FFB, 0x9E54, 0x6FFC, - 0x9E55, 0x6FFD, 0x9E56, 0x6FFE, 0x9E57, 0x6FFF, 0x9E58, 0x7000, - 0x9E59, 0x7001, 0x9E5A, 0x7002, 0x9E5B, 0x7003, 0x9E5C, 0x7004, - 0x9E5D, 0x7005, 0x9E5E, 0x7006, 0x9E5F, 0x7007, 0x9E60, 0x7008, - 0x9E61, 0x7009, 0x9E62, 0x700A, 0x9E63, 0x700B, 0x9E64, 0x700C, - 0x9E65, 0x700D, 0x9E66, 0x700E, 0x9E67, 0x700F, 0x9E68, 0x7010, - 0x9E69, 0x7012, 0x9E6A, 0x7013, 0x9E6B, 0x7014, 0x9E6C, 0x7015, - 0x9E6D, 0x7016, 0x9E6E, 0x7017, 0x9E6F, 0x7018, 0x9E70, 0x7019, - 0x9E71, 0x701C, 0x9E72, 0x701D, 0x9E73, 0x701E, 0x9E74, 0x701F, - 0x9E75, 0x7020, 0x9E76, 0x7021, 0x9E77, 0x7022, 0x9E78, 0x7024, - 0x9E79, 0x7025, 0x9E7A, 0x7026, 0x9E7B, 0x7027, 0x9E7C, 0x7028, - 0x9E7D, 0x7029, 0x9E7E, 0x702A, 0x9E80, 0x702B, 0x9E81, 0x702C, - 0x9E82, 0x702D, 0x9E83, 0x702E, 0x9E84, 0x702F, 0x9E85, 0x7030, - 0x9E86, 0x7031, 0x9E87, 0x7032, 0x9E88, 0x7033, 0x9E89, 0x7034, - 0x9E8A, 0x7036, 0x9E8B, 0x7037, 0x9E8C, 0x7038, 0x9E8D, 0x703A, - 0x9E8E, 0x703B, 0x9E8F, 0x703C, 0x9E90, 0x703D, 0x9E91, 0x703E, - 0x9E92, 0x703F, 0x9E93, 0x7040, 0x9E94, 0x7041, 0x9E95, 0x7042, - 0x9E96, 0x7043, 0x9E97, 0x7044, 0x9E98, 0x7045, 0x9E99, 0x7046, - 0x9E9A, 0x7047, 0x9E9B, 0x7048, 0x9E9C, 0x7049, 0x9E9D, 0x704A, - 0x9E9E, 0x704B, 0x9E9F, 0x704D, 0x9EA0, 0x704E, 0x9EA1, 0x7050, - 0x9EA2, 0x7051, 0x9EA3, 0x7052, 0x9EA4, 0x7053, 0x9EA5, 0x7054, - 0x9EA6, 0x7055, 0x9EA7, 0x7056, 0x9EA8, 0x7057, 0x9EA9, 0x7058, - 0x9EAA, 0x7059, 0x9EAB, 0x705A, 0x9EAC, 0x705B, 0x9EAD, 0x705C, - 0x9EAE, 0x705D, 0x9EAF, 0x705F, 0x9EB0, 0x7060, 0x9EB1, 0x7061, - 0x9EB2, 0x7062, 0x9EB3, 0x7063, 0x9EB4, 0x7064, 0x9EB5, 0x7065, - 0x9EB6, 0x7066, 0x9EB7, 0x7067, 0x9EB8, 0x7068, 0x9EB9, 0x7069, - 0x9EBA, 0x706A, 0x9EBB, 0x706E, 0x9EBC, 0x7071, 0x9EBD, 0x7072, - 0x9EBE, 0x7073, 0x9EBF, 0x7074, 0x9EC0, 0x7077, 0x9EC1, 0x7079, - 0x9EC2, 0x707A, 0x9EC3, 0x707B, 0x9EC4, 0x707D, 0x9EC5, 0x7081, - 0x9EC6, 0x7082, 0x9EC7, 0x7083, 0x9EC8, 0x7084, 0x9EC9, 0x7086, - 0x9ECA, 0x7087, 0x9ECB, 0x7088, 0x9ECC, 0x708B, 0x9ECD, 0x708C, - 0x9ECE, 0x708D, 0x9ECF, 0x708F, 0x9ED0, 0x7090, 0x9ED1, 0x7091, - 0x9ED2, 0x7093, 0x9ED3, 0x7097, 0x9ED4, 0x7098, 0x9ED5, 0x709A, - 0x9ED6, 0x709B, 0x9ED7, 0x709E, 0x9ED8, 0x709F, 0x9ED9, 0x70A0, - 0x9EDA, 0x70A1, 0x9EDB, 0x70A2, 0x9EDC, 0x70A3, 0x9EDD, 0x70A4, - 0x9EDE, 0x70A5, 0x9EDF, 0x70A6, 0x9EE0, 0x70A7, 0x9EE1, 0x70A8, - 0x9EE2, 0x70A9, 0x9EE3, 0x70AA, 0x9EE4, 0x70B0, 0x9EE5, 0x70B2, - 0x9EE6, 0x70B4, 0x9EE7, 0x70B5, 0x9EE8, 0x70B6, 0x9EE9, 0x70BA, - 0x9EEA, 0x70BE, 0x9EEB, 0x70BF, 0x9EEC, 0x70C4, 0x9EED, 0x70C5, - 0x9EEE, 0x70C6, 0x9EEF, 0x70C7, 0x9EF0, 0x70C9, 0x9EF1, 0x70CB, - 0x9EF2, 0x70CC, 0x9EF3, 0x70CD, 0x9EF4, 0x70CE, 0x9EF5, 0x70CF, - 0x9EF6, 0x70D0, 0x9EF7, 0x70D1, 0x9EF8, 0x70D2, 0x9EF9, 0x70D3, - 0x9EFA, 0x70D4, 0x9EFB, 0x70D5, 0x9EFC, 0x70D6, 0x9EFD, 0x70D7, - 0x9EFE, 0x70DA, 0x9F40, 0x70DC, 0x9F41, 0x70DD, 0x9F42, 0x70DE, - 0x9F43, 0x70E0, 0x9F44, 0x70E1, 0x9F45, 0x70E2, 0x9F46, 0x70E3, - 0x9F47, 0x70E5, 0x9F48, 0x70EA, 0x9F49, 0x70EE, 0x9F4A, 0x70F0, - 0x9F4B, 0x70F1, 0x9F4C, 0x70F2, 0x9F4D, 0x70F3, 0x9F4E, 0x70F4, - 0x9F4F, 0x70F5, 0x9F50, 0x70F6, 0x9F51, 0x70F8, 0x9F52, 0x70FA, - 0x9F53, 0x70FB, 0x9F54, 0x70FC, 0x9F55, 0x70FE, 0x9F56, 0x70FF, - 0x9F57, 0x7100, 0x9F58, 0x7101, 0x9F59, 0x7102, 0x9F5A, 0x7103, - 0x9F5B, 0x7104, 0x9F5C, 0x7105, 0x9F5D, 0x7106, 0x9F5E, 0x7107, - 0x9F5F, 0x7108, 0x9F60, 0x710B, 0x9F61, 0x710C, 0x9F62, 0x710D, - 0x9F63, 0x710E, 0x9F64, 0x710F, 0x9F65, 0x7111, 0x9F66, 0x7112, - 0x9F67, 0x7114, 0x9F68, 0x7117, 0x9F69, 0x711B, 0x9F6A, 0x711C, - 0x9F6B, 0x711D, 0x9F6C, 0x711E, 0x9F6D, 0x711F, 0x9F6E, 0x7120, - 0x9F6F, 0x7121, 0x9F70, 0x7122, 0x9F71, 0x7123, 0x9F72, 0x7124, - 0x9F73, 0x7125, 0x9F74, 0x7127, 0x9F75, 0x7128, 0x9F76, 0x7129, - 0x9F77, 0x712A, 0x9F78, 0x712B, 0x9F79, 0x712C, 0x9F7A, 0x712D, - 0x9F7B, 0x712E, 0x9F7C, 0x7132, 0x9F7D, 0x7133, 0x9F7E, 0x7134, - 0x9F80, 0x7135, 0x9F81, 0x7137, 0x9F82, 0x7138, 0x9F83, 0x7139, - 0x9F84, 0x713A, 0x9F85, 0x713B, 0x9F86, 0x713C, 0x9F87, 0x713D, - 0x9F88, 0x713E, 0x9F89, 0x713F, 0x9F8A, 0x7140, 0x9F8B, 0x7141, - 0x9F8C, 0x7142, 0x9F8D, 0x7143, 0x9F8E, 0x7144, 0x9F8F, 0x7146, - 0x9F90, 0x7147, 0x9F91, 0x7148, 0x9F92, 0x7149, 0x9F93, 0x714B, - 0x9F94, 0x714D, 0x9F95, 0x714F, 0x9F96, 0x7150, 0x9F97, 0x7151, - 0x9F98, 0x7152, 0x9F99, 0x7153, 0x9F9A, 0x7154, 0x9F9B, 0x7155, - 0x9F9C, 0x7156, 0x9F9D, 0x7157, 0x9F9E, 0x7158, 0x9F9F, 0x7159, - 0x9FA0, 0x715A, 0x9FA1, 0x715B, 0x9FA2, 0x715D, 0x9FA3, 0x715F, - 0x9FA4, 0x7160, 0x9FA5, 0x7161, 0x9FA6, 0x7162, 0x9FA7, 0x7163, - 0x9FA8, 0x7165, 0x9FA9, 0x7169, 0x9FAA, 0x716A, 0x9FAB, 0x716B, - 0x9FAC, 0x716C, 0x9FAD, 0x716D, 0x9FAE, 0x716F, 0x9FAF, 0x7170, - 0x9FB0, 0x7171, 0x9FB1, 0x7174, 0x9FB2, 0x7175, 0x9FB3, 0x7176, - 0x9FB4, 0x7177, 0x9FB5, 0x7179, 0x9FB6, 0x717B, 0x9FB7, 0x717C, - 0x9FB8, 0x717E, 0x9FB9, 0x717F, 0x9FBA, 0x7180, 0x9FBB, 0x7181, - 0x9FBC, 0x7182, 0x9FBD, 0x7183, 0x9FBE, 0x7185, 0x9FBF, 0x7186, - 0x9FC0, 0x7187, 0x9FC1, 0x7188, 0x9FC2, 0x7189, 0x9FC3, 0x718B, - 0x9FC4, 0x718C, 0x9FC5, 0x718D, 0x9FC6, 0x718E, 0x9FC7, 0x7190, - 0x9FC8, 0x7191, 0x9FC9, 0x7192, 0x9FCA, 0x7193, 0x9FCB, 0x7195, - 0x9FCC, 0x7196, 0x9FCD, 0x7197, 0x9FCE, 0x719A, 0x9FCF, 0x719B, - 0x9FD0, 0x719C, 0x9FD1, 0x719D, 0x9FD2, 0x719E, 0x9FD3, 0x71A1, - 0x9FD4, 0x71A2, 0x9FD5, 0x71A3, 0x9FD6, 0x71A4, 0x9FD7, 0x71A5, - 0x9FD8, 0x71A6, 0x9FD9, 0x71A7, 0x9FDA, 0x71A9, 0x9FDB, 0x71AA, - 0x9FDC, 0x71AB, 0x9FDD, 0x71AD, 0x9FDE, 0x71AE, 0x9FDF, 0x71AF, - 0x9FE0, 0x71B0, 0x9FE1, 0x71B1, 0x9FE2, 0x71B2, 0x9FE3, 0x71B4, - 0x9FE4, 0x71B6, 0x9FE5, 0x71B7, 0x9FE6, 0x71B8, 0x9FE7, 0x71BA, - 0x9FE8, 0x71BB, 0x9FE9, 0x71BC, 0x9FEA, 0x71BD, 0x9FEB, 0x71BE, - 0x9FEC, 0x71BF, 0x9FED, 0x71C0, 0x9FEE, 0x71C1, 0x9FEF, 0x71C2, - 0x9FF0, 0x71C4, 0x9FF1, 0x71C5, 0x9FF2, 0x71C6, 0x9FF3, 0x71C7, - 0x9FF4, 0x71C8, 0x9FF5, 0x71C9, 0x9FF6, 0x71CA, 0x9FF7, 0x71CB, - 0x9FF8, 0x71CC, 0x9FF9, 0x71CD, 0x9FFA, 0x71CF, 0x9FFB, 0x71D0, - 0x9FFC, 0x71D1, 0x9FFD, 0x71D2, 0x9FFE, 0x71D3, 0xA040, 0x71D6, - 0xA041, 0x71D7, 0xA042, 0x71D8, 0xA043, 0x71D9, 0xA044, 0x71DA, - 0xA045, 0x71DB, 0xA046, 0x71DC, 0xA047, 0x71DD, 0xA048, 0x71DE, - 0xA049, 0x71DF, 0xA04A, 0x71E1, 0xA04B, 0x71E2, 0xA04C, 0x71E3, - 0xA04D, 0x71E4, 0xA04E, 0x71E6, 0xA04F, 0x71E8, 0xA050, 0x71E9, - 0xA051, 0x71EA, 0xA052, 0x71EB, 0xA053, 0x71EC, 0xA054, 0x71ED, - 0xA055, 0x71EF, 0xA056, 0x71F0, 0xA057, 0x71F1, 0xA058, 0x71F2, - 0xA059, 0x71F3, 0xA05A, 0x71F4, 0xA05B, 0x71F5, 0xA05C, 0x71F6, - 0xA05D, 0x71F7, 0xA05E, 0x71F8, 0xA05F, 0x71FA, 0xA060, 0x71FB, - 0xA061, 0x71FC, 0xA062, 0x71FD, 0xA063, 0x71FE, 0xA064, 0x71FF, - 0xA065, 0x7200, 0xA066, 0x7201, 0xA067, 0x7202, 0xA068, 0x7203, - 0xA069, 0x7204, 0xA06A, 0x7205, 0xA06B, 0x7207, 0xA06C, 0x7208, - 0xA06D, 0x7209, 0xA06E, 0x720A, 0xA06F, 0x720B, 0xA070, 0x720C, - 0xA071, 0x720D, 0xA072, 0x720E, 0xA073, 0x720F, 0xA074, 0x7210, - 0xA075, 0x7211, 0xA076, 0x7212, 0xA077, 0x7213, 0xA078, 0x7214, - 0xA079, 0x7215, 0xA07A, 0x7216, 0xA07B, 0x7217, 0xA07C, 0x7218, - 0xA07D, 0x7219, 0xA07E, 0x721A, 0xA080, 0x721B, 0xA081, 0x721C, - 0xA082, 0x721E, 0xA083, 0x721F, 0xA084, 0x7220, 0xA085, 0x7221, - 0xA086, 0x7222, 0xA087, 0x7223, 0xA088, 0x7224, 0xA089, 0x7225, - 0xA08A, 0x7226, 0xA08B, 0x7227, 0xA08C, 0x7229, 0xA08D, 0x722B, - 0xA08E, 0x722D, 0xA08F, 0x722E, 0xA090, 0x722F, 0xA091, 0x7232, - 0xA092, 0x7233, 0xA093, 0x7234, 0xA094, 0x723A, 0xA095, 0x723C, - 0xA096, 0x723E, 0xA097, 0x7240, 0xA098, 0x7241, 0xA099, 0x7242, - 0xA09A, 0x7243, 0xA09B, 0x7244, 0xA09C, 0x7245, 0xA09D, 0x7246, - 0xA09E, 0x7249, 0xA09F, 0x724A, 0xA0A0, 0x724B, 0xA0A1, 0x724E, - 0xA0A2, 0x724F, 0xA0A3, 0x7250, 0xA0A4, 0x7251, 0xA0A5, 0x7253, - 0xA0A6, 0x7254, 0xA0A7, 0x7255, 0xA0A8, 0x7257, 0xA0A9, 0x7258, - 0xA0AA, 0x725A, 0xA0AB, 0x725C, 0xA0AC, 0x725E, 0xA0AD, 0x7260, - 0xA0AE, 0x7263, 0xA0AF, 0x7264, 0xA0B0, 0x7265, 0xA0B1, 0x7268, - 0xA0B2, 0x726A, 0xA0B3, 0x726B, 0xA0B4, 0x726C, 0xA0B5, 0x726D, - 0xA0B6, 0x7270, 0xA0B7, 0x7271, 0xA0B8, 0x7273, 0xA0B9, 0x7274, - 0xA0BA, 0x7276, 0xA0BB, 0x7277, 0xA0BC, 0x7278, 0xA0BD, 0x727B, - 0xA0BE, 0x727C, 0xA0BF, 0x727D, 0xA0C0, 0x7282, 0xA0C1, 0x7283, - 0xA0C2, 0x7285, 0xA0C3, 0x7286, 0xA0C4, 0x7287, 0xA0C5, 0x7288, - 0xA0C6, 0x7289, 0xA0C7, 0x728C, 0xA0C8, 0x728E, 0xA0C9, 0x7290, - 0xA0CA, 0x7291, 0xA0CB, 0x7293, 0xA0CC, 0x7294, 0xA0CD, 0x7295, - 0xA0CE, 0x7296, 0xA0CF, 0x7297, 0xA0D0, 0x7298, 0xA0D1, 0x7299, - 0xA0D2, 0x729A, 0xA0D3, 0x729B, 0xA0D4, 0x729C, 0xA0D5, 0x729D, - 0xA0D6, 0x729E, 0xA0D7, 0x72A0, 0xA0D8, 0x72A1, 0xA0D9, 0x72A2, - 0xA0DA, 0x72A3, 0xA0DB, 0x72A4, 0xA0DC, 0x72A5, 0xA0DD, 0x72A6, - 0xA0DE, 0x72A7, 0xA0DF, 0x72A8, 0xA0E0, 0x72A9, 0xA0E1, 0x72AA, - 0xA0E2, 0x72AB, 0xA0E3, 0x72AE, 0xA0E4, 0x72B1, 0xA0E5, 0x72B2, - 0xA0E6, 0x72B3, 0xA0E7, 0x72B5, 0xA0E8, 0x72BA, 0xA0E9, 0x72BB, - 0xA0EA, 0x72BC, 0xA0EB, 0x72BD, 0xA0EC, 0x72BE, 0xA0ED, 0x72BF, - 0xA0EE, 0x72C0, 0xA0EF, 0x72C5, 0xA0F0, 0x72C6, 0xA0F1, 0x72C7, - 0xA0F2, 0x72C9, 0xA0F3, 0x72CA, 0xA0F4, 0x72CB, 0xA0F5, 0x72CC, - 0xA0F6, 0x72CF, 0xA0F7, 0x72D1, 0xA0F8, 0x72D3, 0xA0F9, 0x72D4, - 0xA0FA, 0x72D5, 0xA0FB, 0x72D6, 0xA0FC, 0x72D8, 0xA0FD, 0x72DA, - 0xA0FE, 0x72DB, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, - 0xA1A4, 0x00B7, 0xA1A5, 0x02C9, 0xA1A6, 0x02C7, 0xA1A7, 0x00A8, - 0xA1A8, 0x3003, 0xA1A9, 0x3005, 0xA1AA, 0x2014, 0xA1AB, 0xFF5E, - 0xA1AC, 0x2016, 0xA1AD, 0x2026, 0xA1AE, 0x2018, 0xA1AF, 0x2019, - 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, - 0xA1B4, 0x3008, 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, - 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, - 0xA1BC, 0x3016, 0xA1BD, 0x3017, 0xA1BE, 0x3010, 0xA1BF, 0x3011, - 0xA1C0, 0x00B1, 0xA1C1, 0x00D7, 0xA1C2, 0x00F7, 0xA1C3, 0x2236, - 0xA1C4, 0x2227, 0xA1C5, 0x2228, 0xA1C6, 0x2211, 0xA1C7, 0x220F, - 0xA1C8, 0x222A, 0xA1C9, 0x2229, 0xA1CA, 0x2208, 0xA1CB, 0x2237, - 0xA1CC, 0x221A, 0xA1CD, 0x22A5, 0xA1CE, 0x2225, 0xA1CF, 0x2220, - 0xA1D0, 0x2312, 0xA1D1, 0x2299, 0xA1D2, 0x222B, 0xA1D3, 0x222E, - 0xA1D4, 0x2261, 0xA1D5, 0x224C, 0xA1D6, 0x2248, 0xA1D7, 0x223D, - 0xA1D8, 0x221D, 0xA1D9, 0x2260, 0xA1DA, 0x226E, 0xA1DB, 0x226F, - 0xA1DC, 0x2264, 0xA1DD, 0x2265, 0xA1DE, 0x221E, 0xA1DF, 0x2235, - 0xA1E0, 0x2234, 0xA1E1, 0x2642, 0xA1E2, 0x2640, 0xA1E3, 0x00B0, - 0xA1E4, 0x2032, 0xA1E5, 0x2033, 0xA1E6, 0x2103, 0xA1E7, 0xFF04, - 0xA1E8, 0x00A4, 0xA1E9, 0xFFE0, 0xA1EA, 0xFFE1, 0xA1EB, 0x2030, - 0xA1EC, 0x00A7, 0xA1ED, 0x2116, 0xA1EE, 0x2606, 0xA1EF, 0x2605, - 0xA1F0, 0x25CB, 0xA1F1, 0x25CF, 0xA1F2, 0x25CE, 0xA1F3, 0x25C7, - 0xA1F4, 0x25C6, 0xA1F5, 0x25A1, 0xA1F6, 0x25A0, 0xA1F7, 0x25B3, - 0xA1F8, 0x25B2, 0xA1F9, 0x203B, 0xA1FA, 0x2192, 0xA1FB, 0x2190, - 0xA1FC, 0x2191, 0xA1FD, 0x2193, 0xA1FE, 0x3013, 0xA2A1, 0x2170, - 0xA2A2, 0x2171, 0xA2A3, 0x2172, 0xA2A4, 0x2173, 0xA2A5, 0x2174, - 0xA2A6, 0x2175, 0xA2A7, 0x2176, 0xA2A8, 0x2177, 0xA2A9, 0x2178, - 0xA2AA, 0x2179, 0xA2B1, 0x2488, 0xA2B2, 0x2489, 0xA2B3, 0x248A, - 0xA2B4, 0x248B, 0xA2B5, 0x248C, 0xA2B6, 0x248D, 0xA2B7, 0x248E, - 0xA2B8, 0x248F, 0xA2B9, 0x2490, 0xA2BA, 0x2491, 0xA2BB, 0x2492, - 0xA2BC, 0x2493, 0xA2BD, 0x2494, 0xA2BE, 0x2495, 0xA2BF, 0x2496, - 0xA2C0, 0x2497, 0xA2C1, 0x2498, 0xA2C2, 0x2499, 0xA2C3, 0x249A, - 0xA2C4, 0x249B, 0xA2C5, 0x2474, 0xA2C6, 0x2475, 0xA2C7, 0x2476, - 0xA2C8, 0x2477, 0xA2C9, 0x2478, 0xA2CA, 0x2479, 0xA2CB, 0x247A, - 0xA2CC, 0x247B, 0xA2CD, 0x247C, 0xA2CE, 0x247D, 0xA2CF, 0x247E, - 0xA2D0, 0x247F, 0xA2D1, 0x2480, 0xA2D2, 0x2481, 0xA2D3, 0x2482, - 0xA2D4, 0x2483, 0xA2D5, 0x2484, 0xA2D6, 0x2485, 0xA2D7, 0x2486, - 0xA2D8, 0x2487, 0xA2D9, 0x2460, 0xA2DA, 0x2461, 0xA2DB, 0x2462, - 0xA2DC, 0x2463, 0xA2DD, 0x2464, 0xA2DE, 0x2465, 0xA2DF, 0x2466, - 0xA2E0, 0x2467, 0xA2E1, 0x2468, 0xA2E2, 0x2469, 0xA2E5, 0x3220, - 0xA2E6, 0x3221, 0xA2E7, 0x3222, 0xA2E8, 0x3223, 0xA2E9, 0x3224, - 0xA2EA, 0x3225, 0xA2EB, 0x3226, 0xA2EC, 0x3227, 0xA2ED, 0x3228, - 0xA2EE, 0x3229, 0xA2F1, 0x2160, 0xA2F2, 0x2161, 0xA2F3, 0x2162, - 0xA2F4, 0x2163, 0xA2F5, 0x2164, 0xA2F6, 0x2165, 0xA2F7, 0x2166, - 0xA2F8, 0x2167, 0xA2F9, 0x2168, 0xA2FA, 0x2169, 0xA2FB, 0x216A, - 0xA2FC, 0x216B, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, - 0xA3A4, 0xFFE5, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, - 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, - 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, - 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, - 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, - 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, - 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, - 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, - 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, - 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, - 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, - 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, - 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, - 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, - 0xA3DC, 0xFF3C, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, - 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, - 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, - 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, - 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, - 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, - 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, - 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, - 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA4A1, 0x3041, - 0xA4A2, 0x3042, 0xA4A3, 0x3043, 0xA4A4, 0x3044, 0xA4A5, 0x3045, - 0xA4A6, 0x3046, 0xA4A7, 0x3047, 0xA4A8, 0x3048, 0xA4A9, 0x3049, - 0xA4AA, 0x304A, 0xA4AB, 0x304B, 0xA4AC, 0x304C, 0xA4AD, 0x304D, - 0xA4AE, 0x304E, 0xA4AF, 0x304F, 0xA4B0, 0x3050, 0xA4B1, 0x3051, - 0xA4B2, 0x3052, 0xA4B3, 0x3053, 0xA4B4, 0x3054, 0xA4B5, 0x3055, - 0xA4B6, 0x3056, 0xA4B7, 0x3057, 0xA4B8, 0x3058, 0xA4B9, 0x3059, - 0xA4BA, 0x305A, 0xA4BB, 0x305B, 0xA4BC, 0x305C, 0xA4BD, 0x305D, - 0xA4BE, 0x305E, 0xA4BF, 0x305F, 0xA4C0, 0x3060, 0xA4C1, 0x3061, - 0xA4C2, 0x3062, 0xA4C3, 0x3063, 0xA4C4, 0x3064, 0xA4C5, 0x3065, - 0xA4C6, 0x3066, 0xA4C7, 0x3067, 0xA4C8, 0x3068, 0xA4C9, 0x3069, - 0xA4CA, 0x306A, 0xA4CB, 0x306B, 0xA4CC, 0x306C, 0xA4CD, 0x306D, - 0xA4CE, 0x306E, 0xA4CF, 0x306F, 0xA4D0, 0x3070, 0xA4D1, 0x3071, - 0xA4D2, 0x3072, 0xA4D3, 0x3073, 0xA4D4, 0x3074, 0xA4D5, 0x3075, - 0xA4D6, 0x3076, 0xA4D7, 0x3077, 0xA4D8, 0x3078, 0xA4D9, 0x3079, - 0xA4DA, 0x307A, 0xA4DB, 0x307B, 0xA4DC, 0x307C, 0xA4DD, 0x307D, - 0xA4DE, 0x307E, 0xA4DF, 0x307F, 0xA4E0, 0x3080, 0xA4E1, 0x3081, - 0xA4E2, 0x3082, 0xA4E3, 0x3083, 0xA4E4, 0x3084, 0xA4E5, 0x3085, - 0xA4E6, 0x3086, 0xA4E7, 0x3087, 0xA4E8, 0x3088, 0xA4E9, 0x3089, - 0xA4EA, 0x308A, 0xA4EB, 0x308B, 0xA4EC, 0x308C, 0xA4ED, 0x308D, - 0xA4EE, 0x308E, 0xA4EF, 0x308F, 0xA4F0, 0x3090, 0xA4F1, 0x3091, - 0xA4F2, 0x3092, 0xA4F3, 0x3093, 0xA5A1, 0x30A1, 0xA5A2, 0x30A2, - 0xA5A3, 0x30A3, 0xA5A4, 0x30A4, 0xA5A5, 0x30A5, 0xA5A6, 0x30A6, - 0xA5A7, 0x30A7, 0xA5A8, 0x30A8, 0xA5A9, 0x30A9, 0xA5AA, 0x30AA, - 0xA5AB, 0x30AB, 0xA5AC, 0x30AC, 0xA5AD, 0x30AD, 0xA5AE, 0x30AE, - 0xA5AF, 0x30AF, 0xA5B0, 0x30B0, 0xA5B1, 0x30B1, 0xA5B2, 0x30B2, - 0xA5B3, 0x30B3, 0xA5B4, 0x30B4, 0xA5B5, 0x30B5, 0xA5B6, 0x30B6, - 0xA5B7, 0x30B7, 0xA5B8, 0x30B8, 0xA5B9, 0x30B9, 0xA5BA, 0x30BA, - 0xA5BB, 0x30BB, 0xA5BC, 0x30BC, 0xA5BD, 0x30BD, 0xA5BE, 0x30BE, - 0xA5BF, 0x30BF, 0xA5C0, 0x30C0, 0xA5C1, 0x30C1, 0xA5C2, 0x30C2, - 0xA5C3, 0x30C3, 0xA5C4, 0x30C4, 0xA5C5, 0x30C5, 0xA5C6, 0x30C6, - 0xA5C7, 0x30C7, 0xA5C8, 0x30C8, 0xA5C9, 0x30C9, 0xA5CA, 0x30CA, - 0xA5CB, 0x30CB, 0xA5CC, 0x30CC, 0xA5CD, 0x30CD, 0xA5CE, 0x30CE, - 0xA5CF, 0x30CF, 0xA5D0, 0x30D0, 0xA5D1, 0x30D1, 0xA5D2, 0x30D2, - 0xA5D3, 0x30D3, 0xA5D4, 0x30D4, 0xA5D5, 0x30D5, 0xA5D6, 0x30D6, - 0xA5D7, 0x30D7, 0xA5D8, 0x30D8, 0xA5D9, 0x30D9, 0xA5DA, 0x30DA, - 0xA5DB, 0x30DB, 0xA5DC, 0x30DC, 0xA5DD, 0x30DD, 0xA5DE, 0x30DE, - 0xA5DF, 0x30DF, 0xA5E0, 0x30E0, 0xA5E1, 0x30E1, 0xA5E2, 0x30E2, - 0xA5E3, 0x30E3, 0xA5E4, 0x30E4, 0xA5E5, 0x30E5, 0xA5E6, 0x30E6, - 0xA5E7, 0x30E7, 0xA5E8, 0x30E8, 0xA5E9, 0x30E9, 0xA5EA, 0x30EA, - 0xA5EB, 0x30EB, 0xA5EC, 0x30EC, 0xA5ED, 0x30ED, 0xA5EE, 0x30EE, - 0xA5EF, 0x30EF, 0xA5F0, 0x30F0, 0xA5F1, 0x30F1, 0xA5F2, 0x30F2, - 0xA5F3, 0x30F3, 0xA5F4, 0x30F4, 0xA5F5, 0x30F5, 0xA5F6, 0x30F6, - 0xA6A1, 0x0391, 0xA6A2, 0x0392, 0xA6A3, 0x0393, 0xA6A4, 0x0394, - 0xA6A5, 0x0395, 0xA6A6, 0x0396, 0xA6A7, 0x0397, 0xA6A8, 0x0398, - 0xA6A9, 0x0399, 0xA6AA, 0x039A, 0xA6AB, 0x039B, 0xA6AC, 0x039C, - 0xA6AD, 0x039D, 0xA6AE, 0x039E, 0xA6AF, 0x039F, 0xA6B0, 0x03A0, - 0xA6B1, 0x03A1, 0xA6B2, 0x03A3, 0xA6B3, 0x03A4, 0xA6B4, 0x03A5, - 0xA6B5, 0x03A6, 0xA6B6, 0x03A7, 0xA6B7, 0x03A8, 0xA6B8, 0x03A9, - 0xA6C1, 0x03B1, 0xA6C2, 0x03B2, 0xA6C3, 0x03B3, 0xA6C4, 0x03B4, - 0xA6C5, 0x03B5, 0xA6C6, 0x03B6, 0xA6C7, 0x03B7, 0xA6C8, 0x03B8, - 0xA6C9, 0x03B9, 0xA6CA, 0x03BA, 0xA6CB, 0x03BB, 0xA6CC, 0x03BC, - 0xA6CD, 0x03BD, 0xA6CE, 0x03BE, 0xA6CF, 0x03BF, 0xA6D0, 0x03C0, - 0xA6D1, 0x03C1, 0xA6D2, 0x03C3, 0xA6D3, 0x03C4, 0xA6D4, 0x03C5, - 0xA6D5, 0x03C6, 0xA6D6, 0x03C7, 0xA6D7, 0x03C8, 0xA6D8, 0x03C9, - 0xA6E0, 0xFE35, 0xA6E1, 0xFE36, 0xA6E2, 0xFE39, 0xA6E3, 0xFE3A, - 0xA6E4, 0xFE3F, 0xA6E5, 0xFE40, 0xA6E6, 0xFE3D, 0xA6E7, 0xFE3E, - 0xA6E8, 0xFE41, 0xA6E9, 0xFE42, 0xA6EA, 0xFE43, 0xA6EB, 0xFE44, - 0xA6EE, 0xFE3B, 0xA6EF, 0xFE3C, 0xA6F0, 0xFE37, 0xA6F1, 0xFE38, - 0xA6F2, 0xFE31, 0xA6F4, 0xFE33, 0xA6F5, 0xFE34, 0xA7A1, 0x0410, - 0xA7A2, 0x0411, 0xA7A3, 0x0412, 0xA7A4, 0x0413, 0xA7A5, 0x0414, - 0xA7A6, 0x0415, 0xA7A7, 0x0401, 0xA7A8, 0x0416, 0xA7A9, 0x0417, - 0xA7AA, 0x0418, 0xA7AB, 0x0419, 0xA7AC, 0x041A, 0xA7AD, 0x041B, - 0xA7AE, 0x041C, 0xA7AF, 0x041D, 0xA7B0, 0x041E, 0xA7B1, 0x041F, - 0xA7B2, 0x0420, 0xA7B3, 0x0421, 0xA7B4, 0x0422, 0xA7B5, 0x0423, - 0xA7B6, 0x0424, 0xA7B7, 0x0425, 0xA7B8, 0x0426, 0xA7B9, 0x0427, - 0xA7BA, 0x0428, 0xA7BB, 0x0429, 0xA7BC, 0x042A, 0xA7BD, 0x042B, - 0xA7BE, 0x042C, 0xA7BF, 0x042D, 0xA7C0, 0x042E, 0xA7C1, 0x042F, - 0xA7D1, 0x0430, 0xA7D2, 0x0431, 0xA7D3, 0x0432, 0xA7D4, 0x0433, - 0xA7D5, 0x0434, 0xA7D6, 0x0435, 0xA7D7, 0x0451, 0xA7D8, 0x0436, - 0xA7D9, 0x0437, 0xA7DA, 0x0438, 0xA7DB, 0x0439, 0xA7DC, 0x043A, - 0xA7DD, 0x043B, 0xA7DE, 0x043C, 0xA7DF, 0x043D, 0xA7E0, 0x043E, - 0xA7E1, 0x043F, 0xA7E2, 0x0440, 0xA7E3, 0x0441, 0xA7E4, 0x0442, - 0xA7E5, 0x0443, 0xA7E6, 0x0444, 0xA7E7, 0x0445, 0xA7E8, 0x0446, - 0xA7E9, 0x0447, 0xA7EA, 0x0448, 0xA7EB, 0x0449, 0xA7EC, 0x044A, - 0xA7ED, 0x044B, 0xA7EE, 0x044C, 0xA7EF, 0x044D, 0xA7F0, 0x044E, - 0xA7F1, 0x044F, 0xA840, 0x02CA, 0xA841, 0x02CB, 0xA842, 0x02D9, - 0xA843, 0x2013, 0xA844, 0x2015, 0xA845, 0x2025, 0xA846, 0x2035, - 0xA847, 0x2105, 0xA848, 0x2109, 0xA849, 0x2196, 0xA84A, 0x2197, - 0xA84B, 0x2198, 0xA84C, 0x2199, 0xA84D, 0x2215, 0xA84E, 0x221F, - 0xA84F, 0x2223, 0xA850, 0x2252, 0xA851, 0x2266, 0xA852, 0x2267, - 0xA853, 0x22BF, 0xA854, 0x2550, 0xA855, 0x2551, 0xA856, 0x2552, - 0xA857, 0x2553, 0xA858, 0x2554, 0xA859, 0x2555, 0xA85A, 0x2556, - 0xA85B, 0x2557, 0xA85C, 0x2558, 0xA85D, 0x2559, 0xA85E, 0x255A, - 0xA85F, 0x255B, 0xA860, 0x255C, 0xA861, 0x255D, 0xA862, 0x255E, - 0xA863, 0x255F, 0xA864, 0x2560, 0xA865, 0x2561, 0xA866, 0x2562, - 0xA867, 0x2563, 0xA868, 0x2564, 0xA869, 0x2565, 0xA86A, 0x2566, - 0xA86B, 0x2567, 0xA86C, 0x2568, 0xA86D, 0x2569, 0xA86E, 0x256A, - 0xA86F, 0x256B, 0xA870, 0x256C, 0xA871, 0x256D, 0xA872, 0x256E, - 0xA873, 0x256F, 0xA874, 0x2570, 0xA875, 0x2571, 0xA876, 0x2572, - 0xA877, 0x2573, 0xA878, 0x2581, 0xA879, 0x2582, 0xA87A, 0x2583, - 0xA87B, 0x2584, 0xA87C, 0x2585, 0xA87D, 0x2586, 0xA87E, 0x2587, - 0xA880, 0x2588, 0xA881, 0x2589, 0xA882, 0x258A, 0xA883, 0x258B, - 0xA884, 0x258C, 0xA885, 0x258D, 0xA886, 0x258E, 0xA887, 0x258F, - 0xA888, 0x2593, 0xA889, 0x2594, 0xA88A, 0x2595, 0xA88B, 0x25BC, - 0xA88C, 0x25BD, 0xA88D, 0x25E2, 0xA88E, 0x25E3, 0xA88F, 0x25E4, - 0xA890, 0x25E5, 0xA891, 0x2609, 0xA892, 0x2295, 0xA893, 0x3012, - 0xA894, 0x301D, 0xA895, 0x301E, 0xA8A1, 0x0101, 0xA8A2, 0x00E1, - 0xA8A3, 0x01CE, 0xA8A4, 0x00E0, 0xA8A5, 0x0113, 0xA8A6, 0x00E9, - 0xA8A7, 0x011B, 0xA8A8, 0x00E8, 0xA8A9, 0x012B, 0xA8AA, 0x00ED, - 0xA8AB, 0x01D0, 0xA8AC, 0x00EC, 0xA8AD, 0x014D, 0xA8AE, 0x00F3, - 0xA8AF, 0x01D2, 0xA8B0, 0x00F2, 0xA8B1, 0x016B, 0xA8B2, 0x00FA, - 0xA8B3, 0x01D4, 0xA8B4, 0x00F9, 0xA8B5, 0x01D6, 0xA8B6, 0x01D8, - 0xA8B7, 0x01DA, 0xA8B8, 0x01DC, 0xA8B9, 0x00FC, 0xA8BA, 0x00EA, - 0xA8BB, 0x0251, 0xA8BD, 0x0144, 0xA8BE, 0x0148, 0xA8C0, 0x0261, - 0xA8C5, 0x3105, 0xA8C6, 0x3106, 0xA8C7, 0x3107, 0xA8C8, 0x3108, - 0xA8C9, 0x3109, 0xA8CA, 0x310A, 0xA8CB, 0x310B, 0xA8CC, 0x310C, - 0xA8CD, 0x310D, 0xA8CE, 0x310E, 0xA8CF, 0x310F, 0xA8D0, 0x3110, - 0xA8D1, 0x3111, 0xA8D2, 0x3112, 0xA8D3, 0x3113, 0xA8D4, 0x3114, - 0xA8D5, 0x3115, 0xA8D6, 0x3116, 0xA8D7, 0x3117, 0xA8D8, 0x3118, - 0xA8D9, 0x3119, 0xA8DA, 0x311A, 0xA8DB, 0x311B, 0xA8DC, 0x311C, - 0xA8DD, 0x311D, 0xA8DE, 0x311E, 0xA8DF, 0x311F, 0xA8E0, 0x3120, - 0xA8E1, 0x3121, 0xA8E2, 0x3122, 0xA8E3, 0x3123, 0xA8E4, 0x3124, - 0xA8E5, 0x3125, 0xA8E6, 0x3126, 0xA8E7, 0x3127, 0xA8E8, 0x3128, - 0xA8E9, 0x3129, 0xA940, 0x3021, 0xA941, 0x3022, 0xA942, 0x3023, - 0xA943, 0x3024, 0xA944, 0x3025, 0xA945, 0x3026, 0xA946, 0x3027, - 0xA947, 0x3028, 0xA948, 0x3029, 0xA949, 0x32A3, 0xA94A, 0x338E, - 0xA94B, 0x338F, 0xA94C, 0x339C, 0xA94D, 0x339D, 0xA94E, 0x339E, - 0xA94F, 0x33A1, 0xA950, 0x33C4, 0xA951, 0x33CE, 0xA952, 0x33D1, - 0xA953, 0x33D2, 0xA954, 0x33D5, 0xA955, 0xFE30, 0xA956, 0xFFE2, - 0xA957, 0xFFE4, 0xA959, 0x2121, 0xA95A, 0x3231, 0xA95C, 0x2010, - 0xA960, 0x30FC, 0xA961, 0x309B, 0xA962, 0x309C, 0xA963, 0x30FD, - 0xA964, 0x30FE, 0xA965, 0x3006, 0xA966, 0x309D, 0xA967, 0x309E, - 0xA968, 0xFE49, 0xA969, 0xFE4A, 0xA96A, 0xFE4B, 0xA96B, 0xFE4C, - 0xA96C, 0xFE4D, 0xA96D, 0xFE4E, 0xA96E, 0xFE4F, 0xA96F, 0xFE50, - 0xA970, 0xFE51, 0xA971, 0xFE52, 0xA972, 0xFE54, 0xA973, 0xFE55, - 0xA974, 0xFE56, 0xA975, 0xFE57, 0xA976, 0xFE59, 0xA977, 0xFE5A, - 0xA978, 0xFE5B, 0xA979, 0xFE5C, 0xA97A, 0xFE5D, 0xA97B, 0xFE5E, - 0xA97C, 0xFE5F, 0xA97D, 0xFE60, 0xA97E, 0xFE61, 0xA980, 0xFE62, - 0xA981, 0xFE63, 0xA982, 0xFE64, 0xA983, 0xFE65, 0xA984, 0xFE66, - 0xA985, 0xFE68, 0xA986, 0xFE69, 0xA987, 0xFE6A, 0xA988, 0xFE6B, - 0xA996, 0x3007, 0xA9A4, 0x2500, 0xA9A5, 0x2501, 0xA9A6, 0x2502, - 0xA9A7, 0x2503, 0xA9A8, 0x2504, 0xA9A9, 0x2505, 0xA9AA, 0x2506, - 0xA9AB, 0x2507, 0xA9AC, 0x2508, 0xA9AD, 0x2509, 0xA9AE, 0x250A, - 0xA9AF, 0x250B, 0xA9B0, 0x250C, 0xA9B1, 0x250D, 0xA9B2, 0x250E, - 0xA9B3, 0x250F, 0xA9B4, 0x2510, 0xA9B5, 0x2511, 0xA9B6, 0x2512, - 0xA9B7, 0x2513, 0xA9B8, 0x2514, 0xA9B9, 0x2515, 0xA9BA, 0x2516, - 0xA9BB, 0x2517, 0xA9BC, 0x2518, 0xA9BD, 0x2519, 0xA9BE, 0x251A, - 0xA9BF, 0x251B, 0xA9C0, 0x251C, 0xA9C1, 0x251D, 0xA9C2, 0x251E, - 0xA9C3, 0x251F, 0xA9C4, 0x2520, 0xA9C5, 0x2521, 0xA9C6, 0x2522, - 0xA9C7, 0x2523, 0xA9C8, 0x2524, 0xA9C9, 0x2525, 0xA9CA, 0x2526, - 0xA9CB, 0x2527, 0xA9CC, 0x2528, 0xA9CD, 0x2529, 0xA9CE, 0x252A, - 0xA9CF, 0x252B, 0xA9D0, 0x252C, 0xA9D1, 0x252D, 0xA9D2, 0x252E, - 0xA9D3, 0x252F, 0xA9D4, 0x2530, 0xA9D5, 0x2531, 0xA9D6, 0x2532, - 0xA9D7, 0x2533, 0xA9D8, 0x2534, 0xA9D9, 0x2535, 0xA9DA, 0x2536, - 0xA9DB, 0x2537, 0xA9DC, 0x2538, 0xA9DD, 0x2539, 0xA9DE, 0x253A, - 0xA9DF, 0x253B, 0xA9E0, 0x253C, 0xA9E1, 0x253D, 0xA9E2, 0x253E, - 0xA9E3, 0x253F, 0xA9E4, 0x2540, 0xA9E5, 0x2541, 0xA9E6, 0x2542, - 0xA9E7, 0x2543, 0xA9E8, 0x2544, 0xA9E9, 0x2545, 0xA9EA, 0x2546, - 0xA9EB, 0x2547, 0xA9EC, 0x2548, 0xA9ED, 0x2549, 0xA9EE, 0x254A, - 0xA9EF, 0x254B, 0xAA40, 0x72DC, 0xAA41, 0x72DD, 0xAA42, 0x72DF, - 0xAA43, 0x72E2, 0xAA44, 0x72E3, 0xAA45, 0x72E4, 0xAA46, 0x72E5, - 0xAA47, 0x72E6, 0xAA48, 0x72E7, 0xAA49, 0x72EA, 0xAA4A, 0x72EB, - 0xAA4B, 0x72F5, 0xAA4C, 0x72F6, 0xAA4D, 0x72F9, 0xAA4E, 0x72FD, - 0xAA4F, 0x72FE, 0xAA50, 0x72FF, 0xAA51, 0x7300, 0xAA52, 0x7302, - 0xAA53, 0x7304, 0xAA54, 0x7305, 0xAA55, 0x7306, 0xAA56, 0x7307, - 0xAA57, 0x7308, 0xAA58, 0x7309, 0xAA59, 0x730B, 0xAA5A, 0x730C, - 0xAA5B, 0x730D, 0xAA5C, 0x730F, 0xAA5D, 0x7310, 0xAA5E, 0x7311, - 0xAA5F, 0x7312, 0xAA60, 0x7314, 0xAA61, 0x7318, 0xAA62, 0x7319, - 0xAA63, 0x731A, 0xAA64, 0x731F, 0xAA65, 0x7320, 0xAA66, 0x7323, - 0xAA67, 0x7324, 0xAA68, 0x7326, 0xAA69, 0x7327, 0xAA6A, 0x7328, - 0xAA6B, 0x732D, 0xAA6C, 0x732F, 0xAA6D, 0x7330, 0xAA6E, 0x7332, - 0xAA6F, 0x7333, 0xAA70, 0x7335, 0xAA71, 0x7336, 0xAA72, 0x733A, - 0xAA73, 0x733B, 0xAA74, 0x733C, 0xAA75, 0x733D, 0xAA76, 0x7340, - 0xAA77, 0x7341, 0xAA78, 0x7342, 0xAA79, 0x7343, 0xAA7A, 0x7344, - 0xAA7B, 0x7345, 0xAA7C, 0x7346, 0xAA7D, 0x7347, 0xAA7E, 0x7348, - 0xAA80, 0x7349, 0xAA81, 0x734A, 0xAA82, 0x734B, 0xAA83, 0x734C, - 0xAA84, 0x734E, 0xAA85, 0x734F, 0xAA86, 0x7351, 0xAA87, 0x7353, - 0xAA88, 0x7354, 0xAA89, 0x7355, 0xAA8A, 0x7356, 0xAA8B, 0x7358, - 0xAA8C, 0x7359, 0xAA8D, 0x735A, 0xAA8E, 0x735B, 0xAA8F, 0x735C, - 0xAA90, 0x735D, 0xAA91, 0x735E, 0xAA92, 0x735F, 0xAA93, 0x7361, - 0xAA94, 0x7362, 0xAA95, 0x7363, 0xAA96, 0x7364, 0xAA97, 0x7365, - 0xAA98, 0x7366, 0xAA99, 0x7367, 0xAA9A, 0x7368, 0xAA9B, 0x7369, - 0xAA9C, 0x736A, 0xAA9D, 0x736B, 0xAA9E, 0x736E, 0xAA9F, 0x7370, - 0xAAA0, 0x7371, 0xAB40, 0x7372, 0xAB41, 0x7373, 0xAB42, 0x7374, - 0xAB43, 0x7375, 0xAB44, 0x7376, 0xAB45, 0x7377, 0xAB46, 0x7378, - 0xAB47, 0x7379, 0xAB48, 0x737A, 0xAB49, 0x737B, 0xAB4A, 0x737C, - 0xAB4B, 0x737D, 0xAB4C, 0x737F, 0xAB4D, 0x7380, 0xAB4E, 0x7381, - 0xAB4F, 0x7382, 0xAB50, 0x7383, 0xAB51, 0x7385, 0xAB52, 0x7386, - 0xAB53, 0x7388, 0xAB54, 0x738A, 0xAB55, 0x738C, 0xAB56, 0x738D, - 0xAB57, 0x738F, 0xAB58, 0x7390, 0xAB59, 0x7392, 0xAB5A, 0x7393, - 0xAB5B, 0x7394, 0xAB5C, 0x7395, 0xAB5D, 0x7397, 0xAB5E, 0x7398, - 0xAB5F, 0x7399, 0xAB60, 0x739A, 0xAB61, 0x739C, 0xAB62, 0x739D, - 0xAB63, 0x739E, 0xAB64, 0x73A0, 0xAB65, 0x73A1, 0xAB66, 0x73A3, - 0xAB67, 0x73A4, 0xAB68, 0x73A5, 0xAB69, 0x73A6, 0xAB6A, 0x73A7, - 0xAB6B, 0x73A8, 0xAB6C, 0x73AA, 0xAB6D, 0x73AC, 0xAB6E, 0x73AD, - 0xAB6F, 0x73B1, 0xAB70, 0x73B4, 0xAB71, 0x73B5, 0xAB72, 0x73B6, - 0xAB73, 0x73B8, 0xAB74, 0x73B9, 0xAB75, 0x73BC, 0xAB76, 0x73BD, - 0xAB77, 0x73BE, 0xAB78, 0x73BF, 0xAB79, 0x73C1, 0xAB7A, 0x73C3, - 0xAB7B, 0x73C4, 0xAB7C, 0x73C5, 0xAB7D, 0x73C6, 0xAB7E, 0x73C7, - 0xAB80, 0x73CB, 0xAB81, 0x73CC, 0xAB82, 0x73CE, 0xAB83, 0x73D2, - 0xAB84, 0x73D3, 0xAB85, 0x73D4, 0xAB86, 0x73D5, 0xAB87, 0x73D6, - 0xAB88, 0x73D7, 0xAB89, 0x73D8, 0xAB8A, 0x73DA, 0xAB8B, 0x73DB, - 0xAB8C, 0x73DC, 0xAB8D, 0x73DD, 0xAB8E, 0x73DF, 0xAB8F, 0x73E1, - 0xAB90, 0x73E2, 0xAB91, 0x73E3, 0xAB92, 0x73E4, 0xAB93, 0x73E6, - 0xAB94, 0x73E8, 0xAB95, 0x73EA, 0xAB96, 0x73EB, 0xAB97, 0x73EC, - 0xAB98, 0x73EE, 0xAB99, 0x73EF, 0xAB9A, 0x73F0, 0xAB9B, 0x73F1, - 0xAB9C, 0x73F3, 0xAB9D, 0x73F4, 0xAB9E, 0x73F5, 0xAB9F, 0x73F6, - 0xABA0, 0x73F7, 0xAC40, 0x73F8, 0xAC41, 0x73F9, 0xAC42, 0x73FA, - 0xAC43, 0x73FB, 0xAC44, 0x73FC, 0xAC45, 0x73FD, 0xAC46, 0x73FE, - 0xAC47, 0x73FF, 0xAC48, 0x7400, 0xAC49, 0x7401, 0xAC4A, 0x7402, - 0xAC4B, 0x7404, 0xAC4C, 0x7407, 0xAC4D, 0x7408, 0xAC4E, 0x740B, - 0xAC4F, 0x740C, 0xAC50, 0x740D, 0xAC51, 0x740E, 0xAC52, 0x7411, - 0xAC53, 0x7412, 0xAC54, 0x7413, 0xAC55, 0x7414, 0xAC56, 0x7415, - 0xAC57, 0x7416, 0xAC58, 0x7417, 0xAC59, 0x7418, 0xAC5A, 0x7419, - 0xAC5B, 0x741C, 0xAC5C, 0x741D, 0xAC5D, 0x741E, 0xAC5E, 0x741F, - 0xAC5F, 0x7420, 0xAC60, 0x7421, 0xAC61, 0x7423, 0xAC62, 0x7424, - 0xAC63, 0x7427, 0xAC64, 0x7429, 0xAC65, 0x742B, 0xAC66, 0x742D, - 0xAC67, 0x742F, 0xAC68, 0x7431, 0xAC69, 0x7432, 0xAC6A, 0x7437, - 0xAC6B, 0x7438, 0xAC6C, 0x7439, 0xAC6D, 0x743A, 0xAC6E, 0x743B, - 0xAC6F, 0x743D, 0xAC70, 0x743E, 0xAC71, 0x743F, 0xAC72, 0x7440, - 0xAC73, 0x7442, 0xAC74, 0x7443, 0xAC75, 0x7444, 0xAC76, 0x7445, - 0xAC77, 0x7446, 0xAC78, 0x7447, 0xAC79, 0x7448, 0xAC7A, 0x7449, - 0xAC7B, 0x744A, 0xAC7C, 0x744B, 0xAC7D, 0x744C, 0xAC7E, 0x744D, - 0xAC80, 0x744E, 0xAC81, 0x744F, 0xAC82, 0x7450, 0xAC83, 0x7451, - 0xAC84, 0x7452, 0xAC85, 0x7453, 0xAC86, 0x7454, 0xAC87, 0x7456, - 0xAC88, 0x7458, 0xAC89, 0x745D, 0xAC8A, 0x7460, 0xAC8B, 0x7461, - 0xAC8C, 0x7462, 0xAC8D, 0x7463, 0xAC8E, 0x7464, 0xAC8F, 0x7465, - 0xAC90, 0x7466, 0xAC91, 0x7467, 0xAC92, 0x7468, 0xAC93, 0x7469, - 0xAC94, 0x746A, 0xAC95, 0x746B, 0xAC96, 0x746C, 0xAC97, 0x746E, - 0xAC98, 0x746F, 0xAC99, 0x7471, 0xAC9A, 0x7472, 0xAC9B, 0x7473, - 0xAC9C, 0x7474, 0xAC9D, 0x7475, 0xAC9E, 0x7478, 0xAC9F, 0x7479, - 0xACA0, 0x747A, 0xAD40, 0x747B, 0xAD41, 0x747C, 0xAD42, 0x747D, - 0xAD43, 0x747F, 0xAD44, 0x7482, 0xAD45, 0x7484, 0xAD46, 0x7485, - 0xAD47, 0x7486, 0xAD48, 0x7488, 0xAD49, 0x7489, 0xAD4A, 0x748A, - 0xAD4B, 0x748C, 0xAD4C, 0x748D, 0xAD4D, 0x748F, 0xAD4E, 0x7491, - 0xAD4F, 0x7492, 0xAD50, 0x7493, 0xAD51, 0x7494, 0xAD52, 0x7495, - 0xAD53, 0x7496, 0xAD54, 0x7497, 0xAD55, 0x7498, 0xAD56, 0x7499, - 0xAD57, 0x749A, 0xAD58, 0x749B, 0xAD59, 0x749D, 0xAD5A, 0x749F, - 0xAD5B, 0x74A0, 0xAD5C, 0x74A1, 0xAD5D, 0x74A2, 0xAD5E, 0x74A3, - 0xAD5F, 0x74A4, 0xAD60, 0x74A5, 0xAD61, 0x74A6, 0xAD62, 0x74AA, - 0xAD63, 0x74AB, 0xAD64, 0x74AC, 0xAD65, 0x74AD, 0xAD66, 0x74AE, - 0xAD67, 0x74AF, 0xAD68, 0x74B0, 0xAD69, 0x74B1, 0xAD6A, 0x74B2, - 0xAD6B, 0x74B3, 0xAD6C, 0x74B4, 0xAD6D, 0x74B5, 0xAD6E, 0x74B6, - 0xAD6F, 0x74B7, 0xAD70, 0x74B8, 0xAD71, 0x74B9, 0xAD72, 0x74BB, - 0xAD73, 0x74BC, 0xAD74, 0x74BD, 0xAD75, 0x74BE, 0xAD76, 0x74BF, - 0xAD77, 0x74C0, 0xAD78, 0x74C1, 0xAD79, 0x74C2, 0xAD7A, 0x74C3, - 0xAD7B, 0x74C4, 0xAD7C, 0x74C5, 0xAD7D, 0x74C6, 0xAD7E, 0x74C7, - 0xAD80, 0x74C8, 0xAD81, 0x74C9, 0xAD82, 0x74CA, 0xAD83, 0x74CB, - 0xAD84, 0x74CC, 0xAD85, 0x74CD, 0xAD86, 0x74CE, 0xAD87, 0x74CF, - 0xAD88, 0x74D0, 0xAD89, 0x74D1, 0xAD8A, 0x74D3, 0xAD8B, 0x74D4, - 0xAD8C, 0x74D5, 0xAD8D, 0x74D6, 0xAD8E, 0x74D7, 0xAD8F, 0x74D8, - 0xAD90, 0x74D9, 0xAD91, 0x74DA, 0xAD92, 0x74DB, 0xAD93, 0x74DD, - 0xAD94, 0x74DF, 0xAD95, 0x74E1, 0xAD96, 0x74E5, 0xAD97, 0x74E7, - 0xAD98, 0x74E8, 0xAD99, 0x74E9, 0xAD9A, 0x74EA, 0xAD9B, 0x74EB, - 0xAD9C, 0x74EC, 0xAD9D, 0x74ED, 0xAD9E, 0x74F0, 0xAD9F, 0x74F1, - 0xADA0, 0x74F2, 0xAE40, 0x74F3, 0xAE41, 0x74F5, 0xAE42, 0x74F8, - 0xAE43, 0x74F9, 0xAE44, 0x74FA, 0xAE45, 0x74FB, 0xAE46, 0x74FC, - 0xAE47, 0x74FD, 0xAE48, 0x74FE, 0xAE49, 0x7500, 0xAE4A, 0x7501, - 0xAE4B, 0x7502, 0xAE4C, 0x7503, 0xAE4D, 0x7505, 0xAE4E, 0x7506, - 0xAE4F, 0x7507, 0xAE50, 0x7508, 0xAE51, 0x7509, 0xAE52, 0x750A, - 0xAE53, 0x750B, 0xAE54, 0x750C, 0xAE55, 0x750E, 0xAE56, 0x7510, - 0xAE57, 0x7512, 0xAE58, 0x7514, 0xAE59, 0x7515, 0xAE5A, 0x7516, - 0xAE5B, 0x7517, 0xAE5C, 0x751B, 0xAE5D, 0x751D, 0xAE5E, 0x751E, - 0xAE5F, 0x7520, 0xAE60, 0x7521, 0xAE61, 0x7522, 0xAE62, 0x7523, - 0xAE63, 0x7524, 0xAE64, 0x7526, 0xAE65, 0x7527, 0xAE66, 0x752A, - 0xAE67, 0x752E, 0xAE68, 0x7534, 0xAE69, 0x7536, 0xAE6A, 0x7539, - 0xAE6B, 0x753C, 0xAE6C, 0x753D, 0xAE6D, 0x753F, 0xAE6E, 0x7541, - 0xAE6F, 0x7542, 0xAE70, 0x7543, 0xAE71, 0x7544, 0xAE72, 0x7546, - 0xAE73, 0x7547, 0xAE74, 0x7549, 0xAE75, 0x754A, 0xAE76, 0x754D, - 0xAE77, 0x7550, 0xAE78, 0x7551, 0xAE79, 0x7552, 0xAE7A, 0x7553, - 0xAE7B, 0x7555, 0xAE7C, 0x7556, 0xAE7D, 0x7557, 0xAE7E, 0x7558, - 0xAE80, 0x755D, 0xAE81, 0x755E, 0xAE82, 0x755F, 0xAE83, 0x7560, - 0xAE84, 0x7561, 0xAE85, 0x7562, 0xAE86, 0x7563, 0xAE87, 0x7564, - 0xAE88, 0x7567, 0xAE89, 0x7568, 0xAE8A, 0x7569, 0xAE8B, 0x756B, - 0xAE8C, 0x756C, 0xAE8D, 0x756D, 0xAE8E, 0x756E, 0xAE8F, 0x756F, - 0xAE90, 0x7570, 0xAE91, 0x7571, 0xAE92, 0x7573, 0xAE93, 0x7575, - 0xAE94, 0x7576, 0xAE95, 0x7577, 0xAE96, 0x757A, 0xAE97, 0x757B, - 0xAE98, 0x757C, 0xAE99, 0x757D, 0xAE9A, 0x757E, 0xAE9B, 0x7580, - 0xAE9C, 0x7581, 0xAE9D, 0x7582, 0xAE9E, 0x7584, 0xAE9F, 0x7585, - 0xAEA0, 0x7587, 0xAF40, 0x7588, 0xAF41, 0x7589, 0xAF42, 0x758A, - 0xAF43, 0x758C, 0xAF44, 0x758D, 0xAF45, 0x758E, 0xAF46, 0x7590, - 0xAF47, 0x7593, 0xAF48, 0x7595, 0xAF49, 0x7598, 0xAF4A, 0x759B, - 0xAF4B, 0x759C, 0xAF4C, 0x759E, 0xAF4D, 0x75A2, 0xAF4E, 0x75A6, - 0xAF4F, 0x75A7, 0xAF50, 0x75A8, 0xAF51, 0x75A9, 0xAF52, 0x75AA, - 0xAF53, 0x75AD, 0xAF54, 0x75B6, 0xAF55, 0x75B7, 0xAF56, 0x75BA, - 0xAF57, 0x75BB, 0xAF58, 0x75BF, 0xAF59, 0x75C0, 0xAF5A, 0x75C1, - 0xAF5B, 0x75C6, 0xAF5C, 0x75CB, 0xAF5D, 0x75CC, 0xAF5E, 0x75CE, - 0xAF5F, 0x75CF, 0xAF60, 0x75D0, 0xAF61, 0x75D1, 0xAF62, 0x75D3, - 0xAF63, 0x75D7, 0xAF64, 0x75D9, 0xAF65, 0x75DA, 0xAF66, 0x75DC, - 0xAF67, 0x75DD, 0xAF68, 0x75DF, 0xAF69, 0x75E0, 0xAF6A, 0x75E1, - 0xAF6B, 0x75E5, 0xAF6C, 0x75E9, 0xAF6D, 0x75EC, 0xAF6E, 0x75ED, - 0xAF6F, 0x75EE, 0xAF70, 0x75EF, 0xAF71, 0x75F2, 0xAF72, 0x75F3, - 0xAF73, 0x75F5, 0xAF74, 0x75F6, 0xAF75, 0x75F7, 0xAF76, 0x75F8, - 0xAF77, 0x75FA, 0xAF78, 0x75FB, 0xAF79, 0x75FD, 0xAF7A, 0x75FE, - 0xAF7B, 0x7602, 0xAF7C, 0x7604, 0xAF7D, 0x7606, 0xAF7E, 0x7607, - 0xAF80, 0x7608, 0xAF81, 0x7609, 0xAF82, 0x760B, 0xAF83, 0x760D, - 0xAF84, 0x760E, 0xAF85, 0x760F, 0xAF86, 0x7611, 0xAF87, 0x7612, - 0xAF88, 0x7613, 0xAF89, 0x7614, 0xAF8A, 0x7616, 0xAF8B, 0x761A, - 0xAF8C, 0x761C, 0xAF8D, 0x761D, 0xAF8E, 0x761E, 0xAF8F, 0x7621, - 0xAF90, 0x7623, 0xAF91, 0x7627, 0xAF92, 0x7628, 0xAF93, 0x762C, - 0xAF94, 0x762E, 0xAF95, 0x762F, 0xAF96, 0x7631, 0xAF97, 0x7632, - 0xAF98, 0x7636, 0xAF99, 0x7637, 0xAF9A, 0x7639, 0xAF9B, 0x763A, - 0xAF9C, 0x763B, 0xAF9D, 0x763D, 0xAF9E, 0x7641, 0xAF9F, 0x7642, - 0xAFA0, 0x7644, 0xB040, 0x7645, 0xB041, 0x7646, 0xB042, 0x7647, - 0xB043, 0x7648, 0xB044, 0x7649, 0xB045, 0x764A, 0xB046, 0x764B, - 0xB047, 0x764E, 0xB048, 0x764F, 0xB049, 0x7650, 0xB04A, 0x7651, - 0xB04B, 0x7652, 0xB04C, 0x7653, 0xB04D, 0x7655, 0xB04E, 0x7657, - 0xB04F, 0x7658, 0xB050, 0x7659, 0xB051, 0x765A, 0xB052, 0x765B, - 0xB053, 0x765D, 0xB054, 0x765F, 0xB055, 0x7660, 0xB056, 0x7661, - 0xB057, 0x7662, 0xB058, 0x7664, 0xB059, 0x7665, 0xB05A, 0x7666, - 0xB05B, 0x7667, 0xB05C, 0x7668, 0xB05D, 0x7669, 0xB05E, 0x766A, - 0xB05F, 0x766C, 0xB060, 0x766D, 0xB061, 0x766E, 0xB062, 0x7670, - 0xB063, 0x7671, 0xB064, 0x7672, 0xB065, 0x7673, 0xB066, 0x7674, - 0xB067, 0x7675, 0xB068, 0x7676, 0xB069, 0x7677, 0xB06A, 0x7679, - 0xB06B, 0x767A, 0xB06C, 0x767C, 0xB06D, 0x767F, 0xB06E, 0x7680, - 0xB06F, 0x7681, 0xB070, 0x7683, 0xB071, 0x7685, 0xB072, 0x7689, - 0xB073, 0x768A, 0xB074, 0x768C, 0xB075, 0x768D, 0xB076, 0x768F, - 0xB077, 0x7690, 0xB078, 0x7692, 0xB079, 0x7694, 0xB07A, 0x7695, - 0xB07B, 0x7697, 0xB07C, 0x7698, 0xB07D, 0x769A, 0xB07E, 0x769B, - 0xB080, 0x769C, 0xB081, 0x769D, 0xB082, 0x769E, 0xB083, 0x769F, - 0xB084, 0x76A0, 0xB085, 0x76A1, 0xB086, 0x76A2, 0xB087, 0x76A3, - 0xB088, 0x76A5, 0xB089, 0x76A6, 0xB08A, 0x76A7, 0xB08B, 0x76A8, - 0xB08C, 0x76A9, 0xB08D, 0x76AA, 0xB08E, 0x76AB, 0xB08F, 0x76AC, - 0xB090, 0x76AD, 0xB091, 0x76AF, 0xB092, 0x76B0, 0xB093, 0x76B3, - 0xB094, 0x76B5, 0xB095, 0x76B6, 0xB096, 0x76B7, 0xB097, 0x76B8, - 0xB098, 0x76B9, 0xB099, 0x76BA, 0xB09A, 0x76BB, 0xB09B, 0x76BC, - 0xB09C, 0x76BD, 0xB09D, 0x76BE, 0xB09E, 0x76C0, 0xB09F, 0x76C1, - 0xB0A0, 0x76C3, 0xB0A1, 0x554A, 0xB0A2, 0x963F, 0xB0A3, 0x57C3, - 0xB0A4, 0x6328, 0xB0A5, 0x54CE, 0xB0A6, 0x5509, 0xB0A7, 0x54C0, - 0xB0A8, 0x7691, 0xB0A9, 0x764C, 0xB0AA, 0x853C, 0xB0AB, 0x77EE, - 0xB0AC, 0x827E, 0xB0AD, 0x788D, 0xB0AE, 0x7231, 0xB0AF, 0x9698, - 0xB0B0, 0x978D, 0xB0B1, 0x6C28, 0xB0B2, 0x5B89, 0xB0B3, 0x4FFA, - 0xB0B4, 0x6309, 0xB0B5, 0x6697, 0xB0B6, 0x5CB8, 0xB0B7, 0x80FA, - 0xB0B8, 0x6848, 0xB0B9, 0x80AE, 0xB0BA, 0x6602, 0xB0BB, 0x76CE, - 0xB0BC, 0x51F9, 0xB0BD, 0x6556, 0xB0BE, 0x71AC, 0xB0BF, 0x7FF1, - 0xB0C0, 0x8884, 0xB0C1, 0x50B2, 0xB0C2, 0x5965, 0xB0C3, 0x61CA, - 0xB0C4, 0x6FB3, 0xB0C5, 0x82AD, 0xB0C6, 0x634C, 0xB0C7, 0x6252, - 0xB0C8, 0x53ED, 0xB0C9, 0x5427, 0xB0CA, 0x7B06, 0xB0CB, 0x516B, - 0xB0CC, 0x75A4, 0xB0CD, 0x5DF4, 0xB0CE, 0x62D4, 0xB0CF, 0x8DCB, - 0xB0D0, 0x9776, 0xB0D1, 0x628A, 0xB0D2, 0x8019, 0xB0D3, 0x575D, - 0xB0D4, 0x9738, 0xB0D5, 0x7F62, 0xB0D6, 0x7238, 0xB0D7, 0x767D, - 0xB0D8, 0x67CF, 0xB0D9, 0x767E, 0xB0DA, 0x6446, 0xB0DB, 0x4F70, - 0xB0DC, 0x8D25, 0xB0DD, 0x62DC, 0xB0DE, 0x7A17, 0xB0DF, 0x6591, - 0xB0E0, 0x73ED, 0xB0E1, 0x642C, 0xB0E2, 0x6273, 0xB0E3, 0x822C, - 0xB0E4, 0x9881, 0xB0E5, 0x677F, 0xB0E6, 0x7248, 0xB0E7, 0x626E, - 0xB0E8, 0x62CC, 0xB0E9, 0x4F34, 0xB0EA, 0x74E3, 0xB0EB, 0x534A, - 0xB0EC, 0x529E, 0xB0ED, 0x7ECA, 0xB0EE, 0x90A6, 0xB0EF, 0x5E2E, - 0xB0F0, 0x6886, 0xB0F1, 0x699C, 0xB0F2, 0x8180, 0xB0F3, 0x7ED1, - 0xB0F4, 0x68D2, 0xB0F5, 0x78C5, 0xB0F6, 0x868C, 0xB0F7, 0x9551, - 0xB0F8, 0x508D, 0xB0F9, 0x8C24, 0xB0FA, 0x82DE, 0xB0FB, 0x80DE, - 0xB0FC, 0x5305, 0xB0FD, 0x8912, 0xB0FE, 0x5265, 0xB140, 0x76C4, - 0xB141, 0x76C7, 0xB142, 0x76C9, 0xB143, 0x76CB, 0xB144, 0x76CC, - 0xB145, 0x76D3, 0xB146, 0x76D5, 0xB147, 0x76D9, 0xB148, 0x76DA, - 0xB149, 0x76DC, 0xB14A, 0x76DD, 0xB14B, 0x76DE, 0xB14C, 0x76E0, - 0xB14D, 0x76E1, 0xB14E, 0x76E2, 0xB14F, 0x76E3, 0xB150, 0x76E4, - 0xB151, 0x76E6, 0xB152, 0x76E7, 0xB153, 0x76E8, 0xB154, 0x76E9, - 0xB155, 0x76EA, 0xB156, 0x76EB, 0xB157, 0x76EC, 0xB158, 0x76ED, - 0xB159, 0x76F0, 0xB15A, 0x76F3, 0xB15B, 0x76F5, 0xB15C, 0x76F6, - 0xB15D, 0x76F7, 0xB15E, 0x76FA, 0xB15F, 0x76FB, 0xB160, 0x76FD, - 0xB161, 0x76FF, 0xB162, 0x7700, 0xB163, 0x7702, 0xB164, 0x7703, - 0xB165, 0x7705, 0xB166, 0x7706, 0xB167, 0x770A, 0xB168, 0x770C, - 0xB169, 0x770E, 0xB16A, 0x770F, 0xB16B, 0x7710, 0xB16C, 0x7711, - 0xB16D, 0x7712, 0xB16E, 0x7713, 0xB16F, 0x7714, 0xB170, 0x7715, - 0xB171, 0x7716, 0xB172, 0x7717, 0xB173, 0x7718, 0xB174, 0x771B, - 0xB175, 0x771C, 0xB176, 0x771D, 0xB177, 0x771E, 0xB178, 0x7721, - 0xB179, 0x7723, 0xB17A, 0x7724, 0xB17B, 0x7725, 0xB17C, 0x7727, - 0xB17D, 0x772A, 0xB17E, 0x772B, 0xB180, 0x772C, 0xB181, 0x772E, - 0xB182, 0x7730, 0xB183, 0x7731, 0xB184, 0x7732, 0xB185, 0x7733, - 0xB186, 0x7734, 0xB187, 0x7739, 0xB188, 0x773B, 0xB189, 0x773D, - 0xB18A, 0x773E, 0xB18B, 0x773F, 0xB18C, 0x7742, 0xB18D, 0x7744, - 0xB18E, 0x7745, 0xB18F, 0x7746, 0xB190, 0x7748, 0xB191, 0x7749, - 0xB192, 0x774A, 0xB193, 0x774B, 0xB194, 0x774C, 0xB195, 0x774D, - 0xB196, 0x774E, 0xB197, 0x774F, 0xB198, 0x7752, 0xB199, 0x7753, - 0xB19A, 0x7754, 0xB19B, 0x7755, 0xB19C, 0x7756, 0xB19D, 0x7757, - 0xB19E, 0x7758, 0xB19F, 0x7759, 0xB1A0, 0x775C, 0xB1A1, 0x8584, - 0xB1A2, 0x96F9, 0xB1A3, 0x4FDD, 0xB1A4, 0x5821, 0xB1A5, 0x9971, - 0xB1A6, 0x5B9D, 0xB1A7, 0x62B1, 0xB1A8, 0x62A5, 0xB1A9, 0x66B4, - 0xB1AA, 0x8C79, 0xB1AB, 0x9C8D, 0xB1AC, 0x7206, 0xB1AD, 0x676F, - 0xB1AE, 0x7891, 0xB1AF, 0x60B2, 0xB1B0, 0x5351, 0xB1B1, 0x5317, - 0xB1B2, 0x8F88, 0xB1B3, 0x80CC, 0xB1B4, 0x8D1D, 0xB1B5, 0x94A1, - 0xB1B6, 0x500D, 0xB1B7, 0x72C8, 0xB1B8, 0x5907, 0xB1B9, 0x60EB, - 0xB1BA, 0x7119, 0xB1BB, 0x88AB, 0xB1BC, 0x5954, 0xB1BD, 0x82EF, - 0xB1BE, 0x672C, 0xB1BF, 0x7B28, 0xB1C0, 0x5D29, 0xB1C1, 0x7EF7, - 0xB1C2, 0x752D, 0xB1C3, 0x6CF5, 0xB1C4, 0x8E66, 0xB1C5, 0x8FF8, - 0xB1C6, 0x903C, 0xB1C7, 0x9F3B, 0xB1C8, 0x6BD4, 0xB1C9, 0x9119, - 0xB1CA, 0x7B14, 0xB1CB, 0x5F7C, 0xB1CC, 0x78A7, 0xB1CD, 0x84D6, - 0xB1CE, 0x853D, 0xB1CF, 0x6BD5, 0xB1D0, 0x6BD9, 0xB1D1, 0x6BD6, - 0xB1D2, 0x5E01, 0xB1D3, 0x5E87, 0xB1D4, 0x75F9, 0xB1D5, 0x95ED, - 0xB1D6, 0x655D, 0xB1D7, 0x5F0A, 0xB1D8, 0x5FC5, 0xB1D9, 0x8F9F, - 0xB1DA, 0x58C1, 0xB1DB, 0x81C2, 0xB1DC, 0x907F, 0xB1DD, 0x965B, - 0xB1DE, 0x97AD, 0xB1DF, 0x8FB9, 0xB1E0, 0x7F16, 0xB1E1, 0x8D2C, - 0xB1E2, 0x6241, 0xB1E3, 0x4FBF, 0xB1E4, 0x53D8, 0xB1E5, 0x535E, - 0xB1E6, 0x8FA8, 0xB1E7, 0x8FA9, 0xB1E8, 0x8FAB, 0xB1E9, 0x904D, - 0xB1EA, 0x6807, 0xB1EB, 0x5F6A, 0xB1EC, 0x8198, 0xB1ED, 0x8868, - 0xB1EE, 0x9CD6, 0xB1EF, 0x618B, 0xB1F0, 0x522B, 0xB1F1, 0x762A, - 0xB1F2, 0x5F6C, 0xB1F3, 0x658C, 0xB1F4, 0x6FD2, 0xB1F5, 0x6EE8, - 0xB1F6, 0x5BBE, 0xB1F7, 0x6448, 0xB1F8, 0x5175, 0xB1F9, 0x51B0, - 0xB1FA, 0x67C4, 0xB1FB, 0x4E19, 0xB1FC, 0x79C9, 0xB1FD, 0x997C, - 0xB1FE, 0x70B3, 0xB240, 0x775D, 0xB241, 0x775E, 0xB242, 0x775F, - 0xB243, 0x7760, 0xB244, 0x7764, 0xB245, 0x7767, 0xB246, 0x7769, - 0xB247, 0x776A, 0xB248, 0x776D, 0xB249, 0x776E, 0xB24A, 0x776F, - 0xB24B, 0x7770, 0xB24C, 0x7771, 0xB24D, 0x7772, 0xB24E, 0x7773, - 0xB24F, 0x7774, 0xB250, 0x7775, 0xB251, 0x7776, 0xB252, 0x7777, - 0xB253, 0x7778, 0xB254, 0x777A, 0xB255, 0x777B, 0xB256, 0x777C, - 0xB257, 0x7781, 0xB258, 0x7782, 0xB259, 0x7783, 0xB25A, 0x7786, - 0xB25B, 0x7787, 0xB25C, 0x7788, 0xB25D, 0x7789, 0xB25E, 0x778A, - 0xB25F, 0x778B, 0xB260, 0x778F, 0xB261, 0x7790, 0xB262, 0x7793, - 0xB263, 0x7794, 0xB264, 0x7795, 0xB265, 0x7796, 0xB266, 0x7797, - 0xB267, 0x7798, 0xB268, 0x7799, 0xB269, 0x779A, 0xB26A, 0x779B, - 0xB26B, 0x779C, 0xB26C, 0x779D, 0xB26D, 0x779E, 0xB26E, 0x77A1, - 0xB26F, 0x77A3, 0xB270, 0x77A4, 0xB271, 0x77A6, 0xB272, 0x77A8, - 0xB273, 0x77AB, 0xB274, 0x77AD, 0xB275, 0x77AE, 0xB276, 0x77AF, - 0xB277, 0x77B1, 0xB278, 0x77B2, 0xB279, 0x77B4, 0xB27A, 0x77B6, - 0xB27B, 0x77B7, 0xB27C, 0x77B8, 0xB27D, 0x77B9, 0xB27E, 0x77BA, - 0xB280, 0x77BC, 0xB281, 0x77BE, 0xB282, 0x77C0, 0xB283, 0x77C1, - 0xB284, 0x77C2, 0xB285, 0x77C3, 0xB286, 0x77C4, 0xB287, 0x77C5, - 0xB288, 0x77C6, 0xB289, 0x77C7, 0xB28A, 0x77C8, 0xB28B, 0x77C9, - 0xB28C, 0x77CA, 0xB28D, 0x77CB, 0xB28E, 0x77CC, 0xB28F, 0x77CE, - 0xB290, 0x77CF, 0xB291, 0x77D0, 0xB292, 0x77D1, 0xB293, 0x77D2, - 0xB294, 0x77D3, 0xB295, 0x77D4, 0xB296, 0x77D5, 0xB297, 0x77D6, - 0xB298, 0x77D8, 0xB299, 0x77D9, 0xB29A, 0x77DA, 0xB29B, 0x77DD, - 0xB29C, 0x77DE, 0xB29D, 0x77DF, 0xB29E, 0x77E0, 0xB29F, 0x77E1, - 0xB2A0, 0x77E4, 0xB2A1, 0x75C5, 0xB2A2, 0x5E76, 0xB2A3, 0x73BB, - 0xB2A4, 0x83E0, 0xB2A5, 0x64AD, 0xB2A6, 0x62E8, 0xB2A7, 0x94B5, - 0xB2A8, 0x6CE2, 0xB2A9, 0x535A, 0xB2AA, 0x52C3, 0xB2AB, 0x640F, - 0xB2AC, 0x94C2, 0xB2AD, 0x7B94, 0xB2AE, 0x4F2F, 0xB2AF, 0x5E1B, - 0xB2B0, 0x8236, 0xB2B1, 0x8116, 0xB2B2, 0x818A, 0xB2B3, 0x6E24, - 0xB2B4, 0x6CCA, 0xB2B5, 0x9A73, 0xB2B6, 0x6355, 0xB2B7, 0x535C, - 0xB2B8, 0x54FA, 0xB2B9, 0x8865, 0xB2BA, 0x57E0, 0xB2BB, 0x4E0D, - 0xB2BC, 0x5E03, 0xB2BD, 0x6B65, 0xB2BE, 0x7C3F, 0xB2BF, 0x90E8, - 0xB2C0, 0x6016, 0xB2C1, 0x64E6, 0xB2C2, 0x731C, 0xB2C3, 0x88C1, - 0xB2C4, 0x6750, 0xB2C5, 0x624D, 0xB2C6, 0x8D22, 0xB2C7, 0x776C, - 0xB2C8, 0x8E29, 0xB2C9, 0x91C7, 0xB2CA, 0x5F69, 0xB2CB, 0x83DC, - 0xB2CC, 0x8521, 0xB2CD, 0x9910, 0xB2CE, 0x53C2, 0xB2CF, 0x8695, - 0xB2D0, 0x6B8B, 0xB2D1, 0x60ED, 0xB2D2, 0x60E8, 0xB2D3, 0x707F, - 0xB2D4, 0x82CD, 0xB2D5, 0x8231, 0xB2D6, 0x4ED3, 0xB2D7, 0x6CA7, - 0xB2D8, 0x85CF, 0xB2D9, 0x64CD, 0xB2DA, 0x7CD9, 0xB2DB, 0x69FD, - 0xB2DC, 0x66F9, 0xB2DD, 0x8349, 0xB2DE, 0x5395, 0xB2DF, 0x7B56, - 0xB2E0, 0x4FA7, 0xB2E1, 0x518C, 0xB2E2, 0x6D4B, 0xB2E3, 0x5C42, - 0xB2E4, 0x8E6D, 0xB2E5, 0x63D2, 0xB2E6, 0x53C9, 0xB2E7, 0x832C, - 0xB2E8, 0x8336, 0xB2E9, 0x67E5, 0xB2EA, 0x78B4, 0xB2EB, 0x643D, - 0xB2EC, 0x5BDF, 0xB2ED, 0x5C94, 0xB2EE, 0x5DEE, 0xB2EF, 0x8BE7, - 0xB2F0, 0x62C6, 0xB2F1, 0x67F4, 0xB2F2, 0x8C7A, 0xB2F3, 0x6400, - 0xB2F4, 0x63BA, 0xB2F5, 0x8749, 0xB2F6, 0x998B, 0xB2F7, 0x8C17, - 0xB2F8, 0x7F20, 0xB2F9, 0x94F2, 0xB2FA, 0x4EA7, 0xB2FB, 0x9610, - 0xB2FC, 0x98A4, 0xB2FD, 0x660C, 0xB2FE, 0x7316, 0xB340, 0x77E6, - 0xB341, 0x77E8, 0xB342, 0x77EA, 0xB343, 0x77EF, 0xB344, 0x77F0, - 0xB345, 0x77F1, 0xB346, 0x77F2, 0xB347, 0x77F4, 0xB348, 0x77F5, - 0xB349, 0x77F7, 0xB34A, 0x77F9, 0xB34B, 0x77FA, 0xB34C, 0x77FB, - 0xB34D, 0x77FC, 0xB34E, 0x7803, 0xB34F, 0x7804, 0xB350, 0x7805, - 0xB351, 0x7806, 0xB352, 0x7807, 0xB353, 0x7808, 0xB354, 0x780A, - 0xB355, 0x780B, 0xB356, 0x780E, 0xB357, 0x780F, 0xB358, 0x7810, - 0xB359, 0x7813, 0xB35A, 0x7815, 0xB35B, 0x7819, 0xB35C, 0x781B, - 0xB35D, 0x781E, 0xB35E, 0x7820, 0xB35F, 0x7821, 0xB360, 0x7822, - 0xB361, 0x7824, 0xB362, 0x7828, 0xB363, 0x782A, 0xB364, 0x782B, - 0xB365, 0x782E, 0xB366, 0x782F, 0xB367, 0x7831, 0xB368, 0x7832, - 0xB369, 0x7833, 0xB36A, 0x7835, 0xB36B, 0x7836, 0xB36C, 0x783D, - 0xB36D, 0x783F, 0xB36E, 0x7841, 0xB36F, 0x7842, 0xB370, 0x7843, - 0xB371, 0x7844, 0xB372, 0x7846, 0xB373, 0x7848, 0xB374, 0x7849, - 0xB375, 0x784A, 0xB376, 0x784B, 0xB377, 0x784D, 0xB378, 0x784F, - 0xB379, 0x7851, 0xB37A, 0x7853, 0xB37B, 0x7854, 0xB37C, 0x7858, - 0xB37D, 0x7859, 0xB37E, 0x785A, 0xB380, 0x785B, 0xB381, 0x785C, - 0xB382, 0x785E, 0xB383, 0x785F, 0xB384, 0x7860, 0xB385, 0x7861, - 0xB386, 0x7862, 0xB387, 0x7863, 0xB388, 0x7864, 0xB389, 0x7865, - 0xB38A, 0x7866, 0xB38B, 0x7867, 0xB38C, 0x7868, 0xB38D, 0x7869, - 0xB38E, 0x786F, 0xB38F, 0x7870, 0xB390, 0x7871, 0xB391, 0x7872, - 0xB392, 0x7873, 0xB393, 0x7874, 0xB394, 0x7875, 0xB395, 0x7876, - 0xB396, 0x7878, 0xB397, 0x7879, 0xB398, 0x787A, 0xB399, 0x787B, - 0xB39A, 0x787D, 0xB39B, 0x787E, 0xB39C, 0x787F, 0xB39D, 0x7880, - 0xB39E, 0x7881, 0xB39F, 0x7882, 0xB3A0, 0x7883, 0xB3A1, 0x573A, - 0xB3A2, 0x5C1D, 0xB3A3, 0x5E38, 0xB3A4, 0x957F, 0xB3A5, 0x507F, - 0xB3A6, 0x80A0, 0xB3A7, 0x5382, 0xB3A8, 0x655E, 0xB3A9, 0x7545, - 0xB3AA, 0x5531, 0xB3AB, 0x5021, 0xB3AC, 0x8D85, 0xB3AD, 0x6284, - 0xB3AE, 0x949E, 0xB3AF, 0x671D, 0xB3B0, 0x5632, 0xB3B1, 0x6F6E, - 0xB3B2, 0x5DE2, 0xB3B3, 0x5435, 0xB3B4, 0x7092, 0xB3B5, 0x8F66, - 0xB3B6, 0x626F, 0xB3B7, 0x64A4, 0xB3B8, 0x63A3, 0xB3B9, 0x5F7B, - 0xB3BA, 0x6F88, 0xB3BB, 0x90F4, 0xB3BC, 0x81E3, 0xB3BD, 0x8FB0, - 0xB3BE, 0x5C18, 0xB3BF, 0x6668, 0xB3C0, 0x5FF1, 0xB3C1, 0x6C89, - 0xB3C2, 0x9648, 0xB3C3, 0x8D81, 0xB3C4, 0x886C, 0xB3C5, 0x6491, - 0xB3C6, 0x79F0, 0xB3C7, 0x57CE, 0xB3C8, 0x6A59, 0xB3C9, 0x6210, - 0xB3CA, 0x5448, 0xB3CB, 0x4E58, 0xB3CC, 0x7A0B, 0xB3CD, 0x60E9, - 0xB3CE, 0x6F84, 0xB3CF, 0x8BDA, 0xB3D0, 0x627F, 0xB3D1, 0x901E, - 0xB3D2, 0x9A8B, 0xB3D3, 0x79E4, 0xB3D4, 0x5403, 0xB3D5, 0x75F4, - 0xB3D6, 0x6301, 0xB3D7, 0x5319, 0xB3D8, 0x6C60, 0xB3D9, 0x8FDF, - 0xB3DA, 0x5F1B, 0xB3DB, 0x9A70, 0xB3DC, 0x803B, 0xB3DD, 0x9F7F, - 0xB3DE, 0x4F88, 0xB3DF, 0x5C3A, 0xB3E0, 0x8D64, 0xB3E1, 0x7FC5, - 0xB3E2, 0x65A5, 0xB3E3, 0x70BD, 0xB3E4, 0x5145, 0xB3E5, 0x51B2, - 0xB3E6, 0x866B, 0xB3E7, 0x5D07, 0xB3E8, 0x5BA0, 0xB3E9, 0x62BD, - 0xB3EA, 0x916C, 0xB3EB, 0x7574, 0xB3EC, 0x8E0C, 0xB3ED, 0x7A20, - 0xB3EE, 0x6101, 0xB3EF, 0x7B79, 0xB3F0, 0x4EC7, 0xB3F1, 0x7EF8, - 0xB3F2, 0x7785, 0xB3F3, 0x4E11, 0xB3F4, 0x81ED, 0xB3F5, 0x521D, - 0xB3F6, 0x51FA, 0xB3F7, 0x6A71, 0xB3F8, 0x53A8, 0xB3F9, 0x8E87, - 0xB3FA, 0x9504, 0xB3FB, 0x96CF, 0xB3FC, 0x6EC1, 0xB3FD, 0x9664, - 0xB3FE, 0x695A, 0xB440, 0x7884, 0xB441, 0x7885, 0xB442, 0x7886, - 0xB443, 0x7888, 0xB444, 0x788A, 0xB445, 0x788B, 0xB446, 0x788F, - 0xB447, 0x7890, 0xB448, 0x7892, 0xB449, 0x7894, 0xB44A, 0x7895, - 0xB44B, 0x7896, 0xB44C, 0x7899, 0xB44D, 0x789D, 0xB44E, 0x789E, - 0xB44F, 0x78A0, 0xB450, 0x78A2, 0xB451, 0x78A4, 0xB452, 0x78A6, - 0xB453, 0x78A8, 0xB454, 0x78A9, 0xB455, 0x78AA, 0xB456, 0x78AB, - 0xB457, 0x78AC, 0xB458, 0x78AD, 0xB459, 0x78AE, 0xB45A, 0x78AF, - 0xB45B, 0x78B5, 0xB45C, 0x78B6, 0xB45D, 0x78B7, 0xB45E, 0x78B8, - 0xB45F, 0x78BA, 0xB460, 0x78BB, 0xB461, 0x78BC, 0xB462, 0x78BD, - 0xB463, 0x78BF, 0xB464, 0x78C0, 0xB465, 0x78C2, 0xB466, 0x78C3, - 0xB467, 0x78C4, 0xB468, 0x78C6, 0xB469, 0x78C7, 0xB46A, 0x78C8, - 0xB46B, 0x78CC, 0xB46C, 0x78CD, 0xB46D, 0x78CE, 0xB46E, 0x78CF, - 0xB46F, 0x78D1, 0xB470, 0x78D2, 0xB471, 0x78D3, 0xB472, 0x78D6, - 0xB473, 0x78D7, 0xB474, 0x78D8, 0xB475, 0x78DA, 0xB476, 0x78DB, - 0xB477, 0x78DC, 0xB478, 0x78DD, 0xB479, 0x78DE, 0xB47A, 0x78DF, - 0xB47B, 0x78E0, 0xB47C, 0x78E1, 0xB47D, 0x78E2, 0xB47E, 0x78E3, - 0xB480, 0x78E4, 0xB481, 0x78E5, 0xB482, 0x78E6, 0xB483, 0x78E7, - 0xB484, 0x78E9, 0xB485, 0x78EA, 0xB486, 0x78EB, 0xB487, 0x78ED, - 0xB488, 0x78EE, 0xB489, 0x78EF, 0xB48A, 0x78F0, 0xB48B, 0x78F1, - 0xB48C, 0x78F3, 0xB48D, 0x78F5, 0xB48E, 0x78F6, 0xB48F, 0x78F8, - 0xB490, 0x78F9, 0xB491, 0x78FB, 0xB492, 0x78FC, 0xB493, 0x78FD, - 0xB494, 0x78FE, 0xB495, 0x78FF, 0xB496, 0x7900, 0xB497, 0x7902, - 0xB498, 0x7903, 0xB499, 0x7904, 0xB49A, 0x7906, 0xB49B, 0x7907, - 0xB49C, 0x7908, 0xB49D, 0x7909, 0xB49E, 0x790A, 0xB49F, 0x790B, - 0xB4A0, 0x790C, 0xB4A1, 0x7840, 0xB4A2, 0x50A8, 0xB4A3, 0x77D7, - 0xB4A4, 0x6410, 0xB4A5, 0x89E6, 0xB4A6, 0x5904, 0xB4A7, 0x63E3, - 0xB4A8, 0x5DDD, 0xB4A9, 0x7A7F, 0xB4AA, 0x693D, 0xB4AB, 0x4F20, - 0xB4AC, 0x8239, 0xB4AD, 0x5598, 0xB4AE, 0x4E32, 0xB4AF, 0x75AE, - 0xB4B0, 0x7A97, 0xB4B1, 0x5E62, 0xB4B2, 0x5E8A, 0xB4B3, 0x95EF, - 0xB4B4, 0x521B, 0xB4B5, 0x5439, 0xB4B6, 0x708A, 0xB4B7, 0x6376, - 0xB4B8, 0x9524, 0xB4B9, 0x5782, 0xB4BA, 0x6625, 0xB4BB, 0x693F, - 0xB4BC, 0x9187, 0xB4BD, 0x5507, 0xB4BE, 0x6DF3, 0xB4BF, 0x7EAF, - 0xB4C0, 0x8822, 0xB4C1, 0x6233, 0xB4C2, 0x7EF0, 0xB4C3, 0x75B5, - 0xB4C4, 0x8328, 0xB4C5, 0x78C1, 0xB4C6, 0x96CC, 0xB4C7, 0x8F9E, - 0xB4C8, 0x6148, 0xB4C9, 0x74F7, 0xB4CA, 0x8BCD, 0xB4CB, 0x6B64, - 0xB4CC, 0x523A, 0xB4CD, 0x8D50, 0xB4CE, 0x6B21, 0xB4CF, 0x806A, - 0xB4D0, 0x8471, 0xB4D1, 0x56F1, 0xB4D2, 0x5306, 0xB4D3, 0x4ECE, - 0xB4D4, 0x4E1B, 0xB4D5, 0x51D1, 0xB4D6, 0x7C97, 0xB4D7, 0x918B, - 0xB4D8, 0x7C07, 0xB4D9, 0x4FC3, 0xB4DA, 0x8E7F, 0xB4DB, 0x7BE1, - 0xB4DC, 0x7A9C, 0xB4DD, 0x6467, 0xB4DE, 0x5D14, 0xB4DF, 0x50AC, - 0xB4E0, 0x8106, 0xB4E1, 0x7601, 0xB4E2, 0x7CB9, 0xB4E3, 0x6DEC, - 0xB4E4, 0x7FE0, 0xB4E5, 0x6751, 0xB4E6, 0x5B58, 0xB4E7, 0x5BF8, - 0xB4E8, 0x78CB, 0xB4E9, 0x64AE, 0xB4EA, 0x6413, 0xB4EB, 0x63AA, - 0xB4EC, 0x632B, 0xB4ED, 0x9519, 0xB4EE, 0x642D, 0xB4EF, 0x8FBE, - 0xB4F0, 0x7B54, 0xB4F1, 0x7629, 0xB4F2, 0x6253, 0xB4F3, 0x5927, - 0xB4F4, 0x5446, 0xB4F5, 0x6B79, 0xB4F6, 0x50A3, 0xB4F7, 0x6234, - 0xB4F8, 0x5E26, 0xB4F9, 0x6B86, 0xB4FA, 0x4EE3, 0xB4FB, 0x8D37, - 0xB4FC, 0x888B, 0xB4FD, 0x5F85, 0xB4FE, 0x902E, 0xB540, 0x790D, - 0xB541, 0x790E, 0xB542, 0x790F, 0xB543, 0x7910, 0xB544, 0x7911, - 0xB545, 0x7912, 0xB546, 0x7914, 0xB547, 0x7915, 0xB548, 0x7916, - 0xB549, 0x7917, 0xB54A, 0x7918, 0xB54B, 0x7919, 0xB54C, 0x791A, - 0xB54D, 0x791B, 0xB54E, 0x791C, 0xB54F, 0x791D, 0xB550, 0x791F, - 0xB551, 0x7920, 0xB552, 0x7921, 0xB553, 0x7922, 0xB554, 0x7923, - 0xB555, 0x7925, 0xB556, 0x7926, 0xB557, 0x7927, 0xB558, 0x7928, - 0xB559, 0x7929, 0xB55A, 0x792A, 0xB55B, 0x792B, 0xB55C, 0x792C, - 0xB55D, 0x792D, 0xB55E, 0x792E, 0xB55F, 0x792F, 0xB560, 0x7930, - 0xB561, 0x7931, 0xB562, 0x7932, 0xB563, 0x7933, 0xB564, 0x7935, - 0xB565, 0x7936, 0xB566, 0x7937, 0xB567, 0x7938, 0xB568, 0x7939, - 0xB569, 0x793D, 0xB56A, 0x793F, 0xB56B, 0x7942, 0xB56C, 0x7943, - 0xB56D, 0x7944, 0xB56E, 0x7945, 0xB56F, 0x7947, 0xB570, 0x794A, - 0xB571, 0x794B, 0xB572, 0x794C, 0xB573, 0x794D, 0xB574, 0x794E, - 0xB575, 0x794F, 0xB576, 0x7950, 0xB577, 0x7951, 0xB578, 0x7952, - 0xB579, 0x7954, 0xB57A, 0x7955, 0xB57B, 0x7958, 0xB57C, 0x7959, - 0xB57D, 0x7961, 0xB57E, 0x7963, 0xB580, 0x7964, 0xB581, 0x7966, - 0xB582, 0x7969, 0xB583, 0x796A, 0xB584, 0x796B, 0xB585, 0x796C, - 0xB586, 0x796E, 0xB587, 0x7970, 0xB588, 0x7971, 0xB589, 0x7972, - 0xB58A, 0x7973, 0xB58B, 0x7974, 0xB58C, 0x7975, 0xB58D, 0x7976, - 0xB58E, 0x7979, 0xB58F, 0x797B, 0xB590, 0x797C, 0xB591, 0x797D, - 0xB592, 0x797E, 0xB593, 0x797F, 0xB594, 0x7982, 0xB595, 0x7983, - 0xB596, 0x7986, 0xB597, 0x7987, 0xB598, 0x7988, 0xB599, 0x7989, - 0xB59A, 0x798B, 0xB59B, 0x798C, 0xB59C, 0x798D, 0xB59D, 0x798E, - 0xB59E, 0x7990, 0xB59F, 0x7991, 0xB5A0, 0x7992, 0xB5A1, 0x6020, - 0xB5A2, 0x803D, 0xB5A3, 0x62C5, 0xB5A4, 0x4E39, 0xB5A5, 0x5355, - 0xB5A6, 0x90F8, 0xB5A7, 0x63B8, 0xB5A8, 0x80C6, 0xB5A9, 0x65E6, - 0xB5AA, 0x6C2E, 0xB5AB, 0x4F46, 0xB5AC, 0x60EE, 0xB5AD, 0x6DE1, - 0xB5AE, 0x8BDE, 0xB5AF, 0x5F39, 0xB5B0, 0x86CB, 0xB5B1, 0x5F53, - 0xB5B2, 0x6321, 0xB5B3, 0x515A, 0xB5B4, 0x8361, 0xB5B5, 0x6863, - 0xB5B6, 0x5200, 0xB5B7, 0x6363, 0xB5B8, 0x8E48, 0xB5B9, 0x5012, - 0xB5BA, 0x5C9B, 0xB5BB, 0x7977, 0xB5BC, 0x5BFC, 0xB5BD, 0x5230, - 0xB5BE, 0x7A3B, 0xB5BF, 0x60BC, 0xB5C0, 0x9053, 0xB5C1, 0x76D7, - 0xB5C2, 0x5FB7, 0xB5C3, 0x5F97, 0xB5C4, 0x7684, 0xB5C5, 0x8E6C, - 0xB5C6, 0x706F, 0xB5C7, 0x767B, 0xB5C8, 0x7B49, 0xB5C9, 0x77AA, - 0xB5CA, 0x51F3, 0xB5CB, 0x9093, 0xB5CC, 0x5824, 0xB5CD, 0x4F4E, - 0xB5CE, 0x6EF4, 0xB5CF, 0x8FEA, 0xB5D0, 0x654C, 0xB5D1, 0x7B1B, - 0xB5D2, 0x72C4, 0xB5D3, 0x6DA4, 0xB5D4, 0x7FDF, 0xB5D5, 0x5AE1, - 0xB5D6, 0x62B5, 0xB5D7, 0x5E95, 0xB5D8, 0x5730, 0xB5D9, 0x8482, - 0xB5DA, 0x7B2C, 0xB5DB, 0x5E1D, 0xB5DC, 0x5F1F, 0xB5DD, 0x9012, - 0xB5DE, 0x7F14, 0xB5DF, 0x98A0, 0xB5E0, 0x6382, 0xB5E1, 0x6EC7, - 0xB5E2, 0x7898, 0xB5E3, 0x70B9, 0xB5E4, 0x5178, 0xB5E5, 0x975B, - 0xB5E6, 0x57AB, 0xB5E7, 0x7535, 0xB5E8, 0x4F43, 0xB5E9, 0x7538, - 0xB5EA, 0x5E97, 0xB5EB, 0x60E6, 0xB5EC, 0x5960, 0xB5ED, 0x6DC0, - 0xB5EE, 0x6BBF, 0xB5EF, 0x7889, 0xB5F0, 0x53FC, 0xB5F1, 0x96D5, - 0xB5F2, 0x51CB, 0xB5F3, 0x5201, 0xB5F4, 0x6389, 0xB5F5, 0x540A, - 0xB5F6, 0x9493, 0xB5F7, 0x8C03, 0xB5F8, 0x8DCC, 0xB5F9, 0x7239, - 0xB5FA, 0x789F, 0xB5FB, 0x8776, 0xB5FC, 0x8FED, 0xB5FD, 0x8C0D, - 0xB5FE, 0x53E0, 0xB640, 0x7993, 0xB641, 0x7994, 0xB642, 0x7995, - 0xB643, 0x7996, 0xB644, 0x7997, 0xB645, 0x7998, 0xB646, 0x7999, - 0xB647, 0x799B, 0xB648, 0x799C, 0xB649, 0x799D, 0xB64A, 0x799E, - 0xB64B, 0x799F, 0xB64C, 0x79A0, 0xB64D, 0x79A1, 0xB64E, 0x79A2, - 0xB64F, 0x79A3, 0xB650, 0x79A4, 0xB651, 0x79A5, 0xB652, 0x79A6, - 0xB653, 0x79A8, 0xB654, 0x79A9, 0xB655, 0x79AA, 0xB656, 0x79AB, - 0xB657, 0x79AC, 0xB658, 0x79AD, 0xB659, 0x79AE, 0xB65A, 0x79AF, - 0xB65B, 0x79B0, 0xB65C, 0x79B1, 0xB65D, 0x79B2, 0xB65E, 0x79B4, - 0xB65F, 0x79B5, 0xB660, 0x79B6, 0xB661, 0x79B7, 0xB662, 0x79B8, - 0xB663, 0x79BC, 0xB664, 0x79BF, 0xB665, 0x79C2, 0xB666, 0x79C4, - 0xB667, 0x79C5, 0xB668, 0x79C7, 0xB669, 0x79C8, 0xB66A, 0x79CA, - 0xB66B, 0x79CC, 0xB66C, 0x79CE, 0xB66D, 0x79CF, 0xB66E, 0x79D0, - 0xB66F, 0x79D3, 0xB670, 0x79D4, 0xB671, 0x79D6, 0xB672, 0x79D7, - 0xB673, 0x79D9, 0xB674, 0x79DA, 0xB675, 0x79DB, 0xB676, 0x79DC, - 0xB677, 0x79DD, 0xB678, 0x79DE, 0xB679, 0x79E0, 0xB67A, 0x79E1, - 0xB67B, 0x79E2, 0xB67C, 0x79E5, 0xB67D, 0x79E8, 0xB67E, 0x79EA, - 0xB680, 0x79EC, 0xB681, 0x79EE, 0xB682, 0x79F1, 0xB683, 0x79F2, - 0xB684, 0x79F3, 0xB685, 0x79F4, 0xB686, 0x79F5, 0xB687, 0x79F6, - 0xB688, 0x79F7, 0xB689, 0x79F9, 0xB68A, 0x79FA, 0xB68B, 0x79FC, - 0xB68C, 0x79FE, 0xB68D, 0x79FF, 0xB68E, 0x7A01, 0xB68F, 0x7A04, - 0xB690, 0x7A05, 0xB691, 0x7A07, 0xB692, 0x7A08, 0xB693, 0x7A09, - 0xB694, 0x7A0A, 0xB695, 0x7A0C, 0xB696, 0x7A0F, 0xB697, 0x7A10, - 0xB698, 0x7A11, 0xB699, 0x7A12, 0xB69A, 0x7A13, 0xB69B, 0x7A15, - 0xB69C, 0x7A16, 0xB69D, 0x7A18, 0xB69E, 0x7A19, 0xB69F, 0x7A1B, - 0xB6A0, 0x7A1C, 0xB6A1, 0x4E01, 0xB6A2, 0x76EF, 0xB6A3, 0x53EE, - 0xB6A4, 0x9489, 0xB6A5, 0x9876, 0xB6A6, 0x9F0E, 0xB6A7, 0x952D, - 0xB6A8, 0x5B9A, 0xB6A9, 0x8BA2, 0xB6AA, 0x4E22, 0xB6AB, 0x4E1C, - 0xB6AC, 0x51AC, 0xB6AD, 0x8463, 0xB6AE, 0x61C2, 0xB6AF, 0x52A8, - 0xB6B0, 0x680B, 0xB6B1, 0x4F97, 0xB6B2, 0x606B, 0xB6B3, 0x51BB, - 0xB6B4, 0x6D1E, 0xB6B5, 0x515C, 0xB6B6, 0x6296, 0xB6B7, 0x6597, - 0xB6B8, 0x9661, 0xB6B9, 0x8C46, 0xB6BA, 0x9017, 0xB6BB, 0x75D8, - 0xB6BC, 0x90FD, 0xB6BD, 0x7763, 0xB6BE, 0x6BD2, 0xB6BF, 0x728A, - 0xB6C0, 0x72EC, 0xB6C1, 0x8BFB, 0xB6C2, 0x5835, 0xB6C3, 0x7779, - 0xB6C4, 0x8D4C, 0xB6C5, 0x675C, 0xB6C6, 0x9540, 0xB6C7, 0x809A, - 0xB6C8, 0x5EA6, 0xB6C9, 0x6E21, 0xB6CA, 0x5992, 0xB6CB, 0x7AEF, - 0xB6CC, 0x77ED, 0xB6CD, 0x953B, 0xB6CE, 0x6BB5, 0xB6CF, 0x65AD, - 0xB6D0, 0x7F0E, 0xB6D1, 0x5806, 0xB6D2, 0x5151, 0xB6D3, 0x961F, - 0xB6D4, 0x5BF9, 0xB6D5, 0x58A9, 0xB6D6, 0x5428, 0xB6D7, 0x8E72, - 0xB6D8, 0x6566, 0xB6D9, 0x987F, 0xB6DA, 0x56E4, 0xB6DB, 0x949D, - 0xB6DC, 0x76FE, 0xB6DD, 0x9041, 0xB6DE, 0x6387, 0xB6DF, 0x54C6, - 0xB6E0, 0x591A, 0xB6E1, 0x593A, 0xB6E2, 0x579B, 0xB6E3, 0x8EB2, - 0xB6E4, 0x6735, 0xB6E5, 0x8DFA, 0xB6E6, 0x8235, 0xB6E7, 0x5241, - 0xB6E8, 0x60F0, 0xB6E9, 0x5815, 0xB6EA, 0x86FE, 0xB6EB, 0x5CE8, - 0xB6EC, 0x9E45, 0xB6ED, 0x4FC4, 0xB6EE, 0x989D, 0xB6EF, 0x8BB9, - 0xB6F0, 0x5A25, 0xB6F1, 0x6076, 0xB6F2, 0x5384, 0xB6F3, 0x627C, - 0xB6F4, 0x904F, 0xB6F5, 0x9102, 0xB6F6, 0x997F, 0xB6F7, 0x6069, - 0xB6F8, 0x800C, 0xB6F9, 0x513F, 0xB6FA, 0x8033, 0xB6FB, 0x5C14, - 0xB6FC, 0x9975, 0xB6FD, 0x6D31, 0xB6FE, 0x4E8C, 0xB740, 0x7A1D, - 0xB741, 0x7A1F, 0xB742, 0x7A21, 0xB743, 0x7A22, 0xB744, 0x7A24, - 0xB745, 0x7A25, 0xB746, 0x7A26, 0xB747, 0x7A27, 0xB748, 0x7A28, - 0xB749, 0x7A29, 0xB74A, 0x7A2A, 0xB74B, 0x7A2B, 0xB74C, 0x7A2C, - 0xB74D, 0x7A2D, 0xB74E, 0x7A2E, 0xB74F, 0x7A2F, 0xB750, 0x7A30, - 0xB751, 0x7A31, 0xB752, 0x7A32, 0xB753, 0x7A34, 0xB754, 0x7A35, - 0xB755, 0x7A36, 0xB756, 0x7A38, 0xB757, 0x7A3A, 0xB758, 0x7A3E, - 0xB759, 0x7A40, 0xB75A, 0x7A41, 0xB75B, 0x7A42, 0xB75C, 0x7A43, - 0xB75D, 0x7A44, 0xB75E, 0x7A45, 0xB75F, 0x7A47, 0xB760, 0x7A48, - 0xB761, 0x7A49, 0xB762, 0x7A4A, 0xB763, 0x7A4B, 0xB764, 0x7A4C, - 0xB765, 0x7A4D, 0xB766, 0x7A4E, 0xB767, 0x7A4F, 0xB768, 0x7A50, - 0xB769, 0x7A52, 0xB76A, 0x7A53, 0xB76B, 0x7A54, 0xB76C, 0x7A55, - 0xB76D, 0x7A56, 0xB76E, 0x7A58, 0xB76F, 0x7A59, 0xB770, 0x7A5A, - 0xB771, 0x7A5B, 0xB772, 0x7A5C, 0xB773, 0x7A5D, 0xB774, 0x7A5E, - 0xB775, 0x7A5F, 0xB776, 0x7A60, 0xB777, 0x7A61, 0xB778, 0x7A62, - 0xB779, 0x7A63, 0xB77A, 0x7A64, 0xB77B, 0x7A65, 0xB77C, 0x7A66, - 0xB77D, 0x7A67, 0xB77E, 0x7A68, 0xB780, 0x7A69, 0xB781, 0x7A6A, - 0xB782, 0x7A6B, 0xB783, 0x7A6C, 0xB784, 0x7A6D, 0xB785, 0x7A6E, - 0xB786, 0x7A6F, 0xB787, 0x7A71, 0xB788, 0x7A72, 0xB789, 0x7A73, - 0xB78A, 0x7A75, 0xB78B, 0x7A7B, 0xB78C, 0x7A7C, 0xB78D, 0x7A7D, - 0xB78E, 0x7A7E, 0xB78F, 0x7A82, 0xB790, 0x7A85, 0xB791, 0x7A87, - 0xB792, 0x7A89, 0xB793, 0x7A8A, 0xB794, 0x7A8B, 0xB795, 0x7A8C, - 0xB796, 0x7A8E, 0xB797, 0x7A8F, 0xB798, 0x7A90, 0xB799, 0x7A93, - 0xB79A, 0x7A94, 0xB79B, 0x7A99, 0xB79C, 0x7A9A, 0xB79D, 0x7A9B, - 0xB79E, 0x7A9E, 0xB79F, 0x7AA1, 0xB7A0, 0x7AA2, 0xB7A1, 0x8D30, - 0xB7A2, 0x53D1, 0xB7A3, 0x7F5A, 0xB7A4, 0x7B4F, 0xB7A5, 0x4F10, - 0xB7A6, 0x4E4F, 0xB7A7, 0x9600, 0xB7A8, 0x6CD5, 0xB7A9, 0x73D0, - 0xB7AA, 0x85E9, 0xB7AB, 0x5E06, 0xB7AC, 0x756A, 0xB7AD, 0x7FFB, - 0xB7AE, 0x6A0A, 0xB7AF, 0x77FE, 0xB7B0, 0x9492, 0xB7B1, 0x7E41, - 0xB7B2, 0x51E1, 0xB7B3, 0x70E6, 0xB7B4, 0x53CD, 0xB7B5, 0x8FD4, - 0xB7B6, 0x8303, 0xB7B7, 0x8D29, 0xB7B8, 0x72AF, 0xB7B9, 0x996D, - 0xB7BA, 0x6CDB, 0xB7BB, 0x574A, 0xB7BC, 0x82B3, 0xB7BD, 0x65B9, - 0xB7BE, 0x80AA, 0xB7BF, 0x623F, 0xB7C0, 0x9632, 0xB7C1, 0x59A8, - 0xB7C2, 0x4EFF, 0xB7C3, 0x8BBF, 0xB7C4, 0x7EBA, 0xB7C5, 0x653E, - 0xB7C6, 0x83F2, 0xB7C7, 0x975E, 0xB7C8, 0x5561, 0xB7C9, 0x98DE, - 0xB7CA, 0x80A5, 0xB7CB, 0x532A, 0xB7CC, 0x8BFD, 0xB7CD, 0x5420, - 0xB7CE, 0x80BA, 0xB7CF, 0x5E9F, 0xB7D0, 0x6CB8, 0xB7D1, 0x8D39, - 0xB7D2, 0x82AC, 0xB7D3, 0x915A, 0xB7D4, 0x5429, 0xB7D5, 0x6C1B, - 0xB7D6, 0x5206, 0xB7D7, 0x7EB7, 0xB7D8, 0x575F, 0xB7D9, 0x711A, - 0xB7DA, 0x6C7E, 0xB7DB, 0x7C89, 0xB7DC, 0x594B, 0xB7DD, 0x4EFD, - 0xB7DE, 0x5FFF, 0xB7DF, 0x6124, 0xB7E0, 0x7CAA, 0xB7E1, 0x4E30, - 0xB7E2, 0x5C01, 0xB7E3, 0x67AB, 0xB7E4, 0x8702, 0xB7E5, 0x5CF0, - 0xB7E6, 0x950B, 0xB7E7, 0x98CE, 0xB7E8, 0x75AF, 0xB7E9, 0x70FD, - 0xB7EA, 0x9022, 0xB7EB, 0x51AF, 0xB7EC, 0x7F1D, 0xB7ED, 0x8BBD, - 0xB7EE, 0x5949, 0xB7EF, 0x51E4, 0xB7F0, 0x4F5B, 0xB7F1, 0x5426, - 0xB7F2, 0x592B, 0xB7F3, 0x6577, 0xB7F4, 0x80A4, 0xB7F5, 0x5B75, - 0xB7F6, 0x6276, 0xB7F7, 0x62C2, 0xB7F8, 0x8F90, 0xB7F9, 0x5E45, - 0xB7FA, 0x6C1F, 0xB7FB, 0x7B26, 0xB7FC, 0x4F0F, 0xB7FD, 0x4FD8, - 0xB7FE, 0x670D, 0xB840, 0x7AA3, 0xB841, 0x7AA4, 0xB842, 0x7AA7, - 0xB843, 0x7AA9, 0xB844, 0x7AAA, 0xB845, 0x7AAB, 0xB846, 0x7AAE, - 0xB847, 0x7AAF, 0xB848, 0x7AB0, 0xB849, 0x7AB1, 0xB84A, 0x7AB2, - 0xB84B, 0x7AB4, 0xB84C, 0x7AB5, 0xB84D, 0x7AB6, 0xB84E, 0x7AB7, - 0xB84F, 0x7AB8, 0xB850, 0x7AB9, 0xB851, 0x7ABA, 0xB852, 0x7ABB, - 0xB853, 0x7ABC, 0xB854, 0x7ABD, 0xB855, 0x7ABE, 0xB856, 0x7AC0, - 0xB857, 0x7AC1, 0xB858, 0x7AC2, 0xB859, 0x7AC3, 0xB85A, 0x7AC4, - 0xB85B, 0x7AC5, 0xB85C, 0x7AC6, 0xB85D, 0x7AC7, 0xB85E, 0x7AC8, - 0xB85F, 0x7AC9, 0xB860, 0x7ACA, 0xB861, 0x7ACC, 0xB862, 0x7ACD, - 0xB863, 0x7ACE, 0xB864, 0x7ACF, 0xB865, 0x7AD0, 0xB866, 0x7AD1, - 0xB867, 0x7AD2, 0xB868, 0x7AD3, 0xB869, 0x7AD4, 0xB86A, 0x7AD5, - 0xB86B, 0x7AD7, 0xB86C, 0x7AD8, 0xB86D, 0x7ADA, 0xB86E, 0x7ADB, - 0xB86F, 0x7ADC, 0xB870, 0x7ADD, 0xB871, 0x7AE1, 0xB872, 0x7AE2, - 0xB873, 0x7AE4, 0xB874, 0x7AE7, 0xB875, 0x7AE8, 0xB876, 0x7AE9, - 0xB877, 0x7AEA, 0xB878, 0x7AEB, 0xB879, 0x7AEC, 0xB87A, 0x7AEE, - 0xB87B, 0x7AF0, 0xB87C, 0x7AF1, 0xB87D, 0x7AF2, 0xB87E, 0x7AF3, - 0xB880, 0x7AF4, 0xB881, 0x7AF5, 0xB882, 0x7AF6, 0xB883, 0x7AF7, - 0xB884, 0x7AF8, 0xB885, 0x7AFB, 0xB886, 0x7AFC, 0xB887, 0x7AFE, - 0xB888, 0x7B00, 0xB889, 0x7B01, 0xB88A, 0x7B02, 0xB88B, 0x7B05, - 0xB88C, 0x7B07, 0xB88D, 0x7B09, 0xB88E, 0x7B0C, 0xB88F, 0x7B0D, - 0xB890, 0x7B0E, 0xB891, 0x7B10, 0xB892, 0x7B12, 0xB893, 0x7B13, - 0xB894, 0x7B16, 0xB895, 0x7B17, 0xB896, 0x7B18, 0xB897, 0x7B1A, - 0xB898, 0x7B1C, 0xB899, 0x7B1D, 0xB89A, 0x7B1F, 0xB89B, 0x7B21, - 0xB89C, 0x7B22, 0xB89D, 0x7B23, 0xB89E, 0x7B27, 0xB89F, 0x7B29, - 0xB8A0, 0x7B2D, 0xB8A1, 0x6D6E, 0xB8A2, 0x6DAA, 0xB8A3, 0x798F, - 0xB8A4, 0x88B1, 0xB8A5, 0x5F17, 0xB8A6, 0x752B, 0xB8A7, 0x629A, - 0xB8A8, 0x8F85, 0xB8A9, 0x4FEF, 0xB8AA, 0x91DC, 0xB8AB, 0x65A7, - 0xB8AC, 0x812F, 0xB8AD, 0x8151, 0xB8AE, 0x5E9C, 0xB8AF, 0x8150, - 0xB8B0, 0x8D74, 0xB8B1, 0x526F, 0xB8B2, 0x8986, 0xB8B3, 0x8D4B, - 0xB8B4, 0x590D, 0xB8B5, 0x5085, 0xB8B6, 0x4ED8, 0xB8B7, 0x961C, - 0xB8B8, 0x7236, 0xB8B9, 0x8179, 0xB8BA, 0x8D1F, 0xB8BB, 0x5BCC, - 0xB8BC, 0x8BA3, 0xB8BD, 0x9644, 0xB8BE, 0x5987, 0xB8BF, 0x7F1A, - 0xB8C0, 0x5490, 0xB8C1, 0x5676, 0xB8C2, 0x560E, 0xB8C3, 0x8BE5, - 0xB8C4, 0x6539, 0xB8C5, 0x6982, 0xB8C6, 0x9499, 0xB8C7, 0x76D6, - 0xB8C8, 0x6E89, 0xB8C9, 0x5E72, 0xB8CA, 0x7518, 0xB8CB, 0x6746, - 0xB8CC, 0x67D1, 0xB8CD, 0x7AFF, 0xB8CE, 0x809D, 0xB8CF, 0x8D76, - 0xB8D0, 0x611F, 0xB8D1, 0x79C6, 0xB8D2, 0x6562, 0xB8D3, 0x8D63, - 0xB8D4, 0x5188, 0xB8D5, 0x521A, 0xB8D6, 0x94A2, 0xB8D7, 0x7F38, - 0xB8D8, 0x809B, 0xB8D9, 0x7EB2, 0xB8DA, 0x5C97, 0xB8DB, 0x6E2F, - 0xB8DC, 0x6760, 0xB8DD, 0x7BD9, 0xB8DE, 0x768B, 0xB8DF, 0x9AD8, - 0xB8E0, 0x818F, 0xB8E1, 0x7F94, 0xB8E2, 0x7CD5, 0xB8E3, 0x641E, - 0xB8E4, 0x9550, 0xB8E5, 0x7A3F, 0xB8E6, 0x544A, 0xB8E7, 0x54E5, - 0xB8E8, 0x6B4C, 0xB8E9, 0x6401, 0xB8EA, 0x6208, 0xB8EB, 0x9E3D, - 0xB8EC, 0x80F3, 0xB8ED, 0x7599, 0xB8EE, 0x5272, 0xB8EF, 0x9769, - 0xB8F0, 0x845B, 0xB8F1, 0x683C, 0xB8F2, 0x86E4, 0xB8F3, 0x9601, - 0xB8F4, 0x9694, 0xB8F5, 0x94EC, 0xB8F6, 0x4E2A, 0xB8F7, 0x5404, - 0xB8F8, 0x7ED9, 0xB8F9, 0x6839, 0xB8FA, 0x8DDF, 0xB8FB, 0x8015, - 0xB8FC, 0x66F4, 0xB8FD, 0x5E9A, 0xB8FE, 0x7FB9, 0xB940, 0x7B2F, - 0xB941, 0x7B30, 0xB942, 0x7B32, 0xB943, 0x7B34, 0xB944, 0x7B35, - 0xB945, 0x7B36, 0xB946, 0x7B37, 0xB947, 0x7B39, 0xB948, 0x7B3B, - 0xB949, 0x7B3D, 0xB94A, 0x7B3F, 0xB94B, 0x7B40, 0xB94C, 0x7B41, - 0xB94D, 0x7B42, 0xB94E, 0x7B43, 0xB94F, 0x7B44, 0xB950, 0x7B46, - 0xB951, 0x7B48, 0xB952, 0x7B4A, 0xB953, 0x7B4D, 0xB954, 0x7B4E, - 0xB955, 0x7B53, 0xB956, 0x7B55, 0xB957, 0x7B57, 0xB958, 0x7B59, - 0xB959, 0x7B5C, 0xB95A, 0x7B5E, 0xB95B, 0x7B5F, 0xB95C, 0x7B61, - 0xB95D, 0x7B63, 0xB95E, 0x7B64, 0xB95F, 0x7B65, 0xB960, 0x7B66, - 0xB961, 0x7B67, 0xB962, 0x7B68, 0xB963, 0x7B69, 0xB964, 0x7B6A, - 0xB965, 0x7B6B, 0xB966, 0x7B6C, 0xB967, 0x7B6D, 0xB968, 0x7B6F, - 0xB969, 0x7B70, 0xB96A, 0x7B73, 0xB96B, 0x7B74, 0xB96C, 0x7B76, - 0xB96D, 0x7B78, 0xB96E, 0x7B7A, 0xB96F, 0x7B7C, 0xB970, 0x7B7D, - 0xB971, 0x7B7F, 0xB972, 0x7B81, 0xB973, 0x7B82, 0xB974, 0x7B83, - 0xB975, 0x7B84, 0xB976, 0x7B86, 0xB977, 0x7B87, 0xB978, 0x7B88, - 0xB979, 0x7B89, 0xB97A, 0x7B8A, 0xB97B, 0x7B8B, 0xB97C, 0x7B8C, - 0xB97D, 0x7B8E, 0xB97E, 0x7B8F, 0xB980, 0x7B91, 0xB981, 0x7B92, - 0xB982, 0x7B93, 0xB983, 0x7B96, 0xB984, 0x7B98, 0xB985, 0x7B99, - 0xB986, 0x7B9A, 0xB987, 0x7B9B, 0xB988, 0x7B9E, 0xB989, 0x7B9F, - 0xB98A, 0x7BA0, 0xB98B, 0x7BA3, 0xB98C, 0x7BA4, 0xB98D, 0x7BA5, - 0xB98E, 0x7BAE, 0xB98F, 0x7BAF, 0xB990, 0x7BB0, 0xB991, 0x7BB2, - 0xB992, 0x7BB3, 0xB993, 0x7BB5, 0xB994, 0x7BB6, 0xB995, 0x7BB7, - 0xB996, 0x7BB9, 0xB997, 0x7BBA, 0xB998, 0x7BBB, 0xB999, 0x7BBC, - 0xB99A, 0x7BBD, 0xB99B, 0x7BBE, 0xB99C, 0x7BBF, 0xB99D, 0x7BC0, - 0xB99E, 0x7BC2, 0xB99F, 0x7BC3, 0xB9A0, 0x7BC4, 0xB9A1, 0x57C2, - 0xB9A2, 0x803F, 0xB9A3, 0x6897, 0xB9A4, 0x5DE5, 0xB9A5, 0x653B, - 0xB9A6, 0x529F, 0xB9A7, 0x606D, 0xB9A8, 0x9F9A, 0xB9A9, 0x4F9B, - 0xB9AA, 0x8EAC, 0xB9AB, 0x516C, 0xB9AC, 0x5BAB, 0xB9AD, 0x5F13, - 0xB9AE, 0x5DE9, 0xB9AF, 0x6C5E, 0xB9B0, 0x62F1, 0xB9B1, 0x8D21, - 0xB9B2, 0x5171, 0xB9B3, 0x94A9, 0xB9B4, 0x52FE, 0xB9B5, 0x6C9F, - 0xB9B6, 0x82DF, 0xB9B7, 0x72D7, 0xB9B8, 0x57A2, 0xB9B9, 0x6784, - 0xB9BA, 0x8D2D, 0xB9BB, 0x591F, 0xB9BC, 0x8F9C, 0xB9BD, 0x83C7, - 0xB9BE, 0x5495, 0xB9BF, 0x7B8D, 0xB9C0, 0x4F30, 0xB9C1, 0x6CBD, - 0xB9C2, 0x5B64, 0xB9C3, 0x59D1, 0xB9C4, 0x9F13, 0xB9C5, 0x53E4, - 0xB9C6, 0x86CA, 0xB9C7, 0x9AA8, 0xB9C8, 0x8C37, 0xB9C9, 0x80A1, - 0xB9CA, 0x6545, 0xB9CB, 0x987E, 0xB9CC, 0x56FA, 0xB9CD, 0x96C7, - 0xB9CE, 0x522E, 0xB9CF, 0x74DC, 0xB9D0, 0x5250, 0xB9D1, 0x5BE1, - 0xB9D2, 0x6302, 0xB9D3, 0x8902, 0xB9D4, 0x4E56, 0xB9D5, 0x62D0, - 0xB9D6, 0x602A, 0xB9D7, 0x68FA, 0xB9D8, 0x5173, 0xB9D9, 0x5B98, - 0xB9DA, 0x51A0, 0xB9DB, 0x89C2, 0xB9DC, 0x7BA1, 0xB9DD, 0x9986, - 0xB9DE, 0x7F50, 0xB9DF, 0x60EF, 0xB9E0, 0x704C, 0xB9E1, 0x8D2F, - 0xB9E2, 0x5149, 0xB9E3, 0x5E7F, 0xB9E4, 0x901B, 0xB9E5, 0x7470, - 0xB9E6, 0x89C4, 0xB9E7, 0x572D, 0xB9E8, 0x7845, 0xB9E9, 0x5F52, - 0xB9EA, 0x9F9F, 0xB9EB, 0x95FA, 0xB9EC, 0x8F68, 0xB9ED, 0x9B3C, - 0xB9EE, 0x8BE1, 0xB9EF, 0x7678, 0xB9F0, 0x6842, 0xB9F1, 0x67DC, - 0xB9F2, 0x8DEA, 0xB9F3, 0x8D35, 0xB9F4, 0x523D, 0xB9F5, 0x8F8A, - 0xB9F6, 0x6EDA, 0xB9F7, 0x68CD, 0xB9F8, 0x9505, 0xB9F9, 0x90ED, - 0xB9FA, 0x56FD, 0xB9FB, 0x679C, 0xB9FC, 0x88F9, 0xB9FD, 0x8FC7, - 0xB9FE, 0x54C8, 0xBA40, 0x7BC5, 0xBA41, 0x7BC8, 0xBA42, 0x7BC9, - 0xBA43, 0x7BCA, 0xBA44, 0x7BCB, 0xBA45, 0x7BCD, 0xBA46, 0x7BCE, - 0xBA47, 0x7BCF, 0xBA48, 0x7BD0, 0xBA49, 0x7BD2, 0xBA4A, 0x7BD4, - 0xBA4B, 0x7BD5, 0xBA4C, 0x7BD6, 0xBA4D, 0x7BD7, 0xBA4E, 0x7BD8, - 0xBA4F, 0x7BDB, 0xBA50, 0x7BDC, 0xBA51, 0x7BDE, 0xBA52, 0x7BDF, - 0xBA53, 0x7BE0, 0xBA54, 0x7BE2, 0xBA55, 0x7BE3, 0xBA56, 0x7BE4, - 0xBA57, 0x7BE7, 0xBA58, 0x7BE8, 0xBA59, 0x7BE9, 0xBA5A, 0x7BEB, - 0xBA5B, 0x7BEC, 0xBA5C, 0x7BED, 0xBA5D, 0x7BEF, 0xBA5E, 0x7BF0, - 0xBA5F, 0x7BF2, 0xBA60, 0x7BF3, 0xBA61, 0x7BF4, 0xBA62, 0x7BF5, - 0xBA63, 0x7BF6, 0xBA64, 0x7BF8, 0xBA65, 0x7BF9, 0xBA66, 0x7BFA, - 0xBA67, 0x7BFB, 0xBA68, 0x7BFD, 0xBA69, 0x7BFF, 0xBA6A, 0x7C00, - 0xBA6B, 0x7C01, 0xBA6C, 0x7C02, 0xBA6D, 0x7C03, 0xBA6E, 0x7C04, - 0xBA6F, 0x7C05, 0xBA70, 0x7C06, 0xBA71, 0x7C08, 0xBA72, 0x7C09, - 0xBA73, 0x7C0A, 0xBA74, 0x7C0D, 0xBA75, 0x7C0E, 0xBA76, 0x7C10, - 0xBA77, 0x7C11, 0xBA78, 0x7C12, 0xBA79, 0x7C13, 0xBA7A, 0x7C14, - 0xBA7B, 0x7C15, 0xBA7C, 0x7C17, 0xBA7D, 0x7C18, 0xBA7E, 0x7C19, - 0xBA80, 0x7C1A, 0xBA81, 0x7C1B, 0xBA82, 0x7C1C, 0xBA83, 0x7C1D, - 0xBA84, 0x7C1E, 0xBA85, 0x7C20, 0xBA86, 0x7C21, 0xBA87, 0x7C22, - 0xBA88, 0x7C23, 0xBA89, 0x7C24, 0xBA8A, 0x7C25, 0xBA8B, 0x7C28, - 0xBA8C, 0x7C29, 0xBA8D, 0x7C2B, 0xBA8E, 0x7C2C, 0xBA8F, 0x7C2D, - 0xBA90, 0x7C2E, 0xBA91, 0x7C2F, 0xBA92, 0x7C30, 0xBA93, 0x7C31, - 0xBA94, 0x7C32, 0xBA95, 0x7C33, 0xBA96, 0x7C34, 0xBA97, 0x7C35, - 0xBA98, 0x7C36, 0xBA99, 0x7C37, 0xBA9A, 0x7C39, 0xBA9B, 0x7C3A, - 0xBA9C, 0x7C3B, 0xBA9D, 0x7C3C, 0xBA9E, 0x7C3D, 0xBA9F, 0x7C3E, - 0xBAA0, 0x7C42, 0xBAA1, 0x9AB8, 0xBAA2, 0x5B69, 0xBAA3, 0x6D77, - 0xBAA4, 0x6C26, 0xBAA5, 0x4EA5, 0xBAA6, 0x5BB3, 0xBAA7, 0x9A87, - 0xBAA8, 0x9163, 0xBAA9, 0x61A8, 0xBAAA, 0x90AF, 0xBAAB, 0x97E9, - 0xBAAC, 0x542B, 0xBAAD, 0x6DB5, 0xBAAE, 0x5BD2, 0xBAAF, 0x51FD, - 0xBAB0, 0x558A, 0xBAB1, 0x7F55, 0xBAB2, 0x7FF0, 0xBAB3, 0x64BC, - 0xBAB4, 0x634D, 0xBAB5, 0x65F1, 0xBAB6, 0x61BE, 0xBAB7, 0x608D, - 0xBAB8, 0x710A, 0xBAB9, 0x6C57, 0xBABA, 0x6C49, 0xBABB, 0x592F, - 0xBABC, 0x676D, 0xBABD, 0x822A, 0xBABE, 0x58D5, 0xBABF, 0x568E, - 0xBAC0, 0x8C6A, 0xBAC1, 0x6BEB, 0xBAC2, 0x90DD, 0xBAC3, 0x597D, - 0xBAC4, 0x8017, 0xBAC5, 0x53F7, 0xBAC6, 0x6D69, 0xBAC7, 0x5475, - 0xBAC8, 0x559D, 0xBAC9, 0x8377, 0xBACA, 0x83CF, 0xBACB, 0x6838, - 0xBACC, 0x79BE, 0xBACD, 0x548C, 0xBACE, 0x4F55, 0xBACF, 0x5408, - 0xBAD0, 0x76D2, 0xBAD1, 0x8C89, 0xBAD2, 0x9602, 0xBAD3, 0x6CB3, - 0xBAD4, 0x6DB8, 0xBAD5, 0x8D6B, 0xBAD6, 0x8910, 0xBAD7, 0x9E64, - 0xBAD8, 0x8D3A, 0xBAD9, 0x563F, 0xBADA, 0x9ED1, 0xBADB, 0x75D5, - 0xBADC, 0x5F88, 0xBADD, 0x72E0, 0xBADE, 0x6068, 0xBADF, 0x54FC, - 0xBAE0, 0x4EA8, 0xBAE1, 0x6A2A, 0xBAE2, 0x8861, 0xBAE3, 0x6052, - 0xBAE4, 0x8F70, 0xBAE5, 0x54C4, 0xBAE6, 0x70D8, 0xBAE7, 0x8679, - 0xBAE8, 0x9E3F, 0xBAE9, 0x6D2A, 0xBAEA, 0x5B8F, 0xBAEB, 0x5F18, - 0xBAEC, 0x7EA2, 0xBAED, 0x5589, 0xBAEE, 0x4FAF, 0xBAEF, 0x7334, - 0xBAF0, 0x543C, 0xBAF1, 0x539A, 0xBAF2, 0x5019, 0xBAF3, 0x540E, - 0xBAF4, 0x547C, 0xBAF5, 0x4E4E, 0xBAF6, 0x5FFD, 0xBAF7, 0x745A, - 0xBAF8, 0x58F6, 0xBAF9, 0x846B, 0xBAFA, 0x80E1, 0xBAFB, 0x8774, - 0xBAFC, 0x72D0, 0xBAFD, 0x7CCA, 0xBAFE, 0x6E56, 0xBB40, 0x7C43, - 0xBB41, 0x7C44, 0xBB42, 0x7C45, 0xBB43, 0x7C46, 0xBB44, 0x7C47, - 0xBB45, 0x7C48, 0xBB46, 0x7C49, 0xBB47, 0x7C4A, 0xBB48, 0x7C4B, - 0xBB49, 0x7C4C, 0xBB4A, 0x7C4E, 0xBB4B, 0x7C4F, 0xBB4C, 0x7C50, - 0xBB4D, 0x7C51, 0xBB4E, 0x7C52, 0xBB4F, 0x7C53, 0xBB50, 0x7C54, - 0xBB51, 0x7C55, 0xBB52, 0x7C56, 0xBB53, 0x7C57, 0xBB54, 0x7C58, - 0xBB55, 0x7C59, 0xBB56, 0x7C5A, 0xBB57, 0x7C5B, 0xBB58, 0x7C5C, - 0xBB59, 0x7C5D, 0xBB5A, 0x7C5E, 0xBB5B, 0x7C5F, 0xBB5C, 0x7C60, - 0xBB5D, 0x7C61, 0xBB5E, 0x7C62, 0xBB5F, 0x7C63, 0xBB60, 0x7C64, - 0xBB61, 0x7C65, 0xBB62, 0x7C66, 0xBB63, 0x7C67, 0xBB64, 0x7C68, - 0xBB65, 0x7C69, 0xBB66, 0x7C6A, 0xBB67, 0x7C6B, 0xBB68, 0x7C6C, - 0xBB69, 0x7C6D, 0xBB6A, 0x7C6E, 0xBB6B, 0x7C6F, 0xBB6C, 0x7C70, - 0xBB6D, 0x7C71, 0xBB6E, 0x7C72, 0xBB6F, 0x7C75, 0xBB70, 0x7C76, - 0xBB71, 0x7C77, 0xBB72, 0x7C78, 0xBB73, 0x7C79, 0xBB74, 0x7C7A, - 0xBB75, 0x7C7E, 0xBB76, 0x7C7F, 0xBB77, 0x7C80, 0xBB78, 0x7C81, - 0xBB79, 0x7C82, 0xBB7A, 0x7C83, 0xBB7B, 0x7C84, 0xBB7C, 0x7C85, - 0xBB7D, 0x7C86, 0xBB7E, 0x7C87, 0xBB80, 0x7C88, 0xBB81, 0x7C8A, - 0xBB82, 0x7C8B, 0xBB83, 0x7C8C, 0xBB84, 0x7C8D, 0xBB85, 0x7C8E, - 0xBB86, 0x7C8F, 0xBB87, 0x7C90, 0xBB88, 0x7C93, 0xBB89, 0x7C94, - 0xBB8A, 0x7C96, 0xBB8B, 0x7C99, 0xBB8C, 0x7C9A, 0xBB8D, 0x7C9B, - 0xBB8E, 0x7CA0, 0xBB8F, 0x7CA1, 0xBB90, 0x7CA3, 0xBB91, 0x7CA6, - 0xBB92, 0x7CA7, 0xBB93, 0x7CA8, 0xBB94, 0x7CA9, 0xBB95, 0x7CAB, - 0xBB96, 0x7CAC, 0xBB97, 0x7CAD, 0xBB98, 0x7CAF, 0xBB99, 0x7CB0, - 0xBB9A, 0x7CB4, 0xBB9B, 0x7CB5, 0xBB9C, 0x7CB6, 0xBB9D, 0x7CB7, - 0xBB9E, 0x7CB8, 0xBB9F, 0x7CBA, 0xBBA0, 0x7CBB, 0xBBA1, 0x5F27, - 0xBBA2, 0x864E, 0xBBA3, 0x552C, 0xBBA4, 0x62A4, 0xBBA5, 0x4E92, - 0xBBA6, 0x6CAA, 0xBBA7, 0x6237, 0xBBA8, 0x82B1, 0xBBA9, 0x54D7, - 0xBBAA, 0x534E, 0xBBAB, 0x733E, 0xBBAC, 0x6ED1, 0xBBAD, 0x753B, - 0xBBAE, 0x5212, 0xBBAF, 0x5316, 0xBBB0, 0x8BDD, 0xBBB1, 0x69D0, - 0xBBB2, 0x5F8A, 0xBBB3, 0x6000, 0xBBB4, 0x6DEE, 0xBBB5, 0x574F, - 0xBBB6, 0x6B22, 0xBBB7, 0x73AF, 0xBBB8, 0x6853, 0xBBB9, 0x8FD8, - 0xBBBA, 0x7F13, 0xBBBB, 0x6362, 0xBBBC, 0x60A3, 0xBBBD, 0x5524, - 0xBBBE, 0x75EA, 0xBBBF, 0x8C62, 0xBBC0, 0x7115, 0xBBC1, 0x6DA3, - 0xBBC2, 0x5BA6, 0xBBC3, 0x5E7B, 0xBBC4, 0x8352, 0xBBC5, 0x614C, - 0xBBC6, 0x9EC4, 0xBBC7, 0x78FA, 0xBBC8, 0x8757, 0xBBC9, 0x7C27, - 0xBBCA, 0x7687, 0xBBCB, 0x51F0, 0xBBCC, 0x60F6, 0xBBCD, 0x714C, - 0xBBCE, 0x6643, 0xBBCF, 0x5E4C, 0xBBD0, 0x604D, 0xBBD1, 0x8C0E, - 0xBBD2, 0x7070, 0xBBD3, 0x6325, 0xBBD4, 0x8F89, 0xBBD5, 0x5FBD, - 0xBBD6, 0x6062, 0xBBD7, 0x86D4, 0xBBD8, 0x56DE, 0xBBD9, 0x6BC1, - 0xBBDA, 0x6094, 0xBBDB, 0x6167, 0xBBDC, 0x5349, 0xBBDD, 0x60E0, - 0xBBDE, 0x6666, 0xBBDF, 0x8D3F, 0xBBE0, 0x79FD, 0xBBE1, 0x4F1A, - 0xBBE2, 0x70E9, 0xBBE3, 0x6C47, 0xBBE4, 0x8BB3, 0xBBE5, 0x8BF2, - 0xBBE6, 0x7ED8, 0xBBE7, 0x8364, 0xBBE8, 0x660F, 0xBBE9, 0x5A5A, - 0xBBEA, 0x9B42, 0xBBEB, 0x6D51, 0xBBEC, 0x6DF7, 0xBBED, 0x8C41, - 0xBBEE, 0x6D3B, 0xBBEF, 0x4F19, 0xBBF0, 0x706B, 0xBBF1, 0x83B7, - 0xBBF2, 0x6216, 0xBBF3, 0x60D1, 0xBBF4, 0x970D, 0xBBF5, 0x8D27, - 0xBBF6, 0x7978, 0xBBF7, 0x51FB, 0xBBF8, 0x573E, 0xBBF9, 0x57FA, - 0xBBFA, 0x673A, 0xBBFB, 0x7578, 0xBBFC, 0x7A3D, 0xBBFD, 0x79EF, - 0xBBFE, 0x7B95, 0xBC40, 0x7CBF, 0xBC41, 0x7CC0, 0xBC42, 0x7CC2, - 0xBC43, 0x7CC3, 0xBC44, 0x7CC4, 0xBC45, 0x7CC6, 0xBC46, 0x7CC9, - 0xBC47, 0x7CCB, 0xBC48, 0x7CCE, 0xBC49, 0x7CCF, 0xBC4A, 0x7CD0, - 0xBC4B, 0x7CD1, 0xBC4C, 0x7CD2, 0xBC4D, 0x7CD3, 0xBC4E, 0x7CD4, - 0xBC4F, 0x7CD8, 0xBC50, 0x7CDA, 0xBC51, 0x7CDB, 0xBC52, 0x7CDD, - 0xBC53, 0x7CDE, 0xBC54, 0x7CE1, 0xBC55, 0x7CE2, 0xBC56, 0x7CE3, - 0xBC57, 0x7CE4, 0xBC58, 0x7CE5, 0xBC59, 0x7CE6, 0xBC5A, 0x7CE7, - 0xBC5B, 0x7CE9, 0xBC5C, 0x7CEA, 0xBC5D, 0x7CEB, 0xBC5E, 0x7CEC, - 0xBC5F, 0x7CED, 0xBC60, 0x7CEE, 0xBC61, 0x7CF0, 0xBC62, 0x7CF1, - 0xBC63, 0x7CF2, 0xBC64, 0x7CF3, 0xBC65, 0x7CF4, 0xBC66, 0x7CF5, - 0xBC67, 0x7CF6, 0xBC68, 0x7CF7, 0xBC69, 0x7CF9, 0xBC6A, 0x7CFA, - 0xBC6B, 0x7CFC, 0xBC6C, 0x7CFD, 0xBC6D, 0x7CFE, 0xBC6E, 0x7CFF, - 0xBC6F, 0x7D00, 0xBC70, 0x7D01, 0xBC71, 0x7D02, 0xBC72, 0x7D03, - 0xBC73, 0x7D04, 0xBC74, 0x7D05, 0xBC75, 0x7D06, 0xBC76, 0x7D07, - 0xBC77, 0x7D08, 0xBC78, 0x7D09, 0xBC79, 0x7D0B, 0xBC7A, 0x7D0C, - 0xBC7B, 0x7D0D, 0xBC7C, 0x7D0E, 0xBC7D, 0x7D0F, 0xBC7E, 0x7D10, - 0xBC80, 0x7D11, 0xBC81, 0x7D12, 0xBC82, 0x7D13, 0xBC83, 0x7D14, - 0xBC84, 0x7D15, 0xBC85, 0x7D16, 0xBC86, 0x7D17, 0xBC87, 0x7D18, - 0xBC88, 0x7D19, 0xBC89, 0x7D1A, 0xBC8A, 0x7D1B, 0xBC8B, 0x7D1C, - 0xBC8C, 0x7D1D, 0xBC8D, 0x7D1E, 0xBC8E, 0x7D1F, 0xBC8F, 0x7D21, - 0xBC90, 0x7D23, 0xBC91, 0x7D24, 0xBC92, 0x7D25, 0xBC93, 0x7D26, - 0xBC94, 0x7D28, 0xBC95, 0x7D29, 0xBC96, 0x7D2A, 0xBC97, 0x7D2C, - 0xBC98, 0x7D2D, 0xBC99, 0x7D2E, 0xBC9A, 0x7D30, 0xBC9B, 0x7D31, - 0xBC9C, 0x7D32, 0xBC9D, 0x7D33, 0xBC9E, 0x7D34, 0xBC9F, 0x7D35, - 0xBCA0, 0x7D36, 0xBCA1, 0x808C, 0xBCA2, 0x9965, 0xBCA3, 0x8FF9, - 0xBCA4, 0x6FC0, 0xBCA5, 0x8BA5, 0xBCA6, 0x9E21, 0xBCA7, 0x59EC, - 0xBCA8, 0x7EE9, 0xBCA9, 0x7F09, 0xBCAA, 0x5409, 0xBCAB, 0x6781, - 0xBCAC, 0x68D8, 0xBCAD, 0x8F91, 0xBCAE, 0x7C4D, 0xBCAF, 0x96C6, - 0xBCB0, 0x53CA, 0xBCB1, 0x6025, 0xBCB2, 0x75BE, 0xBCB3, 0x6C72, - 0xBCB4, 0x5373, 0xBCB5, 0x5AC9, 0xBCB6, 0x7EA7, 0xBCB7, 0x6324, - 0xBCB8, 0x51E0, 0xBCB9, 0x810A, 0xBCBA, 0x5DF1, 0xBCBB, 0x84DF, - 0xBCBC, 0x6280, 0xBCBD, 0x5180, 0xBCBE, 0x5B63, 0xBCBF, 0x4F0E, - 0xBCC0, 0x796D, 0xBCC1, 0x5242, 0xBCC2, 0x60B8, 0xBCC3, 0x6D4E, - 0xBCC4, 0x5BC4, 0xBCC5, 0x5BC2, 0xBCC6, 0x8BA1, 0xBCC7, 0x8BB0, - 0xBCC8, 0x65E2, 0xBCC9, 0x5FCC, 0xBCCA, 0x9645, 0xBCCB, 0x5993, - 0xBCCC, 0x7EE7, 0xBCCD, 0x7EAA, 0xBCCE, 0x5609, 0xBCCF, 0x67B7, - 0xBCD0, 0x5939, 0xBCD1, 0x4F73, 0xBCD2, 0x5BB6, 0xBCD3, 0x52A0, - 0xBCD4, 0x835A, 0xBCD5, 0x988A, 0xBCD6, 0x8D3E, 0xBCD7, 0x7532, - 0xBCD8, 0x94BE, 0xBCD9, 0x5047, 0xBCDA, 0x7A3C, 0xBCDB, 0x4EF7, - 0xBCDC, 0x67B6, 0xBCDD, 0x9A7E, 0xBCDE, 0x5AC1, 0xBCDF, 0x6B7C, - 0xBCE0, 0x76D1, 0xBCE1, 0x575A, 0xBCE2, 0x5C16, 0xBCE3, 0x7B3A, - 0xBCE4, 0x95F4, 0xBCE5, 0x714E, 0xBCE6, 0x517C, 0xBCE7, 0x80A9, - 0xBCE8, 0x8270, 0xBCE9, 0x5978, 0xBCEA, 0x7F04, 0xBCEB, 0x8327, - 0xBCEC, 0x68C0, 0xBCED, 0x67EC, 0xBCEE, 0x78B1, 0xBCEF, 0x7877, - 0xBCF0, 0x62E3, 0xBCF1, 0x6361, 0xBCF2, 0x7B80, 0xBCF3, 0x4FED, - 0xBCF4, 0x526A, 0xBCF5, 0x51CF, 0xBCF6, 0x8350, 0xBCF7, 0x69DB, - 0xBCF8, 0x9274, 0xBCF9, 0x8DF5, 0xBCFA, 0x8D31, 0xBCFB, 0x89C1, - 0xBCFC, 0x952E, 0xBCFD, 0x7BAD, 0xBCFE, 0x4EF6, 0xBD40, 0x7D37, - 0xBD41, 0x7D38, 0xBD42, 0x7D39, 0xBD43, 0x7D3A, 0xBD44, 0x7D3B, - 0xBD45, 0x7D3C, 0xBD46, 0x7D3D, 0xBD47, 0x7D3E, 0xBD48, 0x7D3F, - 0xBD49, 0x7D40, 0xBD4A, 0x7D41, 0xBD4B, 0x7D42, 0xBD4C, 0x7D43, - 0xBD4D, 0x7D44, 0xBD4E, 0x7D45, 0xBD4F, 0x7D46, 0xBD50, 0x7D47, - 0xBD51, 0x7D48, 0xBD52, 0x7D49, 0xBD53, 0x7D4A, 0xBD54, 0x7D4B, - 0xBD55, 0x7D4C, 0xBD56, 0x7D4D, 0xBD57, 0x7D4E, 0xBD58, 0x7D4F, - 0xBD59, 0x7D50, 0xBD5A, 0x7D51, 0xBD5B, 0x7D52, 0xBD5C, 0x7D53, - 0xBD5D, 0x7D54, 0xBD5E, 0x7D55, 0xBD5F, 0x7D56, 0xBD60, 0x7D57, - 0xBD61, 0x7D58, 0xBD62, 0x7D59, 0xBD63, 0x7D5A, 0xBD64, 0x7D5B, - 0xBD65, 0x7D5C, 0xBD66, 0x7D5D, 0xBD67, 0x7D5E, 0xBD68, 0x7D5F, - 0xBD69, 0x7D60, 0xBD6A, 0x7D61, 0xBD6B, 0x7D62, 0xBD6C, 0x7D63, - 0xBD6D, 0x7D64, 0xBD6E, 0x7D65, 0xBD6F, 0x7D66, 0xBD70, 0x7D67, - 0xBD71, 0x7D68, 0xBD72, 0x7D69, 0xBD73, 0x7D6A, 0xBD74, 0x7D6B, - 0xBD75, 0x7D6C, 0xBD76, 0x7D6D, 0xBD77, 0x7D6F, 0xBD78, 0x7D70, - 0xBD79, 0x7D71, 0xBD7A, 0x7D72, 0xBD7B, 0x7D73, 0xBD7C, 0x7D74, - 0xBD7D, 0x7D75, 0xBD7E, 0x7D76, 0xBD80, 0x7D78, 0xBD81, 0x7D79, - 0xBD82, 0x7D7A, 0xBD83, 0x7D7B, 0xBD84, 0x7D7C, 0xBD85, 0x7D7D, - 0xBD86, 0x7D7E, 0xBD87, 0x7D7F, 0xBD88, 0x7D80, 0xBD89, 0x7D81, - 0xBD8A, 0x7D82, 0xBD8B, 0x7D83, 0xBD8C, 0x7D84, 0xBD8D, 0x7D85, - 0xBD8E, 0x7D86, 0xBD8F, 0x7D87, 0xBD90, 0x7D88, 0xBD91, 0x7D89, - 0xBD92, 0x7D8A, 0xBD93, 0x7D8B, 0xBD94, 0x7D8C, 0xBD95, 0x7D8D, - 0xBD96, 0x7D8E, 0xBD97, 0x7D8F, 0xBD98, 0x7D90, 0xBD99, 0x7D91, - 0xBD9A, 0x7D92, 0xBD9B, 0x7D93, 0xBD9C, 0x7D94, 0xBD9D, 0x7D95, - 0xBD9E, 0x7D96, 0xBD9F, 0x7D97, 0xBDA0, 0x7D98, 0xBDA1, 0x5065, - 0xBDA2, 0x8230, 0xBDA3, 0x5251, 0xBDA4, 0x996F, 0xBDA5, 0x6E10, - 0xBDA6, 0x6E85, 0xBDA7, 0x6DA7, 0xBDA8, 0x5EFA, 0xBDA9, 0x50F5, - 0xBDAA, 0x59DC, 0xBDAB, 0x5C06, 0xBDAC, 0x6D46, 0xBDAD, 0x6C5F, - 0xBDAE, 0x7586, 0xBDAF, 0x848B, 0xBDB0, 0x6868, 0xBDB1, 0x5956, - 0xBDB2, 0x8BB2, 0xBDB3, 0x5320, 0xBDB4, 0x9171, 0xBDB5, 0x964D, - 0xBDB6, 0x8549, 0xBDB7, 0x6912, 0xBDB8, 0x7901, 0xBDB9, 0x7126, - 0xBDBA, 0x80F6, 0xBDBB, 0x4EA4, 0xBDBC, 0x90CA, 0xBDBD, 0x6D47, - 0xBDBE, 0x9A84, 0xBDBF, 0x5A07, 0xBDC0, 0x56BC, 0xBDC1, 0x6405, - 0xBDC2, 0x94F0, 0xBDC3, 0x77EB, 0xBDC4, 0x4FA5, 0xBDC5, 0x811A, - 0xBDC6, 0x72E1, 0xBDC7, 0x89D2, 0xBDC8, 0x997A, 0xBDC9, 0x7F34, - 0xBDCA, 0x7EDE, 0xBDCB, 0x527F, 0xBDCC, 0x6559, 0xBDCD, 0x9175, - 0xBDCE, 0x8F7F, 0xBDCF, 0x8F83, 0xBDD0, 0x53EB, 0xBDD1, 0x7A96, - 0xBDD2, 0x63ED, 0xBDD3, 0x63A5, 0xBDD4, 0x7686, 0xBDD5, 0x79F8, - 0xBDD6, 0x8857, 0xBDD7, 0x9636, 0xBDD8, 0x622A, 0xBDD9, 0x52AB, - 0xBDDA, 0x8282, 0xBDDB, 0x6854, 0xBDDC, 0x6770, 0xBDDD, 0x6377, - 0xBDDE, 0x776B, 0xBDDF, 0x7AED, 0xBDE0, 0x6D01, 0xBDE1, 0x7ED3, - 0xBDE2, 0x89E3, 0xBDE3, 0x59D0, 0xBDE4, 0x6212, 0xBDE5, 0x85C9, - 0xBDE6, 0x82A5, 0xBDE7, 0x754C, 0xBDE8, 0x501F, 0xBDE9, 0x4ECB, - 0xBDEA, 0x75A5, 0xBDEB, 0x8BEB, 0xBDEC, 0x5C4A, 0xBDED, 0x5DFE, - 0xBDEE, 0x7B4B, 0xBDEF, 0x65A4, 0xBDF0, 0x91D1, 0xBDF1, 0x4ECA, - 0xBDF2, 0x6D25, 0xBDF3, 0x895F, 0xBDF4, 0x7D27, 0xBDF5, 0x9526, - 0xBDF6, 0x4EC5, 0xBDF7, 0x8C28, 0xBDF8, 0x8FDB, 0xBDF9, 0x9773, - 0xBDFA, 0x664B, 0xBDFB, 0x7981, 0xBDFC, 0x8FD1, 0xBDFD, 0x70EC, - 0xBDFE, 0x6D78, 0xBE40, 0x7D99, 0xBE41, 0x7D9A, 0xBE42, 0x7D9B, - 0xBE43, 0x7D9C, 0xBE44, 0x7D9D, 0xBE45, 0x7D9E, 0xBE46, 0x7D9F, - 0xBE47, 0x7DA0, 0xBE48, 0x7DA1, 0xBE49, 0x7DA2, 0xBE4A, 0x7DA3, - 0xBE4B, 0x7DA4, 0xBE4C, 0x7DA5, 0xBE4D, 0x7DA7, 0xBE4E, 0x7DA8, - 0xBE4F, 0x7DA9, 0xBE50, 0x7DAA, 0xBE51, 0x7DAB, 0xBE52, 0x7DAC, - 0xBE53, 0x7DAD, 0xBE54, 0x7DAF, 0xBE55, 0x7DB0, 0xBE56, 0x7DB1, - 0xBE57, 0x7DB2, 0xBE58, 0x7DB3, 0xBE59, 0x7DB4, 0xBE5A, 0x7DB5, - 0xBE5B, 0x7DB6, 0xBE5C, 0x7DB7, 0xBE5D, 0x7DB8, 0xBE5E, 0x7DB9, - 0xBE5F, 0x7DBA, 0xBE60, 0x7DBB, 0xBE61, 0x7DBC, 0xBE62, 0x7DBD, - 0xBE63, 0x7DBE, 0xBE64, 0x7DBF, 0xBE65, 0x7DC0, 0xBE66, 0x7DC1, - 0xBE67, 0x7DC2, 0xBE68, 0x7DC3, 0xBE69, 0x7DC4, 0xBE6A, 0x7DC5, - 0xBE6B, 0x7DC6, 0xBE6C, 0x7DC7, 0xBE6D, 0x7DC8, 0xBE6E, 0x7DC9, - 0xBE6F, 0x7DCA, 0xBE70, 0x7DCB, 0xBE71, 0x7DCC, 0xBE72, 0x7DCD, - 0xBE73, 0x7DCE, 0xBE74, 0x7DCF, 0xBE75, 0x7DD0, 0xBE76, 0x7DD1, - 0xBE77, 0x7DD2, 0xBE78, 0x7DD3, 0xBE79, 0x7DD4, 0xBE7A, 0x7DD5, - 0xBE7B, 0x7DD6, 0xBE7C, 0x7DD7, 0xBE7D, 0x7DD8, 0xBE7E, 0x7DD9, - 0xBE80, 0x7DDA, 0xBE81, 0x7DDB, 0xBE82, 0x7DDC, 0xBE83, 0x7DDD, - 0xBE84, 0x7DDE, 0xBE85, 0x7DDF, 0xBE86, 0x7DE0, 0xBE87, 0x7DE1, - 0xBE88, 0x7DE2, 0xBE89, 0x7DE3, 0xBE8A, 0x7DE4, 0xBE8B, 0x7DE5, - 0xBE8C, 0x7DE6, 0xBE8D, 0x7DE7, 0xBE8E, 0x7DE8, 0xBE8F, 0x7DE9, - 0xBE90, 0x7DEA, 0xBE91, 0x7DEB, 0xBE92, 0x7DEC, 0xBE93, 0x7DED, - 0xBE94, 0x7DEE, 0xBE95, 0x7DEF, 0xBE96, 0x7DF0, 0xBE97, 0x7DF1, - 0xBE98, 0x7DF2, 0xBE99, 0x7DF3, 0xBE9A, 0x7DF4, 0xBE9B, 0x7DF5, - 0xBE9C, 0x7DF6, 0xBE9D, 0x7DF7, 0xBE9E, 0x7DF8, 0xBE9F, 0x7DF9, - 0xBEA0, 0x7DFA, 0xBEA1, 0x5C3D, 0xBEA2, 0x52B2, 0xBEA3, 0x8346, - 0xBEA4, 0x5162, 0xBEA5, 0x830E, 0xBEA6, 0x775B, 0xBEA7, 0x6676, - 0xBEA8, 0x9CB8, 0xBEA9, 0x4EAC, 0xBEAA, 0x60CA, 0xBEAB, 0x7CBE, - 0xBEAC, 0x7CB3, 0xBEAD, 0x7ECF, 0xBEAE, 0x4E95, 0xBEAF, 0x8B66, - 0xBEB0, 0x666F, 0xBEB1, 0x9888, 0xBEB2, 0x9759, 0xBEB3, 0x5883, - 0xBEB4, 0x656C, 0xBEB5, 0x955C, 0xBEB6, 0x5F84, 0xBEB7, 0x75C9, - 0xBEB8, 0x9756, 0xBEB9, 0x7ADF, 0xBEBA, 0x7ADE, 0xBEBB, 0x51C0, - 0xBEBC, 0x70AF, 0xBEBD, 0x7A98, 0xBEBE, 0x63EA, 0xBEBF, 0x7A76, - 0xBEC0, 0x7EA0, 0xBEC1, 0x7396, 0xBEC2, 0x97ED, 0xBEC3, 0x4E45, - 0xBEC4, 0x7078, 0xBEC5, 0x4E5D, 0xBEC6, 0x9152, 0xBEC7, 0x53A9, - 0xBEC8, 0x6551, 0xBEC9, 0x65E7, 0xBECA, 0x81FC, 0xBECB, 0x8205, - 0xBECC, 0x548E, 0xBECD, 0x5C31, 0xBECE, 0x759A, 0xBECF, 0x97A0, - 0xBED0, 0x62D8, 0xBED1, 0x72D9, 0xBED2, 0x75BD, 0xBED3, 0x5C45, - 0xBED4, 0x9A79, 0xBED5, 0x83CA, 0xBED6, 0x5C40, 0xBED7, 0x5480, - 0xBED8, 0x77E9, 0xBED9, 0x4E3E, 0xBEDA, 0x6CAE, 0xBEDB, 0x805A, - 0xBEDC, 0x62D2, 0xBEDD, 0x636E, 0xBEDE, 0x5DE8, 0xBEDF, 0x5177, - 0xBEE0, 0x8DDD, 0xBEE1, 0x8E1E, 0xBEE2, 0x952F, 0xBEE3, 0x4FF1, - 0xBEE4, 0x53E5, 0xBEE5, 0x60E7, 0xBEE6, 0x70AC, 0xBEE7, 0x5267, - 0xBEE8, 0x6350, 0xBEE9, 0x9E43, 0xBEEA, 0x5A1F, 0xBEEB, 0x5026, - 0xBEEC, 0x7737, 0xBEED, 0x5377, 0xBEEE, 0x7EE2, 0xBEEF, 0x6485, - 0xBEF0, 0x652B, 0xBEF1, 0x6289, 0xBEF2, 0x6398, 0xBEF3, 0x5014, - 0xBEF4, 0x7235, 0xBEF5, 0x89C9, 0xBEF6, 0x51B3, 0xBEF7, 0x8BC0, - 0xBEF8, 0x7EDD, 0xBEF9, 0x5747, 0xBEFA, 0x83CC, 0xBEFB, 0x94A7, - 0xBEFC, 0x519B, 0xBEFD, 0x541B, 0xBEFE, 0x5CFB, 0xBF40, 0x7DFB, - 0xBF41, 0x7DFC, 0xBF42, 0x7DFD, 0xBF43, 0x7DFE, 0xBF44, 0x7DFF, - 0xBF45, 0x7E00, 0xBF46, 0x7E01, 0xBF47, 0x7E02, 0xBF48, 0x7E03, - 0xBF49, 0x7E04, 0xBF4A, 0x7E05, 0xBF4B, 0x7E06, 0xBF4C, 0x7E07, - 0xBF4D, 0x7E08, 0xBF4E, 0x7E09, 0xBF4F, 0x7E0A, 0xBF50, 0x7E0B, - 0xBF51, 0x7E0C, 0xBF52, 0x7E0D, 0xBF53, 0x7E0E, 0xBF54, 0x7E0F, - 0xBF55, 0x7E10, 0xBF56, 0x7E11, 0xBF57, 0x7E12, 0xBF58, 0x7E13, - 0xBF59, 0x7E14, 0xBF5A, 0x7E15, 0xBF5B, 0x7E16, 0xBF5C, 0x7E17, - 0xBF5D, 0x7E18, 0xBF5E, 0x7E19, 0xBF5F, 0x7E1A, 0xBF60, 0x7E1B, - 0xBF61, 0x7E1C, 0xBF62, 0x7E1D, 0xBF63, 0x7E1E, 0xBF64, 0x7E1F, - 0xBF65, 0x7E20, 0xBF66, 0x7E21, 0xBF67, 0x7E22, 0xBF68, 0x7E23, - 0xBF69, 0x7E24, 0xBF6A, 0x7E25, 0xBF6B, 0x7E26, 0xBF6C, 0x7E27, - 0xBF6D, 0x7E28, 0xBF6E, 0x7E29, 0xBF6F, 0x7E2A, 0xBF70, 0x7E2B, - 0xBF71, 0x7E2C, 0xBF72, 0x7E2D, 0xBF73, 0x7E2E, 0xBF74, 0x7E2F, - 0xBF75, 0x7E30, 0xBF76, 0x7E31, 0xBF77, 0x7E32, 0xBF78, 0x7E33, - 0xBF79, 0x7E34, 0xBF7A, 0x7E35, 0xBF7B, 0x7E36, 0xBF7C, 0x7E37, - 0xBF7D, 0x7E38, 0xBF7E, 0x7E39, 0xBF80, 0x7E3A, 0xBF81, 0x7E3C, - 0xBF82, 0x7E3D, 0xBF83, 0x7E3E, 0xBF84, 0x7E3F, 0xBF85, 0x7E40, - 0xBF86, 0x7E42, 0xBF87, 0x7E43, 0xBF88, 0x7E44, 0xBF89, 0x7E45, - 0xBF8A, 0x7E46, 0xBF8B, 0x7E48, 0xBF8C, 0x7E49, 0xBF8D, 0x7E4A, - 0xBF8E, 0x7E4B, 0xBF8F, 0x7E4C, 0xBF90, 0x7E4D, 0xBF91, 0x7E4E, - 0xBF92, 0x7E4F, 0xBF93, 0x7E50, 0xBF94, 0x7E51, 0xBF95, 0x7E52, - 0xBF96, 0x7E53, 0xBF97, 0x7E54, 0xBF98, 0x7E55, 0xBF99, 0x7E56, - 0xBF9A, 0x7E57, 0xBF9B, 0x7E58, 0xBF9C, 0x7E59, 0xBF9D, 0x7E5A, - 0xBF9E, 0x7E5B, 0xBF9F, 0x7E5C, 0xBFA0, 0x7E5D, 0xBFA1, 0x4FCA, - 0xBFA2, 0x7AE3, 0xBFA3, 0x6D5A, 0xBFA4, 0x90E1, 0xBFA5, 0x9A8F, - 0xBFA6, 0x5580, 0xBFA7, 0x5496, 0xBFA8, 0x5361, 0xBFA9, 0x54AF, - 0xBFAA, 0x5F00, 0xBFAB, 0x63E9, 0xBFAC, 0x6977, 0xBFAD, 0x51EF, - 0xBFAE, 0x6168, 0xBFAF, 0x520A, 0xBFB0, 0x582A, 0xBFB1, 0x52D8, - 0xBFB2, 0x574E, 0xBFB3, 0x780D, 0xBFB4, 0x770B, 0xBFB5, 0x5EB7, - 0xBFB6, 0x6177, 0xBFB7, 0x7CE0, 0xBFB8, 0x625B, 0xBFB9, 0x6297, - 0xBFBA, 0x4EA2, 0xBFBB, 0x7095, 0xBFBC, 0x8003, 0xBFBD, 0x62F7, - 0xBFBE, 0x70E4, 0xBFBF, 0x9760, 0xBFC0, 0x5777, 0xBFC1, 0x82DB, - 0xBFC2, 0x67EF, 0xBFC3, 0x68F5, 0xBFC4, 0x78D5, 0xBFC5, 0x9897, - 0xBFC6, 0x79D1, 0xBFC7, 0x58F3, 0xBFC8, 0x54B3, 0xBFC9, 0x53EF, - 0xBFCA, 0x6E34, 0xBFCB, 0x514B, 0xBFCC, 0x523B, 0xBFCD, 0x5BA2, - 0xBFCE, 0x8BFE, 0xBFCF, 0x80AF, 0xBFD0, 0x5543, 0xBFD1, 0x57A6, - 0xBFD2, 0x6073, 0xBFD3, 0x5751, 0xBFD4, 0x542D, 0xBFD5, 0x7A7A, - 0xBFD6, 0x6050, 0xBFD7, 0x5B54, 0xBFD8, 0x63A7, 0xBFD9, 0x62A0, - 0xBFDA, 0x53E3, 0xBFDB, 0x6263, 0xBFDC, 0x5BC7, 0xBFDD, 0x67AF, - 0xBFDE, 0x54ED, 0xBFDF, 0x7A9F, 0xBFE0, 0x82E6, 0xBFE1, 0x9177, - 0xBFE2, 0x5E93, 0xBFE3, 0x88E4, 0xBFE4, 0x5938, 0xBFE5, 0x57AE, - 0xBFE6, 0x630E, 0xBFE7, 0x8DE8, 0xBFE8, 0x80EF, 0xBFE9, 0x5757, - 0xBFEA, 0x7B77, 0xBFEB, 0x4FA9, 0xBFEC, 0x5FEB, 0xBFED, 0x5BBD, - 0xBFEE, 0x6B3E, 0xBFEF, 0x5321, 0xBFF0, 0x7B50, 0xBFF1, 0x72C2, - 0xBFF2, 0x6846, 0xBFF3, 0x77FF, 0xBFF4, 0x7736, 0xBFF5, 0x65F7, - 0xBFF6, 0x51B5, 0xBFF7, 0x4E8F, 0xBFF8, 0x76D4, 0xBFF9, 0x5CBF, - 0xBFFA, 0x7AA5, 0xBFFB, 0x8475, 0xBFFC, 0x594E, 0xBFFD, 0x9B41, - 0xBFFE, 0x5080, 0xC040, 0x7E5E, 0xC041, 0x7E5F, 0xC042, 0x7E60, - 0xC043, 0x7E61, 0xC044, 0x7E62, 0xC045, 0x7E63, 0xC046, 0x7E64, - 0xC047, 0x7E65, 0xC048, 0x7E66, 0xC049, 0x7E67, 0xC04A, 0x7E68, - 0xC04B, 0x7E69, 0xC04C, 0x7E6A, 0xC04D, 0x7E6B, 0xC04E, 0x7E6C, - 0xC04F, 0x7E6D, 0xC050, 0x7E6E, 0xC051, 0x7E6F, 0xC052, 0x7E70, - 0xC053, 0x7E71, 0xC054, 0x7E72, 0xC055, 0x7E73, 0xC056, 0x7E74, - 0xC057, 0x7E75, 0xC058, 0x7E76, 0xC059, 0x7E77, 0xC05A, 0x7E78, - 0xC05B, 0x7E79, 0xC05C, 0x7E7A, 0xC05D, 0x7E7B, 0xC05E, 0x7E7C, - 0xC05F, 0x7E7D, 0xC060, 0x7E7E, 0xC061, 0x7E7F, 0xC062, 0x7E80, - 0xC063, 0x7E81, 0xC064, 0x7E83, 0xC065, 0x7E84, 0xC066, 0x7E85, - 0xC067, 0x7E86, 0xC068, 0x7E87, 0xC069, 0x7E88, 0xC06A, 0x7E89, - 0xC06B, 0x7E8A, 0xC06C, 0x7E8B, 0xC06D, 0x7E8C, 0xC06E, 0x7E8D, - 0xC06F, 0x7E8E, 0xC070, 0x7E8F, 0xC071, 0x7E90, 0xC072, 0x7E91, - 0xC073, 0x7E92, 0xC074, 0x7E93, 0xC075, 0x7E94, 0xC076, 0x7E95, - 0xC077, 0x7E96, 0xC078, 0x7E97, 0xC079, 0x7E98, 0xC07A, 0x7E99, - 0xC07B, 0x7E9A, 0xC07C, 0x7E9C, 0xC07D, 0x7E9D, 0xC07E, 0x7E9E, - 0xC080, 0x7EAE, 0xC081, 0x7EB4, 0xC082, 0x7EBB, 0xC083, 0x7EBC, - 0xC084, 0x7ED6, 0xC085, 0x7EE4, 0xC086, 0x7EEC, 0xC087, 0x7EF9, - 0xC088, 0x7F0A, 0xC089, 0x7F10, 0xC08A, 0x7F1E, 0xC08B, 0x7F37, - 0xC08C, 0x7F39, 0xC08D, 0x7F3B, 0xC08E, 0x7F3C, 0xC08F, 0x7F3D, - 0xC090, 0x7F3E, 0xC091, 0x7F3F, 0xC092, 0x7F40, 0xC093, 0x7F41, - 0xC094, 0x7F43, 0xC095, 0x7F46, 0xC096, 0x7F47, 0xC097, 0x7F48, - 0xC098, 0x7F49, 0xC099, 0x7F4A, 0xC09A, 0x7F4B, 0xC09B, 0x7F4C, - 0xC09C, 0x7F4D, 0xC09D, 0x7F4E, 0xC09E, 0x7F4F, 0xC09F, 0x7F52, - 0xC0A0, 0x7F53, 0xC0A1, 0x9988, 0xC0A2, 0x6127, 0xC0A3, 0x6E83, - 0xC0A4, 0x5764, 0xC0A5, 0x6606, 0xC0A6, 0x6346, 0xC0A7, 0x56F0, - 0xC0A8, 0x62EC, 0xC0A9, 0x6269, 0xC0AA, 0x5ED3, 0xC0AB, 0x9614, - 0xC0AC, 0x5783, 0xC0AD, 0x62C9, 0xC0AE, 0x5587, 0xC0AF, 0x8721, - 0xC0B0, 0x814A, 0xC0B1, 0x8FA3, 0xC0B2, 0x5566, 0xC0B3, 0x83B1, - 0xC0B4, 0x6765, 0xC0B5, 0x8D56, 0xC0B6, 0x84DD, 0xC0B7, 0x5A6A, - 0xC0B8, 0x680F, 0xC0B9, 0x62E6, 0xC0BA, 0x7BEE, 0xC0BB, 0x9611, - 0xC0BC, 0x5170, 0xC0BD, 0x6F9C, 0xC0BE, 0x8C30, 0xC0BF, 0x63FD, - 0xC0C0, 0x89C8, 0xC0C1, 0x61D2, 0xC0C2, 0x7F06, 0xC0C3, 0x70C2, - 0xC0C4, 0x6EE5, 0xC0C5, 0x7405, 0xC0C6, 0x6994, 0xC0C7, 0x72FC, - 0xC0C8, 0x5ECA, 0xC0C9, 0x90CE, 0xC0CA, 0x6717, 0xC0CB, 0x6D6A, - 0xC0CC, 0x635E, 0xC0CD, 0x52B3, 0xC0CE, 0x7262, 0xC0CF, 0x8001, - 0xC0D0, 0x4F6C, 0xC0D1, 0x59E5, 0xC0D2, 0x916A, 0xC0D3, 0x70D9, - 0xC0D4, 0x6D9D, 0xC0D5, 0x52D2, 0xC0D6, 0x4E50, 0xC0D7, 0x96F7, - 0xC0D8, 0x956D, 0xC0D9, 0x857E, 0xC0DA, 0x78CA, 0xC0DB, 0x7D2F, - 0xC0DC, 0x5121, 0xC0DD, 0x5792, 0xC0DE, 0x64C2, 0xC0DF, 0x808B, - 0xC0E0, 0x7C7B, 0xC0E1, 0x6CEA, 0xC0E2, 0x68F1, 0xC0E3, 0x695E, - 0xC0E4, 0x51B7, 0xC0E5, 0x5398, 0xC0E6, 0x68A8, 0xC0E7, 0x7281, - 0xC0E8, 0x9ECE, 0xC0E9, 0x7BF1, 0xC0EA, 0x72F8, 0xC0EB, 0x79BB, - 0xC0EC, 0x6F13, 0xC0ED, 0x7406, 0xC0EE, 0x674E, 0xC0EF, 0x91CC, - 0xC0F0, 0x9CA4, 0xC0F1, 0x793C, 0xC0F2, 0x8389, 0xC0F3, 0x8354, - 0xC0F4, 0x540F, 0xC0F5, 0x6817, 0xC0F6, 0x4E3D, 0xC0F7, 0x5389, - 0xC0F8, 0x52B1, 0xC0F9, 0x783E, 0xC0FA, 0x5386, 0xC0FB, 0x5229, - 0xC0FC, 0x5088, 0xC0FD, 0x4F8B, 0xC0FE, 0x4FD0, 0xC140, 0x7F56, - 0xC141, 0x7F59, 0xC142, 0x7F5B, 0xC143, 0x7F5C, 0xC144, 0x7F5D, - 0xC145, 0x7F5E, 0xC146, 0x7F60, 0xC147, 0x7F63, 0xC148, 0x7F64, - 0xC149, 0x7F65, 0xC14A, 0x7F66, 0xC14B, 0x7F67, 0xC14C, 0x7F6B, - 0xC14D, 0x7F6C, 0xC14E, 0x7F6D, 0xC14F, 0x7F6F, 0xC150, 0x7F70, - 0xC151, 0x7F73, 0xC152, 0x7F75, 0xC153, 0x7F76, 0xC154, 0x7F77, - 0xC155, 0x7F78, 0xC156, 0x7F7A, 0xC157, 0x7F7B, 0xC158, 0x7F7C, - 0xC159, 0x7F7D, 0xC15A, 0x7F7F, 0xC15B, 0x7F80, 0xC15C, 0x7F82, - 0xC15D, 0x7F83, 0xC15E, 0x7F84, 0xC15F, 0x7F85, 0xC160, 0x7F86, - 0xC161, 0x7F87, 0xC162, 0x7F88, 0xC163, 0x7F89, 0xC164, 0x7F8B, - 0xC165, 0x7F8D, 0xC166, 0x7F8F, 0xC167, 0x7F90, 0xC168, 0x7F91, - 0xC169, 0x7F92, 0xC16A, 0x7F93, 0xC16B, 0x7F95, 0xC16C, 0x7F96, - 0xC16D, 0x7F97, 0xC16E, 0x7F98, 0xC16F, 0x7F99, 0xC170, 0x7F9B, - 0xC171, 0x7F9C, 0xC172, 0x7FA0, 0xC173, 0x7FA2, 0xC174, 0x7FA3, - 0xC175, 0x7FA5, 0xC176, 0x7FA6, 0xC177, 0x7FA8, 0xC178, 0x7FA9, - 0xC179, 0x7FAA, 0xC17A, 0x7FAB, 0xC17B, 0x7FAC, 0xC17C, 0x7FAD, - 0xC17D, 0x7FAE, 0xC17E, 0x7FB1, 0xC180, 0x7FB3, 0xC181, 0x7FB4, - 0xC182, 0x7FB5, 0xC183, 0x7FB6, 0xC184, 0x7FB7, 0xC185, 0x7FBA, - 0xC186, 0x7FBB, 0xC187, 0x7FBE, 0xC188, 0x7FC0, 0xC189, 0x7FC2, - 0xC18A, 0x7FC3, 0xC18B, 0x7FC4, 0xC18C, 0x7FC6, 0xC18D, 0x7FC7, - 0xC18E, 0x7FC8, 0xC18F, 0x7FC9, 0xC190, 0x7FCB, 0xC191, 0x7FCD, - 0xC192, 0x7FCF, 0xC193, 0x7FD0, 0xC194, 0x7FD1, 0xC195, 0x7FD2, - 0xC196, 0x7FD3, 0xC197, 0x7FD6, 0xC198, 0x7FD7, 0xC199, 0x7FD9, - 0xC19A, 0x7FDA, 0xC19B, 0x7FDB, 0xC19C, 0x7FDC, 0xC19D, 0x7FDD, - 0xC19E, 0x7FDE, 0xC19F, 0x7FE2, 0xC1A0, 0x7FE3, 0xC1A1, 0x75E2, - 0xC1A2, 0x7ACB, 0xC1A3, 0x7C92, 0xC1A4, 0x6CA5, 0xC1A5, 0x96B6, - 0xC1A6, 0x529B, 0xC1A7, 0x7483, 0xC1A8, 0x54E9, 0xC1A9, 0x4FE9, - 0xC1AA, 0x8054, 0xC1AB, 0x83B2, 0xC1AC, 0x8FDE, 0xC1AD, 0x9570, - 0xC1AE, 0x5EC9, 0xC1AF, 0x601C, 0xC1B0, 0x6D9F, 0xC1B1, 0x5E18, - 0xC1B2, 0x655B, 0xC1B3, 0x8138, 0xC1B4, 0x94FE, 0xC1B5, 0x604B, - 0xC1B6, 0x70BC, 0xC1B7, 0x7EC3, 0xC1B8, 0x7CAE, 0xC1B9, 0x51C9, - 0xC1BA, 0x6881, 0xC1BB, 0x7CB1, 0xC1BC, 0x826F, 0xC1BD, 0x4E24, - 0xC1BE, 0x8F86, 0xC1BF, 0x91CF, 0xC1C0, 0x667E, 0xC1C1, 0x4EAE, - 0xC1C2, 0x8C05, 0xC1C3, 0x64A9, 0xC1C4, 0x804A, 0xC1C5, 0x50DA, - 0xC1C6, 0x7597, 0xC1C7, 0x71CE, 0xC1C8, 0x5BE5, 0xC1C9, 0x8FBD, - 0xC1CA, 0x6F66, 0xC1CB, 0x4E86, 0xC1CC, 0x6482, 0xC1CD, 0x9563, - 0xC1CE, 0x5ED6, 0xC1CF, 0x6599, 0xC1D0, 0x5217, 0xC1D1, 0x88C2, - 0xC1D2, 0x70C8, 0xC1D3, 0x52A3, 0xC1D4, 0x730E, 0xC1D5, 0x7433, - 0xC1D6, 0x6797, 0xC1D7, 0x78F7, 0xC1D8, 0x9716, 0xC1D9, 0x4E34, - 0xC1DA, 0x90BB, 0xC1DB, 0x9CDE, 0xC1DC, 0x6DCB, 0xC1DD, 0x51DB, - 0xC1DE, 0x8D41, 0xC1DF, 0x541D, 0xC1E0, 0x62CE, 0xC1E1, 0x73B2, - 0xC1E2, 0x83F1, 0xC1E3, 0x96F6, 0xC1E4, 0x9F84, 0xC1E5, 0x94C3, - 0xC1E6, 0x4F36, 0xC1E7, 0x7F9A, 0xC1E8, 0x51CC, 0xC1E9, 0x7075, - 0xC1EA, 0x9675, 0xC1EB, 0x5CAD, 0xC1EC, 0x9886, 0xC1ED, 0x53E6, - 0xC1EE, 0x4EE4, 0xC1EF, 0x6E9C, 0xC1F0, 0x7409, 0xC1F1, 0x69B4, - 0xC1F2, 0x786B, 0xC1F3, 0x998F, 0xC1F4, 0x7559, 0xC1F5, 0x5218, - 0xC1F6, 0x7624, 0xC1F7, 0x6D41, 0xC1F8, 0x67F3, 0xC1F9, 0x516D, - 0xC1FA, 0x9F99, 0xC1FB, 0x804B, 0xC1FC, 0x5499, 0xC1FD, 0x7B3C, - 0xC1FE, 0x7ABF, 0xC240, 0x7FE4, 0xC241, 0x7FE7, 0xC242, 0x7FE8, - 0xC243, 0x7FEA, 0xC244, 0x7FEB, 0xC245, 0x7FEC, 0xC246, 0x7FED, - 0xC247, 0x7FEF, 0xC248, 0x7FF2, 0xC249, 0x7FF4, 0xC24A, 0x7FF5, - 0xC24B, 0x7FF6, 0xC24C, 0x7FF7, 0xC24D, 0x7FF8, 0xC24E, 0x7FF9, - 0xC24F, 0x7FFA, 0xC250, 0x7FFD, 0xC251, 0x7FFE, 0xC252, 0x7FFF, - 0xC253, 0x8002, 0xC254, 0x8007, 0xC255, 0x8008, 0xC256, 0x8009, - 0xC257, 0x800A, 0xC258, 0x800E, 0xC259, 0x800F, 0xC25A, 0x8011, - 0xC25B, 0x8013, 0xC25C, 0x801A, 0xC25D, 0x801B, 0xC25E, 0x801D, - 0xC25F, 0x801E, 0xC260, 0x801F, 0xC261, 0x8021, 0xC262, 0x8023, - 0xC263, 0x8024, 0xC264, 0x802B, 0xC265, 0x802C, 0xC266, 0x802D, - 0xC267, 0x802E, 0xC268, 0x802F, 0xC269, 0x8030, 0xC26A, 0x8032, - 0xC26B, 0x8034, 0xC26C, 0x8039, 0xC26D, 0x803A, 0xC26E, 0x803C, - 0xC26F, 0x803E, 0xC270, 0x8040, 0xC271, 0x8041, 0xC272, 0x8044, - 0xC273, 0x8045, 0xC274, 0x8047, 0xC275, 0x8048, 0xC276, 0x8049, - 0xC277, 0x804E, 0xC278, 0x804F, 0xC279, 0x8050, 0xC27A, 0x8051, - 0xC27B, 0x8053, 0xC27C, 0x8055, 0xC27D, 0x8056, 0xC27E, 0x8057, - 0xC280, 0x8059, 0xC281, 0x805B, 0xC282, 0x805C, 0xC283, 0x805D, - 0xC284, 0x805E, 0xC285, 0x805F, 0xC286, 0x8060, 0xC287, 0x8061, - 0xC288, 0x8062, 0xC289, 0x8063, 0xC28A, 0x8064, 0xC28B, 0x8065, - 0xC28C, 0x8066, 0xC28D, 0x8067, 0xC28E, 0x8068, 0xC28F, 0x806B, - 0xC290, 0x806C, 0xC291, 0x806D, 0xC292, 0x806E, 0xC293, 0x806F, - 0xC294, 0x8070, 0xC295, 0x8072, 0xC296, 0x8073, 0xC297, 0x8074, - 0xC298, 0x8075, 0xC299, 0x8076, 0xC29A, 0x8077, 0xC29B, 0x8078, - 0xC29C, 0x8079, 0xC29D, 0x807A, 0xC29E, 0x807B, 0xC29F, 0x807C, - 0xC2A0, 0x807D, 0xC2A1, 0x9686, 0xC2A2, 0x5784, 0xC2A3, 0x62E2, - 0xC2A4, 0x9647, 0xC2A5, 0x697C, 0xC2A6, 0x5A04, 0xC2A7, 0x6402, - 0xC2A8, 0x7BD3, 0xC2A9, 0x6F0F, 0xC2AA, 0x964B, 0xC2AB, 0x82A6, - 0xC2AC, 0x5362, 0xC2AD, 0x9885, 0xC2AE, 0x5E90, 0xC2AF, 0x7089, - 0xC2B0, 0x63B3, 0xC2B1, 0x5364, 0xC2B2, 0x864F, 0xC2B3, 0x9C81, - 0xC2B4, 0x9E93, 0xC2B5, 0x788C, 0xC2B6, 0x9732, 0xC2B7, 0x8DEF, - 0xC2B8, 0x8D42, 0xC2B9, 0x9E7F, 0xC2BA, 0x6F5E, 0xC2BB, 0x7984, - 0xC2BC, 0x5F55, 0xC2BD, 0x9646, 0xC2BE, 0x622E, 0xC2BF, 0x9A74, - 0xC2C0, 0x5415, 0xC2C1, 0x94DD, 0xC2C2, 0x4FA3, 0xC2C3, 0x65C5, - 0xC2C4, 0x5C65, 0xC2C5, 0x5C61, 0xC2C6, 0x7F15, 0xC2C7, 0x8651, - 0xC2C8, 0x6C2F, 0xC2C9, 0x5F8B, 0xC2CA, 0x7387, 0xC2CB, 0x6EE4, - 0xC2CC, 0x7EFF, 0xC2CD, 0x5CE6, 0xC2CE, 0x631B, 0xC2CF, 0x5B6A, - 0xC2D0, 0x6EE6, 0xC2D1, 0x5375, 0xC2D2, 0x4E71, 0xC2D3, 0x63A0, - 0xC2D4, 0x7565, 0xC2D5, 0x62A1, 0xC2D6, 0x8F6E, 0xC2D7, 0x4F26, - 0xC2D8, 0x4ED1, 0xC2D9, 0x6CA6, 0xC2DA, 0x7EB6, 0xC2DB, 0x8BBA, - 0xC2DC, 0x841D, 0xC2DD, 0x87BA, 0xC2DE, 0x7F57, 0xC2DF, 0x903B, - 0xC2E0, 0x9523, 0xC2E1, 0x7BA9, 0xC2E2, 0x9AA1, 0xC2E3, 0x88F8, - 0xC2E4, 0x843D, 0xC2E5, 0x6D1B, 0xC2E6, 0x9A86, 0xC2E7, 0x7EDC, - 0xC2E8, 0x5988, 0xC2E9, 0x9EBB, 0xC2EA, 0x739B, 0xC2EB, 0x7801, - 0xC2EC, 0x8682, 0xC2ED, 0x9A6C, 0xC2EE, 0x9A82, 0xC2EF, 0x561B, - 0xC2F0, 0x5417, 0xC2F1, 0x57CB, 0xC2F2, 0x4E70, 0xC2F3, 0x9EA6, - 0xC2F4, 0x5356, 0xC2F5, 0x8FC8, 0xC2F6, 0x8109, 0xC2F7, 0x7792, - 0xC2F8, 0x9992, 0xC2F9, 0x86EE, 0xC2FA, 0x6EE1, 0xC2FB, 0x8513, - 0xC2FC, 0x66FC, 0xC2FD, 0x6162, 0xC2FE, 0x6F2B, 0xC340, 0x807E, - 0xC341, 0x8081, 0xC342, 0x8082, 0xC343, 0x8085, 0xC344, 0x8088, - 0xC345, 0x808A, 0xC346, 0x808D, 0xC347, 0x808E, 0xC348, 0x808F, - 0xC349, 0x8090, 0xC34A, 0x8091, 0xC34B, 0x8092, 0xC34C, 0x8094, - 0xC34D, 0x8095, 0xC34E, 0x8097, 0xC34F, 0x8099, 0xC350, 0x809E, - 0xC351, 0x80A3, 0xC352, 0x80A6, 0xC353, 0x80A7, 0xC354, 0x80A8, - 0xC355, 0x80AC, 0xC356, 0x80B0, 0xC357, 0x80B3, 0xC358, 0x80B5, - 0xC359, 0x80B6, 0xC35A, 0x80B8, 0xC35B, 0x80B9, 0xC35C, 0x80BB, - 0xC35D, 0x80C5, 0xC35E, 0x80C7, 0xC35F, 0x80C8, 0xC360, 0x80C9, - 0xC361, 0x80CA, 0xC362, 0x80CB, 0xC363, 0x80CF, 0xC364, 0x80D0, - 0xC365, 0x80D1, 0xC366, 0x80D2, 0xC367, 0x80D3, 0xC368, 0x80D4, - 0xC369, 0x80D5, 0xC36A, 0x80D8, 0xC36B, 0x80DF, 0xC36C, 0x80E0, - 0xC36D, 0x80E2, 0xC36E, 0x80E3, 0xC36F, 0x80E6, 0xC370, 0x80EE, - 0xC371, 0x80F5, 0xC372, 0x80F7, 0xC373, 0x80F9, 0xC374, 0x80FB, - 0xC375, 0x80FE, 0xC376, 0x80FF, 0xC377, 0x8100, 0xC378, 0x8101, - 0xC379, 0x8103, 0xC37A, 0x8104, 0xC37B, 0x8105, 0xC37C, 0x8107, - 0xC37D, 0x8108, 0xC37E, 0x810B, 0xC380, 0x810C, 0xC381, 0x8115, - 0xC382, 0x8117, 0xC383, 0x8119, 0xC384, 0x811B, 0xC385, 0x811C, - 0xC386, 0x811D, 0xC387, 0x811F, 0xC388, 0x8120, 0xC389, 0x8121, - 0xC38A, 0x8122, 0xC38B, 0x8123, 0xC38C, 0x8124, 0xC38D, 0x8125, - 0xC38E, 0x8126, 0xC38F, 0x8127, 0xC390, 0x8128, 0xC391, 0x8129, - 0xC392, 0x812A, 0xC393, 0x812B, 0xC394, 0x812D, 0xC395, 0x812E, - 0xC396, 0x8130, 0xC397, 0x8133, 0xC398, 0x8134, 0xC399, 0x8135, - 0xC39A, 0x8137, 0xC39B, 0x8139, 0xC39C, 0x813A, 0xC39D, 0x813B, - 0xC39E, 0x813C, 0xC39F, 0x813D, 0xC3A0, 0x813F, 0xC3A1, 0x8C29, - 0xC3A2, 0x8292, 0xC3A3, 0x832B, 0xC3A4, 0x76F2, 0xC3A5, 0x6C13, - 0xC3A6, 0x5FD9, 0xC3A7, 0x83BD, 0xC3A8, 0x732B, 0xC3A9, 0x8305, - 0xC3AA, 0x951A, 0xC3AB, 0x6BDB, 0xC3AC, 0x77DB, 0xC3AD, 0x94C6, - 0xC3AE, 0x536F, 0xC3AF, 0x8302, 0xC3B0, 0x5192, 0xC3B1, 0x5E3D, - 0xC3B2, 0x8C8C, 0xC3B3, 0x8D38, 0xC3B4, 0x4E48, 0xC3B5, 0x73AB, - 0xC3B6, 0x679A, 0xC3B7, 0x6885, 0xC3B8, 0x9176, 0xC3B9, 0x9709, - 0xC3BA, 0x7164, 0xC3BB, 0x6CA1, 0xC3BC, 0x7709, 0xC3BD, 0x5A92, - 0xC3BE, 0x9541, 0xC3BF, 0x6BCF, 0xC3C0, 0x7F8E, 0xC3C1, 0x6627, - 0xC3C2, 0x5BD0, 0xC3C3, 0x59B9, 0xC3C4, 0x5A9A, 0xC3C5, 0x95E8, - 0xC3C6, 0x95F7, 0xC3C7, 0x4EEC, 0xC3C8, 0x840C, 0xC3C9, 0x8499, - 0xC3CA, 0x6AAC, 0xC3CB, 0x76DF, 0xC3CC, 0x9530, 0xC3CD, 0x731B, - 0xC3CE, 0x68A6, 0xC3CF, 0x5B5F, 0xC3D0, 0x772F, 0xC3D1, 0x919A, - 0xC3D2, 0x9761, 0xC3D3, 0x7CDC, 0xC3D4, 0x8FF7, 0xC3D5, 0x8C1C, - 0xC3D6, 0x5F25, 0xC3D7, 0x7C73, 0xC3D8, 0x79D8, 0xC3D9, 0x89C5, - 0xC3DA, 0x6CCC, 0xC3DB, 0x871C, 0xC3DC, 0x5BC6, 0xC3DD, 0x5E42, - 0xC3DE, 0x68C9, 0xC3DF, 0x7720, 0xC3E0, 0x7EF5, 0xC3E1, 0x5195, - 0xC3E2, 0x514D, 0xC3E3, 0x52C9, 0xC3E4, 0x5A29, 0xC3E5, 0x7F05, - 0xC3E6, 0x9762, 0xC3E7, 0x82D7, 0xC3E8, 0x63CF, 0xC3E9, 0x7784, - 0xC3EA, 0x85D0, 0xC3EB, 0x79D2, 0xC3EC, 0x6E3A, 0xC3ED, 0x5E99, - 0xC3EE, 0x5999, 0xC3EF, 0x8511, 0xC3F0, 0x706D, 0xC3F1, 0x6C11, - 0xC3F2, 0x62BF, 0xC3F3, 0x76BF, 0xC3F4, 0x654F, 0xC3F5, 0x60AF, - 0xC3F6, 0x95FD, 0xC3F7, 0x660E, 0xC3F8, 0x879F, 0xC3F9, 0x9E23, - 0xC3FA, 0x94ED, 0xC3FB, 0x540D, 0xC3FC, 0x547D, 0xC3FD, 0x8C2C, - 0xC3FE, 0x6478, 0xC440, 0x8140, 0xC441, 0x8141, 0xC442, 0x8142, - 0xC443, 0x8143, 0xC444, 0x8144, 0xC445, 0x8145, 0xC446, 0x8147, - 0xC447, 0x8149, 0xC448, 0x814D, 0xC449, 0x814E, 0xC44A, 0x814F, - 0xC44B, 0x8152, 0xC44C, 0x8156, 0xC44D, 0x8157, 0xC44E, 0x8158, - 0xC44F, 0x815B, 0xC450, 0x815C, 0xC451, 0x815D, 0xC452, 0x815E, - 0xC453, 0x815F, 0xC454, 0x8161, 0xC455, 0x8162, 0xC456, 0x8163, - 0xC457, 0x8164, 0xC458, 0x8166, 0xC459, 0x8168, 0xC45A, 0x816A, - 0xC45B, 0x816B, 0xC45C, 0x816C, 0xC45D, 0x816F, 0xC45E, 0x8172, - 0xC45F, 0x8173, 0xC460, 0x8175, 0xC461, 0x8176, 0xC462, 0x8177, - 0xC463, 0x8178, 0xC464, 0x8181, 0xC465, 0x8183, 0xC466, 0x8184, - 0xC467, 0x8185, 0xC468, 0x8186, 0xC469, 0x8187, 0xC46A, 0x8189, - 0xC46B, 0x818B, 0xC46C, 0x818C, 0xC46D, 0x818D, 0xC46E, 0x818E, - 0xC46F, 0x8190, 0xC470, 0x8192, 0xC471, 0x8193, 0xC472, 0x8194, - 0xC473, 0x8195, 0xC474, 0x8196, 0xC475, 0x8197, 0xC476, 0x8199, - 0xC477, 0x819A, 0xC478, 0x819E, 0xC479, 0x819F, 0xC47A, 0x81A0, - 0xC47B, 0x81A1, 0xC47C, 0x81A2, 0xC47D, 0x81A4, 0xC47E, 0x81A5, - 0xC480, 0x81A7, 0xC481, 0x81A9, 0xC482, 0x81AB, 0xC483, 0x81AC, - 0xC484, 0x81AD, 0xC485, 0x81AE, 0xC486, 0x81AF, 0xC487, 0x81B0, - 0xC488, 0x81B1, 0xC489, 0x81B2, 0xC48A, 0x81B4, 0xC48B, 0x81B5, - 0xC48C, 0x81B6, 0xC48D, 0x81B7, 0xC48E, 0x81B8, 0xC48F, 0x81B9, - 0xC490, 0x81BC, 0xC491, 0x81BD, 0xC492, 0x81BE, 0xC493, 0x81BF, - 0xC494, 0x81C4, 0xC495, 0x81C5, 0xC496, 0x81C7, 0xC497, 0x81C8, - 0xC498, 0x81C9, 0xC499, 0x81CB, 0xC49A, 0x81CD, 0xC49B, 0x81CE, - 0xC49C, 0x81CF, 0xC49D, 0x81D0, 0xC49E, 0x81D1, 0xC49F, 0x81D2, - 0xC4A0, 0x81D3, 0xC4A1, 0x6479, 0xC4A2, 0x8611, 0xC4A3, 0x6A21, - 0xC4A4, 0x819C, 0xC4A5, 0x78E8, 0xC4A6, 0x6469, 0xC4A7, 0x9B54, - 0xC4A8, 0x62B9, 0xC4A9, 0x672B, 0xC4AA, 0x83AB, 0xC4AB, 0x58A8, - 0xC4AC, 0x9ED8, 0xC4AD, 0x6CAB, 0xC4AE, 0x6F20, 0xC4AF, 0x5BDE, - 0xC4B0, 0x964C, 0xC4B1, 0x8C0B, 0xC4B2, 0x725F, 0xC4B3, 0x67D0, - 0xC4B4, 0x62C7, 0xC4B5, 0x7261, 0xC4B6, 0x4EA9, 0xC4B7, 0x59C6, - 0xC4B8, 0x6BCD, 0xC4B9, 0x5893, 0xC4BA, 0x66AE, 0xC4BB, 0x5E55, - 0xC4BC, 0x52DF, 0xC4BD, 0x6155, 0xC4BE, 0x6728, 0xC4BF, 0x76EE, - 0xC4C0, 0x7766, 0xC4C1, 0x7267, 0xC4C2, 0x7A46, 0xC4C3, 0x62FF, - 0xC4C4, 0x54EA, 0xC4C5, 0x5450, 0xC4C6, 0x94A0, 0xC4C7, 0x90A3, - 0xC4C8, 0x5A1C, 0xC4C9, 0x7EB3, 0xC4CA, 0x6C16, 0xC4CB, 0x4E43, - 0xC4CC, 0x5976, 0xC4CD, 0x8010, 0xC4CE, 0x5948, 0xC4CF, 0x5357, - 0xC4D0, 0x7537, 0xC4D1, 0x96BE, 0xC4D2, 0x56CA, 0xC4D3, 0x6320, - 0xC4D4, 0x8111, 0xC4D5, 0x607C, 0xC4D6, 0x95F9, 0xC4D7, 0x6DD6, - 0xC4D8, 0x5462, 0xC4D9, 0x9981, 0xC4DA, 0x5185, 0xC4DB, 0x5AE9, - 0xC4DC, 0x80FD, 0xC4DD, 0x59AE, 0xC4DE, 0x9713, 0xC4DF, 0x502A, - 0xC4E0, 0x6CE5, 0xC4E1, 0x5C3C, 0xC4E2, 0x62DF, 0xC4E3, 0x4F60, - 0xC4E4, 0x533F, 0xC4E5, 0x817B, 0xC4E6, 0x9006, 0xC4E7, 0x6EBA, - 0xC4E8, 0x852B, 0xC4E9, 0x62C8, 0xC4EA, 0x5E74, 0xC4EB, 0x78BE, - 0xC4EC, 0x64B5, 0xC4ED, 0x637B, 0xC4EE, 0x5FF5, 0xC4EF, 0x5A18, - 0xC4F0, 0x917F, 0xC4F1, 0x9E1F, 0xC4F2, 0x5C3F, 0xC4F3, 0x634F, - 0xC4F4, 0x8042, 0xC4F5, 0x5B7D, 0xC4F6, 0x556E, 0xC4F7, 0x954A, - 0xC4F8, 0x954D, 0xC4F9, 0x6D85, 0xC4FA, 0x60A8, 0xC4FB, 0x67E0, - 0xC4FC, 0x72DE, 0xC4FD, 0x51DD, 0xC4FE, 0x5B81, 0xC540, 0x81D4, - 0xC541, 0x81D5, 0xC542, 0x81D6, 0xC543, 0x81D7, 0xC544, 0x81D8, - 0xC545, 0x81D9, 0xC546, 0x81DA, 0xC547, 0x81DB, 0xC548, 0x81DC, - 0xC549, 0x81DD, 0xC54A, 0x81DE, 0xC54B, 0x81DF, 0xC54C, 0x81E0, - 0xC54D, 0x81E1, 0xC54E, 0x81E2, 0xC54F, 0x81E4, 0xC550, 0x81E5, - 0xC551, 0x81E6, 0xC552, 0x81E8, 0xC553, 0x81E9, 0xC554, 0x81EB, - 0xC555, 0x81EE, 0xC556, 0x81EF, 0xC557, 0x81F0, 0xC558, 0x81F1, - 0xC559, 0x81F2, 0xC55A, 0x81F5, 0xC55B, 0x81F6, 0xC55C, 0x81F7, - 0xC55D, 0x81F8, 0xC55E, 0x81F9, 0xC55F, 0x81FA, 0xC560, 0x81FD, - 0xC561, 0x81FF, 0xC562, 0x8203, 0xC563, 0x8207, 0xC564, 0x8208, - 0xC565, 0x8209, 0xC566, 0x820A, 0xC567, 0x820B, 0xC568, 0x820E, - 0xC569, 0x820F, 0xC56A, 0x8211, 0xC56B, 0x8213, 0xC56C, 0x8215, - 0xC56D, 0x8216, 0xC56E, 0x8217, 0xC56F, 0x8218, 0xC570, 0x8219, - 0xC571, 0x821A, 0xC572, 0x821D, 0xC573, 0x8220, 0xC574, 0x8224, - 0xC575, 0x8225, 0xC576, 0x8226, 0xC577, 0x8227, 0xC578, 0x8229, - 0xC579, 0x822E, 0xC57A, 0x8232, 0xC57B, 0x823A, 0xC57C, 0x823C, - 0xC57D, 0x823D, 0xC57E, 0x823F, 0xC580, 0x8240, 0xC581, 0x8241, - 0xC582, 0x8242, 0xC583, 0x8243, 0xC584, 0x8245, 0xC585, 0x8246, - 0xC586, 0x8248, 0xC587, 0x824A, 0xC588, 0x824C, 0xC589, 0x824D, - 0xC58A, 0x824E, 0xC58B, 0x8250, 0xC58C, 0x8251, 0xC58D, 0x8252, - 0xC58E, 0x8253, 0xC58F, 0x8254, 0xC590, 0x8255, 0xC591, 0x8256, - 0xC592, 0x8257, 0xC593, 0x8259, 0xC594, 0x825B, 0xC595, 0x825C, - 0xC596, 0x825D, 0xC597, 0x825E, 0xC598, 0x8260, 0xC599, 0x8261, - 0xC59A, 0x8262, 0xC59B, 0x8263, 0xC59C, 0x8264, 0xC59D, 0x8265, - 0xC59E, 0x8266, 0xC59F, 0x8267, 0xC5A0, 0x8269, 0xC5A1, 0x62E7, - 0xC5A2, 0x6CDE, 0xC5A3, 0x725B, 0xC5A4, 0x626D, 0xC5A5, 0x94AE, - 0xC5A6, 0x7EBD, 0xC5A7, 0x8113, 0xC5A8, 0x6D53, 0xC5A9, 0x519C, - 0xC5AA, 0x5F04, 0xC5AB, 0x5974, 0xC5AC, 0x52AA, 0xC5AD, 0x6012, - 0xC5AE, 0x5973, 0xC5AF, 0x6696, 0xC5B0, 0x8650, 0xC5B1, 0x759F, - 0xC5B2, 0x632A, 0xC5B3, 0x61E6, 0xC5B4, 0x7CEF, 0xC5B5, 0x8BFA, - 0xC5B6, 0x54E6, 0xC5B7, 0x6B27, 0xC5B8, 0x9E25, 0xC5B9, 0x6BB4, - 0xC5BA, 0x85D5, 0xC5BB, 0x5455, 0xC5BC, 0x5076, 0xC5BD, 0x6CA4, - 0xC5BE, 0x556A, 0xC5BF, 0x8DB4, 0xC5C0, 0x722C, 0xC5C1, 0x5E15, - 0xC5C2, 0x6015, 0xC5C3, 0x7436, 0xC5C4, 0x62CD, 0xC5C5, 0x6392, - 0xC5C6, 0x724C, 0xC5C7, 0x5F98, 0xC5C8, 0x6E43, 0xC5C9, 0x6D3E, - 0xC5CA, 0x6500, 0xC5CB, 0x6F58, 0xC5CC, 0x76D8, 0xC5CD, 0x78D0, - 0xC5CE, 0x76FC, 0xC5CF, 0x7554, 0xC5D0, 0x5224, 0xC5D1, 0x53DB, - 0xC5D2, 0x4E53, 0xC5D3, 0x5E9E, 0xC5D4, 0x65C1, 0xC5D5, 0x802A, - 0xC5D6, 0x80D6, 0xC5D7, 0x629B, 0xC5D8, 0x5486, 0xC5D9, 0x5228, - 0xC5DA, 0x70AE, 0xC5DB, 0x888D, 0xC5DC, 0x8DD1, 0xC5DD, 0x6CE1, - 0xC5DE, 0x5478, 0xC5DF, 0x80DA, 0xC5E0, 0x57F9, 0xC5E1, 0x88F4, - 0xC5E2, 0x8D54, 0xC5E3, 0x966A, 0xC5E4, 0x914D, 0xC5E5, 0x4F69, - 0xC5E6, 0x6C9B, 0xC5E7, 0x55B7, 0xC5E8, 0x76C6, 0xC5E9, 0x7830, - 0xC5EA, 0x62A8, 0xC5EB, 0x70F9, 0xC5EC, 0x6F8E, 0xC5ED, 0x5F6D, - 0xC5EE, 0x84EC, 0xC5EF, 0x68DA, 0xC5F0, 0x787C, 0xC5F1, 0x7BF7, - 0xC5F2, 0x81A8, 0xC5F3, 0x670B, 0xC5F4, 0x9E4F, 0xC5F5, 0x6367, - 0xC5F6, 0x78B0, 0xC5F7, 0x576F, 0xC5F8, 0x7812, 0xC5F9, 0x9739, - 0xC5FA, 0x6279, 0xC5FB, 0x62AB, 0xC5FC, 0x5288, 0xC5FD, 0x7435, - 0xC5FE, 0x6BD7, 0xC640, 0x826A, 0xC641, 0x826B, 0xC642, 0x826C, - 0xC643, 0x826D, 0xC644, 0x8271, 0xC645, 0x8275, 0xC646, 0x8276, - 0xC647, 0x8277, 0xC648, 0x8278, 0xC649, 0x827B, 0xC64A, 0x827C, - 0xC64B, 0x8280, 0xC64C, 0x8281, 0xC64D, 0x8283, 0xC64E, 0x8285, - 0xC64F, 0x8286, 0xC650, 0x8287, 0xC651, 0x8289, 0xC652, 0x828C, - 0xC653, 0x8290, 0xC654, 0x8293, 0xC655, 0x8294, 0xC656, 0x8295, - 0xC657, 0x8296, 0xC658, 0x829A, 0xC659, 0x829B, 0xC65A, 0x829E, - 0xC65B, 0x82A0, 0xC65C, 0x82A2, 0xC65D, 0x82A3, 0xC65E, 0x82A7, - 0xC65F, 0x82B2, 0xC660, 0x82B5, 0xC661, 0x82B6, 0xC662, 0x82BA, - 0xC663, 0x82BB, 0xC664, 0x82BC, 0xC665, 0x82BF, 0xC666, 0x82C0, - 0xC667, 0x82C2, 0xC668, 0x82C3, 0xC669, 0x82C5, 0xC66A, 0x82C6, - 0xC66B, 0x82C9, 0xC66C, 0x82D0, 0xC66D, 0x82D6, 0xC66E, 0x82D9, - 0xC66F, 0x82DA, 0xC670, 0x82DD, 0xC671, 0x82E2, 0xC672, 0x82E7, - 0xC673, 0x82E8, 0xC674, 0x82E9, 0xC675, 0x82EA, 0xC676, 0x82EC, - 0xC677, 0x82ED, 0xC678, 0x82EE, 0xC679, 0x82F0, 0xC67A, 0x82F2, - 0xC67B, 0x82F3, 0xC67C, 0x82F5, 0xC67D, 0x82F6, 0xC67E, 0x82F8, - 0xC680, 0x82FA, 0xC681, 0x82FC, 0xC682, 0x82FD, 0xC683, 0x82FE, - 0xC684, 0x82FF, 0xC685, 0x8300, 0xC686, 0x830A, 0xC687, 0x830B, - 0xC688, 0x830D, 0xC689, 0x8310, 0xC68A, 0x8312, 0xC68B, 0x8313, - 0xC68C, 0x8316, 0xC68D, 0x8318, 0xC68E, 0x8319, 0xC68F, 0x831D, - 0xC690, 0x831E, 0xC691, 0x831F, 0xC692, 0x8320, 0xC693, 0x8321, - 0xC694, 0x8322, 0xC695, 0x8323, 0xC696, 0x8324, 0xC697, 0x8325, - 0xC698, 0x8326, 0xC699, 0x8329, 0xC69A, 0x832A, 0xC69B, 0x832E, - 0xC69C, 0x8330, 0xC69D, 0x8332, 0xC69E, 0x8337, 0xC69F, 0x833B, - 0xC6A0, 0x833D, 0xC6A1, 0x5564, 0xC6A2, 0x813E, 0xC6A3, 0x75B2, - 0xC6A4, 0x76AE, 0xC6A5, 0x5339, 0xC6A6, 0x75DE, 0xC6A7, 0x50FB, - 0xC6A8, 0x5C41, 0xC6A9, 0x8B6C, 0xC6AA, 0x7BC7, 0xC6AB, 0x504F, - 0xC6AC, 0x7247, 0xC6AD, 0x9A97, 0xC6AE, 0x98D8, 0xC6AF, 0x6F02, - 0xC6B0, 0x74E2, 0xC6B1, 0x7968, 0xC6B2, 0x6487, 0xC6B3, 0x77A5, - 0xC6B4, 0x62FC, 0xC6B5, 0x9891, 0xC6B6, 0x8D2B, 0xC6B7, 0x54C1, - 0xC6B8, 0x8058, 0xC6B9, 0x4E52, 0xC6BA, 0x576A, 0xC6BB, 0x82F9, - 0xC6BC, 0x840D, 0xC6BD, 0x5E73, 0xC6BE, 0x51ED, 0xC6BF, 0x74F6, - 0xC6C0, 0x8BC4, 0xC6C1, 0x5C4F, 0xC6C2, 0x5761, 0xC6C3, 0x6CFC, - 0xC6C4, 0x9887, 0xC6C5, 0x5A46, 0xC6C6, 0x7834, 0xC6C7, 0x9B44, - 0xC6C8, 0x8FEB, 0xC6C9, 0x7C95, 0xC6CA, 0x5256, 0xC6CB, 0x6251, - 0xC6CC, 0x94FA, 0xC6CD, 0x4EC6, 0xC6CE, 0x8386, 0xC6CF, 0x8461, - 0xC6D0, 0x83E9, 0xC6D1, 0x84B2, 0xC6D2, 0x57D4, 0xC6D3, 0x6734, - 0xC6D4, 0x5703, 0xC6D5, 0x666E, 0xC6D6, 0x6D66, 0xC6D7, 0x8C31, - 0xC6D8, 0x66DD, 0xC6D9, 0x7011, 0xC6DA, 0x671F, 0xC6DB, 0x6B3A, - 0xC6DC, 0x6816, 0xC6DD, 0x621A, 0xC6DE, 0x59BB, 0xC6DF, 0x4E03, - 0xC6E0, 0x51C4, 0xC6E1, 0x6F06, 0xC6E2, 0x67D2, 0xC6E3, 0x6C8F, - 0xC6E4, 0x5176, 0xC6E5, 0x68CB, 0xC6E6, 0x5947, 0xC6E7, 0x6B67, - 0xC6E8, 0x7566, 0xC6E9, 0x5D0E, 0xC6EA, 0x8110, 0xC6EB, 0x9F50, - 0xC6EC, 0x65D7, 0xC6ED, 0x7948, 0xC6EE, 0x7941, 0xC6EF, 0x9A91, - 0xC6F0, 0x8D77, 0xC6F1, 0x5C82, 0xC6F2, 0x4E5E, 0xC6F3, 0x4F01, - 0xC6F4, 0x542F, 0xC6F5, 0x5951, 0xC6F6, 0x780C, 0xC6F7, 0x5668, - 0xC6F8, 0x6C14, 0xC6F9, 0x8FC4, 0xC6FA, 0x5F03, 0xC6FB, 0x6C7D, - 0xC6FC, 0x6CE3, 0xC6FD, 0x8BAB, 0xC6FE, 0x6390, 0xC740, 0x833E, - 0xC741, 0x833F, 0xC742, 0x8341, 0xC743, 0x8342, 0xC744, 0x8344, - 0xC745, 0x8345, 0xC746, 0x8348, 0xC747, 0x834A, 0xC748, 0x834B, - 0xC749, 0x834C, 0xC74A, 0x834D, 0xC74B, 0x834E, 0xC74C, 0x8353, - 0xC74D, 0x8355, 0xC74E, 0x8356, 0xC74F, 0x8357, 0xC750, 0x8358, - 0xC751, 0x8359, 0xC752, 0x835D, 0xC753, 0x8362, 0xC754, 0x8370, - 0xC755, 0x8371, 0xC756, 0x8372, 0xC757, 0x8373, 0xC758, 0x8374, - 0xC759, 0x8375, 0xC75A, 0x8376, 0xC75B, 0x8379, 0xC75C, 0x837A, - 0xC75D, 0x837E, 0xC75E, 0x837F, 0xC75F, 0x8380, 0xC760, 0x8381, - 0xC761, 0x8382, 0xC762, 0x8383, 0xC763, 0x8384, 0xC764, 0x8387, - 0xC765, 0x8388, 0xC766, 0x838A, 0xC767, 0x838B, 0xC768, 0x838C, - 0xC769, 0x838D, 0xC76A, 0x838F, 0xC76B, 0x8390, 0xC76C, 0x8391, - 0xC76D, 0x8394, 0xC76E, 0x8395, 0xC76F, 0x8396, 0xC770, 0x8397, - 0xC771, 0x8399, 0xC772, 0x839A, 0xC773, 0x839D, 0xC774, 0x839F, - 0xC775, 0x83A1, 0xC776, 0x83A2, 0xC777, 0x83A3, 0xC778, 0x83A4, - 0xC779, 0x83A5, 0xC77A, 0x83A6, 0xC77B, 0x83A7, 0xC77C, 0x83AC, - 0xC77D, 0x83AD, 0xC77E, 0x83AE, 0xC780, 0x83AF, 0xC781, 0x83B5, - 0xC782, 0x83BB, 0xC783, 0x83BE, 0xC784, 0x83BF, 0xC785, 0x83C2, - 0xC786, 0x83C3, 0xC787, 0x83C4, 0xC788, 0x83C6, 0xC789, 0x83C8, - 0xC78A, 0x83C9, 0xC78B, 0x83CB, 0xC78C, 0x83CD, 0xC78D, 0x83CE, - 0xC78E, 0x83D0, 0xC78F, 0x83D1, 0xC790, 0x83D2, 0xC791, 0x83D3, - 0xC792, 0x83D5, 0xC793, 0x83D7, 0xC794, 0x83D9, 0xC795, 0x83DA, - 0xC796, 0x83DB, 0xC797, 0x83DE, 0xC798, 0x83E2, 0xC799, 0x83E3, - 0xC79A, 0x83E4, 0xC79B, 0x83E6, 0xC79C, 0x83E7, 0xC79D, 0x83E8, - 0xC79E, 0x83EB, 0xC79F, 0x83EC, 0xC7A0, 0x83ED, 0xC7A1, 0x6070, - 0xC7A2, 0x6D3D, 0xC7A3, 0x7275, 0xC7A4, 0x6266, 0xC7A5, 0x948E, - 0xC7A6, 0x94C5, 0xC7A7, 0x5343, 0xC7A8, 0x8FC1, 0xC7A9, 0x7B7E, - 0xC7AA, 0x4EDF, 0xC7AB, 0x8C26, 0xC7AC, 0x4E7E, 0xC7AD, 0x9ED4, - 0xC7AE, 0x94B1, 0xC7AF, 0x94B3, 0xC7B0, 0x524D, 0xC7B1, 0x6F5C, - 0xC7B2, 0x9063, 0xC7B3, 0x6D45, 0xC7B4, 0x8C34, 0xC7B5, 0x5811, - 0xC7B6, 0x5D4C, 0xC7B7, 0x6B20, 0xC7B8, 0x6B49, 0xC7B9, 0x67AA, - 0xC7BA, 0x545B, 0xC7BB, 0x8154, 0xC7BC, 0x7F8C, 0xC7BD, 0x5899, - 0xC7BE, 0x8537, 0xC7BF, 0x5F3A, 0xC7C0, 0x62A2, 0xC7C1, 0x6A47, - 0xC7C2, 0x9539, 0xC7C3, 0x6572, 0xC7C4, 0x6084, 0xC7C5, 0x6865, - 0xC7C6, 0x77A7, 0xC7C7, 0x4E54, 0xC7C8, 0x4FA8, 0xC7C9, 0x5DE7, - 0xC7CA, 0x9798, 0xC7CB, 0x64AC, 0xC7CC, 0x7FD8, 0xC7CD, 0x5CED, - 0xC7CE, 0x4FCF, 0xC7CF, 0x7A8D, 0xC7D0, 0x5207, 0xC7D1, 0x8304, - 0xC7D2, 0x4E14, 0xC7D3, 0x602F, 0xC7D4, 0x7A83, 0xC7D5, 0x94A6, - 0xC7D6, 0x4FB5, 0xC7D7, 0x4EB2, 0xC7D8, 0x79E6, 0xC7D9, 0x7434, - 0xC7DA, 0x52E4, 0xC7DB, 0x82B9, 0xC7DC, 0x64D2, 0xC7DD, 0x79BD, - 0xC7DE, 0x5BDD, 0xC7DF, 0x6C81, 0xC7E0, 0x9752, 0xC7E1, 0x8F7B, - 0xC7E2, 0x6C22, 0xC7E3, 0x503E, 0xC7E4, 0x537F, 0xC7E5, 0x6E05, - 0xC7E6, 0x64CE, 0xC7E7, 0x6674, 0xC7E8, 0x6C30, 0xC7E9, 0x60C5, - 0xC7EA, 0x9877, 0xC7EB, 0x8BF7, 0xC7EC, 0x5E86, 0xC7ED, 0x743C, - 0xC7EE, 0x7A77, 0xC7EF, 0x79CB, 0xC7F0, 0x4E18, 0xC7F1, 0x90B1, - 0xC7F2, 0x7403, 0xC7F3, 0x6C42, 0xC7F4, 0x56DA, 0xC7F5, 0x914B, - 0xC7F6, 0x6CC5, 0xC7F7, 0x8D8B, 0xC7F8, 0x533A, 0xC7F9, 0x86C6, - 0xC7FA, 0x66F2, 0xC7FB, 0x8EAF, 0xC7FC, 0x5C48, 0xC7FD, 0x9A71, - 0xC7FE, 0x6E20, 0xC840, 0x83EE, 0xC841, 0x83EF, 0xC842, 0x83F3, - 0xC843, 0x83F4, 0xC844, 0x83F5, 0xC845, 0x83F6, 0xC846, 0x83F7, - 0xC847, 0x83FA, 0xC848, 0x83FB, 0xC849, 0x83FC, 0xC84A, 0x83FE, - 0xC84B, 0x83FF, 0xC84C, 0x8400, 0xC84D, 0x8402, 0xC84E, 0x8405, - 0xC84F, 0x8407, 0xC850, 0x8408, 0xC851, 0x8409, 0xC852, 0x840A, - 0xC853, 0x8410, 0xC854, 0x8412, 0xC855, 0x8413, 0xC856, 0x8414, - 0xC857, 0x8415, 0xC858, 0x8416, 0xC859, 0x8417, 0xC85A, 0x8419, - 0xC85B, 0x841A, 0xC85C, 0x841B, 0xC85D, 0x841E, 0xC85E, 0x841F, - 0xC85F, 0x8420, 0xC860, 0x8421, 0xC861, 0x8422, 0xC862, 0x8423, - 0xC863, 0x8429, 0xC864, 0x842A, 0xC865, 0x842B, 0xC866, 0x842C, - 0xC867, 0x842D, 0xC868, 0x842E, 0xC869, 0x842F, 0xC86A, 0x8430, - 0xC86B, 0x8432, 0xC86C, 0x8433, 0xC86D, 0x8434, 0xC86E, 0x8435, - 0xC86F, 0x8436, 0xC870, 0x8437, 0xC871, 0x8439, 0xC872, 0x843A, - 0xC873, 0x843B, 0xC874, 0x843E, 0xC875, 0x843F, 0xC876, 0x8440, - 0xC877, 0x8441, 0xC878, 0x8442, 0xC879, 0x8443, 0xC87A, 0x8444, - 0xC87B, 0x8445, 0xC87C, 0x8447, 0xC87D, 0x8448, 0xC87E, 0x8449, - 0xC880, 0x844A, 0xC881, 0x844B, 0xC882, 0x844C, 0xC883, 0x844D, - 0xC884, 0x844E, 0xC885, 0x844F, 0xC886, 0x8450, 0xC887, 0x8452, - 0xC888, 0x8453, 0xC889, 0x8454, 0xC88A, 0x8455, 0xC88B, 0x8456, - 0xC88C, 0x8458, 0xC88D, 0x845D, 0xC88E, 0x845E, 0xC88F, 0x845F, - 0xC890, 0x8460, 0xC891, 0x8462, 0xC892, 0x8464, 0xC893, 0x8465, - 0xC894, 0x8466, 0xC895, 0x8467, 0xC896, 0x8468, 0xC897, 0x846A, - 0xC898, 0x846E, 0xC899, 0x846F, 0xC89A, 0x8470, 0xC89B, 0x8472, - 0xC89C, 0x8474, 0xC89D, 0x8477, 0xC89E, 0x8479, 0xC89F, 0x847B, - 0xC8A0, 0x847C, 0xC8A1, 0x53D6, 0xC8A2, 0x5A36, 0xC8A3, 0x9F8B, - 0xC8A4, 0x8DA3, 0xC8A5, 0x53BB, 0xC8A6, 0x5708, 0xC8A7, 0x98A7, - 0xC8A8, 0x6743, 0xC8A9, 0x919B, 0xC8AA, 0x6CC9, 0xC8AB, 0x5168, - 0xC8AC, 0x75CA, 0xC8AD, 0x62F3, 0xC8AE, 0x72AC, 0xC8AF, 0x5238, - 0xC8B0, 0x529D, 0xC8B1, 0x7F3A, 0xC8B2, 0x7094, 0xC8B3, 0x7638, - 0xC8B4, 0x5374, 0xC8B5, 0x9E4A, 0xC8B6, 0x69B7, 0xC8B7, 0x786E, - 0xC8B8, 0x96C0, 0xC8B9, 0x88D9, 0xC8BA, 0x7FA4, 0xC8BB, 0x7136, - 0xC8BC, 0x71C3, 0xC8BD, 0x5189, 0xC8BE, 0x67D3, 0xC8BF, 0x74E4, - 0xC8C0, 0x58E4, 0xC8C1, 0x6518, 0xC8C2, 0x56B7, 0xC8C3, 0x8BA9, - 0xC8C4, 0x9976, 0xC8C5, 0x6270, 0xC8C6, 0x7ED5, 0xC8C7, 0x60F9, - 0xC8C8, 0x70ED, 0xC8C9, 0x58EC, 0xC8CA, 0x4EC1, 0xC8CB, 0x4EBA, - 0xC8CC, 0x5FCD, 0xC8CD, 0x97E7, 0xC8CE, 0x4EFB, 0xC8CF, 0x8BA4, - 0xC8D0, 0x5203, 0xC8D1, 0x598A, 0xC8D2, 0x7EAB, 0xC8D3, 0x6254, - 0xC8D4, 0x4ECD, 0xC8D5, 0x65E5, 0xC8D6, 0x620E, 0xC8D7, 0x8338, - 0xC8D8, 0x84C9, 0xC8D9, 0x8363, 0xC8DA, 0x878D, 0xC8DB, 0x7194, - 0xC8DC, 0x6EB6, 0xC8DD, 0x5BB9, 0xC8DE, 0x7ED2, 0xC8DF, 0x5197, - 0xC8E0, 0x63C9, 0xC8E1, 0x67D4, 0xC8E2, 0x8089, 0xC8E3, 0x8339, - 0xC8E4, 0x8815, 0xC8E5, 0x5112, 0xC8E6, 0x5B7A, 0xC8E7, 0x5982, - 0xC8E8, 0x8FB1, 0xC8E9, 0x4E73, 0xC8EA, 0x6C5D, 0xC8EB, 0x5165, - 0xC8EC, 0x8925, 0xC8ED, 0x8F6F, 0xC8EE, 0x962E, 0xC8EF, 0x854A, - 0xC8F0, 0x745E, 0xC8F1, 0x9510, 0xC8F2, 0x95F0, 0xC8F3, 0x6DA6, - 0xC8F4, 0x82E5, 0xC8F5, 0x5F31, 0xC8F6, 0x6492, 0xC8F7, 0x6D12, - 0xC8F8, 0x8428, 0xC8F9, 0x816E, 0xC8FA, 0x9CC3, 0xC8FB, 0x585E, - 0xC8FC, 0x8D5B, 0xC8FD, 0x4E09, 0xC8FE, 0x53C1, 0xC940, 0x847D, - 0xC941, 0x847E, 0xC942, 0x847F, 0xC943, 0x8480, 0xC944, 0x8481, - 0xC945, 0x8483, 0xC946, 0x8484, 0xC947, 0x8485, 0xC948, 0x8486, - 0xC949, 0x848A, 0xC94A, 0x848D, 0xC94B, 0x848F, 0xC94C, 0x8490, - 0xC94D, 0x8491, 0xC94E, 0x8492, 0xC94F, 0x8493, 0xC950, 0x8494, - 0xC951, 0x8495, 0xC952, 0x8496, 0xC953, 0x8498, 0xC954, 0x849A, - 0xC955, 0x849B, 0xC956, 0x849D, 0xC957, 0x849E, 0xC958, 0x849F, - 0xC959, 0x84A0, 0xC95A, 0x84A2, 0xC95B, 0x84A3, 0xC95C, 0x84A4, - 0xC95D, 0x84A5, 0xC95E, 0x84A6, 0xC95F, 0x84A7, 0xC960, 0x84A8, - 0xC961, 0x84A9, 0xC962, 0x84AA, 0xC963, 0x84AB, 0xC964, 0x84AC, - 0xC965, 0x84AD, 0xC966, 0x84AE, 0xC967, 0x84B0, 0xC968, 0x84B1, - 0xC969, 0x84B3, 0xC96A, 0x84B5, 0xC96B, 0x84B6, 0xC96C, 0x84B7, - 0xC96D, 0x84BB, 0xC96E, 0x84BC, 0xC96F, 0x84BE, 0xC970, 0x84C0, - 0xC971, 0x84C2, 0xC972, 0x84C3, 0xC973, 0x84C5, 0xC974, 0x84C6, - 0xC975, 0x84C7, 0xC976, 0x84C8, 0xC977, 0x84CB, 0xC978, 0x84CC, - 0xC979, 0x84CE, 0xC97A, 0x84CF, 0xC97B, 0x84D2, 0xC97C, 0x84D4, - 0xC97D, 0x84D5, 0xC97E, 0x84D7, 0xC980, 0x84D8, 0xC981, 0x84D9, - 0xC982, 0x84DA, 0xC983, 0x84DB, 0xC984, 0x84DC, 0xC985, 0x84DE, - 0xC986, 0x84E1, 0xC987, 0x84E2, 0xC988, 0x84E4, 0xC989, 0x84E7, - 0xC98A, 0x84E8, 0xC98B, 0x84E9, 0xC98C, 0x84EA, 0xC98D, 0x84EB, - 0xC98E, 0x84ED, 0xC98F, 0x84EE, 0xC990, 0x84EF, 0xC991, 0x84F1, - 0xC992, 0x84F2, 0xC993, 0x84F3, 0xC994, 0x84F4, 0xC995, 0x84F5, - 0xC996, 0x84F6, 0xC997, 0x84F7, 0xC998, 0x84F8, 0xC999, 0x84F9, - 0xC99A, 0x84FA, 0xC99B, 0x84FB, 0xC99C, 0x84FD, 0xC99D, 0x84FE, - 0xC99E, 0x8500, 0xC99F, 0x8501, 0xC9A0, 0x8502, 0xC9A1, 0x4F1E, - 0xC9A2, 0x6563, 0xC9A3, 0x6851, 0xC9A4, 0x55D3, 0xC9A5, 0x4E27, - 0xC9A6, 0x6414, 0xC9A7, 0x9A9A, 0xC9A8, 0x626B, 0xC9A9, 0x5AC2, - 0xC9AA, 0x745F, 0xC9AB, 0x8272, 0xC9AC, 0x6DA9, 0xC9AD, 0x68EE, - 0xC9AE, 0x50E7, 0xC9AF, 0x838E, 0xC9B0, 0x7802, 0xC9B1, 0x6740, - 0xC9B2, 0x5239, 0xC9B3, 0x6C99, 0xC9B4, 0x7EB1, 0xC9B5, 0x50BB, - 0xC9B6, 0x5565, 0xC9B7, 0x715E, 0xC9B8, 0x7B5B, 0xC9B9, 0x6652, - 0xC9BA, 0x73CA, 0xC9BB, 0x82EB, 0xC9BC, 0x6749, 0xC9BD, 0x5C71, - 0xC9BE, 0x5220, 0xC9BF, 0x717D, 0xC9C0, 0x886B, 0xC9C1, 0x95EA, - 0xC9C2, 0x9655, 0xC9C3, 0x64C5, 0xC9C4, 0x8D61, 0xC9C5, 0x81B3, - 0xC9C6, 0x5584, 0xC9C7, 0x6C55, 0xC9C8, 0x6247, 0xC9C9, 0x7F2E, - 0xC9CA, 0x5892, 0xC9CB, 0x4F24, 0xC9CC, 0x5546, 0xC9CD, 0x8D4F, - 0xC9CE, 0x664C, 0xC9CF, 0x4E0A, 0xC9D0, 0x5C1A, 0xC9D1, 0x88F3, - 0xC9D2, 0x68A2, 0xC9D3, 0x634E, 0xC9D4, 0x7A0D, 0xC9D5, 0x70E7, - 0xC9D6, 0x828D, 0xC9D7, 0x52FA, 0xC9D8, 0x97F6, 0xC9D9, 0x5C11, - 0xC9DA, 0x54E8, 0xC9DB, 0x90B5, 0xC9DC, 0x7ECD, 0xC9DD, 0x5962, - 0xC9DE, 0x8D4A, 0xC9DF, 0x86C7, 0xC9E0, 0x820C, 0xC9E1, 0x820D, - 0xC9E2, 0x8D66, 0xC9E3, 0x6444, 0xC9E4, 0x5C04, 0xC9E5, 0x6151, - 0xC9E6, 0x6D89, 0xC9E7, 0x793E, 0xC9E8, 0x8BBE, 0xC9E9, 0x7837, - 0xC9EA, 0x7533, 0xC9EB, 0x547B, 0xC9EC, 0x4F38, 0xC9ED, 0x8EAB, - 0xC9EE, 0x6DF1, 0xC9EF, 0x5A20, 0xC9F0, 0x7EC5, 0xC9F1, 0x795E, - 0xC9F2, 0x6C88, 0xC9F3, 0x5BA1, 0xC9F4, 0x5A76, 0xC9F5, 0x751A, - 0xC9F6, 0x80BE, 0xC9F7, 0x614E, 0xC9F8, 0x6E17, 0xC9F9, 0x58F0, - 0xC9FA, 0x751F, 0xC9FB, 0x7525, 0xC9FC, 0x7272, 0xC9FD, 0x5347, - 0xC9FE, 0x7EF3, 0xCA40, 0x8503, 0xCA41, 0x8504, 0xCA42, 0x8505, - 0xCA43, 0x8506, 0xCA44, 0x8507, 0xCA45, 0x8508, 0xCA46, 0x8509, - 0xCA47, 0x850A, 0xCA48, 0x850B, 0xCA49, 0x850D, 0xCA4A, 0x850E, - 0xCA4B, 0x850F, 0xCA4C, 0x8510, 0xCA4D, 0x8512, 0xCA4E, 0x8514, - 0xCA4F, 0x8515, 0xCA50, 0x8516, 0xCA51, 0x8518, 0xCA52, 0x8519, - 0xCA53, 0x851B, 0xCA54, 0x851C, 0xCA55, 0x851D, 0xCA56, 0x851E, - 0xCA57, 0x8520, 0xCA58, 0x8522, 0xCA59, 0x8523, 0xCA5A, 0x8524, - 0xCA5B, 0x8525, 0xCA5C, 0x8526, 0xCA5D, 0x8527, 0xCA5E, 0x8528, - 0xCA5F, 0x8529, 0xCA60, 0x852A, 0xCA61, 0x852D, 0xCA62, 0x852E, - 0xCA63, 0x852F, 0xCA64, 0x8530, 0xCA65, 0x8531, 0xCA66, 0x8532, - 0xCA67, 0x8533, 0xCA68, 0x8534, 0xCA69, 0x8535, 0xCA6A, 0x8536, - 0xCA6B, 0x853E, 0xCA6C, 0x853F, 0xCA6D, 0x8540, 0xCA6E, 0x8541, - 0xCA6F, 0x8542, 0xCA70, 0x8544, 0xCA71, 0x8545, 0xCA72, 0x8546, - 0xCA73, 0x8547, 0xCA74, 0x854B, 0xCA75, 0x854C, 0xCA76, 0x854D, - 0xCA77, 0x854E, 0xCA78, 0x854F, 0xCA79, 0x8550, 0xCA7A, 0x8551, - 0xCA7B, 0x8552, 0xCA7C, 0x8553, 0xCA7D, 0x8554, 0xCA7E, 0x8555, - 0xCA80, 0x8557, 0xCA81, 0x8558, 0xCA82, 0x855A, 0xCA83, 0x855B, - 0xCA84, 0x855C, 0xCA85, 0x855D, 0xCA86, 0x855F, 0xCA87, 0x8560, - 0xCA88, 0x8561, 0xCA89, 0x8562, 0xCA8A, 0x8563, 0xCA8B, 0x8565, - 0xCA8C, 0x8566, 0xCA8D, 0x8567, 0xCA8E, 0x8569, 0xCA8F, 0x856A, - 0xCA90, 0x856B, 0xCA91, 0x856C, 0xCA92, 0x856D, 0xCA93, 0x856E, - 0xCA94, 0x856F, 0xCA95, 0x8570, 0xCA96, 0x8571, 0xCA97, 0x8573, - 0xCA98, 0x8575, 0xCA99, 0x8576, 0xCA9A, 0x8577, 0xCA9B, 0x8578, - 0xCA9C, 0x857C, 0xCA9D, 0x857D, 0xCA9E, 0x857F, 0xCA9F, 0x8580, - 0xCAA0, 0x8581, 0xCAA1, 0x7701, 0xCAA2, 0x76DB, 0xCAA3, 0x5269, - 0xCAA4, 0x80DC, 0xCAA5, 0x5723, 0xCAA6, 0x5E08, 0xCAA7, 0x5931, - 0xCAA8, 0x72EE, 0xCAA9, 0x65BD, 0xCAAA, 0x6E7F, 0xCAAB, 0x8BD7, - 0xCAAC, 0x5C38, 0xCAAD, 0x8671, 0xCAAE, 0x5341, 0xCAAF, 0x77F3, - 0xCAB0, 0x62FE, 0xCAB1, 0x65F6, 0xCAB2, 0x4EC0, 0xCAB3, 0x98DF, - 0xCAB4, 0x8680, 0xCAB5, 0x5B9E, 0xCAB6, 0x8BC6, 0xCAB7, 0x53F2, - 0xCAB8, 0x77E2, 0xCAB9, 0x4F7F, 0xCABA, 0x5C4E, 0xCABB, 0x9A76, - 0xCABC, 0x59CB, 0xCABD, 0x5F0F, 0xCABE, 0x793A, 0xCABF, 0x58EB, - 0xCAC0, 0x4E16, 0xCAC1, 0x67FF, 0xCAC2, 0x4E8B, 0xCAC3, 0x62ED, - 0xCAC4, 0x8A93, 0xCAC5, 0x901D, 0xCAC6, 0x52BF, 0xCAC7, 0x662F, - 0xCAC8, 0x55DC, 0xCAC9, 0x566C, 0xCACA, 0x9002, 0xCACB, 0x4ED5, - 0xCACC, 0x4F8D, 0xCACD, 0x91CA, 0xCACE, 0x9970, 0xCACF, 0x6C0F, - 0xCAD0, 0x5E02, 0xCAD1, 0x6043, 0xCAD2, 0x5BA4, 0xCAD3, 0x89C6, - 0xCAD4, 0x8BD5, 0xCAD5, 0x6536, 0xCAD6, 0x624B, 0xCAD7, 0x9996, - 0xCAD8, 0x5B88, 0xCAD9, 0x5BFF, 0xCADA, 0x6388, 0xCADB, 0x552E, - 0xCADC, 0x53D7, 0xCADD, 0x7626, 0xCADE, 0x517D, 0xCADF, 0x852C, - 0xCAE0, 0x67A2, 0xCAE1, 0x68B3, 0xCAE2, 0x6B8A, 0xCAE3, 0x6292, - 0xCAE4, 0x8F93, 0xCAE5, 0x53D4, 0xCAE6, 0x8212, 0xCAE7, 0x6DD1, - 0xCAE8, 0x758F, 0xCAE9, 0x4E66, 0xCAEA, 0x8D4E, 0xCAEB, 0x5B70, - 0xCAEC, 0x719F, 0xCAED, 0x85AF, 0xCAEE, 0x6691, 0xCAEF, 0x66D9, - 0xCAF0, 0x7F72, 0xCAF1, 0x8700, 0xCAF2, 0x9ECD, 0xCAF3, 0x9F20, - 0xCAF4, 0x5C5E, 0xCAF5, 0x672F, 0xCAF6, 0x8FF0, 0xCAF7, 0x6811, - 0xCAF8, 0x675F, 0xCAF9, 0x620D, 0xCAFA, 0x7AD6, 0xCAFB, 0x5885, - 0xCAFC, 0x5EB6, 0xCAFD, 0x6570, 0xCAFE, 0x6F31, 0xCB40, 0x8582, - 0xCB41, 0x8583, 0xCB42, 0x8586, 0xCB43, 0x8588, 0xCB44, 0x8589, - 0xCB45, 0x858A, 0xCB46, 0x858B, 0xCB47, 0x858C, 0xCB48, 0x858D, - 0xCB49, 0x858E, 0xCB4A, 0x8590, 0xCB4B, 0x8591, 0xCB4C, 0x8592, - 0xCB4D, 0x8593, 0xCB4E, 0x8594, 0xCB4F, 0x8595, 0xCB50, 0x8596, - 0xCB51, 0x8597, 0xCB52, 0x8598, 0xCB53, 0x8599, 0xCB54, 0x859A, - 0xCB55, 0x859D, 0xCB56, 0x859E, 0xCB57, 0x859F, 0xCB58, 0x85A0, - 0xCB59, 0x85A1, 0xCB5A, 0x85A2, 0xCB5B, 0x85A3, 0xCB5C, 0x85A5, - 0xCB5D, 0x85A6, 0xCB5E, 0x85A7, 0xCB5F, 0x85A9, 0xCB60, 0x85AB, - 0xCB61, 0x85AC, 0xCB62, 0x85AD, 0xCB63, 0x85B1, 0xCB64, 0x85B2, - 0xCB65, 0x85B3, 0xCB66, 0x85B4, 0xCB67, 0x85B5, 0xCB68, 0x85B6, - 0xCB69, 0x85B8, 0xCB6A, 0x85BA, 0xCB6B, 0x85BB, 0xCB6C, 0x85BC, - 0xCB6D, 0x85BD, 0xCB6E, 0x85BE, 0xCB6F, 0x85BF, 0xCB70, 0x85C0, - 0xCB71, 0x85C2, 0xCB72, 0x85C3, 0xCB73, 0x85C4, 0xCB74, 0x85C5, - 0xCB75, 0x85C6, 0xCB76, 0x85C7, 0xCB77, 0x85C8, 0xCB78, 0x85CA, - 0xCB79, 0x85CB, 0xCB7A, 0x85CC, 0xCB7B, 0x85CD, 0xCB7C, 0x85CE, - 0xCB7D, 0x85D1, 0xCB7E, 0x85D2, 0xCB80, 0x85D4, 0xCB81, 0x85D6, - 0xCB82, 0x85D7, 0xCB83, 0x85D8, 0xCB84, 0x85D9, 0xCB85, 0x85DA, - 0xCB86, 0x85DB, 0xCB87, 0x85DD, 0xCB88, 0x85DE, 0xCB89, 0x85DF, - 0xCB8A, 0x85E0, 0xCB8B, 0x85E1, 0xCB8C, 0x85E2, 0xCB8D, 0x85E3, - 0xCB8E, 0x85E5, 0xCB8F, 0x85E6, 0xCB90, 0x85E7, 0xCB91, 0x85E8, - 0xCB92, 0x85EA, 0xCB93, 0x85EB, 0xCB94, 0x85EC, 0xCB95, 0x85ED, - 0xCB96, 0x85EE, 0xCB97, 0x85EF, 0xCB98, 0x85F0, 0xCB99, 0x85F1, - 0xCB9A, 0x85F2, 0xCB9B, 0x85F3, 0xCB9C, 0x85F4, 0xCB9D, 0x85F5, - 0xCB9E, 0x85F6, 0xCB9F, 0x85F7, 0xCBA0, 0x85F8, 0xCBA1, 0x6055, - 0xCBA2, 0x5237, 0xCBA3, 0x800D, 0xCBA4, 0x6454, 0xCBA5, 0x8870, - 0xCBA6, 0x7529, 0xCBA7, 0x5E05, 0xCBA8, 0x6813, 0xCBA9, 0x62F4, - 0xCBAA, 0x971C, 0xCBAB, 0x53CC, 0xCBAC, 0x723D, 0xCBAD, 0x8C01, - 0xCBAE, 0x6C34, 0xCBAF, 0x7761, 0xCBB0, 0x7A0E, 0xCBB1, 0x542E, - 0xCBB2, 0x77AC, 0xCBB3, 0x987A, 0xCBB4, 0x821C, 0xCBB5, 0x8BF4, - 0xCBB6, 0x7855, 0xCBB7, 0x6714, 0xCBB8, 0x70C1, 0xCBB9, 0x65AF, - 0xCBBA, 0x6495, 0xCBBB, 0x5636, 0xCBBC, 0x601D, 0xCBBD, 0x79C1, - 0xCBBE, 0x53F8, 0xCBBF, 0x4E1D, 0xCBC0, 0x6B7B, 0xCBC1, 0x8086, - 0xCBC2, 0x5BFA, 0xCBC3, 0x55E3, 0xCBC4, 0x56DB, 0xCBC5, 0x4F3A, - 0xCBC6, 0x4F3C, 0xCBC7, 0x9972, 0xCBC8, 0x5DF3, 0xCBC9, 0x677E, - 0xCBCA, 0x8038, 0xCBCB, 0x6002, 0xCBCC, 0x9882, 0xCBCD, 0x9001, - 0xCBCE, 0x5B8B, 0xCBCF, 0x8BBC, 0xCBD0, 0x8BF5, 0xCBD1, 0x641C, - 0xCBD2, 0x8258, 0xCBD3, 0x64DE, 0xCBD4, 0x55FD, 0xCBD5, 0x82CF, - 0xCBD6, 0x9165, 0xCBD7, 0x4FD7, 0xCBD8, 0x7D20, 0xCBD9, 0x901F, - 0xCBDA, 0x7C9F, 0xCBDB, 0x50F3, 0xCBDC, 0x5851, 0xCBDD, 0x6EAF, - 0xCBDE, 0x5BBF, 0xCBDF, 0x8BC9, 0xCBE0, 0x8083, 0xCBE1, 0x9178, - 0xCBE2, 0x849C, 0xCBE3, 0x7B97, 0xCBE4, 0x867D, 0xCBE5, 0x968B, - 0xCBE6, 0x968F, 0xCBE7, 0x7EE5, 0xCBE8, 0x9AD3, 0xCBE9, 0x788E, - 0xCBEA, 0x5C81, 0xCBEB, 0x7A57, 0xCBEC, 0x9042, 0xCBED, 0x96A7, - 0xCBEE, 0x795F, 0xCBEF, 0x5B59, 0xCBF0, 0x635F, 0xCBF1, 0x7B0B, - 0xCBF2, 0x84D1, 0xCBF3, 0x68AD, 0xCBF4, 0x5506, 0xCBF5, 0x7F29, - 0xCBF6, 0x7410, 0xCBF7, 0x7D22, 0xCBF8, 0x9501, 0xCBF9, 0x6240, - 0xCBFA, 0x584C, 0xCBFB, 0x4ED6, 0xCBFC, 0x5B83, 0xCBFD, 0x5979, - 0xCBFE, 0x5854, 0xCC40, 0x85F9, 0xCC41, 0x85FA, 0xCC42, 0x85FC, - 0xCC43, 0x85FD, 0xCC44, 0x85FE, 0xCC45, 0x8600, 0xCC46, 0x8601, - 0xCC47, 0x8602, 0xCC48, 0x8603, 0xCC49, 0x8604, 0xCC4A, 0x8606, - 0xCC4B, 0x8607, 0xCC4C, 0x8608, 0xCC4D, 0x8609, 0xCC4E, 0x860A, - 0xCC4F, 0x860B, 0xCC50, 0x860C, 0xCC51, 0x860D, 0xCC52, 0x860E, - 0xCC53, 0x860F, 0xCC54, 0x8610, 0xCC55, 0x8612, 0xCC56, 0x8613, - 0xCC57, 0x8614, 0xCC58, 0x8615, 0xCC59, 0x8617, 0xCC5A, 0x8618, - 0xCC5B, 0x8619, 0xCC5C, 0x861A, 0xCC5D, 0x861B, 0xCC5E, 0x861C, - 0xCC5F, 0x861D, 0xCC60, 0x861E, 0xCC61, 0x861F, 0xCC62, 0x8620, - 0xCC63, 0x8621, 0xCC64, 0x8622, 0xCC65, 0x8623, 0xCC66, 0x8624, - 0xCC67, 0x8625, 0xCC68, 0x8626, 0xCC69, 0x8628, 0xCC6A, 0x862A, - 0xCC6B, 0x862B, 0xCC6C, 0x862C, 0xCC6D, 0x862D, 0xCC6E, 0x862E, - 0xCC6F, 0x862F, 0xCC70, 0x8630, 0xCC71, 0x8631, 0xCC72, 0x8632, - 0xCC73, 0x8633, 0xCC74, 0x8634, 0xCC75, 0x8635, 0xCC76, 0x8636, - 0xCC77, 0x8637, 0xCC78, 0x8639, 0xCC79, 0x863A, 0xCC7A, 0x863B, - 0xCC7B, 0x863D, 0xCC7C, 0x863E, 0xCC7D, 0x863F, 0xCC7E, 0x8640, - 0xCC80, 0x8641, 0xCC81, 0x8642, 0xCC82, 0x8643, 0xCC83, 0x8644, - 0xCC84, 0x8645, 0xCC85, 0x8646, 0xCC86, 0x8647, 0xCC87, 0x8648, - 0xCC88, 0x8649, 0xCC89, 0x864A, 0xCC8A, 0x864B, 0xCC8B, 0x864C, - 0xCC8C, 0x8652, 0xCC8D, 0x8653, 0xCC8E, 0x8655, 0xCC8F, 0x8656, - 0xCC90, 0x8657, 0xCC91, 0x8658, 0xCC92, 0x8659, 0xCC93, 0x865B, - 0xCC94, 0x865C, 0xCC95, 0x865D, 0xCC96, 0x865F, 0xCC97, 0x8660, - 0xCC98, 0x8661, 0xCC99, 0x8663, 0xCC9A, 0x8664, 0xCC9B, 0x8665, - 0xCC9C, 0x8666, 0xCC9D, 0x8667, 0xCC9E, 0x8668, 0xCC9F, 0x8669, - 0xCCA0, 0x866A, 0xCCA1, 0x736D, 0xCCA2, 0x631E, 0xCCA3, 0x8E4B, - 0xCCA4, 0x8E0F, 0xCCA5, 0x80CE, 0xCCA6, 0x82D4, 0xCCA7, 0x62AC, - 0xCCA8, 0x53F0, 0xCCA9, 0x6CF0, 0xCCAA, 0x915E, 0xCCAB, 0x592A, - 0xCCAC, 0x6001, 0xCCAD, 0x6C70, 0xCCAE, 0x574D, 0xCCAF, 0x644A, - 0xCCB0, 0x8D2A, 0xCCB1, 0x762B, 0xCCB2, 0x6EE9, 0xCCB3, 0x575B, - 0xCCB4, 0x6A80, 0xCCB5, 0x75F0, 0xCCB6, 0x6F6D, 0xCCB7, 0x8C2D, - 0xCCB8, 0x8C08, 0xCCB9, 0x5766, 0xCCBA, 0x6BEF, 0xCCBB, 0x8892, - 0xCCBC, 0x78B3, 0xCCBD, 0x63A2, 0xCCBE, 0x53F9, 0xCCBF, 0x70AD, - 0xCCC0, 0x6C64, 0xCCC1, 0x5858, 0xCCC2, 0x642A, 0xCCC3, 0x5802, - 0xCCC4, 0x68E0, 0xCCC5, 0x819B, 0xCCC6, 0x5510, 0xCCC7, 0x7CD6, - 0xCCC8, 0x5018, 0xCCC9, 0x8EBA, 0xCCCA, 0x6DCC, 0xCCCB, 0x8D9F, - 0xCCCC, 0x70EB, 0xCCCD, 0x638F, 0xCCCE, 0x6D9B, 0xCCCF, 0x6ED4, - 0xCCD0, 0x7EE6, 0xCCD1, 0x8404, 0xCCD2, 0x6843, 0xCCD3, 0x9003, - 0xCCD4, 0x6DD8, 0xCCD5, 0x9676, 0xCCD6, 0x8BA8, 0xCCD7, 0x5957, - 0xCCD8, 0x7279, 0xCCD9, 0x85E4, 0xCCDA, 0x817E, 0xCCDB, 0x75BC, - 0xCCDC, 0x8A8A, 0xCCDD, 0x68AF, 0xCCDE, 0x5254, 0xCCDF, 0x8E22, - 0xCCE0, 0x9511, 0xCCE1, 0x63D0, 0xCCE2, 0x9898, 0xCCE3, 0x8E44, - 0xCCE4, 0x557C, 0xCCE5, 0x4F53, 0xCCE6, 0x66FF, 0xCCE7, 0x568F, - 0xCCE8, 0x60D5, 0xCCE9, 0x6D95, 0xCCEA, 0x5243, 0xCCEB, 0x5C49, - 0xCCEC, 0x5929, 0xCCED, 0x6DFB, 0xCCEE, 0x586B, 0xCCEF, 0x7530, - 0xCCF0, 0x751C, 0xCCF1, 0x606C, 0xCCF2, 0x8214, 0xCCF3, 0x8146, - 0xCCF4, 0x6311, 0xCCF5, 0x6761, 0xCCF6, 0x8FE2, 0xCCF7, 0x773A, - 0xCCF8, 0x8DF3, 0xCCF9, 0x8D34, 0xCCFA, 0x94C1, 0xCCFB, 0x5E16, - 0xCCFC, 0x5385, 0xCCFD, 0x542C, 0xCCFE, 0x70C3, 0xCD40, 0x866D, - 0xCD41, 0x866F, 0xCD42, 0x8670, 0xCD43, 0x8672, 0xCD44, 0x8673, - 0xCD45, 0x8674, 0xCD46, 0x8675, 0xCD47, 0x8676, 0xCD48, 0x8677, - 0xCD49, 0x8678, 0xCD4A, 0x8683, 0xCD4B, 0x8684, 0xCD4C, 0x8685, - 0xCD4D, 0x8686, 0xCD4E, 0x8687, 0xCD4F, 0x8688, 0xCD50, 0x8689, - 0xCD51, 0x868E, 0xCD52, 0x868F, 0xCD53, 0x8690, 0xCD54, 0x8691, - 0xCD55, 0x8692, 0xCD56, 0x8694, 0xCD57, 0x8696, 0xCD58, 0x8697, - 0xCD59, 0x8698, 0xCD5A, 0x8699, 0xCD5B, 0x869A, 0xCD5C, 0x869B, - 0xCD5D, 0x869E, 0xCD5E, 0x869F, 0xCD5F, 0x86A0, 0xCD60, 0x86A1, - 0xCD61, 0x86A2, 0xCD62, 0x86A5, 0xCD63, 0x86A6, 0xCD64, 0x86AB, - 0xCD65, 0x86AD, 0xCD66, 0x86AE, 0xCD67, 0x86B2, 0xCD68, 0x86B3, - 0xCD69, 0x86B7, 0xCD6A, 0x86B8, 0xCD6B, 0x86B9, 0xCD6C, 0x86BB, - 0xCD6D, 0x86BC, 0xCD6E, 0x86BD, 0xCD6F, 0x86BE, 0xCD70, 0x86BF, - 0xCD71, 0x86C1, 0xCD72, 0x86C2, 0xCD73, 0x86C3, 0xCD74, 0x86C5, - 0xCD75, 0x86C8, 0xCD76, 0x86CC, 0xCD77, 0x86CD, 0xCD78, 0x86D2, - 0xCD79, 0x86D3, 0xCD7A, 0x86D5, 0xCD7B, 0x86D6, 0xCD7C, 0x86D7, - 0xCD7D, 0x86DA, 0xCD7E, 0x86DC, 0xCD80, 0x86DD, 0xCD81, 0x86E0, - 0xCD82, 0x86E1, 0xCD83, 0x86E2, 0xCD84, 0x86E3, 0xCD85, 0x86E5, - 0xCD86, 0x86E6, 0xCD87, 0x86E7, 0xCD88, 0x86E8, 0xCD89, 0x86EA, - 0xCD8A, 0x86EB, 0xCD8B, 0x86EC, 0xCD8C, 0x86EF, 0xCD8D, 0x86F5, - 0xCD8E, 0x86F6, 0xCD8F, 0x86F7, 0xCD90, 0x86FA, 0xCD91, 0x86FB, - 0xCD92, 0x86FC, 0xCD93, 0x86FD, 0xCD94, 0x86FF, 0xCD95, 0x8701, - 0xCD96, 0x8704, 0xCD97, 0x8705, 0xCD98, 0x8706, 0xCD99, 0x870B, - 0xCD9A, 0x870C, 0xCD9B, 0x870E, 0xCD9C, 0x870F, 0xCD9D, 0x8710, - 0xCD9E, 0x8711, 0xCD9F, 0x8714, 0xCDA0, 0x8716, 0xCDA1, 0x6C40, - 0xCDA2, 0x5EF7, 0xCDA3, 0x505C, 0xCDA4, 0x4EAD, 0xCDA5, 0x5EAD, - 0xCDA6, 0x633A, 0xCDA7, 0x8247, 0xCDA8, 0x901A, 0xCDA9, 0x6850, - 0xCDAA, 0x916E, 0xCDAB, 0x77B3, 0xCDAC, 0x540C, 0xCDAD, 0x94DC, - 0xCDAE, 0x5F64, 0xCDAF, 0x7AE5, 0xCDB0, 0x6876, 0xCDB1, 0x6345, - 0xCDB2, 0x7B52, 0xCDB3, 0x7EDF, 0xCDB4, 0x75DB, 0xCDB5, 0x5077, - 0xCDB6, 0x6295, 0xCDB7, 0x5934, 0xCDB8, 0x900F, 0xCDB9, 0x51F8, - 0xCDBA, 0x79C3, 0xCDBB, 0x7A81, 0xCDBC, 0x56FE, 0xCDBD, 0x5F92, - 0xCDBE, 0x9014, 0xCDBF, 0x6D82, 0xCDC0, 0x5C60, 0xCDC1, 0x571F, - 0xCDC2, 0x5410, 0xCDC3, 0x5154, 0xCDC4, 0x6E4D, 0xCDC5, 0x56E2, - 0xCDC6, 0x63A8, 0xCDC7, 0x9893, 0xCDC8, 0x817F, 0xCDC9, 0x8715, - 0xCDCA, 0x892A, 0xCDCB, 0x9000, 0xCDCC, 0x541E, 0xCDCD, 0x5C6F, - 0xCDCE, 0x81C0, 0xCDCF, 0x62D6, 0xCDD0, 0x6258, 0xCDD1, 0x8131, - 0xCDD2, 0x9E35, 0xCDD3, 0x9640, 0xCDD4, 0x9A6E, 0xCDD5, 0x9A7C, - 0xCDD6, 0x692D, 0xCDD7, 0x59A5, 0xCDD8, 0x62D3, 0xCDD9, 0x553E, - 0xCDDA, 0x6316, 0xCDDB, 0x54C7, 0xCDDC, 0x86D9, 0xCDDD, 0x6D3C, - 0xCDDE, 0x5A03, 0xCDDF, 0x74E6, 0xCDE0, 0x889C, 0xCDE1, 0x6B6A, - 0xCDE2, 0x5916, 0xCDE3, 0x8C4C, 0xCDE4, 0x5F2F, 0xCDE5, 0x6E7E, - 0xCDE6, 0x73A9, 0xCDE7, 0x987D, 0xCDE8, 0x4E38, 0xCDE9, 0x70F7, - 0xCDEA, 0x5B8C, 0xCDEB, 0x7897, 0xCDEC, 0x633D, 0xCDED, 0x665A, - 0xCDEE, 0x7696, 0xCDEF, 0x60CB, 0xCDF0, 0x5B9B, 0xCDF1, 0x5A49, - 0xCDF2, 0x4E07, 0xCDF3, 0x8155, 0xCDF4, 0x6C6A, 0xCDF5, 0x738B, - 0xCDF6, 0x4EA1, 0xCDF7, 0x6789, 0xCDF8, 0x7F51, 0xCDF9, 0x5F80, - 0xCDFA, 0x65FA, 0xCDFB, 0x671B, 0xCDFC, 0x5FD8, 0xCDFD, 0x5984, - 0xCDFE, 0x5A01, 0xCE40, 0x8719, 0xCE41, 0x871B, 0xCE42, 0x871D, - 0xCE43, 0x871F, 0xCE44, 0x8720, 0xCE45, 0x8724, 0xCE46, 0x8726, - 0xCE47, 0x8727, 0xCE48, 0x8728, 0xCE49, 0x872A, 0xCE4A, 0x872B, - 0xCE4B, 0x872C, 0xCE4C, 0x872D, 0xCE4D, 0x872F, 0xCE4E, 0x8730, - 0xCE4F, 0x8732, 0xCE50, 0x8733, 0xCE51, 0x8735, 0xCE52, 0x8736, - 0xCE53, 0x8738, 0xCE54, 0x8739, 0xCE55, 0x873A, 0xCE56, 0x873C, - 0xCE57, 0x873D, 0xCE58, 0x8740, 0xCE59, 0x8741, 0xCE5A, 0x8742, - 0xCE5B, 0x8743, 0xCE5C, 0x8744, 0xCE5D, 0x8745, 0xCE5E, 0x8746, - 0xCE5F, 0x874A, 0xCE60, 0x874B, 0xCE61, 0x874D, 0xCE62, 0x874F, - 0xCE63, 0x8750, 0xCE64, 0x8751, 0xCE65, 0x8752, 0xCE66, 0x8754, - 0xCE67, 0x8755, 0xCE68, 0x8756, 0xCE69, 0x8758, 0xCE6A, 0x875A, - 0xCE6B, 0x875B, 0xCE6C, 0x875C, 0xCE6D, 0x875D, 0xCE6E, 0x875E, - 0xCE6F, 0x875F, 0xCE70, 0x8761, 0xCE71, 0x8762, 0xCE72, 0x8766, - 0xCE73, 0x8767, 0xCE74, 0x8768, 0xCE75, 0x8769, 0xCE76, 0x876A, - 0xCE77, 0x876B, 0xCE78, 0x876C, 0xCE79, 0x876D, 0xCE7A, 0x876F, - 0xCE7B, 0x8771, 0xCE7C, 0x8772, 0xCE7D, 0x8773, 0xCE7E, 0x8775, - 0xCE80, 0x8777, 0xCE81, 0x8778, 0xCE82, 0x8779, 0xCE83, 0x877A, - 0xCE84, 0x877F, 0xCE85, 0x8780, 0xCE86, 0x8781, 0xCE87, 0x8784, - 0xCE88, 0x8786, 0xCE89, 0x8787, 0xCE8A, 0x8789, 0xCE8B, 0x878A, - 0xCE8C, 0x878C, 0xCE8D, 0x878E, 0xCE8E, 0x878F, 0xCE8F, 0x8790, - 0xCE90, 0x8791, 0xCE91, 0x8792, 0xCE92, 0x8794, 0xCE93, 0x8795, - 0xCE94, 0x8796, 0xCE95, 0x8798, 0xCE96, 0x8799, 0xCE97, 0x879A, - 0xCE98, 0x879B, 0xCE99, 0x879C, 0xCE9A, 0x879D, 0xCE9B, 0x879E, - 0xCE9C, 0x87A0, 0xCE9D, 0x87A1, 0xCE9E, 0x87A2, 0xCE9F, 0x87A3, - 0xCEA0, 0x87A4, 0xCEA1, 0x5DCD, 0xCEA2, 0x5FAE, 0xCEA3, 0x5371, - 0xCEA4, 0x97E6, 0xCEA5, 0x8FDD, 0xCEA6, 0x6845, 0xCEA7, 0x56F4, - 0xCEA8, 0x552F, 0xCEA9, 0x60DF, 0xCEAA, 0x4E3A, 0xCEAB, 0x6F4D, - 0xCEAC, 0x7EF4, 0xCEAD, 0x82C7, 0xCEAE, 0x840E, 0xCEAF, 0x59D4, - 0xCEB0, 0x4F1F, 0xCEB1, 0x4F2A, 0xCEB2, 0x5C3E, 0xCEB3, 0x7EAC, - 0xCEB4, 0x672A, 0xCEB5, 0x851A, 0xCEB6, 0x5473, 0xCEB7, 0x754F, - 0xCEB8, 0x80C3, 0xCEB9, 0x5582, 0xCEBA, 0x9B4F, 0xCEBB, 0x4F4D, - 0xCEBC, 0x6E2D, 0xCEBD, 0x8C13, 0xCEBE, 0x5C09, 0xCEBF, 0x6170, - 0xCEC0, 0x536B, 0xCEC1, 0x761F, 0xCEC2, 0x6E29, 0xCEC3, 0x868A, - 0xCEC4, 0x6587, 0xCEC5, 0x95FB, 0xCEC6, 0x7EB9, 0xCEC7, 0x543B, - 0xCEC8, 0x7A33, 0xCEC9, 0x7D0A, 0xCECA, 0x95EE, 0xCECB, 0x55E1, - 0xCECC, 0x7FC1, 0xCECD, 0x74EE, 0xCECE, 0x631D, 0xCECF, 0x8717, - 0xCED0, 0x6DA1, 0xCED1, 0x7A9D, 0xCED2, 0x6211, 0xCED3, 0x65A1, - 0xCED4, 0x5367, 0xCED5, 0x63E1, 0xCED6, 0x6C83, 0xCED7, 0x5DEB, - 0xCED8, 0x545C, 0xCED9, 0x94A8, 0xCEDA, 0x4E4C, 0xCEDB, 0x6C61, - 0xCEDC, 0x8BEC, 0xCEDD, 0x5C4B, 0xCEDE, 0x65E0, 0xCEDF, 0x829C, - 0xCEE0, 0x68A7, 0xCEE1, 0x543E, 0xCEE2, 0x5434, 0xCEE3, 0x6BCB, - 0xCEE4, 0x6B66, 0xCEE5, 0x4E94, 0xCEE6, 0x6342, 0xCEE7, 0x5348, - 0xCEE8, 0x821E, 0xCEE9, 0x4F0D, 0xCEEA, 0x4FAE, 0xCEEB, 0x575E, - 0xCEEC, 0x620A, 0xCEED, 0x96FE, 0xCEEE, 0x6664, 0xCEEF, 0x7269, - 0xCEF0, 0x52FF, 0xCEF1, 0x52A1, 0xCEF2, 0x609F, 0xCEF3, 0x8BEF, - 0xCEF4, 0x6614, 0xCEF5, 0x7199, 0xCEF6, 0x6790, 0xCEF7, 0x897F, - 0xCEF8, 0x7852, 0xCEF9, 0x77FD, 0xCEFA, 0x6670, 0xCEFB, 0x563B, - 0xCEFC, 0x5438, 0xCEFD, 0x9521, 0xCEFE, 0x727A, 0xCF40, 0x87A5, - 0xCF41, 0x87A6, 0xCF42, 0x87A7, 0xCF43, 0x87A9, 0xCF44, 0x87AA, - 0xCF45, 0x87AE, 0xCF46, 0x87B0, 0xCF47, 0x87B1, 0xCF48, 0x87B2, - 0xCF49, 0x87B4, 0xCF4A, 0x87B6, 0xCF4B, 0x87B7, 0xCF4C, 0x87B8, - 0xCF4D, 0x87B9, 0xCF4E, 0x87BB, 0xCF4F, 0x87BC, 0xCF50, 0x87BE, - 0xCF51, 0x87BF, 0xCF52, 0x87C1, 0xCF53, 0x87C2, 0xCF54, 0x87C3, - 0xCF55, 0x87C4, 0xCF56, 0x87C5, 0xCF57, 0x87C7, 0xCF58, 0x87C8, - 0xCF59, 0x87C9, 0xCF5A, 0x87CC, 0xCF5B, 0x87CD, 0xCF5C, 0x87CE, - 0xCF5D, 0x87CF, 0xCF5E, 0x87D0, 0xCF5F, 0x87D4, 0xCF60, 0x87D5, - 0xCF61, 0x87D6, 0xCF62, 0x87D7, 0xCF63, 0x87D8, 0xCF64, 0x87D9, - 0xCF65, 0x87DA, 0xCF66, 0x87DC, 0xCF67, 0x87DD, 0xCF68, 0x87DE, - 0xCF69, 0x87DF, 0xCF6A, 0x87E1, 0xCF6B, 0x87E2, 0xCF6C, 0x87E3, - 0xCF6D, 0x87E4, 0xCF6E, 0x87E6, 0xCF6F, 0x87E7, 0xCF70, 0x87E8, - 0xCF71, 0x87E9, 0xCF72, 0x87EB, 0xCF73, 0x87EC, 0xCF74, 0x87ED, - 0xCF75, 0x87EF, 0xCF76, 0x87F0, 0xCF77, 0x87F1, 0xCF78, 0x87F2, - 0xCF79, 0x87F3, 0xCF7A, 0x87F4, 0xCF7B, 0x87F5, 0xCF7C, 0x87F6, - 0xCF7D, 0x87F7, 0xCF7E, 0x87F8, 0xCF80, 0x87FA, 0xCF81, 0x87FB, - 0xCF82, 0x87FC, 0xCF83, 0x87FD, 0xCF84, 0x87FF, 0xCF85, 0x8800, - 0xCF86, 0x8801, 0xCF87, 0x8802, 0xCF88, 0x8804, 0xCF89, 0x8805, - 0xCF8A, 0x8806, 0xCF8B, 0x8807, 0xCF8C, 0x8808, 0xCF8D, 0x8809, - 0xCF8E, 0x880B, 0xCF8F, 0x880C, 0xCF90, 0x880D, 0xCF91, 0x880E, - 0xCF92, 0x880F, 0xCF93, 0x8810, 0xCF94, 0x8811, 0xCF95, 0x8812, - 0xCF96, 0x8814, 0xCF97, 0x8817, 0xCF98, 0x8818, 0xCF99, 0x8819, - 0xCF9A, 0x881A, 0xCF9B, 0x881C, 0xCF9C, 0x881D, 0xCF9D, 0x881E, - 0xCF9E, 0x881F, 0xCF9F, 0x8820, 0xCFA0, 0x8823, 0xCFA1, 0x7A00, - 0xCFA2, 0x606F, 0xCFA3, 0x5E0C, 0xCFA4, 0x6089, 0xCFA5, 0x819D, - 0xCFA6, 0x5915, 0xCFA7, 0x60DC, 0xCFA8, 0x7184, 0xCFA9, 0x70EF, - 0xCFAA, 0x6EAA, 0xCFAB, 0x6C50, 0xCFAC, 0x7280, 0xCFAD, 0x6A84, - 0xCFAE, 0x88AD, 0xCFAF, 0x5E2D, 0xCFB0, 0x4E60, 0xCFB1, 0x5AB3, - 0xCFB2, 0x559C, 0xCFB3, 0x94E3, 0xCFB4, 0x6D17, 0xCFB5, 0x7CFB, - 0xCFB6, 0x9699, 0xCFB7, 0x620F, 0xCFB8, 0x7EC6, 0xCFB9, 0x778E, - 0xCFBA, 0x867E, 0xCFBB, 0x5323, 0xCFBC, 0x971E, 0xCFBD, 0x8F96, - 0xCFBE, 0x6687, 0xCFBF, 0x5CE1, 0xCFC0, 0x4FA0, 0xCFC1, 0x72ED, - 0xCFC2, 0x4E0B, 0xCFC3, 0x53A6, 0xCFC4, 0x590F, 0xCFC5, 0x5413, - 0xCFC6, 0x6380, 0xCFC7, 0x9528, 0xCFC8, 0x5148, 0xCFC9, 0x4ED9, - 0xCFCA, 0x9C9C, 0xCFCB, 0x7EA4, 0xCFCC, 0x54B8, 0xCFCD, 0x8D24, - 0xCFCE, 0x8854, 0xCFCF, 0x8237, 0xCFD0, 0x95F2, 0xCFD1, 0x6D8E, - 0xCFD2, 0x5F26, 0xCFD3, 0x5ACC, 0xCFD4, 0x663E, 0xCFD5, 0x9669, - 0xCFD6, 0x73B0, 0xCFD7, 0x732E, 0xCFD8, 0x53BF, 0xCFD9, 0x817A, - 0xCFDA, 0x9985, 0xCFDB, 0x7FA1, 0xCFDC, 0x5BAA, 0xCFDD, 0x9677, - 0xCFDE, 0x9650, 0xCFDF, 0x7EBF, 0xCFE0, 0x76F8, 0xCFE1, 0x53A2, - 0xCFE2, 0x9576, 0xCFE3, 0x9999, 0xCFE4, 0x7BB1, 0xCFE5, 0x8944, - 0xCFE6, 0x6E58, 0xCFE7, 0x4E61, 0xCFE8, 0x7FD4, 0xCFE9, 0x7965, - 0xCFEA, 0x8BE6, 0xCFEB, 0x60F3, 0xCFEC, 0x54CD, 0xCFED, 0x4EAB, - 0xCFEE, 0x9879, 0xCFEF, 0x5DF7, 0xCFF0, 0x6A61, 0xCFF1, 0x50CF, - 0xCFF2, 0x5411, 0xCFF3, 0x8C61, 0xCFF4, 0x8427, 0xCFF5, 0x785D, - 0xCFF6, 0x9704, 0xCFF7, 0x524A, 0xCFF8, 0x54EE, 0xCFF9, 0x56A3, - 0xCFFA, 0x9500, 0xCFFB, 0x6D88, 0xCFFC, 0x5BB5, 0xCFFD, 0x6DC6, - 0xCFFE, 0x6653, 0xD040, 0x8824, 0xD041, 0x8825, 0xD042, 0x8826, - 0xD043, 0x8827, 0xD044, 0x8828, 0xD045, 0x8829, 0xD046, 0x882A, - 0xD047, 0x882B, 0xD048, 0x882C, 0xD049, 0x882D, 0xD04A, 0x882E, - 0xD04B, 0x882F, 0xD04C, 0x8830, 0xD04D, 0x8831, 0xD04E, 0x8833, - 0xD04F, 0x8834, 0xD050, 0x8835, 0xD051, 0x8836, 0xD052, 0x8837, - 0xD053, 0x8838, 0xD054, 0x883A, 0xD055, 0x883B, 0xD056, 0x883D, - 0xD057, 0x883E, 0xD058, 0x883F, 0xD059, 0x8841, 0xD05A, 0x8842, - 0xD05B, 0x8843, 0xD05C, 0x8846, 0xD05D, 0x8847, 0xD05E, 0x8848, - 0xD05F, 0x8849, 0xD060, 0x884A, 0xD061, 0x884B, 0xD062, 0x884E, - 0xD063, 0x884F, 0xD064, 0x8850, 0xD065, 0x8851, 0xD066, 0x8852, - 0xD067, 0x8853, 0xD068, 0x8855, 0xD069, 0x8856, 0xD06A, 0x8858, - 0xD06B, 0x885A, 0xD06C, 0x885B, 0xD06D, 0x885C, 0xD06E, 0x885D, - 0xD06F, 0x885E, 0xD070, 0x885F, 0xD071, 0x8860, 0xD072, 0x8866, - 0xD073, 0x8867, 0xD074, 0x886A, 0xD075, 0x886D, 0xD076, 0x886F, - 0xD077, 0x8871, 0xD078, 0x8873, 0xD079, 0x8874, 0xD07A, 0x8875, - 0xD07B, 0x8876, 0xD07C, 0x8878, 0xD07D, 0x8879, 0xD07E, 0x887A, - 0xD080, 0x887B, 0xD081, 0x887C, 0xD082, 0x8880, 0xD083, 0x8883, - 0xD084, 0x8886, 0xD085, 0x8887, 0xD086, 0x8889, 0xD087, 0x888A, - 0xD088, 0x888C, 0xD089, 0x888E, 0xD08A, 0x888F, 0xD08B, 0x8890, - 0xD08C, 0x8891, 0xD08D, 0x8893, 0xD08E, 0x8894, 0xD08F, 0x8895, - 0xD090, 0x8897, 0xD091, 0x8898, 0xD092, 0x8899, 0xD093, 0x889A, - 0xD094, 0x889B, 0xD095, 0x889D, 0xD096, 0x889E, 0xD097, 0x889F, - 0xD098, 0x88A0, 0xD099, 0x88A1, 0xD09A, 0x88A3, 0xD09B, 0x88A5, - 0xD09C, 0x88A6, 0xD09D, 0x88A7, 0xD09E, 0x88A8, 0xD09F, 0x88A9, - 0xD0A0, 0x88AA, 0xD0A1, 0x5C0F, 0xD0A2, 0x5B5D, 0xD0A3, 0x6821, - 0xD0A4, 0x8096, 0xD0A5, 0x5578, 0xD0A6, 0x7B11, 0xD0A7, 0x6548, - 0xD0A8, 0x6954, 0xD0A9, 0x4E9B, 0xD0AA, 0x6B47, 0xD0AB, 0x874E, - 0xD0AC, 0x978B, 0xD0AD, 0x534F, 0xD0AE, 0x631F, 0xD0AF, 0x643A, - 0xD0B0, 0x90AA, 0xD0B1, 0x659C, 0xD0B2, 0x80C1, 0xD0B3, 0x8C10, - 0xD0B4, 0x5199, 0xD0B5, 0x68B0, 0xD0B6, 0x5378, 0xD0B7, 0x87F9, - 0xD0B8, 0x61C8, 0xD0B9, 0x6CC4, 0xD0BA, 0x6CFB, 0xD0BB, 0x8C22, - 0xD0BC, 0x5C51, 0xD0BD, 0x85AA, 0xD0BE, 0x82AF, 0xD0BF, 0x950C, - 0xD0C0, 0x6B23, 0xD0C1, 0x8F9B, 0xD0C2, 0x65B0, 0xD0C3, 0x5FFB, - 0xD0C4, 0x5FC3, 0xD0C5, 0x4FE1, 0xD0C6, 0x8845, 0xD0C7, 0x661F, - 0xD0C8, 0x8165, 0xD0C9, 0x7329, 0xD0CA, 0x60FA, 0xD0CB, 0x5174, - 0xD0CC, 0x5211, 0xD0CD, 0x578B, 0xD0CE, 0x5F62, 0xD0CF, 0x90A2, - 0xD0D0, 0x884C, 0xD0D1, 0x9192, 0xD0D2, 0x5E78, 0xD0D3, 0x674F, - 0xD0D4, 0x6027, 0xD0D5, 0x59D3, 0xD0D6, 0x5144, 0xD0D7, 0x51F6, - 0xD0D8, 0x80F8, 0xD0D9, 0x5308, 0xD0DA, 0x6C79, 0xD0DB, 0x96C4, - 0xD0DC, 0x718A, 0xD0DD, 0x4F11, 0xD0DE, 0x4FEE, 0xD0DF, 0x7F9E, - 0xD0E0, 0x673D, 0xD0E1, 0x55C5, 0xD0E2, 0x9508, 0xD0E3, 0x79C0, - 0xD0E4, 0x8896, 0xD0E5, 0x7EE3, 0xD0E6, 0x589F, 0xD0E7, 0x620C, - 0xD0E8, 0x9700, 0xD0E9, 0x865A, 0xD0EA, 0x5618, 0xD0EB, 0x987B, - 0xD0EC, 0x5F90, 0xD0ED, 0x8BB8, 0xD0EE, 0x84C4, 0xD0EF, 0x9157, - 0xD0F0, 0x53D9, 0xD0F1, 0x65ED, 0xD0F2, 0x5E8F, 0xD0F3, 0x755C, - 0xD0F4, 0x6064, 0xD0F5, 0x7D6E, 0xD0F6, 0x5A7F, 0xD0F7, 0x7EEA, - 0xD0F8, 0x7EED, 0xD0F9, 0x8F69, 0xD0FA, 0x55A7, 0xD0FB, 0x5BA3, - 0xD0FC, 0x60AC, 0xD0FD, 0x65CB, 0xD0FE, 0x7384, 0xD140, 0x88AC, - 0xD141, 0x88AE, 0xD142, 0x88AF, 0xD143, 0x88B0, 0xD144, 0x88B2, - 0xD145, 0x88B3, 0xD146, 0x88B4, 0xD147, 0x88B5, 0xD148, 0x88B6, - 0xD149, 0x88B8, 0xD14A, 0x88B9, 0xD14B, 0x88BA, 0xD14C, 0x88BB, - 0xD14D, 0x88BD, 0xD14E, 0x88BE, 0xD14F, 0x88BF, 0xD150, 0x88C0, - 0xD151, 0x88C3, 0xD152, 0x88C4, 0xD153, 0x88C7, 0xD154, 0x88C8, - 0xD155, 0x88CA, 0xD156, 0x88CB, 0xD157, 0x88CC, 0xD158, 0x88CD, - 0xD159, 0x88CF, 0xD15A, 0x88D0, 0xD15B, 0x88D1, 0xD15C, 0x88D3, - 0xD15D, 0x88D6, 0xD15E, 0x88D7, 0xD15F, 0x88DA, 0xD160, 0x88DB, - 0xD161, 0x88DC, 0xD162, 0x88DD, 0xD163, 0x88DE, 0xD164, 0x88E0, - 0xD165, 0x88E1, 0xD166, 0x88E6, 0xD167, 0x88E7, 0xD168, 0x88E9, - 0xD169, 0x88EA, 0xD16A, 0x88EB, 0xD16B, 0x88EC, 0xD16C, 0x88ED, - 0xD16D, 0x88EE, 0xD16E, 0x88EF, 0xD16F, 0x88F2, 0xD170, 0x88F5, - 0xD171, 0x88F6, 0xD172, 0x88F7, 0xD173, 0x88FA, 0xD174, 0x88FB, - 0xD175, 0x88FD, 0xD176, 0x88FF, 0xD177, 0x8900, 0xD178, 0x8901, - 0xD179, 0x8903, 0xD17A, 0x8904, 0xD17B, 0x8905, 0xD17C, 0x8906, - 0xD17D, 0x8907, 0xD17E, 0x8908, 0xD180, 0x8909, 0xD181, 0x890B, - 0xD182, 0x890C, 0xD183, 0x890D, 0xD184, 0x890E, 0xD185, 0x890F, - 0xD186, 0x8911, 0xD187, 0x8914, 0xD188, 0x8915, 0xD189, 0x8916, - 0xD18A, 0x8917, 0xD18B, 0x8918, 0xD18C, 0x891C, 0xD18D, 0x891D, - 0xD18E, 0x891E, 0xD18F, 0x891F, 0xD190, 0x8920, 0xD191, 0x8922, - 0xD192, 0x8923, 0xD193, 0x8924, 0xD194, 0x8926, 0xD195, 0x8927, - 0xD196, 0x8928, 0xD197, 0x8929, 0xD198, 0x892C, 0xD199, 0x892D, - 0xD19A, 0x892E, 0xD19B, 0x892F, 0xD19C, 0x8931, 0xD19D, 0x8932, - 0xD19E, 0x8933, 0xD19F, 0x8935, 0xD1A0, 0x8937, 0xD1A1, 0x9009, - 0xD1A2, 0x7663, 0xD1A3, 0x7729, 0xD1A4, 0x7EDA, 0xD1A5, 0x9774, - 0xD1A6, 0x859B, 0xD1A7, 0x5B66, 0xD1A8, 0x7A74, 0xD1A9, 0x96EA, - 0xD1AA, 0x8840, 0xD1AB, 0x52CB, 0xD1AC, 0x718F, 0xD1AD, 0x5FAA, - 0xD1AE, 0x65EC, 0xD1AF, 0x8BE2, 0xD1B0, 0x5BFB, 0xD1B1, 0x9A6F, - 0xD1B2, 0x5DE1, 0xD1B3, 0x6B89, 0xD1B4, 0x6C5B, 0xD1B5, 0x8BAD, - 0xD1B6, 0x8BAF, 0xD1B7, 0x900A, 0xD1B8, 0x8FC5, 0xD1B9, 0x538B, - 0xD1BA, 0x62BC, 0xD1BB, 0x9E26, 0xD1BC, 0x9E2D, 0xD1BD, 0x5440, - 0xD1BE, 0x4E2B, 0xD1BF, 0x82BD, 0xD1C0, 0x7259, 0xD1C1, 0x869C, - 0xD1C2, 0x5D16, 0xD1C3, 0x8859, 0xD1C4, 0x6DAF, 0xD1C5, 0x96C5, - 0xD1C6, 0x54D1, 0xD1C7, 0x4E9A, 0xD1C8, 0x8BB6, 0xD1C9, 0x7109, - 0xD1CA, 0x54BD, 0xD1CB, 0x9609, 0xD1CC, 0x70DF, 0xD1CD, 0x6DF9, - 0xD1CE, 0x76D0, 0xD1CF, 0x4E25, 0xD1D0, 0x7814, 0xD1D1, 0x8712, - 0xD1D2, 0x5CA9, 0xD1D3, 0x5EF6, 0xD1D4, 0x8A00, 0xD1D5, 0x989C, - 0xD1D6, 0x960E, 0xD1D7, 0x708E, 0xD1D8, 0x6CBF, 0xD1D9, 0x5944, - 0xD1DA, 0x63A9, 0xD1DB, 0x773C, 0xD1DC, 0x884D, 0xD1DD, 0x6F14, - 0xD1DE, 0x8273, 0xD1DF, 0x5830, 0xD1E0, 0x71D5, 0xD1E1, 0x538C, - 0xD1E2, 0x781A, 0xD1E3, 0x96C1, 0xD1E4, 0x5501, 0xD1E5, 0x5F66, - 0xD1E6, 0x7130, 0xD1E7, 0x5BB4, 0xD1E8, 0x8C1A, 0xD1E9, 0x9A8C, - 0xD1EA, 0x6B83, 0xD1EB, 0x592E, 0xD1EC, 0x9E2F, 0xD1ED, 0x79E7, - 0xD1EE, 0x6768, 0xD1EF, 0x626C, 0xD1F0, 0x4F6F, 0xD1F1, 0x75A1, - 0xD1F2, 0x7F8A, 0xD1F3, 0x6D0B, 0xD1F4, 0x9633, 0xD1F5, 0x6C27, - 0xD1F6, 0x4EF0, 0xD1F7, 0x75D2, 0xD1F8, 0x517B, 0xD1F9, 0x6837, - 0xD1FA, 0x6F3E, 0xD1FB, 0x9080, 0xD1FC, 0x8170, 0xD1FD, 0x5996, - 0xD1FE, 0x7476, 0xD240, 0x8938, 0xD241, 0x8939, 0xD242, 0x893A, - 0xD243, 0x893B, 0xD244, 0x893C, 0xD245, 0x893D, 0xD246, 0x893E, - 0xD247, 0x893F, 0xD248, 0x8940, 0xD249, 0x8942, 0xD24A, 0x8943, - 0xD24B, 0x8945, 0xD24C, 0x8946, 0xD24D, 0x8947, 0xD24E, 0x8948, - 0xD24F, 0x8949, 0xD250, 0x894A, 0xD251, 0x894B, 0xD252, 0x894C, - 0xD253, 0x894D, 0xD254, 0x894E, 0xD255, 0x894F, 0xD256, 0x8950, - 0xD257, 0x8951, 0xD258, 0x8952, 0xD259, 0x8953, 0xD25A, 0x8954, - 0xD25B, 0x8955, 0xD25C, 0x8956, 0xD25D, 0x8957, 0xD25E, 0x8958, - 0xD25F, 0x8959, 0xD260, 0x895A, 0xD261, 0x895B, 0xD262, 0x895C, - 0xD263, 0x895D, 0xD264, 0x8960, 0xD265, 0x8961, 0xD266, 0x8962, - 0xD267, 0x8963, 0xD268, 0x8964, 0xD269, 0x8965, 0xD26A, 0x8967, - 0xD26B, 0x8968, 0xD26C, 0x8969, 0xD26D, 0x896A, 0xD26E, 0x896B, - 0xD26F, 0x896C, 0xD270, 0x896D, 0xD271, 0x896E, 0xD272, 0x896F, - 0xD273, 0x8970, 0xD274, 0x8971, 0xD275, 0x8972, 0xD276, 0x8973, - 0xD277, 0x8974, 0xD278, 0x8975, 0xD279, 0x8976, 0xD27A, 0x8977, - 0xD27B, 0x8978, 0xD27C, 0x8979, 0xD27D, 0x897A, 0xD27E, 0x897C, - 0xD280, 0x897D, 0xD281, 0x897E, 0xD282, 0x8980, 0xD283, 0x8982, - 0xD284, 0x8984, 0xD285, 0x8985, 0xD286, 0x8987, 0xD287, 0x8988, - 0xD288, 0x8989, 0xD289, 0x898A, 0xD28A, 0x898B, 0xD28B, 0x898C, - 0xD28C, 0x898D, 0xD28D, 0x898E, 0xD28E, 0x898F, 0xD28F, 0x8990, - 0xD290, 0x8991, 0xD291, 0x8992, 0xD292, 0x8993, 0xD293, 0x8994, - 0xD294, 0x8995, 0xD295, 0x8996, 0xD296, 0x8997, 0xD297, 0x8998, - 0xD298, 0x8999, 0xD299, 0x899A, 0xD29A, 0x899B, 0xD29B, 0x899C, - 0xD29C, 0x899D, 0xD29D, 0x899E, 0xD29E, 0x899F, 0xD29F, 0x89A0, - 0xD2A0, 0x89A1, 0xD2A1, 0x6447, 0xD2A2, 0x5C27, 0xD2A3, 0x9065, - 0xD2A4, 0x7A91, 0xD2A5, 0x8C23, 0xD2A6, 0x59DA, 0xD2A7, 0x54AC, - 0xD2A8, 0x8200, 0xD2A9, 0x836F, 0xD2AA, 0x8981, 0xD2AB, 0x8000, - 0xD2AC, 0x6930, 0xD2AD, 0x564E, 0xD2AE, 0x8036, 0xD2AF, 0x7237, - 0xD2B0, 0x91CE, 0xD2B1, 0x51B6, 0xD2B2, 0x4E5F, 0xD2B3, 0x9875, - 0xD2B4, 0x6396, 0xD2B5, 0x4E1A, 0xD2B6, 0x53F6, 0xD2B7, 0x66F3, - 0xD2B8, 0x814B, 0xD2B9, 0x591C, 0xD2BA, 0x6DB2, 0xD2BB, 0x4E00, - 0xD2BC, 0x58F9, 0xD2BD, 0x533B, 0xD2BE, 0x63D6, 0xD2BF, 0x94F1, - 0xD2C0, 0x4F9D, 0xD2C1, 0x4F0A, 0xD2C2, 0x8863, 0xD2C3, 0x9890, - 0xD2C4, 0x5937, 0xD2C5, 0x9057, 0xD2C6, 0x79FB, 0xD2C7, 0x4EEA, - 0xD2C8, 0x80F0, 0xD2C9, 0x7591, 0xD2CA, 0x6C82, 0xD2CB, 0x5B9C, - 0xD2CC, 0x59E8, 0xD2CD, 0x5F5D, 0xD2CE, 0x6905, 0xD2CF, 0x8681, - 0xD2D0, 0x501A, 0xD2D1, 0x5DF2, 0xD2D2, 0x4E59, 0xD2D3, 0x77E3, - 0xD2D4, 0x4EE5, 0xD2D5, 0x827A, 0xD2D6, 0x6291, 0xD2D7, 0x6613, - 0xD2D8, 0x9091, 0xD2D9, 0x5C79, 0xD2DA, 0x4EBF, 0xD2DB, 0x5F79, - 0xD2DC, 0x81C6, 0xD2DD, 0x9038, 0xD2DE, 0x8084, 0xD2DF, 0x75AB, - 0xD2E0, 0x4EA6, 0xD2E1, 0x88D4, 0xD2E2, 0x610F, 0xD2E3, 0x6BC5, - 0xD2E4, 0x5FC6, 0xD2E5, 0x4E49, 0xD2E6, 0x76CA, 0xD2E7, 0x6EA2, - 0xD2E8, 0x8BE3, 0xD2E9, 0x8BAE, 0xD2EA, 0x8C0A, 0xD2EB, 0x8BD1, - 0xD2EC, 0x5F02, 0xD2ED, 0x7FFC, 0xD2EE, 0x7FCC, 0xD2EF, 0x7ECE, - 0xD2F0, 0x8335, 0xD2F1, 0x836B, 0xD2F2, 0x56E0, 0xD2F3, 0x6BB7, - 0xD2F4, 0x97F3, 0xD2F5, 0x9634, 0xD2F6, 0x59FB, 0xD2F7, 0x541F, - 0xD2F8, 0x94F6, 0xD2F9, 0x6DEB, 0xD2FA, 0x5BC5, 0xD2FB, 0x996E, - 0xD2FC, 0x5C39, 0xD2FD, 0x5F15, 0xD2FE, 0x9690, 0xD340, 0x89A2, - 0xD341, 0x89A3, 0xD342, 0x89A4, 0xD343, 0x89A5, 0xD344, 0x89A6, - 0xD345, 0x89A7, 0xD346, 0x89A8, 0xD347, 0x89A9, 0xD348, 0x89AA, - 0xD349, 0x89AB, 0xD34A, 0x89AC, 0xD34B, 0x89AD, 0xD34C, 0x89AE, - 0xD34D, 0x89AF, 0xD34E, 0x89B0, 0xD34F, 0x89B1, 0xD350, 0x89B2, - 0xD351, 0x89B3, 0xD352, 0x89B4, 0xD353, 0x89B5, 0xD354, 0x89B6, - 0xD355, 0x89B7, 0xD356, 0x89B8, 0xD357, 0x89B9, 0xD358, 0x89BA, - 0xD359, 0x89BB, 0xD35A, 0x89BC, 0xD35B, 0x89BD, 0xD35C, 0x89BE, - 0xD35D, 0x89BF, 0xD35E, 0x89C0, 0xD35F, 0x89C3, 0xD360, 0x89CD, - 0xD361, 0x89D3, 0xD362, 0x89D4, 0xD363, 0x89D5, 0xD364, 0x89D7, - 0xD365, 0x89D8, 0xD366, 0x89D9, 0xD367, 0x89DB, 0xD368, 0x89DD, - 0xD369, 0x89DF, 0xD36A, 0x89E0, 0xD36B, 0x89E1, 0xD36C, 0x89E2, - 0xD36D, 0x89E4, 0xD36E, 0x89E7, 0xD36F, 0x89E8, 0xD370, 0x89E9, - 0xD371, 0x89EA, 0xD372, 0x89EC, 0xD373, 0x89ED, 0xD374, 0x89EE, - 0xD375, 0x89F0, 0xD376, 0x89F1, 0xD377, 0x89F2, 0xD378, 0x89F4, - 0xD379, 0x89F5, 0xD37A, 0x89F6, 0xD37B, 0x89F7, 0xD37C, 0x89F8, - 0xD37D, 0x89F9, 0xD37E, 0x89FA, 0xD380, 0x89FB, 0xD381, 0x89FC, - 0xD382, 0x89FD, 0xD383, 0x89FE, 0xD384, 0x89FF, 0xD385, 0x8A01, - 0xD386, 0x8A02, 0xD387, 0x8A03, 0xD388, 0x8A04, 0xD389, 0x8A05, - 0xD38A, 0x8A06, 0xD38B, 0x8A08, 0xD38C, 0x8A09, 0xD38D, 0x8A0A, - 0xD38E, 0x8A0B, 0xD38F, 0x8A0C, 0xD390, 0x8A0D, 0xD391, 0x8A0E, - 0xD392, 0x8A0F, 0xD393, 0x8A10, 0xD394, 0x8A11, 0xD395, 0x8A12, - 0xD396, 0x8A13, 0xD397, 0x8A14, 0xD398, 0x8A15, 0xD399, 0x8A16, - 0xD39A, 0x8A17, 0xD39B, 0x8A18, 0xD39C, 0x8A19, 0xD39D, 0x8A1A, - 0xD39E, 0x8A1B, 0xD39F, 0x8A1C, 0xD3A0, 0x8A1D, 0xD3A1, 0x5370, - 0xD3A2, 0x82F1, 0xD3A3, 0x6A31, 0xD3A4, 0x5A74, 0xD3A5, 0x9E70, - 0xD3A6, 0x5E94, 0xD3A7, 0x7F28, 0xD3A8, 0x83B9, 0xD3A9, 0x8424, - 0xD3AA, 0x8425, 0xD3AB, 0x8367, 0xD3AC, 0x8747, 0xD3AD, 0x8FCE, - 0xD3AE, 0x8D62, 0xD3AF, 0x76C8, 0xD3B0, 0x5F71, 0xD3B1, 0x9896, - 0xD3B2, 0x786C, 0xD3B3, 0x6620, 0xD3B4, 0x54DF, 0xD3B5, 0x62E5, - 0xD3B6, 0x4F63, 0xD3B7, 0x81C3, 0xD3B8, 0x75C8, 0xD3B9, 0x5EB8, - 0xD3BA, 0x96CD, 0xD3BB, 0x8E0A, 0xD3BC, 0x86F9, 0xD3BD, 0x548F, - 0xD3BE, 0x6CF3, 0xD3BF, 0x6D8C, 0xD3C0, 0x6C38, 0xD3C1, 0x607F, - 0xD3C2, 0x52C7, 0xD3C3, 0x7528, 0xD3C4, 0x5E7D, 0xD3C5, 0x4F18, - 0xD3C6, 0x60A0, 0xD3C7, 0x5FE7, 0xD3C8, 0x5C24, 0xD3C9, 0x7531, - 0xD3CA, 0x90AE, 0xD3CB, 0x94C0, 0xD3CC, 0x72B9, 0xD3CD, 0x6CB9, - 0xD3CE, 0x6E38, 0xD3CF, 0x9149, 0xD3D0, 0x6709, 0xD3D1, 0x53CB, - 0xD3D2, 0x53F3, 0xD3D3, 0x4F51, 0xD3D4, 0x91C9, 0xD3D5, 0x8BF1, - 0xD3D6, 0x53C8, 0xD3D7, 0x5E7C, 0xD3D8, 0x8FC2, 0xD3D9, 0x6DE4, - 0xD3DA, 0x4E8E, 0xD3DB, 0x76C2, 0xD3DC, 0x6986, 0xD3DD, 0x865E, - 0xD3DE, 0x611A, 0xD3DF, 0x8206, 0xD3E0, 0x4F59, 0xD3E1, 0x4FDE, - 0xD3E2, 0x903E, 0xD3E3, 0x9C7C, 0xD3E4, 0x6109, 0xD3E5, 0x6E1D, - 0xD3E6, 0x6E14, 0xD3E7, 0x9685, 0xD3E8, 0x4E88, 0xD3E9, 0x5A31, - 0xD3EA, 0x96E8, 0xD3EB, 0x4E0E, 0xD3EC, 0x5C7F, 0xD3ED, 0x79B9, - 0xD3EE, 0x5B87, 0xD3EF, 0x8BED, 0xD3F0, 0x7FBD, 0xD3F1, 0x7389, - 0xD3F2, 0x57DF, 0xD3F3, 0x828B, 0xD3F4, 0x90C1, 0xD3F5, 0x5401, - 0xD3F6, 0x9047, 0xD3F7, 0x55BB, 0xD3F8, 0x5CEA, 0xD3F9, 0x5FA1, - 0xD3FA, 0x6108, 0xD3FB, 0x6B32, 0xD3FC, 0x72F1, 0xD3FD, 0x80B2, - 0xD3FE, 0x8A89, 0xD440, 0x8A1E, 0xD441, 0x8A1F, 0xD442, 0x8A20, - 0xD443, 0x8A21, 0xD444, 0x8A22, 0xD445, 0x8A23, 0xD446, 0x8A24, - 0xD447, 0x8A25, 0xD448, 0x8A26, 0xD449, 0x8A27, 0xD44A, 0x8A28, - 0xD44B, 0x8A29, 0xD44C, 0x8A2A, 0xD44D, 0x8A2B, 0xD44E, 0x8A2C, - 0xD44F, 0x8A2D, 0xD450, 0x8A2E, 0xD451, 0x8A2F, 0xD452, 0x8A30, - 0xD453, 0x8A31, 0xD454, 0x8A32, 0xD455, 0x8A33, 0xD456, 0x8A34, - 0xD457, 0x8A35, 0xD458, 0x8A36, 0xD459, 0x8A37, 0xD45A, 0x8A38, - 0xD45B, 0x8A39, 0xD45C, 0x8A3A, 0xD45D, 0x8A3B, 0xD45E, 0x8A3C, - 0xD45F, 0x8A3D, 0xD460, 0x8A3F, 0xD461, 0x8A40, 0xD462, 0x8A41, - 0xD463, 0x8A42, 0xD464, 0x8A43, 0xD465, 0x8A44, 0xD466, 0x8A45, - 0xD467, 0x8A46, 0xD468, 0x8A47, 0xD469, 0x8A49, 0xD46A, 0x8A4A, - 0xD46B, 0x8A4B, 0xD46C, 0x8A4C, 0xD46D, 0x8A4D, 0xD46E, 0x8A4E, - 0xD46F, 0x8A4F, 0xD470, 0x8A50, 0xD471, 0x8A51, 0xD472, 0x8A52, - 0xD473, 0x8A53, 0xD474, 0x8A54, 0xD475, 0x8A55, 0xD476, 0x8A56, - 0xD477, 0x8A57, 0xD478, 0x8A58, 0xD479, 0x8A59, 0xD47A, 0x8A5A, - 0xD47B, 0x8A5B, 0xD47C, 0x8A5C, 0xD47D, 0x8A5D, 0xD47E, 0x8A5E, - 0xD480, 0x8A5F, 0xD481, 0x8A60, 0xD482, 0x8A61, 0xD483, 0x8A62, - 0xD484, 0x8A63, 0xD485, 0x8A64, 0xD486, 0x8A65, 0xD487, 0x8A66, - 0xD488, 0x8A67, 0xD489, 0x8A68, 0xD48A, 0x8A69, 0xD48B, 0x8A6A, - 0xD48C, 0x8A6B, 0xD48D, 0x8A6C, 0xD48E, 0x8A6D, 0xD48F, 0x8A6E, - 0xD490, 0x8A6F, 0xD491, 0x8A70, 0xD492, 0x8A71, 0xD493, 0x8A72, - 0xD494, 0x8A73, 0xD495, 0x8A74, 0xD496, 0x8A75, 0xD497, 0x8A76, - 0xD498, 0x8A77, 0xD499, 0x8A78, 0xD49A, 0x8A7A, 0xD49B, 0x8A7B, - 0xD49C, 0x8A7C, 0xD49D, 0x8A7D, 0xD49E, 0x8A7E, 0xD49F, 0x8A7F, - 0xD4A0, 0x8A80, 0xD4A1, 0x6D74, 0xD4A2, 0x5BD3, 0xD4A3, 0x88D5, - 0xD4A4, 0x9884, 0xD4A5, 0x8C6B, 0xD4A6, 0x9A6D, 0xD4A7, 0x9E33, - 0xD4A8, 0x6E0A, 0xD4A9, 0x51A4, 0xD4AA, 0x5143, 0xD4AB, 0x57A3, - 0xD4AC, 0x8881, 0xD4AD, 0x539F, 0xD4AE, 0x63F4, 0xD4AF, 0x8F95, - 0xD4B0, 0x56ED, 0xD4B1, 0x5458, 0xD4B2, 0x5706, 0xD4B3, 0x733F, - 0xD4B4, 0x6E90, 0xD4B5, 0x7F18, 0xD4B6, 0x8FDC, 0xD4B7, 0x82D1, - 0xD4B8, 0x613F, 0xD4B9, 0x6028, 0xD4BA, 0x9662, 0xD4BB, 0x66F0, - 0xD4BC, 0x7EA6, 0xD4BD, 0x8D8A, 0xD4BE, 0x8DC3, 0xD4BF, 0x94A5, - 0xD4C0, 0x5CB3, 0xD4C1, 0x7CA4, 0xD4C2, 0x6708, 0xD4C3, 0x60A6, - 0xD4C4, 0x9605, 0xD4C5, 0x8018, 0xD4C6, 0x4E91, 0xD4C7, 0x90E7, - 0xD4C8, 0x5300, 0xD4C9, 0x9668, 0xD4CA, 0x5141, 0xD4CB, 0x8FD0, - 0xD4CC, 0x8574, 0xD4CD, 0x915D, 0xD4CE, 0x6655, 0xD4CF, 0x97F5, - 0xD4D0, 0x5B55, 0xD4D1, 0x531D, 0xD4D2, 0x7838, 0xD4D3, 0x6742, - 0xD4D4, 0x683D, 0xD4D5, 0x54C9, 0xD4D6, 0x707E, 0xD4D7, 0x5BB0, - 0xD4D8, 0x8F7D, 0xD4D9, 0x518D, 0xD4DA, 0x5728, 0xD4DB, 0x54B1, - 0xD4DC, 0x6512, 0xD4DD, 0x6682, 0xD4DE, 0x8D5E, 0xD4DF, 0x8D43, - 0xD4E0, 0x810F, 0xD4E1, 0x846C, 0xD4E2, 0x906D, 0xD4E3, 0x7CDF, - 0xD4E4, 0x51FF, 0xD4E5, 0x85FB, 0xD4E6, 0x67A3, 0xD4E7, 0x65E9, - 0xD4E8, 0x6FA1, 0xD4E9, 0x86A4, 0xD4EA, 0x8E81, 0xD4EB, 0x566A, - 0xD4EC, 0x9020, 0xD4ED, 0x7682, 0xD4EE, 0x7076, 0xD4EF, 0x71E5, - 0xD4F0, 0x8D23, 0xD4F1, 0x62E9, 0xD4F2, 0x5219, 0xD4F3, 0x6CFD, - 0xD4F4, 0x8D3C, 0xD4F5, 0x600E, 0xD4F6, 0x589E, 0xD4F7, 0x618E, - 0xD4F8, 0x66FE, 0xD4F9, 0x8D60, 0xD4FA, 0x624E, 0xD4FB, 0x55B3, - 0xD4FC, 0x6E23, 0xD4FD, 0x672D, 0xD4FE, 0x8F67, 0xD540, 0x8A81, - 0xD541, 0x8A82, 0xD542, 0x8A83, 0xD543, 0x8A84, 0xD544, 0x8A85, - 0xD545, 0x8A86, 0xD546, 0x8A87, 0xD547, 0x8A88, 0xD548, 0x8A8B, - 0xD549, 0x8A8C, 0xD54A, 0x8A8D, 0xD54B, 0x8A8E, 0xD54C, 0x8A8F, - 0xD54D, 0x8A90, 0xD54E, 0x8A91, 0xD54F, 0x8A92, 0xD550, 0x8A94, - 0xD551, 0x8A95, 0xD552, 0x8A96, 0xD553, 0x8A97, 0xD554, 0x8A98, - 0xD555, 0x8A99, 0xD556, 0x8A9A, 0xD557, 0x8A9B, 0xD558, 0x8A9C, - 0xD559, 0x8A9D, 0xD55A, 0x8A9E, 0xD55B, 0x8A9F, 0xD55C, 0x8AA0, - 0xD55D, 0x8AA1, 0xD55E, 0x8AA2, 0xD55F, 0x8AA3, 0xD560, 0x8AA4, - 0xD561, 0x8AA5, 0xD562, 0x8AA6, 0xD563, 0x8AA7, 0xD564, 0x8AA8, - 0xD565, 0x8AA9, 0xD566, 0x8AAA, 0xD567, 0x8AAB, 0xD568, 0x8AAC, - 0xD569, 0x8AAD, 0xD56A, 0x8AAE, 0xD56B, 0x8AAF, 0xD56C, 0x8AB0, - 0xD56D, 0x8AB1, 0xD56E, 0x8AB2, 0xD56F, 0x8AB3, 0xD570, 0x8AB4, - 0xD571, 0x8AB5, 0xD572, 0x8AB6, 0xD573, 0x8AB7, 0xD574, 0x8AB8, - 0xD575, 0x8AB9, 0xD576, 0x8ABA, 0xD577, 0x8ABB, 0xD578, 0x8ABC, - 0xD579, 0x8ABD, 0xD57A, 0x8ABE, 0xD57B, 0x8ABF, 0xD57C, 0x8AC0, - 0xD57D, 0x8AC1, 0xD57E, 0x8AC2, 0xD580, 0x8AC3, 0xD581, 0x8AC4, - 0xD582, 0x8AC5, 0xD583, 0x8AC6, 0xD584, 0x8AC7, 0xD585, 0x8AC8, - 0xD586, 0x8AC9, 0xD587, 0x8ACA, 0xD588, 0x8ACB, 0xD589, 0x8ACC, - 0xD58A, 0x8ACD, 0xD58B, 0x8ACE, 0xD58C, 0x8ACF, 0xD58D, 0x8AD0, - 0xD58E, 0x8AD1, 0xD58F, 0x8AD2, 0xD590, 0x8AD3, 0xD591, 0x8AD4, - 0xD592, 0x8AD5, 0xD593, 0x8AD6, 0xD594, 0x8AD7, 0xD595, 0x8AD8, - 0xD596, 0x8AD9, 0xD597, 0x8ADA, 0xD598, 0x8ADB, 0xD599, 0x8ADC, - 0xD59A, 0x8ADD, 0xD59B, 0x8ADE, 0xD59C, 0x8ADF, 0xD59D, 0x8AE0, - 0xD59E, 0x8AE1, 0xD59F, 0x8AE2, 0xD5A0, 0x8AE3, 0xD5A1, 0x94E1, - 0xD5A2, 0x95F8, 0xD5A3, 0x7728, 0xD5A4, 0x6805, 0xD5A5, 0x69A8, - 0xD5A6, 0x548B, 0xD5A7, 0x4E4D, 0xD5A8, 0x70B8, 0xD5A9, 0x8BC8, - 0xD5AA, 0x6458, 0xD5AB, 0x658B, 0xD5AC, 0x5B85, 0xD5AD, 0x7A84, - 0xD5AE, 0x503A, 0xD5AF, 0x5BE8, 0xD5B0, 0x77BB, 0xD5B1, 0x6BE1, - 0xD5B2, 0x8A79, 0xD5B3, 0x7C98, 0xD5B4, 0x6CBE, 0xD5B5, 0x76CF, - 0xD5B6, 0x65A9, 0xD5B7, 0x8F97, 0xD5B8, 0x5D2D, 0xD5B9, 0x5C55, - 0xD5BA, 0x8638, 0xD5BB, 0x6808, 0xD5BC, 0x5360, 0xD5BD, 0x6218, - 0xD5BE, 0x7AD9, 0xD5BF, 0x6E5B, 0xD5C0, 0x7EFD, 0xD5C1, 0x6A1F, - 0xD5C2, 0x7AE0, 0xD5C3, 0x5F70, 0xD5C4, 0x6F33, 0xD5C5, 0x5F20, - 0xD5C6, 0x638C, 0xD5C7, 0x6DA8, 0xD5C8, 0x6756, 0xD5C9, 0x4E08, - 0xD5CA, 0x5E10, 0xD5CB, 0x8D26, 0xD5CC, 0x4ED7, 0xD5CD, 0x80C0, - 0xD5CE, 0x7634, 0xD5CF, 0x969C, 0xD5D0, 0x62DB, 0xD5D1, 0x662D, - 0xD5D2, 0x627E, 0xD5D3, 0x6CBC, 0xD5D4, 0x8D75, 0xD5D5, 0x7167, - 0xD5D6, 0x7F69, 0xD5D7, 0x5146, 0xD5D8, 0x8087, 0xD5D9, 0x53EC, - 0xD5DA, 0x906E, 0xD5DB, 0x6298, 0xD5DC, 0x54F2, 0xD5DD, 0x86F0, - 0xD5DE, 0x8F99, 0xD5DF, 0x8005, 0xD5E0, 0x9517, 0xD5E1, 0x8517, - 0xD5E2, 0x8FD9, 0xD5E3, 0x6D59, 0xD5E4, 0x73CD, 0xD5E5, 0x659F, - 0xD5E6, 0x771F, 0xD5E7, 0x7504, 0xD5E8, 0x7827, 0xD5E9, 0x81FB, - 0xD5EA, 0x8D1E, 0xD5EB, 0x9488, 0xD5EC, 0x4FA6, 0xD5ED, 0x6795, - 0xD5EE, 0x75B9, 0xD5EF, 0x8BCA, 0xD5F0, 0x9707, 0xD5F1, 0x632F, - 0xD5F2, 0x9547, 0xD5F3, 0x9635, 0xD5F4, 0x84B8, 0xD5F5, 0x6323, - 0xD5F6, 0x7741, 0xD5F7, 0x5F81, 0xD5F8, 0x72F0, 0xD5F9, 0x4E89, - 0xD5FA, 0x6014, 0xD5FB, 0x6574, 0xD5FC, 0x62EF, 0xD5FD, 0x6B63, - 0xD5FE, 0x653F, 0xD640, 0x8AE4, 0xD641, 0x8AE5, 0xD642, 0x8AE6, - 0xD643, 0x8AE7, 0xD644, 0x8AE8, 0xD645, 0x8AE9, 0xD646, 0x8AEA, - 0xD647, 0x8AEB, 0xD648, 0x8AEC, 0xD649, 0x8AED, 0xD64A, 0x8AEE, - 0xD64B, 0x8AEF, 0xD64C, 0x8AF0, 0xD64D, 0x8AF1, 0xD64E, 0x8AF2, - 0xD64F, 0x8AF3, 0xD650, 0x8AF4, 0xD651, 0x8AF5, 0xD652, 0x8AF6, - 0xD653, 0x8AF7, 0xD654, 0x8AF8, 0xD655, 0x8AF9, 0xD656, 0x8AFA, - 0xD657, 0x8AFB, 0xD658, 0x8AFC, 0xD659, 0x8AFD, 0xD65A, 0x8AFE, - 0xD65B, 0x8AFF, 0xD65C, 0x8B00, 0xD65D, 0x8B01, 0xD65E, 0x8B02, - 0xD65F, 0x8B03, 0xD660, 0x8B04, 0xD661, 0x8B05, 0xD662, 0x8B06, - 0xD663, 0x8B08, 0xD664, 0x8B09, 0xD665, 0x8B0A, 0xD666, 0x8B0B, - 0xD667, 0x8B0C, 0xD668, 0x8B0D, 0xD669, 0x8B0E, 0xD66A, 0x8B0F, - 0xD66B, 0x8B10, 0xD66C, 0x8B11, 0xD66D, 0x8B12, 0xD66E, 0x8B13, - 0xD66F, 0x8B14, 0xD670, 0x8B15, 0xD671, 0x8B16, 0xD672, 0x8B17, - 0xD673, 0x8B18, 0xD674, 0x8B19, 0xD675, 0x8B1A, 0xD676, 0x8B1B, - 0xD677, 0x8B1C, 0xD678, 0x8B1D, 0xD679, 0x8B1E, 0xD67A, 0x8B1F, - 0xD67B, 0x8B20, 0xD67C, 0x8B21, 0xD67D, 0x8B22, 0xD67E, 0x8B23, - 0xD680, 0x8B24, 0xD681, 0x8B25, 0xD682, 0x8B27, 0xD683, 0x8B28, - 0xD684, 0x8B29, 0xD685, 0x8B2A, 0xD686, 0x8B2B, 0xD687, 0x8B2C, - 0xD688, 0x8B2D, 0xD689, 0x8B2E, 0xD68A, 0x8B2F, 0xD68B, 0x8B30, - 0xD68C, 0x8B31, 0xD68D, 0x8B32, 0xD68E, 0x8B33, 0xD68F, 0x8B34, - 0xD690, 0x8B35, 0xD691, 0x8B36, 0xD692, 0x8B37, 0xD693, 0x8B38, - 0xD694, 0x8B39, 0xD695, 0x8B3A, 0xD696, 0x8B3B, 0xD697, 0x8B3C, - 0xD698, 0x8B3D, 0xD699, 0x8B3E, 0xD69A, 0x8B3F, 0xD69B, 0x8B40, - 0xD69C, 0x8B41, 0xD69D, 0x8B42, 0xD69E, 0x8B43, 0xD69F, 0x8B44, - 0xD6A0, 0x8B45, 0xD6A1, 0x5E27, 0xD6A2, 0x75C7, 0xD6A3, 0x90D1, - 0xD6A4, 0x8BC1, 0xD6A5, 0x829D, 0xD6A6, 0x679D, 0xD6A7, 0x652F, - 0xD6A8, 0x5431, 0xD6A9, 0x8718, 0xD6AA, 0x77E5, 0xD6AB, 0x80A2, - 0xD6AC, 0x8102, 0xD6AD, 0x6C41, 0xD6AE, 0x4E4B, 0xD6AF, 0x7EC7, - 0xD6B0, 0x804C, 0xD6B1, 0x76F4, 0xD6B2, 0x690D, 0xD6B3, 0x6B96, - 0xD6B4, 0x6267, 0xD6B5, 0x503C, 0xD6B6, 0x4F84, 0xD6B7, 0x5740, - 0xD6B8, 0x6307, 0xD6B9, 0x6B62, 0xD6BA, 0x8DBE, 0xD6BB, 0x53EA, - 0xD6BC, 0x65E8, 0xD6BD, 0x7EB8, 0xD6BE, 0x5FD7, 0xD6BF, 0x631A, - 0xD6C0, 0x63B7, 0xD6C1, 0x81F3, 0xD6C2, 0x81F4, 0xD6C3, 0x7F6E, - 0xD6C4, 0x5E1C, 0xD6C5, 0x5CD9, 0xD6C6, 0x5236, 0xD6C7, 0x667A, - 0xD6C8, 0x79E9, 0xD6C9, 0x7A1A, 0xD6CA, 0x8D28, 0xD6CB, 0x7099, - 0xD6CC, 0x75D4, 0xD6CD, 0x6EDE, 0xD6CE, 0x6CBB, 0xD6CF, 0x7A92, - 0xD6D0, 0x4E2D, 0xD6D1, 0x76C5, 0xD6D2, 0x5FE0, 0xD6D3, 0x949F, - 0xD6D4, 0x8877, 0xD6D5, 0x7EC8, 0xD6D6, 0x79CD, 0xD6D7, 0x80BF, - 0xD6D8, 0x91CD, 0xD6D9, 0x4EF2, 0xD6DA, 0x4F17, 0xD6DB, 0x821F, - 0xD6DC, 0x5468, 0xD6DD, 0x5DDE, 0xD6DE, 0x6D32, 0xD6DF, 0x8BCC, - 0xD6E0, 0x7CA5, 0xD6E1, 0x8F74, 0xD6E2, 0x8098, 0xD6E3, 0x5E1A, - 0xD6E4, 0x5492, 0xD6E5, 0x76B1, 0xD6E6, 0x5B99, 0xD6E7, 0x663C, - 0xD6E8, 0x9AA4, 0xD6E9, 0x73E0, 0xD6EA, 0x682A, 0xD6EB, 0x86DB, - 0xD6EC, 0x6731, 0xD6ED, 0x732A, 0xD6EE, 0x8BF8, 0xD6EF, 0x8BDB, - 0xD6F0, 0x9010, 0xD6F1, 0x7AF9, 0xD6F2, 0x70DB, 0xD6F3, 0x716E, - 0xD6F4, 0x62C4, 0xD6F5, 0x77A9, 0xD6F6, 0x5631, 0xD6F7, 0x4E3B, - 0xD6F8, 0x8457, 0xD6F9, 0x67F1, 0xD6FA, 0x52A9, 0xD6FB, 0x86C0, - 0xD6FC, 0x8D2E, 0xD6FD, 0x94F8, 0xD6FE, 0x7B51, 0xD740, 0x8B46, - 0xD741, 0x8B47, 0xD742, 0x8B48, 0xD743, 0x8B49, 0xD744, 0x8B4A, - 0xD745, 0x8B4B, 0xD746, 0x8B4C, 0xD747, 0x8B4D, 0xD748, 0x8B4E, - 0xD749, 0x8B4F, 0xD74A, 0x8B50, 0xD74B, 0x8B51, 0xD74C, 0x8B52, - 0xD74D, 0x8B53, 0xD74E, 0x8B54, 0xD74F, 0x8B55, 0xD750, 0x8B56, - 0xD751, 0x8B57, 0xD752, 0x8B58, 0xD753, 0x8B59, 0xD754, 0x8B5A, - 0xD755, 0x8B5B, 0xD756, 0x8B5C, 0xD757, 0x8B5D, 0xD758, 0x8B5E, - 0xD759, 0x8B5F, 0xD75A, 0x8B60, 0xD75B, 0x8B61, 0xD75C, 0x8B62, - 0xD75D, 0x8B63, 0xD75E, 0x8B64, 0xD75F, 0x8B65, 0xD760, 0x8B67, - 0xD761, 0x8B68, 0xD762, 0x8B69, 0xD763, 0x8B6A, 0xD764, 0x8B6B, - 0xD765, 0x8B6D, 0xD766, 0x8B6E, 0xD767, 0x8B6F, 0xD768, 0x8B70, - 0xD769, 0x8B71, 0xD76A, 0x8B72, 0xD76B, 0x8B73, 0xD76C, 0x8B74, - 0xD76D, 0x8B75, 0xD76E, 0x8B76, 0xD76F, 0x8B77, 0xD770, 0x8B78, - 0xD771, 0x8B79, 0xD772, 0x8B7A, 0xD773, 0x8B7B, 0xD774, 0x8B7C, - 0xD775, 0x8B7D, 0xD776, 0x8B7E, 0xD777, 0x8B7F, 0xD778, 0x8B80, - 0xD779, 0x8B81, 0xD77A, 0x8B82, 0xD77B, 0x8B83, 0xD77C, 0x8B84, - 0xD77D, 0x8B85, 0xD77E, 0x8B86, 0xD780, 0x8B87, 0xD781, 0x8B88, - 0xD782, 0x8B89, 0xD783, 0x8B8A, 0xD784, 0x8B8B, 0xD785, 0x8B8C, - 0xD786, 0x8B8D, 0xD787, 0x8B8E, 0xD788, 0x8B8F, 0xD789, 0x8B90, - 0xD78A, 0x8B91, 0xD78B, 0x8B92, 0xD78C, 0x8B93, 0xD78D, 0x8B94, - 0xD78E, 0x8B95, 0xD78F, 0x8B96, 0xD790, 0x8B97, 0xD791, 0x8B98, - 0xD792, 0x8B99, 0xD793, 0x8B9A, 0xD794, 0x8B9B, 0xD795, 0x8B9C, - 0xD796, 0x8B9D, 0xD797, 0x8B9E, 0xD798, 0x8B9F, 0xD799, 0x8BAC, - 0xD79A, 0x8BB1, 0xD79B, 0x8BBB, 0xD79C, 0x8BC7, 0xD79D, 0x8BD0, - 0xD79E, 0x8BEA, 0xD79F, 0x8C09, 0xD7A0, 0x8C1E, 0xD7A1, 0x4F4F, - 0xD7A2, 0x6CE8, 0xD7A3, 0x795D, 0xD7A4, 0x9A7B, 0xD7A5, 0x6293, - 0xD7A6, 0x722A, 0xD7A7, 0x62FD, 0xD7A8, 0x4E13, 0xD7A9, 0x7816, - 0xD7AA, 0x8F6C, 0xD7AB, 0x64B0, 0xD7AC, 0x8D5A, 0xD7AD, 0x7BC6, - 0xD7AE, 0x6869, 0xD7AF, 0x5E84, 0xD7B0, 0x88C5, 0xD7B1, 0x5986, - 0xD7B2, 0x649E, 0xD7B3, 0x58EE, 0xD7B4, 0x72B6, 0xD7B5, 0x690E, - 0xD7B6, 0x9525, 0xD7B7, 0x8FFD, 0xD7B8, 0x8D58, 0xD7B9, 0x5760, - 0xD7BA, 0x7F00, 0xD7BB, 0x8C06, 0xD7BC, 0x51C6, 0xD7BD, 0x6349, - 0xD7BE, 0x62D9, 0xD7BF, 0x5353, 0xD7C0, 0x684C, 0xD7C1, 0x7422, - 0xD7C2, 0x8301, 0xD7C3, 0x914C, 0xD7C4, 0x5544, 0xD7C5, 0x7740, - 0xD7C6, 0x707C, 0xD7C7, 0x6D4A, 0xD7C8, 0x5179, 0xD7C9, 0x54A8, - 0xD7CA, 0x8D44, 0xD7CB, 0x59FF, 0xD7CC, 0x6ECB, 0xD7CD, 0x6DC4, - 0xD7CE, 0x5B5C, 0xD7CF, 0x7D2B, 0xD7D0, 0x4ED4, 0xD7D1, 0x7C7D, - 0xD7D2, 0x6ED3, 0xD7D3, 0x5B50, 0xD7D4, 0x81EA, 0xD7D5, 0x6E0D, - 0xD7D6, 0x5B57, 0xD7D7, 0x9B03, 0xD7D8, 0x68D5, 0xD7D9, 0x8E2A, - 0xD7DA, 0x5B97, 0xD7DB, 0x7EFC, 0xD7DC, 0x603B, 0xD7DD, 0x7EB5, - 0xD7DE, 0x90B9, 0xD7DF, 0x8D70, 0xD7E0, 0x594F, 0xD7E1, 0x63CD, - 0xD7E2, 0x79DF, 0xD7E3, 0x8DB3, 0xD7E4, 0x5352, 0xD7E5, 0x65CF, - 0xD7E6, 0x7956, 0xD7E7, 0x8BC5, 0xD7E8, 0x963B, 0xD7E9, 0x7EC4, - 0xD7EA, 0x94BB, 0xD7EB, 0x7E82, 0xD7EC, 0x5634, 0xD7ED, 0x9189, - 0xD7EE, 0x6700, 0xD7EF, 0x7F6A, 0xD7F0, 0x5C0A, 0xD7F1, 0x9075, - 0xD7F2, 0x6628, 0xD7F3, 0x5DE6, 0xD7F4, 0x4F50, 0xD7F5, 0x67DE, - 0xD7F6, 0x505A, 0xD7F7, 0x4F5C, 0xD7F8, 0x5750, 0xD7F9, 0x5EA7, - 0xD840, 0x8C38, 0xD841, 0x8C39, 0xD842, 0x8C3A, 0xD843, 0x8C3B, - 0xD844, 0x8C3C, 0xD845, 0x8C3D, 0xD846, 0x8C3E, 0xD847, 0x8C3F, - 0xD848, 0x8C40, 0xD849, 0x8C42, 0xD84A, 0x8C43, 0xD84B, 0x8C44, - 0xD84C, 0x8C45, 0xD84D, 0x8C48, 0xD84E, 0x8C4A, 0xD84F, 0x8C4B, - 0xD850, 0x8C4D, 0xD851, 0x8C4E, 0xD852, 0x8C4F, 0xD853, 0x8C50, - 0xD854, 0x8C51, 0xD855, 0x8C52, 0xD856, 0x8C53, 0xD857, 0x8C54, - 0xD858, 0x8C56, 0xD859, 0x8C57, 0xD85A, 0x8C58, 0xD85B, 0x8C59, - 0xD85C, 0x8C5B, 0xD85D, 0x8C5C, 0xD85E, 0x8C5D, 0xD85F, 0x8C5E, - 0xD860, 0x8C5F, 0xD861, 0x8C60, 0xD862, 0x8C63, 0xD863, 0x8C64, - 0xD864, 0x8C65, 0xD865, 0x8C66, 0xD866, 0x8C67, 0xD867, 0x8C68, - 0xD868, 0x8C69, 0xD869, 0x8C6C, 0xD86A, 0x8C6D, 0xD86B, 0x8C6E, - 0xD86C, 0x8C6F, 0xD86D, 0x8C70, 0xD86E, 0x8C71, 0xD86F, 0x8C72, - 0xD870, 0x8C74, 0xD871, 0x8C75, 0xD872, 0x8C76, 0xD873, 0x8C77, - 0xD874, 0x8C7B, 0xD875, 0x8C7C, 0xD876, 0x8C7D, 0xD877, 0x8C7E, - 0xD878, 0x8C7F, 0xD879, 0x8C80, 0xD87A, 0x8C81, 0xD87B, 0x8C83, - 0xD87C, 0x8C84, 0xD87D, 0x8C86, 0xD87E, 0x8C87, 0xD880, 0x8C88, - 0xD881, 0x8C8B, 0xD882, 0x8C8D, 0xD883, 0x8C8E, 0xD884, 0x8C8F, - 0xD885, 0x8C90, 0xD886, 0x8C91, 0xD887, 0x8C92, 0xD888, 0x8C93, - 0xD889, 0x8C95, 0xD88A, 0x8C96, 0xD88B, 0x8C97, 0xD88C, 0x8C99, - 0xD88D, 0x8C9A, 0xD88E, 0x8C9B, 0xD88F, 0x8C9C, 0xD890, 0x8C9D, - 0xD891, 0x8C9E, 0xD892, 0x8C9F, 0xD893, 0x8CA0, 0xD894, 0x8CA1, - 0xD895, 0x8CA2, 0xD896, 0x8CA3, 0xD897, 0x8CA4, 0xD898, 0x8CA5, - 0xD899, 0x8CA6, 0xD89A, 0x8CA7, 0xD89B, 0x8CA8, 0xD89C, 0x8CA9, - 0xD89D, 0x8CAA, 0xD89E, 0x8CAB, 0xD89F, 0x8CAC, 0xD8A0, 0x8CAD, - 0xD8A1, 0x4E8D, 0xD8A2, 0x4E0C, 0xD8A3, 0x5140, 0xD8A4, 0x4E10, - 0xD8A5, 0x5EFF, 0xD8A6, 0x5345, 0xD8A7, 0x4E15, 0xD8A8, 0x4E98, - 0xD8A9, 0x4E1E, 0xD8AA, 0x9B32, 0xD8AB, 0x5B6C, 0xD8AC, 0x5669, - 0xD8AD, 0x4E28, 0xD8AE, 0x79BA, 0xD8AF, 0x4E3F, 0xD8B0, 0x5315, - 0xD8B1, 0x4E47, 0xD8B2, 0x592D, 0xD8B3, 0x723B, 0xD8B4, 0x536E, - 0xD8B5, 0x6C10, 0xD8B6, 0x56DF, 0xD8B7, 0x80E4, 0xD8B8, 0x9997, - 0xD8B9, 0x6BD3, 0xD8BA, 0x777E, 0xD8BB, 0x9F17, 0xD8BC, 0x4E36, - 0xD8BD, 0x4E9F, 0xD8BE, 0x9F10, 0xD8BF, 0x4E5C, 0xD8C0, 0x4E69, - 0xD8C1, 0x4E93, 0xD8C2, 0x8288, 0xD8C3, 0x5B5B, 0xD8C4, 0x556C, - 0xD8C5, 0x560F, 0xD8C6, 0x4EC4, 0xD8C7, 0x538D, 0xD8C8, 0x539D, - 0xD8C9, 0x53A3, 0xD8CA, 0x53A5, 0xD8CB, 0x53AE, 0xD8CC, 0x9765, - 0xD8CD, 0x8D5D, 0xD8CE, 0x531A, 0xD8CF, 0x53F5, 0xD8D0, 0x5326, - 0xD8D1, 0x532E, 0xD8D2, 0x533E, 0xD8D3, 0x8D5C, 0xD8D4, 0x5366, - 0xD8D5, 0x5363, 0xD8D6, 0x5202, 0xD8D7, 0x5208, 0xD8D8, 0x520E, - 0xD8D9, 0x522D, 0xD8DA, 0x5233, 0xD8DB, 0x523F, 0xD8DC, 0x5240, - 0xD8DD, 0x524C, 0xD8DE, 0x525E, 0xD8DF, 0x5261, 0xD8E0, 0x525C, - 0xD8E1, 0x84AF, 0xD8E2, 0x527D, 0xD8E3, 0x5282, 0xD8E4, 0x5281, - 0xD8E5, 0x5290, 0xD8E6, 0x5293, 0xD8E7, 0x5182, 0xD8E8, 0x7F54, - 0xD8E9, 0x4EBB, 0xD8EA, 0x4EC3, 0xD8EB, 0x4EC9, 0xD8EC, 0x4EC2, - 0xD8ED, 0x4EE8, 0xD8EE, 0x4EE1, 0xD8EF, 0x4EEB, 0xD8F0, 0x4EDE, - 0xD8F1, 0x4F1B, 0xD8F2, 0x4EF3, 0xD8F3, 0x4F22, 0xD8F4, 0x4F64, - 0xD8F5, 0x4EF5, 0xD8F6, 0x4F25, 0xD8F7, 0x4F27, 0xD8F8, 0x4F09, - 0xD8F9, 0x4F2B, 0xD8FA, 0x4F5E, 0xD8FB, 0x4F67, 0xD8FC, 0x6538, - 0xD8FD, 0x4F5A, 0xD8FE, 0x4F5D, 0xD940, 0x8CAE, 0xD941, 0x8CAF, - 0xD942, 0x8CB0, 0xD943, 0x8CB1, 0xD944, 0x8CB2, 0xD945, 0x8CB3, - 0xD946, 0x8CB4, 0xD947, 0x8CB5, 0xD948, 0x8CB6, 0xD949, 0x8CB7, - 0xD94A, 0x8CB8, 0xD94B, 0x8CB9, 0xD94C, 0x8CBA, 0xD94D, 0x8CBB, - 0xD94E, 0x8CBC, 0xD94F, 0x8CBD, 0xD950, 0x8CBE, 0xD951, 0x8CBF, - 0xD952, 0x8CC0, 0xD953, 0x8CC1, 0xD954, 0x8CC2, 0xD955, 0x8CC3, - 0xD956, 0x8CC4, 0xD957, 0x8CC5, 0xD958, 0x8CC6, 0xD959, 0x8CC7, - 0xD95A, 0x8CC8, 0xD95B, 0x8CC9, 0xD95C, 0x8CCA, 0xD95D, 0x8CCB, - 0xD95E, 0x8CCC, 0xD95F, 0x8CCD, 0xD960, 0x8CCE, 0xD961, 0x8CCF, - 0xD962, 0x8CD0, 0xD963, 0x8CD1, 0xD964, 0x8CD2, 0xD965, 0x8CD3, - 0xD966, 0x8CD4, 0xD967, 0x8CD5, 0xD968, 0x8CD6, 0xD969, 0x8CD7, - 0xD96A, 0x8CD8, 0xD96B, 0x8CD9, 0xD96C, 0x8CDA, 0xD96D, 0x8CDB, - 0xD96E, 0x8CDC, 0xD96F, 0x8CDD, 0xD970, 0x8CDE, 0xD971, 0x8CDF, - 0xD972, 0x8CE0, 0xD973, 0x8CE1, 0xD974, 0x8CE2, 0xD975, 0x8CE3, - 0xD976, 0x8CE4, 0xD977, 0x8CE5, 0xD978, 0x8CE6, 0xD979, 0x8CE7, - 0xD97A, 0x8CE8, 0xD97B, 0x8CE9, 0xD97C, 0x8CEA, 0xD97D, 0x8CEB, - 0xD97E, 0x8CEC, 0xD980, 0x8CED, 0xD981, 0x8CEE, 0xD982, 0x8CEF, - 0xD983, 0x8CF0, 0xD984, 0x8CF1, 0xD985, 0x8CF2, 0xD986, 0x8CF3, - 0xD987, 0x8CF4, 0xD988, 0x8CF5, 0xD989, 0x8CF6, 0xD98A, 0x8CF7, - 0xD98B, 0x8CF8, 0xD98C, 0x8CF9, 0xD98D, 0x8CFA, 0xD98E, 0x8CFB, - 0xD98F, 0x8CFC, 0xD990, 0x8CFD, 0xD991, 0x8CFE, 0xD992, 0x8CFF, - 0xD993, 0x8D00, 0xD994, 0x8D01, 0xD995, 0x8D02, 0xD996, 0x8D03, - 0xD997, 0x8D04, 0xD998, 0x8D05, 0xD999, 0x8D06, 0xD99A, 0x8D07, - 0xD99B, 0x8D08, 0xD99C, 0x8D09, 0xD99D, 0x8D0A, 0xD99E, 0x8D0B, - 0xD99F, 0x8D0C, 0xD9A0, 0x8D0D, 0xD9A1, 0x4F5F, 0xD9A2, 0x4F57, - 0xD9A3, 0x4F32, 0xD9A4, 0x4F3D, 0xD9A5, 0x4F76, 0xD9A6, 0x4F74, - 0xD9A7, 0x4F91, 0xD9A8, 0x4F89, 0xD9A9, 0x4F83, 0xD9AA, 0x4F8F, - 0xD9AB, 0x4F7E, 0xD9AC, 0x4F7B, 0xD9AD, 0x4FAA, 0xD9AE, 0x4F7C, - 0xD9AF, 0x4FAC, 0xD9B0, 0x4F94, 0xD9B1, 0x4FE6, 0xD9B2, 0x4FE8, - 0xD9B3, 0x4FEA, 0xD9B4, 0x4FC5, 0xD9B5, 0x4FDA, 0xD9B6, 0x4FE3, - 0xD9B7, 0x4FDC, 0xD9B8, 0x4FD1, 0xD9B9, 0x4FDF, 0xD9BA, 0x4FF8, - 0xD9BB, 0x5029, 0xD9BC, 0x504C, 0xD9BD, 0x4FF3, 0xD9BE, 0x502C, - 0xD9BF, 0x500F, 0xD9C0, 0x502E, 0xD9C1, 0x502D, 0xD9C2, 0x4FFE, - 0xD9C3, 0x501C, 0xD9C4, 0x500C, 0xD9C5, 0x5025, 0xD9C6, 0x5028, - 0xD9C7, 0x507E, 0xD9C8, 0x5043, 0xD9C9, 0x5055, 0xD9CA, 0x5048, - 0xD9CB, 0x504E, 0xD9CC, 0x506C, 0xD9CD, 0x507B, 0xD9CE, 0x50A5, - 0xD9CF, 0x50A7, 0xD9D0, 0x50A9, 0xD9D1, 0x50BA, 0xD9D2, 0x50D6, - 0xD9D3, 0x5106, 0xD9D4, 0x50ED, 0xD9D5, 0x50EC, 0xD9D6, 0x50E6, - 0xD9D7, 0x50EE, 0xD9D8, 0x5107, 0xD9D9, 0x510B, 0xD9DA, 0x4EDD, - 0xD9DB, 0x6C3D, 0xD9DC, 0x4F58, 0xD9DD, 0x4F65, 0xD9DE, 0x4FCE, - 0xD9DF, 0x9FA0, 0xD9E0, 0x6C46, 0xD9E1, 0x7C74, 0xD9E2, 0x516E, - 0xD9E3, 0x5DFD, 0xD9E4, 0x9EC9, 0xD9E5, 0x9998, 0xD9E6, 0x5181, - 0xD9E7, 0x5914, 0xD9E8, 0x52F9, 0xD9E9, 0x530D, 0xD9EA, 0x8A07, - 0xD9EB, 0x5310, 0xD9EC, 0x51EB, 0xD9ED, 0x5919, 0xD9EE, 0x5155, - 0xD9EF, 0x4EA0, 0xD9F0, 0x5156, 0xD9F1, 0x4EB3, 0xD9F2, 0x886E, - 0xD9F3, 0x88A4, 0xD9F4, 0x4EB5, 0xD9F5, 0x8114, 0xD9F6, 0x88D2, - 0xD9F7, 0x7980, 0xD9F8, 0x5B34, 0xD9F9, 0x8803, 0xD9FA, 0x7FB8, - 0xD9FB, 0x51AB, 0xD9FC, 0x51B1, 0xD9FD, 0x51BD, 0xD9FE, 0x51BC, - 0xDA40, 0x8D0E, 0xDA41, 0x8D0F, 0xDA42, 0x8D10, 0xDA43, 0x8D11, - 0xDA44, 0x8D12, 0xDA45, 0x8D13, 0xDA46, 0x8D14, 0xDA47, 0x8D15, - 0xDA48, 0x8D16, 0xDA49, 0x8D17, 0xDA4A, 0x8D18, 0xDA4B, 0x8D19, - 0xDA4C, 0x8D1A, 0xDA4D, 0x8D1B, 0xDA4E, 0x8D1C, 0xDA4F, 0x8D20, - 0xDA50, 0x8D51, 0xDA51, 0x8D52, 0xDA52, 0x8D57, 0xDA53, 0x8D5F, - 0xDA54, 0x8D65, 0xDA55, 0x8D68, 0xDA56, 0x8D69, 0xDA57, 0x8D6A, - 0xDA58, 0x8D6C, 0xDA59, 0x8D6E, 0xDA5A, 0x8D6F, 0xDA5B, 0x8D71, - 0xDA5C, 0x8D72, 0xDA5D, 0x8D78, 0xDA5E, 0x8D79, 0xDA5F, 0x8D7A, - 0xDA60, 0x8D7B, 0xDA61, 0x8D7C, 0xDA62, 0x8D7D, 0xDA63, 0x8D7E, - 0xDA64, 0x8D7F, 0xDA65, 0x8D80, 0xDA66, 0x8D82, 0xDA67, 0x8D83, - 0xDA68, 0x8D86, 0xDA69, 0x8D87, 0xDA6A, 0x8D88, 0xDA6B, 0x8D89, - 0xDA6C, 0x8D8C, 0xDA6D, 0x8D8D, 0xDA6E, 0x8D8E, 0xDA6F, 0x8D8F, - 0xDA70, 0x8D90, 0xDA71, 0x8D92, 0xDA72, 0x8D93, 0xDA73, 0x8D95, - 0xDA74, 0x8D96, 0xDA75, 0x8D97, 0xDA76, 0x8D98, 0xDA77, 0x8D99, - 0xDA78, 0x8D9A, 0xDA79, 0x8D9B, 0xDA7A, 0x8D9C, 0xDA7B, 0x8D9D, - 0xDA7C, 0x8D9E, 0xDA7D, 0x8DA0, 0xDA7E, 0x8DA1, 0xDA80, 0x8DA2, - 0xDA81, 0x8DA4, 0xDA82, 0x8DA5, 0xDA83, 0x8DA6, 0xDA84, 0x8DA7, - 0xDA85, 0x8DA8, 0xDA86, 0x8DA9, 0xDA87, 0x8DAA, 0xDA88, 0x8DAB, - 0xDA89, 0x8DAC, 0xDA8A, 0x8DAD, 0xDA8B, 0x8DAE, 0xDA8C, 0x8DAF, - 0xDA8D, 0x8DB0, 0xDA8E, 0x8DB2, 0xDA8F, 0x8DB6, 0xDA90, 0x8DB7, - 0xDA91, 0x8DB9, 0xDA92, 0x8DBB, 0xDA93, 0x8DBD, 0xDA94, 0x8DC0, - 0xDA95, 0x8DC1, 0xDA96, 0x8DC2, 0xDA97, 0x8DC5, 0xDA98, 0x8DC7, - 0xDA99, 0x8DC8, 0xDA9A, 0x8DC9, 0xDA9B, 0x8DCA, 0xDA9C, 0x8DCD, - 0xDA9D, 0x8DD0, 0xDA9E, 0x8DD2, 0xDA9F, 0x8DD3, 0xDAA0, 0x8DD4, - 0xDAA1, 0x51C7, 0xDAA2, 0x5196, 0xDAA3, 0x51A2, 0xDAA4, 0x51A5, - 0xDAA5, 0x8BA0, 0xDAA6, 0x8BA6, 0xDAA7, 0x8BA7, 0xDAA8, 0x8BAA, - 0xDAA9, 0x8BB4, 0xDAAA, 0x8BB5, 0xDAAB, 0x8BB7, 0xDAAC, 0x8BC2, - 0xDAAD, 0x8BC3, 0xDAAE, 0x8BCB, 0xDAAF, 0x8BCF, 0xDAB0, 0x8BCE, - 0xDAB1, 0x8BD2, 0xDAB2, 0x8BD3, 0xDAB3, 0x8BD4, 0xDAB4, 0x8BD6, - 0xDAB5, 0x8BD8, 0xDAB6, 0x8BD9, 0xDAB7, 0x8BDC, 0xDAB8, 0x8BDF, - 0xDAB9, 0x8BE0, 0xDABA, 0x8BE4, 0xDABB, 0x8BE8, 0xDABC, 0x8BE9, - 0xDABD, 0x8BEE, 0xDABE, 0x8BF0, 0xDABF, 0x8BF3, 0xDAC0, 0x8BF6, - 0xDAC1, 0x8BF9, 0xDAC2, 0x8BFC, 0xDAC3, 0x8BFF, 0xDAC4, 0x8C00, - 0xDAC5, 0x8C02, 0xDAC6, 0x8C04, 0xDAC7, 0x8C07, 0xDAC8, 0x8C0C, - 0xDAC9, 0x8C0F, 0xDACA, 0x8C11, 0xDACB, 0x8C12, 0xDACC, 0x8C14, - 0xDACD, 0x8C15, 0xDACE, 0x8C16, 0xDACF, 0x8C19, 0xDAD0, 0x8C1B, - 0xDAD1, 0x8C18, 0xDAD2, 0x8C1D, 0xDAD3, 0x8C1F, 0xDAD4, 0x8C20, - 0xDAD5, 0x8C21, 0xDAD6, 0x8C25, 0xDAD7, 0x8C27, 0xDAD8, 0x8C2A, - 0xDAD9, 0x8C2B, 0xDADA, 0x8C2E, 0xDADB, 0x8C2F, 0xDADC, 0x8C32, - 0xDADD, 0x8C33, 0xDADE, 0x8C35, 0xDADF, 0x8C36, 0xDAE0, 0x5369, - 0xDAE1, 0x537A, 0xDAE2, 0x961D, 0xDAE3, 0x9622, 0xDAE4, 0x9621, - 0xDAE5, 0x9631, 0xDAE6, 0x962A, 0xDAE7, 0x963D, 0xDAE8, 0x963C, - 0xDAE9, 0x9642, 0xDAEA, 0x9649, 0xDAEB, 0x9654, 0xDAEC, 0x965F, - 0xDAED, 0x9667, 0xDAEE, 0x966C, 0xDAEF, 0x9672, 0xDAF0, 0x9674, - 0xDAF1, 0x9688, 0xDAF2, 0x968D, 0xDAF3, 0x9697, 0xDAF4, 0x96B0, - 0xDAF5, 0x9097, 0xDAF6, 0x909B, 0xDAF7, 0x909D, 0xDAF8, 0x9099, - 0xDAF9, 0x90AC, 0xDAFA, 0x90A1, 0xDAFB, 0x90B4, 0xDAFC, 0x90B3, - 0xDAFD, 0x90B6, 0xDAFE, 0x90BA, 0xDB40, 0x8DD5, 0xDB41, 0x8DD8, - 0xDB42, 0x8DD9, 0xDB43, 0x8DDC, 0xDB44, 0x8DE0, 0xDB45, 0x8DE1, - 0xDB46, 0x8DE2, 0xDB47, 0x8DE5, 0xDB48, 0x8DE6, 0xDB49, 0x8DE7, - 0xDB4A, 0x8DE9, 0xDB4B, 0x8DED, 0xDB4C, 0x8DEE, 0xDB4D, 0x8DF0, - 0xDB4E, 0x8DF1, 0xDB4F, 0x8DF2, 0xDB50, 0x8DF4, 0xDB51, 0x8DF6, - 0xDB52, 0x8DFC, 0xDB53, 0x8DFE, 0xDB54, 0x8DFF, 0xDB55, 0x8E00, - 0xDB56, 0x8E01, 0xDB57, 0x8E02, 0xDB58, 0x8E03, 0xDB59, 0x8E04, - 0xDB5A, 0x8E06, 0xDB5B, 0x8E07, 0xDB5C, 0x8E08, 0xDB5D, 0x8E0B, - 0xDB5E, 0x8E0D, 0xDB5F, 0x8E0E, 0xDB60, 0x8E10, 0xDB61, 0x8E11, - 0xDB62, 0x8E12, 0xDB63, 0x8E13, 0xDB64, 0x8E15, 0xDB65, 0x8E16, - 0xDB66, 0x8E17, 0xDB67, 0x8E18, 0xDB68, 0x8E19, 0xDB69, 0x8E1A, - 0xDB6A, 0x8E1B, 0xDB6B, 0x8E1C, 0xDB6C, 0x8E20, 0xDB6D, 0x8E21, - 0xDB6E, 0x8E24, 0xDB6F, 0x8E25, 0xDB70, 0x8E26, 0xDB71, 0x8E27, - 0xDB72, 0x8E28, 0xDB73, 0x8E2B, 0xDB74, 0x8E2D, 0xDB75, 0x8E30, - 0xDB76, 0x8E32, 0xDB77, 0x8E33, 0xDB78, 0x8E34, 0xDB79, 0x8E36, - 0xDB7A, 0x8E37, 0xDB7B, 0x8E38, 0xDB7C, 0x8E3B, 0xDB7D, 0x8E3C, - 0xDB7E, 0x8E3E, 0xDB80, 0x8E3F, 0xDB81, 0x8E43, 0xDB82, 0x8E45, - 0xDB83, 0x8E46, 0xDB84, 0x8E4C, 0xDB85, 0x8E4D, 0xDB86, 0x8E4E, - 0xDB87, 0x8E4F, 0xDB88, 0x8E50, 0xDB89, 0x8E53, 0xDB8A, 0x8E54, - 0xDB8B, 0x8E55, 0xDB8C, 0x8E56, 0xDB8D, 0x8E57, 0xDB8E, 0x8E58, - 0xDB8F, 0x8E5A, 0xDB90, 0x8E5B, 0xDB91, 0x8E5C, 0xDB92, 0x8E5D, - 0xDB93, 0x8E5E, 0xDB94, 0x8E5F, 0xDB95, 0x8E60, 0xDB96, 0x8E61, - 0xDB97, 0x8E62, 0xDB98, 0x8E63, 0xDB99, 0x8E64, 0xDB9A, 0x8E65, - 0xDB9B, 0x8E67, 0xDB9C, 0x8E68, 0xDB9D, 0x8E6A, 0xDB9E, 0x8E6B, - 0xDB9F, 0x8E6E, 0xDBA0, 0x8E71, 0xDBA1, 0x90B8, 0xDBA2, 0x90B0, - 0xDBA3, 0x90CF, 0xDBA4, 0x90C5, 0xDBA5, 0x90BE, 0xDBA6, 0x90D0, - 0xDBA7, 0x90C4, 0xDBA8, 0x90C7, 0xDBA9, 0x90D3, 0xDBAA, 0x90E6, - 0xDBAB, 0x90E2, 0xDBAC, 0x90DC, 0xDBAD, 0x90D7, 0xDBAE, 0x90DB, - 0xDBAF, 0x90EB, 0xDBB0, 0x90EF, 0xDBB1, 0x90FE, 0xDBB2, 0x9104, - 0xDBB3, 0x9122, 0xDBB4, 0x911E, 0xDBB5, 0x9123, 0xDBB6, 0x9131, - 0xDBB7, 0x912F, 0xDBB8, 0x9139, 0xDBB9, 0x9143, 0xDBBA, 0x9146, - 0xDBBB, 0x520D, 0xDBBC, 0x5942, 0xDBBD, 0x52A2, 0xDBBE, 0x52AC, - 0xDBBF, 0x52AD, 0xDBC0, 0x52BE, 0xDBC1, 0x54FF, 0xDBC2, 0x52D0, - 0xDBC3, 0x52D6, 0xDBC4, 0x52F0, 0xDBC5, 0x53DF, 0xDBC6, 0x71EE, - 0xDBC7, 0x77CD, 0xDBC8, 0x5EF4, 0xDBC9, 0x51F5, 0xDBCA, 0x51FC, - 0xDBCB, 0x9B2F, 0xDBCC, 0x53B6, 0xDBCD, 0x5F01, 0xDBCE, 0x755A, - 0xDBCF, 0x5DEF, 0xDBD0, 0x574C, 0xDBD1, 0x57A9, 0xDBD2, 0x57A1, - 0xDBD3, 0x587E, 0xDBD4, 0x58BC, 0xDBD5, 0x58C5, 0xDBD6, 0x58D1, - 0xDBD7, 0x5729, 0xDBD8, 0x572C, 0xDBD9, 0x572A, 0xDBDA, 0x5733, - 0xDBDB, 0x5739, 0xDBDC, 0x572E, 0xDBDD, 0x572F, 0xDBDE, 0x575C, - 0xDBDF, 0x573B, 0xDBE0, 0x5742, 0xDBE1, 0x5769, 0xDBE2, 0x5785, - 0xDBE3, 0x576B, 0xDBE4, 0x5786, 0xDBE5, 0x577C, 0xDBE6, 0x577B, - 0xDBE7, 0x5768, 0xDBE8, 0x576D, 0xDBE9, 0x5776, 0xDBEA, 0x5773, - 0xDBEB, 0x57AD, 0xDBEC, 0x57A4, 0xDBED, 0x578C, 0xDBEE, 0x57B2, - 0xDBEF, 0x57CF, 0xDBF0, 0x57A7, 0xDBF1, 0x57B4, 0xDBF2, 0x5793, - 0xDBF3, 0x57A0, 0xDBF4, 0x57D5, 0xDBF5, 0x57D8, 0xDBF6, 0x57DA, - 0xDBF7, 0x57D9, 0xDBF8, 0x57D2, 0xDBF9, 0x57B8, 0xDBFA, 0x57F4, - 0xDBFB, 0x57EF, 0xDBFC, 0x57F8, 0xDBFD, 0x57E4, 0xDBFE, 0x57DD, - 0xDC40, 0x8E73, 0xDC41, 0x8E75, 0xDC42, 0x8E77, 0xDC43, 0x8E78, - 0xDC44, 0x8E79, 0xDC45, 0x8E7A, 0xDC46, 0x8E7B, 0xDC47, 0x8E7D, - 0xDC48, 0x8E7E, 0xDC49, 0x8E80, 0xDC4A, 0x8E82, 0xDC4B, 0x8E83, - 0xDC4C, 0x8E84, 0xDC4D, 0x8E86, 0xDC4E, 0x8E88, 0xDC4F, 0x8E89, - 0xDC50, 0x8E8A, 0xDC51, 0x8E8B, 0xDC52, 0x8E8C, 0xDC53, 0x8E8D, - 0xDC54, 0x8E8E, 0xDC55, 0x8E91, 0xDC56, 0x8E92, 0xDC57, 0x8E93, - 0xDC58, 0x8E95, 0xDC59, 0x8E96, 0xDC5A, 0x8E97, 0xDC5B, 0x8E98, - 0xDC5C, 0x8E99, 0xDC5D, 0x8E9A, 0xDC5E, 0x8E9B, 0xDC5F, 0x8E9D, - 0xDC60, 0x8E9F, 0xDC61, 0x8EA0, 0xDC62, 0x8EA1, 0xDC63, 0x8EA2, - 0xDC64, 0x8EA3, 0xDC65, 0x8EA4, 0xDC66, 0x8EA5, 0xDC67, 0x8EA6, - 0xDC68, 0x8EA7, 0xDC69, 0x8EA8, 0xDC6A, 0x8EA9, 0xDC6B, 0x8EAA, - 0xDC6C, 0x8EAD, 0xDC6D, 0x8EAE, 0xDC6E, 0x8EB0, 0xDC6F, 0x8EB1, - 0xDC70, 0x8EB3, 0xDC71, 0x8EB4, 0xDC72, 0x8EB5, 0xDC73, 0x8EB6, - 0xDC74, 0x8EB7, 0xDC75, 0x8EB8, 0xDC76, 0x8EB9, 0xDC77, 0x8EBB, - 0xDC78, 0x8EBC, 0xDC79, 0x8EBD, 0xDC7A, 0x8EBE, 0xDC7B, 0x8EBF, - 0xDC7C, 0x8EC0, 0xDC7D, 0x8EC1, 0xDC7E, 0x8EC2, 0xDC80, 0x8EC3, - 0xDC81, 0x8EC4, 0xDC82, 0x8EC5, 0xDC83, 0x8EC6, 0xDC84, 0x8EC7, - 0xDC85, 0x8EC8, 0xDC86, 0x8EC9, 0xDC87, 0x8ECA, 0xDC88, 0x8ECB, - 0xDC89, 0x8ECC, 0xDC8A, 0x8ECD, 0xDC8B, 0x8ECF, 0xDC8C, 0x8ED0, - 0xDC8D, 0x8ED1, 0xDC8E, 0x8ED2, 0xDC8F, 0x8ED3, 0xDC90, 0x8ED4, - 0xDC91, 0x8ED5, 0xDC92, 0x8ED6, 0xDC93, 0x8ED7, 0xDC94, 0x8ED8, - 0xDC95, 0x8ED9, 0xDC96, 0x8EDA, 0xDC97, 0x8EDB, 0xDC98, 0x8EDC, - 0xDC99, 0x8EDD, 0xDC9A, 0x8EDE, 0xDC9B, 0x8EDF, 0xDC9C, 0x8EE0, - 0xDC9D, 0x8EE1, 0xDC9E, 0x8EE2, 0xDC9F, 0x8EE3, 0xDCA0, 0x8EE4, - 0xDCA1, 0x580B, 0xDCA2, 0x580D, 0xDCA3, 0x57FD, 0xDCA4, 0x57ED, - 0xDCA5, 0x5800, 0xDCA6, 0x581E, 0xDCA7, 0x5819, 0xDCA8, 0x5844, - 0xDCA9, 0x5820, 0xDCAA, 0x5865, 0xDCAB, 0x586C, 0xDCAC, 0x5881, - 0xDCAD, 0x5889, 0xDCAE, 0x589A, 0xDCAF, 0x5880, 0xDCB0, 0x99A8, - 0xDCB1, 0x9F19, 0xDCB2, 0x61FF, 0xDCB3, 0x8279, 0xDCB4, 0x827D, - 0xDCB5, 0x827F, 0xDCB6, 0x828F, 0xDCB7, 0x828A, 0xDCB8, 0x82A8, - 0xDCB9, 0x8284, 0xDCBA, 0x828E, 0xDCBB, 0x8291, 0xDCBC, 0x8297, - 0xDCBD, 0x8299, 0xDCBE, 0x82AB, 0xDCBF, 0x82B8, 0xDCC0, 0x82BE, - 0xDCC1, 0x82B0, 0xDCC2, 0x82C8, 0xDCC3, 0x82CA, 0xDCC4, 0x82E3, - 0xDCC5, 0x8298, 0xDCC6, 0x82B7, 0xDCC7, 0x82AE, 0xDCC8, 0x82CB, - 0xDCC9, 0x82CC, 0xDCCA, 0x82C1, 0xDCCB, 0x82A9, 0xDCCC, 0x82B4, - 0xDCCD, 0x82A1, 0xDCCE, 0x82AA, 0xDCCF, 0x829F, 0xDCD0, 0x82C4, - 0xDCD1, 0x82CE, 0xDCD2, 0x82A4, 0xDCD3, 0x82E1, 0xDCD4, 0x8309, - 0xDCD5, 0x82F7, 0xDCD6, 0x82E4, 0xDCD7, 0x830F, 0xDCD8, 0x8307, - 0xDCD9, 0x82DC, 0xDCDA, 0x82F4, 0xDCDB, 0x82D2, 0xDCDC, 0x82D8, - 0xDCDD, 0x830C, 0xDCDE, 0x82FB, 0xDCDF, 0x82D3, 0xDCE0, 0x8311, - 0xDCE1, 0x831A, 0xDCE2, 0x8306, 0xDCE3, 0x8314, 0xDCE4, 0x8315, - 0xDCE5, 0x82E0, 0xDCE6, 0x82D5, 0xDCE7, 0x831C, 0xDCE8, 0x8351, - 0xDCE9, 0x835B, 0xDCEA, 0x835C, 0xDCEB, 0x8308, 0xDCEC, 0x8392, - 0xDCED, 0x833C, 0xDCEE, 0x8334, 0xDCEF, 0x8331, 0xDCF0, 0x839B, - 0xDCF1, 0x835E, 0xDCF2, 0x832F, 0xDCF3, 0x834F, 0xDCF4, 0x8347, - 0xDCF5, 0x8343, 0xDCF6, 0x835F, 0xDCF7, 0x8340, 0xDCF8, 0x8317, - 0xDCF9, 0x8360, 0xDCFA, 0x832D, 0xDCFB, 0x833A, 0xDCFC, 0x8333, - 0xDCFD, 0x8366, 0xDCFE, 0x8365, 0xDD40, 0x8EE5, 0xDD41, 0x8EE6, - 0xDD42, 0x8EE7, 0xDD43, 0x8EE8, 0xDD44, 0x8EE9, 0xDD45, 0x8EEA, - 0xDD46, 0x8EEB, 0xDD47, 0x8EEC, 0xDD48, 0x8EED, 0xDD49, 0x8EEE, - 0xDD4A, 0x8EEF, 0xDD4B, 0x8EF0, 0xDD4C, 0x8EF1, 0xDD4D, 0x8EF2, - 0xDD4E, 0x8EF3, 0xDD4F, 0x8EF4, 0xDD50, 0x8EF5, 0xDD51, 0x8EF6, - 0xDD52, 0x8EF7, 0xDD53, 0x8EF8, 0xDD54, 0x8EF9, 0xDD55, 0x8EFA, - 0xDD56, 0x8EFB, 0xDD57, 0x8EFC, 0xDD58, 0x8EFD, 0xDD59, 0x8EFE, - 0xDD5A, 0x8EFF, 0xDD5B, 0x8F00, 0xDD5C, 0x8F01, 0xDD5D, 0x8F02, - 0xDD5E, 0x8F03, 0xDD5F, 0x8F04, 0xDD60, 0x8F05, 0xDD61, 0x8F06, - 0xDD62, 0x8F07, 0xDD63, 0x8F08, 0xDD64, 0x8F09, 0xDD65, 0x8F0A, - 0xDD66, 0x8F0B, 0xDD67, 0x8F0C, 0xDD68, 0x8F0D, 0xDD69, 0x8F0E, - 0xDD6A, 0x8F0F, 0xDD6B, 0x8F10, 0xDD6C, 0x8F11, 0xDD6D, 0x8F12, - 0xDD6E, 0x8F13, 0xDD6F, 0x8F14, 0xDD70, 0x8F15, 0xDD71, 0x8F16, - 0xDD72, 0x8F17, 0xDD73, 0x8F18, 0xDD74, 0x8F19, 0xDD75, 0x8F1A, - 0xDD76, 0x8F1B, 0xDD77, 0x8F1C, 0xDD78, 0x8F1D, 0xDD79, 0x8F1E, - 0xDD7A, 0x8F1F, 0xDD7B, 0x8F20, 0xDD7C, 0x8F21, 0xDD7D, 0x8F22, - 0xDD7E, 0x8F23, 0xDD80, 0x8F24, 0xDD81, 0x8F25, 0xDD82, 0x8F26, - 0xDD83, 0x8F27, 0xDD84, 0x8F28, 0xDD85, 0x8F29, 0xDD86, 0x8F2A, - 0xDD87, 0x8F2B, 0xDD88, 0x8F2C, 0xDD89, 0x8F2D, 0xDD8A, 0x8F2E, - 0xDD8B, 0x8F2F, 0xDD8C, 0x8F30, 0xDD8D, 0x8F31, 0xDD8E, 0x8F32, - 0xDD8F, 0x8F33, 0xDD90, 0x8F34, 0xDD91, 0x8F35, 0xDD92, 0x8F36, - 0xDD93, 0x8F37, 0xDD94, 0x8F38, 0xDD95, 0x8F39, 0xDD96, 0x8F3A, - 0xDD97, 0x8F3B, 0xDD98, 0x8F3C, 0xDD99, 0x8F3D, 0xDD9A, 0x8F3E, - 0xDD9B, 0x8F3F, 0xDD9C, 0x8F40, 0xDD9D, 0x8F41, 0xDD9E, 0x8F42, - 0xDD9F, 0x8F43, 0xDDA0, 0x8F44, 0xDDA1, 0x8368, 0xDDA2, 0x831B, - 0xDDA3, 0x8369, 0xDDA4, 0x836C, 0xDDA5, 0x836A, 0xDDA6, 0x836D, - 0xDDA7, 0x836E, 0xDDA8, 0x83B0, 0xDDA9, 0x8378, 0xDDAA, 0x83B3, - 0xDDAB, 0x83B4, 0xDDAC, 0x83A0, 0xDDAD, 0x83AA, 0xDDAE, 0x8393, - 0xDDAF, 0x839C, 0xDDB0, 0x8385, 0xDDB1, 0x837C, 0xDDB2, 0x83B6, - 0xDDB3, 0x83A9, 0xDDB4, 0x837D, 0xDDB5, 0x83B8, 0xDDB6, 0x837B, - 0xDDB7, 0x8398, 0xDDB8, 0x839E, 0xDDB9, 0x83A8, 0xDDBA, 0x83BA, - 0xDDBB, 0x83BC, 0xDDBC, 0x83C1, 0xDDBD, 0x8401, 0xDDBE, 0x83E5, - 0xDDBF, 0x83D8, 0xDDC0, 0x5807, 0xDDC1, 0x8418, 0xDDC2, 0x840B, - 0xDDC3, 0x83DD, 0xDDC4, 0x83FD, 0xDDC5, 0x83D6, 0xDDC6, 0x841C, - 0xDDC7, 0x8438, 0xDDC8, 0x8411, 0xDDC9, 0x8406, 0xDDCA, 0x83D4, - 0xDDCB, 0x83DF, 0xDDCC, 0x840F, 0xDDCD, 0x8403, 0xDDCE, 0x83F8, - 0xDDCF, 0x83F9, 0xDDD0, 0x83EA, 0xDDD1, 0x83C5, 0xDDD2, 0x83C0, - 0xDDD3, 0x8426, 0xDDD4, 0x83F0, 0xDDD5, 0x83E1, 0xDDD6, 0x845C, - 0xDDD7, 0x8451, 0xDDD8, 0x845A, 0xDDD9, 0x8459, 0xDDDA, 0x8473, - 0xDDDB, 0x8487, 0xDDDC, 0x8488, 0xDDDD, 0x847A, 0xDDDE, 0x8489, - 0xDDDF, 0x8478, 0xDDE0, 0x843C, 0xDDE1, 0x8446, 0xDDE2, 0x8469, - 0xDDE3, 0x8476, 0xDDE4, 0x848C, 0xDDE5, 0x848E, 0xDDE6, 0x8431, - 0xDDE7, 0x846D, 0xDDE8, 0x84C1, 0xDDE9, 0x84CD, 0xDDEA, 0x84D0, - 0xDDEB, 0x84E6, 0xDDEC, 0x84BD, 0xDDED, 0x84D3, 0xDDEE, 0x84CA, - 0xDDEF, 0x84BF, 0xDDF0, 0x84BA, 0xDDF1, 0x84E0, 0xDDF2, 0x84A1, - 0xDDF3, 0x84B9, 0xDDF4, 0x84B4, 0xDDF5, 0x8497, 0xDDF6, 0x84E5, - 0xDDF7, 0x84E3, 0xDDF8, 0x850C, 0xDDF9, 0x750D, 0xDDFA, 0x8538, - 0xDDFB, 0x84F0, 0xDDFC, 0x8539, 0xDDFD, 0x851F, 0xDDFE, 0x853A, - 0xDE40, 0x8F45, 0xDE41, 0x8F46, 0xDE42, 0x8F47, 0xDE43, 0x8F48, - 0xDE44, 0x8F49, 0xDE45, 0x8F4A, 0xDE46, 0x8F4B, 0xDE47, 0x8F4C, - 0xDE48, 0x8F4D, 0xDE49, 0x8F4E, 0xDE4A, 0x8F4F, 0xDE4B, 0x8F50, - 0xDE4C, 0x8F51, 0xDE4D, 0x8F52, 0xDE4E, 0x8F53, 0xDE4F, 0x8F54, - 0xDE50, 0x8F55, 0xDE51, 0x8F56, 0xDE52, 0x8F57, 0xDE53, 0x8F58, - 0xDE54, 0x8F59, 0xDE55, 0x8F5A, 0xDE56, 0x8F5B, 0xDE57, 0x8F5C, - 0xDE58, 0x8F5D, 0xDE59, 0x8F5E, 0xDE5A, 0x8F5F, 0xDE5B, 0x8F60, - 0xDE5C, 0x8F61, 0xDE5D, 0x8F62, 0xDE5E, 0x8F63, 0xDE5F, 0x8F64, - 0xDE60, 0x8F65, 0xDE61, 0x8F6A, 0xDE62, 0x8F80, 0xDE63, 0x8F8C, - 0xDE64, 0x8F92, 0xDE65, 0x8F9D, 0xDE66, 0x8FA0, 0xDE67, 0x8FA1, - 0xDE68, 0x8FA2, 0xDE69, 0x8FA4, 0xDE6A, 0x8FA5, 0xDE6B, 0x8FA6, - 0xDE6C, 0x8FA7, 0xDE6D, 0x8FAA, 0xDE6E, 0x8FAC, 0xDE6F, 0x8FAD, - 0xDE70, 0x8FAE, 0xDE71, 0x8FAF, 0xDE72, 0x8FB2, 0xDE73, 0x8FB3, - 0xDE74, 0x8FB4, 0xDE75, 0x8FB5, 0xDE76, 0x8FB7, 0xDE77, 0x8FB8, - 0xDE78, 0x8FBA, 0xDE79, 0x8FBB, 0xDE7A, 0x8FBC, 0xDE7B, 0x8FBF, - 0xDE7C, 0x8FC0, 0xDE7D, 0x8FC3, 0xDE7E, 0x8FC6, 0xDE80, 0x8FC9, - 0xDE81, 0x8FCA, 0xDE82, 0x8FCB, 0xDE83, 0x8FCC, 0xDE84, 0x8FCD, - 0xDE85, 0x8FCF, 0xDE86, 0x8FD2, 0xDE87, 0x8FD6, 0xDE88, 0x8FD7, - 0xDE89, 0x8FDA, 0xDE8A, 0x8FE0, 0xDE8B, 0x8FE1, 0xDE8C, 0x8FE3, - 0xDE8D, 0x8FE7, 0xDE8E, 0x8FEC, 0xDE8F, 0x8FEF, 0xDE90, 0x8FF1, - 0xDE91, 0x8FF2, 0xDE92, 0x8FF4, 0xDE93, 0x8FF5, 0xDE94, 0x8FF6, - 0xDE95, 0x8FFA, 0xDE96, 0x8FFB, 0xDE97, 0x8FFC, 0xDE98, 0x8FFE, - 0xDE99, 0x8FFF, 0xDE9A, 0x9007, 0xDE9B, 0x9008, 0xDE9C, 0x900C, - 0xDE9D, 0x900E, 0xDE9E, 0x9013, 0xDE9F, 0x9015, 0xDEA0, 0x9018, - 0xDEA1, 0x8556, 0xDEA2, 0x853B, 0xDEA3, 0x84FF, 0xDEA4, 0x84FC, - 0xDEA5, 0x8559, 0xDEA6, 0x8548, 0xDEA7, 0x8568, 0xDEA8, 0x8564, - 0xDEA9, 0x855E, 0xDEAA, 0x857A, 0xDEAB, 0x77A2, 0xDEAC, 0x8543, - 0xDEAD, 0x8572, 0xDEAE, 0x857B, 0xDEAF, 0x85A4, 0xDEB0, 0x85A8, - 0xDEB1, 0x8587, 0xDEB2, 0x858F, 0xDEB3, 0x8579, 0xDEB4, 0x85AE, - 0xDEB5, 0x859C, 0xDEB6, 0x8585, 0xDEB7, 0x85B9, 0xDEB8, 0x85B7, - 0xDEB9, 0x85B0, 0xDEBA, 0x85D3, 0xDEBB, 0x85C1, 0xDEBC, 0x85DC, - 0xDEBD, 0x85FF, 0xDEBE, 0x8627, 0xDEBF, 0x8605, 0xDEC0, 0x8629, - 0xDEC1, 0x8616, 0xDEC2, 0x863C, 0xDEC3, 0x5EFE, 0xDEC4, 0x5F08, - 0xDEC5, 0x593C, 0xDEC6, 0x5941, 0xDEC7, 0x8037, 0xDEC8, 0x5955, - 0xDEC9, 0x595A, 0xDECA, 0x5958, 0xDECB, 0x530F, 0xDECC, 0x5C22, - 0xDECD, 0x5C25, 0xDECE, 0x5C2C, 0xDECF, 0x5C34, 0xDED0, 0x624C, - 0xDED1, 0x626A, 0xDED2, 0x629F, 0xDED3, 0x62BB, 0xDED4, 0x62CA, - 0xDED5, 0x62DA, 0xDED6, 0x62D7, 0xDED7, 0x62EE, 0xDED8, 0x6322, - 0xDED9, 0x62F6, 0xDEDA, 0x6339, 0xDEDB, 0x634B, 0xDEDC, 0x6343, - 0xDEDD, 0x63AD, 0xDEDE, 0x63F6, 0xDEDF, 0x6371, 0xDEE0, 0x637A, - 0xDEE1, 0x638E, 0xDEE2, 0x63B4, 0xDEE3, 0x636D, 0xDEE4, 0x63AC, - 0xDEE5, 0x638A, 0xDEE6, 0x6369, 0xDEE7, 0x63AE, 0xDEE8, 0x63BC, - 0xDEE9, 0x63F2, 0xDEEA, 0x63F8, 0xDEEB, 0x63E0, 0xDEEC, 0x63FF, - 0xDEED, 0x63C4, 0xDEEE, 0x63DE, 0xDEEF, 0x63CE, 0xDEF0, 0x6452, - 0xDEF1, 0x63C6, 0xDEF2, 0x63BE, 0xDEF3, 0x6445, 0xDEF4, 0x6441, - 0xDEF5, 0x640B, 0xDEF6, 0x641B, 0xDEF7, 0x6420, 0xDEF8, 0x640C, - 0xDEF9, 0x6426, 0xDEFA, 0x6421, 0xDEFB, 0x645E, 0xDEFC, 0x6484, - 0xDEFD, 0x646D, 0xDEFE, 0x6496, 0xDF40, 0x9019, 0xDF41, 0x901C, - 0xDF42, 0x9023, 0xDF43, 0x9024, 0xDF44, 0x9025, 0xDF45, 0x9027, - 0xDF46, 0x9028, 0xDF47, 0x9029, 0xDF48, 0x902A, 0xDF49, 0x902B, - 0xDF4A, 0x902C, 0xDF4B, 0x9030, 0xDF4C, 0x9031, 0xDF4D, 0x9032, - 0xDF4E, 0x9033, 0xDF4F, 0x9034, 0xDF50, 0x9037, 0xDF51, 0x9039, - 0xDF52, 0x903A, 0xDF53, 0x903D, 0xDF54, 0x903F, 0xDF55, 0x9040, - 0xDF56, 0x9043, 0xDF57, 0x9045, 0xDF58, 0x9046, 0xDF59, 0x9048, - 0xDF5A, 0x9049, 0xDF5B, 0x904A, 0xDF5C, 0x904B, 0xDF5D, 0x904C, - 0xDF5E, 0x904E, 0xDF5F, 0x9054, 0xDF60, 0x9055, 0xDF61, 0x9056, - 0xDF62, 0x9059, 0xDF63, 0x905A, 0xDF64, 0x905C, 0xDF65, 0x905D, - 0xDF66, 0x905E, 0xDF67, 0x905F, 0xDF68, 0x9060, 0xDF69, 0x9061, - 0xDF6A, 0x9064, 0xDF6B, 0x9066, 0xDF6C, 0x9067, 0xDF6D, 0x9069, - 0xDF6E, 0x906A, 0xDF6F, 0x906B, 0xDF70, 0x906C, 0xDF71, 0x906F, - 0xDF72, 0x9070, 0xDF73, 0x9071, 0xDF74, 0x9072, 0xDF75, 0x9073, - 0xDF76, 0x9076, 0xDF77, 0x9077, 0xDF78, 0x9078, 0xDF79, 0x9079, - 0xDF7A, 0x907A, 0xDF7B, 0x907B, 0xDF7C, 0x907C, 0xDF7D, 0x907E, - 0xDF7E, 0x9081, 0xDF80, 0x9084, 0xDF81, 0x9085, 0xDF82, 0x9086, - 0xDF83, 0x9087, 0xDF84, 0x9089, 0xDF85, 0x908A, 0xDF86, 0x908C, - 0xDF87, 0x908D, 0xDF88, 0x908E, 0xDF89, 0x908F, 0xDF8A, 0x9090, - 0xDF8B, 0x9092, 0xDF8C, 0x9094, 0xDF8D, 0x9096, 0xDF8E, 0x9098, - 0xDF8F, 0x909A, 0xDF90, 0x909C, 0xDF91, 0x909E, 0xDF92, 0x909F, - 0xDF93, 0x90A0, 0xDF94, 0x90A4, 0xDF95, 0x90A5, 0xDF96, 0x90A7, - 0xDF97, 0x90A8, 0xDF98, 0x90A9, 0xDF99, 0x90AB, 0xDF9A, 0x90AD, - 0xDF9B, 0x90B2, 0xDF9C, 0x90B7, 0xDF9D, 0x90BC, 0xDF9E, 0x90BD, - 0xDF9F, 0x90BF, 0xDFA0, 0x90C0, 0xDFA1, 0x647A, 0xDFA2, 0x64B7, - 0xDFA3, 0x64B8, 0xDFA4, 0x6499, 0xDFA5, 0x64BA, 0xDFA6, 0x64C0, - 0xDFA7, 0x64D0, 0xDFA8, 0x64D7, 0xDFA9, 0x64E4, 0xDFAA, 0x64E2, - 0xDFAB, 0x6509, 0xDFAC, 0x6525, 0xDFAD, 0x652E, 0xDFAE, 0x5F0B, - 0xDFAF, 0x5FD2, 0xDFB0, 0x7519, 0xDFB1, 0x5F11, 0xDFB2, 0x535F, - 0xDFB3, 0x53F1, 0xDFB4, 0x53FD, 0xDFB5, 0x53E9, 0xDFB6, 0x53E8, - 0xDFB7, 0x53FB, 0xDFB8, 0x5412, 0xDFB9, 0x5416, 0xDFBA, 0x5406, - 0xDFBB, 0x544B, 0xDFBC, 0x5452, 0xDFBD, 0x5453, 0xDFBE, 0x5454, - 0xDFBF, 0x5456, 0xDFC0, 0x5443, 0xDFC1, 0x5421, 0xDFC2, 0x5457, - 0xDFC3, 0x5459, 0xDFC4, 0x5423, 0xDFC5, 0x5432, 0xDFC6, 0x5482, - 0xDFC7, 0x5494, 0xDFC8, 0x5477, 0xDFC9, 0x5471, 0xDFCA, 0x5464, - 0xDFCB, 0x549A, 0xDFCC, 0x549B, 0xDFCD, 0x5484, 0xDFCE, 0x5476, - 0xDFCF, 0x5466, 0xDFD0, 0x549D, 0xDFD1, 0x54D0, 0xDFD2, 0x54AD, - 0xDFD3, 0x54C2, 0xDFD4, 0x54B4, 0xDFD5, 0x54D2, 0xDFD6, 0x54A7, - 0xDFD7, 0x54A6, 0xDFD8, 0x54D3, 0xDFD9, 0x54D4, 0xDFDA, 0x5472, - 0xDFDB, 0x54A3, 0xDFDC, 0x54D5, 0xDFDD, 0x54BB, 0xDFDE, 0x54BF, - 0xDFDF, 0x54CC, 0xDFE0, 0x54D9, 0xDFE1, 0x54DA, 0xDFE2, 0x54DC, - 0xDFE3, 0x54A9, 0xDFE4, 0x54AA, 0xDFE5, 0x54A4, 0xDFE6, 0x54DD, - 0xDFE7, 0x54CF, 0xDFE8, 0x54DE, 0xDFE9, 0x551B, 0xDFEA, 0x54E7, - 0xDFEB, 0x5520, 0xDFEC, 0x54FD, 0xDFED, 0x5514, 0xDFEE, 0x54F3, - 0xDFEF, 0x5522, 0xDFF0, 0x5523, 0xDFF1, 0x550F, 0xDFF2, 0x5511, - 0xDFF3, 0x5527, 0xDFF4, 0x552A, 0xDFF5, 0x5567, 0xDFF6, 0x558F, - 0xDFF7, 0x55B5, 0xDFF8, 0x5549, 0xDFF9, 0x556D, 0xDFFA, 0x5541, - 0xDFFB, 0x5555, 0xDFFC, 0x553F, 0xDFFD, 0x5550, 0xDFFE, 0x553C, - 0xE040, 0x90C2, 0xE041, 0x90C3, 0xE042, 0x90C6, 0xE043, 0x90C8, - 0xE044, 0x90C9, 0xE045, 0x90CB, 0xE046, 0x90CC, 0xE047, 0x90CD, - 0xE048, 0x90D2, 0xE049, 0x90D4, 0xE04A, 0x90D5, 0xE04B, 0x90D6, - 0xE04C, 0x90D8, 0xE04D, 0x90D9, 0xE04E, 0x90DA, 0xE04F, 0x90DE, - 0xE050, 0x90DF, 0xE051, 0x90E0, 0xE052, 0x90E3, 0xE053, 0x90E4, - 0xE054, 0x90E5, 0xE055, 0x90E9, 0xE056, 0x90EA, 0xE057, 0x90EC, - 0xE058, 0x90EE, 0xE059, 0x90F0, 0xE05A, 0x90F1, 0xE05B, 0x90F2, - 0xE05C, 0x90F3, 0xE05D, 0x90F5, 0xE05E, 0x90F6, 0xE05F, 0x90F7, - 0xE060, 0x90F9, 0xE061, 0x90FA, 0xE062, 0x90FB, 0xE063, 0x90FC, - 0xE064, 0x90FF, 0xE065, 0x9100, 0xE066, 0x9101, 0xE067, 0x9103, - 0xE068, 0x9105, 0xE069, 0x9106, 0xE06A, 0x9107, 0xE06B, 0x9108, - 0xE06C, 0x9109, 0xE06D, 0x910A, 0xE06E, 0x910B, 0xE06F, 0x910C, - 0xE070, 0x910D, 0xE071, 0x910E, 0xE072, 0x910F, 0xE073, 0x9110, - 0xE074, 0x9111, 0xE075, 0x9112, 0xE076, 0x9113, 0xE077, 0x9114, - 0xE078, 0x9115, 0xE079, 0x9116, 0xE07A, 0x9117, 0xE07B, 0x9118, - 0xE07C, 0x911A, 0xE07D, 0x911B, 0xE07E, 0x911C, 0xE080, 0x911D, - 0xE081, 0x911F, 0xE082, 0x9120, 0xE083, 0x9121, 0xE084, 0x9124, - 0xE085, 0x9125, 0xE086, 0x9126, 0xE087, 0x9127, 0xE088, 0x9128, - 0xE089, 0x9129, 0xE08A, 0x912A, 0xE08B, 0x912B, 0xE08C, 0x912C, - 0xE08D, 0x912D, 0xE08E, 0x912E, 0xE08F, 0x9130, 0xE090, 0x9132, - 0xE091, 0x9133, 0xE092, 0x9134, 0xE093, 0x9135, 0xE094, 0x9136, - 0xE095, 0x9137, 0xE096, 0x9138, 0xE097, 0x913A, 0xE098, 0x913B, - 0xE099, 0x913C, 0xE09A, 0x913D, 0xE09B, 0x913E, 0xE09C, 0x913F, - 0xE09D, 0x9140, 0xE09E, 0x9141, 0xE09F, 0x9142, 0xE0A0, 0x9144, - 0xE0A1, 0x5537, 0xE0A2, 0x5556, 0xE0A3, 0x5575, 0xE0A4, 0x5576, - 0xE0A5, 0x5577, 0xE0A6, 0x5533, 0xE0A7, 0x5530, 0xE0A8, 0x555C, - 0xE0A9, 0x558B, 0xE0AA, 0x55D2, 0xE0AB, 0x5583, 0xE0AC, 0x55B1, - 0xE0AD, 0x55B9, 0xE0AE, 0x5588, 0xE0AF, 0x5581, 0xE0B0, 0x559F, - 0xE0B1, 0x557E, 0xE0B2, 0x55D6, 0xE0B3, 0x5591, 0xE0B4, 0x557B, - 0xE0B5, 0x55DF, 0xE0B6, 0x55BD, 0xE0B7, 0x55BE, 0xE0B8, 0x5594, - 0xE0B9, 0x5599, 0xE0BA, 0x55EA, 0xE0BB, 0x55F7, 0xE0BC, 0x55C9, - 0xE0BD, 0x561F, 0xE0BE, 0x55D1, 0xE0BF, 0x55EB, 0xE0C0, 0x55EC, - 0xE0C1, 0x55D4, 0xE0C2, 0x55E6, 0xE0C3, 0x55DD, 0xE0C4, 0x55C4, - 0xE0C5, 0x55EF, 0xE0C6, 0x55E5, 0xE0C7, 0x55F2, 0xE0C8, 0x55F3, - 0xE0C9, 0x55CC, 0xE0CA, 0x55CD, 0xE0CB, 0x55E8, 0xE0CC, 0x55F5, - 0xE0CD, 0x55E4, 0xE0CE, 0x8F94, 0xE0CF, 0x561E, 0xE0D0, 0x5608, - 0xE0D1, 0x560C, 0xE0D2, 0x5601, 0xE0D3, 0x5624, 0xE0D4, 0x5623, - 0xE0D5, 0x55FE, 0xE0D6, 0x5600, 0xE0D7, 0x5627, 0xE0D8, 0x562D, - 0xE0D9, 0x5658, 0xE0DA, 0x5639, 0xE0DB, 0x5657, 0xE0DC, 0x562C, - 0xE0DD, 0x564D, 0xE0DE, 0x5662, 0xE0DF, 0x5659, 0xE0E0, 0x565C, - 0xE0E1, 0x564C, 0xE0E2, 0x5654, 0xE0E3, 0x5686, 0xE0E4, 0x5664, - 0xE0E5, 0x5671, 0xE0E6, 0x566B, 0xE0E7, 0x567B, 0xE0E8, 0x567C, - 0xE0E9, 0x5685, 0xE0EA, 0x5693, 0xE0EB, 0x56AF, 0xE0EC, 0x56D4, - 0xE0ED, 0x56D7, 0xE0EE, 0x56DD, 0xE0EF, 0x56E1, 0xE0F0, 0x56F5, - 0xE0F1, 0x56EB, 0xE0F2, 0x56F9, 0xE0F3, 0x56FF, 0xE0F4, 0x5704, - 0xE0F5, 0x570A, 0xE0F6, 0x5709, 0xE0F7, 0x571C, 0xE0F8, 0x5E0F, - 0xE0F9, 0x5E19, 0xE0FA, 0x5E14, 0xE0FB, 0x5E11, 0xE0FC, 0x5E31, - 0xE0FD, 0x5E3B, 0xE0FE, 0x5E3C, 0xE140, 0x9145, 0xE141, 0x9147, - 0xE142, 0x9148, 0xE143, 0x9151, 0xE144, 0x9153, 0xE145, 0x9154, - 0xE146, 0x9155, 0xE147, 0x9156, 0xE148, 0x9158, 0xE149, 0x9159, - 0xE14A, 0x915B, 0xE14B, 0x915C, 0xE14C, 0x915F, 0xE14D, 0x9160, - 0xE14E, 0x9166, 0xE14F, 0x9167, 0xE150, 0x9168, 0xE151, 0x916B, - 0xE152, 0x916D, 0xE153, 0x9173, 0xE154, 0x917A, 0xE155, 0x917B, - 0xE156, 0x917C, 0xE157, 0x9180, 0xE158, 0x9181, 0xE159, 0x9182, - 0xE15A, 0x9183, 0xE15B, 0x9184, 0xE15C, 0x9186, 0xE15D, 0x9188, - 0xE15E, 0x918A, 0xE15F, 0x918E, 0xE160, 0x918F, 0xE161, 0x9193, - 0xE162, 0x9194, 0xE163, 0x9195, 0xE164, 0x9196, 0xE165, 0x9197, - 0xE166, 0x9198, 0xE167, 0x9199, 0xE168, 0x919C, 0xE169, 0x919D, - 0xE16A, 0x919E, 0xE16B, 0x919F, 0xE16C, 0x91A0, 0xE16D, 0x91A1, - 0xE16E, 0x91A4, 0xE16F, 0x91A5, 0xE170, 0x91A6, 0xE171, 0x91A7, - 0xE172, 0x91A8, 0xE173, 0x91A9, 0xE174, 0x91AB, 0xE175, 0x91AC, - 0xE176, 0x91B0, 0xE177, 0x91B1, 0xE178, 0x91B2, 0xE179, 0x91B3, - 0xE17A, 0x91B6, 0xE17B, 0x91B7, 0xE17C, 0x91B8, 0xE17D, 0x91B9, - 0xE17E, 0x91BB, 0xE180, 0x91BC, 0xE181, 0x91BD, 0xE182, 0x91BE, - 0xE183, 0x91BF, 0xE184, 0x91C0, 0xE185, 0x91C1, 0xE186, 0x91C2, - 0xE187, 0x91C3, 0xE188, 0x91C4, 0xE189, 0x91C5, 0xE18A, 0x91C6, - 0xE18B, 0x91C8, 0xE18C, 0x91CB, 0xE18D, 0x91D0, 0xE18E, 0x91D2, - 0xE18F, 0x91D3, 0xE190, 0x91D4, 0xE191, 0x91D5, 0xE192, 0x91D6, - 0xE193, 0x91D7, 0xE194, 0x91D8, 0xE195, 0x91D9, 0xE196, 0x91DA, - 0xE197, 0x91DB, 0xE198, 0x91DD, 0xE199, 0x91DE, 0xE19A, 0x91DF, - 0xE19B, 0x91E0, 0xE19C, 0x91E1, 0xE19D, 0x91E2, 0xE19E, 0x91E3, - 0xE19F, 0x91E4, 0xE1A0, 0x91E5, 0xE1A1, 0x5E37, 0xE1A2, 0x5E44, - 0xE1A3, 0x5E54, 0xE1A4, 0x5E5B, 0xE1A5, 0x5E5E, 0xE1A6, 0x5E61, - 0xE1A7, 0x5C8C, 0xE1A8, 0x5C7A, 0xE1A9, 0x5C8D, 0xE1AA, 0x5C90, - 0xE1AB, 0x5C96, 0xE1AC, 0x5C88, 0xE1AD, 0x5C98, 0xE1AE, 0x5C99, - 0xE1AF, 0x5C91, 0xE1B0, 0x5C9A, 0xE1B1, 0x5C9C, 0xE1B2, 0x5CB5, - 0xE1B3, 0x5CA2, 0xE1B4, 0x5CBD, 0xE1B5, 0x5CAC, 0xE1B6, 0x5CAB, - 0xE1B7, 0x5CB1, 0xE1B8, 0x5CA3, 0xE1B9, 0x5CC1, 0xE1BA, 0x5CB7, - 0xE1BB, 0x5CC4, 0xE1BC, 0x5CD2, 0xE1BD, 0x5CE4, 0xE1BE, 0x5CCB, - 0xE1BF, 0x5CE5, 0xE1C0, 0x5D02, 0xE1C1, 0x5D03, 0xE1C2, 0x5D27, - 0xE1C3, 0x5D26, 0xE1C4, 0x5D2E, 0xE1C5, 0x5D24, 0xE1C6, 0x5D1E, - 0xE1C7, 0x5D06, 0xE1C8, 0x5D1B, 0xE1C9, 0x5D58, 0xE1CA, 0x5D3E, - 0xE1CB, 0x5D34, 0xE1CC, 0x5D3D, 0xE1CD, 0x5D6C, 0xE1CE, 0x5D5B, - 0xE1CF, 0x5D6F, 0xE1D0, 0x5D5D, 0xE1D1, 0x5D6B, 0xE1D2, 0x5D4B, - 0xE1D3, 0x5D4A, 0xE1D4, 0x5D69, 0xE1D5, 0x5D74, 0xE1D6, 0x5D82, - 0xE1D7, 0x5D99, 0xE1D8, 0x5D9D, 0xE1D9, 0x8C73, 0xE1DA, 0x5DB7, - 0xE1DB, 0x5DC5, 0xE1DC, 0x5F73, 0xE1DD, 0x5F77, 0xE1DE, 0x5F82, - 0xE1DF, 0x5F87, 0xE1E0, 0x5F89, 0xE1E1, 0x5F8C, 0xE1E2, 0x5F95, - 0xE1E3, 0x5F99, 0xE1E4, 0x5F9C, 0xE1E5, 0x5FA8, 0xE1E6, 0x5FAD, - 0xE1E7, 0x5FB5, 0xE1E8, 0x5FBC, 0xE1E9, 0x8862, 0xE1EA, 0x5F61, - 0xE1EB, 0x72AD, 0xE1EC, 0x72B0, 0xE1ED, 0x72B4, 0xE1EE, 0x72B7, - 0xE1EF, 0x72B8, 0xE1F0, 0x72C3, 0xE1F1, 0x72C1, 0xE1F2, 0x72CE, - 0xE1F3, 0x72CD, 0xE1F4, 0x72D2, 0xE1F5, 0x72E8, 0xE1F6, 0x72EF, - 0xE1F7, 0x72E9, 0xE1F8, 0x72F2, 0xE1F9, 0x72F4, 0xE1FA, 0x72F7, - 0xE1FB, 0x7301, 0xE1FC, 0x72F3, 0xE1FD, 0x7303, 0xE1FE, 0x72FA, - 0xE240, 0x91E6, 0xE241, 0x91E7, 0xE242, 0x91E8, 0xE243, 0x91E9, - 0xE244, 0x91EA, 0xE245, 0x91EB, 0xE246, 0x91EC, 0xE247, 0x91ED, - 0xE248, 0x91EE, 0xE249, 0x91EF, 0xE24A, 0x91F0, 0xE24B, 0x91F1, - 0xE24C, 0x91F2, 0xE24D, 0x91F3, 0xE24E, 0x91F4, 0xE24F, 0x91F5, - 0xE250, 0x91F6, 0xE251, 0x91F7, 0xE252, 0x91F8, 0xE253, 0x91F9, - 0xE254, 0x91FA, 0xE255, 0x91FB, 0xE256, 0x91FC, 0xE257, 0x91FD, - 0xE258, 0x91FE, 0xE259, 0x91FF, 0xE25A, 0x9200, 0xE25B, 0x9201, - 0xE25C, 0x9202, 0xE25D, 0x9203, 0xE25E, 0x9204, 0xE25F, 0x9205, - 0xE260, 0x9206, 0xE261, 0x9207, 0xE262, 0x9208, 0xE263, 0x9209, - 0xE264, 0x920A, 0xE265, 0x920B, 0xE266, 0x920C, 0xE267, 0x920D, - 0xE268, 0x920E, 0xE269, 0x920F, 0xE26A, 0x9210, 0xE26B, 0x9211, - 0xE26C, 0x9212, 0xE26D, 0x9213, 0xE26E, 0x9214, 0xE26F, 0x9215, - 0xE270, 0x9216, 0xE271, 0x9217, 0xE272, 0x9218, 0xE273, 0x9219, - 0xE274, 0x921A, 0xE275, 0x921B, 0xE276, 0x921C, 0xE277, 0x921D, - 0xE278, 0x921E, 0xE279, 0x921F, 0xE27A, 0x9220, 0xE27B, 0x9221, - 0xE27C, 0x9222, 0xE27D, 0x9223, 0xE27E, 0x9224, 0xE280, 0x9225, - 0xE281, 0x9226, 0xE282, 0x9227, 0xE283, 0x9228, 0xE284, 0x9229, - 0xE285, 0x922A, 0xE286, 0x922B, 0xE287, 0x922C, 0xE288, 0x922D, - 0xE289, 0x922E, 0xE28A, 0x922F, 0xE28B, 0x9230, 0xE28C, 0x9231, - 0xE28D, 0x9232, 0xE28E, 0x9233, 0xE28F, 0x9234, 0xE290, 0x9235, - 0xE291, 0x9236, 0xE292, 0x9237, 0xE293, 0x9238, 0xE294, 0x9239, - 0xE295, 0x923A, 0xE296, 0x923B, 0xE297, 0x923C, 0xE298, 0x923D, - 0xE299, 0x923E, 0xE29A, 0x923F, 0xE29B, 0x9240, 0xE29C, 0x9241, - 0xE29D, 0x9242, 0xE29E, 0x9243, 0xE29F, 0x9244, 0xE2A0, 0x9245, - 0xE2A1, 0x72FB, 0xE2A2, 0x7317, 0xE2A3, 0x7313, 0xE2A4, 0x7321, - 0xE2A5, 0x730A, 0xE2A6, 0x731E, 0xE2A7, 0x731D, 0xE2A8, 0x7315, - 0xE2A9, 0x7322, 0xE2AA, 0x7339, 0xE2AB, 0x7325, 0xE2AC, 0x732C, - 0xE2AD, 0x7338, 0xE2AE, 0x7331, 0xE2AF, 0x7350, 0xE2B0, 0x734D, - 0xE2B1, 0x7357, 0xE2B2, 0x7360, 0xE2B3, 0x736C, 0xE2B4, 0x736F, - 0xE2B5, 0x737E, 0xE2B6, 0x821B, 0xE2B7, 0x5925, 0xE2B8, 0x98E7, - 0xE2B9, 0x5924, 0xE2BA, 0x5902, 0xE2BB, 0x9963, 0xE2BC, 0x9967, - 0xE2BD, 0x9968, 0xE2BE, 0x9969, 0xE2BF, 0x996A, 0xE2C0, 0x996B, - 0xE2C1, 0x996C, 0xE2C2, 0x9974, 0xE2C3, 0x9977, 0xE2C4, 0x997D, - 0xE2C5, 0x9980, 0xE2C6, 0x9984, 0xE2C7, 0x9987, 0xE2C8, 0x998A, - 0xE2C9, 0x998D, 0xE2CA, 0x9990, 0xE2CB, 0x9991, 0xE2CC, 0x9993, - 0xE2CD, 0x9994, 0xE2CE, 0x9995, 0xE2CF, 0x5E80, 0xE2D0, 0x5E91, - 0xE2D1, 0x5E8B, 0xE2D2, 0x5E96, 0xE2D3, 0x5EA5, 0xE2D4, 0x5EA0, - 0xE2D5, 0x5EB9, 0xE2D6, 0x5EB5, 0xE2D7, 0x5EBE, 0xE2D8, 0x5EB3, - 0xE2D9, 0x8D53, 0xE2DA, 0x5ED2, 0xE2DB, 0x5ED1, 0xE2DC, 0x5EDB, - 0xE2DD, 0x5EE8, 0xE2DE, 0x5EEA, 0xE2DF, 0x81BA, 0xE2E0, 0x5FC4, - 0xE2E1, 0x5FC9, 0xE2E2, 0x5FD6, 0xE2E3, 0x5FCF, 0xE2E4, 0x6003, - 0xE2E5, 0x5FEE, 0xE2E6, 0x6004, 0xE2E7, 0x5FE1, 0xE2E8, 0x5FE4, - 0xE2E9, 0x5FFE, 0xE2EA, 0x6005, 0xE2EB, 0x6006, 0xE2EC, 0x5FEA, - 0xE2ED, 0x5FED, 0xE2EE, 0x5FF8, 0xE2EF, 0x6019, 0xE2F0, 0x6035, - 0xE2F1, 0x6026, 0xE2F2, 0x601B, 0xE2F3, 0x600F, 0xE2F4, 0x600D, - 0xE2F5, 0x6029, 0xE2F6, 0x602B, 0xE2F7, 0x600A, 0xE2F8, 0x603F, - 0xE2F9, 0x6021, 0xE2FA, 0x6078, 0xE2FB, 0x6079, 0xE2FC, 0x607B, - 0xE2FD, 0x607A, 0xE2FE, 0x6042, 0xE340, 0x9246, 0xE341, 0x9247, - 0xE342, 0x9248, 0xE343, 0x9249, 0xE344, 0x924A, 0xE345, 0x924B, - 0xE346, 0x924C, 0xE347, 0x924D, 0xE348, 0x924E, 0xE349, 0x924F, - 0xE34A, 0x9250, 0xE34B, 0x9251, 0xE34C, 0x9252, 0xE34D, 0x9253, - 0xE34E, 0x9254, 0xE34F, 0x9255, 0xE350, 0x9256, 0xE351, 0x9257, - 0xE352, 0x9258, 0xE353, 0x9259, 0xE354, 0x925A, 0xE355, 0x925B, - 0xE356, 0x925C, 0xE357, 0x925D, 0xE358, 0x925E, 0xE359, 0x925F, - 0xE35A, 0x9260, 0xE35B, 0x9261, 0xE35C, 0x9262, 0xE35D, 0x9263, - 0xE35E, 0x9264, 0xE35F, 0x9265, 0xE360, 0x9266, 0xE361, 0x9267, - 0xE362, 0x9268, 0xE363, 0x9269, 0xE364, 0x926A, 0xE365, 0x926B, - 0xE366, 0x926C, 0xE367, 0x926D, 0xE368, 0x926E, 0xE369, 0x926F, - 0xE36A, 0x9270, 0xE36B, 0x9271, 0xE36C, 0x9272, 0xE36D, 0x9273, - 0xE36E, 0x9275, 0xE36F, 0x9276, 0xE370, 0x9277, 0xE371, 0x9278, - 0xE372, 0x9279, 0xE373, 0x927A, 0xE374, 0x927B, 0xE375, 0x927C, - 0xE376, 0x927D, 0xE377, 0x927E, 0xE378, 0x927F, 0xE379, 0x9280, - 0xE37A, 0x9281, 0xE37B, 0x9282, 0xE37C, 0x9283, 0xE37D, 0x9284, - 0xE37E, 0x9285, 0xE380, 0x9286, 0xE381, 0x9287, 0xE382, 0x9288, - 0xE383, 0x9289, 0xE384, 0x928A, 0xE385, 0x928B, 0xE386, 0x928C, - 0xE387, 0x928D, 0xE388, 0x928F, 0xE389, 0x9290, 0xE38A, 0x9291, - 0xE38B, 0x9292, 0xE38C, 0x9293, 0xE38D, 0x9294, 0xE38E, 0x9295, - 0xE38F, 0x9296, 0xE390, 0x9297, 0xE391, 0x9298, 0xE392, 0x9299, - 0xE393, 0x929A, 0xE394, 0x929B, 0xE395, 0x929C, 0xE396, 0x929D, - 0xE397, 0x929E, 0xE398, 0x929F, 0xE399, 0x92A0, 0xE39A, 0x92A1, - 0xE39B, 0x92A2, 0xE39C, 0x92A3, 0xE39D, 0x92A4, 0xE39E, 0x92A5, - 0xE39F, 0x92A6, 0xE3A0, 0x92A7, 0xE3A1, 0x606A, 0xE3A2, 0x607D, - 0xE3A3, 0x6096, 0xE3A4, 0x609A, 0xE3A5, 0x60AD, 0xE3A6, 0x609D, - 0xE3A7, 0x6083, 0xE3A8, 0x6092, 0xE3A9, 0x608C, 0xE3AA, 0x609B, - 0xE3AB, 0x60EC, 0xE3AC, 0x60BB, 0xE3AD, 0x60B1, 0xE3AE, 0x60DD, - 0xE3AF, 0x60D8, 0xE3B0, 0x60C6, 0xE3B1, 0x60DA, 0xE3B2, 0x60B4, - 0xE3B3, 0x6120, 0xE3B4, 0x6126, 0xE3B5, 0x6115, 0xE3B6, 0x6123, - 0xE3B7, 0x60F4, 0xE3B8, 0x6100, 0xE3B9, 0x610E, 0xE3BA, 0x612B, - 0xE3BB, 0x614A, 0xE3BC, 0x6175, 0xE3BD, 0x61AC, 0xE3BE, 0x6194, - 0xE3BF, 0x61A7, 0xE3C0, 0x61B7, 0xE3C1, 0x61D4, 0xE3C2, 0x61F5, - 0xE3C3, 0x5FDD, 0xE3C4, 0x96B3, 0xE3C5, 0x95E9, 0xE3C6, 0x95EB, - 0xE3C7, 0x95F1, 0xE3C8, 0x95F3, 0xE3C9, 0x95F5, 0xE3CA, 0x95F6, - 0xE3CB, 0x95FC, 0xE3CC, 0x95FE, 0xE3CD, 0x9603, 0xE3CE, 0x9604, - 0xE3CF, 0x9606, 0xE3D0, 0x9608, 0xE3D1, 0x960A, 0xE3D2, 0x960B, - 0xE3D3, 0x960C, 0xE3D4, 0x960D, 0xE3D5, 0x960F, 0xE3D6, 0x9612, - 0xE3D7, 0x9615, 0xE3D8, 0x9616, 0xE3D9, 0x9617, 0xE3DA, 0x9619, - 0xE3DB, 0x961A, 0xE3DC, 0x4E2C, 0xE3DD, 0x723F, 0xE3DE, 0x6215, - 0xE3DF, 0x6C35, 0xE3E0, 0x6C54, 0xE3E1, 0x6C5C, 0xE3E2, 0x6C4A, - 0xE3E3, 0x6CA3, 0xE3E4, 0x6C85, 0xE3E5, 0x6C90, 0xE3E6, 0x6C94, - 0xE3E7, 0x6C8C, 0xE3E8, 0x6C68, 0xE3E9, 0x6C69, 0xE3EA, 0x6C74, - 0xE3EB, 0x6C76, 0xE3EC, 0x6C86, 0xE3ED, 0x6CA9, 0xE3EE, 0x6CD0, - 0xE3EF, 0x6CD4, 0xE3F0, 0x6CAD, 0xE3F1, 0x6CF7, 0xE3F2, 0x6CF8, - 0xE3F3, 0x6CF1, 0xE3F4, 0x6CD7, 0xE3F5, 0x6CB2, 0xE3F6, 0x6CE0, - 0xE3F7, 0x6CD6, 0xE3F8, 0x6CFA, 0xE3F9, 0x6CEB, 0xE3FA, 0x6CEE, - 0xE3FB, 0x6CB1, 0xE3FC, 0x6CD3, 0xE3FD, 0x6CEF, 0xE3FE, 0x6CFE, - 0xE440, 0x92A8, 0xE441, 0x92A9, 0xE442, 0x92AA, 0xE443, 0x92AB, - 0xE444, 0x92AC, 0xE445, 0x92AD, 0xE446, 0x92AF, 0xE447, 0x92B0, - 0xE448, 0x92B1, 0xE449, 0x92B2, 0xE44A, 0x92B3, 0xE44B, 0x92B4, - 0xE44C, 0x92B5, 0xE44D, 0x92B6, 0xE44E, 0x92B7, 0xE44F, 0x92B8, - 0xE450, 0x92B9, 0xE451, 0x92BA, 0xE452, 0x92BB, 0xE453, 0x92BC, - 0xE454, 0x92BD, 0xE455, 0x92BE, 0xE456, 0x92BF, 0xE457, 0x92C0, - 0xE458, 0x92C1, 0xE459, 0x92C2, 0xE45A, 0x92C3, 0xE45B, 0x92C4, - 0xE45C, 0x92C5, 0xE45D, 0x92C6, 0xE45E, 0x92C7, 0xE45F, 0x92C9, - 0xE460, 0x92CA, 0xE461, 0x92CB, 0xE462, 0x92CC, 0xE463, 0x92CD, - 0xE464, 0x92CE, 0xE465, 0x92CF, 0xE466, 0x92D0, 0xE467, 0x92D1, - 0xE468, 0x92D2, 0xE469, 0x92D3, 0xE46A, 0x92D4, 0xE46B, 0x92D5, - 0xE46C, 0x92D6, 0xE46D, 0x92D7, 0xE46E, 0x92D8, 0xE46F, 0x92D9, - 0xE470, 0x92DA, 0xE471, 0x92DB, 0xE472, 0x92DC, 0xE473, 0x92DD, - 0xE474, 0x92DE, 0xE475, 0x92DF, 0xE476, 0x92E0, 0xE477, 0x92E1, - 0xE478, 0x92E2, 0xE479, 0x92E3, 0xE47A, 0x92E4, 0xE47B, 0x92E5, - 0xE47C, 0x92E6, 0xE47D, 0x92E7, 0xE47E, 0x92E8, 0xE480, 0x92E9, - 0xE481, 0x92EA, 0xE482, 0x92EB, 0xE483, 0x92EC, 0xE484, 0x92ED, - 0xE485, 0x92EE, 0xE486, 0x92EF, 0xE487, 0x92F0, 0xE488, 0x92F1, - 0xE489, 0x92F2, 0xE48A, 0x92F3, 0xE48B, 0x92F4, 0xE48C, 0x92F5, - 0xE48D, 0x92F6, 0xE48E, 0x92F7, 0xE48F, 0x92F8, 0xE490, 0x92F9, - 0xE491, 0x92FA, 0xE492, 0x92FB, 0xE493, 0x92FC, 0xE494, 0x92FD, - 0xE495, 0x92FE, 0xE496, 0x92FF, 0xE497, 0x9300, 0xE498, 0x9301, - 0xE499, 0x9302, 0xE49A, 0x9303, 0xE49B, 0x9304, 0xE49C, 0x9305, - 0xE49D, 0x9306, 0xE49E, 0x9307, 0xE49F, 0x9308, 0xE4A0, 0x9309, - 0xE4A1, 0x6D39, 0xE4A2, 0x6D27, 0xE4A3, 0x6D0C, 0xE4A4, 0x6D43, - 0xE4A5, 0x6D48, 0xE4A6, 0x6D07, 0xE4A7, 0x6D04, 0xE4A8, 0x6D19, - 0xE4A9, 0x6D0E, 0xE4AA, 0x6D2B, 0xE4AB, 0x6D4D, 0xE4AC, 0x6D2E, - 0xE4AD, 0x6D35, 0xE4AE, 0x6D1A, 0xE4AF, 0x6D4F, 0xE4B0, 0x6D52, - 0xE4B1, 0x6D54, 0xE4B2, 0x6D33, 0xE4B3, 0x6D91, 0xE4B4, 0x6D6F, - 0xE4B5, 0x6D9E, 0xE4B6, 0x6DA0, 0xE4B7, 0x6D5E, 0xE4B8, 0x6D93, - 0xE4B9, 0x6D94, 0xE4BA, 0x6D5C, 0xE4BB, 0x6D60, 0xE4BC, 0x6D7C, - 0xE4BD, 0x6D63, 0xE4BE, 0x6E1A, 0xE4BF, 0x6DC7, 0xE4C0, 0x6DC5, - 0xE4C1, 0x6DDE, 0xE4C2, 0x6E0E, 0xE4C3, 0x6DBF, 0xE4C4, 0x6DE0, - 0xE4C5, 0x6E11, 0xE4C6, 0x6DE6, 0xE4C7, 0x6DDD, 0xE4C8, 0x6DD9, - 0xE4C9, 0x6E16, 0xE4CA, 0x6DAB, 0xE4CB, 0x6E0C, 0xE4CC, 0x6DAE, - 0xE4CD, 0x6E2B, 0xE4CE, 0x6E6E, 0xE4CF, 0x6E4E, 0xE4D0, 0x6E6B, - 0xE4D1, 0x6EB2, 0xE4D2, 0x6E5F, 0xE4D3, 0x6E86, 0xE4D4, 0x6E53, - 0xE4D5, 0x6E54, 0xE4D6, 0x6E32, 0xE4D7, 0x6E25, 0xE4D8, 0x6E44, - 0xE4D9, 0x6EDF, 0xE4DA, 0x6EB1, 0xE4DB, 0x6E98, 0xE4DC, 0x6EE0, - 0xE4DD, 0x6F2D, 0xE4DE, 0x6EE2, 0xE4DF, 0x6EA5, 0xE4E0, 0x6EA7, - 0xE4E1, 0x6EBD, 0xE4E2, 0x6EBB, 0xE4E3, 0x6EB7, 0xE4E4, 0x6ED7, - 0xE4E5, 0x6EB4, 0xE4E6, 0x6ECF, 0xE4E7, 0x6E8F, 0xE4E8, 0x6EC2, - 0xE4E9, 0x6E9F, 0xE4EA, 0x6F62, 0xE4EB, 0x6F46, 0xE4EC, 0x6F47, - 0xE4ED, 0x6F24, 0xE4EE, 0x6F15, 0xE4EF, 0x6EF9, 0xE4F0, 0x6F2F, - 0xE4F1, 0x6F36, 0xE4F2, 0x6F4B, 0xE4F3, 0x6F74, 0xE4F4, 0x6F2A, - 0xE4F5, 0x6F09, 0xE4F6, 0x6F29, 0xE4F7, 0x6F89, 0xE4F8, 0x6F8D, - 0xE4F9, 0x6F8C, 0xE4FA, 0x6F78, 0xE4FB, 0x6F72, 0xE4FC, 0x6F7C, - 0xE4FD, 0x6F7A, 0xE4FE, 0x6FD1, 0xE540, 0x930A, 0xE541, 0x930B, - 0xE542, 0x930C, 0xE543, 0x930D, 0xE544, 0x930E, 0xE545, 0x930F, - 0xE546, 0x9310, 0xE547, 0x9311, 0xE548, 0x9312, 0xE549, 0x9313, - 0xE54A, 0x9314, 0xE54B, 0x9315, 0xE54C, 0x9316, 0xE54D, 0x9317, - 0xE54E, 0x9318, 0xE54F, 0x9319, 0xE550, 0x931A, 0xE551, 0x931B, - 0xE552, 0x931C, 0xE553, 0x931D, 0xE554, 0x931E, 0xE555, 0x931F, - 0xE556, 0x9320, 0xE557, 0x9321, 0xE558, 0x9322, 0xE559, 0x9323, - 0xE55A, 0x9324, 0xE55B, 0x9325, 0xE55C, 0x9326, 0xE55D, 0x9327, - 0xE55E, 0x9328, 0xE55F, 0x9329, 0xE560, 0x932A, 0xE561, 0x932B, - 0xE562, 0x932C, 0xE563, 0x932D, 0xE564, 0x932E, 0xE565, 0x932F, - 0xE566, 0x9330, 0xE567, 0x9331, 0xE568, 0x9332, 0xE569, 0x9333, - 0xE56A, 0x9334, 0xE56B, 0x9335, 0xE56C, 0x9336, 0xE56D, 0x9337, - 0xE56E, 0x9338, 0xE56F, 0x9339, 0xE570, 0x933A, 0xE571, 0x933B, - 0xE572, 0x933C, 0xE573, 0x933D, 0xE574, 0x933F, 0xE575, 0x9340, - 0xE576, 0x9341, 0xE577, 0x9342, 0xE578, 0x9343, 0xE579, 0x9344, - 0xE57A, 0x9345, 0xE57B, 0x9346, 0xE57C, 0x9347, 0xE57D, 0x9348, - 0xE57E, 0x9349, 0xE580, 0x934A, 0xE581, 0x934B, 0xE582, 0x934C, - 0xE583, 0x934D, 0xE584, 0x934E, 0xE585, 0x934F, 0xE586, 0x9350, - 0xE587, 0x9351, 0xE588, 0x9352, 0xE589, 0x9353, 0xE58A, 0x9354, - 0xE58B, 0x9355, 0xE58C, 0x9356, 0xE58D, 0x9357, 0xE58E, 0x9358, - 0xE58F, 0x9359, 0xE590, 0x935A, 0xE591, 0x935B, 0xE592, 0x935C, - 0xE593, 0x935D, 0xE594, 0x935E, 0xE595, 0x935F, 0xE596, 0x9360, - 0xE597, 0x9361, 0xE598, 0x9362, 0xE599, 0x9363, 0xE59A, 0x9364, - 0xE59B, 0x9365, 0xE59C, 0x9366, 0xE59D, 0x9367, 0xE59E, 0x9368, - 0xE59F, 0x9369, 0xE5A0, 0x936B, 0xE5A1, 0x6FC9, 0xE5A2, 0x6FA7, - 0xE5A3, 0x6FB9, 0xE5A4, 0x6FB6, 0xE5A5, 0x6FC2, 0xE5A6, 0x6FE1, - 0xE5A7, 0x6FEE, 0xE5A8, 0x6FDE, 0xE5A9, 0x6FE0, 0xE5AA, 0x6FEF, - 0xE5AB, 0x701A, 0xE5AC, 0x7023, 0xE5AD, 0x701B, 0xE5AE, 0x7039, - 0xE5AF, 0x7035, 0xE5B0, 0x704F, 0xE5B1, 0x705E, 0xE5B2, 0x5B80, - 0xE5B3, 0x5B84, 0xE5B4, 0x5B95, 0xE5B5, 0x5B93, 0xE5B6, 0x5BA5, - 0xE5B7, 0x5BB8, 0xE5B8, 0x752F, 0xE5B9, 0x9A9E, 0xE5BA, 0x6434, - 0xE5BB, 0x5BE4, 0xE5BC, 0x5BEE, 0xE5BD, 0x8930, 0xE5BE, 0x5BF0, - 0xE5BF, 0x8E47, 0xE5C0, 0x8B07, 0xE5C1, 0x8FB6, 0xE5C2, 0x8FD3, - 0xE5C3, 0x8FD5, 0xE5C4, 0x8FE5, 0xE5C5, 0x8FEE, 0xE5C6, 0x8FE4, - 0xE5C7, 0x8FE9, 0xE5C8, 0x8FE6, 0xE5C9, 0x8FF3, 0xE5CA, 0x8FE8, - 0xE5CB, 0x9005, 0xE5CC, 0x9004, 0xE5CD, 0x900B, 0xE5CE, 0x9026, - 0xE5CF, 0x9011, 0xE5D0, 0x900D, 0xE5D1, 0x9016, 0xE5D2, 0x9021, - 0xE5D3, 0x9035, 0xE5D4, 0x9036, 0xE5D5, 0x902D, 0xE5D6, 0x902F, - 0xE5D7, 0x9044, 0xE5D8, 0x9051, 0xE5D9, 0x9052, 0xE5DA, 0x9050, - 0xE5DB, 0x9068, 0xE5DC, 0x9058, 0xE5DD, 0x9062, 0xE5DE, 0x905B, - 0xE5DF, 0x66B9, 0xE5E0, 0x9074, 0xE5E1, 0x907D, 0xE5E2, 0x9082, - 0xE5E3, 0x9088, 0xE5E4, 0x9083, 0xE5E5, 0x908B, 0xE5E6, 0x5F50, - 0xE5E7, 0x5F57, 0xE5E8, 0x5F56, 0xE5E9, 0x5F58, 0xE5EA, 0x5C3B, - 0xE5EB, 0x54AB, 0xE5EC, 0x5C50, 0xE5ED, 0x5C59, 0xE5EE, 0x5B71, - 0xE5EF, 0x5C63, 0xE5F0, 0x5C66, 0xE5F1, 0x7FBC, 0xE5F2, 0x5F2A, - 0xE5F3, 0x5F29, 0xE5F4, 0x5F2D, 0xE5F5, 0x8274, 0xE5F6, 0x5F3C, - 0xE5F7, 0x9B3B, 0xE5F8, 0x5C6E, 0xE5F9, 0x5981, 0xE5FA, 0x5983, - 0xE5FB, 0x598D, 0xE5FC, 0x59A9, 0xE5FD, 0x59AA, 0xE5FE, 0x59A3, - 0xE640, 0x936C, 0xE641, 0x936D, 0xE642, 0x936E, 0xE643, 0x936F, - 0xE644, 0x9370, 0xE645, 0x9371, 0xE646, 0x9372, 0xE647, 0x9373, - 0xE648, 0x9374, 0xE649, 0x9375, 0xE64A, 0x9376, 0xE64B, 0x9377, - 0xE64C, 0x9378, 0xE64D, 0x9379, 0xE64E, 0x937A, 0xE64F, 0x937B, - 0xE650, 0x937C, 0xE651, 0x937D, 0xE652, 0x937E, 0xE653, 0x937F, - 0xE654, 0x9380, 0xE655, 0x9381, 0xE656, 0x9382, 0xE657, 0x9383, - 0xE658, 0x9384, 0xE659, 0x9385, 0xE65A, 0x9386, 0xE65B, 0x9387, - 0xE65C, 0x9388, 0xE65D, 0x9389, 0xE65E, 0x938A, 0xE65F, 0x938B, - 0xE660, 0x938C, 0xE661, 0x938D, 0xE662, 0x938E, 0xE663, 0x9390, - 0xE664, 0x9391, 0xE665, 0x9392, 0xE666, 0x9393, 0xE667, 0x9394, - 0xE668, 0x9395, 0xE669, 0x9396, 0xE66A, 0x9397, 0xE66B, 0x9398, - 0xE66C, 0x9399, 0xE66D, 0x939A, 0xE66E, 0x939B, 0xE66F, 0x939C, - 0xE670, 0x939D, 0xE671, 0x939E, 0xE672, 0x939F, 0xE673, 0x93A0, - 0xE674, 0x93A1, 0xE675, 0x93A2, 0xE676, 0x93A3, 0xE677, 0x93A4, - 0xE678, 0x93A5, 0xE679, 0x93A6, 0xE67A, 0x93A7, 0xE67B, 0x93A8, - 0xE67C, 0x93A9, 0xE67D, 0x93AA, 0xE67E, 0x93AB, 0xE680, 0x93AC, - 0xE681, 0x93AD, 0xE682, 0x93AE, 0xE683, 0x93AF, 0xE684, 0x93B0, - 0xE685, 0x93B1, 0xE686, 0x93B2, 0xE687, 0x93B3, 0xE688, 0x93B4, - 0xE689, 0x93B5, 0xE68A, 0x93B6, 0xE68B, 0x93B7, 0xE68C, 0x93B8, - 0xE68D, 0x93B9, 0xE68E, 0x93BA, 0xE68F, 0x93BB, 0xE690, 0x93BC, - 0xE691, 0x93BD, 0xE692, 0x93BE, 0xE693, 0x93BF, 0xE694, 0x93C0, - 0xE695, 0x93C1, 0xE696, 0x93C2, 0xE697, 0x93C3, 0xE698, 0x93C4, - 0xE699, 0x93C5, 0xE69A, 0x93C6, 0xE69B, 0x93C7, 0xE69C, 0x93C8, - 0xE69D, 0x93C9, 0xE69E, 0x93CB, 0xE69F, 0x93CC, 0xE6A0, 0x93CD, - 0xE6A1, 0x5997, 0xE6A2, 0x59CA, 0xE6A3, 0x59AB, 0xE6A4, 0x599E, - 0xE6A5, 0x59A4, 0xE6A6, 0x59D2, 0xE6A7, 0x59B2, 0xE6A8, 0x59AF, - 0xE6A9, 0x59D7, 0xE6AA, 0x59BE, 0xE6AB, 0x5A05, 0xE6AC, 0x5A06, - 0xE6AD, 0x59DD, 0xE6AE, 0x5A08, 0xE6AF, 0x59E3, 0xE6B0, 0x59D8, - 0xE6B1, 0x59F9, 0xE6B2, 0x5A0C, 0xE6B3, 0x5A09, 0xE6B4, 0x5A32, - 0xE6B5, 0x5A34, 0xE6B6, 0x5A11, 0xE6B7, 0x5A23, 0xE6B8, 0x5A13, - 0xE6B9, 0x5A40, 0xE6BA, 0x5A67, 0xE6BB, 0x5A4A, 0xE6BC, 0x5A55, - 0xE6BD, 0x5A3C, 0xE6BE, 0x5A62, 0xE6BF, 0x5A75, 0xE6C0, 0x80EC, - 0xE6C1, 0x5AAA, 0xE6C2, 0x5A9B, 0xE6C3, 0x5A77, 0xE6C4, 0x5A7A, - 0xE6C5, 0x5ABE, 0xE6C6, 0x5AEB, 0xE6C7, 0x5AB2, 0xE6C8, 0x5AD2, - 0xE6C9, 0x5AD4, 0xE6CA, 0x5AB8, 0xE6CB, 0x5AE0, 0xE6CC, 0x5AE3, - 0xE6CD, 0x5AF1, 0xE6CE, 0x5AD6, 0xE6CF, 0x5AE6, 0xE6D0, 0x5AD8, - 0xE6D1, 0x5ADC, 0xE6D2, 0x5B09, 0xE6D3, 0x5B17, 0xE6D4, 0x5B16, - 0xE6D5, 0x5B32, 0xE6D6, 0x5B37, 0xE6D7, 0x5B40, 0xE6D8, 0x5C15, - 0xE6D9, 0x5C1C, 0xE6DA, 0x5B5A, 0xE6DB, 0x5B65, 0xE6DC, 0x5B73, - 0xE6DD, 0x5B51, 0xE6DE, 0x5B53, 0xE6DF, 0x5B62, 0xE6E0, 0x9A75, - 0xE6E1, 0x9A77, 0xE6E2, 0x9A78, 0xE6E3, 0x9A7A, 0xE6E4, 0x9A7F, - 0xE6E5, 0x9A7D, 0xE6E6, 0x9A80, 0xE6E7, 0x9A81, 0xE6E8, 0x9A85, - 0xE6E9, 0x9A88, 0xE6EA, 0x9A8A, 0xE6EB, 0x9A90, 0xE6EC, 0x9A92, - 0xE6ED, 0x9A93, 0xE6EE, 0x9A96, 0xE6EF, 0x9A98, 0xE6F0, 0x9A9B, - 0xE6F1, 0x9A9C, 0xE6F2, 0x9A9D, 0xE6F3, 0x9A9F, 0xE6F4, 0x9AA0, - 0xE6F5, 0x9AA2, 0xE6F6, 0x9AA3, 0xE6F7, 0x9AA5, 0xE6F8, 0x9AA7, - 0xE6F9, 0x7E9F, 0xE6FA, 0x7EA1, 0xE6FB, 0x7EA3, 0xE6FC, 0x7EA5, - 0xE6FD, 0x7EA8, 0xE6FE, 0x7EA9, 0xE740, 0x93CE, 0xE741, 0x93CF, - 0xE742, 0x93D0, 0xE743, 0x93D1, 0xE744, 0x93D2, 0xE745, 0x93D3, - 0xE746, 0x93D4, 0xE747, 0x93D5, 0xE748, 0x93D7, 0xE749, 0x93D8, - 0xE74A, 0x93D9, 0xE74B, 0x93DA, 0xE74C, 0x93DB, 0xE74D, 0x93DC, - 0xE74E, 0x93DD, 0xE74F, 0x93DE, 0xE750, 0x93DF, 0xE751, 0x93E0, - 0xE752, 0x93E1, 0xE753, 0x93E2, 0xE754, 0x93E3, 0xE755, 0x93E4, - 0xE756, 0x93E5, 0xE757, 0x93E6, 0xE758, 0x93E7, 0xE759, 0x93E8, - 0xE75A, 0x93E9, 0xE75B, 0x93EA, 0xE75C, 0x93EB, 0xE75D, 0x93EC, - 0xE75E, 0x93ED, 0xE75F, 0x93EE, 0xE760, 0x93EF, 0xE761, 0x93F0, - 0xE762, 0x93F1, 0xE763, 0x93F2, 0xE764, 0x93F3, 0xE765, 0x93F4, - 0xE766, 0x93F5, 0xE767, 0x93F6, 0xE768, 0x93F7, 0xE769, 0x93F8, - 0xE76A, 0x93F9, 0xE76B, 0x93FA, 0xE76C, 0x93FB, 0xE76D, 0x93FC, - 0xE76E, 0x93FD, 0xE76F, 0x93FE, 0xE770, 0x93FF, 0xE771, 0x9400, - 0xE772, 0x9401, 0xE773, 0x9402, 0xE774, 0x9403, 0xE775, 0x9404, - 0xE776, 0x9405, 0xE777, 0x9406, 0xE778, 0x9407, 0xE779, 0x9408, - 0xE77A, 0x9409, 0xE77B, 0x940A, 0xE77C, 0x940B, 0xE77D, 0x940C, - 0xE77E, 0x940D, 0xE780, 0x940E, 0xE781, 0x940F, 0xE782, 0x9410, - 0xE783, 0x9411, 0xE784, 0x9412, 0xE785, 0x9413, 0xE786, 0x9414, - 0xE787, 0x9415, 0xE788, 0x9416, 0xE789, 0x9417, 0xE78A, 0x9418, - 0xE78B, 0x9419, 0xE78C, 0x941A, 0xE78D, 0x941B, 0xE78E, 0x941C, - 0xE78F, 0x941D, 0xE790, 0x941E, 0xE791, 0x941F, 0xE792, 0x9420, - 0xE793, 0x9421, 0xE794, 0x9422, 0xE795, 0x9423, 0xE796, 0x9424, - 0xE797, 0x9425, 0xE798, 0x9426, 0xE799, 0x9427, 0xE79A, 0x9428, - 0xE79B, 0x9429, 0xE79C, 0x942A, 0xE79D, 0x942B, 0xE79E, 0x942C, - 0xE79F, 0x942D, 0xE7A0, 0x942E, 0xE7A1, 0x7EAD, 0xE7A2, 0x7EB0, - 0xE7A3, 0x7EBE, 0xE7A4, 0x7EC0, 0xE7A5, 0x7EC1, 0xE7A6, 0x7EC2, - 0xE7A7, 0x7EC9, 0xE7A8, 0x7ECB, 0xE7A9, 0x7ECC, 0xE7AA, 0x7ED0, - 0xE7AB, 0x7ED4, 0xE7AC, 0x7ED7, 0xE7AD, 0x7EDB, 0xE7AE, 0x7EE0, - 0xE7AF, 0x7EE1, 0xE7B0, 0x7EE8, 0xE7B1, 0x7EEB, 0xE7B2, 0x7EEE, - 0xE7B3, 0x7EEF, 0xE7B4, 0x7EF1, 0xE7B5, 0x7EF2, 0xE7B6, 0x7F0D, - 0xE7B7, 0x7EF6, 0xE7B8, 0x7EFA, 0xE7B9, 0x7EFB, 0xE7BA, 0x7EFE, - 0xE7BB, 0x7F01, 0xE7BC, 0x7F02, 0xE7BD, 0x7F03, 0xE7BE, 0x7F07, - 0xE7BF, 0x7F08, 0xE7C0, 0x7F0B, 0xE7C1, 0x7F0C, 0xE7C2, 0x7F0F, - 0xE7C3, 0x7F11, 0xE7C4, 0x7F12, 0xE7C5, 0x7F17, 0xE7C6, 0x7F19, - 0xE7C7, 0x7F1C, 0xE7C8, 0x7F1B, 0xE7C9, 0x7F1F, 0xE7CA, 0x7F21, - 0xE7CB, 0x7F22, 0xE7CC, 0x7F23, 0xE7CD, 0x7F24, 0xE7CE, 0x7F25, - 0xE7CF, 0x7F26, 0xE7D0, 0x7F27, 0xE7D1, 0x7F2A, 0xE7D2, 0x7F2B, - 0xE7D3, 0x7F2C, 0xE7D4, 0x7F2D, 0xE7D5, 0x7F2F, 0xE7D6, 0x7F30, - 0xE7D7, 0x7F31, 0xE7D8, 0x7F32, 0xE7D9, 0x7F33, 0xE7DA, 0x7F35, - 0xE7DB, 0x5E7A, 0xE7DC, 0x757F, 0xE7DD, 0x5DDB, 0xE7DE, 0x753E, - 0xE7DF, 0x9095, 0xE7E0, 0x738E, 0xE7E1, 0x7391, 0xE7E2, 0x73AE, - 0xE7E3, 0x73A2, 0xE7E4, 0x739F, 0xE7E5, 0x73CF, 0xE7E6, 0x73C2, - 0xE7E7, 0x73D1, 0xE7E8, 0x73B7, 0xE7E9, 0x73B3, 0xE7EA, 0x73C0, - 0xE7EB, 0x73C9, 0xE7EC, 0x73C8, 0xE7ED, 0x73E5, 0xE7EE, 0x73D9, - 0xE7EF, 0x987C, 0xE7F0, 0x740A, 0xE7F1, 0x73E9, 0xE7F2, 0x73E7, - 0xE7F3, 0x73DE, 0xE7F4, 0x73BA, 0xE7F5, 0x73F2, 0xE7F6, 0x740F, - 0xE7F7, 0x742A, 0xE7F8, 0x745B, 0xE7F9, 0x7426, 0xE7FA, 0x7425, - 0xE7FB, 0x7428, 0xE7FC, 0x7430, 0xE7FD, 0x742E, 0xE7FE, 0x742C, - 0xE840, 0x942F, 0xE841, 0x9430, 0xE842, 0x9431, 0xE843, 0x9432, - 0xE844, 0x9433, 0xE845, 0x9434, 0xE846, 0x9435, 0xE847, 0x9436, - 0xE848, 0x9437, 0xE849, 0x9438, 0xE84A, 0x9439, 0xE84B, 0x943A, - 0xE84C, 0x943B, 0xE84D, 0x943C, 0xE84E, 0x943D, 0xE84F, 0x943F, - 0xE850, 0x9440, 0xE851, 0x9441, 0xE852, 0x9442, 0xE853, 0x9443, - 0xE854, 0x9444, 0xE855, 0x9445, 0xE856, 0x9446, 0xE857, 0x9447, - 0xE858, 0x9448, 0xE859, 0x9449, 0xE85A, 0x944A, 0xE85B, 0x944B, - 0xE85C, 0x944C, 0xE85D, 0x944D, 0xE85E, 0x944E, 0xE85F, 0x944F, - 0xE860, 0x9450, 0xE861, 0x9451, 0xE862, 0x9452, 0xE863, 0x9453, - 0xE864, 0x9454, 0xE865, 0x9455, 0xE866, 0x9456, 0xE867, 0x9457, - 0xE868, 0x9458, 0xE869, 0x9459, 0xE86A, 0x945A, 0xE86B, 0x945B, - 0xE86C, 0x945C, 0xE86D, 0x945D, 0xE86E, 0x945E, 0xE86F, 0x945F, - 0xE870, 0x9460, 0xE871, 0x9461, 0xE872, 0x9462, 0xE873, 0x9463, - 0xE874, 0x9464, 0xE875, 0x9465, 0xE876, 0x9466, 0xE877, 0x9467, - 0xE878, 0x9468, 0xE879, 0x9469, 0xE87A, 0x946A, 0xE87B, 0x946C, - 0xE87C, 0x946D, 0xE87D, 0x946E, 0xE87E, 0x946F, 0xE880, 0x9470, - 0xE881, 0x9471, 0xE882, 0x9472, 0xE883, 0x9473, 0xE884, 0x9474, - 0xE885, 0x9475, 0xE886, 0x9476, 0xE887, 0x9477, 0xE888, 0x9478, - 0xE889, 0x9479, 0xE88A, 0x947A, 0xE88B, 0x947B, 0xE88C, 0x947C, - 0xE88D, 0x947D, 0xE88E, 0x947E, 0xE88F, 0x947F, 0xE890, 0x9480, - 0xE891, 0x9481, 0xE892, 0x9482, 0xE893, 0x9483, 0xE894, 0x9484, - 0xE895, 0x9491, 0xE896, 0x9496, 0xE897, 0x9498, 0xE898, 0x94C7, - 0xE899, 0x94CF, 0xE89A, 0x94D3, 0xE89B, 0x94D4, 0xE89C, 0x94DA, - 0xE89D, 0x94E6, 0xE89E, 0x94FB, 0xE89F, 0x951C, 0xE8A0, 0x9520, - 0xE8A1, 0x741B, 0xE8A2, 0x741A, 0xE8A3, 0x7441, 0xE8A4, 0x745C, - 0xE8A5, 0x7457, 0xE8A6, 0x7455, 0xE8A7, 0x7459, 0xE8A8, 0x7477, - 0xE8A9, 0x746D, 0xE8AA, 0x747E, 0xE8AB, 0x749C, 0xE8AC, 0x748E, - 0xE8AD, 0x7480, 0xE8AE, 0x7481, 0xE8AF, 0x7487, 0xE8B0, 0x748B, - 0xE8B1, 0x749E, 0xE8B2, 0x74A8, 0xE8B3, 0x74A9, 0xE8B4, 0x7490, - 0xE8B5, 0x74A7, 0xE8B6, 0x74D2, 0xE8B7, 0x74BA, 0xE8B8, 0x97EA, - 0xE8B9, 0x97EB, 0xE8BA, 0x97EC, 0xE8BB, 0x674C, 0xE8BC, 0x6753, - 0xE8BD, 0x675E, 0xE8BE, 0x6748, 0xE8BF, 0x6769, 0xE8C0, 0x67A5, - 0xE8C1, 0x6787, 0xE8C2, 0x676A, 0xE8C3, 0x6773, 0xE8C4, 0x6798, - 0xE8C5, 0x67A7, 0xE8C6, 0x6775, 0xE8C7, 0x67A8, 0xE8C8, 0x679E, - 0xE8C9, 0x67AD, 0xE8CA, 0x678B, 0xE8CB, 0x6777, 0xE8CC, 0x677C, - 0xE8CD, 0x67F0, 0xE8CE, 0x6809, 0xE8CF, 0x67D8, 0xE8D0, 0x680A, - 0xE8D1, 0x67E9, 0xE8D2, 0x67B0, 0xE8D3, 0x680C, 0xE8D4, 0x67D9, - 0xE8D5, 0x67B5, 0xE8D6, 0x67DA, 0xE8D7, 0x67B3, 0xE8D8, 0x67DD, - 0xE8D9, 0x6800, 0xE8DA, 0x67C3, 0xE8DB, 0x67B8, 0xE8DC, 0x67E2, - 0xE8DD, 0x680E, 0xE8DE, 0x67C1, 0xE8DF, 0x67FD, 0xE8E0, 0x6832, - 0xE8E1, 0x6833, 0xE8E2, 0x6860, 0xE8E3, 0x6861, 0xE8E4, 0x684E, - 0xE8E5, 0x6862, 0xE8E6, 0x6844, 0xE8E7, 0x6864, 0xE8E8, 0x6883, - 0xE8E9, 0x681D, 0xE8EA, 0x6855, 0xE8EB, 0x6866, 0xE8EC, 0x6841, - 0xE8ED, 0x6867, 0xE8EE, 0x6840, 0xE8EF, 0x683E, 0xE8F0, 0x684A, - 0xE8F1, 0x6849, 0xE8F2, 0x6829, 0xE8F3, 0x68B5, 0xE8F4, 0x688F, - 0xE8F5, 0x6874, 0xE8F6, 0x6877, 0xE8F7, 0x6893, 0xE8F8, 0x686B, - 0xE8F9, 0x68C2, 0xE8FA, 0x696E, 0xE8FB, 0x68FC, 0xE8FC, 0x691F, - 0xE8FD, 0x6920, 0xE8FE, 0x68F9, 0xE940, 0x9527, 0xE941, 0x9533, - 0xE942, 0x953D, 0xE943, 0x9543, 0xE944, 0x9548, 0xE945, 0x954B, - 0xE946, 0x9555, 0xE947, 0x955A, 0xE948, 0x9560, 0xE949, 0x956E, - 0xE94A, 0x9574, 0xE94B, 0x9575, 0xE94C, 0x9577, 0xE94D, 0x9578, - 0xE94E, 0x9579, 0xE94F, 0x957A, 0xE950, 0x957B, 0xE951, 0x957C, - 0xE952, 0x957D, 0xE953, 0x957E, 0xE954, 0x9580, 0xE955, 0x9581, - 0xE956, 0x9582, 0xE957, 0x9583, 0xE958, 0x9584, 0xE959, 0x9585, - 0xE95A, 0x9586, 0xE95B, 0x9587, 0xE95C, 0x9588, 0xE95D, 0x9589, - 0xE95E, 0x958A, 0xE95F, 0x958B, 0xE960, 0x958C, 0xE961, 0x958D, - 0xE962, 0x958E, 0xE963, 0x958F, 0xE964, 0x9590, 0xE965, 0x9591, - 0xE966, 0x9592, 0xE967, 0x9593, 0xE968, 0x9594, 0xE969, 0x9595, - 0xE96A, 0x9596, 0xE96B, 0x9597, 0xE96C, 0x9598, 0xE96D, 0x9599, - 0xE96E, 0x959A, 0xE96F, 0x959B, 0xE970, 0x959C, 0xE971, 0x959D, - 0xE972, 0x959E, 0xE973, 0x959F, 0xE974, 0x95A0, 0xE975, 0x95A1, - 0xE976, 0x95A2, 0xE977, 0x95A3, 0xE978, 0x95A4, 0xE979, 0x95A5, - 0xE97A, 0x95A6, 0xE97B, 0x95A7, 0xE97C, 0x95A8, 0xE97D, 0x95A9, - 0xE97E, 0x95AA, 0xE980, 0x95AB, 0xE981, 0x95AC, 0xE982, 0x95AD, - 0xE983, 0x95AE, 0xE984, 0x95AF, 0xE985, 0x95B0, 0xE986, 0x95B1, - 0xE987, 0x95B2, 0xE988, 0x95B3, 0xE989, 0x95B4, 0xE98A, 0x95B5, - 0xE98B, 0x95B6, 0xE98C, 0x95B7, 0xE98D, 0x95B8, 0xE98E, 0x95B9, - 0xE98F, 0x95BA, 0xE990, 0x95BB, 0xE991, 0x95BC, 0xE992, 0x95BD, - 0xE993, 0x95BE, 0xE994, 0x95BF, 0xE995, 0x95C0, 0xE996, 0x95C1, - 0xE997, 0x95C2, 0xE998, 0x95C3, 0xE999, 0x95C4, 0xE99A, 0x95C5, - 0xE99B, 0x95C6, 0xE99C, 0x95C7, 0xE99D, 0x95C8, 0xE99E, 0x95C9, - 0xE99F, 0x95CA, 0xE9A0, 0x95CB, 0xE9A1, 0x6924, 0xE9A2, 0x68F0, - 0xE9A3, 0x690B, 0xE9A4, 0x6901, 0xE9A5, 0x6957, 0xE9A6, 0x68E3, - 0xE9A7, 0x6910, 0xE9A8, 0x6971, 0xE9A9, 0x6939, 0xE9AA, 0x6960, - 0xE9AB, 0x6942, 0xE9AC, 0x695D, 0xE9AD, 0x6984, 0xE9AE, 0x696B, - 0xE9AF, 0x6980, 0xE9B0, 0x6998, 0xE9B1, 0x6978, 0xE9B2, 0x6934, - 0xE9B3, 0x69CC, 0xE9B4, 0x6987, 0xE9B5, 0x6988, 0xE9B6, 0x69CE, - 0xE9B7, 0x6989, 0xE9B8, 0x6966, 0xE9B9, 0x6963, 0xE9BA, 0x6979, - 0xE9BB, 0x699B, 0xE9BC, 0x69A7, 0xE9BD, 0x69BB, 0xE9BE, 0x69AB, - 0xE9BF, 0x69AD, 0xE9C0, 0x69D4, 0xE9C1, 0x69B1, 0xE9C2, 0x69C1, - 0xE9C3, 0x69CA, 0xE9C4, 0x69DF, 0xE9C5, 0x6995, 0xE9C6, 0x69E0, - 0xE9C7, 0x698D, 0xE9C8, 0x69FF, 0xE9C9, 0x6A2F, 0xE9CA, 0x69ED, - 0xE9CB, 0x6A17, 0xE9CC, 0x6A18, 0xE9CD, 0x6A65, 0xE9CE, 0x69F2, - 0xE9CF, 0x6A44, 0xE9D0, 0x6A3E, 0xE9D1, 0x6AA0, 0xE9D2, 0x6A50, - 0xE9D3, 0x6A5B, 0xE9D4, 0x6A35, 0xE9D5, 0x6A8E, 0xE9D6, 0x6A79, - 0xE9D7, 0x6A3D, 0xE9D8, 0x6A28, 0xE9D9, 0x6A58, 0xE9DA, 0x6A7C, - 0xE9DB, 0x6A91, 0xE9DC, 0x6A90, 0xE9DD, 0x6AA9, 0xE9DE, 0x6A97, - 0xE9DF, 0x6AAB, 0xE9E0, 0x7337, 0xE9E1, 0x7352, 0xE9E2, 0x6B81, - 0xE9E3, 0x6B82, 0xE9E4, 0x6B87, 0xE9E5, 0x6B84, 0xE9E6, 0x6B92, - 0xE9E7, 0x6B93, 0xE9E8, 0x6B8D, 0xE9E9, 0x6B9A, 0xE9EA, 0x6B9B, - 0xE9EB, 0x6BA1, 0xE9EC, 0x6BAA, 0xE9ED, 0x8F6B, 0xE9EE, 0x8F6D, - 0xE9EF, 0x8F71, 0xE9F0, 0x8F72, 0xE9F1, 0x8F73, 0xE9F2, 0x8F75, - 0xE9F3, 0x8F76, 0xE9F4, 0x8F78, 0xE9F5, 0x8F77, 0xE9F6, 0x8F79, - 0xE9F7, 0x8F7A, 0xE9F8, 0x8F7C, 0xE9F9, 0x8F7E, 0xE9FA, 0x8F81, - 0xE9FB, 0x8F82, 0xE9FC, 0x8F84, 0xE9FD, 0x8F87, 0xE9FE, 0x8F8B, - 0xEA40, 0x95CC, 0xEA41, 0x95CD, 0xEA42, 0x95CE, 0xEA43, 0x95CF, - 0xEA44, 0x95D0, 0xEA45, 0x95D1, 0xEA46, 0x95D2, 0xEA47, 0x95D3, - 0xEA48, 0x95D4, 0xEA49, 0x95D5, 0xEA4A, 0x95D6, 0xEA4B, 0x95D7, - 0xEA4C, 0x95D8, 0xEA4D, 0x95D9, 0xEA4E, 0x95DA, 0xEA4F, 0x95DB, - 0xEA50, 0x95DC, 0xEA51, 0x95DD, 0xEA52, 0x95DE, 0xEA53, 0x95DF, - 0xEA54, 0x95E0, 0xEA55, 0x95E1, 0xEA56, 0x95E2, 0xEA57, 0x95E3, - 0xEA58, 0x95E4, 0xEA59, 0x95E5, 0xEA5A, 0x95E6, 0xEA5B, 0x95E7, - 0xEA5C, 0x95EC, 0xEA5D, 0x95FF, 0xEA5E, 0x9607, 0xEA5F, 0x9613, - 0xEA60, 0x9618, 0xEA61, 0x961B, 0xEA62, 0x961E, 0xEA63, 0x9620, - 0xEA64, 0x9623, 0xEA65, 0x9624, 0xEA66, 0x9625, 0xEA67, 0x9626, - 0xEA68, 0x9627, 0xEA69, 0x9628, 0xEA6A, 0x9629, 0xEA6B, 0x962B, - 0xEA6C, 0x962C, 0xEA6D, 0x962D, 0xEA6E, 0x962F, 0xEA6F, 0x9630, - 0xEA70, 0x9637, 0xEA71, 0x9638, 0xEA72, 0x9639, 0xEA73, 0x963A, - 0xEA74, 0x963E, 0xEA75, 0x9641, 0xEA76, 0x9643, 0xEA77, 0x964A, - 0xEA78, 0x964E, 0xEA79, 0x964F, 0xEA7A, 0x9651, 0xEA7B, 0x9652, - 0xEA7C, 0x9653, 0xEA7D, 0x9656, 0xEA7E, 0x9657, 0xEA80, 0x9658, - 0xEA81, 0x9659, 0xEA82, 0x965A, 0xEA83, 0x965C, 0xEA84, 0x965D, - 0xEA85, 0x965E, 0xEA86, 0x9660, 0xEA87, 0x9663, 0xEA88, 0x9665, - 0xEA89, 0x9666, 0xEA8A, 0x966B, 0xEA8B, 0x966D, 0xEA8C, 0x966E, - 0xEA8D, 0x966F, 0xEA8E, 0x9670, 0xEA8F, 0x9671, 0xEA90, 0x9673, - 0xEA91, 0x9678, 0xEA92, 0x9679, 0xEA93, 0x967A, 0xEA94, 0x967B, - 0xEA95, 0x967C, 0xEA96, 0x967D, 0xEA97, 0x967E, 0xEA98, 0x967F, - 0xEA99, 0x9680, 0xEA9A, 0x9681, 0xEA9B, 0x9682, 0xEA9C, 0x9683, - 0xEA9D, 0x9684, 0xEA9E, 0x9687, 0xEA9F, 0x9689, 0xEAA0, 0x968A, - 0xEAA1, 0x8F8D, 0xEAA2, 0x8F8E, 0xEAA3, 0x8F8F, 0xEAA4, 0x8F98, - 0xEAA5, 0x8F9A, 0xEAA6, 0x8ECE, 0xEAA7, 0x620B, 0xEAA8, 0x6217, - 0xEAA9, 0x621B, 0xEAAA, 0x621F, 0xEAAB, 0x6222, 0xEAAC, 0x6221, - 0xEAAD, 0x6225, 0xEAAE, 0x6224, 0xEAAF, 0x622C, 0xEAB0, 0x81E7, - 0xEAB1, 0x74EF, 0xEAB2, 0x74F4, 0xEAB3, 0x74FF, 0xEAB4, 0x750F, - 0xEAB5, 0x7511, 0xEAB6, 0x7513, 0xEAB7, 0x6534, 0xEAB8, 0x65EE, - 0xEAB9, 0x65EF, 0xEABA, 0x65F0, 0xEABB, 0x660A, 0xEABC, 0x6619, - 0xEABD, 0x6772, 0xEABE, 0x6603, 0xEABF, 0x6615, 0xEAC0, 0x6600, - 0xEAC1, 0x7085, 0xEAC2, 0x66F7, 0xEAC3, 0x661D, 0xEAC4, 0x6634, - 0xEAC5, 0x6631, 0xEAC6, 0x6636, 0xEAC7, 0x6635, 0xEAC8, 0x8006, - 0xEAC9, 0x665F, 0xEACA, 0x6654, 0xEACB, 0x6641, 0xEACC, 0x664F, - 0xEACD, 0x6656, 0xEACE, 0x6661, 0xEACF, 0x6657, 0xEAD0, 0x6677, - 0xEAD1, 0x6684, 0xEAD2, 0x668C, 0xEAD3, 0x66A7, 0xEAD4, 0x669D, - 0xEAD5, 0x66BE, 0xEAD6, 0x66DB, 0xEAD7, 0x66DC, 0xEAD8, 0x66E6, - 0xEAD9, 0x66E9, 0xEADA, 0x8D32, 0xEADB, 0x8D33, 0xEADC, 0x8D36, - 0xEADD, 0x8D3B, 0xEADE, 0x8D3D, 0xEADF, 0x8D40, 0xEAE0, 0x8D45, - 0xEAE1, 0x8D46, 0xEAE2, 0x8D48, 0xEAE3, 0x8D49, 0xEAE4, 0x8D47, - 0xEAE5, 0x8D4D, 0xEAE6, 0x8D55, 0xEAE7, 0x8D59, 0xEAE8, 0x89C7, - 0xEAE9, 0x89CA, 0xEAEA, 0x89CB, 0xEAEB, 0x89CC, 0xEAEC, 0x89CE, - 0xEAED, 0x89CF, 0xEAEE, 0x89D0, 0xEAEF, 0x89D1, 0xEAF0, 0x726E, - 0xEAF1, 0x729F, 0xEAF2, 0x725D, 0xEAF3, 0x7266, 0xEAF4, 0x726F, - 0xEAF5, 0x727E, 0xEAF6, 0x727F, 0xEAF7, 0x7284, 0xEAF8, 0x728B, - 0xEAF9, 0x728D, 0xEAFA, 0x728F, 0xEAFB, 0x7292, 0xEAFC, 0x6308, - 0xEAFD, 0x6332, 0xEAFE, 0x63B0, 0xEB40, 0x968C, 0xEB41, 0x968E, - 0xEB42, 0x9691, 0xEB43, 0x9692, 0xEB44, 0x9693, 0xEB45, 0x9695, - 0xEB46, 0x9696, 0xEB47, 0x969A, 0xEB48, 0x969B, 0xEB49, 0x969D, - 0xEB4A, 0x969E, 0xEB4B, 0x969F, 0xEB4C, 0x96A0, 0xEB4D, 0x96A1, - 0xEB4E, 0x96A2, 0xEB4F, 0x96A3, 0xEB50, 0x96A4, 0xEB51, 0x96A5, - 0xEB52, 0x96A6, 0xEB53, 0x96A8, 0xEB54, 0x96A9, 0xEB55, 0x96AA, - 0xEB56, 0x96AB, 0xEB57, 0x96AC, 0xEB58, 0x96AD, 0xEB59, 0x96AE, - 0xEB5A, 0x96AF, 0xEB5B, 0x96B1, 0xEB5C, 0x96B2, 0xEB5D, 0x96B4, - 0xEB5E, 0x96B5, 0xEB5F, 0x96B7, 0xEB60, 0x96B8, 0xEB61, 0x96BA, - 0xEB62, 0x96BB, 0xEB63, 0x96BF, 0xEB64, 0x96C2, 0xEB65, 0x96C3, - 0xEB66, 0x96C8, 0xEB67, 0x96CA, 0xEB68, 0x96CB, 0xEB69, 0x96D0, - 0xEB6A, 0x96D1, 0xEB6B, 0x96D3, 0xEB6C, 0x96D4, 0xEB6D, 0x96D6, - 0xEB6E, 0x96D7, 0xEB6F, 0x96D8, 0xEB70, 0x96D9, 0xEB71, 0x96DA, - 0xEB72, 0x96DB, 0xEB73, 0x96DC, 0xEB74, 0x96DD, 0xEB75, 0x96DE, - 0xEB76, 0x96DF, 0xEB77, 0x96E1, 0xEB78, 0x96E2, 0xEB79, 0x96E3, - 0xEB7A, 0x96E4, 0xEB7B, 0x96E5, 0xEB7C, 0x96E6, 0xEB7D, 0x96E7, - 0xEB7E, 0x96EB, 0xEB80, 0x96EC, 0xEB81, 0x96ED, 0xEB82, 0x96EE, - 0xEB83, 0x96F0, 0xEB84, 0x96F1, 0xEB85, 0x96F2, 0xEB86, 0x96F4, - 0xEB87, 0x96F5, 0xEB88, 0x96F8, 0xEB89, 0x96FA, 0xEB8A, 0x96FB, - 0xEB8B, 0x96FC, 0xEB8C, 0x96FD, 0xEB8D, 0x96FF, 0xEB8E, 0x9702, - 0xEB8F, 0x9703, 0xEB90, 0x9705, 0xEB91, 0x970A, 0xEB92, 0x970B, - 0xEB93, 0x970C, 0xEB94, 0x9710, 0xEB95, 0x9711, 0xEB96, 0x9712, - 0xEB97, 0x9714, 0xEB98, 0x9715, 0xEB99, 0x9717, 0xEB9A, 0x9718, - 0xEB9B, 0x9719, 0xEB9C, 0x971A, 0xEB9D, 0x971B, 0xEB9E, 0x971D, - 0xEB9F, 0x971F, 0xEBA0, 0x9720, 0xEBA1, 0x643F, 0xEBA2, 0x64D8, - 0xEBA3, 0x8004, 0xEBA4, 0x6BEA, 0xEBA5, 0x6BF3, 0xEBA6, 0x6BFD, - 0xEBA7, 0x6BF5, 0xEBA8, 0x6BF9, 0xEBA9, 0x6C05, 0xEBAA, 0x6C07, - 0xEBAB, 0x6C06, 0xEBAC, 0x6C0D, 0xEBAD, 0x6C15, 0xEBAE, 0x6C18, - 0xEBAF, 0x6C19, 0xEBB0, 0x6C1A, 0xEBB1, 0x6C21, 0xEBB2, 0x6C29, - 0xEBB3, 0x6C24, 0xEBB4, 0x6C2A, 0xEBB5, 0x6C32, 0xEBB6, 0x6535, - 0xEBB7, 0x6555, 0xEBB8, 0x656B, 0xEBB9, 0x724D, 0xEBBA, 0x7252, - 0xEBBB, 0x7256, 0xEBBC, 0x7230, 0xEBBD, 0x8662, 0xEBBE, 0x5216, - 0xEBBF, 0x809F, 0xEBC0, 0x809C, 0xEBC1, 0x8093, 0xEBC2, 0x80BC, - 0xEBC3, 0x670A, 0xEBC4, 0x80BD, 0xEBC5, 0x80B1, 0xEBC6, 0x80AB, - 0xEBC7, 0x80AD, 0xEBC8, 0x80B4, 0xEBC9, 0x80B7, 0xEBCA, 0x80E7, - 0xEBCB, 0x80E8, 0xEBCC, 0x80E9, 0xEBCD, 0x80EA, 0xEBCE, 0x80DB, - 0xEBCF, 0x80C2, 0xEBD0, 0x80C4, 0xEBD1, 0x80D9, 0xEBD2, 0x80CD, - 0xEBD3, 0x80D7, 0xEBD4, 0x6710, 0xEBD5, 0x80DD, 0xEBD6, 0x80EB, - 0xEBD7, 0x80F1, 0xEBD8, 0x80F4, 0xEBD9, 0x80ED, 0xEBDA, 0x810D, - 0xEBDB, 0x810E, 0xEBDC, 0x80F2, 0xEBDD, 0x80FC, 0xEBDE, 0x6715, - 0xEBDF, 0x8112, 0xEBE0, 0x8C5A, 0xEBE1, 0x8136, 0xEBE2, 0x811E, - 0xEBE3, 0x812C, 0xEBE4, 0x8118, 0xEBE5, 0x8132, 0xEBE6, 0x8148, - 0xEBE7, 0x814C, 0xEBE8, 0x8153, 0xEBE9, 0x8174, 0xEBEA, 0x8159, - 0xEBEB, 0x815A, 0xEBEC, 0x8171, 0xEBED, 0x8160, 0xEBEE, 0x8169, - 0xEBEF, 0x817C, 0xEBF0, 0x817D, 0xEBF1, 0x816D, 0xEBF2, 0x8167, - 0xEBF3, 0x584D, 0xEBF4, 0x5AB5, 0xEBF5, 0x8188, 0xEBF6, 0x8182, - 0xEBF7, 0x8191, 0xEBF8, 0x6ED5, 0xEBF9, 0x81A3, 0xEBFA, 0x81AA, - 0xEBFB, 0x81CC, 0xEBFC, 0x6726, 0xEBFD, 0x81CA, 0xEBFE, 0x81BB, - 0xEC40, 0x9721, 0xEC41, 0x9722, 0xEC42, 0x9723, 0xEC43, 0x9724, - 0xEC44, 0x9725, 0xEC45, 0x9726, 0xEC46, 0x9727, 0xEC47, 0x9728, - 0xEC48, 0x9729, 0xEC49, 0x972B, 0xEC4A, 0x972C, 0xEC4B, 0x972E, - 0xEC4C, 0x972F, 0xEC4D, 0x9731, 0xEC4E, 0x9733, 0xEC4F, 0x9734, - 0xEC50, 0x9735, 0xEC51, 0x9736, 0xEC52, 0x9737, 0xEC53, 0x973A, - 0xEC54, 0x973B, 0xEC55, 0x973C, 0xEC56, 0x973D, 0xEC57, 0x973F, - 0xEC58, 0x9740, 0xEC59, 0x9741, 0xEC5A, 0x9742, 0xEC5B, 0x9743, - 0xEC5C, 0x9744, 0xEC5D, 0x9745, 0xEC5E, 0x9746, 0xEC5F, 0x9747, - 0xEC60, 0x9748, 0xEC61, 0x9749, 0xEC62, 0x974A, 0xEC63, 0x974B, - 0xEC64, 0x974C, 0xEC65, 0x974D, 0xEC66, 0x974E, 0xEC67, 0x974F, - 0xEC68, 0x9750, 0xEC69, 0x9751, 0xEC6A, 0x9754, 0xEC6B, 0x9755, - 0xEC6C, 0x9757, 0xEC6D, 0x9758, 0xEC6E, 0x975A, 0xEC6F, 0x975C, - 0xEC70, 0x975D, 0xEC71, 0x975F, 0xEC72, 0x9763, 0xEC73, 0x9764, - 0xEC74, 0x9766, 0xEC75, 0x9767, 0xEC76, 0x9768, 0xEC77, 0x976A, - 0xEC78, 0x976B, 0xEC79, 0x976C, 0xEC7A, 0x976D, 0xEC7B, 0x976E, - 0xEC7C, 0x976F, 0xEC7D, 0x9770, 0xEC7E, 0x9771, 0xEC80, 0x9772, - 0xEC81, 0x9775, 0xEC82, 0x9777, 0xEC83, 0x9778, 0xEC84, 0x9779, - 0xEC85, 0x977A, 0xEC86, 0x977B, 0xEC87, 0x977D, 0xEC88, 0x977E, - 0xEC89, 0x977F, 0xEC8A, 0x9780, 0xEC8B, 0x9781, 0xEC8C, 0x9782, - 0xEC8D, 0x9783, 0xEC8E, 0x9784, 0xEC8F, 0x9786, 0xEC90, 0x9787, - 0xEC91, 0x9788, 0xEC92, 0x9789, 0xEC93, 0x978A, 0xEC94, 0x978C, - 0xEC95, 0x978E, 0xEC96, 0x978F, 0xEC97, 0x9790, 0xEC98, 0x9793, - 0xEC99, 0x9795, 0xEC9A, 0x9796, 0xEC9B, 0x9797, 0xEC9C, 0x9799, - 0xEC9D, 0x979A, 0xEC9E, 0x979B, 0xEC9F, 0x979C, 0xECA0, 0x979D, - 0xECA1, 0x81C1, 0xECA2, 0x81A6, 0xECA3, 0x6B24, 0xECA4, 0x6B37, - 0xECA5, 0x6B39, 0xECA6, 0x6B43, 0xECA7, 0x6B46, 0xECA8, 0x6B59, - 0xECA9, 0x98D1, 0xECAA, 0x98D2, 0xECAB, 0x98D3, 0xECAC, 0x98D5, - 0xECAD, 0x98D9, 0xECAE, 0x98DA, 0xECAF, 0x6BB3, 0xECB0, 0x5F40, - 0xECB1, 0x6BC2, 0xECB2, 0x89F3, 0xECB3, 0x6590, 0xECB4, 0x9F51, - 0xECB5, 0x6593, 0xECB6, 0x65BC, 0xECB7, 0x65C6, 0xECB8, 0x65C4, - 0xECB9, 0x65C3, 0xECBA, 0x65CC, 0xECBB, 0x65CE, 0xECBC, 0x65D2, - 0xECBD, 0x65D6, 0xECBE, 0x7080, 0xECBF, 0x709C, 0xECC0, 0x7096, - 0xECC1, 0x709D, 0xECC2, 0x70BB, 0xECC3, 0x70C0, 0xECC4, 0x70B7, - 0xECC5, 0x70AB, 0xECC6, 0x70B1, 0xECC7, 0x70E8, 0xECC8, 0x70CA, - 0xECC9, 0x7110, 0xECCA, 0x7113, 0xECCB, 0x7116, 0xECCC, 0x712F, - 0xECCD, 0x7131, 0xECCE, 0x7173, 0xECCF, 0x715C, 0xECD0, 0x7168, - 0xECD1, 0x7145, 0xECD2, 0x7172, 0xECD3, 0x714A, 0xECD4, 0x7178, - 0xECD5, 0x717A, 0xECD6, 0x7198, 0xECD7, 0x71B3, 0xECD8, 0x71B5, - 0xECD9, 0x71A8, 0xECDA, 0x71A0, 0xECDB, 0x71E0, 0xECDC, 0x71D4, - 0xECDD, 0x71E7, 0xECDE, 0x71F9, 0xECDF, 0x721D, 0xECE0, 0x7228, - 0xECE1, 0x706C, 0xECE2, 0x7118, 0xECE3, 0x7166, 0xECE4, 0x71B9, - 0xECE5, 0x623E, 0xECE6, 0x623D, 0xECE7, 0x6243, 0xECE8, 0x6248, - 0xECE9, 0x6249, 0xECEA, 0x793B, 0xECEB, 0x7940, 0xECEC, 0x7946, - 0xECED, 0x7949, 0xECEE, 0x795B, 0xECEF, 0x795C, 0xECF0, 0x7953, - 0xECF1, 0x795A, 0xECF2, 0x7962, 0xECF3, 0x7957, 0xECF4, 0x7960, - 0xECF5, 0x796F, 0xECF6, 0x7967, 0xECF7, 0x797A, 0xECF8, 0x7985, - 0xECF9, 0x798A, 0xECFA, 0x799A, 0xECFB, 0x79A7, 0xECFC, 0x79B3, - 0xECFD, 0x5FD1, 0xECFE, 0x5FD0, 0xED40, 0x979E, 0xED41, 0x979F, - 0xED42, 0x97A1, 0xED43, 0x97A2, 0xED44, 0x97A4, 0xED45, 0x97A5, - 0xED46, 0x97A6, 0xED47, 0x97A7, 0xED48, 0x97A8, 0xED49, 0x97A9, - 0xED4A, 0x97AA, 0xED4B, 0x97AC, 0xED4C, 0x97AE, 0xED4D, 0x97B0, - 0xED4E, 0x97B1, 0xED4F, 0x97B3, 0xED50, 0x97B5, 0xED51, 0x97B6, - 0xED52, 0x97B7, 0xED53, 0x97B8, 0xED54, 0x97B9, 0xED55, 0x97BA, - 0xED56, 0x97BB, 0xED57, 0x97BC, 0xED58, 0x97BD, 0xED59, 0x97BE, - 0xED5A, 0x97BF, 0xED5B, 0x97C0, 0xED5C, 0x97C1, 0xED5D, 0x97C2, - 0xED5E, 0x97C3, 0xED5F, 0x97C4, 0xED60, 0x97C5, 0xED61, 0x97C6, - 0xED62, 0x97C7, 0xED63, 0x97C8, 0xED64, 0x97C9, 0xED65, 0x97CA, - 0xED66, 0x97CB, 0xED67, 0x97CC, 0xED68, 0x97CD, 0xED69, 0x97CE, - 0xED6A, 0x97CF, 0xED6B, 0x97D0, 0xED6C, 0x97D1, 0xED6D, 0x97D2, - 0xED6E, 0x97D3, 0xED6F, 0x97D4, 0xED70, 0x97D5, 0xED71, 0x97D6, - 0xED72, 0x97D7, 0xED73, 0x97D8, 0xED74, 0x97D9, 0xED75, 0x97DA, - 0xED76, 0x97DB, 0xED77, 0x97DC, 0xED78, 0x97DD, 0xED79, 0x97DE, - 0xED7A, 0x97DF, 0xED7B, 0x97E0, 0xED7C, 0x97E1, 0xED7D, 0x97E2, - 0xED7E, 0x97E3, 0xED80, 0x97E4, 0xED81, 0x97E5, 0xED82, 0x97E8, - 0xED83, 0x97EE, 0xED84, 0x97EF, 0xED85, 0x97F0, 0xED86, 0x97F1, - 0xED87, 0x97F2, 0xED88, 0x97F4, 0xED89, 0x97F7, 0xED8A, 0x97F8, - 0xED8B, 0x97F9, 0xED8C, 0x97FA, 0xED8D, 0x97FB, 0xED8E, 0x97FC, - 0xED8F, 0x97FD, 0xED90, 0x97FE, 0xED91, 0x97FF, 0xED92, 0x9800, - 0xED93, 0x9801, 0xED94, 0x9802, 0xED95, 0x9803, 0xED96, 0x9804, - 0xED97, 0x9805, 0xED98, 0x9806, 0xED99, 0x9807, 0xED9A, 0x9808, - 0xED9B, 0x9809, 0xED9C, 0x980A, 0xED9D, 0x980B, 0xED9E, 0x980C, - 0xED9F, 0x980D, 0xEDA0, 0x980E, 0xEDA1, 0x603C, 0xEDA2, 0x605D, - 0xEDA3, 0x605A, 0xEDA4, 0x6067, 0xEDA5, 0x6041, 0xEDA6, 0x6059, - 0xEDA7, 0x6063, 0xEDA8, 0x60AB, 0xEDA9, 0x6106, 0xEDAA, 0x610D, - 0xEDAB, 0x615D, 0xEDAC, 0x61A9, 0xEDAD, 0x619D, 0xEDAE, 0x61CB, - 0xEDAF, 0x61D1, 0xEDB0, 0x6206, 0xEDB1, 0x8080, 0xEDB2, 0x807F, - 0xEDB3, 0x6C93, 0xEDB4, 0x6CF6, 0xEDB5, 0x6DFC, 0xEDB6, 0x77F6, - 0xEDB7, 0x77F8, 0xEDB8, 0x7800, 0xEDB9, 0x7809, 0xEDBA, 0x7817, - 0xEDBB, 0x7818, 0xEDBC, 0x7811, 0xEDBD, 0x65AB, 0xEDBE, 0x782D, - 0xEDBF, 0x781C, 0xEDC0, 0x781D, 0xEDC1, 0x7839, 0xEDC2, 0x783A, - 0xEDC3, 0x783B, 0xEDC4, 0x781F, 0xEDC5, 0x783C, 0xEDC6, 0x7825, - 0xEDC7, 0x782C, 0xEDC8, 0x7823, 0xEDC9, 0x7829, 0xEDCA, 0x784E, - 0xEDCB, 0x786D, 0xEDCC, 0x7856, 0xEDCD, 0x7857, 0xEDCE, 0x7826, - 0xEDCF, 0x7850, 0xEDD0, 0x7847, 0xEDD1, 0x784C, 0xEDD2, 0x786A, - 0xEDD3, 0x789B, 0xEDD4, 0x7893, 0xEDD5, 0x789A, 0xEDD6, 0x7887, - 0xEDD7, 0x789C, 0xEDD8, 0x78A1, 0xEDD9, 0x78A3, 0xEDDA, 0x78B2, - 0xEDDB, 0x78B9, 0xEDDC, 0x78A5, 0xEDDD, 0x78D4, 0xEDDE, 0x78D9, - 0xEDDF, 0x78C9, 0xEDE0, 0x78EC, 0xEDE1, 0x78F2, 0xEDE2, 0x7905, - 0xEDE3, 0x78F4, 0xEDE4, 0x7913, 0xEDE5, 0x7924, 0xEDE6, 0x791E, - 0xEDE7, 0x7934, 0xEDE8, 0x9F9B, 0xEDE9, 0x9EF9, 0xEDEA, 0x9EFB, - 0xEDEB, 0x9EFC, 0xEDEC, 0x76F1, 0xEDED, 0x7704, 0xEDEE, 0x770D, - 0xEDEF, 0x76F9, 0xEDF0, 0x7707, 0xEDF1, 0x7708, 0xEDF2, 0x771A, - 0xEDF3, 0x7722, 0xEDF4, 0x7719, 0xEDF5, 0x772D, 0xEDF6, 0x7726, - 0xEDF7, 0x7735, 0xEDF8, 0x7738, 0xEDF9, 0x7750, 0xEDFA, 0x7751, - 0xEDFB, 0x7747, 0xEDFC, 0x7743, 0xEDFD, 0x775A, 0xEDFE, 0x7768, - 0xEE40, 0x980F, 0xEE41, 0x9810, 0xEE42, 0x9811, 0xEE43, 0x9812, - 0xEE44, 0x9813, 0xEE45, 0x9814, 0xEE46, 0x9815, 0xEE47, 0x9816, - 0xEE48, 0x9817, 0xEE49, 0x9818, 0xEE4A, 0x9819, 0xEE4B, 0x981A, - 0xEE4C, 0x981B, 0xEE4D, 0x981C, 0xEE4E, 0x981D, 0xEE4F, 0x981E, - 0xEE50, 0x981F, 0xEE51, 0x9820, 0xEE52, 0x9821, 0xEE53, 0x9822, - 0xEE54, 0x9823, 0xEE55, 0x9824, 0xEE56, 0x9825, 0xEE57, 0x9826, - 0xEE58, 0x9827, 0xEE59, 0x9828, 0xEE5A, 0x9829, 0xEE5B, 0x982A, - 0xEE5C, 0x982B, 0xEE5D, 0x982C, 0xEE5E, 0x982D, 0xEE5F, 0x982E, - 0xEE60, 0x982F, 0xEE61, 0x9830, 0xEE62, 0x9831, 0xEE63, 0x9832, - 0xEE64, 0x9833, 0xEE65, 0x9834, 0xEE66, 0x9835, 0xEE67, 0x9836, - 0xEE68, 0x9837, 0xEE69, 0x9838, 0xEE6A, 0x9839, 0xEE6B, 0x983A, - 0xEE6C, 0x983B, 0xEE6D, 0x983C, 0xEE6E, 0x983D, 0xEE6F, 0x983E, - 0xEE70, 0x983F, 0xEE71, 0x9840, 0xEE72, 0x9841, 0xEE73, 0x9842, - 0xEE74, 0x9843, 0xEE75, 0x9844, 0xEE76, 0x9845, 0xEE77, 0x9846, - 0xEE78, 0x9847, 0xEE79, 0x9848, 0xEE7A, 0x9849, 0xEE7B, 0x984A, - 0xEE7C, 0x984B, 0xEE7D, 0x984C, 0xEE7E, 0x984D, 0xEE80, 0x984E, - 0xEE81, 0x984F, 0xEE82, 0x9850, 0xEE83, 0x9851, 0xEE84, 0x9852, - 0xEE85, 0x9853, 0xEE86, 0x9854, 0xEE87, 0x9855, 0xEE88, 0x9856, - 0xEE89, 0x9857, 0xEE8A, 0x9858, 0xEE8B, 0x9859, 0xEE8C, 0x985A, - 0xEE8D, 0x985B, 0xEE8E, 0x985C, 0xEE8F, 0x985D, 0xEE90, 0x985E, - 0xEE91, 0x985F, 0xEE92, 0x9860, 0xEE93, 0x9861, 0xEE94, 0x9862, - 0xEE95, 0x9863, 0xEE96, 0x9864, 0xEE97, 0x9865, 0xEE98, 0x9866, - 0xEE99, 0x9867, 0xEE9A, 0x9868, 0xEE9B, 0x9869, 0xEE9C, 0x986A, - 0xEE9D, 0x986B, 0xEE9E, 0x986C, 0xEE9F, 0x986D, 0xEEA0, 0x986E, - 0xEEA1, 0x7762, 0xEEA2, 0x7765, 0xEEA3, 0x777F, 0xEEA4, 0x778D, - 0xEEA5, 0x777D, 0xEEA6, 0x7780, 0xEEA7, 0x778C, 0xEEA8, 0x7791, - 0xEEA9, 0x779F, 0xEEAA, 0x77A0, 0xEEAB, 0x77B0, 0xEEAC, 0x77B5, - 0xEEAD, 0x77BD, 0xEEAE, 0x753A, 0xEEAF, 0x7540, 0xEEB0, 0x754E, - 0xEEB1, 0x754B, 0xEEB2, 0x7548, 0xEEB3, 0x755B, 0xEEB4, 0x7572, - 0xEEB5, 0x7579, 0xEEB6, 0x7583, 0xEEB7, 0x7F58, 0xEEB8, 0x7F61, - 0xEEB9, 0x7F5F, 0xEEBA, 0x8A48, 0xEEBB, 0x7F68, 0xEEBC, 0x7F74, - 0xEEBD, 0x7F71, 0xEEBE, 0x7F79, 0xEEBF, 0x7F81, 0xEEC0, 0x7F7E, - 0xEEC1, 0x76CD, 0xEEC2, 0x76E5, 0xEEC3, 0x8832, 0xEEC4, 0x9485, - 0xEEC5, 0x9486, 0xEEC6, 0x9487, 0xEEC7, 0x948B, 0xEEC8, 0x948A, - 0xEEC9, 0x948C, 0xEECA, 0x948D, 0xEECB, 0x948F, 0xEECC, 0x9490, - 0xEECD, 0x9494, 0xEECE, 0x9497, 0xEECF, 0x9495, 0xEED0, 0x949A, - 0xEED1, 0x949B, 0xEED2, 0x949C, 0xEED3, 0x94A3, 0xEED4, 0x94A4, - 0xEED5, 0x94AB, 0xEED6, 0x94AA, 0xEED7, 0x94AD, 0xEED8, 0x94AC, - 0xEED9, 0x94AF, 0xEEDA, 0x94B0, 0xEEDB, 0x94B2, 0xEEDC, 0x94B4, - 0xEEDD, 0x94B6, 0xEEDE, 0x94B7, 0xEEDF, 0x94B8, 0xEEE0, 0x94B9, - 0xEEE1, 0x94BA, 0xEEE2, 0x94BC, 0xEEE3, 0x94BD, 0xEEE4, 0x94BF, - 0xEEE5, 0x94C4, 0xEEE6, 0x94C8, 0xEEE7, 0x94C9, 0xEEE8, 0x94CA, - 0xEEE9, 0x94CB, 0xEEEA, 0x94CC, 0xEEEB, 0x94CD, 0xEEEC, 0x94CE, - 0xEEED, 0x94D0, 0xEEEE, 0x94D1, 0xEEEF, 0x94D2, 0xEEF0, 0x94D5, - 0xEEF1, 0x94D6, 0xEEF2, 0x94D7, 0xEEF3, 0x94D9, 0xEEF4, 0x94D8, - 0xEEF5, 0x94DB, 0xEEF6, 0x94DE, 0xEEF7, 0x94DF, 0xEEF8, 0x94E0, - 0xEEF9, 0x94E2, 0xEEFA, 0x94E4, 0xEEFB, 0x94E5, 0xEEFC, 0x94E7, - 0xEEFD, 0x94E8, 0xEEFE, 0x94EA, 0xEF40, 0x986F, 0xEF41, 0x9870, - 0xEF42, 0x9871, 0xEF43, 0x9872, 0xEF44, 0x9873, 0xEF45, 0x9874, - 0xEF46, 0x988B, 0xEF47, 0x988E, 0xEF48, 0x9892, 0xEF49, 0x9895, - 0xEF4A, 0x9899, 0xEF4B, 0x98A3, 0xEF4C, 0x98A8, 0xEF4D, 0x98A9, - 0xEF4E, 0x98AA, 0xEF4F, 0x98AB, 0xEF50, 0x98AC, 0xEF51, 0x98AD, - 0xEF52, 0x98AE, 0xEF53, 0x98AF, 0xEF54, 0x98B0, 0xEF55, 0x98B1, - 0xEF56, 0x98B2, 0xEF57, 0x98B3, 0xEF58, 0x98B4, 0xEF59, 0x98B5, - 0xEF5A, 0x98B6, 0xEF5B, 0x98B7, 0xEF5C, 0x98B8, 0xEF5D, 0x98B9, - 0xEF5E, 0x98BA, 0xEF5F, 0x98BB, 0xEF60, 0x98BC, 0xEF61, 0x98BD, - 0xEF62, 0x98BE, 0xEF63, 0x98BF, 0xEF64, 0x98C0, 0xEF65, 0x98C1, - 0xEF66, 0x98C2, 0xEF67, 0x98C3, 0xEF68, 0x98C4, 0xEF69, 0x98C5, - 0xEF6A, 0x98C6, 0xEF6B, 0x98C7, 0xEF6C, 0x98C8, 0xEF6D, 0x98C9, - 0xEF6E, 0x98CA, 0xEF6F, 0x98CB, 0xEF70, 0x98CC, 0xEF71, 0x98CD, - 0xEF72, 0x98CF, 0xEF73, 0x98D0, 0xEF74, 0x98D4, 0xEF75, 0x98D6, - 0xEF76, 0x98D7, 0xEF77, 0x98DB, 0xEF78, 0x98DC, 0xEF79, 0x98DD, - 0xEF7A, 0x98E0, 0xEF7B, 0x98E1, 0xEF7C, 0x98E2, 0xEF7D, 0x98E3, - 0xEF7E, 0x98E4, 0xEF80, 0x98E5, 0xEF81, 0x98E6, 0xEF82, 0x98E9, - 0xEF83, 0x98EA, 0xEF84, 0x98EB, 0xEF85, 0x98EC, 0xEF86, 0x98ED, - 0xEF87, 0x98EE, 0xEF88, 0x98EF, 0xEF89, 0x98F0, 0xEF8A, 0x98F1, - 0xEF8B, 0x98F2, 0xEF8C, 0x98F3, 0xEF8D, 0x98F4, 0xEF8E, 0x98F5, - 0xEF8F, 0x98F6, 0xEF90, 0x98F7, 0xEF91, 0x98F8, 0xEF92, 0x98F9, - 0xEF93, 0x98FA, 0xEF94, 0x98FB, 0xEF95, 0x98FC, 0xEF96, 0x98FD, - 0xEF97, 0x98FE, 0xEF98, 0x98FF, 0xEF99, 0x9900, 0xEF9A, 0x9901, - 0xEF9B, 0x9902, 0xEF9C, 0x9903, 0xEF9D, 0x9904, 0xEF9E, 0x9905, - 0xEF9F, 0x9906, 0xEFA0, 0x9907, 0xEFA1, 0x94E9, 0xEFA2, 0x94EB, - 0xEFA3, 0x94EE, 0xEFA4, 0x94EF, 0xEFA5, 0x94F3, 0xEFA6, 0x94F4, - 0xEFA7, 0x94F5, 0xEFA8, 0x94F7, 0xEFA9, 0x94F9, 0xEFAA, 0x94FC, - 0xEFAB, 0x94FD, 0xEFAC, 0x94FF, 0xEFAD, 0x9503, 0xEFAE, 0x9502, - 0xEFAF, 0x9506, 0xEFB0, 0x9507, 0xEFB1, 0x9509, 0xEFB2, 0x950A, - 0xEFB3, 0x950D, 0xEFB4, 0x950E, 0xEFB5, 0x950F, 0xEFB6, 0x9512, - 0xEFB7, 0x9513, 0xEFB8, 0x9514, 0xEFB9, 0x9515, 0xEFBA, 0x9516, - 0xEFBB, 0x9518, 0xEFBC, 0x951B, 0xEFBD, 0x951D, 0xEFBE, 0x951E, - 0xEFBF, 0x951F, 0xEFC0, 0x9522, 0xEFC1, 0x952A, 0xEFC2, 0x952B, - 0xEFC3, 0x9529, 0xEFC4, 0x952C, 0xEFC5, 0x9531, 0xEFC6, 0x9532, - 0xEFC7, 0x9534, 0xEFC8, 0x9536, 0xEFC9, 0x9537, 0xEFCA, 0x9538, - 0xEFCB, 0x953C, 0xEFCC, 0x953E, 0xEFCD, 0x953F, 0xEFCE, 0x9542, - 0xEFCF, 0x9535, 0xEFD0, 0x9544, 0xEFD1, 0x9545, 0xEFD2, 0x9546, - 0xEFD3, 0x9549, 0xEFD4, 0x954C, 0xEFD5, 0x954E, 0xEFD6, 0x954F, - 0xEFD7, 0x9552, 0xEFD8, 0x9553, 0xEFD9, 0x9554, 0xEFDA, 0x9556, - 0xEFDB, 0x9557, 0xEFDC, 0x9558, 0xEFDD, 0x9559, 0xEFDE, 0x955B, - 0xEFDF, 0x955E, 0xEFE0, 0x955F, 0xEFE1, 0x955D, 0xEFE2, 0x9561, - 0xEFE3, 0x9562, 0xEFE4, 0x9564, 0xEFE5, 0x9565, 0xEFE6, 0x9566, - 0xEFE7, 0x9567, 0xEFE8, 0x9568, 0xEFE9, 0x9569, 0xEFEA, 0x956A, - 0xEFEB, 0x956B, 0xEFEC, 0x956C, 0xEFED, 0x956F, 0xEFEE, 0x9571, - 0xEFEF, 0x9572, 0xEFF0, 0x9573, 0xEFF1, 0x953A, 0xEFF2, 0x77E7, - 0xEFF3, 0x77EC, 0xEFF4, 0x96C9, 0xEFF5, 0x79D5, 0xEFF6, 0x79ED, - 0xEFF7, 0x79E3, 0xEFF8, 0x79EB, 0xEFF9, 0x7A06, 0xEFFA, 0x5D47, - 0xEFFB, 0x7A03, 0xEFFC, 0x7A02, 0xEFFD, 0x7A1E, 0xEFFE, 0x7A14, - 0xF040, 0x9908, 0xF041, 0x9909, 0xF042, 0x990A, 0xF043, 0x990B, - 0xF044, 0x990C, 0xF045, 0x990E, 0xF046, 0x990F, 0xF047, 0x9911, - 0xF048, 0x9912, 0xF049, 0x9913, 0xF04A, 0x9914, 0xF04B, 0x9915, - 0xF04C, 0x9916, 0xF04D, 0x9917, 0xF04E, 0x9918, 0xF04F, 0x9919, - 0xF050, 0x991A, 0xF051, 0x991B, 0xF052, 0x991C, 0xF053, 0x991D, - 0xF054, 0x991E, 0xF055, 0x991F, 0xF056, 0x9920, 0xF057, 0x9921, - 0xF058, 0x9922, 0xF059, 0x9923, 0xF05A, 0x9924, 0xF05B, 0x9925, - 0xF05C, 0x9926, 0xF05D, 0x9927, 0xF05E, 0x9928, 0xF05F, 0x9929, - 0xF060, 0x992A, 0xF061, 0x992B, 0xF062, 0x992C, 0xF063, 0x992D, - 0xF064, 0x992F, 0xF065, 0x9930, 0xF066, 0x9931, 0xF067, 0x9932, - 0xF068, 0x9933, 0xF069, 0x9934, 0xF06A, 0x9935, 0xF06B, 0x9936, - 0xF06C, 0x9937, 0xF06D, 0x9938, 0xF06E, 0x9939, 0xF06F, 0x993A, - 0xF070, 0x993B, 0xF071, 0x993C, 0xF072, 0x993D, 0xF073, 0x993E, - 0xF074, 0x993F, 0xF075, 0x9940, 0xF076, 0x9941, 0xF077, 0x9942, - 0xF078, 0x9943, 0xF079, 0x9944, 0xF07A, 0x9945, 0xF07B, 0x9946, - 0xF07C, 0x9947, 0xF07D, 0x9948, 0xF07E, 0x9949, 0xF080, 0x994A, - 0xF081, 0x994B, 0xF082, 0x994C, 0xF083, 0x994D, 0xF084, 0x994E, - 0xF085, 0x994F, 0xF086, 0x9950, 0xF087, 0x9951, 0xF088, 0x9952, - 0xF089, 0x9953, 0xF08A, 0x9956, 0xF08B, 0x9957, 0xF08C, 0x9958, - 0xF08D, 0x9959, 0xF08E, 0x995A, 0xF08F, 0x995B, 0xF090, 0x995C, - 0xF091, 0x995D, 0xF092, 0x995E, 0xF093, 0x995F, 0xF094, 0x9960, - 0xF095, 0x9961, 0xF096, 0x9962, 0xF097, 0x9964, 0xF098, 0x9966, - 0xF099, 0x9973, 0xF09A, 0x9978, 0xF09B, 0x9979, 0xF09C, 0x997B, - 0xF09D, 0x997E, 0xF09E, 0x9982, 0xF09F, 0x9983, 0xF0A0, 0x9989, - 0xF0A1, 0x7A39, 0xF0A2, 0x7A37, 0xF0A3, 0x7A51, 0xF0A4, 0x9ECF, - 0xF0A5, 0x99A5, 0xF0A6, 0x7A70, 0xF0A7, 0x7688, 0xF0A8, 0x768E, - 0xF0A9, 0x7693, 0xF0AA, 0x7699, 0xF0AB, 0x76A4, 0xF0AC, 0x74DE, - 0xF0AD, 0x74E0, 0xF0AE, 0x752C, 0xF0AF, 0x9E20, 0xF0B0, 0x9E22, - 0xF0B1, 0x9E28, 0xF0B2, 0x9E29, 0xF0B3, 0x9E2A, 0xF0B4, 0x9E2B, - 0xF0B5, 0x9E2C, 0xF0B6, 0x9E32, 0xF0B7, 0x9E31, 0xF0B8, 0x9E36, - 0xF0B9, 0x9E38, 0xF0BA, 0x9E37, 0xF0BB, 0x9E39, 0xF0BC, 0x9E3A, - 0xF0BD, 0x9E3E, 0xF0BE, 0x9E41, 0xF0BF, 0x9E42, 0xF0C0, 0x9E44, - 0xF0C1, 0x9E46, 0xF0C2, 0x9E47, 0xF0C3, 0x9E48, 0xF0C4, 0x9E49, - 0xF0C5, 0x9E4B, 0xF0C6, 0x9E4C, 0xF0C7, 0x9E4E, 0xF0C8, 0x9E51, - 0xF0C9, 0x9E55, 0xF0CA, 0x9E57, 0xF0CB, 0x9E5A, 0xF0CC, 0x9E5B, - 0xF0CD, 0x9E5C, 0xF0CE, 0x9E5E, 0xF0CF, 0x9E63, 0xF0D0, 0x9E66, - 0xF0D1, 0x9E67, 0xF0D2, 0x9E68, 0xF0D3, 0x9E69, 0xF0D4, 0x9E6A, - 0xF0D5, 0x9E6B, 0xF0D6, 0x9E6C, 0xF0D7, 0x9E71, 0xF0D8, 0x9E6D, - 0xF0D9, 0x9E73, 0xF0DA, 0x7592, 0xF0DB, 0x7594, 0xF0DC, 0x7596, - 0xF0DD, 0x75A0, 0xF0DE, 0x759D, 0xF0DF, 0x75AC, 0xF0E0, 0x75A3, - 0xF0E1, 0x75B3, 0xF0E2, 0x75B4, 0xF0E3, 0x75B8, 0xF0E4, 0x75C4, - 0xF0E5, 0x75B1, 0xF0E6, 0x75B0, 0xF0E7, 0x75C3, 0xF0E8, 0x75C2, - 0xF0E9, 0x75D6, 0xF0EA, 0x75CD, 0xF0EB, 0x75E3, 0xF0EC, 0x75E8, - 0xF0ED, 0x75E6, 0xF0EE, 0x75E4, 0xF0EF, 0x75EB, 0xF0F0, 0x75E7, - 0xF0F1, 0x7603, 0xF0F2, 0x75F1, 0xF0F3, 0x75FC, 0xF0F4, 0x75FF, - 0xF0F5, 0x7610, 0xF0F6, 0x7600, 0xF0F7, 0x7605, 0xF0F8, 0x760C, - 0xF0F9, 0x7617, 0xF0FA, 0x760A, 0xF0FB, 0x7625, 0xF0FC, 0x7618, - 0xF0FD, 0x7615, 0xF0FE, 0x7619, 0xF140, 0x998C, 0xF141, 0x998E, - 0xF142, 0x999A, 0xF143, 0x999B, 0xF144, 0x999C, 0xF145, 0x999D, - 0xF146, 0x999E, 0xF147, 0x999F, 0xF148, 0x99A0, 0xF149, 0x99A1, - 0xF14A, 0x99A2, 0xF14B, 0x99A3, 0xF14C, 0x99A4, 0xF14D, 0x99A6, - 0xF14E, 0x99A7, 0xF14F, 0x99A9, 0xF150, 0x99AA, 0xF151, 0x99AB, - 0xF152, 0x99AC, 0xF153, 0x99AD, 0xF154, 0x99AE, 0xF155, 0x99AF, - 0xF156, 0x99B0, 0xF157, 0x99B1, 0xF158, 0x99B2, 0xF159, 0x99B3, - 0xF15A, 0x99B4, 0xF15B, 0x99B5, 0xF15C, 0x99B6, 0xF15D, 0x99B7, - 0xF15E, 0x99B8, 0xF15F, 0x99B9, 0xF160, 0x99BA, 0xF161, 0x99BB, - 0xF162, 0x99BC, 0xF163, 0x99BD, 0xF164, 0x99BE, 0xF165, 0x99BF, - 0xF166, 0x99C0, 0xF167, 0x99C1, 0xF168, 0x99C2, 0xF169, 0x99C3, - 0xF16A, 0x99C4, 0xF16B, 0x99C5, 0xF16C, 0x99C6, 0xF16D, 0x99C7, - 0xF16E, 0x99C8, 0xF16F, 0x99C9, 0xF170, 0x99CA, 0xF171, 0x99CB, - 0xF172, 0x99CC, 0xF173, 0x99CD, 0xF174, 0x99CE, 0xF175, 0x99CF, - 0xF176, 0x99D0, 0xF177, 0x99D1, 0xF178, 0x99D2, 0xF179, 0x99D3, - 0xF17A, 0x99D4, 0xF17B, 0x99D5, 0xF17C, 0x99D6, 0xF17D, 0x99D7, - 0xF17E, 0x99D8, 0xF180, 0x99D9, 0xF181, 0x99DA, 0xF182, 0x99DB, - 0xF183, 0x99DC, 0xF184, 0x99DD, 0xF185, 0x99DE, 0xF186, 0x99DF, - 0xF187, 0x99E0, 0xF188, 0x99E1, 0xF189, 0x99E2, 0xF18A, 0x99E3, - 0xF18B, 0x99E4, 0xF18C, 0x99E5, 0xF18D, 0x99E6, 0xF18E, 0x99E7, - 0xF18F, 0x99E8, 0xF190, 0x99E9, 0xF191, 0x99EA, 0xF192, 0x99EB, - 0xF193, 0x99EC, 0xF194, 0x99ED, 0xF195, 0x99EE, 0xF196, 0x99EF, - 0xF197, 0x99F0, 0xF198, 0x99F1, 0xF199, 0x99F2, 0xF19A, 0x99F3, - 0xF19B, 0x99F4, 0xF19C, 0x99F5, 0xF19D, 0x99F6, 0xF19E, 0x99F7, - 0xF19F, 0x99F8, 0xF1A0, 0x99F9, 0xF1A1, 0x761B, 0xF1A2, 0x763C, - 0xF1A3, 0x7622, 0xF1A4, 0x7620, 0xF1A5, 0x7640, 0xF1A6, 0x762D, - 0xF1A7, 0x7630, 0xF1A8, 0x763F, 0xF1A9, 0x7635, 0xF1AA, 0x7643, - 0xF1AB, 0x763E, 0xF1AC, 0x7633, 0xF1AD, 0x764D, 0xF1AE, 0x765E, - 0xF1AF, 0x7654, 0xF1B0, 0x765C, 0xF1B1, 0x7656, 0xF1B2, 0x766B, - 0xF1B3, 0x766F, 0xF1B4, 0x7FCA, 0xF1B5, 0x7AE6, 0xF1B6, 0x7A78, - 0xF1B7, 0x7A79, 0xF1B8, 0x7A80, 0xF1B9, 0x7A86, 0xF1BA, 0x7A88, - 0xF1BB, 0x7A95, 0xF1BC, 0x7AA6, 0xF1BD, 0x7AA0, 0xF1BE, 0x7AAC, - 0xF1BF, 0x7AA8, 0xF1C0, 0x7AAD, 0xF1C1, 0x7AB3, 0xF1C2, 0x8864, - 0xF1C3, 0x8869, 0xF1C4, 0x8872, 0xF1C5, 0x887D, 0xF1C6, 0x887F, - 0xF1C7, 0x8882, 0xF1C8, 0x88A2, 0xF1C9, 0x88C6, 0xF1CA, 0x88B7, - 0xF1CB, 0x88BC, 0xF1CC, 0x88C9, 0xF1CD, 0x88E2, 0xF1CE, 0x88CE, - 0xF1CF, 0x88E3, 0xF1D0, 0x88E5, 0xF1D1, 0x88F1, 0xF1D2, 0x891A, - 0xF1D3, 0x88FC, 0xF1D4, 0x88E8, 0xF1D5, 0x88FE, 0xF1D6, 0x88F0, - 0xF1D7, 0x8921, 0xF1D8, 0x8919, 0xF1D9, 0x8913, 0xF1DA, 0x891B, - 0xF1DB, 0x890A, 0xF1DC, 0x8934, 0xF1DD, 0x892B, 0xF1DE, 0x8936, - 0xF1DF, 0x8941, 0xF1E0, 0x8966, 0xF1E1, 0x897B, 0xF1E2, 0x758B, - 0xF1E3, 0x80E5, 0xF1E4, 0x76B2, 0xF1E5, 0x76B4, 0xF1E6, 0x77DC, - 0xF1E7, 0x8012, 0xF1E8, 0x8014, 0xF1E9, 0x8016, 0xF1EA, 0x801C, - 0xF1EB, 0x8020, 0xF1EC, 0x8022, 0xF1ED, 0x8025, 0xF1EE, 0x8026, - 0xF1EF, 0x8027, 0xF1F0, 0x8029, 0xF1F1, 0x8028, 0xF1F2, 0x8031, - 0xF1F3, 0x800B, 0xF1F4, 0x8035, 0xF1F5, 0x8043, 0xF1F6, 0x8046, - 0xF1F7, 0x804D, 0xF1F8, 0x8052, 0xF1F9, 0x8069, 0xF1FA, 0x8071, - 0xF1FB, 0x8983, 0xF1FC, 0x9878, 0xF1FD, 0x9880, 0xF1FE, 0x9883, - 0xF240, 0x99FA, 0xF241, 0x99FB, 0xF242, 0x99FC, 0xF243, 0x99FD, - 0xF244, 0x99FE, 0xF245, 0x99FF, 0xF246, 0x9A00, 0xF247, 0x9A01, - 0xF248, 0x9A02, 0xF249, 0x9A03, 0xF24A, 0x9A04, 0xF24B, 0x9A05, - 0xF24C, 0x9A06, 0xF24D, 0x9A07, 0xF24E, 0x9A08, 0xF24F, 0x9A09, - 0xF250, 0x9A0A, 0xF251, 0x9A0B, 0xF252, 0x9A0C, 0xF253, 0x9A0D, - 0xF254, 0x9A0E, 0xF255, 0x9A0F, 0xF256, 0x9A10, 0xF257, 0x9A11, - 0xF258, 0x9A12, 0xF259, 0x9A13, 0xF25A, 0x9A14, 0xF25B, 0x9A15, - 0xF25C, 0x9A16, 0xF25D, 0x9A17, 0xF25E, 0x9A18, 0xF25F, 0x9A19, - 0xF260, 0x9A1A, 0xF261, 0x9A1B, 0xF262, 0x9A1C, 0xF263, 0x9A1D, - 0xF264, 0x9A1E, 0xF265, 0x9A1F, 0xF266, 0x9A20, 0xF267, 0x9A21, - 0xF268, 0x9A22, 0xF269, 0x9A23, 0xF26A, 0x9A24, 0xF26B, 0x9A25, - 0xF26C, 0x9A26, 0xF26D, 0x9A27, 0xF26E, 0x9A28, 0xF26F, 0x9A29, - 0xF270, 0x9A2A, 0xF271, 0x9A2B, 0xF272, 0x9A2C, 0xF273, 0x9A2D, - 0xF274, 0x9A2E, 0xF275, 0x9A2F, 0xF276, 0x9A30, 0xF277, 0x9A31, - 0xF278, 0x9A32, 0xF279, 0x9A33, 0xF27A, 0x9A34, 0xF27B, 0x9A35, - 0xF27C, 0x9A36, 0xF27D, 0x9A37, 0xF27E, 0x9A38, 0xF280, 0x9A39, - 0xF281, 0x9A3A, 0xF282, 0x9A3B, 0xF283, 0x9A3C, 0xF284, 0x9A3D, - 0xF285, 0x9A3E, 0xF286, 0x9A3F, 0xF287, 0x9A40, 0xF288, 0x9A41, - 0xF289, 0x9A42, 0xF28A, 0x9A43, 0xF28B, 0x9A44, 0xF28C, 0x9A45, - 0xF28D, 0x9A46, 0xF28E, 0x9A47, 0xF28F, 0x9A48, 0xF290, 0x9A49, - 0xF291, 0x9A4A, 0xF292, 0x9A4B, 0xF293, 0x9A4C, 0xF294, 0x9A4D, - 0xF295, 0x9A4E, 0xF296, 0x9A4F, 0xF297, 0x9A50, 0xF298, 0x9A51, - 0xF299, 0x9A52, 0xF29A, 0x9A53, 0xF29B, 0x9A54, 0xF29C, 0x9A55, - 0xF29D, 0x9A56, 0xF29E, 0x9A57, 0xF29F, 0x9A58, 0xF2A0, 0x9A59, - 0xF2A1, 0x9889, 0xF2A2, 0x988C, 0xF2A3, 0x988D, 0xF2A4, 0x988F, - 0xF2A5, 0x9894, 0xF2A6, 0x989A, 0xF2A7, 0x989B, 0xF2A8, 0x989E, - 0xF2A9, 0x989F, 0xF2AA, 0x98A1, 0xF2AB, 0x98A2, 0xF2AC, 0x98A5, - 0xF2AD, 0x98A6, 0xF2AE, 0x864D, 0xF2AF, 0x8654, 0xF2B0, 0x866C, - 0xF2B1, 0x866E, 0xF2B2, 0x867F, 0xF2B3, 0x867A, 0xF2B4, 0x867C, - 0xF2B5, 0x867B, 0xF2B6, 0x86A8, 0xF2B7, 0x868D, 0xF2B8, 0x868B, - 0xF2B9, 0x86AC, 0xF2BA, 0x869D, 0xF2BB, 0x86A7, 0xF2BC, 0x86A3, - 0xF2BD, 0x86AA, 0xF2BE, 0x8693, 0xF2BF, 0x86A9, 0xF2C0, 0x86B6, - 0xF2C1, 0x86C4, 0xF2C2, 0x86B5, 0xF2C3, 0x86CE, 0xF2C4, 0x86B0, - 0xF2C5, 0x86BA, 0xF2C6, 0x86B1, 0xF2C7, 0x86AF, 0xF2C8, 0x86C9, - 0xF2C9, 0x86CF, 0xF2CA, 0x86B4, 0xF2CB, 0x86E9, 0xF2CC, 0x86F1, - 0xF2CD, 0x86F2, 0xF2CE, 0x86ED, 0xF2CF, 0x86F3, 0xF2D0, 0x86D0, - 0xF2D1, 0x8713, 0xF2D2, 0x86DE, 0xF2D3, 0x86F4, 0xF2D4, 0x86DF, - 0xF2D5, 0x86D8, 0xF2D6, 0x86D1, 0xF2D7, 0x8703, 0xF2D8, 0x8707, - 0xF2D9, 0x86F8, 0xF2DA, 0x8708, 0xF2DB, 0x870A, 0xF2DC, 0x870D, - 0xF2DD, 0x8709, 0xF2DE, 0x8723, 0xF2DF, 0x873B, 0xF2E0, 0x871E, - 0xF2E1, 0x8725, 0xF2E2, 0x872E, 0xF2E3, 0x871A, 0xF2E4, 0x873E, - 0xF2E5, 0x8748, 0xF2E6, 0x8734, 0xF2E7, 0x8731, 0xF2E8, 0x8729, - 0xF2E9, 0x8737, 0xF2EA, 0x873F, 0xF2EB, 0x8782, 0xF2EC, 0x8722, - 0xF2ED, 0x877D, 0xF2EE, 0x877E, 0xF2EF, 0x877B, 0xF2F0, 0x8760, - 0xF2F1, 0x8770, 0xF2F2, 0x874C, 0xF2F3, 0x876E, 0xF2F4, 0x878B, - 0xF2F5, 0x8753, 0xF2F6, 0x8763, 0xF2F7, 0x877C, 0xF2F8, 0x8764, - 0xF2F9, 0x8759, 0xF2FA, 0x8765, 0xF2FB, 0x8793, 0xF2FC, 0x87AF, - 0xF2FD, 0x87A8, 0xF2FE, 0x87D2, 0xF340, 0x9A5A, 0xF341, 0x9A5B, - 0xF342, 0x9A5C, 0xF343, 0x9A5D, 0xF344, 0x9A5E, 0xF345, 0x9A5F, - 0xF346, 0x9A60, 0xF347, 0x9A61, 0xF348, 0x9A62, 0xF349, 0x9A63, - 0xF34A, 0x9A64, 0xF34B, 0x9A65, 0xF34C, 0x9A66, 0xF34D, 0x9A67, - 0xF34E, 0x9A68, 0xF34F, 0x9A69, 0xF350, 0x9A6A, 0xF351, 0x9A6B, - 0xF352, 0x9A72, 0xF353, 0x9A83, 0xF354, 0x9A89, 0xF355, 0x9A8D, - 0xF356, 0x9A8E, 0xF357, 0x9A94, 0xF358, 0x9A95, 0xF359, 0x9A99, - 0xF35A, 0x9AA6, 0xF35B, 0x9AA9, 0xF35C, 0x9AAA, 0xF35D, 0x9AAB, - 0xF35E, 0x9AAC, 0xF35F, 0x9AAD, 0xF360, 0x9AAE, 0xF361, 0x9AAF, - 0xF362, 0x9AB2, 0xF363, 0x9AB3, 0xF364, 0x9AB4, 0xF365, 0x9AB5, - 0xF366, 0x9AB9, 0xF367, 0x9ABB, 0xF368, 0x9ABD, 0xF369, 0x9ABE, - 0xF36A, 0x9ABF, 0xF36B, 0x9AC3, 0xF36C, 0x9AC4, 0xF36D, 0x9AC6, - 0xF36E, 0x9AC7, 0xF36F, 0x9AC8, 0xF370, 0x9AC9, 0xF371, 0x9ACA, - 0xF372, 0x9ACD, 0xF373, 0x9ACE, 0xF374, 0x9ACF, 0xF375, 0x9AD0, - 0xF376, 0x9AD2, 0xF377, 0x9AD4, 0xF378, 0x9AD5, 0xF379, 0x9AD6, - 0xF37A, 0x9AD7, 0xF37B, 0x9AD9, 0xF37C, 0x9ADA, 0xF37D, 0x9ADB, - 0xF37E, 0x9ADC, 0xF380, 0x9ADD, 0xF381, 0x9ADE, 0xF382, 0x9AE0, - 0xF383, 0x9AE2, 0xF384, 0x9AE3, 0xF385, 0x9AE4, 0xF386, 0x9AE5, - 0xF387, 0x9AE7, 0xF388, 0x9AE8, 0xF389, 0x9AE9, 0xF38A, 0x9AEA, - 0xF38B, 0x9AEC, 0xF38C, 0x9AEE, 0xF38D, 0x9AF0, 0xF38E, 0x9AF1, - 0xF38F, 0x9AF2, 0xF390, 0x9AF3, 0xF391, 0x9AF4, 0xF392, 0x9AF5, - 0xF393, 0x9AF6, 0xF394, 0x9AF7, 0xF395, 0x9AF8, 0xF396, 0x9AFA, - 0xF397, 0x9AFC, 0xF398, 0x9AFD, 0xF399, 0x9AFE, 0xF39A, 0x9AFF, - 0xF39B, 0x9B00, 0xF39C, 0x9B01, 0xF39D, 0x9B02, 0xF39E, 0x9B04, - 0xF39F, 0x9B05, 0xF3A0, 0x9B06, 0xF3A1, 0x87C6, 0xF3A2, 0x8788, - 0xF3A3, 0x8785, 0xF3A4, 0x87AD, 0xF3A5, 0x8797, 0xF3A6, 0x8783, - 0xF3A7, 0x87AB, 0xF3A8, 0x87E5, 0xF3A9, 0x87AC, 0xF3AA, 0x87B5, - 0xF3AB, 0x87B3, 0xF3AC, 0x87CB, 0xF3AD, 0x87D3, 0xF3AE, 0x87BD, - 0xF3AF, 0x87D1, 0xF3B0, 0x87C0, 0xF3B1, 0x87CA, 0xF3B2, 0x87DB, - 0xF3B3, 0x87EA, 0xF3B4, 0x87E0, 0xF3B5, 0x87EE, 0xF3B6, 0x8816, - 0xF3B7, 0x8813, 0xF3B8, 0x87FE, 0xF3B9, 0x880A, 0xF3BA, 0x881B, - 0xF3BB, 0x8821, 0xF3BC, 0x8839, 0xF3BD, 0x883C, 0xF3BE, 0x7F36, - 0xF3BF, 0x7F42, 0xF3C0, 0x7F44, 0xF3C1, 0x7F45, 0xF3C2, 0x8210, - 0xF3C3, 0x7AFA, 0xF3C4, 0x7AFD, 0xF3C5, 0x7B08, 0xF3C6, 0x7B03, - 0xF3C7, 0x7B04, 0xF3C8, 0x7B15, 0xF3C9, 0x7B0A, 0xF3CA, 0x7B2B, - 0xF3CB, 0x7B0F, 0xF3CC, 0x7B47, 0xF3CD, 0x7B38, 0xF3CE, 0x7B2A, - 0xF3CF, 0x7B19, 0xF3D0, 0x7B2E, 0xF3D1, 0x7B31, 0xF3D2, 0x7B20, - 0xF3D3, 0x7B25, 0xF3D4, 0x7B24, 0xF3D5, 0x7B33, 0xF3D6, 0x7B3E, - 0xF3D7, 0x7B1E, 0xF3D8, 0x7B58, 0xF3D9, 0x7B5A, 0xF3DA, 0x7B45, - 0xF3DB, 0x7B75, 0xF3DC, 0x7B4C, 0xF3DD, 0x7B5D, 0xF3DE, 0x7B60, - 0xF3DF, 0x7B6E, 0xF3E0, 0x7B7B, 0xF3E1, 0x7B62, 0xF3E2, 0x7B72, - 0xF3E3, 0x7B71, 0xF3E4, 0x7B90, 0xF3E5, 0x7BA6, 0xF3E6, 0x7BA7, - 0xF3E7, 0x7BB8, 0xF3E8, 0x7BAC, 0xF3E9, 0x7B9D, 0xF3EA, 0x7BA8, - 0xF3EB, 0x7B85, 0xF3EC, 0x7BAA, 0xF3ED, 0x7B9C, 0xF3EE, 0x7BA2, - 0xF3EF, 0x7BAB, 0xF3F0, 0x7BB4, 0xF3F1, 0x7BD1, 0xF3F2, 0x7BC1, - 0xF3F3, 0x7BCC, 0xF3F4, 0x7BDD, 0xF3F5, 0x7BDA, 0xF3F6, 0x7BE5, - 0xF3F7, 0x7BE6, 0xF3F8, 0x7BEA, 0xF3F9, 0x7C0C, 0xF3FA, 0x7BFE, - 0xF3FB, 0x7BFC, 0xF3FC, 0x7C0F, 0xF3FD, 0x7C16, 0xF3FE, 0x7C0B, - 0xF440, 0x9B07, 0xF441, 0x9B09, 0xF442, 0x9B0A, 0xF443, 0x9B0B, - 0xF444, 0x9B0C, 0xF445, 0x9B0D, 0xF446, 0x9B0E, 0xF447, 0x9B10, - 0xF448, 0x9B11, 0xF449, 0x9B12, 0xF44A, 0x9B14, 0xF44B, 0x9B15, - 0xF44C, 0x9B16, 0xF44D, 0x9B17, 0xF44E, 0x9B18, 0xF44F, 0x9B19, - 0xF450, 0x9B1A, 0xF451, 0x9B1B, 0xF452, 0x9B1C, 0xF453, 0x9B1D, - 0xF454, 0x9B1E, 0xF455, 0x9B20, 0xF456, 0x9B21, 0xF457, 0x9B22, - 0xF458, 0x9B24, 0xF459, 0x9B25, 0xF45A, 0x9B26, 0xF45B, 0x9B27, - 0xF45C, 0x9B28, 0xF45D, 0x9B29, 0xF45E, 0x9B2A, 0xF45F, 0x9B2B, - 0xF460, 0x9B2C, 0xF461, 0x9B2D, 0xF462, 0x9B2E, 0xF463, 0x9B30, - 0xF464, 0x9B31, 0xF465, 0x9B33, 0xF466, 0x9B34, 0xF467, 0x9B35, - 0xF468, 0x9B36, 0xF469, 0x9B37, 0xF46A, 0x9B38, 0xF46B, 0x9B39, - 0xF46C, 0x9B3A, 0xF46D, 0x9B3D, 0xF46E, 0x9B3E, 0xF46F, 0x9B3F, - 0xF470, 0x9B40, 0xF471, 0x9B46, 0xF472, 0x9B4A, 0xF473, 0x9B4B, - 0xF474, 0x9B4C, 0xF475, 0x9B4E, 0xF476, 0x9B50, 0xF477, 0x9B52, - 0xF478, 0x9B53, 0xF479, 0x9B55, 0xF47A, 0x9B56, 0xF47B, 0x9B57, - 0xF47C, 0x9B58, 0xF47D, 0x9B59, 0xF47E, 0x9B5A, 0xF480, 0x9B5B, - 0xF481, 0x9B5C, 0xF482, 0x9B5D, 0xF483, 0x9B5E, 0xF484, 0x9B5F, - 0xF485, 0x9B60, 0xF486, 0x9B61, 0xF487, 0x9B62, 0xF488, 0x9B63, - 0xF489, 0x9B64, 0xF48A, 0x9B65, 0xF48B, 0x9B66, 0xF48C, 0x9B67, - 0xF48D, 0x9B68, 0xF48E, 0x9B69, 0xF48F, 0x9B6A, 0xF490, 0x9B6B, - 0xF491, 0x9B6C, 0xF492, 0x9B6D, 0xF493, 0x9B6E, 0xF494, 0x9B6F, - 0xF495, 0x9B70, 0xF496, 0x9B71, 0xF497, 0x9B72, 0xF498, 0x9B73, - 0xF499, 0x9B74, 0xF49A, 0x9B75, 0xF49B, 0x9B76, 0xF49C, 0x9B77, - 0xF49D, 0x9B78, 0xF49E, 0x9B79, 0xF49F, 0x9B7A, 0xF4A0, 0x9B7B, - 0xF4A1, 0x7C1F, 0xF4A2, 0x7C2A, 0xF4A3, 0x7C26, 0xF4A4, 0x7C38, - 0xF4A5, 0x7C41, 0xF4A6, 0x7C40, 0xF4A7, 0x81FE, 0xF4A8, 0x8201, - 0xF4A9, 0x8202, 0xF4AA, 0x8204, 0xF4AB, 0x81EC, 0xF4AC, 0x8844, - 0xF4AD, 0x8221, 0xF4AE, 0x8222, 0xF4AF, 0x8223, 0xF4B0, 0x822D, - 0xF4B1, 0x822F, 0xF4B2, 0x8228, 0xF4B3, 0x822B, 0xF4B4, 0x8238, - 0xF4B5, 0x823B, 0xF4B6, 0x8233, 0xF4B7, 0x8234, 0xF4B8, 0x823E, - 0xF4B9, 0x8244, 0xF4BA, 0x8249, 0xF4BB, 0x824B, 0xF4BC, 0x824F, - 0xF4BD, 0x825A, 0xF4BE, 0x825F, 0xF4BF, 0x8268, 0xF4C0, 0x887E, - 0xF4C1, 0x8885, 0xF4C2, 0x8888, 0xF4C3, 0x88D8, 0xF4C4, 0x88DF, - 0xF4C5, 0x895E, 0xF4C6, 0x7F9D, 0xF4C7, 0x7F9F, 0xF4C8, 0x7FA7, - 0xF4C9, 0x7FAF, 0xF4CA, 0x7FB0, 0xF4CB, 0x7FB2, 0xF4CC, 0x7C7C, - 0xF4CD, 0x6549, 0xF4CE, 0x7C91, 0xF4CF, 0x7C9D, 0xF4D0, 0x7C9C, - 0xF4D1, 0x7C9E, 0xF4D2, 0x7CA2, 0xF4D3, 0x7CB2, 0xF4D4, 0x7CBC, - 0xF4D5, 0x7CBD, 0xF4D6, 0x7CC1, 0xF4D7, 0x7CC7, 0xF4D8, 0x7CCC, - 0xF4D9, 0x7CCD, 0xF4DA, 0x7CC8, 0xF4DB, 0x7CC5, 0xF4DC, 0x7CD7, - 0xF4DD, 0x7CE8, 0xF4DE, 0x826E, 0xF4DF, 0x66A8, 0xF4E0, 0x7FBF, - 0xF4E1, 0x7FCE, 0xF4E2, 0x7FD5, 0xF4E3, 0x7FE5, 0xF4E4, 0x7FE1, - 0xF4E5, 0x7FE6, 0xF4E6, 0x7FE9, 0xF4E7, 0x7FEE, 0xF4E8, 0x7FF3, - 0xF4E9, 0x7CF8, 0xF4EA, 0x7D77, 0xF4EB, 0x7DA6, 0xF4EC, 0x7DAE, - 0xF4ED, 0x7E47, 0xF4EE, 0x7E9B, 0xF4EF, 0x9EB8, 0xF4F0, 0x9EB4, - 0xF4F1, 0x8D73, 0xF4F2, 0x8D84, 0xF4F3, 0x8D94, 0xF4F4, 0x8D91, - 0xF4F5, 0x8DB1, 0xF4F6, 0x8D67, 0xF4F7, 0x8D6D, 0xF4F8, 0x8C47, - 0xF4F9, 0x8C49, 0xF4FA, 0x914A, 0xF4FB, 0x9150, 0xF4FC, 0x914E, - 0xF4FD, 0x914F, 0xF4FE, 0x9164, 0xF540, 0x9B7C, 0xF541, 0x9B7D, - 0xF542, 0x9B7E, 0xF543, 0x9B7F, 0xF544, 0x9B80, 0xF545, 0x9B81, - 0xF546, 0x9B82, 0xF547, 0x9B83, 0xF548, 0x9B84, 0xF549, 0x9B85, - 0xF54A, 0x9B86, 0xF54B, 0x9B87, 0xF54C, 0x9B88, 0xF54D, 0x9B89, - 0xF54E, 0x9B8A, 0xF54F, 0x9B8B, 0xF550, 0x9B8C, 0xF551, 0x9B8D, - 0xF552, 0x9B8E, 0xF553, 0x9B8F, 0xF554, 0x9B90, 0xF555, 0x9B91, - 0xF556, 0x9B92, 0xF557, 0x9B93, 0xF558, 0x9B94, 0xF559, 0x9B95, - 0xF55A, 0x9B96, 0xF55B, 0x9B97, 0xF55C, 0x9B98, 0xF55D, 0x9B99, - 0xF55E, 0x9B9A, 0xF55F, 0x9B9B, 0xF560, 0x9B9C, 0xF561, 0x9B9D, - 0xF562, 0x9B9E, 0xF563, 0x9B9F, 0xF564, 0x9BA0, 0xF565, 0x9BA1, - 0xF566, 0x9BA2, 0xF567, 0x9BA3, 0xF568, 0x9BA4, 0xF569, 0x9BA5, - 0xF56A, 0x9BA6, 0xF56B, 0x9BA7, 0xF56C, 0x9BA8, 0xF56D, 0x9BA9, - 0xF56E, 0x9BAA, 0xF56F, 0x9BAB, 0xF570, 0x9BAC, 0xF571, 0x9BAD, - 0xF572, 0x9BAE, 0xF573, 0x9BAF, 0xF574, 0x9BB0, 0xF575, 0x9BB1, - 0xF576, 0x9BB2, 0xF577, 0x9BB3, 0xF578, 0x9BB4, 0xF579, 0x9BB5, - 0xF57A, 0x9BB6, 0xF57B, 0x9BB7, 0xF57C, 0x9BB8, 0xF57D, 0x9BB9, - 0xF57E, 0x9BBA, 0xF580, 0x9BBB, 0xF581, 0x9BBC, 0xF582, 0x9BBD, - 0xF583, 0x9BBE, 0xF584, 0x9BBF, 0xF585, 0x9BC0, 0xF586, 0x9BC1, - 0xF587, 0x9BC2, 0xF588, 0x9BC3, 0xF589, 0x9BC4, 0xF58A, 0x9BC5, - 0xF58B, 0x9BC6, 0xF58C, 0x9BC7, 0xF58D, 0x9BC8, 0xF58E, 0x9BC9, - 0xF58F, 0x9BCA, 0xF590, 0x9BCB, 0xF591, 0x9BCC, 0xF592, 0x9BCD, - 0xF593, 0x9BCE, 0xF594, 0x9BCF, 0xF595, 0x9BD0, 0xF596, 0x9BD1, - 0xF597, 0x9BD2, 0xF598, 0x9BD3, 0xF599, 0x9BD4, 0xF59A, 0x9BD5, - 0xF59B, 0x9BD6, 0xF59C, 0x9BD7, 0xF59D, 0x9BD8, 0xF59E, 0x9BD9, - 0xF59F, 0x9BDA, 0xF5A0, 0x9BDB, 0xF5A1, 0x9162, 0xF5A2, 0x9161, - 0xF5A3, 0x9170, 0xF5A4, 0x9169, 0xF5A5, 0x916F, 0xF5A6, 0x917D, - 0xF5A7, 0x917E, 0xF5A8, 0x9172, 0xF5A9, 0x9174, 0xF5AA, 0x9179, - 0xF5AB, 0x918C, 0xF5AC, 0x9185, 0xF5AD, 0x9190, 0xF5AE, 0x918D, - 0xF5AF, 0x9191, 0xF5B0, 0x91A2, 0xF5B1, 0x91A3, 0xF5B2, 0x91AA, - 0xF5B3, 0x91AD, 0xF5B4, 0x91AE, 0xF5B5, 0x91AF, 0xF5B6, 0x91B5, - 0xF5B7, 0x91B4, 0xF5B8, 0x91BA, 0xF5B9, 0x8C55, 0xF5BA, 0x9E7E, - 0xF5BB, 0x8DB8, 0xF5BC, 0x8DEB, 0xF5BD, 0x8E05, 0xF5BE, 0x8E59, - 0xF5BF, 0x8E69, 0xF5C0, 0x8DB5, 0xF5C1, 0x8DBF, 0xF5C2, 0x8DBC, - 0xF5C3, 0x8DBA, 0xF5C4, 0x8DC4, 0xF5C5, 0x8DD6, 0xF5C6, 0x8DD7, - 0xF5C7, 0x8DDA, 0xF5C8, 0x8DDE, 0xF5C9, 0x8DCE, 0xF5CA, 0x8DCF, - 0xF5CB, 0x8DDB, 0xF5CC, 0x8DC6, 0xF5CD, 0x8DEC, 0xF5CE, 0x8DF7, - 0xF5CF, 0x8DF8, 0xF5D0, 0x8DE3, 0xF5D1, 0x8DF9, 0xF5D2, 0x8DFB, - 0xF5D3, 0x8DE4, 0xF5D4, 0x8E09, 0xF5D5, 0x8DFD, 0xF5D6, 0x8E14, - 0xF5D7, 0x8E1D, 0xF5D8, 0x8E1F, 0xF5D9, 0x8E2C, 0xF5DA, 0x8E2E, - 0xF5DB, 0x8E23, 0xF5DC, 0x8E2F, 0xF5DD, 0x8E3A, 0xF5DE, 0x8E40, - 0xF5DF, 0x8E39, 0xF5E0, 0x8E35, 0xF5E1, 0x8E3D, 0xF5E2, 0x8E31, - 0xF5E3, 0x8E49, 0xF5E4, 0x8E41, 0xF5E5, 0x8E42, 0xF5E6, 0x8E51, - 0xF5E7, 0x8E52, 0xF5E8, 0x8E4A, 0xF5E9, 0x8E70, 0xF5EA, 0x8E76, - 0xF5EB, 0x8E7C, 0xF5EC, 0x8E6F, 0xF5ED, 0x8E74, 0xF5EE, 0x8E85, - 0xF5EF, 0x8E8F, 0xF5F0, 0x8E94, 0xF5F1, 0x8E90, 0xF5F2, 0x8E9C, - 0xF5F3, 0x8E9E, 0xF5F4, 0x8C78, 0xF5F5, 0x8C82, 0xF5F6, 0x8C8A, - 0xF5F7, 0x8C85, 0xF5F8, 0x8C98, 0xF5F9, 0x8C94, 0xF5FA, 0x659B, - 0xF5FB, 0x89D6, 0xF5FC, 0x89DE, 0xF5FD, 0x89DA, 0xF5FE, 0x89DC, - 0xF640, 0x9BDC, 0xF641, 0x9BDD, 0xF642, 0x9BDE, 0xF643, 0x9BDF, - 0xF644, 0x9BE0, 0xF645, 0x9BE1, 0xF646, 0x9BE2, 0xF647, 0x9BE3, - 0xF648, 0x9BE4, 0xF649, 0x9BE5, 0xF64A, 0x9BE6, 0xF64B, 0x9BE7, - 0xF64C, 0x9BE8, 0xF64D, 0x9BE9, 0xF64E, 0x9BEA, 0xF64F, 0x9BEB, - 0xF650, 0x9BEC, 0xF651, 0x9BED, 0xF652, 0x9BEE, 0xF653, 0x9BEF, - 0xF654, 0x9BF0, 0xF655, 0x9BF1, 0xF656, 0x9BF2, 0xF657, 0x9BF3, - 0xF658, 0x9BF4, 0xF659, 0x9BF5, 0xF65A, 0x9BF6, 0xF65B, 0x9BF7, - 0xF65C, 0x9BF8, 0xF65D, 0x9BF9, 0xF65E, 0x9BFA, 0xF65F, 0x9BFB, - 0xF660, 0x9BFC, 0xF661, 0x9BFD, 0xF662, 0x9BFE, 0xF663, 0x9BFF, - 0xF664, 0x9C00, 0xF665, 0x9C01, 0xF666, 0x9C02, 0xF667, 0x9C03, - 0xF668, 0x9C04, 0xF669, 0x9C05, 0xF66A, 0x9C06, 0xF66B, 0x9C07, - 0xF66C, 0x9C08, 0xF66D, 0x9C09, 0xF66E, 0x9C0A, 0xF66F, 0x9C0B, - 0xF670, 0x9C0C, 0xF671, 0x9C0D, 0xF672, 0x9C0E, 0xF673, 0x9C0F, - 0xF674, 0x9C10, 0xF675, 0x9C11, 0xF676, 0x9C12, 0xF677, 0x9C13, - 0xF678, 0x9C14, 0xF679, 0x9C15, 0xF67A, 0x9C16, 0xF67B, 0x9C17, - 0xF67C, 0x9C18, 0xF67D, 0x9C19, 0xF67E, 0x9C1A, 0xF680, 0x9C1B, - 0xF681, 0x9C1C, 0xF682, 0x9C1D, 0xF683, 0x9C1E, 0xF684, 0x9C1F, - 0xF685, 0x9C20, 0xF686, 0x9C21, 0xF687, 0x9C22, 0xF688, 0x9C23, - 0xF689, 0x9C24, 0xF68A, 0x9C25, 0xF68B, 0x9C26, 0xF68C, 0x9C27, - 0xF68D, 0x9C28, 0xF68E, 0x9C29, 0xF68F, 0x9C2A, 0xF690, 0x9C2B, - 0xF691, 0x9C2C, 0xF692, 0x9C2D, 0xF693, 0x9C2E, 0xF694, 0x9C2F, - 0xF695, 0x9C30, 0xF696, 0x9C31, 0xF697, 0x9C32, 0xF698, 0x9C33, - 0xF699, 0x9C34, 0xF69A, 0x9C35, 0xF69B, 0x9C36, 0xF69C, 0x9C37, - 0xF69D, 0x9C38, 0xF69E, 0x9C39, 0xF69F, 0x9C3A, 0xF6A0, 0x9C3B, - 0xF6A1, 0x89E5, 0xF6A2, 0x89EB, 0xF6A3, 0x89EF, 0xF6A4, 0x8A3E, - 0xF6A5, 0x8B26, 0xF6A6, 0x9753, 0xF6A7, 0x96E9, 0xF6A8, 0x96F3, - 0xF6A9, 0x96EF, 0xF6AA, 0x9706, 0xF6AB, 0x9701, 0xF6AC, 0x9708, - 0xF6AD, 0x970F, 0xF6AE, 0x970E, 0xF6AF, 0x972A, 0xF6B0, 0x972D, - 0xF6B1, 0x9730, 0xF6B2, 0x973E, 0xF6B3, 0x9F80, 0xF6B4, 0x9F83, - 0xF6B5, 0x9F85, 0xF6B6, 0x9F86, 0xF6B7, 0x9F87, 0xF6B8, 0x9F88, - 0xF6B9, 0x9F89, 0xF6BA, 0x9F8A, 0xF6BB, 0x9F8C, 0xF6BC, 0x9EFE, - 0xF6BD, 0x9F0B, 0xF6BE, 0x9F0D, 0xF6BF, 0x96B9, 0xF6C0, 0x96BC, - 0xF6C1, 0x96BD, 0xF6C2, 0x96CE, 0xF6C3, 0x96D2, 0xF6C4, 0x77BF, - 0xF6C5, 0x96E0, 0xF6C6, 0x928E, 0xF6C7, 0x92AE, 0xF6C8, 0x92C8, - 0xF6C9, 0x933E, 0xF6CA, 0x936A, 0xF6CB, 0x93CA, 0xF6CC, 0x938F, - 0xF6CD, 0x943E, 0xF6CE, 0x946B, 0xF6CF, 0x9C7F, 0xF6D0, 0x9C82, - 0xF6D1, 0x9C85, 0xF6D2, 0x9C86, 0xF6D3, 0x9C87, 0xF6D4, 0x9C88, - 0xF6D5, 0x7A23, 0xF6D6, 0x9C8B, 0xF6D7, 0x9C8E, 0xF6D8, 0x9C90, - 0xF6D9, 0x9C91, 0xF6DA, 0x9C92, 0xF6DB, 0x9C94, 0xF6DC, 0x9C95, - 0xF6DD, 0x9C9A, 0xF6DE, 0x9C9B, 0xF6DF, 0x9C9E, 0xF6E0, 0x9C9F, - 0xF6E1, 0x9CA0, 0xF6E2, 0x9CA1, 0xF6E3, 0x9CA2, 0xF6E4, 0x9CA3, - 0xF6E5, 0x9CA5, 0xF6E6, 0x9CA6, 0xF6E7, 0x9CA7, 0xF6E8, 0x9CA8, - 0xF6E9, 0x9CA9, 0xF6EA, 0x9CAB, 0xF6EB, 0x9CAD, 0xF6EC, 0x9CAE, - 0xF6ED, 0x9CB0, 0xF6EE, 0x9CB1, 0xF6EF, 0x9CB2, 0xF6F0, 0x9CB3, - 0xF6F1, 0x9CB4, 0xF6F2, 0x9CB5, 0xF6F3, 0x9CB6, 0xF6F4, 0x9CB7, - 0xF6F5, 0x9CBA, 0xF6F6, 0x9CBB, 0xF6F7, 0x9CBC, 0xF6F8, 0x9CBD, - 0xF6F9, 0x9CC4, 0xF6FA, 0x9CC5, 0xF6FB, 0x9CC6, 0xF6FC, 0x9CC7, - 0xF6FD, 0x9CCA, 0xF6FE, 0x9CCB, 0xF740, 0x9C3C, 0xF741, 0x9C3D, - 0xF742, 0x9C3E, 0xF743, 0x9C3F, 0xF744, 0x9C40, 0xF745, 0x9C41, - 0xF746, 0x9C42, 0xF747, 0x9C43, 0xF748, 0x9C44, 0xF749, 0x9C45, - 0xF74A, 0x9C46, 0xF74B, 0x9C47, 0xF74C, 0x9C48, 0xF74D, 0x9C49, - 0xF74E, 0x9C4A, 0xF74F, 0x9C4B, 0xF750, 0x9C4C, 0xF751, 0x9C4D, - 0xF752, 0x9C4E, 0xF753, 0x9C4F, 0xF754, 0x9C50, 0xF755, 0x9C51, - 0xF756, 0x9C52, 0xF757, 0x9C53, 0xF758, 0x9C54, 0xF759, 0x9C55, - 0xF75A, 0x9C56, 0xF75B, 0x9C57, 0xF75C, 0x9C58, 0xF75D, 0x9C59, - 0xF75E, 0x9C5A, 0xF75F, 0x9C5B, 0xF760, 0x9C5C, 0xF761, 0x9C5D, - 0xF762, 0x9C5E, 0xF763, 0x9C5F, 0xF764, 0x9C60, 0xF765, 0x9C61, - 0xF766, 0x9C62, 0xF767, 0x9C63, 0xF768, 0x9C64, 0xF769, 0x9C65, - 0xF76A, 0x9C66, 0xF76B, 0x9C67, 0xF76C, 0x9C68, 0xF76D, 0x9C69, - 0xF76E, 0x9C6A, 0xF76F, 0x9C6B, 0xF770, 0x9C6C, 0xF771, 0x9C6D, - 0xF772, 0x9C6E, 0xF773, 0x9C6F, 0xF774, 0x9C70, 0xF775, 0x9C71, - 0xF776, 0x9C72, 0xF777, 0x9C73, 0xF778, 0x9C74, 0xF779, 0x9C75, - 0xF77A, 0x9C76, 0xF77B, 0x9C77, 0xF77C, 0x9C78, 0xF77D, 0x9C79, - 0xF77E, 0x9C7A, 0xF780, 0x9C7B, 0xF781, 0x9C7D, 0xF782, 0x9C7E, - 0xF783, 0x9C80, 0xF784, 0x9C83, 0xF785, 0x9C84, 0xF786, 0x9C89, - 0xF787, 0x9C8A, 0xF788, 0x9C8C, 0xF789, 0x9C8F, 0xF78A, 0x9C93, - 0xF78B, 0x9C96, 0xF78C, 0x9C97, 0xF78D, 0x9C98, 0xF78E, 0x9C99, - 0xF78F, 0x9C9D, 0xF790, 0x9CAA, 0xF791, 0x9CAC, 0xF792, 0x9CAF, - 0xF793, 0x9CB9, 0xF794, 0x9CBE, 0xF795, 0x9CBF, 0xF796, 0x9CC0, - 0xF797, 0x9CC1, 0xF798, 0x9CC2, 0xF799, 0x9CC8, 0xF79A, 0x9CC9, - 0xF79B, 0x9CD1, 0xF79C, 0x9CD2, 0xF79D, 0x9CDA, 0xF79E, 0x9CDB, - 0xF79F, 0x9CE0, 0xF7A0, 0x9CE1, 0xF7A1, 0x9CCC, 0xF7A2, 0x9CCD, - 0xF7A3, 0x9CCE, 0xF7A4, 0x9CCF, 0xF7A5, 0x9CD0, 0xF7A6, 0x9CD3, - 0xF7A7, 0x9CD4, 0xF7A8, 0x9CD5, 0xF7A9, 0x9CD7, 0xF7AA, 0x9CD8, - 0xF7AB, 0x9CD9, 0xF7AC, 0x9CDC, 0xF7AD, 0x9CDD, 0xF7AE, 0x9CDF, - 0xF7AF, 0x9CE2, 0xF7B0, 0x977C, 0xF7B1, 0x9785, 0xF7B2, 0x9791, - 0xF7B3, 0x9792, 0xF7B4, 0x9794, 0xF7B5, 0x97AF, 0xF7B6, 0x97AB, - 0xF7B7, 0x97A3, 0xF7B8, 0x97B2, 0xF7B9, 0x97B4, 0xF7BA, 0x9AB1, - 0xF7BB, 0x9AB0, 0xF7BC, 0x9AB7, 0xF7BD, 0x9E58, 0xF7BE, 0x9AB6, - 0xF7BF, 0x9ABA, 0xF7C0, 0x9ABC, 0xF7C1, 0x9AC1, 0xF7C2, 0x9AC0, - 0xF7C3, 0x9AC5, 0xF7C4, 0x9AC2, 0xF7C5, 0x9ACB, 0xF7C6, 0x9ACC, - 0xF7C7, 0x9AD1, 0xF7C8, 0x9B45, 0xF7C9, 0x9B43, 0xF7CA, 0x9B47, - 0xF7CB, 0x9B49, 0xF7CC, 0x9B48, 0xF7CD, 0x9B4D, 0xF7CE, 0x9B51, - 0xF7CF, 0x98E8, 0xF7D0, 0x990D, 0xF7D1, 0x992E, 0xF7D2, 0x9955, - 0xF7D3, 0x9954, 0xF7D4, 0x9ADF, 0xF7D5, 0x9AE1, 0xF7D6, 0x9AE6, - 0xF7D7, 0x9AEF, 0xF7D8, 0x9AEB, 0xF7D9, 0x9AFB, 0xF7DA, 0x9AED, - 0xF7DB, 0x9AF9, 0xF7DC, 0x9B08, 0xF7DD, 0x9B0F, 0xF7DE, 0x9B13, - 0xF7DF, 0x9B1F, 0xF7E0, 0x9B23, 0xF7E1, 0x9EBD, 0xF7E2, 0x9EBE, - 0xF7E3, 0x7E3B, 0xF7E4, 0x9E82, 0xF7E5, 0x9E87, 0xF7E6, 0x9E88, - 0xF7E7, 0x9E8B, 0xF7E8, 0x9E92, 0xF7E9, 0x93D6, 0xF7EA, 0x9E9D, - 0xF7EB, 0x9E9F, 0xF7EC, 0x9EDB, 0xF7ED, 0x9EDC, 0xF7EE, 0x9EDD, - 0xF7EF, 0x9EE0, 0xF7F0, 0x9EDF, 0xF7F1, 0x9EE2, 0xF7F2, 0x9EE9, - 0xF7F3, 0x9EE7, 0xF7F4, 0x9EE5, 0xF7F5, 0x9EEA, 0xF7F6, 0x9EEF, - 0xF7F7, 0x9F22, 0xF7F8, 0x9F2C, 0xF7F9, 0x9F2F, 0xF7FA, 0x9F39, - 0xF7FB, 0x9F37, 0xF7FC, 0x9F3D, 0xF7FD, 0x9F3E, 0xF7FE, 0x9F44, - 0xF840, 0x9CE3, 0xF841, 0x9CE4, 0xF842, 0x9CE5, 0xF843, 0x9CE6, - 0xF844, 0x9CE7, 0xF845, 0x9CE8, 0xF846, 0x9CE9, 0xF847, 0x9CEA, - 0xF848, 0x9CEB, 0xF849, 0x9CEC, 0xF84A, 0x9CED, 0xF84B, 0x9CEE, - 0xF84C, 0x9CEF, 0xF84D, 0x9CF0, 0xF84E, 0x9CF1, 0xF84F, 0x9CF2, - 0xF850, 0x9CF3, 0xF851, 0x9CF4, 0xF852, 0x9CF5, 0xF853, 0x9CF6, - 0xF854, 0x9CF7, 0xF855, 0x9CF8, 0xF856, 0x9CF9, 0xF857, 0x9CFA, - 0xF858, 0x9CFB, 0xF859, 0x9CFC, 0xF85A, 0x9CFD, 0xF85B, 0x9CFE, - 0xF85C, 0x9CFF, 0xF85D, 0x9D00, 0xF85E, 0x9D01, 0xF85F, 0x9D02, - 0xF860, 0x9D03, 0xF861, 0x9D04, 0xF862, 0x9D05, 0xF863, 0x9D06, - 0xF864, 0x9D07, 0xF865, 0x9D08, 0xF866, 0x9D09, 0xF867, 0x9D0A, - 0xF868, 0x9D0B, 0xF869, 0x9D0C, 0xF86A, 0x9D0D, 0xF86B, 0x9D0E, - 0xF86C, 0x9D0F, 0xF86D, 0x9D10, 0xF86E, 0x9D11, 0xF86F, 0x9D12, - 0xF870, 0x9D13, 0xF871, 0x9D14, 0xF872, 0x9D15, 0xF873, 0x9D16, - 0xF874, 0x9D17, 0xF875, 0x9D18, 0xF876, 0x9D19, 0xF877, 0x9D1A, - 0xF878, 0x9D1B, 0xF879, 0x9D1C, 0xF87A, 0x9D1D, 0xF87B, 0x9D1E, - 0xF87C, 0x9D1F, 0xF87D, 0x9D20, 0xF87E, 0x9D21, 0xF880, 0x9D22, - 0xF881, 0x9D23, 0xF882, 0x9D24, 0xF883, 0x9D25, 0xF884, 0x9D26, - 0xF885, 0x9D27, 0xF886, 0x9D28, 0xF887, 0x9D29, 0xF888, 0x9D2A, - 0xF889, 0x9D2B, 0xF88A, 0x9D2C, 0xF88B, 0x9D2D, 0xF88C, 0x9D2E, - 0xF88D, 0x9D2F, 0xF88E, 0x9D30, 0xF88F, 0x9D31, 0xF890, 0x9D32, - 0xF891, 0x9D33, 0xF892, 0x9D34, 0xF893, 0x9D35, 0xF894, 0x9D36, - 0xF895, 0x9D37, 0xF896, 0x9D38, 0xF897, 0x9D39, 0xF898, 0x9D3A, - 0xF899, 0x9D3B, 0xF89A, 0x9D3C, 0xF89B, 0x9D3D, 0xF89C, 0x9D3E, - 0xF89D, 0x9D3F, 0xF89E, 0x9D40, 0xF89F, 0x9D41, 0xF8A0, 0x9D42, - 0xF940, 0x9D43, 0xF941, 0x9D44, 0xF942, 0x9D45, 0xF943, 0x9D46, - 0xF944, 0x9D47, 0xF945, 0x9D48, 0xF946, 0x9D49, 0xF947, 0x9D4A, - 0xF948, 0x9D4B, 0xF949, 0x9D4C, 0xF94A, 0x9D4D, 0xF94B, 0x9D4E, - 0xF94C, 0x9D4F, 0xF94D, 0x9D50, 0xF94E, 0x9D51, 0xF94F, 0x9D52, - 0xF950, 0x9D53, 0xF951, 0x9D54, 0xF952, 0x9D55, 0xF953, 0x9D56, - 0xF954, 0x9D57, 0xF955, 0x9D58, 0xF956, 0x9D59, 0xF957, 0x9D5A, - 0xF958, 0x9D5B, 0xF959, 0x9D5C, 0xF95A, 0x9D5D, 0xF95B, 0x9D5E, - 0xF95C, 0x9D5F, 0xF95D, 0x9D60, 0xF95E, 0x9D61, 0xF95F, 0x9D62, - 0xF960, 0x9D63, 0xF961, 0x9D64, 0xF962, 0x9D65, 0xF963, 0x9D66, - 0xF964, 0x9D67, 0xF965, 0x9D68, 0xF966, 0x9D69, 0xF967, 0x9D6A, - 0xF968, 0x9D6B, 0xF969, 0x9D6C, 0xF96A, 0x9D6D, 0xF96B, 0x9D6E, - 0xF96C, 0x9D6F, 0xF96D, 0x9D70, 0xF96E, 0x9D71, 0xF96F, 0x9D72, - 0xF970, 0x9D73, 0xF971, 0x9D74, 0xF972, 0x9D75, 0xF973, 0x9D76, - 0xF974, 0x9D77, 0xF975, 0x9D78, 0xF976, 0x9D79, 0xF977, 0x9D7A, - 0xF978, 0x9D7B, 0xF979, 0x9D7C, 0xF97A, 0x9D7D, 0xF97B, 0x9D7E, - 0xF97C, 0x9D7F, 0xF97D, 0x9D80, 0xF97E, 0x9D81, 0xF980, 0x9D82, - 0xF981, 0x9D83, 0xF982, 0x9D84, 0xF983, 0x9D85, 0xF984, 0x9D86, - 0xF985, 0x9D87, 0xF986, 0x9D88, 0xF987, 0x9D89, 0xF988, 0x9D8A, - 0xF989, 0x9D8B, 0xF98A, 0x9D8C, 0xF98B, 0x9D8D, 0xF98C, 0x9D8E, - 0xF98D, 0x9D8F, 0xF98E, 0x9D90, 0xF98F, 0x9D91, 0xF990, 0x9D92, - 0xF991, 0x9D93, 0xF992, 0x9D94, 0xF993, 0x9D95, 0xF994, 0x9D96, - 0xF995, 0x9D97, 0xF996, 0x9D98, 0xF997, 0x9D99, 0xF998, 0x9D9A, - 0xF999, 0x9D9B, 0xF99A, 0x9D9C, 0xF99B, 0x9D9D, 0xF99C, 0x9D9E, - 0xF99D, 0x9D9F, 0xF99E, 0x9DA0, 0xF99F, 0x9DA1, 0xF9A0, 0x9DA2, - 0xFA40, 0x9DA3, 0xFA41, 0x9DA4, 0xFA42, 0x9DA5, 0xFA43, 0x9DA6, - 0xFA44, 0x9DA7, 0xFA45, 0x9DA8, 0xFA46, 0x9DA9, 0xFA47, 0x9DAA, - 0xFA48, 0x9DAB, 0xFA49, 0x9DAC, 0xFA4A, 0x9DAD, 0xFA4B, 0x9DAE, - 0xFA4C, 0x9DAF, 0xFA4D, 0x9DB0, 0xFA4E, 0x9DB1, 0xFA4F, 0x9DB2, - 0xFA50, 0x9DB3, 0xFA51, 0x9DB4, 0xFA52, 0x9DB5, 0xFA53, 0x9DB6, - 0xFA54, 0x9DB7, 0xFA55, 0x9DB8, 0xFA56, 0x9DB9, 0xFA57, 0x9DBA, - 0xFA58, 0x9DBB, 0xFA59, 0x9DBC, 0xFA5A, 0x9DBD, 0xFA5B, 0x9DBE, - 0xFA5C, 0x9DBF, 0xFA5D, 0x9DC0, 0xFA5E, 0x9DC1, 0xFA5F, 0x9DC2, - 0xFA60, 0x9DC3, 0xFA61, 0x9DC4, 0xFA62, 0x9DC5, 0xFA63, 0x9DC6, - 0xFA64, 0x9DC7, 0xFA65, 0x9DC8, 0xFA66, 0x9DC9, 0xFA67, 0x9DCA, - 0xFA68, 0x9DCB, 0xFA69, 0x9DCC, 0xFA6A, 0x9DCD, 0xFA6B, 0x9DCE, - 0xFA6C, 0x9DCF, 0xFA6D, 0x9DD0, 0xFA6E, 0x9DD1, 0xFA6F, 0x9DD2, - 0xFA70, 0x9DD3, 0xFA71, 0x9DD4, 0xFA72, 0x9DD5, 0xFA73, 0x9DD6, - 0xFA74, 0x9DD7, 0xFA75, 0x9DD8, 0xFA76, 0x9DD9, 0xFA77, 0x9DDA, - 0xFA78, 0x9DDB, 0xFA79, 0x9DDC, 0xFA7A, 0x9DDD, 0xFA7B, 0x9DDE, - 0xFA7C, 0x9DDF, 0xFA7D, 0x9DE0, 0xFA7E, 0x9DE1, 0xFA80, 0x9DE2, - 0xFA81, 0x9DE3, 0xFA82, 0x9DE4, 0xFA83, 0x9DE5, 0xFA84, 0x9DE6, - 0xFA85, 0x9DE7, 0xFA86, 0x9DE8, 0xFA87, 0x9DE9, 0xFA88, 0x9DEA, - 0xFA89, 0x9DEB, 0xFA8A, 0x9DEC, 0xFA8B, 0x9DED, 0xFA8C, 0x9DEE, - 0xFA8D, 0x9DEF, 0xFA8E, 0x9DF0, 0xFA8F, 0x9DF1, 0xFA90, 0x9DF2, - 0xFA91, 0x9DF3, 0xFA92, 0x9DF4, 0xFA93, 0x9DF5, 0xFA94, 0x9DF6, - 0xFA95, 0x9DF7, 0xFA96, 0x9DF8, 0xFA97, 0x9DF9, 0xFA98, 0x9DFA, - 0xFA99, 0x9DFB, 0xFA9A, 0x9DFC, 0xFA9B, 0x9DFD, 0xFA9C, 0x9DFE, - 0xFA9D, 0x9DFF, 0xFA9E, 0x9E00, 0xFA9F, 0x9E01, 0xFAA0, 0x9E02, - 0xFB40, 0x9E03, 0xFB41, 0x9E04, 0xFB42, 0x9E05, 0xFB43, 0x9E06, - 0xFB44, 0x9E07, 0xFB45, 0x9E08, 0xFB46, 0x9E09, 0xFB47, 0x9E0A, - 0xFB48, 0x9E0B, 0xFB49, 0x9E0C, 0xFB4A, 0x9E0D, 0xFB4B, 0x9E0E, - 0xFB4C, 0x9E0F, 0xFB4D, 0x9E10, 0xFB4E, 0x9E11, 0xFB4F, 0x9E12, - 0xFB50, 0x9E13, 0xFB51, 0x9E14, 0xFB52, 0x9E15, 0xFB53, 0x9E16, - 0xFB54, 0x9E17, 0xFB55, 0x9E18, 0xFB56, 0x9E19, 0xFB57, 0x9E1A, - 0xFB58, 0x9E1B, 0xFB59, 0x9E1C, 0xFB5A, 0x9E1D, 0xFB5B, 0x9E1E, - 0xFB5C, 0x9E24, 0xFB5D, 0x9E27, 0xFB5E, 0x9E2E, 0xFB5F, 0x9E30, - 0xFB60, 0x9E34, 0xFB61, 0x9E3B, 0xFB62, 0x9E3C, 0xFB63, 0x9E40, - 0xFB64, 0x9E4D, 0xFB65, 0x9E50, 0xFB66, 0x9E52, 0xFB67, 0x9E53, - 0xFB68, 0x9E54, 0xFB69, 0x9E56, 0xFB6A, 0x9E59, 0xFB6B, 0x9E5D, - 0xFB6C, 0x9E5F, 0xFB6D, 0x9E60, 0xFB6E, 0x9E61, 0xFB6F, 0x9E62, - 0xFB70, 0x9E65, 0xFB71, 0x9E6E, 0xFB72, 0x9E6F, 0xFB73, 0x9E72, - 0xFB74, 0x9E74, 0xFB75, 0x9E75, 0xFB76, 0x9E76, 0xFB77, 0x9E77, - 0xFB78, 0x9E78, 0xFB79, 0x9E79, 0xFB7A, 0x9E7A, 0xFB7B, 0x9E7B, - 0xFB7C, 0x9E7C, 0xFB7D, 0x9E7D, 0xFB7E, 0x9E80, 0xFB80, 0x9E81, - 0xFB81, 0x9E83, 0xFB82, 0x9E84, 0xFB83, 0x9E85, 0xFB84, 0x9E86, - 0xFB85, 0x9E89, 0xFB86, 0x9E8A, 0xFB87, 0x9E8C, 0xFB88, 0x9E8D, - 0xFB89, 0x9E8E, 0xFB8A, 0x9E8F, 0xFB8B, 0x9E90, 0xFB8C, 0x9E91, - 0xFB8D, 0x9E94, 0xFB8E, 0x9E95, 0xFB8F, 0x9E96, 0xFB90, 0x9E97, - 0xFB91, 0x9E98, 0xFB92, 0x9E99, 0xFB93, 0x9E9A, 0xFB94, 0x9E9B, - 0xFB95, 0x9E9C, 0xFB96, 0x9E9E, 0xFB97, 0x9EA0, 0xFB98, 0x9EA1, - 0xFB99, 0x9EA2, 0xFB9A, 0x9EA3, 0xFB9B, 0x9EA4, 0xFB9C, 0x9EA5, - 0xFB9D, 0x9EA7, 0xFB9E, 0x9EA8, 0xFB9F, 0x9EA9, 0xFBA0, 0x9EAA, - 0xFC40, 0x9EAB, 0xFC41, 0x9EAC, 0xFC42, 0x9EAD, 0xFC43, 0x9EAE, - 0xFC44, 0x9EAF, 0xFC45, 0x9EB0, 0xFC46, 0x9EB1, 0xFC47, 0x9EB2, - 0xFC48, 0x9EB3, 0xFC49, 0x9EB5, 0xFC4A, 0x9EB6, 0xFC4B, 0x9EB7, - 0xFC4C, 0x9EB9, 0xFC4D, 0x9EBA, 0xFC4E, 0x9EBC, 0xFC4F, 0x9EBF, - 0xFC50, 0x9EC0, 0xFC51, 0x9EC1, 0xFC52, 0x9EC2, 0xFC53, 0x9EC3, - 0xFC54, 0x9EC5, 0xFC55, 0x9EC6, 0xFC56, 0x9EC7, 0xFC57, 0x9EC8, - 0xFC58, 0x9ECA, 0xFC59, 0x9ECB, 0xFC5A, 0x9ECC, 0xFC5B, 0x9ED0, - 0xFC5C, 0x9ED2, 0xFC5D, 0x9ED3, 0xFC5E, 0x9ED5, 0xFC5F, 0x9ED6, - 0xFC60, 0x9ED7, 0xFC61, 0x9ED9, 0xFC62, 0x9EDA, 0xFC63, 0x9EDE, - 0xFC64, 0x9EE1, 0xFC65, 0x9EE3, 0xFC66, 0x9EE4, 0xFC67, 0x9EE6, - 0xFC68, 0x9EE8, 0xFC69, 0x9EEB, 0xFC6A, 0x9EEC, 0xFC6B, 0x9EED, - 0xFC6C, 0x9EEE, 0xFC6D, 0x9EF0, 0xFC6E, 0x9EF1, 0xFC6F, 0x9EF2, - 0xFC70, 0x9EF3, 0xFC71, 0x9EF4, 0xFC72, 0x9EF5, 0xFC73, 0x9EF6, - 0xFC74, 0x9EF7, 0xFC75, 0x9EF8, 0xFC76, 0x9EFA, 0xFC77, 0x9EFD, - 0xFC78, 0x9EFF, 0xFC79, 0x9F00, 0xFC7A, 0x9F01, 0xFC7B, 0x9F02, - 0xFC7C, 0x9F03, 0xFC7D, 0x9F04, 0xFC7E, 0x9F05, 0xFC80, 0x9F06, - 0xFC81, 0x9F07, 0xFC82, 0x9F08, 0xFC83, 0x9F09, 0xFC84, 0x9F0A, - 0xFC85, 0x9F0C, 0xFC86, 0x9F0F, 0xFC87, 0x9F11, 0xFC88, 0x9F12, - 0xFC89, 0x9F14, 0xFC8A, 0x9F15, 0xFC8B, 0x9F16, 0xFC8C, 0x9F18, - 0xFC8D, 0x9F1A, 0xFC8E, 0x9F1B, 0xFC8F, 0x9F1C, 0xFC90, 0x9F1D, - 0xFC91, 0x9F1E, 0xFC92, 0x9F1F, 0xFC93, 0x9F21, 0xFC94, 0x9F23, - 0xFC95, 0x9F24, 0xFC96, 0x9F25, 0xFC97, 0x9F26, 0xFC98, 0x9F27, - 0xFC99, 0x9F28, 0xFC9A, 0x9F29, 0xFC9B, 0x9F2A, 0xFC9C, 0x9F2B, - 0xFC9D, 0x9F2D, 0xFC9E, 0x9F2E, 0xFC9F, 0x9F30, 0xFCA0, 0x9F31, - 0xFD40, 0x9F32, 0xFD41, 0x9F33, 0xFD42, 0x9F34, 0xFD43, 0x9F35, - 0xFD44, 0x9F36, 0xFD45, 0x9F38, 0xFD46, 0x9F3A, 0xFD47, 0x9F3C, - 0xFD48, 0x9F3F, 0xFD49, 0x9F40, 0xFD4A, 0x9F41, 0xFD4B, 0x9F42, - 0xFD4C, 0x9F43, 0xFD4D, 0x9F45, 0xFD4E, 0x9F46, 0xFD4F, 0x9F47, - 0xFD50, 0x9F48, 0xFD51, 0x9F49, 0xFD52, 0x9F4A, 0xFD53, 0x9F4B, - 0xFD54, 0x9F4C, 0xFD55, 0x9F4D, 0xFD56, 0x9F4E, 0xFD57, 0x9F4F, - 0xFD58, 0x9F52, 0xFD59, 0x9F53, 0xFD5A, 0x9F54, 0xFD5B, 0x9F55, - 0xFD5C, 0x9F56, 0xFD5D, 0x9F57, 0xFD5E, 0x9F58, 0xFD5F, 0x9F59, - 0xFD60, 0x9F5A, 0xFD61, 0x9F5B, 0xFD62, 0x9F5C, 0xFD63, 0x9F5D, - 0xFD64, 0x9F5E, 0xFD65, 0x9F5F, 0xFD66, 0x9F60, 0xFD67, 0x9F61, - 0xFD68, 0x9F62, 0xFD69, 0x9F63, 0xFD6A, 0x9F64, 0xFD6B, 0x9F65, - 0xFD6C, 0x9F66, 0xFD6D, 0x9F67, 0xFD6E, 0x9F68, 0xFD6F, 0x9F69, - 0xFD70, 0x9F6A, 0xFD71, 0x9F6B, 0xFD72, 0x9F6C, 0xFD73, 0x9F6D, - 0xFD74, 0x9F6E, 0xFD75, 0x9F6F, 0xFD76, 0x9F70, 0xFD77, 0x9F71, - 0xFD78, 0x9F72, 0xFD79, 0x9F73, 0xFD7A, 0x9F74, 0xFD7B, 0x9F75, - 0xFD7C, 0x9F76, 0xFD7D, 0x9F77, 0xFD7E, 0x9F78, 0xFD80, 0x9F79, - 0xFD81, 0x9F7A, 0xFD82, 0x9F7B, 0xFD83, 0x9F7C, 0xFD84, 0x9F7D, - 0xFD85, 0x9F7E, 0xFD86, 0x9F81, 0xFD87, 0x9F82, 0xFD88, 0x9F8D, - 0xFD89, 0x9F8E, 0xFD8A, 0x9F8F, 0xFD8B, 0x9F90, 0xFD8C, 0x9F91, - 0xFD8D, 0x9F92, 0xFD8E, 0x9F93, 0xFD8F, 0x9F94, 0xFD90, 0x9F95, - 0xFD91, 0x9F96, 0xFD92, 0x9F97, 0xFD93, 0x9F98, 0xFD94, 0x9F9C, - 0xFD95, 0x9F9D, 0xFD96, 0x9F9E, 0xFD97, 0x9FA1, 0xFD98, 0x9FA2, - 0xFD99, 0x9FA3, 0xFD9A, 0x9FA4, 0xFD9B, 0x9FA5, 0xFD9C, 0xF92C, - 0xFD9D, 0xF979, 0xFD9E, 0xF995, 0xFD9F, 0xF9E7, 0xFDA0, 0xF9F1, - 0xFE40, 0xFA0C, 0xFE41, 0xFA0D, 0xFE42, 0xFA0E, 0xFE43, 0xFA0F, - 0xFE44, 0xFA11, 0xFE45, 0xFA13, 0xFE46, 0xFA14, 0xFE47, 0xFA18, - 0xFE48, 0xFA1F, 0xFE49, 0xFA20, 0xFE4A, 0xFA21, 0xFE4B, 0xFA23, - 0xFE4C, 0xFA24, 0xFE4D, 0xFA27, 0xFE4E, 0xFA28, 0xFE4F, 0xFA29, - 0, 0 -}; - - - -WCHAR ff_convert ( /* Converted code, 0 means conversion error */ - WCHAR chr, /* Character code to be converted */ - UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ -) -{ - const WCHAR *p; - WCHAR c; - int i, n, li, hi; - - - if (chr < 0x80) { /* ASCII */ - c = chr; - } else { - if (dir) { /* OEM code to unicode */ - p = oem2uni; - hi = sizeof oem2uni / 4 - 1; - } else { /* Unicode to OEM code */ - p = uni2oem; - hi = sizeof uni2oem / 4 - 1; - } - li = 0; - for (n = 16; n; n--) { - i = li + (hi - li) / 2; - if (chr == p[i * 2]) break; - if (chr > p[i * 2]) - li = i; - else - hi = i; - } - c = n ? p[i * 2 + 1] : 0; - } - - return c; -} - - - -WCHAR ff_wtoupper ( /* Returns upper converted character */ - WCHAR chr /* Unicode character to be upper converted (BMP only) */ -) -{ - /* Compressed upper conversion table */ - static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ - /* Basic Latin */ - 0x0061,0x031A, - /* Latin-1 Supplement */ - 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, - /* Latin Extended-A */ - 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, - /* Latin Extended-B */ - 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, - 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, - 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, - /* IPA Extensions */ - 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, - /* Greek, Coptic */ - 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, - 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, - 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, - /* Cyrillic */ - 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, - /* Armenian */ - 0x0561,0x0426, - - 0x0000 - }; - static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ - /* Phonetic Extensions */ - 0x1D7D,0x0001,0x2C63, - /* Latin Extended Additional */ - 0x1E00,0x0196, 0x1EA0,0x015A, - /* Greek Extended */ - 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, - 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, - 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, - 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, - 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, - /* Letterlike Symbols */ - 0x214E,0x0001,0x2132, - /* Number forms */ - 0x2170,0x0210, 0x2184,0x0001,0x2183, - /* Enclosed Alphanumerics */ - 0x24D0,0x051A, 0x2C30,0x042F, - /* Latin Extended-C */ - 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, - /* Coptic */ - 0x2C80,0x0164, - /* Georgian Supplement */ - 0x2D00,0x0826, - /* Full-width */ - 0xFF41,0x031A, - - 0x0000 - }; - const WCHAR *p; - WCHAR bc, nc, cmd; - - - p = chr < 0x1000 ? cvt1 : cvt2; - for (;;) { - bc = *p++; /* Get block base */ - if (!bc || chr < bc) break; - nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ - if (chr < bc + nc) { /* In the block? */ - switch (cmd) { - case 0: chr = p[chr - bc]; break; /* Table conversion */ - case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ - case 2: chr -= 16; break; /* Shift -16 */ - case 3: chr -= 32; break; /* Shift -32 */ - case 4: chr -= 48; break; /* Shift -48 */ - case 5: chr -= 26; break; /* Shift -26 */ - case 6: chr += 8; break; /* Shift +8 */ - case 7: chr -= 80; break; /* Shift -80 */ - case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ - } - break; - } - if (!cmd) p += nc; - } - - return chr; -} - -#endif diff --git a/extras/fatfs/cc949.h b/extras/fatfs/cc949.h deleted file mode 100644 index 1e95ec3..0000000 --- a/extras/fatfs/cc949.h +++ /dev/null @@ -1,8672 +0,0 @@ -/*------------------------------------------------------------------------*/ -/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ -/* CP949 (Korean EUC-KR) */ -/*------------------------------------------------------------------------*/ - -#include "ff.h" - - -#if _USE_LFN && _CODE_PAGE == 949 - -static -const WCHAR uni2oem[] = { -/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ - 0x00A1, 0xA2AE, 0x00A4, 0xA2B4, 0x00A7, 0xA1D7, 0x00A8, 0xA1A7, - 0x00AA, 0xA8A3, 0x00AD, 0xA1A9, 0x00AE, 0xA2E7, 0x00B0, 0xA1C6, - 0x00B1, 0xA1BE, 0x00B2, 0xA9F7, 0x00B3, 0xA9F8, 0x00B4, 0xA2A5, - 0x00B6, 0xA2D2, 0x00B7, 0xA1A4, 0x00B8, 0xA2AC, 0x00B9, 0xA9F6, - 0x00BA, 0xA8AC, 0x00BC, 0xA8F9, 0x00BD, 0xA8F6, 0x00BE, 0xA8FA, - 0x00BF, 0xA2AF, 0x00C6, 0xA8A1, 0x00D0, 0xA8A2, 0x00D7, 0xA1BF, - 0x00D8, 0xA8AA, 0x00DE, 0xA8AD, 0x00DF, 0xA9AC, 0x00E6, 0xA9A1, - 0x00F0, 0xA9A3, 0x00F7, 0xA1C0, 0x00F8, 0xA9AA, 0x00FE, 0xA9AD, - 0x0111, 0xA9A2, 0x0126, 0xA8A4, 0x0127, 0xA9A4, 0x0131, 0xA9A5, - 0x0132, 0xA8A6, 0x0133, 0xA9A6, 0x0138, 0xA9A7, 0x013F, 0xA8A8, - 0x0140, 0xA9A8, 0x0141, 0xA8A9, 0x0142, 0xA9A9, 0x0149, 0xA9B0, - 0x014A, 0xA8AF, 0x014B, 0xA9AF, 0x0152, 0xA8AB, 0x0153, 0xA9AB, - 0x0166, 0xA8AE, 0x0167, 0xA9AE, 0x02C7, 0xA2A7, 0x02D0, 0xA2B0, - 0x02D8, 0xA2A8, 0x02D9, 0xA2AB, 0x02DA, 0xA2AA, 0x02DB, 0xA2AD, - 0x02DD, 0xA2A9, 0x0391, 0xA5C1, 0x0392, 0xA5C2, 0x0393, 0xA5C3, - 0x0394, 0xA5C4, 0x0395, 0xA5C5, 0x0396, 0xA5C6, 0x0397, 0xA5C7, - 0x0398, 0xA5C8, 0x0399, 0xA5C9, 0x039A, 0xA5CA, 0x039B, 0xA5CB, - 0x039C, 0xA5CC, 0x039D, 0xA5CD, 0x039E, 0xA5CE, 0x039F, 0xA5CF, - 0x03A0, 0xA5D0, 0x03A1, 0xA5D1, 0x03A3, 0xA5D2, 0x03A4, 0xA5D3, - 0x03A5, 0xA5D4, 0x03A6, 0xA5D5, 0x03A7, 0xA5D6, 0x03A8, 0xA5D7, - 0x03A9, 0xA5D8, 0x03B1, 0xA5E1, 0x03B2, 0xA5E2, 0x03B3, 0xA5E3, - 0x03B4, 0xA5E4, 0x03B5, 0xA5E5, 0x03B6, 0xA5E6, 0x03B7, 0xA5E7, - 0x03B8, 0xA5E8, 0x03B9, 0xA5E9, 0x03BA, 0xA5EA, 0x03BB, 0xA5EB, - 0x03BC, 0xA5EC, 0x03BD, 0xA5ED, 0x03BE, 0xA5EE, 0x03BF, 0xA5EF, - 0x03C0, 0xA5F0, 0x03C1, 0xA5F1, 0x03C3, 0xA5F2, 0x03C4, 0xA5F3, - 0x03C5, 0xA5F4, 0x03C6, 0xA5F5, 0x03C7, 0xA5F6, 0x03C8, 0xA5F7, - 0x03C9, 0xA5F8, 0x0401, 0xACA7, 0x0410, 0xACA1, 0x0411, 0xACA2, - 0x0412, 0xACA3, 0x0413, 0xACA4, 0x0414, 0xACA5, 0x0415, 0xACA6, - 0x0416, 0xACA8, 0x0417, 0xACA9, 0x0418, 0xACAA, 0x0419, 0xACAB, - 0x041A, 0xACAC, 0x041B, 0xACAD, 0x041C, 0xACAE, 0x041D, 0xACAF, - 0x041E, 0xACB0, 0x041F, 0xACB1, 0x0420, 0xACB2, 0x0421, 0xACB3, - 0x0422, 0xACB4, 0x0423, 0xACB5, 0x0424, 0xACB6, 0x0425, 0xACB7, - 0x0426, 0xACB8, 0x0427, 0xACB9, 0x0428, 0xACBA, 0x0429, 0xACBB, - 0x042A, 0xACBC, 0x042B, 0xACBD, 0x042C, 0xACBE, 0x042D, 0xACBF, - 0x042E, 0xACC0, 0x042F, 0xACC1, 0x0430, 0xACD1, 0x0431, 0xACD2, - 0x0432, 0xACD3, 0x0433, 0xACD4, 0x0434, 0xACD5, 0x0435, 0xACD6, - 0x0436, 0xACD8, 0x0437, 0xACD9, 0x0438, 0xACDA, 0x0439, 0xACDB, - 0x043A, 0xACDC, 0x043B, 0xACDD, 0x043C, 0xACDE, 0x043D, 0xACDF, - 0x043E, 0xACE0, 0x043F, 0xACE1, 0x0440, 0xACE2, 0x0441, 0xACE3, - 0x0442, 0xACE4, 0x0443, 0xACE5, 0x0444, 0xACE6, 0x0445, 0xACE7, - 0x0446, 0xACE8, 0x0447, 0xACE9, 0x0448, 0xACEA, 0x0449, 0xACEB, - 0x044A, 0xACEC, 0x044B, 0xACED, 0x044C, 0xACEE, 0x044D, 0xACEF, - 0x044E, 0xACF0, 0x044F, 0xACF1, 0x0451, 0xACD7, 0x2015, 0xA1AA, - 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, - 0x2020, 0xA2D3, 0x2021, 0xA2D4, 0x2025, 0xA1A5, 0x2026, 0xA1A6, - 0x2030, 0xA2B6, 0x2032, 0xA1C7, 0x2033, 0xA1C8, 0x203B, 0xA1D8, - 0x2074, 0xA9F9, 0x207F, 0xA9FA, 0x2081, 0xA9FB, 0x2082, 0xA9FC, - 0x2083, 0xA9FD, 0x2084, 0xA9FE, 0x20AC, 0xA2E6, 0x2103, 0xA1C9, - 0x2109, 0xA2B5, 0x2113, 0xA7A4, 0x2116, 0xA2E0, 0x2121, 0xA2E5, - 0x2122, 0xA2E2, 0x2126, 0xA7D9, 0x212B, 0xA1CA, 0x2153, 0xA8F7, - 0x2154, 0xA8F8, 0x215B, 0xA8FB, 0x215C, 0xA8FC, 0x215D, 0xA8FD, - 0x215E, 0xA8FE, 0x2160, 0xA5B0, 0x2161, 0xA5B1, 0x2162, 0xA5B2, - 0x2163, 0xA5B3, 0x2164, 0xA5B4, 0x2165, 0xA5B5, 0x2166, 0xA5B6, - 0x2167, 0xA5B7, 0x2168, 0xA5B8, 0x2169, 0xA5B9, 0x2170, 0xA5A1, - 0x2171, 0xA5A2, 0x2172, 0xA5A3, 0x2173, 0xA5A4, 0x2174, 0xA5A5, - 0x2175, 0xA5A6, 0x2176, 0xA5A7, 0x2177, 0xA5A8, 0x2178, 0xA5A9, - 0x2179, 0xA5AA, 0x2190, 0xA1E7, 0x2191, 0xA1E8, 0x2192, 0xA1E6, - 0x2193, 0xA1E9, 0x2194, 0xA1EA, 0x2195, 0xA2D5, 0x2196, 0xA2D8, - 0x2197, 0xA2D6, 0x2198, 0xA2D9, 0x2199, 0xA2D7, 0x21D2, 0xA2A1, - 0x21D4, 0xA2A2, 0x2200, 0xA2A3, 0x2202, 0xA1D3, 0x2203, 0xA2A4, - 0x2207, 0xA1D4, 0x2208, 0xA1F4, 0x220B, 0xA1F5, 0x220F, 0xA2B3, - 0x2211, 0xA2B2, 0x221A, 0xA1EE, 0x221D, 0xA1F0, 0x221E, 0xA1C4, - 0x2220, 0xA1D0, 0x2225, 0xA1AB, 0x2227, 0xA1FC, 0x2228, 0xA1FD, - 0x2229, 0xA1FB, 0x222A, 0xA1FA, 0x222B, 0xA1F2, 0x222C, 0xA1F3, - 0x222E, 0xA2B1, 0x2234, 0xA1C5, 0x2235, 0xA1F1, 0x223C, 0xA1AD, - 0x223D, 0xA1EF, 0x2252, 0xA1D6, 0x2260, 0xA1C1, 0x2261, 0xA1D5, - 0x2264, 0xA1C2, 0x2265, 0xA1C3, 0x226A, 0xA1EC, 0x226B, 0xA1ED, - 0x2282, 0xA1F8, 0x2283, 0xA1F9, 0x2286, 0xA1F6, 0x2287, 0xA1F7, - 0x2299, 0xA2C1, 0x22A5, 0xA1D1, 0x2312, 0xA1D2, 0x2460, 0xA8E7, - 0x2461, 0xA8E8, 0x2462, 0xA8E9, 0x2463, 0xA8EA, 0x2464, 0xA8EB, - 0x2465, 0xA8EC, 0x2466, 0xA8ED, 0x2467, 0xA8EE, 0x2468, 0xA8EF, - 0x2469, 0xA8F0, 0x246A, 0xA8F1, 0x246B, 0xA8F2, 0x246C, 0xA8F3, - 0x246D, 0xA8F4, 0x246E, 0xA8F5, 0x2474, 0xA9E7, 0x2475, 0xA9E8, - 0x2476, 0xA9E9, 0x2477, 0xA9EA, 0x2478, 0xA9EB, 0x2479, 0xA9EC, - 0x247A, 0xA9ED, 0x247B, 0xA9EE, 0x247C, 0xA9EF, 0x247D, 0xA9F0, - 0x247E, 0xA9F1, 0x247F, 0xA9F2, 0x2480, 0xA9F3, 0x2481, 0xA9F4, - 0x2482, 0xA9F5, 0x249C, 0xA9CD, 0x249D, 0xA9CE, 0x249E, 0xA9CF, - 0x249F, 0xA9D0, 0x24A0, 0xA9D1, 0x24A1, 0xA9D2, 0x24A2, 0xA9D3, - 0x24A3, 0xA9D4, 0x24A4, 0xA9D5, 0x24A5, 0xA9D6, 0x24A6, 0xA9D7, - 0x24A7, 0xA9D8, 0x24A8, 0xA9D9, 0x24A9, 0xA9DA, 0x24AA, 0xA9DB, - 0x24AB, 0xA9DC, 0x24AC, 0xA9DD, 0x24AD, 0xA9DE, 0x24AE, 0xA9DF, - 0x24AF, 0xA9E0, 0x24B0, 0xA9E1, 0x24B1, 0xA9E2, 0x24B2, 0xA9E3, - 0x24B3, 0xA9E4, 0x24B4, 0xA9E5, 0x24B5, 0xA9E6, 0x24D0, 0xA8CD, - 0x24D1, 0xA8CE, 0x24D2, 0xA8CF, 0x24D3, 0xA8D0, 0x24D4, 0xA8D1, - 0x24D5, 0xA8D2, 0x24D6, 0xA8D3, 0x24D7, 0xA8D4, 0x24D8, 0xA8D5, - 0x24D9, 0xA8D6, 0x24DA, 0xA8D7, 0x24DB, 0xA8D8, 0x24DC, 0xA8D9, - 0x24DD, 0xA8DA, 0x24DE, 0xA8DB, 0x24DF, 0xA8DC, 0x24E0, 0xA8DD, - 0x24E1, 0xA8DE, 0x24E2, 0xA8DF, 0x24E3, 0xA8E0, 0x24E4, 0xA8E1, - 0x24E5, 0xA8E2, 0x24E6, 0xA8E3, 0x24E7, 0xA8E4, 0x24E8, 0xA8E5, - 0x24E9, 0xA8E6, 0x2500, 0xA6A1, 0x2501, 0xA6AC, 0x2502, 0xA6A2, - 0x2503, 0xA6AD, 0x250C, 0xA6A3, 0x250D, 0xA6C8, 0x250E, 0xA6C7, - 0x250F, 0xA6AE, 0x2510, 0xA6A4, 0x2511, 0xA6C2, 0x2512, 0xA6C1, - 0x2513, 0xA6AF, 0x2514, 0xA6A6, 0x2515, 0xA6C6, 0x2516, 0xA6C5, - 0x2517, 0xA6B1, 0x2518, 0xA6A5, 0x2519, 0xA6C4, 0x251A, 0xA6C3, - 0x251B, 0xA6B0, 0x251C, 0xA6A7, 0x251D, 0xA6BC, 0x251E, 0xA6C9, - 0x251F, 0xA6CA, 0x2520, 0xA6B7, 0x2521, 0xA6CB, 0x2522, 0xA6CC, - 0x2523, 0xA6B2, 0x2524, 0xA6A9, 0x2525, 0xA6BE, 0x2526, 0xA6CD, - 0x2527, 0xA6CE, 0x2528, 0xA6B9, 0x2529, 0xA6CF, 0x252A, 0xA6D0, - 0x252B, 0xA6B4, 0x252C, 0xA6A8, 0x252D, 0xA6D1, 0x252E, 0xA6D2, - 0x252F, 0xA6B8, 0x2530, 0xA6BD, 0x2531, 0xA6D3, 0x2532, 0xA6D4, - 0x2533, 0xA6B3, 0x2534, 0xA6AA, 0x2535, 0xA6D5, 0x2536, 0xA6D6, - 0x2537, 0xA6BA, 0x2538, 0xA6BF, 0x2539, 0xA6D7, 0x253A, 0xA6D8, - 0x253B, 0xA6B5, 0x253C, 0xA6AB, 0x253D, 0xA6D9, 0x253E, 0xA6DA, - 0x253F, 0xA6BB, 0x2540, 0xA6DB, 0x2541, 0xA6DC, 0x2542, 0xA6C0, - 0x2543, 0xA6DD, 0x2544, 0xA6DE, 0x2545, 0xA6DF, 0x2546, 0xA6E0, - 0x2547, 0xA6E1, 0x2548, 0xA6E2, 0x2549, 0xA6E3, 0x254A, 0xA6E4, - 0x254B, 0xA6B6, 0x2592, 0xA2C6, 0x25A0, 0xA1E1, 0x25A1, 0xA1E0, - 0x25A3, 0xA2C3, 0x25A4, 0xA2C7, 0x25A5, 0xA2C8, 0x25A6, 0xA2CB, - 0x25A7, 0xA2CA, 0x25A8, 0xA2C9, 0x25A9, 0xA2CC, 0x25B2, 0xA1E3, - 0x25B3, 0xA1E2, 0x25B6, 0xA2BA, 0x25B7, 0xA2B9, 0x25BC, 0xA1E5, - 0x25BD, 0xA1E4, 0x25C0, 0xA2B8, 0x25C1, 0xA2B7, 0x25C6, 0xA1DF, - 0x25C7, 0xA1DE, 0x25C8, 0xA2C2, 0x25CB, 0xA1DB, 0x25CE, 0xA1DD, - 0x25CF, 0xA1DC, 0x25D0, 0xA2C4, 0x25D1, 0xA2C5, 0x2605, 0xA1DA, - 0x2606, 0xA1D9, 0x260E, 0xA2CF, 0x260F, 0xA2CE, 0x261C, 0xA2D0, - 0x261E, 0xA2D1, 0x2640, 0xA1CF, 0x2642, 0xA1CE, 0x2660, 0xA2BC, - 0x2661, 0xA2BD, 0x2663, 0xA2C0, 0x2664, 0xA2BB, 0x2665, 0xA2BE, - 0x2667, 0xA2BF, 0x2668, 0xA2CD, 0x2669, 0xA2DB, 0x266A, 0xA2DC, - 0x266C, 0xA2DD, 0x266D, 0xA2DA, 0x3000, 0xA1A1, 0x3001, 0xA1A2, - 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3008, 0xA1B4, 0x3009, 0xA1B5, - 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, - 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BC, 0x3011, 0xA1BD, - 0x3013, 0xA1EB, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3041, 0xAAA1, - 0x3042, 0xAAA2, 0x3043, 0xAAA3, 0x3044, 0xAAA4, 0x3045, 0xAAA5, - 0x3046, 0xAAA6, 0x3047, 0xAAA7, 0x3048, 0xAAA8, 0x3049, 0xAAA9, - 0x304A, 0xAAAA, 0x304B, 0xAAAB, 0x304C, 0xAAAC, 0x304D, 0xAAAD, - 0x304E, 0xAAAE, 0x304F, 0xAAAF, 0x3050, 0xAAB0, 0x3051, 0xAAB1, - 0x3052, 0xAAB2, 0x3053, 0xAAB3, 0x3054, 0xAAB4, 0x3055, 0xAAB5, - 0x3056, 0xAAB6, 0x3057, 0xAAB7, 0x3058, 0xAAB8, 0x3059, 0xAAB9, - 0x305A, 0xAABA, 0x305B, 0xAABB, 0x305C, 0xAABC, 0x305D, 0xAABD, - 0x305E, 0xAABE, 0x305F, 0xAABF, 0x3060, 0xAAC0, 0x3061, 0xAAC1, - 0x3062, 0xAAC2, 0x3063, 0xAAC3, 0x3064, 0xAAC4, 0x3065, 0xAAC5, - 0x3066, 0xAAC6, 0x3067, 0xAAC7, 0x3068, 0xAAC8, 0x3069, 0xAAC9, - 0x306A, 0xAACA, 0x306B, 0xAACB, 0x306C, 0xAACC, 0x306D, 0xAACD, - 0x306E, 0xAACE, 0x306F, 0xAACF, 0x3070, 0xAAD0, 0x3071, 0xAAD1, - 0x3072, 0xAAD2, 0x3073, 0xAAD3, 0x3074, 0xAAD4, 0x3075, 0xAAD5, - 0x3076, 0xAAD6, 0x3077, 0xAAD7, 0x3078, 0xAAD8, 0x3079, 0xAAD9, - 0x307A, 0xAADA, 0x307B, 0xAADB, 0x307C, 0xAADC, 0x307D, 0xAADD, - 0x307E, 0xAADE, 0x307F, 0xAADF, 0x3080, 0xAAE0, 0x3081, 0xAAE1, - 0x3082, 0xAAE2, 0x3083, 0xAAE3, 0x3084, 0xAAE4, 0x3085, 0xAAE5, - 0x3086, 0xAAE6, 0x3087, 0xAAE7, 0x3088, 0xAAE8, 0x3089, 0xAAE9, - 0x308A, 0xAAEA, 0x308B, 0xAAEB, 0x308C, 0xAAEC, 0x308D, 0xAAED, - 0x308E, 0xAAEE, 0x308F, 0xAAEF, 0x3090, 0xAAF0, 0x3091, 0xAAF1, - 0x3092, 0xAAF2, 0x3093, 0xAAF3, 0x30A1, 0xABA1, 0x30A2, 0xABA2, - 0x30A3, 0xABA3, 0x30A4, 0xABA4, 0x30A5, 0xABA5, 0x30A6, 0xABA6, - 0x30A7, 0xABA7, 0x30A8, 0xABA8, 0x30A9, 0xABA9, 0x30AA, 0xABAA, - 0x30AB, 0xABAB, 0x30AC, 0xABAC, 0x30AD, 0xABAD, 0x30AE, 0xABAE, - 0x30AF, 0xABAF, 0x30B0, 0xABB0, 0x30B1, 0xABB1, 0x30B2, 0xABB2, - 0x30B3, 0xABB3, 0x30B4, 0xABB4, 0x30B5, 0xABB5, 0x30B6, 0xABB6, - 0x30B7, 0xABB7, 0x30B8, 0xABB8, 0x30B9, 0xABB9, 0x30BA, 0xABBA, - 0x30BB, 0xABBB, 0x30BC, 0xABBC, 0x30BD, 0xABBD, 0x30BE, 0xABBE, - 0x30BF, 0xABBF, 0x30C0, 0xABC0, 0x30C1, 0xABC1, 0x30C2, 0xABC2, - 0x30C3, 0xABC3, 0x30C4, 0xABC4, 0x30C5, 0xABC5, 0x30C6, 0xABC6, - 0x30C7, 0xABC7, 0x30C8, 0xABC8, 0x30C9, 0xABC9, 0x30CA, 0xABCA, - 0x30CB, 0xABCB, 0x30CC, 0xABCC, 0x30CD, 0xABCD, 0x30CE, 0xABCE, - 0x30CF, 0xABCF, 0x30D0, 0xABD0, 0x30D1, 0xABD1, 0x30D2, 0xABD2, - 0x30D3, 0xABD3, 0x30D4, 0xABD4, 0x30D5, 0xABD5, 0x30D6, 0xABD6, - 0x30D7, 0xABD7, 0x30D8, 0xABD8, 0x30D9, 0xABD9, 0x30DA, 0xABDA, - 0x30DB, 0xABDB, 0x30DC, 0xABDC, 0x30DD, 0xABDD, 0x30DE, 0xABDE, - 0x30DF, 0xABDF, 0x30E0, 0xABE0, 0x30E1, 0xABE1, 0x30E2, 0xABE2, - 0x30E3, 0xABE3, 0x30E4, 0xABE4, 0x30E5, 0xABE5, 0x30E6, 0xABE6, - 0x30E7, 0xABE7, 0x30E8, 0xABE8, 0x30E9, 0xABE9, 0x30EA, 0xABEA, - 0x30EB, 0xABEB, 0x30EC, 0xABEC, 0x30ED, 0xABED, 0x30EE, 0xABEE, - 0x30EF, 0xABEF, 0x30F0, 0xABF0, 0x30F1, 0xABF1, 0x30F2, 0xABF2, - 0x30F3, 0xABF3, 0x30F4, 0xABF4, 0x30F5, 0xABF5, 0x30F6, 0xABF6, - 0x3131, 0xA4A1, 0x3132, 0xA4A2, 0x3133, 0xA4A3, 0x3134, 0xA4A4, - 0x3135, 0xA4A5, 0x3136, 0xA4A6, 0x3137, 0xA4A7, 0x3138, 0xA4A8, - 0x3139, 0xA4A9, 0x313A, 0xA4AA, 0x313B, 0xA4AB, 0x313C, 0xA4AC, - 0x313D, 0xA4AD, 0x313E, 0xA4AE, 0x313F, 0xA4AF, 0x3140, 0xA4B0, - 0x3141, 0xA4B1, 0x3142, 0xA4B2, 0x3143, 0xA4B3, 0x3144, 0xA4B4, - 0x3145, 0xA4B5, 0x3146, 0xA4B6, 0x3147, 0xA4B7, 0x3148, 0xA4B8, - 0x3149, 0xA4B9, 0x314A, 0xA4BA, 0x314B, 0xA4BB, 0x314C, 0xA4BC, - 0x314D, 0xA4BD, 0x314E, 0xA4BE, 0x314F, 0xA4BF, 0x3150, 0xA4C0, - 0x3151, 0xA4C1, 0x3152, 0xA4C2, 0x3153, 0xA4C3, 0x3154, 0xA4C4, - 0x3155, 0xA4C5, 0x3156, 0xA4C6, 0x3157, 0xA4C7, 0x3158, 0xA4C8, - 0x3159, 0xA4C9, 0x315A, 0xA4CA, 0x315B, 0xA4CB, 0x315C, 0xA4CC, - 0x315D, 0xA4CD, 0x315E, 0xA4CE, 0x315F, 0xA4CF, 0x3160, 0xA4D0, - 0x3161, 0xA4D1, 0x3162, 0xA4D2, 0x3163, 0xA4D3, 0x3164, 0xA4D4, - 0x3165, 0xA4D5, 0x3166, 0xA4D6, 0x3167, 0xA4D7, 0x3168, 0xA4D8, - 0x3169, 0xA4D9, 0x316A, 0xA4DA, 0x316B, 0xA4DB, 0x316C, 0xA4DC, - 0x316D, 0xA4DD, 0x316E, 0xA4DE, 0x316F, 0xA4DF, 0x3170, 0xA4E0, - 0x3171, 0xA4E1, 0x3172, 0xA4E2, 0x3173, 0xA4E3, 0x3174, 0xA4E4, - 0x3175, 0xA4E5, 0x3176, 0xA4E6, 0x3177, 0xA4E7, 0x3178, 0xA4E8, - 0x3179, 0xA4E9, 0x317A, 0xA4EA, 0x317B, 0xA4EB, 0x317C, 0xA4EC, - 0x317D, 0xA4ED, 0x317E, 0xA4EE, 0x317F, 0xA4EF, 0x3180, 0xA4F0, - 0x3181, 0xA4F1, 0x3182, 0xA4F2, 0x3183, 0xA4F3, 0x3184, 0xA4F4, - 0x3185, 0xA4F5, 0x3186, 0xA4F6, 0x3187, 0xA4F7, 0x3188, 0xA4F8, - 0x3189, 0xA4F9, 0x318A, 0xA4FA, 0x318B, 0xA4FB, 0x318C, 0xA4FC, - 0x318D, 0xA4FD, 0x318E, 0xA4FE, 0x3200, 0xA9B1, 0x3201, 0xA9B2, - 0x3202, 0xA9B3, 0x3203, 0xA9B4, 0x3204, 0xA9B5, 0x3205, 0xA9B6, - 0x3206, 0xA9B7, 0x3207, 0xA9B8, 0x3208, 0xA9B9, 0x3209, 0xA9BA, - 0x320A, 0xA9BB, 0x320B, 0xA9BC, 0x320C, 0xA9BD, 0x320D, 0xA9BE, - 0x320E, 0xA9BF, 0x320F, 0xA9C0, 0x3210, 0xA9C1, 0x3211, 0xA9C2, - 0x3212, 0xA9C3, 0x3213, 0xA9C4, 0x3214, 0xA9C5, 0x3215, 0xA9C6, - 0x3216, 0xA9C7, 0x3217, 0xA9C8, 0x3218, 0xA9C9, 0x3219, 0xA9CA, - 0x321A, 0xA9CB, 0x321B, 0xA9CC, 0x321C, 0xA2DF, 0x3260, 0xA8B1, - 0x3261, 0xA8B2, 0x3262, 0xA8B3, 0x3263, 0xA8B4, 0x3264, 0xA8B5, - 0x3265, 0xA8B6, 0x3266, 0xA8B7, 0x3267, 0xA8B8, 0x3268, 0xA8B9, - 0x3269, 0xA8BA, 0x326A, 0xA8BB, 0x326B, 0xA8BC, 0x326C, 0xA8BD, - 0x326D, 0xA8BE, 0x326E, 0xA8BF, 0x326F, 0xA8C0, 0x3270, 0xA8C1, - 0x3271, 0xA8C2, 0x3272, 0xA8C3, 0x3273, 0xA8C4, 0x3274, 0xA8C5, - 0x3275, 0xA8C6, 0x3276, 0xA8C7, 0x3277, 0xA8C8, 0x3278, 0xA8C9, - 0x3279, 0xA8CA, 0x327A, 0xA8CB, 0x327B, 0xA8CC, 0x327F, 0xA2DE, - 0x3380, 0xA7C9, 0x3381, 0xA7CA, 0x3382, 0xA7CB, 0x3383, 0xA7CC, - 0x3384, 0xA7CD, 0x3388, 0xA7BA, 0x3389, 0xA7BB, 0x338A, 0xA7DC, - 0x338B, 0xA7DD, 0x338C, 0xA7DE, 0x338D, 0xA7B6, 0x338E, 0xA7B7, - 0x338F, 0xA7B8, 0x3390, 0xA7D4, 0x3391, 0xA7D5, 0x3392, 0xA7D6, - 0x3393, 0xA7D7, 0x3394, 0xA7D8, 0x3395, 0xA7A1, 0x3396, 0xA7A2, - 0x3397, 0xA7A3, 0x3398, 0xA7A5, 0x3399, 0xA7AB, 0x339A, 0xA7AC, - 0x339B, 0xA7AD, 0x339C, 0xA7AE, 0x339D, 0xA7AF, 0x339E, 0xA7B0, - 0x339F, 0xA7B1, 0x33A0, 0xA7B2, 0x33A1, 0xA7B3, 0x33A2, 0xA7B4, - 0x33A3, 0xA7A7, 0x33A4, 0xA7A8, 0x33A5, 0xA7A9, 0x33A6, 0xA7AA, - 0x33A7, 0xA7BD, 0x33A8, 0xA7BE, 0x33A9, 0xA7E5, 0x33AA, 0xA7E6, - 0x33AB, 0xA7E7, 0x33AC, 0xA7E8, 0x33AD, 0xA7E1, 0x33AE, 0xA7E2, - 0x33AF, 0xA7E3, 0x33B0, 0xA7BF, 0x33B1, 0xA7C0, 0x33B2, 0xA7C1, - 0x33B3, 0xA7C2, 0x33B4, 0xA7C3, 0x33B5, 0xA7C4, 0x33B6, 0xA7C5, - 0x33B7, 0xA7C6, 0x33B8, 0xA7C7, 0x33B9, 0xA7C8, 0x33BA, 0xA7CE, - 0x33BB, 0xA7CF, 0x33BC, 0xA7D0, 0x33BD, 0xA7D1, 0x33BE, 0xA7D2, - 0x33BF, 0xA7D3, 0x33C0, 0xA7DA, 0x33C1, 0xA7DB, 0x33C2, 0xA2E3, - 0x33C3, 0xA7EC, 0x33C4, 0xA7A6, 0x33C5, 0xA7E0, 0x33C6, 0xA7EF, - 0x33C7, 0xA2E1, 0x33C8, 0xA7BC, 0x33C9, 0xA7ED, 0x33CA, 0xA7B5, - 0x33CF, 0xA7B9, 0x33D0, 0xA7EA, 0x33D3, 0xA7EB, 0x33D6, 0xA7DF, - 0x33D8, 0xA2E4, 0x33DB, 0xA7E4, 0x33DC, 0xA7EE, 0x33DD, 0xA7E9, - 0x4E00, 0xECE9, 0x4E01, 0xEFCB, 0x4E03, 0xF6D2, 0x4E07, 0xD8B2, - 0x4E08, 0xEDDB, 0x4E09, 0xDFB2, 0x4E0A, 0xDFBE, 0x4E0B, 0xF9BB, - 0x4E0D, 0xDCF4, 0x4E11, 0xF5E4, 0x4E14, 0xF3A6, 0x4E15, 0xDDE0, - 0x4E16, 0xE1A6, 0x4E18, 0xCEF8, 0x4E19, 0xDCB0, 0x4E1E, 0xE3AA, - 0x4E2D, 0xF1E9, 0x4E32, 0xCDFA, 0x4E38, 0xFCAF, 0x4E39, 0xD3A1, - 0x4E3B, 0xF1AB, 0x4E42, 0xE7D1, 0x4E43, 0xD2AC, 0x4E45, 0xCEF9, - 0x4E4B, 0xF1FD, 0x4E4D, 0xDEBF, 0x4E4E, 0xFBBA, 0x4E4F, 0xF9B9, - 0x4E56, 0xCED2, 0x4E58, 0xE3AB, 0x4E59, 0xEBE0, 0x4E5D, 0xCEFA, - 0x4E5E, 0xCBF7, 0x4E5F, 0xE5A5, 0x4E6B, 0xCAE1, 0x4E6D, 0xD4CC, - 0x4E73, 0xEAE1, 0x4E76, 0xDCE3, 0x4E77, 0xDFAD, 0x4E7E, 0xCBEB, - 0x4E82, 0xD5AF, 0x4E86, 0xD6F5, 0x4E88, 0xE5F8, 0x4E8B, 0xDEC0, - 0x4E8C, 0xECA3, 0x4E8E, 0xE9CD, 0x4E90, 0xEAA7, 0x4E91, 0xE9F6, - 0x4E92, 0xFBBB, 0x4E94, 0xE7E9, 0x4E95, 0xEFCC, 0x4E98, 0xD0E6, - 0x4E9B, 0xDEC1, 0x4E9E, 0xE4AC, 0x4EA1, 0xD8CC, 0x4EA2, 0xF9F1, - 0x4EA4, 0xCEDF, 0x4EA5, 0xFAA4, 0x4EA6, 0xE6B2, 0x4EA8, 0xFAFB, - 0x4EAB, 0xFABD, 0x4EAC, 0xCCC8, 0x4EAD, 0xEFCD, 0x4EAE, 0xD5D5, - 0x4EB6, 0xD3A2, 0x4EBA, 0xECD1, 0x4EC0, 0xE4A7, 0x4EC1, 0xECD2, - 0x4EC4, 0xF6B1, 0x4EC7, 0xCEFB, 0x4ECA, 0xD0D1, 0x4ECB, 0xCBBF, - 0x4ECD, 0xEDA4, 0x4ED4, 0xEDA8, 0x4ED5, 0xDEC2, 0x4ED6, 0xF6E2, - 0x4ED7, 0xEDDC, 0x4ED8, 0xDCF5, 0x4ED9, 0xE0B9, 0x4EDD, 0xD4CE, - 0x4EDF, 0xF4B5, 0x4EE3, 0xD3DB, 0x4EE4, 0xD6B5, 0x4EE5, 0xECA4, - 0x4EF0, 0xE4E6, 0x4EF2, 0xF1EA, 0x4EF6, 0xCBEC, 0x4EF7, 0xCBC0, - 0x4EFB, 0xECF2, 0x4F01, 0xD0EA, 0x4F09, 0xF9F2, 0x4F0A, 0xECA5, - 0x4F0B, 0xD0DF, 0x4F0D, 0xE7EA, 0x4F0E, 0xD0EB, 0x4F0F, 0xDCD1, - 0x4F10, 0xDBE9, 0x4F11, 0xFDCC, 0x4F2F, 0xDBD7, 0x4F34, 0xDAE1, - 0x4F36, 0xD6B6, 0x4F38, 0xE3DF, 0x4F3A, 0xDEC3, 0x4F3C, 0xDEC4, - 0x4F3D, 0xCAA1, 0x4F43, 0xEEEC, 0x4F46, 0xD3A3, 0x4F47, 0xEEB7, - 0x4F48, 0xF8CF, 0x4F4D, 0xEAC8, 0x4F4E, 0xEEB8, 0x4F4F, 0xF1AC, - 0x4F50, 0xF1A5, 0x4F51, 0xE9CE, 0x4F55, 0xF9BC, 0x4F59, 0xE5F9, - 0x4F5A, 0xECEA, 0x4F5B, 0xDDD6, 0x4F5C, 0xEDC2, 0x4F69, 0xF8A5, - 0x4F6F, 0xE5BA, 0x4F70, 0xDBD8, 0x4F73, 0xCAA2, 0x4F76, 0xD1CD, - 0x4F7A, 0xEEED, 0x4F7E, 0xECEB, 0x4F7F, 0xDEC5, 0x4F81, 0xE3E0, - 0x4F83, 0xCAC9, 0x4F84, 0xF2E9, 0x4F86, 0xD5CE, 0x4F88, 0xF6B6, - 0x4F8A, 0xCEC2, 0x4F8B, 0xD6C7, 0x4F8D, 0xE3B4, 0x4F8F, 0xF1AD, - 0x4F91, 0xEAE2, 0x4F96, 0xD7C2, 0x4F98, 0xF3A7, 0x4F9B, 0xCDEA, - 0x4F9D, 0xEBEE, 0x4FAE, 0xD9B2, 0x4FAF, 0xFDA5, 0x4FB5, 0xF6D5, - 0x4FB6, 0xD5E2, 0x4FBF, 0xF8B5, 0x4FC2, 0xCCF5, 0x4FC3, 0xF5B5, - 0x4FC4, 0xE4AD, 0x4FC9, 0xE7EB, 0x4FCA, 0xF1D5, 0x4FCE, 0xF0BB, - 0x4FD1, 0xE9B5, 0x4FD3, 0xCCC9, 0x4FD4, 0xFAD5, 0x4FD7, 0xE1D4, - 0x4FDA, 0xD7D6, 0x4FDD, 0xDCC1, 0x4FDF, 0xDEC6, 0x4FE0, 0xFAEF, - 0x4FE1, 0xE3E1, 0x4FEE, 0xE1F3, 0x4FEF, 0xDCF6, 0x4FF1, 0xCEFC, - 0x4FF3, 0xDBC4, 0x4FF5, 0xF8F1, 0x4FF8, 0xDCE4, 0x4FFA, 0xE5EF, - 0x5002, 0xDCB1, 0x5006, 0xD5D6, 0x5009, 0xF3DA, 0x500B, 0xCBC1, - 0x500D, 0xDBC3, 0x5011, 0xD9FA, 0x5012, 0xD3EE, 0x5016, 0xFAB8, - 0x5019, 0xFDA6, 0x501A, 0xEBEF, 0x501C, 0xF4A6, 0x501E, 0xCCCA, - 0x501F, 0xF3A8, 0x5021, 0xF3DB, 0x5023, 0xDBA7, 0x5024, 0xF6B7, - 0x5026, 0xCFE6, 0x5027, 0xF0F2, 0x5028, 0xCBDA, 0x502A, 0xE7D2, - 0x502B, 0xD7C3, 0x502C, 0xF6F0, 0x502D, 0xE8DE, 0x503B, 0xE5A6, - 0x5043, 0xE5E7, 0x5047, 0xCAA3, 0x5048, 0xCCA7, 0x5049, 0xEAC9, - 0x504F, 0xF8B6, 0x5055, 0xFAA5, 0x505A, 0xF1AE, 0x505C, 0xEFCE, - 0x5065, 0xCBED, 0x5074, 0xF6B0, 0x5075, 0xEFCF, 0x5076, 0xE9CF, - 0x5078, 0xF7DE, 0x5080, 0xCED3, 0x5085, 0xDCF7, 0x508D, 0xDBA8, - 0x5091, 0xCBF8, 0x5098, 0xDFA1, 0x5099, 0xDDE1, 0x50AC, 0xF5CA, - 0x50AD, 0xE9B6, 0x50B2, 0xE7EC, 0x50B3, 0xEEEE, 0x50B5, 0xF3F0, - 0x50B7, 0xDFBF, 0x50BE, 0xCCCB, 0x50C5, 0xD0C1, 0x50C9, 0xF4D2, - 0x50CA, 0xE0BA, 0x50CF, 0xDFC0, 0x50D1, 0xCEE0, 0x50D5, 0xDCD2, - 0x50D6, 0xFDEA, 0x50DA, 0xD6F6, 0x50DE, 0xEACA, 0x50E5, 0xE8E9, - 0x50E7, 0xE3AC, 0x50ED, 0xF3D0, 0x50F9, 0xCAA4, 0x50FB, 0xDBF8, - 0x50FF, 0xDEC7, 0x5100, 0xEBF0, 0x5101, 0xF1D6, 0x5104, 0xE5E2, - 0x5106, 0xCCCC, 0x5109, 0xCBFB, 0x5112, 0xEAE3, 0x511F, 0xDFC1, - 0x5121, 0xD6ED, 0x512A, 0xE9D0, 0x5132, 0xEEB9, 0x5137, 0xD5E3, - 0x513A, 0xD1D3, 0x513C, 0xE5F0, 0x5140, 0xE8B4, 0x5141, 0xEBC3, - 0x5143, 0xEAAA, 0x5144, 0xFAFC, 0x5145, 0xF5F6, 0x5146, 0xF0BC, - 0x5147, 0xFDD4, 0x5148, 0xE0BB, 0x5149, 0xCEC3, 0x514B, 0xD0BA, - 0x514C, 0xF7BA, 0x514D, 0xD8F3, 0x514E, 0xF7CD, 0x5152, 0xE4AE, - 0x515C, 0xD4DF, 0x5162, 0xD0E7, 0x5165, 0xECFD, 0x5167, 0xD2AE, - 0x5168, 0xEEEF, 0x5169, 0xD5D7, 0x516A, 0xEAE4, 0x516B, 0xF8A2, - 0x516C, 0xCDEB, 0x516D, 0xD7BF, 0x516E, 0xFBB1, 0x5171, 0xCDEC, - 0x5175, 0xDCB2, 0x5176, 0xD0EC, 0x5177, 0xCEFD, 0x5178, 0xEEF0, - 0x517C, 0xCCC2, 0x5180, 0xD0ED, 0x5186, 0xE5F7, 0x518A, 0xF3FC, - 0x518D, 0xEEA2, 0x5192, 0xD9B3, 0x5195, 0xD8F4, 0x5197, 0xE9B7, - 0x51A0, 0xCEAE, 0x51A5, 0xD9A2, 0x51AA, 0xD8F1, 0x51AC, 0xD4CF, - 0x51B6, 0xE5A7, 0x51B7, 0xD5D2, 0x51BD, 0xD6A9, 0x51C4, 0xF4A2, - 0x51C6, 0xF1D7, 0x51C9, 0xD5D8, 0x51CB, 0xF0BD, 0x51CC, 0xD7D0, - 0x51CD, 0xD4D0, 0x51DC, 0xD7CF, 0x51DD, 0xEBEA, 0x51DE, 0xFDEB, - 0x51E1, 0xDBED, 0x51F0, 0xFCC5, 0x51F1, 0xCBC2, 0x51F6, 0xFDD5, - 0x51F8, 0xF4C8, 0x51F9, 0xE8EA, 0x51FA, 0xF5F3, 0x51FD, 0xF9DE, - 0x5200, 0xD3EF, 0x5203, 0xECD3, 0x5206, 0xDDC2, 0x5207, 0xEFB7, - 0x5208, 0xE7D4, 0x520A, 0xCACA, 0x520E, 0xD9FB, 0x5211, 0xFAFD, - 0x5217, 0xD6AA, 0x521D, 0xF4F8, 0x5224, 0xF7F7, 0x5225, 0xDCAC, - 0x5229, 0xD7D7, 0x522A, 0xDFA2, 0x522E, 0xCEBE, 0x5230, 0xD3F0, - 0x5236, 0xF0A4, 0x5237, 0xE1EC, 0x5238, 0xCFE7, 0x5239, 0xF3CB, - 0x523A, 0xEDA9, 0x523B, 0xCABE, 0x5243, 0xF4EF, 0x5247, 0xF6CE, - 0x524A, 0xDEFB, 0x524B, 0xD0BB, 0x524C, 0xD5B7, 0x524D, 0xEEF1, - 0x5254, 0xF4A8, 0x5256, 0xDCF8, 0x525B, 0xCBA7, 0x525D, 0xDACE, - 0x5261, 0xE0E6, 0x5269, 0xEDA5, 0x526A, 0xEEF2, 0x526F, 0xDCF9, - 0x5272, 0xF9DC, 0x5275, 0xF3DC, 0x527D, 0xF8F2, 0x527F, 0xF4F9, - 0x5283, 0xFCF1, 0x5287, 0xD0BC, 0x5288, 0xDBF9, 0x5289, 0xD7B1, - 0x528D, 0xCBFC, 0x5291, 0xF0A5, 0x5292, 0xCBFD, 0x529B, 0xD5F4, - 0x529F, 0xCDED, 0x52A0, 0xCAA5, 0x52A3, 0xD6AB, 0x52A4, 0xD0C2, - 0x52A9, 0xF0BE, 0x52AA, 0xD2BD, 0x52AB, 0xCCA4, 0x52BE, 0xFAB6, - 0x52C1, 0xCCCD, 0x52C3, 0xDAFA, 0x52C5, 0xF6CF, 0x52C7, 0xE9B8, - 0x52C9, 0xD8F5, 0x52CD, 0xCCCE, 0x52D2, 0xD7CD, 0x52D5, 0xD4D1, - 0x52D6, 0xE9ED, 0x52D8, 0xCAEB, 0x52D9, 0xD9E2, 0x52DB, 0xFDB2, - 0x52DD, 0xE3AD, 0x52DE, 0xD6CC, 0x52DF, 0xD9B4, 0x52E2, 0xE1A7, - 0x52E3, 0xEED3, 0x52E4, 0xD0C3, 0x52F3, 0xFDB3, 0x52F5, 0xD5E4, - 0x52F8, 0xCFE8, 0x52FA, 0xEDC3, 0x52FB, 0xD0B2, 0x52FE, 0xCEFE, - 0x52FF, 0xDAA8, 0x5305, 0xF8D0, 0x5308, 0xFDD6, 0x530D, 0xF8D1, - 0x530F, 0xF8D2, 0x5310, 0xDCD3, 0x5315, 0xDDE2, 0x5316, 0xFBF9, - 0x5317, 0xDDC1, 0x5319, 0xE3B5, 0x5320, 0xEDDD, 0x5321, 0xCEC4, - 0x5323, 0xCBA1, 0x532A, 0xDDE3, 0x532F, 0xFCDD, 0x5339, 0xF9AF, - 0x533F, 0xD2FB, 0x5340, 0xCFA1, 0x5341, 0xE4A8, 0x5343, 0xF4B6, - 0x5344, 0xECFE, 0x5347, 0xE3AE, 0x5348, 0xE7ED, 0x5349, 0xFDC1, - 0x534A, 0xDAE2, 0x534D, 0xD8B3, 0x5351, 0xDDE4, 0x5352, 0xF0EF, - 0x5353, 0xF6F1, 0x5354, 0xFAF0, 0x5357, 0xD1F5, 0x535A, 0xDACF, - 0x535C, 0xDCD4, 0x535E, 0xDCA6, 0x5360, 0xEFBF, 0x5366, 0xCECF, - 0x5368, 0xE0D9, 0x536F, 0xD9D6, 0x5370, 0xECD4, 0x5371, 0xEACB, - 0x5374, 0xCABF, 0x5375, 0xD5B0, 0x5377, 0xCFE9, 0x537D, 0xF1ED, - 0x537F, 0xCCCF, 0x5384, 0xE4F8, 0x5393, 0xE4ED, 0x5398, 0xD7D8, - 0x539A, 0xFDA7, 0x539F, 0xEAAB, 0x53A0, 0xF6B2, 0x53A5, 0xCFF0, - 0x53A6, 0xF9BD, 0x53AD, 0xE6F4, 0x53BB, 0xCBDB, 0x53C3, 0xF3D1, - 0x53C8, 0xE9D1, 0x53C9, 0xF3A9, 0x53CA, 0xD0E0, 0x53CB, 0xE9D2, - 0x53CD, 0xDAE3, 0x53D4, 0xE2D2, 0x53D6, 0xF6A2, 0x53D7, 0xE1F4, - 0x53DB, 0xDAE4, 0x53E1, 0xE7D5, 0x53E2, 0xF5BF, 0x53E3, 0xCFA2, - 0x53E4, 0xCDAF, 0x53E5, 0xCFA3, 0x53E9, 0xCDB0, 0x53EA, 0xF1FE, - 0x53EB, 0xD0A3, 0x53EC, 0xE1AF, 0x53ED, 0xF8A3, 0x53EF, 0xCAA6, - 0x53F0, 0xF7BB, 0x53F1, 0xF2EA, 0x53F2, 0xDEC8, 0x53F3, 0xE9D3, - 0x53F8, 0xDEC9, 0x5403, 0xFDDE, 0x5404, 0xCAC0, 0x5408, 0xF9EA, - 0x5409, 0xD1CE, 0x540A, 0xEED4, 0x540C, 0xD4D2, 0x540D, 0xD9A3, - 0x540E, 0xFDA8, 0x540F, 0xD7D9, 0x5410, 0xF7CE, 0x5411, 0xFABE, - 0x541B, 0xCFD6, 0x541D, 0xD7F0, 0x541F, 0xEBE1, 0x5420, 0xF8C5, - 0x5426, 0xDCFA, 0x5429, 0xDDC3, 0x542B, 0xF9DF, 0x5433, 0xE7EF, - 0x5438, 0xFDE5, 0x5439, 0xF6A3, 0x543B, 0xD9FC, 0x543C, 0xFDA9, - 0x543E, 0xE7EE, 0x5442, 0xD5E5, 0x5448, 0xEFD0, 0x544A, 0xCDB1, - 0x5451, 0xF7A2, 0x5468, 0xF1B2, 0x546A, 0xF1B1, 0x5471, 0xCDB2, - 0x5473, 0xDAAB, 0x5475, 0xCAA7, 0x547B, 0xE3E2, 0x547C, 0xFBBC, - 0x547D, 0xD9A4, 0x5480, 0xEEBA, 0x5486, 0xF8D3, 0x548C, 0xFBFA, - 0x548E, 0xCFA4, 0x5490, 0xDCFB, 0x54A4, 0xF6E3, 0x54A8, 0xEDAA, - 0x54AB, 0xF2A1, 0x54AC, 0xCEE1, 0x54B3, 0xFAA6, 0x54B8, 0xF9E0, - 0x54BD, 0xECD6, 0x54C0, 0xE4EE, 0x54C1, 0xF9A1, 0x54C4, 0xFBEF, - 0x54C8, 0xF9EB, 0x54C9, 0xEEA3, 0x54E1, 0xEAAC, 0x54E5, 0xCAA8, - 0x54E8, 0xF4FA, 0x54ED, 0xCDD6, 0x54EE, 0xFCF6, 0x54F2, 0xF4C9, - 0x54FA, 0xF8D4, 0x5504, 0xF8A6, 0x5506, 0xDECA, 0x5507, 0xF2C6, - 0x550E, 0xD7DA, 0x5510, 0xD3D0, 0x551C, 0xD8C5, 0x552F, 0xEAE6, - 0x5531, 0xF3DD, 0x5535, 0xE4DA, 0x553E, 0xF6E4, 0x5544, 0xF6F2, - 0x5546, 0xDFC2, 0x554F, 0xD9FD, 0x5553, 0xCCF6, 0x5556, 0xD3BA, - 0x555E, 0xE4AF, 0x5563, 0xF9E1, 0x557C, 0xF0A6, 0x5580, 0xCBD3, - 0x5584, 0xE0BC, 0x5586, 0xF4CA, 0x5587, 0xD4FA, 0x5589, 0xFDAA, - 0x558A, 0xF9E2, 0x5598, 0xF4B7, 0x5599, 0xFDC2, 0x559A, 0xFCB0, - 0x559C, 0xFDEC, 0x559D, 0xCAE2, 0x55A7, 0xFDBD, 0x55A9, 0xEAE7, - 0x55AA, 0xDFC3, 0x55AB, 0xD1D2, 0x55AC, 0xCEE2, 0x55AE, 0xD3A4, - 0x55C5, 0xFDAB, 0x55C7, 0xDFE0, 0x55D4, 0xF2C7, 0x55DA, 0xE7F0, - 0x55DC, 0xD0EE, 0x55DF, 0xF3AA, 0x55E3, 0xDECB, 0x55E4, 0xF6B8, - 0x55FD, 0xE1F5, 0x55FE, 0xF1B3, 0x5606, 0xF7A3, 0x5609, 0xCAA9, - 0x5614, 0xCFA5, 0x5617, 0xDFC4, 0x562F, 0xE1B0, 0x5632, 0xF0BF, - 0x5634, 0xF6A4, 0x5636, 0xE3B6, 0x5653, 0xFAC6, 0x5668, 0xD0EF, - 0x566B, 0xFDED, 0x5674, 0xDDC4, 0x5686, 0xFCF7, 0x56A5, 0xE6BF, - 0x56AC, 0xDEAD, 0x56AE, 0xFABF, 0x56B4, 0xE5F1, 0x56BC, 0xEDC4, - 0x56CA, 0xD2A5, 0x56CD, 0xFDEE, 0x56D1, 0xF5B6, 0x56DA, 0xE1F6, - 0x56DB, 0xDECC, 0x56DE, 0xFCDE, 0x56E0, 0xECD7, 0x56F0, 0xCDDD, - 0x56F9, 0xD6B7, 0x56FA, 0xCDB3, 0x5703, 0xF8D5, 0x5704, 0xE5D8, - 0x5708, 0xCFEA, 0x570B, 0xCFD0, 0x570D, 0xEACC, 0x5712, 0xEAAE, - 0x5713, 0xEAAD, 0x5716, 0xD3F1, 0x5718, 0xD3A5, 0x571F, 0xF7CF, - 0x5728, 0xEEA4, 0x572D, 0xD0A4, 0x5730, 0xF2A2, 0x573B, 0xD0F0, - 0x5740, 0xF2A3, 0x5742, 0xF7F8, 0x5747, 0xD0B3, 0x574A, 0xDBA9, - 0x574D, 0xD3BB, 0x574E, 0xCAEC, 0x5750, 0xF1A6, 0x5751, 0xCBD5, - 0x5761, 0xF7E7, 0x5764, 0xCDDE, 0x5766, 0xF7A4, 0x576A, 0xF8C0, - 0x576E, 0xD3DD, 0x5770, 0xCCD0, 0x5775, 0xCFA6, 0x577C, 0xF6F3, - 0x5782, 0xE1F7, 0x5788, 0xD3DC, 0x578B, 0xFAFE, 0x5793, 0xFAA7, - 0x57A0, 0xEBD9, 0x57A2, 0xCFA7, 0x57A3, 0xEAAF, 0x57C3, 0xE4EF, - 0x57C7, 0xE9B9, 0x57C8, 0xF1D8, 0x57CB, 0xD8D8, 0x57CE, 0xE0F2, - 0x57DF, 0xE6B4, 0x57E0, 0xDCFC, 0x57F0, 0xF3F1, 0x57F4, 0xE3D0, - 0x57F7, 0xF2FB, 0x57F9, 0xDBC6, 0x57FA, 0xD0F1, 0x57FC, 0xD0F2, - 0x5800, 0xCFDC, 0x5802, 0xD3D1, 0x5805, 0xCCB1, 0x5806, 0xF7D8, - 0x5808, 0xCBA8, 0x5809, 0xEBBC, 0x580A, 0xE4BE, 0x581E, 0xF4DC, - 0x5821, 0xDCC2, 0x5824, 0xF0A7, 0x5827, 0xE6C0, 0x582A, 0xCAED, - 0x582F, 0xE8EB, 0x5830, 0xE5E8, 0x5831, 0xDCC3, 0x5834, 0xEDDE, - 0x5835, 0xD3F2, 0x583A, 0xCCF7, 0x584A, 0xCED4, 0x584B, 0xE7AB, - 0x584F, 0xCBC3, 0x5851, 0xE1B1, 0x5854, 0xF7B2, 0x5857, 0xD3F3, - 0x5858, 0xD3D2, 0x585A, 0xF5C0, 0x585E, 0xDFDD, 0x5861, 0xEEF3, - 0x5862, 0xE7F1, 0x5864, 0xFDB4, 0x5875, 0xF2C8, 0x5879, 0xF3D2, - 0x587C, 0xEEF4, 0x587E, 0xE2D3, 0x5883, 0xCCD1, 0x5885, 0xDFEA, - 0x5889, 0xE9BA, 0x5893, 0xD9D7, 0x589C, 0xF5CD, 0x589E, 0xF1F2, - 0x589F, 0xFAC7, 0x58A8, 0xD9F8, 0x58A9, 0xD4C2, 0x58AE, 0xF6E5, - 0x58B3, 0xDDC5, 0x58BA, 0xE7F2, 0x58BB, 0xEDDF, 0x58BE, 0xCACB, - 0x58C1, 0xDBFA, 0x58C5, 0xE8B5, 0x58C7, 0xD3A6, 0x58CE, 0xFDB5, - 0x58D1, 0xF9C9, 0x58D3, 0xE4E2, 0x58D5, 0xFBBD, 0x58D8, 0xD7A4, - 0x58D9, 0xCEC5, 0x58DE, 0xCED5, 0x58DF, 0xD6E6, 0x58E4, 0xE5BD, - 0x58EB, 0xDECD, 0x58EC, 0xECF3, 0x58EF, 0xEDE0, 0x58F9, 0xECEC, - 0x58FA, 0xFBBE, 0x58FB, 0xDFEB, 0x58FD, 0xE1F8, 0x590F, 0xF9BE, - 0x5914, 0xD0F3, 0x5915, 0xE0AA, 0x5916, 0xE8E2, 0x5919, 0xE2D4, - 0x591A, 0xD2FD, 0x591C, 0xE5A8, 0x5922, 0xD9D3, 0x5927, 0xD3DE, - 0x5929, 0xF4B8, 0x592A, 0xF7BC, 0x592B, 0xDCFD, 0x592D, 0xE8EC, - 0x592E, 0xE4E7, 0x5931, 0xE3F7, 0x5937, 0xECA8, 0x593E, 0xFAF1, - 0x5944, 0xE5F2, 0x5947, 0xD0F4, 0x5948, 0xD2AF, 0x5949, 0xDCE5, - 0x594E, 0xD0A5, 0x594F, 0xF1B4, 0x5950, 0xFCB1, 0x5951, 0xCCF8, - 0x5954, 0xDDC6, 0x5955, 0xFAD1, 0x5957, 0xF7DF, 0x595A, 0xFAA8, - 0x5960, 0xEEF5, 0x5962, 0xDECE, 0x5967, 0xE7F3, 0x596A, 0xF7AC, - 0x596B, 0xEBC4, 0x596C, 0xEDE1, 0x596D, 0xE0AB, 0x596E, 0xDDC7, - 0x5973, 0xD2B3, 0x5974, 0xD2BF, 0x5978, 0xCACC, 0x597D, 0xFBBF, - 0x5982, 0xE5FD, 0x5983, 0xDDE5, 0x5984, 0xD8CD, 0x598A, 0xECF4, - 0x5993, 0xD0F5, 0x5996, 0xE8ED, 0x5997, 0xD0D2, 0x5999, 0xD9D8, - 0x59A5, 0xF6E6, 0x59A8, 0xDBAA, 0x59AC, 0xF7E0, 0x59B9, 0xD8D9, - 0x59BB, 0xF4A3, 0x59BE, 0xF4DD, 0x59C3, 0xEFD1, 0x59C6, 0xD9B5, - 0x59C9, 0xEDAB, 0x59CB, 0xE3B7, 0x59D0, 0xEEBB, 0x59D1, 0xCDB4, - 0x59D3, 0xE0F3, 0x59D4, 0xEACD, 0x59D9, 0xECF5, 0x59DA, 0xE8EE, - 0x59DC, 0xCBA9, 0x59DD, 0xF1AF, 0x59E6, 0xCACD, 0x59E8, 0xECA9, - 0x59EA, 0xF2EB, 0x59EC, 0xFDEF, 0x59EE, 0xF9F3, 0x59F8, 0xE6C1, - 0x59FB, 0xECD8, 0x59FF, 0xEDAC, 0x5A01, 0xEACE, 0x5A03, 0xE8DF, - 0x5A11, 0xDECF, 0x5A18, 0xD2A6, 0x5A1B, 0xE7F4, 0x5A1C, 0xD1D6, - 0x5A1F, 0xE6C2, 0x5A20, 0xE3E3, 0x5A25, 0xE4B0, 0x5A29, 0xD8B4, - 0x5A36, 0xF6A5, 0x5A3C, 0xF3DE, 0x5A41, 0xD7A5, 0x5A46, 0xF7E8, - 0x5A49, 0xE8C6, 0x5A5A, 0xFBE6, 0x5A62, 0xDDE6, 0x5A66, 0xDCFE, - 0x5A92, 0xD8DA, 0x5A9A, 0xDAAC, 0x5A9B, 0xEAB0, 0x5AA4, 0xE3B8, - 0x5AC1, 0xCAAA, 0x5AC2, 0xE1F9, 0x5AC4, 0xEAB1, 0x5AC9, 0xF2EC, - 0x5ACC, 0xFAEE, 0x5AE1, 0xEED5, 0x5AE6, 0xF9F4, 0x5AE9, 0xD2EC, - 0x5B05, 0xFBFB, 0x5B09, 0xFDF0, 0x5B0B, 0xE0BD, 0x5B0C, 0xCEE3, - 0x5B16, 0xF8C6, 0x5B2A, 0xDEAE, 0x5B40, 0xDFC5, 0x5B43, 0xE5BE, - 0x5B50, 0xEDAD, 0x5B51, 0xFAEA, 0x5B54, 0xCDEE, 0x5B55, 0xEDA6, - 0x5B57, 0xEDAE, 0x5B58, 0xF0ED, 0x5B5A, 0xDDA1, 0x5B5C, 0xEDAF, - 0x5B5D, 0xFCF8, 0x5B5F, 0xD8EB, 0x5B63, 0xCCF9, 0x5B64, 0xCDB5, - 0x5B69, 0xFAA9, 0x5B6B, 0xE1DD, 0x5B70, 0xE2D5, 0x5B71, 0xEDCF, - 0x5B75, 0xDDA2, 0x5B78, 0xF9CA, 0x5B7A, 0xEAE8, 0x5B7C, 0xE5ED, - 0x5B85, 0xD3EB, 0x5B87, 0xE9D4, 0x5B88, 0xE1FA, 0x5B89, 0xE4CC, - 0x5B8B, 0xE1E4, 0x5B8C, 0xE8C7, 0x5B8F, 0xCEDB, 0x5B93, 0xDCD5, - 0x5B95, 0xF7B5, 0x5B96, 0xFCF3, 0x5B97, 0xF0F3, 0x5B98, 0xCEAF, - 0x5B99, 0xF1B5, 0x5B9A, 0xEFD2, 0x5B9B, 0xE8C8, 0x5B9C, 0xEBF1, - 0x5BA2, 0xCBD4, 0x5BA3, 0xE0BE, 0x5BA4, 0xE3F8, 0x5BA5, 0xEAE9, - 0x5BA6, 0xFCB2, 0x5BAC, 0xE0F4, 0x5BAE, 0xCFE0, 0x5BB0, 0xEEA5, - 0x5BB3, 0xFAAA, 0x5BB4, 0xE6C3, 0x5BB5, 0xE1B2, 0x5BB6, 0xCAAB, - 0x5BB8, 0xE3E4, 0x5BB9, 0xE9BB, 0x5BBF, 0xE2D6, 0x5BC0, 0xF3F2, - 0x5BC2, 0xEED6, 0x5BC3, 0xEAB2, 0x5BC4, 0xD0F6, 0x5BC5, 0xECD9, - 0x5BC6, 0xDACB, 0x5BC7, 0xCFA8, 0x5BCC, 0xDDA3, 0x5BD0, 0xD8DB, - 0x5BD2, 0xF9CE, 0x5BD3, 0xE9D5, 0x5BD4, 0xE3D1, 0x5BD7, 0xD2BC, - 0x5BDE, 0xD8AC, 0x5BDF, 0xF3CC, 0x5BE1, 0xCDFB, 0x5BE2, 0xF6D6, - 0x5BE4, 0xE7F5, 0x5BE5, 0xE8EF, 0x5BE6, 0xE3F9, 0x5BE7, 0xD2BB, - 0x5BE8, 0xF3F3, 0x5BE9, 0xE3FB, 0x5BEB, 0xDED0, 0x5BEC, 0xCEB0, - 0x5BEE, 0xD6F7, 0x5BEF, 0xF1D9, 0x5BF5, 0xF5C1, 0x5BF6, 0xDCC4, - 0x5BF8, 0xF5BB, 0x5BFA, 0xDED1, 0x5C01, 0xDCE6, 0x5C04, 0xDED2, - 0x5C07, 0xEDE2, 0x5C08, 0xEEF6, 0x5C09, 0xEACF, 0x5C0A, 0xF0EE, - 0x5C0B, 0xE3FC, 0x5C0D, 0xD3DF, 0x5C0E, 0xD3F4, 0x5C0F, 0xE1B3, - 0x5C11, 0xE1B4, 0x5C16, 0xF4D3, 0x5C19, 0xDFC6, 0x5C24, 0xE9D6, - 0x5C28, 0xDBAB, 0x5C31, 0xF6A6, 0x5C38, 0xE3B9, 0x5C39, 0xEBC5, - 0x5C3A, 0xF4A9, 0x5C3B, 0xCDB6, 0x5C3C, 0xD2F9, 0x5C3E, 0xDAAD, - 0x5C3F, 0xD2E3, 0x5C40, 0xCFD1, 0x5C45, 0xCBDC, 0x5C46, 0xCCFA, - 0x5C48, 0xCFDD, 0x5C4B, 0xE8A9, 0x5C4D, 0xE3BB, 0x5C4E, 0xE3BA, - 0x5C51, 0xE0DA, 0x5C55, 0xEEF7, 0x5C5B, 0xDCB3, 0x5C60, 0xD3F5, - 0x5C62, 0xD7A6, 0x5C64, 0xF6B5, 0x5C65, 0xD7DB, 0x5C6C, 0xE1D5, - 0x5C6F, 0xD4EA, 0x5C71, 0xDFA3, 0x5C79, 0xFDDF, 0x5C90, 0xD0F7, - 0x5C91, 0xEDD4, 0x5CA1, 0xCBAA, 0x5CA9, 0xE4DB, 0x5CAB, 0xE1FB, - 0x5CAC, 0xCBA2, 0x5CB1, 0xD3E0, 0x5CB3, 0xE4BF, 0x5CB5, 0xFBC0, - 0x5CB7, 0xDABE, 0x5CB8, 0xE4CD, 0x5CBA, 0xD6B9, 0x5CBE, 0xEFC0, - 0x5CC0, 0xE1FC, 0x5CD9, 0xF6B9, 0x5CE0, 0xDFC7, 0x5CE8, 0xE4B1, - 0x5CEF, 0xDCE7, 0x5CF0, 0xDCE8, 0x5CF4, 0xFAD6, 0x5CF6, 0xD3F6, - 0x5CFB, 0xF1DA, 0x5CFD, 0xFAF2, 0x5D07, 0xE2FD, 0x5D0D, 0xD5CF, - 0x5D0E, 0xD0F8, 0x5D11, 0xCDDF, 0x5D14, 0xF5CB, 0x5D16, 0xE4F0, - 0x5D17, 0xCBAB, 0x5D19, 0xD7C4, 0x5D27, 0xE2FE, 0x5D29, 0xDDDA, - 0x5D4B, 0xDAAE, 0x5D4C, 0xCAEE, 0x5D50, 0xD5B9, 0x5D69, 0xE3A1, - 0x5D6C, 0xE8E3, 0x5D6F, 0xF3AB, 0x5D87, 0xCFA9, 0x5D8B, 0xD3F7, - 0x5D9D, 0xD4F1, 0x5DA0, 0xCEE4, 0x5DA2, 0xE8F2, 0x5DAA, 0xE5F5, - 0x5DB8, 0xE7AE, 0x5DBA, 0xD6BA, 0x5DBC, 0xDFEC, 0x5DBD, 0xE4C0, - 0x5DCD, 0xE8E4, 0x5DD2, 0xD8B5, 0x5DD6, 0xE4DC, 0x5DDD, 0xF4B9, - 0x5DDE, 0xF1B6, 0x5DE1, 0xE2DE, 0x5DE2, 0xE1B5, 0x5DE5, 0xCDEF, - 0x5DE6, 0xF1A7, 0x5DE7, 0xCEE5, 0x5DE8, 0xCBDD, 0x5DEB, 0xD9E3, - 0x5DEE, 0xF3AC, 0x5DF1, 0xD0F9, 0x5DF2, 0xECAB, 0x5DF3, 0xDED3, - 0x5DF4, 0xF7E9, 0x5DF7, 0xF9F5, 0x5DFD, 0xE1DE, 0x5DFE, 0xCBEE, - 0x5E02, 0xE3BC, 0x5E03, 0xF8D6, 0x5E06, 0xDBEE, 0x5E0C, 0xFDF1, - 0x5E11, 0xF7B6, 0x5E16, 0xF4DE, 0x5E19, 0xF2ED, 0x5E1B, 0xDBD9, - 0x5E1D, 0xF0A8, 0x5E25, 0xE1FD, 0x5E2B, 0xDED4, 0x5E2D, 0xE0AC, - 0x5E33, 0xEDE3, 0x5E36, 0xD3E1, 0x5E38, 0xDFC8, 0x5E3D, 0xD9B6, - 0x5E3F, 0xFDAC, 0x5E40, 0xEFD3, 0x5E44, 0xE4C1, 0x5E45, 0xF8EB, - 0x5E47, 0xDBAC, 0x5E4C, 0xFCC6, 0x5E55, 0xD8AD, 0x5E5F, 0xF6BA, - 0x5E61, 0xDBDF, 0x5E62, 0xD3D3, 0x5E63, 0xF8C7, 0x5E72, 0xCACE, - 0x5E73, 0xF8C1, 0x5E74, 0xD2B4, 0x5E77, 0xDCB4, 0x5E78, 0xFAB9, - 0x5E79, 0xCACF, 0x5E7B, 0xFCB3, 0x5E7C, 0xEAEA, 0x5E7D, 0xEAEB, - 0x5E7E, 0xD0FA, 0x5E84, 0xEDE4, 0x5E87, 0xDDE7, 0x5E8A, 0xDFC9, - 0x5E8F, 0xDFED, 0x5E95, 0xEEBC, 0x5E97, 0xEFC1, 0x5E9A, 0xCCD2, - 0x5E9C, 0xDDA4, 0x5EA0, 0xDFCA, 0x5EA6, 0xD3F8, 0x5EA7, 0xF1A8, - 0x5EAB, 0xCDB7, 0x5EAD, 0xEFD4, 0x5EB5, 0xE4DD, 0x5EB6, 0xDFEE, - 0x5EB7, 0xCBAC, 0x5EB8, 0xE9BC, 0x5EBE, 0xEAEC, 0x5EC2, 0xDFCB, - 0x5EC8, 0xF9BF, 0x5EC9, 0xD6AF, 0x5ECA, 0xD5C6, 0x5ED0, 0xCFAA, - 0x5ED3, 0xCEA9, 0x5ED6, 0xD6F8, 0x5EDA, 0xF1B7, 0x5EDB, 0xEEF8, - 0x5EDF, 0xD9D9, 0x5EE0, 0xF3DF, 0x5EE2, 0xF8C8, 0x5EE3, 0xCEC6, - 0x5EEC, 0xD5E6, 0x5EF3, 0xF4E6, 0x5EF6, 0xE6C5, 0x5EF7, 0xEFD5, - 0x5EFA, 0xCBEF, 0x5EFB, 0xFCDF, 0x5F01, 0xDCA7, 0x5F04, 0xD6E7, - 0x5F0A, 0xF8C9, 0x5F0F, 0xE3D2, 0x5F11, 0xE3BD, 0x5F13, 0xCFE1, - 0x5F14, 0xF0C0, 0x5F15, 0xECDA, 0x5F17, 0xDDD7, 0x5F18, 0xFBF0, - 0x5F1B, 0xECAC, 0x5F1F, 0xF0A9, 0x5F26, 0xFAD7, 0x5F27, 0xFBC1, - 0x5F29, 0xD2C0, 0x5F31, 0xE5B0, 0x5F35, 0xEDE5, 0x5F3A, 0xCBAD, - 0x5F3C, 0xF9B0, 0x5F48, 0xF7A5, 0x5F4A, 0xCBAE, 0x5F4C, 0xDAAF, - 0x5F4E, 0xD8B6, 0x5F56, 0xD3A7, 0x5F57, 0xFBB2, 0x5F59, 0xFDC4, - 0x5F5B, 0xECAD, 0x5F62, 0xFBA1, 0x5F66, 0xE5E9, 0x5F67, 0xE9EE, - 0x5F69, 0xF3F4, 0x5F6A, 0xF8F3, 0x5F6B, 0xF0C1, 0x5F6C, 0xDEAF, - 0x5F6D, 0xF8B0, 0x5F70, 0xF3E0, 0x5F71, 0xE7AF, 0x5F77, 0xDBAD, - 0x5F79, 0xE6B5, 0x5F7C, 0xF9A8, 0x5F7F, 0xDDD8, 0x5F80, 0xE8D9, - 0x5F81, 0xEFD6, 0x5F85, 0xD3E2, 0x5F87, 0xE2DF, 0x5F8A, 0xFCE0, - 0x5F8B, 0xD7C8, 0x5F8C, 0xFDAD, 0x5F90, 0xDFEF, 0x5F91, 0xCCD3, - 0x5F92, 0xD3F9, 0x5F97, 0xD4F0, 0x5F98, 0xDBC7, 0x5F99, 0xDED5, - 0x5F9E, 0xF0F4, 0x5FA0, 0xD5D0, 0x5FA1, 0xE5D9, 0x5FA8, 0xFCC7, - 0x5FA9, 0xDCD6, 0x5FAA, 0xE2E0, 0x5FAE, 0xDAB0, 0x5FB5, 0xF3A3, - 0x5FB7, 0xD3EC, 0x5FB9, 0xF4CB, 0x5FBD, 0xFDC5, 0x5FC3, 0xE3FD, - 0x5FC5, 0xF9B1, 0x5FCC, 0xD0FB, 0x5FCD, 0xECDB, 0x5FD6, 0xF5BC, - 0x5FD7, 0xF2A4, 0x5FD8, 0xD8CE, 0x5FD9, 0xD8CF, 0x5FE0, 0xF5F7, - 0x5FEB, 0xF6E1, 0x5FF5, 0xD2B7, 0x5FFD, 0xFBEC, 0x5FFF, 0xDDC8, - 0x600F, 0xE4E8, 0x6012, 0xD2C1, 0x6016, 0xF8D7, 0x601C, 0xD6BB, - 0x601D, 0xDED6, 0x6020, 0xF7BD, 0x6021, 0xECAE, 0x6025, 0xD0E1, - 0x6027, 0xE0F5, 0x6028, 0xEAB3, 0x602A, 0xCED6, 0x602F, 0xCCA5, - 0x6041, 0xECF6, 0x6042, 0xE2E1, 0x6043, 0xE3BE, 0x604D, 0xFCC8, - 0x6050, 0xCDF0, 0x6052, 0xF9F6, 0x6055, 0xDFF0, 0x6059, 0xE5BF, - 0x605D, 0xCEBF, 0x6062, 0xFCE1, 0x6063, 0xEDB0, 0x6064, 0xFDD1, - 0x6065, 0xF6BB, 0x6068, 0xF9CF, 0x6069, 0xEBDA, 0x606A, 0xCAC1, - 0x606C, 0xD2B8, 0x606D, 0xCDF1, 0x606F, 0xE3D3, 0x6070, 0xFDE6, - 0x6085, 0xE6ED, 0x6089, 0xE3FA, 0x608C, 0xF0AA, 0x608D, 0xF9D0, - 0x6094, 0xFCE2, 0x6096, 0xF8A7, 0x609A, 0xE1E5, 0x609B, 0xEEF9, - 0x609F, 0xE7F6, 0x60A0, 0xEAED, 0x60A3, 0xFCB4, 0x60A4, 0xF5C2, - 0x60A7, 0xD7DC, 0x60B0, 0xF0F5, 0x60B2, 0xDDE8, 0x60B3, 0xD3ED, - 0x60B4, 0xF5FC, 0x60B6, 0xDABF, 0x60B8, 0xCCFB, 0x60BC, 0xD3FA, - 0x60BD, 0xF4A4, 0x60C5, 0xEFD7, 0x60C7, 0xD4C3, 0x60D1, 0xFBE3, - 0x60DA, 0xFBED, 0x60DC, 0xE0AD, 0x60DF, 0xEAEE, 0x60E0, 0xFBB3, - 0x60E1, 0xE4C2, 0x60F0, 0xF6E7, 0x60F1, 0xD2DD, 0x60F3, 0xDFCC, - 0x60F6, 0xFCC9, 0x60F9, 0xE5A9, 0x60FA, 0xE0F6, 0x60FB, 0xF6B3, - 0x6101, 0xE1FE, 0x6106, 0xCBF0, 0x6108, 0xEAEF, 0x6109, 0xEAF0, - 0x610D, 0xDAC0, 0x610E, 0xF8B4, 0x610F, 0xEBF2, 0x6115, 0xE4C3, - 0x611A, 0xE9D7, 0x611B, 0xE4F1, 0x611F, 0xCAEF, 0x6127, 0xCED7, - 0x6130, 0xFCCA, 0x6134, 0xF3E1, 0x6137, 0xCBC4, 0x613C, 0xE3E5, - 0x613E, 0xCBC5, 0x613F, 0xEAB4, 0x6142, 0xE9BD, 0x6144, 0xD7C9, - 0x6147, 0xEBDB, 0x6148, 0xEDB1, 0x614A, 0xCCC3, 0x614B, 0xF7BE, - 0x614C, 0xFCCB, 0x6153, 0xF8F4, 0x6155, 0xD9B7, 0x6158, 0xF3D3, - 0x6159, 0xF3D4, 0x615D, 0xF7E4, 0x615F, 0xF7D1, 0x6162, 0xD8B7, - 0x6163, 0xCEB1, 0x6164, 0xCAC2, 0x6167, 0xFBB4, 0x6168, 0xCBC6, - 0x616B, 0xF0F6, 0x616E, 0xD5E7, 0x6170, 0xEAD0, 0x6176, 0xCCD4, - 0x6177, 0xCBAF, 0x617D, 0xF4AA, 0x617E, 0xE9AF, 0x6181, 0xF5C3, - 0x6182, 0xE9D8, 0x618A, 0xDDE9, 0x618E, 0xF1F3, 0x6190, 0xD5FB, - 0x6191, 0xDEBB, 0x6194, 0xF4FB, 0x6198, 0xFDF3, 0x6199, 0xFDF2, - 0x619A, 0xF7A6, 0x61A4, 0xDDC9, 0x61A7, 0xD4D3, 0x61A9, 0xCCA8, - 0x61AB, 0xDAC1, 0x61AC, 0xCCD5, 0x61AE, 0xD9E4, 0x61B2, 0xFACA, - 0x61B6, 0xE5E3, 0x61BA, 0xD3BC, 0x61BE, 0xCAF0, 0x61C3, 0xD0C4, - 0x61C7, 0xCAD0, 0x61C8, 0xFAAB, 0x61C9, 0xEBEB, 0x61CA, 0xE7F8, - 0x61CB, 0xD9E5, 0x61E6, 0xD1D7, 0x61F2, 0xF3A4, 0x61F6, 0xD4FB, - 0x61F7, 0xFCE3, 0x61F8, 0xFAD8, 0x61FA, 0xF3D5, 0x61FC, 0xCFAB, - 0x61FF, 0xEBF3, 0x6200, 0xD5FC, 0x6207, 0xD3D4, 0x6208, 0xCDFC, - 0x620A, 0xD9E6, 0x620C, 0xE2F9, 0x620D, 0xE2A1, 0x620E, 0xEBD4, - 0x6210, 0xE0F7, 0x6211, 0xE4B2, 0x6212, 0xCCFC, 0x6216, 0xFBE4, - 0x621A, 0xF4AB, 0x621F, 0xD0BD, 0x6221, 0xCAF1, 0x622A, 0xEFB8, - 0x622E, 0xD7C0, 0x6230, 0xEEFA, 0x6231, 0xFDF4, 0x6234, 0xD3E3, - 0x6236, 0xFBC2, 0x623E, 0xD5E8, 0x623F, 0xDBAE, 0x6240, 0xE1B6, - 0x6241, 0xF8B7, 0x6247, 0xE0BF, 0x6248, 0xFBC3, 0x6249, 0xDDEA, - 0x624B, 0xE2A2, 0x624D, 0xEEA6, 0x6253, 0xF6E8, 0x6258, 0xF6F5, - 0x626E, 0xDDCA, 0x6271, 0xD0E2, 0x6276, 0xDDA6, 0x6279, 0xDDEB, - 0x627C, 0xE4F9, 0x627F, 0xE3AF, 0x6280, 0xD0FC, 0x6284, 0xF4FC, - 0x6289, 0xCCBC, 0x628A, 0xF7EA, 0x6291, 0xE5E4, 0x6292, 0xDFF1, - 0x6295, 0xF7E1, 0x6297, 0xF9F7, 0x6298, 0xEFB9, 0x629B, 0xF8D8, - 0x62AB, 0xF9A9, 0x62B1, 0xF8D9, 0x62B5, 0xEEBD, 0x62B9, 0xD8C6, - 0x62BC, 0xE4E3, 0x62BD, 0xF5CE, 0x62C2, 0xDDD9, 0x62C7, 0xD9E7, - 0x62C8, 0xD2B9, 0x62C9, 0xD5C3, 0x62CC, 0xDAE5, 0x62CD, 0xDAD0, - 0x62CF, 0xD1D9, 0x62D0, 0xCED8, 0x62D2, 0xCBDE, 0x62D3, 0xF4AC, - 0x62D4, 0xDAFB, 0x62D6, 0xF6E9, 0x62D7, 0xE8F3, 0x62D8, 0xCFAC, - 0x62D9, 0xF0F0, 0x62DB, 0xF4FD, 0x62DC, 0xDBC8, 0x62EC, 0xCEC0, - 0x62ED, 0xE3D4, 0x62EE, 0xD1CF, 0x62EF, 0xF1F5, 0x62F1, 0xCDF2, - 0x62F3, 0xCFEB, 0x62F7, 0xCDB8, 0x62FE, 0xE3A6, 0x62FF, 0xD1DA, - 0x6301, 0xF2A5, 0x6307, 0xF2A6, 0x6309, 0xE4CE, 0x6311, 0xD3FB, - 0x632B, 0xF1A9, 0x632F, 0xF2C9, 0x633A, 0xEFD8, 0x633B, 0xE6C9, - 0x633D, 0xD8B8, 0x633E, 0xFAF3, 0x6349, 0xF3B5, 0x634C, 0xF8A4, - 0x634F, 0xD1F3, 0x6350, 0xE6C8, 0x6355, 0xF8DA, 0x6367, 0xDCE9, - 0x6368, 0xDED7, 0x636E, 0xCBDF, 0x6372, 0xCFEC, 0x6377, 0xF4DF, - 0x637A, 0xD1F4, 0x637B, 0xD2BA, 0x637F, 0xDFF2, 0x6383, 0xE1B7, - 0x6388, 0xE2A3, 0x6389, 0xD3FC, 0x638C, 0xEDE6, 0x6392, 0xDBC9, - 0x6396, 0xE4FA, 0x6398, 0xCFDE, 0x639B, 0xCED0, 0x63A0, 0xD5D3, - 0x63A1, 0xF3F5, 0x63A2, 0xF7AE, 0x63A5, 0xEFC8, 0x63A7, 0xCDF3, - 0x63A8, 0xF5CF, 0x63A9, 0xE5F3, 0x63AA, 0xF0C2, 0x63C0, 0xCAD1, - 0x63C4, 0xEAF1, 0x63C6, 0xD0A6, 0x63CF, 0xD9DA, 0x63D0, 0xF0AB, - 0x63D6, 0xEBE7, 0x63DA, 0xE5C0, 0x63DB, 0xFCB5, 0x63E1, 0xE4C4, - 0x63ED, 0xCCA9, 0x63EE, 0xFDC6, 0x63F4, 0xEAB5, 0x63F6, 0xE5AA, - 0x63F7, 0xDFBA, 0x640D, 0xE1DF, 0x640F, 0xDAD1, 0x6414, 0xE1B8, - 0x6416, 0xE8F4, 0x6417, 0xD3FD, 0x641C, 0xE2A4, 0x6422, 0xF2CA, - 0x642C, 0xDAE6, 0x642D, 0xF7B3, 0x643A, 0xFDCD, 0x643E, 0xF3B6, - 0x6458, 0xEED7, 0x6460, 0xF5C4, 0x6469, 0xD8A4, 0x646F, 0xF2A7, - 0x6478, 0xD9B8, 0x6479, 0xD9B9, 0x647A, 0xEFC9, 0x6488, 0xD6CE, - 0x6491, 0xF7CB, 0x6492, 0xDFAE, 0x6493, 0xE8F5, 0x649A, 0xD2B5, - 0x649E, 0xD3D5, 0x64A4, 0xF4CC, 0x64A5, 0xDAFC, 0x64AB, 0xD9E8, - 0x64AD, 0xF7EB, 0x64AE, 0xF5C9, 0x64B0, 0xF3BC, 0x64B2, 0xDAD2, - 0x64BB, 0xD3B5, 0x64C1, 0xE8B6, 0x64C4, 0xD6CF, 0x64C5, 0xF4BA, - 0x64C7, 0xF7C9, 0x64CA, 0xCCAA, 0x64CD, 0xF0C3, 0x64CE, 0xCCD6, - 0x64D2, 0xD0D3, 0x64D4, 0xD3BD, 0x64D8, 0xDBFB, 0x64DA, 0xCBE0, - 0x64E1, 0xD3E4, 0x64E2, 0xF6F7, 0x64E5, 0xD5BA, 0x64E6, 0xF3CD, - 0x64E7, 0xCBE1, 0x64EC, 0xEBF4, 0x64F2, 0xF4AD, 0x64F4, 0xFCAA, - 0x64FA, 0xF7EC, 0x64FE, 0xE8F6, 0x6500, 0xDAE7, 0x6504, 0xF7CC, - 0x6518, 0xE5C1, 0x651D, 0xE0EE, 0x6523, 0xD5FD, 0x652A, 0xCEE6, - 0x652B, 0xFCAB, 0x652C, 0xD5BB, 0x652F, 0xF2A8, 0x6536, 0xE2A5, - 0x6537, 0xCDB9, 0x6538, 0xEAF2, 0x6539, 0xCBC7, 0x653B, 0xCDF4, - 0x653E, 0xDBAF, 0x653F, 0xEFD9, 0x6545, 0xCDBA, 0x6548, 0xFCF9, - 0x654D, 0xDFF3, 0x654E, 0xCEE7, 0x654F, 0xDAC2, 0x6551, 0xCFAD, - 0x6556, 0xE7F9, 0x6557, 0xF8A8, 0x655E, 0xF3E2, 0x6562, 0xCAF2, - 0x6563, 0xDFA4, 0x6566, 0xD4C4, 0x656C, 0xCCD7, 0x656D, 0xE5C2, - 0x6572, 0xCDBB, 0x6574, 0xEFDA, 0x6575, 0xEED8, 0x6577, 0xDDA7, - 0x6578, 0xE2A6, 0x657E, 0xE0C0, 0x6582, 0xD6B0, 0x6583, 0xF8CA, - 0x6585, 0xFCFA, 0x6587, 0xD9FE, 0x658C, 0xDEB0, 0x6590, 0xDDEC, - 0x6591, 0xDAE8, 0x6597, 0xD4E0, 0x6599, 0xD6F9, 0x659B, 0xCDD7, - 0x659C, 0xDED8, 0x659F, 0xF2F8, 0x65A1, 0xE4D6, 0x65A4, 0xD0C5, - 0x65A5, 0xF4AE, 0x65A7, 0xDDA8, 0x65AB, 0xEDC5, 0x65AC, 0xF3D6, - 0x65AF, 0xDED9, 0x65B0, 0xE3E6, 0x65B7, 0xD3A8, 0x65B9, 0xDBB0, - 0x65BC, 0xE5DA, 0x65BD, 0xE3BF, 0x65C1, 0xDBB1, 0x65C5, 0xD5E9, - 0x65CB, 0xE0C1, 0x65CC, 0xEFDB, 0x65CF, 0xF0E9, 0x65D2, 0xD7B2, - 0x65D7, 0xD0FD, 0x65E0, 0xD9E9, 0x65E3, 0xD0FE, 0x65E5, 0xECED, - 0x65E6, 0xD3A9, 0x65E8, 0xF2A9, 0x65E9, 0xF0C4, 0x65EC, 0xE2E2, - 0x65ED, 0xE9EF, 0x65F1, 0xF9D1, 0x65F4, 0xE9D9, 0x65FA, 0xE8DA, - 0x65FB, 0xDAC3, 0x65FC, 0xDAC4, 0x65FD, 0xD4C5, 0x65FF, 0xE7FA, - 0x6606, 0xCDE0, 0x6607, 0xE3B0, 0x6609, 0xDBB2, 0x660A, 0xFBC4, - 0x660C, 0xF3E3, 0x660E, 0xD9A5, 0x660F, 0xFBE7, 0x6610, 0xDDCB, - 0x6611, 0xD0D4, 0x6613, 0xE6B6, 0x6614, 0xE0AE, 0x6615, 0xFDDA, - 0x661E, 0xDCB5, 0x661F, 0xE0F8, 0x6620, 0xE7B1, 0x6625, 0xF5F0, - 0x6627, 0xD8DC, 0x6628, 0xEDC6, 0x662D, 0xE1B9, 0x662F, 0xE3C0, - 0x6630, 0xF9C0, 0x6631, 0xE9F0, 0x6634, 0xD9DB, 0x6636, 0xF3E4, - 0x663A, 0xDCB6, 0x663B, 0xE4E9, 0x6641, 0xF0C5, 0x6642, 0xE3C1, - 0x6643, 0xFCCC, 0x6644, 0xFCCD, 0x6649, 0xF2CB, 0x664B, 0xF2CC, - 0x664F, 0xE4CF, 0x6659, 0xF1DB, 0x665B, 0xFAD9, 0x665D, 0xF1B8, - 0x665E, 0xFDF5, 0x665F, 0xE0F9, 0x6664, 0xE7FB, 0x6665, 0xFCB7, - 0x6666, 0xFCE4, 0x6667, 0xFBC5, 0x6668, 0xE3E7, 0x6669, 0xD8B9, - 0x666B, 0xF6F8, 0x666E, 0xDCC5, 0x666F, 0xCCD8, 0x6673, 0xE0AF, - 0x6674, 0xF4E7, 0x6676, 0xEFDC, 0x6677, 0xCFFC, 0x6678, 0xEFDD, - 0x667A, 0xF2AA, 0x6684, 0xFDBE, 0x6687, 0xCAAC, 0x6688, 0xFDBB, - 0x6689, 0xFDC7, 0x668E, 0xE7B2, 0x6690, 0xEAD1, 0x6691, 0xDFF4, - 0x6696, 0xD1EC, 0x6697, 0xE4DE, 0x6698, 0xE5C3, 0x669D, 0xD9A6, - 0x66A0, 0xCDBC, 0x66A2, 0xF3E5, 0x66AB, 0xEDD5, 0x66AE, 0xD9BA, - 0x66B2, 0xEDE7, 0x66B3, 0xFBB5, 0x66B4, 0xF8EC, 0x66B9, 0xE0E7, - 0x66BB, 0xCCD9, 0x66BE, 0xD4C6, 0x66C4, 0xE7A5, 0x66C6, 0xD5F5, - 0x66C7, 0xD3BE, 0x66C9, 0xFCFB, 0x66D6, 0xE4F2, 0x66D9, 0xDFF5, - 0x66DC, 0xE8F8, 0x66DD, 0xF8ED, 0x66E0, 0xCEC7, 0x66E6, 0xFDF6, - 0x66F0, 0xE8D8, 0x66F2, 0xCDD8, 0x66F3, 0xE7D6, 0x66F4, 0xCCDA, - 0x66F7, 0xCAE3, 0x66F8, 0xDFF6, 0x66F9, 0xF0C7, 0x66FA, 0xF0C6, - 0x66FC, 0xD8BA, 0x66FE, 0xF1F4, 0x66FF, 0xF4F0, 0x6700, 0xF5CC, - 0x6703, 0xFCE5, 0x6708, 0xEAC5, 0x6709, 0xEAF3, 0x670B, 0xDDDB, - 0x670D, 0xDCD7, 0x6714, 0xDEFD, 0x6715, 0xF2F9, 0x6717, 0xD5C7, - 0x671B, 0xD8D0, 0x671D, 0xF0C8, 0x671E, 0xD1A1, 0x671F, 0xD1A2, - 0x6726, 0xD9D4, 0x6727, 0xD6E8, 0x6728, 0xD9CA, 0x672A, 0xDAB1, - 0x672B, 0xD8C7, 0x672C, 0xDCE2, 0x672D, 0xF3CE, 0x672E, 0xF5F4, - 0x6731, 0xF1B9, 0x6734, 0xDAD3, 0x6736, 0xF6EA, 0x673A, 0xCFF5, - 0x673D, 0xFDAE, 0x6746, 0xCAD2, 0x6749, 0xDFB4, 0x674E, 0xD7DD, - 0x674F, 0xFABA, 0x6750, 0xEEA7, 0x6751, 0xF5BD, 0x6753, 0xF8F5, - 0x6756, 0xEDE8, 0x675C, 0xD4E1, 0x675E, 0xD1A3, 0x675F, 0xE1D6, - 0x676D, 0xF9F8, 0x676F, 0xDBCA, 0x6770, 0xCBF9, 0x6771, 0xD4D4, - 0x6773, 0xD9DC, 0x6775, 0xEEBE, 0x6777, 0xF7ED, 0x677B, 0xD2EE, - 0x677E, 0xE1E6, 0x677F, 0xF7F9, 0x6787, 0xDDED, 0x6789, 0xE8DB, - 0x678B, 0xDBB3, 0x678F, 0xD1F7, 0x6790, 0xE0B0, 0x6793, 0xD4E2, - 0x6795, 0xF6D7, 0x6797, 0xD7F9, 0x679A, 0xD8DD, 0x679C, 0xCDFD, - 0x679D, 0xF2AB, 0x67AF, 0xCDBD, 0x67B0, 0xF8C2, 0x67B3, 0xF2AC, - 0x67B6, 0xCAAD, 0x67B7, 0xCAAE, 0x67B8, 0xCFAE, 0x67BE, 0xE3C2, - 0x67C4, 0xDCB7, 0x67CF, 0xDBDA, 0x67D0, 0xD9BB, 0x67D1, 0xCAF3, - 0x67D2, 0xF6D3, 0x67D3, 0xE6F8, 0x67D4, 0xEAF5, 0x67DA, 0xEAF6, - 0x67DD, 0xF6F9, 0x67E9, 0xCFAF, 0x67EC, 0xCAD3, 0x67EF, 0xCAAF, - 0x67F0, 0xD2B0, 0x67F1, 0xF1BA, 0x67F3, 0xD7B3, 0x67F4, 0xE3C3, - 0x67F5, 0xF3FD, 0x67F6, 0xDEDA, 0x67FB, 0xDEDB, 0x67FE, 0xEFDE, - 0x6812, 0xE2E3, 0x6813, 0xEEFB, 0x6816, 0xDFF7, 0x6817, 0xD7CA, - 0x6821, 0xCEE8, 0x6822, 0xDBDB, 0x682A, 0xF1BB, 0x682F, 0xE9F1, - 0x6838, 0xFAB7, 0x6839, 0xD0C6, 0x683C, 0xCCAB, 0x683D, 0xEEA8, - 0x6840, 0xCBFA, 0x6841, 0xF9F9, 0x6842, 0xCCFD, 0x6843, 0xD3FE, - 0x6848, 0xE4D0, 0x684E, 0xF2EE, 0x6850, 0xD4D5, 0x6851, 0xDFCD, - 0x6853, 0xFCB8, 0x6854, 0xD1D0, 0x686D, 0xF2CD, 0x6876, 0xF7D2, - 0x687F, 0xCAD4, 0x6881, 0xD5D9, 0x6885, 0xD8DE, 0x688F, 0xCDD9, - 0x6893, 0xEEA9, 0x6894, 0xF6BC, 0x6897, 0xCCDB, 0x689D, 0xF0C9, - 0x689F, 0xFCFC, 0x68A1, 0xE8C9, 0x68A2, 0xF4FE, 0x68A7, 0xE7FC, - 0x68A8, 0xD7DE, 0x68AD, 0xDEDC, 0x68AF, 0xF0AC, 0x68B0, 0xCCFE, - 0x68B1, 0xCDE1, 0x68B3, 0xE1BA, 0x68B5, 0xDBEF, 0x68B6, 0xDAB2, - 0x68C4, 0xD1A5, 0x68C5, 0xDCB8, 0x68C9, 0xD8F6, 0x68CB, 0xD1A4, - 0x68CD, 0xCDE2, 0x68D2, 0xDCEA, 0x68D5, 0xF0F7, 0x68D7, 0xF0CA, - 0x68D8, 0xD0BE, 0x68DA, 0xDDDC, 0x68DF, 0xD4D6, 0x68E0, 0xD3D6, - 0x68E7, 0xEDD0, 0x68E8, 0xCDA1, 0x68EE, 0xDFB5, 0x68F2, 0xDFF8, - 0x68F9, 0xD4A1, 0x68FA, 0xCEB2, 0x6900, 0xE8CA, 0x6905, 0xEBF5, - 0x690D, 0xE3D5, 0x690E, 0xF5D0, 0x6912, 0xF5A1, 0x6927, 0xD9A7, - 0x6930, 0xE5AB, 0x693D, 0xE6CB, 0x693F, 0xF5F1, 0x694A, 0xE5C5, - 0x6953, 0xF9A3, 0x6954, 0xE0DB, 0x6955, 0xF6EB, 0x6957, 0xCBF1, - 0x6959, 0xD9EA, 0x695A, 0xF5A2, 0x695E, 0xD7D1, 0x6960, 0xD1F8, - 0x6961, 0xEAF8, 0x6962, 0xEAF9, 0x6963, 0xDAB3, 0x6968, 0xEFDF, - 0x696B, 0xF1EF, 0x696D, 0xE5F6, 0x696E, 0xEEBF, 0x696F, 0xE2E4, - 0x6975, 0xD0BF, 0x6977, 0xFAAC, 0x6978, 0xF5D1, 0x6979, 0xE7B3, - 0x6995, 0xE9BE, 0x699B, 0xF2CE, 0x699C, 0xDBB4, 0x69A5, 0xFCCE, - 0x69A7, 0xDDEE, 0x69AE, 0xE7B4, 0x69B4, 0xD7B4, 0x69BB, 0xF7B4, - 0x69C1, 0xCDBE, 0x69C3, 0xDAE9, 0x69CB, 0xCFB0, 0x69CC, 0xF7D9, - 0x69CD, 0xF3E6, 0x69D0, 0xCED9, 0x69E8, 0xCEAA, 0x69EA, 0xCBC8, - 0x69FB, 0xD0A7, 0x69FD, 0xF0CB, 0x69FF, 0xD0C7, 0x6A02, 0xE4C5, - 0x6A0A, 0xDBE0, 0x6A11, 0xD5DA, 0x6A13, 0xD7A7, 0x6A17, 0xEEC0, - 0x6A19, 0xF8F6, 0x6A1E, 0xF5D2, 0x6A1F, 0xEDE9, 0x6A21, 0xD9BC, - 0x6A23, 0xE5C6, 0x6A35, 0xF5A3, 0x6A38, 0xDAD4, 0x6A39, 0xE2A7, - 0x6A3A, 0xFBFC, 0x6A3D, 0xF1DC, 0x6A44, 0xCAF4, 0x6A48, 0xE8FA, - 0x6A4B, 0xCEE9, 0x6A52, 0xE9F8, 0x6A53, 0xE2E5, 0x6A58, 0xD0B9, - 0x6A59, 0xD4F2, 0x6A5F, 0xD1A6, 0x6A61, 0xDFCE, 0x6A6B, 0xFCF4, - 0x6A80, 0xD3AA, 0x6A84, 0xCCAC, 0x6A89, 0xEFE0, 0x6A8D, 0xE5E5, - 0x6A8E, 0xD0D5, 0x6A97, 0xDBFC, 0x6A9C, 0xFCE6, 0x6AA2, 0xCBFE, - 0x6AA3, 0xEDEA, 0x6AB3, 0xDEB1, 0x6ABB, 0xF9E3, 0x6AC2, 0xD4A2, - 0x6AC3, 0xCFF6, 0x6AD3, 0xD6D0, 0x6ADA, 0xD5EA, 0x6ADB, 0xF1EE, - 0x6AF6, 0xFACB, 0x6AFB, 0xE5A1, 0x6B04, 0xD5B1, 0x6B0A, 0xCFED, - 0x6B0C, 0xEDEB, 0x6B12, 0xD5B2, 0x6B16, 0xD5BC, 0x6B20, 0xFDE2, - 0x6B21, 0xF3AD, 0x6B23, 0xFDDB, 0x6B32, 0xE9B0, 0x6B3A, 0xD1A7, - 0x6B3D, 0xFDE3, 0x6B3E, 0xCEB3, 0x6B46, 0xFDE4, 0x6B47, 0xFACE, - 0x6B4C, 0xCAB0, 0x6B4E, 0xF7A7, 0x6B50, 0xCFB1, 0x6B5F, 0xE6A2, - 0x6B61, 0xFCB6, 0x6B62, 0xF2AD, 0x6B63, 0xEFE1, 0x6B64, 0xF3AE, - 0x6B65, 0xDCC6, 0x6B66, 0xD9EB, 0x6B6A, 0xE8E0, 0x6B72, 0xE1A8, - 0x6B77, 0xD5F6, 0x6B78, 0xCFFD, 0x6B7B, 0xDEDD, 0x6B7F, 0xD9D1, - 0x6B83, 0xE4EA, 0x6B84, 0xF2CF, 0x6B86, 0xF7BF, 0x6B89, 0xE2E6, - 0x6B8A, 0xE2A8, 0x6B96, 0xE3D6, 0x6B98, 0xEDD1, 0x6B9E, 0xE9F9, - 0x6BAE, 0xD6B1, 0x6BAF, 0xDEB2, 0x6BB2, 0xE0E8, 0x6BB5, 0xD3AB, - 0x6BB7, 0xEBDC, 0x6BBA, 0xDFAF, 0x6BBC, 0xCAC3, 0x6BBF, 0xEEFC, - 0x6BC1, 0xFDC3, 0x6BC5, 0xEBF6, 0x6BC6, 0xCFB2, 0x6BCB, 0xD9EC, - 0x6BCD, 0xD9BD, 0x6BCF, 0xD8DF, 0x6BD2, 0xD4B8, 0x6BD3, 0xEBBE, - 0x6BD4, 0xDDEF, 0x6BD6, 0xDDF0, 0x6BD7, 0xDDF1, 0x6BD8, 0xDDF2, - 0x6BDB, 0xD9BE, 0x6BEB, 0xFBC6, 0x6BEC, 0xCFB3, 0x6C08, 0xEEFD, - 0x6C0F, 0xE4AB, 0x6C11, 0xDAC5, 0x6C13, 0xD8EC, 0x6C23, 0xD1A8, - 0x6C34, 0xE2A9, 0x6C37, 0xDEBC, 0x6C38, 0xE7B5, 0x6C3E, 0xDBF0, - 0x6C40, 0xEFE2, 0x6C41, 0xF1F0, 0x6C42, 0xCFB4, 0x6C4E, 0xDBF1, - 0x6C50, 0xE0B1, 0x6C55, 0xDFA5, 0x6C57, 0xF9D2, 0x6C5A, 0xE7FD, - 0x6C5D, 0xE6A3, 0x6C5E, 0xFBF1, 0x6C5F, 0xCBB0, 0x6C60, 0xF2AE, - 0x6C68, 0xCDE7, 0x6C6A, 0xE8DC, 0x6C6D, 0xE7D7, 0x6C70, 0xF7C0, - 0x6C72, 0xD0E3, 0x6C76, 0xDAA1, 0x6C7A, 0xCCBD, 0x6C7D, 0xD1A9, - 0x6C7E, 0xDDCC, 0x6C81, 0xE3FE, 0x6C82, 0xD1AA, 0x6C83, 0xE8AA, - 0x6C85, 0xEAB6, 0x6C86, 0xF9FA, 0x6C87, 0xE6CC, 0x6C88, 0xF6D8, - 0x6C8C, 0xD4C7, 0x6C90, 0xD9CB, 0x6C92, 0xD9D2, 0x6C93, 0xD3CB, - 0x6C94, 0xD8F7, 0x6C95, 0xDAA9, 0x6C96, 0xF5F8, 0x6C99, 0xDEDE, - 0x6C9A, 0xF2AF, 0x6C9B, 0xF8A9, 0x6CAB, 0xD8C8, 0x6CAE, 0xEEC1, - 0x6CB3, 0xF9C1, 0x6CB8, 0xDDF3, 0x6CB9, 0xEAFA, 0x6CBB, 0xF6BD, - 0x6CBC, 0xE1BB, 0x6CBD, 0xCDBF, 0x6CBE, 0xF4D4, 0x6CBF, 0xE6CD, - 0x6CC1, 0xFCCF, 0x6CC2, 0xFBA2, 0x6CC4, 0xE0DC, 0x6CC9, 0xF4BB, - 0x6CCA, 0xDAD5, 0x6CCC, 0xF9B2, 0x6CD3, 0xFBF2, 0x6CD5, 0xDBF6, - 0x6CD7, 0xDEDF, 0x6CDB, 0xDBF2, 0x6CE1, 0xF8DC, 0x6CE2, 0xF7EE, - 0x6CE3, 0xEBE8, 0x6CE5, 0xD2FA, 0x6CE8, 0xF1BC, 0x6CEB, 0xFADA, - 0x6CEE, 0xDAEA, 0x6CEF, 0xDAC6, 0x6CF0, 0xF7C1, 0x6CF3, 0xE7B6, - 0x6D0B, 0xE5C7, 0x6D0C, 0xD6AC, 0x6D11, 0xDCC7, 0x6D17, 0xE1A9, - 0x6D19, 0xE2AA, 0x6D1B, 0xD5A6, 0x6D1E, 0xD4D7, 0x6D25, 0xF2D0, - 0x6D27, 0xEAFB, 0x6D29, 0xE0DD, 0x6D2A, 0xFBF3, 0x6D32, 0xF1BD, - 0x6D35, 0xE2E7, 0x6D36, 0xFDD7, 0x6D38, 0xCEC8, 0x6D39, 0xEAB7, - 0x6D3B, 0xFCC0, 0x6D3D, 0xFDE7, 0x6D3E, 0xF7EF, 0x6D41, 0xD7B5, - 0x6D59, 0xEFBA, 0x6D5A, 0xF1DD, 0x6D5C, 0xDEB3, 0x6D63, 0xE8CB, - 0x6D66, 0xF8DD, 0x6D69, 0xFBC7, 0x6D6A, 0xD5C8, 0x6D6C, 0xD7DF, - 0x6D6E, 0xDDA9, 0x6D74, 0xE9B1, 0x6D77, 0xFAAD, 0x6D78, 0xF6D9, - 0x6D79, 0xFAF4, 0x6D7F, 0xF8AA, 0x6D85, 0xE6EE, 0x6D87, 0xCCDC, - 0x6D88, 0xE1BC, 0x6D89, 0xE0EF, 0x6D8C, 0xE9BF, 0x6D8D, 0xFCFD, - 0x6D8E, 0xE6CE, 0x6D91, 0xE1D7, 0x6D93, 0xE6CF, 0x6D95, 0xF4F1, - 0x6DAF, 0xE4F3, 0x6DB2, 0xE4FB, 0x6DB5, 0xF9E4, 0x6DC0, 0xEFE3, - 0x6DC3, 0xCFEE, 0x6DC4, 0xF6BE, 0x6DC5, 0xE0B2, 0x6DC6, 0xFCFE, - 0x6DC7, 0xD1AB, 0x6DCB, 0xD7FA, 0x6DCF, 0xFBC8, 0x6DD1, 0xE2D7, - 0x6DD8, 0xD4A3, 0x6DD9, 0xF0F8, 0x6DDA, 0xD7A8, 0x6DDE, 0xE1E7, - 0x6DE1, 0xD3BF, 0x6DE8, 0xEFE4, 0x6DEA, 0xD7C5, 0x6DEB, 0xEBE2, - 0x6DEE, 0xFCE7, 0x6DF1, 0xE4A2, 0x6DF3, 0xE2E8, 0x6DF5, 0xE6D0, - 0x6DF7, 0xFBE8, 0x6DF8, 0xF4E8, 0x6DF9, 0xE5F4, 0x6DFA, 0xF4BC, - 0x6DFB, 0xF4D5, 0x6E17, 0xDFB6, 0x6E19, 0xFCB9, 0x6E1A, 0xEEC2, - 0x6E1B, 0xCAF5, 0x6E1F, 0xEFE5, 0x6E20, 0xCBE2, 0x6E21, 0xD4A4, - 0x6E23, 0xDEE0, 0x6E24, 0xDAFD, 0x6E25, 0xE4C6, 0x6E26, 0xE8BE, - 0x6E2B, 0xE0DE, 0x6E2C, 0xF6B4, 0x6E2D, 0xEAD2, 0x6E2F, 0xF9FB, - 0x6E32, 0xE0C2, 0x6E34, 0xCAE4, 0x6E36, 0xE7B7, 0x6E38, 0xEAFD, - 0x6E3A, 0xD9DD, 0x6E3C, 0xDAB4, 0x6E3D, 0xEEAA, 0x6E3E, 0xFBE9, - 0x6E43, 0xDBCB, 0x6E44, 0xDAB5, 0x6E4A, 0xF1BE, 0x6E4D, 0xD3AC, - 0x6E56, 0xFBC9, 0x6E58, 0xDFCF, 0x6E5B, 0xD3C0, 0x6E5C, 0xE3D7, - 0x6E5E, 0xEFE6, 0x6E5F, 0xFCD0, 0x6E67, 0xE9C0, 0x6E6B, 0xF5D3, - 0x6E6E, 0xECDC, 0x6E6F, 0xF7B7, 0x6E72, 0xEAB8, 0x6E73, 0xD1F9, - 0x6E7A, 0xDCC8, 0x6E90, 0xEAB9, 0x6E96, 0xF1DE, 0x6E9C, 0xD7B6, - 0x6E9D, 0xCFB5, 0x6E9F, 0xD9A8, 0x6EA2, 0xECEE, 0x6EA5, 0xDDAA, - 0x6EAA, 0xCDA2, 0x6EAB, 0xE8AE, 0x6EAF, 0xE1BD, 0x6EB1, 0xF2D1, - 0x6EB6, 0xE9C1, 0x6EBA, 0xD2FC, 0x6EC2, 0xDBB5, 0x6EC4, 0xF3E7, - 0x6EC5, 0xD8FE, 0x6EC9, 0xFCD1, 0x6ECB, 0xEDB2, 0x6ECC, 0xF4AF, - 0x6ECE, 0xFBA3, 0x6ED1, 0xFCC1, 0x6ED3, 0xEEAB, 0x6ED4, 0xD4A5, - 0x6EEF, 0xF4F2, 0x6EF4, 0xEED9, 0x6EF8, 0xFBCA, 0x6EFE, 0xCDE3, - 0x6EFF, 0xD8BB, 0x6F01, 0xE5DB, 0x6F02, 0xF8F7, 0x6F06, 0xF6D4, - 0x6F0F, 0xD7A9, 0x6F11, 0xCBC9, 0x6F14, 0xE6D1, 0x6F15, 0xF0CC, - 0x6F20, 0xD8AE, 0x6F22, 0xF9D3, 0x6F23, 0xD5FE, 0x6F2B, 0xD8BC, - 0x6F2C, 0xF2B0, 0x6F31, 0xE2AB, 0x6F32, 0xF3E8, 0x6F38, 0xEFC2, - 0x6F3F, 0xEDEC, 0x6F41, 0xE7B8, 0x6F51, 0xDAFE, 0x6F54, 0xCCBE, - 0x6F57, 0xF2FC, 0x6F58, 0xDAEB, 0x6F5A, 0xE2D8, 0x6F5B, 0xEDD6, - 0x6F5E, 0xD6D1, 0x6F5F, 0xE0B3, 0x6F62, 0xFCD2, 0x6F64, 0xEBC8, - 0x6F6D, 0xD3C1, 0x6F6E, 0xF0CD, 0x6F70, 0xCFF7, 0x6F7A, 0xEDD2, - 0x6F7C, 0xD4D8, 0x6F7D, 0xDCC9, 0x6F7E, 0xD7F1, 0x6F81, 0xDFBB, - 0x6F84, 0xF3A5, 0x6F88, 0xF4CD, 0x6F8D, 0xF1BF, 0x6F8E, 0xF8B1, - 0x6F90, 0xE9FA, 0x6F94, 0xFBCB, 0x6F97, 0xCAD5, 0x6FA3, 0xF9D4, - 0x6FA4, 0xF7CA, 0x6FA7, 0xD6C8, 0x6FAE, 0xFCE8, 0x6FAF, 0xF3BD, - 0x6FB1, 0xEEFE, 0x6FB3, 0xE7FE, 0x6FB9, 0xD3C2, 0x6FBE, 0xD3B6, - 0x6FC0, 0xCCAD, 0x6FC1, 0xF6FA, 0x6FC2, 0xD6B2, 0x6FC3, 0xD2D8, - 0x6FCA, 0xE7D8, 0x6FD5, 0xE3A5, 0x6FDA, 0xE7B9, 0x6FDF, 0xF0AD, - 0x6FE0, 0xFBCC, 0x6FE1, 0xEBA1, 0x6FE4, 0xD4A6, 0x6FE9, 0xFBCD, - 0x6FEB, 0xD5BD, 0x6FEC, 0xF1DF, 0x6FEF, 0xF6FB, 0x6FF1, 0xDEB4, - 0x6FFE, 0xD5EB, 0x7001, 0xE5C8, 0x7005, 0xFBA4, 0x7006, 0xD4B9, - 0x7009, 0xDEE1, 0x700B, 0xE4A3, 0x700F, 0xD7B7, 0x7011, 0xF8EE, - 0x7015, 0xDEB5, 0x7018, 0xD6D2, 0x701A, 0xF9D5, 0x701B, 0xE7BA, - 0x701C, 0xEBD5, 0x701D, 0xD5F7, 0x701E, 0xEFE7, 0x701F, 0xE1BE, - 0x7023, 0xFAAE, 0x7027, 0xD6E9, 0x7028, 0xD6EE, 0x702F, 0xE7BB, - 0x7037, 0xECCB, 0x703E, 0xD5B3, 0x704C, 0xCEB4, 0x7050, 0xFBA5, - 0x7051, 0xE1EE, 0x7058, 0xF7A8, 0x705D, 0xFBCE, 0x7063, 0xD8BD, - 0x706B, 0xFBFD, 0x7070, 0xFCE9, 0x7078, 0xCFB6, 0x707C, 0xEDC7, - 0x707D, 0xEEAC, 0x7085, 0xCCDD, 0x708A, 0xF6A7, 0x708E, 0xE6FA, - 0x7092, 0xF5A4, 0x7098, 0xFDDC, 0x7099, 0xEDB3, 0x709A, 0xCEC9, - 0x70A1, 0xEFE8, 0x70A4, 0xE1BF, 0x70AB, 0xFADB, 0x70AC, 0xCBE3, - 0x70AD, 0xF7A9, 0x70AF, 0xFBA6, 0x70B3, 0xDCB9, 0x70B7, 0xF1C0, - 0x70B8, 0xEDC8, 0x70B9, 0xEFC3, 0x70C8, 0xD6AD, 0x70CB, 0xFDCE, - 0x70CF, 0xE8A1, 0x70D8, 0xFBF4, 0x70D9, 0xD5A7, 0x70DD, 0xF1F6, - 0x70DF, 0xE6D3, 0x70F1, 0xCCDE, 0x70F9, 0xF8B2, 0x70FD, 0xDCEB, - 0x7104, 0xFDB6, 0x7109, 0xE5EA, 0x710C, 0xF1E0, 0x7119, 0xDBCC, - 0x711A, 0xDDCD, 0x711E, 0xD4C8, 0x7121, 0xD9ED, 0x7126, 0xF5A5, - 0x7130, 0xE6FB, 0x7136, 0xE6D4, 0x7147, 0xFDC8, 0x7149, 0xD6A1, - 0x714A, 0xFDBF, 0x714C, 0xFCD3, 0x714E, 0xEFA1, 0x7150, 0xE7BC, - 0x7156, 0xD1EE, 0x7159, 0xE6D5, 0x715C, 0xE9F2, 0x715E, 0xDFB0, - 0x7164, 0xD8E0, 0x7165, 0xFCBA, 0x7166, 0xFDAF, 0x7167, 0xF0CE, - 0x7169, 0xDBE1, 0x716C, 0xE5C9, 0x716E, 0xEDB4, 0x717D, 0xE0C3, - 0x7184, 0xE3D8, 0x7189, 0xE9FB, 0x718A, 0xEAA8, 0x718F, 0xFDB7, - 0x7192, 0xFBA7, 0x7194, 0xE9C2, 0x7199, 0xFDF7, 0x719F, 0xE2D9, - 0x71A2, 0xDCEC, 0x71AC, 0xE8A2, 0x71B1, 0xE6F0, 0x71B9, 0xFDF8, - 0x71BA, 0xFDF9, 0x71BE, 0xF6BF, 0x71C1, 0xE7A7, 0x71C3, 0xE6D7, - 0x71C8, 0xD4F3, 0x71C9, 0xD4C9, 0x71CE, 0xD6FA, 0x71D0, 0xD7F2, - 0x71D2, 0xE1C0, 0x71D4, 0xDBE2, 0x71D5, 0xE6D8, 0x71DF, 0xE7BD, - 0x71E5, 0xF0CF, 0x71E6, 0xF3BE, 0x71E7, 0xE2AC, 0x71ED, 0xF5B7, - 0x71EE, 0xE0F0, 0x71FB, 0xFDB8, 0x71FC, 0xE3E8, 0x71FE, 0xD4A7, - 0x71FF, 0xE8FC, 0x7200, 0xFAD2, 0x7206, 0xF8EF, 0x7210, 0xD6D3, - 0x721B, 0xD5B4, 0x722A, 0xF0D0, 0x722C, 0xF7F0, 0x722D, 0xEEB3, - 0x7230, 0xEABA, 0x7232, 0xEAD3, 0x7235, 0xEDC9, 0x7236, 0xDDAB, - 0x723A, 0xE5AC, 0x723B, 0xFDA1, 0x723D, 0xDFD0, 0x723E, 0xECB3, - 0x7240, 0xDFD1, 0x7246, 0xEDED, 0x7247, 0xF8B8, 0x7248, 0xF7FA, - 0x724C, 0xF8AB, 0x7252, 0xF4E0, 0x7258, 0xD4BA, 0x7259, 0xE4B3, - 0x725B, 0xE9DA, 0x725D, 0xDEB6, 0x725F, 0xD9BF, 0x7261, 0xD9C0, - 0x7262, 0xD6EF, 0x7267, 0xD9CC, 0x7269, 0xDAAA, 0x7272, 0xDFE5, - 0x7279, 0xF7E5, 0x727D, 0xCCB2, 0x7280, 0xDFF9, 0x7281, 0xD7E0, - 0x72A2, 0xD4BB, 0x72A7, 0xFDFA, 0x72AC, 0xCCB3, 0x72AF, 0xDBF3, - 0x72C0, 0xDFD2, 0x72C2, 0xCECA, 0x72C4, 0xEEDA, 0x72CE, 0xE4E4, - 0x72D0, 0xFBCF, 0x72D7, 0xCFB7, 0x72D9, 0xEEC3, 0x72E1, 0xCEEA, - 0x72E9, 0xE2AD, 0x72F8, 0xD7E1, 0x72F9, 0xFAF5, 0x72FC, 0xD5C9, - 0x72FD, 0xF8AC, 0x730A, 0xE7D9, 0x7316, 0xF3E9, 0x731B, 0xD8ED, - 0x731C, 0xE3C4, 0x731D, 0xF0F1, 0x7325, 0xE8E5, 0x7329, 0xE0FA, - 0x732A, 0xEEC4, 0x732B, 0xD9DE, 0x7336, 0xEBA2, 0x7337, 0xEBA3, - 0x733E, 0xFCC2, 0x733F, 0xEABB, 0x7344, 0xE8AB, 0x7345, 0xDEE2, - 0x7350, 0xEDEF, 0x7352, 0xE8A3, 0x7357, 0xCFF1, 0x7368, 0xD4BC, - 0x736A, 0xFCEA, 0x7370, 0xE7BE, 0x7372, 0xFCF2, 0x7375, 0xD6B4, - 0x7378, 0xE2AE, 0x737A, 0xD3B7, 0x737B, 0xFACC, 0x7384, 0xFADC, - 0x7386, 0xEDB5, 0x7387, 0xE1E3, 0x7389, 0xE8AC, 0x738B, 0xE8DD, - 0x738E, 0xEFE9, 0x7394, 0xF4BD, 0x7396, 0xCFB8, 0x7397, 0xE9DB, - 0x7398, 0xD1AC, 0x739F, 0xDAC7, 0x73A7, 0xEBC9, 0x73A9, 0xE8CC, - 0x73AD, 0xDEB7, 0x73B2, 0xD6BC, 0x73B3, 0xD3E5, 0x73B9, 0xFADD, - 0x73C0, 0xDAD6, 0x73C2, 0xCAB1, 0x73C9, 0xDAC8, 0x73CA, 0xDFA6, - 0x73CC, 0xF9B3, 0x73CD, 0xF2D2, 0x73CF, 0xCAC4, 0x73D6, 0xCECB, - 0x73D9, 0xCDF5, 0x73DD, 0xFDB0, 0x73DE, 0xD5A8, 0x73E0, 0xF1C1, - 0x73E3, 0xE2E9, 0x73E4, 0xDCCA, 0x73E5, 0xECB4, 0x73E6, 0xFAC0, - 0x73E9, 0xFBA8, 0x73EA, 0xD0A8, 0x73ED, 0xDAEC, 0x73F7, 0xD9EE, - 0x73F9, 0xE0FB, 0x73FD, 0xEFEA, 0x73FE, 0xFADE, 0x7401, 0xE0C4, - 0x7403, 0xCFB9, 0x7405, 0xD5CA, 0x7406, 0xD7E2, 0x7407, 0xE2AF, - 0x7409, 0xD7B8, 0x7413, 0xE8CD, 0x741B, 0xF6DA, 0x7420, 0xEFA2, - 0x7421, 0xE2DA, 0x7422, 0xF6FC, 0x7425, 0xFBD0, 0x7426, 0xD1AD, - 0x7428, 0xCDE4, 0x742A, 0xD1AE, 0x742B, 0xDCED, 0x742C, 0xE8CE, - 0x742E, 0xF0F9, 0x742F, 0xCEB5, 0x7430, 0xE6FC, 0x7433, 0xD7FB, - 0x7434, 0xD0D6, 0x7435, 0xDDF5, 0x7436, 0xF7F1, 0x7438, 0xF6FD, - 0x743A, 0xDBF7, 0x743F, 0xFBEA, 0x7440, 0xE9DC, 0x7441, 0xD9C1, - 0x7443, 0xF5F2, 0x7444, 0xE0C5, 0x744B, 0xEAD4, 0x7455, 0xF9C2, - 0x7457, 0xEABC, 0x7459, 0xD2C5, 0x745A, 0xFBD1, 0x745B, 0xE7C0, - 0x745C, 0xEBA5, 0x745E, 0xDFFA, 0x745F, 0xE3A2, 0x7460, 0xD7B9, - 0x7462, 0xE9C3, 0x7464, 0xE8FD, 0x7465, 0xE8AF, 0x7468, 0xF2D3, - 0x7469, 0xFBA9, 0x746A, 0xD8A5, 0x746F, 0xD5CB, 0x747E, 0xD0C8, - 0x7482, 0xD1AF, 0x7483, 0xD7E3, 0x7487, 0xE0C6, 0x7489, 0xD6A2, - 0x748B, 0xEDF0, 0x7498, 0xD7F3, 0x749C, 0xFCD4, 0x749E, 0xDAD7, - 0x749F, 0xCCDF, 0x74A1, 0xF2D4, 0x74A3, 0xD1B0, 0x74A5, 0xCCE0, - 0x74A7, 0xDBFD, 0x74A8, 0xF3BF, 0x74AA, 0xF0D1, 0x74B0, 0xFCBB, - 0x74B2, 0xE2B0, 0x74B5, 0xE6A5, 0x74B9, 0xE2DB, 0x74BD, 0xDFDE, - 0x74BF, 0xE0C7, 0x74C6, 0xF2EF, 0x74CA, 0xCCE1, 0x74CF, 0xD6EA, - 0x74D4, 0xE7C2, 0x74D8, 0xCEB6, 0x74DA, 0xF3C0, 0x74DC, 0xCDFE, - 0x74E0, 0xFBD2, 0x74E2, 0xF8F8, 0x74E3, 0xF7FB, 0x74E6, 0xE8BF, - 0x74EE, 0xE8B7, 0x74F7, 0xEDB6, 0x7501, 0xDCBA, 0x7504, 0xCCB4, - 0x7511, 0xF1F7, 0x7515, 0xE8B8, 0x7518, 0xCAF6, 0x751A, 0xE4A4, - 0x751B, 0xF4D6, 0x751F, 0xDFE6, 0x7523, 0xDFA7, 0x7525, 0xDFE7, - 0x7526, 0xE1C1, 0x7528, 0xE9C4, 0x752B, 0xDCCB, 0x752C, 0xE9C5, - 0x7530, 0xEFA3, 0x7531, 0xEBA6, 0x7532, 0xCBA3, 0x7533, 0xE3E9, - 0x7537, 0xD1FB, 0x7538, 0xEFA4, 0x753A, 0xEFEB, 0x7547, 0xD0B4, - 0x754C, 0xCDA3, 0x754F, 0xE8E6, 0x7551, 0xEFA5, 0x7553, 0xD3CC, - 0x7554, 0xDAED, 0x7559, 0xD7BA, 0x755B, 0xF2D5, 0x755C, 0xF5E5, - 0x755D, 0xD9EF, 0x7562, 0xF9B4, 0x7565, 0xD5D4, 0x7566, 0xFDCF, - 0x756A, 0xDBE3, 0x756F, 0xF1E1, 0x7570, 0xECB6, 0x7575, 0xFBFE, - 0x7576, 0xD3D7, 0x7578, 0xD1B1, 0x757A, 0xCBB1, 0x757F, 0xD1B2, - 0x7586, 0xCBB2, 0x7587, 0xF1C2, 0x758A, 0xF4E1, 0x758B, 0xF9B5, - 0x758E, 0xE1C3, 0x758F, 0xE1C2, 0x7591, 0xEBF7, 0x759D, 0xDFA8, - 0x75A5, 0xCBCA, 0x75AB, 0xE6B9, 0x75B1, 0xF8DE, 0x75B2, 0xF9AA, - 0x75B3, 0xCAF7, 0x75B5, 0xEDB7, 0x75B8, 0xD3B8, 0x75B9, 0xF2D6, - 0x75BC, 0xD4D9, 0x75BD, 0xEEC5, 0x75BE, 0xF2F0, 0x75C2, 0xCAB2, - 0x75C5, 0xDCBB, 0x75C7, 0xF1F8, 0x75CD, 0xECB7, 0x75D2, 0xE5CA, - 0x75D4, 0xF6C0, 0x75D5, 0xFDDD, 0x75D8, 0xD4E3, 0x75D9, 0xCCE2, - 0x75DB, 0xF7D4, 0x75E2, 0xD7E5, 0x75F0, 0xD3C3, 0x75F2, 0xD8A6, - 0x75F4, 0xF6C1, 0x75FA, 0xDDF6, 0x75FC, 0xCDC0, 0x7600, 0xE5DC, - 0x760D, 0xE5CB, 0x7619, 0xE1C4, 0x761F, 0xE8B0, 0x7620, 0xF4B0, - 0x7621, 0xF3EA, 0x7622, 0xDAEE, 0x7624, 0xD7BB, 0x7626, 0xE2B1, - 0x763B, 0xD7AA, 0x7642, 0xD6FB, 0x764C, 0xE4DF, 0x764E, 0xCAD6, - 0x7652, 0xEBA8, 0x7656, 0xDBFE, 0x7661, 0xF6C2, 0x7664, 0xEFBB, - 0x7669, 0xD4FD, 0x766C, 0xE0C8, 0x7670, 0xE8B9, 0x7672, 0xEFA6, - 0x7678, 0xCDA4, 0x767B, 0xD4F4, 0x767C, 0xDBA1, 0x767D, 0xDBDC, - 0x767E, 0xDBDD, 0x7684, 0xEEDC, 0x7686, 0xCBCB, 0x7687, 0xFCD5, - 0x768E, 0xCEEB, 0x7690, 0xCDC1, 0x7693, 0xFBD3, 0x76AE, 0xF9AB, - 0x76BA, 0xF5D4, 0x76BF, 0xD9A9, 0x76C2, 0xE9DD, 0x76C3, 0xDBCD, - 0x76C6, 0xDDCE, 0x76C8, 0xE7C3, 0x76CA, 0xECCC, 0x76D2, 0xF9EC, - 0x76D6, 0xCBCC, 0x76DB, 0xE0FC, 0x76DC, 0xD4A8, 0x76DE, 0xEDD3, - 0x76DF, 0xD8EF, 0x76E1, 0xF2D7, 0x76E3, 0xCAF8, 0x76E4, 0xDAEF, - 0x76E7, 0xD6D4, 0x76EE, 0xD9CD, 0x76F2, 0xD8EE, 0x76F4, 0xF2C1, - 0x76F8, 0xDFD3, 0x76FC, 0xDAF0, 0x76FE, 0xE2EA, 0x7701, 0xE0FD, - 0x7704, 0xD8F8, 0x7708, 0xF7AF, 0x7709, 0xDAB6, 0x770B, 0xCAD7, - 0x771E, 0xF2D8, 0x7720, 0xD8F9, 0x7729, 0xFADF, 0x7737, 0xCFEF, - 0x7738, 0xD9C2, 0x773A, 0xF0D2, 0x773C, 0xE4D1, 0x7740, 0xF3B7, - 0x774D, 0xFAE0, 0x775B, 0xEFEC, 0x7761, 0xE2B2, 0x7763, 0xD4BD, - 0x7766, 0xD9CE, 0x776B, 0xF4E2, 0x7779, 0xD4A9, 0x777E, 0xCDC2, - 0x777F, 0xE7DA, 0x778B, 0xF2D9, 0x7791, 0xD9AA, 0x779E, 0xD8BE, - 0x77A5, 0xDCAD, 0x77AC, 0xE2EB, 0x77AD, 0xD6FC, 0x77B0, 0xCAF9, - 0x77B3, 0xD4DA, 0x77BB, 0xF4D7, 0x77BC, 0xCCA1, 0x77BF, 0xCFBA, - 0x77D7, 0xF5B8, 0x77DB, 0xD9C3, 0x77DC, 0xD0E8, 0x77E2, 0xE3C5, - 0x77E3, 0xEBF8, 0x77E5, 0xF2B1, 0x77E9, 0xCFBB, 0x77ED, 0xD3AD, - 0x77EE, 0xE8E1, 0x77EF, 0xCEEC, 0x77F3, 0xE0B4, 0x7802, 0xDEE3, - 0x7812, 0xDDF7, 0x7825, 0xF2B2, 0x7826, 0xF3F6, 0x7827, 0xF6DB, - 0x782C, 0xD7FE, 0x7832, 0xF8DF, 0x7834, 0xF7F2, 0x7845, 0xD0A9, - 0x784F, 0xE6DA, 0x785D, 0xF5A6, 0x786B, 0xD7BC, 0x786C, 0xCCE3, - 0x786F, 0xE6DB, 0x787C, 0xDDDD, 0x7881, 0xD1B3, 0x7887, 0xEFED, - 0x788C, 0xD6DE, 0x788D, 0xE4F4, 0x788E, 0xE1EF, 0x7891, 0xDDF8, - 0x7897, 0xE8CF, 0x78A3, 0xCAE5, 0x78A7, 0xDCA1, 0x78A9, 0xE0B5, - 0x78BA, 0xFCAC, 0x78BB, 0xFCAD, 0x78BC, 0xD8A7, 0x78C1, 0xEDB8, - 0x78C5, 0xDBB6, 0x78CA, 0xD6F0, 0x78CB, 0xF3AF, 0x78CE, 0xCDA5, - 0x78D0, 0xDAF1, 0x78E8, 0xD8A8, 0x78EC, 0xCCE4, 0x78EF, 0xD1B4, - 0x78F5, 0xCAD8, 0x78FB, 0xDAF2, 0x7901, 0xF5A7, 0x790E, 0xF5A8, - 0x7916, 0xE6A6, 0x792A, 0xD5EC, 0x792B, 0xD5F8, 0x792C, 0xDAF3, - 0x793A, 0xE3C6, 0x793E, 0xDEE4, 0x7940, 0xDEE5, 0x7941, 0xD1B5, - 0x7947, 0xD1B6, 0x7948, 0xD1B7, 0x7949, 0xF2B3, 0x7950, 0xE9DE, - 0x7956, 0xF0D3, 0x7957, 0xF2B4, 0x795A, 0xF0D4, 0x795B, 0xCBE4, - 0x795C, 0xFBD4, 0x795D, 0xF5E6, 0x795E, 0xE3EA, 0x7960, 0xDEE6, - 0x7965, 0xDFD4, 0x7968, 0xF8F9, 0x796D, 0xF0AE, 0x797A, 0xD1B8, - 0x797F, 0xD6DF, 0x7981, 0xD0D7, 0x798D, 0xFCA1, 0x798E, 0xEFEE, - 0x798F, 0xDCD8, 0x7991, 0xE9DF, 0x79A6, 0xE5DD, 0x79A7, 0xFDFB, - 0x79AA, 0xE0C9, 0x79AE, 0xD6C9, 0x79B1, 0xD4AA, 0x79B3, 0xE5CC, - 0x79B9, 0xE9E0, 0x79BD, 0xD0D8, 0x79BE, 0xFCA2, 0x79BF, 0xD4BE, - 0x79C0, 0xE2B3, 0x79C1, 0xDEE7, 0x79C9, 0xDCBC, 0x79CA, 0xD2B6, - 0x79CB, 0xF5D5, 0x79D1, 0xCEA1, 0x79D2, 0xF5A9, 0x79D5, 0xDDF9, - 0x79D8, 0xDDFA, 0x79DF, 0xF0D5, 0x79E4, 0xF6DF, 0x79E6, 0xF2DA, - 0x79E7, 0xE4EB, 0x79E9, 0xF2F1, 0x79FB, 0xECB9, 0x7A00, 0xFDFC, - 0x7A05, 0xE1AA, 0x7A08, 0xCAD9, 0x7A0B, 0xEFEF, 0x7A0D, 0xF5AA, - 0x7A14, 0xECF9, 0x7A17, 0xF8AD, 0x7A19, 0xF2C2, 0x7A1A, 0xF6C3, - 0x7A1C, 0xD7D2, 0x7A1F, 0xF9A2, 0x7A20, 0xF0D6, 0x7A2E, 0xF0FA, - 0x7A31, 0xF6E0, 0x7A36, 0xE9F3, 0x7A37, 0xF2C3, 0x7A3B, 0xD4AB, - 0x7A3C, 0xCAB3, 0x7A3D, 0xCDA6, 0x7A3F, 0xCDC3, 0x7A40, 0xCDDA, - 0x7A46, 0xD9CF, 0x7A49, 0xF6C4, 0x7A4D, 0xEEDD, 0x7A4E, 0xE7C4, - 0x7A57, 0xE2B4, 0x7A61, 0xDFE2, 0x7A62, 0xE7DB, 0x7A69, 0xE8B1, - 0x7A6B, 0xFCAE, 0x7A70, 0xE5CD, 0x7A74, 0xFAEB, 0x7A76, 0xCFBC, - 0x7A79, 0xCFE2, 0x7A7A, 0xCDF6, 0x7A7D, 0xEFF0, 0x7A7F, 0xF4BE, - 0x7A81, 0xD4CD, 0x7A84, 0xF3B8, 0x7A88, 0xE9A1, 0x7A92, 0xF2F2, - 0x7A93, 0xF3EB, 0x7A95, 0xF0D7, 0x7A98, 0xCFD7, 0x7A9F, 0xCFDF, - 0x7AA9, 0xE8C0, 0x7AAA, 0xE8C1, 0x7AAE, 0xCFE3, 0x7AAF, 0xE9A2, - 0x7ABA, 0xD0AA, 0x7AC4, 0xF3C1, 0x7AC5, 0xD0AB, 0x7AC7, 0xD4E4, - 0x7ACA, 0xEFBC, 0x7ACB, 0xD8A1, 0x7AD7, 0xD9DF, 0x7AD9, 0xF3D7, - 0x7ADD, 0xDCBD, 0x7ADF, 0xCCE5, 0x7AE0, 0xEDF1, 0x7AE3, 0xF1E2, - 0x7AE5, 0xD4DB, 0x7AEA, 0xE2B5, 0x7AED, 0xCAE6, 0x7AEF, 0xD3AE, - 0x7AF6, 0xCCE6, 0x7AF9, 0xF1D3, 0x7AFA, 0xF5E7, 0x7AFF, 0xCADA, - 0x7B0F, 0xFBEE, 0x7B11, 0xE1C5, 0x7B19, 0xDFE9, 0x7B1B, 0xEEDE, - 0x7B1E, 0xF7C2, 0x7B20, 0xD8A2, 0x7B26, 0xDDAC, 0x7B2C, 0xF0AF, - 0x7B2D, 0xD6BD, 0x7B39, 0xE1AB, 0x7B46, 0xF9B6, 0x7B49, 0xD4F5, - 0x7B4B, 0xD0C9, 0x7B4C, 0xEFA7, 0x7B4D, 0xE2EC, 0x7B4F, 0xDBEA, - 0x7B50, 0xCECC, 0x7B51, 0xF5E8, 0x7B52, 0xF7D5, 0x7B54, 0xD3CD, - 0x7B56, 0xF3FE, 0x7B60, 0xD0B5, 0x7B6C, 0xE0FE, 0x7B6E, 0xDFFB, - 0x7B75, 0xE6DD, 0x7B7D, 0xE8A4, 0x7B87, 0xCBCD, 0x7B8B, 0xEFA8, - 0x7B8F, 0xEEB4, 0x7B94, 0xDAD8, 0x7B95, 0xD1B9, 0x7B97, 0xDFA9, - 0x7B9A, 0xF3B0, 0x7B9D, 0xCCC4, 0x7BA1, 0xCEB7, 0x7BAD, 0xEFA9, - 0x7BB1, 0xDFD5, 0x7BB4, 0xEDD7, 0x7BB8, 0xEEC6, 0x7BC0, 0xEFBD, - 0x7BC1, 0xFCD6, 0x7BC4, 0xDBF4, 0x7BC6, 0xEFAA, 0x7BC7, 0xF8B9, - 0x7BC9, 0xF5E9, 0x7BD2, 0xE3D9, 0x7BE0, 0xE1C6, 0x7BE4, 0xD4BF, - 0x7BE9, 0xDEE8, 0x7C07, 0xF0EA, 0x7C12, 0xF3C2, 0x7C1E, 0xD3AF, - 0x7C21, 0xCADB, 0x7C27, 0xFCD7, 0x7C2A, 0xEDD8, 0x7C2B, 0xE1C7, - 0x7C3D, 0xF4D8, 0x7C3E, 0xD6B3, 0x7C3F, 0xDDAD, 0x7C43, 0xD5BE, - 0x7C4C, 0xF1C3, 0x7C4D, 0xEEDF, 0x7C60, 0xD6EB, 0x7C64, 0xF4D9, - 0x7C6C, 0xD7E6, 0x7C73, 0xDAB7, 0x7C83, 0xDDFB, 0x7C89, 0xDDCF, - 0x7C92, 0xD8A3, 0x7C95, 0xDAD9, 0x7C97, 0xF0D8, 0x7C98, 0xEFC4, - 0x7C9F, 0xE1D8, 0x7CA5, 0xF1D4, 0x7CA7, 0xEDF2, 0x7CAE, 0xD5DB, - 0x7CB1, 0xD5DC, 0x7CB2, 0xF3C4, 0x7CB3, 0xCBD7, 0x7CB9, 0xE2B6, - 0x7CBE, 0xEFF1, 0x7CCA, 0xFBD5, 0x7CD6, 0xD3D8, 0x7CDE, 0xDDD0, - 0x7CDF, 0xF0D9, 0x7CE0, 0xCBB3, 0x7CE7, 0xD5DD, 0x7CFB, 0xCDA7, - 0x7CFE, 0xD0AC, 0x7D00, 0xD1BA, 0x7D02, 0xF1C4, 0x7D04, 0xE5B3, - 0x7D05, 0xFBF5, 0x7D06, 0xE9E1, 0x7D07, 0xFDE0, 0x7D08, 0xFCBC, - 0x7D0A, 0xDAA2, 0x7D0B, 0xDAA3, 0x7D0D, 0xD2A1, 0x7D10, 0xD2EF, - 0x7D14, 0xE2ED, 0x7D17, 0xDEE9, 0x7D18, 0xCEDC, 0x7D19, 0xF2B5, - 0x7D1A, 0xD0E4, 0x7D1B, 0xDDD1, 0x7D20, 0xE1C8, 0x7D21, 0xDBB7, - 0x7D22, 0xDFE3, 0x7D2B, 0xEDB9, 0x7D2C, 0xF1C5, 0x7D2E, 0xF3CF, - 0x7D2F, 0xD7AB, 0x7D30, 0xE1AC, 0x7D33, 0xE3EB, 0x7D35, 0xEEC7, - 0x7D39, 0xE1C9, 0x7D3A, 0xCAFA, 0x7D42, 0xF0FB, 0x7D43, 0xFAE1, - 0x7D44, 0xF0DA, 0x7D45, 0xCCE7, 0x7D46, 0xDAF4, 0x7D50, 0xCCBF, - 0x7D5E, 0xCEED, 0x7D61, 0xD5A9, 0x7D62, 0xFAE2, 0x7D66, 0xD0E5, - 0x7D68, 0xEBD6, 0x7D6A, 0xECDF, 0x7D6E, 0xDFFC, 0x7D71, 0xF7D6, - 0x7D72, 0xDEEA, 0x7D73, 0xCBB4, 0x7D76, 0xEFBE, 0x7D79, 0xCCB5, - 0x7D7F, 0xCFBD, 0x7D8E, 0xEFF2, 0x7D8F, 0xE2B7, 0x7D93, 0xCCE8, - 0x7D9C, 0xF0FC, 0x7DA0, 0xD6E0, 0x7DA2, 0xF1C6, 0x7DAC, 0xE2B8, - 0x7DAD, 0xEBAB, 0x7DB1, 0xCBB5, 0x7DB2, 0xD8D1, 0x7DB4, 0xF4CE, - 0x7DB5, 0xF3F7, 0x7DB8, 0xD7C6, 0x7DBA, 0xD1BB, 0x7DBB, 0xF7AA, - 0x7DBD, 0xEDCA, 0x7DBE, 0xD7D3, 0x7DBF, 0xD8FA, 0x7DC7, 0xF6C5, - 0x7DCA, 0xD1CC, 0x7DCB, 0xDDFC, 0x7DD6, 0xDFFD, 0x7DD8, 0xF9E5, - 0x7DDA, 0xE0CA, 0x7DDD, 0xF2FD, 0x7DDE, 0xD3B0, 0x7DE0, 0xF4F3, - 0x7DE1, 0xDAC9, 0x7DE3, 0xE6DE, 0x7DE8, 0xF8BA, 0x7DE9, 0xE8D0, - 0x7DEC, 0xD8FB, 0x7DEF, 0xEAD5, 0x7DF4, 0xD6A3, 0x7DFB, 0xF6C6, - 0x7E09, 0xF2DB, 0x7E0A, 0xE4FC, 0x7E15, 0xE8B2, 0x7E1B, 0xDADA, - 0x7E1D, 0xF2DC, 0x7E1E, 0xFBD6, 0x7E1F, 0xE9B2, 0x7E21, 0xEEAD, - 0x7E23, 0xFAE3, 0x7E2B, 0xDCEE, 0x7E2E, 0xF5EA, 0x7E2F, 0xE6E0, - 0x7E31, 0xF0FD, 0x7E37, 0xD7AC, 0x7E3D, 0xF5C5, 0x7E3E, 0xEEE0, - 0x7E41, 0xDBE5, 0x7E43, 0xDDDE, 0x7E46, 0xD9F0, 0x7E47, 0xE9A3, - 0x7E52, 0xF1F9, 0x7E54, 0xF2C4, 0x7E55, 0xE0CB, 0x7E5E, 0xE9A4, - 0x7E61, 0xE2B9, 0x7E69, 0xE3B1, 0x7E6A, 0xFCEB, 0x7E6B, 0xCDA8, - 0x7E6D, 0xCCB6, 0x7E70, 0xF0DB, 0x7E79, 0xE6BA, 0x7E7C, 0xCDA9, - 0x7E82, 0xF3C3, 0x7E8C, 0xE1D9, 0x7E8F, 0xEFAB, 0x7E93, 0xE7C5, - 0x7E96, 0xE0E9, 0x7E98, 0xF3C5, 0x7E9B, 0xD4C0, 0x7E9C, 0xD5BF, - 0x7F36, 0xDDAE, 0x7F38, 0xF9FC, 0x7F3A, 0xCCC0, 0x7F4C, 0xE5A2, - 0x7F50, 0xCEB8, 0x7F54, 0xD8D2, 0x7F55, 0xF9D6, 0x7F6A, 0xF1AA, - 0x7F6B, 0xCED1, 0x7F6E, 0xF6C7, 0x7F70, 0xDBEB, 0x7F72, 0xDFFE, - 0x7F75, 0xD8E1, 0x7F77, 0xF7F3, 0x7F79, 0xD7E7, 0x7F85, 0xD4FE, - 0x7F88, 0xD1BC, 0x7F8A, 0xE5CF, 0x7F8C, 0xCBB6, 0x7F8E, 0xDAB8, - 0x7F94, 0xCDC4, 0x7F9A, 0xD6BE, 0x7F9E, 0xE2BA, 0x7FA4, 0xCFD8, - 0x7FA8, 0xE0CC, 0x7FA9, 0xEBF9, 0x7FB2, 0xFDFD, 0x7FB8, 0xD7E8, - 0x7FB9, 0xCBD8, 0x7FBD, 0xE9E2, 0x7FC1, 0xE8BA, 0x7FC5, 0xE3C7, - 0x7FCA, 0xECCD, 0x7FCC, 0xECCE, 0x7FCE, 0xD6BF, 0x7FD2, 0xE3A7, - 0x7FD4, 0xDFD6, 0x7FD5, 0xFDE8, 0x7FDF, 0xEEE1, 0x7FE0, 0xF6A8, - 0x7FE1, 0xDDFD, 0x7FE9, 0xF8BB, 0x7FEB, 0xE8D1, 0x7FF0, 0xF9D7, - 0x7FF9, 0xCEEE, 0x7FFC, 0xECCF, 0x8000, 0xE9A5, 0x8001, 0xD6D5, - 0x8003, 0xCDC5, 0x8005, 0xEDBA, 0x8006, 0xD1BD, 0x8009, 0xCFBE, - 0x800C, 0xECBB, 0x8010, 0xD2B1, 0x8015, 0xCCE9, 0x8017, 0xD9C4, - 0x8018, 0xE9FC, 0x802D, 0xD1BE, 0x8033, 0xECBC, 0x8036, 0xE5AD, - 0x803D, 0xF7B0, 0x803F, 0xCCEA, 0x8043, 0xD3C4, 0x8046, 0xD6C0, - 0x804A, 0xD6FD, 0x8056, 0xE1A1, 0x8058, 0xDEBD, 0x805A, 0xF6A9, - 0x805E, 0xDAA4, 0x806F, 0xD6A4, 0x8070, 0xF5C6, 0x8072, 0xE1A2, - 0x8073, 0xE9C6, 0x8077, 0xF2C5, 0x807D, 0xF4E9, 0x807E, 0xD6EC, - 0x807F, 0xEBD3, 0x8084, 0xECBD, 0x8085, 0xE2DC, 0x8086, 0xDEEB, - 0x8087, 0xF0DC, 0x8089, 0xEBBF, 0x808B, 0xD7CE, 0x808C, 0xD1BF, - 0x8096, 0xF5AB, 0x809B, 0xF9FD, 0x809D, 0xCADC, 0x80A1, 0xCDC6, - 0x80A2, 0xF2B6, 0x80A5, 0xDDFE, 0x80A9, 0xCCB7, 0x80AA, 0xDBB8, - 0x80AF, 0xD0E9, 0x80B1, 0xCEDD, 0x80B2, 0xEBC0, 0x80B4, 0xFDA2, - 0x80BA, 0xF8CB, 0x80C3, 0xEAD6, 0x80C4, 0xF1B0, 0x80CC, 0xDBCE, - 0x80CE, 0xF7C3, 0x80DA, 0xDBCF, 0x80DB, 0xCBA4, 0x80DE, 0xF8E0, - 0x80E1, 0xFBD7, 0x80E4, 0xEBCA, 0x80E5, 0xE0A1, 0x80F1, 0xCECD, - 0x80F4, 0xD4DC, 0x80F8, 0xFDD8, 0x80FD, 0xD2F6, 0x8102, 0xF2B7, - 0x8105, 0xFAF6, 0x8106, 0xF6AA, 0x8107, 0xFAF7, 0x8108, 0xD8E6, - 0x810A, 0xF4B1, 0x8118, 0xE8D2, 0x811A, 0xCAC5, 0x811B, 0xCCEB, - 0x8123, 0xE2EE, 0x8129, 0xE2BB, 0x812B, 0xF7AD, 0x812F, 0xF8E1, - 0x8139, 0xF3EC, 0x813E, 0xDEA1, 0x814B, 0xE4FD, 0x814E, 0xE3EC, - 0x8150, 0xDDAF, 0x8151, 0xDDB0, 0x8154, 0xCBB7, 0x8155, 0xE8D3, - 0x8165, 0xE1A3, 0x8166, 0xD2E0, 0x816B, 0xF0FE, 0x8170, 0xE9A6, - 0x8171, 0xCBF2, 0x8178, 0xEDF3, 0x8179, 0xDCD9, 0x817A, 0xE0CD, - 0x817F, 0xF7DA, 0x8180, 0xDBB9, 0x8188, 0xCCAE, 0x818A, 0xDADB, - 0x818F, 0xCDC7, 0x819A, 0xDDB1, 0x819C, 0xD8AF, 0x819D, 0xE3A3, - 0x81A0, 0xCEEF, 0x81A3, 0xF2F3, 0x81A8, 0xF8B3, 0x81B3, 0xE0CE, - 0x81B5, 0xF5FD, 0x81BA, 0xEBEC, 0x81BD, 0xD3C5, 0x81BE, 0xFCEC, - 0x81BF, 0xD2DB, 0x81C0, 0xD4EB, 0x81C2, 0xDEA2, 0x81C6, 0xE5E6, - 0x81CD, 0xF0B0, 0x81D8, 0xD5C4, 0x81DF, 0xEDF4, 0x81E3, 0xE3ED, - 0x81E5, 0xE8C2, 0x81E7, 0xEDF5, 0x81E8, 0xD7FC, 0x81EA, 0xEDBB, - 0x81ED, 0xF6AB, 0x81F3, 0xF2B8, 0x81F4, 0xF6C8, 0x81FA, 0xD3E6, - 0x81FB, 0xF2DD, 0x81FC, 0xCFBF, 0x81FE, 0xEBAC, 0x8205, 0xCFC0, - 0x8207, 0xE6A8, 0x8208, 0xFDE9, 0x820A, 0xCFC1, 0x820C, 0xE0DF, - 0x820D, 0xDEEC, 0x8212, 0xE0A2, 0x821B, 0xF4BF, 0x821C, 0xE2EF, - 0x821E, 0xD9F1, 0x821F, 0xF1C7, 0x8221, 0xCBB8, 0x822A, 0xF9FE, - 0x822B, 0xDBBA, 0x822C, 0xDAF5, 0x8235, 0xF6EC, 0x8236, 0xDADC, - 0x8237, 0xFAE4, 0x8239, 0xE0CF, 0x8240, 0xDDB2, 0x8245, 0xE6A9, - 0x8247, 0xEFF3, 0x8259, 0xF3ED, 0x8264, 0xEBFA, 0x8266, 0xF9E6, - 0x826E, 0xCADD, 0x826F, 0xD5DE, 0x8271, 0xCADE, 0x8272, 0xDFE4, - 0x8276, 0xE6FD, 0x8278, 0xF5AC, 0x827E, 0xE4F5, 0x828B, 0xE9E3, - 0x828D, 0xEDCB, 0x828E, 0xCFE4, 0x8292, 0xD8D3, 0x8299, 0xDDB3, - 0x829A, 0xD4EC, 0x829D, 0xF2B9, 0x829F, 0xDFB7, 0x82A5, 0xCBCE, - 0x82A6, 0xFBD8, 0x82A9, 0xD0D9, 0x82AC, 0xDDD2, 0x82AD, 0xF7F4, - 0x82AE, 0xE7DC, 0x82AF, 0xE4A5, 0x82B1, 0xFCA3, 0x82B3, 0xDBBB, - 0x82B7, 0xF2BA, 0x82B8, 0xE9FD, 0x82B9, 0xD0CA, 0x82BB, 0xF5D6, - 0x82BC, 0xD9C5, 0x82BD, 0xE4B4, 0x82BF, 0xEDA7, 0x82D1, 0xEABD, - 0x82D2, 0xE6FE, 0x82D4, 0xF7C4, 0x82D5, 0xF5AD, 0x82D7, 0xD9E0, - 0x82DB, 0xCAB4, 0x82DE, 0xF8E2, 0x82DF, 0xCFC2, 0x82E1, 0xECBE, - 0x82E5, 0xE5B4, 0x82E6, 0xCDC8, 0x82E7, 0xEEC8, 0x82F1, 0xE7C8, - 0x82FD, 0xCDC9, 0x82FE, 0xF9B7, 0x8301, 0xF1E8, 0x8302, 0xD9F2, - 0x8303, 0xDBF5, 0x8304, 0xCAB5, 0x8305, 0xD9C6, 0x8309, 0xD8C9, - 0x8317, 0xD9AB, 0x8328, 0xEDBC, 0x832B, 0xD8D4, 0x832F, 0xDCDA, - 0x8331, 0xE2BC, 0x8334, 0xFCED, 0x8335, 0xECE0, 0x8336, 0xD2FE, - 0x8338, 0xE9C7, 0x8339, 0xE6AA, 0x8340, 0xE2F0, 0x8347, 0xFABB, - 0x8349, 0xF5AE, 0x834A, 0xFBAA, 0x834F, 0xECFB, 0x8351, 0xECBF, - 0x8352, 0xFCD8, 0x8373, 0xD4E5, 0x8377, 0xF9C3, 0x837B, 0xEEE2, - 0x8389, 0xD7E9, 0x838A, 0xEDF6, 0x838E, 0xDEED, 0x8396, 0xCCEC, - 0x8398, 0xE3EE, 0x839E, 0xE8D4, 0x83A2, 0xFAF8, 0x83A9, 0xDDB4, - 0x83AA, 0xE4B5, 0x83AB, 0xD8B0, 0x83BD, 0xD8D5, 0x83C1, 0xF4EA, - 0x83C5, 0xCEB9, 0x83C9, 0xD6E1, 0x83CA, 0xCFD2, 0x83CC, 0xD0B6, - 0x83D3, 0xCEA2, 0x83D6, 0xF3EE, 0x83DC, 0xF3F8, 0x83E9, 0xDCCC, - 0x83EB, 0xD0CB, 0x83EF, 0xFCA4, 0x83F0, 0xCDCA, 0x83F1, 0xD7D4, - 0x83F2, 0xDEA3, 0x83F4, 0xE4E0, 0x83F9, 0xEEC9, 0x83FD, 0xE2DD, - 0x8403, 0xF5FE, 0x8404, 0xD4AC, 0x840A, 0xD5D1, 0x840C, 0xD8F0, - 0x840D, 0xF8C3, 0x840E, 0xEAD7, 0x8429, 0xF5D7, 0x842C, 0xD8BF, - 0x8431, 0xFDC0, 0x8438, 0xEBAD, 0x843D, 0xD5AA, 0x8449, 0xE7A8, - 0x8457, 0xEECA, 0x845B, 0xCAE7, 0x8461, 0xF8E3, 0x8463, 0xD4DD, - 0x8466, 0xEAD8, 0x846B, 0xFBD9, 0x846C, 0xEDF7, 0x846F, 0xE5B5, - 0x8475, 0xD0AD, 0x847A, 0xF1F1, 0x8490, 0xE2BD, 0x8494, 0xE3C8, - 0x8499, 0xD9D5, 0x849C, 0xDFAA, 0x84A1, 0xDBBC, 0x84B2, 0xF8E4, - 0x84B8, 0xF1FA, 0x84BB, 0xE5B6, 0x84BC, 0xF3EF, 0x84BF, 0xFBDA, - 0x84C0, 0xE1E0, 0x84C2, 0xD9AC, 0x84C4, 0xF5EB, 0x84C6, 0xE0B6, - 0x84C9, 0xE9C8, 0x84CB, 0xCBCF, 0x84CD, 0xE3C9, 0x84D1, 0xDEEE, - 0x84DA, 0xE2BE, 0x84EC, 0xDCEF, 0x84EE, 0xD6A5, 0x84F4, 0xE2F1, - 0x84FC, 0xD6FE, 0x8511, 0xD9A1, 0x8513, 0xD8C0, 0x8514, 0xDCDB, - 0x8517, 0xEDBD, 0x8518, 0xDFB8, 0x851A, 0xEAA5, 0x851E, 0xD7AD, - 0x8521, 0xF3F9, 0x8523, 0xEDF8, 0x8525, 0xF5C7, 0x852C, 0xE1CA, - 0x852D, 0xEBE3, 0x852F, 0xF2DE, 0x853D, 0xF8CC, 0x853F, 0xEAD9, - 0x8541, 0xD3C6, 0x8543, 0xDBE6, 0x8549, 0xF5AF, 0x854E, 0xCEF0, - 0x8553, 0xE9FE, 0x8559, 0xFBB6, 0x8563, 0xE2F2, 0x8568, 0xCFF2, - 0x8569, 0xF7B9, 0x856A, 0xD9F3, 0x856D, 0xE1CB, 0x8584, 0xDADD, - 0x8587, 0xDAB9, 0x858F, 0xEBFB, 0x8591, 0xCBB9, 0x8594, 0xEDF9, - 0x859B, 0xE0E0, 0x85A6, 0xF4C0, 0x85A8, 0xFDBC, 0x85A9, 0xDFB1, - 0x85AA, 0xE3EF, 0x85AF, 0xE0A3, 0x85B0, 0xFDB9, 0x85BA, 0xF0B1, - 0x85C1, 0xCDCB, 0x85C9, 0xEDBE, 0x85CD, 0xD5C0, 0x85CE, 0xE3F0, - 0x85CF, 0xEDFA, 0x85D5, 0xE9E4, 0x85DC, 0xD5ED, 0x85DD, 0xE7DD, - 0x85E4, 0xD4F6, 0x85E5, 0xE5B7, 0x85E9, 0xDBE7, 0x85EA, 0xE2BF, - 0x85F7, 0xEECB, 0x85FA, 0xD7F4, 0x85FB, 0xF0DD, 0x85FF, 0xCEAB, - 0x8602, 0xE7DE, 0x8606, 0xD6D6, 0x8607, 0xE1CC, 0x860A, 0xE8B3, - 0x8616, 0xE5EE, 0x8617, 0xDCA2, 0x861A, 0xE0D0, 0x862D, 0xD5B5, - 0x863F, 0xD5A1, 0x864E, 0xFBDB, 0x8650, 0xF9CB, 0x8654, 0xCBF3, - 0x8655, 0xF4A5, 0x865B, 0xFAC8, 0x865C, 0xD6D7, 0x865E, 0xE9E5, - 0x865F, 0xFBDC, 0x8667, 0xFDD0, 0x8679, 0xFBF6, 0x868A, 0xDAA5, - 0x868C, 0xDBBD, 0x8693, 0xECE2, 0x86A3, 0xCDF7, 0x86A4, 0xF0DE, - 0x86A9, 0xF6C9, 0x86C7, 0xDEEF, 0x86CB, 0xD3B1, 0x86D4, 0xFCEE, - 0x86D9, 0xE8C3, 0x86DB, 0xF1C8, 0x86DF, 0xCEF1, 0x86E4, 0xF9ED, - 0x86ED, 0xF2F4, 0x86FE, 0xE4B6, 0x8700, 0xF5B9, 0x8702, 0xDCF0, - 0x8703, 0xE3F1, 0x8708, 0xE8A5, 0x8718, 0xF2BB, 0x871A, 0xDEA4, - 0x871C, 0xDACC, 0x874E, 0xCAE9, 0x8755, 0xE3DA, 0x8757, 0xFCD9, - 0x875F, 0xEADA, 0x8766, 0xF9C4, 0x8768, 0xE3A4, 0x8774, 0xFBDD, - 0x8776, 0xEFCA, 0x8778, 0xE8C4, 0x8782, 0xD5CC, 0x878D, 0xEBD7, - 0x879F, 0xD9AD, 0x87A2, 0xFBAB, 0x87B3, 0xD3D9, 0x87BA, 0xD5A2, - 0x87C4, 0xF6DE, 0x87E0, 0xDAF6, 0x87EC, 0xE0D1, 0x87EF, 0xE9A8, - 0x87F2, 0xF5F9, 0x87F9, 0xFAAF, 0x87FB, 0xEBFC, 0x87FE, 0xE0EA, - 0x8805, 0xE3B2, 0x881F, 0xD5C5, 0x8822, 0xF1E3, 0x8823, 0xD5EE, - 0x8831, 0xCDCC, 0x8836, 0xEDD9, 0x883B, 0xD8C1, 0x8840, 0xFAEC, - 0x8846, 0xF1EB, 0x884C, 0xFABC, 0x884D, 0xE6E2, 0x8852, 0xFAE5, - 0x8853, 0xE2FA, 0x8857, 0xCAB6, 0x8859, 0xE4B7, 0x885B, 0xEADB, - 0x885D, 0xF5FA, 0x8861, 0xFBAC, 0x8862, 0xCFC3, 0x8863, 0xEBFD, - 0x8868, 0xF8FA, 0x886B, 0xDFB9, 0x8870, 0xE1F1, 0x8872, 0xD2A4, - 0x8877, 0xF5FB, 0x887E, 0xD0DA, 0x887F, 0xD0DB, 0x8881, 0xEABE, - 0x8882, 0xD9B1, 0x8888, 0xCAB7, 0x888B, 0xD3E7, 0x888D, 0xF8E5, - 0x8892, 0xD3B2, 0x8896, 0xE2C0, 0x8897, 0xF2DF, 0x889E, 0xCDE5, - 0x88AB, 0xF9AC, 0x88B4, 0xCDCD, 0x88C1, 0xEEAE, 0x88C2, 0xD6AE, - 0x88CF, 0xD7EA, 0x88D4, 0xE7E0, 0x88D5, 0xEBAE, 0x88D9, 0xCFD9, - 0x88DC, 0xDCCD, 0x88DD, 0xEDFB, 0x88DF, 0xDEF0, 0x88E1, 0xD7EB, - 0x88E8, 0xDEA5, 0x88F3, 0xDFD7, 0x88F4, 0xDBD0, 0x88F5, 0xDBD1, - 0x88F8, 0xD5A3, 0x88FD, 0xF0B2, 0x8907, 0xDCDC, 0x8910, 0xCAE8, - 0x8912, 0xF8E6, 0x8913, 0xDCCE, 0x8918, 0xEADC, 0x8919, 0xDBD2, - 0x8925, 0xE9B3, 0x892A, 0xF7DB, 0x8936, 0xE3A8, 0x8938, 0xD7AE, - 0x893B, 0xE0E1, 0x8941, 0xCBBA, 0x8944, 0xE5D1, 0x895F, 0xD0DC, - 0x8964, 0xD5C1, 0x896A, 0xD8CA, 0x8972, 0xE3A9, 0x897F, 0xE0A4, - 0x8981, 0xE9A9, 0x8983, 0xD3C7, 0x8986, 0xDCDD, 0x8987, 0xF8AE, - 0x898B, 0xCCB8, 0x898F, 0xD0AE, 0x8993, 0xD8F2, 0x8996, 0xE3CA, - 0x89A1, 0xCCAF, 0x89A9, 0xD4AD, 0x89AA, 0xF6D1, 0x89B2, 0xD0CC, - 0x89BA, 0xCAC6, 0x89BD, 0xD5C2, 0x89C0, 0xCEBA, 0x89D2, 0xCAC7, - 0x89E3, 0xFAB0, 0x89F4, 0xDFD8, 0x89F8, 0xF5BA, 0x8A00, 0xE5EB, - 0x8A02, 0xEFF4, 0x8A03, 0xDDB5, 0x8A08, 0xCDAA, 0x8A0A, 0xE3F2, - 0x8A0C, 0xFBF7, 0x8A0E, 0xF7D0, 0x8A13, 0xFDBA, 0x8A16, 0xFDE1, - 0x8A17, 0xF6FE, 0x8A18, 0xD1C0, 0x8A1B, 0xE8C5, 0x8A1D, 0xE4B8, - 0x8A1F, 0xE1E8, 0x8A23, 0xCCC1, 0x8A25, 0xD2ED, 0x8A2A, 0xDBBE, - 0x8A2D, 0xE0E2, 0x8A31, 0xFAC9, 0x8A34, 0xE1CD, 0x8A36, 0xCAB8, - 0x8A3A, 0xF2E0, 0x8A3B, 0xF1C9, 0x8A50, 0xDEF1, 0x8A54, 0xF0DF, - 0x8A55, 0xF8C4, 0x8A5B, 0xEECC, 0x8A5E, 0xDEF2, 0x8A60, 0xE7C9, - 0x8A62, 0xE2F3, 0x8A63, 0xE7E1, 0x8A66, 0xE3CB, 0x8A69, 0xE3CC, - 0x8A6D, 0xCFF8, 0x8A6E, 0xEFAC, 0x8A70, 0xFDFE, 0x8A71, 0xFCA5, - 0x8A72, 0xFAB1, 0x8A73, 0xDFD9, 0x8A75, 0xE0D2, 0x8A79, 0xF4DA, - 0x8A85, 0xF1CA, 0x8A87, 0xCEA3, 0x8A8C, 0xF2BC, 0x8A8D, 0xECE3, - 0x8A93, 0xE0A5, 0x8A95, 0xF7AB, 0x8A98, 0xEBAF, 0x8A9E, 0xE5DE, - 0x8AA0, 0xE1A4, 0x8AA1, 0xCDAB, 0x8AA3, 0xD9F4, 0x8AA4, 0xE8A6, - 0x8AA5, 0xCDCE, 0x8AA6, 0xE1E9, 0x8AA8, 0xFCEF, 0x8AAA, 0xE0E3, - 0x8AB0, 0xE2C1, 0x8AB2, 0xCEA4, 0x8AB9, 0xDEA6, 0x8ABC, 0xEBFE, - 0x8ABE, 0xEBDD, 0x8ABF, 0xF0E0, 0x8AC2, 0xF4DB, 0x8AC4, 0xE2F4, - 0x8AC7, 0xD3C8, 0x8ACB, 0xF4EB, 0x8ACD, 0xEEB5, 0x8ACF, 0xF5D8, - 0x8AD2, 0xD5DF, 0x8AD6, 0xD6E5, 0x8ADB, 0xEBB0, 0x8ADC, 0xF4E3, - 0x8AE1, 0xE3CD, 0x8AE6, 0xF4F4, 0x8AE7, 0xFAB2, 0x8AEA, 0xEFF5, - 0x8AEB, 0xCADF, 0x8AED, 0xEBB1, 0x8AEE, 0xEDBF, 0x8AF1, 0xFDC9, - 0x8AF6, 0xE4A6, 0x8AF7, 0xF9A4, 0x8AF8, 0xF0B3, 0x8AFA, 0xE5EC, - 0x8AFE, 0xD1E7, 0x8B00, 0xD9C7, 0x8B01, 0xE4D7, 0x8B02, 0xEADD, - 0x8B04, 0xD4F7, 0x8B0E, 0xDABA, 0x8B10, 0xDACD, 0x8B14, 0xF9CC, - 0x8B16, 0xE1DA, 0x8B17, 0xDBBF, 0x8B19, 0xCCC5, 0x8B1A, 0xECD0, - 0x8B1B, 0xCBBB, 0x8B1D, 0xDEF3, 0x8B20, 0xE9AA, 0x8B28, 0xD9C8, - 0x8B2B, 0xEEE3, 0x8B2C, 0xD7BD, 0x8B33, 0xCFC4, 0x8B39, 0xD0CD, - 0x8B41, 0xFCA6, 0x8B49, 0xF1FB, 0x8B4E, 0xFDD2, 0x8B4F, 0xD1C1, - 0x8B58, 0xE3DB, 0x8B5A, 0xD3C9, 0x8B5C, 0xDCCF, 0x8B66, 0xCCED, - 0x8B6C, 0xDEA7, 0x8B6F, 0xE6BB, 0x8B70, 0xECA1, 0x8B74, 0xCCB9, - 0x8B77, 0xFBDE, 0x8B7D, 0xE7E2, 0x8B80, 0xD4C1, 0x8B8A, 0xDCA8, - 0x8B90, 0xE2C2, 0x8B92, 0xF3D8, 0x8B93, 0xE5D3, 0x8B96, 0xF3D9, - 0x8B9A, 0xF3C6, 0x8C37, 0xCDDB, 0x8C3F, 0xCDAC, 0x8C41, 0xFCC3, - 0x8C46, 0xD4E7, 0x8C48, 0xD1C2, 0x8C4A, 0xF9A5, 0x8C4C, 0xE8D5, - 0x8C55, 0xE3CE, 0x8C5A, 0xD4CA, 0x8C61, 0xDFDA, 0x8C6A, 0xFBDF, - 0x8C6B, 0xE7E3, 0x8C79, 0xF8FB, 0x8C7A, 0xE3CF, 0x8C82, 0xF5B0, - 0x8C8A, 0xD8E7, 0x8C8C, 0xD9C9, 0x8C9D, 0xF8AF, 0x8C9E, 0xEFF6, - 0x8CA0, 0xDDB6, 0x8CA1, 0xEEAF, 0x8CA2, 0xCDF8, 0x8CA7, 0xDEB8, - 0x8CA8, 0xFCA7, 0x8CA9, 0xF7FC, 0x8CAA, 0xF7B1, 0x8CAB, 0xCEBB, - 0x8CAC, 0xF4A1, 0x8CAF, 0xEECD, 0x8CB0, 0xE1AE, 0x8CB3, 0xECC3, - 0x8CB4, 0xCFFE, 0x8CB6, 0xF8BF, 0x8CB7, 0xD8E2, 0x8CB8, 0xD3E8, - 0x8CBB, 0xDEA8, 0x8CBC, 0xF4E4, 0x8CBD, 0xECC2, 0x8CBF, 0xD9F5, - 0x8CC0, 0xF9C5, 0x8CC1, 0xDDD3, 0x8CC2, 0xD6F1, 0x8CC3, 0xECFC, - 0x8CC4, 0xFCF0, 0x8CC7, 0xEDC0, 0x8CC8, 0xCAB9, 0x8CCA, 0xEEE4, - 0x8CD1, 0xF2E1, 0x8CD3, 0xDEB9, 0x8CDA, 0xD6F2, 0x8CDC, 0xDEF4, - 0x8CDE, 0xDFDB, 0x8CE0, 0xDBD3, 0x8CE2, 0xFAE7, 0x8CE3, 0xD8E3, - 0x8CE4, 0xF4C1, 0x8CE6, 0xDDB7, 0x8CEA, 0xF2F5, 0x8CED, 0xD4AE, - 0x8CF4, 0xD6F3, 0x8CFB, 0xDDB8, 0x8CFC, 0xCFC5, 0x8CFD, 0xDFDF, - 0x8D04, 0xF2BE, 0x8D05, 0xF6A1, 0x8D07, 0xEBCB, 0x8D08, 0xF1FC, - 0x8D0A, 0xF3C7, 0x8D0D, 0xE0EB, 0x8D13, 0xEDFC, 0x8D16, 0xE1DB, - 0x8D64, 0xEEE5, 0x8D66, 0xDEF5, 0x8D6B, 0xFAD3, 0x8D70, 0xF1CB, - 0x8D73, 0xD0AF, 0x8D74, 0xDDB9, 0x8D77, 0xD1C3, 0x8D85, 0xF5B1, - 0x8D8A, 0xEAC6, 0x8D99, 0xF0E1, 0x8DA3, 0xF6AC, 0x8DA8, 0xF5D9, - 0x8DB3, 0xF0EB, 0x8DBA, 0xDDBA, 0x8DBE, 0xF2BF, 0x8DC6, 0xF7C5, - 0x8DCB, 0xDBA2, 0x8DCC, 0xF2F6, 0x8DCF, 0xCABA, 0x8DDB, 0xF7F5, - 0x8DDD, 0xCBE5, 0x8DE1, 0xEEE6, 0x8DE3, 0xE0D3, 0x8DE8, 0xCEA5, - 0x8DEF, 0xD6D8, 0x8DF3, 0xD4AF, 0x8E0A, 0xE9C9, 0x8E0F, 0xD3CE, - 0x8E10, 0xF4C2, 0x8E1E, 0xCBE6, 0x8E2A, 0xF1A1, 0x8E30, 0xEBB2, - 0x8E35, 0xF1A2, 0x8E42, 0xEBB3, 0x8E44, 0xF0B4, 0x8E47, 0xCBF4, - 0x8E48, 0xD4B0, 0x8E49, 0xF3B2, 0x8E4A, 0xFBB7, 0x8E59, 0xF5EC, - 0x8E5F, 0xEEE7, 0x8E60, 0xF4B2, 0x8E74, 0xF5ED, 0x8E76, 0xCFF3, - 0x8E81, 0xF0E2, 0x8E87, 0xEECE, 0x8E8A, 0xF1CC, 0x8E8D, 0xE5B8, - 0x8EAA, 0xD7F5, 0x8EAB, 0xE3F3, 0x8EAC, 0xCFE5, 0x8EC0, 0xCFC6, - 0x8ECA, 0xF3B3, 0x8ECB, 0xE4D8, 0x8ECC, 0xCFF9, 0x8ECD, 0xCFDA, - 0x8ED2, 0xFACD, 0x8EDF, 0xE6E3, 0x8EEB, 0xF2E2, 0x8EF8, 0xF5EE, - 0x8EFB, 0xCABB, 0x8EFE, 0xE3DC, 0x8F03, 0xCEF2, 0x8F05, 0xD6D9, - 0x8F09, 0xEEB0, 0x8F12, 0xF4E5, 0x8F13, 0xD8C2, 0x8F14, 0xDCD0, - 0x8F15, 0xCCEE, 0x8F1B, 0xD5E0, 0x8F1C, 0xF6CA, 0x8F1D, 0xFDCA, - 0x8F1E, 0xD8D6, 0x8F1F, 0xF4CF, 0x8F26, 0xD6A6, 0x8F27, 0xDCBE, - 0x8F29, 0xDBD4, 0x8F2A, 0xD7C7, 0x8F2F, 0xF2FE, 0x8F33, 0xF1CD, - 0x8F38, 0xE2C3, 0x8F39, 0xDCDE, 0x8F3B, 0xDCDF, 0x8F3E, 0xEFAD, - 0x8F3F, 0xE6AB, 0x8F44, 0xF9DD, 0x8F45, 0xEABF, 0x8F49, 0xEFAE, - 0x8F4D, 0xF4D0, 0x8F4E, 0xCEF3, 0x8F5D, 0xE6AC, 0x8F5F, 0xCEDE, - 0x8F62, 0xD5F9, 0x8F9B, 0xE3F4, 0x8F9C, 0xCDD0, 0x8FA3, 0xD5B8, - 0x8FA6, 0xF7FD, 0x8FA8, 0xDCA9, 0x8FAD, 0xDEF6, 0x8FAF, 0xDCAA, - 0x8FB0, 0xF2E3, 0x8FB1, 0xE9B4, 0x8FB2, 0xD2DC, 0x8FC2, 0xE9E6, - 0x8FC5, 0xE3F6, 0x8FCE, 0xE7CA, 0x8FD1, 0xD0CE, 0x8FD4, 0xDAF7, - 0x8FE6, 0xCABC, 0x8FEA, 0xEEE8, 0x8FEB, 0xDADE, 0x8FED, 0xF2F7, - 0x8FF0, 0xE2FB, 0x8FF2, 0xCCA6, 0x8FF7, 0xDABB, 0x8FF9, 0xEEE9, - 0x8FFD, 0xF5DA, 0x9000, 0xF7DC, 0x9001, 0xE1EA, 0x9002, 0xCEC1, - 0x9003, 0xD4B1, 0x9005, 0xFDB1, 0x9006, 0xE6BD, 0x9008, 0xFBAD, - 0x900B, 0xF8E7, 0x900D, 0xE1CE, 0x900F, 0xF7E2, 0x9010, 0xF5EF, - 0x9011, 0xCFC7, 0x9014, 0xD4B2, 0x9015, 0xCCEF, 0x9017, 0xD4E8, - 0x9019, 0xEECF, 0x901A, 0xF7D7, 0x901D, 0xE0A6, 0x901E, 0xD6C1, - 0x901F, 0xE1DC, 0x9020, 0xF0E3, 0x9021, 0xF1E4, 0x9022, 0xDCF1, - 0x9023, 0xD6A7, 0x902E, 0xF4F5, 0x9031, 0xF1CE, 0x9032, 0xF2E4, - 0x9035, 0xD0B0, 0x9038, 0xECEF, 0x903C, 0xF9BA, 0x903E, 0xEBB5, - 0x9041, 0xD4ED, 0x9042, 0xE2C4, 0x9047, 0xE9E7, 0x904A, 0xEBB4, - 0x904B, 0xEAA1, 0x904D, 0xF8BC, 0x904E, 0xCEA6, 0x9050, 0xF9C6, - 0x9051, 0xFCDA, 0x9053, 0xD4B3, 0x9054, 0xD3B9, 0x9055, 0xEADE, - 0x9059, 0xE9AB, 0x905C, 0xE1E1, 0x905D, 0xD3CF, 0x905E, 0xF4F6, - 0x9060, 0xEAC0, 0x9061, 0xE1CF, 0x9063, 0xCCBA, 0x9069, 0xEEEA, - 0x906D, 0xF0E4, 0x906E, 0xF3B4, 0x906F, 0xD4EE, 0x9072, 0xF2C0, - 0x9075, 0xF1E5, 0x9077, 0xF4C3, 0x9078, 0xE0D4, 0x907A, 0xEBB6, - 0x907C, 0xD7A1, 0x907D, 0xCBE8, 0x907F, 0xF9AD, 0x9080, 0xE9AD, - 0x9081, 0xD8E4, 0x9082, 0xFAB3, 0x9083, 0xE2C5, 0x9084, 0xFCBD, - 0x9087, 0xECC4, 0x9088, 0xD8B1, 0x908A, 0xDCAB, 0x908F, 0xD5A4, - 0x9091, 0xEBE9, 0x9095, 0xE8BB, 0x9099, 0xD8D7, 0x90A2, 0xFBAE, - 0x90A3, 0xD1E1, 0x90A6, 0xDBC0, 0x90A8, 0xF5BE, 0x90AA, 0xDEF7, - 0x90AF, 0xCAFB, 0x90B0, 0xF7C6, 0x90B1, 0xCFC8, 0x90B5, 0xE1D0, - 0x90B8, 0xEED0, 0x90C1, 0xE9F4, 0x90CA, 0xCEF4, 0x90DE, 0xD5CD, - 0x90E1, 0xCFDB, 0x90E8, 0xDDBB, 0x90ED, 0xCEAC, 0x90F5, 0xE9E8, - 0x90FD, 0xD4B4, 0x9102, 0xE4C7, 0x9112, 0xF5DB, 0x9115, 0xFAC1, - 0x9119, 0xDEA9, 0x9127, 0xD4F8, 0x912D, 0xEFF7, 0x9132, 0xD3B3, - 0x9149, 0xEBB7, 0x914A, 0xEFF8, 0x914B, 0xF5DC, 0x914C, 0xEDCC, - 0x914D, 0xDBD5, 0x914E, 0xF1CF, 0x9152, 0xF1D0, 0x9162, 0xF5B2, - 0x9169, 0xD9AE, 0x916A, 0xD5AC, 0x916C, 0xE2C6, 0x9175, 0xFDA3, - 0x9177, 0xFBE5, 0x9178, 0xDFAB, 0x9187, 0xE2F5, 0x9189, 0xF6AD, - 0x918B, 0xF5B3, 0x918D, 0xF0B5, 0x9192, 0xE1A5, 0x919C, 0xF5DD, - 0x91AB, 0xECA2, 0x91AC, 0xEDFD, 0x91AE, 0xF5B4, 0x91AF, 0xFBB8, - 0x91B1, 0xDBA3, 0x91B4, 0xD6CA, 0x91B5, 0xCBD9, 0x91C0, 0xE5D4, - 0x91C7, 0xF3FA, 0x91C9, 0xEBB8, 0x91CB, 0xE0B7, 0x91CC, 0xD7EC, - 0x91CD, 0xF1EC, 0x91CE, 0xE5AF, 0x91CF, 0xD5E1, 0x91D0, 0xD7ED, - 0x91D1, 0xD1D1, 0x91D7, 0xE1F2, 0x91D8, 0xEFF9, 0x91DC, 0xDDBC, - 0x91DD, 0xF6DC, 0x91E3, 0xF0E5, 0x91E7, 0xF4C4, 0x91EA, 0xE9E9, - 0x91F5, 0xF3FB, 0x920D, 0xD4EF, 0x9210, 0xCCA2, 0x9211, 0xF7FE, - 0x9212, 0xDFBC, 0x9217, 0xEBCD, 0x921E, 0xD0B7, 0x9234, 0xD6C2, - 0x923A, 0xE8AD, 0x923F, 0xEFAF, 0x9240, 0xCBA5, 0x9245, 0xCBE9, - 0x9249, 0xFAE8, 0x9257, 0xCCC6, 0x925B, 0xE6E7, 0x925E, 0xEAC7, - 0x9262, 0xDBA4, 0x9264, 0xCFC9, 0x9265, 0xE2FC, 0x9266, 0xEFFA, - 0x9280, 0xEBDE, 0x9283, 0xF5C8, 0x9285, 0xD4DE, 0x9291, 0xE0D5, - 0x9293, 0xEFB0, 0x9296, 0xE2C7, 0x9298, 0xD9AF, 0x929C, 0xF9E7, - 0x92B3, 0xE7E5, 0x92B6, 0xCFCA, 0x92B7, 0xE1D1, 0x92B9, 0xE2C8, - 0x92CC, 0xEFFB, 0x92CF, 0xFAF9, 0x92D2, 0xDCF2, 0x92E4, 0xE0A7, - 0x92EA, 0xF8E8, 0x92F8, 0xCBEA, 0x92FC, 0xCBBC, 0x9304, 0xD6E2, - 0x9310, 0xF5DE, 0x9318, 0xF5DF, 0x931A, 0xEEB6, 0x931E, 0xE2F6, - 0x931F, 0xD3CA, 0x9320, 0xEFFC, 0x9321, 0xD1C4, 0x9322, 0xEFB1, - 0x9324, 0xD1C5, 0x9326, 0xD0DE, 0x9328, 0xD9E1, 0x932B, 0xE0B8, - 0x932E, 0xCDD1, 0x932F, 0xF3B9, 0x9348, 0xE7CC, 0x934A, 0xD6A8, - 0x934B, 0xCEA7, 0x934D, 0xD4B5, 0x9354, 0xE4C8, 0x935B, 0xD3B4, - 0x936E, 0xEBB9, 0x9375, 0xCBF5, 0x937C, 0xF6DD, 0x937E, 0xF1A3, - 0x938C, 0xCCC7, 0x9394, 0xE9CA, 0x9396, 0xE1F0, 0x939A, 0xF5E0, - 0x93A3, 0xFBAF, 0x93A7, 0xCBD1, 0x93AC, 0xFBE0, 0x93AD, 0xF2E5, - 0x93B0, 0xECF0, 0x93C3, 0xF0EC, 0x93D1, 0xEEEB, 0x93DE, 0xE9CB, - 0x93E1, 0xCCF0, 0x93E4, 0xD7AF, 0x93F6, 0xF3A1, 0x9404, 0xFCF5, - 0x9418, 0xF1A4, 0x9425, 0xE0D6, 0x942B, 0xEFB2, 0x9435, 0xF4D1, - 0x9438, 0xF7A1, 0x9444, 0xF1D1, 0x9451, 0xCAFC, 0x9452, 0xCAFD, - 0x945B, 0xCECE, 0x947D, 0xF3C8, 0x947F, 0xF3BA, 0x9577, 0xEDFE, - 0x9580, 0xDAA6, 0x9583, 0xE0EC, 0x9589, 0xF8CD, 0x958B, 0xCBD2, - 0x958F, 0xEBCE, 0x9591, 0xF9D8, 0x9592, 0xF9D9, 0x9593, 0xCAE0, - 0x9594, 0xDACA, 0x9598, 0xCBA6, 0x95A3, 0xCAC8, 0x95A4, 0xF9EE, - 0x95A5, 0xDBEC, 0x95A8, 0xD0B1, 0x95AD, 0xD5EF, 0x95B1, 0xE6F3, - 0x95BB, 0xE7A2, 0x95BC, 0xE4D9, 0x95C7, 0xE4E1, 0x95CA, 0xFCC4, - 0x95D4, 0xF9EF, 0x95D5, 0xCFF4, 0x95D6, 0xF7E6, 0x95DC, 0xCEBC, - 0x95E1, 0xF4C5, 0x95E2, 0xDCA3, 0x961C, 0xDDBD, 0x9621, 0xF4C6, - 0x962A, 0xF8A1, 0x962E, 0xE8D6, 0x9632, 0xDBC1, 0x963B, 0xF0E6, - 0x963F, 0xE4B9, 0x9640, 0xF6ED, 0x9642, 0xF9AE, 0x9644, 0xDDBE, - 0x964B, 0xD7B0, 0x964C, 0xD8E8, 0x964D, 0xCBBD, 0x9650, 0xF9DA, - 0x965B, 0xF8CE, 0x965C, 0xF9F0, 0x965D, 0xE0ED, 0x965E, 0xE3B3, - 0x965F, 0xF4B3, 0x9662, 0xEAC2, 0x9663, 0xF2E6, 0x9664, 0xF0B6, - 0x966A, 0xDBD6, 0x9670, 0xEBE4, 0x9673, 0xF2E7, 0x9675, 0xD7D5, - 0x9676, 0xD4B6, 0x9677, 0xF9E8, 0x9678, 0xD7C1, 0x967D, 0xE5D5, - 0x9685, 0xE9EA, 0x9686, 0xD7CC, 0x968A, 0xD3E9, 0x968B, 0xE2C9, - 0x968D, 0xFCDB, 0x968E, 0xCDAD, 0x9694, 0xCCB0, 0x9695, 0xEAA2, - 0x9698, 0xE4F6, 0x9699, 0xD0C0, 0x969B, 0xF0B7, 0x969C, 0xEEA1, - 0x96A3, 0xD7F6, 0x96A7, 0xE2CA, 0x96A8, 0xE2CB, 0x96AA, 0xFACF, - 0x96B1, 0xEBDF, 0x96B7, 0xD6CB, 0x96BB, 0xF4B4, 0x96C0, 0xEDCD, - 0x96C1, 0xE4D2, 0x96C4, 0xEAA9, 0x96C5, 0xE4BA, 0x96C6, 0xF3A2, - 0x96C7, 0xCDD2, 0x96C9, 0xF6CB, 0x96CB, 0xF1E6, 0x96CC, 0xEDC1, - 0x96CD, 0xE8BC, 0x96CE, 0xEED1, 0x96D5, 0xF0E7, 0x96D6, 0xE2CC, - 0x96D9, 0xE4AA, 0x96DB, 0xF5E1, 0x96DC, 0xEDDA, 0x96E2, 0xD7EE, - 0x96E3, 0xD1F1, 0x96E8, 0xE9EB, 0x96E9, 0xE9EC, 0x96EA, 0xE0E4, - 0x96EF, 0xDAA7, 0x96F0, 0xDDD4, 0x96F2, 0xEAA3, 0x96F6, 0xD6C3, - 0x96F7, 0xD6F4, 0x96F9, 0xDADF, 0x96FB, 0xEFB3, 0x9700, 0xE2CD, - 0x9706, 0xEFFD, 0x9707, 0xF2E8, 0x9711, 0xEFC5, 0x9713, 0xE7E7, - 0x9716, 0xD7FD, 0x9719, 0xE7CE, 0x971C, 0xDFDC, 0x971E, 0xF9C7, - 0x9727, 0xD9F6, 0x9730, 0xDFAC, 0x9732, 0xD6DA, 0x9739, 0xDCA4, - 0x973D, 0xF0B8, 0x9742, 0xD5FA, 0x9744, 0xE4F7, 0x9748, 0xD6C4, - 0x9751, 0xF4EC, 0x9756, 0xEFFE, 0x975C, 0xF0A1, 0x975E, 0xDEAA, - 0x9761, 0xDABC, 0x9762, 0xD8FC, 0x9769, 0xFAD4, 0x976D, 0xECE5, - 0x9774, 0xFCA8, 0x9777, 0xECE6, 0x977A, 0xD8CB, 0x978B, 0xFBB9, - 0x978D, 0xE4D3, 0x978F, 0xCDF9, 0x97A0, 0xCFD3, 0x97A8, 0xCAEA, - 0x97AB, 0xCFD4, 0x97AD, 0xF8BD, 0x97C6, 0xF4C7, 0x97CB, 0xEADF, - 0x97D3, 0xF9DB, 0x97DC, 0xD4B7, 0x97F3, 0xEBE5, 0x97F6, 0xE1D2, - 0x97FB, 0xEAA4, 0x97FF, 0xFAC2, 0x9800, 0xFBE1, 0x9801, 0xFAED, - 0x9802, 0xF0A2, 0x9803, 0xCCF1, 0x9805, 0xFAA3, 0x9806, 0xE2F7, - 0x9808, 0xE2CE, 0x980A, 0xE9F5, 0x980C, 0xE1EB, 0x9810, 0xE7E8, - 0x9811, 0xE8D7, 0x9812, 0xDAF8, 0x9813, 0xD4CB, 0x9817, 0xF7F6, - 0x9818, 0xD6C5, 0x982D, 0xD4E9, 0x9830, 0xFAFA, 0x9838, 0xCCF2, - 0x9839, 0xF7DD, 0x983B, 0xDEBA, 0x9846, 0xCEA8, 0x984C, 0xF0B9, - 0x984D, 0xE4FE, 0x984E, 0xE4C9, 0x9854, 0xE4D4, 0x9858, 0xEAC3, - 0x985A, 0xEFB4, 0x985E, 0xD7BE, 0x9865, 0xFBE2, 0x9867, 0xCDD3, - 0x986B, 0xEFB5, 0x986F, 0xFAE9, 0x98A8, 0xF9A6, 0x98AF, 0xDFBD, - 0x98B1, 0xF7C7, 0x98C4, 0xF8FD, 0x98C7, 0xF8FC, 0x98DB, 0xDEAB, - 0x98DC, 0xDBE8, 0x98DF, 0xE3DD, 0x98E1, 0xE1E2, 0x98E2, 0xD1C6, - 0x98ED, 0xF6D0, 0x98EE, 0xEBE6, 0x98EF, 0xDAF9, 0x98F4, 0xECC7, - 0x98FC, 0xDEF8, 0x98FD, 0xF8E9, 0x98FE, 0xE3DE, 0x9903, 0xCEF5, - 0x9909, 0xFAC3, 0x990A, 0xE5D7, 0x990C, 0xECC8, 0x9910, 0xF3C9, - 0x9913, 0xE4BB, 0x9918, 0xE6AE, 0x991E, 0xEFB6, 0x9920, 0xDCBF, - 0x9928, 0xCEBD, 0x9945, 0xD8C3, 0x9949, 0xD0CF, 0x994B, 0xCFFA, - 0x994C, 0xF3CA, 0x994D, 0xE0D7, 0x9951, 0xD1C7, 0x9952, 0xE9AE, - 0x9954, 0xE8BD, 0x9957, 0xFAC4, 0x9996, 0xE2CF, 0x9999, 0xFAC5, - 0x999D, 0xF9B8, 0x99A5, 0xDCE0, 0x99A8, 0xFBB0, 0x99AC, 0xD8A9, - 0x99AD, 0xE5DF, 0x99AE, 0xF9A7, 0x99B1, 0xF6EE, 0x99B3, 0xF6CC, - 0x99B4, 0xE2F8, 0x99B9, 0xECF1, 0x99C1, 0xDAE0, 0x99D0, 0xF1D2, - 0x99D1, 0xD2CC, 0x99D2, 0xCFCB, 0x99D5, 0xCABD, 0x99D9, 0xDDBF, - 0x99DD, 0xF6EF, 0x99DF, 0xDEF9, 0x99ED, 0xFAB4, 0x99F1, 0xD5AD, - 0x99FF, 0xF1E7, 0x9A01, 0xDEBE, 0x9A08, 0xDCC0, 0x9A0E, 0xD1C8, - 0x9A0F, 0xD1C9, 0x9A19, 0xF8BE, 0x9A2B, 0xCBF6, 0x9A30, 0xD4F9, - 0x9A36, 0xF5E2, 0x9A37, 0xE1D3, 0x9A40, 0xD8E9, 0x9A43, 0xF8FE, - 0x9A45, 0xCFCC, 0x9A4D, 0xFDA4, 0x9A55, 0xCEF6, 0x9A57, 0xFAD0, - 0x9A5A, 0xCCF3, 0x9A5B, 0xE6BE, 0x9A5F, 0xF6AE, 0x9A62, 0xD5F0, - 0x9A65, 0xD1CA, 0x9A69, 0xFCBE, 0x9A6A, 0xD5F1, 0x9AA8, 0xCDE9, - 0x9AB8, 0xFAB5, 0x9AD3, 0xE2D0, 0x9AD4, 0xF4F7, 0x9AD8, 0xCDD4, - 0x9AE5, 0xE7A3, 0x9AEE, 0xDBA5, 0x9B1A, 0xE2D1, 0x9B27, 0xD7A2, - 0x9B2A, 0xF7E3, 0x9B31, 0xEAA6, 0x9B3C, 0xD0A1, 0x9B41, 0xCEDA, - 0x9B42, 0xFBEB, 0x9B43, 0xDBA6, 0x9B44, 0xDBDE, 0x9B45, 0xD8E5, - 0x9B4F, 0xEAE0, 0x9B54, 0xD8AA, 0x9B5A, 0xE5E0, 0x9B6F, 0xD6DB, - 0x9B8E, 0xEFC6, 0x9B91, 0xF8EA, 0x9B9F, 0xE4D5, 0x9BAB, 0xCEF7, - 0x9BAE, 0xE0D8, 0x9BC9, 0xD7EF, 0x9BD6, 0xF4ED, 0x9BE4, 0xCDE6, - 0x9BE8, 0xCCF4, 0x9C0D, 0xF5E3, 0x9C10, 0xE4CA, 0x9C12, 0xDCE1, - 0x9C15, 0xF9C8, 0x9C25, 0xFCBF, 0x9C32, 0xE8A7, 0x9C3B, 0xD8C4, - 0x9C47, 0xCBBE, 0x9C49, 0xDCAE, 0x9C57, 0xD7F7, 0x9CE5, 0xF0E8, - 0x9CE7, 0xDDC0, 0x9CE9, 0xCFCD, 0x9CF3, 0xDCF3, 0x9CF4, 0xD9B0, - 0x9CF6, 0xE6E9, 0x9D09, 0xE4BC, 0x9D1B, 0xEAC4, 0x9D26, 0xE4EC, - 0x9D28, 0xE4E5, 0x9D3B, 0xFBF8, 0x9D51, 0xCCBB, 0x9D5D, 0xE4BD, - 0x9D60, 0xCDDC, 0x9D61, 0xD9F7, 0x9D6C, 0xDDDF, 0x9D72, 0xEDCE, - 0x9DA9, 0xD9D0, 0x9DAF, 0xE5A3, 0x9DB4, 0xF9CD, 0x9DC4, 0xCDAE, - 0x9DD7, 0xCFCE, 0x9DF2, 0xF6AF, 0x9DF8, 0xFDD3, 0x9DF9, 0xEBED, - 0x9DFA, 0xD6DC, 0x9E1A, 0xE5A4, 0x9E1E, 0xD5B6, 0x9E75, 0xD6DD, - 0x9E79, 0xF9E9, 0x9E7D, 0xE7A4, 0x9E7F, 0xD6E3, 0x9E92, 0xD1CB, - 0x9E93, 0xD6E4, 0x9E97, 0xD5F2, 0x9E9D, 0xDEFA, 0x9E9F, 0xD7F8, - 0x9EA5, 0xD8EA, 0x9EB4, 0xCFD5, 0x9EB5, 0xD8FD, 0x9EBB, 0xD8AB, - 0x9EBE, 0xFDCB, 0x9EC3, 0xFCDC, 0x9ECD, 0xE0A8, 0x9ECE, 0xD5F3, - 0x9ED1, 0xFDD9, 0x9ED4, 0xCCA3, 0x9ED8, 0xD9F9, 0x9EDB, 0xD3EA, - 0x9EDC, 0xF5F5, 0x9EDE, 0xEFC7, 0x9EE8, 0xD3DA, 0x9EF4, 0xDABD, - 0x9F07, 0xE8A8, 0x9F08, 0xDCAF, 0x9F0E, 0xF0A3, 0x9F13, 0xCDD5, - 0x9F20, 0xE0A9, 0x9F3B, 0xDEAC, 0x9F4A, 0xF0BA, 0x9F4B, 0xEEB1, - 0x9F4E, 0xEEB2, 0x9F52, 0xF6CD, 0x9F5F, 0xEED2, 0x9F61, 0xD6C6, - 0x9F67, 0xE0E5, 0x9F6A, 0xF3BB, 0x9F6C, 0xE5E1, 0x9F77, 0xE4CB, - 0x9F8D, 0xD7A3, 0x9F90, 0xDBC2, 0x9F95, 0xCAFE, 0x9F9C, 0xCFCF, - 0xAC00, 0xB0A1, 0xAC01, 0xB0A2, 0xAC02, 0x8141, 0xAC03, 0x8142, - 0xAC04, 0xB0A3, 0xAC05, 0x8143, 0xAC06, 0x8144, 0xAC07, 0xB0A4, - 0xAC08, 0xB0A5, 0xAC09, 0xB0A6, 0xAC0A, 0xB0A7, 0xAC0B, 0x8145, - 0xAC0C, 0x8146, 0xAC0D, 0x8147, 0xAC0E, 0x8148, 0xAC0F, 0x8149, - 0xAC10, 0xB0A8, 0xAC11, 0xB0A9, 0xAC12, 0xB0AA, 0xAC13, 0xB0AB, - 0xAC14, 0xB0AC, 0xAC15, 0xB0AD, 0xAC16, 0xB0AE, 0xAC17, 0xB0AF, - 0xAC18, 0x814A, 0xAC19, 0xB0B0, 0xAC1A, 0xB0B1, 0xAC1B, 0xB0B2, - 0xAC1C, 0xB0B3, 0xAC1D, 0xB0B4, 0xAC1E, 0x814B, 0xAC1F, 0x814C, - 0xAC20, 0xB0B5, 0xAC21, 0x814D, 0xAC22, 0x814E, 0xAC23, 0x814F, - 0xAC24, 0xB0B6, 0xAC25, 0x8150, 0xAC26, 0x8151, 0xAC27, 0x8152, - 0xAC28, 0x8153, 0xAC29, 0x8154, 0xAC2A, 0x8155, 0xAC2B, 0x8156, - 0xAC2C, 0xB0B7, 0xAC2D, 0xB0B8, 0xAC2E, 0x8157, 0xAC2F, 0xB0B9, - 0xAC30, 0xB0BA, 0xAC31, 0xB0BB, 0xAC32, 0x8158, 0xAC33, 0x8159, - 0xAC34, 0x815A, 0xAC35, 0x8161, 0xAC36, 0x8162, 0xAC37, 0x8163, - 0xAC38, 0xB0BC, 0xAC39, 0xB0BD, 0xAC3A, 0x8164, 0xAC3B, 0x8165, - 0xAC3C, 0xB0BE, 0xAC3D, 0x8166, 0xAC3E, 0x8167, 0xAC3F, 0x8168, - 0xAC40, 0xB0BF, 0xAC41, 0x8169, 0xAC42, 0x816A, 0xAC43, 0x816B, - 0xAC44, 0x816C, 0xAC45, 0x816D, 0xAC46, 0x816E, 0xAC47, 0x816F, - 0xAC48, 0x8170, 0xAC49, 0x8171, 0xAC4A, 0x8172, 0xAC4B, 0xB0C0, - 0xAC4C, 0x8173, 0xAC4D, 0xB0C1, 0xAC4E, 0x8174, 0xAC4F, 0x8175, - 0xAC50, 0x8176, 0xAC51, 0x8177, 0xAC52, 0x8178, 0xAC53, 0x8179, - 0xAC54, 0xB0C2, 0xAC55, 0x817A, 0xAC56, 0x8181, 0xAC57, 0x8182, - 0xAC58, 0xB0C3, 0xAC59, 0x8183, 0xAC5A, 0x8184, 0xAC5B, 0x8185, - 0xAC5C, 0xB0C4, 0xAC5D, 0x8186, 0xAC5E, 0x8187, 0xAC5F, 0x8188, - 0xAC60, 0x8189, 0xAC61, 0x818A, 0xAC62, 0x818B, 0xAC63, 0x818C, - 0xAC64, 0x818D, 0xAC65, 0x818E, 0xAC66, 0x818F, 0xAC67, 0x8190, - 0xAC68, 0x8191, 0xAC69, 0x8192, 0xAC6A, 0x8193, 0xAC6B, 0x8194, - 0xAC6C, 0x8195, 0xAC6D, 0x8196, 0xAC6E, 0x8197, 0xAC6F, 0x8198, - 0xAC70, 0xB0C5, 0xAC71, 0xB0C6, 0xAC72, 0x8199, 0xAC73, 0x819A, - 0xAC74, 0xB0C7, 0xAC75, 0x819B, 0xAC76, 0x819C, 0xAC77, 0xB0C8, - 0xAC78, 0xB0C9, 0xAC79, 0x819D, 0xAC7A, 0xB0CA, 0xAC7B, 0x819E, - 0xAC7C, 0x819F, 0xAC7D, 0x81A0, 0xAC7E, 0x81A1, 0xAC7F, 0x81A2, - 0xAC80, 0xB0CB, 0xAC81, 0xB0CC, 0xAC82, 0x81A3, 0xAC83, 0xB0CD, - 0xAC84, 0xB0CE, 0xAC85, 0xB0CF, 0xAC86, 0xB0D0, 0xAC87, 0x81A4, - 0xAC88, 0x81A5, 0xAC89, 0xB0D1, 0xAC8A, 0xB0D2, 0xAC8B, 0xB0D3, - 0xAC8C, 0xB0D4, 0xAC8D, 0x81A6, 0xAC8E, 0x81A7, 0xAC8F, 0x81A8, - 0xAC90, 0xB0D5, 0xAC91, 0x81A9, 0xAC92, 0x81AA, 0xAC93, 0x81AB, - 0xAC94, 0xB0D6, 0xAC95, 0x81AC, 0xAC96, 0x81AD, 0xAC97, 0x81AE, - 0xAC98, 0x81AF, 0xAC99, 0x81B0, 0xAC9A, 0x81B1, 0xAC9B, 0x81B2, - 0xAC9C, 0xB0D7, 0xAC9D, 0xB0D8, 0xAC9E, 0x81B3, 0xAC9F, 0xB0D9, - 0xACA0, 0xB0DA, 0xACA1, 0xB0DB, 0xACA2, 0x81B4, 0xACA3, 0x81B5, - 0xACA4, 0x81B6, 0xACA5, 0x81B7, 0xACA6, 0x81B8, 0xACA7, 0x81B9, - 0xACA8, 0xB0DC, 0xACA9, 0xB0DD, 0xACAA, 0xB0DE, 0xACAB, 0x81BA, - 0xACAC, 0xB0DF, 0xACAD, 0x81BB, 0xACAE, 0x81BC, 0xACAF, 0xB0E0, - 0xACB0, 0xB0E1, 0xACB1, 0x81BD, 0xACB2, 0x81BE, 0xACB3, 0x81BF, - 0xACB4, 0x81C0, 0xACB5, 0x81C1, 0xACB6, 0x81C2, 0xACB7, 0x81C3, - 0xACB8, 0xB0E2, 0xACB9, 0xB0E3, 0xACBA, 0x81C4, 0xACBB, 0xB0E4, - 0xACBC, 0xB0E5, 0xACBD, 0xB0E6, 0xACBE, 0x81C5, 0xACBF, 0x81C6, - 0xACC0, 0x81C7, 0xACC1, 0xB0E7, 0xACC2, 0x81C8, 0xACC3, 0x81C9, - 0xACC4, 0xB0E8, 0xACC5, 0x81CA, 0xACC6, 0x81CB, 0xACC7, 0x81CC, - 0xACC8, 0xB0E9, 0xACC9, 0x81CD, 0xACCA, 0x81CE, 0xACCB, 0x81CF, - 0xACCC, 0xB0EA, 0xACCD, 0x81D0, 0xACCE, 0x81D1, 0xACCF, 0x81D2, - 0xACD0, 0x81D3, 0xACD1, 0x81D4, 0xACD2, 0x81D5, 0xACD3, 0x81D6, - 0xACD4, 0x81D7, 0xACD5, 0xB0EB, 0xACD6, 0x81D8, 0xACD7, 0xB0EC, - 0xACD8, 0x81D9, 0xACD9, 0x81DA, 0xACDA, 0x81DB, 0xACDB, 0x81DC, - 0xACDC, 0x81DD, 0xACDD, 0x81DE, 0xACDE, 0x81DF, 0xACDF, 0x81E0, - 0xACE0, 0xB0ED, 0xACE1, 0xB0EE, 0xACE2, 0x81E1, 0xACE3, 0x81E2, - 0xACE4, 0xB0EF, 0xACE5, 0x81E3, 0xACE6, 0x81E4, 0xACE7, 0xB0F0, - 0xACE8, 0xB0F1, 0xACE9, 0x81E5, 0xACEA, 0xB0F2, 0xACEB, 0x81E6, - 0xACEC, 0xB0F3, 0xACED, 0x81E7, 0xACEE, 0x81E8, 0xACEF, 0xB0F4, - 0xACF0, 0xB0F5, 0xACF1, 0xB0F6, 0xACF2, 0x81E9, 0xACF3, 0xB0F7, - 0xACF4, 0x81EA, 0xACF5, 0xB0F8, 0xACF6, 0xB0F9, 0xACF7, 0x81EB, - 0xACF8, 0x81EC, 0xACF9, 0x81ED, 0xACFA, 0x81EE, 0xACFB, 0x81EF, - 0xACFC, 0xB0FA, 0xACFD, 0xB0FB, 0xACFE, 0x81F0, 0xACFF, 0x81F1, - 0xAD00, 0xB0FC, 0xAD01, 0x81F2, 0xAD02, 0x81F3, 0xAD03, 0x81F4, - 0xAD04, 0xB0FD, 0xAD05, 0x81F5, 0xAD06, 0xB0FE, 0xAD07, 0x81F6, - 0xAD08, 0x81F7, 0xAD09, 0x81F8, 0xAD0A, 0x81F9, 0xAD0B, 0x81FA, - 0xAD0C, 0xB1A1, 0xAD0D, 0xB1A2, 0xAD0E, 0x81FB, 0xAD0F, 0xB1A3, - 0xAD10, 0x81FC, 0xAD11, 0xB1A4, 0xAD12, 0x81FD, 0xAD13, 0x81FE, - 0xAD14, 0x8241, 0xAD15, 0x8242, 0xAD16, 0x8243, 0xAD17, 0x8244, - 0xAD18, 0xB1A5, 0xAD19, 0x8245, 0xAD1A, 0x8246, 0xAD1B, 0x8247, - 0xAD1C, 0xB1A6, 0xAD1D, 0x8248, 0xAD1E, 0x8249, 0xAD1F, 0x824A, - 0xAD20, 0xB1A7, 0xAD21, 0x824B, 0xAD22, 0x824C, 0xAD23, 0x824D, - 0xAD24, 0x824E, 0xAD25, 0x824F, 0xAD26, 0x8250, 0xAD27, 0x8251, - 0xAD28, 0x8252, 0xAD29, 0xB1A8, 0xAD2A, 0x8253, 0xAD2B, 0x8254, - 0xAD2C, 0xB1A9, 0xAD2D, 0xB1AA, 0xAD2E, 0x8255, 0xAD2F, 0x8256, - 0xAD30, 0x8257, 0xAD31, 0x8258, 0xAD32, 0x8259, 0xAD33, 0x825A, - 0xAD34, 0xB1AB, 0xAD35, 0xB1AC, 0xAD36, 0x8261, 0xAD37, 0x8262, - 0xAD38, 0xB1AD, 0xAD39, 0x8263, 0xAD3A, 0x8264, 0xAD3B, 0x8265, - 0xAD3C, 0xB1AE, 0xAD3D, 0x8266, 0xAD3E, 0x8267, 0xAD3F, 0x8268, - 0xAD40, 0x8269, 0xAD41, 0x826A, 0xAD42, 0x826B, 0xAD43, 0x826C, - 0xAD44, 0xB1AF, 0xAD45, 0xB1B0, 0xAD46, 0x826D, 0xAD47, 0xB1B1, - 0xAD48, 0x826E, 0xAD49, 0xB1B2, 0xAD4A, 0x826F, 0xAD4B, 0x8270, - 0xAD4C, 0x8271, 0xAD4D, 0x8272, 0xAD4E, 0x8273, 0xAD4F, 0x8274, - 0xAD50, 0xB1B3, 0xAD51, 0x8275, 0xAD52, 0x8276, 0xAD53, 0x8277, - 0xAD54, 0xB1B4, 0xAD55, 0x8278, 0xAD56, 0x8279, 0xAD57, 0x827A, - 0xAD58, 0xB1B5, 0xAD59, 0x8281, 0xAD5A, 0x8282, 0xAD5B, 0x8283, - 0xAD5C, 0x8284, 0xAD5D, 0x8285, 0xAD5E, 0x8286, 0xAD5F, 0x8287, - 0xAD60, 0x8288, 0xAD61, 0xB1B6, 0xAD62, 0x8289, 0xAD63, 0xB1B7, - 0xAD64, 0x828A, 0xAD65, 0x828B, 0xAD66, 0x828C, 0xAD67, 0x828D, - 0xAD68, 0x828E, 0xAD69, 0x828F, 0xAD6A, 0x8290, 0xAD6B, 0x8291, - 0xAD6C, 0xB1B8, 0xAD6D, 0xB1B9, 0xAD6E, 0x8292, 0xAD6F, 0x8293, - 0xAD70, 0xB1BA, 0xAD71, 0x8294, 0xAD72, 0x8295, 0xAD73, 0xB1BB, - 0xAD74, 0xB1BC, 0xAD75, 0xB1BD, 0xAD76, 0xB1BE, 0xAD77, 0x8296, - 0xAD78, 0x8297, 0xAD79, 0x8298, 0xAD7A, 0x8299, 0xAD7B, 0xB1BF, - 0xAD7C, 0xB1C0, 0xAD7D, 0xB1C1, 0xAD7E, 0x829A, 0xAD7F, 0xB1C2, - 0xAD80, 0x829B, 0xAD81, 0xB1C3, 0xAD82, 0xB1C4, 0xAD83, 0x829C, - 0xAD84, 0x829D, 0xAD85, 0x829E, 0xAD86, 0x829F, 0xAD87, 0x82A0, - 0xAD88, 0xB1C5, 0xAD89, 0xB1C6, 0xAD8A, 0x82A1, 0xAD8B, 0x82A2, - 0xAD8C, 0xB1C7, 0xAD8D, 0x82A3, 0xAD8E, 0x82A4, 0xAD8F, 0x82A5, - 0xAD90, 0xB1C8, 0xAD91, 0x82A6, 0xAD92, 0x82A7, 0xAD93, 0x82A8, - 0xAD94, 0x82A9, 0xAD95, 0x82AA, 0xAD96, 0x82AB, 0xAD97, 0x82AC, - 0xAD98, 0x82AD, 0xAD99, 0x82AE, 0xAD9A, 0x82AF, 0xAD9B, 0x82B0, - 0xAD9C, 0xB1C9, 0xAD9D, 0xB1CA, 0xAD9E, 0x82B1, 0xAD9F, 0x82B2, - 0xADA0, 0x82B3, 0xADA1, 0x82B4, 0xADA2, 0x82B5, 0xADA3, 0x82B6, - 0xADA4, 0xB1CB, 0xADA5, 0x82B7, 0xADA6, 0x82B8, 0xADA7, 0x82B9, - 0xADA8, 0x82BA, 0xADA9, 0x82BB, 0xADAA, 0x82BC, 0xADAB, 0x82BD, - 0xADAC, 0x82BE, 0xADAD, 0x82BF, 0xADAE, 0x82C0, 0xADAF, 0x82C1, - 0xADB0, 0x82C2, 0xADB1, 0x82C3, 0xADB2, 0x82C4, 0xADB3, 0x82C5, - 0xADB4, 0x82C6, 0xADB5, 0x82C7, 0xADB6, 0x82C8, 0xADB7, 0xB1CC, - 0xADB8, 0x82C9, 0xADB9, 0x82CA, 0xADBA, 0x82CB, 0xADBB, 0x82CC, - 0xADBC, 0x82CD, 0xADBD, 0x82CE, 0xADBE, 0x82CF, 0xADBF, 0x82D0, - 0xADC0, 0xB1CD, 0xADC1, 0xB1CE, 0xADC2, 0x82D1, 0xADC3, 0x82D2, - 0xADC4, 0xB1CF, 0xADC5, 0x82D3, 0xADC6, 0x82D4, 0xADC7, 0x82D5, - 0xADC8, 0xB1D0, 0xADC9, 0x82D6, 0xADCA, 0x82D7, 0xADCB, 0x82D8, - 0xADCC, 0x82D9, 0xADCD, 0x82DA, 0xADCE, 0x82DB, 0xADCF, 0x82DC, - 0xADD0, 0xB1D1, 0xADD1, 0xB1D2, 0xADD2, 0x82DD, 0xADD3, 0xB1D3, - 0xADD4, 0x82DE, 0xADD5, 0x82DF, 0xADD6, 0x82E0, 0xADD7, 0x82E1, - 0xADD8, 0x82E2, 0xADD9, 0x82E3, 0xADDA, 0x82E4, 0xADDB, 0x82E5, - 0xADDC, 0xB1D4, 0xADDD, 0x82E6, 0xADDE, 0x82E7, 0xADDF, 0x82E8, - 0xADE0, 0xB1D5, 0xADE1, 0x82E9, 0xADE2, 0x82EA, 0xADE3, 0x82EB, - 0xADE4, 0xB1D6, 0xADE5, 0x82EC, 0xADE6, 0x82ED, 0xADE7, 0x82EE, - 0xADE8, 0x82EF, 0xADE9, 0x82F0, 0xADEA, 0x82F1, 0xADEB, 0x82F2, - 0xADEC, 0x82F3, 0xADED, 0x82F4, 0xADEE, 0x82F5, 0xADEF, 0x82F6, - 0xADF0, 0x82F7, 0xADF1, 0x82F8, 0xADF2, 0x82F9, 0xADF3, 0x82FA, - 0xADF4, 0x82FB, 0xADF5, 0x82FC, 0xADF6, 0x82FD, 0xADF7, 0x82FE, - 0xADF8, 0xB1D7, 0xADF9, 0xB1D8, 0xADFA, 0x8341, 0xADFB, 0x8342, - 0xADFC, 0xB1D9, 0xADFD, 0x8343, 0xADFE, 0x8344, 0xADFF, 0xB1DA, - 0xAE00, 0xB1DB, 0xAE01, 0xB1DC, 0xAE02, 0x8345, 0xAE03, 0x8346, - 0xAE04, 0x8347, 0xAE05, 0x8348, 0xAE06, 0x8349, 0xAE07, 0x834A, - 0xAE08, 0xB1DD, 0xAE09, 0xB1DE, 0xAE0A, 0x834B, 0xAE0B, 0xB1DF, - 0xAE0C, 0x834C, 0xAE0D, 0xB1E0, 0xAE0E, 0x834D, 0xAE0F, 0x834E, - 0xAE10, 0x834F, 0xAE11, 0x8350, 0xAE12, 0x8351, 0xAE13, 0x8352, - 0xAE14, 0xB1E1, 0xAE15, 0x8353, 0xAE16, 0x8354, 0xAE17, 0x8355, - 0xAE18, 0x8356, 0xAE19, 0x8357, 0xAE1A, 0x8358, 0xAE1B, 0x8359, - 0xAE1C, 0x835A, 0xAE1D, 0x8361, 0xAE1E, 0x8362, 0xAE1F, 0x8363, - 0xAE20, 0x8364, 0xAE21, 0x8365, 0xAE22, 0x8366, 0xAE23, 0x8367, - 0xAE24, 0x8368, 0xAE25, 0x8369, 0xAE26, 0x836A, 0xAE27, 0x836B, - 0xAE28, 0x836C, 0xAE29, 0x836D, 0xAE2A, 0x836E, 0xAE2B, 0x836F, - 0xAE2C, 0x8370, 0xAE2D, 0x8371, 0xAE2E, 0x8372, 0xAE2F, 0x8373, - 0xAE30, 0xB1E2, 0xAE31, 0xB1E3, 0xAE32, 0x8374, 0xAE33, 0x8375, - 0xAE34, 0xB1E4, 0xAE35, 0x8376, 0xAE36, 0x8377, 0xAE37, 0xB1E5, - 0xAE38, 0xB1E6, 0xAE39, 0x8378, 0xAE3A, 0xB1E7, 0xAE3B, 0x8379, - 0xAE3C, 0x837A, 0xAE3D, 0x8381, 0xAE3E, 0x8382, 0xAE3F, 0x8383, - 0xAE40, 0xB1E8, 0xAE41, 0xB1E9, 0xAE42, 0x8384, 0xAE43, 0xB1EA, - 0xAE44, 0x8385, 0xAE45, 0xB1EB, 0xAE46, 0xB1EC, 0xAE47, 0x8386, - 0xAE48, 0x8387, 0xAE49, 0x8388, 0xAE4A, 0xB1ED, 0xAE4B, 0x8389, - 0xAE4C, 0xB1EE, 0xAE4D, 0xB1EF, 0xAE4E, 0xB1F0, 0xAE4F, 0x838A, - 0xAE50, 0xB1F1, 0xAE51, 0x838B, 0xAE52, 0x838C, 0xAE53, 0x838D, - 0xAE54, 0xB1F2, 0xAE55, 0x838E, 0xAE56, 0xB1F3, 0xAE57, 0x838F, - 0xAE58, 0x8390, 0xAE59, 0x8391, 0xAE5A, 0x8392, 0xAE5B, 0x8393, - 0xAE5C, 0xB1F4, 0xAE5D, 0xB1F5, 0xAE5E, 0x8394, 0xAE5F, 0xB1F6, - 0xAE60, 0xB1F7, 0xAE61, 0xB1F8, 0xAE62, 0x8395, 0xAE63, 0x8396, - 0xAE64, 0x8397, 0xAE65, 0xB1F9, 0xAE66, 0x8398, 0xAE67, 0x8399, - 0xAE68, 0xB1FA, 0xAE69, 0xB1FB, 0xAE6A, 0x839A, 0xAE6B, 0x839B, - 0xAE6C, 0xB1FC, 0xAE6D, 0x839C, 0xAE6E, 0x839D, 0xAE6F, 0x839E, - 0xAE70, 0xB1FD, 0xAE71, 0x839F, 0xAE72, 0x83A0, 0xAE73, 0x83A1, - 0xAE74, 0x83A2, 0xAE75, 0x83A3, 0xAE76, 0x83A4, 0xAE77, 0x83A5, - 0xAE78, 0xB1FE, 0xAE79, 0xB2A1, 0xAE7A, 0x83A6, 0xAE7B, 0xB2A2, - 0xAE7C, 0xB2A3, 0xAE7D, 0xB2A4, 0xAE7E, 0x83A7, 0xAE7F, 0x83A8, - 0xAE80, 0x83A9, 0xAE81, 0x83AA, 0xAE82, 0x83AB, 0xAE83, 0x83AC, - 0xAE84, 0xB2A5, 0xAE85, 0xB2A6, 0xAE86, 0x83AD, 0xAE87, 0x83AE, - 0xAE88, 0x83AF, 0xAE89, 0x83B0, 0xAE8A, 0x83B1, 0xAE8B, 0x83B2, - 0xAE8C, 0xB2A7, 0xAE8D, 0x83B3, 0xAE8E, 0x83B4, 0xAE8F, 0x83B5, - 0xAE90, 0x83B6, 0xAE91, 0x83B7, 0xAE92, 0x83B8, 0xAE93, 0x83B9, - 0xAE94, 0x83BA, 0xAE95, 0x83BB, 0xAE96, 0x83BC, 0xAE97, 0x83BD, - 0xAE98, 0x83BE, 0xAE99, 0x83BF, 0xAE9A, 0x83C0, 0xAE9B, 0x83C1, - 0xAE9C, 0x83C2, 0xAE9D, 0x83C3, 0xAE9E, 0x83C4, 0xAE9F, 0x83C5, - 0xAEA0, 0x83C6, 0xAEA1, 0x83C7, 0xAEA2, 0x83C8, 0xAEA3, 0x83C9, - 0xAEA4, 0x83CA, 0xAEA5, 0x83CB, 0xAEA6, 0x83CC, 0xAEA7, 0x83CD, - 0xAEA8, 0x83CE, 0xAEA9, 0x83CF, 0xAEAA, 0x83D0, 0xAEAB, 0x83D1, - 0xAEAC, 0x83D2, 0xAEAD, 0x83D3, 0xAEAE, 0x83D4, 0xAEAF, 0x83D5, - 0xAEB0, 0x83D6, 0xAEB1, 0x83D7, 0xAEB2, 0x83D8, 0xAEB3, 0x83D9, - 0xAEB4, 0x83DA, 0xAEB5, 0x83DB, 0xAEB6, 0x83DC, 0xAEB7, 0x83DD, - 0xAEB8, 0x83DE, 0xAEB9, 0x83DF, 0xAEBA, 0x83E0, 0xAEBB, 0x83E1, - 0xAEBC, 0xB2A8, 0xAEBD, 0xB2A9, 0xAEBE, 0xB2AA, 0xAEBF, 0x83E2, - 0xAEC0, 0xB2AB, 0xAEC1, 0x83E3, 0xAEC2, 0x83E4, 0xAEC3, 0x83E5, - 0xAEC4, 0xB2AC, 0xAEC5, 0x83E6, 0xAEC6, 0x83E7, 0xAEC7, 0x83E8, - 0xAEC8, 0x83E9, 0xAEC9, 0x83EA, 0xAECA, 0x83EB, 0xAECB, 0x83EC, - 0xAECC, 0xB2AD, 0xAECD, 0xB2AE, 0xAECE, 0x83ED, 0xAECF, 0xB2AF, - 0xAED0, 0xB2B0, 0xAED1, 0xB2B1, 0xAED2, 0x83EE, 0xAED3, 0x83EF, - 0xAED4, 0x83F0, 0xAED5, 0x83F1, 0xAED6, 0x83F2, 0xAED7, 0x83F3, - 0xAED8, 0xB2B2, 0xAED9, 0xB2B3, 0xAEDA, 0x83F4, 0xAEDB, 0x83F5, - 0xAEDC, 0xB2B4, 0xAEDD, 0x83F6, 0xAEDE, 0x83F7, 0xAEDF, 0x83F8, - 0xAEE0, 0x83F9, 0xAEE1, 0x83FA, 0xAEE2, 0x83FB, 0xAEE3, 0x83FC, - 0xAEE4, 0x83FD, 0xAEE5, 0x83FE, 0xAEE6, 0x8441, 0xAEE7, 0x8442, - 0xAEE8, 0xB2B5, 0xAEE9, 0x8443, 0xAEEA, 0x8444, 0xAEEB, 0xB2B6, - 0xAEEC, 0x8445, 0xAEED, 0xB2B7, 0xAEEE, 0x8446, 0xAEEF, 0x8447, - 0xAEF0, 0x8448, 0xAEF1, 0x8449, 0xAEF2, 0x844A, 0xAEF3, 0x844B, - 0xAEF4, 0xB2B8, 0xAEF5, 0x844C, 0xAEF6, 0x844D, 0xAEF7, 0x844E, - 0xAEF8, 0xB2B9, 0xAEF9, 0x844F, 0xAEFA, 0x8450, 0xAEFB, 0x8451, - 0xAEFC, 0xB2BA, 0xAEFD, 0x8452, 0xAEFE, 0x8453, 0xAEFF, 0x8454, - 0xAF00, 0x8455, 0xAF01, 0x8456, 0xAF02, 0x8457, 0xAF03, 0x8458, - 0xAF04, 0x8459, 0xAF05, 0x845A, 0xAF06, 0x8461, 0xAF07, 0xB2BB, - 0xAF08, 0xB2BC, 0xAF09, 0x8462, 0xAF0A, 0x8463, 0xAF0B, 0x8464, - 0xAF0C, 0x8465, 0xAF0D, 0xB2BD, 0xAF0E, 0x8466, 0xAF0F, 0x8467, - 0xAF10, 0xB2BE, 0xAF11, 0x8468, 0xAF12, 0x8469, 0xAF13, 0x846A, - 0xAF14, 0x846B, 0xAF15, 0x846C, 0xAF16, 0x846D, 0xAF17, 0x846E, - 0xAF18, 0x846F, 0xAF19, 0x8470, 0xAF1A, 0x8471, 0xAF1B, 0x8472, - 0xAF1C, 0x8473, 0xAF1D, 0x8474, 0xAF1E, 0x8475, 0xAF1F, 0x8476, - 0xAF20, 0x8477, 0xAF21, 0x8478, 0xAF22, 0x8479, 0xAF23, 0x847A, - 0xAF24, 0x8481, 0xAF25, 0x8482, 0xAF26, 0x8483, 0xAF27, 0x8484, - 0xAF28, 0x8485, 0xAF29, 0x8486, 0xAF2A, 0x8487, 0xAF2B, 0x8488, - 0xAF2C, 0xB2BF, 0xAF2D, 0xB2C0, 0xAF2E, 0x8489, 0xAF2F, 0x848A, - 0xAF30, 0xB2C1, 0xAF31, 0x848B, 0xAF32, 0xB2C2, 0xAF33, 0x848C, - 0xAF34, 0xB2C3, 0xAF35, 0x848D, 0xAF36, 0x848E, 0xAF37, 0x848F, - 0xAF38, 0x8490, 0xAF39, 0x8491, 0xAF3A, 0x8492, 0xAF3B, 0x8493, - 0xAF3C, 0xB2C4, 0xAF3D, 0xB2C5, 0xAF3E, 0x8494, 0xAF3F, 0xB2C6, - 0xAF40, 0x8495, 0xAF41, 0xB2C7, 0xAF42, 0xB2C8, 0xAF43, 0xB2C9, - 0xAF44, 0x8496, 0xAF45, 0x8497, 0xAF46, 0x8498, 0xAF47, 0x8499, - 0xAF48, 0xB2CA, 0xAF49, 0xB2CB, 0xAF4A, 0x849A, 0xAF4B, 0x849B, - 0xAF4C, 0x849C, 0xAF4D, 0x849D, 0xAF4E, 0x849E, 0xAF4F, 0x849F, - 0xAF50, 0xB2CC, 0xAF51, 0x84A0, 0xAF52, 0x84A1, 0xAF53, 0x84A2, - 0xAF54, 0x84A3, 0xAF55, 0x84A4, 0xAF56, 0x84A5, 0xAF57, 0x84A6, - 0xAF58, 0x84A7, 0xAF59, 0x84A8, 0xAF5A, 0x84A9, 0xAF5B, 0x84AA, - 0xAF5C, 0xB2CD, 0xAF5D, 0xB2CE, 0xAF5E, 0x84AB, 0xAF5F, 0x84AC, - 0xAF60, 0x84AD, 0xAF61, 0x84AE, 0xAF62, 0x84AF, 0xAF63, 0x84B0, - 0xAF64, 0xB2CF, 0xAF65, 0xB2D0, 0xAF66, 0x84B1, 0xAF67, 0x84B2, - 0xAF68, 0x84B3, 0xAF69, 0x84B4, 0xAF6A, 0x84B5, 0xAF6B, 0x84B6, - 0xAF6C, 0x84B7, 0xAF6D, 0x84B8, 0xAF6E, 0x84B9, 0xAF6F, 0x84BA, - 0xAF70, 0x84BB, 0xAF71, 0x84BC, 0xAF72, 0x84BD, 0xAF73, 0x84BE, - 0xAF74, 0x84BF, 0xAF75, 0x84C0, 0xAF76, 0x84C1, 0xAF77, 0x84C2, - 0xAF78, 0x84C3, 0xAF79, 0xB2D1, 0xAF7A, 0x84C4, 0xAF7B, 0x84C5, - 0xAF7C, 0x84C6, 0xAF7D, 0x84C7, 0xAF7E, 0x84C8, 0xAF7F, 0x84C9, - 0xAF80, 0xB2D2, 0xAF81, 0x84CA, 0xAF82, 0x84CB, 0xAF83, 0x84CC, - 0xAF84, 0xB2D3, 0xAF85, 0x84CD, 0xAF86, 0x84CE, 0xAF87, 0x84CF, - 0xAF88, 0xB2D4, 0xAF89, 0x84D0, 0xAF8A, 0x84D1, 0xAF8B, 0x84D2, - 0xAF8C, 0x84D3, 0xAF8D, 0x84D4, 0xAF8E, 0x84D5, 0xAF8F, 0x84D6, - 0xAF90, 0xB2D5, 0xAF91, 0xB2D6, 0xAF92, 0x84D7, 0xAF93, 0x84D8, - 0xAF94, 0x84D9, 0xAF95, 0xB2D7, 0xAF96, 0x84DA, 0xAF97, 0x84DB, - 0xAF98, 0x84DC, 0xAF99, 0x84DD, 0xAF9A, 0x84DE, 0xAF9B, 0x84DF, - 0xAF9C, 0xB2D8, 0xAF9D, 0x84E0, 0xAF9E, 0x84E1, 0xAF9F, 0x84E2, - 0xAFA0, 0x84E3, 0xAFA1, 0x84E4, 0xAFA2, 0x84E5, 0xAFA3, 0x84E6, - 0xAFA4, 0x84E7, 0xAFA5, 0x84E8, 0xAFA6, 0x84E9, 0xAFA7, 0x84EA, - 0xAFA8, 0x84EB, 0xAFA9, 0x84EC, 0xAFAA, 0x84ED, 0xAFAB, 0x84EE, - 0xAFAC, 0x84EF, 0xAFAD, 0x84F0, 0xAFAE, 0x84F1, 0xAFAF, 0x84F2, - 0xAFB0, 0x84F3, 0xAFB1, 0x84F4, 0xAFB2, 0x84F5, 0xAFB3, 0x84F6, - 0xAFB4, 0x84F7, 0xAFB5, 0x84F8, 0xAFB6, 0x84F9, 0xAFB7, 0x84FA, - 0xAFB8, 0xB2D9, 0xAFB9, 0xB2DA, 0xAFBA, 0x84FB, 0xAFBB, 0x84FC, - 0xAFBC, 0xB2DB, 0xAFBD, 0x84FD, 0xAFBE, 0x84FE, 0xAFBF, 0x8541, - 0xAFC0, 0xB2DC, 0xAFC1, 0x8542, 0xAFC2, 0x8543, 0xAFC3, 0x8544, - 0xAFC4, 0x8545, 0xAFC5, 0x8546, 0xAFC6, 0x8547, 0xAFC7, 0xB2DD, - 0xAFC8, 0xB2DE, 0xAFC9, 0xB2DF, 0xAFCA, 0x8548, 0xAFCB, 0xB2E0, - 0xAFCC, 0x8549, 0xAFCD, 0xB2E1, 0xAFCE, 0xB2E2, 0xAFCF, 0x854A, - 0xAFD0, 0x854B, 0xAFD1, 0x854C, 0xAFD2, 0x854D, 0xAFD3, 0x854E, - 0xAFD4, 0xB2E3, 0xAFD5, 0x854F, 0xAFD6, 0x8550, 0xAFD7, 0x8551, - 0xAFD8, 0x8552, 0xAFD9, 0x8553, 0xAFDA, 0x8554, 0xAFDB, 0x8555, - 0xAFDC, 0xB2E4, 0xAFDD, 0x8556, 0xAFDE, 0x8557, 0xAFDF, 0x8558, - 0xAFE0, 0x8559, 0xAFE1, 0x855A, 0xAFE2, 0x8561, 0xAFE3, 0x8562, - 0xAFE4, 0x8563, 0xAFE5, 0x8564, 0xAFE6, 0x8565, 0xAFE7, 0x8566, - 0xAFE8, 0xB2E5, 0xAFE9, 0xB2E6, 0xAFEA, 0x8567, 0xAFEB, 0x8568, - 0xAFEC, 0x8569, 0xAFED, 0x856A, 0xAFEE, 0x856B, 0xAFEF, 0x856C, - 0xAFF0, 0xB2E7, 0xAFF1, 0xB2E8, 0xAFF2, 0x856D, 0xAFF3, 0x856E, - 0xAFF4, 0xB2E9, 0xAFF5, 0x856F, 0xAFF6, 0x8570, 0xAFF7, 0x8571, - 0xAFF8, 0xB2EA, 0xAFF9, 0x8572, 0xAFFA, 0x8573, 0xAFFB, 0x8574, - 0xAFFC, 0x8575, 0xAFFD, 0x8576, 0xAFFE, 0x8577, 0xAFFF, 0x8578, - 0xB000, 0xB2EB, 0xB001, 0xB2EC, 0xB002, 0x8579, 0xB003, 0x857A, - 0xB004, 0xB2ED, 0xB005, 0x8581, 0xB006, 0x8582, 0xB007, 0x8583, - 0xB008, 0x8584, 0xB009, 0x8585, 0xB00A, 0x8586, 0xB00B, 0x8587, - 0xB00C, 0xB2EE, 0xB00D, 0x8588, 0xB00E, 0x8589, 0xB00F, 0x858A, - 0xB010, 0xB2EF, 0xB011, 0x858B, 0xB012, 0x858C, 0xB013, 0x858D, - 0xB014, 0xB2F0, 0xB015, 0x858E, 0xB016, 0x858F, 0xB017, 0x8590, - 0xB018, 0x8591, 0xB019, 0x8592, 0xB01A, 0x8593, 0xB01B, 0x8594, - 0xB01C, 0xB2F1, 0xB01D, 0xB2F2, 0xB01E, 0x8595, 0xB01F, 0x8596, - 0xB020, 0x8597, 0xB021, 0x8598, 0xB022, 0x8599, 0xB023, 0x859A, - 0xB024, 0x859B, 0xB025, 0x859C, 0xB026, 0x859D, 0xB027, 0x859E, - 0xB028, 0xB2F3, 0xB029, 0x859F, 0xB02A, 0x85A0, 0xB02B, 0x85A1, - 0xB02C, 0x85A2, 0xB02D, 0x85A3, 0xB02E, 0x85A4, 0xB02F, 0x85A5, - 0xB030, 0x85A6, 0xB031, 0x85A7, 0xB032, 0x85A8, 0xB033, 0x85A9, - 0xB034, 0x85AA, 0xB035, 0x85AB, 0xB036, 0x85AC, 0xB037, 0x85AD, - 0xB038, 0x85AE, 0xB039, 0x85AF, 0xB03A, 0x85B0, 0xB03B, 0x85B1, - 0xB03C, 0x85B2, 0xB03D, 0x85B3, 0xB03E, 0x85B4, 0xB03F, 0x85B5, - 0xB040, 0x85B6, 0xB041, 0x85B7, 0xB042, 0x85B8, 0xB043, 0x85B9, - 0xB044, 0xB2F4, 0xB045, 0xB2F5, 0xB046, 0x85BA, 0xB047, 0x85BB, - 0xB048, 0xB2F6, 0xB049, 0x85BC, 0xB04A, 0xB2F7, 0xB04B, 0x85BD, - 0xB04C, 0xB2F8, 0xB04D, 0x85BE, 0xB04E, 0xB2F9, 0xB04F, 0x85BF, - 0xB050, 0x85C0, 0xB051, 0x85C1, 0xB052, 0x85C2, 0xB053, 0xB2FA, - 0xB054, 0xB2FB, 0xB055, 0xB2FC, 0xB056, 0x85C3, 0xB057, 0xB2FD, - 0xB058, 0x85C4, 0xB059, 0xB2FE, 0xB05A, 0x85C5, 0xB05B, 0x85C6, - 0xB05C, 0x85C7, 0xB05D, 0xB3A1, 0xB05E, 0x85C8, 0xB05F, 0x85C9, - 0xB060, 0x85CA, 0xB061, 0x85CB, 0xB062, 0x85CC, 0xB063, 0x85CD, - 0xB064, 0x85CE, 0xB065, 0x85CF, 0xB066, 0x85D0, 0xB067, 0x85D1, - 0xB068, 0x85D2, 0xB069, 0x85D3, 0xB06A, 0x85D4, 0xB06B, 0x85D5, - 0xB06C, 0x85D6, 0xB06D, 0x85D7, 0xB06E, 0x85D8, 0xB06F, 0x85D9, - 0xB070, 0x85DA, 0xB071, 0x85DB, 0xB072, 0x85DC, 0xB073, 0x85DD, - 0xB074, 0x85DE, 0xB075, 0x85DF, 0xB076, 0x85E0, 0xB077, 0x85E1, - 0xB078, 0x85E2, 0xB079, 0x85E3, 0xB07A, 0x85E4, 0xB07B, 0x85E5, - 0xB07C, 0xB3A2, 0xB07D, 0xB3A3, 0xB07E, 0x85E6, 0xB07F, 0x85E7, - 0xB080, 0xB3A4, 0xB081, 0x85E8, 0xB082, 0x85E9, 0xB083, 0x85EA, - 0xB084, 0xB3A5, 0xB085, 0x85EB, 0xB086, 0x85EC, 0xB087, 0x85ED, - 0xB088, 0x85EE, 0xB089, 0x85EF, 0xB08A, 0x85F0, 0xB08B, 0x85F1, - 0xB08C, 0xB3A6, 0xB08D, 0xB3A7, 0xB08E, 0x85F2, 0xB08F, 0xB3A8, - 0xB090, 0x85F3, 0xB091, 0xB3A9, 0xB092, 0x85F4, 0xB093, 0x85F5, - 0xB094, 0x85F6, 0xB095, 0x85F7, 0xB096, 0x85F8, 0xB097, 0x85F9, - 0xB098, 0xB3AA, 0xB099, 0xB3AB, 0xB09A, 0xB3AC, 0xB09B, 0x85FA, - 0xB09C, 0xB3AD, 0xB09D, 0x85FB, 0xB09E, 0x85FC, 0xB09F, 0xB3AE, - 0xB0A0, 0xB3AF, 0xB0A1, 0xB3B0, 0xB0A2, 0xB3B1, 0xB0A3, 0x85FD, - 0xB0A4, 0x85FE, 0xB0A5, 0x8641, 0xB0A6, 0x8642, 0xB0A7, 0x8643, - 0xB0A8, 0xB3B2, 0xB0A9, 0xB3B3, 0xB0AA, 0x8644, 0xB0AB, 0xB3B4, - 0xB0AC, 0xB3B5, 0xB0AD, 0xB3B6, 0xB0AE, 0xB3B7, 0xB0AF, 0xB3B8, - 0xB0B0, 0x8645, 0xB0B1, 0xB3B9, 0xB0B2, 0x8646, 0xB0B3, 0xB3BA, - 0xB0B4, 0xB3BB, 0xB0B5, 0xB3BC, 0xB0B6, 0x8647, 0xB0B7, 0x8648, - 0xB0B8, 0xB3BD, 0xB0B9, 0x8649, 0xB0BA, 0x864A, 0xB0BB, 0x864B, - 0xB0BC, 0xB3BE, 0xB0BD, 0x864C, 0xB0BE, 0x864D, 0xB0BF, 0x864E, - 0xB0C0, 0x864F, 0xB0C1, 0x8650, 0xB0C2, 0x8651, 0xB0C3, 0x8652, - 0xB0C4, 0xB3BF, 0xB0C5, 0xB3C0, 0xB0C6, 0x8653, 0xB0C7, 0xB3C1, - 0xB0C8, 0xB3C2, 0xB0C9, 0xB3C3, 0xB0CA, 0x8654, 0xB0CB, 0x8655, - 0xB0CC, 0x8656, 0xB0CD, 0x8657, 0xB0CE, 0x8658, 0xB0CF, 0x8659, - 0xB0D0, 0xB3C4, 0xB0D1, 0xB3C5, 0xB0D2, 0x865A, 0xB0D3, 0x8661, - 0xB0D4, 0xB3C6, 0xB0D5, 0x8662, 0xB0D6, 0x8663, 0xB0D7, 0x8664, - 0xB0D8, 0xB3C7, 0xB0D9, 0x8665, 0xB0DA, 0x8666, 0xB0DB, 0x8667, - 0xB0DC, 0x8668, 0xB0DD, 0x8669, 0xB0DE, 0x866A, 0xB0DF, 0x866B, - 0xB0E0, 0xB3C8, 0xB0E1, 0x866C, 0xB0E2, 0x866D, 0xB0E3, 0x866E, - 0xB0E4, 0x866F, 0xB0E5, 0xB3C9, 0xB0E6, 0x8670, 0xB0E7, 0x8671, - 0xB0E8, 0x8672, 0xB0E9, 0x8673, 0xB0EA, 0x8674, 0xB0EB, 0x8675, - 0xB0EC, 0x8676, 0xB0ED, 0x8677, 0xB0EE, 0x8678, 0xB0EF, 0x8679, - 0xB0F0, 0x867A, 0xB0F1, 0x8681, 0xB0F2, 0x8682, 0xB0F3, 0x8683, - 0xB0F4, 0x8684, 0xB0F5, 0x8685, 0xB0F6, 0x8686, 0xB0F7, 0x8687, - 0xB0F8, 0x8688, 0xB0F9, 0x8689, 0xB0FA, 0x868A, 0xB0FB, 0x868B, - 0xB0FC, 0x868C, 0xB0FD, 0x868D, 0xB0FE, 0x868E, 0xB0FF, 0x868F, - 0xB100, 0x8690, 0xB101, 0x8691, 0xB102, 0x8692, 0xB103, 0x8693, - 0xB104, 0x8694, 0xB105, 0x8695, 0xB106, 0x8696, 0xB107, 0x8697, - 0xB108, 0xB3CA, 0xB109, 0xB3CB, 0xB10A, 0x8698, 0xB10B, 0xB3CC, - 0xB10C, 0xB3CD, 0xB10D, 0x8699, 0xB10E, 0x869A, 0xB10F, 0x869B, - 0xB110, 0xB3CE, 0xB111, 0x869C, 0xB112, 0xB3CF, 0xB113, 0xB3D0, - 0xB114, 0x869D, 0xB115, 0x869E, 0xB116, 0x869F, 0xB117, 0x86A0, - 0xB118, 0xB3D1, 0xB119, 0xB3D2, 0xB11A, 0x86A1, 0xB11B, 0xB3D3, - 0xB11C, 0xB3D4, 0xB11D, 0xB3D5, 0xB11E, 0x86A2, 0xB11F, 0x86A3, - 0xB120, 0x86A4, 0xB121, 0x86A5, 0xB122, 0x86A6, 0xB123, 0xB3D6, - 0xB124, 0xB3D7, 0xB125, 0xB3D8, 0xB126, 0x86A7, 0xB127, 0x86A8, - 0xB128, 0xB3D9, 0xB129, 0x86A9, 0xB12A, 0x86AA, 0xB12B, 0x86AB, - 0xB12C, 0xB3DA, 0xB12D, 0x86AC, 0xB12E, 0x86AD, 0xB12F, 0x86AE, - 0xB130, 0x86AF, 0xB131, 0x86B0, 0xB132, 0x86B1, 0xB133, 0x86B2, - 0xB134, 0xB3DB, 0xB135, 0xB3DC, 0xB136, 0x86B3, 0xB137, 0xB3DD, - 0xB138, 0xB3DE, 0xB139, 0xB3DF, 0xB13A, 0x86B4, 0xB13B, 0x86B5, - 0xB13C, 0x86B6, 0xB13D, 0x86B7, 0xB13E, 0x86B8, 0xB13F, 0x86B9, - 0xB140, 0xB3E0, 0xB141, 0xB3E1, 0xB142, 0x86BA, 0xB143, 0x86BB, - 0xB144, 0xB3E2, 0xB145, 0x86BC, 0xB146, 0x86BD, 0xB147, 0x86BE, - 0xB148, 0xB3E3, 0xB149, 0x86BF, 0xB14A, 0x86C0, 0xB14B, 0x86C1, - 0xB14C, 0x86C2, 0xB14D, 0x86C3, 0xB14E, 0x86C4, 0xB14F, 0x86C5, - 0xB150, 0xB3E4, 0xB151, 0xB3E5, 0xB152, 0x86C6, 0xB153, 0x86C7, - 0xB154, 0xB3E6, 0xB155, 0xB3E7, 0xB156, 0x86C8, 0xB157, 0x86C9, - 0xB158, 0xB3E8, 0xB159, 0x86CA, 0xB15A, 0x86CB, 0xB15B, 0x86CC, - 0xB15C, 0xB3E9, 0xB15D, 0x86CD, 0xB15E, 0x86CE, 0xB15F, 0x86CF, - 0xB160, 0xB3EA, 0xB161, 0x86D0, 0xB162, 0x86D1, 0xB163, 0x86D2, - 0xB164, 0x86D3, 0xB165, 0x86D4, 0xB166, 0x86D5, 0xB167, 0x86D6, - 0xB168, 0x86D7, 0xB169, 0x86D8, 0xB16A, 0x86D9, 0xB16B, 0x86DA, - 0xB16C, 0x86DB, 0xB16D, 0x86DC, 0xB16E, 0x86DD, 0xB16F, 0x86DE, - 0xB170, 0x86DF, 0xB171, 0x86E0, 0xB172, 0x86E1, 0xB173, 0x86E2, - 0xB174, 0x86E3, 0xB175, 0x86E4, 0xB176, 0x86E5, 0xB177, 0x86E6, - 0xB178, 0xB3EB, 0xB179, 0xB3EC, 0xB17A, 0x86E7, 0xB17B, 0x86E8, - 0xB17C, 0xB3ED, 0xB17D, 0x86E9, 0xB17E, 0x86EA, 0xB17F, 0x86EB, - 0xB180, 0xB3EE, 0xB181, 0x86EC, 0xB182, 0xB3EF, 0xB183, 0x86ED, - 0xB184, 0x86EE, 0xB185, 0x86EF, 0xB186, 0x86F0, 0xB187, 0x86F1, - 0xB188, 0xB3F0, 0xB189, 0xB3F1, 0xB18A, 0x86F2, 0xB18B, 0xB3F2, - 0xB18C, 0x86F3, 0xB18D, 0xB3F3, 0xB18E, 0x86F4, 0xB18F, 0x86F5, - 0xB190, 0x86F6, 0xB191, 0x86F7, 0xB192, 0xB3F4, 0xB193, 0xB3F5, - 0xB194, 0xB3F6, 0xB195, 0x86F8, 0xB196, 0x86F9, 0xB197, 0x86FA, - 0xB198, 0xB3F7, 0xB199, 0x86FB, 0xB19A, 0x86FC, 0xB19B, 0x86FD, - 0xB19C, 0xB3F8, 0xB19D, 0x86FE, 0xB19E, 0x8741, 0xB19F, 0x8742, - 0xB1A0, 0x8743, 0xB1A1, 0x8744, 0xB1A2, 0x8745, 0xB1A3, 0x8746, - 0xB1A4, 0x8747, 0xB1A5, 0x8748, 0xB1A6, 0x8749, 0xB1A7, 0x874A, - 0xB1A8, 0xB3F9, 0xB1A9, 0x874B, 0xB1AA, 0x874C, 0xB1AB, 0x874D, - 0xB1AC, 0x874E, 0xB1AD, 0x874F, 0xB1AE, 0x8750, 0xB1AF, 0x8751, - 0xB1B0, 0x8752, 0xB1B1, 0x8753, 0xB1B2, 0x8754, 0xB1B3, 0x8755, - 0xB1B4, 0x8756, 0xB1B5, 0x8757, 0xB1B6, 0x8758, 0xB1B7, 0x8759, - 0xB1B8, 0x875A, 0xB1B9, 0x8761, 0xB1BA, 0x8762, 0xB1BB, 0x8763, - 0xB1BC, 0x8764, 0xB1BD, 0x8765, 0xB1BE, 0x8766, 0xB1BF, 0x8767, - 0xB1C0, 0x8768, 0xB1C1, 0x8769, 0xB1C2, 0x876A, 0xB1C3, 0x876B, - 0xB1C4, 0x876C, 0xB1C5, 0x876D, 0xB1C6, 0x876E, 0xB1C7, 0x876F, - 0xB1C8, 0x8770, 0xB1C9, 0x8771, 0xB1CA, 0x8772, 0xB1CB, 0x8773, - 0xB1CC, 0xB3FA, 0xB1CD, 0x8774, 0xB1CE, 0x8775, 0xB1CF, 0x8776, - 0xB1D0, 0xB3FB, 0xB1D1, 0x8777, 0xB1D2, 0x8778, 0xB1D3, 0x8779, - 0xB1D4, 0xB3FC, 0xB1D5, 0x877A, 0xB1D6, 0x8781, 0xB1D7, 0x8782, - 0xB1D8, 0x8783, 0xB1D9, 0x8784, 0xB1DA, 0x8785, 0xB1DB, 0x8786, - 0xB1DC, 0xB3FD, 0xB1DD, 0xB3FE, 0xB1DE, 0x8787, 0xB1DF, 0xB4A1, - 0xB1E0, 0x8788, 0xB1E1, 0x8789, 0xB1E2, 0x878A, 0xB1E3, 0x878B, - 0xB1E4, 0x878C, 0xB1E5, 0x878D, 0xB1E6, 0x878E, 0xB1E7, 0x878F, - 0xB1E8, 0xB4A2, 0xB1E9, 0xB4A3, 0xB1EA, 0x8790, 0xB1EB, 0x8791, - 0xB1EC, 0xB4A4, 0xB1ED, 0x8792, 0xB1EE, 0x8793, 0xB1EF, 0x8794, - 0xB1F0, 0xB4A5, 0xB1F1, 0x8795, 0xB1F2, 0x8796, 0xB1F3, 0x8797, - 0xB1F4, 0x8798, 0xB1F5, 0x8799, 0xB1F6, 0x879A, 0xB1F7, 0x879B, - 0xB1F8, 0x879C, 0xB1F9, 0xB4A6, 0xB1FA, 0x879D, 0xB1FB, 0xB4A7, - 0xB1FC, 0x879E, 0xB1FD, 0xB4A8, 0xB1FE, 0x879F, 0xB1FF, 0x87A0, - 0xB200, 0x87A1, 0xB201, 0x87A2, 0xB202, 0x87A3, 0xB203, 0x87A4, - 0xB204, 0xB4A9, 0xB205, 0xB4AA, 0xB206, 0x87A5, 0xB207, 0x87A6, - 0xB208, 0xB4AB, 0xB209, 0x87A7, 0xB20A, 0x87A8, 0xB20B, 0xB4AC, - 0xB20C, 0xB4AD, 0xB20D, 0x87A9, 0xB20E, 0x87AA, 0xB20F, 0x87AB, - 0xB210, 0x87AC, 0xB211, 0x87AD, 0xB212, 0x87AE, 0xB213, 0x87AF, - 0xB214, 0xB4AE, 0xB215, 0xB4AF, 0xB216, 0x87B0, 0xB217, 0xB4B0, - 0xB218, 0x87B1, 0xB219, 0xB4B1, 0xB21A, 0x87B2, 0xB21B, 0x87B3, - 0xB21C, 0x87B4, 0xB21D, 0x87B5, 0xB21E, 0x87B6, 0xB21F, 0x87B7, - 0xB220, 0xB4B2, 0xB221, 0x87B8, 0xB222, 0x87B9, 0xB223, 0x87BA, - 0xB224, 0x87BB, 0xB225, 0x87BC, 0xB226, 0x87BD, 0xB227, 0x87BE, - 0xB228, 0x87BF, 0xB229, 0x87C0, 0xB22A, 0x87C1, 0xB22B, 0x87C2, - 0xB22C, 0x87C3, 0xB22D, 0x87C4, 0xB22E, 0x87C5, 0xB22F, 0x87C6, - 0xB230, 0x87C7, 0xB231, 0x87C8, 0xB232, 0x87C9, 0xB233, 0x87CA, - 0xB234, 0xB4B3, 0xB235, 0x87CB, 0xB236, 0x87CC, 0xB237, 0x87CD, - 0xB238, 0x87CE, 0xB239, 0x87CF, 0xB23A, 0x87D0, 0xB23B, 0x87D1, - 0xB23C, 0xB4B4, 0xB23D, 0x87D2, 0xB23E, 0x87D3, 0xB23F, 0x87D4, - 0xB240, 0x87D5, 0xB241, 0x87D6, 0xB242, 0x87D7, 0xB243, 0x87D8, - 0xB244, 0x87D9, 0xB245, 0x87DA, 0xB246, 0x87DB, 0xB247, 0x87DC, - 0xB248, 0x87DD, 0xB249, 0x87DE, 0xB24A, 0x87DF, 0xB24B, 0x87E0, - 0xB24C, 0x87E1, 0xB24D, 0x87E2, 0xB24E, 0x87E3, 0xB24F, 0x87E4, - 0xB250, 0x87E5, 0xB251, 0x87E6, 0xB252, 0x87E7, 0xB253, 0x87E8, - 0xB254, 0x87E9, 0xB255, 0x87EA, 0xB256, 0x87EB, 0xB257, 0x87EC, - 0xB258, 0xB4B5, 0xB259, 0x87ED, 0xB25A, 0x87EE, 0xB25B, 0x87EF, - 0xB25C, 0xB4B6, 0xB25D, 0x87F0, 0xB25E, 0x87F1, 0xB25F, 0x87F2, - 0xB260, 0xB4B7, 0xB261, 0x87F3, 0xB262, 0x87F4, 0xB263, 0x87F5, - 0xB264, 0x87F6, 0xB265, 0x87F7, 0xB266, 0x87F8, 0xB267, 0x87F9, - 0xB268, 0xB4B8, 0xB269, 0xB4B9, 0xB26A, 0x87FA, 0xB26B, 0x87FB, - 0xB26C, 0x87FC, 0xB26D, 0x87FD, 0xB26E, 0x87FE, 0xB26F, 0x8841, - 0xB270, 0x8842, 0xB271, 0x8843, 0xB272, 0x8844, 0xB273, 0x8845, - 0xB274, 0xB4BA, 0xB275, 0xB4BB, 0xB276, 0x8846, 0xB277, 0x8847, - 0xB278, 0x8848, 0xB279, 0x8849, 0xB27A, 0x884A, 0xB27B, 0x884B, - 0xB27C, 0xB4BC, 0xB27D, 0x884C, 0xB27E, 0x884D, 0xB27F, 0x884E, - 0xB280, 0x884F, 0xB281, 0x8850, 0xB282, 0x8851, 0xB283, 0x8852, - 0xB284, 0xB4BD, 0xB285, 0xB4BE, 0xB286, 0x8853, 0xB287, 0x8854, - 0xB288, 0x8855, 0xB289, 0xB4BF, 0xB28A, 0x8856, 0xB28B, 0x8857, - 0xB28C, 0x8858, 0xB28D, 0x8859, 0xB28E, 0x885A, 0xB28F, 0x8861, - 0xB290, 0xB4C0, 0xB291, 0xB4C1, 0xB292, 0x8862, 0xB293, 0x8863, - 0xB294, 0xB4C2, 0xB295, 0x8864, 0xB296, 0x8865, 0xB297, 0x8866, - 0xB298, 0xB4C3, 0xB299, 0xB4C4, 0xB29A, 0xB4C5, 0xB29B, 0x8867, - 0xB29C, 0x8868, 0xB29D, 0x8869, 0xB29E, 0x886A, 0xB29F, 0x886B, - 0xB2A0, 0xB4C6, 0xB2A1, 0xB4C7, 0xB2A2, 0x886C, 0xB2A3, 0xB4C8, - 0xB2A4, 0x886D, 0xB2A5, 0xB4C9, 0xB2A6, 0xB4CA, 0xB2A7, 0x886E, - 0xB2A8, 0x886F, 0xB2A9, 0x8870, 0xB2AA, 0xB4CB, 0xB2AB, 0x8871, - 0xB2AC, 0xB4CC, 0xB2AD, 0x8872, 0xB2AE, 0x8873, 0xB2AF, 0x8874, - 0xB2B0, 0xB4CD, 0xB2B1, 0x8875, 0xB2B2, 0x8876, 0xB2B3, 0x8877, - 0xB2B4, 0xB4CE, 0xB2B5, 0x8878, 0xB2B6, 0x8879, 0xB2B7, 0x887A, - 0xB2B8, 0x8881, 0xB2B9, 0x8882, 0xB2BA, 0x8883, 0xB2BB, 0x8884, - 0xB2BC, 0x8885, 0xB2BD, 0x8886, 0xB2BE, 0x8887, 0xB2BF, 0x8888, - 0xB2C0, 0x8889, 0xB2C1, 0x888A, 0xB2C2, 0x888B, 0xB2C3, 0x888C, - 0xB2C4, 0x888D, 0xB2C5, 0x888E, 0xB2C6, 0x888F, 0xB2C7, 0x8890, - 0xB2C8, 0xB4CF, 0xB2C9, 0xB4D0, 0xB2CA, 0x8891, 0xB2CB, 0x8892, - 0xB2CC, 0xB4D1, 0xB2CD, 0x8893, 0xB2CE, 0x8894, 0xB2CF, 0x8895, - 0xB2D0, 0xB4D2, 0xB2D1, 0x8896, 0xB2D2, 0xB4D3, 0xB2D3, 0x8897, - 0xB2D4, 0x8898, 0xB2D5, 0x8899, 0xB2D6, 0x889A, 0xB2D7, 0x889B, - 0xB2D8, 0xB4D4, 0xB2D9, 0xB4D5, 0xB2DA, 0x889C, 0xB2DB, 0xB4D6, - 0xB2DC, 0x889D, 0xB2DD, 0xB4D7, 0xB2DE, 0x889E, 0xB2DF, 0x889F, - 0xB2E0, 0x88A0, 0xB2E1, 0x88A1, 0xB2E2, 0xB4D8, 0xB2E3, 0x88A2, - 0xB2E4, 0xB4D9, 0xB2E5, 0xB4DA, 0xB2E6, 0xB4DB, 0xB2E7, 0x88A3, - 0xB2E8, 0xB4DC, 0xB2E9, 0x88A4, 0xB2EA, 0x88A5, 0xB2EB, 0xB4DD, - 0xB2EC, 0xB4DE, 0xB2ED, 0xB4DF, 0xB2EE, 0xB4E0, 0xB2EF, 0xB4E1, - 0xB2F0, 0x88A6, 0xB2F1, 0x88A7, 0xB2F2, 0x88A8, 0xB2F3, 0xB4E2, - 0xB2F4, 0xB4E3, 0xB2F5, 0xB4E4, 0xB2F6, 0x88A9, 0xB2F7, 0xB4E5, - 0xB2F8, 0xB4E6, 0xB2F9, 0xB4E7, 0xB2FA, 0xB4E8, 0xB2FB, 0xB4E9, - 0xB2FC, 0x88AA, 0xB2FD, 0x88AB, 0xB2FE, 0x88AC, 0xB2FF, 0xB4EA, - 0xB300, 0xB4EB, 0xB301, 0xB4EC, 0xB302, 0x88AD, 0xB303, 0x88AE, - 0xB304, 0xB4ED, 0xB305, 0x88AF, 0xB306, 0x88B0, 0xB307, 0x88B1, - 0xB308, 0xB4EE, 0xB309, 0x88B2, 0xB30A, 0x88B3, 0xB30B, 0x88B4, - 0xB30C, 0x88B5, 0xB30D, 0x88B6, 0xB30E, 0x88B7, 0xB30F, 0x88B8, - 0xB310, 0xB4EF, 0xB311, 0xB4F0, 0xB312, 0x88B9, 0xB313, 0xB4F1, - 0xB314, 0xB4F2, 0xB315, 0xB4F3, 0xB316, 0x88BA, 0xB317, 0x88BB, - 0xB318, 0x88BC, 0xB319, 0x88BD, 0xB31A, 0x88BE, 0xB31B, 0x88BF, - 0xB31C, 0xB4F4, 0xB31D, 0x88C0, 0xB31E, 0x88C1, 0xB31F, 0x88C2, - 0xB320, 0x88C3, 0xB321, 0x88C4, 0xB322, 0x88C5, 0xB323, 0x88C6, - 0xB324, 0x88C7, 0xB325, 0x88C8, 0xB326, 0x88C9, 0xB327, 0x88CA, - 0xB328, 0x88CB, 0xB329, 0x88CC, 0xB32A, 0x88CD, 0xB32B, 0x88CE, - 0xB32C, 0x88CF, 0xB32D, 0x88D0, 0xB32E, 0x88D1, 0xB32F, 0x88D2, - 0xB330, 0x88D3, 0xB331, 0x88D4, 0xB332, 0x88D5, 0xB333, 0x88D6, - 0xB334, 0x88D7, 0xB335, 0x88D8, 0xB336, 0x88D9, 0xB337, 0x88DA, - 0xB338, 0x88DB, 0xB339, 0x88DC, 0xB33A, 0x88DD, 0xB33B, 0x88DE, - 0xB33C, 0x88DF, 0xB33D, 0x88E0, 0xB33E, 0x88E1, 0xB33F, 0x88E2, - 0xB340, 0x88E3, 0xB341, 0x88E4, 0xB342, 0x88E5, 0xB343, 0x88E6, - 0xB344, 0x88E7, 0xB345, 0x88E8, 0xB346, 0x88E9, 0xB347, 0x88EA, - 0xB348, 0x88EB, 0xB349, 0x88EC, 0xB34A, 0x88ED, 0xB34B, 0x88EE, - 0xB34C, 0x88EF, 0xB34D, 0x88F0, 0xB34E, 0x88F1, 0xB34F, 0x88F2, - 0xB350, 0x88F3, 0xB351, 0x88F4, 0xB352, 0x88F5, 0xB353, 0x88F6, - 0xB354, 0xB4F5, 0xB355, 0xB4F6, 0xB356, 0xB4F7, 0xB357, 0x88F7, - 0xB358, 0xB4F8, 0xB359, 0x88F8, 0xB35A, 0x88F9, 0xB35B, 0xB4F9, - 0xB35C, 0xB4FA, 0xB35D, 0x88FA, 0xB35E, 0xB4FB, 0xB35F, 0xB4FC, - 0xB360, 0x88FB, 0xB361, 0x88FC, 0xB362, 0x88FD, 0xB363, 0x88FE, - 0xB364, 0xB4FD, 0xB365, 0xB4FE, 0xB366, 0x8941, 0xB367, 0xB5A1, - 0xB368, 0x8942, 0xB369, 0xB5A2, 0xB36A, 0x8943, 0xB36B, 0xB5A3, - 0xB36C, 0x8944, 0xB36D, 0x8945, 0xB36E, 0xB5A4, 0xB36F, 0x8946, - 0xB370, 0xB5A5, 0xB371, 0xB5A6, 0xB372, 0x8947, 0xB373, 0x8948, - 0xB374, 0xB5A7, 0xB375, 0x8949, 0xB376, 0x894A, 0xB377, 0x894B, - 0xB378, 0xB5A8, 0xB379, 0x894C, 0xB37A, 0x894D, 0xB37B, 0x894E, - 0xB37C, 0x894F, 0xB37D, 0x8950, 0xB37E, 0x8951, 0xB37F, 0x8952, - 0xB380, 0xB5A9, 0xB381, 0xB5AA, 0xB382, 0x8953, 0xB383, 0xB5AB, - 0xB384, 0xB5AC, 0xB385, 0xB5AD, 0xB386, 0x8954, 0xB387, 0x8955, - 0xB388, 0x8956, 0xB389, 0x8957, 0xB38A, 0x8958, 0xB38B, 0x8959, - 0xB38C, 0xB5AE, 0xB38D, 0x895A, 0xB38E, 0x8961, 0xB38F, 0x8962, - 0xB390, 0xB5AF, 0xB391, 0x8963, 0xB392, 0x8964, 0xB393, 0x8965, - 0xB394, 0xB5B0, 0xB395, 0x8966, 0xB396, 0x8967, 0xB397, 0x8968, - 0xB398, 0x8969, 0xB399, 0x896A, 0xB39A, 0x896B, 0xB39B, 0x896C, - 0xB39C, 0x896D, 0xB39D, 0x896E, 0xB39E, 0x896F, 0xB39F, 0x8970, - 0xB3A0, 0xB5B1, 0xB3A1, 0xB5B2, 0xB3A2, 0x8971, 0xB3A3, 0x8972, - 0xB3A4, 0x8973, 0xB3A5, 0x8974, 0xB3A6, 0x8975, 0xB3A7, 0x8976, - 0xB3A8, 0xB5B3, 0xB3A9, 0x8977, 0xB3AA, 0x8978, 0xB3AB, 0x8979, - 0xB3AC, 0xB5B4, 0xB3AD, 0x897A, 0xB3AE, 0x8981, 0xB3AF, 0x8982, - 0xB3B0, 0x8983, 0xB3B1, 0x8984, 0xB3B2, 0x8985, 0xB3B3, 0x8986, - 0xB3B4, 0x8987, 0xB3B5, 0x8988, 0xB3B6, 0x8989, 0xB3B7, 0x898A, - 0xB3B8, 0x898B, 0xB3B9, 0x898C, 0xB3BA, 0x898D, 0xB3BB, 0x898E, - 0xB3BC, 0x898F, 0xB3BD, 0x8990, 0xB3BE, 0x8991, 0xB3BF, 0x8992, - 0xB3C0, 0x8993, 0xB3C1, 0x8994, 0xB3C2, 0x8995, 0xB3C3, 0x8996, - 0xB3C4, 0xB5B5, 0xB3C5, 0xB5B6, 0xB3C6, 0x8997, 0xB3C7, 0x8998, - 0xB3C8, 0xB5B7, 0xB3C9, 0x8999, 0xB3CA, 0x899A, 0xB3CB, 0xB5B8, - 0xB3CC, 0xB5B9, 0xB3CD, 0x899B, 0xB3CE, 0xB5BA, 0xB3CF, 0x899C, - 0xB3D0, 0xB5BB, 0xB3D1, 0x899D, 0xB3D2, 0x899E, 0xB3D3, 0x899F, - 0xB3D4, 0xB5BC, 0xB3D5, 0xB5BD, 0xB3D6, 0x89A0, 0xB3D7, 0xB5BE, - 0xB3D8, 0x89A1, 0xB3D9, 0xB5BF, 0xB3DA, 0x89A2, 0xB3DB, 0xB5C0, - 0xB3DC, 0x89A3, 0xB3DD, 0xB5C1, 0xB3DE, 0x89A4, 0xB3DF, 0x89A5, - 0xB3E0, 0xB5C2, 0xB3E1, 0x89A6, 0xB3E2, 0x89A7, 0xB3E3, 0x89A8, - 0xB3E4, 0xB5C3, 0xB3E5, 0x89A9, 0xB3E6, 0x89AA, 0xB3E7, 0x89AB, - 0xB3E8, 0xB5C4, 0xB3E9, 0x89AC, 0xB3EA, 0x89AD, 0xB3EB, 0x89AE, - 0xB3EC, 0x89AF, 0xB3ED, 0x89B0, 0xB3EE, 0x89B1, 0xB3EF, 0x89B2, - 0xB3F0, 0x89B3, 0xB3F1, 0x89B4, 0xB3F2, 0x89B5, 0xB3F3, 0x89B6, - 0xB3F4, 0x89B7, 0xB3F5, 0x89B8, 0xB3F6, 0x89B9, 0xB3F7, 0x89BA, - 0xB3F8, 0x89BB, 0xB3F9, 0x89BC, 0xB3FA, 0x89BD, 0xB3FB, 0x89BE, - 0xB3FC, 0xB5C5, 0xB3FD, 0x89BF, 0xB3FE, 0x89C0, 0xB3FF, 0x89C1, - 0xB400, 0x89C2, 0xB401, 0x89C3, 0xB402, 0x89C4, 0xB403, 0x89C5, - 0xB404, 0x89C6, 0xB405, 0x89C7, 0xB406, 0x89C8, 0xB407, 0x89C9, - 0xB408, 0x89CA, 0xB409, 0x89CB, 0xB40A, 0x89CC, 0xB40B, 0x89CD, - 0xB40C, 0x89CE, 0xB40D, 0x89CF, 0xB40E, 0x89D0, 0xB40F, 0x89D1, - 0xB410, 0xB5C6, 0xB411, 0x89D2, 0xB412, 0x89D3, 0xB413, 0x89D4, - 0xB414, 0x89D5, 0xB415, 0x89D6, 0xB416, 0x89D7, 0xB417, 0x89D8, - 0xB418, 0xB5C7, 0xB419, 0x89D9, 0xB41A, 0x89DA, 0xB41B, 0x89DB, - 0xB41C, 0xB5C8, 0xB41D, 0x89DC, 0xB41E, 0x89DD, 0xB41F, 0x89DE, - 0xB420, 0xB5C9, 0xB421, 0x89DF, 0xB422, 0x89E0, 0xB423, 0x89E1, - 0xB424, 0x89E2, 0xB425, 0x89E3, 0xB426, 0x89E4, 0xB427, 0x89E5, - 0xB428, 0xB5CA, 0xB429, 0xB5CB, 0xB42A, 0x89E6, 0xB42B, 0xB5CC, - 0xB42C, 0x89E7, 0xB42D, 0x89E8, 0xB42E, 0x89E9, 0xB42F, 0x89EA, - 0xB430, 0x89EB, 0xB431, 0x89EC, 0xB432, 0x89ED, 0xB433, 0x89EE, - 0xB434, 0xB5CD, 0xB435, 0x89EF, 0xB436, 0x89F0, 0xB437, 0x89F1, - 0xB438, 0x89F2, 0xB439, 0x89F3, 0xB43A, 0x89F4, 0xB43B, 0x89F5, - 0xB43C, 0x89F6, 0xB43D, 0x89F7, 0xB43E, 0x89F8, 0xB43F, 0x89F9, - 0xB440, 0x89FA, 0xB441, 0x89FB, 0xB442, 0x89FC, 0xB443, 0x89FD, - 0xB444, 0x89FE, 0xB445, 0x8A41, 0xB446, 0x8A42, 0xB447, 0x8A43, - 0xB448, 0x8A44, 0xB449, 0x8A45, 0xB44A, 0x8A46, 0xB44B, 0x8A47, - 0xB44C, 0x8A48, 0xB44D, 0x8A49, 0xB44E, 0x8A4A, 0xB44F, 0x8A4B, - 0xB450, 0xB5CE, 0xB451, 0xB5CF, 0xB452, 0x8A4C, 0xB453, 0x8A4D, - 0xB454, 0xB5D0, 0xB455, 0x8A4E, 0xB456, 0x8A4F, 0xB457, 0x8A50, - 0xB458, 0xB5D1, 0xB459, 0x8A51, 0xB45A, 0x8A52, 0xB45B, 0x8A53, - 0xB45C, 0x8A54, 0xB45D, 0x8A55, 0xB45E, 0x8A56, 0xB45F, 0x8A57, - 0xB460, 0xB5D2, 0xB461, 0xB5D3, 0xB462, 0x8A58, 0xB463, 0xB5D4, - 0xB464, 0x8A59, 0xB465, 0xB5D5, 0xB466, 0x8A5A, 0xB467, 0x8A61, - 0xB468, 0x8A62, 0xB469, 0x8A63, 0xB46A, 0x8A64, 0xB46B, 0x8A65, - 0xB46C, 0xB5D6, 0xB46D, 0x8A66, 0xB46E, 0x8A67, 0xB46F, 0x8A68, - 0xB470, 0x8A69, 0xB471, 0x8A6A, 0xB472, 0x8A6B, 0xB473, 0x8A6C, - 0xB474, 0x8A6D, 0xB475, 0x8A6E, 0xB476, 0x8A6F, 0xB477, 0x8A70, - 0xB478, 0x8A71, 0xB479, 0x8A72, 0xB47A, 0x8A73, 0xB47B, 0x8A74, - 0xB47C, 0x8A75, 0xB47D, 0x8A76, 0xB47E, 0x8A77, 0xB47F, 0x8A78, - 0xB480, 0xB5D7, 0xB481, 0x8A79, 0xB482, 0x8A7A, 0xB483, 0x8A81, - 0xB484, 0x8A82, 0xB485, 0x8A83, 0xB486, 0x8A84, 0xB487, 0x8A85, - 0xB488, 0xB5D8, 0xB489, 0x8A86, 0xB48A, 0x8A87, 0xB48B, 0x8A88, - 0xB48C, 0x8A89, 0xB48D, 0x8A8A, 0xB48E, 0x8A8B, 0xB48F, 0x8A8C, - 0xB490, 0x8A8D, 0xB491, 0x8A8E, 0xB492, 0x8A8F, 0xB493, 0x8A90, - 0xB494, 0x8A91, 0xB495, 0x8A92, 0xB496, 0x8A93, 0xB497, 0x8A94, - 0xB498, 0x8A95, 0xB499, 0x8A96, 0xB49A, 0x8A97, 0xB49B, 0x8A98, - 0xB49C, 0x8A99, 0xB49D, 0xB5D9, 0xB49E, 0x8A9A, 0xB49F, 0x8A9B, - 0xB4A0, 0x8A9C, 0xB4A1, 0x8A9D, 0xB4A2, 0x8A9E, 0xB4A3, 0x8A9F, - 0xB4A4, 0xB5DA, 0xB4A5, 0x8AA0, 0xB4A6, 0x8AA1, 0xB4A7, 0x8AA2, - 0xB4A8, 0xB5DB, 0xB4A9, 0x8AA3, 0xB4AA, 0x8AA4, 0xB4AB, 0x8AA5, - 0xB4AC, 0xB5DC, 0xB4AD, 0x8AA6, 0xB4AE, 0x8AA7, 0xB4AF, 0x8AA8, - 0xB4B0, 0x8AA9, 0xB4B1, 0x8AAA, 0xB4B2, 0x8AAB, 0xB4B3, 0x8AAC, - 0xB4B4, 0x8AAD, 0xB4B5, 0xB5DD, 0xB4B6, 0x8AAE, 0xB4B7, 0xB5DE, - 0xB4B8, 0x8AAF, 0xB4B9, 0xB5DF, 0xB4BA, 0x8AB0, 0xB4BB, 0x8AB1, - 0xB4BC, 0x8AB2, 0xB4BD, 0x8AB3, 0xB4BE, 0x8AB4, 0xB4BF, 0x8AB5, - 0xB4C0, 0xB5E0, 0xB4C1, 0x8AB6, 0xB4C2, 0x8AB7, 0xB4C3, 0x8AB8, - 0xB4C4, 0xB5E1, 0xB4C5, 0x8AB9, 0xB4C6, 0x8ABA, 0xB4C7, 0x8ABB, - 0xB4C8, 0xB5E2, 0xB4C9, 0x8ABC, 0xB4CA, 0x8ABD, 0xB4CB, 0x8ABE, - 0xB4CC, 0x8ABF, 0xB4CD, 0x8AC0, 0xB4CE, 0x8AC1, 0xB4CF, 0x8AC2, - 0xB4D0, 0xB5E3, 0xB4D1, 0x8AC3, 0xB4D2, 0x8AC4, 0xB4D3, 0x8AC5, - 0xB4D4, 0x8AC6, 0xB4D5, 0xB5E4, 0xB4D6, 0x8AC7, 0xB4D7, 0x8AC8, - 0xB4D8, 0x8AC9, 0xB4D9, 0x8ACA, 0xB4DA, 0x8ACB, 0xB4DB, 0x8ACC, - 0xB4DC, 0xB5E5, 0xB4DD, 0xB5E6, 0xB4DE, 0x8ACD, 0xB4DF, 0x8ACE, - 0xB4E0, 0xB5E7, 0xB4E1, 0x8ACF, 0xB4E2, 0x8AD0, 0xB4E3, 0xB5E8, - 0xB4E4, 0xB5E9, 0xB4E5, 0x8AD1, 0xB4E6, 0xB5EA, 0xB4E7, 0x8AD2, - 0xB4E8, 0x8AD3, 0xB4E9, 0x8AD4, 0xB4EA, 0x8AD5, 0xB4EB, 0x8AD6, - 0xB4EC, 0xB5EB, 0xB4ED, 0xB5EC, 0xB4EE, 0x8AD7, 0xB4EF, 0xB5ED, - 0xB4F0, 0x8AD8, 0xB4F1, 0xB5EE, 0xB4F2, 0x8AD9, 0xB4F3, 0x8ADA, - 0xB4F4, 0x8ADB, 0xB4F5, 0x8ADC, 0xB4F6, 0x8ADD, 0xB4F7, 0x8ADE, - 0xB4F8, 0xB5EF, 0xB4F9, 0x8ADF, 0xB4FA, 0x8AE0, 0xB4FB, 0x8AE1, - 0xB4FC, 0x8AE2, 0xB4FD, 0x8AE3, 0xB4FE, 0x8AE4, 0xB4FF, 0x8AE5, - 0xB500, 0x8AE6, 0xB501, 0x8AE7, 0xB502, 0x8AE8, 0xB503, 0x8AE9, - 0xB504, 0x8AEA, 0xB505, 0x8AEB, 0xB506, 0x8AEC, 0xB507, 0x8AED, - 0xB508, 0x8AEE, 0xB509, 0x8AEF, 0xB50A, 0x8AF0, 0xB50B, 0x8AF1, - 0xB50C, 0x8AF2, 0xB50D, 0x8AF3, 0xB50E, 0x8AF4, 0xB50F, 0x8AF5, - 0xB510, 0x8AF6, 0xB511, 0x8AF7, 0xB512, 0x8AF8, 0xB513, 0x8AF9, - 0xB514, 0xB5F0, 0xB515, 0xB5F1, 0xB516, 0x8AFA, 0xB517, 0x8AFB, - 0xB518, 0xB5F2, 0xB519, 0x8AFC, 0xB51A, 0x8AFD, 0xB51B, 0xB5F3, - 0xB51C, 0xB5F4, 0xB51D, 0x8AFE, 0xB51E, 0x8B41, 0xB51F, 0x8B42, - 0xB520, 0x8B43, 0xB521, 0x8B44, 0xB522, 0x8B45, 0xB523, 0x8B46, - 0xB524, 0xB5F5, 0xB525, 0xB5F6, 0xB526, 0x8B47, 0xB527, 0xB5F7, - 0xB528, 0xB5F8, 0xB529, 0xB5F9, 0xB52A, 0xB5FA, 0xB52B, 0x8B48, - 0xB52C, 0x8B49, 0xB52D, 0x8B4A, 0xB52E, 0x8B4B, 0xB52F, 0x8B4C, - 0xB530, 0xB5FB, 0xB531, 0xB5FC, 0xB532, 0x8B4D, 0xB533, 0x8B4E, - 0xB534, 0xB5FD, 0xB535, 0x8B4F, 0xB536, 0x8B50, 0xB537, 0x8B51, - 0xB538, 0xB5FE, 0xB539, 0x8B52, 0xB53A, 0x8B53, 0xB53B, 0x8B54, - 0xB53C, 0x8B55, 0xB53D, 0x8B56, 0xB53E, 0x8B57, 0xB53F, 0x8B58, - 0xB540, 0xB6A1, 0xB541, 0xB6A2, 0xB542, 0x8B59, 0xB543, 0xB6A3, - 0xB544, 0xB6A4, 0xB545, 0xB6A5, 0xB546, 0x8B5A, 0xB547, 0x8B61, - 0xB548, 0x8B62, 0xB549, 0x8B63, 0xB54A, 0x8B64, 0xB54B, 0xB6A6, - 0xB54C, 0xB6A7, 0xB54D, 0xB6A8, 0xB54E, 0x8B65, 0xB54F, 0x8B66, - 0xB550, 0xB6A9, 0xB551, 0x8B67, 0xB552, 0x8B68, 0xB553, 0x8B69, - 0xB554, 0xB6AA, 0xB555, 0x8B6A, 0xB556, 0x8B6B, 0xB557, 0x8B6C, - 0xB558, 0x8B6D, 0xB559, 0x8B6E, 0xB55A, 0x8B6F, 0xB55B, 0x8B70, - 0xB55C, 0xB6AB, 0xB55D, 0xB6AC, 0xB55E, 0x8B71, 0xB55F, 0xB6AD, - 0xB560, 0xB6AE, 0xB561, 0xB6AF, 0xB562, 0x8B72, 0xB563, 0x8B73, - 0xB564, 0x8B74, 0xB565, 0x8B75, 0xB566, 0x8B76, 0xB567, 0x8B77, - 0xB568, 0x8B78, 0xB569, 0x8B79, 0xB56A, 0x8B7A, 0xB56B, 0x8B81, - 0xB56C, 0x8B82, 0xB56D, 0x8B83, 0xB56E, 0x8B84, 0xB56F, 0x8B85, - 0xB570, 0x8B86, 0xB571, 0x8B87, 0xB572, 0x8B88, 0xB573, 0x8B89, - 0xB574, 0x8B8A, 0xB575, 0x8B8B, 0xB576, 0x8B8C, 0xB577, 0x8B8D, - 0xB578, 0x8B8E, 0xB579, 0x8B8F, 0xB57A, 0x8B90, 0xB57B, 0x8B91, - 0xB57C, 0x8B92, 0xB57D, 0x8B93, 0xB57E, 0x8B94, 0xB57F, 0x8B95, - 0xB580, 0x8B96, 0xB581, 0x8B97, 0xB582, 0x8B98, 0xB583, 0x8B99, - 0xB584, 0x8B9A, 0xB585, 0x8B9B, 0xB586, 0x8B9C, 0xB587, 0x8B9D, - 0xB588, 0x8B9E, 0xB589, 0x8B9F, 0xB58A, 0x8BA0, 0xB58B, 0x8BA1, - 0xB58C, 0x8BA2, 0xB58D, 0x8BA3, 0xB58E, 0x8BA4, 0xB58F, 0x8BA5, - 0xB590, 0x8BA6, 0xB591, 0x8BA7, 0xB592, 0x8BA8, 0xB593, 0x8BA9, - 0xB594, 0x8BAA, 0xB595, 0x8BAB, 0xB596, 0x8BAC, 0xB597, 0x8BAD, - 0xB598, 0x8BAE, 0xB599, 0x8BAF, 0xB59A, 0x8BB0, 0xB59B, 0x8BB1, - 0xB59C, 0x8BB2, 0xB59D, 0x8BB3, 0xB59E, 0x8BB4, 0xB59F, 0x8BB5, - 0xB5A0, 0xB6B0, 0xB5A1, 0xB6B1, 0xB5A2, 0x8BB6, 0xB5A3, 0x8BB7, - 0xB5A4, 0xB6B2, 0xB5A5, 0x8BB8, 0xB5A6, 0x8BB9, 0xB5A7, 0x8BBA, - 0xB5A8, 0xB6B3, 0xB5A9, 0x8BBB, 0xB5AA, 0xB6B4, 0xB5AB, 0xB6B5, - 0xB5AC, 0x8BBC, 0xB5AD, 0x8BBD, 0xB5AE, 0x8BBE, 0xB5AF, 0x8BBF, - 0xB5B0, 0xB6B6, 0xB5B1, 0xB6B7, 0xB5B2, 0x8BC0, 0xB5B3, 0xB6B8, - 0xB5B4, 0xB6B9, 0xB5B5, 0xB6BA, 0xB5B6, 0x8BC1, 0xB5B7, 0x8BC2, - 0xB5B8, 0x8BC3, 0xB5B9, 0x8BC4, 0xB5BA, 0x8BC5, 0xB5BB, 0xB6BB, - 0xB5BC, 0xB6BC, 0xB5BD, 0xB6BD, 0xB5BE, 0x8BC6, 0xB5BF, 0x8BC7, - 0xB5C0, 0xB6BE, 0xB5C1, 0x8BC8, 0xB5C2, 0x8BC9, 0xB5C3, 0x8BCA, - 0xB5C4, 0xB6BF, 0xB5C5, 0x8BCB, 0xB5C6, 0x8BCC, 0xB5C7, 0x8BCD, - 0xB5C8, 0x8BCE, 0xB5C9, 0x8BCF, 0xB5CA, 0x8BD0, 0xB5CB, 0x8BD1, - 0xB5CC, 0xB6C0, 0xB5CD, 0xB6C1, 0xB5CE, 0x8BD2, 0xB5CF, 0xB6C2, - 0xB5D0, 0xB6C3, 0xB5D1, 0xB6C4, 0xB5D2, 0x8BD3, 0xB5D3, 0x8BD4, - 0xB5D4, 0x8BD5, 0xB5D5, 0x8BD6, 0xB5D6, 0x8BD7, 0xB5D7, 0x8BD8, - 0xB5D8, 0xB6C5, 0xB5D9, 0x8BD9, 0xB5DA, 0x8BDA, 0xB5DB, 0x8BDB, - 0xB5DC, 0x8BDC, 0xB5DD, 0x8BDD, 0xB5DE, 0x8BDE, 0xB5DF, 0x8BDF, - 0xB5E0, 0x8BE0, 0xB5E1, 0x8BE1, 0xB5E2, 0x8BE2, 0xB5E3, 0x8BE3, - 0xB5E4, 0x8BE4, 0xB5E5, 0x8BE5, 0xB5E6, 0x8BE6, 0xB5E7, 0x8BE7, - 0xB5E8, 0x8BE8, 0xB5E9, 0x8BE9, 0xB5EA, 0x8BEA, 0xB5EB, 0x8BEB, - 0xB5EC, 0xB6C6, 0xB5ED, 0x8BEC, 0xB5EE, 0x8BED, 0xB5EF, 0x8BEE, - 0xB5F0, 0x8BEF, 0xB5F1, 0x8BF0, 0xB5F2, 0x8BF1, 0xB5F3, 0x8BF2, - 0xB5F4, 0x8BF3, 0xB5F5, 0x8BF4, 0xB5F6, 0x8BF5, 0xB5F7, 0x8BF6, - 0xB5F8, 0x8BF7, 0xB5F9, 0x8BF8, 0xB5FA, 0x8BF9, 0xB5FB, 0x8BFA, - 0xB5FC, 0x8BFB, 0xB5FD, 0x8BFC, 0xB5FE, 0x8BFD, 0xB5FF, 0x8BFE, - 0xB600, 0x8C41, 0xB601, 0x8C42, 0xB602, 0x8C43, 0xB603, 0x8C44, - 0xB604, 0x8C45, 0xB605, 0x8C46, 0xB606, 0x8C47, 0xB607, 0x8C48, - 0xB608, 0x8C49, 0xB609, 0x8C4A, 0xB60A, 0x8C4B, 0xB60B, 0x8C4C, - 0xB60C, 0x8C4D, 0xB60D, 0x8C4E, 0xB60E, 0x8C4F, 0xB60F, 0x8C50, - 0xB610, 0xB6C7, 0xB611, 0xB6C8, 0xB612, 0x8C51, 0xB613, 0x8C52, - 0xB614, 0xB6C9, 0xB615, 0x8C53, 0xB616, 0x8C54, 0xB617, 0x8C55, - 0xB618, 0xB6CA, 0xB619, 0x8C56, 0xB61A, 0x8C57, 0xB61B, 0x8C58, - 0xB61C, 0x8C59, 0xB61D, 0x8C5A, 0xB61E, 0x8C61, 0xB61F, 0x8C62, - 0xB620, 0x8C63, 0xB621, 0x8C64, 0xB622, 0x8C65, 0xB623, 0x8C66, - 0xB624, 0x8C67, 0xB625, 0xB6CB, 0xB626, 0x8C68, 0xB627, 0x8C69, - 0xB628, 0x8C6A, 0xB629, 0x8C6B, 0xB62A, 0x8C6C, 0xB62B, 0x8C6D, - 0xB62C, 0xB6CC, 0xB62D, 0x8C6E, 0xB62E, 0x8C6F, 0xB62F, 0x8C70, - 0xB630, 0x8C71, 0xB631, 0x8C72, 0xB632, 0x8C73, 0xB633, 0x8C74, - 0xB634, 0xB6CD, 0xB635, 0x8C75, 0xB636, 0x8C76, 0xB637, 0x8C77, - 0xB638, 0x8C78, 0xB639, 0x8C79, 0xB63A, 0x8C7A, 0xB63B, 0x8C81, - 0xB63C, 0x8C82, 0xB63D, 0x8C83, 0xB63E, 0x8C84, 0xB63F, 0x8C85, - 0xB640, 0x8C86, 0xB641, 0x8C87, 0xB642, 0x8C88, 0xB643, 0x8C89, - 0xB644, 0x8C8A, 0xB645, 0x8C8B, 0xB646, 0x8C8C, 0xB647, 0x8C8D, - 0xB648, 0xB6CE, 0xB649, 0x8C8E, 0xB64A, 0x8C8F, 0xB64B, 0x8C90, - 0xB64C, 0x8C91, 0xB64D, 0x8C92, 0xB64E, 0x8C93, 0xB64F, 0x8C94, - 0xB650, 0x8C95, 0xB651, 0x8C96, 0xB652, 0x8C97, 0xB653, 0x8C98, - 0xB654, 0x8C99, 0xB655, 0x8C9A, 0xB656, 0x8C9B, 0xB657, 0x8C9C, - 0xB658, 0x8C9D, 0xB659, 0x8C9E, 0xB65A, 0x8C9F, 0xB65B, 0x8CA0, - 0xB65C, 0x8CA1, 0xB65D, 0x8CA2, 0xB65E, 0x8CA3, 0xB65F, 0x8CA4, - 0xB660, 0x8CA5, 0xB661, 0x8CA6, 0xB662, 0x8CA7, 0xB663, 0x8CA8, - 0xB664, 0xB6CF, 0xB665, 0x8CA9, 0xB666, 0x8CAA, 0xB667, 0x8CAB, - 0xB668, 0xB6D0, 0xB669, 0x8CAC, 0xB66A, 0x8CAD, 0xB66B, 0x8CAE, - 0xB66C, 0x8CAF, 0xB66D, 0x8CB0, 0xB66E, 0x8CB1, 0xB66F, 0x8CB2, - 0xB670, 0x8CB3, 0xB671, 0x8CB4, 0xB672, 0x8CB5, 0xB673, 0x8CB6, - 0xB674, 0x8CB7, 0xB675, 0x8CB8, 0xB676, 0x8CB9, 0xB677, 0x8CBA, - 0xB678, 0x8CBB, 0xB679, 0x8CBC, 0xB67A, 0x8CBD, 0xB67B, 0x8CBE, - 0xB67C, 0x8CBF, 0xB67D, 0x8CC0, 0xB67E, 0x8CC1, 0xB67F, 0x8CC2, - 0xB680, 0x8CC3, 0xB681, 0x8CC4, 0xB682, 0x8CC5, 0xB683, 0x8CC6, - 0xB684, 0x8CC7, 0xB685, 0x8CC8, 0xB686, 0x8CC9, 0xB687, 0x8CCA, - 0xB688, 0x8CCB, 0xB689, 0x8CCC, 0xB68A, 0x8CCD, 0xB68B, 0x8CCE, - 0xB68C, 0x8CCF, 0xB68D, 0x8CD0, 0xB68E, 0x8CD1, 0xB68F, 0x8CD2, - 0xB690, 0x8CD3, 0xB691, 0x8CD4, 0xB692, 0x8CD5, 0xB693, 0x8CD6, - 0xB694, 0x8CD7, 0xB695, 0x8CD8, 0xB696, 0x8CD9, 0xB697, 0x8CDA, - 0xB698, 0x8CDB, 0xB699, 0x8CDC, 0xB69A, 0x8CDD, 0xB69B, 0x8CDE, - 0xB69C, 0xB6D1, 0xB69D, 0xB6D2, 0xB69E, 0x8CDF, 0xB69F, 0x8CE0, - 0xB6A0, 0xB6D3, 0xB6A1, 0x8CE1, 0xB6A2, 0x8CE2, 0xB6A3, 0x8CE3, - 0xB6A4, 0xB6D4, 0xB6A5, 0x8CE4, 0xB6A6, 0x8CE5, 0xB6A7, 0x8CE6, - 0xB6A8, 0x8CE7, 0xB6A9, 0x8CE8, 0xB6AA, 0x8CE9, 0xB6AB, 0xB6D5, - 0xB6AC, 0xB6D6, 0xB6AD, 0x8CEA, 0xB6AE, 0x8CEB, 0xB6AF, 0x8CEC, - 0xB6B0, 0x8CED, 0xB6B1, 0xB6D7, 0xB6B2, 0x8CEE, 0xB6B3, 0x8CEF, - 0xB6B4, 0x8CF0, 0xB6B5, 0x8CF1, 0xB6B6, 0x8CF2, 0xB6B7, 0x8CF3, - 0xB6B8, 0x8CF4, 0xB6B9, 0x8CF5, 0xB6BA, 0x8CF6, 0xB6BB, 0x8CF7, - 0xB6BC, 0x8CF8, 0xB6BD, 0x8CF9, 0xB6BE, 0x8CFA, 0xB6BF, 0x8CFB, - 0xB6C0, 0x8CFC, 0xB6C1, 0x8CFD, 0xB6C2, 0x8CFE, 0xB6C3, 0x8D41, - 0xB6C4, 0x8D42, 0xB6C5, 0x8D43, 0xB6C6, 0x8D44, 0xB6C7, 0x8D45, - 0xB6C8, 0x8D46, 0xB6C9, 0x8D47, 0xB6CA, 0x8D48, 0xB6CB, 0x8D49, - 0xB6CC, 0x8D4A, 0xB6CD, 0x8D4B, 0xB6CE, 0x8D4C, 0xB6CF, 0x8D4D, - 0xB6D0, 0x8D4E, 0xB6D1, 0x8D4F, 0xB6D2, 0x8D50, 0xB6D3, 0x8D51, - 0xB6D4, 0xB6D8, 0xB6D5, 0x8D52, 0xB6D6, 0x8D53, 0xB6D7, 0x8D54, - 0xB6D8, 0x8D55, 0xB6D9, 0x8D56, 0xB6DA, 0x8D57, 0xB6DB, 0x8D58, - 0xB6DC, 0x8D59, 0xB6DD, 0x8D5A, 0xB6DE, 0x8D61, 0xB6DF, 0x8D62, - 0xB6E0, 0x8D63, 0xB6E1, 0x8D64, 0xB6E2, 0x8D65, 0xB6E3, 0x8D66, - 0xB6E4, 0x8D67, 0xB6E5, 0x8D68, 0xB6E6, 0x8D69, 0xB6E7, 0x8D6A, - 0xB6E8, 0x8D6B, 0xB6E9, 0x8D6C, 0xB6EA, 0x8D6D, 0xB6EB, 0x8D6E, - 0xB6EC, 0x8D6F, 0xB6ED, 0x8D70, 0xB6EE, 0x8D71, 0xB6EF, 0x8D72, - 0xB6F0, 0xB6D9, 0xB6F1, 0x8D73, 0xB6F2, 0x8D74, 0xB6F3, 0x8D75, - 0xB6F4, 0xB6DA, 0xB6F5, 0x8D76, 0xB6F6, 0x8D77, 0xB6F7, 0x8D78, - 0xB6F8, 0xB6DB, 0xB6F9, 0x8D79, 0xB6FA, 0x8D7A, 0xB6FB, 0x8D81, - 0xB6FC, 0x8D82, 0xB6FD, 0x8D83, 0xB6FE, 0x8D84, 0xB6FF, 0x8D85, - 0xB700, 0xB6DC, 0xB701, 0xB6DD, 0xB702, 0x8D86, 0xB703, 0x8D87, - 0xB704, 0x8D88, 0xB705, 0xB6DE, 0xB706, 0x8D89, 0xB707, 0x8D8A, - 0xB708, 0x8D8B, 0xB709, 0x8D8C, 0xB70A, 0x8D8D, 0xB70B, 0x8D8E, - 0xB70C, 0x8D8F, 0xB70D, 0x8D90, 0xB70E, 0x8D91, 0xB70F, 0x8D92, - 0xB710, 0x8D93, 0xB711, 0x8D94, 0xB712, 0x8D95, 0xB713, 0x8D96, - 0xB714, 0x8D97, 0xB715, 0x8D98, 0xB716, 0x8D99, 0xB717, 0x8D9A, - 0xB718, 0x8D9B, 0xB719, 0x8D9C, 0xB71A, 0x8D9D, 0xB71B, 0x8D9E, - 0xB71C, 0x8D9F, 0xB71D, 0x8DA0, 0xB71E, 0x8DA1, 0xB71F, 0x8DA2, - 0xB720, 0x8DA3, 0xB721, 0x8DA4, 0xB722, 0x8DA5, 0xB723, 0x8DA6, - 0xB724, 0x8DA7, 0xB725, 0x8DA8, 0xB726, 0x8DA9, 0xB727, 0x8DAA, - 0xB728, 0xB6DF, 0xB729, 0xB6E0, 0xB72A, 0x8DAB, 0xB72B, 0x8DAC, - 0xB72C, 0xB6E1, 0xB72D, 0x8DAD, 0xB72E, 0x8DAE, 0xB72F, 0xB6E2, - 0xB730, 0xB6E3, 0xB731, 0x8DAF, 0xB732, 0x8DB0, 0xB733, 0x8DB1, - 0xB734, 0x8DB2, 0xB735, 0x8DB3, 0xB736, 0x8DB4, 0xB737, 0x8DB5, - 0xB738, 0xB6E4, 0xB739, 0xB6E5, 0xB73A, 0x8DB6, 0xB73B, 0xB6E6, - 0xB73C, 0x8DB7, 0xB73D, 0x8DB8, 0xB73E, 0x8DB9, 0xB73F, 0x8DBA, - 0xB740, 0x8DBB, 0xB741, 0x8DBC, 0xB742, 0x8DBD, 0xB743, 0x8DBE, - 0xB744, 0xB6E7, 0xB745, 0x8DBF, 0xB746, 0x8DC0, 0xB747, 0x8DC1, - 0xB748, 0xB6E8, 0xB749, 0x8DC2, 0xB74A, 0x8DC3, 0xB74B, 0x8DC4, - 0xB74C, 0xB6E9, 0xB74D, 0x8DC5, 0xB74E, 0x8DC6, 0xB74F, 0x8DC7, - 0xB750, 0x8DC8, 0xB751, 0x8DC9, 0xB752, 0x8DCA, 0xB753, 0x8DCB, - 0xB754, 0xB6EA, 0xB755, 0xB6EB, 0xB756, 0x8DCC, 0xB757, 0x8DCD, - 0xB758, 0x8DCE, 0xB759, 0x8DCF, 0xB75A, 0x8DD0, 0xB75B, 0x8DD1, - 0xB75C, 0x8DD2, 0xB75D, 0x8DD3, 0xB75E, 0x8DD4, 0xB75F, 0x8DD5, - 0xB760, 0xB6EC, 0xB761, 0x8DD6, 0xB762, 0x8DD7, 0xB763, 0x8DD8, - 0xB764, 0xB6ED, 0xB765, 0x8DD9, 0xB766, 0x8DDA, 0xB767, 0x8DDB, - 0xB768, 0xB6EE, 0xB769, 0x8DDC, 0xB76A, 0x8DDD, 0xB76B, 0x8DDE, - 0xB76C, 0x8DDF, 0xB76D, 0x8DE0, 0xB76E, 0x8DE1, 0xB76F, 0x8DE2, - 0xB770, 0xB6EF, 0xB771, 0xB6F0, 0xB772, 0x8DE3, 0xB773, 0xB6F1, - 0xB774, 0x8DE4, 0xB775, 0xB6F2, 0xB776, 0x8DE5, 0xB777, 0x8DE6, - 0xB778, 0x8DE7, 0xB779, 0x8DE8, 0xB77A, 0x8DE9, 0xB77B, 0x8DEA, - 0xB77C, 0xB6F3, 0xB77D, 0xB6F4, 0xB77E, 0x8DEB, 0xB77F, 0x8DEC, - 0xB780, 0xB6F5, 0xB781, 0x8DED, 0xB782, 0x8DEE, 0xB783, 0x8DEF, - 0xB784, 0xB6F6, 0xB785, 0x8DF0, 0xB786, 0x8DF1, 0xB787, 0x8DF2, - 0xB788, 0x8DF3, 0xB789, 0x8DF4, 0xB78A, 0x8DF5, 0xB78B, 0x8DF6, - 0xB78C, 0xB6F7, 0xB78D, 0xB6F8, 0xB78E, 0x8DF7, 0xB78F, 0xB6F9, - 0xB790, 0xB6FA, 0xB791, 0xB6FB, 0xB792, 0xB6FC, 0xB793, 0x8DF8, - 0xB794, 0x8DF9, 0xB795, 0x8DFA, 0xB796, 0xB6FD, 0xB797, 0xB6FE, - 0xB798, 0xB7A1, 0xB799, 0xB7A2, 0xB79A, 0x8DFB, 0xB79B, 0x8DFC, - 0xB79C, 0xB7A3, 0xB79D, 0x8DFD, 0xB79E, 0x8DFE, 0xB79F, 0x8E41, - 0xB7A0, 0xB7A4, 0xB7A1, 0x8E42, 0xB7A2, 0x8E43, 0xB7A3, 0x8E44, - 0xB7A4, 0x8E45, 0xB7A5, 0x8E46, 0xB7A6, 0x8E47, 0xB7A7, 0x8E48, - 0xB7A8, 0xB7A5, 0xB7A9, 0xB7A6, 0xB7AA, 0x8E49, 0xB7AB, 0xB7A7, - 0xB7AC, 0xB7A8, 0xB7AD, 0xB7A9, 0xB7AE, 0x8E4A, 0xB7AF, 0x8E4B, - 0xB7B0, 0x8E4C, 0xB7B1, 0x8E4D, 0xB7B2, 0x8E4E, 0xB7B3, 0x8E4F, - 0xB7B4, 0xB7AA, 0xB7B5, 0xB7AB, 0xB7B6, 0x8E50, 0xB7B7, 0x8E51, - 0xB7B8, 0xB7AC, 0xB7B9, 0x8E52, 0xB7BA, 0x8E53, 0xB7BB, 0x8E54, - 0xB7BC, 0x8E55, 0xB7BD, 0x8E56, 0xB7BE, 0x8E57, 0xB7BF, 0x8E58, - 0xB7C0, 0x8E59, 0xB7C1, 0x8E5A, 0xB7C2, 0x8E61, 0xB7C3, 0x8E62, - 0xB7C4, 0x8E63, 0xB7C5, 0x8E64, 0xB7C6, 0x8E65, 0xB7C7, 0xB7AD, - 0xB7C8, 0x8E66, 0xB7C9, 0xB7AE, 0xB7CA, 0x8E67, 0xB7CB, 0x8E68, - 0xB7CC, 0x8E69, 0xB7CD, 0x8E6A, 0xB7CE, 0x8E6B, 0xB7CF, 0x8E6C, - 0xB7D0, 0x8E6D, 0xB7D1, 0x8E6E, 0xB7D2, 0x8E6F, 0xB7D3, 0x8E70, - 0xB7D4, 0x8E71, 0xB7D5, 0x8E72, 0xB7D6, 0x8E73, 0xB7D7, 0x8E74, - 0xB7D8, 0x8E75, 0xB7D9, 0x8E76, 0xB7DA, 0x8E77, 0xB7DB, 0x8E78, - 0xB7DC, 0x8E79, 0xB7DD, 0x8E7A, 0xB7DE, 0x8E81, 0xB7DF, 0x8E82, - 0xB7E0, 0x8E83, 0xB7E1, 0x8E84, 0xB7E2, 0x8E85, 0xB7E3, 0x8E86, - 0xB7E4, 0x8E87, 0xB7E5, 0x8E88, 0xB7E6, 0x8E89, 0xB7E7, 0x8E8A, - 0xB7E8, 0x8E8B, 0xB7E9, 0x8E8C, 0xB7EA, 0x8E8D, 0xB7EB, 0x8E8E, - 0xB7EC, 0xB7AF, 0xB7ED, 0xB7B0, 0xB7EE, 0x8E8F, 0xB7EF, 0x8E90, - 0xB7F0, 0xB7B1, 0xB7F1, 0x8E91, 0xB7F2, 0x8E92, 0xB7F3, 0x8E93, - 0xB7F4, 0xB7B2, 0xB7F5, 0x8E94, 0xB7F6, 0x8E95, 0xB7F7, 0x8E96, - 0xB7F8, 0x8E97, 0xB7F9, 0x8E98, 0xB7FA, 0x8E99, 0xB7FB, 0x8E9A, - 0xB7FC, 0xB7B3, 0xB7FD, 0xB7B4, 0xB7FE, 0x8E9B, 0xB7FF, 0xB7B5, - 0xB800, 0xB7B6, 0xB801, 0xB7B7, 0xB802, 0x8E9C, 0xB803, 0x8E9D, - 0xB804, 0x8E9E, 0xB805, 0x8E9F, 0xB806, 0x8EA0, 0xB807, 0xB7B8, - 0xB808, 0xB7B9, 0xB809, 0xB7BA, 0xB80A, 0x8EA1, 0xB80B, 0x8EA2, - 0xB80C, 0xB7BB, 0xB80D, 0x8EA3, 0xB80E, 0x8EA4, 0xB80F, 0x8EA5, - 0xB810, 0xB7BC, 0xB811, 0x8EA6, 0xB812, 0x8EA7, 0xB813, 0x8EA8, - 0xB814, 0x8EA9, 0xB815, 0x8EAA, 0xB816, 0x8EAB, 0xB817, 0x8EAC, - 0xB818, 0xB7BD, 0xB819, 0xB7BE, 0xB81A, 0x8EAD, 0xB81B, 0xB7BF, - 0xB81C, 0x8EAE, 0xB81D, 0xB7C0, 0xB81E, 0x8EAF, 0xB81F, 0x8EB0, - 0xB820, 0x8EB1, 0xB821, 0x8EB2, 0xB822, 0x8EB3, 0xB823, 0x8EB4, - 0xB824, 0xB7C1, 0xB825, 0xB7C2, 0xB826, 0x8EB5, 0xB827, 0x8EB6, - 0xB828, 0xB7C3, 0xB829, 0x8EB7, 0xB82A, 0x8EB8, 0xB82B, 0x8EB9, - 0xB82C, 0xB7C4, 0xB82D, 0x8EBA, 0xB82E, 0x8EBB, 0xB82F, 0x8EBC, - 0xB830, 0x8EBD, 0xB831, 0x8EBE, 0xB832, 0x8EBF, 0xB833, 0x8EC0, - 0xB834, 0xB7C5, 0xB835, 0xB7C6, 0xB836, 0x8EC1, 0xB837, 0xB7C7, - 0xB838, 0xB7C8, 0xB839, 0xB7C9, 0xB83A, 0x8EC2, 0xB83B, 0x8EC3, - 0xB83C, 0x8EC4, 0xB83D, 0x8EC5, 0xB83E, 0x8EC6, 0xB83F, 0x8EC7, - 0xB840, 0xB7CA, 0xB841, 0x8EC8, 0xB842, 0x8EC9, 0xB843, 0x8ECA, - 0xB844, 0xB7CB, 0xB845, 0x8ECB, 0xB846, 0x8ECC, 0xB847, 0x8ECD, - 0xB848, 0x8ECE, 0xB849, 0x8ECF, 0xB84A, 0x8ED0, 0xB84B, 0x8ED1, - 0xB84C, 0x8ED2, 0xB84D, 0x8ED3, 0xB84E, 0x8ED4, 0xB84F, 0x8ED5, - 0xB850, 0x8ED6, 0xB851, 0xB7CC, 0xB852, 0x8ED7, 0xB853, 0xB7CD, - 0xB854, 0x8ED8, 0xB855, 0x8ED9, 0xB856, 0x8EDA, 0xB857, 0x8EDB, - 0xB858, 0x8EDC, 0xB859, 0x8EDD, 0xB85A, 0x8EDE, 0xB85B, 0x8EDF, - 0xB85C, 0xB7CE, 0xB85D, 0xB7CF, 0xB85E, 0x8EE0, 0xB85F, 0x8EE1, - 0xB860, 0xB7D0, 0xB861, 0x8EE2, 0xB862, 0x8EE3, 0xB863, 0x8EE4, - 0xB864, 0xB7D1, 0xB865, 0x8EE5, 0xB866, 0x8EE6, 0xB867, 0x8EE7, - 0xB868, 0x8EE8, 0xB869, 0x8EE9, 0xB86A, 0x8EEA, 0xB86B, 0x8EEB, - 0xB86C, 0xB7D2, 0xB86D, 0xB7D3, 0xB86E, 0x8EEC, 0xB86F, 0xB7D4, - 0xB870, 0x8EED, 0xB871, 0xB7D5, 0xB872, 0x8EEE, 0xB873, 0x8EEF, - 0xB874, 0x8EF0, 0xB875, 0x8EF1, 0xB876, 0x8EF2, 0xB877, 0x8EF3, - 0xB878, 0xB7D6, 0xB879, 0x8EF4, 0xB87A, 0x8EF5, 0xB87B, 0x8EF6, - 0xB87C, 0xB7D7, 0xB87D, 0x8EF7, 0xB87E, 0x8EF8, 0xB87F, 0x8EF9, - 0xB880, 0x8EFA, 0xB881, 0x8EFB, 0xB882, 0x8EFC, 0xB883, 0x8EFD, - 0xB884, 0x8EFE, 0xB885, 0x8F41, 0xB886, 0x8F42, 0xB887, 0x8F43, - 0xB888, 0x8F44, 0xB889, 0x8F45, 0xB88A, 0x8F46, 0xB88B, 0x8F47, - 0xB88C, 0x8F48, 0xB88D, 0xB7D8, 0xB88E, 0x8F49, 0xB88F, 0x8F4A, - 0xB890, 0x8F4B, 0xB891, 0x8F4C, 0xB892, 0x8F4D, 0xB893, 0x8F4E, - 0xB894, 0x8F4F, 0xB895, 0x8F50, 0xB896, 0x8F51, 0xB897, 0x8F52, - 0xB898, 0x8F53, 0xB899, 0x8F54, 0xB89A, 0x8F55, 0xB89B, 0x8F56, - 0xB89C, 0x8F57, 0xB89D, 0x8F58, 0xB89E, 0x8F59, 0xB89F, 0x8F5A, - 0xB8A0, 0x8F61, 0xB8A1, 0x8F62, 0xB8A2, 0x8F63, 0xB8A3, 0x8F64, - 0xB8A4, 0x8F65, 0xB8A5, 0x8F66, 0xB8A6, 0x8F67, 0xB8A7, 0x8F68, - 0xB8A8, 0xB7D9, 0xB8A9, 0x8F69, 0xB8AA, 0x8F6A, 0xB8AB, 0x8F6B, - 0xB8AC, 0x8F6C, 0xB8AD, 0x8F6D, 0xB8AE, 0x8F6E, 0xB8AF, 0x8F6F, - 0xB8B0, 0xB7DA, 0xB8B1, 0x8F70, 0xB8B2, 0x8F71, 0xB8B3, 0x8F72, - 0xB8B4, 0xB7DB, 0xB8B5, 0x8F73, 0xB8B6, 0x8F74, 0xB8B7, 0x8F75, - 0xB8B8, 0xB7DC, 0xB8B9, 0x8F76, 0xB8BA, 0x8F77, 0xB8BB, 0x8F78, - 0xB8BC, 0x8F79, 0xB8BD, 0x8F7A, 0xB8BE, 0x8F81, 0xB8BF, 0x8F82, - 0xB8C0, 0xB7DD, 0xB8C1, 0xB7DE, 0xB8C2, 0x8F83, 0xB8C3, 0xB7DF, - 0xB8C4, 0x8F84, 0xB8C5, 0xB7E0, 0xB8C6, 0x8F85, 0xB8C7, 0x8F86, - 0xB8C8, 0x8F87, 0xB8C9, 0x8F88, 0xB8CA, 0x8F89, 0xB8CB, 0x8F8A, - 0xB8CC, 0xB7E1, 0xB8CD, 0x8F8B, 0xB8CE, 0x8F8C, 0xB8CF, 0x8F8D, - 0xB8D0, 0xB7E2, 0xB8D1, 0x8F8E, 0xB8D2, 0x8F8F, 0xB8D3, 0x8F90, - 0xB8D4, 0xB7E3, 0xB8D5, 0x8F91, 0xB8D6, 0x8F92, 0xB8D7, 0x8F93, - 0xB8D8, 0x8F94, 0xB8D9, 0x8F95, 0xB8DA, 0x8F96, 0xB8DB, 0x8F97, - 0xB8DC, 0x8F98, 0xB8DD, 0xB7E4, 0xB8DE, 0x8F99, 0xB8DF, 0xB7E5, - 0xB8E0, 0x8F9A, 0xB8E1, 0xB7E6, 0xB8E2, 0x8F9B, 0xB8E3, 0x8F9C, - 0xB8E4, 0x8F9D, 0xB8E5, 0x8F9E, 0xB8E6, 0x8F9F, 0xB8E7, 0x8FA0, - 0xB8E8, 0xB7E7, 0xB8E9, 0xB7E8, 0xB8EA, 0x8FA1, 0xB8EB, 0x8FA2, - 0xB8EC, 0xB7E9, 0xB8ED, 0x8FA3, 0xB8EE, 0x8FA4, 0xB8EF, 0x8FA5, - 0xB8F0, 0xB7EA, 0xB8F1, 0x8FA6, 0xB8F2, 0x8FA7, 0xB8F3, 0x8FA8, - 0xB8F4, 0x8FA9, 0xB8F5, 0x8FAA, 0xB8F6, 0x8FAB, 0xB8F7, 0x8FAC, - 0xB8F8, 0xB7EB, 0xB8F9, 0xB7EC, 0xB8FA, 0x8FAD, 0xB8FB, 0xB7ED, - 0xB8FC, 0x8FAE, 0xB8FD, 0xB7EE, 0xB8FE, 0x8FAF, 0xB8FF, 0x8FB0, - 0xB900, 0x8FB1, 0xB901, 0x8FB2, 0xB902, 0x8FB3, 0xB903, 0x8FB4, - 0xB904, 0xB7EF, 0xB905, 0x8FB5, 0xB906, 0x8FB6, 0xB907, 0x8FB7, - 0xB908, 0x8FB8, 0xB909, 0x8FB9, 0xB90A, 0x8FBA, 0xB90B, 0x8FBB, - 0xB90C, 0x8FBC, 0xB90D, 0x8FBD, 0xB90E, 0x8FBE, 0xB90F, 0x8FBF, - 0xB910, 0x8FC0, 0xB911, 0x8FC1, 0xB912, 0x8FC2, 0xB913, 0x8FC3, - 0xB914, 0x8FC4, 0xB915, 0x8FC5, 0xB916, 0x8FC6, 0xB917, 0x8FC7, - 0xB918, 0xB7F0, 0xB919, 0x8FC8, 0xB91A, 0x8FC9, 0xB91B, 0x8FCA, - 0xB91C, 0x8FCB, 0xB91D, 0x8FCC, 0xB91E, 0x8FCD, 0xB91F, 0x8FCE, - 0xB920, 0xB7F1, 0xB921, 0x8FCF, 0xB922, 0x8FD0, 0xB923, 0x8FD1, - 0xB924, 0x8FD2, 0xB925, 0x8FD3, 0xB926, 0x8FD4, 0xB927, 0x8FD5, - 0xB928, 0x8FD6, 0xB929, 0x8FD7, 0xB92A, 0x8FD8, 0xB92B, 0x8FD9, - 0xB92C, 0x8FDA, 0xB92D, 0x8FDB, 0xB92E, 0x8FDC, 0xB92F, 0x8FDD, - 0xB930, 0x8FDE, 0xB931, 0x8FDF, 0xB932, 0x8FE0, 0xB933, 0x8FE1, - 0xB934, 0x8FE2, 0xB935, 0x8FE3, 0xB936, 0x8FE4, 0xB937, 0x8FE5, - 0xB938, 0x8FE6, 0xB939, 0x8FE7, 0xB93A, 0x8FE8, 0xB93B, 0x8FE9, - 0xB93C, 0xB7F2, 0xB93D, 0xB7F3, 0xB93E, 0x8FEA, 0xB93F, 0x8FEB, - 0xB940, 0xB7F4, 0xB941, 0x8FEC, 0xB942, 0x8FED, 0xB943, 0x8FEE, - 0xB944, 0xB7F5, 0xB945, 0x8FEF, 0xB946, 0x8FF0, 0xB947, 0x8FF1, - 0xB948, 0x8FF2, 0xB949, 0x8FF3, 0xB94A, 0x8FF4, 0xB94B, 0x8FF5, - 0xB94C, 0xB7F6, 0xB94D, 0x8FF6, 0xB94E, 0x8FF7, 0xB94F, 0xB7F7, - 0xB950, 0x8FF8, 0xB951, 0xB7F8, 0xB952, 0x8FF9, 0xB953, 0x8FFA, - 0xB954, 0x8FFB, 0xB955, 0x8FFC, 0xB956, 0x8FFD, 0xB957, 0x8FFE, - 0xB958, 0xB7F9, 0xB959, 0xB7FA, 0xB95A, 0x9041, 0xB95B, 0x9042, - 0xB95C, 0xB7FB, 0xB95D, 0x9043, 0xB95E, 0x9044, 0xB95F, 0x9045, - 0xB960, 0xB7FC, 0xB961, 0x9046, 0xB962, 0x9047, 0xB963, 0x9048, - 0xB964, 0x9049, 0xB965, 0x904A, 0xB966, 0x904B, 0xB967, 0x904C, - 0xB968, 0xB7FD, 0xB969, 0xB7FE, 0xB96A, 0x904D, 0xB96B, 0xB8A1, - 0xB96C, 0x904E, 0xB96D, 0xB8A2, 0xB96E, 0x904F, 0xB96F, 0x9050, - 0xB970, 0x9051, 0xB971, 0x9052, 0xB972, 0x9053, 0xB973, 0x9054, - 0xB974, 0xB8A3, 0xB975, 0xB8A4, 0xB976, 0x9055, 0xB977, 0x9056, - 0xB978, 0xB8A5, 0xB979, 0x9057, 0xB97A, 0x9058, 0xB97B, 0x9059, - 0xB97C, 0xB8A6, 0xB97D, 0x905A, 0xB97E, 0x9061, 0xB97F, 0x9062, - 0xB980, 0x9063, 0xB981, 0x9064, 0xB982, 0x9065, 0xB983, 0x9066, - 0xB984, 0xB8A7, 0xB985, 0xB8A8, 0xB986, 0x9067, 0xB987, 0xB8A9, - 0xB988, 0x9068, 0xB989, 0xB8AA, 0xB98A, 0xB8AB, 0xB98B, 0x9069, - 0xB98C, 0x906A, 0xB98D, 0xB8AC, 0xB98E, 0xB8AD, 0xB98F, 0x906B, - 0xB990, 0x906C, 0xB991, 0x906D, 0xB992, 0x906E, 0xB993, 0x906F, - 0xB994, 0x9070, 0xB995, 0x9071, 0xB996, 0x9072, 0xB997, 0x9073, - 0xB998, 0x9074, 0xB999, 0x9075, 0xB99A, 0x9076, 0xB99B, 0x9077, - 0xB99C, 0x9078, 0xB99D, 0x9079, 0xB99E, 0x907A, 0xB99F, 0x9081, - 0xB9A0, 0x9082, 0xB9A1, 0x9083, 0xB9A2, 0x9084, 0xB9A3, 0x9085, - 0xB9A4, 0x9086, 0xB9A5, 0x9087, 0xB9A6, 0x9088, 0xB9A7, 0x9089, - 0xB9A8, 0x908A, 0xB9A9, 0x908B, 0xB9AA, 0x908C, 0xB9AB, 0x908D, - 0xB9AC, 0xB8AE, 0xB9AD, 0xB8AF, 0xB9AE, 0x908E, 0xB9AF, 0x908F, - 0xB9B0, 0xB8B0, 0xB9B1, 0x9090, 0xB9B2, 0x9091, 0xB9B3, 0x9092, - 0xB9B4, 0xB8B1, 0xB9B5, 0x9093, 0xB9B6, 0x9094, 0xB9B7, 0x9095, - 0xB9B8, 0x9096, 0xB9B9, 0x9097, 0xB9BA, 0x9098, 0xB9BB, 0x9099, - 0xB9BC, 0xB8B2, 0xB9BD, 0xB8B3, 0xB9BE, 0x909A, 0xB9BF, 0xB8B4, - 0xB9C0, 0x909B, 0xB9C1, 0xB8B5, 0xB9C2, 0x909C, 0xB9C3, 0x909D, - 0xB9C4, 0x909E, 0xB9C5, 0x909F, 0xB9C6, 0x90A0, 0xB9C7, 0x90A1, - 0xB9C8, 0xB8B6, 0xB9C9, 0xB8B7, 0xB9CA, 0x90A2, 0xB9CB, 0x90A3, - 0xB9CC, 0xB8B8, 0xB9CD, 0x90A4, 0xB9CE, 0xB8B9, 0xB9CF, 0xB8BA, - 0xB9D0, 0xB8BB, 0xB9D1, 0xB8BC, 0xB9D2, 0xB8BD, 0xB9D3, 0x90A5, - 0xB9D4, 0x90A6, 0xB9D5, 0x90A7, 0xB9D6, 0x90A8, 0xB9D7, 0x90A9, - 0xB9D8, 0xB8BE, 0xB9D9, 0xB8BF, 0xB9DA, 0x90AA, 0xB9DB, 0xB8C0, - 0xB9DC, 0x90AB, 0xB9DD, 0xB8C1, 0xB9DE, 0xB8C2, 0xB9DF, 0x90AC, - 0xB9E0, 0x90AD, 0xB9E1, 0xB8C3, 0xB9E2, 0x90AE, 0xB9E3, 0xB8C4, - 0xB9E4, 0xB8C5, 0xB9E5, 0xB8C6, 0xB9E6, 0x90AF, 0xB9E7, 0x90B0, - 0xB9E8, 0xB8C7, 0xB9E9, 0x90B1, 0xB9EA, 0x90B2, 0xB9EB, 0x90B3, - 0xB9EC, 0xB8C8, 0xB9ED, 0x90B4, 0xB9EE, 0x90B5, 0xB9EF, 0x90B6, - 0xB9F0, 0x90B7, 0xB9F1, 0x90B8, 0xB9F2, 0x90B9, 0xB9F3, 0x90BA, - 0xB9F4, 0xB8C9, 0xB9F5, 0xB8CA, 0xB9F6, 0x90BB, 0xB9F7, 0xB8CB, - 0xB9F8, 0xB8CC, 0xB9F9, 0xB8CD, 0xB9FA, 0xB8CE, 0xB9FB, 0x90BC, - 0xB9FC, 0x90BD, 0xB9FD, 0x90BE, 0xB9FE, 0x90BF, 0xB9FF, 0x90C0, - 0xBA00, 0xB8CF, 0xBA01, 0xB8D0, 0xBA02, 0x90C1, 0xBA03, 0x90C2, - 0xBA04, 0x90C3, 0xBA05, 0x90C4, 0xBA06, 0x90C5, 0xBA07, 0x90C6, - 0xBA08, 0xB8D1, 0xBA09, 0x90C7, 0xBA0A, 0x90C8, 0xBA0B, 0x90C9, - 0xBA0C, 0x90CA, 0xBA0D, 0x90CB, 0xBA0E, 0x90CC, 0xBA0F, 0x90CD, - 0xBA10, 0x90CE, 0xBA11, 0x90CF, 0xBA12, 0x90D0, 0xBA13, 0x90D1, - 0xBA14, 0x90D2, 0xBA15, 0xB8D2, 0xBA16, 0x90D3, 0xBA17, 0x90D4, - 0xBA18, 0x90D5, 0xBA19, 0x90D6, 0xBA1A, 0x90D7, 0xBA1B, 0x90D8, - 0xBA1C, 0x90D9, 0xBA1D, 0x90DA, 0xBA1E, 0x90DB, 0xBA1F, 0x90DC, - 0xBA20, 0x90DD, 0xBA21, 0x90DE, 0xBA22, 0x90DF, 0xBA23, 0x90E0, - 0xBA24, 0x90E1, 0xBA25, 0x90E2, 0xBA26, 0x90E3, 0xBA27, 0x90E4, - 0xBA28, 0x90E5, 0xBA29, 0x90E6, 0xBA2A, 0x90E7, 0xBA2B, 0x90E8, - 0xBA2C, 0x90E9, 0xBA2D, 0x90EA, 0xBA2E, 0x90EB, 0xBA2F, 0x90EC, - 0xBA30, 0x90ED, 0xBA31, 0x90EE, 0xBA32, 0x90EF, 0xBA33, 0x90F0, - 0xBA34, 0x90F1, 0xBA35, 0x90F2, 0xBA36, 0x90F3, 0xBA37, 0x90F4, - 0xBA38, 0xB8D3, 0xBA39, 0xB8D4, 0xBA3A, 0x90F5, 0xBA3B, 0x90F6, - 0xBA3C, 0xB8D5, 0xBA3D, 0x90F7, 0xBA3E, 0x90F8, 0xBA3F, 0x90F9, - 0xBA40, 0xB8D6, 0xBA41, 0x90FA, 0xBA42, 0xB8D7, 0xBA43, 0x90FB, - 0xBA44, 0x90FC, 0xBA45, 0x90FD, 0xBA46, 0x90FE, 0xBA47, 0x9141, - 0xBA48, 0xB8D8, 0xBA49, 0xB8D9, 0xBA4A, 0x9142, 0xBA4B, 0xB8DA, - 0xBA4C, 0x9143, 0xBA4D, 0xB8DB, 0xBA4E, 0xB8DC, 0xBA4F, 0x9144, - 0xBA50, 0x9145, 0xBA51, 0x9146, 0xBA52, 0x9147, 0xBA53, 0xB8DD, - 0xBA54, 0xB8DE, 0xBA55, 0xB8DF, 0xBA56, 0x9148, 0xBA57, 0x9149, - 0xBA58, 0xB8E0, 0xBA59, 0x914A, 0xBA5A, 0x914B, 0xBA5B, 0x914C, - 0xBA5C, 0xB8E1, 0xBA5D, 0x914D, 0xBA5E, 0x914E, 0xBA5F, 0x914F, - 0xBA60, 0x9150, 0xBA61, 0x9151, 0xBA62, 0x9152, 0xBA63, 0x9153, - 0xBA64, 0xB8E2, 0xBA65, 0xB8E3, 0xBA66, 0x9154, 0xBA67, 0xB8E4, - 0xBA68, 0xB8E5, 0xBA69, 0xB8E6, 0xBA6A, 0x9155, 0xBA6B, 0x9156, - 0xBA6C, 0x9157, 0xBA6D, 0x9158, 0xBA6E, 0x9159, 0xBA6F, 0x915A, - 0xBA70, 0xB8E7, 0xBA71, 0xB8E8, 0xBA72, 0x9161, 0xBA73, 0x9162, - 0xBA74, 0xB8E9, 0xBA75, 0x9163, 0xBA76, 0x9164, 0xBA77, 0x9165, - 0xBA78, 0xB8EA, 0xBA79, 0x9166, 0xBA7A, 0x9167, 0xBA7B, 0x9168, - 0xBA7C, 0x9169, 0xBA7D, 0x916A, 0xBA7E, 0x916B, 0xBA7F, 0x916C, - 0xBA80, 0x916D, 0xBA81, 0x916E, 0xBA82, 0x916F, 0xBA83, 0xB8EB, - 0xBA84, 0xB8EC, 0xBA85, 0xB8ED, 0xBA86, 0x9170, 0xBA87, 0xB8EE, - 0xBA88, 0x9171, 0xBA89, 0x9172, 0xBA8A, 0x9173, 0xBA8B, 0x9174, - 0xBA8C, 0xB8EF, 0xBA8D, 0x9175, 0xBA8E, 0x9176, 0xBA8F, 0x9177, - 0xBA90, 0x9178, 0xBA91, 0x9179, 0xBA92, 0x917A, 0xBA93, 0x9181, - 0xBA94, 0x9182, 0xBA95, 0x9183, 0xBA96, 0x9184, 0xBA97, 0x9185, - 0xBA98, 0x9186, 0xBA99, 0x9187, 0xBA9A, 0x9188, 0xBA9B, 0x9189, - 0xBA9C, 0x918A, 0xBA9D, 0x918B, 0xBA9E, 0x918C, 0xBA9F, 0x918D, - 0xBAA0, 0x918E, 0xBAA1, 0x918F, 0xBAA2, 0x9190, 0xBAA3, 0x9191, - 0xBAA4, 0x9192, 0xBAA5, 0x9193, 0xBAA6, 0x9194, 0xBAA7, 0x9195, - 0xBAA8, 0xB8F0, 0xBAA9, 0xB8F1, 0xBAAA, 0x9196, 0xBAAB, 0xB8F2, - 0xBAAC, 0xB8F3, 0xBAAD, 0x9197, 0xBAAE, 0x9198, 0xBAAF, 0x9199, - 0xBAB0, 0xB8F4, 0xBAB1, 0x919A, 0xBAB2, 0xB8F5, 0xBAB3, 0x919B, - 0xBAB4, 0x919C, 0xBAB5, 0x919D, 0xBAB6, 0x919E, 0xBAB7, 0x919F, - 0xBAB8, 0xB8F6, 0xBAB9, 0xB8F7, 0xBABA, 0x91A0, 0xBABB, 0xB8F8, - 0xBABC, 0x91A1, 0xBABD, 0xB8F9, 0xBABE, 0x91A2, 0xBABF, 0x91A3, - 0xBAC0, 0x91A4, 0xBAC1, 0x91A5, 0xBAC2, 0x91A6, 0xBAC3, 0x91A7, - 0xBAC4, 0xB8FA, 0xBAC5, 0x91A8, 0xBAC6, 0x91A9, 0xBAC7, 0x91AA, - 0xBAC8, 0xB8FB, 0xBAC9, 0x91AB, 0xBACA, 0x91AC, 0xBACB, 0x91AD, - 0xBACC, 0x91AE, 0xBACD, 0x91AF, 0xBACE, 0x91B0, 0xBACF, 0x91B1, - 0xBAD0, 0x91B2, 0xBAD1, 0x91B3, 0xBAD2, 0x91B4, 0xBAD3, 0x91B5, - 0xBAD4, 0x91B6, 0xBAD5, 0x91B7, 0xBAD6, 0x91B8, 0xBAD7, 0x91B9, - 0xBAD8, 0xB8FC, 0xBAD9, 0xB8FD, 0xBADA, 0x91BA, 0xBADB, 0x91BB, - 0xBADC, 0x91BC, 0xBADD, 0x91BD, 0xBADE, 0x91BE, 0xBADF, 0x91BF, - 0xBAE0, 0x91C0, 0xBAE1, 0x91C1, 0xBAE2, 0x91C2, 0xBAE3, 0x91C3, - 0xBAE4, 0x91C4, 0xBAE5, 0x91C5, 0xBAE6, 0x91C6, 0xBAE7, 0x91C7, - 0xBAE8, 0x91C8, 0xBAE9, 0x91C9, 0xBAEA, 0x91CA, 0xBAEB, 0x91CB, - 0xBAEC, 0x91CC, 0xBAED, 0x91CD, 0xBAEE, 0x91CE, 0xBAEF, 0x91CF, - 0xBAF0, 0x91D0, 0xBAF1, 0x91D1, 0xBAF2, 0x91D2, 0xBAF3, 0x91D3, - 0xBAF4, 0x91D4, 0xBAF5, 0x91D5, 0xBAF6, 0x91D6, 0xBAF7, 0x91D7, - 0xBAF8, 0x91D8, 0xBAF9, 0x91D9, 0xBAFA, 0x91DA, 0xBAFB, 0x91DB, - 0xBAFC, 0xB8FE, 0xBAFD, 0x91DC, 0xBAFE, 0x91DD, 0xBAFF, 0x91DE, - 0xBB00, 0xB9A1, 0xBB01, 0x91DF, 0xBB02, 0x91E0, 0xBB03, 0x91E1, - 0xBB04, 0xB9A2, 0xBB05, 0x91E2, 0xBB06, 0x91E3, 0xBB07, 0x91E4, - 0xBB08, 0x91E5, 0xBB09, 0x91E6, 0xBB0A, 0x91E7, 0xBB0B, 0x91E8, - 0xBB0C, 0x91E9, 0xBB0D, 0xB9A3, 0xBB0E, 0x91EA, 0xBB0F, 0xB9A4, - 0xBB10, 0x91EB, 0xBB11, 0xB9A5, 0xBB12, 0x91EC, 0xBB13, 0x91ED, - 0xBB14, 0x91EE, 0xBB15, 0x91EF, 0xBB16, 0x91F0, 0xBB17, 0x91F1, - 0xBB18, 0xB9A6, 0xBB19, 0x91F2, 0xBB1A, 0x91F3, 0xBB1B, 0x91F4, - 0xBB1C, 0xB9A7, 0xBB1D, 0x91F5, 0xBB1E, 0x91F6, 0xBB1F, 0x91F7, - 0xBB20, 0xB9A8, 0xBB21, 0x91F8, 0xBB22, 0x91F9, 0xBB23, 0x91FA, - 0xBB24, 0x91FB, 0xBB25, 0x91FC, 0xBB26, 0x91FD, 0xBB27, 0x91FE, - 0xBB28, 0x9241, 0xBB29, 0xB9A9, 0xBB2A, 0x9242, 0xBB2B, 0xB9AA, - 0xBB2C, 0x9243, 0xBB2D, 0x9244, 0xBB2E, 0x9245, 0xBB2F, 0x9246, - 0xBB30, 0x9247, 0xBB31, 0x9248, 0xBB32, 0x9249, 0xBB33, 0x924A, - 0xBB34, 0xB9AB, 0xBB35, 0xB9AC, 0xBB36, 0xB9AD, 0xBB37, 0x924B, - 0xBB38, 0xB9AE, 0xBB39, 0x924C, 0xBB3A, 0x924D, 0xBB3B, 0xB9AF, - 0xBB3C, 0xB9B0, 0xBB3D, 0xB9B1, 0xBB3E, 0xB9B2, 0xBB3F, 0x924E, - 0xBB40, 0x924F, 0xBB41, 0x9250, 0xBB42, 0x9251, 0xBB43, 0x9252, - 0xBB44, 0xB9B3, 0xBB45, 0xB9B4, 0xBB46, 0x9253, 0xBB47, 0xB9B5, - 0xBB48, 0x9254, 0xBB49, 0xB9B6, 0xBB4A, 0x9255, 0xBB4B, 0x9256, - 0xBB4C, 0x9257, 0xBB4D, 0xB9B7, 0xBB4E, 0x9258, 0xBB4F, 0xB9B8, - 0xBB50, 0xB9B9, 0xBB51, 0x9259, 0xBB52, 0x925A, 0xBB53, 0x9261, - 0xBB54, 0xB9BA, 0xBB55, 0x9262, 0xBB56, 0x9263, 0xBB57, 0x9264, - 0xBB58, 0xB9BB, 0xBB59, 0x9265, 0xBB5A, 0x9266, 0xBB5B, 0x9267, - 0xBB5C, 0x9268, 0xBB5D, 0x9269, 0xBB5E, 0x926A, 0xBB5F, 0x926B, - 0xBB60, 0x926C, 0xBB61, 0xB9BC, 0xBB62, 0x926D, 0xBB63, 0xB9BD, - 0xBB64, 0x926E, 0xBB65, 0x926F, 0xBB66, 0x9270, 0xBB67, 0x9271, - 0xBB68, 0x9272, 0xBB69, 0x9273, 0xBB6A, 0x9274, 0xBB6B, 0x9275, - 0xBB6C, 0xB9BE, 0xBB6D, 0x9276, 0xBB6E, 0x9277, 0xBB6F, 0x9278, - 0xBB70, 0x9279, 0xBB71, 0x927A, 0xBB72, 0x9281, 0xBB73, 0x9282, - 0xBB74, 0x9283, 0xBB75, 0x9284, 0xBB76, 0x9285, 0xBB77, 0x9286, - 0xBB78, 0x9287, 0xBB79, 0x9288, 0xBB7A, 0x9289, 0xBB7B, 0x928A, - 0xBB7C, 0x928B, 0xBB7D, 0x928C, 0xBB7E, 0x928D, 0xBB7F, 0x928E, - 0xBB80, 0x928F, 0xBB81, 0x9290, 0xBB82, 0x9291, 0xBB83, 0x9292, - 0xBB84, 0x9293, 0xBB85, 0x9294, 0xBB86, 0x9295, 0xBB87, 0x9296, - 0xBB88, 0xB9BF, 0xBB89, 0x9297, 0xBB8A, 0x9298, 0xBB8B, 0x9299, - 0xBB8C, 0xB9C0, 0xBB8D, 0x929A, 0xBB8E, 0x929B, 0xBB8F, 0x929C, - 0xBB90, 0xB9C1, 0xBB91, 0x929D, 0xBB92, 0x929E, 0xBB93, 0x929F, - 0xBB94, 0x92A0, 0xBB95, 0x92A1, 0xBB96, 0x92A2, 0xBB97, 0x92A3, - 0xBB98, 0x92A4, 0xBB99, 0x92A5, 0xBB9A, 0x92A6, 0xBB9B, 0x92A7, - 0xBB9C, 0x92A8, 0xBB9D, 0x92A9, 0xBB9E, 0x92AA, 0xBB9F, 0x92AB, - 0xBBA0, 0x92AC, 0xBBA1, 0x92AD, 0xBBA2, 0x92AE, 0xBBA3, 0x92AF, - 0xBBA4, 0xB9C2, 0xBBA5, 0x92B0, 0xBBA6, 0x92B1, 0xBBA7, 0x92B2, - 0xBBA8, 0xB9C3, 0xBBA9, 0x92B3, 0xBBAA, 0x92B4, 0xBBAB, 0x92B5, - 0xBBAC, 0xB9C4, 0xBBAD, 0x92B6, 0xBBAE, 0x92B7, 0xBBAF, 0x92B8, - 0xBBB0, 0x92B9, 0xBBB1, 0x92BA, 0xBBB2, 0x92BB, 0xBBB3, 0x92BC, - 0xBBB4, 0xB9C5, 0xBBB5, 0x92BD, 0xBBB6, 0x92BE, 0xBBB7, 0xB9C6, - 0xBBB8, 0x92BF, 0xBBB9, 0x92C0, 0xBBBA, 0x92C1, 0xBBBB, 0x92C2, - 0xBBBC, 0x92C3, 0xBBBD, 0x92C4, 0xBBBE, 0x92C5, 0xBBBF, 0x92C6, - 0xBBC0, 0xB9C7, 0xBBC1, 0x92C7, 0xBBC2, 0x92C8, 0xBBC3, 0x92C9, - 0xBBC4, 0xB9C8, 0xBBC5, 0x92CA, 0xBBC6, 0x92CB, 0xBBC7, 0x92CC, - 0xBBC8, 0xB9C9, 0xBBC9, 0x92CD, 0xBBCA, 0x92CE, 0xBBCB, 0x92CF, - 0xBBCC, 0x92D0, 0xBBCD, 0x92D1, 0xBBCE, 0x92D2, 0xBBCF, 0x92D3, - 0xBBD0, 0xB9CA, 0xBBD1, 0x92D4, 0xBBD2, 0x92D5, 0xBBD3, 0xB9CB, - 0xBBD4, 0x92D6, 0xBBD5, 0x92D7, 0xBBD6, 0x92D8, 0xBBD7, 0x92D9, - 0xBBD8, 0x92DA, 0xBBD9, 0x92DB, 0xBBDA, 0x92DC, 0xBBDB, 0x92DD, - 0xBBDC, 0x92DE, 0xBBDD, 0x92DF, 0xBBDE, 0x92E0, 0xBBDF, 0x92E1, - 0xBBE0, 0x92E2, 0xBBE1, 0x92E3, 0xBBE2, 0x92E4, 0xBBE3, 0x92E5, - 0xBBE4, 0x92E6, 0xBBE5, 0x92E7, 0xBBE6, 0x92E8, 0xBBE7, 0x92E9, - 0xBBE8, 0x92EA, 0xBBE9, 0x92EB, 0xBBEA, 0x92EC, 0xBBEB, 0x92ED, - 0xBBEC, 0x92EE, 0xBBED, 0x92EF, 0xBBEE, 0x92F0, 0xBBEF, 0x92F1, - 0xBBF0, 0x92F2, 0xBBF1, 0x92F3, 0xBBF2, 0x92F4, 0xBBF3, 0x92F5, - 0xBBF4, 0x92F6, 0xBBF5, 0x92F7, 0xBBF6, 0x92F8, 0xBBF7, 0x92F9, - 0xBBF8, 0xB9CC, 0xBBF9, 0xB9CD, 0xBBFA, 0x92FA, 0xBBFB, 0x92FB, - 0xBBFC, 0xB9CE, 0xBBFD, 0x92FC, 0xBBFE, 0x92FD, 0xBBFF, 0xB9CF, - 0xBC00, 0xB9D0, 0xBC01, 0x92FE, 0xBC02, 0xB9D1, 0xBC03, 0x9341, - 0xBC04, 0x9342, 0xBC05, 0x9343, 0xBC06, 0x9344, 0xBC07, 0x9345, - 0xBC08, 0xB9D2, 0xBC09, 0xB9D3, 0xBC0A, 0x9346, 0xBC0B, 0xB9D4, - 0xBC0C, 0xB9D5, 0xBC0D, 0xB9D6, 0xBC0E, 0x9347, 0xBC0F, 0xB9D7, - 0xBC10, 0x9348, 0xBC11, 0xB9D8, 0xBC12, 0x9349, 0xBC13, 0x934A, - 0xBC14, 0xB9D9, 0xBC15, 0xB9DA, 0xBC16, 0xB9DB, 0xBC17, 0xB9DC, - 0xBC18, 0xB9DD, 0xBC19, 0x934B, 0xBC1A, 0x934C, 0xBC1B, 0xB9DE, - 0xBC1C, 0xB9DF, 0xBC1D, 0xB9E0, 0xBC1E, 0xB9E1, 0xBC1F, 0xB9E2, - 0xBC20, 0x934D, 0xBC21, 0x934E, 0xBC22, 0x934F, 0xBC23, 0x9350, - 0xBC24, 0xB9E3, 0xBC25, 0xB9E4, 0xBC26, 0x9351, 0xBC27, 0xB9E5, - 0xBC28, 0x9352, 0xBC29, 0xB9E6, 0xBC2A, 0x9353, 0xBC2B, 0x9354, - 0xBC2C, 0x9355, 0xBC2D, 0xB9E7, 0xBC2E, 0x9356, 0xBC2F, 0x9357, - 0xBC30, 0xB9E8, 0xBC31, 0xB9E9, 0xBC32, 0x9358, 0xBC33, 0x9359, - 0xBC34, 0xB9EA, 0xBC35, 0x935A, 0xBC36, 0x9361, 0xBC37, 0x9362, - 0xBC38, 0xB9EB, 0xBC39, 0x9363, 0xBC3A, 0x9364, 0xBC3B, 0x9365, - 0xBC3C, 0x9366, 0xBC3D, 0x9367, 0xBC3E, 0x9368, 0xBC3F, 0x9369, - 0xBC40, 0xB9EC, 0xBC41, 0xB9ED, 0xBC42, 0x936A, 0xBC43, 0xB9EE, - 0xBC44, 0xB9EF, 0xBC45, 0xB9F0, 0xBC46, 0x936B, 0xBC47, 0x936C, - 0xBC48, 0x936D, 0xBC49, 0xB9F1, 0xBC4A, 0x936E, 0xBC4B, 0x936F, - 0xBC4C, 0xB9F2, 0xBC4D, 0xB9F3, 0xBC4E, 0x9370, 0xBC4F, 0x9371, - 0xBC50, 0xB9F4, 0xBC51, 0x9372, 0xBC52, 0x9373, 0xBC53, 0x9374, - 0xBC54, 0x9375, 0xBC55, 0x9376, 0xBC56, 0x9377, 0xBC57, 0x9378, - 0xBC58, 0x9379, 0xBC59, 0x937A, 0xBC5A, 0x9381, 0xBC5B, 0x9382, - 0xBC5C, 0x9383, 0xBC5D, 0xB9F5, 0xBC5E, 0x9384, 0xBC5F, 0x9385, - 0xBC60, 0x9386, 0xBC61, 0x9387, 0xBC62, 0x9388, 0xBC63, 0x9389, - 0xBC64, 0x938A, 0xBC65, 0x938B, 0xBC66, 0x938C, 0xBC67, 0x938D, - 0xBC68, 0x938E, 0xBC69, 0x938F, 0xBC6A, 0x9390, 0xBC6B, 0x9391, - 0xBC6C, 0x9392, 0xBC6D, 0x9393, 0xBC6E, 0x9394, 0xBC6F, 0x9395, - 0xBC70, 0x9396, 0xBC71, 0x9397, 0xBC72, 0x9398, 0xBC73, 0x9399, - 0xBC74, 0x939A, 0xBC75, 0x939B, 0xBC76, 0x939C, 0xBC77, 0x939D, - 0xBC78, 0x939E, 0xBC79, 0x939F, 0xBC7A, 0x93A0, 0xBC7B, 0x93A1, - 0xBC7C, 0x93A2, 0xBC7D, 0x93A3, 0xBC7E, 0x93A4, 0xBC7F, 0x93A5, - 0xBC80, 0x93A6, 0xBC81, 0x93A7, 0xBC82, 0x93A8, 0xBC83, 0x93A9, - 0xBC84, 0xB9F6, 0xBC85, 0xB9F7, 0xBC86, 0x93AA, 0xBC87, 0x93AB, - 0xBC88, 0xB9F8, 0xBC89, 0x93AC, 0xBC8A, 0x93AD, 0xBC8B, 0xB9F9, - 0xBC8C, 0xB9FA, 0xBC8D, 0x93AE, 0xBC8E, 0xB9FB, 0xBC8F, 0x93AF, - 0xBC90, 0x93B0, 0xBC91, 0x93B1, 0xBC92, 0x93B2, 0xBC93, 0x93B3, - 0xBC94, 0xB9FC, 0xBC95, 0xB9FD, 0xBC96, 0x93B4, 0xBC97, 0xB9FE, - 0xBC98, 0x93B5, 0xBC99, 0xBAA1, 0xBC9A, 0xBAA2, 0xBC9B, 0x93B6, - 0xBC9C, 0x93B7, 0xBC9D, 0x93B8, 0xBC9E, 0x93B9, 0xBC9F, 0x93BA, - 0xBCA0, 0xBAA3, 0xBCA1, 0xBAA4, 0xBCA2, 0x93BB, 0xBCA3, 0x93BC, - 0xBCA4, 0xBAA5, 0xBCA5, 0x93BD, 0xBCA6, 0x93BE, 0xBCA7, 0xBAA6, - 0xBCA8, 0xBAA7, 0xBCA9, 0x93BF, 0xBCAA, 0x93C0, 0xBCAB, 0x93C1, - 0xBCAC, 0x93C2, 0xBCAD, 0x93C3, 0xBCAE, 0x93C4, 0xBCAF, 0x93C5, - 0xBCB0, 0xBAA8, 0xBCB1, 0xBAA9, 0xBCB2, 0x93C6, 0xBCB3, 0xBAAA, - 0xBCB4, 0xBAAB, 0xBCB5, 0xBAAC, 0xBCB6, 0x93C7, 0xBCB7, 0x93C8, - 0xBCB8, 0x93C9, 0xBCB9, 0x93CA, 0xBCBA, 0x93CB, 0xBCBB, 0x93CC, - 0xBCBC, 0xBAAD, 0xBCBD, 0xBAAE, 0xBCBE, 0x93CD, 0xBCBF, 0x93CE, - 0xBCC0, 0xBAAF, 0xBCC1, 0x93CF, 0xBCC2, 0x93D0, 0xBCC3, 0x93D1, - 0xBCC4, 0xBAB0, 0xBCC5, 0x93D2, 0xBCC6, 0x93D3, 0xBCC7, 0x93D4, - 0xBCC8, 0x93D5, 0xBCC9, 0x93D6, 0xBCCA, 0x93D7, 0xBCCB, 0x93D8, - 0xBCCC, 0x93D9, 0xBCCD, 0xBAB1, 0xBCCE, 0x93DA, 0xBCCF, 0xBAB2, - 0xBCD0, 0xBAB3, 0xBCD1, 0xBAB4, 0xBCD2, 0x93DB, 0xBCD3, 0x93DC, - 0xBCD4, 0x93DD, 0xBCD5, 0xBAB5, 0xBCD6, 0x93DE, 0xBCD7, 0x93DF, - 0xBCD8, 0xBAB6, 0xBCD9, 0x93E0, 0xBCDA, 0x93E1, 0xBCDB, 0x93E2, - 0xBCDC, 0xBAB7, 0xBCDD, 0x93E3, 0xBCDE, 0x93E4, 0xBCDF, 0x93E5, - 0xBCE0, 0x93E6, 0xBCE1, 0x93E7, 0xBCE2, 0x93E8, 0xBCE3, 0x93E9, - 0xBCE4, 0x93EA, 0xBCE5, 0x93EB, 0xBCE6, 0x93EC, 0xBCE7, 0x93ED, - 0xBCE8, 0x93EE, 0xBCE9, 0x93EF, 0xBCEA, 0x93F0, 0xBCEB, 0x93F1, - 0xBCEC, 0x93F2, 0xBCED, 0x93F3, 0xBCEE, 0x93F4, 0xBCEF, 0x93F5, - 0xBCF0, 0x93F6, 0xBCF1, 0x93F7, 0xBCF2, 0x93F8, 0xBCF3, 0x93F9, - 0xBCF4, 0xBAB8, 0xBCF5, 0xBAB9, 0xBCF6, 0xBABA, 0xBCF7, 0x93FA, - 0xBCF8, 0xBABB, 0xBCF9, 0x93FB, 0xBCFA, 0x93FC, 0xBCFB, 0x93FD, - 0xBCFC, 0xBABC, 0xBCFD, 0x93FE, 0xBCFE, 0x9441, 0xBCFF, 0x9442, - 0xBD00, 0x9443, 0xBD01, 0x9444, 0xBD02, 0x9445, 0xBD03, 0x9446, - 0xBD04, 0xBABD, 0xBD05, 0xBABE, 0xBD06, 0x9447, 0xBD07, 0xBABF, - 0xBD08, 0x9448, 0xBD09, 0xBAC0, 0xBD0A, 0x9449, 0xBD0B, 0x944A, - 0xBD0C, 0x944B, 0xBD0D, 0x944C, 0xBD0E, 0x944D, 0xBD0F, 0x944E, - 0xBD10, 0xBAC1, 0xBD11, 0x944F, 0xBD12, 0x9450, 0xBD13, 0x9451, - 0xBD14, 0xBAC2, 0xBD15, 0x9452, 0xBD16, 0x9453, 0xBD17, 0x9454, - 0xBD18, 0x9455, 0xBD19, 0x9456, 0xBD1A, 0x9457, 0xBD1B, 0x9458, - 0xBD1C, 0x9459, 0xBD1D, 0x945A, 0xBD1E, 0x9461, 0xBD1F, 0x9462, - 0xBD20, 0x9463, 0xBD21, 0x9464, 0xBD22, 0x9465, 0xBD23, 0x9466, - 0xBD24, 0xBAC3, 0xBD25, 0x9467, 0xBD26, 0x9468, 0xBD27, 0x9469, - 0xBD28, 0x946A, 0xBD29, 0x946B, 0xBD2A, 0x946C, 0xBD2B, 0x946D, - 0xBD2C, 0xBAC4, 0xBD2D, 0x946E, 0xBD2E, 0x946F, 0xBD2F, 0x9470, - 0xBD30, 0x9471, 0xBD31, 0x9472, 0xBD32, 0x9473, 0xBD33, 0x9474, - 0xBD34, 0x9475, 0xBD35, 0x9476, 0xBD36, 0x9477, 0xBD37, 0x9478, - 0xBD38, 0x9479, 0xBD39, 0x947A, 0xBD3A, 0x9481, 0xBD3B, 0x9482, - 0xBD3C, 0x9483, 0xBD3D, 0x9484, 0xBD3E, 0x9485, 0xBD3F, 0x9486, - 0xBD40, 0xBAC5, 0xBD41, 0x9487, 0xBD42, 0x9488, 0xBD43, 0x9489, - 0xBD44, 0x948A, 0xBD45, 0x948B, 0xBD46, 0x948C, 0xBD47, 0x948D, - 0xBD48, 0xBAC6, 0xBD49, 0xBAC7, 0xBD4A, 0x948E, 0xBD4B, 0x948F, - 0xBD4C, 0xBAC8, 0xBD4D, 0x9490, 0xBD4E, 0x9491, 0xBD4F, 0x9492, - 0xBD50, 0xBAC9, 0xBD51, 0x9493, 0xBD52, 0x9494, 0xBD53, 0x9495, - 0xBD54, 0x9496, 0xBD55, 0x9497, 0xBD56, 0x9498, 0xBD57, 0x9499, - 0xBD58, 0xBACA, 0xBD59, 0xBACB, 0xBD5A, 0x949A, 0xBD5B, 0x949B, - 0xBD5C, 0x949C, 0xBD5D, 0x949D, 0xBD5E, 0x949E, 0xBD5F, 0x949F, - 0xBD60, 0x94A0, 0xBD61, 0x94A1, 0xBD62, 0x94A2, 0xBD63, 0x94A3, - 0xBD64, 0xBACC, 0xBD65, 0x94A4, 0xBD66, 0x94A5, 0xBD67, 0x94A6, - 0xBD68, 0xBACD, 0xBD69, 0x94A7, 0xBD6A, 0x94A8, 0xBD6B, 0x94A9, - 0xBD6C, 0x94AA, 0xBD6D, 0x94AB, 0xBD6E, 0x94AC, 0xBD6F, 0x94AD, - 0xBD70, 0x94AE, 0xBD71, 0x94AF, 0xBD72, 0x94B0, 0xBD73, 0x94B1, - 0xBD74, 0x94B2, 0xBD75, 0x94B3, 0xBD76, 0x94B4, 0xBD77, 0x94B5, - 0xBD78, 0x94B6, 0xBD79, 0x94B7, 0xBD7A, 0x94B8, 0xBD7B, 0x94B9, - 0xBD7C, 0x94BA, 0xBD7D, 0x94BB, 0xBD7E, 0x94BC, 0xBD7F, 0x94BD, - 0xBD80, 0xBACE, 0xBD81, 0xBACF, 0xBD82, 0x94BE, 0xBD83, 0x94BF, - 0xBD84, 0xBAD0, 0xBD85, 0x94C0, 0xBD86, 0x94C1, 0xBD87, 0xBAD1, - 0xBD88, 0xBAD2, 0xBD89, 0xBAD3, 0xBD8A, 0xBAD4, 0xBD8B, 0x94C2, - 0xBD8C, 0x94C3, 0xBD8D, 0x94C4, 0xBD8E, 0x94C5, 0xBD8F, 0x94C6, - 0xBD90, 0xBAD5, 0xBD91, 0xBAD6, 0xBD92, 0x94C7, 0xBD93, 0xBAD7, - 0xBD94, 0x94C8, 0xBD95, 0xBAD8, 0xBD96, 0x94C9, 0xBD97, 0x94CA, - 0xBD98, 0x94CB, 0xBD99, 0xBAD9, 0xBD9A, 0xBADA, 0xBD9B, 0x94CC, - 0xBD9C, 0xBADB, 0xBD9D, 0x94CD, 0xBD9E, 0x94CE, 0xBD9F, 0x94CF, - 0xBDA0, 0x94D0, 0xBDA1, 0x94D1, 0xBDA2, 0x94D2, 0xBDA3, 0x94D3, - 0xBDA4, 0xBADC, 0xBDA5, 0x94D4, 0xBDA6, 0x94D5, 0xBDA7, 0x94D6, - 0xBDA8, 0x94D7, 0xBDA9, 0x94D8, 0xBDAA, 0x94D9, 0xBDAB, 0x94DA, - 0xBDAC, 0x94DB, 0xBDAD, 0x94DC, 0xBDAE, 0x94DD, 0xBDAF, 0x94DE, - 0xBDB0, 0xBADD, 0xBDB1, 0x94DF, 0xBDB2, 0x94E0, 0xBDB3, 0x94E1, - 0xBDB4, 0x94E2, 0xBDB5, 0x94E3, 0xBDB6, 0x94E4, 0xBDB7, 0x94E5, - 0xBDB8, 0xBADE, 0xBDB9, 0x94E6, 0xBDBA, 0x94E7, 0xBDBB, 0x94E8, - 0xBDBC, 0x94E9, 0xBDBD, 0x94EA, 0xBDBE, 0x94EB, 0xBDBF, 0x94EC, - 0xBDC0, 0x94ED, 0xBDC1, 0x94EE, 0xBDC2, 0x94EF, 0xBDC3, 0x94F0, - 0xBDC4, 0x94F1, 0xBDC5, 0x94F2, 0xBDC6, 0x94F3, 0xBDC7, 0x94F4, - 0xBDC8, 0x94F5, 0xBDC9, 0x94F6, 0xBDCA, 0x94F7, 0xBDCB, 0x94F8, - 0xBDCC, 0x94F9, 0xBDCD, 0x94FA, 0xBDCE, 0x94FB, 0xBDCF, 0x94FC, - 0xBDD0, 0x94FD, 0xBDD1, 0x94FE, 0xBDD2, 0x9541, 0xBDD3, 0x9542, - 0xBDD4, 0xBADF, 0xBDD5, 0xBAE0, 0xBDD6, 0x9543, 0xBDD7, 0x9544, - 0xBDD8, 0xBAE1, 0xBDD9, 0x9545, 0xBDDA, 0x9546, 0xBDDB, 0x9547, - 0xBDDC, 0xBAE2, 0xBDDD, 0x9548, 0xBDDE, 0x9549, 0xBDDF, 0x954A, - 0xBDE0, 0x954B, 0xBDE1, 0x954C, 0xBDE2, 0x954D, 0xBDE3, 0x954E, - 0xBDE4, 0x954F, 0xBDE5, 0x9550, 0xBDE6, 0x9551, 0xBDE7, 0x9552, - 0xBDE8, 0x9553, 0xBDE9, 0xBAE3, 0xBDEA, 0x9554, 0xBDEB, 0x9555, - 0xBDEC, 0x9556, 0xBDED, 0x9557, 0xBDEE, 0x9558, 0xBDEF, 0x9559, - 0xBDF0, 0xBAE4, 0xBDF1, 0x955A, 0xBDF2, 0x9561, 0xBDF3, 0x9562, - 0xBDF4, 0xBAE5, 0xBDF5, 0x9563, 0xBDF6, 0x9564, 0xBDF7, 0x9565, - 0xBDF8, 0xBAE6, 0xBDF9, 0x9566, 0xBDFA, 0x9567, 0xBDFB, 0x9568, - 0xBDFC, 0x9569, 0xBDFD, 0x956A, 0xBDFE, 0x956B, 0xBDFF, 0x956C, - 0xBE00, 0xBAE7, 0xBE01, 0x956D, 0xBE02, 0x956E, 0xBE03, 0xBAE8, - 0xBE04, 0x956F, 0xBE05, 0xBAE9, 0xBE06, 0x9570, 0xBE07, 0x9571, - 0xBE08, 0x9572, 0xBE09, 0x9573, 0xBE0A, 0x9574, 0xBE0B, 0x9575, - 0xBE0C, 0xBAEA, 0xBE0D, 0xBAEB, 0xBE0E, 0x9576, 0xBE0F, 0x9577, - 0xBE10, 0xBAEC, 0xBE11, 0x9578, 0xBE12, 0x9579, 0xBE13, 0x957A, - 0xBE14, 0xBAED, 0xBE15, 0x9581, 0xBE16, 0x9582, 0xBE17, 0x9583, - 0xBE18, 0x9584, 0xBE19, 0x9585, 0xBE1A, 0x9586, 0xBE1B, 0x9587, - 0xBE1C, 0xBAEE, 0xBE1D, 0xBAEF, 0xBE1E, 0x9588, 0xBE1F, 0xBAF0, - 0xBE20, 0x9589, 0xBE21, 0x958A, 0xBE22, 0x958B, 0xBE23, 0x958C, - 0xBE24, 0x958D, 0xBE25, 0x958E, 0xBE26, 0x958F, 0xBE27, 0x9590, - 0xBE28, 0x9591, 0xBE29, 0x9592, 0xBE2A, 0x9593, 0xBE2B, 0x9594, - 0xBE2C, 0x9595, 0xBE2D, 0x9596, 0xBE2E, 0x9597, 0xBE2F, 0x9598, - 0xBE30, 0x9599, 0xBE31, 0x959A, 0xBE32, 0x959B, 0xBE33, 0x959C, - 0xBE34, 0x959D, 0xBE35, 0x959E, 0xBE36, 0x959F, 0xBE37, 0x95A0, - 0xBE38, 0x95A1, 0xBE39, 0x95A2, 0xBE3A, 0x95A3, 0xBE3B, 0x95A4, - 0xBE3C, 0x95A5, 0xBE3D, 0x95A6, 0xBE3E, 0x95A7, 0xBE3F, 0x95A8, - 0xBE40, 0x95A9, 0xBE41, 0x95AA, 0xBE42, 0x95AB, 0xBE43, 0x95AC, - 0xBE44, 0xBAF1, 0xBE45, 0xBAF2, 0xBE46, 0x95AD, 0xBE47, 0x95AE, - 0xBE48, 0xBAF3, 0xBE49, 0x95AF, 0xBE4A, 0x95B0, 0xBE4B, 0x95B1, - 0xBE4C, 0xBAF4, 0xBE4D, 0x95B2, 0xBE4E, 0xBAF5, 0xBE4F, 0x95B3, - 0xBE50, 0x95B4, 0xBE51, 0x95B5, 0xBE52, 0x95B6, 0xBE53, 0x95B7, - 0xBE54, 0xBAF6, 0xBE55, 0xBAF7, 0xBE56, 0x95B8, 0xBE57, 0xBAF8, - 0xBE58, 0x95B9, 0xBE59, 0xBAF9, 0xBE5A, 0xBAFA, 0xBE5B, 0xBAFB, - 0xBE5C, 0x95BA, 0xBE5D, 0x95BB, 0xBE5E, 0x95BC, 0xBE5F, 0x95BD, - 0xBE60, 0xBAFC, 0xBE61, 0xBAFD, 0xBE62, 0x95BE, 0xBE63, 0x95BF, - 0xBE64, 0xBAFE, 0xBE65, 0x95C0, 0xBE66, 0x95C1, 0xBE67, 0x95C2, - 0xBE68, 0xBBA1, 0xBE69, 0x95C3, 0xBE6A, 0xBBA2, 0xBE6B, 0x95C4, - 0xBE6C, 0x95C5, 0xBE6D, 0x95C6, 0xBE6E, 0x95C7, 0xBE6F, 0x95C8, - 0xBE70, 0xBBA3, 0xBE71, 0xBBA4, 0xBE72, 0x95C9, 0xBE73, 0xBBA5, - 0xBE74, 0xBBA6, 0xBE75, 0xBBA7, 0xBE76, 0x95CA, 0xBE77, 0x95CB, - 0xBE78, 0x95CC, 0xBE79, 0x95CD, 0xBE7A, 0x95CE, 0xBE7B, 0xBBA8, - 0xBE7C, 0xBBA9, 0xBE7D, 0xBBAA, 0xBE7E, 0x95CF, 0xBE7F, 0x95D0, - 0xBE80, 0xBBAB, 0xBE81, 0x95D1, 0xBE82, 0x95D2, 0xBE83, 0x95D3, - 0xBE84, 0xBBAC, 0xBE85, 0x95D4, 0xBE86, 0x95D5, 0xBE87, 0x95D6, - 0xBE88, 0x95D7, 0xBE89, 0x95D8, 0xBE8A, 0x95D9, 0xBE8B, 0x95DA, - 0xBE8C, 0xBBAD, 0xBE8D, 0xBBAE, 0xBE8E, 0x95DB, 0xBE8F, 0xBBAF, - 0xBE90, 0xBBB0, 0xBE91, 0xBBB1, 0xBE92, 0x95DC, 0xBE93, 0x95DD, - 0xBE94, 0x95DE, 0xBE95, 0x95DF, 0xBE96, 0x95E0, 0xBE97, 0x95E1, - 0xBE98, 0xBBB2, 0xBE99, 0xBBB3, 0xBE9A, 0x95E2, 0xBE9B, 0x95E3, - 0xBE9C, 0x95E4, 0xBE9D, 0x95E5, 0xBE9E, 0x95E6, 0xBE9F, 0x95E7, - 0xBEA0, 0x95E8, 0xBEA1, 0x95E9, 0xBEA2, 0x95EA, 0xBEA3, 0x95EB, - 0xBEA4, 0x95EC, 0xBEA5, 0x95ED, 0xBEA6, 0x95EE, 0xBEA7, 0x95EF, - 0xBEA8, 0xBBB4, 0xBEA9, 0x95F0, 0xBEAA, 0x95F1, 0xBEAB, 0x95F2, - 0xBEAC, 0x95F3, 0xBEAD, 0x95F4, 0xBEAE, 0x95F5, 0xBEAF, 0x95F6, - 0xBEB0, 0x95F7, 0xBEB1, 0x95F8, 0xBEB2, 0x95F9, 0xBEB3, 0x95FA, - 0xBEB4, 0x95FB, 0xBEB5, 0x95FC, 0xBEB6, 0x95FD, 0xBEB7, 0x95FE, - 0xBEB8, 0x9641, 0xBEB9, 0x9642, 0xBEBA, 0x9643, 0xBEBB, 0x9644, - 0xBEBC, 0x9645, 0xBEBD, 0x9646, 0xBEBE, 0x9647, 0xBEBF, 0x9648, - 0xBEC0, 0x9649, 0xBEC1, 0x964A, 0xBEC2, 0x964B, 0xBEC3, 0x964C, - 0xBEC4, 0x964D, 0xBEC5, 0x964E, 0xBEC6, 0x964F, 0xBEC7, 0x9650, - 0xBEC8, 0x9651, 0xBEC9, 0x9652, 0xBECA, 0x9653, 0xBECB, 0x9654, - 0xBECC, 0x9655, 0xBECD, 0x9656, 0xBECE, 0x9657, 0xBECF, 0x9658, - 0xBED0, 0xBBB5, 0xBED1, 0xBBB6, 0xBED2, 0x9659, 0xBED3, 0x965A, - 0xBED4, 0xBBB7, 0xBED5, 0x9661, 0xBED6, 0x9662, 0xBED7, 0xBBB8, - 0xBED8, 0xBBB9, 0xBED9, 0x9663, 0xBEDA, 0x9664, 0xBEDB, 0x9665, - 0xBEDC, 0x9666, 0xBEDD, 0x9667, 0xBEDE, 0x9668, 0xBEDF, 0x9669, - 0xBEE0, 0xBBBA, 0xBEE1, 0x966A, 0xBEE2, 0x966B, 0xBEE3, 0xBBBB, - 0xBEE4, 0xBBBC, 0xBEE5, 0xBBBD, 0xBEE6, 0x966C, 0xBEE7, 0x966D, - 0xBEE8, 0x966E, 0xBEE9, 0x966F, 0xBEEA, 0x9670, 0xBEEB, 0x9671, - 0xBEEC, 0xBBBE, 0xBEED, 0x9672, 0xBEEE, 0x9673, 0xBEEF, 0x9674, - 0xBEF0, 0x9675, 0xBEF1, 0x9676, 0xBEF2, 0x9677, 0xBEF3, 0x9678, - 0xBEF4, 0x9679, 0xBEF5, 0x967A, 0xBEF6, 0x9681, 0xBEF7, 0x9682, - 0xBEF8, 0x9683, 0xBEF9, 0x9684, 0xBEFA, 0x9685, 0xBEFB, 0x9686, - 0xBEFC, 0x9687, 0xBEFD, 0x9688, 0xBEFE, 0x9689, 0xBEFF, 0x968A, - 0xBF00, 0x968B, 0xBF01, 0xBBBF, 0xBF02, 0x968C, 0xBF03, 0x968D, - 0xBF04, 0x968E, 0xBF05, 0x968F, 0xBF06, 0x9690, 0xBF07, 0x9691, - 0xBF08, 0xBBC0, 0xBF09, 0xBBC1, 0xBF0A, 0x9692, 0xBF0B, 0x9693, - 0xBF0C, 0x9694, 0xBF0D, 0x9695, 0xBF0E, 0x9696, 0xBF0F, 0x9697, - 0xBF10, 0x9698, 0xBF11, 0x9699, 0xBF12, 0x969A, 0xBF13, 0x969B, - 0xBF14, 0x969C, 0xBF15, 0x969D, 0xBF16, 0x969E, 0xBF17, 0x969F, - 0xBF18, 0xBBC2, 0xBF19, 0xBBC3, 0xBF1A, 0x96A0, 0xBF1B, 0xBBC4, - 0xBF1C, 0xBBC5, 0xBF1D, 0xBBC6, 0xBF1E, 0x96A1, 0xBF1F, 0x96A2, - 0xBF20, 0x96A3, 0xBF21, 0x96A4, 0xBF22, 0x96A5, 0xBF23, 0x96A6, - 0xBF24, 0x96A7, 0xBF25, 0x96A8, 0xBF26, 0x96A9, 0xBF27, 0x96AA, - 0xBF28, 0x96AB, 0xBF29, 0x96AC, 0xBF2A, 0x96AD, 0xBF2B, 0x96AE, - 0xBF2C, 0x96AF, 0xBF2D, 0x96B0, 0xBF2E, 0x96B1, 0xBF2F, 0x96B2, - 0xBF30, 0x96B3, 0xBF31, 0x96B4, 0xBF32, 0x96B5, 0xBF33, 0x96B6, - 0xBF34, 0x96B7, 0xBF35, 0x96B8, 0xBF36, 0x96B9, 0xBF37, 0x96BA, - 0xBF38, 0x96BB, 0xBF39, 0x96BC, 0xBF3A, 0x96BD, 0xBF3B, 0x96BE, - 0xBF3C, 0x96BF, 0xBF3D, 0x96C0, 0xBF3E, 0x96C1, 0xBF3F, 0x96C2, - 0xBF40, 0xBBC7, 0xBF41, 0xBBC8, 0xBF42, 0x96C3, 0xBF43, 0x96C4, - 0xBF44, 0xBBC9, 0xBF45, 0x96C5, 0xBF46, 0x96C6, 0xBF47, 0x96C7, - 0xBF48, 0xBBCA, 0xBF49, 0x96C8, 0xBF4A, 0x96C9, 0xBF4B, 0x96CA, - 0xBF4C, 0x96CB, 0xBF4D, 0x96CC, 0xBF4E, 0x96CD, 0xBF4F, 0x96CE, - 0xBF50, 0xBBCB, 0xBF51, 0xBBCC, 0xBF52, 0x96CF, 0xBF53, 0x96D0, - 0xBF54, 0x96D1, 0xBF55, 0xBBCD, 0xBF56, 0x96D2, 0xBF57, 0x96D3, - 0xBF58, 0x96D4, 0xBF59, 0x96D5, 0xBF5A, 0x96D6, 0xBF5B, 0x96D7, - 0xBF5C, 0x96D8, 0xBF5D, 0x96D9, 0xBF5E, 0x96DA, 0xBF5F, 0x96DB, - 0xBF60, 0x96DC, 0xBF61, 0x96DD, 0xBF62, 0x96DE, 0xBF63, 0x96DF, - 0xBF64, 0x96E0, 0xBF65, 0x96E1, 0xBF66, 0x96E2, 0xBF67, 0x96E3, - 0xBF68, 0x96E4, 0xBF69, 0x96E5, 0xBF6A, 0x96E6, 0xBF6B, 0x96E7, - 0xBF6C, 0x96E8, 0xBF6D, 0x96E9, 0xBF6E, 0x96EA, 0xBF6F, 0x96EB, - 0xBF70, 0x96EC, 0xBF71, 0x96ED, 0xBF72, 0x96EE, 0xBF73, 0x96EF, - 0xBF74, 0x96F0, 0xBF75, 0x96F1, 0xBF76, 0x96F2, 0xBF77, 0x96F3, - 0xBF78, 0x96F4, 0xBF79, 0x96F5, 0xBF7A, 0x96F6, 0xBF7B, 0x96F7, - 0xBF7C, 0x96F8, 0xBF7D, 0x96F9, 0xBF7E, 0x96FA, 0xBF7F, 0x96FB, - 0xBF80, 0x96FC, 0xBF81, 0x96FD, 0xBF82, 0x96FE, 0xBF83, 0x9741, - 0xBF84, 0x9742, 0xBF85, 0x9743, 0xBF86, 0x9744, 0xBF87, 0x9745, - 0xBF88, 0x9746, 0xBF89, 0x9747, 0xBF8A, 0x9748, 0xBF8B, 0x9749, - 0xBF8C, 0x974A, 0xBF8D, 0x974B, 0xBF8E, 0x974C, 0xBF8F, 0x974D, - 0xBF90, 0x974E, 0xBF91, 0x974F, 0xBF92, 0x9750, 0xBF93, 0x9751, - 0xBF94, 0xBBCE, 0xBF95, 0x9752, 0xBF96, 0x9753, 0xBF97, 0x9754, - 0xBF98, 0x9755, 0xBF99, 0x9756, 0xBF9A, 0x9757, 0xBF9B, 0x9758, - 0xBF9C, 0x9759, 0xBF9D, 0x975A, 0xBF9E, 0x9761, 0xBF9F, 0x9762, - 0xBFA0, 0x9763, 0xBFA1, 0x9764, 0xBFA2, 0x9765, 0xBFA3, 0x9766, - 0xBFA4, 0x9767, 0xBFA5, 0x9768, 0xBFA6, 0x9769, 0xBFA7, 0x976A, - 0xBFA8, 0x976B, 0xBFA9, 0x976C, 0xBFAA, 0x976D, 0xBFAB, 0x976E, - 0xBFAC, 0x976F, 0xBFAD, 0x9770, 0xBFAE, 0x9771, 0xBFAF, 0x9772, - 0xBFB0, 0xBBCF, 0xBFB1, 0x9773, 0xBFB2, 0x9774, 0xBFB3, 0x9775, - 0xBFB4, 0x9776, 0xBFB5, 0x9777, 0xBFB6, 0x9778, 0xBFB7, 0x9779, - 0xBFB8, 0x977A, 0xBFB9, 0x9781, 0xBFBA, 0x9782, 0xBFBB, 0x9783, - 0xBFBC, 0x9784, 0xBFBD, 0x9785, 0xBFBE, 0x9786, 0xBFBF, 0x9787, - 0xBFC0, 0x9788, 0xBFC1, 0x9789, 0xBFC2, 0x978A, 0xBFC3, 0x978B, - 0xBFC4, 0x978C, 0xBFC5, 0xBBD0, 0xBFC6, 0x978D, 0xBFC7, 0x978E, - 0xBFC8, 0x978F, 0xBFC9, 0x9790, 0xBFCA, 0x9791, 0xBFCB, 0x9792, - 0xBFCC, 0xBBD1, 0xBFCD, 0xBBD2, 0xBFCE, 0x9793, 0xBFCF, 0x9794, - 0xBFD0, 0xBBD3, 0xBFD1, 0x9795, 0xBFD2, 0x9796, 0xBFD3, 0x9797, - 0xBFD4, 0xBBD4, 0xBFD5, 0x9798, 0xBFD6, 0x9799, 0xBFD7, 0x979A, - 0xBFD8, 0x979B, 0xBFD9, 0x979C, 0xBFDA, 0x979D, 0xBFDB, 0x979E, - 0xBFDC, 0xBBD5, 0xBFDD, 0x979F, 0xBFDE, 0x97A0, 0xBFDF, 0xBBD6, - 0xBFE0, 0x97A1, 0xBFE1, 0xBBD7, 0xBFE2, 0x97A2, 0xBFE3, 0x97A3, - 0xBFE4, 0x97A4, 0xBFE5, 0x97A5, 0xBFE6, 0x97A6, 0xBFE7, 0x97A7, - 0xBFE8, 0x97A8, 0xBFE9, 0x97A9, 0xBFEA, 0x97AA, 0xBFEB, 0x97AB, - 0xBFEC, 0x97AC, 0xBFED, 0x97AD, 0xBFEE, 0x97AE, 0xBFEF, 0x97AF, - 0xBFF0, 0x97B0, 0xBFF1, 0x97B1, 0xBFF2, 0x97B2, 0xBFF3, 0x97B3, - 0xBFF4, 0x97B4, 0xBFF5, 0x97B5, 0xBFF6, 0x97B6, 0xBFF7, 0x97B7, - 0xBFF8, 0x97B8, 0xBFF9, 0x97B9, 0xBFFA, 0x97BA, 0xBFFB, 0x97BB, - 0xBFFC, 0x97BC, 0xBFFD, 0x97BD, 0xBFFE, 0x97BE, 0xBFFF, 0x97BF, - 0xC000, 0x97C0, 0xC001, 0x97C1, 0xC002, 0x97C2, 0xC003, 0x97C3, - 0xC004, 0x97C4, 0xC005, 0x97C5, 0xC006, 0x97C6, 0xC007, 0x97C7, - 0xC008, 0x97C8, 0xC009, 0x97C9, 0xC00A, 0x97CA, 0xC00B, 0x97CB, - 0xC00C, 0x97CC, 0xC00D, 0x97CD, 0xC00E, 0x97CE, 0xC00F, 0x97CF, - 0xC010, 0x97D0, 0xC011, 0x97D1, 0xC012, 0x97D2, 0xC013, 0x97D3, - 0xC014, 0x97D4, 0xC015, 0x97D5, 0xC016, 0x97D6, 0xC017, 0x97D7, - 0xC018, 0x97D8, 0xC019, 0x97D9, 0xC01A, 0x97DA, 0xC01B, 0x97DB, - 0xC01C, 0x97DC, 0xC01D, 0x97DD, 0xC01E, 0x97DE, 0xC01F, 0x97DF, - 0xC020, 0x97E0, 0xC021, 0x97E1, 0xC022, 0x97E2, 0xC023, 0x97E3, - 0xC024, 0x97E4, 0xC025, 0x97E5, 0xC026, 0x97E6, 0xC027, 0x97E7, - 0xC028, 0x97E8, 0xC029, 0x97E9, 0xC02A, 0x97EA, 0xC02B, 0x97EB, - 0xC02C, 0x97EC, 0xC02D, 0x97ED, 0xC02E, 0x97EE, 0xC02F, 0x97EF, - 0xC030, 0x97F0, 0xC031, 0x97F1, 0xC032, 0x97F2, 0xC033, 0x97F3, - 0xC034, 0x97F4, 0xC035, 0x97F5, 0xC036, 0x97F6, 0xC037, 0x97F7, - 0xC038, 0x97F8, 0xC039, 0x97F9, 0xC03A, 0x97FA, 0xC03B, 0x97FB, - 0xC03C, 0xBBD8, 0xC03D, 0x97FC, 0xC03E, 0x97FD, 0xC03F, 0x97FE, - 0xC040, 0x9841, 0xC041, 0x9842, 0xC042, 0x9843, 0xC043, 0x9844, - 0xC044, 0x9845, 0xC045, 0x9846, 0xC046, 0x9847, 0xC047, 0x9848, - 0xC048, 0x9849, 0xC049, 0x984A, 0xC04A, 0x984B, 0xC04B, 0x984C, - 0xC04C, 0x984D, 0xC04D, 0x984E, 0xC04E, 0x984F, 0xC04F, 0x9850, - 0xC050, 0x9851, 0xC051, 0xBBD9, 0xC052, 0x9852, 0xC053, 0x9853, - 0xC054, 0x9854, 0xC055, 0x9855, 0xC056, 0x9856, 0xC057, 0x9857, - 0xC058, 0xBBDA, 0xC059, 0x9858, 0xC05A, 0x9859, 0xC05B, 0x985A, - 0xC05C, 0xBBDB, 0xC05D, 0x9861, 0xC05E, 0x9862, 0xC05F, 0x9863, - 0xC060, 0xBBDC, 0xC061, 0x9864, 0xC062, 0x9865, 0xC063, 0x9866, - 0xC064, 0x9867, 0xC065, 0x9868, 0xC066, 0x9869, 0xC067, 0x986A, - 0xC068, 0xBBDD, 0xC069, 0xBBDE, 0xC06A, 0x986B, 0xC06B, 0x986C, - 0xC06C, 0x986D, 0xC06D, 0x986E, 0xC06E, 0x986F, 0xC06F, 0x9870, - 0xC070, 0x9871, 0xC071, 0x9872, 0xC072, 0x9873, 0xC073, 0x9874, - 0xC074, 0x9875, 0xC075, 0x9876, 0xC076, 0x9877, 0xC077, 0x9878, - 0xC078, 0x9879, 0xC079, 0x987A, 0xC07A, 0x9881, 0xC07B, 0x9882, - 0xC07C, 0x9883, 0xC07D, 0x9884, 0xC07E, 0x9885, 0xC07F, 0x9886, - 0xC080, 0x9887, 0xC081, 0x9888, 0xC082, 0x9889, 0xC083, 0x988A, - 0xC084, 0x988B, 0xC085, 0x988C, 0xC086, 0x988D, 0xC087, 0x988E, - 0xC088, 0x988F, 0xC089, 0x9890, 0xC08A, 0x9891, 0xC08B, 0x9892, - 0xC08C, 0x9893, 0xC08D, 0x9894, 0xC08E, 0x9895, 0xC08F, 0x9896, - 0xC090, 0xBBDF, 0xC091, 0xBBE0, 0xC092, 0x9897, 0xC093, 0x9898, - 0xC094, 0xBBE1, 0xC095, 0x9899, 0xC096, 0x989A, 0xC097, 0x989B, - 0xC098, 0xBBE2, 0xC099, 0x989C, 0xC09A, 0x989D, 0xC09B, 0x989E, - 0xC09C, 0x989F, 0xC09D, 0x98A0, 0xC09E, 0x98A1, 0xC09F, 0x98A2, - 0xC0A0, 0xBBE3, 0xC0A1, 0xBBE4, 0xC0A2, 0x98A3, 0xC0A3, 0xBBE5, - 0xC0A4, 0x98A4, 0xC0A5, 0xBBE6, 0xC0A6, 0x98A5, 0xC0A7, 0x98A6, - 0xC0A8, 0x98A7, 0xC0A9, 0x98A8, 0xC0AA, 0x98A9, 0xC0AB, 0x98AA, - 0xC0AC, 0xBBE7, 0xC0AD, 0xBBE8, 0xC0AE, 0x98AB, 0xC0AF, 0xBBE9, - 0xC0B0, 0xBBEA, 0xC0B1, 0x98AC, 0xC0B2, 0x98AD, 0xC0B3, 0xBBEB, - 0xC0B4, 0xBBEC, 0xC0B5, 0xBBED, 0xC0B6, 0xBBEE, 0xC0B7, 0x98AE, - 0xC0B8, 0x98AF, 0xC0B9, 0x98B0, 0xC0BA, 0x98B1, 0xC0BB, 0x98B2, - 0xC0BC, 0xBBEF, 0xC0BD, 0xBBF0, 0xC0BE, 0x98B3, 0xC0BF, 0xBBF1, - 0xC0C0, 0xBBF2, 0xC0C1, 0xBBF3, 0xC0C2, 0x98B4, 0xC0C3, 0x98B5, - 0xC0C4, 0x98B6, 0xC0C5, 0xBBF4, 0xC0C6, 0x98B7, 0xC0C7, 0x98B8, - 0xC0C8, 0xBBF5, 0xC0C9, 0xBBF6, 0xC0CA, 0x98B9, 0xC0CB, 0x98BA, - 0xC0CC, 0xBBF7, 0xC0CD, 0x98BB, 0xC0CE, 0x98BC, 0xC0CF, 0x98BD, - 0xC0D0, 0xBBF8, 0xC0D1, 0x98BE, 0xC0D2, 0x98BF, 0xC0D3, 0x98C0, - 0xC0D4, 0x98C1, 0xC0D5, 0x98C2, 0xC0D6, 0x98C3, 0xC0D7, 0x98C4, - 0xC0D8, 0xBBF9, 0xC0D9, 0xBBFA, 0xC0DA, 0x98C5, 0xC0DB, 0xBBFB, - 0xC0DC, 0xBBFC, 0xC0DD, 0xBBFD, 0xC0DE, 0x98C6, 0xC0DF, 0x98C7, - 0xC0E0, 0x98C8, 0xC0E1, 0x98C9, 0xC0E2, 0x98CA, 0xC0E3, 0x98CB, - 0xC0E4, 0xBBFE, 0xC0E5, 0xBCA1, 0xC0E6, 0x98CC, 0xC0E7, 0x98CD, - 0xC0E8, 0xBCA2, 0xC0E9, 0x98CE, 0xC0EA, 0x98CF, 0xC0EB, 0x98D0, - 0xC0EC, 0xBCA3, 0xC0ED, 0x98D1, 0xC0EE, 0x98D2, 0xC0EF, 0x98D3, - 0xC0F0, 0x98D4, 0xC0F1, 0x98D5, 0xC0F2, 0x98D6, 0xC0F3, 0x98D7, - 0xC0F4, 0xBCA4, 0xC0F5, 0xBCA5, 0xC0F6, 0x98D8, 0xC0F7, 0xBCA6, - 0xC0F8, 0x98D9, 0xC0F9, 0xBCA7, 0xC0FA, 0x98DA, 0xC0FB, 0x98DB, - 0xC0FC, 0x98DC, 0xC0FD, 0x98DD, 0xC0FE, 0x98DE, 0xC0FF, 0x98DF, - 0xC100, 0xBCA8, 0xC101, 0x98E0, 0xC102, 0x98E1, 0xC103, 0x98E2, - 0xC104, 0xBCA9, 0xC105, 0x98E3, 0xC106, 0x98E4, 0xC107, 0x98E5, - 0xC108, 0xBCAA, 0xC109, 0x98E6, 0xC10A, 0x98E7, 0xC10B, 0x98E8, - 0xC10C, 0x98E9, 0xC10D, 0x98EA, 0xC10E, 0x98EB, 0xC10F, 0x98EC, - 0xC110, 0xBCAB, 0xC111, 0x98ED, 0xC112, 0x98EE, 0xC113, 0x98EF, - 0xC114, 0x98F0, 0xC115, 0xBCAC, 0xC116, 0x98F1, 0xC117, 0x98F2, - 0xC118, 0x98F3, 0xC119, 0x98F4, 0xC11A, 0x98F5, 0xC11B, 0x98F6, - 0xC11C, 0xBCAD, 0xC11D, 0xBCAE, 0xC11E, 0xBCAF, 0xC11F, 0xBCB0, - 0xC120, 0xBCB1, 0xC121, 0x98F7, 0xC122, 0x98F8, 0xC123, 0xBCB2, - 0xC124, 0xBCB3, 0xC125, 0x98F9, 0xC126, 0xBCB4, 0xC127, 0xBCB5, - 0xC128, 0x98FA, 0xC129, 0x98FB, 0xC12A, 0x98FC, 0xC12B, 0x98FD, - 0xC12C, 0xBCB6, 0xC12D, 0xBCB7, 0xC12E, 0x98FE, 0xC12F, 0xBCB8, - 0xC130, 0xBCB9, 0xC131, 0xBCBA, 0xC132, 0x9941, 0xC133, 0x9942, - 0xC134, 0x9943, 0xC135, 0x9944, 0xC136, 0xBCBB, 0xC137, 0x9945, - 0xC138, 0xBCBC, 0xC139, 0xBCBD, 0xC13A, 0x9946, 0xC13B, 0x9947, - 0xC13C, 0xBCBE, 0xC13D, 0x9948, 0xC13E, 0x9949, 0xC13F, 0x994A, - 0xC140, 0xBCBF, 0xC141, 0x994B, 0xC142, 0x994C, 0xC143, 0x994D, - 0xC144, 0x994E, 0xC145, 0x994F, 0xC146, 0x9950, 0xC147, 0x9951, - 0xC148, 0xBCC0, 0xC149, 0xBCC1, 0xC14A, 0x9952, 0xC14B, 0xBCC2, - 0xC14C, 0xBCC3, 0xC14D, 0xBCC4, 0xC14E, 0x9953, 0xC14F, 0x9954, - 0xC150, 0x9955, 0xC151, 0x9956, 0xC152, 0x9957, 0xC153, 0x9958, - 0xC154, 0xBCC5, 0xC155, 0xBCC6, 0xC156, 0x9959, 0xC157, 0x995A, - 0xC158, 0xBCC7, 0xC159, 0x9961, 0xC15A, 0x9962, 0xC15B, 0x9963, - 0xC15C, 0xBCC8, 0xC15D, 0x9964, 0xC15E, 0x9965, 0xC15F, 0x9966, - 0xC160, 0x9967, 0xC161, 0x9968, 0xC162, 0x9969, 0xC163, 0x996A, - 0xC164, 0xBCC9, 0xC165, 0xBCCA, 0xC166, 0x996B, 0xC167, 0xBCCB, - 0xC168, 0xBCCC, 0xC169, 0xBCCD, 0xC16A, 0x996C, 0xC16B, 0x996D, - 0xC16C, 0x996E, 0xC16D, 0x996F, 0xC16E, 0x9970, 0xC16F, 0x9971, - 0xC170, 0xBCCE, 0xC171, 0x9972, 0xC172, 0x9973, 0xC173, 0x9974, - 0xC174, 0xBCCF, 0xC175, 0x9975, 0xC176, 0x9976, 0xC177, 0x9977, - 0xC178, 0xBCD0, 0xC179, 0x9978, 0xC17A, 0x9979, 0xC17B, 0x997A, - 0xC17C, 0x9981, 0xC17D, 0x9982, 0xC17E, 0x9983, 0xC17F, 0x9984, - 0xC180, 0x9985, 0xC181, 0x9986, 0xC182, 0x9987, 0xC183, 0x9988, - 0xC184, 0x9989, 0xC185, 0xBCD1, 0xC186, 0x998A, 0xC187, 0x998B, - 0xC188, 0x998C, 0xC189, 0x998D, 0xC18A, 0x998E, 0xC18B, 0x998F, - 0xC18C, 0xBCD2, 0xC18D, 0xBCD3, 0xC18E, 0xBCD4, 0xC18F, 0x9990, - 0xC190, 0xBCD5, 0xC191, 0x9991, 0xC192, 0x9992, 0xC193, 0x9993, - 0xC194, 0xBCD6, 0xC195, 0x9994, 0xC196, 0xBCD7, 0xC197, 0x9995, - 0xC198, 0x9996, 0xC199, 0x9997, 0xC19A, 0x9998, 0xC19B, 0x9999, - 0xC19C, 0xBCD8, 0xC19D, 0xBCD9, 0xC19E, 0x999A, 0xC19F, 0xBCDA, - 0xC1A0, 0x999B, 0xC1A1, 0xBCDB, 0xC1A2, 0x999C, 0xC1A3, 0x999D, - 0xC1A4, 0x999E, 0xC1A5, 0xBCDC, 0xC1A6, 0x999F, 0xC1A7, 0x99A0, - 0xC1A8, 0xBCDD, 0xC1A9, 0xBCDE, 0xC1AA, 0x99A1, 0xC1AB, 0x99A2, - 0xC1AC, 0xBCDF, 0xC1AD, 0x99A3, 0xC1AE, 0x99A4, 0xC1AF, 0x99A5, - 0xC1B0, 0xBCE0, 0xC1B1, 0x99A6, 0xC1B2, 0x99A7, 0xC1B3, 0x99A8, - 0xC1B4, 0x99A9, 0xC1B5, 0x99AA, 0xC1B6, 0x99AB, 0xC1B7, 0x99AC, - 0xC1B8, 0x99AD, 0xC1B9, 0x99AE, 0xC1BA, 0x99AF, 0xC1BB, 0x99B0, - 0xC1BC, 0x99B1, 0xC1BD, 0xBCE1, 0xC1BE, 0x99B2, 0xC1BF, 0x99B3, - 0xC1C0, 0x99B4, 0xC1C1, 0x99B5, 0xC1C2, 0x99B6, 0xC1C3, 0x99B7, - 0xC1C4, 0xBCE2, 0xC1C5, 0x99B8, 0xC1C6, 0x99B9, 0xC1C7, 0x99BA, - 0xC1C8, 0xBCE3, 0xC1C9, 0x99BB, 0xC1CA, 0x99BC, 0xC1CB, 0x99BD, - 0xC1CC, 0xBCE4, 0xC1CD, 0x99BE, 0xC1CE, 0x99BF, 0xC1CF, 0x99C0, - 0xC1D0, 0x99C1, 0xC1D1, 0x99C2, 0xC1D2, 0x99C3, 0xC1D3, 0x99C4, - 0xC1D4, 0xBCE5, 0xC1D5, 0x99C5, 0xC1D6, 0x99C6, 0xC1D7, 0xBCE6, - 0xC1D8, 0xBCE7, 0xC1D9, 0x99C7, 0xC1DA, 0x99C8, 0xC1DB, 0x99C9, - 0xC1DC, 0x99CA, 0xC1DD, 0x99CB, 0xC1DE, 0x99CC, 0xC1DF, 0x99CD, - 0xC1E0, 0xBCE8, 0xC1E1, 0x99CE, 0xC1E2, 0x99CF, 0xC1E3, 0x99D0, - 0xC1E4, 0xBCE9, 0xC1E5, 0x99D1, 0xC1E6, 0x99D2, 0xC1E7, 0x99D3, - 0xC1E8, 0xBCEA, 0xC1E9, 0x99D4, 0xC1EA, 0x99D5, 0xC1EB, 0x99D6, - 0xC1EC, 0x99D7, 0xC1ED, 0x99D8, 0xC1EE, 0x99D9, 0xC1EF, 0x99DA, - 0xC1F0, 0xBCEB, 0xC1F1, 0xBCEC, 0xC1F2, 0x99DB, 0xC1F3, 0xBCED, - 0xC1F4, 0x99DC, 0xC1F5, 0x99DD, 0xC1F6, 0x99DE, 0xC1F7, 0x99DF, - 0xC1F8, 0x99E0, 0xC1F9, 0x99E1, 0xC1FA, 0x99E2, 0xC1FB, 0x99E3, - 0xC1FC, 0xBCEE, 0xC1FD, 0xBCEF, 0xC1FE, 0x99E4, 0xC1FF, 0x99E5, - 0xC200, 0xBCF0, 0xC201, 0x99E6, 0xC202, 0x99E7, 0xC203, 0x99E8, - 0xC204, 0xBCF1, 0xC205, 0x99E9, 0xC206, 0x99EA, 0xC207, 0x99EB, - 0xC208, 0x99EC, 0xC209, 0x99ED, 0xC20A, 0x99EE, 0xC20B, 0x99EF, - 0xC20C, 0xBCF2, 0xC20D, 0xBCF3, 0xC20E, 0x99F0, 0xC20F, 0xBCF4, - 0xC210, 0x99F1, 0xC211, 0xBCF5, 0xC212, 0x99F2, 0xC213, 0x99F3, - 0xC214, 0x99F4, 0xC215, 0x99F5, 0xC216, 0x99F6, 0xC217, 0x99F7, - 0xC218, 0xBCF6, 0xC219, 0xBCF7, 0xC21A, 0x99F8, 0xC21B, 0x99F9, - 0xC21C, 0xBCF8, 0xC21D, 0x99FA, 0xC21E, 0x99FB, 0xC21F, 0xBCF9, - 0xC220, 0xBCFA, 0xC221, 0x99FC, 0xC222, 0x99FD, 0xC223, 0x99FE, - 0xC224, 0x9A41, 0xC225, 0x9A42, 0xC226, 0x9A43, 0xC227, 0x9A44, - 0xC228, 0xBCFB, 0xC229, 0xBCFC, 0xC22A, 0x9A45, 0xC22B, 0xBCFD, - 0xC22C, 0x9A46, 0xC22D, 0xBCFE, 0xC22E, 0x9A47, 0xC22F, 0xBDA1, - 0xC230, 0x9A48, 0xC231, 0xBDA2, 0xC232, 0xBDA3, 0xC233, 0x9A49, - 0xC234, 0xBDA4, 0xC235, 0x9A4A, 0xC236, 0x9A4B, 0xC237, 0x9A4C, - 0xC238, 0x9A4D, 0xC239, 0x9A4E, 0xC23A, 0x9A4F, 0xC23B, 0x9A50, - 0xC23C, 0x9A51, 0xC23D, 0x9A52, 0xC23E, 0x9A53, 0xC23F, 0x9A54, - 0xC240, 0x9A55, 0xC241, 0x9A56, 0xC242, 0x9A57, 0xC243, 0x9A58, - 0xC244, 0x9A59, 0xC245, 0x9A5A, 0xC246, 0x9A61, 0xC247, 0x9A62, - 0xC248, 0xBDA5, 0xC249, 0x9A63, 0xC24A, 0x9A64, 0xC24B, 0x9A65, - 0xC24C, 0x9A66, 0xC24D, 0x9A67, 0xC24E, 0x9A68, 0xC24F, 0x9A69, - 0xC250, 0xBDA6, 0xC251, 0xBDA7, 0xC252, 0x9A6A, 0xC253, 0x9A6B, - 0xC254, 0xBDA8, 0xC255, 0x9A6C, 0xC256, 0x9A6D, 0xC257, 0x9A6E, - 0xC258, 0xBDA9, 0xC259, 0x9A6F, 0xC25A, 0x9A70, 0xC25B, 0x9A71, - 0xC25C, 0x9A72, 0xC25D, 0x9A73, 0xC25E, 0x9A74, 0xC25F, 0x9A75, - 0xC260, 0xBDAA, 0xC261, 0x9A76, 0xC262, 0x9A77, 0xC263, 0x9A78, - 0xC264, 0x9A79, 0xC265, 0xBDAB, 0xC266, 0x9A7A, 0xC267, 0x9A81, - 0xC268, 0x9A82, 0xC269, 0x9A83, 0xC26A, 0x9A84, 0xC26B, 0x9A85, - 0xC26C, 0xBDAC, 0xC26D, 0xBDAD, 0xC26E, 0x9A86, 0xC26F, 0x9A87, - 0xC270, 0xBDAE, 0xC271, 0x9A88, 0xC272, 0x9A89, 0xC273, 0x9A8A, - 0xC274, 0xBDAF, 0xC275, 0x9A8B, 0xC276, 0x9A8C, 0xC277, 0x9A8D, - 0xC278, 0x9A8E, 0xC279, 0x9A8F, 0xC27A, 0x9A90, 0xC27B, 0x9A91, - 0xC27C, 0xBDB0, 0xC27D, 0xBDB1, 0xC27E, 0x9A92, 0xC27F, 0xBDB2, - 0xC280, 0x9A93, 0xC281, 0xBDB3, 0xC282, 0x9A94, 0xC283, 0x9A95, - 0xC284, 0x9A96, 0xC285, 0x9A97, 0xC286, 0x9A98, 0xC287, 0x9A99, - 0xC288, 0xBDB4, 0xC289, 0xBDB5, 0xC28A, 0x9A9A, 0xC28B, 0x9A9B, - 0xC28C, 0x9A9C, 0xC28D, 0x9A9D, 0xC28E, 0x9A9E, 0xC28F, 0x9A9F, - 0xC290, 0xBDB6, 0xC291, 0x9AA0, 0xC292, 0x9AA1, 0xC293, 0x9AA2, - 0xC294, 0x9AA3, 0xC295, 0x9AA4, 0xC296, 0x9AA5, 0xC297, 0x9AA6, - 0xC298, 0xBDB7, 0xC299, 0x9AA7, 0xC29A, 0x9AA8, 0xC29B, 0xBDB8, - 0xC29C, 0x9AA9, 0xC29D, 0xBDB9, 0xC29E, 0x9AAA, 0xC29F, 0x9AAB, - 0xC2A0, 0x9AAC, 0xC2A1, 0x9AAD, 0xC2A2, 0x9AAE, 0xC2A3, 0x9AAF, - 0xC2A4, 0xBDBA, 0xC2A5, 0xBDBB, 0xC2A6, 0x9AB0, 0xC2A7, 0x9AB1, - 0xC2A8, 0xBDBC, 0xC2A9, 0x9AB2, 0xC2AA, 0x9AB3, 0xC2AB, 0x9AB4, - 0xC2AC, 0xBDBD, 0xC2AD, 0xBDBE, 0xC2AE, 0x9AB5, 0xC2AF, 0x9AB6, - 0xC2B0, 0x9AB7, 0xC2B1, 0x9AB8, 0xC2B2, 0x9AB9, 0xC2B3, 0x9ABA, - 0xC2B4, 0xBDBF, 0xC2B5, 0xBDC0, 0xC2B6, 0x9ABB, 0xC2B7, 0xBDC1, - 0xC2B8, 0x9ABC, 0xC2B9, 0xBDC2, 0xC2BA, 0x9ABD, 0xC2BB, 0x9ABE, - 0xC2BC, 0x9ABF, 0xC2BD, 0x9AC0, 0xC2BE, 0x9AC1, 0xC2BF, 0x9AC2, - 0xC2C0, 0x9AC3, 0xC2C1, 0x9AC4, 0xC2C2, 0x9AC5, 0xC2C3, 0x9AC6, - 0xC2C4, 0x9AC7, 0xC2C5, 0x9AC8, 0xC2C6, 0x9AC9, 0xC2C7, 0x9ACA, - 0xC2C8, 0x9ACB, 0xC2C9, 0x9ACC, 0xC2CA, 0x9ACD, 0xC2CB, 0x9ACE, - 0xC2CC, 0x9ACF, 0xC2CD, 0x9AD0, 0xC2CE, 0x9AD1, 0xC2CF, 0x9AD2, - 0xC2D0, 0x9AD3, 0xC2D1, 0x9AD4, 0xC2D2, 0x9AD5, 0xC2D3, 0x9AD6, - 0xC2D4, 0x9AD7, 0xC2D5, 0x9AD8, 0xC2D6, 0x9AD9, 0xC2D7, 0x9ADA, - 0xC2D8, 0x9ADB, 0xC2D9, 0x9ADC, 0xC2DA, 0x9ADD, 0xC2DB, 0x9ADE, - 0xC2DC, 0xBDC3, 0xC2DD, 0xBDC4, 0xC2DE, 0x9ADF, 0xC2DF, 0x9AE0, - 0xC2E0, 0xBDC5, 0xC2E1, 0x9AE1, 0xC2E2, 0x9AE2, 0xC2E3, 0xBDC6, - 0xC2E4, 0xBDC7, 0xC2E5, 0x9AE3, 0xC2E6, 0x9AE4, 0xC2E7, 0x9AE5, - 0xC2E8, 0x9AE6, 0xC2E9, 0x9AE7, 0xC2EA, 0x9AE8, 0xC2EB, 0xBDC8, - 0xC2EC, 0xBDC9, 0xC2ED, 0xBDCA, 0xC2EE, 0x9AE9, 0xC2EF, 0xBDCB, - 0xC2F0, 0x9AEA, 0xC2F1, 0xBDCC, 0xC2F2, 0x9AEB, 0xC2F3, 0x9AEC, - 0xC2F4, 0x9AED, 0xC2F5, 0x9AEE, 0xC2F6, 0xBDCD, 0xC2F7, 0x9AEF, - 0xC2F8, 0xBDCE, 0xC2F9, 0xBDCF, 0xC2FA, 0x9AF0, 0xC2FB, 0xBDD0, - 0xC2FC, 0xBDD1, 0xC2FD, 0x9AF1, 0xC2FE, 0x9AF2, 0xC2FF, 0x9AF3, - 0xC300, 0xBDD2, 0xC301, 0x9AF4, 0xC302, 0x9AF5, 0xC303, 0x9AF6, - 0xC304, 0x9AF7, 0xC305, 0x9AF8, 0xC306, 0x9AF9, 0xC307, 0x9AFA, - 0xC308, 0xBDD3, 0xC309, 0xBDD4, 0xC30A, 0x9AFB, 0xC30B, 0x9AFC, - 0xC30C, 0xBDD5, 0xC30D, 0xBDD6, 0xC30E, 0x9AFD, 0xC30F, 0x9AFE, - 0xC310, 0x9B41, 0xC311, 0x9B42, 0xC312, 0x9B43, 0xC313, 0xBDD7, - 0xC314, 0xBDD8, 0xC315, 0xBDD9, 0xC316, 0x9B44, 0xC317, 0x9B45, - 0xC318, 0xBDDA, 0xC319, 0x9B46, 0xC31A, 0x9B47, 0xC31B, 0x9B48, - 0xC31C, 0xBDDB, 0xC31D, 0x9B49, 0xC31E, 0x9B4A, 0xC31F, 0x9B4B, - 0xC320, 0x9B4C, 0xC321, 0x9B4D, 0xC322, 0x9B4E, 0xC323, 0x9B4F, - 0xC324, 0xBDDC, 0xC325, 0xBDDD, 0xC326, 0x9B50, 0xC327, 0x9B51, - 0xC328, 0xBDDE, 0xC329, 0xBDDF, 0xC32A, 0x9B52, 0xC32B, 0x9B53, - 0xC32C, 0x9B54, 0xC32D, 0x9B55, 0xC32E, 0x9B56, 0xC32F, 0x9B57, - 0xC330, 0x9B58, 0xC331, 0x9B59, 0xC332, 0x9B5A, 0xC333, 0x9B61, - 0xC334, 0x9B62, 0xC335, 0x9B63, 0xC336, 0x9B64, 0xC337, 0x9B65, - 0xC338, 0x9B66, 0xC339, 0x9B67, 0xC33A, 0x9B68, 0xC33B, 0x9B69, - 0xC33C, 0x9B6A, 0xC33D, 0x9B6B, 0xC33E, 0x9B6C, 0xC33F, 0x9B6D, - 0xC340, 0x9B6E, 0xC341, 0x9B6F, 0xC342, 0x9B70, 0xC343, 0x9B71, - 0xC344, 0x9B72, 0xC345, 0xBDE0, 0xC346, 0x9B73, 0xC347, 0x9B74, - 0xC348, 0x9B75, 0xC349, 0x9B76, 0xC34A, 0x9B77, 0xC34B, 0x9B78, - 0xC34C, 0x9B79, 0xC34D, 0x9B7A, 0xC34E, 0x9B81, 0xC34F, 0x9B82, - 0xC350, 0x9B83, 0xC351, 0x9B84, 0xC352, 0x9B85, 0xC353, 0x9B86, - 0xC354, 0x9B87, 0xC355, 0x9B88, 0xC356, 0x9B89, 0xC357, 0x9B8A, - 0xC358, 0x9B8B, 0xC359, 0x9B8C, 0xC35A, 0x9B8D, 0xC35B, 0x9B8E, - 0xC35C, 0x9B8F, 0xC35D, 0x9B90, 0xC35E, 0x9B91, 0xC35F, 0x9B92, - 0xC360, 0x9B93, 0xC361, 0x9B94, 0xC362, 0x9B95, 0xC363, 0x9B96, - 0xC364, 0x9B97, 0xC365, 0x9B98, 0xC366, 0x9B99, 0xC367, 0x9B9A, - 0xC368, 0xBDE1, 0xC369, 0xBDE2, 0xC36A, 0x9B9B, 0xC36B, 0x9B9C, - 0xC36C, 0xBDE3, 0xC36D, 0x9B9D, 0xC36E, 0x9B9E, 0xC36F, 0x9B9F, - 0xC370, 0xBDE4, 0xC371, 0x9BA0, 0xC372, 0xBDE5, 0xC373, 0x9BA1, - 0xC374, 0x9BA2, 0xC375, 0x9BA3, 0xC376, 0x9BA4, 0xC377, 0x9BA5, - 0xC378, 0xBDE6, 0xC379, 0xBDE7, 0xC37A, 0x9BA6, 0xC37B, 0x9BA7, - 0xC37C, 0xBDE8, 0xC37D, 0xBDE9, 0xC37E, 0x9BA8, 0xC37F, 0x9BA9, - 0xC380, 0x9BAA, 0xC381, 0x9BAB, 0xC382, 0x9BAC, 0xC383, 0x9BAD, - 0xC384, 0xBDEA, 0xC385, 0x9BAE, 0xC386, 0x9BAF, 0xC387, 0x9BB0, - 0xC388, 0xBDEB, 0xC389, 0x9BB1, 0xC38A, 0x9BB2, 0xC38B, 0x9BB3, - 0xC38C, 0xBDEC, 0xC38D, 0x9BB4, 0xC38E, 0x9BB5, 0xC38F, 0x9BB6, - 0xC390, 0x9BB7, 0xC391, 0x9BB8, 0xC392, 0x9BB9, 0xC393, 0x9BBA, - 0xC394, 0x9BBB, 0xC395, 0x9BBC, 0xC396, 0x9BBD, 0xC397, 0x9BBE, - 0xC398, 0x9BBF, 0xC399, 0x9BC0, 0xC39A, 0x9BC1, 0xC39B, 0x9BC2, - 0xC39C, 0x9BC3, 0xC39D, 0x9BC4, 0xC39E, 0x9BC5, 0xC39F, 0x9BC6, - 0xC3A0, 0x9BC7, 0xC3A1, 0x9BC8, 0xC3A2, 0x9BC9, 0xC3A3, 0x9BCA, - 0xC3A4, 0x9BCB, 0xC3A5, 0x9BCC, 0xC3A6, 0x9BCD, 0xC3A7, 0x9BCE, - 0xC3A8, 0x9BCF, 0xC3A9, 0x9BD0, 0xC3AA, 0x9BD1, 0xC3AB, 0x9BD2, - 0xC3AC, 0x9BD3, 0xC3AD, 0x9BD4, 0xC3AE, 0x9BD5, 0xC3AF, 0x9BD6, - 0xC3B0, 0x9BD7, 0xC3B1, 0x9BD8, 0xC3B2, 0x9BD9, 0xC3B3, 0x9BDA, - 0xC3B4, 0x9BDB, 0xC3B5, 0x9BDC, 0xC3B6, 0x9BDD, 0xC3B7, 0x9BDE, - 0xC3B8, 0x9BDF, 0xC3B9, 0x9BE0, 0xC3BA, 0x9BE1, 0xC3BB, 0x9BE2, - 0xC3BC, 0x9BE3, 0xC3BD, 0x9BE4, 0xC3BE, 0x9BE5, 0xC3BF, 0x9BE6, - 0xC3C0, 0xBDED, 0xC3C1, 0x9BE7, 0xC3C2, 0x9BE8, 0xC3C3, 0x9BE9, - 0xC3C4, 0x9BEA, 0xC3C5, 0x9BEB, 0xC3C6, 0x9BEC, 0xC3C7, 0x9BED, - 0xC3C8, 0x9BEE, 0xC3C9, 0x9BEF, 0xC3CA, 0x9BF0, 0xC3CB, 0x9BF1, - 0xC3CC, 0x9BF2, 0xC3CD, 0x9BF3, 0xC3CE, 0x9BF4, 0xC3CF, 0x9BF5, - 0xC3D0, 0x9BF6, 0xC3D1, 0x9BF7, 0xC3D2, 0x9BF8, 0xC3D3, 0x9BF9, - 0xC3D4, 0x9BFA, 0xC3D5, 0x9BFB, 0xC3D6, 0x9BFC, 0xC3D7, 0x9BFD, - 0xC3D8, 0xBDEE, 0xC3D9, 0xBDEF, 0xC3DA, 0x9BFE, 0xC3DB, 0x9C41, - 0xC3DC, 0xBDF0, 0xC3DD, 0x9C42, 0xC3DE, 0x9C43, 0xC3DF, 0xBDF1, - 0xC3E0, 0xBDF2, 0xC3E1, 0x9C44, 0xC3E2, 0xBDF3, 0xC3E3, 0x9C45, - 0xC3E4, 0x9C46, 0xC3E5, 0x9C47, 0xC3E6, 0x9C48, 0xC3E7, 0x9C49, - 0xC3E8, 0xBDF4, 0xC3E9, 0xBDF5, 0xC3EA, 0x9C4A, 0xC3EB, 0x9C4B, - 0xC3EC, 0x9C4C, 0xC3ED, 0xBDF6, 0xC3EE, 0x9C4D, 0xC3EF, 0x9C4E, - 0xC3F0, 0x9C4F, 0xC3F1, 0x9C50, 0xC3F2, 0x9C51, 0xC3F3, 0x9C52, - 0xC3F4, 0xBDF7, 0xC3F5, 0xBDF8, 0xC3F6, 0x9C53, 0xC3F7, 0x9C54, - 0xC3F8, 0xBDF9, 0xC3F9, 0x9C55, 0xC3FA, 0x9C56, 0xC3FB, 0x9C57, - 0xC3FC, 0x9C58, 0xC3FD, 0x9C59, 0xC3FE, 0x9C5A, 0xC3FF, 0x9C61, - 0xC400, 0x9C62, 0xC401, 0x9C63, 0xC402, 0x9C64, 0xC403, 0x9C65, - 0xC404, 0x9C66, 0xC405, 0x9C67, 0xC406, 0x9C68, 0xC407, 0x9C69, - 0xC408, 0xBDFA, 0xC409, 0x9C6A, 0xC40A, 0x9C6B, 0xC40B, 0x9C6C, - 0xC40C, 0x9C6D, 0xC40D, 0x9C6E, 0xC40E, 0x9C6F, 0xC40F, 0x9C70, - 0xC410, 0xBDFB, 0xC411, 0x9C71, 0xC412, 0x9C72, 0xC413, 0x9C73, - 0xC414, 0x9C74, 0xC415, 0x9C75, 0xC416, 0x9C76, 0xC417, 0x9C77, - 0xC418, 0x9C78, 0xC419, 0x9C79, 0xC41A, 0x9C7A, 0xC41B, 0x9C81, - 0xC41C, 0x9C82, 0xC41D, 0x9C83, 0xC41E, 0x9C84, 0xC41F, 0x9C85, - 0xC420, 0x9C86, 0xC421, 0x9C87, 0xC422, 0x9C88, 0xC423, 0x9C89, - 0xC424, 0xBDFC, 0xC425, 0x9C8A, 0xC426, 0x9C8B, 0xC427, 0x9C8C, - 0xC428, 0x9C8D, 0xC429, 0x9C8E, 0xC42A, 0x9C8F, 0xC42B, 0x9C90, - 0xC42C, 0xBDFD, 0xC42D, 0x9C91, 0xC42E, 0x9C92, 0xC42F, 0x9C93, - 0xC430, 0xBDFE, 0xC431, 0x9C94, 0xC432, 0x9C95, 0xC433, 0x9C96, - 0xC434, 0xBEA1, 0xC435, 0x9C97, 0xC436, 0x9C98, 0xC437, 0x9C99, - 0xC438, 0x9C9A, 0xC439, 0x9C9B, 0xC43A, 0x9C9C, 0xC43B, 0x9C9D, - 0xC43C, 0xBEA2, 0xC43D, 0xBEA3, 0xC43E, 0x9C9E, 0xC43F, 0x9C9F, - 0xC440, 0x9CA0, 0xC441, 0x9CA1, 0xC442, 0x9CA2, 0xC443, 0x9CA3, - 0xC444, 0x9CA4, 0xC445, 0x9CA5, 0xC446, 0x9CA6, 0xC447, 0x9CA7, - 0xC448, 0xBEA4, 0xC449, 0x9CA8, 0xC44A, 0x9CA9, 0xC44B, 0x9CAA, - 0xC44C, 0x9CAB, 0xC44D, 0x9CAC, 0xC44E, 0x9CAD, 0xC44F, 0x9CAE, - 0xC450, 0x9CAF, 0xC451, 0x9CB0, 0xC452, 0x9CB1, 0xC453, 0x9CB2, - 0xC454, 0x9CB3, 0xC455, 0x9CB4, 0xC456, 0x9CB5, 0xC457, 0x9CB6, - 0xC458, 0x9CB7, 0xC459, 0x9CB8, 0xC45A, 0x9CB9, 0xC45B, 0x9CBA, - 0xC45C, 0x9CBB, 0xC45D, 0x9CBC, 0xC45E, 0x9CBD, 0xC45F, 0x9CBE, - 0xC460, 0x9CBF, 0xC461, 0x9CC0, 0xC462, 0x9CC1, 0xC463, 0x9CC2, - 0xC464, 0xBEA5, 0xC465, 0xBEA6, 0xC466, 0x9CC3, 0xC467, 0x9CC4, - 0xC468, 0xBEA7, 0xC469, 0x9CC5, 0xC46A, 0x9CC6, 0xC46B, 0x9CC7, - 0xC46C, 0xBEA8, 0xC46D, 0x9CC8, 0xC46E, 0x9CC9, 0xC46F, 0x9CCA, - 0xC470, 0x9CCB, 0xC471, 0x9CCC, 0xC472, 0x9CCD, 0xC473, 0x9CCE, - 0xC474, 0xBEA9, 0xC475, 0xBEAA, 0xC476, 0x9CCF, 0xC477, 0x9CD0, - 0xC478, 0x9CD1, 0xC479, 0xBEAB, 0xC47A, 0x9CD2, 0xC47B, 0x9CD3, - 0xC47C, 0x9CD4, 0xC47D, 0x9CD5, 0xC47E, 0x9CD6, 0xC47F, 0x9CD7, - 0xC480, 0xBEAC, 0xC481, 0x9CD8, 0xC482, 0x9CD9, 0xC483, 0x9CDA, - 0xC484, 0x9CDB, 0xC485, 0x9CDC, 0xC486, 0x9CDD, 0xC487, 0x9CDE, - 0xC488, 0x9CDF, 0xC489, 0x9CE0, 0xC48A, 0x9CE1, 0xC48B, 0x9CE2, - 0xC48C, 0x9CE3, 0xC48D, 0x9CE4, 0xC48E, 0x9CE5, 0xC48F, 0x9CE6, - 0xC490, 0x9CE7, 0xC491, 0x9CE8, 0xC492, 0x9CE9, 0xC493, 0x9CEA, - 0xC494, 0xBEAD, 0xC495, 0x9CEB, 0xC496, 0x9CEC, 0xC497, 0x9CED, - 0xC498, 0x9CEE, 0xC499, 0x9CEF, 0xC49A, 0x9CF0, 0xC49B, 0x9CF1, - 0xC49C, 0xBEAE, 0xC49D, 0x9CF2, 0xC49E, 0x9CF3, 0xC49F, 0x9CF4, - 0xC4A0, 0x9CF5, 0xC4A1, 0x9CF6, 0xC4A2, 0x9CF7, 0xC4A3, 0x9CF8, - 0xC4A4, 0x9CF9, 0xC4A5, 0x9CFA, 0xC4A6, 0x9CFB, 0xC4A7, 0x9CFC, - 0xC4A8, 0x9CFD, 0xC4A9, 0x9CFE, 0xC4AA, 0x9D41, 0xC4AB, 0x9D42, - 0xC4AC, 0x9D43, 0xC4AD, 0x9D44, 0xC4AE, 0x9D45, 0xC4AF, 0x9D46, - 0xC4B0, 0x9D47, 0xC4B1, 0x9D48, 0xC4B2, 0x9D49, 0xC4B3, 0x9D4A, - 0xC4B4, 0x9D4B, 0xC4B5, 0x9D4C, 0xC4B6, 0x9D4D, 0xC4B7, 0x9D4E, - 0xC4B8, 0xBEAF, 0xC4B9, 0x9D4F, 0xC4BA, 0x9D50, 0xC4BB, 0x9D51, - 0xC4BC, 0xBEB0, 0xC4BD, 0x9D52, 0xC4BE, 0x9D53, 0xC4BF, 0x9D54, - 0xC4C0, 0x9D55, 0xC4C1, 0x9D56, 0xC4C2, 0x9D57, 0xC4C3, 0x9D58, - 0xC4C4, 0x9D59, 0xC4C5, 0x9D5A, 0xC4C6, 0x9D61, 0xC4C7, 0x9D62, - 0xC4C8, 0x9D63, 0xC4C9, 0x9D64, 0xC4CA, 0x9D65, 0xC4CB, 0x9D66, - 0xC4CC, 0x9D67, 0xC4CD, 0x9D68, 0xC4CE, 0x9D69, 0xC4CF, 0x9D6A, - 0xC4D0, 0x9D6B, 0xC4D1, 0x9D6C, 0xC4D2, 0x9D6D, 0xC4D3, 0x9D6E, - 0xC4D4, 0x9D6F, 0xC4D5, 0x9D70, 0xC4D6, 0x9D71, 0xC4D7, 0x9D72, - 0xC4D8, 0x9D73, 0xC4D9, 0x9D74, 0xC4DA, 0x9D75, 0xC4DB, 0x9D76, - 0xC4DC, 0x9D77, 0xC4DD, 0x9D78, 0xC4DE, 0x9D79, 0xC4DF, 0x9D7A, - 0xC4E0, 0x9D81, 0xC4E1, 0x9D82, 0xC4E2, 0x9D83, 0xC4E3, 0x9D84, - 0xC4E4, 0x9D85, 0xC4E5, 0x9D86, 0xC4E6, 0x9D87, 0xC4E7, 0x9D88, - 0xC4E8, 0x9D89, 0xC4E9, 0xBEB1, 0xC4EA, 0x9D8A, 0xC4EB, 0x9D8B, - 0xC4EC, 0x9D8C, 0xC4ED, 0x9D8D, 0xC4EE, 0x9D8E, 0xC4EF, 0x9D8F, - 0xC4F0, 0xBEB2, 0xC4F1, 0xBEB3, 0xC4F2, 0x9D90, 0xC4F3, 0x9D91, - 0xC4F4, 0xBEB4, 0xC4F5, 0x9D92, 0xC4F6, 0x9D93, 0xC4F7, 0x9D94, - 0xC4F8, 0xBEB5, 0xC4F9, 0x9D95, 0xC4FA, 0xBEB6, 0xC4FB, 0x9D96, - 0xC4FC, 0x9D97, 0xC4FD, 0x9D98, 0xC4FE, 0x9D99, 0xC4FF, 0xBEB7, - 0xC500, 0xBEB8, 0xC501, 0xBEB9, 0xC502, 0x9D9A, 0xC503, 0x9D9B, - 0xC504, 0x9D9C, 0xC505, 0x9D9D, 0xC506, 0x9D9E, 0xC507, 0x9D9F, - 0xC508, 0x9DA0, 0xC509, 0x9DA1, 0xC50A, 0x9DA2, 0xC50B, 0x9DA3, - 0xC50C, 0xBEBA, 0xC50D, 0x9DA4, 0xC50E, 0x9DA5, 0xC50F, 0x9DA6, - 0xC510, 0xBEBB, 0xC511, 0x9DA7, 0xC512, 0x9DA8, 0xC513, 0x9DA9, - 0xC514, 0xBEBC, 0xC515, 0x9DAA, 0xC516, 0x9DAB, 0xC517, 0x9DAC, - 0xC518, 0x9DAD, 0xC519, 0x9DAE, 0xC51A, 0x9DAF, 0xC51B, 0x9DB0, - 0xC51C, 0xBEBD, 0xC51D, 0x9DB1, 0xC51E, 0x9DB2, 0xC51F, 0x9DB3, - 0xC520, 0x9DB4, 0xC521, 0x9DB5, 0xC522, 0x9DB6, 0xC523, 0x9DB7, - 0xC524, 0x9DB8, 0xC525, 0x9DB9, 0xC526, 0x9DBA, 0xC527, 0x9DBB, - 0xC528, 0xBEBE, 0xC529, 0xBEBF, 0xC52A, 0x9DBC, 0xC52B, 0x9DBD, - 0xC52C, 0xBEC0, 0xC52D, 0x9DBE, 0xC52E, 0x9DBF, 0xC52F, 0x9DC0, - 0xC530, 0xBEC1, 0xC531, 0x9DC1, 0xC532, 0x9DC2, 0xC533, 0x9DC3, - 0xC534, 0x9DC4, 0xC535, 0x9DC5, 0xC536, 0x9DC6, 0xC537, 0x9DC7, - 0xC538, 0xBEC2, 0xC539, 0xBEC3, 0xC53A, 0x9DC8, 0xC53B, 0xBEC4, - 0xC53C, 0x9DC9, 0xC53D, 0xBEC5, 0xC53E, 0x9DCA, 0xC53F, 0x9DCB, - 0xC540, 0x9DCC, 0xC541, 0x9DCD, 0xC542, 0x9DCE, 0xC543, 0x9DCF, - 0xC544, 0xBEC6, 0xC545, 0xBEC7, 0xC546, 0x9DD0, 0xC547, 0x9DD1, - 0xC548, 0xBEC8, 0xC549, 0xBEC9, 0xC54A, 0xBECA, 0xC54B, 0x9DD2, - 0xC54C, 0xBECB, 0xC54D, 0xBECC, 0xC54E, 0xBECD, 0xC54F, 0x9DD3, - 0xC550, 0x9DD4, 0xC551, 0x9DD5, 0xC552, 0x9DD6, 0xC553, 0xBECE, - 0xC554, 0xBECF, 0xC555, 0xBED0, 0xC556, 0x9DD7, 0xC557, 0xBED1, - 0xC558, 0xBED2, 0xC559, 0xBED3, 0xC55A, 0x9DD8, 0xC55B, 0x9DD9, - 0xC55C, 0x9DDA, 0xC55D, 0xBED4, 0xC55E, 0xBED5, 0xC55F, 0x9DDB, - 0xC560, 0xBED6, 0xC561, 0xBED7, 0xC562, 0x9DDC, 0xC563, 0x9DDD, - 0xC564, 0xBED8, 0xC565, 0x9DDE, 0xC566, 0x9DDF, 0xC567, 0x9DE0, - 0xC568, 0xBED9, 0xC569, 0x9DE1, 0xC56A, 0x9DE2, 0xC56B, 0x9DE3, - 0xC56C, 0x9DE4, 0xC56D, 0x9DE5, 0xC56E, 0x9DE6, 0xC56F, 0x9DE7, - 0xC570, 0xBEDA, 0xC571, 0xBEDB, 0xC572, 0x9DE8, 0xC573, 0xBEDC, - 0xC574, 0xBEDD, 0xC575, 0xBEDE, 0xC576, 0x9DE9, 0xC577, 0x9DEA, - 0xC578, 0x9DEB, 0xC579, 0x9DEC, 0xC57A, 0x9DED, 0xC57B, 0x9DEE, - 0xC57C, 0xBEDF, 0xC57D, 0xBEE0, 0xC57E, 0x9DEF, 0xC57F, 0x9DF0, - 0xC580, 0xBEE1, 0xC581, 0x9DF1, 0xC582, 0x9DF2, 0xC583, 0x9DF3, - 0xC584, 0xBEE2, 0xC585, 0x9DF4, 0xC586, 0x9DF5, 0xC587, 0xBEE3, - 0xC588, 0x9DF6, 0xC589, 0x9DF7, 0xC58A, 0x9DF8, 0xC58B, 0x9DF9, - 0xC58C, 0xBEE4, 0xC58D, 0xBEE5, 0xC58E, 0x9DFA, 0xC58F, 0xBEE6, - 0xC590, 0x9DFB, 0xC591, 0xBEE7, 0xC592, 0x9DFC, 0xC593, 0x9DFD, - 0xC594, 0x9DFE, 0xC595, 0xBEE8, 0xC596, 0x9E41, 0xC597, 0xBEE9, - 0xC598, 0xBEEA, 0xC599, 0x9E42, 0xC59A, 0x9E43, 0xC59B, 0x9E44, - 0xC59C, 0xBEEB, 0xC59D, 0x9E45, 0xC59E, 0x9E46, 0xC59F, 0x9E47, - 0xC5A0, 0xBEEC, 0xC5A1, 0x9E48, 0xC5A2, 0x9E49, 0xC5A3, 0x9E4A, - 0xC5A4, 0x9E4B, 0xC5A5, 0x9E4C, 0xC5A6, 0x9E4D, 0xC5A7, 0x9E4E, - 0xC5A8, 0x9E4F, 0xC5A9, 0xBEED, 0xC5AA, 0x9E50, 0xC5AB, 0x9E51, - 0xC5AC, 0x9E52, 0xC5AD, 0x9E53, 0xC5AE, 0x9E54, 0xC5AF, 0x9E55, - 0xC5B0, 0x9E56, 0xC5B1, 0x9E57, 0xC5B2, 0x9E58, 0xC5B3, 0x9E59, - 0xC5B4, 0xBEEE, 0xC5B5, 0xBEEF, 0xC5B6, 0x9E5A, 0xC5B7, 0x9E61, - 0xC5B8, 0xBEF0, 0xC5B9, 0xBEF1, 0xC5BA, 0x9E62, 0xC5BB, 0xBEF2, - 0xC5BC, 0xBEF3, 0xC5BD, 0xBEF4, 0xC5BE, 0xBEF5, 0xC5BF, 0x9E63, - 0xC5C0, 0x9E64, 0xC5C1, 0x9E65, 0xC5C2, 0x9E66, 0xC5C3, 0x9E67, - 0xC5C4, 0xBEF6, 0xC5C5, 0xBEF7, 0xC5C6, 0xBEF8, 0xC5C7, 0xBEF9, - 0xC5C8, 0xBEFA, 0xC5C9, 0xBEFB, 0xC5CA, 0xBEFC, 0xC5CB, 0x9E68, - 0xC5CC, 0xBEFD, 0xC5CD, 0x9E69, 0xC5CE, 0xBEFE, 0xC5CF, 0x9E6A, - 0xC5D0, 0xBFA1, 0xC5D1, 0xBFA2, 0xC5D2, 0x9E6B, 0xC5D3, 0x9E6C, - 0xC5D4, 0xBFA3, 0xC5D5, 0x9E6D, 0xC5D6, 0x9E6E, 0xC5D7, 0x9E6F, - 0xC5D8, 0xBFA4, 0xC5D9, 0x9E70, 0xC5DA, 0x9E71, 0xC5DB, 0x9E72, - 0xC5DC, 0x9E73, 0xC5DD, 0x9E74, 0xC5DE, 0x9E75, 0xC5DF, 0x9E76, - 0xC5E0, 0xBFA5, 0xC5E1, 0xBFA6, 0xC5E2, 0x9E77, 0xC5E3, 0xBFA7, - 0xC5E4, 0x9E78, 0xC5E5, 0xBFA8, 0xC5E6, 0x9E79, 0xC5E7, 0x9E7A, - 0xC5E8, 0x9E81, 0xC5E9, 0x9E82, 0xC5EA, 0x9E83, 0xC5EB, 0x9E84, - 0xC5EC, 0xBFA9, 0xC5ED, 0xBFAA, 0xC5EE, 0xBFAB, 0xC5EF, 0x9E85, - 0xC5F0, 0xBFAC, 0xC5F1, 0x9E86, 0xC5F2, 0x9E87, 0xC5F3, 0x9E88, - 0xC5F4, 0xBFAD, 0xC5F5, 0x9E89, 0xC5F6, 0xBFAE, 0xC5F7, 0xBFAF, - 0xC5F8, 0x9E8A, 0xC5F9, 0x9E8B, 0xC5FA, 0x9E8C, 0xC5FB, 0x9E8D, - 0xC5FC, 0xBFB0, 0xC5FD, 0xBFB1, 0xC5FE, 0xBFB2, 0xC5FF, 0xBFB3, - 0xC600, 0xBFB4, 0xC601, 0xBFB5, 0xC602, 0x9E8E, 0xC603, 0x9E8F, - 0xC604, 0x9E90, 0xC605, 0xBFB6, 0xC606, 0xBFB7, 0xC607, 0xBFB8, - 0xC608, 0xBFB9, 0xC609, 0x9E91, 0xC60A, 0x9E92, 0xC60B, 0x9E93, - 0xC60C, 0xBFBA, 0xC60D, 0x9E94, 0xC60E, 0x9E95, 0xC60F, 0x9E96, - 0xC610, 0xBFBB, 0xC611, 0x9E97, 0xC612, 0x9E98, 0xC613, 0x9E99, - 0xC614, 0x9E9A, 0xC615, 0x9E9B, 0xC616, 0x9E9C, 0xC617, 0x9E9D, - 0xC618, 0xBFBC, 0xC619, 0xBFBD, 0xC61A, 0x9E9E, 0xC61B, 0xBFBE, - 0xC61C, 0xBFBF, 0xC61D, 0x9E9F, 0xC61E, 0x9EA0, 0xC61F, 0x9EA1, - 0xC620, 0x9EA2, 0xC621, 0x9EA3, 0xC622, 0x9EA4, 0xC623, 0x9EA5, - 0xC624, 0xBFC0, 0xC625, 0xBFC1, 0xC626, 0x9EA6, 0xC627, 0x9EA7, - 0xC628, 0xBFC2, 0xC629, 0x9EA8, 0xC62A, 0x9EA9, 0xC62B, 0x9EAA, - 0xC62C, 0xBFC3, 0xC62D, 0xBFC4, 0xC62E, 0xBFC5, 0xC62F, 0x9EAB, - 0xC630, 0xBFC6, 0xC631, 0x9EAC, 0xC632, 0x9EAD, 0xC633, 0xBFC7, - 0xC634, 0xBFC8, 0xC635, 0xBFC9, 0xC636, 0x9EAE, 0xC637, 0xBFCA, - 0xC638, 0x9EAF, 0xC639, 0xBFCB, 0xC63A, 0x9EB0, 0xC63B, 0xBFCC, - 0xC63C, 0x9EB1, 0xC63D, 0x9EB2, 0xC63E, 0x9EB3, 0xC63F, 0x9EB4, - 0xC640, 0xBFCD, 0xC641, 0xBFCE, 0xC642, 0x9EB5, 0xC643, 0x9EB6, - 0xC644, 0xBFCF, 0xC645, 0x9EB7, 0xC646, 0x9EB8, 0xC647, 0x9EB9, - 0xC648, 0xBFD0, 0xC649, 0x9EBA, 0xC64A, 0x9EBB, 0xC64B, 0x9EBC, - 0xC64C, 0x9EBD, 0xC64D, 0x9EBE, 0xC64E, 0x9EBF, 0xC64F, 0x9EC0, - 0xC650, 0xBFD1, 0xC651, 0xBFD2, 0xC652, 0x9EC1, 0xC653, 0xBFD3, - 0xC654, 0xBFD4, 0xC655, 0xBFD5, 0xC656, 0x9EC2, 0xC657, 0x9EC3, - 0xC658, 0x9EC4, 0xC659, 0x9EC5, 0xC65A, 0x9EC6, 0xC65B, 0x9EC7, - 0xC65C, 0xBFD6, 0xC65D, 0xBFD7, 0xC65E, 0x9EC8, 0xC65F, 0x9EC9, - 0xC660, 0xBFD8, 0xC661, 0x9ECA, 0xC662, 0x9ECB, 0xC663, 0x9ECC, - 0xC664, 0x9ECD, 0xC665, 0x9ECE, 0xC666, 0x9ECF, 0xC667, 0x9ED0, - 0xC668, 0x9ED1, 0xC669, 0x9ED2, 0xC66A, 0x9ED3, 0xC66B, 0x9ED4, - 0xC66C, 0xBFD9, 0xC66D, 0x9ED5, 0xC66E, 0x9ED6, 0xC66F, 0xBFDA, - 0xC670, 0x9ED7, 0xC671, 0xBFDB, 0xC672, 0x9ED8, 0xC673, 0x9ED9, - 0xC674, 0x9EDA, 0xC675, 0x9EDB, 0xC676, 0x9EDC, 0xC677, 0x9EDD, - 0xC678, 0xBFDC, 0xC679, 0xBFDD, 0xC67A, 0x9EDE, 0xC67B, 0x9EDF, - 0xC67C, 0xBFDE, 0xC67D, 0x9EE0, 0xC67E, 0x9EE1, 0xC67F, 0x9EE2, - 0xC680, 0xBFDF, 0xC681, 0x9EE3, 0xC682, 0x9EE4, 0xC683, 0x9EE5, - 0xC684, 0x9EE6, 0xC685, 0x9EE7, 0xC686, 0x9EE8, 0xC687, 0x9EE9, - 0xC688, 0xBFE0, 0xC689, 0xBFE1, 0xC68A, 0x9EEA, 0xC68B, 0xBFE2, - 0xC68C, 0x9EEB, 0xC68D, 0xBFE3, 0xC68E, 0x9EEC, 0xC68F, 0x9EED, - 0xC690, 0x9EEE, 0xC691, 0x9EEF, 0xC692, 0x9EF0, 0xC693, 0x9EF1, - 0xC694, 0xBFE4, 0xC695, 0xBFE5, 0xC696, 0x9EF2, 0xC697, 0x9EF3, - 0xC698, 0xBFE6, 0xC699, 0x9EF4, 0xC69A, 0x9EF5, 0xC69B, 0x9EF6, - 0xC69C, 0xBFE7, 0xC69D, 0x9EF7, 0xC69E, 0x9EF8, 0xC69F, 0x9EF9, - 0xC6A0, 0x9EFA, 0xC6A1, 0x9EFB, 0xC6A2, 0x9EFC, 0xC6A3, 0x9EFD, - 0xC6A4, 0xBFE8, 0xC6A5, 0xBFE9, 0xC6A6, 0x9EFE, 0xC6A7, 0xBFEA, - 0xC6A8, 0x9F41, 0xC6A9, 0xBFEB, 0xC6AA, 0x9F42, 0xC6AB, 0x9F43, - 0xC6AC, 0x9F44, 0xC6AD, 0x9F45, 0xC6AE, 0x9F46, 0xC6AF, 0x9F47, - 0xC6B0, 0xBFEC, 0xC6B1, 0xBFED, 0xC6B2, 0x9F48, 0xC6B3, 0x9F49, - 0xC6B4, 0xBFEE, 0xC6B5, 0x9F4A, 0xC6B6, 0x9F4B, 0xC6B7, 0x9F4C, - 0xC6B8, 0xBFEF, 0xC6B9, 0xBFF0, 0xC6BA, 0xBFF1, 0xC6BB, 0x9F4D, - 0xC6BC, 0x9F4E, 0xC6BD, 0x9F4F, 0xC6BE, 0x9F50, 0xC6BF, 0x9F51, - 0xC6C0, 0xBFF2, 0xC6C1, 0xBFF3, 0xC6C2, 0x9F52, 0xC6C3, 0xBFF4, - 0xC6C4, 0x9F53, 0xC6C5, 0xBFF5, 0xC6C6, 0x9F54, 0xC6C7, 0x9F55, - 0xC6C8, 0x9F56, 0xC6C9, 0x9F57, 0xC6CA, 0x9F58, 0xC6CB, 0x9F59, - 0xC6CC, 0xBFF6, 0xC6CD, 0xBFF7, 0xC6CE, 0x9F5A, 0xC6CF, 0x9F61, - 0xC6D0, 0xBFF8, 0xC6D1, 0x9F62, 0xC6D2, 0x9F63, 0xC6D3, 0x9F64, - 0xC6D4, 0xBFF9, 0xC6D5, 0x9F65, 0xC6D6, 0x9F66, 0xC6D7, 0x9F67, - 0xC6D8, 0x9F68, 0xC6D9, 0x9F69, 0xC6DA, 0x9F6A, 0xC6DB, 0x9F6B, - 0xC6DC, 0xBFFA, 0xC6DD, 0xBFFB, 0xC6DE, 0x9F6C, 0xC6DF, 0x9F6D, - 0xC6E0, 0xBFFC, 0xC6E1, 0xBFFD, 0xC6E2, 0x9F6E, 0xC6E3, 0x9F6F, - 0xC6E4, 0x9F70, 0xC6E5, 0x9F71, 0xC6E6, 0x9F72, 0xC6E7, 0x9F73, - 0xC6E8, 0xBFFE, 0xC6E9, 0xC0A1, 0xC6EA, 0x9F74, 0xC6EB, 0x9F75, - 0xC6EC, 0xC0A2, 0xC6ED, 0x9F76, 0xC6EE, 0x9F77, 0xC6EF, 0x9F78, - 0xC6F0, 0xC0A3, 0xC6F1, 0x9F79, 0xC6F2, 0x9F7A, 0xC6F3, 0x9F81, - 0xC6F4, 0x9F82, 0xC6F5, 0x9F83, 0xC6F6, 0x9F84, 0xC6F7, 0x9F85, - 0xC6F8, 0xC0A4, 0xC6F9, 0xC0A5, 0xC6FA, 0x9F86, 0xC6FB, 0x9F87, - 0xC6FC, 0x9F88, 0xC6FD, 0xC0A6, 0xC6FE, 0x9F89, 0xC6FF, 0x9F8A, - 0xC700, 0x9F8B, 0xC701, 0x9F8C, 0xC702, 0x9F8D, 0xC703, 0x9F8E, - 0xC704, 0xC0A7, 0xC705, 0xC0A8, 0xC706, 0x9F8F, 0xC707, 0x9F90, - 0xC708, 0xC0A9, 0xC709, 0x9F91, 0xC70A, 0x9F92, 0xC70B, 0x9F93, - 0xC70C, 0xC0AA, 0xC70D, 0x9F94, 0xC70E, 0x9F95, 0xC70F, 0x9F96, - 0xC710, 0x9F97, 0xC711, 0x9F98, 0xC712, 0x9F99, 0xC713, 0x9F9A, - 0xC714, 0xC0AB, 0xC715, 0xC0AC, 0xC716, 0x9F9B, 0xC717, 0xC0AD, - 0xC718, 0x9F9C, 0xC719, 0xC0AE, 0xC71A, 0x9F9D, 0xC71B, 0x9F9E, - 0xC71C, 0x9F9F, 0xC71D, 0x9FA0, 0xC71E, 0x9FA1, 0xC71F, 0x9FA2, - 0xC720, 0xC0AF, 0xC721, 0xC0B0, 0xC722, 0x9FA3, 0xC723, 0x9FA4, - 0xC724, 0xC0B1, 0xC725, 0x9FA5, 0xC726, 0x9FA6, 0xC727, 0x9FA7, - 0xC728, 0xC0B2, 0xC729, 0x9FA8, 0xC72A, 0x9FA9, 0xC72B, 0x9FAA, - 0xC72C, 0x9FAB, 0xC72D, 0x9FAC, 0xC72E, 0x9FAD, 0xC72F, 0x9FAE, - 0xC730, 0xC0B3, 0xC731, 0xC0B4, 0xC732, 0x9FAF, 0xC733, 0xC0B5, - 0xC734, 0x9FB0, 0xC735, 0xC0B6, 0xC736, 0x9FB1, 0xC737, 0xC0B7, - 0xC738, 0x9FB2, 0xC739, 0x9FB3, 0xC73A, 0x9FB4, 0xC73B, 0x9FB5, - 0xC73C, 0xC0B8, 0xC73D, 0xC0B9, 0xC73E, 0x9FB6, 0xC73F, 0x9FB7, - 0xC740, 0xC0BA, 0xC741, 0x9FB8, 0xC742, 0x9FB9, 0xC743, 0x9FBA, - 0xC744, 0xC0BB, 0xC745, 0x9FBB, 0xC746, 0x9FBC, 0xC747, 0x9FBD, - 0xC748, 0x9FBE, 0xC749, 0x9FBF, 0xC74A, 0xC0BC, 0xC74B, 0x9FC0, - 0xC74C, 0xC0BD, 0xC74D, 0xC0BE, 0xC74E, 0x9FC1, 0xC74F, 0xC0BF, - 0xC750, 0x9FC2, 0xC751, 0xC0C0, 0xC752, 0xC0C1, 0xC753, 0xC0C2, - 0xC754, 0xC0C3, 0xC755, 0xC0C4, 0xC756, 0xC0C5, 0xC757, 0xC0C6, - 0xC758, 0xC0C7, 0xC759, 0x9FC3, 0xC75A, 0x9FC4, 0xC75B, 0x9FC5, - 0xC75C, 0xC0C8, 0xC75D, 0x9FC6, 0xC75E, 0x9FC7, 0xC75F, 0x9FC8, - 0xC760, 0xC0C9, 0xC761, 0x9FC9, 0xC762, 0x9FCA, 0xC763, 0x9FCB, - 0xC764, 0x9FCC, 0xC765, 0x9FCD, 0xC766, 0x9FCE, 0xC767, 0x9FCF, - 0xC768, 0xC0CA, 0xC769, 0x9FD0, 0xC76A, 0x9FD1, 0xC76B, 0xC0CB, - 0xC76C, 0x9FD2, 0xC76D, 0x9FD3, 0xC76E, 0x9FD4, 0xC76F, 0x9FD5, - 0xC770, 0x9FD6, 0xC771, 0x9FD7, 0xC772, 0x9FD8, 0xC773, 0x9FD9, - 0xC774, 0xC0CC, 0xC775, 0xC0CD, 0xC776, 0x9FDA, 0xC777, 0x9FDB, - 0xC778, 0xC0CE, 0xC779, 0x9FDC, 0xC77A, 0x9FDD, 0xC77B, 0x9FDE, - 0xC77C, 0xC0CF, 0xC77D, 0xC0D0, 0xC77E, 0xC0D1, 0xC77F, 0x9FDF, - 0xC780, 0x9FE0, 0xC781, 0x9FE1, 0xC782, 0x9FE2, 0xC783, 0xC0D2, - 0xC784, 0xC0D3, 0xC785, 0xC0D4, 0xC786, 0x9FE3, 0xC787, 0xC0D5, - 0xC788, 0xC0D6, 0xC789, 0xC0D7, 0xC78A, 0xC0D8, 0xC78B, 0x9FE4, - 0xC78C, 0x9FE5, 0xC78D, 0x9FE6, 0xC78E, 0xC0D9, 0xC78F, 0x9FE7, - 0xC790, 0xC0DA, 0xC791, 0xC0DB, 0xC792, 0x9FE8, 0xC793, 0x9FE9, - 0xC794, 0xC0DC, 0xC795, 0x9FEA, 0xC796, 0xC0DD, 0xC797, 0xC0DE, - 0xC798, 0xC0DF, 0xC799, 0x9FEB, 0xC79A, 0xC0E0, 0xC79B, 0x9FEC, - 0xC79C, 0x9FED, 0xC79D, 0x9FEE, 0xC79E, 0x9FEF, 0xC79F, 0x9FF0, - 0xC7A0, 0xC0E1, 0xC7A1, 0xC0E2, 0xC7A2, 0x9FF1, 0xC7A3, 0xC0E3, - 0xC7A4, 0xC0E4, 0xC7A5, 0xC0E5, 0xC7A6, 0xC0E6, 0xC7A7, 0x9FF2, - 0xC7A8, 0x9FF3, 0xC7A9, 0x9FF4, 0xC7AA, 0x9FF5, 0xC7AB, 0x9FF6, - 0xC7AC, 0xC0E7, 0xC7AD, 0xC0E8, 0xC7AE, 0x9FF7, 0xC7AF, 0x9FF8, - 0xC7B0, 0xC0E9, 0xC7B1, 0x9FF9, 0xC7B2, 0x9FFA, 0xC7B3, 0x9FFB, - 0xC7B4, 0xC0EA, 0xC7B5, 0x9FFC, 0xC7B6, 0x9FFD, 0xC7B7, 0x9FFE, - 0xC7B8, 0xA041, 0xC7B9, 0xA042, 0xC7BA, 0xA043, 0xC7BB, 0xA044, - 0xC7BC, 0xC0EB, 0xC7BD, 0xC0EC, 0xC7BE, 0xA045, 0xC7BF, 0xC0ED, - 0xC7C0, 0xC0EE, 0xC7C1, 0xC0EF, 0xC7C2, 0xA046, 0xC7C3, 0xA047, - 0xC7C4, 0xA048, 0xC7C5, 0xA049, 0xC7C6, 0xA04A, 0xC7C7, 0xA04B, - 0xC7C8, 0xC0F0, 0xC7C9, 0xC0F1, 0xC7CA, 0xA04C, 0xC7CB, 0xA04D, - 0xC7CC, 0xC0F2, 0xC7CD, 0xA04E, 0xC7CE, 0xC0F3, 0xC7CF, 0xA04F, - 0xC7D0, 0xC0F4, 0xC7D1, 0xA050, 0xC7D2, 0xA051, 0xC7D3, 0xA052, - 0xC7D4, 0xA053, 0xC7D5, 0xA054, 0xC7D6, 0xA055, 0xC7D7, 0xA056, - 0xC7D8, 0xC0F5, 0xC7D9, 0xA057, 0xC7DA, 0xA058, 0xC7DB, 0xA059, - 0xC7DC, 0xA05A, 0xC7DD, 0xC0F6, 0xC7DE, 0xA061, 0xC7DF, 0xA062, - 0xC7E0, 0xA063, 0xC7E1, 0xA064, 0xC7E2, 0xA065, 0xC7E3, 0xA066, - 0xC7E4, 0xC0F7, 0xC7E5, 0xA067, 0xC7E6, 0xA068, 0xC7E7, 0xA069, - 0xC7E8, 0xC0F8, 0xC7E9, 0xA06A, 0xC7EA, 0xA06B, 0xC7EB, 0xA06C, - 0xC7EC, 0xC0F9, 0xC7ED, 0xA06D, 0xC7EE, 0xA06E, 0xC7EF, 0xA06F, - 0xC7F0, 0xA070, 0xC7F1, 0xA071, 0xC7F2, 0xA072, 0xC7F3, 0xA073, - 0xC7F4, 0xA074, 0xC7F5, 0xA075, 0xC7F6, 0xA076, 0xC7F7, 0xA077, - 0xC7F8, 0xA078, 0xC7F9, 0xA079, 0xC7FA, 0xA07A, 0xC7FB, 0xA081, - 0xC7FC, 0xA082, 0xC7FD, 0xA083, 0xC7FE, 0xA084, 0xC7FF, 0xA085, - 0xC800, 0xC0FA, 0xC801, 0xC0FB, 0xC802, 0xA086, 0xC803, 0xA087, - 0xC804, 0xC0FC, 0xC805, 0xA088, 0xC806, 0xA089, 0xC807, 0xA08A, - 0xC808, 0xC0FD, 0xC809, 0xA08B, 0xC80A, 0xC0FE, 0xC80B, 0xA08C, - 0xC80C, 0xA08D, 0xC80D, 0xA08E, 0xC80E, 0xA08F, 0xC80F, 0xA090, - 0xC810, 0xC1A1, 0xC811, 0xC1A2, 0xC812, 0xA091, 0xC813, 0xC1A3, - 0xC814, 0xA092, 0xC815, 0xC1A4, 0xC816, 0xC1A5, 0xC817, 0xA093, - 0xC818, 0xA094, 0xC819, 0xA095, 0xC81A, 0xA096, 0xC81B, 0xA097, - 0xC81C, 0xC1A6, 0xC81D, 0xC1A7, 0xC81E, 0xA098, 0xC81F, 0xA099, - 0xC820, 0xC1A8, 0xC821, 0xA09A, 0xC822, 0xA09B, 0xC823, 0xA09C, - 0xC824, 0xC1A9, 0xC825, 0xA09D, 0xC826, 0xA09E, 0xC827, 0xA09F, - 0xC828, 0xA0A0, 0xC829, 0xA0A1, 0xC82A, 0xA0A2, 0xC82B, 0xA0A3, - 0xC82C, 0xC1AA, 0xC82D, 0xC1AB, 0xC82E, 0xA0A4, 0xC82F, 0xC1AC, - 0xC830, 0xA0A5, 0xC831, 0xC1AD, 0xC832, 0xA0A6, 0xC833, 0xA0A7, - 0xC834, 0xA0A8, 0xC835, 0xA0A9, 0xC836, 0xA0AA, 0xC837, 0xA0AB, - 0xC838, 0xC1AE, 0xC839, 0xA0AC, 0xC83A, 0xA0AD, 0xC83B, 0xA0AE, - 0xC83C, 0xC1AF, 0xC83D, 0xA0AF, 0xC83E, 0xA0B0, 0xC83F, 0xA0B1, - 0xC840, 0xC1B0, 0xC841, 0xA0B2, 0xC842, 0xA0B3, 0xC843, 0xA0B4, - 0xC844, 0xA0B5, 0xC845, 0xA0B6, 0xC846, 0xA0B7, 0xC847, 0xA0B8, - 0xC848, 0xC1B1, 0xC849, 0xC1B2, 0xC84A, 0xA0B9, 0xC84B, 0xA0BA, - 0xC84C, 0xC1B3, 0xC84D, 0xC1B4, 0xC84E, 0xA0BB, 0xC84F, 0xA0BC, - 0xC850, 0xA0BD, 0xC851, 0xA0BE, 0xC852, 0xA0BF, 0xC853, 0xA0C0, - 0xC854, 0xC1B5, 0xC855, 0xA0C1, 0xC856, 0xA0C2, 0xC857, 0xA0C3, - 0xC858, 0xA0C4, 0xC859, 0xA0C5, 0xC85A, 0xA0C6, 0xC85B, 0xA0C7, - 0xC85C, 0xA0C8, 0xC85D, 0xA0C9, 0xC85E, 0xA0CA, 0xC85F, 0xA0CB, - 0xC860, 0xA0CC, 0xC861, 0xA0CD, 0xC862, 0xA0CE, 0xC863, 0xA0CF, - 0xC864, 0xA0D0, 0xC865, 0xA0D1, 0xC866, 0xA0D2, 0xC867, 0xA0D3, - 0xC868, 0xA0D4, 0xC869, 0xA0D5, 0xC86A, 0xA0D6, 0xC86B, 0xA0D7, - 0xC86C, 0xA0D8, 0xC86D, 0xA0D9, 0xC86E, 0xA0DA, 0xC86F, 0xA0DB, - 0xC870, 0xC1B6, 0xC871, 0xC1B7, 0xC872, 0xA0DC, 0xC873, 0xA0DD, - 0xC874, 0xC1B8, 0xC875, 0xA0DE, 0xC876, 0xA0DF, 0xC877, 0xA0E0, - 0xC878, 0xC1B9, 0xC879, 0xA0E1, 0xC87A, 0xC1BA, 0xC87B, 0xA0E2, - 0xC87C, 0xA0E3, 0xC87D, 0xA0E4, 0xC87E, 0xA0E5, 0xC87F, 0xA0E6, - 0xC880, 0xC1BB, 0xC881, 0xC1BC, 0xC882, 0xA0E7, 0xC883, 0xC1BD, - 0xC884, 0xA0E8, 0xC885, 0xC1BE, 0xC886, 0xC1BF, 0xC887, 0xC1C0, - 0xC888, 0xA0E9, 0xC889, 0xA0EA, 0xC88A, 0xA0EB, 0xC88B, 0xC1C1, - 0xC88C, 0xC1C2, 0xC88D, 0xC1C3, 0xC88E, 0xA0EC, 0xC88F, 0xA0ED, - 0xC890, 0xA0EE, 0xC891, 0xA0EF, 0xC892, 0xA0F0, 0xC893, 0xA0F1, - 0xC894, 0xC1C4, 0xC895, 0xA0F2, 0xC896, 0xA0F3, 0xC897, 0xA0F4, - 0xC898, 0xA0F5, 0xC899, 0xA0F6, 0xC89A, 0xA0F7, 0xC89B, 0xA0F8, - 0xC89C, 0xA0F9, 0xC89D, 0xC1C5, 0xC89E, 0xA0FA, 0xC89F, 0xC1C6, - 0xC8A0, 0xA0FB, 0xC8A1, 0xC1C7, 0xC8A2, 0xA0FC, 0xC8A3, 0xA0FD, - 0xC8A4, 0xA0FE, 0xC8A5, 0xA141, 0xC8A6, 0xA142, 0xC8A7, 0xA143, - 0xC8A8, 0xC1C8, 0xC8A9, 0xA144, 0xC8AA, 0xA145, 0xC8AB, 0xA146, - 0xC8AC, 0xA147, 0xC8AD, 0xA148, 0xC8AE, 0xA149, 0xC8AF, 0xA14A, - 0xC8B0, 0xA14B, 0xC8B1, 0xA14C, 0xC8B2, 0xA14D, 0xC8B3, 0xA14E, - 0xC8B4, 0xA14F, 0xC8B5, 0xA150, 0xC8B6, 0xA151, 0xC8B7, 0xA152, - 0xC8B8, 0xA153, 0xC8B9, 0xA154, 0xC8BA, 0xA155, 0xC8BB, 0xA156, - 0xC8BC, 0xC1C9, 0xC8BD, 0xC1CA, 0xC8BE, 0xA157, 0xC8BF, 0xA158, - 0xC8C0, 0xA159, 0xC8C1, 0xA15A, 0xC8C2, 0xA161, 0xC8C3, 0xA162, - 0xC8C4, 0xC1CB, 0xC8C5, 0xA163, 0xC8C6, 0xA164, 0xC8C7, 0xA165, - 0xC8C8, 0xC1CC, 0xC8C9, 0xA166, 0xC8CA, 0xA167, 0xC8CB, 0xA168, - 0xC8CC, 0xC1CD, 0xC8CD, 0xA169, 0xC8CE, 0xA16A, 0xC8CF, 0xA16B, - 0xC8D0, 0xA16C, 0xC8D1, 0xA16D, 0xC8D2, 0xA16E, 0xC8D3, 0xA16F, - 0xC8D4, 0xC1CE, 0xC8D5, 0xC1CF, 0xC8D6, 0xA170, 0xC8D7, 0xC1D0, - 0xC8D8, 0xA171, 0xC8D9, 0xC1D1, 0xC8DA, 0xA172, 0xC8DB, 0xA173, - 0xC8DC, 0xA174, 0xC8DD, 0xA175, 0xC8DE, 0xA176, 0xC8DF, 0xA177, - 0xC8E0, 0xC1D2, 0xC8E1, 0xC1D3, 0xC8E2, 0xA178, 0xC8E3, 0xA179, - 0xC8E4, 0xC1D4, 0xC8E5, 0xA17A, 0xC8E6, 0xA181, 0xC8E7, 0xA182, - 0xC8E8, 0xA183, 0xC8E9, 0xA184, 0xC8EA, 0xA185, 0xC8EB, 0xA186, - 0xC8EC, 0xA187, 0xC8ED, 0xA188, 0xC8EE, 0xA189, 0xC8EF, 0xA18A, - 0xC8F0, 0xA18B, 0xC8F1, 0xA18C, 0xC8F2, 0xA18D, 0xC8F3, 0xA18E, - 0xC8F4, 0xA18F, 0xC8F5, 0xC1D5, 0xC8F6, 0xA190, 0xC8F7, 0xA191, - 0xC8F8, 0xA192, 0xC8F9, 0xA193, 0xC8FA, 0xA194, 0xC8FB, 0xA195, - 0xC8FC, 0xC1D6, 0xC8FD, 0xC1D7, 0xC8FE, 0xA196, 0xC8FF, 0xA197, - 0xC900, 0xC1D8, 0xC901, 0xA198, 0xC902, 0xA199, 0xC903, 0xA19A, - 0xC904, 0xC1D9, 0xC905, 0xC1DA, 0xC906, 0xC1DB, 0xC907, 0xA19B, - 0xC908, 0xA19C, 0xC909, 0xA19D, 0xC90A, 0xA19E, 0xC90B, 0xA19F, - 0xC90C, 0xC1DC, 0xC90D, 0xC1DD, 0xC90E, 0xA1A0, 0xC90F, 0xC1DE, - 0xC910, 0xA241, 0xC911, 0xC1DF, 0xC912, 0xA242, 0xC913, 0xA243, - 0xC914, 0xA244, 0xC915, 0xA245, 0xC916, 0xA246, 0xC917, 0xA247, - 0xC918, 0xC1E0, 0xC919, 0xA248, 0xC91A, 0xA249, 0xC91B, 0xA24A, - 0xC91C, 0xA24B, 0xC91D, 0xA24C, 0xC91E, 0xA24D, 0xC91F, 0xA24E, - 0xC920, 0xA24F, 0xC921, 0xA250, 0xC922, 0xA251, 0xC923, 0xA252, - 0xC924, 0xA253, 0xC925, 0xA254, 0xC926, 0xA255, 0xC927, 0xA256, - 0xC928, 0xA257, 0xC929, 0xA258, 0xC92A, 0xA259, 0xC92B, 0xA25A, - 0xC92C, 0xC1E1, 0xC92D, 0xA261, 0xC92E, 0xA262, 0xC92F, 0xA263, - 0xC930, 0xA264, 0xC931, 0xA265, 0xC932, 0xA266, 0xC933, 0xA267, - 0xC934, 0xC1E2, 0xC935, 0xA268, 0xC936, 0xA269, 0xC937, 0xA26A, - 0xC938, 0xA26B, 0xC939, 0xA26C, 0xC93A, 0xA26D, 0xC93B, 0xA26E, - 0xC93C, 0xA26F, 0xC93D, 0xA270, 0xC93E, 0xA271, 0xC93F, 0xA272, - 0xC940, 0xA273, 0xC941, 0xA274, 0xC942, 0xA275, 0xC943, 0xA276, - 0xC944, 0xA277, 0xC945, 0xA278, 0xC946, 0xA279, 0xC947, 0xA27A, - 0xC948, 0xA281, 0xC949, 0xA282, 0xC94A, 0xA283, 0xC94B, 0xA284, - 0xC94C, 0xA285, 0xC94D, 0xA286, 0xC94E, 0xA287, 0xC94F, 0xA288, - 0xC950, 0xC1E3, 0xC951, 0xC1E4, 0xC952, 0xA289, 0xC953, 0xA28A, - 0xC954, 0xC1E5, 0xC955, 0xA28B, 0xC956, 0xA28C, 0xC957, 0xA28D, - 0xC958, 0xC1E6, 0xC959, 0xA28E, 0xC95A, 0xA28F, 0xC95B, 0xA290, - 0xC95C, 0xA291, 0xC95D, 0xA292, 0xC95E, 0xA293, 0xC95F, 0xA294, - 0xC960, 0xC1E7, 0xC961, 0xC1E8, 0xC962, 0xA295, 0xC963, 0xC1E9, - 0xC964, 0xA296, 0xC965, 0xA297, 0xC966, 0xA298, 0xC967, 0xA299, - 0xC968, 0xA29A, 0xC969, 0xA29B, 0xC96A, 0xA29C, 0xC96B, 0xA29D, - 0xC96C, 0xC1EA, 0xC96D, 0xA29E, 0xC96E, 0xA29F, 0xC96F, 0xA2A0, - 0xC970, 0xC1EB, 0xC971, 0xA341, 0xC972, 0xA342, 0xC973, 0xA343, - 0xC974, 0xC1EC, 0xC975, 0xA344, 0xC976, 0xA345, 0xC977, 0xA346, - 0xC978, 0xA347, 0xC979, 0xA348, 0xC97A, 0xA349, 0xC97B, 0xA34A, - 0xC97C, 0xC1ED, 0xC97D, 0xA34B, 0xC97E, 0xA34C, 0xC97F, 0xA34D, - 0xC980, 0xA34E, 0xC981, 0xA34F, 0xC982, 0xA350, 0xC983, 0xA351, - 0xC984, 0xA352, 0xC985, 0xA353, 0xC986, 0xA354, 0xC987, 0xA355, - 0xC988, 0xC1EE, 0xC989, 0xC1EF, 0xC98A, 0xA356, 0xC98B, 0xA357, - 0xC98C, 0xC1F0, 0xC98D, 0xA358, 0xC98E, 0xA359, 0xC98F, 0xA35A, - 0xC990, 0xC1F1, 0xC991, 0xA361, 0xC992, 0xA362, 0xC993, 0xA363, - 0xC994, 0xA364, 0xC995, 0xA365, 0xC996, 0xA366, 0xC997, 0xA367, - 0xC998, 0xC1F2, 0xC999, 0xC1F3, 0xC99A, 0xA368, 0xC99B, 0xC1F4, - 0xC99C, 0xA369, 0xC99D, 0xC1F5, 0xC99E, 0xA36A, 0xC99F, 0xA36B, - 0xC9A0, 0xA36C, 0xC9A1, 0xA36D, 0xC9A2, 0xA36E, 0xC9A3, 0xA36F, - 0xC9A4, 0xA370, 0xC9A5, 0xA371, 0xC9A6, 0xA372, 0xC9A7, 0xA373, - 0xC9A8, 0xA374, 0xC9A9, 0xA375, 0xC9AA, 0xA376, 0xC9AB, 0xA377, - 0xC9AC, 0xA378, 0xC9AD, 0xA379, 0xC9AE, 0xA37A, 0xC9AF, 0xA381, - 0xC9B0, 0xA382, 0xC9B1, 0xA383, 0xC9B2, 0xA384, 0xC9B3, 0xA385, - 0xC9B4, 0xA386, 0xC9B5, 0xA387, 0xC9B6, 0xA388, 0xC9B7, 0xA389, - 0xC9B8, 0xA38A, 0xC9B9, 0xA38B, 0xC9BA, 0xA38C, 0xC9BB, 0xA38D, - 0xC9BC, 0xA38E, 0xC9BD, 0xA38F, 0xC9BE, 0xA390, 0xC9BF, 0xA391, - 0xC9C0, 0xC1F6, 0xC9C1, 0xC1F7, 0xC9C2, 0xA392, 0xC9C3, 0xA393, - 0xC9C4, 0xC1F8, 0xC9C5, 0xA394, 0xC9C6, 0xA395, 0xC9C7, 0xC1F9, - 0xC9C8, 0xC1FA, 0xC9C9, 0xA396, 0xC9CA, 0xC1FB, 0xC9CB, 0xA397, - 0xC9CC, 0xA398, 0xC9CD, 0xA399, 0xC9CE, 0xA39A, 0xC9CF, 0xA39B, - 0xC9D0, 0xC1FC, 0xC9D1, 0xC1FD, 0xC9D2, 0xA39C, 0xC9D3, 0xC1FE, - 0xC9D4, 0xA39D, 0xC9D5, 0xC2A1, 0xC9D6, 0xC2A2, 0xC9D7, 0xA39E, - 0xC9D8, 0xA39F, 0xC9D9, 0xC2A3, 0xC9DA, 0xC2A4, 0xC9DB, 0xA3A0, - 0xC9DC, 0xC2A5, 0xC9DD, 0xC2A6, 0xC9DE, 0xA441, 0xC9DF, 0xA442, - 0xC9E0, 0xC2A7, 0xC9E1, 0xA443, 0xC9E2, 0xC2A8, 0xC9E3, 0xA444, - 0xC9E4, 0xC2A9, 0xC9E5, 0xA445, 0xC9E6, 0xA446, 0xC9E7, 0xC2AA, - 0xC9E8, 0xA447, 0xC9E9, 0xA448, 0xC9EA, 0xA449, 0xC9EB, 0xA44A, - 0xC9EC, 0xC2AB, 0xC9ED, 0xC2AC, 0xC9EE, 0xA44B, 0xC9EF, 0xC2AD, - 0xC9F0, 0xC2AE, 0xC9F1, 0xC2AF, 0xC9F2, 0xA44C, 0xC9F3, 0xA44D, - 0xC9F4, 0xA44E, 0xC9F5, 0xA44F, 0xC9F6, 0xA450, 0xC9F7, 0xA451, - 0xC9F8, 0xC2B0, 0xC9F9, 0xC2B1, 0xC9FA, 0xA452, 0xC9FB, 0xA453, - 0xC9FC, 0xC2B2, 0xC9FD, 0xA454, 0xC9FE, 0xA455, 0xC9FF, 0xA456, - 0xCA00, 0xC2B3, 0xCA01, 0xA457, 0xCA02, 0xA458, 0xCA03, 0xA459, - 0xCA04, 0xA45A, 0xCA05, 0xA461, 0xCA06, 0xA462, 0xCA07, 0xA463, - 0xCA08, 0xC2B4, 0xCA09, 0xC2B5, 0xCA0A, 0xA464, 0xCA0B, 0xC2B6, - 0xCA0C, 0xC2B7, 0xCA0D, 0xC2B8, 0xCA0E, 0xA465, 0xCA0F, 0xA466, - 0xCA10, 0xA467, 0xCA11, 0xA468, 0xCA12, 0xA469, 0xCA13, 0xA46A, - 0xCA14, 0xC2B9, 0xCA15, 0xA46B, 0xCA16, 0xA46C, 0xCA17, 0xA46D, - 0xCA18, 0xC2BA, 0xCA19, 0xA46E, 0xCA1A, 0xA46F, 0xCA1B, 0xA470, - 0xCA1C, 0xA471, 0xCA1D, 0xA472, 0xCA1E, 0xA473, 0xCA1F, 0xA474, - 0xCA20, 0xA475, 0xCA21, 0xA476, 0xCA22, 0xA477, 0xCA23, 0xA478, - 0xCA24, 0xA479, 0xCA25, 0xA47A, 0xCA26, 0xA481, 0xCA27, 0xA482, - 0xCA28, 0xA483, 0xCA29, 0xC2BB, 0xCA2A, 0xA484, 0xCA2B, 0xA485, - 0xCA2C, 0xA486, 0xCA2D, 0xA487, 0xCA2E, 0xA488, 0xCA2F, 0xA489, - 0xCA30, 0xA48A, 0xCA31, 0xA48B, 0xCA32, 0xA48C, 0xCA33, 0xA48D, - 0xCA34, 0xA48E, 0xCA35, 0xA48F, 0xCA36, 0xA490, 0xCA37, 0xA491, - 0xCA38, 0xA492, 0xCA39, 0xA493, 0xCA3A, 0xA494, 0xCA3B, 0xA495, - 0xCA3C, 0xA496, 0xCA3D, 0xA497, 0xCA3E, 0xA498, 0xCA3F, 0xA499, - 0xCA40, 0xA49A, 0xCA41, 0xA49B, 0xCA42, 0xA49C, 0xCA43, 0xA49D, - 0xCA44, 0xA49E, 0xCA45, 0xA49F, 0xCA46, 0xA4A0, 0xCA47, 0xA541, - 0xCA48, 0xA542, 0xCA49, 0xA543, 0xCA4A, 0xA544, 0xCA4B, 0xA545, - 0xCA4C, 0xC2BC, 0xCA4D, 0xC2BD, 0xCA4E, 0xA546, 0xCA4F, 0xA547, - 0xCA50, 0xC2BE, 0xCA51, 0xA548, 0xCA52, 0xA549, 0xCA53, 0xA54A, - 0xCA54, 0xC2BF, 0xCA55, 0xA54B, 0xCA56, 0xA54C, 0xCA57, 0xA54D, - 0xCA58, 0xA54E, 0xCA59, 0xA54F, 0xCA5A, 0xA550, 0xCA5B, 0xA551, - 0xCA5C, 0xC2C0, 0xCA5D, 0xC2C1, 0xCA5E, 0xA552, 0xCA5F, 0xC2C2, - 0xCA60, 0xC2C3, 0xCA61, 0xC2C4, 0xCA62, 0xA553, 0xCA63, 0xA554, - 0xCA64, 0xA555, 0xCA65, 0xA556, 0xCA66, 0xA557, 0xCA67, 0xA558, - 0xCA68, 0xC2C5, 0xCA69, 0xA559, 0xCA6A, 0xA55A, 0xCA6B, 0xA561, - 0xCA6C, 0xA562, 0xCA6D, 0xA563, 0xCA6E, 0xA564, 0xCA6F, 0xA565, - 0xCA70, 0xA566, 0xCA71, 0xA567, 0xCA72, 0xA568, 0xCA73, 0xA569, - 0xCA74, 0xA56A, 0xCA75, 0xA56B, 0xCA76, 0xA56C, 0xCA77, 0xA56D, - 0xCA78, 0xA56E, 0xCA79, 0xA56F, 0xCA7A, 0xA570, 0xCA7B, 0xA571, - 0xCA7C, 0xA572, 0xCA7D, 0xC2C6, 0xCA7E, 0xA573, 0xCA7F, 0xA574, - 0xCA80, 0xA575, 0xCA81, 0xA576, 0xCA82, 0xA577, 0xCA83, 0xA578, - 0xCA84, 0xC2C7, 0xCA85, 0xA579, 0xCA86, 0xA57A, 0xCA87, 0xA581, - 0xCA88, 0xA582, 0xCA89, 0xA583, 0xCA8A, 0xA584, 0xCA8B, 0xA585, - 0xCA8C, 0xA586, 0xCA8D, 0xA587, 0xCA8E, 0xA588, 0xCA8F, 0xA589, - 0xCA90, 0xA58A, 0xCA91, 0xA58B, 0xCA92, 0xA58C, 0xCA93, 0xA58D, - 0xCA94, 0xA58E, 0xCA95, 0xA58F, 0xCA96, 0xA590, 0xCA97, 0xA591, - 0xCA98, 0xC2C8, 0xCA99, 0xA592, 0xCA9A, 0xA593, 0xCA9B, 0xA594, - 0xCA9C, 0xA595, 0xCA9D, 0xA596, 0xCA9E, 0xA597, 0xCA9F, 0xA598, - 0xCAA0, 0xA599, 0xCAA1, 0xA59A, 0xCAA2, 0xA59B, 0xCAA3, 0xA59C, - 0xCAA4, 0xA59D, 0xCAA5, 0xA59E, 0xCAA6, 0xA59F, 0xCAA7, 0xA5A0, - 0xCAA8, 0xA641, 0xCAA9, 0xA642, 0xCAAA, 0xA643, 0xCAAB, 0xA644, - 0xCAAC, 0xA645, 0xCAAD, 0xA646, 0xCAAE, 0xA647, 0xCAAF, 0xA648, - 0xCAB0, 0xA649, 0xCAB1, 0xA64A, 0xCAB2, 0xA64B, 0xCAB3, 0xA64C, - 0xCAB4, 0xA64D, 0xCAB5, 0xA64E, 0xCAB6, 0xA64F, 0xCAB7, 0xA650, - 0xCAB8, 0xA651, 0xCAB9, 0xA652, 0xCABA, 0xA653, 0xCABB, 0xA654, - 0xCABC, 0xC2C9, 0xCABD, 0xC2CA, 0xCABE, 0xA655, 0xCABF, 0xA656, - 0xCAC0, 0xC2CB, 0xCAC1, 0xA657, 0xCAC2, 0xA658, 0xCAC3, 0xA659, - 0xCAC4, 0xC2CC, 0xCAC5, 0xA65A, 0xCAC6, 0xA661, 0xCAC7, 0xA662, - 0xCAC8, 0xA663, 0xCAC9, 0xA664, 0xCACA, 0xA665, 0xCACB, 0xA666, - 0xCACC, 0xC2CD, 0xCACD, 0xC2CE, 0xCACE, 0xA667, 0xCACF, 0xC2CF, - 0xCAD0, 0xA668, 0xCAD1, 0xC2D0, 0xCAD2, 0xA669, 0xCAD3, 0xC2D1, - 0xCAD4, 0xA66A, 0xCAD5, 0xA66B, 0xCAD6, 0xA66C, 0xCAD7, 0xA66D, - 0xCAD8, 0xC2D2, 0xCAD9, 0xC2D3, 0xCADA, 0xA66E, 0xCADB, 0xA66F, - 0xCADC, 0xA670, 0xCADD, 0xA671, 0xCADE, 0xA672, 0xCADF, 0xA673, - 0xCAE0, 0xC2D4, 0xCAE1, 0xA674, 0xCAE2, 0xA675, 0xCAE3, 0xA676, - 0xCAE4, 0xA677, 0xCAE5, 0xA678, 0xCAE6, 0xA679, 0xCAE7, 0xA67A, - 0xCAE8, 0xA681, 0xCAE9, 0xA682, 0xCAEA, 0xA683, 0xCAEB, 0xA684, - 0xCAEC, 0xC2D5, 0xCAED, 0xA685, 0xCAEE, 0xA686, 0xCAEF, 0xA687, - 0xCAF0, 0xA688, 0xCAF1, 0xA689, 0xCAF2, 0xA68A, 0xCAF3, 0xA68B, - 0xCAF4, 0xC2D6, 0xCAF5, 0xA68C, 0xCAF6, 0xA68D, 0xCAF7, 0xA68E, - 0xCAF8, 0xA68F, 0xCAF9, 0xA690, 0xCAFA, 0xA691, 0xCAFB, 0xA692, - 0xCAFC, 0xA693, 0xCAFD, 0xA694, 0xCAFE, 0xA695, 0xCAFF, 0xA696, - 0xCB00, 0xA697, 0xCB01, 0xA698, 0xCB02, 0xA699, 0xCB03, 0xA69A, - 0xCB04, 0xA69B, 0xCB05, 0xA69C, 0xCB06, 0xA69D, 0xCB07, 0xA69E, - 0xCB08, 0xC2D7, 0xCB09, 0xA69F, 0xCB0A, 0xA6A0, 0xCB0B, 0xA741, - 0xCB0C, 0xA742, 0xCB0D, 0xA743, 0xCB0E, 0xA744, 0xCB0F, 0xA745, - 0xCB10, 0xC2D8, 0xCB11, 0xA746, 0xCB12, 0xA747, 0xCB13, 0xA748, - 0xCB14, 0xC2D9, 0xCB15, 0xA749, 0xCB16, 0xA74A, 0xCB17, 0xA74B, - 0xCB18, 0xC2DA, 0xCB19, 0xA74C, 0xCB1A, 0xA74D, 0xCB1B, 0xA74E, - 0xCB1C, 0xA74F, 0xCB1D, 0xA750, 0xCB1E, 0xA751, 0xCB1F, 0xA752, - 0xCB20, 0xC2DB, 0xCB21, 0xC2DC, 0xCB22, 0xA753, 0xCB23, 0xA754, - 0xCB24, 0xA755, 0xCB25, 0xA756, 0xCB26, 0xA757, 0xCB27, 0xA758, - 0xCB28, 0xA759, 0xCB29, 0xA75A, 0xCB2A, 0xA761, 0xCB2B, 0xA762, - 0xCB2C, 0xA763, 0xCB2D, 0xA764, 0xCB2E, 0xA765, 0xCB2F, 0xA766, - 0xCB30, 0xA767, 0xCB31, 0xA768, 0xCB32, 0xA769, 0xCB33, 0xA76A, - 0xCB34, 0xA76B, 0xCB35, 0xA76C, 0xCB36, 0xA76D, 0xCB37, 0xA76E, - 0xCB38, 0xA76F, 0xCB39, 0xA770, 0xCB3A, 0xA771, 0xCB3B, 0xA772, - 0xCB3C, 0xA773, 0xCB3D, 0xA774, 0xCB3E, 0xA775, 0xCB3F, 0xA776, - 0xCB40, 0xA777, 0xCB41, 0xC2DD, 0xCB42, 0xA778, 0xCB43, 0xA779, - 0xCB44, 0xA77A, 0xCB45, 0xA781, 0xCB46, 0xA782, 0xCB47, 0xA783, - 0xCB48, 0xC2DE, 0xCB49, 0xC2DF, 0xCB4A, 0xA784, 0xCB4B, 0xA785, - 0xCB4C, 0xC2E0, 0xCB4D, 0xA786, 0xCB4E, 0xA787, 0xCB4F, 0xA788, - 0xCB50, 0xC2E1, 0xCB51, 0xA789, 0xCB52, 0xA78A, 0xCB53, 0xA78B, - 0xCB54, 0xA78C, 0xCB55, 0xA78D, 0xCB56, 0xA78E, 0xCB57, 0xA78F, - 0xCB58, 0xC2E2, 0xCB59, 0xC2E3, 0xCB5A, 0xA790, 0xCB5B, 0xA791, - 0xCB5C, 0xA792, 0xCB5D, 0xC2E4, 0xCB5E, 0xA793, 0xCB5F, 0xA794, - 0xCB60, 0xA795, 0xCB61, 0xA796, 0xCB62, 0xA797, 0xCB63, 0xA798, - 0xCB64, 0xC2E5, 0xCB65, 0xA799, 0xCB66, 0xA79A, 0xCB67, 0xA79B, - 0xCB68, 0xA79C, 0xCB69, 0xA79D, 0xCB6A, 0xA79E, 0xCB6B, 0xA79F, - 0xCB6C, 0xA7A0, 0xCB6D, 0xA841, 0xCB6E, 0xA842, 0xCB6F, 0xA843, - 0xCB70, 0xA844, 0xCB71, 0xA845, 0xCB72, 0xA846, 0xCB73, 0xA847, - 0xCB74, 0xA848, 0xCB75, 0xA849, 0xCB76, 0xA84A, 0xCB77, 0xA84B, - 0xCB78, 0xC2E6, 0xCB79, 0xC2E7, 0xCB7A, 0xA84C, 0xCB7B, 0xA84D, - 0xCB7C, 0xA84E, 0xCB7D, 0xA84F, 0xCB7E, 0xA850, 0xCB7F, 0xA851, - 0xCB80, 0xA852, 0xCB81, 0xA853, 0xCB82, 0xA854, 0xCB83, 0xA855, - 0xCB84, 0xA856, 0xCB85, 0xA857, 0xCB86, 0xA858, 0xCB87, 0xA859, - 0xCB88, 0xA85A, 0xCB89, 0xA861, 0xCB8A, 0xA862, 0xCB8B, 0xA863, - 0xCB8C, 0xA864, 0xCB8D, 0xA865, 0xCB8E, 0xA866, 0xCB8F, 0xA867, - 0xCB90, 0xA868, 0xCB91, 0xA869, 0xCB92, 0xA86A, 0xCB93, 0xA86B, - 0xCB94, 0xA86C, 0xCB95, 0xA86D, 0xCB96, 0xA86E, 0xCB97, 0xA86F, - 0xCB98, 0xA870, 0xCB99, 0xA871, 0xCB9A, 0xA872, 0xCB9B, 0xA873, - 0xCB9C, 0xC2E8, 0xCB9D, 0xA874, 0xCB9E, 0xA875, 0xCB9F, 0xA876, - 0xCBA0, 0xA877, 0xCBA1, 0xA878, 0xCBA2, 0xA879, 0xCBA3, 0xA87A, - 0xCBA4, 0xA881, 0xCBA5, 0xA882, 0xCBA6, 0xA883, 0xCBA7, 0xA884, - 0xCBA8, 0xA885, 0xCBA9, 0xA886, 0xCBAA, 0xA887, 0xCBAB, 0xA888, - 0xCBAC, 0xA889, 0xCBAD, 0xA88A, 0xCBAE, 0xA88B, 0xCBAF, 0xA88C, - 0xCBB0, 0xA88D, 0xCBB1, 0xA88E, 0xCBB2, 0xA88F, 0xCBB3, 0xA890, - 0xCBB4, 0xA891, 0xCBB5, 0xA892, 0xCBB6, 0xA893, 0xCBB7, 0xA894, - 0xCBB8, 0xC2E9, 0xCBB9, 0xA895, 0xCBBA, 0xA896, 0xCBBB, 0xA897, - 0xCBBC, 0xA898, 0xCBBD, 0xA899, 0xCBBE, 0xA89A, 0xCBBF, 0xA89B, - 0xCBC0, 0xA89C, 0xCBC1, 0xA89D, 0xCBC2, 0xA89E, 0xCBC3, 0xA89F, - 0xCBC4, 0xA8A0, 0xCBC5, 0xA941, 0xCBC6, 0xA942, 0xCBC7, 0xA943, - 0xCBC8, 0xA944, 0xCBC9, 0xA945, 0xCBCA, 0xA946, 0xCBCB, 0xA947, - 0xCBCC, 0xA948, 0xCBCD, 0xA949, 0xCBCE, 0xA94A, 0xCBCF, 0xA94B, - 0xCBD0, 0xA94C, 0xCBD1, 0xA94D, 0xCBD2, 0xA94E, 0xCBD3, 0xA94F, - 0xCBD4, 0xC2EA, 0xCBD5, 0xA950, 0xCBD6, 0xA951, 0xCBD7, 0xA952, - 0xCBD8, 0xA953, 0xCBD9, 0xA954, 0xCBDA, 0xA955, 0xCBDB, 0xA956, - 0xCBDC, 0xA957, 0xCBDD, 0xA958, 0xCBDE, 0xA959, 0xCBDF, 0xA95A, - 0xCBE0, 0xA961, 0xCBE1, 0xA962, 0xCBE2, 0xA963, 0xCBE3, 0xA964, - 0xCBE4, 0xC2EB, 0xCBE5, 0xA965, 0xCBE6, 0xA966, 0xCBE7, 0xC2EC, - 0xCBE8, 0xA967, 0xCBE9, 0xC2ED, 0xCBEA, 0xA968, 0xCBEB, 0xA969, - 0xCBEC, 0xA96A, 0xCBED, 0xA96B, 0xCBEE, 0xA96C, 0xCBEF, 0xA96D, - 0xCBF0, 0xA96E, 0xCBF1, 0xA96F, 0xCBF2, 0xA970, 0xCBF3, 0xA971, - 0xCBF4, 0xA972, 0xCBF5, 0xA973, 0xCBF6, 0xA974, 0xCBF7, 0xA975, - 0xCBF8, 0xA976, 0xCBF9, 0xA977, 0xCBFA, 0xA978, 0xCBFB, 0xA979, - 0xCBFC, 0xA97A, 0xCBFD, 0xA981, 0xCBFE, 0xA982, 0xCBFF, 0xA983, - 0xCC00, 0xA984, 0xCC01, 0xA985, 0xCC02, 0xA986, 0xCC03, 0xA987, - 0xCC04, 0xA988, 0xCC05, 0xA989, 0xCC06, 0xA98A, 0xCC07, 0xA98B, - 0xCC08, 0xA98C, 0xCC09, 0xA98D, 0xCC0A, 0xA98E, 0xCC0B, 0xA98F, - 0xCC0C, 0xC2EE, 0xCC0D, 0xC2EF, 0xCC0E, 0xA990, 0xCC0F, 0xA991, - 0xCC10, 0xC2F0, 0xCC11, 0xA992, 0xCC12, 0xA993, 0xCC13, 0xA994, - 0xCC14, 0xC2F1, 0xCC15, 0xA995, 0xCC16, 0xA996, 0xCC17, 0xA997, - 0xCC18, 0xA998, 0xCC19, 0xA999, 0xCC1A, 0xA99A, 0xCC1B, 0xA99B, - 0xCC1C, 0xC2F2, 0xCC1D, 0xC2F3, 0xCC1E, 0xA99C, 0xCC1F, 0xA99D, - 0xCC20, 0xA99E, 0xCC21, 0xC2F4, 0xCC22, 0xC2F5, 0xCC23, 0xA99F, - 0xCC24, 0xA9A0, 0xCC25, 0xAA41, 0xCC26, 0xAA42, 0xCC27, 0xC2F6, - 0xCC28, 0xC2F7, 0xCC29, 0xC2F8, 0xCC2A, 0xAA43, 0xCC2B, 0xAA44, - 0xCC2C, 0xC2F9, 0xCC2D, 0xAA45, 0xCC2E, 0xC2FA, 0xCC2F, 0xAA46, - 0xCC30, 0xC2FB, 0xCC31, 0xAA47, 0xCC32, 0xAA48, 0xCC33, 0xAA49, - 0xCC34, 0xAA4A, 0xCC35, 0xAA4B, 0xCC36, 0xAA4C, 0xCC37, 0xAA4D, - 0xCC38, 0xC2FC, 0xCC39, 0xC2FD, 0xCC3A, 0xAA4E, 0xCC3B, 0xC2FE, - 0xCC3C, 0xC3A1, 0xCC3D, 0xC3A2, 0xCC3E, 0xC3A3, 0xCC3F, 0xAA4F, - 0xCC40, 0xAA50, 0xCC41, 0xAA51, 0xCC42, 0xAA52, 0xCC43, 0xAA53, - 0xCC44, 0xC3A4, 0xCC45, 0xC3A5, 0xCC46, 0xAA54, 0xCC47, 0xAA55, - 0xCC48, 0xC3A6, 0xCC49, 0xAA56, 0xCC4A, 0xAA57, 0xCC4B, 0xAA58, - 0xCC4C, 0xC3A7, 0xCC4D, 0xAA59, 0xCC4E, 0xAA5A, 0xCC4F, 0xAA61, - 0xCC50, 0xAA62, 0xCC51, 0xAA63, 0xCC52, 0xAA64, 0xCC53, 0xAA65, - 0xCC54, 0xC3A8, 0xCC55, 0xC3A9, 0xCC56, 0xAA66, 0xCC57, 0xC3AA, - 0xCC58, 0xC3AB, 0xCC59, 0xC3AC, 0xCC5A, 0xAA67, 0xCC5B, 0xAA68, - 0xCC5C, 0xAA69, 0xCC5D, 0xAA6A, 0xCC5E, 0xAA6B, 0xCC5F, 0xAA6C, - 0xCC60, 0xC3AD, 0xCC61, 0xAA6D, 0xCC62, 0xAA6E, 0xCC63, 0xAA6F, - 0xCC64, 0xC3AE, 0xCC65, 0xAA70, 0xCC66, 0xC3AF, 0xCC67, 0xAA71, - 0xCC68, 0xC3B0, 0xCC69, 0xAA72, 0xCC6A, 0xAA73, 0xCC6B, 0xAA74, - 0xCC6C, 0xAA75, 0xCC6D, 0xAA76, 0xCC6E, 0xAA77, 0xCC6F, 0xAA78, - 0xCC70, 0xC3B1, 0xCC71, 0xAA79, 0xCC72, 0xAA7A, 0xCC73, 0xAA81, - 0xCC74, 0xAA82, 0xCC75, 0xC3B2, 0xCC76, 0xAA83, 0xCC77, 0xAA84, - 0xCC78, 0xAA85, 0xCC79, 0xAA86, 0xCC7A, 0xAA87, 0xCC7B, 0xAA88, - 0xCC7C, 0xAA89, 0xCC7D, 0xAA8A, 0xCC7E, 0xAA8B, 0xCC7F, 0xAA8C, - 0xCC80, 0xAA8D, 0xCC81, 0xAA8E, 0xCC82, 0xAA8F, 0xCC83, 0xAA90, - 0xCC84, 0xAA91, 0xCC85, 0xAA92, 0xCC86, 0xAA93, 0xCC87, 0xAA94, - 0xCC88, 0xAA95, 0xCC89, 0xAA96, 0xCC8A, 0xAA97, 0xCC8B, 0xAA98, - 0xCC8C, 0xAA99, 0xCC8D, 0xAA9A, 0xCC8E, 0xAA9B, 0xCC8F, 0xAA9C, - 0xCC90, 0xAA9D, 0xCC91, 0xAA9E, 0xCC92, 0xAA9F, 0xCC93, 0xAAA0, - 0xCC94, 0xAB41, 0xCC95, 0xAB42, 0xCC96, 0xAB43, 0xCC97, 0xAB44, - 0xCC98, 0xC3B3, 0xCC99, 0xC3B4, 0xCC9A, 0xAB45, 0xCC9B, 0xAB46, - 0xCC9C, 0xC3B5, 0xCC9D, 0xAB47, 0xCC9E, 0xAB48, 0xCC9F, 0xAB49, - 0xCCA0, 0xC3B6, 0xCCA1, 0xAB4A, 0xCCA2, 0xAB4B, 0xCCA3, 0xAB4C, - 0xCCA4, 0xAB4D, 0xCCA5, 0xAB4E, 0xCCA6, 0xAB4F, 0xCCA7, 0xAB50, - 0xCCA8, 0xC3B7, 0xCCA9, 0xC3B8, 0xCCAA, 0xAB51, 0xCCAB, 0xC3B9, - 0xCCAC, 0xC3BA, 0xCCAD, 0xC3BB, 0xCCAE, 0xAB52, 0xCCAF, 0xAB53, - 0xCCB0, 0xAB54, 0xCCB1, 0xAB55, 0xCCB2, 0xAB56, 0xCCB3, 0xAB57, - 0xCCB4, 0xC3BC, 0xCCB5, 0xC3BD, 0xCCB6, 0xAB58, 0xCCB7, 0xAB59, - 0xCCB8, 0xC3BE, 0xCCB9, 0xAB5A, 0xCCBA, 0xAB61, 0xCCBB, 0xAB62, - 0xCCBC, 0xC3BF, 0xCCBD, 0xAB63, 0xCCBE, 0xAB64, 0xCCBF, 0xAB65, - 0xCCC0, 0xAB66, 0xCCC1, 0xAB67, 0xCCC2, 0xAB68, 0xCCC3, 0xAB69, - 0xCCC4, 0xC3C0, 0xCCC5, 0xC3C1, 0xCCC6, 0xAB6A, 0xCCC7, 0xC3C2, - 0xCCC8, 0xAB6B, 0xCCC9, 0xC3C3, 0xCCCA, 0xAB6C, 0xCCCB, 0xAB6D, - 0xCCCC, 0xAB6E, 0xCCCD, 0xAB6F, 0xCCCE, 0xAB70, 0xCCCF, 0xAB71, - 0xCCD0, 0xC3C4, 0xCCD1, 0xAB72, 0xCCD2, 0xAB73, 0xCCD3, 0xAB74, - 0xCCD4, 0xC3C5, 0xCCD5, 0xAB75, 0xCCD6, 0xAB76, 0xCCD7, 0xAB77, - 0xCCD8, 0xAB78, 0xCCD9, 0xAB79, 0xCCDA, 0xAB7A, 0xCCDB, 0xAB81, - 0xCCDC, 0xAB82, 0xCCDD, 0xAB83, 0xCCDE, 0xAB84, 0xCCDF, 0xAB85, - 0xCCE0, 0xAB86, 0xCCE1, 0xAB87, 0xCCE2, 0xAB88, 0xCCE3, 0xAB89, - 0xCCE4, 0xC3C6, 0xCCE5, 0xAB8A, 0xCCE6, 0xAB8B, 0xCCE7, 0xAB8C, - 0xCCE8, 0xAB8D, 0xCCE9, 0xAB8E, 0xCCEA, 0xAB8F, 0xCCEB, 0xAB90, - 0xCCEC, 0xC3C7, 0xCCED, 0xAB91, 0xCCEE, 0xAB92, 0xCCEF, 0xAB93, - 0xCCF0, 0xC3C8, 0xCCF1, 0xAB94, 0xCCF2, 0xAB95, 0xCCF3, 0xAB96, - 0xCCF4, 0xAB97, 0xCCF5, 0xAB98, 0xCCF6, 0xAB99, 0xCCF7, 0xAB9A, - 0xCCF8, 0xAB9B, 0xCCF9, 0xAB9C, 0xCCFA, 0xAB9D, 0xCCFB, 0xAB9E, - 0xCCFC, 0xAB9F, 0xCCFD, 0xABA0, 0xCCFE, 0xAC41, 0xCCFF, 0xAC42, - 0xCD00, 0xAC43, 0xCD01, 0xC3C9, 0xCD02, 0xAC44, 0xCD03, 0xAC45, - 0xCD04, 0xAC46, 0xCD05, 0xAC47, 0xCD06, 0xAC48, 0xCD07, 0xAC49, - 0xCD08, 0xC3CA, 0xCD09, 0xC3CB, 0xCD0A, 0xAC4A, 0xCD0B, 0xAC4B, - 0xCD0C, 0xC3CC, 0xCD0D, 0xAC4C, 0xCD0E, 0xAC4D, 0xCD0F, 0xAC4E, - 0xCD10, 0xC3CD, 0xCD11, 0xAC4F, 0xCD12, 0xAC50, 0xCD13, 0xAC51, - 0xCD14, 0xAC52, 0xCD15, 0xAC53, 0xCD16, 0xAC54, 0xCD17, 0xAC55, - 0xCD18, 0xC3CE, 0xCD19, 0xC3CF, 0xCD1A, 0xAC56, 0xCD1B, 0xC3D0, - 0xCD1C, 0xAC57, 0xCD1D, 0xC3D1, 0xCD1E, 0xAC58, 0xCD1F, 0xAC59, - 0xCD20, 0xAC5A, 0xCD21, 0xAC61, 0xCD22, 0xAC62, 0xCD23, 0xAC63, - 0xCD24, 0xC3D2, 0xCD25, 0xAC64, 0xCD26, 0xAC65, 0xCD27, 0xAC66, - 0xCD28, 0xC3D3, 0xCD29, 0xAC67, 0xCD2A, 0xAC68, 0xCD2B, 0xAC69, - 0xCD2C, 0xC3D4, 0xCD2D, 0xAC6A, 0xCD2E, 0xAC6B, 0xCD2F, 0xAC6C, - 0xCD30, 0xAC6D, 0xCD31, 0xAC6E, 0xCD32, 0xAC6F, 0xCD33, 0xAC70, - 0xCD34, 0xAC71, 0xCD35, 0xAC72, 0xCD36, 0xAC73, 0xCD37, 0xAC74, - 0xCD38, 0xAC75, 0xCD39, 0xC3D5, 0xCD3A, 0xAC76, 0xCD3B, 0xAC77, - 0xCD3C, 0xAC78, 0xCD3D, 0xAC79, 0xCD3E, 0xAC7A, 0xCD3F, 0xAC81, - 0xCD40, 0xAC82, 0xCD41, 0xAC83, 0xCD42, 0xAC84, 0xCD43, 0xAC85, - 0xCD44, 0xAC86, 0xCD45, 0xAC87, 0xCD46, 0xAC88, 0xCD47, 0xAC89, - 0xCD48, 0xAC8A, 0xCD49, 0xAC8B, 0xCD4A, 0xAC8C, 0xCD4B, 0xAC8D, - 0xCD4C, 0xAC8E, 0xCD4D, 0xAC8F, 0xCD4E, 0xAC90, 0xCD4F, 0xAC91, - 0xCD50, 0xAC92, 0xCD51, 0xAC93, 0xCD52, 0xAC94, 0xCD53, 0xAC95, - 0xCD54, 0xAC96, 0xCD55, 0xAC97, 0xCD56, 0xAC98, 0xCD57, 0xAC99, - 0xCD58, 0xAC9A, 0xCD59, 0xAC9B, 0xCD5A, 0xAC9C, 0xCD5B, 0xAC9D, - 0xCD5C, 0xC3D6, 0xCD5D, 0xAC9E, 0xCD5E, 0xAC9F, 0xCD5F, 0xACA0, - 0xCD60, 0xC3D7, 0xCD61, 0xAD41, 0xCD62, 0xAD42, 0xCD63, 0xAD43, - 0xCD64, 0xC3D8, 0xCD65, 0xAD44, 0xCD66, 0xAD45, 0xCD67, 0xAD46, - 0xCD68, 0xAD47, 0xCD69, 0xAD48, 0xCD6A, 0xAD49, 0xCD6B, 0xAD4A, - 0xCD6C, 0xC3D9, 0xCD6D, 0xC3DA, 0xCD6E, 0xAD4B, 0xCD6F, 0xC3DB, - 0xCD70, 0xAD4C, 0xCD71, 0xC3DC, 0xCD72, 0xAD4D, 0xCD73, 0xAD4E, - 0xCD74, 0xAD4F, 0xCD75, 0xAD50, 0xCD76, 0xAD51, 0xCD77, 0xAD52, - 0xCD78, 0xC3DD, 0xCD79, 0xAD53, 0xCD7A, 0xAD54, 0xCD7B, 0xAD55, - 0xCD7C, 0xAD56, 0xCD7D, 0xAD57, 0xCD7E, 0xAD58, 0xCD7F, 0xAD59, - 0xCD80, 0xAD5A, 0xCD81, 0xAD61, 0xCD82, 0xAD62, 0xCD83, 0xAD63, - 0xCD84, 0xAD64, 0xCD85, 0xAD65, 0xCD86, 0xAD66, 0xCD87, 0xAD67, - 0xCD88, 0xC3DE, 0xCD89, 0xAD68, 0xCD8A, 0xAD69, 0xCD8B, 0xAD6A, - 0xCD8C, 0xAD6B, 0xCD8D, 0xAD6C, 0xCD8E, 0xAD6D, 0xCD8F, 0xAD6E, - 0xCD90, 0xAD6F, 0xCD91, 0xAD70, 0xCD92, 0xAD71, 0xCD93, 0xAD72, - 0xCD94, 0xC3DF, 0xCD95, 0xC3E0, 0xCD96, 0xAD73, 0xCD97, 0xAD74, - 0xCD98, 0xC3E1, 0xCD99, 0xAD75, 0xCD9A, 0xAD76, 0xCD9B, 0xAD77, - 0xCD9C, 0xC3E2, 0xCD9D, 0xAD78, 0xCD9E, 0xAD79, 0xCD9F, 0xAD7A, - 0xCDA0, 0xAD81, 0xCDA1, 0xAD82, 0xCDA2, 0xAD83, 0xCDA3, 0xAD84, - 0xCDA4, 0xC3E3, 0xCDA5, 0xC3E4, 0xCDA6, 0xAD85, 0xCDA7, 0xC3E5, - 0xCDA8, 0xAD86, 0xCDA9, 0xC3E6, 0xCDAA, 0xAD87, 0xCDAB, 0xAD88, - 0xCDAC, 0xAD89, 0xCDAD, 0xAD8A, 0xCDAE, 0xAD8B, 0xCDAF, 0xAD8C, - 0xCDB0, 0xC3E7, 0xCDB1, 0xAD8D, 0xCDB2, 0xAD8E, 0xCDB3, 0xAD8F, - 0xCDB4, 0xAD90, 0xCDB5, 0xAD91, 0xCDB6, 0xAD92, 0xCDB7, 0xAD93, - 0xCDB8, 0xAD94, 0xCDB9, 0xAD95, 0xCDBA, 0xAD96, 0xCDBB, 0xAD97, - 0xCDBC, 0xAD98, 0xCDBD, 0xAD99, 0xCDBE, 0xAD9A, 0xCDBF, 0xAD9B, - 0xCDC0, 0xAD9C, 0xCDC1, 0xAD9D, 0xCDC2, 0xAD9E, 0xCDC3, 0xAD9F, - 0xCDC4, 0xC3E8, 0xCDC5, 0xADA0, 0xCDC6, 0xAE41, 0xCDC7, 0xAE42, - 0xCDC8, 0xAE43, 0xCDC9, 0xAE44, 0xCDCA, 0xAE45, 0xCDCB, 0xAE46, - 0xCDCC, 0xC3E9, 0xCDCD, 0xAE47, 0xCDCE, 0xAE48, 0xCDCF, 0xAE49, - 0xCDD0, 0xC3EA, 0xCDD1, 0xAE4A, 0xCDD2, 0xAE4B, 0xCDD3, 0xAE4C, - 0xCDD4, 0xAE4D, 0xCDD5, 0xAE4E, 0xCDD6, 0xAE4F, 0xCDD7, 0xAE50, - 0xCDD8, 0xAE51, 0xCDD9, 0xAE52, 0xCDDA, 0xAE53, 0xCDDB, 0xAE54, - 0xCDDC, 0xAE55, 0xCDDD, 0xAE56, 0xCDDE, 0xAE57, 0xCDDF, 0xAE58, - 0xCDE0, 0xAE59, 0xCDE1, 0xAE5A, 0xCDE2, 0xAE61, 0xCDE3, 0xAE62, - 0xCDE4, 0xAE63, 0xCDE5, 0xAE64, 0xCDE6, 0xAE65, 0xCDE7, 0xAE66, - 0xCDE8, 0xC3EB, 0xCDE9, 0xAE67, 0xCDEA, 0xAE68, 0xCDEB, 0xAE69, - 0xCDEC, 0xC3EC, 0xCDED, 0xAE6A, 0xCDEE, 0xAE6B, 0xCDEF, 0xAE6C, - 0xCDF0, 0xC3ED, 0xCDF1, 0xAE6D, 0xCDF2, 0xAE6E, 0xCDF3, 0xAE6F, - 0xCDF4, 0xAE70, 0xCDF5, 0xAE71, 0xCDF6, 0xAE72, 0xCDF7, 0xAE73, - 0xCDF8, 0xC3EE, 0xCDF9, 0xC3EF, 0xCDFA, 0xAE74, 0xCDFB, 0xC3F0, - 0xCDFC, 0xAE75, 0xCDFD, 0xC3F1, 0xCDFE, 0xAE76, 0xCDFF, 0xAE77, - 0xCE00, 0xAE78, 0xCE01, 0xAE79, 0xCE02, 0xAE7A, 0xCE03, 0xAE81, - 0xCE04, 0xC3F2, 0xCE05, 0xAE82, 0xCE06, 0xAE83, 0xCE07, 0xAE84, - 0xCE08, 0xC3F3, 0xCE09, 0xAE85, 0xCE0A, 0xAE86, 0xCE0B, 0xAE87, - 0xCE0C, 0xC3F4, 0xCE0D, 0xAE88, 0xCE0E, 0xAE89, 0xCE0F, 0xAE8A, - 0xCE10, 0xAE8B, 0xCE11, 0xAE8C, 0xCE12, 0xAE8D, 0xCE13, 0xAE8E, - 0xCE14, 0xC3F5, 0xCE15, 0xAE8F, 0xCE16, 0xAE90, 0xCE17, 0xAE91, - 0xCE18, 0xAE92, 0xCE19, 0xC3F6, 0xCE1A, 0xAE93, 0xCE1B, 0xAE94, - 0xCE1C, 0xAE95, 0xCE1D, 0xAE96, 0xCE1E, 0xAE97, 0xCE1F, 0xAE98, - 0xCE20, 0xC3F7, 0xCE21, 0xC3F8, 0xCE22, 0xAE99, 0xCE23, 0xAE9A, - 0xCE24, 0xC3F9, 0xCE25, 0xAE9B, 0xCE26, 0xAE9C, 0xCE27, 0xAE9D, - 0xCE28, 0xC3FA, 0xCE29, 0xAE9E, 0xCE2A, 0xAE9F, 0xCE2B, 0xAEA0, - 0xCE2C, 0xAF41, 0xCE2D, 0xAF42, 0xCE2E, 0xAF43, 0xCE2F, 0xAF44, - 0xCE30, 0xC3FB, 0xCE31, 0xC3FC, 0xCE32, 0xAF45, 0xCE33, 0xC3FD, - 0xCE34, 0xAF46, 0xCE35, 0xC3FE, 0xCE36, 0xAF47, 0xCE37, 0xAF48, - 0xCE38, 0xAF49, 0xCE39, 0xAF4A, 0xCE3A, 0xAF4B, 0xCE3B, 0xAF4C, - 0xCE3C, 0xAF4D, 0xCE3D, 0xAF4E, 0xCE3E, 0xAF4F, 0xCE3F, 0xAF50, - 0xCE40, 0xAF51, 0xCE41, 0xAF52, 0xCE42, 0xAF53, 0xCE43, 0xAF54, - 0xCE44, 0xAF55, 0xCE45, 0xAF56, 0xCE46, 0xAF57, 0xCE47, 0xAF58, - 0xCE48, 0xAF59, 0xCE49, 0xAF5A, 0xCE4A, 0xAF61, 0xCE4B, 0xAF62, - 0xCE4C, 0xAF63, 0xCE4D, 0xAF64, 0xCE4E, 0xAF65, 0xCE4F, 0xAF66, - 0xCE50, 0xAF67, 0xCE51, 0xAF68, 0xCE52, 0xAF69, 0xCE53, 0xAF6A, - 0xCE54, 0xAF6B, 0xCE55, 0xAF6C, 0xCE56, 0xAF6D, 0xCE57, 0xAF6E, - 0xCE58, 0xC4A1, 0xCE59, 0xC4A2, 0xCE5A, 0xAF6F, 0xCE5B, 0xAF70, - 0xCE5C, 0xC4A3, 0xCE5D, 0xAF71, 0xCE5E, 0xAF72, 0xCE5F, 0xC4A4, - 0xCE60, 0xC4A5, 0xCE61, 0xC4A6, 0xCE62, 0xAF73, 0xCE63, 0xAF74, - 0xCE64, 0xAF75, 0xCE65, 0xAF76, 0xCE66, 0xAF77, 0xCE67, 0xAF78, - 0xCE68, 0xC4A7, 0xCE69, 0xC4A8, 0xCE6A, 0xAF79, 0xCE6B, 0xC4A9, - 0xCE6C, 0xAF7A, 0xCE6D, 0xC4AA, 0xCE6E, 0xAF81, 0xCE6F, 0xAF82, - 0xCE70, 0xAF83, 0xCE71, 0xAF84, 0xCE72, 0xAF85, 0xCE73, 0xAF86, - 0xCE74, 0xC4AB, 0xCE75, 0xC4AC, 0xCE76, 0xAF87, 0xCE77, 0xAF88, - 0xCE78, 0xC4AD, 0xCE79, 0xAF89, 0xCE7A, 0xAF8A, 0xCE7B, 0xAF8B, - 0xCE7C, 0xC4AE, 0xCE7D, 0xAF8C, 0xCE7E, 0xAF8D, 0xCE7F, 0xAF8E, - 0xCE80, 0xAF8F, 0xCE81, 0xAF90, 0xCE82, 0xAF91, 0xCE83, 0xAF92, - 0xCE84, 0xC4AF, 0xCE85, 0xC4B0, 0xCE86, 0xAF93, 0xCE87, 0xC4B1, - 0xCE88, 0xAF94, 0xCE89, 0xC4B2, 0xCE8A, 0xAF95, 0xCE8B, 0xAF96, - 0xCE8C, 0xAF97, 0xCE8D, 0xAF98, 0xCE8E, 0xAF99, 0xCE8F, 0xAF9A, - 0xCE90, 0xC4B3, 0xCE91, 0xC4B4, 0xCE92, 0xAF9B, 0xCE93, 0xAF9C, - 0xCE94, 0xC4B5, 0xCE95, 0xAF9D, 0xCE96, 0xAF9E, 0xCE97, 0xAF9F, - 0xCE98, 0xC4B6, 0xCE99, 0xAFA0, 0xCE9A, 0xB041, 0xCE9B, 0xB042, - 0xCE9C, 0xB043, 0xCE9D, 0xB044, 0xCE9E, 0xB045, 0xCE9F, 0xB046, - 0xCEA0, 0xC4B7, 0xCEA1, 0xC4B8, 0xCEA2, 0xB047, 0xCEA3, 0xC4B9, - 0xCEA4, 0xC4BA, 0xCEA5, 0xC4BB, 0xCEA6, 0xB048, 0xCEA7, 0xB049, - 0xCEA8, 0xB04A, 0xCEA9, 0xB04B, 0xCEAA, 0xB04C, 0xCEAB, 0xB04D, - 0xCEAC, 0xC4BC, 0xCEAD, 0xC4BD, 0xCEAE, 0xB04E, 0xCEAF, 0xB04F, - 0xCEB0, 0xB050, 0xCEB1, 0xB051, 0xCEB2, 0xB052, 0xCEB3, 0xB053, - 0xCEB4, 0xB054, 0xCEB5, 0xB055, 0xCEB6, 0xB056, 0xCEB7, 0xB057, - 0xCEB8, 0xB058, 0xCEB9, 0xB059, 0xCEBA, 0xB05A, 0xCEBB, 0xB061, - 0xCEBC, 0xB062, 0xCEBD, 0xB063, 0xCEBE, 0xB064, 0xCEBF, 0xB065, - 0xCEC0, 0xB066, 0xCEC1, 0xC4BE, 0xCEC2, 0xB067, 0xCEC3, 0xB068, - 0xCEC4, 0xB069, 0xCEC5, 0xB06A, 0xCEC6, 0xB06B, 0xCEC7, 0xB06C, - 0xCEC8, 0xB06D, 0xCEC9, 0xB06E, 0xCECA, 0xB06F, 0xCECB, 0xB070, - 0xCECC, 0xB071, 0xCECD, 0xB072, 0xCECE, 0xB073, 0xCECF, 0xB074, - 0xCED0, 0xB075, 0xCED1, 0xB076, 0xCED2, 0xB077, 0xCED3, 0xB078, - 0xCED4, 0xB079, 0xCED5, 0xB07A, 0xCED6, 0xB081, 0xCED7, 0xB082, - 0xCED8, 0xB083, 0xCED9, 0xB084, 0xCEDA, 0xB085, 0xCEDB, 0xB086, - 0xCEDC, 0xB087, 0xCEDD, 0xB088, 0xCEDE, 0xB089, 0xCEDF, 0xB08A, - 0xCEE0, 0xB08B, 0xCEE1, 0xB08C, 0xCEE2, 0xB08D, 0xCEE3, 0xB08E, - 0xCEE4, 0xC4BF, 0xCEE5, 0xC4C0, 0xCEE6, 0xB08F, 0xCEE7, 0xB090, - 0xCEE8, 0xC4C1, 0xCEE9, 0xB091, 0xCEEA, 0xB092, 0xCEEB, 0xC4C2, - 0xCEEC, 0xC4C3, 0xCEED, 0xB093, 0xCEEE, 0xB094, 0xCEEF, 0xB095, - 0xCEF0, 0xB096, 0xCEF1, 0xB097, 0xCEF2, 0xB098, 0xCEF3, 0xB099, - 0xCEF4, 0xC4C4, 0xCEF5, 0xC4C5, 0xCEF6, 0xB09A, 0xCEF7, 0xC4C6, - 0xCEF8, 0xC4C7, 0xCEF9, 0xC4C8, 0xCEFA, 0xB09B, 0xCEFB, 0xB09C, - 0xCEFC, 0xB09D, 0xCEFD, 0xB09E, 0xCEFE, 0xB09F, 0xCEFF, 0xB0A0, - 0xCF00, 0xC4C9, 0xCF01, 0xC4CA, 0xCF02, 0xB141, 0xCF03, 0xB142, - 0xCF04, 0xC4CB, 0xCF05, 0xB143, 0xCF06, 0xB144, 0xCF07, 0xB145, - 0xCF08, 0xC4CC, 0xCF09, 0xB146, 0xCF0A, 0xB147, 0xCF0B, 0xB148, - 0xCF0C, 0xB149, 0xCF0D, 0xB14A, 0xCF0E, 0xB14B, 0xCF0F, 0xB14C, - 0xCF10, 0xC4CD, 0xCF11, 0xC4CE, 0xCF12, 0xB14D, 0xCF13, 0xC4CF, - 0xCF14, 0xB14E, 0xCF15, 0xC4D0, 0xCF16, 0xB14F, 0xCF17, 0xB150, - 0xCF18, 0xB151, 0xCF19, 0xB152, 0xCF1A, 0xB153, 0xCF1B, 0xB154, - 0xCF1C, 0xC4D1, 0xCF1D, 0xB155, 0xCF1E, 0xB156, 0xCF1F, 0xB157, - 0xCF20, 0xC4D2, 0xCF21, 0xB158, 0xCF22, 0xB159, 0xCF23, 0xB15A, - 0xCF24, 0xC4D3, 0xCF25, 0xB161, 0xCF26, 0xB162, 0xCF27, 0xB163, - 0xCF28, 0xB164, 0xCF29, 0xB165, 0xCF2A, 0xB166, 0xCF2B, 0xB167, - 0xCF2C, 0xC4D4, 0xCF2D, 0xC4D5, 0xCF2E, 0xB168, 0xCF2F, 0xC4D6, - 0xCF30, 0xC4D7, 0xCF31, 0xC4D8, 0xCF32, 0xB169, 0xCF33, 0xB16A, - 0xCF34, 0xB16B, 0xCF35, 0xB16C, 0xCF36, 0xB16D, 0xCF37, 0xB16E, - 0xCF38, 0xC4D9, 0xCF39, 0xB16F, 0xCF3A, 0xB170, 0xCF3B, 0xB171, - 0xCF3C, 0xB172, 0xCF3D, 0xB173, 0xCF3E, 0xB174, 0xCF3F, 0xB175, - 0xCF40, 0xB176, 0xCF41, 0xB177, 0xCF42, 0xB178, 0xCF43, 0xB179, - 0xCF44, 0xB17A, 0xCF45, 0xB181, 0xCF46, 0xB182, 0xCF47, 0xB183, - 0xCF48, 0xB184, 0xCF49, 0xB185, 0xCF4A, 0xB186, 0xCF4B, 0xB187, - 0xCF4C, 0xB188, 0xCF4D, 0xB189, 0xCF4E, 0xB18A, 0xCF4F, 0xB18B, - 0xCF50, 0xB18C, 0xCF51, 0xB18D, 0xCF52, 0xB18E, 0xCF53, 0xB18F, - 0xCF54, 0xC4DA, 0xCF55, 0xC4DB, 0xCF56, 0xB190, 0xCF57, 0xB191, - 0xCF58, 0xC4DC, 0xCF59, 0xB192, 0xCF5A, 0xB193, 0xCF5B, 0xB194, - 0xCF5C, 0xC4DD, 0xCF5D, 0xB195, 0xCF5E, 0xB196, 0xCF5F, 0xB197, - 0xCF60, 0xB198, 0xCF61, 0xB199, 0xCF62, 0xB19A, 0xCF63, 0xB19B, - 0xCF64, 0xC4DE, 0xCF65, 0xC4DF, 0xCF66, 0xB19C, 0xCF67, 0xC4E0, - 0xCF68, 0xB19D, 0xCF69, 0xC4E1, 0xCF6A, 0xB19E, 0xCF6B, 0xB19F, - 0xCF6C, 0xB1A0, 0xCF6D, 0xB241, 0xCF6E, 0xB242, 0xCF6F, 0xB243, - 0xCF70, 0xC4E2, 0xCF71, 0xC4E3, 0xCF72, 0xB244, 0xCF73, 0xB245, - 0xCF74, 0xC4E4, 0xCF75, 0xB246, 0xCF76, 0xB247, 0xCF77, 0xB248, - 0xCF78, 0xC4E5, 0xCF79, 0xB249, 0xCF7A, 0xB24A, 0xCF7B, 0xB24B, - 0xCF7C, 0xB24C, 0xCF7D, 0xB24D, 0xCF7E, 0xB24E, 0xCF7F, 0xB24F, - 0xCF80, 0xC4E6, 0xCF81, 0xB250, 0xCF82, 0xB251, 0xCF83, 0xB252, - 0xCF84, 0xB253, 0xCF85, 0xC4E7, 0xCF86, 0xB254, 0xCF87, 0xB255, - 0xCF88, 0xB256, 0xCF89, 0xB257, 0xCF8A, 0xB258, 0xCF8B, 0xB259, - 0xCF8C, 0xC4E8, 0xCF8D, 0xB25A, 0xCF8E, 0xB261, 0xCF8F, 0xB262, - 0xCF90, 0xB263, 0xCF91, 0xB264, 0xCF92, 0xB265, 0xCF93, 0xB266, - 0xCF94, 0xB267, 0xCF95, 0xB268, 0xCF96, 0xB269, 0xCF97, 0xB26A, - 0xCF98, 0xB26B, 0xCF99, 0xB26C, 0xCF9A, 0xB26D, 0xCF9B, 0xB26E, - 0xCF9C, 0xB26F, 0xCF9D, 0xB270, 0xCF9E, 0xB271, 0xCF9F, 0xB272, - 0xCFA0, 0xB273, 0xCFA1, 0xC4E9, 0xCFA2, 0xB274, 0xCFA3, 0xB275, - 0xCFA4, 0xB276, 0xCFA5, 0xB277, 0xCFA6, 0xB278, 0xCFA7, 0xB279, - 0xCFA8, 0xC4EA, 0xCFA9, 0xB27A, 0xCFAA, 0xB281, 0xCFAB, 0xB282, - 0xCFAC, 0xB283, 0xCFAD, 0xB284, 0xCFAE, 0xB285, 0xCFAF, 0xB286, - 0xCFB0, 0xC4EB, 0xCFB1, 0xB287, 0xCFB2, 0xB288, 0xCFB3, 0xB289, - 0xCFB4, 0xB28A, 0xCFB5, 0xB28B, 0xCFB6, 0xB28C, 0xCFB7, 0xB28D, - 0xCFB8, 0xB28E, 0xCFB9, 0xB28F, 0xCFBA, 0xB290, 0xCFBB, 0xB291, - 0xCFBC, 0xB292, 0xCFBD, 0xB293, 0xCFBE, 0xB294, 0xCFBF, 0xB295, - 0xCFC0, 0xB296, 0xCFC1, 0xB297, 0xCFC2, 0xB298, 0xCFC3, 0xB299, - 0xCFC4, 0xC4EC, 0xCFC5, 0xB29A, 0xCFC6, 0xB29B, 0xCFC7, 0xB29C, - 0xCFC8, 0xB29D, 0xCFC9, 0xB29E, 0xCFCA, 0xB29F, 0xCFCB, 0xB2A0, - 0xCFCC, 0xB341, 0xCFCD, 0xB342, 0xCFCE, 0xB343, 0xCFCF, 0xB344, - 0xCFD0, 0xB345, 0xCFD1, 0xB346, 0xCFD2, 0xB347, 0xCFD3, 0xB348, - 0xCFD4, 0xB349, 0xCFD5, 0xB34A, 0xCFD6, 0xB34B, 0xCFD7, 0xB34C, - 0xCFD8, 0xB34D, 0xCFD9, 0xB34E, 0xCFDA, 0xB34F, 0xCFDB, 0xB350, - 0xCFDC, 0xB351, 0xCFDD, 0xB352, 0xCFDE, 0xB353, 0xCFDF, 0xB354, - 0xCFE0, 0xC4ED, 0xCFE1, 0xC4EE, 0xCFE2, 0xB355, 0xCFE3, 0xB356, - 0xCFE4, 0xC4EF, 0xCFE5, 0xB357, 0xCFE6, 0xB358, 0xCFE7, 0xB359, - 0xCFE8, 0xC4F0, 0xCFE9, 0xB35A, 0xCFEA, 0xB361, 0xCFEB, 0xB362, - 0xCFEC, 0xB363, 0xCFED, 0xB364, 0xCFEE, 0xB365, 0xCFEF, 0xB366, - 0xCFF0, 0xC4F1, 0xCFF1, 0xC4F2, 0xCFF2, 0xB367, 0xCFF3, 0xC4F3, - 0xCFF4, 0xB368, 0xCFF5, 0xC4F4, 0xCFF6, 0xB369, 0xCFF7, 0xB36A, - 0xCFF8, 0xB36B, 0xCFF9, 0xB36C, 0xCFFA, 0xB36D, 0xCFFB, 0xB36E, - 0xCFFC, 0xC4F5, 0xCFFD, 0xB36F, 0xCFFE, 0xB370, 0xCFFF, 0xB371, - 0xD000, 0xC4F6, 0xD001, 0xB372, 0xD002, 0xB373, 0xD003, 0xB374, - 0xD004, 0xC4F7, 0xD005, 0xB375, 0xD006, 0xB376, 0xD007, 0xB377, - 0xD008, 0xB378, 0xD009, 0xB379, 0xD00A, 0xB37A, 0xD00B, 0xB381, - 0xD00C, 0xB382, 0xD00D, 0xB383, 0xD00E, 0xB384, 0xD00F, 0xB385, - 0xD010, 0xB386, 0xD011, 0xC4F8, 0xD012, 0xB387, 0xD013, 0xB388, - 0xD014, 0xB389, 0xD015, 0xB38A, 0xD016, 0xB38B, 0xD017, 0xB38C, - 0xD018, 0xC4F9, 0xD019, 0xB38D, 0xD01A, 0xB38E, 0xD01B, 0xB38F, - 0xD01C, 0xB390, 0xD01D, 0xB391, 0xD01E, 0xB392, 0xD01F, 0xB393, - 0xD020, 0xB394, 0xD021, 0xB395, 0xD022, 0xB396, 0xD023, 0xB397, - 0xD024, 0xB398, 0xD025, 0xB399, 0xD026, 0xB39A, 0xD027, 0xB39B, - 0xD028, 0xB39C, 0xD029, 0xB39D, 0xD02A, 0xB39E, 0xD02B, 0xB39F, - 0xD02C, 0xB3A0, 0xD02D, 0xC4FA, 0xD02E, 0xB441, 0xD02F, 0xB442, - 0xD030, 0xB443, 0xD031, 0xB444, 0xD032, 0xB445, 0xD033, 0xB446, - 0xD034, 0xC4FB, 0xD035, 0xC4FC, 0xD036, 0xB447, 0xD037, 0xB448, - 0xD038, 0xC4FD, 0xD039, 0xB449, 0xD03A, 0xB44A, 0xD03B, 0xB44B, - 0xD03C, 0xC4FE, 0xD03D, 0xB44C, 0xD03E, 0xB44D, 0xD03F, 0xB44E, - 0xD040, 0xB44F, 0xD041, 0xB450, 0xD042, 0xB451, 0xD043, 0xB452, - 0xD044, 0xC5A1, 0xD045, 0xC5A2, 0xD046, 0xB453, 0xD047, 0xC5A3, - 0xD048, 0xB454, 0xD049, 0xC5A4, 0xD04A, 0xB455, 0xD04B, 0xB456, - 0xD04C, 0xB457, 0xD04D, 0xB458, 0xD04E, 0xB459, 0xD04F, 0xB45A, - 0xD050, 0xC5A5, 0xD051, 0xB461, 0xD052, 0xB462, 0xD053, 0xB463, - 0xD054, 0xC5A6, 0xD055, 0xB464, 0xD056, 0xB465, 0xD057, 0xB466, - 0xD058, 0xC5A7, 0xD059, 0xB467, 0xD05A, 0xB468, 0xD05B, 0xB469, - 0xD05C, 0xB46A, 0xD05D, 0xB46B, 0xD05E, 0xB46C, 0xD05F, 0xB46D, - 0xD060, 0xC5A8, 0xD061, 0xB46E, 0xD062, 0xB46F, 0xD063, 0xB470, - 0xD064, 0xB471, 0xD065, 0xB472, 0xD066, 0xB473, 0xD067, 0xB474, - 0xD068, 0xB475, 0xD069, 0xB476, 0xD06A, 0xB477, 0xD06B, 0xB478, - 0xD06C, 0xC5A9, 0xD06D, 0xC5AA, 0xD06E, 0xB479, 0xD06F, 0xB47A, - 0xD070, 0xC5AB, 0xD071, 0xB481, 0xD072, 0xB482, 0xD073, 0xB483, - 0xD074, 0xC5AC, 0xD075, 0xB484, 0xD076, 0xB485, 0xD077, 0xB486, - 0xD078, 0xB487, 0xD079, 0xB488, 0xD07A, 0xB489, 0xD07B, 0xB48A, - 0xD07C, 0xC5AD, 0xD07D, 0xC5AE, 0xD07E, 0xB48B, 0xD07F, 0xB48C, - 0xD080, 0xB48D, 0xD081, 0xC5AF, 0xD082, 0xB48E, 0xD083, 0xB48F, - 0xD084, 0xB490, 0xD085, 0xB491, 0xD086, 0xB492, 0xD087, 0xB493, - 0xD088, 0xB494, 0xD089, 0xB495, 0xD08A, 0xB496, 0xD08B, 0xB497, - 0xD08C, 0xB498, 0xD08D, 0xB499, 0xD08E, 0xB49A, 0xD08F, 0xB49B, - 0xD090, 0xB49C, 0xD091, 0xB49D, 0xD092, 0xB49E, 0xD093, 0xB49F, - 0xD094, 0xB4A0, 0xD095, 0xB541, 0xD096, 0xB542, 0xD097, 0xB543, - 0xD098, 0xB544, 0xD099, 0xB545, 0xD09A, 0xB546, 0xD09B, 0xB547, - 0xD09C, 0xB548, 0xD09D, 0xB549, 0xD09E, 0xB54A, 0xD09F, 0xB54B, - 0xD0A0, 0xB54C, 0xD0A1, 0xB54D, 0xD0A2, 0xB54E, 0xD0A3, 0xB54F, - 0xD0A4, 0xC5B0, 0xD0A5, 0xC5B1, 0xD0A6, 0xB550, 0xD0A7, 0xB551, - 0xD0A8, 0xC5B2, 0xD0A9, 0xB552, 0xD0AA, 0xB553, 0xD0AB, 0xB554, - 0xD0AC, 0xC5B3, 0xD0AD, 0xB555, 0xD0AE, 0xB556, 0xD0AF, 0xB557, - 0xD0B0, 0xB558, 0xD0B1, 0xB559, 0xD0B2, 0xB55A, 0xD0B3, 0xB561, - 0xD0B4, 0xC5B4, 0xD0B5, 0xC5B5, 0xD0B6, 0xB562, 0xD0B7, 0xC5B6, - 0xD0B8, 0xB563, 0xD0B9, 0xC5B7, 0xD0BA, 0xB564, 0xD0BB, 0xB565, - 0xD0BC, 0xB566, 0xD0BD, 0xB567, 0xD0BE, 0xB568, 0xD0BF, 0xB569, - 0xD0C0, 0xC5B8, 0xD0C1, 0xC5B9, 0xD0C2, 0xB56A, 0xD0C3, 0xB56B, - 0xD0C4, 0xC5BA, 0xD0C5, 0xB56C, 0xD0C6, 0xB56D, 0xD0C7, 0xB56E, - 0xD0C8, 0xC5BB, 0xD0C9, 0xC5BC, 0xD0CA, 0xB56F, 0xD0CB, 0xB570, - 0xD0CC, 0xB571, 0xD0CD, 0xB572, 0xD0CE, 0xB573, 0xD0CF, 0xB574, - 0xD0D0, 0xC5BD, 0xD0D1, 0xC5BE, 0xD0D2, 0xB575, 0xD0D3, 0xC5BF, - 0xD0D4, 0xC5C0, 0xD0D5, 0xC5C1, 0xD0D6, 0xB576, 0xD0D7, 0xB577, - 0xD0D8, 0xB578, 0xD0D9, 0xB579, 0xD0DA, 0xB57A, 0xD0DB, 0xB581, - 0xD0DC, 0xC5C2, 0xD0DD, 0xC5C3, 0xD0DE, 0xB582, 0xD0DF, 0xB583, - 0xD0E0, 0xC5C4, 0xD0E1, 0xB584, 0xD0E2, 0xB585, 0xD0E3, 0xB586, - 0xD0E4, 0xC5C5, 0xD0E5, 0xB587, 0xD0E6, 0xB588, 0xD0E7, 0xB589, - 0xD0E8, 0xB58A, 0xD0E9, 0xB58B, 0xD0EA, 0xB58C, 0xD0EB, 0xB58D, - 0xD0EC, 0xC5C6, 0xD0ED, 0xC5C7, 0xD0EE, 0xB58E, 0xD0EF, 0xC5C8, - 0xD0F0, 0xC5C9, 0xD0F1, 0xC5CA, 0xD0F2, 0xB58F, 0xD0F3, 0xB590, - 0xD0F4, 0xB591, 0xD0F5, 0xB592, 0xD0F6, 0xB593, 0xD0F7, 0xB594, - 0xD0F8, 0xC5CB, 0xD0F9, 0xB595, 0xD0FA, 0xB596, 0xD0FB, 0xB597, - 0xD0FC, 0xB598, 0xD0FD, 0xB599, 0xD0FE, 0xB59A, 0xD0FF, 0xB59B, - 0xD100, 0xB59C, 0xD101, 0xB59D, 0xD102, 0xB59E, 0xD103, 0xB59F, - 0xD104, 0xB5A0, 0xD105, 0xB641, 0xD106, 0xB642, 0xD107, 0xB643, - 0xD108, 0xB644, 0xD109, 0xB645, 0xD10A, 0xB646, 0xD10B, 0xB647, - 0xD10C, 0xB648, 0xD10D, 0xC5CC, 0xD10E, 0xB649, 0xD10F, 0xB64A, - 0xD110, 0xB64B, 0xD111, 0xB64C, 0xD112, 0xB64D, 0xD113, 0xB64E, - 0xD114, 0xB64F, 0xD115, 0xB650, 0xD116, 0xB651, 0xD117, 0xB652, - 0xD118, 0xB653, 0xD119, 0xB654, 0xD11A, 0xB655, 0xD11B, 0xB656, - 0xD11C, 0xB657, 0xD11D, 0xB658, 0xD11E, 0xB659, 0xD11F, 0xB65A, - 0xD120, 0xB661, 0xD121, 0xB662, 0xD122, 0xB663, 0xD123, 0xB664, - 0xD124, 0xB665, 0xD125, 0xB666, 0xD126, 0xB667, 0xD127, 0xB668, - 0xD128, 0xB669, 0xD129, 0xB66A, 0xD12A, 0xB66B, 0xD12B, 0xB66C, - 0xD12C, 0xB66D, 0xD12D, 0xB66E, 0xD12E, 0xB66F, 0xD12F, 0xB670, - 0xD130, 0xC5CD, 0xD131, 0xC5CE, 0xD132, 0xB671, 0xD133, 0xB672, - 0xD134, 0xC5CF, 0xD135, 0xB673, 0xD136, 0xB674, 0xD137, 0xB675, - 0xD138, 0xC5D0, 0xD139, 0xB676, 0xD13A, 0xC5D1, 0xD13B, 0xB677, - 0xD13C, 0xB678, 0xD13D, 0xB679, 0xD13E, 0xB67A, 0xD13F, 0xB681, - 0xD140, 0xC5D2, 0xD141, 0xC5D3, 0xD142, 0xB682, 0xD143, 0xC5D4, - 0xD144, 0xC5D5, 0xD145, 0xC5D6, 0xD146, 0xB683, 0xD147, 0xB684, - 0xD148, 0xB685, 0xD149, 0xB686, 0xD14A, 0xB687, 0xD14B, 0xB688, - 0xD14C, 0xC5D7, 0xD14D, 0xC5D8, 0xD14E, 0xB689, 0xD14F, 0xB68A, - 0xD150, 0xC5D9, 0xD151, 0xB68B, 0xD152, 0xB68C, 0xD153, 0xB68D, - 0xD154, 0xC5DA, 0xD155, 0xB68E, 0xD156, 0xB68F, 0xD157, 0xB690, - 0xD158, 0xB691, 0xD159, 0xB692, 0xD15A, 0xB693, 0xD15B, 0xB694, - 0xD15C, 0xC5DB, 0xD15D, 0xC5DC, 0xD15E, 0xB695, 0xD15F, 0xC5DD, - 0xD160, 0xB696, 0xD161, 0xC5DE, 0xD162, 0xB697, 0xD163, 0xB698, - 0xD164, 0xB699, 0xD165, 0xB69A, 0xD166, 0xB69B, 0xD167, 0xB69C, - 0xD168, 0xC5DF, 0xD169, 0xB69D, 0xD16A, 0xB69E, 0xD16B, 0xB69F, - 0xD16C, 0xC5E0, 0xD16D, 0xB6A0, 0xD16E, 0xB741, 0xD16F, 0xB742, - 0xD170, 0xB743, 0xD171, 0xB744, 0xD172, 0xB745, 0xD173, 0xB746, - 0xD174, 0xB747, 0xD175, 0xB748, 0xD176, 0xB749, 0xD177, 0xB74A, - 0xD178, 0xB74B, 0xD179, 0xB74C, 0xD17A, 0xB74D, 0xD17B, 0xB74E, - 0xD17C, 0xC5E1, 0xD17D, 0xB74F, 0xD17E, 0xB750, 0xD17F, 0xB751, - 0xD180, 0xB752, 0xD181, 0xB753, 0xD182, 0xB754, 0xD183, 0xB755, - 0xD184, 0xC5E2, 0xD185, 0xB756, 0xD186, 0xB757, 0xD187, 0xB758, - 0xD188, 0xC5E3, 0xD189, 0xB759, 0xD18A, 0xB75A, 0xD18B, 0xB761, - 0xD18C, 0xB762, 0xD18D, 0xB763, 0xD18E, 0xB764, 0xD18F, 0xB765, - 0xD190, 0xB766, 0xD191, 0xB767, 0xD192, 0xB768, 0xD193, 0xB769, - 0xD194, 0xB76A, 0xD195, 0xB76B, 0xD196, 0xB76C, 0xD197, 0xB76D, - 0xD198, 0xB76E, 0xD199, 0xB76F, 0xD19A, 0xB770, 0xD19B, 0xB771, - 0xD19C, 0xB772, 0xD19D, 0xB773, 0xD19E, 0xB774, 0xD19F, 0xB775, - 0xD1A0, 0xC5E4, 0xD1A1, 0xC5E5, 0xD1A2, 0xB776, 0xD1A3, 0xB777, - 0xD1A4, 0xC5E6, 0xD1A5, 0xB778, 0xD1A6, 0xB779, 0xD1A7, 0xB77A, - 0xD1A8, 0xC5E7, 0xD1A9, 0xB781, 0xD1AA, 0xB782, 0xD1AB, 0xB783, - 0xD1AC, 0xB784, 0xD1AD, 0xB785, 0xD1AE, 0xB786, 0xD1AF, 0xB787, - 0xD1B0, 0xC5E8, 0xD1B1, 0xC5E9, 0xD1B2, 0xB788, 0xD1B3, 0xC5EA, - 0xD1B4, 0xB789, 0xD1B5, 0xC5EB, 0xD1B6, 0xB78A, 0xD1B7, 0xB78B, - 0xD1B8, 0xB78C, 0xD1B9, 0xB78D, 0xD1BA, 0xC5EC, 0xD1BB, 0xB78E, - 0xD1BC, 0xC5ED, 0xD1BD, 0xB78F, 0xD1BE, 0xB790, 0xD1BF, 0xB791, - 0xD1C0, 0xC5EE, 0xD1C1, 0xB792, 0xD1C2, 0xB793, 0xD1C3, 0xB794, - 0xD1C4, 0xB795, 0xD1C5, 0xB796, 0xD1C6, 0xB797, 0xD1C7, 0xB798, - 0xD1C8, 0xB799, 0xD1C9, 0xB79A, 0xD1CA, 0xB79B, 0xD1CB, 0xB79C, - 0xD1CC, 0xB79D, 0xD1CD, 0xB79E, 0xD1CE, 0xB79F, 0xD1CF, 0xB7A0, - 0xD1D0, 0xB841, 0xD1D1, 0xB842, 0xD1D2, 0xB843, 0xD1D3, 0xB844, - 0xD1D4, 0xB845, 0xD1D5, 0xB846, 0xD1D6, 0xB847, 0xD1D7, 0xB848, - 0xD1D8, 0xC5EF, 0xD1D9, 0xB849, 0xD1DA, 0xB84A, 0xD1DB, 0xB84B, - 0xD1DC, 0xB84C, 0xD1DD, 0xB84D, 0xD1DE, 0xB84E, 0xD1DF, 0xB84F, - 0xD1E0, 0xB850, 0xD1E1, 0xB851, 0xD1E2, 0xB852, 0xD1E3, 0xB853, - 0xD1E4, 0xB854, 0xD1E5, 0xB855, 0xD1E6, 0xB856, 0xD1E7, 0xB857, - 0xD1E8, 0xB858, 0xD1E9, 0xB859, 0xD1EA, 0xB85A, 0xD1EB, 0xB861, - 0xD1EC, 0xB862, 0xD1ED, 0xB863, 0xD1EE, 0xB864, 0xD1EF, 0xB865, - 0xD1F0, 0xB866, 0xD1F1, 0xB867, 0xD1F2, 0xB868, 0xD1F3, 0xB869, - 0xD1F4, 0xC5F0, 0xD1F5, 0xB86A, 0xD1F6, 0xB86B, 0xD1F7, 0xB86C, - 0xD1F8, 0xC5F1, 0xD1F9, 0xB86D, 0xD1FA, 0xB86E, 0xD1FB, 0xB86F, - 0xD1FC, 0xB870, 0xD1FD, 0xB871, 0xD1FE, 0xB872, 0xD1FF, 0xB873, - 0xD200, 0xB874, 0xD201, 0xB875, 0xD202, 0xB876, 0xD203, 0xB877, - 0xD204, 0xB878, 0xD205, 0xB879, 0xD206, 0xB87A, 0xD207, 0xC5F2, - 0xD208, 0xB881, 0xD209, 0xC5F3, 0xD20A, 0xB882, 0xD20B, 0xB883, - 0xD20C, 0xB884, 0xD20D, 0xB885, 0xD20E, 0xB886, 0xD20F, 0xB887, - 0xD210, 0xC5F4, 0xD211, 0xB888, 0xD212, 0xB889, 0xD213, 0xB88A, - 0xD214, 0xB88B, 0xD215, 0xB88C, 0xD216, 0xB88D, 0xD217, 0xB88E, - 0xD218, 0xB88F, 0xD219, 0xB890, 0xD21A, 0xB891, 0xD21B, 0xB892, - 0xD21C, 0xB893, 0xD21D, 0xB894, 0xD21E, 0xB895, 0xD21F, 0xB896, - 0xD220, 0xB897, 0xD221, 0xB898, 0xD222, 0xB899, 0xD223, 0xB89A, - 0xD224, 0xB89B, 0xD225, 0xB89C, 0xD226, 0xB89D, 0xD227, 0xB89E, - 0xD228, 0xB89F, 0xD229, 0xB8A0, 0xD22A, 0xB941, 0xD22B, 0xB942, - 0xD22C, 0xC5F5, 0xD22D, 0xC5F6, 0xD22E, 0xB943, 0xD22F, 0xB944, - 0xD230, 0xC5F7, 0xD231, 0xB945, 0xD232, 0xB946, 0xD233, 0xB947, - 0xD234, 0xC5F8, 0xD235, 0xB948, 0xD236, 0xB949, 0xD237, 0xB94A, - 0xD238, 0xB94B, 0xD239, 0xB94C, 0xD23A, 0xB94D, 0xD23B, 0xB94E, - 0xD23C, 0xC5F9, 0xD23D, 0xC5FA, 0xD23E, 0xB94F, 0xD23F, 0xC5FB, - 0xD240, 0xB950, 0xD241, 0xC5FC, 0xD242, 0xB951, 0xD243, 0xB952, - 0xD244, 0xB953, 0xD245, 0xB954, 0xD246, 0xB955, 0xD247, 0xB956, - 0xD248, 0xC5FD, 0xD249, 0xB957, 0xD24A, 0xB958, 0xD24B, 0xB959, - 0xD24C, 0xB95A, 0xD24D, 0xB961, 0xD24E, 0xB962, 0xD24F, 0xB963, - 0xD250, 0xB964, 0xD251, 0xB965, 0xD252, 0xB966, 0xD253, 0xB967, - 0xD254, 0xB968, 0xD255, 0xB969, 0xD256, 0xB96A, 0xD257, 0xB96B, - 0xD258, 0xB96C, 0xD259, 0xB96D, 0xD25A, 0xB96E, 0xD25B, 0xB96F, - 0xD25C, 0xC5FE, 0xD25D, 0xB970, 0xD25E, 0xB971, 0xD25F, 0xB972, - 0xD260, 0xB973, 0xD261, 0xB974, 0xD262, 0xB975, 0xD263, 0xB976, - 0xD264, 0xC6A1, 0xD265, 0xB977, 0xD266, 0xB978, 0xD267, 0xB979, - 0xD268, 0xB97A, 0xD269, 0xB981, 0xD26A, 0xB982, 0xD26B, 0xB983, - 0xD26C, 0xB984, 0xD26D, 0xB985, 0xD26E, 0xB986, 0xD26F, 0xB987, - 0xD270, 0xB988, 0xD271, 0xB989, 0xD272, 0xB98A, 0xD273, 0xB98B, - 0xD274, 0xB98C, 0xD275, 0xB98D, 0xD276, 0xB98E, 0xD277, 0xB98F, - 0xD278, 0xB990, 0xD279, 0xB991, 0xD27A, 0xB992, 0xD27B, 0xB993, - 0xD27C, 0xB994, 0xD27D, 0xB995, 0xD27E, 0xB996, 0xD27F, 0xB997, - 0xD280, 0xC6A2, 0xD281, 0xC6A3, 0xD282, 0xB998, 0xD283, 0xB999, - 0xD284, 0xC6A4, 0xD285, 0xB99A, 0xD286, 0xB99B, 0xD287, 0xB99C, - 0xD288, 0xC6A5, 0xD289, 0xB99D, 0xD28A, 0xB99E, 0xD28B, 0xB99F, - 0xD28C, 0xB9A0, 0xD28D, 0xBA41, 0xD28E, 0xBA42, 0xD28F, 0xBA43, - 0xD290, 0xC6A6, 0xD291, 0xC6A7, 0xD292, 0xBA44, 0xD293, 0xBA45, - 0xD294, 0xBA46, 0xD295, 0xC6A8, 0xD296, 0xBA47, 0xD297, 0xBA48, - 0xD298, 0xBA49, 0xD299, 0xBA4A, 0xD29A, 0xBA4B, 0xD29B, 0xBA4C, - 0xD29C, 0xC6A9, 0xD29D, 0xBA4D, 0xD29E, 0xBA4E, 0xD29F, 0xBA4F, - 0xD2A0, 0xC6AA, 0xD2A1, 0xBA50, 0xD2A2, 0xBA51, 0xD2A3, 0xBA52, - 0xD2A4, 0xC6AB, 0xD2A5, 0xBA53, 0xD2A6, 0xBA54, 0xD2A7, 0xBA55, - 0xD2A8, 0xBA56, 0xD2A9, 0xBA57, 0xD2AA, 0xBA58, 0xD2AB, 0xBA59, - 0xD2AC, 0xC6AC, 0xD2AD, 0xBA5A, 0xD2AE, 0xBA61, 0xD2AF, 0xBA62, - 0xD2B0, 0xBA63, 0xD2B1, 0xC6AD, 0xD2B2, 0xBA64, 0xD2B3, 0xBA65, - 0xD2B4, 0xBA66, 0xD2B5, 0xBA67, 0xD2B6, 0xBA68, 0xD2B7, 0xBA69, - 0xD2B8, 0xC6AE, 0xD2B9, 0xC6AF, 0xD2BA, 0xBA6A, 0xD2BB, 0xBA6B, - 0xD2BC, 0xC6B0, 0xD2BD, 0xBA6C, 0xD2BE, 0xBA6D, 0xD2BF, 0xC6B1, - 0xD2C0, 0xC6B2, 0xD2C1, 0xBA6E, 0xD2C2, 0xC6B3, 0xD2C3, 0xBA6F, - 0xD2C4, 0xBA70, 0xD2C5, 0xBA71, 0xD2C6, 0xBA72, 0xD2C7, 0xBA73, - 0xD2C8, 0xC6B4, 0xD2C9, 0xC6B5, 0xD2CA, 0xBA74, 0xD2CB, 0xC6B6, - 0xD2CC, 0xBA75, 0xD2CD, 0xBA76, 0xD2CE, 0xBA77, 0xD2CF, 0xBA78, - 0xD2D0, 0xBA79, 0xD2D1, 0xBA7A, 0xD2D2, 0xBA81, 0xD2D3, 0xBA82, - 0xD2D4, 0xC6B7, 0xD2D5, 0xBA83, 0xD2D6, 0xBA84, 0xD2D7, 0xBA85, - 0xD2D8, 0xC6B8, 0xD2D9, 0xBA86, 0xD2DA, 0xBA87, 0xD2DB, 0xBA88, - 0xD2DC, 0xC6B9, 0xD2DD, 0xBA89, 0xD2DE, 0xBA8A, 0xD2DF, 0xBA8B, - 0xD2E0, 0xBA8C, 0xD2E1, 0xBA8D, 0xD2E2, 0xBA8E, 0xD2E3, 0xBA8F, - 0xD2E4, 0xC6BA, 0xD2E5, 0xC6BB, 0xD2E6, 0xBA90, 0xD2E7, 0xBA91, - 0xD2E8, 0xBA92, 0xD2E9, 0xBA93, 0xD2EA, 0xBA94, 0xD2EB, 0xBA95, - 0xD2EC, 0xBA96, 0xD2ED, 0xBA97, 0xD2EE, 0xBA98, 0xD2EF, 0xBA99, - 0xD2F0, 0xC6BC, 0xD2F1, 0xC6BD, 0xD2F2, 0xBA9A, 0xD2F3, 0xBA9B, - 0xD2F4, 0xC6BE, 0xD2F5, 0xBA9C, 0xD2F6, 0xBA9D, 0xD2F7, 0xBA9E, - 0xD2F8, 0xC6BF, 0xD2F9, 0xBA9F, 0xD2FA, 0xBAA0, 0xD2FB, 0xBB41, - 0xD2FC, 0xBB42, 0xD2FD, 0xBB43, 0xD2FE, 0xBB44, 0xD2FF, 0xBB45, - 0xD300, 0xC6C0, 0xD301, 0xC6C1, 0xD302, 0xBB46, 0xD303, 0xC6C2, - 0xD304, 0xBB47, 0xD305, 0xC6C3, 0xD306, 0xBB48, 0xD307, 0xBB49, - 0xD308, 0xBB4A, 0xD309, 0xBB4B, 0xD30A, 0xBB4C, 0xD30B, 0xBB4D, - 0xD30C, 0xC6C4, 0xD30D, 0xC6C5, 0xD30E, 0xC6C6, 0xD30F, 0xBB4E, - 0xD310, 0xC6C7, 0xD311, 0xBB4F, 0xD312, 0xBB50, 0xD313, 0xBB51, - 0xD314, 0xC6C8, 0xD315, 0xBB52, 0xD316, 0xC6C9, 0xD317, 0xBB53, - 0xD318, 0xBB54, 0xD319, 0xBB55, 0xD31A, 0xBB56, 0xD31B, 0xBB57, - 0xD31C, 0xC6CA, 0xD31D, 0xC6CB, 0xD31E, 0xBB58, 0xD31F, 0xC6CC, - 0xD320, 0xC6CD, 0xD321, 0xC6CE, 0xD322, 0xBB59, 0xD323, 0xBB5A, - 0xD324, 0xBB61, 0xD325, 0xC6CF, 0xD326, 0xBB62, 0xD327, 0xBB63, - 0xD328, 0xC6D0, 0xD329, 0xC6D1, 0xD32A, 0xBB64, 0xD32B, 0xBB65, - 0xD32C, 0xC6D2, 0xD32D, 0xBB66, 0xD32E, 0xBB67, 0xD32F, 0xBB68, - 0xD330, 0xC6D3, 0xD331, 0xBB69, 0xD332, 0xBB6A, 0xD333, 0xBB6B, - 0xD334, 0xBB6C, 0xD335, 0xBB6D, 0xD336, 0xBB6E, 0xD337, 0xBB6F, - 0xD338, 0xC6D4, 0xD339, 0xC6D5, 0xD33A, 0xBB70, 0xD33B, 0xC6D6, - 0xD33C, 0xC6D7, 0xD33D, 0xC6D8, 0xD33E, 0xBB71, 0xD33F, 0xBB72, - 0xD340, 0xBB73, 0xD341, 0xBB74, 0xD342, 0xBB75, 0xD343, 0xBB76, - 0xD344, 0xC6D9, 0xD345, 0xC6DA, 0xD346, 0xBB77, 0xD347, 0xBB78, - 0xD348, 0xBB79, 0xD349, 0xBB7A, 0xD34A, 0xBB81, 0xD34B, 0xBB82, - 0xD34C, 0xBB83, 0xD34D, 0xBB84, 0xD34E, 0xBB85, 0xD34F, 0xBB86, - 0xD350, 0xBB87, 0xD351, 0xBB88, 0xD352, 0xBB89, 0xD353, 0xBB8A, - 0xD354, 0xBB8B, 0xD355, 0xBB8C, 0xD356, 0xBB8D, 0xD357, 0xBB8E, - 0xD358, 0xBB8F, 0xD359, 0xBB90, 0xD35A, 0xBB91, 0xD35B, 0xBB92, - 0xD35C, 0xBB93, 0xD35D, 0xBB94, 0xD35E, 0xBB95, 0xD35F, 0xBB96, - 0xD360, 0xBB97, 0xD361, 0xBB98, 0xD362, 0xBB99, 0xD363, 0xBB9A, - 0xD364, 0xBB9B, 0xD365, 0xBB9C, 0xD366, 0xBB9D, 0xD367, 0xBB9E, - 0xD368, 0xBB9F, 0xD369, 0xBBA0, 0xD36A, 0xBC41, 0xD36B, 0xBC42, - 0xD36C, 0xBC43, 0xD36D, 0xBC44, 0xD36E, 0xBC45, 0xD36F, 0xBC46, - 0xD370, 0xBC47, 0xD371, 0xBC48, 0xD372, 0xBC49, 0xD373, 0xBC4A, - 0xD374, 0xBC4B, 0xD375, 0xBC4C, 0xD376, 0xBC4D, 0xD377, 0xBC4E, - 0xD378, 0xBC4F, 0xD379, 0xBC50, 0xD37A, 0xBC51, 0xD37B, 0xBC52, - 0xD37C, 0xC6DB, 0xD37D, 0xC6DC, 0xD37E, 0xBC53, 0xD37F, 0xBC54, - 0xD380, 0xC6DD, 0xD381, 0xBC55, 0xD382, 0xBC56, 0xD383, 0xBC57, - 0xD384, 0xC6DE, 0xD385, 0xBC58, 0xD386, 0xBC59, 0xD387, 0xBC5A, - 0xD388, 0xBC61, 0xD389, 0xBC62, 0xD38A, 0xBC63, 0xD38B, 0xBC64, - 0xD38C, 0xC6DF, 0xD38D, 0xC6E0, 0xD38E, 0xBC65, 0xD38F, 0xC6E1, - 0xD390, 0xC6E2, 0xD391, 0xC6E3, 0xD392, 0xBC66, 0xD393, 0xBC67, - 0xD394, 0xBC68, 0xD395, 0xBC69, 0xD396, 0xBC6A, 0xD397, 0xBC6B, - 0xD398, 0xC6E4, 0xD399, 0xC6E5, 0xD39A, 0xBC6C, 0xD39B, 0xBC6D, - 0xD39C, 0xC6E6, 0xD39D, 0xBC6E, 0xD39E, 0xBC6F, 0xD39F, 0xBC70, - 0xD3A0, 0xC6E7, 0xD3A1, 0xBC71, 0xD3A2, 0xBC72, 0xD3A3, 0xBC73, - 0xD3A4, 0xBC74, 0xD3A5, 0xBC75, 0xD3A6, 0xBC76, 0xD3A7, 0xBC77, - 0xD3A8, 0xC6E8, 0xD3A9, 0xC6E9, 0xD3AA, 0xBC78, 0xD3AB, 0xC6EA, - 0xD3AC, 0xBC79, 0xD3AD, 0xC6EB, 0xD3AE, 0xBC7A, 0xD3AF, 0xBC81, - 0xD3B0, 0xBC82, 0xD3B1, 0xBC83, 0xD3B2, 0xBC84, 0xD3B3, 0xBC85, - 0xD3B4, 0xC6EC, 0xD3B5, 0xBC86, 0xD3B6, 0xBC87, 0xD3B7, 0xBC88, - 0xD3B8, 0xC6ED, 0xD3B9, 0xBC89, 0xD3BA, 0xBC8A, 0xD3BB, 0xBC8B, - 0xD3BC, 0xC6EE, 0xD3BD, 0xBC8C, 0xD3BE, 0xBC8D, 0xD3BF, 0xBC8E, - 0xD3C0, 0xBC8F, 0xD3C1, 0xBC90, 0xD3C2, 0xBC91, 0xD3C3, 0xBC92, - 0xD3C4, 0xC6EF, 0xD3C5, 0xC6F0, 0xD3C6, 0xBC93, 0xD3C7, 0xBC94, - 0xD3C8, 0xC6F1, 0xD3C9, 0xC6F2, 0xD3CA, 0xBC95, 0xD3CB, 0xBC96, - 0xD3CC, 0xBC97, 0xD3CD, 0xBC98, 0xD3CE, 0xBC99, 0xD3CF, 0xBC9A, - 0xD3D0, 0xC6F3, 0xD3D1, 0xBC9B, 0xD3D2, 0xBC9C, 0xD3D3, 0xBC9D, - 0xD3D4, 0xBC9E, 0xD3D5, 0xBC9F, 0xD3D6, 0xBCA0, 0xD3D7, 0xBD41, - 0xD3D8, 0xC6F4, 0xD3D9, 0xBD42, 0xD3DA, 0xBD43, 0xD3DB, 0xBD44, - 0xD3DC, 0xBD45, 0xD3DD, 0xBD46, 0xD3DE, 0xBD47, 0xD3DF, 0xBD48, - 0xD3E0, 0xBD49, 0xD3E1, 0xC6F5, 0xD3E2, 0xBD4A, 0xD3E3, 0xC6F6, - 0xD3E4, 0xBD4B, 0xD3E5, 0xBD4C, 0xD3E6, 0xBD4D, 0xD3E7, 0xBD4E, - 0xD3E8, 0xBD4F, 0xD3E9, 0xBD50, 0xD3EA, 0xBD51, 0xD3EB, 0xBD52, - 0xD3EC, 0xC6F7, 0xD3ED, 0xC6F8, 0xD3EE, 0xBD53, 0xD3EF, 0xBD54, - 0xD3F0, 0xC6F9, 0xD3F1, 0xBD55, 0xD3F2, 0xBD56, 0xD3F3, 0xBD57, - 0xD3F4, 0xC6FA, 0xD3F5, 0xBD58, 0xD3F6, 0xBD59, 0xD3F7, 0xBD5A, - 0xD3F8, 0xBD61, 0xD3F9, 0xBD62, 0xD3FA, 0xBD63, 0xD3FB, 0xBD64, - 0xD3FC, 0xC6FB, 0xD3FD, 0xC6FC, 0xD3FE, 0xBD65, 0xD3FF, 0xC6FD, - 0xD400, 0xBD66, 0xD401, 0xC6FE, 0xD402, 0xBD67, 0xD403, 0xBD68, - 0xD404, 0xBD69, 0xD405, 0xBD6A, 0xD406, 0xBD6B, 0xD407, 0xBD6C, - 0xD408, 0xC7A1, 0xD409, 0xBD6D, 0xD40A, 0xBD6E, 0xD40B, 0xBD6F, - 0xD40C, 0xBD70, 0xD40D, 0xBD71, 0xD40E, 0xBD72, 0xD40F, 0xBD73, - 0xD410, 0xBD74, 0xD411, 0xBD75, 0xD412, 0xBD76, 0xD413, 0xBD77, - 0xD414, 0xBD78, 0xD415, 0xBD79, 0xD416, 0xBD7A, 0xD417, 0xBD81, - 0xD418, 0xBD82, 0xD419, 0xBD83, 0xD41A, 0xBD84, 0xD41B, 0xBD85, - 0xD41C, 0xBD86, 0xD41D, 0xC7A2, 0xD41E, 0xBD87, 0xD41F, 0xBD88, - 0xD420, 0xBD89, 0xD421, 0xBD8A, 0xD422, 0xBD8B, 0xD423, 0xBD8C, - 0xD424, 0xBD8D, 0xD425, 0xBD8E, 0xD426, 0xBD8F, 0xD427, 0xBD90, - 0xD428, 0xBD91, 0xD429, 0xBD92, 0xD42A, 0xBD93, 0xD42B, 0xBD94, - 0xD42C, 0xBD95, 0xD42D, 0xBD96, 0xD42E, 0xBD97, 0xD42F, 0xBD98, - 0xD430, 0xBD99, 0xD431, 0xBD9A, 0xD432, 0xBD9B, 0xD433, 0xBD9C, - 0xD434, 0xBD9D, 0xD435, 0xBD9E, 0xD436, 0xBD9F, 0xD437, 0xBDA0, - 0xD438, 0xBE41, 0xD439, 0xBE42, 0xD43A, 0xBE43, 0xD43B, 0xBE44, - 0xD43C, 0xBE45, 0xD43D, 0xBE46, 0xD43E, 0xBE47, 0xD43F, 0xBE48, - 0xD440, 0xC7A3, 0xD441, 0xBE49, 0xD442, 0xBE4A, 0xD443, 0xBE4B, - 0xD444, 0xC7A4, 0xD445, 0xBE4C, 0xD446, 0xBE4D, 0xD447, 0xBE4E, - 0xD448, 0xBE4F, 0xD449, 0xBE50, 0xD44A, 0xBE51, 0xD44B, 0xBE52, - 0xD44C, 0xBE53, 0xD44D, 0xBE54, 0xD44E, 0xBE55, 0xD44F, 0xBE56, - 0xD450, 0xBE57, 0xD451, 0xBE58, 0xD452, 0xBE59, 0xD453, 0xBE5A, - 0xD454, 0xBE61, 0xD455, 0xBE62, 0xD456, 0xBE63, 0xD457, 0xBE64, - 0xD458, 0xBE65, 0xD459, 0xBE66, 0xD45A, 0xBE67, 0xD45B, 0xBE68, - 0xD45C, 0xC7A5, 0xD45D, 0xBE69, 0xD45E, 0xBE6A, 0xD45F, 0xBE6B, - 0xD460, 0xC7A6, 0xD461, 0xBE6C, 0xD462, 0xBE6D, 0xD463, 0xBE6E, - 0xD464, 0xC7A7, 0xD465, 0xBE6F, 0xD466, 0xBE70, 0xD467, 0xBE71, - 0xD468, 0xBE72, 0xD469, 0xBE73, 0xD46A, 0xBE74, 0xD46B, 0xBE75, - 0xD46C, 0xBE76, 0xD46D, 0xC7A8, 0xD46E, 0xBE77, 0xD46F, 0xC7A9, - 0xD470, 0xBE78, 0xD471, 0xBE79, 0xD472, 0xBE7A, 0xD473, 0xBE81, - 0xD474, 0xBE82, 0xD475, 0xBE83, 0xD476, 0xBE84, 0xD477, 0xBE85, - 0xD478, 0xC7AA, 0xD479, 0xC7AB, 0xD47A, 0xBE86, 0xD47B, 0xBE87, - 0xD47C, 0xC7AC, 0xD47D, 0xBE88, 0xD47E, 0xBE89, 0xD47F, 0xC7AD, - 0xD480, 0xC7AE, 0xD481, 0xBE8A, 0xD482, 0xC7AF, 0xD483, 0xBE8B, - 0xD484, 0xBE8C, 0xD485, 0xBE8D, 0xD486, 0xBE8E, 0xD487, 0xBE8F, - 0xD488, 0xC7B0, 0xD489, 0xC7B1, 0xD48A, 0xBE90, 0xD48B, 0xC7B2, - 0xD48C, 0xBE91, 0xD48D, 0xC7B3, 0xD48E, 0xBE92, 0xD48F, 0xBE93, - 0xD490, 0xBE94, 0xD491, 0xBE95, 0xD492, 0xBE96, 0xD493, 0xBE97, - 0xD494, 0xC7B4, 0xD495, 0xBE98, 0xD496, 0xBE99, 0xD497, 0xBE9A, - 0xD498, 0xBE9B, 0xD499, 0xBE9C, 0xD49A, 0xBE9D, 0xD49B, 0xBE9E, - 0xD49C, 0xBE9F, 0xD49D, 0xBEA0, 0xD49E, 0xBF41, 0xD49F, 0xBF42, - 0xD4A0, 0xBF43, 0xD4A1, 0xBF44, 0xD4A2, 0xBF45, 0xD4A3, 0xBF46, - 0xD4A4, 0xBF47, 0xD4A5, 0xBF48, 0xD4A6, 0xBF49, 0xD4A7, 0xBF4A, - 0xD4A8, 0xBF4B, 0xD4A9, 0xC7B5, 0xD4AA, 0xBF4C, 0xD4AB, 0xBF4D, - 0xD4AC, 0xBF4E, 0xD4AD, 0xBF4F, 0xD4AE, 0xBF50, 0xD4AF, 0xBF51, - 0xD4B0, 0xBF52, 0xD4B1, 0xBF53, 0xD4B2, 0xBF54, 0xD4B3, 0xBF55, - 0xD4B4, 0xBF56, 0xD4B5, 0xBF57, 0xD4B6, 0xBF58, 0xD4B7, 0xBF59, - 0xD4B8, 0xBF5A, 0xD4B9, 0xBF61, 0xD4BA, 0xBF62, 0xD4BB, 0xBF63, - 0xD4BC, 0xBF64, 0xD4BD, 0xBF65, 0xD4BE, 0xBF66, 0xD4BF, 0xBF67, - 0xD4C0, 0xBF68, 0xD4C1, 0xBF69, 0xD4C2, 0xBF6A, 0xD4C3, 0xBF6B, - 0xD4C4, 0xBF6C, 0xD4C5, 0xBF6D, 0xD4C6, 0xBF6E, 0xD4C7, 0xBF6F, - 0xD4C8, 0xBF70, 0xD4C9, 0xBF71, 0xD4CA, 0xBF72, 0xD4CB, 0xBF73, - 0xD4CC, 0xC7B6, 0xD4CD, 0xBF74, 0xD4CE, 0xBF75, 0xD4CF, 0xBF76, - 0xD4D0, 0xC7B7, 0xD4D1, 0xBF77, 0xD4D2, 0xBF78, 0xD4D3, 0xBF79, - 0xD4D4, 0xC7B8, 0xD4D5, 0xBF7A, 0xD4D6, 0xBF81, 0xD4D7, 0xBF82, - 0xD4D8, 0xBF83, 0xD4D9, 0xBF84, 0xD4DA, 0xBF85, 0xD4DB, 0xBF86, - 0xD4DC, 0xC7B9, 0xD4DD, 0xBF87, 0xD4DE, 0xBF88, 0xD4DF, 0xC7BA, - 0xD4E0, 0xBF89, 0xD4E1, 0xBF8A, 0xD4E2, 0xBF8B, 0xD4E3, 0xBF8C, - 0xD4E4, 0xBF8D, 0xD4E5, 0xBF8E, 0xD4E6, 0xBF8F, 0xD4E7, 0xBF90, - 0xD4E8, 0xC7BB, 0xD4E9, 0xBF91, 0xD4EA, 0xBF92, 0xD4EB, 0xBF93, - 0xD4EC, 0xC7BC, 0xD4ED, 0xBF94, 0xD4EE, 0xBF95, 0xD4EF, 0xBF96, - 0xD4F0, 0xC7BD, 0xD4F1, 0xBF97, 0xD4F2, 0xBF98, 0xD4F3, 0xBF99, - 0xD4F4, 0xBF9A, 0xD4F5, 0xBF9B, 0xD4F6, 0xBF9C, 0xD4F7, 0xBF9D, - 0xD4F8, 0xC7BE, 0xD4F9, 0xBF9E, 0xD4FA, 0xBF9F, 0xD4FB, 0xC7BF, - 0xD4FC, 0xBFA0, 0xD4FD, 0xC7C0, 0xD4FE, 0xC041, 0xD4FF, 0xC042, - 0xD500, 0xC043, 0xD501, 0xC044, 0xD502, 0xC045, 0xD503, 0xC046, - 0xD504, 0xC7C1, 0xD505, 0xC047, 0xD506, 0xC048, 0xD507, 0xC049, - 0xD508, 0xC7C2, 0xD509, 0xC04A, 0xD50A, 0xC04B, 0xD50B, 0xC04C, - 0xD50C, 0xC7C3, 0xD50D, 0xC04D, 0xD50E, 0xC04E, 0xD50F, 0xC04F, - 0xD510, 0xC050, 0xD511, 0xC051, 0xD512, 0xC052, 0xD513, 0xC053, - 0xD514, 0xC7C4, 0xD515, 0xC7C5, 0xD516, 0xC054, 0xD517, 0xC7C6, - 0xD518, 0xC055, 0xD519, 0xC056, 0xD51A, 0xC057, 0xD51B, 0xC058, - 0xD51C, 0xC059, 0xD51D, 0xC05A, 0xD51E, 0xC061, 0xD51F, 0xC062, - 0xD520, 0xC063, 0xD521, 0xC064, 0xD522, 0xC065, 0xD523, 0xC066, - 0xD524, 0xC067, 0xD525, 0xC068, 0xD526, 0xC069, 0xD527, 0xC06A, - 0xD528, 0xC06B, 0xD529, 0xC06C, 0xD52A, 0xC06D, 0xD52B, 0xC06E, - 0xD52C, 0xC06F, 0xD52D, 0xC070, 0xD52E, 0xC071, 0xD52F, 0xC072, - 0xD530, 0xC073, 0xD531, 0xC074, 0xD532, 0xC075, 0xD533, 0xC076, - 0xD534, 0xC077, 0xD535, 0xC078, 0xD536, 0xC079, 0xD537, 0xC07A, - 0xD538, 0xC081, 0xD539, 0xC082, 0xD53A, 0xC083, 0xD53B, 0xC084, - 0xD53C, 0xC7C7, 0xD53D, 0xC7C8, 0xD53E, 0xC085, 0xD53F, 0xC086, - 0xD540, 0xC7C9, 0xD541, 0xC087, 0xD542, 0xC088, 0xD543, 0xC089, - 0xD544, 0xC7CA, 0xD545, 0xC08A, 0xD546, 0xC08B, 0xD547, 0xC08C, - 0xD548, 0xC08D, 0xD549, 0xC08E, 0xD54A, 0xC08F, 0xD54B, 0xC090, - 0xD54C, 0xC7CB, 0xD54D, 0xC7CC, 0xD54E, 0xC091, 0xD54F, 0xC7CD, - 0xD550, 0xC092, 0xD551, 0xC7CE, 0xD552, 0xC093, 0xD553, 0xC094, - 0xD554, 0xC095, 0xD555, 0xC096, 0xD556, 0xC097, 0xD557, 0xC098, - 0xD558, 0xC7CF, 0xD559, 0xC7D0, 0xD55A, 0xC099, 0xD55B, 0xC09A, - 0xD55C, 0xC7D1, 0xD55D, 0xC09B, 0xD55E, 0xC09C, 0xD55F, 0xC09D, - 0xD560, 0xC7D2, 0xD561, 0xC09E, 0xD562, 0xC09F, 0xD563, 0xC0A0, - 0xD564, 0xC141, 0xD565, 0xC7D3, 0xD566, 0xC142, 0xD567, 0xC143, - 0xD568, 0xC7D4, 0xD569, 0xC7D5, 0xD56A, 0xC144, 0xD56B, 0xC7D6, - 0xD56C, 0xC145, 0xD56D, 0xC7D7, 0xD56E, 0xC146, 0xD56F, 0xC147, - 0xD570, 0xC148, 0xD571, 0xC149, 0xD572, 0xC14A, 0xD573, 0xC14B, - 0xD574, 0xC7D8, 0xD575, 0xC7D9, 0xD576, 0xC14C, 0xD577, 0xC14D, - 0xD578, 0xC7DA, 0xD579, 0xC14E, 0xD57A, 0xC14F, 0xD57B, 0xC150, - 0xD57C, 0xC7DB, 0xD57D, 0xC151, 0xD57E, 0xC152, 0xD57F, 0xC153, - 0xD580, 0xC154, 0xD581, 0xC155, 0xD582, 0xC156, 0xD583, 0xC157, - 0xD584, 0xC7DC, 0xD585, 0xC7DD, 0xD586, 0xC158, 0xD587, 0xC7DE, - 0xD588, 0xC7DF, 0xD589, 0xC7E0, 0xD58A, 0xC159, 0xD58B, 0xC15A, - 0xD58C, 0xC161, 0xD58D, 0xC162, 0xD58E, 0xC163, 0xD58F, 0xC164, - 0xD590, 0xC7E1, 0xD591, 0xC165, 0xD592, 0xC166, 0xD593, 0xC167, - 0xD594, 0xC168, 0xD595, 0xC169, 0xD596, 0xC16A, 0xD597, 0xC16B, - 0xD598, 0xC16C, 0xD599, 0xC16D, 0xD59A, 0xC16E, 0xD59B, 0xC16F, - 0xD59C, 0xC170, 0xD59D, 0xC171, 0xD59E, 0xC172, 0xD59F, 0xC173, - 0xD5A0, 0xC174, 0xD5A1, 0xC175, 0xD5A2, 0xC176, 0xD5A3, 0xC177, - 0xD5A4, 0xC178, 0xD5A5, 0xC7E2, 0xD5A6, 0xC179, 0xD5A7, 0xC17A, - 0xD5A8, 0xC181, 0xD5A9, 0xC182, 0xD5AA, 0xC183, 0xD5AB, 0xC184, - 0xD5AC, 0xC185, 0xD5AD, 0xC186, 0xD5AE, 0xC187, 0xD5AF, 0xC188, - 0xD5B0, 0xC189, 0xD5B1, 0xC18A, 0xD5B2, 0xC18B, 0xD5B3, 0xC18C, - 0xD5B4, 0xC18D, 0xD5B5, 0xC18E, 0xD5B6, 0xC18F, 0xD5B7, 0xC190, - 0xD5B8, 0xC191, 0xD5B9, 0xC192, 0xD5BA, 0xC193, 0xD5BB, 0xC194, - 0xD5BC, 0xC195, 0xD5BD, 0xC196, 0xD5BE, 0xC197, 0xD5BF, 0xC198, - 0xD5C0, 0xC199, 0xD5C1, 0xC19A, 0xD5C2, 0xC19B, 0xD5C3, 0xC19C, - 0xD5C4, 0xC19D, 0xD5C5, 0xC19E, 0xD5C6, 0xC19F, 0xD5C7, 0xC1A0, - 0xD5C8, 0xC7E3, 0xD5C9, 0xC7E4, 0xD5CA, 0xC241, 0xD5CB, 0xC242, - 0xD5CC, 0xC7E5, 0xD5CD, 0xC243, 0xD5CE, 0xC244, 0xD5CF, 0xC245, - 0xD5D0, 0xC7E6, 0xD5D1, 0xC246, 0xD5D2, 0xC7E7, 0xD5D3, 0xC247, - 0xD5D4, 0xC248, 0xD5D5, 0xC249, 0xD5D6, 0xC24A, 0xD5D7, 0xC24B, - 0xD5D8, 0xC7E8, 0xD5D9, 0xC7E9, 0xD5DA, 0xC24C, 0xD5DB, 0xC7EA, - 0xD5DC, 0xC24D, 0xD5DD, 0xC7EB, 0xD5DE, 0xC24E, 0xD5DF, 0xC24F, - 0xD5E0, 0xC250, 0xD5E1, 0xC251, 0xD5E2, 0xC252, 0xD5E3, 0xC253, - 0xD5E4, 0xC7EC, 0xD5E5, 0xC7ED, 0xD5E6, 0xC254, 0xD5E7, 0xC255, - 0xD5E8, 0xC7EE, 0xD5E9, 0xC256, 0xD5EA, 0xC257, 0xD5EB, 0xC258, - 0xD5EC, 0xC7EF, 0xD5ED, 0xC259, 0xD5EE, 0xC25A, 0xD5EF, 0xC261, - 0xD5F0, 0xC262, 0xD5F1, 0xC263, 0xD5F2, 0xC264, 0xD5F3, 0xC265, - 0xD5F4, 0xC7F0, 0xD5F5, 0xC7F1, 0xD5F6, 0xC266, 0xD5F7, 0xC7F2, - 0xD5F8, 0xC267, 0xD5F9, 0xC7F3, 0xD5FA, 0xC268, 0xD5FB, 0xC269, - 0xD5FC, 0xC26A, 0xD5FD, 0xC26B, 0xD5FE, 0xC26C, 0xD5FF, 0xC26D, - 0xD600, 0xC7F4, 0xD601, 0xC7F5, 0xD602, 0xC26E, 0xD603, 0xC26F, - 0xD604, 0xC7F6, 0xD605, 0xC270, 0xD606, 0xC271, 0xD607, 0xC272, - 0xD608, 0xC7F7, 0xD609, 0xC273, 0xD60A, 0xC274, 0xD60B, 0xC275, - 0xD60C, 0xC276, 0xD60D, 0xC277, 0xD60E, 0xC278, 0xD60F, 0xC279, - 0xD610, 0xC7F8, 0xD611, 0xC7F9, 0xD612, 0xC27A, 0xD613, 0xC7FA, - 0xD614, 0xC7FB, 0xD615, 0xC7FC, 0xD616, 0xC281, 0xD617, 0xC282, - 0xD618, 0xC283, 0xD619, 0xC284, 0xD61A, 0xC285, 0xD61B, 0xC286, - 0xD61C, 0xC7FD, 0xD61D, 0xC287, 0xD61E, 0xC288, 0xD61F, 0xC289, - 0xD620, 0xC7FE, 0xD621, 0xC28A, 0xD622, 0xC28B, 0xD623, 0xC28C, - 0xD624, 0xC8A1, 0xD625, 0xC28D, 0xD626, 0xC28E, 0xD627, 0xC28F, - 0xD628, 0xC290, 0xD629, 0xC291, 0xD62A, 0xC292, 0xD62B, 0xC293, - 0xD62C, 0xC294, 0xD62D, 0xC8A2, 0xD62E, 0xC295, 0xD62F, 0xC296, - 0xD630, 0xC297, 0xD631, 0xC298, 0xD632, 0xC299, 0xD633, 0xC29A, - 0xD634, 0xC29B, 0xD635, 0xC29C, 0xD636, 0xC29D, 0xD637, 0xC29E, - 0xD638, 0xC8A3, 0xD639, 0xC8A4, 0xD63A, 0xC29F, 0xD63B, 0xC2A0, - 0xD63C, 0xC8A5, 0xD63D, 0xC341, 0xD63E, 0xC342, 0xD63F, 0xC343, - 0xD640, 0xC8A6, 0xD641, 0xC344, 0xD642, 0xC345, 0xD643, 0xC346, - 0xD644, 0xC347, 0xD645, 0xC8A7, 0xD646, 0xC348, 0xD647, 0xC349, - 0xD648, 0xC8A8, 0xD649, 0xC8A9, 0xD64A, 0xC34A, 0xD64B, 0xC8AA, - 0xD64C, 0xC34B, 0xD64D, 0xC8AB, 0xD64E, 0xC34C, 0xD64F, 0xC34D, - 0xD650, 0xC34E, 0xD651, 0xC8AC, 0xD652, 0xC34F, 0xD653, 0xC350, - 0xD654, 0xC8AD, 0xD655, 0xC8AE, 0xD656, 0xC351, 0xD657, 0xC352, - 0xD658, 0xC8AF, 0xD659, 0xC353, 0xD65A, 0xC354, 0xD65B, 0xC355, - 0xD65C, 0xC8B0, 0xD65D, 0xC356, 0xD65E, 0xC357, 0xD65F, 0xC358, - 0xD660, 0xC359, 0xD661, 0xC35A, 0xD662, 0xC361, 0xD663, 0xC362, - 0xD664, 0xC363, 0xD665, 0xC364, 0xD666, 0xC365, 0xD667, 0xC8B1, - 0xD668, 0xC366, 0xD669, 0xC8B2, 0xD66A, 0xC367, 0xD66B, 0xC368, - 0xD66C, 0xC369, 0xD66D, 0xC36A, 0xD66E, 0xC36B, 0xD66F, 0xC36C, - 0xD670, 0xC8B3, 0xD671, 0xC8B4, 0xD672, 0xC36D, 0xD673, 0xC36E, - 0xD674, 0xC8B5, 0xD675, 0xC36F, 0xD676, 0xC370, 0xD677, 0xC371, - 0xD678, 0xC372, 0xD679, 0xC373, 0xD67A, 0xC374, 0xD67B, 0xC375, - 0xD67C, 0xC376, 0xD67D, 0xC377, 0xD67E, 0xC378, 0xD67F, 0xC379, - 0xD680, 0xC37A, 0xD681, 0xC381, 0xD682, 0xC382, 0xD683, 0xC8B6, - 0xD684, 0xC383, 0xD685, 0xC8B7, 0xD686, 0xC384, 0xD687, 0xC385, - 0xD688, 0xC386, 0xD689, 0xC387, 0xD68A, 0xC388, 0xD68B, 0xC389, - 0xD68C, 0xC8B8, 0xD68D, 0xC8B9, 0xD68E, 0xC38A, 0xD68F, 0xC38B, - 0xD690, 0xC8BA, 0xD691, 0xC38C, 0xD692, 0xC38D, 0xD693, 0xC38E, - 0xD694, 0xC8BB, 0xD695, 0xC38F, 0xD696, 0xC390, 0xD697, 0xC391, - 0xD698, 0xC392, 0xD699, 0xC393, 0xD69A, 0xC394, 0xD69B, 0xC395, - 0xD69C, 0xC396, 0xD69D, 0xC8BC, 0xD69E, 0xC397, 0xD69F, 0xC8BD, - 0xD6A0, 0xC398, 0xD6A1, 0xC8BE, 0xD6A2, 0xC399, 0xD6A3, 0xC39A, - 0xD6A4, 0xC39B, 0xD6A5, 0xC39C, 0xD6A6, 0xC39D, 0xD6A7, 0xC39E, - 0xD6A8, 0xC8BF, 0xD6A9, 0xC39F, 0xD6AA, 0xC3A0, 0xD6AB, 0xC441, - 0xD6AC, 0xC8C0, 0xD6AD, 0xC442, 0xD6AE, 0xC443, 0xD6AF, 0xC444, - 0xD6B0, 0xC8C1, 0xD6B1, 0xC445, 0xD6B2, 0xC446, 0xD6B3, 0xC447, - 0xD6B4, 0xC448, 0xD6B5, 0xC449, 0xD6B6, 0xC44A, 0xD6B7, 0xC44B, - 0xD6B8, 0xC44C, 0xD6B9, 0xC8C2, 0xD6BA, 0xC44D, 0xD6BB, 0xC8C3, - 0xD6BC, 0xC44E, 0xD6BD, 0xC44F, 0xD6BE, 0xC450, 0xD6BF, 0xC451, - 0xD6C0, 0xC452, 0xD6C1, 0xC453, 0xD6C2, 0xC454, 0xD6C3, 0xC455, - 0xD6C4, 0xC8C4, 0xD6C5, 0xC8C5, 0xD6C6, 0xC456, 0xD6C7, 0xC457, - 0xD6C8, 0xC8C6, 0xD6C9, 0xC458, 0xD6CA, 0xC459, 0xD6CB, 0xC45A, - 0xD6CC, 0xC8C7, 0xD6CD, 0xC461, 0xD6CE, 0xC462, 0xD6CF, 0xC463, - 0xD6D0, 0xC464, 0xD6D1, 0xC8C8, 0xD6D2, 0xC465, 0xD6D3, 0xC466, - 0xD6D4, 0xC8C9, 0xD6D5, 0xC467, 0xD6D6, 0xC468, 0xD6D7, 0xC8CA, - 0xD6D8, 0xC469, 0xD6D9, 0xC8CB, 0xD6DA, 0xC46A, 0xD6DB, 0xC46B, - 0xD6DC, 0xC46C, 0xD6DD, 0xC46D, 0xD6DE, 0xC46E, 0xD6DF, 0xC46F, - 0xD6E0, 0xC8CC, 0xD6E1, 0xC470, 0xD6E2, 0xC471, 0xD6E3, 0xC472, - 0xD6E4, 0xC8CD, 0xD6E5, 0xC473, 0xD6E6, 0xC474, 0xD6E7, 0xC475, - 0xD6E8, 0xC8CE, 0xD6E9, 0xC476, 0xD6EA, 0xC477, 0xD6EB, 0xC478, - 0xD6EC, 0xC479, 0xD6ED, 0xC47A, 0xD6EE, 0xC481, 0xD6EF, 0xC482, - 0xD6F0, 0xC8CF, 0xD6F1, 0xC483, 0xD6F2, 0xC484, 0xD6F3, 0xC485, - 0xD6F4, 0xC486, 0xD6F5, 0xC8D0, 0xD6F6, 0xC487, 0xD6F7, 0xC488, - 0xD6F8, 0xC489, 0xD6F9, 0xC48A, 0xD6FA, 0xC48B, 0xD6FB, 0xC48C, - 0xD6FC, 0xC8D1, 0xD6FD, 0xC8D2, 0xD6FE, 0xC48D, 0xD6FF, 0xC48E, - 0xD700, 0xC8D3, 0xD701, 0xC48F, 0xD702, 0xC490, 0xD703, 0xC491, - 0xD704, 0xC8D4, 0xD705, 0xC492, 0xD706, 0xC493, 0xD707, 0xC494, - 0xD708, 0xC495, 0xD709, 0xC496, 0xD70A, 0xC497, 0xD70B, 0xC498, - 0xD70C, 0xC499, 0xD70D, 0xC49A, 0xD70E, 0xC49B, 0xD70F, 0xC49C, - 0xD710, 0xC49D, 0xD711, 0xC8D5, 0xD712, 0xC49E, 0xD713, 0xC49F, - 0xD714, 0xC4A0, 0xD715, 0xC541, 0xD716, 0xC542, 0xD717, 0xC543, - 0xD718, 0xC8D6, 0xD719, 0xC8D7, 0xD71A, 0xC544, 0xD71B, 0xC545, - 0xD71C, 0xC8D8, 0xD71D, 0xC546, 0xD71E, 0xC547, 0xD71F, 0xC548, - 0xD720, 0xC8D9, 0xD721, 0xC549, 0xD722, 0xC54A, 0xD723, 0xC54B, - 0xD724, 0xC54C, 0xD725, 0xC54D, 0xD726, 0xC54E, 0xD727, 0xC54F, - 0xD728, 0xC8DA, 0xD729, 0xC8DB, 0xD72A, 0xC550, 0xD72B, 0xC8DC, - 0xD72C, 0xC551, 0xD72D, 0xC8DD, 0xD72E, 0xC552, 0xD72F, 0xC553, - 0xD730, 0xC554, 0xD731, 0xC555, 0xD732, 0xC556, 0xD733, 0xC557, - 0xD734, 0xC8DE, 0xD735, 0xC8DF, 0xD736, 0xC558, 0xD737, 0xC559, - 0xD738, 0xC8E0, 0xD739, 0xC55A, 0xD73A, 0xC561, 0xD73B, 0xC562, - 0xD73C, 0xC8E1, 0xD73D, 0xC563, 0xD73E, 0xC564, 0xD73F, 0xC565, - 0xD740, 0xC566, 0xD741, 0xC567, 0xD742, 0xC568, 0xD743, 0xC569, - 0xD744, 0xC8E2, 0xD745, 0xC56A, 0xD746, 0xC56B, 0xD747, 0xC8E3, - 0xD748, 0xC56C, 0xD749, 0xC8E4, 0xD74A, 0xC56D, 0xD74B, 0xC56E, - 0xD74C, 0xC56F, 0xD74D, 0xC570, 0xD74E, 0xC571, 0xD74F, 0xC572, - 0xD750, 0xC8E5, 0xD751, 0xC8E6, 0xD752, 0xC573, 0xD753, 0xC574, - 0xD754, 0xC8E7, 0xD755, 0xC575, 0xD756, 0xC8E8, 0xD757, 0xC8E9, - 0xD758, 0xC8EA, 0xD759, 0xC8EB, 0xD75A, 0xC576, 0xD75B, 0xC577, - 0xD75C, 0xC578, 0xD75D, 0xC579, 0xD75E, 0xC57A, 0xD75F, 0xC581, - 0xD760, 0xC8EC, 0xD761, 0xC8ED, 0xD762, 0xC582, 0xD763, 0xC8EE, - 0xD764, 0xC583, 0xD765, 0xC8EF, 0xD766, 0xC584, 0xD767, 0xC585, - 0xD768, 0xC586, 0xD769, 0xC8F0, 0xD76A, 0xC587, 0xD76B, 0xC588, - 0xD76C, 0xC8F1, 0xD76D, 0xC589, 0xD76E, 0xC58A, 0xD76F, 0xC58B, - 0xD770, 0xC8F2, 0xD771, 0xC58C, 0xD772, 0xC58D, 0xD773, 0xC58E, - 0xD774, 0xC8F3, 0xD775, 0xC58F, 0xD776, 0xC590, 0xD777, 0xC591, - 0xD778, 0xC592, 0xD779, 0xC593, 0xD77A, 0xC594, 0xD77B, 0xC595, - 0xD77C, 0xC8F4, 0xD77D, 0xC8F5, 0xD77E, 0xC596, 0xD77F, 0xC597, - 0xD780, 0xC598, 0xD781, 0xC8F6, 0xD782, 0xC599, 0xD783, 0xC59A, - 0xD784, 0xC59B, 0xD785, 0xC59C, 0xD786, 0xC59D, 0xD787, 0xC59E, - 0xD788, 0xC8F7, 0xD789, 0xC8F8, 0xD78A, 0xC59F, 0xD78B, 0xC5A0, - 0xD78C, 0xC8F9, 0xD78D, 0xC641, 0xD78E, 0xC642, 0xD78F, 0xC643, - 0xD790, 0xC8FA, 0xD791, 0xC644, 0xD792, 0xC645, 0xD793, 0xC646, - 0xD794, 0xC647, 0xD795, 0xC648, 0xD796, 0xC649, 0xD797, 0xC64A, - 0xD798, 0xC8FB, 0xD799, 0xC8FC, 0xD79A, 0xC64B, 0xD79B, 0xC8FD, - 0xD79C, 0xC64C, 0xD79D, 0xC8FE, 0xD79E, 0xC64D, 0xD79F, 0xC64E, - 0xD7A0, 0xC64F, 0xD7A1, 0xC650, 0xD7A2, 0xC651, 0xD7A3, 0xC652, - 0xF900, 0xCBD0, 0xF901, 0xCBD6, 0xF902, 0xCBE7, 0xF903, 0xCDCF, - 0xF904, 0xCDE8, 0xF905, 0xCEAD, 0xF906, 0xCFFB, 0xF907, 0xD0A2, - 0xF908, 0xD0B8, 0xF909, 0xD0D0, 0xF90A, 0xD0DD, 0xF90B, 0xD1D4, - 0xF90C, 0xD1D5, 0xF90D, 0xD1D8, 0xF90E, 0xD1DB, 0xF90F, 0xD1DC, - 0xF910, 0xD1DD, 0xF911, 0xD1DE, 0xF912, 0xD1DF, 0xF913, 0xD1E0, - 0xF914, 0xD1E2, 0xF915, 0xD1E3, 0xF916, 0xD1E4, 0xF917, 0xD1E5, - 0xF918, 0xD1E6, 0xF919, 0xD1E8, 0xF91A, 0xD1E9, 0xF91B, 0xD1EA, - 0xF91C, 0xD1EB, 0xF91D, 0xD1ED, 0xF91E, 0xD1EF, 0xF91F, 0xD1F0, - 0xF920, 0xD1F2, 0xF921, 0xD1F6, 0xF922, 0xD1FA, 0xF923, 0xD1FC, - 0xF924, 0xD1FD, 0xF925, 0xD1FE, 0xF926, 0xD2A2, 0xF927, 0xD2A3, - 0xF928, 0xD2A7, 0xF929, 0xD2A8, 0xF92A, 0xD2A9, 0xF92B, 0xD2AA, - 0xF92C, 0xD2AB, 0xF92D, 0xD2AD, 0xF92E, 0xD2B2, 0xF92F, 0xD2BE, - 0xF930, 0xD2C2, 0xF931, 0xD2C3, 0xF932, 0xD2C4, 0xF933, 0xD2C6, - 0xF934, 0xD2C7, 0xF935, 0xD2C8, 0xF936, 0xD2C9, 0xF937, 0xD2CA, - 0xF938, 0xD2CB, 0xF939, 0xD2CD, 0xF93A, 0xD2CE, 0xF93B, 0xD2CF, - 0xF93C, 0xD2D0, 0xF93D, 0xD2D1, 0xF93E, 0xD2D2, 0xF93F, 0xD2D3, - 0xF940, 0xD2D4, 0xF941, 0xD2D5, 0xF942, 0xD2D6, 0xF943, 0xD2D7, - 0xF944, 0xD2D9, 0xF945, 0xD2DA, 0xF946, 0xD2DE, 0xF947, 0xD2DF, - 0xF948, 0xD2E1, 0xF949, 0xD2E2, 0xF94A, 0xD2E4, 0xF94B, 0xD2E5, - 0xF94C, 0xD2E6, 0xF94D, 0xD2E7, 0xF94E, 0xD2E8, 0xF94F, 0xD2E9, - 0xF950, 0xD2EA, 0xF951, 0xD2EB, 0xF952, 0xD2F0, 0xF953, 0xD2F1, - 0xF954, 0xD2F2, 0xF955, 0xD2F3, 0xF956, 0xD2F4, 0xF957, 0xD2F5, - 0xF958, 0xD2F7, 0xF959, 0xD2F8, 0xF95A, 0xD4E6, 0xF95B, 0xD4FC, - 0xF95C, 0xD5A5, 0xF95D, 0xD5AB, 0xF95E, 0xD5AE, 0xF95F, 0xD6B8, - 0xF960, 0xD6CD, 0xF961, 0xD7CB, 0xF962, 0xD7E4, 0xF963, 0xDBC5, - 0xF964, 0xDBE4, 0xF965, 0xDCA5, 0xF966, 0xDDA5, 0xF967, 0xDDD5, - 0xF968, 0xDDF4, 0xF969, 0xDEFC, 0xF96A, 0xDEFE, 0xF96B, 0xDFB3, - 0xF96C, 0xDFE1, 0xF96D, 0xDFE8, 0xF96E, 0xE0F1, 0xF96F, 0xE1AD, - 0xF970, 0xE1ED, 0xF971, 0xE3F5, 0xF972, 0xE4A1, 0xF973, 0xE4A9, - 0xF974, 0xE5AE, 0xF975, 0xE5B1, 0xF976, 0xE5B2, 0xF977, 0xE5B9, - 0xF978, 0xE5BB, 0xF979, 0xE5BC, 0xF97A, 0xE5C4, 0xF97B, 0xE5CE, - 0xF97C, 0xE5D0, 0xF97D, 0xE5D2, 0xF97E, 0xE5D6, 0xF97F, 0xE5FA, - 0xF980, 0xE5FB, 0xF981, 0xE5FC, 0xF982, 0xE5FE, 0xF983, 0xE6A1, - 0xF984, 0xE6A4, 0xF985, 0xE6A7, 0xF986, 0xE6AD, 0xF987, 0xE6AF, - 0xF988, 0xE6B0, 0xF989, 0xE6B1, 0xF98A, 0xE6B3, 0xF98B, 0xE6B7, - 0xF98C, 0xE6B8, 0xF98D, 0xE6BC, 0xF98E, 0xE6C4, 0xF98F, 0xE6C6, - 0xF990, 0xE6C7, 0xF991, 0xE6CA, 0xF992, 0xE6D2, 0xF993, 0xE6D6, - 0xF994, 0xE6D9, 0xF995, 0xE6DC, 0xF996, 0xE6DF, 0xF997, 0xE6E1, - 0xF998, 0xE6E4, 0xF999, 0xE6E5, 0xF99A, 0xE6E6, 0xF99B, 0xE6E8, - 0xF99C, 0xE6EA, 0xF99D, 0xE6EB, 0xF99E, 0xE6EC, 0xF99F, 0xE6EF, - 0xF9A0, 0xE6F1, 0xF9A1, 0xE6F2, 0xF9A2, 0xE6F5, 0xF9A3, 0xE6F6, - 0xF9A4, 0xE6F7, 0xF9A5, 0xE6F9, 0xF9A6, 0xE7A1, 0xF9A7, 0xE7A6, - 0xF9A8, 0xE7A9, 0xF9A9, 0xE7AA, 0xF9AA, 0xE7AC, 0xF9AB, 0xE7AD, - 0xF9AC, 0xE7B0, 0xF9AD, 0xE7BF, 0xF9AE, 0xE7C1, 0xF9AF, 0xE7C6, - 0xF9B0, 0xE7C7, 0xF9B1, 0xE7CB, 0xF9B2, 0xE7CD, 0xF9B3, 0xE7CF, - 0xF9B4, 0xE7D0, 0xF9B5, 0xE7D3, 0xF9B6, 0xE7DF, 0xF9B7, 0xE7E4, - 0xF9B8, 0xE7E6, 0xF9B9, 0xE7F7, 0xF9BA, 0xE8E7, 0xF9BB, 0xE8E8, - 0xF9BC, 0xE8F0, 0xF9BD, 0xE8F1, 0xF9BE, 0xE8F7, 0xF9BF, 0xE8F9, - 0xF9C0, 0xE8FB, 0xF9C1, 0xE8FE, 0xF9C2, 0xE9A7, 0xF9C3, 0xE9AC, - 0xF9C4, 0xE9CC, 0xF9C5, 0xE9F7, 0xF9C6, 0xEAC1, 0xF9C7, 0xEAE5, - 0xF9C8, 0xEAF4, 0xF9C9, 0xEAF7, 0xF9CA, 0xEAFC, 0xF9CB, 0xEAFE, - 0xF9CC, 0xEBA4, 0xF9CD, 0xEBA7, 0xF9CE, 0xEBA9, 0xF9CF, 0xEBAA, - 0xF9D0, 0xEBBA, 0xF9D1, 0xEBBB, 0xF9D2, 0xEBBD, 0xF9D3, 0xEBC1, - 0xF9D4, 0xEBC2, 0xF9D5, 0xEBC6, 0xF9D6, 0xEBC7, 0xF9D7, 0xEBCC, - 0xF9D8, 0xEBCF, 0xF9D9, 0xEBD0, 0xF9DA, 0xEBD1, 0xF9DB, 0xEBD2, - 0xF9DC, 0xEBD8, 0xF9DD, 0xECA6, 0xF9DE, 0xECA7, 0xF9DF, 0xECAA, - 0xF9E0, 0xECAF, 0xF9E1, 0xECB0, 0xF9E2, 0xECB1, 0xF9E3, 0xECB2, - 0xF9E4, 0xECB5, 0xF9E5, 0xECB8, 0xF9E6, 0xECBA, 0xF9E7, 0xECC0, - 0xF9E8, 0xECC1, 0xF9E9, 0xECC5, 0xF9EA, 0xECC6, 0xF9EB, 0xECC9, - 0xF9EC, 0xECCA, 0xF9ED, 0xECD5, 0xF9EE, 0xECDD, 0xF9EF, 0xECDE, - 0xF9F0, 0xECE1, 0xF9F1, 0xECE4, 0xF9F2, 0xECE7, 0xF9F3, 0xECE8, - 0xF9F4, 0xECF7, 0xF9F5, 0xECF8, 0xF9F6, 0xECFA, 0xF9F7, 0xEDA1, - 0xF9F8, 0xEDA2, 0xF9F9, 0xEDA3, 0xF9FA, 0xEDEE, 0xF9FB, 0xEEDB, - 0xF9FC, 0xF2BD, 0xF9FD, 0xF2FA, 0xF9FE, 0xF3B1, 0xF9FF, 0xF4A7, - 0xFA00, 0xF4EE, 0xFA01, 0xF6F4, 0xFA02, 0xF6F6, 0xFA03, 0xF7B8, - 0xFA04, 0xF7C8, 0xFA05, 0xF7D3, 0xFA06, 0xF8DB, 0xFA07, 0xF8F0, - 0xFA08, 0xFAA1, 0xFA09, 0xFAA2, 0xFA0A, 0xFAE6, 0xFA0B, 0xFCA9, - 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA3A4, - 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, - 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, - 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, - 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, - 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, - 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, - 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, - 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, - 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, - 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, - 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, - 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, - 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, - 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA1AC, - 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, - 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, - 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, - 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, - 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, - 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, - 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, - 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, - 0xFF5D, 0xA3FD, 0xFF5E, 0xA2A6, 0xFFE0, 0xA1CB, 0xFFE1, 0xA1CC, - 0xFFE2, 0xA1FE, 0xFFE3, 0xA3FE, 0xFFE5, 0xA1CD, 0xFFE6, 0xA3DC, - 0, 0 -}; - -static -const WCHAR oem2uni[] = { -/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ - 0x8141, 0xAC02, 0x8142, 0xAC03, 0x8143, 0xAC05, 0x8144, 0xAC06, - 0x8145, 0xAC0B, 0x8146, 0xAC0C, 0x8147, 0xAC0D, 0x8148, 0xAC0E, - 0x8149, 0xAC0F, 0x814A, 0xAC18, 0x814B, 0xAC1E, 0x814C, 0xAC1F, - 0x814D, 0xAC21, 0x814E, 0xAC22, 0x814F, 0xAC23, 0x8150, 0xAC25, - 0x8151, 0xAC26, 0x8152, 0xAC27, 0x8153, 0xAC28, 0x8154, 0xAC29, - 0x8155, 0xAC2A, 0x8156, 0xAC2B, 0x8157, 0xAC2E, 0x8158, 0xAC32, - 0x8159, 0xAC33, 0x815A, 0xAC34, 0x8161, 0xAC35, 0x8162, 0xAC36, - 0x8163, 0xAC37, 0x8164, 0xAC3A, 0x8165, 0xAC3B, 0x8166, 0xAC3D, - 0x8167, 0xAC3E, 0x8168, 0xAC3F, 0x8169, 0xAC41, 0x816A, 0xAC42, - 0x816B, 0xAC43, 0x816C, 0xAC44, 0x816D, 0xAC45, 0x816E, 0xAC46, - 0x816F, 0xAC47, 0x8170, 0xAC48, 0x8171, 0xAC49, 0x8172, 0xAC4A, - 0x8173, 0xAC4C, 0x8174, 0xAC4E, 0x8175, 0xAC4F, 0x8176, 0xAC50, - 0x8177, 0xAC51, 0x8178, 0xAC52, 0x8179, 0xAC53, 0x817A, 0xAC55, - 0x8181, 0xAC56, 0x8182, 0xAC57, 0x8183, 0xAC59, 0x8184, 0xAC5A, - 0x8185, 0xAC5B, 0x8186, 0xAC5D, 0x8187, 0xAC5E, 0x8188, 0xAC5F, - 0x8189, 0xAC60, 0x818A, 0xAC61, 0x818B, 0xAC62, 0x818C, 0xAC63, - 0x818D, 0xAC64, 0x818E, 0xAC65, 0x818F, 0xAC66, 0x8190, 0xAC67, - 0x8191, 0xAC68, 0x8192, 0xAC69, 0x8193, 0xAC6A, 0x8194, 0xAC6B, - 0x8195, 0xAC6C, 0x8196, 0xAC6D, 0x8197, 0xAC6E, 0x8198, 0xAC6F, - 0x8199, 0xAC72, 0x819A, 0xAC73, 0x819B, 0xAC75, 0x819C, 0xAC76, - 0x819D, 0xAC79, 0x819E, 0xAC7B, 0x819F, 0xAC7C, 0x81A0, 0xAC7D, - 0x81A1, 0xAC7E, 0x81A2, 0xAC7F, 0x81A3, 0xAC82, 0x81A4, 0xAC87, - 0x81A5, 0xAC88, 0x81A6, 0xAC8D, 0x81A7, 0xAC8E, 0x81A8, 0xAC8F, - 0x81A9, 0xAC91, 0x81AA, 0xAC92, 0x81AB, 0xAC93, 0x81AC, 0xAC95, - 0x81AD, 0xAC96, 0x81AE, 0xAC97, 0x81AF, 0xAC98, 0x81B0, 0xAC99, - 0x81B1, 0xAC9A, 0x81B2, 0xAC9B, 0x81B3, 0xAC9E, 0x81B4, 0xACA2, - 0x81B5, 0xACA3, 0x81B6, 0xACA4, 0x81B7, 0xACA5, 0x81B8, 0xACA6, - 0x81B9, 0xACA7, 0x81BA, 0xACAB, 0x81BB, 0xACAD, 0x81BC, 0xACAE, - 0x81BD, 0xACB1, 0x81BE, 0xACB2, 0x81BF, 0xACB3, 0x81C0, 0xACB4, - 0x81C1, 0xACB5, 0x81C2, 0xACB6, 0x81C3, 0xACB7, 0x81C4, 0xACBA, - 0x81C5, 0xACBE, 0x81C6, 0xACBF, 0x81C7, 0xACC0, 0x81C8, 0xACC2, - 0x81C9, 0xACC3, 0x81CA, 0xACC5, 0x81CB, 0xACC6, 0x81CC, 0xACC7, - 0x81CD, 0xACC9, 0x81CE, 0xACCA, 0x81CF, 0xACCB, 0x81D0, 0xACCD, - 0x81D1, 0xACCE, 0x81D2, 0xACCF, 0x81D3, 0xACD0, 0x81D4, 0xACD1, - 0x81D5, 0xACD2, 0x81D6, 0xACD3, 0x81D7, 0xACD4, 0x81D8, 0xACD6, - 0x81D9, 0xACD8, 0x81DA, 0xACD9, 0x81DB, 0xACDA, 0x81DC, 0xACDB, - 0x81DD, 0xACDC, 0x81DE, 0xACDD, 0x81DF, 0xACDE, 0x81E0, 0xACDF, - 0x81E1, 0xACE2, 0x81E2, 0xACE3, 0x81E3, 0xACE5, 0x81E4, 0xACE6, - 0x81E5, 0xACE9, 0x81E6, 0xACEB, 0x81E7, 0xACED, 0x81E8, 0xACEE, - 0x81E9, 0xACF2, 0x81EA, 0xACF4, 0x81EB, 0xACF7, 0x81EC, 0xACF8, - 0x81ED, 0xACF9, 0x81EE, 0xACFA, 0x81EF, 0xACFB, 0x81F0, 0xACFE, - 0x81F1, 0xACFF, 0x81F2, 0xAD01, 0x81F3, 0xAD02, 0x81F4, 0xAD03, - 0x81F5, 0xAD05, 0x81F6, 0xAD07, 0x81F7, 0xAD08, 0x81F8, 0xAD09, - 0x81F9, 0xAD0A, 0x81FA, 0xAD0B, 0x81FB, 0xAD0E, 0x81FC, 0xAD10, - 0x81FD, 0xAD12, 0x81FE, 0xAD13, 0x8241, 0xAD14, 0x8242, 0xAD15, - 0x8243, 0xAD16, 0x8244, 0xAD17, 0x8245, 0xAD19, 0x8246, 0xAD1A, - 0x8247, 0xAD1B, 0x8248, 0xAD1D, 0x8249, 0xAD1E, 0x824A, 0xAD1F, - 0x824B, 0xAD21, 0x824C, 0xAD22, 0x824D, 0xAD23, 0x824E, 0xAD24, - 0x824F, 0xAD25, 0x8250, 0xAD26, 0x8251, 0xAD27, 0x8252, 0xAD28, - 0x8253, 0xAD2A, 0x8254, 0xAD2B, 0x8255, 0xAD2E, 0x8256, 0xAD2F, - 0x8257, 0xAD30, 0x8258, 0xAD31, 0x8259, 0xAD32, 0x825A, 0xAD33, - 0x8261, 0xAD36, 0x8262, 0xAD37, 0x8263, 0xAD39, 0x8264, 0xAD3A, - 0x8265, 0xAD3B, 0x8266, 0xAD3D, 0x8267, 0xAD3E, 0x8268, 0xAD3F, - 0x8269, 0xAD40, 0x826A, 0xAD41, 0x826B, 0xAD42, 0x826C, 0xAD43, - 0x826D, 0xAD46, 0x826E, 0xAD48, 0x826F, 0xAD4A, 0x8270, 0xAD4B, - 0x8271, 0xAD4C, 0x8272, 0xAD4D, 0x8273, 0xAD4E, 0x8274, 0xAD4F, - 0x8275, 0xAD51, 0x8276, 0xAD52, 0x8277, 0xAD53, 0x8278, 0xAD55, - 0x8279, 0xAD56, 0x827A, 0xAD57, 0x8281, 0xAD59, 0x8282, 0xAD5A, - 0x8283, 0xAD5B, 0x8284, 0xAD5C, 0x8285, 0xAD5D, 0x8286, 0xAD5E, - 0x8287, 0xAD5F, 0x8288, 0xAD60, 0x8289, 0xAD62, 0x828A, 0xAD64, - 0x828B, 0xAD65, 0x828C, 0xAD66, 0x828D, 0xAD67, 0x828E, 0xAD68, - 0x828F, 0xAD69, 0x8290, 0xAD6A, 0x8291, 0xAD6B, 0x8292, 0xAD6E, - 0x8293, 0xAD6F, 0x8294, 0xAD71, 0x8295, 0xAD72, 0x8296, 0xAD77, - 0x8297, 0xAD78, 0x8298, 0xAD79, 0x8299, 0xAD7A, 0x829A, 0xAD7E, - 0x829B, 0xAD80, 0x829C, 0xAD83, 0x829D, 0xAD84, 0x829E, 0xAD85, - 0x829F, 0xAD86, 0x82A0, 0xAD87, 0x82A1, 0xAD8A, 0x82A2, 0xAD8B, - 0x82A3, 0xAD8D, 0x82A4, 0xAD8E, 0x82A5, 0xAD8F, 0x82A6, 0xAD91, - 0x82A7, 0xAD92, 0x82A8, 0xAD93, 0x82A9, 0xAD94, 0x82AA, 0xAD95, - 0x82AB, 0xAD96, 0x82AC, 0xAD97, 0x82AD, 0xAD98, 0x82AE, 0xAD99, - 0x82AF, 0xAD9A, 0x82B0, 0xAD9B, 0x82B1, 0xAD9E, 0x82B2, 0xAD9F, - 0x82B3, 0xADA0, 0x82B4, 0xADA1, 0x82B5, 0xADA2, 0x82B6, 0xADA3, - 0x82B7, 0xADA5, 0x82B8, 0xADA6, 0x82B9, 0xADA7, 0x82BA, 0xADA8, - 0x82BB, 0xADA9, 0x82BC, 0xADAA, 0x82BD, 0xADAB, 0x82BE, 0xADAC, - 0x82BF, 0xADAD, 0x82C0, 0xADAE, 0x82C1, 0xADAF, 0x82C2, 0xADB0, - 0x82C3, 0xADB1, 0x82C4, 0xADB2, 0x82C5, 0xADB3, 0x82C6, 0xADB4, - 0x82C7, 0xADB5, 0x82C8, 0xADB6, 0x82C9, 0xADB8, 0x82CA, 0xADB9, - 0x82CB, 0xADBA, 0x82CC, 0xADBB, 0x82CD, 0xADBC, 0x82CE, 0xADBD, - 0x82CF, 0xADBE, 0x82D0, 0xADBF, 0x82D1, 0xADC2, 0x82D2, 0xADC3, - 0x82D3, 0xADC5, 0x82D4, 0xADC6, 0x82D5, 0xADC7, 0x82D6, 0xADC9, - 0x82D7, 0xADCA, 0x82D8, 0xADCB, 0x82D9, 0xADCC, 0x82DA, 0xADCD, - 0x82DB, 0xADCE, 0x82DC, 0xADCF, 0x82DD, 0xADD2, 0x82DE, 0xADD4, - 0x82DF, 0xADD5, 0x82E0, 0xADD6, 0x82E1, 0xADD7, 0x82E2, 0xADD8, - 0x82E3, 0xADD9, 0x82E4, 0xADDA, 0x82E5, 0xADDB, 0x82E6, 0xADDD, - 0x82E7, 0xADDE, 0x82E8, 0xADDF, 0x82E9, 0xADE1, 0x82EA, 0xADE2, - 0x82EB, 0xADE3, 0x82EC, 0xADE5, 0x82ED, 0xADE6, 0x82EE, 0xADE7, - 0x82EF, 0xADE8, 0x82F0, 0xADE9, 0x82F1, 0xADEA, 0x82F2, 0xADEB, - 0x82F3, 0xADEC, 0x82F4, 0xADED, 0x82F5, 0xADEE, 0x82F6, 0xADEF, - 0x82F7, 0xADF0, 0x82F8, 0xADF1, 0x82F9, 0xADF2, 0x82FA, 0xADF3, - 0x82FB, 0xADF4, 0x82FC, 0xADF5, 0x82FD, 0xADF6, 0x82FE, 0xADF7, - 0x8341, 0xADFA, 0x8342, 0xADFB, 0x8343, 0xADFD, 0x8344, 0xADFE, - 0x8345, 0xAE02, 0x8346, 0xAE03, 0x8347, 0xAE04, 0x8348, 0xAE05, - 0x8349, 0xAE06, 0x834A, 0xAE07, 0x834B, 0xAE0A, 0x834C, 0xAE0C, - 0x834D, 0xAE0E, 0x834E, 0xAE0F, 0x834F, 0xAE10, 0x8350, 0xAE11, - 0x8351, 0xAE12, 0x8352, 0xAE13, 0x8353, 0xAE15, 0x8354, 0xAE16, - 0x8355, 0xAE17, 0x8356, 0xAE18, 0x8357, 0xAE19, 0x8358, 0xAE1A, - 0x8359, 0xAE1B, 0x835A, 0xAE1C, 0x8361, 0xAE1D, 0x8362, 0xAE1E, - 0x8363, 0xAE1F, 0x8364, 0xAE20, 0x8365, 0xAE21, 0x8366, 0xAE22, - 0x8367, 0xAE23, 0x8368, 0xAE24, 0x8369, 0xAE25, 0x836A, 0xAE26, - 0x836B, 0xAE27, 0x836C, 0xAE28, 0x836D, 0xAE29, 0x836E, 0xAE2A, - 0x836F, 0xAE2B, 0x8370, 0xAE2C, 0x8371, 0xAE2D, 0x8372, 0xAE2E, - 0x8373, 0xAE2F, 0x8374, 0xAE32, 0x8375, 0xAE33, 0x8376, 0xAE35, - 0x8377, 0xAE36, 0x8378, 0xAE39, 0x8379, 0xAE3B, 0x837A, 0xAE3C, - 0x8381, 0xAE3D, 0x8382, 0xAE3E, 0x8383, 0xAE3F, 0x8384, 0xAE42, - 0x8385, 0xAE44, 0x8386, 0xAE47, 0x8387, 0xAE48, 0x8388, 0xAE49, - 0x8389, 0xAE4B, 0x838A, 0xAE4F, 0x838B, 0xAE51, 0x838C, 0xAE52, - 0x838D, 0xAE53, 0x838E, 0xAE55, 0x838F, 0xAE57, 0x8390, 0xAE58, - 0x8391, 0xAE59, 0x8392, 0xAE5A, 0x8393, 0xAE5B, 0x8394, 0xAE5E, - 0x8395, 0xAE62, 0x8396, 0xAE63, 0x8397, 0xAE64, 0x8398, 0xAE66, - 0x8399, 0xAE67, 0x839A, 0xAE6A, 0x839B, 0xAE6B, 0x839C, 0xAE6D, - 0x839D, 0xAE6E, 0x839E, 0xAE6F, 0x839F, 0xAE71, 0x83A0, 0xAE72, - 0x83A1, 0xAE73, 0x83A2, 0xAE74, 0x83A3, 0xAE75, 0x83A4, 0xAE76, - 0x83A5, 0xAE77, 0x83A6, 0xAE7A, 0x83A7, 0xAE7E, 0x83A8, 0xAE7F, - 0x83A9, 0xAE80, 0x83AA, 0xAE81, 0x83AB, 0xAE82, 0x83AC, 0xAE83, - 0x83AD, 0xAE86, 0x83AE, 0xAE87, 0x83AF, 0xAE88, 0x83B0, 0xAE89, - 0x83B1, 0xAE8A, 0x83B2, 0xAE8B, 0x83B3, 0xAE8D, 0x83B4, 0xAE8E, - 0x83B5, 0xAE8F, 0x83B6, 0xAE90, 0x83B7, 0xAE91, 0x83B8, 0xAE92, - 0x83B9, 0xAE93, 0x83BA, 0xAE94, 0x83BB, 0xAE95, 0x83BC, 0xAE96, - 0x83BD, 0xAE97, 0x83BE, 0xAE98, 0x83BF, 0xAE99, 0x83C0, 0xAE9A, - 0x83C1, 0xAE9B, 0x83C2, 0xAE9C, 0x83C3, 0xAE9D, 0x83C4, 0xAE9E, - 0x83C5, 0xAE9F, 0x83C6, 0xAEA0, 0x83C7, 0xAEA1, 0x83C8, 0xAEA2, - 0x83C9, 0xAEA3, 0x83CA, 0xAEA4, 0x83CB, 0xAEA5, 0x83CC, 0xAEA6, - 0x83CD, 0xAEA7, 0x83CE, 0xAEA8, 0x83CF, 0xAEA9, 0x83D0, 0xAEAA, - 0x83D1, 0xAEAB, 0x83D2, 0xAEAC, 0x83D3, 0xAEAD, 0x83D4, 0xAEAE, - 0x83D5, 0xAEAF, 0x83D6, 0xAEB0, 0x83D7, 0xAEB1, 0x83D8, 0xAEB2, - 0x83D9, 0xAEB3, 0x83DA, 0xAEB4, 0x83DB, 0xAEB5, 0x83DC, 0xAEB6, - 0x83DD, 0xAEB7, 0x83DE, 0xAEB8, 0x83DF, 0xAEB9, 0x83E0, 0xAEBA, - 0x83E1, 0xAEBB, 0x83E2, 0xAEBF, 0x83E3, 0xAEC1, 0x83E4, 0xAEC2, - 0x83E5, 0xAEC3, 0x83E6, 0xAEC5, 0x83E7, 0xAEC6, 0x83E8, 0xAEC7, - 0x83E9, 0xAEC8, 0x83EA, 0xAEC9, 0x83EB, 0xAECA, 0x83EC, 0xAECB, - 0x83ED, 0xAECE, 0x83EE, 0xAED2, 0x83EF, 0xAED3, 0x83F0, 0xAED4, - 0x83F1, 0xAED5, 0x83F2, 0xAED6, 0x83F3, 0xAED7, 0x83F4, 0xAEDA, - 0x83F5, 0xAEDB, 0x83F6, 0xAEDD, 0x83F7, 0xAEDE, 0x83F8, 0xAEDF, - 0x83F9, 0xAEE0, 0x83FA, 0xAEE1, 0x83FB, 0xAEE2, 0x83FC, 0xAEE3, - 0x83FD, 0xAEE4, 0x83FE, 0xAEE5, 0x8441, 0xAEE6, 0x8442, 0xAEE7, - 0x8443, 0xAEE9, 0x8444, 0xAEEA, 0x8445, 0xAEEC, 0x8446, 0xAEEE, - 0x8447, 0xAEEF, 0x8448, 0xAEF0, 0x8449, 0xAEF1, 0x844A, 0xAEF2, - 0x844B, 0xAEF3, 0x844C, 0xAEF5, 0x844D, 0xAEF6, 0x844E, 0xAEF7, - 0x844F, 0xAEF9, 0x8450, 0xAEFA, 0x8451, 0xAEFB, 0x8452, 0xAEFD, - 0x8453, 0xAEFE, 0x8454, 0xAEFF, 0x8455, 0xAF00, 0x8456, 0xAF01, - 0x8457, 0xAF02, 0x8458, 0xAF03, 0x8459, 0xAF04, 0x845A, 0xAF05, - 0x8461, 0xAF06, 0x8462, 0xAF09, 0x8463, 0xAF0A, 0x8464, 0xAF0B, - 0x8465, 0xAF0C, 0x8466, 0xAF0E, 0x8467, 0xAF0F, 0x8468, 0xAF11, - 0x8469, 0xAF12, 0x846A, 0xAF13, 0x846B, 0xAF14, 0x846C, 0xAF15, - 0x846D, 0xAF16, 0x846E, 0xAF17, 0x846F, 0xAF18, 0x8470, 0xAF19, - 0x8471, 0xAF1A, 0x8472, 0xAF1B, 0x8473, 0xAF1C, 0x8474, 0xAF1D, - 0x8475, 0xAF1E, 0x8476, 0xAF1F, 0x8477, 0xAF20, 0x8478, 0xAF21, - 0x8479, 0xAF22, 0x847A, 0xAF23, 0x8481, 0xAF24, 0x8482, 0xAF25, - 0x8483, 0xAF26, 0x8484, 0xAF27, 0x8485, 0xAF28, 0x8486, 0xAF29, - 0x8487, 0xAF2A, 0x8488, 0xAF2B, 0x8489, 0xAF2E, 0x848A, 0xAF2F, - 0x848B, 0xAF31, 0x848C, 0xAF33, 0x848D, 0xAF35, 0x848E, 0xAF36, - 0x848F, 0xAF37, 0x8490, 0xAF38, 0x8491, 0xAF39, 0x8492, 0xAF3A, - 0x8493, 0xAF3B, 0x8494, 0xAF3E, 0x8495, 0xAF40, 0x8496, 0xAF44, - 0x8497, 0xAF45, 0x8498, 0xAF46, 0x8499, 0xAF47, 0x849A, 0xAF4A, - 0x849B, 0xAF4B, 0x849C, 0xAF4C, 0x849D, 0xAF4D, 0x849E, 0xAF4E, - 0x849F, 0xAF4F, 0x84A0, 0xAF51, 0x84A1, 0xAF52, 0x84A2, 0xAF53, - 0x84A3, 0xAF54, 0x84A4, 0xAF55, 0x84A5, 0xAF56, 0x84A6, 0xAF57, - 0x84A7, 0xAF58, 0x84A8, 0xAF59, 0x84A9, 0xAF5A, 0x84AA, 0xAF5B, - 0x84AB, 0xAF5E, 0x84AC, 0xAF5F, 0x84AD, 0xAF60, 0x84AE, 0xAF61, - 0x84AF, 0xAF62, 0x84B0, 0xAF63, 0x84B1, 0xAF66, 0x84B2, 0xAF67, - 0x84B3, 0xAF68, 0x84B4, 0xAF69, 0x84B5, 0xAF6A, 0x84B6, 0xAF6B, - 0x84B7, 0xAF6C, 0x84B8, 0xAF6D, 0x84B9, 0xAF6E, 0x84BA, 0xAF6F, - 0x84BB, 0xAF70, 0x84BC, 0xAF71, 0x84BD, 0xAF72, 0x84BE, 0xAF73, - 0x84BF, 0xAF74, 0x84C0, 0xAF75, 0x84C1, 0xAF76, 0x84C2, 0xAF77, - 0x84C3, 0xAF78, 0x84C4, 0xAF7A, 0x84C5, 0xAF7B, 0x84C6, 0xAF7C, - 0x84C7, 0xAF7D, 0x84C8, 0xAF7E, 0x84C9, 0xAF7F, 0x84CA, 0xAF81, - 0x84CB, 0xAF82, 0x84CC, 0xAF83, 0x84CD, 0xAF85, 0x84CE, 0xAF86, - 0x84CF, 0xAF87, 0x84D0, 0xAF89, 0x84D1, 0xAF8A, 0x84D2, 0xAF8B, - 0x84D3, 0xAF8C, 0x84D4, 0xAF8D, 0x84D5, 0xAF8E, 0x84D6, 0xAF8F, - 0x84D7, 0xAF92, 0x84D8, 0xAF93, 0x84D9, 0xAF94, 0x84DA, 0xAF96, - 0x84DB, 0xAF97, 0x84DC, 0xAF98, 0x84DD, 0xAF99, 0x84DE, 0xAF9A, - 0x84DF, 0xAF9B, 0x84E0, 0xAF9D, 0x84E1, 0xAF9E, 0x84E2, 0xAF9F, - 0x84E3, 0xAFA0, 0x84E4, 0xAFA1, 0x84E5, 0xAFA2, 0x84E6, 0xAFA3, - 0x84E7, 0xAFA4, 0x84E8, 0xAFA5, 0x84E9, 0xAFA6, 0x84EA, 0xAFA7, - 0x84EB, 0xAFA8, 0x84EC, 0xAFA9, 0x84ED, 0xAFAA, 0x84EE, 0xAFAB, - 0x84EF, 0xAFAC, 0x84F0, 0xAFAD, 0x84F1, 0xAFAE, 0x84F2, 0xAFAF, - 0x84F3, 0xAFB0, 0x84F4, 0xAFB1, 0x84F5, 0xAFB2, 0x84F6, 0xAFB3, - 0x84F7, 0xAFB4, 0x84F8, 0xAFB5, 0x84F9, 0xAFB6, 0x84FA, 0xAFB7, - 0x84FB, 0xAFBA, 0x84FC, 0xAFBB, 0x84FD, 0xAFBD, 0x84FE, 0xAFBE, - 0x8541, 0xAFBF, 0x8542, 0xAFC1, 0x8543, 0xAFC2, 0x8544, 0xAFC3, - 0x8545, 0xAFC4, 0x8546, 0xAFC5, 0x8547, 0xAFC6, 0x8548, 0xAFCA, - 0x8549, 0xAFCC, 0x854A, 0xAFCF, 0x854B, 0xAFD0, 0x854C, 0xAFD1, - 0x854D, 0xAFD2, 0x854E, 0xAFD3, 0x854F, 0xAFD5, 0x8550, 0xAFD6, - 0x8551, 0xAFD7, 0x8552, 0xAFD8, 0x8553, 0xAFD9, 0x8554, 0xAFDA, - 0x8555, 0xAFDB, 0x8556, 0xAFDD, 0x8557, 0xAFDE, 0x8558, 0xAFDF, - 0x8559, 0xAFE0, 0x855A, 0xAFE1, 0x8561, 0xAFE2, 0x8562, 0xAFE3, - 0x8563, 0xAFE4, 0x8564, 0xAFE5, 0x8565, 0xAFE6, 0x8566, 0xAFE7, - 0x8567, 0xAFEA, 0x8568, 0xAFEB, 0x8569, 0xAFEC, 0x856A, 0xAFED, - 0x856B, 0xAFEE, 0x856C, 0xAFEF, 0x856D, 0xAFF2, 0x856E, 0xAFF3, - 0x856F, 0xAFF5, 0x8570, 0xAFF6, 0x8571, 0xAFF7, 0x8572, 0xAFF9, - 0x8573, 0xAFFA, 0x8574, 0xAFFB, 0x8575, 0xAFFC, 0x8576, 0xAFFD, - 0x8577, 0xAFFE, 0x8578, 0xAFFF, 0x8579, 0xB002, 0x857A, 0xB003, - 0x8581, 0xB005, 0x8582, 0xB006, 0x8583, 0xB007, 0x8584, 0xB008, - 0x8585, 0xB009, 0x8586, 0xB00A, 0x8587, 0xB00B, 0x8588, 0xB00D, - 0x8589, 0xB00E, 0x858A, 0xB00F, 0x858B, 0xB011, 0x858C, 0xB012, - 0x858D, 0xB013, 0x858E, 0xB015, 0x858F, 0xB016, 0x8590, 0xB017, - 0x8591, 0xB018, 0x8592, 0xB019, 0x8593, 0xB01A, 0x8594, 0xB01B, - 0x8595, 0xB01E, 0x8596, 0xB01F, 0x8597, 0xB020, 0x8598, 0xB021, - 0x8599, 0xB022, 0x859A, 0xB023, 0x859B, 0xB024, 0x859C, 0xB025, - 0x859D, 0xB026, 0x859E, 0xB027, 0x859F, 0xB029, 0x85A0, 0xB02A, - 0x85A1, 0xB02B, 0x85A2, 0xB02C, 0x85A3, 0xB02D, 0x85A4, 0xB02E, - 0x85A5, 0xB02F, 0x85A6, 0xB030, 0x85A7, 0xB031, 0x85A8, 0xB032, - 0x85A9, 0xB033, 0x85AA, 0xB034, 0x85AB, 0xB035, 0x85AC, 0xB036, - 0x85AD, 0xB037, 0x85AE, 0xB038, 0x85AF, 0xB039, 0x85B0, 0xB03A, - 0x85B1, 0xB03B, 0x85B2, 0xB03C, 0x85B3, 0xB03D, 0x85B4, 0xB03E, - 0x85B5, 0xB03F, 0x85B6, 0xB040, 0x85B7, 0xB041, 0x85B8, 0xB042, - 0x85B9, 0xB043, 0x85BA, 0xB046, 0x85BB, 0xB047, 0x85BC, 0xB049, - 0x85BD, 0xB04B, 0x85BE, 0xB04D, 0x85BF, 0xB04F, 0x85C0, 0xB050, - 0x85C1, 0xB051, 0x85C2, 0xB052, 0x85C3, 0xB056, 0x85C4, 0xB058, - 0x85C5, 0xB05A, 0x85C6, 0xB05B, 0x85C7, 0xB05C, 0x85C8, 0xB05E, - 0x85C9, 0xB05F, 0x85CA, 0xB060, 0x85CB, 0xB061, 0x85CC, 0xB062, - 0x85CD, 0xB063, 0x85CE, 0xB064, 0x85CF, 0xB065, 0x85D0, 0xB066, - 0x85D1, 0xB067, 0x85D2, 0xB068, 0x85D3, 0xB069, 0x85D4, 0xB06A, - 0x85D5, 0xB06B, 0x85D6, 0xB06C, 0x85D7, 0xB06D, 0x85D8, 0xB06E, - 0x85D9, 0xB06F, 0x85DA, 0xB070, 0x85DB, 0xB071, 0x85DC, 0xB072, - 0x85DD, 0xB073, 0x85DE, 0xB074, 0x85DF, 0xB075, 0x85E0, 0xB076, - 0x85E1, 0xB077, 0x85E2, 0xB078, 0x85E3, 0xB079, 0x85E4, 0xB07A, - 0x85E5, 0xB07B, 0x85E6, 0xB07E, 0x85E7, 0xB07F, 0x85E8, 0xB081, - 0x85E9, 0xB082, 0x85EA, 0xB083, 0x85EB, 0xB085, 0x85EC, 0xB086, - 0x85ED, 0xB087, 0x85EE, 0xB088, 0x85EF, 0xB089, 0x85F0, 0xB08A, - 0x85F1, 0xB08B, 0x85F2, 0xB08E, 0x85F3, 0xB090, 0x85F4, 0xB092, - 0x85F5, 0xB093, 0x85F6, 0xB094, 0x85F7, 0xB095, 0x85F8, 0xB096, - 0x85F9, 0xB097, 0x85FA, 0xB09B, 0x85FB, 0xB09D, 0x85FC, 0xB09E, - 0x85FD, 0xB0A3, 0x85FE, 0xB0A4, 0x8641, 0xB0A5, 0x8642, 0xB0A6, - 0x8643, 0xB0A7, 0x8644, 0xB0AA, 0x8645, 0xB0B0, 0x8646, 0xB0B2, - 0x8647, 0xB0B6, 0x8648, 0xB0B7, 0x8649, 0xB0B9, 0x864A, 0xB0BA, - 0x864B, 0xB0BB, 0x864C, 0xB0BD, 0x864D, 0xB0BE, 0x864E, 0xB0BF, - 0x864F, 0xB0C0, 0x8650, 0xB0C1, 0x8651, 0xB0C2, 0x8652, 0xB0C3, - 0x8653, 0xB0C6, 0x8654, 0xB0CA, 0x8655, 0xB0CB, 0x8656, 0xB0CC, - 0x8657, 0xB0CD, 0x8658, 0xB0CE, 0x8659, 0xB0CF, 0x865A, 0xB0D2, - 0x8661, 0xB0D3, 0x8662, 0xB0D5, 0x8663, 0xB0D6, 0x8664, 0xB0D7, - 0x8665, 0xB0D9, 0x8666, 0xB0DA, 0x8667, 0xB0DB, 0x8668, 0xB0DC, - 0x8669, 0xB0DD, 0x866A, 0xB0DE, 0x866B, 0xB0DF, 0x866C, 0xB0E1, - 0x866D, 0xB0E2, 0x866E, 0xB0E3, 0x866F, 0xB0E4, 0x8670, 0xB0E6, - 0x8671, 0xB0E7, 0x8672, 0xB0E8, 0x8673, 0xB0E9, 0x8674, 0xB0EA, - 0x8675, 0xB0EB, 0x8676, 0xB0EC, 0x8677, 0xB0ED, 0x8678, 0xB0EE, - 0x8679, 0xB0EF, 0x867A, 0xB0F0, 0x8681, 0xB0F1, 0x8682, 0xB0F2, - 0x8683, 0xB0F3, 0x8684, 0xB0F4, 0x8685, 0xB0F5, 0x8686, 0xB0F6, - 0x8687, 0xB0F7, 0x8688, 0xB0F8, 0x8689, 0xB0F9, 0x868A, 0xB0FA, - 0x868B, 0xB0FB, 0x868C, 0xB0FC, 0x868D, 0xB0FD, 0x868E, 0xB0FE, - 0x868F, 0xB0FF, 0x8690, 0xB100, 0x8691, 0xB101, 0x8692, 0xB102, - 0x8693, 0xB103, 0x8694, 0xB104, 0x8695, 0xB105, 0x8696, 0xB106, - 0x8697, 0xB107, 0x8698, 0xB10A, 0x8699, 0xB10D, 0x869A, 0xB10E, - 0x869B, 0xB10F, 0x869C, 0xB111, 0x869D, 0xB114, 0x869E, 0xB115, - 0x869F, 0xB116, 0x86A0, 0xB117, 0x86A1, 0xB11A, 0x86A2, 0xB11E, - 0x86A3, 0xB11F, 0x86A4, 0xB120, 0x86A5, 0xB121, 0x86A6, 0xB122, - 0x86A7, 0xB126, 0x86A8, 0xB127, 0x86A9, 0xB129, 0x86AA, 0xB12A, - 0x86AB, 0xB12B, 0x86AC, 0xB12D, 0x86AD, 0xB12E, 0x86AE, 0xB12F, - 0x86AF, 0xB130, 0x86B0, 0xB131, 0x86B1, 0xB132, 0x86B2, 0xB133, - 0x86B3, 0xB136, 0x86B4, 0xB13A, 0x86B5, 0xB13B, 0x86B6, 0xB13C, - 0x86B7, 0xB13D, 0x86B8, 0xB13E, 0x86B9, 0xB13F, 0x86BA, 0xB142, - 0x86BB, 0xB143, 0x86BC, 0xB145, 0x86BD, 0xB146, 0x86BE, 0xB147, - 0x86BF, 0xB149, 0x86C0, 0xB14A, 0x86C1, 0xB14B, 0x86C2, 0xB14C, - 0x86C3, 0xB14D, 0x86C4, 0xB14E, 0x86C5, 0xB14F, 0x86C6, 0xB152, - 0x86C7, 0xB153, 0x86C8, 0xB156, 0x86C9, 0xB157, 0x86CA, 0xB159, - 0x86CB, 0xB15A, 0x86CC, 0xB15B, 0x86CD, 0xB15D, 0x86CE, 0xB15E, - 0x86CF, 0xB15F, 0x86D0, 0xB161, 0x86D1, 0xB162, 0x86D2, 0xB163, - 0x86D3, 0xB164, 0x86D4, 0xB165, 0x86D5, 0xB166, 0x86D6, 0xB167, - 0x86D7, 0xB168, 0x86D8, 0xB169, 0x86D9, 0xB16A, 0x86DA, 0xB16B, - 0x86DB, 0xB16C, 0x86DC, 0xB16D, 0x86DD, 0xB16E, 0x86DE, 0xB16F, - 0x86DF, 0xB170, 0x86E0, 0xB171, 0x86E1, 0xB172, 0x86E2, 0xB173, - 0x86E3, 0xB174, 0x86E4, 0xB175, 0x86E5, 0xB176, 0x86E6, 0xB177, - 0x86E7, 0xB17A, 0x86E8, 0xB17B, 0x86E9, 0xB17D, 0x86EA, 0xB17E, - 0x86EB, 0xB17F, 0x86EC, 0xB181, 0x86ED, 0xB183, 0x86EE, 0xB184, - 0x86EF, 0xB185, 0x86F0, 0xB186, 0x86F1, 0xB187, 0x86F2, 0xB18A, - 0x86F3, 0xB18C, 0x86F4, 0xB18E, 0x86F5, 0xB18F, 0x86F6, 0xB190, - 0x86F7, 0xB191, 0x86F8, 0xB195, 0x86F9, 0xB196, 0x86FA, 0xB197, - 0x86FB, 0xB199, 0x86FC, 0xB19A, 0x86FD, 0xB19B, 0x86FE, 0xB19D, - 0x8741, 0xB19E, 0x8742, 0xB19F, 0x8743, 0xB1A0, 0x8744, 0xB1A1, - 0x8745, 0xB1A2, 0x8746, 0xB1A3, 0x8747, 0xB1A4, 0x8748, 0xB1A5, - 0x8749, 0xB1A6, 0x874A, 0xB1A7, 0x874B, 0xB1A9, 0x874C, 0xB1AA, - 0x874D, 0xB1AB, 0x874E, 0xB1AC, 0x874F, 0xB1AD, 0x8750, 0xB1AE, - 0x8751, 0xB1AF, 0x8752, 0xB1B0, 0x8753, 0xB1B1, 0x8754, 0xB1B2, - 0x8755, 0xB1B3, 0x8756, 0xB1B4, 0x8757, 0xB1B5, 0x8758, 0xB1B6, - 0x8759, 0xB1B7, 0x875A, 0xB1B8, 0x8761, 0xB1B9, 0x8762, 0xB1BA, - 0x8763, 0xB1BB, 0x8764, 0xB1BC, 0x8765, 0xB1BD, 0x8766, 0xB1BE, - 0x8767, 0xB1BF, 0x8768, 0xB1C0, 0x8769, 0xB1C1, 0x876A, 0xB1C2, - 0x876B, 0xB1C3, 0x876C, 0xB1C4, 0x876D, 0xB1C5, 0x876E, 0xB1C6, - 0x876F, 0xB1C7, 0x8770, 0xB1C8, 0x8771, 0xB1C9, 0x8772, 0xB1CA, - 0x8773, 0xB1CB, 0x8774, 0xB1CD, 0x8775, 0xB1CE, 0x8776, 0xB1CF, - 0x8777, 0xB1D1, 0x8778, 0xB1D2, 0x8779, 0xB1D3, 0x877A, 0xB1D5, - 0x8781, 0xB1D6, 0x8782, 0xB1D7, 0x8783, 0xB1D8, 0x8784, 0xB1D9, - 0x8785, 0xB1DA, 0x8786, 0xB1DB, 0x8787, 0xB1DE, 0x8788, 0xB1E0, - 0x8789, 0xB1E1, 0x878A, 0xB1E2, 0x878B, 0xB1E3, 0x878C, 0xB1E4, - 0x878D, 0xB1E5, 0x878E, 0xB1E6, 0x878F, 0xB1E7, 0x8790, 0xB1EA, - 0x8791, 0xB1EB, 0x8792, 0xB1ED, 0x8793, 0xB1EE, 0x8794, 0xB1EF, - 0x8795, 0xB1F1, 0x8796, 0xB1F2, 0x8797, 0xB1F3, 0x8798, 0xB1F4, - 0x8799, 0xB1F5, 0x879A, 0xB1F6, 0x879B, 0xB1F7, 0x879C, 0xB1F8, - 0x879D, 0xB1FA, 0x879E, 0xB1FC, 0x879F, 0xB1FE, 0x87A0, 0xB1FF, - 0x87A1, 0xB200, 0x87A2, 0xB201, 0x87A3, 0xB202, 0x87A4, 0xB203, - 0x87A5, 0xB206, 0x87A6, 0xB207, 0x87A7, 0xB209, 0x87A8, 0xB20A, - 0x87A9, 0xB20D, 0x87AA, 0xB20E, 0x87AB, 0xB20F, 0x87AC, 0xB210, - 0x87AD, 0xB211, 0x87AE, 0xB212, 0x87AF, 0xB213, 0x87B0, 0xB216, - 0x87B1, 0xB218, 0x87B2, 0xB21A, 0x87B3, 0xB21B, 0x87B4, 0xB21C, - 0x87B5, 0xB21D, 0x87B6, 0xB21E, 0x87B7, 0xB21F, 0x87B8, 0xB221, - 0x87B9, 0xB222, 0x87BA, 0xB223, 0x87BB, 0xB224, 0x87BC, 0xB225, - 0x87BD, 0xB226, 0x87BE, 0xB227, 0x87BF, 0xB228, 0x87C0, 0xB229, - 0x87C1, 0xB22A, 0x87C2, 0xB22B, 0x87C3, 0xB22C, 0x87C4, 0xB22D, - 0x87C5, 0xB22E, 0x87C6, 0xB22F, 0x87C7, 0xB230, 0x87C8, 0xB231, - 0x87C9, 0xB232, 0x87CA, 0xB233, 0x87CB, 0xB235, 0x87CC, 0xB236, - 0x87CD, 0xB237, 0x87CE, 0xB238, 0x87CF, 0xB239, 0x87D0, 0xB23A, - 0x87D1, 0xB23B, 0x87D2, 0xB23D, 0x87D3, 0xB23E, 0x87D4, 0xB23F, - 0x87D5, 0xB240, 0x87D6, 0xB241, 0x87D7, 0xB242, 0x87D8, 0xB243, - 0x87D9, 0xB244, 0x87DA, 0xB245, 0x87DB, 0xB246, 0x87DC, 0xB247, - 0x87DD, 0xB248, 0x87DE, 0xB249, 0x87DF, 0xB24A, 0x87E0, 0xB24B, - 0x87E1, 0xB24C, 0x87E2, 0xB24D, 0x87E3, 0xB24E, 0x87E4, 0xB24F, - 0x87E5, 0xB250, 0x87E6, 0xB251, 0x87E7, 0xB252, 0x87E8, 0xB253, - 0x87E9, 0xB254, 0x87EA, 0xB255, 0x87EB, 0xB256, 0x87EC, 0xB257, - 0x87ED, 0xB259, 0x87EE, 0xB25A, 0x87EF, 0xB25B, 0x87F0, 0xB25D, - 0x87F1, 0xB25E, 0x87F2, 0xB25F, 0x87F3, 0xB261, 0x87F4, 0xB262, - 0x87F5, 0xB263, 0x87F6, 0xB264, 0x87F7, 0xB265, 0x87F8, 0xB266, - 0x87F9, 0xB267, 0x87FA, 0xB26A, 0x87FB, 0xB26B, 0x87FC, 0xB26C, - 0x87FD, 0xB26D, 0x87FE, 0xB26E, 0x8841, 0xB26F, 0x8842, 0xB270, - 0x8843, 0xB271, 0x8844, 0xB272, 0x8845, 0xB273, 0x8846, 0xB276, - 0x8847, 0xB277, 0x8848, 0xB278, 0x8849, 0xB279, 0x884A, 0xB27A, - 0x884B, 0xB27B, 0x884C, 0xB27D, 0x884D, 0xB27E, 0x884E, 0xB27F, - 0x884F, 0xB280, 0x8850, 0xB281, 0x8851, 0xB282, 0x8852, 0xB283, - 0x8853, 0xB286, 0x8854, 0xB287, 0x8855, 0xB288, 0x8856, 0xB28A, - 0x8857, 0xB28B, 0x8858, 0xB28C, 0x8859, 0xB28D, 0x885A, 0xB28E, - 0x8861, 0xB28F, 0x8862, 0xB292, 0x8863, 0xB293, 0x8864, 0xB295, - 0x8865, 0xB296, 0x8866, 0xB297, 0x8867, 0xB29B, 0x8868, 0xB29C, - 0x8869, 0xB29D, 0x886A, 0xB29E, 0x886B, 0xB29F, 0x886C, 0xB2A2, - 0x886D, 0xB2A4, 0x886E, 0xB2A7, 0x886F, 0xB2A8, 0x8870, 0xB2A9, - 0x8871, 0xB2AB, 0x8872, 0xB2AD, 0x8873, 0xB2AE, 0x8874, 0xB2AF, - 0x8875, 0xB2B1, 0x8876, 0xB2B2, 0x8877, 0xB2B3, 0x8878, 0xB2B5, - 0x8879, 0xB2B6, 0x887A, 0xB2B7, 0x8881, 0xB2B8, 0x8882, 0xB2B9, - 0x8883, 0xB2BA, 0x8884, 0xB2BB, 0x8885, 0xB2BC, 0x8886, 0xB2BD, - 0x8887, 0xB2BE, 0x8888, 0xB2BF, 0x8889, 0xB2C0, 0x888A, 0xB2C1, - 0x888B, 0xB2C2, 0x888C, 0xB2C3, 0x888D, 0xB2C4, 0x888E, 0xB2C5, - 0x888F, 0xB2C6, 0x8890, 0xB2C7, 0x8891, 0xB2CA, 0x8892, 0xB2CB, - 0x8893, 0xB2CD, 0x8894, 0xB2CE, 0x8895, 0xB2CF, 0x8896, 0xB2D1, - 0x8897, 0xB2D3, 0x8898, 0xB2D4, 0x8899, 0xB2D5, 0x889A, 0xB2D6, - 0x889B, 0xB2D7, 0x889C, 0xB2DA, 0x889D, 0xB2DC, 0x889E, 0xB2DE, - 0x889F, 0xB2DF, 0x88A0, 0xB2E0, 0x88A1, 0xB2E1, 0x88A2, 0xB2E3, - 0x88A3, 0xB2E7, 0x88A4, 0xB2E9, 0x88A5, 0xB2EA, 0x88A6, 0xB2F0, - 0x88A7, 0xB2F1, 0x88A8, 0xB2F2, 0x88A9, 0xB2F6, 0x88AA, 0xB2FC, - 0x88AB, 0xB2FD, 0x88AC, 0xB2FE, 0x88AD, 0xB302, 0x88AE, 0xB303, - 0x88AF, 0xB305, 0x88B0, 0xB306, 0x88B1, 0xB307, 0x88B2, 0xB309, - 0x88B3, 0xB30A, 0x88B4, 0xB30B, 0x88B5, 0xB30C, 0x88B6, 0xB30D, - 0x88B7, 0xB30E, 0x88B8, 0xB30F, 0x88B9, 0xB312, 0x88BA, 0xB316, - 0x88BB, 0xB317, 0x88BC, 0xB318, 0x88BD, 0xB319, 0x88BE, 0xB31A, - 0x88BF, 0xB31B, 0x88C0, 0xB31D, 0x88C1, 0xB31E, 0x88C2, 0xB31F, - 0x88C3, 0xB320, 0x88C4, 0xB321, 0x88C5, 0xB322, 0x88C6, 0xB323, - 0x88C7, 0xB324, 0x88C8, 0xB325, 0x88C9, 0xB326, 0x88CA, 0xB327, - 0x88CB, 0xB328, 0x88CC, 0xB329, 0x88CD, 0xB32A, 0x88CE, 0xB32B, - 0x88CF, 0xB32C, 0x88D0, 0xB32D, 0x88D1, 0xB32E, 0x88D2, 0xB32F, - 0x88D3, 0xB330, 0x88D4, 0xB331, 0x88D5, 0xB332, 0x88D6, 0xB333, - 0x88D7, 0xB334, 0x88D8, 0xB335, 0x88D9, 0xB336, 0x88DA, 0xB337, - 0x88DB, 0xB338, 0x88DC, 0xB339, 0x88DD, 0xB33A, 0x88DE, 0xB33B, - 0x88DF, 0xB33C, 0x88E0, 0xB33D, 0x88E1, 0xB33E, 0x88E2, 0xB33F, - 0x88E3, 0xB340, 0x88E4, 0xB341, 0x88E5, 0xB342, 0x88E6, 0xB343, - 0x88E7, 0xB344, 0x88E8, 0xB345, 0x88E9, 0xB346, 0x88EA, 0xB347, - 0x88EB, 0xB348, 0x88EC, 0xB349, 0x88ED, 0xB34A, 0x88EE, 0xB34B, - 0x88EF, 0xB34C, 0x88F0, 0xB34D, 0x88F1, 0xB34E, 0x88F2, 0xB34F, - 0x88F3, 0xB350, 0x88F4, 0xB351, 0x88F5, 0xB352, 0x88F6, 0xB353, - 0x88F7, 0xB357, 0x88F8, 0xB359, 0x88F9, 0xB35A, 0x88FA, 0xB35D, - 0x88FB, 0xB360, 0x88FC, 0xB361, 0x88FD, 0xB362, 0x88FE, 0xB363, - 0x8941, 0xB366, 0x8942, 0xB368, 0x8943, 0xB36A, 0x8944, 0xB36C, - 0x8945, 0xB36D, 0x8946, 0xB36F, 0x8947, 0xB372, 0x8948, 0xB373, - 0x8949, 0xB375, 0x894A, 0xB376, 0x894B, 0xB377, 0x894C, 0xB379, - 0x894D, 0xB37A, 0x894E, 0xB37B, 0x894F, 0xB37C, 0x8950, 0xB37D, - 0x8951, 0xB37E, 0x8952, 0xB37F, 0x8953, 0xB382, 0x8954, 0xB386, - 0x8955, 0xB387, 0x8956, 0xB388, 0x8957, 0xB389, 0x8958, 0xB38A, - 0x8959, 0xB38B, 0x895A, 0xB38D, 0x8961, 0xB38E, 0x8962, 0xB38F, - 0x8963, 0xB391, 0x8964, 0xB392, 0x8965, 0xB393, 0x8966, 0xB395, - 0x8967, 0xB396, 0x8968, 0xB397, 0x8969, 0xB398, 0x896A, 0xB399, - 0x896B, 0xB39A, 0x896C, 0xB39B, 0x896D, 0xB39C, 0x896E, 0xB39D, - 0x896F, 0xB39E, 0x8970, 0xB39F, 0x8971, 0xB3A2, 0x8972, 0xB3A3, - 0x8973, 0xB3A4, 0x8974, 0xB3A5, 0x8975, 0xB3A6, 0x8976, 0xB3A7, - 0x8977, 0xB3A9, 0x8978, 0xB3AA, 0x8979, 0xB3AB, 0x897A, 0xB3AD, - 0x8981, 0xB3AE, 0x8982, 0xB3AF, 0x8983, 0xB3B0, 0x8984, 0xB3B1, - 0x8985, 0xB3B2, 0x8986, 0xB3B3, 0x8987, 0xB3B4, 0x8988, 0xB3B5, - 0x8989, 0xB3B6, 0x898A, 0xB3B7, 0x898B, 0xB3B8, 0x898C, 0xB3B9, - 0x898D, 0xB3BA, 0x898E, 0xB3BB, 0x898F, 0xB3BC, 0x8990, 0xB3BD, - 0x8991, 0xB3BE, 0x8992, 0xB3BF, 0x8993, 0xB3C0, 0x8994, 0xB3C1, - 0x8995, 0xB3C2, 0x8996, 0xB3C3, 0x8997, 0xB3C6, 0x8998, 0xB3C7, - 0x8999, 0xB3C9, 0x899A, 0xB3CA, 0x899B, 0xB3CD, 0x899C, 0xB3CF, - 0x899D, 0xB3D1, 0x899E, 0xB3D2, 0x899F, 0xB3D3, 0x89A0, 0xB3D6, - 0x89A1, 0xB3D8, 0x89A2, 0xB3DA, 0x89A3, 0xB3DC, 0x89A4, 0xB3DE, - 0x89A5, 0xB3DF, 0x89A6, 0xB3E1, 0x89A7, 0xB3E2, 0x89A8, 0xB3E3, - 0x89A9, 0xB3E5, 0x89AA, 0xB3E6, 0x89AB, 0xB3E7, 0x89AC, 0xB3E9, - 0x89AD, 0xB3EA, 0x89AE, 0xB3EB, 0x89AF, 0xB3EC, 0x89B0, 0xB3ED, - 0x89B1, 0xB3EE, 0x89B2, 0xB3EF, 0x89B3, 0xB3F0, 0x89B4, 0xB3F1, - 0x89B5, 0xB3F2, 0x89B6, 0xB3F3, 0x89B7, 0xB3F4, 0x89B8, 0xB3F5, - 0x89B9, 0xB3F6, 0x89BA, 0xB3F7, 0x89BB, 0xB3F8, 0x89BC, 0xB3F9, - 0x89BD, 0xB3FA, 0x89BE, 0xB3FB, 0x89BF, 0xB3FD, 0x89C0, 0xB3FE, - 0x89C1, 0xB3FF, 0x89C2, 0xB400, 0x89C3, 0xB401, 0x89C4, 0xB402, - 0x89C5, 0xB403, 0x89C6, 0xB404, 0x89C7, 0xB405, 0x89C8, 0xB406, - 0x89C9, 0xB407, 0x89CA, 0xB408, 0x89CB, 0xB409, 0x89CC, 0xB40A, - 0x89CD, 0xB40B, 0x89CE, 0xB40C, 0x89CF, 0xB40D, 0x89D0, 0xB40E, - 0x89D1, 0xB40F, 0x89D2, 0xB411, 0x89D3, 0xB412, 0x89D4, 0xB413, - 0x89D5, 0xB414, 0x89D6, 0xB415, 0x89D7, 0xB416, 0x89D8, 0xB417, - 0x89D9, 0xB419, 0x89DA, 0xB41A, 0x89DB, 0xB41B, 0x89DC, 0xB41D, - 0x89DD, 0xB41E, 0x89DE, 0xB41F, 0x89DF, 0xB421, 0x89E0, 0xB422, - 0x89E1, 0xB423, 0x89E2, 0xB424, 0x89E3, 0xB425, 0x89E4, 0xB426, - 0x89E5, 0xB427, 0x89E6, 0xB42A, 0x89E7, 0xB42C, 0x89E8, 0xB42D, - 0x89E9, 0xB42E, 0x89EA, 0xB42F, 0x89EB, 0xB430, 0x89EC, 0xB431, - 0x89ED, 0xB432, 0x89EE, 0xB433, 0x89EF, 0xB435, 0x89F0, 0xB436, - 0x89F1, 0xB437, 0x89F2, 0xB438, 0x89F3, 0xB439, 0x89F4, 0xB43A, - 0x89F5, 0xB43B, 0x89F6, 0xB43C, 0x89F7, 0xB43D, 0x89F8, 0xB43E, - 0x89F9, 0xB43F, 0x89FA, 0xB440, 0x89FB, 0xB441, 0x89FC, 0xB442, - 0x89FD, 0xB443, 0x89FE, 0xB444, 0x8A41, 0xB445, 0x8A42, 0xB446, - 0x8A43, 0xB447, 0x8A44, 0xB448, 0x8A45, 0xB449, 0x8A46, 0xB44A, - 0x8A47, 0xB44B, 0x8A48, 0xB44C, 0x8A49, 0xB44D, 0x8A4A, 0xB44E, - 0x8A4B, 0xB44F, 0x8A4C, 0xB452, 0x8A4D, 0xB453, 0x8A4E, 0xB455, - 0x8A4F, 0xB456, 0x8A50, 0xB457, 0x8A51, 0xB459, 0x8A52, 0xB45A, - 0x8A53, 0xB45B, 0x8A54, 0xB45C, 0x8A55, 0xB45D, 0x8A56, 0xB45E, - 0x8A57, 0xB45F, 0x8A58, 0xB462, 0x8A59, 0xB464, 0x8A5A, 0xB466, - 0x8A61, 0xB467, 0x8A62, 0xB468, 0x8A63, 0xB469, 0x8A64, 0xB46A, - 0x8A65, 0xB46B, 0x8A66, 0xB46D, 0x8A67, 0xB46E, 0x8A68, 0xB46F, - 0x8A69, 0xB470, 0x8A6A, 0xB471, 0x8A6B, 0xB472, 0x8A6C, 0xB473, - 0x8A6D, 0xB474, 0x8A6E, 0xB475, 0x8A6F, 0xB476, 0x8A70, 0xB477, - 0x8A71, 0xB478, 0x8A72, 0xB479, 0x8A73, 0xB47A, 0x8A74, 0xB47B, - 0x8A75, 0xB47C, 0x8A76, 0xB47D, 0x8A77, 0xB47E, 0x8A78, 0xB47F, - 0x8A79, 0xB481, 0x8A7A, 0xB482, 0x8A81, 0xB483, 0x8A82, 0xB484, - 0x8A83, 0xB485, 0x8A84, 0xB486, 0x8A85, 0xB487, 0x8A86, 0xB489, - 0x8A87, 0xB48A, 0x8A88, 0xB48B, 0x8A89, 0xB48C, 0x8A8A, 0xB48D, - 0x8A8B, 0xB48E, 0x8A8C, 0xB48F, 0x8A8D, 0xB490, 0x8A8E, 0xB491, - 0x8A8F, 0xB492, 0x8A90, 0xB493, 0x8A91, 0xB494, 0x8A92, 0xB495, - 0x8A93, 0xB496, 0x8A94, 0xB497, 0x8A95, 0xB498, 0x8A96, 0xB499, - 0x8A97, 0xB49A, 0x8A98, 0xB49B, 0x8A99, 0xB49C, 0x8A9A, 0xB49E, - 0x8A9B, 0xB49F, 0x8A9C, 0xB4A0, 0x8A9D, 0xB4A1, 0x8A9E, 0xB4A2, - 0x8A9F, 0xB4A3, 0x8AA0, 0xB4A5, 0x8AA1, 0xB4A6, 0x8AA2, 0xB4A7, - 0x8AA3, 0xB4A9, 0x8AA4, 0xB4AA, 0x8AA5, 0xB4AB, 0x8AA6, 0xB4AD, - 0x8AA7, 0xB4AE, 0x8AA8, 0xB4AF, 0x8AA9, 0xB4B0, 0x8AAA, 0xB4B1, - 0x8AAB, 0xB4B2, 0x8AAC, 0xB4B3, 0x8AAD, 0xB4B4, 0x8AAE, 0xB4B6, - 0x8AAF, 0xB4B8, 0x8AB0, 0xB4BA, 0x8AB1, 0xB4BB, 0x8AB2, 0xB4BC, - 0x8AB3, 0xB4BD, 0x8AB4, 0xB4BE, 0x8AB5, 0xB4BF, 0x8AB6, 0xB4C1, - 0x8AB7, 0xB4C2, 0x8AB8, 0xB4C3, 0x8AB9, 0xB4C5, 0x8ABA, 0xB4C6, - 0x8ABB, 0xB4C7, 0x8ABC, 0xB4C9, 0x8ABD, 0xB4CA, 0x8ABE, 0xB4CB, - 0x8ABF, 0xB4CC, 0x8AC0, 0xB4CD, 0x8AC1, 0xB4CE, 0x8AC2, 0xB4CF, - 0x8AC3, 0xB4D1, 0x8AC4, 0xB4D2, 0x8AC5, 0xB4D3, 0x8AC6, 0xB4D4, - 0x8AC7, 0xB4D6, 0x8AC8, 0xB4D7, 0x8AC9, 0xB4D8, 0x8ACA, 0xB4D9, - 0x8ACB, 0xB4DA, 0x8ACC, 0xB4DB, 0x8ACD, 0xB4DE, 0x8ACE, 0xB4DF, - 0x8ACF, 0xB4E1, 0x8AD0, 0xB4E2, 0x8AD1, 0xB4E5, 0x8AD2, 0xB4E7, - 0x8AD3, 0xB4E8, 0x8AD4, 0xB4E9, 0x8AD5, 0xB4EA, 0x8AD6, 0xB4EB, - 0x8AD7, 0xB4EE, 0x8AD8, 0xB4F0, 0x8AD9, 0xB4F2, 0x8ADA, 0xB4F3, - 0x8ADB, 0xB4F4, 0x8ADC, 0xB4F5, 0x8ADD, 0xB4F6, 0x8ADE, 0xB4F7, - 0x8ADF, 0xB4F9, 0x8AE0, 0xB4FA, 0x8AE1, 0xB4FB, 0x8AE2, 0xB4FC, - 0x8AE3, 0xB4FD, 0x8AE4, 0xB4FE, 0x8AE5, 0xB4FF, 0x8AE6, 0xB500, - 0x8AE7, 0xB501, 0x8AE8, 0xB502, 0x8AE9, 0xB503, 0x8AEA, 0xB504, - 0x8AEB, 0xB505, 0x8AEC, 0xB506, 0x8AED, 0xB507, 0x8AEE, 0xB508, - 0x8AEF, 0xB509, 0x8AF0, 0xB50A, 0x8AF1, 0xB50B, 0x8AF2, 0xB50C, - 0x8AF3, 0xB50D, 0x8AF4, 0xB50E, 0x8AF5, 0xB50F, 0x8AF6, 0xB510, - 0x8AF7, 0xB511, 0x8AF8, 0xB512, 0x8AF9, 0xB513, 0x8AFA, 0xB516, - 0x8AFB, 0xB517, 0x8AFC, 0xB519, 0x8AFD, 0xB51A, 0x8AFE, 0xB51D, - 0x8B41, 0xB51E, 0x8B42, 0xB51F, 0x8B43, 0xB520, 0x8B44, 0xB521, - 0x8B45, 0xB522, 0x8B46, 0xB523, 0x8B47, 0xB526, 0x8B48, 0xB52B, - 0x8B49, 0xB52C, 0x8B4A, 0xB52D, 0x8B4B, 0xB52E, 0x8B4C, 0xB52F, - 0x8B4D, 0xB532, 0x8B4E, 0xB533, 0x8B4F, 0xB535, 0x8B50, 0xB536, - 0x8B51, 0xB537, 0x8B52, 0xB539, 0x8B53, 0xB53A, 0x8B54, 0xB53B, - 0x8B55, 0xB53C, 0x8B56, 0xB53D, 0x8B57, 0xB53E, 0x8B58, 0xB53F, - 0x8B59, 0xB542, 0x8B5A, 0xB546, 0x8B61, 0xB547, 0x8B62, 0xB548, - 0x8B63, 0xB549, 0x8B64, 0xB54A, 0x8B65, 0xB54E, 0x8B66, 0xB54F, - 0x8B67, 0xB551, 0x8B68, 0xB552, 0x8B69, 0xB553, 0x8B6A, 0xB555, - 0x8B6B, 0xB556, 0x8B6C, 0xB557, 0x8B6D, 0xB558, 0x8B6E, 0xB559, - 0x8B6F, 0xB55A, 0x8B70, 0xB55B, 0x8B71, 0xB55E, 0x8B72, 0xB562, - 0x8B73, 0xB563, 0x8B74, 0xB564, 0x8B75, 0xB565, 0x8B76, 0xB566, - 0x8B77, 0xB567, 0x8B78, 0xB568, 0x8B79, 0xB569, 0x8B7A, 0xB56A, - 0x8B81, 0xB56B, 0x8B82, 0xB56C, 0x8B83, 0xB56D, 0x8B84, 0xB56E, - 0x8B85, 0xB56F, 0x8B86, 0xB570, 0x8B87, 0xB571, 0x8B88, 0xB572, - 0x8B89, 0xB573, 0x8B8A, 0xB574, 0x8B8B, 0xB575, 0x8B8C, 0xB576, - 0x8B8D, 0xB577, 0x8B8E, 0xB578, 0x8B8F, 0xB579, 0x8B90, 0xB57A, - 0x8B91, 0xB57B, 0x8B92, 0xB57C, 0x8B93, 0xB57D, 0x8B94, 0xB57E, - 0x8B95, 0xB57F, 0x8B96, 0xB580, 0x8B97, 0xB581, 0x8B98, 0xB582, - 0x8B99, 0xB583, 0x8B9A, 0xB584, 0x8B9B, 0xB585, 0x8B9C, 0xB586, - 0x8B9D, 0xB587, 0x8B9E, 0xB588, 0x8B9F, 0xB589, 0x8BA0, 0xB58A, - 0x8BA1, 0xB58B, 0x8BA2, 0xB58C, 0x8BA3, 0xB58D, 0x8BA4, 0xB58E, - 0x8BA5, 0xB58F, 0x8BA6, 0xB590, 0x8BA7, 0xB591, 0x8BA8, 0xB592, - 0x8BA9, 0xB593, 0x8BAA, 0xB594, 0x8BAB, 0xB595, 0x8BAC, 0xB596, - 0x8BAD, 0xB597, 0x8BAE, 0xB598, 0x8BAF, 0xB599, 0x8BB0, 0xB59A, - 0x8BB1, 0xB59B, 0x8BB2, 0xB59C, 0x8BB3, 0xB59D, 0x8BB4, 0xB59E, - 0x8BB5, 0xB59F, 0x8BB6, 0xB5A2, 0x8BB7, 0xB5A3, 0x8BB8, 0xB5A5, - 0x8BB9, 0xB5A6, 0x8BBA, 0xB5A7, 0x8BBB, 0xB5A9, 0x8BBC, 0xB5AC, - 0x8BBD, 0xB5AD, 0x8BBE, 0xB5AE, 0x8BBF, 0xB5AF, 0x8BC0, 0xB5B2, - 0x8BC1, 0xB5B6, 0x8BC2, 0xB5B7, 0x8BC3, 0xB5B8, 0x8BC4, 0xB5B9, - 0x8BC5, 0xB5BA, 0x8BC6, 0xB5BE, 0x8BC7, 0xB5BF, 0x8BC8, 0xB5C1, - 0x8BC9, 0xB5C2, 0x8BCA, 0xB5C3, 0x8BCB, 0xB5C5, 0x8BCC, 0xB5C6, - 0x8BCD, 0xB5C7, 0x8BCE, 0xB5C8, 0x8BCF, 0xB5C9, 0x8BD0, 0xB5CA, - 0x8BD1, 0xB5CB, 0x8BD2, 0xB5CE, 0x8BD3, 0xB5D2, 0x8BD4, 0xB5D3, - 0x8BD5, 0xB5D4, 0x8BD6, 0xB5D5, 0x8BD7, 0xB5D6, 0x8BD8, 0xB5D7, - 0x8BD9, 0xB5D9, 0x8BDA, 0xB5DA, 0x8BDB, 0xB5DB, 0x8BDC, 0xB5DC, - 0x8BDD, 0xB5DD, 0x8BDE, 0xB5DE, 0x8BDF, 0xB5DF, 0x8BE0, 0xB5E0, - 0x8BE1, 0xB5E1, 0x8BE2, 0xB5E2, 0x8BE3, 0xB5E3, 0x8BE4, 0xB5E4, - 0x8BE5, 0xB5E5, 0x8BE6, 0xB5E6, 0x8BE7, 0xB5E7, 0x8BE8, 0xB5E8, - 0x8BE9, 0xB5E9, 0x8BEA, 0xB5EA, 0x8BEB, 0xB5EB, 0x8BEC, 0xB5ED, - 0x8BED, 0xB5EE, 0x8BEE, 0xB5EF, 0x8BEF, 0xB5F0, 0x8BF0, 0xB5F1, - 0x8BF1, 0xB5F2, 0x8BF2, 0xB5F3, 0x8BF3, 0xB5F4, 0x8BF4, 0xB5F5, - 0x8BF5, 0xB5F6, 0x8BF6, 0xB5F7, 0x8BF7, 0xB5F8, 0x8BF8, 0xB5F9, - 0x8BF9, 0xB5FA, 0x8BFA, 0xB5FB, 0x8BFB, 0xB5FC, 0x8BFC, 0xB5FD, - 0x8BFD, 0xB5FE, 0x8BFE, 0xB5FF, 0x8C41, 0xB600, 0x8C42, 0xB601, - 0x8C43, 0xB602, 0x8C44, 0xB603, 0x8C45, 0xB604, 0x8C46, 0xB605, - 0x8C47, 0xB606, 0x8C48, 0xB607, 0x8C49, 0xB608, 0x8C4A, 0xB609, - 0x8C4B, 0xB60A, 0x8C4C, 0xB60B, 0x8C4D, 0xB60C, 0x8C4E, 0xB60D, - 0x8C4F, 0xB60E, 0x8C50, 0xB60F, 0x8C51, 0xB612, 0x8C52, 0xB613, - 0x8C53, 0xB615, 0x8C54, 0xB616, 0x8C55, 0xB617, 0x8C56, 0xB619, - 0x8C57, 0xB61A, 0x8C58, 0xB61B, 0x8C59, 0xB61C, 0x8C5A, 0xB61D, - 0x8C61, 0xB61E, 0x8C62, 0xB61F, 0x8C63, 0xB620, 0x8C64, 0xB621, - 0x8C65, 0xB622, 0x8C66, 0xB623, 0x8C67, 0xB624, 0x8C68, 0xB626, - 0x8C69, 0xB627, 0x8C6A, 0xB628, 0x8C6B, 0xB629, 0x8C6C, 0xB62A, - 0x8C6D, 0xB62B, 0x8C6E, 0xB62D, 0x8C6F, 0xB62E, 0x8C70, 0xB62F, - 0x8C71, 0xB630, 0x8C72, 0xB631, 0x8C73, 0xB632, 0x8C74, 0xB633, - 0x8C75, 0xB635, 0x8C76, 0xB636, 0x8C77, 0xB637, 0x8C78, 0xB638, - 0x8C79, 0xB639, 0x8C7A, 0xB63A, 0x8C81, 0xB63B, 0x8C82, 0xB63C, - 0x8C83, 0xB63D, 0x8C84, 0xB63E, 0x8C85, 0xB63F, 0x8C86, 0xB640, - 0x8C87, 0xB641, 0x8C88, 0xB642, 0x8C89, 0xB643, 0x8C8A, 0xB644, - 0x8C8B, 0xB645, 0x8C8C, 0xB646, 0x8C8D, 0xB647, 0x8C8E, 0xB649, - 0x8C8F, 0xB64A, 0x8C90, 0xB64B, 0x8C91, 0xB64C, 0x8C92, 0xB64D, - 0x8C93, 0xB64E, 0x8C94, 0xB64F, 0x8C95, 0xB650, 0x8C96, 0xB651, - 0x8C97, 0xB652, 0x8C98, 0xB653, 0x8C99, 0xB654, 0x8C9A, 0xB655, - 0x8C9B, 0xB656, 0x8C9C, 0xB657, 0x8C9D, 0xB658, 0x8C9E, 0xB659, - 0x8C9F, 0xB65A, 0x8CA0, 0xB65B, 0x8CA1, 0xB65C, 0x8CA2, 0xB65D, - 0x8CA3, 0xB65E, 0x8CA4, 0xB65F, 0x8CA5, 0xB660, 0x8CA6, 0xB661, - 0x8CA7, 0xB662, 0x8CA8, 0xB663, 0x8CA9, 0xB665, 0x8CAA, 0xB666, - 0x8CAB, 0xB667, 0x8CAC, 0xB669, 0x8CAD, 0xB66A, 0x8CAE, 0xB66B, - 0x8CAF, 0xB66C, 0x8CB0, 0xB66D, 0x8CB1, 0xB66E, 0x8CB2, 0xB66F, - 0x8CB3, 0xB670, 0x8CB4, 0xB671, 0x8CB5, 0xB672, 0x8CB6, 0xB673, - 0x8CB7, 0xB674, 0x8CB8, 0xB675, 0x8CB9, 0xB676, 0x8CBA, 0xB677, - 0x8CBB, 0xB678, 0x8CBC, 0xB679, 0x8CBD, 0xB67A, 0x8CBE, 0xB67B, - 0x8CBF, 0xB67C, 0x8CC0, 0xB67D, 0x8CC1, 0xB67E, 0x8CC2, 0xB67F, - 0x8CC3, 0xB680, 0x8CC4, 0xB681, 0x8CC5, 0xB682, 0x8CC6, 0xB683, - 0x8CC7, 0xB684, 0x8CC8, 0xB685, 0x8CC9, 0xB686, 0x8CCA, 0xB687, - 0x8CCB, 0xB688, 0x8CCC, 0xB689, 0x8CCD, 0xB68A, 0x8CCE, 0xB68B, - 0x8CCF, 0xB68C, 0x8CD0, 0xB68D, 0x8CD1, 0xB68E, 0x8CD2, 0xB68F, - 0x8CD3, 0xB690, 0x8CD4, 0xB691, 0x8CD5, 0xB692, 0x8CD6, 0xB693, - 0x8CD7, 0xB694, 0x8CD8, 0xB695, 0x8CD9, 0xB696, 0x8CDA, 0xB697, - 0x8CDB, 0xB698, 0x8CDC, 0xB699, 0x8CDD, 0xB69A, 0x8CDE, 0xB69B, - 0x8CDF, 0xB69E, 0x8CE0, 0xB69F, 0x8CE1, 0xB6A1, 0x8CE2, 0xB6A2, - 0x8CE3, 0xB6A3, 0x8CE4, 0xB6A5, 0x8CE5, 0xB6A6, 0x8CE6, 0xB6A7, - 0x8CE7, 0xB6A8, 0x8CE8, 0xB6A9, 0x8CE9, 0xB6AA, 0x8CEA, 0xB6AD, - 0x8CEB, 0xB6AE, 0x8CEC, 0xB6AF, 0x8CED, 0xB6B0, 0x8CEE, 0xB6B2, - 0x8CEF, 0xB6B3, 0x8CF0, 0xB6B4, 0x8CF1, 0xB6B5, 0x8CF2, 0xB6B6, - 0x8CF3, 0xB6B7, 0x8CF4, 0xB6B8, 0x8CF5, 0xB6B9, 0x8CF6, 0xB6BA, - 0x8CF7, 0xB6BB, 0x8CF8, 0xB6BC, 0x8CF9, 0xB6BD, 0x8CFA, 0xB6BE, - 0x8CFB, 0xB6BF, 0x8CFC, 0xB6C0, 0x8CFD, 0xB6C1, 0x8CFE, 0xB6C2, - 0x8D41, 0xB6C3, 0x8D42, 0xB6C4, 0x8D43, 0xB6C5, 0x8D44, 0xB6C6, - 0x8D45, 0xB6C7, 0x8D46, 0xB6C8, 0x8D47, 0xB6C9, 0x8D48, 0xB6CA, - 0x8D49, 0xB6CB, 0x8D4A, 0xB6CC, 0x8D4B, 0xB6CD, 0x8D4C, 0xB6CE, - 0x8D4D, 0xB6CF, 0x8D4E, 0xB6D0, 0x8D4F, 0xB6D1, 0x8D50, 0xB6D2, - 0x8D51, 0xB6D3, 0x8D52, 0xB6D5, 0x8D53, 0xB6D6, 0x8D54, 0xB6D7, - 0x8D55, 0xB6D8, 0x8D56, 0xB6D9, 0x8D57, 0xB6DA, 0x8D58, 0xB6DB, - 0x8D59, 0xB6DC, 0x8D5A, 0xB6DD, 0x8D61, 0xB6DE, 0x8D62, 0xB6DF, - 0x8D63, 0xB6E0, 0x8D64, 0xB6E1, 0x8D65, 0xB6E2, 0x8D66, 0xB6E3, - 0x8D67, 0xB6E4, 0x8D68, 0xB6E5, 0x8D69, 0xB6E6, 0x8D6A, 0xB6E7, - 0x8D6B, 0xB6E8, 0x8D6C, 0xB6E9, 0x8D6D, 0xB6EA, 0x8D6E, 0xB6EB, - 0x8D6F, 0xB6EC, 0x8D70, 0xB6ED, 0x8D71, 0xB6EE, 0x8D72, 0xB6EF, - 0x8D73, 0xB6F1, 0x8D74, 0xB6F2, 0x8D75, 0xB6F3, 0x8D76, 0xB6F5, - 0x8D77, 0xB6F6, 0x8D78, 0xB6F7, 0x8D79, 0xB6F9, 0x8D7A, 0xB6FA, - 0x8D81, 0xB6FB, 0x8D82, 0xB6FC, 0x8D83, 0xB6FD, 0x8D84, 0xB6FE, - 0x8D85, 0xB6FF, 0x8D86, 0xB702, 0x8D87, 0xB703, 0x8D88, 0xB704, - 0x8D89, 0xB706, 0x8D8A, 0xB707, 0x8D8B, 0xB708, 0x8D8C, 0xB709, - 0x8D8D, 0xB70A, 0x8D8E, 0xB70B, 0x8D8F, 0xB70C, 0x8D90, 0xB70D, - 0x8D91, 0xB70E, 0x8D92, 0xB70F, 0x8D93, 0xB710, 0x8D94, 0xB711, - 0x8D95, 0xB712, 0x8D96, 0xB713, 0x8D97, 0xB714, 0x8D98, 0xB715, - 0x8D99, 0xB716, 0x8D9A, 0xB717, 0x8D9B, 0xB718, 0x8D9C, 0xB719, - 0x8D9D, 0xB71A, 0x8D9E, 0xB71B, 0x8D9F, 0xB71C, 0x8DA0, 0xB71D, - 0x8DA1, 0xB71E, 0x8DA2, 0xB71F, 0x8DA3, 0xB720, 0x8DA4, 0xB721, - 0x8DA5, 0xB722, 0x8DA6, 0xB723, 0x8DA7, 0xB724, 0x8DA8, 0xB725, - 0x8DA9, 0xB726, 0x8DAA, 0xB727, 0x8DAB, 0xB72A, 0x8DAC, 0xB72B, - 0x8DAD, 0xB72D, 0x8DAE, 0xB72E, 0x8DAF, 0xB731, 0x8DB0, 0xB732, - 0x8DB1, 0xB733, 0x8DB2, 0xB734, 0x8DB3, 0xB735, 0x8DB4, 0xB736, - 0x8DB5, 0xB737, 0x8DB6, 0xB73A, 0x8DB7, 0xB73C, 0x8DB8, 0xB73D, - 0x8DB9, 0xB73E, 0x8DBA, 0xB73F, 0x8DBB, 0xB740, 0x8DBC, 0xB741, - 0x8DBD, 0xB742, 0x8DBE, 0xB743, 0x8DBF, 0xB745, 0x8DC0, 0xB746, - 0x8DC1, 0xB747, 0x8DC2, 0xB749, 0x8DC3, 0xB74A, 0x8DC4, 0xB74B, - 0x8DC5, 0xB74D, 0x8DC6, 0xB74E, 0x8DC7, 0xB74F, 0x8DC8, 0xB750, - 0x8DC9, 0xB751, 0x8DCA, 0xB752, 0x8DCB, 0xB753, 0x8DCC, 0xB756, - 0x8DCD, 0xB757, 0x8DCE, 0xB758, 0x8DCF, 0xB759, 0x8DD0, 0xB75A, - 0x8DD1, 0xB75B, 0x8DD2, 0xB75C, 0x8DD3, 0xB75D, 0x8DD4, 0xB75E, - 0x8DD5, 0xB75F, 0x8DD6, 0xB761, 0x8DD7, 0xB762, 0x8DD8, 0xB763, - 0x8DD9, 0xB765, 0x8DDA, 0xB766, 0x8DDB, 0xB767, 0x8DDC, 0xB769, - 0x8DDD, 0xB76A, 0x8DDE, 0xB76B, 0x8DDF, 0xB76C, 0x8DE0, 0xB76D, - 0x8DE1, 0xB76E, 0x8DE2, 0xB76F, 0x8DE3, 0xB772, 0x8DE4, 0xB774, - 0x8DE5, 0xB776, 0x8DE6, 0xB777, 0x8DE7, 0xB778, 0x8DE8, 0xB779, - 0x8DE9, 0xB77A, 0x8DEA, 0xB77B, 0x8DEB, 0xB77E, 0x8DEC, 0xB77F, - 0x8DED, 0xB781, 0x8DEE, 0xB782, 0x8DEF, 0xB783, 0x8DF0, 0xB785, - 0x8DF1, 0xB786, 0x8DF2, 0xB787, 0x8DF3, 0xB788, 0x8DF4, 0xB789, - 0x8DF5, 0xB78A, 0x8DF6, 0xB78B, 0x8DF7, 0xB78E, 0x8DF8, 0xB793, - 0x8DF9, 0xB794, 0x8DFA, 0xB795, 0x8DFB, 0xB79A, 0x8DFC, 0xB79B, - 0x8DFD, 0xB79D, 0x8DFE, 0xB79E, 0x8E41, 0xB79F, 0x8E42, 0xB7A1, - 0x8E43, 0xB7A2, 0x8E44, 0xB7A3, 0x8E45, 0xB7A4, 0x8E46, 0xB7A5, - 0x8E47, 0xB7A6, 0x8E48, 0xB7A7, 0x8E49, 0xB7AA, 0x8E4A, 0xB7AE, - 0x8E4B, 0xB7AF, 0x8E4C, 0xB7B0, 0x8E4D, 0xB7B1, 0x8E4E, 0xB7B2, - 0x8E4F, 0xB7B3, 0x8E50, 0xB7B6, 0x8E51, 0xB7B7, 0x8E52, 0xB7B9, - 0x8E53, 0xB7BA, 0x8E54, 0xB7BB, 0x8E55, 0xB7BC, 0x8E56, 0xB7BD, - 0x8E57, 0xB7BE, 0x8E58, 0xB7BF, 0x8E59, 0xB7C0, 0x8E5A, 0xB7C1, - 0x8E61, 0xB7C2, 0x8E62, 0xB7C3, 0x8E63, 0xB7C4, 0x8E64, 0xB7C5, - 0x8E65, 0xB7C6, 0x8E66, 0xB7C8, 0x8E67, 0xB7CA, 0x8E68, 0xB7CB, - 0x8E69, 0xB7CC, 0x8E6A, 0xB7CD, 0x8E6B, 0xB7CE, 0x8E6C, 0xB7CF, - 0x8E6D, 0xB7D0, 0x8E6E, 0xB7D1, 0x8E6F, 0xB7D2, 0x8E70, 0xB7D3, - 0x8E71, 0xB7D4, 0x8E72, 0xB7D5, 0x8E73, 0xB7D6, 0x8E74, 0xB7D7, - 0x8E75, 0xB7D8, 0x8E76, 0xB7D9, 0x8E77, 0xB7DA, 0x8E78, 0xB7DB, - 0x8E79, 0xB7DC, 0x8E7A, 0xB7DD, 0x8E81, 0xB7DE, 0x8E82, 0xB7DF, - 0x8E83, 0xB7E0, 0x8E84, 0xB7E1, 0x8E85, 0xB7E2, 0x8E86, 0xB7E3, - 0x8E87, 0xB7E4, 0x8E88, 0xB7E5, 0x8E89, 0xB7E6, 0x8E8A, 0xB7E7, - 0x8E8B, 0xB7E8, 0x8E8C, 0xB7E9, 0x8E8D, 0xB7EA, 0x8E8E, 0xB7EB, - 0x8E8F, 0xB7EE, 0x8E90, 0xB7EF, 0x8E91, 0xB7F1, 0x8E92, 0xB7F2, - 0x8E93, 0xB7F3, 0x8E94, 0xB7F5, 0x8E95, 0xB7F6, 0x8E96, 0xB7F7, - 0x8E97, 0xB7F8, 0x8E98, 0xB7F9, 0x8E99, 0xB7FA, 0x8E9A, 0xB7FB, - 0x8E9B, 0xB7FE, 0x8E9C, 0xB802, 0x8E9D, 0xB803, 0x8E9E, 0xB804, - 0x8E9F, 0xB805, 0x8EA0, 0xB806, 0x8EA1, 0xB80A, 0x8EA2, 0xB80B, - 0x8EA3, 0xB80D, 0x8EA4, 0xB80E, 0x8EA5, 0xB80F, 0x8EA6, 0xB811, - 0x8EA7, 0xB812, 0x8EA8, 0xB813, 0x8EA9, 0xB814, 0x8EAA, 0xB815, - 0x8EAB, 0xB816, 0x8EAC, 0xB817, 0x8EAD, 0xB81A, 0x8EAE, 0xB81C, - 0x8EAF, 0xB81E, 0x8EB0, 0xB81F, 0x8EB1, 0xB820, 0x8EB2, 0xB821, - 0x8EB3, 0xB822, 0x8EB4, 0xB823, 0x8EB5, 0xB826, 0x8EB6, 0xB827, - 0x8EB7, 0xB829, 0x8EB8, 0xB82A, 0x8EB9, 0xB82B, 0x8EBA, 0xB82D, - 0x8EBB, 0xB82E, 0x8EBC, 0xB82F, 0x8EBD, 0xB830, 0x8EBE, 0xB831, - 0x8EBF, 0xB832, 0x8EC0, 0xB833, 0x8EC1, 0xB836, 0x8EC2, 0xB83A, - 0x8EC3, 0xB83B, 0x8EC4, 0xB83C, 0x8EC5, 0xB83D, 0x8EC6, 0xB83E, - 0x8EC7, 0xB83F, 0x8EC8, 0xB841, 0x8EC9, 0xB842, 0x8ECA, 0xB843, - 0x8ECB, 0xB845, 0x8ECC, 0xB846, 0x8ECD, 0xB847, 0x8ECE, 0xB848, - 0x8ECF, 0xB849, 0x8ED0, 0xB84A, 0x8ED1, 0xB84B, 0x8ED2, 0xB84C, - 0x8ED3, 0xB84D, 0x8ED4, 0xB84E, 0x8ED5, 0xB84F, 0x8ED6, 0xB850, - 0x8ED7, 0xB852, 0x8ED8, 0xB854, 0x8ED9, 0xB855, 0x8EDA, 0xB856, - 0x8EDB, 0xB857, 0x8EDC, 0xB858, 0x8EDD, 0xB859, 0x8EDE, 0xB85A, - 0x8EDF, 0xB85B, 0x8EE0, 0xB85E, 0x8EE1, 0xB85F, 0x8EE2, 0xB861, - 0x8EE3, 0xB862, 0x8EE4, 0xB863, 0x8EE5, 0xB865, 0x8EE6, 0xB866, - 0x8EE7, 0xB867, 0x8EE8, 0xB868, 0x8EE9, 0xB869, 0x8EEA, 0xB86A, - 0x8EEB, 0xB86B, 0x8EEC, 0xB86E, 0x8EED, 0xB870, 0x8EEE, 0xB872, - 0x8EEF, 0xB873, 0x8EF0, 0xB874, 0x8EF1, 0xB875, 0x8EF2, 0xB876, - 0x8EF3, 0xB877, 0x8EF4, 0xB879, 0x8EF5, 0xB87A, 0x8EF6, 0xB87B, - 0x8EF7, 0xB87D, 0x8EF8, 0xB87E, 0x8EF9, 0xB87F, 0x8EFA, 0xB880, - 0x8EFB, 0xB881, 0x8EFC, 0xB882, 0x8EFD, 0xB883, 0x8EFE, 0xB884, - 0x8F41, 0xB885, 0x8F42, 0xB886, 0x8F43, 0xB887, 0x8F44, 0xB888, - 0x8F45, 0xB889, 0x8F46, 0xB88A, 0x8F47, 0xB88B, 0x8F48, 0xB88C, - 0x8F49, 0xB88E, 0x8F4A, 0xB88F, 0x8F4B, 0xB890, 0x8F4C, 0xB891, - 0x8F4D, 0xB892, 0x8F4E, 0xB893, 0x8F4F, 0xB894, 0x8F50, 0xB895, - 0x8F51, 0xB896, 0x8F52, 0xB897, 0x8F53, 0xB898, 0x8F54, 0xB899, - 0x8F55, 0xB89A, 0x8F56, 0xB89B, 0x8F57, 0xB89C, 0x8F58, 0xB89D, - 0x8F59, 0xB89E, 0x8F5A, 0xB89F, 0x8F61, 0xB8A0, 0x8F62, 0xB8A1, - 0x8F63, 0xB8A2, 0x8F64, 0xB8A3, 0x8F65, 0xB8A4, 0x8F66, 0xB8A5, - 0x8F67, 0xB8A6, 0x8F68, 0xB8A7, 0x8F69, 0xB8A9, 0x8F6A, 0xB8AA, - 0x8F6B, 0xB8AB, 0x8F6C, 0xB8AC, 0x8F6D, 0xB8AD, 0x8F6E, 0xB8AE, - 0x8F6F, 0xB8AF, 0x8F70, 0xB8B1, 0x8F71, 0xB8B2, 0x8F72, 0xB8B3, - 0x8F73, 0xB8B5, 0x8F74, 0xB8B6, 0x8F75, 0xB8B7, 0x8F76, 0xB8B9, - 0x8F77, 0xB8BA, 0x8F78, 0xB8BB, 0x8F79, 0xB8BC, 0x8F7A, 0xB8BD, - 0x8F81, 0xB8BE, 0x8F82, 0xB8BF, 0x8F83, 0xB8C2, 0x8F84, 0xB8C4, - 0x8F85, 0xB8C6, 0x8F86, 0xB8C7, 0x8F87, 0xB8C8, 0x8F88, 0xB8C9, - 0x8F89, 0xB8CA, 0x8F8A, 0xB8CB, 0x8F8B, 0xB8CD, 0x8F8C, 0xB8CE, - 0x8F8D, 0xB8CF, 0x8F8E, 0xB8D1, 0x8F8F, 0xB8D2, 0x8F90, 0xB8D3, - 0x8F91, 0xB8D5, 0x8F92, 0xB8D6, 0x8F93, 0xB8D7, 0x8F94, 0xB8D8, - 0x8F95, 0xB8D9, 0x8F96, 0xB8DA, 0x8F97, 0xB8DB, 0x8F98, 0xB8DC, - 0x8F99, 0xB8DE, 0x8F9A, 0xB8E0, 0x8F9B, 0xB8E2, 0x8F9C, 0xB8E3, - 0x8F9D, 0xB8E4, 0x8F9E, 0xB8E5, 0x8F9F, 0xB8E6, 0x8FA0, 0xB8E7, - 0x8FA1, 0xB8EA, 0x8FA2, 0xB8EB, 0x8FA3, 0xB8ED, 0x8FA4, 0xB8EE, - 0x8FA5, 0xB8EF, 0x8FA6, 0xB8F1, 0x8FA7, 0xB8F2, 0x8FA8, 0xB8F3, - 0x8FA9, 0xB8F4, 0x8FAA, 0xB8F5, 0x8FAB, 0xB8F6, 0x8FAC, 0xB8F7, - 0x8FAD, 0xB8FA, 0x8FAE, 0xB8FC, 0x8FAF, 0xB8FE, 0x8FB0, 0xB8FF, - 0x8FB1, 0xB900, 0x8FB2, 0xB901, 0x8FB3, 0xB902, 0x8FB4, 0xB903, - 0x8FB5, 0xB905, 0x8FB6, 0xB906, 0x8FB7, 0xB907, 0x8FB8, 0xB908, - 0x8FB9, 0xB909, 0x8FBA, 0xB90A, 0x8FBB, 0xB90B, 0x8FBC, 0xB90C, - 0x8FBD, 0xB90D, 0x8FBE, 0xB90E, 0x8FBF, 0xB90F, 0x8FC0, 0xB910, - 0x8FC1, 0xB911, 0x8FC2, 0xB912, 0x8FC3, 0xB913, 0x8FC4, 0xB914, - 0x8FC5, 0xB915, 0x8FC6, 0xB916, 0x8FC7, 0xB917, 0x8FC8, 0xB919, - 0x8FC9, 0xB91A, 0x8FCA, 0xB91B, 0x8FCB, 0xB91C, 0x8FCC, 0xB91D, - 0x8FCD, 0xB91E, 0x8FCE, 0xB91F, 0x8FCF, 0xB921, 0x8FD0, 0xB922, - 0x8FD1, 0xB923, 0x8FD2, 0xB924, 0x8FD3, 0xB925, 0x8FD4, 0xB926, - 0x8FD5, 0xB927, 0x8FD6, 0xB928, 0x8FD7, 0xB929, 0x8FD8, 0xB92A, - 0x8FD9, 0xB92B, 0x8FDA, 0xB92C, 0x8FDB, 0xB92D, 0x8FDC, 0xB92E, - 0x8FDD, 0xB92F, 0x8FDE, 0xB930, 0x8FDF, 0xB931, 0x8FE0, 0xB932, - 0x8FE1, 0xB933, 0x8FE2, 0xB934, 0x8FE3, 0xB935, 0x8FE4, 0xB936, - 0x8FE5, 0xB937, 0x8FE6, 0xB938, 0x8FE7, 0xB939, 0x8FE8, 0xB93A, - 0x8FE9, 0xB93B, 0x8FEA, 0xB93E, 0x8FEB, 0xB93F, 0x8FEC, 0xB941, - 0x8FED, 0xB942, 0x8FEE, 0xB943, 0x8FEF, 0xB945, 0x8FF0, 0xB946, - 0x8FF1, 0xB947, 0x8FF2, 0xB948, 0x8FF3, 0xB949, 0x8FF4, 0xB94A, - 0x8FF5, 0xB94B, 0x8FF6, 0xB94D, 0x8FF7, 0xB94E, 0x8FF8, 0xB950, - 0x8FF9, 0xB952, 0x8FFA, 0xB953, 0x8FFB, 0xB954, 0x8FFC, 0xB955, - 0x8FFD, 0xB956, 0x8FFE, 0xB957, 0x9041, 0xB95A, 0x9042, 0xB95B, - 0x9043, 0xB95D, 0x9044, 0xB95E, 0x9045, 0xB95F, 0x9046, 0xB961, - 0x9047, 0xB962, 0x9048, 0xB963, 0x9049, 0xB964, 0x904A, 0xB965, - 0x904B, 0xB966, 0x904C, 0xB967, 0x904D, 0xB96A, 0x904E, 0xB96C, - 0x904F, 0xB96E, 0x9050, 0xB96F, 0x9051, 0xB970, 0x9052, 0xB971, - 0x9053, 0xB972, 0x9054, 0xB973, 0x9055, 0xB976, 0x9056, 0xB977, - 0x9057, 0xB979, 0x9058, 0xB97A, 0x9059, 0xB97B, 0x905A, 0xB97D, - 0x9061, 0xB97E, 0x9062, 0xB97F, 0x9063, 0xB980, 0x9064, 0xB981, - 0x9065, 0xB982, 0x9066, 0xB983, 0x9067, 0xB986, 0x9068, 0xB988, - 0x9069, 0xB98B, 0x906A, 0xB98C, 0x906B, 0xB98F, 0x906C, 0xB990, - 0x906D, 0xB991, 0x906E, 0xB992, 0x906F, 0xB993, 0x9070, 0xB994, - 0x9071, 0xB995, 0x9072, 0xB996, 0x9073, 0xB997, 0x9074, 0xB998, - 0x9075, 0xB999, 0x9076, 0xB99A, 0x9077, 0xB99B, 0x9078, 0xB99C, - 0x9079, 0xB99D, 0x907A, 0xB99E, 0x9081, 0xB99F, 0x9082, 0xB9A0, - 0x9083, 0xB9A1, 0x9084, 0xB9A2, 0x9085, 0xB9A3, 0x9086, 0xB9A4, - 0x9087, 0xB9A5, 0x9088, 0xB9A6, 0x9089, 0xB9A7, 0x908A, 0xB9A8, - 0x908B, 0xB9A9, 0x908C, 0xB9AA, 0x908D, 0xB9AB, 0x908E, 0xB9AE, - 0x908F, 0xB9AF, 0x9090, 0xB9B1, 0x9091, 0xB9B2, 0x9092, 0xB9B3, - 0x9093, 0xB9B5, 0x9094, 0xB9B6, 0x9095, 0xB9B7, 0x9096, 0xB9B8, - 0x9097, 0xB9B9, 0x9098, 0xB9BA, 0x9099, 0xB9BB, 0x909A, 0xB9BE, - 0x909B, 0xB9C0, 0x909C, 0xB9C2, 0x909D, 0xB9C3, 0x909E, 0xB9C4, - 0x909F, 0xB9C5, 0x90A0, 0xB9C6, 0x90A1, 0xB9C7, 0x90A2, 0xB9CA, - 0x90A3, 0xB9CB, 0x90A4, 0xB9CD, 0x90A5, 0xB9D3, 0x90A6, 0xB9D4, - 0x90A7, 0xB9D5, 0x90A8, 0xB9D6, 0x90A9, 0xB9D7, 0x90AA, 0xB9DA, - 0x90AB, 0xB9DC, 0x90AC, 0xB9DF, 0x90AD, 0xB9E0, 0x90AE, 0xB9E2, - 0x90AF, 0xB9E6, 0x90B0, 0xB9E7, 0x90B1, 0xB9E9, 0x90B2, 0xB9EA, - 0x90B3, 0xB9EB, 0x90B4, 0xB9ED, 0x90B5, 0xB9EE, 0x90B6, 0xB9EF, - 0x90B7, 0xB9F0, 0x90B8, 0xB9F1, 0x90B9, 0xB9F2, 0x90BA, 0xB9F3, - 0x90BB, 0xB9F6, 0x90BC, 0xB9FB, 0x90BD, 0xB9FC, 0x90BE, 0xB9FD, - 0x90BF, 0xB9FE, 0x90C0, 0xB9FF, 0x90C1, 0xBA02, 0x90C2, 0xBA03, - 0x90C3, 0xBA04, 0x90C4, 0xBA05, 0x90C5, 0xBA06, 0x90C6, 0xBA07, - 0x90C7, 0xBA09, 0x90C8, 0xBA0A, 0x90C9, 0xBA0B, 0x90CA, 0xBA0C, - 0x90CB, 0xBA0D, 0x90CC, 0xBA0E, 0x90CD, 0xBA0F, 0x90CE, 0xBA10, - 0x90CF, 0xBA11, 0x90D0, 0xBA12, 0x90D1, 0xBA13, 0x90D2, 0xBA14, - 0x90D3, 0xBA16, 0x90D4, 0xBA17, 0x90D5, 0xBA18, 0x90D6, 0xBA19, - 0x90D7, 0xBA1A, 0x90D8, 0xBA1B, 0x90D9, 0xBA1C, 0x90DA, 0xBA1D, - 0x90DB, 0xBA1E, 0x90DC, 0xBA1F, 0x90DD, 0xBA20, 0x90DE, 0xBA21, - 0x90DF, 0xBA22, 0x90E0, 0xBA23, 0x90E1, 0xBA24, 0x90E2, 0xBA25, - 0x90E3, 0xBA26, 0x90E4, 0xBA27, 0x90E5, 0xBA28, 0x90E6, 0xBA29, - 0x90E7, 0xBA2A, 0x90E8, 0xBA2B, 0x90E9, 0xBA2C, 0x90EA, 0xBA2D, - 0x90EB, 0xBA2E, 0x90EC, 0xBA2F, 0x90ED, 0xBA30, 0x90EE, 0xBA31, - 0x90EF, 0xBA32, 0x90F0, 0xBA33, 0x90F1, 0xBA34, 0x90F2, 0xBA35, - 0x90F3, 0xBA36, 0x90F4, 0xBA37, 0x90F5, 0xBA3A, 0x90F6, 0xBA3B, - 0x90F7, 0xBA3D, 0x90F8, 0xBA3E, 0x90F9, 0xBA3F, 0x90FA, 0xBA41, - 0x90FB, 0xBA43, 0x90FC, 0xBA44, 0x90FD, 0xBA45, 0x90FE, 0xBA46, - 0x9141, 0xBA47, 0x9142, 0xBA4A, 0x9143, 0xBA4C, 0x9144, 0xBA4F, - 0x9145, 0xBA50, 0x9146, 0xBA51, 0x9147, 0xBA52, 0x9148, 0xBA56, - 0x9149, 0xBA57, 0x914A, 0xBA59, 0x914B, 0xBA5A, 0x914C, 0xBA5B, - 0x914D, 0xBA5D, 0x914E, 0xBA5E, 0x914F, 0xBA5F, 0x9150, 0xBA60, - 0x9151, 0xBA61, 0x9152, 0xBA62, 0x9153, 0xBA63, 0x9154, 0xBA66, - 0x9155, 0xBA6A, 0x9156, 0xBA6B, 0x9157, 0xBA6C, 0x9158, 0xBA6D, - 0x9159, 0xBA6E, 0x915A, 0xBA6F, 0x9161, 0xBA72, 0x9162, 0xBA73, - 0x9163, 0xBA75, 0x9164, 0xBA76, 0x9165, 0xBA77, 0x9166, 0xBA79, - 0x9167, 0xBA7A, 0x9168, 0xBA7B, 0x9169, 0xBA7C, 0x916A, 0xBA7D, - 0x916B, 0xBA7E, 0x916C, 0xBA7F, 0x916D, 0xBA80, 0x916E, 0xBA81, - 0x916F, 0xBA82, 0x9170, 0xBA86, 0x9171, 0xBA88, 0x9172, 0xBA89, - 0x9173, 0xBA8A, 0x9174, 0xBA8B, 0x9175, 0xBA8D, 0x9176, 0xBA8E, - 0x9177, 0xBA8F, 0x9178, 0xBA90, 0x9179, 0xBA91, 0x917A, 0xBA92, - 0x9181, 0xBA93, 0x9182, 0xBA94, 0x9183, 0xBA95, 0x9184, 0xBA96, - 0x9185, 0xBA97, 0x9186, 0xBA98, 0x9187, 0xBA99, 0x9188, 0xBA9A, - 0x9189, 0xBA9B, 0x918A, 0xBA9C, 0x918B, 0xBA9D, 0x918C, 0xBA9E, - 0x918D, 0xBA9F, 0x918E, 0xBAA0, 0x918F, 0xBAA1, 0x9190, 0xBAA2, - 0x9191, 0xBAA3, 0x9192, 0xBAA4, 0x9193, 0xBAA5, 0x9194, 0xBAA6, - 0x9195, 0xBAA7, 0x9196, 0xBAAA, 0x9197, 0xBAAD, 0x9198, 0xBAAE, - 0x9199, 0xBAAF, 0x919A, 0xBAB1, 0x919B, 0xBAB3, 0x919C, 0xBAB4, - 0x919D, 0xBAB5, 0x919E, 0xBAB6, 0x919F, 0xBAB7, 0x91A0, 0xBABA, - 0x91A1, 0xBABC, 0x91A2, 0xBABE, 0x91A3, 0xBABF, 0x91A4, 0xBAC0, - 0x91A5, 0xBAC1, 0x91A6, 0xBAC2, 0x91A7, 0xBAC3, 0x91A8, 0xBAC5, - 0x91A9, 0xBAC6, 0x91AA, 0xBAC7, 0x91AB, 0xBAC9, 0x91AC, 0xBACA, - 0x91AD, 0xBACB, 0x91AE, 0xBACC, 0x91AF, 0xBACD, 0x91B0, 0xBACE, - 0x91B1, 0xBACF, 0x91B2, 0xBAD0, 0x91B3, 0xBAD1, 0x91B4, 0xBAD2, - 0x91B5, 0xBAD3, 0x91B6, 0xBAD4, 0x91B7, 0xBAD5, 0x91B8, 0xBAD6, - 0x91B9, 0xBAD7, 0x91BA, 0xBADA, 0x91BB, 0xBADB, 0x91BC, 0xBADC, - 0x91BD, 0xBADD, 0x91BE, 0xBADE, 0x91BF, 0xBADF, 0x91C0, 0xBAE0, - 0x91C1, 0xBAE1, 0x91C2, 0xBAE2, 0x91C3, 0xBAE3, 0x91C4, 0xBAE4, - 0x91C5, 0xBAE5, 0x91C6, 0xBAE6, 0x91C7, 0xBAE7, 0x91C8, 0xBAE8, - 0x91C9, 0xBAE9, 0x91CA, 0xBAEA, 0x91CB, 0xBAEB, 0x91CC, 0xBAEC, - 0x91CD, 0xBAED, 0x91CE, 0xBAEE, 0x91CF, 0xBAEF, 0x91D0, 0xBAF0, - 0x91D1, 0xBAF1, 0x91D2, 0xBAF2, 0x91D3, 0xBAF3, 0x91D4, 0xBAF4, - 0x91D5, 0xBAF5, 0x91D6, 0xBAF6, 0x91D7, 0xBAF7, 0x91D8, 0xBAF8, - 0x91D9, 0xBAF9, 0x91DA, 0xBAFA, 0x91DB, 0xBAFB, 0x91DC, 0xBAFD, - 0x91DD, 0xBAFE, 0x91DE, 0xBAFF, 0x91DF, 0xBB01, 0x91E0, 0xBB02, - 0x91E1, 0xBB03, 0x91E2, 0xBB05, 0x91E3, 0xBB06, 0x91E4, 0xBB07, - 0x91E5, 0xBB08, 0x91E6, 0xBB09, 0x91E7, 0xBB0A, 0x91E8, 0xBB0B, - 0x91E9, 0xBB0C, 0x91EA, 0xBB0E, 0x91EB, 0xBB10, 0x91EC, 0xBB12, - 0x91ED, 0xBB13, 0x91EE, 0xBB14, 0x91EF, 0xBB15, 0x91F0, 0xBB16, - 0x91F1, 0xBB17, 0x91F2, 0xBB19, 0x91F3, 0xBB1A, 0x91F4, 0xBB1B, - 0x91F5, 0xBB1D, 0x91F6, 0xBB1E, 0x91F7, 0xBB1F, 0x91F8, 0xBB21, - 0x91F9, 0xBB22, 0x91FA, 0xBB23, 0x91FB, 0xBB24, 0x91FC, 0xBB25, - 0x91FD, 0xBB26, 0x91FE, 0xBB27, 0x9241, 0xBB28, 0x9242, 0xBB2A, - 0x9243, 0xBB2C, 0x9244, 0xBB2D, 0x9245, 0xBB2E, 0x9246, 0xBB2F, - 0x9247, 0xBB30, 0x9248, 0xBB31, 0x9249, 0xBB32, 0x924A, 0xBB33, - 0x924B, 0xBB37, 0x924C, 0xBB39, 0x924D, 0xBB3A, 0x924E, 0xBB3F, - 0x924F, 0xBB40, 0x9250, 0xBB41, 0x9251, 0xBB42, 0x9252, 0xBB43, - 0x9253, 0xBB46, 0x9254, 0xBB48, 0x9255, 0xBB4A, 0x9256, 0xBB4B, - 0x9257, 0xBB4C, 0x9258, 0xBB4E, 0x9259, 0xBB51, 0x925A, 0xBB52, - 0x9261, 0xBB53, 0x9262, 0xBB55, 0x9263, 0xBB56, 0x9264, 0xBB57, - 0x9265, 0xBB59, 0x9266, 0xBB5A, 0x9267, 0xBB5B, 0x9268, 0xBB5C, - 0x9269, 0xBB5D, 0x926A, 0xBB5E, 0x926B, 0xBB5F, 0x926C, 0xBB60, - 0x926D, 0xBB62, 0x926E, 0xBB64, 0x926F, 0xBB65, 0x9270, 0xBB66, - 0x9271, 0xBB67, 0x9272, 0xBB68, 0x9273, 0xBB69, 0x9274, 0xBB6A, - 0x9275, 0xBB6B, 0x9276, 0xBB6D, 0x9277, 0xBB6E, 0x9278, 0xBB6F, - 0x9279, 0xBB70, 0x927A, 0xBB71, 0x9281, 0xBB72, 0x9282, 0xBB73, - 0x9283, 0xBB74, 0x9284, 0xBB75, 0x9285, 0xBB76, 0x9286, 0xBB77, - 0x9287, 0xBB78, 0x9288, 0xBB79, 0x9289, 0xBB7A, 0x928A, 0xBB7B, - 0x928B, 0xBB7C, 0x928C, 0xBB7D, 0x928D, 0xBB7E, 0x928E, 0xBB7F, - 0x928F, 0xBB80, 0x9290, 0xBB81, 0x9291, 0xBB82, 0x9292, 0xBB83, - 0x9293, 0xBB84, 0x9294, 0xBB85, 0x9295, 0xBB86, 0x9296, 0xBB87, - 0x9297, 0xBB89, 0x9298, 0xBB8A, 0x9299, 0xBB8B, 0x929A, 0xBB8D, - 0x929B, 0xBB8E, 0x929C, 0xBB8F, 0x929D, 0xBB91, 0x929E, 0xBB92, - 0x929F, 0xBB93, 0x92A0, 0xBB94, 0x92A1, 0xBB95, 0x92A2, 0xBB96, - 0x92A3, 0xBB97, 0x92A4, 0xBB98, 0x92A5, 0xBB99, 0x92A6, 0xBB9A, - 0x92A7, 0xBB9B, 0x92A8, 0xBB9C, 0x92A9, 0xBB9D, 0x92AA, 0xBB9E, - 0x92AB, 0xBB9F, 0x92AC, 0xBBA0, 0x92AD, 0xBBA1, 0x92AE, 0xBBA2, - 0x92AF, 0xBBA3, 0x92B0, 0xBBA5, 0x92B1, 0xBBA6, 0x92B2, 0xBBA7, - 0x92B3, 0xBBA9, 0x92B4, 0xBBAA, 0x92B5, 0xBBAB, 0x92B6, 0xBBAD, - 0x92B7, 0xBBAE, 0x92B8, 0xBBAF, 0x92B9, 0xBBB0, 0x92BA, 0xBBB1, - 0x92BB, 0xBBB2, 0x92BC, 0xBBB3, 0x92BD, 0xBBB5, 0x92BE, 0xBBB6, - 0x92BF, 0xBBB8, 0x92C0, 0xBBB9, 0x92C1, 0xBBBA, 0x92C2, 0xBBBB, - 0x92C3, 0xBBBC, 0x92C4, 0xBBBD, 0x92C5, 0xBBBE, 0x92C6, 0xBBBF, - 0x92C7, 0xBBC1, 0x92C8, 0xBBC2, 0x92C9, 0xBBC3, 0x92CA, 0xBBC5, - 0x92CB, 0xBBC6, 0x92CC, 0xBBC7, 0x92CD, 0xBBC9, 0x92CE, 0xBBCA, - 0x92CF, 0xBBCB, 0x92D0, 0xBBCC, 0x92D1, 0xBBCD, 0x92D2, 0xBBCE, - 0x92D3, 0xBBCF, 0x92D4, 0xBBD1, 0x92D5, 0xBBD2, 0x92D6, 0xBBD4, - 0x92D7, 0xBBD5, 0x92D8, 0xBBD6, 0x92D9, 0xBBD7, 0x92DA, 0xBBD8, - 0x92DB, 0xBBD9, 0x92DC, 0xBBDA, 0x92DD, 0xBBDB, 0x92DE, 0xBBDC, - 0x92DF, 0xBBDD, 0x92E0, 0xBBDE, 0x92E1, 0xBBDF, 0x92E2, 0xBBE0, - 0x92E3, 0xBBE1, 0x92E4, 0xBBE2, 0x92E5, 0xBBE3, 0x92E6, 0xBBE4, - 0x92E7, 0xBBE5, 0x92E8, 0xBBE6, 0x92E9, 0xBBE7, 0x92EA, 0xBBE8, - 0x92EB, 0xBBE9, 0x92EC, 0xBBEA, 0x92ED, 0xBBEB, 0x92EE, 0xBBEC, - 0x92EF, 0xBBED, 0x92F0, 0xBBEE, 0x92F1, 0xBBEF, 0x92F2, 0xBBF0, - 0x92F3, 0xBBF1, 0x92F4, 0xBBF2, 0x92F5, 0xBBF3, 0x92F6, 0xBBF4, - 0x92F7, 0xBBF5, 0x92F8, 0xBBF6, 0x92F9, 0xBBF7, 0x92FA, 0xBBFA, - 0x92FB, 0xBBFB, 0x92FC, 0xBBFD, 0x92FD, 0xBBFE, 0x92FE, 0xBC01, - 0x9341, 0xBC03, 0x9342, 0xBC04, 0x9343, 0xBC05, 0x9344, 0xBC06, - 0x9345, 0xBC07, 0x9346, 0xBC0A, 0x9347, 0xBC0E, 0x9348, 0xBC10, - 0x9349, 0xBC12, 0x934A, 0xBC13, 0x934B, 0xBC19, 0x934C, 0xBC1A, - 0x934D, 0xBC20, 0x934E, 0xBC21, 0x934F, 0xBC22, 0x9350, 0xBC23, - 0x9351, 0xBC26, 0x9352, 0xBC28, 0x9353, 0xBC2A, 0x9354, 0xBC2B, - 0x9355, 0xBC2C, 0x9356, 0xBC2E, 0x9357, 0xBC2F, 0x9358, 0xBC32, - 0x9359, 0xBC33, 0x935A, 0xBC35, 0x9361, 0xBC36, 0x9362, 0xBC37, - 0x9363, 0xBC39, 0x9364, 0xBC3A, 0x9365, 0xBC3B, 0x9366, 0xBC3C, - 0x9367, 0xBC3D, 0x9368, 0xBC3E, 0x9369, 0xBC3F, 0x936A, 0xBC42, - 0x936B, 0xBC46, 0x936C, 0xBC47, 0x936D, 0xBC48, 0x936E, 0xBC4A, - 0x936F, 0xBC4B, 0x9370, 0xBC4E, 0x9371, 0xBC4F, 0x9372, 0xBC51, - 0x9373, 0xBC52, 0x9374, 0xBC53, 0x9375, 0xBC54, 0x9376, 0xBC55, - 0x9377, 0xBC56, 0x9378, 0xBC57, 0x9379, 0xBC58, 0x937A, 0xBC59, - 0x9381, 0xBC5A, 0x9382, 0xBC5B, 0x9383, 0xBC5C, 0x9384, 0xBC5E, - 0x9385, 0xBC5F, 0x9386, 0xBC60, 0x9387, 0xBC61, 0x9388, 0xBC62, - 0x9389, 0xBC63, 0x938A, 0xBC64, 0x938B, 0xBC65, 0x938C, 0xBC66, - 0x938D, 0xBC67, 0x938E, 0xBC68, 0x938F, 0xBC69, 0x9390, 0xBC6A, - 0x9391, 0xBC6B, 0x9392, 0xBC6C, 0x9393, 0xBC6D, 0x9394, 0xBC6E, - 0x9395, 0xBC6F, 0x9396, 0xBC70, 0x9397, 0xBC71, 0x9398, 0xBC72, - 0x9399, 0xBC73, 0x939A, 0xBC74, 0x939B, 0xBC75, 0x939C, 0xBC76, - 0x939D, 0xBC77, 0x939E, 0xBC78, 0x939F, 0xBC79, 0x93A0, 0xBC7A, - 0x93A1, 0xBC7B, 0x93A2, 0xBC7C, 0x93A3, 0xBC7D, 0x93A4, 0xBC7E, - 0x93A5, 0xBC7F, 0x93A6, 0xBC80, 0x93A7, 0xBC81, 0x93A8, 0xBC82, - 0x93A9, 0xBC83, 0x93AA, 0xBC86, 0x93AB, 0xBC87, 0x93AC, 0xBC89, - 0x93AD, 0xBC8A, 0x93AE, 0xBC8D, 0x93AF, 0xBC8F, 0x93B0, 0xBC90, - 0x93B1, 0xBC91, 0x93B2, 0xBC92, 0x93B3, 0xBC93, 0x93B4, 0xBC96, - 0x93B5, 0xBC98, 0x93B6, 0xBC9B, 0x93B7, 0xBC9C, 0x93B8, 0xBC9D, - 0x93B9, 0xBC9E, 0x93BA, 0xBC9F, 0x93BB, 0xBCA2, 0x93BC, 0xBCA3, - 0x93BD, 0xBCA5, 0x93BE, 0xBCA6, 0x93BF, 0xBCA9, 0x93C0, 0xBCAA, - 0x93C1, 0xBCAB, 0x93C2, 0xBCAC, 0x93C3, 0xBCAD, 0x93C4, 0xBCAE, - 0x93C5, 0xBCAF, 0x93C6, 0xBCB2, 0x93C7, 0xBCB6, 0x93C8, 0xBCB7, - 0x93C9, 0xBCB8, 0x93CA, 0xBCB9, 0x93CB, 0xBCBA, 0x93CC, 0xBCBB, - 0x93CD, 0xBCBE, 0x93CE, 0xBCBF, 0x93CF, 0xBCC1, 0x93D0, 0xBCC2, - 0x93D1, 0xBCC3, 0x93D2, 0xBCC5, 0x93D3, 0xBCC6, 0x93D4, 0xBCC7, - 0x93D5, 0xBCC8, 0x93D6, 0xBCC9, 0x93D7, 0xBCCA, 0x93D8, 0xBCCB, - 0x93D9, 0xBCCC, 0x93DA, 0xBCCE, 0x93DB, 0xBCD2, 0x93DC, 0xBCD3, - 0x93DD, 0xBCD4, 0x93DE, 0xBCD6, 0x93DF, 0xBCD7, 0x93E0, 0xBCD9, - 0x93E1, 0xBCDA, 0x93E2, 0xBCDB, 0x93E3, 0xBCDD, 0x93E4, 0xBCDE, - 0x93E5, 0xBCDF, 0x93E6, 0xBCE0, 0x93E7, 0xBCE1, 0x93E8, 0xBCE2, - 0x93E9, 0xBCE3, 0x93EA, 0xBCE4, 0x93EB, 0xBCE5, 0x93EC, 0xBCE6, - 0x93ED, 0xBCE7, 0x93EE, 0xBCE8, 0x93EF, 0xBCE9, 0x93F0, 0xBCEA, - 0x93F1, 0xBCEB, 0x93F2, 0xBCEC, 0x93F3, 0xBCED, 0x93F4, 0xBCEE, - 0x93F5, 0xBCEF, 0x93F6, 0xBCF0, 0x93F7, 0xBCF1, 0x93F8, 0xBCF2, - 0x93F9, 0xBCF3, 0x93FA, 0xBCF7, 0x93FB, 0xBCF9, 0x93FC, 0xBCFA, - 0x93FD, 0xBCFB, 0x93FE, 0xBCFD, 0x9441, 0xBCFE, 0x9442, 0xBCFF, - 0x9443, 0xBD00, 0x9444, 0xBD01, 0x9445, 0xBD02, 0x9446, 0xBD03, - 0x9447, 0xBD06, 0x9448, 0xBD08, 0x9449, 0xBD0A, 0x944A, 0xBD0B, - 0x944B, 0xBD0C, 0x944C, 0xBD0D, 0x944D, 0xBD0E, 0x944E, 0xBD0F, - 0x944F, 0xBD11, 0x9450, 0xBD12, 0x9451, 0xBD13, 0x9452, 0xBD15, - 0x9453, 0xBD16, 0x9454, 0xBD17, 0x9455, 0xBD18, 0x9456, 0xBD19, - 0x9457, 0xBD1A, 0x9458, 0xBD1B, 0x9459, 0xBD1C, 0x945A, 0xBD1D, - 0x9461, 0xBD1E, 0x9462, 0xBD1F, 0x9463, 0xBD20, 0x9464, 0xBD21, - 0x9465, 0xBD22, 0x9466, 0xBD23, 0x9467, 0xBD25, 0x9468, 0xBD26, - 0x9469, 0xBD27, 0x946A, 0xBD28, 0x946B, 0xBD29, 0x946C, 0xBD2A, - 0x946D, 0xBD2B, 0x946E, 0xBD2D, 0x946F, 0xBD2E, 0x9470, 0xBD2F, - 0x9471, 0xBD30, 0x9472, 0xBD31, 0x9473, 0xBD32, 0x9474, 0xBD33, - 0x9475, 0xBD34, 0x9476, 0xBD35, 0x9477, 0xBD36, 0x9478, 0xBD37, - 0x9479, 0xBD38, 0x947A, 0xBD39, 0x9481, 0xBD3A, 0x9482, 0xBD3B, - 0x9483, 0xBD3C, 0x9484, 0xBD3D, 0x9485, 0xBD3E, 0x9486, 0xBD3F, - 0x9487, 0xBD41, 0x9488, 0xBD42, 0x9489, 0xBD43, 0x948A, 0xBD44, - 0x948B, 0xBD45, 0x948C, 0xBD46, 0x948D, 0xBD47, 0x948E, 0xBD4A, - 0x948F, 0xBD4B, 0x9490, 0xBD4D, 0x9491, 0xBD4E, 0x9492, 0xBD4F, - 0x9493, 0xBD51, 0x9494, 0xBD52, 0x9495, 0xBD53, 0x9496, 0xBD54, - 0x9497, 0xBD55, 0x9498, 0xBD56, 0x9499, 0xBD57, 0x949A, 0xBD5A, - 0x949B, 0xBD5B, 0x949C, 0xBD5C, 0x949D, 0xBD5D, 0x949E, 0xBD5E, - 0x949F, 0xBD5F, 0x94A0, 0xBD60, 0x94A1, 0xBD61, 0x94A2, 0xBD62, - 0x94A3, 0xBD63, 0x94A4, 0xBD65, 0x94A5, 0xBD66, 0x94A6, 0xBD67, - 0x94A7, 0xBD69, 0x94A8, 0xBD6A, 0x94A9, 0xBD6B, 0x94AA, 0xBD6C, - 0x94AB, 0xBD6D, 0x94AC, 0xBD6E, 0x94AD, 0xBD6F, 0x94AE, 0xBD70, - 0x94AF, 0xBD71, 0x94B0, 0xBD72, 0x94B1, 0xBD73, 0x94B2, 0xBD74, - 0x94B3, 0xBD75, 0x94B4, 0xBD76, 0x94B5, 0xBD77, 0x94B6, 0xBD78, - 0x94B7, 0xBD79, 0x94B8, 0xBD7A, 0x94B9, 0xBD7B, 0x94BA, 0xBD7C, - 0x94BB, 0xBD7D, 0x94BC, 0xBD7E, 0x94BD, 0xBD7F, 0x94BE, 0xBD82, - 0x94BF, 0xBD83, 0x94C0, 0xBD85, 0x94C1, 0xBD86, 0x94C2, 0xBD8B, - 0x94C3, 0xBD8C, 0x94C4, 0xBD8D, 0x94C5, 0xBD8E, 0x94C6, 0xBD8F, - 0x94C7, 0xBD92, 0x94C8, 0xBD94, 0x94C9, 0xBD96, 0x94CA, 0xBD97, - 0x94CB, 0xBD98, 0x94CC, 0xBD9B, 0x94CD, 0xBD9D, 0x94CE, 0xBD9E, - 0x94CF, 0xBD9F, 0x94D0, 0xBDA0, 0x94D1, 0xBDA1, 0x94D2, 0xBDA2, - 0x94D3, 0xBDA3, 0x94D4, 0xBDA5, 0x94D5, 0xBDA6, 0x94D6, 0xBDA7, - 0x94D7, 0xBDA8, 0x94D8, 0xBDA9, 0x94D9, 0xBDAA, 0x94DA, 0xBDAB, - 0x94DB, 0xBDAC, 0x94DC, 0xBDAD, 0x94DD, 0xBDAE, 0x94DE, 0xBDAF, - 0x94DF, 0xBDB1, 0x94E0, 0xBDB2, 0x94E1, 0xBDB3, 0x94E2, 0xBDB4, - 0x94E3, 0xBDB5, 0x94E4, 0xBDB6, 0x94E5, 0xBDB7, 0x94E6, 0xBDB9, - 0x94E7, 0xBDBA, 0x94E8, 0xBDBB, 0x94E9, 0xBDBC, 0x94EA, 0xBDBD, - 0x94EB, 0xBDBE, 0x94EC, 0xBDBF, 0x94ED, 0xBDC0, 0x94EE, 0xBDC1, - 0x94EF, 0xBDC2, 0x94F0, 0xBDC3, 0x94F1, 0xBDC4, 0x94F2, 0xBDC5, - 0x94F3, 0xBDC6, 0x94F4, 0xBDC7, 0x94F5, 0xBDC8, 0x94F6, 0xBDC9, - 0x94F7, 0xBDCA, 0x94F8, 0xBDCB, 0x94F9, 0xBDCC, 0x94FA, 0xBDCD, - 0x94FB, 0xBDCE, 0x94FC, 0xBDCF, 0x94FD, 0xBDD0, 0x94FE, 0xBDD1, - 0x9541, 0xBDD2, 0x9542, 0xBDD3, 0x9543, 0xBDD6, 0x9544, 0xBDD7, - 0x9545, 0xBDD9, 0x9546, 0xBDDA, 0x9547, 0xBDDB, 0x9548, 0xBDDD, - 0x9549, 0xBDDE, 0x954A, 0xBDDF, 0x954B, 0xBDE0, 0x954C, 0xBDE1, - 0x954D, 0xBDE2, 0x954E, 0xBDE3, 0x954F, 0xBDE4, 0x9550, 0xBDE5, - 0x9551, 0xBDE6, 0x9552, 0xBDE7, 0x9553, 0xBDE8, 0x9554, 0xBDEA, - 0x9555, 0xBDEB, 0x9556, 0xBDEC, 0x9557, 0xBDED, 0x9558, 0xBDEE, - 0x9559, 0xBDEF, 0x955A, 0xBDF1, 0x9561, 0xBDF2, 0x9562, 0xBDF3, - 0x9563, 0xBDF5, 0x9564, 0xBDF6, 0x9565, 0xBDF7, 0x9566, 0xBDF9, - 0x9567, 0xBDFA, 0x9568, 0xBDFB, 0x9569, 0xBDFC, 0x956A, 0xBDFD, - 0x956B, 0xBDFE, 0x956C, 0xBDFF, 0x956D, 0xBE01, 0x956E, 0xBE02, - 0x956F, 0xBE04, 0x9570, 0xBE06, 0x9571, 0xBE07, 0x9572, 0xBE08, - 0x9573, 0xBE09, 0x9574, 0xBE0A, 0x9575, 0xBE0B, 0x9576, 0xBE0E, - 0x9577, 0xBE0F, 0x9578, 0xBE11, 0x9579, 0xBE12, 0x957A, 0xBE13, - 0x9581, 0xBE15, 0x9582, 0xBE16, 0x9583, 0xBE17, 0x9584, 0xBE18, - 0x9585, 0xBE19, 0x9586, 0xBE1A, 0x9587, 0xBE1B, 0x9588, 0xBE1E, - 0x9589, 0xBE20, 0x958A, 0xBE21, 0x958B, 0xBE22, 0x958C, 0xBE23, - 0x958D, 0xBE24, 0x958E, 0xBE25, 0x958F, 0xBE26, 0x9590, 0xBE27, - 0x9591, 0xBE28, 0x9592, 0xBE29, 0x9593, 0xBE2A, 0x9594, 0xBE2B, - 0x9595, 0xBE2C, 0x9596, 0xBE2D, 0x9597, 0xBE2E, 0x9598, 0xBE2F, - 0x9599, 0xBE30, 0x959A, 0xBE31, 0x959B, 0xBE32, 0x959C, 0xBE33, - 0x959D, 0xBE34, 0x959E, 0xBE35, 0x959F, 0xBE36, 0x95A0, 0xBE37, - 0x95A1, 0xBE38, 0x95A2, 0xBE39, 0x95A3, 0xBE3A, 0x95A4, 0xBE3B, - 0x95A5, 0xBE3C, 0x95A6, 0xBE3D, 0x95A7, 0xBE3E, 0x95A8, 0xBE3F, - 0x95A9, 0xBE40, 0x95AA, 0xBE41, 0x95AB, 0xBE42, 0x95AC, 0xBE43, - 0x95AD, 0xBE46, 0x95AE, 0xBE47, 0x95AF, 0xBE49, 0x95B0, 0xBE4A, - 0x95B1, 0xBE4B, 0x95B2, 0xBE4D, 0x95B3, 0xBE4F, 0x95B4, 0xBE50, - 0x95B5, 0xBE51, 0x95B6, 0xBE52, 0x95B7, 0xBE53, 0x95B8, 0xBE56, - 0x95B9, 0xBE58, 0x95BA, 0xBE5C, 0x95BB, 0xBE5D, 0x95BC, 0xBE5E, - 0x95BD, 0xBE5F, 0x95BE, 0xBE62, 0x95BF, 0xBE63, 0x95C0, 0xBE65, - 0x95C1, 0xBE66, 0x95C2, 0xBE67, 0x95C3, 0xBE69, 0x95C4, 0xBE6B, - 0x95C5, 0xBE6C, 0x95C6, 0xBE6D, 0x95C7, 0xBE6E, 0x95C8, 0xBE6F, - 0x95C9, 0xBE72, 0x95CA, 0xBE76, 0x95CB, 0xBE77, 0x95CC, 0xBE78, - 0x95CD, 0xBE79, 0x95CE, 0xBE7A, 0x95CF, 0xBE7E, 0x95D0, 0xBE7F, - 0x95D1, 0xBE81, 0x95D2, 0xBE82, 0x95D3, 0xBE83, 0x95D4, 0xBE85, - 0x95D5, 0xBE86, 0x95D6, 0xBE87, 0x95D7, 0xBE88, 0x95D8, 0xBE89, - 0x95D9, 0xBE8A, 0x95DA, 0xBE8B, 0x95DB, 0xBE8E, 0x95DC, 0xBE92, - 0x95DD, 0xBE93, 0x95DE, 0xBE94, 0x95DF, 0xBE95, 0x95E0, 0xBE96, - 0x95E1, 0xBE97, 0x95E2, 0xBE9A, 0x95E3, 0xBE9B, 0x95E4, 0xBE9C, - 0x95E5, 0xBE9D, 0x95E6, 0xBE9E, 0x95E7, 0xBE9F, 0x95E8, 0xBEA0, - 0x95E9, 0xBEA1, 0x95EA, 0xBEA2, 0x95EB, 0xBEA3, 0x95EC, 0xBEA4, - 0x95ED, 0xBEA5, 0x95EE, 0xBEA6, 0x95EF, 0xBEA7, 0x95F0, 0xBEA9, - 0x95F1, 0xBEAA, 0x95F2, 0xBEAB, 0x95F3, 0xBEAC, 0x95F4, 0xBEAD, - 0x95F5, 0xBEAE, 0x95F6, 0xBEAF, 0x95F7, 0xBEB0, 0x95F8, 0xBEB1, - 0x95F9, 0xBEB2, 0x95FA, 0xBEB3, 0x95FB, 0xBEB4, 0x95FC, 0xBEB5, - 0x95FD, 0xBEB6, 0x95FE, 0xBEB7, 0x9641, 0xBEB8, 0x9642, 0xBEB9, - 0x9643, 0xBEBA, 0x9644, 0xBEBB, 0x9645, 0xBEBC, 0x9646, 0xBEBD, - 0x9647, 0xBEBE, 0x9648, 0xBEBF, 0x9649, 0xBEC0, 0x964A, 0xBEC1, - 0x964B, 0xBEC2, 0x964C, 0xBEC3, 0x964D, 0xBEC4, 0x964E, 0xBEC5, - 0x964F, 0xBEC6, 0x9650, 0xBEC7, 0x9651, 0xBEC8, 0x9652, 0xBEC9, - 0x9653, 0xBECA, 0x9654, 0xBECB, 0x9655, 0xBECC, 0x9656, 0xBECD, - 0x9657, 0xBECE, 0x9658, 0xBECF, 0x9659, 0xBED2, 0x965A, 0xBED3, - 0x9661, 0xBED5, 0x9662, 0xBED6, 0x9663, 0xBED9, 0x9664, 0xBEDA, - 0x9665, 0xBEDB, 0x9666, 0xBEDC, 0x9667, 0xBEDD, 0x9668, 0xBEDE, - 0x9669, 0xBEDF, 0x966A, 0xBEE1, 0x966B, 0xBEE2, 0x966C, 0xBEE6, - 0x966D, 0xBEE7, 0x966E, 0xBEE8, 0x966F, 0xBEE9, 0x9670, 0xBEEA, - 0x9671, 0xBEEB, 0x9672, 0xBEED, 0x9673, 0xBEEE, 0x9674, 0xBEEF, - 0x9675, 0xBEF0, 0x9676, 0xBEF1, 0x9677, 0xBEF2, 0x9678, 0xBEF3, - 0x9679, 0xBEF4, 0x967A, 0xBEF5, 0x9681, 0xBEF6, 0x9682, 0xBEF7, - 0x9683, 0xBEF8, 0x9684, 0xBEF9, 0x9685, 0xBEFA, 0x9686, 0xBEFB, - 0x9687, 0xBEFC, 0x9688, 0xBEFD, 0x9689, 0xBEFE, 0x968A, 0xBEFF, - 0x968B, 0xBF00, 0x968C, 0xBF02, 0x968D, 0xBF03, 0x968E, 0xBF04, - 0x968F, 0xBF05, 0x9690, 0xBF06, 0x9691, 0xBF07, 0x9692, 0xBF0A, - 0x9693, 0xBF0B, 0x9694, 0xBF0C, 0x9695, 0xBF0D, 0x9696, 0xBF0E, - 0x9697, 0xBF0F, 0x9698, 0xBF10, 0x9699, 0xBF11, 0x969A, 0xBF12, - 0x969B, 0xBF13, 0x969C, 0xBF14, 0x969D, 0xBF15, 0x969E, 0xBF16, - 0x969F, 0xBF17, 0x96A0, 0xBF1A, 0x96A1, 0xBF1E, 0x96A2, 0xBF1F, - 0x96A3, 0xBF20, 0x96A4, 0xBF21, 0x96A5, 0xBF22, 0x96A6, 0xBF23, - 0x96A7, 0xBF24, 0x96A8, 0xBF25, 0x96A9, 0xBF26, 0x96AA, 0xBF27, - 0x96AB, 0xBF28, 0x96AC, 0xBF29, 0x96AD, 0xBF2A, 0x96AE, 0xBF2B, - 0x96AF, 0xBF2C, 0x96B0, 0xBF2D, 0x96B1, 0xBF2E, 0x96B2, 0xBF2F, - 0x96B3, 0xBF30, 0x96B4, 0xBF31, 0x96B5, 0xBF32, 0x96B6, 0xBF33, - 0x96B7, 0xBF34, 0x96B8, 0xBF35, 0x96B9, 0xBF36, 0x96BA, 0xBF37, - 0x96BB, 0xBF38, 0x96BC, 0xBF39, 0x96BD, 0xBF3A, 0x96BE, 0xBF3B, - 0x96BF, 0xBF3C, 0x96C0, 0xBF3D, 0x96C1, 0xBF3E, 0x96C2, 0xBF3F, - 0x96C3, 0xBF42, 0x96C4, 0xBF43, 0x96C5, 0xBF45, 0x96C6, 0xBF46, - 0x96C7, 0xBF47, 0x96C8, 0xBF49, 0x96C9, 0xBF4A, 0x96CA, 0xBF4B, - 0x96CB, 0xBF4C, 0x96CC, 0xBF4D, 0x96CD, 0xBF4E, 0x96CE, 0xBF4F, - 0x96CF, 0xBF52, 0x96D0, 0xBF53, 0x96D1, 0xBF54, 0x96D2, 0xBF56, - 0x96D3, 0xBF57, 0x96D4, 0xBF58, 0x96D5, 0xBF59, 0x96D6, 0xBF5A, - 0x96D7, 0xBF5B, 0x96D8, 0xBF5C, 0x96D9, 0xBF5D, 0x96DA, 0xBF5E, - 0x96DB, 0xBF5F, 0x96DC, 0xBF60, 0x96DD, 0xBF61, 0x96DE, 0xBF62, - 0x96DF, 0xBF63, 0x96E0, 0xBF64, 0x96E1, 0xBF65, 0x96E2, 0xBF66, - 0x96E3, 0xBF67, 0x96E4, 0xBF68, 0x96E5, 0xBF69, 0x96E6, 0xBF6A, - 0x96E7, 0xBF6B, 0x96E8, 0xBF6C, 0x96E9, 0xBF6D, 0x96EA, 0xBF6E, - 0x96EB, 0xBF6F, 0x96EC, 0xBF70, 0x96ED, 0xBF71, 0x96EE, 0xBF72, - 0x96EF, 0xBF73, 0x96F0, 0xBF74, 0x96F1, 0xBF75, 0x96F2, 0xBF76, - 0x96F3, 0xBF77, 0x96F4, 0xBF78, 0x96F5, 0xBF79, 0x96F6, 0xBF7A, - 0x96F7, 0xBF7B, 0x96F8, 0xBF7C, 0x96F9, 0xBF7D, 0x96FA, 0xBF7E, - 0x96FB, 0xBF7F, 0x96FC, 0xBF80, 0x96FD, 0xBF81, 0x96FE, 0xBF82, - 0x9741, 0xBF83, 0x9742, 0xBF84, 0x9743, 0xBF85, 0x9744, 0xBF86, - 0x9745, 0xBF87, 0x9746, 0xBF88, 0x9747, 0xBF89, 0x9748, 0xBF8A, - 0x9749, 0xBF8B, 0x974A, 0xBF8C, 0x974B, 0xBF8D, 0x974C, 0xBF8E, - 0x974D, 0xBF8F, 0x974E, 0xBF90, 0x974F, 0xBF91, 0x9750, 0xBF92, - 0x9751, 0xBF93, 0x9752, 0xBF95, 0x9753, 0xBF96, 0x9754, 0xBF97, - 0x9755, 0xBF98, 0x9756, 0xBF99, 0x9757, 0xBF9A, 0x9758, 0xBF9B, - 0x9759, 0xBF9C, 0x975A, 0xBF9D, 0x9761, 0xBF9E, 0x9762, 0xBF9F, - 0x9763, 0xBFA0, 0x9764, 0xBFA1, 0x9765, 0xBFA2, 0x9766, 0xBFA3, - 0x9767, 0xBFA4, 0x9768, 0xBFA5, 0x9769, 0xBFA6, 0x976A, 0xBFA7, - 0x976B, 0xBFA8, 0x976C, 0xBFA9, 0x976D, 0xBFAA, 0x976E, 0xBFAB, - 0x976F, 0xBFAC, 0x9770, 0xBFAD, 0x9771, 0xBFAE, 0x9772, 0xBFAF, - 0x9773, 0xBFB1, 0x9774, 0xBFB2, 0x9775, 0xBFB3, 0x9776, 0xBFB4, - 0x9777, 0xBFB5, 0x9778, 0xBFB6, 0x9779, 0xBFB7, 0x977A, 0xBFB8, - 0x9781, 0xBFB9, 0x9782, 0xBFBA, 0x9783, 0xBFBB, 0x9784, 0xBFBC, - 0x9785, 0xBFBD, 0x9786, 0xBFBE, 0x9787, 0xBFBF, 0x9788, 0xBFC0, - 0x9789, 0xBFC1, 0x978A, 0xBFC2, 0x978B, 0xBFC3, 0x978C, 0xBFC4, - 0x978D, 0xBFC6, 0x978E, 0xBFC7, 0x978F, 0xBFC8, 0x9790, 0xBFC9, - 0x9791, 0xBFCA, 0x9792, 0xBFCB, 0x9793, 0xBFCE, 0x9794, 0xBFCF, - 0x9795, 0xBFD1, 0x9796, 0xBFD2, 0x9797, 0xBFD3, 0x9798, 0xBFD5, - 0x9799, 0xBFD6, 0x979A, 0xBFD7, 0x979B, 0xBFD8, 0x979C, 0xBFD9, - 0x979D, 0xBFDA, 0x979E, 0xBFDB, 0x979F, 0xBFDD, 0x97A0, 0xBFDE, - 0x97A1, 0xBFE0, 0x97A2, 0xBFE2, 0x97A3, 0xBFE3, 0x97A4, 0xBFE4, - 0x97A5, 0xBFE5, 0x97A6, 0xBFE6, 0x97A7, 0xBFE7, 0x97A8, 0xBFE8, - 0x97A9, 0xBFE9, 0x97AA, 0xBFEA, 0x97AB, 0xBFEB, 0x97AC, 0xBFEC, - 0x97AD, 0xBFED, 0x97AE, 0xBFEE, 0x97AF, 0xBFEF, 0x97B0, 0xBFF0, - 0x97B1, 0xBFF1, 0x97B2, 0xBFF2, 0x97B3, 0xBFF3, 0x97B4, 0xBFF4, - 0x97B5, 0xBFF5, 0x97B6, 0xBFF6, 0x97B7, 0xBFF7, 0x97B8, 0xBFF8, - 0x97B9, 0xBFF9, 0x97BA, 0xBFFA, 0x97BB, 0xBFFB, 0x97BC, 0xBFFC, - 0x97BD, 0xBFFD, 0x97BE, 0xBFFE, 0x97BF, 0xBFFF, 0x97C0, 0xC000, - 0x97C1, 0xC001, 0x97C2, 0xC002, 0x97C3, 0xC003, 0x97C4, 0xC004, - 0x97C5, 0xC005, 0x97C6, 0xC006, 0x97C7, 0xC007, 0x97C8, 0xC008, - 0x97C9, 0xC009, 0x97CA, 0xC00A, 0x97CB, 0xC00B, 0x97CC, 0xC00C, - 0x97CD, 0xC00D, 0x97CE, 0xC00E, 0x97CF, 0xC00F, 0x97D0, 0xC010, - 0x97D1, 0xC011, 0x97D2, 0xC012, 0x97D3, 0xC013, 0x97D4, 0xC014, - 0x97D5, 0xC015, 0x97D6, 0xC016, 0x97D7, 0xC017, 0x97D8, 0xC018, - 0x97D9, 0xC019, 0x97DA, 0xC01A, 0x97DB, 0xC01B, 0x97DC, 0xC01C, - 0x97DD, 0xC01D, 0x97DE, 0xC01E, 0x97DF, 0xC01F, 0x97E0, 0xC020, - 0x97E1, 0xC021, 0x97E2, 0xC022, 0x97E3, 0xC023, 0x97E4, 0xC024, - 0x97E5, 0xC025, 0x97E6, 0xC026, 0x97E7, 0xC027, 0x97E8, 0xC028, - 0x97E9, 0xC029, 0x97EA, 0xC02A, 0x97EB, 0xC02B, 0x97EC, 0xC02C, - 0x97ED, 0xC02D, 0x97EE, 0xC02E, 0x97EF, 0xC02F, 0x97F0, 0xC030, - 0x97F1, 0xC031, 0x97F2, 0xC032, 0x97F3, 0xC033, 0x97F4, 0xC034, - 0x97F5, 0xC035, 0x97F6, 0xC036, 0x97F7, 0xC037, 0x97F8, 0xC038, - 0x97F9, 0xC039, 0x97FA, 0xC03A, 0x97FB, 0xC03B, 0x97FC, 0xC03D, - 0x97FD, 0xC03E, 0x97FE, 0xC03F, 0x9841, 0xC040, 0x9842, 0xC041, - 0x9843, 0xC042, 0x9844, 0xC043, 0x9845, 0xC044, 0x9846, 0xC045, - 0x9847, 0xC046, 0x9848, 0xC047, 0x9849, 0xC048, 0x984A, 0xC049, - 0x984B, 0xC04A, 0x984C, 0xC04B, 0x984D, 0xC04C, 0x984E, 0xC04D, - 0x984F, 0xC04E, 0x9850, 0xC04F, 0x9851, 0xC050, 0x9852, 0xC052, - 0x9853, 0xC053, 0x9854, 0xC054, 0x9855, 0xC055, 0x9856, 0xC056, - 0x9857, 0xC057, 0x9858, 0xC059, 0x9859, 0xC05A, 0x985A, 0xC05B, - 0x9861, 0xC05D, 0x9862, 0xC05E, 0x9863, 0xC05F, 0x9864, 0xC061, - 0x9865, 0xC062, 0x9866, 0xC063, 0x9867, 0xC064, 0x9868, 0xC065, - 0x9869, 0xC066, 0x986A, 0xC067, 0x986B, 0xC06A, 0x986C, 0xC06B, - 0x986D, 0xC06C, 0x986E, 0xC06D, 0x986F, 0xC06E, 0x9870, 0xC06F, - 0x9871, 0xC070, 0x9872, 0xC071, 0x9873, 0xC072, 0x9874, 0xC073, - 0x9875, 0xC074, 0x9876, 0xC075, 0x9877, 0xC076, 0x9878, 0xC077, - 0x9879, 0xC078, 0x987A, 0xC079, 0x9881, 0xC07A, 0x9882, 0xC07B, - 0x9883, 0xC07C, 0x9884, 0xC07D, 0x9885, 0xC07E, 0x9886, 0xC07F, - 0x9887, 0xC080, 0x9888, 0xC081, 0x9889, 0xC082, 0x988A, 0xC083, - 0x988B, 0xC084, 0x988C, 0xC085, 0x988D, 0xC086, 0x988E, 0xC087, - 0x988F, 0xC088, 0x9890, 0xC089, 0x9891, 0xC08A, 0x9892, 0xC08B, - 0x9893, 0xC08C, 0x9894, 0xC08D, 0x9895, 0xC08E, 0x9896, 0xC08F, - 0x9897, 0xC092, 0x9898, 0xC093, 0x9899, 0xC095, 0x989A, 0xC096, - 0x989B, 0xC097, 0x989C, 0xC099, 0x989D, 0xC09A, 0x989E, 0xC09B, - 0x989F, 0xC09C, 0x98A0, 0xC09D, 0x98A1, 0xC09E, 0x98A2, 0xC09F, - 0x98A3, 0xC0A2, 0x98A4, 0xC0A4, 0x98A5, 0xC0A6, 0x98A6, 0xC0A7, - 0x98A7, 0xC0A8, 0x98A8, 0xC0A9, 0x98A9, 0xC0AA, 0x98AA, 0xC0AB, - 0x98AB, 0xC0AE, 0x98AC, 0xC0B1, 0x98AD, 0xC0B2, 0x98AE, 0xC0B7, - 0x98AF, 0xC0B8, 0x98B0, 0xC0B9, 0x98B1, 0xC0BA, 0x98B2, 0xC0BB, - 0x98B3, 0xC0BE, 0x98B4, 0xC0C2, 0x98B5, 0xC0C3, 0x98B6, 0xC0C4, - 0x98B7, 0xC0C6, 0x98B8, 0xC0C7, 0x98B9, 0xC0CA, 0x98BA, 0xC0CB, - 0x98BB, 0xC0CD, 0x98BC, 0xC0CE, 0x98BD, 0xC0CF, 0x98BE, 0xC0D1, - 0x98BF, 0xC0D2, 0x98C0, 0xC0D3, 0x98C1, 0xC0D4, 0x98C2, 0xC0D5, - 0x98C3, 0xC0D6, 0x98C4, 0xC0D7, 0x98C5, 0xC0DA, 0x98C6, 0xC0DE, - 0x98C7, 0xC0DF, 0x98C8, 0xC0E0, 0x98C9, 0xC0E1, 0x98CA, 0xC0E2, - 0x98CB, 0xC0E3, 0x98CC, 0xC0E6, 0x98CD, 0xC0E7, 0x98CE, 0xC0E9, - 0x98CF, 0xC0EA, 0x98D0, 0xC0EB, 0x98D1, 0xC0ED, 0x98D2, 0xC0EE, - 0x98D3, 0xC0EF, 0x98D4, 0xC0F0, 0x98D5, 0xC0F1, 0x98D6, 0xC0F2, - 0x98D7, 0xC0F3, 0x98D8, 0xC0F6, 0x98D9, 0xC0F8, 0x98DA, 0xC0FA, - 0x98DB, 0xC0FB, 0x98DC, 0xC0FC, 0x98DD, 0xC0FD, 0x98DE, 0xC0FE, - 0x98DF, 0xC0FF, 0x98E0, 0xC101, 0x98E1, 0xC102, 0x98E2, 0xC103, - 0x98E3, 0xC105, 0x98E4, 0xC106, 0x98E5, 0xC107, 0x98E6, 0xC109, - 0x98E7, 0xC10A, 0x98E8, 0xC10B, 0x98E9, 0xC10C, 0x98EA, 0xC10D, - 0x98EB, 0xC10E, 0x98EC, 0xC10F, 0x98ED, 0xC111, 0x98EE, 0xC112, - 0x98EF, 0xC113, 0x98F0, 0xC114, 0x98F1, 0xC116, 0x98F2, 0xC117, - 0x98F3, 0xC118, 0x98F4, 0xC119, 0x98F5, 0xC11A, 0x98F6, 0xC11B, - 0x98F7, 0xC121, 0x98F8, 0xC122, 0x98F9, 0xC125, 0x98FA, 0xC128, - 0x98FB, 0xC129, 0x98FC, 0xC12A, 0x98FD, 0xC12B, 0x98FE, 0xC12E, - 0x9941, 0xC132, 0x9942, 0xC133, 0x9943, 0xC134, 0x9944, 0xC135, - 0x9945, 0xC137, 0x9946, 0xC13A, 0x9947, 0xC13B, 0x9948, 0xC13D, - 0x9949, 0xC13E, 0x994A, 0xC13F, 0x994B, 0xC141, 0x994C, 0xC142, - 0x994D, 0xC143, 0x994E, 0xC144, 0x994F, 0xC145, 0x9950, 0xC146, - 0x9951, 0xC147, 0x9952, 0xC14A, 0x9953, 0xC14E, 0x9954, 0xC14F, - 0x9955, 0xC150, 0x9956, 0xC151, 0x9957, 0xC152, 0x9958, 0xC153, - 0x9959, 0xC156, 0x995A, 0xC157, 0x9961, 0xC159, 0x9962, 0xC15A, - 0x9963, 0xC15B, 0x9964, 0xC15D, 0x9965, 0xC15E, 0x9966, 0xC15F, - 0x9967, 0xC160, 0x9968, 0xC161, 0x9969, 0xC162, 0x996A, 0xC163, - 0x996B, 0xC166, 0x996C, 0xC16A, 0x996D, 0xC16B, 0x996E, 0xC16C, - 0x996F, 0xC16D, 0x9970, 0xC16E, 0x9971, 0xC16F, 0x9972, 0xC171, - 0x9973, 0xC172, 0x9974, 0xC173, 0x9975, 0xC175, 0x9976, 0xC176, - 0x9977, 0xC177, 0x9978, 0xC179, 0x9979, 0xC17A, 0x997A, 0xC17B, - 0x9981, 0xC17C, 0x9982, 0xC17D, 0x9983, 0xC17E, 0x9984, 0xC17F, - 0x9985, 0xC180, 0x9986, 0xC181, 0x9987, 0xC182, 0x9988, 0xC183, - 0x9989, 0xC184, 0x998A, 0xC186, 0x998B, 0xC187, 0x998C, 0xC188, - 0x998D, 0xC189, 0x998E, 0xC18A, 0x998F, 0xC18B, 0x9990, 0xC18F, - 0x9991, 0xC191, 0x9992, 0xC192, 0x9993, 0xC193, 0x9994, 0xC195, - 0x9995, 0xC197, 0x9996, 0xC198, 0x9997, 0xC199, 0x9998, 0xC19A, - 0x9999, 0xC19B, 0x999A, 0xC19E, 0x999B, 0xC1A0, 0x999C, 0xC1A2, - 0x999D, 0xC1A3, 0x999E, 0xC1A4, 0x999F, 0xC1A6, 0x99A0, 0xC1A7, - 0x99A1, 0xC1AA, 0x99A2, 0xC1AB, 0x99A3, 0xC1AD, 0x99A4, 0xC1AE, - 0x99A5, 0xC1AF, 0x99A6, 0xC1B1, 0x99A7, 0xC1B2, 0x99A8, 0xC1B3, - 0x99A9, 0xC1B4, 0x99AA, 0xC1B5, 0x99AB, 0xC1B6, 0x99AC, 0xC1B7, - 0x99AD, 0xC1B8, 0x99AE, 0xC1B9, 0x99AF, 0xC1BA, 0x99B0, 0xC1BB, - 0x99B1, 0xC1BC, 0x99B2, 0xC1BE, 0x99B3, 0xC1BF, 0x99B4, 0xC1C0, - 0x99B5, 0xC1C1, 0x99B6, 0xC1C2, 0x99B7, 0xC1C3, 0x99B8, 0xC1C5, - 0x99B9, 0xC1C6, 0x99BA, 0xC1C7, 0x99BB, 0xC1C9, 0x99BC, 0xC1CA, - 0x99BD, 0xC1CB, 0x99BE, 0xC1CD, 0x99BF, 0xC1CE, 0x99C0, 0xC1CF, - 0x99C1, 0xC1D0, 0x99C2, 0xC1D1, 0x99C3, 0xC1D2, 0x99C4, 0xC1D3, - 0x99C5, 0xC1D5, 0x99C6, 0xC1D6, 0x99C7, 0xC1D9, 0x99C8, 0xC1DA, - 0x99C9, 0xC1DB, 0x99CA, 0xC1DC, 0x99CB, 0xC1DD, 0x99CC, 0xC1DE, - 0x99CD, 0xC1DF, 0x99CE, 0xC1E1, 0x99CF, 0xC1E2, 0x99D0, 0xC1E3, - 0x99D1, 0xC1E5, 0x99D2, 0xC1E6, 0x99D3, 0xC1E7, 0x99D4, 0xC1E9, - 0x99D5, 0xC1EA, 0x99D6, 0xC1EB, 0x99D7, 0xC1EC, 0x99D8, 0xC1ED, - 0x99D9, 0xC1EE, 0x99DA, 0xC1EF, 0x99DB, 0xC1F2, 0x99DC, 0xC1F4, - 0x99DD, 0xC1F5, 0x99DE, 0xC1F6, 0x99DF, 0xC1F7, 0x99E0, 0xC1F8, - 0x99E1, 0xC1F9, 0x99E2, 0xC1FA, 0x99E3, 0xC1FB, 0x99E4, 0xC1FE, - 0x99E5, 0xC1FF, 0x99E6, 0xC201, 0x99E7, 0xC202, 0x99E8, 0xC203, - 0x99E9, 0xC205, 0x99EA, 0xC206, 0x99EB, 0xC207, 0x99EC, 0xC208, - 0x99ED, 0xC209, 0x99EE, 0xC20A, 0x99EF, 0xC20B, 0x99F0, 0xC20E, - 0x99F1, 0xC210, 0x99F2, 0xC212, 0x99F3, 0xC213, 0x99F4, 0xC214, - 0x99F5, 0xC215, 0x99F6, 0xC216, 0x99F7, 0xC217, 0x99F8, 0xC21A, - 0x99F9, 0xC21B, 0x99FA, 0xC21D, 0x99FB, 0xC21E, 0x99FC, 0xC221, - 0x99FD, 0xC222, 0x99FE, 0xC223, 0x9A41, 0xC224, 0x9A42, 0xC225, - 0x9A43, 0xC226, 0x9A44, 0xC227, 0x9A45, 0xC22A, 0x9A46, 0xC22C, - 0x9A47, 0xC22E, 0x9A48, 0xC230, 0x9A49, 0xC233, 0x9A4A, 0xC235, - 0x9A4B, 0xC236, 0x9A4C, 0xC237, 0x9A4D, 0xC238, 0x9A4E, 0xC239, - 0x9A4F, 0xC23A, 0x9A50, 0xC23B, 0x9A51, 0xC23C, 0x9A52, 0xC23D, - 0x9A53, 0xC23E, 0x9A54, 0xC23F, 0x9A55, 0xC240, 0x9A56, 0xC241, - 0x9A57, 0xC242, 0x9A58, 0xC243, 0x9A59, 0xC244, 0x9A5A, 0xC245, - 0x9A61, 0xC246, 0x9A62, 0xC247, 0x9A63, 0xC249, 0x9A64, 0xC24A, - 0x9A65, 0xC24B, 0x9A66, 0xC24C, 0x9A67, 0xC24D, 0x9A68, 0xC24E, - 0x9A69, 0xC24F, 0x9A6A, 0xC252, 0x9A6B, 0xC253, 0x9A6C, 0xC255, - 0x9A6D, 0xC256, 0x9A6E, 0xC257, 0x9A6F, 0xC259, 0x9A70, 0xC25A, - 0x9A71, 0xC25B, 0x9A72, 0xC25C, 0x9A73, 0xC25D, 0x9A74, 0xC25E, - 0x9A75, 0xC25F, 0x9A76, 0xC261, 0x9A77, 0xC262, 0x9A78, 0xC263, - 0x9A79, 0xC264, 0x9A7A, 0xC266, 0x9A81, 0xC267, 0x9A82, 0xC268, - 0x9A83, 0xC269, 0x9A84, 0xC26A, 0x9A85, 0xC26B, 0x9A86, 0xC26E, - 0x9A87, 0xC26F, 0x9A88, 0xC271, 0x9A89, 0xC272, 0x9A8A, 0xC273, - 0x9A8B, 0xC275, 0x9A8C, 0xC276, 0x9A8D, 0xC277, 0x9A8E, 0xC278, - 0x9A8F, 0xC279, 0x9A90, 0xC27A, 0x9A91, 0xC27B, 0x9A92, 0xC27E, - 0x9A93, 0xC280, 0x9A94, 0xC282, 0x9A95, 0xC283, 0x9A96, 0xC284, - 0x9A97, 0xC285, 0x9A98, 0xC286, 0x9A99, 0xC287, 0x9A9A, 0xC28A, - 0x9A9B, 0xC28B, 0x9A9C, 0xC28C, 0x9A9D, 0xC28D, 0x9A9E, 0xC28E, - 0x9A9F, 0xC28F, 0x9AA0, 0xC291, 0x9AA1, 0xC292, 0x9AA2, 0xC293, - 0x9AA3, 0xC294, 0x9AA4, 0xC295, 0x9AA5, 0xC296, 0x9AA6, 0xC297, - 0x9AA7, 0xC299, 0x9AA8, 0xC29A, 0x9AA9, 0xC29C, 0x9AAA, 0xC29E, - 0x9AAB, 0xC29F, 0x9AAC, 0xC2A0, 0x9AAD, 0xC2A1, 0x9AAE, 0xC2A2, - 0x9AAF, 0xC2A3, 0x9AB0, 0xC2A6, 0x9AB1, 0xC2A7, 0x9AB2, 0xC2A9, - 0x9AB3, 0xC2AA, 0x9AB4, 0xC2AB, 0x9AB5, 0xC2AE, 0x9AB6, 0xC2AF, - 0x9AB7, 0xC2B0, 0x9AB8, 0xC2B1, 0x9AB9, 0xC2B2, 0x9ABA, 0xC2B3, - 0x9ABB, 0xC2B6, 0x9ABC, 0xC2B8, 0x9ABD, 0xC2BA, 0x9ABE, 0xC2BB, - 0x9ABF, 0xC2BC, 0x9AC0, 0xC2BD, 0x9AC1, 0xC2BE, 0x9AC2, 0xC2BF, - 0x9AC3, 0xC2C0, 0x9AC4, 0xC2C1, 0x9AC5, 0xC2C2, 0x9AC6, 0xC2C3, - 0x9AC7, 0xC2C4, 0x9AC8, 0xC2C5, 0x9AC9, 0xC2C6, 0x9ACA, 0xC2C7, - 0x9ACB, 0xC2C8, 0x9ACC, 0xC2C9, 0x9ACD, 0xC2CA, 0x9ACE, 0xC2CB, - 0x9ACF, 0xC2CC, 0x9AD0, 0xC2CD, 0x9AD1, 0xC2CE, 0x9AD2, 0xC2CF, - 0x9AD3, 0xC2D0, 0x9AD4, 0xC2D1, 0x9AD5, 0xC2D2, 0x9AD6, 0xC2D3, - 0x9AD7, 0xC2D4, 0x9AD8, 0xC2D5, 0x9AD9, 0xC2D6, 0x9ADA, 0xC2D7, - 0x9ADB, 0xC2D8, 0x9ADC, 0xC2D9, 0x9ADD, 0xC2DA, 0x9ADE, 0xC2DB, - 0x9ADF, 0xC2DE, 0x9AE0, 0xC2DF, 0x9AE1, 0xC2E1, 0x9AE2, 0xC2E2, - 0x9AE3, 0xC2E5, 0x9AE4, 0xC2E6, 0x9AE5, 0xC2E7, 0x9AE6, 0xC2E8, - 0x9AE7, 0xC2E9, 0x9AE8, 0xC2EA, 0x9AE9, 0xC2EE, 0x9AEA, 0xC2F0, - 0x9AEB, 0xC2F2, 0x9AEC, 0xC2F3, 0x9AED, 0xC2F4, 0x9AEE, 0xC2F5, - 0x9AEF, 0xC2F7, 0x9AF0, 0xC2FA, 0x9AF1, 0xC2FD, 0x9AF2, 0xC2FE, - 0x9AF3, 0xC2FF, 0x9AF4, 0xC301, 0x9AF5, 0xC302, 0x9AF6, 0xC303, - 0x9AF7, 0xC304, 0x9AF8, 0xC305, 0x9AF9, 0xC306, 0x9AFA, 0xC307, - 0x9AFB, 0xC30A, 0x9AFC, 0xC30B, 0x9AFD, 0xC30E, 0x9AFE, 0xC30F, - 0x9B41, 0xC310, 0x9B42, 0xC311, 0x9B43, 0xC312, 0x9B44, 0xC316, - 0x9B45, 0xC317, 0x9B46, 0xC319, 0x9B47, 0xC31A, 0x9B48, 0xC31B, - 0x9B49, 0xC31D, 0x9B4A, 0xC31E, 0x9B4B, 0xC31F, 0x9B4C, 0xC320, - 0x9B4D, 0xC321, 0x9B4E, 0xC322, 0x9B4F, 0xC323, 0x9B50, 0xC326, - 0x9B51, 0xC327, 0x9B52, 0xC32A, 0x9B53, 0xC32B, 0x9B54, 0xC32C, - 0x9B55, 0xC32D, 0x9B56, 0xC32E, 0x9B57, 0xC32F, 0x9B58, 0xC330, - 0x9B59, 0xC331, 0x9B5A, 0xC332, 0x9B61, 0xC333, 0x9B62, 0xC334, - 0x9B63, 0xC335, 0x9B64, 0xC336, 0x9B65, 0xC337, 0x9B66, 0xC338, - 0x9B67, 0xC339, 0x9B68, 0xC33A, 0x9B69, 0xC33B, 0x9B6A, 0xC33C, - 0x9B6B, 0xC33D, 0x9B6C, 0xC33E, 0x9B6D, 0xC33F, 0x9B6E, 0xC340, - 0x9B6F, 0xC341, 0x9B70, 0xC342, 0x9B71, 0xC343, 0x9B72, 0xC344, - 0x9B73, 0xC346, 0x9B74, 0xC347, 0x9B75, 0xC348, 0x9B76, 0xC349, - 0x9B77, 0xC34A, 0x9B78, 0xC34B, 0x9B79, 0xC34C, 0x9B7A, 0xC34D, - 0x9B81, 0xC34E, 0x9B82, 0xC34F, 0x9B83, 0xC350, 0x9B84, 0xC351, - 0x9B85, 0xC352, 0x9B86, 0xC353, 0x9B87, 0xC354, 0x9B88, 0xC355, - 0x9B89, 0xC356, 0x9B8A, 0xC357, 0x9B8B, 0xC358, 0x9B8C, 0xC359, - 0x9B8D, 0xC35A, 0x9B8E, 0xC35B, 0x9B8F, 0xC35C, 0x9B90, 0xC35D, - 0x9B91, 0xC35E, 0x9B92, 0xC35F, 0x9B93, 0xC360, 0x9B94, 0xC361, - 0x9B95, 0xC362, 0x9B96, 0xC363, 0x9B97, 0xC364, 0x9B98, 0xC365, - 0x9B99, 0xC366, 0x9B9A, 0xC367, 0x9B9B, 0xC36A, 0x9B9C, 0xC36B, - 0x9B9D, 0xC36D, 0x9B9E, 0xC36E, 0x9B9F, 0xC36F, 0x9BA0, 0xC371, - 0x9BA1, 0xC373, 0x9BA2, 0xC374, 0x9BA3, 0xC375, 0x9BA4, 0xC376, - 0x9BA5, 0xC377, 0x9BA6, 0xC37A, 0x9BA7, 0xC37B, 0x9BA8, 0xC37E, - 0x9BA9, 0xC37F, 0x9BAA, 0xC380, 0x9BAB, 0xC381, 0x9BAC, 0xC382, - 0x9BAD, 0xC383, 0x9BAE, 0xC385, 0x9BAF, 0xC386, 0x9BB0, 0xC387, - 0x9BB1, 0xC389, 0x9BB2, 0xC38A, 0x9BB3, 0xC38B, 0x9BB4, 0xC38D, - 0x9BB5, 0xC38E, 0x9BB6, 0xC38F, 0x9BB7, 0xC390, 0x9BB8, 0xC391, - 0x9BB9, 0xC392, 0x9BBA, 0xC393, 0x9BBB, 0xC394, 0x9BBC, 0xC395, - 0x9BBD, 0xC396, 0x9BBE, 0xC397, 0x9BBF, 0xC398, 0x9BC0, 0xC399, - 0x9BC1, 0xC39A, 0x9BC2, 0xC39B, 0x9BC3, 0xC39C, 0x9BC4, 0xC39D, - 0x9BC5, 0xC39E, 0x9BC6, 0xC39F, 0x9BC7, 0xC3A0, 0x9BC8, 0xC3A1, - 0x9BC9, 0xC3A2, 0x9BCA, 0xC3A3, 0x9BCB, 0xC3A4, 0x9BCC, 0xC3A5, - 0x9BCD, 0xC3A6, 0x9BCE, 0xC3A7, 0x9BCF, 0xC3A8, 0x9BD0, 0xC3A9, - 0x9BD1, 0xC3AA, 0x9BD2, 0xC3AB, 0x9BD3, 0xC3AC, 0x9BD4, 0xC3AD, - 0x9BD5, 0xC3AE, 0x9BD6, 0xC3AF, 0x9BD7, 0xC3B0, 0x9BD8, 0xC3B1, - 0x9BD9, 0xC3B2, 0x9BDA, 0xC3B3, 0x9BDB, 0xC3B4, 0x9BDC, 0xC3B5, - 0x9BDD, 0xC3B6, 0x9BDE, 0xC3B7, 0x9BDF, 0xC3B8, 0x9BE0, 0xC3B9, - 0x9BE1, 0xC3BA, 0x9BE2, 0xC3BB, 0x9BE3, 0xC3BC, 0x9BE4, 0xC3BD, - 0x9BE5, 0xC3BE, 0x9BE6, 0xC3BF, 0x9BE7, 0xC3C1, 0x9BE8, 0xC3C2, - 0x9BE9, 0xC3C3, 0x9BEA, 0xC3C4, 0x9BEB, 0xC3C5, 0x9BEC, 0xC3C6, - 0x9BED, 0xC3C7, 0x9BEE, 0xC3C8, 0x9BEF, 0xC3C9, 0x9BF0, 0xC3CA, - 0x9BF1, 0xC3CB, 0x9BF2, 0xC3CC, 0x9BF3, 0xC3CD, 0x9BF4, 0xC3CE, - 0x9BF5, 0xC3CF, 0x9BF6, 0xC3D0, 0x9BF7, 0xC3D1, 0x9BF8, 0xC3D2, - 0x9BF9, 0xC3D3, 0x9BFA, 0xC3D4, 0x9BFB, 0xC3D5, 0x9BFC, 0xC3D6, - 0x9BFD, 0xC3D7, 0x9BFE, 0xC3DA, 0x9C41, 0xC3DB, 0x9C42, 0xC3DD, - 0x9C43, 0xC3DE, 0x9C44, 0xC3E1, 0x9C45, 0xC3E3, 0x9C46, 0xC3E4, - 0x9C47, 0xC3E5, 0x9C48, 0xC3E6, 0x9C49, 0xC3E7, 0x9C4A, 0xC3EA, - 0x9C4B, 0xC3EB, 0x9C4C, 0xC3EC, 0x9C4D, 0xC3EE, 0x9C4E, 0xC3EF, - 0x9C4F, 0xC3F0, 0x9C50, 0xC3F1, 0x9C51, 0xC3F2, 0x9C52, 0xC3F3, - 0x9C53, 0xC3F6, 0x9C54, 0xC3F7, 0x9C55, 0xC3F9, 0x9C56, 0xC3FA, - 0x9C57, 0xC3FB, 0x9C58, 0xC3FC, 0x9C59, 0xC3FD, 0x9C5A, 0xC3FE, - 0x9C61, 0xC3FF, 0x9C62, 0xC400, 0x9C63, 0xC401, 0x9C64, 0xC402, - 0x9C65, 0xC403, 0x9C66, 0xC404, 0x9C67, 0xC405, 0x9C68, 0xC406, - 0x9C69, 0xC407, 0x9C6A, 0xC409, 0x9C6B, 0xC40A, 0x9C6C, 0xC40B, - 0x9C6D, 0xC40C, 0x9C6E, 0xC40D, 0x9C6F, 0xC40E, 0x9C70, 0xC40F, - 0x9C71, 0xC411, 0x9C72, 0xC412, 0x9C73, 0xC413, 0x9C74, 0xC414, - 0x9C75, 0xC415, 0x9C76, 0xC416, 0x9C77, 0xC417, 0x9C78, 0xC418, - 0x9C79, 0xC419, 0x9C7A, 0xC41A, 0x9C81, 0xC41B, 0x9C82, 0xC41C, - 0x9C83, 0xC41D, 0x9C84, 0xC41E, 0x9C85, 0xC41F, 0x9C86, 0xC420, - 0x9C87, 0xC421, 0x9C88, 0xC422, 0x9C89, 0xC423, 0x9C8A, 0xC425, - 0x9C8B, 0xC426, 0x9C8C, 0xC427, 0x9C8D, 0xC428, 0x9C8E, 0xC429, - 0x9C8F, 0xC42A, 0x9C90, 0xC42B, 0x9C91, 0xC42D, 0x9C92, 0xC42E, - 0x9C93, 0xC42F, 0x9C94, 0xC431, 0x9C95, 0xC432, 0x9C96, 0xC433, - 0x9C97, 0xC435, 0x9C98, 0xC436, 0x9C99, 0xC437, 0x9C9A, 0xC438, - 0x9C9B, 0xC439, 0x9C9C, 0xC43A, 0x9C9D, 0xC43B, 0x9C9E, 0xC43E, - 0x9C9F, 0xC43F, 0x9CA0, 0xC440, 0x9CA1, 0xC441, 0x9CA2, 0xC442, - 0x9CA3, 0xC443, 0x9CA4, 0xC444, 0x9CA5, 0xC445, 0x9CA6, 0xC446, - 0x9CA7, 0xC447, 0x9CA8, 0xC449, 0x9CA9, 0xC44A, 0x9CAA, 0xC44B, - 0x9CAB, 0xC44C, 0x9CAC, 0xC44D, 0x9CAD, 0xC44E, 0x9CAE, 0xC44F, - 0x9CAF, 0xC450, 0x9CB0, 0xC451, 0x9CB1, 0xC452, 0x9CB2, 0xC453, - 0x9CB3, 0xC454, 0x9CB4, 0xC455, 0x9CB5, 0xC456, 0x9CB6, 0xC457, - 0x9CB7, 0xC458, 0x9CB8, 0xC459, 0x9CB9, 0xC45A, 0x9CBA, 0xC45B, - 0x9CBB, 0xC45C, 0x9CBC, 0xC45D, 0x9CBD, 0xC45E, 0x9CBE, 0xC45F, - 0x9CBF, 0xC460, 0x9CC0, 0xC461, 0x9CC1, 0xC462, 0x9CC2, 0xC463, - 0x9CC3, 0xC466, 0x9CC4, 0xC467, 0x9CC5, 0xC469, 0x9CC6, 0xC46A, - 0x9CC7, 0xC46B, 0x9CC8, 0xC46D, 0x9CC9, 0xC46E, 0x9CCA, 0xC46F, - 0x9CCB, 0xC470, 0x9CCC, 0xC471, 0x9CCD, 0xC472, 0x9CCE, 0xC473, - 0x9CCF, 0xC476, 0x9CD0, 0xC477, 0x9CD1, 0xC478, 0x9CD2, 0xC47A, - 0x9CD3, 0xC47B, 0x9CD4, 0xC47C, 0x9CD5, 0xC47D, 0x9CD6, 0xC47E, - 0x9CD7, 0xC47F, 0x9CD8, 0xC481, 0x9CD9, 0xC482, 0x9CDA, 0xC483, - 0x9CDB, 0xC484, 0x9CDC, 0xC485, 0x9CDD, 0xC486, 0x9CDE, 0xC487, - 0x9CDF, 0xC488, 0x9CE0, 0xC489, 0x9CE1, 0xC48A, 0x9CE2, 0xC48B, - 0x9CE3, 0xC48C, 0x9CE4, 0xC48D, 0x9CE5, 0xC48E, 0x9CE6, 0xC48F, - 0x9CE7, 0xC490, 0x9CE8, 0xC491, 0x9CE9, 0xC492, 0x9CEA, 0xC493, - 0x9CEB, 0xC495, 0x9CEC, 0xC496, 0x9CED, 0xC497, 0x9CEE, 0xC498, - 0x9CEF, 0xC499, 0x9CF0, 0xC49A, 0x9CF1, 0xC49B, 0x9CF2, 0xC49D, - 0x9CF3, 0xC49E, 0x9CF4, 0xC49F, 0x9CF5, 0xC4A0, 0x9CF6, 0xC4A1, - 0x9CF7, 0xC4A2, 0x9CF8, 0xC4A3, 0x9CF9, 0xC4A4, 0x9CFA, 0xC4A5, - 0x9CFB, 0xC4A6, 0x9CFC, 0xC4A7, 0x9CFD, 0xC4A8, 0x9CFE, 0xC4A9, - 0x9D41, 0xC4AA, 0x9D42, 0xC4AB, 0x9D43, 0xC4AC, 0x9D44, 0xC4AD, - 0x9D45, 0xC4AE, 0x9D46, 0xC4AF, 0x9D47, 0xC4B0, 0x9D48, 0xC4B1, - 0x9D49, 0xC4B2, 0x9D4A, 0xC4B3, 0x9D4B, 0xC4B4, 0x9D4C, 0xC4B5, - 0x9D4D, 0xC4B6, 0x9D4E, 0xC4B7, 0x9D4F, 0xC4B9, 0x9D50, 0xC4BA, - 0x9D51, 0xC4BB, 0x9D52, 0xC4BD, 0x9D53, 0xC4BE, 0x9D54, 0xC4BF, - 0x9D55, 0xC4C0, 0x9D56, 0xC4C1, 0x9D57, 0xC4C2, 0x9D58, 0xC4C3, - 0x9D59, 0xC4C4, 0x9D5A, 0xC4C5, 0x9D61, 0xC4C6, 0x9D62, 0xC4C7, - 0x9D63, 0xC4C8, 0x9D64, 0xC4C9, 0x9D65, 0xC4CA, 0x9D66, 0xC4CB, - 0x9D67, 0xC4CC, 0x9D68, 0xC4CD, 0x9D69, 0xC4CE, 0x9D6A, 0xC4CF, - 0x9D6B, 0xC4D0, 0x9D6C, 0xC4D1, 0x9D6D, 0xC4D2, 0x9D6E, 0xC4D3, - 0x9D6F, 0xC4D4, 0x9D70, 0xC4D5, 0x9D71, 0xC4D6, 0x9D72, 0xC4D7, - 0x9D73, 0xC4D8, 0x9D74, 0xC4D9, 0x9D75, 0xC4DA, 0x9D76, 0xC4DB, - 0x9D77, 0xC4DC, 0x9D78, 0xC4DD, 0x9D79, 0xC4DE, 0x9D7A, 0xC4DF, - 0x9D81, 0xC4E0, 0x9D82, 0xC4E1, 0x9D83, 0xC4E2, 0x9D84, 0xC4E3, - 0x9D85, 0xC4E4, 0x9D86, 0xC4E5, 0x9D87, 0xC4E6, 0x9D88, 0xC4E7, - 0x9D89, 0xC4E8, 0x9D8A, 0xC4EA, 0x9D8B, 0xC4EB, 0x9D8C, 0xC4EC, - 0x9D8D, 0xC4ED, 0x9D8E, 0xC4EE, 0x9D8F, 0xC4EF, 0x9D90, 0xC4F2, - 0x9D91, 0xC4F3, 0x9D92, 0xC4F5, 0x9D93, 0xC4F6, 0x9D94, 0xC4F7, - 0x9D95, 0xC4F9, 0x9D96, 0xC4FB, 0x9D97, 0xC4FC, 0x9D98, 0xC4FD, - 0x9D99, 0xC4FE, 0x9D9A, 0xC502, 0x9D9B, 0xC503, 0x9D9C, 0xC504, - 0x9D9D, 0xC505, 0x9D9E, 0xC506, 0x9D9F, 0xC507, 0x9DA0, 0xC508, - 0x9DA1, 0xC509, 0x9DA2, 0xC50A, 0x9DA3, 0xC50B, 0x9DA4, 0xC50D, - 0x9DA5, 0xC50E, 0x9DA6, 0xC50F, 0x9DA7, 0xC511, 0x9DA8, 0xC512, - 0x9DA9, 0xC513, 0x9DAA, 0xC515, 0x9DAB, 0xC516, 0x9DAC, 0xC517, - 0x9DAD, 0xC518, 0x9DAE, 0xC519, 0x9DAF, 0xC51A, 0x9DB0, 0xC51B, - 0x9DB1, 0xC51D, 0x9DB2, 0xC51E, 0x9DB3, 0xC51F, 0x9DB4, 0xC520, - 0x9DB5, 0xC521, 0x9DB6, 0xC522, 0x9DB7, 0xC523, 0x9DB8, 0xC524, - 0x9DB9, 0xC525, 0x9DBA, 0xC526, 0x9DBB, 0xC527, 0x9DBC, 0xC52A, - 0x9DBD, 0xC52B, 0x9DBE, 0xC52D, 0x9DBF, 0xC52E, 0x9DC0, 0xC52F, - 0x9DC1, 0xC531, 0x9DC2, 0xC532, 0x9DC3, 0xC533, 0x9DC4, 0xC534, - 0x9DC5, 0xC535, 0x9DC6, 0xC536, 0x9DC7, 0xC537, 0x9DC8, 0xC53A, - 0x9DC9, 0xC53C, 0x9DCA, 0xC53E, 0x9DCB, 0xC53F, 0x9DCC, 0xC540, - 0x9DCD, 0xC541, 0x9DCE, 0xC542, 0x9DCF, 0xC543, 0x9DD0, 0xC546, - 0x9DD1, 0xC547, 0x9DD2, 0xC54B, 0x9DD3, 0xC54F, 0x9DD4, 0xC550, - 0x9DD5, 0xC551, 0x9DD6, 0xC552, 0x9DD7, 0xC556, 0x9DD8, 0xC55A, - 0x9DD9, 0xC55B, 0x9DDA, 0xC55C, 0x9DDB, 0xC55F, 0x9DDC, 0xC562, - 0x9DDD, 0xC563, 0x9DDE, 0xC565, 0x9DDF, 0xC566, 0x9DE0, 0xC567, - 0x9DE1, 0xC569, 0x9DE2, 0xC56A, 0x9DE3, 0xC56B, 0x9DE4, 0xC56C, - 0x9DE5, 0xC56D, 0x9DE6, 0xC56E, 0x9DE7, 0xC56F, 0x9DE8, 0xC572, - 0x9DE9, 0xC576, 0x9DEA, 0xC577, 0x9DEB, 0xC578, 0x9DEC, 0xC579, - 0x9DED, 0xC57A, 0x9DEE, 0xC57B, 0x9DEF, 0xC57E, 0x9DF0, 0xC57F, - 0x9DF1, 0xC581, 0x9DF2, 0xC582, 0x9DF3, 0xC583, 0x9DF4, 0xC585, - 0x9DF5, 0xC586, 0x9DF6, 0xC588, 0x9DF7, 0xC589, 0x9DF8, 0xC58A, - 0x9DF9, 0xC58B, 0x9DFA, 0xC58E, 0x9DFB, 0xC590, 0x9DFC, 0xC592, - 0x9DFD, 0xC593, 0x9DFE, 0xC594, 0x9E41, 0xC596, 0x9E42, 0xC599, - 0x9E43, 0xC59A, 0x9E44, 0xC59B, 0x9E45, 0xC59D, 0x9E46, 0xC59E, - 0x9E47, 0xC59F, 0x9E48, 0xC5A1, 0x9E49, 0xC5A2, 0x9E4A, 0xC5A3, - 0x9E4B, 0xC5A4, 0x9E4C, 0xC5A5, 0x9E4D, 0xC5A6, 0x9E4E, 0xC5A7, - 0x9E4F, 0xC5A8, 0x9E50, 0xC5AA, 0x9E51, 0xC5AB, 0x9E52, 0xC5AC, - 0x9E53, 0xC5AD, 0x9E54, 0xC5AE, 0x9E55, 0xC5AF, 0x9E56, 0xC5B0, - 0x9E57, 0xC5B1, 0x9E58, 0xC5B2, 0x9E59, 0xC5B3, 0x9E5A, 0xC5B6, - 0x9E61, 0xC5B7, 0x9E62, 0xC5BA, 0x9E63, 0xC5BF, 0x9E64, 0xC5C0, - 0x9E65, 0xC5C1, 0x9E66, 0xC5C2, 0x9E67, 0xC5C3, 0x9E68, 0xC5CB, - 0x9E69, 0xC5CD, 0x9E6A, 0xC5CF, 0x9E6B, 0xC5D2, 0x9E6C, 0xC5D3, - 0x9E6D, 0xC5D5, 0x9E6E, 0xC5D6, 0x9E6F, 0xC5D7, 0x9E70, 0xC5D9, - 0x9E71, 0xC5DA, 0x9E72, 0xC5DB, 0x9E73, 0xC5DC, 0x9E74, 0xC5DD, - 0x9E75, 0xC5DE, 0x9E76, 0xC5DF, 0x9E77, 0xC5E2, 0x9E78, 0xC5E4, - 0x9E79, 0xC5E6, 0x9E7A, 0xC5E7, 0x9E81, 0xC5E8, 0x9E82, 0xC5E9, - 0x9E83, 0xC5EA, 0x9E84, 0xC5EB, 0x9E85, 0xC5EF, 0x9E86, 0xC5F1, - 0x9E87, 0xC5F2, 0x9E88, 0xC5F3, 0x9E89, 0xC5F5, 0x9E8A, 0xC5F8, - 0x9E8B, 0xC5F9, 0x9E8C, 0xC5FA, 0x9E8D, 0xC5FB, 0x9E8E, 0xC602, - 0x9E8F, 0xC603, 0x9E90, 0xC604, 0x9E91, 0xC609, 0x9E92, 0xC60A, - 0x9E93, 0xC60B, 0x9E94, 0xC60D, 0x9E95, 0xC60E, 0x9E96, 0xC60F, - 0x9E97, 0xC611, 0x9E98, 0xC612, 0x9E99, 0xC613, 0x9E9A, 0xC614, - 0x9E9B, 0xC615, 0x9E9C, 0xC616, 0x9E9D, 0xC617, 0x9E9E, 0xC61A, - 0x9E9F, 0xC61D, 0x9EA0, 0xC61E, 0x9EA1, 0xC61F, 0x9EA2, 0xC620, - 0x9EA3, 0xC621, 0x9EA4, 0xC622, 0x9EA5, 0xC623, 0x9EA6, 0xC626, - 0x9EA7, 0xC627, 0x9EA8, 0xC629, 0x9EA9, 0xC62A, 0x9EAA, 0xC62B, - 0x9EAB, 0xC62F, 0x9EAC, 0xC631, 0x9EAD, 0xC632, 0x9EAE, 0xC636, - 0x9EAF, 0xC638, 0x9EB0, 0xC63A, 0x9EB1, 0xC63C, 0x9EB2, 0xC63D, - 0x9EB3, 0xC63E, 0x9EB4, 0xC63F, 0x9EB5, 0xC642, 0x9EB6, 0xC643, - 0x9EB7, 0xC645, 0x9EB8, 0xC646, 0x9EB9, 0xC647, 0x9EBA, 0xC649, - 0x9EBB, 0xC64A, 0x9EBC, 0xC64B, 0x9EBD, 0xC64C, 0x9EBE, 0xC64D, - 0x9EBF, 0xC64E, 0x9EC0, 0xC64F, 0x9EC1, 0xC652, 0x9EC2, 0xC656, - 0x9EC3, 0xC657, 0x9EC4, 0xC658, 0x9EC5, 0xC659, 0x9EC6, 0xC65A, - 0x9EC7, 0xC65B, 0x9EC8, 0xC65E, 0x9EC9, 0xC65F, 0x9ECA, 0xC661, - 0x9ECB, 0xC662, 0x9ECC, 0xC663, 0x9ECD, 0xC664, 0x9ECE, 0xC665, - 0x9ECF, 0xC666, 0x9ED0, 0xC667, 0x9ED1, 0xC668, 0x9ED2, 0xC669, - 0x9ED3, 0xC66A, 0x9ED4, 0xC66B, 0x9ED5, 0xC66D, 0x9ED6, 0xC66E, - 0x9ED7, 0xC670, 0x9ED8, 0xC672, 0x9ED9, 0xC673, 0x9EDA, 0xC674, - 0x9EDB, 0xC675, 0x9EDC, 0xC676, 0x9EDD, 0xC677, 0x9EDE, 0xC67A, - 0x9EDF, 0xC67B, 0x9EE0, 0xC67D, 0x9EE1, 0xC67E, 0x9EE2, 0xC67F, - 0x9EE3, 0xC681, 0x9EE4, 0xC682, 0x9EE5, 0xC683, 0x9EE6, 0xC684, - 0x9EE7, 0xC685, 0x9EE8, 0xC686, 0x9EE9, 0xC687, 0x9EEA, 0xC68A, - 0x9EEB, 0xC68C, 0x9EEC, 0xC68E, 0x9EED, 0xC68F, 0x9EEE, 0xC690, - 0x9EEF, 0xC691, 0x9EF0, 0xC692, 0x9EF1, 0xC693, 0x9EF2, 0xC696, - 0x9EF3, 0xC697, 0x9EF4, 0xC699, 0x9EF5, 0xC69A, 0x9EF6, 0xC69B, - 0x9EF7, 0xC69D, 0x9EF8, 0xC69E, 0x9EF9, 0xC69F, 0x9EFA, 0xC6A0, - 0x9EFB, 0xC6A1, 0x9EFC, 0xC6A2, 0x9EFD, 0xC6A3, 0x9EFE, 0xC6A6, - 0x9F41, 0xC6A8, 0x9F42, 0xC6AA, 0x9F43, 0xC6AB, 0x9F44, 0xC6AC, - 0x9F45, 0xC6AD, 0x9F46, 0xC6AE, 0x9F47, 0xC6AF, 0x9F48, 0xC6B2, - 0x9F49, 0xC6B3, 0x9F4A, 0xC6B5, 0x9F4B, 0xC6B6, 0x9F4C, 0xC6B7, - 0x9F4D, 0xC6BB, 0x9F4E, 0xC6BC, 0x9F4F, 0xC6BD, 0x9F50, 0xC6BE, - 0x9F51, 0xC6BF, 0x9F52, 0xC6C2, 0x9F53, 0xC6C4, 0x9F54, 0xC6C6, - 0x9F55, 0xC6C7, 0x9F56, 0xC6C8, 0x9F57, 0xC6C9, 0x9F58, 0xC6CA, - 0x9F59, 0xC6CB, 0x9F5A, 0xC6CE, 0x9F61, 0xC6CF, 0x9F62, 0xC6D1, - 0x9F63, 0xC6D2, 0x9F64, 0xC6D3, 0x9F65, 0xC6D5, 0x9F66, 0xC6D6, - 0x9F67, 0xC6D7, 0x9F68, 0xC6D8, 0x9F69, 0xC6D9, 0x9F6A, 0xC6DA, - 0x9F6B, 0xC6DB, 0x9F6C, 0xC6DE, 0x9F6D, 0xC6DF, 0x9F6E, 0xC6E2, - 0x9F6F, 0xC6E3, 0x9F70, 0xC6E4, 0x9F71, 0xC6E5, 0x9F72, 0xC6E6, - 0x9F73, 0xC6E7, 0x9F74, 0xC6EA, 0x9F75, 0xC6EB, 0x9F76, 0xC6ED, - 0x9F77, 0xC6EE, 0x9F78, 0xC6EF, 0x9F79, 0xC6F1, 0x9F7A, 0xC6F2, - 0x9F81, 0xC6F3, 0x9F82, 0xC6F4, 0x9F83, 0xC6F5, 0x9F84, 0xC6F6, - 0x9F85, 0xC6F7, 0x9F86, 0xC6FA, 0x9F87, 0xC6FB, 0x9F88, 0xC6FC, - 0x9F89, 0xC6FE, 0x9F8A, 0xC6FF, 0x9F8B, 0xC700, 0x9F8C, 0xC701, - 0x9F8D, 0xC702, 0x9F8E, 0xC703, 0x9F8F, 0xC706, 0x9F90, 0xC707, - 0x9F91, 0xC709, 0x9F92, 0xC70A, 0x9F93, 0xC70B, 0x9F94, 0xC70D, - 0x9F95, 0xC70E, 0x9F96, 0xC70F, 0x9F97, 0xC710, 0x9F98, 0xC711, - 0x9F99, 0xC712, 0x9F9A, 0xC713, 0x9F9B, 0xC716, 0x9F9C, 0xC718, - 0x9F9D, 0xC71A, 0x9F9E, 0xC71B, 0x9F9F, 0xC71C, 0x9FA0, 0xC71D, - 0x9FA1, 0xC71E, 0x9FA2, 0xC71F, 0x9FA3, 0xC722, 0x9FA4, 0xC723, - 0x9FA5, 0xC725, 0x9FA6, 0xC726, 0x9FA7, 0xC727, 0x9FA8, 0xC729, - 0x9FA9, 0xC72A, 0x9FAA, 0xC72B, 0x9FAB, 0xC72C, 0x9FAC, 0xC72D, - 0x9FAD, 0xC72E, 0x9FAE, 0xC72F, 0x9FAF, 0xC732, 0x9FB0, 0xC734, - 0x9FB1, 0xC736, 0x9FB2, 0xC738, 0x9FB3, 0xC739, 0x9FB4, 0xC73A, - 0x9FB5, 0xC73B, 0x9FB6, 0xC73E, 0x9FB7, 0xC73F, 0x9FB8, 0xC741, - 0x9FB9, 0xC742, 0x9FBA, 0xC743, 0x9FBB, 0xC745, 0x9FBC, 0xC746, - 0x9FBD, 0xC747, 0x9FBE, 0xC748, 0x9FBF, 0xC749, 0x9FC0, 0xC74B, - 0x9FC1, 0xC74E, 0x9FC2, 0xC750, 0x9FC3, 0xC759, 0x9FC4, 0xC75A, - 0x9FC5, 0xC75B, 0x9FC6, 0xC75D, 0x9FC7, 0xC75E, 0x9FC8, 0xC75F, - 0x9FC9, 0xC761, 0x9FCA, 0xC762, 0x9FCB, 0xC763, 0x9FCC, 0xC764, - 0x9FCD, 0xC765, 0x9FCE, 0xC766, 0x9FCF, 0xC767, 0x9FD0, 0xC769, - 0x9FD1, 0xC76A, 0x9FD2, 0xC76C, 0x9FD3, 0xC76D, 0x9FD4, 0xC76E, - 0x9FD5, 0xC76F, 0x9FD6, 0xC770, 0x9FD7, 0xC771, 0x9FD8, 0xC772, - 0x9FD9, 0xC773, 0x9FDA, 0xC776, 0x9FDB, 0xC777, 0x9FDC, 0xC779, - 0x9FDD, 0xC77A, 0x9FDE, 0xC77B, 0x9FDF, 0xC77F, 0x9FE0, 0xC780, - 0x9FE1, 0xC781, 0x9FE2, 0xC782, 0x9FE3, 0xC786, 0x9FE4, 0xC78B, - 0x9FE5, 0xC78C, 0x9FE6, 0xC78D, 0x9FE7, 0xC78F, 0x9FE8, 0xC792, - 0x9FE9, 0xC793, 0x9FEA, 0xC795, 0x9FEB, 0xC799, 0x9FEC, 0xC79B, - 0x9FED, 0xC79C, 0x9FEE, 0xC79D, 0x9FEF, 0xC79E, 0x9FF0, 0xC79F, - 0x9FF1, 0xC7A2, 0x9FF2, 0xC7A7, 0x9FF3, 0xC7A8, 0x9FF4, 0xC7A9, - 0x9FF5, 0xC7AA, 0x9FF6, 0xC7AB, 0x9FF7, 0xC7AE, 0x9FF8, 0xC7AF, - 0x9FF9, 0xC7B1, 0x9FFA, 0xC7B2, 0x9FFB, 0xC7B3, 0x9FFC, 0xC7B5, - 0x9FFD, 0xC7B6, 0x9FFE, 0xC7B7, 0xA041, 0xC7B8, 0xA042, 0xC7B9, - 0xA043, 0xC7BA, 0xA044, 0xC7BB, 0xA045, 0xC7BE, 0xA046, 0xC7C2, - 0xA047, 0xC7C3, 0xA048, 0xC7C4, 0xA049, 0xC7C5, 0xA04A, 0xC7C6, - 0xA04B, 0xC7C7, 0xA04C, 0xC7CA, 0xA04D, 0xC7CB, 0xA04E, 0xC7CD, - 0xA04F, 0xC7CF, 0xA050, 0xC7D1, 0xA051, 0xC7D2, 0xA052, 0xC7D3, - 0xA053, 0xC7D4, 0xA054, 0xC7D5, 0xA055, 0xC7D6, 0xA056, 0xC7D7, - 0xA057, 0xC7D9, 0xA058, 0xC7DA, 0xA059, 0xC7DB, 0xA05A, 0xC7DC, - 0xA061, 0xC7DE, 0xA062, 0xC7DF, 0xA063, 0xC7E0, 0xA064, 0xC7E1, - 0xA065, 0xC7E2, 0xA066, 0xC7E3, 0xA067, 0xC7E5, 0xA068, 0xC7E6, - 0xA069, 0xC7E7, 0xA06A, 0xC7E9, 0xA06B, 0xC7EA, 0xA06C, 0xC7EB, - 0xA06D, 0xC7ED, 0xA06E, 0xC7EE, 0xA06F, 0xC7EF, 0xA070, 0xC7F0, - 0xA071, 0xC7F1, 0xA072, 0xC7F2, 0xA073, 0xC7F3, 0xA074, 0xC7F4, - 0xA075, 0xC7F5, 0xA076, 0xC7F6, 0xA077, 0xC7F7, 0xA078, 0xC7F8, - 0xA079, 0xC7F9, 0xA07A, 0xC7FA, 0xA081, 0xC7FB, 0xA082, 0xC7FC, - 0xA083, 0xC7FD, 0xA084, 0xC7FE, 0xA085, 0xC7FF, 0xA086, 0xC802, - 0xA087, 0xC803, 0xA088, 0xC805, 0xA089, 0xC806, 0xA08A, 0xC807, - 0xA08B, 0xC809, 0xA08C, 0xC80B, 0xA08D, 0xC80C, 0xA08E, 0xC80D, - 0xA08F, 0xC80E, 0xA090, 0xC80F, 0xA091, 0xC812, 0xA092, 0xC814, - 0xA093, 0xC817, 0xA094, 0xC818, 0xA095, 0xC819, 0xA096, 0xC81A, - 0xA097, 0xC81B, 0xA098, 0xC81E, 0xA099, 0xC81F, 0xA09A, 0xC821, - 0xA09B, 0xC822, 0xA09C, 0xC823, 0xA09D, 0xC825, 0xA09E, 0xC826, - 0xA09F, 0xC827, 0xA0A0, 0xC828, 0xA0A1, 0xC829, 0xA0A2, 0xC82A, - 0xA0A3, 0xC82B, 0xA0A4, 0xC82E, 0xA0A5, 0xC830, 0xA0A6, 0xC832, - 0xA0A7, 0xC833, 0xA0A8, 0xC834, 0xA0A9, 0xC835, 0xA0AA, 0xC836, - 0xA0AB, 0xC837, 0xA0AC, 0xC839, 0xA0AD, 0xC83A, 0xA0AE, 0xC83B, - 0xA0AF, 0xC83D, 0xA0B0, 0xC83E, 0xA0B1, 0xC83F, 0xA0B2, 0xC841, - 0xA0B3, 0xC842, 0xA0B4, 0xC843, 0xA0B5, 0xC844, 0xA0B6, 0xC845, - 0xA0B7, 0xC846, 0xA0B8, 0xC847, 0xA0B9, 0xC84A, 0xA0BA, 0xC84B, - 0xA0BB, 0xC84E, 0xA0BC, 0xC84F, 0xA0BD, 0xC850, 0xA0BE, 0xC851, - 0xA0BF, 0xC852, 0xA0C0, 0xC853, 0xA0C1, 0xC855, 0xA0C2, 0xC856, - 0xA0C3, 0xC857, 0xA0C4, 0xC858, 0xA0C5, 0xC859, 0xA0C6, 0xC85A, - 0xA0C7, 0xC85B, 0xA0C8, 0xC85C, 0xA0C9, 0xC85D, 0xA0CA, 0xC85E, - 0xA0CB, 0xC85F, 0xA0CC, 0xC860, 0xA0CD, 0xC861, 0xA0CE, 0xC862, - 0xA0CF, 0xC863, 0xA0D0, 0xC864, 0xA0D1, 0xC865, 0xA0D2, 0xC866, - 0xA0D3, 0xC867, 0xA0D4, 0xC868, 0xA0D5, 0xC869, 0xA0D6, 0xC86A, - 0xA0D7, 0xC86B, 0xA0D8, 0xC86C, 0xA0D9, 0xC86D, 0xA0DA, 0xC86E, - 0xA0DB, 0xC86F, 0xA0DC, 0xC872, 0xA0DD, 0xC873, 0xA0DE, 0xC875, - 0xA0DF, 0xC876, 0xA0E0, 0xC877, 0xA0E1, 0xC879, 0xA0E2, 0xC87B, - 0xA0E3, 0xC87C, 0xA0E4, 0xC87D, 0xA0E5, 0xC87E, 0xA0E6, 0xC87F, - 0xA0E7, 0xC882, 0xA0E8, 0xC884, 0xA0E9, 0xC888, 0xA0EA, 0xC889, - 0xA0EB, 0xC88A, 0xA0EC, 0xC88E, 0xA0ED, 0xC88F, 0xA0EE, 0xC890, - 0xA0EF, 0xC891, 0xA0F0, 0xC892, 0xA0F1, 0xC893, 0xA0F2, 0xC895, - 0xA0F3, 0xC896, 0xA0F4, 0xC897, 0xA0F5, 0xC898, 0xA0F6, 0xC899, - 0xA0F7, 0xC89A, 0xA0F8, 0xC89B, 0xA0F9, 0xC89C, 0xA0FA, 0xC89E, - 0xA0FB, 0xC8A0, 0xA0FC, 0xC8A2, 0xA0FD, 0xC8A3, 0xA0FE, 0xC8A4, - 0xA141, 0xC8A5, 0xA142, 0xC8A6, 0xA143, 0xC8A7, 0xA144, 0xC8A9, - 0xA145, 0xC8AA, 0xA146, 0xC8AB, 0xA147, 0xC8AC, 0xA148, 0xC8AD, - 0xA149, 0xC8AE, 0xA14A, 0xC8AF, 0xA14B, 0xC8B0, 0xA14C, 0xC8B1, - 0xA14D, 0xC8B2, 0xA14E, 0xC8B3, 0xA14F, 0xC8B4, 0xA150, 0xC8B5, - 0xA151, 0xC8B6, 0xA152, 0xC8B7, 0xA153, 0xC8B8, 0xA154, 0xC8B9, - 0xA155, 0xC8BA, 0xA156, 0xC8BB, 0xA157, 0xC8BE, 0xA158, 0xC8BF, - 0xA159, 0xC8C0, 0xA15A, 0xC8C1, 0xA161, 0xC8C2, 0xA162, 0xC8C3, - 0xA163, 0xC8C5, 0xA164, 0xC8C6, 0xA165, 0xC8C7, 0xA166, 0xC8C9, - 0xA167, 0xC8CA, 0xA168, 0xC8CB, 0xA169, 0xC8CD, 0xA16A, 0xC8CE, - 0xA16B, 0xC8CF, 0xA16C, 0xC8D0, 0xA16D, 0xC8D1, 0xA16E, 0xC8D2, - 0xA16F, 0xC8D3, 0xA170, 0xC8D6, 0xA171, 0xC8D8, 0xA172, 0xC8DA, - 0xA173, 0xC8DB, 0xA174, 0xC8DC, 0xA175, 0xC8DD, 0xA176, 0xC8DE, - 0xA177, 0xC8DF, 0xA178, 0xC8E2, 0xA179, 0xC8E3, 0xA17A, 0xC8E5, - 0xA181, 0xC8E6, 0xA182, 0xC8E7, 0xA183, 0xC8E8, 0xA184, 0xC8E9, - 0xA185, 0xC8EA, 0xA186, 0xC8EB, 0xA187, 0xC8EC, 0xA188, 0xC8ED, - 0xA189, 0xC8EE, 0xA18A, 0xC8EF, 0xA18B, 0xC8F0, 0xA18C, 0xC8F1, - 0xA18D, 0xC8F2, 0xA18E, 0xC8F3, 0xA18F, 0xC8F4, 0xA190, 0xC8F6, - 0xA191, 0xC8F7, 0xA192, 0xC8F8, 0xA193, 0xC8F9, 0xA194, 0xC8FA, - 0xA195, 0xC8FB, 0xA196, 0xC8FE, 0xA197, 0xC8FF, 0xA198, 0xC901, - 0xA199, 0xC902, 0xA19A, 0xC903, 0xA19B, 0xC907, 0xA19C, 0xC908, - 0xA19D, 0xC909, 0xA19E, 0xC90A, 0xA19F, 0xC90B, 0xA1A0, 0xC90E, - 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, - 0xA1A5, 0x2025, 0xA1A6, 0x2026, 0xA1A7, 0x00A8, 0xA1A8, 0x3003, - 0xA1A9, 0x00AD, 0xA1AA, 0x2015, 0xA1AB, 0x2225, 0xA1AC, 0xFF3C, - 0xA1AD, 0x223C, 0xA1AE, 0x2018, 0xA1AF, 0x2019, 0xA1B0, 0x201C, - 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, - 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, 0xA1B8, 0x300C, - 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3010, - 0xA1BD, 0x3011, 0xA1BE, 0x00B1, 0xA1BF, 0x00D7, 0xA1C0, 0x00F7, - 0xA1C1, 0x2260, 0xA1C2, 0x2264, 0xA1C3, 0x2265, 0xA1C4, 0x221E, - 0xA1C5, 0x2234, 0xA1C6, 0x00B0, 0xA1C7, 0x2032, 0xA1C8, 0x2033, - 0xA1C9, 0x2103, 0xA1CA, 0x212B, 0xA1CB, 0xFFE0, 0xA1CC, 0xFFE1, - 0xA1CD, 0xFFE5, 0xA1CE, 0x2642, 0xA1CF, 0x2640, 0xA1D0, 0x2220, - 0xA1D1, 0x22A5, 0xA1D2, 0x2312, 0xA1D3, 0x2202, 0xA1D4, 0x2207, - 0xA1D5, 0x2261, 0xA1D6, 0x2252, 0xA1D7, 0x00A7, 0xA1D8, 0x203B, - 0xA1D9, 0x2606, 0xA1DA, 0x2605, 0xA1DB, 0x25CB, 0xA1DC, 0x25CF, - 0xA1DD, 0x25CE, 0xA1DE, 0x25C7, 0xA1DF, 0x25C6, 0xA1E0, 0x25A1, - 0xA1E1, 0x25A0, 0xA1E2, 0x25B3, 0xA1E3, 0x25B2, 0xA1E4, 0x25BD, - 0xA1E5, 0x25BC, 0xA1E6, 0x2192, 0xA1E7, 0x2190, 0xA1E8, 0x2191, - 0xA1E9, 0x2193, 0xA1EA, 0x2194, 0xA1EB, 0x3013, 0xA1EC, 0x226A, - 0xA1ED, 0x226B, 0xA1EE, 0x221A, 0xA1EF, 0x223D, 0xA1F0, 0x221D, - 0xA1F1, 0x2235, 0xA1F2, 0x222B, 0xA1F3, 0x222C, 0xA1F4, 0x2208, - 0xA1F5, 0x220B, 0xA1F6, 0x2286, 0xA1F7, 0x2287, 0xA1F8, 0x2282, - 0xA1F9, 0x2283, 0xA1FA, 0x222A, 0xA1FB, 0x2229, 0xA1FC, 0x2227, - 0xA1FD, 0x2228, 0xA1FE, 0xFFE2, 0xA241, 0xC910, 0xA242, 0xC912, - 0xA243, 0xC913, 0xA244, 0xC914, 0xA245, 0xC915, 0xA246, 0xC916, - 0xA247, 0xC917, 0xA248, 0xC919, 0xA249, 0xC91A, 0xA24A, 0xC91B, - 0xA24B, 0xC91C, 0xA24C, 0xC91D, 0xA24D, 0xC91E, 0xA24E, 0xC91F, - 0xA24F, 0xC920, 0xA250, 0xC921, 0xA251, 0xC922, 0xA252, 0xC923, - 0xA253, 0xC924, 0xA254, 0xC925, 0xA255, 0xC926, 0xA256, 0xC927, - 0xA257, 0xC928, 0xA258, 0xC929, 0xA259, 0xC92A, 0xA25A, 0xC92B, - 0xA261, 0xC92D, 0xA262, 0xC92E, 0xA263, 0xC92F, 0xA264, 0xC930, - 0xA265, 0xC931, 0xA266, 0xC932, 0xA267, 0xC933, 0xA268, 0xC935, - 0xA269, 0xC936, 0xA26A, 0xC937, 0xA26B, 0xC938, 0xA26C, 0xC939, - 0xA26D, 0xC93A, 0xA26E, 0xC93B, 0xA26F, 0xC93C, 0xA270, 0xC93D, - 0xA271, 0xC93E, 0xA272, 0xC93F, 0xA273, 0xC940, 0xA274, 0xC941, - 0xA275, 0xC942, 0xA276, 0xC943, 0xA277, 0xC944, 0xA278, 0xC945, - 0xA279, 0xC946, 0xA27A, 0xC947, 0xA281, 0xC948, 0xA282, 0xC949, - 0xA283, 0xC94A, 0xA284, 0xC94B, 0xA285, 0xC94C, 0xA286, 0xC94D, - 0xA287, 0xC94E, 0xA288, 0xC94F, 0xA289, 0xC952, 0xA28A, 0xC953, - 0xA28B, 0xC955, 0xA28C, 0xC956, 0xA28D, 0xC957, 0xA28E, 0xC959, - 0xA28F, 0xC95A, 0xA290, 0xC95B, 0xA291, 0xC95C, 0xA292, 0xC95D, - 0xA293, 0xC95E, 0xA294, 0xC95F, 0xA295, 0xC962, 0xA296, 0xC964, - 0xA297, 0xC965, 0xA298, 0xC966, 0xA299, 0xC967, 0xA29A, 0xC968, - 0xA29B, 0xC969, 0xA29C, 0xC96A, 0xA29D, 0xC96B, 0xA29E, 0xC96D, - 0xA29F, 0xC96E, 0xA2A0, 0xC96F, 0xA2A1, 0x21D2, 0xA2A2, 0x21D4, - 0xA2A3, 0x2200, 0xA2A4, 0x2203, 0xA2A5, 0x00B4, 0xA2A6, 0xFF5E, - 0xA2A7, 0x02C7, 0xA2A8, 0x02D8, 0xA2A9, 0x02DD, 0xA2AA, 0x02DA, - 0xA2AB, 0x02D9, 0xA2AC, 0x00B8, 0xA2AD, 0x02DB, 0xA2AE, 0x00A1, - 0xA2AF, 0x00BF, 0xA2B0, 0x02D0, 0xA2B1, 0x222E, 0xA2B2, 0x2211, - 0xA2B3, 0x220F, 0xA2B4, 0x00A4, 0xA2B5, 0x2109, 0xA2B6, 0x2030, - 0xA2B7, 0x25C1, 0xA2B8, 0x25C0, 0xA2B9, 0x25B7, 0xA2BA, 0x25B6, - 0xA2BB, 0x2664, 0xA2BC, 0x2660, 0xA2BD, 0x2661, 0xA2BE, 0x2665, - 0xA2BF, 0x2667, 0xA2C0, 0x2663, 0xA2C1, 0x2299, 0xA2C2, 0x25C8, - 0xA2C3, 0x25A3, 0xA2C4, 0x25D0, 0xA2C5, 0x25D1, 0xA2C6, 0x2592, - 0xA2C7, 0x25A4, 0xA2C8, 0x25A5, 0xA2C9, 0x25A8, 0xA2CA, 0x25A7, - 0xA2CB, 0x25A6, 0xA2CC, 0x25A9, 0xA2CD, 0x2668, 0xA2CE, 0x260F, - 0xA2CF, 0x260E, 0xA2D0, 0x261C, 0xA2D1, 0x261E, 0xA2D2, 0x00B6, - 0xA2D3, 0x2020, 0xA2D4, 0x2021, 0xA2D5, 0x2195, 0xA2D6, 0x2197, - 0xA2D7, 0x2199, 0xA2D8, 0x2196, 0xA2D9, 0x2198, 0xA2DA, 0x266D, - 0xA2DB, 0x2669, 0xA2DC, 0x266A, 0xA2DD, 0x266C, 0xA2DE, 0x327F, - 0xA2DF, 0x321C, 0xA2E0, 0x2116, 0xA2E1, 0x33C7, 0xA2E2, 0x2122, - 0xA2E3, 0x33C2, 0xA2E4, 0x33D8, 0xA2E5, 0x2121, 0xA2E6, 0x20AC, - 0xA2E7, 0x00AE, 0xA341, 0xC971, 0xA342, 0xC972, 0xA343, 0xC973, - 0xA344, 0xC975, 0xA345, 0xC976, 0xA346, 0xC977, 0xA347, 0xC978, - 0xA348, 0xC979, 0xA349, 0xC97A, 0xA34A, 0xC97B, 0xA34B, 0xC97D, - 0xA34C, 0xC97E, 0xA34D, 0xC97F, 0xA34E, 0xC980, 0xA34F, 0xC981, - 0xA350, 0xC982, 0xA351, 0xC983, 0xA352, 0xC984, 0xA353, 0xC985, - 0xA354, 0xC986, 0xA355, 0xC987, 0xA356, 0xC98A, 0xA357, 0xC98B, - 0xA358, 0xC98D, 0xA359, 0xC98E, 0xA35A, 0xC98F, 0xA361, 0xC991, - 0xA362, 0xC992, 0xA363, 0xC993, 0xA364, 0xC994, 0xA365, 0xC995, - 0xA366, 0xC996, 0xA367, 0xC997, 0xA368, 0xC99A, 0xA369, 0xC99C, - 0xA36A, 0xC99E, 0xA36B, 0xC99F, 0xA36C, 0xC9A0, 0xA36D, 0xC9A1, - 0xA36E, 0xC9A2, 0xA36F, 0xC9A3, 0xA370, 0xC9A4, 0xA371, 0xC9A5, - 0xA372, 0xC9A6, 0xA373, 0xC9A7, 0xA374, 0xC9A8, 0xA375, 0xC9A9, - 0xA376, 0xC9AA, 0xA377, 0xC9AB, 0xA378, 0xC9AC, 0xA379, 0xC9AD, - 0xA37A, 0xC9AE, 0xA381, 0xC9AF, 0xA382, 0xC9B0, 0xA383, 0xC9B1, - 0xA384, 0xC9B2, 0xA385, 0xC9B3, 0xA386, 0xC9B4, 0xA387, 0xC9B5, - 0xA388, 0xC9B6, 0xA389, 0xC9B7, 0xA38A, 0xC9B8, 0xA38B, 0xC9B9, - 0xA38C, 0xC9BA, 0xA38D, 0xC9BB, 0xA38E, 0xC9BC, 0xA38F, 0xC9BD, - 0xA390, 0xC9BE, 0xA391, 0xC9BF, 0xA392, 0xC9C2, 0xA393, 0xC9C3, - 0xA394, 0xC9C5, 0xA395, 0xC9C6, 0xA396, 0xC9C9, 0xA397, 0xC9CB, - 0xA398, 0xC9CC, 0xA399, 0xC9CD, 0xA39A, 0xC9CE, 0xA39B, 0xC9CF, - 0xA39C, 0xC9D2, 0xA39D, 0xC9D4, 0xA39E, 0xC9D7, 0xA39F, 0xC9D8, - 0xA3A0, 0xC9DB, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, - 0xA3A4, 0xFF04, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, - 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, - 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, - 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, - 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, - 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, - 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, - 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, - 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, - 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, - 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, - 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, - 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, - 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, - 0xA3DC, 0xFFE6, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, - 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, - 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, - 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, - 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, - 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, - 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, - 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, - 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA441, 0xC9DE, - 0xA442, 0xC9DF, 0xA443, 0xC9E1, 0xA444, 0xC9E3, 0xA445, 0xC9E5, - 0xA446, 0xC9E6, 0xA447, 0xC9E8, 0xA448, 0xC9E9, 0xA449, 0xC9EA, - 0xA44A, 0xC9EB, 0xA44B, 0xC9EE, 0xA44C, 0xC9F2, 0xA44D, 0xC9F3, - 0xA44E, 0xC9F4, 0xA44F, 0xC9F5, 0xA450, 0xC9F6, 0xA451, 0xC9F7, - 0xA452, 0xC9FA, 0xA453, 0xC9FB, 0xA454, 0xC9FD, 0xA455, 0xC9FE, - 0xA456, 0xC9FF, 0xA457, 0xCA01, 0xA458, 0xCA02, 0xA459, 0xCA03, - 0xA45A, 0xCA04, 0xA461, 0xCA05, 0xA462, 0xCA06, 0xA463, 0xCA07, - 0xA464, 0xCA0A, 0xA465, 0xCA0E, 0xA466, 0xCA0F, 0xA467, 0xCA10, - 0xA468, 0xCA11, 0xA469, 0xCA12, 0xA46A, 0xCA13, 0xA46B, 0xCA15, - 0xA46C, 0xCA16, 0xA46D, 0xCA17, 0xA46E, 0xCA19, 0xA46F, 0xCA1A, - 0xA470, 0xCA1B, 0xA471, 0xCA1C, 0xA472, 0xCA1D, 0xA473, 0xCA1E, - 0xA474, 0xCA1F, 0xA475, 0xCA20, 0xA476, 0xCA21, 0xA477, 0xCA22, - 0xA478, 0xCA23, 0xA479, 0xCA24, 0xA47A, 0xCA25, 0xA481, 0xCA26, - 0xA482, 0xCA27, 0xA483, 0xCA28, 0xA484, 0xCA2A, 0xA485, 0xCA2B, - 0xA486, 0xCA2C, 0xA487, 0xCA2D, 0xA488, 0xCA2E, 0xA489, 0xCA2F, - 0xA48A, 0xCA30, 0xA48B, 0xCA31, 0xA48C, 0xCA32, 0xA48D, 0xCA33, - 0xA48E, 0xCA34, 0xA48F, 0xCA35, 0xA490, 0xCA36, 0xA491, 0xCA37, - 0xA492, 0xCA38, 0xA493, 0xCA39, 0xA494, 0xCA3A, 0xA495, 0xCA3B, - 0xA496, 0xCA3C, 0xA497, 0xCA3D, 0xA498, 0xCA3E, 0xA499, 0xCA3F, - 0xA49A, 0xCA40, 0xA49B, 0xCA41, 0xA49C, 0xCA42, 0xA49D, 0xCA43, - 0xA49E, 0xCA44, 0xA49F, 0xCA45, 0xA4A0, 0xCA46, 0xA4A1, 0x3131, - 0xA4A2, 0x3132, 0xA4A3, 0x3133, 0xA4A4, 0x3134, 0xA4A5, 0x3135, - 0xA4A6, 0x3136, 0xA4A7, 0x3137, 0xA4A8, 0x3138, 0xA4A9, 0x3139, - 0xA4AA, 0x313A, 0xA4AB, 0x313B, 0xA4AC, 0x313C, 0xA4AD, 0x313D, - 0xA4AE, 0x313E, 0xA4AF, 0x313F, 0xA4B0, 0x3140, 0xA4B1, 0x3141, - 0xA4B2, 0x3142, 0xA4B3, 0x3143, 0xA4B4, 0x3144, 0xA4B5, 0x3145, - 0xA4B6, 0x3146, 0xA4B7, 0x3147, 0xA4B8, 0x3148, 0xA4B9, 0x3149, - 0xA4BA, 0x314A, 0xA4BB, 0x314B, 0xA4BC, 0x314C, 0xA4BD, 0x314D, - 0xA4BE, 0x314E, 0xA4BF, 0x314F, 0xA4C0, 0x3150, 0xA4C1, 0x3151, - 0xA4C2, 0x3152, 0xA4C3, 0x3153, 0xA4C4, 0x3154, 0xA4C5, 0x3155, - 0xA4C6, 0x3156, 0xA4C7, 0x3157, 0xA4C8, 0x3158, 0xA4C9, 0x3159, - 0xA4CA, 0x315A, 0xA4CB, 0x315B, 0xA4CC, 0x315C, 0xA4CD, 0x315D, - 0xA4CE, 0x315E, 0xA4CF, 0x315F, 0xA4D0, 0x3160, 0xA4D1, 0x3161, - 0xA4D2, 0x3162, 0xA4D3, 0x3163, 0xA4D4, 0x3164, 0xA4D5, 0x3165, - 0xA4D6, 0x3166, 0xA4D7, 0x3167, 0xA4D8, 0x3168, 0xA4D9, 0x3169, - 0xA4DA, 0x316A, 0xA4DB, 0x316B, 0xA4DC, 0x316C, 0xA4DD, 0x316D, - 0xA4DE, 0x316E, 0xA4DF, 0x316F, 0xA4E0, 0x3170, 0xA4E1, 0x3171, - 0xA4E2, 0x3172, 0xA4E3, 0x3173, 0xA4E4, 0x3174, 0xA4E5, 0x3175, - 0xA4E6, 0x3176, 0xA4E7, 0x3177, 0xA4E8, 0x3178, 0xA4E9, 0x3179, - 0xA4EA, 0x317A, 0xA4EB, 0x317B, 0xA4EC, 0x317C, 0xA4ED, 0x317D, - 0xA4EE, 0x317E, 0xA4EF, 0x317F, 0xA4F0, 0x3180, 0xA4F1, 0x3181, - 0xA4F2, 0x3182, 0xA4F3, 0x3183, 0xA4F4, 0x3184, 0xA4F5, 0x3185, - 0xA4F6, 0x3186, 0xA4F7, 0x3187, 0xA4F8, 0x3188, 0xA4F9, 0x3189, - 0xA4FA, 0x318A, 0xA4FB, 0x318B, 0xA4FC, 0x318C, 0xA4FD, 0x318D, - 0xA4FE, 0x318E, 0xA541, 0xCA47, 0xA542, 0xCA48, 0xA543, 0xCA49, - 0xA544, 0xCA4A, 0xA545, 0xCA4B, 0xA546, 0xCA4E, 0xA547, 0xCA4F, - 0xA548, 0xCA51, 0xA549, 0xCA52, 0xA54A, 0xCA53, 0xA54B, 0xCA55, - 0xA54C, 0xCA56, 0xA54D, 0xCA57, 0xA54E, 0xCA58, 0xA54F, 0xCA59, - 0xA550, 0xCA5A, 0xA551, 0xCA5B, 0xA552, 0xCA5E, 0xA553, 0xCA62, - 0xA554, 0xCA63, 0xA555, 0xCA64, 0xA556, 0xCA65, 0xA557, 0xCA66, - 0xA558, 0xCA67, 0xA559, 0xCA69, 0xA55A, 0xCA6A, 0xA561, 0xCA6B, - 0xA562, 0xCA6C, 0xA563, 0xCA6D, 0xA564, 0xCA6E, 0xA565, 0xCA6F, - 0xA566, 0xCA70, 0xA567, 0xCA71, 0xA568, 0xCA72, 0xA569, 0xCA73, - 0xA56A, 0xCA74, 0xA56B, 0xCA75, 0xA56C, 0xCA76, 0xA56D, 0xCA77, - 0xA56E, 0xCA78, 0xA56F, 0xCA79, 0xA570, 0xCA7A, 0xA571, 0xCA7B, - 0xA572, 0xCA7C, 0xA573, 0xCA7E, 0xA574, 0xCA7F, 0xA575, 0xCA80, - 0xA576, 0xCA81, 0xA577, 0xCA82, 0xA578, 0xCA83, 0xA579, 0xCA85, - 0xA57A, 0xCA86, 0xA581, 0xCA87, 0xA582, 0xCA88, 0xA583, 0xCA89, - 0xA584, 0xCA8A, 0xA585, 0xCA8B, 0xA586, 0xCA8C, 0xA587, 0xCA8D, - 0xA588, 0xCA8E, 0xA589, 0xCA8F, 0xA58A, 0xCA90, 0xA58B, 0xCA91, - 0xA58C, 0xCA92, 0xA58D, 0xCA93, 0xA58E, 0xCA94, 0xA58F, 0xCA95, - 0xA590, 0xCA96, 0xA591, 0xCA97, 0xA592, 0xCA99, 0xA593, 0xCA9A, - 0xA594, 0xCA9B, 0xA595, 0xCA9C, 0xA596, 0xCA9D, 0xA597, 0xCA9E, - 0xA598, 0xCA9F, 0xA599, 0xCAA0, 0xA59A, 0xCAA1, 0xA59B, 0xCAA2, - 0xA59C, 0xCAA3, 0xA59D, 0xCAA4, 0xA59E, 0xCAA5, 0xA59F, 0xCAA6, - 0xA5A0, 0xCAA7, 0xA5A1, 0x2170, 0xA5A2, 0x2171, 0xA5A3, 0x2172, - 0xA5A4, 0x2173, 0xA5A5, 0x2174, 0xA5A6, 0x2175, 0xA5A7, 0x2176, - 0xA5A8, 0x2177, 0xA5A9, 0x2178, 0xA5AA, 0x2179, 0xA5B0, 0x2160, - 0xA5B1, 0x2161, 0xA5B2, 0x2162, 0xA5B3, 0x2163, 0xA5B4, 0x2164, - 0xA5B5, 0x2165, 0xA5B6, 0x2166, 0xA5B7, 0x2167, 0xA5B8, 0x2168, - 0xA5B9, 0x2169, 0xA5C1, 0x0391, 0xA5C2, 0x0392, 0xA5C3, 0x0393, - 0xA5C4, 0x0394, 0xA5C5, 0x0395, 0xA5C6, 0x0396, 0xA5C7, 0x0397, - 0xA5C8, 0x0398, 0xA5C9, 0x0399, 0xA5CA, 0x039A, 0xA5CB, 0x039B, - 0xA5CC, 0x039C, 0xA5CD, 0x039D, 0xA5CE, 0x039E, 0xA5CF, 0x039F, - 0xA5D0, 0x03A0, 0xA5D1, 0x03A1, 0xA5D2, 0x03A3, 0xA5D3, 0x03A4, - 0xA5D4, 0x03A5, 0xA5D5, 0x03A6, 0xA5D6, 0x03A7, 0xA5D7, 0x03A8, - 0xA5D8, 0x03A9, 0xA5E1, 0x03B1, 0xA5E2, 0x03B2, 0xA5E3, 0x03B3, - 0xA5E4, 0x03B4, 0xA5E5, 0x03B5, 0xA5E6, 0x03B6, 0xA5E7, 0x03B7, - 0xA5E8, 0x03B8, 0xA5E9, 0x03B9, 0xA5EA, 0x03BA, 0xA5EB, 0x03BB, - 0xA5EC, 0x03BC, 0xA5ED, 0x03BD, 0xA5EE, 0x03BE, 0xA5EF, 0x03BF, - 0xA5F0, 0x03C0, 0xA5F1, 0x03C1, 0xA5F2, 0x03C3, 0xA5F3, 0x03C4, - 0xA5F4, 0x03C5, 0xA5F5, 0x03C6, 0xA5F6, 0x03C7, 0xA5F7, 0x03C8, - 0xA5F8, 0x03C9, 0xA641, 0xCAA8, 0xA642, 0xCAA9, 0xA643, 0xCAAA, - 0xA644, 0xCAAB, 0xA645, 0xCAAC, 0xA646, 0xCAAD, 0xA647, 0xCAAE, - 0xA648, 0xCAAF, 0xA649, 0xCAB0, 0xA64A, 0xCAB1, 0xA64B, 0xCAB2, - 0xA64C, 0xCAB3, 0xA64D, 0xCAB4, 0xA64E, 0xCAB5, 0xA64F, 0xCAB6, - 0xA650, 0xCAB7, 0xA651, 0xCAB8, 0xA652, 0xCAB9, 0xA653, 0xCABA, - 0xA654, 0xCABB, 0xA655, 0xCABE, 0xA656, 0xCABF, 0xA657, 0xCAC1, - 0xA658, 0xCAC2, 0xA659, 0xCAC3, 0xA65A, 0xCAC5, 0xA661, 0xCAC6, - 0xA662, 0xCAC7, 0xA663, 0xCAC8, 0xA664, 0xCAC9, 0xA665, 0xCACA, - 0xA666, 0xCACB, 0xA667, 0xCACE, 0xA668, 0xCAD0, 0xA669, 0xCAD2, - 0xA66A, 0xCAD4, 0xA66B, 0xCAD5, 0xA66C, 0xCAD6, 0xA66D, 0xCAD7, - 0xA66E, 0xCADA, 0xA66F, 0xCADB, 0xA670, 0xCADC, 0xA671, 0xCADD, - 0xA672, 0xCADE, 0xA673, 0xCADF, 0xA674, 0xCAE1, 0xA675, 0xCAE2, - 0xA676, 0xCAE3, 0xA677, 0xCAE4, 0xA678, 0xCAE5, 0xA679, 0xCAE6, - 0xA67A, 0xCAE7, 0xA681, 0xCAE8, 0xA682, 0xCAE9, 0xA683, 0xCAEA, - 0xA684, 0xCAEB, 0xA685, 0xCAED, 0xA686, 0xCAEE, 0xA687, 0xCAEF, - 0xA688, 0xCAF0, 0xA689, 0xCAF1, 0xA68A, 0xCAF2, 0xA68B, 0xCAF3, - 0xA68C, 0xCAF5, 0xA68D, 0xCAF6, 0xA68E, 0xCAF7, 0xA68F, 0xCAF8, - 0xA690, 0xCAF9, 0xA691, 0xCAFA, 0xA692, 0xCAFB, 0xA693, 0xCAFC, - 0xA694, 0xCAFD, 0xA695, 0xCAFE, 0xA696, 0xCAFF, 0xA697, 0xCB00, - 0xA698, 0xCB01, 0xA699, 0xCB02, 0xA69A, 0xCB03, 0xA69B, 0xCB04, - 0xA69C, 0xCB05, 0xA69D, 0xCB06, 0xA69E, 0xCB07, 0xA69F, 0xCB09, - 0xA6A0, 0xCB0A, 0xA6A1, 0x2500, 0xA6A2, 0x2502, 0xA6A3, 0x250C, - 0xA6A4, 0x2510, 0xA6A5, 0x2518, 0xA6A6, 0x2514, 0xA6A7, 0x251C, - 0xA6A8, 0x252C, 0xA6A9, 0x2524, 0xA6AA, 0x2534, 0xA6AB, 0x253C, - 0xA6AC, 0x2501, 0xA6AD, 0x2503, 0xA6AE, 0x250F, 0xA6AF, 0x2513, - 0xA6B0, 0x251B, 0xA6B1, 0x2517, 0xA6B2, 0x2523, 0xA6B3, 0x2533, - 0xA6B4, 0x252B, 0xA6B5, 0x253B, 0xA6B6, 0x254B, 0xA6B7, 0x2520, - 0xA6B8, 0x252F, 0xA6B9, 0x2528, 0xA6BA, 0x2537, 0xA6BB, 0x253F, - 0xA6BC, 0x251D, 0xA6BD, 0x2530, 0xA6BE, 0x2525, 0xA6BF, 0x2538, - 0xA6C0, 0x2542, 0xA6C1, 0x2512, 0xA6C2, 0x2511, 0xA6C3, 0x251A, - 0xA6C4, 0x2519, 0xA6C5, 0x2516, 0xA6C6, 0x2515, 0xA6C7, 0x250E, - 0xA6C8, 0x250D, 0xA6C9, 0x251E, 0xA6CA, 0x251F, 0xA6CB, 0x2521, - 0xA6CC, 0x2522, 0xA6CD, 0x2526, 0xA6CE, 0x2527, 0xA6CF, 0x2529, - 0xA6D0, 0x252A, 0xA6D1, 0x252D, 0xA6D2, 0x252E, 0xA6D3, 0x2531, - 0xA6D4, 0x2532, 0xA6D5, 0x2535, 0xA6D6, 0x2536, 0xA6D7, 0x2539, - 0xA6D8, 0x253A, 0xA6D9, 0x253D, 0xA6DA, 0x253E, 0xA6DB, 0x2540, - 0xA6DC, 0x2541, 0xA6DD, 0x2543, 0xA6DE, 0x2544, 0xA6DF, 0x2545, - 0xA6E0, 0x2546, 0xA6E1, 0x2547, 0xA6E2, 0x2548, 0xA6E3, 0x2549, - 0xA6E4, 0x254A, 0xA741, 0xCB0B, 0xA742, 0xCB0C, 0xA743, 0xCB0D, - 0xA744, 0xCB0E, 0xA745, 0xCB0F, 0xA746, 0xCB11, 0xA747, 0xCB12, - 0xA748, 0xCB13, 0xA749, 0xCB15, 0xA74A, 0xCB16, 0xA74B, 0xCB17, - 0xA74C, 0xCB19, 0xA74D, 0xCB1A, 0xA74E, 0xCB1B, 0xA74F, 0xCB1C, - 0xA750, 0xCB1D, 0xA751, 0xCB1E, 0xA752, 0xCB1F, 0xA753, 0xCB22, - 0xA754, 0xCB23, 0xA755, 0xCB24, 0xA756, 0xCB25, 0xA757, 0xCB26, - 0xA758, 0xCB27, 0xA759, 0xCB28, 0xA75A, 0xCB29, 0xA761, 0xCB2A, - 0xA762, 0xCB2B, 0xA763, 0xCB2C, 0xA764, 0xCB2D, 0xA765, 0xCB2E, - 0xA766, 0xCB2F, 0xA767, 0xCB30, 0xA768, 0xCB31, 0xA769, 0xCB32, - 0xA76A, 0xCB33, 0xA76B, 0xCB34, 0xA76C, 0xCB35, 0xA76D, 0xCB36, - 0xA76E, 0xCB37, 0xA76F, 0xCB38, 0xA770, 0xCB39, 0xA771, 0xCB3A, - 0xA772, 0xCB3B, 0xA773, 0xCB3C, 0xA774, 0xCB3D, 0xA775, 0xCB3E, - 0xA776, 0xCB3F, 0xA777, 0xCB40, 0xA778, 0xCB42, 0xA779, 0xCB43, - 0xA77A, 0xCB44, 0xA781, 0xCB45, 0xA782, 0xCB46, 0xA783, 0xCB47, - 0xA784, 0xCB4A, 0xA785, 0xCB4B, 0xA786, 0xCB4D, 0xA787, 0xCB4E, - 0xA788, 0xCB4F, 0xA789, 0xCB51, 0xA78A, 0xCB52, 0xA78B, 0xCB53, - 0xA78C, 0xCB54, 0xA78D, 0xCB55, 0xA78E, 0xCB56, 0xA78F, 0xCB57, - 0xA790, 0xCB5A, 0xA791, 0xCB5B, 0xA792, 0xCB5C, 0xA793, 0xCB5E, - 0xA794, 0xCB5F, 0xA795, 0xCB60, 0xA796, 0xCB61, 0xA797, 0xCB62, - 0xA798, 0xCB63, 0xA799, 0xCB65, 0xA79A, 0xCB66, 0xA79B, 0xCB67, - 0xA79C, 0xCB68, 0xA79D, 0xCB69, 0xA79E, 0xCB6A, 0xA79F, 0xCB6B, - 0xA7A0, 0xCB6C, 0xA7A1, 0x3395, 0xA7A2, 0x3396, 0xA7A3, 0x3397, - 0xA7A4, 0x2113, 0xA7A5, 0x3398, 0xA7A6, 0x33C4, 0xA7A7, 0x33A3, - 0xA7A8, 0x33A4, 0xA7A9, 0x33A5, 0xA7AA, 0x33A6, 0xA7AB, 0x3399, - 0xA7AC, 0x339A, 0xA7AD, 0x339B, 0xA7AE, 0x339C, 0xA7AF, 0x339D, - 0xA7B0, 0x339E, 0xA7B1, 0x339F, 0xA7B2, 0x33A0, 0xA7B3, 0x33A1, - 0xA7B4, 0x33A2, 0xA7B5, 0x33CA, 0xA7B6, 0x338D, 0xA7B7, 0x338E, - 0xA7B8, 0x338F, 0xA7B9, 0x33CF, 0xA7BA, 0x3388, 0xA7BB, 0x3389, - 0xA7BC, 0x33C8, 0xA7BD, 0x33A7, 0xA7BE, 0x33A8, 0xA7BF, 0x33B0, - 0xA7C0, 0x33B1, 0xA7C1, 0x33B2, 0xA7C2, 0x33B3, 0xA7C3, 0x33B4, - 0xA7C4, 0x33B5, 0xA7C5, 0x33B6, 0xA7C6, 0x33B7, 0xA7C7, 0x33B8, - 0xA7C8, 0x33B9, 0xA7C9, 0x3380, 0xA7CA, 0x3381, 0xA7CB, 0x3382, - 0xA7CC, 0x3383, 0xA7CD, 0x3384, 0xA7CE, 0x33BA, 0xA7CF, 0x33BB, - 0xA7D0, 0x33BC, 0xA7D1, 0x33BD, 0xA7D2, 0x33BE, 0xA7D3, 0x33BF, - 0xA7D4, 0x3390, 0xA7D5, 0x3391, 0xA7D6, 0x3392, 0xA7D7, 0x3393, - 0xA7D8, 0x3394, 0xA7D9, 0x2126, 0xA7DA, 0x33C0, 0xA7DB, 0x33C1, - 0xA7DC, 0x338A, 0xA7DD, 0x338B, 0xA7DE, 0x338C, 0xA7DF, 0x33D6, - 0xA7E0, 0x33C5, 0xA7E1, 0x33AD, 0xA7E2, 0x33AE, 0xA7E3, 0x33AF, - 0xA7E4, 0x33DB, 0xA7E5, 0x33A9, 0xA7E6, 0x33AA, 0xA7E7, 0x33AB, - 0xA7E8, 0x33AC, 0xA7E9, 0x33DD, 0xA7EA, 0x33D0, 0xA7EB, 0x33D3, - 0xA7EC, 0x33C3, 0xA7ED, 0x33C9, 0xA7EE, 0x33DC, 0xA7EF, 0x33C6, - 0xA841, 0xCB6D, 0xA842, 0xCB6E, 0xA843, 0xCB6F, 0xA844, 0xCB70, - 0xA845, 0xCB71, 0xA846, 0xCB72, 0xA847, 0xCB73, 0xA848, 0xCB74, - 0xA849, 0xCB75, 0xA84A, 0xCB76, 0xA84B, 0xCB77, 0xA84C, 0xCB7A, - 0xA84D, 0xCB7B, 0xA84E, 0xCB7C, 0xA84F, 0xCB7D, 0xA850, 0xCB7E, - 0xA851, 0xCB7F, 0xA852, 0xCB80, 0xA853, 0xCB81, 0xA854, 0xCB82, - 0xA855, 0xCB83, 0xA856, 0xCB84, 0xA857, 0xCB85, 0xA858, 0xCB86, - 0xA859, 0xCB87, 0xA85A, 0xCB88, 0xA861, 0xCB89, 0xA862, 0xCB8A, - 0xA863, 0xCB8B, 0xA864, 0xCB8C, 0xA865, 0xCB8D, 0xA866, 0xCB8E, - 0xA867, 0xCB8F, 0xA868, 0xCB90, 0xA869, 0xCB91, 0xA86A, 0xCB92, - 0xA86B, 0xCB93, 0xA86C, 0xCB94, 0xA86D, 0xCB95, 0xA86E, 0xCB96, - 0xA86F, 0xCB97, 0xA870, 0xCB98, 0xA871, 0xCB99, 0xA872, 0xCB9A, - 0xA873, 0xCB9B, 0xA874, 0xCB9D, 0xA875, 0xCB9E, 0xA876, 0xCB9F, - 0xA877, 0xCBA0, 0xA878, 0xCBA1, 0xA879, 0xCBA2, 0xA87A, 0xCBA3, - 0xA881, 0xCBA4, 0xA882, 0xCBA5, 0xA883, 0xCBA6, 0xA884, 0xCBA7, - 0xA885, 0xCBA8, 0xA886, 0xCBA9, 0xA887, 0xCBAA, 0xA888, 0xCBAB, - 0xA889, 0xCBAC, 0xA88A, 0xCBAD, 0xA88B, 0xCBAE, 0xA88C, 0xCBAF, - 0xA88D, 0xCBB0, 0xA88E, 0xCBB1, 0xA88F, 0xCBB2, 0xA890, 0xCBB3, - 0xA891, 0xCBB4, 0xA892, 0xCBB5, 0xA893, 0xCBB6, 0xA894, 0xCBB7, - 0xA895, 0xCBB9, 0xA896, 0xCBBA, 0xA897, 0xCBBB, 0xA898, 0xCBBC, - 0xA899, 0xCBBD, 0xA89A, 0xCBBE, 0xA89B, 0xCBBF, 0xA89C, 0xCBC0, - 0xA89D, 0xCBC1, 0xA89E, 0xCBC2, 0xA89F, 0xCBC3, 0xA8A0, 0xCBC4, - 0xA8A1, 0x00C6, 0xA8A2, 0x00D0, 0xA8A3, 0x00AA, 0xA8A4, 0x0126, - 0xA8A6, 0x0132, 0xA8A8, 0x013F, 0xA8A9, 0x0141, 0xA8AA, 0x00D8, - 0xA8AB, 0x0152, 0xA8AC, 0x00BA, 0xA8AD, 0x00DE, 0xA8AE, 0x0166, - 0xA8AF, 0x014A, 0xA8B1, 0x3260, 0xA8B2, 0x3261, 0xA8B3, 0x3262, - 0xA8B4, 0x3263, 0xA8B5, 0x3264, 0xA8B6, 0x3265, 0xA8B7, 0x3266, - 0xA8B8, 0x3267, 0xA8B9, 0x3268, 0xA8BA, 0x3269, 0xA8BB, 0x326A, - 0xA8BC, 0x326B, 0xA8BD, 0x326C, 0xA8BE, 0x326D, 0xA8BF, 0x326E, - 0xA8C0, 0x326F, 0xA8C1, 0x3270, 0xA8C2, 0x3271, 0xA8C3, 0x3272, - 0xA8C4, 0x3273, 0xA8C5, 0x3274, 0xA8C6, 0x3275, 0xA8C7, 0x3276, - 0xA8C8, 0x3277, 0xA8C9, 0x3278, 0xA8CA, 0x3279, 0xA8CB, 0x327A, - 0xA8CC, 0x327B, 0xA8CD, 0x24D0, 0xA8CE, 0x24D1, 0xA8CF, 0x24D2, - 0xA8D0, 0x24D3, 0xA8D1, 0x24D4, 0xA8D2, 0x24D5, 0xA8D3, 0x24D6, - 0xA8D4, 0x24D7, 0xA8D5, 0x24D8, 0xA8D6, 0x24D9, 0xA8D7, 0x24DA, - 0xA8D8, 0x24DB, 0xA8D9, 0x24DC, 0xA8DA, 0x24DD, 0xA8DB, 0x24DE, - 0xA8DC, 0x24DF, 0xA8DD, 0x24E0, 0xA8DE, 0x24E1, 0xA8DF, 0x24E2, - 0xA8E0, 0x24E3, 0xA8E1, 0x24E4, 0xA8E2, 0x24E5, 0xA8E3, 0x24E6, - 0xA8E4, 0x24E7, 0xA8E5, 0x24E8, 0xA8E6, 0x24E9, 0xA8E7, 0x2460, - 0xA8E8, 0x2461, 0xA8E9, 0x2462, 0xA8EA, 0x2463, 0xA8EB, 0x2464, - 0xA8EC, 0x2465, 0xA8ED, 0x2466, 0xA8EE, 0x2467, 0xA8EF, 0x2468, - 0xA8F0, 0x2469, 0xA8F1, 0x246A, 0xA8F2, 0x246B, 0xA8F3, 0x246C, - 0xA8F4, 0x246D, 0xA8F5, 0x246E, 0xA8F6, 0x00BD, 0xA8F7, 0x2153, - 0xA8F8, 0x2154, 0xA8F9, 0x00BC, 0xA8FA, 0x00BE, 0xA8FB, 0x215B, - 0xA8FC, 0x215C, 0xA8FD, 0x215D, 0xA8FE, 0x215E, 0xA941, 0xCBC5, - 0xA942, 0xCBC6, 0xA943, 0xCBC7, 0xA944, 0xCBC8, 0xA945, 0xCBC9, - 0xA946, 0xCBCA, 0xA947, 0xCBCB, 0xA948, 0xCBCC, 0xA949, 0xCBCD, - 0xA94A, 0xCBCE, 0xA94B, 0xCBCF, 0xA94C, 0xCBD0, 0xA94D, 0xCBD1, - 0xA94E, 0xCBD2, 0xA94F, 0xCBD3, 0xA950, 0xCBD5, 0xA951, 0xCBD6, - 0xA952, 0xCBD7, 0xA953, 0xCBD8, 0xA954, 0xCBD9, 0xA955, 0xCBDA, - 0xA956, 0xCBDB, 0xA957, 0xCBDC, 0xA958, 0xCBDD, 0xA959, 0xCBDE, - 0xA95A, 0xCBDF, 0xA961, 0xCBE0, 0xA962, 0xCBE1, 0xA963, 0xCBE2, - 0xA964, 0xCBE3, 0xA965, 0xCBE5, 0xA966, 0xCBE6, 0xA967, 0xCBE8, - 0xA968, 0xCBEA, 0xA969, 0xCBEB, 0xA96A, 0xCBEC, 0xA96B, 0xCBED, - 0xA96C, 0xCBEE, 0xA96D, 0xCBEF, 0xA96E, 0xCBF0, 0xA96F, 0xCBF1, - 0xA970, 0xCBF2, 0xA971, 0xCBF3, 0xA972, 0xCBF4, 0xA973, 0xCBF5, - 0xA974, 0xCBF6, 0xA975, 0xCBF7, 0xA976, 0xCBF8, 0xA977, 0xCBF9, - 0xA978, 0xCBFA, 0xA979, 0xCBFB, 0xA97A, 0xCBFC, 0xA981, 0xCBFD, - 0xA982, 0xCBFE, 0xA983, 0xCBFF, 0xA984, 0xCC00, 0xA985, 0xCC01, - 0xA986, 0xCC02, 0xA987, 0xCC03, 0xA988, 0xCC04, 0xA989, 0xCC05, - 0xA98A, 0xCC06, 0xA98B, 0xCC07, 0xA98C, 0xCC08, 0xA98D, 0xCC09, - 0xA98E, 0xCC0A, 0xA98F, 0xCC0B, 0xA990, 0xCC0E, 0xA991, 0xCC0F, - 0xA992, 0xCC11, 0xA993, 0xCC12, 0xA994, 0xCC13, 0xA995, 0xCC15, - 0xA996, 0xCC16, 0xA997, 0xCC17, 0xA998, 0xCC18, 0xA999, 0xCC19, - 0xA99A, 0xCC1A, 0xA99B, 0xCC1B, 0xA99C, 0xCC1E, 0xA99D, 0xCC1F, - 0xA99E, 0xCC20, 0xA99F, 0xCC23, 0xA9A0, 0xCC24, 0xA9A1, 0x00E6, - 0xA9A2, 0x0111, 0xA9A3, 0x00F0, 0xA9A4, 0x0127, 0xA9A5, 0x0131, - 0xA9A6, 0x0133, 0xA9A7, 0x0138, 0xA9A8, 0x0140, 0xA9A9, 0x0142, - 0xA9AA, 0x00F8, 0xA9AB, 0x0153, 0xA9AC, 0x00DF, 0xA9AD, 0x00FE, - 0xA9AE, 0x0167, 0xA9AF, 0x014B, 0xA9B0, 0x0149, 0xA9B1, 0x3200, - 0xA9B2, 0x3201, 0xA9B3, 0x3202, 0xA9B4, 0x3203, 0xA9B5, 0x3204, - 0xA9B6, 0x3205, 0xA9B7, 0x3206, 0xA9B8, 0x3207, 0xA9B9, 0x3208, - 0xA9BA, 0x3209, 0xA9BB, 0x320A, 0xA9BC, 0x320B, 0xA9BD, 0x320C, - 0xA9BE, 0x320D, 0xA9BF, 0x320E, 0xA9C0, 0x320F, 0xA9C1, 0x3210, - 0xA9C2, 0x3211, 0xA9C3, 0x3212, 0xA9C4, 0x3213, 0xA9C5, 0x3214, - 0xA9C6, 0x3215, 0xA9C7, 0x3216, 0xA9C8, 0x3217, 0xA9C9, 0x3218, - 0xA9CA, 0x3219, 0xA9CB, 0x321A, 0xA9CC, 0x321B, 0xA9CD, 0x249C, - 0xA9CE, 0x249D, 0xA9CF, 0x249E, 0xA9D0, 0x249F, 0xA9D1, 0x24A0, - 0xA9D2, 0x24A1, 0xA9D3, 0x24A2, 0xA9D4, 0x24A3, 0xA9D5, 0x24A4, - 0xA9D6, 0x24A5, 0xA9D7, 0x24A6, 0xA9D8, 0x24A7, 0xA9D9, 0x24A8, - 0xA9DA, 0x24A9, 0xA9DB, 0x24AA, 0xA9DC, 0x24AB, 0xA9DD, 0x24AC, - 0xA9DE, 0x24AD, 0xA9DF, 0x24AE, 0xA9E0, 0x24AF, 0xA9E1, 0x24B0, - 0xA9E2, 0x24B1, 0xA9E3, 0x24B2, 0xA9E4, 0x24B3, 0xA9E5, 0x24B4, - 0xA9E6, 0x24B5, 0xA9E7, 0x2474, 0xA9E8, 0x2475, 0xA9E9, 0x2476, - 0xA9EA, 0x2477, 0xA9EB, 0x2478, 0xA9EC, 0x2479, 0xA9ED, 0x247A, - 0xA9EE, 0x247B, 0xA9EF, 0x247C, 0xA9F0, 0x247D, 0xA9F1, 0x247E, - 0xA9F2, 0x247F, 0xA9F3, 0x2480, 0xA9F4, 0x2481, 0xA9F5, 0x2482, - 0xA9F6, 0x00B9, 0xA9F7, 0x00B2, 0xA9F8, 0x00B3, 0xA9F9, 0x2074, - 0xA9FA, 0x207F, 0xA9FB, 0x2081, 0xA9FC, 0x2082, 0xA9FD, 0x2083, - 0xA9FE, 0x2084, 0xAA41, 0xCC25, 0xAA42, 0xCC26, 0xAA43, 0xCC2A, - 0xAA44, 0xCC2B, 0xAA45, 0xCC2D, 0xAA46, 0xCC2F, 0xAA47, 0xCC31, - 0xAA48, 0xCC32, 0xAA49, 0xCC33, 0xAA4A, 0xCC34, 0xAA4B, 0xCC35, - 0xAA4C, 0xCC36, 0xAA4D, 0xCC37, 0xAA4E, 0xCC3A, 0xAA4F, 0xCC3F, - 0xAA50, 0xCC40, 0xAA51, 0xCC41, 0xAA52, 0xCC42, 0xAA53, 0xCC43, - 0xAA54, 0xCC46, 0xAA55, 0xCC47, 0xAA56, 0xCC49, 0xAA57, 0xCC4A, - 0xAA58, 0xCC4B, 0xAA59, 0xCC4D, 0xAA5A, 0xCC4E, 0xAA61, 0xCC4F, - 0xAA62, 0xCC50, 0xAA63, 0xCC51, 0xAA64, 0xCC52, 0xAA65, 0xCC53, - 0xAA66, 0xCC56, 0xAA67, 0xCC5A, 0xAA68, 0xCC5B, 0xAA69, 0xCC5C, - 0xAA6A, 0xCC5D, 0xAA6B, 0xCC5E, 0xAA6C, 0xCC5F, 0xAA6D, 0xCC61, - 0xAA6E, 0xCC62, 0xAA6F, 0xCC63, 0xAA70, 0xCC65, 0xAA71, 0xCC67, - 0xAA72, 0xCC69, 0xAA73, 0xCC6A, 0xAA74, 0xCC6B, 0xAA75, 0xCC6C, - 0xAA76, 0xCC6D, 0xAA77, 0xCC6E, 0xAA78, 0xCC6F, 0xAA79, 0xCC71, - 0xAA7A, 0xCC72, 0xAA81, 0xCC73, 0xAA82, 0xCC74, 0xAA83, 0xCC76, - 0xAA84, 0xCC77, 0xAA85, 0xCC78, 0xAA86, 0xCC79, 0xAA87, 0xCC7A, - 0xAA88, 0xCC7B, 0xAA89, 0xCC7C, 0xAA8A, 0xCC7D, 0xAA8B, 0xCC7E, - 0xAA8C, 0xCC7F, 0xAA8D, 0xCC80, 0xAA8E, 0xCC81, 0xAA8F, 0xCC82, - 0xAA90, 0xCC83, 0xAA91, 0xCC84, 0xAA92, 0xCC85, 0xAA93, 0xCC86, - 0xAA94, 0xCC87, 0xAA95, 0xCC88, 0xAA96, 0xCC89, 0xAA97, 0xCC8A, - 0xAA98, 0xCC8B, 0xAA99, 0xCC8C, 0xAA9A, 0xCC8D, 0xAA9B, 0xCC8E, - 0xAA9C, 0xCC8F, 0xAA9D, 0xCC90, 0xAA9E, 0xCC91, 0xAA9F, 0xCC92, - 0xAAA0, 0xCC93, 0xAAA1, 0x3041, 0xAAA2, 0x3042, 0xAAA3, 0x3043, - 0xAAA4, 0x3044, 0xAAA5, 0x3045, 0xAAA6, 0x3046, 0xAAA7, 0x3047, - 0xAAA8, 0x3048, 0xAAA9, 0x3049, 0xAAAA, 0x304A, 0xAAAB, 0x304B, - 0xAAAC, 0x304C, 0xAAAD, 0x304D, 0xAAAE, 0x304E, 0xAAAF, 0x304F, - 0xAAB0, 0x3050, 0xAAB1, 0x3051, 0xAAB2, 0x3052, 0xAAB3, 0x3053, - 0xAAB4, 0x3054, 0xAAB5, 0x3055, 0xAAB6, 0x3056, 0xAAB7, 0x3057, - 0xAAB8, 0x3058, 0xAAB9, 0x3059, 0xAABA, 0x305A, 0xAABB, 0x305B, - 0xAABC, 0x305C, 0xAABD, 0x305D, 0xAABE, 0x305E, 0xAABF, 0x305F, - 0xAAC0, 0x3060, 0xAAC1, 0x3061, 0xAAC2, 0x3062, 0xAAC3, 0x3063, - 0xAAC4, 0x3064, 0xAAC5, 0x3065, 0xAAC6, 0x3066, 0xAAC7, 0x3067, - 0xAAC8, 0x3068, 0xAAC9, 0x3069, 0xAACA, 0x306A, 0xAACB, 0x306B, - 0xAACC, 0x306C, 0xAACD, 0x306D, 0xAACE, 0x306E, 0xAACF, 0x306F, - 0xAAD0, 0x3070, 0xAAD1, 0x3071, 0xAAD2, 0x3072, 0xAAD3, 0x3073, - 0xAAD4, 0x3074, 0xAAD5, 0x3075, 0xAAD6, 0x3076, 0xAAD7, 0x3077, - 0xAAD8, 0x3078, 0xAAD9, 0x3079, 0xAADA, 0x307A, 0xAADB, 0x307B, - 0xAADC, 0x307C, 0xAADD, 0x307D, 0xAADE, 0x307E, 0xAADF, 0x307F, - 0xAAE0, 0x3080, 0xAAE1, 0x3081, 0xAAE2, 0x3082, 0xAAE3, 0x3083, - 0xAAE4, 0x3084, 0xAAE5, 0x3085, 0xAAE6, 0x3086, 0xAAE7, 0x3087, - 0xAAE8, 0x3088, 0xAAE9, 0x3089, 0xAAEA, 0x308A, 0xAAEB, 0x308B, - 0xAAEC, 0x308C, 0xAAED, 0x308D, 0xAAEE, 0x308E, 0xAAEF, 0x308F, - 0xAAF0, 0x3090, 0xAAF1, 0x3091, 0xAAF2, 0x3092, 0xAAF3, 0x3093, - 0xAB41, 0xCC94, 0xAB42, 0xCC95, 0xAB43, 0xCC96, 0xAB44, 0xCC97, - 0xAB45, 0xCC9A, 0xAB46, 0xCC9B, 0xAB47, 0xCC9D, 0xAB48, 0xCC9E, - 0xAB49, 0xCC9F, 0xAB4A, 0xCCA1, 0xAB4B, 0xCCA2, 0xAB4C, 0xCCA3, - 0xAB4D, 0xCCA4, 0xAB4E, 0xCCA5, 0xAB4F, 0xCCA6, 0xAB50, 0xCCA7, - 0xAB51, 0xCCAA, 0xAB52, 0xCCAE, 0xAB53, 0xCCAF, 0xAB54, 0xCCB0, - 0xAB55, 0xCCB1, 0xAB56, 0xCCB2, 0xAB57, 0xCCB3, 0xAB58, 0xCCB6, - 0xAB59, 0xCCB7, 0xAB5A, 0xCCB9, 0xAB61, 0xCCBA, 0xAB62, 0xCCBB, - 0xAB63, 0xCCBD, 0xAB64, 0xCCBE, 0xAB65, 0xCCBF, 0xAB66, 0xCCC0, - 0xAB67, 0xCCC1, 0xAB68, 0xCCC2, 0xAB69, 0xCCC3, 0xAB6A, 0xCCC6, - 0xAB6B, 0xCCC8, 0xAB6C, 0xCCCA, 0xAB6D, 0xCCCB, 0xAB6E, 0xCCCC, - 0xAB6F, 0xCCCD, 0xAB70, 0xCCCE, 0xAB71, 0xCCCF, 0xAB72, 0xCCD1, - 0xAB73, 0xCCD2, 0xAB74, 0xCCD3, 0xAB75, 0xCCD5, 0xAB76, 0xCCD6, - 0xAB77, 0xCCD7, 0xAB78, 0xCCD8, 0xAB79, 0xCCD9, 0xAB7A, 0xCCDA, - 0xAB81, 0xCCDB, 0xAB82, 0xCCDC, 0xAB83, 0xCCDD, 0xAB84, 0xCCDE, - 0xAB85, 0xCCDF, 0xAB86, 0xCCE0, 0xAB87, 0xCCE1, 0xAB88, 0xCCE2, - 0xAB89, 0xCCE3, 0xAB8A, 0xCCE5, 0xAB8B, 0xCCE6, 0xAB8C, 0xCCE7, - 0xAB8D, 0xCCE8, 0xAB8E, 0xCCE9, 0xAB8F, 0xCCEA, 0xAB90, 0xCCEB, - 0xAB91, 0xCCED, 0xAB92, 0xCCEE, 0xAB93, 0xCCEF, 0xAB94, 0xCCF1, - 0xAB95, 0xCCF2, 0xAB96, 0xCCF3, 0xAB97, 0xCCF4, 0xAB98, 0xCCF5, - 0xAB99, 0xCCF6, 0xAB9A, 0xCCF7, 0xAB9B, 0xCCF8, 0xAB9C, 0xCCF9, - 0xAB9D, 0xCCFA, 0xAB9E, 0xCCFB, 0xAB9F, 0xCCFC, 0xABA0, 0xCCFD, - 0xABA1, 0x30A1, 0xABA2, 0x30A2, 0xABA3, 0x30A3, 0xABA4, 0x30A4, - 0xABA5, 0x30A5, 0xABA6, 0x30A6, 0xABA7, 0x30A7, 0xABA8, 0x30A8, - 0xABA9, 0x30A9, 0xABAA, 0x30AA, 0xABAB, 0x30AB, 0xABAC, 0x30AC, - 0xABAD, 0x30AD, 0xABAE, 0x30AE, 0xABAF, 0x30AF, 0xABB0, 0x30B0, - 0xABB1, 0x30B1, 0xABB2, 0x30B2, 0xABB3, 0x30B3, 0xABB4, 0x30B4, - 0xABB5, 0x30B5, 0xABB6, 0x30B6, 0xABB7, 0x30B7, 0xABB8, 0x30B8, - 0xABB9, 0x30B9, 0xABBA, 0x30BA, 0xABBB, 0x30BB, 0xABBC, 0x30BC, - 0xABBD, 0x30BD, 0xABBE, 0x30BE, 0xABBF, 0x30BF, 0xABC0, 0x30C0, - 0xABC1, 0x30C1, 0xABC2, 0x30C2, 0xABC3, 0x30C3, 0xABC4, 0x30C4, - 0xABC5, 0x30C5, 0xABC6, 0x30C6, 0xABC7, 0x30C7, 0xABC8, 0x30C8, - 0xABC9, 0x30C9, 0xABCA, 0x30CA, 0xABCB, 0x30CB, 0xABCC, 0x30CC, - 0xABCD, 0x30CD, 0xABCE, 0x30CE, 0xABCF, 0x30CF, 0xABD0, 0x30D0, - 0xABD1, 0x30D1, 0xABD2, 0x30D2, 0xABD3, 0x30D3, 0xABD4, 0x30D4, - 0xABD5, 0x30D5, 0xABD6, 0x30D6, 0xABD7, 0x30D7, 0xABD8, 0x30D8, - 0xABD9, 0x30D9, 0xABDA, 0x30DA, 0xABDB, 0x30DB, 0xABDC, 0x30DC, - 0xABDD, 0x30DD, 0xABDE, 0x30DE, 0xABDF, 0x30DF, 0xABE0, 0x30E0, - 0xABE1, 0x30E1, 0xABE2, 0x30E2, 0xABE3, 0x30E3, 0xABE4, 0x30E4, - 0xABE5, 0x30E5, 0xABE6, 0x30E6, 0xABE7, 0x30E7, 0xABE8, 0x30E8, - 0xABE9, 0x30E9, 0xABEA, 0x30EA, 0xABEB, 0x30EB, 0xABEC, 0x30EC, - 0xABED, 0x30ED, 0xABEE, 0x30EE, 0xABEF, 0x30EF, 0xABF0, 0x30F0, - 0xABF1, 0x30F1, 0xABF2, 0x30F2, 0xABF3, 0x30F3, 0xABF4, 0x30F4, - 0xABF5, 0x30F5, 0xABF6, 0x30F6, 0xAC41, 0xCCFE, 0xAC42, 0xCCFF, - 0xAC43, 0xCD00, 0xAC44, 0xCD02, 0xAC45, 0xCD03, 0xAC46, 0xCD04, - 0xAC47, 0xCD05, 0xAC48, 0xCD06, 0xAC49, 0xCD07, 0xAC4A, 0xCD0A, - 0xAC4B, 0xCD0B, 0xAC4C, 0xCD0D, 0xAC4D, 0xCD0E, 0xAC4E, 0xCD0F, - 0xAC4F, 0xCD11, 0xAC50, 0xCD12, 0xAC51, 0xCD13, 0xAC52, 0xCD14, - 0xAC53, 0xCD15, 0xAC54, 0xCD16, 0xAC55, 0xCD17, 0xAC56, 0xCD1A, - 0xAC57, 0xCD1C, 0xAC58, 0xCD1E, 0xAC59, 0xCD1F, 0xAC5A, 0xCD20, - 0xAC61, 0xCD21, 0xAC62, 0xCD22, 0xAC63, 0xCD23, 0xAC64, 0xCD25, - 0xAC65, 0xCD26, 0xAC66, 0xCD27, 0xAC67, 0xCD29, 0xAC68, 0xCD2A, - 0xAC69, 0xCD2B, 0xAC6A, 0xCD2D, 0xAC6B, 0xCD2E, 0xAC6C, 0xCD2F, - 0xAC6D, 0xCD30, 0xAC6E, 0xCD31, 0xAC6F, 0xCD32, 0xAC70, 0xCD33, - 0xAC71, 0xCD34, 0xAC72, 0xCD35, 0xAC73, 0xCD36, 0xAC74, 0xCD37, - 0xAC75, 0xCD38, 0xAC76, 0xCD3A, 0xAC77, 0xCD3B, 0xAC78, 0xCD3C, - 0xAC79, 0xCD3D, 0xAC7A, 0xCD3E, 0xAC81, 0xCD3F, 0xAC82, 0xCD40, - 0xAC83, 0xCD41, 0xAC84, 0xCD42, 0xAC85, 0xCD43, 0xAC86, 0xCD44, - 0xAC87, 0xCD45, 0xAC88, 0xCD46, 0xAC89, 0xCD47, 0xAC8A, 0xCD48, - 0xAC8B, 0xCD49, 0xAC8C, 0xCD4A, 0xAC8D, 0xCD4B, 0xAC8E, 0xCD4C, - 0xAC8F, 0xCD4D, 0xAC90, 0xCD4E, 0xAC91, 0xCD4F, 0xAC92, 0xCD50, - 0xAC93, 0xCD51, 0xAC94, 0xCD52, 0xAC95, 0xCD53, 0xAC96, 0xCD54, - 0xAC97, 0xCD55, 0xAC98, 0xCD56, 0xAC99, 0xCD57, 0xAC9A, 0xCD58, - 0xAC9B, 0xCD59, 0xAC9C, 0xCD5A, 0xAC9D, 0xCD5B, 0xAC9E, 0xCD5D, - 0xAC9F, 0xCD5E, 0xACA0, 0xCD5F, 0xACA1, 0x0410, 0xACA2, 0x0411, - 0xACA3, 0x0412, 0xACA4, 0x0413, 0xACA5, 0x0414, 0xACA6, 0x0415, - 0xACA7, 0x0401, 0xACA8, 0x0416, 0xACA9, 0x0417, 0xACAA, 0x0418, - 0xACAB, 0x0419, 0xACAC, 0x041A, 0xACAD, 0x041B, 0xACAE, 0x041C, - 0xACAF, 0x041D, 0xACB0, 0x041E, 0xACB1, 0x041F, 0xACB2, 0x0420, - 0xACB3, 0x0421, 0xACB4, 0x0422, 0xACB5, 0x0423, 0xACB6, 0x0424, - 0xACB7, 0x0425, 0xACB8, 0x0426, 0xACB9, 0x0427, 0xACBA, 0x0428, - 0xACBB, 0x0429, 0xACBC, 0x042A, 0xACBD, 0x042B, 0xACBE, 0x042C, - 0xACBF, 0x042D, 0xACC0, 0x042E, 0xACC1, 0x042F, 0xACD1, 0x0430, - 0xACD2, 0x0431, 0xACD3, 0x0432, 0xACD4, 0x0433, 0xACD5, 0x0434, - 0xACD6, 0x0435, 0xACD7, 0x0451, 0xACD8, 0x0436, 0xACD9, 0x0437, - 0xACDA, 0x0438, 0xACDB, 0x0439, 0xACDC, 0x043A, 0xACDD, 0x043B, - 0xACDE, 0x043C, 0xACDF, 0x043D, 0xACE0, 0x043E, 0xACE1, 0x043F, - 0xACE2, 0x0440, 0xACE3, 0x0441, 0xACE4, 0x0442, 0xACE5, 0x0443, - 0xACE6, 0x0444, 0xACE7, 0x0445, 0xACE8, 0x0446, 0xACE9, 0x0447, - 0xACEA, 0x0448, 0xACEB, 0x0449, 0xACEC, 0x044A, 0xACED, 0x044B, - 0xACEE, 0x044C, 0xACEF, 0x044D, 0xACF0, 0x044E, 0xACF1, 0x044F, - 0xAD41, 0xCD61, 0xAD42, 0xCD62, 0xAD43, 0xCD63, 0xAD44, 0xCD65, - 0xAD45, 0xCD66, 0xAD46, 0xCD67, 0xAD47, 0xCD68, 0xAD48, 0xCD69, - 0xAD49, 0xCD6A, 0xAD4A, 0xCD6B, 0xAD4B, 0xCD6E, 0xAD4C, 0xCD70, - 0xAD4D, 0xCD72, 0xAD4E, 0xCD73, 0xAD4F, 0xCD74, 0xAD50, 0xCD75, - 0xAD51, 0xCD76, 0xAD52, 0xCD77, 0xAD53, 0xCD79, 0xAD54, 0xCD7A, - 0xAD55, 0xCD7B, 0xAD56, 0xCD7C, 0xAD57, 0xCD7D, 0xAD58, 0xCD7E, - 0xAD59, 0xCD7F, 0xAD5A, 0xCD80, 0xAD61, 0xCD81, 0xAD62, 0xCD82, - 0xAD63, 0xCD83, 0xAD64, 0xCD84, 0xAD65, 0xCD85, 0xAD66, 0xCD86, - 0xAD67, 0xCD87, 0xAD68, 0xCD89, 0xAD69, 0xCD8A, 0xAD6A, 0xCD8B, - 0xAD6B, 0xCD8C, 0xAD6C, 0xCD8D, 0xAD6D, 0xCD8E, 0xAD6E, 0xCD8F, - 0xAD6F, 0xCD90, 0xAD70, 0xCD91, 0xAD71, 0xCD92, 0xAD72, 0xCD93, - 0xAD73, 0xCD96, 0xAD74, 0xCD97, 0xAD75, 0xCD99, 0xAD76, 0xCD9A, - 0xAD77, 0xCD9B, 0xAD78, 0xCD9D, 0xAD79, 0xCD9E, 0xAD7A, 0xCD9F, - 0xAD81, 0xCDA0, 0xAD82, 0xCDA1, 0xAD83, 0xCDA2, 0xAD84, 0xCDA3, - 0xAD85, 0xCDA6, 0xAD86, 0xCDA8, 0xAD87, 0xCDAA, 0xAD88, 0xCDAB, - 0xAD89, 0xCDAC, 0xAD8A, 0xCDAD, 0xAD8B, 0xCDAE, 0xAD8C, 0xCDAF, - 0xAD8D, 0xCDB1, 0xAD8E, 0xCDB2, 0xAD8F, 0xCDB3, 0xAD90, 0xCDB4, - 0xAD91, 0xCDB5, 0xAD92, 0xCDB6, 0xAD93, 0xCDB7, 0xAD94, 0xCDB8, - 0xAD95, 0xCDB9, 0xAD96, 0xCDBA, 0xAD97, 0xCDBB, 0xAD98, 0xCDBC, - 0xAD99, 0xCDBD, 0xAD9A, 0xCDBE, 0xAD9B, 0xCDBF, 0xAD9C, 0xCDC0, - 0xAD9D, 0xCDC1, 0xAD9E, 0xCDC2, 0xAD9F, 0xCDC3, 0xADA0, 0xCDC5, - 0xAE41, 0xCDC6, 0xAE42, 0xCDC7, 0xAE43, 0xCDC8, 0xAE44, 0xCDC9, - 0xAE45, 0xCDCA, 0xAE46, 0xCDCB, 0xAE47, 0xCDCD, 0xAE48, 0xCDCE, - 0xAE49, 0xCDCF, 0xAE4A, 0xCDD1, 0xAE4B, 0xCDD2, 0xAE4C, 0xCDD3, - 0xAE4D, 0xCDD4, 0xAE4E, 0xCDD5, 0xAE4F, 0xCDD6, 0xAE50, 0xCDD7, - 0xAE51, 0xCDD8, 0xAE52, 0xCDD9, 0xAE53, 0xCDDA, 0xAE54, 0xCDDB, - 0xAE55, 0xCDDC, 0xAE56, 0xCDDD, 0xAE57, 0xCDDE, 0xAE58, 0xCDDF, - 0xAE59, 0xCDE0, 0xAE5A, 0xCDE1, 0xAE61, 0xCDE2, 0xAE62, 0xCDE3, - 0xAE63, 0xCDE4, 0xAE64, 0xCDE5, 0xAE65, 0xCDE6, 0xAE66, 0xCDE7, - 0xAE67, 0xCDE9, 0xAE68, 0xCDEA, 0xAE69, 0xCDEB, 0xAE6A, 0xCDED, - 0xAE6B, 0xCDEE, 0xAE6C, 0xCDEF, 0xAE6D, 0xCDF1, 0xAE6E, 0xCDF2, - 0xAE6F, 0xCDF3, 0xAE70, 0xCDF4, 0xAE71, 0xCDF5, 0xAE72, 0xCDF6, - 0xAE73, 0xCDF7, 0xAE74, 0xCDFA, 0xAE75, 0xCDFC, 0xAE76, 0xCDFE, - 0xAE77, 0xCDFF, 0xAE78, 0xCE00, 0xAE79, 0xCE01, 0xAE7A, 0xCE02, - 0xAE81, 0xCE03, 0xAE82, 0xCE05, 0xAE83, 0xCE06, 0xAE84, 0xCE07, - 0xAE85, 0xCE09, 0xAE86, 0xCE0A, 0xAE87, 0xCE0B, 0xAE88, 0xCE0D, - 0xAE89, 0xCE0E, 0xAE8A, 0xCE0F, 0xAE8B, 0xCE10, 0xAE8C, 0xCE11, - 0xAE8D, 0xCE12, 0xAE8E, 0xCE13, 0xAE8F, 0xCE15, 0xAE90, 0xCE16, - 0xAE91, 0xCE17, 0xAE92, 0xCE18, 0xAE93, 0xCE1A, 0xAE94, 0xCE1B, - 0xAE95, 0xCE1C, 0xAE96, 0xCE1D, 0xAE97, 0xCE1E, 0xAE98, 0xCE1F, - 0xAE99, 0xCE22, 0xAE9A, 0xCE23, 0xAE9B, 0xCE25, 0xAE9C, 0xCE26, - 0xAE9D, 0xCE27, 0xAE9E, 0xCE29, 0xAE9F, 0xCE2A, 0xAEA0, 0xCE2B, - 0xAF41, 0xCE2C, 0xAF42, 0xCE2D, 0xAF43, 0xCE2E, 0xAF44, 0xCE2F, - 0xAF45, 0xCE32, 0xAF46, 0xCE34, 0xAF47, 0xCE36, 0xAF48, 0xCE37, - 0xAF49, 0xCE38, 0xAF4A, 0xCE39, 0xAF4B, 0xCE3A, 0xAF4C, 0xCE3B, - 0xAF4D, 0xCE3C, 0xAF4E, 0xCE3D, 0xAF4F, 0xCE3E, 0xAF50, 0xCE3F, - 0xAF51, 0xCE40, 0xAF52, 0xCE41, 0xAF53, 0xCE42, 0xAF54, 0xCE43, - 0xAF55, 0xCE44, 0xAF56, 0xCE45, 0xAF57, 0xCE46, 0xAF58, 0xCE47, - 0xAF59, 0xCE48, 0xAF5A, 0xCE49, 0xAF61, 0xCE4A, 0xAF62, 0xCE4B, - 0xAF63, 0xCE4C, 0xAF64, 0xCE4D, 0xAF65, 0xCE4E, 0xAF66, 0xCE4F, - 0xAF67, 0xCE50, 0xAF68, 0xCE51, 0xAF69, 0xCE52, 0xAF6A, 0xCE53, - 0xAF6B, 0xCE54, 0xAF6C, 0xCE55, 0xAF6D, 0xCE56, 0xAF6E, 0xCE57, - 0xAF6F, 0xCE5A, 0xAF70, 0xCE5B, 0xAF71, 0xCE5D, 0xAF72, 0xCE5E, - 0xAF73, 0xCE62, 0xAF74, 0xCE63, 0xAF75, 0xCE64, 0xAF76, 0xCE65, - 0xAF77, 0xCE66, 0xAF78, 0xCE67, 0xAF79, 0xCE6A, 0xAF7A, 0xCE6C, - 0xAF81, 0xCE6E, 0xAF82, 0xCE6F, 0xAF83, 0xCE70, 0xAF84, 0xCE71, - 0xAF85, 0xCE72, 0xAF86, 0xCE73, 0xAF87, 0xCE76, 0xAF88, 0xCE77, - 0xAF89, 0xCE79, 0xAF8A, 0xCE7A, 0xAF8B, 0xCE7B, 0xAF8C, 0xCE7D, - 0xAF8D, 0xCE7E, 0xAF8E, 0xCE7F, 0xAF8F, 0xCE80, 0xAF90, 0xCE81, - 0xAF91, 0xCE82, 0xAF92, 0xCE83, 0xAF93, 0xCE86, 0xAF94, 0xCE88, - 0xAF95, 0xCE8A, 0xAF96, 0xCE8B, 0xAF97, 0xCE8C, 0xAF98, 0xCE8D, - 0xAF99, 0xCE8E, 0xAF9A, 0xCE8F, 0xAF9B, 0xCE92, 0xAF9C, 0xCE93, - 0xAF9D, 0xCE95, 0xAF9E, 0xCE96, 0xAF9F, 0xCE97, 0xAFA0, 0xCE99, - 0xB041, 0xCE9A, 0xB042, 0xCE9B, 0xB043, 0xCE9C, 0xB044, 0xCE9D, - 0xB045, 0xCE9E, 0xB046, 0xCE9F, 0xB047, 0xCEA2, 0xB048, 0xCEA6, - 0xB049, 0xCEA7, 0xB04A, 0xCEA8, 0xB04B, 0xCEA9, 0xB04C, 0xCEAA, - 0xB04D, 0xCEAB, 0xB04E, 0xCEAE, 0xB04F, 0xCEAF, 0xB050, 0xCEB0, - 0xB051, 0xCEB1, 0xB052, 0xCEB2, 0xB053, 0xCEB3, 0xB054, 0xCEB4, - 0xB055, 0xCEB5, 0xB056, 0xCEB6, 0xB057, 0xCEB7, 0xB058, 0xCEB8, - 0xB059, 0xCEB9, 0xB05A, 0xCEBA, 0xB061, 0xCEBB, 0xB062, 0xCEBC, - 0xB063, 0xCEBD, 0xB064, 0xCEBE, 0xB065, 0xCEBF, 0xB066, 0xCEC0, - 0xB067, 0xCEC2, 0xB068, 0xCEC3, 0xB069, 0xCEC4, 0xB06A, 0xCEC5, - 0xB06B, 0xCEC6, 0xB06C, 0xCEC7, 0xB06D, 0xCEC8, 0xB06E, 0xCEC9, - 0xB06F, 0xCECA, 0xB070, 0xCECB, 0xB071, 0xCECC, 0xB072, 0xCECD, - 0xB073, 0xCECE, 0xB074, 0xCECF, 0xB075, 0xCED0, 0xB076, 0xCED1, - 0xB077, 0xCED2, 0xB078, 0xCED3, 0xB079, 0xCED4, 0xB07A, 0xCED5, - 0xB081, 0xCED6, 0xB082, 0xCED7, 0xB083, 0xCED8, 0xB084, 0xCED9, - 0xB085, 0xCEDA, 0xB086, 0xCEDB, 0xB087, 0xCEDC, 0xB088, 0xCEDD, - 0xB089, 0xCEDE, 0xB08A, 0xCEDF, 0xB08B, 0xCEE0, 0xB08C, 0xCEE1, - 0xB08D, 0xCEE2, 0xB08E, 0xCEE3, 0xB08F, 0xCEE6, 0xB090, 0xCEE7, - 0xB091, 0xCEE9, 0xB092, 0xCEEA, 0xB093, 0xCEED, 0xB094, 0xCEEE, - 0xB095, 0xCEEF, 0xB096, 0xCEF0, 0xB097, 0xCEF1, 0xB098, 0xCEF2, - 0xB099, 0xCEF3, 0xB09A, 0xCEF6, 0xB09B, 0xCEFA, 0xB09C, 0xCEFB, - 0xB09D, 0xCEFC, 0xB09E, 0xCEFD, 0xB09F, 0xCEFE, 0xB0A0, 0xCEFF, - 0xB0A1, 0xAC00, 0xB0A2, 0xAC01, 0xB0A3, 0xAC04, 0xB0A4, 0xAC07, - 0xB0A5, 0xAC08, 0xB0A6, 0xAC09, 0xB0A7, 0xAC0A, 0xB0A8, 0xAC10, - 0xB0A9, 0xAC11, 0xB0AA, 0xAC12, 0xB0AB, 0xAC13, 0xB0AC, 0xAC14, - 0xB0AD, 0xAC15, 0xB0AE, 0xAC16, 0xB0AF, 0xAC17, 0xB0B0, 0xAC19, - 0xB0B1, 0xAC1A, 0xB0B2, 0xAC1B, 0xB0B3, 0xAC1C, 0xB0B4, 0xAC1D, - 0xB0B5, 0xAC20, 0xB0B6, 0xAC24, 0xB0B7, 0xAC2C, 0xB0B8, 0xAC2D, - 0xB0B9, 0xAC2F, 0xB0BA, 0xAC30, 0xB0BB, 0xAC31, 0xB0BC, 0xAC38, - 0xB0BD, 0xAC39, 0xB0BE, 0xAC3C, 0xB0BF, 0xAC40, 0xB0C0, 0xAC4B, - 0xB0C1, 0xAC4D, 0xB0C2, 0xAC54, 0xB0C3, 0xAC58, 0xB0C4, 0xAC5C, - 0xB0C5, 0xAC70, 0xB0C6, 0xAC71, 0xB0C7, 0xAC74, 0xB0C8, 0xAC77, - 0xB0C9, 0xAC78, 0xB0CA, 0xAC7A, 0xB0CB, 0xAC80, 0xB0CC, 0xAC81, - 0xB0CD, 0xAC83, 0xB0CE, 0xAC84, 0xB0CF, 0xAC85, 0xB0D0, 0xAC86, - 0xB0D1, 0xAC89, 0xB0D2, 0xAC8A, 0xB0D3, 0xAC8B, 0xB0D4, 0xAC8C, - 0xB0D5, 0xAC90, 0xB0D6, 0xAC94, 0xB0D7, 0xAC9C, 0xB0D8, 0xAC9D, - 0xB0D9, 0xAC9F, 0xB0DA, 0xACA0, 0xB0DB, 0xACA1, 0xB0DC, 0xACA8, - 0xB0DD, 0xACA9, 0xB0DE, 0xACAA, 0xB0DF, 0xACAC, 0xB0E0, 0xACAF, - 0xB0E1, 0xACB0, 0xB0E2, 0xACB8, 0xB0E3, 0xACB9, 0xB0E4, 0xACBB, - 0xB0E5, 0xACBC, 0xB0E6, 0xACBD, 0xB0E7, 0xACC1, 0xB0E8, 0xACC4, - 0xB0E9, 0xACC8, 0xB0EA, 0xACCC, 0xB0EB, 0xACD5, 0xB0EC, 0xACD7, - 0xB0ED, 0xACE0, 0xB0EE, 0xACE1, 0xB0EF, 0xACE4, 0xB0F0, 0xACE7, - 0xB0F1, 0xACE8, 0xB0F2, 0xACEA, 0xB0F3, 0xACEC, 0xB0F4, 0xACEF, - 0xB0F5, 0xACF0, 0xB0F6, 0xACF1, 0xB0F7, 0xACF3, 0xB0F8, 0xACF5, - 0xB0F9, 0xACF6, 0xB0FA, 0xACFC, 0xB0FB, 0xACFD, 0xB0FC, 0xAD00, - 0xB0FD, 0xAD04, 0xB0FE, 0xAD06, 0xB141, 0xCF02, 0xB142, 0xCF03, - 0xB143, 0xCF05, 0xB144, 0xCF06, 0xB145, 0xCF07, 0xB146, 0xCF09, - 0xB147, 0xCF0A, 0xB148, 0xCF0B, 0xB149, 0xCF0C, 0xB14A, 0xCF0D, - 0xB14B, 0xCF0E, 0xB14C, 0xCF0F, 0xB14D, 0xCF12, 0xB14E, 0xCF14, - 0xB14F, 0xCF16, 0xB150, 0xCF17, 0xB151, 0xCF18, 0xB152, 0xCF19, - 0xB153, 0xCF1A, 0xB154, 0xCF1B, 0xB155, 0xCF1D, 0xB156, 0xCF1E, - 0xB157, 0xCF1F, 0xB158, 0xCF21, 0xB159, 0xCF22, 0xB15A, 0xCF23, - 0xB161, 0xCF25, 0xB162, 0xCF26, 0xB163, 0xCF27, 0xB164, 0xCF28, - 0xB165, 0xCF29, 0xB166, 0xCF2A, 0xB167, 0xCF2B, 0xB168, 0xCF2E, - 0xB169, 0xCF32, 0xB16A, 0xCF33, 0xB16B, 0xCF34, 0xB16C, 0xCF35, - 0xB16D, 0xCF36, 0xB16E, 0xCF37, 0xB16F, 0xCF39, 0xB170, 0xCF3A, - 0xB171, 0xCF3B, 0xB172, 0xCF3C, 0xB173, 0xCF3D, 0xB174, 0xCF3E, - 0xB175, 0xCF3F, 0xB176, 0xCF40, 0xB177, 0xCF41, 0xB178, 0xCF42, - 0xB179, 0xCF43, 0xB17A, 0xCF44, 0xB181, 0xCF45, 0xB182, 0xCF46, - 0xB183, 0xCF47, 0xB184, 0xCF48, 0xB185, 0xCF49, 0xB186, 0xCF4A, - 0xB187, 0xCF4B, 0xB188, 0xCF4C, 0xB189, 0xCF4D, 0xB18A, 0xCF4E, - 0xB18B, 0xCF4F, 0xB18C, 0xCF50, 0xB18D, 0xCF51, 0xB18E, 0xCF52, - 0xB18F, 0xCF53, 0xB190, 0xCF56, 0xB191, 0xCF57, 0xB192, 0xCF59, - 0xB193, 0xCF5A, 0xB194, 0xCF5B, 0xB195, 0xCF5D, 0xB196, 0xCF5E, - 0xB197, 0xCF5F, 0xB198, 0xCF60, 0xB199, 0xCF61, 0xB19A, 0xCF62, - 0xB19B, 0xCF63, 0xB19C, 0xCF66, 0xB19D, 0xCF68, 0xB19E, 0xCF6A, - 0xB19F, 0xCF6B, 0xB1A0, 0xCF6C, 0xB1A1, 0xAD0C, 0xB1A2, 0xAD0D, - 0xB1A3, 0xAD0F, 0xB1A4, 0xAD11, 0xB1A5, 0xAD18, 0xB1A6, 0xAD1C, - 0xB1A7, 0xAD20, 0xB1A8, 0xAD29, 0xB1A9, 0xAD2C, 0xB1AA, 0xAD2D, - 0xB1AB, 0xAD34, 0xB1AC, 0xAD35, 0xB1AD, 0xAD38, 0xB1AE, 0xAD3C, - 0xB1AF, 0xAD44, 0xB1B0, 0xAD45, 0xB1B1, 0xAD47, 0xB1B2, 0xAD49, - 0xB1B3, 0xAD50, 0xB1B4, 0xAD54, 0xB1B5, 0xAD58, 0xB1B6, 0xAD61, - 0xB1B7, 0xAD63, 0xB1B8, 0xAD6C, 0xB1B9, 0xAD6D, 0xB1BA, 0xAD70, - 0xB1BB, 0xAD73, 0xB1BC, 0xAD74, 0xB1BD, 0xAD75, 0xB1BE, 0xAD76, - 0xB1BF, 0xAD7B, 0xB1C0, 0xAD7C, 0xB1C1, 0xAD7D, 0xB1C2, 0xAD7F, - 0xB1C3, 0xAD81, 0xB1C4, 0xAD82, 0xB1C5, 0xAD88, 0xB1C6, 0xAD89, - 0xB1C7, 0xAD8C, 0xB1C8, 0xAD90, 0xB1C9, 0xAD9C, 0xB1CA, 0xAD9D, - 0xB1CB, 0xADA4, 0xB1CC, 0xADB7, 0xB1CD, 0xADC0, 0xB1CE, 0xADC1, - 0xB1CF, 0xADC4, 0xB1D0, 0xADC8, 0xB1D1, 0xADD0, 0xB1D2, 0xADD1, - 0xB1D3, 0xADD3, 0xB1D4, 0xADDC, 0xB1D5, 0xADE0, 0xB1D6, 0xADE4, - 0xB1D7, 0xADF8, 0xB1D8, 0xADF9, 0xB1D9, 0xADFC, 0xB1DA, 0xADFF, - 0xB1DB, 0xAE00, 0xB1DC, 0xAE01, 0xB1DD, 0xAE08, 0xB1DE, 0xAE09, - 0xB1DF, 0xAE0B, 0xB1E0, 0xAE0D, 0xB1E1, 0xAE14, 0xB1E2, 0xAE30, - 0xB1E3, 0xAE31, 0xB1E4, 0xAE34, 0xB1E5, 0xAE37, 0xB1E6, 0xAE38, - 0xB1E7, 0xAE3A, 0xB1E8, 0xAE40, 0xB1E9, 0xAE41, 0xB1EA, 0xAE43, - 0xB1EB, 0xAE45, 0xB1EC, 0xAE46, 0xB1ED, 0xAE4A, 0xB1EE, 0xAE4C, - 0xB1EF, 0xAE4D, 0xB1F0, 0xAE4E, 0xB1F1, 0xAE50, 0xB1F2, 0xAE54, - 0xB1F3, 0xAE56, 0xB1F4, 0xAE5C, 0xB1F5, 0xAE5D, 0xB1F6, 0xAE5F, - 0xB1F7, 0xAE60, 0xB1F8, 0xAE61, 0xB1F9, 0xAE65, 0xB1FA, 0xAE68, - 0xB1FB, 0xAE69, 0xB1FC, 0xAE6C, 0xB1FD, 0xAE70, 0xB1FE, 0xAE78, - 0xB241, 0xCF6D, 0xB242, 0xCF6E, 0xB243, 0xCF6F, 0xB244, 0xCF72, - 0xB245, 0xCF73, 0xB246, 0xCF75, 0xB247, 0xCF76, 0xB248, 0xCF77, - 0xB249, 0xCF79, 0xB24A, 0xCF7A, 0xB24B, 0xCF7B, 0xB24C, 0xCF7C, - 0xB24D, 0xCF7D, 0xB24E, 0xCF7E, 0xB24F, 0xCF7F, 0xB250, 0xCF81, - 0xB251, 0xCF82, 0xB252, 0xCF83, 0xB253, 0xCF84, 0xB254, 0xCF86, - 0xB255, 0xCF87, 0xB256, 0xCF88, 0xB257, 0xCF89, 0xB258, 0xCF8A, - 0xB259, 0xCF8B, 0xB25A, 0xCF8D, 0xB261, 0xCF8E, 0xB262, 0xCF8F, - 0xB263, 0xCF90, 0xB264, 0xCF91, 0xB265, 0xCF92, 0xB266, 0xCF93, - 0xB267, 0xCF94, 0xB268, 0xCF95, 0xB269, 0xCF96, 0xB26A, 0xCF97, - 0xB26B, 0xCF98, 0xB26C, 0xCF99, 0xB26D, 0xCF9A, 0xB26E, 0xCF9B, - 0xB26F, 0xCF9C, 0xB270, 0xCF9D, 0xB271, 0xCF9E, 0xB272, 0xCF9F, - 0xB273, 0xCFA0, 0xB274, 0xCFA2, 0xB275, 0xCFA3, 0xB276, 0xCFA4, - 0xB277, 0xCFA5, 0xB278, 0xCFA6, 0xB279, 0xCFA7, 0xB27A, 0xCFA9, - 0xB281, 0xCFAA, 0xB282, 0xCFAB, 0xB283, 0xCFAC, 0xB284, 0xCFAD, - 0xB285, 0xCFAE, 0xB286, 0xCFAF, 0xB287, 0xCFB1, 0xB288, 0xCFB2, - 0xB289, 0xCFB3, 0xB28A, 0xCFB4, 0xB28B, 0xCFB5, 0xB28C, 0xCFB6, - 0xB28D, 0xCFB7, 0xB28E, 0xCFB8, 0xB28F, 0xCFB9, 0xB290, 0xCFBA, - 0xB291, 0xCFBB, 0xB292, 0xCFBC, 0xB293, 0xCFBD, 0xB294, 0xCFBE, - 0xB295, 0xCFBF, 0xB296, 0xCFC0, 0xB297, 0xCFC1, 0xB298, 0xCFC2, - 0xB299, 0xCFC3, 0xB29A, 0xCFC5, 0xB29B, 0xCFC6, 0xB29C, 0xCFC7, - 0xB29D, 0xCFC8, 0xB29E, 0xCFC9, 0xB29F, 0xCFCA, 0xB2A0, 0xCFCB, - 0xB2A1, 0xAE79, 0xB2A2, 0xAE7B, 0xB2A3, 0xAE7C, 0xB2A4, 0xAE7D, - 0xB2A5, 0xAE84, 0xB2A6, 0xAE85, 0xB2A7, 0xAE8C, 0xB2A8, 0xAEBC, - 0xB2A9, 0xAEBD, 0xB2AA, 0xAEBE, 0xB2AB, 0xAEC0, 0xB2AC, 0xAEC4, - 0xB2AD, 0xAECC, 0xB2AE, 0xAECD, 0xB2AF, 0xAECF, 0xB2B0, 0xAED0, - 0xB2B1, 0xAED1, 0xB2B2, 0xAED8, 0xB2B3, 0xAED9, 0xB2B4, 0xAEDC, - 0xB2B5, 0xAEE8, 0xB2B6, 0xAEEB, 0xB2B7, 0xAEED, 0xB2B8, 0xAEF4, - 0xB2B9, 0xAEF8, 0xB2BA, 0xAEFC, 0xB2BB, 0xAF07, 0xB2BC, 0xAF08, - 0xB2BD, 0xAF0D, 0xB2BE, 0xAF10, 0xB2BF, 0xAF2C, 0xB2C0, 0xAF2D, - 0xB2C1, 0xAF30, 0xB2C2, 0xAF32, 0xB2C3, 0xAF34, 0xB2C4, 0xAF3C, - 0xB2C5, 0xAF3D, 0xB2C6, 0xAF3F, 0xB2C7, 0xAF41, 0xB2C8, 0xAF42, - 0xB2C9, 0xAF43, 0xB2CA, 0xAF48, 0xB2CB, 0xAF49, 0xB2CC, 0xAF50, - 0xB2CD, 0xAF5C, 0xB2CE, 0xAF5D, 0xB2CF, 0xAF64, 0xB2D0, 0xAF65, - 0xB2D1, 0xAF79, 0xB2D2, 0xAF80, 0xB2D3, 0xAF84, 0xB2D4, 0xAF88, - 0xB2D5, 0xAF90, 0xB2D6, 0xAF91, 0xB2D7, 0xAF95, 0xB2D8, 0xAF9C, - 0xB2D9, 0xAFB8, 0xB2DA, 0xAFB9, 0xB2DB, 0xAFBC, 0xB2DC, 0xAFC0, - 0xB2DD, 0xAFC7, 0xB2DE, 0xAFC8, 0xB2DF, 0xAFC9, 0xB2E0, 0xAFCB, - 0xB2E1, 0xAFCD, 0xB2E2, 0xAFCE, 0xB2E3, 0xAFD4, 0xB2E4, 0xAFDC, - 0xB2E5, 0xAFE8, 0xB2E6, 0xAFE9, 0xB2E7, 0xAFF0, 0xB2E8, 0xAFF1, - 0xB2E9, 0xAFF4, 0xB2EA, 0xAFF8, 0xB2EB, 0xB000, 0xB2EC, 0xB001, - 0xB2ED, 0xB004, 0xB2EE, 0xB00C, 0xB2EF, 0xB010, 0xB2F0, 0xB014, - 0xB2F1, 0xB01C, 0xB2F2, 0xB01D, 0xB2F3, 0xB028, 0xB2F4, 0xB044, - 0xB2F5, 0xB045, 0xB2F6, 0xB048, 0xB2F7, 0xB04A, 0xB2F8, 0xB04C, - 0xB2F9, 0xB04E, 0xB2FA, 0xB053, 0xB2FB, 0xB054, 0xB2FC, 0xB055, - 0xB2FD, 0xB057, 0xB2FE, 0xB059, 0xB341, 0xCFCC, 0xB342, 0xCFCD, - 0xB343, 0xCFCE, 0xB344, 0xCFCF, 0xB345, 0xCFD0, 0xB346, 0xCFD1, - 0xB347, 0xCFD2, 0xB348, 0xCFD3, 0xB349, 0xCFD4, 0xB34A, 0xCFD5, - 0xB34B, 0xCFD6, 0xB34C, 0xCFD7, 0xB34D, 0xCFD8, 0xB34E, 0xCFD9, - 0xB34F, 0xCFDA, 0xB350, 0xCFDB, 0xB351, 0xCFDC, 0xB352, 0xCFDD, - 0xB353, 0xCFDE, 0xB354, 0xCFDF, 0xB355, 0xCFE2, 0xB356, 0xCFE3, - 0xB357, 0xCFE5, 0xB358, 0xCFE6, 0xB359, 0xCFE7, 0xB35A, 0xCFE9, - 0xB361, 0xCFEA, 0xB362, 0xCFEB, 0xB363, 0xCFEC, 0xB364, 0xCFED, - 0xB365, 0xCFEE, 0xB366, 0xCFEF, 0xB367, 0xCFF2, 0xB368, 0xCFF4, - 0xB369, 0xCFF6, 0xB36A, 0xCFF7, 0xB36B, 0xCFF8, 0xB36C, 0xCFF9, - 0xB36D, 0xCFFA, 0xB36E, 0xCFFB, 0xB36F, 0xCFFD, 0xB370, 0xCFFE, - 0xB371, 0xCFFF, 0xB372, 0xD001, 0xB373, 0xD002, 0xB374, 0xD003, - 0xB375, 0xD005, 0xB376, 0xD006, 0xB377, 0xD007, 0xB378, 0xD008, - 0xB379, 0xD009, 0xB37A, 0xD00A, 0xB381, 0xD00B, 0xB382, 0xD00C, - 0xB383, 0xD00D, 0xB384, 0xD00E, 0xB385, 0xD00F, 0xB386, 0xD010, - 0xB387, 0xD012, 0xB388, 0xD013, 0xB389, 0xD014, 0xB38A, 0xD015, - 0xB38B, 0xD016, 0xB38C, 0xD017, 0xB38D, 0xD019, 0xB38E, 0xD01A, - 0xB38F, 0xD01B, 0xB390, 0xD01C, 0xB391, 0xD01D, 0xB392, 0xD01E, - 0xB393, 0xD01F, 0xB394, 0xD020, 0xB395, 0xD021, 0xB396, 0xD022, - 0xB397, 0xD023, 0xB398, 0xD024, 0xB399, 0xD025, 0xB39A, 0xD026, - 0xB39B, 0xD027, 0xB39C, 0xD028, 0xB39D, 0xD029, 0xB39E, 0xD02A, - 0xB39F, 0xD02B, 0xB3A0, 0xD02C, 0xB3A1, 0xB05D, 0xB3A2, 0xB07C, - 0xB3A3, 0xB07D, 0xB3A4, 0xB080, 0xB3A5, 0xB084, 0xB3A6, 0xB08C, - 0xB3A7, 0xB08D, 0xB3A8, 0xB08F, 0xB3A9, 0xB091, 0xB3AA, 0xB098, - 0xB3AB, 0xB099, 0xB3AC, 0xB09A, 0xB3AD, 0xB09C, 0xB3AE, 0xB09F, - 0xB3AF, 0xB0A0, 0xB3B0, 0xB0A1, 0xB3B1, 0xB0A2, 0xB3B2, 0xB0A8, - 0xB3B3, 0xB0A9, 0xB3B4, 0xB0AB, 0xB3B5, 0xB0AC, 0xB3B6, 0xB0AD, - 0xB3B7, 0xB0AE, 0xB3B8, 0xB0AF, 0xB3B9, 0xB0B1, 0xB3BA, 0xB0B3, - 0xB3BB, 0xB0B4, 0xB3BC, 0xB0B5, 0xB3BD, 0xB0B8, 0xB3BE, 0xB0BC, - 0xB3BF, 0xB0C4, 0xB3C0, 0xB0C5, 0xB3C1, 0xB0C7, 0xB3C2, 0xB0C8, - 0xB3C3, 0xB0C9, 0xB3C4, 0xB0D0, 0xB3C5, 0xB0D1, 0xB3C6, 0xB0D4, - 0xB3C7, 0xB0D8, 0xB3C8, 0xB0E0, 0xB3C9, 0xB0E5, 0xB3CA, 0xB108, - 0xB3CB, 0xB109, 0xB3CC, 0xB10B, 0xB3CD, 0xB10C, 0xB3CE, 0xB110, - 0xB3CF, 0xB112, 0xB3D0, 0xB113, 0xB3D1, 0xB118, 0xB3D2, 0xB119, - 0xB3D3, 0xB11B, 0xB3D4, 0xB11C, 0xB3D5, 0xB11D, 0xB3D6, 0xB123, - 0xB3D7, 0xB124, 0xB3D8, 0xB125, 0xB3D9, 0xB128, 0xB3DA, 0xB12C, - 0xB3DB, 0xB134, 0xB3DC, 0xB135, 0xB3DD, 0xB137, 0xB3DE, 0xB138, - 0xB3DF, 0xB139, 0xB3E0, 0xB140, 0xB3E1, 0xB141, 0xB3E2, 0xB144, - 0xB3E3, 0xB148, 0xB3E4, 0xB150, 0xB3E5, 0xB151, 0xB3E6, 0xB154, - 0xB3E7, 0xB155, 0xB3E8, 0xB158, 0xB3E9, 0xB15C, 0xB3EA, 0xB160, - 0xB3EB, 0xB178, 0xB3EC, 0xB179, 0xB3ED, 0xB17C, 0xB3EE, 0xB180, - 0xB3EF, 0xB182, 0xB3F0, 0xB188, 0xB3F1, 0xB189, 0xB3F2, 0xB18B, - 0xB3F3, 0xB18D, 0xB3F4, 0xB192, 0xB3F5, 0xB193, 0xB3F6, 0xB194, - 0xB3F7, 0xB198, 0xB3F8, 0xB19C, 0xB3F9, 0xB1A8, 0xB3FA, 0xB1CC, - 0xB3FB, 0xB1D0, 0xB3FC, 0xB1D4, 0xB3FD, 0xB1DC, 0xB3FE, 0xB1DD, - 0xB441, 0xD02E, 0xB442, 0xD02F, 0xB443, 0xD030, 0xB444, 0xD031, - 0xB445, 0xD032, 0xB446, 0xD033, 0xB447, 0xD036, 0xB448, 0xD037, - 0xB449, 0xD039, 0xB44A, 0xD03A, 0xB44B, 0xD03B, 0xB44C, 0xD03D, - 0xB44D, 0xD03E, 0xB44E, 0xD03F, 0xB44F, 0xD040, 0xB450, 0xD041, - 0xB451, 0xD042, 0xB452, 0xD043, 0xB453, 0xD046, 0xB454, 0xD048, - 0xB455, 0xD04A, 0xB456, 0xD04B, 0xB457, 0xD04C, 0xB458, 0xD04D, - 0xB459, 0xD04E, 0xB45A, 0xD04F, 0xB461, 0xD051, 0xB462, 0xD052, - 0xB463, 0xD053, 0xB464, 0xD055, 0xB465, 0xD056, 0xB466, 0xD057, - 0xB467, 0xD059, 0xB468, 0xD05A, 0xB469, 0xD05B, 0xB46A, 0xD05C, - 0xB46B, 0xD05D, 0xB46C, 0xD05E, 0xB46D, 0xD05F, 0xB46E, 0xD061, - 0xB46F, 0xD062, 0xB470, 0xD063, 0xB471, 0xD064, 0xB472, 0xD065, - 0xB473, 0xD066, 0xB474, 0xD067, 0xB475, 0xD068, 0xB476, 0xD069, - 0xB477, 0xD06A, 0xB478, 0xD06B, 0xB479, 0xD06E, 0xB47A, 0xD06F, - 0xB481, 0xD071, 0xB482, 0xD072, 0xB483, 0xD073, 0xB484, 0xD075, - 0xB485, 0xD076, 0xB486, 0xD077, 0xB487, 0xD078, 0xB488, 0xD079, - 0xB489, 0xD07A, 0xB48A, 0xD07B, 0xB48B, 0xD07E, 0xB48C, 0xD07F, - 0xB48D, 0xD080, 0xB48E, 0xD082, 0xB48F, 0xD083, 0xB490, 0xD084, - 0xB491, 0xD085, 0xB492, 0xD086, 0xB493, 0xD087, 0xB494, 0xD088, - 0xB495, 0xD089, 0xB496, 0xD08A, 0xB497, 0xD08B, 0xB498, 0xD08C, - 0xB499, 0xD08D, 0xB49A, 0xD08E, 0xB49B, 0xD08F, 0xB49C, 0xD090, - 0xB49D, 0xD091, 0xB49E, 0xD092, 0xB49F, 0xD093, 0xB4A0, 0xD094, - 0xB4A1, 0xB1DF, 0xB4A2, 0xB1E8, 0xB4A3, 0xB1E9, 0xB4A4, 0xB1EC, - 0xB4A5, 0xB1F0, 0xB4A6, 0xB1F9, 0xB4A7, 0xB1FB, 0xB4A8, 0xB1FD, - 0xB4A9, 0xB204, 0xB4AA, 0xB205, 0xB4AB, 0xB208, 0xB4AC, 0xB20B, - 0xB4AD, 0xB20C, 0xB4AE, 0xB214, 0xB4AF, 0xB215, 0xB4B0, 0xB217, - 0xB4B1, 0xB219, 0xB4B2, 0xB220, 0xB4B3, 0xB234, 0xB4B4, 0xB23C, - 0xB4B5, 0xB258, 0xB4B6, 0xB25C, 0xB4B7, 0xB260, 0xB4B8, 0xB268, - 0xB4B9, 0xB269, 0xB4BA, 0xB274, 0xB4BB, 0xB275, 0xB4BC, 0xB27C, - 0xB4BD, 0xB284, 0xB4BE, 0xB285, 0xB4BF, 0xB289, 0xB4C0, 0xB290, - 0xB4C1, 0xB291, 0xB4C2, 0xB294, 0xB4C3, 0xB298, 0xB4C4, 0xB299, - 0xB4C5, 0xB29A, 0xB4C6, 0xB2A0, 0xB4C7, 0xB2A1, 0xB4C8, 0xB2A3, - 0xB4C9, 0xB2A5, 0xB4CA, 0xB2A6, 0xB4CB, 0xB2AA, 0xB4CC, 0xB2AC, - 0xB4CD, 0xB2B0, 0xB4CE, 0xB2B4, 0xB4CF, 0xB2C8, 0xB4D0, 0xB2C9, - 0xB4D1, 0xB2CC, 0xB4D2, 0xB2D0, 0xB4D3, 0xB2D2, 0xB4D4, 0xB2D8, - 0xB4D5, 0xB2D9, 0xB4D6, 0xB2DB, 0xB4D7, 0xB2DD, 0xB4D8, 0xB2E2, - 0xB4D9, 0xB2E4, 0xB4DA, 0xB2E5, 0xB4DB, 0xB2E6, 0xB4DC, 0xB2E8, - 0xB4DD, 0xB2EB, 0xB4DE, 0xB2EC, 0xB4DF, 0xB2ED, 0xB4E0, 0xB2EE, - 0xB4E1, 0xB2EF, 0xB4E2, 0xB2F3, 0xB4E3, 0xB2F4, 0xB4E4, 0xB2F5, - 0xB4E5, 0xB2F7, 0xB4E6, 0xB2F8, 0xB4E7, 0xB2F9, 0xB4E8, 0xB2FA, - 0xB4E9, 0xB2FB, 0xB4EA, 0xB2FF, 0xB4EB, 0xB300, 0xB4EC, 0xB301, - 0xB4ED, 0xB304, 0xB4EE, 0xB308, 0xB4EF, 0xB310, 0xB4F0, 0xB311, - 0xB4F1, 0xB313, 0xB4F2, 0xB314, 0xB4F3, 0xB315, 0xB4F4, 0xB31C, - 0xB4F5, 0xB354, 0xB4F6, 0xB355, 0xB4F7, 0xB356, 0xB4F8, 0xB358, - 0xB4F9, 0xB35B, 0xB4FA, 0xB35C, 0xB4FB, 0xB35E, 0xB4FC, 0xB35F, - 0xB4FD, 0xB364, 0xB4FE, 0xB365, 0xB541, 0xD095, 0xB542, 0xD096, - 0xB543, 0xD097, 0xB544, 0xD098, 0xB545, 0xD099, 0xB546, 0xD09A, - 0xB547, 0xD09B, 0xB548, 0xD09C, 0xB549, 0xD09D, 0xB54A, 0xD09E, - 0xB54B, 0xD09F, 0xB54C, 0xD0A0, 0xB54D, 0xD0A1, 0xB54E, 0xD0A2, - 0xB54F, 0xD0A3, 0xB550, 0xD0A6, 0xB551, 0xD0A7, 0xB552, 0xD0A9, - 0xB553, 0xD0AA, 0xB554, 0xD0AB, 0xB555, 0xD0AD, 0xB556, 0xD0AE, - 0xB557, 0xD0AF, 0xB558, 0xD0B0, 0xB559, 0xD0B1, 0xB55A, 0xD0B2, - 0xB561, 0xD0B3, 0xB562, 0xD0B6, 0xB563, 0xD0B8, 0xB564, 0xD0BA, - 0xB565, 0xD0BB, 0xB566, 0xD0BC, 0xB567, 0xD0BD, 0xB568, 0xD0BE, - 0xB569, 0xD0BF, 0xB56A, 0xD0C2, 0xB56B, 0xD0C3, 0xB56C, 0xD0C5, - 0xB56D, 0xD0C6, 0xB56E, 0xD0C7, 0xB56F, 0xD0CA, 0xB570, 0xD0CB, - 0xB571, 0xD0CC, 0xB572, 0xD0CD, 0xB573, 0xD0CE, 0xB574, 0xD0CF, - 0xB575, 0xD0D2, 0xB576, 0xD0D6, 0xB577, 0xD0D7, 0xB578, 0xD0D8, - 0xB579, 0xD0D9, 0xB57A, 0xD0DA, 0xB581, 0xD0DB, 0xB582, 0xD0DE, - 0xB583, 0xD0DF, 0xB584, 0xD0E1, 0xB585, 0xD0E2, 0xB586, 0xD0E3, - 0xB587, 0xD0E5, 0xB588, 0xD0E6, 0xB589, 0xD0E7, 0xB58A, 0xD0E8, - 0xB58B, 0xD0E9, 0xB58C, 0xD0EA, 0xB58D, 0xD0EB, 0xB58E, 0xD0EE, - 0xB58F, 0xD0F2, 0xB590, 0xD0F3, 0xB591, 0xD0F4, 0xB592, 0xD0F5, - 0xB593, 0xD0F6, 0xB594, 0xD0F7, 0xB595, 0xD0F9, 0xB596, 0xD0FA, - 0xB597, 0xD0FB, 0xB598, 0xD0FC, 0xB599, 0xD0FD, 0xB59A, 0xD0FE, - 0xB59B, 0xD0FF, 0xB59C, 0xD100, 0xB59D, 0xD101, 0xB59E, 0xD102, - 0xB59F, 0xD103, 0xB5A0, 0xD104, 0xB5A1, 0xB367, 0xB5A2, 0xB369, - 0xB5A3, 0xB36B, 0xB5A4, 0xB36E, 0xB5A5, 0xB370, 0xB5A6, 0xB371, - 0xB5A7, 0xB374, 0xB5A8, 0xB378, 0xB5A9, 0xB380, 0xB5AA, 0xB381, - 0xB5AB, 0xB383, 0xB5AC, 0xB384, 0xB5AD, 0xB385, 0xB5AE, 0xB38C, - 0xB5AF, 0xB390, 0xB5B0, 0xB394, 0xB5B1, 0xB3A0, 0xB5B2, 0xB3A1, - 0xB5B3, 0xB3A8, 0xB5B4, 0xB3AC, 0xB5B5, 0xB3C4, 0xB5B6, 0xB3C5, - 0xB5B7, 0xB3C8, 0xB5B8, 0xB3CB, 0xB5B9, 0xB3CC, 0xB5BA, 0xB3CE, - 0xB5BB, 0xB3D0, 0xB5BC, 0xB3D4, 0xB5BD, 0xB3D5, 0xB5BE, 0xB3D7, - 0xB5BF, 0xB3D9, 0xB5C0, 0xB3DB, 0xB5C1, 0xB3DD, 0xB5C2, 0xB3E0, - 0xB5C3, 0xB3E4, 0xB5C4, 0xB3E8, 0xB5C5, 0xB3FC, 0xB5C6, 0xB410, - 0xB5C7, 0xB418, 0xB5C8, 0xB41C, 0xB5C9, 0xB420, 0xB5CA, 0xB428, - 0xB5CB, 0xB429, 0xB5CC, 0xB42B, 0xB5CD, 0xB434, 0xB5CE, 0xB450, - 0xB5CF, 0xB451, 0xB5D0, 0xB454, 0xB5D1, 0xB458, 0xB5D2, 0xB460, - 0xB5D3, 0xB461, 0xB5D4, 0xB463, 0xB5D5, 0xB465, 0xB5D6, 0xB46C, - 0xB5D7, 0xB480, 0xB5D8, 0xB488, 0xB5D9, 0xB49D, 0xB5DA, 0xB4A4, - 0xB5DB, 0xB4A8, 0xB5DC, 0xB4AC, 0xB5DD, 0xB4B5, 0xB5DE, 0xB4B7, - 0xB5DF, 0xB4B9, 0xB5E0, 0xB4C0, 0xB5E1, 0xB4C4, 0xB5E2, 0xB4C8, - 0xB5E3, 0xB4D0, 0xB5E4, 0xB4D5, 0xB5E5, 0xB4DC, 0xB5E6, 0xB4DD, - 0xB5E7, 0xB4E0, 0xB5E8, 0xB4E3, 0xB5E9, 0xB4E4, 0xB5EA, 0xB4E6, - 0xB5EB, 0xB4EC, 0xB5EC, 0xB4ED, 0xB5ED, 0xB4EF, 0xB5EE, 0xB4F1, - 0xB5EF, 0xB4F8, 0xB5F0, 0xB514, 0xB5F1, 0xB515, 0xB5F2, 0xB518, - 0xB5F3, 0xB51B, 0xB5F4, 0xB51C, 0xB5F5, 0xB524, 0xB5F6, 0xB525, - 0xB5F7, 0xB527, 0xB5F8, 0xB528, 0xB5F9, 0xB529, 0xB5FA, 0xB52A, - 0xB5FB, 0xB530, 0xB5FC, 0xB531, 0xB5FD, 0xB534, 0xB5FE, 0xB538, - 0xB641, 0xD105, 0xB642, 0xD106, 0xB643, 0xD107, 0xB644, 0xD108, - 0xB645, 0xD109, 0xB646, 0xD10A, 0xB647, 0xD10B, 0xB648, 0xD10C, - 0xB649, 0xD10E, 0xB64A, 0xD10F, 0xB64B, 0xD110, 0xB64C, 0xD111, - 0xB64D, 0xD112, 0xB64E, 0xD113, 0xB64F, 0xD114, 0xB650, 0xD115, - 0xB651, 0xD116, 0xB652, 0xD117, 0xB653, 0xD118, 0xB654, 0xD119, - 0xB655, 0xD11A, 0xB656, 0xD11B, 0xB657, 0xD11C, 0xB658, 0xD11D, - 0xB659, 0xD11E, 0xB65A, 0xD11F, 0xB661, 0xD120, 0xB662, 0xD121, - 0xB663, 0xD122, 0xB664, 0xD123, 0xB665, 0xD124, 0xB666, 0xD125, - 0xB667, 0xD126, 0xB668, 0xD127, 0xB669, 0xD128, 0xB66A, 0xD129, - 0xB66B, 0xD12A, 0xB66C, 0xD12B, 0xB66D, 0xD12C, 0xB66E, 0xD12D, - 0xB66F, 0xD12E, 0xB670, 0xD12F, 0xB671, 0xD132, 0xB672, 0xD133, - 0xB673, 0xD135, 0xB674, 0xD136, 0xB675, 0xD137, 0xB676, 0xD139, - 0xB677, 0xD13B, 0xB678, 0xD13C, 0xB679, 0xD13D, 0xB67A, 0xD13E, - 0xB681, 0xD13F, 0xB682, 0xD142, 0xB683, 0xD146, 0xB684, 0xD147, - 0xB685, 0xD148, 0xB686, 0xD149, 0xB687, 0xD14A, 0xB688, 0xD14B, - 0xB689, 0xD14E, 0xB68A, 0xD14F, 0xB68B, 0xD151, 0xB68C, 0xD152, - 0xB68D, 0xD153, 0xB68E, 0xD155, 0xB68F, 0xD156, 0xB690, 0xD157, - 0xB691, 0xD158, 0xB692, 0xD159, 0xB693, 0xD15A, 0xB694, 0xD15B, - 0xB695, 0xD15E, 0xB696, 0xD160, 0xB697, 0xD162, 0xB698, 0xD163, - 0xB699, 0xD164, 0xB69A, 0xD165, 0xB69B, 0xD166, 0xB69C, 0xD167, - 0xB69D, 0xD169, 0xB69E, 0xD16A, 0xB69F, 0xD16B, 0xB6A0, 0xD16D, - 0xB6A1, 0xB540, 0xB6A2, 0xB541, 0xB6A3, 0xB543, 0xB6A4, 0xB544, - 0xB6A5, 0xB545, 0xB6A6, 0xB54B, 0xB6A7, 0xB54C, 0xB6A8, 0xB54D, - 0xB6A9, 0xB550, 0xB6AA, 0xB554, 0xB6AB, 0xB55C, 0xB6AC, 0xB55D, - 0xB6AD, 0xB55F, 0xB6AE, 0xB560, 0xB6AF, 0xB561, 0xB6B0, 0xB5A0, - 0xB6B1, 0xB5A1, 0xB6B2, 0xB5A4, 0xB6B3, 0xB5A8, 0xB6B4, 0xB5AA, - 0xB6B5, 0xB5AB, 0xB6B6, 0xB5B0, 0xB6B7, 0xB5B1, 0xB6B8, 0xB5B3, - 0xB6B9, 0xB5B4, 0xB6BA, 0xB5B5, 0xB6BB, 0xB5BB, 0xB6BC, 0xB5BC, - 0xB6BD, 0xB5BD, 0xB6BE, 0xB5C0, 0xB6BF, 0xB5C4, 0xB6C0, 0xB5CC, - 0xB6C1, 0xB5CD, 0xB6C2, 0xB5CF, 0xB6C3, 0xB5D0, 0xB6C4, 0xB5D1, - 0xB6C5, 0xB5D8, 0xB6C6, 0xB5EC, 0xB6C7, 0xB610, 0xB6C8, 0xB611, - 0xB6C9, 0xB614, 0xB6CA, 0xB618, 0xB6CB, 0xB625, 0xB6CC, 0xB62C, - 0xB6CD, 0xB634, 0xB6CE, 0xB648, 0xB6CF, 0xB664, 0xB6D0, 0xB668, - 0xB6D1, 0xB69C, 0xB6D2, 0xB69D, 0xB6D3, 0xB6A0, 0xB6D4, 0xB6A4, - 0xB6D5, 0xB6AB, 0xB6D6, 0xB6AC, 0xB6D7, 0xB6B1, 0xB6D8, 0xB6D4, - 0xB6D9, 0xB6F0, 0xB6DA, 0xB6F4, 0xB6DB, 0xB6F8, 0xB6DC, 0xB700, - 0xB6DD, 0xB701, 0xB6DE, 0xB705, 0xB6DF, 0xB728, 0xB6E0, 0xB729, - 0xB6E1, 0xB72C, 0xB6E2, 0xB72F, 0xB6E3, 0xB730, 0xB6E4, 0xB738, - 0xB6E5, 0xB739, 0xB6E6, 0xB73B, 0xB6E7, 0xB744, 0xB6E8, 0xB748, - 0xB6E9, 0xB74C, 0xB6EA, 0xB754, 0xB6EB, 0xB755, 0xB6EC, 0xB760, - 0xB6ED, 0xB764, 0xB6EE, 0xB768, 0xB6EF, 0xB770, 0xB6F0, 0xB771, - 0xB6F1, 0xB773, 0xB6F2, 0xB775, 0xB6F3, 0xB77C, 0xB6F4, 0xB77D, - 0xB6F5, 0xB780, 0xB6F6, 0xB784, 0xB6F7, 0xB78C, 0xB6F8, 0xB78D, - 0xB6F9, 0xB78F, 0xB6FA, 0xB790, 0xB6FB, 0xB791, 0xB6FC, 0xB792, - 0xB6FD, 0xB796, 0xB6FE, 0xB797, 0xB741, 0xD16E, 0xB742, 0xD16F, - 0xB743, 0xD170, 0xB744, 0xD171, 0xB745, 0xD172, 0xB746, 0xD173, - 0xB747, 0xD174, 0xB748, 0xD175, 0xB749, 0xD176, 0xB74A, 0xD177, - 0xB74B, 0xD178, 0xB74C, 0xD179, 0xB74D, 0xD17A, 0xB74E, 0xD17B, - 0xB74F, 0xD17D, 0xB750, 0xD17E, 0xB751, 0xD17F, 0xB752, 0xD180, - 0xB753, 0xD181, 0xB754, 0xD182, 0xB755, 0xD183, 0xB756, 0xD185, - 0xB757, 0xD186, 0xB758, 0xD187, 0xB759, 0xD189, 0xB75A, 0xD18A, - 0xB761, 0xD18B, 0xB762, 0xD18C, 0xB763, 0xD18D, 0xB764, 0xD18E, - 0xB765, 0xD18F, 0xB766, 0xD190, 0xB767, 0xD191, 0xB768, 0xD192, - 0xB769, 0xD193, 0xB76A, 0xD194, 0xB76B, 0xD195, 0xB76C, 0xD196, - 0xB76D, 0xD197, 0xB76E, 0xD198, 0xB76F, 0xD199, 0xB770, 0xD19A, - 0xB771, 0xD19B, 0xB772, 0xD19C, 0xB773, 0xD19D, 0xB774, 0xD19E, - 0xB775, 0xD19F, 0xB776, 0xD1A2, 0xB777, 0xD1A3, 0xB778, 0xD1A5, - 0xB779, 0xD1A6, 0xB77A, 0xD1A7, 0xB781, 0xD1A9, 0xB782, 0xD1AA, - 0xB783, 0xD1AB, 0xB784, 0xD1AC, 0xB785, 0xD1AD, 0xB786, 0xD1AE, - 0xB787, 0xD1AF, 0xB788, 0xD1B2, 0xB789, 0xD1B4, 0xB78A, 0xD1B6, - 0xB78B, 0xD1B7, 0xB78C, 0xD1B8, 0xB78D, 0xD1B9, 0xB78E, 0xD1BB, - 0xB78F, 0xD1BD, 0xB790, 0xD1BE, 0xB791, 0xD1BF, 0xB792, 0xD1C1, - 0xB793, 0xD1C2, 0xB794, 0xD1C3, 0xB795, 0xD1C4, 0xB796, 0xD1C5, - 0xB797, 0xD1C6, 0xB798, 0xD1C7, 0xB799, 0xD1C8, 0xB79A, 0xD1C9, - 0xB79B, 0xD1CA, 0xB79C, 0xD1CB, 0xB79D, 0xD1CC, 0xB79E, 0xD1CD, - 0xB79F, 0xD1CE, 0xB7A0, 0xD1CF, 0xB7A1, 0xB798, 0xB7A2, 0xB799, - 0xB7A3, 0xB79C, 0xB7A4, 0xB7A0, 0xB7A5, 0xB7A8, 0xB7A6, 0xB7A9, - 0xB7A7, 0xB7AB, 0xB7A8, 0xB7AC, 0xB7A9, 0xB7AD, 0xB7AA, 0xB7B4, - 0xB7AB, 0xB7B5, 0xB7AC, 0xB7B8, 0xB7AD, 0xB7C7, 0xB7AE, 0xB7C9, - 0xB7AF, 0xB7EC, 0xB7B0, 0xB7ED, 0xB7B1, 0xB7F0, 0xB7B2, 0xB7F4, - 0xB7B3, 0xB7FC, 0xB7B4, 0xB7FD, 0xB7B5, 0xB7FF, 0xB7B6, 0xB800, - 0xB7B7, 0xB801, 0xB7B8, 0xB807, 0xB7B9, 0xB808, 0xB7BA, 0xB809, - 0xB7BB, 0xB80C, 0xB7BC, 0xB810, 0xB7BD, 0xB818, 0xB7BE, 0xB819, - 0xB7BF, 0xB81B, 0xB7C0, 0xB81D, 0xB7C1, 0xB824, 0xB7C2, 0xB825, - 0xB7C3, 0xB828, 0xB7C4, 0xB82C, 0xB7C5, 0xB834, 0xB7C6, 0xB835, - 0xB7C7, 0xB837, 0xB7C8, 0xB838, 0xB7C9, 0xB839, 0xB7CA, 0xB840, - 0xB7CB, 0xB844, 0xB7CC, 0xB851, 0xB7CD, 0xB853, 0xB7CE, 0xB85C, - 0xB7CF, 0xB85D, 0xB7D0, 0xB860, 0xB7D1, 0xB864, 0xB7D2, 0xB86C, - 0xB7D3, 0xB86D, 0xB7D4, 0xB86F, 0xB7D5, 0xB871, 0xB7D6, 0xB878, - 0xB7D7, 0xB87C, 0xB7D8, 0xB88D, 0xB7D9, 0xB8A8, 0xB7DA, 0xB8B0, - 0xB7DB, 0xB8B4, 0xB7DC, 0xB8B8, 0xB7DD, 0xB8C0, 0xB7DE, 0xB8C1, - 0xB7DF, 0xB8C3, 0xB7E0, 0xB8C5, 0xB7E1, 0xB8CC, 0xB7E2, 0xB8D0, - 0xB7E3, 0xB8D4, 0xB7E4, 0xB8DD, 0xB7E5, 0xB8DF, 0xB7E6, 0xB8E1, - 0xB7E7, 0xB8E8, 0xB7E8, 0xB8E9, 0xB7E9, 0xB8EC, 0xB7EA, 0xB8F0, - 0xB7EB, 0xB8F8, 0xB7EC, 0xB8F9, 0xB7ED, 0xB8FB, 0xB7EE, 0xB8FD, - 0xB7EF, 0xB904, 0xB7F0, 0xB918, 0xB7F1, 0xB920, 0xB7F2, 0xB93C, - 0xB7F3, 0xB93D, 0xB7F4, 0xB940, 0xB7F5, 0xB944, 0xB7F6, 0xB94C, - 0xB7F7, 0xB94F, 0xB7F8, 0xB951, 0xB7F9, 0xB958, 0xB7FA, 0xB959, - 0xB7FB, 0xB95C, 0xB7FC, 0xB960, 0xB7FD, 0xB968, 0xB7FE, 0xB969, - 0xB841, 0xD1D0, 0xB842, 0xD1D1, 0xB843, 0xD1D2, 0xB844, 0xD1D3, - 0xB845, 0xD1D4, 0xB846, 0xD1D5, 0xB847, 0xD1D6, 0xB848, 0xD1D7, - 0xB849, 0xD1D9, 0xB84A, 0xD1DA, 0xB84B, 0xD1DB, 0xB84C, 0xD1DC, - 0xB84D, 0xD1DD, 0xB84E, 0xD1DE, 0xB84F, 0xD1DF, 0xB850, 0xD1E0, - 0xB851, 0xD1E1, 0xB852, 0xD1E2, 0xB853, 0xD1E3, 0xB854, 0xD1E4, - 0xB855, 0xD1E5, 0xB856, 0xD1E6, 0xB857, 0xD1E7, 0xB858, 0xD1E8, - 0xB859, 0xD1E9, 0xB85A, 0xD1EA, 0xB861, 0xD1EB, 0xB862, 0xD1EC, - 0xB863, 0xD1ED, 0xB864, 0xD1EE, 0xB865, 0xD1EF, 0xB866, 0xD1F0, - 0xB867, 0xD1F1, 0xB868, 0xD1F2, 0xB869, 0xD1F3, 0xB86A, 0xD1F5, - 0xB86B, 0xD1F6, 0xB86C, 0xD1F7, 0xB86D, 0xD1F9, 0xB86E, 0xD1FA, - 0xB86F, 0xD1FB, 0xB870, 0xD1FC, 0xB871, 0xD1FD, 0xB872, 0xD1FE, - 0xB873, 0xD1FF, 0xB874, 0xD200, 0xB875, 0xD201, 0xB876, 0xD202, - 0xB877, 0xD203, 0xB878, 0xD204, 0xB879, 0xD205, 0xB87A, 0xD206, - 0xB881, 0xD208, 0xB882, 0xD20A, 0xB883, 0xD20B, 0xB884, 0xD20C, - 0xB885, 0xD20D, 0xB886, 0xD20E, 0xB887, 0xD20F, 0xB888, 0xD211, - 0xB889, 0xD212, 0xB88A, 0xD213, 0xB88B, 0xD214, 0xB88C, 0xD215, - 0xB88D, 0xD216, 0xB88E, 0xD217, 0xB88F, 0xD218, 0xB890, 0xD219, - 0xB891, 0xD21A, 0xB892, 0xD21B, 0xB893, 0xD21C, 0xB894, 0xD21D, - 0xB895, 0xD21E, 0xB896, 0xD21F, 0xB897, 0xD220, 0xB898, 0xD221, - 0xB899, 0xD222, 0xB89A, 0xD223, 0xB89B, 0xD224, 0xB89C, 0xD225, - 0xB89D, 0xD226, 0xB89E, 0xD227, 0xB89F, 0xD228, 0xB8A0, 0xD229, - 0xB8A1, 0xB96B, 0xB8A2, 0xB96D, 0xB8A3, 0xB974, 0xB8A4, 0xB975, - 0xB8A5, 0xB978, 0xB8A6, 0xB97C, 0xB8A7, 0xB984, 0xB8A8, 0xB985, - 0xB8A9, 0xB987, 0xB8AA, 0xB989, 0xB8AB, 0xB98A, 0xB8AC, 0xB98D, - 0xB8AD, 0xB98E, 0xB8AE, 0xB9AC, 0xB8AF, 0xB9AD, 0xB8B0, 0xB9B0, - 0xB8B1, 0xB9B4, 0xB8B2, 0xB9BC, 0xB8B3, 0xB9BD, 0xB8B4, 0xB9BF, - 0xB8B5, 0xB9C1, 0xB8B6, 0xB9C8, 0xB8B7, 0xB9C9, 0xB8B8, 0xB9CC, - 0xB8B9, 0xB9CE, 0xB8BA, 0xB9CF, 0xB8BB, 0xB9D0, 0xB8BC, 0xB9D1, - 0xB8BD, 0xB9D2, 0xB8BE, 0xB9D8, 0xB8BF, 0xB9D9, 0xB8C0, 0xB9DB, - 0xB8C1, 0xB9DD, 0xB8C2, 0xB9DE, 0xB8C3, 0xB9E1, 0xB8C4, 0xB9E3, - 0xB8C5, 0xB9E4, 0xB8C6, 0xB9E5, 0xB8C7, 0xB9E8, 0xB8C8, 0xB9EC, - 0xB8C9, 0xB9F4, 0xB8CA, 0xB9F5, 0xB8CB, 0xB9F7, 0xB8CC, 0xB9F8, - 0xB8CD, 0xB9F9, 0xB8CE, 0xB9FA, 0xB8CF, 0xBA00, 0xB8D0, 0xBA01, - 0xB8D1, 0xBA08, 0xB8D2, 0xBA15, 0xB8D3, 0xBA38, 0xB8D4, 0xBA39, - 0xB8D5, 0xBA3C, 0xB8D6, 0xBA40, 0xB8D7, 0xBA42, 0xB8D8, 0xBA48, - 0xB8D9, 0xBA49, 0xB8DA, 0xBA4B, 0xB8DB, 0xBA4D, 0xB8DC, 0xBA4E, - 0xB8DD, 0xBA53, 0xB8DE, 0xBA54, 0xB8DF, 0xBA55, 0xB8E0, 0xBA58, - 0xB8E1, 0xBA5C, 0xB8E2, 0xBA64, 0xB8E3, 0xBA65, 0xB8E4, 0xBA67, - 0xB8E5, 0xBA68, 0xB8E6, 0xBA69, 0xB8E7, 0xBA70, 0xB8E8, 0xBA71, - 0xB8E9, 0xBA74, 0xB8EA, 0xBA78, 0xB8EB, 0xBA83, 0xB8EC, 0xBA84, - 0xB8ED, 0xBA85, 0xB8EE, 0xBA87, 0xB8EF, 0xBA8C, 0xB8F0, 0xBAA8, - 0xB8F1, 0xBAA9, 0xB8F2, 0xBAAB, 0xB8F3, 0xBAAC, 0xB8F4, 0xBAB0, - 0xB8F5, 0xBAB2, 0xB8F6, 0xBAB8, 0xB8F7, 0xBAB9, 0xB8F8, 0xBABB, - 0xB8F9, 0xBABD, 0xB8FA, 0xBAC4, 0xB8FB, 0xBAC8, 0xB8FC, 0xBAD8, - 0xB8FD, 0xBAD9, 0xB8FE, 0xBAFC, 0xB941, 0xD22A, 0xB942, 0xD22B, - 0xB943, 0xD22E, 0xB944, 0xD22F, 0xB945, 0xD231, 0xB946, 0xD232, - 0xB947, 0xD233, 0xB948, 0xD235, 0xB949, 0xD236, 0xB94A, 0xD237, - 0xB94B, 0xD238, 0xB94C, 0xD239, 0xB94D, 0xD23A, 0xB94E, 0xD23B, - 0xB94F, 0xD23E, 0xB950, 0xD240, 0xB951, 0xD242, 0xB952, 0xD243, - 0xB953, 0xD244, 0xB954, 0xD245, 0xB955, 0xD246, 0xB956, 0xD247, - 0xB957, 0xD249, 0xB958, 0xD24A, 0xB959, 0xD24B, 0xB95A, 0xD24C, - 0xB961, 0xD24D, 0xB962, 0xD24E, 0xB963, 0xD24F, 0xB964, 0xD250, - 0xB965, 0xD251, 0xB966, 0xD252, 0xB967, 0xD253, 0xB968, 0xD254, - 0xB969, 0xD255, 0xB96A, 0xD256, 0xB96B, 0xD257, 0xB96C, 0xD258, - 0xB96D, 0xD259, 0xB96E, 0xD25A, 0xB96F, 0xD25B, 0xB970, 0xD25D, - 0xB971, 0xD25E, 0xB972, 0xD25F, 0xB973, 0xD260, 0xB974, 0xD261, - 0xB975, 0xD262, 0xB976, 0xD263, 0xB977, 0xD265, 0xB978, 0xD266, - 0xB979, 0xD267, 0xB97A, 0xD268, 0xB981, 0xD269, 0xB982, 0xD26A, - 0xB983, 0xD26B, 0xB984, 0xD26C, 0xB985, 0xD26D, 0xB986, 0xD26E, - 0xB987, 0xD26F, 0xB988, 0xD270, 0xB989, 0xD271, 0xB98A, 0xD272, - 0xB98B, 0xD273, 0xB98C, 0xD274, 0xB98D, 0xD275, 0xB98E, 0xD276, - 0xB98F, 0xD277, 0xB990, 0xD278, 0xB991, 0xD279, 0xB992, 0xD27A, - 0xB993, 0xD27B, 0xB994, 0xD27C, 0xB995, 0xD27D, 0xB996, 0xD27E, - 0xB997, 0xD27F, 0xB998, 0xD282, 0xB999, 0xD283, 0xB99A, 0xD285, - 0xB99B, 0xD286, 0xB99C, 0xD287, 0xB99D, 0xD289, 0xB99E, 0xD28A, - 0xB99F, 0xD28B, 0xB9A0, 0xD28C, 0xB9A1, 0xBB00, 0xB9A2, 0xBB04, - 0xB9A3, 0xBB0D, 0xB9A4, 0xBB0F, 0xB9A5, 0xBB11, 0xB9A6, 0xBB18, - 0xB9A7, 0xBB1C, 0xB9A8, 0xBB20, 0xB9A9, 0xBB29, 0xB9AA, 0xBB2B, - 0xB9AB, 0xBB34, 0xB9AC, 0xBB35, 0xB9AD, 0xBB36, 0xB9AE, 0xBB38, - 0xB9AF, 0xBB3B, 0xB9B0, 0xBB3C, 0xB9B1, 0xBB3D, 0xB9B2, 0xBB3E, - 0xB9B3, 0xBB44, 0xB9B4, 0xBB45, 0xB9B5, 0xBB47, 0xB9B6, 0xBB49, - 0xB9B7, 0xBB4D, 0xB9B8, 0xBB4F, 0xB9B9, 0xBB50, 0xB9BA, 0xBB54, - 0xB9BB, 0xBB58, 0xB9BC, 0xBB61, 0xB9BD, 0xBB63, 0xB9BE, 0xBB6C, - 0xB9BF, 0xBB88, 0xB9C0, 0xBB8C, 0xB9C1, 0xBB90, 0xB9C2, 0xBBA4, - 0xB9C3, 0xBBA8, 0xB9C4, 0xBBAC, 0xB9C5, 0xBBB4, 0xB9C6, 0xBBB7, - 0xB9C7, 0xBBC0, 0xB9C8, 0xBBC4, 0xB9C9, 0xBBC8, 0xB9CA, 0xBBD0, - 0xB9CB, 0xBBD3, 0xB9CC, 0xBBF8, 0xB9CD, 0xBBF9, 0xB9CE, 0xBBFC, - 0xB9CF, 0xBBFF, 0xB9D0, 0xBC00, 0xB9D1, 0xBC02, 0xB9D2, 0xBC08, - 0xB9D3, 0xBC09, 0xB9D4, 0xBC0B, 0xB9D5, 0xBC0C, 0xB9D6, 0xBC0D, - 0xB9D7, 0xBC0F, 0xB9D8, 0xBC11, 0xB9D9, 0xBC14, 0xB9DA, 0xBC15, - 0xB9DB, 0xBC16, 0xB9DC, 0xBC17, 0xB9DD, 0xBC18, 0xB9DE, 0xBC1B, - 0xB9DF, 0xBC1C, 0xB9E0, 0xBC1D, 0xB9E1, 0xBC1E, 0xB9E2, 0xBC1F, - 0xB9E3, 0xBC24, 0xB9E4, 0xBC25, 0xB9E5, 0xBC27, 0xB9E6, 0xBC29, - 0xB9E7, 0xBC2D, 0xB9E8, 0xBC30, 0xB9E9, 0xBC31, 0xB9EA, 0xBC34, - 0xB9EB, 0xBC38, 0xB9EC, 0xBC40, 0xB9ED, 0xBC41, 0xB9EE, 0xBC43, - 0xB9EF, 0xBC44, 0xB9F0, 0xBC45, 0xB9F1, 0xBC49, 0xB9F2, 0xBC4C, - 0xB9F3, 0xBC4D, 0xB9F4, 0xBC50, 0xB9F5, 0xBC5D, 0xB9F6, 0xBC84, - 0xB9F7, 0xBC85, 0xB9F8, 0xBC88, 0xB9F9, 0xBC8B, 0xB9FA, 0xBC8C, - 0xB9FB, 0xBC8E, 0xB9FC, 0xBC94, 0xB9FD, 0xBC95, 0xB9FE, 0xBC97, - 0xBA41, 0xD28D, 0xBA42, 0xD28E, 0xBA43, 0xD28F, 0xBA44, 0xD292, - 0xBA45, 0xD293, 0xBA46, 0xD294, 0xBA47, 0xD296, 0xBA48, 0xD297, - 0xBA49, 0xD298, 0xBA4A, 0xD299, 0xBA4B, 0xD29A, 0xBA4C, 0xD29B, - 0xBA4D, 0xD29D, 0xBA4E, 0xD29E, 0xBA4F, 0xD29F, 0xBA50, 0xD2A1, - 0xBA51, 0xD2A2, 0xBA52, 0xD2A3, 0xBA53, 0xD2A5, 0xBA54, 0xD2A6, - 0xBA55, 0xD2A7, 0xBA56, 0xD2A8, 0xBA57, 0xD2A9, 0xBA58, 0xD2AA, - 0xBA59, 0xD2AB, 0xBA5A, 0xD2AD, 0xBA61, 0xD2AE, 0xBA62, 0xD2AF, - 0xBA63, 0xD2B0, 0xBA64, 0xD2B2, 0xBA65, 0xD2B3, 0xBA66, 0xD2B4, - 0xBA67, 0xD2B5, 0xBA68, 0xD2B6, 0xBA69, 0xD2B7, 0xBA6A, 0xD2BA, - 0xBA6B, 0xD2BB, 0xBA6C, 0xD2BD, 0xBA6D, 0xD2BE, 0xBA6E, 0xD2C1, - 0xBA6F, 0xD2C3, 0xBA70, 0xD2C4, 0xBA71, 0xD2C5, 0xBA72, 0xD2C6, - 0xBA73, 0xD2C7, 0xBA74, 0xD2CA, 0xBA75, 0xD2CC, 0xBA76, 0xD2CD, - 0xBA77, 0xD2CE, 0xBA78, 0xD2CF, 0xBA79, 0xD2D0, 0xBA7A, 0xD2D1, - 0xBA81, 0xD2D2, 0xBA82, 0xD2D3, 0xBA83, 0xD2D5, 0xBA84, 0xD2D6, - 0xBA85, 0xD2D7, 0xBA86, 0xD2D9, 0xBA87, 0xD2DA, 0xBA88, 0xD2DB, - 0xBA89, 0xD2DD, 0xBA8A, 0xD2DE, 0xBA8B, 0xD2DF, 0xBA8C, 0xD2E0, - 0xBA8D, 0xD2E1, 0xBA8E, 0xD2E2, 0xBA8F, 0xD2E3, 0xBA90, 0xD2E6, - 0xBA91, 0xD2E7, 0xBA92, 0xD2E8, 0xBA93, 0xD2E9, 0xBA94, 0xD2EA, - 0xBA95, 0xD2EB, 0xBA96, 0xD2EC, 0xBA97, 0xD2ED, 0xBA98, 0xD2EE, - 0xBA99, 0xD2EF, 0xBA9A, 0xD2F2, 0xBA9B, 0xD2F3, 0xBA9C, 0xD2F5, - 0xBA9D, 0xD2F6, 0xBA9E, 0xD2F7, 0xBA9F, 0xD2F9, 0xBAA0, 0xD2FA, - 0xBAA1, 0xBC99, 0xBAA2, 0xBC9A, 0xBAA3, 0xBCA0, 0xBAA4, 0xBCA1, - 0xBAA5, 0xBCA4, 0xBAA6, 0xBCA7, 0xBAA7, 0xBCA8, 0xBAA8, 0xBCB0, - 0xBAA9, 0xBCB1, 0xBAAA, 0xBCB3, 0xBAAB, 0xBCB4, 0xBAAC, 0xBCB5, - 0xBAAD, 0xBCBC, 0xBAAE, 0xBCBD, 0xBAAF, 0xBCC0, 0xBAB0, 0xBCC4, - 0xBAB1, 0xBCCD, 0xBAB2, 0xBCCF, 0xBAB3, 0xBCD0, 0xBAB4, 0xBCD1, - 0xBAB5, 0xBCD5, 0xBAB6, 0xBCD8, 0xBAB7, 0xBCDC, 0xBAB8, 0xBCF4, - 0xBAB9, 0xBCF5, 0xBABA, 0xBCF6, 0xBABB, 0xBCF8, 0xBABC, 0xBCFC, - 0xBABD, 0xBD04, 0xBABE, 0xBD05, 0xBABF, 0xBD07, 0xBAC0, 0xBD09, - 0xBAC1, 0xBD10, 0xBAC2, 0xBD14, 0xBAC3, 0xBD24, 0xBAC4, 0xBD2C, - 0xBAC5, 0xBD40, 0xBAC6, 0xBD48, 0xBAC7, 0xBD49, 0xBAC8, 0xBD4C, - 0xBAC9, 0xBD50, 0xBACA, 0xBD58, 0xBACB, 0xBD59, 0xBACC, 0xBD64, - 0xBACD, 0xBD68, 0xBACE, 0xBD80, 0xBACF, 0xBD81, 0xBAD0, 0xBD84, - 0xBAD1, 0xBD87, 0xBAD2, 0xBD88, 0xBAD3, 0xBD89, 0xBAD4, 0xBD8A, - 0xBAD5, 0xBD90, 0xBAD6, 0xBD91, 0xBAD7, 0xBD93, 0xBAD8, 0xBD95, - 0xBAD9, 0xBD99, 0xBADA, 0xBD9A, 0xBADB, 0xBD9C, 0xBADC, 0xBDA4, - 0xBADD, 0xBDB0, 0xBADE, 0xBDB8, 0xBADF, 0xBDD4, 0xBAE0, 0xBDD5, - 0xBAE1, 0xBDD8, 0xBAE2, 0xBDDC, 0xBAE3, 0xBDE9, 0xBAE4, 0xBDF0, - 0xBAE5, 0xBDF4, 0xBAE6, 0xBDF8, 0xBAE7, 0xBE00, 0xBAE8, 0xBE03, - 0xBAE9, 0xBE05, 0xBAEA, 0xBE0C, 0xBAEB, 0xBE0D, 0xBAEC, 0xBE10, - 0xBAED, 0xBE14, 0xBAEE, 0xBE1C, 0xBAEF, 0xBE1D, 0xBAF0, 0xBE1F, - 0xBAF1, 0xBE44, 0xBAF2, 0xBE45, 0xBAF3, 0xBE48, 0xBAF4, 0xBE4C, - 0xBAF5, 0xBE4E, 0xBAF6, 0xBE54, 0xBAF7, 0xBE55, 0xBAF8, 0xBE57, - 0xBAF9, 0xBE59, 0xBAFA, 0xBE5A, 0xBAFB, 0xBE5B, 0xBAFC, 0xBE60, - 0xBAFD, 0xBE61, 0xBAFE, 0xBE64, 0xBB41, 0xD2FB, 0xBB42, 0xD2FC, - 0xBB43, 0xD2FD, 0xBB44, 0xD2FE, 0xBB45, 0xD2FF, 0xBB46, 0xD302, - 0xBB47, 0xD304, 0xBB48, 0xD306, 0xBB49, 0xD307, 0xBB4A, 0xD308, - 0xBB4B, 0xD309, 0xBB4C, 0xD30A, 0xBB4D, 0xD30B, 0xBB4E, 0xD30F, - 0xBB4F, 0xD311, 0xBB50, 0xD312, 0xBB51, 0xD313, 0xBB52, 0xD315, - 0xBB53, 0xD317, 0xBB54, 0xD318, 0xBB55, 0xD319, 0xBB56, 0xD31A, - 0xBB57, 0xD31B, 0xBB58, 0xD31E, 0xBB59, 0xD322, 0xBB5A, 0xD323, - 0xBB61, 0xD324, 0xBB62, 0xD326, 0xBB63, 0xD327, 0xBB64, 0xD32A, - 0xBB65, 0xD32B, 0xBB66, 0xD32D, 0xBB67, 0xD32E, 0xBB68, 0xD32F, - 0xBB69, 0xD331, 0xBB6A, 0xD332, 0xBB6B, 0xD333, 0xBB6C, 0xD334, - 0xBB6D, 0xD335, 0xBB6E, 0xD336, 0xBB6F, 0xD337, 0xBB70, 0xD33A, - 0xBB71, 0xD33E, 0xBB72, 0xD33F, 0xBB73, 0xD340, 0xBB74, 0xD341, - 0xBB75, 0xD342, 0xBB76, 0xD343, 0xBB77, 0xD346, 0xBB78, 0xD347, - 0xBB79, 0xD348, 0xBB7A, 0xD349, 0xBB81, 0xD34A, 0xBB82, 0xD34B, - 0xBB83, 0xD34C, 0xBB84, 0xD34D, 0xBB85, 0xD34E, 0xBB86, 0xD34F, - 0xBB87, 0xD350, 0xBB88, 0xD351, 0xBB89, 0xD352, 0xBB8A, 0xD353, - 0xBB8B, 0xD354, 0xBB8C, 0xD355, 0xBB8D, 0xD356, 0xBB8E, 0xD357, - 0xBB8F, 0xD358, 0xBB90, 0xD359, 0xBB91, 0xD35A, 0xBB92, 0xD35B, - 0xBB93, 0xD35C, 0xBB94, 0xD35D, 0xBB95, 0xD35E, 0xBB96, 0xD35F, - 0xBB97, 0xD360, 0xBB98, 0xD361, 0xBB99, 0xD362, 0xBB9A, 0xD363, - 0xBB9B, 0xD364, 0xBB9C, 0xD365, 0xBB9D, 0xD366, 0xBB9E, 0xD367, - 0xBB9F, 0xD368, 0xBBA0, 0xD369, 0xBBA1, 0xBE68, 0xBBA2, 0xBE6A, - 0xBBA3, 0xBE70, 0xBBA4, 0xBE71, 0xBBA5, 0xBE73, 0xBBA6, 0xBE74, - 0xBBA7, 0xBE75, 0xBBA8, 0xBE7B, 0xBBA9, 0xBE7C, 0xBBAA, 0xBE7D, - 0xBBAB, 0xBE80, 0xBBAC, 0xBE84, 0xBBAD, 0xBE8C, 0xBBAE, 0xBE8D, - 0xBBAF, 0xBE8F, 0xBBB0, 0xBE90, 0xBBB1, 0xBE91, 0xBBB2, 0xBE98, - 0xBBB3, 0xBE99, 0xBBB4, 0xBEA8, 0xBBB5, 0xBED0, 0xBBB6, 0xBED1, - 0xBBB7, 0xBED4, 0xBBB8, 0xBED7, 0xBBB9, 0xBED8, 0xBBBA, 0xBEE0, - 0xBBBB, 0xBEE3, 0xBBBC, 0xBEE4, 0xBBBD, 0xBEE5, 0xBBBE, 0xBEEC, - 0xBBBF, 0xBF01, 0xBBC0, 0xBF08, 0xBBC1, 0xBF09, 0xBBC2, 0xBF18, - 0xBBC3, 0xBF19, 0xBBC4, 0xBF1B, 0xBBC5, 0xBF1C, 0xBBC6, 0xBF1D, - 0xBBC7, 0xBF40, 0xBBC8, 0xBF41, 0xBBC9, 0xBF44, 0xBBCA, 0xBF48, - 0xBBCB, 0xBF50, 0xBBCC, 0xBF51, 0xBBCD, 0xBF55, 0xBBCE, 0xBF94, - 0xBBCF, 0xBFB0, 0xBBD0, 0xBFC5, 0xBBD1, 0xBFCC, 0xBBD2, 0xBFCD, - 0xBBD3, 0xBFD0, 0xBBD4, 0xBFD4, 0xBBD5, 0xBFDC, 0xBBD6, 0xBFDF, - 0xBBD7, 0xBFE1, 0xBBD8, 0xC03C, 0xBBD9, 0xC051, 0xBBDA, 0xC058, - 0xBBDB, 0xC05C, 0xBBDC, 0xC060, 0xBBDD, 0xC068, 0xBBDE, 0xC069, - 0xBBDF, 0xC090, 0xBBE0, 0xC091, 0xBBE1, 0xC094, 0xBBE2, 0xC098, - 0xBBE3, 0xC0A0, 0xBBE4, 0xC0A1, 0xBBE5, 0xC0A3, 0xBBE6, 0xC0A5, - 0xBBE7, 0xC0AC, 0xBBE8, 0xC0AD, 0xBBE9, 0xC0AF, 0xBBEA, 0xC0B0, - 0xBBEB, 0xC0B3, 0xBBEC, 0xC0B4, 0xBBED, 0xC0B5, 0xBBEE, 0xC0B6, - 0xBBEF, 0xC0BC, 0xBBF0, 0xC0BD, 0xBBF1, 0xC0BF, 0xBBF2, 0xC0C0, - 0xBBF3, 0xC0C1, 0xBBF4, 0xC0C5, 0xBBF5, 0xC0C8, 0xBBF6, 0xC0C9, - 0xBBF7, 0xC0CC, 0xBBF8, 0xC0D0, 0xBBF9, 0xC0D8, 0xBBFA, 0xC0D9, - 0xBBFB, 0xC0DB, 0xBBFC, 0xC0DC, 0xBBFD, 0xC0DD, 0xBBFE, 0xC0E4, - 0xBC41, 0xD36A, 0xBC42, 0xD36B, 0xBC43, 0xD36C, 0xBC44, 0xD36D, - 0xBC45, 0xD36E, 0xBC46, 0xD36F, 0xBC47, 0xD370, 0xBC48, 0xD371, - 0xBC49, 0xD372, 0xBC4A, 0xD373, 0xBC4B, 0xD374, 0xBC4C, 0xD375, - 0xBC4D, 0xD376, 0xBC4E, 0xD377, 0xBC4F, 0xD378, 0xBC50, 0xD379, - 0xBC51, 0xD37A, 0xBC52, 0xD37B, 0xBC53, 0xD37E, 0xBC54, 0xD37F, - 0xBC55, 0xD381, 0xBC56, 0xD382, 0xBC57, 0xD383, 0xBC58, 0xD385, - 0xBC59, 0xD386, 0xBC5A, 0xD387, 0xBC61, 0xD388, 0xBC62, 0xD389, - 0xBC63, 0xD38A, 0xBC64, 0xD38B, 0xBC65, 0xD38E, 0xBC66, 0xD392, - 0xBC67, 0xD393, 0xBC68, 0xD394, 0xBC69, 0xD395, 0xBC6A, 0xD396, - 0xBC6B, 0xD397, 0xBC6C, 0xD39A, 0xBC6D, 0xD39B, 0xBC6E, 0xD39D, - 0xBC6F, 0xD39E, 0xBC70, 0xD39F, 0xBC71, 0xD3A1, 0xBC72, 0xD3A2, - 0xBC73, 0xD3A3, 0xBC74, 0xD3A4, 0xBC75, 0xD3A5, 0xBC76, 0xD3A6, - 0xBC77, 0xD3A7, 0xBC78, 0xD3AA, 0xBC79, 0xD3AC, 0xBC7A, 0xD3AE, - 0xBC81, 0xD3AF, 0xBC82, 0xD3B0, 0xBC83, 0xD3B1, 0xBC84, 0xD3B2, - 0xBC85, 0xD3B3, 0xBC86, 0xD3B5, 0xBC87, 0xD3B6, 0xBC88, 0xD3B7, - 0xBC89, 0xD3B9, 0xBC8A, 0xD3BA, 0xBC8B, 0xD3BB, 0xBC8C, 0xD3BD, - 0xBC8D, 0xD3BE, 0xBC8E, 0xD3BF, 0xBC8F, 0xD3C0, 0xBC90, 0xD3C1, - 0xBC91, 0xD3C2, 0xBC92, 0xD3C3, 0xBC93, 0xD3C6, 0xBC94, 0xD3C7, - 0xBC95, 0xD3CA, 0xBC96, 0xD3CB, 0xBC97, 0xD3CC, 0xBC98, 0xD3CD, - 0xBC99, 0xD3CE, 0xBC9A, 0xD3CF, 0xBC9B, 0xD3D1, 0xBC9C, 0xD3D2, - 0xBC9D, 0xD3D3, 0xBC9E, 0xD3D4, 0xBC9F, 0xD3D5, 0xBCA0, 0xD3D6, - 0xBCA1, 0xC0E5, 0xBCA2, 0xC0E8, 0xBCA3, 0xC0EC, 0xBCA4, 0xC0F4, - 0xBCA5, 0xC0F5, 0xBCA6, 0xC0F7, 0xBCA7, 0xC0F9, 0xBCA8, 0xC100, - 0xBCA9, 0xC104, 0xBCAA, 0xC108, 0xBCAB, 0xC110, 0xBCAC, 0xC115, - 0xBCAD, 0xC11C, 0xBCAE, 0xC11D, 0xBCAF, 0xC11E, 0xBCB0, 0xC11F, - 0xBCB1, 0xC120, 0xBCB2, 0xC123, 0xBCB3, 0xC124, 0xBCB4, 0xC126, - 0xBCB5, 0xC127, 0xBCB6, 0xC12C, 0xBCB7, 0xC12D, 0xBCB8, 0xC12F, - 0xBCB9, 0xC130, 0xBCBA, 0xC131, 0xBCBB, 0xC136, 0xBCBC, 0xC138, - 0xBCBD, 0xC139, 0xBCBE, 0xC13C, 0xBCBF, 0xC140, 0xBCC0, 0xC148, - 0xBCC1, 0xC149, 0xBCC2, 0xC14B, 0xBCC3, 0xC14C, 0xBCC4, 0xC14D, - 0xBCC5, 0xC154, 0xBCC6, 0xC155, 0xBCC7, 0xC158, 0xBCC8, 0xC15C, - 0xBCC9, 0xC164, 0xBCCA, 0xC165, 0xBCCB, 0xC167, 0xBCCC, 0xC168, - 0xBCCD, 0xC169, 0xBCCE, 0xC170, 0xBCCF, 0xC174, 0xBCD0, 0xC178, - 0xBCD1, 0xC185, 0xBCD2, 0xC18C, 0xBCD3, 0xC18D, 0xBCD4, 0xC18E, - 0xBCD5, 0xC190, 0xBCD6, 0xC194, 0xBCD7, 0xC196, 0xBCD8, 0xC19C, - 0xBCD9, 0xC19D, 0xBCDA, 0xC19F, 0xBCDB, 0xC1A1, 0xBCDC, 0xC1A5, - 0xBCDD, 0xC1A8, 0xBCDE, 0xC1A9, 0xBCDF, 0xC1AC, 0xBCE0, 0xC1B0, - 0xBCE1, 0xC1BD, 0xBCE2, 0xC1C4, 0xBCE3, 0xC1C8, 0xBCE4, 0xC1CC, - 0xBCE5, 0xC1D4, 0xBCE6, 0xC1D7, 0xBCE7, 0xC1D8, 0xBCE8, 0xC1E0, - 0xBCE9, 0xC1E4, 0xBCEA, 0xC1E8, 0xBCEB, 0xC1F0, 0xBCEC, 0xC1F1, - 0xBCED, 0xC1F3, 0xBCEE, 0xC1FC, 0xBCEF, 0xC1FD, 0xBCF0, 0xC200, - 0xBCF1, 0xC204, 0xBCF2, 0xC20C, 0xBCF3, 0xC20D, 0xBCF4, 0xC20F, - 0xBCF5, 0xC211, 0xBCF6, 0xC218, 0xBCF7, 0xC219, 0xBCF8, 0xC21C, - 0xBCF9, 0xC21F, 0xBCFA, 0xC220, 0xBCFB, 0xC228, 0xBCFC, 0xC229, - 0xBCFD, 0xC22B, 0xBCFE, 0xC22D, 0xBD41, 0xD3D7, 0xBD42, 0xD3D9, - 0xBD43, 0xD3DA, 0xBD44, 0xD3DB, 0xBD45, 0xD3DC, 0xBD46, 0xD3DD, - 0xBD47, 0xD3DE, 0xBD48, 0xD3DF, 0xBD49, 0xD3E0, 0xBD4A, 0xD3E2, - 0xBD4B, 0xD3E4, 0xBD4C, 0xD3E5, 0xBD4D, 0xD3E6, 0xBD4E, 0xD3E7, - 0xBD4F, 0xD3E8, 0xBD50, 0xD3E9, 0xBD51, 0xD3EA, 0xBD52, 0xD3EB, - 0xBD53, 0xD3EE, 0xBD54, 0xD3EF, 0xBD55, 0xD3F1, 0xBD56, 0xD3F2, - 0xBD57, 0xD3F3, 0xBD58, 0xD3F5, 0xBD59, 0xD3F6, 0xBD5A, 0xD3F7, - 0xBD61, 0xD3F8, 0xBD62, 0xD3F9, 0xBD63, 0xD3FA, 0xBD64, 0xD3FB, - 0xBD65, 0xD3FE, 0xBD66, 0xD400, 0xBD67, 0xD402, 0xBD68, 0xD403, - 0xBD69, 0xD404, 0xBD6A, 0xD405, 0xBD6B, 0xD406, 0xBD6C, 0xD407, - 0xBD6D, 0xD409, 0xBD6E, 0xD40A, 0xBD6F, 0xD40B, 0xBD70, 0xD40C, - 0xBD71, 0xD40D, 0xBD72, 0xD40E, 0xBD73, 0xD40F, 0xBD74, 0xD410, - 0xBD75, 0xD411, 0xBD76, 0xD412, 0xBD77, 0xD413, 0xBD78, 0xD414, - 0xBD79, 0xD415, 0xBD7A, 0xD416, 0xBD81, 0xD417, 0xBD82, 0xD418, - 0xBD83, 0xD419, 0xBD84, 0xD41A, 0xBD85, 0xD41B, 0xBD86, 0xD41C, - 0xBD87, 0xD41E, 0xBD88, 0xD41F, 0xBD89, 0xD420, 0xBD8A, 0xD421, - 0xBD8B, 0xD422, 0xBD8C, 0xD423, 0xBD8D, 0xD424, 0xBD8E, 0xD425, - 0xBD8F, 0xD426, 0xBD90, 0xD427, 0xBD91, 0xD428, 0xBD92, 0xD429, - 0xBD93, 0xD42A, 0xBD94, 0xD42B, 0xBD95, 0xD42C, 0xBD96, 0xD42D, - 0xBD97, 0xD42E, 0xBD98, 0xD42F, 0xBD99, 0xD430, 0xBD9A, 0xD431, - 0xBD9B, 0xD432, 0xBD9C, 0xD433, 0xBD9D, 0xD434, 0xBD9E, 0xD435, - 0xBD9F, 0xD436, 0xBDA0, 0xD437, 0xBDA1, 0xC22F, 0xBDA2, 0xC231, - 0xBDA3, 0xC232, 0xBDA4, 0xC234, 0xBDA5, 0xC248, 0xBDA6, 0xC250, - 0xBDA7, 0xC251, 0xBDA8, 0xC254, 0xBDA9, 0xC258, 0xBDAA, 0xC260, - 0xBDAB, 0xC265, 0xBDAC, 0xC26C, 0xBDAD, 0xC26D, 0xBDAE, 0xC270, - 0xBDAF, 0xC274, 0xBDB0, 0xC27C, 0xBDB1, 0xC27D, 0xBDB2, 0xC27F, - 0xBDB3, 0xC281, 0xBDB4, 0xC288, 0xBDB5, 0xC289, 0xBDB6, 0xC290, - 0xBDB7, 0xC298, 0xBDB8, 0xC29B, 0xBDB9, 0xC29D, 0xBDBA, 0xC2A4, - 0xBDBB, 0xC2A5, 0xBDBC, 0xC2A8, 0xBDBD, 0xC2AC, 0xBDBE, 0xC2AD, - 0xBDBF, 0xC2B4, 0xBDC0, 0xC2B5, 0xBDC1, 0xC2B7, 0xBDC2, 0xC2B9, - 0xBDC3, 0xC2DC, 0xBDC4, 0xC2DD, 0xBDC5, 0xC2E0, 0xBDC6, 0xC2E3, - 0xBDC7, 0xC2E4, 0xBDC8, 0xC2EB, 0xBDC9, 0xC2EC, 0xBDCA, 0xC2ED, - 0xBDCB, 0xC2EF, 0xBDCC, 0xC2F1, 0xBDCD, 0xC2F6, 0xBDCE, 0xC2F8, - 0xBDCF, 0xC2F9, 0xBDD0, 0xC2FB, 0xBDD1, 0xC2FC, 0xBDD2, 0xC300, - 0xBDD3, 0xC308, 0xBDD4, 0xC309, 0xBDD5, 0xC30C, 0xBDD6, 0xC30D, - 0xBDD7, 0xC313, 0xBDD8, 0xC314, 0xBDD9, 0xC315, 0xBDDA, 0xC318, - 0xBDDB, 0xC31C, 0xBDDC, 0xC324, 0xBDDD, 0xC325, 0xBDDE, 0xC328, - 0xBDDF, 0xC329, 0xBDE0, 0xC345, 0xBDE1, 0xC368, 0xBDE2, 0xC369, - 0xBDE3, 0xC36C, 0xBDE4, 0xC370, 0xBDE5, 0xC372, 0xBDE6, 0xC378, - 0xBDE7, 0xC379, 0xBDE8, 0xC37C, 0xBDE9, 0xC37D, 0xBDEA, 0xC384, - 0xBDEB, 0xC388, 0xBDEC, 0xC38C, 0xBDED, 0xC3C0, 0xBDEE, 0xC3D8, - 0xBDEF, 0xC3D9, 0xBDF0, 0xC3DC, 0xBDF1, 0xC3DF, 0xBDF2, 0xC3E0, - 0xBDF3, 0xC3E2, 0xBDF4, 0xC3E8, 0xBDF5, 0xC3E9, 0xBDF6, 0xC3ED, - 0xBDF7, 0xC3F4, 0xBDF8, 0xC3F5, 0xBDF9, 0xC3F8, 0xBDFA, 0xC408, - 0xBDFB, 0xC410, 0xBDFC, 0xC424, 0xBDFD, 0xC42C, 0xBDFE, 0xC430, - 0xBE41, 0xD438, 0xBE42, 0xD439, 0xBE43, 0xD43A, 0xBE44, 0xD43B, - 0xBE45, 0xD43C, 0xBE46, 0xD43D, 0xBE47, 0xD43E, 0xBE48, 0xD43F, - 0xBE49, 0xD441, 0xBE4A, 0xD442, 0xBE4B, 0xD443, 0xBE4C, 0xD445, - 0xBE4D, 0xD446, 0xBE4E, 0xD447, 0xBE4F, 0xD448, 0xBE50, 0xD449, - 0xBE51, 0xD44A, 0xBE52, 0xD44B, 0xBE53, 0xD44C, 0xBE54, 0xD44D, - 0xBE55, 0xD44E, 0xBE56, 0xD44F, 0xBE57, 0xD450, 0xBE58, 0xD451, - 0xBE59, 0xD452, 0xBE5A, 0xD453, 0xBE61, 0xD454, 0xBE62, 0xD455, - 0xBE63, 0xD456, 0xBE64, 0xD457, 0xBE65, 0xD458, 0xBE66, 0xD459, - 0xBE67, 0xD45A, 0xBE68, 0xD45B, 0xBE69, 0xD45D, 0xBE6A, 0xD45E, - 0xBE6B, 0xD45F, 0xBE6C, 0xD461, 0xBE6D, 0xD462, 0xBE6E, 0xD463, - 0xBE6F, 0xD465, 0xBE70, 0xD466, 0xBE71, 0xD467, 0xBE72, 0xD468, - 0xBE73, 0xD469, 0xBE74, 0xD46A, 0xBE75, 0xD46B, 0xBE76, 0xD46C, - 0xBE77, 0xD46E, 0xBE78, 0xD470, 0xBE79, 0xD471, 0xBE7A, 0xD472, - 0xBE81, 0xD473, 0xBE82, 0xD474, 0xBE83, 0xD475, 0xBE84, 0xD476, - 0xBE85, 0xD477, 0xBE86, 0xD47A, 0xBE87, 0xD47B, 0xBE88, 0xD47D, - 0xBE89, 0xD47E, 0xBE8A, 0xD481, 0xBE8B, 0xD483, 0xBE8C, 0xD484, - 0xBE8D, 0xD485, 0xBE8E, 0xD486, 0xBE8F, 0xD487, 0xBE90, 0xD48A, - 0xBE91, 0xD48C, 0xBE92, 0xD48E, 0xBE93, 0xD48F, 0xBE94, 0xD490, - 0xBE95, 0xD491, 0xBE96, 0xD492, 0xBE97, 0xD493, 0xBE98, 0xD495, - 0xBE99, 0xD496, 0xBE9A, 0xD497, 0xBE9B, 0xD498, 0xBE9C, 0xD499, - 0xBE9D, 0xD49A, 0xBE9E, 0xD49B, 0xBE9F, 0xD49C, 0xBEA0, 0xD49D, - 0xBEA1, 0xC434, 0xBEA2, 0xC43C, 0xBEA3, 0xC43D, 0xBEA4, 0xC448, - 0xBEA5, 0xC464, 0xBEA6, 0xC465, 0xBEA7, 0xC468, 0xBEA8, 0xC46C, - 0xBEA9, 0xC474, 0xBEAA, 0xC475, 0xBEAB, 0xC479, 0xBEAC, 0xC480, - 0xBEAD, 0xC494, 0xBEAE, 0xC49C, 0xBEAF, 0xC4B8, 0xBEB0, 0xC4BC, - 0xBEB1, 0xC4E9, 0xBEB2, 0xC4F0, 0xBEB3, 0xC4F1, 0xBEB4, 0xC4F4, - 0xBEB5, 0xC4F8, 0xBEB6, 0xC4FA, 0xBEB7, 0xC4FF, 0xBEB8, 0xC500, - 0xBEB9, 0xC501, 0xBEBA, 0xC50C, 0xBEBB, 0xC510, 0xBEBC, 0xC514, - 0xBEBD, 0xC51C, 0xBEBE, 0xC528, 0xBEBF, 0xC529, 0xBEC0, 0xC52C, - 0xBEC1, 0xC530, 0xBEC2, 0xC538, 0xBEC3, 0xC539, 0xBEC4, 0xC53B, - 0xBEC5, 0xC53D, 0xBEC6, 0xC544, 0xBEC7, 0xC545, 0xBEC8, 0xC548, - 0xBEC9, 0xC549, 0xBECA, 0xC54A, 0xBECB, 0xC54C, 0xBECC, 0xC54D, - 0xBECD, 0xC54E, 0xBECE, 0xC553, 0xBECF, 0xC554, 0xBED0, 0xC555, - 0xBED1, 0xC557, 0xBED2, 0xC558, 0xBED3, 0xC559, 0xBED4, 0xC55D, - 0xBED5, 0xC55E, 0xBED6, 0xC560, 0xBED7, 0xC561, 0xBED8, 0xC564, - 0xBED9, 0xC568, 0xBEDA, 0xC570, 0xBEDB, 0xC571, 0xBEDC, 0xC573, - 0xBEDD, 0xC574, 0xBEDE, 0xC575, 0xBEDF, 0xC57C, 0xBEE0, 0xC57D, - 0xBEE1, 0xC580, 0xBEE2, 0xC584, 0xBEE3, 0xC587, 0xBEE4, 0xC58C, - 0xBEE5, 0xC58D, 0xBEE6, 0xC58F, 0xBEE7, 0xC591, 0xBEE8, 0xC595, - 0xBEE9, 0xC597, 0xBEEA, 0xC598, 0xBEEB, 0xC59C, 0xBEEC, 0xC5A0, - 0xBEED, 0xC5A9, 0xBEEE, 0xC5B4, 0xBEEF, 0xC5B5, 0xBEF0, 0xC5B8, - 0xBEF1, 0xC5B9, 0xBEF2, 0xC5BB, 0xBEF3, 0xC5BC, 0xBEF4, 0xC5BD, - 0xBEF5, 0xC5BE, 0xBEF6, 0xC5C4, 0xBEF7, 0xC5C5, 0xBEF8, 0xC5C6, - 0xBEF9, 0xC5C7, 0xBEFA, 0xC5C8, 0xBEFB, 0xC5C9, 0xBEFC, 0xC5CA, - 0xBEFD, 0xC5CC, 0xBEFE, 0xC5CE, 0xBF41, 0xD49E, 0xBF42, 0xD49F, - 0xBF43, 0xD4A0, 0xBF44, 0xD4A1, 0xBF45, 0xD4A2, 0xBF46, 0xD4A3, - 0xBF47, 0xD4A4, 0xBF48, 0xD4A5, 0xBF49, 0xD4A6, 0xBF4A, 0xD4A7, - 0xBF4B, 0xD4A8, 0xBF4C, 0xD4AA, 0xBF4D, 0xD4AB, 0xBF4E, 0xD4AC, - 0xBF4F, 0xD4AD, 0xBF50, 0xD4AE, 0xBF51, 0xD4AF, 0xBF52, 0xD4B0, - 0xBF53, 0xD4B1, 0xBF54, 0xD4B2, 0xBF55, 0xD4B3, 0xBF56, 0xD4B4, - 0xBF57, 0xD4B5, 0xBF58, 0xD4B6, 0xBF59, 0xD4B7, 0xBF5A, 0xD4B8, - 0xBF61, 0xD4B9, 0xBF62, 0xD4BA, 0xBF63, 0xD4BB, 0xBF64, 0xD4BC, - 0xBF65, 0xD4BD, 0xBF66, 0xD4BE, 0xBF67, 0xD4BF, 0xBF68, 0xD4C0, - 0xBF69, 0xD4C1, 0xBF6A, 0xD4C2, 0xBF6B, 0xD4C3, 0xBF6C, 0xD4C4, - 0xBF6D, 0xD4C5, 0xBF6E, 0xD4C6, 0xBF6F, 0xD4C7, 0xBF70, 0xD4C8, - 0xBF71, 0xD4C9, 0xBF72, 0xD4CA, 0xBF73, 0xD4CB, 0xBF74, 0xD4CD, - 0xBF75, 0xD4CE, 0xBF76, 0xD4CF, 0xBF77, 0xD4D1, 0xBF78, 0xD4D2, - 0xBF79, 0xD4D3, 0xBF7A, 0xD4D5, 0xBF81, 0xD4D6, 0xBF82, 0xD4D7, - 0xBF83, 0xD4D8, 0xBF84, 0xD4D9, 0xBF85, 0xD4DA, 0xBF86, 0xD4DB, - 0xBF87, 0xD4DD, 0xBF88, 0xD4DE, 0xBF89, 0xD4E0, 0xBF8A, 0xD4E1, - 0xBF8B, 0xD4E2, 0xBF8C, 0xD4E3, 0xBF8D, 0xD4E4, 0xBF8E, 0xD4E5, - 0xBF8F, 0xD4E6, 0xBF90, 0xD4E7, 0xBF91, 0xD4E9, 0xBF92, 0xD4EA, - 0xBF93, 0xD4EB, 0xBF94, 0xD4ED, 0xBF95, 0xD4EE, 0xBF96, 0xD4EF, - 0xBF97, 0xD4F1, 0xBF98, 0xD4F2, 0xBF99, 0xD4F3, 0xBF9A, 0xD4F4, - 0xBF9B, 0xD4F5, 0xBF9C, 0xD4F6, 0xBF9D, 0xD4F7, 0xBF9E, 0xD4F9, - 0xBF9F, 0xD4FA, 0xBFA0, 0xD4FC, 0xBFA1, 0xC5D0, 0xBFA2, 0xC5D1, - 0xBFA3, 0xC5D4, 0xBFA4, 0xC5D8, 0xBFA5, 0xC5E0, 0xBFA6, 0xC5E1, - 0xBFA7, 0xC5E3, 0xBFA8, 0xC5E5, 0xBFA9, 0xC5EC, 0xBFAA, 0xC5ED, - 0xBFAB, 0xC5EE, 0xBFAC, 0xC5F0, 0xBFAD, 0xC5F4, 0xBFAE, 0xC5F6, - 0xBFAF, 0xC5F7, 0xBFB0, 0xC5FC, 0xBFB1, 0xC5FD, 0xBFB2, 0xC5FE, - 0xBFB3, 0xC5FF, 0xBFB4, 0xC600, 0xBFB5, 0xC601, 0xBFB6, 0xC605, - 0xBFB7, 0xC606, 0xBFB8, 0xC607, 0xBFB9, 0xC608, 0xBFBA, 0xC60C, - 0xBFBB, 0xC610, 0xBFBC, 0xC618, 0xBFBD, 0xC619, 0xBFBE, 0xC61B, - 0xBFBF, 0xC61C, 0xBFC0, 0xC624, 0xBFC1, 0xC625, 0xBFC2, 0xC628, - 0xBFC3, 0xC62C, 0xBFC4, 0xC62D, 0xBFC5, 0xC62E, 0xBFC6, 0xC630, - 0xBFC7, 0xC633, 0xBFC8, 0xC634, 0xBFC9, 0xC635, 0xBFCA, 0xC637, - 0xBFCB, 0xC639, 0xBFCC, 0xC63B, 0xBFCD, 0xC640, 0xBFCE, 0xC641, - 0xBFCF, 0xC644, 0xBFD0, 0xC648, 0xBFD1, 0xC650, 0xBFD2, 0xC651, - 0xBFD3, 0xC653, 0xBFD4, 0xC654, 0xBFD5, 0xC655, 0xBFD6, 0xC65C, - 0xBFD7, 0xC65D, 0xBFD8, 0xC660, 0xBFD9, 0xC66C, 0xBFDA, 0xC66F, - 0xBFDB, 0xC671, 0xBFDC, 0xC678, 0xBFDD, 0xC679, 0xBFDE, 0xC67C, - 0xBFDF, 0xC680, 0xBFE0, 0xC688, 0xBFE1, 0xC689, 0xBFE2, 0xC68B, - 0xBFE3, 0xC68D, 0xBFE4, 0xC694, 0xBFE5, 0xC695, 0xBFE6, 0xC698, - 0xBFE7, 0xC69C, 0xBFE8, 0xC6A4, 0xBFE9, 0xC6A5, 0xBFEA, 0xC6A7, - 0xBFEB, 0xC6A9, 0xBFEC, 0xC6B0, 0xBFED, 0xC6B1, 0xBFEE, 0xC6B4, - 0xBFEF, 0xC6B8, 0xBFF0, 0xC6B9, 0xBFF1, 0xC6BA, 0xBFF2, 0xC6C0, - 0xBFF3, 0xC6C1, 0xBFF4, 0xC6C3, 0xBFF5, 0xC6C5, 0xBFF6, 0xC6CC, - 0xBFF7, 0xC6CD, 0xBFF8, 0xC6D0, 0xBFF9, 0xC6D4, 0xBFFA, 0xC6DC, - 0xBFFB, 0xC6DD, 0xBFFC, 0xC6E0, 0xBFFD, 0xC6E1, 0xBFFE, 0xC6E8, - 0xC041, 0xD4FE, 0xC042, 0xD4FF, 0xC043, 0xD500, 0xC044, 0xD501, - 0xC045, 0xD502, 0xC046, 0xD503, 0xC047, 0xD505, 0xC048, 0xD506, - 0xC049, 0xD507, 0xC04A, 0xD509, 0xC04B, 0xD50A, 0xC04C, 0xD50B, - 0xC04D, 0xD50D, 0xC04E, 0xD50E, 0xC04F, 0xD50F, 0xC050, 0xD510, - 0xC051, 0xD511, 0xC052, 0xD512, 0xC053, 0xD513, 0xC054, 0xD516, - 0xC055, 0xD518, 0xC056, 0xD519, 0xC057, 0xD51A, 0xC058, 0xD51B, - 0xC059, 0xD51C, 0xC05A, 0xD51D, 0xC061, 0xD51E, 0xC062, 0xD51F, - 0xC063, 0xD520, 0xC064, 0xD521, 0xC065, 0xD522, 0xC066, 0xD523, - 0xC067, 0xD524, 0xC068, 0xD525, 0xC069, 0xD526, 0xC06A, 0xD527, - 0xC06B, 0xD528, 0xC06C, 0xD529, 0xC06D, 0xD52A, 0xC06E, 0xD52B, - 0xC06F, 0xD52C, 0xC070, 0xD52D, 0xC071, 0xD52E, 0xC072, 0xD52F, - 0xC073, 0xD530, 0xC074, 0xD531, 0xC075, 0xD532, 0xC076, 0xD533, - 0xC077, 0xD534, 0xC078, 0xD535, 0xC079, 0xD536, 0xC07A, 0xD537, - 0xC081, 0xD538, 0xC082, 0xD539, 0xC083, 0xD53A, 0xC084, 0xD53B, - 0xC085, 0xD53E, 0xC086, 0xD53F, 0xC087, 0xD541, 0xC088, 0xD542, - 0xC089, 0xD543, 0xC08A, 0xD545, 0xC08B, 0xD546, 0xC08C, 0xD547, - 0xC08D, 0xD548, 0xC08E, 0xD549, 0xC08F, 0xD54A, 0xC090, 0xD54B, - 0xC091, 0xD54E, 0xC092, 0xD550, 0xC093, 0xD552, 0xC094, 0xD553, - 0xC095, 0xD554, 0xC096, 0xD555, 0xC097, 0xD556, 0xC098, 0xD557, - 0xC099, 0xD55A, 0xC09A, 0xD55B, 0xC09B, 0xD55D, 0xC09C, 0xD55E, - 0xC09D, 0xD55F, 0xC09E, 0xD561, 0xC09F, 0xD562, 0xC0A0, 0xD563, - 0xC0A1, 0xC6E9, 0xC0A2, 0xC6EC, 0xC0A3, 0xC6F0, 0xC0A4, 0xC6F8, - 0xC0A5, 0xC6F9, 0xC0A6, 0xC6FD, 0xC0A7, 0xC704, 0xC0A8, 0xC705, - 0xC0A9, 0xC708, 0xC0AA, 0xC70C, 0xC0AB, 0xC714, 0xC0AC, 0xC715, - 0xC0AD, 0xC717, 0xC0AE, 0xC719, 0xC0AF, 0xC720, 0xC0B0, 0xC721, - 0xC0B1, 0xC724, 0xC0B2, 0xC728, 0xC0B3, 0xC730, 0xC0B4, 0xC731, - 0xC0B5, 0xC733, 0xC0B6, 0xC735, 0xC0B7, 0xC737, 0xC0B8, 0xC73C, - 0xC0B9, 0xC73D, 0xC0BA, 0xC740, 0xC0BB, 0xC744, 0xC0BC, 0xC74A, - 0xC0BD, 0xC74C, 0xC0BE, 0xC74D, 0xC0BF, 0xC74F, 0xC0C0, 0xC751, - 0xC0C1, 0xC752, 0xC0C2, 0xC753, 0xC0C3, 0xC754, 0xC0C4, 0xC755, - 0xC0C5, 0xC756, 0xC0C6, 0xC757, 0xC0C7, 0xC758, 0xC0C8, 0xC75C, - 0xC0C9, 0xC760, 0xC0CA, 0xC768, 0xC0CB, 0xC76B, 0xC0CC, 0xC774, - 0xC0CD, 0xC775, 0xC0CE, 0xC778, 0xC0CF, 0xC77C, 0xC0D0, 0xC77D, - 0xC0D1, 0xC77E, 0xC0D2, 0xC783, 0xC0D3, 0xC784, 0xC0D4, 0xC785, - 0xC0D5, 0xC787, 0xC0D6, 0xC788, 0xC0D7, 0xC789, 0xC0D8, 0xC78A, - 0xC0D9, 0xC78E, 0xC0DA, 0xC790, 0xC0DB, 0xC791, 0xC0DC, 0xC794, - 0xC0DD, 0xC796, 0xC0DE, 0xC797, 0xC0DF, 0xC798, 0xC0E0, 0xC79A, - 0xC0E1, 0xC7A0, 0xC0E2, 0xC7A1, 0xC0E3, 0xC7A3, 0xC0E4, 0xC7A4, - 0xC0E5, 0xC7A5, 0xC0E6, 0xC7A6, 0xC0E7, 0xC7AC, 0xC0E8, 0xC7AD, - 0xC0E9, 0xC7B0, 0xC0EA, 0xC7B4, 0xC0EB, 0xC7BC, 0xC0EC, 0xC7BD, - 0xC0ED, 0xC7BF, 0xC0EE, 0xC7C0, 0xC0EF, 0xC7C1, 0xC0F0, 0xC7C8, - 0xC0F1, 0xC7C9, 0xC0F2, 0xC7CC, 0xC0F3, 0xC7CE, 0xC0F4, 0xC7D0, - 0xC0F5, 0xC7D8, 0xC0F6, 0xC7DD, 0xC0F7, 0xC7E4, 0xC0F8, 0xC7E8, - 0xC0F9, 0xC7EC, 0xC0FA, 0xC800, 0xC0FB, 0xC801, 0xC0FC, 0xC804, - 0xC0FD, 0xC808, 0xC0FE, 0xC80A, 0xC141, 0xD564, 0xC142, 0xD566, - 0xC143, 0xD567, 0xC144, 0xD56A, 0xC145, 0xD56C, 0xC146, 0xD56E, - 0xC147, 0xD56F, 0xC148, 0xD570, 0xC149, 0xD571, 0xC14A, 0xD572, - 0xC14B, 0xD573, 0xC14C, 0xD576, 0xC14D, 0xD577, 0xC14E, 0xD579, - 0xC14F, 0xD57A, 0xC150, 0xD57B, 0xC151, 0xD57D, 0xC152, 0xD57E, - 0xC153, 0xD57F, 0xC154, 0xD580, 0xC155, 0xD581, 0xC156, 0xD582, - 0xC157, 0xD583, 0xC158, 0xD586, 0xC159, 0xD58A, 0xC15A, 0xD58B, - 0xC161, 0xD58C, 0xC162, 0xD58D, 0xC163, 0xD58E, 0xC164, 0xD58F, - 0xC165, 0xD591, 0xC166, 0xD592, 0xC167, 0xD593, 0xC168, 0xD594, - 0xC169, 0xD595, 0xC16A, 0xD596, 0xC16B, 0xD597, 0xC16C, 0xD598, - 0xC16D, 0xD599, 0xC16E, 0xD59A, 0xC16F, 0xD59B, 0xC170, 0xD59C, - 0xC171, 0xD59D, 0xC172, 0xD59E, 0xC173, 0xD59F, 0xC174, 0xD5A0, - 0xC175, 0xD5A1, 0xC176, 0xD5A2, 0xC177, 0xD5A3, 0xC178, 0xD5A4, - 0xC179, 0xD5A6, 0xC17A, 0xD5A7, 0xC181, 0xD5A8, 0xC182, 0xD5A9, - 0xC183, 0xD5AA, 0xC184, 0xD5AB, 0xC185, 0xD5AC, 0xC186, 0xD5AD, - 0xC187, 0xD5AE, 0xC188, 0xD5AF, 0xC189, 0xD5B0, 0xC18A, 0xD5B1, - 0xC18B, 0xD5B2, 0xC18C, 0xD5B3, 0xC18D, 0xD5B4, 0xC18E, 0xD5B5, - 0xC18F, 0xD5B6, 0xC190, 0xD5B7, 0xC191, 0xD5B8, 0xC192, 0xD5B9, - 0xC193, 0xD5BA, 0xC194, 0xD5BB, 0xC195, 0xD5BC, 0xC196, 0xD5BD, - 0xC197, 0xD5BE, 0xC198, 0xD5BF, 0xC199, 0xD5C0, 0xC19A, 0xD5C1, - 0xC19B, 0xD5C2, 0xC19C, 0xD5C3, 0xC19D, 0xD5C4, 0xC19E, 0xD5C5, - 0xC19F, 0xD5C6, 0xC1A0, 0xD5C7, 0xC1A1, 0xC810, 0xC1A2, 0xC811, - 0xC1A3, 0xC813, 0xC1A4, 0xC815, 0xC1A5, 0xC816, 0xC1A6, 0xC81C, - 0xC1A7, 0xC81D, 0xC1A8, 0xC820, 0xC1A9, 0xC824, 0xC1AA, 0xC82C, - 0xC1AB, 0xC82D, 0xC1AC, 0xC82F, 0xC1AD, 0xC831, 0xC1AE, 0xC838, - 0xC1AF, 0xC83C, 0xC1B0, 0xC840, 0xC1B1, 0xC848, 0xC1B2, 0xC849, - 0xC1B3, 0xC84C, 0xC1B4, 0xC84D, 0xC1B5, 0xC854, 0xC1B6, 0xC870, - 0xC1B7, 0xC871, 0xC1B8, 0xC874, 0xC1B9, 0xC878, 0xC1BA, 0xC87A, - 0xC1BB, 0xC880, 0xC1BC, 0xC881, 0xC1BD, 0xC883, 0xC1BE, 0xC885, - 0xC1BF, 0xC886, 0xC1C0, 0xC887, 0xC1C1, 0xC88B, 0xC1C2, 0xC88C, - 0xC1C3, 0xC88D, 0xC1C4, 0xC894, 0xC1C5, 0xC89D, 0xC1C6, 0xC89F, - 0xC1C7, 0xC8A1, 0xC1C8, 0xC8A8, 0xC1C9, 0xC8BC, 0xC1CA, 0xC8BD, - 0xC1CB, 0xC8C4, 0xC1CC, 0xC8C8, 0xC1CD, 0xC8CC, 0xC1CE, 0xC8D4, - 0xC1CF, 0xC8D5, 0xC1D0, 0xC8D7, 0xC1D1, 0xC8D9, 0xC1D2, 0xC8E0, - 0xC1D3, 0xC8E1, 0xC1D4, 0xC8E4, 0xC1D5, 0xC8F5, 0xC1D6, 0xC8FC, - 0xC1D7, 0xC8FD, 0xC1D8, 0xC900, 0xC1D9, 0xC904, 0xC1DA, 0xC905, - 0xC1DB, 0xC906, 0xC1DC, 0xC90C, 0xC1DD, 0xC90D, 0xC1DE, 0xC90F, - 0xC1DF, 0xC911, 0xC1E0, 0xC918, 0xC1E1, 0xC92C, 0xC1E2, 0xC934, - 0xC1E3, 0xC950, 0xC1E4, 0xC951, 0xC1E5, 0xC954, 0xC1E6, 0xC958, - 0xC1E7, 0xC960, 0xC1E8, 0xC961, 0xC1E9, 0xC963, 0xC1EA, 0xC96C, - 0xC1EB, 0xC970, 0xC1EC, 0xC974, 0xC1ED, 0xC97C, 0xC1EE, 0xC988, - 0xC1EF, 0xC989, 0xC1F0, 0xC98C, 0xC1F1, 0xC990, 0xC1F2, 0xC998, - 0xC1F3, 0xC999, 0xC1F4, 0xC99B, 0xC1F5, 0xC99D, 0xC1F6, 0xC9C0, - 0xC1F7, 0xC9C1, 0xC1F8, 0xC9C4, 0xC1F9, 0xC9C7, 0xC1FA, 0xC9C8, - 0xC1FB, 0xC9CA, 0xC1FC, 0xC9D0, 0xC1FD, 0xC9D1, 0xC1FE, 0xC9D3, - 0xC241, 0xD5CA, 0xC242, 0xD5CB, 0xC243, 0xD5CD, 0xC244, 0xD5CE, - 0xC245, 0xD5CF, 0xC246, 0xD5D1, 0xC247, 0xD5D3, 0xC248, 0xD5D4, - 0xC249, 0xD5D5, 0xC24A, 0xD5D6, 0xC24B, 0xD5D7, 0xC24C, 0xD5DA, - 0xC24D, 0xD5DC, 0xC24E, 0xD5DE, 0xC24F, 0xD5DF, 0xC250, 0xD5E0, - 0xC251, 0xD5E1, 0xC252, 0xD5E2, 0xC253, 0xD5E3, 0xC254, 0xD5E6, - 0xC255, 0xD5E7, 0xC256, 0xD5E9, 0xC257, 0xD5EA, 0xC258, 0xD5EB, - 0xC259, 0xD5ED, 0xC25A, 0xD5EE, 0xC261, 0xD5EF, 0xC262, 0xD5F0, - 0xC263, 0xD5F1, 0xC264, 0xD5F2, 0xC265, 0xD5F3, 0xC266, 0xD5F6, - 0xC267, 0xD5F8, 0xC268, 0xD5FA, 0xC269, 0xD5FB, 0xC26A, 0xD5FC, - 0xC26B, 0xD5FD, 0xC26C, 0xD5FE, 0xC26D, 0xD5FF, 0xC26E, 0xD602, - 0xC26F, 0xD603, 0xC270, 0xD605, 0xC271, 0xD606, 0xC272, 0xD607, - 0xC273, 0xD609, 0xC274, 0xD60A, 0xC275, 0xD60B, 0xC276, 0xD60C, - 0xC277, 0xD60D, 0xC278, 0xD60E, 0xC279, 0xD60F, 0xC27A, 0xD612, - 0xC281, 0xD616, 0xC282, 0xD617, 0xC283, 0xD618, 0xC284, 0xD619, - 0xC285, 0xD61A, 0xC286, 0xD61B, 0xC287, 0xD61D, 0xC288, 0xD61E, - 0xC289, 0xD61F, 0xC28A, 0xD621, 0xC28B, 0xD622, 0xC28C, 0xD623, - 0xC28D, 0xD625, 0xC28E, 0xD626, 0xC28F, 0xD627, 0xC290, 0xD628, - 0xC291, 0xD629, 0xC292, 0xD62A, 0xC293, 0xD62B, 0xC294, 0xD62C, - 0xC295, 0xD62E, 0xC296, 0xD62F, 0xC297, 0xD630, 0xC298, 0xD631, - 0xC299, 0xD632, 0xC29A, 0xD633, 0xC29B, 0xD634, 0xC29C, 0xD635, - 0xC29D, 0xD636, 0xC29E, 0xD637, 0xC29F, 0xD63A, 0xC2A0, 0xD63B, - 0xC2A1, 0xC9D5, 0xC2A2, 0xC9D6, 0xC2A3, 0xC9D9, 0xC2A4, 0xC9DA, - 0xC2A5, 0xC9DC, 0xC2A6, 0xC9DD, 0xC2A7, 0xC9E0, 0xC2A8, 0xC9E2, - 0xC2A9, 0xC9E4, 0xC2AA, 0xC9E7, 0xC2AB, 0xC9EC, 0xC2AC, 0xC9ED, - 0xC2AD, 0xC9EF, 0xC2AE, 0xC9F0, 0xC2AF, 0xC9F1, 0xC2B0, 0xC9F8, - 0xC2B1, 0xC9F9, 0xC2B2, 0xC9FC, 0xC2B3, 0xCA00, 0xC2B4, 0xCA08, - 0xC2B5, 0xCA09, 0xC2B6, 0xCA0B, 0xC2B7, 0xCA0C, 0xC2B8, 0xCA0D, - 0xC2B9, 0xCA14, 0xC2BA, 0xCA18, 0xC2BB, 0xCA29, 0xC2BC, 0xCA4C, - 0xC2BD, 0xCA4D, 0xC2BE, 0xCA50, 0xC2BF, 0xCA54, 0xC2C0, 0xCA5C, - 0xC2C1, 0xCA5D, 0xC2C2, 0xCA5F, 0xC2C3, 0xCA60, 0xC2C4, 0xCA61, - 0xC2C5, 0xCA68, 0xC2C6, 0xCA7D, 0xC2C7, 0xCA84, 0xC2C8, 0xCA98, - 0xC2C9, 0xCABC, 0xC2CA, 0xCABD, 0xC2CB, 0xCAC0, 0xC2CC, 0xCAC4, - 0xC2CD, 0xCACC, 0xC2CE, 0xCACD, 0xC2CF, 0xCACF, 0xC2D0, 0xCAD1, - 0xC2D1, 0xCAD3, 0xC2D2, 0xCAD8, 0xC2D3, 0xCAD9, 0xC2D4, 0xCAE0, - 0xC2D5, 0xCAEC, 0xC2D6, 0xCAF4, 0xC2D7, 0xCB08, 0xC2D8, 0xCB10, - 0xC2D9, 0xCB14, 0xC2DA, 0xCB18, 0xC2DB, 0xCB20, 0xC2DC, 0xCB21, - 0xC2DD, 0xCB41, 0xC2DE, 0xCB48, 0xC2DF, 0xCB49, 0xC2E0, 0xCB4C, - 0xC2E1, 0xCB50, 0xC2E2, 0xCB58, 0xC2E3, 0xCB59, 0xC2E4, 0xCB5D, - 0xC2E5, 0xCB64, 0xC2E6, 0xCB78, 0xC2E7, 0xCB79, 0xC2E8, 0xCB9C, - 0xC2E9, 0xCBB8, 0xC2EA, 0xCBD4, 0xC2EB, 0xCBE4, 0xC2EC, 0xCBE7, - 0xC2ED, 0xCBE9, 0xC2EE, 0xCC0C, 0xC2EF, 0xCC0D, 0xC2F0, 0xCC10, - 0xC2F1, 0xCC14, 0xC2F2, 0xCC1C, 0xC2F3, 0xCC1D, 0xC2F4, 0xCC21, - 0xC2F5, 0xCC22, 0xC2F6, 0xCC27, 0xC2F7, 0xCC28, 0xC2F8, 0xCC29, - 0xC2F9, 0xCC2C, 0xC2FA, 0xCC2E, 0xC2FB, 0xCC30, 0xC2FC, 0xCC38, - 0xC2FD, 0xCC39, 0xC2FE, 0xCC3B, 0xC341, 0xD63D, 0xC342, 0xD63E, - 0xC343, 0xD63F, 0xC344, 0xD641, 0xC345, 0xD642, 0xC346, 0xD643, - 0xC347, 0xD644, 0xC348, 0xD646, 0xC349, 0xD647, 0xC34A, 0xD64A, - 0xC34B, 0xD64C, 0xC34C, 0xD64E, 0xC34D, 0xD64F, 0xC34E, 0xD650, - 0xC34F, 0xD652, 0xC350, 0xD653, 0xC351, 0xD656, 0xC352, 0xD657, - 0xC353, 0xD659, 0xC354, 0xD65A, 0xC355, 0xD65B, 0xC356, 0xD65D, - 0xC357, 0xD65E, 0xC358, 0xD65F, 0xC359, 0xD660, 0xC35A, 0xD661, - 0xC361, 0xD662, 0xC362, 0xD663, 0xC363, 0xD664, 0xC364, 0xD665, - 0xC365, 0xD666, 0xC366, 0xD668, 0xC367, 0xD66A, 0xC368, 0xD66B, - 0xC369, 0xD66C, 0xC36A, 0xD66D, 0xC36B, 0xD66E, 0xC36C, 0xD66F, - 0xC36D, 0xD672, 0xC36E, 0xD673, 0xC36F, 0xD675, 0xC370, 0xD676, - 0xC371, 0xD677, 0xC372, 0xD678, 0xC373, 0xD679, 0xC374, 0xD67A, - 0xC375, 0xD67B, 0xC376, 0xD67C, 0xC377, 0xD67D, 0xC378, 0xD67E, - 0xC379, 0xD67F, 0xC37A, 0xD680, 0xC381, 0xD681, 0xC382, 0xD682, - 0xC383, 0xD684, 0xC384, 0xD686, 0xC385, 0xD687, 0xC386, 0xD688, - 0xC387, 0xD689, 0xC388, 0xD68A, 0xC389, 0xD68B, 0xC38A, 0xD68E, - 0xC38B, 0xD68F, 0xC38C, 0xD691, 0xC38D, 0xD692, 0xC38E, 0xD693, - 0xC38F, 0xD695, 0xC390, 0xD696, 0xC391, 0xD697, 0xC392, 0xD698, - 0xC393, 0xD699, 0xC394, 0xD69A, 0xC395, 0xD69B, 0xC396, 0xD69C, - 0xC397, 0xD69E, 0xC398, 0xD6A0, 0xC399, 0xD6A2, 0xC39A, 0xD6A3, - 0xC39B, 0xD6A4, 0xC39C, 0xD6A5, 0xC39D, 0xD6A6, 0xC39E, 0xD6A7, - 0xC39F, 0xD6A9, 0xC3A0, 0xD6AA, 0xC3A1, 0xCC3C, 0xC3A2, 0xCC3D, - 0xC3A3, 0xCC3E, 0xC3A4, 0xCC44, 0xC3A5, 0xCC45, 0xC3A6, 0xCC48, - 0xC3A7, 0xCC4C, 0xC3A8, 0xCC54, 0xC3A9, 0xCC55, 0xC3AA, 0xCC57, - 0xC3AB, 0xCC58, 0xC3AC, 0xCC59, 0xC3AD, 0xCC60, 0xC3AE, 0xCC64, - 0xC3AF, 0xCC66, 0xC3B0, 0xCC68, 0xC3B1, 0xCC70, 0xC3B2, 0xCC75, - 0xC3B3, 0xCC98, 0xC3B4, 0xCC99, 0xC3B5, 0xCC9C, 0xC3B6, 0xCCA0, - 0xC3B7, 0xCCA8, 0xC3B8, 0xCCA9, 0xC3B9, 0xCCAB, 0xC3BA, 0xCCAC, - 0xC3BB, 0xCCAD, 0xC3BC, 0xCCB4, 0xC3BD, 0xCCB5, 0xC3BE, 0xCCB8, - 0xC3BF, 0xCCBC, 0xC3C0, 0xCCC4, 0xC3C1, 0xCCC5, 0xC3C2, 0xCCC7, - 0xC3C3, 0xCCC9, 0xC3C4, 0xCCD0, 0xC3C5, 0xCCD4, 0xC3C6, 0xCCE4, - 0xC3C7, 0xCCEC, 0xC3C8, 0xCCF0, 0xC3C9, 0xCD01, 0xC3CA, 0xCD08, - 0xC3CB, 0xCD09, 0xC3CC, 0xCD0C, 0xC3CD, 0xCD10, 0xC3CE, 0xCD18, - 0xC3CF, 0xCD19, 0xC3D0, 0xCD1B, 0xC3D1, 0xCD1D, 0xC3D2, 0xCD24, - 0xC3D3, 0xCD28, 0xC3D4, 0xCD2C, 0xC3D5, 0xCD39, 0xC3D6, 0xCD5C, - 0xC3D7, 0xCD60, 0xC3D8, 0xCD64, 0xC3D9, 0xCD6C, 0xC3DA, 0xCD6D, - 0xC3DB, 0xCD6F, 0xC3DC, 0xCD71, 0xC3DD, 0xCD78, 0xC3DE, 0xCD88, - 0xC3DF, 0xCD94, 0xC3E0, 0xCD95, 0xC3E1, 0xCD98, 0xC3E2, 0xCD9C, - 0xC3E3, 0xCDA4, 0xC3E4, 0xCDA5, 0xC3E5, 0xCDA7, 0xC3E6, 0xCDA9, - 0xC3E7, 0xCDB0, 0xC3E8, 0xCDC4, 0xC3E9, 0xCDCC, 0xC3EA, 0xCDD0, - 0xC3EB, 0xCDE8, 0xC3EC, 0xCDEC, 0xC3ED, 0xCDF0, 0xC3EE, 0xCDF8, - 0xC3EF, 0xCDF9, 0xC3F0, 0xCDFB, 0xC3F1, 0xCDFD, 0xC3F2, 0xCE04, - 0xC3F3, 0xCE08, 0xC3F4, 0xCE0C, 0xC3F5, 0xCE14, 0xC3F6, 0xCE19, - 0xC3F7, 0xCE20, 0xC3F8, 0xCE21, 0xC3F9, 0xCE24, 0xC3FA, 0xCE28, - 0xC3FB, 0xCE30, 0xC3FC, 0xCE31, 0xC3FD, 0xCE33, 0xC3FE, 0xCE35, - 0xC441, 0xD6AB, 0xC442, 0xD6AD, 0xC443, 0xD6AE, 0xC444, 0xD6AF, - 0xC445, 0xD6B1, 0xC446, 0xD6B2, 0xC447, 0xD6B3, 0xC448, 0xD6B4, - 0xC449, 0xD6B5, 0xC44A, 0xD6B6, 0xC44B, 0xD6B7, 0xC44C, 0xD6B8, - 0xC44D, 0xD6BA, 0xC44E, 0xD6BC, 0xC44F, 0xD6BD, 0xC450, 0xD6BE, - 0xC451, 0xD6BF, 0xC452, 0xD6C0, 0xC453, 0xD6C1, 0xC454, 0xD6C2, - 0xC455, 0xD6C3, 0xC456, 0xD6C6, 0xC457, 0xD6C7, 0xC458, 0xD6C9, - 0xC459, 0xD6CA, 0xC45A, 0xD6CB, 0xC461, 0xD6CD, 0xC462, 0xD6CE, - 0xC463, 0xD6CF, 0xC464, 0xD6D0, 0xC465, 0xD6D2, 0xC466, 0xD6D3, - 0xC467, 0xD6D5, 0xC468, 0xD6D6, 0xC469, 0xD6D8, 0xC46A, 0xD6DA, - 0xC46B, 0xD6DB, 0xC46C, 0xD6DC, 0xC46D, 0xD6DD, 0xC46E, 0xD6DE, - 0xC46F, 0xD6DF, 0xC470, 0xD6E1, 0xC471, 0xD6E2, 0xC472, 0xD6E3, - 0xC473, 0xD6E5, 0xC474, 0xD6E6, 0xC475, 0xD6E7, 0xC476, 0xD6E9, - 0xC477, 0xD6EA, 0xC478, 0xD6EB, 0xC479, 0xD6EC, 0xC47A, 0xD6ED, - 0xC481, 0xD6EE, 0xC482, 0xD6EF, 0xC483, 0xD6F1, 0xC484, 0xD6F2, - 0xC485, 0xD6F3, 0xC486, 0xD6F4, 0xC487, 0xD6F6, 0xC488, 0xD6F7, - 0xC489, 0xD6F8, 0xC48A, 0xD6F9, 0xC48B, 0xD6FA, 0xC48C, 0xD6FB, - 0xC48D, 0xD6FE, 0xC48E, 0xD6FF, 0xC48F, 0xD701, 0xC490, 0xD702, - 0xC491, 0xD703, 0xC492, 0xD705, 0xC493, 0xD706, 0xC494, 0xD707, - 0xC495, 0xD708, 0xC496, 0xD709, 0xC497, 0xD70A, 0xC498, 0xD70B, - 0xC499, 0xD70C, 0xC49A, 0xD70D, 0xC49B, 0xD70E, 0xC49C, 0xD70F, - 0xC49D, 0xD710, 0xC49E, 0xD712, 0xC49F, 0xD713, 0xC4A0, 0xD714, - 0xC4A1, 0xCE58, 0xC4A2, 0xCE59, 0xC4A3, 0xCE5C, 0xC4A4, 0xCE5F, - 0xC4A5, 0xCE60, 0xC4A6, 0xCE61, 0xC4A7, 0xCE68, 0xC4A8, 0xCE69, - 0xC4A9, 0xCE6B, 0xC4AA, 0xCE6D, 0xC4AB, 0xCE74, 0xC4AC, 0xCE75, - 0xC4AD, 0xCE78, 0xC4AE, 0xCE7C, 0xC4AF, 0xCE84, 0xC4B0, 0xCE85, - 0xC4B1, 0xCE87, 0xC4B2, 0xCE89, 0xC4B3, 0xCE90, 0xC4B4, 0xCE91, - 0xC4B5, 0xCE94, 0xC4B6, 0xCE98, 0xC4B7, 0xCEA0, 0xC4B8, 0xCEA1, - 0xC4B9, 0xCEA3, 0xC4BA, 0xCEA4, 0xC4BB, 0xCEA5, 0xC4BC, 0xCEAC, - 0xC4BD, 0xCEAD, 0xC4BE, 0xCEC1, 0xC4BF, 0xCEE4, 0xC4C0, 0xCEE5, - 0xC4C1, 0xCEE8, 0xC4C2, 0xCEEB, 0xC4C3, 0xCEEC, 0xC4C4, 0xCEF4, - 0xC4C5, 0xCEF5, 0xC4C6, 0xCEF7, 0xC4C7, 0xCEF8, 0xC4C8, 0xCEF9, - 0xC4C9, 0xCF00, 0xC4CA, 0xCF01, 0xC4CB, 0xCF04, 0xC4CC, 0xCF08, - 0xC4CD, 0xCF10, 0xC4CE, 0xCF11, 0xC4CF, 0xCF13, 0xC4D0, 0xCF15, - 0xC4D1, 0xCF1C, 0xC4D2, 0xCF20, 0xC4D3, 0xCF24, 0xC4D4, 0xCF2C, - 0xC4D5, 0xCF2D, 0xC4D6, 0xCF2F, 0xC4D7, 0xCF30, 0xC4D8, 0xCF31, - 0xC4D9, 0xCF38, 0xC4DA, 0xCF54, 0xC4DB, 0xCF55, 0xC4DC, 0xCF58, - 0xC4DD, 0xCF5C, 0xC4DE, 0xCF64, 0xC4DF, 0xCF65, 0xC4E0, 0xCF67, - 0xC4E1, 0xCF69, 0xC4E2, 0xCF70, 0xC4E3, 0xCF71, 0xC4E4, 0xCF74, - 0xC4E5, 0xCF78, 0xC4E6, 0xCF80, 0xC4E7, 0xCF85, 0xC4E8, 0xCF8C, - 0xC4E9, 0xCFA1, 0xC4EA, 0xCFA8, 0xC4EB, 0xCFB0, 0xC4EC, 0xCFC4, - 0xC4ED, 0xCFE0, 0xC4EE, 0xCFE1, 0xC4EF, 0xCFE4, 0xC4F0, 0xCFE8, - 0xC4F1, 0xCFF0, 0xC4F2, 0xCFF1, 0xC4F3, 0xCFF3, 0xC4F4, 0xCFF5, - 0xC4F5, 0xCFFC, 0xC4F6, 0xD000, 0xC4F7, 0xD004, 0xC4F8, 0xD011, - 0xC4F9, 0xD018, 0xC4FA, 0xD02D, 0xC4FB, 0xD034, 0xC4FC, 0xD035, - 0xC4FD, 0xD038, 0xC4FE, 0xD03C, 0xC541, 0xD715, 0xC542, 0xD716, - 0xC543, 0xD717, 0xC544, 0xD71A, 0xC545, 0xD71B, 0xC546, 0xD71D, - 0xC547, 0xD71E, 0xC548, 0xD71F, 0xC549, 0xD721, 0xC54A, 0xD722, - 0xC54B, 0xD723, 0xC54C, 0xD724, 0xC54D, 0xD725, 0xC54E, 0xD726, - 0xC54F, 0xD727, 0xC550, 0xD72A, 0xC551, 0xD72C, 0xC552, 0xD72E, - 0xC553, 0xD72F, 0xC554, 0xD730, 0xC555, 0xD731, 0xC556, 0xD732, - 0xC557, 0xD733, 0xC558, 0xD736, 0xC559, 0xD737, 0xC55A, 0xD739, - 0xC561, 0xD73A, 0xC562, 0xD73B, 0xC563, 0xD73D, 0xC564, 0xD73E, - 0xC565, 0xD73F, 0xC566, 0xD740, 0xC567, 0xD741, 0xC568, 0xD742, - 0xC569, 0xD743, 0xC56A, 0xD745, 0xC56B, 0xD746, 0xC56C, 0xD748, - 0xC56D, 0xD74A, 0xC56E, 0xD74B, 0xC56F, 0xD74C, 0xC570, 0xD74D, - 0xC571, 0xD74E, 0xC572, 0xD74F, 0xC573, 0xD752, 0xC574, 0xD753, - 0xC575, 0xD755, 0xC576, 0xD75A, 0xC577, 0xD75B, 0xC578, 0xD75C, - 0xC579, 0xD75D, 0xC57A, 0xD75E, 0xC581, 0xD75F, 0xC582, 0xD762, - 0xC583, 0xD764, 0xC584, 0xD766, 0xC585, 0xD767, 0xC586, 0xD768, - 0xC587, 0xD76A, 0xC588, 0xD76B, 0xC589, 0xD76D, 0xC58A, 0xD76E, - 0xC58B, 0xD76F, 0xC58C, 0xD771, 0xC58D, 0xD772, 0xC58E, 0xD773, - 0xC58F, 0xD775, 0xC590, 0xD776, 0xC591, 0xD777, 0xC592, 0xD778, - 0xC593, 0xD779, 0xC594, 0xD77A, 0xC595, 0xD77B, 0xC596, 0xD77E, - 0xC597, 0xD77F, 0xC598, 0xD780, 0xC599, 0xD782, 0xC59A, 0xD783, - 0xC59B, 0xD784, 0xC59C, 0xD785, 0xC59D, 0xD786, 0xC59E, 0xD787, - 0xC59F, 0xD78A, 0xC5A0, 0xD78B, 0xC5A1, 0xD044, 0xC5A2, 0xD045, - 0xC5A3, 0xD047, 0xC5A4, 0xD049, 0xC5A5, 0xD050, 0xC5A6, 0xD054, - 0xC5A7, 0xD058, 0xC5A8, 0xD060, 0xC5A9, 0xD06C, 0xC5AA, 0xD06D, - 0xC5AB, 0xD070, 0xC5AC, 0xD074, 0xC5AD, 0xD07C, 0xC5AE, 0xD07D, - 0xC5AF, 0xD081, 0xC5B0, 0xD0A4, 0xC5B1, 0xD0A5, 0xC5B2, 0xD0A8, - 0xC5B3, 0xD0AC, 0xC5B4, 0xD0B4, 0xC5B5, 0xD0B5, 0xC5B6, 0xD0B7, - 0xC5B7, 0xD0B9, 0xC5B8, 0xD0C0, 0xC5B9, 0xD0C1, 0xC5BA, 0xD0C4, - 0xC5BB, 0xD0C8, 0xC5BC, 0xD0C9, 0xC5BD, 0xD0D0, 0xC5BE, 0xD0D1, - 0xC5BF, 0xD0D3, 0xC5C0, 0xD0D4, 0xC5C1, 0xD0D5, 0xC5C2, 0xD0DC, - 0xC5C3, 0xD0DD, 0xC5C4, 0xD0E0, 0xC5C5, 0xD0E4, 0xC5C6, 0xD0EC, - 0xC5C7, 0xD0ED, 0xC5C8, 0xD0EF, 0xC5C9, 0xD0F0, 0xC5CA, 0xD0F1, - 0xC5CB, 0xD0F8, 0xC5CC, 0xD10D, 0xC5CD, 0xD130, 0xC5CE, 0xD131, - 0xC5CF, 0xD134, 0xC5D0, 0xD138, 0xC5D1, 0xD13A, 0xC5D2, 0xD140, - 0xC5D3, 0xD141, 0xC5D4, 0xD143, 0xC5D5, 0xD144, 0xC5D6, 0xD145, - 0xC5D7, 0xD14C, 0xC5D8, 0xD14D, 0xC5D9, 0xD150, 0xC5DA, 0xD154, - 0xC5DB, 0xD15C, 0xC5DC, 0xD15D, 0xC5DD, 0xD15F, 0xC5DE, 0xD161, - 0xC5DF, 0xD168, 0xC5E0, 0xD16C, 0xC5E1, 0xD17C, 0xC5E2, 0xD184, - 0xC5E3, 0xD188, 0xC5E4, 0xD1A0, 0xC5E5, 0xD1A1, 0xC5E6, 0xD1A4, - 0xC5E7, 0xD1A8, 0xC5E8, 0xD1B0, 0xC5E9, 0xD1B1, 0xC5EA, 0xD1B3, - 0xC5EB, 0xD1B5, 0xC5EC, 0xD1BA, 0xC5ED, 0xD1BC, 0xC5EE, 0xD1C0, - 0xC5EF, 0xD1D8, 0xC5F0, 0xD1F4, 0xC5F1, 0xD1F8, 0xC5F2, 0xD207, - 0xC5F3, 0xD209, 0xC5F4, 0xD210, 0xC5F5, 0xD22C, 0xC5F6, 0xD22D, - 0xC5F7, 0xD230, 0xC5F8, 0xD234, 0xC5F9, 0xD23C, 0xC5FA, 0xD23D, - 0xC5FB, 0xD23F, 0xC5FC, 0xD241, 0xC5FD, 0xD248, 0xC5FE, 0xD25C, - 0xC641, 0xD78D, 0xC642, 0xD78E, 0xC643, 0xD78F, 0xC644, 0xD791, - 0xC645, 0xD792, 0xC646, 0xD793, 0xC647, 0xD794, 0xC648, 0xD795, - 0xC649, 0xD796, 0xC64A, 0xD797, 0xC64B, 0xD79A, 0xC64C, 0xD79C, - 0xC64D, 0xD79E, 0xC64E, 0xD79F, 0xC64F, 0xD7A0, 0xC650, 0xD7A1, - 0xC651, 0xD7A2, 0xC652, 0xD7A3, 0xC6A1, 0xD264, 0xC6A2, 0xD280, - 0xC6A3, 0xD281, 0xC6A4, 0xD284, 0xC6A5, 0xD288, 0xC6A6, 0xD290, - 0xC6A7, 0xD291, 0xC6A8, 0xD295, 0xC6A9, 0xD29C, 0xC6AA, 0xD2A0, - 0xC6AB, 0xD2A4, 0xC6AC, 0xD2AC, 0xC6AD, 0xD2B1, 0xC6AE, 0xD2B8, - 0xC6AF, 0xD2B9, 0xC6B0, 0xD2BC, 0xC6B1, 0xD2BF, 0xC6B2, 0xD2C0, - 0xC6B3, 0xD2C2, 0xC6B4, 0xD2C8, 0xC6B5, 0xD2C9, 0xC6B6, 0xD2CB, - 0xC6B7, 0xD2D4, 0xC6B8, 0xD2D8, 0xC6B9, 0xD2DC, 0xC6BA, 0xD2E4, - 0xC6BB, 0xD2E5, 0xC6BC, 0xD2F0, 0xC6BD, 0xD2F1, 0xC6BE, 0xD2F4, - 0xC6BF, 0xD2F8, 0xC6C0, 0xD300, 0xC6C1, 0xD301, 0xC6C2, 0xD303, - 0xC6C3, 0xD305, 0xC6C4, 0xD30C, 0xC6C5, 0xD30D, 0xC6C6, 0xD30E, - 0xC6C7, 0xD310, 0xC6C8, 0xD314, 0xC6C9, 0xD316, 0xC6CA, 0xD31C, - 0xC6CB, 0xD31D, 0xC6CC, 0xD31F, 0xC6CD, 0xD320, 0xC6CE, 0xD321, - 0xC6CF, 0xD325, 0xC6D0, 0xD328, 0xC6D1, 0xD329, 0xC6D2, 0xD32C, - 0xC6D3, 0xD330, 0xC6D4, 0xD338, 0xC6D5, 0xD339, 0xC6D6, 0xD33B, - 0xC6D7, 0xD33C, 0xC6D8, 0xD33D, 0xC6D9, 0xD344, 0xC6DA, 0xD345, - 0xC6DB, 0xD37C, 0xC6DC, 0xD37D, 0xC6DD, 0xD380, 0xC6DE, 0xD384, - 0xC6DF, 0xD38C, 0xC6E0, 0xD38D, 0xC6E1, 0xD38F, 0xC6E2, 0xD390, - 0xC6E3, 0xD391, 0xC6E4, 0xD398, 0xC6E5, 0xD399, 0xC6E6, 0xD39C, - 0xC6E7, 0xD3A0, 0xC6E8, 0xD3A8, 0xC6E9, 0xD3A9, 0xC6EA, 0xD3AB, - 0xC6EB, 0xD3AD, 0xC6EC, 0xD3B4, 0xC6ED, 0xD3B8, 0xC6EE, 0xD3BC, - 0xC6EF, 0xD3C4, 0xC6F0, 0xD3C5, 0xC6F1, 0xD3C8, 0xC6F2, 0xD3C9, - 0xC6F3, 0xD3D0, 0xC6F4, 0xD3D8, 0xC6F5, 0xD3E1, 0xC6F6, 0xD3E3, - 0xC6F7, 0xD3EC, 0xC6F8, 0xD3ED, 0xC6F9, 0xD3F0, 0xC6FA, 0xD3F4, - 0xC6FB, 0xD3FC, 0xC6FC, 0xD3FD, 0xC6FD, 0xD3FF, 0xC6FE, 0xD401, - 0xC7A1, 0xD408, 0xC7A2, 0xD41D, 0xC7A3, 0xD440, 0xC7A4, 0xD444, - 0xC7A5, 0xD45C, 0xC7A6, 0xD460, 0xC7A7, 0xD464, 0xC7A8, 0xD46D, - 0xC7A9, 0xD46F, 0xC7AA, 0xD478, 0xC7AB, 0xD479, 0xC7AC, 0xD47C, - 0xC7AD, 0xD47F, 0xC7AE, 0xD480, 0xC7AF, 0xD482, 0xC7B0, 0xD488, - 0xC7B1, 0xD489, 0xC7B2, 0xD48B, 0xC7B3, 0xD48D, 0xC7B4, 0xD494, - 0xC7B5, 0xD4A9, 0xC7B6, 0xD4CC, 0xC7B7, 0xD4D0, 0xC7B8, 0xD4D4, - 0xC7B9, 0xD4DC, 0xC7BA, 0xD4DF, 0xC7BB, 0xD4E8, 0xC7BC, 0xD4EC, - 0xC7BD, 0xD4F0, 0xC7BE, 0xD4F8, 0xC7BF, 0xD4FB, 0xC7C0, 0xD4FD, - 0xC7C1, 0xD504, 0xC7C2, 0xD508, 0xC7C3, 0xD50C, 0xC7C4, 0xD514, - 0xC7C5, 0xD515, 0xC7C6, 0xD517, 0xC7C7, 0xD53C, 0xC7C8, 0xD53D, - 0xC7C9, 0xD540, 0xC7CA, 0xD544, 0xC7CB, 0xD54C, 0xC7CC, 0xD54D, - 0xC7CD, 0xD54F, 0xC7CE, 0xD551, 0xC7CF, 0xD558, 0xC7D0, 0xD559, - 0xC7D1, 0xD55C, 0xC7D2, 0xD560, 0xC7D3, 0xD565, 0xC7D4, 0xD568, - 0xC7D5, 0xD569, 0xC7D6, 0xD56B, 0xC7D7, 0xD56D, 0xC7D8, 0xD574, - 0xC7D9, 0xD575, 0xC7DA, 0xD578, 0xC7DB, 0xD57C, 0xC7DC, 0xD584, - 0xC7DD, 0xD585, 0xC7DE, 0xD587, 0xC7DF, 0xD588, 0xC7E0, 0xD589, - 0xC7E1, 0xD590, 0xC7E2, 0xD5A5, 0xC7E3, 0xD5C8, 0xC7E4, 0xD5C9, - 0xC7E5, 0xD5CC, 0xC7E6, 0xD5D0, 0xC7E7, 0xD5D2, 0xC7E8, 0xD5D8, - 0xC7E9, 0xD5D9, 0xC7EA, 0xD5DB, 0xC7EB, 0xD5DD, 0xC7EC, 0xD5E4, - 0xC7ED, 0xD5E5, 0xC7EE, 0xD5E8, 0xC7EF, 0xD5EC, 0xC7F0, 0xD5F4, - 0xC7F1, 0xD5F5, 0xC7F2, 0xD5F7, 0xC7F3, 0xD5F9, 0xC7F4, 0xD600, - 0xC7F5, 0xD601, 0xC7F6, 0xD604, 0xC7F7, 0xD608, 0xC7F8, 0xD610, - 0xC7F9, 0xD611, 0xC7FA, 0xD613, 0xC7FB, 0xD614, 0xC7FC, 0xD615, - 0xC7FD, 0xD61C, 0xC7FE, 0xD620, 0xC8A1, 0xD624, 0xC8A2, 0xD62D, - 0xC8A3, 0xD638, 0xC8A4, 0xD639, 0xC8A5, 0xD63C, 0xC8A6, 0xD640, - 0xC8A7, 0xD645, 0xC8A8, 0xD648, 0xC8A9, 0xD649, 0xC8AA, 0xD64B, - 0xC8AB, 0xD64D, 0xC8AC, 0xD651, 0xC8AD, 0xD654, 0xC8AE, 0xD655, - 0xC8AF, 0xD658, 0xC8B0, 0xD65C, 0xC8B1, 0xD667, 0xC8B2, 0xD669, - 0xC8B3, 0xD670, 0xC8B4, 0xD671, 0xC8B5, 0xD674, 0xC8B6, 0xD683, - 0xC8B7, 0xD685, 0xC8B8, 0xD68C, 0xC8B9, 0xD68D, 0xC8BA, 0xD690, - 0xC8BB, 0xD694, 0xC8BC, 0xD69D, 0xC8BD, 0xD69F, 0xC8BE, 0xD6A1, - 0xC8BF, 0xD6A8, 0xC8C0, 0xD6AC, 0xC8C1, 0xD6B0, 0xC8C2, 0xD6B9, - 0xC8C3, 0xD6BB, 0xC8C4, 0xD6C4, 0xC8C5, 0xD6C5, 0xC8C6, 0xD6C8, - 0xC8C7, 0xD6CC, 0xC8C8, 0xD6D1, 0xC8C9, 0xD6D4, 0xC8CA, 0xD6D7, - 0xC8CB, 0xD6D9, 0xC8CC, 0xD6E0, 0xC8CD, 0xD6E4, 0xC8CE, 0xD6E8, - 0xC8CF, 0xD6F0, 0xC8D0, 0xD6F5, 0xC8D1, 0xD6FC, 0xC8D2, 0xD6FD, - 0xC8D3, 0xD700, 0xC8D4, 0xD704, 0xC8D5, 0xD711, 0xC8D6, 0xD718, - 0xC8D7, 0xD719, 0xC8D8, 0xD71C, 0xC8D9, 0xD720, 0xC8DA, 0xD728, - 0xC8DB, 0xD729, 0xC8DC, 0xD72B, 0xC8DD, 0xD72D, 0xC8DE, 0xD734, - 0xC8DF, 0xD735, 0xC8E0, 0xD738, 0xC8E1, 0xD73C, 0xC8E2, 0xD744, - 0xC8E3, 0xD747, 0xC8E4, 0xD749, 0xC8E5, 0xD750, 0xC8E6, 0xD751, - 0xC8E7, 0xD754, 0xC8E8, 0xD756, 0xC8E9, 0xD757, 0xC8EA, 0xD758, - 0xC8EB, 0xD759, 0xC8EC, 0xD760, 0xC8ED, 0xD761, 0xC8EE, 0xD763, - 0xC8EF, 0xD765, 0xC8F0, 0xD769, 0xC8F1, 0xD76C, 0xC8F2, 0xD770, - 0xC8F3, 0xD774, 0xC8F4, 0xD77C, 0xC8F5, 0xD77D, 0xC8F6, 0xD781, - 0xC8F7, 0xD788, 0xC8F8, 0xD789, 0xC8F9, 0xD78C, 0xC8FA, 0xD790, - 0xC8FB, 0xD798, 0xC8FC, 0xD799, 0xC8FD, 0xD79B, 0xC8FE, 0xD79D, - 0xCAA1, 0x4F3D, 0xCAA2, 0x4F73, 0xCAA3, 0x5047, 0xCAA4, 0x50F9, - 0xCAA5, 0x52A0, 0xCAA6, 0x53EF, 0xCAA7, 0x5475, 0xCAA8, 0x54E5, - 0xCAA9, 0x5609, 0xCAAA, 0x5AC1, 0xCAAB, 0x5BB6, 0xCAAC, 0x6687, - 0xCAAD, 0x67B6, 0xCAAE, 0x67B7, 0xCAAF, 0x67EF, 0xCAB0, 0x6B4C, - 0xCAB1, 0x73C2, 0xCAB2, 0x75C2, 0xCAB3, 0x7A3C, 0xCAB4, 0x82DB, - 0xCAB5, 0x8304, 0xCAB6, 0x8857, 0xCAB7, 0x8888, 0xCAB8, 0x8A36, - 0xCAB9, 0x8CC8, 0xCABA, 0x8DCF, 0xCABB, 0x8EFB, 0xCABC, 0x8FE6, - 0xCABD, 0x99D5, 0xCABE, 0x523B, 0xCABF, 0x5374, 0xCAC0, 0x5404, - 0xCAC1, 0x606A, 0xCAC2, 0x6164, 0xCAC3, 0x6BBC, 0xCAC4, 0x73CF, - 0xCAC5, 0x811A, 0xCAC6, 0x89BA, 0xCAC7, 0x89D2, 0xCAC8, 0x95A3, - 0xCAC9, 0x4F83, 0xCACA, 0x520A, 0xCACB, 0x58BE, 0xCACC, 0x5978, - 0xCACD, 0x59E6, 0xCACE, 0x5E72, 0xCACF, 0x5E79, 0xCAD0, 0x61C7, - 0xCAD1, 0x63C0, 0xCAD2, 0x6746, 0xCAD3, 0x67EC, 0xCAD4, 0x687F, - 0xCAD5, 0x6F97, 0xCAD6, 0x764E, 0xCAD7, 0x770B, 0xCAD8, 0x78F5, - 0xCAD9, 0x7A08, 0xCADA, 0x7AFF, 0xCADB, 0x7C21, 0xCADC, 0x809D, - 0xCADD, 0x826E, 0xCADE, 0x8271, 0xCADF, 0x8AEB, 0xCAE0, 0x9593, - 0xCAE1, 0x4E6B, 0xCAE2, 0x559D, 0xCAE3, 0x66F7, 0xCAE4, 0x6E34, - 0xCAE5, 0x78A3, 0xCAE6, 0x7AED, 0xCAE7, 0x845B, 0xCAE8, 0x8910, - 0xCAE9, 0x874E, 0xCAEA, 0x97A8, 0xCAEB, 0x52D8, 0xCAEC, 0x574E, - 0xCAED, 0x582A, 0xCAEE, 0x5D4C, 0xCAEF, 0x611F, 0xCAF0, 0x61BE, - 0xCAF1, 0x6221, 0xCAF2, 0x6562, 0xCAF3, 0x67D1, 0xCAF4, 0x6A44, - 0xCAF5, 0x6E1B, 0xCAF6, 0x7518, 0xCAF7, 0x75B3, 0xCAF8, 0x76E3, - 0xCAF9, 0x77B0, 0xCAFA, 0x7D3A, 0xCAFB, 0x90AF, 0xCAFC, 0x9451, - 0xCAFD, 0x9452, 0xCAFE, 0x9F95, 0xCBA1, 0x5323, 0xCBA2, 0x5CAC, - 0xCBA3, 0x7532, 0xCBA4, 0x80DB, 0xCBA5, 0x9240, 0xCBA6, 0x9598, - 0xCBA7, 0x525B, 0xCBA8, 0x5808, 0xCBA9, 0x59DC, 0xCBAA, 0x5CA1, - 0xCBAB, 0x5D17, 0xCBAC, 0x5EB7, 0xCBAD, 0x5F3A, 0xCBAE, 0x5F4A, - 0xCBAF, 0x6177, 0xCBB0, 0x6C5F, 0xCBB1, 0x757A, 0xCBB2, 0x7586, - 0xCBB3, 0x7CE0, 0xCBB4, 0x7D73, 0xCBB5, 0x7DB1, 0xCBB6, 0x7F8C, - 0xCBB7, 0x8154, 0xCBB8, 0x8221, 0xCBB9, 0x8591, 0xCBBA, 0x8941, - 0xCBBB, 0x8B1B, 0xCBBC, 0x92FC, 0xCBBD, 0x964D, 0xCBBE, 0x9C47, - 0xCBBF, 0x4ECB, 0xCBC0, 0x4EF7, 0xCBC1, 0x500B, 0xCBC2, 0x51F1, - 0xCBC3, 0x584F, 0xCBC4, 0x6137, 0xCBC5, 0x613E, 0xCBC6, 0x6168, - 0xCBC7, 0x6539, 0xCBC8, 0x69EA, 0xCBC9, 0x6F11, 0xCBCA, 0x75A5, - 0xCBCB, 0x7686, 0xCBCC, 0x76D6, 0xCBCD, 0x7B87, 0xCBCE, 0x82A5, - 0xCBCF, 0x84CB, 0xCBD0, 0xF900, 0xCBD1, 0x93A7, 0xCBD2, 0x958B, - 0xCBD3, 0x5580, 0xCBD4, 0x5BA2, 0xCBD5, 0x5751, 0xCBD6, 0xF901, - 0xCBD7, 0x7CB3, 0xCBD8, 0x7FB9, 0xCBD9, 0x91B5, 0xCBDA, 0x5028, - 0xCBDB, 0x53BB, 0xCBDC, 0x5C45, 0xCBDD, 0x5DE8, 0xCBDE, 0x62D2, - 0xCBDF, 0x636E, 0xCBE0, 0x64DA, 0xCBE1, 0x64E7, 0xCBE2, 0x6E20, - 0xCBE3, 0x70AC, 0xCBE4, 0x795B, 0xCBE5, 0x8DDD, 0xCBE6, 0x8E1E, - 0xCBE7, 0xF902, 0xCBE8, 0x907D, 0xCBE9, 0x9245, 0xCBEA, 0x92F8, - 0xCBEB, 0x4E7E, 0xCBEC, 0x4EF6, 0xCBED, 0x5065, 0xCBEE, 0x5DFE, - 0xCBEF, 0x5EFA, 0xCBF0, 0x6106, 0xCBF1, 0x6957, 0xCBF2, 0x8171, - 0xCBF3, 0x8654, 0xCBF4, 0x8E47, 0xCBF5, 0x9375, 0xCBF6, 0x9A2B, - 0xCBF7, 0x4E5E, 0xCBF8, 0x5091, 0xCBF9, 0x6770, 0xCBFA, 0x6840, - 0xCBFB, 0x5109, 0xCBFC, 0x528D, 0xCBFD, 0x5292, 0xCBFE, 0x6AA2, - 0xCCA1, 0x77BC, 0xCCA2, 0x9210, 0xCCA3, 0x9ED4, 0xCCA4, 0x52AB, - 0xCCA5, 0x602F, 0xCCA6, 0x8FF2, 0xCCA7, 0x5048, 0xCCA8, 0x61A9, - 0xCCA9, 0x63ED, 0xCCAA, 0x64CA, 0xCCAB, 0x683C, 0xCCAC, 0x6A84, - 0xCCAD, 0x6FC0, 0xCCAE, 0x8188, 0xCCAF, 0x89A1, 0xCCB0, 0x9694, - 0xCCB1, 0x5805, 0xCCB2, 0x727D, 0xCCB3, 0x72AC, 0xCCB4, 0x7504, - 0xCCB5, 0x7D79, 0xCCB6, 0x7E6D, 0xCCB7, 0x80A9, 0xCCB8, 0x898B, - 0xCCB9, 0x8B74, 0xCCBA, 0x9063, 0xCCBB, 0x9D51, 0xCCBC, 0x6289, - 0xCCBD, 0x6C7A, 0xCCBE, 0x6F54, 0xCCBF, 0x7D50, 0xCCC0, 0x7F3A, - 0xCCC1, 0x8A23, 0xCCC2, 0x517C, 0xCCC3, 0x614A, 0xCCC4, 0x7B9D, - 0xCCC5, 0x8B19, 0xCCC6, 0x9257, 0xCCC7, 0x938C, 0xCCC8, 0x4EAC, - 0xCCC9, 0x4FD3, 0xCCCA, 0x501E, 0xCCCB, 0x50BE, 0xCCCC, 0x5106, - 0xCCCD, 0x52C1, 0xCCCE, 0x52CD, 0xCCCF, 0x537F, 0xCCD0, 0x5770, - 0xCCD1, 0x5883, 0xCCD2, 0x5E9A, 0xCCD3, 0x5F91, 0xCCD4, 0x6176, - 0xCCD5, 0x61AC, 0xCCD6, 0x64CE, 0xCCD7, 0x656C, 0xCCD8, 0x666F, - 0xCCD9, 0x66BB, 0xCCDA, 0x66F4, 0xCCDB, 0x6897, 0xCCDC, 0x6D87, - 0xCCDD, 0x7085, 0xCCDE, 0x70F1, 0xCCDF, 0x749F, 0xCCE0, 0x74A5, - 0xCCE1, 0x74CA, 0xCCE2, 0x75D9, 0xCCE3, 0x786C, 0xCCE4, 0x78EC, - 0xCCE5, 0x7ADF, 0xCCE6, 0x7AF6, 0xCCE7, 0x7D45, 0xCCE8, 0x7D93, - 0xCCE9, 0x8015, 0xCCEA, 0x803F, 0xCCEB, 0x811B, 0xCCEC, 0x8396, - 0xCCED, 0x8B66, 0xCCEE, 0x8F15, 0xCCEF, 0x9015, 0xCCF0, 0x93E1, - 0xCCF1, 0x9803, 0xCCF2, 0x9838, 0xCCF3, 0x9A5A, 0xCCF4, 0x9BE8, - 0xCCF5, 0x4FC2, 0xCCF6, 0x5553, 0xCCF7, 0x583A, 0xCCF8, 0x5951, - 0xCCF9, 0x5B63, 0xCCFA, 0x5C46, 0xCCFB, 0x60B8, 0xCCFC, 0x6212, - 0xCCFD, 0x6842, 0xCCFE, 0x68B0, 0xCDA1, 0x68E8, 0xCDA2, 0x6EAA, - 0xCDA3, 0x754C, 0xCDA4, 0x7678, 0xCDA5, 0x78CE, 0xCDA6, 0x7A3D, - 0xCDA7, 0x7CFB, 0xCDA8, 0x7E6B, 0xCDA9, 0x7E7C, 0xCDAA, 0x8A08, - 0xCDAB, 0x8AA1, 0xCDAC, 0x8C3F, 0xCDAD, 0x968E, 0xCDAE, 0x9DC4, - 0xCDAF, 0x53E4, 0xCDB0, 0x53E9, 0xCDB1, 0x544A, 0xCDB2, 0x5471, - 0xCDB3, 0x56FA, 0xCDB4, 0x59D1, 0xCDB5, 0x5B64, 0xCDB6, 0x5C3B, - 0xCDB7, 0x5EAB, 0xCDB8, 0x62F7, 0xCDB9, 0x6537, 0xCDBA, 0x6545, - 0xCDBB, 0x6572, 0xCDBC, 0x66A0, 0xCDBD, 0x67AF, 0xCDBE, 0x69C1, - 0xCDBF, 0x6CBD, 0xCDC0, 0x75FC, 0xCDC1, 0x7690, 0xCDC2, 0x777E, - 0xCDC3, 0x7A3F, 0xCDC4, 0x7F94, 0xCDC5, 0x8003, 0xCDC6, 0x80A1, - 0xCDC7, 0x818F, 0xCDC8, 0x82E6, 0xCDC9, 0x82FD, 0xCDCA, 0x83F0, - 0xCDCB, 0x85C1, 0xCDCC, 0x8831, 0xCDCD, 0x88B4, 0xCDCE, 0x8AA5, - 0xCDCF, 0xF903, 0xCDD0, 0x8F9C, 0xCDD1, 0x932E, 0xCDD2, 0x96C7, - 0xCDD3, 0x9867, 0xCDD4, 0x9AD8, 0xCDD5, 0x9F13, 0xCDD6, 0x54ED, - 0xCDD7, 0x659B, 0xCDD8, 0x66F2, 0xCDD9, 0x688F, 0xCDDA, 0x7A40, - 0xCDDB, 0x8C37, 0xCDDC, 0x9D60, 0xCDDD, 0x56F0, 0xCDDE, 0x5764, - 0xCDDF, 0x5D11, 0xCDE0, 0x6606, 0xCDE1, 0x68B1, 0xCDE2, 0x68CD, - 0xCDE3, 0x6EFE, 0xCDE4, 0x7428, 0xCDE5, 0x889E, 0xCDE6, 0x9BE4, - 0xCDE7, 0x6C68, 0xCDE8, 0xF904, 0xCDE9, 0x9AA8, 0xCDEA, 0x4F9B, - 0xCDEB, 0x516C, 0xCDEC, 0x5171, 0xCDED, 0x529F, 0xCDEE, 0x5B54, - 0xCDEF, 0x5DE5, 0xCDF0, 0x6050, 0xCDF1, 0x606D, 0xCDF2, 0x62F1, - 0xCDF3, 0x63A7, 0xCDF4, 0x653B, 0xCDF5, 0x73D9, 0xCDF6, 0x7A7A, - 0xCDF7, 0x86A3, 0xCDF8, 0x8CA2, 0xCDF9, 0x978F, 0xCDFA, 0x4E32, - 0xCDFB, 0x5BE1, 0xCDFC, 0x6208, 0xCDFD, 0x679C, 0xCDFE, 0x74DC, - 0xCEA1, 0x79D1, 0xCEA2, 0x83D3, 0xCEA3, 0x8A87, 0xCEA4, 0x8AB2, - 0xCEA5, 0x8DE8, 0xCEA6, 0x904E, 0xCEA7, 0x934B, 0xCEA8, 0x9846, - 0xCEA9, 0x5ED3, 0xCEAA, 0x69E8, 0xCEAB, 0x85FF, 0xCEAC, 0x90ED, - 0xCEAD, 0xF905, 0xCEAE, 0x51A0, 0xCEAF, 0x5B98, 0xCEB0, 0x5BEC, - 0xCEB1, 0x6163, 0xCEB2, 0x68FA, 0xCEB3, 0x6B3E, 0xCEB4, 0x704C, - 0xCEB5, 0x742F, 0xCEB6, 0x74D8, 0xCEB7, 0x7BA1, 0xCEB8, 0x7F50, - 0xCEB9, 0x83C5, 0xCEBA, 0x89C0, 0xCEBB, 0x8CAB, 0xCEBC, 0x95DC, - 0xCEBD, 0x9928, 0xCEBE, 0x522E, 0xCEBF, 0x605D, 0xCEC0, 0x62EC, - 0xCEC1, 0x9002, 0xCEC2, 0x4F8A, 0xCEC3, 0x5149, 0xCEC4, 0x5321, - 0xCEC5, 0x58D9, 0xCEC6, 0x5EE3, 0xCEC7, 0x66E0, 0xCEC8, 0x6D38, - 0xCEC9, 0x709A, 0xCECA, 0x72C2, 0xCECB, 0x73D6, 0xCECC, 0x7B50, - 0xCECD, 0x80F1, 0xCECE, 0x945B, 0xCECF, 0x5366, 0xCED0, 0x639B, - 0xCED1, 0x7F6B, 0xCED2, 0x4E56, 0xCED3, 0x5080, 0xCED4, 0x584A, - 0xCED5, 0x58DE, 0xCED6, 0x602A, 0xCED7, 0x6127, 0xCED8, 0x62D0, - 0xCED9, 0x69D0, 0xCEDA, 0x9B41, 0xCEDB, 0x5B8F, 0xCEDC, 0x7D18, - 0xCEDD, 0x80B1, 0xCEDE, 0x8F5F, 0xCEDF, 0x4EA4, 0xCEE0, 0x50D1, - 0xCEE1, 0x54AC, 0xCEE2, 0x55AC, 0xCEE3, 0x5B0C, 0xCEE4, 0x5DA0, - 0xCEE5, 0x5DE7, 0xCEE6, 0x652A, 0xCEE7, 0x654E, 0xCEE8, 0x6821, - 0xCEE9, 0x6A4B, 0xCEEA, 0x72E1, 0xCEEB, 0x768E, 0xCEEC, 0x77EF, - 0xCEED, 0x7D5E, 0xCEEE, 0x7FF9, 0xCEEF, 0x81A0, 0xCEF0, 0x854E, - 0xCEF1, 0x86DF, 0xCEF2, 0x8F03, 0xCEF3, 0x8F4E, 0xCEF4, 0x90CA, - 0xCEF5, 0x9903, 0xCEF6, 0x9A55, 0xCEF7, 0x9BAB, 0xCEF8, 0x4E18, - 0xCEF9, 0x4E45, 0xCEFA, 0x4E5D, 0xCEFB, 0x4EC7, 0xCEFC, 0x4FF1, - 0xCEFD, 0x5177, 0xCEFE, 0x52FE, 0xCFA1, 0x5340, 0xCFA2, 0x53E3, - 0xCFA3, 0x53E5, 0xCFA4, 0x548E, 0xCFA5, 0x5614, 0xCFA6, 0x5775, - 0xCFA7, 0x57A2, 0xCFA8, 0x5BC7, 0xCFA9, 0x5D87, 0xCFAA, 0x5ED0, - 0xCFAB, 0x61FC, 0xCFAC, 0x62D8, 0xCFAD, 0x6551, 0xCFAE, 0x67B8, - 0xCFAF, 0x67E9, 0xCFB0, 0x69CB, 0xCFB1, 0x6B50, 0xCFB2, 0x6BC6, - 0xCFB3, 0x6BEC, 0xCFB4, 0x6C42, 0xCFB5, 0x6E9D, 0xCFB6, 0x7078, - 0xCFB7, 0x72D7, 0xCFB8, 0x7396, 0xCFB9, 0x7403, 0xCFBA, 0x77BF, - 0xCFBB, 0x77E9, 0xCFBC, 0x7A76, 0xCFBD, 0x7D7F, 0xCFBE, 0x8009, - 0xCFBF, 0x81FC, 0xCFC0, 0x8205, 0xCFC1, 0x820A, 0xCFC2, 0x82DF, - 0xCFC3, 0x8862, 0xCFC4, 0x8B33, 0xCFC5, 0x8CFC, 0xCFC6, 0x8EC0, - 0xCFC7, 0x9011, 0xCFC8, 0x90B1, 0xCFC9, 0x9264, 0xCFCA, 0x92B6, - 0xCFCB, 0x99D2, 0xCFCC, 0x9A45, 0xCFCD, 0x9CE9, 0xCFCE, 0x9DD7, - 0xCFCF, 0x9F9C, 0xCFD0, 0x570B, 0xCFD1, 0x5C40, 0xCFD2, 0x83CA, - 0xCFD3, 0x97A0, 0xCFD4, 0x97AB, 0xCFD5, 0x9EB4, 0xCFD6, 0x541B, - 0xCFD7, 0x7A98, 0xCFD8, 0x7FA4, 0xCFD9, 0x88D9, 0xCFDA, 0x8ECD, - 0xCFDB, 0x90E1, 0xCFDC, 0x5800, 0xCFDD, 0x5C48, 0xCFDE, 0x6398, - 0xCFDF, 0x7A9F, 0xCFE0, 0x5BAE, 0xCFE1, 0x5F13, 0xCFE2, 0x7A79, - 0xCFE3, 0x7AAE, 0xCFE4, 0x828E, 0xCFE5, 0x8EAC, 0xCFE6, 0x5026, - 0xCFE7, 0x5238, 0xCFE8, 0x52F8, 0xCFE9, 0x5377, 0xCFEA, 0x5708, - 0xCFEB, 0x62F3, 0xCFEC, 0x6372, 0xCFED, 0x6B0A, 0xCFEE, 0x6DC3, - 0xCFEF, 0x7737, 0xCFF0, 0x53A5, 0xCFF1, 0x7357, 0xCFF2, 0x8568, - 0xCFF3, 0x8E76, 0xCFF4, 0x95D5, 0xCFF5, 0x673A, 0xCFF6, 0x6AC3, - 0xCFF7, 0x6F70, 0xCFF8, 0x8A6D, 0xCFF9, 0x8ECC, 0xCFFA, 0x994B, - 0xCFFB, 0xF906, 0xCFFC, 0x6677, 0xCFFD, 0x6B78, 0xCFFE, 0x8CB4, - 0xD0A1, 0x9B3C, 0xD0A2, 0xF907, 0xD0A3, 0x53EB, 0xD0A4, 0x572D, - 0xD0A5, 0x594E, 0xD0A6, 0x63C6, 0xD0A7, 0x69FB, 0xD0A8, 0x73EA, - 0xD0A9, 0x7845, 0xD0AA, 0x7ABA, 0xD0AB, 0x7AC5, 0xD0AC, 0x7CFE, - 0xD0AD, 0x8475, 0xD0AE, 0x898F, 0xD0AF, 0x8D73, 0xD0B0, 0x9035, - 0xD0B1, 0x95A8, 0xD0B2, 0x52FB, 0xD0B3, 0x5747, 0xD0B4, 0x7547, - 0xD0B5, 0x7B60, 0xD0B6, 0x83CC, 0xD0B7, 0x921E, 0xD0B8, 0xF908, - 0xD0B9, 0x6A58, 0xD0BA, 0x514B, 0xD0BB, 0x524B, 0xD0BC, 0x5287, - 0xD0BD, 0x621F, 0xD0BE, 0x68D8, 0xD0BF, 0x6975, 0xD0C0, 0x9699, - 0xD0C1, 0x50C5, 0xD0C2, 0x52A4, 0xD0C3, 0x52E4, 0xD0C4, 0x61C3, - 0xD0C5, 0x65A4, 0xD0C6, 0x6839, 0xD0C7, 0x69FF, 0xD0C8, 0x747E, - 0xD0C9, 0x7B4B, 0xD0CA, 0x82B9, 0xD0CB, 0x83EB, 0xD0CC, 0x89B2, - 0xD0CD, 0x8B39, 0xD0CE, 0x8FD1, 0xD0CF, 0x9949, 0xD0D0, 0xF909, - 0xD0D1, 0x4ECA, 0xD0D2, 0x5997, 0xD0D3, 0x64D2, 0xD0D4, 0x6611, - 0xD0D5, 0x6A8E, 0xD0D6, 0x7434, 0xD0D7, 0x7981, 0xD0D8, 0x79BD, - 0xD0D9, 0x82A9, 0xD0DA, 0x887E, 0xD0DB, 0x887F, 0xD0DC, 0x895F, - 0xD0DD, 0xF90A, 0xD0DE, 0x9326, 0xD0DF, 0x4F0B, 0xD0E0, 0x53CA, - 0xD0E1, 0x6025, 0xD0E2, 0x6271, 0xD0E3, 0x6C72, 0xD0E4, 0x7D1A, - 0xD0E5, 0x7D66, 0xD0E6, 0x4E98, 0xD0E7, 0x5162, 0xD0E8, 0x77DC, - 0xD0E9, 0x80AF, 0xD0EA, 0x4F01, 0xD0EB, 0x4F0E, 0xD0EC, 0x5176, - 0xD0ED, 0x5180, 0xD0EE, 0x55DC, 0xD0EF, 0x5668, 0xD0F0, 0x573B, - 0xD0F1, 0x57FA, 0xD0F2, 0x57FC, 0xD0F3, 0x5914, 0xD0F4, 0x5947, - 0xD0F5, 0x5993, 0xD0F6, 0x5BC4, 0xD0F7, 0x5C90, 0xD0F8, 0x5D0E, - 0xD0F9, 0x5DF1, 0xD0FA, 0x5E7E, 0xD0FB, 0x5FCC, 0xD0FC, 0x6280, - 0xD0FD, 0x65D7, 0xD0FE, 0x65E3, 0xD1A1, 0x671E, 0xD1A2, 0x671F, - 0xD1A3, 0x675E, 0xD1A4, 0x68CB, 0xD1A5, 0x68C4, 0xD1A6, 0x6A5F, - 0xD1A7, 0x6B3A, 0xD1A8, 0x6C23, 0xD1A9, 0x6C7D, 0xD1AA, 0x6C82, - 0xD1AB, 0x6DC7, 0xD1AC, 0x7398, 0xD1AD, 0x7426, 0xD1AE, 0x742A, - 0xD1AF, 0x7482, 0xD1B0, 0x74A3, 0xD1B1, 0x7578, 0xD1B2, 0x757F, - 0xD1B3, 0x7881, 0xD1B4, 0x78EF, 0xD1B5, 0x7941, 0xD1B6, 0x7947, - 0xD1B7, 0x7948, 0xD1B8, 0x797A, 0xD1B9, 0x7B95, 0xD1BA, 0x7D00, - 0xD1BB, 0x7DBA, 0xD1BC, 0x7F88, 0xD1BD, 0x8006, 0xD1BE, 0x802D, - 0xD1BF, 0x808C, 0xD1C0, 0x8A18, 0xD1C1, 0x8B4F, 0xD1C2, 0x8C48, - 0xD1C3, 0x8D77, 0xD1C4, 0x9321, 0xD1C5, 0x9324, 0xD1C6, 0x98E2, - 0xD1C7, 0x9951, 0xD1C8, 0x9A0E, 0xD1C9, 0x9A0F, 0xD1CA, 0x9A65, - 0xD1CB, 0x9E92, 0xD1CC, 0x7DCA, 0xD1CD, 0x4F76, 0xD1CE, 0x5409, - 0xD1CF, 0x62EE, 0xD1D0, 0x6854, 0xD1D1, 0x91D1, 0xD1D2, 0x55AB, - 0xD1D3, 0x513A, 0xD1D4, 0xF90B, 0xD1D5, 0xF90C, 0xD1D6, 0x5A1C, - 0xD1D7, 0x61E6, 0xD1D8, 0xF90D, 0xD1D9, 0x62CF, 0xD1DA, 0x62FF, - 0xD1DB, 0xF90E, 0xD1DC, 0xF90F, 0xD1DD, 0xF910, 0xD1DE, 0xF911, - 0xD1DF, 0xF912, 0xD1E0, 0xF913, 0xD1E1, 0x90A3, 0xD1E2, 0xF914, - 0xD1E3, 0xF915, 0xD1E4, 0xF916, 0xD1E5, 0xF917, 0xD1E6, 0xF918, - 0xD1E7, 0x8AFE, 0xD1E8, 0xF919, 0xD1E9, 0xF91A, 0xD1EA, 0xF91B, - 0xD1EB, 0xF91C, 0xD1EC, 0x6696, 0xD1ED, 0xF91D, 0xD1EE, 0x7156, - 0xD1EF, 0xF91E, 0xD1F0, 0xF91F, 0xD1F1, 0x96E3, 0xD1F2, 0xF920, - 0xD1F3, 0x634F, 0xD1F4, 0x637A, 0xD1F5, 0x5357, 0xD1F6, 0xF921, - 0xD1F7, 0x678F, 0xD1F8, 0x6960, 0xD1F9, 0x6E73, 0xD1FA, 0xF922, - 0xD1FB, 0x7537, 0xD1FC, 0xF923, 0xD1FD, 0xF924, 0xD1FE, 0xF925, - 0xD2A1, 0x7D0D, 0xD2A2, 0xF926, 0xD2A3, 0xF927, 0xD2A4, 0x8872, - 0xD2A5, 0x56CA, 0xD2A6, 0x5A18, 0xD2A7, 0xF928, 0xD2A8, 0xF929, - 0xD2A9, 0xF92A, 0xD2AA, 0xF92B, 0xD2AB, 0xF92C, 0xD2AC, 0x4E43, - 0xD2AD, 0xF92D, 0xD2AE, 0x5167, 0xD2AF, 0x5948, 0xD2B0, 0x67F0, - 0xD2B1, 0x8010, 0xD2B2, 0xF92E, 0xD2B3, 0x5973, 0xD2B4, 0x5E74, - 0xD2B5, 0x649A, 0xD2B6, 0x79CA, 0xD2B7, 0x5FF5, 0xD2B8, 0x606C, - 0xD2B9, 0x62C8, 0xD2BA, 0x637B, 0xD2BB, 0x5BE7, 0xD2BC, 0x5BD7, - 0xD2BD, 0x52AA, 0xD2BE, 0xF92F, 0xD2BF, 0x5974, 0xD2C0, 0x5F29, - 0xD2C1, 0x6012, 0xD2C2, 0xF930, 0xD2C3, 0xF931, 0xD2C4, 0xF932, - 0xD2C5, 0x7459, 0xD2C6, 0xF933, 0xD2C7, 0xF934, 0xD2C8, 0xF935, - 0xD2C9, 0xF936, 0xD2CA, 0xF937, 0xD2CB, 0xF938, 0xD2CC, 0x99D1, - 0xD2CD, 0xF939, 0xD2CE, 0xF93A, 0xD2CF, 0xF93B, 0xD2D0, 0xF93C, - 0xD2D1, 0xF93D, 0xD2D2, 0xF93E, 0xD2D3, 0xF93F, 0xD2D4, 0xF940, - 0xD2D5, 0xF941, 0xD2D6, 0xF942, 0xD2D7, 0xF943, 0xD2D8, 0x6FC3, - 0xD2D9, 0xF944, 0xD2DA, 0xF945, 0xD2DB, 0x81BF, 0xD2DC, 0x8FB2, - 0xD2DD, 0x60F1, 0xD2DE, 0xF946, 0xD2DF, 0xF947, 0xD2E0, 0x8166, - 0xD2E1, 0xF948, 0xD2E2, 0xF949, 0xD2E3, 0x5C3F, 0xD2E4, 0xF94A, - 0xD2E5, 0xF94B, 0xD2E6, 0xF94C, 0xD2E7, 0xF94D, 0xD2E8, 0xF94E, - 0xD2E9, 0xF94F, 0xD2EA, 0xF950, 0xD2EB, 0xF951, 0xD2EC, 0x5AE9, - 0xD2ED, 0x8A25, 0xD2EE, 0x677B, 0xD2EF, 0x7D10, 0xD2F0, 0xF952, - 0xD2F1, 0xF953, 0xD2F2, 0xF954, 0xD2F3, 0xF955, 0xD2F4, 0xF956, - 0xD2F5, 0xF957, 0xD2F6, 0x80FD, 0xD2F7, 0xF958, 0xD2F8, 0xF959, - 0xD2F9, 0x5C3C, 0xD2FA, 0x6CE5, 0xD2FB, 0x533F, 0xD2FC, 0x6EBA, - 0xD2FD, 0x591A, 0xD2FE, 0x8336, 0xD3A1, 0x4E39, 0xD3A2, 0x4EB6, - 0xD3A3, 0x4F46, 0xD3A4, 0x55AE, 0xD3A5, 0x5718, 0xD3A6, 0x58C7, - 0xD3A7, 0x5F56, 0xD3A8, 0x65B7, 0xD3A9, 0x65E6, 0xD3AA, 0x6A80, - 0xD3AB, 0x6BB5, 0xD3AC, 0x6E4D, 0xD3AD, 0x77ED, 0xD3AE, 0x7AEF, - 0xD3AF, 0x7C1E, 0xD3B0, 0x7DDE, 0xD3B1, 0x86CB, 0xD3B2, 0x8892, - 0xD3B3, 0x9132, 0xD3B4, 0x935B, 0xD3B5, 0x64BB, 0xD3B6, 0x6FBE, - 0xD3B7, 0x737A, 0xD3B8, 0x75B8, 0xD3B9, 0x9054, 0xD3BA, 0x5556, - 0xD3BB, 0x574D, 0xD3BC, 0x61BA, 0xD3BD, 0x64D4, 0xD3BE, 0x66C7, - 0xD3BF, 0x6DE1, 0xD3C0, 0x6E5B, 0xD3C1, 0x6F6D, 0xD3C2, 0x6FB9, - 0xD3C3, 0x75F0, 0xD3C4, 0x8043, 0xD3C5, 0x81BD, 0xD3C6, 0x8541, - 0xD3C7, 0x8983, 0xD3C8, 0x8AC7, 0xD3C9, 0x8B5A, 0xD3CA, 0x931F, - 0xD3CB, 0x6C93, 0xD3CC, 0x7553, 0xD3CD, 0x7B54, 0xD3CE, 0x8E0F, - 0xD3CF, 0x905D, 0xD3D0, 0x5510, 0xD3D1, 0x5802, 0xD3D2, 0x5858, - 0xD3D3, 0x5E62, 0xD3D4, 0x6207, 0xD3D5, 0x649E, 0xD3D6, 0x68E0, - 0xD3D7, 0x7576, 0xD3D8, 0x7CD6, 0xD3D9, 0x87B3, 0xD3DA, 0x9EE8, - 0xD3DB, 0x4EE3, 0xD3DC, 0x5788, 0xD3DD, 0x576E, 0xD3DE, 0x5927, - 0xD3DF, 0x5C0D, 0xD3E0, 0x5CB1, 0xD3E1, 0x5E36, 0xD3E2, 0x5F85, - 0xD3E3, 0x6234, 0xD3E4, 0x64E1, 0xD3E5, 0x73B3, 0xD3E6, 0x81FA, - 0xD3E7, 0x888B, 0xD3E8, 0x8CB8, 0xD3E9, 0x968A, 0xD3EA, 0x9EDB, - 0xD3EB, 0x5B85, 0xD3EC, 0x5FB7, 0xD3ED, 0x60B3, 0xD3EE, 0x5012, - 0xD3EF, 0x5200, 0xD3F0, 0x5230, 0xD3F1, 0x5716, 0xD3F2, 0x5835, - 0xD3F3, 0x5857, 0xD3F4, 0x5C0E, 0xD3F5, 0x5C60, 0xD3F6, 0x5CF6, - 0xD3F7, 0x5D8B, 0xD3F8, 0x5EA6, 0xD3F9, 0x5F92, 0xD3FA, 0x60BC, - 0xD3FB, 0x6311, 0xD3FC, 0x6389, 0xD3FD, 0x6417, 0xD3FE, 0x6843, - 0xD4A1, 0x68F9, 0xD4A2, 0x6AC2, 0xD4A3, 0x6DD8, 0xD4A4, 0x6E21, - 0xD4A5, 0x6ED4, 0xD4A6, 0x6FE4, 0xD4A7, 0x71FE, 0xD4A8, 0x76DC, - 0xD4A9, 0x7779, 0xD4AA, 0x79B1, 0xD4AB, 0x7A3B, 0xD4AC, 0x8404, - 0xD4AD, 0x89A9, 0xD4AE, 0x8CED, 0xD4AF, 0x8DF3, 0xD4B0, 0x8E48, - 0xD4B1, 0x9003, 0xD4B2, 0x9014, 0xD4B3, 0x9053, 0xD4B4, 0x90FD, - 0xD4B5, 0x934D, 0xD4B6, 0x9676, 0xD4B7, 0x97DC, 0xD4B8, 0x6BD2, - 0xD4B9, 0x7006, 0xD4BA, 0x7258, 0xD4BB, 0x72A2, 0xD4BC, 0x7368, - 0xD4BD, 0x7763, 0xD4BE, 0x79BF, 0xD4BF, 0x7BE4, 0xD4C0, 0x7E9B, - 0xD4C1, 0x8B80, 0xD4C2, 0x58A9, 0xD4C3, 0x60C7, 0xD4C4, 0x6566, - 0xD4C5, 0x65FD, 0xD4C6, 0x66BE, 0xD4C7, 0x6C8C, 0xD4C8, 0x711E, - 0xD4C9, 0x71C9, 0xD4CA, 0x8C5A, 0xD4CB, 0x9813, 0xD4CC, 0x4E6D, - 0xD4CD, 0x7A81, 0xD4CE, 0x4EDD, 0xD4CF, 0x51AC, 0xD4D0, 0x51CD, - 0xD4D1, 0x52D5, 0xD4D2, 0x540C, 0xD4D3, 0x61A7, 0xD4D4, 0x6771, - 0xD4D5, 0x6850, 0xD4D6, 0x68DF, 0xD4D7, 0x6D1E, 0xD4D8, 0x6F7C, - 0xD4D9, 0x75BC, 0xD4DA, 0x77B3, 0xD4DB, 0x7AE5, 0xD4DC, 0x80F4, - 0xD4DD, 0x8463, 0xD4DE, 0x9285, 0xD4DF, 0x515C, 0xD4E0, 0x6597, - 0xD4E1, 0x675C, 0xD4E2, 0x6793, 0xD4E3, 0x75D8, 0xD4E4, 0x7AC7, - 0xD4E5, 0x8373, 0xD4E6, 0xF95A, 0xD4E7, 0x8C46, 0xD4E8, 0x9017, - 0xD4E9, 0x982D, 0xD4EA, 0x5C6F, 0xD4EB, 0x81C0, 0xD4EC, 0x829A, - 0xD4ED, 0x9041, 0xD4EE, 0x906F, 0xD4EF, 0x920D, 0xD4F0, 0x5F97, - 0xD4F1, 0x5D9D, 0xD4F2, 0x6A59, 0xD4F3, 0x71C8, 0xD4F4, 0x767B, - 0xD4F5, 0x7B49, 0xD4F6, 0x85E4, 0xD4F7, 0x8B04, 0xD4F8, 0x9127, - 0xD4F9, 0x9A30, 0xD4FA, 0x5587, 0xD4FB, 0x61F6, 0xD4FC, 0xF95B, - 0xD4FD, 0x7669, 0xD4FE, 0x7F85, 0xD5A1, 0x863F, 0xD5A2, 0x87BA, - 0xD5A3, 0x88F8, 0xD5A4, 0x908F, 0xD5A5, 0xF95C, 0xD5A6, 0x6D1B, - 0xD5A7, 0x70D9, 0xD5A8, 0x73DE, 0xD5A9, 0x7D61, 0xD5AA, 0x843D, - 0xD5AB, 0xF95D, 0xD5AC, 0x916A, 0xD5AD, 0x99F1, 0xD5AE, 0xF95E, - 0xD5AF, 0x4E82, 0xD5B0, 0x5375, 0xD5B1, 0x6B04, 0xD5B2, 0x6B12, - 0xD5B3, 0x703E, 0xD5B4, 0x721B, 0xD5B5, 0x862D, 0xD5B6, 0x9E1E, - 0xD5B7, 0x524C, 0xD5B8, 0x8FA3, 0xD5B9, 0x5D50, 0xD5BA, 0x64E5, - 0xD5BB, 0x652C, 0xD5BC, 0x6B16, 0xD5BD, 0x6FEB, 0xD5BE, 0x7C43, - 0xD5BF, 0x7E9C, 0xD5C0, 0x85CD, 0xD5C1, 0x8964, 0xD5C2, 0x89BD, - 0xD5C3, 0x62C9, 0xD5C4, 0x81D8, 0xD5C5, 0x881F, 0xD5C6, 0x5ECA, - 0xD5C7, 0x6717, 0xD5C8, 0x6D6A, 0xD5C9, 0x72FC, 0xD5CA, 0x7405, - 0xD5CB, 0x746F, 0xD5CC, 0x8782, 0xD5CD, 0x90DE, 0xD5CE, 0x4F86, - 0xD5CF, 0x5D0D, 0xD5D0, 0x5FA0, 0xD5D1, 0x840A, 0xD5D2, 0x51B7, - 0xD5D3, 0x63A0, 0xD5D4, 0x7565, 0xD5D5, 0x4EAE, 0xD5D6, 0x5006, - 0xD5D7, 0x5169, 0xD5D8, 0x51C9, 0xD5D9, 0x6881, 0xD5DA, 0x6A11, - 0xD5DB, 0x7CAE, 0xD5DC, 0x7CB1, 0xD5DD, 0x7CE7, 0xD5DE, 0x826F, - 0xD5DF, 0x8AD2, 0xD5E0, 0x8F1B, 0xD5E1, 0x91CF, 0xD5E2, 0x4FB6, - 0xD5E3, 0x5137, 0xD5E4, 0x52F5, 0xD5E5, 0x5442, 0xD5E6, 0x5EEC, - 0xD5E7, 0x616E, 0xD5E8, 0x623E, 0xD5E9, 0x65C5, 0xD5EA, 0x6ADA, - 0xD5EB, 0x6FFE, 0xD5EC, 0x792A, 0xD5ED, 0x85DC, 0xD5EE, 0x8823, - 0xD5EF, 0x95AD, 0xD5F0, 0x9A62, 0xD5F1, 0x9A6A, 0xD5F2, 0x9E97, - 0xD5F3, 0x9ECE, 0xD5F4, 0x529B, 0xD5F5, 0x66C6, 0xD5F6, 0x6B77, - 0xD5F7, 0x701D, 0xD5F8, 0x792B, 0xD5F9, 0x8F62, 0xD5FA, 0x9742, - 0xD5FB, 0x6190, 0xD5FC, 0x6200, 0xD5FD, 0x6523, 0xD5FE, 0x6F23, - 0xD6A1, 0x7149, 0xD6A2, 0x7489, 0xD6A3, 0x7DF4, 0xD6A4, 0x806F, - 0xD6A5, 0x84EE, 0xD6A6, 0x8F26, 0xD6A7, 0x9023, 0xD6A8, 0x934A, - 0xD6A9, 0x51BD, 0xD6AA, 0x5217, 0xD6AB, 0x52A3, 0xD6AC, 0x6D0C, - 0xD6AD, 0x70C8, 0xD6AE, 0x88C2, 0xD6AF, 0x5EC9, 0xD6B0, 0x6582, - 0xD6B1, 0x6BAE, 0xD6B2, 0x6FC2, 0xD6B3, 0x7C3E, 0xD6B4, 0x7375, - 0xD6B5, 0x4EE4, 0xD6B6, 0x4F36, 0xD6B7, 0x56F9, 0xD6B8, 0xF95F, - 0xD6B9, 0x5CBA, 0xD6BA, 0x5DBA, 0xD6BB, 0x601C, 0xD6BC, 0x73B2, - 0xD6BD, 0x7B2D, 0xD6BE, 0x7F9A, 0xD6BF, 0x7FCE, 0xD6C0, 0x8046, - 0xD6C1, 0x901E, 0xD6C2, 0x9234, 0xD6C3, 0x96F6, 0xD6C4, 0x9748, - 0xD6C5, 0x9818, 0xD6C6, 0x9F61, 0xD6C7, 0x4F8B, 0xD6C8, 0x6FA7, - 0xD6C9, 0x79AE, 0xD6CA, 0x91B4, 0xD6CB, 0x96B7, 0xD6CC, 0x52DE, - 0xD6CD, 0xF960, 0xD6CE, 0x6488, 0xD6CF, 0x64C4, 0xD6D0, 0x6AD3, - 0xD6D1, 0x6F5E, 0xD6D2, 0x7018, 0xD6D3, 0x7210, 0xD6D4, 0x76E7, - 0xD6D5, 0x8001, 0xD6D6, 0x8606, 0xD6D7, 0x865C, 0xD6D8, 0x8DEF, - 0xD6D9, 0x8F05, 0xD6DA, 0x9732, 0xD6DB, 0x9B6F, 0xD6DC, 0x9DFA, - 0xD6DD, 0x9E75, 0xD6DE, 0x788C, 0xD6DF, 0x797F, 0xD6E0, 0x7DA0, - 0xD6E1, 0x83C9, 0xD6E2, 0x9304, 0xD6E3, 0x9E7F, 0xD6E4, 0x9E93, - 0xD6E5, 0x8AD6, 0xD6E6, 0x58DF, 0xD6E7, 0x5F04, 0xD6E8, 0x6727, - 0xD6E9, 0x7027, 0xD6EA, 0x74CF, 0xD6EB, 0x7C60, 0xD6EC, 0x807E, - 0xD6ED, 0x5121, 0xD6EE, 0x7028, 0xD6EF, 0x7262, 0xD6F0, 0x78CA, - 0xD6F1, 0x8CC2, 0xD6F2, 0x8CDA, 0xD6F3, 0x8CF4, 0xD6F4, 0x96F7, - 0xD6F5, 0x4E86, 0xD6F6, 0x50DA, 0xD6F7, 0x5BEE, 0xD6F8, 0x5ED6, - 0xD6F9, 0x6599, 0xD6FA, 0x71CE, 0xD6FB, 0x7642, 0xD6FC, 0x77AD, - 0xD6FD, 0x804A, 0xD6FE, 0x84FC, 0xD7A1, 0x907C, 0xD7A2, 0x9B27, - 0xD7A3, 0x9F8D, 0xD7A4, 0x58D8, 0xD7A5, 0x5A41, 0xD7A6, 0x5C62, - 0xD7A7, 0x6A13, 0xD7A8, 0x6DDA, 0xD7A9, 0x6F0F, 0xD7AA, 0x763B, - 0xD7AB, 0x7D2F, 0xD7AC, 0x7E37, 0xD7AD, 0x851E, 0xD7AE, 0x8938, - 0xD7AF, 0x93E4, 0xD7B0, 0x964B, 0xD7B1, 0x5289, 0xD7B2, 0x65D2, - 0xD7B3, 0x67F3, 0xD7B4, 0x69B4, 0xD7B5, 0x6D41, 0xD7B6, 0x6E9C, - 0xD7B7, 0x700F, 0xD7B8, 0x7409, 0xD7B9, 0x7460, 0xD7BA, 0x7559, - 0xD7BB, 0x7624, 0xD7BC, 0x786B, 0xD7BD, 0x8B2C, 0xD7BE, 0x985E, - 0xD7BF, 0x516D, 0xD7C0, 0x622E, 0xD7C1, 0x9678, 0xD7C2, 0x4F96, - 0xD7C3, 0x502B, 0xD7C4, 0x5D19, 0xD7C5, 0x6DEA, 0xD7C6, 0x7DB8, - 0xD7C7, 0x8F2A, 0xD7C8, 0x5F8B, 0xD7C9, 0x6144, 0xD7CA, 0x6817, - 0xD7CB, 0xF961, 0xD7CC, 0x9686, 0xD7CD, 0x52D2, 0xD7CE, 0x808B, - 0xD7CF, 0x51DC, 0xD7D0, 0x51CC, 0xD7D1, 0x695E, 0xD7D2, 0x7A1C, - 0xD7D3, 0x7DBE, 0xD7D4, 0x83F1, 0xD7D5, 0x9675, 0xD7D6, 0x4FDA, - 0xD7D7, 0x5229, 0xD7D8, 0x5398, 0xD7D9, 0x540F, 0xD7DA, 0x550E, - 0xD7DB, 0x5C65, 0xD7DC, 0x60A7, 0xD7DD, 0x674E, 0xD7DE, 0x68A8, - 0xD7DF, 0x6D6C, 0xD7E0, 0x7281, 0xD7E1, 0x72F8, 0xD7E2, 0x7406, - 0xD7E3, 0x7483, 0xD7E4, 0xF962, 0xD7E5, 0x75E2, 0xD7E6, 0x7C6C, - 0xD7E7, 0x7F79, 0xD7E8, 0x7FB8, 0xD7E9, 0x8389, 0xD7EA, 0x88CF, - 0xD7EB, 0x88E1, 0xD7EC, 0x91CC, 0xD7ED, 0x91D0, 0xD7EE, 0x96E2, - 0xD7EF, 0x9BC9, 0xD7F0, 0x541D, 0xD7F1, 0x6F7E, 0xD7F2, 0x71D0, - 0xD7F3, 0x7498, 0xD7F4, 0x85FA, 0xD7F5, 0x8EAA, 0xD7F6, 0x96A3, - 0xD7F7, 0x9C57, 0xD7F8, 0x9E9F, 0xD7F9, 0x6797, 0xD7FA, 0x6DCB, - 0xD7FB, 0x7433, 0xD7FC, 0x81E8, 0xD7FD, 0x9716, 0xD7FE, 0x782C, - 0xD8A1, 0x7ACB, 0xD8A2, 0x7B20, 0xD8A3, 0x7C92, 0xD8A4, 0x6469, - 0xD8A5, 0x746A, 0xD8A6, 0x75F2, 0xD8A7, 0x78BC, 0xD8A8, 0x78E8, - 0xD8A9, 0x99AC, 0xD8AA, 0x9B54, 0xD8AB, 0x9EBB, 0xD8AC, 0x5BDE, - 0xD8AD, 0x5E55, 0xD8AE, 0x6F20, 0xD8AF, 0x819C, 0xD8B0, 0x83AB, - 0xD8B1, 0x9088, 0xD8B2, 0x4E07, 0xD8B3, 0x534D, 0xD8B4, 0x5A29, - 0xD8B5, 0x5DD2, 0xD8B6, 0x5F4E, 0xD8B7, 0x6162, 0xD8B8, 0x633D, - 0xD8B9, 0x6669, 0xD8BA, 0x66FC, 0xD8BB, 0x6EFF, 0xD8BC, 0x6F2B, - 0xD8BD, 0x7063, 0xD8BE, 0x779E, 0xD8BF, 0x842C, 0xD8C0, 0x8513, - 0xD8C1, 0x883B, 0xD8C2, 0x8F13, 0xD8C3, 0x9945, 0xD8C4, 0x9C3B, - 0xD8C5, 0x551C, 0xD8C6, 0x62B9, 0xD8C7, 0x672B, 0xD8C8, 0x6CAB, - 0xD8C9, 0x8309, 0xD8CA, 0x896A, 0xD8CB, 0x977A, 0xD8CC, 0x4EA1, - 0xD8CD, 0x5984, 0xD8CE, 0x5FD8, 0xD8CF, 0x5FD9, 0xD8D0, 0x671B, - 0xD8D1, 0x7DB2, 0xD8D2, 0x7F54, 0xD8D3, 0x8292, 0xD8D4, 0x832B, - 0xD8D5, 0x83BD, 0xD8D6, 0x8F1E, 0xD8D7, 0x9099, 0xD8D8, 0x57CB, - 0xD8D9, 0x59B9, 0xD8DA, 0x5A92, 0xD8DB, 0x5BD0, 0xD8DC, 0x6627, - 0xD8DD, 0x679A, 0xD8DE, 0x6885, 0xD8DF, 0x6BCF, 0xD8E0, 0x7164, - 0xD8E1, 0x7F75, 0xD8E2, 0x8CB7, 0xD8E3, 0x8CE3, 0xD8E4, 0x9081, - 0xD8E5, 0x9B45, 0xD8E6, 0x8108, 0xD8E7, 0x8C8A, 0xD8E8, 0x964C, - 0xD8E9, 0x9A40, 0xD8EA, 0x9EA5, 0xD8EB, 0x5B5F, 0xD8EC, 0x6C13, - 0xD8ED, 0x731B, 0xD8EE, 0x76F2, 0xD8EF, 0x76DF, 0xD8F0, 0x840C, - 0xD8F1, 0x51AA, 0xD8F2, 0x8993, 0xD8F3, 0x514D, 0xD8F4, 0x5195, - 0xD8F5, 0x52C9, 0xD8F6, 0x68C9, 0xD8F7, 0x6C94, 0xD8F8, 0x7704, - 0xD8F9, 0x7720, 0xD8FA, 0x7DBF, 0xD8FB, 0x7DEC, 0xD8FC, 0x9762, - 0xD8FD, 0x9EB5, 0xD8FE, 0x6EC5, 0xD9A1, 0x8511, 0xD9A2, 0x51A5, - 0xD9A3, 0x540D, 0xD9A4, 0x547D, 0xD9A5, 0x660E, 0xD9A6, 0x669D, - 0xD9A7, 0x6927, 0xD9A8, 0x6E9F, 0xD9A9, 0x76BF, 0xD9AA, 0x7791, - 0xD9AB, 0x8317, 0xD9AC, 0x84C2, 0xD9AD, 0x879F, 0xD9AE, 0x9169, - 0xD9AF, 0x9298, 0xD9B0, 0x9CF4, 0xD9B1, 0x8882, 0xD9B2, 0x4FAE, - 0xD9B3, 0x5192, 0xD9B4, 0x52DF, 0xD9B5, 0x59C6, 0xD9B6, 0x5E3D, - 0xD9B7, 0x6155, 0xD9B8, 0x6478, 0xD9B9, 0x6479, 0xD9BA, 0x66AE, - 0xD9BB, 0x67D0, 0xD9BC, 0x6A21, 0xD9BD, 0x6BCD, 0xD9BE, 0x6BDB, - 0xD9BF, 0x725F, 0xD9C0, 0x7261, 0xD9C1, 0x7441, 0xD9C2, 0x7738, - 0xD9C3, 0x77DB, 0xD9C4, 0x8017, 0xD9C5, 0x82BC, 0xD9C6, 0x8305, - 0xD9C7, 0x8B00, 0xD9C8, 0x8B28, 0xD9C9, 0x8C8C, 0xD9CA, 0x6728, - 0xD9CB, 0x6C90, 0xD9CC, 0x7267, 0xD9CD, 0x76EE, 0xD9CE, 0x7766, - 0xD9CF, 0x7A46, 0xD9D0, 0x9DA9, 0xD9D1, 0x6B7F, 0xD9D2, 0x6C92, - 0xD9D3, 0x5922, 0xD9D4, 0x6726, 0xD9D5, 0x8499, 0xD9D6, 0x536F, - 0xD9D7, 0x5893, 0xD9D8, 0x5999, 0xD9D9, 0x5EDF, 0xD9DA, 0x63CF, - 0xD9DB, 0x6634, 0xD9DC, 0x6773, 0xD9DD, 0x6E3A, 0xD9DE, 0x732B, - 0xD9DF, 0x7AD7, 0xD9E0, 0x82D7, 0xD9E1, 0x9328, 0xD9E2, 0x52D9, - 0xD9E3, 0x5DEB, 0xD9E4, 0x61AE, 0xD9E5, 0x61CB, 0xD9E6, 0x620A, - 0xD9E7, 0x62C7, 0xD9E8, 0x64AB, 0xD9E9, 0x65E0, 0xD9EA, 0x6959, - 0xD9EB, 0x6B66, 0xD9EC, 0x6BCB, 0xD9ED, 0x7121, 0xD9EE, 0x73F7, - 0xD9EF, 0x755D, 0xD9F0, 0x7E46, 0xD9F1, 0x821E, 0xD9F2, 0x8302, - 0xD9F3, 0x856A, 0xD9F4, 0x8AA3, 0xD9F5, 0x8CBF, 0xD9F6, 0x9727, - 0xD9F7, 0x9D61, 0xD9F8, 0x58A8, 0xD9F9, 0x9ED8, 0xD9FA, 0x5011, - 0xD9FB, 0x520E, 0xD9FC, 0x543B, 0xD9FD, 0x554F, 0xD9FE, 0x6587, - 0xDAA1, 0x6C76, 0xDAA2, 0x7D0A, 0xDAA3, 0x7D0B, 0xDAA4, 0x805E, - 0xDAA5, 0x868A, 0xDAA6, 0x9580, 0xDAA7, 0x96EF, 0xDAA8, 0x52FF, - 0xDAA9, 0x6C95, 0xDAAA, 0x7269, 0xDAAB, 0x5473, 0xDAAC, 0x5A9A, - 0xDAAD, 0x5C3E, 0xDAAE, 0x5D4B, 0xDAAF, 0x5F4C, 0xDAB0, 0x5FAE, - 0xDAB1, 0x672A, 0xDAB2, 0x68B6, 0xDAB3, 0x6963, 0xDAB4, 0x6E3C, - 0xDAB5, 0x6E44, 0xDAB6, 0x7709, 0xDAB7, 0x7C73, 0xDAB8, 0x7F8E, - 0xDAB9, 0x8587, 0xDABA, 0x8B0E, 0xDABB, 0x8FF7, 0xDABC, 0x9761, - 0xDABD, 0x9EF4, 0xDABE, 0x5CB7, 0xDABF, 0x60B6, 0xDAC0, 0x610D, - 0xDAC1, 0x61AB, 0xDAC2, 0x654F, 0xDAC3, 0x65FB, 0xDAC4, 0x65FC, - 0xDAC5, 0x6C11, 0xDAC6, 0x6CEF, 0xDAC7, 0x739F, 0xDAC8, 0x73C9, - 0xDAC9, 0x7DE1, 0xDACA, 0x9594, 0xDACB, 0x5BC6, 0xDACC, 0x871C, - 0xDACD, 0x8B10, 0xDACE, 0x525D, 0xDACF, 0x535A, 0xDAD0, 0x62CD, - 0xDAD1, 0x640F, 0xDAD2, 0x64B2, 0xDAD3, 0x6734, 0xDAD4, 0x6A38, - 0xDAD5, 0x6CCA, 0xDAD6, 0x73C0, 0xDAD7, 0x749E, 0xDAD8, 0x7B94, - 0xDAD9, 0x7C95, 0xDADA, 0x7E1B, 0xDADB, 0x818A, 0xDADC, 0x8236, - 0xDADD, 0x8584, 0xDADE, 0x8FEB, 0xDADF, 0x96F9, 0xDAE0, 0x99C1, - 0xDAE1, 0x4F34, 0xDAE2, 0x534A, 0xDAE3, 0x53CD, 0xDAE4, 0x53DB, - 0xDAE5, 0x62CC, 0xDAE6, 0x642C, 0xDAE7, 0x6500, 0xDAE8, 0x6591, - 0xDAE9, 0x69C3, 0xDAEA, 0x6CEE, 0xDAEB, 0x6F58, 0xDAEC, 0x73ED, - 0xDAED, 0x7554, 0xDAEE, 0x7622, 0xDAEF, 0x76E4, 0xDAF0, 0x76FC, - 0xDAF1, 0x78D0, 0xDAF2, 0x78FB, 0xDAF3, 0x792C, 0xDAF4, 0x7D46, - 0xDAF5, 0x822C, 0xDAF6, 0x87E0, 0xDAF7, 0x8FD4, 0xDAF8, 0x9812, - 0xDAF9, 0x98EF, 0xDAFA, 0x52C3, 0xDAFB, 0x62D4, 0xDAFC, 0x64A5, - 0xDAFD, 0x6E24, 0xDAFE, 0x6F51, 0xDBA1, 0x767C, 0xDBA2, 0x8DCB, - 0xDBA3, 0x91B1, 0xDBA4, 0x9262, 0xDBA5, 0x9AEE, 0xDBA6, 0x9B43, - 0xDBA7, 0x5023, 0xDBA8, 0x508D, 0xDBA9, 0x574A, 0xDBAA, 0x59A8, - 0xDBAB, 0x5C28, 0xDBAC, 0x5E47, 0xDBAD, 0x5F77, 0xDBAE, 0x623F, - 0xDBAF, 0x653E, 0xDBB0, 0x65B9, 0xDBB1, 0x65C1, 0xDBB2, 0x6609, - 0xDBB3, 0x678B, 0xDBB4, 0x699C, 0xDBB5, 0x6EC2, 0xDBB6, 0x78C5, - 0xDBB7, 0x7D21, 0xDBB8, 0x80AA, 0xDBB9, 0x8180, 0xDBBA, 0x822B, - 0xDBBB, 0x82B3, 0xDBBC, 0x84A1, 0xDBBD, 0x868C, 0xDBBE, 0x8A2A, - 0xDBBF, 0x8B17, 0xDBC0, 0x90A6, 0xDBC1, 0x9632, 0xDBC2, 0x9F90, - 0xDBC3, 0x500D, 0xDBC4, 0x4FF3, 0xDBC5, 0xF963, 0xDBC6, 0x57F9, - 0xDBC7, 0x5F98, 0xDBC8, 0x62DC, 0xDBC9, 0x6392, 0xDBCA, 0x676F, - 0xDBCB, 0x6E43, 0xDBCC, 0x7119, 0xDBCD, 0x76C3, 0xDBCE, 0x80CC, - 0xDBCF, 0x80DA, 0xDBD0, 0x88F4, 0xDBD1, 0x88F5, 0xDBD2, 0x8919, - 0xDBD3, 0x8CE0, 0xDBD4, 0x8F29, 0xDBD5, 0x914D, 0xDBD6, 0x966A, - 0xDBD7, 0x4F2F, 0xDBD8, 0x4F70, 0xDBD9, 0x5E1B, 0xDBDA, 0x67CF, - 0xDBDB, 0x6822, 0xDBDC, 0x767D, 0xDBDD, 0x767E, 0xDBDE, 0x9B44, - 0xDBDF, 0x5E61, 0xDBE0, 0x6A0A, 0xDBE1, 0x7169, 0xDBE2, 0x71D4, - 0xDBE3, 0x756A, 0xDBE4, 0xF964, 0xDBE5, 0x7E41, 0xDBE6, 0x8543, - 0xDBE7, 0x85E9, 0xDBE8, 0x98DC, 0xDBE9, 0x4F10, 0xDBEA, 0x7B4F, - 0xDBEB, 0x7F70, 0xDBEC, 0x95A5, 0xDBED, 0x51E1, 0xDBEE, 0x5E06, - 0xDBEF, 0x68B5, 0xDBF0, 0x6C3E, 0xDBF1, 0x6C4E, 0xDBF2, 0x6CDB, - 0xDBF3, 0x72AF, 0xDBF4, 0x7BC4, 0xDBF5, 0x8303, 0xDBF6, 0x6CD5, - 0xDBF7, 0x743A, 0xDBF8, 0x50FB, 0xDBF9, 0x5288, 0xDBFA, 0x58C1, - 0xDBFB, 0x64D8, 0xDBFC, 0x6A97, 0xDBFD, 0x74A7, 0xDBFE, 0x7656, - 0xDCA1, 0x78A7, 0xDCA2, 0x8617, 0xDCA3, 0x95E2, 0xDCA4, 0x9739, - 0xDCA5, 0xF965, 0xDCA6, 0x535E, 0xDCA7, 0x5F01, 0xDCA8, 0x8B8A, - 0xDCA9, 0x8FA8, 0xDCAA, 0x8FAF, 0xDCAB, 0x908A, 0xDCAC, 0x5225, - 0xDCAD, 0x77A5, 0xDCAE, 0x9C49, 0xDCAF, 0x9F08, 0xDCB0, 0x4E19, - 0xDCB1, 0x5002, 0xDCB2, 0x5175, 0xDCB3, 0x5C5B, 0xDCB4, 0x5E77, - 0xDCB5, 0x661E, 0xDCB6, 0x663A, 0xDCB7, 0x67C4, 0xDCB8, 0x68C5, - 0xDCB9, 0x70B3, 0xDCBA, 0x7501, 0xDCBB, 0x75C5, 0xDCBC, 0x79C9, - 0xDCBD, 0x7ADD, 0xDCBE, 0x8F27, 0xDCBF, 0x9920, 0xDCC0, 0x9A08, - 0xDCC1, 0x4FDD, 0xDCC2, 0x5821, 0xDCC3, 0x5831, 0xDCC4, 0x5BF6, - 0xDCC5, 0x666E, 0xDCC6, 0x6B65, 0xDCC7, 0x6D11, 0xDCC8, 0x6E7A, - 0xDCC9, 0x6F7D, 0xDCCA, 0x73E4, 0xDCCB, 0x752B, 0xDCCC, 0x83E9, - 0xDCCD, 0x88DC, 0xDCCE, 0x8913, 0xDCCF, 0x8B5C, 0xDCD0, 0x8F14, - 0xDCD1, 0x4F0F, 0xDCD2, 0x50D5, 0xDCD3, 0x5310, 0xDCD4, 0x535C, - 0xDCD5, 0x5B93, 0xDCD6, 0x5FA9, 0xDCD7, 0x670D, 0xDCD8, 0x798F, - 0xDCD9, 0x8179, 0xDCDA, 0x832F, 0xDCDB, 0x8514, 0xDCDC, 0x8907, - 0xDCDD, 0x8986, 0xDCDE, 0x8F39, 0xDCDF, 0x8F3B, 0xDCE0, 0x99A5, - 0xDCE1, 0x9C12, 0xDCE2, 0x672C, 0xDCE3, 0x4E76, 0xDCE4, 0x4FF8, - 0xDCE5, 0x5949, 0xDCE6, 0x5C01, 0xDCE7, 0x5CEF, 0xDCE8, 0x5CF0, - 0xDCE9, 0x6367, 0xDCEA, 0x68D2, 0xDCEB, 0x70FD, 0xDCEC, 0x71A2, - 0xDCED, 0x742B, 0xDCEE, 0x7E2B, 0xDCEF, 0x84EC, 0xDCF0, 0x8702, - 0xDCF1, 0x9022, 0xDCF2, 0x92D2, 0xDCF3, 0x9CF3, 0xDCF4, 0x4E0D, - 0xDCF5, 0x4ED8, 0xDCF6, 0x4FEF, 0xDCF7, 0x5085, 0xDCF8, 0x5256, - 0xDCF9, 0x526F, 0xDCFA, 0x5426, 0xDCFB, 0x5490, 0xDCFC, 0x57E0, - 0xDCFD, 0x592B, 0xDCFE, 0x5A66, 0xDDA1, 0x5B5A, 0xDDA2, 0x5B75, - 0xDDA3, 0x5BCC, 0xDDA4, 0x5E9C, 0xDDA5, 0xF966, 0xDDA6, 0x6276, - 0xDDA7, 0x6577, 0xDDA8, 0x65A7, 0xDDA9, 0x6D6E, 0xDDAA, 0x6EA5, - 0xDDAB, 0x7236, 0xDDAC, 0x7B26, 0xDDAD, 0x7C3F, 0xDDAE, 0x7F36, - 0xDDAF, 0x8150, 0xDDB0, 0x8151, 0xDDB1, 0x819A, 0xDDB2, 0x8240, - 0xDDB3, 0x8299, 0xDDB4, 0x83A9, 0xDDB5, 0x8A03, 0xDDB6, 0x8CA0, - 0xDDB7, 0x8CE6, 0xDDB8, 0x8CFB, 0xDDB9, 0x8D74, 0xDDBA, 0x8DBA, - 0xDDBB, 0x90E8, 0xDDBC, 0x91DC, 0xDDBD, 0x961C, 0xDDBE, 0x9644, - 0xDDBF, 0x99D9, 0xDDC0, 0x9CE7, 0xDDC1, 0x5317, 0xDDC2, 0x5206, - 0xDDC3, 0x5429, 0xDDC4, 0x5674, 0xDDC5, 0x58B3, 0xDDC6, 0x5954, - 0xDDC7, 0x596E, 0xDDC8, 0x5FFF, 0xDDC9, 0x61A4, 0xDDCA, 0x626E, - 0xDDCB, 0x6610, 0xDDCC, 0x6C7E, 0xDDCD, 0x711A, 0xDDCE, 0x76C6, - 0xDDCF, 0x7C89, 0xDDD0, 0x7CDE, 0xDDD1, 0x7D1B, 0xDDD2, 0x82AC, - 0xDDD3, 0x8CC1, 0xDDD4, 0x96F0, 0xDDD5, 0xF967, 0xDDD6, 0x4F5B, - 0xDDD7, 0x5F17, 0xDDD8, 0x5F7F, 0xDDD9, 0x62C2, 0xDDDA, 0x5D29, - 0xDDDB, 0x670B, 0xDDDC, 0x68DA, 0xDDDD, 0x787C, 0xDDDE, 0x7E43, - 0xDDDF, 0x9D6C, 0xDDE0, 0x4E15, 0xDDE1, 0x5099, 0xDDE2, 0x5315, - 0xDDE3, 0x532A, 0xDDE4, 0x5351, 0xDDE5, 0x5983, 0xDDE6, 0x5A62, - 0xDDE7, 0x5E87, 0xDDE8, 0x60B2, 0xDDE9, 0x618A, 0xDDEA, 0x6249, - 0xDDEB, 0x6279, 0xDDEC, 0x6590, 0xDDED, 0x6787, 0xDDEE, 0x69A7, - 0xDDEF, 0x6BD4, 0xDDF0, 0x6BD6, 0xDDF1, 0x6BD7, 0xDDF2, 0x6BD8, - 0xDDF3, 0x6CB8, 0xDDF4, 0xF968, 0xDDF5, 0x7435, 0xDDF6, 0x75FA, - 0xDDF7, 0x7812, 0xDDF8, 0x7891, 0xDDF9, 0x79D5, 0xDDFA, 0x79D8, - 0xDDFB, 0x7C83, 0xDDFC, 0x7DCB, 0xDDFD, 0x7FE1, 0xDDFE, 0x80A5, - 0xDEA1, 0x813E, 0xDEA2, 0x81C2, 0xDEA3, 0x83F2, 0xDEA4, 0x871A, - 0xDEA5, 0x88E8, 0xDEA6, 0x8AB9, 0xDEA7, 0x8B6C, 0xDEA8, 0x8CBB, - 0xDEA9, 0x9119, 0xDEAA, 0x975E, 0xDEAB, 0x98DB, 0xDEAC, 0x9F3B, - 0xDEAD, 0x56AC, 0xDEAE, 0x5B2A, 0xDEAF, 0x5F6C, 0xDEB0, 0x658C, - 0xDEB1, 0x6AB3, 0xDEB2, 0x6BAF, 0xDEB3, 0x6D5C, 0xDEB4, 0x6FF1, - 0xDEB5, 0x7015, 0xDEB6, 0x725D, 0xDEB7, 0x73AD, 0xDEB8, 0x8CA7, - 0xDEB9, 0x8CD3, 0xDEBA, 0x983B, 0xDEBB, 0x6191, 0xDEBC, 0x6C37, - 0xDEBD, 0x8058, 0xDEBE, 0x9A01, 0xDEBF, 0x4E4D, 0xDEC0, 0x4E8B, - 0xDEC1, 0x4E9B, 0xDEC2, 0x4ED5, 0xDEC3, 0x4F3A, 0xDEC4, 0x4F3C, - 0xDEC5, 0x4F7F, 0xDEC6, 0x4FDF, 0xDEC7, 0x50FF, 0xDEC8, 0x53F2, - 0xDEC9, 0x53F8, 0xDECA, 0x5506, 0xDECB, 0x55E3, 0xDECC, 0x56DB, - 0xDECD, 0x58EB, 0xDECE, 0x5962, 0xDECF, 0x5A11, 0xDED0, 0x5BEB, - 0xDED1, 0x5BFA, 0xDED2, 0x5C04, 0xDED3, 0x5DF3, 0xDED4, 0x5E2B, - 0xDED5, 0x5F99, 0xDED6, 0x601D, 0xDED7, 0x6368, 0xDED8, 0x659C, - 0xDED9, 0x65AF, 0xDEDA, 0x67F6, 0xDEDB, 0x67FB, 0xDEDC, 0x68AD, - 0xDEDD, 0x6B7B, 0xDEDE, 0x6C99, 0xDEDF, 0x6CD7, 0xDEE0, 0x6E23, - 0xDEE1, 0x7009, 0xDEE2, 0x7345, 0xDEE3, 0x7802, 0xDEE4, 0x793E, - 0xDEE5, 0x7940, 0xDEE6, 0x7960, 0xDEE7, 0x79C1, 0xDEE8, 0x7BE9, - 0xDEE9, 0x7D17, 0xDEEA, 0x7D72, 0xDEEB, 0x8086, 0xDEEC, 0x820D, - 0xDEED, 0x838E, 0xDEEE, 0x84D1, 0xDEEF, 0x86C7, 0xDEF0, 0x88DF, - 0xDEF1, 0x8A50, 0xDEF2, 0x8A5E, 0xDEF3, 0x8B1D, 0xDEF4, 0x8CDC, - 0xDEF5, 0x8D66, 0xDEF6, 0x8FAD, 0xDEF7, 0x90AA, 0xDEF8, 0x98FC, - 0xDEF9, 0x99DF, 0xDEFA, 0x9E9D, 0xDEFB, 0x524A, 0xDEFC, 0xF969, - 0xDEFD, 0x6714, 0xDEFE, 0xF96A, 0xDFA1, 0x5098, 0xDFA2, 0x522A, - 0xDFA3, 0x5C71, 0xDFA4, 0x6563, 0xDFA5, 0x6C55, 0xDFA6, 0x73CA, - 0xDFA7, 0x7523, 0xDFA8, 0x759D, 0xDFA9, 0x7B97, 0xDFAA, 0x849C, - 0xDFAB, 0x9178, 0xDFAC, 0x9730, 0xDFAD, 0x4E77, 0xDFAE, 0x6492, - 0xDFAF, 0x6BBA, 0xDFB0, 0x715E, 0xDFB1, 0x85A9, 0xDFB2, 0x4E09, - 0xDFB3, 0xF96B, 0xDFB4, 0x6749, 0xDFB5, 0x68EE, 0xDFB6, 0x6E17, - 0xDFB7, 0x829F, 0xDFB8, 0x8518, 0xDFB9, 0x886B, 0xDFBA, 0x63F7, - 0xDFBB, 0x6F81, 0xDFBC, 0x9212, 0xDFBD, 0x98AF, 0xDFBE, 0x4E0A, - 0xDFBF, 0x50B7, 0xDFC0, 0x50CF, 0xDFC1, 0x511F, 0xDFC2, 0x5546, - 0xDFC3, 0x55AA, 0xDFC4, 0x5617, 0xDFC5, 0x5B40, 0xDFC6, 0x5C19, - 0xDFC7, 0x5CE0, 0xDFC8, 0x5E38, 0xDFC9, 0x5E8A, 0xDFCA, 0x5EA0, - 0xDFCB, 0x5EC2, 0xDFCC, 0x60F3, 0xDFCD, 0x6851, 0xDFCE, 0x6A61, - 0xDFCF, 0x6E58, 0xDFD0, 0x723D, 0xDFD1, 0x7240, 0xDFD2, 0x72C0, - 0xDFD3, 0x76F8, 0xDFD4, 0x7965, 0xDFD5, 0x7BB1, 0xDFD6, 0x7FD4, - 0xDFD7, 0x88F3, 0xDFD8, 0x89F4, 0xDFD9, 0x8A73, 0xDFDA, 0x8C61, - 0xDFDB, 0x8CDE, 0xDFDC, 0x971C, 0xDFDD, 0x585E, 0xDFDE, 0x74BD, - 0xDFDF, 0x8CFD, 0xDFE0, 0x55C7, 0xDFE1, 0xF96C, 0xDFE2, 0x7A61, - 0xDFE3, 0x7D22, 0xDFE4, 0x8272, 0xDFE5, 0x7272, 0xDFE6, 0x751F, - 0xDFE7, 0x7525, 0xDFE8, 0xF96D, 0xDFE9, 0x7B19, 0xDFEA, 0x5885, - 0xDFEB, 0x58FB, 0xDFEC, 0x5DBC, 0xDFED, 0x5E8F, 0xDFEE, 0x5EB6, - 0xDFEF, 0x5F90, 0xDFF0, 0x6055, 0xDFF1, 0x6292, 0xDFF2, 0x637F, - 0xDFF3, 0x654D, 0xDFF4, 0x6691, 0xDFF5, 0x66D9, 0xDFF6, 0x66F8, - 0xDFF7, 0x6816, 0xDFF8, 0x68F2, 0xDFF9, 0x7280, 0xDFFA, 0x745E, - 0xDFFB, 0x7B6E, 0xDFFC, 0x7D6E, 0xDFFD, 0x7DD6, 0xDFFE, 0x7F72, - 0xE0A1, 0x80E5, 0xE0A2, 0x8212, 0xE0A3, 0x85AF, 0xE0A4, 0x897F, - 0xE0A5, 0x8A93, 0xE0A6, 0x901D, 0xE0A7, 0x92E4, 0xE0A8, 0x9ECD, - 0xE0A9, 0x9F20, 0xE0AA, 0x5915, 0xE0AB, 0x596D, 0xE0AC, 0x5E2D, - 0xE0AD, 0x60DC, 0xE0AE, 0x6614, 0xE0AF, 0x6673, 0xE0B0, 0x6790, - 0xE0B1, 0x6C50, 0xE0B2, 0x6DC5, 0xE0B3, 0x6F5F, 0xE0B4, 0x77F3, - 0xE0B5, 0x78A9, 0xE0B6, 0x84C6, 0xE0B7, 0x91CB, 0xE0B8, 0x932B, - 0xE0B9, 0x4ED9, 0xE0BA, 0x50CA, 0xE0BB, 0x5148, 0xE0BC, 0x5584, - 0xE0BD, 0x5B0B, 0xE0BE, 0x5BA3, 0xE0BF, 0x6247, 0xE0C0, 0x657E, - 0xE0C1, 0x65CB, 0xE0C2, 0x6E32, 0xE0C3, 0x717D, 0xE0C4, 0x7401, - 0xE0C5, 0x7444, 0xE0C6, 0x7487, 0xE0C7, 0x74BF, 0xE0C8, 0x766C, - 0xE0C9, 0x79AA, 0xE0CA, 0x7DDA, 0xE0CB, 0x7E55, 0xE0CC, 0x7FA8, - 0xE0CD, 0x817A, 0xE0CE, 0x81B3, 0xE0CF, 0x8239, 0xE0D0, 0x861A, - 0xE0D1, 0x87EC, 0xE0D2, 0x8A75, 0xE0D3, 0x8DE3, 0xE0D4, 0x9078, - 0xE0D5, 0x9291, 0xE0D6, 0x9425, 0xE0D7, 0x994D, 0xE0D8, 0x9BAE, - 0xE0D9, 0x5368, 0xE0DA, 0x5C51, 0xE0DB, 0x6954, 0xE0DC, 0x6CC4, - 0xE0DD, 0x6D29, 0xE0DE, 0x6E2B, 0xE0DF, 0x820C, 0xE0E0, 0x859B, - 0xE0E1, 0x893B, 0xE0E2, 0x8A2D, 0xE0E3, 0x8AAA, 0xE0E4, 0x96EA, - 0xE0E5, 0x9F67, 0xE0E6, 0x5261, 0xE0E7, 0x66B9, 0xE0E8, 0x6BB2, - 0xE0E9, 0x7E96, 0xE0EA, 0x87FE, 0xE0EB, 0x8D0D, 0xE0EC, 0x9583, - 0xE0ED, 0x965D, 0xE0EE, 0x651D, 0xE0EF, 0x6D89, 0xE0F0, 0x71EE, - 0xE0F1, 0xF96E, 0xE0F2, 0x57CE, 0xE0F3, 0x59D3, 0xE0F4, 0x5BAC, - 0xE0F5, 0x6027, 0xE0F6, 0x60FA, 0xE0F7, 0x6210, 0xE0F8, 0x661F, - 0xE0F9, 0x665F, 0xE0FA, 0x7329, 0xE0FB, 0x73F9, 0xE0FC, 0x76DB, - 0xE0FD, 0x7701, 0xE0FE, 0x7B6C, 0xE1A1, 0x8056, 0xE1A2, 0x8072, - 0xE1A3, 0x8165, 0xE1A4, 0x8AA0, 0xE1A5, 0x9192, 0xE1A6, 0x4E16, - 0xE1A7, 0x52E2, 0xE1A8, 0x6B72, 0xE1A9, 0x6D17, 0xE1AA, 0x7A05, - 0xE1AB, 0x7B39, 0xE1AC, 0x7D30, 0xE1AD, 0xF96F, 0xE1AE, 0x8CB0, - 0xE1AF, 0x53EC, 0xE1B0, 0x562F, 0xE1B1, 0x5851, 0xE1B2, 0x5BB5, - 0xE1B3, 0x5C0F, 0xE1B4, 0x5C11, 0xE1B5, 0x5DE2, 0xE1B6, 0x6240, - 0xE1B7, 0x6383, 0xE1B8, 0x6414, 0xE1B9, 0x662D, 0xE1BA, 0x68B3, - 0xE1BB, 0x6CBC, 0xE1BC, 0x6D88, 0xE1BD, 0x6EAF, 0xE1BE, 0x701F, - 0xE1BF, 0x70A4, 0xE1C0, 0x71D2, 0xE1C1, 0x7526, 0xE1C2, 0x758F, - 0xE1C3, 0x758E, 0xE1C4, 0x7619, 0xE1C5, 0x7B11, 0xE1C6, 0x7BE0, - 0xE1C7, 0x7C2B, 0xE1C8, 0x7D20, 0xE1C9, 0x7D39, 0xE1CA, 0x852C, - 0xE1CB, 0x856D, 0xE1CC, 0x8607, 0xE1CD, 0x8A34, 0xE1CE, 0x900D, - 0xE1CF, 0x9061, 0xE1D0, 0x90B5, 0xE1D1, 0x92B7, 0xE1D2, 0x97F6, - 0xE1D3, 0x9A37, 0xE1D4, 0x4FD7, 0xE1D5, 0x5C6C, 0xE1D6, 0x675F, - 0xE1D7, 0x6D91, 0xE1D8, 0x7C9F, 0xE1D9, 0x7E8C, 0xE1DA, 0x8B16, - 0xE1DB, 0x8D16, 0xE1DC, 0x901F, 0xE1DD, 0x5B6B, 0xE1DE, 0x5DFD, - 0xE1DF, 0x640D, 0xE1E0, 0x84C0, 0xE1E1, 0x905C, 0xE1E2, 0x98E1, - 0xE1E3, 0x7387, 0xE1E4, 0x5B8B, 0xE1E5, 0x609A, 0xE1E6, 0x677E, - 0xE1E7, 0x6DDE, 0xE1E8, 0x8A1F, 0xE1E9, 0x8AA6, 0xE1EA, 0x9001, - 0xE1EB, 0x980C, 0xE1EC, 0x5237, 0xE1ED, 0xF970, 0xE1EE, 0x7051, - 0xE1EF, 0x788E, 0xE1F0, 0x9396, 0xE1F1, 0x8870, 0xE1F2, 0x91D7, - 0xE1F3, 0x4FEE, 0xE1F4, 0x53D7, 0xE1F5, 0x55FD, 0xE1F6, 0x56DA, - 0xE1F7, 0x5782, 0xE1F8, 0x58FD, 0xE1F9, 0x5AC2, 0xE1FA, 0x5B88, - 0xE1FB, 0x5CAB, 0xE1FC, 0x5CC0, 0xE1FD, 0x5E25, 0xE1FE, 0x6101, - 0xE2A1, 0x620D, 0xE2A2, 0x624B, 0xE2A3, 0x6388, 0xE2A4, 0x641C, - 0xE2A5, 0x6536, 0xE2A6, 0x6578, 0xE2A7, 0x6A39, 0xE2A8, 0x6B8A, - 0xE2A9, 0x6C34, 0xE2AA, 0x6D19, 0xE2AB, 0x6F31, 0xE2AC, 0x71E7, - 0xE2AD, 0x72E9, 0xE2AE, 0x7378, 0xE2AF, 0x7407, 0xE2B0, 0x74B2, - 0xE2B1, 0x7626, 0xE2B2, 0x7761, 0xE2B3, 0x79C0, 0xE2B4, 0x7A57, - 0xE2B5, 0x7AEA, 0xE2B6, 0x7CB9, 0xE2B7, 0x7D8F, 0xE2B8, 0x7DAC, - 0xE2B9, 0x7E61, 0xE2BA, 0x7F9E, 0xE2BB, 0x8129, 0xE2BC, 0x8331, - 0xE2BD, 0x8490, 0xE2BE, 0x84DA, 0xE2BF, 0x85EA, 0xE2C0, 0x8896, - 0xE2C1, 0x8AB0, 0xE2C2, 0x8B90, 0xE2C3, 0x8F38, 0xE2C4, 0x9042, - 0xE2C5, 0x9083, 0xE2C6, 0x916C, 0xE2C7, 0x9296, 0xE2C8, 0x92B9, - 0xE2C9, 0x968B, 0xE2CA, 0x96A7, 0xE2CB, 0x96A8, 0xE2CC, 0x96D6, - 0xE2CD, 0x9700, 0xE2CE, 0x9808, 0xE2CF, 0x9996, 0xE2D0, 0x9AD3, - 0xE2D1, 0x9B1A, 0xE2D2, 0x53D4, 0xE2D3, 0x587E, 0xE2D4, 0x5919, - 0xE2D5, 0x5B70, 0xE2D6, 0x5BBF, 0xE2D7, 0x6DD1, 0xE2D8, 0x6F5A, - 0xE2D9, 0x719F, 0xE2DA, 0x7421, 0xE2DB, 0x74B9, 0xE2DC, 0x8085, - 0xE2DD, 0x83FD, 0xE2DE, 0x5DE1, 0xE2DF, 0x5F87, 0xE2E0, 0x5FAA, - 0xE2E1, 0x6042, 0xE2E2, 0x65EC, 0xE2E3, 0x6812, 0xE2E4, 0x696F, - 0xE2E5, 0x6A53, 0xE2E6, 0x6B89, 0xE2E7, 0x6D35, 0xE2E8, 0x6DF3, - 0xE2E9, 0x73E3, 0xE2EA, 0x76FE, 0xE2EB, 0x77AC, 0xE2EC, 0x7B4D, - 0xE2ED, 0x7D14, 0xE2EE, 0x8123, 0xE2EF, 0x821C, 0xE2F0, 0x8340, - 0xE2F1, 0x84F4, 0xE2F2, 0x8563, 0xE2F3, 0x8A62, 0xE2F4, 0x8AC4, - 0xE2F5, 0x9187, 0xE2F6, 0x931E, 0xE2F7, 0x9806, 0xE2F8, 0x99B4, - 0xE2F9, 0x620C, 0xE2FA, 0x8853, 0xE2FB, 0x8FF0, 0xE2FC, 0x9265, - 0xE2FD, 0x5D07, 0xE2FE, 0x5D27, 0xE3A1, 0x5D69, 0xE3A2, 0x745F, - 0xE3A3, 0x819D, 0xE3A4, 0x8768, 0xE3A5, 0x6FD5, 0xE3A6, 0x62FE, - 0xE3A7, 0x7FD2, 0xE3A8, 0x8936, 0xE3A9, 0x8972, 0xE3AA, 0x4E1E, - 0xE3AB, 0x4E58, 0xE3AC, 0x50E7, 0xE3AD, 0x52DD, 0xE3AE, 0x5347, - 0xE3AF, 0x627F, 0xE3B0, 0x6607, 0xE3B1, 0x7E69, 0xE3B2, 0x8805, - 0xE3B3, 0x965E, 0xE3B4, 0x4F8D, 0xE3B5, 0x5319, 0xE3B6, 0x5636, - 0xE3B7, 0x59CB, 0xE3B8, 0x5AA4, 0xE3B9, 0x5C38, 0xE3BA, 0x5C4E, - 0xE3BB, 0x5C4D, 0xE3BC, 0x5E02, 0xE3BD, 0x5F11, 0xE3BE, 0x6043, - 0xE3BF, 0x65BD, 0xE3C0, 0x662F, 0xE3C1, 0x6642, 0xE3C2, 0x67BE, - 0xE3C3, 0x67F4, 0xE3C4, 0x731C, 0xE3C5, 0x77E2, 0xE3C6, 0x793A, - 0xE3C7, 0x7FC5, 0xE3C8, 0x8494, 0xE3C9, 0x84CD, 0xE3CA, 0x8996, - 0xE3CB, 0x8A66, 0xE3CC, 0x8A69, 0xE3CD, 0x8AE1, 0xE3CE, 0x8C55, - 0xE3CF, 0x8C7A, 0xE3D0, 0x57F4, 0xE3D1, 0x5BD4, 0xE3D2, 0x5F0F, - 0xE3D3, 0x606F, 0xE3D4, 0x62ED, 0xE3D5, 0x690D, 0xE3D6, 0x6B96, - 0xE3D7, 0x6E5C, 0xE3D8, 0x7184, 0xE3D9, 0x7BD2, 0xE3DA, 0x8755, - 0xE3DB, 0x8B58, 0xE3DC, 0x8EFE, 0xE3DD, 0x98DF, 0xE3DE, 0x98FE, - 0xE3DF, 0x4F38, 0xE3E0, 0x4F81, 0xE3E1, 0x4FE1, 0xE3E2, 0x547B, - 0xE3E3, 0x5A20, 0xE3E4, 0x5BB8, 0xE3E5, 0x613C, 0xE3E6, 0x65B0, - 0xE3E7, 0x6668, 0xE3E8, 0x71FC, 0xE3E9, 0x7533, 0xE3EA, 0x795E, - 0xE3EB, 0x7D33, 0xE3EC, 0x814E, 0xE3ED, 0x81E3, 0xE3EE, 0x8398, - 0xE3EF, 0x85AA, 0xE3F0, 0x85CE, 0xE3F1, 0x8703, 0xE3F2, 0x8A0A, - 0xE3F3, 0x8EAB, 0xE3F4, 0x8F9B, 0xE3F5, 0xF971, 0xE3F6, 0x8FC5, - 0xE3F7, 0x5931, 0xE3F8, 0x5BA4, 0xE3F9, 0x5BE6, 0xE3FA, 0x6089, - 0xE3FB, 0x5BE9, 0xE3FC, 0x5C0B, 0xE3FD, 0x5FC3, 0xE3FE, 0x6C81, - 0xE4A1, 0xF972, 0xE4A2, 0x6DF1, 0xE4A3, 0x700B, 0xE4A4, 0x751A, - 0xE4A5, 0x82AF, 0xE4A6, 0x8AF6, 0xE4A7, 0x4EC0, 0xE4A8, 0x5341, - 0xE4A9, 0xF973, 0xE4AA, 0x96D9, 0xE4AB, 0x6C0F, 0xE4AC, 0x4E9E, - 0xE4AD, 0x4FC4, 0xE4AE, 0x5152, 0xE4AF, 0x555E, 0xE4B0, 0x5A25, - 0xE4B1, 0x5CE8, 0xE4B2, 0x6211, 0xE4B3, 0x7259, 0xE4B4, 0x82BD, - 0xE4B5, 0x83AA, 0xE4B6, 0x86FE, 0xE4B7, 0x8859, 0xE4B8, 0x8A1D, - 0xE4B9, 0x963F, 0xE4BA, 0x96C5, 0xE4BB, 0x9913, 0xE4BC, 0x9D09, - 0xE4BD, 0x9D5D, 0xE4BE, 0x580A, 0xE4BF, 0x5CB3, 0xE4C0, 0x5DBD, - 0xE4C1, 0x5E44, 0xE4C2, 0x60E1, 0xE4C3, 0x6115, 0xE4C4, 0x63E1, - 0xE4C5, 0x6A02, 0xE4C6, 0x6E25, 0xE4C7, 0x9102, 0xE4C8, 0x9354, - 0xE4C9, 0x984E, 0xE4CA, 0x9C10, 0xE4CB, 0x9F77, 0xE4CC, 0x5B89, - 0xE4CD, 0x5CB8, 0xE4CE, 0x6309, 0xE4CF, 0x664F, 0xE4D0, 0x6848, - 0xE4D1, 0x773C, 0xE4D2, 0x96C1, 0xE4D3, 0x978D, 0xE4D4, 0x9854, - 0xE4D5, 0x9B9F, 0xE4D6, 0x65A1, 0xE4D7, 0x8B01, 0xE4D8, 0x8ECB, - 0xE4D9, 0x95BC, 0xE4DA, 0x5535, 0xE4DB, 0x5CA9, 0xE4DC, 0x5DD6, - 0xE4DD, 0x5EB5, 0xE4DE, 0x6697, 0xE4DF, 0x764C, 0xE4E0, 0x83F4, - 0xE4E1, 0x95C7, 0xE4E2, 0x58D3, 0xE4E3, 0x62BC, 0xE4E4, 0x72CE, - 0xE4E5, 0x9D28, 0xE4E6, 0x4EF0, 0xE4E7, 0x592E, 0xE4E8, 0x600F, - 0xE4E9, 0x663B, 0xE4EA, 0x6B83, 0xE4EB, 0x79E7, 0xE4EC, 0x9D26, - 0xE4ED, 0x5393, 0xE4EE, 0x54C0, 0xE4EF, 0x57C3, 0xE4F0, 0x5D16, - 0xE4F1, 0x611B, 0xE4F2, 0x66D6, 0xE4F3, 0x6DAF, 0xE4F4, 0x788D, - 0xE4F5, 0x827E, 0xE4F6, 0x9698, 0xE4F7, 0x9744, 0xE4F8, 0x5384, - 0xE4F9, 0x627C, 0xE4FA, 0x6396, 0xE4FB, 0x6DB2, 0xE4FC, 0x7E0A, - 0xE4FD, 0x814B, 0xE4FE, 0x984D, 0xE5A1, 0x6AFB, 0xE5A2, 0x7F4C, - 0xE5A3, 0x9DAF, 0xE5A4, 0x9E1A, 0xE5A5, 0x4E5F, 0xE5A6, 0x503B, - 0xE5A7, 0x51B6, 0xE5A8, 0x591C, 0xE5A9, 0x60F9, 0xE5AA, 0x63F6, - 0xE5AB, 0x6930, 0xE5AC, 0x723A, 0xE5AD, 0x8036, 0xE5AE, 0xF974, - 0xE5AF, 0x91CE, 0xE5B0, 0x5F31, 0xE5B1, 0xF975, 0xE5B2, 0xF976, - 0xE5B3, 0x7D04, 0xE5B4, 0x82E5, 0xE5B5, 0x846F, 0xE5B6, 0x84BB, - 0xE5B7, 0x85E5, 0xE5B8, 0x8E8D, 0xE5B9, 0xF977, 0xE5BA, 0x4F6F, - 0xE5BB, 0xF978, 0xE5BC, 0xF979, 0xE5BD, 0x58E4, 0xE5BE, 0x5B43, - 0xE5BF, 0x6059, 0xE5C0, 0x63DA, 0xE5C1, 0x6518, 0xE5C2, 0x656D, - 0xE5C3, 0x6698, 0xE5C4, 0xF97A, 0xE5C5, 0x694A, 0xE5C6, 0x6A23, - 0xE5C7, 0x6D0B, 0xE5C8, 0x7001, 0xE5C9, 0x716C, 0xE5CA, 0x75D2, - 0xE5CB, 0x760D, 0xE5CC, 0x79B3, 0xE5CD, 0x7A70, 0xE5CE, 0xF97B, - 0xE5CF, 0x7F8A, 0xE5D0, 0xF97C, 0xE5D1, 0x8944, 0xE5D2, 0xF97D, - 0xE5D3, 0x8B93, 0xE5D4, 0x91C0, 0xE5D5, 0x967D, 0xE5D6, 0xF97E, - 0xE5D7, 0x990A, 0xE5D8, 0x5704, 0xE5D9, 0x5FA1, 0xE5DA, 0x65BC, - 0xE5DB, 0x6F01, 0xE5DC, 0x7600, 0xE5DD, 0x79A6, 0xE5DE, 0x8A9E, - 0xE5DF, 0x99AD, 0xE5E0, 0x9B5A, 0xE5E1, 0x9F6C, 0xE5E2, 0x5104, - 0xE5E3, 0x61B6, 0xE5E4, 0x6291, 0xE5E5, 0x6A8D, 0xE5E6, 0x81C6, - 0xE5E7, 0x5043, 0xE5E8, 0x5830, 0xE5E9, 0x5F66, 0xE5EA, 0x7109, - 0xE5EB, 0x8A00, 0xE5EC, 0x8AFA, 0xE5ED, 0x5B7C, 0xE5EE, 0x8616, - 0xE5EF, 0x4FFA, 0xE5F0, 0x513C, 0xE5F1, 0x56B4, 0xE5F2, 0x5944, - 0xE5F3, 0x63A9, 0xE5F4, 0x6DF9, 0xE5F5, 0x5DAA, 0xE5F6, 0x696D, - 0xE5F7, 0x5186, 0xE5F8, 0x4E88, 0xE5F9, 0x4F59, 0xE5FA, 0xF97F, - 0xE5FB, 0xF980, 0xE5FC, 0xF981, 0xE5FD, 0x5982, 0xE5FE, 0xF982, - 0xE6A1, 0xF983, 0xE6A2, 0x6B5F, 0xE6A3, 0x6C5D, 0xE6A4, 0xF984, - 0xE6A5, 0x74B5, 0xE6A6, 0x7916, 0xE6A7, 0xF985, 0xE6A8, 0x8207, - 0xE6A9, 0x8245, 0xE6AA, 0x8339, 0xE6AB, 0x8F3F, 0xE6AC, 0x8F5D, - 0xE6AD, 0xF986, 0xE6AE, 0x9918, 0xE6AF, 0xF987, 0xE6B0, 0xF988, - 0xE6B1, 0xF989, 0xE6B2, 0x4EA6, 0xE6B3, 0xF98A, 0xE6B4, 0x57DF, - 0xE6B5, 0x5F79, 0xE6B6, 0x6613, 0xE6B7, 0xF98B, 0xE6B8, 0xF98C, - 0xE6B9, 0x75AB, 0xE6BA, 0x7E79, 0xE6BB, 0x8B6F, 0xE6BC, 0xF98D, - 0xE6BD, 0x9006, 0xE6BE, 0x9A5B, 0xE6BF, 0x56A5, 0xE6C0, 0x5827, - 0xE6C1, 0x59F8, 0xE6C2, 0x5A1F, 0xE6C3, 0x5BB4, 0xE6C4, 0xF98E, - 0xE6C5, 0x5EF6, 0xE6C6, 0xF98F, 0xE6C7, 0xF990, 0xE6C8, 0x6350, - 0xE6C9, 0x633B, 0xE6CA, 0xF991, 0xE6CB, 0x693D, 0xE6CC, 0x6C87, - 0xE6CD, 0x6CBF, 0xE6CE, 0x6D8E, 0xE6CF, 0x6D93, 0xE6D0, 0x6DF5, - 0xE6D1, 0x6F14, 0xE6D2, 0xF992, 0xE6D3, 0x70DF, 0xE6D4, 0x7136, - 0xE6D5, 0x7159, 0xE6D6, 0xF993, 0xE6D7, 0x71C3, 0xE6D8, 0x71D5, - 0xE6D9, 0xF994, 0xE6DA, 0x784F, 0xE6DB, 0x786F, 0xE6DC, 0xF995, - 0xE6DD, 0x7B75, 0xE6DE, 0x7DE3, 0xE6DF, 0xF996, 0xE6E0, 0x7E2F, - 0xE6E1, 0xF997, 0xE6E2, 0x884D, 0xE6E3, 0x8EDF, 0xE6E4, 0xF998, - 0xE6E5, 0xF999, 0xE6E6, 0xF99A, 0xE6E7, 0x925B, 0xE6E8, 0xF99B, - 0xE6E9, 0x9CF6, 0xE6EA, 0xF99C, 0xE6EB, 0xF99D, 0xE6EC, 0xF99E, - 0xE6ED, 0x6085, 0xE6EE, 0x6D85, 0xE6EF, 0xF99F, 0xE6F0, 0x71B1, - 0xE6F1, 0xF9A0, 0xE6F2, 0xF9A1, 0xE6F3, 0x95B1, 0xE6F4, 0x53AD, - 0xE6F5, 0xF9A2, 0xE6F6, 0xF9A3, 0xE6F7, 0xF9A4, 0xE6F8, 0x67D3, - 0xE6F9, 0xF9A5, 0xE6FA, 0x708E, 0xE6FB, 0x7130, 0xE6FC, 0x7430, - 0xE6FD, 0x8276, 0xE6FE, 0x82D2, 0xE7A1, 0xF9A6, 0xE7A2, 0x95BB, - 0xE7A3, 0x9AE5, 0xE7A4, 0x9E7D, 0xE7A5, 0x66C4, 0xE7A6, 0xF9A7, - 0xE7A7, 0x71C1, 0xE7A8, 0x8449, 0xE7A9, 0xF9A8, 0xE7AA, 0xF9A9, - 0xE7AB, 0x584B, 0xE7AC, 0xF9AA, 0xE7AD, 0xF9AB, 0xE7AE, 0x5DB8, - 0xE7AF, 0x5F71, 0xE7B0, 0xF9AC, 0xE7B1, 0x6620, 0xE7B2, 0x668E, - 0xE7B3, 0x6979, 0xE7B4, 0x69AE, 0xE7B5, 0x6C38, 0xE7B6, 0x6CF3, - 0xE7B7, 0x6E36, 0xE7B8, 0x6F41, 0xE7B9, 0x6FDA, 0xE7BA, 0x701B, - 0xE7BB, 0x702F, 0xE7BC, 0x7150, 0xE7BD, 0x71DF, 0xE7BE, 0x7370, - 0xE7BF, 0xF9AD, 0xE7C0, 0x745B, 0xE7C1, 0xF9AE, 0xE7C2, 0x74D4, - 0xE7C3, 0x76C8, 0xE7C4, 0x7A4E, 0xE7C5, 0x7E93, 0xE7C6, 0xF9AF, - 0xE7C7, 0xF9B0, 0xE7C8, 0x82F1, 0xE7C9, 0x8A60, 0xE7CA, 0x8FCE, - 0xE7CB, 0xF9B1, 0xE7CC, 0x9348, 0xE7CD, 0xF9B2, 0xE7CE, 0x9719, - 0xE7CF, 0xF9B3, 0xE7D0, 0xF9B4, 0xE7D1, 0x4E42, 0xE7D2, 0x502A, - 0xE7D3, 0xF9B5, 0xE7D4, 0x5208, 0xE7D5, 0x53E1, 0xE7D6, 0x66F3, - 0xE7D7, 0x6C6D, 0xE7D8, 0x6FCA, 0xE7D9, 0x730A, 0xE7DA, 0x777F, - 0xE7DB, 0x7A62, 0xE7DC, 0x82AE, 0xE7DD, 0x85DD, 0xE7DE, 0x8602, - 0xE7DF, 0xF9B6, 0xE7E0, 0x88D4, 0xE7E1, 0x8A63, 0xE7E2, 0x8B7D, - 0xE7E3, 0x8C6B, 0xE7E4, 0xF9B7, 0xE7E5, 0x92B3, 0xE7E6, 0xF9B8, - 0xE7E7, 0x9713, 0xE7E8, 0x9810, 0xE7E9, 0x4E94, 0xE7EA, 0x4F0D, - 0xE7EB, 0x4FC9, 0xE7EC, 0x50B2, 0xE7ED, 0x5348, 0xE7EE, 0x543E, - 0xE7EF, 0x5433, 0xE7F0, 0x55DA, 0xE7F1, 0x5862, 0xE7F2, 0x58BA, - 0xE7F3, 0x5967, 0xE7F4, 0x5A1B, 0xE7F5, 0x5BE4, 0xE7F6, 0x609F, - 0xE7F7, 0xF9B9, 0xE7F8, 0x61CA, 0xE7F9, 0x6556, 0xE7FA, 0x65FF, - 0xE7FB, 0x6664, 0xE7FC, 0x68A7, 0xE7FD, 0x6C5A, 0xE7FE, 0x6FB3, - 0xE8A1, 0x70CF, 0xE8A2, 0x71AC, 0xE8A3, 0x7352, 0xE8A4, 0x7B7D, - 0xE8A5, 0x8708, 0xE8A6, 0x8AA4, 0xE8A7, 0x9C32, 0xE8A8, 0x9F07, - 0xE8A9, 0x5C4B, 0xE8AA, 0x6C83, 0xE8AB, 0x7344, 0xE8AC, 0x7389, - 0xE8AD, 0x923A, 0xE8AE, 0x6EAB, 0xE8AF, 0x7465, 0xE8B0, 0x761F, - 0xE8B1, 0x7A69, 0xE8B2, 0x7E15, 0xE8B3, 0x860A, 0xE8B4, 0x5140, - 0xE8B5, 0x58C5, 0xE8B6, 0x64C1, 0xE8B7, 0x74EE, 0xE8B8, 0x7515, - 0xE8B9, 0x7670, 0xE8BA, 0x7FC1, 0xE8BB, 0x9095, 0xE8BC, 0x96CD, - 0xE8BD, 0x9954, 0xE8BE, 0x6E26, 0xE8BF, 0x74E6, 0xE8C0, 0x7AA9, - 0xE8C1, 0x7AAA, 0xE8C2, 0x81E5, 0xE8C3, 0x86D9, 0xE8C4, 0x8778, - 0xE8C5, 0x8A1B, 0xE8C6, 0x5A49, 0xE8C7, 0x5B8C, 0xE8C8, 0x5B9B, - 0xE8C9, 0x68A1, 0xE8CA, 0x6900, 0xE8CB, 0x6D63, 0xE8CC, 0x73A9, - 0xE8CD, 0x7413, 0xE8CE, 0x742C, 0xE8CF, 0x7897, 0xE8D0, 0x7DE9, - 0xE8D1, 0x7FEB, 0xE8D2, 0x8118, 0xE8D3, 0x8155, 0xE8D4, 0x839E, - 0xE8D5, 0x8C4C, 0xE8D6, 0x962E, 0xE8D7, 0x9811, 0xE8D8, 0x66F0, - 0xE8D9, 0x5F80, 0xE8DA, 0x65FA, 0xE8DB, 0x6789, 0xE8DC, 0x6C6A, - 0xE8DD, 0x738B, 0xE8DE, 0x502D, 0xE8DF, 0x5A03, 0xE8E0, 0x6B6A, - 0xE8E1, 0x77EE, 0xE8E2, 0x5916, 0xE8E3, 0x5D6C, 0xE8E4, 0x5DCD, - 0xE8E5, 0x7325, 0xE8E6, 0x754F, 0xE8E7, 0xF9BA, 0xE8E8, 0xF9BB, - 0xE8E9, 0x50E5, 0xE8EA, 0x51F9, 0xE8EB, 0x582F, 0xE8EC, 0x592D, - 0xE8ED, 0x5996, 0xE8EE, 0x59DA, 0xE8EF, 0x5BE5, 0xE8F0, 0xF9BC, - 0xE8F1, 0xF9BD, 0xE8F2, 0x5DA2, 0xE8F3, 0x62D7, 0xE8F4, 0x6416, - 0xE8F5, 0x6493, 0xE8F6, 0x64FE, 0xE8F7, 0xF9BE, 0xE8F8, 0x66DC, - 0xE8F9, 0xF9BF, 0xE8FA, 0x6A48, 0xE8FB, 0xF9C0, 0xE8FC, 0x71FF, - 0xE8FD, 0x7464, 0xE8FE, 0xF9C1, 0xE9A1, 0x7A88, 0xE9A2, 0x7AAF, - 0xE9A3, 0x7E47, 0xE9A4, 0x7E5E, 0xE9A5, 0x8000, 0xE9A6, 0x8170, - 0xE9A7, 0xF9C2, 0xE9A8, 0x87EF, 0xE9A9, 0x8981, 0xE9AA, 0x8B20, - 0xE9AB, 0x9059, 0xE9AC, 0xF9C3, 0xE9AD, 0x9080, 0xE9AE, 0x9952, - 0xE9AF, 0x617E, 0xE9B0, 0x6B32, 0xE9B1, 0x6D74, 0xE9B2, 0x7E1F, - 0xE9B3, 0x8925, 0xE9B4, 0x8FB1, 0xE9B5, 0x4FD1, 0xE9B6, 0x50AD, - 0xE9B7, 0x5197, 0xE9B8, 0x52C7, 0xE9B9, 0x57C7, 0xE9BA, 0x5889, - 0xE9BB, 0x5BB9, 0xE9BC, 0x5EB8, 0xE9BD, 0x6142, 0xE9BE, 0x6995, - 0xE9BF, 0x6D8C, 0xE9C0, 0x6E67, 0xE9C1, 0x6EB6, 0xE9C2, 0x7194, - 0xE9C3, 0x7462, 0xE9C4, 0x7528, 0xE9C5, 0x752C, 0xE9C6, 0x8073, - 0xE9C7, 0x8338, 0xE9C8, 0x84C9, 0xE9C9, 0x8E0A, 0xE9CA, 0x9394, - 0xE9CB, 0x93DE, 0xE9CC, 0xF9C4, 0xE9CD, 0x4E8E, 0xE9CE, 0x4F51, - 0xE9CF, 0x5076, 0xE9D0, 0x512A, 0xE9D1, 0x53C8, 0xE9D2, 0x53CB, - 0xE9D3, 0x53F3, 0xE9D4, 0x5B87, 0xE9D5, 0x5BD3, 0xE9D6, 0x5C24, - 0xE9D7, 0x611A, 0xE9D8, 0x6182, 0xE9D9, 0x65F4, 0xE9DA, 0x725B, - 0xE9DB, 0x7397, 0xE9DC, 0x7440, 0xE9DD, 0x76C2, 0xE9DE, 0x7950, - 0xE9DF, 0x7991, 0xE9E0, 0x79B9, 0xE9E1, 0x7D06, 0xE9E2, 0x7FBD, - 0xE9E3, 0x828B, 0xE9E4, 0x85D5, 0xE9E5, 0x865E, 0xE9E6, 0x8FC2, - 0xE9E7, 0x9047, 0xE9E8, 0x90F5, 0xE9E9, 0x91EA, 0xE9EA, 0x9685, - 0xE9EB, 0x96E8, 0xE9EC, 0x96E9, 0xE9ED, 0x52D6, 0xE9EE, 0x5F67, - 0xE9EF, 0x65ED, 0xE9F0, 0x6631, 0xE9F1, 0x682F, 0xE9F2, 0x715C, - 0xE9F3, 0x7A36, 0xE9F4, 0x90C1, 0xE9F5, 0x980A, 0xE9F6, 0x4E91, - 0xE9F7, 0xF9C5, 0xE9F8, 0x6A52, 0xE9F9, 0x6B9E, 0xE9FA, 0x6F90, - 0xE9FB, 0x7189, 0xE9FC, 0x8018, 0xE9FD, 0x82B8, 0xE9FE, 0x8553, - 0xEAA1, 0x904B, 0xEAA2, 0x9695, 0xEAA3, 0x96F2, 0xEAA4, 0x97FB, - 0xEAA5, 0x851A, 0xEAA6, 0x9B31, 0xEAA7, 0x4E90, 0xEAA8, 0x718A, - 0xEAA9, 0x96C4, 0xEAAA, 0x5143, 0xEAAB, 0x539F, 0xEAAC, 0x54E1, - 0xEAAD, 0x5713, 0xEAAE, 0x5712, 0xEAAF, 0x57A3, 0xEAB0, 0x5A9B, - 0xEAB1, 0x5AC4, 0xEAB2, 0x5BC3, 0xEAB3, 0x6028, 0xEAB4, 0x613F, - 0xEAB5, 0x63F4, 0xEAB6, 0x6C85, 0xEAB7, 0x6D39, 0xEAB8, 0x6E72, - 0xEAB9, 0x6E90, 0xEABA, 0x7230, 0xEABB, 0x733F, 0xEABC, 0x7457, - 0xEABD, 0x82D1, 0xEABE, 0x8881, 0xEABF, 0x8F45, 0xEAC0, 0x9060, - 0xEAC1, 0xF9C6, 0xEAC2, 0x9662, 0xEAC3, 0x9858, 0xEAC4, 0x9D1B, - 0xEAC5, 0x6708, 0xEAC6, 0x8D8A, 0xEAC7, 0x925E, 0xEAC8, 0x4F4D, - 0xEAC9, 0x5049, 0xEACA, 0x50DE, 0xEACB, 0x5371, 0xEACC, 0x570D, - 0xEACD, 0x59D4, 0xEACE, 0x5A01, 0xEACF, 0x5C09, 0xEAD0, 0x6170, - 0xEAD1, 0x6690, 0xEAD2, 0x6E2D, 0xEAD3, 0x7232, 0xEAD4, 0x744B, - 0xEAD5, 0x7DEF, 0xEAD6, 0x80C3, 0xEAD7, 0x840E, 0xEAD8, 0x8466, - 0xEAD9, 0x853F, 0xEADA, 0x875F, 0xEADB, 0x885B, 0xEADC, 0x8918, - 0xEADD, 0x8B02, 0xEADE, 0x9055, 0xEADF, 0x97CB, 0xEAE0, 0x9B4F, - 0xEAE1, 0x4E73, 0xEAE2, 0x4F91, 0xEAE3, 0x5112, 0xEAE4, 0x516A, - 0xEAE5, 0xF9C7, 0xEAE6, 0x552F, 0xEAE7, 0x55A9, 0xEAE8, 0x5B7A, - 0xEAE9, 0x5BA5, 0xEAEA, 0x5E7C, 0xEAEB, 0x5E7D, 0xEAEC, 0x5EBE, - 0xEAED, 0x60A0, 0xEAEE, 0x60DF, 0xEAEF, 0x6108, 0xEAF0, 0x6109, - 0xEAF1, 0x63C4, 0xEAF2, 0x6538, 0xEAF3, 0x6709, 0xEAF4, 0xF9C8, - 0xEAF5, 0x67D4, 0xEAF6, 0x67DA, 0xEAF7, 0xF9C9, 0xEAF8, 0x6961, - 0xEAF9, 0x6962, 0xEAFA, 0x6CB9, 0xEAFB, 0x6D27, 0xEAFC, 0xF9CA, - 0xEAFD, 0x6E38, 0xEAFE, 0xF9CB, 0xEBA1, 0x6FE1, 0xEBA2, 0x7336, - 0xEBA3, 0x7337, 0xEBA4, 0xF9CC, 0xEBA5, 0x745C, 0xEBA6, 0x7531, - 0xEBA7, 0xF9CD, 0xEBA8, 0x7652, 0xEBA9, 0xF9CE, 0xEBAA, 0xF9CF, - 0xEBAB, 0x7DAD, 0xEBAC, 0x81FE, 0xEBAD, 0x8438, 0xEBAE, 0x88D5, - 0xEBAF, 0x8A98, 0xEBB0, 0x8ADB, 0xEBB1, 0x8AED, 0xEBB2, 0x8E30, - 0xEBB3, 0x8E42, 0xEBB4, 0x904A, 0xEBB5, 0x903E, 0xEBB6, 0x907A, - 0xEBB7, 0x9149, 0xEBB8, 0x91C9, 0xEBB9, 0x936E, 0xEBBA, 0xF9D0, - 0xEBBB, 0xF9D1, 0xEBBC, 0x5809, 0xEBBD, 0xF9D2, 0xEBBE, 0x6BD3, - 0xEBBF, 0x8089, 0xEBC0, 0x80B2, 0xEBC1, 0xF9D3, 0xEBC2, 0xF9D4, - 0xEBC3, 0x5141, 0xEBC4, 0x596B, 0xEBC5, 0x5C39, 0xEBC6, 0xF9D5, - 0xEBC7, 0xF9D6, 0xEBC8, 0x6F64, 0xEBC9, 0x73A7, 0xEBCA, 0x80E4, - 0xEBCB, 0x8D07, 0xEBCC, 0xF9D7, 0xEBCD, 0x9217, 0xEBCE, 0x958F, - 0xEBCF, 0xF9D8, 0xEBD0, 0xF9D9, 0xEBD1, 0xF9DA, 0xEBD2, 0xF9DB, - 0xEBD3, 0x807F, 0xEBD4, 0x620E, 0xEBD5, 0x701C, 0xEBD6, 0x7D68, - 0xEBD7, 0x878D, 0xEBD8, 0xF9DC, 0xEBD9, 0x57A0, 0xEBDA, 0x6069, - 0xEBDB, 0x6147, 0xEBDC, 0x6BB7, 0xEBDD, 0x8ABE, 0xEBDE, 0x9280, - 0xEBDF, 0x96B1, 0xEBE0, 0x4E59, 0xEBE1, 0x541F, 0xEBE2, 0x6DEB, - 0xEBE3, 0x852D, 0xEBE4, 0x9670, 0xEBE5, 0x97F3, 0xEBE6, 0x98EE, - 0xEBE7, 0x63D6, 0xEBE8, 0x6CE3, 0xEBE9, 0x9091, 0xEBEA, 0x51DD, - 0xEBEB, 0x61C9, 0xEBEC, 0x81BA, 0xEBED, 0x9DF9, 0xEBEE, 0x4F9D, - 0xEBEF, 0x501A, 0xEBF0, 0x5100, 0xEBF1, 0x5B9C, 0xEBF2, 0x610F, - 0xEBF3, 0x61FF, 0xEBF4, 0x64EC, 0xEBF5, 0x6905, 0xEBF6, 0x6BC5, - 0xEBF7, 0x7591, 0xEBF8, 0x77E3, 0xEBF9, 0x7FA9, 0xEBFA, 0x8264, - 0xEBFB, 0x858F, 0xEBFC, 0x87FB, 0xEBFD, 0x8863, 0xEBFE, 0x8ABC, - 0xECA1, 0x8B70, 0xECA2, 0x91AB, 0xECA3, 0x4E8C, 0xECA4, 0x4EE5, - 0xECA5, 0x4F0A, 0xECA6, 0xF9DD, 0xECA7, 0xF9DE, 0xECA8, 0x5937, - 0xECA9, 0x59E8, 0xECAA, 0xF9DF, 0xECAB, 0x5DF2, 0xECAC, 0x5F1B, - 0xECAD, 0x5F5B, 0xECAE, 0x6021, 0xECAF, 0xF9E0, 0xECB0, 0xF9E1, - 0xECB1, 0xF9E2, 0xECB2, 0xF9E3, 0xECB3, 0x723E, 0xECB4, 0x73E5, - 0xECB5, 0xF9E4, 0xECB6, 0x7570, 0xECB7, 0x75CD, 0xECB8, 0xF9E5, - 0xECB9, 0x79FB, 0xECBA, 0xF9E6, 0xECBB, 0x800C, 0xECBC, 0x8033, - 0xECBD, 0x8084, 0xECBE, 0x82E1, 0xECBF, 0x8351, 0xECC0, 0xF9E7, - 0xECC1, 0xF9E8, 0xECC2, 0x8CBD, 0xECC3, 0x8CB3, 0xECC4, 0x9087, - 0xECC5, 0xF9E9, 0xECC6, 0xF9EA, 0xECC7, 0x98F4, 0xECC8, 0x990C, - 0xECC9, 0xF9EB, 0xECCA, 0xF9EC, 0xECCB, 0x7037, 0xECCC, 0x76CA, - 0xECCD, 0x7FCA, 0xECCE, 0x7FCC, 0xECCF, 0x7FFC, 0xECD0, 0x8B1A, - 0xECD1, 0x4EBA, 0xECD2, 0x4EC1, 0xECD3, 0x5203, 0xECD4, 0x5370, - 0xECD5, 0xF9ED, 0xECD6, 0x54BD, 0xECD7, 0x56E0, 0xECD8, 0x59FB, - 0xECD9, 0x5BC5, 0xECDA, 0x5F15, 0xECDB, 0x5FCD, 0xECDC, 0x6E6E, - 0xECDD, 0xF9EE, 0xECDE, 0xF9EF, 0xECDF, 0x7D6A, 0xECE0, 0x8335, - 0xECE1, 0xF9F0, 0xECE2, 0x8693, 0xECE3, 0x8A8D, 0xECE4, 0xF9F1, - 0xECE5, 0x976D, 0xECE6, 0x9777, 0xECE7, 0xF9F2, 0xECE8, 0xF9F3, - 0xECE9, 0x4E00, 0xECEA, 0x4F5A, 0xECEB, 0x4F7E, 0xECEC, 0x58F9, - 0xECED, 0x65E5, 0xECEE, 0x6EA2, 0xECEF, 0x9038, 0xECF0, 0x93B0, - 0xECF1, 0x99B9, 0xECF2, 0x4EFB, 0xECF3, 0x58EC, 0xECF4, 0x598A, - 0xECF5, 0x59D9, 0xECF6, 0x6041, 0xECF7, 0xF9F4, 0xECF8, 0xF9F5, - 0xECF9, 0x7A14, 0xECFA, 0xF9F6, 0xECFB, 0x834F, 0xECFC, 0x8CC3, - 0xECFD, 0x5165, 0xECFE, 0x5344, 0xEDA1, 0xF9F7, 0xEDA2, 0xF9F8, - 0xEDA3, 0xF9F9, 0xEDA4, 0x4ECD, 0xEDA5, 0x5269, 0xEDA6, 0x5B55, - 0xEDA7, 0x82BF, 0xEDA8, 0x4ED4, 0xEDA9, 0x523A, 0xEDAA, 0x54A8, - 0xEDAB, 0x59C9, 0xEDAC, 0x59FF, 0xEDAD, 0x5B50, 0xEDAE, 0x5B57, - 0xEDAF, 0x5B5C, 0xEDB0, 0x6063, 0xEDB1, 0x6148, 0xEDB2, 0x6ECB, - 0xEDB3, 0x7099, 0xEDB4, 0x716E, 0xEDB5, 0x7386, 0xEDB6, 0x74F7, - 0xEDB7, 0x75B5, 0xEDB8, 0x78C1, 0xEDB9, 0x7D2B, 0xEDBA, 0x8005, - 0xEDBB, 0x81EA, 0xEDBC, 0x8328, 0xEDBD, 0x8517, 0xEDBE, 0x85C9, - 0xEDBF, 0x8AEE, 0xEDC0, 0x8CC7, 0xEDC1, 0x96CC, 0xEDC2, 0x4F5C, - 0xEDC3, 0x52FA, 0xEDC4, 0x56BC, 0xEDC5, 0x65AB, 0xEDC6, 0x6628, - 0xEDC7, 0x707C, 0xEDC8, 0x70B8, 0xEDC9, 0x7235, 0xEDCA, 0x7DBD, - 0xEDCB, 0x828D, 0xEDCC, 0x914C, 0xEDCD, 0x96C0, 0xEDCE, 0x9D72, - 0xEDCF, 0x5B71, 0xEDD0, 0x68E7, 0xEDD1, 0x6B98, 0xEDD2, 0x6F7A, - 0xEDD3, 0x76DE, 0xEDD4, 0x5C91, 0xEDD5, 0x66AB, 0xEDD6, 0x6F5B, - 0xEDD7, 0x7BB4, 0xEDD8, 0x7C2A, 0xEDD9, 0x8836, 0xEDDA, 0x96DC, - 0xEDDB, 0x4E08, 0xEDDC, 0x4ED7, 0xEDDD, 0x5320, 0xEDDE, 0x5834, - 0xEDDF, 0x58BB, 0xEDE0, 0x58EF, 0xEDE1, 0x596C, 0xEDE2, 0x5C07, - 0xEDE3, 0x5E33, 0xEDE4, 0x5E84, 0xEDE5, 0x5F35, 0xEDE6, 0x638C, - 0xEDE7, 0x66B2, 0xEDE8, 0x6756, 0xEDE9, 0x6A1F, 0xEDEA, 0x6AA3, - 0xEDEB, 0x6B0C, 0xEDEC, 0x6F3F, 0xEDED, 0x7246, 0xEDEE, 0xF9FA, - 0xEDEF, 0x7350, 0xEDF0, 0x748B, 0xEDF1, 0x7AE0, 0xEDF2, 0x7CA7, - 0xEDF3, 0x8178, 0xEDF4, 0x81DF, 0xEDF5, 0x81E7, 0xEDF6, 0x838A, - 0xEDF7, 0x846C, 0xEDF8, 0x8523, 0xEDF9, 0x8594, 0xEDFA, 0x85CF, - 0xEDFB, 0x88DD, 0xEDFC, 0x8D13, 0xEDFD, 0x91AC, 0xEDFE, 0x9577, - 0xEEA1, 0x969C, 0xEEA2, 0x518D, 0xEEA3, 0x54C9, 0xEEA4, 0x5728, - 0xEEA5, 0x5BB0, 0xEEA6, 0x624D, 0xEEA7, 0x6750, 0xEEA8, 0x683D, - 0xEEA9, 0x6893, 0xEEAA, 0x6E3D, 0xEEAB, 0x6ED3, 0xEEAC, 0x707D, - 0xEEAD, 0x7E21, 0xEEAE, 0x88C1, 0xEEAF, 0x8CA1, 0xEEB0, 0x8F09, - 0xEEB1, 0x9F4B, 0xEEB2, 0x9F4E, 0xEEB3, 0x722D, 0xEEB4, 0x7B8F, - 0xEEB5, 0x8ACD, 0xEEB6, 0x931A, 0xEEB7, 0x4F47, 0xEEB8, 0x4F4E, - 0xEEB9, 0x5132, 0xEEBA, 0x5480, 0xEEBB, 0x59D0, 0xEEBC, 0x5E95, - 0xEEBD, 0x62B5, 0xEEBE, 0x6775, 0xEEBF, 0x696E, 0xEEC0, 0x6A17, - 0xEEC1, 0x6CAE, 0xEEC2, 0x6E1A, 0xEEC3, 0x72D9, 0xEEC4, 0x732A, - 0xEEC5, 0x75BD, 0xEEC6, 0x7BB8, 0xEEC7, 0x7D35, 0xEEC8, 0x82E7, - 0xEEC9, 0x83F9, 0xEECA, 0x8457, 0xEECB, 0x85F7, 0xEECC, 0x8A5B, - 0xEECD, 0x8CAF, 0xEECE, 0x8E87, 0xEECF, 0x9019, 0xEED0, 0x90B8, - 0xEED1, 0x96CE, 0xEED2, 0x9F5F, 0xEED3, 0x52E3, 0xEED4, 0x540A, - 0xEED5, 0x5AE1, 0xEED6, 0x5BC2, 0xEED7, 0x6458, 0xEED8, 0x6575, - 0xEED9, 0x6EF4, 0xEEDA, 0x72C4, 0xEEDB, 0xF9FB, 0xEEDC, 0x7684, - 0xEEDD, 0x7A4D, 0xEEDE, 0x7B1B, 0xEEDF, 0x7C4D, 0xEEE0, 0x7E3E, - 0xEEE1, 0x7FDF, 0xEEE2, 0x837B, 0xEEE3, 0x8B2B, 0xEEE4, 0x8CCA, - 0xEEE5, 0x8D64, 0xEEE6, 0x8DE1, 0xEEE7, 0x8E5F, 0xEEE8, 0x8FEA, - 0xEEE9, 0x8FF9, 0xEEEA, 0x9069, 0xEEEB, 0x93D1, 0xEEEC, 0x4F43, - 0xEEED, 0x4F7A, 0xEEEE, 0x50B3, 0xEEEF, 0x5168, 0xEEF0, 0x5178, - 0xEEF1, 0x524D, 0xEEF2, 0x526A, 0xEEF3, 0x5861, 0xEEF4, 0x587C, - 0xEEF5, 0x5960, 0xEEF6, 0x5C08, 0xEEF7, 0x5C55, 0xEEF8, 0x5EDB, - 0xEEF9, 0x609B, 0xEEFA, 0x6230, 0xEEFB, 0x6813, 0xEEFC, 0x6BBF, - 0xEEFD, 0x6C08, 0xEEFE, 0x6FB1, 0xEFA1, 0x714E, 0xEFA2, 0x7420, - 0xEFA3, 0x7530, 0xEFA4, 0x7538, 0xEFA5, 0x7551, 0xEFA6, 0x7672, - 0xEFA7, 0x7B4C, 0xEFA8, 0x7B8B, 0xEFA9, 0x7BAD, 0xEFAA, 0x7BC6, - 0xEFAB, 0x7E8F, 0xEFAC, 0x8A6E, 0xEFAD, 0x8F3E, 0xEFAE, 0x8F49, - 0xEFAF, 0x923F, 0xEFB0, 0x9293, 0xEFB1, 0x9322, 0xEFB2, 0x942B, - 0xEFB3, 0x96FB, 0xEFB4, 0x985A, 0xEFB5, 0x986B, 0xEFB6, 0x991E, - 0xEFB7, 0x5207, 0xEFB8, 0x622A, 0xEFB9, 0x6298, 0xEFBA, 0x6D59, - 0xEFBB, 0x7664, 0xEFBC, 0x7ACA, 0xEFBD, 0x7BC0, 0xEFBE, 0x7D76, - 0xEFBF, 0x5360, 0xEFC0, 0x5CBE, 0xEFC1, 0x5E97, 0xEFC2, 0x6F38, - 0xEFC3, 0x70B9, 0xEFC4, 0x7C98, 0xEFC5, 0x9711, 0xEFC6, 0x9B8E, - 0xEFC7, 0x9EDE, 0xEFC8, 0x63A5, 0xEFC9, 0x647A, 0xEFCA, 0x8776, - 0xEFCB, 0x4E01, 0xEFCC, 0x4E95, 0xEFCD, 0x4EAD, 0xEFCE, 0x505C, - 0xEFCF, 0x5075, 0xEFD0, 0x5448, 0xEFD1, 0x59C3, 0xEFD2, 0x5B9A, - 0xEFD3, 0x5E40, 0xEFD4, 0x5EAD, 0xEFD5, 0x5EF7, 0xEFD6, 0x5F81, - 0xEFD7, 0x60C5, 0xEFD8, 0x633A, 0xEFD9, 0x653F, 0xEFDA, 0x6574, - 0xEFDB, 0x65CC, 0xEFDC, 0x6676, 0xEFDD, 0x6678, 0xEFDE, 0x67FE, - 0xEFDF, 0x6968, 0xEFE0, 0x6A89, 0xEFE1, 0x6B63, 0xEFE2, 0x6C40, - 0xEFE3, 0x6DC0, 0xEFE4, 0x6DE8, 0xEFE5, 0x6E1F, 0xEFE6, 0x6E5E, - 0xEFE7, 0x701E, 0xEFE8, 0x70A1, 0xEFE9, 0x738E, 0xEFEA, 0x73FD, - 0xEFEB, 0x753A, 0xEFEC, 0x775B, 0xEFED, 0x7887, 0xEFEE, 0x798E, - 0xEFEF, 0x7A0B, 0xEFF0, 0x7A7D, 0xEFF1, 0x7CBE, 0xEFF2, 0x7D8E, - 0xEFF3, 0x8247, 0xEFF4, 0x8A02, 0xEFF5, 0x8AEA, 0xEFF6, 0x8C9E, - 0xEFF7, 0x912D, 0xEFF8, 0x914A, 0xEFF9, 0x91D8, 0xEFFA, 0x9266, - 0xEFFB, 0x92CC, 0xEFFC, 0x9320, 0xEFFD, 0x9706, 0xEFFE, 0x9756, - 0xF0A1, 0x975C, 0xF0A2, 0x9802, 0xF0A3, 0x9F0E, 0xF0A4, 0x5236, - 0xF0A5, 0x5291, 0xF0A6, 0x557C, 0xF0A7, 0x5824, 0xF0A8, 0x5E1D, - 0xF0A9, 0x5F1F, 0xF0AA, 0x608C, 0xF0AB, 0x63D0, 0xF0AC, 0x68AF, - 0xF0AD, 0x6FDF, 0xF0AE, 0x796D, 0xF0AF, 0x7B2C, 0xF0B0, 0x81CD, - 0xF0B1, 0x85BA, 0xF0B2, 0x88FD, 0xF0B3, 0x8AF8, 0xF0B4, 0x8E44, - 0xF0B5, 0x918D, 0xF0B6, 0x9664, 0xF0B7, 0x969B, 0xF0B8, 0x973D, - 0xF0B9, 0x984C, 0xF0BA, 0x9F4A, 0xF0BB, 0x4FCE, 0xF0BC, 0x5146, - 0xF0BD, 0x51CB, 0xF0BE, 0x52A9, 0xF0BF, 0x5632, 0xF0C0, 0x5F14, - 0xF0C1, 0x5F6B, 0xF0C2, 0x63AA, 0xF0C3, 0x64CD, 0xF0C4, 0x65E9, - 0xF0C5, 0x6641, 0xF0C6, 0x66FA, 0xF0C7, 0x66F9, 0xF0C8, 0x671D, - 0xF0C9, 0x689D, 0xF0CA, 0x68D7, 0xF0CB, 0x69FD, 0xF0CC, 0x6F15, - 0xF0CD, 0x6F6E, 0xF0CE, 0x7167, 0xF0CF, 0x71E5, 0xF0D0, 0x722A, - 0xF0D1, 0x74AA, 0xF0D2, 0x773A, 0xF0D3, 0x7956, 0xF0D4, 0x795A, - 0xF0D5, 0x79DF, 0xF0D6, 0x7A20, 0xF0D7, 0x7A95, 0xF0D8, 0x7C97, - 0xF0D9, 0x7CDF, 0xF0DA, 0x7D44, 0xF0DB, 0x7E70, 0xF0DC, 0x8087, - 0xF0DD, 0x85FB, 0xF0DE, 0x86A4, 0xF0DF, 0x8A54, 0xF0E0, 0x8ABF, - 0xF0E1, 0x8D99, 0xF0E2, 0x8E81, 0xF0E3, 0x9020, 0xF0E4, 0x906D, - 0xF0E5, 0x91E3, 0xF0E6, 0x963B, 0xF0E7, 0x96D5, 0xF0E8, 0x9CE5, - 0xF0E9, 0x65CF, 0xF0EA, 0x7C07, 0xF0EB, 0x8DB3, 0xF0EC, 0x93C3, - 0xF0ED, 0x5B58, 0xF0EE, 0x5C0A, 0xF0EF, 0x5352, 0xF0F0, 0x62D9, - 0xF0F1, 0x731D, 0xF0F2, 0x5027, 0xF0F3, 0x5B97, 0xF0F4, 0x5F9E, - 0xF0F5, 0x60B0, 0xF0F6, 0x616B, 0xF0F7, 0x68D5, 0xF0F8, 0x6DD9, - 0xF0F9, 0x742E, 0xF0FA, 0x7A2E, 0xF0FB, 0x7D42, 0xF0FC, 0x7D9C, - 0xF0FD, 0x7E31, 0xF0FE, 0x816B, 0xF1A1, 0x8E2A, 0xF1A2, 0x8E35, - 0xF1A3, 0x937E, 0xF1A4, 0x9418, 0xF1A5, 0x4F50, 0xF1A6, 0x5750, - 0xF1A7, 0x5DE6, 0xF1A8, 0x5EA7, 0xF1A9, 0x632B, 0xF1AA, 0x7F6A, - 0xF1AB, 0x4E3B, 0xF1AC, 0x4F4F, 0xF1AD, 0x4F8F, 0xF1AE, 0x505A, - 0xF1AF, 0x59DD, 0xF1B0, 0x80C4, 0xF1B1, 0x546A, 0xF1B2, 0x5468, - 0xF1B3, 0x55FE, 0xF1B4, 0x594F, 0xF1B5, 0x5B99, 0xF1B6, 0x5DDE, - 0xF1B7, 0x5EDA, 0xF1B8, 0x665D, 0xF1B9, 0x6731, 0xF1BA, 0x67F1, - 0xF1BB, 0x682A, 0xF1BC, 0x6CE8, 0xF1BD, 0x6D32, 0xF1BE, 0x6E4A, - 0xF1BF, 0x6F8D, 0xF1C0, 0x70B7, 0xF1C1, 0x73E0, 0xF1C2, 0x7587, - 0xF1C3, 0x7C4C, 0xF1C4, 0x7D02, 0xF1C5, 0x7D2C, 0xF1C6, 0x7DA2, - 0xF1C7, 0x821F, 0xF1C8, 0x86DB, 0xF1C9, 0x8A3B, 0xF1CA, 0x8A85, - 0xF1CB, 0x8D70, 0xF1CC, 0x8E8A, 0xF1CD, 0x8F33, 0xF1CE, 0x9031, - 0xF1CF, 0x914E, 0xF1D0, 0x9152, 0xF1D1, 0x9444, 0xF1D2, 0x99D0, - 0xF1D3, 0x7AF9, 0xF1D4, 0x7CA5, 0xF1D5, 0x4FCA, 0xF1D6, 0x5101, - 0xF1D7, 0x51C6, 0xF1D8, 0x57C8, 0xF1D9, 0x5BEF, 0xF1DA, 0x5CFB, - 0xF1DB, 0x6659, 0xF1DC, 0x6A3D, 0xF1DD, 0x6D5A, 0xF1DE, 0x6E96, - 0xF1DF, 0x6FEC, 0xF1E0, 0x710C, 0xF1E1, 0x756F, 0xF1E2, 0x7AE3, - 0xF1E3, 0x8822, 0xF1E4, 0x9021, 0xF1E5, 0x9075, 0xF1E6, 0x96CB, - 0xF1E7, 0x99FF, 0xF1E8, 0x8301, 0xF1E9, 0x4E2D, 0xF1EA, 0x4EF2, - 0xF1EB, 0x8846, 0xF1EC, 0x91CD, 0xF1ED, 0x537D, 0xF1EE, 0x6ADB, - 0xF1EF, 0x696B, 0xF1F0, 0x6C41, 0xF1F1, 0x847A, 0xF1F2, 0x589E, - 0xF1F3, 0x618E, 0xF1F4, 0x66FE, 0xF1F5, 0x62EF, 0xF1F6, 0x70DD, - 0xF1F7, 0x7511, 0xF1F8, 0x75C7, 0xF1F9, 0x7E52, 0xF1FA, 0x84B8, - 0xF1FB, 0x8B49, 0xF1FC, 0x8D08, 0xF1FD, 0x4E4B, 0xF1FE, 0x53EA, - 0xF2A1, 0x54AB, 0xF2A2, 0x5730, 0xF2A3, 0x5740, 0xF2A4, 0x5FD7, - 0xF2A5, 0x6301, 0xF2A6, 0x6307, 0xF2A7, 0x646F, 0xF2A8, 0x652F, - 0xF2A9, 0x65E8, 0xF2AA, 0x667A, 0xF2AB, 0x679D, 0xF2AC, 0x67B3, - 0xF2AD, 0x6B62, 0xF2AE, 0x6C60, 0xF2AF, 0x6C9A, 0xF2B0, 0x6F2C, - 0xF2B1, 0x77E5, 0xF2B2, 0x7825, 0xF2B3, 0x7949, 0xF2B4, 0x7957, - 0xF2B5, 0x7D19, 0xF2B6, 0x80A2, 0xF2B7, 0x8102, 0xF2B8, 0x81F3, - 0xF2B9, 0x829D, 0xF2BA, 0x82B7, 0xF2BB, 0x8718, 0xF2BC, 0x8A8C, - 0xF2BD, 0xF9FC, 0xF2BE, 0x8D04, 0xF2BF, 0x8DBE, 0xF2C0, 0x9072, - 0xF2C1, 0x76F4, 0xF2C2, 0x7A19, 0xF2C3, 0x7A37, 0xF2C4, 0x7E54, - 0xF2C5, 0x8077, 0xF2C6, 0x5507, 0xF2C7, 0x55D4, 0xF2C8, 0x5875, - 0xF2C9, 0x632F, 0xF2CA, 0x6422, 0xF2CB, 0x6649, 0xF2CC, 0x664B, - 0xF2CD, 0x686D, 0xF2CE, 0x699B, 0xF2CF, 0x6B84, 0xF2D0, 0x6D25, - 0xF2D1, 0x6EB1, 0xF2D2, 0x73CD, 0xF2D3, 0x7468, 0xF2D4, 0x74A1, - 0xF2D5, 0x755B, 0xF2D6, 0x75B9, 0xF2D7, 0x76E1, 0xF2D8, 0x771E, - 0xF2D9, 0x778B, 0xF2DA, 0x79E6, 0xF2DB, 0x7E09, 0xF2DC, 0x7E1D, - 0xF2DD, 0x81FB, 0xF2DE, 0x852F, 0xF2DF, 0x8897, 0xF2E0, 0x8A3A, - 0xF2E1, 0x8CD1, 0xF2E2, 0x8EEB, 0xF2E3, 0x8FB0, 0xF2E4, 0x9032, - 0xF2E5, 0x93AD, 0xF2E6, 0x9663, 0xF2E7, 0x9673, 0xF2E8, 0x9707, - 0xF2E9, 0x4F84, 0xF2EA, 0x53F1, 0xF2EB, 0x59EA, 0xF2EC, 0x5AC9, - 0xF2ED, 0x5E19, 0xF2EE, 0x684E, 0xF2EF, 0x74C6, 0xF2F0, 0x75BE, - 0xF2F1, 0x79E9, 0xF2F2, 0x7A92, 0xF2F3, 0x81A3, 0xF2F4, 0x86ED, - 0xF2F5, 0x8CEA, 0xF2F6, 0x8DCC, 0xF2F7, 0x8FED, 0xF2F8, 0x659F, - 0xF2F9, 0x6715, 0xF2FA, 0xF9FD, 0xF2FB, 0x57F7, 0xF2FC, 0x6F57, - 0xF2FD, 0x7DDD, 0xF2FE, 0x8F2F, 0xF3A1, 0x93F6, 0xF3A2, 0x96C6, - 0xF3A3, 0x5FB5, 0xF3A4, 0x61F2, 0xF3A5, 0x6F84, 0xF3A6, 0x4E14, - 0xF3A7, 0x4F98, 0xF3A8, 0x501F, 0xF3A9, 0x53C9, 0xF3AA, 0x55DF, - 0xF3AB, 0x5D6F, 0xF3AC, 0x5DEE, 0xF3AD, 0x6B21, 0xF3AE, 0x6B64, - 0xF3AF, 0x78CB, 0xF3B0, 0x7B9A, 0xF3B1, 0xF9FE, 0xF3B2, 0x8E49, - 0xF3B3, 0x8ECA, 0xF3B4, 0x906E, 0xF3B5, 0x6349, 0xF3B6, 0x643E, - 0xF3B7, 0x7740, 0xF3B8, 0x7A84, 0xF3B9, 0x932F, 0xF3BA, 0x947F, - 0xF3BB, 0x9F6A, 0xF3BC, 0x64B0, 0xF3BD, 0x6FAF, 0xF3BE, 0x71E6, - 0xF3BF, 0x74A8, 0xF3C0, 0x74DA, 0xF3C1, 0x7AC4, 0xF3C2, 0x7C12, - 0xF3C3, 0x7E82, 0xF3C4, 0x7CB2, 0xF3C5, 0x7E98, 0xF3C6, 0x8B9A, - 0xF3C7, 0x8D0A, 0xF3C8, 0x947D, 0xF3C9, 0x9910, 0xF3CA, 0x994C, - 0xF3CB, 0x5239, 0xF3CC, 0x5BDF, 0xF3CD, 0x64E6, 0xF3CE, 0x672D, - 0xF3CF, 0x7D2E, 0xF3D0, 0x50ED, 0xF3D1, 0x53C3, 0xF3D2, 0x5879, - 0xF3D3, 0x6158, 0xF3D4, 0x6159, 0xF3D5, 0x61FA, 0xF3D6, 0x65AC, - 0xF3D7, 0x7AD9, 0xF3D8, 0x8B92, 0xF3D9, 0x8B96, 0xF3DA, 0x5009, - 0xF3DB, 0x5021, 0xF3DC, 0x5275, 0xF3DD, 0x5531, 0xF3DE, 0x5A3C, - 0xF3DF, 0x5EE0, 0xF3E0, 0x5F70, 0xF3E1, 0x6134, 0xF3E2, 0x655E, - 0xF3E3, 0x660C, 0xF3E4, 0x6636, 0xF3E5, 0x66A2, 0xF3E6, 0x69CD, - 0xF3E7, 0x6EC4, 0xF3E8, 0x6F32, 0xF3E9, 0x7316, 0xF3EA, 0x7621, - 0xF3EB, 0x7A93, 0xF3EC, 0x8139, 0xF3ED, 0x8259, 0xF3EE, 0x83D6, - 0xF3EF, 0x84BC, 0xF3F0, 0x50B5, 0xF3F1, 0x57F0, 0xF3F2, 0x5BC0, - 0xF3F3, 0x5BE8, 0xF3F4, 0x5F69, 0xF3F5, 0x63A1, 0xF3F6, 0x7826, - 0xF3F7, 0x7DB5, 0xF3F8, 0x83DC, 0xF3F9, 0x8521, 0xF3FA, 0x91C7, - 0xF3FB, 0x91F5, 0xF3FC, 0x518A, 0xF3FD, 0x67F5, 0xF3FE, 0x7B56, - 0xF4A1, 0x8CAC, 0xF4A2, 0x51C4, 0xF4A3, 0x59BB, 0xF4A4, 0x60BD, - 0xF4A5, 0x8655, 0xF4A6, 0x501C, 0xF4A7, 0xF9FF, 0xF4A8, 0x5254, - 0xF4A9, 0x5C3A, 0xF4AA, 0x617D, 0xF4AB, 0x621A, 0xF4AC, 0x62D3, - 0xF4AD, 0x64F2, 0xF4AE, 0x65A5, 0xF4AF, 0x6ECC, 0xF4B0, 0x7620, - 0xF4B1, 0x810A, 0xF4B2, 0x8E60, 0xF4B3, 0x965F, 0xF4B4, 0x96BB, - 0xF4B5, 0x4EDF, 0xF4B6, 0x5343, 0xF4B7, 0x5598, 0xF4B8, 0x5929, - 0xF4B9, 0x5DDD, 0xF4BA, 0x64C5, 0xF4BB, 0x6CC9, 0xF4BC, 0x6DFA, - 0xF4BD, 0x7394, 0xF4BE, 0x7A7F, 0xF4BF, 0x821B, 0xF4C0, 0x85A6, - 0xF4C1, 0x8CE4, 0xF4C2, 0x8E10, 0xF4C3, 0x9077, 0xF4C4, 0x91E7, - 0xF4C5, 0x95E1, 0xF4C6, 0x9621, 0xF4C7, 0x97C6, 0xF4C8, 0x51F8, - 0xF4C9, 0x54F2, 0xF4CA, 0x5586, 0xF4CB, 0x5FB9, 0xF4CC, 0x64A4, - 0xF4CD, 0x6F88, 0xF4CE, 0x7DB4, 0xF4CF, 0x8F1F, 0xF4D0, 0x8F4D, - 0xF4D1, 0x9435, 0xF4D2, 0x50C9, 0xF4D3, 0x5C16, 0xF4D4, 0x6CBE, - 0xF4D5, 0x6DFB, 0xF4D6, 0x751B, 0xF4D7, 0x77BB, 0xF4D8, 0x7C3D, - 0xF4D9, 0x7C64, 0xF4DA, 0x8A79, 0xF4DB, 0x8AC2, 0xF4DC, 0x581E, - 0xF4DD, 0x59BE, 0xF4DE, 0x5E16, 0xF4DF, 0x6377, 0xF4E0, 0x7252, - 0xF4E1, 0x758A, 0xF4E2, 0x776B, 0xF4E3, 0x8ADC, 0xF4E4, 0x8CBC, - 0xF4E5, 0x8F12, 0xF4E6, 0x5EF3, 0xF4E7, 0x6674, 0xF4E8, 0x6DF8, - 0xF4E9, 0x807D, 0xF4EA, 0x83C1, 0xF4EB, 0x8ACB, 0xF4EC, 0x9751, - 0xF4ED, 0x9BD6, 0xF4EE, 0xFA00, 0xF4EF, 0x5243, 0xF4F0, 0x66FF, - 0xF4F1, 0x6D95, 0xF4F2, 0x6EEF, 0xF4F3, 0x7DE0, 0xF4F4, 0x8AE6, - 0xF4F5, 0x902E, 0xF4F6, 0x905E, 0xF4F7, 0x9AD4, 0xF4F8, 0x521D, - 0xF4F9, 0x527F, 0xF4FA, 0x54E8, 0xF4FB, 0x6194, 0xF4FC, 0x6284, - 0xF4FD, 0x62DB, 0xF4FE, 0x68A2, 0xF5A1, 0x6912, 0xF5A2, 0x695A, - 0xF5A3, 0x6A35, 0xF5A4, 0x7092, 0xF5A5, 0x7126, 0xF5A6, 0x785D, - 0xF5A7, 0x7901, 0xF5A8, 0x790E, 0xF5A9, 0x79D2, 0xF5AA, 0x7A0D, - 0xF5AB, 0x8096, 0xF5AC, 0x8278, 0xF5AD, 0x82D5, 0xF5AE, 0x8349, - 0xF5AF, 0x8549, 0xF5B0, 0x8C82, 0xF5B1, 0x8D85, 0xF5B2, 0x9162, - 0xF5B3, 0x918B, 0xF5B4, 0x91AE, 0xF5B5, 0x4FC3, 0xF5B6, 0x56D1, - 0xF5B7, 0x71ED, 0xF5B8, 0x77D7, 0xF5B9, 0x8700, 0xF5BA, 0x89F8, - 0xF5BB, 0x5BF8, 0xF5BC, 0x5FD6, 0xF5BD, 0x6751, 0xF5BE, 0x90A8, - 0xF5BF, 0x53E2, 0xF5C0, 0x585A, 0xF5C1, 0x5BF5, 0xF5C2, 0x60A4, - 0xF5C3, 0x6181, 0xF5C4, 0x6460, 0xF5C5, 0x7E3D, 0xF5C6, 0x8070, - 0xF5C7, 0x8525, 0xF5C8, 0x9283, 0xF5C9, 0x64AE, 0xF5CA, 0x50AC, - 0xF5CB, 0x5D14, 0xF5CC, 0x6700, 0xF5CD, 0x589C, 0xF5CE, 0x62BD, - 0xF5CF, 0x63A8, 0xF5D0, 0x690E, 0xF5D1, 0x6978, 0xF5D2, 0x6A1E, - 0xF5D3, 0x6E6B, 0xF5D4, 0x76BA, 0xF5D5, 0x79CB, 0xF5D6, 0x82BB, - 0xF5D7, 0x8429, 0xF5D8, 0x8ACF, 0xF5D9, 0x8DA8, 0xF5DA, 0x8FFD, - 0xF5DB, 0x9112, 0xF5DC, 0x914B, 0xF5DD, 0x919C, 0xF5DE, 0x9310, - 0xF5DF, 0x9318, 0xF5E0, 0x939A, 0xF5E1, 0x96DB, 0xF5E2, 0x9A36, - 0xF5E3, 0x9C0D, 0xF5E4, 0x4E11, 0xF5E5, 0x755C, 0xF5E6, 0x795D, - 0xF5E7, 0x7AFA, 0xF5E8, 0x7B51, 0xF5E9, 0x7BC9, 0xF5EA, 0x7E2E, - 0xF5EB, 0x84C4, 0xF5EC, 0x8E59, 0xF5ED, 0x8E74, 0xF5EE, 0x8EF8, - 0xF5EF, 0x9010, 0xF5F0, 0x6625, 0xF5F1, 0x693F, 0xF5F2, 0x7443, - 0xF5F3, 0x51FA, 0xF5F4, 0x672E, 0xF5F5, 0x9EDC, 0xF5F6, 0x5145, - 0xF5F7, 0x5FE0, 0xF5F8, 0x6C96, 0xF5F9, 0x87F2, 0xF5FA, 0x885D, - 0xF5FB, 0x8877, 0xF5FC, 0x60B4, 0xF5FD, 0x81B5, 0xF5FE, 0x8403, - 0xF6A1, 0x8D05, 0xF6A2, 0x53D6, 0xF6A3, 0x5439, 0xF6A4, 0x5634, - 0xF6A5, 0x5A36, 0xF6A6, 0x5C31, 0xF6A7, 0x708A, 0xF6A8, 0x7FE0, - 0xF6A9, 0x805A, 0xF6AA, 0x8106, 0xF6AB, 0x81ED, 0xF6AC, 0x8DA3, - 0xF6AD, 0x9189, 0xF6AE, 0x9A5F, 0xF6AF, 0x9DF2, 0xF6B0, 0x5074, - 0xF6B1, 0x4EC4, 0xF6B2, 0x53A0, 0xF6B3, 0x60FB, 0xF6B4, 0x6E2C, - 0xF6B5, 0x5C64, 0xF6B6, 0x4F88, 0xF6B7, 0x5024, 0xF6B8, 0x55E4, - 0xF6B9, 0x5CD9, 0xF6BA, 0x5E5F, 0xF6BB, 0x6065, 0xF6BC, 0x6894, - 0xF6BD, 0x6CBB, 0xF6BE, 0x6DC4, 0xF6BF, 0x71BE, 0xF6C0, 0x75D4, - 0xF6C1, 0x75F4, 0xF6C2, 0x7661, 0xF6C3, 0x7A1A, 0xF6C4, 0x7A49, - 0xF6C5, 0x7DC7, 0xF6C6, 0x7DFB, 0xF6C7, 0x7F6E, 0xF6C8, 0x81F4, - 0xF6C9, 0x86A9, 0xF6CA, 0x8F1C, 0xF6CB, 0x96C9, 0xF6CC, 0x99B3, - 0xF6CD, 0x9F52, 0xF6CE, 0x5247, 0xF6CF, 0x52C5, 0xF6D0, 0x98ED, - 0xF6D1, 0x89AA, 0xF6D2, 0x4E03, 0xF6D3, 0x67D2, 0xF6D4, 0x6F06, - 0xF6D5, 0x4FB5, 0xF6D6, 0x5BE2, 0xF6D7, 0x6795, 0xF6D8, 0x6C88, - 0xF6D9, 0x6D78, 0xF6DA, 0x741B, 0xF6DB, 0x7827, 0xF6DC, 0x91DD, - 0xF6DD, 0x937C, 0xF6DE, 0x87C4, 0xF6DF, 0x79E4, 0xF6E0, 0x7A31, - 0xF6E1, 0x5FEB, 0xF6E2, 0x4ED6, 0xF6E3, 0x54A4, 0xF6E4, 0x553E, - 0xF6E5, 0x58AE, 0xF6E6, 0x59A5, 0xF6E7, 0x60F0, 0xF6E8, 0x6253, - 0xF6E9, 0x62D6, 0xF6EA, 0x6736, 0xF6EB, 0x6955, 0xF6EC, 0x8235, - 0xF6ED, 0x9640, 0xF6EE, 0x99B1, 0xF6EF, 0x99DD, 0xF6F0, 0x502C, - 0xF6F1, 0x5353, 0xF6F2, 0x5544, 0xF6F3, 0x577C, 0xF6F4, 0xFA01, - 0xF6F5, 0x6258, 0xF6F6, 0xFA02, 0xF6F7, 0x64E2, 0xF6F8, 0x666B, - 0xF6F9, 0x67DD, 0xF6FA, 0x6FC1, 0xF6FB, 0x6FEF, 0xF6FC, 0x7422, - 0xF6FD, 0x7438, 0xF6FE, 0x8A17, 0xF7A1, 0x9438, 0xF7A2, 0x5451, - 0xF7A3, 0x5606, 0xF7A4, 0x5766, 0xF7A5, 0x5F48, 0xF7A6, 0x619A, - 0xF7A7, 0x6B4E, 0xF7A8, 0x7058, 0xF7A9, 0x70AD, 0xF7AA, 0x7DBB, - 0xF7AB, 0x8A95, 0xF7AC, 0x596A, 0xF7AD, 0x812B, 0xF7AE, 0x63A2, - 0xF7AF, 0x7708, 0xF7B0, 0x803D, 0xF7B1, 0x8CAA, 0xF7B2, 0x5854, - 0xF7B3, 0x642D, 0xF7B4, 0x69BB, 0xF7B5, 0x5B95, 0xF7B6, 0x5E11, - 0xF7B7, 0x6E6F, 0xF7B8, 0xFA03, 0xF7B9, 0x8569, 0xF7BA, 0x514C, - 0xF7BB, 0x53F0, 0xF7BC, 0x592A, 0xF7BD, 0x6020, 0xF7BE, 0x614B, - 0xF7BF, 0x6B86, 0xF7C0, 0x6C70, 0xF7C1, 0x6CF0, 0xF7C2, 0x7B1E, - 0xF7C3, 0x80CE, 0xF7C4, 0x82D4, 0xF7C5, 0x8DC6, 0xF7C6, 0x90B0, - 0xF7C7, 0x98B1, 0xF7C8, 0xFA04, 0xF7C9, 0x64C7, 0xF7CA, 0x6FA4, - 0xF7CB, 0x6491, 0xF7CC, 0x6504, 0xF7CD, 0x514E, 0xF7CE, 0x5410, - 0xF7CF, 0x571F, 0xF7D0, 0x8A0E, 0xF7D1, 0x615F, 0xF7D2, 0x6876, - 0xF7D3, 0xFA05, 0xF7D4, 0x75DB, 0xF7D5, 0x7B52, 0xF7D6, 0x7D71, - 0xF7D7, 0x901A, 0xF7D8, 0x5806, 0xF7D9, 0x69CC, 0xF7DA, 0x817F, - 0xF7DB, 0x892A, 0xF7DC, 0x9000, 0xF7DD, 0x9839, 0xF7DE, 0x5078, - 0xF7DF, 0x5957, 0xF7E0, 0x59AC, 0xF7E1, 0x6295, 0xF7E2, 0x900F, - 0xF7E3, 0x9B2A, 0xF7E4, 0x615D, 0xF7E5, 0x7279, 0xF7E6, 0x95D6, - 0xF7E7, 0x5761, 0xF7E8, 0x5A46, 0xF7E9, 0x5DF4, 0xF7EA, 0x628A, - 0xF7EB, 0x64AD, 0xF7EC, 0x64FA, 0xF7ED, 0x6777, 0xF7EE, 0x6CE2, - 0xF7EF, 0x6D3E, 0xF7F0, 0x722C, 0xF7F1, 0x7436, 0xF7F2, 0x7834, - 0xF7F3, 0x7F77, 0xF7F4, 0x82AD, 0xF7F5, 0x8DDB, 0xF7F6, 0x9817, - 0xF7F7, 0x5224, 0xF7F8, 0x5742, 0xF7F9, 0x677F, 0xF7FA, 0x7248, - 0xF7FB, 0x74E3, 0xF7FC, 0x8CA9, 0xF7FD, 0x8FA6, 0xF7FE, 0x9211, - 0xF8A1, 0x962A, 0xF8A2, 0x516B, 0xF8A3, 0x53ED, 0xF8A4, 0x634C, - 0xF8A5, 0x4F69, 0xF8A6, 0x5504, 0xF8A7, 0x6096, 0xF8A8, 0x6557, - 0xF8A9, 0x6C9B, 0xF8AA, 0x6D7F, 0xF8AB, 0x724C, 0xF8AC, 0x72FD, - 0xF8AD, 0x7A17, 0xF8AE, 0x8987, 0xF8AF, 0x8C9D, 0xF8B0, 0x5F6D, - 0xF8B1, 0x6F8E, 0xF8B2, 0x70F9, 0xF8B3, 0x81A8, 0xF8B4, 0x610E, - 0xF8B5, 0x4FBF, 0xF8B6, 0x504F, 0xF8B7, 0x6241, 0xF8B8, 0x7247, - 0xF8B9, 0x7BC7, 0xF8BA, 0x7DE8, 0xF8BB, 0x7FE9, 0xF8BC, 0x904D, - 0xF8BD, 0x97AD, 0xF8BE, 0x9A19, 0xF8BF, 0x8CB6, 0xF8C0, 0x576A, - 0xF8C1, 0x5E73, 0xF8C2, 0x67B0, 0xF8C3, 0x840D, 0xF8C4, 0x8A55, - 0xF8C5, 0x5420, 0xF8C6, 0x5B16, 0xF8C7, 0x5E63, 0xF8C8, 0x5EE2, - 0xF8C9, 0x5F0A, 0xF8CA, 0x6583, 0xF8CB, 0x80BA, 0xF8CC, 0x853D, - 0xF8CD, 0x9589, 0xF8CE, 0x965B, 0xF8CF, 0x4F48, 0xF8D0, 0x5305, - 0xF8D1, 0x530D, 0xF8D2, 0x530F, 0xF8D3, 0x5486, 0xF8D4, 0x54FA, - 0xF8D5, 0x5703, 0xF8D6, 0x5E03, 0xF8D7, 0x6016, 0xF8D8, 0x629B, - 0xF8D9, 0x62B1, 0xF8DA, 0x6355, 0xF8DB, 0xFA06, 0xF8DC, 0x6CE1, - 0xF8DD, 0x6D66, 0xF8DE, 0x75B1, 0xF8DF, 0x7832, 0xF8E0, 0x80DE, - 0xF8E1, 0x812F, 0xF8E2, 0x82DE, 0xF8E3, 0x8461, 0xF8E4, 0x84B2, - 0xF8E5, 0x888D, 0xF8E6, 0x8912, 0xF8E7, 0x900B, 0xF8E8, 0x92EA, - 0xF8E9, 0x98FD, 0xF8EA, 0x9B91, 0xF8EB, 0x5E45, 0xF8EC, 0x66B4, - 0xF8ED, 0x66DD, 0xF8EE, 0x7011, 0xF8EF, 0x7206, 0xF8F0, 0xFA07, - 0xF8F1, 0x4FF5, 0xF8F2, 0x527D, 0xF8F3, 0x5F6A, 0xF8F4, 0x6153, - 0xF8F5, 0x6753, 0xF8F6, 0x6A19, 0xF8F7, 0x6F02, 0xF8F8, 0x74E2, - 0xF8F9, 0x7968, 0xF8FA, 0x8868, 0xF8FB, 0x8C79, 0xF8FC, 0x98C7, - 0xF8FD, 0x98C4, 0xF8FE, 0x9A43, 0xF9A1, 0x54C1, 0xF9A2, 0x7A1F, - 0xF9A3, 0x6953, 0xF9A4, 0x8AF7, 0xF9A5, 0x8C4A, 0xF9A6, 0x98A8, - 0xF9A7, 0x99AE, 0xF9A8, 0x5F7C, 0xF9A9, 0x62AB, 0xF9AA, 0x75B2, - 0xF9AB, 0x76AE, 0xF9AC, 0x88AB, 0xF9AD, 0x907F, 0xF9AE, 0x9642, - 0xF9AF, 0x5339, 0xF9B0, 0x5F3C, 0xF9B1, 0x5FC5, 0xF9B2, 0x6CCC, - 0xF9B3, 0x73CC, 0xF9B4, 0x7562, 0xF9B5, 0x758B, 0xF9B6, 0x7B46, - 0xF9B7, 0x82FE, 0xF9B8, 0x999D, 0xF9B9, 0x4E4F, 0xF9BA, 0x903C, - 0xF9BB, 0x4E0B, 0xF9BC, 0x4F55, 0xF9BD, 0x53A6, 0xF9BE, 0x590F, - 0xF9BF, 0x5EC8, 0xF9C0, 0x6630, 0xF9C1, 0x6CB3, 0xF9C2, 0x7455, - 0xF9C3, 0x8377, 0xF9C4, 0x8766, 0xF9C5, 0x8CC0, 0xF9C6, 0x9050, - 0xF9C7, 0x971E, 0xF9C8, 0x9C15, 0xF9C9, 0x58D1, 0xF9CA, 0x5B78, - 0xF9CB, 0x8650, 0xF9CC, 0x8B14, 0xF9CD, 0x9DB4, 0xF9CE, 0x5BD2, - 0xF9CF, 0x6068, 0xF9D0, 0x608D, 0xF9D1, 0x65F1, 0xF9D2, 0x6C57, - 0xF9D3, 0x6F22, 0xF9D4, 0x6FA3, 0xF9D5, 0x701A, 0xF9D6, 0x7F55, - 0xF9D7, 0x7FF0, 0xF9D8, 0x9591, 0xF9D9, 0x9592, 0xF9DA, 0x9650, - 0xF9DB, 0x97D3, 0xF9DC, 0x5272, 0xF9DD, 0x8F44, 0xF9DE, 0x51FD, - 0xF9DF, 0x542B, 0xF9E0, 0x54B8, 0xF9E1, 0x5563, 0xF9E2, 0x558A, - 0xF9E3, 0x6ABB, 0xF9E4, 0x6DB5, 0xF9E5, 0x7DD8, 0xF9E6, 0x8266, - 0xF9E7, 0x929C, 0xF9E8, 0x9677, 0xF9E9, 0x9E79, 0xF9EA, 0x5408, - 0xF9EB, 0x54C8, 0xF9EC, 0x76D2, 0xF9ED, 0x86E4, 0xF9EE, 0x95A4, - 0xF9EF, 0x95D4, 0xF9F0, 0x965C, 0xF9F1, 0x4EA2, 0xF9F2, 0x4F09, - 0xF9F3, 0x59EE, 0xF9F4, 0x5AE6, 0xF9F5, 0x5DF7, 0xF9F6, 0x6052, - 0xF9F7, 0x6297, 0xF9F8, 0x676D, 0xF9F9, 0x6841, 0xF9FA, 0x6C86, - 0xF9FB, 0x6E2F, 0xF9FC, 0x7F38, 0xF9FD, 0x809B, 0xF9FE, 0x822A, - 0xFAA1, 0xFA08, 0xFAA2, 0xFA09, 0xFAA3, 0x9805, 0xFAA4, 0x4EA5, - 0xFAA5, 0x5055, 0xFAA6, 0x54B3, 0xFAA7, 0x5793, 0xFAA8, 0x595A, - 0xFAA9, 0x5B69, 0xFAAA, 0x5BB3, 0xFAAB, 0x61C8, 0xFAAC, 0x6977, - 0xFAAD, 0x6D77, 0xFAAE, 0x7023, 0xFAAF, 0x87F9, 0xFAB0, 0x89E3, - 0xFAB1, 0x8A72, 0xFAB2, 0x8AE7, 0xFAB3, 0x9082, 0xFAB4, 0x99ED, - 0xFAB5, 0x9AB8, 0xFAB6, 0x52BE, 0xFAB7, 0x6838, 0xFAB8, 0x5016, - 0xFAB9, 0x5E78, 0xFABA, 0x674F, 0xFABB, 0x8347, 0xFABC, 0x884C, - 0xFABD, 0x4EAB, 0xFABE, 0x5411, 0xFABF, 0x56AE, 0xFAC0, 0x73E6, - 0xFAC1, 0x9115, 0xFAC2, 0x97FF, 0xFAC3, 0x9909, 0xFAC4, 0x9957, - 0xFAC5, 0x9999, 0xFAC6, 0x5653, 0xFAC7, 0x589F, 0xFAC8, 0x865B, - 0xFAC9, 0x8A31, 0xFACA, 0x61B2, 0xFACB, 0x6AF6, 0xFACC, 0x737B, - 0xFACD, 0x8ED2, 0xFACE, 0x6B47, 0xFACF, 0x96AA, 0xFAD0, 0x9A57, - 0xFAD1, 0x5955, 0xFAD2, 0x7200, 0xFAD3, 0x8D6B, 0xFAD4, 0x9769, - 0xFAD5, 0x4FD4, 0xFAD6, 0x5CF4, 0xFAD7, 0x5F26, 0xFAD8, 0x61F8, - 0xFAD9, 0x665B, 0xFADA, 0x6CEB, 0xFADB, 0x70AB, 0xFADC, 0x7384, - 0xFADD, 0x73B9, 0xFADE, 0x73FE, 0xFADF, 0x7729, 0xFAE0, 0x774D, - 0xFAE1, 0x7D43, 0xFAE2, 0x7D62, 0xFAE3, 0x7E23, 0xFAE4, 0x8237, - 0xFAE5, 0x8852, 0xFAE6, 0xFA0A, 0xFAE7, 0x8CE2, 0xFAE8, 0x9249, - 0xFAE9, 0x986F, 0xFAEA, 0x5B51, 0xFAEB, 0x7A74, 0xFAEC, 0x8840, - 0xFAED, 0x9801, 0xFAEE, 0x5ACC, 0xFAEF, 0x4FE0, 0xFAF0, 0x5354, - 0xFAF1, 0x593E, 0xFAF2, 0x5CFD, 0xFAF3, 0x633E, 0xFAF4, 0x6D79, - 0xFAF5, 0x72F9, 0xFAF6, 0x8105, 0xFAF7, 0x8107, 0xFAF8, 0x83A2, - 0xFAF9, 0x92CF, 0xFAFA, 0x9830, 0xFAFB, 0x4EA8, 0xFAFC, 0x5144, - 0xFAFD, 0x5211, 0xFAFE, 0x578B, 0xFBA1, 0x5F62, 0xFBA2, 0x6CC2, - 0xFBA3, 0x6ECE, 0xFBA4, 0x7005, 0xFBA5, 0x7050, 0xFBA6, 0x70AF, - 0xFBA7, 0x7192, 0xFBA8, 0x73E9, 0xFBA9, 0x7469, 0xFBAA, 0x834A, - 0xFBAB, 0x87A2, 0xFBAC, 0x8861, 0xFBAD, 0x9008, 0xFBAE, 0x90A2, - 0xFBAF, 0x93A3, 0xFBB0, 0x99A8, 0xFBB1, 0x516E, 0xFBB2, 0x5F57, - 0xFBB3, 0x60E0, 0xFBB4, 0x6167, 0xFBB5, 0x66B3, 0xFBB6, 0x8559, - 0xFBB7, 0x8E4A, 0xFBB8, 0x91AF, 0xFBB9, 0x978B, 0xFBBA, 0x4E4E, - 0xFBBB, 0x4E92, 0xFBBC, 0x547C, 0xFBBD, 0x58D5, 0xFBBE, 0x58FA, - 0xFBBF, 0x597D, 0xFBC0, 0x5CB5, 0xFBC1, 0x5F27, 0xFBC2, 0x6236, - 0xFBC3, 0x6248, 0xFBC4, 0x660A, 0xFBC5, 0x6667, 0xFBC6, 0x6BEB, - 0xFBC7, 0x6D69, 0xFBC8, 0x6DCF, 0xFBC9, 0x6E56, 0xFBCA, 0x6EF8, - 0xFBCB, 0x6F94, 0xFBCC, 0x6FE0, 0xFBCD, 0x6FE9, 0xFBCE, 0x705D, - 0xFBCF, 0x72D0, 0xFBD0, 0x7425, 0xFBD1, 0x745A, 0xFBD2, 0x74E0, - 0xFBD3, 0x7693, 0xFBD4, 0x795C, 0xFBD5, 0x7CCA, 0xFBD6, 0x7E1E, - 0xFBD7, 0x80E1, 0xFBD8, 0x82A6, 0xFBD9, 0x846B, 0xFBDA, 0x84BF, - 0xFBDB, 0x864E, 0xFBDC, 0x865F, 0xFBDD, 0x8774, 0xFBDE, 0x8B77, - 0xFBDF, 0x8C6A, 0xFBE0, 0x93AC, 0xFBE1, 0x9800, 0xFBE2, 0x9865, - 0xFBE3, 0x60D1, 0xFBE4, 0x6216, 0xFBE5, 0x9177, 0xFBE6, 0x5A5A, - 0xFBE7, 0x660F, 0xFBE8, 0x6DF7, 0xFBE9, 0x6E3E, 0xFBEA, 0x743F, - 0xFBEB, 0x9B42, 0xFBEC, 0x5FFD, 0xFBED, 0x60DA, 0xFBEE, 0x7B0F, - 0xFBEF, 0x54C4, 0xFBF0, 0x5F18, 0xFBF1, 0x6C5E, 0xFBF2, 0x6CD3, - 0xFBF3, 0x6D2A, 0xFBF4, 0x70D8, 0xFBF5, 0x7D05, 0xFBF6, 0x8679, - 0xFBF7, 0x8A0C, 0xFBF8, 0x9D3B, 0xFBF9, 0x5316, 0xFBFA, 0x548C, - 0xFBFB, 0x5B05, 0xFBFC, 0x6A3A, 0xFBFD, 0x706B, 0xFBFE, 0x7575, - 0xFCA1, 0x798D, 0xFCA2, 0x79BE, 0xFCA3, 0x82B1, 0xFCA4, 0x83EF, - 0xFCA5, 0x8A71, 0xFCA6, 0x8B41, 0xFCA7, 0x8CA8, 0xFCA8, 0x9774, - 0xFCA9, 0xFA0B, 0xFCAA, 0x64F4, 0xFCAB, 0x652B, 0xFCAC, 0x78BA, - 0xFCAD, 0x78BB, 0xFCAE, 0x7A6B, 0xFCAF, 0x4E38, 0xFCB0, 0x559A, - 0xFCB1, 0x5950, 0xFCB2, 0x5BA6, 0xFCB3, 0x5E7B, 0xFCB4, 0x60A3, - 0xFCB5, 0x63DB, 0xFCB6, 0x6B61, 0xFCB7, 0x6665, 0xFCB8, 0x6853, - 0xFCB9, 0x6E19, 0xFCBA, 0x7165, 0xFCBB, 0x74B0, 0xFCBC, 0x7D08, - 0xFCBD, 0x9084, 0xFCBE, 0x9A69, 0xFCBF, 0x9C25, 0xFCC0, 0x6D3B, - 0xFCC1, 0x6ED1, 0xFCC2, 0x733E, 0xFCC3, 0x8C41, 0xFCC4, 0x95CA, - 0xFCC5, 0x51F0, 0xFCC6, 0x5E4C, 0xFCC7, 0x5FA8, 0xFCC8, 0x604D, - 0xFCC9, 0x60F6, 0xFCCA, 0x6130, 0xFCCB, 0x614C, 0xFCCC, 0x6643, - 0xFCCD, 0x6644, 0xFCCE, 0x69A5, 0xFCCF, 0x6CC1, 0xFCD0, 0x6E5F, - 0xFCD1, 0x6EC9, 0xFCD2, 0x6F62, 0xFCD3, 0x714C, 0xFCD4, 0x749C, - 0xFCD5, 0x7687, 0xFCD6, 0x7BC1, 0xFCD7, 0x7C27, 0xFCD8, 0x8352, - 0xFCD9, 0x8757, 0xFCDA, 0x9051, 0xFCDB, 0x968D, 0xFCDC, 0x9EC3, - 0xFCDD, 0x532F, 0xFCDE, 0x56DE, 0xFCDF, 0x5EFB, 0xFCE0, 0x5F8A, - 0xFCE1, 0x6062, 0xFCE2, 0x6094, 0xFCE3, 0x61F7, 0xFCE4, 0x6666, - 0xFCE5, 0x6703, 0xFCE6, 0x6A9C, 0xFCE7, 0x6DEE, 0xFCE8, 0x6FAE, - 0xFCE9, 0x7070, 0xFCEA, 0x736A, 0xFCEB, 0x7E6A, 0xFCEC, 0x81BE, - 0xFCED, 0x8334, 0xFCEE, 0x86D4, 0xFCEF, 0x8AA8, 0xFCF0, 0x8CC4, - 0xFCF1, 0x5283, 0xFCF2, 0x7372, 0xFCF3, 0x5B96, 0xFCF4, 0x6A6B, - 0xFCF5, 0x9404, 0xFCF6, 0x54EE, 0xFCF7, 0x5686, 0xFCF8, 0x5B5D, - 0xFCF9, 0x6548, 0xFCFA, 0x6585, 0xFCFB, 0x66C9, 0xFCFC, 0x689F, - 0xFCFD, 0x6D8D, 0xFCFE, 0x6DC6, 0xFDA1, 0x723B, 0xFDA2, 0x80B4, - 0xFDA3, 0x9175, 0xFDA4, 0x9A4D, 0xFDA5, 0x4FAF, 0xFDA6, 0x5019, - 0xFDA7, 0x539A, 0xFDA8, 0x540E, 0xFDA9, 0x543C, 0xFDAA, 0x5589, - 0xFDAB, 0x55C5, 0xFDAC, 0x5E3F, 0xFDAD, 0x5F8C, 0xFDAE, 0x673D, - 0xFDAF, 0x7166, 0xFDB0, 0x73DD, 0xFDB1, 0x9005, 0xFDB2, 0x52DB, - 0xFDB3, 0x52F3, 0xFDB4, 0x5864, 0xFDB5, 0x58CE, 0xFDB6, 0x7104, - 0xFDB7, 0x718F, 0xFDB8, 0x71FB, 0xFDB9, 0x85B0, 0xFDBA, 0x8A13, - 0xFDBB, 0x6688, 0xFDBC, 0x85A8, 0xFDBD, 0x55A7, 0xFDBE, 0x6684, - 0xFDBF, 0x714A, 0xFDC0, 0x8431, 0xFDC1, 0x5349, 0xFDC2, 0x5599, - 0xFDC3, 0x6BC1, 0xFDC4, 0x5F59, 0xFDC5, 0x5FBD, 0xFDC6, 0x63EE, - 0xFDC7, 0x6689, 0xFDC8, 0x7147, 0xFDC9, 0x8AF1, 0xFDCA, 0x8F1D, - 0xFDCB, 0x9EBE, 0xFDCC, 0x4F11, 0xFDCD, 0x643A, 0xFDCE, 0x70CB, - 0xFDCF, 0x7566, 0xFDD0, 0x8667, 0xFDD1, 0x6064, 0xFDD2, 0x8B4E, - 0xFDD3, 0x9DF8, 0xFDD4, 0x5147, 0xFDD5, 0x51F6, 0xFDD6, 0x5308, - 0xFDD7, 0x6D36, 0xFDD8, 0x80F8, 0xFDD9, 0x9ED1, 0xFDDA, 0x6615, - 0xFDDB, 0x6B23, 0xFDDC, 0x7098, 0xFDDD, 0x75D5, 0xFDDE, 0x5403, - 0xFDDF, 0x5C79, 0xFDE0, 0x7D07, 0xFDE1, 0x8A16, 0xFDE2, 0x6B20, - 0xFDE3, 0x6B3D, 0xFDE4, 0x6B46, 0xFDE5, 0x5438, 0xFDE6, 0x6070, - 0xFDE7, 0x6D3D, 0xFDE8, 0x7FD5, 0xFDE9, 0x8208, 0xFDEA, 0x50D6, - 0xFDEB, 0x51DE, 0xFDEC, 0x559C, 0xFDED, 0x566B, 0xFDEE, 0x56CD, - 0xFDEF, 0x59EC, 0xFDF0, 0x5B09, 0xFDF1, 0x5E0C, 0xFDF2, 0x6199, - 0xFDF3, 0x6198, 0xFDF4, 0x6231, 0xFDF5, 0x665E, 0xFDF6, 0x66E6, - 0xFDF7, 0x7199, 0xFDF8, 0x71B9, 0xFDF9, 0x71BA, 0xFDFA, 0x72A7, - 0xFDFB, 0x79A7, 0xFDFC, 0x7A00, 0xFDFD, 0x7FB2, 0xFDFE, 0x8A70, - 0, 0 -}; - - - -WCHAR ff_convert ( /* Converted code, 0 means conversion error */ - WCHAR chr, /* Character code to be converted */ - UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ -) -{ - const WCHAR *p; - WCHAR c; - int i, n, li, hi; - - - if (chr < 0x80) { /* ASCII */ - c = chr; - } else { - if (dir) { /* OEM code to unicode */ - p = oem2uni; - hi = sizeof oem2uni / 4 - 1; - } else { /* Unicode to OEM code */ - p = uni2oem; - hi = sizeof uni2oem / 4 - 1; - } - li = 0; - for (n = 16; n; n--) { - i = li + (hi - li) / 2; - if (chr == p[i * 2]) break; - if (chr > p[i * 2]) - li = i; - else - hi = i; - } - c = n ? p[i * 2 + 1] : 0; - } - - return c; -} - - - -WCHAR ff_wtoupper ( /* Returns upper converted character */ - WCHAR chr /* Unicode character to be upper converted (BMP only) */ -) -{ - /* Compressed upper conversion table */ - static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ - /* Basic Latin */ - 0x0061,0x031A, - /* Latin-1 Supplement */ - 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, - /* Latin Extended-A */ - 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, - /* Latin Extended-B */ - 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, - 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, - 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, - /* IPA Extensions */ - 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, - /* Greek, Coptic */ - 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, - 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, - 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, - /* Cyrillic */ - 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, - /* Armenian */ - 0x0561,0x0426, - - 0x0000 - }; - static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ - /* Phonetic Extensions */ - 0x1D7D,0x0001,0x2C63, - /* Latin Extended Additional */ - 0x1E00,0x0196, 0x1EA0,0x015A, - /* Greek Extended */ - 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, - 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, - 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, - 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, - 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, - /* Letterlike Symbols */ - 0x214E,0x0001,0x2132, - /* Number forms */ - 0x2170,0x0210, 0x2184,0x0001,0x2183, - /* Enclosed Alphanumerics */ - 0x24D0,0x051A, 0x2C30,0x042F, - /* Latin Extended-C */ - 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, - /* Coptic */ - 0x2C80,0x0164, - /* Georgian Supplement */ - 0x2D00,0x0826, - /* Full-width */ - 0xFF41,0x031A, - - 0x0000 - }; - const WCHAR *p; - WCHAR bc, nc, cmd; - - - p = chr < 0x1000 ? cvt1 : cvt2; - for (;;) { - bc = *p++; /* Get block base */ - if (!bc || chr < bc) break; - nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ - if (chr < bc + nc) { /* In the block? */ - switch (cmd) { - case 0: chr = p[chr - bc]; break; /* Table conversion */ - case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ - case 2: chr -= 16; break; /* Shift -16 */ - case 3: chr -= 32; break; /* Shift -32 */ - case 4: chr -= 48; break; /* Shift -48 */ - case 5: chr -= 26; break; /* Shift -26 */ - case 6: chr += 8; break; /* Shift +8 */ - case 7: chr -= 80; break; /* Shift -80 */ - case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ - } - break; - } - if (!cmd) p += nc; - } - - return chr; -} - -#endif diff --git a/extras/fatfs/cc950.h b/extras/fatfs/cc950.h deleted file mode 100644 index fe4204d..0000000 --- a/extras/fatfs/cc950.h +++ /dev/null @@ -1,6899 +0,0 @@ -/*------------------------------------------------------------------------*/ -/* Unicode - OEM code bidirectional converter (C)ChaN, 2015 */ -/* CP950 (Traditional Chinese Big5) */ -/*------------------------------------------------------------------------*/ - -#include "ff.h" - - -#if _USE_LFN && _CODE_PAGE == 950 - - -static -const WCHAR uni2oem[] = { -/* Unicode - OEM, Unicode - OEM, Unicode - OEM, Unicode - OEM */ - 0x00A7, 0xA1B1, 0x00AF, 0xA1C2, 0x00B0, 0xA258, 0x00B1, 0xA1D3, - 0x00B7, 0xA150, 0x00D7, 0xA1D1, 0x00F7, 0xA1D2, 0x02C7, 0xA3BE, - 0x02C9, 0xA3BC, 0x02CA, 0xA3BD, 0x02CB, 0xA3BF, 0x02CD, 0xA1C5, - 0x02D9, 0xA3BB, 0x0391, 0xA344, 0x0392, 0xA345, 0x0393, 0xA346, - 0x0394, 0xA347, 0x0395, 0xA348, 0x0396, 0xA349, 0x0397, 0xA34A, - 0x0398, 0xA34B, 0x0399, 0xA34C, 0x039A, 0xA34D, 0x039B, 0xA34E, - 0x039C, 0xA34F, 0x039D, 0xA350, 0x039E, 0xA351, 0x039F, 0xA352, - 0x03A0, 0xA353, 0x03A1, 0xA354, 0x03A3, 0xA355, 0x03A4, 0xA356, - 0x03A5, 0xA357, 0x03A6, 0xA358, 0x03A7, 0xA359, 0x03A8, 0xA35A, - 0x03A9, 0xA35B, 0x03B1, 0xA35C, 0x03B2, 0xA35D, 0x03B3, 0xA35E, - 0x03B4, 0xA35F, 0x03B5, 0xA360, 0x03B6, 0xA361, 0x03B7, 0xA362, - 0x03B8, 0xA363, 0x03B9, 0xA364, 0x03BA, 0xA365, 0x03BB, 0xA366, - 0x03BC, 0xA367, 0x03BD, 0xA368, 0x03BE, 0xA369, 0x03BF, 0xA36A, - 0x03C0, 0xA36B, 0x03C1, 0xA36C, 0x03C3, 0xA36D, 0x03C4, 0xA36E, - 0x03C5, 0xA36F, 0x03C6, 0xA370, 0x03C7, 0xA371, 0x03C8, 0xA372, - 0x03C9, 0xA373, 0x2013, 0xA156, 0x2014, 0xA158, 0x2018, 0xA1A5, - 0x2019, 0xA1A6, 0x201C, 0xA1A7, 0x201D, 0xA1A8, 0x2025, 0xA14C, - 0x2026, 0xA14B, 0x2027, 0xA145, 0x2032, 0xA1AC, 0x2035, 0xA1AB, - 0x203B, 0xA1B0, 0x20AC, 0xA3E1, 0x2103, 0xA24A, 0x2105, 0xA1C1, - 0x2109, 0xA24B, 0x2160, 0xA2B9, 0x2161, 0xA2BA, 0x2162, 0xA2BB, - 0x2163, 0xA2BC, 0x2164, 0xA2BD, 0x2165, 0xA2BE, 0x2166, 0xA2BF, - 0x2167, 0xA2C0, 0x2168, 0xA2C1, 0x2169, 0xA2C2, 0x2190, 0xA1F6, - 0x2191, 0xA1F4, 0x2192, 0xA1F7, 0x2193, 0xA1F5, 0x2196, 0xA1F8, - 0x2197, 0xA1F9, 0x2198, 0xA1FB, 0x2199, 0xA1FA, 0x2215, 0xA241, - 0x221A, 0xA1D4, 0x221E, 0xA1DB, 0x221F, 0xA1E8, 0x2220, 0xA1E7, - 0x2223, 0xA1FD, 0x2225, 0xA1FC, 0x2229, 0xA1E4, 0x222A, 0xA1E5, - 0x222B, 0xA1EC, 0x222E, 0xA1ED, 0x2234, 0xA1EF, 0x2235, 0xA1EE, - 0x2252, 0xA1DC, 0x2260, 0xA1DA, 0x2261, 0xA1DD, 0x2266, 0xA1D8, - 0x2267, 0xA1D9, 0x2295, 0xA1F2, 0x2299, 0xA1F3, 0x22A5, 0xA1E6, - 0x22BF, 0xA1E9, 0x2500, 0xA277, 0x2502, 0xA278, 0x250C, 0xA27A, - 0x2510, 0xA27B, 0x2514, 0xA27C, 0x2518, 0xA27D, 0x251C, 0xA275, - 0x2524, 0xA274, 0x252C, 0xA273, 0x2534, 0xA272, 0x253C, 0xA271, - 0x2550, 0xA2A4, 0x2550, 0xF9F9, 0x2551, 0xF9F8, 0x2552, 0xF9E6, - 0x2553, 0xF9EF, 0x2554, 0xF9DD, 0x2555, 0xF9E8, 0x2556, 0xF9F1, - 0x2557, 0xF9DF, 0x2558, 0xF9EC, 0x2559, 0xF9F5, 0x255A, 0xF9E3, - 0x255B, 0xF9EE, 0x255C, 0xF9F7, 0x255D, 0xF9E5, 0x255E, 0xA2A5, - 0x255E, 0xF9E9, 0x255F, 0xF9F2, 0x2560, 0xF9E0, 0x2561, 0xA2A7, - 0x2561, 0xF9EB, 0x2562, 0xF9F4, 0x2563, 0xF9E2, 0x2564, 0xF9E7, - 0x2565, 0xF9F0, 0x2566, 0xF9DE, 0x2567, 0xF9ED, 0x2568, 0xF9F6, - 0x2569, 0xF9E4, 0x256A, 0xA2A6, 0x256A, 0xF9EA, 0x256B, 0xF9F3, - 0x256C, 0xF9E1, 0x256D, 0xA27E, 0x256D, 0xF9FA, 0x256E, 0xA2A1, - 0x256E, 0xF9FB, 0x256F, 0xA2A3, 0x256F, 0xF9FD, 0x2570, 0xA2A2, - 0x2570, 0xF9FC, 0x2571, 0xA2AC, 0x2572, 0xA2AD, 0x2573, 0xA2AE, - 0x2574, 0xA15A, 0x2581, 0xA262, 0x2582, 0xA263, 0x2583, 0xA264, - 0x2584, 0xA265, 0x2585, 0xA266, 0x2586, 0xA267, 0x2587, 0xA268, - 0x2588, 0xA269, 0x2589, 0xA270, 0x258A, 0xA26F, 0x258B, 0xA26E, - 0x258C, 0xA26D, 0x258D, 0xA26C, 0x258E, 0xA26B, 0x258F, 0xA26A, - 0x2593, 0xF9FE, 0x2594, 0xA276, 0x2595, 0xA279, 0x25A0, 0xA1BD, - 0x25A1, 0xA1BC, 0x25B2, 0xA1B6, 0x25B3, 0xA1B5, 0x25BC, 0xA1BF, - 0x25BD, 0xA1BE, 0x25C6, 0xA1BB, 0x25C7, 0xA1BA, 0x25CB, 0xA1B3, - 0x25CE, 0xA1B7, 0x25CF, 0xA1B4, 0x25E2, 0xA2A8, 0x25E3, 0xA2A9, - 0x25E4, 0xA2AB, 0x25E5, 0xA2AA, 0x2605, 0xA1B9, 0x2606, 0xA1B8, - 0x2640, 0xA1F0, 0x2642, 0xA1F1, 0x3000, 0xA140, 0x3001, 0xA142, - 0x3002, 0xA143, 0x3003, 0xA1B2, 0x3008, 0xA171, 0x3009, 0xA172, - 0x300A, 0xA16D, 0x300B, 0xA16E, 0x300C, 0xA175, 0x300D, 0xA176, - 0x300E, 0xA179, 0x300F, 0xA17A, 0x3010, 0xA169, 0x3011, 0xA16A, - 0x3012, 0xA245, 0x3014, 0xA165, 0x3015, 0xA166, 0x301D, 0xA1A9, - 0x301E, 0xA1AA, 0x3021, 0xA2C3, 0x3022, 0xA2C4, 0x3023, 0xA2C5, - 0x3024, 0xA2C6, 0x3025, 0xA2C7, 0x3026, 0xA2C8, 0x3027, 0xA2C9, - 0x3028, 0xA2CA, 0x3029, 0xA2CB, 0x3105, 0xA374, 0x3106, 0xA375, - 0x3107, 0xA376, 0x3108, 0xA377, 0x3109, 0xA378, 0x310A, 0xA379, - 0x310B, 0xA37A, 0x310C, 0xA37B, 0x310D, 0xA37C, 0x310E, 0xA37D, - 0x310F, 0xA37E, 0x3110, 0xA3A1, 0x3111, 0xA3A2, 0x3112, 0xA3A3, - 0x3113, 0xA3A4, 0x3114, 0xA3A5, 0x3115, 0xA3A6, 0x3116, 0xA3A7, - 0x3117, 0xA3A8, 0x3118, 0xA3A9, 0x3119, 0xA3AA, 0x311A, 0xA3AB, - 0x311B, 0xA3AC, 0x311C, 0xA3AD, 0x311D, 0xA3AE, 0x311E, 0xA3AF, - 0x311F, 0xA3B0, 0x3120, 0xA3B1, 0x3121, 0xA3B2, 0x3122, 0xA3B3, - 0x3123, 0xA3B4, 0x3124, 0xA3B5, 0x3125, 0xA3B6, 0x3126, 0xA3B7, - 0x3127, 0xA3B8, 0x3128, 0xA3B9, 0x3129, 0xA3BA, 0x32A3, 0xA1C0, - 0x338E, 0xA255, 0x338F, 0xA256, 0x339C, 0xA250, 0x339D, 0xA251, - 0x339E, 0xA252, 0x33A1, 0xA254, 0x33C4, 0xA257, 0x33CE, 0xA253, - 0x33D1, 0xA1EB, 0x33D2, 0xA1EA, 0x33D5, 0xA24F, 0x4E00, 0xA440, - 0x4E01, 0xA442, 0x4E03, 0xA443, 0x4E07, 0xC945, 0x4E08, 0xA456, - 0x4E09, 0xA454, 0x4E0A, 0xA457, 0x4E0B, 0xA455, 0x4E0C, 0xC946, - 0x4E0D, 0xA4A3, 0x4E0E, 0xC94F, 0x4E0F, 0xC94D, 0x4E10, 0xA4A2, - 0x4E11, 0xA4A1, 0x4E14, 0xA542, 0x4E15, 0xA541, 0x4E16, 0xA540, - 0x4E18, 0xA543, 0x4E19, 0xA4FE, 0x4E1E, 0xA5E0, 0x4E1F, 0xA5E1, - 0x4E26, 0xA8C3, 0x4E2B, 0xA458, 0x4E2D, 0xA4A4, 0x4E2E, 0xC950, - 0x4E30, 0xA4A5, 0x4E31, 0xC963, 0x4E32, 0xA6EA, 0x4E33, 0xCBB1, - 0x4E38, 0xA459, 0x4E39, 0xA4A6, 0x4E3B, 0xA544, 0x4E3C, 0xC964, - 0x4E42, 0xC940, 0x4E43, 0xA444, 0x4E45, 0xA45B, 0x4E47, 0xC947, - 0x4E48, 0xA45C, 0x4E4B, 0xA4A7, 0x4E4D, 0xA545, 0x4E4E, 0xA547, - 0x4E4F, 0xA546, 0x4E52, 0xA5E2, 0x4E53, 0xA5E3, 0x4E56, 0xA8C4, - 0x4E58, 0xADBC, 0x4E59, 0xA441, 0x4E5C, 0xC941, 0x4E5D, 0xA445, - 0x4E5E, 0xA45E, 0x4E5F, 0xA45D, 0x4E69, 0xA5E4, 0x4E73, 0xA8C5, - 0x4E7E, 0xB0AE, 0x4E7F, 0xD44B, 0x4E82, 0xB6C3, 0x4E83, 0xDCB1, - 0x4E84, 0xDCB2, 0x4E86, 0xA446, 0x4E88, 0xA4A9, 0x4E8B, 0xA8C6, - 0x4E8C, 0xA447, 0x4E8D, 0xC948, 0x4E8E, 0xA45F, 0x4E91, 0xA4AA, - 0x4E92, 0xA4AC, 0x4E93, 0xC951, 0x4E94, 0xA4AD, 0x4E95, 0xA4AB, - 0x4E99, 0xA5E5, 0x4E9B, 0xA8C7, 0x4E9E, 0xA8C8, 0x4E9F, 0xAB45, - 0x4EA1, 0xA460, 0x4EA2, 0xA4AE, 0x4EA4, 0xA5E6, 0x4EA5, 0xA5E8, - 0x4EA6, 0xA5E7, 0x4EA8, 0xA6EB, 0x4EAB, 0xA8C9, 0x4EAC, 0xA8CA, - 0x4EAD, 0xAB46, 0x4EAE, 0xAB47, 0x4EB3, 0xADBD, 0x4EB6, 0xDCB3, - 0x4EB9, 0xF6D6, 0x4EBA, 0xA448, 0x4EC0, 0xA4B0, 0x4EC1, 0xA4AF, - 0x4EC2, 0xC952, 0x4EC3, 0xA4B1, 0x4EC4, 0xA4B7, 0x4EC6, 0xA4B2, - 0x4EC7, 0xA4B3, 0x4EC8, 0xC954, 0x4EC9, 0xC953, 0x4ECA, 0xA4B5, - 0x4ECB, 0xA4B6, 0x4ECD, 0xA4B4, 0x4ED4, 0xA54A, 0x4ED5, 0xA54B, - 0x4ED6, 0xA54C, 0x4ED7, 0xA54D, 0x4ED8, 0xA549, 0x4ED9, 0xA550, - 0x4EDA, 0xC96A, 0x4EDC, 0xC966, 0x4EDD, 0xC969, 0x4EDE, 0xA551, - 0x4EDF, 0xA561, 0x4EE1, 0xC968, 0x4EE3, 0xA54E, 0x4EE4, 0xA54F, - 0x4EE5, 0xA548, 0x4EE8, 0xC965, 0x4EE9, 0xC967, 0x4EF0, 0xA5F5, - 0x4EF1, 0xC9B0, 0x4EF2, 0xA5F2, 0x4EF3, 0xA5F6, 0x4EF4, 0xC9BA, - 0x4EF5, 0xC9AE, 0x4EF6, 0xA5F3, 0x4EF7, 0xC9B2, 0x4EFB, 0xA5F4, - 0x4EFD, 0xA5F7, 0x4EFF, 0xA5E9, 0x4F00, 0xC9B1, 0x4F01, 0xA5F8, - 0x4F02, 0xC9B5, 0x4F04, 0xC9B9, 0x4F05, 0xC9B6, 0x4F08, 0xC9B3, - 0x4F09, 0xA5EA, 0x4F0A, 0xA5EC, 0x4F0B, 0xA5F9, 0x4F0D, 0xA5EE, - 0x4F0E, 0xC9AB, 0x4F0F, 0xA5F1, 0x4F10, 0xA5EF, 0x4F11, 0xA5F0, - 0x4F12, 0xC9BB, 0x4F13, 0xC9B8, 0x4F14, 0xC9AF, 0x4F15, 0xA5ED, - 0x4F18, 0xC9AC, 0x4F19, 0xA5EB, 0x4F1D, 0xC9B4, 0x4F22, 0xC9B7, - 0x4F2C, 0xC9AD, 0x4F2D, 0xCA66, 0x4F2F, 0xA742, 0x4F30, 0xA6F4, - 0x4F33, 0xCA67, 0x4F34, 0xA6F1, 0x4F36, 0xA744, 0x4F38, 0xA6F9, - 0x4F3A, 0xA6F8, 0x4F3B, 0xCA5B, 0x4F3C, 0xA6FC, 0x4F3D, 0xA6F7, - 0x4F3E, 0xCA60, 0x4F3F, 0xCA68, 0x4F41, 0xCA64, 0x4F43, 0xA6FA, - 0x4F46, 0xA6FD, 0x4F47, 0xA6EE, 0x4F48, 0xA747, 0x4F49, 0xCA5D, - 0x4F4C, 0xCBBD, 0x4F4D, 0xA6EC, 0x4F4E, 0xA743, 0x4F4F, 0xA6ED, - 0x4F50, 0xA6F5, 0x4F51, 0xA6F6, 0x4F52, 0xCA62, 0x4F53, 0xCA5E, - 0x4F54, 0xA6FB, 0x4F55, 0xA6F3, 0x4F56, 0xCA5A, 0x4F57, 0xA6EF, - 0x4F58, 0xCA65, 0x4F59, 0xA745, 0x4F5A, 0xA748, 0x4F5B, 0xA6F2, - 0x4F5C, 0xA740, 0x4F5D, 0xA746, 0x4F5E, 0xA6F0, 0x4F5F, 0xCA63, - 0x4F60, 0xA741, 0x4F61, 0xCA69, 0x4F62, 0xCA5C, 0x4F63, 0xA6FE, - 0x4F64, 0xCA5F, 0x4F67, 0xCA61, 0x4F69, 0xA8D8, 0x4F6A, 0xCBBF, - 0x4F6B, 0xCBCB, 0x4F6C, 0xA8D0, 0x4F6E, 0xCBCC, 0x4F6F, 0xA8CB, - 0x4F70, 0xA8D5, 0x4F73, 0xA8CE, 0x4F74, 0xCBB9, 0x4F75, 0xA8D6, - 0x4F76, 0xCBB8, 0x4F77, 0xCBBC, 0x4F78, 0xCBC3, 0x4F79, 0xCBC1, - 0x4F7A, 0xA8DE, 0x4F7B, 0xA8D9, 0x4F7C, 0xCBB3, 0x4F7D, 0xCBB5, - 0x4F7E, 0xA8DB, 0x4F7F, 0xA8CF, 0x4F80, 0xCBB6, 0x4F81, 0xCBC2, - 0x4F82, 0xCBC9, 0x4F83, 0xA8D4, 0x4F84, 0xCBBB, 0x4F85, 0xCBB4, - 0x4F86, 0xA8D3, 0x4F87, 0xCBB7, 0x4F88, 0xA8D7, 0x4F89, 0xCBBA, - 0x4F8B, 0xA8D2, 0x4F8D, 0xA8CD, 0x4F8F, 0xA8DC, 0x4F90, 0xCBC4, - 0x4F91, 0xA8DD, 0x4F92, 0xCBC8, 0x4F94, 0xCBC6, 0x4F95, 0xCBCA, - 0x4F96, 0xA8DA, 0x4F97, 0xCBBE, 0x4F98, 0xCBB2, 0x4F9A, 0xCBC0, - 0x4F9B, 0xA8D1, 0x4F9C, 0xCBC5, 0x4F9D, 0xA8CC, 0x4F9E, 0xCBC7, - 0x4FAE, 0xAB56, 0x4FAF, 0xAB4A, 0x4FB2, 0xCDE0, 0x4FB3, 0xCDE8, - 0x4FB5, 0xAB49, 0x4FB6, 0xAB51, 0x4FB7, 0xAB5D, 0x4FB9, 0xCDEE, - 0x4FBA, 0xCDEC, 0x4FBB, 0xCDE7, 0x4FBF, 0xAB4B, 0x4FC0, 0xCDED, - 0x4FC1, 0xCDE3, 0x4FC2, 0xAB59, 0x4FC3, 0xAB50, 0x4FC4, 0xAB58, - 0x4FC5, 0xCDDE, 0x4FC7, 0xCDEA, 0x4FC9, 0xCDE1, 0x4FCA, 0xAB54, - 0x4FCB, 0xCDE2, 0x4FCD, 0xCDDD, 0x4FCE, 0xAB5B, 0x4FCF, 0xAB4E, - 0x4FD0, 0xAB57, 0x4FD1, 0xAB4D, 0x4FD3, 0xCDDF, 0x4FD4, 0xCDE4, - 0x4FD6, 0xCDEB, 0x4FD7, 0xAB55, 0x4FD8, 0xAB52, 0x4FD9, 0xCDE6, - 0x4FDA, 0xAB5A, 0x4FDB, 0xCDE9, 0x4FDC, 0xCDE5, 0x4FDD, 0xAB4F, - 0x4FDE, 0xAB5C, 0x4FDF, 0xAB53, 0x4FE0, 0xAB4C, 0x4FE1, 0xAB48, - 0x4FEC, 0xCDEF, 0x4FEE, 0xADD7, 0x4FEF, 0xADC1, 0x4FF1, 0xADD1, - 0x4FF3, 0xADD6, 0x4FF4, 0xD0D0, 0x4FF5, 0xD0CF, 0x4FF6, 0xD0D4, - 0x4FF7, 0xD0D5, 0x4FF8, 0xADC4, 0x4FFA, 0xADCD, 0x4FFE, 0xADDA, - 0x5000, 0xADCE, 0x5005, 0xD0C9, 0x5006, 0xADC7, 0x5007, 0xD0CA, - 0x5009, 0xADDC, 0x500B, 0xADD3, 0x500C, 0xADBE, 0x500D, 0xADBF, - 0x500E, 0xD0DD, 0x500F, 0xB0BF, 0x5011, 0xADCC, 0x5012, 0xADCB, - 0x5013, 0xD0CB, 0x5014, 0xADCF, 0x5015, 0xD45B, 0x5016, 0xADC6, - 0x5017, 0xD0D6, 0x5018, 0xADD5, 0x5019, 0xADD4, 0x501A, 0xADCA, - 0x501B, 0xD0CE, 0x501C, 0xD0D7, 0x501E, 0xD0C8, 0x501F, 0xADC9, - 0x5020, 0xD0D8, 0x5021, 0xADD2, 0x5022, 0xD0CC, 0x5023, 0xADC0, - 0x5025, 0xADC3, 0x5026, 0xADC2, 0x5027, 0xD0D9, 0x5028, 0xADD0, - 0x5029, 0xADC5, 0x502A, 0xADD9, 0x502B, 0xADDB, 0x502C, 0xD0D3, - 0x502D, 0xADD8, 0x502F, 0xD0DB, 0x5030, 0xD0CD, 0x5031, 0xD0DC, - 0x5033, 0xD0D1, 0x5035, 0xD0DA, 0x5037, 0xD0D2, 0x503C, 0xADC8, - 0x5040, 0xD463, 0x5041, 0xD457, 0x5043, 0xB0B3, 0x5045, 0xD45C, - 0x5046, 0xD462, 0x5047, 0xB0B2, 0x5048, 0xD455, 0x5049, 0xB0B6, - 0x504A, 0xD459, 0x504B, 0xD452, 0x504C, 0xB0B4, 0x504D, 0xD456, - 0x504E, 0xB0B9, 0x504F, 0xB0BE, 0x5051, 0xD467, 0x5053, 0xD451, - 0x5055, 0xB0BA, 0x5057, 0xD466, 0x505A, 0xB0B5, 0x505B, 0xD458, - 0x505C, 0xB0B1, 0x505D, 0xD453, 0x505E, 0xD44F, 0x505F, 0xD45D, - 0x5060, 0xD450, 0x5061, 0xD44E, 0x5062, 0xD45A, 0x5063, 0xD460, - 0x5064, 0xD461, 0x5065, 0xB0B7, 0x5068, 0xD85B, 0x5069, 0xD45E, - 0x506A, 0xD44D, 0x506B, 0xD45F, 0x506D, 0xB0C1, 0x506E, 0xD464, - 0x506F, 0xB0C0, 0x5070, 0xD44C, 0x5072, 0xD454, 0x5073, 0xD465, - 0x5074, 0xB0BC, 0x5075, 0xB0BB, 0x5076, 0xB0B8, 0x5077, 0xB0BD, - 0x507A, 0xB0AF, 0x507D, 0xB0B0, 0x5080, 0xB3C8, 0x5082, 0xD85E, - 0x5083, 0xD857, 0x5085, 0xB3C5, 0x5087, 0xD85F, 0x508B, 0xD855, - 0x508C, 0xD858, 0x508D, 0xB3C4, 0x508E, 0xD859, 0x5091, 0xB3C7, - 0x5092, 0xD85D, 0x5094, 0xD853, 0x5095, 0xD852, 0x5096, 0xB3C9, - 0x5098, 0xB3CA, 0x5099, 0xB3C6, 0x509A, 0xB3CB, 0x509B, 0xD851, - 0x509C, 0xD85C, 0x509D, 0xD85A, 0x509E, 0xD854, 0x50A2, 0xB3C3, - 0x50A3, 0xD856, 0x50AC, 0xB6CA, 0x50AD, 0xB6C4, 0x50AE, 0xDCB7, - 0x50AF, 0xB6CD, 0x50B0, 0xDCBD, 0x50B1, 0xDCC0, 0x50B2, 0xB6C6, - 0x50B3, 0xB6C7, 0x50B4, 0xDCBA, 0x50B5, 0xB6C5, 0x50B6, 0xDCC3, - 0x50B7, 0xB6CB, 0x50B8, 0xDCC4, 0x50BA, 0xDCBF, 0x50BB, 0xB6CC, - 0x50BD, 0xDCB4, 0x50BE, 0xB6C9, 0x50BF, 0xDCB5, 0x50C1, 0xDCBE, - 0x50C2, 0xDCBC, 0x50C4, 0xDCB8, 0x50C5, 0xB6C8, 0x50C6, 0xDCB6, - 0x50C7, 0xB6CE, 0x50C8, 0xDCBB, 0x50C9, 0xDCC2, 0x50CA, 0xDCB9, - 0x50CB, 0xDCC1, 0x50CE, 0xB9B6, 0x50CF, 0xB9B3, 0x50D1, 0xB9B4, - 0x50D3, 0xE0F9, 0x50D4, 0xE0F1, 0x50D5, 0xB9B2, 0x50D6, 0xB9AF, - 0x50D7, 0xE0F2, 0x50DA, 0xB9B1, 0x50DB, 0xE0F5, 0x50DD, 0xE0F7, - 0x50E0, 0xE0FE, 0x50E3, 0xE0FD, 0x50E4, 0xE0F8, 0x50E5, 0xB9AE, - 0x50E6, 0xE0F0, 0x50E7, 0xB9AC, 0x50E8, 0xE0F3, 0x50E9, 0xB9B7, - 0x50EA, 0xE0F6, 0x50EC, 0xE0FA, 0x50ED, 0xB9B0, 0x50EE, 0xB9AD, - 0x50EF, 0xE0FC, 0x50F0, 0xE0FB, 0x50F1, 0xB9B5, 0x50F3, 0xE0F4, - 0x50F5, 0xBBF8, 0x50F6, 0xE4EC, 0x50F8, 0xE4E9, 0x50F9, 0xBBF9, - 0x50FB, 0xBBF7, 0x50FD, 0xE4F0, 0x50FE, 0xE4ED, 0x50FF, 0xE4E6, - 0x5100, 0xBBF6, 0x5102, 0xBBFA, 0x5103, 0xE4E7, 0x5104, 0xBBF5, - 0x5105, 0xBBFD, 0x5106, 0xE4EA, 0x5107, 0xE4EB, 0x5108, 0xBBFB, - 0x5109, 0xBBFC, 0x510A, 0xE4F1, 0x510B, 0xE4EE, 0x510C, 0xE4EF, - 0x5110, 0xBEAA, 0x5111, 0xE8F8, 0x5112, 0xBEA7, 0x5113, 0xE8F5, - 0x5114, 0xBEA9, 0x5115, 0xBEAB, 0x5117, 0xE8F6, 0x5118, 0xBEA8, - 0x511A, 0xE8F7, 0x511C, 0xE8F4, 0x511F, 0xC076, 0x5120, 0xECBD, - 0x5121, 0xC077, 0x5122, 0xECBB, 0x5124, 0xECBC, 0x5125, 0xECBA, - 0x5126, 0xECB9, 0x5129, 0xECBE, 0x512A, 0xC075, 0x512D, 0xEFB8, - 0x512E, 0xEFB9, 0x5130, 0xE4E8, 0x5131, 0xEFB7, 0x5132, 0xC078, - 0x5133, 0xC35F, 0x5134, 0xF1EB, 0x5135, 0xF1EC, 0x5137, 0xC4D7, - 0x5138, 0xC4D8, 0x5139, 0xF5C1, 0x513A, 0xF5C0, 0x513B, 0xC56C, - 0x513C, 0xC56B, 0x513D, 0xF7D0, 0x513F, 0xA449, 0x5140, 0xA461, - 0x5141, 0xA4B9, 0x5143, 0xA4B8, 0x5144, 0xA553, 0x5145, 0xA552, - 0x5146, 0xA5FC, 0x5147, 0xA5FB, 0x5148, 0xA5FD, 0x5149, 0xA5FA, - 0x514B, 0xA74A, 0x514C, 0xA749, 0x514D, 0xA74B, 0x5152, 0xA8E0, - 0x5154, 0xA8DF, 0x5155, 0xA8E1, 0x5157, 0xAB5E, 0x5159, 0xA259, - 0x515A, 0xD0DE, 0x515B, 0xA25A, 0x515C, 0xB0C2, 0x515D, 0xA25C, - 0x515E, 0xA25B, 0x515F, 0xD860, 0x5161, 0xA25D, 0x5162, 0xB9B8, - 0x5163, 0xA25E, 0x5165, 0xA44A, 0x5167, 0xA4BA, 0x5168, 0xA5FE, - 0x5169, 0xA8E2, 0x516B, 0xA44B, 0x516C, 0xA4BD, 0x516D, 0xA4BB, - 0x516E, 0xA4BC, 0x5171, 0xA640, 0x5175, 0xA74C, 0x5176, 0xA8E4, - 0x5177, 0xA8E3, 0x5178, 0xA8E5, 0x517C, 0xADDD, 0x5180, 0xBEAC, - 0x5187, 0xC94E, 0x5189, 0xA554, 0x518A, 0xA555, 0x518D, 0xA641, - 0x518F, 0xCA6A, 0x5191, 0xAB60, 0x5192, 0xAB5F, 0x5193, 0xD0E0, - 0x5194, 0xD0DF, 0x5195, 0xB0C3, 0x5197, 0xA4BE, 0x5198, 0xC955, - 0x519E, 0xCBCD, 0x51A0, 0xAB61, 0x51A2, 0xADE0, 0x51A4, 0xADDE, - 0x51A5, 0xADDF, 0x51AA, 0xBEAD, 0x51AC, 0xA556, 0x51B0, 0xA642, - 0x51B1, 0xC9BC, 0x51B6, 0xA74D, 0x51B7, 0xA74E, 0x51B9, 0xCA6B, - 0x51BC, 0xCBCE, 0x51BD, 0xA8E6, 0x51BE, 0xCBCF, 0x51C4, 0xD0E2, - 0x51C5, 0xD0E3, 0x51C6, 0xADE3, 0x51C8, 0xD0E4, 0x51CA, 0xD0E1, - 0x51CB, 0xADE4, 0x51CC, 0xADE2, 0x51CD, 0xADE1, 0x51CE, 0xD0E5, - 0x51D0, 0xD468, 0x51D4, 0xD861, 0x51D7, 0xDCC5, 0x51D8, 0xE140, - 0x51DC, 0xBBFE, 0x51DD, 0xBEAE, 0x51DE, 0xE8F9, 0x51E0, 0xA44C, - 0x51E1, 0xA45A, 0x51F0, 0xB0C4, 0x51F1, 0xB3CD, 0x51F3, 0xB9B9, - 0x51F5, 0xC942, 0x51F6, 0xA4BF, 0x51F8, 0xA559, 0x51F9, 0xA557, - 0x51FA, 0xA558, 0x51FD, 0xA8E7, 0x5200, 0xA44D, 0x5201, 0xA44E, - 0x5203, 0xA462, 0x5206, 0xA4C0, 0x5207, 0xA4C1, 0x5208, 0xA4C2, - 0x5209, 0xC9BE, 0x520A, 0xA55A, 0x520C, 0xC96B, 0x520E, 0xA646, - 0x5210, 0xC9BF, 0x5211, 0xA644, 0x5212, 0xA645, 0x5213, 0xC9BD, - 0x5216, 0xA647, 0x5217, 0xA643, 0x521C, 0xCA6C, 0x521D, 0xAAEC, - 0x521E, 0xCA6D, 0x5221, 0xCA6E, 0x5224, 0xA750, 0x5225, 0xA74F, - 0x5228, 0xA753, 0x5229, 0xA751, 0x522A, 0xA752, 0x522E, 0xA8ED, - 0x5230, 0xA8EC, 0x5231, 0xCBD4, 0x5232, 0xCBD1, 0x5233, 0xCBD2, - 0x5235, 0xCBD0, 0x5236, 0xA8EE, 0x5237, 0xA8EA, 0x5238, 0xA8E9, - 0x523A, 0xA8EB, 0x523B, 0xA8E8, 0x5241, 0xA8EF, 0x5243, 0xAB63, - 0x5244, 0xCDF0, 0x5246, 0xCBD3, 0x5247, 0xAB68, 0x5249, 0xCDF1, - 0x524A, 0xAB64, 0x524B, 0xAB67, 0x524C, 0xAB66, 0x524D, 0xAB65, - 0x524E, 0xAB62, 0x5252, 0xD0E8, 0x5254, 0xADE7, 0x5255, 0xD0EB, - 0x5256, 0xADE5, 0x525A, 0xD0E7, 0x525B, 0xADE8, 0x525C, 0xADE6, - 0x525D, 0xADE9, 0x525E, 0xD0E9, 0x525F, 0xD0EA, 0x5261, 0xD0E6, - 0x5262, 0xD0EC, 0x5269, 0xB3D1, 0x526A, 0xB0C5, 0x526B, 0xD469, - 0x526C, 0xD46B, 0x526D, 0xD46A, 0x526E, 0xD46C, 0x526F, 0xB0C6, - 0x5272, 0xB3CE, 0x5274, 0xB3CF, 0x5275, 0xB3D0, 0x5277, 0xB6D0, - 0x5278, 0xDCC7, 0x527A, 0xDCC6, 0x527B, 0xDCC8, 0x527C, 0xDCC9, - 0x527D, 0xB6D1, 0x527F, 0xB6CF, 0x5280, 0xE141, 0x5281, 0xE142, - 0x5282, 0xB9BB, 0x5283, 0xB9BA, 0x5284, 0xE35A, 0x5287, 0xBC40, - 0x5288, 0xBC41, 0x5289, 0xBC42, 0x528A, 0xBC44, 0x528B, 0xE4F2, - 0x528C, 0xE4F3, 0x528D, 0xBC43, 0x5291, 0xBEAF, 0x5293, 0xBEB0, - 0x5296, 0xF1ED, 0x5297, 0xF5C3, 0x5298, 0xF5C2, 0x5299, 0xF7D1, - 0x529B, 0xA44F, 0x529F, 0xA55C, 0x52A0, 0xA55B, 0x52A3, 0xA648, - 0x52A6, 0xC9C0, 0x52A9, 0xA755, 0x52AA, 0xA756, 0x52AB, 0xA754, - 0x52AC, 0xA757, 0x52AD, 0xCA6F, 0x52AE, 0xCA70, 0x52BB, 0xA8F1, - 0x52BC, 0xCBD5, 0x52BE, 0xA8F0, 0x52C0, 0xCDF2, 0x52C1, 0xAB6C, - 0x52C2, 0xCDF3, 0x52C3, 0xAB6B, 0x52C7, 0xAB69, 0x52C9, 0xAB6A, - 0x52CD, 0xD0ED, 0x52D2, 0xB0C7, 0x52D3, 0xD46E, 0x52D5, 0xB0CA, - 0x52D6, 0xD46D, 0x52D7, 0xB1E5, 0x52D8, 0xB0C9, 0x52D9, 0xB0C8, - 0x52DB, 0xB3D4, 0x52DD, 0xB3D3, 0x52DE, 0xB3D2, 0x52DF, 0xB6D2, - 0x52E2, 0xB6D5, 0x52E3, 0xB6D6, 0x52E4, 0xB6D4, 0x52E6, 0xB6D3, - 0x52E9, 0xE143, 0x52EB, 0xE144, 0x52EF, 0xE4F5, 0x52F0, 0xBC45, - 0x52F1, 0xE4F4, 0x52F3, 0xBEB1, 0x52F4, 0xECBF, 0x52F5, 0xC079, - 0x52F7, 0xF1EE, 0x52F8, 0xC455, 0x52FA, 0xA463, 0x52FB, 0xA4C3, - 0x52FC, 0xC956, 0x52FE, 0xA4C4, 0x52FF, 0xA4C5, 0x5305, 0xA55D, - 0x5306, 0xA55E, 0x5308, 0xA649, 0x5309, 0xCA71, 0x530A, 0xCBD6, - 0x530B, 0xCBD7, 0x530D, 0xAB6D, 0x530E, 0xD0EE, 0x530F, 0xB0CC, - 0x5310, 0xB0CB, 0x5311, 0xD863, 0x5312, 0xD862, 0x5315, 0xA450, - 0x5316, 0xA4C6, 0x5317, 0xA55F, 0x5319, 0xB0CD, 0x531A, 0xC943, - 0x531C, 0xC96C, 0x531D, 0xA560, 0x531F, 0xC9C2, 0x5320, 0xA64B, - 0x5321, 0xA64A, 0x5322, 0xC9C1, 0x5323, 0xA758, 0x532A, 0xADEA, - 0x532D, 0xD46F, 0x532F, 0xB6D7, 0x5330, 0xE145, 0x5331, 0xB9BC, - 0x5334, 0xE8FA, 0x5337, 0xF3FD, 0x5339, 0xA4C7, 0x533C, 0xCBD8, - 0x533D, 0xCDF4, 0x533E, 0xB0D0, 0x533F, 0xB0CE, 0x5340, 0xB0CF, - 0x5341, 0xA2CC, 0x5341, 0xA451, 0x5343, 0xA464, 0x5344, 0xA2CD, - 0x5345, 0xA2CE, 0x5345, 0xA4CA, 0x5347, 0xA4C9, 0x5348, 0xA4C8, - 0x5349, 0xA563, 0x534A, 0xA562, 0x534C, 0xC96D, 0x534D, 0xC9C3, - 0x5351, 0xA8F5, 0x5352, 0xA8F2, 0x5353, 0xA8F4, 0x5354, 0xA8F3, - 0x5357, 0xAB6E, 0x535A, 0xB3D5, 0x535C, 0xA452, 0x535E, 0xA4CB, - 0x5360, 0xA565, 0x5361, 0xA564, 0x5363, 0xCA72, 0x5366, 0xA8F6, - 0x536C, 0xC957, 0x536E, 0xA567, 0x536F, 0xA566, 0x5370, 0xA64C, - 0x5371, 0xA64D, 0x5372, 0xCA73, 0x5373, 0xA759, 0x5375, 0xA75A, - 0x5377, 0xA8F7, 0x5378, 0xA8F8, 0x5379, 0xA8F9, 0x537B, 0xAB6F, - 0x537C, 0xCDF5, 0x537F, 0xADEB, 0x5382, 0xC944, 0x5384, 0xA4CC, - 0x538A, 0xC9C4, 0x538E, 0xCA74, 0x538F, 0xCA75, 0x5392, 0xCBD9, - 0x5394, 0xCBDA, 0x5396, 0xCDF7, 0x5397, 0xCDF6, 0x5398, 0xCDF9, - 0x5399, 0xCDF8, 0x539A, 0xAB70, 0x539C, 0xD470, 0x539D, 0xADED, - 0x539E, 0xD0EF, 0x539F, 0xADEC, 0x53A4, 0xD864, 0x53A5, 0xB3D6, - 0x53A7, 0xD865, 0x53AC, 0xE146, 0x53AD, 0xB9BD, 0x53B2, 0xBC46, - 0x53B4, 0xF1EF, 0x53B9, 0xC958, 0x53BB, 0xA568, 0x53C3, 0xB0D1, - 0x53C8, 0xA453, 0x53C9, 0xA465, 0x53CA, 0xA4CE, 0x53CB, 0xA4CD, - 0x53CD, 0xA4CF, 0x53D4, 0xA8FB, 0x53D6, 0xA8FA, 0x53D7, 0xA8FC, - 0x53DB, 0xAB71, 0x53DF, 0xADEE, 0x53E1, 0xE8FB, 0x53E2, 0xC24F, - 0x53E3, 0xA466, 0x53E4, 0xA56A, 0x53E5, 0xA579, 0x53E6, 0xA574, - 0x53E8, 0xA56F, 0x53E9, 0xA56E, 0x53EA, 0xA575, 0x53EB, 0xA573, - 0x53EC, 0xA56C, 0x53ED, 0xA57A, 0x53EE, 0xA56D, 0x53EF, 0xA569, - 0x53F0, 0xA578, 0x53F1, 0xA577, 0x53F2, 0xA576, 0x53F3, 0xA56B, - 0x53F5, 0xA572, 0x53F8, 0xA571, 0x53FB, 0xA57B, 0x53FC, 0xA570, - 0x5401, 0xA653, 0x5403, 0xA659, 0x5404, 0xA655, 0x5406, 0xA65B, - 0x5407, 0xC9C5, 0x5408, 0xA658, 0x5409, 0xA64E, 0x540A, 0xA651, - 0x540B, 0xA654, 0x540C, 0xA650, 0x540D, 0xA657, 0x540E, 0xA65A, - 0x540F, 0xA64F, 0x5410, 0xA652, 0x5411, 0xA656, 0x5412, 0xA65C, - 0x5418, 0xCA7E, 0x5419, 0xCA7B, 0x541B, 0xA767, 0x541C, 0xCA7C, - 0x541D, 0xA75B, 0x541E, 0xA75D, 0x541F, 0xA775, 0x5420, 0xA770, - 0x5424, 0xCAA5, 0x5425, 0xCA7D, 0x5426, 0xA75F, 0x5427, 0xA761, - 0x5428, 0xCAA4, 0x5429, 0xA768, 0x542A, 0xCA78, 0x542B, 0xA774, - 0x542C, 0xA776, 0x542D, 0xA75C, 0x542E, 0xA76D, 0x5430, 0xCA76, - 0x5431, 0xA773, 0x5433, 0xA764, 0x5435, 0xA76E, 0x5436, 0xA76F, - 0x5437, 0xCA77, 0x5438, 0xA76C, 0x5439, 0xA76A, 0x543B, 0xA76B, - 0x543C, 0xA771, 0x543D, 0xCAA1, 0x543E, 0xA75E, 0x5440, 0xA772, - 0x5441, 0xCAA3, 0x5442, 0xA766, 0x5443, 0xA763, 0x5445, 0xCA7A, - 0x5446, 0xA762, 0x5447, 0xCAA6, 0x5448, 0xA765, 0x544A, 0xA769, - 0x544E, 0xA760, 0x544F, 0xCAA2, 0x5454, 0xCA79, 0x5460, 0xCBEB, - 0x5461, 0xCBEA, 0x5462, 0xA94F, 0x5463, 0xCBED, 0x5464, 0xCBEF, - 0x5465, 0xCBE4, 0x5466, 0xCBE7, 0x5467, 0xCBEE, 0x5468, 0xA950, - 0x546B, 0xCBE1, 0x546C, 0xCBE5, 0x546F, 0xCBE9, 0x5470, 0xCE49, - 0x5471, 0xA94B, 0x5472, 0xCE4D, 0x5473, 0xA8FD, 0x5474, 0xCBE6, - 0x5475, 0xA8FE, 0x5476, 0xA94C, 0x5477, 0xA945, 0x5478, 0xA941, - 0x547A, 0xCBE2, 0x547B, 0xA944, 0x547C, 0xA949, 0x547D, 0xA952, - 0x547E, 0xCBE3, 0x547F, 0xCBDC, 0x5480, 0xA943, 0x5481, 0xCBDD, - 0x5482, 0xCBDF, 0x5484, 0xA946, 0x5486, 0xA948, 0x5487, 0xCBDB, - 0x5488, 0xCBE0, 0x548B, 0xA951, 0x548C, 0xA94D, 0x548D, 0xCBE8, - 0x548E, 0xA953, 0x5490, 0xA94A, 0x5491, 0xCBDE, 0x5492, 0xA947, - 0x5495, 0xA942, 0x5496, 0xA940, 0x5498, 0xCBEC, 0x549A, 0xA94E, - 0x54A0, 0xCE48, 0x54A1, 0xCDFB, 0x54A2, 0xCE4B, 0x54A5, 0xCDFD, - 0x54A6, 0xAB78, 0x54A7, 0xABA8, 0x54A8, 0xAB74, 0x54A9, 0xABA7, - 0x54AA, 0xAB7D, 0x54AB, 0xABA4, 0x54AC, 0xAB72, 0x54AD, 0xCDFC, - 0x54AE, 0xCE43, 0x54AF, 0xABA3, 0x54B0, 0xCE4F, 0x54B1, 0xABA5, - 0x54B3, 0xAB79, 0x54B6, 0xCE45, 0x54B7, 0xCE42, 0x54B8, 0xAB77, - 0x54BA, 0xCDFA, 0x54BB, 0xABA6, 0x54BC, 0xCE4A, 0x54BD, 0xAB7C, - 0x54BE, 0xCE4C, 0x54BF, 0xABA9, 0x54C0, 0xAB73, 0x54C1, 0xAB7E, - 0x54C2, 0xAB7B, 0x54C3, 0xCE40, 0x54C4, 0xABA1, 0x54C5, 0xCE46, - 0x54C6, 0xCE47, 0x54C7, 0xAB7A, 0x54C8, 0xABA2, 0x54C9, 0xAB76, - 0x54CE, 0xAB75, 0x54CF, 0xCDFE, 0x54D6, 0xCE44, 0x54DE, 0xCE4E, - 0x54E0, 0xD144, 0x54E1, 0xADFB, 0x54E2, 0xD0F1, 0x54E4, 0xD0F6, - 0x54E5, 0xADF4, 0x54E6, 0xAE40, 0x54E7, 0xD0F4, 0x54E8, 0xADEF, - 0x54E9, 0xADF9, 0x54EA, 0xADFE, 0x54EB, 0xD0FB, 0x54ED, 0xADFA, - 0x54EE, 0xADFD, 0x54F1, 0xD0FE, 0x54F2, 0xADF5, 0x54F3, 0xD0F5, - 0x54F7, 0xD142, 0x54F8, 0xD143, 0x54FA, 0xADF7, 0x54FB, 0xD141, - 0x54FC, 0xADF3, 0x54FD, 0xAE43, 0x54FF, 0xD0F8, 0x5501, 0xADF1, - 0x5503, 0xD146, 0x5504, 0xD0F9, 0x5505, 0xD0FD, 0x5506, 0xADF6, - 0x5507, 0xAE42, 0x5508, 0xD0FA, 0x5509, 0xADFC, 0x550A, 0xD140, - 0x550B, 0xD147, 0x550C, 0xD4A1, 0x550E, 0xD145, 0x550F, 0xAE44, - 0x5510, 0xADF0, 0x5511, 0xD0FC, 0x5512, 0xD0F3, 0x5514, 0xADF8, - 0x5517, 0xD0F2, 0x551A, 0xD0F7, 0x5526, 0xD0F0, 0x5527, 0xAE41, - 0x552A, 0xD477, 0x552C, 0xB0E4, 0x552D, 0xD4A7, 0x552E, 0xB0E2, - 0x552F, 0xB0DF, 0x5530, 0xD47C, 0x5531, 0xB0DB, 0x5532, 0xD4A2, - 0x5533, 0xB0E6, 0x5534, 0xD476, 0x5535, 0xD47B, 0x5536, 0xD47A, - 0x5537, 0xADF2, 0x5538, 0xB0E1, 0x5539, 0xD4A5, 0x553B, 0xD4A8, - 0x553C, 0xD473, 0x553E, 0xB3E8, 0x5540, 0xD4A9, 0x5541, 0xB0E7, - 0x5543, 0xB0D9, 0x5544, 0xB0D6, 0x5545, 0xD47E, 0x5546, 0xB0D3, - 0x5548, 0xD4A6, 0x554A, 0xB0DA, 0x554B, 0xD4AA, 0x554D, 0xD474, - 0x554E, 0xD4A4, 0x554F, 0xB0DD, 0x5550, 0xD475, 0x5551, 0xD478, - 0x5552, 0xD47D, 0x5555, 0xB0DE, 0x5556, 0xB0DC, 0x5557, 0xB0E8, - 0x555C, 0xB0E3, 0x555E, 0xB0D7, 0x555F, 0xB1D2, 0x5561, 0xB0D8, - 0x5562, 0xD479, 0x5563, 0xB0E5, 0x5564, 0xB0E0, 0x5565, 0xD4A3, - 0x5566, 0xB0D5, 0x556A, 0xB0D4, 0x5575, 0xD471, 0x5576, 0xD472, - 0x5577, 0xD86A, 0x557B, 0xB3D7, 0x557C, 0xB3DA, 0x557D, 0xD875, - 0x557E, 0xB3EE, 0x557F, 0xD878, 0x5580, 0xB3D8, 0x5581, 0xD871, - 0x5582, 0xB3DE, 0x5583, 0xB3E4, 0x5584, 0xB5BD, 0x5587, 0xB3E2, - 0x5588, 0xD86E, 0x5589, 0xB3EF, 0x558A, 0xB3DB, 0x558B, 0xB3E3, - 0x558C, 0xD876, 0x558D, 0xDCD7, 0x558E, 0xD87B, 0x558F, 0xD86F, - 0x5591, 0xD866, 0x5592, 0xD873, 0x5593, 0xD86D, 0x5594, 0xB3E1, - 0x5595, 0xD879, 0x5598, 0xB3DD, 0x5599, 0xB3F1, 0x559A, 0xB3EA, - 0x559C, 0xB3DF, 0x559D, 0xB3DC, 0x559F, 0xB3E7, 0x55A1, 0xD87A, - 0x55A2, 0xD86C, 0x55A3, 0xD872, 0x55A4, 0xD874, 0x55A5, 0xD868, - 0x55A6, 0xD877, 0x55A7, 0xB3D9, 0x55A8, 0xD867, 0x55AA, 0xB3E0, - 0x55AB, 0xB3F0, 0x55AC, 0xB3EC, 0x55AD, 0xD869, 0x55AE, 0xB3E6, - 0x55B1, 0xB3ED, 0x55B2, 0xB3E9, 0x55B3, 0xB3E5, 0x55B5, 0xD870, - 0x55BB, 0xB3EB, 0x55BF, 0xDCD5, 0x55C0, 0xDCD1, 0x55C2, 0xDCE0, - 0x55C3, 0xDCCA, 0x55C4, 0xDCD3, 0x55C5, 0xB6E5, 0x55C6, 0xB6E6, - 0x55C7, 0xB6DE, 0x55C8, 0xDCDC, 0x55C9, 0xB6E8, 0x55CA, 0xDCCF, - 0x55CB, 0xDCCE, 0x55CC, 0xDCCC, 0x55CD, 0xDCDE, 0x55CE, 0xB6DC, - 0x55CF, 0xDCD8, 0x55D0, 0xDCCD, 0x55D1, 0xB6DF, 0x55D2, 0xDCD6, - 0x55D3, 0xB6DA, 0x55D4, 0xDCD2, 0x55D5, 0xDCD9, 0x55D6, 0xDCDB, - 0x55D9, 0xDCDF, 0x55DA, 0xB6E3, 0x55DB, 0xDCCB, 0x55DC, 0xB6DD, - 0x55DD, 0xDCD0, 0x55DF, 0xB6D8, 0x55E1, 0xB6E4, 0x55E2, 0xDCDA, - 0x55E3, 0xB6E0, 0x55E4, 0xB6E1, 0x55E5, 0xB6E7, 0x55E6, 0xB6DB, - 0x55E7, 0xA25F, 0x55E8, 0xB6D9, 0x55E9, 0xDCD4, 0x55EF, 0xB6E2, - 0x55F2, 0xDCDD, 0x55F6, 0xB9CD, 0x55F7, 0xB9C8, 0x55F9, 0xE155, - 0x55FA, 0xE151, 0x55FC, 0xE14B, 0x55FD, 0xB9C2, 0x55FE, 0xB9BE, - 0x55FF, 0xE154, 0x5600, 0xB9BF, 0x5601, 0xE14E, 0x5602, 0xE150, - 0x5604, 0xE153, 0x5606, 0xB9C4, 0x5608, 0xB9CB, 0x5609, 0xB9C5, - 0x560C, 0xE149, 0x560D, 0xB9C6, 0x560E, 0xB9C7, 0x560F, 0xE14C, - 0x5610, 0xB9CC, 0x5612, 0xE14A, 0x5613, 0xE14F, 0x5614, 0xB9C3, - 0x5615, 0xE148, 0x5616, 0xB9C9, 0x5617, 0xB9C1, 0x561B, 0xB9C0, - 0x561C, 0xE14D, 0x561D, 0xE152, 0x561F, 0xB9CA, 0x5627, 0xE147, - 0x5629, 0xBC4D, 0x562A, 0xE547, 0x562C, 0xE544, 0x562E, 0xBC47, - 0x562F, 0xBC53, 0x5630, 0xBC54, 0x5632, 0xBC4A, 0x5633, 0xE542, - 0x5634, 0xBC4C, 0x5635, 0xE4F9, 0x5636, 0xBC52, 0x5638, 0xE546, - 0x5639, 0xBC49, 0x563A, 0xE548, 0x563B, 0xBC48, 0x563D, 0xE543, - 0x563E, 0xE545, 0x563F, 0xBC4B, 0x5640, 0xE541, 0x5641, 0xE4FA, - 0x5642, 0xE4F7, 0x5645, 0xD86B, 0x5646, 0xE4FD, 0x5648, 0xE4F6, - 0x5649, 0xE4FC, 0x564A, 0xE4FB, 0x564C, 0xE4F8, 0x564E, 0xBC4F, - 0x5653, 0xBC4E, 0x5657, 0xBC50, 0x5658, 0xE4FE, 0x5659, 0xBEB2, - 0x565A, 0xE540, 0x565E, 0xE945, 0x5660, 0xE8FD, 0x5662, 0xBEBE, - 0x5663, 0xE942, 0x5664, 0xBEB6, 0x5665, 0xBEBA, 0x5666, 0xE941, - 0x5668, 0xBEB9, 0x5669, 0xBEB5, 0x566A, 0xBEB8, 0x566B, 0xBEB3, - 0x566C, 0xBEBD, 0x566D, 0xE943, 0x566E, 0xE8FE, 0x566F, 0xBEBC, - 0x5670, 0xE8FC, 0x5671, 0xBEBB, 0x5672, 0xE944, 0x5673, 0xE940, - 0x5674, 0xBC51, 0x5676, 0xBEBF, 0x5677, 0xE946, 0x5678, 0xBEB7, - 0x5679, 0xBEB4, 0x567E, 0xECC6, 0x567F, 0xECC8, 0x5680, 0xC07B, - 0x5681, 0xECC9, 0x5682, 0xECC7, 0x5683, 0xECC5, 0x5684, 0xECC4, - 0x5685, 0xC07D, 0x5686, 0xECC3, 0x5687, 0xC07E, 0x568C, 0xECC1, - 0x568D, 0xECC2, 0x568E, 0xC07A, 0x568F, 0xC0A1, 0x5690, 0xC07C, - 0x5693, 0xECC0, 0x5695, 0xC250, 0x5697, 0xEFBC, 0x5698, 0xEFBA, - 0x5699, 0xEFBF, 0x569A, 0xEFBD, 0x569C, 0xEFBB, 0x569D, 0xEFBE, - 0x56A5, 0xC360, 0x56A6, 0xF1F2, 0x56A7, 0xF1F3, 0x56A8, 0xC456, - 0x56AA, 0xF1F4, 0x56AB, 0xF1F0, 0x56AC, 0xF1F5, 0x56AD, 0xF1F1, - 0x56AE, 0xC251, 0x56B2, 0xF3FE, 0x56B3, 0xF441, 0x56B4, 0xC459, - 0x56B5, 0xF440, 0x56B6, 0xC458, 0x56B7, 0xC457, 0x56BC, 0xC45A, - 0x56BD, 0xF5C5, 0x56BE, 0xF5C6, 0x56C0, 0xC4DA, 0x56C1, 0xC4D9, - 0x56C2, 0xC4DB, 0x56C3, 0xF5C4, 0x56C5, 0xF6D8, 0x56C6, 0xF6D7, - 0x56C8, 0xC56D, 0x56C9, 0xC56F, 0x56CA, 0xC56E, 0x56CB, 0xF6D9, - 0x56CC, 0xC5C8, 0x56CD, 0xF8A6, 0x56D1, 0xC5F1, 0x56D3, 0xF8A5, - 0x56D4, 0xF8EE, 0x56D7, 0xC949, 0x56DA, 0xA57D, 0x56DB, 0xA57C, - 0x56DD, 0xA65F, 0x56DE, 0xA65E, 0x56DF, 0xC9C7, 0x56E0, 0xA65D, - 0x56E1, 0xC9C6, 0x56E4, 0xA779, 0x56E5, 0xCAA9, 0x56E7, 0xCAA8, - 0x56EA, 0xA777, 0x56EB, 0xA77A, 0x56EE, 0xCAA7, 0x56F0, 0xA778, - 0x56F7, 0xCBF0, 0x56F9, 0xCBF1, 0x56FA, 0xA954, 0x56FF, 0xABAA, - 0x5701, 0xD148, 0x5702, 0xD149, 0x5703, 0xAE45, 0x5704, 0xAE46, - 0x5707, 0xD4AC, 0x5708, 0xB0E9, 0x5709, 0xB0EB, 0x570A, 0xD4AB, - 0x570B, 0xB0EA, 0x570C, 0xD87C, 0x570D, 0xB3F2, 0x5712, 0xB6E9, - 0x5713, 0xB6EA, 0x5714, 0xDCE1, 0x5716, 0xB9CF, 0x5718, 0xB9CE, - 0x571A, 0xE549, 0x571B, 0xE948, 0x571C, 0xE947, 0x571E, 0xF96B, - 0x571F, 0xA467, 0x5720, 0xC959, 0x5722, 0xC96E, 0x5723, 0xC96F, - 0x5728, 0xA662, 0x5729, 0xA666, 0x572A, 0xC9C9, 0x572C, 0xA664, - 0x572D, 0xA663, 0x572E, 0xC9C8, 0x572F, 0xA665, 0x5730, 0xA661, - 0x5733, 0xA660, 0x5734, 0xC9CA, 0x573B, 0xA7A6, 0x573E, 0xA7A3, - 0x5740, 0xA77D, 0x5741, 0xCAAA, 0x5745, 0xCAAB, 0x5747, 0xA7A1, - 0x5749, 0xCAAD, 0x574A, 0xA77B, 0x574B, 0xCAAE, 0x574C, 0xCAAC, - 0x574D, 0xA77E, 0x574E, 0xA7A2, 0x574F, 0xA7A5, 0x5750, 0xA7A4, - 0x5751, 0xA77C, 0x5752, 0xCAAF, 0x5761, 0xA959, 0x5762, 0xCBFE, - 0x5764, 0xA95B, 0x5766, 0xA95A, 0x5768, 0xCC40, 0x5769, 0xA958, - 0x576A, 0xA957, 0x576B, 0xCBF5, 0x576D, 0xCBF4, 0x576F, 0xCBF2, - 0x5770, 0xCBF7, 0x5771, 0xCBF6, 0x5772, 0xCBF3, 0x5773, 0xCBFC, - 0x5774, 0xCBFD, 0x5775, 0xCBFA, 0x5776, 0xCBF8, 0x5777, 0xA956, - 0x577B, 0xCBFB, 0x577C, 0xA95C, 0x577D, 0xCC41, 0x5780, 0xCBF9, - 0x5782, 0xABAB, 0x5783, 0xA955, 0x578B, 0xABAC, 0x578C, 0xCE54, - 0x578F, 0xCE5A, 0x5793, 0xABB2, 0x5794, 0xCE58, 0x5795, 0xCE5E, - 0x5797, 0xCE55, 0x5798, 0xCE59, 0x5799, 0xCE5B, 0x579A, 0xCE5D, - 0x579B, 0xCE57, 0x579D, 0xCE56, 0x579E, 0xCE51, 0x579F, 0xCE52, - 0x57A0, 0xABAD, 0x57A2, 0xABAF, 0x57A3, 0xABAE, 0x57A4, 0xCE53, - 0x57A5, 0xCE5C, 0x57AE, 0xABB1, 0x57B5, 0xCE50, 0x57B6, 0xD153, - 0x57B8, 0xD152, 0x57B9, 0xD157, 0x57BA, 0xD14E, 0x57BC, 0xD151, - 0x57BD, 0xD150, 0x57BF, 0xD154, 0x57C1, 0xD158, 0x57C2, 0xAE47, - 0x57C3, 0xAE4A, 0x57C6, 0xD14F, 0x57C7, 0xD155, 0x57CB, 0xAE49, - 0x57CC, 0xD14A, 0x57CE, 0xABB0, 0x57CF, 0xD4BA, 0x57D0, 0xD156, - 0x57D2, 0xD14D, 0x57D4, 0xAE48, 0x57D5, 0xD14C, 0x57DC, 0xD4B1, - 0x57DF, 0xB0EC, 0x57E0, 0xB0F0, 0x57E1, 0xD4C1, 0x57E2, 0xD4AF, - 0x57E3, 0xD4BD, 0x57E4, 0xB0F1, 0x57E5, 0xD4BF, 0x57E7, 0xD4C5, - 0x57E9, 0xD4C9, 0x57EC, 0xD4C0, 0x57ED, 0xD4B4, 0x57EE, 0xD4BC, - 0x57F0, 0xD4CA, 0x57F1, 0xD4C8, 0x57F2, 0xD4BE, 0x57F3, 0xD4B9, - 0x57F4, 0xD4B2, 0x57F5, 0xD8A6, 0x57F6, 0xD4B0, 0x57F7, 0xB0F5, - 0x57F8, 0xD4B7, 0x57F9, 0xB0F6, 0x57FA, 0xB0F2, 0x57FB, 0xD4AD, - 0x57FC, 0xD4C3, 0x57FD, 0xD4B5, 0x5800, 0xD4B3, 0x5801, 0xD4C6, - 0x5802, 0xB0F3, 0x5804, 0xD4CC, 0x5805, 0xB0ED, 0x5806, 0xB0EF, - 0x5807, 0xD4BB, 0x5808, 0xD4B6, 0x5809, 0xAE4B, 0x580A, 0xB0EE, - 0x580B, 0xD4B8, 0x580C, 0xD4C7, 0x580D, 0xD4CB, 0x580E, 0xD4C2, - 0x5810, 0xD4C4, 0x5814, 0xD4AE, 0x5819, 0xD8A1, 0x581B, 0xD8AA, - 0x581C, 0xD8A9, 0x581D, 0xB3FA, 0x581E, 0xD8A2, 0x5820, 0xB3FB, - 0x5821, 0xB3F9, 0x5823, 0xD8A4, 0x5824, 0xB3F6, 0x5825, 0xD8A8, - 0x5827, 0xD8A3, 0x5828, 0xD8A5, 0x5829, 0xD87D, 0x582A, 0xB3F4, - 0x582C, 0xD8B2, 0x582D, 0xD8B1, 0x582E, 0xD8AE, 0x582F, 0xB3F3, - 0x5830, 0xB3F7, 0x5831, 0xB3F8, 0x5832, 0xD14B, 0x5833, 0xD8AB, - 0x5834, 0xB3F5, 0x5835, 0xB0F4, 0x5836, 0xD8AD, 0x5837, 0xD87E, - 0x5838, 0xD8B0, 0x5839, 0xD8AF, 0x583B, 0xD8B3, 0x583D, 0xDCEF, - 0x583F, 0xD8AC, 0x5848, 0xD8A7, 0x5849, 0xDCE7, 0x584A, 0xB6F4, - 0x584B, 0xB6F7, 0x584C, 0xB6F2, 0x584D, 0xDCE6, 0x584E, 0xDCEA, - 0x584F, 0xDCE5, 0x5851, 0xB6EC, 0x5852, 0xB6F6, 0x5853, 0xDCE2, - 0x5854, 0xB6F0, 0x5855, 0xDCE9, 0x5857, 0xB6EE, 0x5858, 0xB6ED, - 0x5859, 0xDCEC, 0x585A, 0xB6EF, 0x585B, 0xDCEE, 0x585D, 0xDCEB, - 0x585E, 0xB6EB, 0x5862, 0xB6F5, 0x5863, 0xDCF0, 0x5864, 0xDCE4, - 0x5865, 0xDCED, 0x5868, 0xDCE3, 0x586B, 0xB6F1, 0x586D, 0xB6F3, - 0x586F, 0xDCE8, 0x5871, 0xDCF1, 0x5874, 0xE15D, 0x5875, 0xB9D0, - 0x5876, 0xE163, 0x5879, 0xB9D5, 0x587A, 0xE15F, 0x587B, 0xE166, - 0x587C, 0xE157, 0x587D, 0xB9D7, 0x587E, 0xB9D1, 0x587F, 0xE15C, - 0x5880, 0xBC55, 0x5881, 0xE15B, 0x5882, 0xE164, 0x5883, 0xB9D2, - 0x5885, 0xB9D6, 0x5886, 0xE15A, 0x5887, 0xE160, 0x5888, 0xE165, - 0x5889, 0xE156, 0x588A, 0xB9D4, 0x588B, 0xE15E, 0x588E, 0xE162, - 0x588F, 0xE168, 0x5890, 0xE158, 0x5891, 0xE161, 0x5893, 0xB9D3, - 0x5894, 0xE167, 0x5898, 0xE159, 0x589C, 0xBC59, 0x589D, 0xE54B, - 0x589E, 0xBC57, 0x589F, 0xBC56, 0x58A0, 0xE54D, 0x58A1, 0xE552, - 0x58A3, 0xE54E, 0x58A5, 0xE551, 0x58A6, 0xBC5C, 0x58A8, 0xBEA5, - 0x58A9, 0xBC5B, 0x58AB, 0xE54A, 0x58AC, 0xE550, 0x58AE, 0xBC5A, - 0x58AF, 0xE54F, 0x58B1, 0xE54C, 0x58B3, 0xBC58, 0x58BA, 0xE94D, - 0x58BB, 0xF9D9, 0x58BC, 0xE94F, 0x58BD, 0xE94A, 0x58BE, 0xBEC1, - 0x58BF, 0xE94C, 0x58C1, 0xBEC0, 0x58C2, 0xE94E, 0x58C5, 0xBEC3, - 0x58C6, 0xE950, 0x58C7, 0xBEC2, 0x58C8, 0xE949, 0x58C9, 0xE94B, - 0x58CE, 0xC0A5, 0x58CF, 0xECCC, 0x58D1, 0xC0A4, 0x58D2, 0xECCD, - 0x58D3, 0xC0A3, 0x58D4, 0xECCB, 0x58D5, 0xC0A2, 0x58D6, 0xECCA, - 0x58D8, 0xC253, 0x58D9, 0xC252, 0x58DA, 0xF1F6, 0x58DB, 0xF1F8, - 0x58DD, 0xF1F7, 0x58DE, 0xC361, 0x58DF, 0xC362, 0x58E2, 0xC363, - 0x58E3, 0xF442, 0x58E4, 0xC45B, 0x58E7, 0xF7D3, 0x58E8, 0xF7D2, - 0x58E9, 0xC5F2, 0x58EB, 0xA468, 0x58EC, 0xA4D0, 0x58EF, 0xA7A7, - 0x58F4, 0xCE5F, 0x58F9, 0xB3FC, 0x58FA, 0xB3FD, 0x58FC, 0xDCF2, - 0x58FD, 0xB9D8, 0x58FE, 0xE169, 0x58FF, 0xE553, 0x5903, 0xC95A, - 0x5906, 0xCAB0, 0x590C, 0xCC42, 0x590D, 0xCE60, 0x590E, 0xD159, - 0x590F, 0xAE4C, 0x5912, 0xF1F9, 0x5914, 0xC4DC, 0x5915, 0xA469, - 0x5916, 0xA57E, 0x5917, 0xC970, 0x5919, 0xA667, 0x591A, 0xA668, - 0x591C, 0xA95D, 0x5920, 0xB0F7, 0x5922, 0xB9DA, 0x5924, 0xB9DB, - 0x5925, 0xB9D9, 0x5927, 0xA46A, 0x5929, 0xA4D1, 0x592A, 0xA4D3, - 0x592B, 0xA4D2, 0x592C, 0xC95B, 0x592D, 0xA4D4, 0x592E, 0xA5A1, - 0x592F, 0xC971, 0x5931, 0xA5A2, 0x5937, 0xA669, 0x5938, 0xA66A, - 0x593C, 0xC9CB, 0x593E, 0xA7A8, 0x5940, 0xCAB1, 0x5944, 0xA961, - 0x5945, 0xCC43, 0x5947, 0xA95F, 0x5948, 0xA960, 0x5949, 0xA95E, - 0x594A, 0xD15A, 0x594E, 0xABB6, 0x594F, 0xABB5, 0x5950, 0xABB7, - 0x5951, 0xABB4, 0x5953, 0xCE61, 0x5954, 0xA962, 0x5955, 0xABB3, - 0x5957, 0xAE4D, 0x5958, 0xAE4E, 0x595A, 0xAE4F, 0x595C, 0xD4CD, - 0x5960, 0xB3FE, 0x5961, 0xD8B4, 0x5962, 0xB0F8, 0x5967, 0xB6F8, - 0x5969, 0xB9DD, 0x596A, 0xB9DC, 0x596B, 0xE16A, 0x596D, 0xBC5D, - 0x596E, 0xBEC4, 0x5970, 0xEFC0, 0x5971, 0xF6DA, 0x5972, 0xF7D4, - 0x5973, 0xA46B, 0x5974, 0xA5A3, 0x5976, 0xA5A4, 0x5977, 0xC9D1, - 0x5978, 0xA66C, 0x5979, 0xA66F, 0x597B, 0xC9CF, 0x597C, 0xC9CD, - 0x597D, 0xA66E, 0x597E, 0xC9D0, 0x597F, 0xC9D2, 0x5980, 0xC9CC, - 0x5981, 0xA671, 0x5982, 0xA670, 0x5983, 0xA66D, 0x5984, 0xA66B, - 0x5985, 0xC9CE, 0x598A, 0xA7B3, 0x598D, 0xA7B0, 0x598E, 0xCAB6, - 0x598F, 0xCAB9, 0x5990, 0xCAB8, 0x5992, 0xA7AA, 0x5993, 0xA7B2, - 0x5996, 0xA7AF, 0x5997, 0xCAB5, 0x5998, 0xCAB3, 0x5999, 0xA7AE, - 0x599D, 0xA7A9, 0x599E, 0xA7AC, 0x59A0, 0xCAB4, 0x59A1, 0xCABB, - 0x59A2, 0xCAB7, 0x59A3, 0xA7AD, 0x59A4, 0xA7B1, 0x59A5, 0xA7B4, - 0x59A6, 0xCAB2, 0x59A7, 0xCABA, 0x59A8, 0xA7AB, 0x59AE, 0xA967, - 0x59AF, 0xA96F, 0x59B1, 0xCC4F, 0x59B2, 0xCC48, 0x59B3, 0xA970, - 0x59B4, 0xCC53, 0x59B5, 0xCC44, 0x59B6, 0xCC4B, 0x59B9, 0xA966, - 0x59BA, 0xCC45, 0x59BB, 0xA964, 0x59BC, 0xCC4C, 0x59BD, 0xCC50, - 0x59BE, 0xA963, 0x59C0, 0xCC51, 0x59C1, 0xCC4A, 0x59C3, 0xCC4D, - 0x59C5, 0xA972, 0x59C6, 0xA969, 0x59C7, 0xCC54, 0x59C8, 0xCC52, - 0x59CA, 0xA96E, 0x59CB, 0xA96C, 0x59CC, 0xCC49, 0x59CD, 0xA96B, - 0x59CE, 0xCC47, 0x59CF, 0xCC46, 0x59D0, 0xA96A, 0x59D1, 0xA968, - 0x59D2, 0xA971, 0x59D3, 0xA96D, 0x59D4, 0xA965, 0x59D6, 0xCC4E, - 0x59D8, 0xABB9, 0x59DA, 0xABC0, 0x59DB, 0xCE6F, 0x59DC, 0xABB8, - 0x59DD, 0xCE67, 0x59DE, 0xCE63, 0x59E0, 0xCE73, 0x59E1, 0xCE62, - 0x59E3, 0xABBB, 0x59E4, 0xCE6C, 0x59E5, 0xABBE, 0x59E6, 0xABC1, - 0x59E8, 0xABBC, 0x59E9, 0xCE70, 0x59EA, 0xABBF, 0x59EC, 0xAE56, - 0x59ED, 0xCE76, 0x59EE, 0xCE64, 0x59F1, 0xCE66, 0x59F2, 0xCE6D, - 0x59F3, 0xCE71, 0x59F4, 0xCE75, 0x59F5, 0xCE72, 0x59F6, 0xCE6B, - 0x59F7, 0xCE6E, 0x59FA, 0xCE68, 0x59FB, 0xABC3, 0x59FC, 0xCE6A, - 0x59FD, 0xCE69, 0x59FE, 0xCE74, 0x59FF, 0xABBA, 0x5A00, 0xCE65, - 0x5A01, 0xABC2, 0x5A03, 0xABBD, 0x5A09, 0xAE5C, 0x5A0A, 0xD162, - 0x5A0C, 0xAE5B, 0x5A0F, 0xD160, 0x5A11, 0xAE50, 0x5A13, 0xAE55, - 0x5A15, 0xD15F, 0x5A16, 0xD15C, 0x5A17, 0xD161, 0x5A18, 0xAE51, - 0x5A19, 0xD15B, 0x5A1B, 0xAE54, 0x5A1C, 0xAE52, 0x5A1E, 0xD163, - 0x5A1F, 0xAE53, 0x5A20, 0xAE57, 0x5A23, 0xAE58, 0x5A25, 0xAE5A, - 0x5A29, 0xAE59, 0x5A2D, 0xD15D, 0x5A2E, 0xD15E, 0x5A33, 0xD164, - 0x5A35, 0xD4D4, 0x5A36, 0xB0F9, 0x5A37, 0xD8C2, 0x5A38, 0xD4D3, - 0x5A39, 0xD4E6, 0x5A3C, 0xB140, 0x5A3E, 0xD4E4, 0x5A40, 0xB0FE, - 0x5A41, 0xB0FA, 0x5A42, 0xD4ED, 0x5A43, 0xD4DD, 0x5A44, 0xD4E0, - 0x5A46, 0xB143, 0x5A47, 0xD4EA, 0x5A48, 0xD4E2, 0x5A49, 0xB0FB, - 0x5A4A, 0xB144, 0x5A4C, 0xD4E7, 0x5A4D, 0xD4E5, 0x5A50, 0xD4D6, - 0x5A51, 0xD4EB, 0x5A52, 0xD4DF, 0x5A53, 0xD4DA, 0x5A55, 0xD4D0, - 0x5A56, 0xD4EC, 0x5A57, 0xD4DC, 0x5A58, 0xD4CF, 0x5A5A, 0xB142, - 0x5A5B, 0xD4E1, 0x5A5C, 0xD4EE, 0x5A5D, 0xD4DE, 0x5A5E, 0xD4D2, - 0x5A5F, 0xD4D7, 0x5A60, 0xD4CE, 0x5A62, 0xB141, 0x5A64, 0xD4DB, - 0x5A65, 0xD4D8, 0x5A66, 0xB0FC, 0x5A67, 0xD4D1, 0x5A69, 0xD4E9, - 0x5A6A, 0xB0FD, 0x5A6C, 0xD4D9, 0x5A6D, 0xD4D5, 0x5A70, 0xD4E8, - 0x5A77, 0xB440, 0x5A78, 0xD8BB, 0x5A7A, 0xD8B8, 0x5A7B, 0xD8C9, - 0x5A7C, 0xD8BD, 0x5A7D, 0xD8CA, 0x5A7F, 0xB442, 0x5A83, 0xD8C6, - 0x5A84, 0xD8C3, 0x5A8A, 0xD8C4, 0x5A8B, 0xD8C7, 0x5A8C, 0xD8CB, - 0x5A8E, 0xD4E3, 0x5A8F, 0xD8CD, 0x5A90, 0xDD47, 0x5A92, 0xB443, - 0x5A93, 0xD8CE, 0x5A94, 0xD8B6, 0x5A95, 0xD8C0, 0x5A97, 0xD8C5, - 0x5A9A, 0xB441, 0x5A9B, 0xB444, 0x5A9C, 0xD8CC, 0x5A9D, 0xD8CF, - 0x5A9E, 0xD8BA, 0x5A9F, 0xD8B7, 0x5AA2, 0xD8B9, 0x5AA5, 0xD8BE, - 0x5AA6, 0xD8BC, 0x5AA7, 0xB445, 0x5AA9, 0xD8C8, 0x5AAC, 0xD8BF, - 0x5AAE, 0xD8C1, 0x5AAF, 0xD8B5, 0x5AB0, 0xDCFA, 0x5AB1, 0xDCF8, - 0x5AB2, 0xB742, 0x5AB3, 0xB740, 0x5AB4, 0xDD43, 0x5AB5, 0xDCF9, - 0x5AB6, 0xDD44, 0x5AB7, 0xDD40, 0x5AB8, 0xDCF7, 0x5AB9, 0xDD46, - 0x5ABA, 0xDCF6, 0x5ABB, 0xDCFD, 0x5ABC, 0xB6FE, 0x5ABD, 0xB6FD, - 0x5ABE, 0xB6FC, 0x5ABF, 0xDCFB, 0x5AC0, 0xDD41, 0x5AC1, 0xB6F9, - 0x5AC2, 0xB741, 0x5AC4, 0xDCF4, 0x5AC6, 0xDCFE, 0x5AC7, 0xDCF3, - 0x5AC8, 0xDCFC, 0x5AC9, 0xB6FA, 0x5ACA, 0xDD42, 0x5ACB, 0xDCF5, - 0x5ACC, 0xB6FB, 0x5ACD, 0xDD45, 0x5AD5, 0xE16E, 0x5AD6, 0xB9E2, - 0x5AD7, 0xB9E1, 0x5AD8, 0xB9E3, 0x5AD9, 0xE17A, 0x5ADA, 0xE170, - 0x5ADB, 0xE176, 0x5ADC, 0xE16B, 0x5ADD, 0xE179, 0x5ADE, 0xE178, - 0x5ADF, 0xE17C, 0x5AE0, 0xE175, 0x5AE1, 0xB9DE, 0x5AE2, 0xE174, - 0x5AE3, 0xB9E4, 0x5AE5, 0xE16D, 0x5AE6, 0xB9DF, 0x5AE8, 0xE17B, - 0x5AE9, 0xB9E0, 0x5AEA, 0xE16F, 0x5AEB, 0xE172, 0x5AEC, 0xE177, - 0x5AED, 0xE171, 0x5AEE, 0xE16C, 0x5AF3, 0xE173, 0x5AF4, 0xE555, - 0x5AF5, 0xBC61, 0x5AF6, 0xE558, 0x5AF7, 0xE557, 0x5AF8, 0xE55A, - 0x5AF9, 0xE55C, 0x5AFA, 0xF9DC, 0x5AFB, 0xBC5F, 0x5AFD, 0xE556, - 0x5AFF, 0xE554, 0x5B01, 0xE55D, 0x5B02, 0xE55B, 0x5B03, 0xE559, - 0x5B05, 0xE55F, 0x5B07, 0xE55E, 0x5B08, 0xBC63, 0x5B09, 0xBC5E, - 0x5B0B, 0xBC60, 0x5B0C, 0xBC62, 0x5B0F, 0xE560, 0x5B10, 0xE957, - 0x5B13, 0xE956, 0x5B14, 0xE955, 0x5B16, 0xE958, 0x5B17, 0xE951, - 0x5B19, 0xE952, 0x5B1A, 0xE95A, 0x5B1B, 0xE953, 0x5B1D, 0xBEC5, - 0x5B1E, 0xE95C, 0x5B20, 0xE95B, 0x5B21, 0xE954, 0x5B23, 0xECD1, - 0x5B24, 0xC0A8, 0x5B25, 0xECCF, 0x5B26, 0xECD4, 0x5B27, 0xECD3, - 0x5B28, 0xE959, 0x5B2A, 0xC0A7, 0x5B2C, 0xECD2, 0x5B2D, 0xECCE, - 0x5B2E, 0xECD6, 0x5B2F, 0xECD5, 0x5B30, 0xC0A6, 0x5B32, 0xECD0, - 0x5B34, 0xBEC6, 0x5B38, 0xC254, 0x5B3C, 0xEFC1, 0x5B3D, 0xF1FA, - 0x5B3E, 0xF1FB, 0x5B3F, 0xF1FC, 0x5B40, 0xC45C, 0x5B43, 0xC45D, - 0x5B45, 0xF443, 0x5B47, 0xF5C8, 0x5B48, 0xF5C7, 0x5B4B, 0xF6DB, - 0x5B4C, 0xF6DC, 0x5B4D, 0xF7D5, 0x5B4E, 0xF8A7, 0x5B50, 0xA46C, - 0x5B51, 0xA46D, 0x5B53, 0xA46E, 0x5B54, 0xA4D5, 0x5B55, 0xA5A5, - 0x5B56, 0xC9D3, 0x5B57, 0xA672, 0x5B58, 0xA673, 0x5B5A, 0xA7B7, - 0x5B5B, 0xA7B8, 0x5B5C, 0xA7B6, 0x5B5D, 0xA7B5, 0x5B5F, 0xA973, - 0x5B62, 0xCC55, 0x5B63, 0xA975, 0x5B64, 0xA974, 0x5B65, 0xCC56, - 0x5B69, 0xABC4, 0x5B6B, 0xAE5D, 0x5B6C, 0xD165, 0x5B6E, 0xD4F0, - 0x5B70, 0xB145, 0x5B71, 0xB447, 0x5B72, 0xD4EF, 0x5B73, 0xB446, - 0x5B75, 0xB9E5, 0x5B77, 0xE17D, 0x5B78, 0xBEC7, 0x5B7A, 0xC0A9, - 0x5B7B, 0xECD7, 0x5B7D, 0xC45E, 0x5B7F, 0xC570, 0x5B81, 0xC972, - 0x5B83, 0xA5A6, 0x5B84, 0xC973, 0x5B85, 0xA676, 0x5B87, 0xA674, - 0x5B88, 0xA675, 0x5B89, 0xA677, 0x5B8B, 0xA7BA, 0x5B8C, 0xA7B9, - 0x5B8E, 0xCABC, 0x5B8F, 0xA7BB, 0x5B92, 0xCABD, 0x5B93, 0xCC57, - 0x5B95, 0xCC58, 0x5B97, 0xA976, 0x5B98, 0xA978, 0x5B99, 0xA97A, - 0x5B9A, 0xA977, 0x5B9B, 0xA97B, 0x5B9C, 0xA979, 0x5BA2, 0xABC8, - 0x5BA3, 0xABC5, 0x5BA4, 0xABC7, 0x5BA5, 0xABC9, 0x5BA6, 0xABC6, - 0x5BA7, 0xD166, 0x5BA8, 0xCE77, 0x5BAC, 0xD168, 0x5BAD, 0xD167, - 0x5BAE, 0xAE63, 0x5BB0, 0xAE5F, 0x5BB3, 0xAE60, 0x5BB4, 0xAE62, - 0x5BB5, 0xAE64, 0x5BB6, 0xAE61, 0x5BB8, 0xAE66, 0x5BB9, 0xAE65, - 0x5BBF, 0xB14A, 0x5BC0, 0xD4F2, 0x5BC1, 0xD4F1, 0x5BC2, 0xB149, - 0x5BC4, 0xB148, 0x5BC5, 0xB147, 0x5BC6, 0xB14B, 0x5BC7, 0xB146, - 0x5BCA, 0xD8D5, 0x5BCB, 0xD8D2, 0x5BCC, 0xB449, 0x5BCD, 0xD8D1, - 0x5BCE, 0xD8D6, 0x5BD0, 0xB44B, 0x5BD1, 0xD8D4, 0x5BD2, 0xB448, - 0x5BD3, 0xB44A, 0x5BD4, 0xD8D3, 0x5BD6, 0xDD48, 0x5BD8, 0xDD49, - 0x5BD9, 0xDD4A, 0x5BDE, 0xB9E6, 0x5BDF, 0xB9EE, 0x5BE0, 0xE17E, - 0x5BE1, 0xB9E8, 0x5BE2, 0xB9EC, 0x5BE3, 0xE1A1, 0x5BE4, 0xB9ED, - 0x5BE5, 0xB9E9, 0x5BE6, 0xB9EA, 0x5BE7, 0xB9E7, 0x5BE8, 0xB9EB, - 0x5BE9, 0xBC66, 0x5BEA, 0xD8D0, 0x5BEB, 0xBC67, 0x5BEC, 0xBC65, - 0x5BEE, 0xBC64, 0x5BEF, 0xE95D, 0x5BF0, 0xBEC8, 0x5BF1, 0xECD8, - 0x5BF2, 0xECD9, 0x5BF5, 0xC364, 0x5BF6, 0xC45F, 0x5BF8, 0xA46F, - 0x5BFA, 0xA678, 0x5C01, 0xABCA, 0x5C03, 0xD169, 0x5C04, 0xAE67, - 0x5C07, 0xB14E, 0x5C08, 0xB14D, 0x5C09, 0xB14C, 0x5C0A, 0xB44C, - 0x5C0B, 0xB44D, 0x5C0C, 0xD8D7, 0x5C0D, 0xB9EF, 0x5C0E, 0xBEC9, - 0x5C0F, 0xA470, 0x5C10, 0xC95C, 0x5C11, 0xA4D6, 0x5C12, 0xC974, - 0x5C15, 0xC9D4, 0x5C16, 0xA679, 0x5C1A, 0xA97C, 0x5C1F, 0xDD4B, - 0x5C22, 0xA471, 0x5C24, 0xA4D7, 0x5C25, 0xC9D5, 0x5C28, 0xCABE, - 0x5C2A, 0xCABF, 0x5C2C, 0xA7BC, 0x5C30, 0xD8D8, 0x5C31, 0xB44E, - 0x5C33, 0xDD4C, 0x5C37, 0xC0AA, 0x5C38, 0xA472, 0x5C39, 0xA4A8, - 0x5C3A, 0xA4D8, 0x5C3B, 0xC975, 0x5C3C, 0xA5A7, 0x5C3E, 0xA7C0, - 0x5C3F, 0xA7BF, 0x5C40, 0xA7BD, 0x5C41, 0xA7BE, 0x5C44, 0xCC59, - 0x5C45, 0xA97E, 0x5C46, 0xA9A1, 0x5C47, 0xCC5A, 0x5C48, 0xA97D, - 0x5C4B, 0xABCE, 0x5C4C, 0xCE78, 0x5C4D, 0xABCD, 0x5C4E, 0xABCB, - 0x5C4F, 0xABCC, 0x5C50, 0xAE6A, 0x5C51, 0xAE68, 0x5C54, 0xD16B, - 0x5C55, 0xAE69, 0x5C56, 0xD16A, 0x5C58, 0xAE5E, 0x5C59, 0xD4F3, - 0x5C5C, 0xB150, 0x5C5D, 0xB151, 0x5C60, 0xB14F, 0x5C62, 0xB9F0, - 0x5C63, 0xE1A2, 0x5C64, 0xBC68, 0x5C65, 0xBC69, 0x5C67, 0xE561, - 0x5C68, 0xC0AB, 0x5C69, 0xEFC2, 0x5C6A, 0xEFC3, 0x5C6C, 0xC4DD, - 0x5C6D, 0xF8A8, 0x5C6E, 0xC94B, 0x5C6F, 0xA4D9, 0x5C71, 0xA473, - 0x5C73, 0xC977, 0x5C74, 0xC976, 0x5C79, 0xA67A, 0x5C7A, 0xC9D7, - 0x5C7B, 0xC9D8, 0x5C7C, 0xC9D6, 0x5C7E, 0xC9D9, 0x5C86, 0xCAC7, - 0x5C88, 0xCAC2, 0x5C89, 0xCAC4, 0x5C8A, 0xCAC6, 0x5C8B, 0xCAC3, - 0x5C8C, 0xA7C4, 0x5C8D, 0xCAC0, 0x5C8F, 0xCAC1, 0x5C90, 0xA7C1, - 0x5C91, 0xA7C2, 0x5C92, 0xCAC5, 0x5C93, 0xCAC8, 0x5C94, 0xA7C3, - 0x5C95, 0xCAC9, 0x5C9D, 0xCC68, 0x5C9F, 0xCC62, 0x5CA0, 0xCC5D, - 0x5CA1, 0xA9A3, 0x5CA2, 0xCC65, 0x5CA3, 0xCC63, 0x5CA4, 0xCC5C, - 0x5CA5, 0xCC69, 0x5CA6, 0xCC6C, 0x5CA7, 0xCC67, 0x5CA8, 0xCC60, - 0x5CA9, 0xA9A5, 0x5CAA, 0xCC66, 0x5CAB, 0xA9A6, 0x5CAC, 0xCC61, - 0x5CAD, 0xCC64, 0x5CAE, 0xCC5B, 0x5CAF, 0xCC5F, 0x5CB0, 0xCC6B, - 0x5CB1, 0xA9A7, 0x5CB3, 0xA9A8, 0x5CB5, 0xCC5E, 0x5CB6, 0xCC6A, - 0x5CB7, 0xA9A2, 0x5CB8, 0xA9A4, 0x5CC6, 0xCEAB, 0x5CC7, 0xCEA4, - 0x5CC8, 0xCEAA, 0x5CC9, 0xCEA3, 0x5CCA, 0xCEA5, 0x5CCB, 0xCE7D, - 0x5CCC, 0xCE7B, 0x5CCE, 0xCEAC, 0x5CCF, 0xCEA9, 0x5CD0, 0xCE79, - 0x5CD2, 0xABD0, 0x5CD3, 0xCEA7, 0x5CD4, 0xCEA8, 0x5CD6, 0xCEA6, - 0x5CD7, 0xCE7C, 0x5CD8, 0xCE7A, 0x5CD9, 0xABCF, 0x5CDA, 0xCEA2, - 0x5CDB, 0xCE7E, 0x5CDE, 0xCEA1, 0x5CDF, 0xCEAD, 0x5CE8, 0xAE6F, - 0x5CEA, 0xAE6E, 0x5CEC, 0xD16C, 0x5CED, 0xAE6B, 0x5CEE, 0xD16E, - 0x5CF0, 0xAE70, 0x5CF1, 0xD16F, 0x5CF4, 0xAE73, 0x5CF6, 0xAE71, - 0x5CF7, 0xD170, 0x5CF8, 0xCEAE, 0x5CF9, 0xD172, 0x5CFB, 0xAE6D, - 0x5CFD, 0xAE6C, 0x5CFF, 0xD16D, 0x5D00, 0xD171, 0x5D01, 0xAE72, - 0x5D06, 0xB153, 0x5D07, 0xB152, 0x5D0B, 0xD4F5, 0x5D0C, 0xD4F9, - 0x5D0D, 0xD4FB, 0x5D0E, 0xB154, 0x5D0F, 0xD4FE, 0x5D11, 0xB158, - 0x5D12, 0xD541, 0x5D14, 0xB15A, 0x5D16, 0xB156, 0x5D17, 0xB15E, - 0x5D19, 0xB15B, 0x5D1A, 0xD4F7, 0x5D1B, 0xB155, 0x5D1D, 0xD4F6, - 0x5D1E, 0xD4F4, 0x5D1F, 0xD543, 0x5D20, 0xD4F8, 0x5D22, 0xB157, - 0x5D23, 0xD542, 0x5D24, 0xB15C, 0x5D25, 0xD4FD, 0x5D26, 0xD4FC, - 0x5D27, 0xB15D, 0x5D28, 0xD4FA, 0x5D29, 0xB159, 0x5D2E, 0xD544, - 0x5D30, 0xD540, 0x5D31, 0xD8E7, 0x5D32, 0xD8EE, 0x5D33, 0xD8E3, - 0x5D34, 0xB451, 0x5D35, 0xD8DF, 0x5D36, 0xD8EF, 0x5D37, 0xD8D9, - 0x5D38, 0xD8EC, 0x5D39, 0xD8EA, 0x5D3A, 0xD8E4, 0x5D3C, 0xD8ED, - 0x5D3D, 0xD8E6, 0x5D3F, 0xD8DE, 0x5D40, 0xD8F0, 0x5D41, 0xD8DC, - 0x5D42, 0xD8E9, 0x5D43, 0xD8DA, 0x5D45, 0xD8F1, 0x5D47, 0xB452, - 0x5D49, 0xD8EB, 0x5D4A, 0xDD4F, 0x5D4B, 0xD8DD, 0x5D4C, 0xB44F, - 0x5D4E, 0xD8E1, 0x5D50, 0xB450, 0x5D51, 0xD8E0, 0x5D52, 0xD8E5, - 0x5D55, 0xD8E2, 0x5D59, 0xD8E8, 0x5D5E, 0xDD53, 0x5D62, 0xDD56, - 0x5D63, 0xDD4E, 0x5D65, 0xDD50, 0x5D67, 0xDD55, 0x5D68, 0xDD54, - 0x5D69, 0xB743, 0x5D6B, 0xD8DB, 0x5D6C, 0xDD52, 0x5D6F, 0xB744, - 0x5D71, 0xDD4D, 0x5D72, 0xDD51, 0x5D77, 0xE1A9, 0x5D79, 0xE1B0, - 0x5D7A, 0xE1A7, 0x5D7C, 0xE1AE, 0x5D7D, 0xE1A5, 0x5D7E, 0xE1AD, - 0x5D7F, 0xE1B1, 0x5D80, 0xE1A4, 0x5D81, 0xE1A8, 0x5D82, 0xE1A3, - 0x5D84, 0xB9F1, 0x5D86, 0xE1A6, 0x5D87, 0xB9F2, 0x5D88, 0xE1AC, - 0x5D89, 0xE1AB, 0x5D8A, 0xE1AA, 0x5D8D, 0xE1AF, 0x5D92, 0xE565, - 0x5D93, 0xE567, 0x5D94, 0xBC6B, 0x5D95, 0xE568, 0x5D97, 0xE563, - 0x5D99, 0xE562, 0x5D9A, 0xE56C, 0x5D9C, 0xE56A, 0x5D9D, 0xBC6A, - 0x5D9E, 0xE56D, 0x5D9F, 0xE564, 0x5DA0, 0xE569, 0x5DA1, 0xE56B, - 0x5DA2, 0xE566, 0x5DA7, 0xE961, 0x5DA8, 0xE966, 0x5DA9, 0xE960, - 0x5DAA, 0xE965, 0x5DAC, 0xE95E, 0x5DAD, 0xE968, 0x5DAE, 0xE964, - 0x5DAF, 0xE969, 0x5DB0, 0xE963, 0x5DB1, 0xE95F, 0x5DB2, 0xE967, - 0x5DB4, 0xE96A, 0x5DB5, 0xE962, 0x5DB7, 0xECDA, 0x5DB8, 0xC0AF, - 0x5DBA, 0xC0AD, 0x5DBC, 0xC0AC, 0x5DBD, 0xC0AE, 0x5DC0, 0xEFC4, - 0x5DC2, 0xF172, 0x5DC3, 0xF1FD, 0x5DC6, 0xF444, 0x5DC7, 0xF445, - 0x5DC9, 0xC460, 0x5DCB, 0xF5C9, 0x5DCD, 0xC4DE, 0x5DCF, 0xF5CA, - 0x5DD1, 0xF6DE, 0x5DD2, 0xC572, 0x5DD4, 0xC571, 0x5DD5, 0xF6DD, - 0x5DD6, 0xC5C9, 0x5DD8, 0xF7D6, 0x5DDD, 0xA474, 0x5DDE, 0xA67B, - 0x5DDF, 0xC9DA, 0x5DE0, 0xCACA, 0x5DE1, 0xA8B5, 0x5DE2, 0xB15F, - 0x5DE5, 0xA475, 0x5DE6, 0xA5AA, 0x5DE7, 0xA5A9, 0x5DE8, 0xA5A8, - 0x5DEB, 0xA7C5, 0x5DEE, 0xAE74, 0x5DF0, 0xDD57, 0x5DF1, 0xA476, - 0x5DF2, 0xA477, 0x5DF3, 0xA478, 0x5DF4, 0xA4DA, 0x5DF7, 0xABD1, - 0x5DF9, 0xCEAF, 0x5DFD, 0xB453, 0x5DFE, 0xA479, 0x5DFF, 0xC95D, - 0x5E02, 0xA5AB, 0x5E03, 0xA5AC, 0x5E04, 0xC978, 0x5E06, 0xA67C, - 0x5E0A, 0xCACB, 0x5E0C, 0xA7C6, 0x5E0E, 0xCACC, 0x5E11, 0xA9AE, - 0x5E14, 0xCC6E, 0x5E15, 0xA9AC, 0x5E16, 0xA9AB, 0x5E17, 0xCC6D, - 0x5E18, 0xA9A9, 0x5E19, 0xCC6F, 0x5E1A, 0xA9AA, 0x5E1B, 0xA9AD, - 0x5E1D, 0xABD2, 0x5E1F, 0xABD4, 0x5E20, 0xCEB3, 0x5E21, 0xCEB0, - 0x5E22, 0xCEB1, 0x5E23, 0xCEB2, 0x5E24, 0xCEB4, 0x5E25, 0xABD3, - 0x5E28, 0xD174, 0x5E29, 0xD173, 0x5E2B, 0xAE76, 0x5E2D, 0xAE75, - 0x5E33, 0xB162, 0x5E34, 0xD546, 0x5E36, 0xB161, 0x5E37, 0xB163, - 0x5E38, 0xB160, 0x5E3D, 0xB455, 0x5E3E, 0xD545, 0x5E40, 0xB456, - 0x5E41, 0xD8F3, 0x5E43, 0xB457, 0x5E44, 0xD8F2, 0x5E45, 0xB454, - 0x5E4A, 0xDD5A, 0x5E4B, 0xDD5C, 0x5E4C, 0xB745, 0x5E4D, 0xDD5B, - 0x5E4E, 0xDD59, 0x5E4F, 0xDD58, 0x5E53, 0xE1B4, 0x5E54, 0xB9F7, - 0x5E55, 0xB9F5, 0x5E57, 0xB9F6, 0x5E58, 0xE1B2, 0x5E59, 0xE1B3, - 0x5E5B, 0xB9F3, 0x5E5C, 0xE571, 0x5E5D, 0xE56F, 0x5E5F, 0xBC6D, - 0x5E60, 0xE570, 0x5E61, 0xBC6E, 0x5E62, 0xBC6C, 0x5E63, 0xB9F4, - 0x5E66, 0xE96D, 0x5E67, 0xE96B, 0x5E68, 0xE96C, 0x5E69, 0xE56E, - 0x5E6A, 0xECDC, 0x5E6B, 0xC0B0, 0x5E6C, 0xECDB, 0x5E6D, 0xEFC5, - 0x5E6E, 0xEFC6, 0x5E6F, 0xE96E, 0x5E70, 0xF1FE, 0x5E72, 0xA47A, - 0x5E73, 0xA5AD, 0x5E74, 0xA67E, 0x5E75, 0xC9DB, 0x5E76, 0xA67D, - 0x5E78, 0xA9AF, 0x5E79, 0xB746, 0x5E7B, 0xA4DB, 0x5E7C, 0xA5AE, - 0x5E7D, 0xABD5, 0x5E7E, 0xB458, 0x5E80, 0xC979, 0x5E82, 0xC97A, - 0x5E84, 0xC9DC, 0x5E87, 0xA7C8, 0x5E88, 0xCAD0, 0x5E89, 0xCACE, - 0x5E8A, 0xA7C9, 0x5E8B, 0xCACD, 0x5E8C, 0xCACF, 0x5E8D, 0xCAD1, - 0x5E8F, 0xA7C7, 0x5E95, 0xA9B3, 0x5E96, 0xA9B4, 0x5E97, 0xA9B1, - 0x5E9A, 0xA9B0, 0x5E9B, 0xCEB8, 0x5E9C, 0xA9B2, 0x5EA0, 0xABD6, - 0x5EA2, 0xCEB7, 0x5EA3, 0xCEB9, 0x5EA4, 0xCEB6, 0x5EA5, 0xCEBA, - 0x5EA6, 0xABD7, 0x5EA7, 0xAE79, 0x5EA8, 0xD175, 0x5EAA, 0xD177, - 0x5EAB, 0xAE77, 0x5EAC, 0xD178, 0x5EAD, 0xAE78, 0x5EAE, 0xD176, - 0x5EB0, 0xCEB5, 0x5EB1, 0xD547, 0x5EB2, 0xD54A, 0x5EB3, 0xD54B, - 0x5EB4, 0xD548, 0x5EB5, 0xB167, 0x5EB6, 0xB166, 0x5EB7, 0xB164, - 0x5EB8, 0xB165, 0x5EB9, 0xD549, 0x5EBE, 0xB168, 0x5EC1, 0xB45A, - 0x5EC2, 0xB45B, 0x5EC4, 0xB45C, 0x5EC5, 0xDD5D, 0x5EC6, 0xDD5F, - 0x5EC7, 0xDD61, 0x5EC8, 0xB748, 0x5EC9, 0xB747, 0x5ECA, 0xB459, - 0x5ECB, 0xDD60, 0x5ECC, 0xDD5E, 0x5ECE, 0xE1B8, 0x5ED1, 0xE1B6, - 0x5ED2, 0xE1BC, 0x5ED3, 0xB9F8, 0x5ED4, 0xE1BD, 0x5ED5, 0xE1BA, - 0x5ED6, 0xB9F9, 0x5ED7, 0xE1B7, 0x5ED8, 0xE1B5, 0x5ED9, 0xE1BB, - 0x5EDA, 0xBC70, 0x5EDB, 0xE573, 0x5EDC, 0xE1B9, 0x5EDD, 0xBC72, - 0x5EDE, 0xE574, 0x5EDF, 0xBC71, 0x5EE0, 0xBC74, 0x5EE1, 0xE575, - 0x5EE2, 0xBC6F, 0x5EE3, 0xBC73, 0x5EE5, 0xE973, 0x5EE6, 0xE971, - 0x5EE7, 0xE970, 0x5EE8, 0xE972, 0x5EE9, 0xE96F, 0x5EEC, 0xC366, - 0x5EEE, 0xF446, 0x5EEF, 0xF447, 0x5EF1, 0xF5CB, 0x5EF2, 0xF6DF, - 0x5EF3, 0xC655, 0x5EF6, 0xA9B5, 0x5EF7, 0xA7CA, 0x5EFA, 0xABD8, - 0x5EFE, 0xA47B, 0x5EFF, 0xA4DC, 0x5F01, 0xA5AF, 0x5F02, 0xC9DD, - 0x5F04, 0xA7CB, 0x5F05, 0xCAD2, 0x5F07, 0xCEBB, 0x5F08, 0xABD9, - 0x5F0A, 0xB9FA, 0x5F0B, 0xA47C, 0x5F0F, 0xA6A1, 0x5F12, 0xB749, - 0x5F13, 0xA47D, 0x5F14, 0xA4DD, 0x5F15, 0xA4DE, 0x5F17, 0xA5B1, - 0x5F18, 0xA5B0, 0x5F1A, 0xC9DE, 0x5F1B, 0xA6A2, 0x5F1D, 0xCAD3, - 0x5F1F, 0xA7CC, 0x5F22, 0xCC71, 0x5F23, 0xCC72, 0x5F24, 0xCC73, - 0x5F26, 0xA9B6, 0x5F27, 0xA9B7, 0x5F28, 0xCC70, 0x5F29, 0xA9B8, - 0x5F2D, 0xABDA, 0x5F2E, 0xCEBC, 0x5F30, 0xD17A, 0x5F31, 0xAE7A, - 0x5F33, 0xD179, 0x5F35, 0xB169, 0x5F36, 0xD54C, 0x5F37, 0xB16A, - 0x5F38, 0xD54D, 0x5F3C, 0xB45D, 0x5F40, 0xDD62, 0x5F43, 0xE1BF, - 0x5F44, 0xE1BE, 0x5F46, 0xB9FB, 0x5F48, 0xBC75, 0x5F49, 0xE576, - 0x5F4A, 0xBECA, 0x5F4B, 0xE974, 0x5F4C, 0xC0B1, 0x5F4E, 0xC573, - 0x5F4F, 0xF7D8, 0x5F54, 0xCC74, 0x5F56, 0xCEBD, 0x5F57, 0xB16B, - 0x5F58, 0xD8F4, 0x5F59, 0xB74A, 0x5F5D, 0xC255, 0x5F62, 0xA7CE, - 0x5F64, 0xA7CD, 0x5F65, 0xABDB, 0x5F67, 0xD17B, 0x5F69, 0xB16D, - 0x5F6A, 0xB343, 0x5F6B, 0xB16E, 0x5F6C, 0xB16C, 0x5F6D, 0xB45E, - 0x5F6F, 0xE1C0, 0x5F70, 0xB9FC, 0x5F71, 0xBC76, 0x5F73, 0xC94C, - 0x5F74, 0xC9DF, 0x5F76, 0xCAD5, 0x5F77, 0xA7CF, 0x5F78, 0xCAD4, - 0x5F79, 0xA7D0, 0x5F7C, 0xA9BC, 0x5F7D, 0xCC77, 0x5F7E, 0xCC76, - 0x5F7F, 0xA9BB, 0x5F80, 0xA9B9, 0x5F81, 0xA9BA, 0x5F82, 0xCC75, - 0x5F85, 0xABDD, 0x5F86, 0xCEBE, 0x5F87, 0xABE0, 0x5F88, 0xABDC, - 0x5F89, 0xABE2, 0x5F8A, 0xABDE, 0x5F8B, 0xABDF, 0x5F8C, 0xABE1, - 0x5F90, 0xAE7D, 0x5F91, 0xAE7C, 0x5F92, 0xAE7B, 0x5F96, 0xD54F, - 0x5F97, 0xB16F, 0x5F98, 0xB172, 0x5F99, 0xB170, 0x5F9B, 0xD54E, - 0x5F9C, 0xB175, 0x5F9E, 0xB171, 0x5F9F, 0xD550, 0x5FA0, 0xB174, - 0x5FA1, 0xB173, 0x5FA5, 0xD8F6, 0x5FA6, 0xD8F5, 0x5FA8, 0xB461, - 0x5FA9, 0xB45F, 0x5FAA, 0xB460, 0x5FAB, 0xD8F7, 0x5FAC, 0xB74B, - 0x5FAD, 0xDD64, 0x5FAE, 0xB74C, 0x5FAF, 0xDD63, 0x5FB2, 0xE577, - 0x5FB5, 0xBC78, 0x5FB6, 0xE1C1, 0x5FB7, 0xBC77, 0x5FB9, 0xB9FD, - 0x5FBB, 0xECDE, 0x5FBC, 0xE975, 0x5FBD, 0xC0B2, 0x5FBE, 0xECDD, - 0x5FBF, 0xF240, 0x5FC0, 0xF448, 0x5FC1, 0xF449, 0x5FC3, 0xA4DF, - 0x5FC5, 0xA5B2, 0x5FC9, 0xC97B, 0x5FCC, 0xA7D2, 0x5FCD, 0xA7D4, - 0x5FCF, 0xC9E2, 0x5FD0, 0xCAD8, 0x5FD1, 0xCAD7, 0x5FD2, 0xCAD6, - 0x5FD4, 0xC9E1, 0x5FD5, 0xC9E0, 0x5FD6, 0xA6A4, 0x5FD7, 0xA7D3, - 0x5FD8, 0xA7D1, 0x5FD9, 0xA6A3, 0x5FDD, 0xA9BD, 0x5FDE, 0xCC78, - 0x5FE0, 0xA9BE, 0x5FE1, 0xCADD, 0x5FE3, 0xCADF, 0x5FE4, 0xCADE, - 0x5FE5, 0xCC79, 0x5FE8, 0xCADA, 0x5FEA, 0xA7D8, 0x5FEB, 0xA7D6, - 0x5FED, 0xCAD9, 0x5FEE, 0xCADB, 0x5FEF, 0xCAE1, 0x5FF1, 0xA7D5, - 0x5FF3, 0xCADC, 0x5FF4, 0xCAE5, 0x5FF5, 0xA9C0, 0x5FF7, 0xCAE2, - 0x5FF8, 0xA7D7, 0x5FFA, 0xCAE0, 0x5FFB, 0xCAE3, 0x5FFD, 0xA9BF, - 0x5FFF, 0xA9C1, 0x6000, 0xCAE4, 0x6009, 0xCCAF, 0x600A, 0xCCA2, - 0x600B, 0xCC7E, 0x600C, 0xCCAE, 0x600D, 0xCCA9, 0x600E, 0xABE7, - 0x600F, 0xA9C2, 0x6010, 0xCCAA, 0x6011, 0xCCAD, 0x6012, 0xABE3, - 0x6013, 0xCCAC, 0x6014, 0xA9C3, 0x6015, 0xA9C8, 0x6016, 0xA9C6, - 0x6017, 0xCCA3, 0x6019, 0xCC7C, 0x601A, 0xCCA5, 0x601B, 0xA9CD, - 0x601C, 0xCCB0, 0x601D, 0xABE4, 0x601E, 0xCCA6, 0x6020, 0xABE5, - 0x6021, 0xA9C9, 0x6022, 0xCCA8, 0x6024, 0xCECD, 0x6025, 0xABE6, - 0x6026, 0xCC7B, 0x6027, 0xA9CA, 0x6028, 0xABE8, 0x6029, 0xA9CB, - 0x602A, 0xA9C7, 0x602B, 0xA9CC, 0x602C, 0xCCA7, 0x602D, 0xCC7A, - 0x602E, 0xCCAB, 0x602F, 0xA9C4, 0x6032, 0xCC7D, 0x6033, 0xCCA4, - 0x6034, 0xCCA1, 0x6035, 0xA9C5, 0x6037, 0xCEBF, 0x6039, 0xCEC0, - 0x6040, 0xCECA, 0x6041, 0xD1A1, 0x6042, 0xCECB, 0x6043, 0xABEE, - 0x6044, 0xCECE, 0x6045, 0xCEC4, 0x6046, 0xABED, 0x6047, 0xCEC6, - 0x6049, 0xCEC7, 0x604C, 0xCEC9, 0x604D, 0xABE9, 0x6050, 0xAEA3, - 0x6052, 0xF9DA, 0x6053, 0xCEC5, 0x6054, 0xCEC1, 0x6055, 0xAEA4, - 0x6058, 0xCECF, 0x6059, 0xAE7E, 0x605A, 0xD17D, 0x605B, 0xCEC8, - 0x605D, 0xD17C, 0x605E, 0xCEC3, 0x605F, 0xCECC, 0x6062, 0xABEC, - 0x6063, 0xAEA1, 0x6064, 0xABF2, 0x6065, 0xAEA2, 0x6066, 0xCED0, - 0x6067, 0xD17E, 0x6068, 0xABEB, 0x6069, 0xAEA6, 0x606A, 0xABF1, - 0x606B, 0xABF0, 0x606C, 0xABEF, 0x606D, 0xAEA5, 0x606E, 0xCED1, - 0x606F, 0xAEA7, 0x6070, 0xABEA, 0x6072, 0xCEC2, 0x607F, 0xB176, - 0x6080, 0xD1A4, 0x6081, 0xD1A6, 0x6083, 0xD1A8, 0x6084, 0xAEA8, - 0x6085, 0xAEAE, 0x6086, 0xD553, 0x6087, 0xD1AC, 0x6088, 0xD1A3, - 0x6089, 0xB178, 0x608A, 0xD551, 0x608C, 0xAEAD, 0x608D, 0xAEAB, - 0x608E, 0xD1AE, 0x6090, 0xD552, 0x6092, 0xD1A5, 0x6094, 0xAEAC, - 0x6095, 0xD1A9, 0x6096, 0xAEAF, 0x6097, 0xD1AB, 0x609A, 0xAEAA, - 0x609B, 0xD1AA, 0x609C, 0xD1AD, 0x609D, 0xD1A7, 0x609F, 0xAEA9, - 0x60A0, 0xB179, 0x60A2, 0xD1A2, 0x60A3, 0xB177, 0x60A8, 0xB17A, - 0x60B0, 0xD555, 0x60B1, 0xD55E, 0x60B2, 0xB464, 0x60B4, 0xB17C, - 0x60B5, 0xB1A3, 0x60B6, 0xB465, 0x60B7, 0xD560, 0x60B8, 0xB1AA, - 0x60B9, 0xD8F9, 0x60BA, 0xD556, 0x60BB, 0xB1A2, 0x60BC, 0xB1A5, - 0x60BD, 0xB17E, 0x60BE, 0xD554, 0x60BF, 0xD562, 0x60C0, 0xD565, - 0x60C1, 0xD949, 0x60C3, 0xD563, 0x60C4, 0xD8FD, 0x60C5, 0xB1A1, - 0x60C6, 0xB1A8, 0x60C7, 0xB1AC, 0x60C8, 0xD55D, 0x60C9, 0xD8F8, - 0x60CA, 0xD561, 0x60CB, 0xB17B, 0x60CC, 0xD8FA, 0x60CD, 0xD564, - 0x60CE, 0xD8FC, 0x60CF, 0xD559, 0x60D1, 0xB462, 0x60D3, 0xD557, - 0x60D4, 0xD558, 0x60D5, 0xB1A7, 0x60D8, 0xB1A6, 0x60D9, 0xD55B, - 0x60DA, 0xB1AB, 0x60DB, 0xD55F, 0x60DC, 0xB1A4, 0x60DD, 0xD55C, - 0x60DF, 0xB1A9, 0x60E0, 0xB466, 0x60E1, 0xB463, 0x60E2, 0xD8FB, - 0x60E4, 0xD55A, 0x60E6, 0xB17D, 0x60F0, 0xB46B, 0x60F1, 0xB46F, - 0x60F2, 0xD940, 0x60F3, 0xB751, 0x60F4, 0xB46D, 0x60F5, 0xD944, - 0x60F6, 0xB471, 0x60F7, 0xDD65, 0x60F8, 0xD946, 0x60F9, 0xB753, - 0x60FA, 0xB469, 0x60FB, 0xB46C, 0x60FC, 0xD947, 0x60FE, 0xD948, - 0x60FF, 0xD94E, 0x6100, 0xB473, 0x6101, 0xB754, 0x6103, 0xD94A, - 0x6104, 0xD94F, 0x6105, 0xD943, 0x6106, 0xB75E, 0x6108, 0xB755, - 0x6109, 0xB472, 0x610A, 0xD941, 0x610B, 0xD950, 0x610D, 0xB75D, - 0x610E, 0xB470, 0x610F, 0xB74E, 0x6110, 0xD94D, 0x6112, 0xB474, - 0x6113, 0xD945, 0x6114, 0xD8FE, 0x6115, 0xB46A, 0x6116, 0xD942, - 0x6118, 0xD94B, 0x611A, 0xB74D, 0x611B, 0xB752, 0x611C, 0xB467, - 0x611D, 0xD94C, 0x611F, 0xB750, 0x6123, 0xB468, 0x6127, 0xB75C, - 0x6128, 0xE1C3, 0x6129, 0xDD70, 0x612B, 0xDD68, 0x612C, 0xE1C2, - 0x612E, 0xDD6C, 0x612F, 0xDD6E, 0x6132, 0xDD6B, 0x6134, 0xB75B, - 0x6136, 0xDD6A, 0x6137, 0xB75F, 0x613B, 0xE1D2, 0x613E, 0xB75A, - 0x613F, 0xBA40, 0x6140, 0xDD71, 0x6141, 0xE1C4, 0x6144, 0xB758, - 0x6145, 0xDD69, 0x6146, 0xDD6D, 0x6147, 0xB9FE, 0x6148, 0xB74F, - 0x6149, 0xDD66, 0x614A, 0xDD67, 0x614B, 0xBA41, 0x614C, 0xB757, - 0x614D, 0xB759, 0x614E, 0xB756, 0x614F, 0xDD6F, 0x6152, 0xE1C8, - 0x6153, 0xE1C9, 0x6154, 0xE1CE, 0x6155, 0xBC7D, 0x6156, 0xE1D5, - 0x6158, 0xBA47, 0x615A, 0xBA46, 0x615B, 0xE1D0, 0x615D, 0xBC7C, - 0x615E, 0xE1C5, 0x615F, 0xBA45, 0x6161, 0xE1D4, 0x6162, 0xBA43, - 0x6163, 0xBA44, 0x6165, 0xE1D1, 0x6166, 0xE5AA, 0x6167, 0xBC7A, - 0x6168, 0xB46E, 0x616A, 0xE1D3, 0x616B, 0xBCA3, 0x616C, 0xE1CB, - 0x616E, 0xBC7B, 0x6170, 0xBCA2, 0x6171, 0xE1C6, 0x6172, 0xE1CA, - 0x6173, 0xE1C7, 0x6174, 0xE1CD, 0x6175, 0xBA48, 0x6176, 0xBC79, - 0x6177, 0xBA42, 0x6179, 0xE57A, 0x617A, 0xE1CF, 0x617C, 0xBCA1, - 0x617E, 0xBCA4, 0x6180, 0xE1CC, 0x6182, 0xBC7E, 0x6183, 0xE579, - 0x6189, 0xE57E, 0x618A, 0xBECE, 0x618B, 0xE578, 0x618C, 0xE9A3, - 0x618D, 0xE5A9, 0x618E, 0xBCA8, 0x6190, 0xBCA6, 0x6191, 0xBECC, - 0x6192, 0xE5A6, 0x6193, 0xE5A2, 0x6194, 0xBCAC, 0x6196, 0xE978, - 0x619A, 0xBCAA, 0x619B, 0xE5A1, 0x619D, 0xE976, 0x619F, 0xE5A5, - 0x61A1, 0xE5A8, 0x61A2, 0xE57D, 0x61A4, 0xBCAB, 0x61A7, 0xBCA5, - 0x61A8, 0xE977, 0x61A9, 0xBECD, 0x61AA, 0xE5A7, 0x61AB, 0xBCA7, - 0x61AC, 0xBCA9, 0x61AD, 0xE5A4, 0x61AE, 0xBCAD, 0x61AF, 0xE5A3, - 0x61B0, 0xE57C, 0x61B1, 0xE57B, 0x61B2, 0xBECB, 0x61B3, 0xE5AB, - 0x61B4, 0xE97A, 0x61B5, 0xECE0, 0x61B6, 0xBED0, 0x61B8, 0xE9A2, - 0x61BA, 0xE97E, 0x61BC, 0xECE1, 0x61BE, 0xBED1, 0x61BF, 0xE9A1, - 0x61C1, 0xE97C, 0x61C2, 0xC0B4, 0x61C3, 0xECDF, 0x61C5, 0xE979, - 0x61C6, 0xE97B, 0x61C7, 0xC0B5, 0x61C8, 0xBED3, 0x61C9, 0xC0B3, - 0x61CA, 0xBED2, 0x61CB, 0xC0B7, 0x61CC, 0xE97D, 0x61CD, 0xBECF, - 0x61D6, 0xEFCF, 0x61D8, 0xEFC7, 0x61DE, 0xECE7, 0x61DF, 0xEFC8, - 0x61E0, 0xECE3, 0x61E3, 0xC256, 0x61E4, 0xECE5, 0x61E5, 0xECE4, - 0x61E6, 0xC0B6, 0x61E7, 0xECE2, 0x61E8, 0xECE6, 0x61E9, 0xEFD0, - 0x61EA, 0xEFCC, 0x61EB, 0xEFCE, 0x61ED, 0xEFC9, 0x61EE, 0xEFCA, - 0x61F0, 0xEFCD, 0x61F1, 0xEFCB, 0x61F2, 0xC367, 0x61F5, 0xC36A, - 0x61F6, 0xC369, 0x61F7, 0xC368, 0x61F8, 0xC461, 0x61F9, 0xF44A, - 0x61FA, 0xC462, 0x61FB, 0xF241, 0x61FC, 0xC4DF, 0x61FD, 0xF5CC, - 0x61FE, 0xC4E0, 0x61FF, 0xC574, 0x6200, 0xC5CA, 0x6201, 0xF7D9, - 0x6203, 0xF7DA, 0x6204, 0xF7DB, 0x6207, 0xF9BA, 0x6208, 0xA4E0, - 0x6209, 0xC97C, 0x620A, 0xA5B3, 0x620C, 0xA6A6, 0x620D, 0xA6A7, - 0x620E, 0xA6A5, 0x6210, 0xA6A8, 0x6211, 0xA7DA, 0x6212, 0xA7D9, - 0x6214, 0xCCB1, 0x6215, 0xA9CF, 0x6216, 0xA9CE, 0x6219, 0xD1AF, - 0x621A, 0xB1AD, 0x621B, 0xB1AE, 0x621F, 0xB475, 0x6220, 0xDD72, - 0x6221, 0xB760, 0x6222, 0xB761, 0x6223, 0xDD74, 0x6224, 0xDD76, - 0x6225, 0xDD75, 0x6227, 0xE1D7, 0x6229, 0xE1D6, 0x622A, 0xBA49, - 0x622B, 0xE1D8, 0x622D, 0xE5AC, 0x622E, 0xBCAE, 0x6230, 0xBED4, - 0x6232, 0xC0B8, 0x6233, 0xC257, 0x6234, 0xC0B9, 0x6236, 0xA4E1, - 0x623A, 0xCAE6, 0x623D, 0xCCB2, 0x623E, 0xA9D1, 0x623F, 0xA9D0, - 0x6240, 0xA9D2, 0x6241, 0xABF3, 0x6242, 0xCED2, 0x6243, 0xCED3, - 0x6246, 0xD1B0, 0x6247, 0xAEB0, 0x6248, 0xB1AF, 0x6249, 0xB476, - 0x624A, 0xD951, 0x624B, 0xA4E2, 0x624D, 0xA47E, 0x624E, 0xA4E3, - 0x6250, 0xC97D, 0x6251, 0xA5B7, 0x6252, 0xA5B6, 0x6253, 0xA5B4, - 0x6254, 0xA5B5, 0x6258, 0xA6AB, 0x6259, 0xC9E9, 0x625A, 0xC9EB, - 0x625B, 0xA6AA, 0x625C, 0xC9E3, 0x625E, 0xC9E4, 0x6260, 0xC9EA, - 0x6261, 0xC9E6, 0x6262, 0xC9E8, 0x6263, 0xA6A9, 0x6264, 0xC9E5, - 0x6265, 0xC9EC, 0x6266, 0xC9E7, 0x626D, 0xA7E1, 0x626E, 0xA7EA, - 0x626F, 0xA7E8, 0x6270, 0xCAF0, 0x6271, 0xCAED, 0x6272, 0xCAF5, - 0x6273, 0xA7E6, 0x6274, 0xCAF6, 0x6276, 0xA7DF, 0x6277, 0xCAF3, - 0x6279, 0xA7E5, 0x627A, 0xCAEF, 0x627B, 0xCAEE, 0x627C, 0xA7E3, - 0x627D, 0xCAF4, 0x627E, 0xA7E4, 0x627F, 0xA9D3, 0x6280, 0xA7DE, - 0x6281, 0xCAF1, 0x6283, 0xCAE7, 0x6284, 0xA7DB, 0x6286, 0xA7EE, - 0x6287, 0xCAEC, 0x6288, 0xCAF2, 0x6289, 0xA7E0, 0x628A, 0xA7E2, - 0x628C, 0xCAE8, 0x628E, 0xCAE9, 0x628F, 0xCAEA, 0x6291, 0xA7ED, - 0x6292, 0xA7E7, 0x6293, 0xA7EC, 0x6294, 0xCAEB, 0x6295, 0xA7EB, - 0x6296, 0xA7DD, 0x6297, 0xA7DC, 0x6298, 0xA7E9, 0x62A8, 0xA9E1, - 0x62A9, 0xCCBE, 0x62AA, 0xCCB7, 0x62AB, 0xA9DC, 0x62AC, 0xA9EF, - 0x62AD, 0xCCB3, 0x62AE, 0xCCBA, 0x62AF, 0xCCBC, 0x62B0, 0xCCBF, - 0x62B1, 0xA9EA, 0x62B3, 0xCCBB, 0x62B4, 0xCCB4, 0x62B5, 0xA9E8, - 0x62B6, 0xCCB8, 0x62B8, 0xCCC0, 0x62B9, 0xA9D9, 0x62BB, 0xCCBD, - 0x62BC, 0xA9E3, 0x62BD, 0xA9E2, 0x62BE, 0xCCB6, 0x62BF, 0xA9D7, - 0x62C2, 0xA9D8, 0x62C4, 0xA9D6, 0x62C6, 0xA9EE, 0x62C7, 0xA9E6, - 0x62C8, 0xA9E0, 0x62C9, 0xA9D4, 0x62CA, 0xCCB9, 0x62CB, 0xA9DF, - 0x62CC, 0xA9D5, 0x62CD, 0xA9E7, 0x62CE, 0xA9F0, 0x62CF, 0xCED4, - 0x62D0, 0xA9E4, 0x62D1, 0xCCB5, 0x62D2, 0xA9DA, 0x62D3, 0xA9DD, - 0x62D4, 0xA9DE, 0x62D6, 0xA9EC, 0x62D7, 0xA9ED, 0x62D8, 0xA9EB, - 0x62D9, 0xA9E5, 0x62DA, 0xA9E9, 0x62DB, 0xA9DB, 0x62DC, 0xABF4, - 0x62EB, 0xCEDA, 0x62EC, 0xAC41, 0x62ED, 0xABF8, 0x62EE, 0xABFA, - 0x62EF, 0xAC40, 0x62F0, 0xCEE6, 0x62F1, 0xABFD, 0x62F2, 0xD1B1, - 0x62F3, 0xAEB1, 0x62F4, 0xAC43, 0x62F5, 0xCED7, 0x62F6, 0xCEDF, - 0x62F7, 0xABFE, 0x62F8, 0xCEDE, 0x62F9, 0xCEDB, 0x62FA, 0xCEE3, - 0x62FB, 0xCEE5, 0x62FC, 0xABF7, 0x62FD, 0xABFB, 0x62FE, 0xAC42, - 0x62FF, 0xAEB3, 0x6300, 0xCEE0, 0x6301, 0xABF9, 0x6302, 0xAC45, - 0x6303, 0xCED9, 0x6307, 0xABFC, 0x6308, 0xAEB2, 0x6309, 0xABF6, - 0x630B, 0xCED6, 0x630C, 0xCEDD, 0x630D, 0xCED5, 0x630E, 0xCED8, - 0x630F, 0xCEDC, 0x6310, 0xD1B2, 0x6311, 0xAC44, 0x6313, 0xCEE1, - 0x6314, 0xCEE2, 0x6315, 0xCEE4, 0x6316, 0xABF5, 0x6328, 0xAEC1, - 0x6329, 0xD1BE, 0x632A, 0xAEBF, 0x632B, 0xAEC0, 0x632C, 0xD1B4, - 0x632D, 0xD1C4, 0x632F, 0xAEB6, 0x6332, 0xD566, 0x6333, 0xD1C6, - 0x6334, 0xD1C0, 0x6336, 0xD1B7, 0x6338, 0xD1C9, 0x6339, 0xD1BA, - 0x633A, 0xAEBC, 0x633B, 0xD57D, 0x633C, 0xD1BD, 0x633D, 0xAEBE, - 0x633E, 0xAEB5, 0x6340, 0xD1CB, 0x6341, 0xD1BF, 0x6342, 0xAEB8, - 0x6343, 0xD1B8, 0x6344, 0xD1B5, 0x6345, 0xD1B6, 0x6346, 0xAEB9, - 0x6347, 0xD1C5, 0x6348, 0xD1CC, 0x6349, 0xAEBB, 0x634A, 0xD1BC, - 0x634B, 0xD1BB, 0x634C, 0xAEC3, 0x634D, 0xAEC2, 0x634E, 0xAEB4, - 0x634F, 0xAEBA, 0x6350, 0xAEBD, 0x6351, 0xD1C8, 0x6354, 0xD1C2, - 0x6355, 0xAEB7, 0x6356, 0xD1B3, 0x6357, 0xD1CA, 0x6358, 0xD1C1, - 0x6359, 0xD1C3, 0x635A, 0xD1C7, 0x6365, 0xD567, 0x6367, 0xB1B7, - 0x6368, 0xB1CB, 0x6369, 0xB1CA, 0x636B, 0xB1BF, 0x636D, 0xD579, - 0x636E, 0xD575, 0x636F, 0xD572, 0x6370, 0xD5A6, 0x6371, 0xB1BA, - 0x6372, 0xB1B2, 0x6375, 0xD577, 0x6376, 0xB4A8, 0x6377, 0xB1B6, - 0x6378, 0xD5A1, 0x637A, 0xB1CC, 0x637B, 0xB1C9, 0x637C, 0xD57B, - 0x637D, 0xD56A, 0x6380, 0xB1C8, 0x6381, 0xD5A3, 0x6382, 0xD569, - 0x6383, 0xB1BD, 0x6384, 0xB1C1, 0x6385, 0xD5A2, 0x6387, 0xD573, - 0x6388, 0xB1C2, 0x6389, 0xB1BC, 0x638A, 0xD568, 0x638C, 0xB478, - 0x638D, 0xD5A5, 0x638E, 0xD571, 0x638F, 0xB1C7, 0x6390, 0xD574, - 0x6391, 0xD5A4, 0x6392, 0xB1C6, 0x6394, 0xD952, 0x6396, 0xB1B3, - 0x6397, 0xD56F, 0x6398, 0xB1B8, 0x6399, 0xB1C3, 0x639B, 0xB1BE, - 0x639C, 0xD578, 0x639D, 0xD56E, 0x639E, 0xD56C, 0x639F, 0xD57E, - 0x63A0, 0xB1B0, 0x63A1, 0xB1C4, 0x63A2, 0xB1B4, 0x63A3, 0xB477, - 0x63A4, 0xD57C, 0x63A5, 0xB1B5, 0x63A7, 0xB1B1, 0x63A8, 0xB1C0, - 0x63A9, 0xB1BB, 0x63AA, 0xB1B9, 0x63AB, 0xD570, 0x63AC, 0xB1C5, - 0x63AD, 0xD56D, 0x63AE, 0xD57A, 0x63AF, 0xD576, 0x63B0, 0xD954, - 0x63B1, 0xD953, 0x63BD, 0xD56B, 0x63BE, 0xD964, 0x63C0, 0xB47A, - 0x63C2, 0xD96A, 0x63C3, 0xD959, 0x63C4, 0xD967, 0x63C5, 0xDD77, - 0x63C6, 0xB47D, 0x63C7, 0xD96B, 0x63C8, 0xD96E, 0x63C9, 0xB47C, - 0x63CA, 0xD95C, 0x63CB, 0xD96D, 0x63CC, 0xD96C, 0x63CD, 0xB47E, - 0x63CE, 0xD955, 0x63CF, 0xB479, 0x63D0, 0xB4A3, 0x63D2, 0xB4A1, - 0x63D3, 0xD969, 0x63D5, 0xD95F, 0x63D6, 0xB4A5, 0x63D7, 0xD970, - 0x63D8, 0xD968, 0x63D9, 0xD971, 0x63DA, 0xB4AD, 0x63DB, 0xB4AB, - 0x63DC, 0xD966, 0x63DD, 0xD965, 0x63DF, 0xD963, 0x63E0, 0xD95D, - 0x63E1, 0xB4A4, 0x63E3, 0xB4A2, 0x63E4, 0xD1B9, 0x63E5, 0xD956, - 0x63E7, 0xDDB7, 0x63E8, 0xD957, 0x63E9, 0xB47B, 0x63EA, 0xB4AA, - 0x63EB, 0xDD79, 0x63ED, 0xB4A6, 0x63EE, 0xB4A7, 0x63EF, 0xD958, - 0x63F0, 0xD96F, 0x63F1, 0xDD78, 0x63F2, 0xD960, 0x63F3, 0xD95B, - 0x63F4, 0xB4A9, 0x63F5, 0xD961, 0x63F6, 0xD95E, 0x63F9, 0xB4AE, - 0x6406, 0xB770, 0x6409, 0xDD7C, 0x640A, 0xDDB1, 0x640B, 0xDDB6, - 0x640C, 0xDDAA, 0x640D, 0xB76C, 0x640E, 0xDDBB, 0x640F, 0xB769, - 0x6410, 0xDD7A, 0x6412, 0xDD7B, 0x6413, 0xB762, 0x6414, 0xB76B, - 0x6415, 0xDDA4, 0x6416, 0xB76E, 0x6417, 0xB76F, 0x6418, 0xDDA5, - 0x641A, 0xDDB2, 0x641B, 0xDDB8, 0x641C, 0xB76A, 0x641E, 0xB764, - 0x641F, 0xDDA3, 0x6420, 0xDD7D, 0x6421, 0xDDBA, 0x6422, 0xDDA8, - 0x6423, 0xDDA9, 0x6424, 0xDD7E, 0x6425, 0xDDB4, 0x6426, 0xDDAB, - 0x6427, 0xDDB5, 0x6428, 0xDDAD, 0x642A, 0xB765, 0x642B, 0xE1D9, - 0x642C, 0xB768, 0x642D, 0xB766, 0x642E, 0xDDB9, 0x642F, 0xDDB0, - 0x6430, 0xDDAC, 0x6433, 0xDDA1, 0x6434, 0xBA53, 0x6435, 0xDDAF, - 0x6436, 0xB76D, 0x6437, 0xDDA7, 0x6439, 0xDDA6, 0x643D, 0xB767, - 0x643E, 0xB763, 0x643F, 0xE1EE, 0x6440, 0xDDB3, 0x6441, 0xDDAE, - 0x6443, 0xDDA2, 0x644B, 0xE1E9, 0x644D, 0xE1DA, 0x644E, 0xE1E5, - 0x6450, 0xE1EC, 0x6451, 0xBA51, 0x6452, 0xB4AC, 0x6453, 0xE1EA, - 0x6454, 0xBA4C, 0x6458, 0xBA4B, 0x6459, 0xE1F1, 0x645B, 0xE1DB, - 0x645C, 0xE1E8, 0x645D, 0xE1DC, 0x645E, 0xE1E7, 0x645F, 0xBA4F, - 0x6460, 0xE1EB, 0x6461, 0xD962, 0x6465, 0xE1F2, 0x6466, 0xE1E3, - 0x6467, 0xBA52, 0x6468, 0xE5BA, 0x6469, 0xBCAF, 0x646B, 0xE1F0, - 0x646C, 0xE1EF, 0x646D, 0xBA54, 0x646E, 0xE5AD, 0x646F, 0xBCB0, - 0x6470, 0xE5AE, 0x6472, 0xE1DF, 0x6473, 0xE1E0, 0x6474, 0xE1DD, - 0x6475, 0xE1E2, 0x6476, 0xE1DE, 0x6477, 0xE1F3, 0x6478, 0xBA4E, - 0x6479, 0xBCB1, 0x647A, 0xBA50, 0x647B, 0xBA55, 0x647D, 0xE1E1, - 0x647F, 0xE1ED, 0x6482, 0xE1E6, 0x6485, 0xE5B1, 0x6487, 0xBA4A, - 0x6488, 0xBCB4, 0x6489, 0xE9AA, 0x648A, 0xE5B6, 0x648B, 0xE5B5, - 0x648C, 0xE5B7, 0x648F, 0xE5B4, 0x6490, 0xBCB5, 0x6492, 0xBCBB, - 0x6493, 0xBCB8, 0x6495, 0xBCB9, 0x6496, 0xE5AF, 0x6497, 0xE5B2, - 0x6498, 0xE5BC, 0x6499, 0xBCC1, 0x649A, 0xBCBF, 0x649C, 0xE5B3, - 0x649D, 0xD95A, 0x649E, 0xBCB2, 0x649F, 0xE5B9, 0x64A0, 0xE5B0, - 0x64A2, 0xBCC2, 0x64A3, 0xE5B8, 0x64A4, 0xBA4D, 0x64A5, 0xBCB7, - 0x64A6, 0xE1E4, 0x64A9, 0xBCBA, 0x64AB, 0xBCBE, 0x64AC, 0xBCC0, - 0x64AD, 0xBCBD, 0x64AE, 0xBCBC, 0x64B0, 0xBCB6, 0x64B1, 0xE5BB, - 0x64B2, 0xBCB3, 0x64B3, 0xBCC3, 0x64BB, 0xBED8, 0x64BC, 0xBED9, - 0x64BD, 0xE9A9, 0x64BE, 0xBEE2, 0x64BF, 0xBEDF, 0x64C1, 0xBED6, - 0x64C2, 0xBEDD, 0x64C3, 0xE9AB, 0x64C4, 0xBEDB, 0x64C5, 0xBED5, - 0x64C7, 0xBEDC, 0x64C9, 0xE9A8, 0x64CA, 0xC0BB, 0x64CB, 0xBED7, - 0x64CD, 0xBEDE, 0x64CE, 0xC0BA, 0x64CF, 0xE9A7, 0x64D0, 0xE9A6, - 0x64D2, 0xBEE0, 0x64D4, 0xBEE1, 0x64D6, 0xE9A5, 0x64D7, 0xE9A4, - 0x64D8, 0xC0BC, 0x64D9, 0xE9AE, 0x64DA, 0xBEDA, 0x64DB, 0xE9AC, - 0x64E0, 0xC0BD, 0x64E2, 0xC0C2, 0x64E3, 0xECEA, 0x64E4, 0xECEC, - 0x64E6, 0xC0BF, 0x64E8, 0xECED, 0x64E9, 0xECE9, 0x64EB, 0xECEB, - 0x64EC, 0xC0C0, 0x64ED, 0xC0C3, 0x64EF, 0xECE8, 0x64F0, 0xC0BE, - 0x64F1, 0xC0C1, 0x64F2, 0xC259, 0x64F3, 0xE9AD, 0x64F4, 0xC258, - 0x64F7, 0xC25E, 0x64F8, 0xEFD4, 0x64FA, 0xC25C, 0x64FB, 0xC25D, - 0x64FC, 0xEFD7, 0x64FD, 0xEFD3, 0x64FE, 0xC25A, 0x64FF, 0xEFD1, - 0x6500, 0xC36B, 0x6501, 0xEFD5, 0x6503, 0xEFD6, 0x6504, 0xEFD2, - 0x6506, 0xC25B, 0x6507, 0xF242, 0x6509, 0xF245, 0x650C, 0xF246, - 0x650D, 0xF244, 0x650E, 0xF247, 0x650F, 0xC36C, 0x6510, 0xF243, - 0x6513, 0xF44E, 0x6514, 0xC464, 0x6515, 0xF44D, 0x6516, 0xF44C, - 0x6517, 0xF44B, 0x6518, 0xC463, 0x6519, 0xC465, 0x651B, 0xF5CD, - 0x651C, 0xC4E2, 0x651D, 0xC4E1, 0x6520, 0xF6E1, 0x6521, 0xF6E0, - 0x6522, 0xF6E3, 0x6523, 0xC5CB, 0x6524, 0xC575, 0x6525, 0xF7DD, - 0x6526, 0xF6E2, 0x6529, 0xF7DC, 0x652A, 0xC5CD, 0x652B, 0xC5CC, - 0x652C, 0xC5F3, 0x652D, 0xF8A9, 0x652E, 0xF8EF, 0x652F, 0xA4E4, - 0x6532, 0xD972, 0x6533, 0xE9AF, 0x6536, 0xA6AC, 0x6537, 0xCAF7, - 0x6538, 0xA7F1, 0x6539, 0xA7EF, 0x653B, 0xA7F0, 0x653D, 0xCCC1, - 0x653E, 0xA9F1, 0x653F, 0xAC46, 0x6541, 0xCEE7, 0x6543, 0xCEE8, - 0x6545, 0xAC47, 0x6546, 0xD1CE, 0x6548, 0xAEC4, 0x6549, 0xAEC5, - 0x654A, 0xD1CD, 0x654F, 0xB1D3, 0x6551, 0xB1CF, 0x6553, 0xD5A7, - 0x6554, 0xB1D6, 0x6555, 0xB1D5, 0x6556, 0xB1CE, 0x6557, 0xB1D1, - 0x6558, 0xB1D4, 0x6559, 0xB1D0, 0x655C, 0xD976, 0x655D, 0xB1CD, - 0x655E, 0xB4AF, 0x6562, 0xB4B1, 0x6563, 0xB4B2, 0x6564, 0xD975, - 0x6565, 0xD978, 0x6566, 0xB4B0, 0x6567, 0xD973, 0x6568, 0xD977, - 0x656A, 0xD974, 0x656C, 0xB771, 0x656F, 0xDDBC, 0x6572, 0xBA56, - 0x6573, 0xE1F4, 0x6574, 0xBEE3, 0x6575, 0xBCC4, 0x6576, 0xE5BD, - 0x6577, 0xBCC5, 0x6578, 0xBCC6, 0x6579, 0xE5BF, 0x657A, 0xE5BE, - 0x657B, 0xE5C0, 0x657C, 0xE9B1, 0x657F, 0xE9B0, 0x6580, 0xECEF, - 0x6581, 0xECEE, 0x6582, 0xC0C4, 0x6583, 0xC0C5, 0x6584, 0xF248, - 0x6587, 0xA4E5, 0x658C, 0xD979, 0x6590, 0xB4B4, 0x6591, 0xB4B3, - 0x6592, 0xDDBD, 0x6594, 0xEFD8, 0x6595, 0xC4E3, 0x6596, 0xF7DE, - 0x6597, 0xA4E6, 0x6599, 0xAEC6, 0x659B, 0xB1D8, 0x659C, 0xB1D7, - 0x659D, 0xD97A, 0x659E, 0xD97B, 0x659F, 0xB772, 0x65A0, 0xE1F5, - 0x65A1, 0xBA57, 0x65A2, 0xE9B2, 0x65A4, 0xA4E7, 0x65A5, 0xA5B8, - 0x65A7, 0xA9F2, 0x65A8, 0xCCC2, 0x65AA, 0xCEE9, 0x65AB, 0xAC48, - 0x65AC, 0xB1D9, 0x65AE, 0xD97C, 0x65AF, 0xB4B5, 0x65B0, 0xB773, - 0x65B2, 0xE5C1, 0x65B3, 0xE5C2, 0x65B6, 0xECF0, 0x65B7, 0xC25F, - 0x65B8, 0xF8F0, 0x65B9, 0xA4E8, 0x65BB, 0xCCC3, 0x65BC, 0xA9F3, - 0x65BD, 0xAC49, 0x65BF, 0xCEEA, 0x65C1, 0xAEC7, 0x65C2, 0xD1D2, - 0x65C3, 0xD1D0, 0x65C4, 0xD1D1, 0x65C5, 0xAEC8, 0x65C6, 0xD1CF, - 0x65CB, 0xB1DB, 0x65CC, 0xB1DC, 0x65CD, 0xD5A8, 0x65CE, 0xB1DD, - 0x65CF, 0xB1DA, 0x65D0, 0xD97D, 0x65D2, 0xD97E, 0x65D3, 0xDDBE, - 0x65D6, 0xBA59, 0x65D7, 0xBA58, 0x65DA, 0xECF1, 0x65DB, 0xEFD9, - 0x65DD, 0xF24A, 0x65DE, 0xF249, 0x65DF, 0xF44F, 0x65E1, 0xC95E, - 0x65E2, 0xAC4A, 0x65E5, 0xA4E9, 0x65E6, 0xA5B9, 0x65E8, 0xA6AE, - 0x65E9, 0xA6AD, 0x65EC, 0xA6AF, 0x65ED, 0xA6B0, 0x65EE, 0xC9EE, - 0x65EF, 0xC9ED, 0x65F0, 0xCAF8, 0x65F1, 0xA7F2, 0x65F2, 0xCAFB, - 0x65F3, 0xCAFA, 0x65F4, 0xCAF9, 0x65F5, 0xCAFC, 0x65FA, 0xA9F4, - 0x65FB, 0xCCC9, 0x65FC, 0xCCC5, 0x65FD, 0xCCCE, 0x6600, 0xA9FB, - 0x6602, 0xA9F9, 0x6603, 0xCCCA, 0x6604, 0xCCC6, 0x6605, 0xCCCD, - 0x6606, 0xA9F8, 0x6607, 0xAA40, 0x6608, 0xCCC8, 0x6609, 0xCCC4, - 0x660A, 0xA9FE, 0x660B, 0xCCCB, 0x660C, 0xA9F7, 0x660D, 0xCCCC, - 0x660E, 0xA9FA, 0x660F, 0xA9FC, 0x6610, 0xCCD0, 0x6611, 0xCCCF, - 0x6612, 0xCCC7, 0x6613, 0xA9F6, 0x6614, 0xA9F5, 0x6615, 0xA9FD, - 0x661C, 0xCEEF, 0x661D, 0xCEF5, 0x661F, 0xAC50, 0x6620, 0xAC4D, - 0x6621, 0xCEEC, 0x6622, 0xCEF1, 0x6624, 0xAC53, 0x6625, 0xAC4B, - 0x6626, 0xCEF0, 0x6627, 0xAC4E, 0x6628, 0xAC51, 0x662B, 0xCEF3, - 0x662D, 0xAC4C, 0x662E, 0xCEF8, 0x662F, 0xAC4F, 0x6631, 0xAC52, - 0x6632, 0xCEED, 0x6633, 0xCEF2, 0x6634, 0xCEF6, 0x6635, 0xCEEE, - 0x6636, 0xCEEB, 0x6639, 0xCEF7, 0x663A, 0xCEF4, 0x6641, 0xAED0, - 0x6642, 0xAEC9, 0x6643, 0xAECC, 0x6645, 0xAECF, 0x6647, 0xD1D5, - 0x6649, 0xAECA, 0x664A, 0xD1D3, 0x664C, 0xAECE, 0x664F, 0xAECB, - 0x6651, 0xD1D6, 0x6652, 0xAECD, 0x6659, 0xD5AC, 0x665A, 0xB1DF, - 0x665B, 0xD5AB, 0x665C, 0xD5AD, 0x665D, 0xB1DE, 0x665E, 0xB1E3, - 0x665F, 0xD1D4, 0x6661, 0xD5AA, 0x6662, 0xD5AE, 0x6664, 0xB1E0, - 0x6665, 0xD5A9, 0x6666, 0xB1E2, 0x6668, 0xB1E1, 0x666A, 0xD9A7, - 0x666C, 0xD9A2, 0x666E, 0xB4B6, 0x666F, 0xB4BA, 0x6670, 0xB4B7, - 0x6671, 0xD9A5, 0x6672, 0xD9A8, 0x6674, 0xB4B8, 0x6676, 0xB4B9, - 0x6677, 0xB4BE, 0x6678, 0xDDC7, 0x6679, 0xD9A6, 0x667A, 0xB4BC, - 0x667B, 0xD9A3, 0x667C, 0xD9A1, 0x667E, 0xB4BD, 0x6680, 0xD9A4, - 0x6684, 0xB779, 0x6686, 0xDDBF, 0x6687, 0xB776, 0x6688, 0xB777, - 0x6689, 0xB775, 0x668A, 0xDDC4, 0x668B, 0xDDC3, 0x668C, 0xDDC0, - 0x668D, 0xB77B, 0x6690, 0xDDC2, 0x6691, 0xB4BB, 0x6694, 0xDDC6, - 0x6695, 0xDDC1, 0x6696, 0xB778, 0x6697, 0xB774, 0x6698, 0xB77A, - 0x6699, 0xDDC5, 0x669D, 0xBA5C, 0x669F, 0xE1F8, 0x66A0, 0xE1F7, - 0x66A1, 0xE1F6, 0x66A2, 0xBA5A, 0x66A8, 0xBA5B, 0x66A9, 0xE5C5, - 0x66AA, 0xE5C8, 0x66AB, 0xBCC8, 0x66AE, 0xBCC7, 0x66AF, 0xE5C9, - 0x66B0, 0xE5C4, 0x66B1, 0xBCCA, 0x66B2, 0xE5C6, 0x66B4, 0xBCC9, - 0x66B5, 0xE5C3, 0x66B7, 0xE5C7, 0x66B8, 0xBEE9, 0x66B9, 0xBEE6, - 0x66BA, 0xE9BB, 0x66BB, 0xE9BA, 0x66BD, 0xE9B9, 0x66BE, 0xE9B4, - 0x66C0, 0xE9B5, 0x66C4, 0xBEE7, 0x66C6, 0xBEE4, 0x66C7, 0xBEE8, - 0x66C8, 0xE9B3, 0x66C9, 0xBEE5, 0x66CA, 0xE9B6, 0x66CB, 0xE9B7, - 0x66CC, 0xE9BC, 0x66CF, 0xE9B8, 0x66D2, 0xECF2, 0x66D6, 0xC0C7, - 0x66D8, 0xEFDC, 0x66D9, 0xC0C6, 0x66DA, 0xEFDA, 0x66DB, 0xEFDB, - 0x66DC, 0xC260, 0x66DD, 0xC36E, 0x66DE, 0xF24B, 0x66E0, 0xC36D, - 0x66E3, 0xF451, 0x66E4, 0xF452, 0x66E6, 0xC466, 0x66E8, 0xF450, - 0x66E9, 0xC4E4, 0x66EB, 0xF7DF, 0x66EC, 0xC5CE, 0x66ED, 0xF8AA, - 0x66EE, 0xF8AB, 0x66F0, 0xA4EA, 0x66F2, 0xA6B1, 0x66F3, 0xA6B2, - 0x66F4, 0xA7F3, 0x66F6, 0xCCD1, 0x66F7, 0xAC54, 0x66F8, 0xAED1, - 0x66F9, 0xB1E4, 0x66FC, 0xB0D2, 0x66FE, 0xB4BF, 0x66FF, 0xB4C0, - 0x6700, 0xB3CC, 0x6701, 0xD9A9, 0x6703, 0xB77C, 0x6704, 0xE1FA, - 0x6705, 0xE1F9, 0x6708, 0xA4EB, 0x6709, 0xA6B3, 0x670A, 0xCCD2, - 0x670B, 0xAA42, 0x670D, 0xAA41, 0x670F, 0xCEF9, 0x6710, 0xCEFA, - 0x6712, 0xD1D7, 0x6713, 0xD1D8, 0x6714, 0xAED2, 0x6715, 0xAED3, - 0x6717, 0xAED4, 0x6718, 0xD5AF, 0x671B, 0xB1E6, 0x671D, 0xB4C2, - 0x671F, 0xB4C1, 0x6720, 0xDDC8, 0x6721, 0xDF7A, 0x6722, 0xE1FB, - 0x6723, 0xE9BD, 0x6726, 0xC261, 0x6727, 0xC467, 0x6728, 0xA4EC, - 0x672A, 0xA5BC, 0x672B, 0xA5BD, 0x672C, 0xA5BB, 0x672D, 0xA5BE, - 0x672E, 0xA5BA, 0x6731, 0xA6B6, 0x6733, 0xC9F6, 0x6734, 0xA6B5, - 0x6735, 0xA6B7, 0x6738, 0xC9F1, 0x6739, 0xC9F0, 0x673A, 0xC9F3, - 0x673B, 0xC9F2, 0x673C, 0xC9F5, 0x673D, 0xA6B4, 0x673E, 0xC9EF, - 0x673F, 0xC9F4, 0x6745, 0xCAFD, 0x6746, 0xA7FD, 0x6747, 0xCAFE, - 0x6748, 0xCB43, 0x6749, 0xA7FC, 0x674B, 0xCB47, 0x674C, 0xCB42, - 0x674D, 0xCB45, 0x674E, 0xA7F5, 0x674F, 0xA7F6, 0x6750, 0xA7F7, - 0x6751, 0xA7F8, 0x6753, 0xA840, 0x6755, 0xCB41, 0x6756, 0xA7FA, - 0x6757, 0xA841, 0x6759, 0xCB40, 0x675A, 0xCB46, 0x675C, 0xA7F9, - 0x675D, 0xCB44, 0x675E, 0xA7FB, 0x675F, 0xA7F4, 0x6760, 0xA7FE, - 0x676A, 0xAA57, 0x676C, 0xCCD4, 0x676D, 0xAA43, 0x676F, 0xAA4D, - 0x6770, 0xAA4E, 0x6771, 0xAA46, 0x6772, 0xAA58, 0x6773, 0xAA48, - 0x6774, 0xCCDC, 0x6775, 0xAA53, 0x6776, 0xCCD7, 0x6777, 0xAA49, - 0x6778, 0xCCE6, 0x6779, 0xCCE7, 0x677A, 0xCCDF, 0x677B, 0xCCD8, - 0x677C, 0xAA56, 0x677D, 0xCCE4, 0x677E, 0xAA51, 0x677F, 0xAA4F, - 0x6781, 0xCCE5, 0x6783, 0xCCE3, 0x6784, 0xCCDB, 0x6785, 0xCCD3, - 0x6786, 0xCCDA, 0x6787, 0xAA4A, 0x6789, 0xAA50, 0x678B, 0xAA44, - 0x678C, 0xCCDE, 0x678D, 0xCCDD, 0x678E, 0xCCD5, 0x6790, 0xAA52, - 0x6791, 0xCCE1, 0x6792, 0xCCD6, 0x6793, 0xAA55, 0x6794, 0xCCE8, - 0x6795, 0xAA45, 0x6797, 0xAA4C, 0x6798, 0xCCD9, 0x6799, 0xCCE2, - 0x679A, 0xAA54, 0x679C, 0xAA47, 0x679D, 0xAA4B, 0x679F, 0xCCE0, - 0x67AE, 0xCF5B, 0x67AF, 0xAC5C, 0x67B0, 0xAC69, 0x67B2, 0xCF56, - 0x67B3, 0xCF4C, 0x67B4, 0xAC62, 0x67B5, 0xCF4A, 0x67B6, 0xAC5B, - 0x67B7, 0xCF45, 0x67B8, 0xAC65, 0x67B9, 0xCF52, 0x67BA, 0xCEFE, - 0x67BB, 0xCF41, 0x67C0, 0xCF44, 0x67C1, 0xCEFB, 0x67C2, 0xCF51, - 0x67C3, 0xCF61, 0x67C4, 0xAC60, 0x67C5, 0xCF46, 0x67C6, 0xCF58, - 0x67C8, 0xCEFD, 0x67C9, 0xCF5F, 0x67CA, 0xCF60, 0x67CB, 0xCF63, - 0x67CC, 0xCF5A, 0x67CD, 0xCF4B, 0x67CE, 0xCF53, 0x67CF, 0xAC66, - 0x67D0, 0xAC59, 0x67D1, 0xAC61, 0x67D2, 0xAC6D, 0x67D3, 0xAC56, - 0x67D4, 0xAC58, 0x67D8, 0xCF43, 0x67D9, 0xAC6A, 0x67DA, 0xAC63, - 0x67DB, 0xCF5D, 0x67DC, 0xCF40, 0x67DD, 0xAC6C, 0x67DE, 0xAC67, - 0x67DF, 0xCF49, 0x67E2, 0xAC6B, 0x67E3, 0xCF50, 0x67E4, 0xCF48, - 0x67E5, 0xAC64, 0x67E6, 0xCF5C, 0x67E7, 0xCF54, 0x67E9, 0xAC5E, - 0x67EA, 0xCF62, 0x67EB, 0xCF47, 0x67EC, 0xAC5A, 0x67ED, 0xCF59, - 0x67EE, 0xCF4F, 0x67EF, 0xAC5F, 0x67F0, 0xCF55, 0x67F1, 0xAC57, - 0x67F2, 0xCEFC, 0x67F3, 0xAC68, 0x67F4, 0xAEE3, 0x67F5, 0xAC5D, - 0x67F6, 0xCF4E, 0x67F7, 0xCF4D, 0x67F8, 0xCF42, 0x67FA, 0xCF5E, - 0x67FC, 0xCF57, 0x67FF, 0xAC55, 0x6812, 0xD1EC, 0x6813, 0xAEEA, - 0x6814, 0xD1ED, 0x6816, 0xD1E1, 0x6817, 0xAEDF, 0x6818, 0xAEEB, - 0x681A, 0xD1DA, 0x681C, 0xD1E3, 0x681D, 0xD1EB, 0x681F, 0xD1D9, - 0x6820, 0xD1F4, 0x6821, 0xAED5, 0x6825, 0xD1F3, 0x6826, 0xD1EE, - 0x6828, 0xD1EF, 0x6829, 0xAEDD, 0x682A, 0xAEE8, 0x682B, 0xD1E5, - 0x682D, 0xD1E6, 0x682E, 0xD1F0, 0x682F, 0xD1E7, 0x6831, 0xD1E2, - 0x6832, 0xD1DC, 0x6833, 0xD1DD, 0x6834, 0xD1EA, 0x6835, 0xD1E4, - 0x6838, 0xAED6, 0x6839, 0xAEDA, 0x683A, 0xD1F2, 0x683B, 0xD1DE, - 0x683C, 0xAEE6, 0x683D, 0xAEE2, 0x6840, 0xAEE5, 0x6841, 0xAEEC, - 0x6842, 0xAEDB, 0x6843, 0xAEE7, 0x6844, 0xD1E9, 0x6845, 0xAEE9, - 0x6846, 0xAED8, 0x6848, 0xAED7, 0x6849, 0xD1DB, 0x684B, 0xD1DF, - 0x684C, 0xAEE0, 0x684D, 0xD1F1, 0x684E, 0xD1E8, 0x684F, 0xD1E0, - 0x6850, 0xAEE4, 0x6851, 0xAEE1, 0x6853, 0xAED9, 0x6854, 0xAEDC, - 0x686B, 0xD5C4, 0x686D, 0xD5B4, 0x686E, 0xD5B5, 0x686F, 0xD5B9, - 0x6871, 0xD5C8, 0x6872, 0xD5C5, 0x6874, 0xD5BE, 0x6875, 0xD5BD, - 0x6876, 0xB1ED, 0x6877, 0xD5C1, 0x6878, 0xD5D0, 0x6879, 0xD5B0, - 0x687B, 0xD5D1, 0x687C, 0xD5C3, 0x687D, 0xD5D5, 0x687E, 0xD5C9, - 0x687F, 0xB1EC, 0x6880, 0xD5C7, 0x6881, 0xB1E7, 0x6882, 0xB1FC, - 0x6883, 0xB1F2, 0x6885, 0xB1F6, 0x6886, 0xB1F5, 0x6887, 0xD5B1, - 0x6889, 0xD5CE, 0x688A, 0xD5D4, 0x688B, 0xD5CC, 0x688C, 0xD5D3, - 0x688F, 0xD5C0, 0x6890, 0xD5B2, 0x6891, 0xD5D2, 0x6892, 0xD5C2, - 0x6893, 0xB1EA, 0x6894, 0xB1F7, 0x6896, 0xD5CB, 0x6897, 0xB1F0, - 0x689B, 0xD5CA, 0x689C, 0xD5B3, 0x689D, 0xB1F8, 0x689F, 0xB1FA, - 0x68A0, 0xD5CD, 0x68A1, 0xB1FB, 0x68A2, 0xB1E9, 0x68A3, 0xD5BA, - 0x68A4, 0xD5CF, 0x68A7, 0xB1EF, 0x68A8, 0xB1F9, 0x68A9, 0xD5BC, - 0x68AA, 0xD5C6, 0x68AB, 0xD5B7, 0x68AC, 0xD5BB, 0x68AD, 0xB1F4, - 0x68AE, 0xD5B6, 0x68AF, 0xB1E8, 0x68B0, 0xB1F1, 0x68B1, 0xB1EE, - 0x68B2, 0xD5BF, 0x68B3, 0xAEDE, 0x68B4, 0xD9C0, 0x68B5, 0xB1EB, - 0x68C4, 0xB1F3, 0x68C6, 0xD9C3, 0x68C7, 0xD9D9, 0x68C8, 0xD9CE, - 0x68C9, 0xB4D6, 0x68CB, 0xB4D1, 0x68CC, 0xD9BD, 0x68CD, 0xB4D2, - 0x68CE, 0xD9CD, 0x68D0, 0xD9C6, 0x68D1, 0xD9D3, 0x68D2, 0xB4CE, - 0x68D3, 0xD9AB, 0x68D4, 0xD9D5, 0x68D5, 0xB4C4, 0x68D6, 0xD9B3, - 0x68D7, 0xB4C7, 0x68D8, 0xB4C6, 0x68DA, 0xB4D7, 0x68DC, 0xD9AD, - 0x68DD, 0xD9CF, 0x68DE, 0xD9D0, 0x68DF, 0xB4C9, 0x68E0, 0xB4C5, - 0x68E1, 0xD9BB, 0x68E3, 0xB4D0, 0x68E4, 0xD9B6, 0x68E6, 0xD9D1, - 0x68E7, 0xB4CC, 0x68E8, 0xD9C9, 0x68E9, 0xD9D6, 0x68EA, 0xD9B0, - 0x68EB, 0xD9B5, 0x68EC, 0xD9AF, 0x68EE, 0xB4CB, 0x68EF, 0xD9C2, - 0x68F0, 0xDDDE, 0x68F1, 0xD9B1, 0x68F2, 0xB4CF, 0x68F3, 0xD9BA, - 0x68F4, 0xD9D2, 0x68F5, 0xB4CA, 0x68F6, 0xD9B7, 0x68F7, 0xD9B4, - 0x68F8, 0xD9C5, 0x68F9, 0xB4CD, 0x68FA, 0xB4C3, 0x68FB, 0xB4D9, - 0x68FC, 0xD9C8, 0x68FD, 0xD9C7, 0x6904, 0xD9AC, 0x6905, 0xB4C8, - 0x6906, 0xD9D4, 0x6907, 0xD9BC, 0x6908, 0xD9BE, 0x690A, 0xD9CB, - 0x690B, 0xD9CA, 0x690C, 0xD9AA, 0x690D, 0xB4D3, 0x690E, 0xB4D5, - 0x690F, 0xD9B2, 0x6910, 0xD9B9, 0x6911, 0xD9C1, 0x6912, 0xB4D4, - 0x6913, 0xD9B8, 0x6914, 0xD9C4, 0x6915, 0xD9D7, 0x6917, 0xD9CC, - 0x6925, 0xD9D8, 0x692A, 0xD9AE, 0x692F, 0xDDF2, 0x6930, 0xB7A6, - 0x6932, 0xDDF0, 0x6933, 0xDDDB, 0x6934, 0xDDE0, 0x6935, 0xDDD9, - 0x6937, 0xDDEC, 0x6938, 0xDDCB, 0x6939, 0xDDD2, 0x693B, 0xDDEA, - 0x693C, 0xDDF4, 0x693D, 0xDDDC, 0x693F, 0xDDCF, 0x6940, 0xDDE2, - 0x6941, 0xDDE7, 0x6942, 0xDDD3, 0x6944, 0xDDE4, 0x6945, 0xDDD0, - 0x6948, 0xDDD7, 0x6949, 0xDDD8, 0x694A, 0xB7A8, 0x694B, 0xDDEB, - 0x694C, 0xDDE9, 0x694E, 0xDDCC, 0x694F, 0xDDEE, 0x6951, 0xDDEF, - 0x6952, 0xDDF1, 0x6953, 0xB7AC, 0x6954, 0xB7A4, 0x6956, 0xD5B8, - 0x6957, 0xDDD4, 0x6958, 0xDDE6, 0x6959, 0xDDD5, 0x695A, 0xB7A1, - 0x695B, 0xB7B1, 0x695C, 0xDDED, 0x695D, 0xB7AF, 0x695E, 0xB7AB, - 0x695F, 0xDDCA, 0x6960, 0xB7A3, 0x6962, 0xDDCD, 0x6963, 0xB7B0, - 0x6965, 0xDDDD, 0x6966, 0xDDC9, 0x6968, 0xB7A9, 0x6969, 0xDDE1, - 0x696A, 0xDDD1, 0x696B, 0xB7AA, 0x696C, 0xDDDA, 0x696D, 0xB77E, - 0x696E, 0xB4D8, 0x696F, 0xDDE3, 0x6970, 0xD9BF, 0x6971, 0xDDCE, - 0x6974, 0xDDE8, 0x6975, 0xB7A5, 0x6976, 0xDDE5, 0x6977, 0xB7A2, - 0x6978, 0xDDDF, 0x6979, 0xB7AD, 0x697A, 0xDDD6, 0x697B, 0xDDF3, - 0x6982, 0xB7A7, 0x6983, 0xDEC6, 0x6986, 0xB7AE, 0x698D, 0xE24A, - 0x698E, 0xE248, 0x6990, 0xE25E, 0x6991, 0xE246, 0x6993, 0xE258, - 0x6994, 0xB77D, 0x6995, 0xBA5F, 0x6996, 0xE242, 0x6997, 0xE25D, - 0x6999, 0xE247, 0x699A, 0xE255, 0x699B, 0xBA64, 0x699C, 0xBA5D, - 0x699E, 0xE25B, 0x69A0, 0xE240, 0x69A1, 0xE25A, 0x69A3, 0xBA6F, - 0x69A4, 0xE251, 0x69A5, 0xE261, 0x69A6, 0xBA6D, 0x69A7, 0xE249, - 0x69A8, 0xBA5E, 0x69A9, 0xE24B, 0x69AA, 0xE259, 0x69AB, 0xBA67, - 0x69AC, 0xE244, 0x69AD, 0xBA6B, 0x69AE, 0xBA61, 0x69AF, 0xE24D, - 0x69B0, 0xE243, 0x69B1, 0xE1FC, 0x69B3, 0xE257, 0x69B4, 0xBA68, - 0x69B5, 0xE260, 0x69B6, 0xE1FD, 0x69B7, 0xBA65, 0x69B9, 0xE253, - 0x69BB, 0xBA66, 0x69BC, 0xE245, 0x69BD, 0xE250, 0x69BE, 0xE24C, - 0x69BF, 0xE24E, 0x69C1, 0xBA60, 0x69C2, 0xE25F, 0x69C3, 0xBA6E, - 0x69C4, 0xE24F, 0x69C6, 0xE262, 0x69C9, 0xE1FE, 0x69CA, 0xE254, - 0x69CB, 0xBA63, 0x69CC, 0xBA6C, 0x69CD, 0xBA6A, 0x69CE, 0xE241, - 0x69CF, 0xE256, 0x69D0, 0xBA69, 0x69D3, 0xBA62, 0x69D4, 0xE252, - 0x69D9, 0xE25C, 0x69E2, 0xE5D5, 0x69E4, 0xE5D1, 0x69E5, 0xE5CD, - 0x69E6, 0xE5E1, 0x69E7, 0xE5DE, 0x69E8, 0xBCCD, 0x69EB, 0xE5E5, - 0x69EC, 0xE5D4, 0x69ED, 0xBCD8, 0x69EE, 0xE5DB, 0x69F1, 0xE5D0, - 0x69F2, 0xE5DA, 0x69F3, 0xBCD5, 0x69F4, 0xE5EE, 0x69F6, 0xE5EB, - 0x69F7, 0xE5DD, 0x69F8, 0xE5CE, 0x69FB, 0xE5E2, 0x69FC, 0xE5E4, - 0x69FD, 0xBCD1, 0x69FE, 0xE5D8, 0x69FF, 0xE5D3, 0x6A00, 0xE5CA, - 0x6A01, 0xBCCE, 0x6A02, 0xBCD6, 0x6A04, 0xE5E7, 0x6A05, 0xBCD7, - 0x6A06, 0xE5CB, 0x6A07, 0xE5ED, 0x6A08, 0xE5E0, 0x6A09, 0xE5E6, - 0x6A0A, 0xBCD4, 0x6A0D, 0xE5E3, 0x6A0F, 0xE5EA, 0x6A11, 0xBCD9, - 0x6A13, 0xBCD3, 0x6A14, 0xE5DC, 0x6A15, 0xE5CF, 0x6A16, 0xE5EF, - 0x6A17, 0xE5CC, 0x6A18, 0xE5E8, 0x6A19, 0xBCD0, 0x6A1B, 0xE5D6, - 0x6A1D, 0xE5D7, 0x6A1E, 0xBCCF, 0x6A1F, 0xBCCC, 0x6A20, 0xE5D2, - 0x6A21, 0xBCD2, 0x6A23, 0xBCCB, 0x6A25, 0xE5E9, 0x6A26, 0xE5EC, - 0x6A27, 0xE5D9, 0x6A28, 0xE9CA, 0x6A32, 0xE9C2, 0x6A34, 0xE9BE, - 0x6A35, 0xBEF6, 0x6A38, 0xBEEB, 0x6A39, 0xBEF0, 0x6A3A, 0xBEEC, - 0x6A3B, 0xE9CC, 0x6A3C, 0xE9D7, 0x6A3D, 0xBEEA, 0x6A3E, 0xE9C4, - 0x6A3F, 0xE9CD, 0x6A40, 0xE5DF, 0x6A41, 0xE9CE, 0x6A44, 0xBEF1, - 0x6A46, 0xE9DD, 0x6A47, 0xBEF5, 0x6A48, 0xBEF8, 0x6A49, 0xE9C0, - 0x6A4B, 0xBEF4, 0x6A4D, 0xE9DB, 0x6A4E, 0xE9DC, 0x6A4F, 0xE9D2, - 0x6A50, 0xE9D1, 0x6A51, 0xE9C9, 0x6A54, 0xE9D3, 0x6A55, 0xE9DA, - 0x6A56, 0xE9D9, 0x6A58, 0xBEEF, 0x6A59, 0xBEED, 0x6A5A, 0xE9CB, - 0x6A5B, 0xE9C8, 0x6A5D, 0xE9C5, 0x6A5E, 0xE9D8, 0x6A5F, 0xBEF7, - 0x6A60, 0xE9D6, 0x6A61, 0xBEF3, 0x6A62, 0xBEF2, 0x6A64, 0xE9D0, - 0x6A66, 0xE9BF, 0x6A67, 0xE9C1, 0x6A68, 0xE9C3, 0x6A69, 0xE9D5, - 0x6A6A, 0xE9CF, 0x6A6B, 0xBEEE, 0x6A6D, 0xE9C6, 0x6A6F, 0xE9D4, - 0x6A76, 0xE9C7, 0x6A7E, 0xC0CF, 0x6A7F, 0xED45, 0x6A80, 0xC0C8, - 0x6A81, 0xECF5, 0x6A83, 0xED41, 0x6A84, 0xC0CA, 0x6A85, 0xED48, - 0x6A87, 0xECFC, 0x6A89, 0xECF7, 0x6A8C, 0xED49, 0x6A8D, 0xECF3, - 0x6A8E, 0xECFE, 0x6A90, 0xC0D1, 0x6A91, 0xED44, 0x6A92, 0xED4A, - 0x6A93, 0xECFD, 0x6A94, 0xC0C9, 0x6A95, 0xED40, 0x6A96, 0xECF4, - 0x6A97, 0xC0D0, 0x6A9A, 0xED47, 0x6A9B, 0xECF9, 0x6A9C, 0xC0CC, - 0x6A9E, 0xECFB, 0x6A9F, 0xECF8, 0x6AA0, 0xC0D2, 0x6AA1, 0xECFA, - 0x6AA2, 0xC0CB, 0x6AA3, 0xC0CE, 0x6AA4, 0xED43, 0x6AA5, 0xECF6, - 0x6AA6, 0xED46, 0x6AA8, 0xED42, 0x6AAC, 0xC263, 0x6AAD, 0xEFE7, - 0x6AAE, 0xC268, 0x6AAF, 0xC269, 0x6AB3, 0xC262, 0x6AB4, 0xEFE6, - 0x6AB6, 0xEFE3, 0x6AB7, 0xEFE4, 0x6AB8, 0xC266, 0x6AB9, 0xEFDE, - 0x6ABA, 0xEFE2, 0x6ABB, 0xC265, 0x6ABD, 0xEFDF, 0x6AC2, 0xC267, - 0x6AC3, 0xC264, 0x6AC5, 0xEFDD, 0x6AC6, 0xEFE1, 0x6AC7, 0xEFE5, - 0x6ACB, 0xF251, 0x6ACC, 0xF24E, 0x6ACD, 0xF257, 0x6ACF, 0xF256, - 0x6AD0, 0xF254, 0x6AD1, 0xF24F, 0x6AD3, 0xC372, 0x6AD9, 0xF250, - 0x6ADA, 0xC371, 0x6ADB, 0xC0CD, 0x6ADC, 0xF253, 0x6ADD, 0xC370, - 0x6ADE, 0xF258, 0x6ADF, 0xF252, 0x6AE0, 0xF24D, 0x6AE1, 0xEFE0, - 0x6AE5, 0xC36F, 0x6AE7, 0xF24C, 0x6AE8, 0xF456, 0x6AEA, 0xF455, - 0x6AEB, 0xF255, 0x6AEC, 0xC468, 0x6AEE, 0xF459, 0x6AEF, 0xF45A, - 0x6AF0, 0xF454, 0x6AF1, 0xF458, 0x6AF3, 0xF453, 0x6AF8, 0xF5D1, - 0x6AF9, 0xF457, 0x6AFA, 0xC4E7, 0x6AFB, 0xC4E5, 0x6AFC, 0xF5CF, - 0x6B00, 0xF5D2, 0x6B02, 0xF5CE, 0x6B03, 0xF5D0, 0x6B04, 0xC4E6, - 0x6B08, 0xF6E5, 0x6B09, 0xF6E6, 0x6B0A, 0xC576, 0x6B0B, 0xF6E4, - 0x6B0F, 0xF7E2, 0x6B10, 0xC5CF, 0x6B11, 0xF7E0, 0x6B12, 0xF7E1, - 0x6B13, 0xF8AC, 0x6B16, 0xC656, 0x6B17, 0xF8F3, 0x6B18, 0xF8F1, - 0x6B19, 0xF8F2, 0x6B1A, 0xF8F4, 0x6B1E, 0xF9BB, 0x6B20, 0xA4ED, - 0x6B21, 0xA6B8, 0x6B23, 0xAA59, 0x6B25, 0xCCE9, 0x6B28, 0xCF64, - 0x6B2C, 0xD1F5, 0x6B2D, 0xD1F7, 0x6B2F, 0xD1F6, 0x6B31, 0xD1F8, - 0x6B32, 0xB1FD, 0x6B33, 0xD5D7, 0x6B34, 0xD1F9, 0x6B36, 0xD5D6, - 0x6B37, 0xD5D8, 0x6B38, 0xD5D9, 0x6B39, 0xD9DA, 0x6B3A, 0xB4DB, - 0x6B3B, 0xD9DB, 0x6B3C, 0xD9DD, 0x6B3D, 0xB4DC, 0x6B3E, 0xB4DA, - 0x6B3F, 0xD9DC, 0x6B41, 0xDDFA, 0x6B42, 0xDDF8, 0x6B43, 0xDDF7, - 0x6B45, 0xDDF6, 0x6B46, 0xDDF5, 0x6B47, 0xB7B2, 0x6B48, 0xDDF9, - 0x6B49, 0xBA70, 0x6B4A, 0xE263, 0x6B4B, 0xE265, 0x6B4C, 0xBA71, - 0x6B4D, 0xE264, 0x6B4E, 0xBCDB, 0x6B50, 0xBCDA, 0x6B51, 0xE5F0, - 0x6B54, 0xE9DF, 0x6B55, 0xE9DE, 0x6B56, 0xE9E0, 0x6B59, 0xBEF9, - 0x6B5B, 0xED4B, 0x6B5C, 0xC0D3, 0x6B5E, 0xEFE8, 0x6B5F, 0xC26A, - 0x6B60, 0xF259, 0x6B61, 0xC577, 0x6B62, 0xA4EE, 0x6B63, 0xA5BF, - 0x6B64, 0xA6B9, 0x6B65, 0xA842, 0x6B66, 0xAA5A, 0x6B67, 0xAA5B, - 0x6B6A, 0xAC6E, 0x6B6D, 0xD1FA, 0x6B72, 0xB7B3, 0x6B76, 0xE6D1, - 0x6B77, 0xBEFA, 0x6B78, 0xC26B, 0x6B79, 0xA4EF, 0x6B7B, 0xA6BA, - 0x6B7E, 0xCCEB, 0x6B7F, 0xAA5C, 0x6B80, 0xCCEA, 0x6B82, 0xCF65, - 0x6B83, 0xAC6F, 0x6B84, 0xCF66, 0x6B86, 0xAC70, 0x6B88, 0xD1FC, - 0x6B89, 0xAEEE, 0x6B8A, 0xAEED, 0x6B8C, 0xD5DE, 0x6B8D, 0xD5DC, - 0x6B8E, 0xD5DD, 0x6B8F, 0xD5DB, 0x6B91, 0xD5DA, 0x6B94, 0xD9DE, - 0x6B95, 0xD9E1, 0x6B96, 0xB4DE, 0x6B97, 0xD9DF, 0x6B98, 0xB4DD, - 0x6B99, 0xD9E0, 0x6B9B, 0xDDFB, 0x6B9E, 0xE266, 0x6B9F, 0xE267, - 0x6BA0, 0xE268, 0x6BA2, 0xE5F3, 0x6BA3, 0xE5F2, 0x6BA4, 0xBCDC, - 0x6BA5, 0xE5F1, 0x6BA6, 0xE5F4, 0x6BA7, 0xE9E1, 0x6BAA, 0xE9E2, - 0x6BAB, 0xE9E3, 0x6BAD, 0xED4C, 0x6BAE, 0xC0D4, 0x6BAF, 0xC26C, - 0x6BB0, 0xF25A, 0x6BB2, 0xC4E8, 0x6BB3, 0xC95F, 0x6BB5, 0xAC71, - 0x6BB6, 0xCF67, 0x6BB7, 0xAEEF, 0x6BBA, 0xB1FE, 0x6BBC, 0xB4DF, - 0x6BBD, 0xD9E2, 0x6BBF, 0xB7B5, 0x6BC0, 0xB7B4, 0x6BC3, 0xE269, - 0x6BC4, 0xE26A, 0x6BC5, 0xBCDD, 0x6BC6, 0xBCDE, 0x6BC7, 0xE9E5, - 0x6BC8, 0xE9E4, 0x6BC9, 0xEFE9, 0x6BCA, 0xF7E3, 0x6BCB, 0xA4F0, - 0x6BCC, 0xC960, 0x6BCD, 0xA5C0, 0x6BCF, 0xA843, 0x6BD0, 0xCB48, - 0x6BD2, 0xAC72, 0x6BD3, 0xB7B6, 0x6BD4, 0xA4F1, 0x6BD6, 0xCF68, - 0x6BD7, 0xAC73, 0x6BD8, 0xCF69, 0x6BDA, 0xC0D5, 0x6BDB, 0xA4F2, - 0x6BDE, 0xCCEC, 0x6BE0, 0xCF6A, 0x6BE2, 0xD242, 0x6BE3, 0xD241, - 0x6BE4, 0xD1FE, 0x6BE6, 0xD1FD, 0x6BE7, 0xD243, 0x6BE8, 0xD240, - 0x6BEB, 0xB240, 0x6BEC, 0xB241, 0x6BEF, 0xB4E0, 0x6BF0, 0xD9E3, - 0x6BF2, 0xD9E4, 0x6BF3, 0xD9E5, 0x6BF7, 0xDE41, 0x6BF8, 0xDE42, - 0x6BF9, 0xDE40, 0x6BFB, 0xDDFD, 0x6BFC, 0xDDFE, 0x6BFD, 0xB7B7, - 0x6BFE, 0xE26B, 0x6BFF, 0xE5F7, 0x6C00, 0xE5F6, 0x6C01, 0xE5F5, - 0x6C02, 0xE5F8, 0x6C03, 0xE9E7, 0x6C04, 0xE9E6, 0x6C05, 0xBEFB, - 0x6C06, 0xE9E8, 0x6C08, 0xC0D6, 0x6C09, 0xED4D, 0x6C0B, 0xEFEA, - 0x6C0C, 0xF25B, 0x6C0D, 0xF6E7, 0x6C0F, 0xA4F3, 0x6C10, 0xA5C2, - 0x6C11, 0xA5C1, 0x6C13, 0xAA5D, 0x6C14, 0xC961, 0x6C15, 0xC97E, - 0x6C16, 0xA6BB, 0x6C18, 0xC9F7, 0x6C19, 0xCB49, 0x6C1A, 0xCB4A, - 0x6C1B, 0xAA5E, 0x6C1D, 0xCCED, 0x6C1F, 0xAC74, 0x6C20, 0xCF6B, - 0x6C21, 0xCF6C, 0x6C23, 0xAEF0, 0x6C24, 0xAEF4, 0x6C25, 0xD244, - 0x6C26, 0xAEF3, 0x6C27, 0xAEF1, 0x6C28, 0xAEF2, 0x6C2A, 0xD5DF, - 0x6C2B, 0xB242, 0x6C2C, 0xB4E3, 0x6C2E, 0xB4E1, 0x6C2F, 0xB4E2, - 0x6C30, 0xD9E6, 0x6C33, 0xBA72, 0x6C34, 0xA4F4, 0x6C36, 0xC9A1, - 0x6C38, 0xA5C3, 0x6C3B, 0xC9A4, 0x6C3E, 0xA5C6, 0x6C3F, 0xC9A3, - 0x6C40, 0xA5C5, 0x6C41, 0xA5C4, 0x6C42, 0xA844, 0x6C43, 0xC9A2, - 0x6C46, 0xC9F8, 0x6C4A, 0xC9FC, 0x6C4B, 0xC9FE, 0x6C4C, 0xCA40, - 0x6C4D, 0xA6C5, 0x6C4E, 0xA6C6, 0x6C4F, 0xC9FB, 0x6C50, 0xA6C1, - 0x6C52, 0xC9F9, 0x6C54, 0xC9FD, 0x6C55, 0xA6C2, 0x6C57, 0xA6BD, - 0x6C59, 0xA6BE, 0x6C5B, 0xA6C4, 0x6C5C, 0xC9FA, 0x6C5D, 0xA6BC, - 0x6C5E, 0xA845, 0x6C5F, 0xA6BF, 0x6C60, 0xA6C0, 0x6C61, 0xA6C3, - 0x6C65, 0xCB5B, 0x6C66, 0xCB59, 0x6C67, 0xCB4C, 0x6C68, 0xA851, - 0x6C69, 0xCB53, 0x6C6A, 0xA84C, 0x6C6B, 0xCB4D, 0x6C6D, 0xCB55, - 0x6C6F, 0xCB52, 0x6C70, 0xA84F, 0x6C71, 0xCB51, 0x6C72, 0xA856, - 0x6C73, 0xCB5A, 0x6C74, 0xA858, 0x6C76, 0xA85A, 0x6C78, 0xCB4B, - 0x6C7A, 0xA84D, 0x6C7B, 0xCB5C, 0x6C7D, 0xA854, 0x6C7E, 0xA857, - 0x6C80, 0xCD45, 0x6C81, 0xA847, 0x6C82, 0xA85E, 0x6C83, 0xA855, - 0x6C84, 0xCB4E, 0x6C85, 0xA84A, 0x6C86, 0xA859, 0x6C87, 0xCB56, - 0x6C88, 0xA848, 0x6C89, 0xA849, 0x6C8A, 0xCD43, 0x6C8B, 0xCB4F, - 0x6C8C, 0xA850, 0x6C8D, 0xA85B, 0x6C8E, 0xCB5D, 0x6C8F, 0xCB50, - 0x6C90, 0xA84E, 0x6C92, 0xA853, 0x6C93, 0xCCEE, 0x6C94, 0xA85C, - 0x6C95, 0xCB57, 0x6C96, 0xA852, 0x6C98, 0xA85D, 0x6C99, 0xA846, - 0x6C9A, 0xCB54, 0x6C9B, 0xA84B, 0x6C9C, 0xCB58, 0x6C9D, 0xCD44, - 0x6CAB, 0xAA6A, 0x6CAC, 0xAA7A, 0x6CAD, 0xCCF5, 0x6CAE, 0xAA71, - 0x6CB0, 0xCD4B, 0x6CB1, 0xAA62, 0x6CB3, 0xAA65, 0x6CB4, 0xCD42, - 0x6CB6, 0xCCF3, 0x6CB7, 0xCCF7, 0x6CB8, 0xAA6D, 0x6CB9, 0xAA6F, - 0x6CBA, 0xCCFA, 0x6CBB, 0xAA76, 0x6CBC, 0xAA68, 0x6CBD, 0xAA66, - 0x6CBE, 0xAA67, 0x6CBF, 0xAA75, 0x6CC0, 0xCD47, 0x6CC1, 0xAA70, - 0x6CC2, 0xCCF9, 0x6CC3, 0xCCFB, 0x6CC4, 0xAA6E, 0x6CC5, 0xAA73, - 0x6CC6, 0xCCFC, 0x6CC7, 0xCD4A, 0x6CC9, 0xAC75, 0x6CCA, 0xAA79, - 0x6CCC, 0xAA63, 0x6CCD, 0xCD49, 0x6CCF, 0xCD4D, 0x6CD0, 0xCCF8, - 0x6CD1, 0xCD4F, 0x6CD2, 0xCD40, 0x6CD3, 0xAA6C, 0x6CD4, 0xCCF4, - 0x6CD5, 0xAA6B, 0x6CD6, 0xAA7D, 0x6CD7, 0xAA72, 0x6CD9, 0xCCF2, - 0x6CDA, 0xCF75, 0x6CDB, 0xAA78, 0x6CDC, 0xAA7C, 0x6CDD, 0xCD41, - 0x6CDE, 0xCD46, 0x6CE0, 0xAA7E, 0x6CE1, 0xAA77, 0x6CE2, 0xAA69, - 0x6CE3, 0xAA5F, 0x6CE5, 0xAA64, 0x6CE7, 0xCCF6, 0x6CE8, 0xAA60, - 0x6CE9, 0xCD4E, 0x6CEB, 0xCCF0, 0x6CEC, 0xCCEF, 0x6CED, 0xCCFD, - 0x6CEE, 0xCCF1, 0x6CEF, 0xAA7B, 0x6CF0, 0xAEF5, 0x6CF1, 0xAA74, - 0x6CF2, 0xCCFE, 0x6CF3, 0xAA61, 0x6CF5, 0xACA6, 0x6CF9, 0xCD4C, - 0x6D00, 0xCF7C, 0x6D01, 0xCFA1, 0x6D03, 0xCFA4, 0x6D04, 0xCF77, - 0x6D07, 0xCFA7, 0x6D08, 0xCFAA, 0x6D09, 0xCFAC, 0x6D0A, 0xCF74, - 0x6D0B, 0xAC76, 0x6D0C, 0xAC7B, 0x6D0D, 0xD249, 0x6D0E, 0xACAD, - 0x6D0F, 0xCFA5, 0x6D10, 0xCFAD, 0x6D11, 0xCF7B, 0x6D12, 0xCF73, - 0x6D16, 0xD264, 0x6D17, 0xAC7E, 0x6D18, 0xCFA2, 0x6D19, 0xCF78, - 0x6D1A, 0xCF7A, 0x6D1B, 0xACA5, 0x6D1D, 0xCF7D, 0x6D1E, 0xAC7D, - 0x6D1F, 0xCF70, 0x6D20, 0xCFA8, 0x6D22, 0xCFAB, 0x6D25, 0xAC7A, - 0x6D27, 0xACA8, 0x6D28, 0xCF6D, 0x6D29, 0xACAA, 0x6D2A, 0xAC78, - 0x6D2B, 0xACAE, 0x6D2C, 0xCFA9, 0x6D2D, 0xCF6F, 0x6D2E, 0xACAB, - 0x6D2F, 0xD25E, 0x6D30, 0xCD48, 0x6D31, 0xAC7C, 0x6D32, 0xAC77, - 0x6D33, 0xCF76, 0x6D34, 0xCF6E, 0x6D35, 0xACAC, 0x6D36, 0xACA4, - 0x6D37, 0xCFA3, 0x6D38, 0xACA9, 0x6D39, 0xACA7, 0x6D3A, 0xCF79, - 0x6D3B, 0xACA1, 0x6D3C, 0xCF71, 0x6D3D, 0xACA2, 0x6D3E, 0xACA3, - 0x6D3F, 0xCF72, 0x6D40, 0xCFA6, 0x6D41, 0xAC79, 0x6D42, 0xCF7E, - 0x6D58, 0xD24C, 0x6D59, 0xAEFD, 0x6D5A, 0xAF43, 0x6D5E, 0xD255, - 0x6D5F, 0xD25B, 0x6D60, 0xD257, 0x6D61, 0xD24A, 0x6D62, 0xD24D, - 0x6D63, 0xD246, 0x6D64, 0xD247, 0x6D65, 0xAF4A, 0x6D66, 0xAEFA, - 0x6D67, 0xD256, 0x6D68, 0xD25F, 0x6D69, 0xAF45, 0x6D6A, 0xAEF6, - 0x6D6C, 0xAF40, 0x6D6D, 0xD24E, 0x6D6E, 0xAF42, 0x6D6F, 0xD24F, - 0x6D70, 0xD259, 0x6D74, 0xAF44, 0x6D75, 0xD268, 0x6D76, 0xD248, - 0x6D77, 0xAEFC, 0x6D78, 0xAEFB, 0x6D79, 0xAF48, 0x6D7A, 0xD245, - 0x6D7B, 0xD266, 0x6D7C, 0xD25A, 0x6D7D, 0xD267, 0x6D7E, 0xD261, - 0x6D7F, 0xD253, 0x6D80, 0xD262, 0x6D82, 0xD25C, 0x6D83, 0xD265, - 0x6D84, 0xD263, 0x6D85, 0xAF49, 0x6D86, 0xD254, 0x6D87, 0xAEF9, - 0x6D88, 0xAEF8, 0x6D89, 0xAF41, 0x6D8A, 0xAF47, 0x6D8B, 0xD260, - 0x6D8C, 0xAF46, 0x6D8D, 0xD251, 0x6D8E, 0xB243, 0x6D90, 0xD269, - 0x6D91, 0xD250, 0x6D92, 0xD24B, 0x6D93, 0xAEFE, 0x6D94, 0xAF4B, - 0x6D95, 0xAEF7, 0x6D97, 0xD258, 0x6D98, 0xD25D, 0x6DAA, 0xB265, - 0x6DAB, 0xD5E1, 0x6DAC, 0xD5E5, 0x6DAE, 0xB252, 0x6DAF, 0xB250, - 0x6DB2, 0xB247, 0x6DB3, 0xD5E3, 0x6DB4, 0xD5E2, 0x6DB5, 0xB25B, - 0x6DB7, 0xD5E8, 0x6DB8, 0xB255, 0x6DBA, 0xD5FA, 0x6DBB, 0xD647, - 0x6DBC, 0xB244, 0x6DBD, 0xD5F7, 0x6DBE, 0xD5F0, 0x6DBF, 0xB267, - 0x6DC0, 0xD5E0, 0x6DC2, 0xD5FC, 0x6DC4, 0xB264, 0x6DC5, 0xB258, - 0x6DC6, 0xB263, 0x6DC7, 0xB24E, 0x6DC8, 0xD5EC, 0x6DC9, 0xD5FE, - 0x6DCA, 0xD5F6, 0x6DCB, 0xB24F, 0x6DCC, 0xB249, 0x6DCD, 0xD645, - 0x6DCF, 0xD5FD, 0x6DD0, 0xD640, 0x6DD1, 0xB251, 0x6DD2, 0xB259, - 0x6DD3, 0xD642, 0x6DD4, 0xD5EA, 0x6DD5, 0xD5FB, 0x6DD6, 0xD5EF, - 0x6DD7, 0xD644, 0x6DD8, 0xB25E, 0x6DD9, 0xB246, 0x6DDA, 0xB25C, - 0x6DDB, 0xD5F4, 0x6DDC, 0xD5F2, 0x6DDD, 0xD5F3, 0x6DDE, 0xB253, - 0x6DDF, 0xD5EE, 0x6DE0, 0xD5ED, 0x6DE1, 0xB248, 0x6DE2, 0xD5E7, - 0x6DE3, 0xD646, 0x6DE4, 0xB24A, 0x6DE5, 0xD5F1, 0x6DE6, 0xB268, - 0x6DE8, 0xB262, 0x6DE9, 0xD5E6, 0x6DEA, 0xB25F, 0x6DEB, 0xB25D, - 0x6DEC, 0xB266, 0x6DED, 0xD5F8, 0x6DEE, 0xB261, 0x6DEF, 0xD252, - 0x6DF0, 0xD5F9, 0x6DF1, 0xB260, 0x6DF2, 0xD641, 0x6DF3, 0xB245, - 0x6DF4, 0xD5F5, 0x6DF5, 0xB257, 0x6DF6, 0xD5E9, 0x6DF7, 0xB256, - 0x6DF9, 0xB254, 0x6DFA, 0xB24C, 0x6DFB, 0xB24B, 0x6DFC, 0xD9E7, - 0x6DFD, 0xD643, 0x6E00, 0xD5EB, 0x6E03, 0xD9FC, 0x6E05, 0xB24D, - 0x6E19, 0xB541, 0x6E1A, 0xB25A, 0x6E1B, 0xB4EE, 0x6E1C, 0xD9F6, - 0x6E1D, 0xB4FC, 0x6E1F, 0xD9EA, 0x6E20, 0xB4EB, 0x6E21, 0xB4E7, - 0x6E22, 0xDA49, 0x6E23, 0xB4ED, 0x6E24, 0xB4F1, 0x6E25, 0xB4EC, - 0x6E26, 0xB4F5, 0x6E27, 0xDA4D, 0x6E28, 0xDA44, 0x6E2B, 0xD9F1, - 0x6E2C, 0xB4FA, 0x6E2D, 0xB4F4, 0x6E2E, 0xD9FD, 0x6E2F, 0xB4E4, - 0x6E30, 0xDA4A, 0x6E31, 0xDA43, 0x6E32, 0xB4E8, 0x6E33, 0xD9F7, - 0x6E34, 0xB4F7, 0x6E35, 0xDA55, 0x6E36, 0xDA56, 0x6E38, 0xB4E5, - 0x6E39, 0xDA48, 0x6E3A, 0xB4F9, 0x6E3B, 0xD9FB, 0x6E3C, 0xD9ED, - 0x6E3D, 0xD9EE, 0x6E3E, 0xB4FD, 0x6E3F, 0xD9F2, 0x6E40, 0xD9F9, - 0x6E41, 0xD9F3, 0x6E43, 0xB4FB, 0x6E44, 0xB544, 0x6E45, 0xD9EF, - 0x6E46, 0xD9E8, 0x6E47, 0xD9E9, 0x6E49, 0xD9EB, 0x6E4A, 0xB4EA, - 0x6E4B, 0xD9F8, 0x6E4D, 0xB4F8, 0x6E4E, 0xB542, 0x6E51, 0xD9FA, - 0x6E52, 0xDA53, 0x6E53, 0xDA4B, 0x6E54, 0xB4E6, 0x6E55, 0xDA51, - 0x6E56, 0xB4F2, 0x6E58, 0xB4F0, 0x6E5A, 0xDA57, 0x6E5B, 0xB4EF, - 0x6E5C, 0xDA41, 0x6E5D, 0xD9F4, 0x6E5E, 0xD9FE, 0x6E5F, 0xB547, - 0x6E60, 0xDA45, 0x6E61, 0xDA42, 0x6E62, 0xD9F0, 0x6E63, 0xB543, - 0x6E64, 0xDA4F, 0x6E65, 0xDA4C, 0x6E66, 0xDA54, 0x6E67, 0xB4E9, - 0x6E68, 0xDA40, 0x6E69, 0xB546, 0x6E6B, 0xDA47, 0x6E6E, 0xB4F3, - 0x6E6F, 0xB4F6, 0x6E71, 0xDA46, 0x6E72, 0xB545, 0x6E73, 0xD9F5, - 0x6E74, 0xD5E4, 0x6E77, 0xDA50, 0x6E78, 0xDA4E, 0x6E79, 0xDA52, - 0x6E88, 0xD9EC, 0x6E89, 0xB540, 0x6E8D, 0xDE61, 0x6E8E, 0xDE60, - 0x6E8F, 0xDE46, 0x6E90, 0xB7BD, 0x6E92, 0xDE5F, 0x6E93, 0xDE49, - 0x6E94, 0xDE4A, 0x6E96, 0xB7C7, 0x6E97, 0xDE68, 0x6E98, 0xB7C2, - 0x6E99, 0xDE5E, 0x6E9B, 0xDE43, 0x6E9C, 0xB7C8, 0x6E9D, 0xB7BE, - 0x6E9E, 0xDE52, 0x6E9F, 0xDE48, 0x6EA0, 0xDE4B, 0x6EA1, 0xDE63, - 0x6EA2, 0xB7B8, 0x6EA3, 0xDE6A, 0x6EA4, 0xDE62, 0x6EA5, 0xB7C1, - 0x6EA6, 0xDE57, 0x6EA7, 0xB7CC, 0x6EAA, 0xB7CB, 0x6EAB, 0xB7C5, - 0x6EAE, 0xDE69, 0x6EAF, 0xB7B9, 0x6EB0, 0xDE55, 0x6EB1, 0xDE4C, - 0x6EB2, 0xDE59, 0x6EB3, 0xDE65, 0x6EB4, 0xB7CD, 0x6EB6, 0xB7BB, - 0x6EB7, 0xDE54, 0x6EB9, 0xDE4D, 0x6EBA, 0xB7C4, 0x6EBC, 0xB7C3, - 0x6EBD, 0xDE50, 0x6EBE, 0xDE5A, 0x6EBF, 0xDE64, 0x6EC0, 0xDE47, - 0x6EC1, 0xDE51, 0x6EC2, 0xB7BC, 0x6EC3, 0xDE5B, 0x6EC4, 0xB7C9, - 0x6EC5, 0xB7C0, 0x6EC6, 0xDE4E, 0x6EC7, 0xB7BF, 0x6EC8, 0xDE45, - 0x6EC9, 0xDE53, 0x6ECA, 0xDE67, 0x6ECB, 0xB4FE, 0x6ECC, 0xBAB0, - 0x6ECD, 0xDE56, 0x6ECE, 0xE26C, 0x6ECF, 0xDE58, 0x6ED0, 0xDE66, - 0x6ED1, 0xB7C6, 0x6ED2, 0xDE4F, 0x6ED3, 0xB7BA, 0x6ED4, 0xB7CA, - 0x6ED5, 0xBCF0, 0x6ED6, 0xDE44, 0x6ED8, 0xDE5D, 0x6EDC, 0xDE5C, - 0x6EEB, 0xE2AA, 0x6EEC, 0xBAAD, 0x6EED, 0xE27D, 0x6EEE, 0xE2A4, - 0x6EEF, 0xBAA2, 0x6EF1, 0xE26E, 0x6EF2, 0xBAAF, 0x6EF4, 0xBA77, - 0x6EF5, 0xE26D, 0x6EF6, 0xE2B0, 0x6EF7, 0xBAB1, 0x6EF8, 0xE271, - 0x6EF9, 0xE2A3, 0x6EFB, 0xE273, 0x6EFC, 0xE2B3, 0x6EFD, 0xE2AF, - 0x6EFE, 0xBA75, 0x6EFF, 0xBAA1, 0x6F00, 0xE653, 0x6F01, 0xBAAE, - 0x6F02, 0xBA7D, 0x6F03, 0xE26F, 0x6F05, 0xE2AE, 0x6F06, 0xBAA3, - 0x6F07, 0xE2AB, 0x6F08, 0xE2B8, 0x6F09, 0xE275, 0x6F0A, 0xE27E, - 0x6F0D, 0xE2B6, 0x6F0E, 0xE2AC, 0x6F0F, 0xBA7C, 0x6F12, 0xE27C, - 0x6F13, 0xBA76, 0x6F14, 0xBA74, 0x6F15, 0xBAA8, 0x6F18, 0xE27A, - 0x6F19, 0xE277, 0x6F1A, 0xE278, 0x6F1C, 0xE2B2, 0x6F1E, 0xE2B7, - 0x6F1F, 0xE2B5, 0x6F20, 0xBA7A, 0x6F21, 0xE2B9, 0x6F22, 0xBA7E, - 0x6F23, 0xBAA7, 0x6F25, 0xE270, 0x6F26, 0xE5FA, 0x6F27, 0xE279, - 0x6F29, 0xBA78, 0x6F2A, 0xBAAC, 0x6F2B, 0xBAA9, 0x6F2C, 0xBA7B, - 0x6F2D, 0xE2A5, 0x6F2E, 0xE274, 0x6F2F, 0xBAAA, 0x6F30, 0xE2A7, - 0x6F31, 0xBAA4, 0x6F32, 0xBAA6, 0x6F33, 0xBA73, 0x6F35, 0xE2A9, - 0x6F36, 0xE2A1, 0x6F37, 0xE272, 0x6F38, 0xBAA5, 0x6F39, 0xE2B1, - 0x6F3A, 0xE2B4, 0x6F3B, 0xE27B, 0x6F3C, 0xE2A8, 0x6F3E, 0xBA79, - 0x6F3F, 0xBCDF, 0x6F40, 0xE2A6, 0x6F41, 0xE5F9, 0x6F43, 0xE2AD, - 0x6F4E, 0xE276, 0x6F4F, 0xE644, 0x6F50, 0xE64E, 0x6F51, 0xBCE2, - 0x6F52, 0xE64D, 0x6F53, 0xE659, 0x6F54, 0xBCE4, 0x6F55, 0xE64B, - 0x6F57, 0xE64F, 0x6F58, 0xBCEF, 0x6F5A, 0xE646, 0x6F5B, 0xBCE7, - 0x6F5D, 0xE652, 0x6F5E, 0xE9F0, 0x6F5F, 0xBCF3, 0x6F60, 0xBCF2, - 0x6F61, 0xE654, 0x6F62, 0xE643, 0x6F63, 0xE65E, 0x6F64, 0xBCED, - 0x6F66, 0xBCE3, 0x6F67, 0xE657, 0x6F69, 0xE65B, 0x6F6A, 0xE660, - 0x6F6B, 0xE655, 0x6F6C, 0xE649, 0x6F6D, 0xBCE6, 0x6F6E, 0xBCE9, - 0x6F6F, 0xBCF1, 0x6F70, 0xBCEC, 0x6F72, 0xE64C, 0x6F73, 0xE2A2, - 0x6F76, 0xE648, 0x6F77, 0xE65F, 0x6F78, 0xBCE8, 0x6F7A, 0xBCEB, - 0x6F7B, 0xE661, 0x6F7C, 0xBCE0, 0x6F7D, 0xE656, 0x6F7E, 0xE5FB, - 0x6F7F, 0xE65C, 0x6F80, 0xC0DF, 0x6F82, 0xE64A, 0x6F84, 0xBCE1, - 0x6F85, 0xE645, 0x6F86, 0xBCE5, 0x6F87, 0xE5FC, 0x6F88, 0xBAAB, - 0x6F89, 0xE641, 0x6F8B, 0xE65A, 0x6F8C, 0xE642, 0x6F8D, 0xE640, - 0x6F8E, 0xBCEA, 0x6F90, 0xE658, 0x6F92, 0xE5FE, 0x6F93, 0xE651, - 0x6F94, 0xE650, 0x6F95, 0xE65D, 0x6F96, 0xE647, 0x6F97, 0xBCEE, - 0x6F9E, 0xE9F3, 0x6FA0, 0xBF49, 0x6FA1, 0xBEFE, 0x6FA2, 0xEA40, - 0x6FA3, 0xE9EB, 0x6FA4, 0xBF41, 0x6FA5, 0xE9F7, 0x6FA6, 0xBF48, - 0x6FA7, 0xBF43, 0x6FA8, 0xE9F5, 0x6FA9, 0xED4F, 0x6FAA, 0xE9FB, - 0x6FAB, 0xEA42, 0x6FAC, 0xE9FA, 0x6FAD, 0xE9E9, 0x6FAE, 0xE9F8, - 0x6FAF, 0xEA44, 0x6FB0, 0xEA46, 0x6FB1, 0xBEFD, 0x6FB2, 0xEA45, - 0x6FB3, 0xBF44, 0x6FB4, 0xBF4A, 0x6FB6, 0xBF47, 0x6FB8, 0xE9FE, - 0x6FB9, 0xBF46, 0x6FBA, 0xE9F9, 0x6FBC, 0xE9ED, 0x6FBD, 0xE9F2, - 0x6FBF, 0xE9FD, 0x6FC0, 0xBF45, 0x6FC1, 0xBF42, 0x6FC2, 0xBEFC, - 0x6FC3, 0xBF40, 0x6FC4, 0xE9F1, 0x6FC6, 0xE5FD, 0x6FC7, 0xE9EC, - 0x6FC8, 0xE9EF, 0x6FC9, 0xEA41, 0x6FCA, 0xE9F4, 0x6FCB, 0xE9EA, - 0x6FCC, 0xED4E, 0x6FCD, 0xEA43, 0x6FCE, 0xE9EE, 0x6FCF, 0xE9FC, - 0x6FD4, 0xED51, 0x6FD5, 0xC0E3, 0x6FD8, 0xC0D7, 0x6FDB, 0xC0DB, - 0x6FDC, 0xED53, 0x6FDD, 0xED59, 0x6FDE, 0xED57, 0x6FDF, 0xC0D9, - 0x6FE0, 0xC0DA, 0x6FE1, 0xC0E1, 0x6FE2, 0xED5A, 0x6FE3, 0xED52, - 0x6FE4, 0xC0DC, 0x6FE6, 0xED56, 0x6FE7, 0xED55, 0x6FE8, 0xED5B, - 0x6FE9, 0xC0E2, 0x6FEB, 0xC0DD, 0x6FEC, 0xC0E0, 0x6FED, 0xED54, - 0x6FEE, 0xC0E4, 0x6FEF, 0xC0DE, 0x6FF0, 0xC0E5, 0x6FF1, 0xC0D8, - 0x6FF2, 0xED58, 0x6FF4, 0xED50, 0x6FF7, 0xEFF7, 0x6FFA, 0xC271, - 0x6FFB, 0xEFF4, 0x6FFC, 0xEFF6, 0x6FFE, 0xC26F, 0x6FFF, 0xEFF2, - 0x7000, 0xEFF3, 0x7001, 0xEFEE, 0x7004, 0xE9F6, 0x7005, 0xEFEF, - 0x7006, 0xC270, 0x7007, 0xEFEB, 0x7009, 0xC26D, 0x700A, 0xEFF8, - 0x700B, 0xC26E, 0x700C, 0xEFEC, 0x700D, 0xEFED, 0x700E, 0xEFF1, - 0x700F, 0xC273, 0x7011, 0xC272, 0x7014, 0xEFF0, 0x7015, 0xC378, - 0x7016, 0xF25F, 0x7017, 0xF265, 0x7018, 0xC379, 0x7019, 0xF25C, - 0x701A, 0xC376, 0x701B, 0xC373, 0x701C, 0xF267, 0x701D, 0xC377, - 0x701F, 0xC374, 0x7020, 0xF25E, 0x7021, 0xF261, 0x7022, 0xF262, - 0x7023, 0xF263, 0x7024, 0xF266, 0x7026, 0xEFF5, 0x7027, 0xF25D, - 0x7028, 0xC375, 0x7029, 0xF264, 0x702A, 0xF268, 0x702B, 0xF260, - 0x702F, 0xF45D, 0x7030, 0xC46A, 0x7031, 0xF460, 0x7032, 0xC46B, - 0x7033, 0xF468, 0x7034, 0xF45F, 0x7035, 0xF45C, 0x7037, 0xF45E, - 0x7038, 0xF462, 0x7039, 0xF465, 0x703A, 0xF464, 0x703B, 0xF467, - 0x703C, 0xF45B, 0x703E, 0xC469, 0x703F, 0xF463, 0x7040, 0xF466, - 0x7041, 0xF469, 0x7042, 0xF461, 0x7043, 0xF5D3, 0x7044, 0xF5D4, - 0x7045, 0xF5D8, 0x7046, 0xF5D9, 0x7048, 0xF5D6, 0x7049, 0xF5D7, - 0x704A, 0xF5D5, 0x704C, 0xC4E9, 0x7051, 0xC578, 0x7052, 0xF6EB, - 0x7055, 0xF6E8, 0x7056, 0xF6E9, 0x7057, 0xF6EA, 0x7058, 0xC579, - 0x705A, 0xF7E5, 0x705B, 0xF7E4, 0x705D, 0xF8AF, 0x705E, 0xC5F4, - 0x705F, 0xF8AD, 0x7060, 0xF8B0, 0x7061, 0xF8AE, 0x7062, 0xF8F5, - 0x7063, 0xC657, 0x7064, 0xC665, 0x7065, 0xF9A3, 0x7066, 0xF96C, - 0x7068, 0xF9A2, 0x7069, 0xF9D0, 0x706A, 0xF9D1, 0x706B, 0xA4F5, - 0x7070, 0xA6C7, 0x7071, 0xCA41, 0x7074, 0xCB5E, 0x7076, 0xA85F, - 0x7078, 0xA862, 0x707A, 0xCB5F, 0x707C, 0xA860, 0x707D, 0xA861, - 0x7082, 0xCD58, 0x7083, 0xCD5A, 0x7084, 0xCD55, 0x7085, 0xCD52, - 0x7086, 0xCD54, 0x708A, 0xAAA4, 0x708E, 0xAAA2, 0x7091, 0xCD56, - 0x7092, 0xAAA3, 0x7093, 0xCD53, 0x7094, 0xCD50, 0x7095, 0xAAA1, - 0x7096, 0xCD57, 0x7098, 0xCD51, 0x7099, 0xAAA5, 0x709A, 0xCD59, - 0x709F, 0xCFAF, 0x70A1, 0xCFB3, 0x70A4, 0xACB7, 0x70A9, 0xCFB6, - 0x70AB, 0xACAF, 0x70AC, 0xACB2, 0x70AD, 0xACB4, 0x70AE, 0xACB6, - 0x70AF, 0xACB3, 0x70B0, 0xCFB2, 0x70B1, 0xCFB1, 0x70B3, 0xACB1, - 0x70B4, 0xCFB4, 0x70B5, 0xCFB5, 0x70B7, 0xCFAE, 0x70B8, 0xACB5, - 0x70BA, 0xACB0, 0x70BE, 0xCFB0, 0x70C5, 0xD277, 0x70C6, 0xD278, - 0x70C7, 0xD279, 0x70C8, 0xAF50, 0x70CA, 0xAF4C, 0x70CB, 0xD26E, - 0x70CD, 0xD276, 0x70CE, 0xD27B, 0x70CF, 0xAF51, 0x70D1, 0xD26C, - 0x70D2, 0xD272, 0x70D3, 0xD26B, 0x70D4, 0xD275, 0x70D7, 0xD271, - 0x70D8, 0xAF4D, 0x70D9, 0xAF4F, 0x70DA, 0xD27A, 0x70DC, 0xD26A, - 0x70DD, 0xD26D, 0x70DE, 0xD273, 0x70E0, 0xD274, 0x70E1, 0xD27C, - 0x70E2, 0xD270, 0x70E4, 0xAF4E, 0x70EF, 0xB26D, 0x70F0, 0xD64E, - 0x70F3, 0xD650, 0x70F4, 0xD64C, 0x70F6, 0xD658, 0x70F7, 0xD64A, - 0x70F8, 0xD657, 0x70F9, 0xB269, 0x70FA, 0xD648, 0x70FB, 0xDA5B, - 0x70FC, 0xD652, 0x70FD, 0xB26C, 0x70FF, 0xD653, 0x7100, 0xD656, - 0x7102, 0xD65A, 0x7104, 0xD64F, 0x7106, 0xD654, 0x7109, 0xB26A, - 0x710A, 0xB26B, 0x710B, 0xD659, 0x710C, 0xD64D, 0x710D, 0xD649, - 0x710E, 0xD65B, 0x7110, 0xD651, 0x7113, 0xD655, 0x7117, 0xD64B, - 0x7119, 0xB548, 0x711A, 0xB549, 0x711B, 0xDA65, 0x711C, 0xB54F, - 0x711E, 0xDA59, 0x711F, 0xDA62, 0x7120, 0xDA58, 0x7121, 0xB54C, - 0x7122, 0xDA60, 0x7123, 0xDA5E, 0x7125, 0xDA5F, 0x7126, 0xB54A, - 0x7128, 0xDA63, 0x712E, 0xDA5C, 0x712F, 0xDA5A, 0x7130, 0xB54B, - 0x7131, 0xDA5D, 0x7132, 0xDA61, 0x7136, 0xB54D, 0x713A, 0xDA64, - 0x7141, 0xDE70, 0x7142, 0xDE77, 0x7143, 0xDE79, 0x7144, 0xDEA1, - 0x7146, 0xB7DA, 0x7147, 0xDE6B, 0x7149, 0xB7D2, 0x714B, 0xDE7A, - 0x714C, 0xB7D7, 0x714D, 0xDEA2, 0x714E, 0xB7CE, 0x7150, 0xDE7D, - 0x7152, 0xDE6D, 0x7153, 0xDE7E, 0x7154, 0xDE6C, 0x7156, 0xB7DC, - 0x7158, 0xDE78, 0x7159, 0xB7CF, 0x715A, 0xDEA3, 0x715C, 0xB7D4, - 0x715D, 0xDE71, 0x715E, 0xB7D9, 0x715F, 0xDE7C, 0x7160, 0xDE6F, - 0x7161, 0xDE76, 0x7162, 0xDE72, 0x7163, 0xDE6E, 0x7164, 0xB7D1, - 0x7165, 0xB7D8, 0x7166, 0xB7D6, 0x7167, 0xB7D3, 0x7168, 0xB7DB, - 0x7169, 0xB7D0, 0x716A, 0xDE75, 0x716C, 0xB7D5, 0x716E, 0xB54E, - 0x7170, 0xDE7B, 0x7172, 0xDE73, 0x7178, 0xDE74, 0x717B, 0xE2C1, - 0x717D, 0xBAB4, 0x7180, 0xE2BD, 0x7181, 0xE2C3, 0x7182, 0xE2BF, - 0x7184, 0xBAB6, 0x7185, 0xE2BE, 0x7186, 0xE2C2, 0x7187, 0xE2BA, - 0x7189, 0xE2BC, 0x718A, 0xBAB5, 0x718F, 0xE2C0, 0x7190, 0xE2BB, - 0x7192, 0xBAB7, 0x7194, 0xBAB2, 0x7197, 0xE2C4, 0x7199, 0xBAB3, - 0x719A, 0xE667, 0x719B, 0xE664, 0x719C, 0xE670, 0x719D, 0xE66A, - 0x719E, 0xE66C, 0x719F, 0xBCF4, 0x71A0, 0xE666, 0x71A1, 0xE66E, - 0x71A4, 0xE66D, 0x71A5, 0xE66B, 0x71A7, 0xE671, 0x71A8, 0xBCF7, - 0x71A9, 0xE668, 0x71AA, 0xE66F, 0x71AC, 0xBCF5, 0x71AF, 0xE663, - 0x71B0, 0xE665, 0x71B1, 0xBCF6, 0x71B2, 0xE662, 0x71B3, 0xE672, - 0x71B5, 0xE669, 0x71B8, 0xEA4A, 0x71B9, 0xBF51, 0x71BC, 0xEA55, - 0x71BD, 0xEA53, 0x71BE, 0xBF4B, 0x71BF, 0xEA49, 0x71C0, 0xEA4C, - 0x71C1, 0xEA4D, 0x71C2, 0xEA48, 0x71C3, 0xBF55, 0x71C4, 0xBF56, - 0x71C5, 0xEA47, 0x71C6, 0xEA56, 0x71C7, 0xEA51, 0x71C8, 0xBF4F, - 0x71C9, 0xBF4C, 0x71CA, 0xEA50, 0x71CB, 0xEA4E, 0x71CE, 0xBF52, - 0x71CF, 0xEA52, 0x71D0, 0xBF4D, 0x71D2, 0xBF4E, 0x71D4, 0xEA4F, - 0x71D5, 0xBF50, 0x71D6, 0xEA4B, 0x71D8, 0xEA54, 0x71D9, 0xBF53, - 0x71DA, 0xEA57, 0x71DB, 0xEA58, 0x71DC, 0xBF54, 0x71DF, 0xC0E7, - 0x71E0, 0xC0EE, 0x71E1, 0xED5C, 0x71E2, 0xED62, 0x71E4, 0xED60, - 0x71E5, 0xC0EA, 0x71E6, 0xC0E9, 0x71E7, 0xC0E6, 0x71E8, 0xED5E, - 0x71EC, 0xC0EC, 0x71ED, 0xC0EB, 0x71EE, 0xC0E8, 0x71F0, 0xED61, - 0x71F1, 0xED5D, 0x71F2, 0xED5F, 0x71F4, 0xC0ED, 0x71F8, 0xC277, - 0x71F9, 0xEFFB, 0x71FB, 0xC274, 0x71FC, 0xC275, 0x71FD, 0xEFFD, - 0x71FE, 0xC276, 0x71FF, 0xEFFA, 0x7201, 0xEFF9, 0x7202, 0xF26C, - 0x7203, 0xEFFC, 0x7205, 0xF26D, 0x7206, 0xC37A, 0x7207, 0xF26B, - 0x720A, 0xF26A, 0x720C, 0xF269, 0x720D, 0xC37B, 0x7210, 0xC46C, - 0x7213, 0xF46A, 0x7214, 0xF46B, 0x7219, 0xF5DC, 0x721A, 0xF5DB, - 0x721B, 0xC4EA, 0x721D, 0xF5DA, 0x721E, 0xF6EC, 0x721F, 0xF6ED, - 0x7222, 0xF7E6, 0x7223, 0xF8B1, 0x7226, 0xF8F6, 0x7227, 0xF9BC, - 0x7228, 0xC679, 0x7229, 0xF9C6, 0x722A, 0xA4F6, 0x722C, 0xAAA6, - 0x722D, 0xAAA7, 0x7230, 0xACB8, 0x7235, 0xC0EF, 0x7236, 0xA4F7, - 0x7238, 0xAAA8, 0x7239, 0xAF52, 0x723A, 0xB7DD, 0x723B, 0xA4F8, - 0x723D, 0xB26E, 0x723E, 0xBAB8, 0x723F, 0xC962, 0x7241, 0xCFB7, - 0x7242, 0xD27D, 0x7244, 0xE2C5, 0x7246, 0xC0F0, 0x7247, 0xA4F9, - 0x7248, 0xAAA9, 0x7249, 0xCFB8, 0x724A, 0xCFB9, 0x724B, 0xDA66, - 0x724C, 0xB550, 0x724F, 0xDEA4, 0x7252, 0xB7DE, 0x7253, 0xE2C6, - 0x7256, 0xBCF8, 0x7258, 0xC37C, 0x7259, 0xA4FA, 0x725A, 0xDA67, - 0x725B, 0xA4FB, 0x725D, 0xA6C9, 0x725E, 0xCA42, 0x725F, 0xA6C8, - 0x7260, 0xA865, 0x7261, 0xA864, 0x7262, 0xA863, 0x7263, 0xCB60, - 0x7267, 0xAAAA, 0x7269, 0xAAAB, 0x726A, 0xCD5B, 0x726C, 0xCFBA, - 0x726E, 0xCFBD, 0x726F, 0xACBA, 0x7270, 0xCFBB, 0x7272, 0xACB9, - 0x7273, 0xCFBC, 0x7274, 0xACBB, 0x7276, 0xD2A2, 0x7277, 0xD2A1, - 0x7278, 0xD27E, 0x7279, 0xAF53, 0x727B, 0xD65D, 0x727C, 0xD65E, - 0x727D, 0xB26F, 0x727E, 0xD65C, 0x727F, 0xD65F, 0x7280, 0xB552, - 0x7281, 0xB270, 0x7284, 0xB551, 0x7285, 0xDA6B, 0x7286, 0xDA6A, - 0x7288, 0xDA68, 0x7289, 0xDA69, 0x728B, 0xDA6C, 0x728C, 0xDEA6, - 0x728D, 0xDEA5, 0x728E, 0xDEA9, 0x7290, 0xDEA8, 0x7291, 0xDEA7, - 0x7292, 0xBAB9, 0x7293, 0xE2C9, 0x7295, 0xE2C8, 0x7296, 0xBABA, - 0x7297, 0xE2C7, 0x7298, 0xE673, 0x729A, 0xE674, 0x729B, 0xBCF9, - 0x729D, 0xEA59, 0x729E, 0xEA5A, 0x72A1, 0xF272, 0x72A2, 0xC37D, - 0x72A3, 0xF271, 0x72A4, 0xF270, 0x72A5, 0xF26E, 0x72A6, 0xF26F, - 0x72A7, 0xC4EB, 0x72A8, 0xF46C, 0x72A9, 0xF6EE, 0x72AA, 0xF8F7, - 0x72AC, 0xA4FC, 0x72AE, 0xC9A5, 0x72AF, 0xA5C7, 0x72B0, 0xC9A6, - 0x72B4, 0xCA43, 0x72B5, 0xCA44, 0x72BA, 0xCB66, 0x72BD, 0xCB62, - 0x72BF, 0xCB61, 0x72C0, 0xAAAC, 0x72C1, 0xCB65, 0x72C2, 0xA867, - 0x72C3, 0xCB63, 0x72C4, 0xA866, 0x72C5, 0xCB67, 0x72C6, 0xCB64, - 0x72C9, 0xCD5F, 0x72CA, 0xCFBE, 0x72CB, 0xCD5D, 0x72CC, 0xCD64, - 0x72CE, 0xAAAD, 0x72D0, 0xAAB0, 0x72D1, 0xCD65, 0x72D2, 0xCD61, - 0x72D4, 0xCD62, 0x72D6, 0xCD5C, 0x72D7, 0xAAAF, 0x72D8, 0xCD5E, - 0x72D9, 0xAAAE, 0x72DA, 0xCD63, 0x72DC, 0xCD60, 0x72DF, 0xCFC2, - 0x72E0, 0xACBD, 0x72E1, 0xACBE, 0x72E3, 0xCFC5, 0x72E4, 0xCFBF, - 0x72E6, 0xCFC4, 0x72E8, 0xCFC0, 0x72E9, 0xACBC, 0x72EA, 0xCFC3, - 0x72EB, 0xCFC1, 0x72F3, 0xD2A8, 0x72F4, 0xD2A5, 0x72F6, 0xD2A7, - 0x72F7, 0xAF58, 0x72F8, 0xAF57, 0x72F9, 0xAF55, 0x72FA, 0xD2A4, - 0x72FB, 0xD2A9, 0x72FC, 0xAF54, 0x72FD, 0xAF56, 0x72FE, 0xD2A6, - 0x72FF, 0xD667, 0x7300, 0xD2A3, 0x7301, 0xD2AA, 0x7307, 0xD662, - 0x7308, 0xD666, 0x730A, 0xD665, 0x730B, 0xDA6E, 0x730C, 0xDA79, - 0x730F, 0xD668, 0x7311, 0xD663, 0x7312, 0xDA6D, 0x7313, 0xB274, - 0x7316, 0xB273, 0x7317, 0xD661, 0x7318, 0xD664, 0x7319, 0xB275, - 0x731B, 0xB272, 0x731C, 0xB271, 0x731D, 0xD660, 0x731E, 0xD669, - 0x7322, 0xDA70, 0x7323, 0xDA77, 0x7325, 0xB554, 0x7326, 0xDA76, - 0x7327, 0xDA73, 0x7329, 0xB556, 0x732D, 0xDA75, 0x7330, 0xDA6F, - 0x7331, 0xDA71, 0x7332, 0xDA74, 0x7333, 0xDA72, 0x7334, 0xB555, - 0x7335, 0xDA78, 0x7336, 0xB553, 0x7337, 0xB7DF, 0x733A, 0xDEAD, - 0x733B, 0xDEAC, 0x733C, 0xDEAA, 0x733E, 0xB7E2, 0x733F, 0xB7E1, - 0x7340, 0xDEAE, 0x7342, 0xDEAB, 0x7343, 0xE2CA, 0x7344, 0xBABB, - 0x7345, 0xB7E0, 0x7349, 0xDEB0, 0x734A, 0xDEAF, 0x734C, 0xE2CD, - 0x734D, 0xE2CB, 0x734E, 0xBCFA, 0x7350, 0xBABC, 0x7351, 0xE2CC, - 0x7352, 0xE676, 0x7357, 0xBCFB, 0x7358, 0xE675, 0x7359, 0xE67E, - 0x735A, 0xE67D, 0x735B, 0xE67B, 0x735D, 0xE67A, 0x735E, 0xE677, - 0x735F, 0xE678, 0x7360, 0xE679, 0x7361, 0xE67C, 0x7362, 0xE6A1, - 0x7365, 0xEA5F, 0x7366, 0xEA5C, 0x7367, 0xEA5D, 0x7368, 0xBF57, - 0x7369, 0xEA5B, 0x736A, 0xEA61, 0x736B, 0xEA60, 0x736C, 0xEA5E, - 0x736E, 0xED64, 0x736F, 0xED65, 0x7370, 0xC0F1, 0x7372, 0xC0F2, - 0x7373, 0xED63, 0x7375, 0xC279, 0x7376, 0xEFFE, 0x7377, 0xC278, - 0x7378, 0xC37E, 0x737A, 0xC3A1, 0x737B, 0xC46D, 0x737C, 0xF46E, - 0x737D, 0xF46D, 0x737E, 0xF5DD, 0x737F, 0xF6EF, 0x7380, 0xC57A, - 0x7381, 0xF7E8, 0x7382, 0xF7E7, 0x7383, 0xF7E9, 0x7384, 0xA5C8, - 0x7385, 0xCFC6, 0x7386, 0xAF59, 0x7387, 0xB276, 0x7388, 0xD66A, - 0x7389, 0xA5C9, 0x738A, 0xC9A7, 0x738B, 0xA4FD, 0x738E, 0xCA45, - 0x7392, 0xCB6C, 0x7393, 0xCB6A, 0x7394, 0xCB6B, 0x7395, 0xCB68, - 0x7396, 0xA868, 0x7397, 0xCB69, 0x739D, 0xCD6D, 0x739F, 0xAAB3, - 0x73A0, 0xCD6B, 0x73A1, 0xCD67, 0x73A2, 0xCD6A, 0x73A4, 0xCD66, - 0x73A5, 0xAAB5, 0x73A6, 0xCD69, 0x73A8, 0xAAB2, 0x73A9, 0xAAB1, - 0x73AB, 0xAAB4, 0x73AC, 0xCD6C, 0x73AD, 0xCD68, 0x73B2, 0xACC2, - 0x73B3, 0xACC5, 0x73B4, 0xCFCE, 0x73B5, 0xCFCD, 0x73B6, 0xCFCC, - 0x73B7, 0xACBF, 0x73B8, 0xCFD5, 0x73B9, 0xCFCB, 0x73BB, 0xACC1, - 0x73BC, 0xD2AF, 0x73BE, 0xCFD2, 0x73BF, 0xCFD0, 0x73C0, 0xACC4, - 0x73C2, 0xCFC8, 0x73C3, 0xCFD3, 0x73C5, 0xCFCA, 0x73C6, 0xCFD4, - 0x73C7, 0xCFD1, 0x73C8, 0xCFC9, 0x73CA, 0xACC0, 0x73CB, 0xCFD6, - 0x73CC, 0xCFC7, 0x73CD, 0xACC3, 0x73D2, 0xD2B4, 0x73D3, 0xD2AB, - 0x73D4, 0xD2B6, 0x73D6, 0xD2AE, 0x73D7, 0xD2B9, 0x73D8, 0xD2BA, - 0x73D9, 0xD2AC, 0x73DA, 0xD2B8, 0x73DB, 0xD2B5, 0x73DC, 0xD2B3, - 0x73DD, 0xD2B7, 0x73DE, 0xAF5F, 0x73E0, 0xAF5D, 0x73E3, 0xD2B1, - 0x73E5, 0xD2AD, 0x73E7, 0xD2B0, 0x73E8, 0xD2BB, 0x73E9, 0xD2B2, - 0x73EA, 0xAF5E, 0x73EB, 0xCFCF, 0x73ED, 0xAF5A, 0x73EE, 0xAF5C, - 0x73F4, 0xD678, 0x73F5, 0xD66D, 0x73F6, 0xD66B, 0x73F8, 0xD66C, - 0x73FA, 0xD673, 0x73FC, 0xD674, 0x73FD, 0xD670, 0x73FE, 0xB27B, - 0x73FF, 0xD675, 0x7400, 0xD672, 0x7401, 0xD66F, 0x7403, 0xB279, - 0x7404, 0xD66E, 0x7405, 0xB277, 0x7406, 0xB27A, 0x7407, 0xD671, - 0x7408, 0xD679, 0x7409, 0xAF5B, 0x740A, 0xB278, 0x740B, 0xD677, - 0x740C, 0xD676, 0x740D, 0xB27C, 0x7416, 0xDA7E, 0x741A, 0xDAA1, - 0x741B, 0xB560, 0x741D, 0xDAA7, 0x7420, 0xDAA9, 0x7421, 0xDAA2, - 0x7422, 0xB55A, 0x7423, 0xDAA6, 0x7424, 0xDAA5, 0x7425, 0xB55B, - 0x7426, 0xB561, 0x7428, 0xB562, 0x7429, 0xDAA8, 0x742A, 0xB558, - 0x742B, 0xDA7D, 0x742C, 0xDA7B, 0x742D, 0xDAA3, 0x742E, 0xDA7A, - 0x742F, 0xB55F, 0x7430, 0xDA7C, 0x7431, 0xDAA4, 0x7432, 0xDAAA, - 0x7433, 0xB559, 0x7434, 0xB55E, 0x7435, 0xB55C, 0x7436, 0xB55D, - 0x743A, 0xB557, 0x743F, 0xB7E9, 0x7440, 0xDEB7, 0x7441, 0xB7E8, - 0x7442, 0xDEBB, 0x7444, 0xDEB1, 0x7446, 0xDEBC, 0x744A, 0xDEB2, - 0x744B, 0xDEB3, 0x744D, 0xDEBD, 0x744E, 0xDEBA, 0x744F, 0xDEB8, - 0x7450, 0xDEB9, 0x7451, 0xDEB5, 0x7452, 0xDEB4, 0x7454, 0xDEBE, - 0x7455, 0xB7E5, 0x7457, 0xDEB6, 0x7459, 0xB7EA, 0x745A, 0xB7E4, - 0x745B, 0xB7EB, 0x745C, 0xB7EC, 0x745E, 0xB7E7, 0x745F, 0xB7E6, - 0x7462, 0xE2CE, 0x7463, 0xBABE, 0x7464, 0xBABD, 0x7467, 0xE2D3, - 0x7469, 0xBCFC, 0x746A, 0xBABF, 0x746D, 0xBAC1, 0x746E, 0xE2D4, - 0x746F, 0xB7E3, 0x7470, 0xBAC0, 0x7471, 0xE2D0, 0x7472, 0xE2D2, - 0x7473, 0xE2CF, 0x7475, 0xE2D1, 0x7479, 0xE6AB, 0x747C, 0xE6AA, - 0x747D, 0xE6A7, 0x747E, 0xBD40, 0x747F, 0xEA62, 0x7480, 0xBD41, - 0x7481, 0xE6A6, 0x7483, 0xBCFE, 0x7485, 0xE6A8, 0x7486, 0xE6A5, - 0x7487, 0xE6A2, 0x7488, 0xE6A9, 0x7489, 0xE6A3, 0x748A, 0xE6A4, - 0x748B, 0xBCFD, 0x7490, 0xED69, 0x7492, 0xEA66, 0x7494, 0xEA65, - 0x7495, 0xEA67, 0x7497, 0xED66, 0x7498, 0xBF5A, 0x749A, 0xEA63, - 0x749C, 0xBF58, 0x749E, 0xBF5C, 0x749F, 0xBF5B, 0x74A0, 0xEA64, - 0x74A1, 0xEA68, 0x74A3, 0xBF59, 0x74A5, 0xED6D, 0x74A6, 0xC0F5, - 0x74A7, 0xC27A, 0x74A8, 0xC0F6, 0x74A9, 0xC0F3, 0x74AA, 0xED6A, - 0x74AB, 0xED68, 0x74AD, 0xED6B, 0x74AF, 0xED6E, 0x74B0, 0xC0F4, - 0x74B1, 0xED6C, 0x74B2, 0xED67, 0x74B5, 0xF042, 0x74B6, 0xF045, - 0x74B7, 0xF275, 0x74B8, 0xF040, 0x74BA, 0xF46F, 0x74BB, 0xF046, - 0x74BD, 0xC3A2, 0x74BE, 0xF044, 0x74BF, 0xC27B, 0x74C0, 0xF041, - 0x74C1, 0xF043, 0x74C2, 0xF047, 0x74C3, 0xF276, 0x74C5, 0xF274, - 0x74CA, 0xC3A3, 0x74CB, 0xF273, 0x74CF, 0xC46E, 0x74D4, 0xC4ED, - 0x74D5, 0xF6F1, 0x74D6, 0xC4EC, 0x74D7, 0xF6F3, 0x74D8, 0xF6F0, - 0x74D9, 0xF6F2, 0x74DA, 0xC5D0, 0x74DB, 0xF8B2, 0x74DC, 0xA5CA, - 0x74DD, 0xCD6E, 0x74DE, 0xD2BC, 0x74DF, 0xD2BD, 0x74E0, 0xB27D, - 0x74E1, 0xDEBF, 0x74E2, 0xBF5D, 0x74E3, 0xC3A4, 0x74E4, 0xC57B, - 0x74E5, 0xF8B3, 0x74E6, 0xA5CB, 0x74E8, 0xCD6F, 0x74E9, 0xA260, - 0x74EC, 0xCFD7, 0x74EE, 0xCFD8, 0x74F4, 0xD2BE, 0x74F5, 0xD2BF, - 0x74F6, 0xB27E, 0x74F7, 0xB2A1, 0x74FB, 0xDAAB, 0x74FD, 0xDEC2, - 0x74FE, 0xDEC1, 0x74FF, 0xDEC0, 0x7500, 0xE2D5, 0x7502, 0xE2D6, - 0x7503, 0xE2D7, 0x7504, 0xBAC2, 0x7507, 0xE6AD, 0x7508, 0xE6AC, - 0x750B, 0xEA69, 0x750C, 0xBF5E, 0x750D, 0xBF5F, 0x750F, 0xED72, - 0x7510, 0xED6F, 0x7511, 0xED70, 0x7512, 0xED71, 0x7513, 0xF049, - 0x7514, 0xF048, 0x7515, 0xC27C, 0x7516, 0xF277, 0x7517, 0xF5DE, - 0x7518, 0xA5CC, 0x751A, 0xACC6, 0x751C, 0xB2A2, 0x751D, 0xDEC3, - 0x751F, 0xA5CD, 0x7521, 0xD2C0, 0x7522, 0xB2A3, 0x7525, 0xB563, - 0x7526, 0xB564, 0x7528, 0xA5CE, 0x7529, 0xA5CF, 0x752A, 0xCA46, - 0x752B, 0xA86A, 0x752C, 0xA869, 0x752D, 0xACC7, 0x752E, 0xCFD9, - 0x752F, 0xDAAC, 0x7530, 0xA5D0, 0x7531, 0xA5D1, 0x7532, 0xA5D2, - 0x7533, 0xA5D3, 0x7537, 0xA86B, 0x7538, 0xA86C, 0x7539, 0xCB6E, - 0x753A, 0xCB6D, 0x753D, 0xAAB6, 0x753E, 0xCD72, 0x753F, 0xCD70, - 0x7540, 0xCD71, 0x7547, 0xCFDA, 0x7548, 0xCFDB, 0x754B, 0xACCB, - 0x754C, 0xACC9, 0x754E, 0xACCA, 0x754F, 0xACC8, 0x7554, 0xAF60, - 0x7559, 0xAF64, 0x755A, 0xAF63, 0x755B, 0xD2C1, 0x755C, 0xAF62, - 0x755D, 0xAF61, 0x755F, 0xD2C2, 0x7562, 0xB2A6, 0x7563, 0xD67B, - 0x7564, 0xD67A, 0x7565, 0xB2A4, 0x7566, 0xB2A5, 0x756A, 0xB566, - 0x756B, 0xB565, 0x756C, 0xDAAE, 0x756F, 0xDAAD, 0x7570, 0xB2A7, - 0x7576, 0xB7ED, 0x7577, 0xDEC5, 0x7578, 0xB7EE, 0x7579, 0xDEC4, - 0x757D, 0xE2D8, 0x757E, 0xE6AE, 0x757F, 0xBD42, 0x7580, 0xEA6A, - 0x7584, 0xED73, 0x7586, 0xC3A6, 0x7587, 0xC3A5, 0x758A, 0xC57C, - 0x758B, 0xA5D4, 0x758C, 0xCD73, 0x758F, 0xB2A8, 0x7590, 0xE2D9, - 0x7591, 0xBAC3, 0x7594, 0xCB6F, 0x7595, 0xCB70, 0x7598, 0xCD74, - 0x7599, 0xAAB8, 0x759A, 0xAAB9, 0x759D, 0xAAB7, 0x75A2, 0xACCF, - 0x75A3, 0xACD0, 0x75A4, 0xACCD, 0x75A5, 0xACCE, 0x75A7, 0xCFDC, - 0x75AA, 0xCFDD, 0x75AB, 0xACCC, 0x75B0, 0xD2C3, 0x75B2, 0xAF68, - 0x75B3, 0xAF69, 0x75B5, 0xB2AB, 0x75B6, 0xD2C9, 0x75B8, 0xAF6E, - 0x75B9, 0xAF6C, 0x75BA, 0xD2CA, 0x75BB, 0xD2C5, 0x75BC, 0xAF6B, - 0x75BD, 0xAF6A, 0x75BE, 0xAF65, 0x75BF, 0xD2C8, 0x75C0, 0xD2C7, - 0x75C1, 0xD2C4, 0x75C2, 0xAF6D, 0x75C4, 0xD2C6, 0x75C5, 0xAF66, - 0x75C7, 0xAF67, 0x75CA, 0xB2AC, 0x75CB, 0xD6A1, 0x75CC, 0xD6A2, - 0x75CD, 0xB2AD, 0x75CE, 0xD67C, 0x75CF, 0xD67E, 0x75D0, 0xD6A4, - 0x75D1, 0xD6A3, 0x75D2, 0xD67D, 0x75D4, 0xB2A9, 0x75D5, 0xB2AA, - 0x75D7, 0xDAB6, 0x75D8, 0xB56B, 0x75D9, 0xB56A, 0x75DA, 0xDAB0, - 0x75DB, 0xB568, 0x75DD, 0xDAB3, 0x75DE, 0xB56C, 0x75DF, 0xDAB4, - 0x75E0, 0xB56D, 0x75E1, 0xDAB1, 0x75E2, 0xB567, 0x75E3, 0xB569, - 0x75E4, 0xDAB5, 0x75E6, 0xDAB2, 0x75E7, 0xDAAF, 0x75ED, 0xDED2, - 0x75EF, 0xDEC7, 0x75F0, 0xB7F0, 0x75F1, 0xB7F3, 0x75F2, 0xB7F2, - 0x75F3, 0xB7F7, 0x75F4, 0xB7F6, 0x75F5, 0xDED3, 0x75F6, 0xDED1, - 0x75F7, 0xDECA, 0x75F8, 0xDECE, 0x75F9, 0xDECD, 0x75FA, 0xB7F4, - 0x75FB, 0xDED0, 0x75FC, 0xDECC, 0x75FD, 0xDED4, 0x75FE, 0xDECB, - 0x75FF, 0xB7F5, 0x7600, 0xB7EF, 0x7601, 0xB7F1, 0x7603, 0xDEC9, - 0x7608, 0xE2DB, 0x7609, 0xBAC7, 0x760A, 0xE2DF, 0x760B, 0xBAC6, - 0x760C, 0xE2DC, 0x760D, 0xBAC5, 0x760F, 0xDEC8, 0x7610, 0xDECF, - 0x7611, 0xE2DE, 0x7613, 0xBAC8, 0x7614, 0xE2E0, 0x7615, 0xE2DD, - 0x7616, 0xE2DA, 0x7619, 0xE6B1, 0x761A, 0xE6B5, 0x761B, 0xE6B7, - 0x761C, 0xE6B3, 0x761D, 0xE6B2, 0x761E, 0xE6B0, 0x761F, 0xBD45, - 0x7620, 0xBD43, 0x7621, 0xBD48, 0x7622, 0xBD49, 0x7623, 0xE6B4, - 0x7624, 0xBD46, 0x7625, 0xE6AF, 0x7626, 0xBD47, 0x7627, 0xBAC4, - 0x7628, 0xE6B6, 0x7629, 0xBD44, 0x762D, 0xEA6C, 0x762F, 0xEA6B, - 0x7630, 0xEA73, 0x7631, 0xEA6D, 0x7632, 0xEA72, 0x7633, 0xEA6F, - 0x7634, 0xBF60, 0x7635, 0xEA71, 0x7638, 0xBF61, 0x763A, 0xBF62, - 0x763C, 0xEA70, 0x763D, 0xEA6E, 0x7642, 0xC0F8, 0x7643, 0xED74, - 0x7646, 0xC0F7, 0x7647, 0xED77, 0x7648, 0xED75, 0x7649, 0xED76, - 0x764C, 0xC0F9, 0x7650, 0xF04D, 0x7652, 0xC2A1, 0x7653, 0xF04E, - 0x7656, 0xC27D, 0x7657, 0xF04F, 0x7658, 0xC27E, 0x7659, 0xF04C, - 0x765A, 0xF050, 0x765C, 0xF04A, 0x765F, 0xC3A7, 0x7660, 0xF278, - 0x7661, 0xC3A8, 0x7662, 0xC46F, 0x7664, 0xF04B, 0x7665, 0xC470, - 0x7669, 0xC4EE, 0x766A, 0xF5DF, 0x766C, 0xC57E, 0x766D, 0xF6F4, - 0x766E, 0xC57D, 0x7670, 0xF7EA, 0x7671, 0xC5F5, 0x7672, 0xC5F6, - 0x7675, 0xF9CC, 0x7678, 0xACD1, 0x7679, 0xCFDE, 0x767B, 0xB56E, - 0x767C, 0xB56F, 0x767D, 0xA5D5, 0x767E, 0xA6CA, 0x767F, 0xCA47, - 0x7681, 0xCB71, 0x7682, 0xA86D, 0x7684, 0xAABA, 0x7686, 0xACD2, - 0x7687, 0xACD3, 0x7688, 0xACD4, 0x7689, 0xD6A6, 0x768A, 0xD2CB, - 0x768B, 0xAF6F, 0x768E, 0xB2AE, 0x768F, 0xD6A5, 0x7692, 0xDAB8, - 0x7693, 0xB571, 0x7695, 0xDAB7, 0x7696, 0xB570, 0x7699, 0xDED5, - 0x769A, 0xBD4A, 0x769B, 0xE6BB, 0x769C, 0xE6B8, 0x769D, 0xE6B9, - 0x769E, 0xE6BA, 0x76A4, 0xED78, 0x76A6, 0xF051, 0x76AA, 0xF471, - 0x76AB, 0xF470, 0x76AD, 0xF6F5, 0x76AE, 0xA5D6, 0x76AF, 0xCD75, - 0x76B0, 0xAF70, 0x76B4, 0xB572, 0x76B5, 0xDED6, 0x76B8, 0xE2E1, - 0x76BA, 0xBD4B, 0x76BB, 0xEA74, 0x76BD, 0xF052, 0x76BE, 0xF472, - 0x76BF, 0xA5D7, 0x76C2, 0xAABB, 0x76C3, 0xACD7, 0x76C4, 0xCFDF, - 0x76C5, 0xACD8, 0x76C6, 0xACD6, 0x76C8, 0xACD5, 0x76C9, 0xD2CC, - 0x76CA, 0xAF71, 0x76CD, 0xAF72, 0x76CE, 0xAF73, 0x76D2, 0xB2B0, - 0x76D3, 0xD6A7, 0x76D4, 0xB2AF, 0x76DA, 0xDAB9, 0x76DB, 0xB2B1, - 0x76DC, 0xB573, 0x76DD, 0xDED7, 0x76DE, 0xB7F8, 0x76DF, 0xB7F9, - 0x76E1, 0xBAC9, 0x76E3, 0xBACA, 0x76E4, 0xBD4C, 0x76E5, 0xBF64, - 0x76E6, 0xEA75, 0x76E7, 0xBF63, 0x76E9, 0xED79, 0x76EA, 0xC0FA, - 0x76EC, 0xF053, 0x76ED, 0xF473, 0x76EE, 0xA5D8, 0x76EF, 0xA86E, - 0x76F0, 0xCD78, 0x76F1, 0xCD77, 0x76F2, 0xAABC, 0x76F3, 0xCD76, - 0x76F4, 0xAABD, 0x76F5, 0xCD79, 0x76F7, 0xCFE5, 0x76F8, 0xACDB, - 0x76F9, 0xACDA, 0x76FA, 0xCFE7, 0x76FB, 0xCFE6, 0x76FC, 0xACDF, - 0x76FE, 0xACDE, 0x7701, 0xACD9, 0x7703, 0xCFE1, 0x7704, 0xCFE2, - 0x7705, 0xCFE3, 0x7707, 0xACE0, 0x7708, 0xCFE0, 0x7709, 0xACDC, - 0x770A, 0xCFE4, 0x770B, 0xACDD, 0x7710, 0xD2CF, 0x7711, 0xD2D3, - 0x7712, 0xD2D1, 0x7713, 0xD2D0, 0x7715, 0xD2D4, 0x7719, 0xD2D5, - 0x771A, 0xD2D6, 0x771B, 0xD2CE, 0x771D, 0xD2CD, 0x771F, 0xAF75, - 0x7720, 0xAF76, 0x7722, 0xD2D7, 0x7723, 0xD2D2, 0x7725, 0xD6B0, - 0x7727, 0xD2D8, 0x7728, 0xAF77, 0x7729, 0xAF74, 0x772D, 0xD6AA, - 0x772F, 0xD6A9, 0x7731, 0xD6AB, 0x7732, 0xD6AC, 0x7733, 0xD6AE, - 0x7734, 0xD6AD, 0x7735, 0xD6B2, 0x7736, 0xB2B5, 0x7737, 0xB2B2, - 0x7738, 0xB2B6, 0x7739, 0xD6A8, 0x773A, 0xB2B7, 0x773B, 0xD6B1, - 0x773C, 0xB2B4, 0x773D, 0xD6AF, 0x773E, 0xB2B3, 0x7744, 0xDABC, - 0x7745, 0xDABE, 0x7746, 0xDABA, 0x7747, 0xDABB, 0x774A, 0xDABF, - 0x774B, 0xDAC1, 0x774C, 0xDAC2, 0x774D, 0xDABD, 0x774E, 0xDAC0, - 0x774F, 0xB574, 0x7752, 0xDEDB, 0x7754, 0xDEE0, 0x7755, 0xDED8, - 0x7756, 0xDEDC, 0x7759, 0xDEE1, 0x775A, 0xDEDD, 0x775B, 0xB7FA, - 0x775C, 0xB843, 0x775E, 0xB7FD, 0x775F, 0xDED9, 0x7760, 0xDEDA, - 0x7761, 0xBACE, 0x7762, 0xB846, 0x7763, 0xB7FE, 0x7765, 0xB844, - 0x7766, 0xB7FC, 0x7767, 0xDEDF, 0x7768, 0xB845, 0x7769, 0xDEDE, - 0x776A, 0xB841, 0x776B, 0xB7FB, 0x776C, 0xB842, 0x776D, 0xDEE2, - 0x776E, 0xE2E6, 0x776F, 0xE2E8, 0x7779, 0xB840, 0x777C, 0xE2E3, - 0x777D, 0xBACC, 0x777E, 0xE2E9, 0x777F, 0xBACD, 0x7780, 0xE2E7, - 0x7781, 0xE2E2, 0x7782, 0xE2E5, 0x7783, 0xE2EA, 0x7784, 0xBACB, - 0x7785, 0xE2E4, 0x7787, 0xBD4E, 0x7788, 0xE6BF, 0x7789, 0xE6BE, - 0x778B, 0xBD51, 0x778C, 0xBD4F, 0x778D, 0xE6BC, 0x778E, 0xBD4D, - 0x778F, 0xE6BD, 0x7791, 0xBD50, 0x7795, 0xEA7D, 0x7797, 0xEAA1, - 0x7799, 0xEA7E, 0x779A, 0xEA76, 0x779B, 0xEA7A, 0x779C, 0xEA79, - 0x779D, 0xEA77, 0x779E, 0xBF66, 0x779F, 0xBF67, 0x77A0, 0xBF65, - 0x77A1, 0xEA78, 0x77A2, 0xEA7B, 0x77A3, 0xEA7C, 0x77A5, 0xBF68, - 0x77A7, 0xC140, 0x77A8, 0xEDA3, 0x77AA, 0xC0FC, 0x77AB, 0xED7B, - 0x77AC, 0xC0FE, 0x77AD, 0xC141, 0x77B0, 0xC0FD, 0x77B1, 0xEDA2, - 0x77B2, 0xED7C, 0x77B3, 0xC0FB, 0x77B4, 0xEDA1, 0x77B5, 0xED7A, - 0x77B6, 0xED7E, 0x77B7, 0xED7D, 0x77BA, 0xF055, 0x77BB, 0xC2A4, - 0x77BC, 0xC2A5, 0x77BD, 0xC2A2, 0x77BF, 0xC2A3, 0x77C2, 0xF054, - 0x77C4, 0xF27B, 0x77C7, 0xC3A9, 0x77C9, 0xF279, 0x77CA, 0xF27A, - 0x77CC, 0xF474, 0x77CD, 0xF477, 0x77CE, 0xF475, 0x77CF, 0xF476, - 0x77D0, 0xF5E0, 0x77D3, 0xC4EF, 0x77D4, 0xF7EB, 0x77D5, 0xF8B4, - 0x77D7, 0xC5F7, 0x77D8, 0xF8F8, 0x77D9, 0xF8F9, 0x77DA, 0xC666, - 0x77DB, 0xA5D9, 0x77DC, 0xACE1, 0x77DE, 0xDAC3, 0x77E0, 0xDEE3, - 0x77E2, 0xA5DA, 0x77E3, 0xA86F, 0x77E5, 0xAABE, 0x77E7, 0xCFE8, - 0x77E8, 0xCFE9, 0x77E9, 0xAF78, 0x77EC, 0xDAC4, 0x77ED, 0xB575, - 0x77EE, 0xB847, 0x77EF, 0xC142, 0x77F0, 0xEDA4, 0x77F1, 0xF27C, - 0x77F2, 0xF478, 0x77F3, 0xA5DB, 0x77F7, 0xCDA1, 0x77F8, 0xCD7A, - 0x77F9, 0xCD7C, 0x77FA, 0xCD7E, 0x77FB, 0xCD7D, 0x77FC, 0xCD7B, - 0x77FD, 0xAABF, 0x7802, 0xACE2, 0x7803, 0xCFF2, 0x7805, 0xCFED, - 0x7806, 0xCFEA, 0x7809, 0xCFF1, 0x780C, 0xACE4, 0x780D, 0xACE5, - 0x780E, 0xCFF0, 0x780F, 0xCFEF, 0x7810, 0xCFEE, 0x7811, 0xCFEB, - 0x7812, 0xCFEC, 0x7813, 0xCFF3, 0x7814, 0xACE3, 0x781D, 0xAF7C, - 0x781F, 0xAFA4, 0x7820, 0xAFA3, 0x7821, 0xD2E1, 0x7822, 0xD2DB, - 0x7823, 0xD2D9, 0x7825, 0xAFA1, 0x7826, 0xD6B9, 0x7827, 0xAF7A, - 0x7828, 0xD2DE, 0x7829, 0xD2E2, 0x782A, 0xD2E4, 0x782B, 0xD2E0, - 0x782C, 0xD2DA, 0x782D, 0xAFA2, 0x782E, 0xD2DF, 0x782F, 0xD2DD, - 0x7830, 0xAF79, 0x7831, 0xD2E5, 0x7832, 0xAFA5, 0x7833, 0xD2E3, - 0x7834, 0xAF7D, 0x7835, 0xD2DC, 0x7837, 0xAF7E, 0x7838, 0xAF7B, - 0x7843, 0xB2B9, 0x7845, 0xD6BA, 0x7848, 0xD6B3, 0x7849, 0xD6B5, - 0x784A, 0xD6B7, 0x784C, 0xD6B8, 0x784D, 0xD6B6, 0x784E, 0xB2BA, - 0x7850, 0xD6BB, 0x7852, 0xD6B4, 0x785C, 0xDAC8, 0x785D, 0xB576, - 0x785E, 0xDAD0, 0x7860, 0xDAC5, 0x7862, 0xDAD1, 0x7864, 0xDAC6, - 0x7865, 0xDAC7, 0x7868, 0xDACF, 0x7869, 0xDACE, 0x786A, 0xDACB, - 0x786B, 0xB2B8, 0x786C, 0xB577, 0x786D, 0xDAC9, 0x786E, 0xDACC, - 0x786F, 0xB578, 0x7870, 0xDACD, 0x7871, 0xDACA, 0x7879, 0xDEEE, - 0x787B, 0xDEF2, 0x787C, 0xB84E, 0x787E, 0xE2F0, 0x787F, 0xB851, - 0x7880, 0xDEF0, 0x7881, 0xF9D6, 0x7883, 0xDEED, 0x7884, 0xDEE8, - 0x7885, 0xDEEA, 0x7886, 0xDEEB, 0x7887, 0xDEE4, 0x7889, 0xB84D, - 0x788C, 0xB84C, 0x788E, 0xB848, 0x788F, 0xDEE7, 0x7891, 0xB84F, - 0x7893, 0xB850, 0x7894, 0xDEE6, 0x7895, 0xDEE9, 0x7896, 0xDEF1, - 0x7897, 0xB84A, 0x7898, 0xB84B, 0x7899, 0xDEEF, 0x789A, 0xDEE5, - 0x789E, 0xE2F2, 0x789F, 0xBAD0, 0x78A0, 0xE2F4, 0x78A1, 0xDEEC, - 0x78A2, 0xE2F6, 0x78A3, 0xBAD4, 0x78A4, 0xE2F7, 0x78A5, 0xE2F3, - 0x78A7, 0xBAD1, 0x78A8, 0xE2EF, 0x78A9, 0xBAD3, 0x78AA, 0xE2EC, - 0x78AB, 0xE2F1, 0x78AC, 0xE2F5, 0x78AD, 0xE2EE, 0x78B0, 0xB849, - 0x78B2, 0xE2EB, 0x78B3, 0xBAD2, 0x78B4, 0xE2ED, 0x78BA, 0xBD54, - 0x78BB, 0xE6C1, 0x78BC, 0xBD58, 0x78BE, 0xBD56, 0x78C1, 0xBACF, - 0x78C3, 0xE6C8, 0x78C4, 0xE6C9, 0x78C5, 0xBD53, 0x78C8, 0xE6C7, - 0x78C9, 0xE6CA, 0x78CA, 0xBD55, 0x78CB, 0xBD52, 0x78CC, 0xE6C3, - 0x78CD, 0xE6C0, 0x78CE, 0xE6C5, 0x78CF, 0xE6C2, 0x78D0, 0xBD59, - 0x78D1, 0xE6C4, 0x78D4, 0xE6C6, 0x78D5, 0xBD57, 0x78DA, 0xBF6A, - 0x78DB, 0xEAA8, 0x78DD, 0xEAA2, 0x78DE, 0xEAA6, 0x78DF, 0xEAAC, - 0x78E0, 0xEAAD, 0x78E1, 0xEAA9, 0x78E2, 0xEAAA, 0x78E3, 0xEAA7, - 0x78E5, 0xEAA4, 0x78E7, 0xBF6C, 0x78E8, 0xBF69, 0x78E9, 0xEAA3, - 0x78EA, 0xEAA5, 0x78EC, 0xBF6B, 0x78ED, 0xEAAB, 0x78EF, 0xC146, - 0x78F2, 0xEDAA, 0x78F3, 0xEDA5, 0x78F4, 0xC145, 0x78F7, 0xC143, - 0x78F9, 0xEDAC, 0x78FA, 0xC144, 0x78FB, 0xEDA8, 0x78FC, 0xEDA9, - 0x78FD, 0xEDA6, 0x78FE, 0xEDAD, 0x78FF, 0xF056, 0x7901, 0xC147, - 0x7902, 0xEDA7, 0x7904, 0xEDAE, 0x7905, 0xEDAB, 0x7909, 0xF05A, - 0x790C, 0xF057, 0x790E, 0xC2A6, 0x7910, 0xF05B, 0x7911, 0xF05D, - 0x7912, 0xF05C, 0x7913, 0xF058, 0x7914, 0xF059, 0x7917, 0xF2A3, - 0x7919, 0xC3AA, 0x791B, 0xF27E, 0x791C, 0xF2A2, 0x791D, 0xF27D, - 0x791E, 0xF2A4, 0x7921, 0xF2A1, 0x7923, 0xF47A, 0x7924, 0xF47D, - 0x7925, 0xF479, 0x7926, 0xC471, 0x7927, 0xF47B, 0x7928, 0xF47C, - 0x7929, 0xF47E, 0x792A, 0xC472, 0x792B, 0xC474, 0x792C, 0xC473, - 0x792D, 0xF5E1, 0x792F, 0xF5E3, 0x7931, 0xF5E2, 0x7935, 0xF6F6, - 0x7938, 0xF8B5, 0x7939, 0xF8FA, 0x793A, 0xA5DC, 0x793D, 0xCB72, - 0x793E, 0xAAC0, 0x793F, 0xCDA3, 0x7940, 0xAAC1, 0x7941, 0xAAC2, - 0x7942, 0xCDA2, 0x7944, 0xCFF8, 0x7945, 0xCFF7, 0x7946, 0xACE6, - 0x7947, 0xACE9, 0x7948, 0xACE8, 0x7949, 0xACE7, 0x794A, 0xCFF4, - 0x794B, 0xCFF6, 0x794C, 0xCFF5, 0x794F, 0xD2E8, 0x7950, 0xAFA7, - 0x7951, 0xD2EC, 0x7952, 0xD2EB, 0x7953, 0xD2EA, 0x7954, 0xD2E6, - 0x7955, 0xAFA6, 0x7956, 0xAFAA, 0x7957, 0xAFAD, 0x795A, 0xAFAE, - 0x795B, 0xD2E7, 0x795C, 0xD2E9, 0x795D, 0xAFAC, 0x795E, 0xAFAB, - 0x795F, 0xAFA9, 0x7960, 0xAFA8, 0x7961, 0xD6C2, 0x7963, 0xD6C0, - 0x7964, 0xD6BC, 0x7965, 0xB2BB, 0x7967, 0xD6BD, 0x7968, 0xB2BC, - 0x7969, 0xD6BE, 0x796A, 0xD6BF, 0x796B, 0xD6C1, 0x796D, 0xB2BD, - 0x7970, 0xDAD5, 0x7972, 0xDAD4, 0x7973, 0xDAD3, 0x7974, 0xDAD2, - 0x7979, 0xDEF6, 0x797A, 0xB852, 0x797C, 0xDEF3, 0x797D, 0xDEF5, - 0x797F, 0xB853, 0x7981, 0xB854, 0x7982, 0xDEF4, 0x7988, 0xE341, - 0x798A, 0xE2F9, 0x798B, 0xE2FA, 0x798D, 0xBAD7, 0x798E, 0xBAD5, - 0x798F, 0xBAD6, 0x7990, 0xE343, 0x7992, 0xE342, 0x7993, 0xE2FE, - 0x7994, 0xE2FD, 0x7995, 0xE2FC, 0x7996, 0xE2FB, 0x7997, 0xE340, - 0x7998, 0xE2F8, 0x799A, 0xE6CB, 0x799B, 0xE6D0, 0x799C, 0xE6CE, - 0x79A0, 0xE6CD, 0x79A1, 0xE6CC, 0x79A2, 0xE6CF, 0x79A4, 0xEAAE, - 0x79A6, 0xBF6D, 0x79A7, 0xC148, 0x79A8, 0xEDB0, 0x79AA, 0xC149, - 0x79AB, 0xEDAF, 0x79AC, 0xF05F, 0x79AD, 0xF05E, 0x79AE, 0xC2A7, - 0x79B0, 0xF2A5, 0x79B1, 0xC3AB, 0x79B2, 0xF4A1, 0x79B3, 0xC5A1, - 0x79B4, 0xF6F7, 0x79B6, 0xF8B7, 0x79B7, 0xF8B6, 0x79B8, 0xC9A8, - 0x79B9, 0xACEA, 0x79BA, 0xACEB, 0x79BB, 0xD6C3, 0x79BD, 0xB856, - 0x79BE, 0xA5DD, 0x79BF, 0xA872, 0x79C0, 0xA871, 0x79C1, 0xA870, - 0x79C5, 0xCDA4, 0x79C8, 0xAAC4, 0x79C9, 0xAAC3, 0x79CB, 0xACEE, - 0x79CD, 0xCFFA, 0x79CE, 0xCFFD, 0x79CF, 0xCFFB, 0x79D1, 0xACEC, - 0x79D2, 0xACED, 0x79D5, 0xCFF9, 0x79D6, 0xCFFC, 0x79D8, 0xAFB5, - 0x79DC, 0xD2F3, 0x79DD, 0xD2F5, 0x79DE, 0xD2F4, 0x79DF, 0xAFB2, - 0x79E0, 0xD2EF, 0x79E3, 0xAFB0, 0x79E4, 0xAFAF, 0x79E6, 0xAFB3, - 0x79E7, 0xAFB1, 0x79E9, 0xAFB4, 0x79EA, 0xD2F2, 0x79EB, 0xD2ED, - 0x79EC, 0xD2EE, 0x79ED, 0xD2F1, 0x79EE, 0xD2F0, 0x79F6, 0xD6C6, - 0x79F7, 0xD6C7, 0x79F8, 0xD6C5, 0x79FA, 0xD6C4, 0x79FB, 0xB2BE, - 0x7A00, 0xB57D, 0x7A02, 0xDAD6, 0x7A03, 0xDAD8, 0x7A04, 0xDADA, - 0x7A05, 0xB57C, 0x7A08, 0xB57A, 0x7A0A, 0xDAD7, 0x7A0B, 0xB57B, - 0x7A0C, 0xDAD9, 0x7A0D, 0xB579, 0x7A10, 0xDF41, 0x7A11, 0xDEF7, - 0x7A12, 0xDEFA, 0x7A13, 0xDEFE, 0x7A14, 0xB85A, 0x7A15, 0xDEFC, - 0x7A17, 0xDEFB, 0x7A18, 0xDEF8, 0x7A19, 0xDEF9, 0x7A1A, 0xB858, - 0x7A1B, 0xDF40, 0x7A1C, 0xB857, 0x7A1E, 0xB85C, 0x7A1F, 0xB85B, - 0x7A20, 0xB859, 0x7A22, 0xDEFD, 0x7A26, 0xE349, 0x7A28, 0xE348, - 0x7A2B, 0xE344, 0x7A2E, 0xBAD8, 0x7A2F, 0xE347, 0x7A30, 0xE346, - 0x7A31, 0xBAD9, 0x7A37, 0xBD5E, 0x7A39, 0xE6D2, 0x7A3B, 0xBD5F, - 0x7A3C, 0xBD5B, 0x7A3D, 0xBD5D, 0x7A3F, 0xBD5A, 0x7A40, 0xBD5C, - 0x7A44, 0xEAAF, 0x7A46, 0xBF70, 0x7A47, 0xEAB1, 0x7A48, 0xEAB0, - 0x7A4A, 0xE345, 0x7A4B, 0xBF72, 0x7A4C, 0xBF71, 0x7A4D, 0xBF6E, - 0x7A4E, 0xBF6F, 0x7A54, 0xEDB5, 0x7A56, 0xEDB3, 0x7A57, 0xC14A, - 0x7A58, 0xEDB4, 0x7A5A, 0xEDB6, 0x7A5B, 0xEDB2, 0x7A5C, 0xEDB1, - 0x7A5F, 0xF060, 0x7A60, 0xC2AA, 0x7A61, 0xC2A8, 0x7A62, 0xC2A9, - 0x7A67, 0xF2A6, 0x7A68, 0xF2A7, 0x7A69, 0xC3AD, 0x7A6B, 0xC3AC, - 0x7A6C, 0xF4A3, 0x7A6D, 0xF4A4, 0x7A6E, 0xF4A2, 0x7A70, 0xF6F8, - 0x7A71, 0xF6F9, 0x7A74, 0xA5DE, 0x7A75, 0xCA48, 0x7A76, 0xA873, - 0x7A78, 0xCDA5, 0x7A79, 0xAAC6, 0x7A7A, 0xAAC5, 0x7A7B, 0xCDA6, - 0x7A7E, 0xD040, 0x7A7F, 0xACEF, 0x7A80, 0xCFFE, 0x7A81, 0xACF0, - 0x7A84, 0xAFB6, 0x7A85, 0xD2F8, 0x7A86, 0xD2F6, 0x7A87, 0xD2FC, - 0x7A88, 0xAFB7, 0x7A89, 0xD2F7, 0x7A8A, 0xD2FB, 0x7A8B, 0xD2F9, - 0x7A8C, 0xD2FA, 0x7A8F, 0xD6C8, 0x7A90, 0xD6CA, 0x7A92, 0xB2BF, - 0x7A94, 0xD6C9, 0x7A95, 0xB2C0, 0x7A96, 0xB5A2, 0x7A97, 0xB5A1, - 0x7A98, 0xB57E, 0x7A99, 0xDADB, 0x7A9E, 0xDF44, 0x7A9F, 0xB85D, - 0x7AA0, 0xB85E, 0x7AA2, 0xDF43, 0x7AA3, 0xDF42, 0x7AA8, 0xE34A, - 0x7AA9, 0xBADB, 0x7AAA, 0xBADA, 0x7AAB, 0xE34B, 0x7AAC, 0xE34C, - 0x7AAE, 0xBD61, 0x7AAF, 0xBD60, 0x7AB1, 0xEAB5, 0x7AB2, 0xE6D3, - 0x7AB3, 0xE6D5, 0x7AB4, 0xE6D4, 0x7AB5, 0xEAB4, 0x7AB6, 0xEAB2, - 0x7AB7, 0xEAB6, 0x7AB8, 0xEAB3, 0x7ABA, 0xBF73, 0x7ABE, 0xEDB7, - 0x7ABF, 0xC14B, 0x7AC0, 0xEDB8, 0x7AC1, 0xEDB9, 0x7AC4, 0xC2AB, - 0x7AC5, 0xC2AC, 0x7AC7, 0xC475, 0x7ACA, 0xC5D1, 0x7ACB, 0xA5DF, - 0x7AD1, 0xD041, 0x7AD8, 0xD2FD, 0x7AD9, 0xAFB8, 0x7ADF, 0xB3BA, - 0x7AE0, 0xB3B9, 0x7AE3, 0xB5A4, 0x7AE4, 0xDADD, 0x7AE5, 0xB5A3, - 0x7AE6, 0xDADC, 0x7AEB, 0xDF45, 0x7AED, 0xBADC, 0x7AEE, 0xE34D, - 0x7AEF, 0xBADD, 0x7AF6, 0xC476, 0x7AF7, 0xF4A5, 0x7AF9, 0xA6CB, - 0x7AFA, 0xAAC7, 0x7AFB, 0xCDA7, 0x7AFD, 0xACF2, 0x7AFF, 0xACF1, - 0x7B00, 0xD042, 0x7B01, 0xD043, 0x7B04, 0xD340, 0x7B05, 0xD342, - 0x7B06, 0xAFB9, 0x7B08, 0xD344, 0x7B09, 0xD347, 0x7B0A, 0xD345, - 0x7B0E, 0xD346, 0x7B0F, 0xD343, 0x7B10, 0xD2FE, 0x7B11, 0xAFBA, - 0x7B12, 0xD348, 0x7B13, 0xD341, 0x7B18, 0xD6D3, 0x7B19, 0xB2C6, - 0x7B1A, 0xD6DC, 0x7B1B, 0xB2C3, 0x7B1D, 0xD6D5, 0x7B1E, 0xB2C7, - 0x7B20, 0xB2C1, 0x7B22, 0xD6D0, 0x7B23, 0xD6DD, 0x7B24, 0xD6D1, - 0x7B25, 0xD6CE, 0x7B26, 0xB2C5, 0x7B28, 0xB2C2, 0x7B2A, 0xD6D4, - 0x7B2B, 0xD6D7, 0x7B2C, 0xB2C4, 0x7B2D, 0xD6D8, 0x7B2E, 0xB2C8, - 0x7B2F, 0xD6D9, 0x7B30, 0xD6CF, 0x7B31, 0xD6D6, 0x7B32, 0xD6DA, - 0x7B33, 0xD6D2, 0x7B34, 0xD6CD, 0x7B35, 0xD6CB, 0x7B38, 0xD6DB, - 0x7B3B, 0xDADF, 0x7B40, 0xDAE4, 0x7B44, 0xDAE0, 0x7B45, 0xDAE6, - 0x7B46, 0xB5A7, 0x7B47, 0xD6CC, 0x7B48, 0xDAE1, 0x7B49, 0xB5A5, - 0x7B4A, 0xDADE, 0x7B4B, 0xB5AC, 0x7B4C, 0xDAE2, 0x7B4D, 0xB5AB, - 0x7B4E, 0xDAE3, 0x7B4F, 0xB5AD, 0x7B50, 0xB5A8, 0x7B51, 0xB5AE, - 0x7B52, 0xB5A9, 0x7B54, 0xB5AA, 0x7B56, 0xB5A6, 0x7B58, 0xDAE5, - 0x7B60, 0xB861, 0x7B61, 0xDF50, 0x7B63, 0xDF53, 0x7B64, 0xDF47, - 0x7B65, 0xDF4C, 0x7B66, 0xDF46, 0x7B67, 0xB863, 0x7B69, 0xDF4A, - 0x7B6D, 0xDF48, 0x7B6E, 0xB862, 0x7B70, 0xDF4F, 0x7B71, 0xDF4E, - 0x7B72, 0xDF4B, 0x7B73, 0xDF4D, 0x7B74, 0xDF49, 0x7B75, 0xBAE1, - 0x7B76, 0xDF52, 0x7B77, 0xB85F, 0x7B78, 0xDF51, 0x7B82, 0xE35D, - 0x7B84, 0xBAE8, 0x7B85, 0xE358, 0x7B87, 0xBAE7, 0x7B88, 0xE34E, - 0x7B8A, 0xE350, 0x7B8B, 0xBAE0, 0x7B8C, 0xE355, 0x7B8D, 0xE354, - 0x7B8E, 0xE357, 0x7B8F, 0xBAE5, 0x7B90, 0xE352, 0x7B91, 0xE351, - 0x7B94, 0xBAE4, 0x7B95, 0xBADF, 0x7B96, 0xE353, 0x7B97, 0xBAE2, - 0x7B98, 0xE359, 0x7B99, 0xE35B, 0x7B9B, 0xE356, 0x7B9C, 0xE34F, - 0x7B9D, 0xBAE3, 0x7BA0, 0xBD69, 0x7BA1, 0xBADE, 0x7BA4, 0xE35C, - 0x7BAC, 0xE6D9, 0x7BAD, 0xBD62, 0x7BAF, 0xE6DB, 0x7BB1, 0xBD63, - 0x7BB4, 0xBD65, 0x7BB5, 0xE6DE, 0x7BB7, 0xE6D6, 0x7BB8, 0xBAE6, - 0x7BB9, 0xE6DC, 0x7BBE, 0xE6D8, 0x7BC0, 0xB860, 0x7BC1, 0xBD68, - 0x7BC4, 0xBD64, 0x7BC6, 0xBD66, 0x7BC7, 0xBD67, 0x7BC9, 0xBF76, - 0x7BCA, 0xE6DD, 0x7BCB, 0xE6D7, 0x7BCC, 0xBD6A, 0x7BCE, 0xE6DA, - 0x7BD4, 0xEAC0, 0x7BD5, 0xEABB, 0x7BD8, 0xEAC5, 0x7BD9, 0xBF74, - 0x7BDA, 0xEABD, 0x7BDB, 0xBF78, 0x7BDC, 0xEAC3, 0x7BDD, 0xEABA, - 0x7BDE, 0xEAB7, 0x7BDF, 0xEAC6, 0x7BE0, 0xC151, 0x7BE1, 0xBF79, - 0x7BE2, 0xEAC2, 0x7BE3, 0xEAB8, 0x7BE4, 0xBF77, 0x7BE5, 0xEABC, - 0x7BE6, 0xBF7B, 0x7BE7, 0xEAB9, 0x7BE8, 0xEABE, 0x7BE9, 0xBF7A, - 0x7BEA, 0xEAC1, 0x7BEB, 0xEAC4, 0x7BF0, 0xEDCB, 0x7BF1, 0xEDCC, - 0x7BF2, 0xEDBC, 0x7BF3, 0xEDC3, 0x7BF4, 0xEDC1, 0x7BF7, 0xC14F, - 0x7BF8, 0xEDC8, 0x7BF9, 0xEABF, 0x7BFB, 0xEDBF, 0x7BFD, 0xEDC9, - 0x7BFE, 0xC14E, 0x7BFF, 0xEDBE, 0x7C00, 0xEDBD, 0x7C01, 0xEDC7, - 0x7C02, 0xEDC4, 0x7C03, 0xEDC6, 0x7C05, 0xEDBA, 0x7C06, 0xEDCA, - 0x7C07, 0xC14C, 0x7C09, 0xEDC5, 0x7C0A, 0xEDCE, 0x7C0B, 0xEDC2, - 0x7C0C, 0xC150, 0x7C0D, 0xC14D, 0x7C0E, 0xEDC0, 0x7C0F, 0xEDBB, - 0x7C10, 0xEDCD, 0x7C11, 0xBF75, 0x7C19, 0xF063, 0x7C1C, 0xF061, - 0x7C1D, 0xF067, 0x7C1E, 0xC2B0, 0x7C1F, 0xF065, 0x7C20, 0xF064, - 0x7C21, 0xC2B2, 0x7C22, 0xF06A, 0x7C23, 0xC2B1, 0x7C25, 0xF06B, - 0x7C26, 0xF068, 0x7C27, 0xC2AE, 0x7C28, 0xF069, 0x7C29, 0xF062, - 0x7C2A, 0xC2AF, 0x7C2B, 0xC2AD, 0x7C2C, 0xF2AB, 0x7C2D, 0xF066, - 0x7C30, 0xF06C, 0x7C33, 0xF2A8, 0x7C37, 0xC3B2, 0x7C38, 0xC3B0, - 0x7C39, 0xF2AA, 0x7C3B, 0xF2AC, 0x7C3C, 0xF2A9, 0x7C3D, 0xC3B1, - 0x7C3E, 0xC3AE, 0x7C3F, 0xC3AF, 0x7C40, 0xC3B3, 0x7C43, 0xC478, - 0x7C45, 0xF4AA, 0x7C47, 0xF4A9, 0x7C48, 0xF4A7, 0x7C49, 0xF4A6, - 0x7C4A, 0xF4A8, 0x7C4C, 0xC477, 0x7C4D, 0xC479, 0x7C50, 0xC4F0, - 0x7C53, 0xF5E5, 0x7C54, 0xF5E4, 0x7C57, 0xF6FA, 0x7C59, 0xF6FC, - 0x7C5A, 0xF6FE, 0x7C5B, 0xF6FD, 0x7C5C, 0xF6FB, 0x7C5F, 0xC5A3, - 0x7C60, 0xC5A2, 0x7C63, 0xC5D3, 0x7C64, 0xC5D2, 0x7C65, 0xC5D4, - 0x7C66, 0xF7ED, 0x7C67, 0xF7EC, 0x7C69, 0xF8FB, 0x7C6A, 0xF8B8, - 0x7C6B, 0xF8FC, 0x7C6C, 0xC658, 0x7C6E, 0xC659, 0x7C6F, 0xF96D, - 0x7C72, 0xC67E, 0x7C73, 0xA6CC, 0x7C75, 0xCDA8, 0x7C78, 0xD045, - 0x7C79, 0xD046, 0x7C7A, 0xD044, 0x7C7D, 0xACF3, 0x7C7F, 0xD047, - 0x7C80, 0xD048, 0x7C81, 0xD049, 0x7C84, 0xD349, 0x7C85, 0xD34F, - 0x7C88, 0xD34D, 0x7C89, 0xAFBB, 0x7C8A, 0xD34B, 0x7C8C, 0xD34C, - 0x7C8D, 0xD34E, 0x7C91, 0xD34A, 0x7C92, 0xB2C9, 0x7C94, 0xD6DE, - 0x7C95, 0xB2CB, 0x7C96, 0xD6E0, 0x7C97, 0xB2CA, 0x7C98, 0xD6DF, - 0x7C9E, 0xDAE8, 0x7C9F, 0xB5AF, 0x7CA1, 0xDAEA, 0x7CA2, 0xDAE7, - 0x7CA3, 0xD6E1, 0x7CA5, 0xB5B0, 0x7CA7, 0xF9DB, 0x7CA8, 0xDAE9, - 0x7CAF, 0xDF56, 0x7CB1, 0xB864, 0x7CB2, 0xDF54, 0x7CB3, 0xB865, - 0x7CB4, 0xDF55, 0x7CB5, 0xB866, 0x7CB9, 0xBAE9, 0x7CBA, 0xE361, - 0x7CBB, 0xE35E, 0x7CBC, 0xE360, 0x7CBD, 0xBAEA, 0x7CBE, 0xBAEB, - 0x7CBF, 0xE35F, 0x7CC5, 0xE6DF, 0x7CC8, 0xE6E0, 0x7CCA, 0xBD6B, - 0x7CCB, 0xE6E2, 0x7CCC, 0xE6E1, 0x7CCE, 0xA261, 0x7CD0, 0xEACA, - 0x7CD1, 0xEACB, 0x7CD2, 0xEAC7, 0x7CD4, 0xEAC8, 0x7CD5, 0xBF7C, - 0x7CD6, 0xBF7D, 0x7CD7, 0xEAC9, 0x7CD9, 0xC157, 0x7CDC, 0xC153, - 0x7CDD, 0xC158, 0x7CDE, 0xC154, 0x7CDF, 0xC156, 0x7CE0, 0xC152, - 0x7CE2, 0xC155, 0x7CE7, 0xC2B3, 0x7CE8, 0xEDCF, 0x7CEA, 0xF2AE, - 0x7CEC, 0xF2AD, 0x7CEE, 0xF4AB, 0x7CEF, 0xC47A, 0x7CF0, 0xC47B, - 0x7CF1, 0xF741, 0x7CF2, 0xF5E6, 0x7CF4, 0xF740, 0x7CF6, 0xF8FD, - 0x7CF7, 0xF9A4, 0x7CF8, 0xA6CD, 0x7CFB, 0xA874, 0x7CFD, 0xCDA9, - 0x7CFE, 0xAAC8, 0x7D00, 0xACF6, 0x7D01, 0xD04C, 0x7D02, 0xACF4, - 0x7D03, 0xD04A, 0x7D04, 0xACF9, 0x7D05, 0xACF5, 0x7D06, 0xACFA, - 0x7D07, 0xACF8, 0x7D08, 0xD04B, 0x7D09, 0xACF7, 0x7D0A, 0xAFBF, - 0x7D0B, 0xAFBE, 0x7D0C, 0xD35A, 0x7D0D, 0xAFC7, 0x7D0E, 0xD353, - 0x7D0F, 0xD359, 0x7D10, 0xAFC3, 0x7D11, 0xD352, 0x7D12, 0xD358, - 0x7D13, 0xD356, 0x7D14, 0xAFC2, 0x7D15, 0xAFC4, 0x7D16, 0xD355, - 0x7D17, 0xAFBD, 0x7D18, 0xD354, 0x7D19, 0xAFC8, 0x7D1A, 0xAFC5, - 0x7D1B, 0xAFC9, 0x7D1C, 0xAFC6, 0x7D1D, 0xD351, 0x7D1E, 0xD350, - 0x7D1F, 0xD357, 0x7D20, 0xAFC0, 0x7D21, 0xAFBC, 0x7D22, 0xAFC1, - 0x7D28, 0xD6F0, 0x7D29, 0xD6E9, 0x7D2B, 0xB5B5, 0x7D2C, 0xD6E8, - 0x7D2E, 0xB2CF, 0x7D2F, 0xB2D6, 0x7D30, 0xB2D3, 0x7D31, 0xB2D9, - 0x7D32, 0xB2D8, 0x7D33, 0xB2D4, 0x7D35, 0xD6E2, 0x7D36, 0xD6E5, - 0x7D38, 0xD6E4, 0x7D39, 0xB2D0, 0x7D3A, 0xD6E6, 0x7D3B, 0xD6EF, - 0x7D3C, 0xB2D1, 0x7D3D, 0xD6E3, 0x7D3E, 0xD6EC, 0x7D3F, 0xD6ED, - 0x7D40, 0xB2D2, 0x7D41, 0xD6EA, 0x7D42, 0xB2D7, 0x7D43, 0xB2CD, - 0x7D44, 0xB2D5, 0x7D45, 0xD6E7, 0x7D46, 0xB2CC, 0x7D47, 0xD6EB, - 0x7D4A, 0xD6EE, 0x7D4E, 0xDAFB, 0x7D4F, 0xDAF2, 0x7D50, 0xB5B2, - 0x7D51, 0xDAF9, 0x7D52, 0xDAF6, 0x7D53, 0xDAEE, 0x7D54, 0xDAF7, - 0x7D55, 0xB5B4, 0x7D56, 0xDAEF, 0x7D58, 0xDAEB, 0x7D5B, 0xB86C, - 0x7D5C, 0xDAF4, 0x7D5E, 0xB5B1, 0x7D5F, 0xDAFA, 0x7D61, 0xB5B8, - 0x7D62, 0xB5BA, 0x7D63, 0xDAED, 0x7D66, 0xB5B9, 0x7D67, 0xDAF0, - 0x7D68, 0xB5B3, 0x7D69, 0xDAF8, 0x7D6A, 0xDAF1, 0x7D6B, 0xDAF5, - 0x7D6D, 0xDAF3, 0x7D6E, 0xB5B6, 0x7D6F, 0xDAEC, 0x7D70, 0xB5BB, - 0x7D71, 0xB2CE, 0x7D72, 0xB5B7, 0x7D73, 0xB5BC, 0x7D79, 0xB868, - 0x7D7A, 0xDF5D, 0x7D7B, 0xDF5F, 0x7D7C, 0xDF61, 0x7D7D, 0xDF65, - 0x7D7F, 0xDF5B, 0x7D80, 0xDF59, 0x7D81, 0xB86A, 0x7D83, 0xDF60, - 0x7D84, 0xDF64, 0x7D85, 0xDF5C, 0x7D86, 0xDF58, 0x7D88, 0xDF57, - 0x7D8C, 0xDF62, 0x7D8D, 0xDF5A, 0x7D8E, 0xDF5E, 0x7D8F, 0xB86B, - 0x7D91, 0xB869, 0x7D92, 0xDF66, 0x7D93, 0xB867, 0x7D94, 0xDF63, - 0x7D96, 0xE372, 0x7D9C, 0xBAEE, 0x7D9D, 0xE36A, 0x7D9E, 0xBD78, - 0x7D9F, 0xE374, 0x7DA0, 0xBAF1, 0x7DA1, 0xE378, 0x7DA2, 0xBAF7, - 0x7DA3, 0xE365, 0x7DA6, 0xE375, 0x7DA7, 0xE362, 0x7DA9, 0xE377, - 0x7DAA, 0xE366, 0x7DAC, 0xBAFE, 0x7DAD, 0xBAFB, 0x7DAE, 0xE376, - 0x7DAF, 0xE370, 0x7DB0, 0xBAED, 0x7DB1, 0xBAF5, 0x7DB2, 0xBAF4, - 0x7DB4, 0xBAF3, 0x7DB5, 0xBAF9, 0x7DB7, 0xE363, 0x7DB8, 0xBAFA, - 0x7DB9, 0xE371, 0x7DBA, 0xBAF6, 0x7DBB, 0xBAEC, 0x7DBC, 0xE373, - 0x7DBD, 0xBAEF, 0x7DBE, 0xBAF0, 0x7DBF, 0xBAF8, 0x7DC0, 0xE368, - 0x7DC1, 0xE367, 0x7DC2, 0xE364, 0x7DC4, 0xE36C, 0x7DC5, 0xE369, - 0x7DC6, 0xE36D, 0x7DC7, 0xBAFD, 0x7DC9, 0xE379, 0x7DCA, 0xBAF2, - 0x7DCB, 0xE36E, 0x7DCC, 0xE36F, 0x7DCE, 0xE36B, 0x7DD2, 0xBAFC, - 0x7DD7, 0xE6E7, 0x7DD8, 0xBD70, 0x7DD9, 0xBD79, 0x7DDA, 0xBD75, - 0x7DDB, 0xE6E4, 0x7DDD, 0xBD72, 0x7DDE, 0xBD76, 0x7DDF, 0xE6F0, - 0x7DE0, 0xBD6C, 0x7DE1, 0xE6E8, 0x7DE3, 0xBD74, 0x7DE6, 0xE6EB, - 0x7DE7, 0xE6E6, 0x7DE8, 0xBD73, 0x7DE9, 0xBD77, 0x7DEA, 0xE6E5, - 0x7DEC, 0xBD71, 0x7DEE, 0xE6EF, 0x7DEF, 0xBD6E, 0x7DF0, 0xE6EE, - 0x7DF1, 0xE6ED, 0x7DF2, 0xBD7A, 0x7DF3, 0xE572, 0x7DF4, 0xBD6D, - 0x7DF6, 0xE6EC, 0x7DF7, 0xE6E3, 0x7DF9, 0xBD7B, 0x7DFA, 0xE6EA, - 0x7DFB, 0xBD6F, 0x7E03, 0xE6E9, 0x7E08, 0xBFA2, 0x7E09, 0xBFA7, - 0x7E0A, 0xBF7E, 0x7E0B, 0xEAD8, 0x7E0C, 0xEACF, 0x7E0D, 0xEADB, - 0x7E0E, 0xEAD3, 0x7E0F, 0xEAD9, 0x7E10, 0xBFA8, 0x7E11, 0xBFA1, - 0x7E12, 0xEACC, 0x7E13, 0xEAD2, 0x7E14, 0xEADC, 0x7E15, 0xEAD5, - 0x7E16, 0xEADA, 0x7E17, 0xEACE, 0x7E1A, 0xEAD6, 0x7E1B, 0xBFA3, - 0x7E1C, 0xEAD4, 0x7E1D, 0xBFA6, 0x7E1E, 0xBFA5, 0x7E1F, 0xEAD0, - 0x7E20, 0xEAD1, 0x7E21, 0xEACD, 0x7E22, 0xEAD7, 0x7E23, 0xBFA4, - 0x7E24, 0xEADE, 0x7E25, 0xEADD, 0x7E29, 0xEDDA, 0x7E2A, 0xEDD6, - 0x7E2B, 0xC15F, 0x7E2D, 0xEDD0, 0x7E2E, 0xC159, 0x7E2F, 0xC169, - 0x7E30, 0xEDDC, 0x7E31, 0xC161, 0x7E32, 0xC15D, 0x7E33, 0xEDD3, - 0x7E34, 0xC164, 0x7E35, 0xC167, 0x7E36, 0xEDDE, 0x7E37, 0xC15C, - 0x7E38, 0xEDD5, 0x7E39, 0xC165, 0x7E3A, 0xEDE0, 0x7E3B, 0xEDDD, - 0x7E3C, 0xEDD1, 0x7E3D, 0xC160, 0x7E3E, 0xC15A, 0x7E3F, 0xC168, - 0x7E40, 0xEDD8, 0x7E41, 0xC163, 0x7E42, 0xEDD2, 0x7E43, 0xC15E, - 0x7E44, 0xEDDF, 0x7E45, 0xC162, 0x7E46, 0xC15B, 0x7E47, 0xEDD9, - 0x7E48, 0xC166, 0x7E49, 0xEDD7, 0x7E4C, 0xEDDB, 0x7E50, 0xF06E, - 0x7E51, 0xF074, 0x7E52, 0xC2B9, 0x7E53, 0xF077, 0x7E54, 0xC2B4, - 0x7E55, 0xC2B5, 0x7E56, 0xF06F, 0x7E57, 0xF076, 0x7E58, 0xF071, - 0x7E59, 0xC2BA, 0x7E5A, 0xC2B7, 0x7E5C, 0xF06D, 0x7E5E, 0xC2B6, - 0x7E5F, 0xF073, 0x7E60, 0xF075, 0x7E61, 0xC2B8, 0x7E62, 0xF072, - 0x7E63, 0xF070, 0x7E68, 0xF2B8, 0x7E69, 0xC3B7, 0x7E6A, 0xC3B8, - 0x7E6B, 0xC3B4, 0x7E6D, 0xC3B5, 0x7E6F, 0xF2B4, 0x7E70, 0xF2B2, - 0x7E72, 0xF2B6, 0x7E73, 0xC3BA, 0x7E74, 0xF2B7, 0x7E75, 0xF2B0, - 0x7E76, 0xF2AF, 0x7E77, 0xF2B3, 0x7E78, 0xF2B1, 0x7E79, 0xC3B6, - 0x7E7A, 0xF2B5, 0x7E7B, 0xF4AC, 0x7E7C, 0xC47E, 0x7E7D, 0xC47D, - 0x7E7E, 0xF4AD, 0x7E80, 0xF4AF, 0x7E81, 0xF4AE, 0x7E82, 0xC4A1, - 0x7E86, 0xF5EB, 0x7E87, 0xF5E8, 0x7E88, 0xF5E9, 0x7E8A, 0xF5E7, - 0x7E8B, 0xF5EA, 0x7E8C, 0xC4F2, 0x7E8D, 0xF5EC, 0x7E8F, 0xC4F1, - 0x7E91, 0xF742, 0x7E93, 0xC5D5, 0x7E94, 0xC5D7, 0x7E95, 0xF7EE, - 0x7E96, 0xC5D6, 0x7E97, 0xF8B9, 0x7E98, 0xF940, 0x7E99, 0xF942, - 0x7E9A, 0xF8FE, 0x7E9B, 0xF941, 0x7E9C, 0xC66C, 0x7F36, 0xA6CE, - 0x7F38, 0xACFB, 0x7F39, 0xD26F, 0x7F3A, 0xAFCA, 0x7F3D, 0xB2DA, - 0x7F3E, 0xDAFC, 0x7F3F, 0xDAFD, 0x7F43, 0xEADF, 0x7F44, 0xC16A, - 0x7F45, 0xEDE1, 0x7F48, 0xC2BB, 0x7F4A, 0xF2BA, 0x7F4B, 0xF2B9, - 0x7F4C, 0xC4A2, 0x7F4D, 0xF5ED, 0x7F4F, 0xF743, 0x7F50, 0xC5F8, - 0x7F51, 0xCA49, 0x7F54, 0xAAC9, 0x7F55, 0xA875, 0x7F58, 0xD04D, - 0x7F5B, 0xD360, 0x7F5C, 0xD35B, 0x7F5D, 0xD35F, 0x7F5E, 0xD35D, - 0x7F5F, 0xAFCB, 0x7F60, 0xD35E, 0x7F61, 0xD35C, 0x7F63, 0xD6F1, - 0x7F65, 0xDAFE, 0x7F66, 0xDB40, 0x7F67, 0xDF69, 0x7F68, 0xDF6A, - 0x7F69, 0xB86E, 0x7F6A, 0xB86F, 0x7F6B, 0xDF68, 0x7F6C, 0xDF6B, - 0x7F6D, 0xDF67, 0x7F6E, 0xB86D, 0x7F70, 0xBB40, 0x7F72, 0xB870, - 0x7F73, 0xE37A, 0x7F75, 0xBD7C, 0x7F76, 0xE6F1, 0x7F77, 0xBD7D, - 0x7F79, 0xBFA9, 0x7F7A, 0xEAE2, 0x7F7B, 0xEAE0, 0x7F7C, 0xEAE1, - 0x7F7D, 0xEDE4, 0x7F7E, 0xEDE3, 0x7F7F, 0xEDE2, 0x7F83, 0xF2BB, - 0x7F85, 0xC3B9, 0x7F86, 0xF2BC, 0x7F87, 0xF744, 0x7F88, 0xC5F9, - 0x7F89, 0xF8BA, 0x7F8A, 0xA6CF, 0x7F8B, 0xAACB, 0x7F8C, 0xAACA, - 0x7F8D, 0xD04F, 0x7F8E, 0xACFC, 0x7F91, 0xD04E, 0x7F92, 0xD362, - 0x7F94, 0xAFCC, 0x7F95, 0xD6F2, 0x7F96, 0xD361, 0x7F9A, 0xB2DC, - 0x7F9B, 0xD6F5, 0x7F9C, 0xD6F3, 0x7F9D, 0xD6F4, 0x7F9E, 0xB2DB, - 0x7FA0, 0xDB42, 0x7FA1, 0xDB43, 0x7FA2, 0xDB41, 0x7FA4, 0xB873, - 0x7FA5, 0xDF6D, 0x7FA6, 0xDF6C, 0x7FA7, 0xDF6E, 0x7FA8, 0xB872, - 0x7FA9, 0xB871, 0x7FAC, 0xE6F2, 0x7FAD, 0xE6F4, 0x7FAF, 0xBD7E, - 0x7FB0, 0xE6F3, 0x7FB1, 0xEAE3, 0x7FB2, 0xBFAA, 0x7FB3, 0xF079, - 0x7FB5, 0xF078, 0x7FB6, 0xC3BB, 0x7FB7, 0xF2BD, 0x7FB8, 0xC3BD, - 0x7FB9, 0xC3BC, 0x7FBA, 0xF4B0, 0x7FBB, 0xF5EE, 0x7FBC, 0xC4F3, - 0x7FBD, 0xA6D0, 0x7FBE, 0xD050, 0x7FBF, 0xACFD, 0x7FC0, 0xD365, - 0x7FC1, 0xAFCE, 0x7FC2, 0xD364, 0x7FC3, 0xD363, 0x7FC5, 0xAFCD, - 0x7FC7, 0xD6FB, 0x7FC9, 0xD6FD, 0x7FCA, 0xD6F6, 0x7FCB, 0xD6F7, - 0x7FCC, 0xB2DD, 0x7FCD, 0xD6F8, 0x7FCE, 0xB2DE, 0x7FCF, 0xD6FC, - 0x7FD0, 0xD6F9, 0x7FD1, 0xD6FA, 0x7FD2, 0xB2DF, 0x7FD4, 0xB5BE, - 0x7FD5, 0xB5BF, 0x7FD7, 0xDB44, 0x7FDB, 0xDF6F, 0x7FDC, 0xDF70, - 0x7FDE, 0xE37E, 0x7FDF, 0xBB43, 0x7FE0, 0xBB41, 0x7FE1, 0xBB42, - 0x7FE2, 0xE37B, 0x7FE3, 0xE37C, 0x7FE5, 0xE37D, 0x7FE6, 0xE6F9, - 0x7FE8, 0xE6FA, 0x7FE9, 0xBDA1, 0x7FEA, 0xE6F7, 0x7FEB, 0xE6F6, - 0x7FEC, 0xE6F8, 0x7FED, 0xE6F5, 0x7FEE, 0xBFAD, 0x7FEF, 0xEAE4, - 0x7FF0, 0xBFAB, 0x7FF1, 0xBFAC, 0x7FF2, 0xEDE6, 0x7FF3, 0xC16B, - 0x7FF4, 0xEDE5, 0x7FF5, 0xEFA8, 0x7FF7, 0xF07A, 0x7FF8, 0xF07B, - 0x7FF9, 0xC2BC, 0x7FFB, 0xC2BD, 0x7FFC, 0xC16C, 0x7FFD, 0xF2BE, - 0x7FFE, 0xF2BF, 0x7FFF, 0xF4B1, 0x8000, 0xC4A3, 0x8001, 0xA6D1, - 0x8003, 0xA6D2, 0x8004, 0xACFE, 0x8005, 0xAACC, 0x8006, 0xAFCF, - 0x8007, 0xD051, 0x800B, 0xB5C0, 0x800C, 0xA6D3, 0x800D, 0xAD41, - 0x800E, 0xD052, 0x800F, 0xD053, 0x8010, 0xAD40, 0x8011, 0xAD42, - 0x8012, 0xA6D4, 0x8014, 0xD054, 0x8015, 0xAFD1, 0x8016, 0xD366, - 0x8017, 0xAFD3, 0x8018, 0xAFD0, 0x8019, 0xAFD2, 0x801B, 0xD741, - 0x801C, 0xB2E0, 0x801E, 0xD740, 0x801F, 0xD6FE, 0x8021, 0xDF71, - 0x8024, 0xE3A1, 0x8026, 0xBDA2, 0x8028, 0xBFAE, 0x8029, 0xEAE6, - 0x802A, 0xEAE5, 0x802C, 0xEDE7, 0x8030, 0xF5EF, 0x8033, 0xA6D5, - 0x8034, 0xCB73, 0x8035, 0xCDAA, 0x8036, 0xAD43, 0x8037, 0xD055, - 0x8039, 0xD368, 0x803D, 0xAFD4, 0x803E, 0xD367, 0x803F, 0xAFD5, - 0x8043, 0xD743, 0x8046, 0xB2E2, 0x8047, 0xD742, 0x8048, 0xD744, - 0x804A, 0xB2E1, 0x804F, 0xDB46, 0x8050, 0xDB47, 0x8051, 0xDB45, - 0x8052, 0xB5C1, 0x8056, 0xB874, 0x8058, 0xB875, 0x805A, 0xBB45, - 0x805C, 0xE3A3, 0x805D, 0xE3A2, 0x805E, 0xBB44, 0x8064, 0xE6FB, - 0x8067, 0xE6FC, 0x806C, 0xEAE7, 0x806F, 0xC170, 0x8070, 0xC16F, - 0x8071, 0xC16D, 0x8072, 0xC16E, 0x8073, 0xC171, 0x8075, 0xF07C, - 0x8076, 0xC2BF, 0x8077, 0xC2BE, 0x8078, 0xF2C0, 0x8079, 0xF4B2, - 0x807D, 0xC5A5, 0x807E, 0xC5A4, 0x807F, 0xA6D6, 0x8082, 0xD1FB, - 0x8084, 0xB877, 0x8085, 0xB5C2, 0x8086, 0xB876, 0x8087, 0xBB46, - 0x8089, 0xA6D7, 0x808A, 0xC9A9, 0x808B, 0xA6D8, 0x808C, 0xA6D9, - 0x808F, 0xCDAB, 0x8090, 0xCB76, 0x8092, 0xCB77, 0x8093, 0xA877, - 0x8095, 0xCB74, 0x8096, 0xA876, 0x8098, 0xA879, 0x8099, 0xCB75, - 0x809A, 0xA87B, 0x809B, 0xA87A, 0x809C, 0xCB78, 0x809D, 0xA878, - 0x80A1, 0xAAD1, 0x80A2, 0xAACF, 0x80A3, 0xCDAD, 0x80A5, 0xAACE, - 0x80A9, 0xAAD3, 0x80AA, 0xAAD5, 0x80AB, 0xAAD2, 0x80AD, 0xCDB0, - 0x80AE, 0xCDAC, 0x80AF, 0xAAD6, 0x80B1, 0xAAD0, 0x80B2, 0xA87C, - 0x80B4, 0xAAD4, 0x80B5, 0xCDAF, 0x80B8, 0xCDAE, 0x80BA, 0xAACD, - 0x80C2, 0xD05B, 0x80C3, 0xAD47, 0x80C4, 0xAD48, 0x80C5, 0xD05D, - 0x80C7, 0xD057, 0x80C8, 0xD05A, 0x80C9, 0xD063, 0x80CA, 0xD061, - 0x80CC, 0xAD49, 0x80CD, 0xD067, 0x80CE, 0xAD4C, 0x80CF, 0xD064, - 0x80D0, 0xD05C, 0x80D1, 0xD059, 0x80D4, 0xDB49, 0x80D5, 0xD062, - 0x80D6, 0xAD44, 0x80D7, 0xD065, 0x80D8, 0xD056, 0x80D9, 0xD05F, - 0x80DA, 0xAD46, 0x80DB, 0xAD4B, 0x80DC, 0xD060, 0x80DD, 0xAD4F, - 0x80DE, 0xAD4D, 0x80E0, 0xD058, 0x80E1, 0xAD4A, 0x80E3, 0xD05E, - 0x80E4, 0xAD4E, 0x80E5, 0xAD45, 0x80E6, 0xD066, 0x80ED, 0xAFDA, - 0x80EF, 0xAFE3, 0x80F0, 0xAFD8, 0x80F1, 0xAFD6, 0x80F2, 0xD36A, - 0x80F3, 0xAFDE, 0x80F4, 0xAFDB, 0x80F5, 0xD36C, 0x80F8, 0xAFDD, - 0x80F9, 0xD36B, 0x80FA, 0xD369, 0x80FB, 0xD36E, 0x80FC, 0xAFE2, - 0x80FD, 0xAFE0, 0x80FE, 0xDB48, 0x8100, 0xD36F, 0x8101, 0xD36D, - 0x8102, 0xAFD7, 0x8105, 0xAFD9, 0x8106, 0xAFDC, 0x8108, 0xAFDF, - 0x810A, 0xAFE1, 0x8115, 0xD74E, 0x8116, 0xB2E4, 0x8118, 0xD745, - 0x8119, 0xD747, 0x811B, 0xD748, 0x811D, 0xD750, 0x811E, 0xD74C, - 0x811F, 0xD74A, 0x8121, 0xD74D, 0x8122, 0xD751, 0x8123, 0xB2E5, - 0x8124, 0xB2E9, 0x8125, 0xD746, 0x8127, 0xD74F, 0x8129, 0xB2E7, - 0x812B, 0xB2E6, 0x812C, 0xD74B, 0x812D, 0xD749, 0x812F, 0xB2E3, - 0x8130, 0xB2E8, 0x8139, 0xB5C8, 0x813A, 0xDB51, 0x813D, 0xDB4F, - 0x813E, 0xB5CA, 0x8143, 0xDB4A, 0x8144, 0xDFA1, 0x8146, 0xB5C9, - 0x8147, 0xDB4E, 0x814A, 0xDB4B, 0x814B, 0xB5C5, 0x814C, 0xB5CB, - 0x814D, 0xDB50, 0x814E, 0xB5C7, 0x814F, 0xDB4D, 0x8150, 0xBB47, - 0x8151, 0xB5C6, 0x8152, 0xDB4C, 0x8153, 0xB5CC, 0x8154, 0xB5C4, - 0x8155, 0xB5C3, 0x815B, 0xDF77, 0x815C, 0xDF75, 0x815E, 0xDF7B, - 0x8160, 0xDF73, 0x8161, 0xDFA2, 0x8162, 0xDF78, 0x8164, 0xDF72, - 0x8165, 0xB87B, 0x8166, 0xB8A3, 0x8167, 0xDF7D, 0x8169, 0xDF76, - 0x816B, 0xB87E, 0x816E, 0xB87C, 0x816F, 0xDF7E, 0x8170, 0xB879, - 0x8171, 0xB878, 0x8172, 0xDF79, 0x8173, 0xB87D, 0x8174, 0xB5CD, - 0x8176, 0xDF7C, 0x8177, 0xDF74, 0x8178, 0xB87A, 0x8179, 0xB8A1, - 0x817A, 0xB8A2, 0x817F, 0xBB4C, 0x8180, 0xBB48, 0x8182, 0xBB4D, - 0x8183, 0xE3A6, 0x8186, 0xE3A5, 0x8187, 0xE3A7, 0x8188, 0xBB4A, - 0x8189, 0xE3A4, 0x818A, 0xBB4B, 0x818B, 0xE3AA, 0x818C, 0xE3A9, - 0x818D, 0xE3A8, 0x818F, 0xBB49, 0x8195, 0xE741, 0x8197, 0xE744, - 0x8198, 0xBDA8, 0x8199, 0xE743, 0x819A, 0xBDA7, 0x819B, 0xBDA3, - 0x819C, 0xBDA4, 0x819D, 0xBDA5, 0x819E, 0xE740, 0x819F, 0xE6FE, - 0x81A0, 0xBDA6, 0x81A2, 0xE742, 0x81A3, 0xE6FD, 0x81A6, 0xEAE9, - 0x81A7, 0xEAF3, 0x81A8, 0xBFB1, 0x81A9, 0xBFB0, 0x81AB, 0xEAED, - 0x81AC, 0xEAEF, 0x81AE, 0xEAEA, 0x81B0, 0xEAEE, 0x81B1, 0xEAE8, - 0x81B2, 0xEAF1, 0x81B3, 0xBFAF, 0x81B4, 0xEAF0, 0x81B5, 0xEAEC, - 0x81B7, 0xEAF2, 0x81B9, 0xEAEB, 0x81BA, 0xC174, 0x81BB, 0xEDE8, - 0x81BC, 0xEDEE, 0x81BD, 0xC178, 0x81BE, 0xC17A, 0x81BF, 0xC177, - 0x81C0, 0xC176, 0x81C2, 0xC175, 0x81C3, 0xC173, 0x81C4, 0xEDE9, - 0x81C5, 0xEDEC, 0x81C6, 0xC172, 0x81C7, 0xEDED, 0x81C9, 0xC179, - 0x81CA, 0xEDEB, 0x81CC, 0xEDEA, 0x81CD, 0xC2C0, 0x81CF, 0xC2C1, - 0x81D0, 0xF0A1, 0x81D1, 0xF07D, 0x81D2, 0xF07E, 0x81D5, 0xF2C2, - 0x81D7, 0xF2C1, 0x81D8, 0xC3BE, 0x81D9, 0xF4B4, 0x81DA, 0xC4A4, - 0x81DB, 0xF4B3, 0x81DD, 0xF5F0, 0x81DE, 0xF745, 0x81DF, 0xC5A6, - 0x81E0, 0xF943, 0x81E1, 0xF944, 0x81E2, 0xC5D8, 0x81E3, 0xA6DA, - 0x81E5, 0xAAD7, 0x81E6, 0xDB52, 0x81E7, 0xBB4E, 0x81E8, 0xC17B, - 0x81E9, 0xEDEF, 0x81EA, 0xA6DB, 0x81EC, 0xAFE5, 0x81ED, 0xAFE4, - 0x81EE, 0xDB53, 0x81F2, 0xEAF4, 0x81F3, 0xA6DC, 0x81F4, 0xAD50, - 0x81F7, 0xDB54, 0x81F8, 0xDB55, 0x81F9, 0xDB56, 0x81FA, 0xBB4F, - 0x81FB, 0xBFB2, 0x81FC, 0xA6DD, 0x81FE, 0xAAD8, 0x81FF, 0xD068, - 0x8200, 0xAFE6, 0x8201, 0xD370, 0x8202, 0xB2EA, 0x8204, 0xDB57, - 0x8205, 0xB8A4, 0x8207, 0xBB50, 0x8208, 0xBFB3, 0x8209, 0xC17C, - 0x820A, 0xC2C2, 0x820B, 0xF4B5, 0x820C, 0xA6DE, 0x820D, 0xAAD9, - 0x8210, 0xAFE7, 0x8211, 0xD752, 0x8212, 0xB5CE, 0x8214, 0xBB51, - 0x8215, 0xE3AB, 0x8216, 0xE745, 0x821B, 0xA6DF, 0x821C, 0xB5CF, - 0x821D, 0xDFA3, 0x821E, 0xBB52, 0x821F, 0xA6E0, 0x8220, 0xCDB1, - 0x8221, 0xD069, 0x8222, 0xAD51, 0x8225, 0xD372, 0x8228, 0xAFEA, - 0x822A, 0xAFE8, 0x822B, 0xAFE9, 0x822C, 0xAFEB, 0x822F, 0xD371, - 0x8232, 0xD757, 0x8233, 0xD754, 0x8234, 0xD756, 0x8235, 0xB2EB, - 0x8236, 0xB2ED, 0x8237, 0xB2EC, 0x8238, 0xD753, 0x8239, 0xB2EE, - 0x823A, 0xD755, 0x823C, 0xDB58, 0x823D, 0xDB59, 0x823F, 0xDB5A, - 0x8240, 0xDFA6, 0x8242, 0xDFA7, 0x8244, 0xDFA5, 0x8245, 0xDFA8, - 0x8247, 0xB8A5, 0x8249, 0xDFA4, 0x824B, 0xBB53, 0x824E, 0xE74A, - 0x824F, 0xE746, 0x8250, 0xE749, 0x8251, 0xE74B, 0x8252, 0xE748, - 0x8253, 0xE747, 0x8255, 0xEAF5, 0x8256, 0xEAF6, 0x8257, 0xEAF7, - 0x8258, 0xBFB4, 0x8259, 0xBFB5, 0x825A, 0xEDF1, 0x825B, 0xEDF0, - 0x825C, 0xEDF2, 0x825E, 0xF0A3, 0x825F, 0xF0A2, 0x8261, 0xF2C4, - 0x8263, 0xF2C5, 0x8264, 0xF2C3, 0x8266, 0xC4A5, 0x8268, 0xF4B6, - 0x8269, 0xF4B7, 0x826B, 0xF746, 0x826C, 0xF7EF, 0x826D, 0xF8BB, - 0x826E, 0xA6E1, 0x826F, 0xA87D, 0x8271, 0xC17D, 0x8272, 0xA6E2, - 0x8274, 0xD758, 0x8275, 0xDB5B, 0x8277, 0xC641, 0x8278, 0xCA4A, - 0x827C, 0xCA4B, 0x827D, 0xCA4D, 0x827E, 0xA6E3, 0x827F, 0xCA4E, - 0x8280, 0xCA4C, 0x8283, 0xCBA2, 0x8284, 0xCBA3, 0x8285, 0xCB7B, - 0x828A, 0xCBA1, 0x828B, 0xA8A1, 0x828D, 0xA8A2, 0x828E, 0xCB7C, - 0x828F, 0xCB7A, 0x8290, 0xCB79, 0x8291, 0xCB7D, 0x8292, 0xA87E, - 0x8293, 0xCB7E, 0x8294, 0xD06A, 0x8298, 0xCDB6, 0x8299, 0xAADC, - 0x829A, 0xCDB5, 0x829B, 0xCDB7, 0x829D, 0xAADB, 0x829E, 0xCDBC, - 0x829F, 0xAADF, 0x82A0, 0xCDB2, 0x82A1, 0xCDC0, 0x82A2, 0xCDC6, - 0x82A3, 0xAAE6, 0x82A4, 0xCDC3, 0x82A5, 0xAAE3, 0x82A7, 0xCDB9, - 0x82A8, 0xCDBF, 0x82A9, 0xCDC1, 0x82AB, 0xCDB4, 0x82AC, 0xAAE2, - 0x82AD, 0xAADD, 0x82AE, 0xCDBA, 0x82AF, 0xAAE4, 0x82B0, 0xAAE7, - 0x82B1, 0xAAE1, 0x82B3, 0xAADA, 0x82B4, 0xCDBE, 0x82B5, 0xCDB8, - 0x82B6, 0xCDC5, 0x82B7, 0xAAE9, 0x82B8, 0xAAE5, 0x82B9, 0xAAE0, - 0x82BA, 0xCDBD, 0x82BB, 0xAFEC, 0x82BC, 0xCDBB, 0x82BD, 0xAADE, - 0x82BE, 0xAAE8, 0x82C0, 0xCDB3, 0x82C2, 0xCDC2, 0x82C3, 0xCDC4, - 0x82D1, 0xAD62, 0x82D2, 0xAD5C, 0x82D3, 0xAD64, 0x82D4, 0xAD61, - 0x82D5, 0xD071, 0x82D6, 0xD074, 0x82D7, 0xAD5D, 0x82D9, 0xD06B, - 0x82DB, 0xAD56, 0x82DC, 0xAD60, 0x82DE, 0xAD63, 0x82DF, 0xAD65, - 0x82E0, 0xD0A2, 0x82E1, 0xD077, 0x82E3, 0xAD55, 0x82E4, 0xD0A1, - 0x82E5, 0xAD59, 0x82E6, 0xAD57, 0x82E7, 0xAD52, 0x82E8, 0xD06F, - 0x82EA, 0xD07E, 0x82EB, 0xD073, 0x82EC, 0xD076, 0x82ED, 0xD0A5, - 0x82EF, 0xAD66, 0x82F0, 0xD07D, 0x82F1, 0xAD5E, 0x82F2, 0xD078, - 0x82F3, 0xD0A4, 0x82F4, 0xD075, 0x82F5, 0xD079, 0x82F6, 0xD07C, - 0x82F9, 0xD06D, 0x82FA, 0xD0A3, 0x82FB, 0xD07B, 0x82FE, 0xD06C, - 0x8300, 0xD070, 0x8301, 0xAD5F, 0x8302, 0xAD5A, 0x8303, 0xAD53, - 0x8304, 0xAD58, 0x8305, 0xAD54, 0x8306, 0xAD67, 0x8307, 0xD06E, - 0x8308, 0xD3A5, 0x8309, 0xAD5B, 0x830C, 0xD07A, 0x830D, 0xCE41, - 0x8316, 0xD3A8, 0x8317, 0xAFFA, 0x8319, 0xD376, 0x831B, 0xD3A3, - 0x831C, 0xD37D, 0x831E, 0xD3B2, 0x8320, 0xD3AA, 0x8322, 0xD37E, - 0x8324, 0xD3A9, 0x8325, 0xD378, 0x8326, 0xD37C, 0x8327, 0xD3B5, - 0x8328, 0xAFFD, 0x8329, 0xD3AD, 0x832A, 0xD3A4, 0x832B, 0xAFED, - 0x832C, 0xD3B3, 0x832D, 0xD374, 0x832F, 0xD3AC, 0x8331, 0xAFFC, - 0x8332, 0xAFF7, 0x8333, 0xD373, 0x8334, 0xAFF5, 0x8335, 0xAFF4, - 0x8336, 0xAFF9, 0x8337, 0xD3AB, 0x8338, 0xAFF1, 0x8339, 0xAFF8, - 0x833A, 0xD072, 0x833B, 0xDB5C, 0x833C, 0xD3A6, 0x833F, 0xD37A, - 0x8340, 0xAFFB, 0x8341, 0xD37B, 0x8342, 0xD3A1, 0x8343, 0xAFFE, - 0x8344, 0xD375, 0x8345, 0xD3AF, 0x8347, 0xD3AE, 0x8348, 0xD3B6, - 0x8349, 0xAFF3, 0x834A, 0xAFF0, 0x834B, 0xD3B4, 0x834C, 0xD3B0, - 0x834D, 0xD3A7, 0x834E, 0xD3A2, 0x834F, 0xAFF6, 0x8350, 0xAFF2, - 0x8351, 0xD377, 0x8352, 0xAFEE, 0x8353, 0xD3B1, 0x8354, 0xAFEF, - 0x8356, 0xD379, 0x8373, 0xD75E, 0x8374, 0xD760, 0x8375, 0xD765, - 0x8376, 0xD779, 0x8377, 0xB2FC, 0x8378, 0xB2F2, 0x837A, 0xD75D, - 0x837B, 0xB2FD, 0x837C, 0xB2FE, 0x837D, 0xD768, 0x837E, 0xD76F, - 0x837F, 0xD775, 0x8381, 0xD762, 0x8383, 0xD769, 0x8386, 0xB340, - 0x8387, 0xD777, 0x8388, 0xD772, 0x8389, 0xB2FA, 0x838A, 0xB2F8, - 0x838B, 0xD76E, 0x838C, 0xD76A, 0x838D, 0xD75C, 0x838E, 0xB2EF, - 0x838F, 0xD761, 0x8390, 0xD759, 0x8392, 0xB2F7, 0x8393, 0xB2F9, - 0x8394, 0xD766, 0x8395, 0xD763, 0x8396, 0xB2F4, 0x8397, 0xD773, - 0x8398, 0xB2F1, 0x8399, 0xD764, 0x839A, 0xD77A, 0x839B, 0xD76C, - 0x839D, 0xD76B, 0x839E, 0xB2F0, 0x83A0, 0xB2FB, 0x83A2, 0xB2F3, - 0x83A3, 0xD75A, 0x83A4, 0xD75F, 0x83A5, 0xD770, 0x83A6, 0xD776, - 0x83A7, 0xB341, 0x83A8, 0xD75B, 0x83A9, 0xD767, 0x83AA, 0xD76D, - 0x83AB, 0xB2F6, 0x83AE, 0xD778, 0x83AF, 0xD771, 0x83B0, 0xD774, - 0x83BD, 0xB2F5, 0x83BF, 0xDB6C, 0x83C0, 0xDB60, 0x83C1, 0xB5D7, - 0x83C2, 0xDB7D, 0x83C3, 0xDBA7, 0x83C4, 0xDBAA, 0x83C5, 0xB5D5, - 0x83C6, 0xDB68, 0x83C7, 0xDBA3, 0x83C8, 0xDB69, 0x83C9, 0xDB77, - 0x83CA, 0xB5E2, 0x83CB, 0xDB73, 0x83CC, 0xB5DF, 0x83CE, 0xDB74, - 0x83CF, 0xDB5D, 0x83D1, 0xDBA4, 0x83D4, 0xB5E8, 0x83D5, 0xDBA1, - 0x83D6, 0xDB75, 0x83D7, 0xDBAC, 0x83D8, 0xDB70, 0x83D9, 0xDFC8, - 0x83DB, 0xDBAF, 0x83DC, 0xB5E6, 0x83DD, 0xDB6E, 0x83DE, 0xDB7A, - 0x83DF, 0xB5E9, 0x83E0, 0xB5D4, 0x83E1, 0xDB72, 0x83E2, 0xDBAD, - 0x83E3, 0xDB6B, 0x83E4, 0xDB64, 0x83E5, 0xDB6F, 0x83E7, 0xDB63, - 0x83E8, 0xDB61, 0x83E9, 0xB5D0, 0x83EA, 0xDBA5, 0x83EB, 0xDB6A, - 0x83EC, 0xDBA8, 0x83EE, 0xDBA9, 0x83EF, 0xB5D8, 0x83F0, 0xB5DD, - 0x83F1, 0xB5D9, 0x83F2, 0xB5E1, 0x83F3, 0xDB7E, 0x83F4, 0xB5DA, - 0x83F5, 0xDB76, 0x83F6, 0xDB66, 0x83F8, 0xB5D2, 0x83F9, 0xDB5E, - 0x83FA, 0xDBA2, 0x83FB, 0xDBAB, 0x83FC, 0xDB65, 0x83FD, 0xB5E0, - 0x83FE, 0xDBB0, 0x83FF, 0xDB71, 0x8401, 0xDB6D, 0x8403, 0xB5D1, - 0x8404, 0xB5E5, 0x8406, 0xDB7C, 0x8407, 0xB5E7, 0x8409, 0xDB78, - 0x840A, 0xB5DC, 0x840B, 0xB5D6, 0x840C, 0xB5DE, 0x840D, 0xB5D3, - 0x840E, 0xB5E4, 0x840F, 0xDB79, 0x8410, 0xDB67, 0x8411, 0xDB7B, - 0x8412, 0xDB62, 0x8413, 0xDBA6, 0x841B, 0xDBAE, 0x8423, 0xDB5F, - 0x8429, 0xDFC7, 0x842B, 0xDFDD, 0x842C, 0xB855, 0x842D, 0xDFCC, - 0x842F, 0xDFCA, 0x8430, 0xDFB5, 0x8431, 0xB8A9, 0x8432, 0xDFC5, - 0x8433, 0xDFD9, 0x8434, 0xDFC1, 0x8435, 0xB8B1, 0x8436, 0xDFD8, - 0x8437, 0xDFBF, 0x8438, 0xB5E3, 0x8439, 0xDFCF, 0x843A, 0xDFC0, - 0x843B, 0xDFD6, 0x843C, 0xB8B0, 0x843D, 0xB8A8, 0x843F, 0xDFAA, - 0x8440, 0xDFB2, 0x8442, 0xDFCB, 0x8443, 0xDFC3, 0x8444, 0xDFDC, - 0x8445, 0xDFC6, 0x8446, 0xB8B6, 0x8447, 0xDFD7, 0x8449, 0xB8AD, - 0x844B, 0xDFC9, 0x844C, 0xDFD1, 0x844D, 0xDFB6, 0x844E, 0xDFD0, - 0x8450, 0xDFE1, 0x8451, 0xDFB1, 0x8452, 0xDFD2, 0x8454, 0xDFDF, - 0x8456, 0xDFAB, 0x8457, 0xB5DB, 0x8459, 0xDFB9, 0x845A, 0xDFB8, - 0x845B, 0xB8AF, 0x845D, 0xDFBC, 0x845E, 0xDFBE, 0x845F, 0xDFCD, - 0x8460, 0xDFDE, 0x8461, 0xB8B2, 0x8463, 0xB8B3, 0x8465, 0xDFB0, - 0x8466, 0xB8AB, 0x8467, 0xDFB4, 0x8468, 0xDFDA, 0x8469, 0xB8B4, - 0x846B, 0xB8AC, 0x846C, 0xB8AE, 0x846D, 0xB8B5, 0x846E, 0xDFE0, - 0x846F, 0xDFD3, 0x8470, 0xDFCE, 0x8473, 0xDFBB, 0x8474, 0xDFBA, - 0x8475, 0xB8AA, 0x8476, 0xDFAC, 0x8477, 0xB8A7, 0x8478, 0xDFC4, - 0x8479, 0xDFAD, 0x847A, 0xDFC2, 0x847D, 0xDFB7, 0x847E, 0xDFDB, - 0x8482, 0xB8A6, 0x8486, 0xDFB3, 0x848D, 0xDFAF, 0x848E, 0xDFD5, - 0x848F, 0xDFAE, 0x8490, 0xBB60, 0x8491, 0xE3D3, 0x8494, 0xE3C2, - 0x8497, 0xE3AC, 0x8498, 0xE3CA, 0x8499, 0xBB58, 0x849A, 0xE3BB, - 0x849B, 0xE3C5, 0x849C, 0xBB5B, 0x849D, 0xE3BE, 0x849E, 0xBB59, - 0x849F, 0xE3AF, 0x84A0, 0xE3CD, 0x84A1, 0xE3AE, 0x84A2, 0xE3C1, - 0x84A4, 0xE3AD, 0x84A7, 0xE3BF, 0x84A8, 0xE3C8, 0x84A9, 0xE3C6, - 0x84AA, 0xE3BA, 0x84AB, 0xE3B5, 0x84AC, 0xE3B3, 0x84AE, 0xE3B4, - 0x84AF, 0xE3C7, 0x84B0, 0xE3D2, 0x84B1, 0xE3BC, 0x84B2, 0xBB5A, - 0x84B4, 0xE3B7, 0x84B6, 0xE3CB, 0x84B8, 0xBB5D, 0x84B9, 0xE3B6, - 0x84BA, 0xE3B0, 0x84BB, 0xE3C0, 0x84BC, 0xBB61, 0x84BF, 0xBB55, - 0x84C0, 0xBB5E, 0x84C1, 0xE3B8, 0x84C2, 0xE3B2, 0x84C4, 0xBB57, - 0x84C5, 0xDFD4, 0x84C6, 0xBB56, 0x84C7, 0xE3C3, 0x84C9, 0xBB54, - 0x84CA, 0xBB63, 0x84CB, 0xBB5C, 0x84CC, 0xE3C4, 0x84CD, 0xE3B9, - 0x84CE, 0xE3B1, 0x84CF, 0xE3CC, 0x84D0, 0xE3BD, 0x84D1, 0xBB62, - 0x84D2, 0xE3D0, 0x84D3, 0xBB5F, 0x84D4, 0xE3CF, 0x84D6, 0xE3C9, - 0x84D7, 0xE3CE, 0x84DB, 0xE3D1, 0x84E7, 0xE773, 0x84E8, 0xE774, - 0x84E9, 0xE767, 0x84EA, 0xE766, 0x84EB, 0xE762, 0x84EC, 0xBDB4, - 0x84EE, 0xBDAC, 0x84EF, 0xE776, 0x84F0, 0xE775, 0x84F1, 0xDFA9, - 0x84F2, 0xE75F, 0x84F3, 0xE763, 0x84F4, 0xE75D, 0x84F6, 0xE770, - 0x84F7, 0xE761, 0x84F9, 0xE777, 0x84FA, 0xE75A, 0x84FB, 0xE758, - 0x84FC, 0xE764, 0x84FD, 0xE76E, 0x84FE, 0xE769, 0x84FF, 0xBDB6, - 0x8500, 0xE74F, 0x8502, 0xE76D, 0x8506, 0xBDB7, 0x8507, 0xDFBD, - 0x8508, 0xE75B, 0x8509, 0xE752, 0x850A, 0xE755, 0x850B, 0xE77B, - 0x850C, 0xE75C, 0x850D, 0xE753, 0x850E, 0xE751, 0x850F, 0xE74E, - 0x8511, 0xBDB0, 0x8512, 0xE765, 0x8513, 0xBDAF, 0x8514, 0xBDB3, - 0x8515, 0xE760, 0x8516, 0xE768, 0x8517, 0xBDA9, 0x8518, 0xE778, - 0x8519, 0xE77C, 0x851A, 0xBDAB, 0x851C, 0xE757, 0x851D, 0xE76B, - 0x851E, 0xE76F, 0x851F, 0xE754, 0x8520, 0xE779, 0x8521, 0xBDB2, - 0x8523, 0xBDB1, 0x8524, 0xE74C, 0x8525, 0xBDB5, 0x8526, 0xE772, - 0x8527, 0xE756, 0x8528, 0xE76A, 0x8529, 0xE750, 0x852A, 0xE75E, - 0x852B, 0xE759, 0x852C, 0xBDAD, 0x852D, 0xBDAE, 0x852E, 0xE76C, - 0x852F, 0xE77D, 0x8530, 0xE77A, 0x8531, 0xE771, 0x853B, 0xE74D, - 0x853D, 0xBDAA, 0x853E, 0xEB49, 0x8540, 0xEB40, 0x8541, 0xEB43, - 0x8543, 0xBFBB, 0x8544, 0xEB45, 0x8545, 0xEAF9, 0x8546, 0xEB41, - 0x8547, 0xEB47, 0x8548, 0xBFB8, 0x8549, 0xBFBC, 0x854A, 0xBFB6, - 0x854D, 0xEAFB, 0x854E, 0xEB4C, 0x8551, 0xEB46, 0x8553, 0xEAFC, - 0x8554, 0xEB55, 0x8555, 0xEB4F, 0x8556, 0xEAF8, 0x8557, 0xEE46, - 0x8558, 0xEAFE, 0x8559, 0xBFB7, 0x855B, 0xEB4A, 0x855D, 0xEB54, - 0x855E, 0xBFBF, 0x8560, 0xEB51, 0x8561, 0xEAFD, 0x8562, 0xEB44, - 0x8563, 0xEB48, 0x8564, 0xEB42, 0x8565, 0xEB56, 0x8566, 0xEB53, - 0x8567, 0xEB50, 0x8568, 0xBFB9, 0x8569, 0xBFBA, 0x856A, 0xBFBE, - 0x856B, 0xEAFA, 0x856C, 0xEB57, 0x856D, 0xBFBD, 0x856E, 0xEB4D, - 0x8571, 0xEB4B, 0x8575, 0xEB4E, 0x8576, 0xEE53, 0x8577, 0xEE40, - 0x8578, 0xEE45, 0x8579, 0xEE52, 0x857A, 0xEE44, 0x857B, 0xEDFB, - 0x857C, 0xEE41, 0x857E, 0xC1A2, 0x8580, 0xEDF4, 0x8581, 0xEE4D, - 0x8582, 0xEE4F, 0x8583, 0xEDF3, 0x8584, 0xC1A1, 0x8585, 0xEE51, - 0x8586, 0xEE49, 0x8587, 0xC1A8, 0x8588, 0xEE50, 0x8589, 0xEE42, - 0x858A, 0xC1AA, 0x858B, 0xEDF9, 0x858C, 0xEB52, 0x858D, 0xEE4A, - 0x858E, 0xEE47, 0x858F, 0xEDF5, 0x8590, 0xEE55, 0x8591, 0xC1A4, - 0x8594, 0xC1A5, 0x8595, 0xEDF7, 0x8596, 0xEE48, 0x8598, 0xEE54, - 0x8599, 0xEE4B, 0x859A, 0xEDFD, 0x859B, 0xC1A7, 0x859C, 0xC1A3, - 0x859D, 0xEE4C, 0x859E, 0xEDFE, 0x859F, 0xEE56, 0x85A0, 0xEDF8, - 0x85A1, 0xEE43, 0x85A2, 0xEE4E, 0x85A3, 0xEDFA, 0x85A4, 0xEDFC, - 0x85A6, 0xC2CB, 0x85A7, 0xEDF6, 0x85A8, 0xC1A9, 0x85A9, 0xC2C4, - 0x85AA, 0xC17E, 0x85AF, 0xC1A6, 0x85B0, 0xC2C8, 0x85B1, 0xF0B3, - 0x85B3, 0xF0A9, 0x85B4, 0xF0A4, 0x85B5, 0xF0AA, 0x85B6, 0xF0B4, - 0x85B7, 0xF0B8, 0x85B8, 0xF0B7, 0x85B9, 0xC2CA, 0x85BA, 0xC2C9, - 0x85BD, 0xF0AB, 0x85BE, 0xF0B9, 0x85BF, 0xF0AE, 0x85C0, 0xF0A6, - 0x85C2, 0xF0A8, 0x85C3, 0xF0A7, 0x85C4, 0xF0AD, 0x85C5, 0xF0B2, - 0x85C6, 0xF0A5, 0x85C7, 0xF0AC, 0x85C8, 0xF0B1, 0x85C9, 0xC2C7, - 0x85CB, 0xF0AF, 0x85CD, 0xC2C5, 0x85CE, 0xF0B0, 0x85CF, 0xC2C3, - 0x85D0, 0xC2C6, 0x85D1, 0xF2D5, 0x85D2, 0xF0B5, 0x85D5, 0xC3C2, - 0x85D7, 0xF2CD, 0x85D8, 0xF2D1, 0x85D9, 0xF2C9, 0x85DA, 0xF2CC, - 0x85DC, 0xF2D4, 0x85DD, 0xC3C0, 0x85DE, 0xF2D9, 0x85DF, 0xF2D2, - 0x85E1, 0xF2CA, 0x85E2, 0xF2DA, 0x85E3, 0xF2D3, 0x85E4, 0xC3C3, - 0x85E5, 0xC3C4, 0x85E6, 0xF2D7, 0x85E8, 0xF2CB, 0x85E9, 0xC3BF, - 0x85EA, 0xC3C1, 0x85EB, 0xF2C6, 0x85EC, 0xF2CE, 0x85ED, 0xF2C8, - 0x85EF, 0xF2D8, 0x85F0, 0xF2D6, 0x85F1, 0xF2C7, 0x85F2, 0xF2CF, - 0x85F6, 0xF4BE, 0x85F7, 0xC3C5, 0x85F8, 0xF2D0, 0x85F9, 0xC4A7, - 0x85FA, 0xC4A9, 0x85FB, 0xC4A6, 0x85FD, 0xF4C3, 0x85FE, 0xF4BB, - 0x85FF, 0xF4B9, 0x8600, 0xF4BD, 0x8601, 0xF4BA, 0x8604, 0xF4BF, - 0x8605, 0xF4C1, 0x8606, 0xC4AA, 0x8607, 0xC4AC, 0x8609, 0xF4C0, - 0x860A, 0xC4AD, 0x860B, 0xC4AB, 0x860C, 0xF4C2, 0x8611, 0xC4A8, - 0x8617, 0xC4F4, 0x8618, 0xF5F1, 0x8619, 0xF5F7, 0x861A, 0xC4F6, - 0x861B, 0xF4BC, 0x861C, 0xF5F6, 0x861E, 0xF5FD, 0x861F, 0xF5F4, - 0x8620, 0xF5FB, 0x8621, 0xF5FA, 0x8622, 0xF4B8, 0x8623, 0xF5F5, - 0x8624, 0xF0B6, 0x8625, 0xF5FE, 0x8626, 0xF5F3, 0x8627, 0xF5F8, - 0x8629, 0xF5FC, 0x862A, 0xF5F2, 0x862C, 0xF74A, 0x862D, 0xC4F5, - 0x862E, 0xF5F9, 0x8631, 0xF7F4, 0x8632, 0xF74B, 0x8633, 0xF749, - 0x8634, 0xF747, 0x8635, 0xF748, 0x8636, 0xF74C, 0x8638, 0xC5D9, - 0x8639, 0xF7F2, 0x863A, 0xF7F0, 0x863B, 0xF7F5, 0x863C, 0xF7F3, - 0x863E, 0xF7F6, 0x863F, 0xC5DA, 0x8640, 0xF7F1, 0x8643, 0xF8BC, - 0x8646, 0xF945, 0x8647, 0xF946, 0x8648, 0xF947, 0x864B, 0xF9C7, - 0x864C, 0xF9BD, 0x864D, 0xCA4F, 0x864E, 0xAAEA, 0x8650, 0xAD68, - 0x8652, 0xD3B8, 0x8653, 0xD3B7, 0x8654, 0xB040, 0x8655, 0xB342, - 0x8656, 0xD77C, 0x8659, 0xD77B, 0x865B, 0xB5EA, 0x865C, 0xB8B8, - 0x865E, 0xB8B7, 0x865F, 0xB8B9, 0x8661, 0xE3D4, 0x8662, 0xE77E, - 0x8663, 0xEB58, 0x8664, 0xEB5A, 0x8665, 0xEB59, 0x8667, 0xC1AB, - 0x8668, 0xEE57, 0x8669, 0xF0BA, 0x866A, 0xF9A5, 0x866B, 0xA6E4, - 0x866D, 0xCDC9, 0x866E, 0xCDCA, 0x866F, 0xCDC8, 0x8670, 0xCDC7, - 0x8671, 0xAAEB, 0x8673, 0xD0A9, 0x8674, 0xD0A7, 0x8677, 0xD0A6, - 0x8679, 0xAD69, 0x867A, 0xAD6B, 0x867B, 0xAD6A, 0x867C, 0xD0A8, - 0x8685, 0xD3C4, 0x8686, 0xD3C1, 0x8687, 0xD3BF, 0x868A, 0xB041, - 0x868B, 0xD3C2, 0x868C, 0xB046, 0x868D, 0xD3BC, 0x868E, 0xD3CB, - 0x8690, 0xD3CD, 0x8691, 0xD3BD, 0x8693, 0xB043, 0x8694, 0xD3CE, - 0x8695, 0xD3C9, 0x8696, 0xD3BB, 0x8697, 0xD3C0, 0x8698, 0xD3CA, - 0x8699, 0xD3C6, 0x869A, 0xD3C3, 0x869C, 0xB048, 0x869D, 0xD3CC, - 0x869E, 0xD3BE, 0x86A1, 0xD3C7, 0x86A2, 0xD3B9, 0x86A3, 0xB047, - 0x86A4, 0xB044, 0x86A5, 0xD3C5, 0x86A7, 0xD3C8, 0x86A8, 0xD3BA, - 0x86A9, 0xB045, 0x86AA, 0xB042, 0x86AF, 0xB34C, 0x86B0, 0xD7A5, - 0x86B1, 0xB34B, 0x86B3, 0xD7A8, 0x86B4, 0xD7AB, 0x86B5, 0xB348, - 0x86B6, 0xB346, 0x86B7, 0xD77E, 0x86B8, 0xD7A9, 0x86B9, 0xD7A7, - 0x86BA, 0xD7A4, 0x86BB, 0xD7AC, 0x86BC, 0xD7AD, 0x86BD, 0xD7AF, - 0x86BE, 0xD7B0, 0x86BF, 0xD77D, 0x86C0, 0xB345, 0x86C1, 0xD7A2, - 0x86C2, 0xD7A1, 0x86C3, 0xD7AE, 0x86C4, 0xB347, 0x86C5, 0xD7A3, - 0x86C6, 0xB349, 0x86C7, 0xB344, 0x86C8, 0xD7A6, 0x86C9, 0xB34D, - 0x86CB, 0xB34A, 0x86CC, 0xD7AA, 0x86D0, 0xB5F1, 0x86D1, 0xDBBF, - 0x86D3, 0xDBB4, 0x86D4, 0xB5EE, 0x86D6, 0xDFE7, 0x86D7, 0xDBBD, - 0x86D8, 0xDBB1, 0x86D9, 0xB5EC, 0x86DA, 0xDBB6, 0x86DB, 0xB5EF, - 0x86DC, 0xDBBA, 0x86DD, 0xDBB8, 0x86DE, 0xB5F2, 0x86DF, 0xB5EB, - 0x86E2, 0xDBB2, 0x86E3, 0xDBB5, 0x86E4, 0xB5F0, 0x86E6, 0xDBB3, - 0x86E8, 0xDBBE, 0x86E9, 0xDBBC, 0x86EA, 0xDBB7, 0x86EB, 0xDBB9, - 0x86EC, 0xDBBB, 0x86ED, 0xB5ED, 0x86F5, 0xDFE8, 0x86F6, 0xDFEE, - 0x86F7, 0xDFE4, 0x86F8, 0xDFEA, 0x86F9, 0xB8BA, 0x86FA, 0xDFE6, - 0x86FB, 0xB8C0, 0x86FE, 0xB8BF, 0x8700, 0xB8BE, 0x8701, 0xDFED, - 0x8702, 0xB8C1, 0x8703, 0xB8C2, 0x8704, 0xDFE3, 0x8705, 0xDFF0, - 0x8706, 0xB8C3, 0x8707, 0xB8BD, 0x8708, 0xB8BC, 0x8709, 0xDFEC, - 0x870A, 0xB8C4, 0x870B, 0xDFE2, 0x870C, 0xDFE5, 0x870D, 0xDFEF, - 0x870E, 0xDFEB, 0x8711, 0xE3F4, 0x8712, 0xE3E9, 0x8713, 0xB8BB, - 0x8718, 0xBB6A, 0x8719, 0xE3DD, 0x871A, 0xE3F2, 0x871B, 0xE3DE, - 0x871C, 0xBB65, 0x871E, 0xE3DB, 0x8720, 0xE3E4, 0x8721, 0xE3DC, - 0x8722, 0xBB67, 0x8723, 0xE3D6, 0x8724, 0xE3F1, 0x8725, 0xBB68, - 0x8726, 0xE3EE, 0x8727, 0xE3EF, 0x8728, 0xE3D7, 0x8729, 0xBB6D, - 0x872A, 0xE3E6, 0x872C, 0xE3E0, 0x872D, 0xE3E7, 0x872E, 0xE3DA, - 0x8730, 0xE3F3, 0x8731, 0xE3EB, 0x8732, 0xE3E5, 0x8733, 0xE3D5, - 0x8734, 0xBB69, 0x8735, 0xE3EC, 0x8737, 0xBB6C, 0x8738, 0xE3F0, - 0x873A, 0xE3EA, 0x873B, 0xBB66, 0x873C, 0xE3E8, 0x873E, 0xE3E2, - 0x873F, 0xBB64, 0x8740, 0xE3D9, 0x8741, 0xE3E1, 0x8742, 0xE3ED, - 0x8743, 0xE3DF, 0x8746, 0xE3E3, 0x874C, 0xBDC1, 0x874D, 0xDFE9, - 0x874E, 0xE7B2, 0x874F, 0xE7BB, 0x8750, 0xE7B1, 0x8751, 0xE7AD, - 0x8752, 0xE7AA, 0x8753, 0xBDC2, 0x8754, 0xE7A8, 0x8755, 0xBB6B, - 0x8756, 0xE7A1, 0x8757, 0xBDC0, 0x8758, 0xE7A7, 0x8759, 0xBDBF, - 0x875A, 0xE7AC, 0x875B, 0xE7A9, 0x875C, 0xE7B9, 0x875D, 0xE7B4, - 0x875E, 0xE7AE, 0x875F, 0xE7B3, 0x8760, 0xBDBB, 0x8761, 0xE7AB, - 0x8762, 0xE7BE, 0x8763, 0xE7A2, 0x8764, 0xE7A3, 0x8765, 0xE7BA, - 0x8766, 0xBDBC, 0x8767, 0xE7BF, 0x8768, 0xBDBE, 0x8769, 0xE7C0, - 0x876A, 0xE7B0, 0x876B, 0xE3D8, 0x876C, 0xE7B6, 0x876D, 0xE7AF, - 0x876E, 0xE7B8, 0x876F, 0xE7B5, 0x8773, 0xE7A6, 0x8774, 0xBDB9, - 0x8775, 0xE7BD, 0x8776, 0xBDBA, 0x8777, 0xE7A4, 0x8778, 0xBDBD, - 0x8779, 0xEB64, 0x877A, 0xE7B7, 0x877B, 0xE7BC, 0x8781, 0xEB61, - 0x8782, 0xBDB8, 0x8783, 0xBFC0, 0x8784, 0xEB6B, 0x8785, 0xEB67, - 0x8787, 0xEB65, 0x8788, 0xEB60, 0x8789, 0xEB6F, 0x878D, 0xBFC4, - 0x878F, 0xEB5C, 0x8790, 0xEB68, 0x8791, 0xEB69, 0x8792, 0xEB5F, - 0x8793, 0xEB5E, 0x8794, 0xEB6C, 0x8796, 0xEB62, 0x8797, 0xEB5D, - 0x8798, 0xEB63, 0x879A, 0xEB6E, 0x879B, 0xEB5B, 0x879C, 0xEB6D, - 0x879D, 0xEB6A, 0x879E, 0xBFC2, 0x879F, 0xBFC1, 0x87A2, 0xBFC3, - 0x87A3, 0xEB66, 0x87A4, 0xF0CB, 0x87AA, 0xEE59, 0x87AB, 0xC1B1, - 0x87AC, 0xEE5D, 0x87AD, 0xEE5A, 0x87AE, 0xEE61, 0x87AF, 0xEE67, - 0x87B0, 0xEE5C, 0x87B2, 0xEE70, 0x87B3, 0xC1AE, 0x87B4, 0xEE6A, - 0x87B5, 0xEE5F, 0x87B6, 0xEE6B, 0x87B7, 0xEE66, 0x87B8, 0xEE6D, - 0x87B9, 0xEE5E, 0x87BA, 0xC1B3, 0x87BB, 0xC1B2, 0x87BC, 0xEE60, - 0x87BD, 0xEE6E, 0x87BE, 0xEE58, 0x87BF, 0xEE6C, 0x87C0, 0xC1AC, - 0x87C2, 0xEE64, 0x87C3, 0xEE63, 0x87C4, 0xEE68, 0x87C5, 0xEE5B, - 0x87C6, 0xC1B0, 0x87C8, 0xC1B4, 0x87C9, 0xEE62, 0x87CA, 0xEE69, - 0x87CB, 0xC1B5, 0x87CC, 0xEE65, 0x87D1, 0xC1AD, 0x87D2, 0xC1AF, - 0x87D3, 0xF0C7, 0x87D4, 0xF0C5, 0x87D7, 0xF0CC, 0x87D8, 0xF0C9, - 0x87D9, 0xF0CD, 0x87DB, 0xF0BE, 0x87DC, 0xF0C6, 0x87DD, 0xF0D1, - 0x87DE, 0xEE6F, 0x87DF, 0xF0C2, 0x87E0, 0xC2CF, 0x87E1, 0xE7A5, - 0x87E2, 0xF0BD, 0x87E3, 0xF0CA, 0x87E4, 0xF0C4, 0x87E5, 0xF0C1, - 0x87E6, 0xF0BC, 0x87E7, 0xF0BB, 0x87E8, 0xF0D0, 0x87EA, 0xF0C0, - 0x87EB, 0xF0BF, 0x87EC, 0xC2CD, 0x87ED, 0xF0C8, 0x87EF, 0xC2CC, - 0x87F2, 0xC2CE, 0x87F3, 0xF0C3, 0x87F4, 0xF0CF, 0x87F6, 0xF2DE, - 0x87F7, 0xF2DF, 0x87F9, 0xC3C9, 0x87FA, 0xF2DC, 0x87FB, 0xC3C6, - 0x87FC, 0xF2E4, 0x87FE, 0xC3CA, 0x87FF, 0xF2E6, 0x8800, 0xF2DB, - 0x8801, 0xF0CE, 0x8802, 0xF2E8, 0x8803, 0xF2DD, 0x8805, 0xC3C7, - 0x8806, 0xF2E3, 0x8808, 0xF2E5, 0x8809, 0xF2E0, 0x880A, 0xF2E7, - 0x880B, 0xF2E2, 0x880C, 0xF2E1, 0x880D, 0xC3C8, 0x8810, 0xF4C5, - 0x8811, 0xF4C6, 0x8813, 0xF4C8, 0x8814, 0xC4AE, 0x8815, 0xC4AF, - 0x8816, 0xF4C9, 0x8817, 0xF4C7, 0x8819, 0xF4C4, 0x881B, 0xF642, - 0x881C, 0xF645, 0x881D, 0xF641, 0x881F, 0xC4FA, 0x8820, 0xF643, - 0x8821, 0xC4F9, 0x8822, 0xC4F8, 0x8823, 0xC4F7, 0x8824, 0xF644, - 0x8825, 0xF751, 0x8826, 0xF74F, 0x8828, 0xF74E, 0x8829, 0xF640, - 0x882A, 0xF750, 0x882B, 0xF646, 0x882C, 0xF74D, 0x882E, 0xF7F9, - 0x882F, 0xF7D7, 0x8830, 0xF7F7, 0x8831, 0xC5DB, 0x8832, 0xF7F8, - 0x8833, 0xF7FA, 0x8835, 0xF8BF, 0x8836, 0xC5FA, 0x8837, 0xF8BE, - 0x8838, 0xF8BD, 0x8839, 0xC5FB, 0x883B, 0xC65A, 0x883C, 0xF96E, - 0x883D, 0xF9A7, 0x883E, 0xF9A6, 0x883F, 0xF9A8, 0x8840, 0xA6E5, - 0x8841, 0xD0AA, 0x8843, 0xD3CF, 0x8844, 0xD3D0, 0x8848, 0xDBC0, - 0x884A, 0xF647, 0x884B, 0xF8C0, 0x884C, 0xA6E6, 0x884D, 0xAD6C, - 0x884E, 0xD0AB, 0x8852, 0xD7B1, 0x8853, 0xB34E, 0x8855, 0xDBC2, - 0x8856, 0xDBC1, 0x8857, 0xB5F3, 0x8859, 0xB8C5, 0x885A, 0xE7C1, - 0x885B, 0xBDC3, 0x885D, 0xBDC4, 0x8861, 0xBFC5, 0x8862, 0xC5FC, - 0x8863, 0xA6E7, 0x8867, 0xD0AC, 0x8868, 0xAAED, 0x8869, 0xD0AE, - 0x886A, 0xD0AD, 0x886B, 0xAD6D, 0x886D, 0xD3D1, 0x886F, 0xD3D8, - 0x8870, 0xB049, 0x8871, 0xD3D6, 0x8872, 0xD3D4, 0x8874, 0xD3DB, - 0x8875, 0xD3D2, 0x8876, 0xD3D3, 0x8877, 0xB04A, 0x8879, 0xB04E, - 0x887C, 0xD3DC, 0x887D, 0xB04D, 0x887E, 0xD3DA, 0x887F, 0xD3D7, - 0x8880, 0xD3D5, 0x8881, 0xB04B, 0x8882, 0xB04C, 0x8883, 0xD3D9, - 0x8888, 0xB350, 0x8889, 0xD7B2, 0x888B, 0xB355, 0x888C, 0xD7C2, - 0x888D, 0xB354, 0x888E, 0xD7C4, 0x8891, 0xD7B8, 0x8892, 0xB352, - 0x8893, 0xD7C3, 0x8895, 0xD7B3, 0x8896, 0xB353, 0x8897, 0xD7BF, - 0x8898, 0xD7BB, 0x8899, 0xD7BD, 0x889A, 0xD7B7, 0x889B, 0xD7BE, - 0x889E, 0xB34F, 0x889F, 0xD7BA, 0x88A1, 0xD7B9, 0x88A2, 0xD7B5, - 0x88A4, 0xD7C0, 0x88A7, 0xD7BC, 0x88A8, 0xD7B4, 0x88AA, 0xD7B6, - 0x88AB, 0xB351, 0x88AC, 0xD7C1, 0x88B1, 0xB5F6, 0x88B2, 0xDBCD, - 0x88B6, 0xDBC9, 0x88B7, 0xDBCB, 0x88B8, 0xDBC6, 0x88B9, 0xDBC5, - 0x88BA, 0xDBC3, 0x88BC, 0xDBCA, 0x88BD, 0xDBCC, 0x88BE, 0xDBC8, - 0x88C0, 0xDBC7, 0x88C1, 0xB5F4, 0x88C2, 0xB5F5, 0x88C9, 0xDBCF, - 0x88CA, 0xB8CD, 0x88CB, 0xDFF2, 0x88CC, 0xDFF8, 0x88CD, 0xDFF3, - 0x88CE, 0xDFF4, 0x88CF, 0xF9D8, 0x88D0, 0xDFF9, 0x88D2, 0xB8CF, - 0x88D4, 0xB8C7, 0x88D5, 0xB8CE, 0x88D6, 0xDFF1, 0x88D7, 0xDBC4, - 0x88D8, 0xB8CA, 0x88D9, 0xB8C8, 0x88DA, 0xDFF7, 0x88DB, 0xDFF6, - 0x88DC, 0xB8C9, 0x88DD, 0xB8CB, 0x88DE, 0xDFF5, 0x88DF, 0xB8C6, - 0x88E1, 0xB8CC, 0x88E7, 0xE3F6, 0x88E8, 0xBB74, 0x88EB, 0xE442, - 0x88EC, 0xE441, 0x88EE, 0xE3FB, 0x88EF, 0xBB76, 0x88F0, 0xE440, - 0x88F1, 0xE3F7, 0x88F2, 0xE3F8, 0x88F3, 0xBB6E, 0x88F4, 0xBB70, - 0x88F6, 0xE3FD, 0x88F7, 0xE3F5, 0x88F8, 0xBB72, 0x88F9, 0xBB71, - 0x88FA, 0xE3F9, 0x88FB, 0xE3FE, 0x88FC, 0xE3FC, 0x88FD, 0xBB73, - 0x88FE, 0xE3FA, 0x8901, 0xDBCE, 0x8902, 0xBB6F, 0x8905, 0xE7C2, - 0x8906, 0xE7C9, 0x8907, 0xBDC6, 0x8909, 0xE7CD, 0x890A, 0xBDCA, - 0x890B, 0xE7C5, 0x890C, 0xE7C3, 0x890E, 0xE7CC, 0x8910, 0xBDC5, - 0x8911, 0xE7CB, 0x8912, 0xBDC7, 0x8913, 0xBDC8, 0x8914, 0xE7C4, - 0x8915, 0xBDC9, 0x8916, 0xE7CA, 0x8917, 0xE7C6, 0x8918, 0xE7C7, - 0x8919, 0xE7C8, 0x891A, 0xBB75, 0x891E, 0xEB70, 0x891F, 0xEB7C, - 0x8921, 0xBFCA, 0x8922, 0xEB77, 0x8923, 0xEB79, 0x8925, 0xBFC8, - 0x8926, 0xEB71, 0x8927, 0xEB75, 0x8929, 0xEB78, 0x892A, 0xBFC6, - 0x892B, 0xBFC9, 0x892C, 0xEB7B, 0x892D, 0xEB73, 0x892E, 0xEB74, - 0x892F, 0xEB7A, 0x8930, 0xEB72, 0x8931, 0xEB76, 0x8932, 0xBFC7, - 0x8933, 0xEE72, 0x8935, 0xEE71, 0x8936, 0xC1B7, 0x8937, 0xEE77, - 0x8938, 0xC1B9, 0x893B, 0xC1B6, 0x893C, 0xEE73, 0x893D, 0xC1BA, - 0x893E, 0xEE74, 0x8941, 0xEE75, 0x8942, 0xEE78, 0x8944, 0xC1B8, - 0x8946, 0xF0D6, 0x8949, 0xF0D9, 0x894B, 0xF0D3, 0x894C, 0xF0D5, - 0x894F, 0xF0D4, 0x8950, 0xF0D7, 0x8951, 0xF0D8, 0x8952, 0xEE76, - 0x8953, 0xF0D2, 0x8956, 0xC3CD, 0x8957, 0xF2EC, 0x8958, 0xF2EF, - 0x8959, 0xF2F1, 0x895A, 0xF2EA, 0x895B, 0xF2EB, 0x895C, 0xF2EE, - 0x895D, 0xF2F0, 0x895E, 0xC3CE, 0x895F, 0xC3CC, 0x8960, 0xC3CB, - 0x8961, 0xF2ED, 0x8962, 0xF2E9, 0x8963, 0xF4CA, 0x8964, 0xC4B0, - 0x8966, 0xF4CB, 0x8969, 0xF649, 0x896A, 0xC4FB, 0x896B, 0xF64B, - 0x896C, 0xC4FC, 0x896D, 0xF648, 0x896E, 0xF64A, 0x896F, 0xC5A8, - 0x8971, 0xF752, 0x8972, 0xC5A7, 0x8973, 0xF7FD, 0x8974, 0xF7FC, - 0x8976, 0xF7FB, 0x8979, 0xF948, 0x897A, 0xF949, 0x897B, 0xF94B, - 0x897C, 0xF94A, 0x897E, 0xCA50, 0x897F, 0xA6E8, 0x8981, 0xAD6E, - 0x8982, 0xD7C5, 0x8983, 0xB5F7, 0x8985, 0xDFFA, 0x8986, 0xC2D0, - 0x8988, 0xF2F2, 0x898B, 0xA8A3, 0x898F, 0xB357, 0x8993, 0xB356, - 0x8995, 0xDBD0, 0x8996, 0xB5F8, 0x8997, 0xDBD2, 0x8998, 0xDBD1, - 0x899B, 0xDFFB, 0x899C, 0xB8D0, 0x899D, 0xE443, 0x899E, 0xE446, - 0x899F, 0xE445, 0x89A1, 0xE444, 0x89A2, 0xE7CE, 0x89A3, 0xE7D0, - 0x89A4, 0xE7CF, 0x89A6, 0xBFCC, 0x89AA, 0xBFCB, 0x89AC, 0xC1BB, - 0x89AD, 0xEE79, 0x89AE, 0xEE7B, 0x89AF, 0xEE7A, 0x89B2, 0xC2D1, - 0x89B6, 0xF2F4, 0x89B7, 0xF2F3, 0x89B9, 0xF4CC, 0x89BA, 0xC4B1, - 0x89BD, 0xC4FD, 0x89BE, 0xF754, 0x89BF, 0xF753, 0x89C0, 0xC65B, - 0x89D2, 0xA8A4, 0x89D3, 0xD0AF, 0x89D4, 0xAD6F, 0x89D5, 0xD7C8, - 0x89D6, 0xD7C6, 0x89D9, 0xD7C7, 0x89DA, 0xDBD4, 0x89DB, 0xDBD5, - 0x89DC, 0xE043, 0x89DD, 0xDBD3, 0x89DF, 0xDFFC, 0x89E0, 0xE041, - 0x89E1, 0xE040, 0x89E2, 0xE042, 0x89E3, 0xB8D1, 0x89E4, 0xDFFE, - 0x89E5, 0xDFFD, 0x89E6, 0xE044, 0x89E8, 0xE449, 0x89E9, 0xE447, - 0x89EB, 0xE448, 0x89EC, 0xE7D3, 0x89ED, 0xE7D1, 0x89F0, 0xE7D2, - 0x89F1, 0xEB7D, 0x89F2, 0xEE7C, 0x89F3, 0xEE7D, 0x89F4, 0xC2D2, - 0x89F6, 0xF2F5, 0x89F7, 0xF4CD, 0x89F8, 0xC4B2, 0x89FA, 0xF64C, - 0x89FB, 0xF755, 0x89FC, 0xC5A9, 0x89FE, 0xF7FE, 0x89FF, 0xF94C, - 0x8A00, 0xA8A5, 0x8A02, 0xAD71, 0x8A03, 0xAD72, 0x8A04, 0xD0B0, - 0x8A07, 0xD0B1, 0x8A08, 0xAD70, 0x8A0A, 0xB054, 0x8A0C, 0xB052, - 0x8A0E, 0xB051, 0x8A0F, 0xB058, 0x8A10, 0xB050, 0x8A11, 0xB059, - 0x8A12, 0xD3DD, 0x8A13, 0xB056, 0x8A15, 0xB053, 0x8A16, 0xB057, - 0x8A17, 0xB055, 0x8A18, 0xB04F, 0x8A1B, 0xB35F, 0x8A1D, 0xB359, - 0x8A1E, 0xD7CC, 0x8A1F, 0xB35E, 0x8A22, 0xB360, 0x8A23, 0xB35A, - 0x8A25, 0xB35B, 0x8A27, 0xD7CA, 0x8A2A, 0xB358, 0x8A2C, 0xD7CB, - 0x8A2D, 0xB35D, 0x8A30, 0xD7C9, 0x8A31, 0xB35C, 0x8A34, 0xB644, - 0x8A36, 0xB646, 0x8A39, 0xDBD8, 0x8A3A, 0xB645, 0x8A3B, 0xB5F9, - 0x8A3C, 0xB5FD, 0x8A3E, 0xB8E4, 0x8A3F, 0xE049, 0x8A40, 0xDBDA, - 0x8A41, 0xB5FE, 0x8A44, 0xDBDD, 0x8A45, 0xDBDE, 0x8A46, 0xB643, - 0x8A48, 0xDBE0, 0x8A4A, 0xDBE2, 0x8A4C, 0xDBE3, 0x8A4D, 0xDBD7, - 0x8A4E, 0xDBD6, 0x8A4F, 0xDBE4, 0x8A50, 0xB642, 0x8A51, 0xDBE1, - 0x8A52, 0xDBDF, 0x8A54, 0xB640, 0x8A55, 0xB5FB, 0x8A56, 0xB647, - 0x8A57, 0xDBDB, 0x8A58, 0xDBDC, 0x8A59, 0xDBD9, 0x8A5B, 0xB641, - 0x8A5E, 0xB5FC, 0x8A60, 0xB5FA, 0x8A61, 0xE048, 0x8A62, 0xB8DF, - 0x8A63, 0xB8DA, 0x8A66, 0xB8D5, 0x8A68, 0xB8E5, 0x8A69, 0xB8D6, - 0x8A6B, 0xB8D2, 0x8A6C, 0xB8E1, 0x8A6D, 0xB8DE, 0x8A6E, 0xB8E0, - 0x8A70, 0xB8D7, 0x8A71, 0xB8DC, 0x8A72, 0xB8D3, 0x8A73, 0xB8D4, - 0x8A74, 0xE050, 0x8A75, 0xE04D, 0x8A76, 0xE045, 0x8A77, 0xE04A, - 0x8A79, 0xB8E2, 0x8A7A, 0xE051, 0x8A7B, 0xB8E3, 0x8A7C, 0xB8D9, - 0x8A7F, 0xE047, 0x8A81, 0xE04F, 0x8A82, 0xE04B, 0x8A83, 0xE04E, - 0x8A84, 0xE04C, 0x8A85, 0xB8DD, 0x8A86, 0xE046, 0x8A87, 0xB8D8, - 0x8A8B, 0xE44C, 0x8A8C, 0xBB78, 0x8A8D, 0xBB7B, 0x8A8F, 0xE44E, - 0x8A91, 0xBBA5, 0x8A92, 0xE44D, 0x8A93, 0xBB7D, 0x8A95, 0xBDCF, - 0x8A96, 0xE44F, 0x8A98, 0xBBA4, 0x8A99, 0xE44B, 0x8A9A, 0xBBA6, - 0x8A9E, 0xBB79, 0x8AA0, 0xB8DB, 0x8AA1, 0xBB7C, 0x8AA3, 0xBB7A, - 0x8AA4, 0xBB7E, 0x8AA5, 0xBBA2, 0x8AA6, 0xBB77, 0x8AA7, 0xBBA7, - 0x8AA8, 0xBBA3, 0x8AAA, 0xBBA1, 0x8AAB, 0xE44A, 0x8AB0, 0xBDD6, - 0x8AB2, 0xBDD2, 0x8AB6, 0xBDD9, 0x8AB8, 0xE7D6, 0x8AB9, 0xBDDA, - 0x8ABA, 0xE7E2, 0x8ABB, 0xE7DB, 0x8ABC, 0xBDCB, 0x8ABD, 0xE7E3, - 0x8ABE, 0xE7DD, 0x8ABF, 0xBDD5, 0x8AC0, 0xE7DE, 0x8AC2, 0xBDD4, - 0x8AC3, 0xE7E1, 0x8AC4, 0xBDCE, 0x8AC5, 0xE7DF, 0x8AC6, 0xE7D5, - 0x8AC7, 0xBDCD, 0x8AC8, 0xEBAA, 0x8AC9, 0xBDD3, 0x8ACB, 0xBDD0, - 0x8ACD, 0xBDD8, 0x8ACF, 0xE7D4, 0x8AD1, 0xE7D8, 0x8AD2, 0xBDCC, - 0x8AD3, 0xE7D7, 0x8AD4, 0xE7D9, 0x8AD5, 0xE7DA, 0x8AD6, 0xBDD7, - 0x8AD7, 0xE7DC, 0x8AD8, 0xE7E0, 0x8AD9, 0xE7E4, 0x8ADB, 0xBDDB, - 0x8ADC, 0xBFD2, 0x8ADD, 0xEBA5, 0x8ADE, 0xEBAB, 0x8ADF, 0xEBA8, - 0x8AE0, 0xEB7E, 0x8AE1, 0xEBAC, 0x8AE2, 0xEBA1, 0x8AE4, 0xEBA7, - 0x8AE6, 0xBFCD, 0x8AE7, 0xBFD3, 0x8AE8, 0xEBAD, 0x8AEB, 0xBFCF, - 0x8AED, 0xBFD9, 0x8AEE, 0xBFD4, 0x8AEF, 0xEBAF, 0x8AF0, 0xEBA9, - 0x8AF1, 0xBFD0, 0x8AF2, 0xEBA2, 0x8AF3, 0xBFDA, 0x8AF4, 0xEBA3, - 0x8AF5, 0xEBA4, 0x8AF6, 0xBFDB, 0x8AF7, 0xBFD8, 0x8AF8, 0xBDD1, - 0x8AFA, 0xBFCE, 0x8AFB, 0xEBB0, 0x8AFC, 0xBFDC, 0x8AFE, 0xBFD5, - 0x8AFF, 0xEBAE, 0x8B00, 0xBFD1, 0x8B01, 0xBFD6, 0x8B02, 0xBFD7, - 0x8B04, 0xC1C3, 0x8B05, 0xEEA4, 0x8B06, 0xEEAD, 0x8B07, 0xEEAA, - 0x8B08, 0xEEAC, 0x8B0A, 0xC1C0, 0x8B0B, 0xEEA5, 0x8B0D, 0xEEAB, - 0x8B0E, 0xC1BC, 0x8B0F, 0xEEA7, 0x8B10, 0xC1C4, 0x8B11, 0xEEA3, - 0x8B12, 0xEEA8, 0x8B13, 0xEEAF, 0x8B14, 0xEBA6, 0x8B15, 0xEEA9, - 0x8B16, 0xEEA2, 0x8B17, 0xC1BD, 0x8B18, 0xEEA1, 0x8B19, 0xC1BE, - 0x8B1A, 0xEEB0, 0x8B1B, 0xC1BF, 0x8B1C, 0xEEAE, 0x8B1D, 0xC1C2, - 0x8B1E, 0xEE7E, 0x8B20, 0xC1C1, 0x8B22, 0xEEA6, 0x8B23, 0xF0DC, - 0x8B24, 0xF0EA, 0x8B25, 0xF0E5, 0x8B26, 0xF0E7, 0x8B27, 0xF0DB, - 0x8B28, 0xC2D3, 0x8B2A, 0xF0DA, 0x8B2B, 0xC2D6, 0x8B2C, 0xC2D5, - 0x8B2E, 0xF0E9, 0x8B2F, 0xF0E1, 0x8B30, 0xF0DE, 0x8B31, 0xF0E4, - 0x8B33, 0xF0DD, 0x8B35, 0xF0DF, 0x8B36, 0xF0E8, 0x8B37, 0xF0E6, - 0x8B39, 0xC2D4, 0x8B3A, 0xF0ED, 0x8B3B, 0xF0EB, 0x8B3C, 0xF0E2, - 0x8B3D, 0xF0EC, 0x8B3E, 0xF0E3, 0x8B40, 0xF2F9, 0x8B41, 0xC3CF, - 0x8B42, 0xF341, 0x8B45, 0xF64F, 0x8B46, 0xC3D6, 0x8B47, 0xF0E0, - 0x8B48, 0xF2F7, 0x8B49, 0xC3D2, 0x8B4A, 0xF2F8, 0x8B4B, 0xF2FD, - 0x8B4E, 0xC3D4, 0x8B4F, 0xC3D5, 0x8B50, 0xF2F6, 0x8B51, 0xF340, - 0x8B52, 0xF342, 0x8B53, 0xF2FA, 0x8B54, 0xF2FC, 0x8B55, 0xF2FE, - 0x8B56, 0xF2FB, 0x8B57, 0xF343, 0x8B58, 0xC3D1, 0x8B59, 0xC3D7, - 0x8B5A, 0xC3D3, 0x8B5C, 0xC3D0, 0x8B5D, 0xF4D0, 0x8B5F, 0xC4B7, - 0x8B60, 0xF4CE, 0x8B63, 0xF4D2, 0x8B65, 0xF4D3, 0x8B66, 0xC4B5, - 0x8B67, 0xF4D4, 0x8B68, 0xF4D1, 0x8B6A, 0xF4CF, 0x8B6B, 0xC4B8, - 0x8B6C, 0xC4B4, 0x8B6D, 0xF4D5, 0x8B6F, 0xC4B6, 0x8B70, 0xC4B3, - 0x8B74, 0xC4FE, 0x8B77, 0xC540, 0x8B78, 0xF64E, 0x8B79, 0xF64D, - 0x8B7A, 0xF650, 0x8B7B, 0xF651, 0x8B7D, 0xC541, 0x8B7E, 0xF756, - 0x8B7F, 0xF75B, 0x8B80, 0xC5AA, 0x8B82, 0xF758, 0x8B84, 0xF757, - 0x8B85, 0xF75A, 0x8B86, 0xF759, 0x8B88, 0xF843, 0x8B8A, 0xC5DC, - 0x8B8B, 0xF842, 0x8B8C, 0xF840, 0x8B8E, 0xF841, 0x8B92, 0xC5FE, - 0x8B93, 0xC5FD, 0x8B94, 0xF8C1, 0x8B95, 0xF8C2, 0x8B96, 0xC640, - 0x8B98, 0xF94D, 0x8B99, 0xF94E, 0x8B9A, 0xC667, 0x8B9C, 0xC66D, - 0x8B9E, 0xF9A9, 0x8B9F, 0xF9C8, 0x8C37, 0xA8A6, 0x8C39, 0xD7CD, - 0x8C3B, 0xD7CE, 0x8C3C, 0xE052, 0x8C3D, 0xE450, 0x8C3E, 0xE7E5, - 0x8C3F, 0xC1C6, 0x8C41, 0xC1C5, 0x8C42, 0xF0EE, 0x8C43, 0xF344, - 0x8C45, 0xF844, 0x8C46, 0xA8A7, 0x8C47, 0xD3DE, 0x8C48, 0xB05A, - 0x8C49, 0xB361, 0x8C4A, 0xE054, 0x8C4B, 0xE053, 0x8C4C, 0xBDDC, - 0x8C4D, 0xE7E6, 0x8C4E, 0xBDDD, 0x8C4F, 0xEEB1, 0x8C50, 0xC2D7, - 0x8C54, 0xC676, 0x8C55, 0xA8A8, 0x8C56, 0xCDCB, 0x8C57, 0xD3DF, - 0x8C5A, 0xB362, 0x8C5C, 0xD7CF, 0x8C5D, 0xD7D0, 0x8C5F, 0xDBE5, - 0x8C61, 0xB648, 0x8C62, 0xB8E6, 0x8C64, 0xE056, 0x8C65, 0xE055, - 0x8C66, 0xE057, 0x8C68, 0xE451, 0x8C69, 0xE452, 0x8C6A, 0xBBA8, - 0x8C6B, 0xBFDD, 0x8C6C, 0xBDDE, 0x8C6D, 0xBFDE, 0x8C6F, 0xEEB5, - 0x8C70, 0xEEB2, 0x8C71, 0xEEB4, 0x8C72, 0xEEB3, 0x8C73, 0xC1C7, - 0x8C75, 0xF0EF, 0x8C76, 0xF346, 0x8C77, 0xF345, 0x8C78, 0xCBA4, - 0x8C79, 0xB05C, 0x8C7A, 0xB05B, 0x8C7B, 0xD3E0, 0x8C7D, 0xD7D1, - 0x8C80, 0xDBE7, 0x8C81, 0xDBE6, 0x8C82, 0xB649, 0x8C84, 0xE059, - 0x8C85, 0xE05A, 0x8C86, 0xE058, 0x8C89, 0xB8E8, 0x8C8A, 0xB8E7, - 0x8C8C, 0xBBAA, 0x8C8D, 0xBBA9, 0x8C8F, 0xE7E7, 0x8C90, 0xEBB3, - 0x8C91, 0xEBB1, 0x8C92, 0xEBB2, 0x8C93, 0xBFDF, 0x8C94, 0xEEB7, - 0x8C95, 0xEEB6, 0x8C97, 0xF0F2, 0x8C98, 0xF0F1, 0x8C99, 0xF0F0, - 0x8C9A, 0xF347, 0x8C9C, 0xF9AA, 0x8C9D, 0xA8A9, 0x8C9E, 0xAD73, - 0x8CA0, 0xAD74, 0x8CA1, 0xB05D, 0x8CA2, 0xB05E, 0x8CA3, 0xD3E2, - 0x8CA4, 0xD3E1, 0x8CA5, 0xD7D2, 0x8CA7, 0xB368, 0x8CA8, 0xB366, - 0x8CA9, 0xB363, 0x8CAA, 0xB367, 0x8CAB, 0xB365, 0x8CAC, 0xB364, - 0x8CAF, 0xB64A, 0x8CB0, 0xDBEA, 0x8CB2, 0xB8ED, 0x8CB3, 0xB64C, - 0x8CB4, 0xB651, 0x8CB5, 0xDBEC, 0x8CB6, 0xB653, 0x8CB7, 0xB652, - 0x8CB8, 0xB655, 0x8CB9, 0xDBEB, 0x8CBA, 0xDBE8, 0x8CBB, 0xB64F, - 0x8CBC, 0xB64B, 0x8CBD, 0xB64D, 0x8CBE, 0xDBE9, 0x8CBF, 0xB654, - 0x8CC0, 0xB650, 0x8CC1, 0xB64E, 0x8CC2, 0xB8EF, 0x8CC3, 0xB8EE, - 0x8CC4, 0xB8EC, 0x8CC5, 0xB8F0, 0x8CC7, 0xB8EA, 0x8CC8, 0xB8EB, - 0x8CCA, 0xB8E9, 0x8CCC, 0xE05B, 0x8CCF, 0xE454, 0x8CD1, 0xBBAC, - 0x8CD2, 0xBBAD, 0x8CD3, 0xBBAB, 0x8CD5, 0xE453, 0x8CD7, 0xE455, - 0x8CD9, 0xE7EA, 0x8CDA, 0xE7EC, 0x8CDC, 0xBDE7, 0x8CDD, 0xE7ED, - 0x8CDE, 0xBDE0, 0x8CDF, 0xE7E9, 0x8CE0, 0xBDDF, 0x8CE1, 0xBDE9, - 0x8CE2, 0xBDE5, 0x8CE3, 0xBDE6, 0x8CE4, 0xBDE2, 0x8CE5, 0xE7E8, - 0x8CE6, 0xBDE1, 0x8CE7, 0xE7EE, 0x8CE8, 0xE7EB, 0x8CEA, 0xBDE8, - 0x8CEC, 0xBDE3, 0x8CED, 0xBDE4, 0x8CEE, 0xEBB5, 0x8CF0, 0xEBB7, - 0x8CF1, 0xEBB6, 0x8CF3, 0xEBB8, 0x8CF4, 0xBFE0, 0x8CF5, 0xEBB4, - 0x8CF8, 0xC1CB, 0x8CF9, 0xEEB8, 0x8CFA, 0xC1C8, 0x8CFB, 0xC1CC, - 0x8CFC, 0xC1CA, 0x8CFD, 0xC1C9, 0x8CFE, 0xF0F3, 0x8D00, 0xF0F6, - 0x8D02, 0xF0F5, 0x8D04, 0xF0F4, 0x8D05, 0xC2D8, 0x8D06, 0xF348, - 0x8D07, 0xF349, 0x8D08, 0xC3D8, 0x8D09, 0xF34A, 0x8D0A, 0xC3D9, - 0x8D0D, 0xC4BA, 0x8D0F, 0xC4B9, 0x8D10, 0xF652, 0x8D13, 0xC542, - 0x8D14, 0xF653, 0x8D15, 0xF75C, 0x8D16, 0xC5AB, 0x8D17, 0xC5AC, - 0x8D19, 0xF845, 0x8D1B, 0xC642, 0x8D64, 0xA8AA, 0x8D66, 0xB36A, - 0x8D67, 0xB369, 0x8D68, 0xE05C, 0x8D69, 0xE05D, 0x8D6B, 0xBBAE, - 0x8D6C, 0xEBB9, 0x8D6D, 0xBDEA, 0x8D6E, 0xEBBA, 0x8D6F, 0xEEB9, - 0x8D70, 0xA8AB, 0x8D72, 0xD0B2, 0x8D73, 0xAD76, 0x8D74, 0xAD75, - 0x8D76, 0xD3E3, 0x8D77, 0xB05F, 0x8D78, 0xD3E4, 0x8D79, 0xD7D5, - 0x8D7B, 0xD7D4, 0x8D7D, 0xD7D3, 0x8D80, 0xDBEE, 0x8D81, 0xB658, - 0x8D84, 0xDBED, 0x8D85, 0xB657, 0x8D89, 0xDBEF, 0x8D8A, 0xB656, - 0x8D8C, 0xE05F, 0x8D8D, 0xE062, 0x8D8E, 0xE060, 0x8D8F, 0xE061, - 0x8D90, 0xE065, 0x8D91, 0xE05E, 0x8D92, 0xE066, 0x8D93, 0xE063, - 0x8D94, 0xE064, 0x8D95, 0xBBB0, 0x8D96, 0xE456, 0x8D99, 0xBBAF, - 0x8D9B, 0xE7F2, 0x8D9C, 0xE7F0, 0x8D9F, 0xBDEB, 0x8DA0, 0xE7EF, - 0x8DA1, 0xE7F1, 0x8DA3, 0xBDEC, 0x8DA5, 0xEBBB, 0x8DA7, 0xEBBC, - 0x8DA8, 0xC1CD, 0x8DAA, 0xF34C, 0x8DAB, 0xF34E, 0x8DAC, 0xF34B, - 0x8DAD, 0xF34D, 0x8DAE, 0xF4D6, 0x8DAF, 0xF654, 0x8DB2, 0xF96F, - 0x8DB3, 0xA8AC, 0x8DB4, 0xAD77, 0x8DB5, 0xD3E5, 0x8DB6, 0xD3E7, - 0x8DB7, 0xD3E6, 0x8DB9, 0xD7D8, 0x8DBA, 0xB36C, 0x8DBC, 0xD7D6, - 0x8DBE, 0xB36B, 0x8DBF, 0xD7D9, 0x8DC1, 0xD7DA, 0x8DC2, 0xD7D7, - 0x8DC5, 0xDBFB, 0x8DC6, 0xB660, 0x8DC7, 0xDBF3, 0x8DC8, 0xDBF9, - 0x8DCB, 0xB65B, 0x8DCC, 0xB65E, 0x8DCD, 0xDBF2, 0x8DCE, 0xB659, - 0x8DCF, 0xDBF6, 0x8DD0, 0xE06C, 0x8DD1, 0xB65D, 0x8DD3, 0xDBF1, - 0x8DD5, 0xDBF7, 0x8DD6, 0xDBF4, 0x8DD7, 0xDBFA, 0x8DD8, 0xDBF0, - 0x8DD9, 0xDBF8, 0x8DDA, 0xB65C, 0x8DDB, 0xB65F, 0x8DDC, 0xDBF5, - 0x8DDD, 0xB65A, 0x8DDF, 0xB8F2, 0x8DE0, 0xE068, 0x8DE1, 0xB8F1, - 0x8DE2, 0xE06F, 0x8DE3, 0xE06E, 0x8DE4, 0xB8F8, 0x8DE6, 0xB8F9, - 0x8DE7, 0xE070, 0x8DE8, 0xB8F3, 0x8DE9, 0xE06D, 0x8DEA, 0xB8F7, - 0x8DEB, 0xE072, 0x8DEC, 0xE069, 0x8DEE, 0xE06B, 0x8DEF, 0xB8F4, - 0x8DF0, 0xE067, 0x8DF1, 0xE06A, 0x8DF2, 0xE071, 0x8DF3, 0xB8F5, - 0x8DF4, 0xE073, 0x8DFA, 0xB8F6, 0x8DFC, 0xBBB1, 0x8DFD, 0xE45B, - 0x8DFE, 0xE461, 0x8DFF, 0xE459, 0x8E00, 0xE462, 0x8E02, 0xE458, - 0x8E03, 0xE45D, 0x8E04, 0xE463, 0x8E05, 0xE460, 0x8E06, 0xE45F, - 0x8E07, 0xE45E, 0x8E09, 0xE457, 0x8E0A, 0xE45C, 0x8E0D, 0xE45A, - 0x8E0F, 0xBDF1, 0x8E10, 0xBDEE, 0x8E11, 0xE7FB, 0x8E12, 0xE841, - 0x8E13, 0xE843, 0x8E14, 0xE840, 0x8E15, 0xE7F8, 0x8E16, 0xE7FA, - 0x8E17, 0xE845, 0x8E18, 0xE842, 0x8E19, 0xE7FC, 0x8E1A, 0xE846, - 0x8E1B, 0xE7F9, 0x8E1C, 0xE844, 0x8E1D, 0xBDEF, 0x8E1E, 0xBDF5, - 0x8E1F, 0xBDF3, 0x8E20, 0xE7F3, 0x8E21, 0xBDF4, 0x8E22, 0xBDF0, - 0x8E23, 0xE7F4, 0x8E24, 0xE7F6, 0x8E25, 0xE7F5, 0x8E26, 0xE7FD, - 0x8E27, 0xE7FE, 0x8E29, 0xBDF2, 0x8E2B, 0xBDED, 0x8E2E, 0xE7F7, - 0x8E30, 0xEBC6, 0x8E31, 0xBFE2, 0x8E33, 0xEBBD, 0x8E34, 0xBFE3, - 0x8E35, 0xBFE6, 0x8E36, 0xEBC2, 0x8E38, 0xEBBF, 0x8E39, 0xBFE5, - 0x8E3C, 0xEBC3, 0x8E3D, 0xEBC4, 0x8E3E, 0xEBBE, 0x8E3F, 0xEBC7, - 0x8E40, 0xEBC0, 0x8E41, 0xEBC5, 0x8E42, 0xBFE4, 0x8E44, 0xBFE1, - 0x8E45, 0xEBC1, 0x8E47, 0xEEBF, 0x8E48, 0xC1D0, 0x8E49, 0xC1CE, - 0x8E4A, 0xC1D1, 0x8E4B, 0xC1CF, 0x8E4C, 0xEEBE, 0x8E4D, 0xEEBB, - 0x8E4E, 0xEEBA, 0x8E50, 0xEEBD, 0x8E53, 0xEEBC, 0x8E54, 0xF145, - 0x8E55, 0xC2DE, 0x8E56, 0xF0FB, 0x8E57, 0xF0FA, 0x8E59, 0xC2D9, - 0x8E5A, 0xF141, 0x8E5B, 0xF140, 0x8E5C, 0xF0F7, 0x8E5D, 0xF143, - 0x8E5E, 0xF0FC, 0x8E5F, 0xC2DD, 0x8E60, 0xF0F9, 0x8E61, 0xF142, - 0x8E62, 0xF0F8, 0x8E63, 0xC2DA, 0x8E64, 0xC2DC, 0x8E65, 0xF0FD, - 0x8E66, 0xC2DB, 0x8E67, 0xF0FE, 0x8E69, 0xF144, 0x8E6A, 0xF352, - 0x8E6C, 0xC3DE, 0x8E6D, 0xF34F, 0x8E6F, 0xF353, 0x8E72, 0xC3DB, - 0x8E73, 0xF351, 0x8E74, 0xC3E0, 0x8E76, 0xC3DD, 0x8E78, 0xF350, - 0x8E7A, 0xC3DF, 0x8E7B, 0xF354, 0x8E7C, 0xC3DA, 0x8E81, 0xC4BC, - 0x8E82, 0xC4BE, 0x8E84, 0xF4D9, 0x8E85, 0xC4BD, 0x8E86, 0xF4D7, - 0x8E87, 0xC3DC, 0x8E88, 0xF4D8, 0x8E89, 0xC4BB, 0x8E8A, 0xC543, - 0x8E8B, 0xC545, 0x8E8C, 0xF656, 0x8E8D, 0xC544, 0x8E8E, 0xF655, - 0x8E90, 0xF761, 0x8E91, 0xC5AD, 0x8E92, 0xF760, 0x8E93, 0xC5AE, - 0x8E94, 0xF75E, 0x8E95, 0xF75D, 0x8E96, 0xF762, 0x8E97, 0xF763, - 0x8E98, 0xF846, 0x8E9A, 0xF75F, 0x8E9D, 0xF8C6, 0x8E9E, 0xF8C3, - 0x8E9F, 0xF8C4, 0x8EA0, 0xF8C5, 0x8EA1, 0xC65C, 0x8EA3, 0xF951, - 0x8EA4, 0xF950, 0x8EA5, 0xF94F, 0x8EA6, 0xF970, 0x8EA8, 0xF9BE, - 0x8EA9, 0xF9AB, 0x8EAA, 0xC66E, 0x8EAB, 0xA8AD, 0x8EAC, 0xB060, - 0x8EB2, 0xB8FA, 0x8EBA, 0xBDF6, 0x8EBD, 0xEBC8, 0x8EC0, 0xC2DF, - 0x8EC2, 0xF355, 0x8EC9, 0xF9AC, 0x8ECA, 0xA8AE, 0x8ECB, 0xAAEE, - 0x8ECC, 0xAD79, 0x8ECD, 0xAD78, 0x8ECF, 0xB063, 0x8ED1, 0xD3E8, - 0x8ED2, 0xB061, 0x8ED3, 0xD3E9, 0x8ED4, 0xB062, 0x8ED7, 0xD7DF, - 0x8ED8, 0xD7DB, 0x8EDB, 0xB36D, 0x8EDC, 0xD7DE, 0x8EDD, 0xD7DD, - 0x8EDE, 0xD7DC, 0x8EDF, 0xB36E, 0x8EE0, 0xD7E0, 0x8EE1, 0xD7E1, - 0x8EE5, 0xDC43, 0x8EE6, 0xDC41, 0x8EE7, 0xDC45, 0x8EE8, 0xDC46, - 0x8EE9, 0xDC4C, 0x8EEB, 0xDC48, 0x8EEC, 0xDC4A, 0x8EEE, 0xDC42, - 0x8EEF, 0xDBFC, 0x8EF1, 0xDC49, 0x8EF4, 0xDC4B, 0x8EF5, 0xDC44, - 0x8EF6, 0xDC47, 0x8EF7, 0xDBFD, 0x8EF8, 0xB662, 0x8EF9, 0xDC40, - 0x8EFA, 0xDBFE, 0x8EFB, 0xB661, 0x8EFC, 0xB663, 0x8EFE, 0xB8FD, - 0x8EFF, 0xE075, 0x8F00, 0xE077, 0x8F01, 0xE076, 0x8F02, 0xE07B, - 0x8F03, 0xB8FB, 0x8F05, 0xE078, 0x8F06, 0xE074, 0x8F07, 0xE079, - 0x8F08, 0xE07A, 0x8F09, 0xB8FC, 0x8F0A, 0xB8FE, 0x8F0B, 0xE07C, - 0x8F0D, 0xE467, 0x8F0E, 0xE466, 0x8F10, 0xE464, 0x8F11, 0xE465, - 0x8F12, 0xBBB3, 0x8F13, 0xBBB5, 0x8F14, 0xBBB2, 0x8F15, 0xBBB4, - 0x8F16, 0xE84D, 0x8F17, 0xE84E, 0x8F18, 0xE849, 0x8F1A, 0xE84A, - 0x8F1B, 0xBDF8, 0x8F1C, 0xBDFD, 0x8F1D, 0xBDF7, 0x8F1E, 0xBDFE, - 0x8F1F, 0xBDF9, 0x8F20, 0xE84B, 0x8F23, 0xE84C, 0x8F24, 0xE848, - 0x8F25, 0xBE40, 0x8F26, 0xBDFB, 0x8F29, 0xBDFA, 0x8F2A, 0xBDFC, - 0x8F2C, 0xE847, 0x8F2E, 0xEBCA, 0x8F2F, 0xBFE8, 0x8F32, 0xEBCC, - 0x8F33, 0xBFEA, 0x8F34, 0xEBCF, 0x8F35, 0xEBCB, 0x8F36, 0xEBC9, - 0x8F37, 0xEBCE, 0x8F38, 0xBFE9, 0x8F39, 0xEBCD, 0x8F3B, 0xBFE7, - 0x8F3E, 0xC1D3, 0x8F3F, 0xC1D6, 0x8F40, 0xEEC1, 0x8F42, 0xC1D4, - 0x8F43, 0xEEC0, 0x8F44, 0xC1D2, 0x8F45, 0xC1D5, 0x8F46, 0xF146, - 0x8F47, 0xF147, 0x8F48, 0xF148, 0x8F49, 0xC2E0, 0x8F4B, 0xF149, - 0x8F4D, 0xC2E1, 0x8F4E, 0xC3E2, 0x8F4F, 0xF358, 0x8F50, 0xF359, - 0x8F51, 0xF357, 0x8F52, 0xF356, 0x8F53, 0xF35A, 0x8F54, 0xC3E1, - 0x8F55, 0xF4DD, 0x8F56, 0xF4DB, 0x8F57, 0xF4DC, 0x8F58, 0xF4DE, - 0x8F59, 0xF4DA, 0x8F5A, 0xF4DF, 0x8F5B, 0xF658, 0x8F5D, 0xF659, - 0x8F5E, 0xF657, 0x8F5F, 0xC546, 0x8F60, 0xF764, 0x8F61, 0xC5AF, - 0x8F62, 0xF765, 0x8F63, 0xF848, 0x8F64, 0xF847, 0x8F9B, 0xA8AF, - 0x8F9C, 0xB664, 0x8F9F, 0xB940, 0x8FA3, 0xBBB6, 0x8FA6, 0xBFEC, - 0x8FA8, 0xBFEB, 0x8FAD, 0xC3E3, 0x8FAE, 0xC47C, 0x8FAF, 0xC547, - 0x8FB0, 0xA8B0, 0x8FB1, 0xB064, 0x8FB2, 0xB941, 0x8FB4, 0xF35B, - 0x8FBF, 0xCBA6, 0x8FC2, 0xA8B1, 0x8FC4, 0xA8B4, 0x8FC5, 0xA8B3, - 0x8FC6, 0xA8B2, 0x8FC9, 0xCBA5, 0x8FCB, 0xCDCD, 0x8FCD, 0xCDCF, - 0x8FCE, 0xAAEF, 0x8FD1, 0xAAF1, 0x8FD2, 0xCDCC, 0x8FD3, 0xCDCE, - 0x8FD4, 0xAAF0, 0x8FD5, 0xCDD1, 0x8FD6, 0xCDD0, 0x8FD7, 0xCDD2, - 0x8FE0, 0xD0B6, 0x8FE1, 0xD0B4, 0x8FE2, 0xAD7C, 0x8FE3, 0xD0B3, - 0x8FE4, 0xADA3, 0x8FE5, 0xAD7E, 0x8FE6, 0xAD7B, 0x8FE8, 0xADA4, - 0x8FEA, 0xAD7D, 0x8FEB, 0xADA2, 0x8FED, 0xADA1, 0x8FEE, 0xD0B5, - 0x8FF0, 0xAD7A, 0x8FF4, 0xB06A, 0x8FF5, 0xD3EB, 0x8FF6, 0xD3F1, - 0x8FF7, 0xB067, 0x8FF8, 0xB06E, 0x8FFA, 0xB069, 0x8FFB, 0xD3EE, - 0x8FFC, 0xD3F0, 0x8FFD, 0xB06C, 0x8FFE, 0xD3EA, 0x8FFF, 0xD3ED, - 0x9000, 0xB068, 0x9001, 0xB065, 0x9002, 0xD3EC, 0x9003, 0xB06B, - 0x9004, 0xD3EF, 0x9005, 0xB06D, 0x9006, 0xB066, 0x900B, 0xD7E3, - 0x900C, 0xD7E6, 0x900D, 0xB370, 0x900F, 0xB37A, 0x9010, 0xB376, - 0x9011, 0xD7E4, 0x9014, 0xB37E, 0x9015, 0xB377, 0x9016, 0xB37C, - 0x9017, 0xB372, 0x9019, 0xB36F, 0x901A, 0xB371, 0x901B, 0xB37D, - 0x901C, 0xD7E5, 0x901D, 0xB375, 0x901E, 0xB378, 0x901F, 0xB374, - 0x9020, 0xB379, 0x9021, 0xD7E7, 0x9022, 0xB37B, 0x9023, 0xB373, - 0x9024, 0xD7E2, 0x902D, 0xDC4D, 0x902E, 0xB665, 0x902F, 0xDC4F, - 0x9031, 0xB667, 0x9032, 0xB669, 0x9034, 0xDC4E, 0x9035, 0xB666, - 0x9036, 0xB66A, 0x9038, 0xB668, 0x903C, 0xB947, 0x903D, 0xE0A3, - 0x903E, 0xB94F, 0x903F, 0xE07E, 0x9041, 0xB950, 0x9042, 0xB945, - 0x9044, 0xE0A1, 0x9047, 0xB94A, 0x9049, 0xE0A2, 0x904A, 0xB943, - 0x904B, 0xB942, 0x904D, 0xB94D, 0x904E, 0xB94C, 0x904F, 0xB94B, - 0x9050, 0xB949, 0x9051, 0xB94E, 0x9052, 0xE07D, 0x9053, 0xB944, - 0x9054, 0xB946, 0x9055, 0xB948, 0x9058, 0xBBB8, 0x9059, 0xBBBB, - 0x905B, 0xBBBF, 0x905C, 0xBBB9, 0x905D, 0xBBBE, 0x905E, 0xBBBC, - 0x9060, 0xBBB7, 0x9062, 0xBBBD, 0x9063, 0xBBBA, 0x9067, 0xE852, - 0x9068, 0xBE43, 0x9069, 0xBE41, 0x906B, 0xE853, 0x906D, 0xBE44, - 0x906E, 0xBE42, 0x906F, 0xE851, 0x9070, 0xE850, 0x9072, 0xBFF0, - 0x9073, 0xE84F, 0x9074, 0xBFEE, 0x9075, 0xBFED, 0x9076, 0xEBD0, - 0x9077, 0xBE45, 0x9078, 0xBFEF, 0x9079, 0xEBD1, 0x907A, 0xBFF2, - 0x907B, 0xEBD2, 0x907C, 0xBFF1, 0x907D, 0xC1D8, 0x907E, 0xEEC3, - 0x907F, 0xC1D7, 0x9080, 0xC1DC, 0x9081, 0xC1DA, 0x9082, 0xC1DB, - 0x9083, 0xC2E3, 0x9084, 0xC1D9, 0x9085, 0xEEC2, 0x9086, 0xEBD3, - 0x9087, 0xC2E2, 0x9088, 0xC2E4, 0x908A, 0xC3E4, 0x908B, 0xC3E5, - 0x908D, 0xF4E0, 0x908F, 0xC5DE, 0x9090, 0xC5DD, 0x9091, 0xA8B6, - 0x9094, 0xCA55, 0x9095, 0xB06F, 0x9097, 0xCA52, 0x9098, 0xCA53, - 0x9099, 0xCA51, 0x909B, 0xCA54, 0x909E, 0xCBAA, 0x909F, 0xCBA7, - 0x90A0, 0xCBAC, 0x90A1, 0xCBA8, 0x90A2, 0xA8B7, 0x90A3, 0xA8BA, - 0x90A5, 0xCBA9, 0x90A6, 0xA8B9, 0x90A7, 0xCBAB, 0x90AA, 0xA8B8, - 0x90AF, 0xCDD5, 0x90B0, 0xCDD7, 0x90B1, 0xAAF4, 0x90B2, 0xCDD3, - 0x90B3, 0xCDD6, 0x90B4, 0xCDD4, 0x90B5, 0xAAF2, 0x90B6, 0xAAF5, - 0x90B8, 0xAAF3, 0x90BD, 0xD0B8, 0x90BE, 0xD0BC, 0x90BF, 0xD0B9, - 0x90C1, 0xADA7, 0x90C3, 0xADA8, 0x90C5, 0xD0BB, 0x90C7, 0xD0BD, - 0x90C8, 0xD0BF, 0x90CA, 0xADA5, 0x90CB, 0xD0BE, 0x90CE, 0xADA6, - 0x90D4, 0xD7EE, 0x90D5, 0xD0BA, 0x90D6, 0xD3F2, 0x90D7, 0xD3FB, - 0x90D8, 0xD3F9, 0x90D9, 0xD3F4, 0x90DA, 0xD3F5, 0x90DB, 0xD3FA, - 0x90DC, 0xD3FC, 0x90DD, 0xB071, 0x90DF, 0xD3F7, 0x90E0, 0xD3F3, - 0x90E1, 0xB070, 0x90E2, 0xB072, 0x90E3, 0xD3F6, 0x90E4, 0xD3FD, - 0x90E5, 0xD3F8, 0x90E8, 0xB3A1, 0x90E9, 0xD7F1, 0x90EA, 0xD7E9, - 0x90EB, 0xD7EF, 0x90EC, 0xD7F0, 0x90ED, 0xB3A2, 0x90EF, 0xD7E8, - 0x90F0, 0xD7EA, 0x90F1, 0xD0B7, 0x90F2, 0xD7EC, 0x90F3, 0xD7ED, - 0x90F4, 0xD7EB, 0x90F5, 0xB66C, 0x90F9, 0xDC56, 0x90FA, 0xEBD4, - 0x90FB, 0xDC57, 0x90FC, 0xDC54, 0x90FD, 0xB3A3, 0x90FE, 0xB66E, - 0x90FF, 0xDC53, 0x9100, 0xDC59, 0x9101, 0xDC58, 0x9102, 0xB66B, - 0x9103, 0xDC5C, 0x9104, 0xDC52, 0x9105, 0xDC5B, 0x9106, 0xDC50, - 0x9107, 0xDC5A, 0x9108, 0xDC55, 0x9109, 0xB66D, 0x910B, 0xE0AA, - 0x910D, 0xE0A5, 0x910E, 0xE0AB, 0x910F, 0xE0A6, 0x9110, 0xE0A4, - 0x9111, 0xE0A7, 0x9112, 0xB951, 0x9114, 0xE0A9, 0x9116, 0xE0A8, - 0x9117, 0xB952, 0x9118, 0xBBC1, 0x9119, 0xBBC0, 0x911A, 0xE46E, - 0x911B, 0xE471, 0x911C, 0xE469, 0x911D, 0xE46D, 0x911E, 0xBBC2, - 0x911F, 0xE46C, 0x9120, 0xE46A, 0x9121, 0xE470, 0x9122, 0xE46B, - 0x9123, 0xE468, 0x9124, 0xE46F, 0x9126, 0xE859, 0x9127, 0xBE48, - 0x9128, 0xF14A, 0x9129, 0xE856, 0x912A, 0xE857, 0x912B, 0xE855, - 0x912C, 0xDC51, 0x912D, 0xBE47, 0x912E, 0xE85A, 0x912F, 0xE854, - 0x9130, 0xBE46, 0x9131, 0xBE49, 0x9132, 0xE858, 0x9133, 0xEBD5, - 0x9134, 0xBFF3, 0x9135, 0xEBD6, 0x9136, 0xEBD7, 0x9138, 0xEEC4, - 0x9139, 0xC1DD, 0x913A, 0xF14B, 0x913B, 0xF14C, 0x913E, 0xF14D, - 0x913F, 0xF35D, 0x9140, 0xF35C, 0x9141, 0xF4E2, 0x9143, 0xF4E1, - 0x9144, 0xF65B, 0x9145, 0xF65C, 0x9146, 0xF65A, 0x9147, 0xF766, - 0x9148, 0xC5B0, 0x9149, 0xA8BB, 0x914A, 0xADAA, 0x914B, 0xADA9, - 0x914C, 0xB075, 0x914D, 0xB074, 0x914E, 0xD440, 0x914F, 0xD441, - 0x9150, 0xD3FE, 0x9152, 0xB073, 0x9153, 0xD7F5, 0x9155, 0xD7F6, - 0x9156, 0xD7F2, 0x9157, 0xB3A4, 0x9158, 0xD7F3, 0x915A, 0xD7F4, - 0x915F, 0xDC5F, 0x9160, 0xDC61, 0x9161, 0xDC5D, 0x9162, 0xDC60, - 0x9163, 0xB66F, 0x9164, 0xDC5E, 0x9165, 0xB670, 0x9168, 0xDD73, - 0x9169, 0xB955, 0x916A, 0xB954, 0x916C, 0xB953, 0x916E, 0xE0AC, - 0x916F, 0xE0AD, 0x9172, 0xE473, 0x9173, 0xE475, 0x9174, 0xBBC6, - 0x9175, 0xBBC3, 0x9177, 0xBBC5, 0x9178, 0xBBC4, 0x9179, 0xE474, - 0x917A, 0xE472, 0x9180, 0xE861, 0x9181, 0xE85E, 0x9182, 0xE85F, - 0x9183, 0xBE4D, 0x9184, 0xE860, 0x9185, 0xE85B, 0x9186, 0xE85C, - 0x9187, 0xBE4A, 0x9189, 0xBE4B, 0x918A, 0xE85D, 0x918B, 0xBE4C, - 0x918D, 0xEBDB, 0x918F, 0xEBDC, 0x9190, 0xEBD9, 0x9191, 0xEBDA, - 0x9192, 0xBFF4, 0x9193, 0xEBD8, 0x9199, 0xEEC8, 0x919A, 0xEEC5, - 0x919B, 0xEEC7, 0x919C, 0xC1E0, 0x919D, 0xEECB, 0x919E, 0xC1DF, - 0x919F, 0xEEC9, 0x91A0, 0xEECC, 0x91A1, 0xEECA, 0x91A2, 0xEEC6, - 0x91A3, 0xC1DE, 0x91A5, 0xF14F, 0x91A7, 0xF150, 0x91A8, 0xF14E, - 0x91AA, 0xF152, 0x91AB, 0xC2E5, 0x91AC, 0xC2E6, 0x91AD, 0xF35F, - 0x91AE, 0xC3E7, 0x91AF, 0xF151, 0x91B0, 0xF35E, 0x91B1, 0xC3E6, - 0x91B2, 0xF4E5, 0x91B3, 0xF4E6, 0x91B4, 0xC4BF, 0x91B5, 0xF4E4, - 0x91B7, 0xF4E3, 0x91B9, 0xF65D, 0x91BA, 0xC548, 0x91BC, 0xF849, - 0x91BD, 0xF8C8, 0x91BE, 0xF8C7, 0x91C0, 0xC643, 0x91C1, 0xC65D, - 0x91C2, 0xF8C9, 0x91C3, 0xF971, 0x91C5, 0xC66F, 0x91C6, 0xA8BC, - 0x91C7, 0xAAF6, 0x91C9, 0xB956, 0x91CB, 0xC4C0, 0x91CC, 0xA8BD, - 0x91CD, 0xADAB, 0x91CE, 0xB3A5, 0x91CF, 0xB671, 0x91D0, 0xC2E7, - 0x91D1, 0xAAF7, 0x91D3, 0xD0C1, 0x91D4, 0xD0C0, 0x91D5, 0xD442, - 0x91D7, 0xB078, 0x91D8, 0xB076, 0x91D9, 0xB07A, 0x91DA, 0xD444, - 0x91DC, 0xB079, 0x91DD, 0xB077, 0x91E2, 0xD443, 0x91E3, 0xB3A8, - 0x91E4, 0xD7FC, 0x91E6, 0xB3A7, 0x91E7, 0xB3A9, 0x91E8, 0xD842, - 0x91E9, 0xB3AB, 0x91EA, 0xD7FE, 0x91EB, 0xD840, 0x91EC, 0xD7F7, - 0x91ED, 0xB3AA, 0x91EE, 0xD843, 0x91F1, 0xD7F9, 0x91F3, 0xD7FA, - 0x91F4, 0xD7F8, 0x91F5, 0xB3A6, 0x91F7, 0xD841, 0x91F8, 0xD7FB, - 0x91F9, 0xD7FD, 0x91FD, 0xDC6D, 0x91FF, 0xDC6C, 0x9200, 0xDC6A, - 0x9201, 0xDC62, 0x9202, 0xDC71, 0x9203, 0xDC65, 0x9204, 0xDC6F, - 0x9205, 0xDC76, 0x9206, 0xDC6E, 0x9207, 0xB679, 0x9209, 0xB675, - 0x920A, 0xDC63, 0x920C, 0xDC69, 0x920D, 0xB677, 0x920F, 0xDC68, - 0x9210, 0xB678, 0x9211, 0xB67A, 0x9212, 0xDC6B, 0x9214, 0xB672, - 0x9215, 0xB673, 0x9216, 0xDC77, 0x9217, 0xDC75, 0x9219, 0xDC74, - 0x921A, 0xDC66, 0x921C, 0xDC72, 0x921E, 0xB676, 0x9223, 0xB674, - 0x9224, 0xDC73, 0x9225, 0xDC64, 0x9226, 0xDC67, 0x9227, 0xDC70, - 0x922D, 0xE4BA, 0x922E, 0xE0B7, 0x9230, 0xE0B0, 0x9231, 0xE0C3, - 0x9232, 0xE0CC, 0x9233, 0xE0B3, 0x9234, 0xB961, 0x9236, 0xE0C0, - 0x9237, 0xB957, 0x9238, 0xB959, 0x9239, 0xB965, 0x923A, 0xE0B1, - 0x923D, 0xB95A, 0x923E, 0xB95C, 0x923F, 0xB966, 0x9240, 0xB95B, - 0x9245, 0xB964, 0x9246, 0xE0B9, 0x9248, 0xE0AE, 0x9249, 0xB962, - 0x924A, 0xE0B8, 0x924B, 0xB95E, 0x924C, 0xE0CA, 0x924D, 0xB963, - 0x924E, 0xE0C8, 0x924F, 0xE0BC, 0x9250, 0xE0C6, 0x9251, 0xB960, - 0x9252, 0xE0AF, 0x9253, 0xE0C9, 0x9254, 0xE0C4, 0x9256, 0xE0CB, - 0x9257, 0xB958, 0x925A, 0xB967, 0x925B, 0xB95D, 0x925E, 0xE0B5, - 0x9260, 0xE0BD, 0x9261, 0xE0C1, 0x9263, 0xE0C5, 0x9264, 0xB95F, - 0x9265, 0xE0B4, 0x9266, 0xE0B2, 0x9267, 0xE0BE, 0x926C, 0xE0BB, - 0x926D, 0xE0BA, 0x926F, 0xE0BF, 0x9270, 0xE0C2, 0x9272, 0xE0C7, - 0x9276, 0xE478, 0x9278, 0xBBC7, 0x9279, 0xE4A4, 0x927A, 0xE47A, - 0x927B, 0xBBCC, 0x927C, 0xBBD0, 0x927D, 0xE4AD, 0x927E, 0xE4B5, - 0x927F, 0xE4A6, 0x9280, 0xBBC8, 0x9282, 0xE4AA, 0x9283, 0xE0B6, - 0x9285, 0xBBC9, 0x9286, 0xE4B1, 0x9287, 0xE4B6, 0x9288, 0xE4AE, - 0x928A, 0xE4B0, 0x928B, 0xE4B9, 0x928C, 0xE4B2, 0x928D, 0xE47E, - 0x928E, 0xE4A9, 0x9291, 0xBBD1, 0x9293, 0xBBCD, 0x9294, 0xE47C, - 0x9295, 0xE4AB, 0x9296, 0xBBCB, 0x9297, 0xE4A5, 0x9298, 0xBBCA, - 0x9299, 0xE4B3, 0x929A, 0xE4A2, 0x929B, 0xE479, 0x929C, 0xBBCE, - 0x929D, 0xE4B8, 0x92A0, 0xE47B, 0x92A1, 0xE4AF, 0x92A2, 0xE4AC, - 0x92A3, 0xE4A7, 0x92A4, 0xE477, 0x92A5, 0xE476, 0x92A6, 0xE4A1, - 0x92A7, 0xE4B4, 0x92A8, 0xBBCF, 0x92A9, 0xE4B7, 0x92AA, 0xE47D, - 0x92AB, 0xE4A3, 0x92AC, 0xBE52, 0x92B2, 0xBE5A, 0x92B3, 0xBE55, - 0x92B4, 0xE8A4, 0x92B5, 0xE8A1, 0x92B6, 0xE867, 0x92B7, 0xBE50, - 0x92B9, 0xF9D7, 0x92BB, 0xBE4F, 0x92BC, 0xBE56, 0x92C0, 0xE865, - 0x92C1, 0xBE54, 0x92C2, 0xE871, 0x92C3, 0xE863, 0x92C4, 0xE864, - 0x92C5, 0xBE4E, 0x92C6, 0xE8A3, 0x92C7, 0xBE58, 0x92C8, 0xE874, - 0x92C9, 0xE879, 0x92CA, 0xE873, 0x92CB, 0xEBEE, 0x92CC, 0xE86F, - 0x92CD, 0xE877, 0x92CE, 0xE875, 0x92CF, 0xE868, 0x92D0, 0xE862, - 0x92D1, 0xE87D, 0x92D2, 0xBE57, 0x92D3, 0xE87E, 0x92D5, 0xE878, - 0x92D7, 0xE86D, 0x92D8, 0xE86B, 0x92D9, 0xE866, 0x92DD, 0xE86E, - 0x92DE, 0xE87B, 0x92DF, 0xE86A, 0x92E0, 0xE87A, 0x92E1, 0xE8A2, - 0x92E4, 0xBE53, 0x92E6, 0xE876, 0x92E7, 0xE87C, 0x92E8, 0xE872, - 0x92E9, 0xE86C, 0x92EA, 0xBE51, 0x92EE, 0xE4A8, 0x92EF, 0xE870, - 0x92F0, 0xBE59, 0x92F1, 0xE869, 0x92F7, 0xEBF4, 0x92F8, 0xBFF7, - 0x92F9, 0xEBF3, 0x92FA, 0xEBF0, 0x92FB, 0xEC44, 0x92FC, 0xBFFB, - 0x92FE, 0xEC41, 0x92FF, 0xEBF8, 0x9300, 0xEC43, 0x9301, 0xEBE9, - 0x9302, 0xEBF6, 0x9304, 0xBFFD, 0x9306, 0xEBE1, 0x9308, 0xEBDF, - 0x9309, 0xEC42, 0x930B, 0xEC40, 0x930C, 0xEBFE, 0x930D, 0xEBED, - 0x930E, 0xEBEC, 0x930F, 0xEBE2, 0x9310, 0xC040, 0x9312, 0xEBE8, - 0x9313, 0xEBF2, 0x9314, 0xEBFD, 0x9315, 0xC043, 0x9316, 0xEC45, - 0x9318, 0xC1E8, 0x9319, 0xC045, 0x931A, 0xBFFE, 0x931B, 0xEBE6, - 0x931D, 0xEBEF, 0x931E, 0xEBDE, 0x931F, 0xEBE0, 0x9320, 0xBFF5, - 0x9321, 0xC042, 0x9322, 0xBFFA, 0x9323, 0xEBE7, 0x9324, 0xEBF7, - 0x9325, 0xEBF1, 0x9326, 0xC041, 0x9327, 0xEBDD, 0x9328, 0xC1E3, - 0x9329, 0xEBF9, 0x932A, 0xEBFC, 0x932B, 0xBFFC, 0x932D, 0xEBEB, - 0x932E, 0xC044, 0x932F, 0xBFF9, 0x9333, 0xBFF8, 0x9334, 0xEBF5, - 0x9335, 0xEBFB, 0x9336, 0xBFF6, 0x9338, 0xEBE4, 0x9339, 0xEBFA, - 0x933C, 0xEBE5, 0x9346, 0xEBEA, 0x9347, 0xEED2, 0x9349, 0xEED7, - 0x934A, 0xC1E5, 0x934B, 0xC1E7, 0x934C, 0xEEDD, 0x934D, 0xC1E1, - 0x934E, 0xEEEC, 0x934F, 0xEEE3, 0x9350, 0xEED8, 0x9351, 0xEED9, - 0x9352, 0xEEE2, 0x9354, 0xC1EE, 0x9355, 0xEEE1, 0x9356, 0xEED1, - 0x9357, 0xEEE0, 0x9358, 0xEED4, 0x9359, 0xEEED, 0x935A, 0xC1ED, - 0x935B, 0xC1EB, 0x935C, 0xEED5, 0x935E, 0xEEE8, 0x9360, 0xEEDA, - 0x9361, 0xEEE7, 0x9363, 0xEEE9, 0x9364, 0xEED0, 0x9365, 0xC1E6, - 0x9367, 0xEEEA, 0x936A, 0xEEDE, 0x936C, 0xC1EA, 0x936D, 0xEEDB, - 0x9370, 0xC1EC, 0x9371, 0xEEE4, 0x9375, 0xC1E4, 0x9376, 0xEED6, - 0x9377, 0xEEE5, 0x9379, 0xEEDF, 0x937A, 0xEBE3, 0x937B, 0xEEE6, - 0x937C, 0xEED3, 0x937E, 0xC1E9, 0x9380, 0xEEEB, 0x9382, 0xC1E2, - 0x9383, 0xEECE, 0x9388, 0xF160, 0x9389, 0xF159, 0x938A, 0xC2E9, - 0x938C, 0xF154, 0x938D, 0xF163, 0x938E, 0xF15B, 0x938F, 0xEEDC, - 0x9391, 0xF165, 0x9392, 0xF155, 0x9394, 0xC2E8, 0x9395, 0xF15F, - 0x9396, 0xC2EA, 0x9397, 0xC2F2, 0x9398, 0xC2F0, 0x9399, 0xF161, - 0x939A, 0xC2F1, 0x939B, 0xF157, 0x939D, 0xF158, 0x939E, 0xF15D, - 0x939F, 0xF162, 0x93A1, 0xEECD, 0x93A2, 0xC2EB, 0x93A3, 0xF16A, - 0x93A4, 0xF167, 0x93A5, 0xF16B, 0x93A6, 0xF15E, 0x93A7, 0xF15A, - 0x93A8, 0xF168, 0x93A9, 0xF36A, 0x93AA, 0xF15C, 0x93AC, 0xC2EE, - 0x93AE, 0xC2ED, 0x93AF, 0xEECF, 0x93B0, 0xC2EF, 0x93B1, 0xF164, - 0x93B2, 0xF166, 0x93B3, 0xC2EC, 0x93B4, 0xF169, 0x93B5, 0xF153, - 0x93B7, 0xF156, 0x93C0, 0xF373, 0x93C2, 0xF363, 0x93C3, 0xC3EB, - 0x93C4, 0xF371, 0x93C7, 0xF361, 0x93C8, 0xC3EC, 0x93CA, 0xF36C, - 0x93CC, 0xF368, 0x93CD, 0xC3F1, 0x93CE, 0xF372, 0x93CF, 0xF362, - 0x93D0, 0xF365, 0x93D1, 0xC3E9, 0x93D2, 0xF374, 0x93D4, 0xF36D, - 0x93D5, 0xF370, 0x93D6, 0xC3EF, 0x93D7, 0xC3F4, 0x93D8, 0xC3F2, - 0x93D9, 0xF369, 0x93DA, 0xF364, 0x93DC, 0xC3ED, 0x93DD, 0xC3EE, - 0x93DE, 0xF360, 0x93DF, 0xC3EA, 0x93E1, 0xC3E8, 0x93E2, 0xC3F0, - 0x93E3, 0xF36F, 0x93E4, 0xC3F3, 0x93E6, 0xF36B, 0x93E7, 0xF375, - 0x93E8, 0xC3F5, 0x93EC, 0xF367, 0x93EE, 0xF36E, 0x93F5, 0xF4F3, - 0x93F6, 0xF542, 0x93F7, 0xF4F5, 0x93F8, 0xF4FC, 0x93F9, 0xF366, - 0x93FA, 0xF4FA, 0x93FB, 0xF4E9, 0x93FC, 0xF540, 0x93FD, 0xC4C3, - 0x93FE, 0xF4ED, 0x93FF, 0xF4FE, 0x9400, 0xF4F4, 0x9403, 0xC4C2, - 0x9406, 0xF544, 0x9407, 0xF4F6, 0x9409, 0xF4FB, 0x940A, 0xF4FD, - 0x940B, 0xF4E7, 0x940C, 0xF541, 0x940D, 0xF4F2, 0x940E, 0xF4F7, - 0x940F, 0xF4EB, 0x9410, 0xF4EF, 0x9411, 0xF543, 0x9412, 0xF4F9, - 0x9413, 0xF4E8, 0x9414, 0xF4EC, 0x9415, 0xF4EE, 0x9416, 0xF4F8, - 0x9418, 0xC4C1, 0x9419, 0xF4F1, 0x9420, 0xF4EA, 0x9428, 0xF4F0, - 0x9429, 0xF661, 0x942A, 0xF666, 0x942B, 0xC54F, 0x942C, 0xF668, - 0x942E, 0xC549, 0x9430, 0xF664, 0x9431, 0xF66A, 0x9432, 0xC54E, - 0x9433, 0xC54A, 0x9435, 0xC54B, 0x9436, 0xF660, 0x9437, 0xF667, - 0x9438, 0xC54D, 0x9439, 0xF665, 0x943A, 0xC54C, 0x943B, 0xF65F, - 0x943C, 0xF663, 0x943D, 0xF662, 0x943F, 0xF65E, 0x9440, 0xF669, - 0x9444, 0xC5B1, 0x9445, 0xF76D, 0x9446, 0xF770, 0x9447, 0xF76C, - 0x9448, 0xF76E, 0x9449, 0xF76F, 0x944A, 0xF769, 0x944B, 0xF76A, - 0x944C, 0xF767, 0x944F, 0xF76B, 0x9450, 0xF768, 0x9451, 0xC5B2, - 0x9452, 0xC5B3, 0x9455, 0xF84B, 0x9457, 0xF84D, 0x945D, 0xF84C, - 0x945E, 0xF84E, 0x9460, 0xC5E0, 0x9462, 0xF84A, 0x9463, 0xC5DF, - 0x9464, 0xC5E1, 0x9468, 0xF8CB, 0x9469, 0xF8CC, 0x946A, 0xC644, - 0x946B, 0xF8CA, 0x946D, 0xF953, 0x946E, 0xF952, 0x946F, 0xF954, - 0x9470, 0xC65F, 0x9471, 0xF955, 0x9472, 0xC65E, 0x9473, 0xF956, - 0x9474, 0xF972, 0x9475, 0xF975, 0x9476, 0xF974, 0x9477, 0xC668, - 0x9478, 0xF973, 0x947C, 0xC672, 0x947D, 0xC670, 0x947E, 0xC671, - 0x947F, 0xC677, 0x9480, 0xF9C0, 0x9481, 0xF9C1, 0x9482, 0xF9BF, - 0x9483, 0xF9C9, 0x9577, 0xAAF8, 0x957A, 0xD844, 0x957B, 0xDC78, - 0x957C, 0xE8A5, 0x957D, 0xF376, 0x9580, 0xAAF9, 0x9582, 0xADAC, - 0x9583, 0xB07B, 0x9586, 0xD845, 0x9588, 0xD846, 0x9589, 0xB3AC, - 0x958B, 0xB67D, 0x958C, 0xDC7A, 0x958D, 0xDC79, 0x958E, 0xB6A3, - 0x958F, 0xB67C, 0x9590, 0xDC7B, 0x9591, 0xB67E, 0x9592, 0xB6A2, - 0x9593, 0xB6A1, 0x9594, 0xB67B, 0x9598, 0xB968, 0x959B, 0xE0D0, - 0x959C, 0xE0CE, 0x959E, 0xE0CF, 0x959F, 0xE0CD, 0x95A1, 0xBBD2, - 0x95A3, 0xBBD5, 0x95A4, 0xBBD7, 0x95A5, 0xBBD6, 0x95A8, 0xBBD3, - 0x95A9, 0xBBD4, 0x95AB, 0xE8A7, 0x95AC, 0xE8A6, 0x95AD, 0xBE5B, - 0x95AE, 0xE8A8, 0x95B0, 0xE8A9, 0x95B1, 0xBE5C, 0x95B5, 0xEC4D, - 0x95B6, 0xEC4B, 0x95B7, 0xEEF3, 0x95B9, 0xEC49, 0x95BA, 0xEC4A, - 0x95BB, 0xC046, 0x95BC, 0xEC46, 0x95BD, 0xEC4E, 0x95BE, 0xEC48, - 0x95BF, 0xEC4C, 0x95C0, 0xEEEF, 0x95C3, 0xEEF1, 0x95C5, 0xEEF2, - 0x95C6, 0xC1F3, 0x95C7, 0xEEEE, 0x95C8, 0xC1F2, 0x95C9, 0xEEF0, - 0x95CA, 0xC1EF, 0x95CB, 0xC1F0, 0x95CC, 0xC1F1, 0x95CD, 0xEC47, - 0x95D0, 0xC2F5, 0x95D1, 0xF16E, 0x95D2, 0xF16C, 0x95D3, 0xF16D, - 0x95D4, 0xC2F3, 0x95D5, 0xC2F6, 0x95D6, 0xC2F4, 0x95DA, 0xF377, - 0x95DB, 0xF378, 0x95DC, 0xC3F6, 0x95DE, 0xF545, 0x95DF, 0xF547, - 0x95E0, 0xF546, 0x95E1, 0xC4C4, 0x95E2, 0xC550, 0x95E3, 0xF66D, - 0x95E4, 0xF66C, 0x95E5, 0xF66B, 0x961C, 0xAAFA, 0x961E, 0xC9AA, - 0x9620, 0xCA58, 0x9621, 0xA6E9, 0x9622, 0xCA56, 0x9623, 0xCA59, - 0x9624, 0xCA57, 0x9628, 0xCBAE, 0x962A, 0xA8C1, 0x962C, 0xA8C2, - 0x962D, 0xCBB0, 0x962E, 0xA8BF, 0x962F, 0xCBAF, 0x9630, 0xCBAD, - 0x9631, 0xA8C0, 0x9632, 0xA8BE, 0x9639, 0xCDD8, 0x963A, 0xCDDB, - 0x963B, 0xAAFD, 0x963C, 0xCDDA, 0x963D, 0xCDD9, 0x963F, 0xAAFC, - 0x9640, 0xAAFB, 0x9642, 0xAB40, 0x9643, 0xCDDC, 0x9644, 0xAAFE, - 0x964A, 0xD0C6, 0x964B, 0xADAE, 0x964C, 0xADAF, 0x964D, 0xADB0, - 0x964E, 0xD0C7, 0x964F, 0xD0C3, 0x9650, 0xADAD, 0x9651, 0xD0C4, - 0x9653, 0xD0C5, 0x9654, 0xD0C2, 0x9658, 0xB0A4, 0x965B, 0xB0A1, - 0x965C, 0xD445, 0x965D, 0xB0A2, 0x965E, 0xB0A5, 0x965F, 0xD446, - 0x9661, 0xB07E, 0x9662, 0xB07C, 0x9663, 0xB07D, 0x9664, 0xB0A3, - 0x966A, 0xB3AD, 0x966B, 0xD849, 0x966C, 0xB3B5, 0x966D, 0xD848, - 0x966F, 0xD84B, 0x9670, 0xB3B1, 0x9671, 0xD84A, 0x9672, 0xB6AB, - 0x9673, 0xB3AF, 0x9674, 0xB3B2, 0x9675, 0xB3AE, 0x9676, 0xB3B3, - 0x9677, 0xB3B4, 0x9678, 0xB3B0, 0x967C, 0xD847, 0x967D, 0xB6A7, - 0x967E, 0xDC7D, 0x9680, 0xDCA3, 0x9683, 0xDCA2, 0x9684, 0xB6AC, - 0x9685, 0xB6A8, 0x9686, 0xB6A9, 0x9687, 0xDC7C, 0x9688, 0xDC7E, - 0x9689, 0xDCA1, 0x968A, 0xB6A4, 0x968B, 0xB6A6, 0x968D, 0xB6AA, - 0x968E, 0xB6A5, 0x9691, 0xE0D3, 0x9692, 0xE0D1, 0x9693, 0xE0D2, - 0x9694, 0xB96A, 0x9695, 0xB96B, 0x9697, 0xE0D4, 0x9698, 0xB969, - 0x9699, 0xBBD8, 0x969B, 0xBBDA, 0x969C, 0xBBD9, 0x969E, 0xE4BB, - 0x96A1, 0xE4BC, 0x96A2, 0xE8AB, 0x96A4, 0xE8AA, 0x96A7, 0xC047, - 0x96A8, 0xC048, 0x96A9, 0xEC4F, 0x96AA, 0xC049, 0x96AC, 0xEEF6, - 0x96AE, 0xEEF4, 0x96B0, 0xEEF5, 0x96B1, 0xC1F4, 0x96B3, 0xF16F, - 0x96B4, 0xC3F7, 0x96B8, 0xC1F5, 0x96B9, 0xAB41, 0x96BB, 0xB0A6, - 0x96BC, 0xD447, 0x96BF, 0xD84C, 0x96C0, 0xB3B6, 0x96C1, 0xB6AD, - 0x96C2, 0xDCA4, 0x96C3, 0xDCA6, 0x96C4, 0xB6AF, 0x96C5, 0xB6AE, - 0x96C6, 0xB6B0, 0x96C7, 0xB6B1, 0x96C8, 0xDCA5, 0x96C9, 0xB96E, - 0x96CA, 0xB96F, 0x96CB, 0xB96D, 0x96CC, 0xBBDB, 0x96CD, 0xB96C, - 0x96CE, 0xE0D5, 0x96D2, 0xBBDC, 0x96D3, 0xE8AC, 0x96D4, 0xEC50, - 0x96D5, 0xC04A, 0x96D6, 0xC1F6, 0x96D7, 0xF170, 0x96D8, 0xF174, - 0x96D9, 0xC2F9, 0x96DA, 0xF171, 0x96DB, 0xC2FA, 0x96DC, 0xC2F8, - 0x96DD, 0xF175, 0x96DE, 0xC2FB, 0x96DF, 0xF173, 0x96E1, 0xF379, - 0x96E2, 0xC2F7, 0x96E3, 0xC3F8, 0x96E5, 0xF8CD, 0x96E8, 0xAB42, - 0x96E9, 0xB3B8, 0x96EA, 0xB3B7, 0x96EF, 0xB6B2, 0x96F0, 0xDCA8, - 0x96F1, 0xDCA7, 0x96F2, 0xB6B3, 0x96F5, 0xE0D9, 0x96F6, 0xB973, - 0x96F7, 0xB970, 0x96F8, 0xE0D8, 0x96F9, 0xB972, 0x96FA, 0xE0D6, - 0x96FB, 0xB971, 0x96FD, 0xE0D7, 0x96FF, 0xE4BD, 0x9700, 0xBBDD, - 0x9702, 0xE8AF, 0x9704, 0xBE5D, 0x9705, 0xE8AD, 0x9706, 0xBE5E, - 0x9707, 0xBE5F, 0x9708, 0xE8AE, 0x9709, 0xBE60, 0x970B, 0xEC51, - 0x970D, 0xC04E, 0x970E, 0xC04B, 0x970F, 0xC050, 0x9710, 0xEC53, - 0x9711, 0xC04C, 0x9712, 0xEC52, 0x9713, 0xC04F, 0x9716, 0xC04D, - 0x9718, 0xEEF9, 0x9719, 0xEEFB, 0x971C, 0xC1F7, 0x971D, 0xEEFA, - 0x971E, 0xC1F8, 0x971F, 0xEEF8, 0x9720, 0xEEF7, 0x9722, 0xF177, - 0x9723, 0xF176, 0x9724, 0xC2FC, 0x9725, 0xF178, 0x9726, 0xF37E, - 0x9727, 0xC3FA, 0x9728, 0xF37D, 0x9729, 0xF37A, 0x972A, 0xC3F9, - 0x972B, 0xF37B, 0x972C, 0xF37C, 0x972E, 0xF548, 0x972F, 0xF549, - 0x9730, 0xC4C5, 0x9732, 0xC553, 0x9735, 0xF66E, 0x9738, 0xC551, - 0x9739, 0xC552, 0x973A, 0xF66F, 0x973D, 0xC5B4, 0x973E, 0xC5B5, - 0x973F, 0xF771, 0x9742, 0xC645, 0x9743, 0xF8CF, 0x9744, 0xC647, - 0x9746, 0xF8CE, 0x9747, 0xF8D0, 0x9748, 0xC646, 0x9749, 0xF957, - 0x974B, 0xF9AD, 0x9752, 0xAB43, 0x9756, 0xB974, 0x9758, 0xE4BE, - 0x975A, 0xE8B0, 0x975B, 0xC051, 0x975C, 0xC052, 0x975E, 0xAB44, - 0x9760, 0xBE61, 0x9761, 0xC3FB, 0x9762, 0xADB1, 0x9766, 0xC053, - 0x9768, 0xC5E2, 0x9769, 0xADB2, 0x976A, 0xD84D, 0x976C, 0xDCA9, - 0x976E, 0xDCAB, 0x9770, 0xDCAA, 0x9772, 0xE0DD, 0x9773, 0xE0DA, - 0x9774, 0xB975, 0x9776, 0xB976, 0x9777, 0xE0DB, 0x9778, 0xE0DC, - 0x977A, 0xE4C0, 0x977B, 0xE4C5, 0x977C, 0xBBDE, 0x977D, 0xE4BF, - 0x977E, 0xE4C1, 0x977F, 0xE4C8, 0x9780, 0xE4C3, 0x9781, 0xE4C7, - 0x9782, 0xE4C4, 0x9783, 0xE4C2, 0x9784, 0xE4C6, 0x9785, 0xBBDF, - 0x9788, 0xE8B3, 0x978A, 0xE8B1, 0x978B, 0xBE63, 0x978D, 0xBE62, - 0x978E, 0xE8B2, 0x978F, 0xBE64, 0x9794, 0xEC56, 0x9797, 0xEC55, - 0x9798, 0xC054, 0x9799, 0xEC54, 0x979A, 0xEEFC, 0x979C, 0xEEFE, - 0x979D, 0xEF41, 0x979E, 0xEF40, 0x97A0, 0xC1F9, 0x97A1, 0xEEFD, - 0x97A2, 0xF1A1, 0x97A3, 0xC2FD, 0x97A4, 0xF17D, 0x97A5, 0xF1A2, - 0x97A6, 0xC2FE, 0x97A8, 0xF17B, 0x97AA, 0xF17E, 0x97AB, 0xF17C, - 0x97AC, 0xF179, 0x97AD, 0xC340, 0x97AE, 0xF17A, 0x97B3, 0xF3A1, - 0x97B6, 0xF3A3, 0x97B7, 0xF3A2, 0x97B9, 0xF54A, 0x97BB, 0xF54B, - 0x97BF, 0xF670, 0x97C1, 0xC5B7, 0x97C3, 0xC5B6, 0x97C4, 0xF84F, - 0x97C5, 0xF850, 0x97C6, 0xC648, 0x97C7, 0xF8D1, 0x97C9, 0xC669, - 0x97CB, 0xADB3, 0x97CC, 0xB6B4, 0x97CD, 0xE4CA, 0x97CE, 0xE4C9, - 0x97CF, 0xE8B5, 0x97D0, 0xE8B4, 0x97D3, 0xC1FA, 0x97D4, 0xEF43, - 0x97D5, 0xEF42, 0x97D6, 0xF1A5, 0x97D7, 0xF1A3, 0x97D8, 0xF1A6, - 0x97D9, 0xF1A4, 0x97DC, 0xC3FC, 0x97DD, 0xF3A4, 0x97DE, 0xF3A5, - 0x97DF, 0xF3A6, 0x97E1, 0xF671, 0x97E3, 0xF772, 0x97E5, 0xF8D2, - 0x97ED, 0xADB4, 0x97F0, 0xEC57, 0x97F1, 0xEF44, 0x97F3, 0xADB5, - 0x97F6, 0xBBE0, 0x97F8, 0xEC58, 0x97F9, 0xC341, 0x97FA, 0xF1A7, - 0x97FB, 0xC3FD, 0x97FD, 0xF54C, 0x97FE, 0xF54D, 0x97FF, 0xC554, - 0x9800, 0xF851, 0x9801, 0xADB6, 0x9802, 0xB3BB, 0x9803, 0xB3BC, - 0x9804, 0xD84E, 0x9805, 0xB6B5, 0x9806, 0xB6B6, 0x9807, 0xDCAC, - 0x9808, 0xB6B7, 0x980A, 0xB97A, 0x980C, 0xB97C, 0x980D, 0xE0DF, - 0x980E, 0xE0E0, 0x980F, 0xE0DE, 0x9810, 0xB977, 0x9811, 0xB978, - 0x9812, 0xB97B, 0x9813, 0xB979, 0x9816, 0xE4CB, 0x9817, 0xBBE1, - 0x9818, 0xBBE2, 0x981B, 0xE8BC, 0x981C, 0xBE67, 0x981D, 0xE8B7, - 0x981E, 0xE8B6, 0x9820, 0xE8BB, 0x9821, 0xBE65, 0x9824, 0xC05B, - 0x9826, 0xE8B8, 0x9827, 0xE8BD, 0x9828, 0xE8BA, 0x9829, 0xE8B9, - 0x982B, 0xBE66, 0x982D, 0xC059, 0x982F, 0xEC5A, 0x9830, 0xC055, - 0x9832, 0xEC5B, 0x9835, 0xEC59, 0x9837, 0xC058, 0x9838, 0xC056, - 0x9839, 0xC05A, 0x983B, 0xC057, 0x9841, 0xEF45, 0x9843, 0xEF4A, - 0x9844, 0xEF46, 0x9845, 0xEF49, 0x9846, 0xC1FB, 0x9848, 0xEDD4, - 0x9849, 0xEF48, 0x984A, 0xEF47, 0x984C, 0xC344, 0x984D, 0xC342, - 0x984E, 0xC345, 0x984F, 0xC343, 0x9850, 0xF1A8, 0x9851, 0xF1A9, - 0x9852, 0xF1AA, 0x9853, 0xC346, 0x9857, 0xF3AA, 0x9858, 0xC440, - 0x9859, 0xF3A8, 0x985B, 0xC441, 0x985C, 0xF3A7, 0x985D, 0xF3A9, - 0x985E, 0xC3FE, 0x985F, 0xF551, 0x9860, 0xF54E, 0x9862, 0xF54F, - 0x9863, 0xF550, 0x9864, 0xF672, 0x9865, 0xC556, 0x9867, 0xC555, - 0x9869, 0xF774, 0x986A, 0xF773, 0x986B, 0xC5B8, 0x986F, 0xC5E3, - 0x9870, 0xC649, 0x9871, 0xC660, 0x9872, 0xF958, 0x9873, 0xF9AE, - 0x9874, 0xF9AF, 0x98A8, 0xADB7, 0x98A9, 0xDCAD, 0x98AC, 0xE0E1, - 0x98AD, 0xE4CC, 0x98AE, 0xE4CD, 0x98AF, 0xBBE3, 0x98B1, 0xBBE4, - 0x98B2, 0xE8BE, 0x98B3, 0xBE68, 0x98B6, 0xC1FC, 0x98B8, 0xF1AB, - 0x98BA, 0xC347, 0x98BB, 0xF3AD, 0x98BC, 0xC442, 0x98BD, 0xF3AC, - 0x98BE, 0xF3AE, 0x98BF, 0xF3AB, 0x98C0, 0xF675, 0x98C1, 0xF552, - 0x98C2, 0xF553, 0x98C4, 0xC4C6, 0x98C6, 0xF674, 0x98C9, 0xF673, - 0x98CB, 0xF775, 0x98CC, 0xF9B0, 0x98DB, 0xADB8, 0x98DF, 0xADB9, - 0x98E2, 0xB0A7, 0x98E3, 0xD448, 0x98E5, 0xD84F, 0x98E7, 0xB6B8, - 0x98E9, 0xB6BB, 0x98EA, 0xB6B9, 0x98EB, 0xDCAE, 0x98ED, 0xB6BD, - 0x98EF, 0xB6BA, 0x98F2, 0xB6BC, 0x98F4, 0xB97E, 0x98F6, 0xE0E2, - 0x98F9, 0xE0E3, 0x98FA, 0xE8C0, 0x98FC, 0xB97D, 0x98FD, 0xB9A1, - 0x98FE, 0xB9A2, 0x9900, 0xE4CF, 0x9902, 0xE4CE, 0x9903, 0xBBE5, - 0x9905, 0xBBE6, 0x9907, 0xE4D0, 0x9908, 0xE8BF, 0x9909, 0xBBE8, - 0x990A, 0xBE69, 0x990C, 0xBBE7, 0x9910, 0xC05C, 0x9911, 0xE8C1, - 0x9912, 0xBE6B, 0x9913, 0xBE6A, 0x9914, 0xE8C2, 0x9915, 0xE8C5, - 0x9916, 0xE8C3, 0x9917, 0xE8C4, 0x9918, 0xBE6C, 0x991A, 0xC061, - 0x991B, 0xC05F, 0x991E, 0xC05E, 0x991F, 0xEC5D, 0x9921, 0xC060, - 0x9924, 0xEC5C, 0x9925, 0xEF4B, 0x9927, 0xEC5E, 0x9928, 0xC05D, - 0x9929, 0xEC5F, 0x992A, 0xEF4E, 0x992B, 0xEF4C, 0x992C, 0xEF4D, - 0x992D, 0xEF52, 0x992E, 0xC34B, 0x992F, 0xEF51, 0x9930, 0xEF54, - 0x9931, 0xEF53, 0x9932, 0xEF50, 0x9933, 0xEF4F, 0x9935, 0xC1FD, - 0x993A, 0xF1AE, 0x993C, 0xF1AD, 0x993D, 0xC34A, 0x993E, 0xC348, - 0x993F, 0xC349, 0x9941, 0xF1AC, 0x9943, 0xF3B1, 0x9945, 0xC443, - 0x9947, 0xF3B0, 0x9948, 0xF3AF, 0x9949, 0xC444, 0x994B, 0xF558, - 0x994C, 0xF557, 0x994E, 0xF555, 0x9950, 0xF554, 0x9951, 0xC4C8, - 0x9952, 0xC4C7, 0x9953, 0xF559, 0x9954, 0xF776, 0x9955, 0xC5B9, - 0x9956, 0xF677, 0x9957, 0xC557, 0x9958, 0xF676, 0x9959, 0xF556, - 0x995B, 0xF777, 0x995C, 0xC5E4, 0x995E, 0xC661, 0x995F, 0xF959, - 0x9961, 0xF9B1, 0x9996, 0xADBA, 0x9997, 0xD850, 0x9998, 0xEF55, - 0x9999, 0xADBB, 0x999C, 0xE4D2, 0x999D, 0xE4D1, 0x999E, 0xEC60, - 0x99A1, 0xEF57, 0x99A3, 0xEF56, 0x99A5, 0xC34C, 0x99A6, 0xF3B2, - 0x99A7, 0xF3B3, 0x99A8, 0xC4C9, 0x99AB, 0xF9B2, 0x99AC, 0xB0A8, - 0x99AD, 0xB6BF, 0x99AE, 0xB6BE, 0x99AF, 0xE0E4, 0x99B0, 0xE0E6, - 0x99B1, 0xB9A4, 0x99B2, 0xE0E5, 0x99B3, 0xB9A3, 0x99B4, 0xB9A5, - 0x99B5, 0xE0E7, 0x99B9, 0xE4D4, 0x99BA, 0xE4D6, 0x99BB, 0xE4D5, - 0x99BD, 0xE4D8, 0x99C1, 0xBBE9, 0x99C2, 0xE4D7, 0x99C3, 0xE4D3, - 0x99C7, 0xE4D9, 0x99C9, 0xE8CC, 0x99CB, 0xE8CF, 0x99CC, 0xE8D1, - 0x99CD, 0xE8C7, 0x99CE, 0xE8CB, 0x99CF, 0xE8C8, 0x99D0, 0xBE6E, - 0x99D1, 0xBE71, 0x99D2, 0xBE73, 0x99D3, 0xE8C9, 0x99D4, 0xE8CA, - 0x99D5, 0xBE72, 0x99D6, 0xE8CD, 0x99D7, 0xE8D0, 0x99D8, 0xE8CE, - 0x99D9, 0xBE74, 0x99DB, 0xBE70, 0x99DC, 0xE8C6, 0x99DD, 0xBE6D, - 0x99DF, 0xBE6F, 0x99E2, 0xC063, 0x99E3, 0xEC66, 0x99E4, 0xEC64, - 0x99E5, 0xEC63, 0x99E7, 0xEC69, 0x99E9, 0xEC68, 0x99EA, 0xEC67, - 0x99EC, 0xEC62, 0x99ED, 0xC062, 0x99EE, 0xEC61, 0x99F0, 0xEC65, - 0x99F1, 0xC064, 0x99F4, 0xEF5A, 0x99F6, 0xEF5E, 0x99F7, 0xEF5B, - 0x99F8, 0xEF5D, 0x99F9, 0xEF5C, 0x99FA, 0xEF59, 0x99FB, 0xEF5F, - 0x99FC, 0xEF62, 0x99FD, 0xEF60, 0x99FE, 0xEF61, 0x99FF, 0xC240, - 0x9A01, 0xC1FE, 0x9A02, 0xEF58, 0x9A03, 0xEF63, 0x9A04, 0xF1B3, - 0x9A05, 0xF1B6, 0x9A06, 0xF1B8, 0x9A07, 0xF1B7, 0x9A09, 0xF1B1, - 0x9A0A, 0xF1B5, 0x9A0B, 0xF1B0, 0x9A0D, 0xF1B2, 0x9A0E, 0xC34D, - 0x9A0F, 0xF1AF, 0x9A11, 0xF1B4, 0x9A14, 0xF3C0, 0x9A15, 0xF3B5, - 0x9A16, 0xC445, 0x9A19, 0xC446, 0x9A1A, 0xF3B4, 0x9A1B, 0xF3B9, - 0x9A1C, 0xF3BF, 0x9A1D, 0xF3B7, 0x9A1E, 0xF3BE, 0x9A20, 0xF3BB, - 0x9A22, 0xF3BA, 0x9A23, 0xF3BD, 0x9A24, 0xF3B8, 0x9A25, 0xF3B6, - 0x9A27, 0xF3BC, 0x9A29, 0xF560, 0x9A2A, 0xF55E, 0x9A2B, 0xC4CA, - 0x9A2C, 0xF55D, 0x9A2D, 0xF563, 0x9A2E, 0xF561, 0x9A30, 0xC4CB, - 0x9A31, 0xF55C, 0x9A32, 0xF55A, 0x9A34, 0xF55B, 0x9A35, 0xC4CD, - 0x9A36, 0xF55F, 0x9A37, 0xC4CC, 0x9A38, 0xF562, 0x9A39, 0xF678, - 0x9A3A, 0xF67E, 0x9A3D, 0xF679, 0x9A3E, 0xC55B, 0x9A3F, 0xF6A1, - 0x9A40, 0xC55A, 0x9A41, 0xF67D, 0x9A42, 0xF67C, 0x9A43, 0xC559, - 0x9A44, 0xF67B, 0x9A45, 0xC558, 0x9A46, 0xF67A, 0x9A48, 0xF77D, - 0x9A49, 0xF7A1, 0x9A4A, 0xF77E, 0x9A4C, 0xF77B, 0x9A4D, 0xC5BB, - 0x9A4E, 0xF778, 0x9A4F, 0xF77C, 0x9A50, 0xF7A3, 0x9A52, 0xF7A2, - 0x9A53, 0xF779, 0x9A54, 0xF77A, 0x9A55, 0xC5BA, 0x9A56, 0xF852, - 0x9A57, 0xC5E7, 0x9A59, 0xF853, 0x9A5A, 0xC5E5, 0x9A5B, 0xC5E6, - 0x9A5E, 0xF8D3, 0x9A5F, 0xC64A, 0x9A60, 0xF976, 0x9A62, 0xC66A, - 0x9A64, 0xF9B3, 0x9A65, 0xC66B, 0x9A66, 0xF9B4, 0x9A67, 0xF9B5, - 0x9A68, 0xF9C3, 0x9A69, 0xF9C2, 0x9A6A, 0xC67A, 0x9A6B, 0xF9CD, - 0x9AA8, 0xB0A9, 0x9AAB, 0xE0E9, 0x9AAD, 0xE0E8, 0x9AAF, 0xBBEA, - 0x9AB0, 0xBBEB, 0x9AB1, 0xE4DA, 0x9AB3, 0xE8D2, 0x9AB4, 0xEC6C, - 0x9AB7, 0xBE75, 0x9AB8, 0xC065, 0x9AB9, 0xEC6A, 0x9ABB, 0xEC6D, - 0x9ABC, 0xC066, 0x9ABE, 0xEF64, 0x9ABF, 0xEC6B, 0x9AC0, 0xF1B9, - 0x9AC1, 0xC34E, 0x9AC2, 0xF3C1, 0x9AC6, 0xF566, 0x9AC7, 0xF564, - 0x9ACA, 0xF565, 0x9ACD, 0xF6A2, 0x9ACF, 0xC55C, 0x9AD0, 0xF7A4, - 0x9AD1, 0xC5EA, 0x9AD2, 0xC5BC, 0x9AD3, 0xC5E8, 0x9AD4, 0xC5E9, - 0x9AD5, 0xF8D4, 0x9AD6, 0xC662, 0x9AD8, 0xB0AA, 0x9ADC, 0xF1BA, - 0x9ADF, 0xD449, 0x9AE1, 0xB9A6, 0x9AE3, 0xE4DB, 0x9AE6, 0xBBEC, - 0x9AE7, 0xE4DC, 0x9AEB, 0xE8D4, 0x9AEC, 0xE8D3, 0x9AED, 0xC068, - 0x9AEE, 0xBE76, 0x9AEF, 0xBE77, 0x9AF1, 0xE8D7, 0x9AF2, 0xE8D6, - 0x9AF3, 0xE8D5, 0x9AF6, 0xEC6E, 0x9AF7, 0xEC71, 0x9AF9, 0xEC70, - 0x9AFA, 0xEC6F, 0x9AFB, 0xC067, 0x9AFC, 0xEF68, 0x9AFD, 0xEF66, - 0x9AFE, 0xEF65, 0x9B01, 0xEF67, 0x9B03, 0xC34F, 0x9B04, 0xF1BC, - 0x9B05, 0xF1BD, 0x9B06, 0xC350, 0x9B08, 0xF1BB, 0x9B0A, 0xF3C3, - 0x9B0B, 0xF3C2, 0x9B0C, 0xF3C5, 0x9B0D, 0xC447, 0x9B0E, 0xF3C4, - 0x9B10, 0xF567, 0x9B11, 0xF569, 0x9B12, 0xF568, 0x9B15, 0xF6A3, - 0x9B16, 0xF6A6, 0x9B17, 0xF6A4, 0x9B18, 0xF6A5, 0x9B19, 0xF7A5, - 0x9B1A, 0xC5BD, 0x9B1E, 0xF854, 0x9B1F, 0xF855, 0x9B20, 0xF856, - 0x9B22, 0xC64B, 0x9B23, 0xC663, 0x9B24, 0xF9B6, 0x9B25, 0xB0AB, - 0x9B27, 0xBE78, 0x9B28, 0xC069, 0x9B29, 0xF1BE, 0x9B2B, 0xF7A6, - 0x9B2E, 0xF9C4, 0x9B2F, 0xD44A, 0x9B31, 0xC67B, 0x9B32, 0xB0AC, - 0x9B33, 0xEC72, 0x9B35, 0xF1BF, 0x9B37, 0xF3C6, 0x9B3A, 0xF6A7, - 0x9B3B, 0xF7A7, 0x9B3C, 0xB0AD, 0x9B3E, 0xE4DD, 0x9B3F, 0xE4DE, - 0x9B41, 0xBBED, 0x9B42, 0xBBEE, 0x9B43, 0xE8D9, 0x9B44, 0xBE7A, - 0x9B45, 0xBE79, 0x9B46, 0xE8D8, 0x9B48, 0xEF69, 0x9B4A, 0xF1C0, - 0x9B4B, 0xF1C2, 0x9B4C, 0xF1C1, 0x9B4D, 0xC353, 0x9B4E, 0xC352, - 0x9B4F, 0xC351, 0x9B51, 0xC55E, 0x9B52, 0xF6A8, 0x9B54, 0xC55D, - 0x9B55, 0xF7A9, 0x9B56, 0xF7A8, 0x9B58, 0xC64C, 0x9B59, 0xF8D5, - 0x9B5A, 0xB3BD, 0x9B5B, 0xE0EA, 0x9B5F, 0xE4E1, 0x9B60, 0xE4DF, - 0x9B61, 0xE4E0, 0x9B64, 0xE8E2, 0x9B66, 0xE8DD, 0x9B67, 0xE8DA, - 0x9B68, 0xE8E1, 0x9B6C, 0xE8E3, 0x9B6F, 0xBE7C, 0x9B70, 0xE8E0, - 0x9B71, 0xE8DC, 0x9B74, 0xE8DB, 0x9B75, 0xE8DF, 0x9B76, 0xE8DE, - 0x9B77, 0xBE7B, 0x9B7A, 0xEC7D, 0x9B7B, 0xEC78, 0x9B7C, 0xEC76, - 0x9B7D, 0xECA1, 0x9B7E, 0xEC77, 0x9B80, 0xEC73, 0x9B82, 0xEC79, - 0x9B85, 0xEC74, 0x9B86, 0xEF72, 0x9B87, 0xEC75, 0x9B88, 0xECA2, - 0x9B90, 0xEC7C, 0x9B91, 0xC06A, 0x9B92, 0xEC7B, 0x9B93, 0xEC7A, - 0x9B95, 0xEC7E, 0x9B9A, 0xEF6A, 0x9B9B, 0xEF6D, 0x9B9E, 0xEF6C, - 0x9BA0, 0xEF74, 0x9BA1, 0xEF6F, 0x9BA2, 0xEF73, 0x9BA4, 0xEF71, - 0x9BA5, 0xEF70, 0x9BA6, 0xEF6E, 0x9BA8, 0xEF6B, 0x9BAA, 0xC243, - 0x9BAB, 0xC242, 0x9BAD, 0xC244, 0x9BAE, 0xC241, 0x9BAF, 0xEF75, - 0x9BB5, 0xF1C8, 0x9BB6, 0xF1CB, 0x9BB8, 0xF1C9, 0x9BB9, 0xF1CD, - 0x9BBD, 0xF1CE, 0x9BBF, 0xF1C6, 0x9BC0, 0xC358, 0x9BC1, 0xF1C7, - 0x9BC3, 0xF1C5, 0x9BC4, 0xF1CC, 0x9BC6, 0xF1C4, 0x9BC7, 0xF1C3, - 0x9BC8, 0xC357, 0x9BC9, 0xC355, 0x9BCA, 0xC354, 0x9BD3, 0xF1CA, - 0x9BD4, 0xF3CF, 0x9BD5, 0xF3D5, 0x9BD6, 0xC44A, 0x9BD7, 0xF3D0, - 0x9BD9, 0xF3D3, 0x9BDA, 0xF3D7, 0x9BDB, 0xC44B, 0x9BDC, 0xF3D2, - 0x9BDE, 0xF3CA, 0x9BE0, 0xF3C9, 0x9BE1, 0xF3D6, 0x9BE2, 0xF3CD, - 0x9BE4, 0xF3CB, 0x9BE5, 0xF3D4, 0x9BE6, 0xF3CC, 0x9BE7, 0xC449, - 0x9BE8, 0xC448, 0x9BEA, 0xF3C7, 0x9BEB, 0xF3C8, 0x9BEC, 0xF3D1, - 0x9BF0, 0xF3CE, 0x9BF7, 0xF56C, 0x9BF8, 0xF56F, 0x9BFD, 0xC356, - 0x9C05, 0xF56D, 0x9C06, 0xF573, 0x9C07, 0xF571, 0x9C08, 0xF56B, - 0x9C09, 0xF576, 0x9C0B, 0xF56A, 0x9C0D, 0xC4CF, 0x9C0E, 0xF572, - 0x9C12, 0xF56E, 0x9C13, 0xC4CE, 0x9C14, 0xF575, 0x9C17, 0xF574, - 0x9C1C, 0xF6AB, 0x9C1D, 0xF6AA, 0x9C21, 0xF6B1, 0x9C23, 0xF6AD, - 0x9C24, 0xF6B0, 0x9C25, 0xC560, 0x9C28, 0xF6AE, 0x9C29, 0xF6AF, - 0x9C2B, 0xF6A9, 0x9C2C, 0xF6AC, 0x9C2D, 0xC55F, 0x9C31, 0xC5BF, - 0x9C32, 0xF7B4, 0x9C33, 0xF7AF, 0x9C34, 0xF7B3, 0x9C36, 0xF7B6, - 0x9C37, 0xF7B2, 0x9C39, 0xF7AE, 0x9C3B, 0xC5C1, 0x9C3C, 0xF7B1, - 0x9C3D, 0xF7B5, 0x9C3E, 0xC5C0, 0x9C3F, 0xF7AC, 0x9C40, 0xF570, - 0x9C41, 0xF7B0, 0x9C44, 0xF7AD, 0x9C46, 0xF7AA, 0x9C48, 0xF7AB, - 0x9C49, 0xC5BE, 0x9C4A, 0xF85A, 0x9C4B, 0xF85C, 0x9C4C, 0xF85F, - 0x9C4D, 0xF85B, 0x9C4E, 0xF860, 0x9C50, 0xF859, 0x9C52, 0xF857, - 0x9C54, 0xC5EB, 0x9C55, 0xF85D, 0x9C56, 0xC5ED, 0x9C57, 0xC5EC, - 0x9C58, 0xF858, 0x9C59, 0xF85E, 0x9C5E, 0xF8DA, 0x9C5F, 0xC64D, - 0x9C60, 0xF8DB, 0x9C62, 0xF8D9, 0x9C63, 0xF8D6, 0x9C66, 0xF8D8, - 0x9C67, 0xF8D7, 0x9C68, 0xF95A, 0x9C6D, 0xF95C, 0x9C6E, 0xF95B, - 0x9C71, 0xF979, 0x9C73, 0xF978, 0x9C74, 0xF977, 0x9C75, 0xF97A, - 0x9C77, 0xC673, 0x9C78, 0xC674, 0x9C79, 0xF9CA, 0x9C7A, 0xF9CE, - 0x9CE5, 0xB3BE, 0x9CE6, 0xDCAF, 0x9CE7, 0xE0ED, 0x9CE9, 0xB9A7, - 0x9CEA, 0xE0EB, 0x9CED, 0xE0EC, 0x9CF1, 0xE4E2, 0x9CF2, 0xE4E3, - 0x9CF3, 0xBBF1, 0x9CF4, 0xBBEF, 0x9CF5, 0xE4E4, 0x9CF6, 0xBBF0, - 0x9CF7, 0xE8E8, 0x9CF9, 0xE8EB, 0x9CFA, 0xE8E5, 0x9CFB, 0xE8EC, - 0x9CFC, 0xE8E4, 0x9CFD, 0xE8E6, 0x9CFF, 0xE8E7, 0x9D00, 0xE8EA, - 0x9D03, 0xBEA1, 0x9D04, 0xE8EF, 0x9D05, 0xE8EE, 0x9D06, 0xBE7D, - 0x9D07, 0xE8E9, 0x9D08, 0xE8ED, 0x9D09, 0xBE7E, 0x9D10, 0xECAC, - 0x9D12, 0xC06F, 0x9D14, 0xECA7, 0x9D15, 0xC06B, 0x9D17, 0xECA4, - 0x9D18, 0xECAA, 0x9D19, 0xECAD, 0x9D1B, 0xC070, 0x9D1D, 0xECA9, - 0x9D1E, 0xECA6, 0x9D1F, 0xECAE, 0x9D20, 0xECA5, 0x9D22, 0xECAB, - 0x9D23, 0xC06C, 0x9D25, 0xECA3, 0x9D26, 0xC06D, 0x9D28, 0xC06E, - 0x9D29, 0xECA8, 0x9D2D, 0xEFA9, 0x9D2E, 0xEF7A, 0x9D2F, 0xEF7B, - 0x9D30, 0xEF7E, 0x9D31, 0xEF7C, 0x9D33, 0xEF76, 0x9D36, 0xEF79, - 0x9D37, 0xEFA5, 0x9D38, 0xEF7D, 0x9D3B, 0xC245, 0x9D3D, 0xEFA7, - 0x9D3E, 0xEFA4, 0x9D3F, 0xC246, 0x9D40, 0xEFA6, 0x9D41, 0xEF77, - 0x9D42, 0xEFA2, 0x9D43, 0xEFA3, 0x9D45, 0xEFA1, 0x9D4A, 0xF1D2, - 0x9D4B, 0xF1D4, 0x9D4C, 0xF1D7, 0x9D4F, 0xF1D1, 0x9D51, 0xC359, - 0x9D52, 0xF1D9, 0x9D53, 0xF1D0, 0x9D54, 0xF1DA, 0x9D56, 0xF1D6, - 0x9D57, 0xF1D8, 0x9D58, 0xF1DC, 0x9D59, 0xF1D5, 0x9D5A, 0xF1DD, - 0x9D5B, 0xF1D3, 0x9D5C, 0xF1CF, 0x9D5D, 0xC35A, 0x9D5F, 0xF1DB, - 0x9D60, 0xC35B, 0x9D61, 0xC44D, 0x9D67, 0xEF78, 0x9D68, 0xF3F1, - 0x9D69, 0xF3E8, 0x9D6A, 0xC44F, 0x9D6B, 0xF3E4, 0x9D6C, 0xC450, - 0x9D6F, 0xF3ED, 0x9D70, 0xF3E7, 0x9D71, 0xF3DD, 0x9D72, 0xC44E, - 0x9D73, 0xF3EA, 0x9D74, 0xF3E5, 0x9D75, 0xF3E6, 0x9D77, 0xF3D8, - 0x9D78, 0xF3DF, 0x9D79, 0xF3EE, 0x9D7B, 0xF3EB, 0x9D7D, 0xF3E3, - 0x9D7F, 0xF3EF, 0x9D80, 0xF3DE, 0x9D81, 0xF3D9, 0x9D82, 0xF3EC, - 0x9D84, 0xF3DB, 0x9D85, 0xF3E9, 0x9D86, 0xF3E0, 0x9D87, 0xF3F0, - 0x9D88, 0xF3DC, 0x9D89, 0xC44C, 0x9D8A, 0xF3DA, 0x9D8B, 0xF3E1, - 0x9D8C, 0xF3E2, 0x9D90, 0xF57D, 0x9D92, 0xF57B, 0x9D94, 0xF5A2, - 0x9D96, 0xF5AE, 0x9D97, 0xF5A5, 0x9D98, 0xF57C, 0x9D99, 0xF578, - 0x9D9A, 0xF5A7, 0x9D9B, 0xF57E, 0x9D9C, 0xF5A3, 0x9D9D, 0xF57A, - 0x9D9E, 0xF5AA, 0x9D9F, 0xF577, 0x9DA0, 0xF5A1, 0x9DA1, 0xF5A6, - 0x9DA2, 0xF5A8, 0x9DA3, 0xF5AB, 0x9DA4, 0xF579, 0x9DA6, 0xF5AF, - 0x9DA7, 0xF5B0, 0x9DA8, 0xF5A9, 0x9DA9, 0xF5AD, 0x9DAA, 0xF5A4, - 0x9DAC, 0xF6C1, 0x9DAD, 0xF6C4, 0x9DAF, 0xC561, 0x9DB1, 0xF6C3, - 0x9DB2, 0xF6C8, 0x9DB3, 0xF6C6, 0x9DB4, 0xC562, 0x9DB5, 0xF6BD, - 0x9DB6, 0xF6B3, 0x9DB7, 0xF6B2, 0x9DB8, 0xC564, 0x9DB9, 0xF6BF, - 0x9DBA, 0xF6C0, 0x9DBB, 0xF6BC, 0x9DBC, 0xF6B4, 0x9DBE, 0xF6B9, - 0x9DBF, 0xF5AC, 0x9DC1, 0xF6B5, 0x9DC2, 0xC563, 0x9DC3, 0xF6BB, - 0x9DC5, 0xF6BA, 0x9DC7, 0xF6B6, 0x9DC8, 0xF6C2, 0x9DCA, 0xF6B7, - 0x9DCB, 0xF7BB, 0x9DCC, 0xF6C5, 0x9DCD, 0xF6C7, 0x9DCE, 0xF6BE, - 0x9DCF, 0xF6B8, 0x9DD0, 0xF7BC, 0x9DD1, 0xF7BE, 0x9DD2, 0xF7B8, - 0x9DD3, 0xC5C2, 0x9DD5, 0xF7C5, 0x9DD6, 0xF7C3, 0x9DD7, 0xC5C3, - 0x9DD8, 0xF7C2, 0x9DD9, 0xF7C1, 0x9DDA, 0xF7BA, 0x9DDB, 0xF7B7, - 0x9DDC, 0xF7BD, 0x9DDD, 0xF7C6, 0x9DDE, 0xF7B9, 0x9DDF, 0xF7BF, - 0x9DE1, 0xF869, 0x9DE2, 0xF86E, 0x9DE3, 0xF864, 0x9DE4, 0xF867, - 0x9DE5, 0xC5EE, 0x9DE6, 0xF86B, 0x9DE8, 0xF872, 0x9DE9, 0xF7C0, - 0x9DEB, 0xF865, 0x9DEC, 0xF86F, 0x9DED, 0xF873, 0x9DEE, 0xF86A, - 0x9DEF, 0xF863, 0x9DF0, 0xF86D, 0x9DF2, 0xF86C, 0x9DF3, 0xF871, - 0x9DF4, 0xF870, 0x9DF5, 0xF7C4, 0x9DF6, 0xF868, 0x9DF7, 0xF862, - 0x9DF8, 0xF866, 0x9DF9, 0xC64E, 0x9DFA, 0xC64F, 0x9DFB, 0xF861, - 0x9DFD, 0xF8E6, 0x9DFE, 0xF8DD, 0x9DFF, 0xF8E5, 0x9E00, 0xF8E2, - 0x9E01, 0xF8E3, 0x9E02, 0xF8DC, 0x9E03, 0xF8DF, 0x9E04, 0xF8E7, - 0x9E05, 0xF8E1, 0x9E06, 0xF8E0, 0x9E07, 0xF8DE, 0x9E09, 0xF8E4, - 0x9E0B, 0xF95D, 0x9E0D, 0xF95E, 0x9E0F, 0xF960, 0x9E10, 0xF95F, - 0x9E11, 0xF962, 0x9E12, 0xF961, 0x9E13, 0xF97C, 0x9E14, 0xF97B, - 0x9E15, 0xF9B7, 0x9E17, 0xF9B8, 0x9E19, 0xF9C5, 0x9E1A, 0xC678, - 0x9E1B, 0xC67C, 0x9E1D, 0xF9CF, 0x9E1E, 0xC67D, 0x9E75, 0xB3BF, - 0x9E79, 0xC4D0, 0x9E7A, 0xF6C9, 0x9E7C, 0xC650, 0x9E7D, 0xC651, - 0x9E7F, 0xB3C0, 0x9E80, 0xE0EE, 0x9E82, 0xB9A8, 0x9E83, 0xE8F0, - 0x9E86, 0xECB0, 0x9E87, 0xECB1, 0x9E88, 0xECAF, 0x9E89, 0xEFAB, - 0x9E8A, 0xEFAA, 0x9E8B, 0xC247, 0x9E8C, 0xF1DF, 0x9E8D, 0xEFAC, - 0x9E8E, 0xF1DE, 0x9E91, 0xF3F3, 0x9E92, 0xC451, 0x9E93, 0xC453, - 0x9E94, 0xF3F2, 0x9E97, 0xC452, 0x9E99, 0xF5B1, 0x9E9A, 0xF5B3, - 0x9E9B, 0xF5B2, 0x9E9C, 0xF6CA, 0x9E9D, 0xC565, 0x9E9F, 0xC5EF, - 0x9EA0, 0xF8E8, 0x9EA1, 0xF963, 0x9EA4, 0xF9D2, 0x9EA5, 0xB3C1, - 0x9EA7, 0xE4E5, 0x9EA9, 0xBEA2, 0x9EAD, 0xECB3, 0x9EAE, 0xECB2, - 0x9EB0, 0xEFAD, 0x9EB4, 0xC454, 0x9EB5, 0xC4D1, 0x9EB6, 0xF7C7, - 0x9EB7, 0xF9CB, 0x9EBB, 0xB3C2, 0x9EBC, 0xBBF2, 0x9EBE, 0xBEA3, - 0x9EC0, 0xF3F4, 0x9EC2, 0xF874, 0x9EC3, 0xB6C0, 0x9EC8, 0xEFAE, - 0x9ECC, 0xC664, 0x9ECD, 0xB6C1, 0x9ECE, 0xBEA4, 0x9ECF, 0xC248, - 0x9ED0, 0xF875, 0x9ED1, 0xB6C2, 0x9ED3, 0xE8F1, 0x9ED4, 0xC072, - 0x9ED5, 0xECB4, 0x9ED6, 0xECB5, 0x9ED8, 0xC071, 0x9EDA, 0xEFAF, - 0x9EDB, 0xC24C, 0x9EDC, 0xC24A, 0x9EDD, 0xC24B, 0x9EDE, 0xC249, - 0x9EDF, 0xF1E0, 0x9EE0, 0xC35C, 0x9EE4, 0xF5B5, 0x9EE5, 0xF5B4, - 0x9EE6, 0xF5B7, 0x9EE7, 0xF5B6, 0x9EE8, 0xC4D2, 0x9EEB, 0xF6CB, - 0x9EED, 0xF6CD, 0x9EEE, 0xF6CC, 0x9EEF, 0xC566, 0x9EF0, 0xF7C8, - 0x9EF2, 0xF876, 0x9EF3, 0xF877, 0x9EF4, 0xC5F0, 0x9EF5, 0xF964, - 0x9EF6, 0xF97D, 0x9EF7, 0xC675, 0x9EF9, 0xDCB0, 0x9EFA, 0xECB6, - 0x9EFB, 0xEFB0, 0x9EFC, 0xF3F5, 0x9EFD, 0xE0EF, 0x9EFF, 0xEFB1, - 0x9F00, 0xF1E2, 0x9F01, 0xF1E1, 0x9F06, 0xF878, 0x9F07, 0xC652, - 0x9F09, 0xF965, 0x9F0A, 0xF97E, 0x9F0E, 0xB9A9, 0x9F0F, 0xE8F2, - 0x9F10, 0xE8F3, 0x9F12, 0xECB7, 0x9F13, 0xB9AA, 0x9F15, 0xC35D, - 0x9F16, 0xF1E3, 0x9F18, 0xF6CF, 0x9F19, 0xC567, 0x9F1A, 0xF6D0, - 0x9F1B, 0xF6CE, 0x9F1C, 0xF879, 0x9F1E, 0xF8E9, 0x9F20, 0xB9AB, - 0x9F22, 0xEFB4, 0x9F23, 0xEFB3, 0x9F24, 0xEFB2, 0x9F25, 0xF1E4, - 0x9F28, 0xF1E8, 0x9F29, 0xF1E7, 0x9F2A, 0xF1E6, 0x9F2B, 0xF1E5, - 0x9F2C, 0xC35E, 0x9F2D, 0xF3F6, 0x9F2E, 0xF5B9, 0x9F2F, 0xC4D3, - 0x9F30, 0xF5B8, 0x9F31, 0xF6D1, 0x9F32, 0xF7CB, 0x9F33, 0xF7CA, - 0x9F34, 0xC5C4, 0x9F35, 0xF7C9, 0x9F36, 0xF87C, 0x9F37, 0xF87B, - 0x9F38, 0xF87A, 0x9F3B, 0xBBF3, 0x9F3D, 0xECB8, 0x9F3E, 0xC24D, - 0x9F40, 0xF3F7, 0x9F41, 0xF3F8, 0x9F42, 0xF7CC, 0x9F43, 0xF87D, - 0x9F46, 0xF8EA, 0x9F47, 0xF966, 0x9F48, 0xF9B9, 0x9F49, 0xF9D4, - 0x9F4A, 0xBBF4, 0x9F4B, 0xC24E, 0x9F4C, 0xF1E9, 0x9F4D, 0xF3F9, - 0x9F4E, 0xF6D2, 0x9F4F, 0xF87E, 0x9F52, 0xBEA6, 0x9F54, 0xEFB5, - 0x9F55, 0xF1EA, 0x9F56, 0xF3FA, 0x9F57, 0xF3FB, 0x9F58, 0xF3FC, - 0x9F59, 0xF5BE, 0x9F5B, 0xF5BA, 0x9F5C, 0xC568, 0x9F5D, 0xF5BD, - 0x9F5E, 0xF5BC, 0x9F5F, 0xC4D4, 0x9F60, 0xF5BB, 0x9F61, 0xC4D6, - 0x9F63, 0xC4D5, 0x9F64, 0xF6D4, 0x9F65, 0xF6D3, 0x9F66, 0xC569, - 0x9F67, 0xC56A, 0x9F6A, 0xC5C6, 0x9F6B, 0xF7CD, 0x9F6C, 0xC5C5, - 0x9F6E, 0xF8A3, 0x9F6F, 0xF8A4, 0x9F70, 0xF8A2, 0x9F71, 0xF8A1, - 0x9F72, 0xC654, 0x9F74, 0xF8EB, 0x9F75, 0xF8EC, 0x9F76, 0xF8ED, - 0x9F77, 0xC653, 0x9F78, 0xF967, 0x9F79, 0xF96A, 0x9F7A, 0xF969, - 0x9F7B, 0xF968, 0x9F7E, 0xF9D3, 0x9F8D, 0xC073, 0x9F90, 0xC365, - 0x9F91, 0xF5BF, 0x9F92, 0xF6D5, 0x9F94, 0xC5C7, 0x9F95, 0xF7CE, - 0x9F98, 0xF9D5, 0x9F9C, 0xC074, 0x9FA0, 0xEFB6, 0x9FA2, 0xF7CF, - 0x9FA4, 0xF9A1, 0xFA0C, 0xC94A, 0xFA0D, 0xDDFC, 0xFE30, 0xA14A, - 0xFE31, 0xA157, 0xFE33, 0xA159, 0xFE34, 0xA15B, 0xFE35, 0xA15F, - 0xFE36, 0xA160, 0xFE37, 0xA163, 0xFE38, 0xA164, 0xFE39, 0xA167, - 0xFE3A, 0xA168, 0xFE3B, 0xA16B, 0xFE3C, 0xA16C, 0xFE3D, 0xA16F, - 0xFE3E, 0xA170, 0xFE3F, 0xA173, 0xFE40, 0xA174, 0xFE41, 0xA177, - 0xFE42, 0xA178, 0xFE43, 0xA17B, 0xFE44, 0xA17C, 0xFE49, 0xA1C6, - 0xFE4A, 0xA1C7, 0xFE4B, 0xA1CA, 0xFE4C, 0xA1CB, 0xFE4D, 0xA1C8, - 0xFE4E, 0xA1C9, 0xFE4F, 0xA15C, 0xFE50, 0xA14D, 0xFE51, 0xA14E, - 0xFE52, 0xA14F, 0xFE54, 0xA151, 0xFE55, 0xA152, 0xFE56, 0xA153, - 0xFE57, 0xA154, 0xFE59, 0xA17D, 0xFE5A, 0xA17E, 0xFE5B, 0xA1A1, - 0xFE5C, 0xA1A2, 0xFE5D, 0xA1A3, 0xFE5E, 0xA1A4, 0xFE5F, 0xA1CC, - 0xFE60, 0xA1CD, 0xFE61, 0xA1CE, 0xFE62, 0xA1DE, 0xFE63, 0xA1DF, - 0xFE64, 0xA1E0, 0xFE65, 0xA1E1, 0xFE66, 0xA1E2, 0xFE68, 0xA242, - 0xFE69, 0xA24C, 0xFE6A, 0xA24D, 0xFE6B, 0xA24E, 0xFF01, 0xA149, - 0xFF03, 0xA1AD, 0xFF04, 0xA243, 0xFF05, 0xA248, 0xFF06, 0xA1AE, - 0xFF08, 0xA15D, 0xFF09, 0xA15E, 0xFF0A, 0xA1AF, 0xFF0B, 0xA1CF, - 0xFF0C, 0xA141, 0xFF0D, 0xA1D0, 0xFF0E, 0xA144, 0xFF0F, 0xA1FE, - 0xFF10, 0xA2AF, 0xFF11, 0xA2B0, 0xFF12, 0xA2B1, 0xFF13, 0xA2B2, - 0xFF14, 0xA2B3, 0xFF15, 0xA2B4, 0xFF16, 0xA2B5, 0xFF17, 0xA2B6, - 0xFF18, 0xA2B7, 0xFF19, 0xA2B8, 0xFF1A, 0xA147, 0xFF1B, 0xA146, - 0xFF1C, 0xA1D5, 0xFF1D, 0xA1D7, 0xFF1E, 0xA1D6, 0xFF1F, 0xA148, - 0xFF20, 0xA249, 0xFF21, 0xA2CF, 0xFF22, 0xA2D0, 0xFF23, 0xA2D1, - 0xFF24, 0xA2D2, 0xFF25, 0xA2D3, 0xFF26, 0xA2D4, 0xFF27, 0xA2D5, - 0xFF28, 0xA2D6, 0xFF29, 0xA2D7, 0xFF2A, 0xA2D8, 0xFF2B, 0xA2D9, - 0xFF2C, 0xA2DA, 0xFF2D, 0xA2DB, 0xFF2E, 0xA2DC, 0xFF2F, 0xA2DD, - 0xFF30, 0xA2DE, 0xFF31, 0xA2DF, 0xFF32, 0xA2E0, 0xFF33, 0xA2E1, - 0xFF34, 0xA2E2, 0xFF35, 0xA2E3, 0xFF36, 0xA2E4, 0xFF37, 0xA2E5, - 0xFF38, 0xA2E6, 0xFF39, 0xA2E7, 0xFF3A, 0xA2E8, 0xFF3C, 0xA240, - 0xFF3F, 0xA1C4, 0xFF41, 0xA2E9, 0xFF42, 0xA2EA, 0xFF43, 0xA2EB, - 0xFF44, 0xA2EC, 0xFF45, 0xA2ED, 0xFF46, 0xA2EE, 0xFF47, 0xA2EF, - 0xFF48, 0xA2F0, 0xFF49, 0xA2F1, 0xFF4A, 0xA2F2, 0xFF4B, 0xA2F3, - 0xFF4C, 0xA2F4, 0xFF4D, 0xA2F5, 0xFF4E, 0xA2F6, 0xFF4F, 0xA2F7, - 0xFF50, 0xA2F8, 0xFF51, 0xA2F9, 0xFF52, 0xA2FA, 0xFF53, 0xA2FB, - 0xFF54, 0xA2FC, 0xFF55, 0xA2FD, 0xFF56, 0xA2FE, 0xFF57, 0xA340, - 0xFF58, 0xA341, 0xFF59, 0xA342, 0xFF5A, 0xA343, 0xFF5B, 0xA161, - 0xFF5C, 0xA155, 0xFF5D, 0xA162, 0xFF5E, 0xA1E3, 0xFFE0, 0xA246, - 0xFFE1, 0xA247, 0xFFE3, 0xA1C3, 0xFFE5, 0xA244, 0, 0 -}; - -static -const WCHAR oem2uni[] = { -/* OEM - Unicode, OEM - Unicode, OEM - Unicode, OEM - Unicode */ - 0xA140, 0x3000, 0xA141, 0xFF0C, 0xA142, 0x3001, 0xA143, 0x3002, - 0xA144, 0xFF0E, 0xA145, 0x2027, 0xA146, 0xFF1B, 0xA147, 0xFF1A, - 0xA148, 0xFF1F, 0xA149, 0xFF01, 0xA14A, 0xFE30, 0xA14B, 0x2026, - 0xA14C, 0x2025, 0xA14D, 0xFE50, 0xA14E, 0xFE51, 0xA14F, 0xFE52, - 0xA150, 0x00B7, 0xA151, 0xFE54, 0xA152, 0xFE55, 0xA153, 0xFE56, - 0xA154, 0xFE57, 0xA155, 0xFF5C, 0xA156, 0x2013, 0xA157, 0xFE31, - 0xA158, 0x2014, 0xA159, 0xFE33, 0xA15A, 0x2574, 0xA15B, 0xFE34, - 0xA15C, 0xFE4F, 0xA15D, 0xFF08, 0xA15E, 0xFF09, 0xA15F, 0xFE35, - 0xA160, 0xFE36, 0xA161, 0xFF5B, 0xA162, 0xFF5D, 0xA163, 0xFE37, - 0xA164, 0xFE38, 0xA165, 0x3014, 0xA166, 0x3015, 0xA167, 0xFE39, - 0xA168, 0xFE3A, 0xA169, 0x3010, 0xA16A, 0x3011, 0xA16B, 0xFE3B, - 0xA16C, 0xFE3C, 0xA16D, 0x300A, 0xA16E, 0x300B, 0xA16F, 0xFE3D, - 0xA170, 0xFE3E, 0xA171, 0x3008, 0xA172, 0x3009, 0xA173, 0xFE3F, - 0xA174, 0xFE40, 0xA175, 0x300C, 0xA176, 0x300D, 0xA177, 0xFE41, - 0xA178, 0xFE42, 0xA179, 0x300E, 0xA17A, 0x300F, 0xA17B, 0xFE43, - 0xA17C, 0xFE44, 0xA17D, 0xFE59, 0xA17E, 0xFE5A, 0xA1A1, 0xFE5B, - 0xA1A2, 0xFE5C, 0xA1A3, 0xFE5D, 0xA1A4, 0xFE5E, 0xA1A5, 0x2018, - 0xA1A6, 0x2019, 0xA1A7, 0x201C, 0xA1A8, 0x201D, 0xA1A9, 0x301D, - 0xA1AA, 0x301E, 0xA1AB, 0x2035, 0xA1AC, 0x2032, 0xA1AD, 0xFF03, - 0xA1AE, 0xFF06, 0xA1AF, 0xFF0A, 0xA1B0, 0x203B, 0xA1B1, 0x00A7, - 0xA1B2, 0x3003, 0xA1B3, 0x25CB, 0xA1B4, 0x25CF, 0xA1B5, 0x25B3, - 0xA1B6, 0x25B2, 0xA1B7, 0x25CE, 0xA1B8, 0x2606, 0xA1B9, 0x2605, - 0xA1BA, 0x25C7, 0xA1BB, 0x25C6, 0xA1BC, 0x25A1, 0xA1BD, 0x25A0, - 0xA1BE, 0x25BD, 0xA1BF, 0x25BC, 0xA1C0, 0x32A3, 0xA1C1, 0x2105, - 0xA1C2, 0x00AF, 0xA1C3, 0xFFE3, 0xA1C4, 0xFF3F, 0xA1C5, 0x02CD, - 0xA1C6, 0xFE49, 0xA1C7, 0xFE4A, 0xA1C8, 0xFE4D, 0xA1C9, 0xFE4E, - 0xA1CA, 0xFE4B, 0xA1CB, 0xFE4C, 0xA1CC, 0xFE5F, 0xA1CD, 0xFE60, - 0xA1CE, 0xFE61, 0xA1CF, 0xFF0B, 0xA1D0, 0xFF0D, 0xA1D1, 0x00D7, - 0xA1D2, 0x00F7, 0xA1D3, 0x00B1, 0xA1D4, 0x221A, 0xA1D5, 0xFF1C, - 0xA1D6, 0xFF1E, 0xA1D7, 0xFF1D, 0xA1D8, 0x2266, 0xA1D9, 0x2267, - 0xA1DA, 0x2260, 0xA1DB, 0x221E, 0xA1DC, 0x2252, 0xA1DD, 0x2261, - 0xA1DE, 0xFE62, 0xA1DF, 0xFE63, 0xA1E0, 0xFE64, 0xA1E1, 0xFE65, - 0xA1E2, 0xFE66, 0xA1E3, 0xFF5E, 0xA1E4, 0x2229, 0xA1E5, 0x222A, - 0xA1E6, 0x22A5, 0xA1E7, 0x2220, 0xA1E8, 0x221F, 0xA1E9, 0x22BF, - 0xA1EA, 0x33D2, 0xA1EB, 0x33D1, 0xA1EC, 0x222B, 0xA1ED, 0x222E, - 0xA1EE, 0x2235, 0xA1EF, 0x2234, 0xA1F0, 0x2640, 0xA1F1, 0x2642, - 0xA1F2, 0x2295, 0xA1F3, 0x2299, 0xA1F4, 0x2191, 0xA1F5, 0x2193, - 0xA1F6, 0x2190, 0xA1F7, 0x2192, 0xA1F8, 0x2196, 0xA1F9, 0x2197, - 0xA1FA, 0x2199, 0xA1FB, 0x2198, 0xA1FC, 0x2225, 0xA1FD, 0x2223, - 0xA1FE, 0xFF0F, 0xA240, 0xFF3C, 0xA241, 0x2215, 0xA242, 0xFE68, - 0xA243, 0xFF04, 0xA244, 0xFFE5, 0xA245, 0x3012, 0xA246, 0xFFE0, - 0xA247, 0xFFE1, 0xA248, 0xFF05, 0xA249, 0xFF20, 0xA24A, 0x2103, - 0xA24B, 0x2109, 0xA24C, 0xFE69, 0xA24D, 0xFE6A, 0xA24E, 0xFE6B, - 0xA24F, 0x33D5, 0xA250, 0x339C, 0xA251, 0x339D, 0xA252, 0x339E, - 0xA253, 0x33CE, 0xA254, 0x33A1, 0xA255, 0x338E, 0xA256, 0x338F, - 0xA257, 0x33C4, 0xA258, 0x00B0, 0xA259, 0x5159, 0xA25A, 0x515B, - 0xA25B, 0x515E, 0xA25C, 0x515D, 0xA25D, 0x5161, 0xA25E, 0x5163, - 0xA25F, 0x55E7, 0xA260, 0x74E9, 0xA261, 0x7CCE, 0xA262, 0x2581, - 0xA263, 0x2582, 0xA264, 0x2583, 0xA265, 0x2584, 0xA266, 0x2585, - 0xA267, 0x2586, 0xA268, 0x2587, 0xA269, 0x2588, 0xA26A, 0x258F, - 0xA26B, 0x258E, 0xA26C, 0x258D, 0xA26D, 0x258C, 0xA26E, 0x258B, - 0xA26F, 0x258A, 0xA270, 0x2589, 0xA271, 0x253C, 0xA272, 0x2534, - 0xA273, 0x252C, 0xA274, 0x2524, 0xA275, 0x251C, 0xA276, 0x2594, - 0xA277, 0x2500, 0xA278, 0x2502, 0xA279, 0x2595, 0xA27A, 0x250C, - 0xA27B, 0x2510, 0xA27C, 0x2514, 0xA27D, 0x2518, 0xA27E, 0x256D, - 0xA2A1, 0x256E, 0xA2A2, 0x2570, 0xA2A3, 0x256F, 0xA2A4, 0x2550, - 0xA2A5, 0x255E, 0xA2A6, 0x256A, 0xA2A7, 0x2561, 0xA2A8, 0x25E2, - 0xA2A9, 0x25E3, 0xA2AA, 0x25E5, 0xA2AB, 0x25E4, 0xA2AC, 0x2571, - 0xA2AD, 0x2572, 0xA2AE, 0x2573, 0xA2AF, 0xFF10, 0xA2B0, 0xFF11, - 0xA2B1, 0xFF12, 0xA2B2, 0xFF13, 0xA2B3, 0xFF14, 0xA2B4, 0xFF15, - 0xA2B5, 0xFF16, 0xA2B6, 0xFF17, 0xA2B7, 0xFF18, 0xA2B8, 0xFF19, - 0xA2B9, 0x2160, 0xA2BA, 0x2161, 0xA2BB, 0x2162, 0xA2BC, 0x2163, - 0xA2BD, 0x2164, 0xA2BE, 0x2165, 0xA2BF, 0x2166, 0xA2C0, 0x2167, - 0xA2C1, 0x2168, 0xA2C2, 0x2169, 0xA2C3, 0x3021, 0xA2C4, 0x3022, - 0xA2C5, 0x3023, 0xA2C6, 0x3024, 0xA2C7, 0x3025, 0xA2C8, 0x3026, - 0xA2C9, 0x3027, 0xA2CA, 0x3028, 0xA2CB, 0x3029, 0xA2CC, 0x5341, - 0xA2CD, 0x5344, 0xA2CE, 0x5345, 0xA2CF, 0xFF21, 0xA2D0, 0xFF22, - 0xA2D1, 0xFF23, 0xA2D2, 0xFF24, 0xA2D3, 0xFF25, 0xA2D4, 0xFF26, - 0xA2D5, 0xFF27, 0xA2D6, 0xFF28, 0xA2D7, 0xFF29, 0xA2D8, 0xFF2A, - 0xA2D9, 0xFF2B, 0xA2DA, 0xFF2C, 0xA2DB, 0xFF2D, 0xA2DC, 0xFF2E, - 0xA2DD, 0xFF2F, 0xA2DE, 0xFF30, 0xA2DF, 0xFF31, 0xA2E0, 0xFF32, - 0xA2E1, 0xFF33, 0xA2E2, 0xFF34, 0xA2E3, 0xFF35, 0xA2E4, 0xFF36, - 0xA2E5, 0xFF37, 0xA2E6, 0xFF38, 0xA2E7, 0xFF39, 0xA2E8, 0xFF3A, - 0xA2E9, 0xFF41, 0xA2EA, 0xFF42, 0xA2EB, 0xFF43, 0xA2EC, 0xFF44, - 0xA2ED, 0xFF45, 0xA2EE, 0xFF46, 0xA2EF, 0xFF47, 0xA2F0, 0xFF48, - 0xA2F1, 0xFF49, 0xA2F2, 0xFF4A, 0xA2F3, 0xFF4B, 0xA2F4, 0xFF4C, - 0xA2F5, 0xFF4D, 0xA2F6, 0xFF4E, 0xA2F7, 0xFF4F, 0xA2F8, 0xFF50, - 0xA2F9, 0xFF51, 0xA2FA, 0xFF52, 0xA2FB, 0xFF53, 0xA2FC, 0xFF54, - 0xA2FD, 0xFF55, 0xA2FE, 0xFF56, 0xA340, 0xFF57, 0xA341, 0xFF58, - 0xA342, 0xFF59, 0xA343, 0xFF5A, 0xA344, 0x0391, 0xA345, 0x0392, - 0xA346, 0x0393, 0xA347, 0x0394, 0xA348, 0x0395, 0xA349, 0x0396, - 0xA34A, 0x0397, 0xA34B, 0x0398, 0xA34C, 0x0399, 0xA34D, 0x039A, - 0xA34E, 0x039B, 0xA34F, 0x039C, 0xA350, 0x039D, 0xA351, 0x039E, - 0xA352, 0x039F, 0xA353, 0x03A0, 0xA354, 0x03A1, 0xA355, 0x03A3, - 0xA356, 0x03A4, 0xA357, 0x03A5, 0xA358, 0x03A6, 0xA359, 0x03A7, - 0xA35A, 0x03A8, 0xA35B, 0x03A9, 0xA35C, 0x03B1, 0xA35D, 0x03B2, - 0xA35E, 0x03B3, 0xA35F, 0x03B4, 0xA360, 0x03B5, 0xA361, 0x03B6, - 0xA362, 0x03B7, 0xA363, 0x03B8, 0xA364, 0x03B9, 0xA365, 0x03BA, - 0xA366, 0x03BB, 0xA367, 0x03BC, 0xA368, 0x03BD, 0xA369, 0x03BE, - 0xA36A, 0x03BF, 0xA36B, 0x03C0, 0xA36C, 0x03C1, 0xA36D, 0x03C3, - 0xA36E, 0x03C4, 0xA36F, 0x03C5, 0xA370, 0x03C6, 0xA371, 0x03C7, - 0xA372, 0x03C8, 0xA373, 0x03C9, 0xA374, 0x3105, 0xA375, 0x3106, - 0xA376, 0x3107, 0xA377, 0x3108, 0xA378, 0x3109, 0xA379, 0x310A, - 0xA37A, 0x310B, 0xA37B, 0x310C, 0xA37C, 0x310D, 0xA37D, 0x310E, - 0xA37E, 0x310F, 0xA3A1, 0x3110, 0xA3A2, 0x3111, 0xA3A3, 0x3112, - 0xA3A4, 0x3113, 0xA3A5, 0x3114, 0xA3A6, 0x3115, 0xA3A7, 0x3116, - 0xA3A8, 0x3117, 0xA3A9, 0x3118, 0xA3AA, 0x3119, 0xA3AB, 0x311A, - 0xA3AC, 0x311B, 0xA3AD, 0x311C, 0xA3AE, 0x311D, 0xA3AF, 0x311E, - 0xA3B0, 0x311F, 0xA3B1, 0x3120, 0xA3B2, 0x3121, 0xA3B3, 0x3122, - 0xA3B4, 0x3123, 0xA3B5, 0x3124, 0xA3B6, 0x3125, 0xA3B7, 0x3126, - 0xA3B8, 0x3127, 0xA3B9, 0x3128, 0xA3BA, 0x3129, 0xA3BB, 0x02D9, - 0xA3BC, 0x02C9, 0xA3BD, 0x02CA, 0xA3BE, 0x02C7, 0xA3BF, 0x02CB, - 0xA3E1, 0x20AC, 0xA440, 0x4E00, 0xA441, 0x4E59, 0xA442, 0x4E01, - 0xA443, 0x4E03, 0xA444, 0x4E43, 0xA445, 0x4E5D, 0xA446, 0x4E86, - 0xA447, 0x4E8C, 0xA448, 0x4EBA, 0xA449, 0x513F, 0xA44A, 0x5165, - 0xA44B, 0x516B, 0xA44C, 0x51E0, 0xA44D, 0x5200, 0xA44E, 0x5201, - 0xA44F, 0x529B, 0xA450, 0x5315, 0xA451, 0x5341, 0xA452, 0x535C, - 0xA453, 0x53C8, 0xA454, 0x4E09, 0xA455, 0x4E0B, 0xA456, 0x4E08, - 0xA457, 0x4E0A, 0xA458, 0x4E2B, 0xA459, 0x4E38, 0xA45A, 0x51E1, - 0xA45B, 0x4E45, 0xA45C, 0x4E48, 0xA45D, 0x4E5F, 0xA45E, 0x4E5E, - 0xA45F, 0x4E8E, 0xA460, 0x4EA1, 0xA461, 0x5140, 0xA462, 0x5203, - 0xA463, 0x52FA, 0xA464, 0x5343, 0xA465, 0x53C9, 0xA466, 0x53E3, - 0xA467, 0x571F, 0xA468, 0x58EB, 0xA469, 0x5915, 0xA46A, 0x5927, - 0xA46B, 0x5973, 0xA46C, 0x5B50, 0xA46D, 0x5B51, 0xA46E, 0x5B53, - 0xA46F, 0x5BF8, 0xA470, 0x5C0F, 0xA471, 0x5C22, 0xA472, 0x5C38, - 0xA473, 0x5C71, 0xA474, 0x5DDD, 0xA475, 0x5DE5, 0xA476, 0x5DF1, - 0xA477, 0x5DF2, 0xA478, 0x5DF3, 0xA479, 0x5DFE, 0xA47A, 0x5E72, - 0xA47B, 0x5EFE, 0xA47C, 0x5F0B, 0xA47D, 0x5F13, 0xA47E, 0x624D, - 0xA4A1, 0x4E11, 0xA4A2, 0x4E10, 0xA4A3, 0x4E0D, 0xA4A4, 0x4E2D, - 0xA4A5, 0x4E30, 0xA4A6, 0x4E39, 0xA4A7, 0x4E4B, 0xA4A8, 0x5C39, - 0xA4A9, 0x4E88, 0xA4AA, 0x4E91, 0xA4AB, 0x4E95, 0xA4AC, 0x4E92, - 0xA4AD, 0x4E94, 0xA4AE, 0x4EA2, 0xA4AF, 0x4EC1, 0xA4B0, 0x4EC0, - 0xA4B1, 0x4EC3, 0xA4B2, 0x4EC6, 0xA4B3, 0x4EC7, 0xA4B4, 0x4ECD, - 0xA4B5, 0x4ECA, 0xA4B6, 0x4ECB, 0xA4B7, 0x4EC4, 0xA4B8, 0x5143, - 0xA4B9, 0x5141, 0xA4BA, 0x5167, 0xA4BB, 0x516D, 0xA4BC, 0x516E, - 0xA4BD, 0x516C, 0xA4BE, 0x5197, 0xA4BF, 0x51F6, 0xA4C0, 0x5206, - 0xA4C1, 0x5207, 0xA4C2, 0x5208, 0xA4C3, 0x52FB, 0xA4C4, 0x52FE, - 0xA4C5, 0x52FF, 0xA4C6, 0x5316, 0xA4C7, 0x5339, 0xA4C8, 0x5348, - 0xA4C9, 0x5347, 0xA4CA, 0x5345, 0xA4CB, 0x535E, 0xA4CC, 0x5384, - 0xA4CD, 0x53CB, 0xA4CE, 0x53CA, 0xA4CF, 0x53CD, 0xA4D0, 0x58EC, - 0xA4D1, 0x5929, 0xA4D2, 0x592B, 0xA4D3, 0x592A, 0xA4D4, 0x592D, - 0xA4D5, 0x5B54, 0xA4D6, 0x5C11, 0xA4D7, 0x5C24, 0xA4D8, 0x5C3A, - 0xA4D9, 0x5C6F, 0xA4DA, 0x5DF4, 0xA4DB, 0x5E7B, 0xA4DC, 0x5EFF, - 0xA4DD, 0x5F14, 0xA4DE, 0x5F15, 0xA4DF, 0x5FC3, 0xA4E0, 0x6208, - 0xA4E1, 0x6236, 0xA4E2, 0x624B, 0xA4E3, 0x624E, 0xA4E4, 0x652F, - 0xA4E5, 0x6587, 0xA4E6, 0x6597, 0xA4E7, 0x65A4, 0xA4E8, 0x65B9, - 0xA4E9, 0x65E5, 0xA4EA, 0x66F0, 0xA4EB, 0x6708, 0xA4EC, 0x6728, - 0xA4ED, 0x6B20, 0xA4EE, 0x6B62, 0xA4EF, 0x6B79, 0xA4F0, 0x6BCB, - 0xA4F1, 0x6BD4, 0xA4F2, 0x6BDB, 0xA4F3, 0x6C0F, 0xA4F4, 0x6C34, - 0xA4F5, 0x706B, 0xA4F6, 0x722A, 0xA4F7, 0x7236, 0xA4F8, 0x723B, - 0xA4F9, 0x7247, 0xA4FA, 0x7259, 0xA4FB, 0x725B, 0xA4FC, 0x72AC, - 0xA4FD, 0x738B, 0xA4FE, 0x4E19, 0xA540, 0x4E16, 0xA541, 0x4E15, - 0xA542, 0x4E14, 0xA543, 0x4E18, 0xA544, 0x4E3B, 0xA545, 0x4E4D, - 0xA546, 0x4E4F, 0xA547, 0x4E4E, 0xA548, 0x4EE5, 0xA549, 0x4ED8, - 0xA54A, 0x4ED4, 0xA54B, 0x4ED5, 0xA54C, 0x4ED6, 0xA54D, 0x4ED7, - 0xA54E, 0x4EE3, 0xA54F, 0x4EE4, 0xA550, 0x4ED9, 0xA551, 0x4EDE, - 0xA552, 0x5145, 0xA553, 0x5144, 0xA554, 0x5189, 0xA555, 0x518A, - 0xA556, 0x51AC, 0xA557, 0x51F9, 0xA558, 0x51FA, 0xA559, 0x51F8, - 0xA55A, 0x520A, 0xA55B, 0x52A0, 0xA55C, 0x529F, 0xA55D, 0x5305, - 0xA55E, 0x5306, 0xA55F, 0x5317, 0xA560, 0x531D, 0xA561, 0x4EDF, - 0xA562, 0x534A, 0xA563, 0x5349, 0xA564, 0x5361, 0xA565, 0x5360, - 0xA566, 0x536F, 0xA567, 0x536E, 0xA568, 0x53BB, 0xA569, 0x53EF, - 0xA56A, 0x53E4, 0xA56B, 0x53F3, 0xA56C, 0x53EC, 0xA56D, 0x53EE, - 0xA56E, 0x53E9, 0xA56F, 0x53E8, 0xA570, 0x53FC, 0xA571, 0x53F8, - 0xA572, 0x53F5, 0xA573, 0x53EB, 0xA574, 0x53E6, 0xA575, 0x53EA, - 0xA576, 0x53F2, 0xA577, 0x53F1, 0xA578, 0x53F0, 0xA579, 0x53E5, - 0xA57A, 0x53ED, 0xA57B, 0x53FB, 0xA57C, 0x56DB, 0xA57D, 0x56DA, - 0xA57E, 0x5916, 0xA5A1, 0x592E, 0xA5A2, 0x5931, 0xA5A3, 0x5974, - 0xA5A4, 0x5976, 0xA5A5, 0x5B55, 0xA5A6, 0x5B83, 0xA5A7, 0x5C3C, - 0xA5A8, 0x5DE8, 0xA5A9, 0x5DE7, 0xA5AA, 0x5DE6, 0xA5AB, 0x5E02, - 0xA5AC, 0x5E03, 0xA5AD, 0x5E73, 0xA5AE, 0x5E7C, 0xA5AF, 0x5F01, - 0xA5B0, 0x5F18, 0xA5B1, 0x5F17, 0xA5B2, 0x5FC5, 0xA5B3, 0x620A, - 0xA5B4, 0x6253, 0xA5B5, 0x6254, 0xA5B6, 0x6252, 0xA5B7, 0x6251, - 0xA5B8, 0x65A5, 0xA5B9, 0x65E6, 0xA5BA, 0x672E, 0xA5BB, 0x672C, - 0xA5BC, 0x672A, 0xA5BD, 0x672B, 0xA5BE, 0x672D, 0xA5BF, 0x6B63, - 0xA5C0, 0x6BCD, 0xA5C1, 0x6C11, 0xA5C2, 0x6C10, 0xA5C3, 0x6C38, - 0xA5C4, 0x6C41, 0xA5C5, 0x6C40, 0xA5C6, 0x6C3E, 0xA5C7, 0x72AF, - 0xA5C8, 0x7384, 0xA5C9, 0x7389, 0xA5CA, 0x74DC, 0xA5CB, 0x74E6, - 0xA5CC, 0x7518, 0xA5CD, 0x751F, 0xA5CE, 0x7528, 0xA5CF, 0x7529, - 0xA5D0, 0x7530, 0xA5D1, 0x7531, 0xA5D2, 0x7532, 0xA5D3, 0x7533, - 0xA5D4, 0x758B, 0xA5D5, 0x767D, 0xA5D6, 0x76AE, 0xA5D7, 0x76BF, - 0xA5D8, 0x76EE, 0xA5D9, 0x77DB, 0xA5DA, 0x77E2, 0xA5DB, 0x77F3, - 0xA5DC, 0x793A, 0xA5DD, 0x79BE, 0xA5DE, 0x7A74, 0xA5DF, 0x7ACB, - 0xA5E0, 0x4E1E, 0xA5E1, 0x4E1F, 0xA5E2, 0x4E52, 0xA5E3, 0x4E53, - 0xA5E4, 0x4E69, 0xA5E5, 0x4E99, 0xA5E6, 0x4EA4, 0xA5E7, 0x4EA6, - 0xA5E8, 0x4EA5, 0xA5E9, 0x4EFF, 0xA5EA, 0x4F09, 0xA5EB, 0x4F19, - 0xA5EC, 0x4F0A, 0xA5ED, 0x4F15, 0xA5EE, 0x4F0D, 0xA5EF, 0x4F10, - 0xA5F0, 0x4F11, 0xA5F1, 0x4F0F, 0xA5F2, 0x4EF2, 0xA5F3, 0x4EF6, - 0xA5F4, 0x4EFB, 0xA5F5, 0x4EF0, 0xA5F6, 0x4EF3, 0xA5F7, 0x4EFD, - 0xA5F8, 0x4F01, 0xA5F9, 0x4F0B, 0xA5FA, 0x5149, 0xA5FB, 0x5147, - 0xA5FC, 0x5146, 0xA5FD, 0x5148, 0xA5FE, 0x5168, 0xA640, 0x5171, - 0xA641, 0x518D, 0xA642, 0x51B0, 0xA643, 0x5217, 0xA644, 0x5211, - 0xA645, 0x5212, 0xA646, 0x520E, 0xA647, 0x5216, 0xA648, 0x52A3, - 0xA649, 0x5308, 0xA64A, 0x5321, 0xA64B, 0x5320, 0xA64C, 0x5370, - 0xA64D, 0x5371, 0xA64E, 0x5409, 0xA64F, 0x540F, 0xA650, 0x540C, - 0xA651, 0x540A, 0xA652, 0x5410, 0xA653, 0x5401, 0xA654, 0x540B, - 0xA655, 0x5404, 0xA656, 0x5411, 0xA657, 0x540D, 0xA658, 0x5408, - 0xA659, 0x5403, 0xA65A, 0x540E, 0xA65B, 0x5406, 0xA65C, 0x5412, - 0xA65D, 0x56E0, 0xA65E, 0x56DE, 0xA65F, 0x56DD, 0xA660, 0x5733, - 0xA661, 0x5730, 0xA662, 0x5728, 0xA663, 0x572D, 0xA664, 0x572C, - 0xA665, 0x572F, 0xA666, 0x5729, 0xA667, 0x5919, 0xA668, 0x591A, - 0xA669, 0x5937, 0xA66A, 0x5938, 0xA66B, 0x5984, 0xA66C, 0x5978, - 0xA66D, 0x5983, 0xA66E, 0x597D, 0xA66F, 0x5979, 0xA670, 0x5982, - 0xA671, 0x5981, 0xA672, 0x5B57, 0xA673, 0x5B58, 0xA674, 0x5B87, - 0xA675, 0x5B88, 0xA676, 0x5B85, 0xA677, 0x5B89, 0xA678, 0x5BFA, - 0xA679, 0x5C16, 0xA67A, 0x5C79, 0xA67B, 0x5DDE, 0xA67C, 0x5E06, - 0xA67D, 0x5E76, 0xA67E, 0x5E74, 0xA6A1, 0x5F0F, 0xA6A2, 0x5F1B, - 0xA6A3, 0x5FD9, 0xA6A4, 0x5FD6, 0xA6A5, 0x620E, 0xA6A6, 0x620C, - 0xA6A7, 0x620D, 0xA6A8, 0x6210, 0xA6A9, 0x6263, 0xA6AA, 0x625B, - 0xA6AB, 0x6258, 0xA6AC, 0x6536, 0xA6AD, 0x65E9, 0xA6AE, 0x65E8, - 0xA6AF, 0x65EC, 0xA6B0, 0x65ED, 0xA6B1, 0x66F2, 0xA6B2, 0x66F3, - 0xA6B3, 0x6709, 0xA6B4, 0x673D, 0xA6B5, 0x6734, 0xA6B6, 0x6731, - 0xA6B7, 0x6735, 0xA6B8, 0x6B21, 0xA6B9, 0x6B64, 0xA6BA, 0x6B7B, - 0xA6BB, 0x6C16, 0xA6BC, 0x6C5D, 0xA6BD, 0x6C57, 0xA6BE, 0x6C59, - 0xA6BF, 0x6C5F, 0xA6C0, 0x6C60, 0xA6C1, 0x6C50, 0xA6C2, 0x6C55, - 0xA6C3, 0x6C61, 0xA6C4, 0x6C5B, 0xA6C5, 0x6C4D, 0xA6C6, 0x6C4E, - 0xA6C7, 0x7070, 0xA6C8, 0x725F, 0xA6C9, 0x725D, 0xA6CA, 0x767E, - 0xA6CB, 0x7AF9, 0xA6CC, 0x7C73, 0xA6CD, 0x7CF8, 0xA6CE, 0x7F36, - 0xA6CF, 0x7F8A, 0xA6D0, 0x7FBD, 0xA6D1, 0x8001, 0xA6D2, 0x8003, - 0xA6D3, 0x800C, 0xA6D4, 0x8012, 0xA6D5, 0x8033, 0xA6D6, 0x807F, - 0xA6D7, 0x8089, 0xA6D8, 0x808B, 0xA6D9, 0x808C, 0xA6DA, 0x81E3, - 0xA6DB, 0x81EA, 0xA6DC, 0x81F3, 0xA6DD, 0x81FC, 0xA6DE, 0x820C, - 0xA6DF, 0x821B, 0xA6E0, 0x821F, 0xA6E1, 0x826E, 0xA6E2, 0x8272, - 0xA6E3, 0x827E, 0xA6E4, 0x866B, 0xA6E5, 0x8840, 0xA6E6, 0x884C, - 0xA6E7, 0x8863, 0xA6E8, 0x897F, 0xA6E9, 0x9621, 0xA6EA, 0x4E32, - 0xA6EB, 0x4EA8, 0xA6EC, 0x4F4D, 0xA6ED, 0x4F4F, 0xA6EE, 0x4F47, - 0xA6EF, 0x4F57, 0xA6F0, 0x4F5E, 0xA6F1, 0x4F34, 0xA6F2, 0x4F5B, - 0xA6F3, 0x4F55, 0xA6F4, 0x4F30, 0xA6F5, 0x4F50, 0xA6F6, 0x4F51, - 0xA6F7, 0x4F3D, 0xA6F8, 0x4F3A, 0xA6F9, 0x4F38, 0xA6FA, 0x4F43, - 0xA6FB, 0x4F54, 0xA6FC, 0x4F3C, 0xA6FD, 0x4F46, 0xA6FE, 0x4F63, - 0xA740, 0x4F5C, 0xA741, 0x4F60, 0xA742, 0x4F2F, 0xA743, 0x4F4E, - 0xA744, 0x4F36, 0xA745, 0x4F59, 0xA746, 0x4F5D, 0xA747, 0x4F48, - 0xA748, 0x4F5A, 0xA749, 0x514C, 0xA74A, 0x514B, 0xA74B, 0x514D, - 0xA74C, 0x5175, 0xA74D, 0x51B6, 0xA74E, 0x51B7, 0xA74F, 0x5225, - 0xA750, 0x5224, 0xA751, 0x5229, 0xA752, 0x522A, 0xA753, 0x5228, - 0xA754, 0x52AB, 0xA755, 0x52A9, 0xA756, 0x52AA, 0xA757, 0x52AC, - 0xA758, 0x5323, 0xA759, 0x5373, 0xA75A, 0x5375, 0xA75B, 0x541D, - 0xA75C, 0x542D, 0xA75D, 0x541E, 0xA75E, 0x543E, 0xA75F, 0x5426, - 0xA760, 0x544E, 0xA761, 0x5427, 0xA762, 0x5446, 0xA763, 0x5443, - 0xA764, 0x5433, 0xA765, 0x5448, 0xA766, 0x5442, 0xA767, 0x541B, - 0xA768, 0x5429, 0xA769, 0x544A, 0xA76A, 0x5439, 0xA76B, 0x543B, - 0xA76C, 0x5438, 0xA76D, 0x542E, 0xA76E, 0x5435, 0xA76F, 0x5436, - 0xA770, 0x5420, 0xA771, 0x543C, 0xA772, 0x5440, 0xA773, 0x5431, - 0xA774, 0x542B, 0xA775, 0x541F, 0xA776, 0x542C, 0xA777, 0x56EA, - 0xA778, 0x56F0, 0xA779, 0x56E4, 0xA77A, 0x56EB, 0xA77B, 0x574A, - 0xA77C, 0x5751, 0xA77D, 0x5740, 0xA77E, 0x574D, 0xA7A1, 0x5747, - 0xA7A2, 0x574E, 0xA7A3, 0x573E, 0xA7A4, 0x5750, 0xA7A5, 0x574F, - 0xA7A6, 0x573B, 0xA7A7, 0x58EF, 0xA7A8, 0x593E, 0xA7A9, 0x599D, - 0xA7AA, 0x5992, 0xA7AB, 0x59A8, 0xA7AC, 0x599E, 0xA7AD, 0x59A3, - 0xA7AE, 0x5999, 0xA7AF, 0x5996, 0xA7B0, 0x598D, 0xA7B1, 0x59A4, - 0xA7B2, 0x5993, 0xA7B3, 0x598A, 0xA7B4, 0x59A5, 0xA7B5, 0x5B5D, - 0xA7B6, 0x5B5C, 0xA7B7, 0x5B5A, 0xA7B8, 0x5B5B, 0xA7B9, 0x5B8C, - 0xA7BA, 0x5B8B, 0xA7BB, 0x5B8F, 0xA7BC, 0x5C2C, 0xA7BD, 0x5C40, - 0xA7BE, 0x5C41, 0xA7BF, 0x5C3F, 0xA7C0, 0x5C3E, 0xA7C1, 0x5C90, - 0xA7C2, 0x5C91, 0xA7C3, 0x5C94, 0xA7C4, 0x5C8C, 0xA7C5, 0x5DEB, - 0xA7C6, 0x5E0C, 0xA7C7, 0x5E8F, 0xA7C8, 0x5E87, 0xA7C9, 0x5E8A, - 0xA7CA, 0x5EF7, 0xA7CB, 0x5F04, 0xA7CC, 0x5F1F, 0xA7CD, 0x5F64, - 0xA7CE, 0x5F62, 0xA7CF, 0x5F77, 0xA7D0, 0x5F79, 0xA7D1, 0x5FD8, - 0xA7D2, 0x5FCC, 0xA7D3, 0x5FD7, 0xA7D4, 0x5FCD, 0xA7D5, 0x5FF1, - 0xA7D6, 0x5FEB, 0xA7D7, 0x5FF8, 0xA7D8, 0x5FEA, 0xA7D9, 0x6212, - 0xA7DA, 0x6211, 0xA7DB, 0x6284, 0xA7DC, 0x6297, 0xA7DD, 0x6296, - 0xA7DE, 0x6280, 0xA7DF, 0x6276, 0xA7E0, 0x6289, 0xA7E1, 0x626D, - 0xA7E2, 0x628A, 0xA7E3, 0x627C, 0xA7E4, 0x627E, 0xA7E5, 0x6279, - 0xA7E6, 0x6273, 0xA7E7, 0x6292, 0xA7E8, 0x626F, 0xA7E9, 0x6298, - 0xA7EA, 0x626E, 0xA7EB, 0x6295, 0xA7EC, 0x6293, 0xA7ED, 0x6291, - 0xA7EE, 0x6286, 0xA7EF, 0x6539, 0xA7F0, 0x653B, 0xA7F1, 0x6538, - 0xA7F2, 0x65F1, 0xA7F3, 0x66F4, 0xA7F4, 0x675F, 0xA7F5, 0x674E, - 0xA7F6, 0x674F, 0xA7F7, 0x6750, 0xA7F8, 0x6751, 0xA7F9, 0x675C, - 0xA7FA, 0x6756, 0xA7FB, 0x675E, 0xA7FC, 0x6749, 0xA7FD, 0x6746, - 0xA7FE, 0x6760, 0xA840, 0x6753, 0xA841, 0x6757, 0xA842, 0x6B65, - 0xA843, 0x6BCF, 0xA844, 0x6C42, 0xA845, 0x6C5E, 0xA846, 0x6C99, - 0xA847, 0x6C81, 0xA848, 0x6C88, 0xA849, 0x6C89, 0xA84A, 0x6C85, - 0xA84B, 0x6C9B, 0xA84C, 0x6C6A, 0xA84D, 0x6C7A, 0xA84E, 0x6C90, - 0xA84F, 0x6C70, 0xA850, 0x6C8C, 0xA851, 0x6C68, 0xA852, 0x6C96, - 0xA853, 0x6C92, 0xA854, 0x6C7D, 0xA855, 0x6C83, 0xA856, 0x6C72, - 0xA857, 0x6C7E, 0xA858, 0x6C74, 0xA859, 0x6C86, 0xA85A, 0x6C76, - 0xA85B, 0x6C8D, 0xA85C, 0x6C94, 0xA85D, 0x6C98, 0xA85E, 0x6C82, - 0xA85F, 0x7076, 0xA860, 0x707C, 0xA861, 0x707D, 0xA862, 0x7078, - 0xA863, 0x7262, 0xA864, 0x7261, 0xA865, 0x7260, 0xA866, 0x72C4, - 0xA867, 0x72C2, 0xA868, 0x7396, 0xA869, 0x752C, 0xA86A, 0x752B, - 0xA86B, 0x7537, 0xA86C, 0x7538, 0xA86D, 0x7682, 0xA86E, 0x76EF, - 0xA86F, 0x77E3, 0xA870, 0x79C1, 0xA871, 0x79C0, 0xA872, 0x79BF, - 0xA873, 0x7A76, 0xA874, 0x7CFB, 0xA875, 0x7F55, 0xA876, 0x8096, - 0xA877, 0x8093, 0xA878, 0x809D, 0xA879, 0x8098, 0xA87A, 0x809B, - 0xA87B, 0x809A, 0xA87C, 0x80B2, 0xA87D, 0x826F, 0xA87E, 0x8292, - 0xA8A1, 0x828B, 0xA8A2, 0x828D, 0xA8A3, 0x898B, 0xA8A4, 0x89D2, - 0xA8A5, 0x8A00, 0xA8A6, 0x8C37, 0xA8A7, 0x8C46, 0xA8A8, 0x8C55, - 0xA8A9, 0x8C9D, 0xA8AA, 0x8D64, 0xA8AB, 0x8D70, 0xA8AC, 0x8DB3, - 0xA8AD, 0x8EAB, 0xA8AE, 0x8ECA, 0xA8AF, 0x8F9B, 0xA8B0, 0x8FB0, - 0xA8B1, 0x8FC2, 0xA8B2, 0x8FC6, 0xA8B3, 0x8FC5, 0xA8B4, 0x8FC4, - 0xA8B5, 0x5DE1, 0xA8B6, 0x9091, 0xA8B7, 0x90A2, 0xA8B8, 0x90AA, - 0xA8B9, 0x90A6, 0xA8BA, 0x90A3, 0xA8BB, 0x9149, 0xA8BC, 0x91C6, - 0xA8BD, 0x91CC, 0xA8BE, 0x9632, 0xA8BF, 0x962E, 0xA8C0, 0x9631, - 0xA8C1, 0x962A, 0xA8C2, 0x962C, 0xA8C3, 0x4E26, 0xA8C4, 0x4E56, - 0xA8C5, 0x4E73, 0xA8C6, 0x4E8B, 0xA8C7, 0x4E9B, 0xA8C8, 0x4E9E, - 0xA8C9, 0x4EAB, 0xA8CA, 0x4EAC, 0xA8CB, 0x4F6F, 0xA8CC, 0x4F9D, - 0xA8CD, 0x4F8D, 0xA8CE, 0x4F73, 0xA8CF, 0x4F7F, 0xA8D0, 0x4F6C, - 0xA8D1, 0x4F9B, 0xA8D2, 0x4F8B, 0xA8D3, 0x4F86, 0xA8D4, 0x4F83, - 0xA8D5, 0x4F70, 0xA8D6, 0x4F75, 0xA8D7, 0x4F88, 0xA8D8, 0x4F69, - 0xA8D9, 0x4F7B, 0xA8DA, 0x4F96, 0xA8DB, 0x4F7E, 0xA8DC, 0x4F8F, - 0xA8DD, 0x4F91, 0xA8DE, 0x4F7A, 0xA8DF, 0x5154, 0xA8E0, 0x5152, - 0xA8E1, 0x5155, 0xA8E2, 0x5169, 0xA8E3, 0x5177, 0xA8E4, 0x5176, - 0xA8E5, 0x5178, 0xA8E6, 0x51BD, 0xA8E7, 0x51FD, 0xA8E8, 0x523B, - 0xA8E9, 0x5238, 0xA8EA, 0x5237, 0xA8EB, 0x523A, 0xA8EC, 0x5230, - 0xA8ED, 0x522E, 0xA8EE, 0x5236, 0xA8EF, 0x5241, 0xA8F0, 0x52BE, - 0xA8F1, 0x52BB, 0xA8F2, 0x5352, 0xA8F3, 0x5354, 0xA8F4, 0x5353, - 0xA8F5, 0x5351, 0xA8F6, 0x5366, 0xA8F7, 0x5377, 0xA8F8, 0x5378, - 0xA8F9, 0x5379, 0xA8FA, 0x53D6, 0xA8FB, 0x53D4, 0xA8FC, 0x53D7, - 0xA8FD, 0x5473, 0xA8FE, 0x5475, 0xA940, 0x5496, 0xA941, 0x5478, - 0xA942, 0x5495, 0xA943, 0x5480, 0xA944, 0x547B, 0xA945, 0x5477, - 0xA946, 0x5484, 0xA947, 0x5492, 0xA948, 0x5486, 0xA949, 0x547C, - 0xA94A, 0x5490, 0xA94B, 0x5471, 0xA94C, 0x5476, 0xA94D, 0x548C, - 0xA94E, 0x549A, 0xA94F, 0x5462, 0xA950, 0x5468, 0xA951, 0x548B, - 0xA952, 0x547D, 0xA953, 0x548E, 0xA954, 0x56FA, 0xA955, 0x5783, - 0xA956, 0x5777, 0xA957, 0x576A, 0xA958, 0x5769, 0xA959, 0x5761, - 0xA95A, 0x5766, 0xA95B, 0x5764, 0xA95C, 0x577C, 0xA95D, 0x591C, - 0xA95E, 0x5949, 0xA95F, 0x5947, 0xA960, 0x5948, 0xA961, 0x5944, - 0xA962, 0x5954, 0xA963, 0x59BE, 0xA964, 0x59BB, 0xA965, 0x59D4, - 0xA966, 0x59B9, 0xA967, 0x59AE, 0xA968, 0x59D1, 0xA969, 0x59C6, - 0xA96A, 0x59D0, 0xA96B, 0x59CD, 0xA96C, 0x59CB, 0xA96D, 0x59D3, - 0xA96E, 0x59CA, 0xA96F, 0x59AF, 0xA970, 0x59B3, 0xA971, 0x59D2, - 0xA972, 0x59C5, 0xA973, 0x5B5F, 0xA974, 0x5B64, 0xA975, 0x5B63, - 0xA976, 0x5B97, 0xA977, 0x5B9A, 0xA978, 0x5B98, 0xA979, 0x5B9C, - 0xA97A, 0x5B99, 0xA97B, 0x5B9B, 0xA97C, 0x5C1A, 0xA97D, 0x5C48, - 0xA97E, 0x5C45, 0xA9A1, 0x5C46, 0xA9A2, 0x5CB7, 0xA9A3, 0x5CA1, - 0xA9A4, 0x5CB8, 0xA9A5, 0x5CA9, 0xA9A6, 0x5CAB, 0xA9A7, 0x5CB1, - 0xA9A8, 0x5CB3, 0xA9A9, 0x5E18, 0xA9AA, 0x5E1A, 0xA9AB, 0x5E16, - 0xA9AC, 0x5E15, 0xA9AD, 0x5E1B, 0xA9AE, 0x5E11, 0xA9AF, 0x5E78, - 0xA9B0, 0x5E9A, 0xA9B1, 0x5E97, 0xA9B2, 0x5E9C, 0xA9B3, 0x5E95, - 0xA9B4, 0x5E96, 0xA9B5, 0x5EF6, 0xA9B6, 0x5F26, 0xA9B7, 0x5F27, - 0xA9B8, 0x5F29, 0xA9B9, 0x5F80, 0xA9BA, 0x5F81, 0xA9BB, 0x5F7F, - 0xA9BC, 0x5F7C, 0xA9BD, 0x5FDD, 0xA9BE, 0x5FE0, 0xA9BF, 0x5FFD, - 0xA9C0, 0x5FF5, 0xA9C1, 0x5FFF, 0xA9C2, 0x600F, 0xA9C3, 0x6014, - 0xA9C4, 0x602F, 0xA9C5, 0x6035, 0xA9C6, 0x6016, 0xA9C7, 0x602A, - 0xA9C8, 0x6015, 0xA9C9, 0x6021, 0xA9CA, 0x6027, 0xA9CB, 0x6029, - 0xA9CC, 0x602B, 0xA9CD, 0x601B, 0xA9CE, 0x6216, 0xA9CF, 0x6215, - 0xA9D0, 0x623F, 0xA9D1, 0x623E, 0xA9D2, 0x6240, 0xA9D3, 0x627F, - 0xA9D4, 0x62C9, 0xA9D5, 0x62CC, 0xA9D6, 0x62C4, 0xA9D7, 0x62BF, - 0xA9D8, 0x62C2, 0xA9D9, 0x62B9, 0xA9DA, 0x62D2, 0xA9DB, 0x62DB, - 0xA9DC, 0x62AB, 0xA9DD, 0x62D3, 0xA9DE, 0x62D4, 0xA9DF, 0x62CB, - 0xA9E0, 0x62C8, 0xA9E1, 0x62A8, 0xA9E2, 0x62BD, 0xA9E3, 0x62BC, - 0xA9E4, 0x62D0, 0xA9E5, 0x62D9, 0xA9E6, 0x62C7, 0xA9E7, 0x62CD, - 0xA9E8, 0x62B5, 0xA9E9, 0x62DA, 0xA9EA, 0x62B1, 0xA9EB, 0x62D8, - 0xA9EC, 0x62D6, 0xA9ED, 0x62D7, 0xA9EE, 0x62C6, 0xA9EF, 0x62AC, - 0xA9F0, 0x62CE, 0xA9F1, 0x653E, 0xA9F2, 0x65A7, 0xA9F3, 0x65BC, - 0xA9F4, 0x65FA, 0xA9F5, 0x6614, 0xA9F6, 0x6613, 0xA9F7, 0x660C, - 0xA9F8, 0x6606, 0xA9F9, 0x6602, 0xA9FA, 0x660E, 0xA9FB, 0x6600, - 0xA9FC, 0x660F, 0xA9FD, 0x6615, 0xA9FE, 0x660A, 0xAA40, 0x6607, - 0xAA41, 0x670D, 0xAA42, 0x670B, 0xAA43, 0x676D, 0xAA44, 0x678B, - 0xAA45, 0x6795, 0xAA46, 0x6771, 0xAA47, 0x679C, 0xAA48, 0x6773, - 0xAA49, 0x6777, 0xAA4A, 0x6787, 0xAA4B, 0x679D, 0xAA4C, 0x6797, - 0xAA4D, 0x676F, 0xAA4E, 0x6770, 0xAA4F, 0x677F, 0xAA50, 0x6789, - 0xAA51, 0x677E, 0xAA52, 0x6790, 0xAA53, 0x6775, 0xAA54, 0x679A, - 0xAA55, 0x6793, 0xAA56, 0x677C, 0xAA57, 0x676A, 0xAA58, 0x6772, - 0xAA59, 0x6B23, 0xAA5A, 0x6B66, 0xAA5B, 0x6B67, 0xAA5C, 0x6B7F, - 0xAA5D, 0x6C13, 0xAA5E, 0x6C1B, 0xAA5F, 0x6CE3, 0xAA60, 0x6CE8, - 0xAA61, 0x6CF3, 0xAA62, 0x6CB1, 0xAA63, 0x6CCC, 0xAA64, 0x6CE5, - 0xAA65, 0x6CB3, 0xAA66, 0x6CBD, 0xAA67, 0x6CBE, 0xAA68, 0x6CBC, - 0xAA69, 0x6CE2, 0xAA6A, 0x6CAB, 0xAA6B, 0x6CD5, 0xAA6C, 0x6CD3, - 0xAA6D, 0x6CB8, 0xAA6E, 0x6CC4, 0xAA6F, 0x6CB9, 0xAA70, 0x6CC1, - 0xAA71, 0x6CAE, 0xAA72, 0x6CD7, 0xAA73, 0x6CC5, 0xAA74, 0x6CF1, - 0xAA75, 0x6CBF, 0xAA76, 0x6CBB, 0xAA77, 0x6CE1, 0xAA78, 0x6CDB, - 0xAA79, 0x6CCA, 0xAA7A, 0x6CAC, 0xAA7B, 0x6CEF, 0xAA7C, 0x6CDC, - 0xAA7D, 0x6CD6, 0xAA7E, 0x6CE0, 0xAAA1, 0x7095, 0xAAA2, 0x708E, - 0xAAA3, 0x7092, 0xAAA4, 0x708A, 0xAAA5, 0x7099, 0xAAA6, 0x722C, - 0xAAA7, 0x722D, 0xAAA8, 0x7238, 0xAAA9, 0x7248, 0xAAAA, 0x7267, - 0xAAAB, 0x7269, 0xAAAC, 0x72C0, 0xAAAD, 0x72CE, 0xAAAE, 0x72D9, - 0xAAAF, 0x72D7, 0xAAB0, 0x72D0, 0xAAB1, 0x73A9, 0xAAB2, 0x73A8, - 0xAAB3, 0x739F, 0xAAB4, 0x73AB, 0xAAB5, 0x73A5, 0xAAB6, 0x753D, - 0xAAB7, 0x759D, 0xAAB8, 0x7599, 0xAAB9, 0x759A, 0xAABA, 0x7684, - 0xAABB, 0x76C2, 0xAABC, 0x76F2, 0xAABD, 0x76F4, 0xAABE, 0x77E5, - 0xAABF, 0x77FD, 0xAAC0, 0x793E, 0xAAC1, 0x7940, 0xAAC2, 0x7941, - 0xAAC3, 0x79C9, 0xAAC4, 0x79C8, 0xAAC5, 0x7A7A, 0xAAC6, 0x7A79, - 0xAAC7, 0x7AFA, 0xAAC8, 0x7CFE, 0xAAC9, 0x7F54, 0xAACA, 0x7F8C, - 0xAACB, 0x7F8B, 0xAACC, 0x8005, 0xAACD, 0x80BA, 0xAACE, 0x80A5, - 0xAACF, 0x80A2, 0xAAD0, 0x80B1, 0xAAD1, 0x80A1, 0xAAD2, 0x80AB, - 0xAAD3, 0x80A9, 0xAAD4, 0x80B4, 0xAAD5, 0x80AA, 0xAAD6, 0x80AF, - 0xAAD7, 0x81E5, 0xAAD8, 0x81FE, 0xAAD9, 0x820D, 0xAADA, 0x82B3, - 0xAADB, 0x829D, 0xAADC, 0x8299, 0xAADD, 0x82AD, 0xAADE, 0x82BD, - 0xAADF, 0x829F, 0xAAE0, 0x82B9, 0xAAE1, 0x82B1, 0xAAE2, 0x82AC, - 0xAAE3, 0x82A5, 0xAAE4, 0x82AF, 0xAAE5, 0x82B8, 0xAAE6, 0x82A3, - 0xAAE7, 0x82B0, 0xAAE8, 0x82BE, 0xAAE9, 0x82B7, 0xAAEA, 0x864E, - 0xAAEB, 0x8671, 0xAAEC, 0x521D, 0xAAED, 0x8868, 0xAAEE, 0x8ECB, - 0xAAEF, 0x8FCE, 0xAAF0, 0x8FD4, 0xAAF1, 0x8FD1, 0xAAF2, 0x90B5, - 0xAAF3, 0x90B8, 0xAAF4, 0x90B1, 0xAAF5, 0x90B6, 0xAAF6, 0x91C7, - 0xAAF7, 0x91D1, 0xAAF8, 0x9577, 0xAAF9, 0x9580, 0xAAFA, 0x961C, - 0xAAFB, 0x9640, 0xAAFC, 0x963F, 0xAAFD, 0x963B, 0xAAFE, 0x9644, - 0xAB40, 0x9642, 0xAB41, 0x96B9, 0xAB42, 0x96E8, 0xAB43, 0x9752, - 0xAB44, 0x975E, 0xAB45, 0x4E9F, 0xAB46, 0x4EAD, 0xAB47, 0x4EAE, - 0xAB48, 0x4FE1, 0xAB49, 0x4FB5, 0xAB4A, 0x4FAF, 0xAB4B, 0x4FBF, - 0xAB4C, 0x4FE0, 0xAB4D, 0x4FD1, 0xAB4E, 0x4FCF, 0xAB4F, 0x4FDD, - 0xAB50, 0x4FC3, 0xAB51, 0x4FB6, 0xAB52, 0x4FD8, 0xAB53, 0x4FDF, - 0xAB54, 0x4FCA, 0xAB55, 0x4FD7, 0xAB56, 0x4FAE, 0xAB57, 0x4FD0, - 0xAB58, 0x4FC4, 0xAB59, 0x4FC2, 0xAB5A, 0x4FDA, 0xAB5B, 0x4FCE, - 0xAB5C, 0x4FDE, 0xAB5D, 0x4FB7, 0xAB5E, 0x5157, 0xAB5F, 0x5192, - 0xAB60, 0x5191, 0xAB61, 0x51A0, 0xAB62, 0x524E, 0xAB63, 0x5243, - 0xAB64, 0x524A, 0xAB65, 0x524D, 0xAB66, 0x524C, 0xAB67, 0x524B, - 0xAB68, 0x5247, 0xAB69, 0x52C7, 0xAB6A, 0x52C9, 0xAB6B, 0x52C3, - 0xAB6C, 0x52C1, 0xAB6D, 0x530D, 0xAB6E, 0x5357, 0xAB6F, 0x537B, - 0xAB70, 0x539A, 0xAB71, 0x53DB, 0xAB72, 0x54AC, 0xAB73, 0x54C0, - 0xAB74, 0x54A8, 0xAB75, 0x54CE, 0xAB76, 0x54C9, 0xAB77, 0x54B8, - 0xAB78, 0x54A6, 0xAB79, 0x54B3, 0xAB7A, 0x54C7, 0xAB7B, 0x54C2, - 0xAB7C, 0x54BD, 0xAB7D, 0x54AA, 0xAB7E, 0x54C1, 0xABA1, 0x54C4, - 0xABA2, 0x54C8, 0xABA3, 0x54AF, 0xABA4, 0x54AB, 0xABA5, 0x54B1, - 0xABA6, 0x54BB, 0xABA7, 0x54A9, 0xABA8, 0x54A7, 0xABA9, 0x54BF, - 0xABAA, 0x56FF, 0xABAB, 0x5782, 0xABAC, 0x578B, 0xABAD, 0x57A0, - 0xABAE, 0x57A3, 0xABAF, 0x57A2, 0xABB0, 0x57CE, 0xABB1, 0x57AE, - 0xABB2, 0x5793, 0xABB3, 0x5955, 0xABB4, 0x5951, 0xABB5, 0x594F, - 0xABB6, 0x594E, 0xABB7, 0x5950, 0xABB8, 0x59DC, 0xABB9, 0x59D8, - 0xABBA, 0x59FF, 0xABBB, 0x59E3, 0xABBC, 0x59E8, 0xABBD, 0x5A03, - 0xABBE, 0x59E5, 0xABBF, 0x59EA, 0xABC0, 0x59DA, 0xABC1, 0x59E6, - 0xABC2, 0x5A01, 0xABC3, 0x59FB, 0xABC4, 0x5B69, 0xABC5, 0x5BA3, - 0xABC6, 0x5BA6, 0xABC7, 0x5BA4, 0xABC8, 0x5BA2, 0xABC9, 0x5BA5, - 0xABCA, 0x5C01, 0xABCB, 0x5C4E, 0xABCC, 0x5C4F, 0xABCD, 0x5C4D, - 0xABCE, 0x5C4B, 0xABCF, 0x5CD9, 0xABD0, 0x5CD2, 0xABD1, 0x5DF7, - 0xABD2, 0x5E1D, 0xABD3, 0x5E25, 0xABD4, 0x5E1F, 0xABD5, 0x5E7D, - 0xABD6, 0x5EA0, 0xABD7, 0x5EA6, 0xABD8, 0x5EFA, 0xABD9, 0x5F08, - 0xABDA, 0x5F2D, 0xABDB, 0x5F65, 0xABDC, 0x5F88, 0xABDD, 0x5F85, - 0xABDE, 0x5F8A, 0xABDF, 0x5F8B, 0xABE0, 0x5F87, 0xABE1, 0x5F8C, - 0xABE2, 0x5F89, 0xABE3, 0x6012, 0xABE4, 0x601D, 0xABE5, 0x6020, - 0xABE6, 0x6025, 0xABE7, 0x600E, 0xABE8, 0x6028, 0xABE9, 0x604D, - 0xABEA, 0x6070, 0xABEB, 0x6068, 0xABEC, 0x6062, 0xABED, 0x6046, - 0xABEE, 0x6043, 0xABEF, 0x606C, 0xABF0, 0x606B, 0xABF1, 0x606A, - 0xABF2, 0x6064, 0xABF3, 0x6241, 0xABF4, 0x62DC, 0xABF5, 0x6316, - 0xABF6, 0x6309, 0xABF7, 0x62FC, 0xABF8, 0x62ED, 0xABF9, 0x6301, - 0xABFA, 0x62EE, 0xABFB, 0x62FD, 0xABFC, 0x6307, 0xABFD, 0x62F1, - 0xABFE, 0x62F7, 0xAC40, 0x62EF, 0xAC41, 0x62EC, 0xAC42, 0x62FE, - 0xAC43, 0x62F4, 0xAC44, 0x6311, 0xAC45, 0x6302, 0xAC46, 0x653F, - 0xAC47, 0x6545, 0xAC48, 0x65AB, 0xAC49, 0x65BD, 0xAC4A, 0x65E2, - 0xAC4B, 0x6625, 0xAC4C, 0x662D, 0xAC4D, 0x6620, 0xAC4E, 0x6627, - 0xAC4F, 0x662F, 0xAC50, 0x661F, 0xAC51, 0x6628, 0xAC52, 0x6631, - 0xAC53, 0x6624, 0xAC54, 0x66F7, 0xAC55, 0x67FF, 0xAC56, 0x67D3, - 0xAC57, 0x67F1, 0xAC58, 0x67D4, 0xAC59, 0x67D0, 0xAC5A, 0x67EC, - 0xAC5B, 0x67B6, 0xAC5C, 0x67AF, 0xAC5D, 0x67F5, 0xAC5E, 0x67E9, - 0xAC5F, 0x67EF, 0xAC60, 0x67C4, 0xAC61, 0x67D1, 0xAC62, 0x67B4, - 0xAC63, 0x67DA, 0xAC64, 0x67E5, 0xAC65, 0x67B8, 0xAC66, 0x67CF, - 0xAC67, 0x67DE, 0xAC68, 0x67F3, 0xAC69, 0x67B0, 0xAC6A, 0x67D9, - 0xAC6B, 0x67E2, 0xAC6C, 0x67DD, 0xAC6D, 0x67D2, 0xAC6E, 0x6B6A, - 0xAC6F, 0x6B83, 0xAC70, 0x6B86, 0xAC71, 0x6BB5, 0xAC72, 0x6BD2, - 0xAC73, 0x6BD7, 0xAC74, 0x6C1F, 0xAC75, 0x6CC9, 0xAC76, 0x6D0B, - 0xAC77, 0x6D32, 0xAC78, 0x6D2A, 0xAC79, 0x6D41, 0xAC7A, 0x6D25, - 0xAC7B, 0x6D0C, 0xAC7C, 0x6D31, 0xAC7D, 0x6D1E, 0xAC7E, 0x6D17, - 0xACA1, 0x6D3B, 0xACA2, 0x6D3D, 0xACA3, 0x6D3E, 0xACA4, 0x6D36, - 0xACA5, 0x6D1B, 0xACA6, 0x6CF5, 0xACA7, 0x6D39, 0xACA8, 0x6D27, - 0xACA9, 0x6D38, 0xACAA, 0x6D29, 0xACAB, 0x6D2E, 0xACAC, 0x6D35, - 0xACAD, 0x6D0E, 0xACAE, 0x6D2B, 0xACAF, 0x70AB, 0xACB0, 0x70BA, - 0xACB1, 0x70B3, 0xACB2, 0x70AC, 0xACB3, 0x70AF, 0xACB4, 0x70AD, - 0xACB5, 0x70B8, 0xACB6, 0x70AE, 0xACB7, 0x70A4, 0xACB8, 0x7230, - 0xACB9, 0x7272, 0xACBA, 0x726F, 0xACBB, 0x7274, 0xACBC, 0x72E9, - 0xACBD, 0x72E0, 0xACBE, 0x72E1, 0xACBF, 0x73B7, 0xACC0, 0x73CA, - 0xACC1, 0x73BB, 0xACC2, 0x73B2, 0xACC3, 0x73CD, 0xACC4, 0x73C0, - 0xACC5, 0x73B3, 0xACC6, 0x751A, 0xACC7, 0x752D, 0xACC8, 0x754F, - 0xACC9, 0x754C, 0xACCA, 0x754E, 0xACCB, 0x754B, 0xACCC, 0x75AB, - 0xACCD, 0x75A4, 0xACCE, 0x75A5, 0xACCF, 0x75A2, 0xACD0, 0x75A3, - 0xACD1, 0x7678, 0xACD2, 0x7686, 0xACD3, 0x7687, 0xACD4, 0x7688, - 0xACD5, 0x76C8, 0xACD6, 0x76C6, 0xACD7, 0x76C3, 0xACD8, 0x76C5, - 0xACD9, 0x7701, 0xACDA, 0x76F9, 0xACDB, 0x76F8, 0xACDC, 0x7709, - 0xACDD, 0x770B, 0xACDE, 0x76FE, 0xACDF, 0x76FC, 0xACE0, 0x7707, - 0xACE1, 0x77DC, 0xACE2, 0x7802, 0xACE3, 0x7814, 0xACE4, 0x780C, - 0xACE5, 0x780D, 0xACE6, 0x7946, 0xACE7, 0x7949, 0xACE8, 0x7948, - 0xACE9, 0x7947, 0xACEA, 0x79B9, 0xACEB, 0x79BA, 0xACEC, 0x79D1, - 0xACED, 0x79D2, 0xACEE, 0x79CB, 0xACEF, 0x7A7F, 0xACF0, 0x7A81, - 0xACF1, 0x7AFF, 0xACF2, 0x7AFD, 0xACF3, 0x7C7D, 0xACF4, 0x7D02, - 0xACF5, 0x7D05, 0xACF6, 0x7D00, 0xACF7, 0x7D09, 0xACF8, 0x7D07, - 0xACF9, 0x7D04, 0xACFA, 0x7D06, 0xACFB, 0x7F38, 0xACFC, 0x7F8E, - 0xACFD, 0x7FBF, 0xACFE, 0x8004, 0xAD40, 0x8010, 0xAD41, 0x800D, - 0xAD42, 0x8011, 0xAD43, 0x8036, 0xAD44, 0x80D6, 0xAD45, 0x80E5, - 0xAD46, 0x80DA, 0xAD47, 0x80C3, 0xAD48, 0x80C4, 0xAD49, 0x80CC, - 0xAD4A, 0x80E1, 0xAD4B, 0x80DB, 0xAD4C, 0x80CE, 0xAD4D, 0x80DE, - 0xAD4E, 0x80E4, 0xAD4F, 0x80DD, 0xAD50, 0x81F4, 0xAD51, 0x8222, - 0xAD52, 0x82E7, 0xAD53, 0x8303, 0xAD54, 0x8305, 0xAD55, 0x82E3, - 0xAD56, 0x82DB, 0xAD57, 0x82E6, 0xAD58, 0x8304, 0xAD59, 0x82E5, - 0xAD5A, 0x8302, 0xAD5B, 0x8309, 0xAD5C, 0x82D2, 0xAD5D, 0x82D7, - 0xAD5E, 0x82F1, 0xAD5F, 0x8301, 0xAD60, 0x82DC, 0xAD61, 0x82D4, - 0xAD62, 0x82D1, 0xAD63, 0x82DE, 0xAD64, 0x82D3, 0xAD65, 0x82DF, - 0xAD66, 0x82EF, 0xAD67, 0x8306, 0xAD68, 0x8650, 0xAD69, 0x8679, - 0xAD6A, 0x867B, 0xAD6B, 0x867A, 0xAD6C, 0x884D, 0xAD6D, 0x886B, - 0xAD6E, 0x8981, 0xAD6F, 0x89D4, 0xAD70, 0x8A08, 0xAD71, 0x8A02, - 0xAD72, 0x8A03, 0xAD73, 0x8C9E, 0xAD74, 0x8CA0, 0xAD75, 0x8D74, - 0xAD76, 0x8D73, 0xAD77, 0x8DB4, 0xAD78, 0x8ECD, 0xAD79, 0x8ECC, - 0xAD7A, 0x8FF0, 0xAD7B, 0x8FE6, 0xAD7C, 0x8FE2, 0xAD7D, 0x8FEA, - 0xAD7E, 0x8FE5, 0xADA1, 0x8FED, 0xADA2, 0x8FEB, 0xADA3, 0x8FE4, - 0xADA4, 0x8FE8, 0xADA5, 0x90CA, 0xADA6, 0x90CE, 0xADA7, 0x90C1, - 0xADA8, 0x90C3, 0xADA9, 0x914B, 0xADAA, 0x914A, 0xADAB, 0x91CD, - 0xADAC, 0x9582, 0xADAD, 0x9650, 0xADAE, 0x964B, 0xADAF, 0x964C, - 0xADB0, 0x964D, 0xADB1, 0x9762, 0xADB2, 0x9769, 0xADB3, 0x97CB, - 0xADB4, 0x97ED, 0xADB5, 0x97F3, 0xADB6, 0x9801, 0xADB7, 0x98A8, - 0xADB8, 0x98DB, 0xADB9, 0x98DF, 0xADBA, 0x9996, 0xADBB, 0x9999, - 0xADBC, 0x4E58, 0xADBD, 0x4EB3, 0xADBE, 0x500C, 0xADBF, 0x500D, - 0xADC0, 0x5023, 0xADC1, 0x4FEF, 0xADC2, 0x5026, 0xADC3, 0x5025, - 0xADC4, 0x4FF8, 0xADC5, 0x5029, 0xADC6, 0x5016, 0xADC7, 0x5006, - 0xADC8, 0x503C, 0xADC9, 0x501F, 0xADCA, 0x501A, 0xADCB, 0x5012, - 0xADCC, 0x5011, 0xADCD, 0x4FFA, 0xADCE, 0x5000, 0xADCF, 0x5014, - 0xADD0, 0x5028, 0xADD1, 0x4FF1, 0xADD2, 0x5021, 0xADD3, 0x500B, - 0xADD4, 0x5019, 0xADD5, 0x5018, 0xADD6, 0x4FF3, 0xADD7, 0x4FEE, - 0xADD8, 0x502D, 0xADD9, 0x502A, 0xADDA, 0x4FFE, 0xADDB, 0x502B, - 0xADDC, 0x5009, 0xADDD, 0x517C, 0xADDE, 0x51A4, 0xADDF, 0x51A5, - 0xADE0, 0x51A2, 0xADE1, 0x51CD, 0xADE2, 0x51CC, 0xADE3, 0x51C6, - 0xADE4, 0x51CB, 0xADE5, 0x5256, 0xADE6, 0x525C, 0xADE7, 0x5254, - 0xADE8, 0x525B, 0xADE9, 0x525D, 0xADEA, 0x532A, 0xADEB, 0x537F, - 0xADEC, 0x539F, 0xADED, 0x539D, 0xADEE, 0x53DF, 0xADEF, 0x54E8, - 0xADF0, 0x5510, 0xADF1, 0x5501, 0xADF2, 0x5537, 0xADF3, 0x54FC, - 0xADF4, 0x54E5, 0xADF5, 0x54F2, 0xADF6, 0x5506, 0xADF7, 0x54FA, - 0xADF8, 0x5514, 0xADF9, 0x54E9, 0xADFA, 0x54ED, 0xADFB, 0x54E1, - 0xADFC, 0x5509, 0xADFD, 0x54EE, 0xADFE, 0x54EA, 0xAE40, 0x54E6, - 0xAE41, 0x5527, 0xAE42, 0x5507, 0xAE43, 0x54FD, 0xAE44, 0x550F, - 0xAE45, 0x5703, 0xAE46, 0x5704, 0xAE47, 0x57C2, 0xAE48, 0x57D4, - 0xAE49, 0x57CB, 0xAE4A, 0x57C3, 0xAE4B, 0x5809, 0xAE4C, 0x590F, - 0xAE4D, 0x5957, 0xAE4E, 0x5958, 0xAE4F, 0x595A, 0xAE50, 0x5A11, - 0xAE51, 0x5A18, 0xAE52, 0x5A1C, 0xAE53, 0x5A1F, 0xAE54, 0x5A1B, - 0xAE55, 0x5A13, 0xAE56, 0x59EC, 0xAE57, 0x5A20, 0xAE58, 0x5A23, - 0xAE59, 0x5A29, 0xAE5A, 0x5A25, 0xAE5B, 0x5A0C, 0xAE5C, 0x5A09, - 0xAE5D, 0x5B6B, 0xAE5E, 0x5C58, 0xAE5F, 0x5BB0, 0xAE60, 0x5BB3, - 0xAE61, 0x5BB6, 0xAE62, 0x5BB4, 0xAE63, 0x5BAE, 0xAE64, 0x5BB5, - 0xAE65, 0x5BB9, 0xAE66, 0x5BB8, 0xAE67, 0x5C04, 0xAE68, 0x5C51, - 0xAE69, 0x5C55, 0xAE6A, 0x5C50, 0xAE6B, 0x5CED, 0xAE6C, 0x5CFD, - 0xAE6D, 0x5CFB, 0xAE6E, 0x5CEA, 0xAE6F, 0x5CE8, 0xAE70, 0x5CF0, - 0xAE71, 0x5CF6, 0xAE72, 0x5D01, 0xAE73, 0x5CF4, 0xAE74, 0x5DEE, - 0xAE75, 0x5E2D, 0xAE76, 0x5E2B, 0xAE77, 0x5EAB, 0xAE78, 0x5EAD, - 0xAE79, 0x5EA7, 0xAE7A, 0x5F31, 0xAE7B, 0x5F92, 0xAE7C, 0x5F91, - 0xAE7D, 0x5F90, 0xAE7E, 0x6059, 0xAEA1, 0x6063, 0xAEA2, 0x6065, - 0xAEA3, 0x6050, 0xAEA4, 0x6055, 0xAEA5, 0x606D, 0xAEA6, 0x6069, - 0xAEA7, 0x606F, 0xAEA8, 0x6084, 0xAEA9, 0x609F, 0xAEAA, 0x609A, - 0xAEAB, 0x608D, 0xAEAC, 0x6094, 0xAEAD, 0x608C, 0xAEAE, 0x6085, - 0xAEAF, 0x6096, 0xAEB0, 0x6247, 0xAEB1, 0x62F3, 0xAEB2, 0x6308, - 0xAEB3, 0x62FF, 0xAEB4, 0x634E, 0xAEB5, 0x633E, 0xAEB6, 0x632F, - 0xAEB7, 0x6355, 0xAEB8, 0x6342, 0xAEB9, 0x6346, 0xAEBA, 0x634F, - 0xAEBB, 0x6349, 0xAEBC, 0x633A, 0xAEBD, 0x6350, 0xAEBE, 0x633D, - 0xAEBF, 0x632A, 0xAEC0, 0x632B, 0xAEC1, 0x6328, 0xAEC2, 0x634D, - 0xAEC3, 0x634C, 0xAEC4, 0x6548, 0xAEC5, 0x6549, 0xAEC6, 0x6599, - 0xAEC7, 0x65C1, 0xAEC8, 0x65C5, 0xAEC9, 0x6642, 0xAECA, 0x6649, - 0xAECB, 0x664F, 0xAECC, 0x6643, 0xAECD, 0x6652, 0xAECE, 0x664C, - 0xAECF, 0x6645, 0xAED0, 0x6641, 0xAED1, 0x66F8, 0xAED2, 0x6714, - 0xAED3, 0x6715, 0xAED4, 0x6717, 0xAED5, 0x6821, 0xAED6, 0x6838, - 0xAED7, 0x6848, 0xAED8, 0x6846, 0xAED9, 0x6853, 0xAEDA, 0x6839, - 0xAEDB, 0x6842, 0xAEDC, 0x6854, 0xAEDD, 0x6829, 0xAEDE, 0x68B3, - 0xAEDF, 0x6817, 0xAEE0, 0x684C, 0xAEE1, 0x6851, 0xAEE2, 0x683D, - 0xAEE3, 0x67F4, 0xAEE4, 0x6850, 0xAEE5, 0x6840, 0xAEE6, 0x683C, - 0xAEE7, 0x6843, 0xAEE8, 0x682A, 0xAEE9, 0x6845, 0xAEEA, 0x6813, - 0xAEEB, 0x6818, 0xAEEC, 0x6841, 0xAEED, 0x6B8A, 0xAEEE, 0x6B89, - 0xAEEF, 0x6BB7, 0xAEF0, 0x6C23, 0xAEF1, 0x6C27, 0xAEF2, 0x6C28, - 0xAEF3, 0x6C26, 0xAEF4, 0x6C24, 0xAEF5, 0x6CF0, 0xAEF6, 0x6D6A, - 0xAEF7, 0x6D95, 0xAEF8, 0x6D88, 0xAEF9, 0x6D87, 0xAEFA, 0x6D66, - 0xAEFB, 0x6D78, 0xAEFC, 0x6D77, 0xAEFD, 0x6D59, 0xAEFE, 0x6D93, - 0xAF40, 0x6D6C, 0xAF41, 0x6D89, 0xAF42, 0x6D6E, 0xAF43, 0x6D5A, - 0xAF44, 0x6D74, 0xAF45, 0x6D69, 0xAF46, 0x6D8C, 0xAF47, 0x6D8A, - 0xAF48, 0x6D79, 0xAF49, 0x6D85, 0xAF4A, 0x6D65, 0xAF4B, 0x6D94, - 0xAF4C, 0x70CA, 0xAF4D, 0x70D8, 0xAF4E, 0x70E4, 0xAF4F, 0x70D9, - 0xAF50, 0x70C8, 0xAF51, 0x70CF, 0xAF52, 0x7239, 0xAF53, 0x7279, - 0xAF54, 0x72FC, 0xAF55, 0x72F9, 0xAF56, 0x72FD, 0xAF57, 0x72F8, - 0xAF58, 0x72F7, 0xAF59, 0x7386, 0xAF5A, 0x73ED, 0xAF5B, 0x7409, - 0xAF5C, 0x73EE, 0xAF5D, 0x73E0, 0xAF5E, 0x73EA, 0xAF5F, 0x73DE, - 0xAF60, 0x7554, 0xAF61, 0x755D, 0xAF62, 0x755C, 0xAF63, 0x755A, - 0xAF64, 0x7559, 0xAF65, 0x75BE, 0xAF66, 0x75C5, 0xAF67, 0x75C7, - 0xAF68, 0x75B2, 0xAF69, 0x75B3, 0xAF6A, 0x75BD, 0xAF6B, 0x75BC, - 0xAF6C, 0x75B9, 0xAF6D, 0x75C2, 0xAF6E, 0x75B8, 0xAF6F, 0x768B, - 0xAF70, 0x76B0, 0xAF71, 0x76CA, 0xAF72, 0x76CD, 0xAF73, 0x76CE, - 0xAF74, 0x7729, 0xAF75, 0x771F, 0xAF76, 0x7720, 0xAF77, 0x7728, - 0xAF78, 0x77E9, 0xAF79, 0x7830, 0xAF7A, 0x7827, 0xAF7B, 0x7838, - 0xAF7C, 0x781D, 0xAF7D, 0x7834, 0xAF7E, 0x7837, 0xAFA1, 0x7825, - 0xAFA2, 0x782D, 0xAFA3, 0x7820, 0xAFA4, 0x781F, 0xAFA5, 0x7832, - 0xAFA6, 0x7955, 0xAFA7, 0x7950, 0xAFA8, 0x7960, 0xAFA9, 0x795F, - 0xAFAA, 0x7956, 0xAFAB, 0x795E, 0xAFAC, 0x795D, 0xAFAD, 0x7957, - 0xAFAE, 0x795A, 0xAFAF, 0x79E4, 0xAFB0, 0x79E3, 0xAFB1, 0x79E7, - 0xAFB2, 0x79DF, 0xAFB3, 0x79E6, 0xAFB4, 0x79E9, 0xAFB5, 0x79D8, - 0xAFB6, 0x7A84, 0xAFB7, 0x7A88, 0xAFB8, 0x7AD9, 0xAFB9, 0x7B06, - 0xAFBA, 0x7B11, 0xAFBB, 0x7C89, 0xAFBC, 0x7D21, 0xAFBD, 0x7D17, - 0xAFBE, 0x7D0B, 0xAFBF, 0x7D0A, 0xAFC0, 0x7D20, 0xAFC1, 0x7D22, - 0xAFC2, 0x7D14, 0xAFC3, 0x7D10, 0xAFC4, 0x7D15, 0xAFC5, 0x7D1A, - 0xAFC6, 0x7D1C, 0xAFC7, 0x7D0D, 0xAFC8, 0x7D19, 0xAFC9, 0x7D1B, - 0xAFCA, 0x7F3A, 0xAFCB, 0x7F5F, 0xAFCC, 0x7F94, 0xAFCD, 0x7FC5, - 0xAFCE, 0x7FC1, 0xAFCF, 0x8006, 0xAFD0, 0x8018, 0xAFD1, 0x8015, - 0xAFD2, 0x8019, 0xAFD3, 0x8017, 0xAFD4, 0x803D, 0xAFD5, 0x803F, - 0xAFD6, 0x80F1, 0xAFD7, 0x8102, 0xAFD8, 0x80F0, 0xAFD9, 0x8105, - 0xAFDA, 0x80ED, 0xAFDB, 0x80F4, 0xAFDC, 0x8106, 0xAFDD, 0x80F8, - 0xAFDE, 0x80F3, 0xAFDF, 0x8108, 0xAFE0, 0x80FD, 0xAFE1, 0x810A, - 0xAFE2, 0x80FC, 0xAFE3, 0x80EF, 0xAFE4, 0x81ED, 0xAFE5, 0x81EC, - 0xAFE6, 0x8200, 0xAFE7, 0x8210, 0xAFE8, 0x822A, 0xAFE9, 0x822B, - 0xAFEA, 0x8228, 0xAFEB, 0x822C, 0xAFEC, 0x82BB, 0xAFED, 0x832B, - 0xAFEE, 0x8352, 0xAFEF, 0x8354, 0xAFF0, 0x834A, 0xAFF1, 0x8338, - 0xAFF2, 0x8350, 0xAFF3, 0x8349, 0xAFF4, 0x8335, 0xAFF5, 0x8334, - 0xAFF6, 0x834F, 0xAFF7, 0x8332, 0xAFF8, 0x8339, 0xAFF9, 0x8336, - 0xAFFA, 0x8317, 0xAFFB, 0x8340, 0xAFFC, 0x8331, 0xAFFD, 0x8328, - 0xAFFE, 0x8343, 0xB040, 0x8654, 0xB041, 0x868A, 0xB042, 0x86AA, - 0xB043, 0x8693, 0xB044, 0x86A4, 0xB045, 0x86A9, 0xB046, 0x868C, - 0xB047, 0x86A3, 0xB048, 0x869C, 0xB049, 0x8870, 0xB04A, 0x8877, - 0xB04B, 0x8881, 0xB04C, 0x8882, 0xB04D, 0x887D, 0xB04E, 0x8879, - 0xB04F, 0x8A18, 0xB050, 0x8A10, 0xB051, 0x8A0E, 0xB052, 0x8A0C, - 0xB053, 0x8A15, 0xB054, 0x8A0A, 0xB055, 0x8A17, 0xB056, 0x8A13, - 0xB057, 0x8A16, 0xB058, 0x8A0F, 0xB059, 0x8A11, 0xB05A, 0x8C48, - 0xB05B, 0x8C7A, 0xB05C, 0x8C79, 0xB05D, 0x8CA1, 0xB05E, 0x8CA2, - 0xB05F, 0x8D77, 0xB060, 0x8EAC, 0xB061, 0x8ED2, 0xB062, 0x8ED4, - 0xB063, 0x8ECF, 0xB064, 0x8FB1, 0xB065, 0x9001, 0xB066, 0x9006, - 0xB067, 0x8FF7, 0xB068, 0x9000, 0xB069, 0x8FFA, 0xB06A, 0x8FF4, - 0xB06B, 0x9003, 0xB06C, 0x8FFD, 0xB06D, 0x9005, 0xB06E, 0x8FF8, - 0xB06F, 0x9095, 0xB070, 0x90E1, 0xB071, 0x90DD, 0xB072, 0x90E2, - 0xB073, 0x9152, 0xB074, 0x914D, 0xB075, 0x914C, 0xB076, 0x91D8, - 0xB077, 0x91DD, 0xB078, 0x91D7, 0xB079, 0x91DC, 0xB07A, 0x91D9, - 0xB07B, 0x9583, 0xB07C, 0x9662, 0xB07D, 0x9663, 0xB07E, 0x9661, - 0xB0A1, 0x965B, 0xB0A2, 0x965D, 0xB0A3, 0x9664, 0xB0A4, 0x9658, - 0xB0A5, 0x965E, 0xB0A6, 0x96BB, 0xB0A7, 0x98E2, 0xB0A8, 0x99AC, - 0xB0A9, 0x9AA8, 0xB0AA, 0x9AD8, 0xB0AB, 0x9B25, 0xB0AC, 0x9B32, - 0xB0AD, 0x9B3C, 0xB0AE, 0x4E7E, 0xB0AF, 0x507A, 0xB0B0, 0x507D, - 0xB0B1, 0x505C, 0xB0B2, 0x5047, 0xB0B3, 0x5043, 0xB0B4, 0x504C, - 0xB0B5, 0x505A, 0xB0B6, 0x5049, 0xB0B7, 0x5065, 0xB0B8, 0x5076, - 0xB0B9, 0x504E, 0xB0BA, 0x5055, 0xB0BB, 0x5075, 0xB0BC, 0x5074, - 0xB0BD, 0x5077, 0xB0BE, 0x504F, 0xB0BF, 0x500F, 0xB0C0, 0x506F, - 0xB0C1, 0x506D, 0xB0C2, 0x515C, 0xB0C3, 0x5195, 0xB0C4, 0x51F0, - 0xB0C5, 0x526A, 0xB0C6, 0x526F, 0xB0C7, 0x52D2, 0xB0C8, 0x52D9, - 0xB0C9, 0x52D8, 0xB0CA, 0x52D5, 0xB0CB, 0x5310, 0xB0CC, 0x530F, - 0xB0CD, 0x5319, 0xB0CE, 0x533F, 0xB0CF, 0x5340, 0xB0D0, 0x533E, - 0xB0D1, 0x53C3, 0xB0D2, 0x66FC, 0xB0D3, 0x5546, 0xB0D4, 0x556A, - 0xB0D5, 0x5566, 0xB0D6, 0x5544, 0xB0D7, 0x555E, 0xB0D8, 0x5561, - 0xB0D9, 0x5543, 0xB0DA, 0x554A, 0xB0DB, 0x5531, 0xB0DC, 0x5556, - 0xB0DD, 0x554F, 0xB0DE, 0x5555, 0xB0DF, 0x552F, 0xB0E0, 0x5564, - 0xB0E1, 0x5538, 0xB0E2, 0x552E, 0xB0E3, 0x555C, 0xB0E4, 0x552C, - 0xB0E5, 0x5563, 0xB0E6, 0x5533, 0xB0E7, 0x5541, 0xB0E8, 0x5557, - 0xB0E9, 0x5708, 0xB0EA, 0x570B, 0xB0EB, 0x5709, 0xB0EC, 0x57DF, - 0xB0ED, 0x5805, 0xB0EE, 0x580A, 0xB0EF, 0x5806, 0xB0F0, 0x57E0, - 0xB0F1, 0x57E4, 0xB0F2, 0x57FA, 0xB0F3, 0x5802, 0xB0F4, 0x5835, - 0xB0F5, 0x57F7, 0xB0F6, 0x57F9, 0xB0F7, 0x5920, 0xB0F8, 0x5962, - 0xB0F9, 0x5A36, 0xB0FA, 0x5A41, 0xB0FB, 0x5A49, 0xB0FC, 0x5A66, - 0xB0FD, 0x5A6A, 0xB0FE, 0x5A40, 0xB140, 0x5A3C, 0xB141, 0x5A62, - 0xB142, 0x5A5A, 0xB143, 0x5A46, 0xB144, 0x5A4A, 0xB145, 0x5B70, - 0xB146, 0x5BC7, 0xB147, 0x5BC5, 0xB148, 0x5BC4, 0xB149, 0x5BC2, - 0xB14A, 0x5BBF, 0xB14B, 0x5BC6, 0xB14C, 0x5C09, 0xB14D, 0x5C08, - 0xB14E, 0x5C07, 0xB14F, 0x5C60, 0xB150, 0x5C5C, 0xB151, 0x5C5D, - 0xB152, 0x5D07, 0xB153, 0x5D06, 0xB154, 0x5D0E, 0xB155, 0x5D1B, - 0xB156, 0x5D16, 0xB157, 0x5D22, 0xB158, 0x5D11, 0xB159, 0x5D29, - 0xB15A, 0x5D14, 0xB15B, 0x5D19, 0xB15C, 0x5D24, 0xB15D, 0x5D27, - 0xB15E, 0x5D17, 0xB15F, 0x5DE2, 0xB160, 0x5E38, 0xB161, 0x5E36, - 0xB162, 0x5E33, 0xB163, 0x5E37, 0xB164, 0x5EB7, 0xB165, 0x5EB8, - 0xB166, 0x5EB6, 0xB167, 0x5EB5, 0xB168, 0x5EBE, 0xB169, 0x5F35, - 0xB16A, 0x5F37, 0xB16B, 0x5F57, 0xB16C, 0x5F6C, 0xB16D, 0x5F69, - 0xB16E, 0x5F6B, 0xB16F, 0x5F97, 0xB170, 0x5F99, 0xB171, 0x5F9E, - 0xB172, 0x5F98, 0xB173, 0x5FA1, 0xB174, 0x5FA0, 0xB175, 0x5F9C, - 0xB176, 0x607F, 0xB177, 0x60A3, 0xB178, 0x6089, 0xB179, 0x60A0, - 0xB17A, 0x60A8, 0xB17B, 0x60CB, 0xB17C, 0x60B4, 0xB17D, 0x60E6, - 0xB17E, 0x60BD, 0xB1A1, 0x60C5, 0xB1A2, 0x60BB, 0xB1A3, 0x60B5, - 0xB1A4, 0x60DC, 0xB1A5, 0x60BC, 0xB1A6, 0x60D8, 0xB1A7, 0x60D5, - 0xB1A8, 0x60C6, 0xB1A9, 0x60DF, 0xB1AA, 0x60B8, 0xB1AB, 0x60DA, - 0xB1AC, 0x60C7, 0xB1AD, 0x621A, 0xB1AE, 0x621B, 0xB1AF, 0x6248, - 0xB1B0, 0x63A0, 0xB1B1, 0x63A7, 0xB1B2, 0x6372, 0xB1B3, 0x6396, - 0xB1B4, 0x63A2, 0xB1B5, 0x63A5, 0xB1B6, 0x6377, 0xB1B7, 0x6367, - 0xB1B8, 0x6398, 0xB1B9, 0x63AA, 0xB1BA, 0x6371, 0xB1BB, 0x63A9, - 0xB1BC, 0x6389, 0xB1BD, 0x6383, 0xB1BE, 0x639B, 0xB1BF, 0x636B, - 0xB1C0, 0x63A8, 0xB1C1, 0x6384, 0xB1C2, 0x6388, 0xB1C3, 0x6399, - 0xB1C4, 0x63A1, 0xB1C5, 0x63AC, 0xB1C6, 0x6392, 0xB1C7, 0x638F, - 0xB1C8, 0x6380, 0xB1C9, 0x637B, 0xB1CA, 0x6369, 0xB1CB, 0x6368, - 0xB1CC, 0x637A, 0xB1CD, 0x655D, 0xB1CE, 0x6556, 0xB1CF, 0x6551, - 0xB1D0, 0x6559, 0xB1D1, 0x6557, 0xB1D2, 0x555F, 0xB1D3, 0x654F, - 0xB1D4, 0x6558, 0xB1D5, 0x6555, 0xB1D6, 0x6554, 0xB1D7, 0x659C, - 0xB1D8, 0x659B, 0xB1D9, 0x65AC, 0xB1DA, 0x65CF, 0xB1DB, 0x65CB, - 0xB1DC, 0x65CC, 0xB1DD, 0x65CE, 0xB1DE, 0x665D, 0xB1DF, 0x665A, - 0xB1E0, 0x6664, 0xB1E1, 0x6668, 0xB1E2, 0x6666, 0xB1E3, 0x665E, - 0xB1E4, 0x66F9, 0xB1E5, 0x52D7, 0xB1E6, 0x671B, 0xB1E7, 0x6881, - 0xB1E8, 0x68AF, 0xB1E9, 0x68A2, 0xB1EA, 0x6893, 0xB1EB, 0x68B5, - 0xB1EC, 0x687F, 0xB1ED, 0x6876, 0xB1EE, 0x68B1, 0xB1EF, 0x68A7, - 0xB1F0, 0x6897, 0xB1F1, 0x68B0, 0xB1F2, 0x6883, 0xB1F3, 0x68C4, - 0xB1F4, 0x68AD, 0xB1F5, 0x6886, 0xB1F6, 0x6885, 0xB1F7, 0x6894, - 0xB1F8, 0x689D, 0xB1F9, 0x68A8, 0xB1FA, 0x689F, 0xB1FB, 0x68A1, - 0xB1FC, 0x6882, 0xB1FD, 0x6B32, 0xB1FE, 0x6BBA, 0xB240, 0x6BEB, - 0xB241, 0x6BEC, 0xB242, 0x6C2B, 0xB243, 0x6D8E, 0xB244, 0x6DBC, - 0xB245, 0x6DF3, 0xB246, 0x6DD9, 0xB247, 0x6DB2, 0xB248, 0x6DE1, - 0xB249, 0x6DCC, 0xB24A, 0x6DE4, 0xB24B, 0x6DFB, 0xB24C, 0x6DFA, - 0xB24D, 0x6E05, 0xB24E, 0x6DC7, 0xB24F, 0x6DCB, 0xB250, 0x6DAF, - 0xB251, 0x6DD1, 0xB252, 0x6DAE, 0xB253, 0x6DDE, 0xB254, 0x6DF9, - 0xB255, 0x6DB8, 0xB256, 0x6DF7, 0xB257, 0x6DF5, 0xB258, 0x6DC5, - 0xB259, 0x6DD2, 0xB25A, 0x6E1A, 0xB25B, 0x6DB5, 0xB25C, 0x6DDA, - 0xB25D, 0x6DEB, 0xB25E, 0x6DD8, 0xB25F, 0x6DEA, 0xB260, 0x6DF1, - 0xB261, 0x6DEE, 0xB262, 0x6DE8, 0xB263, 0x6DC6, 0xB264, 0x6DC4, - 0xB265, 0x6DAA, 0xB266, 0x6DEC, 0xB267, 0x6DBF, 0xB268, 0x6DE6, - 0xB269, 0x70F9, 0xB26A, 0x7109, 0xB26B, 0x710A, 0xB26C, 0x70FD, - 0xB26D, 0x70EF, 0xB26E, 0x723D, 0xB26F, 0x727D, 0xB270, 0x7281, - 0xB271, 0x731C, 0xB272, 0x731B, 0xB273, 0x7316, 0xB274, 0x7313, - 0xB275, 0x7319, 0xB276, 0x7387, 0xB277, 0x7405, 0xB278, 0x740A, - 0xB279, 0x7403, 0xB27A, 0x7406, 0xB27B, 0x73FE, 0xB27C, 0x740D, - 0xB27D, 0x74E0, 0xB27E, 0x74F6, 0xB2A1, 0x74F7, 0xB2A2, 0x751C, - 0xB2A3, 0x7522, 0xB2A4, 0x7565, 0xB2A5, 0x7566, 0xB2A6, 0x7562, - 0xB2A7, 0x7570, 0xB2A8, 0x758F, 0xB2A9, 0x75D4, 0xB2AA, 0x75D5, - 0xB2AB, 0x75B5, 0xB2AC, 0x75CA, 0xB2AD, 0x75CD, 0xB2AE, 0x768E, - 0xB2AF, 0x76D4, 0xB2B0, 0x76D2, 0xB2B1, 0x76DB, 0xB2B2, 0x7737, - 0xB2B3, 0x773E, 0xB2B4, 0x773C, 0xB2B5, 0x7736, 0xB2B6, 0x7738, - 0xB2B7, 0x773A, 0xB2B8, 0x786B, 0xB2B9, 0x7843, 0xB2BA, 0x784E, - 0xB2BB, 0x7965, 0xB2BC, 0x7968, 0xB2BD, 0x796D, 0xB2BE, 0x79FB, - 0xB2BF, 0x7A92, 0xB2C0, 0x7A95, 0xB2C1, 0x7B20, 0xB2C2, 0x7B28, - 0xB2C3, 0x7B1B, 0xB2C4, 0x7B2C, 0xB2C5, 0x7B26, 0xB2C6, 0x7B19, - 0xB2C7, 0x7B1E, 0xB2C8, 0x7B2E, 0xB2C9, 0x7C92, 0xB2CA, 0x7C97, - 0xB2CB, 0x7C95, 0xB2CC, 0x7D46, 0xB2CD, 0x7D43, 0xB2CE, 0x7D71, - 0xB2CF, 0x7D2E, 0xB2D0, 0x7D39, 0xB2D1, 0x7D3C, 0xB2D2, 0x7D40, - 0xB2D3, 0x7D30, 0xB2D4, 0x7D33, 0xB2D5, 0x7D44, 0xB2D6, 0x7D2F, - 0xB2D7, 0x7D42, 0xB2D8, 0x7D32, 0xB2D9, 0x7D31, 0xB2DA, 0x7F3D, - 0xB2DB, 0x7F9E, 0xB2DC, 0x7F9A, 0xB2DD, 0x7FCC, 0xB2DE, 0x7FCE, - 0xB2DF, 0x7FD2, 0xB2E0, 0x801C, 0xB2E1, 0x804A, 0xB2E2, 0x8046, - 0xB2E3, 0x812F, 0xB2E4, 0x8116, 0xB2E5, 0x8123, 0xB2E6, 0x812B, - 0xB2E7, 0x8129, 0xB2E8, 0x8130, 0xB2E9, 0x8124, 0xB2EA, 0x8202, - 0xB2EB, 0x8235, 0xB2EC, 0x8237, 0xB2ED, 0x8236, 0xB2EE, 0x8239, - 0xB2EF, 0x838E, 0xB2F0, 0x839E, 0xB2F1, 0x8398, 0xB2F2, 0x8378, - 0xB2F3, 0x83A2, 0xB2F4, 0x8396, 0xB2F5, 0x83BD, 0xB2F6, 0x83AB, - 0xB2F7, 0x8392, 0xB2F8, 0x838A, 0xB2F9, 0x8393, 0xB2FA, 0x8389, - 0xB2FB, 0x83A0, 0xB2FC, 0x8377, 0xB2FD, 0x837B, 0xB2FE, 0x837C, - 0xB340, 0x8386, 0xB341, 0x83A7, 0xB342, 0x8655, 0xB343, 0x5F6A, - 0xB344, 0x86C7, 0xB345, 0x86C0, 0xB346, 0x86B6, 0xB347, 0x86C4, - 0xB348, 0x86B5, 0xB349, 0x86C6, 0xB34A, 0x86CB, 0xB34B, 0x86B1, - 0xB34C, 0x86AF, 0xB34D, 0x86C9, 0xB34E, 0x8853, 0xB34F, 0x889E, - 0xB350, 0x8888, 0xB351, 0x88AB, 0xB352, 0x8892, 0xB353, 0x8896, - 0xB354, 0x888D, 0xB355, 0x888B, 0xB356, 0x8993, 0xB357, 0x898F, - 0xB358, 0x8A2A, 0xB359, 0x8A1D, 0xB35A, 0x8A23, 0xB35B, 0x8A25, - 0xB35C, 0x8A31, 0xB35D, 0x8A2D, 0xB35E, 0x8A1F, 0xB35F, 0x8A1B, - 0xB360, 0x8A22, 0xB361, 0x8C49, 0xB362, 0x8C5A, 0xB363, 0x8CA9, - 0xB364, 0x8CAC, 0xB365, 0x8CAB, 0xB366, 0x8CA8, 0xB367, 0x8CAA, - 0xB368, 0x8CA7, 0xB369, 0x8D67, 0xB36A, 0x8D66, 0xB36B, 0x8DBE, - 0xB36C, 0x8DBA, 0xB36D, 0x8EDB, 0xB36E, 0x8EDF, 0xB36F, 0x9019, - 0xB370, 0x900D, 0xB371, 0x901A, 0xB372, 0x9017, 0xB373, 0x9023, - 0xB374, 0x901F, 0xB375, 0x901D, 0xB376, 0x9010, 0xB377, 0x9015, - 0xB378, 0x901E, 0xB379, 0x9020, 0xB37A, 0x900F, 0xB37B, 0x9022, - 0xB37C, 0x9016, 0xB37D, 0x901B, 0xB37E, 0x9014, 0xB3A1, 0x90E8, - 0xB3A2, 0x90ED, 0xB3A3, 0x90FD, 0xB3A4, 0x9157, 0xB3A5, 0x91CE, - 0xB3A6, 0x91F5, 0xB3A7, 0x91E6, 0xB3A8, 0x91E3, 0xB3A9, 0x91E7, - 0xB3AA, 0x91ED, 0xB3AB, 0x91E9, 0xB3AC, 0x9589, 0xB3AD, 0x966A, - 0xB3AE, 0x9675, 0xB3AF, 0x9673, 0xB3B0, 0x9678, 0xB3B1, 0x9670, - 0xB3B2, 0x9674, 0xB3B3, 0x9676, 0xB3B4, 0x9677, 0xB3B5, 0x966C, - 0xB3B6, 0x96C0, 0xB3B7, 0x96EA, 0xB3B8, 0x96E9, 0xB3B9, 0x7AE0, - 0xB3BA, 0x7ADF, 0xB3BB, 0x9802, 0xB3BC, 0x9803, 0xB3BD, 0x9B5A, - 0xB3BE, 0x9CE5, 0xB3BF, 0x9E75, 0xB3C0, 0x9E7F, 0xB3C1, 0x9EA5, - 0xB3C2, 0x9EBB, 0xB3C3, 0x50A2, 0xB3C4, 0x508D, 0xB3C5, 0x5085, - 0xB3C6, 0x5099, 0xB3C7, 0x5091, 0xB3C8, 0x5080, 0xB3C9, 0x5096, - 0xB3CA, 0x5098, 0xB3CB, 0x509A, 0xB3CC, 0x6700, 0xB3CD, 0x51F1, - 0xB3CE, 0x5272, 0xB3CF, 0x5274, 0xB3D0, 0x5275, 0xB3D1, 0x5269, - 0xB3D2, 0x52DE, 0xB3D3, 0x52DD, 0xB3D4, 0x52DB, 0xB3D5, 0x535A, - 0xB3D6, 0x53A5, 0xB3D7, 0x557B, 0xB3D8, 0x5580, 0xB3D9, 0x55A7, - 0xB3DA, 0x557C, 0xB3DB, 0x558A, 0xB3DC, 0x559D, 0xB3DD, 0x5598, - 0xB3DE, 0x5582, 0xB3DF, 0x559C, 0xB3E0, 0x55AA, 0xB3E1, 0x5594, - 0xB3E2, 0x5587, 0xB3E3, 0x558B, 0xB3E4, 0x5583, 0xB3E5, 0x55B3, - 0xB3E6, 0x55AE, 0xB3E7, 0x559F, 0xB3E8, 0x553E, 0xB3E9, 0x55B2, - 0xB3EA, 0x559A, 0xB3EB, 0x55BB, 0xB3EC, 0x55AC, 0xB3ED, 0x55B1, - 0xB3EE, 0x557E, 0xB3EF, 0x5589, 0xB3F0, 0x55AB, 0xB3F1, 0x5599, - 0xB3F2, 0x570D, 0xB3F3, 0x582F, 0xB3F4, 0x582A, 0xB3F5, 0x5834, - 0xB3F6, 0x5824, 0xB3F7, 0x5830, 0xB3F8, 0x5831, 0xB3F9, 0x5821, - 0xB3FA, 0x581D, 0xB3FB, 0x5820, 0xB3FC, 0x58F9, 0xB3FD, 0x58FA, - 0xB3FE, 0x5960, 0xB440, 0x5A77, 0xB441, 0x5A9A, 0xB442, 0x5A7F, - 0xB443, 0x5A92, 0xB444, 0x5A9B, 0xB445, 0x5AA7, 0xB446, 0x5B73, - 0xB447, 0x5B71, 0xB448, 0x5BD2, 0xB449, 0x5BCC, 0xB44A, 0x5BD3, - 0xB44B, 0x5BD0, 0xB44C, 0x5C0A, 0xB44D, 0x5C0B, 0xB44E, 0x5C31, - 0xB44F, 0x5D4C, 0xB450, 0x5D50, 0xB451, 0x5D34, 0xB452, 0x5D47, - 0xB453, 0x5DFD, 0xB454, 0x5E45, 0xB455, 0x5E3D, 0xB456, 0x5E40, - 0xB457, 0x5E43, 0xB458, 0x5E7E, 0xB459, 0x5ECA, 0xB45A, 0x5EC1, - 0xB45B, 0x5EC2, 0xB45C, 0x5EC4, 0xB45D, 0x5F3C, 0xB45E, 0x5F6D, - 0xB45F, 0x5FA9, 0xB460, 0x5FAA, 0xB461, 0x5FA8, 0xB462, 0x60D1, - 0xB463, 0x60E1, 0xB464, 0x60B2, 0xB465, 0x60B6, 0xB466, 0x60E0, - 0xB467, 0x611C, 0xB468, 0x6123, 0xB469, 0x60FA, 0xB46A, 0x6115, - 0xB46B, 0x60F0, 0xB46C, 0x60FB, 0xB46D, 0x60F4, 0xB46E, 0x6168, - 0xB46F, 0x60F1, 0xB470, 0x610E, 0xB471, 0x60F6, 0xB472, 0x6109, - 0xB473, 0x6100, 0xB474, 0x6112, 0xB475, 0x621F, 0xB476, 0x6249, - 0xB477, 0x63A3, 0xB478, 0x638C, 0xB479, 0x63CF, 0xB47A, 0x63C0, - 0xB47B, 0x63E9, 0xB47C, 0x63C9, 0xB47D, 0x63C6, 0xB47E, 0x63CD, - 0xB4A1, 0x63D2, 0xB4A2, 0x63E3, 0xB4A3, 0x63D0, 0xB4A4, 0x63E1, - 0xB4A5, 0x63D6, 0xB4A6, 0x63ED, 0xB4A7, 0x63EE, 0xB4A8, 0x6376, - 0xB4A9, 0x63F4, 0xB4AA, 0x63EA, 0xB4AB, 0x63DB, 0xB4AC, 0x6452, - 0xB4AD, 0x63DA, 0xB4AE, 0x63F9, 0xB4AF, 0x655E, 0xB4B0, 0x6566, - 0xB4B1, 0x6562, 0xB4B2, 0x6563, 0xB4B3, 0x6591, 0xB4B4, 0x6590, - 0xB4B5, 0x65AF, 0xB4B6, 0x666E, 0xB4B7, 0x6670, 0xB4B8, 0x6674, - 0xB4B9, 0x6676, 0xB4BA, 0x666F, 0xB4BB, 0x6691, 0xB4BC, 0x667A, - 0xB4BD, 0x667E, 0xB4BE, 0x6677, 0xB4BF, 0x66FE, 0xB4C0, 0x66FF, - 0xB4C1, 0x671F, 0xB4C2, 0x671D, 0xB4C3, 0x68FA, 0xB4C4, 0x68D5, - 0xB4C5, 0x68E0, 0xB4C6, 0x68D8, 0xB4C7, 0x68D7, 0xB4C8, 0x6905, - 0xB4C9, 0x68DF, 0xB4CA, 0x68F5, 0xB4CB, 0x68EE, 0xB4CC, 0x68E7, - 0xB4CD, 0x68F9, 0xB4CE, 0x68D2, 0xB4CF, 0x68F2, 0xB4D0, 0x68E3, - 0xB4D1, 0x68CB, 0xB4D2, 0x68CD, 0xB4D3, 0x690D, 0xB4D4, 0x6912, - 0xB4D5, 0x690E, 0xB4D6, 0x68C9, 0xB4D7, 0x68DA, 0xB4D8, 0x696E, - 0xB4D9, 0x68FB, 0xB4DA, 0x6B3E, 0xB4DB, 0x6B3A, 0xB4DC, 0x6B3D, - 0xB4DD, 0x6B98, 0xB4DE, 0x6B96, 0xB4DF, 0x6BBC, 0xB4E0, 0x6BEF, - 0xB4E1, 0x6C2E, 0xB4E2, 0x6C2F, 0xB4E3, 0x6C2C, 0xB4E4, 0x6E2F, - 0xB4E5, 0x6E38, 0xB4E6, 0x6E54, 0xB4E7, 0x6E21, 0xB4E8, 0x6E32, - 0xB4E9, 0x6E67, 0xB4EA, 0x6E4A, 0xB4EB, 0x6E20, 0xB4EC, 0x6E25, - 0xB4ED, 0x6E23, 0xB4EE, 0x6E1B, 0xB4EF, 0x6E5B, 0xB4F0, 0x6E58, - 0xB4F1, 0x6E24, 0xB4F2, 0x6E56, 0xB4F3, 0x6E6E, 0xB4F4, 0x6E2D, - 0xB4F5, 0x6E26, 0xB4F6, 0x6E6F, 0xB4F7, 0x6E34, 0xB4F8, 0x6E4D, - 0xB4F9, 0x6E3A, 0xB4FA, 0x6E2C, 0xB4FB, 0x6E43, 0xB4FC, 0x6E1D, - 0xB4FD, 0x6E3E, 0xB4FE, 0x6ECB, 0xB540, 0x6E89, 0xB541, 0x6E19, - 0xB542, 0x6E4E, 0xB543, 0x6E63, 0xB544, 0x6E44, 0xB545, 0x6E72, - 0xB546, 0x6E69, 0xB547, 0x6E5F, 0xB548, 0x7119, 0xB549, 0x711A, - 0xB54A, 0x7126, 0xB54B, 0x7130, 0xB54C, 0x7121, 0xB54D, 0x7136, - 0xB54E, 0x716E, 0xB54F, 0x711C, 0xB550, 0x724C, 0xB551, 0x7284, - 0xB552, 0x7280, 0xB553, 0x7336, 0xB554, 0x7325, 0xB555, 0x7334, - 0xB556, 0x7329, 0xB557, 0x743A, 0xB558, 0x742A, 0xB559, 0x7433, - 0xB55A, 0x7422, 0xB55B, 0x7425, 0xB55C, 0x7435, 0xB55D, 0x7436, - 0xB55E, 0x7434, 0xB55F, 0x742F, 0xB560, 0x741B, 0xB561, 0x7426, - 0xB562, 0x7428, 0xB563, 0x7525, 0xB564, 0x7526, 0xB565, 0x756B, - 0xB566, 0x756A, 0xB567, 0x75E2, 0xB568, 0x75DB, 0xB569, 0x75E3, - 0xB56A, 0x75D9, 0xB56B, 0x75D8, 0xB56C, 0x75DE, 0xB56D, 0x75E0, - 0xB56E, 0x767B, 0xB56F, 0x767C, 0xB570, 0x7696, 0xB571, 0x7693, - 0xB572, 0x76B4, 0xB573, 0x76DC, 0xB574, 0x774F, 0xB575, 0x77ED, - 0xB576, 0x785D, 0xB577, 0x786C, 0xB578, 0x786F, 0xB579, 0x7A0D, - 0xB57A, 0x7A08, 0xB57B, 0x7A0B, 0xB57C, 0x7A05, 0xB57D, 0x7A00, - 0xB57E, 0x7A98, 0xB5A1, 0x7A97, 0xB5A2, 0x7A96, 0xB5A3, 0x7AE5, - 0xB5A4, 0x7AE3, 0xB5A5, 0x7B49, 0xB5A6, 0x7B56, 0xB5A7, 0x7B46, - 0xB5A8, 0x7B50, 0xB5A9, 0x7B52, 0xB5AA, 0x7B54, 0xB5AB, 0x7B4D, - 0xB5AC, 0x7B4B, 0xB5AD, 0x7B4F, 0xB5AE, 0x7B51, 0xB5AF, 0x7C9F, - 0xB5B0, 0x7CA5, 0xB5B1, 0x7D5E, 0xB5B2, 0x7D50, 0xB5B3, 0x7D68, - 0xB5B4, 0x7D55, 0xB5B5, 0x7D2B, 0xB5B6, 0x7D6E, 0xB5B7, 0x7D72, - 0xB5B8, 0x7D61, 0xB5B9, 0x7D66, 0xB5BA, 0x7D62, 0xB5BB, 0x7D70, - 0xB5BC, 0x7D73, 0xB5BD, 0x5584, 0xB5BE, 0x7FD4, 0xB5BF, 0x7FD5, - 0xB5C0, 0x800B, 0xB5C1, 0x8052, 0xB5C2, 0x8085, 0xB5C3, 0x8155, - 0xB5C4, 0x8154, 0xB5C5, 0x814B, 0xB5C6, 0x8151, 0xB5C7, 0x814E, - 0xB5C8, 0x8139, 0xB5C9, 0x8146, 0xB5CA, 0x813E, 0xB5CB, 0x814C, - 0xB5CC, 0x8153, 0xB5CD, 0x8174, 0xB5CE, 0x8212, 0xB5CF, 0x821C, - 0xB5D0, 0x83E9, 0xB5D1, 0x8403, 0xB5D2, 0x83F8, 0xB5D3, 0x840D, - 0xB5D4, 0x83E0, 0xB5D5, 0x83C5, 0xB5D6, 0x840B, 0xB5D7, 0x83C1, - 0xB5D8, 0x83EF, 0xB5D9, 0x83F1, 0xB5DA, 0x83F4, 0xB5DB, 0x8457, - 0xB5DC, 0x840A, 0xB5DD, 0x83F0, 0xB5DE, 0x840C, 0xB5DF, 0x83CC, - 0xB5E0, 0x83FD, 0xB5E1, 0x83F2, 0xB5E2, 0x83CA, 0xB5E3, 0x8438, - 0xB5E4, 0x840E, 0xB5E5, 0x8404, 0xB5E6, 0x83DC, 0xB5E7, 0x8407, - 0xB5E8, 0x83D4, 0xB5E9, 0x83DF, 0xB5EA, 0x865B, 0xB5EB, 0x86DF, - 0xB5EC, 0x86D9, 0xB5ED, 0x86ED, 0xB5EE, 0x86D4, 0xB5EF, 0x86DB, - 0xB5F0, 0x86E4, 0xB5F1, 0x86D0, 0xB5F2, 0x86DE, 0xB5F3, 0x8857, - 0xB5F4, 0x88C1, 0xB5F5, 0x88C2, 0xB5F6, 0x88B1, 0xB5F7, 0x8983, - 0xB5F8, 0x8996, 0xB5F9, 0x8A3B, 0xB5FA, 0x8A60, 0xB5FB, 0x8A55, - 0xB5FC, 0x8A5E, 0xB5FD, 0x8A3C, 0xB5FE, 0x8A41, 0xB640, 0x8A54, - 0xB641, 0x8A5B, 0xB642, 0x8A50, 0xB643, 0x8A46, 0xB644, 0x8A34, - 0xB645, 0x8A3A, 0xB646, 0x8A36, 0xB647, 0x8A56, 0xB648, 0x8C61, - 0xB649, 0x8C82, 0xB64A, 0x8CAF, 0xB64B, 0x8CBC, 0xB64C, 0x8CB3, - 0xB64D, 0x8CBD, 0xB64E, 0x8CC1, 0xB64F, 0x8CBB, 0xB650, 0x8CC0, - 0xB651, 0x8CB4, 0xB652, 0x8CB7, 0xB653, 0x8CB6, 0xB654, 0x8CBF, - 0xB655, 0x8CB8, 0xB656, 0x8D8A, 0xB657, 0x8D85, 0xB658, 0x8D81, - 0xB659, 0x8DCE, 0xB65A, 0x8DDD, 0xB65B, 0x8DCB, 0xB65C, 0x8DDA, - 0xB65D, 0x8DD1, 0xB65E, 0x8DCC, 0xB65F, 0x8DDB, 0xB660, 0x8DC6, - 0xB661, 0x8EFB, 0xB662, 0x8EF8, 0xB663, 0x8EFC, 0xB664, 0x8F9C, - 0xB665, 0x902E, 0xB666, 0x9035, 0xB667, 0x9031, 0xB668, 0x9038, - 0xB669, 0x9032, 0xB66A, 0x9036, 0xB66B, 0x9102, 0xB66C, 0x90F5, - 0xB66D, 0x9109, 0xB66E, 0x90FE, 0xB66F, 0x9163, 0xB670, 0x9165, - 0xB671, 0x91CF, 0xB672, 0x9214, 0xB673, 0x9215, 0xB674, 0x9223, - 0xB675, 0x9209, 0xB676, 0x921E, 0xB677, 0x920D, 0xB678, 0x9210, - 0xB679, 0x9207, 0xB67A, 0x9211, 0xB67B, 0x9594, 0xB67C, 0x958F, - 0xB67D, 0x958B, 0xB67E, 0x9591, 0xB6A1, 0x9593, 0xB6A2, 0x9592, - 0xB6A3, 0x958E, 0xB6A4, 0x968A, 0xB6A5, 0x968E, 0xB6A6, 0x968B, - 0xB6A7, 0x967D, 0xB6A8, 0x9685, 0xB6A9, 0x9686, 0xB6AA, 0x968D, - 0xB6AB, 0x9672, 0xB6AC, 0x9684, 0xB6AD, 0x96C1, 0xB6AE, 0x96C5, - 0xB6AF, 0x96C4, 0xB6B0, 0x96C6, 0xB6B1, 0x96C7, 0xB6B2, 0x96EF, - 0xB6B3, 0x96F2, 0xB6B4, 0x97CC, 0xB6B5, 0x9805, 0xB6B6, 0x9806, - 0xB6B7, 0x9808, 0xB6B8, 0x98E7, 0xB6B9, 0x98EA, 0xB6BA, 0x98EF, - 0xB6BB, 0x98E9, 0xB6BC, 0x98F2, 0xB6BD, 0x98ED, 0xB6BE, 0x99AE, - 0xB6BF, 0x99AD, 0xB6C0, 0x9EC3, 0xB6C1, 0x9ECD, 0xB6C2, 0x9ED1, - 0xB6C3, 0x4E82, 0xB6C4, 0x50AD, 0xB6C5, 0x50B5, 0xB6C6, 0x50B2, - 0xB6C7, 0x50B3, 0xB6C8, 0x50C5, 0xB6C9, 0x50BE, 0xB6CA, 0x50AC, - 0xB6CB, 0x50B7, 0xB6CC, 0x50BB, 0xB6CD, 0x50AF, 0xB6CE, 0x50C7, - 0xB6CF, 0x527F, 0xB6D0, 0x5277, 0xB6D1, 0x527D, 0xB6D2, 0x52DF, - 0xB6D3, 0x52E6, 0xB6D4, 0x52E4, 0xB6D5, 0x52E2, 0xB6D6, 0x52E3, - 0xB6D7, 0x532F, 0xB6D8, 0x55DF, 0xB6D9, 0x55E8, 0xB6DA, 0x55D3, - 0xB6DB, 0x55E6, 0xB6DC, 0x55CE, 0xB6DD, 0x55DC, 0xB6DE, 0x55C7, - 0xB6DF, 0x55D1, 0xB6E0, 0x55E3, 0xB6E1, 0x55E4, 0xB6E2, 0x55EF, - 0xB6E3, 0x55DA, 0xB6E4, 0x55E1, 0xB6E5, 0x55C5, 0xB6E6, 0x55C6, - 0xB6E7, 0x55E5, 0xB6E8, 0x55C9, 0xB6E9, 0x5712, 0xB6EA, 0x5713, - 0xB6EB, 0x585E, 0xB6EC, 0x5851, 0xB6ED, 0x5858, 0xB6EE, 0x5857, - 0xB6EF, 0x585A, 0xB6F0, 0x5854, 0xB6F1, 0x586B, 0xB6F2, 0x584C, - 0xB6F3, 0x586D, 0xB6F4, 0x584A, 0xB6F5, 0x5862, 0xB6F6, 0x5852, - 0xB6F7, 0x584B, 0xB6F8, 0x5967, 0xB6F9, 0x5AC1, 0xB6FA, 0x5AC9, - 0xB6FB, 0x5ACC, 0xB6FC, 0x5ABE, 0xB6FD, 0x5ABD, 0xB6FE, 0x5ABC, - 0xB740, 0x5AB3, 0xB741, 0x5AC2, 0xB742, 0x5AB2, 0xB743, 0x5D69, - 0xB744, 0x5D6F, 0xB745, 0x5E4C, 0xB746, 0x5E79, 0xB747, 0x5EC9, - 0xB748, 0x5EC8, 0xB749, 0x5F12, 0xB74A, 0x5F59, 0xB74B, 0x5FAC, - 0xB74C, 0x5FAE, 0xB74D, 0x611A, 0xB74E, 0x610F, 0xB74F, 0x6148, - 0xB750, 0x611F, 0xB751, 0x60F3, 0xB752, 0x611B, 0xB753, 0x60F9, - 0xB754, 0x6101, 0xB755, 0x6108, 0xB756, 0x614E, 0xB757, 0x614C, - 0xB758, 0x6144, 0xB759, 0x614D, 0xB75A, 0x613E, 0xB75B, 0x6134, - 0xB75C, 0x6127, 0xB75D, 0x610D, 0xB75E, 0x6106, 0xB75F, 0x6137, - 0xB760, 0x6221, 0xB761, 0x6222, 0xB762, 0x6413, 0xB763, 0x643E, - 0xB764, 0x641E, 0xB765, 0x642A, 0xB766, 0x642D, 0xB767, 0x643D, - 0xB768, 0x642C, 0xB769, 0x640F, 0xB76A, 0x641C, 0xB76B, 0x6414, - 0xB76C, 0x640D, 0xB76D, 0x6436, 0xB76E, 0x6416, 0xB76F, 0x6417, - 0xB770, 0x6406, 0xB771, 0x656C, 0xB772, 0x659F, 0xB773, 0x65B0, - 0xB774, 0x6697, 0xB775, 0x6689, 0xB776, 0x6687, 0xB777, 0x6688, - 0xB778, 0x6696, 0xB779, 0x6684, 0xB77A, 0x6698, 0xB77B, 0x668D, - 0xB77C, 0x6703, 0xB77D, 0x6994, 0xB77E, 0x696D, 0xB7A1, 0x695A, - 0xB7A2, 0x6977, 0xB7A3, 0x6960, 0xB7A4, 0x6954, 0xB7A5, 0x6975, - 0xB7A6, 0x6930, 0xB7A7, 0x6982, 0xB7A8, 0x694A, 0xB7A9, 0x6968, - 0xB7AA, 0x696B, 0xB7AB, 0x695E, 0xB7AC, 0x6953, 0xB7AD, 0x6979, - 0xB7AE, 0x6986, 0xB7AF, 0x695D, 0xB7B0, 0x6963, 0xB7B1, 0x695B, - 0xB7B2, 0x6B47, 0xB7B3, 0x6B72, 0xB7B4, 0x6BC0, 0xB7B5, 0x6BBF, - 0xB7B6, 0x6BD3, 0xB7B7, 0x6BFD, 0xB7B8, 0x6EA2, 0xB7B9, 0x6EAF, - 0xB7BA, 0x6ED3, 0xB7BB, 0x6EB6, 0xB7BC, 0x6EC2, 0xB7BD, 0x6E90, - 0xB7BE, 0x6E9D, 0xB7BF, 0x6EC7, 0xB7C0, 0x6EC5, 0xB7C1, 0x6EA5, - 0xB7C2, 0x6E98, 0xB7C3, 0x6EBC, 0xB7C4, 0x6EBA, 0xB7C5, 0x6EAB, - 0xB7C6, 0x6ED1, 0xB7C7, 0x6E96, 0xB7C8, 0x6E9C, 0xB7C9, 0x6EC4, - 0xB7CA, 0x6ED4, 0xB7CB, 0x6EAA, 0xB7CC, 0x6EA7, 0xB7CD, 0x6EB4, - 0xB7CE, 0x714E, 0xB7CF, 0x7159, 0xB7D0, 0x7169, 0xB7D1, 0x7164, - 0xB7D2, 0x7149, 0xB7D3, 0x7167, 0xB7D4, 0x715C, 0xB7D5, 0x716C, - 0xB7D6, 0x7166, 0xB7D7, 0x714C, 0xB7D8, 0x7165, 0xB7D9, 0x715E, - 0xB7DA, 0x7146, 0xB7DB, 0x7168, 0xB7DC, 0x7156, 0xB7DD, 0x723A, - 0xB7DE, 0x7252, 0xB7DF, 0x7337, 0xB7E0, 0x7345, 0xB7E1, 0x733F, - 0xB7E2, 0x733E, 0xB7E3, 0x746F, 0xB7E4, 0x745A, 0xB7E5, 0x7455, - 0xB7E6, 0x745F, 0xB7E7, 0x745E, 0xB7E8, 0x7441, 0xB7E9, 0x743F, - 0xB7EA, 0x7459, 0xB7EB, 0x745B, 0xB7EC, 0x745C, 0xB7ED, 0x7576, - 0xB7EE, 0x7578, 0xB7EF, 0x7600, 0xB7F0, 0x75F0, 0xB7F1, 0x7601, - 0xB7F2, 0x75F2, 0xB7F3, 0x75F1, 0xB7F4, 0x75FA, 0xB7F5, 0x75FF, - 0xB7F6, 0x75F4, 0xB7F7, 0x75F3, 0xB7F8, 0x76DE, 0xB7F9, 0x76DF, - 0xB7FA, 0x775B, 0xB7FB, 0x776B, 0xB7FC, 0x7766, 0xB7FD, 0x775E, - 0xB7FE, 0x7763, 0xB840, 0x7779, 0xB841, 0x776A, 0xB842, 0x776C, - 0xB843, 0x775C, 0xB844, 0x7765, 0xB845, 0x7768, 0xB846, 0x7762, - 0xB847, 0x77EE, 0xB848, 0x788E, 0xB849, 0x78B0, 0xB84A, 0x7897, - 0xB84B, 0x7898, 0xB84C, 0x788C, 0xB84D, 0x7889, 0xB84E, 0x787C, - 0xB84F, 0x7891, 0xB850, 0x7893, 0xB851, 0x787F, 0xB852, 0x797A, - 0xB853, 0x797F, 0xB854, 0x7981, 0xB855, 0x842C, 0xB856, 0x79BD, - 0xB857, 0x7A1C, 0xB858, 0x7A1A, 0xB859, 0x7A20, 0xB85A, 0x7A14, - 0xB85B, 0x7A1F, 0xB85C, 0x7A1E, 0xB85D, 0x7A9F, 0xB85E, 0x7AA0, - 0xB85F, 0x7B77, 0xB860, 0x7BC0, 0xB861, 0x7B60, 0xB862, 0x7B6E, - 0xB863, 0x7B67, 0xB864, 0x7CB1, 0xB865, 0x7CB3, 0xB866, 0x7CB5, - 0xB867, 0x7D93, 0xB868, 0x7D79, 0xB869, 0x7D91, 0xB86A, 0x7D81, - 0xB86B, 0x7D8F, 0xB86C, 0x7D5B, 0xB86D, 0x7F6E, 0xB86E, 0x7F69, - 0xB86F, 0x7F6A, 0xB870, 0x7F72, 0xB871, 0x7FA9, 0xB872, 0x7FA8, - 0xB873, 0x7FA4, 0xB874, 0x8056, 0xB875, 0x8058, 0xB876, 0x8086, - 0xB877, 0x8084, 0xB878, 0x8171, 0xB879, 0x8170, 0xB87A, 0x8178, - 0xB87B, 0x8165, 0xB87C, 0x816E, 0xB87D, 0x8173, 0xB87E, 0x816B, - 0xB8A1, 0x8179, 0xB8A2, 0x817A, 0xB8A3, 0x8166, 0xB8A4, 0x8205, - 0xB8A5, 0x8247, 0xB8A6, 0x8482, 0xB8A7, 0x8477, 0xB8A8, 0x843D, - 0xB8A9, 0x8431, 0xB8AA, 0x8475, 0xB8AB, 0x8466, 0xB8AC, 0x846B, - 0xB8AD, 0x8449, 0xB8AE, 0x846C, 0xB8AF, 0x845B, 0xB8B0, 0x843C, - 0xB8B1, 0x8435, 0xB8B2, 0x8461, 0xB8B3, 0x8463, 0xB8B4, 0x8469, - 0xB8B5, 0x846D, 0xB8B6, 0x8446, 0xB8B7, 0x865E, 0xB8B8, 0x865C, - 0xB8B9, 0x865F, 0xB8BA, 0x86F9, 0xB8BB, 0x8713, 0xB8BC, 0x8708, - 0xB8BD, 0x8707, 0xB8BE, 0x8700, 0xB8BF, 0x86FE, 0xB8C0, 0x86FB, - 0xB8C1, 0x8702, 0xB8C2, 0x8703, 0xB8C3, 0x8706, 0xB8C4, 0x870A, - 0xB8C5, 0x8859, 0xB8C6, 0x88DF, 0xB8C7, 0x88D4, 0xB8C8, 0x88D9, - 0xB8C9, 0x88DC, 0xB8CA, 0x88D8, 0xB8CB, 0x88DD, 0xB8CC, 0x88E1, - 0xB8CD, 0x88CA, 0xB8CE, 0x88D5, 0xB8CF, 0x88D2, 0xB8D0, 0x899C, - 0xB8D1, 0x89E3, 0xB8D2, 0x8A6B, 0xB8D3, 0x8A72, 0xB8D4, 0x8A73, - 0xB8D5, 0x8A66, 0xB8D6, 0x8A69, 0xB8D7, 0x8A70, 0xB8D8, 0x8A87, - 0xB8D9, 0x8A7C, 0xB8DA, 0x8A63, 0xB8DB, 0x8AA0, 0xB8DC, 0x8A71, - 0xB8DD, 0x8A85, 0xB8DE, 0x8A6D, 0xB8DF, 0x8A62, 0xB8E0, 0x8A6E, - 0xB8E1, 0x8A6C, 0xB8E2, 0x8A79, 0xB8E3, 0x8A7B, 0xB8E4, 0x8A3E, - 0xB8E5, 0x8A68, 0xB8E6, 0x8C62, 0xB8E7, 0x8C8A, 0xB8E8, 0x8C89, - 0xB8E9, 0x8CCA, 0xB8EA, 0x8CC7, 0xB8EB, 0x8CC8, 0xB8EC, 0x8CC4, - 0xB8ED, 0x8CB2, 0xB8EE, 0x8CC3, 0xB8EF, 0x8CC2, 0xB8F0, 0x8CC5, - 0xB8F1, 0x8DE1, 0xB8F2, 0x8DDF, 0xB8F3, 0x8DE8, 0xB8F4, 0x8DEF, - 0xB8F5, 0x8DF3, 0xB8F6, 0x8DFA, 0xB8F7, 0x8DEA, 0xB8F8, 0x8DE4, - 0xB8F9, 0x8DE6, 0xB8FA, 0x8EB2, 0xB8FB, 0x8F03, 0xB8FC, 0x8F09, - 0xB8FD, 0x8EFE, 0xB8FE, 0x8F0A, 0xB940, 0x8F9F, 0xB941, 0x8FB2, - 0xB942, 0x904B, 0xB943, 0x904A, 0xB944, 0x9053, 0xB945, 0x9042, - 0xB946, 0x9054, 0xB947, 0x903C, 0xB948, 0x9055, 0xB949, 0x9050, - 0xB94A, 0x9047, 0xB94B, 0x904F, 0xB94C, 0x904E, 0xB94D, 0x904D, - 0xB94E, 0x9051, 0xB94F, 0x903E, 0xB950, 0x9041, 0xB951, 0x9112, - 0xB952, 0x9117, 0xB953, 0x916C, 0xB954, 0x916A, 0xB955, 0x9169, - 0xB956, 0x91C9, 0xB957, 0x9237, 0xB958, 0x9257, 0xB959, 0x9238, - 0xB95A, 0x923D, 0xB95B, 0x9240, 0xB95C, 0x923E, 0xB95D, 0x925B, - 0xB95E, 0x924B, 0xB95F, 0x9264, 0xB960, 0x9251, 0xB961, 0x9234, - 0xB962, 0x9249, 0xB963, 0x924D, 0xB964, 0x9245, 0xB965, 0x9239, - 0xB966, 0x923F, 0xB967, 0x925A, 0xB968, 0x9598, 0xB969, 0x9698, - 0xB96A, 0x9694, 0xB96B, 0x9695, 0xB96C, 0x96CD, 0xB96D, 0x96CB, - 0xB96E, 0x96C9, 0xB96F, 0x96CA, 0xB970, 0x96F7, 0xB971, 0x96FB, - 0xB972, 0x96F9, 0xB973, 0x96F6, 0xB974, 0x9756, 0xB975, 0x9774, - 0xB976, 0x9776, 0xB977, 0x9810, 0xB978, 0x9811, 0xB979, 0x9813, - 0xB97A, 0x980A, 0xB97B, 0x9812, 0xB97C, 0x980C, 0xB97D, 0x98FC, - 0xB97E, 0x98F4, 0xB9A1, 0x98FD, 0xB9A2, 0x98FE, 0xB9A3, 0x99B3, - 0xB9A4, 0x99B1, 0xB9A5, 0x99B4, 0xB9A6, 0x9AE1, 0xB9A7, 0x9CE9, - 0xB9A8, 0x9E82, 0xB9A9, 0x9F0E, 0xB9AA, 0x9F13, 0xB9AB, 0x9F20, - 0xB9AC, 0x50E7, 0xB9AD, 0x50EE, 0xB9AE, 0x50E5, 0xB9AF, 0x50D6, - 0xB9B0, 0x50ED, 0xB9B1, 0x50DA, 0xB9B2, 0x50D5, 0xB9B3, 0x50CF, - 0xB9B4, 0x50D1, 0xB9B5, 0x50F1, 0xB9B6, 0x50CE, 0xB9B7, 0x50E9, - 0xB9B8, 0x5162, 0xB9B9, 0x51F3, 0xB9BA, 0x5283, 0xB9BB, 0x5282, - 0xB9BC, 0x5331, 0xB9BD, 0x53AD, 0xB9BE, 0x55FE, 0xB9BF, 0x5600, - 0xB9C0, 0x561B, 0xB9C1, 0x5617, 0xB9C2, 0x55FD, 0xB9C3, 0x5614, - 0xB9C4, 0x5606, 0xB9C5, 0x5609, 0xB9C6, 0x560D, 0xB9C7, 0x560E, - 0xB9C8, 0x55F7, 0xB9C9, 0x5616, 0xB9CA, 0x561F, 0xB9CB, 0x5608, - 0xB9CC, 0x5610, 0xB9CD, 0x55F6, 0xB9CE, 0x5718, 0xB9CF, 0x5716, - 0xB9D0, 0x5875, 0xB9D1, 0x587E, 0xB9D2, 0x5883, 0xB9D3, 0x5893, - 0xB9D4, 0x588A, 0xB9D5, 0x5879, 0xB9D6, 0x5885, 0xB9D7, 0x587D, - 0xB9D8, 0x58FD, 0xB9D9, 0x5925, 0xB9DA, 0x5922, 0xB9DB, 0x5924, - 0xB9DC, 0x596A, 0xB9DD, 0x5969, 0xB9DE, 0x5AE1, 0xB9DF, 0x5AE6, - 0xB9E0, 0x5AE9, 0xB9E1, 0x5AD7, 0xB9E2, 0x5AD6, 0xB9E3, 0x5AD8, - 0xB9E4, 0x5AE3, 0xB9E5, 0x5B75, 0xB9E6, 0x5BDE, 0xB9E7, 0x5BE7, - 0xB9E8, 0x5BE1, 0xB9E9, 0x5BE5, 0xB9EA, 0x5BE6, 0xB9EB, 0x5BE8, - 0xB9EC, 0x5BE2, 0xB9ED, 0x5BE4, 0xB9EE, 0x5BDF, 0xB9EF, 0x5C0D, - 0xB9F0, 0x5C62, 0xB9F1, 0x5D84, 0xB9F2, 0x5D87, 0xB9F3, 0x5E5B, - 0xB9F4, 0x5E63, 0xB9F5, 0x5E55, 0xB9F6, 0x5E57, 0xB9F7, 0x5E54, - 0xB9F8, 0x5ED3, 0xB9F9, 0x5ED6, 0xB9FA, 0x5F0A, 0xB9FB, 0x5F46, - 0xB9FC, 0x5F70, 0xB9FD, 0x5FB9, 0xB9FE, 0x6147, 0xBA40, 0x613F, - 0xBA41, 0x614B, 0xBA42, 0x6177, 0xBA43, 0x6162, 0xBA44, 0x6163, - 0xBA45, 0x615F, 0xBA46, 0x615A, 0xBA47, 0x6158, 0xBA48, 0x6175, - 0xBA49, 0x622A, 0xBA4A, 0x6487, 0xBA4B, 0x6458, 0xBA4C, 0x6454, - 0xBA4D, 0x64A4, 0xBA4E, 0x6478, 0xBA4F, 0x645F, 0xBA50, 0x647A, - 0xBA51, 0x6451, 0xBA52, 0x6467, 0xBA53, 0x6434, 0xBA54, 0x646D, - 0xBA55, 0x647B, 0xBA56, 0x6572, 0xBA57, 0x65A1, 0xBA58, 0x65D7, - 0xBA59, 0x65D6, 0xBA5A, 0x66A2, 0xBA5B, 0x66A8, 0xBA5C, 0x669D, - 0xBA5D, 0x699C, 0xBA5E, 0x69A8, 0xBA5F, 0x6995, 0xBA60, 0x69C1, - 0xBA61, 0x69AE, 0xBA62, 0x69D3, 0xBA63, 0x69CB, 0xBA64, 0x699B, - 0xBA65, 0x69B7, 0xBA66, 0x69BB, 0xBA67, 0x69AB, 0xBA68, 0x69B4, - 0xBA69, 0x69D0, 0xBA6A, 0x69CD, 0xBA6B, 0x69AD, 0xBA6C, 0x69CC, - 0xBA6D, 0x69A6, 0xBA6E, 0x69C3, 0xBA6F, 0x69A3, 0xBA70, 0x6B49, - 0xBA71, 0x6B4C, 0xBA72, 0x6C33, 0xBA73, 0x6F33, 0xBA74, 0x6F14, - 0xBA75, 0x6EFE, 0xBA76, 0x6F13, 0xBA77, 0x6EF4, 0xBA78, 0x6F29, - 0xBA79, 0x6F3E, 0xBA7A, 0x6F20, 0xBA7B, 0x6F2C, 0xBA7C, 0x6F0F, - 0xBA7D, 0x6F02, 0xBA7E, 0x6F22, 0xBAA1, 0x6EFF, 0xBAA2, 0x6EEF, - 0xBAA3, 0x6F06, 0xBAA4, 0x6F31, 0xBAA5, 0x6F38, 0xBAA6, 0x6F32, - 0xBAA7, 0x6F23, 0xBAA8, 0x6F15, 0xBAA9, 0x6F2B, 0xBAAA, 0x6F2F, - 0xBAAB, 0x6F88, 0xBAAC, 0x6F2A, 0xBAAD, 0x6EEC, 0xBAAE, 0x6F01, - 0xBAAF, 0x6EF2, 0xBAB0, 0x6ECC, 0xBAB1, 0x6EF7, 0xBAB2, 0x7194, - 0xBAB3, 0x7199, 0xBAB4, 0x717D, 0xBAB5, 0x718A, 0xBAB6, 0x7184, - 0xBAB7, 0x7192, 0xBAB8, 0x723E, 0xBAB9, 0x7292, 0xBABA, 0x7296, - 0xBABB, 0x7344, 0xBABC, 0x7350, 0xBABD, 0x7464, 0xBABE, 0x7463, - 0xBABF, 0x746A, 0xBAC0, 0x7470, 0xBAC1, 0x746D, 0xBAC2, 0x7504, - 0xBAC3, 0x7591, 0xBAC4, 0x7627, 0xBAC5, 0x760D, 0xBAC6, 0x760B, - 0xBAC7, 0x7609, 0xBAC8, 0x7613, 0xBAC9, 0x76E1, 0xBACA, 0x76E3, - 0xBACB, 0x7784, 0xBACC, 0x777D, 0xBACD, 0x777F, 0xBACE, 0x7761, - 0xBACF, 0x78C1, 0xBAD0, 0x789F, 0xBAD1, 0x78A7, 0xBAD2, 0x78B3, - 0xBAD3, 0x78A9, 0xBAD4, 0x78A3, 0xBAD5, 0x798E, 0xBAD6, 0x798F, - 0xBAD7, 0x798D, 0xBAD8, 0x7A2E, 0xBAD9, 0x7A31, 0xBADA, 0x7AAA, - 0xBADB, 0x7AA9, 0xBADC, 0x7AED, 0xBADD, 0x7AEF, 0xBADE, 0x7BA1, - 0xBADF, 0x7B95, 0xBAE0, 0x7B8B, 0xBAE1, 0x7B75, 0xBAE2, 0x7B97, - 0xBAE3, 0x7B9D, 0xBAE4, 0x7B94, 0xBAE5, 0x7B8F, 0xBAE6, 0x7BB8, - 0xBAE7, 0x7B87, 0xBAE8, 0x7B84, 0xBAE9, 0x7CB9, 0xBAEA, 0x7CBD, - 0xBAEB, 0x7CBE, 0xBAEC, 0x7DBB, 0xBAED, 0x7DB0, 0xBAEE, 0x7D9C, - 0xBAEF, 0x7DBD, 0xBAF0, 0x7DBE, 0xBAF1, 0x7DA0, 0xBAF2, 0x7DCA, - 0xBAF3, 0x7DB4, 0xBAF4, 0x7DB2, 0xBAF5, 0x7DB1, 0xBAF6, 0x7DBA, - 0xBAF7, 0x7DA2, 0xBAF8, 0x7DBF, 0xBAF9, 0x7DB5, 0xBAFA, 0x7DB8, - 0xBAFB, 0x7DAD, 0xBAFC, 0x7DD2, 0xBAFD, 0x7DC7, 0xBAFE, 0x7DAC, - 0xBB40, 0x7F70, 0xBB41, 0x7FE0, 0xBB42, 0x7FE1, 0xBB43, 0x7FDF, - 0xBB44, 0x805E, 0xBB45, 0x805A, 0xBB46, 0x8087, 0xBB47, 0x8150, - 0xBB48, 0x8180, 0xBB49, 0x818F, 0xBB4A, 0x8188, 0xBB4B, 0x818A, - 0xBB4C, 0x817F, 0xBB4D, 0x8182, 0xBB4E, 0x81E7, 0xBB4F, 0x81FA, - 0xBB50, 0x8207, 0xBB51, 0x8214, 0xBB52, 0x821E, 0xBB53, 0x824B, - 0xBB54, 0x84C9, 0xBB55, 0x84BF, 0xBB56, 0x84C6, 0xBB57, 0x84C4, - 0xBB58, 0x8499, 0xBB59, 0x849E, 0xBB5A, 0x84B2, 0xBB5B, 0x849C, - 0xBB5C, 0x84CB, 0xBB5D, 0x84B8, 0xBB5E, 0x84C0, 0xBB5F, 0x84D3, - 0xBB60, 0x8490, 0xBB61, 0x84BC, 0xBB62, 0x84D1, 0xBB63, 0x84CA, - 0xBB64, 0x873F, 0xBB65, 0x871C, 0xBB66, 0x873B, 0xBB67, 0x8722, - 0xBB68, 0x8725, 0xBB69, 0x8734, 0xBB6A, 0x8718, 0xBB6B, 0x8755, - 0xBB6C, 0x8737, 0xBB6D, 0x8729, 0xBB6E, 0x88F3, 0xBB6F, 0x8902, - 0xBB70, 0x88F4, 0xBB71, 0x88F9, 0xBB72, 0x88F8, 0xBB73, 0x88FD, - 0xBB74, 0x88E8, 0xBB75, 0x891A, 0xBB76, 0x88EF, 0xBB77, 0x8AA6, - 0xBB78, 0x8A8C, 0xBB79, 0x8A9E, 0xBB7A, 0x8AA3, 0xBB7B, 0x8A8D, - 0xBB7C, 0x8AA1, 0xBB7D, 0x8A93, 0xBB7E, 0x8AA4, 0xBBA1, 0x8AAA, - 0xBBA2, 0x8AA5, 0xBBA3, 0x8AA8, 0xBBA4, 0x8A98, 0xBBA5, 0x8A91, - 0xBBA6, 0x8A9A, 0xBBA7, 0x8AA7, 0xBBA8, 0x8C6A, 0xBBA9, 0x8C8D, - 0xBBAA, 0x8C8C, 0xBBAB, 0x8CD3, 0xBBAC, 0x8CD1, 0xBBAD, 0x8CD2, - 0xBBAE, 0x8D6B, 0xBBAF, 0x8D99, 0xBBB0, 0x8D95, 0xBBB1, 0x8DFC, - 0xBBB2, 0x8F14, 0xBBB3, 0x8F12, 0xBBB4, 0x8F15, 0xBBB5, 0x8F13, - 0xBBB6, 0x8FA3, 0xBBB7, 0x9060, 0xBBB8, 0x9058, 0xBBB9, 0x905C, - 0xBBBA, 0x9063, 0xBBBB, 0x9059, 0xBBBC, 0x905E, 0xBBBD, 0x9062, - 0xBBBE, 0x905D, 0xBBBF, 0x905B, 0xBBC0, 0x9119, 0xBBC1, 0x9118, - 0xBBC2, 0x911E, 0xBBC3, 0x9175, 0xBBC4, 0x9178, 0xBBC5, 0x9177, - 0xBBC6, 0x9174, 0xBBC7, 0x9278, 0xBBC8, 0x9280, 0xBBC9, 0x9285, - 0xBBCA, 0x9298, 0xBBCB, 0x9296, 0xBBCC, 0x927B, 0xBBCD, 0x9293, - 0xBBCE, 0x929C, 0xBBCF, 0x92A8, 0xBBD0, 0x927C, 0xBBD1, 0x9291, - 0xBBD2, 0x95A1, 0xBBD3, 0x95A8, 0xBBD4, 0x95A9, 0xBBD5, 0x95A3, - 0xBBD6, 0x95A5, 0xBBD7, 0x95A4, 0xBBD8, 0x9699, 0xBBD9, 0x969C, - 0xBBDA, 0x969B, 0xBBDB, 0x96CC, 0xBBDC, 0x96D2, 0xBBDD, 0x9700, - 0xBBDE, 0x977C, 0xBBDF, 0x9785, 0xBBE0, 0x97F6, 0xBBE1, 0x9817, - 0xBBE2, 0x9818, 0xBBE3, 0x98AF, 0xBBE4, 0x98B1, 0xBBE5, 0x9903, - 0xBBE6, 0x9905, 0xBBE7, 0x990C, 0xBBE8, 0x9909, 0xBBE9, 0x99C1, - 0xBBEA, 0x9AAF, 0xBBEB, 0x9AB0, 0xBBEC, 0x9AE6, 0xBBED, 0x9B41, - 0xBBEE, 0x9B42, 0xBBEF, 0x9CF4, 0xBBF0, 0x9CF6, 0xBBF1, 0x9CF3, - 0xBBF2, 0x9EBC, 0xBBF3, 0x9F3B, 0xBBF4, 0x9F4A, 0xBBF5, 0x5104, - 0xBBF6, 0x5100, 0xBBF7, 0x50FB, 0xBBF8, 0x50F5, 0xBBF9, 0x50F9, - 0xBBFA, 0x5102, 0xBBFB, 0x5108, 0xBBFC, 0x5109, 0xBBFD, 0x5105, - 0xBBFE, 0x51DC, 0xBC40, 0x5287, 0xBC41, 0x5288, 0xBC42, 0x5289, - 0xBC43, 0x528D, 0xBC44, 0x528A, 0xBC45, 0x52F0, 0xBC46, 0x53B2, - 0xBC47, 0x562E, 0xBC48, 0x563B, 0xBC49, 0x5639, 0xBC4A, 0x5632, - 0xBC4B, 0x563F, 0xBC4C, 0x5634, 0xBC4D, 0x5629, 0xBC4E, 0x5653, - 0xBC4F, 0x564E, 0xBC50, 0x5657, 0xBC51, 0x5674, 0xBC52, 0x5636, - 0xBC53, 0x562F, 0xBC54, 0x5630, 0xBC55, 0x5880, 0xBC56, 0x589F, - 0xBC57, 0x589E, 0xBC58, 0x58B3, 0xBC59, 0x589C, 0xBC5A, 0x58AE, - 0xBC5B, 0x58A9, 0xBC5C, 0x58A6, 0xBC5D, 0x596D, 0xBC5E, 0x5B09, - 0xBC5F, 0x5AFB, 0xBC60, 0x5B0B, 0xBC61, 0x5AF5, 0xBC62, 0x5B0C, - 0xBC63, 0x5B08, 0xBC64, 0x5BEE, 0xBC65, 0x5BEC, 0xBC66, 0x5BE9, - 0xBC67, 0x5BEB, 0xBC68, 0x5C64, 0xBC69, 0x5C65, 0xBC6A, 0x5D9D, - 0xBC6B, 0x5D94, 0xBC6C, 0x5E62, 0xBC6D, 0x5E5F, 0xBC6E, 0x5E61, - 0xBC6F, 0x5EE2, 0xBC70, 0x5EDA, 0xBC71, 0x5EDF, 0xBC72, 0x5EDD, - 0xBC73, 0x5EE3, 0xBC74, 0x5EE0, 0xBC75, 0x5F48, 0xBC76, 0x5F71, - 0xBC77, 0x5FB7, 0xBC78, 0x5FB5, 0xBC79, 0x6176, 0xBC7A, 0x6167, - 0xBC7B, 0x616E, 0xBC7C, 0x615D, 0xBC7D, 0x6155, 0xBC7E, 0x6182, - 0xBCA1, 0x617C, 0xBCA2, 0x6170, 0xBCA3, 0x616B, 0xBCA4, 0x617E, - 0xBCA5, 0x61A7, 0xBCA6, 0x6190, 0xBCA7, 0x61AB, 0xBCA8, 0x618E, - 0xBCA9, 0x61AC, 0xBCAA, 0x619A, 0xBCAB, 0x61A4, 0xBCAC, 0x6194, - 0xBCAD, 0x61AE, 0xBCAE, 0x622E, 0xBCAF, 0x6469, 0xBCB0, 0x646F, - 0xBCB1, 0x6479, 0xBCB2, 0x649E, 0xBCB3, 0x64B2, 0xBCB4, 0x6488, - 0xBCB5, 0x6490, 0xBCB6, 0x64B0, 0xBCB7, 0x64A5, 0xBCB8, 0x6493, - 0xBCB9, 0x6495, 0xBCBA, 0x64A9, 0xBCBB, 0x6492, 0xBCBC, 0x64AE, - 0xBCBD, 0x64AD, 0xBCBE, 0x64AB, 0xBCBF, 0x649A, 0xBCC0, 0x64AC, - 0xBCC1, 0x6499, 0xBCC2, 0x64A2, 0xBCC3, 0x64B3, 0xBCC4, 0x6575, - 0xBCC5, 0x6577, 0xBCC6, 0x6578, 0xBCC7, 0x66AE, 0xBCC8, 0x66AB, - 0xBCC9, 0x66B4, 0xBCCA, 0x66B1, 0xBCCB, 0x6A23, 0xBCCC, 0x6A1F, - 0xBCCD, 0x69E8, 0xBCCE, 0x6A01, 0xBCCF, 0x6A1E, 0xBCD0, 0x6A19, - 0xBCD1, 0x69FD, 0xBCD2, 0x6A21, 0xBCD3, 0x6A13, 0xBCD4, 0x6A0A, - 0xBCD5, 0x69F3, 0xBCD6, 0x6A02, 0xBCD7, 0x6A05, 0xBCD8, 0x69ED, - 0xBCD9, 0x6A11, 0xBCDA, 0x6B50, 0xBCDB, 0x6B4E, 0xBCDC, 0x6BA4, - 0xBCDD, 0x6BC5, 0xBCDE, 0x6BC6, 0xBCDF, 0x6F3F, 0xBCE0, 0x6F7C, - 0xBCE1, 0x6F84, 0xBCE2, 0x6F51, 0xBCE3, 0x6F66, 0xBCE4, 0x6F54, - 0xBCE5, 0x6F86, 0xBCE6, 0x6F6D, 0xBCE7, 0x6F5B, 0xBCE8, 0x6F78, - 0xBCE9, 0x6F6E, 0xBCEA, 0x6F8E, 0xBCEB, 0x6F7A, 0xBCEC, 0x6F70, - 0xBCED, 0x6F64, 0xBCEE, 0x6F97, 0xBCEF, 0x6F58, 0xBCF0, 0x6ED5, - 0xBCF1, 0x6F6F, 0xBCF2, 0x6F60, 0xBCF3, 0x6F5F, 0xBCF4, 0x719F, - 0xBCF5, 0x71AC, 0xBCF6, 0x71B1, 0xBCF7, 0x71A8, 0xBCF8, 0x7256, - 0xBCF9, 0x729B, 0xBCFA, 0x734E, 0xBCFB, 0x7357, 0xBCFC, 0x7469, - 0xBCFD, 0x748B, 0xBCFE, 0x7483, 0xBD40, 0x747E, 0xBD41, 0x7480, - 0xBD42, 0x757F, 0xBD43, 0x7620, 0xBD44, 0x7629, 0xBD45, 0x761F, - 0xBD46, 0x7624, 0xBD47, 0x7626, 0xBD48, 0x7621, 0xBD49, 0x7622, - 0xBD4A, 0x769A, 0xBD4B, 0x76BA, 0xBD4C, 0x76E4, 0xBD4D, 0x778E, - 0xBD4E, 0x7787, 0xBD4F, 0x778C, 0xBD50, 0x7791, 0xBD51, 0x778B, - 0xBD52, 0x78CB, 0xBD53, 0x78C5, 0xBD54, 0x78BA, 0xBD55, 0x78CA, - 0xBD56, 0x78BE, 0xBD57, 0x78D5, 0xBD58, 0x78BC, 0xBD59, 0x78D0, - 0xBD5A, 0x7A3F, 0xBD5B, 0x7A3C, 0xBD5C, 0x7A40, 0xBD5D, 0x7A3D, - 0xBD5E, 0x7A37, 0xBD5F, 0x7A3B, 0xBD60, 0x7AAF, 0xBD61, 0x7AAE, - 0xBD62, 0x7BAD, 0xBD63, 0x7BB1, 0xBD64, 0x7BC4, 0xBD65, 0x7BB4, - 0xBD66, 0x7BC6, 0xBD67, 0x7BC7, 0xBD68, 0x7BC1, 0xBD69, 0x7BA0, - 0xBD6A, 0x7BCC, 0xBD6B, 0x7CCA, 0xBD6C, 0x7DE0, 0xBD6D, 0x7DF4, - 0xBD6E, 0x7DEF, 0xBD6F, 0x7DFB, 0xBD70, 0x7DD8, 0xBD71, 0x7DEC, - 0xBD72, 0x7DDD, 0xBD73, 0x7DE8, 0xBD74, 0x7DE3, 0xBD75, 0x7DDA, - 0xBD76, 0x7DDE, 0xBD77, 0x7DE9, 0xBD78, 0x7D9E, 0xBD79, 0x7DD9, - 0xBD7A, 0x7DF2, 0xBD7B, 0x7DF9, 0xBD7C, 0x7F75, 0xBD7D, 0x7F77, - 0xBD7E, 0x7FAF, 0xBDA1, 0x7FE9, 0xBDA2, 0x8026, 0xBDA3, 0x819B, - 0xBDA4, 0x819C, 0xBDA5, 0x819D, 0xBDA6, 0x81A0, 0xBDA7, 0x819A, - 0xBDA8, 0x8198, 0xBDA9, 0x8517, 0xBDAA, 0x853D, 0xBDAB, 0x851A, - 0xBDAC, 0x84EE, 0xBDAD, 0x852C, 0xBDAE, 0x852D, 0xBDAF, 0x8513, - 0xBDB0, 0x8511, 0xBDB1, 0x8523, 0xBDB2, 0x8521, 0xBDB3, 0x8514, - 0xBDB4, 0x84EC, 0xBDB5, 0x8525, 0xBDB6, 0x84FF, 0xBDB7, 0x8506, - 0xBDB8, 0x8782, 0xBDB9, 0x8774, 0xBDBA, 0x8776, 0xBDBB, 0x8760, - 0xBDBC, 0x8766, 0xBDBD, 0x8778, 0xBDBE, 0x8768, 0xBDBF, 0x8759, - 0xBDC0, 0x8757, 0xBDC1, 0x874C, 0xBDC2, 0x8753, 0xBDC3, 0x885B, - 0xBDC4, 0x885D, 0xBDC5, 0x8910, 0xBDC6, 0x8907, 0xBDC7, 0x8912, - 0xBDC8, 0x8913, 0xBDC9, 0x8915, 0xBDCA, 0x890A, 0xBDCB, 0x8ABC, - 0xBDCC, 0x8AD2, 0xBDCD, 0x8AC7, 0xBDCE, 0x8AC4, 0xBDCF, 0x8A95, - 0xBDD0, 0x8ACB, 0xBDD1, 0x8AF8, 0xBDD2, 0x8AB2, 0xBDD3, 0x8AC9, - 0xBDD4, 0x8AC2, 0xBDD5, 0x8ABF, 0xBDD6, 0x8AB0, 0xBDD7, 0x8AD6, - 0xBDD8, 0x8ACD, 0xBDD9, 0x8AB6, 0xBDDA, 0x8AB9, 0xBDDB, 0x8ADB, - 0xBDDC, 0x8C4C, 0xBDDD, 0x8C4E, 0xBDDE, 0x8C6C, 0xBDDF, 0x8CE0, - 0xBDE0, 0x8CDE, 0xBDE1, 0x8CE6, 0xBDE2, 0x8CE4, 0xBDE3, 0x8CEC, - 0xBDE4, 0x8CED, 0xBDE5, 0x8CE2, 0xBDE6, 0x8CE3, 0xBDE7, 0x8CDC, - 0xBDE8, 0x8CEA, 0xBDE9, 0x8CE1, 0xBDEA, 0x8D6D, 0xBDEB, 0x8D9F, - 0xBDEC, 0x8DA3, 0xBDED, 0x8E2B, 0xBDEE, 0x8E10, 0xBDEF, 0x8E1D, - 0xBDF0, 0x8E22, 0xBDF1, 0x8E0F, 0xBDF2, 0x8E29, 0xBDF3, 0x8E1F, - 0xBDF4, 0x8E21, 0xBDF5, 0x8E1E, 0xBDF6, 0x8EBA, 0xBDF7, 0x8F1D, - 0xBDF8, 0x8F1B, 0xBDF9, 0x8F1F, 0xBDFA, 0x8F29, 0xBDFB, 0x8F26, - 0xBDFC, 0x8F2A, 0xBDFD, 0x8F1C, 0xBDFE, 0x8F1E, 0xBE40, 0x8F25, - 0xBE41, 0x9069, 0xBE42, 0x906E, 0xBE43, 0x9068, 0xBE44, 0x906D, - 0xBE45, 0x9077, 0xBE46, 0x9130, 0xBE47, 0x912D, 0xBE48, 0x9127, - 0xBE49, 0x9131, 0xBE4A, 0x9187, 0xBE4B, 0x9189, 0xBE4C, 0x918B, - 0xBE4D, 0x9183, 0xBE4E, 0x92C5, 0xBE4F, 0x92BB, 0xBE50, 0x92B7, - 0xBE51, 0x92EA, 0xBE52, 0x92AC, 0xBE53, 0x92E4, 0xBE54, 0x92C1, - 0xBE55, 0x92B3, 0xBE56, 0x92BC, 0xBE57, 0x92D2, 0xBE58, 0x92C7, - 0xBE59, 0x92F0, 0xBE5A, 0x92B2, 0xBE5B, 0x95AD, 0xBE5C, 0x95B1, - 0xBE5D, 0x9704, 0xBE5E, 0x9706, 0xBE5F, 0x9707, 0xBE60, 0x9709, - 0xBE61, 0x9760, 0xBE62, 0x978D, 0xBE63, 0x978B, 0xBE64, 0x978F, - 0xBE65, 0x9821, 0xBE66, 0x982B, 0xBE67, 0x981C, 0xBE68, 0x98B3, - 0xBE69, 0x990A, 0xBE6A, 0x9913, 0xBE6B, 0x9912, 0xBE6C, 0x9918, - 0xBE6D, 0x99DD, 0xBE6E, 0x99D0, 0xBE6F, 0x99DF, 0xBE70, 0x99DB, - 0xBE71, 0x99D1, 0xBE72, 0x99D5, 0xBE73, 0x99D2, 0xBE74, 0x99D9, - 0xBE75, 0x9AB7, 0xBE76, 0x9AEE, 0xBE77, 0x9AEF, 0xBE78, 0x9B27, - 0xBE79, 0x9B45, 0xBE7A, 0x9B44, 0xBE7B, 0x9B77, 0xBE7C, 0x9B6F, - 0xBE7D, 0x9D06, 0xBE7E, 0x9D09, 0xBEA1, 0x9D03, 0xBEA2, 0x9EA9, - 0xBEA3, 0x9EBE, 0xBEA4, 0x9ECE, 0xBEA5, 0x58A8, 0xBEA6, 0x9F52, - 0xBEA7, 0x5112, 0xBEA8, 0x5118, 0xBEA9, 0x5114, 0xBEAA, 0x5110, - 0xBEAB, 0x5115, 0xBEAC, 0x5180, 0xBEAD, 0x51AA, 0xBEAE, 0x51DD, - 0xBEAF, 0x5291, 0xBEB0, 0x5293, 0xBEB1, 0x52F3, 0xBEB2, 0x5659, - 0xBEB3, 0x566B, 0xBEB4, 0x5679, 0xBEB5, 0x5669, 0xBEB6, 0x5664, - 0xBEB7, 0x5678, 0xBEB8, 0x566A, 0xBEB9, 0x5668, 0xBEBA, 0x5665, - 0xBEBB, 0x5671, 0xBEBC, 0x566F, 0xBEBD, 0x566C, 0xBEBE, 0x5662, - 0xBEBF, 0x5676, 0xBEC0, 0x58C1, 0xBEC1, 0x58BE, 0xBEC2, 0x58C7, - 0xBEC3, 0x58C5, 0xBEC4, 0x596E, 0xBEC5, 0x5B1D, 0xBEC6, 0x5B34, - 0xBEC7, 0x5B78, 0xBEC8, 0x5BF0, 0xBEC9, 0x5C0E, 0xBECA, 0x5F4A, - 0xBECB, 0x61B2, 0xBECC, 0x6191, 0xBECD, 0x61A9, 0xBECE, 0x618A, - 0xBECF, 0x61CD, 0xBED0, 0x61B6, 0xBED1, 0x61BE, 0xBED2, 0x61CA, - 0xBED3, 0x61C8, 0xBED4, 0x6230, 0xBED5, 0x64C5, 0xBED6, 0x64C1, - 0xBED7, 0x64CB, 0xBED8, 0x64BB, 0xBED9, 0x64BC, 0xBEDA, 0x64DA, - 0xBEDB, 0x64C4, 0xBEDC, 0x64C7, 0xBEDD, 0x64C2, 0xBEDE, 0x64CD, - 0xBEDF, 0x64BF, 0xBEE0, 0x64D2, 0xBEE1, 0x64D4, 0xBEE2, 0x64BE, - 0xBEE3, 0x6574, 0xBEE4, 0x66C6, 0xBEE5, 0x66C9, 0xBEE6, 0x66B9, - 0xBEE7, 0x66C4, 0xBEE8, 0x66C7, 0xBEE9, 0x66B8, 0xBEEA, 0x6A3D, - 0xBEEB, 0x6A38, 0xBEEC, 0x6A3A, 0xBEED, 0x6A59, 0xBEEE, 0x6A6B, - 0xBEEF, 0x6A58, 0xBEF0, 0x6A39, 0xBEF1, 0x6A44, 0xBEF2, 0x6A62, - 0xBEF3, 0x6A61, 0xBEF4, 0x6A4B, 0xBEF5, 0x6A47, 0xBEF6, 0x6A35, - 0xBEF7, 0x6A5F, 0xBEF8, 0x6A48, 0xBEF9, 0x6B59, 0xBEFA, 0x6B77, - 0xBEFB, 0x6C05, 0xBEFC, 0x6FC2, 0xBEFD, 0x6FB1, 0xBEFE, 0x6FA1, - 0xBF40, 0x6FC3, 0xBF41, 0x6FA4, 0xBF42, 0x6FC1, 0xBF43, 0x6FA7, - 0xBF44, 0x6FB3, 0xBF45, 0x6FC0, 0xBF46, 0x6FB9, 0xBF47, 0x6FB6, - 0xBF48, 0x6FA6, 0xBF49, 0x6FA0, 0xBF4A, 0x6FB4, 0xBF4B, 0x71BE, - 0xBF4C, 0x71C9, 0xBF4D, 0x71D0, 0xBF4E, 0x71D2, 0xBF4F, 0x71C8, - 0xBF50, 0x71D5, 0xBF51, 0x71B9, 0xBF52, 0x71CE, 0xBF53, 0x71D9, - 0xBF54, 0x71DC, 0xBF55, 0x71C3, 0xBF56, 0x71C4, 0xBF57, 0x7368, - 0xBF58, 0x749C, 0xBF59, 0x74A3, 0xBF5A, 0x7498, 0xBF5B, 0x749F, - 0xBF5C, 0x749E, 0xBF5D, 0x74E2, 0xBF5E, 0x750C, 0xBF5F, 0x750D, - 0xBF60, 0x7634, 0xBF61, 0x7638, 0xBF62, 0x763A, 0xBF63, 0x76E7, - 0xBF64, 0x76E5, 0xBF65, 0x77A0, 0xBF66, 0x779E, 0xBF67, 0x779F, - 0xBF68, 0x77A5, 0xBF69, 0x78E8, 0xBF6A, 0x78DA, 0xBF6B, 0x78EC, - 0xBF6C, 0x78E7, 0xBF6D, 0x79A6, 0xBF6E, 0x7A4D, 0xBF6F, 0x7A4E, - 0xBF70, 0x7A46, 0xBF71, 0x7A4C, 0xBF72, 0x7A4B, 0xBF73, 0x7ABA, - 0xBF74, 0x7BD9, 0xBF75, 0x7C11, 0xBF76, 0x7BC9, 0xBF77, 0x7BE4, - 0xBF78, 0x7BDB, 0xBF79, 0x7BE1, 0xBF7A, 0x7BE9, 0xBF7B, 0x7BE6, - 0xBF7C, 0x7CD5, 0xBF7D, 0x7CD6, 0xBF7E, 0x7E0A, 0xBFA1, 0x7E11, - 0xBFA2, 0x7E08, 0xBFA3, 0x7E1B, 0xBFA4, 0x7E23, 0xBFA5, 0x7E1E, - 0xBFA6, 0x7E1D, 0xBFA7, 0x7E09, 0xBFA8, 0x7E10, 0xBFA9, 0x7F79, - 0xBFAA, 0x7FB2, 0xBFAB, 0x7FF0, 0xBFAC, 0x7FF1, 0xBFAD, 0x7FEE, - 0xBFAE, 0x8028, 0xBFAF, 0x81B3, 0xBFB0, 0x81A9, 0xBFB1, 0x81A8, - 0xBFB2, 0x81FB, 0xBFB3, 0x8208, 0xBFB4, 0x8258, 0xBFB5, 0x8259, - 0xBFB6, 0x854A, 0xBFB7, 0x8559, 0xBFB8, 0x8548, 0xBFB9, 0x8568, - 0xBFBA, 0x8569, 0xBFBB, 0x8543, 0xBFBC, 0x8549, 0xBFBD, 0x856D, - 0xBFBE, 0x856A, 0xBFBF, 0x855E, 0xBFC0, 0x8783, 0xBFC1, 0x879F, - 0xBFC2, 0x879E, 0xBFC3, 0x87A2, 0xBFC4, 0x878D, 0xBFC5, 0x8861, - 0xBFC6, 0x892A, 0xBFC7, 0x8932, 0xBFC8, 0x8925, 0xBFC9, 0x892B, - 0xBFCA, 0x8921, 0xBFCB, 0x89AA, 0xBFCC, 0x89A6, 0xBFCD, 0x8AE6, - 0xBFCE, 0x8AFA, 0xBFCF, 0x8AEB, 0xBFD0, 0x8AF1, 0xBFD1, 0x8B00, - 0xBFD2, 0x8ADC, 0xBFD3, 0x8AE7, 0xBFD4, 0x8AEE, 0xBFD5, 0x8AFE, - 0xBFD6, 0x8B01, 0xBFD7, 0x8B02, 0xBFD8, 0x8AF7, 0xBFD9, 0x8AED, - 0xBFDA, 0x8AF3, 0xBFDB, 0x8AF6, 0xBFDC, 0x8AFC, 0xBFDD, 0x8C6B, - 0xBFDE, 0x8C6D, 0xBFDF, 0x8C93, 0xBFE0, 0x8CF4, 0xBFE1, 0x8E44, - 0xBFE2, 0x8E31, 0xBFE3, 0x8E34, 0xBFE4, 0x8E42, 0xBFE5, 0x8E39, - 0xBFE6, 0x8E35, 0xBFE7, 0x8F3B, 0xBFE8, 0x8F2F, 0xBFE9, 0x8F38, - 0xBFEA, 0x8F33, 0xBFEB, 0x8FA8, 0xBFEC, 0x8FA6, 0xBFED, 0x9075, - 0xBFEE, 0x9074, 0xBFEF, 0x9078, 0xBFF0, 0x9072, 0xBFF1, 0x907C, - 0xBFF2, 0x907A, 0xBFF3, 0x9134, 0xBFF4, 0x9192, 0xBFF5, 0x9320, - 0xBFF6, 0x9336, 0xBFF7, 0x92F8, 0xBFF8, 0x9333, 0xBFF9, 0x932F, - 0xBFFA, 0x9322, 0xBFFB, 0x92FC, 0xBFFC, 0x932B, 0xBFFD, 0x9304, - 0xBFFE, 0x931A, 0xC040, 0x9310, 0xC041, 0x9326, 0xC042, 0x9321, - 0xC043, 0x9315, 0xC044, 0x932E, 0xC045, 0x9319, 0xC046, 0x95BB, - 0xC047, 0x96A7, 0xC048, 0x96A8, 0xC049, 0x96AA, 0xC04A, 0x96D5, - 0xC04B, 0x970E, 0xC04C, 0x9711, 0xC04D, 0x9716, 0xC04E, 0x970D, - 0xC04F, 0x9713, 0xC050, 0x970F, 0xC051, 0x975B, 0xC052, 0x975C, - 0xC053, 0x9766, 0xC054, 0x9798, 0xC055, 0x9830, 0xC056, 0x9838, - 0xC057, 0x983B, 0xC058, 0x9837, 0xC059, 0x982D, 0xC05A, 0x9839, - 0xC05B, 0x9824, 0xC05C, 0x9910, 0xC05D, 0x9928, 0xC05E, 0x991E, - 0xC05F, 0x991B, 0xC060, 0x9921, 0xC061, 0x991A, 0xC062, 0x99ED, - 0xC063, 0x99E2, 0xC064, 0x99F1, 0xC065, 0x9AB8, 0xC066, 0x9ABC, - 0xC067, 0x9AFB, 0xC068, 0x9AED, 0xC069, 0x9B28, 0xC06A, 0x9B91, - 0xC06B, 0x9D15, 0xC06C, 0x9D23, 0xC06D, 0x9D26, 0xC06E, 0x9D28, - 0xC06F, 0x9D12, 0xC070, 0x9D1B, 0xC071, 0x9ED8, 0xC072, 0x9ED4, - 0xC073, 0x9F8D, 0xC074, 0x9F9C, 0xC075, 0x512A, 0xC076, 0x511F, - 0xC077, 0x5121, 0xC078, 0x5132, 0xC079, 0x52F5, 0xC07A, 0x568E, - 0xC07B, 0x5680, 0xC07C, 0x5690, 0xC07D, 0x5685, 0xC07E, 0x5687, - 0xC0A1, 0x568F, 0xC0A2, 0x58D5, 0xC0A3, 0x58D3, 0xC0A4, 0x58D1, - 0xC0A5, 0x58CE, 0xC0A6, 0x5B30, 0xC0A7, 0x5B2A, 0xC0A8, 0x5B24, - 0xC0A9, 0x5B7A, 0xC0AA, 0x5C37, 0xC0AB, 0x5C68, 0xC0AC, 0x5DBC, - 0xC0AD, 0x5DBA, 0xC0AE, 0x5DBD, 0xC0AF, 0x5DB8, 0xC0B0, 0x5E6B, - 0xC0B1, 0x5F4C, 0xC0B2, 0x5FBD, 0xC0B3, 0x61C9, 0xC0B4, 0x61C2, - 0xC0B5, 0x61C7, 0xC0B6, 0x61E6, 0xC0B7, 0x61CB, 0xC0B8, 0x6232, - 0xC0B9, 0x6234, 0xC0BA, 0x64CE, 0xC0BB, 0x64CA, 0xC0BC, 0x64D8, - 0xC0BD, 0x64E0, 0xC0BE, 0x64F0, 0xC0BF, 0x64E6, 0xC0C0, 0x64EC, - 0xC0C1, 0x64F1, 0xC0C2, 0x64E2, 0xC0C3, 0x64ED, 0xC0C4, 0x6582, - 0xC0C5, 0x6583, 0xC0C6, 0x66D9, 0xC0C7, 0x66D6, 0xC0C8, 0x6A80, - 0xC0C9, 0x6A94, 0xC0CA, 0x6A84, 0xC0CB, 0x6AA2, 0xC0CC, 0x6A9C, - 0xC0CD, 0x6ADB, 0xC0CE, 0x6AA3, 0xC0CF, 0x6A7E, 0xC0D0, 0x6A97, - 0xC0D1, 0x6A90, 0xC0D2, 0x6AA0, 0xC0D3, 0x6B5C, 0xC0D4, 0x6BAE, - 0xC0D5, 0x6BDA, 0xC0D6, 0x6C08, 0xC0D7, 0x6FD8, 0xC0D8, 0x6FF1, - 0xC0D9, 0x6FDF, 0xC0DA, 0x6FE0, 0xC0DB, 0x6FDB, 0xC0DC, 0x6FE4, - 0xC0DD, 0x6FEB, 0xC0DE, 0x6FEF, 0xC0DF, 0x6F80, 0xC0E0, 0x6FEC, - 0xC0E1, 0x6FE1, 0xC0E2, 0x6FE9, 0xC0E3, 0x6FD5, 0xC0E4, 0x6FEE, - 0xC0E5, 0x6FF0, 0xC0E6, 0x71E7, 0xC0E7, 0x71DF, 0xC0E8, 0x71EE, - 0xC0E9, 0x71E6, 0xC0EA, 0x71E5, 0xC0EB, 0x71ED, 0xC0EC, 0x71EC, - 0xC0ED, 0x71F4, 0xC0EE, 0x71E0, 0xC0EF, 0x7235, 0xC0F0, 0x7246, - 0xC0F1, 0x7370, 0xC0F2, 0x7372, 0xC0F3, 0x74A9, 0xC0F4, 0x74B0, - 0xC0F5, 0x74A6, 0xC0F6, 0x74A8, 0xC0F7, 0x7646, 0xC0F8, 0x7642, - 0xC0F9, 0x764C, 0xC0FA, 0x76EA, 0xC0FB, 0x77B3, 0xC0FC, 0x77AA, - 0xC0FD, 0x77B0, 0xC0FE, 0x77AC, 0xC140, 0x77A7, 0xC141, 0x77AD, - 0xC142, 0x77EF, 0xC143, 0x78F7, 0xC144, 0x78FA, 0xC145, 0x78F4, - 0xC146, 0x78EF, 0xC147, 0x7901, 0xC148, 0x79A7, 0xC149, 0x79AA, - 0xC14A, 0x7A57, 0xC14B, 0x7ABF, 0xC14C, 0x7C07, 0xC14D, 0x7C0D, - 0xC14E, 0x7BFE, 0xC14F, 0x7BF7, 0xC150, 0x7C0C, 0xC151, 0x7BE0, - 0xC152, 0x7CE0, 0xC153, 0x7CDC, 0xC154, 0x7CDE, 0xC155, 0x7CE2, - 0xC156, 0x7CDF, 0xC157, 0x7CD9, 0xC158, 0x7CDD, 0xC159, 0x7E2E, - 0xC15A, 0x7E3E, 0xC15B, 0x7E46, 0xC15C, 0x7E37, 0xC15D, 0x7E32, - 0xC15E, 0x7E43, 0xC15F, 0x7E2B, 0xC160, 0x7E3D, 0xC161, 0x7E31, - 0xC162, 0x7E45, 0xC163, 0x7E41, 0xC164, 0x7E34, 0xC165, 0x7E39, - 0xC166, 0x7E48, 0xC167, 0x7E35, 0xC168, 0x7E3F, 0xC169, 0x7E2F, - 0xC16A, 0x7F44, 0xC16B, 0x7FF3, 0xC16C, 0x7FFC, 0xC16D, 0x8071, - 0xC16E, 0x8072, 0xC16F, 0x8070, 0xC170, 0x806F, 0xC171, 0x8073, - 0xC172, 0x81C6, 0xC173, 0x81C3, 0xC174, 0x81BA, 0xC175, 0x81C2, - 0xC176, 0x81C0, 0xC177, 0x81BF, 0xC178, 0x81BD, 0xC179, 0x81C9, - 0xC17A, 0x81BE, 0xC17B, 0x81E8, 0xC17C, 0x8209, 0xC17D, 0x8271, - 0xC17E, 0x85AA, 0xC1A1, 0x8584, 0xC1A2, 0x857E, 0xC1A3, 0x859C, - 0xC1A4, 0x8591, 0xC1A5, 0x8594, 0xC1A6, 0x85AF, 0xC1A7, 0x859B, - 0xC1A8, 0x8587, 0xC1A9, 0x85A8, 0xC1AA, 0x858A, 0xC1AB, 0x8667, - 0xC1AC, 0x87C0, 0xC1AD, 0x87D1, 0xC1AE, 0x87B3, 0xC1AF, 0x87D2, - 0xC1B0, 0x87C6, 0xC1B1, 0x87AB, 0xC1B2, 0x87BB, 0xC1B3, 0x87BA, - 0xC1B4, 0x87C8, 0xC1B5, 0x87CB, 0xC1B6, 0x893B, 0xC1B7, 0x8936, - 0xC1B8, 0x8944, 0xC1B9, 0x8938, 0xC1BA, 0x893D, 0xC1BB, 0x89AC, - 0xC1BC, 0x8B0E, 0xC1BD, 0x8B17, 0xC1BE, 0x8B19, 0xC1BF, 0x8B1B, - 0xC1C0, 0x8B0A, 0xC1C1, 0x8B20, 0xC1C2, 0x8B1D, 0xC1C3, 0x8B04, - 0xC1C4, 0x8B10, 0xC1C5, 0x8C41, 0xC1C6, 0x8C3F, 0xC1C7, 0x8C73, - 0xC1C8, 0x8CFA, 0xC1C9, 0x8CFD, 0xC1CA, 0x8CFC, 0xC1CB, 0x8CF8, - 0xC1CC, 0x8CFB, 0xC1CD, 0x8DA8, 0xC1CE, 0x8E49, 0xC1CF, 0x8E4B, - 0xC1D0, 0x8E48, 0xC1D1, 0x8E4A, 0xC1D2, 0x8F44, 0xC1D3, 0x8F3E, - 0xC1D4, 0x8F42, 0xC1D5, 0x8F45, 0xC1D6, 0x8F3F, 0xC1D7, 0x907F, - 0xC1D8, 0x907D, 0xC1D9, 0x9084, 0xC1DA, 0x9081, 0xC1DB, 0x9082, - 0xC1DC, 0x9080, 0xC1DD, 0x9139, 0xC1DE, 0x91A3, 0xC1DF, 0x919E, - 0xC1E0, 0x919C, 0xC1E1, 0x934D, 0xC1E2, 0x9382, 0xC1E3, 0x9328, - 0xC1E4, 0x9375, 0xC1E5, 0x934A, 0xC1E6, 0x9365, 0xC1E7, 0x934B, - 0xC1E8, 0x9318, 0xC1E9, 0x937E, 0xC1EA, 0x936C, 0xC1EB, 0x935B, - 0xC1EC, 0x9370, 0xC1ED, 0x935A, 0xC1EE, 0x9354, 0xC1EF, 0x95CA, - 0xC1F0, 0x95CB, 0xC1F1, 0x95CC, 0xC1F2, 0x95C8, 0xC1F3, 0x95C6, - 0xC1F4, 0x96B1, 0xC1F5, 0x96B8, 0xC1F6, 0x96D6, 0xC1F7, 0x971C, - 0xC1F8, 0x971E, 0xC1F9, 0x97A0, 0xC1FA, 0x97D3, 0xC1FB, 0x9846, - 0xC1FC, 0x98B6, 0xC1FD, 0x9935, 0xC1FE, 0x9A01, 0xC240, 0x99FF, - 0xC241, 0x9BAE, 0xC242, 0x9BAB, 0xC243, 0x9BAA, 0xC244, 0x9BAD, - 0xC245, 0x9D3B, 0xC246, 0x9D3F, 0xC247, 0x9E8B, 0xC248, 0x9ECF, - 0xC249, 0x9EDE, 0xC24A, 0x9EDC, 0xC24B, 0x9EDD, 0xC24C, 0x9EDB, - 0xC24D, 0x9F3E, 0xC24E, 0x9F4B, 0xC24F, 0x53E2, 0xC250, 0x5695, - 0xC251, 0x56AE, 0xC252, 0x58D9, 0xC253, 0x58D8, 0xC254, 0x5B38, - 0xC255, 0x5F5D, 0xC256, 0x61E3, 0xC257, 0x6233, 0xC258, 0x64F4, - 0xC259, 0x64F2, 0xC25A, 0x64FE, 0xC25B, 0x6506, 0xC25C, 0x64FA, - 0xC25D, 0x64FB, 0xC25E, 0x64F7, 0xC25F, 0x65B7, 0xC260, 0x66DC, - 0xC261, 0x6726, 0xC262, 0x6AB3, 0xC263, 0x6AAC, 0xC264, 0x6AC3, - 0xC265, 0x6ABB, 0xC266, 0x6AB8, 0xC267, 0x6AC2, 0xC268, 0x6AAE, - 0xC269, 0x6AAF, 0xC26A, 0x6B5F, 0xC26B, 0x6B78, 0xC26C, 0x6BAF, - 0xC26D, 0x7009, 0xC26E, 0x700B, 0xC26F, 0x6FFE, 0xC270, 0x7006, - 0xC271, 0x6FFA, 0xC272, 0x7011, 0xC273, 0x700F, 0xC274, 0x71FB, - 0xC275, 0x71FC, 0xC276, 0x71FE, 0xC277, 0x71F8, 0xC278, 0x7377, - 0xC279, 0x7375, 0xC27A, 0x74A7, 0xC27B, 0x74BF, 0xC27C, 0x7515, - 0xC27D, 0x7656, 0xC27E, 0x7658, 0xC2A1, 0x7652, 0xC2A2, 0x77BD, - 0xC2A3, 0x77BF, 0xC2A4, 0x77BB, 0xC2A5, 0x77BC, 0xC2A6, 0x790E, - 0xC2A7, 0x79AE, 0xC2A8, 0x7A61, 0xC2A9, 0x7A62, 0xC2AA, 0x7A60, - 0xC2AB, 0x7AC4, 0xC2AC, 0x7AC5, 0xC2AD, 0x7C2B, 0xC2AE, 0x7C27, - 0xC2AF, 0x7C2A, 0xC2B0, 0x7C1E, 0xC2B1, 0x7C23, 0xC2B2, 0x7C21, - 0xC2B3, 0x7CE7, 0xC2B4, 0x7E54, 0xC2B5, 0x7E55, 0xC2B6, 0x7E5E, - 0xC2B7, 0x7E5A, 0xC2B8, 0x7E61, 0xC2B9, 0x7E52, 0xC2BA, 0x7E59, - 0xC2BB, 0x7F48, 0xC2BC, 0x7FF9, 0xC2BD, 0x7FFB, 0xC2BE, 0x8077, - 0xC2BF, 0x8076, 0xC2C0, 0x81CD, 0xC2C1, 0x81CF, 0xC2C2, 0x820A, - 0xC2C3, 0x85CF, 0xC2C4, 0x85A9, 0xC2C5, 0x85CD, 0xC2C6, 0x85D0, - 0xC2C7, 0x85C9, 0xC2C8, 0x85B0, 0xC2C9, 0x85BA, 0xC2CA, 0x85B9, - 0xC2CB, 0x85A6, 0xC2CC, 0x87EF, 0xC2CD, 0x87EC, 0xC2CE, 0x87F2, - 0xC2CF, 0x87E0, 0xC2D0, 0x8986, 0xC2D1, 0x89B2, 0xC2D2, 0x89F4, - 0xC2D3, 0x8B28, 0xC2D4, 0x8B39, 0xC2D5, 0x8B2C, 0xC2D6, 0x8B2B, - 0xC2D7, 0x8C50, 0xC2D8, 0x8D05, 0xC2D9, 0x8E59, 0xC2DA, 0x8E63, - 0xC2DB, 0x8E66, 0xC2DC, 0x8E64, 0xC2DD, 0x8E5F, 0xC2DE, 0x8E55, - 0xC2DF, 0x8EC0, 0xC2E0, 0x8F49, 0xC2E1, 0x8F4D, 0xC2E2, 0x9087, - 0xC2E3, 0x9083, 0xC2E4, 0x9088, 0xC2E5, 0x91AB, 0xC2E6, 0x91AC, - 0xC2E7, 0x91D0, 0xC2E8, 0x9394, 0xC2E9, 0x938A, 0xC2EA, 0x9396, - 0xC2EB, 0x93A2, 0xC2EC, 0x93B3, 0xC2ED, 0x93AE, 0xC2EE, 0x93AC, - 0xC2EF, 0x93B0, 0xC2F0, 0x9398, 0xC2F1, 0x939A, 0xC2F2, 0x9397, - 0xC2F3, 0x95D4, 0xC2F4, 0x95D6, 0xC2F5, 0x95D0, 0xC2F6, 0x95D5, - 0xC2F7, 0x96E2, 0xC2F8, 0x96DC, 0xC2F9, 0x96D9, 0xC2FA, 0x96DB, - 0xC2FB, 0x96DE, 0xC2FC, 0x9724, 0xC2FD, 0x97A3, 0xC2FE, 0x97A6, - 0xC340, 0x97AD, 0xC341, 0x97F9, 0xC342, 0x984D, 0xC343, 0x984F, - 0xC344, 0x984C, 0xC345, 0x984E, 0xC346, 0x9853, 0xC347, 0x98BA, - 0xC348, 0x993E, 0xC349, 0x993F, 0xC34A, 0x993D, 0xC34B, 0x992E, - 0xC34C, 0x99A5, 0xC34D, 0x9A0E, 0xC34E, 0x9AC1, 0xC34F, 0x9B03, - 0xC350, 0x9B06, 0xC351, 0x9B4F, 0xC352, 0x9B4E, 0xC353, 0x9B4D, - 0xC354, 0x9BCA, 0xC355, 0x9BC9, 0xC356, 0x9BFD, 0xC357, 0x9BC8, - 0xC358, 0x9BC0, 0xC359, 0x9D51, 0xC35A, 0x9D5D, 0xC35B, 0x9D60, - 0xC35C, 0x9EE0, 0xC35D, 0x9F15, 0xC35E, 0x9F2C, 0xC35F, 0x5133, - 0xC360, 0x56A5, 0xC361, 0x58DE, 0xC362, 0x58DF, 0xC363, 0x58E2, - 0xC364, 0x5BF5, 0xC365, 0x9F90, 0xC366, 0x5EEC, 0xC367, 0x61F2, - 0xC368, 0x61F7, 0xC369, 0x61F6, 0xC36A, 0x61F5, 0xC36B, 0x6500, - 0xC36C, 0x650F, 0xC36D, 0x66E0, 0xC36E, 0x66DD, 0xC36F, 0x6AE5, - 0xC370, 0x6ADD, 0xC371, 0x6ADA, 0xC372, 0x6AD3, 0xC373, 0x701B, - 0xC374, 0x701F, 0xC375, 0x7028, 0xC376, 0x701A, 0xC377, 0x701D, - 0xC378, 0x7015, 0xC379, 0x7018, 0xC37A, 0x7206, 0xC37B, 0x720D, - 0xC37C, 0x7258, 0xC37D, 0x72A2, 0xC37E, 0x7378, 0xC3A1, 0x737A, - 0xC3A2, 0x74BD, 0xC3A3, 0x74CA, 0xC3A4, 0x74E3, 0xC3A5, 0x7587, - 0xC3A6, 0x7586, 0xC3A7, 0x765F, 0xC3A8, 0x7661, 0xC3A9, 0x77C7, - 0xC3AA, 0x7919, 0xC3AB, 0x79B1, 0xC3AC, 0x7A6B, 0xC3AD, 0x7A69, - 0xC3AE, 0x7C3E, 0xC3AF, 0x7C3F, 0xC3B0, 0x7C38, 0xC3B1, 0x7C3D, - 0xC3B2, 0x7C37, 0xC3B3, 0x7C40, 0xC3B4, 0x7E6B, 0xC3B5, 0x7E6D, - 0xC3B6, 0x7E79, 0xC3B7, 0x7E69, 0xC3B8, 0x7E6A, 0xC3B9, 0x7F85, - 0xC3BA, 0x7E73, 0xC3BB, 0x7FB6, 0xC3BC, 0x7FB9, 0xC3BD, 0x7FB8, - 0xC3BE, 0x81D8, 0xC3BF, 0x85E9, 0xC3C0, 0x85DD, 0xC3C1, 0x85EA, - 0xC3C2, 0x85D5, 0xC3C3, 0x85E4, 0xC3C4, 0x85E5, 0xC3C5, 0x85F7, - 0xC3C6, 0x87FB, 0xC3C7, 0x8805, 0xC3C8, 0x880D, 0xC3C9, 0x87F9, - 0xC3CA, 0x87FE, 0xC3CB, 0x8960, 0xC3CC, 0x895F, 0xC3CD, 0x8956, - 0xC3CE, 0x895E, 0xC3CF, 0x8B41, 0xC3D0, 0x8B5C, 0xC3D1, 0x8B58, - 0xC3D2, 0x8B49, 0xC3D3, 0x8B5A, 0xC3D4, 0x8B4E, 0xC3D5, 0x8B4F, - 0xC3D6, 0x8B46, 0xC3D7, 0x8B59, 0xC3D8, 0x8D08, 0xC3D9, 0x8D0A, - 0xC3DA, 0x8E7C, 0xC3DB, 0x8E72, 0xC3DC, 0x8E87, 0xC3DD, 0x8E76, - 0xC3DE, 0x8E6C, 0xC3DF, 0x8E7A, 0xC3E0, 0x8E74, 0xC3E1, 0x8F54, - 0xC3E2, 0x8F4E, 0xC3E3, 0x8FAD, 0xC3E4, 0x908A, 0xC3E5, 0x908B, - 0xC3E6, 0x91B1, 0xC3E7, 0x91AE, 0xC3E8, 0x93E1, 0xC3E9, 0x93D1, - 0xC3EA, 0x93DF, 0xC3EB, 0x93C3, 0xC3EC, 0x93C8, 0xC3ED, 0x93DC, - 0xC3EE, 0x93DD, 0xC3EF, 0x93D6, 0xC3F0, 0x93E2, 0xC3F1, 0x93CD, - 0xC3F2, 0x93D8, 0xC3F3, 0x93E4, 0xC3F4, 0x93D7, 0xC3F5, 0x93E8, - 0xC3F6, 0x95DC, 0xC3F7, 0x96B4, 0xC3F8, 0x96E3, 0xC3F9, 0x972A, - 0xC3FA, 0x9727, 0xC3FB, 0x9761, 0xC3FC, 0x97DC, 0xC3FD, 0x97FB, - 0xC3FE, 0x985E, 0xC440, 0x9858, 0xC441, 0x985B, 0xC442, 0x98BC, - 0xC443, 0x9945, 0xC444, 0x9949, 0xC445, 0x9A16, 0xC446, 0x9A19, - 0xC447, 0x9B0D, 0xC448, 0x9BE8, 0xC449, 0x9BE7, 0xC44A, 0x9BD6, - 0xC44B, 0x9BDB, 0xC44C, 0x9D89, 0xC44D, 0x9D61, 0xC44E, 0x9D72, - 0xC44F, 0x9D6A, 0xC450, 0x9D6C, 0xC451, 0x9E92, 0xC452, 0x9E97, - 0xC453, 0x9E93, 0xC454, 0x9EB4, 0xC455, 0x52F8, 0xC456, 0x56A8, - 0xC457, 0x56B7, 0xC458, 0x56B6, 0xC459, 0x56B4, 0xC45A, 0x56BC, - 0xC45B, 0x58E4, 0xC45C, 0x5B40, 0xC45D, 0x5B43, 0xC45E, 0x5B7D, - 0xC45F, 0x5BF6, 0xC460, 0x5DC9, 0xC461, 0x61F8, 0xC462, 0x61FA, - 0xC463, 0x6518, 0xC464, 0x6514, 0xC465, 0x6519, 0xC466, 0x66E6, - 0xC467, 0x6727, 0xC468, 0x6AEC, 0xC469, 0x703E, 0xC46A, 0x7030, - 0xC46B, 0x7032, 0xC46C, 0x7210, 0xC46D, 0x737B, 0xC46E, 0x74CF, - 0xC46F, 0x7662, 0xC470, 0x7665, 0xC471, 0x7926, 0xC472, 0x792A, - 0xC473, 0x792C, 0xC474, 0x792B, 0xC475, 0x7AC7, 0xC476, 0x7AF6, - 0xC477, 0x7C4C, 0xC478, 0x7C43, 0xC479, 0x7C4D, 0xC47A, 0x7CEF, - 0xC47B, 0x7CF0, 0xC47C, 0x8FAE, 0xC47D, 0x7E7D, 0xC47E, 0x7E7C, - 0xC4A1, 0x7E82, 0xC4A2, 0x7F4C, 0xC4A3, 0x8000, 0xC4A4, 0x81DA, - 0xC4A5, 0x8266, 0xC4A6, 0x85FB, 0xC4A7, 0x85F9, 0xC4A8, 0x8611, - 0xC4A9, 0x85FA, 0xC4AA, 0x8606, 0xC4AB, 0x860B, 0xC4AC, 0x8607, - 0xC4AD, 0x860A, 0xC4AE, 0x8814, 0xC4AF, 0x8815, 0xC4B0, 0x8964, - 0xC4B1, 0x89BA, 0xC4B2, 0x89F8, 0xC4B3, 0x8B70, 0xC4B4, 0x8B6C, - 0xC4B5, 0x8B66, 0xC4B6, 0x8B6F, 0xC4B7, 0x8B5F, 0xC4B8, 0x8B6B, - 0xC4B9, 0x8D0F, 0xC4BA, 0x8D0D, 0xC4BB, 0x8E89, 0xC4BC, 0x8E81, - 0xC4BD, 0x8E85, 0xC4BE, 0x8E82, 0xC4BF, 0x91B4, 0xC4C0, 0x91CB, - 0xC4C1, 0x9418, 0xC4C2, 0x9403, 0xC4C3, 0x93FD, 0xC4C4, 0x95E1, - 0xC4C5, 0x9730, 0xC4C6, 0x98C4, 0xC4C7, 0x9952, 0xC4C8, 0x9951, - 0xC4C9, 0x99A8, 0xC4CA, 0x9A2B, 0xC4CB, 0x9A30, 0xC4CC, 0x9A37, - 0xC4CD, 0x9A35, 0xC4CE, 0x9C13, 0xC4CF, 0x9C0D, 0xC4D0, 0x9E79, - 0xC4D1, 0x9EB5, 0xC4D2, 0x9EE8, 0xC4D3, 0x9F2F, 0xC4D4, 0x9F5F, - 0xC4D5, 0x9F63, 0xC4D6, 0x9F61, 0xC4D7, 0x5137, 0xC4D8, 0x5138, - 0xC4D9, 0x56C1, 0xC4DA, 0x56C0, 0xC4DB, 0x56C2, 0xC4DC, 0x5914, - 0xC4DD, 0x5C6C, 0xC4DE, 0x5DCD, 0xC4DF, 0x61FC, 0xC4E0, 0x61FE, - 0xC4E1, 0x651D, 0xC4E2, 0x651C, 0xC4E3, 0x6595, 0xC4E4, 0x66E9, - 0xC4E5, 0x6AFB, 0xC4E6, 0x6B04, 0xC4E7, 0x6AFA, 0xC4E8, 0x6BB2, - 0xC4E9, 0x704C, 0xC4EA, 0x721B, 0xC4EB, 0x72A7, 0xC4EC, 0x74D6, - 0xC4ED, 0x74D4, 0xC4EE, 0x7669, 0xC4EF, 0x77D3, 0xC4F0, 0x7C50, - 0xC4F1, 0x7E8F, 0xC4F2, 0x7E8C, 0xC4F3, 0x7FBC, 0xC4F4, 0x8617, - 0xC4F5, 0x862D, 0xC4F6, 0x861A, 0xC4F7, 0x8823, 0xC4F8, 0x8822, - 0xC4F9, 0x8821, 0xC4FA, 0x881F, 0xC4FB, 0x896A, 0xC4FC, 0x896C, - 0xC4FD, 0x89BD, 0xC4FE, 0x8B74, 0xC540, 0x8B77, 0xC541, 0x8B7D, - 0xC542, 0x8D13, 0xC543, 0x8E8A, 0xC544, 0x8E8D, 0xC545, 0x8E8B, - 0xC546, 0x8F5F, 0xC547, 0x8FAF, 0xC548, 0x91BA, 0xC549, 0x942E, - 0xC54A, 0x9433, 0xC54B, 0x9435, 0xC54C, 0x943A, 0xC54D, 0x9438, - 0xC54E, 0x9432, 0xC54F, 0x942B, 0xC550, 0x95E2, 0xC551, 0x9738, - 0xC552, 0x9739, 0xC553, 0x9732, 0xC554, 0x97FF, 0xC555, 0x9867, - 0xC556, 0x9865, 0xC557, 0x9957, 0xC558, 0x9A45, 0xC559, 0x9A43, - 0xC55A, 0x9A40, 0xC55B, 0x9A3E, 0xC55C, 0x9ACF, 0xC55D, 0x9B54, - 0xC55E, 0x9B51, 0xC55F, 0x9C2D, 0xC560, 0x9C25, 0xC561, 0x9DAF, - 0xC562, 0x9DB4, 0xC563, 0x9DC2, 0xC564, 0x9DB8, 0xC565, 0x9E9D, - 0xC566, 0x9EEF, 0xC567, 0x9F19, 0xC568, 0x9F5C, 0xC569, 0x9F66, - 0xC56A, 0x9F67, 0xC56B, 0x513C, 0xC56C, 0x513B, 0xC56D, 0x56C8, - 0xC56E, 0x56CA, 0xC56F, 0x56C9, 0xC570, 0x5B7F, 0xC571, 0x5DD4, - 0xC572, 0x5DD2, 0xC573, 0x5F4E, 0xC574, 0x61FF, 0xC575, 0x6524, - 0xC576, 0x6B0A, 0xC577, 0x6B61, 0xC578, 0x7051, 0xC579, 0x7058, - 0xC57A, 0x7380, 0xC57B, 0x74E4, 0xC57C, 0x758A, 0xC57D, 0x766E, - 0xC57E, 0x766C, 0xC5A1, 0x79B3, 0xC5A2, 0x7C60, 0xC5A3, 0x7C5F, - 0xC5A4, 0x807E, 0xC5A5, 0x807D, 0xC5A6, 0x81DF, 0xC5A7, 0x8972, - 0xC5A8, 0x896F, 0xC5A9, 0x89FC, 0xC5AA, 0x8B80, 0xC5AB, 0x8D16, - 0xC5AC, 0x8D17, 0xC5AD, 0x8E91, 0xC5AE, 0x8E93, 0xC5AF, 0x8F61, - 0xC5B0, 0x9148, 0xC5B1, 0x9444, 0xC5B2, 0x9451, 0xC5B3, 0x9452, - 0xC5B4, 0x973D, 0xC5B5, 0x973E, 0xC5B6, 0x97C3, 0xC5B7, 0x97C1, - 0xC5B8, 0x986B, 0xC5B9, 0x9955, 0xC5BA, 0x9A55, 0xC5BB, 0x9A4D, - 0xC5BC, 0x9AD2, 0xC5BD, 0x9B1A, 0xC5BE, 0x9C49, 0xC5BF, 0x9C31, - 0xC5C0, 0x9C3E, 0xC5C1, 0x9C3B, 0xC5C2, 0x9DD3, 0xC5C3, 0x9DD7, - 0xC5C4, 0x9F34, 0xC5C5, 0x9F6C, 0xC5C6, 0x9F6A, 0xC5C7, 0x9F94, - 0xC5C8, 0x56CC, 0xC5C9, 0x5DD6, 0xC5CA, 0x6200, 0xC5CB, 0x6523, - 0xC5CC, 0x652B, 0xC5CD, 0x652A, 0xC5CE, 0x66EC, 0xC5CF, 0x6B10, - 0xC5D0, 0x74DA, 0xC5D1, 0x7ACA, 0xC5D2, 0x7C64, 0xC5D3, 0x7C63, - 0xC5D4, 0x7C65, 0xC5D5, 0x7E93, 0xC5D6, 0x7E96, 0xC5D7, 0x7E94, - 0xC5D8, 0x81E2, 0xC5D9, 0x8638, 0xC5DA, 0x863F, 0xC5DB, 0x8831, - 0xC5DC, 0x8B8A, 0xC5DD, 0x9090, 0xC5DE, 0x908F, 0xC5DF, 0x9463, - 0xC5E0, 0x9460, 0xC5E1, 0x9464, 0xC5E2, 0x9768, 0xC5E3, 0x986F, - 0xC5E4, 0x995C, 0xC5E5, 0x9A5A, 0xC5E6, 0x9A5B, 0xC5E7, 0x9A57, - 0xC5E8, 0x9AD3, 0xC5E9, 0x9AD4, 0xC5EA, 0x9AD1, 0xC5EB, 0x9C54, - 0xC5EC, 0x9C57, 0xC5ED, 0x9C56, 0xC5EE, 0x9DE5, 0xC5EF, 0x9E9F, - 0xC5F0, 0x9EF4, 0xC5F1, 0x56D1, 0xC5F2, 0x58E9, 0xC5F3, 0x652C, - 0xC5F4, 0x705E, 0xC5F5, 0x7671, 0xC5F6, 0x7672, 0xC5F7, 0x77D7, - 0xC5F8, 0x7F50, 0xC5F9, 0x7F88, 0xC5FA, 0x8836, 0xC5FB, 0x8839, - 0xC5FC, 0x8862, 0xC5FD, 0x8B93, 0xC5FE, 0x8B92, 0xC640, 0x8B96, - 0xC641, 0x8277, 0xC642, 0x8D1B, 0xC643, 0x91C0, 0xC644, 0x946A, - 0xC645, 0x9742, 0xC646, 0x9748, 0xC647, 0x9744, 0xC648, 0x97C6, - 0xC649, 0x9870, 0xC64A, 0x9A5F, 0xC64B, 0x9B22, 0xC64C, 0x9B58, - 0xC64D, 0x9C5F, 0xC64E, 0x9DF9, 0xC64F, 0x9DFA, 0xC650, 0x9E7C, - 0xC651, 0x9E7D, 0xC652, 0x9F07, 0xC653, 0x9F77, 0xC654, 0x9F72, - 0xC655, 0x5EF3, 0xC656, 0x6B16, 0xC657, 0x7063, 0xC658, 0x7C6C, - 0xC659, 0x7C6E, 0xC65A, 0x883B, 0xC65B, 0x89C0, 0xC65C, 0x8EA1, - 0xC65D, 0x91C1, 0xC65E, 0x9472, 0xC65F, 0x9470, 0xC660, 0x9871, - 0xC661, 0x995E, 0xC662, 0x9AD6, 0xC663, 0x9B23, 0xC664, 0x9ECC, - 0xC665, 0x7064, 0xC666, 0x77DA, 0xC667, 0x8B9A, 0xC668, 0x9477, - 0xC669, 0x97C9, 0xC66A, 0x9A62, 0xC66B, 0x9A65, 0xC66C, 0x7E9C, - 0xC66D, 0x8B9C, 0xC66E, 0x8EAA, 0xC66F, 0x91C5, 0xC670, 0x947D, - 0xC671, 0x947E, 0xC672, 0x947C, 0xC673, 0x9C77, 0xC674, 0x9C78, - 0xC675, 0x9EF7, 0xC676, 0x8C54, 0xC677, 0x947F, 0xC678, 0x9E1A, - 0xC679, 0x7228, 0xC67A, 0x9A6A, 0xC67B, 0x9B31, 0xC67C, 0x9E1B, - 0xC67D, 0x9E1E, 0xC67E, 0x7C72, 0xC940, 0x4E42, 0xC941, 0x4E5C, - 0xC942, 0x51F5, 0xC943, 0x531A, 0xC944, 0x5382, 0xC945, 0x4E07, - 0xC946, 0x4E0C, 0xC947, 0x4E47, 0xC948, 0x4E8D, 0xC949, 0x56D7, - 0xC94A, 0xFA0C, 0xC94B, 0x5C6E, 0xC94C, 0x5F73, 0xC94D, 0x4E0F, - 0xC94E, 0x5187, 0xC94F, 0x4E0E, 0xC950, 0x4E2E, 0xC951, 0x4E93, - 0xC952, 0x4EC2, 0xC953, 0x4EC9, 0xC954, 0x4EC8, 0xC955, 0x5198, - 0xC956, 0x52FC, 0xC957, 0x536C, 0xC958, 0x53B9, 0xC959, 0x5720, - 0xC95A, 0x5903, 0xC95B, 0x592C, 0xC95C, 0x5C10, 0xC95D, 0x5DFF, - 0xC95E, 0x65E1, 0xC95F, 0x6BB3, 0xC960, 0x6BCC, 0xC961, 0x6C14, - 0xC962, 0x723F, 0xC963, 0x4E31, 0xC964, 0x4E3C, 0xC965, 0x4EE8, - 0xC966, 0x4EDC, 0xC967, 0x4EE9, 0xC968, 0x4EE1, 0xC969, 0x4EDD, - 0xC96A, 0x4EDA, 0xC96B, 0x520C, 0xC96C, 0x531C, 0xC96D, 0x534C, - 0xC96E, 0x5722, 0xC96F, 0x5723, 0xC970, 0x5917, 0xC971, 0x592F, - 0xC972, 0x5B81, 0xC973, 0x5B84, 0xC974, 0x5C12, 0xC975, 0x5C3B, - 0xC976, 0x5C74, 0xC977, 0x5C73, 0xC978, 0x5E04, 0xC979, 0x5E80, - 0xC97A, 0x5E82, 0xC97B, 0x5FC9, 0xC97C, 0x6209, 0xC97D, 0x6250, - 0xC97E, 0x6C15, 0xC9A1, 0x6C36, 0xC9A2, 0x6C43, 0xC9A3, 0x6C3F, - 0xC9A4, 0x6C3B, 0xC9A5, 0x72AE, 0xC9A6, 0x72B0, 0xC9A7, 0x738A, - 0xC9A8, 0x79B8, 0xC9A9, 0x808A, 0xC9AA, 0x961E, 0xC9AB, 0x4F0E, - 0xC9AC, 0x4F18, 0xC9AD, 0x4F2C, 0xC9AE, 0x4EF5, 0xC9AF, 0x4F14, - 0xC9B0, 0x4EF1, 0xC9B1, 0x4F00, 0xC9B2, 0x4EF7, 0xC9B3, 0x4F08, - 0xC9B4, 0x4F1D, 0xC9B5, 0x4F02, 0xC9B6, 0x4F05, 0xC9B7, 0x4F22, - 0xC9B8, 0x4F13, 0xC9B9, 0x4F04, 0xC9BA, 0x4EF4, 0xC9BB, 0x4F12, - 0xC9BC, 0x51B1, 0xC9BD, 0x5213, 0xC9BE, 0x5209, 0xC9BF, 0x5210, - 0xC9C0, 0x52A6, 0xC9C1, 0x5322, 0xC9C2, 0x531F, 0xC9C3, 0x534D, - 0xC9C4, 0x538A, 0xC9C5, 0x5407, 0xC9C6, 0x56E1, 0xC9C7, 0x56DF, - 0xC9C8, 0x572E, 0xC9C9, 0x572A, 0xC9CA, 0x5734, 0xC9CB, 0x593C, - 0xC9CC, 0x5980, 0xC9CD, 0x597C, 0xC9CE, 0x5985, 0xC9CF, 0x597B, - 0xC9D0, 0x597E, 0xC9D1, 0x5977, 0xC9D2, 0x597F, 0xC9D3, 0x5B56, - 0xC9D4, 0x5C15, 0xC9D5, 0x5C25, 0xC9D6, 0x5C7C, 0xC9D7, 0x5C7A, - 0xC9D8, 0x5C7B, 0xC9D9, 0x5C7E, 0xC9DA, 0x5DDF, 0xC9DB, 0x5E75, - 0xC9DC, 0x5E84, 0xC9DD, 0x5F02, 0xC9DE, 0x5F1A, 0xC9DF, 0x5F74, - 0xC9E0, 0x5FD5, 0xC9E1, 0x5FD4, 0xC9E2, 0x5FCF, 0xC9E3, 0x625C, - 0xC9E4, 0x625E, 0xC9E5, 0x6264, 0xC9E6, 0x6261, 0xC9E7, 0x6266, - 0xC9E8, 0x6262, 0xC9E9, 0x6259, 0xC9EA, 0x6260, 0xC9EB, 0x625A, - 0xC9EC, 0x6265, 0xC9ED, 0x65EF, 0xC9EE, 0x65EE, 0xC9EF, 0x673E, - 0xC9F0, 0x6739, 0xC9F1, 0x6738, 0xC9F2, 0x673B, 0xC9F3, 0x673A, - 0xC9F4, 0x673F, 0xC9F5, 0x673C, 0xC9F6, 0x6733, 0xC9F7, 0x6C18, - 0xC9F8, 0x6C46, 0xC9F9, 0x6C52, 0xC9FA, 0x6C5C, 0xC9FB, 0x6C4F, - 0xC9FC, 0x6C4A, 0xC9FD, 0x6C54, 0xC9FE, 0x6C4B, 0xCA40, 0x6C4C, - 0xCA41, 0x7071, 0xCA42, 0x725E, 0xCA43, 0x72B4, 0xCA44, 0x72B5, - 0xCA45, 0x738E, 0xCA46, 0x752A, 0xCA47, 0x767F, 0xCA48, 0x7A75, - 0xCA49, 0x7F51, 0xCA4A, 0x8278, 0xCA4B, 0x827C, 0xCA4C, 0x8280, - 0xCA4D, 0x827D, 0xCA4E, 0x827F, 0xCA4F, 0x864D, 0xCA50, 0x897E, - 0xCA51, 0x9099, 0xCA52, 0x9097, 0xCA53, 0x9098, 0xCA54, 0x909B, - 0xCA55, 0x9094, 0xCA56, 0x9622, 0xCA57, 0x9624, 0xCA58, 0x9620, - 0xCA59, 0x9623, 0xCA5A, 0x4F56, 0xCA5B, 0x4F3B, 0xCA5C, 0x4F62, - 0xCA5D, 0x4F49, 0xCA5E, 0x4F53, 0xCA5F, 0x4F64, 0xCA60, 0x4F3E, - 0xCA61, 0x4F67, 0xCA62, 0x4F52, 0xCA63, 0x4F5F, 0xCA64, 0x4F41, - 0xCA65, 0x4F58, 0xCA66, 0x4F2D, 0xCA67, 0x4F33, 0xCA68, 0x4F3F, - 0xCA69, 0x4F61, 0xCA6A, 0x518F, 0xCA6B, 0x51B9, 0xCA6C, 0x521C, - 0xCA6D, 0x521E, 0xCA6E, 0x5221, 0xCA6F, 0x52AD, 0xCA70, 0x52AE, - 0xCA71, 0x5309, 0xCA72, 0x5363, 0xCA73, 0x5372, 0xCA74, 0x538E, - 0xCA75, 0x538F, 0xCA76, 0x5430, 0xCA77, 0x5437, 0xCA78, 0x542A, - 0xCA79, 0x5454, 0xCA7A, 0x5445, 0xCA7B, 0x5419, 0xCA7C, 0x541C, - 0xCA7D, 0x5425, 0xCA7E, 0x5418, 0xCAA1, 0x543D, 0xCAA2, 0x544F, - 0xCAA3, 0x5441, 0xCAA4, 0x5428, 0xCAA5, 0x5424, 0xCAA6, 0x5447, - 0xCAA7, 0x56EE, 0xCAA8, 0x56E7, 0xCAA9, 0x56E5, 0xCAAA, 0x5741, - 0xCAAB, 0x5745, 0xCAAC, 0x574C, 0xCAAD, 0x5749, 0xCAAE, 0x574B, - 0xCAAF, 0x5752, 0xCAB0, 0x5906, 0xCAB1, 0x5940, 0xCAB2, 0x59A6, - 0xCAB3, 0x5998, 0xCAB4, 0x59A0, 0xCAB5, 0x5997, 0xCAB6, 0x598E, - 0xCAB7, 0x59A2, 0xCAB8, 0x5990, 0xCAB9, 0x598F, 0xCABA, 0x59A7, - 0xCABB, 0x59A1, 0xCABC, 0x5B8E, 0xCABD, 0x5B92, 0xCABE, 0x5C28, - 0xCABF, 0x5C2A, 0xCAC0, 0x5C8D, 0xCAC1, 0x5C8F, 0xCAC2, 0x5C88, - 0xCAC3, 0x5C8B, 0xCAC4, 0x5C89, 0xCAC5, 0x5C92, 0xCAC6, 0x5C8A, - 0xCAC7, 0x5C86, 0xCAC8, 0x5C93, 0xCAC9, 0x5C95, 0xCACA, 0x5DE0, - 0xCACB, 0x5E0A, 0xCACC, 0x5E0E, 0xCACD, 0x5E8B, 0xCACE, 0x5E89, - 0xCACF, 0x5E8C, 0xCAD0, 0x5E88, 0xCAD1, 0x5E8D, 0xCAD2, 0x5F05, - 0xCAD3, 0x5F1D, 0xCAD4, 0x5F78, 0xCAD5, 0x5F76, 0xCAD6, 0x5FD2, - 0xCAD7, 0x5FD1, 0xCAD8, 0x5FD0, 0xCAD9, 0x5FED, 0xCADA, 0x5FE8, - 0xCADB, 0x5FEE, 0xCADC, 0x5FF3, 0xCADD, 0x5FE1, 0xCADE, 0x5FE4, - 0xCADF, 0x5FE3, 0xCAE0, 0x5FFA, 0xCAE1, 0x5FEF, 0xCAE2, 0x5FF7, - 0xCAE3, 0x5FFB, 0xCAE4, 0x6000, 0xCAE5, 0x5FF4, 0xCAE6, 0x623A, - 0xCAE7, 0x6283, 0xCAE8, 0x628C, 0xCAE9, 0x628E, 0xCAEA, 0x628F, - 0xCAEB, 0x6294, 0xCAEC, 0x6287, 0xCAED, 0x6271, 0xCAEE, 0x627B, - 0xCAEF, 0x627A, 0xCAF0, 0x6270, 0xCAF1, 0x6281, 0xCAF2, 0x6288, - 0xCAF3, 0x6277, 0xCAF4, 0x627D, 0xCAF5, 0x6272, 0xCAF6, 0x6274, - 0xCAF7, 0x6537, 0xCAF8, 0x65F0, 0xCAF9, 0x65F4, 0xCAFA, 0x65F3, - 0xCAFB, 0x65F2, 0xCAFC, 0x65F5, 0xCAFD, 0x6745, 0xCAFE, 0x6747, - 0xCB40, 0x6759, 0xCB41, 0x6755, 0xCB42, 0x674C, 0xCB43, 0x6748, - 0xCB44, 0x675D, 0xCB45, 0x674D, 0xCB46, 0x675A, 0xCB47, 0x674B, - 0xCB48, 0x6BD0, 0xCB49, 0x6C19, 0xCB4A, 0x6C1A, 0xCB4B, 0x6C78, - 0xCB4C, 0x6C67, 0xCB4D, 0x6C6B, 0xCB4E, 0x6C84, 0xCB4F, 0x6C8B, - 0xCB50, 0x6C8F, 0xCB51, 0x6C71, 0xCB52, 0x6C6F, 0xCB53, 0x6C69, - 0xCB54, 0x6C9A, 0xCB55, 0x6C6D, 0xCB56, 0x6C87, 0xCB57, 0x6C95, - 0xCB58, 0x6C9C, 0xCB59, 0x6C66, 0xCB5A, 0x6C73, 0xCB5B, 0x6C65, - 0xCB5C, 0x6C7B, 0xCB5D, 0x6C8E, 0xCB5E, 0x7074, 0xCB5F, 0x707A, - 0xCB60, 0x7263, 0xCB61, 0x72BF, 0xCB62, 0x72BD, 0xCB63, 0x72C3, - 0xCB64, 0x72C6, 0xCB65, 0x72C1, 0xCB66, 0x72BA, 0xCB67, 0x72C5, - 0xCB68, 0x7395, 0xCB69, 0x7397, 0xCB6A, 0x7393, 0xCB6B, 0x7394, - 0xCB6C, 0x7392, 0xCB6D, 0x753A, 0xCB6E, 0x7539, 0xCB6F, 0x7594, - 0xCB70, 0x7595, 0xCB71, 0x7681, 0xCB72, 0x793D, 0xCB73, 0x8034, - 0xCB74, 0x8095, 0xCB75, 0x8099, 0xCB76, 0x8090, 0xCB77, 0x8092, - 0xCB78, 0x809C, 0xCB79, 0x8290, 0xCB7A, 0x828F, 0xCB7B, 0x8285, - 0xCB7C, 0x828E, 0xCB7D, 0x8291, 0xCB7E, 0x8293, 0xCBA1, 0x828A, - 0xCBA2, 0x8283, 0xCBA3, 0x8284, 0xCBA4, 0x8C78, 0xCBA5, 0x8FC9, - 0xCBA6, 0x8FBF, 0xCBA7, 0x909F, 0xCBA8, 0x90A1, 0xCBA9, 0x90A5, - 0xCBAA, 0x909E, 0xCBAB, 0x90A7, 0xCBAC, 0x90A0, 0xCBAD, 0x9630, - 0xCBAE, 0x9628, 0xCBAF, 0x962F, 0xCBB0, 0x962D, 0xCBB1, 0x4E33, - 0xCBB2, 0x4F98, 0xCBB3, 0x4F7C, 0xCBB4, 0x4F85, 0xCBB5, 0x4F7D, - 0xCBB6, 0x4F80, 0xCBB7, 0x4F87, 0xCBB8, 0x4F76, 0xCBB9, 0x4F74, - 0xCBBA, 0x4F89, 0xCBBB, 0x4F84, 0xCBBC, 0x4F77, 0xCBBD, 0x4F4C, - 0xCBBE, 0x4F97, 0xCBBF, 0x4F6A, 0xCBC0, 0x4F9A, 0xCBC1, 0x4F79, - 0xCBC2, 0x4F81, 0xCBC3, 0x4F78, 0xCBC4, 0x4F90, 0xCBC5, 0x4F9C, - 0xCBC6, 0x4F94, 0xCBC7, 0x4F9E, 0xCBC8, 0x4F92, 0xCBC9, 0x4F82, - 0xCBCA, 0x4F95, 0xCBCB, 0x4F6B, 0xCBCC, 0x4F6E, 0xCBCD, 0x519E, - 0xCBCE, 0x51BC, 0xCBCF, 0x51BE, 0xCBD0, 0x5235, 0xCBD1, 0x5232, - 0xCBD2, 0x5233, 0xCBD3, 0x5246, 0xCBD4, 0x5231, 0xCBD5, 0x52BC, - 0xCBD6, 0x530A, 0xCBD7, 0x530B, 0xCBD8, 0x533C, 0xCBD9, 0x5392, - 0xCBDA, 0x5394, 0xCBDB, 0x5487, 0xCBDC, 0x547F, 0xCBDD, 0x5481, - 0xCBDE, 0x5491, 0xCBDF, 0x5482, 0xCBE0, 0x5488, 0xCBE1, 0x546B, - 0xCBE2, 0x547A, 0xCBE3, 0x547E, 0xCBE4, 0x5465, 0xCBE5, 0x546C, - 0xCBE6, 0x5474, 0xCBE7, 0x5466, 0xCBE8, 0x548D, 0xCBE9, 0x546F, - 0xCBEA, 0x5461, 0xCBEB, 0x5460, 0xCBEC, 0x5498, 0xCBED, 0x5463, - 0xCBEE, 0x5467, 0xCBEF, 0x5464, 0xCBF0, 0x56F7, 0xCBF1, 0x56F9, - 0xCBF2, 0x576F, 0xCBF3, 0x5772, 0xCBF4, 0x576D, 0xCBF5, 0x576B, - 0xCBF6, 0x5771, 0xCBF7, 0x5770, 0xCBF8, 0x5776, 0xCBF9, 0x5780, - 0xCBFA, 0x5775, 0xCBFB, 0x577B, 0xCBFC, 0x5773, 0xCBFD, 0x5774, - 0xCBFE, 0x5762, 0xCC40, 0x5768, 0xCC41, 0x577D, 0xCC42, 0x590C, - 0xCC43, 0x5945, 0xCC44, 0x59B5, 0xCC45, 0x59BA, 0xCC46, 0x59CF, - 0xCC47, 0x59CE, 0xCC48, 0x59B2, 0xCC49, 0x59CC, 0xCC4A, 0x59C1, - 0xCC4B, 0x59B6, 0xCC4C, 0x59BC, 0xCC4D, 0x59C3, 0xCC4E, 0x59D6, - 0xCC4F, 0x59B1, 0xCC50, 0x59BD, 0xCC51, 0x59C0, 0xCC52, 0x59C8, - 0xCC53, 0x59B4, 0xCC54, 0x59C7, 0xCC55, 0x5B62, 0xCC56, 0x5B65, - 0xCC57, 0x5B93, 0xCC58, 0x5B95, 0xCC59, 0x5C44, 0xCC5A, 0x5C47, - 0xCC5B, 0x5CAE, 0xCC5C, 0x5CA4, 0xCC5D, 0x5CA0, 0xCC5E, 0x5CB5, - 0xCC5F, 0x5CAF, 0xCC60, 0x5CA8, 0xCC61, 0x5CAC, 0xCC62, 0x5C9F, - 0xCC63, 0x5CA3, 0xCC64, 0x5CAD, 0xCC65, 0x5CA2, 0xCC66, 0x5CAA, - 0xCC67, 0x5CA7, 0xCC68, 0x5C9D, 0xCC69, 0x5CA5, 0xCC6A, 0x5CB6, - 0xCC6B, 0x5CB0, 0xCC6C, 0x5CA6, 0xCC6D, 0x5E17, 0xCC6E, 0x5E14, - 0xCC6F, 0x5E19, 0xCC70, 0x5F28, 0xCC71, 0x5F22, 0xCC72, 0x5F23, - 0xCC73, 0x5F24, 0xCC74, 0x5F54, 0xCC75, 0x5F82, 0xCC76, 0x5F7E, - 0xCC77, 0x5F7D, 0xCC78, 0x5FDE, 0xCC79, 0x5FE5, 0xCC7A, 0x602D, - 0xCC7B, 0x6026, 0xCC7C, 0x6019, 0xCC7D, 0x6032, 0xCC7E, 0x600B, - 0xCCA1, 0x6034, 0xCCA2, 0x600A, 0xCCA3, 0x6017, 0xCCA4, 0x6033, - 0xCCA5, 0x601A, 0xCCA6, 0x601E, 0xCCA7, 0x602C, 0xCCA8, 0x6022, - 0xCCA9, 0x600D, 0xCCAA, 0x6010, 0xCCAB, 0x602E, 0xCCAC, 0x6013, - 0xCCAD, 0x6011, 0xCCAE, 0x600C, 0xCCAF, 0x6009, 0xCCB0, 0x601C, - 0xCCB1, 0x6214, 0xCCB2, 0x623D, 0xCCB3, 0x62AD, 0xCCB4, 0x62B4, - 0xCCB5, 0x62D1, 0xCCB6, 0x62BE, 0xCCB7, 0x62AA, 0xCCB8, 0x62B6, - 0xCCB9, 0x62CA, 0xCCBA, 0x62AE, 0xCCBB, 0x62B3, 0xCCBC, 0x62AF, - 0xCCBD, 0x62BB, 0xCCBE, 0x62A9, 0xCCBF, 0x62B0, 0xCCC0, 0x62B8, - 0xCCC1, 0x653D, 0xCCC2, 0x65A8, 0xCCC3, 0x65BB, 0xCCC4, 0x6609, - 0xCCC5, 0x65FC, 0xCCC6, 0x6604, 0xCCC7, 0x6612, 0xCCC8, 0x6608, - 0xCCC9, 0x65FB, 0xCCCA, 0x6603, 0xCCCB, 0x660B, 0xCCCC, 0x660D, - 0xCCCD, 0x6605, 0xCCCE, 0x65FD, 0xCCCF, 0x6611, 0xCCD0, 0x6610, - 0xCCD1, 0x66F6, 0xCCD2, 0x670A, 0xCCD3, 0x6785, 0xCCD4, 0x676C, - 0xCCD5, 0x678E, 0xCCD6, 0x6792, 0xCCD7, 0x6776, 0xCCD8, 0x677B, - 0xCCD9, 0x6798, 0xCCDA, 0x6786, 0xCCDB, 0x6784, 0xCCDC, 0x6774, - 0xCCDD, 0x678D, 0xCCDE, 0x678C, 0xCCDF, 0x677A, 0xCCE0, 0x679F, - 0xCCE1, 0x6791, 0xCCE2, 0x6799, 0xCCE3, 0x6783, 0xCCE4, 0x677D, - 0xCCE5, 0x6781, 0xCCE6, 0x6778, 0xCCE7, 0x6779, 0xCCE8, 0x6794, - 0xCCE9, 0x6B25, 0xCCEA, 0x6B80, 0xCCEB, 0x6B7E, 0xCCEC, 0x6BDE, - 0xCCED, 0x6C1D, 0xCCEE, 0x6C93, 0xCCEF, 0x6CEC, 0xCCF0, 0x6CEB, - 0xCCF1, 0x6CEE, 0xCCF2, 0x6CD9, 0xCCF3, 0x6CB6, 0xCCF4, 0x6CD4, - 0xCCF5, 0x6CAD, 0xCCF6, 0x6CE7, 0xCCF7, 0x6CB7, 0xCCF8, 0x6CD0, - 0xCCF9, 0x6CC2, 0xCCFA, 0x6CBA, 0xCCFB, 0x6CC3, 0xCCFC, 0x6CC6, - 0xCCFD, 0x6CED, 0xCCFE, 0x6CF2, 0xCD40, 0x6CD2, 0xCD41, 0x6CDD, - 0xCD42, 0x6CB4, 0xCD43, 0x6C8A, 0xCD44, 0x6C9D, 0xCD45, 0x6C80, - 0xCD46, 0x6CDE, 0xCD47, 0x6CC0, 0xCD48, 0x6D30, 0xCD49, 0x6CCD, - 0xCD4A, 0x6CC7, 0xCD4B, 0x6CB0, 0xCD4C, 0x6CF9, 0xCD4D, 0x6CCF, - 0xCD4E, 0x6CE9, 0xCD4F, 0x6CD1, 0xCD50, 0x7094, 0xCD51, 0x7098, - 0xCD52, 0x7085, 0xCD53, 0x7093, 0xCD54, 0x7086, 0xCD55, 0x7084, - 0xCD56, 0x7091, 0xCD57, 0x7096, 0xCD58, 0x7082, 0xCD59, 0x709A, - 0xCD5A, 0x7083, 0xCD5B, 0x726A, 0xCD5C, 0x72D6, 0xCD5D, 0x72CB, - 0xCD5E, 0x72D8, 0xCD5F, 0x72C9, 0xCD60, 0x72DC, 0xCD61, 0x72D2, - 0xCD62, 0x72D4, 0xCD63, 0x72DA, 0xCD64, 0x72CC, 0xCD65, 0x72D1, - 0xCD66, 0x73A4, 0xCD67, 0x73A1, 0xCD68, 0x73AD, 0xCD69, 0x73A6, - 0xCD6A, 0x73A2, 0xCD6B, 0x73A0, 0xCD6C, 0x73AC, 0xCD6D, 0x739D, - 0xCD6E, 0x74DD, 0xCD6F, 0x74E8, 0xCD70, 0x753F, 0xCD71, 0x7540, - 0xCD72, 0x753E, 0xCD73, 0x758C, 0xCD74, 0x7598, 0xCD75, 0x76AF, - 0xCD76, 0x76F3, 0xCD77, 0x76F1, 0xCD78, 0x76F0, 0xCD79, 0x76F5, - 0xCD7A, 0x77F8, 0xCD7B, 0x77FC, 0xCD7C, 0x77F9, 0xCD7D, 0x77FB, - 0xCD7E, 0x77FA, 0xCDA1, 0x77F7, 0xCDA2, 0x7942, 0xCDA3, 0x793F, - 0xCDA4, 0x79C5, 0xCDA5, 0x7A78, 0xCDA6, 0x7A7B, 0xCDA7, 0x7AFB, - 0xCDA8, 0x7C75, 0xCDA9, 0x7CFD, 0xCDAA, 0x8035, 0xCDAB, 0x808F, - 0xCDAC, 0x80AE, 0xCDAD, 0x80A3, 0xCDAE, 0x80B8, 0xCDAF, 0x80B5, - 0xCDB0, 0x80AD, 0xCDB1, 0x8220, 0xCDB2, 0x82A0, 0xCDB3, 0x82C0, - 0xCDB4, 0x82AB, 0xCDB5, 0x829A, 0xCDB6, 0x8298, 0xCDB7, 0x829B, - 0xCDB8, 0x82B5, 0xCDB9, 0x82A7, 0xCDBA, 0x82AE, 0xCDBB, 0x82BC, - 0xCDBC, 0x829E, 0xCDBD, 0x82BA, 0xCDBE, 0x82B4, 0xCDBF, 0x82A8, - 0xCDC0, 0x82A1, 0xCDC1, 0x82A9, 0xCDC2, 0x82C2, 0xCDC3, 0x82A4, - 0xCDC4, 0x82C3, 0xCDC5, 0x82B6, 0xCDC6, 0x82A2, 0xCDC7, 0x8670, - 0xCDC8, 0x866F, 0xCDC9, 0x866D, 0xCDCA, 0x866E, 0xCDCB, 0x8C56, - 0xCDCC, 0x8FD2, 0xCDCD, 0x8FCB, 0xCDCE, 0x8FD3, 0xCDCF, 0x8FCD, - 0xCDD0, 0x8FD6, 0xCDD1, 0x8FD5, 0xCDD2, 0x8FD7, 0xCDD3, 0x90B2, - 0xCDD4, 0x90B4, 0xCDD5, 0x90AF, 0xCDD6, 0x90B3, 0xCDD7, 0x90B0, - 0xCDD8, 0x9639, 0xCDD9, 0x963D, 0xCDDA, 0x963C, 0xCDDB, 0x963A, - 0xCDDC, 0x9643, 0xCDDD, 0x4FCD, 0xCDDE, 0x4FC5, 0xCDDF, 0x4FD3, - 0xCDE0, 0x4FB2, 0xCDE1, 0x4FC9, 0xCDE2, 0x4FCB, 0xCDE3, 0x4FC1, - 0xCDE4, 0x4FD4, 0xCDE5, 0x4FDC, 0xCDE6, 0x4FD9, 0xCDE7, 0x4FBB, - 0xCDE8, 0x4FB3, 0xCDE9, 0x4FDB, 0xCDEA, 0x4FC7, 0xCDEB, 0x4FD6, - 0xCDEC, 0x4FBA, 0xCDED, 0x4FC0, 0xCDEE, 0x4FB9, 0xCDEF, 0x4FEC, - 0xCDF0, 0x5244, 0xCDF1, 0x5249, 0xCDF2, 0x52C0, 0xCDF3, 0x52C2, - 0xCDF4, 0x533D, 0xCDF5, 0x537C, 0xCDF6, 0x5397, 0xCDF7, 0x5396, - 0xCDF8, 0x5399, 0xCDF9, 0x5398, 0xCDFA, 0x54BA, 0xCDFB, 0x54A1, - 0xCDFC, 0x54AD, 0xCDFD, 0x54A5, 0xCDFE, 0x54CF, 0xCE40, 0x54C3, - 0xCE41, 0x830D, 0xCE42, 0x54B7, 0xCE43, 0x54AE, 0xCE44, 0x54D6, - 0xCE45, 0x54B6, 0xCE46, 0x54C5, 0xCE47, 0x54C6, 0xCE48, 0x54A0, - 0xCE49, 0x5470, 0xCE4A, 0x54BC, 0xCE4B, 0x54A2, 0xCE4C, 0x54BE, - 0xCE4D, 0x5472, 0xCE4E, 0x54DE, 0xCE4F, 0x54B0, 0xCE50, 0x57B5, - 0xCE51, 0x579E, 0xCE52, 0x579F, 0xCE53, 0x57A4, 0xCE54, 0x578C, - 0xCE55, 0x5797, 0xCE56, 0x579D, 0xCE57, 0x579B, 0xCE58, 0x5794, - 0xCE59, 0x5798, 0xCE5A, 0x578F, 0xCE5B, 0x5799, 0xCE5C, 0x57A5, - 0xCE5D, 0x579A, 0xCE5E, 0x5795, 0xCE5F, 0x58F4, 0xCE60, 0x590D, - 0xCE61, 0x5953, 0xCE62, 0x59E1, 0xCE63, 0x59DE, 0xCE64, 0x59EE, - 0xCE65, 0x5A00, 0xCE66, 0x59F1, 0xCE67, 0x59DD, 0xCE68, 0x59FA, - 0xCE69, 0x59FD, 0xCE6A, 0x59FC, 0xCE6B, 0x59F6, 0xCE6C, 0x59E4, - 0xCE6D, 0x59F2, 0xCE6E, 0x59F7, 0xCE6F, 0x59DB, 0xCE70, 0x59E9, - 0xCE71, 0x59F3, 0xCE72, 0x59F5, 0xCE73, 0x59E0, 0xCE74, 0x59FE, - 0xCE75, 0x59F4, 0xCE76, 0x59ED, 0xCE77, 0x5BA8, 0xCE78, 0x5C4C, - 0xCE79, 0x5CD0, 0xCE7A, 0x5CD8, 0xCE7B, 0x5CCC, 0xCE7C, 0x5CD7, - 0xCE7D, 0x5CCB, 0xCE7E, 0x5CDB, 0xCEA1, 0x5CDE, 0xCEA2, 0x5CDA, - 0xCEA3, 0x5CC9, 0xCEA4, 0x5CC7, 0xCEA5, 0x5CCA, 0xCEA6, 0x5CD6, - 0xCEA7, 0x5CD3, 0xCEA8, 0x5CD4, 0xCEA9, 0x5CCF, 0xCEAA, 0x5CC8, - 0xCEAB, 0x5CC6, 0xCEAC, 0x5CCE, 0xCEAD, 0x5CDF, 0xCEAE, 0x5CF8, - 0xCEAF, 0x5DF9, 0xCEB0, 0x5E21, 0xCEB1, 0x5E22, 0xCEB2, 0x5E23, - 0xCEB3, 0x5E20, 0xCEB4, 0x5E24, 0xCEB5, 0x5EB0, 0xCEB6, 0x5EA4, - 0xCEB7, 0x5EA2, 0xCEB8, 0x5E9B, 0xCEB9, 0x5EA3, 0xCEBA, 0x5EA5, - 0xCEBB, 0x5F07, 0xCEBC, 0x5F2E, 0xCEBD, 0x5F56, 0xCEBE, 0x5F86, - 0xCEBF, 0x6037, 0xCEC0, 0x6039, 0xCEC1, 0x6054, 0xCEC2, 0x6072, - 0xCEC3, 0x605E, 0xCEC4, 0x6045, 0xCEC5, 0x6053, 0xCEC6, 0x6047, - 0xCEC7, 0x6049, 0xCEC8, 0x605B, 0xCEC9, 0x604C, 0xCECA, 0x6040, - 0xCECB, 0x6042, 0xCECC, 0x605F, 0xCECD, 0x6024, 0xCECE, 0x6044, - 0xCECF, 0x6058, 0xCED0, 0x6066, 0xCED1, 0x606E, 0xCED2, 0x6242, - 0xCED3, 0x6243, 0xCED4, 0x62CF, 0xCED5, 0x630D, 0xCED6, 0x630B, - 0xCED7, 0x62F5, 0xCED8, 0x630E, 0xCED9, 0x6303, 0xCEDA, 0x62EB, - 0xCEDB, 0x62F9, 0xCEDC, 0x630F, 0xCEDD, 0x630C, 0xCEDE, 0x62F8, - 0xCEDF, 0x62F6, 0xCEE0, 0x6300, 0xCEE1, 0x6313, 0xCEE2, 0x6314, - 0xCEE3, 0x62FA, 0xCEE4, 0x6315, 0xCEE5, 0x62FB, 0xCEE6, 0x62F0, - 0xCEE7, 0x6541, 0xCEE8, 0x6543, 0xCEE9, 0x65AA, 0xCEEA, 0x65BF, - 0xCEEB, 0x6636, 0xCEEC, 0x6621, 0xCEED, 0x6632, 0xCEEE, 0x6635, - 0xCEEF, 0x661C, 0xCEF0, 0x6626, 0xCEF1, 0x6622, 0xCEF2, 0x6633, - 0xCEF3, 0x662B, 0xCEF4, 0x663A, 0xCEF5, 0x661D, 0xCEF6, 0x6634, - 0xCEF7, 0x6639, 0xCEF8, 0x662E, 0xCEF9, 0x670F, 0xCEFA, 0x6710, - 0xCEFB, 0x67C1, 0xCEFC, 0x67F2, 0xCEFD, 0x67C8, 0xCEFE, 0x67BA, - 0xCF40, 0x67DC, 0xCF41, 0x67BB, 0xCF42, 0x67F8, 0xCF43, 0x67D8, - 0xCF44, 0x67C0, 0xCF45, 0x67B7, 0xCF46, 0x67C5, 0xCF47, 0x67EB, - 0xCF48, 0x67E4, 0xCF49, 0x67DF, 0xCF4A, 0x67B5, 0xCF4B, 0x67CD, - 0xCF4C, 0x67B3, 0xCF4D, 0x67F7, 0xCF4E, 0x67F6, 0xCF4F, 0x67EE, - 0xCF50, 0x67E3, 0xCF51, 0x67C2, 0xCF52, 0x67B9, 0xCF53, 0x67CE, - 0xCF54, 0x67E7, 0xCF55, 0x67F0, 0xCF56, 0x67B2, 0xCF57, 0x67FC, - 0xCF58, 0x67C6, 0xCF59, 0x67ED, 0xCF5A, 0x67CC, 0xCF5B, 0x67AE, - 0xCF5C, 0x67E6, 0xCF5D, 0x67DB, 0xCF5E, 0x67FA, 0xCF5F, 0x67C9, - 0xCF60, 0x67CA, 0xCF61, 0x67C3, 0xCF62, 0x67EA, 0xCF63, 0x67CB, - 0xCF64, 0x6B28, 0xCF65, 0x6B82, 0xCF66, 0x6B84, 0xCF67, 0x6BB6, - 0xCF68, 0x6BD6, 0xCF69, 0x6BD8, 0xCF6A, 0x6BE0, 0xCF6B, 0x6C20, - 0xCF6C, 0x6C21, 0xCF6D, 0x6D28, 0xCF6E, 0x6D34, 0xCF6F, 0x6D2D, - 0xCF70, 0x6D1F, 0xCF71, 0x6D3C, 0xCF72, 0x6D3F, 0xCF73, 0x6D12, - 0xCF74, 0x6D0A, 0xCF75, 0x6CDA, 0xCF76, 0x6D33, 0xCF77, 0x6D04, - 0xCF78, 0x6D19, 0xCF79, 0x6D3A, 0xCF7A, 0x6D1A, 0xCF7B, 0x6D11, - 0xCF7C, 0x6D00, 0xCF7D, 0x6D1D, 0xCF7E, 0x6D42, 0xCFA1, 0x6D01, - 0xCFA2, 0x6D18, 0xCFA3, 0x6D37, 0xCFA4, 0x6D03, 0xCFA5, 0x6D0F, - 0xCFA6, 0x6D40, 0xCFA7, 0x6D07, 0xCFA8, 0x6D20, 0xCFA9, 0x6D2C, - 0xCFAA, 0x6D08, 0xCFAB, 0x6D22, 0xCFAC, 0x6D09, 0xCFAD, 0x6D10, - 0xCFAE, 0x70B7, 0xCFAF, 0x709F, 0xCFB0, 0x70BE, 0xCFB1, 0x70B1, - 0xCFB2, 0x70B0, 0xCFB3, 0x70A1, 0xCFB4, 0x70B4, 0xCFB5, 0x70B5, - 0xCFB6, 0x70A9, 0xCFB7, 0x7241, 0xCFB8, 0x7249, 0xCFB9, 0x724A, - 0xCFBA, 0x726C, 0xCFBB, 0x7270, 0xCFBC, 0x7273, 0xCFBD, 0x726E, - 0xCFBE, 0x72CA, 0xCFBF, 0x72E4, 0xCFC0, 0x72E8, 0xCFC1, 0x72EB, - 0xCFC2, 0x72DF, 0xCFC3, 0x72EA, 0xCFC4, 0x72E6, 0xCFC5, 0x72E3, - 0xCFC6, 0x7385, 0xCFC7, 0x73CC, 0xCFC8, 0x73C2, 0xCFC9, 0x73C8, - 0xCFCA, 0x73C5, 0xCFCB, 0x73B9, 0xCFCC, 0x73B6, 0xCFCD, 0x73B5, - 0xCFCE, 0x73B4, 0xCFCF, 0x73EB, 0xCFD0, 0x73BF, 0xCFD1, 0x73C7, - 0xCFD2, 0x73BE, 0xCFD3, 0x73C3, 0xCFD4, 0x73C6, 0xCFD5, 0x73B8, - 0xCFD6, 0x73CB, 0xCFD7, 0x74EC, 0xCFD8, 0x74EE, 0xCFD9, 0x752E, - 0xCFDA, 0x7547, 0xCFDB, 0x7548, 0xCFDC, 0x75A7, 0xCFDD, 0x75AA, - 0xCFDE, 0x7679, 0xCFDF, 0x76C4, 0xCFE0, 0x7708, 0xCFE1, 0x7703, - 0xCFE2, 0x7704, 0xCFE3, 0x7705, 0xCFE4, 0x770A, 0xCFE5, 0x76F7, - 0xCFE6, 0x76FB, 0xCFE7, 0x76FA, 0xCFE8, 0x77E7, 0xCFE9, 0x77E8, - 0xCFEA, 0x7806, 0xCFEB, 0x7811, 0xCFEC, 0x7812, 0xCFED, 0x7805, - 0xCFEE, 0x7810, 0xCFEF, 0x780F, 0xCFF0, 0x780E, 0xCFF1, 0x7809, - 0xCFF2, 0x7803, 0xCFF3, 0x7813, 0xCFF4, 0x794A, 0xCFF5, 0x794C, - 0xCFF6, 0x794B, 0xCFF7, 0x7945, 0xCFF8, 0x7944, 0xCFF9, 0x79D5, - 0xCFFA, 0x79CD, 0xCFFB, 0x79CF, 0xCFFC, 0x79D6, 0xCFFD, 0x79CE, - 0xCFFE, 0x7A80, 0xD040, 0x7A7E, 0xD041, 0x7AD1, 0xD042, 0x7B00, - 0xD043, 0x7B01, 0xD044, 0x7C7A, 0xD045, 0x7C78, 0xD046, 0x7C79, - 0xD047, 0x7C7F, 0xD048, 0x7C80, 0xD049, 0x7C81, 0xD04A, 0x7D03, - 0xD04B, 0x7D08, 0xD04C, 0x7D01, 0xD04D, 0x7F58, 0xD04E, 0x7F91, - 0xD04F, 0x7F8D, 0xD050, 0x7FBE, 0xD051, 0x8007, 0xD052, 0x800E, - 0xD053, 0x800F, 0xD054, 0x8014, 0xD055, 0x8037, 0xD056, 0x80D8, - 0xD057, 0x80C7, 0xD058, 0x80E0, 0xD059, 0x80D1, 0xD05A, 0x80C8, - 0xD05B, 0x80C2, 0xD05C, 0x80D0, 0xD05D, 0x80C5, 0xD05E, 0x80E3, - 0xD05F, 0x80D9, 0xD060, 0x80DC, 0xD061, 0x80CA, 0xD062, 0x80D5, - 0xD063, 0x80C9, 0xD064, 0x80CF, 0xD065, 0x80D7, 0xD066, 0x80E6, - 0xD067, 0x80CD, 0xD068, 0x81FF, 0xD069, 0x8221, 0xD06A, 0x8294, - 0xD06B, 0x82D9, 0xD06C, 0x82FE, 0xD06D, 0x82F9, 0xD06E, 0x8307, - 0xD06F, 0x82E8, 0xD070, 0x8300, 0xD071, 0x82D5, 0xD072, 0x833A, - 0xD073, 0x82EB, 0xD074, 0x82D6, 0xD075, 0x82F4, 0xD076, 0x82EC, - 0xD077, 0x82E1, 0xD078, 0x82F2, 0xD079, 0x82F5, 0xD07A, 0x830C, - 0xD07B, 0x82FB, 0xD07C, 0x82F6, 0xD07D, 0x82F0, 0xD07E, 0x82EA, - 0xD0A1, 0x82E4, 0xD0A2, 0x82E0, 0xD0A3, 0x82FA, 0xD0A4, 0x82F3, - 0xD0A5, 0x82ED, 0xD0A6, 0x8677, 0xD0A7, 0x8674, 0xD0A8, 0x867C, - 0xD0A9, 0x8673, 0xD0AA, 0x8841, 0xD0AB, 0x884E, 0xD0AC, 0x8867, - 0xD0AD, 0x886A, 0xD0AE, 0x8869, 0xD0AF, 0x89D3, 0xD0B0, 0x8A04, - 0xD0B1, 0x8A07, 0xD0B2, 0x8D72, 0xD0B3, 0x8FE3, 0xD0B4, 0x8FE1, - 0xD0B5, 0x8FEE, 0xD0B6, 0x8FE0, 0xD0B7, 0x90F1, 0xD0B8, 0x90BD, - 0xD0B9, 0x90BF, 0xD0BA, 0x90D5, 0xD0BB, 0x90C5, 0xD0BC, 0x90BE, - 0xD0BD, 0x90C7, 0xD0BE, 0x90CB, 0xD0BF, 0x90C8, 0xD0C0, 0x91D4, - 0xD0C1, 0x91D3, 0xD0C2, 0x9654, 0xD0C3, 0x964F, 0xD0C4, 0x9651, - 0xD0C5, 0x9653, 0xD0C6, 0x964A, 0xD0C7, 0x964E, 0xD0C8, 0x501E, - 0xD0C9, 0x5005, 0xD0CA, 0x5007, 0xD0CB, 0x5013, 0xD0CC, 0x5022, - 0xD0CD, 0x5030, 0xD0CE, 0x501B, 0xD0CF, 0x4FF5, 0xD0D0, 0x4FF4, - 0xD0D1, 0x5033, 0xD0D2, 0x5037, 0xD0D3, 0x502C, 0xD0D4, 0x4FF6, - 0xD0D5, 0x4FF7, 0xD0D6, 0x5017, 0xD0D7, 0x501C, 0xD0D8, 0x5020, - 0xD0D9, 0x5027, 0xD0DA, 0x5035, 0xD0DB, 0x502F, 0xD0DC, 0x5031, - 0xD0DD, 0x500E, 0xD0DE, 0x515A, 0xD0DF, 0x5194, 0xD0E0, 0x5193, - 0xD0E1, 0x51CA, 0xD0E2, 0x51C4, 0xD0E3, 0x51C5, 0xD0E4, 0x51C8, - 0xD0E5, 0x51CE, 0xD0E6, 0x5261, 0xD0E7, 0x525A, 0xD0E8, 0x5252, - 0xD0E9, 0x525E, 0xD0EA, 0x525F, 0xD0EB, 0x5255, 0xD0EC, 0x5262, - 0xD0ED, 0x52CD, 0xD0EE, 0x530E, 0xD0EF, 0x539E, 0xD0F0, 0x5526, - 0xD0F1, 0x54E2, 0xD0F2, 0x5517, 0xD0F3, 0x5512, 0xD0F4, 0x54E7, - 0xD0F5, 0x54F3, 0xD0F6, 0x54E4, 0xD0F7, 0x551A, 0xD0F8, 0x54FF, - 0xD0F9, 0x5504, 0xD0FA, 0x5508, 0xD0FB, 0x54EB, 0xD0FC, 0x5511, - 0xD0FD, 0x5505, 0xD0FE, 0x54F1, 0xD140, 0x550A, 0xD141, 0x54FB, - 0xD142, 0x54F7, 0xD143, 0x54F8, 0xD144, 0x54E0, 0xD145, 0x550E, - 0xD146, 0x5503, 0xD147, 0x550B, 0xD148, 0x5701, 0xD149, 0x5702, - 0xD14A, 0x57CC, 0xD14B, 0x5832, 0xD14C, 0x57D5, 0xD14D, 0x57D2, - 0xD14E, 0x57BA, 0xD14F, 0x57C6, 0xD150, 0x57BD, 0xD151, 0x57BC, - 0xD152, 0x57B8, 0xD153, 0x57B6, 0xD154, 0x57BF, 0xD155, 0x57C7, - 0xD156, 0x57D0, 0xD157, 0x57B9, 0xD158, 0x57C1, 0xD159, 0x590E, - 0xD15A, 0x594A, 0xD15B, 0x5A19, 0xD15C, 0x5A16, 0xD15D, 0x5A2D, - 0xD15E, 0x5A2E, 0xD15F, 0x5A15, 0xD160, 0x5A0F, 0xD161, 0x5A17, - 0xD162, 0x5A0A, 0xD163, 0x5A1E, 0xD164, 0x5A33, 0xD165, 0x5B6C, - 0xD166, 0x5BA7, 0xD167, 0x5BAD, 0xD168, 0x5BAC, 0xD169, 0x5C03, - 0xD16A, 0x5C56, 0xD16B, 0x5C54, 0xD16C, 0x5CEC, 0xD16D, 0x5CFF, - 0xD16E, 0x5CEE, 0xD16F, 0x5CF1, 0xD170, 0x5CF7, 0xD171, 0x5D00, - 0xD172, 0x5CF9, 0xD173, 0x5E29, 0xD174, 0x5E28, 0xD175, 0x5EA8, - 0xD176, 0x5EAE, 0xD177, 0x5EAA, 0xD178, 0x5EAC, 0xD179, 0x5F33, - 0xD17A, 0x5F30, 0xD17B, 0x5F67, 0xD17C, 0x605D, 0xD17D, 0x605A, - 0xD17E, 0x6067, 0xD1A1, 0x6041, 0xD1A2, 0x60A2, 0xD1A3, 0x6088, - 0xD1A4, 0x6080, 0xD1A5, 0x6092, 0xD1A6, 0x6081, 0xD1A7, 0x609D, - 0xD1A8, 0x6083, 0xD1A9, 0x6095, 0xD1AA, 0x609B, 0xD1AB, 0x6097, - 0xD1AC, 0x6087, 0xD1AD, 0x609C, 0xD1AE, 0x608E, 0xD1AF, 0x6219, - 0xD1B0, 0x6246, 0xD1B1, 0x62F2, 0xD1B2, 0x6310, 0xD1B3, 0x6356, - 0xD1B4, 0x632C, 0xD1B5, 0x6344, 0xD1B6, 0x6345, 0xD1B7, 0x6336, - 0xD1B8, 0x6343, 0xD1B9, 0x63E4, 0xD1BA, 0x6339, 0xD1BB, 0x634B, - 0xD1BC, 0x634A, 0xD1BD, 0x633C, 0xD1BE, 0x6329, 0xD1BF, 0x6341, - 0xD1C0, 0x6334, 0xD1C1, 0x6358, 0xD1C2, 0x6354, 0xD1C3, 0x6359, - 0xD1C4, 0x632D, 0xD1C5, 0x6347, 0xD1C6, 0x6333, 0xD1C7, 0x635A, - 0xD1C8, 0x6351, 0xD1C9, 0x6338, 0xD1CA, 0x6357, 0xD1CB, 0x6340, - 0xD1CC, 0x6348, 0xD1CD, 0x654A, 0xD1CE, 0x6546, 0xD1CF, 0x65C6, - 0xD1D0, 0x65C3, 0xD1D1, 0x65C4, 0xD1D2, 0x65C2, 0xD1D3, 0x664A, - 0xD1D4, 0x665F, 0xD1D5, 0x6647, 0xD1D6, 0x6651, 0xD1D7, 0x6712, - 0xD1D8, 0x6713, 0xD1D9, 0x681F, 0xD1DA, 0x681A, 0xD1DB, 0x6849, - 0xD1DC, 0x6832, 0xD1DD, 0x6833, 0xD1DE, 0x683B, 0xD1DF, 0x684B, - 0xD1E0, 0x684F, 0xD1E1, 0x6816, 0xD1E2, 0x6831, 0xD1E3, 0x681C, - 0xD1E4, 0x6835, 0xD1E5, 0x682B, 0xD1E6, 0x682D, 0xD1E7, 0x682F, - 0xD1E8, 0x684E, 0xD1E9, 0x6844, 0xD1EA, 0x6834, 0xD1EB, 0x681D, - 0xD1EC, 0x6812, 0xD1ED, 0x6814, 0xD1EE, 0x6826, 0xD1EF, 0x6828, - 0xD1F0, 0x682E, 0xD1F1, 0x684D, 0xD1F2, 0x683A, 0xD1F3, 0x6825, - 0xD1F4, 0x6820, 0xD1F5, 0x6B2C, 0xD1F6, 0x6B2F, 0xD1F7, 0x6B2D, - 0xD1F8, 0x6B31, 0xD1F9, 0x6B34, 0xD1FA, 0x6B6D, 0xD1FB, 0x8082, - 0xD1FC, 0x6B88, 0xD1FD, 0x6BE6, 0xD1FE, 0x6BE4, 0xD240, 0x6BE8, - 0xD241, 0x6BE3, 0xD242, 0x6BE2, 0xD243, 0x6BE7, 0xD244, 0x6C25, - 0xD245, 0x6D7A, 0xD246, 0x6D63, 0xD247, 0x6D64, 0xD248, 0x6D76, - 0xD249, 0x6D0D, 0xD24A, 0x6D61, 0xD24B, 0x6D92, 0xD24C, 0x6D58, - 0xD24D, 0x6D62, 0xD24E, 0x6D6D, 0xD24F, 0x6D6F, 0xD250, 0x6D91, - 0xD251, 0x6D8D, 0xD252, 0x6DEF, 0xD253, 0x6D7F, 0xD254, 0x6D86, - 0xD255, 0x6D5E, 0xD256, 0x6D67, 0xD257, 0x6D60, 0xD258, 0x6D97, - 0xD259, 0x6D70, 0xD25A, 0x6D7C, 0xD25B, 0x6D5F, 0xD25C, 0x6D82, - 0xD25D, 0x6D98, 0xD25E, 0x6D2F, 0xD25F, 0x6D68, 0xD260, 0x6D8B, - 0xD261, 0x6D7E, 0xD262, 0x6D80, 0xD263, 0x6D84, 0xD264, 0x6D16, - 0xD265, 0x6D83, 0xD266, 0x6D7B, 0xD267, 0x6D7D, 0xD268, 0x6D75, - 0xD269, 0x6D90, 0xD26A, 0x70DC, 0xD26B, 0x70D3, 0xD26C, 0x70D1, - 0xD26D, 0x70DD, 0xD26E, 0x70CB, 0xD26F, 0x7F39, 0xD270, 0x70E2, - 0xD271, 0x70D7, 0xD272, 0x70D2, 0xD273, 0x70DE, 0xD274, 0x70E0, - 0xD275, 0x70D4, 0xD276, 0x70CD, 0xD277, 0x70C5, 0xD278, 0x70C6, - 0xD279, 0x70C7, 0xD27A, 0x70DA, 0xD27B, 0x70CE, 0xD27C, 0x70E1, - 0xD27D, 0x7242, 0xD27E, 0x7278, 0xD2A1, 0x7277, 0xD2A2, 0x7276, - 0xD2A3, 0x7300, 0xD2A4, 0x72FA, 0xD2A5, 0x72F4, 0xD2A6, 0x72FE, - 0xD2A7, 0x72F6, 0xD2A8, 0x72F3, 0xD2A9, 0x72FB, 0xD2AA, 0x7301, - 0xD2AB, 0x73D3, 0xD2AC, 0x73D9, 0xD2AD, 0x73E5, 0xD2AE, 0x73D6, - 0xD2AF, 0x73BC, 0xD2B0, 0x73E7, 0xD2B1, 0x73E3, 0xD2B2, 0x73E9, - 0xD2B3, 0x73DC, 0xD2B4, 0x73D2, 0xD2B5, 0x73DB, 0xD2B6, 0x73D4, - 0xD2B7, 0x73DD, 0xD2B8, 0x73DA, 0xD2B9, 0x73D7, 0xD2BA, 0x73D8, - 0xD2BB, 0x73E8, 0xD2BC, 0x74DE, 0xD2BD, 0x74DF, 0xD2BE, 0x74F4, - 0xD2BF, 0x74F5, 0xD2C0, 0x7521, 0xD2C1, 0x755B, 0xD2C2, 0x755F, - 0xD2C3, 0x75B0, 0xD2C4, 0x75C1, 0xD2C5, 0x75BB, 0xD2C6, 0x75C4, - 0xD2C7, 0x75C0, 0xD2C8, 0x75BF, 0xD2C9, 0x75B6, 0xD2CA, 0x75BA, - 0xD2CB, 0x768A, 0xD2CC, 0x76C9, 0xD2CD, 0x771D, 0xD2CE, 0x771B, - 0xD2CF, 0x7710, 0xD2D0, 0x7713, 0xD2D1, 0x7712, 0xD2D2, 0x7723, - 0xD2D3, 0x7711, 0xD2D4, 0x7715, 0xD2D5, 0x7719, 0xD2D6, 0x771A, - 0xD2D7, 0x7722, 0xD2D8, 0x7727, 0xD2D9, 0x7823, 0xD2DA, 0x782C, - 0xD2DB, 0x7822, 0xD2DC, 0x7835, 0xD2DD, 0x782F, 0xD2DE, 0x7828, - 0xD2DF, 0x782E, 0xD2E0, 0x782B, 0xD2E1, 0x7821, 0xD2E2, 0x7829, - 0xD2E3, 0x7833, 0xD2E4, 0x782A, 0xD2E5, 0x7831, 0xD2E6, 0x7954, - 0xD2E7, 0x795B, 0xD2E8, 0x794F, 0xD2E9, 0x795C, 0xD2EA, 0x7953, - 0xD2EB, 0x7952, 0xD2EC, 0x7951, 0xD2ED, 0x79EB, 0xD2EE, 0x79EC, - 0xD2EF, 0x79E0, 0xD2F0, 0x79EE, 0xD2F1, 0x79ED, 0xD2F2, 0x79EA, - 0xD2F3, 0x79DC, 0xD2F4, 0x79DE, 0xD2F5, 0x79DD, 0xD2F6, 0x7A86, - 0xD2F7, 0x7A89, 0xD2F8, 0x7A85, 0xD2F9, 0x7A8B, 0xD2FA, 0x7A8C, - 0xD2FB, 0x7A8A, 0xD2FC, 0x7A87, 0xD2FD, 0x7AD8, 0xD2FE, 0x7B10, - 0xD340, 0x7B04, 0xD341, 0x7B13, 0xD342, 0x7B05, 0xD343, 0x7B0F, - 0xD344, 0x7B08, 0xD345, 0x7B0A, 0xD346, 0x7B0E, 0xD347, 0x7B09, - 0xD348, 0x7B12, 0xD349, 0x7C84, 0xD34A, 0x7C91, 0xD34B, 0x7C8A, - 0xD34C, 0x7C8C, 0xD34D, 0x7C88, 0xD34E, 0x7C8D, 0xD34F, 0x7C85, - 0xD350, 0x7D1E, 0xD351, 0x7D1D, 0xD352, 0x7D11, 0xD353, 0x7D0E, - 0xD354, 0x7D18, 0xD355, 0x7D16, 0xD356, 0x7D13, 0xD357, 0x7D1F, - 0xD358, 0x7D12, 0xD359, 0x7D0F, 0xD35A, 0x7D0C, 0xD35B, 0x7F5C, - 0xD35C, 0x7F61, 0xD35D, 0x7F5E, 0xD35E, 0x7F60, 0xD35F, 0x7F5D, - 0xD360, 0x7F5B, 0xD361, 0x7F96, 0xD362, 0x7F92, 0xD363, 0x7FC3, - 0xD364, 0x7FC2, 0xD365, 0x7FC0, 0xD366, 0x8016, 0xD367, 0x803E, - 0xD368, 0x8039, 0xD369, 0x80FA, 0xD36A, 0x80F2, 0xD36B, 0x80F9, - 0xD36C, 0x80F5, 0xD36D, 0x8101, 0xD36E, 0x80FB, 0xD36F, 0x8100, - 0xD370, 0x8201, 0xD371, 0x822F, 0xD372, 0x8225, 0xD373, 0x8333, - 0xD374, 0x832D, 0xD375, 0x8344, 0xD376, 0x8319, 0xD377, 0x8351, - 0xD378, 0x8325, 0xD379, 0x8356, 0xD37A, 0x833F, 0xD37B, 0x8341, - 0xD37C, 0x8326, 0xD37D, 0x831C, 0xD37E, 0x8322, 0xD3A1, 0x8342, - 0xD3A2, 0x834E, 0xD3A3, 0x831B, 0xD3A4, 0x832A, 0xD3A5, 0x8308, - 0xD3A6, 0x833C, 0xD3A7, 0x834D, 0xD3A8, 0x8316, 0xD3A9, 0x8324, - 0xD3AA, 0x8320, 0xD3AB, 0x8337, 0xD3AC, 0x832F, 0xD3AD, 0x8329, - 0xD3AE, 0x8347, 0xD3AF, 0x8345, 0xD3B0, 0x834C, 0xD3B1, 0x8353, - 0xD3B2, 0x831E, 0xD3B3, 0x832C, 0xD3B4, 0x834B, 0xD3B5, 0x8327, - 0xD3B6, 0x8348, 0xD3B7, 0x8653, 0xD3B8, 0x8652, 0xD3B9, 0x86A2, - 0xD3BA, 0x86A8, 0xD3BB, 0x8696, 0xD3BC, 0x868D, 0xD3BD, 0x8691, - 0xD3BE, 0x869E, 0xD3BF, 0x8687, 0xD3C0, 0x8697, 0xD3C1, 0x8686, - 0xD3C2, 0x868B, 0xD3C3, 0x869A, 0xD3C4, 0x8685, 0xD3C5, 0x86A5, - 0xD3C6, 0x8699, 0xD3C7, 0x86A1, 0xD3C8, 0x86A7, 0xD3C9, 0x8695, - 0xD3CA, 0x8698, 0xD3CB, 0x868E, 0xD3CC, 0x869D, 0xD3CD, 0x8690, - 0xD3CE, 0x8694, 0xD3CF, 0x8843, 0xD3D0, 0x8844, 0xD3D1, 0x886D, - 0xD3D2, 0x8875, 0xD3D3, 0x8876, 0xD3D4, 0x8872, 0xD3D5, 0x8880, - 0xD3D6, 0x8871, 0xD3D7, 0x887F, 0xD3D8, 0x886F, 0xD3D9, 0x8883, - 0xD3DA, 0x887E, 0xD3DB, 0x8874, 0xD3DC, 0x887C, 0xD3DD, 0x8A12, - 0xD3DE, 0x8C47, 0xD3DF, 0x8C57, 0xD3E0, 0x8C7B, 0xD3E1, 0x8CA4, - 0xD3E2, 0x8CA3, 0xD3E3, 0x8D76, 0xD3E4, 0x8D78, 0xD3E5, 0x8DB5, - 0xD3E6, 0x8DB7, 0xD3E7, 0x8DB6, 0xD3E8, 0x8ED1, 0xD3E9, 0x8ED3, - 0xD3EA, 0x8FFE, 0xD3EB, 0x8FF5, 0xD3EC, 0x9002, 0xD3ED, 0x8FFF, - 0xD3EE, 0x8FFB, 0xD3EF, 0x9004, 0xD3F0, 0x8FFC, 0xD3F1, 0x8FF6, - 0xD3F2, 0x90D6, 0xD3F3, 0x90E0, 0xD3F4, 0x90D9, 0xD3F5, 0x90DA, - 0xD3F6, 0x90E3, 0xD3F7, 0x90DF, 0xD3F8, 0x90E5, 0xD3F9, 0x90D8, - 0xD3FA, 0x90DB, 0xD3FB, 0x90D7, 0xD3FC, 0x90DC, 0xD3FD, 0x90E4, - 0xD3FE, 0x9150, 0xD440, 0x914E, 0xD441, 0x914F, 0xD442, 0x91D5, - 0xD443, 0x91E2, 0xD444, 0x91DA, 0xD445, 0x965C, 0xD446, 0x965F, - 0xD447, 0x96BC, 0xD448, 0x98E3, 0xD449, 0x9ADF, 0xD44A, 0x9B2F, - 0xD44B, 0x4E7F, 0xD44C, 0x5070, 0xD44D, 0x506A, 0xD44E, 0x5061, - 0xD44F, 0x505E, 0xD450, 0x5060, 0xD451, 0x5053, 0xD452, 0x504B, - 0xD453, 0x505D, 0xD454, 0x5072, 0xD455, 0x5048, 0xD456, 0x504D, - 0xD457, 0x5041, 0xD458, 0x505B, 0xD459, 0x504A, 0xD45A, 0x5062, - 0xD45B, 0x5015, 0xD45C, 0x5045, 0xD45D, 0x505F, 0xD45E, 0x5069, - 0xD45F, 0x506B, 0xD460, 0x5063, 0xD461, 0x5064, 0xD462, 0x5046, - 0xD463, 0x5040, 0xD464, 0x506E, 0xD465, 0x5073, 0xD466, 0x5057, - 0xD467, 0x5051, 0xD468, 0x51D0, 0xD469, 0x526B, 0xD46A, 0x526D, - 0xD46B, 0x526C, 0xD46C, 0x526E, 0xD46D, 0x52D6, 0xD46E, 0x52D3, - 0xD46F, 0x532D, 0xD470, 0x539C, 0xD471, 0x5575, 0xD472, 0x5576, - 0xD473, 0x553C, 0xD474, 0x554D, 0xD475, 0x5550, 0xD476, 0x5534, - 0xD477, 0x552A, 0xD478, 0x5551, 0xD479, 0x5562, 0xD47A, 0x5536, - 0xD47B, 0x5535, 0xD47C, 0x5530, 0xD47D, 0x5552, 0xD47E, 0x5545, - 0xD4A1, 0x550C, 0xD4A2, 0x5532, 0xD4A3, 0x5565, 0xD4A4, 0x554E, - 0xD4A5, 0x5539, 0xD4A6, 0x5548, 0xD4A7, 0x552D, 0xD4A8, 0x553B, - 0xD4A9, 0x5540, 0xD4AA, 0x554B, 0xD4AB, 0x570A, 0xD4AC, 0x5707, - 0xD4AD, 0x57FB, 0xD4AE, 0x5814, 0xD4AF, 0x57E2, 0xD4B0, 0x57F6, - 0xD4B1, 0x57DC, 0xD4B2, 0x57F4, 0xD4B3, 0x5800, 0xD4B4, 0x57ED, - 0xD4B5, 0x57FD, 0xD4B6, 0x5808, 0xD4B7, 0x57F8, 0xD4B8, 0x580B, - 0xD4B9, 0x57F3, 0xD4BA, 0x57CF, 0xD4BB, 0x5807, 0xD4BC, 0x57EE, - 0xD4BD, 0x57E3, 0xD4BE, 0x57F2, 0xD4BF, 0x57E5, 0xD4C0, 0x57EC, - 0xD4C1, 0x57E1, 0xD4C2, 0x580E, 0xD4C3, 0x57FC, 0xD4C4, 0x5810, - 0xD4C5, 0x57E7, 0xD4C6, 0x5801, 0xD4C7, 0x580C, 0xD4C8, 0x57F1, - 0xD4C9, 0x57E9, 0xD4CA, 0x57F0, 0xD4CB, 0x580D, 0xD4CC, 0x5804, - 0xD4CD, 0x595C, 0xD4CE, 0x5A60, 0xD4CF, 0x5A58, 0xD4D0, 0x5A55, - 0xD4D1, 0x5A67, 0xD4D2, 0x5A5E, 0xD4D3, 0x5A38, 0xD4D4, 0x5A35, - 0xD4D5, 0x5A6D, 0xD4D6, 0x5A50, 0xD4D7, 0x5A5F, 0xD4D8, 0x5A65, - 0xD4D9, 0x5A6C, 0xD4DA, 0x5A53, 0xD4DB, 0x5A64, 0xD4DC, 0x5A57, - 0xD4DD, 0x5A43, 0xD4DE, 0x5A5D, 0xD4DF, 0x5A52, 0xD4E0, 0x5A44, - 0xD4E1, 0x5A5B, 0xD4E2, 0x5A48, 0xD4E3, 0x5A8E, 0xD4E4, 0x5A3E, - 0xD4E5, 0x5A4D, 0xD4E6, 0x5A39, 0xD4E7, 0x5A4C, 0xD4E8, 0x5A70, - 0xD4E9, 0x5A69, 0xD4EA, 0x5A47, 0xD4EB, 0x5A51, 0xD4EC, 0x5A56, - 0xD4ED, 0x5A42, 0xD4EE, 0x5A5C, 0xD4EF, 0x5B72, 0xD4F0, 0x5B6E, - 0xD4F1, 0x5BC1, 0xD4F2, 0x5BC0, 0xD4F3, 0x5C59, 0xD4F4, 0x5D1E, - 0xD4F5, 0x5D0B, 0xD4F6, 0x5D1D, 0xD4F7, 0x5D1A, 0xD4F8, 0x5D20, - 0xD4F9, 0x5D0C, 0xD4FA, 0x5D28, 0xD4FB, 0x5D0D, 0xD4FC, 0x5D26, - 0xD4FD, 0x5D25, 0xD4FE, 0x5D0F, 0xD540, 0x5D30, 0xD541, 0x5D12, - 0xD542, 0x5D23, 0xD543, 0x5D1F, 0xD544, 0x5D2E, 0xD545, 0x5E3E, - 0xD546, 0x5E34, 0xD547, 0x5EB1, 0xD548, 0x5EB4, 0xD549, 0x5EB9, - 0xD54A, 0x5EB2, 0xD54B, 0x5EB3, 0xD54C, 0x5F36, 0xD54D, 0x5F38, - 0xD54E, 0x5F9B, 0xD54F, 0x5F96, 0xD550, 0x5F9F, 0xD551, 0x608A, - 0xD552, 0x6090, 0xD553, 0x6086, 0xD554, 0x60BE, 0xD555, 0x60B0, - 0xD556, 0x60BA, 0xD557, 0x60D3, 0xD558, 0x60D4, 0xD559, 0x60CF, - 0xD55A, 0x60E4, 0xD55B, 0x60D9, 0xD55C, 0x60DD, 0xD55D, 0x60C8, - 0xD55E, 0x60B1, 0xD55F, 0x60DB, 0xD560, 0x60B7, 0xD561, 0x60CA, - 0xD562, 0x60BF, 0xD563, 0x60C3, 0xD564, 0x60CD, 0xD565, 0x60C0, - 0xD566, 0x6332, 0xD567, 0x6365, 0xD568, 0x638A, 0xD569, 0x6382, - 0xD56A, 0x637D, 0xD56B, 0x63BD, 0xD56C, 0x639E, 0xD56D, 0x63AD, - 0xD56E, 0x639D, 0xD56F, 0x6397, 0xD570, 0x63AB, 0xD571, 0x638E, - 0xD572, 0x636F, 0xD573, 0x6387, 0xD574, 0x6390, 0xD575, 0x636E, - 0xD576, 0x63AF, 0xD577, 0x6375, 0xD578, 0x639C, 0xD579, 0x636D, - 0xD57A, 0x63AE, 0xD57B, 0x637C, 0xD57C, 0x63A4, 0xD57D, 0x633B, - 0xD57E, 0x639F, 0xD5A1, 0x6378, 0xD5A2, 0x6385, 0xD5A3, 0x6381, - 0xD5A4, 0x6391, 0xD5A5, 0x638D, 0xD5A6, 0x6370, 0xD5A7, 0x6553, - 0xD5A8, 0x65CD, 0xD5A9, 0x6665, 0xD5AA, 0x6661, 0xD5AB, 0x665B, - 0xD5AC, 0x6659, 0xD5AD, 0x665C, 0xD5AE, 0x6662, 0xD5AF, 0x6718, - 0xD5B0, 0x6879, 0xD5B1, 0x6887, 0xD5B2, 0x6890, 0xD5B3, 0x689C, - 0xD5B4, 0x686D, 0xD5B5, 0x686E, 0xD5B6, 0x68AE, 0xD5B7, 0x68AB, - 0xD5B8, 0x6956, 0xD5B9, 0x686F, 0xD5BA, 0x68A3, 0xD5BB, 0x68AC, - 0xD5BC, 0x68A9, 0xD5BD, 0x6875, 0xD5BE, 0x6874, 0xD5BF, 0x68B2, - 0xD5C0, 0x688F, 0xD5C1, 0x6877, 0xD5C2, 0x6892, 0xD5C3, 0x687C, - 0xD5C4, 0x686B, 0xD5C5, 0x6872, 0xD5C6, 0x68AA, 0xD5C7, 0x6880, - 0xD5C8, 0x6871, 0xD5C9, 0x687E, 0xD5CA, 0x689B, 0xD5CB, 0x6896, - 0xD5CC, 0x688B, 0xD5CD, 0x68A0, 0xD5CE, 0x6889, 0xD5CF, 0x68A4, - 0xD5D0, 0x6878, 0xD5D1, 0x687B, 0xD5D2, 0x6891, 0xD5D3, 0x688C, - 0xD5D4, 0x688A, 0xD5D5, 0x687D, 0xD5D6, 0x6B36, 0xD5D7, 0x6B33, - 0xD5D8, 0x6B37, 0xD5D9, 0x6B38, 0xD5DA, 0x6B91, 0xD5DB, 0x6B8F, - 0xD5DC, 0x6B8D, 0xD5DD, 0x6B8E, 0xD5DE, 0x6B8C, 0xD5DF, 0x6C2A, - 0xD5E0, 0x6DC0, 0xD5E1, 0x6DAB, 0xD5E2, 0x6DB4, 0xD5E3, 0x6DB3, - 0xD5E4, 0x6E74, 0xD5E5, 0x6DAC, 0xD5E6, 0x6DE9, 0xD5E7, 0x6DE2, - 0xD5E8, 0x6DB7, 0xD5E9, 0x6DF6, 0xD5EA, 0x6DD4, 0xD5EB, 0x6E00, - 0xD5EC, 0x6DC8, 0xD5ED, 0x6DE0, 0xD5EE, 0x6DDF, 0xD5EF, 0x6DD6, - 0xD5F0, 0x6DBE, 0xD5F1, 0x6DE5, 0xD5F2, 0x6DDC, 0xD5F3, 0x6DDD, - 0xD5F4, 0x6DDB, 0xD5F5, 0x6DF4, 0xD5F6, 0x6DCA, 0xD5F7, 0x6DBD, - 0xD5F8, 0x6DED, 0xD5F9, 0x6DF0, 0xD5FA, 0x6DBA, 0xD5FB, 0x6DD5, - 0xD5FC, 0x6DC2, 0xD5FD, 0x6DCF, 0xD5FE, 0x6DC9, 0xD640, 0x6DD0, - 0xD641, 0x6DF2, 0xD642, 0x6DD3, 0xD643, 0x6DFD, 0xD644, 0x6DD7, - 0xD645, 0x6DCD, 0xD646, 0x6DE3, 0xD647, 0x6DBB, 0xD648, 0x70FA, - 0xD649, 0x710D, 0xD64A, 0x70F7, 0xD64B, 0x7117, 0xD64C, 0x70F4, - 0xD64D, 0x710C, 0xD64E, 0x70F0, 0xD64F, 0x7104, 0xD650, 0x70F3, - 0xD651, 0x7110, 0xD652, 0x70FC, 0xD653, 0x70FF, 0xD654, 0x7106, - 0xD655, 0x7113, 0xD656, 0x7100, 0xD657, 0x70F8, 0xD658, 0x70F6, - 0xD659, 0x710B, 0xD65A, 0x7102, 0xD65B, 0x710E, 0xD65C, 0x727E, - 0xD65D, 0x727B, 0xD65E, 0x727C, 0xD65F, 0x727F, 0xD660, 0x731D, - 0xD661, 0x7317, 0xD662, 0x7307, 0xD663, 0x7311, 0xD664, 0x7318, - 0xD665, 0x730A, 0xD666, 0x7308, 0xD667, 0x72FF, 0xD668, 0x730F, - 0xD669, 0x731E, 0xD66A, 0x7388, 0xD66B, 0x73F6, 0xD66C, 0x73F8, - 0xD66D, 0x73F5, 0xD66E, 0x7404, 0xD66F, 0x7401, 0xD670, 0x73FD, - 0xD671, 0x7407, 0xD672, 0x7400, 0xD673, 0x73FA, 0xD674, 0x73FC, - 0xD675, 0x73FF, 0xD676, 0x740C, 0xD677, 0x740B, 0xD678, 0x73F4, - 0xD679, 0x7408, 0xD67A, 0x7564, 0xD67B, 0x7563, 0xD67C, 0x75CE, - 0xD67D, 0x75D2, 0xD67E, 0x75CF, 0xD6A1, 0x75CB, 0xD6A2, 0x75CC, - 0xD6A3, 0x75D1, 0xD6A4, 0x75D0, 0xD6A5, 0x768F, 0xD6A6, 0x7689, - 0xD6A7, 0x76D3, 0xD6A8, 0x7739, 0xD6A9, 0x772F, 0xD6AA, 0x772D, - 0xD6AB, 0x7731, 0xD6AC, 0x7732, 0xD6AD, 0x7734, 0xD6AE, 0x7733, - 0xD6AF, 0x773D, 0xD6B0, 0x7725, 0xD6B1, 0x773B, 0xD6B2, 0x7735, - 0xD6B3, 0x7848, 0xD6B4, 0x7852, 0xD6B5, 0x7849, 0xD6B6, 0x784D, - 0xD6B7, 0x784A, 0xD6B8, 0x784C, 0xD6B9, 0x7826, 0xD6BA, 0x7845, - 0xD6BB, 0x7850, 0xD6BC, 0x7964, 0xD6BD, 0x7967, 0xD6BE, 0x7969, - 0xD6BF, 0x796A, 0xD6C0, 0x7963, 0xD6C1, 0x796B, 0xD6C2, 0x7961, - 0xD6C3, 0x79BB, 0xD6C4, 0x79FA, 0xD6C5, 0x79F8, 0xD6C6, 0x79F6, - 0xD6C7, 0x79F7, 0xD6C8, 0x7A8F, 0xD6C9, 0x7A94, 0xD6CA, 0x7A90, - 0xD6CB, 0x7B35, 0xD6CC, 0x7B47, 0xD6CD, 0x7B34, 0xD6CE, 0x7B25, - 0xD6CF, 0x7B30, 0xD6D0, 0x7B22, 0xD6D1, 0x7B24, 0xD6D2, 0x7B33, - 0xD6D3, 0x7B18, 0xD6D4, 0x7B2A, 0xD6D5, 0x7B1D, 0xD6D6, 0x7B31, - 0xD6D7, 0x7B2B, 0xD6D8, 0x7B2D, 0xD6D9, 0x7B2F, 0xD6DA, 0x7B32, - 0xD6DB, 0x7B38, 0xD6DC, 0x7B1A, 0xD6DD, 0x7B23, 0xD6DE, 0x7C94, - 0xD6DF, 0x7C98, 0xD6E0, 0x7C96, 0xD6E1, 0x7CA3, 0xD6E2, 0x7D35, - 0xD6E3, 0x7D3D, 0xD6E4, 0x7D38, 0xD6E5, 0x7D36, 0xD6E6, 0x7D3A, - 0xD6E7, 0x7D45, 0xD6E8, 0x7D2C, 0xD6E9, 0x7D29, 0xD6EA, 0x7D41, - 0xD6EB, 0x7D47, 0xD6EC, 0x7D3E, 0xD6ED, 0x7D3F, 0xD6EE, 0x7D4A, - 0xD6EF, 0x7D3B, 0xD6F0, 0x7D28, 0xD6F1, 0x7F63, 0xD6F2, 0x7F95, - 0xD6F3, 0x7F9C, 0xD6F4, 0x7F9D, 0xD6F5, 0x7F9B, 0xD6F6, 0x7FCA, - 0xD6F7, 0x7FCB, 0xD6F8, 0x7FCD, 0xD6F9, 0x7FD0, 0xD6FA, 0x7FD1, - 0xD6FB, 0x7FC7, 0xD6FC, 0x7FCF, 0xD6FD, 0x7FC9, 0xD6FE, 0x801F, - 0xD740, 0x801E, 0xD741, 0x801B, 0xD742, 0x8047, 0xD743, 0x8043, - 0xD744, 0x8048, 0xD745, 0x8118, 0xD746, 0x8125, 0xD747, 0x8119, - 0xD748, 0x811B, 0xD749, 0x812D, 0xD74A, 0x811F, 0xD74B, 0x812C, - 0xD74C, 0x811E, 0xD74D, 0x8121, 0xD74E, 0x8115, 0xD74F, 0x8127, - 0xD750, 0x811D, 0xD751, 0x8122, 0xD752, 0x8211, 0xD753, 0x8238, - 0xD754, 0x8233, 0xD755, 0x823A, 0xD756, 0x8234, 0xD757, 0x8232, - 0xD758, 0x8274, 0xD759, 0x8390, 0xD75A, 0x83A3, 0xD75B, 0x83A8, - 0xD75C, 0x838D, 0xD75D, 0x837A, 0xD75E, 0x8373, 0xD75F, 0x83A4, - 0xD760, 0x8374, 0xD761, 0x838F, 0xD762, 0x8381, 0xD763, 0x8395, - 0xD764, 0x8399, 0xD765, 0x8375, 0xD766, 0x8394, 0xD767, 0x83A9, - 0xD768, 0x837D, 0xD769, 0x8383, 0xD76A, 0x838C, 0xD76B, 0x839D, - 0xD76C, 0x839B, 0xD76D, 0x83AA, 0xD76E, 0x838B, 0xD76F, 0x837E, - 0xD770, 0x83A5, 0xD771, 0x83AF, 0xD772, 0x8388, 0xD773, 0x8397, - 0xD774, 0x83B0, 0xD775, 0x837F, 0xD776, 0x83A6, 0xD777, 0x8387, - 0xD778, 0x83AE, 0xD779, 0x8376, 0xD77A, 0x839A, 0xD77B, 0x8659, - 0xD77C, 0x8656, 0xD77D, 0x86BF, 0xD77E, 0x86B7, 0xD7A1, 0x86C2, - 0xD7A2, 0x86C1, 0xD7A3, 0x86C5, 0xD7A4, 0x86BA, 0xD7A5, 0x86B0, - 0xD7A6, 0x86C8, 0xD7A7, 0x86B9, 0xD7A8, 0x86B3, 0xD7A9, 0x86B8, - 0xD7AA, 0x86CC, 0xD7AB, 0x86B4, 0xD7AC, 0x86BB, 0xD7AD, 0x86BC, - 0xD7AE, 0x86C3, 0xD7AF, 0x86BD, 0xD7B0, 0x86BE, 0xD7B1, 0x8852, - 0xD7B2, 0x8889, 0xD7B3, 0x8895, 0xD7B4, 0x88A8, 0xD7B5, 0x88A2, - 0xD7B6, 0x88AA, 0xD7B7, 0x889A, 0xD7B8, 0x8891, 0xD7B9, 0x88A1, - 0xD7BA, 0x889F, 0xD7BB, 0x8898, 0xD7BC, 0x88A7, 0xD7BD, 0x8899, - 0xD7BE, 0x889B, 0xD7BF, 0x8897, 0xD7C0, 0x88A4, 0xD7C1, 0x88AC, - 0xD7C2, 0x888C, 0xD7C3, 0x8893, 0xD7C4, 0x888E, 0xD7C5, 0x8982, - 0xD7C6, 0x89D6, 0xD7C7, 0x89D9, 0xD7C8, 0x89D5, 0xD7C9, 0x8A30, - 0xD7CA, 0x8A27, 0xD7CB, 0x8A2C, 0xD7CC, 0x8A1E, 0xD7CD, 0x8C39, - 0xD7CE, 0x8C3B, 0xD7CF, 0x8C5C, 0xD7D0, 0x8C5D, 0xD7D1, 0x8C7D, - 0xD7D2, 0x8CA5, 0xD7D3, 0x8D7D, 0xD7D4, 0x8D7B, 0xD7D5, 0x8D79, - 0xD7D6, 0x8DBC, 0xD7D7, 0x8DC2, 0xD7D8, 0x8DB9, 0xD7D9, 0x8DBF, - 0xD7DA, 0x8DC1, 0xD7DB, 0x8ED8, 0xD7DC, 0x8EDE, 0xD7DD, 0x8EDD, - 0xD7DE, 0x8EDC, 0xD7DF, 0x8ED7, 0xD7E0, 0x8EE0, 0xD7E1, 0x8EE1, - 0xD7E2, 0x9024, 0xD7E3, 0x900B, 0xD7E4, 0x9011, 0xD7E5, 0x901C, - 0xD7E6, 0x900C, 0xD7E7, 0x9021, 0xD7E8, 0x90EF, 0xD7E9, 0x90EA, - 0xD7EA, 0x90F0, 0xD7EB, 0x90F4, 0xD7EC, 0x90F2, 0xD7ED, 0x90F3, - 0xD7EE, 0x90D4, 0xD7EF, 0x90EB, 0xD7F0, 0x90EC, 0xD7F1, 0x90E9, - 0xD7F2, 0x9156, 0xD7F3, 0x9158, 0xD7F4, 0x915A, 0xD7F5, 0x9153, - 0xD7F6, 0x9155, 0xD7F7, 0x91EC, 0xD7F8, 0x91F4, 0xD7F9, 0x91F1, - 0xD7FA, 0x91F3, 0xD7FB, 0x91F8, 0xD7FC, 0x91E4, 0xD7FD, 0x91F9, - 0xD7FE, 0x91EA, 0xD840, 0x91EB, 0xD841, 0x91F7, 0xD842, 0x91E8, - 0xD843, 0x91EE, 0xD844, 0x957A, 0xD845, 0x9586, 0xD846, 0x9588, - 0xD847, 0x967C, 0xD848, 0x966D, 0xD849, 0x966B, 0xD84A, 0x9671, - 0xD84B, 0x966F, 0xD84C, 0x96BF, 0xD84D, 0x976A, 0xD84E, 0x9804, - 0xD84F, 0x98E5, 0xD850, 0x9997, 0xD851, 0x509B, 0xD852, 0x5095, - 0xD853, 0x5094, 0xD854, 0x509E, 0xD855, 0x508B, 0xD856, 0x50A3, - 0xD857, 0x5083, 0xD858, 0x508C, 0xD859, 0x508E, 0xD85A, 0x509D, - 0xD85B, 0x5068, 0xD85C, 0x509C, 0xD85D, 0x5092, 0xD85E, 0x5082, - 0xD85F, 0x5087, 0xD860, 0x515F, 0xD861, 0x51D4, 0xD862, 0x5312, - 0xD863, 0x5311, 0xD864, 0x53A4, 0xD865, 0x53A7, 0xD866, 0x5591, - 0xD867, 0x55A8, 0xD868, 0x55A5, 0xD869, 0x55AD, 0xD86A, 0x5577, - 0xD86B, 0x5645, 0xD86C, 0x55A2, 0xD86D, 0x5593, 0xD86E, 0x5588, - 0xD86F, 0x558F, 0xD870, 0x55B5, 0xD871, 0x5581, 0xD872, 0x55A3, - 0xD873, 0x5592, 0xD874, 0x55A4, 0xD875, 0x557D, 0xD876, 0x558C, - 0xD877, 0x55A6, 0xD878, 0x557F, 0xD879, 0x5595, 0xD87A, 0x55A1, - 0xD87B, 0x558E, 0xD87C, 0x570C, 0xD87D, 0x5829, 0xD87E, 0x5837, - 0xD8A1, 0x5819, 0xD8A2, 0x581E, 0xD8A3, 0x5827, 0xD8A4, 0x5823, - 0xD8A5, 0x5828, 0xD8A6, 0x57F5, 0xD8A7, 0x5848, 0xD8A8, 0x5825, - 0xD8A9, 0x581C, 0xD8AA, 0x581B, 0xD8AB, 0x5833, 0xD8AC, 0x583F, - 0xD8AD, 0x5836, 0xD8AE, 0x582E, 0xD8AF, 0x5839, 0xD8B0, 0x5838, - 0xD8B1, 0x582D, 0xD8B2, 0x582C, 0xD8B3, 0x583B, 0xD8B4, 0x5961, - 0xD8B5, 0x5AAF, 0xD8B6, 0x5A94, 0xD8B7, 0x5A9F, 0xD8B8, 0x5A7A, - 0xD8B9, 0x5AA2, 0xD8BA, 0x5A9E, 0xD8BB, 0x5A78, 0xD8BC, 0x5AA6, - 0xD8BD, 0x5A7C, 0xD8BE, 0x5AA5, 0xD8BF, 0x5AAC, 0xD8C0, 0x5A95, - 0xD8C1, 0x5AAE, 0xD8C2, 0x5A37, 0xD8C3, 0x5A84, 0xD8C4, 0x5A8A, - 0xD8C5, 0x5A97, 0xD8C6, 0x5A83, 0xD8C7, 0x5A8B, 0xD8C8, 0x5AA9, - 0xD8C9, 0x5A7B, 0xD8CA, 0x5A7D, 0xD8CB, 0x5A8C, 0xD8CC, 0x5A9C, - 0xD8CD, 0x5A8F, 0xD8CE, 0x5A93, 0xD8CF, 0x5A9D, 0xD8D0, 0x5BEA, - 0xD8D1, 0x5BCD, 0xD8D2, 0x5BCB, 0xD8D3, 0x5BD4, 0xD8D4, 0x5BD1, - 0xD8D5, 0x5BCA, 0xD8D6, 0x5BCE, 0xD8D7, 0x5C0C, 0xD8D8, 0x5C30, - 0xD8D9, 0x5D37, 0xD8DA, 0x5D43, 0xD8DB, 0x5D6B, 0xD8DC, 0x5D41, - 0xD8DD, 0x5D4B, 0xD8DE, 0x5D3F, 0xD8DF, 0x5D35, 0xD8E0, 0x5D51, - 0xD8E1, 0x5D4E, 0xD8E2, 0x5D55, 0xD8E3, 0x5D33, 0xD8E4, 0x5D3A, - 0xD8E5, 0x5D52, 0xD8E6, 0x5D3D, 0xD8E7, 0x5D31, 0xD8E8, 0x5D59, - 0xD8E9, 0x5D42, 0xD8EA, 0x5D39, 0xD8EB, 0x5D49, 0xD8EC, 0x5D38, - 0xD8ED, 0x5D3C, 0xD8EE, 0x5D32, 0xD8EF, 0x5D36, 0xD8F0, 0x5D40, - 0xD8F1, 0x5D45, 0xD8F2, 0x5E44, 0xD8F3, 0x5E41, 0xD8F4, 0x5F58, - 0xD8F5, 0x5FA6, 0xD8F6, 0x5FA5, 0xD8F7, 0x5FAB, 0xD8F8, 0x60C9, - 0xD8F9, 0x60B9, 0xD8FA, 0x60CC, 0xD8FB, 0x60E2, 0xD8FC, 0x60CE, - 0xD8FD, 0x60C4, 0xD8FE, 0x6114, 0xD940, 0x60F2, 0xD941, 0x610A, - 0xD942, 0x6116, 0xD943, 0x6105, 0xD944, 0x60F5, 0xD945, 0x6113, - 0xD946, 0x60F8, 0xD947, 0x60FC, 0xD948, 0x60FE, 0xD949, 0x60C1, - 0xD94A, 0x6103, 0xD94B, 0x6118, 0xD94C, 0x611D, 0xD94D, 0x6110, - 0xD94E, 0x60FF, 0xD94F, 0x6104, 0xD950, 0x610B, 0xD951, 0x624A, - 0xD952, 0x6394, 0xD953, 0x63B1, 0xD954, 0x63B0, 0xD955, 0x63CE, - 0xD956, 0x63E5, 0xD957, 0x63E8, 0xD958, 0x63EF, 0xD959, 0x63C3, - 0xD95A, 0x649D, 0xD95B, 0x63F3, 0xD95C, 0x63CA, 0xD95D, 0x63E0, - 0xD95E, 0x63F6, 0xD95F, 0x63D5, 0xD960, 0x63F2, 0xD961, 0x63F5, - 0xD962, 0x6461, 0xD963, 0x63DF, 0xD964, 0x63BE, 0xD965, 0x63DD, - 0xD966, 0x63DC, 0xD967, 0x63C4, 0xD968, 0x63D8, 0xD969, 0x63D3, - 0xD96A, 0x63C2, 0xD96B, 0x63C7, 0xD96C, 0x63CC, 0xD96D, 0x63CB, - 0xD96E, 0x63C8, 0xD96F, 0x63F0, 0xD970, 0x63D7, 0xD971, 0x63D9, - 0xD972, 0x6532, 0xD973, 0x6567, 0xD974, 0x656A, 0xD975, 0x6564, - 0xD976, 0x655C, 0xD977, 0x6568, 0xD978, 0x6565, 0xD979, 0x658C, - 0xD97A, 0x659D, 0xD97B, 0x659E, 0xD97C, 0x65AE, 0xD97D, 0x65D0, - 0xD97E, 0x65D2, 0xD9A1, 0x667C, 0xD9A2, 0x666C, 0xD9A3, 0x667B, - 0xD9A4, 0x6680, 0xD9A5, 0x6671, 0xD9A6, 0x6679, 0xD9A7, 0x666A, - 0xD9A8, 0x6672, 0xD9A9, 0x6701, 0xD9AA, 0x690C, 0xD9AB, 0x68D3, - 0xD9AC, 0x6904, 0xD9AD, 0x68DC, 0xD9AE, 0x692A, 0xD9AF, 0x68EC, - 0xD9B0, 0x68EA, 0xD9B1, 0x68F1, 0xD9B2, 0x690F, 0xD9B3, 0x68D6, - 0xD9B4, 0x68F7, 0xD9B5, 0x68EB, 0xD9B6, 0x68E4, 0xD9B7, 0x68F6, - 0xD9B8, 0x6913, 0xD9B9, 0x6910, 0xD9BA, 0x68F3, 0xD9BB, 0x68E1, - 0xD9BC, 0x6907, 0xD9BD, 0x68CC, 0xD9BE, 0x6908, 0xD9BF, 0x6970, - 0xD9C0, 0x68B4, 0xD9C1, 0x6911, 0xD9C2, 0x68EF, 0xD9C3, 0x68C6, - 0xD9C4, 0x6914, 0xD9C5, 0x68F8, 0xD9C6, 0x68D0, 0xD9C7, 0x68FD, - 0xD9C8, 0x68FC, 0xD9C9, 0x68E8, 0xD9CA, 0x690B, 0xD9CB, 0x690A, - 0xD9CC, 0x6917, 0xD9CD, 0x68CE, 0xD9CE, 0x68C8, 0xD9CF, 0x68DD, - 0xD9D0, 0x68DE, 0xD9D1, 0x68E6, 0xD9D2, 0x68F4, 0xD9D3, 0x68D1, - 0xD9D4, 0x6906, 0xD9D5, 0x68D4, 0xD9D6, 0x68E9, 0xD9D7, 0x6915, - 0xD9D8, 0x6925, 0xD9D9, 0x68C7, 0xD9DA, 0x6B39, 0xD9DB, 0x6B3B, - 0xD9DC, 0x6B3F, 0xD9DD, 0x6B3C, 0xD9DE, 0x6B94, 0xD9DF, 0x6B97, - 0xD9E0, 0x6B99, 0xD9E1, 0x6B95, 0xD9E2, 0x6BBD, 0xD9E3, 0x6BF0, - 0xD9E4, 0x6BF2, 0xD9E5, 0x6BF3, 0xD9E6, 0x6C30, 0xD9E7, 0x6DFC, - 0xD9E8, 0x6E46, 0xD9E9, 0x6E47, 0xD9EA, 0x6E1F, 0xD9EB, 0x6E49, - 0xD9EC, 0x6E88, 0xD9ED, 0x6E3C, 0xD9EE, 0x6E3D, 0xD9EF, 0x6E45, - 0xD9F0, 0x6E62, 0xD9F1, 0x6E2B, 0xD9F2, 0x6E3F, 0xD9F3, 0x6E41, - 0xD9F4, 0x6E5D, 0xD9F5, 0x6E73, 0xD9F6, 0x6E1C, 0xD9F7, 0x6E33, - 0xD9F8, 0x6E4B, 0xD9F9, 0x6E40, 0xD9FA, 0x6E51, 0xD9FB, 0x6E3B, - 0xD9FC, 0x6E03, 0xD9FD, 0x6E2E, 0xD9FE, 0x6E5E, 0xDA40, 0x6E68, - 0xDA41, 0x6E5C, 0xDA42, 0x6E61, 0xDA43, 0x6E31, 0xDA44, 0x6E28, - 0xDA45, 0x6E60, 0xDA46, 0x6E71, 0xDA47, 0x6E6B, 0xDA48, 0x6E39, - 0xDA49, 0x6E22, 0xDA4A, 0x6E30, 0xDA4B, 0x6E53, 0xDA4C, 0x6E65, - 0xDA4D, 0x6E27, 0xDA4E, 0x6E78, 0xDA4F, 0x6E64, 0xDA50, 0x6E77, - 0xDA51, 0x6E55, 0xDA52, 0x6E79, 0xDA53, 0x6E52, 0xDA54, 0x6E66, - 0xDA55, 0x6E35, 0xDA56, 0x6E36, 0xDA57, 0x6E5A, 0xDA58, 0x7120, - 0xDA59, 0x711E, 0xDA5A, 0x712F, 0xDA5B, 0x70FB, 0xDA5C, 0x712E, - 0xDA5D, 0x7131, 0xDA5E, 0x7123, 0xDA5F, 0x7125, 0xDA60, 0x7122, - 0xDA61, 0x7132, 0xDA62, 0x711F, 0xDA63, 0x7128, 0xDA64, 0x713A, - 0xDA65, 0x711B, 0xDA66, 0x724B, 0xDA67, 0x725A, 0xDA68, 0x7288, - 0xDA69, 0x7289, 0xDA6A, 0x7286, 0xDA6B, 0x7285, 0xDA6C, 0x728B, - 0xDA6D, 0x7312, 0xDA6E, 0x730B, 0xDA6F, 0x7330, 0xDA70, 0x7322, - 0xDA71, 0x7331, 0xDA72, 0x7333, 0xDA73, 0x7327, 0xDA74, 0x7332, - 0xDA75, 0x732D, 0xDA76, 0x7326, 0xDA77, 0x7323, 0xDA78, 0x7335, - 0xDA79, 0x730C, 0xDA7A, 0x742E, 0xDA7B, 0x742C, 0xDA7C, 0x7430, - 0xDA7D, 0x742B, 0xDA7E, 0x7416, 0xDAA1, 0x741A, 0xDAA2, 0x7421, - 0xDAA3, 0x742D, 0xDAA4, 0x7431, 0xDAA5, 0x7424, 0xDAA6, 0x7423, - 0xDAA7, 0x741D, 0xDAA8, 0x7429, 0xDAA9, 0x7420, 0xDAAA, 0x7432, - 0xDAAB, 0x74FB, 0xDAAC, 0x752F, 0xDAAD, 0x756F, 0xDAAE, 0x756C, - 0xDAAF, 0x75E7, 0xDAB0, 0x75DA, 0xDAB1, 0x75E1, 0xDAB2, 0x75E6, - 0xDAB3, 0x75DD, 0xDAB4, 0x75DF, 0xDAB5, 0x75E4, 0xDAB6, 0x75D7, - 0xDAB7, 0x7695, 0xDAB8, 0x7692, 0xDAB9, 0x76DA, 0xDABA, 0x7746, - 0xDABB, 0x7747, 0xDABC, 0x7744, 0xDABD, 0x774D, 0xDABE, 0x7745, - 0xDABF, 0x774A, 0xDAC0, 0x774E, 0xDAC1, 0x774B, 0xDAC2, 0x774C, - 0xDAC3, 0x77DE, 0xDAC4, 0x77EC, 0xDAC5, 0x7860, 0xDAC6, 0x7864, - 0xDAC7, 0x7865, 0xDAC8, 0x785C, 0xDAC9, 0x786D, 0xDACA, 0x7871, - 0xDACB, 0x786A, 0xDACC, 0x786E, 0xDACD, 0x7870, 0xDACE, 0x7869, - 0xDACF, 0x7868, 0xDAD0, 0x785E, 0xDAD1, 0x7862, 0xDAD2, 0x7974, - 0xDAD3, 0x7973, 0xDAD4, 0x7972, 0xDAD5, 0x7970, 0xDAD6, 0x7A02, - 0xDAD7, 0x7A0A, 0xDAD8, 0x7A03, 0xDAD9, 0x7A0C, 0xDADA, 0x7A04, - 0xDADB, 0x7A99, 0xDADC, 0x7AE6, 0xDADD, 0x7AE4, 0xDADE, 0x7B4A, - 0xDADF, 0x7B3B, 0xDAE0, 0x7B44, 0xDAE1, 0x7B48, 0xDAE2, 0x7B4C, - 0xDAE3, 0x7B4E, 0xDAE4, 0x7B40, 0xDAE5, 0x7B58, 0xDAE6, 0x7B45, - 0xDAE7, 0x7CA2, 0xDAE8, 0x7C9E, 0xDAE9, 0x7CA8, 0xDAEA, 0x7CA1, - 0xDAEB, 0x7D58, 0xDAEC, 0x7D6F, 0xDAED, 0x7D63, 0xDAEE, 0x7D53, - 0xDAEF, 0x7D56, 0xDAF0, 0x7D67, 0xDAF1, 0x7D6A, 0xDAF2, 0x7D4F, - 0xDAF3, 0x7D6D, 0xDAF4, 0x7D5C, 0xDAF5, 0x7D6B, 0xDAF6, 0x7D52, - 0xDAF7, 0x7D54, 0xDAF8, 0x7D69, 0xDAF9, 0x7D51, 0xDAFA, 0x7D5F, - 0xDAFB, 0x7D4E, 0xDAFC, 0x7F3E, 0xDAFD, 0x7F3F, 0xDAFE, 0x7F65, - 0xDB40, 0x7F66, 0xDB41, 0x7FA2, 0xDB42, 0x7FA0, 0xDB43, 0x7FA1, - 0xDB44, 0x7FD7, 0xDB45, 0x8051, 0xDB46, 0x804F, 0xDB47, 0x8050, - 0xDB48, 0x80FE, 0xDB49, 0x80D4, 0xDB4A, 0x8143, 0xDB4B, 0x814A, - 0xDB4C, 0x8152, 0xDB4D, 0x814F, 0xDB4E, 0x8147, 0xDB4F, 0x813D, - 0xDB50, 0x814D, 0xDB51, 0x813A, 0xDB52, 0x81E6, 0xDB53, 0x81EE, - 0xDB54, 0x81F7, 0xDB55, 0x81F8, 0xDB56, 0x81F9, 0xDB57, 0x8204, - 0xDB58, 0x823C, 0xDB59, 0x823D, 0xDB5A, 0x823F, 0xDB5B, 0x8275, - 0xDB5C, 0x833B, 0xDB5D, 0x83CF, 0xDB5E, 0x83F9, 0xDB5F, 0x8423, - 0xDB60, 0x83C0, 0xDB61, 0x83E8, 0xDB62, 0x8412, 0xDB63, 0x83E7, - 0xDB64, 0x83E4, 0xDB65, 0x83FC, 0xDB66, 0x83F6, 0xDB67, 0x8410, - 0xDB68, 0x83C6, 0xDB69, 0x83C8, 0xDB6A, 0x83EB, 0xDB6B, 0x83E3, - 0xDB6C, 0x83BF, 0xDB6D, 0x8401, 0xDB6E, 0x83DD, 0xDB6F, 0x83E5, - 0xDB70, 0x83D8, 0xDB71, 0x83FF, 0xDB72, 0x83E1, 0xDB73, 0x83CB, - 0xDB74, 0x83CE, 0xDB75, 0x83D6, 0xDB76, 0x83F5, 0xDB77, 0x83C9, - 0xDB78, 0x8409, 0xDB79, 0x840F, 0xDB7A, 0x83DE, 0xDB7B, 0x8411, - 0xDB7C, 0x8406, 0xDB7D, 0x83C2, 0xDB7E, 0x83F3, 0xDBA1, 0x83D5, - 0xDBA2, 0x83FA, 0xDBA3, 0x83C7, 0xDBA4, 0x83D1, 0xDBA5, 0x83EA, - 0xDBA6, 0x8413, 0xDBA7, 0x83C3, 0xDBA8, 0x83EC, 0xDBA9, 0x83EE, - 0xDBAA, 0x83C4, 0xDBAB, 0x83FB, 0xDBAC, 0x83D7, 0xDBAD, 0x83E2, - 0xDBAE, 0x841B, 0xDBAF, 0x83DB, 0xDBB0, 0x83FE, 0xDBB1, 0x86D8, - 0xDBB2, 0x86E2, 0xDBB3, 0x86E6, 0xDBB4, 0x86D3, 0xDBB5, 0x86E3, - 0xDBB6, 0x86DA, 0xDBB7, 0x86EA, 0xDBB8, 0x86DD, 0xDBB9, 0x86EB, - 0xDBBA, 0x86DC, 0xDBBB, 0x86EC, 0xDBBC, 0x86E9, 0xDBBD, 0x86D7, - 0xDBBE, 0x86E8, 0xDBBF, 0x86D1, 0xDBC0, 0x8848, 0xDBC1, 0x8856, - 0xDBC2, 0x8855, 0xDBC3, 0x88BA, 0xDBC4, 0x88D7, 0xDBC5, 0x88B9, - 0xDBC6, 0x88B8, 0xDBC7, 0x88C0, 0xDBC8, 0x88BE, 0xDBC9, 0x88B6, - 0xDBCA, 0x88BC, 0xDBCB, 0x88B7, 0xDBCC, 0x88BD, 0xDBCD, 0x88B2, - 0xDBCE, 0x8901, 0xDBCF, 0x88C9, 0xDBD0, 0x8995, 0xDBD1, 0x8998, - 0xDBD2, 0x8997, 0xDBD3, 0x89DD, 0xDBD4, 0x89DA, 0xDBD5, 0x89DB, - 0xDBD6, 0x8A4E, 0xDBD7, 0x8A4D, 0xDBD8, 0x8A39, 0xDBD9, 0x8A59, - 0xDBDA, 0x8A40, 0xDBDB, 0x8A57, 0xDBDC, 0x8A58, 0xDBDD, 0x8A44, - 0xDBDE, 0x8A45, 0xDBDF, 0x8A52, 0xDBE0, 0x8A48, 0xDBE1, 0x8A51, - 0xDBE2, 0x8A4A, 0xDBE3, 0x8A4C, 0xDBE4, 0x8A4F, 0xDBE5, 0x8C5F, - 0xDBE6, 0x8C81, 0xDBE7, 0x8C80, 0xDBE8, 0x8CBA, 0xDBE9, 0x8CBE, - 0xDBEA, 0x8CB0, 0xDBEB, 0x8CB9, 0xDBEC, 0x8CB5, 0xDBED, 0x8D84, - 0xDBEE, 0x8D80, 0xDBEF, 0x8D89, 0xDBF0, 0x8DD8, 0xDBF1, 0x8DD3, - 0xDBF2, 0x8DCD, 0xDBF3, 0x8DC7, 0xDBF4, 0x8DD6, 0xDBF5, 0x8DDC, - 0xDBF6, 0x8DCF, 0xDBF7, 0x8DD5, 0xDBF8, 0x8DD9, 0xDBF9, 0x8DC8, - 0xDBFA, 0x8DD7, 0xDBFB, 0x8DC5, 0xDBFC, 0x8EEF, 0xDBFD, 0x8EF7, - 0xDBFE, 0x8EFA, 0xDC40, 0x8EF9, 0xDC41, 0x8EE6, 0xDC42, 0x8EEE, - 0xDC43, 0x8EE5, 0xDC44, 0x8EF5, 0xDC45, 0x8EE7, 0xDC46, 0x8EE8, - 0xDC47, 0x8EF6, 0xDC48, 0x8EEB, 0xDC49, 0x8EF1, 0xDC4A, 0x8EEC, - 0xDC4B, 0x8EF4, 0xDC4C, 0x8EE9, 0xDC4D, 0x902D, 0xDC4E, 0x9034, - 0xDC4F, 0x902F, 0xDC50, 0x9106, 0xDC51, 0x912C, 0xDC52, 0x9104, - 0xDC53, 0x90FF, 0xDC54, 0x90FC, 0xDC55, 0x9108, 0xDC56, 0x90F9, - 0xDC57, 0x90FB, 0xDC58, 0x9101, 0xDC59, 0x9100, 0xDC5A, 0x9107, - 0xDC5B, 0x9105, 0xDC5C, 0x9103, 0xDC5D, 0x9161, 0xDC5E, 0x9164, - 0xDC5F, 0x915F, 0xDC60, 0x9162, 0xDC61, 0x9160, 0xDC62, 0x9201, - 0xDC63, 0x920A, 0xDC64, 0x9225, 0xDC65, 0x9203, 0xDC66, 0x921A, - 0xDC67, 0x9226, 0xDC68, 0x920F, 0xDC69, 0x920C, 0xDC6A, 0x9200, - 0xDC6B, 0x9212, 0xDC6C, 0x91FF, 0xDC6D, 0x91FD, 0xDC6E, 0x9206, - 0xDC6F, 0x9204, 0xDC70, 0x9227, 0xDC71, 0x9202, 0xDC72, 0x921C, - 0xDC73, 0x9224, 0xDC74, 0x9219, 0xDC75, 0x9217, 0xDC76, 0x9205, - 0xDC77, 0x9216, 0xDC78, 0x957B, 0xDC79, 0x958D, 0xDC7A, 0x958C, - 0xDC7B, 0x9590, 0xDC7C, 0x9687, 0xDC7D, 0x967E, 0xDC7E, 0x9688, - 0xDCA1, 0x9689, 0xDCA2, 0x9683, 0xDCA3, 0x9680, 0xDCA4, 0x96C2, - 0xDCA5, 0x96C8, 0xDCA6, 0x96C3, 0xDCA7, 0x96F1, 0xDCA8, 0x96F0, - 0xDCA9, 0x976C, 0xDCAA, 0x9770, 0xDCAB, 0x976E, 0xDCAC, 0x9807, - 0xDCAD, 0x98A9, 0xDCAE, 0x98EB, 0xDCAF, 0x9CE6, 0xDCB0, 0x9EF9, - 0xDCB1, 0x4E83, 0xDCB2, 0x4E84, 0xDCB3, 0x4EB6, 0xDCB4, 0x50BD, - 0xDCB5, 0x50BF, 0xDCB6, 0x50C6, 0xDCB7, 0x50AE, 0xDCB8, 0x50C4, - 0xDCB9, 0x50CA, 0xDCBA, 0x50B4, 0xDCBB, 0x50C8, 0xDCBC, 0x50C2, - 0xDCBD, 0x50B0, 0xDCBE, 0x50C1, 0xDCBF, 0x50BA, 0xDCC0, 0x50B1, - 0xDCC1, 0x50CB, 0xDCC2, 0x50C9, 0xDCC3, 0x50B6, 0xDCC4, 0x50B8, - 0xDCC5, 0x51D7, 0xDCC6, 0x527A, 0xDCC7, 0x5278, 0xDCC8, 0x527B, - 0xDCC9, 0x527C, 0xDCCA, 0x55C3, 0xDCCB, 0x55DB, 0xDCCC, 0x55CC, - 0xDCCD, 0x55D0, 0xDCCE, 0x55CB, 0xDCCF, 0x55CA, 0xDCD0, 0x55DD, - 0xDCD1, 0x55C0, 0xDCD2, 0x55D4, 0xDCD3, 0x55C4, 0xDCD4, 0x55E9, - 0xDCD5, 0x55BF, 0xDCD6, 0x55D2, 0xDCD7, 0x558D, 0xDCD8, 0x55CF, - 0xDCD9, 0x55D5, 0xDCDA, 0x55E2, 0xDCDB, 0x55D6, 0xDCDC, 0x55C8, - 0xDCDD, 0x55F2, 0xDCDE, 0x55CD, 0xDCDF, 0x55D9, 0xDCE0, 0x55C2, - 0xDCE1, 0x5714, 0xDCE2, 0x5853, 0xDCE3, 0x5868, 0xDCE4, 0x5864, - 0xDCE5, 0x584F, 0xDCE6, 0x584D, 0xDCE7, 0x5849, 0xDCE8, 0x586F, - 0xDCE9, 0x5855, 0xDCEA, 0x584E, 0xDCEB, 0x585D, 0xDCEC, 0x5859, - 0xDCED, 0x5865, 0xDCEE, 0x585B, 0xDCEF, 0x583D, 0xDCF0, 0x5863, - 0xDCF1, 0x5871, 0xDCF2, 0x58FC, 0xDCF3, 0x5AC7, 0xDCF4, 0x5AC4, - 0xDCF5, 0x5ACB, 0xDCF6, 0x5ABA, 0xDCF7, 0x5AB8, 0xDCF8, 0x5AB1, - 0xDCF9, 0x5AB5, 0xDCFA, 0x5AB0, 0xDCFB, 0x5ABF, 0xDCFC, 0x5AC8, - 0xDCFD, 0x5ABB, 0xDCFE, 0x5AC6, 0xDD40, 0x5AB7, 0xDD41, 0x5AC0, - 0xDD42, 0x5ACA, 0xDD43, 0x5AB4, 0xDD44, 0x5AB6, 0xDD45, 0x5ACD, - 0xDD46, 0x5AB9, 0xDD47, 0x5A90, 0xDD48, 0x5BD6, 0xDD49, 0x5BD8, - 0xDD4A, 0x5BD9, 0xDD4B, 0x5C1F, 0xDD4C, 0x5C33, 0xDD4D, 0x5D71, - 0xDD4E, 0x5D63, 0xDD4F, 0x5D4A, 0xDD50, 0x5D65, 0xDD51, 0x5D72, - 0xDD52, 0x5D6C, 0xDD53, 0x5D5E, 0xDD54, 0x5D68, 0xDD55, 0x5D67, - 0xDD56, 0x5D62, 0xDD57, 0x5DF0, 0xDD58, 0x5E4F, 0xDD59, 0x5E4E, - 0xDD5A, 0x5E4A, 0xDD5B, 0x5E4D, 0xDD5C, 0x5E4B, 0xDD5D, 0x5EC5, - 0xDD5E, 0x5ECC, 0xDD5F, 0x5EC6, 0xDD60, 0x5ECB, 0xDD61, 0x5EC7, - 0xDD62, 0x5F40, 0xDD63, 0x5FAF, 0xDD64, 0x5FAD, 0xDD65, 0x60F7, - 0xDD66, 0x6149, 0xDD67, 0x614A, 0xDD68, 0x612B, 0xDD69, 0x6145, - 0xDD6A, 0x6136, 0xDD6B, 0x6132, 0xDD6C, 0x612E, 0xDD6D, 0x6146, - 0xDD6E, 0x612F, 0xDD6F, 0x614F, 0xDD70, 0x6129, 0xDD71, 0x6140, - 0xDD72, 0x6220, 0xDD73, 0x9168, 0xDD74, 0x6223, 0xDD75, 0x6225, - 0xDD76, 0x6224, 0xDD77, 0x63C5, 0xDD78, 0x63F1, 0xDD79, 0x63EB, - 0xDD7A, 0x6410, 0xDD7B, 0x6412, 0xDD7C, 0x6409, 0xDD7D, 0x6420, - 0xDD7E, 0x6424, 0xDDA1, 0x6433, 0xDDA2, 0x6443, 0xDDA3, 0x641F, - 0xDDA4, 0x6415, 0xDDA5, 0x6418, 0xDDA6, 0x6439, 0xDDA7, 0x6437, - 0xDDA8, 0x6422, 0xDDA9, 0x6423, 0xDDAA, 0x640C, 0xDDAB, 0x6426, - 0xDDAC, 0x6430, 0xDDAD, 0x6428, 0xDDAE, 0x6441, 0xDDAF, 0x6435, - 0xDDB0, 0x642F, 0xDDB1, 0x640A, 0xDDB2, 0x641A, 0xDDB3, 0x6440, - 0xDDB4, 0x6425, 0xDDB5, 0x6427, 0xDDB6, 0x640B, 0xDDB7, 0x63E7, - 0xDDB8, 0x641B, 0xDDB9, 0x642E, 0xDDBA, 0x6421, 0xDDBB, 0x640E, - 0xDDBC, 0x656F, 0xDDBD, 0x6592, 0xDDBE, 0x65D3, 0xDDBF, 0x6686, - 0xDDC0, 0x668C, 0xDDC1, 0x6695, 0xDDC2, 0x6690, 0xDDC3, 0x668B, - 0xDDC4, 0x668A, 0xDDC5, 0x6699, 0xDDC6, 0x6694, 0xDDC7, 0x6678, - 0xDDC8, 0x6720, 0xDDC9, 0x6966, 0xDDCA, 0x695F, 0xDDCB, 0x6938, - 0xDDCC, 0x694E, 0xDDCD, 0x6962, 0xDDCE, 0x6971, 0xDDCF, 0x693F, - 0xDDD0, 0x6945, 0xDDD1, 0x696A, 0xDDD2, 0x6939, 0xDDD3, 0x6942, - 0xDDD4, 0x6957, 0xDDD5, 0x6959, 0xDDD6, 0x697A, 0xDDD7, 0x6948, - 0xDDD8, 0x6949, 0xDDD9, 0x6935, 0xDDDA, 0x696C, 0xDDDB, 0x6933, - 0xDDDC, 0x693D, 0xDDDD, 0x6965, 0xDDDE, 0x68F0, 0xDDDF, 0x6978, - 0xDDE0, 0x6934, 0xDDE1, 0x6969, 0xDDE2, 0x6940, 0xDDE3, 0x696F, - 0xDDE4, 0x6944, 0xDDE5, 0x6976, 0xDDE6, 0x6958, 0xDDE7, 0x6941, - 0xDDE8, 0x6974, 0xDDE9, 0x694C, 0xDDEA, 0x693B, 0xDDEB, 0x694B, - 0xDDEC, 0x6937, 0xDDED, 0x695C, 0xDDEE, 0x694F, 0xDDEF, 0x6951, - 0xDDF0, 0x6932, 0xDDF1, 0x6952, 0xDDF2, 0x692F, 0xDDF3, 0x697B, - 0xDDF4, 0x693C, 0xDDF5, 0x6B46, 0xDDF6, 0x6B45, 0xDDF7, 0x6B43, - 0xDDF8, 0x6B42, 0xDDF9, 0x6B48, 0xDDFA, 0x6B41, 0xDDFB, 0x6B9B, - 0xDDFC, 0xFA0D, 0xDDFD, 0x6BFB, 0xDDFE, 0x6BFC, 0xDE40, 0x6BF9, - 0xDE41, 0x6BF7, 0xDE42, 0x6BF8, 0xDE43, 0x6E9B, 0xDE44, 0x6ED6, - 0xDE45, 0x6EC8, 0xDE46, 0x6E8F, 0xDE47, 0x6EC0, 0xDE48, 0x6E9F, - 0xDE49, 0x6E93, 0xDE4A, 0x6E94, 0xDE4B, 0x6EA0, 0xDE4C, 0x6EB1, - 0xDE4D, 0x6EB9, 0xDE4E, 0x6EC6, 0xDE4F, 0x6ED2, 0xDE50, 0x6EBD, - 0xDE51, 0x6EC1, 0xDE52, 0x6E9E, 0xDE53, 0x6EC9, 0xDE54, 0x6EB7, - 0xDE55, 0x6EB0, 0xDE56, 0x6ECD, 0xDE57, 0x6EA6, 0xDE58, 0x6ECF, - 0xDE59, 0x6EB2, 0xDE5A, 0x6EBE, 0xDE5B, 0x6EC3, 0xDE5C, 0x6EDC, - 0xDE5D, 0x6ED8, 0xDE5E, 0x6E99, 0xDE5F, 0x6E92, 0xDE60, 0x6E8E, - 0xDE61, 0x6E8D, 0xDE62, 0x6EA4, 0xDE63, 0x6EA1, 0xDE64, 0x6EBF, - 0xDE65, 0x6EB3, 0xDE66, 0x6ED0, 0xDE67, 0x6ECA, 0xDE68, 0x6E97, - 0xDE69, 0x6EAE, 0xDE6A, 0x6EA3, 0xDE6B, 0x7147, 0xDE6C, 0x7154, - 0xDE6D, 0x7152, 0xDE6E, 0x7163, 0xDE6F, 0x7160, 0xDE70, 0x7141, - 0xDE71, 0x715D, 0xDE72, 0x7162, 0xDE73, 0x7172, 0xDE74, 0x7178, - 0xDE75, 0x716A, 0xDE76, 0x7161, 0xDE77, 0x7142, 0xDE78, 0x7158, - 0xDE79, 0x7143, 0xDE7A, 0x714B, 0xDE7B, 0x7170, 0xDE7C, 0x715F, - 0xDE7D, 0x7150, 0xDE7E, 0x7153, 0xDEA1, 0x7144, 0xDEA2, 0x714D, - 0xDEA3, 0x715A, 0xDEA4, 0x724F, 0xDEA5, 0x728D, 0xDEA6, 0x728C, - 0xDEA7, 0x7291, 0xDEA8, 0x7290, 0xDEA9, 0x728E, 0xDEAA, 0x733C, - 0xDEAB, 0x7342, 0xDEAC, 0x733B, 0xDEAD, 0x733A, 0xDEAE, 0x7340, - 0xDEAF, 0x734A, 0xDEB0, 0x7349, 0xDEB1, 0x7444, 0xDEB2, 0x744A, - 0xDEB3, 0x744B, 0xDEB4, 0x7452, 0xDEB5, 0x7451, 0xDEB6, 0x7457, - 0xDEB7, 0x7440, 0xDEB8, 0x744F, 0xDEB9, 0x7450, 0xDEBA, 0x744E, - 0xDEBB, 0x7442, 0xDEBC, 0x7446, 0xDEBD, 0x744D, 0xDEBE, 0x7454, - 0xDEBF, 0x74E1, 0xDEC0, 0x74FF, 0xDEC1, 0x74FE, 0xDEC2, 0x74FD, - 0xDEC3, 0x751D, 0xDEC4, 0x7579, 0xDEC5, 0x7577, 0xDEC6, 0x6983, - 0xDEC7, 0x75EF, 0xDEC8, 0x760F, 0xDEC9, 0x7603, 0xDECA, 0x75F7, - 0xDECB, 0x75FE, 0xDECC, 0x75FC, 0xDECD, 0x75F9, 0xDECE, 0x75F8, - 0xDECF, 0x7610, 0xDED0, 0x75FB, 0xDED1, 0x75F6, 0xDED2, 0x75ED, - 0xDED3, 0x75F5, 0xDED4, 0x75FD, 0xDED5, 0x7699, 0xDED6, 0x76B5, - 0xDED7, 0x76DD, 0xDED8, 0x7755, 0xDED9, 0x775F, 0xDEDA, 0x7760, - 0xDEDB, 0x7752, 0xDEDC, 0x7756, 0xDEDD, 0x775A, 0xDEDE, 0x7769, - 0xDEDF, 0x7767, 0xDEE0, 0x7754, 0xDEE1, 0x7759, 0xDEE2, 0x776D, - 0xDEE3, 0x77E0, 0xDEE4, 0x7887, 0xDEE5, 0x789A, 0xDEE6, 0x7894, - 0xDEE7, 0x788F, 0xDEE8, 0x7884, 0xDEE9, 0x7895, 0xDEEA, 0x7885, - 0xDEEB, 0x7886, 0xDEEC, 0x78A1, 0xDEED, 0x7883, 0xDEEE, 0x7879, - 0xDEEF, 0x7899, 0xDEF0, 0x7880, 0xDEF1, 0x7896, 0xDEF2, 0x787B, - 0xDEF3, 0x797C, 0xDEF4, 0x7982, 0xDEF5, 0x797D, 0xDEF6, 0x7979, - 0xDEF7, 0x7A11, 0xDEF8, 0x7A18, 0xDEF9, 0x7A19, 0xDEFA, 0x7A12, - 0xDEFB, 0x7A17, 0xDEFC, 0x7A15, 0xDEFD, 0x7A22, 0xDEFE, 0x7A13, - 0xDF40, 0x7A1B, 0xDF41, 0x7A10, 0xDF42, 0x7AA3, 0xDF43, 0x7AA2, - 0xDF44, 0x7A9E, 0xDF45, 0x7AEB, 0xDF46, 0x7B66, 0xDF47, 0x7B64, - 0xDF48, 0x7B6D, 0xDF49, 0x7B74, 0xDF4A, 0x7B69, 0xDF4B, 0x7B72, - 0xDF4C, 0x7B65, 0xDF4D, 0x7B73, 0xDF4E, 0x7B71, 0xDF4F, 0x7B70, - 0xDF50, 0x7B61, 0xDF51, 0x7B78, 0xDF52, 0x7B76, 0xDF53, 0x7B63, - 0xDF54, 0x7CB2, 0xDF55, 0x7CB4, 0xDF56, 0x7CAF, 0xDF57, 0x7D88, - 0xDF58, 0x7D86, 0xDF59, 0x7D80, 0xDF5A, 0x7D8D, 0xDF5B, 0x7D7F, - 0xDF5C, 0x7D85, 0xDF5D, 0x7D7A, 0xDF5E, 0x7D8E, 0xDF5F, 0x7D7B, - 0xDF60, 0x7D83, 0xDF61, 0x7D7C, 0xDF62, 0x7D8C, 0xDF63, 0x7D94, - 0xDF64, 0x7D84, 0xDF65, 0x7D7D, 0xDF66, 0x7D92, 0xDF67, 0x7F6D, - 0xDF68, 0x7F6B, 0xDF69, 0x7F67, 0xDF6A, 0x7F68, 0xDF6B, 0x7F6C, - 0xDF6C, 0x7FA6, 0xDF6D, 0x7FA5, 0xDF6E, 0x7FA7, 0xDF6F, 0x7FDB, - 0xDF70, 0x7FDC, 0xDF71, 0x8021, 0xDF72, 0x8164, 0xDF73, 0x8160, - 0xDF74, 0x8177, 0xDF75, 0x815C, 0xDF76, 0x8169, 0xDF77, 0x815B, - 0xDF78, 0x8162, 0xDF79, 0x8172, 0xDF7A, 0x6721, 0xDF7B, 0x815E, - 0xDF7C, 0x8176, 0xDF7D, 0x8167, 0xDF7E, 0x816F, 0xDFA1, 0x8144, - 0xDFA2, 0x8161, 0xDFA3, 0x821D, 0xDFA4, 0x8249, 0xDFA5, 0x8244, - 0xDFA6, 0x8240, 0xDFA7, 0x8242, 0xDFA8, 0x8245, 0xDFA9, 0x84F1, - 0xDFAA, 0x843F, 0xDFAB, 0x8456, 0xDFAC, 0x8476, 0xDFAD, 0x8479, - 0xDFAE, 0x848F, 0xDFAF, 0x848D, 0xDFB0, 0x8465, 0xDFB1, 0x8451, - 0xDFB2, 0x8440, 0xDFB3, 0x8486, 0xDFB4, 0x8467, 0xDFB5, 0x8430, - 0xDFB6, 0x844D, 0xDFB7, 0x847D, 0xDFB8, 0x845A, 0xDFB9, 0x8459, - 0xDFBA, 0x8474, 0xDFBB, 0x8473, 0xDFBC, 0x845D, 0xDFBD, 0x8507, - 0xDFBE, 0x845E, 0xDFBF, 0x8437, 0xDFC0, 0x843A, 0xDFC1, 0x8434, - 0xDFC2, 0x847A, 0xDFC3, 0x8443, 0xDFC4, 0x8478, 0xDFC5, 0x8432, - 0xDFC6, 0x8445, 0xDFC7, 0x8429, 0xDFC8, 0x83D9, 0xDFC9, 0x844B, - 0xDFCA, 0x842F, 0xDFCB, 0x8442, 0xDFCC, 0x842D, 0xDFCD, 0x845F, - 0xDFCE, 0x8470, 0xDFCF, 0x8439, 0xDFD0, 0x844E, 0xDFD1, 0x844C, - 0xDFD2, 0x8452, 0xDFD3, 0x846F, 0xDFD4, 0x84C5, 0xDFD5, 0x848E, - 0xDFD6, 0x843B, 0xDFD7, 0x8447, 0xDFD8, 0x8436, 0xDFD9, 0x8433, - 0xDFDA, 0x8468, 0xDFDB, 0x847E, 0xDFDC, 0x8444, 0xDFDD, 0x842B, - 0xDFDE, 0x8460, 0xDFDF, 0x8454, 0xDFE0, 0x846E, 0xDFE1, 0x8450, - 0xDFE2, 0x870B, 0xDFE3, 0x8704, 0xDFE4, 0x86F7, 0xDFE5, 0x870C, - 0xDFE6, 0x86FA, 0xDFE7, 0x86D6, 0xDFE8, 0x86F5, 0xDFE9, 0x874D, - 0xDFEA, 0x86F8, 0xDFEB, 0x870E, 0xDFEC, 0x8709, 0xDFED, 0x8701, - 0xDFEE, 0x86F6, 0xDFEF, 0x870D, 0xDFF0, 0x8705, 0xDFF1, 0x88D6, - 0xDFF2, 0x88CB, 0xDFF3, 0x88CD, 0xDFF4, 0x88CE, 0xDFF5, 0x88DE, - 0xDFF6, 0x88DB, 0xDFF7, 0x88DA, 0xDFF8, 0x88CC, 0xDFF9, 0x88D0, - 0xDFFA, 0x8985, 0xDFFB, 0x899B, 0xDFFC, 0x89DF, 0xDFFD, 0x89E5, - 0xDFFE, 0x89E4, 0xE040, 0x89E1, 0xE041, 0x89E0, 0xE042, 0x89E2, - 0xE043, 0x89DC, 0xE044, 0x89E6, 0xE045, 0x8A76, 0xE046, 0x8A86, - 0xE047, 0x8A7F, 0xE048, 0x8A61, 0xE049, 0x8A3F, 0xE04A, 0x8A77, - 0xE04B, 0x8A82, 0xE04C, 0x8A84, 0xE04D, 0x8A75, 0xE04E, 0x8A83, - 0xE04F, 0x8A81, 0xE050, 0x8A74, 0xE051, 0x8A7A, 0xE052, 0x8C3C, - 0xE053, 0x8C4B, 0xE054, 0x8C4A, 0xE055, 0x8C65, 0xE056, 0x8C64, - 0xE057, 0x8C66, 0xE058, 0x8C86, 0xE059, 0x8C84, 0xE05A, 0x8C85, - 0xE05B, 0x8CCC, 0xE05C, 0x8D68, 0xE05D, 0x8D69, 0xE05E, 0x8D91, - 0xE05F, 0x8D8C, 0xE060, 0x8D8E, 0xE061, 0x8D8F, 0xE062, 0x8D8D, - 0xE063, 0x8D93, 0xE064, 0x8D94, 0xE065, 0x8D90, 0xE066, 0x8D92, - 0xE067, 0x8DF0, 0xE068, 0x8DE0, 0xE069, 0x8DEC, 0xE06A, 0x8DF1, - 0xE06B, 0x8DEE, 0xE06C, 0x8DD0, 0xE06D, 0x8DE9, 0xE06E, 0x8DE3, - 0xE06F, 0x8DE2, 0xE070, 0x8DE7, 0xE071, 0x8DF2, 0xE072, 0x8DEB, - 0xE073, 0x8DF4, 0xE074, 0x8F06, 0xE075, 0x8EFF, 0xE076, 0x8F01, - 0xE077, 0x8F00, 0xE078, 0x8F05, 0xE079, 0x8F07, 0xE07A, 0x8F08, - 0xE07B, 0x8F02, 0xE07C, 0x8F0B, 0xE07D, 0x9052, 0xE07E, 0x903F, - 0xE0A1, 0x9044, 0xE0A2, 0x9049, 0xE0A3, 0x903D, 0xE0A4, 0x9110, - 0xE0A5, 0x910D, 0xE0A6, 0x910F, 0xE0A7, 0x9111, 0xE0A8, 0x9116, - 0xE0A9, 0x9114, 0xE0AA, 0x910B, 0xE0AB, 0x910E, 0xE0AC, 0x916E, - 0xE0AD, 0x916F, 0xE0AE, 0x9248, 0xE0AF, 0x9252, 0xE0B0, 0x9230, - 0xE0B1, 0x923A, 0xE0B2, 0x9266, 0xE0B3, 0x9233, 0xE0B4, 0x9265, - 0xE0B5, 0x925E, 0xE0B6, 0x9283, 0xE0B7, 0x922E, 0xE0B8, 0x924A, - 0xE0B9, 0x9246, 0xE0BA, 0x926D, 0xE0BB, 0x926C, 0xE0BC, 0x924F, - 0xE0BD, 0x9260, 0xE0BE, 0x9267, 0xE0BF, 0x926F, 0xE0C0, 0x9236, - 0xE0C1, 0x9261, 0xE0C2, 0x9270, 0xE0C3, 0x9231, 0xE0C4, 0x9254, - 0xE0C5, 0x9263, 0xE0C6, 0x9250, 0xE0C7, 0x9272, 0xE0C8, 0x924E, - 0xE0C9, 0x9253, 0xE0CA, 0x924C, 0xE0CB, 0x9256, 0xE0CC, 0x9232, - 0xE0CD, 0x959F, 0xE0CE, 0x959C, 0xE0CF, 0x959E, 0xE0D0, 0x959B, - 0xE0D1, 0x9692, 0xE0D2, 0x9693, 0xE0D3, 0x9691, 0xE0D4, 0x9697, - 0xE0D5, 0x96CE, 0xE0D6, 0x96FA, 0xE0D7, 0x96FD, 0xE0D8, 0x96F8, - 0xE0D9, 0x96F5, 0xE0DA, 0x9773, 0xE0DB, 0x9777, 0xE0DC, 0x9778, - 0xE0DD, 0x9772, 0xE0DE, 0x980F, 0xE0DF, 0x980D, 0xE0E0, 0x980E, - 0xE0E1, 0x98AC, 0xE0E2, 0x98F6, 0xE0E3, 0x98F9, 0xE0E4, 0x99AF, - 0xE0E5, 0x99B2, 0xE0E6, 0x99B0, 0xE0E7, 0x99B5, 0xE0E8, 0x9AAD, - 0xE0E9, 0x9AAB, 0xE0EA, 0x9B5B, 0xE0EB, 0x9CEA, 0xE0EC, 0x9CED, - 0xE0ED, 0x9CE7, 0xE0EE, 0x9E80, 0xE0EF, 0x9EFD, 0xE0F0, 0x50E6, - 0xE0F1, 0x50D4, 0xE0F2, 0x50D7, 0xE0F3, 0x50E8, 0xE0F4, 0x50F3, - 0xE0F5, 0x50DB, 0xE0F6, 0x50EA, 0xE0F7, 0x50DD, 0xE0F8, 0x50E4, - 0xE0F9, 0x50D3, 0xE0FA, 0x50EC, 0xE0FB, 0x50F0, 0xE0FC, 0x50EF, - 0xE0FD, 0x50E3, 0xE0FE, 0x50E0, 0xE140, 0x51D8, 0xE141, 0x5280, - 0xE142, 0x5281, 0xE143, 0x52E9, 0xE144, 0x52EB, 0xE145, 0x5330, - 0xE146, 0x53AC, 0xE147, 0x5627, 0xE148, 0x5615, 0xE149, 0x560C, - 0xE14A, 0x5612, 0xE14B, 0x55FC, 0xE14C, 0x560F, 0xE14D, 0x561C, - 0xE14E, 0x5601, 0xE14F, 0x5613, 0xE150, 0x5602, 0xE151, 0x55FA, - 0xE152, 0x561D, 0xE153, 0x5604, 0xE154, 0x55FF, 0xE155, 0x55F9, - 0xE156, 0x5889, 0xE157, 0x587C, 0xE158, 0x5890, 0xE159, 0x5898, - 0xE15A, 0x5886, 0xE15B, 0x5881, 0xE15C, 0x587F, 0xE15D, 0x5874, - 0xE15E, 0x588B, 0xE15F, 0x587A, 0xE160, 0x5887, 0xE161, 0x5891, - 0xE162, 0x588E, 0xE163, 0x5876, 0xE164, 0x5882, 0xE165, 0x5888, - 0xE166, 0x587B, 0xE167, 0x5894, 0xE168, 0x588F, 0xE169, 0x58FE, - 0xE16A, 0x596B, 0xE16B, 0x5ADC, 0xE16C, 0x5AEE, 0xE16D, 0x5AE5, - 0xE16E, 0x5AD5, 0xE16F, 0x5AEA, 0xE170, 0x5ADA, 0xE171, 0x5AED, - 0xE172, 0x5AEB, 0xE173, 0x5AF3, 0xE174, 0x5AE2, 0xE175, 0x5AE0, - 0xE176, 0x5ADB, 0xE177, 0x5AEC, 0xE178, 0x5ADE, 0xE179, 0x5ADD, - 0xE17A, 0x5AD9, 0xE17B, 0x5AE8, 0xE17C, 0x5ADF, 0xE17D, 0x5B77, - 0xE17E, 0x5BE0, 0xE1A1, 0x5BE3, 0xE1A2, 0x5C63, 0xE1A3, 0x5D82, - 0xE1A4, 0x5D80, 0xE1A5, 0x5D7D, 0xE1A6, 0x5D86, 0xE1A7, 0x5D7A, - 0xE1A8, 0x5D81, 0xE1A9, 0x5D77, 0xE1AA, 0x5D8A, 0xE1AB, 0x5D89, - 0xE1AC, 0x5D88, 0xE1AD, 0x5D7E, 0xE1AE, 0x5D7C, 0xE1AF, 0x5D8D, - 0xE1B0, 0x5D79, 0xE1B1, 0x5D7F, 0xE1B2, 0x5E58, 0xE1B3, 0x5E59, - 0xE1B4, 0x5E53, 0xE1B5, 0x5ED8, 0xE1B6, 0x5ED1, 0xE1B7, 0x5ED7, - 0xE1B8, 0x5ECE, 0xE1B9, 0x5EDC, 0xE1BA, 0x5ED5, 0xE1BB, 0x5ED9, - 0xE1BC, 0x5ED2, 0xE1BD, 0x5ED4, 0xE1BE, 0x5F44, 0xE1BF, 0x5F43, - 0xE1C0, 0x5F6F, 0xE1C1, 0x5FB6, 0xE1C2, 0x612C, 0xE1C3, 0x6128, - 0xE1C4, 0x6141, 0xE1C5, 0x615E, 0xE1C6, 0x6171, 0xE1C7, 0x6173, - 0xE1C8, 0x6152, 0xE1C9, 0x6153, 0xE1CA, 0x6172, 0xE1CB, 0x616C, - 0xE1CC, 0x6180, 0xE1CD, 0x6174, 0xE1CE, 0x6154, 0xE1CF, 0x617A, - 0xE1D0, 0x615B, 0xE1D1, 0x6165, 0xE1D2, 0x613B, 0xE1D3, 0x616A, - 0xE1D4, 0x6161, 0xE1D5, 0x6156, 0xE1D6, 0x6229, 0xE1D7, 0x6227, - 0xE1D8, 0x622B, 0xE1D9, 0x642B, 0xE1DA, 0x644D, 0xE1DB, 0x645B, - 0xE1DC, 0x645D, 0xE1DD, 0x6474, 0xE1DE, 0x6476, 0xE1DF, 0x6472, - 0xE1E0, 0x6473, 0xE1E1, 0x647D, 0xE1E2, 0x6475, 0xE1E3, 0x6466, - 0xE1E4, 0x64A6, 0xE1E5, 0x644E, 0xE1E6, 0x6482, 0xE1E7, 0x645E, - 0xE1E8, 0x645C, 0xE1E9, 0x644B, 0xE1EA, 0x6453, 0xE1EB, 0x6460, - 0xE1EC, 0x6450, 0xE1ED, 0x647F, 0xE1EE, 0x643F, 0xE1EF, 0x646C, - 0xE1F0, 0x646B, 0xE1F1, 0x6459, 0xE1F2, 0x6465, 0xE1F3, 0x6477, - 0xE1F4, 0x6573, 0xE1F5, 0x65A0, 0xE1F6, 0x66A1, 0xE1F7, 0x66A0, - 0xE1F8, 0x669F, 0xE1F9, 0x6705, 0xE1FA, 0x6704, 0xE1FB, 0x6722, - 0xE1FC, 0x69B1, 0xE1FD, 0x69B6, 0xE1FE, 0x69C9, 0xE240, 0x69A0, - 0xE241, 0x69CE, 0xE242, 0x6996, 0xE243, 0x69B0, 0xE244, 0x69AC, - 0xE245, 0x69BC, 0xE246, 0x6991, 0xE247, 0x6999, 0xE248, 0x698E, - 0xE249, 0x69A7, 0xE24A, 0x698D, 0xE24B, 0x69A9, 0xE24C, 0x69BE, - 0xE24D, 0x69AF, 0xE24E, 0x69BF, 0xE24F, 0x69C4, 0xE250, 0x69BD, - 0xE251, 0x69A4, 0xE252, 0x69D4, 0xE253, 0x69B9, 0xE254, 0x69CA, - 0xE255, 0x699A, 0xE256, 0x69CF, 0xE257, 0x69B3, 0xE258, 0x6993, - 0xE259, 0x69AA, 0xE25A, 0x69A1, 0xE25B, 0x699E, 0xE25C, 0x69D9, - 0xE25D, 0x6997, 0xE25E, 0x6990, 0xE25F, 0x69C2, 0xE260, 0x69B5, - 0xE261, 0x69A5, 0xE262, 0x69C6, 0xE263, 0x6B4A, 0xE264, 0x6B4D, - 0xE265, 0x6B4B, 0xE266, 0x6B9E, 0xE267, 0x6B9F, 0xE268, 0x6BA0, - 0xE269, 0x6BC3, 0xE26A, 0x6BC4, 0xE26B, 0x6BFE, 0xE26C, 0x6ECE, - 0xE26D, 0x6EF5, 0xE26E, 0x6EF1, 0xE26F, 0x6F03, 0xE270, 0x6F25, - 0xE271, 0x6EF8, 0xE272, 0x6F37, 0xE273, 0x6EFB, 0xE274, 0x6F2E, - 0xE275, 0x6F09, 0xE276, 0x6F4E, 0xE277, 0x6F19, 0xE278, 0x6F1A, - 0xE279, 0x6F27, 0xE27A, 0x6F18, 0xE27B, 0x6F3B, 0xE27C, 0x6F12, - 0xE27D, 0x6EED, 0xE27E, 0x6F0A, 0xE2A1, 0x6F36, 0xE2A2, 0x6F73, - 0xE2A3, 0x6EF9, 0xE2A4, 0x6EEE, 0xE2A5, 0x6F2D, 0xE2A6, 0x6F40, - 0xE2A7, 0x6F30, 0xE2A8, 0x6F3C, 0xE2A9, 0x6F35, 0xE2AA, 0x6EEB, - 0xE2AB, 0x6F07, 0xE2AC, 0x6F0E, 0xE2AD, 0x6F43, 0xE2AE, 0x6F05, - 0xE2AF, 0x6EFD, 0xE2B0, 0x6EF6, 0xE2B1, 0x6F39, 0xE2B2, 0x6F1C, - 0xE2B3, 0x6EFC, 0xE2B4, 0x6F3A, 0xE2B5, 0x6F1F, 0xE2B6, 0x6F0D, - 0xE2B7, 0x6F1E, 0xE2B8, 0x6F08, 0xE2B9, 0x6F21, 0xE2BA, 0x7187, - 0xE2BB, 0x7190, 0xE2BC, 0x7189, 0xE2BD, 0x7180, 0xE2BE, 0x7185, - 0xE2BF, 0x7182, 0xE2C0, 0x718F, 0xE2C1, 0x717B, 0xE2C2, 0x7186, - 0xE2C3, 0x7181, 0xE2C4, 0x7197, 0xE2C5, 0x7244, 0xE2C6, 0x7253, - 0xE2C7, 0x7297, 0xE2C8, 0x7295, 0xE2C9, 0x7293, 0xE2CA, 0x7343, - 0xE2CB, 0x734D, 0xE2CC, 0x7351, 0xE2CD, 0x734C, 0xE2CE, 0x7462, - 0xE2CF, 0x7473, 0xE2D0, 0x7471, 0xE2D1, 0x7475, 0xE2D2, 0x7472, - 0xE2D3, 0x7467, 0xE2D4, 0x746E, 0xE2D5, 0x7500, 0xE2D6, 0x7502, - 0xE2D7, 0x7503, 0xE2D8, 0x757D, 0xE2D9, 0x7590, 0xE2DA, 0x7616, - 0xE2DB, 0x7608, 0xE2DC, 0x760C, 0xE2DD, 0x7615, 0xE2DE, 0x7611, - 0xE2DF, 0x760A, 0xE2E0, 0x7614, 0xE2E1, 0x76B8, 0xE2E2, 0x7781, - 0xE2E3, 0x777C, 0xE2E4, 0x7785, 0xE2E5, 0x7782, 0xE2E6, 0x776E, - 0xE2E7, 0x7780, 0xE2E8, 0x776F, 0xE2E9, 0x777E, 0xE2EA, 0x7783, - 0xE2EB, 0x78B2, 0xE2EC, 0x78AA, 0xE2ED, 0x78B4, 0xE2EE, 0x78AD, - 0xE2EF, 0x78A8, 0xE2F0, 0x787E, 0xE2F1, 0x78AB, 0xE2F2, 0x789E, - 0xE2F3, 0x78A5, 0xE2F4, 0x78A0, 0xE2F5, 0x78AC, 0xE2F6, 0x78A2, - 0xE2F7, 0x78A4, 0xE2F8, 0x7998, 0xE2F9, 0x798A, 0xE2FA, 0x798B, - 0xE2FB, 0x7996, 0xE2FC, 0x7995, 0xE2FD, 0x7994, 0xE2FE, 0x7993, - 0xE340, 0x7997, 0xE341, 0x7988, 0xE342, 0x7992, 0xE343, 0x7990, - 0xE344, 0x7A2B, 0xE345, 0x7A4A, 0xE346, 0x7A30, 0xE347, 0x7A2F, - 0xE348, 0x7A28, 0xE349, 0x7A26, 0xE34A, 0x7AA8, 0xE34B, 0x7AAB, - 0xE34C, 0x7AAC, 0xE34D, 0x7AEE, 0xE34E, 0x7B88, 0xE34F, 0x7B9C, - 0xE350, 0x7B8A, 0xE351, 0x7B91, 0xE352, 0x7B90, 0xE353, 0x7B96, - 0xE354, 0x7B8D, 0xE355, 0x7B8C, 0xE356, 0x7B9B, 0xE357, 0x7B8E, - 0xE358, 0x7B85, 0xE359, 0x7B98, 0xE35A, 0x5284, 0xE35B, 0x7B99, - 0xE35C, 0x7BA4, 0xE35D, 0x7B82, 0xE35E, 0x7CBB, 0xE35F, 0x7CBF, - 0xE360, 0x7CBC, 0xE361, 0x7CBA, 0xE362, 0x7DA7, 0xE363, 0x7DB7, - 0xE364, 0x7DC2, 0xE365, 0x7DA3, 0xE366, 0x7DAA, 0xE367, 0x7DC1, - 0xE368, 0x7DC0, 0xE369, 0x7DC5, 0xE36A, 0x7D9D, 0xE36B, 0x7DCE, - 0xE36C, 0x7DC4, 0xE36D, 0x7DC6, 0xE36E, 0x7DCB, 0xE36F, 0x7DCC, - 0xE370, 0x7DAF, 0xE371, 0x7DB9, 0xE372, 0x7D96, 0xE373, 0x7DBC, - 0xE374, 0x7D9F, 0xE375, 0x7DA6, 0xE376, 0x7DAE, 0xE377, 0x7DA9, - 0xE378, 0x7DA1, 0xE379, 0x7DC9, 0xE37A, 0x7F73, 0xE37B, 0x7FE2, - 0xE37C, 0x7FE3, 0xE37D, 0x7FE5, 0xE37E, 0x7FDE, 0xE3A1, 0x8024, - 0xE3A2, 0x805D, 0xE3A3, 0x805C, 0xE3A4, 0x8189, 0xE3A5, 0x8186, - 0xE3A6, 0x8183, 0xE3A7, 0x8187, 0xE3A8, 0x818D, 0xE3A9, 0x818C, - 0xE3AA, 0x818B, 0xE3AB, 0x8215, 0xE3AC, 0x8497, 0xE3AD, 0x84A4, - 0xE3AE, 0x84A1, 0xE3AF, 0x849F, 0xE3B0, 0x84BA, 0xE3B1, 0x84CE, - 0xE3B2, 0x84C2, 0xE3B3, 0x84AC, 0xE3B4, 0x84AE, 0xE3B5, 0x84AB, - 0xE3B6, 0x84B9, 0xE3B7, 0x84B4, 0xE3B8, 0x84C1, 0xE3B9, 0x84CD, - 0xE3BA, 0x84AA, 0xE3BB, 0x849A, 0xE3BC, 0x84B1, 0xE3BD, 0x84D0, - 0xE3BE, 0x849D, 0xE3BF, 0x84A7, 0xE3C0, 0x84BB, 0xE3C1, 0x84A2, - 0xE3C2, 0x8494, 0xE3C3, 0x84C7, 0xE3C4, 0x84CC, 0xE3C5, 0x849B, - 0xE3C6, 0x84A9, 0xE3C7, 0x84AF, 0xE3C8, 0x84A8, 0xE3C9, 0x84D6, - 0xE3CA, 0x8498, 0xE3CB, 0x84B6, 0xE3CC, 0x84CF, 0xE3CD, 0x84A0, - 0xE3CE, 0x84D7, 0xE3CF, 0x84D4, 0xE3D0, 0x84D2, 0xE3D1, 0x84DB, - 0xE3D2, 0x84B0, 0xE3D3, 0x8491, 0xE3D4, 0x8661, 0xE3D5, 0x8733, - 0xE3D6, 0x8723, 0xE3D7, 0x8728, 0xE3D8, 0x876B, 0xE3D9, 0x8740, - 0xE3DA, 0x872E, 0xE3DB, 0x871E, 0xE3DC, 0x8721, 0xE3DD, 0x8719, - 0xE3DE, 0x871B, 0xE3DF, 0x8743, 0xE3E0, 0x872C, 0xE3E1, 0x8741, - 0xE3E2, 0x873E, 0xE3E3, 0x8746, 0xE3E4, 0x8720, 0xE3E5, 0x8732, - 0xE3E6, 0x872A, 0xE3E7, 0x872D, 0xE3E8, 0x873C, 0xE3E9, 0x8712, - 0xE3EA, 0x873A, 0xE3EB, 0x8731, 0xE3EC, 0x8735, 0xE3ED, 0x8742, - 0xE3EE, 0x8726, 0xE3EF, 0x8727, 0xE3F0, 0x8738, 0xE3F1, 0x8724, - 0xE3F2, 0x871A, 0xE3F3, 0x8730, 0xE3F4, 0x8711, 0xE3F5, 0x88F7, - 0xE3F6, 0x88E7, 0xE3F7, 0x88F1, 0xE3F8, 0x88F2, 0xE3F9, 0x88FA, - 0xE3FA, 0x88FE, 0xE3FB, 0x88EE, 0xE3FC, 0x88FC, 0xE3FD, 0x88F6, - 0xE3FE, 0x88FB, 0xE440, 0x88F0, 0xE441, 0x88EC, 0xE442, 0x88EB, - 0xE443, 0x899D, 0xE444, 0x89A1, 0xE445, 0x899F, 0xE446, 0x899E, - 0xE447, 0x89E9, 0xE448, 0x89EB, 0xE449, 0x89E8, 0xE44A, 0x8AAB, - 0xE44B, 0x8A99, 0xE44C, 0x8A8B, 0xE44D, 0x8A92, 0xE44E, 0x8A8F, - 0xE44F, 0x8A96, 0xE450, 0x8C3D, 0xE451, 0x8C68, 0xE452, 0x8C69, - 0xE453, 0x8CD5, 0xE454, 0x8CCF, 0xE455, 0x8CD7, 0xE456, 0x8D96, - 0xE457, 0x8E09, 0xE458, 0x8E02, 0xE459, 0x8DFF, 0xE45A, 0x8E0D, - 0xE45B, 0x8DFD, 0xE45C, 0x8E0A, 0xE45D, 0x8E03, 0xE45E, 0x8E07, - 0xE45F, 0x8E06, 0xE460, 0x8E05, 0xE461, 0x8DFE, 0xE462, 0x8E00, - 0xE463, 0x8E04, 0xE464, 0x8F10, 0xE465, 0x8F11, 0xE466, 0x8F0E, - 0xE467, 0x8F0D, 0xE468, 0x9123, 0xE469, 0x911C, 0xE46A, 0x9120, - 0xE46B, 0x9122, 0xE46C, 0x911F, 0xE46D, 0x911D, 0xE46E, 0x911A, - 0xE46F, 0x9124, 0xE470, 0x9121, 0xE471, 0x911B, 0xE472, 0x917A, - 0xE473, 0x9172, 0xE474, 0x9179, 0xE475, 0x9173, 0xE476, 0x92A5, - 0xE477, 0x92A4, 0xE478, 0x9276, 0xE479, 0x929B, 0xE47A, 0x927A, - 0xE47B, 0x92A0, 0xE47C, 0x9294, 0xE47D, 0x92AA, 0xE47E, 0x928D, - 0xE4A1, 0x92A6, 0xE4A2, 0x929A, 0xE4A3, 0x92AB, 0xE4A4, 0x9279, - 0xE4A5, 0x9297, 0xE4A6, 0x927F, 0xE4A7, 0x92A3, 0xE4A8, 0x92EE, - 0xE4A9, 0x928E, 0xE4AA, 0x9282, 0xE4AB, 0x9295, 0xE4AC, 0x92A2, - 0xE4AD, 0x927D, 0xE4AE, 0x9288, 0xE4AF, 0x92A1, 0xE4B0, 0x928A, - 0xE4B1, 0x9286, 0xE4B2, 0x928C, 0xE4B3, 0x9299, 0xE4B4, 0x92A7, - 0xE4B5, 0x927E, 0xE4B6, 0x9287, 0xE4B7, 0x92A9, 0xE4B8, 0x929D, - 0xE4B9, 0x928B, 0xE4BA, 0x922D, 0xE4BB, 0x969E, 0xE4BC, 0x96A1, - 0xE4BD, 0x96FF, 0xE4BE, 0x9758, 0xE4BF, 0x977D, 0xE4C0, 0x977A, - 0xE4C1, 0x977E, 0xE4C2, 0x9783, 0xE4C3, 0x9780, 0xE4C4, 0x9782, - 0xE4C5, 0x977B, 0xE4C6, 0x9784, 0xE4C7, 0x9781, 0xE4C8, 0x977F, - 0xE4C9, 0x97CE, 0xE4CA, 0x97CD, 0xE4CB, 0x9816, 0xE4CC, 0x98AD, - 0xE4CD, 0x98AE, 0xE4CE, 0x9902, 0xE4CF, 0x9900, 0xE4D0, 0x9907, - 0xE4D1, 0x999D, 0xE4D2, 0x999C, 0xE4D3, 0x99C3, 0xE4D4, 0x99B9, - 0xE4D5, 0x99BB, 0xE4D6, 0x99BA, 0xE4D7, 0x99C2, 0xE4D8, 0x99BD, - 0xE4D9, 0x99C7, 0xE4DA, 0x9AB1, 0xE4DB, 0x9AE3, 0xE4DC, 0x9AE7, - 0xE4DD, 0x9B3E, 0xE4DE, 0x9B3F, 0xE4DF, 0x9B60, 0xE4E0, 0x9B61, - 0xE4E1, 0x9B5F, 0xE4E2, 0x9CF1, 0xE4E3, 0x9CF2, 0xE4E4, 0x9CF5, - 0xE4E5, 0x9EA7, 0xE4E6, 0x50FF, 0xE4E7, 0x5103, 0xE4E8, 0x5130, - 0xE4E9, 0x50F8, 0xE4EA, 0x5106, 0xE4EB, 0x5107, 0xE4EC, 0x50F6, - 0xE4ED, 0x50FE, 0xE4EE, 0x510B, 0xE4EF, 0x510C, 0xE4F0, 0x50FD, - 0xE4F1, 0x510A, 0xE4F2, 0x528B, 0xE4F3, 0x528C, 0xE4F4, 0x52F1, - 0xE4F5, 0x52EF, 0xE4F6, 0x5648, 0xE4F7, 0x5642, 0xE4F8, 0x564C, - 0xE4F9, 0x5635, 0xE4FA, 0x5641, 0xE4FB, 0x564A, 0xE4FC, 0x5649, - 0xE4FD, 0x5646, 0xE4FE, 0x5658, 0xE540, 0x565A, 0xE541, 0x5640, - 0xE542, 0x5633, 0xE543, 0x563D, 0xE544, 0x562C, 0xE545, 0x563E, - 0xE546, 0x5638, 0xE547, 0x562A, 0xE548, 0x563A, 0xE549, 0x571A, - 0xE54A, 0x58AB, 0xE54B, 0x589D, 0xE54C, 0x58B1, 0xE54D, 0x58A0, - 0xE54E, 0x58A3, 0xE54F, 0x58AF, 0xE550, 0x58AC, 0xE551, 0x58A5, - 0xE552, 0x58A1, 0xE553, 0x58FF, 0xE554, 0x5AFF, 0xE555, 0x5AF4, - 0xE556, 0x5AFD, 0xE557, 0x5AF7, 0xE558, 0x5AF6, 0xE559, 0x5B03, - 0xE55A, 0x5AF8, 0xE55B, 0x5B02, 0xE55C, 0x5AF9, 0xE55D, 0x5B01, - 0xE55E, 0x5B07, 0xE55F, 0x5B05, 0xE560, 0x5B0F, 0xE561, 0x5C67, - 0xE562, 0x5D99, 0xE563, 0x5D97, 0xE564, 0x5D9F, 0xE565, 0x5D92, - 0xE566, 0x5DA2, 0xE567, 0x5D93, 0xE568, 0x5D95, 0xE569, 0x5DA0, - 0xE56A, 0x5D9C, 0xE56B, 0x5DA1, 0xE56C, 0x5D9A, 0xE56D, 0x5D9E, - 0xE56E, 0x5E69, 0xE56F, 0x5E5D, 0xE570, 0x5E60, 0xE571, 0x5E5C, - 0xE572, 0x7DF3, 0xE573, 0x5EDB, 0xE574, 0x5EDE, 0xE575, 0x5EE1, - 0xE576, 0x5F49, 0xE577, 0x5FB2, 0xE578, 0x618B, 0xE579, 0x6183, - 0xE57A, 0x6179, 0xE57B, 0x61B1, 0xE57C, 0x61B0, 0xE57D, 0x61A2, - 0xE57E, 0x6189, 0xE5A1, 0x619B, 0xE5A2, 0x6193, 0xE5A3, 0x61AF, - 0xE5A4, 0x61AD, 0xE5A5, 0x619F, 0xE5A6, 0x6192, 0xE5A7, 0x61AA, - 0xE5A8, 0x61A1, 0xE5A9, 0x618D, 0xE5AA, 0x6166, 0xE5AB, 0x61B3, - 0xE5AC, 0x622D, 0xE5AD, 0x646E, 0xE5AE, 0x6470, 0xE5AF, 0x6496, - 0xE5B0, 0x64A0, 0xE5B1, 0x6485, 0xE5B2, 0x6497, 0xE5B3, 0x649C, - 0xE5B4, 0x648F, 0xE5B5, 0x648B, 0xE5B6, 0x648A, 0xE5B7, 0x648C, - 0xE5B8, 0x64A3, 0xE5B9, 0x649F, 0xE5BA, 0x6468, 0xE5BB, 0x64B1, - 0xE5BC, 0x6498, 0xE5BD, 0x6576, 0xE5BE, 0x657A, 0xE5BF, 0x6579, - 0xE5C0, 0x657B, 0xE5C1, 0x65B2, 0xE5C2, 0x65B3, 0xE5C3, 0x66B5, - 0xE5C4, 0x66B0, 0xE5C5, 0x66A9, 0xE5C6, 0x66B2, 0xE5C7, 0x66B7, - 0xE5C8, 0x66AA, 0xE5C9, 0x66AF, 0xE5CA, 0x6A00, 0xE5CB, 0x6A06, - 0xE5CC, 0x6A17, 0xE5CD, 0x69E5, 0xE5CE, 0x69F8, 0xE5CF, 0x6A15, - 0xE5D0, 0x69F1, 0xE5D1, 0x69E4, 0xE5D2, 0x6A20, 0xE5D3, 0x69FF, - 0xE5D4, 0x69EC, 0xE5D5, 0x69E2, 0xE5D6, 0x6A1B, 0xE5D7, 0x6A1D, - 0xE5D8, 0x69FE, 0xE5D9, 0x6A27, 0xE5DA, 0x69F2, 0xE5DB, 0x69EE, - 0xE5DC, 0x6A14, 0xE5DD, 0x69F7, 0xE5DE, 0x69E7, 0xE5DF, 0x6A40, - 0xE5E0, 0x6A08, 0xE5E1, 0x69E6, 0xE5E2, 0x69FB, 0xE5E3, 0x6A0D, - 0xE5E4, 0x69FC, 0xE5E5, 0x69EB, 0xE5E6, 0x6A09, 0xE5E7, 0x6A04, - 0xE5E8, 0x6A18, 0xE5E9, 0x6A25, 0xE5EA, 0x6A0F, 0xE5EB, 0x69F6, - 0xE5EC, 0x6A26, 0xE5ED, 0x6A07, 0xE5EE, 0x69F4, 0xE5EF, 0x6A16, - 0xE5F0, 0x6B51, 0xE5F1, 0x6BA5, 0xE5F2, 0x6BA3, 0xE5F3, 0x6BA2, - 0xE5F4, 0x6BA6, 0xE5F5, 0x6C01, 0xE5F6, 0x6C00, 0xE5F7, 0x6BFF, - 0xE5F8, 0x6C02, 0xE5F9, 0x6F41, 0xE5FA, 0x6F26, 0xE5FB, 0x6F7E, - 0xE5FC, 0x6F87, 0xE5FD, 0x6FC6, 0xE5FE, 0x6F92, 0xE640, 0x6F8D, - 0xE641, 0x6F89, 0xE642, 0x6F8C, 0xE643, 0x6F62, 0xE644, 0x6F4F, - 0xE645, 0x6F85, 0xE646, 0x6F5A, 0xE647, 0x6F96, 0xE648, 0x6F76, - 0xE649, 0x6F6C, 0xE64A, 0x6F82, 0xE64B, 0x6F55, 0xE64C, 0x6F72, - 0xE64D, 0x6F52, 0xE64E, 0x6F50, 0xE64F, 0x6F57, 0xE650, 0x6F94, - 0xE651, 0x6F93, 0xE652, 0x6F5D, 0xE653, 0x6F00, 0xE654, 0x6F61, - 0xE655, 0x6F6B, 0xE656, 0x6F7D, 0xE657, 0x6F67, 0xE658, 0x6F90, - 0xE659, 0x6F53, 0xE65A, 0x6F8B, 0xE65B, 0x6F69, 0xE65C, 0x6F7F, - 0xE65D, 0x6F95, 0xE65E, 0x6F63, 0xE65F, 0x6F77, 0xE660, 0x6F6A, - 0xE661, 0x6F7B, 0xE662, 0x71B2, 0xE663, 0x71AF, 0xE664, 0x719B, - 0xE665, 0x71B0, 0xE666, 0x71A0, 0xE667, 0x719A, 0xE668, 0x71A9, - 0xE669, 0x71B5, 0xE66A, 0x719D, 0xE66B, 0x71A5, 0xE66C, 0x719E, - 0xE66D, 0x71A4, 0xE66E, 0x71A1, 0xE66F, 0x71AA, 0xE670, 0x719C, - 0xE671, 0x71A7, 0xE672, 0x71B3, 0xE673, 0x7298, 0xE674, 0x729A, - 0xE675, 0x7358, 0xE676, 0x7352, 0xE677, 0x735E, 0xE678, 0x735F, - 0xE679, 0x7360, 0xE67A, 0x735D, 0xE67B, 0x735B, 0xE67C, 0x7361, - 0xE67D, 0x735A, 0xE67E, 0x7359, 0xE6A1, 0x7362, 0xE6A2, 0x7487, - 0xE6A3, 0x7489, 0xE6A4, 0x748A, 0xE6A5, 0x7486, 0xE6A6, 0x7481, - 0xE6A7, 0x747D, 0xE6A8, 0x7485, 0xE6A9, 0x7488, 0xE6AA, 0x747C, - 0xE6AB, 0x7479, 0xE6AC, 0x7508, 0xE6AD, 0x7507, 0xE6AE, 0x757E, - 0xE6AF, 0x7625, 0xE6B0, 0x761E, 0xE6B1, 0x7619, 0xE6B2, 0x761D, - 0xE6B3, 0x761C, 0xE6B4, 0x7623, 0xE6B5, 0x761A, 0xE6B6, 0x7628, - 0xE6B7, 0x761B, 0xE6B8, 0x769C, 0xE6B9, 0x769D, 0xE6BA, 0x769E, - 0xE6BB, 0x769B, 0xE6BC, 0x778D, 0xE6BD, 0x778F, 0xE6BE, 0x7789, - 0xE6BF, 0x7788, 0xE6C0, 0x78CD, 0xE6C1, 0x78BB, 0xE6C2, 0x78CF, - 0xE6C3, 0x78CC, 0xE6C4, 0x78D1, 0xE6C5, 0x78CE, 0xE6C6, 0x78D4, - 0xE6C7, 0x78C8, 0xE6C8, 0x78C3, 0xE6C9, 0x78C4, 0xE6CA, 0x78C9, - 0xE6CB, 0x799A, 0xE6CC, 0x79A1, 0xE6CD, 0x79A0, 0xE6CE, 0x799C, - 0xE6CF, 0x79A2, 0xE6D0, 0x799B, 0xE6D1, 0x6B76, 0xE6D2, 0x7A39, - 0xE6D3, 0x7AB2, 0xE6D4, 0x7AB4, 0xE6D5, 0x7AB3, 0xE6D6, 0x7BB7, - 0xE6D7, 0x7BCB, 0xE6D8, 0x7BBE, 0xE6D9, 0x7BAC, 0xE6DA, 0x7BCE, - 0xE6DB, 0x7BAF, 0xE6DC, 0x7BB9, 0xE6DD, 0x7BCA, 0xE6DE, 0x7BB5, - 0xE6DF, 0x7CC5, 0xE6E0, 0x7CC8, 0xE6E1, 0x7CCC, 0xE6E2, 0x7CCB, - 0xE6E3, 0x7DF7, 0xE6E4, 0x7DDB, 0xE6E5, 0x7DEA, 0xE6E6, 0x7DE7, - 0xE6E7, 0x7DD7, 0xE6E8, 0x7DE1, 0xE6E9, 0x7E03, 0xE6EA, 0x7DFA, - 0xE6EB, 0x7DE6, 0xE6EC, 0x7DF6, 0xE6ED, 0x7DF1, 0xE6EE, 0x7DF0, - 0xE6EF, 0x7DEE, 0xE6F0, 0x7DDF, 0xE6F1, 0x7F76, 0xE6F2, 0x7FAC, - 0xE6F3, 0x7FB0, 0xE6F4, 0x7FAD, 0xE6F5, 0x7FED, 0xE6F6, 0x7FEB, - 0xE6F7, 0x7FEA, 0xE6F8, 0x7FEC, 0xE6F9, 0x7FE6, 0xE6FA, 0x7FE8, - 0xE6FB, 0x8064, 0xE6FC, 0x8067, 0xE6FD, 0x81A3, 0xE6FE, 0x819F, - 0xE740, 0x819E, 0xE741, 0x8195, 0xE742, 0x81A2, 0xE743, 0x8199, - 0xE744, 0x8197, 0xE745, 0x8216, 0xE746, 0x824F, 0xE747, 0x8253, - 0xE748, 0x8252, 0xE749, 0x8250, 0xE74A, 0x824E, 0xE74B, 0x8251, - 0xE74C, 0x8524, 0xE74D, 0x853B, 0xE74E, 0x850F, 0xE74F, 0x8500, - 0xE750, 0x8529, 0xE751, 0x850E, 0xE752, 0x8509, 0xE753, 0x850D, - 0xE754, 0x851F, 0xE755, 0x850A, 0xE756, 0x8527, 0xE757, 0x851C, - 0xE758, 0x84FB, 0xE759, 0x852B, 0xE75A, 0x84FA, 0xE75B, 0x8508, - 0xE75C, 0x850C, 0xE75D, 0x84F4, 0xE75E, 0x852A, 0xE75F, 0x84F2, - 0xE760, 0x8515, 0xE761, 0x84F7, 0xE762, 0x84EB, 0xE763, 0x84F3, - 0xE764, 0x84FC, 0xE765, 0x8512, 0xE766, 0x84EA, 0xE767, 0x84E9, - 0xE768, 0x8516, 0xE769, 0x84FE, 0xE76A, 0x8528, 0xE76B, 0x851D, - 0xE76C, 0x852E, 0xE76D, 0x8502, 0xE76E, 0x84FD, 0xE76F, 0x851E, - 0xE770, 0x84F6, 0xE771, 0x8531, 0xE772, 0x8526, 0xE773, 0x84E7, - 0xE774, 0x84E8, 0xE775, 0x84F0, 0xE776, 0x84EF, 0xE777, 0x84F9, - 0xE778, 0x8518, 0xE779, 0x8520, 0xE77A, 0x8530, 0xE77B, 0x850B, - 0xE77C, 0x8519, 0xE77D, 0x852F, 0xE77E, 0x8662, 0xE7A1, 0x8756, - 0xE7A2, 0x8763, 0xE7A3, 0x8764, 0xE7A4, 0x8777, 0xE7A5, 0x87E1, - 0xE7A6, 0x8773, 0xE7A7, 0x8758, 0xE7A8, 0x8754, 0xE7A9, 0x875B, - 0xE7AA, 0x8752, 0xE7AB, 0x8761, 0xE7AC, 0x875A, 0xE7AD, 0x8751, - 0xE7AE, 0x875E, 0xE7AF, 0x876D, 0xE7B0, 0x876A, 0xE7B1, 0x8750, - 0xE7B2, 0x874E, 0xE7B3, 0x875F, 0xE7B4, 0x875D, 0xE7B5, 0x876F, - 0xE7B6, 0x876C, 0xE7B7, 0x877A, 0xE7B8, 0x876E, 0xE7B9, 0x875C, - 0xE7BA, 0x8765, 0xE7BB, 0x874F, 0xE7BC, 0x877B, 0xE7BD, 0x8775, - 0xE7BE, 0x8762, 0xE7BF, 0x8767, 0xE7C0, 0x8769, 0xE7C1, 0x885A, - 0xE7C2, 0x8905, 0xE7C3, 0x890C, 0xE7C4, 0x8914, 0xE7C5, 0x890B, - 0xE7C6, 0x8917, 0xE7C7, 0x8918, 0xE7C8, 0x8919, 0xE7C9, 0x8906, - 0xE7CA, 0x8916, 0xE7CB, 0x8911, 0xE7CC, 0x890E, 0xE7CD, 0x8909, - 0xE7CE, 0x89A2, 0xE7CF, 0x89A4, 0xE7D0, 0x89A3, 0xE7D1, 0x89ED, - 0xE7D2, 0x89F0, 0xE7D3, 0x89EC, 0xE7D4, 0x8ACF, 0xE7D5, 0x8AC6, - 0xE7D6, 0x8AB8, 0xE7D7, 0x8AD3, 0xE7D8, 0x8AD1, 0xE7D9, 0x8AD4, - 0xE7DA, 0x8AD5, 0xE7DB, 0x8ABB, 0xE7DC, 0x8AD7, 0xE7DD, 0x8ABE, - 0xE7DE, 0x8AC0, 0xE7DF, 0x8AC5, 0xE7E0, 0x8AD8, 0xE7E1, 0x8AC3, - 0xE7E2, 0x8ABA, 0xE7E3, 0x8ABD, 0xE7E4, 0x8AD9, 0xE7E5, 0x8C3E, - 0xE7E6, 0x8C4D, 0xE7E7, 0x8C8F, 0xE7E8, 0x8CE5, 0xE7E9, 0x8CDF, - 0xE7EA, 0x8CD9, 0xE7EB, 0x8CE8, 0xE7EC, 0x8CDA, 0xE7ED, 0x8CDD, - 0xE7EE, 0x8CE7, 0xE7EF, 0x8DA0, 0xE7F0, 0x8D9C, 0xE7F1, 0x8DA1, - 0xE7F2, 0x8D9B, 0xE7F3, 0x8E20, 0xE7F4, 0x8E23, 0xE7F5, 0x8E25, - 0xE7F6, 0x8E24, 0xE7F7, 0x8E2E, 0xE7F8, 0x8E15, 0xE7F9, 0x8E1B, - 0xE7FA, 0x8E16, 0xE7FB, 0x8E11, 0xE7FC, 0x8E19, 0xE7FD, 0x8E26, - 0xE7FE, 0x8E27, 0xE840, 0x8E14, 0xE841, 0x8E12, 0xE842, 0x8E18, - 0xE843, 0x8E13, 0xE844, 0x8E1C, 0xE845, 0x8E17, 0xE846, 0x8E1A, - 0xE847, 0x8F2C, 0xE848, 0x8F24, 0xE849, 0x8F18, 0xE84A, 0x8F1A, - 0xE84B, 0x8F20, 0xE84C, 0x8F23, 0xE84D, 0x8F16, 0xE84E, 0x8F17, - 0xE84F, 0x9073, 0xE850, 0x9070, 0xE851, 0x906F, 0xE852, 0x9067, - 0xE853, 0x906B, 0xE854, 0x912F, 0xE855, 0x912B, 0xE856, 0x9129, - 0xE857, 0x912A, 0xE858, 0x9132, 0xE859, 0x9126, 0xE85A, 0x912E, - 0xE85B, 0x9185, 0xE85C, 0x9186, 0xE85D, 0x918A, 0xE85E, 0x9181, - 0xE85F, 0x9182, 0xE860, 0x9184, 0xE861, 0x9180, 0xE862, 0x92D0, - 0xE863, 0x92C3, 0xE864, 0x92C4, 0xE865, 0x92C0, 0xE866, 0x92D9, - 0xE867, 0x92B6, 0xE868, 0x92CF, 0xE869, 0x92F1, 0xE86A, 0x92DF, - 0xE86B, 0x92D8, 0xE86C, 0x92E9, 0xE86D, 0x92D7, 0xE86E, 0x92DD, - 0xE86F, 0x92CC, 0xE870, 0x92EF, 0xE871, 0x92C2, 0xE872, 0x92E8, - 0xE873, 0x92CA, 0xE874, 0x92C8, 0xE875, 0x92CE, 0xE876, 0x92E6, - 0xE877, 0x92CD, 0xE878, 0x92D5, 0xE879, 0x92C9, 0xE87A, 0x92E0, - 0xE87B, 0x92DE, 0xE87C, 0x92E7, 0xE87D, 0x92D1, 0xE87E, 0x92D3, - 0xE8A1, 0x92B5, 0xE8A2, 0x92E1, 0xE8A3, 0x92C6, 0xE8A4, 0x92B4, - 0xE8A5, 0x957C, 0xE8A6, 0x95AC, 0xE8A7, 0x95AB, 0xE8A8, 0x95AE, - 0xE8A9, 0x95B0, 0xE8AA, 0x96A4, 0xE8AB, 0x96A2, 0xE8AC, 0x96D3, - 0xE8AD, 0x9705, 0xE8AE, 0x9708, 0xE8AF, 0x9702, 0xE8B0, 0x975A, - 0xE8B1, 0x978A, 0xE8B2, 0x978E, 0xE8B3, 0x9788, 0xE8B4, 0x97D0, - 0xE8B5, 0x97CF, 0xE8B6, 0x981E, 0xE8B7, 0x981D, 0xE8B8, 0x9826, - 0xE8B9, 0x9829, 0xE8BA, 0x9828, 0xE8BB, 0x9820, 0xE8BC, 0x981B, - 0xE8BD, 0x9827, 0xE8BE, 0x98B2, 0xE8BF, 0x9908, 0xE8C0, 0x98FA, - 0xE8C1, 0x9911, 0xE8C2, 0x9914, 0xE8C3, 0x9916, 0xE8C4, 0x9917, - 0xE8C5, 0x9915, 0xE8C6, 0x99DC, 0xE8C7, 0x99CD, 0xE8C8, 0x99CF, - 0xE8C9, 0x99D3, 0xE8CA, 0x99D4, 0xE8CB, 0x99CE, 0xE8CC, 0x99C9, - 0xE8CD, 0x99D6, 0xE8CE, 0x99D8, 0xE8CF, 0x99CB, 0xE8D0, 0x99D7, - 0xE8D1, 0x99CC, 0xE8D2, 0x9AB3, 0xE8D3, 0x9AEC, 0xE8D4, 0x9AEB, - 0xE8D5, 0x9AF3, 0xE8D6, 0x9AF2, 0xE8D7, 0x9AF1, 0xE8D8, 0x9B46, - 0xE8D9, 0x9B43, 0xE8DA, 0x9B67, 0xE8DB, 0x9B74, 0xE8DC, 0x9B71, - 0xE8DD, 0x9B66, 0xE8DE, 0x9B76, 0xE8DF, 0x9B75, 0xE8E0, 0x9B70, - 0xE8E1, 0x9B68, 0xE8E2, 0x9B64, 0xE8E3, 0x9B6C, 0xE8E4, 0x9CFC, - 0xE8E5, 0x9CFA, 0xE8E6, 0x9CFD, 0xE8E7, 0x9CFF, 0xE8E8, 0x9CF7, - 0xE8E9, 0x9D07, 0xE8EA, 0x9D00, 0xE8EB, 0x9CF9, 0xE8EC, 0x9CFB, - 0xE8ED, 0x9D08, 0xE8EE, 0x9D05, 0xE8EF, 0x9D04, 0xE8F0, 0x9E83, - 0xE8F1, 0x9ED3, 0xE8F2, 0x9F0F, 0xE8F3, 0x9F10, 0xE8F4, 0x511C, - 0xE8F5, 0x5113, 0xE8F6, 0x5117, 0xE8F7, 0x511A, 0xE8F8, 0x5111, - 0xE8F9, 0x51DE, 0xE8FA, 0x5334, 0xE8FB, 0x53E1, 0xE8FC, 0x5670, - 0xE8FD, 0x5660, 0xE8FE, 0x566E, 0xE940, 0x5673, 0xE941, 0x5666, - 0xE942, 0x5663, 0xE943, 0x566D, 0xE944, 0x5672, 0xE945, 0x565E, - 0xE946, 0x5677, 0xE947, 0x571C, 0xE948, 0x571B, 0xE949, 0x58C8, - 0xE94A, 0x58BD, 0xE94B, 0x58C9, 0xE94C, 0x58BF, 0xE94D, 0x58BA, - 0xE94E, 0x58C2, 0xE94F, 0x58BC, 0xE950, 0x58C6, 0xE951, 0x5B17, - 0xE952, 0x5B19, 0xE953, 0x5B1B, 0xE954, 0x5B21, 0xE955, 0x5B14, - 0xE956, 0x5B13, 0xE957, 0x5B10, 0xE958, 0x5B16, 0xE959, 0x5B28, - 0xE95A, 0x5B1A, 0xE95B, 0x5B20, 0xE95C, 0x5B1E, 0xE95D, 0x5BEF, - 0xE95E, 0x5DAC, 0xE95F, 0x5DB1, 0xE960, 0x5DA9, 0xE961, 0x5DA7, - 0xE962, 0x5DB5, 0xE963, 0x5DB0, 0xE964, 0x5DAE, 0xE965, 0x5DAA, - 0xE966, 0x5DA8, 0xE967, 0x5DB2, 0xE968, 0x5DAD, 0xE969, 0x5DAF, - 0xE96A, 0x5DB4, 0xE96B, 0x5E67, 0xE96C, 0x5E68, 0xE96D, 0x5E66, - 0xE96E, 0x5E6F, 0xE96F, 0x5EE9, 0xE970, 0x5EE7, 0xE971, 0x5EE6, - 0xE972, 0x5EE8, 0xE973, 0x5EE5, 0xE974, 0x5F4B, 0xE975, 0x5FBC, - 0xE976, 0x619D, 0xE977, 0x61A8, 0xE978, 0x6196, 0xE979, 0x61C5, - 0xE97A, 0x61B4, 0xE97B, 0x61C6, 0xE97C, 0x61C1, 0xE97D, 0x61CC, - 0xE97E, 0x61BA, 0xE9A1, 0x61BF, 0xE9A2, 0x61B8, 0xE9A3, 0x618C, - 0xE9A4, 0x64D7, 0xE9A5, 0x64D6, 0xE9A6, 0x64D0, 0xE9A7, 0x64CF, - 0xE9A8, 0x64C9, 0xE9A9, 0x64BD, 0xE9AA, 0x6489, 0xE9AB, 0x64C3, - 0xE9AC, 0x64DB, 0xE9AD, 0x64F3, 0xE9AE, 0x64D9, 0xE9AF, 0x6533, - 0xE9B0, 0x657F, 0xE9B1, 0x657C, 0xE9B2, 0x65A2, 0xE9B3, 0x66C8, - 0xE9B4, 0x66BE, 0xE9B5, 0x66C0, 0xE9B6, 0x66CA, 0xE9B7, 0x66CB, - 0xE9B8, 0x66CF, 0xE9B9, 0x66BD, 0xE9BA, 0x66BB, 0xE9BB, 0x66BA, - 0xE9BC, 0x66CC, 0xE9BD, 0x6723, 0xE9BE, 0x6A34, 0xE9BF, 0x6A66, - 0xE9C0, 0x6A49, 0xE9C1, 0x6A67, 0xE9C2, 0x6A32, 0xE9C3, 0x6A68, - 0xE9C4, 0x6A3E, 0xE9C5, 0x6A5D, 0xE9C6, 0x6A6D, 0xE9C7, 0x6A76, - 0xE9C8, 0x6A5B, 0xE9C9, 0x6A51, 0xE9CA, 0x6A28, 0xE9CB, 0x6A5A, - 0xE9CC, 0x6A3B, 0xE9CD, 0x6A3F, 0xE9CE, 0x6A41, 0xE9CF, 0x6A6A, - 0xE9D0, 0x6A64, 0xE9D1, 0x6A50, 0xE9D2, 0x6A4F, 0xE9D3, 0x6A54, - 0xE9D4, 0x6A6F, 0xE9D5, 0x6A69, 0xE9D6, 0x6A60, 0xE9D7, 0x6A3C, - 0xE9D8, 0x6A5E, 0xE9D9, 0x6A56, 0xE9DA, 0x6A55, 0xE9DB, 0x6A4D, - 0xE9DC, 0x6A4E, 0xE9DD, 0x6A46, 0xE9DE, 0x6B55, 0xE9DF, 0x6B54, - 0xE9E0, 0x6B56, 0xE9E1, 0x6BA7, 0xE9E2, 0x6BAA, 0xE9E3, 0x6BAB, - 0xE9E4, 0x6BC8, 0xE9E5, 0x6BC7, 0xE9E6, 0x6C04, 0xE9E7, 0x6C03, - 0xE9E8, 0x6C06, 0xE9E9, 0x6FAD, 0xE9EA, 0x6FCB, 0xE9EB, 0x6FA3, - 0xE9EC, 0x6FC7, 0xE9ED, 0x6FBC, 0xE9EE, 0x6FCE, 0xE9EF, 0x6FC8, - 0xE9F0, 0x6F5E, 0xE9F1, 0x6FC4, 0xE9F2, 0x6FBD, 0xE9F3, 0x6F9E, - 0xE9F4, 0x6FCA, 0xE9F5, 0x6FA8, 0xE9F6, 0x7004, 0xE9F7, 0x6FA5, - 0xE9F8, 0x6FAE, 0xE9F9, 0x6FBA, 0xE9FA, 0x6FAC, 0xE9FB, 0x6FAA, - 0xE9FC, 0x6FCF, 0xE9FD, 0x6FBF, 0xE9FE, 0x6FB8, 0xEA40, 0x6FA2, - 0xEA41, 0x6FC9, 0xEA42, 0x6FAB, 0xEA43, 0x6FCD, 0xEA44, 0x6FAF, - 0xEA45, 0x6FB2, 0xEA46, 0x6FB0, 0xEA47, 0x71C5, 0xEA48, 0x71C2, - 0xEA49, 0x71BF, 0xEA4A, 0x71B8, 0xEA4B, 0x71D6, 0xEA4C, 0x71C0, - 0xEA4D, 0x71C1, 0xEA4E, 0x71CB, 0xEA4F, 0x71D4, 0xEA50, 0x71CA, - 0xEA51, 0x71C7, 0xEA52, 0x71CF, 0xEA53, 0x71BD, 0xEA54, 0x71D8, - 0xEA55, 0x71BC, 0xEA56, 0x71C6, 0xEA57, 0x71DA, 0xEA58, 0x71DB, - 0xEA59, 0x729D, 0xEA5A, 0x729E, 0xEA5B, 0x7369, 0xEA5C, 0x7366, - 0xEA5D, 0x7367, 0xEA5E, 0x736C, 0xEA5F, 0x7365, 0xEA60, 0x736B, - 0xEA61, 0x736A, 0xEA62, 0x747F, 0xEA63, 0x749A, 0xEA64, 0x74A0, - 0xEA65, 0x7494, 0xEA66, 0x7492, 0xEA67, 0x7495, 0xEA68, 0x74A1, - 0xEA69, 0x750B, 0xEA6A, 0x7580, 0xEA6B, 0x762F, 0xEA6C, 0x762D, - 0xEA6D, 0x7631, 0xEA6E, 0x763D, 0xEA6F, 0x7633, 0xEA70, 0x763C, - 0xEA71, 0x7635, 0xEA72, 0x7632, 0xEA73, 0x7630, 0xEA74, 0x76BB, - 0xEA75, 0x76E6, 0xEA76, 0x779A, 0xEA77, 0x779D, 0xEA78, 0x77A1, - 0xEA79, 0x779C, 0xEA7A, 0x779B, 0xEA7B, 0x77A2, 0xEA7C, 0x77A3, - 0xEA7D, 0x7795, 0xEA7E, 0x7799, 0xEAA1, 0x7797, 0xEAA2, 0x78DD, - 0xEAA3, 0x78E9, 0xEAA4, 0x78E5, 0xEAA5, 0x78EA, 0xEAA6, 0x78DE, - 0xEAA7, 0x78E3, 0xEAA8, 0x78DB, 0xEAA9, 0x78E1, 0xEAAA, 0x78E2, - 0xEAAB, 0x78ED, 0xEAAC, 0x78DF, 0xEAAD, 0x78E0, 0xEAAE, 0x79A4, - 0xEAAF, 0x7A44, 0xEAB0, 0x7A48, 0xEAB1, 0x7A47, 0xEAB2, 0x7AB6, - 0xEAB3, 0x7AB8, 0xEAB4, 0x7AB5, 0xEAB5, 0x7AB1, 0xEAB6, 0x7AB7, - 0xEAB7, 0x7BDE, 0xEAB8, 0x7BE3, 0xEAB9, 0x7BE7, 0xEABA, 0x7BDD, - 0xEABB, 0x7BD5, 0xEABC, 0x7BE5, 0xEABD, 0x7BDA, 0xEABE, 0x7BE8, - 0xEABF, 0x7BF9, 0xEAC0, 0x7BD4, 0xEAC1, 0x7BEA, 0xEAC2, 0x7BE2, - 0xEAC3, 0x7BDC, 0xEAC4, 0x7BEB, 0xEAC5, 0x7BD8, 0xEAC6, 0x7BDF, - 0xEAC7, 0x7CD2, 0xEAC8, 0x7CD4, 0xEAC9, 0x7CD7, 0xEACA, 0x7CD0, - 0xEACB, 0x7CD1, 0xEACC, 0x7E12, 0xEACD, 0x7E21, 0xEACE, 0x7E17, - 0xEACF, 0x7E0C, 0xEAD0, 0x7E1F, 0xEAD1, 0x7E20, 0xEAD2, 0x7E13, - 0xEAD3, 0x7E0E, 0xEAD4, 0x7E1C, 0xEAD5, 0x7E15, 0xEAD6, 0x7E1A, - 0xEAD7, 0x7E22, 0xEAD8, 0x7E0B, 0xEAD9, 0x7E0F, 0xEADA, 0x7E16, - 0xEADB, 0x7E0D, 0xEADC, 0x7E14, 0xEADD, 0x7E25, 0xEADE, 0x7E24, - 0xEADF, 0x7F43, 0xEAE0, 0x7F7B, 0xEAE1, 0x7F7C, 0xEAE2, 0x7F7A, - 0xEAE3, 0x7FB1, 0xEAE4, 0x7FEF, 0xEAE5, 0x802A, 0xEAE6, 0x8029, - 0xEAE7, 0x806C, 0xEAE8, 0x81B1, 0xEAE9, 0x81A6, 0xEAEA, 0x81AE, - 0xEAEB, 0x81B9, 0xEAEC, 0x81B5, 0xEAED, 0x81AB, 0xEAEE, 0x81B0, - 0xEAEF, 0x81AC, 0xEAF0, 0x81B4, 0xEAF1, 0x81B2, 0xEAF2, 0x81B7, - 0xEAF3, 0x81A7, 0xEAF4, 0x81F2, 0xEAF5, 0x8255, 0xEAF6, 0x8256, - 0xEAF7, 0x8257, 0xEAF8, 0x8556, 0xEAF9, 0x8545, 0xEAFA, 0x856B, - 0xEAFB, 0x854D, 0xEAFC, 0x8553, 0xEAFD, 0x8561, 0xEAFE, 0x8558, - 0xEB40, 0x8540, 0xEB41, 0x8546, 0xEB42, 0x8564, 0xEB43, 0x8541, - 0xEB44, 0x8562, 0xEB45, 0x8544, 0xEB46, 0x8551, 0xEB47, 0x8547, - 0xEB48, 0x8563, 0xEB49, 0x853E, 0xEB4A, 0x855B, 0xEB4B, 0x8571, - 0xEB4C, 0x854E, 0xEB4D, 0x856E, 0xEB4E, 0x8575, 0xEB4F, 0x8555, - 0xEB50, 0x8567, 0xEB51, 0x8560, 0xEB52, 0x858C, 0xEB53, 0x8566, - 0xEB54, 0x855D, 0xEB55, 0x8554, 0xEB56, 0x8565, 0xEB57, 0x856C, - 0xEB58, 0x8663, 0xEB59, 0x8665, 0xEB5A, 0x8664, 0xEB5B, 0x879B, - 0xEB5C, 0x878F, 0xEB5D, 0x8797, 0xEB5E, 0x8793, 0xEB5F, 0x8792, - 0xEB60, 0x8788, 0xEB61, 0x8781, 0xEB62, 0x8796, 0xEB63, 0x8798, - 0xEB64, 0x8779, 0xEB65, 0x8787, 0xEB66, 0x87A3, 0xEB67, 0x8785, - 0xEB68, 0x8790, 0xEB69, 0x8791, 0xEB6A, 0x879D, 0xEB6B, 0x8784, - 0xEB6C, 0x8794, 0xEB6D, 0x879C, 0xEB6E, 0x879A, 0xEB6F, 0x8789, - 0xEB70, 0x891E, 0xEB71, 0x8926, 0xEB72, 0x8930, 0xEB73, 0x892D, - 0xEB74, 0x892E, 0xEB75, 0x8927, 0xEB76, 0x8931, 0xEB77, 0x8922, - 0xEB78, 0x8929, 0xEB79, 0x8923, 0xEB7A, 0x892F, 0xEB7B, 0x892C, - 0xEB7C, 0x891F, 0xEB7D, 0x89F1, 0xEB7E, 0x8AE0, 0xEBA1, 0x8AE2, - 0xEBA2, 0x8AF2, 0xEBA3, 0x8AF4, 0xEBA4, 0x8AF5, 0xEBA5, 0x8ADD, - 0xEBA6, 0x8B14, 0xEBA7, 0x8AE4, 0xEBA8, 0x8ADF, 0xEBA9, 0x8AF0, - 0xEBAA, 0x8AC8, 0xEBAB, 0x8ADE, 0xEBAC, 0x8AE1, 0xEBAD, 0x8AE8, - 0xEBAE, 0x8AFF, 0xEBAF, 0x8AEF, 0xEBB0, 0x8AFB, 0xEBB1, 0x8C91, - 0xEBB2, 0x8C92, 0xEBB3, 0x8C90, 0xEBB4, 0x8CF5, 0xEBB5, 0x8CEE, - 0xEBB6, 0x8CF1, 0xEBB7, 0x8CF0, 0xEBB8, 0x8CF3, 0xEBB9, 0x8D6C, - 0xEBBA, 0x8D6E, 0xEBBB, 0x8DA5, 0xEBBC, 0x8DA7, 0xEBBD, 0x8E33, - 0xEBBE, 0x8E3E, 0xEBBF, 0x8E38, 0xEBC0, 0x8E40, 0xEBC1, 0x8E45, - 0xEBC2, 0x8E36, 0xEBC3, 0x8E3C, 0xEBC4, 0x8E3D, 0xEBC5, 0x8E41, - 0xEBC6, 0x8E30, 0xEBC7, 0x8E3F, 0xEBC8, 0x8EBD, 0xEBC9, 0x8F36, - 0xEBCA, 0x8F2E, 0xEBCB, 0x8F35, 0xEBCC, 0x8F32, 0xEBCD, 0x8F39, - 0xEBCE, 0x8F37, 0xEBCF, 0x8F34, 0xEBD0, 0x9076, 0xEBD1, 0x9079, - 0xEBD2, 0x907B, 0xEBD3, 0x9086, 0xEBD4, 0x90FA, 0xEBD5, 0x9133, - 0xEBD6, 0x9135, 0xEBD7, 0x9136, 0xEBD8, 0x9193, 0xEBD9, 0x9190, - 0xEBDA, 0x9191, 0xEBDB, 0x918D, 0xEBDC, 0x918F, 0xEBDD, 0x9327, - 0xEBDE, 0x931E, 0xEBDF, 0x9308, 0xEBE0, 0x931F, 0xEBE1, 0x9306, - 0xEBE2, 0x930F, 0xEBE3, 0x937A, 0xEBE4, 0x9338, 0xEBE5, 0x933C, - 0xEBE6, 0x931B, 0xEBE7, 0x9323, 0xEBE8, 0x9312, 0xEBE9, 0x9301, - 0xEBEA, 0x9346, 0xEBEB, 0x932D, 0xEBEC, 0x930E, 0xEBED, 0x930D, - 0xEBEE, 0x92CB, 0xEBEF, 0x931D, 0xEBF0, 0x92FA, 0xEBF1, 0x9325, - 0xEBF2, 0x9313, 0xEBF3, 0x92F9, 0xEBF4, 0x92F7, 0xEBF5, 0x9334, - 0xEBF6, 0x9302, 0xEBF7, 0x9324, 0xEBF8, 0x92FF, 0xEBF9, 0x9329, - 0xEBFA, 0x9339, 0xEBFB, 0x9335, 0xEBFC, 0x932A, 0xEBFD, 0x9314, - 0xEBFE, 0x930C, 0xEC40, 0x930B, 0xEC41, 0x92FE, 0xEC42, 0x9309, - 0xEC43, 0x9300, 0xEC44, 0x92FB, 0xEC45, 0x9316, 0xEC46, 0x95BC, - 0xEC47, 0x95CD, 0xEC48, 0x95BE, 0xEC49, 0x95B9, 0xEC4A, 0x95BA, - 0xEC4B, 0x95B6, 0xEC4C, 0x95BF, 0xEC4D, 0x95B5, 0xEC4E, 0x95BD, - 0xEC4F, 0x96A9, 0xEC50, 0x96D4, 0xEC51, 0x970B, 0xEC52, 0x9712, - 0xEC53, 0x9710, 0xEC54, 0x9799, 0xEC55, 0x9797, 0xEC56, 0x9794, - 0xEC57, 0x97F0, 0xEC58, 0x97F8, 0xEC59, 0x9835, 0xEC5A, 0x982F, - 0xEC5B, 0x9832, 0xEC5C, 0x9924, 0xEC5D, 0x991F, 0xEC5E, 0x9927, - 0xEC5F, 0x9929, 0xEC60, 0x999E, 0xEC61, 0x99EE, 0xEC62, 0x99EC, - 0xEC63, 0x99E5, 0xEC64, 0x99E4, 0xEC65, 0x99F0, 0xEC66, 0x99E3, - 0xEC67, 0x99EA, 0xEC68, 0x99E9, 0xEC69, 0x99E7, 0xEC6A, 0x9AB9, - 0xEC6B, 0x9ABF, 0xEC6C, 0x9AB4, 0xEC6D, 0x9ABB, 0xEC6E, 0x9AF6, - 0xEC6F, 0x9AFA, 0xEC70, 0x9AF9, 0xEC71, 0x9AF7, 0xEC72, 0x9B33, - 0xEC73, 0x9B80, 0xEC74, 0x9B85, 0xEC75, 0x9B87, 0xEC76, 0x9B7C, - 0xEC77, 0x9B7E, 0xEC78, 0x9B7B, 0xEC79, 0x9B82, 0xEC7A, 0x9B93, - 0xEC7B, 0x9B92, 0xEC7C, 0x9B90, 0xEC7D, 0x9B7A, 0xEC7E, 0x9B95, - 0xECA1, 0x9B7D, 0xECA2, 0x9B88, 0xECA3, 0x9D25, 0xECA4, 0x9D17, - 0xECA5, 0x9D20, 0xECA6, 0x9D1E, 0xECA7, 0x9D14, 0xECA8, 0x9D29, - 0xECA9, 0x9D1D, 0xECAA, 0x9D18, 0xECAB, 0x9D22, 0xECAC, 0x9D10, - 0xECAD, 0x9D19, 0xECAE, 0x9D1F, 0xECAF, 0x9E88, 0xECB0, 0x9E86, - 0xECB1, 0x9E87, 0xECB2, 0x9EAE, 0xECB3, 0x9EAD, 0xECB4, 0x9ED5, - 0xECB5, 0x9ED6, 0xECB6, 0x9EFA, 0xECB7, 0x9F12, 0xECB8, 0x9F3D, - 0xECB9, 0x5126, 0xECBA, 0x5125, 0xECBB, 0x5122, 0xECBC, 0x5124, - 0xECBD, 0x5120, 0xECBE, 0x5129, 0xECBF, 0x52F4, 0xECC0, 0x5693, - 0xECC1, 0x568C, 0xECC2, 0x568D, 0xECC3, 0x5686, 0xECC4, 0x5684, - 0xECC5, 0x5683, 0xECC6, 0x567E, 0xECC7, 0x5682, 0xECC8, 0x567F, - 0xECC9, 0x5681, 0xECCA, 0x58D6, 0xECCB, 0x58D4, 0xECCC, 0x58CF, - 0xECCD, 0x58D2, 0xECCE, 0x5B2D, 0xECCF, 0x5B25, 0xECD0, 0x5B32, - 0xECD1, 0x5B23, 0xECD2, 0x5B2C, 0xECD3, 0x5B27, 0xECD4, 0x5B26, - 0xECD5, 0x5B2F, 0xECD6, 0x5B2E, 0xECD7, 0x5B7B, 0xECD8, 0x5BF1, - 0xECD9, 0x5BF2, 0xECDA, 0x5DB7, 0xECDB, 0x5E6C, 0xECDC, 0x5E6A, - 0xECDD, 0x5FBE, 0xECDE, 0x5FBB, 0xECDF, 0x61C3, 0xECE0, 0x61B5, - 0xECE1, 0x61BC, 0xECE2, 0x61E7, 0xECE3, 0x61E0, 0xECE4, 0x61E5, - 0xECE5, 0x61E4, 0xECE6, 0x61E8, 0xECE7, 0x61DE, 0xECE8, 0x64EF, - 0xECE9, 0x64E9, 0xECEA, 0x64E3, 0xECEB, 0x64EB, 0xECEC, 0x64E4, - 0xECED, 0x64E8, 0xECEE, 0x6581, 0xECEF, 0x6580, 0xECF0, 0x65B6, - 0xECF1, 0x65DA, 0xECF2, 0x66D2, 0xECF3, 0x6A8D, 0xECF4, 0x6A96, - 0xECF5, 0x6A81, 0xECF6, 0x6AA5, 0xECF7, 0x6A89, 0xECF8, 0x6A9F, - 0xECF9, 0x6A9B, 0xECFA, 0x6AA1, 0xECFB, 0x6A9E, 0xECFC, 0x6A87, - 0xECFD, 0x6A93, 0xECFE, 0x6A8E, 0xED40, 0x6A95, 0xED41, 0x6A83, - 0xED42, 0x6AA8, 0xED43, 0x6AA4, 0xED44, 0x6A91, 0xED45, 0x6A7F, - 0xED46, 0x6AA6, 0xED47, 0x6A9A, 0xED48, 0x6A85, 0xED49, 0x6A8C, - 0xED4A, 0x6A92, 0xED4B, 0x6B5B, 0xED4C, 0x6BAD, 0xED4D, 0x6C09, - 0xED4E, 0x6FCC, 0xED4F, 0x6FA9, 0xED50, 0x6FF4, 0xED51, 0x6FD4, - 0xED52, 0x6FE3, 0xED53, 0x6FDC, 0xED54, 0x6FED, 0xED55, 0x6FE7, - 0xED56, 0x6FE6, 0xED57, 0x6FDE, 0xED58, 0x6FF2, 0xED59, 0x6FDD, - 0xED5A, 0x6FE2, 0xED5B, 0x6FE8, 0xED5C, 0x71E1, 0xED5D, 0x71F1, - 0xED5E, 0x71E8, 0xED5F, 0x71F2, 0xED60, 0x71E4, 0xED61, 0x71F0, - 0xED62, 0x71E2, 0xED63, 0x7373, 0xED64, 0x736E, 0xED65, 0x736F, - 0xED66, 0x7497, 0xED67, 0x74B2, 0xED68, 0x74AB, 0xED69, 0x7490, - 0xED6A, 0x74AA, 0xED6B, 0x74AD, 0xED6C, 0x74B1, 0xED6D, 0x74A5, - 0xED6E, 0x74AF, 0xED6F, 0x7510, 0xED70, 0x7511, 0xED71, 0x7512, - 0xED72, 0x750F, 0xED73, 0x7584, 0xED74, 0x7643, 0xED75, 0x7648, - 0xED76, 0x7649, 0xED77, 0x7647, 0xED78, 0x76A4, 0xED79, 0x76E9, - 0xED7A, 0x77B5, 0xED7B, 0x77AB, 0xED7C, 0x77B2, 0xED7D, 0x77B7, - 0xED7E, 0x77B6, 0xEDA1, 0x77B4, 0xEDA2, 0x77B1, 0xEDA3, 0x77A8, - 0xEDA4, 0x77F0, 0xEDA5, 0x78F3, 0xEDA6, 0x78FD, 0xEDA7, 0x7902, - 0xEDA8, 0x78FB, 0xEDA9, 0x78FC, 0xEDAA, 0x78F2, 0xEDAB, 0x7905, - 0xEDAC, 0x78F9, 0xEDAD, 0x78FE, 0xEDAE, 0x7904, 0xEDAF, 0x79AB, - 0xEDB0, 0x79A8, 0xEDB1, 0x7A5C, 0xEDB2, 0x7A5B, 0xEDB3, 0x7A56, - 0xEDB4, 0x7A58, 0xEDB5, 0x7A54, 0xEDB6, 0x7A5A, 0xEDB7, 0x7ABE, - 0xEDB8, 0x7AC0, 0xEDB9, 0x7AC1, 0xEDBA, 0x7C05, 0xEDBB, 0x7C0F, - 0xEDBC, 0x7BF2, 0xEDBD, 0x7C00, 0xEDBE, 0x7BFF, 0xEDBF, 0x7BFB, - 0xEDC0, 0x7C0E, 0xEDC1, 0x7BF4, 0xEDC2, 0x7C0B, 0xEDC3, 0x7BF3, - 0xEDC4, 0x7C02, 0xEDC5, 0x7C09, 0xEDC6, 0x7C03, 0xEDC7, 0x7C01, - 0xEDC8, 0x7BF8, 0xEDC9, 0x7BFD, 0xEDCA, 0x7C06, 0xEDCB, 0x7BF0, - 0xEDCC, 0x7BF1, 0xEDCD, 0x7C10, 0xEDCE, 0x7C0A, 0xEDCF, 0x7CE8, - 0xEDD0, 0x7E2D, 0xEDD1, 0x7E3C, 0xEDD2, 0x7E42, 0xEDD3, 0x7E33, - 0xEDD4, 0x9848, 0xEDD5, 0x7E38, 0xEDD6, 0x7E2A, 0xEDD7, 0x7E49, - 0xEDD8, 0x7E40, 0xEDD9, 0x7E47, 0xEDDA, 0x7E29, 0xEDDB, 0x7E4C, - 0xEDDC, 0x7E30, 0xEDDD, 0x7E3B, 0xEDDE, 0x7E36, 0xEDDF, 0x7E44, - 0xEDE0, 0x7E3A, 0xEDE1, 0x7F45, 0xEDE2, 0x7F7F, 0xEDE3, 0x7F7E, - 0xEDE4, 0x7F7D, 0xEDE5, 0x7FF4, 0xEDE6, 0x7FF2, 0xEDE7, 0x802C, - 0xEDE8, 0x81BB, 0xEDE9, 0x81C4, 0xEDEA, 0x81CC, 0xEDEB, 0x81CA, - 0xEDEC, 0x81C5, 0xEDED, 0x81C7, 0xEDEE, 0x81BC, 0xEDEF, 0x81E9, - 0xEDF0, 0x825B, 0xEDF1, 0x825A, 0xEDF2, 0x825C, 0xEDF3, 0x8583, - 0xEDF4, 0x8580, 0xEDF5, 0x858F, 0xEDF6, 0x85A7, 0xEDF7, 0x8595, - 0xEDF8, 0x85A0, 0xEDF9, 0x858B, 0xEDFA, 0x85A3, 0xEDFB, 0x857B, - 0xEDFC, 0x85A4, 0xEDFD, 0x859A, 0xEDFE, 0x859E, 0xEE40, 0x8577, - 0xEE41, 0x857C, 0xEE42, 0x8589, 0xEE43, 0x85A1, 0xEE44, 0x857A, - 0xEE45, 0x8578, 0xEE46, 0x8557, 0xEE47, 0x858E, 0xEE48, 0x8596, - 0xEE49, 0x8586, 0xEE4A, 0x858D, 0xEE4B, 0x8599, 0xEE4C, 0x859D, - 0xEE4D, 0x8581, 0xEE4E, 0x85A2, 0xEE4F, 0x8582, 0xEE50, 0x8588, - 0xEE51, 0x8585, 0xEE52, 0x8579, 0xEE53, 0x8576, 0xEE54, 0x8598, - 0xEE55, 0x8590, 0xEE56, 0x859F, 0xEE57, 0x8668, 0xEE58, 0x87BE, - 0xEE59, 0x87AA, 0xEE5A, 0x87AD, 0xEE5B, 0x87C5, 0xEE5C, 0x87B0, - 0xEE5D, 0x87AC, 0xEE5E, 0x87B9, 0xEE5F, 0x87B5, 0xEE60, 0x87BC, - 0xEE61, 0x87AE, 0xEE62, 0x87C9, 0xEE63, 0x87C3, 0xEE64, 0x87C2, - 0xEE65, 0x87CC, 0xEE66, 0x87B7, 0xEE67, 0x87AF, 0xEE68, 0x87C4, - 0xEE69, 0x87CA, 0xEE6A, 0x87B4, 0xEE6B, 0x87B6, 0xEE6C, 0x87BF, - 0xEE6D, 0x87B8, 0xEE6E, 0x87BD, 0xEE6F, 0x87DE, 0xEE70, 0x87B2, - 0xEE71, 0x8935, 0xEE72, 0x8933, 0xEE73, 0x893C, 0xEE74, 0x893E, - 0xEE75, 0x8941, 0xEE76, 0x8952, 0xEE77, 0x8937, 0xEE78, 0x8942, - 0xEE79, 0x89AD, 0xEE7A, 0x89AF, 0xEE7B, 0x89AE, 0xEE7C, 0x89F2, - 0xEE7D, 0x89F3, 0xEE7E, 0x8B1E, 0xEEA1, 0x8B18, 0xEEA2, 0x8B16, - 0xEEA3, 0x8B11, 0xEEA4, 0x8B05, 0xEEA5, 0x8B0B, 0xEEA6, 0x8B22, - 0xEEA7, 0x8B0F, 0xEEA8, 0x8B12, 0xEEA9, 0x8B15, 0xEEAA, 0x8B07, - 0xEEAB, 0x8B0D, 0xEEAC, 0x8B08, 0xEEAD, 0x8B06, 0xEEAE, 0x8B1C, - 0xEEAF, 0x8B13, 0xEEB0, 0x8B1A, 0xEEB1, 0x8C4F, 0xEEB2, 0x8C70, - 0xEEB3, 0x8C72, 0xEEB4, 0x8C71, 0xEEB5, 0x8C6F, 0xEEB6, 0x8C95, - 0xEEB7, 0x8C94, 0xEEB8, 0x8CF9, 0xEEB9, 0x8D6F, 0xEEBA, 0x8E4E, - 0xEEBB, 0x8E4D, 0xEEBC, 0x8E53, 0xEEBD, 0x8E50, 0xEEBE, 0x8E4C, - 0xEEBF, 0x8E47, 0xEEC0, 0x8F43, 0xEEC1, 0x8F40, 0xEEC2, 0x9085, - 0xEEC3, 0x907E, 0xEEC4, 0x9138, 0xEEC5, 0x919A, 0xEEC6, 0x91A2, - 0xEEC7, 0x919B, 0xEEC8, 0x9199, 0xEEC9, 0x919F, 0xEECA, 0x91A1, - 0xEECB, 0x919D, 0xEECC, 0x91A0, 0xEECD, 0x93A1, 0xEECE, 0x9383, - 0xEECF, 0x93AF, 0xEED0, 0x9364, 0xEED1, 0x9356, 0xEED2, 0x9347, - 0xEED3, 0x937C, 0xEED4, 0x9358, 0xEED5, 0x935C, 0xEED6, 0x9376, - 0xEED7, 0x9349, 0xEED8, 0x9350, 0xEED9, 0x9351, 0xEEDA, 0x9360, - 0xEEDB, 0x936D, 0xEEDC, 0x938F, 0xEEDD, 0x934C, 0xEEDE, 0x936A, - 0xEEDF, 0x9379, 0xEEE0, 0x9357, 0xEEE1, 0x9355, 0xEEE2, 0x9352, - 0xEEE3, 0x934F, 0xEEE4, 0x9371, 0xEEE5, 0x9377, 0xEEE6, 0x937B, - 0xEEE7, 0x9361, 0xEEE8, 0x935E, 0xEEE9, 0x9363, 0xEEEA, 0x9367, - 0xEEEB, 0x9380, 0xEEEC, 0x934E, 0xEEED, 0x9359, 0xEEEE, 0x95C7, - 0xEEEF, 0x95C0, 0xEEF0, 0x95C9, 0xEEF1, 0x95C3, 0xEEF2, 0x95C5, - 0xEEF3, 0x95B7, 0xEEF4, 0x96AE, 0xEEF5, 0x96B0, 0xEEF6, 0x96AC, - 0xEEF7, 0x9720, 0xEEF8, 0x971F, 0xEEF9, 0x9718, 0xEEFA, 0x971D, - 0xEEFB, 0x9719, 0xEEFC, 0x979A, 0xEEFD, 0x97A1, 0xEEFE, 0x979C, - 0xEF40, 0x979E, 0xEF41, 0x979D, 0xEF42, 0x97D5, 0xEF43, 0x97D4, - 0xEF44, 0x97F1, 0xEF45, 0x9841, 0xEF46, 0x9844, 0xEF47, 0x984A, - 0xEF48, 0x9849, 0xEF49, 0x9845, 0xEF4A, 0x9843, 0xEF4B, 0x9925, - 0xEF4C, 0x992B, 0xEF4D, 0x992C, 0xEF4E, 0x992A, 0xEF4F, 0x9933, - 0xEF50, 0x9932, 0xEF51, 0x992F, 0xEF52, 0x992D, 0xEF53, 0x9931, - 0xEF54, 0x9930, 0xEF55, 0x9998, 0xEF56, 0x99A3, 0xEF57, 0x99A1, - 0xEF58, 0x9A02, 0xEF59, 0x99FA, 0xEF5A, 0x99F4, 0xEF5B, 0x99F7, - 0xEF5C, 0x99F9, 0xEF5D, 0x99F8, 0xEF5E, 0x99F6, 0xEF5F, 0x99FB, - 0xEF60, 0x99FD, 0xEF61, 0x99FE, 0xEF62, 0x99FC, 0xEF63, 0x9A03, - 0xEF64, 0x9ABE, 0xEF65, 0x9AFE, 0xEF66, 0x9AFD, 0xEF67, 0x9B01, - 0xEF68, 0x9AFC, 0xEF69, 0x9B48, 0xEF6A, 0x9B9A, 0xEF6B, 0x9BA8, - 0xEF6C, 0x9B9E, 0xEF6D, 0x9B9B, 0xEF6E, 0x9BA6, 0xEF6F, 0x9BA1, - 0xEF70, 0x9BA5, 0xEF71, 0x9BA4, 0xEF72, 0x9B86, 0xEF73, 0x9BA2, - 0xEF74, 0x9BA0, 0xEF75, 0x9BAF, 0xEF76, 0x9D33, 0xEF77, 0x9D41, - 0xEF78, 0x9D67, 0xEF79, 0x9D36, 0xEF7A, 0x9D2E, 0xEF7B, 0x9D2F, - 0xEF7C, 0x9D31, 0xEF7D, 0x9D38, 0xEF7E, 0x9D30, 0xEFA1, 0x9D45, - 0xEFA2, 0x9D42, 0xEFA3, 0x9D43, 0xEFA4, 0x9D3E, 0xEFA5, 0x9D37, - 0xEFA6, 0x9D40, 0xEFA7, 0x9D3D, 0xEFA8, 0x7FF5, 0xEFA9, 0x9D2D, - 0xEFAA, 0x9E8A, 0xEFAB, 0x9E89, 0xEFAC, 0x9E8D, 0xEFAD, 0x9EB0, - 0xEFAE, 0x9EC8, 0xEFAF, 0x9EDA, 0xEFB0, 0x9EFB, 0xEFB1, 0x9EFF, - 0xEFB2, 0x9F24, 0xEFB3, 0x9F23, 0xEFB4, 0x9F22, 0xEFB5, 0x9F54, - 0xEFB6, 0x9FA0, 0xEFB7, 0x5131, 0xEFB8, 0x512D, 0xEFB9, 0x512E, - 0xEFBA, 0x5698, 0xEFBB, 0x569C, 0xEFBC, 0x5697, 0xEFBD, 0x569A, - 0xEFBE, 0x569D, 0xEFBF, 0x5699, 0xEFC0, 0x5970, 0xEFC1, 0x5B3C, - 0xEFC2, 0x5C69, 0xEFC3, 0x5C6A, 0xEFC4, 0x5DC0, 0xEFC5, 0x5E6D, - 0xEFC6, 0x5E6E, 0xEFC7, 0x61D8, 0xEFC8, 0x61DF, 0xEFC9, 0x61ED, - 0xEFCA, 0x61EE, 0xEFCB, 0x61F1, 0xEFCC, 0x61EA, 0xEFCD, 0x61F0, - 0xEFCE, 0x61EB, 0xEFCF, 0x61D6, 0xEFD0, 0x61E9, 0xEFD1, 0x64FF, - 0xEFD2, 0x6504, 0xEFD3, 0x64FD, 0xEFD4, 0x64F8, 0xEFD5, 0x6501, - 0xEFD6, 0x6503, 0xEFD7, 0x64FC, 0xEFD8, 0x6594, 0xEFD9, 0x65DB, - 0xEFDA, 0x66DA, 0xEFDB, 0x66DB, 0xEFDC, 0x66D8, 0xEFDD, 0x6AC5, - 0xEFDE, 0x6AB9, 0xEFDF, 0x6ABD, 0xEFE0, 0x6AE1, 0xEFE1, 0x6AC6, - 0xEFE2, 0x6ABA, 0xEFE3, 0x6AB6, 0xEFE4, 0x6AB7, 0xEFE5, 0x6AC7, - 0xEFE6, 0x6AB4, 0xEFE7, 0x6AAD, 0xEFE8, 0x6B5E, 0xEFE9, 0x6BC9, - 0xEFEA, 0x6C0B, 0xEFEB, 0x7007, 0xEFEC, 0x700C, 0xEFED, 0x700D, - 0xEFEE, 0x7001, 0xEFEF, 0x7005, 0xEFF0, 0x7014, 0xEFF1, 0x700E, - 0xEFF2, 0x6FFF, 0xEFF3, 0x7000, 0xEFF4, 0x6FFB, 0xEFF5, 0x7026, - 0xEFF6, 0x6FFC, 0xEFF7, 0x6FF7, 0xEFF8, 0x700A, 0xEFF9, 0x7201, - 0xEFFA, 0x71FF, 0xEFFB, 0x71F9, 0xEFFC, 0x7203, 0xEFFD, 0x71FD, - 0xEFFE, 0x7376, 0xF040, 0x74B8, 0xF041, 0x74C0, 0xF042, 0x74B5, - 0xF043, 0x74C1, 0xF044, 0x74BE, 0xF045, 0x74B6, 0xF046, 0x74BB, - 0xF047, 0x74C2, 0xF048, 0x7514, 0xF049, 0x7513, 0xF04A, 0x765C, - 0xF04B, 0x7664, 0xF04C, 0x7659, 0xF04D, 0x7650, 0xF04E, 0x7653, - 0xF04F, 0x7657, 0xF050, 0x765A, 0xF051, 0x76A6, 0xF052, 0x76BD, - 0xF053, 0x76EC, 0xF054, 0x77C2, 0xF055, 0x77BA, 0xF056, 0x78FF, - 0xF057, 0x790C, 0xF058, 0x7913, 0xF059, 0x7914, 0xF05A, 0x7909, - 0xF05B, 0x7910, 0xF05C, 0x7912, 0xF05D, 0x7911, 0xF05E, 0x79AD, - 0xF05F, 0x79AC, 0xF060, 0x7A5F, 0xF061, 0x7C1C, 0xF062, 0x7C29, - 0xF063, 0x7C19, 0xF064, 0x7C20, 0xF065, 0x7C1F, 0xF066, 0x7C2D, - 0xF067, 0x7C1D, 0xF068, 0x7C26, 0xF069, 0x7C28, 0xF06A, 0x7C22, - 0xF06B, 0x7C25, 0xF06C, 0x7C30, 0xF06D, 0x7E5C, 0xF06E, 0x7E50, - 0xF06F, 0x7E56, 0xF070, 0x7E63, 0xF071, 0x7E58, 0xF072, 0x7E62, - 0xF073, 0x7E5F, 0xF074, 0x7E51, 0xF075, 0x7E60, 0xF076, 0x7E57, - 0xF077, 0x7E53, 0xF078, 0x7FB5, 0xF079, 0x7FB3, 0xF07A, 0x7FF7, - 0xF07B, 0x7FF8, 0xF07C, 0x8075, 0xF07D, 0x81D1, 0xF07E, 0x81D2, - 0xF0A1, 0x81D0, 0xF0A2, 0x825F, 0xF0A3, 0x825E, 0xF0A4, 0x85B4, - 0xF0A5, 0x85C6, 0xF0A6, 0x85C0, 0xF0A7, 0x85C3, 0xF0A8, 0x85C2, - 0xF0A9, 0x85B3, 0xF0AA, 0x85B5, 0xF0AB, 0x85BD, 0xF0AC, 0x85C7, - 0xF0AD, 0x85C4, 0xF0AE, 0x85BF, 0xF0AF, 0x85CB, 0xF0B0, 0x85CE, - 0xF0B1, 0x85C8, 0xF0B2, 0x85C5, 0xF0B3, 0x85B1, 0xF0B4, 0x85B6, - 0xF0B5, 0x85D2, 0xF0B6, 0x8624, 0xF0B7, 0x85B8, 0xF0B8, 0x85B7, - 0xF0B9, 0x85BE, 0xF0BA, 0x8669, 0xF0BB, 0x87E7, 0xF0BC, 0x87E6, - 0xF0BD, 0x87E2, 0xF0BE, 0x87DB, 0xF0BF, 0x87EB, 0xF0C0, 0x87EA, - 0xF0C1, 0x87E5, 0xF0C2, 0x87DF, 0xF0C3, 0x87F3, 0xF0C4, 0x87E4, - 0xF0C5, 0x87D4, 0xF0C6, 0x87DC, 0xF0C7, 0x87D3, 0xF0C8, 0x87ED, - 0xF0C9, 0x87D8, 0xF0CA, 0x87E3, 0xF0CB, 0x87A4, 0xF0CC, 0x87D7, - 0xF0CD, 0x87D9, 0xF0CE, 0x8801, 0xF0CF, 0x87F4, 0xF0D0, 0x87E8, - 0xF0D1, 0x87DD, 0xF0D2, 0x8953, 0xF0D3, 0x894B, 0xF0D4, 0x894F, - 0xF0D5, 0x894C, 0xF0D6, 0x8946, 0xF0D7, 0x8950, 0xF0D8, 0x8951, - 0xF0D9, 0x8949, 0xF0DA, 0x8B2A, 0xF0DB, 0x8B27, 0xF0DC, 0x8B23, - 0xF0DD, 0x8B33, 0xF0DE, 0x8B30, 0xF0DF, 0x8B35, 0xF0E0, 0x8B47, - 0xF0E1, 0x8B2F, 0xF0E2, 0x8B3C, 0xF0E3, 0x8B3E, 0xF0E4, 0x8B31, - 0xF0E5, 0x8B25, 0xF0E6, 0x8B37, 0xF0E7, 0x8B26, 0xF0E8, 0x8B36, - 0xF0E9, 0x8B2E, 0xF0EA, 0x8B24, 0xF0EB, 0x8B3B, 0xF0EC, 0x8B3D, - 0xF0ED, 0x8B3A, 0xF0EE, 0x8C42, 0xF0EF, 0x8C75, 0xF0F0, 0x8C99, - 0xF0F1, 0x8C98, 0xF0F2, 0x8C97, 0xF0F3, 0x8CFE, 0xF0F4, 0x8D04, - 0xF0F5, 0x8D02, 0xF0F6, 0x8D00, 0xF0F7, 0x8E5C, 0xF0F8, 0x8E62, - 0xF0F9, 0x8E60, 0xF0FA, 0x8E57, 0xF0FB, 0x8E56, 0xF0FC, 0x8E5E, - 0xF0FD, 0x8E65, 0xF0FE, 0x8E67, 0xF140, 0x8E5B, 0xF141, 0x8E5A, - 0xF142, 0x8E61, 0xF143, 0x8E5D, 0xF144, 0x8E69, 0xF145, 0x8E54, - 0xF146, 0x8F46, 0xF147, 0x8F47, 0xF148, 0x8F48, 0xF149, 0x8F4B, - 0xF14A, 0x9128, 0xF14B, 0x913A, 0xF14C, 0x913B, 0xF14D, 0x913E, - 0xF14E, 0x91A8, 0xF14F, 0x91A5, 0xF150, 0x91A7, 0xF151, 0x91AF, - 0xF152, 0x91AA, 0xF153, 0x93B5, 0xF154, 0x938C, 0xF155, 0x9392, - 0xF156, 0x93B7, 0xF157, 0x939B, 0xF158, 0x939D, 0xF159, 0x9389, - 0xF15A, 0x93A7, 0xF15B, 0x938E, 0xF15C, 0x93AA, 0xF15D, 0x939E, - 0xF15E, 0x93A6, 0xF15F, 0x9395, 0xF160, 0x9388, 0xF161, 0x9399, - 0xF162, 0x939F, 0xF163, 0x938D, 0xF164, 0x93B1, 0xF165, 0x9391, - 0xF166, 0x93B2, 0xF167, 0x93A4, 0xF168, 0x93A8, 0xF169, 0x93B4, - 0xF16A, 0x93A3, 0xF16B, 0x93A5, 0xF16C, 0x95D2, 0xF16D, 0x95D3, - 0xF16E, 0x95D1, 0xF16F, 0x96B3, 0xF170, 0x96D7, 0xF171, 0x96DA, - 0xF172, 0x5DC2, 0xF173, 0x96DF, 0xF174, 0x96D8, 0xF175, 0x96DD, - 0xF176, 0x9723, 0xF177, 0x9722, 0xF178, 0x9725, 0xF179, 0x97AC, - 0xF17A, 0x97AE, 0xF17B, 0x97A8, 0xF17C, 0x97AB, 0xF17D, 0x97A4, - 0xF17E, 0x97AA, 0xF1A1, 0x97A2, 0xF1A2, 0x97A5, 0xF1A3, 0x97D7, - 0xF1A4, 0x97D9, 0xF1A5, 0x97D6, 0xF1A6, 0x97D8, 0xF1A7, 0x97FA, - 0xF1A8, 0x9850, 0xF1A9, 0x9851, 0xF1AA, 0x9852, 0xF1AB, 0x98B8, - 0xF1AC, 0x9941, 0xF1AD, 0x993C, 0xF1AE, 0x993A, 0xF1AF, 0x9A0F, - 0xF1B0, 0x9A0B, 0xF1B1, 0x9A09, 0xF1B2, 0x9A0D, 0xF1B3, 0x9A04, - 0xF1B4, 0x9A11, 0xF1B5, 0x9A0A, 0xF1B6, 0x9A05, 0xF1B7, 0x9A07, - 0xF1B8, 0x9A06, 0xF1B9, 0x9AC0, 0xF1BA, 0x9ADC, 0xF1BB, 0x9B08, - 0xF1BC, 0x9B04, 0xF1BD, 0x9B05, 0xF1BE, 0x9B29, 0xF1BF, 0x9B35, - 0xF1C0, 0x9B4A, 0xF1C1, 0x9B4C, 0xF1C2, 0x9B4B, 0xF1C3, 0x9BC7, - 0xF1C4, 0x9BC6, 0xF1C5, 0x9BC3, 0xF1C6, 0x9BBF, 0xF1C7, 0x9BC1, - 0xF1C8, 0x9BB5, 0xF1C9, 0x9BB8, 0xF1CA, 0x9BD3, 0xF1CB, 0x9BB6, - 0xF1CC, 0x9BC4, 0xF1CD, 0x9BB9, 0xF1CE, 0x9BBD, 0xF1CF, 0x9D5C, - 0xF1D0, 0x9D53, 0xF1D1, 0x9D4F, 0xF1D2, 0x9D4A, 0xF1D3, 0x9D5B, - 0xF1D4, 0x9D4B, 0xF1D5, 0x9D59, 0xF1D6, 0x9D56, 0xF1D7, 0x9D4C, - 0xF1D8, 0x9D57, 0xF1D9, 0x9D52, 0xF1DA, 0x9D54, 0xF1DB, 0x9D5F, - 0xF1DC, 0x9D58, 0xF1DD, 0x9D5A, 0xF1DE, 0x9E8E, 0xF1DF, 0x9E8C, - 0xF1E0, 0x9EDF, 0xF1E1, 0x9F01, 0xF1E2, 0x9F00, 0xF1E3, 0x9F16, - 0xF1E4, 0x9F25, 0xF1E5, 0x9F2B, 0xF1E6, 0x9F2A, 0xF1E7, 0x9F29, - 0xF1E8, 0x9F28, 0xF1E9, 0x9F4C, 0xF1EA, 0x9F55, 0xF1EB, 0x5134, - 0xF1EC, 0x5135, 0xF1ED, 0x5296, 0xF1EE, 0x52F7, 0xF1EF, 0x53B4, - 0xF1F0, 0x56AB, 0xF1F1, 0x56AD, 0xF1F2, 0x56A6, 0xF1F3, 0x56A7, - 0xF1F4, 0x56AA, 0xF1F5, 0x56AC, 0xF1F6, 0x58DA, 0xF1F7, 0x58DD, - 0xF1F8, 0x58DB, 0xF1F9, 0x5912, 0xF1FA, 0x5B3D, 0xF1FB, 0x5B3E, - 0xF1FC, 0x5B3F, 0xF1FD, 0x5DC3, 0xF1FE, 0x5E70, 0xF240, 0x5FBF, - 0xF241, 0x61FB, 0xF242, 0x6507, 0xF243, 0x6510, 0xF244, 0x650D, - 0xF245, 0x6509, 0xF246, 0x650C, 0xF247, 0x650E, 0xF248, 0x6584, - 0xF249, 0x65DE, 0xF24A, 0x65DD, 0xF24B, 0x66DE, 0xF24C, 0x6AE7, - 0xF24D, 0x6AE0, 0xF24E, 0x6ACC, 0xF24F, 0x6AD1, 0xF250, 0x6AD9, - 0xF251, 0x6ACB, 0xF252, 0x6ADF, 0xF253, 0x6ADC, 0xF254, 0x6AD0, - 0xF255, 0x6AEB, 0xF256, 0x6ACF, 0xF257, 0x6ACD, 0xF258, 0x6ADE, - 0xF259, 0x6B60, 0xF25A, 0x6BB0, 0xF25B, 0x6C0C, 0xF25C, 0x7019, - 0xF25D, 0x7027, 0xF25E, 0x7020, 0xF25F, 0x7016, 0xF260, 0x702B, - 0xF261, 0x7021, 0xF262, 0x7022, 0xF263, 0x7023, 0xF264, 0x7029, - 0xF265, 0x7017, 0xF266, 0x7024, 0xF267, 0x701C, 0xF268, 0x702A, - 0xF269, 0x720C, 0xF26A, 0x720A, 0xF26B, 0x7207, 0xF26C, 0x7202, - 0xF26D, 0x7205, 0xF26E, 0x72A5, 0xF26F, 0x72A6, 0xF270, 0x72A4, - 0xF271, 0x72A3, 0xF272, 0x72A1, 0xF273, 0x74CB, 0xF274, 0x74C5, - 0xF275, 0x74B7, 0xF276, 0x74C3, 0xF277, 0x7516, 0xF278, 0x7660, - 0xF279, 0x77C9, 0xF27A, 0x77CA, 0xF27B, 0x77C4, 0xF27C, 0x77F1, - 0xF27D, 0x791D, 0xF27E, 0x791B, 0xF2A1, 0x7921, 0xF2A2, 0x791C, - 0xF2A3, 0x7917, 0xF2A4, 0x791E, 0xF2A5, 0x79B0, 0xF2A6, 0x7A67, - 0xF2A7, 0x7A68, 0xF2A8, 0x7C33, 0xF2A9, 0x7C3C, 0xF2AA, 0x7C39, - 0xF2AB, 0x7C2C, 0xF2AC, 0x7C3B, 0xF2AD, 0x7CEC, 0xF2AE, 0x7CEA, - 0xF2AF, 0x7E76, 0xF2B0, 0x7E75, 0xF2B1, 0x7E78, 0xF2B2, 0x7E70, - 0xF2B3, 0x7E77, 0xF2B4, 0x7E6F, 0xF2B5, 0x7E7A, 0xF2B6, 0x7E72, - 0xF2B7, 0x7E74, 0xF2B8, 0x7E68, 0xF2B9, 0x7F4B, 0xF2BA, 0x7F4A, - 0xF2BB, 0x7F83, 0xF2BC, 0x7F86, 0xF2BD, 0x7FB7, 0xF2BE, 0x7FFD, - 0xF2BF, 0x7FFE, 0xF2C0, 0x8078, 0xF2C1, 0x81D7, 0xF2C2, 0x81D5, - 0xF2C3, 0x8264, 0xF2C4, 0x8261, 0xF2C5, 0x8263, 0xF2C6, 0x85EB, - 0xF2C7, 0x85F1, 0xF2C8, 0x85ED, 0xF2C9, 0x85D9, 0xF2CA, 0x85E1, - 0xF2CB, 0x85E8, 0xF2CC, 0x85DA, 0xF2CD, 0x85D7, 0xF2CE, 0x85EC, - 0xF2CF, 0x85F2, 0xF2D0, 0x85F8, 0xF2D1, 0x85D8, 0xF2D2, 0x85DF, - 0xF2D3, 0x85E3, 0xF2D4, 0x85DC, 0xF2D5, 0x85D1, 0xF2D6, 0x85F0, - 0xF2D7, 0x85E6, 0xF2D8, 0x85EF, 0xF2D9, 0x85DE, 0xF2DA, 0x85E2, - 0xF2DB, 0x8800, 0xF2DC, 0x87FA, 0xF2DD, 0x8803, 0xF2DE, 0x87F6, - 0xF2DF, 0x87F7, 0xF2E0, 0x8809, 0xF2E1, 0x880C, 0xF2E2, 0x880B, - 0xF2E3, 0x8806, 0xF2E4, 0x87FC, 0xF2E5, 0x8808, 0xF2E6, 0x87FF, - 0xF2E7, 0x880A, 0xF2E8, 0x8802, 0xF2E9, 0x8962, 0xF2EA, 0x895A, - 0xF2EB, 0x895B, 0xF2EC, 0x8957, 0xF2ED, 0x8961, 0xF2EE, 0x895C, - 0xF2EF, 0x8958, 0xF2F0, 0x895D, 0xF2F1, 0x8959, 0xF2F2, 0x8988, - 0xF2F3, 0x89B7, 0xF2F4, 0x89B6, 0xF2F5, 0x89F6, 0xF2F6, 0x8B50, - 0xF2F7, 0x8B48, 0xF2F8, 0x8B4A, 0xF2F9, 0x8B40, 0xF2FA, 0x8B53, - 0xF2FB, 0x8B56, 0xF2FC, 0x8B54, 0xF2FD, 0x8B4B, 0xF2FE, 0x8B55, - 0xF340, 0x8B51, 0xF341, 0x8B42, 0xF342, 0x8B52, 0xF343, 0x8B57, - 0xF344, 0x8C43, 0xF345, 0x8C77, 0xF346, 0x8C76, 0xF347, 0x8C9A, - 0xF348, 0x8D06, 0xF349, 0x8D07, 0xF34A, 0x8D09, 0xF34B, 0x8DAC, - 0xF34C, 0x8DAA, 0xF34D, 0x8DAD, 0xF34E, 0x8DAB, 0xF34F, 0x8E6D, - 0xF350, 0x8E78, 0xF351, 0x8E73, 0xF352, 0x8E6A, 0xF353, 0x8E6F, - 0xF354, 0x8E7B, 0xF355, 0x8EC2, 0xF356, 0x8F52, 0xF357, 0x8F51, - 0xF358, 0x8F4F, 0xF359, 0x8F50, 0xF35A, 0x8F53, 0xF35B, 0x8FB4, - 0xF35C, 0x9140, 0xF35D, 0x913F, 0xF35E, 0x91B0, 0xF35F, 0x91AD, - 0xF360, 0x93DE, 0xF361, 0x93C7, 0xF362, 0x93CF, 0xF363, 0x93C2, - 0xF364, 0x93DA, 0xF365, 0x93D0, 0xF366, 0x93F9, 0xF367, 0x93EC, - 0xF368, 0x93CC, 0xF369, 0x93D9, 0xF36A, 0x93A9, 0xF36B, 0x93E6, - 0xF36C, 0x93CA, 0xF36D, 0x93D4, 0xF36E, 0x93EE, 0xF36F, 0x93E3, - 0xF370, 0x93D5, 0xF371, 0x93C4, 0xF372, 0x93CE, 0xF373, 0x93C0, - 0xF374, 0x93D2, 0xF375, 0x93E7, 0xF376, 0x957D, 0xF377, 0x95DA, - 0xF378, 0x95DB, 0xF379, 0x96E1, 0xF37A, 0x9729, 0xF37B, 0x972B, - 0xF37C, 0x972C, 0xF37D, 0x9728, 0xF37E, 0x9726, 0xF3A1, 0x97B3, - 0xF3A2, 0x97B7, 0xF3A3, 0x97B6, 0xF3A4, 0x97DD, 0xF3A5, 0x97DE, - 0xF3A6, 0x97DF, 0xF3A7, 0x985C, 0xF3A8, 0x9859, 0xF3A9, 0x985D, - 0xF3AA, 0x9857, 0xF3AB, 0x98BF, 0xF3AC, 0x98BD, 0xF3AD, 0x98BB, - 0xF3AE, 0x98BE, 0xF3AF, 0x9948, 0xF3B0, 0x9947, 0xF3B1, 0x9943, - 0xF3B2, 0x99A6, 0xF3B3, 0x99A7, 0xF3B4, 0x9A1A, 0xF3B5, 0x9A15, - 0xF3B6, 0x9A25, 0xF3B7, 0x9A1D, 0xF3B8, 0x9A24, 0xF3B9, 0x9A1B, - 0xF3BA, 0x9A22, 0xF3BB, 0x9A20, 0xF3BC, 0x9A27, 0xF3BD, 0x9A23, - 0xF3BE, 0x9A1E, 0xF3BF, 0x9A1C, 0xF3C0, 0x9A14, 0xF3C1, 0x9AC2, - 0xF3C2, 0x9B0B, 0xF3C3, 0x9B0A, 0xF3C4, 0x9B0E, 0xF3C5, 0x9B0C, - 0xF3C6, 0x9B37, 0xF3C7, 0x9BEA, 0xF3C8, 0x9BEB, 0xF3C9, 0x9BE0, - 0xF3CA, 0x9BDE, 0xF3CB, 0x9BE4, 0xF3CC, 0x9BE6, 0xF3CD, 0x9BE2, - 0xF3CE, 0x9BF0, 0xF3CF, 0x9BD4, 0xF3D0, 0x9BD7, 0xF3D1, 0x9BEC, - 0xF3D2, 0x9BDC, 0xF3D3, 0x9BD9, 0xF3D4, 0x9BE5, 0xF3D5, 0x9BD5, - 0xF3D6, 0x9BE1, 0xF3D7, 0x9BDA, 0xF3D8, 0x9D77, 0xF3D9, 0x9D81, - 0xF3DA, 0x9D8A, 0xF3DB, 0x9D84, 0xF3DC, 0x9D88, 0xF3DD, 0x9D71, - 0xF3DE, 0x9D80, 0xF3DF, 0x9D78, 0xF3E0, 0x9D86, 0xF3E1, 0x9D8B, - 0xF3E2, 0x9D8C, 0xF3E3, 0x9D7D, 0xF3E4, 0x9D6B, 0xF3E5, 0x9D74, - 0xF3E6, 0x9D75, 0xF3E7, 0x9D70, 0xF3E8, 0x9D69, 0xF3E9, 0x9D85, - 0xF3EA, 0x9D73, 0xF3EB, 0x9D7B, 0xF3EC, 0x9D82, 0xF3ED, 0x9D6F, - 0xF3EE, 0x9D79, 0xF3EF, 0x9D7F, 0xF3F0, 0x9D87, 0xF3F1, 0x9D68, - 0xF3F2, 0x9E94, 0xF3F3, 0x9E91, 0xF3F4, 0x9EC0, 0xF3F5, 0x9EFC, - 0xF3F6, 0x9F2D, 0xF3F7, 0x9F40, 0xF3F8, 0x9F41, 0xF3F9, 0x9F4D, - 0xF3FA, 0x9F56, 0xF3FB, 0x9F57, 0xF3FC, 0x9F58, 0xF3FD, 0x5337, - 0xF3FE, 0x56B2, 0xF440, 0x56B5, 0xF441, 0x56B3, 0xF442, 0x58E3, - 0xF443, 0x5B45, 0xF444, 0x5DC6, 0xF445, 0x5DC7, 0xF446, 0x5EEE, - 0xF447, 0x5EEF, 0xF448, 0x5FC0, 0xF449, 0x5FC1, 0xF44A, 0x61F9, - 0xF44B, 0x6517, 0xF44C, 0x6516, 0xF44D, 0x6515, 0xF44E, 0x6513, - 0xF44F, 0x65DF, 0xF450, 0x66E8, 0xF451, 0x66E3, 0xF452, 0x66E4, - 0xF453, 0x6AF3, 0xF454, 0x6AF0, 0xF455, 0x6AEA, 0xF456, 0x6AE8, - 0xF457, 0x6AF9, 0xF458, 0x6AF1, 0xF459, 0x6AEE, 0xF45A, 0x6AEF, - 0xF45B, 0x703C, 0xF45C, 0x7035, 0xF45D, 0x702F, 0xF45E, 0x7037, - 0xF45F, 0x7034, 0xF460, 0x7031, 0xF461, 0x7042, 0xF462, 0x7038, - 0xF463, 0x703F, 0xF464, 0x703A, 0xF465, 0x7039, 0xF466, 0x7040, - 0xF467, 0x703B, 0xF468, 0x7033, 0xF469, 0x7041, 0xF46A, 0x7213, - 0xF46B, 0x7214, 0xF46C, 0x72A8, 0xF46D, 0x737D, 0xF46E, 0x737C, - 0xF46F, 0x74BA, 0xF470, 0x76AB, 0xF471, 0x76AA, 0xF472, 0x76BE, - 0xF473, 0x76ED, 0xF474, 0x77CC, 0xF475, 0x77CE, 0xF476, 0x77CF, - 0xF477, 0x77CD, 0xF478, 0x77F2, 0xF479, 0x7925, 0xF47A, 0x7923, - 0xF47B, 0x7927, 0xF47C, 0x7928, 0xF47D, 0x7924, 0xF47E, 0x7929, - 0xF4A1, 0x79B2, 0xF4A2, 0x7A6E, 0xF4A3, 0x7A6C, 0xF4A4, 0x7A6D, - 0xF4A5, 0x7AF7, 0xF4A6, 0x7C49, 0xF4A7, 0x7C48, 0xF4A8, 0x7C4A, - 0xF4A9, 0x7C47, 0xF4AA, 0x7C45, 0xF4AB, 0x7CEE, 0xF4AC, 0x7E7B, - 0xF4AD, 0x7E7E, 0xF4AE, 0x7E81, 0xF4AF, 0x7E80, 0xF4B0, 0x7FBA, - 0xF4B1, 0x7FFF, 0xF4B2, 0x8079, 0xF4B3, 0x81DB, 0xF4B4, 0x81D9, - 0xF4B5, 0x820B, 0xF4B6, 0x8268, 0xF4B7, 0x8269, 0xF4B8, 0x8622, - 0xF4B9, 0x85FF, 0xF4BA, 0x8601, 0xF4BB, 0x85FE, 0xF4BC, 0x861B, - 0xF4BD, 0x8600, 0xF4BE, 0x85F6, 0xF4BF, 0x8604, 0xF4C0, 0x8609, - 0xF4C1, 0x8605, 0xF4C2, 0x860C, 0xF4C3, 0x85FD, 0xF4C4, 0x8819, - 0xF4C5, 0x8810, 0xF4C6, 0x8811, 0xF4C7, 0x8817, 0xF4C8, 0x8813, - 0xF4C9, 0x8816, 0xF4CA, 0x8963, 0xF4CB, 0x8966, 0xF4CC, 0x89B9, - 0xF4CD, 0x89F7, 0xF4CE, 0x8B60, 0xF4CF, 0x8B6A, 0xF4D0, 0x8B5D, - 0xF4D1, 0x8B68, 0xF4D2, 0x8B63, 0xF4D3, 0x8B65, 0xF4D4, 0x8B67, - 0xF4D5, 0x8B6D, 0xF4D6, 0x8DAE, 0xF4D7, 0x8E86, 0xF4D8, 0x8E88, - 0xF4D9, 0x8E84, 0xF4DA, 0x8F59, 0xF4DB, 0x8F56, 0xF4DC, 0x8F57, - 0xF4DD, 0x8F55, 0xF4DE, 0x8F58, 0xF4DF, 0x8F5A, 0xF4E0, 0x908D, - 0xF4E1, 0x9143, 0xF4E2, 0x9141, 0xF4E3, 0x91B7, 0xF4E4, 0x91B5, - 0xF4E5, 0x91B2, 0xF4E6, 0x91B3, 0xF4E7, 0x940B, 0xF4E8, 0x9413, - 0xF4E9, 0x93FB, 0xF4EA, 0x9420, 0xF4EB, 0x940F, 0xF4EC, 0x9414, - 0xF4ED, 0x93FE, 0xF4EE, 0x9415, 0xF4EF, 0x9410, 0xF4F0, 0x9428, - 0xF4F1, 0x9419, 0xF4F2, 0x940D, 0xF4F3, 0x93F5, 0xF4F4, 0x9400, - 0xF4F5, 0x93F7, 0xF4F6, 0x9407, 0xF4F7, 0x940E, 0xF4F8, 0x9416, - 0xF4F9, 0x9412, 0xF4FA, 0x93FA, 0xF4FB, 0x9409, 0xF4FC, 0x93F8, - 0xF4FD, 0x940A, 0xF4FE, 0x93FF, 0xF540, 0x93FC, 0xF541, 0x940C, - 0xF542, 0x93F6, 0xF543, 0x9411, 0xF544, 0x9406, 0xF545, 0x95DE, - 0xF546, 0x95E0, 0xF547, 0x95DF, 0xF548, 0x972E, 0xF549, 0x972F, - 0xF54A, 0x97B9, 0xF54B, 0x97BB, 0xF54C, 0x97FD, 0xF54D, 0x97FE, - 0xF54E, 0x9860, 0xF54F, 0x9862, 0xF550, 0x9863, 0xF551, 0x985F, - 0xF552, 0x98C1, 0xF553, 0x98C2, 0xF554, 0x9950, 0xF555, 0x994E, - 0xF556, 0x9959, 0xF557, 0x994C, 0xF558, 0x994B, 0xF559, 0x9953, - 0xF55A, 0x9A32, 0xF55B, 0x9A34, 0xF55C, 0x9A31, 0xF55D, 0x9A2C, - 0xF55E, 0x9A2A, 0xF55F, 0x9A36, 0xF560, 0x9A29, 0xF561, 0x9A2E, - 0xF562, 0x9A38, 0xF563, 0x9A2D, 0xF564, 0x9AC7, 0xF565, 0x9ACA, - 0xF566, 0x9AC6, 0xF567, 0x9B10, 0xF568, 0x9B12, 0xF569, 0x9B11, - 0xF56A, 0x9C0B, 0xF56B, 0x9C08, 0xF56C, 0x9BF7, 0xF56D, 0x9C05, - 0xF56E, 0x9C12, 0xF56F, 0x9BF8, 0xF570, 0x9C40, 0xF571, 0x9C07, - 0xF572, 0x9C0E, 0xF573, 0x9C06, 0xF574, 0x9C17, 0xF575, 0x9C14, - 0xF576, 0x9C09, 0xF577, 0x9D9F, 0xF578, 0x9D99, 0xF579, 0x9DA4, - 0xF57A, 0x9D9D, 0xF57B, 0x9D92, 0xF57C, 0x9D98, 0xF57D, 0x9D90, - 0xF57E, 0x9D9B, 0xF5A1, 0x9DA0, 0xF5A2, 0x9D94, 0xF5A3, 0x9D9C, - 0xF5A4, 0x9DAA, 0xF5A5, 0x9D97, 0xF5A6, 0x9DA1, 0xF5A7, 0x9D9A, - 0xF5A8, 0x9DA2, 0xF5A9, 0x9DA8, 0xF5AA, 0x9D9E, 0xF5AB, 0x9DA3, - 0xF5AC, 0x9DBF, 0xF5AD, 0x9DA9, 0xF5AE, 0x9D96, 0xF5AF, 0x9DA6, - 0xF5B0, 0x9DA7, 0xF5B1, 0x9E99, 0xF5B2, 0x9E9B, 0xF5B3, 0x9E9A, - 0xF5B4, 0x9EE5, 0xF5B5, 0x9EE4, 0xF5B6, 0x9EE7, 0xF5B7, 0x9EE6, - 0xF5B8, 0x9F30, 0xF5B9, 0x9F2E, 0xF5BA, 0x9F5B, 0xF5BB, 0x9F60, - 0xF5BC, 0x9F5E, 0xF5BD, 0x9F5D, 0xF5BE, 0x9F59, 0xF5BF, 0x9F91, - 0xF5C0, 0x513A, 0xF5C1, 0x5139, 0xF5C2, 0x5298, 0xF5C3, 0x5297, - 0xF5C4, 0x56C3, 0xF5C5, 0x56BD, 0xF5C6, 0x56BE, 0xF5C7, 0x5B48, - 0xF5C8, 0x5B47, 0xF5C9, 0x5DCB, 0xF5CA, 0x5DCF, 0xF5CB, 0x5EF1, - 0xF5CC, 0x61FD, 0xF5CD, 0x651B, 0xF5CE, 0x6B02, 0xF5CF, 0x6AFC, - 0xF5D0, 0x6B03, 0xF5D1, 0x6AF8, 0xF5D2, 0x6B00, 0xF5D3, 0x7043, - 0xF5D4, 0x7044, 0xF5D5, 0x704A, 0xF5D6, 0x7048, 0xF5D7, 0x7049, - 0xF5D8, 0x7045, 0xF5D9, 0x7046, 0xF5DA, 0x721D, 0xF5DB, 0x721A, - 0xF5DC, 0x7219, 0xF5DD, 0x737E, 0xF5DE, 0x7517, 0xF5DF, 0x766A, - 0xF5E0, 0x77D0, 0xF5E1, 0x792D, 0xF5E2, 0x7931, 0xF5E3, 0x792F, - 0xF5E4, 0x7C54, 0xF5E5, 0x7C53, 0xF5E6, 0x7CF2, 0xF5E7, 0x7E8A, - 0xF5E8, 0x7E87, 0xF5E9, 0x7E88, 0xF5EA, 0x7E8B, 0xF5EB, 0x7E86, - 0xF5EC, 0x7E8D, 0xF5ED, 0x7F4D, 0xF5EE, 0x7FBB, 0xF5EF, 0x8030, - 0xF5F0, 0x81DD, 0xF5F1, 0x8618, 0xF5F2, 0x862A, 0xF5F3, 0x8626, - 0xF5F4, 0x861F, 0xF5F5, 0x8623, 0xF5F6, 0x861C, 0xF5F7, 0x8619, - 0xF5F8, 0x8627, 0xF5F9, 0x862E, 0xF5FA, 0x8621, 0xF5FB, 0x8620, - 0xF5FC, 0x8629, 0xF5FD, 0x861E, 0xF5FE, 0x8625, 0xF640, 0x8829, - 0xF641, 0x881D, 0xF642, 0x881B, 0xF643, 0x8820, 0xF644, 0x8824, - 0xF645, 0x881C, 0xF646, 0x882B, 0xF647, 0x884A, 0xF648, 0x896D, - 0xF649, 0x8969, 0xF64A, 0x896E, 0xF64B, 0x896B, 0xF64C, 0x89FA, - 0xF64D, 0x8B79, 0xF64E, 0x8B78, 0xF64F, 0x8B45, 0xF650, 0x8B7A, - 0xF651, 0x8B7B, 0xF652, 0x8D10, 0xF653, 0x8D14, 0xF654, 0x8DAF, - 0xF655, 0x8E8E, 0xF656, 0x8E8C, 0xF657, 0x8F5E, 0xF658, 0x8F5B, - 0xF659, 0x8F5D, 0xF65A, 0x9146, 0xF65B, 0x9144, 0xF65C, 0x9145, - 0xF65D, 0x91B9, 0xF65E, 0x943F, 0xF65F, 0x943B, 0xF660, 0x9436, - 0xF661, 0x9429, 0xF662, 0x943D, 0xF663, 0x943C, 0xF664, 0x9430, - 0xF665, 0x9439, 0xF666, 0x942A, 0xF667, 0x9437, 0xF668, 0x942C, - 0xF669, 0x9440, 0xF66A, 0x9431, 0xF66B, 0x95E5, 0xF66C, 0x95E4, - 0xF66D, 0x95E3, 0xF66E, 0x9735, 0xF66F, 0x973A, 0xF670, 0x97BF, - 0xF671, 0x97E1, 0xF672, 0x9864, 0xF673, 0x98C9, 0xF674, 0x98C6, - 0xF675, 0x98C0, 0xF676, 0x9958, 0xF677, 0x9956, 0xF678, 0x9A39, - 0xF679, 0x9A3D, 0xF67A, 0x9A46, 0xF67B, 0x9A44, 0xF67C, 0x9A42, - 0xF67D, 0x9A41, 0xF67E, 0x9A3A, 0xF6A1, 0x9A3F, 0xF6A2, 0x9ACD, - 0xF6A3, 0x9B15, 0xF6A4, 0x9B17, 0xF6A5, 0x9B18, 0xF6A6, 0x9B16, - 0xF6A7, 0x9B3A, 0xF6A8, 0x9B52, 0xF6A9, 0x9C2B, 0xF6AA, 0x9C1D, - 0xF6AB, 0x9C1C, 0xF6AC, 0x9C2C, 0xF6AD, 0x9C23, 0xF6AE, 0x9C28, - 0xF6AF, 0x9C29, 0xF6B0, 0x9C24, 0xF6B1, 0x9C21, 0xF6B2, 0x9DB7, - 0xF6B3, 0x9DB6, 0xF6B4, 0x9DBC, 0xF6B5, 0x9DC1, 0xF6B6, 0x9DC7, - 0xF6B7, 0x9DCA, 0xF6B8, 0x9DCF, 0xF6B9, 0x9DBE, 0xF6BA, 0x9DC5, - 0xF6BB, 0x9DC3, 0xF6BC, 0x9DBB, 0xF6BD, 0x9DB5, 0xF6BE, 0x9DCE, - 0xF6BF, 0x9DB9, 0xF6C0, 0x9DBA, 0xF6C1, 0x9DAC, 0xF6C2, 0x9DC8, - 0xF6C3, 0x9DB1, 0xF6C4, 0x9DAD, 0xF6C5, 0x9DCC, 0xF6C6, 0x9DB3, - 0xF6C7, 0x9DCD, 0xF6C8, 0x9DB2, 0xF6C9, 0x9E7A, 0xF6CA, 0x9E9C, - 0xF6CB, 0x9EEB, 0xF6CC, 0x9EEE, 0xF6CD, 0x9EED, 0xF6CE, 0x9F1B, - 0xF6CF, 0x9F18, 0xF6D0, 0x9F1A, 0xF6D1, 0x9F31, 0xF6D2, 0x9F4E, - 0xF6D3, 0x9F65, 0xF6D4, 0x9F64, 0xF6D5, 0x9F92, 0xF6D6, 0x4EB9, - 0xF6D7, 0x56C6, 0xF6D8, 0x56C5, 0xF6D9, 0x56CB, 0xF6DA, 0x5971, - 0xF6DB, 0x5B4B, 0xF6DC, 0x5B4C, 0xF6DD, 0x5DD5, 0xF6DE, 0x5DD1, - 0xF6DF, 0x5EF2, 0xF6E0, 0x6521, 0xF6E1, 0x6520, 0xF6E2, 0x6526, - 0xF6E3, 0x6522, 0xF6E4, 0x6B0B, 0xF6E5, 0x6B08, 0xF6E6, 0x6B09, - 0xF6E7, 0x6C0D, 0xF6E8, 0x7055, 0xF6E9, 0x7056, 0xF6EA, 0x7057, - 0xF6EB, 0x7052, 0xF6EC, 0x721E, 0xF6ED, 0x721F, 0xF6EE, 0x72A9, - 0xF6EF, 0x737F, 0xF6F0, 0x74D8, 0xF6F1, 0x74D5, 0xF6F2, 0x74D9, - 0xF6F3, 0x74D7, 0xF6F4, 0x766D, 0xF6F5, 0x76AD, 0xF6F6, 0x7935, - 0xF6F7, 0x79B4, 0xF6F8, 0x7A70, 0xF6F9, 0x7A71, 0xF6FA, 0x7C57, - 0xF6FB, 0x7C5C, 0xF6FC, 0x7C59, 0xF6FD, 0x7C5B, 0xF6FE, 0x7C5A, - 0xF740, 0x7CF4, 0xF741, 0x7CF1, 0xF742, 0x7E91, 0xF743, 0x7F4F, - 0xF744, 0x7F87, 0xF745, 0x81DE, 0xF746, 0x826B, 0xF747, 0x8634, - 0xF748, 0x8635, 0xF749, 0x8633, 0xF74A, 0x862C, 0xF74B, 0x8632, - 0xF74C, 0x8636, 0xF74D, 0x882C, 0xF74E, 0x8828, 0xF74F, 0x8826, - 0xF750, 0x882A, 0xF751, 0x8825, 0xF752, 0x8971, 0xF753, 0x89BF, - 0xF754, 0x89BE, 0xF755, 0x89FB, 0xF756, 0x8B7E, 0xF757, 0x8B84, - 0xF758, 0x8B82, 0xF759, 0x8B86, 0xF75A, 0x8B85, 0xF75B, 0x8B7F, - 0xF75C, 0x8D15, 0xF75D, 0x8E95, 0xF75E, 0x8E94, 0xF75F, 0x8E9A, - 0xF760, 0x8E92, 0xF761, 0x8E90, 0xF762, 0x8E96, 0xF763, 0x8E97, - 0xF764, 0x8F60, 0xF765, 0x8F62, 0xF766, 0x9147, 0xF767, 0x944C, - 0xF768, 0x9450, 0xF769, 0x944A, 0xF76A, 0x944B, 0xF76B, 0x944F, - 0xF76C, 0x9447, 0xF76D, 0x9445, 0xF76E, 0x9448, 0xF76F, 0x9449, - 0xF770, 0x9446, 0xF771, 0x973F, 0xF772, 0x97E3, 0xF773, 0x986A, - 0xF774, 0x9869, 0xF775, 0x98CB, 0xF776, 0x9954, 0xF777, 0x995B, - 0xF778, 0x9A4E, 0xF779, 0x9A53, 0xF77A, 0x9A54, 0xF77B, 0x9A4C, - 0xF77C, 0x9A4F, 0xF77D, 0x9A48, 0xF77E, 0x9A4A, 0xF7A1, 0x9A49, - 0xF7A2, 0x9A52, 0xF7A3, 0x9A50, 0xF7A4, 0x9AD0, 0xF7A5, 0x9B19, - 0xF7A6, 0x9B2B, 0xF7A7, 0x9B3B, 0xF7A8, 0x9B56, 0xF7A9, 0x9B55, - 0xF7AA, 0x9C46, 0xF7AB, 0x9C48, 0xF7AC, 0x9C3F, 0xF7AD, 0x9C44, - 0xF7AE, 0x9C39, 0xF7AF, 0x9C33, 0xF7B0, 0x9C41, 0xF7B1, 0x9C3C, - 0xF7B2, 0x9C37, 0xF7B3, 0x9C34, 0xF7B4, 0x9C32, 0xF7B5, 0x9C3D, - 0xF7B6, 0x9C36, 0xF7B7, 0x9DDB, 0xF7B8, 0x9DD2, 0xF7B9, 0x9DDE, - 0xF7BA, 0x9DDA, 0xF7BB, 0x9DCB, 0xF7BC, 0x9DD0, 0xF7BD, 0x9DDC, - 0xF7BE, 0x9DD1, 0xF7BF, 0x9DDF, 0xF7C0, 0x9DE9, 0xF7C1, 0x9DD9, - 0xF7C2, 0x9DD8, 0xF7C3, 0x9DD6, 0xF7C4, 0x9DF5, 0xF7C5, 0x9DD5, - 0xF7C6, 0x9DDD, 0xF7C7, 0x9EB6, 0xF7C8, 0x9EF0, 0xF7C9, 0x9F35, - 0xF7CA, 0x9F33, 0xF7CB, 0x9F32, 0xF7CC, 0x9F42, 0xF7CD, 0x9F6B, - 0xF7CE, 0x9F95, 0xF7CF, 0x9FA2, 0xF7D0, 0x513D, 0xF7D1, 0x5299, - 0xF7D2, 0x58E8, 0xF7D3, 0x58E7, 0xF7D4, 0x5972, 0xF7D5, 0x5B4D, - 0xF7D6, 0x5DD8, 0xF7D7, 0x882F, 0xF7D8, 0x5F4F, 0xF7D9, 0x6201, - 0xF7DA, 0x6203, 0xF7DB, 0x6204, 0xF7DC, 0x6529, 0xF7DD, 0x6525, - 0xF7DE, 0x6596, 0xF7DF, 0x66EB, 0xF7E0, 0x6B11, 0xF7E1, 0x6B12, - 0xF7E2, 0x6B0F, 0xF7E3, 0x6BCA, 0xF7E4, 0x705B, 0xF7E5, 0x705A, - 0xF7E6, 0x7222, 0xF7E7, 0x7382, 0xF7E8, 0x7381, 0xF7E9, 0x7383, - 0xF7EA, 0x7670, 0xF7EB, 0x77D4, 0xF7EC, 0x7C67, 0xF7ED, 0x7C66, - 0xF7EE, 0x7E95, 0xF7EF, 0x826C, 0xF7F0, 0x863A, 0xF7F1, 0x8640, - 0xF7F2, 0x8639, 0xF7F3, 0x863C, 0xF7F4, 0x8631, 0xF7F5, 0x863B, - 0xF7F6, 0x863E, 0xF7F7, 0x8830, 0xF7F8, 0x8832, 0xF7F9, 0x882E, - 0xF7FA, 0x8833, 0xF7FB, 0x8976, 0xF7FC, 0x8974, 0xF7FD, 0x8973, - 0xF7FE, 0x89FE, 0xF840, 0x8B8C, 0xF841, 0x8B8E, 0xF842, 0x8B8B, - 0xF843, 0x8B88, 0xF844, 0x8C45, 0xF845, 0x8D19, 0xF846, 0x8E98, - 0xF847, 0x8F64, 0xF848, 0x8F63, 0xF849, 0x91BC, 0xF84A, 0x9462, - 0xF84B, 0x9455, 0xF84C, 0x945D, 0xF84D, 0x9457, 0xF84E, 0x945E, - 0xF84F, 0x97C4, 0xF850, 0x97C5, 0xF851, 0x9800, 0xF852, 0x9A56, - 0xF853, 0x9A59, 0xF854, 0x9B1E, 0xF855, 0x9B1F, 0xF856, 0x9B20, - 0xF857, 0x9C52, 0xF858, 0x9C58, 0xF859, 0x9C50, 0xF85A, 0x9C4A, - 0xF85B, 0x9C4D, 0xF85C, 0x9C4B, 0xF85D, 0x9C55, 0xF85E, 0x9C59, - 0xF85F, 0x9C4C, 0xF860, 0x9C4E, 0xF861, 0x9DFB, 0xF862, 0x9DF7, - 0xF863, 0x9DEF, 0xF864, 0x9DE3, 0xF865, 0x9DEB, 0xF866, 0x9DF8, - 0xF867, 0x9DE4, 0xF868, 0x9DF6, 0xF869, 0x9DE1, 0xF86A, 0x9DEE, - 0xF86B, 0x9DE6, 0xF86C, 0x9DF2, 0xF86D, 0x9DF0, 0xF86E, 0x9DE2, - 0xF86F, 0x9DEC, 0xF870, 0x9DF4, 0xF871, 0x9DF3, 0xF872, 0x9DE8, - 0xF873, 0x9DED, 0xF874, 0x9EC2, 0xF875, 0x9ED0, 0xF876, 0x9EF2, - 0xF877, 0x9EF3, 0xF878, 0x9F06, 0xF879, 0x9F1C, 0xF87A, 0x9F38, - 0xF87B, 0x9F37, 0xF87C, 0x9F36, 0xF87D, 0x9F43, 0xF87E, 0x9F4F, - 0xF8A1, 0x9F71, 0xF8A2, 0x9F70, 0xF8A3, 0x9F6E, 0xF8A4, 0x9F6F, - 0xF8A5, 0x56D3, 0xF8A6, 0x56CD, 0xF8A7, 0x5B4E, 0xF8A8, 0x5C6D, - 0xF8A9, 0x652D, 0xF8AA, 0x66ED, 0xF8AB, 0x66EE, 0xF8AC, 0x6B13, - 0xF8AD, 0x705F, 0xF8AE, 0x7061, 0xF8AF, 0x705D, 0xF8B0, 0x7060, - 0xF8B1, 0x7223, 0xF8B2, 0x74DB, 0xF8B3, 0x74E5, 0xF8B4, 0x77D5, - 0xF8B5, 0x7938, 0xF8B6, 0x79B7, 0xF8B7, 0x79B6, 0xF8B8, 0x7C6A, - 0xF8B9, 0x7E97, 0xF8BA, 0x7F89, 0xF8BB, 0x826D, 0xF8BC, 0x8643, - 0xF8BD, 0x8838, 0xF8BE, 0x8837, 0xF8BF, 0x8835, 0xF8C0, 0x884B, - 0xF8C1, 0x8B94, 0xF8C2, 0x8B95, 0xF8C3, 0x8E9E, 0xF8C4, 0x8E9F, - 0xF8C5, 0x8EA0, 0xF8C6, 0x8E9D, 0xF8C7, 0x91BE, 0xF8C8, 0x91BD, - 0xF8C9, 0x91C2, 0xF8CA, 0x946B, 0xF8CB, 0x9468, 0xF8CC, 0x9469, - 0xF8CD, 0x96E5, 0xF8CE, 0x9746, 0xF8CF, 0x9743, 0xF8D0, 0x9747, - 0xF8D1, 0x97C7, 0xF8D2, 0x97E5, 0xF8D3, 0x9A5E, 0xF8D4, 0x9AD5, - 0xF8D5, 0x9B59, 0xF8D6, 0x9C63, 0xF8D7, 0x9C67, 0xF8D8, 0x9C66, - 0xF8D9, 0x9C62, 0xF8DA, 0x9C5E, 0xF8DB, 0x9C60, 0xF8DC, 0x9E02, - 0xF8DD, 0x9DFE, 0xF8DE, 0x9E07, 0xF8DF, 0x9E03, 0xF8E0, 0x9E06, - 0xF8E1, 0x9E05, 0xF8E2, 0x9E00, 0xF8E3, 0x9E01, 0xF8E4, 0x9E09, - 0xF8E5, 0x9DFF, 0xF8E6, 0x9DFD, 0xF8E7, 0x9E04, 0xF8E8, 0x9EA0, - 0xF8E9, 0x9F1E, 0xF8EA, 0x9F46, 0xF8EB, 0x9F74, 0xF8EC, 0x9F75, - 0xF8ED, 0x9F76, 0xF8EE, 0x56D4, 0xF8EF, 0x652E, 0xF8F0, 0x65B8, - 0xF8F1, 0x6B18, 0xF8F2, 0x6B19, 0xF8F3, 0x6B17, 0xF8F4, 0x6B1A, - 0xF8F5, 0x7062, 0xF8F6, 0x7226, 0xF8F7, 0x72AA, 0xF8F8, 0x77D8, - 0xF8F9, 0x77D9, 0xF8FA, 0x7939, 0xF8FB, 0x7C69, 0xF8FC, 0x7C6B, - 0xF8FD, 0x7CF6, 0xF8FE, 0x7E9A, 0xF940, 0x7E98, 0xF941, 0x7E9B, - 0xF942, 0x7E99, 0xF943, 0x81E0, 0xF944, 0x81E1, 0xF945, 0x8646, - 0xF946, 0x8647, 0xF947, 0x8648, 0xF948, 0x8979, 0xF949, 0x897A, - 0xF94A, 0x897C, 0xF94B, 0x897B, 0xF94C, 0x89FF, 0xF94D, 0x8B98, - 0xF94E, 0x8B99, 0xF94F, 0x8EA5, 0xF950, 0x8EA4, 0xF951, 0x8EA3, - 0xF952, 0x946E, 0xF953, 0x946D, 0xF954, 0x946F, 0xF955, 0x9471, - 0xF956, 0x9473, 0xF957, 0x9749, 0xF958, 0x9872, 0xF959, 0x995F, - 0xF95A, 0x9C68, 0xF95B, 0x9C6E, 0xF95C, 0x9C6D, 0xF95D, 0x9E0B, - 0xF95E, 0x9E0D, 0xF95F, 0x9E10, 0xF960, 0x9E0F, 0xF961, 0x9E12, - 0xF962, 0x9E11, 0xF963, 0x9EA1, 0xF964, 0x9EF5, 0xF965, 0x9F09, - 0xF966, 0x9F47, 0xF967, 0x9F78, 0xF968, 0x9F7B, 0xF969, 0x9F7A, - 0xF96A, 0x9F79, 0xF96B, 0x571E, 0xF96C, 0x7066, 0xF96D, 0x7C6F, - 0xF96E, 0x883C, 0xF96F, 0x8DB2, 0xF970, 0x8EA6, 0xF971, 0x91C3, - 0xF972, 0x9474, 0xF973, 0x9478, 0xF974, 0x9476, 0xF975, 0x9475, - 0xF976, 0x9A60, 0xF977, 0x9C74, 0xF978, 0x9C73, 0xF979, 0x9C71, - 0xF97A, 0x9C75, 0xF97B, 0x9E14, 0xF97C, 0x9E13, 0xF97D, 0x9EF6, - 0xF97E, 0x9F0A, 0xF9A1, 0x9FA4, 0xF9A2, 0x7068, 0xF9A3, 0x7065, - 0xF9A4, 0x7CF7, 0xF9A5, 0x866A, 0xF9A6, 0x883E, 0xF9A7, 0x883D, - 0xF9A8, 0x883F, 0xF9A9, 0x8B9E, 0xF9AA, 0x8C9C, 0xF9AB, 0x8EA9, - 0xF9AC, 0x8EC9, 0xF9AD, 0x974B, 0xF9AE, 0x9873, 0xF9AF, 0x9874, - 0xF9B0, 0x98CC, 0xF9B1, 0x9961, 0xF9B2, 0x99AB, 0xF9B3, 0x9A64, - 0xF9B4, 0x9A66, 0xF9B5, 0x9A67, 0xF9B6, 0x9B24, 0xF9B7, 0x9E15, - 0xF9B8, 0x9E17, 0xF9B9, 0x9F48, 0xF9BA, 0x6207, 0xF9BB, 0x6B1E, - 0xF9BC, 0x7227, 0xF9BD, 0x864C, 0xF9BE, 0x8EA8, 0xF9BF, 0x9482, - 0xF9C0, 0x9480, 0xF9C1, 0x9481, 0xF9C2, 0x9A69, 0xF9C3, 0x9A68, - 0xF9C4, 0x9B2E, 0xF9C5, 0x9E19, 0xF9C6, 0x7229, 0xF9C7, 0x864B, - 0xF9C8, 0x8B9F, 0xF9C9, 0x9483, 0xF9CA, 0x9C79, 0xF9CB, 0x9EB7, - 0xF9CC, 0x7675, 0xF9CD, 0x9A6B, 0xF9CE, 0x9C7A, 0xF9CF, 0x9E1D, - 0xF9D0, 0x7069, 0xF9D1, 0x706A, 0xF9D2, 0x9EA4, 0xF9D3, 0x9F7E, - 0xF9D4, 0x9F49, 0xF9D5, 0x9F98, 0xF9D6, 0x7881, 0xF9D7, 0x92B9, - 0xF9D8, 0x88CF, 0xF9D9, 0x58BB, 0xF9DA, 0x6052, 0xF9DB, 0x7CA7, - 0xF9DC, 0x5AFA, 0xF9DD, 0x2554, 0xF9DE, 0x2566, 0xF9DF, 0x2557, - 0xF9E0, 0x2560, 0xF9E1, 0x256C, 0xF9E2, 0x2563, 0xF9E3, 0x255A, - 0xF9E4, 0x2569, 0xF9E5, 0x255D, 0xF9E6, 0x2552, 0xF9E7, 0x2564, - 0xF9E8, 0x2555, 0xF9E9, 0x255E, 0xF9EA, 0x256A, 0xF9EB, 0x2561, - 0xF9EC, 0x2558, 0xF9ED, 0x2567, 0xF9EE, 0x255B, 0xF9EF, 0x2553, - 0xF9F0, 0x2565, 0xF9F1, 0x2556, 0xF9F2, 0x255F, 0xF9F3, 0x256B, - 0xF9F4, 0x2562, 0xF9F5, 0x2559, 0xF9F6, 0x2568, 0xF9F7, 0x255C, - 0xF9F8, 0x2551, 0xF9F9, 0x2550, 0xF9FA, 0x256D, 0xF9FB, 0x256E, - 0xF9FC, 0x2570, 0xF9FD, 0x256F, 0xF9FE, 0x2593, 0, 0 -}; - - - -WCHAR ff_convert ( /* Converted code, 0 means conversion error */ - WCHAR chr, /* Character code to be converted */ - UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ -) -{ - const WCHAR *p; - WCHAR c; - int i, n, li, hi; - - - if (chr < 0x80) { /* ASCII */ - c = chr; - } else { - if (dir) { /* OEM code to unicode */ - p = oem2uni; - hi = sizeof oem2uni / 4 - 1; - } else { /* Unicode to OEM code */ - p = uni2oem; - hi = sizeof uni2oem / 4 - 1; - } - li = 0; - for (n = 16; n; n--) { - i = li + (hi - li) / 2; - if (chr == p[i * 2]) break; - if (chr > p[i * 2]) - li = i; - else - hi = i; - } - c = n ? p[i * 2 + 1] : 0; - } - - return c; -} - - - -WCHAR ff_wtoupper ( /* Returns upper converted character */ - WCHAR chr /* Unicode character to be upper converted (BMP only) */ -) -{ - /* Compressed upper conversion table */ - static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ - /* Basic Latin */ - 0x0061,0x031A, - /* Latin-1 Supplement */ - 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, - /* Latin Extended-A */ - 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, - /* Latin Extended-B */ - 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, - 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, - 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, - /* IPA Extensions */ - 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, - /* Greek, Coptic */ - 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, - 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, - 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, - /* Cyrillic */ - 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, - /* Armenian */ - 0x0561,0x0426, - - 0x0000 - }; - static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ - /* Phonetic Extensions */ - 0x1D7D,0x0001,0x2C63, - /* Latin Extended Additional */ - 0x1E00,0x0196, 0x1EA0,0x015A, - /* Greek Extended */ - 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, - 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, - 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, - 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, - 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, - /* Letterlike Symbols */ - 0x214E,0x0001,0x2132, - /* Number forms */ - 0x2170,0x0210, 0x2184,0x0001,0x2183, - /* Enclosed Alphanumerics */ - 0x24D0,0x051A, 0x2C30,0x042F, - /* Latin Extended-C */ - 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, - /* Coptic */ - 0x2C80,0x0164, - /* Georgian Supplement */ - 0x2D00,0x0826, - /* Full-width */ - 0xFF41,0x031A, - - 0x0000 - }; - const WCHAR *p; - WCHAR bc, nc, cmd; - - - p = chr < 0x1000 ? cvt1 : cvt2; - for (;;) { - bc = *p++; /* Get block base */ - if (!bc || chr < bc) break; - nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ - if (chr < bc + nc) { /* In the block? */ - switch (cmd) { - case 0: chr = p[chr - bc]; break; /* Table conversion */ - case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ - case 2: chr -= 16; break; /* Shift -16 */ - case 3: chr -= 32; break; /* Shift -32 */ - case 4: chr -= 48; break; /* Shift -48 */ - case 5: chr -= 26; break; /* Shift -26 */ - case 6: chr += 8; break; /* Shift +8 */ - case 7: chr -= 80; break; /* Shift -80 */ - case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ - } - break; - } - if (!cmd) p += nc; - } - - return chr; -} - -#endif diff --git a/extras/fatfs/ccsbcs.h b/extras/fatfs/ccsbcs.h deleted file mode 100644 index cc31457..0000000 --- a/extras/fatfs/ccsbcs.h +++ /dev/null @@ -1,382 +0,0 @@ -/*------------------------------------------------------------------------*/ -/* Unicode - Local code bidirectional converter (C)ChaN, 2015 */ -/* (SBCS code pages) */ -/*------------------------------------------------------------------------*/ -/* 437 U.S. -/ 720 Arabic -/ 737 Greek -/ 771 KBL -/ 775 Baltic -/ 850 Latin 1 -/ 852 Latin 2 -/ 855 Cyrillic -/ 857 Turkish -/ 860 Portuguese -/ 861 Icelandic -/ 862 Hebrew -/ 863 Canadian French -/ 864 Arabic -/ 865 Nordic -/ 866 Russian -/ 869 Greek 2 -*/ - -#include "ff.h" - -#if _CODE_PAGE == 437 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP437(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 720 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP720(0x80-0xFF) to Unicode conversion table */ - 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9, 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, - 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 737 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP737(0x80-0xFF) to Unicode conversion table */ - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, - 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, - 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, - 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 771 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP771(0x80-0xFF) to Unicode conversion table */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x0104, 0x0105, 0x010C, 0x010D, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - 0x0118, 0x0119, 0x0116, 0x0117, 0x012E, 0x012F, 0x0160, 0x0161, 0x0172, 0x0173, 0x016A, 0x016B, 0x017D, 0x017E, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 775 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP775(0x80-0xFF) to Unicode conversion table */ - 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, - 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, - 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, - 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 850 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP850(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, - 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, - 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, - 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 852 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP852(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, - 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, - 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, - 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, - 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 855 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP855(0x80-0xFF) to Unicode conversion table */ - 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, - 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, - 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, - 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, - 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, - 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 857 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP857(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, - 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, - 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000, 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, - 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 860 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP860(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, - 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 861 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP861(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 862 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP862(0x80-0xFF) to Unicode conversion table */ - 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 863 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP863(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x2017, 0x00C0, - 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, - 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00BB, 0x00B3, 0x00AF, 0x00CE, 0x3210, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2219, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 864 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP864(0x80-0xFF) to Unicode conversion table */ - 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, - 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, 0x00BB, 0xFEF7, 0xFEF8, 0x0000, 0x0000, 0xFEFB, 0xFEFC, 0x0000, - 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0x0000, 0x20AC, 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, - 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, - 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, - 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, - 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, 0x0000 -}; - -#elif _CODE_PAGE == 865 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP865(0x80-0xFF) to Unicode conversion table */ - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - 0x00C5, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 866 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP866(0x80-0xFF) to Unicode conversion table */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 -}; - -#elif _CODE_PAGE == 869 -#define _TBLDEF 1 -static -const WCHAR Tbl[] = { /* CP869(0x80-0xFF) to Unicode conversion table */ - 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x0386, 0x00B7, 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, - 0x038A, 0x03AA, 0x038C, 0x00B7, 0x00B7, 0x038E, 0x03AB, 0x00A9, 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, - 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0A30, 0x03A1, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, - 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, - 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, - 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 -}; - -#endif - -#if _TBLDEF && _USE_LFN - -WCHAR ff_convert ( /* Converted character, Returns zero on error */ - WCHAR chr, /* Character code to be converted */ - UINT dir /* 0: Unicode to OEM code, 1: OEM code to Unicode */ -) -{ - WCHAR c; - - - if (chr < 0x80) { /* ASCII */ - c = chr; - - } else { - if (dir) { /* OEM code to Unicode */ - c = (chr >= 0x100) ? 0 : Tbl[chr - 0x80]; - - } else { /* Unicode to OEM code */ - for (c = 0; c < 0x80; c++) { - if (chr == Tbl[c]) break; - } - c = (c + 0x80) & 0xFF; - } - } - - return c; -} - - - -WCHAR ff_wtoupper ( /* Returns upper converted character */ - WCHAR chr /* Unicode character to be upper converted (BMP only) */ -) -{ - /* Compressed upper conversion table */ - static const WCHAR cvt1[] = { /* U+0000 - U+0FFF */ - /* Basic Latin */ - 0x0061,0x031A, - /* Latin-1 Supplement */ - 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, - /* Latin Extended-A */ - 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, - /* Latin Extended-B */ - 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, - 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, - 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, - /* IPA Extensions */ - 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, - /* Greek, Coptic */ - 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, - 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, - 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, - /* Cyrillic */ - 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, - /* Armenian */ - 0x0561,0x0426, - - 0x0000 - }; - static const WCHAR cvt2[] = { /* U+1000 - U+FFFF */ - /* Phonetic Extensions */ - 0x1D7D,0x0001,0x2C63, - /* Latin Extended Additional */ - 0x1E00,0x0196, 0x1EA0,0x015A, - /* Greek Extended */ - 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, - 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, - 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, - 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, - 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF2,0x0001,0x1FFC, - /* Letterlike Symbols */ - 0x214E,0x0001,0x2132, - /* Number forms */ - 0x2170,0x0210, 0x2184,0x0001,0x2183, - /* Enclosed Alphanumerics */ - 0x24D0,0x051A, 0x2C30,0x042F, - /* Latin Extended-C */ - 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, - /* Coptic */ - 0x2C80,0x0164, - /* Georgian Supplement */ - 0x2D00,0x0826, - /* Full-width */ - 0xFF41,0x031A, - - 0x0000 - }; - const WCHAR *p; - WCHAR bc, nc, cmd; - - - p = chr < 0x1000 ? cvt1 : cvt2; - for (;;) { - bc = *p++; /* Get block base */ - if (!bc || chr < bc) break; - nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ - if (chr < bc + nc) { /* In the block? */ - switch (cmd) { - case 0: chr = p[chr - bc]; break; /* Table conversion */ - case 1: chr -= (chr - bc) & 1; break; /* Case pairs */ - case 2: chr -= 16; break; /* Shift -16 */ - case 3: chr -= 32; break; /* Shift -32 */ - case 4: chr -= 48; break; /* Shift -48 */ - case 5: chr -= 26; break; /* Shift -26 */ - case 6: chr += 8; break; /* Shift +8 */ - case 7: chr -= 80; break; /* Shift -80 */ - case 8: chr -= 0x1C60; break; /* Shift -0x1C60 */ - } - break; - } - if (!cmd) p += nc; - } - - return chr; -} - -#endif diff --git a/extras/fatfs/component.mk b/extras/fatfs/component.mk index 03f5e3f..09db3c0 100644 --- a/extras/fatfs/component.mk +++ b/extras/fatfs/component.mk @@ -10,28 +10,28 @@ FATFS_DIR := $(dir $(lastword $(MAKEFILE_LIST))) include $(FATFS_DIR)defaults.mk fatfs_CFLAGS = $(CFLAGS) \ - -D_FS_READONLY=$(FATFS_FS_READONLY) \ - -D_USE_STRFUNC=$(FATFS_USE_STRFUNC) \ - -D_CODE_PAGE=$(FATFS_CODE_PAGE) \ - -D_USE_FIND=$(FATFS_USE_FIND) \ - -D_USE_MKFS=$(FATFS_USE_MKFS) \ - -D_USE_FASTSEEK=$(FATFS_USE_FASTSEEK) \ - -D_USE_EXPAND=$(FATFS_USE_EXPAND) \ - -D_USE_CHMOD=$(FATFS_USE_CHMOD) \ - -D_USE_LABEL=$(FATFS_USE_LABEL) \ - -D_USE_FORWARD=$(FATFS_USE_FORWARD) \ - -D_CODE_PAGE=$(FATFS_CODE_PAGE) \ - -D_USE_LFN=$(FATFS_USE_LFN) \ - -D_MAX_LFN=$(FATFS_MAX_LFN) \ - -D_LFN_UNICODE=$(FATFS_LFN_UNICODE) \ - -D_STRF_ENCODE=$(FATFS_STRF_ENCODE) \ - -D_FS_RPATH=$(FATFS_FS_RPATH) \ - -D_FS_EXFAT=$(FATFS_FS_EXFAT) \ - -D_FS_NORTC=$(FATFS_FS_NORTC) \ - -D_NORTC_MON=$(FATFS_NORTC_MON) \ - -D_NORTC_MDAY=$(FATFS_NORTC_MDAY) \ - -D_NORTC_YEAR=$(FATFS_NORTC_YEAR) \ - -D_FS_LOCK=$(FATFS_FS_LOCK) \ - -D_FS_TIMEOUT=$(FATFS_FS_TIMEOUT) + -DFF_FS_READONLY=$(FATFS_FS_READONLY) \ + -DFF_USE_STRFUNC=$(FATFS_USE_STRFUNC) \ + -DFF_CODE_PAGE=$(FATFS_CODE_PAGE) \ + -DFF_USE_FIND=$(FATFS_USE_FIND) \ + -DFF_USE_MKFS=$(FATFS_USE_MKFS) \ + -DFF_USE_FASTSEEK=$(FATFS_USE_FASTSEEK) \ + -DFF_USE_EXPAND=$(FATFS_USE_EXPAND) \ + -DFF_USE_CHMOD=$(FATFS_USE_CHMOD) \ + -DFF_USE_LABEL=$(FATFS_USE_LABEL) \ + -DFF_USE_FORWARD=$(FATFS_USE_FORWARD) \ + -DFF_CODE_PAGE=$(FATFS_CODE_PAGE) \ + -DFF_USE_LFN=$(FATFS_USE_LFN) \ + -DFF_MAX_LFN=$(FATFS_MAX_LFN) \ + -DFF_LFN_UNICODE=$(FATFS_LFN_UNICODE) \ + -DFF_STRF_ENCODE=$(FATFS_STRF_ENCODE) \ + -DFF_FS_RPATH=$(FATFS_FS_RPATH) \ + -DFF_FS_EXFAT=$(FATFS_FS_EXFAT) \ + -DFF_FS_NORTC=$(FATFS_FS_NORTC) \ + -DFF_NORTC_MON=$(FATFS_NORTC_MON) \ + -DFF_NORTC_MDAY=$(FATFS_NORTC_MDAY) \ + -DFF_NORTC_YEAR=$(FATFS_NORTC_YEAR) \ + -DFF_FS_LOCK=$(FATFS_FS_LOCK) \ + -DFF_FS_TIMEOUT=$(FATFS_FS_TIMEOUT) $(eval $(call component_compile_rules,fatfs)) diff --git a/extras/fatfs/defaults.mk b/extras/fatfs/defaults.mk index 71f812e..047abd1 100644 --- a/extras/fatfs/defaults.mk +++ b/extras/fatfs/defaults.mk @@ -41,7 +41,6 @@ FATFS_USE_FORWARD ?= 1 # This option specifies the OEM code page to be used on the target system. # Incorrect setting of the code page can cause a file open failure. -# 1 - ASCII (No extended character. Non-LFN cfg. only) # 437 - U.S. # 720 - Arabic # 737 - Greek @@ -63,6 +62,7 @@ FATFS_USE_FORWARD ?= 1 # 936 - Simplified Chinese (DBCS) # 949 - Korean (DBCS) # 950 - Traditional Chinese (DBCS) +# 0 - Include all code pages above and configured by f_setcp() FATFS_CODE_PAGE ?= 437 # The FATFS_USE_LFN switches the support of long file name (LFN). @@ -112,7 +112,7 @@ FATFS_FS_EXFAT ?= 1 FATFS_FS_NORTC ?= 1 FATFS_NORTC_MON ?= 1 FATFS_NORTC_MDAY ?= 1 -FATFS_NORTC_YEAR ?= 2016 +FATFS_NORTC_YEAR ?= 2017 # The option FATFS_FS_LOCK switches file lock function to control duplicated file open # and illegal operation to open objects. This option must be 0 when FATFS_FS_READONLY diff --git a/extras/fatfs/diskio.c b/extras/fatfs/diskio.c index 1ac2e61..71f5025 100644 --- a/extras/fatfs/diskio.c +++ b/extras/fatfs/diskio.c @@ -14,7 +14,7 @@ #include "ffconf.h" #include "volumes.h" -static sdio_card_t *devices[_VOLUMES] = { 0 }; +static sdio_card_t *devices[FF_VOLUMES] = { 0 }; static const uint8_t card_types[] = { [SDIO_TYPE_UNKNOWN] = 0, @@ -26,14 +26,14 @@ static const uint8_t card_types[] = { DSTATUS disk_status(BYTE pdrv) { - if (pdrv >= _VOLUMES || !devices[pdrv] || devices[pdrv]->type == SDIO_TYPE_UNKNOWN) + if (pdrv >= FF_VOLUMES || !devices[pdrv] || devices[pdrv]->type == SDIO_TYPE_UNKNOWN) return STA_NOINIT; return 0; } DSTATUS disk_initialize(BYTE pdrv) { - if (pdrv >= _VOLUMES) + if (pdrv >= FF_VOLUMES) return STA_NOINIT; // allocate descriptior @@ -53,7 +53,7 @@ DSTATUS disk_initialize(BYTE pdrv) DRESULT disk_read(BYTE pdrv, BYTE *buff, DWORD sector, UINT count) { - if (pdrv >= _VOLUMES || !devices[pdrv]) + if (pdrv >= FF_VOLUMES || !devices[pdrv]) return RES_PARERR; if (sdio_read_sectors(devices[pdrv], sector, buff, count) != SDIO_ERR_NONE) return RES_ERROR; @@ -62,7 +62,7 @@ DRESULT disk_read(BYTE pdrv, BYTE *buff, DWORD sector, UINT count) DRESULT disk_write(BYTE pdrv, const BYTE *buff, DWORD sector, UINT count) { - if (pdrv >= _VOLUMES || !devices[pdrv]) + if (pdrv >= FF_VOLUMES || !devices[pdrv]) return RES_PARERR; if (sdio_write_sectors(devices[pdrv], sector, (uint8_t *)buff, count) != SDIO_ERR_NONE) return RES_ERROR; @@ -71,7 +71,7 @@ DRESULT disk_write(BYTE pdrv, const BYTE *buff, DWORD sector, UINT count) DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void *buff) { - if (pdrv >= _VOLUMES || !devices[pdrv]) + if (pdrv >= FF_VOLUMES || !devices[pdrv]) return RES_PARERR; uint8_t *buf8 = (uint8_t *)buff; diff --git a/extras/fatfs/ff.c b/extras/fatfs/ff.c index faac347..a0388b4 100644 --- a/extras/fatfs/ff.c +++ b/extras/fatfs/ff.c @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12c / +/ FatFs - Generic FAT Filesystem Module R0.13a / /-----------------------------------------------------------------------------/ / / Copyright (C) 2017, ChaN, all right reserved. @@ -15,6 +15,7 @@ / and any warranties related to this software are DISCLAIMED. / The copyright owner or contributors be NOT LIABLE for any damages caused / by use of this software. +/ /----------------------------------------------------------------------------*/ @@ -28,277 +29,22 @@ ---------------------------------------------------------------------------*/ -#if _FATFS != 68300 /* Revision ID */ +#if FF_DEFINED != 89352 /* Revision ID */ #error Wrong include file (ff.h). #endif -/* DBCS code ranges and SBCS upper conversion tables */ - -#if _CODE_PAGE == 932 /* Japanese Shift-JIS */ -#define _DF1S 0x81 /* DBC 1st byte range 1 start */ -#define _DF1E 0x9F /* DBC 1st byte range 1 end */ -#define _DF2S 0xE0 /* DBC 1st byte range 2 start */ -#define _DF2E 0xFC /* DBC 1st byte range 2 end */ -#define _DS1S 0x40 /* DBC 2nd byte range 1 start */ -#define _DS1E 0x7E /* DBC 2nd byte range 1 end */ -#define _DS2S 0x80 /* DBC 2nd byte range 2 start */ -#define _DS2E 0xFC /* DBC 2nd byte range 2 end */ - -#elif _CODE_PAGE == 936 /* Simplified Chinese GBK */ -#define _DF1S 0x81 -#define _DF1E 0xFE -#define _DS1S 0x40 -#define _DS1E 0x7E -#define _DS2S 0x80 -#define _DS2E 0xFE - -#elif _CODE_PAGE == 949 /* Korean */ -#define _DF1S 0x81 -#define _DF1E 0xFE -#define _DS1S 0x41 -#define _DS1E 0x5A -#define _DS2S 0x61 -#define _DS2E 0x7A -#define _DS3S 0x81 -#define _DS3E 0xFE - -#elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */ -#define _DF1S 0x81 -#define _DF1E 0xFE -#define _DS1S 0x40 -#define _DS1E 0x7E -#define _DS2S 0xA1 -#define _DS2E 0xFE - -#elif _CODE_PAGE == 437 /* U.S. */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ - 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 720 /* Arabic */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 737 /* Greek */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \ - 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xEF,0xF5,0xF0,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 771 /* KBL */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDC,0xDE,0xDE, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF} - -#elif _CODE_PAGE == 775 /* Baltic */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F, \ - 0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ - 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 850 /* Latin 1 */ -#define _DF1S 0 -#define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x49,0x49,0x49,0x41,0x41, \ - 0x45,0x92,0x92,0x4F,0x4F,0x4F,0x55,0x55,0x59,0x4F,0x55,0x4F,0x9C,0x4F,0x9E,0x9F, \ - 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x41,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD1,0xD1,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0xD9,0xDA,0xDB,0xDC,0xDD,0x49,0xDF, \ - 0x4F,0xE1,0x4F,0x4F,0x4F,0x4F,0xE6,0xE8,0xE8,0x55,0x55,0x55,0x59,0x59,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 852 /* Latin 2 */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, \ - 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF} - -#elif _CODE_PAGE == 855 /* Cyrillic */ -#define _DF1S 0 -#define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F, \ - 0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \ - 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \ - 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF, \ - 0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 857 /* Turkish */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x49,0x8E,0x8F, \ - 0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \ - 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0x49,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 860 /* Portuguese */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x90,0x8F,0x8E,0x91,0x86,0x80,0x89,0x89,0x92,0x8B,0x8C,0x98,0x8E,0x8F, \ - 0x90,0x91,0x92,0x8C,0x99,0xA9,0x96,0x9D,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x86,0x8B,0x9F,0x96,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 861 /* Icelandic */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x8B,0x8B,0x8D,0x8E,0x8F, \ - 0x90,0x92,0x92,0x4F,0x99,0x8D,0x55,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ - 0xA4,0xA5,0xA6,0xA7,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 862 /* Hebrew */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 863 /* Canadian-French */ -#define _DF1S 0 -#define _EXCVT {0x43,0x55,0x45,0x41,0x41,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x41,0x8F, \ - 0x45,0x45,0x45,0x4F,0x45,0x49,0x55,0x55,0x98,0x4F,0x55,0x9B,0x9C,0x55,0x55,0x9F, \ - 0xA0,0xA1,0x4F,0x55,0xA4,0xA5,0xA6,0xA7,0x49,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 864 /* Arabic */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ - 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 865 /* Nordic */ -#define _DF1S 0 -#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ - 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ - 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 866 /* Russian */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ - 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} - -#elif _CODE_PAGE == 869 /* Greek 2 */ -#define _DF1S 0 -#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x86,0x9C,0x8D,0x8F,0x90, \ - 0x91,0x90,0x92,0x95,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ - 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ - 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ - 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xA4,0xA5,0xA6,0xD9,0xDA,0xDB,0xDC,0xA7,0xA8,0xDF, \ - 0xA9,0xAA,0xAC,0xAD,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xCF,0xCF,0xD0,0xEF, \ - 0xF0,0xF1,0xD1,0xD2,0xD3,0xF5,0xD4,0xF7,0xF8,0xF9,0xD5,0x96,0x95,0x98,0xFE,0xFF} - -#elif _CODE_PAGE == 1 /* ASCII (for only non-LFN cfg) */ -#if _USE_LFN != 0 -#error Cannot enable LFN without valid code page. -#endif -#define _DF1S 0 - -#else -#error Unknown code page - -#endif - - /* Character code support macros */ -#define IsUpper(c) (((c)>='A')&&((c)<='Z')) -#define IsLower(c) (((c)>='a')&&((c)<='z')) -#define IsDigit(c) (((c)>='0')&&((c)<='9')) - -#if _DF1S != 0 /* Code page is DBCS */ - -#ifdef _DF2S /* Two 1st byte areas */ -#define IsDBCS1(c) (((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) || ((BYTE)(c) >= _DF2S && (BYTE)(c) <= _DF2E)) -#else /* One 1st byte area */ -#define IsDBCS1(c) ((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) -#endif - -#ifdef _DS3S /* Three 2nd byte areas */ -#define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E) || ((BYTE)(c) >= _DS3S && (BYTE)(c) <= _DS3E)) -#else /* Two 2nd byte areas */ -#define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E)) -#endif - -#else /* Code page is SBCS */ - -#define IsDBCS1(c) 0 -#define IsDBCS2(c) 0 - -#endif /* _DF1S */ +#define IsUpper(c) ((c) >= 'A' && (c) <= 'Z') +#define IsLower(c) ((c) >= 'a' && (c) <= 'z') +#define IsDigit(c) ((c) >= '0' && (c) <= '9') +#define IsSurrogate(c) ((c) >= 0xD800 && (c) <= 0xDFFF) +#define IsSurrogateH(c) ((c) >= 0xD800 && (c) <= 0xDBFF) +#define IsSurrogateL(c) ((c) >= 0xDC00 && (c) <= 0xDFFF) /* Additional file attribute bits for internal use */ -#define AM_VOL 0x08 /* Volume label */ +#define AM_VOL 0x08 /* Volume label */ #define AM_LFN 0x0F /* LFN entry */ #define AM_MASK 0x3F /* Mask of defined bits */ @@ -309,7 +55,7 @@ #define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */ -/* Name status flags in fn[] */ +/* Name status flags in fn[11] */ #define NSFLAG 11 /* Index of the name status byte */ #define NS_LOSS 0x01 /* Out of 8.3 format */ #define NS_LFN 0x02 /* Force to create LFN entry */ @@ -324,10 +70,10 @@ /* Limits and boundaries */ #define MAX_DIR 0x200000 /* Max size of FAT directory */ #define MAX_DIR_EX 0x10000000 /* Max size of exFAT directory */ -#define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but correct for real DOS/Windows behavior) */ -#define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but correct for real DOS/Windows behavior) */ -#define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */ -#define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */ +#define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but right for real DOS/Windows behavior) */ +#define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but right for real DOS/Windows behavior) */ +#define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */ +#define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */ /* FatFs refers the FAT structure as simple byte array instead of structure member @@ -339,26 +85,26 @@ #define BPB_SecPerClus 13 /* Cluster size [sector] (BYTE) */ #define BPB_RsvdSecCnt 14 /* Size of reserved area [sector] (WORD) */ #define BPB_NumFATs 16 /* Number of FATs (BYTE) */ -#define BPB_RootEntCnt 17 /* Size of root directory area for FAT12/16 [entry] (WORD) */ +#define BPB_RootEntCnt 17 /* Size of root directory area for FAT [entry] (WORD) */ #define BPB_TotSec16 19 /* Volume size (16-bit) [sector] (WORD) */ #define BPB_Media 21 /* Media descriptor byte (BYTE) */ #define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */ -#define BPB_SecPerTrk 24 /* Track size for int13h [sector] (WORD) */ +#define BPB_SecPerTrk 24 /* Number of sectors per track for int13h [sector] (WORD) */ #define BPB_NumHeads 26 /* Number of heads for int13h (WORD) */ #define BPB_HiddSec 28 /* Volume offset from top of the drive (DWORD) */ #define BPB_TotSec32 32 /* Volume size (32-bit) [sector] (DWORD) */ #define BS_DrvNum 36 /* Physical drive number for int13h (BYTE) */ -#define BS_NTres 37 /* Error flag (BYTE) */ +#define BS_NTres 37 /* WindowsNT error flag (BYTE) */ #define BS_BootSig 38 /* Extended boot signature (BYTE) */ #define BS_VolID 39 /* Volume serial number (DWORD) */ #define BS_VolLab 43 /* Volume label string (8-byte) */ -#define BS_FilSysType 54 /* File system type string (8-byte) */ +#define BS_FilSysType 54 /* Filesystem type string (8-byte) */ #define BS_BootCode 62 /* Boot code (448-byte) */ #define BS_55AA 510 /* Signature word (WORD) */ #define BPB_FATSz32 36 /* FAT32: FAT size [sector] (DWORD) */ #define BPB_ExtFlags32 40 /* FAT32: Extended flags (WORD) */ -#define BPB_FSVer32 42 /* FAT32: File system version (WORD) */ +#define BPB_FSVer32 42 /* FAT32: Filesystem version (WORD) */ #define BPB_RootClus32 44 /* FAT32: Root directory cluster (DWORD) */ #define BPB_FSInfo32 48 /* FAT32: Offset of FSINFO sector (WORD) */ #define BPB_BkBootSec32 50 /* FAT32: Offset of backup boot sector (WORD) */ @@ -367,7 +113,7 @@ #define BS_BootSig32 66 /* FAT32: Extended boot signature (BYTE) */ #define BS_VolID32 67 /* FAT32: Volume serial number (DWORD) */ #define BS_VolLab32 71 /* FAT32: Volume label string (8-byte) */ -#define BS_FilSysType32 82 /* FAT32: File system type string (8-byte) */ +#define BS_FilSysType32 82 /* FAT32: Filesystem type string (8-byte) */ #define BS_BootCode32 90 /* FAT32: Boot code (420-byte) */ #define BPB_ZeroedEx 11 /* exFAT: MBZ field (53-byte) */ @@ -379,66 +125,65 @@ #define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */ #define BPB_RootClusEx 96 /* exFAT: Root directory start cluster (DWORD) */ #define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */ -#define BPB_FSVerEx 104 /* exFAT: File system version (WORD) */ -#define BPB_VolFlagEx 106 /* exFAT: Volume flags (BYTE) */ -#define BPB_ActFatEx 107 /* exFAT: Active FAT flags (BYTE) */ +#define BPB_FSVerEx 104 /* exFAT: Filesystem version (WORD) */ +#define BPB_VolFlagEx 106 /* exFAT: Volume flags (WORD) */ #define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */ #define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */ #define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */ #define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */ #define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */ -#define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ +#define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ #define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */ -#define DIR_Name 0 /* Short file name (11-byte) */ -#define DIR_Attr 11 /* Attribute (BYTE) */ -#define DIR_NTres 12 /* Lower case flag (BYTE) */ +#define DIR_Name 0 /* Short file name (11-byte) */ +#define DIR_Attr 11 /* Attribute (BYTE) */ +#define DIR_NTres 12 /* Lower case flag (BYTE) */ #define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ -#define DIR_CrtTime 14 /* Created time (DWORD) */ +#define DIR_CrtTime 14 /* Created time (DWORD) */ #define DIR_LstAccDate 18 /* Last accessed date (WORD) */ -#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ -#define DIR_ModTime 22 /* Modified time (DWORD) */ -#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ -#define DIR_FileSize 28 /* File size (DWORD) */ -#define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */ -#define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */ -#define LDIR_Type 12 /* LFN: Entry type (BYTE) */ -#define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */ -#define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */ -#define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */ -#define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */ -#define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */ -#define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */ -#define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */ -#define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */ -#define XDIR_Attr 4 /* exFAT: File attribute (WORD) */ -#define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */ -#define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */ -#define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */ -#define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */ -#define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */ -#define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */ -#define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */ -#define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */ -#define XDIR_GenFlags 33 /* exFAT: General secondary flags (WORD) */ -#define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */ -#define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */ +#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ +#define DIR_ModTime 22 /* Modified time (DWORD) */ +#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ +#define DIR_FileSize 28 /* File size (DWORD) */ +#define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */ +#define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */ +#define LDIR_Type 12 /* LFN: Entry type (BYTE) */ +#define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */ +#define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */ +#define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */ +#define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */ +#define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */ +#define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */ +#define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */ +#define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */ +#define XDIR_Attr 4 /* exFAT: File attribute (WORD) */ +#define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */ +#define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */ +#define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */ +#define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */ +#define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */ +#define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */ +#define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */ +#define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */ +#define XDIR_GenFlags 33 /* exFAT: General secondary flags (BYTE) */ +#define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */ +#define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */ #define XDIR_ValidFileSize 40 /* exFAT: Valid file size (QWORD) */ -#define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */ -#define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */ +#define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */ +#define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */ -#define SZDIRE 32 /* Size of a directory entry */ -#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ -#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ -#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ +#define SZDIRE 32 /* Size of a directory entry */ +#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ +#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ +#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ -#define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ -#define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ -#define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ -#define FSI_Nxt_Free 492 /* FAT32 FSI: Last allocated cluster (DWORD) */ +#define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ +#define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ +#define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ +#define FSI_Nxt_Free 492 /* FAT32 FSI: Last allocated cluster (DWORD) */ #define MBR_Table 446 /* MBR: Offset of partition table in the MBR */ -#define SZ_PTE 16 /* MBR: Size of a partition table entry */ +#define SZ_PTE 16 /* MBR: Size of a partition table entry */ #define PTE_Boot 0 /* MBR PTE: Boot indicator */ #define PTE_StHead 1 /* MBR PTE: Start head */ #define PTE_StSec 2 /* MBR PTE: Start sector */ @@ -451,25 +196,23 @@ #define PTE_SizLba 12 /* MBR PTE: Size in LBA */ -/* Post process after fatal error on file operation */ -#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } +/* Post process on fatal error in the file operations */ +#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } -/* Reentrancy related */ -#if _FS_REENTRANT -#if _USE_LFN == 1 +/* Re-entrancy related */ +#if FF_FS_REENTRANT +#if FF_USE_LFN == 1 #error Static LFN work area cannot be used at thread-safe configuration #endif -#define ENTER_FF(fs) { if (!lock_fs(fs)) return FR_TIMEOUT; } -#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } +#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } #else -#define ENTER_FF(fs) #define LEAVE_FF(fs, res) return res #endif -/* Definitions of volume - partition conversion */ -#if _MULTI_PARTITION +/* Definitions of volume - physical location conversion */ +#if FF_MULTI_PARTITION #define LD2PD(vol) VolToPart[vol].pd /* Get physical drive number */ #define LD2PT(vol) VolToPart[vol].pt /* Get partition index */ #else @@ -479,31 +222,31 @@ /* Definitions of sector size */ -#if (_MAX_SS < _MIN_SS) || (_MAX_SS != 512 && _MAX_SS != 1024 && _MAX_SS != 2048 && _MAX_SS != 4096) || (_MIN_SS != 512 && _MIN_SS != 1024 && _MIN_SS != 2048 && _MIN_SS != 4096) +#if (FF_MAX_SS < FF_MIN_SS) || (FF_MAX_SS != 512 && FF_MAX_SS != 1024 && FF_MAX_SS != 2048 && FF_MAX_SS != 4096) || (FF_MIN_SS != 512 && FF_MIN_SS != 1024 && FF_MIN_SS != 2048 && FF_MIN_SS != 4096) #error Wrong sector size configuration #endif -#if _MAX_SS == _MIN_SS -#define SS(fs) ((UINT)_MAX_SS) /* Fixed sector size */ +#if FF_MAX_SS == FF_MIN_SS +#define SS(fs) ((UINT)FF_MAX_SS) /* Fixed sector size */ #else -#define SS(fs) ((fs)->ssize) /* Variable sector size */ +#define SS(fs) ((fs)->ssize) /* Variable sector size */ #endif /* Timestamp */ -#if _FS_NORTC == 1 -#if _NORTC_YEAR < 1980 || _NORTC_YEAR > 2107 || _NORTC_MON < 1 || _NORTC_MON > 12 || _NORTC_MDAY < 1 || _NORTC_MDAY > 31 -#error Invalid _FS_NORTC settings +#if FF_FS_NORTC == 1 +#if FF_NORTC_YEAR < 1980 || FF_NORTC_YEAR > 2107 || FF_NORTC_MON < 1 || FF_NORTC_MON > 12 || FF_NORTC_MDAY < 1 || FF_NORTC_MDAY > 31 +#error Invalid FF_FS_NORTC settings #endif -#define GET_FATTIME() ((DWORD)(_NORTC_YEAR - 1980) << 25 | (DWORD)_NORTC_MON << 21 | (DWORD)_NORTC_MDAY << 16) +#define GET_FATTIME() ((DWORD)(FF_NORTC_YEAR - 1980) << 25 | (DWORD)FF_NORTC_MON << 21 | (DWORD)FF_NORTC_MDAY << 16) #else #define GET_FATTIME() get_fattime() #endif /* File lock controls */ -#if _FS_LOCK != 0 -#if _FS_READONLY -#error _FS_LOCK must be 0 at read-only configuration +#if FF_FS_LOCK != 0 +#if FF_FS_READONLY +#error FF_FS_LOCK must be 0 at read-only configuration #endif typedef struct { FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ @@ -514,6 +257,156 @@ typedef struct { #endif +/* SBCS up-case tables (\x80-\xFF) */ +#define TBL_CT437 {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT720 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT737 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \ + 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xEF,0xF5,0xF0,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT771 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDC,0xDE,0xDE, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF} +#define TBL_CT775 {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT850 {0x43,0x55,0x45,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x49,0x49,0x49,0x41,0x41, \ + 0x45,0x92,0x92,0x4F,0x4F,0x4F,0x55,0x55,0x59,0x4F,0x55,0x4F,0x9C,0x4F,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x41,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0xD9,0xDA,0xDB,0xDC,0xDD,0x49,0xDF, \ + 0x4F,0xE1,0x4F,0x4F,0x4F,0x4F,0xE6,0xE8,0xE8,0x55,0x55,0x55,0x59,0x59,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT852 {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, \ + 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF} +#define TBL_CT855 {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F, \ + 0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \ + 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \ + 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF, \ + 0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT857 {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \ + 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0x49,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT860 {0x80,0x9A,0x90,0x8F,0x8E,0x91,0x86,0x80,0x89,0x89,0x92,0x8B,0x8C,0x98,0x8E,0x8F, \ + 0x90,0x91,0x92,0x8C,0x99,0xA9,0x96,0x9D,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x86,0x8B,0x9F,0x96,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT861 {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x8B,0x8B,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x8D,0x55,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA4,0xA5,0xA6,0xA7,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT862 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT863 {0x43,0x55,0x45,0x41,0x41,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x41,0x8F, \ + 0x45,0x45,0x45,0x4F,0x45,0x49,0x55,0x55,0x98,0x4F,0x55,0x9B,0x9C,0x55,0x55,0x9F, \ + 0xA0,0xA1,0x4F,0x55,0xA4,0xA5,0xA6,0xA7,0x49,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT864 {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT865 {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT866 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT869 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x86,0x9C,0x8D,0x8F,0x90, \ + 0x91,0x90,0x92,0x95,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xA4,0xA5,0xA6,0xD9,0xDA,0xDB,0xDC,0xA7,0xA8,0xDF, \ + 0xA9,0xAA,0xAC,0xAD,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xCF,0xCF,0xD0,0xEF, \ + 0xF0,0xF1,0xD1,0xD2,0xD3,0xF5,0xD4,0xF7,0xF8,0xF9,0xD5,0x96,0x95,0x98,0xFE,0xFF} + + +/* DBCS code range |----- 1st byte -----| |----------- 2nd byte -----------| */ +#define TBL_DC932 {0x81, 0x9F, 0xE0, 0xFC, 0x40, 0x7E, 0x80, 0xFC, 0x00, 0x00} +#define TBL_DC936 {0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0x80, 0xFE, 0x00, 0x00} +#define TBL_DC949 {0x81, 0xFE, 0x00, 0x00, 0x41, 0x5A, 0x61, 0x7A, 0x81, 0xFE} +#define TBL_DC950 {0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0xA1, 0xFE, 0x00, 0x00} + + +/* Macros for table definitions */ +#define MERGE_2STR(a, b) a ## b +#define MKCVTBL(hd, cp) MERGE_2STR(hd, cp) + @@ -522,78 +415,138 @@ typedef struct { Module Private Work Area ---------------------------------------------------------------------------*/ - /* Remark: Variables defined here without initial value shall be guaranteed / zero/null at start-up. If not, the linker option or start-up routine is / not compliance with C standard. */ -#if _VOLUMES < 1 || _VOLUMES > 10 -#error Wrong _VOLUMES setting -#endif -static FATFS *FatFs[_VOLUMES]; /* Pointer to the file system objects (logical drives) */ -static WORD Fsid; /* File system mount ID */ +/*--------------------------------*/ +/* File/Volume controls */ +/*--------------------------------*/ -#if _FS_RPATH != 0 && _VOLUMES >= 2 -static BYTE CurrVol; /* Current drive */ +#if FF_VOLUMES < 1 || FF_VOLUMES > 10 +#error Wrong FF_VOLUMES setting +#endif +static FATFS *FatFs[FF_VOLUMES]; /* Pointer to the filesystem objects (logical drives) */ +static WORD Fsid; /* File system mount ID */ + +#if FF_FS_RPATH != 0 && FF_VOLUMES >= 2 +static BYTE CurrVol; /* Current drive */ #endif -#if _FS_LOCK != 0 -static FILESEM Files[_FS_LOCK]; /* Open object lock semaphores */ +#if FF_FS_LOCK != 0 +static FILESEM Files[FF_FS_LOCK]; /* Open object lock semaphores */ #endif -#if _USE_LFN == 0 /* Non-LFN configuration */ -#define DEF_NAMBUF + + +/*--------------------------------*/ +/* LFN/Directory working buffer */ +/*--------------------------------*/ + +#if FF_USE_LFN == 0 /* Non-LFN configuration */ +#if FF_FS_EXFAT +#error LFN must be enabled when enable exFAT +#endif +#define DEF_NAMBUF #define INIT_NAMBUF(fs) -#define FREE_NAMBUF() +#define FREE_NAMBUF() +#define LEAVE_MKFS(res) return res -#else /* LFN configuration */ -#if _MAX_LFN < 12 || _MAX_LFN > 255 -#error Wrong _MAX_LFN value +#else /* LFN configurations */ +#if FF_MAX_LFN < 12 || FF_MAX_LFN > 255 +#error Wrong setting of FF_MAX_LFN #endif -#define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE) +#if FF_LFN_BUF < 12 || FF_SFN_BUF < 12 || FF_LFN_BUF < FF_SFN_BUF +#error Wrong setting of FF_LFN_BUF or FF_SFN_BUF +#endif +#if FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 2 +#error Wrong setting of FF_LFN_UNICODE +#endif +static const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30}; /* FAT: Offset of LFN characters in the directory entry */ +#define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE) /* exFAT: Size of directory entry block scratchpad buffer needed for the name length */ -#if _USE_LFN == 1 /* LFN enabled with static working buffer */ -#if _FS_EXFAT -static BYTE DirBuf[MAXDIRB(_MAX_LFN)]; /* Directory entry block scratchpad buffer */ +#if FF_USE_LFN == 1 /* LFN enabled with static working buffer */ +#if FF_FS_EXFAT +static BYTE DirBuf[MAXDIRB(FF_MAX_LFN)]; /* Directory entry block scratchpad buffer */ #endif -static WCHAR LfnBuf[_MAX_LFN + 1]; /* LFN enabled with static working buffer */ -#define DEF_NAMBUF +static WCHAR LfnBuf[FF_MAX_LFN + 1]; /* LFN working buffer */ +#define DEF_NAMBUF #define INIT_NAMBUF(fs) -#define FREE_NAMBUF() +#define FREE_NAMBUF() +#define LEAVE_MKFS(res) return res -#elif _USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ -#if _FS_EXFAT -#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; BYTE dbuf[MAXDIRB(_MAX_LFN)]; +#elif FF_USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ +#if FF_FS_EXFAT +#define DEF_NAMBUF WCHAR lbuf[FF_MAX_LFN+1]; BYTE dbuf[MAXDIRB(FF_MAX_LFN)]; /* LFN working buffer and directory entry block scratchpad buffer */ #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; } -#define FREE_NAMBUF() +#define FREE_NAMBUF() #else -#define DEF_NAMBUF WCHAR lbuf[_MAX_LFN+1]; +#define DEF_NAMBUF WCHAR lbuf[FF_MAX_LFN+1]; /* LFN working buffer */ #define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; } -#define FREE_NAMBUF() +#define FREE_NAMBUF() #endif +#define LEAVE_MKFS(res) return res -#elif _USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ -#if _FS_EXFAT -#define DEF_NAMBUF WCHAR *lfn; -#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2 + MAXDIRB(_MAX_LFN)); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+_MAX_LFN+1); } -#define FREE_NAMBUF() ff_memfree(lfn) +#elif FF_USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ +#if FF_FS_EXFAT +#define DEF_NAMBUF WCHAR *lfn; /* Pointer to LFN working buffer and directory entry block scratchpad buffer */ +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((FF_MAX_LFN+1)*2 + MAXDIRB(FF_MAX_LFN)); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+FF_MAX_LFN+1); } +#define FREE_NAMBUF() ff_memfree(lfn) #else -#define DEF_NAMBUF WCHAR *lfn; -#define INIT_NAMBUF(fs) { lfn = ff_memalloc((_MAX_LFN+1)*2); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; } -#define FREE_NAMBUF() ff_memfree(lfn) +#define DEF_NAMBUF WCHAR *lfn; /* Pointer to LFN working buffer */ +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((FF_MAX_LFN+1)*2); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; } +#define FREE_NAMBUF() ff_memfree(lfn) #endif +#define LEAVE_MKFS(res) { if (!work) ff_memfree(buf); return res; } +#define MAX_MALLOC 0x8000 #else -#error Wrong _USE_LFN setting +#error Wrong setting of FF_USE_LFN + +#endif /* FF_USE_LFN == 1 */ +#endif /* FF_USE_LFN == 0 */ + + + +/*--------------------------------*/ +/* Code conversion tables */ +/*--------------------------------*/ + +#if FF_CODE_PAGE == 0 /* Run-time code page configuration */ +#define CODEPAGE CodePage +static WORD CodePage; /* Current code page */ +static const BYTE *ExCvt, *DbcTbl; /* Pointer to current SBCS up-case table and DBCS code range table below */ +static const BYTE Ct437[] = TBL_CT437; +static const BYTE Ct720[] = TBL_CT720; +static const BYTE Ct737[] = TBL_CT737; +static const BYTE Ct771[] = TBL_CT771; +static const BYTE Ct775[] = TBL_CT775; +static const BYTE Ct850[] = TBL_CT850; +static const BYTE Ct852[] = TBL_CT852; +static const BYTE Ct855[] = TBL_CT855; +static const BYTE Ct857[] = TBL_CT857; +static const BYTE Ct860[] = TBL_CT860; +static const BYTE Ct861[] = TBL_CT861; +static const BYTE Ct862[] = TBL_CT862; +static const BYTE Ct863[] = TBL_CT863; +static const BYTE Ct864[] = TBL_CT864; +static const BYTE Ct865[] = TBL_CT865; +static const BYTE Ct866[] = TBL_CT866; +static const BYTE Ct869[] = TBL_CT869; +static const BYTE Dc932[] = TBL_DC932; +static const BYTE Dc936[] = TBL_DC936; +static const BYTE Dc949[] = TBL_DC949; +static const BYTE Dc950[] = TBL_DC950; + +#elif FF_CODE_PAGE < 900 /* Static code page configuration (SBCS) */ +#define CODEPAGE FF_CODE_PAGE +static const BYTE ExCvt[] = MKCVTBL(TBL_CT, FF_CODE_PAGE); + +#else /* Static code page configuration (DBCS) */ +#define CODEPAGE FF_CODE_PAGE +static const BYTE DbcTbl[] = MKCVTBL(TBL_DC, FF_CODE_PAGE); #endif -#endif /* else _USE_LFN == 0 */ - -#ifdef _EXCVT -static const BYTE ExCvt[] = _EXCVT; /* Upper conversion table for SBCS extended characters */ -#endif - - @@ -631,7 +584,7 @@ DWORD ld_dword (const BYTE* ptr) /* Load a 4-byte little-endian word */ return rv; } -#if _FS_EXFAT +#if FF_FS_EXFAT static QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian word */ { @@ -649,7 +602,7 @@ QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian word */ } #endif -#if !_FS_READONLY +#if !FF_FS_READONLY static void st_word (BYTE* ptr, WORD val) /* Store a 2-byte word in little-endian */ { @@ -666,7 +619,7 @@ void st_dword (BYTE* ptr, DWORD val) /* Store a 4-byte word in little-endian */ *ptr++ = (BYTE)val; } -#if _FS_EXFAT +#if FF_FS_EXFAT static void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */ { @@ -680,7 +633,7 @@ void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */ *ptr++ = (BYTE)val; } #endif -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ @@ -690,20 +643,23 @@ void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */ /* Copy memory to memory */ static -void mem_cpy (void* dst, const void* src, UINT cnt) { +void mem_cpy (void* dst, const void* src, UINT cnt) +{ BYTE *d = (BYTE*)dst; const BYTE *s = (const BYTE*)src; - if (cnt) { + if (cnt != 0) { do { *d++ = *s++; } while (--cnt); } } + /* Fill memory block */ static -void mem_set (void* dst, int val, UINT cnt) { +void mem_set (void* dst, int val, UINT cnt) +{ BYTE *d = (BYTE*)dst; do { @@ -711,9 +667,11 @@ void mem_set (void* dst, int val, UINT cnt) { } while (--cnt); } + /* Compare memory block */ static -int mem_cmp (const void* dst, const void* src, UINT cnt) { /* ZR:same, NZ:different */ +int mem_cmp (const void* dst, const void* src, UINT cnt) /* ZR:same, NZ:different */ +{ const BYTE *d = (const BYTE *)dst, *s = (const BYTE *)src; int r = 0; @@ -724,32 +682,221 @@ int mem_cmp (const void* dst, const void* src, UINT cnt) { /* ZR:same, NZ:differ return r; } + /* Check if chr is contained in the string */ static -int chk_chr (const char* str, int chr) { /* NZ:contained, ZR:not contained */ +int chk_chr (const char* str, int chr) /* NZ:contained, ZR:not contained */ +{ while (*str && *str != chr) str++; return *str; } +/* Test if the character is DBC 1st byte */ +static +int dbc_1st (BYTE c) +{ +#if FF_CODE_PAGE == 0 /* Variable code page */ + if (DbcTbl && c >= DbcTbl[0]) { + if (c <= DbcTbl[1]) return 1; /* 1st byte range 1 */ + if (c >= DbcTbl[2] && c <= DbcTbl[3]) return 1; /* 1st byte range 2 */ + } +#elif FF_CODE_PAGE >= 900 /* DBCS fixed code page */ + if (c >= DbcTbl[0]) { + if (c <= DbcTbl[1]) return 1; + if (c >= DbcTbl[2] && c <= DbcTbl[3]) return 1; + } +#else /* SBCS fixed code page */ + if (c != 0) return 0; /* Always false */ +#endif + return 0; +} -#if _FS_REENTRANT +/* Test if the character is DBC 2nd byte */ +static +int dbc_2nd (BYTE c) +{ +#if FF_CODE_PAGE == 0 /* Variable code page */ + if (DbcTbl && c >= DbcTbl[4]) { + if (c <= DbcTbl[5]) return 1; /* 2nd byte range 1 */ + if (c >= DbcTbl[6] && c <= DbcTbl[7]) return 1; /* 2nd byte range 2 */ + if (c >= DbcTbl[8] && c <= DbcTbl[9]) return 1; /* 2nd byte range 3 */ + } +#elif FF_CODE_PAGE >= 900 /* DBCS fixed code page */ + if (c >= DbcTbl[4]) { + if (c <= DbcTbl[5]) return 1; + if (c >= DbcTbl[6] && c <= DbcTbl[7]) return 1; + if (c >= DbcTbl[8] && c <= DbcTbl[9]) return 1; + } +#else /* SBCS fixed code page */ + if (c != 0) return 0; /* Always false */ +#endif + return 0; +} + + +#if FF_USE_LFN + +/* Get a character from TCHAR string in defined API encodeing */ +static +DWORD tchar2uni ( /* Returns character in UTF-16 encoding (>=0x10000 on double encoding unit, 0xFFFFFFFF on decode error) */ + const TCHAR** str /* Pointer to pointer to TCHAR string in configured encoding */ +) +{ + DWORD uc; + const TCHAR *p = *str; + +#if FF_LFN_UNICODE == 1 /* UTF-16 input */ + WCHAR wc; + + uc = *p++; + if (IsSurrogate(uc)) { /* Surrogate? */ + wc = *p++; /* Get low surrogate */ + if (!IsSurrogateH(uc) || !IsSurrogateL(wc)) return 0xFFFFFFFF; /* Wrong surrogate? */ + uc = uc << 16 | wc; + } + +#elif FF_LFN_UNICODE == 2 /* UTF-8 input */ + BYTE b; + int nf; + + uc = (BYTE)*p++; /* Get a byte */ + if (uc & 0x80) { /* Multiple byte code? */ + if ((uc & 0xE0) == 0xC0) { /* 2-byte sequence? */ + uc &= 0x1F; nf = 1; + } else { + if ((uc & 0xF0) == 0xE0) { /* 3-byte sequence? */ + uc &= 0x0F; nf = 2; + } else { + if ((uc & 0xF8) == 0xF0) { /* 4-byte sequence? */ + uc &= 0x07; nf = 3; + } else { /* Wrong sequence */ + return 0xFFFFFFFF; + } + } + } + do { /* Get trailing bytes */ + b = (BYTE)*p++; + if ((b & 0xC0) != 0x80) return 0xFFFFFFFF; /* Wrong sequence? */ + uc = uc << 6 | (b & 0x3F); + } while (--nf != 0); + if (uc < 0x80 || IsSurrogate(uc) || uc >= 0x110000) return 0xFFFFFFFF; /* Wrong code? */ + if (uc >= 0x10000) uc = 0xD800DC00 | ((uc - 0x10000) << 6 & 0x3FF0000) | (uc & 0x3FF); /* Make a surrogate pair if needed */ + } + +#else /* ANSI/OEM input */ + BYTE b; + WCHAR wc; + + wc = (BYTE)*p++; /* Get a byte */ + if (dbc_1st((BYTE)wc)) { /* Is it a DBC 1st byte? */ + b = (BYTE)*p++; /* Get 2nd byte */ + if (!dbc_2nd(b)) return 0xFFFFFFFF; /* Invalid code? */ + wc = (wc << 8) + b; /* Make a DBC */ + } + if (wc != 0) { + wc = ff_oem2uni(wc, CODEPAGE); /* ANSI/OEM ==> Unicode */ + if (wc == 0) return 0xFFFFFFFF; /* Invalid code? */ + } + uc = wc; + +#endif + *str = p; /* Next read pointer */ + return uc; +} + + +/* Output a TCHAR string in defined API encoding */ +static +BYTE put_utf ( /* Returns number of encoding units written (0:buffer overflow or wrong encoding) */ + DWORD chr, /* UTF-16 encoded character (Double encoding unit char if >=0x10000) */ + TCHAR* buf, /* Output buffer */ + UINT szb /* Size of the buffer */ +) +{ +#if FF_LFN_UNICODE == 1 /* UTF-16 output */ + WCHAR hs, wc; + + hs = (WCHAR)(chr >> 16); + wc = (WCHAR)chr; + if (hs == 0) { /* Single encoding unit? */ + if (szb < 1 || IsSurrogate(wc)) return 0; /* Buffer overflow or wrong code? */ + *buf = wc; + return 1; + } + if (szb < 2 || !IsSurrogateH(hs) || !IsSurrogateL(wc)) return 0; /* Buffer overflow or wrong surrogate? */ + *buf++ = hs; + *buf++ = wc; + return 2; + +#elif FF_LFN_UNICODE == 2 /* UTF-8 output */ + DWORD hc; + + if (chr < 0x80) { /* Single byte code? */ + if (szb < 1) return 0; /* Buffer overflow? */ + *buf = (TCHAR)chr; + return 1; + } + if (chr < 0x800) { /* 2-byte sequence? */ + if (szb < 2) return 0; /* Buffer overflow? */ + *buf++ = (TCHAR)(0xC0 | (chr >> 6 & 0x1F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 2; + } + if (chr < 0x10000) { /* 3-byte sequence? */ + if (szb < 3 || IsSurrogate(chr)) return 0; /* Buffer overflow or wrong code? */ + *buf++ = (TCHAR)(0xE0 | (chr >> 12 & 0x0F)); + *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 3; + } + /* 4-byte sequence */ + if (szb < 4) return 0; /* Buffer overflow? */ + hc = ((chr & 0xFFFF0000) - 0xD8000000) >> 6; /* Get high 10 bits */ + chr = (chr & 0xFFFF) - 0xDC00; /* Get low 10 bits */ + if (hc >= 0x100000 || chr >= 0x400) return 0; /* Wrong surrogate? */ + chr = (hc | chr) + 0x10000; + *buf++ = (TCHAR)(0xF0 | (chr >> 18 & 0x07)); + *buf++ = (TCHAR)(0x80 | (chr >> 12 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 4; + +#else /* ANSI/OEM output */ + WCHAR wc; + + wc = ff_uni2oem(chr, CODEPAGE); + if (wc >= 0x100) { /* Is this a DBC? */ + if (szb < 2) return 0; + *buf++ = (char)(wc >> 8); /* Store DBC 1st byte */ + *buf++ = (TCHAR)wc; /* Store DBC 2nd byte */ + return 2; + } + if (wc == 0 || szb < 1) return 0; /* Invalid char or buffer overflow? */ + *buf++ = (TCHAR)wc; /* Store the character */ + return 1; +#endif +} +#endif /* FF_USE_LFN */ + + +#if FF_FS_REENTRANT /*-----------------------------------------------------------------------*/ /* Request/Release grant to access the volume */ /*-----------------------------------------------------------------------*/ static -int lock_fs ( - FATFS* fs /* File system object */ +int lock_fs ( /* 1:Ok, 0:timeout */ + FATFS* fs /* Filesystem object */ ) { - return (fs && ff_req_grant(fs->sobj)) ? 1 : 0; + return ff_req_grant(fs->sobj); } static void unlock_fs ( - FATFS* fs, /* File system object */ + FATFS* fs, /* Filesystem object */ FRESULT res /* Result code to be returned */ ) { @@ -762,7 +909,7 @@ void unlock_fs ( -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 /*-----------------------------------------------------------------------*/ /* File lock control functions */ /*-----------------------------------------------------------------------*/ @@ -770,27 +917,28 @@ void unlock_fs ( static FRESULT chk_lock ( /* Check if the file can be accessed */ DIR* dp, /* Directory object pointing the file to be checked */ - int acc /* Desired access type (0:Read, 1:Write, 2:Delete/Rename) */ + int acc /* Desired access type (0:Read mode open, 1:Write mode open, 2:Delete or rename) */ ) { UINT i, be; - /* Search file semaphore table */ - for (i = be = 0; i < _FS_LOCK; i++) { + /* Search open object table for the object */ + be = 0; + for (i = 0; i < FF_FS_LOCK; i++) { if (Files[i].fs) { /* Existing entry */ - if (Files[i].fs == dp->obj.fs && /* Check if the object matched with an open object */ + if (Files[i].fs == dp->obj.fs && /* Check if the object matches with an open object */ Files[i].clu == dp->obj.sclust && Files[i].ofs == dp->dptr) break; } else { /* Blank entry */ be = 1; } } - if (i == _FS_LOCK) { /* The object is not opened */ - return (be || acc == 2) ? FR_OK : FR_TOO_MANY_OPEN_FILES; /* Is there a blank entry for new object? */ + if (i == FF_FS_LOCK) { /* The object has not been opened */ + return (!be && acc != 2) ? FR_TOO_MANY_OPEN_FILES : FR_OK; /* Is there a blank entry for new object? */ } - /* The object has been opened. Reject any open against writing file and all write mode open */ - return (acc || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK; + /* The object was opened. Reject any open against writing file and all write mode open */ + return (acc != 0 || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK; } @@ -799,8 +947,8 @@ int enq_lock (void) /* Check if an entry is available for a new object */ { UINT i; - for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; - return (i == _FS_LOCK) ? 0 : 1; + for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; + return (i == FF_FS_LOCK) ? 0 : 1; } @@ -813,26 +961,26 @@ UINT inc_lock ( /* Increment object open counter and returns its index (0:Intern UINT i; - for (i = 0; i < _FS_LOCK; i++) { /* Find the object */ + for (i = 0; i < FF_FS_LOCK; i++) { /* Find the object */ if (Files[i].fs == dp->obj.fs && Files[i].clu == dp->obj.sclust && Files[i].ofs == dp->dptr) break; } - if (i == _FS_LOCK) { /* Not opened. Register it as new. */ - for (i = 0; i < _FS_LOCK && Files[i].fs; i++) ; - if (i == _FS_LOCK) return 0; /* No free entry to register (int err) */ + if (i == FF_FS_LOCK) { /* Not opened. Register it as new. */ + for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; + if (i == FF_FS_LOCK) return 0; /* No free entry to register (int err) */ Files[i].fs = dp->obj.fs; Files[i].clu = dp->obj.sclust; Files[i].ofs = dp->dptr; Files[i].ctr = 0; } - if (acc && Files[i].ctr) return 0; /* Access violation (int err) */ + if (acc >= 1 && Files[i].ctr) return 0; /* Access violation (int err) */ Files[i].ctr = acc ? 0x100 : Files[i].ctr + 1; /* Set semaphore value */ - return i + 1; + return i + 1; /* Index number origin from 1 */ } @@ -845,7 +993,7 @@ FRESULT dec_lock ( /* Decrement object open counter */ FRESULT res; - if (--i < _FS_LOCK) { /* Shift index number origin from 0 */ + if (--i < FF_FS_LOCK) { /* Index number origin from 0 */ n = Files[i].ctr; if (n == 0x100) n = 0; /* If write mode open, delete the entry */ if (n > 0) n--; /* Decrement read mode open count */ @@ -866,41 +1014,35 @@ void clear_lock ( /* Clear lock entries of the volume */ { UINT i; - for (i = 0; i < _FS_LOCK; i++) { + for (i = 0; i < FF_FS_LOCK; i++) { if (Files[i].fs == fs) Files[i].fs = 0; } } -#endif /* _FS_LOCK != 0 */ +#endif /* FF_FS_LOCK != 0 */ /*-----------------------------------------------------------------------*/ -/* Move/Flush disk access window in the file system object */ +/* Move/Flush disk access window in the filesystem object */ /*-----------------------------------------------------------------------*/ -#if !_FS_READONLY +#if !FF_FS_READONLY static -FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERROR */ - FATFS* fs /* File system object */ +FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs /* Filesystem object */ ) { - DWORD wsect; - UINT nf; FRESULT res = FR_OK; - if (fs->wflag) { /* Write back the sector if it is dirty */ - wsect = fs->winsect; /* Current sector number */ - if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) { - res = FR_DISK_ERR; - } else { - fs->wflag = 0; - if (wsect - fs->fatbase < fs->fsize) { /* Is it in the FAT area? */ - for (nf = fs->n_fats; nf >= 2; nf--) { /* Reflect the change to all FAT copies */ - wsect += fs->fsize; - disk_write(fs->drv, fs->win, wsect, 1); - } + if (fs->wflag) { /* Is the disk access window dirty */ + if (disk_write(fs->pdrv, fs->win, fs->winsect, 1) == RES_OK) { /* Write back the window */ + fs->wflag = 0; /* Clear window dirty flag */ + if (fs->winsect - fs->fatbase < fs->fsize) { /* Is it in the 1st FAT? */ + if (fs->n_fats == 2) disk_write(fs->pdrv, fs->win, fs->winsect + fs->fsize, 1); /* Reflect it to 2nd FAT if needed */ } + } else { + res = FR_DISK_ERR; } } return res; @@ -909,8 +1051,8 @@ FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERROR */ static -FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERROR */ - FATFS* fs, /* File system object */ +FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs, /* Filesystem object */ DWORD sector /* Sector number to make appearance in the fs->win[] */ ) { @@ -918,12 +1060,12 @@ FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERROR */ if (sector != fs->winsect) { /* Window offset changed? */ -#if !_FS_READONLY +#if !FF_FS_READONLY res = sync_window(fs); /* Write-back changes */ #endif if (res == FR_OK) { /* Fill sector window with new data */ - if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) { - sector = 0xFFFFFFFF; /* Invalidate window if data is not reliable */ + if (disk_read(fs->pdrv, fs->win, sector, 1) != RES_OK) { + sector = 0xFFFFFFFF; /* Invalidate window if read data is not valid */ res = FR_DISK_ERR; } fs->winsect = sector; @@ -935,14 +1077,14 @@ FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERROR */ -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ -/* Synchronize file system and strage device */ +/* Synchronize filesystem and data on the storage */ /*-----------------------------------------------------------------------*/ static -FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */ - FATFS* fs /* File system object */ +FRESULT sync_fs ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs /* Filesystem object */ ) { FRESULT res; @@ -950,8 +1092,7 @@ FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */ res = sync_window(fs); if (res == FR_OK) { - /* Update FSInfo sector if needed */ - if (fs->fs_type == FS_FAT32 && fs->fsi_flag == 1) { + if (fs->fs_type == FS_FAT32 && fs->fsi_flag == 1) { /* FAT32: Update FSInfo sector if needed */ /* Create FSInfo structure */ mem_set(fs->win, 0, SS(fs)); st_word(fs->win + BS_55AA, 0xAA55); @@ -961,11 +1102,11 @@ FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */ st_dword(fs->win + FSI_Nxt_Free, fs->last_clst); /* Write it into the FSInfo sector */ fs->winsect = fs->volbase + 1; - disk_write(fs->drv, fs->win, fs->winsect, 1); + disk_write(fs->pdrv, fs->win, fs->winsect, 1); fs->fsi_flag = 0; } - /* Make sure that no pending write process in the physical drive */ - if (disk_ioctl(fs->drv, CTRL_SYNC, 0) != RES_OK) res = FR_DISK_ERR; + /* Make sure that no pending write process in the lower layer */ + if (disk_ioctl(fs->pdrv, CTRL_SYNC, 0) != RES_OK) res = FR_DISK_ERR; } return res; @@ -976,18 +1117,18 @@ FRESULT sync_fs ( /* FR_OK:succeeded, !=0:error */ /*-----------------------------------------------------------------------*/ -/* Get sector# from cluster# */ +/* Get physical sector number from cluster number */ /*-----------------------------------------------------------------------*/ static -DWORD clust2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */ - FATFS* fs, /* File system object */ +DWORD clst2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */ + FATFS* fs, /* Filesystem object */ DWORD clst /* Cluster# to be converted */ ) { - clst -= 2; - if (clst >= fs->n_fatent - 2) return 0; /* Invalid cluster# */ - return clst * fs->csize + fs->database; + clst -= 2; /* Cluster number is origin from 2 */ + if (clst >= fs->n_fatent - 2) return 0; /* Is it invalid cluster number? */ + return fs->database + fs->csize * clst; /* Start sector number of the cluster */ } @@ -998,9 +1139,9 @@ DWORD clust2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */ /*-----------------------------------------------------------------------*/ static -DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluster status */ - _FDID* obj, /* Corresponding object */ - DWORD clst /* Cluster number to get the value */ +DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluster status */ + FFOBJID* obj, /* Corresponding object */ + DWORD clst /* Cluster number to get the value */ ) { UINT wc, bc; @@ -1018,32 +1159,30 @@ DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluste case FS_FAT12 : bc = (UINT)clst; bc += bc / 2; if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; - wc = fs->win[bc++ % SS(fs)]; + wc = fs->win[bc++ % SS(fs)]; /* Get 1st byte of the entry */ if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; - wc |= fs->win[bc % SS(fs)] << 8; - val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); + wc |= fs->win[bc % SS(fs)] << 8; /* Merge 2nd byte of the entry */ + val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); /* Adjust bit position */ break; case FS_FAT16 : if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))) != FR_OK) break; - val = ld_word(fs->win + clst * 2 % SS(fs)); + val = ld_word(fs->win + clst * 2 % SS(fs)); /* Simple WORD array */ break; case FS_FAT32 : if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; - val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; /* Simple DWORD array but mask out upper 4 bits */ break; -#if _FS_EXFAT +#if FF_FS_EXFAT case FS_EXFAT : - if (obj->objsize) { + if (obj->objsize != 0) { DWORD cofs = clst - obj->sclust; /* Offset from start cluster */ DWORD clen = (DWORD)((obj->objsize - 1) / SS(fs)) / fs->csize; /* Number of clusters - 1 */ - if (obj->stat == 2) { /* Is there no valid chain on the FAT? */ - if (cofs <= clen) { - val = (cofs == clen) ? 0x7FFFFFFF : clst + 1; /* Generate the value */ - break; - } + if (obj->stat == 2 && cofs <= clen) { /* Is it a contiguous chain? */ + val = (cofs == clen) ? 0x7FFFFFFF : clst + 1; /* No data on the FAT, generate the value */ + break; } if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the 1st fragment? */ val = clst + 1; /* Generate the value */ @@ -1072,14 +1211,14 @@ DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluste -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* FAT access - Change value of a FAT entry */ /*-----------------------------------------------------------------------*/ static FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ - FATFS* fs, /* Corresponding file system object */ + FATFS* fs, /* Corresponding filesystem object */ DWORD clst, /* FAT index number (cluster number) to be changed */ DWORD val /* New value to be set to the entry */ ) @@ -1088,36 +1227,37 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ BYTE *p; FRESULT res = FR_INT_ERR; + if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */ switch (fs->fs_type) { - case FS_FAT12 : /* Bitfield items */ - bc = (UINT)clst; bc += bc / 2; + case FS_FAT12 : + bc = (UINT)clst; bc += bc / 2; /* bc: byte offset of the entry */ res = move_window(fs, fs->fatbase + (bc / SS(fs))); if (res != FR_OK) break; p = fs->win + bc++ % SS(fs); - *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; + *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; /* Put 1st byte */ fs->wflag = 1; res = move_window(fs, fs->fatbase + (bc / SS(fs))); if (res != FR_OK) break; p = fs->win + bc % SS(fs); - *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); + *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); /* Put 2nd byte */ fs->wflag = 1; break; - case FS_FAT16 : /* WORD aligned items */ + case FS_FAT16 : res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))); if (res != FR_OK) break; - st_word(fs->win + clst * 2 % SS(fs), (WORD)val); + st_word(fs->win + clst * 2 % SS(fs), (WORD)val); /* Simple WORD array */ fs->wflag = 1; break; - case FS_FAT32 : /* DWORD aligned items */ -#if _FS_EXFAT + case FS_FAT32 : +#if FF_FS_EXFAT case FS_EXFAT : #endif res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))); if (res != FR_OK) break; - if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000); } st_dword(fs->win + clst * 4 % SS(fs), val); @@ -1128,12 +1268,12 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ return res; } -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ -#if _FS_EXFAT && !_FS_READONLY +#if FF_FS_EXFAT && !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* exFAT: Accessing FAT and Allocation Bitmap */ /*-----------------------------------------------------------------------*/ @@ -1144,7 +1284,7 @@ FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ static DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk error */ - FATFS* fs, /* File system object */ + FATFS* fs, /* Filesystem object */ DWORD clst, /* Cluster number to scan from */ DWORD ncl /* Number of contiguous clusters to find (1..) */ ) @@ -1166,13 +1306,13 @@ DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk err if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */ val = 0; bm = 0; i = SS(fs); } - if (!bv) { /* Is it a free cluster? */ + if (bv == 0) { /* Is it a free cluster? */ if (++ctr == ncl) return scl + 2; /* Check if run length is sufficient for required */ } else { scl = val; ctr = 0; /* Encountered a cluster in-use, restart to scan */ } if (val == clst) return 0; /* All cluster scanned? */ - } while (bm); + } while (bm != 0); bm = 1; } while (++i < SS(fs)); } @@ -1185,7 +1325,7 @@ DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk err static FRESULT change_bitmap ( - FATFS* fs, /* File system object */ + FATFS* fs, /* Filesystem object */ DWORD clst, /* Cluster number to change from */ DWORD ncl, /* Number of clusters to be changed */ int bv /* bit value to be set (0 or 1) */ @@ -1195,6 +1335,7 @@ FRESULT change_bitmap ( UINT i; DWORD sect; + clst -= 2; /* The first bit corresponds to cluster #2 */ sect = fs->database + clst / 8 / SS(fs); /* Sector address (assuming bitmap is located top of the cluster heap) */ i = clst / 8 % SS(fs); /* Byte offset in the sector */ @@ -1221,13 +1362,14 @@ FRESULT change_bitmap ( static FRESULT fill_first_frag ( - _FDID* obj /* Pointer to the corresponding object */ + FFOBJID* obj /* Pointer to the corresponding object */ ) { FRESULT res; DWORD cl, n; - if (obj->stat == 3) { /* Has the object been changed 'fragmented'? */ + + if (obj->stat == 3) { /* Has the object been changed 'fragmented' in this session? */ for (cl = obj->sclust, n = obj->n_cont; n; cl++, n--) { /* Create cluster chain on the FAT */ res = put_fat(obj->fs, cl, cl + 1); if (res != FR_OK) return res; @@ -1244,14 +1386,15 @@ FRESULT fill_first_frag ( static FRESULT fill_last_frag ( - _FDID* obj, /* Pointer to the corresponding object */ - DWORD lcl, /* Last cluster of the fragment */ - DWORD term /* Value to set the last FAT entry */ + FFOBJID* obj, /* Pointer to the corresponding object */ + DWORD lcl, /* Last cluster of the fragment */ + DWORD term /* Value to set the last FAT entry */ ) { FRESULT res; - while (obj->n_frag > 0) { /* Create the last chain on the FAT */ + + while (obj->n_frag > 0) { /* Create the chain of last fragment */ res = put_fat(obj->fs, lcl - obj->n_frag + 1, (obj->n_frag > 1) ? lcl - obj->n_frag + 2 : term); if (res != FR_OK) return res; obj->n_frag--; @@ -1259,35 +1402,35 @@ FRESULT fill_last_frag ( return FR_OK; } -#endif /* _FS_EXFAT && !_FS_READONLY */ +#endif /* FF_FS_EXFAT && !FF_FS_READONLY */ -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* FAT handling - Remove a cluster chain */ /*-----------------------------------------------------------------------*/ static FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ - _FDID* obj, /* Corresponding object */ + FFOBJID* obj, /* Corresponding object */ DWORD clst, /* Cluster to remove a chain from */ - DWORD pclst /* Previous cluster of clst (0:an entire chain) */ + DWORD pclst /* Previous cluster of clst (0:entire chain) */ ) { FRESULT res = FR_OK; DWORD nxt; FATFS *fs = obj->fs; -#if _FS_EXFAT || _USE_TRIM +#if FF_FS_EXFAT || FF_USE_TRIM DWORD scl = clst, ecl = clst; #endif -#if _USE_TRIM +#if FF_USE_TRIM DWORD rt[2]; #endif if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Check if in valid range */ /* Mark the previous cluster 'EOC' on the FAT if it exists */ - if (pclst && (!_FS_EXFAT || fs->fs_type != FS_EXFAT || obj->stat != 2)) { + if (pclst != 0 && (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT || obj->stat != 2)) { res = put_fat(fs, pclst, 0xFFFFFFFF); if (res != FR_OK) return res; } @@ -1298,7 +1441,7 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ if (nxt == 0) break; /* Empty cluster? */ if (nxt == 1) return FR_INT_ERR; /* Internal error? */ if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ - if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */ if (res != FR_OK) return res; } @@ -1306,20 +1449,20 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ fs->free_clst++; fs->fsi_flag |= 1; } -#if _FS_EXFAT || _USE_TRIM +#if FF_FS_EXFAT || FF_USE_TRIM if (ecl + 1 == nxt) { /* Is next cluster contiguous? */ ecl = nxt; } else { /* End of contiguous cluster block */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap */ if (res != FR_OK) return res; } #endif -#if _USE_TRIM - rt[0] = clust2sect(fs, scl); /* Start sector */ - rt[1] = clust2sect(fs, ecl) + fs->csize - 1; /* End sector */ - disk_ioctl(fs->drv, CTRL_TRIM, rt); /* Inform device the block can be erased */ +#if FF_USE_TRIM + rt[0] = clst2sect(fs, scl); /* Start of data area freed */ + rt[1] = clst2sect(fs, ecl) + fs->csize - 1; /* End of data area freed */ + disk_ioctl(fs->pdrv, CTRL_TRIM, rt); /* Inform device the data in the block is no longer needed */ #endif scl = ecl = nxt; } @@ -1327,13 +1470,28 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ clst = nxt; /* Next cluster */ } while (clst < fs->n_fatent); /* Repeat while not the last link */ -#if _FS_EXFAT +#if FF_FS_EXFAT + /* Some post processes for chain status */ if (fs->fs_type == FS_EXFAT) { - if (pclst == 0) { /* Does the object have no chain? */ - obj->stat = 0; /* Change the object status 'initial' */ + if (pclst == 0) { /* Has the entire chain been removed? */ + obj->stat = 0; /* Change the chain status 'initial' */ } else { - if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Did the chain get contiguous? */ - obj->stat = 2; /* Change the object status 'contiguous' */ + if (obj->stat == 0) { /* Is it a fragmented chain from the beginning of this session? */ + clst = obj->sclust; /* Follow the chain to check if it gets contiguous */ + while (clst != pclst) { + nxt = get_fat(obj, clst); + if (nxt < 2) return FR_INT_ERR; + if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; + if (nxt != clst + 1) break; /* Not contiguous? */ + clst++; + } + if (clst == pclst) { /* Has the chain got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } + } else { + if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Was the chain fragmented in this session and got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } } } } @@ -1349,7 +1507,7 @@ FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ /*-----------------------------------------------------------------------*/ static DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk error, >=2:New cluster# */ - _FDID* obj, /* Corresponding object */ + FFOBJID* obj, /* Corresponding object */ DWORD clst /* Cluster# to stretch, 0:Create a new chain */ ) { @@ -1359,18 +1517,19 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err if (clst == 0) { /* Create a new chain */ - scl = fs->last_clst; /* Get suggested cluster to start from */ + scl = fs->last_clst; /* Suggested cluster to start to find */ if (scl == 0 || scl >= fs->n_fatent) scl = 1; } - else { /* Stretch current chain */ + else { /* Stretch a chain */ cs = get_fat(obj, clst); /* Check the cluster status */ - if (cs < 2) return 1; /* Invalid FAT value */ - if (cs == 0xFFFFFFFF) return cs; /* A disk error occurred */ + if (cs < 2) return 1; /* Test for insanity */ + if (cs == 0xFFFFFFFF) return cs; /* Test for disk error */ if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ - scl = clst; + scl = clst; /* Cluster to start to find */ } + if (fs->free_clst == 0) return 0; /* No free cluster */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ ncl = find_bitmap(fs, scl, 1); /* Find a free cluster */ if (ncl == 0 || ncl == 0xFFFFFFFF) return ncl; /* No free cluster or hard error? */ @@ -1396,22 +1555,36 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err } } else #endif - { /* On the FAT12/16/32 volume */ - ncl = scl; /* Start cluster */ - for (;;) { - ncl++; /* Next cluster */ - if (ncl >= fs->n_fatent) { /* Check wrap-around */ - ncl = 2; - if (ncl > scl) return 0; /* No free cluster */ + { /* On the FAT/FAT32 volume */ + ncl = 0; + if (scl == clst) { /* Stretching an existing chain? */ + ncl = scl + 1; /* Test if next cluster is free */ + if (ncl >= fs->n_fatent) ncl = 2; + cs = get_fat(obj, ncl); /* Get next cluster status */ + if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* Test for error */ + if (cs != 0) { /* Not free? */ + cs = fs->last_clst; /* Start at suggested cluster if it is valid */ + if (cs >= 2 && cs < fs->n_fatent) scl = cs; + ncl = 0; } - cs = get_fat(obj, ncl); /* Get the cluster status */ - if (cs == 0) break; /* Found a free cluster */ - if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* An error occurred */ - if (ncl == scl) return 0; /* No free cluster */ } - res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ + if (ncl == 0) { /* The new cluster cannot be contiguous and find another fragment */ + ncl = scl; /* Start cluster */ + for (;;) { + ncl++; /* Next cluster */ + if (ncl >= fs->n_fatent) { /* Check wrap-around */ + ncl = 2; + if (ncl > scl) return 0; /* No free cluster found? */ + } + cs = get_fat(obj, ncl); /* Get the cluster status */ + if (cs == 0) break; /* Found a free cluster? */ + if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* Test for error */ + if (ncl == scl) return 0; /* No free cluster found? */ + } + } + res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ if (res == FR_OK && clst != 0) { - res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ + res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ } } @@ -1426,12 +1599,12 @@ DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk err return ncl; /* Return new cluster number or error status */ } -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK /*-----------------------------------------------------------------------*/ /* FAT handling - Convert offset into cluster with link map table */ /*-----------------------------------------------------------------------*/ @@ -1457,7 +1630,48 @@ DWORD clmt_clust ( /* <2:Error, >=2:Cluster number */ return cl + *tbl; /* Return the cluster number */ } -#endif /* _USE_FASTSEEK */ +#endif /* FF_USE_FASTSEEK */ + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Fill a cluster with zeros */ +/*-----------------------------------------------------------------------*/ + +#if !FF_FS_READONLY +static +FRESULT dir_clear ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS *fs, /* Filesystem object */ + DWORD clst /* Directory table to clear */ +) +{ + DWORD sect; + UINT n, szb; + BYTE *ibuf; + + + if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */ + sect = clst2sect(fs, clst); /* Top of the cluster */ + fs->winsect = sect; /* Set window to top of the cluster */ + mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ +#if FF_USE_LFN == 3 /* Quick table clear by using multi-secter write */ + /* Allocate a temporary buffer */ + for (szb = ((DWORD)fs->csize * SS(fs) >= MAX_MALLOC) ? MAX_MALLOC : fs->csize * SS(fs); szb > SS(fs) && !(ibuf = ff_memalloc(szb)); szb /= 2) ; + if (szb > SS(fs)) { /* Buffer allocated? */ + mem_set(ibuf, 0, szb); + szb /= SS(fs); /* Bytes -> Sectors */ + for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ; /* Fill the cluster with 0 */ + ff_memfree(ibuf); + } else +#endif + { + ibuf = fs->win; szb = 1; /* Use window buffer (single-sector writes may take a time) */ + for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ; /* Fill the cluster with 0 */ + } + return (n == fs->csize) ? FR_OK : FR_DISK_ERR; +} +#endif /* !FF_FS_READONLY */ @@ -1476,21 +1690,21 @@ FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */ FATFS *fs = dp->obj.fs; - if (ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR) || ofs % SZDIRE) { /* Check range of offset and alignment */ + if (ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR) || ofs % SZDIRE) { /* Check range of offset and alignment */ return FR_INT_ERR; } dp->dptr = ofs; /* Set current offset */ clst = dp->obj.sclust; /* Table start cluster (0:root) */ if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */ clst = fs->dirbase; - if (_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */ + if (FF_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */ } - if (clst == 0) { /* Static table (root-directory in FAT12/16) */ - if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ + if (clst == 0) { /* Static table (root-directory on the FAT volume) */ + if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ dp->sect = fs->dirbase; - } else { /* Dynamic table (sub-directory or root-directory in FAT32+) */ + } else { /* Dynamic table (sub-directory or root-directory on the FAT32/exFAT volume) */ csz = (DWORD)fs->csize * SS(fs); /* Bytes per cluster */ while (ofs >= csz) { /* Follow cluster chain */ clst = get_fat(&dp->obj, clst); /* Get next cluster */ @@ -1498,10 +1712,10 @@ FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */ if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal error */ ofs -= csz; } - dp->sect = clust2sect(fs, clst); + dp->sect = clst2sect(fs, clst); } dp->clust = clst; /* Current cluster# */ - if (!dp->sect) return FR_INT_ERR; + if (dp->sect == 0) return FR_INT_ERR; dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ @@ -1523,28 +1737,26 @@ FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Cou { DWORD ofs, clst; FATFS *fs = dp->obj.fs; -#if !_FS_READONLY - UINT n; -#endif + ofs = dp->dptr + SZDIRE; /* Next entry */ - if (!dp->sect || ofs >= (DWORD)((_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) return FR_NO_FILE; /* Report EOT when offset has reached max value */ + if (dp->sect == 0 || ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) return FR_NO_FILE; /* Report EOT when offset has reached max value */ if (ofs % SS(fs) == 0) { /* Sector changed? */ dp->sect++; /* Next sector */ - if (!dp->clust) { /* Static table */ + if (dp->clust == 0) { /* Static table */ if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */ dp->sect = 0; return FR_NO_FILE; } } else { /* Dynamic table */ - if ((ofs / SS(fs) & (fs->csize - 1)) == 0) { /* Cluster changed? */ - clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ - if (clst <= 1) return FR_INT_ERR; /* Internal error */ - if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ - if (clst >= fs->n_fatent) { /* Reached end of dynamic table */ -#if !_FS_READONLY + if ((ofs / SS(fs) & (fs->csize - 1)) == 0) { /* Cluster changed? */ + clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ + if (clst <= 1) return FR_INT_ERR; /* Internal error */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (clst >= fs->n_fatent) { /* It reached end of dynamic table */ +#if !FF_FS_READONLY if (!stretch) { /* If no stretch, report EOT */ dp->sect = 0; return FR_NO_FILE; } @@ -1552,22 +1764,15 @@ FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Cou if (clst == 0) return FR_DENIED; /* No free cluster */ if (clst == 1) return FR_INT_ERR; /* Internal error */ if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ - /* Clean-up the stretched table */ - if (_FS_EXFAT) dp->obj.stat |= 4; /* The directory needs to be updated */ - if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */ - mem_set(fs->win, 0, SS(fs)); /* Clear window buffer */ - for (n = 0, fs->winsect = clust2sect(fs, clst); n < fs->csize; n++, fs->winsect++) { /* Fill the new cluster with 0 */ - fs->wflag = 1; - if (sync_window(fs) != FR_OK) return FR_DISK_ERR; - } - fs->winsect -= n; /* Restore window offset */ + if (dir_clear(fs, clst) != FR_OK) return FR_DISK_ERR; /* Clean up the stretched table */ + if (FF_FS_EXFAT) dp->obj.stat |= 4; /* exFAT: The directory has been stretched */ #else if (!stretch) dp->sect = 0; /* (this line is to suppress compiler warning) */ dp->sect = 0; return FR_NO_FILE; /* Report EOT */ #endif } dp->clust = clst; /* Initialize data for new cluster */ - dp->sect = clust2sect(fs, clst); + dp->sect = clst2sect(fs, clst); } } } @@ -1580,7 +1785,7 @@ FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Cou -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Directory handling - Reserve a block of directory entries */ /*-----------------------------------------------------------------------*/ @@ -1602,7 +1807,7 @@ FRESULT dir_alloc ( /* FR_OK(0):succeeded, !=0:error */ do { res = move_window(fs, dp->sect); if (res != FR_OK) break; -#if _FS_EXFAT +#if FF_FS_EXFAT if ((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0)) { #else if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) { @@ -1619,7 +1824,7 @@ FRESULT dir_alloc ( /* FR_OK(0):succeeded, !=0:error */ return res; } -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ @@ -1645,7 +1850,7 @@ DWORD ld_clust ( /* Returns the top cluster value of the SFN entry */ } -#if !_FS_READONLY +#if !FF_FS_READONLY static void st_clust ( FATFS* fs, /* Pointer to the fs object */ @@ -1662,14 +1867,7 @@ void st_clust ( -#if _USE_LFN != 0 -/*------------------------------------------------------------------------*/ -/* FAT-LFN: LFN handling */ -/*------------------------------------------------------------------------*/ -static -const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30}; /* Offset of LFN characters in the directory entry */ - - +#if FF_USE_LFN /*--------------------------------------------------------*/ /* FAT-LFN: Compare a part of file name with an LFN entry */ /*--------------------------------------------------------*/ @@ -1689,8 +1887,8 @@ int cmp_lfn ( /* 1:matched, 0:not matched */ for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ - if (wc) { - if (i >= _MAX_LFN || ff_wtoupper(uc) != ff_wtoupper(lfnbuf[i++])) { /* Compare it */ + if (wc != 0) { + if (i >= FF_MAX_LFN || ff_wtoupper(uc) != ff_wtoupper(lfnbuf[i++])) { /* Compare it */ return 0; /* Not matched */ } wc = uc; @@ -1705,7 +1903,7 @@ int cmp_lfn ( /* 1:matched, 0:not matched */ } -#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 || FF_USE_LABEL || FF_FS_EXFAT /*-----------------------------------------------------*/ /* FAT-LFN: Pick a part of file name from an LFN entry */ /*-----------------------------------------------------*/ @@ -1725,8 +1923,8 @@ int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ - if (wc) { - if (i >= _MAX_LFN) return 0; /* Buffer overflow? */ + if (wc != 0) { + if (i >= FF_MAX_LFN) return 0; /* Buffer overflow? */ lfnbuf[i++] = wc = uc; /* Store it */ } else { if (uc != 0xFFFF) return 0; /* Check filler */ @@ -1734,7 +1932,7 @@ int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ } if (dir[LDIR_Ord] & LLEF) { /* Put terminator if it is the last LFN part */ - if (i >= _MAX_LFN) return 0; /* Buffer overflow? */ + if (i >= FF_MAX_LFN) return 0; /* Buffer overflow? */ lfnbuf[i] = 0; } @@ -1743,7 +1941,7 @@ int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ #endif -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------*/ /* FAT-LFN: Create an entry of LFN entries */ /*-----------------------------------------*/ @@ -1775,12 +1973,12 @@ void put_lfn ( dir[LDIR_Ord] = ord; /* Set the LFN order */ } -#endif /* !_FS_READONLY */ -#endif /* _USE_LFN != 0 */ +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_LFN */ -#if _USE_LFN != 0 && !_FS_READONLY +#if FF_USE_LFN && !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* FAT-LFN: Create a Numbered SFN */ /*-----------------------------------------------------------------------*/ @@ -1824,9 +2022,9 @@ void gen_numname ( } while (seq); ns[i] = '~'; - /* Append the number */ + /* Append the number to the SFN body */ for (j = 0; j < i && dst[j] != ' '; j++) { - if (IsDBCS1(dst[j])) { + if (dbc_1st(dst[j])) { if (j == i - 1) break; j++; } @@ -1835,11 +2033,11 @@ void gen_numname ( dst[j++] = (i < 8) ? ns[i++] : ' '; } while (j < 8); } -#endif /* _USE_LFN != 0 && !_FS_READONLY */ +#endif /* FF_USE_LFN && !FF_FS_READONLY */ -#if _USE_LFN != 0 +#if FF_USE_LFN /*-----------------------------------------------------------------------*/ /* FAT-LFN: Calculate checksum of an SFN entry */ /*-----------------------------------------------------------------------*/ @@ -1858,17 +2056,17 @@ BYTE sum_sfn ( return sum; } -#endif /* _USE_LFN != 0 */ +#endif /* FF_USE_LFN */ -#if _FS_EXFAT +#if FF_FS_EXFAT /*-----------------------------------------------------------------------*/ /* exFAT: Checksum */ /*-----------------------------------------------------------------------*/ static -WORD xdir_sum ( /* Get checksum of the directoly block */ +WORD xdir_sum ( /* Get checksum of the directoly entry block */ const BYTE* dir /* Directory entry block to be calculated */ ) { @@ -1899,7 +2097,7 @@ WORD xname_sum ( /* Get check sum (to be used as hash) of the name */ while ((chr = *name++) != 0) { - chr = ff_wtoupper(chr); /* File name needs to be ignored case */ + chr = (WCHAR)ff_wtoupper(chr); /* File name needs to be upper-case converted */ sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr & 0xFF); sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr >> 8); } @@ -1907,11 +2105,11 @@ WORD xname_sum ( /* Get check sum (to be used as hash) of the name */ } -#if !_FS_READONLY && _USE_MKFS +#if !FF_FS_READONLY && FF_USE_MKFS static DWORD xsum32 ( - BYTE dat, /* Data to be sumed */ - DWORD sum /* Previous value */ + BYTE dat, /* Byte to be calculated */ + DWORD sum /* Previous sum */ ) { sum = ((sum & 1) ? 0x80000000 : 0) + (sum >> 1) + dat; @@ -1920,54 +2118,47 @@ DWORD xsum32 ( #endif -#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 /*------------------------------------------------------*/ /* exFAT: Get object information from a directory block */ /*------------------------------------------------------*/ static -void get_xdir_info ( +void get_xfileinfo ( BYTE* dirb, /* Pointer to the direcotry entry block 85+C0+C1s */ FILINFO* fno /* Buffer to store the extracted file information */ ) { - UINT di, si; - WCHAR w; -#if !_LFN_UNICODE - UINT nc; -#endif + WCHAR wc, hs; + UINT di, si, nc; - /* Get file name */ - di = 0; -#if _LFN_UNICODE - for (si = SZDIRE * 2; di < dirb[XDIR_NumName]; si += 2, di++) { + /* Get file name from the entry block */ + si = SZDIRE * 2; /* 1st C1 entry */ + nc = hs = di = 0; + while (nc < dirb[XDIR_NumName]) { + if (si >= MAXDIRB(FF_MAX_LFN)) { di = 0; break; } /* Truncated directory block? */ if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ld_word(dirb + si); /* Get a character */ - if (di >= _MAX_LFN) { di = 0; break; } /* Buffer overflow --> inaccessible object name */ - fno->fname[di] = w; /* Store it */ - } -#else - for (si = SZDIRE * 2, nc = 0; nc < dirb[XDIR_NumName]; si += 2, nc++) { - if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ - w = ff_convert(ld_word(dirb + si), 0); /* Get a character and Unicode -> OEM */ - if (_DF1S && w >= 0x100) { /* Is it a double byte char? (always false at SBCS cfg) */ - fno->fname[di++] = (char)(w >> 8); /* Put 1st byte of the DBC */ + wc = ld_word(dirb + si); si += 2; nc++; /* Get a character */ + if (hs == 0 && IsSurrogate(wc)) { /* Is it a surrogate? */ + hs = wc; continue; /* Get low surrogate */ } - if (w == 0 || di >= _MAX_LFN) { di = 0; break; } /* Invalid char or buffer overflow --> inaccessible object name */ - fno->fname[di++] = (char)w; + wc = put_utf((DWORD)hs << 16 | wc, &fno->fname[di], FF_LFN_BUF - di); /* Store it in UTF-16 or UTF-8 encoding */ + if (wc == 0) { di = 0; break; } /* Buffer overflow or wrong encoding? */ + di += wc; + hs = 0; } -#endif + if (hs != 0) di = 0; /* Broken surrogate pair? */ if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object name? */ - fno->fname[di] = 0; /* Terminate file name */ + fno->fname[di] = 0; /* Terminate the name */ + fno->altname[0] = 0; /* exFAT does not have SFN */ - fno->altname[0] = 0; /* No SFN */ - fno->fattrib = dirb[XDIR_Attr]; /* Attribute */ + fno->fattrib = dirb[XDIR_Attr]; /* Attribute */ fno->fsize = (fno->fattrib & AM_DIR) ? 0 : ld_qword(dirb + XDIR_FileSize); /* Size */ fno->ftime = ld_word(dirb + XDIR_ModTime + 0); /* Time */ fno->fdate = ld_word(dirb + XDIR_ModTime + 2); /* Date */ } -#endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */ +#endif /* FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 */ /*-----------------------------------*/ @@ -1976,7 +2167,7 @@ void get_xdir_info ( static FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ - DIR* dp /* Pointer to the reading direcotry object pointing the 85 entry */ + DIR* dp /* Reading direcotry object pointing top of the entry block to load */ ) { FRESULT res; @@ -1987,47 +2178,67 @@ FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ /* Load 85 entry */ res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; - if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR; - mem_cpy(dirb + 0, dp->dir, SZDIRE); + if (dp->dir[XDIR_Type] != 0x85) return FR_INT_ERR; /* Invalid order */ + mem_cpy(dirb + 0 * SZDIRE, dp->dir, SZDIRE); sz_ent = (dirb[XDIR_NumSec] + 1) * SZDIRE; if (sz_ent < 3 * SZDIRE || sz_ent > 19 * SZDIRE) return FR_INT_ERR; /* Load C0 entry */ res = dir_next(dp, 0); + if (res == FR_NO_FILE) res = FR_INT_ERR; /* It cannot be */ if (res != FR_OK) return res; res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; - if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR; - mem_cpy(dirb + SZDIRE, dp->dir, SZDIRE); + if (dp->dir[XDIR_Type] != 0xC0) return FR_INT_ERR; /* Invalid order */ + mem_cpy(dirb + 1 * SZDIRE, dp->dir, SZDIRE); if (MAXDIRB(dirb[XDIR_NumName]) > sz_ent) return FR_INT_ERR; /* Load C1 entries */ - i = SZDIRE * 2; /* C1 offset */ + i = 2 * SZDIRE; /* C1 offset to load */ do { res = dir_next(dp, 0); + if (res == FR_NO_FILE) res = FR_INT_ERR; /* It cannot be */ if (res != FR_OK) return res; res = move_window(dp->obj.fs, dp->sect); if (res != FR_OK) return res; - if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR; - if (i < MAXDIRB(_MAX_LFN)) mem_cpy(dirb + i, dp->dir, SZDIRE); + if (dp->dir[XDIR_Type] != 0xC1) return FR_INT_ERR; /* Invalid order */ + if (i < MAXDIRB(FF_MAX_LFN)) mem_cpy(dirb + i, dp->dir, SZDIRE); } while ((i += SZDIRE) < sz_ent); - /* Sanity check (do it when accessible object name) */ - if (i <= MAXDIRB(_MAX_LFN)) { + /* Sanity check (do it for only accessible object) */ + if (i <= MAXDIRB(FF_MAX_LFN)) { if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; } return FR_OK; } -#if !_FS_READONLY || _FS_RPATH != 0 +/*------------------------------------------------------------------*/ +/* exFAT: Initialize object allocation info with loaded entry block */ +/*------------------------------------------------------------------*/ + +static +void init_alloc_info ( + FATFS* fs, /* Filesystem object */ + FFOBJID* obj /* Object allocation information to be initialized */ +) +{ + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Start cluster */ + obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); /* Size */ + obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; /* Allocation status */ + obj->n_frag = 0; /* No last fragment info */ +} + + + +#if !FF_FS_READONLY || FF_FS_RPATH != 0 /*------------------------------------------------*/ /* exFAT: Load the object's directory entry block */ /*------------------------------------------------*/ static -FRESULT load_obj_dir ( +FRESULT load_obj_xdir ( DIR* dp, /* Blank directory object to be used to access containing direcotry */ - const _FDID* obj /* Object with its containing directory information */ + const FFOBJID* obj /* Object with its containing directory information */ ) { FRESULT res; @@ -2037,6 +2248,7 @@ FRESULT load_obj_dir ( dp->obj.sclust = obj->c_scl; dp->obj.stat = (BYTE)obj->c_size; dp->obj.objsize = obj->c_size & 0xFFFFFF00; + dp->obj.n_frag = 0; dp->blk_ofs = obj->c_ofs; res = dir_sdi(dp, dp->blk_ofs); /* Goto object's entry block */ @@ -2048,10 +2260,10 @@ FRESULT load_obj_dir ( #endif -#if !_FS_READONLY -/*-----------------------------------------------*/ -/* exFAT: Store the directory block to the media */ -/*-----------------------------------------------*/ +#if !FF_FS_READONLY +/*----------------------------------------*/ +/* exFAT: Store the directory entry block */ +/*----------------------------------------*/ static FRESULT store_xdir ( DIR* dp /* Pointer to the direcotry object */ @@ -2065,7 +2277,7 @@ FRESULT store_xdir ( st_word(dirb + XDIR_SetSum, xdir_sum(dirb)); nent = dirb[XDIR_NumSec] + 1; - /* Store the set of directory to the volume */ + /* Store the direcotry entry block to the directory */ res = dir_sdi(dp, dp->blk_ofs); while (res == FR_OK) { res = move_window(dp->obj.fs, dp->sect); @@ -2088,45 +2300,50 @@ FRESULT store_xdir ( static void create_xdir ( BYTE* dirb, /* Pointer to the direcotry entry block buffer */ - const WCHAR* lfn /* Pointer to the nul terminated file name */ + const WCHAR* lfn /* Pointer to the object name */ ) { UINT i; - BYTE nb, nc; - WCHAR chr; + BYTE nc1, nlen; + WCHAR wc; - /* Create 85+C0 entry */ + /* Create 85,C0 entry */ mem_set(dirb, 0, 2 * SZDIRE); - dirb[XDIR_Type] = 0x85; - dirb[XDIR_Type + SZDIRE] = 0xC0; + dirb[0 * SZDIRE + XDIR_Type] = 0x85; /* 85 entry */ + dirb[1 * SZDIRE + XDIR_Type] = 0xC0; /* C0 entry */ /* Create C1 entries */ - nc = 0; nb = 1; chr = 1; i = SZDIRE * 2; + i = SZDIRE * 2; /* Top of C1 entries */ + nlen = nc1 = 0; wc = 1; do { dirb[i++] = 0xC1; dirb[i++] = 0; /* Entry type C1 */ do { /* Fill name field */ - if (chr && (chr = lfn[nc]) != 0) nc++; /* Get a character if exist */ - st_word(dirb + i, chr); /* Store it */ - } while ((i += 2) % SZDIRE != 0); - nb++; - } while (lfn[nc]); /* Fill next entry if any char follows */ + if (wc != 0 && (wc = lfn[nlen]) != 0) nlen++; /* Get a character if exist */ + st_word(dirb + i, wc); /* Store it */ + i += 2; + } while (i % SZDIRE != 0); + nc1++; + } while (lfn[nlen]); /* Fill next entry if any char follows */ - dirb[XDIR_NumName] = nc; /* Set name length */ - dirb[XDIR_NumSec] = nb; /* Set block length */ + dirb[XDIR_NumName] = nlen; /* Set name length */ + dirb[XDIR_NumSec] = 1 + nc1; /* Set secondary count (C0 + C1s) */ st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ } -#endif /* !_FS_READONLY */ -#endif /* _FS_EXFAT */ +#endif /* !FF_FS_READONLY */ +#endif /* FF_FS_EXFAT */ -#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 || _USE_LABEL || _FS_EXFAT +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 || FF_USE_LABEL || FF_FS_EXFAT /*-----------------------------------------------------------------------*/ /* Read an object from the directory */ /*-----------------------------------------------------------------------*/ +#define dir_read_file(dp) dir_read(dp, 0) +#define dir_read_label(dp) dir_read(dp, 1) + static FRESULT dir_read ( DIR* dp, /* Pointer to the directory object */ @@ -2136,7 +2353,7 @@ FRESULT dir_read ( FRESULT res = FR_NO_FILE; FATFS *fs = dp->obj.fs; BYTE a, c; -#if _USE_LFN != 0 +#if FF_USE_LFN BYTE ord = 0xFF, sum = 0xFF; #endif @@ -2147,9 +2364,9 @@ FRESULT dir_read ( if (c == 0) { res = FR_NO_FILE; break; /* Reached to end of the directory */ } -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ - if (_USE_LABEL && vol) { + if (FF_USE_LABEL && vol) { if (c == 0x83) break; /* Volume label entry? */ } else { if (c == 0x85) { /* Start of the file entry block? */ @@ -2163,9 +2380,9 @@ FRESULT dir_read ( } } else #endif - { /* On the FAT12/16/32 volume */ + { /* On the FAT/FAT32 volume */ dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */ -#if _USE_LFN != 0 /* LFN configuration */ +#if FF_USE_LFN /* LFN configuration */ if (c == DDEM || c == '.' || (int)((a & ~AM_ARC) == AM_VOL) != vol) { /* An entry without valid data */ ord = 0xFF; } else { @@ -2178,7 +2395,7 @@ FRESULT dir_read ( /* Check LFN validity and capture it */ ord = (c == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; } else { /* An SFN entry is found */ - if (ord || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */ + if (ord != 0 || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */ dp->blk_ofs = 0xFFFFFFFF; /* It has no LFN. */ } break; @@ -2198,7 +2415,7 @@ FRESULT dir_read ( return res; } -#endif /* _FS_MINIMIZE <= 1 || _USE_LABEL || _FS_RPATH >= 2 */ +#endif /* FF_FS_MINIMIZE <= 1 || FF_USE_LABEL || FF_FS_RPATH >= 2 */ @@ -2214,21 +2431,21 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ FRESULT res; FATFS *fs = dp->obj.fs; BYTE c; -#if _USE_LFN != 0 +#if FF_USE_LFN BYTE a, ord, sum; #endif res = dir_sdi(dp, 0); /* Rewind directory object */ if (res != FR_OK) return res; -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ BYTE nc; UINT di, ni; WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */ - while ((res = dir_read(dp, 0)) == FR_OK) { /* Read an item */ -#if _MAX_LFN < 255 - if (fs->dirbuf[XDIR_NumName] > _MAX_LFN) continue; /* Skip comparison if inaccessible object name */ + while ((res = dir_read_file(dp)) == FR_OK) { /* Read an item */ +#if FF_MAX_LFN < 255 + if (fs->dirbuf[XDIR_NumName] > FF_MAX_LFN) continue; /* Skip comparison if inaccessible object name */ #endif if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip comparison if hash mismatched */ for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compare the name */ @@ -2240,8 +2457,8 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ return res; } #endif - /* On the FAT12/16/32 volume */ -#if _USE_LFN != 0 + /* On the FAT/FAT32 volume */ +#if FF_USE_LFN ord = sum = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ #endif do { @@ -2249,7 +2466,7 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ if (res != FR_OK) break; c = dp->dir[DIR_Name]; if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ -#if _USE_LFN != 0 /* LFN configuration */ +#if FF_USE_LFN /* LFN configuration */ dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; if (c == DDEM || ((a & AM_VOL) && a != AM_LFN)) { /* An entry without valid data */ ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ @@ -2265,7 +2482,7 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; } } else { /* An SFN entry is found */ - if (!ord && sum == sum_sfn(dp->dir)) break; /* LFN matched? */ + if (ord == 0 && sum == sum_sfn(dp->dir)) break; /* LFN matched? */ if (!(dp->fn[NSFLAG] & NS_LOSS) && !mem_cmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */ ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ } @@ -2283,7 +2500,7 @@ FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Register an object to the directory */ /*-----------------------------------------------------------------------*/ @@ -2295,7 +2512,7 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S { FRESULT res; FATFS *fs = dp->obj.fs; -#if _USE_LFN != 0 /* LFN configuration */ +#if FF_USE_LFN /* LFN configuration */ UINT n, nlen, nent; BYTE sn[12], sum; @@ -2303,35 +2520,38 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S if (dp->fn[NSFLAG] & (NS_DOT | NS_NONAME)) return FR_INVALID_NAME; /* Check name validity */ for (nlen = 0; fs->lfnbuf[nlen]; nlen++) ; /* Get lfn length */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ - DIR dj; - nent = (nlen + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */ res = dir_alloc(dp, nent); /* Allocate entries */ if (res != FR_OK) return res; dp->blk_ofs = dp->dptr - SZDIRE * (nent - 1); /* Set the allocated entry block offset */ - if (dp->obj.sclust != 0 && (dp->obj.stat & 4)) { /* Has the sub-directory been stretched? */ - dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */ - res = fill_first_frag(&dp->obj); /* Fill first fragment on the FAT if needed */ + if (dp->obj.stat & 4) { /* Has the directory been stretched? */ + dp->obj.stat &= ~4; + res = fill_first_frag(&dp->obj); /* Fill the first fragment on the FAT if needed */ if (res != FR_OK) return res; - res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ - if (res != FR_OK) return res; - res = load_obj_dir(&dj, &dp->obj); /* Load the object status */ - if (res != FR_OK) return res; - st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ - st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); - fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; - res = store_xdir(&dj); /* Store the object status */ + res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill the last fragment on the FAT if needed */ if (res != FR_OK) return res; + if (dp->obj.sclust != 0) { /* Is it a sub directory? */ + DIR dj; + + res = load_obj_xdir(&dj, &dp->obj); /* Load the object status */ + if (res != FR_OK) return res; + dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */ + st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); /* Update the allocation status */ + st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); + fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; + res = store_xdir(&dj); /* Store the object status */ + if (res != FR_OK) return res; + } } create_xdir(fs->dirbuf, fs->lfnbuf); /* Create on-memory directory block to be written later */ return FR_OK; } #endif - /* On the FAT12/16/32 volume */ + /* On the FAT/FAT32 volume */ mem_cpy(sn, dp->fn, 12); if (sn[NSFLAG] & NS_LOSS) { /* When LFN is out of 8.3 format, generate a numbered name */ dp->fn[NSFLAG] = NS_NOLFN; /* Find only SFN */ @@ -2373,7 +2593,7 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S if (res == FR_OK) { mem_set(dp->dir, 0, SZDIRE); /* Clean the entry */ mem_cpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */ -#if _USE_LFN != 0 +#if FF_USE_LFN dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */ #endif fs->wflag = 1; @@ -2383,11 +2603,11 @@ FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many S return res; } -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ -#if !_FS_READONLY && _FS_MINIMIZE == 0 +#if !FF_FS_READONLY && FF_FS_MINIMIZE == 0 /*-----------------------------------------------------------------------*/ /* Remove an object from the directory */ /*-----------------------------------------------------------------------*/ @@ -2399,7 +2619,7 @@ FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ { FRESULT res; FATFS *fs = dp->obj.fs; -#if _USE_LFN != 0 /* LFN configuration */ +#if FF_USE_LFN /* LFN configuration */ DWORD last = dp->dptr; res = (dp->blk_ofs == 0xFFFFFFFF) ? FR_OK : dir_sdi(dp, dp->blk_ofs); /* Goto top of the entry block if LFN is exist */ @@ -2407,11 +2627,10 @@ FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ do { res = move_window(fs, dp->sect); if (res != FR_OK) break; - /* Mark an entry 'deleted' */ - if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ - dp->dir[XDIR_Type] &= 0x7F; - } else { /* On the FAT12/16/32 volume */ - dp->dir[DIR_Name] = DDEM; + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + dp->dir[XDIR_Type] &= 0x7F; /* Clear the entry InUse flag. */ + } else { /* On the FAT/FAT32 volume */ + dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'. */ } fs->wflag = 1; if (dp->dptr >= last) break; /* If reached last entry then all entries of the object has been deleted. */ @@ -2423,7 +2642,7 @@ FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ res = move_window(fs, dp->sect); if (res == FR_OK) { - dp->dir[DIR_Name] = DDEM; + dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'.*/ fs->wflag = 1; } #endif @@ -2431,138 +2650,149 @@ FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ return res; } -#endif /* !_FS_READONLY && _FS_MINIMIZE == 0 */ +#endif /* !FF_FS_READONLY && FF_FS_MINIMIZE == 0 */ -#if _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 /*-----------------------------------------------------------------------*/ /* Get file information from directory entry */ /*-----------------------------------------------------------------------*/ static -void get_fileinfo ( /* No return code */ - DIR* dp, /* Pointer to the directory object */ - FILINFO* fno /* Pointer to the file information to be filled */ +void get_fileinfo ( + DIR* dp, /* Pointer to the directory object */ + FILINFO* fno /* Pointer to the file information to be filled */ ) { - UINT i, j; - TCHAR c; - DWORD tm; -#if _USE_LFN != 0 - WCHAR w, lfv; + UINT si, di; +#if FF_USE_LFN + WCHAR wc, hs; FATFS *fs = dp->obj.fs; +#else + TCHAR c; #endif - fno->fname[0] = 0; /* Invaidate file info */ - if (!dp->sect) return; /* Exit if read pointer has reached end of directory */ + fno->fname[0] = 0; /* Invaidate file info */ + if (dp->sect == 0) return; /* Exit if read pointer has reached end of directory */ -#if _USE_LFN != 0 /* LFN configuration */ -#if _FS_EXFAT +#if FF_USE_LFN /* LFN configuration */ +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ - get_xdir_info(fs->dirbuf, fno); + get_xfileinfo(fs->dirbuf, fno); return; } else #endif - { /* On the FAT12/16/32 volume */ + { /* On the FAT/FAT32 volume */ if (dp->blk_ofs != 0xFFFFFFFF) { /* Get LFN if available */ - i = j = 0; - while ((w = fs->lfnbuf[j++]) != 0) { /* Get an LFN character */ -#if !_LFN_UNICODE - w = ff_convert(w, 0); /* Unicode -> OEM */ - if (w == 0) { i = 0; break; } /* No LFN if it could not be converted */ - if (_DF1S && w >= 0x100) { /* Put 1st byte if it is a DBC (always false at SBCS cfg) */ - fno->fname[i++] = (char)(w >> 8); + si = di = hs = 0; + while (fs->lfnbuf[si] != 0) { + wc = fs->lfnbuf[si++]; /* Get an LFN character (UTF-16) */ + if (hs == 0 && IsSurrogate(wc)) { /* Is it a surrogate? */ + hs = wc; continue; /* Get low surrogate */ } -#endif - if (i >= _MAX_LFN) { i = 0; break; } /* No LFN if buffer overflow */ - fno->fname[i++] = (TCHAR)w; + wc = put_utf((DWORD)hs << 16 | wc, &fno->fname[di], FF_LFN_BUF - di); /* Store it in UTF-16 or UTF-8 encoding */ + if (wc == 0) { di = 0; break; } /* Invalid char or buffer overflow? */ + di += wc; + hs = 0; } - fno->fname[i] = 0; /* Terminate the LFN */ + if (hs != 0) di = 0; /* Broken surrogate pair? */ + fno->fname[di] = 0; /* Terminate the LFN (null string means LFN is invalid) */ } } - i = j = 0; - lfv = fno->fname[i]; /* LFN is exist if non-zero */ - while (i < 11) { /* Copy name body and extension */ - c = (TCHAR)dp->dir[i++]; - if (c == ' ') continue; /* Skip padding spaces */ - if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ - if (i == 9) { /* Insert a . if extension is exist */ - if (!lfv) fno->fname[j] = '.'; - fno->altname[j++] = '.'; + si = di = 0; + while (si < 11) { /* Get SFN from SFN entry */ + wc = dp->dir[si++]; /* Get a char */ + if (wc == ' ') continue; /* Skip padding spaces */ + if (wc == RDDEM) wc = DDEM; /* Restore replaced DDEM character */ + if (si == 9 && di < FF_SFN_BUF) fno->altname[di++] = '.'; /* Insert a . if extension is exist */ +#if FF_LFN_UNICODE >= 1 /* Unicode output */ + if (dbc_1st((BYTE)wc) && si != 8 && si != 11 && dbc_2nd(dp->dir[si])) { /* Make a DBC if needed */ + wc = wc << 8 | dp->dir[si++]; } -#if _LFN_UNICODE - if (IsDBCS1(c) && i != 8 && i != 11 && IsDBCS2(dp->dir[i])) { - c = c << 8 | dp->dir[i++]; - } - c = ff_convert(c, 1); /* OEM -> Unicode */ - if (!c) c = '?'; + wc = ff_oem2uni(wc, CODEPAGE); /* ANSI/OEM -> Unicode */ + if (wc == 0) { di = 0; break; } /* Wrong char in the current code page? */ + wc = put_utf(wc, &fno->altname[di], FF_SFN_BUF - di); /* Store it in UTF-16 or UTF-8 */ + if (wc == 0) { di = 0; break; } /* Buffer overflow? */ + di += wc; +#else /* ANSI/OEM output */ + fno->altname[di++] = (TCHAR)wc; /* Store it without any conversion */ #endif - fno->altname[j] = c; - if (!lfv) { - if (IsUpper(c) && (dp->dir[DIR_NTres] & ((i >= 9) ? NS_EXT : NS_BODY))) { - c += 0x20; /* To lower */ + } + fno->altname[di] = 0; /* Terminate the SFN (null string means SFN is invalid) */ + + if (fno->fname[0] == 0) { /* If LFN is invalid, altname[] needs to be copied to fname[] */ + if (di == 0) { /* If LFN and SFN both are invalid, this object is inaccesible */ + fno->fname[di++] = '?'; + } else { + for (si = di = 0; fno->altname[si]; si++, di++) { /* Copy altname[] to fname[] with case information */ + wc = (WCHAR)fno->altname[si]; + if (IsUpper(wc) && (dp->dir[DIR_NTres] & ((si >= 9) ? NS_EXT : NS_BODY))) wc += 0x20; + fno->fname[di] = (TCHAR)wc; } - fno->fname[j] = c; } - j++; + fno->fname[di] = 0; /* Terminate the LFN */ + if (!dp->dir[DIR_NTres]) fno->altname[0] = 0; /* Altname is not needed if neither LFN nor case info is exist. */ } - if (!lfv) { - fno->fname[j] = 0; - if (!dp->dir[DIR_NTres]) j = 0; /* Altname is no longer needed if neither LFN nor case info is exist. */ - } - fno->altname[j] = 0; /* Terminate the SFN */ #else /* Non-LFN configuration */ - i = j = 0; - while (i < 11) { /* Copy name body and extension */ - c = (TCHAR)dp->dir[i++]; - if (c == ' ') continue; /* Skip padding spaces */ - if (c == RDDEM) c = (TCHAR)DDEM; /* Restore replaced DDEM character */ - if (i == 9) fno->fname[j++] = '.'; /* Insert a . if extension is exist */ - fno->fname[j++] = c; + si = di = 0; + while (si < 11) { /* Copy name body and extension */ + c = (TCHAR)dp->dir[si++]; + if (c == ' ') continue; /* Skip padding spaces */ + if (c == RDDEM) c = DDEM; /* Restore replaced DDEM character */ + if (si == 9) fno->fname[di++] = '.';/* Insert a . if extension is exist */ + fno->fname[di++] = c; } - fno->fname[j] = 0; + fno->fname[di] = 0; #endif - fno->fattrib = dp->dir[DIR_Attr]; /* Attribute */ - fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */ - tm = ld_dword(dp->dir + DIR_ModTime); /* Timestamp */ - fno->ftime = (WORD)tm; fno->fdate = (WORD)(tm >> 16); + fno->fattrib = dp->dir[DIR_Attr]; /* Attribute */ + fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */ + fno->ftime = ld_word(dp->dir + DIR_ModTime + 0); /* Time */ + fno->fdate = ld_word(dp->dir + DIR_ModTime + 2); /* Date */ } -#endif /* _FS_MINIMIZE <= 1 || _FS_RPATH >= 2 */ +#endif /* FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 */ -#if _USE_FIND && _FS_MINIMIZE <= 1 +#if FF_USE_FIND && FF_FS_MINIMIZE <= 1 /*-----------------------------------------------------------------------*/ /* Pattern matching */ /*-----------------------------------------------------------------------*/ static -WCHAR get_achar ( /* Get a character and advances ptr 1 or 2 */ - const TCHAR** ptr /* Pointer to pointer to the SBCS/DBCS/Unicode string */ +DWORD get_achar ( /* Get a character and advances ptr */ + const TCHAR** ptr /* Pointer to pointer to the ANSI/OEM or Unicode string */ ) { -#if !_LFN_UNICODE - WCHAR chr; + DWORD chr; - chr = (BYTE)*(*ptr)++; /* Get a byte */ - if (IsLower(chr)) chr -= 0x20; /* To upper ASCII char */ -#ifdef _EXCVT + +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 /* Unicode input */ + chr = tchar2uni(ptr); + if (chr == 0xFFFFFFFF) chr = 0; /* Wrong UTF encoding is recognized as end of the string */ + chr = ff_wtoupper(chr); + +#else /* ANSI/OEM input */ + chr = (BYTE)*(*ptr)++; /* Get a byte */ + if (IsLower(chr)) chr -= 0x20; /* To upper ASCII char */ +#if FF_CODE_PAGE == 0 + if (ExCvt && chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */ +#elif FF_CODE_PAGE < 900 if (chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */ -#else - if (IsDBCS1(chr) && IsDBCS2(**ptr)) { /* Get DBC 2nd byte if needed */ - chr = chr << 8 | (BYTE)*(*ptr)++; +#endif +#if FF_CODE_PAGE == 0 || FF_CODE_PAGE >= 900 + if (dbc_1st((BYTE)chr)) { /* Get DBC 2nd byte if needed */ + chr = dbc_2nd((BYTE)**ptr) ? chr << 8 | (BYTE)*(*ptr)++ : 0; } #endif - return chr; -#else - return ff_wtoupper(*(*ptr)++); /* Get a word and to upper */ + #endif + return chr; } @@ -2575,21 +2805,21 @@ int pattern_matching ( /* 0:not matched, 1:matched */ ) { const TCHAR *pp, *np; - WCHAR pc, nc; + DWORD pc, nc; int nm, nx; while (skip--) { /* Pre-skip name chars */ if (!get_achar(&nam)) return 0; /* Branch mismatched if less name chars */ } - if (!*pat && inf) return 1; /* (short circuit) */ + if (*pat == 0 && inf) return 1; /* (short circuit) */ do { pp = pat; np = nam; /* Top of pattern and name to match */ for (;;) { if (*pp == '?' || *pp == '*') { /* Wildcard? */ nm = nx = 0; - do { /* Analyze the wildcard chars */ + do { /* Analyze the wildcard block */ if (*pp++ == '?') nm++; else nx = 1; } while (*pp == '?' || *pp == '*'); if (pattern_matching(pp, np, nm, nx)) return 1; /* Test new branch (recurs upto number of wildcard blocks in the pattern) */ @@ -2606,7 +2836,7 @@ int pattern_matching ( /* 0:not matched, 1:matched */ return 0; } -#endif /* _USE_FIND && _FS_MINIMIZE <= 1 */ +#endif /* FF_USE_FIND && FF_FS_MINIMIZE <= 1 */ @@ -2620,125 +2850,128 @@ FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ const TCHAR** path /* Pointer to pointer to the segment in the path string */ ) { -#if _USE_LFN != 0 /* LFN configuration */ +#if FF_USE_LFN /* LFN configuration */ BYTE b, cf; - WCHAR w, *lfn; + WCHAR wc, *lfn; + DWORD uc; UINT i, ni, si, di; const TCHAR *p; - /* Create LFN in Unicode */ - p = *path; lfn = dp->obj.fs->lfnbuf; si = di = 0; + + /* Create LFN into LFN working buffer */ + p = *path; lfn = dp->obj.fs->lfnbuf; di = 0; for (;;) { - w = p[si++]; /* Get a character */ - if (w < ' ') break; /* Break if end of the path name */ - if (w == '/' || w == '\\') { /* Break if a separator is found */ - while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ - break; - } - if (di >= _MAX_LFN) return FR_INVALID_NAME; /* Reject too long name */ -#if !_LFN_UNICODE - w &= 0xFF; - if (IsDBCS1(w)) { /* Check if it is a DBC 1st byte (always false on SBCS cfg) */ - b = (BYTE)p[si++]; /* Get 2nd byte */ - w = (w << 8) + b; /* Create a DBC */ - if (!IsDBCS2(b)) return FR_INVALID_NAME; /* Reject invalid sequence */ - } - w = ff_convert(w, 1); /* Convert ANSI/OEM to Unicode */ - if (!w) return FR_INVALID_NAME; /* Reject invalid code */ -#endif - if (w < 0x80 && chk_chr("\"*:<>\?|\x7F", w)) return FR_INVALID_NAME; /* Reject illegal characters for LFN */ - lfn[di++] = w; /* Store the Unicode character */ + uc = tchar2uni(&p); /* Get a character */ + if (uc == 0xFFFFFFFF) return FR_INVALID_NAME; /* Invalid code or UTF decode error */ + if (uc >= 0x10000) lfn[di++] = (WCHAR)(uc >> 16); /* Store high surrogate if needed */ + wc = (WCHAR)uc; + if (wc < ' ' || wc == '/' || wc == '\\') break; /* Break if end of the path or a separator is found */ + if (wc < 0x80 && chk_chr("\"*:<>\?|\x7F", wc)) return FR_INVALID_NAME; /* Reject illegal characters for LFN */ + if (di >= FF_MAX_LFN) return FR_INVALID_NAME; /* Reject too long name */ + lfn[di++] = wc; /* Store the Unicode character */ } - *path = &p[si]; /* Return pointer to the next segment */ - cf = (w < ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ -#if _FS_RPATH != 0 + while (*p == '/' || *p == '\\') p++; /* Skip duplicated separators if exist */ + *path = p; /* Return pointer to the next segment */ + cf = (wc < ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ + +#if FF_FS_RPATH != 0 if ((di == 1 && lfn[di - 1] == '.') || (di == 2 && lfn[di - 1] == '.' && lfn[di - 2] == '.')) { /* Is this segment a dot name? */ lfn[di] = 0; - for (i = 0; i < 11; i++) /* Create dot name for SFN entry */ + for (i = 0; i < 11; i++) { /* Create dot name for SFN entry */ dp->fn[i] = (i < di) ? '.' : ' '; + } dp->fn[i] = cf | NS_DOT; /* This is a dot entry */ return FR_OK; } #endif while (di) { /* Snip off trailing spaces and dots if exist */ - w = lfn[di - 1]; - if (w != ' ' && w != '.') break; + wc = lfn[di - 1]; + if (wc != ' ' && wc != '.') break; di--; } - lfn[di] = 0; /* LFN is created */ - if (di == 0) return FR_INVALID_NAME; /* Reject nul name */ + lfn[di] = 0; /* LFN is created into the working buffer */ + if (di == 0) return FR_INVALID_NAME; /* Reject null name */ /* Create SFN in directory form */ - mem_set(dp->fn, ' ', 11); - for (si = 0; lfn[si] == ' ' || lfn[si] == '.'; si++) ; /* Strip leading spaces and dots */ - if (si) cf |= NS_LOSS | NS_LFN; - while (di && lfn[di - 1] != '.') di--; /* Find extension (di<=si: no extension) */ + for (si = 0; lfn[si] == ' '; si++) ; /* Remove leading spaces */ + if (si > 0 || lfn[si] == '.') cf |= NS_LOSS | NS_LFN; /* Is there any leading space or dot? */ + while (di > 0 && lfn[di - 1] != '.') di--; /* Find last dot (di<=si: no extension) */ + mem_set(dp->fn, ' ', 11); i = b = 0; ni = 8; for (;;) { - w = lfn[si++]; /* Get an LFN character */ - if (!w) break; /* Break on end of the LFN */ - if (w == ' ' || (w == '.' && si != di)) { /* Remove spaces and dots */ - cf |= NS_LOSS | NS_LFN; continue; + wc = lfn[si++]; /* Get an LFN character */ + if (wc == 0) break; /* Break on end of the LFN */ + if (wc == ' ' || (wc == '.' && si != di)) { /* Remove embedded spaces and dots */ + cf |= NS_LOSS | NS_LFN; + continue; } - if (i >= ni || si == di) { /* Extension or end of SFN */ - if (ni == 11) { /* Long extension */ - cf |= NS_LOSS | NS_LFN; break; + if (i >= ni || si == di) { /* End of field? */ + if (ni == 11) { /* Name extension overflow? */ + cf |= NS_LOSS | NS_LFN; + break; } - if (si != di) cf |= NS_LOSS | NS_LFN; /* Out of 8.3 format */ - if (si > di) break; /* No extension */ - si = di; i = 8; ni = 11; /* Enter extension section */ - b <<= 2; continue; + if (si != di) cf |= NS_LOSS | NS_LFN; /* Name body overflow? */ + if (si > di) break; /* No name extension? */ + si = di; i = 8; ni = 11; b <<= 2; /* Enter name extension */ + continue; } - if (w >= 0x80) { /* Non ASCII character */ -#ifdef _EXCVT - w = ff_convert(w, 0); /* Unicode -> OEM code */ - if (w) w = ExCvt[w - 0x80]; /* Convert extended character to upper (SBCS) */ -#else - w = ff_convert(ff_wtoupper(w), 0); /* Upper converted Unicode -> OEM code */ + if (wc >= 0x80) { /* Is this a non-ASCII character? */ + cf |= NS_LFN; /* LFN entry needs to be created */ +#if FF_CODE_PAGE == 0 + if (ExCvt) { /* At SBCS */ + wc = ff_uni2oem(wc, CODEPAGE); /* Unicode ==> ANSI/OEM code */ + if (wc & 0x80) wc = ExCvt[wc & 0x7F]; /* Convert extended character to upper (SBCS) */ + } else { /* At DBCS */ + wc = ff_uni2oem(ff_wtoupper(wc), CODEPAGE); /* Unicode ==> Upper convert ==> ANSI/OEM code */ + } +#elif FF_CODE_PAGE < 900 /* SBCS cfg */ + wc = ff_uni2oem(wc, CODEPAGE); /* Unicode ==> ANSI/OEM code */ + if (wc & 0x80) wc = ExCvt[wc & 0x7F]; /* Convert extended character to upper (SBCS) */ +#else /* DBCS cfg */ + wc = ff_uni2oem(ff_wtoupper(wc), CODEPAGE); /* Unicode ==> Upper convert ==> ANSI/OEM code */ #endif - cf |= NS_LFN; /* Force create LFN entry */ } - if (_DF1S && w >= 0x100) { /* Is this DBC? (always false at SBCS cfg) */ - if (i >= ni - 1) { - cf |= NS_LOSS | NS_LFN; i = ni; continue; + if (wc >= 0x100) { /* Is this a DBC? */ + if (i >= ni - 1) { /* Field overflow? */ + cf |= NS_LOSS | NS_LFN; + i = ni; continue; /* Next field */ } - dp->fn[i++] = (BYTE)(w >> 8); + dp->fn[i++] = (BYTE)(wc >> 8); /* Put 1st byte */ } else { /* SBC */ - if (!w || chk_chr("+,;=[]", w)) { /* Replace illegal characters for SFN */ - w = '_'; cf |= NS_LOSS | NS_LFN;/* Lossy conversion */ + if (wc == 0 || chk_chr("+,;=[]", wc)) { /* Replace illegal characters for SFN if needed */ + wc = '_'; cf |= NS_LOSS | NS_LFN;/* Lossy conversion */ } else { - if (IsUpper(w)) { /* ASCII large capital */ + if (IsUpper(wc)) { /* ASCII upper case? */ b |= 2; - } else { - if (IsLower(w)) { /* ASCII small capital */ - b |= 1; w -= 0x20; - } + } + if (IsLower(wc)) { /* ASCII lower case? */ + b |= 1; wc -= 0x20; } } } - dp->fn[i++] = (BYTE)w; + dp->fn[i++] = (BYTE)wc; } if (dp->fn[0] == DDEM) dp->fn[0] = RDDEM; /* If the first character collides with DDEM, replace it with RDDEM */ - if (ni == 8) b <<= 2; - if ((b & 0x0C) == 0x0C || (b & 0x03) == 0x03) cf |= NS_LFN; /* Create LFN entry when there are composite capitals */ - if (!(cf & NS_LFN)) { /* When LFN is in 8.3 format without extended character, NT flags are created */ - if ((b & 0x03) == 0x01) cf |= NS_EXT; /* NT flag (Extension has only small capital) */ - if ((b & 0x0C) == 0x04) cf |= NS_BODY; /* NT flag (Filename has only small capital) */ + if (ni == 8) b <<= 2; /* Shift capital flags if no extension */ + if ((b & 0x0C) == 0x0C || (b & 0x03) == 0x03) cf |= NS_LFN; /* LFN entry needs to be created if composite capitals */ + if (!(cf & NS_LFN)) { /* When LFN is in 8.3 format without extended character, NT flags are created */ + if (b & 0x01) cf |= NS_EXT; /* NT flag (Extension has small capital letters only) */ + if (b & 0x04) cf |= NS_BODY; /* NT flag (Body has small capital letters only) */ } - dp->fn[NSFLAG] = cf; /* SFN is created */ + dp->fn[NSFLAG] = cf; /* SFN is created into dp->fn[] */ return FR_OK; -#else /* _USE_LFN != 0 : Non-LFN configuration */ +#else /* FF_USE_LFN : Non-LFN configuration */ BYTE c, d, *sfn; UINT ni, si, i; const char *p; @@ -2747,7 +2980,7 @@ FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ p = *path; sfn = dp->fn; mem_set(sfn, ' ', 11); si = i = 0; ni = 8; -#if _FS_RPATH != 0 +#if FF_FS_RPATH != 0 if (p[si] == '.') { /* Is this a dot entry? */ for (;;) { c = (BYTE)p[si++]; @@ -2761,29 +2994,29 @@ FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ } #endif for (;;) { - c = (BYTE)p[si++]; + c = (BYTE)p[si++]; /* Get a byte */ if (c <= ' ') break; /* Break if end of the path name */ if (c == '/' || c == '\\') { /* Break if a separator is found */ while (p[si] == '/' || p[si] == '\\') si++; /* Skip duplicated separator if exist */ break; } - if (c == '.' || i >= ni) { /* End of body or over size? */ - if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Over size or invalid dot */ - i = 8; ni = 11; /* Goto extension */ + if (c == '.' || i >= ni) { /* End of body or field overflow? */ + if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Field overflow or invalid dot? */ + i = 8; ni = 11; /* Enter file extension field */ continue; } - if (c >= 0x80) { /* Extended character? */ -#ifdef _EXCVT - c = ExCvt[c - 0x80]; /* To upper extended characters (SBCS cfg) */ -#else -#if !_DF1S - return FR_INVALID_NAME; /* Reject extended characters (ASCII only cfg) */ -#endif -#endif +#if FF_CODE_PAGE == 0 + if (ExCvt && c >= 0x80) { /* Is SBC extended character? */ + c = ExCvt[c & 0x7F]; /* To upper SBC extended character */ } - if (IsDBCS1(c)) { /* Check if it is a DBC 1st byte (always false at SBCS cfg.) */ +#elif FF_CODE_PAGE < 900 + if (c >= 0x80) { /* Is SBC extended character? */ + c = ExCvt[c & 0x7F]; /* To upper SBC extended character */ + } +#endif + if (dbc_1st(c)) { /* Check if it is a DBC 1st byte */ d = (BYTE)p[si++]; /* Get 2nd byte */ - if (!IsDBCS2(d) || i >= ni - 1) return FR_INVALID_NAME; /* Reject invalid DBC */ + if (!dbc_2nd(d) || i >= ni - 1) return FR_INVALID_NAME; /* Reject invalid DBC */ sfn[i++] = c; sfn[i++] = d; } else { /* SBC */ @@ -2799,7 +3032,7 @@ FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ sfn[NSFLAG] = (c <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ return FR_OK; -#endif /* _USE_LFN != 0 */ +#endif /* FF_USE_LFN */ } @@ -2817,32 +3050,31 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ { FRESULT res; BYTE ns; - _FDID *obj = &dp->obj; - FATFS *fs = obj->fs; + FATFS *fs = dp->obj.fs; -#if _FS_RPATH != 0 +#if FF_FS_RPATH != 0 if (*path != '/' && *path != '\\') { /* Without heading separator */ - obj->sclust = fs->cdir; /* Start from current directory */ + dp->obj.sclust = fs->cdir; /* Start from current directory */ } else #endif { /* With heading separator */ while (*path == '/' || *path == '\\') path++; /* Strip heading separator */ - obj->sclust = 0; /* Start from root directory */ + dp->obj.sclust = 0; /* Start from root directory */ } -#if _FS_EXFAT - obj->n_frag = 0; /* Invalidate last fragment counter of the object */ -#if _FS_RPATH != 0 - if (fs->fs_type == FS_EXFAT && obj->sclust) { /* Retrieve the sub-directory status if needed */ +#if FF_FS_EXFAT + dp->obj.n_frag = 0; /* Invalidate last fragment counter of the object */ +#if FF_FS_RPATH != 0 + if (fs->fs_type == FS_EXFAT && dp->obj.sclust) { /* exFAT: Retrieve the sub-directory's status */ DIR dj; - obj->c_scl = fs->cdc_scl; - obj->c_size = fs->cdc_size; - obj->c_ofs = fs->cdc_ofs; - res = load_obj_dir(&dj, obj); + dp->obj.c_scl = fs->cdc_scl; + dp->obj.c_size = fs->cdc_size; + dp->obj.c_ofs = fs->cdc_ofs; + res = load_obj_xdir(&dj, &dp->obj); if (res != FR_OK) return res; - obj->objsize = ld_dword(fs->dirbuf + XDIR_FileSize); - obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; + dp->obj.objsize = ld_dword(fs->dirbuf + XDIR_FileSize); + dp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; } #endif #endif @@ -2859,7 +3091,7 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ ns = dp->fn[NSFLAG]; if (res != FR_OK) { /* Failed to find the object */ if (res == FR_NO_FILE) { /* Object is not found */ - if (_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */ + if (FF_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */ if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */ dp->fn[NSFLAG] = NS_NONAME; res = FR_OK; @@ -2871,21 +3103,19 @@ FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ } if (ns & NS_LAST) break; /* Last segment matched. Function completed. */ /* Get into the sub-directory */ - if (!(obj->attr & AM_DIR)) { /* It is not a sub-directory and cannot follow */ + if (!(dp->obj.attr & AM_DIR)) { /* It is not a sub-directory and cannot follow */ res = FR_NO_PATH; break; } -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* Save containing directory information for next dir */ - obj->c_scl = obj->sclust; - obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; - obj->c_ofs = dp->blk_ofs; - obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Open next directory */ - obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; - obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); + dp->obj.c_scl = dp->obj.sclust; + dp->obj.c_size = ((DWORD)dp->obj.objsize & 0xFFFFFF00) | dp->obj.stat; + dp->obj.c_ofs = dp->blk_ofs; + init_alloc_info(fs, &dp->obj); /* Open next directory */ } else #endif { - obj->sclust = ld_clust(fs, fs->win + dp->dptr % SS(fs)); /* Open next directory */ + dp->obj.sclust = ld_clust(fs, fs->win + dp->dptr % SS(fs)); /* Open next directory */ } } } @@ -2908,26 +3138,26 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ const TCHAR *tp, *tt; UINT i; int vol = -1; -#if _STR_VOLUME_ID /* Find string drive id */ - static const char* const volid[] = {_VOLUME_STRS}; +#if FF_STR_VOLUME_ID /* Find string drive id */ + static const char* const volid[] = {FF_VOLUME_STRS}; const char *sp; char c; TCHAR tc; #endif - if (*path) { /* If the pointer is not a null */ - for (tt = *path; (UINT)*tt >= (_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find ':' in the path */ - if (*tt == ':') { /* If a ':' is exist in the path name */ + if (*path != 0) { /* If the pointer is not a null */ + for (tt = *path; (UINT)*tt >= (FF_USE_LFN ? ' ' : '!') && *tt != ':'; tt++) ; /* Find a colon in the path */ + if (*tt == ':') { /* If a colon is exist in the path name */ tp = *path; - i = *tp++ - '0'; - if (i < 10 && tp == tt) { /* Is there a numeric drive id? */ - if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ + i = *tp++; + if (IsDigit(i) && tp == tt) { /* Is there a numeric drive id + colon? */ + if ((i -= '0') < FF_VOLUMES) { /* If drive id is found, get the value and strip it */ vol = (int)i; *path = ++tt; } } -#if _STR_VOLUME_ID +#if FF_STR_VOLUME_ID else { /* No numeric drive number, find string drive id */ i = 0; tt++; do { @@ -2936,20 +3166,20 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ c = *sp++; tc = *tp++; if (IsLower(tc)) tc -= 0x20; } while (c && (TCHAR)c == tc); - } while ((c || tp != tt) && ++i < _VOLUMES); /* Repeat for each id until pattern match */ - if (i < _VOLUMES) { /* If a drive id is found, get the value and strip it */ + } while ((c || tp != tt) && ++i < FF_VOLUMES); /* Repeat for each id until pattern match */ + if (i < FF_VOLUMES) { /* If a drive id is found, get the value and strip it */ vol = (int)i; *path = tt; } } #endif - return vol; - } -#if _FS_RPATH != 0 && _VOLUMES >= 2 - vol = CurrVol; /* Current drive */ + } else { /* No volume id and use default drive */ +#if FF_FS_RPATH != 0 && FF_VOLUMES >= 2 + vol = CurrVol; /* Current drive */ #else - vol = 0; /* Drive 0 */ + vol = 0; /* Drive 0 */ #endif + } } return vol; } @@ -2958,12 +3188,12 @@ int get_ldnumber ( /* Returns logical drive number (-1:invalid drive) */ /*-----------------------------------------------------------------------*/ -/* Load a sector and check if it is an FAT boot sector */ +/* Load a sector and check if it is an FAT VBR */ /*-----------------------------------------------------------------------*/ static BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk error */ - FATFS* fs, /* File system object */ + FATFS* fs, /* Filesystem object */ DWORD sect /* Sector# (lba) to load and check if it is an FAT-VBR or not */ ) { @@ -2972,27 +3202,27 @@ BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4:Disk er if (ld_word(fs->win + BS_55AA) != 0xAA55) return 3; /* Check boot record signature (always placed here even if the sector size is >512) */ - if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90)) { - if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string */ - if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */ - } -#if _FS_EXFAT - if (!mem_cmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) return 1; +#if FF_FS_EXFAT + if (!mem_cmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) return 1; /* Check if exFAT VBR */ #endif - return 2; + if (fs->win[BS_JmpBoot] == 0xE9 || fs->win[BS_JmpBoot] == 0xEB || fs->win[BS_JmpBoot] == 0xE8) { /* Valid JumpBoot code? */ + if (!mem_cmp(fs->win + BS_FilSysType, "FAT", 3)) return 0; /* Is it an FAT VBR? */ + if (!mem_cmp(fs->win + BS_FilSysType32, "FAT32", 5)) return 0; /* Is it an FAT32 VBR? */ + } + return 2; /* Valid BS but not FAT */ } /*-----------------------------------------------------------------------*/ -/* Find logical drive and check if the volume is mounted */ +/* Determine logical drive number and mount the volume if needed */ /*-----------------------------------------------------------------------*/ static FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ const TCHAR** path, /* Pointer to pointer to the path name (drive number) */ - FATFS** rfs, /* Pointer to pointer to the found file system object */ + FATFS** rfs, /* Pointer to pointer to the found filesystem object */ BYTE mode /* !=0: Check write protection for write access */ ) { @@ -3010,39 +3240,40 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ vol = get_ldnumber(path); if (vol < 0) return FR_INVALID_DRIVE; - /* Check if the file system object is valid or not */ - fs = FatFs[vol]; /* Get pointer to the file system object */ - if (!fs) return FR_NOT_ENABLED; /* Is the file system object available? */ - - ENTER_FF(fs); /* Lock the volume */ - *rfs = fs; /* Return pointer to the file system object */ + /* Check if the filesystem object is valid or not */ + fs = FatFs[vol]; /* Get pointer to the filesystem object */ + if (!fs) return FR_NOT_ENABLED; /* Is the filesystem object available? */ +#if FF_FS_REENTRANT + if (!lock_fs(fs)) return FR_TIMEOUT; /* Lock the volume */ +#endif + *rfs = fs; /* Return pointer to the filesystem object */ mode &= (BYTE)~FA_READ; /* Desired access mode, write access or not */ - if (fs->fs_type) { /* If the volume has been mounted */ - stat = disk_status(fs->drv); + if (fs->fs_type != 0) { /* If the volume has been mounted */ + stat = disk_status(fs->pdrv); if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ - if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ + if (!FF_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ return FR_WRITE_PROTECTED; } - return FR_OK; /* The file system object is valid */ + return FR_OK; /* The filesystem object is valid */ } } - /* The file system object is not valid. */ - /* Following code attempts to mount the volume. (analyze BPB and initialize the fs object) */ + /* The filesystem object is not valid. */ + /* Following code attempts to mount the volume. (analyze BPB and initialize the filesystem object) */ - fs->fs_type = 0; /* Clear the file system object */ - fs->drv = LD2PD(vol); /* Bind the logical drive and a physical drive */ - stat = disk_initialize(fs->drv); /* Initialize the physical drive */ + fs->fs_type = 0; /* Clear the filesystem object */ + fs->pdrv = LD2PD(vol); /* Bind the logical drive and a physical drive */ + stat = disk_initialize(fs->pdrv); /* Initialize the physical drive */ if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ } - if (!_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ + if (!FF_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ return FR_WRITE_PROTECTED; } -#if _MAX_SS != _MIN_SS /* Get sector size (multiple sector size cfg only) */ - if (disk_ioctl(fs->drv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; - if (SS(fs) > _MAX_SS || SS(fs) < _MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; +#if FF_MAX_SS != FF_MIN_SS /* Get sector size (multiple sector size cfg only) */ + if (disk_ioctl(fs->pdrv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; + if (SS(fs) > FF_MAX_SS || SS(fs) < FF_MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; #endif /* Find an FAT partition on the drive. Supports only generic partitioning rules, FDISK and SFD. */ @@ -3054,7 +3285,7 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0; } i = LD2PT(vol); /* Partition number: 0:auto, 1-4:forced */ - if (i) i--; + if (i != 0) i--; do { /* Find an FAT volume */ bsect = br[i]; fmt = bsect ? check_fs(fs, bsect) : 3; /* Check the partition */ @@ -3063,16 +3294,16 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */ if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ - /* An FAT volume is found (bsect). Following code initializes the file system object */ + /* An FAT volume is found (bsect). Following code initializes the filesystem object */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fmt == 1) { QWORD maxlba; for (i = BPB_ZeroedEx; i < BPB_ZeroedEx + 53 && fs->win[i] == 0; i++) ; /* Check zero filler */ if (i < BPB_ZeroedEx + 53) return FR_NO_FILESYSTEM; - if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT revision (Must be 1.0) */ + if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT version (must be version 1.0) */ if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) { /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ return FR_NO_FILESYSTEM; @@ -3101,17 +3332,17 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ fs->dirbase = ld_dword(fs->win + BPB_RootClusEx); /* Check if bitmap location is in assumption (at the first cluster) */ - if (move_window(fs, clust2sect(fs, fs->dirbase)) != FR_OK) return FR_DISK_ERR; + if (move_window(fs, clst2sect(fs, fs->dirbase)) != FR_OK) return FR_DISK_ERR; for (i = 0; i < SS(fs); i += SZDIRE) { if (fs->win[i] == 0x81 && ld_dword(fs->win + i + 20) == 2) break; /* 81 entry with cluster #2? */ } if (i == SS(fs)) return FR_NO_FILESYSTEM; -#if !_FS_READONLY +#if !FF_FS_READONLY fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ #endif fmt = FS_EXFAT; /* FAT sub-type */ } else -#endif /* _FS_EXFAT */ +#endif /* FF_FS_EXFAT */ { if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must be equal to the physical sector size) */ @@ -3140,9 +3371,11 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ - fmt = FS_FAT32; + fmt = 0; + if (nclst <= MAX_FAT32) fmt = FS_FAT32; if (nclst <= MAX_FAT16) fmt = FS_FAT16; if (nclst <= MAX_FAT12) fmt = FS_FAT12; + if (fmt == 0) return FR_NO_FILESYSTEM; /* Boundaries and Limits */ fs->n_fatent = nclst + 2; /* Number of FAT entries */ @@ -3151,55 +3384,55 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ fs->database = bsect + sysect; /* Data start sector */ if (fmt == FS_FAT32) { if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0) */ - if (fs->n_rootdir) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ + if (fs->n_rootdir != 0) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ } else { - if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM;/* (BPB_RootEntCnt must not be 0) */ + if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must not be 0) */ fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1); } if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not be less than the size needed) */ -#if !_FS_READONLY - /* Get FSINFO if available */ +#if !FF_FS_READONLY + /* Get FSInfo if available */ fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ fs->fsi_flag = 0x80; -#if (_FS_NOFSINFO & 3) != 3 - if (fmt == FS_FAT32 /* Enable FSINFO only if FAT32 and BPB_FSInfo32 == 1 */ +#if (FF_FS_NOFSINFO & 3) != 3 + if (fmt == FS_FAT32 /* Allow to update FSInfo only if BPB_FSInfo32 == 1 */ && ld_word(fs->win + BPB_FSInfo32) == 1 && move_window(fs, bsect + 1) == FR_OK) { fs->fsi_flag = 0; - if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSINFO data if available */ + if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSInfo data if available */ && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 && ld_dword(fs->win + FSI_StrucSig) == 0x61417272) { -#if (_FS_NOFSINFO & 1) == 0 +#if (FF_FS_NOFSINFO & 1) == 0 fs->free_clst = ld_dword(fs->win + FSI_Free_Count); #endif -#if (_FS_NOFSINFO & 2) == 0 +#if (FF_FS_NOFSINFO & 2) == 0 fs->last_clst = ld_dword(fs->win + FSI_Nxt_Free); #endif } } -#endif /* (_FS_NOFSINFO & 3) != 3 */ -#endif /* !_FS_READONLY */ +#endif /* (FF_FS_NOFSINFO & 3) != 3 */ +#endif /* !FF_FS_READONLY */ } fs->fs_type = fmt; /* FAT sub-type */ - fs->id = ++Fsid; /* File system mount ID */ -#if _USE_LFN == 1 + fs->id = ++Fsid; /* Volume mount ID */ +#if FF_USE_LFN == 1 fs->lfnbuf = LfnBuf; /* Static LFN working buffer */ -#if _FS_EXFAT +#if FF_FS_EXFAT fs->dirbuf = DirBuf; /* Static directory block scratchpad buuffer */ #endif #endif -#if _FS_RPATH != 0 +#if FF_FS_RPATH != 0 fs->cdir = 0; /* Initialize current directory */ #endif -#if _FS_LOCK != 0 /* Clear file lock semaphores */ +#if FF_FS_LOCK != 0 /* Clear file lock semaphores */ clear_lock(fs); #endif return FR_OK; @@ -3214,20 +3447,31 @@ FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ static FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ - _FDID* obj, /* Pointer to the _OBJ, the 1st member in the FIL/DIR object, to check validity */ - FATFS** fs /* Pointer to pointer to the owner file system object to return */ + FFOBJID* obj, /* Pointer to the FFOBJID, the 1st member in the FIL/DIR object, to check validity */ + FATFS** rfs /* Pointer to pointer to the owner filesystem object to return */ ) { - FRESULT res; + FRESULT res = FR_INVALID_OBJECT; - if (!obj || !obj->fs || !obj->fs->fs_type || obj->fs->id != obj->id || (disk_status(obj->fs->drv) & STA_NOINIT)) { - *fs = 0; - res = FR_INVALID_OBJECT; /* The object is invalid */ - } else { - *fs = obj->fs; /* Owner file sytem object */ - ENTER_FF(obj->fs); /* Lock file system */ - res = FR_OK; /* Valid object */ + + if (obj && obj->fs && obj->fs->fs_type && obj->id == obj->fs->id) { /* Test if the object is valid */ +#if FF_FS_REENTRANT + if (lock_fs(obj->fs)) { /* Obtain the filesystem object */ + if (!(disk_status(obj->fs->pdrv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialized */ + res = FR_OK; + } else { + unlock_fs(obj->fs, FR_OK); + } + } else { + res = FR_TIMEOUT; + } +#else + if (!(disk_status(obj->fs->pdrv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialized */ + res = FR_OK; + } +#endif } + *rfs = (res == FR_OK) ? obj->fs : 0; /* Corresponding filesystem object */ return res; } @@ -3247,7 +3491,7 @@ FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ /*-----------------------------------------------------------------------*/ FRESULT f_mount ( - FATFS* fs, /* Pointer to the file system object (NULL:unmount)*/ + FATFS* fs, /* Pointer to the filesystem object (NULL:unmount)*/ const TCHAR* path, /* Logical drive number to be mounted/unmounted */ BYTE opt /* Mode option 0:Do not mount (delayed mount), 1:Mount immediately */ ) @@ -3264,10 +3508,10 @@ FRESULT f_mount ( cfs = FatFs[vol]; /* Pointer to fs object */ if (cfs) { -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 clear_lock(cfs); #endif -#if _FS_REENTRANT /* Discard sync object of the current volume */ +#if FF_FS_REENTRANT /* Discard sync object of the current volume */ if (!ff_del_syncobj(cfs->sobj)) return FR_INT_ERR; #endif cfs->fs_type = 0; /* Clear old fs object */ @@ -3275,13 +3519,13 @@ FRESULT f_mount ( if (fs) { fs->fs_type = 0; /* Clear new fs object */ -#if _FS_REENTRANT /* Create sync object for the new volume */ +#if FF_FS_REENTRANT /* Create sync object for the new volume */ if (!ff_cre_syncobj((BYTE)vol, &fs->sobj)) return FR_INT_ERR; #endif } FatFs[vol] = fs; /* Register new fs object */ - if (!fs || opt != 1) return FR_OK; /* Do not mount now, it will be mounted later */ + if (opt == 0) return FR_OK; /* Do not mount now, it will be mounted later */ res = find_volume(&path, &fs, 0); /* Force mounted the volume */ LEAVE_FF(fs, res); @@ -3303,7 +3547,7 @@ FRESULT f_open ( FRESULT res; DIR dj; FATFS *fs; -#if !_FS_READONLY +#if !FF_FS_READONLY DWORD dw, cl, bcs, clst, sc; FSIZE_t ofs; #endif @@ -3313,20 +3557,20 @@ FRESULT f_open ( if (!fp) return FR_INVALID_OBJECT; /* Get logical drive */ - mode &= _FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND | FA_SEEKEND; + mode &= FF_FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND; res = find_volume(&path, &fs, mode); if (res == FR_OK) { dj.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&dj, path); /* Follow the file path */ -#if !_FS_READONLY /* R/W configuration */ +#if !FF_FS_READONLY /* Read/Write configuration */ if (res == FR_OK) { if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ res = FR_INVALID_NAME; } -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 else { - res = chk_lock(&dj, (mode & ~FA_READ) ? 1 : 0); + res = chk_lock(&dj, (mode & ~FA_READ) ? 1 : 0); /* Check if the file can be used */ } #endif } @@ -3334,7 +3578,7 @@ FRESULT f_open ( if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) { if (res != FR_OK) { /* No file, create new */ if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES; #else res = dir_register(&dj); @@ -3342,51 +3586,41 @@ FRESULT f_open ( } mode |= FA_CREATE_ALWAYS; /* File is created */ } - else { /* Any object is already existing */ + else { /* Any object with the same name is already existing */ if (dj.obj.attr & (AM_RDO | AM_DIR)) { /* Cannot overwrite it (R/O or DIR) */ res = FR_DENIED; } else { if (mode & FA_CREATE_NEW) res = FR_EXIST; /* Cannot create as new file */ } } - if (res == FR_OK && (mode & FA_CREATE_ALWAYS)) { /* Truncate it if overwrite mode */ - dw = GET_FATTIME(); -#if _FS_EXFAT + if (res == FR_OK && (mode & FA_CREATE_ALWAYS)) { /* Truncate the file if overwrite mode */ +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* Get current allocation info */ fp->obj.fs = fs; - fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); - fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; - fp->obj.n_frag = 0; - /* Initialize directory entry block */ - st_dword(fs->dirbuf + XDIR_CrtTime, dw); /* Set created time */ - fs->dirbuf[XDIR_CrtTime10] = 0; - st_dword(fs->dirbuf + XDIR_ModTime, dw); /* Set modified time */ - fs->dirbuf[XDIR_ModTime10] = 0; - fs->dirbuf[XDIR_Attr] = AM_ARC; /* Reset attribute */ - st_dword(fs->dirbuf + XDIR_FstClus, 0); /* Reset file allocation info */ - st_qword(fs->dirbuf + XDIR_FileSize, 0); - st_qword(fs->dirbuf + XDIR_ValidFileSize, 0); + init_alloc_info(fs, &fp->obj); + /* Set directory entry block initial state */ + mem_set(fs->dirbuf + 2, 0, 30); /* Clear 85 entry except for NumSec */ + mem_set(fs->dirbuf + 38, 0, 26); /* Clear C0 entry except for NumName and NameHash */ + fs->dirbuf[XDIR_Attr] = AM_ARC; + st_dword(fs->dirbuf + XDIR_CrtTime, GET_FATTIME()); fs->dirbuf[XDIR_GenFlags] = 1; res = store_xdir(&dj); - if (res == FR_OK && fp->obj.sclust) { /* Remove the cluster chain if exist */ + if (res == FR_OK && fp->obj.sclust != 0) { /* Remove the cluster chain if exist */ res = remove_chain(&fp->obj, fp->obj.sclust, 0); fs->last_clst = fp->obj.sclust - 1; /* Reuse the cluster hole */ } } else #endif { - /* Clean directory info */ - st_dword(dj.dir + DIR_CrtTime, dw); /* Set created time */ - st_dword(dj.dir + DIR_ModTime, dw); /* Set modified time */ + /* Set directory entry initial state */ + cl = ld_clust(fs, dj.dir); /* Get current cluster chain */ + st_dword(dj.dir + DIR_CrtTime, GET_FATTIME()); /* Set created time */ dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */ - cl = ld_clust(fs, dj.dir); /* Get cluster chain */ st_clust(fs, dj.dir, 0); /* Reset file allocation info */ st_dword(dj.dir + DIR_FileSize, 0); fs->wflag = 1; - - if (cl) { /* Remove the cluster chain if exist */ + if (cl != 0) { /* Remove the cluster chain if exist */ dw = fs->winsect; res = remove_chain(&dj.obj, cl, 0); if (res == FR_OK) { @@ -3398,32 +3632,31 @@ FRESULT f_open ( } } else { /* Open an existing file */ - if (res == FR_OK) { /* Following succeeded */ - if (dj.obj.attr & AM_DIR) { /* It is a directory */ + if (res == FR_OK) { /* Is the object exsiting? */ + if (dj.obj.attr & AM_DIR) { /* File open against a directory */ res = FR_NO_FILE; } else { - if ((mode & FA_WRITE) && (dj.obj.attr & AM_RDO)) { /* R/O violation */ + if ((mode & FA_WRITE) && (dj.obj.attr & AM_RDO)) { /* Write mode open against R/O file */ res = FR_DENIED; } } } } if (res == FR_OK) { - if (mode & FA_CREATE_ALWAYS) /* Set file change flag if created or overwritten */ - mode |= FA_MODIFIED; + if (mode & FA_CREATE_ALWAYS) mode |= FA_MODIFIED; /* Set file change flag if created or overwritten */ fp->dir_sect = fs->winsect; /* Pointer to the directory entry */ fp->dir_ptr = dj.dir; -#if _FS_LOCK != 0 - fp->obj.lockid = inc_lock(&dj, (mode & ~FA_READ) ? 1 : 0); - if (!fp->obj.lockid) res = FR_INT_ERR; +#if FF_FS_LOCK != 0 + fp->obj.lockid = inc_lock(&dj, (mode & ~FA_READ) ? 1 : 0); /* Lock the file for this session */ + if (fp->obj.lockid == 0) res = FR_INT_ERR; #endif } #else /* R/O configuration */ if (res == FR_OK) { - if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ + if (dj.fn[NSFLAG] & NS_NONAME) { /* Is it origin directory itself? */ res = FR_INVALID_NAME; } else { - if (dj.obj.attr & AM_DIR) { /* It is a directory */ + if (dj.obj.attr & AM_DIR) { /* Is it a directory? */ res = FR_NO_FILE; } } @@ -3431,21 +3664,19 @@ FRESULT f_open ( #endif if (res == FR_OK) { -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { fp->obj.c_scl = dj.obj.sclust; /* Get containing directory info */ fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; fp->obj.c_ofs = dj.blk_ofs; - fp->obj.sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ - fp->obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - fp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + init_alloc_info(fs, &fp->obj); } else #endif { fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */ fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); } -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK fp->cltbl = 0; /* Disable fast seek mode */ #endif fp->obj.fs = fs; /* Validate the file object */ @@ -3454,9 +3685,9 @@ FRESULT f_open ( fp->err = 0; /* Clear error flag */ fp->sect = 0; /* Invalidate current data sector */ fp->fptr = 0; /* Set file pointer top of the file */ -#if !_FS_READONLY -#if !_FS_TINY - mem_set(fp->buf, 0, _MAX_SS); /* Clear sector buffer */ +#if !FF_FS_READONLY +#if !FF_FS_TINY + mem_set(fp->buf, 0, FF_MAX_SS); /* Clear sector buffer */ #endif if ((mode & FA_SEEKEND) && fp->obj.objsize > 0) { /* Seek to end of file if FA_OPEN_APPEND is specified */ fp->fptr = fp->obj.objsize; /* Offset to seek */ @@ -3469,12 +3700,12 @@ FRESULT f_open ( } fp->clust = clst; if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */ - if ((sc = clust2sect(fs, clst)) == 0) { + if ((sc = clst2sect(fs, clst)) == 0) { res = FR_INT_ERR; } else { fp->sect = sc + (DWORD)(ofs / SS(fs)); -#if !_FS_TINY - if (disk_read(fs->drv, fp->buf, fp->sect, 1) != RES_OK) res = FR_DISK_ERR; +#if !FF_FS_TINY + if (disk_read(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) res = FR_DISK_ERR; #endif } } @@ -3520,14 +3751,14 @@ FRESULT f_read ( if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */ for ( ; btr; /* Repeat until all data read */ - rbuff += rcnt, fp->fptr += rcnt, *br += rcnt, btr -= rcnt) { + btr -= rcnt, *br += rcnt, rbuff += rcnt, fp->fptr += rcnt) { if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ if (csect == 0) { /* On the cluster boundary? */ if (fp->fptr == 0) { /* On the top of the file? */ clst = fp->obj.sclust; /* Follow cluster chain from the origin */ } else { /* Middle or end of the file */ -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK if (fp->cltbl) { clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ } else @@ -3540,17 +3771,17 @@ FRESULT f_read ( if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); fp->clust = clst; /* Update current cluster */ } - sect = clust2sect(fs, fp->clust); /* Get current sector */ - if (!sect) ABORT(fs, FR_INT_ERR); + sect = clst2sect(fs, fp->clust); /* Get current sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); sect += csect; cc = btr / SS(fs); /* When remaining bytes >= sector size, */ - if (cc) { /* Read maximum contiguous sectors directly */ + if (cc > 0) { /* Read maximum contiguous sectors directly */ if (csect + cc > fs->csize) { /* Clip at cluster boundary */ cc = fs->csize - csect; } - if (disk_read(fs->drv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); -#if !_FS_READONLY && _FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it contains a dirty sector */ -#if _FS_TINY + if (disk_read(fs->pdrv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if !FF_FS_READONLY && FF_FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it contains a dirty sector */ +#if FF_FS_TINY if (fs->wflag && fs->winsect - sect < cc) { mem_cpy(rbuff + ((fs->winsect - sect) * SS(fs)), fs->win, SS(fs)); } @@ -3563,22 +3794,22 @@ FRESULT f_read ( rcnt = SS(fs) * cc; /* Number of bytes transferred */ continue; } -#if !_FS_TINY +#if !FF_FS_TINY if (fp->sect != sect) { /* Load data sector if not in cache */ -#if !_FS_READONLY +#if !FF_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ + if (disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ } #endif fp->sect = sect; } rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ -#if _FS_TINY +#if FF_FS_TINY if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ mem_cpy(rbuff, fs->win + fp->fptr % SS(fs), rcnt); /* Extract partial sector */ #else @@ -3592,7 +3823,7 @@ FRESULT f_read ( -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Write File */ /*-----------------------------------------------------------------------*/ @@ -3616,13 +3847,13 @@ FRESULT f_write ( if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ - /* Check fptr wrap-around (file size cannot reach 4GiB on FATxx) */ - if ((!_FS_EXFAT || fs->fs_type != FS_EXFAT) && (DWORD)(fp->fptr + btw) < (DWORD)fp->fptr) { + /* Check fptr wrap-around (file size cannot reach 4 GiB at FAT volume) */ + if ((!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) && (DWORD)(fp->fptr + btw) < (DWORD)fp->fptr) { btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); } for ( ; btw; /* Repeat until all data written */ - wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->obj.objsize, *bw += wcnt, btw -= wcnt) { + btw -= wcnt, *bw += wcnt, wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->obj.objsize) { if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */ if (csect == 0) { /* On the cluster boundary? */ @@ -3632,7 +3863,7 @@ FRESULT f_write ( clst = create_chain(&fp->obj, 0); /* create a new cluster chain */ } } else { /* On the middle or end of the file */ -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK if (fp->cltbl) { clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ } else @@ -3647,25 +3878,25 @@ FRESULT f_write ( fp->clust = clst; /* Update current cluster */ if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */ } -#if _FS_TINY +#if FF_FS_TINY if (fs->winsect == fp->sect && sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Write-back sector cache */ #else if (fp->flag & FA_DIRTY) { /* Write-back sector cache */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif - sect = clust2sect(fs, fp->clust); /* Get current sector */ - if (!sect) ABORT(fs, FR_INT_ERR); + sect = clst2sect(fs, fp->clust); /* Get current sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); sect += csect; cc = btw / SS(fs); /* When remaining bytes >= sector size, */ - if (cc) { /* Write maximum contiguous sectors directly */ + if (cc > 0) { /* Write maximum contiguous sectors directly */ if (csect + cc > fs->csize) { /* Clip at cluster boundary */ cc = fs->csize - csect; } - if (disk_write(fs->drv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); -#if _FS_MINIMIZE <= 2 -#if _FS_TINY + if (disk_write(fs->pdrv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if FF_FS_MINIMIZE <= 2 +#if FF_FS_TINY if (fs->winsect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ mem_cpy(fs->win, wbuff + ((fs->winsect - sect) * SS(fs)), SS(fs)); fs->wflag = 0; @@ -3680,7 +3911,7 @@ FRESULT f_write ( wcnt = SS(fs) * cc; /* Number of bytes transferred */ continue; } -#if _FS_TINY +#if FF_FS_TINY if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling on the growing edge */ if (sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); fs->winsect = sect; @@ -3688,7 +3919,7 @@ FRESULT f_write ( #else if (fp->sect != sect && /* Fill sector cache with file data */ fp->fptr < fp->obj.objsize && - disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) { + disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) { ABORT(fs, FR_DISK_ERR); } #endif @@ -3696,7 +3927,7 @@ FRESULT f_write ( } wcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ -#if _FS_TINY +#if FF_FS_TINY if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ mem_cpy(fs->win + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */ fs->wflag = 1; @@ -3726,34 +3957,34 @@ FRESULT f_sync ( FATFS *fs; DWORD tm; BYTE *dir; -#if _FS_EXFAT - DIR dj; - DEF_NAMBUF -#endif + res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) { if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ -#if !_FS_TINY +#if !FF_FS_TINY if (fp->flag & FA_DIRTY) { /* Write-back cached data if needed */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif /* Update the directory entry */ tm = GET_FATTIME(); /* Modified time */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { res = fill_first_frag(&fp->obj); /* Fill first fragment on the FAT if needed */ if (res == FR_OK) { res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ } if (res == FR_OK) { + DIR dj; + DEF_NAMBUF + INIT_NAMBUF(fs); - res = load_obj_dir(&dj, &fp->obj); /* Load directory entry block */ + res = load_obj_xdir(&dj, &fp->obj); /* Load directory entry block */ if (res == FR_OK) { - fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive bit */ - fs->dirbuf[XDIR_GenFlags] = fp->obj.stat | 1; /* Update file allocation info */ + fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed */ + fs->dirbuf[XDIR_GenFlags] = fp->obj.stat | 1; /* Update file allocation information */ st_dword(fs->dirbuf + XDIR_FstClus, fp->obj.sclust); st_qword(fs->dirbuf + XDIR_FileSize, fp->obj.objsize); st_qword(fs->dirbuf + XDIR_ValidFileSize, fp->obj.objsize); @@ -3774,8 +4005,8 @@ FRESULT f_sync ( res = move_window(fs, fp->dir_sect); if (res == FR_OK) { dir = fp->dir_ptr; - dir[DIR_Attr] |= AM_ARC; /* Set archive bit */ - st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation info */ + dir[DIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed */ + st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation information */ st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */ st_dword(dir + DIR_ModTime, tm); /* Update modified time */ st_word(dir + DIR_LstAccDate, 0); @@ -3790,7 +4021,7 @@ FRESULT f_sync ( LEAVE_FF(fs, res); } -#endif /* !_FS_READONLY */ +#endif /* !FF_FS_READONLY */ @@ -3806,21 +4037,20 @@ FRESULT f_close ( FRESULT res; FATFS *fs; -#if !_FS_READONLY +#if !FF_FS_READONLY res = f_sync(fp); /* Flush cached data */ if (res == FR_OK) #endif { res = validate(&fp->obj, &fs); /* Lock volume */ if (res == FR_OK) { -#if _FS_LOCK != 0 - res = dec_lock(fp->obj.lockid); /* Decrement file open counter */ - if (res == FR_OK) +#if FF_FS_LOCK != 0 + res = dec_lock(fp->obj.lockid); /* Decrement file open counter */ + if (res == FR_OK) fp->obj.fs = 0; /* Invalidate file object */ +#else + fp->obj.fs = 0; /* Invalidate file object */ #endif - { - fp->obj.fs = 0; /* Invalidate file object */ - } -#if _FS_REENTRANT +#if FF_FS_REENTRANT unlock_fs(fs, FR_OK); /* Unlock volume */ #endif } @@ -3831,12 +4061,12 @@ FRESULT f_close ( -#if _FS_RPATH >= 1 +#if FF_FS_RPATH >= 1 /*-----------------------------------------------------------------------*/ /* Change Current Directory or Current Drive, Get Current Directory */ /*-----------------------------------------------------------------------*/ -#if _VOLUMES >= 2 +#if FF_VOLUMES >= 2 FRESULT f_chdrive ( const TCHAR* path /* Drive number */ ) @@ -3873,7 +4103,7 @@ FRESULT f_chdir ( if (res == FR_OK) { /* Follow completed */ if (dj.fn[NSFLAG] & NS_NONAME) { fs->cdir = dj.obj.sclust; /* It is the start directory itself */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { fs->cdc_scl = dj.obj.c_scl; fs->cdc_size = dj.obj.c_size; @@ -3882,7 +4112,7 @@ FRESULT f_chdir ( #endif } else { if (dj.obj.attr & AM_DIR) { /* It is a sub-directory */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { fs->cdir = ld_dword(fs->dirbuf + XDIR_FstClus); /* Sub-directory cluster */ fs->cdc_scl = dj.obj.sclust; /* Save containing directory information */ @@ -3906,7 +4136,7 @@ FRESULT f_chdir ( } -#if _FS_RPATH >= 2 +#if FF_FS_RPATH >= 2 FRESULT f_getcwd ( TCHAR* buff, /* Pointer to the directory path */ UINT len /* Size of path */ @@ -3929,7 +4159,7 @@ FRESULT f_getcwd ( dj.obj.fs = fs; INIT_NAMBUF(fs); i = len; /* Bottom of buffer (directory stack base) */ - if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* (Cannot do getcwd on exFAT and returns root path) */ + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* (Cannot do getcwd on exFAT and returns root path) */ dj.obj.sclust = fs->cdir; /* Start to follow upper directory from current directory */ while ((ccl = dj.obj.sclust) != 0) { /* Repeat while current directory is a sub-directory */ res = dir_sdi(&dj, 1 * SZDIRE); /* Get parent directory */ @@ -3940,7 +4170,7 @@ FRESULT f_getcwd ( res = dir_sdi(&dj, 0); if (res != FR_OK) break; do { /* Find the entry links to the child directory */ - res = dir_read(&dj, 0); + res = dir_read_file(&dj); if (res != FR_OK) break; if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */ res = dir_next(&dj, 0); @@ -3958,7 +4188,7 @@ FRESULT f_getcwd ( } tp = buff; if (res == FR_OK) { -#if _VOLUMES >= 2 +#if FF_VOLUMES >= 2 *tp++ = '0' + CurrVol; /* Put drive number */ *tp++ = ':'; #endif @@ -3977,14 +4207,14 @@ FRESULT f_getcwd ( LEAVE_FF(fs, res); } -#endif /* _FS_RPATH >= 2 */ -#endif /* _FS_RPATH >= 1 */ +#endif /* FF_FS_RPATH >= 2 */ +#endif /* FF_FS_RPATH >= 1 */ -#if _FS_MINIMIZE <= 2 +#if FF_FS_MINIMIZE <= 2 /*-----------------------------------------------------------------------*/ -/* Seek File R/W Pointer */ +/* Seek File Read/Write Pointer */ /*-----------------------------------------------------------------------*/ FRESULT f_lseek ( @@ -3996,26 +4226,26 @@ FRESULT f_lseek ( FATFS *fs; DWORD clst, bcs, nsect; FSIZE_t ifptr; -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK DWORD cl, pcl, ncl, tcl, dsc, tlen, ulen, *tbl; #endif res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) res = (FRESULT)fp->err; -#if _FS_EXFAT && !_FS_READONLY +#if FF_FS_EXFAT && !FF_FS_READONLY if (res == FR_OK && fs->fs_type == FS_EXFAT) { res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ } #endif if (res != FR_OK) LEAVE_FF(fs, res); -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK if (fp->cltbl) { /* Fast seek */ if (ofs == CREATE_LINKMAP) { /* Create CLMT */ tbl = fp->cltbl; tlen = *tbl++; ulen = 2; /* Given table size and required table size */ cl = fp->obj.sclust; /* Origin of the chain */ - if (cl) { + if (cl != 0) { do { /* Get a fragment */ tcl = cl; ncl = 0; ulen += 2; /* Top, length and used items */ @@ -4039,20 +4269,20 @@ FRESULT f_lseek ( } else { /* Fast seek */ if (ofs > fp->obj.objsize) ofs = fp->obj.objsize; /* Clip offset at the file size */ fp->fptr = ofs; /* Set file pointer */ - if (ofs) { + if (ofs > 0) { fp->clust = clmt_clust(fp, ofs - 1); - dsc = clust2sect(fs, fp->clust); - if (!dsc) ABORT(fs, FR_INT_ERR); + dsc = clst2sect(fs, fp->clust); + if (dsc == 0) ABORT(fs, FR_INT_ERR); dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ -#if !_FS_TINY -#if !_FS_READONLY +#if !FF_FS_TINY +#if !FF_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sector */ + if (disk_read(fs->pdrv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sector */ #endif fp->sect = dsc; } @@ -4063,15 +4293,15 @@ FRESULT f_lseek ( /* Normal Seek */ { -#if _FS_EXFAT - if (fs->fs_type != FS_EXFAT && ofs >= 0x100000000) ofs = 0xFFFFFFFF; /* Clip at 4GiB-1 if at FATxx */ +#if FF_FS_EXFAT + if (fs->fs_type != FS_EXFAT && ofs >= 0x100000000) ofs = 0xFFFFFFFF; /* Clip at 4 GiB - 1 if at FATxx */ #endif - if (ofs > fp->obj.objsize && (_FS_READONLY || !(fp->flag & FA_WRITE))) { /* In read-only mode, clip offset with the file size */ + if (ofs > fp->obj.objsize && (FF_FS_READONLY || !(fp->flag & FA_WRITE))) { /* In read-only mode, clip offset with the file size */ ofs = fp->obj.objsize; } ifptr = fp->fptr; fp->fptr = nsect = 0; - if (ofs) { + if (ofs > 0) { bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ if (ifptr > 0 && (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ @@ -4080,7 +4310,7 @@ FRESULT f_lseek ( clst = fp->clust; } else { /* When seek to back cluster, */ clst = fp->obj.sclust; /* start from the first cluster */ -#if !_FS_READONLY +#if !FF_FS_READONLY if (clst == 0) { /* If no cluster chain, create a new chain */ clst = create_chain(&fp->obj, 0); if (clst == 1) ABORT(fs, FR_INT_ERR); @@ -4093,9 +4323,9 @@ FRESULT f_lseek ( if (clst != 0) { while (ofs > bcs) { /* Cluster following loop */ ofs -= bcs; fp->fptr += bcs; -#if !_FS_READONLY +#if !FF_FS_READONLY if (fp->flag & FA_WRITE) { /* Check if in write mode or not */ - if (_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize to generate FAT value */ + if (FF_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize to generate FAT value */ fp->obj.objsize = fp->fptr; fp->flag |= FA_MODIFIED; } @@ -4114,25 +4344,25 @@ FRESULT f_lseek ( } fp->fptr += ofs; if (ofs % SS(fs)) { - nsect = clust2sect(fs, clst); /* Current sector */ - if (!nsect) ABORT(fs, FR_INT_ERR); + nsect = clst2sect(fs, clst); /* Current sector */ + if (nsect == 0) ABORT(fs, FR_INT_ERR); nsect += (DWORD)(ofs / SS(fs)); } } } - if (!_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ + if (!FF_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ fp->obj.objsize = fp->fptr; fp->flag |= FA_MODIFIED; } if (fp->fptr % SS(fs) && nsect != fp->sect) { /* Fill sector cache if needed */ -#if !_FS_TINY -#if !_FS_READONLY +#if !FF_FS_TINY +#if !FF_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ + if (disk_read(fs->pdrv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ #endif fp->sect = nsect; } @@ -4143,7 +4373,7 @@ FRESULT f_lseek ( -#if _FS_MINIMIZE <= 1 +#if FF_FS_MINIMIZE <= 1 /*-----------------------------------------------------------------------*/ /* Create a Directory Object */ /*-----------------------------------------------------------------------*/ @@ -4155,49 +4385,45 @@ FRESULT f_opendir ( { FRESULT res; FATFS *fs; - _FDID *obj; DEF_NAMBUF if (!dp) return FR_INVALID_OBJECT; /* Get logical drive */ - obj = &dp->obj; res = find_volume(&path, &fs, 0); if (res == FR_OK) { - obj->fs = fs; + dp->obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(dp, path); /* Follow the path to the directory */ if (res == FR_OK) { /* Follow completed */ if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */ - if (obj->attr & AM_DIR) { /* This object is a sub-directory */ -#if _FS_EXFAT + if (dp->obj.attr & AM_DIR) { /* This object is a sub-directory */ +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { - obj->c_scl = obj->sclust; /* Get containing directory inforamation */ - obj->c_size = ((DWORD)obj->objsize & 0xFFFFFF00) | obj->stat; - obj->c_ofs = dp->blk_ofs; - obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Get object allocation info */ - obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; + dp->obj.c_scl = dp->obj.sclust; /* Get containing directory inforamation */ + dp->obj.c_size = ((DWORD)dp->obj.objsize & 0xFFFFFF00) | dp->obj.stat; + dp->obj.c_ofs = dp->blk_ofs; + init_alloc_info(fs, &dp->obj); /* Get object allocation info */ } else #endif { - obj->sclust = ld_clust(fs, dp->dir); /* Get object allocation info */ + dp->obj.sclust = ld_clust(fs, dp->dir); /* Get object allocation info */ } } else { /* This object is a file */ res = FR_NO_PATH; } } if (res == FR_OK) { - obj->id = fs->id; + dp->obj.id = fs->id; res = dir_sdi(dp, 0); /* Rewind directory */ -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 if (res == FR_OK) { - if (obj->sclust) { - obj->lockid = inc_lock(dp, 0); /* Lock the sub directory */ - if (!obj->lockid) res = FR_TOO_MANY_OPEN_FILES; + if (dp->obj.sclust != 0) { + dp->obj.lockid = inc_lock(dp, 0); /* Lock the sub directory */ + if (!dp->obj.lockid) res = FR_TOO_MANY_OPEN_FILES; } else { - obj->lockid = 0; /* Root directory need not to be locked */ + dp->obj.lockid = 0; /* Root directory need not to be locked */ } } #endif @@ -4206,7 +4432,7 @@ FRESULT f_opendir ( FREE_NAMBUF(); if (res == FR_NO_FILE) res = FR_NO_PATH; } - if (res != FR_OK) obj->fs = 0; /* Invalidate the directory object if function faild */ + if (res != FR_OK) dp->obj.fs = 0; /* Invalidate the directory object if function faild */ LEAVE_FF(fs, res); } @@ -4226,18 +4452,15 @@ FRESULT f_closedir ( FATFS *fs; - res = validate(&dp->obj, &fs); /* Check validity of the file object */ + res = validate(&dp->obj, &fs); /* Check validity of the file object */ if (res == FR_OK) { -#if _FS_LOCK != 0 - if (dp->obj.lockid) { /* Decrement sub-directory open counter */ - res = dec_lock(dp->obj.lockid); - } - if (res == FR_OK) +#if FF_FS_LOCK != 0 + if (dp->obj.lockid) res = dec_lock(dp->obj.lockid); /* Decrement sub-directory open counter */ + if (res == FR_OK) dp->obj.fs = 0; /* Invalidate directory object */ +#else + dp->obj.fs = 0; /* Invalidate directory object */ #endif - { - dp->obj.fs = 0; /* Invalidate directory object */ - } -#if _FS_REENTRANT +#if FF_FS_REENTRANT unlock_fs(fs, FR_OK); /* Unlock volume */ #endif } @@ -4267,7 +4490,7 @@ FRESULT f_readdir ( res = dir_sdi(dp, 0); /* Rewind the directory object */ } else { INIT_NAMBUF(fs); - res = dir_read(dp, 0); /* Read an item */ + res = dir_read_file(dp); /* Read an item */ if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ if (res == FR_OK) { /* A valid entry is found */ get_fileinfo(dp, fno); /* Get the object information */ @@ -4282,7 +4505,7 @@ FRESULT f_readdir ( -#if _USE_FIND +#if FF_USE_FIND /*-----------------------------------------------------------------------*/ /* Find Next File */ /*-----------------------------------------------------------------------*/ @@ -4299,7 +4522,7 @@ FRESULT f_findnext ( res = f_readdir(dp, fno); /* Get a directory item */ if (res != FR_OK || !fno || !fno->fname[0]) break; /* Terminate if any error or end of directory */ if (pattern_matching(dp->pat, fno->fname, 0, 0)) break; /* Test for the file name */ -#if _USE_LFN != 0 && _USE_FIND == 2 +#if FF_USE_LFN && FF_USE_FIND == 2 if (pattern_matching(dp->pat, fno->altname, 0, 0)) break; /* Test for alternative name if exist */ #endif } @@ -4330,11 +4553,11 @@ FRESULT f_findfirst ( return res; } -#endif /* _USE_FIND */ +#endif /* FF_USE_FIND */ -#if _FS_MINIMIZE == 0 +#if FF_FS_MINIMIZE == 0 /*-----------------------------------------------------------------------*/ /* Get File Status */ /*-----------------------------------------------------------------------*/ @@ -4369,36 +4592,35 @@ FRESULT f_stat ( -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Get Number of Free Clusters */ /*-----------------------------------------------------------------------*/ FRESULT f_getfree ( - const TCHAR* path, /* Path name of the logical drive number */ + const TCHAR* path, /* Logical drive number */ DWORD* nclst, /* Pointer to a variable to return number of free clusters */ - FATFS** fatfs /* Pointer to return pointer to corresponding file system object */ + FATFS** fatfs /* Pointer to return pointer to corresponding filesystem object */ ) { FRESULT res; FATFS *fs; DWORD nfree, clst, sect, stat; UINT i; - BYTE *p; - _FDID obj; + FFOBJID obj; /* Get logical drive */ res = find_volume(&path, &fs, 0); if (res == FR_OK) { *fatfs = fs; /* Return ptr to the fs object */ - /* If free_clst is valid, return it without full cluster scan */ + /* If free_clst is valid, return it without full FAT scan */ if (fs->free_clst <= fs->n_fatent - 2) { *nclst = fs->free_clst; } else { - /* Get number of free clusters */ + /* Scan FAT to obtain number of free clusters */ nfree = 0; - if (fs->fs_type == FS_FAT12) { /* FAT12: Sector unalighed FAT entries */ + if (fs->fs_type == FS_FAT12) { /* FAT12: Scan bit field FAT entries */ clst = 2; obj.fs = fs; do { stat = get_fat(&obj, clst); @@ -4407,16 +4629,19 @@ FRESULT f_getfree ( if (stat == 0) nfree++; } while (++clst < fs->n_fatent); } else { -#if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* exFAT: Scan bitmap table */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* exFAT: Scan allocation bitmap */ BYTE bm; UINT b; - clst = fs->n_fatent - 2; - sect = fs->database; - i = 0; - do { - if (i == 0 && (res = move_window(fs, sect++)) != FR_OK) break; + clst = fs->n_fatent - 2; /* Number of clusters */ + sect = fs->database; /* Assuming bitmap starts at cluster 2 */ + i = 0; /* Offset in the sector */ + do { /* Counts numbuer of bits with zero in the bitmap */ + if (i == 0) { + res = move_window(fs, sect++); + if (res != FR_OK) break; + } for (b = 8, bm = fs->win[i]; b && clst; b--, clst--) { if (!(bm & 1)) nfree++; bm >>= 1; @@ -4425,29 +4650,29 @@ FRESULT f_getfree ( } while (clst); } else #endif - { /* FAT16/32: Sector alighed FAT entries */ - clst = fs->n_fatent; sect = fs->fatbase; - i = 0; p = 0; - do { + { /* FAT16/32: Scan WORD/DWORD FAT entries */ + clst = fs->n_fatent; /* Number of entries */ + sect = fs->fatbase; /* Top of the FAT */ + i = 0; /* Offset in the sector */ + do { /* Counts numbuer of entries with zero in the FAT */ if (i == 0) { res = move_window(fs, sect++); if (res != FR_OK) break; - p = fs->win; - i = SS(fs); } if (fs->fs_type == FS_FAT16) { - if (ld_word(p) == 0) nfree++; - p += 2; i -= 2; + if (ld_word(fs->win + i) == 0) nfree++; + i += 2; } else { - if ((ld_dword(p) & 0x0FFFFFFF) == 0) nfree++; - p += 4; i -= 4; + if ((ld_dword(fs->win + i) & 0x0FFFFFFF) == 0) nfree++; + i += 4; } + i %= SS(fs); } while (--clst); } } *nclst = nfree; /* Return the free clusters */ fs->free_clst = nfree; /* Now free_clst is valid */ - fs->fsi_flag |= 1; /* FSInfo is to be updated */ + fs->fsi_flag |= 1; /* FAT32: FSInfo is to be updated */ } } @@ -4487,11 +4712,11 @@ FRESULT f_truncate ( res = remove_chain(&fp->obj, ncl, fp->clust); } } - fp->obj.objsize = fp->fptr; /* Set file size to current R/W point */ + fp->obj.objsize = fp->fptr; /* Set file size to current read/write point */ fp->flag |= FA_MODIFIED; -#if !_FS_TINY +#if !FF_FS_TINY if (res == FR_OK && (fp->flag & FA_DIRTY)) { - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) { + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) { res = FR_DISK_ERR; } else { fp->flag &= (BYTE)~FA_DIRTY; @@ -4519,22 +4744,22 @@ FRESULT f_unlink ( DIR dj, sdj; DWORD dclst = 0; FATFS *fs; -#if _FS_EXFAT - _FDID obj; +#if FF_FS_EXFAT + FFOBJID obj; #endif DEF_NAMBUF /* Get logical drive */ res = find_volume(&path, &fs, FA_WRITE); - dj.obj.fs = fs; if (res == FR_OK) { + dj.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&dj, path); /* Follow the file path */ - if (_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { + if (FF_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { res = FR_INVALID_NAME; /* Cannot remove dot entry */ } -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 if (res == FR_OK) res = chk_lock(&dj, 2); /* Check if it is an open object */ #endif if (res == FR_OK) { /* The object is accessible */ @@ -4546,27 +4771,26 @@ FRESULT f_unlink ( } } if (res == FR_OK) { -#if _FS_EXFAT +#if FF_FS_EXFAT obj.fs = fs; if (fs->fs_type == FS_EXFAT) { - obj.sclust = dclst = ld_dword(fs->dirbuf + XDIR_FstClus); - obj.objsize = ld_qword(fs->dirbuf + XDIR_FileSize); - obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + init_alloc_info(fs, &obj); + dclst = obj.sclust; } else #endif { dclst = ld_clust(fs, dj.dir); } if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory? */ -#if _FS_RPATH != 0 - if (dclst == fs->cdir) { /* Is it the current directory? */ +#if FF_FS_RPATH != 0 + if (dclst == fs->cdir) { /* Is it the current directory? */ res = FR_DENIED; } else #endif { - sdj.obj.fs = fs; /* Open the sub-directory */ + sdj.obj.fs = fs; /* Open the sub-directory */ sdj.obj.sclust = dclst; -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { sdj.obj.objsize = obj.objsize; sdj.obj.stat = obj.stat; @@ -4574,7 +4798,7 @@ FRESULT f_unlink ( #endif res = dir_sdi(&sdj, 0); if (res == FR_OK) { - res = dir_read(&sdj, 0); /* Read an item */ + res = dir_read_file(&sdj); /* Test if the directory is empty */ if (res == FR_OK) res = FR_DENIED; /* Not empty? */ if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ } @@ -4583,8 +4807,8 @@ FRESULT f_unlink ( } if (res == FR_OK) { res = dir_remove(&dj); /* Remove the directory entry */ - if (res == FR_OK && dclst) { /* Remove the cluster chain if exist */ -#if _FS_EXFAT + if (res == FR_OK && dclst != 0) { /* Remove the cluster chain if exist */ +#if FF_FS_EXFAT res = remove_chain(&obj, dclst, 0); #else res = remove_chain(&dj.obj, dclst, 0); @@ -4614,19 +4838,18 @@ FRESULT f_mkdir ( DIR dj; FATFS *fs; BYTE *dir; - UINT n; - DWORD dsc, dcl, pcl, tm; + DWORD dcl, pcl, tm; DEF_NAMBUF /* Get logical drive */ res = find_volume(&path, &fs, FA_WRITE); - dj.obj.fs = fs; if (res == FR_OK) { + dj.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&dj, path); /* Follow the file path */ if (res == FR_OK) res = FR_EXIST; /* Any object with same name is already existing */ - if (_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { + if (FF_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { res = FR_INVALID_NAME; } if (res == FR_NO_FILE) { /* Can create a new directory */ @@ -4639,39 +4862,31 @@ FRESULT f_mkdir ( if (res == FR_OK) res = sync_window(fs); /* Flush FAT */ tm = GET_FATTIME(); if (res == FR_OK) { /* Initialize the new directory table */ - dsc = clust2sect(fs, dcl); - dir = fs->win; - mem_set(dir, 0, SS(fs)); - if (!_FS_EXFAT || fs->fs_type != FS_EXFAT) { + res = dir_clear(fs, dcl); /* Clean up the new table */ + if (res == FR_OK && (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT)) { /* Create dot entries (FAT only) */ + dir = fs->win; mem_set(dir + DIR_Name, ' ', 11); /* Create "." entry */ dir[DIR_Name] = '.'; dir[DIR_Attr] = AM_DIR; st_dword(dir + DIR_ModTime, tm); st_clust(fs, dir, dcl); - mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */ + mem_cpy(dir + SZDIRE, dir, SZDIRE); /* Create ".." entry */ dir[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; - if (fs->fs_type == FS_FAT32 && pcl == fs->dirbase) pcl = 0; st_clust(fs, dir + SZDIRE, pcl); - } - for (n = fs->csize; n; n--) { /* Write dot entries and clear following sectors */ - fs->winsect = dsc++; fs->wflag = 1; - res = sync_window(fs); - if (res != FR_OK) break; - mem_set(dir, 0, SS(fs)); } } if (res == FR_OK) { res = dir_register(&dj); /* Register the object to the directoy */ } if (res == FR_OK) { -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Created time */ st_dword(fs->dirbuf + XDIR_FstClus, dcl); /* Table start cluster */ st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)dj.obj.objsize); /* File size needs to be valid */ st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)dj.obj.objsize); - fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag (contiguous) */ + fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag */ fs->dirbuf[XDIR_Attr] = AM_DIR; /* Attribute */ res = store_xdir(&dj); } else @@ -4711,26 +4926,26 @@ FRESULT f_rename ( FRESULT res; DIR djo, djn; FATFS *fs; - BYTE buf[_FS_EXFAT ? SZDIRE * 2 : 24], *dir; + BYTE buf[FF_FS_EXFAT ? SZDIRE * 2 : SZDIRE], *dir; DWORD dw; DEF_NAMBUF - get_ldnumber(&path_new); /* Snip drive number of new name off */ + get_ldnumber(&path_new); /* Snip the drive number of new name off */ res = find_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ if (res == FR_OK) { djo.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&djo, path_old); /* Check old object */ if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check validity of name */ -#if _FS_LOCK != 0 +#if FF_FS_LOCK != 0 if (res == FR_OK) { res = chk_lock(&djo, 2); } #endif if (res == FR_OK) { /* Object to be renamed is found */ -#if _FS_EXFAT - if (fs->fs_type == FS_EXFAT) { /* At exFAT */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* At exFAT volume */ BYTE nf, nn; WORD nh; @@ -4745,17 +4960,18 @@ FRESULT f_rename ( if (res == FR_OK) { nf = fs->dirbuf[XDIR_NumSec]; nn = fs->dirbuf[XDIR_NumName]; nh = ld_word(fs->dirbuf + XDIR_NameHash); - mem_cpy(fs->dirbuf, buf, SZDIRE * 2); + mem_cpy(fs->dirbuf, buf, SZDIRE * 2); /* Restore 85+C0 entry */ fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn; st_word(fs->dirbuf + XDIR_NameHash, nh); + if (!(fs->dirbuf[XDIR_Attr] & AM_DIR)) fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */ /* Start of critical section where an interruption can cause a cross-link */ res = store_xdir(&djn); } } } else #endif - { /* At FAT12/FAT16/FAT32 */ - mem_cpy(buf, djo.dir + DIR_Attr, 21); /* Save information about the object except name */ + { /* At FAT/FAT32 volume */ + mem_cpy(buf, djo.dir, SZDIRE); /* Save directory entry of the object */ mem_cpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */ res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ if (res == FR_OK) { /* Is new name already in use by any other object? */ @@ -4764,13 +4980,14 @@ FRESULT f_rename ( if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ res = dir_register(&djn); /* Register the new entry */ if (res == FR_OK) { - dir = djn.dir; /* Copy information about object except name */ - mem_cpy(dir + 13, buf + 2, 19); - dir[DIR_Attr] = buf[0] | AM_ARC; + dir = djn.dir; /* Copy directory entry of the object except name */ + mem_cpy(dir + 13, buf + 13, SZDIRE - 13); + dir[DIR_Attr] = buf[DIR_Attr]; + if (!(dir[DIR_Attr] & AM_DIR)) dir[DIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */ fs->wflag = 1; if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the sub-directory if needed */ - dw = clust2sect(fs, ld_clust(fs, dir)); - if (!dw) { + dw = clst2sect(fs, ld_clust(fs, dir)); + if (dw == 0) { res = FR_INT_ERR; } else { /* Start of critical section where an interruption can cause a cross-link */ @@ -4799,14 +5016,14 @@ FRESULT f_rename ( LEAVE_FF(fs, res); } -#endif /* !_FS_READONLY */ -#endif /* _FS_MINIMIZE == 0 */ -#endif /* _FS_MINIMIZE <= 1 */ -#endif /* _FS_MINIMIZE <= 2 */ +#endif /* !FF_FS_READONLY */ +#endif /* FF_FS_MINIMIZE == 0 */ +#endif /* FF_FS_MINIMIZE <= 1 */ +#endif /* FF_FS_MINIMIZE <= 2 */ -#if _USE_CHMOD && !_FS_READONLY +#if FF_USE_CHMOD && !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Change Attribute */ /*-----------------------------------------------------------------------*/ @@ -4824,14 +5041,14 @@ FRESULT f_chmod ( res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ - dj.obj.fs = fs; if (res == FR_OK) { + dj.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&dj, path); /* Follow the file path */ if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ if (res == FR_OK) { mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */ -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { fs->dirbuf[XDIR_Attr] = (attr & mask) | (fs->dirbuf[XDIR_Attr] & (BYTE)~mask); /* Apply attribute change */ res = store_xdir(&dj); @@ -4860,7 +5077,7 @@ FRESULT f_chmod ( FRESULT f_utime ( const TCHAR* path, /* Pointer to the file/directory name */ - const FILINFO* fno /* Pointer to the time stamp to be set */ + const FILINFO* fno /* Pointer to the timestamp to be set */ ) { FRESULT res; @@ -4870,13 +5087,13 @@ FRESULT f_utime ( res = find_volume(&path, &fs, FA_WRITE); /* Get logical drive */ - dj.obj.fs = fs; if (res == FR_OK) { + dj.obj.fs = fs; INIT_NAMBUF(fs); res = follow_path(&dj, path); /* Follow the file path */ if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ if (res == FR_OK) { -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { st_dword(fs->dirbuf + XDIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); res = store_xdir(&dj); @@ -4896,28 +5113,26 @@ FRESULT f_utime ( LEAVE_FF(fs, res); } -#endif /* _USE_CHMOD && !_FS_READONLY */ +#endif /* FF_USE_CHMOD && !FF_FS_READONLY */ -#if _USE_LABEL +#if FF_USE_LABEL /*-----------------------------------------------------------------------*/ /* Get Volume Label */ /*-----------------------------------------------------------------------*/ FRESULT f_getlabel ( - const TCHAR* path, /* Path name of the logical drive number */ - TCHAR* label, /* Pointer to a buffer to return the volume label */ - DWORD* vsn /* Pointer to a variable to return the volume serial number */ + const TCHAR* path, /* Logical drive number */ + TCHAR* label, /* Buffer to store the volume label */ + DWORD* vsn /* Variable to store the volume serial number */ ) { FRESULT res; DIR dj; FATFS *fs; UINT si, di; -#if _LFN_UNICODE || _FS_EXFAT - WCHAR w; -#endif + WCHAR wc; /* Get logical drive */ res = find_volume(&path, &fs, 0); @@ -4927,37 +5142,40 @@ FRESULT f_getlabel ( dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */ res = dir_sdi(&dj, 0); if (res == FR_OK) { - res = dir_read(&dj, 1); /* Find a volume label entry */ + res = dir_read_label(&dj); /* Find a volume label entry */ if (res == FR_OK) { -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { - for (si = di = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */ - w = ld_word(dj.dir + XDIR_Label + si * 2); -#if _LFN_UNICODE - label[di++] = w; -#else - w = ff_convert(w, 0); /* Unicode -> OEM */ - if (w == 0) w = '?'; /* Replace wrong character */ - if (_DF1S && w >= 0x100) label[di++] = (char)(w >> 8); - label[di++] = (char)w; -#endif + WCHAR hs; + + for (si = di = hs = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */ + wc = ld_word(dj.dir + XDIR_Label + si * 2); + if (hs == 0 && IsSurrogate(wc)) { /* Is the code a surrogate? */ + hs = wc; continue; + } + wc = put_utf((DWORD)hs << 16 | wc, &label[di], 4); + if (wc == 0) { di = 0; break; } + di += wc; + hs = 0; } + if (hs != 0) di = 0; /* Broken surrogate pair? */ label[di] = 0; } else #endif { - si = di = 0; /* Extract volume label from AM_VOL entry with code comversion */ - do { -#if _LFN_UNICODE - w = (si < 11) ? dj.dir[si++] : ' '; - if (IsDBCS1(w) && si < 11 && IsDBCS2(dj.dir[si])) { - w = w << 8 | dj.dir[si++]; - } - label[di++] = ff_convert(w, 1); /* OEM -> Unicode */ -#else - label[di++] = dj.dir[si++]; + si = di = 0; /* Extract volume label from AM_VOL entry */ + while (si < 11) { + wc = dj.dir[si++]; +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 /* Unicode output */ + if (dbc_1st((BYTE)wc) && si < 11) wc = wc << 8 | dj.dir[si++]; /* Is it a DBC? */ + wc = ff_oem2uni(wc, CODEPAGE); + if (wc != 0) wc = put_utf(wc, &label[di], 4); + if (wc == 0) { di = 0; break; } + di += wc; +#else /* ANSI/OEM output */ + label[di++] = (TCHAR)wc; #endif - } while (di < 11); + } do { /* Truncate trailing spaces */ label[di] = 0; if (di == 0) break; @@ -4994,95 +5212,88 @@ FRESULT f_getlabel ( -#if !_FS_READONLY +#if !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Set Volume Label */ /*-----------------------------------------------------------------------*/ FRESULT f_setlabel ( - const TCHAR* label /* Pointer to the volume label to set */ + const TCHAR* label /* Volume label to set with heading logical drive number */ ) { FRESULT res; DIR dj; FATFS *fs; BYTE dirvn[22]; - UINT i, j, slen; - WCHAR w; - static const char badchr[] = "\"*+,.:;<=>\?[]|\x7F"; - + UINT di; + WCHAR wc; + static const char badchr[] = "+.,;=[]\"*:<>\?|\x7F"; /* [0..] for FAT, [7..] for exFAT */ +#if FF_USE_LFN + DWORD dc; +#endif /* Get logical drive */ res = find_volume(&label, &fs, FA_WRITE); if (res != FR_OK) LEAVE_FF(fs, res); - dj.obj.fs = fs; - /* Get length of given volume label */ - for (slen = 0; (UINT)label[slen] >= ' '; slen++) ; /* Get name length */ - -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ - for (i = j = 0; i < slen; ) { /* Create volume label in directory form */ - w = label[i++]; -#if !_LFN_UNICODE - if (IsDBCS1(w)) { - w = (i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0; + mem_set(dirvn, 0, 22); + di = 0; + while (*label) { /* Create volume label in directory form */ + dc = tchar2uni(&label); /* Get a Unicode character */ + if (dc >= 0x10000) { + if (dc == 0xFFFFFFFF || di >= 10) { /* Wrong surrogate or buffer overflow */ + dc = 0; + } else { + st_word(dirvn + di * 2, (WCHAR)(dc >> 16)); di++; + } } - w = ff_convert(w, 1); -#endif - if (w == 0 || chk_chr(badchr, w) || j == 22) { /* Check validity check validity of the volume label */ + if (dc == 0 || chk_chr(badchr + 7, (int)dc) || di >= 11) { /* Check validity of the volume label */ LEAVE_FF(fs, FR_INVALID_NAME); } - st_word(dirvn + j, w); j += 2; + st_word(dirvn + di * 2, (WCHAR)dc); di++; } - slen = j; } else #endif - { /* On the FAT12/16/32 volume */ - for ( ; slen && label[slen - 1] == ' '; slen--) ; /* Remove trailing spaces */ - if (slen) { /* Is there a volume label to be set? */ - dirvn[0] = 0; i = j = 0; /* Create volume label in directory form */ - do { -#if _LFN_UNICODE - w = ff_convert(ff_wtoupper(label[i++]), 0); -#else - w = (BYTE)label[i++]; - if (IsDBCS1(w)) { - w = (j < 10 && i < slen && IsDBCS2(label[i])) ? w << 8 | (BYTE)label[i++] : 0; - } -#if _USE_LFN != 0 - w = ff_convert(ff_wtoupper(ff_convert(w, 1)), 0); -#else - if (IsLower(w)) w -= 0x20; /* To upper ASCII characters */ -#ifdef _EXCVT - if (w >= 0x80) w = ExCvt[w - 0x80]; /* To upper extended characters (SBCS cfg) */ -#else - if (!_DF1S && w >= 0x80) w = 0; /* Reject extended characters (ASCII cfg) */ + { /* On the FAT/FAT32 volume */ + mem_set(dirvn, ' ', 11); + di = 0; + while (*label) { /* Create volume label in directory form */ +#if FF_USE_LFN + dc = tchar2uni(&label); + wc = (dc < 0x10000) ? ff_uni2oem(ff_wtoupper(dc), CODEPAGE) : 0; +#else /* ANSI/OEM input */ + wc = (BYTE)*label++; + if (dbc_1st((BYTE)wc)) wc = dbc_2nd((BYTE)*label) ? wc << 8 | (BYTE)*label++ : 0; + if (IsLower(wc)) wc -= 0x20; /* To upper ASCII characters */ +#if FF_CODE_PAGE == 0 + if (ExCvt && wc >= 0x80) wc = ExCvt[wc - 0x80]; /* To upper extended characters (SBCS cfg) */ +#elif FF_CODE_PAGE < 900 + if (wc >= 0x80) wc = ExCvt[wc - 0x80]; /* To upper extended characters (SBCS cfg) */ #endif #endif -#endif - if (w == 0 || chk_chr(badchr, w) || j >= (UINT)((w >= 0x100) ? 10 : 11)) { /* Reject invalid characters for volume label */ - LEAVE_FF(fs, FR_INVALID_NAME); - } - if (w >= 0x100) dirvn[j++] = (BYTE)(w >> 8); - dirvn[j++] = (BYTE)w; - } while (i < slen); - while (j < 11) dirvn[j++] = ' '; /* Fill remaining name field */ - if (dirvn[0] == DDEM) LEAVE_FF(fs, FR_INVALID_NAME); /* Reject illegal name (heading DDEM) */ + if (wc == 0 || chk_chr(badchr + 0, (int)wc) || di >= (UINT)((wc >= 0x100) ? 10 : 11)) { /* Reject invalid characters for volume label */ + LEAVE_FF(fs, FR_INVALID_NAME); + } + if (wc >= 0x100) dirvn[di++] = (BYTE)(wc >> 8); + dirvn[di++] = (BYTE)wc; } + if (dirvn[0] == DDEM) LEAVE_FF(fs, FR_INVALID_NAME); /* Reject illegal name (heading DDEM) */ + while (di && dirvn[di - 1] == ' ') di--; /* Snip trailing spaces */ } /* Set volume label */ - dj.obj.sclust = 0; /* Open root directory */ + dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */ res = dir_sdi(&dj, 0); if (res == FR_OK) { - res = dir_read(&dj, 1); /* Get volume label entry */ + res = dir_read_label(&dj); /* Get volume label entry */ if (res == FR_OK) { - if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { - dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); /* Change the volume label */ - mem_cpy(dj.dir + XDIR_Label, dirvn, slen); + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { + dj.dir[XDIR_NumLabel] = (BYTE)di; /* Change the volume label */ + mem_cpy(dj.dir + XDIR_Label, dirvn, 22); } else { - if (slen) { + if (di != 0) { mem_cpy(dj.dir, dirvn, 11); /* Change the volume label */ } else { dj.dir[DIR_Name] = DDEM; /* Remove the volume label */ @@ -5090,17 +5301,17 @@ FRESULT f_setlabel ( } fs->wflag = 1; res = sync_fs(fs); - } else { /* No volume label entry is found or error */ + } else { /* No volume label entry or an error */ if (res == FR_NO_FILE) { res = FR_OK; - if (slen) { /* Create a volume label entry */ + if (di != 0) { /* Create a volume label entry */ res = dir_alloc(&dj, 1); /* Allocate an entry */ if (res == FR_OK) { - mem_set(dj.dir, 0, SZDIRE); /* Clear the entry */ - if (_FS_EXFAT && fs->fs_type == FS_EXFAT) { + mem_set(dj.dir, 0, SZDIRE); /* Clean the entry */ + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { dj.dir[XDIR_Type] = 0x83; /* Create 83 entry */ - dj.dir[XDIR_NumLabel] = (BYTE)(slen / 2); - mem_cpy(dj.dir + XDIR_Label, dirvn, slen); + dj.dir[XDIR_NumLabel] = (BYTE)di; + mem_cpy(dj.dir + XDIR_Label, dirvn, 22); } else { dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */ mem_cpy(dj.dir, dirvn, 11); @@ -5116,12 +5327,12 @@ FRESULT f_setlabel ( LEAVE_FF(fs, res); } -#endif /* !_FS_READONLY */ -#endif /* _USE_LABEL */ +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_LABEL */ -#if _USE_EXPAND && !_FS_READONLY +#if FF_USE_EXPAND && !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Allocate a Contiguous Blocks to the File */ /*-----------------------------------------------------------------------*/ @@ -5140,7 +5351,7 @@ FRESULT f_expand ( res = validate(&fp->obj, &fs); /* Check validity of the file object */ if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); if (fsz == 0 || fp->obj.objsize != 0 || !(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type != FS_EXFAT && fsz >= 0x100000000) LEAVE_FF(fs, FR_DENIED); /* Check if in size limit */ #endif n = (DWORD)fs->csize * SS(fs); /* Cluster size */ @@ -5148,7 +5359,7 @@ FRESULT f_expand ( stcl = fs->last_clst; lclst = 0; if (stcl < 2 || stcl >= fs->n_fatent) stcl = 2; -#if _FS_EXFAT +#if FF_FS_EXFAT if (fs->fs_type == FS_EXFAT) { scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */ if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */ @@ -5195,7 +5406,7 @@ FRESULT f_expand ( if (opt) { /* Is it allocated now? */ fp->obj.sclust = scl; /* Update object allocation information */ fp->obj.objsize = fsz; - if (_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ + if (FF_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ fp->flag |= FA_MODIFIED; if (fs->free_clst <= fs->n_fatent - 2) { /* Update FSINFO */ fs->free_clst -= tcl; @@ -5207,13 +5418,13 @@ FRESULT f_expand ( LEAVE_FF(fs, res); } -#endif /* _USE_EXPAND && !_FS_READONLY */ +#endif /* FF_USE_EXPAND && !FF_FS_READONLY */ -#if _USE_FORWARD +#if FF_USE_FORWARD /*-----------------------------------------------------------------------*/ -/* Forward data to the stream directly */ +/* Forward Data to the Stream Directly */ /*-----------------------------------------------------------------------*/ FRESULT f_forward ( @@ -5251,21 +5462,21 @@ FRESULT f_forward ( fp->clust = clst; /* Update current cluster */ } } - sect = clust2sect(fs, fp->clust); /* Get current data sector */ - if (!sect) ABORT(fs, FR_INT_ERR); + sect = clst2sect(fs, fp->clust); /* Get current data sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); sect += csect; -#if _FS_TINY +#if FF_FS_TINY if (move_window(fs, sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window to the file data */ dbuf = fs->win; #else if (fp->sect != sect) { /* Fill sector cache with file data */ -#if !_FS_READONLY +#if !FF_FS_READONLY if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ - if (disk_write(fs->drv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); fp->flag &= (BYTE)~FA_DIRTY; } #endif - if (disk_read(fs->drv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + if (disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); } dbuf = fp->buf; #endif @@ -5273,16 +5484,16 @@ FRESULT f_forward ( rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes left in the sector */ if (rcnt > btf) rcnt = btf; /* Clip it by btr if needed */ rcnt = (*func)(dbuf + ((UINT)fp->fptr % SS(fs)), rcnt); /* Forward the file data */ - if (!rcnt) ABORT(fs, FR_INT_ERR); + if (rcnt == 0) ABORT(fs, FR_INT_ERR); } LEAVE_FF(fs, FR_OK); } -#endif /* _USE_FORWARD */ +#endif /* FF_USE_FORWARD */ -#if _USE_MKFS && !_FS_READONLY +#if FF_USE_MKFS && !FF_FS_READONLY /*-----------------------------------------------------------------------*/ /* Create an FAT/exFAT volume */ /*-----------------------------------------------------------------------*/ @@ -5291,23 +5502,23 @@ FRESULT f_mkfs ( const TCHAR* path, /* Logical drive number */ BYTE opt, /* Format option */ DWORD au, /* Size of allocation unit (cluster) [byte] */ - void* work, /* Pointer to working buffer */ - UINT len /* Size of working buffer */ + void* work, /* Pointer to working buffer (null: use heap memory) */ + UINT len /* Size of working buffer [byte] */ ) { - const UINT n_fats = 1; /* Number of FATs for FAT12/16/32 volume (1 or 2) */ - const UINT n_rootdir = 512; /* Number of root directory entries for FAT12/16 volume */ - static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT12/16 volume (4Ks unit) */ + const UINT n_fats = 1; /* Number of FATs for FAT/FAT32 volume (1 or 2) */ + const UINT n_rootdir = 512; /* Number of root directory entries for FAT volume */ + static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT volume (4Ks unit) */ static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (128Ks unit) */ BYTE fmt, sys, *buf, *pte, pdrv, part; - WORD ss; + WORD ss; /* Sector size */ DWORD szb_buf, sz_buf, sz_blk, n_clst, pau, sect, nsect, n; DWORD b_vol, b_fat, b_data; /* Base LBA for volume, fat, data */ DWORD sz_vol, sz_rsv, sz_fat, sz_dir; /* Size for volume, fat, dir, data */ UINT i; int vol; DSTATUS stat; -#if _USE_TRIM || _FS_EXFAT +#if FF_USE_TRIM || FF_FS_EXFAT DWORD tbl[3]; #endif @@ -5315,7 +5526,7 @@ FRESULT f_mkfs ( /* Check mounted drive and clear work area */ vol = get_ldnumber(&path); /* Get target logical drive */ if (vol < 0) return FR_INVALID_DRIVE; - if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume */ + if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the volume if mounted */ pdrv = LD2PD(vol); /* Physical drive */ part = LD2PT(vol); /* Partition (0:create as new, 1-4:get from partition table) */ @@ -5324,70 +5535,78 @@ FRESULT f_mkfs ( if (stat & STA_NOINIT) return FR_NOT_READY; if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; if (disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK || !sz_blk || sz_blk > 32768 || (sz_blk & (sz_blk - 1))) sz_blk = 1; /* Erase block to align data area */ -#if _MAX_SS != _MIN_SS /* Get sector size of the medium if variable sector size cfg. */ +#if FF_MAX_SS != FF_MIN_SS /* Get sector size of the medium if variable sector size cfg. */ if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; - if (ss > _MAX_SS || ss < _MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; + if (ss > FF_MAX_SS || ss < FF_MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; #else - ss = _MAX_SS; + ss = FF_MAX_SS; #endif if ((au != 0 && au < ss) || au > 0x1000000 || (au & (au - 1))) return FR_INVALID_PARAMETER; /* Check if au is valid */ au /= ss; /* Cluster size in unit of sector */ /* Get working buffer */ - buf = (BYTE*)work; /* Working buffer */ - sz_buf = len / ss; /* Size of working buffer (sector) */ - szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ - if (!szb_buf) return FR_MKFS_ABORTED; +#if FF_USE_LFN == 3 + if (!work) { /* Use heap memory for working buffer */ + for (szb_buf = MAX_MALLOC, buf = 0; szb_buf >= ss && !(buf = ff_memalloc(szb_buf)); szb_buf /= 2) ; + sz_buf = szb_buf / ss; /* Size of working buffer (sector) */ + } else +#endif + { + buf = (BYTE*)work; /* Working buffer */ + sz_buf = len / ss; /* Size of working buffer (sector) */ + szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ + } + if (!buf || sz_buf == 0) return FR_NOT_ENOUGH_CORE; /* Determine where the volume to be located (b_vol, sz_vol) */ - if (_MULTI_PARTITION && part != 0) { + if (FF_MULTI_PARTITION && part != 0) { /* Get partition information from partition table in the MBR */ - if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Load MBR */ - if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check if MBR is valid */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Load MBR */ + if (ld_word(buf + BS_55AA) != 0xAA55) LEAVE_MKFS(FR_MKFS_ABORTED); /* Check if MBR is valid */ pte = buf + (MBR_Table + (part - 1) * SZ_PTE); - if (!pte[PTE_System]) return FR_MKFS_ABORTED; /* No partition? */ + if (pte[PTE_System] == 0) LEAVE_MKFS(FR_MKFS_ABORTED); /* No partition? */ b_vol = ld_dword(pte + PTE_StLba); /* Get volume start sector */ sz_vol = ld_dword(pte + PTE_SizLba); /* Get volume size */ } else { /* Create a single-partition in this function */ - if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_vol) != RES_OK) return FR_DISK_ERR; + if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_vol) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); b_vol = (opt & FM_SFD) ? 0 : 63; /* Volume start sector */ - if (sz_vol < b_vol) return FR_MKFS_ABORTED; + if (sz_vol < b_vol) LEAVE_MKFS(FR_MKFS_ABORTED); sz_vol -= b_vol; /* Volume size */ } - if (sz_vol < 128) return FR_MKFS_ABORTED; /* Check if volume size is >=128s */ + if (sz_vol < 128) LEAVE_MKFS(FR_MKFS_ABORTED); /* Check if volume size is >=128s */ /* Pre-determine the FAT type */ do { - if (_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */ + if (FF_FS_EXFAT && (opt & FM_EXFAT)) { /* exFAT possible? */ if ((opt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || au > 128) { /* exFAT only, vol >= 64Ms or au > 128s ? */ fmt = FS_EXFAT; break; } } - if (au > 128) return FR_INVALID_PARAMETER; /* Too large au for FAT/FAT32 */ + if (au > 128) LEAVE_MKFS(FR_INVALID_PARAMETER); /* Too large au for FAT/FAT32 */ if (opt & FM_FAT32) { /* FAT32 possible? */ if ((opt & FM_ANY) == FM_FAT32 || !(opt & FM_FAT)) { /* FAT32 only or no-FAT? */ fmt = FS_FAT32; break; } } - if (!(opt & FM_FAT)) return FR_INVALID_PARAMETER; /* no-FAT? */ + if (!(opt & FM_FAT)) LEAVE_MKFS(FR_INVALID_PARAMETER); /* no-FAT? */ fmt = FS_FAT16; } while (0); -#if _FS_EXFAT +#if FF_FS_EXFAT if (fmt == FS_EXFAT) { /* Create an exFAT volume */ DWORD szb_bit, szb_case, sum, nb, cl; WCHAR ch, si; UINT j, st; BYTE b; - if (sz_vol < 0x1000) return FR_MKFS_ABORTED; /* Too small volume? */ -#if _USE_TRIM + if (sz_vol < 0x1000) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume? */ +#if FF_USE_TRIM tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area may be erased */ disk_ioctl(pdrv, CTRL_TRIM, tbl); #endif /* Determine FAT location, data location and number of clusters */ - if (!au) { /* au auto-selection */ + if (au == 0) { /* au auto-selection */ au = 8; if (sz_vol >= 0x80000) au = 64; /* >= 512Ks */ if (sz_vol >= 0x4000000) au = 256; /* >= 64Ms */ @@ -5395,10 +5614,10 @@ FRESULT f_mkfs ( b_fat = b_vol + 32; /* FAT start at offset 32 */ sz_fat = ((sz_vol / au + 2) * 4 + ss - 1) / ss; /* Number of FAT sectors */ b_data = (b_fat + sz_fat + sz_blk - 1) & ~(sz_blk - 1); /* Align data area to the erase block boundary */ - if (b_data >= sz_vol / 2) return FR_MKFS_ABORTED; /* Too small volume? */ + if (b_data >= sz_vol / 2) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume? */ n_clst = (sz_vol - (b_data - b_vol)) / au; /* Number of clusters */ - if (n_clst <16) return FR_MKFS_ABORTED; /* Too few clusters? */ - if (n_clst > MAX_EXFAT) return FR_MKFS_ABORTED; /* Too many clusters? */ + if (n_clst <16) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too few clusters? */ + if (n_clst > MAX_EXFAT) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too many clusters? */ szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */ tbl[0] = (szb_bit + au * ss - 1) / (au * ss); /* Number of allocation bitmap clusters */ @@ -5410,7 +5629,7 @@ FRESULT f_mkfs ( do { switch (st) { case 0: - ch = ff_wtoupper(si); /* Get an up-case char */ + ch = (WCHAR)ff_wtoupper(si); /* Get an up-case char */ if (ch != si) { si++; break; /* Store the up-case char if exist */ } @@ -5432,9 +5651,9 @@ FRESULT f_mkfs ( sum = xsum32(buf[i + 0] = (BYTE)ch, sum); /* Put it into the write buffer */ sum = xsum32(buf[i + 1] = (BYTE)(ch >> 8), sum); i += 2; szb_case += 2; - if (!si || i == szb_buf) { /* Write buffered data when buffer full or end of process */ + if (si == 0 || i == szb_buf) { /* Write buffered data when buffer full or end of process */ n = (i + ss - 1) / ss; - if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); sect += n; i = 0; } } while (si); @@ -5447,9 +5666,9 @@ FRESULT f_mkfs ( do { mem_set(buf, 0, szb_buf); for (i = 0; nb >= 8 && i < szb_buf; buf[i++] = 0xFF, nb -= 8) ; - for (b = 1; nb && i < szb_buf; buf[i] |= b, b <<= 1, nb--) ; + for (b = 1; nb != 0 && i < szb_buf; buf[i] |= b, b <<= 1, nb--) ; n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ - if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); sect += n; nsect -= n; } while (nsect); @@ -5463,14 +5682,14 @@ FRESULT f_mkfs ( st_dword(buf + i, 0xFFFFFFFF); i += 4; cl++; } do { /* Create chains of bitmap, up-case and root dir */ - while (nb && i < szb_buf) { /* Create a chain */ + while (nb != 0 && i < szb_buf) { /* Create a chain */ st_dword(buf + i, (nb > 1) ? cl + 1 : 0xFFFFFFFF); i += 4; cl++; nb--; } - if (!nb && j < 3) nb = tbl[j++]; /* Next chain */ - } while (nb && i < szb_buf); + if (nb == 0 && j < 3) nb = tbl[j++]; /* Next chain */ + } while (nb != 0 && i < szb_buf); n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ - if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); sect += n; nsect -= n; } while (nsect); @@ -5487,7 +5706,7 @@ FRESULT f_mkfs ( sect = b_data + au * (tbl[0] + tbl[1]); nsect = au; /* Start of the root directory and number of sectors */ do { /* Fill root directory sectors */ n = (nsect > sz_buf) ? sz_buf : nsect; - if (disk_write(pdrv, buf, sect, n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); mem_set(buf, 0, ss); sect += n; nsect -= n; } while (nsect); @@ -5506,7 +5725,7 @@ FRESULT f_mkfs ( st_dword(buf + BPB_NumClusEx, n_clst); /* Number of clusters */ st_dword(buf + BPB_RootClusEx, 2 + tbl[0] + tbl[1]); /* Root dir cluster # */ st_dword(buf + BPB_VolIDEx, GET_FATTIME()); /* VSN */ - st_word(buf + BPB_FSVerEx, 0x100); /* File system version (1.00) */ + st_word(buf + BPB_FSVerEx, 0x100); /* Filesystem version (1.00) */ for (buf[BPB_BytsPerSecEx] = 0, i = ss; i >>= 1; buf[BPB_BytsPerSecEx]++) ; /* Log2 of sector size [byte] */ for (buf[BPB_SecPerClusEx] = 0, i = au; i >>= 1; buf[BPB_SecPerClusEx]++) ; /* Log2 of cluster size [sector] */ buf[BPB_NumFATsEx] = 1; /* Number of FATs */ @@ -5516,33 +5735,33 @@ FRESULT f_mkfs ( for (i = sum = 0; i < ss; i++) { /* VBR checksum */ if (i != BPB_VolFlagEx && i != BPB_VolFlagEx + 1 && i != BPB_PercInUseEx) sum = xsum32(buf[i], sum); } - if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Extended bootstrap record (+1..+8) */ mem_set(buf, 0, ss); st_word(buf + ss - 2, 0xAA55); /* Signature (placed at end of sector) */ for (j = 1; j < 9; j++) { for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ - if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); } /* OEM/Reserved record (+9..+10) */ mem_set(buf, 0, ss); for ( ; j < 11; j++) { for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ - if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); } /* Sum record (+11) */ for (i = 0; i < ss; i += 4) st_dword(buf + i, sum); /* Fill with checksum value */ - if (disk_write(pdrv, buf, sect++, 1) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); } } else -#endif /* _FS_EXFAT */ - { /* Create an FAT12/16/32 volume */ +#endif /* FF_FS_EXFAT */ + { /* Create an FAT/FAT32 volume */ do { pau = au; /* Pre-determine number of clusters and FAT sub-type */ if (fmt == FS_FAT32) { /* FAT32 volume */ - if (!pau) { /* au auto-selection */ + if (pau == 0) { /* au auto-selection */ n = sz_vol / 0x20000; /* Volume size in unit of 128KS */ for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */ } @@ -5550,9 +5769,9 @@ FRESULT f_mkfs ( sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */ sz_rsv = 32; /* Number of reserved sectors */ sz_dir = 0; /* No static directory */ - if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) return FR_MKFS_ABORTED; - } else { /* FAT12/16 volume */ - if (!pau) { /* au auto-selection */ + if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) LEAVE_MKFS(FR_MKFS_ABORTED); + } else { /* FAT volume */ + if (pau == 0) { /* au auto-selection */ n = sz_vol / 0x1000; /* Volume size in unit of 4KS */ for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */ } @@ -5574,42 +5793,42 @@ FRESULT f_mkfs ( n = ((b_data + sz_blk - 1) & ~(sz_blk - 1)) - b_data; /* Next nearest erase block from current data base */ if (fmt == FS_FAT32) { /* FAT32: Move FAT base */ sz_rsv += n; b_fat += n; - } else { /* FAT12/16: Expand FAT size */ + } else { /* FAT: Expand FAT size */ sz_fat += n / n_fats; } /* Determine number of clusters and final check of validity of the FAT sub-type */ - if (sz_vol < b_data + pau * 16 - b_vol) return FR_MKFS_ABORTED; /* Too small volume */ + if (sz_vol < b_data + pau * 16 - b_vol) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume */ n_clst = (sz_vol - sz_rsv - sz_fat * n_fats - sz_dir) / pau; if (fmt == FS_FAT32) { if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32 */ - if (!au && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ - return FR_MKFS_ABORTED; + if (au == 0 && (au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); } } if (fmt == FS_FAT16) { if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */ - if (!au && (pau * 2) <= 64) { + if (au == 0 && (pau * 2) <= 64) { au = pau * 2; continue; /* Adjust cluster size and retry */ } if ((opt & FM_FAT32)) { fmt = FS_FAT32; continue; /* Switch type to FAT32 and retry */ } - if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ - return FR_MKFS_ABORTED; + if (au == 0 && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); } if (n_clst <= MAX_FAT12) { /* Too few clusters for FAT16 */ - if (!au && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ - return FR_MKFS_ABORTED; + if (au == 0 && (au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); } } - if (fmt == FS_FAT12 && n_clst > MAX_FAT12) return FR_MKFS_ABORTED; /* Too many clusters for FAT12 */ + if (fmt == FS_FAT12 && n_clst > MAX_FAT12) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too many clusters for FAT12 */ /* Ok, it is the valid cluster configuration */ break; } while (1); -#if _USE_TRIM +#if FF_USE_TRIM tbl[0] = b_vol; tbl[1] = b_vol + sz_vol - 1; /* Inform the device the volume area can be erased */ disk_ioctl(pdrv, CTRL_TRIM, tbl); #endif @@ -5647,7 +5866,7 @@ FRESULT f_mkfs ( mem_cpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */ } st_word(buf + BS_55AA, 0xAA55); /* Signature (offset is fixed here regardless of sector size) */ - if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the VBR sector */ + if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Write it to the VBR sector */ /* Create FSINFO record if needed */ if (fmt == FS_FAT32) { @@ -5676,7 +5895,7 @@ FRESULT f_mkfs ( nsect = sz_fat; /* Number of FAT sectors */ do { /* Fill FAT sectors */ n = (nsect > sz_buf) ? sz_buf : nsect; - if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); mem_set(buf, 0, ss); sect += n; nsect -= n; } while (nsect); @@ -5686,32 +5905,32 @@ FRESULT f_mkfs ( nsect = (fmt == FS_FAT32) ? pau : sz_dir; /* Number of root directory sectors */ do { n = (nsect > sz_buf) ? sz_buf : nsect; - if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) return FR_DISK_ERR; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); sect += n; nsect -= n; } while (nsect); } /* Determine system ID in the partition table */ - if (_FS_EXFAT && fmt == FS_EXFAT) { + if (FF_FS_EXFAT && fmt == FS_EXFAT) { sys = 0x07; /* HPFS/NTFS/exFAT */ } else { if (fmt == FS_FAT32) { sys = 0x0C; /* FAT32X */ } else { if (sz_vol >= 0x10000) { - sys = 0x06; /* FAT12/16 (>=64KS) */ + sys = 0x06; /* FAT12/16 (large) */ } else { - sys = (fmt == FS_FAT16) ? 0x04 : 0x01; /* FAT16 (<64KS) : FAT12 (<64KS) */ + sys = (fmt == FS_FAT16) ? 0x04 : 0x01; /* FAT16 : FAT12 */ } } } /* Update partition information */ - if (_MULTI_PARTITION && part != 0) { /* Created in the existing partition */ + if (FF_MULTI_PARTITION && part != 0) { /* Created in the existing partition */ /* Update system ID in the partition table */ - if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Read the MBR */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Read the MBR */ buf[MBR_Table + (part - 1) * SZ_PTE + PTE_System] = sys; /* Set system ID */ - if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it back to the MBR */ + if (disk_write(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Write it back to the MBR */ } else { /* Created as a new single partition */ if (!(opt & FM_SFD)) { /* Create partition table if in FDISK format */ mem_set(buf, 0, ss); @@ -5724,36 +5943,37 @@ FRESULT f_mkfs ( pte[PTE_System] = sys; /* System type */ n = (b_vol + sz_vol) / (63 * 255); /* (End CHS may be invalid) */ pte[PTE_EdHead] = 254; /* End head */ - pte[PTE_EdSec] = (BYTE)(n >> 2 | 63); /* End sector */ + pte[PTE_EdSec] = (BYTE)(((n >> 2) & 0xC0) | 63); /* End sector */ pte[PTE_EdCyl] = (BYTE)n; /* End cylinder */ st_dword(pte + PTE_StLba, b_vol); /* Start offset in LBA */ st_dword(pte + PTE_SizLba, sz_vol); /* Size in sectors */ - if (disk_write(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the MBR */ + if (disk_write(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Write it to the MBR */ } } - if (disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) return FR_DISK_ERR; + if (disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); - return FR_OK; + LEAVE_MKFS(FR_OK); } -#if _MULTI_PARTITION +#if FF_MULTI_PARTITION /*-----------------------------------------------------------------------*/ -/* Create partition table on the physical drive */ +/* Create Partition Table on the Physical Drive */ /*-----------------------------------------------------------------------*/ FRESULT f_fdisk ( BYTE pdrv, /* Physical drive number */ const DWORD* szt, /* Pointer to the size table for each partitions */ - void* work /* Pointer to the working buffer */ + void* work /* Pointer to the working buffer (null: use heap memory) */ ) { UINT i, n, sz_cyl, tot_cyl, b_cyl, e_cyl, p_cyl; - BYTE s_hd, e_hd, *p, *buf = (BYTE*)work; + BYTE s_hd, e_hd, *p, *buf; = (BYTE*)work; DSTATUS stat; DWORD sz_disk, sz_part, s_part; + FRESULT res; stat = disk_initialize(pdrv); @@ -5761,6 +5981,12 @@ FRESULT f_fdisk ( if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_disk)) return FR_DISK_ERR; + buf = (BYTE*)work; +#if FF_USE_LFN == 3 + if (!buf) buf = ff_memalloc(FF_MAX_SS); /* Use heap memory for working buffer */ +#endif + if (!buf) return FR_NOT_ENOUGH_CORE; + /* Determine the CHS without any consideration of the drive geometry */ for (n = 16; n < 256 && sz_disk / n / 63 > 1024; n *= 2) ; if (n == 256) n--; @@ -5769,11 +5995,11 @@ FRESULT f_fdisk ( tot_cyl = sz_disk / sz_cyl; /* Create partition table */ - mem_set(buf, 0, _MAX_SS); + mem_set(buf, 0, FF_MAX_SS); p = buf + MBR_Table; b_cyl = 0; for (i = 0; i < 4; i++, p += SZ_PTE) { p_cyl = (szt[i] <= 100U) ? (DWORD)tot_cyl * szt[i] / 100 : szt[i] / sz_cyl; /* Number of cylinders */ - if (!p_cyl) continue; + if (p_cyl == 0) continue; s_part = (DWORD)sz_cyl * b_cyl; sz_part = (DWORD)sz_cyl * p_cyl; if (i == 0) { /* Exclude first track of cylinder 0 */ @@ -5783,15 +6009,15 @@ FRESULT f_fdisk ( s_hd = 0; } e_cyl = b_cyl + p_cyl - 1; /* End cylinder */ - if (e_cyl >= tot_cyl) return FR_INVALID_PARAMETER; + if (e_cyl >= tot_cyl) LEAVE_MKFS(FR_INVALID_PARAMETER); /* Set partition table */ p[1] = s_hd; /* Start head */ - p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */ + p[2] = (BYTE)(((b_cyl >> 2) & 0xC0) | 1); /* Start sector */ p[3] = (BYTE)b_cyl; /* Start cylinder */ p[4] = 0x07; /* System type (temporary setting) */ p[5] = e_hd; /* End head */ - p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */ + p[6] = (BYTE)(((e_cyl >> 2) & 0xC0) | 63); /* End sector */ p[7] = (BYTE)e_cyl; /* End cylinder */ st_dword(p + 8, s_part); /* Start sector in LBA */ st_dword(p + 12, sz_part); /* Number of sectors */ @@ -5799,105 +6025,181 @@ FRESULT f_fdisk ( /* Next partition */ b_cyl += p_cyl; } - st_word(p, 0xAA55); + st_word(p, 0xAA55); /* MBR signature (always at offset 510) */ /* Write it to the MBR */ - return (disk_write(pdrv, buf, 0, 1) != RES_OK || disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) ? FR_DISK_ERR : FR_OK; + res = (disk_write(pdrv, buf, 0, 1) == RES_OK && disk_ioctl(pdrv, CTRL_SYNC, 0) == RES_OK) ? FR_OK : FR_DISK_ERR; + LEAVE_MKFS(res); } -#endif /* _MULTI_PARTITION */ -#endif /* _USE_MKFS && !_FS_READONLY */ +#endif /* FF_MULTI_PARTITION */ +#endif /* FF_USE_MKFS && !FF_FS_READONLY */ -#if _USE_STRFUNC +#if FF_USE_STRFUNC +#if FF_USE_LFN && FF_LFN_UNICODE && (FF_STRF_ENCODE < 0 || FF_STRF_ENCODE > 3) +#error Wrong FF_STRF_ENCODE setting +#endif /*-----------------------------------------------------------------------*/ -/* Get a string from the file */ +/* Get a String from the File */ /*-----------------------------------------------------------------------*/ TCHAR* f_gets ( TCHAR* buff, /* Pointer to the string buffer to read */ - int len, /* Size of string buffer (characters) */ + int len, /* Size of string buffer (items) */ FIL* fp /* Pointer to the file object */ ) { - int n = 0; - TCHAR c, *p = buff; + int nc = 0; + TCHAR *p = buff; BYTE s[2]; UINT rc; + WCHAR wc; +#if FF_USE_LFN && ((FF_LFN_UNICODE == 1 && FF_STRF_ENCODE == 3) || (FF_LFN_UNICODE == 2 && FF_STRF_ENCODE != 3)) + DWORD dc; +#endif +#if FF_USE_LFN && FF_LFN_UNICODE == 1 && FF_STRF_ENCODE == 3 + UINT ct; +#endif - - while (n < len - 1) { /* Read characters until buffer gets filled */ -#if _LFN_UNICODE -#if _STRF_ENCODE == 3 /* Read a character in UTF-8 */ +#if FF_USE_LFN && FF_LFN_UNICODE == 1 /* UTF-16 output */ +#if FF_STRF_ENCODE == 0 /* Read a character in ANSI/OEM */ + while (nc < len - 1) { f_read(fp, s, 1, &rc); if (rc != 1) break; - c = s[0]; - if (c >= 0x80) { - if (c < 0xC0) continue; /* Skip stray trailer */ - if (c < 0xE0) { /* Two-byte sequence (0x80-0x7FF) */ + wc = s[0]; + if (dbc_1st((BYTE)wc)) { + f_read(fp, s, 1, &rc); + if (rc != 1 || !dbc_2nd(s[0])) continue; + wc = wc << 8 | s[0]; + } + wc = ff_oem2uni(wc, CODEPAGE); + if (wc == 0) continue; +#elif FF_STRF_ENCODE == 1 || FF_STRF_ENCODE == 2 /* Read a character in UTF-16LE/BE */ + while (nc < len - 1) { + f_read(fp, s, 2, &rc); + if (rc != 2) break; + wc = (FF_STRF_ENCODE == 1) ? s[1] << 8 | s[0] : s[0] << 8 | s[1]; +#elif FF_STRF_ENCODE == 3 /* Read a character in UTF-8 */ + while (nc < len - 2) { + f_read(fp, s, 1, &rc); + if (rc != 1) break; + dc = s[0]; + if (dc >= 0x80) { + ct = 0; + if ((dc & 0xE0) == 0xC0) { dc &= 0x1F; ct = 1; } + if ((dc & 0xF0) == 0xE0) { dc &= 0x0F; ct = 2; } + if ((dc & 0xF8) == 0xF0) { dc &= 0x07; ct = 3; } + if (ct == 0) continue; + do { f_read(fp, s, 1, &rc); - if (rc != 1) break; - c = (c & 0x1F) << 6 | (s[0] & 0x3F); - if (c < 0x80) c = '?'; /* Reject invalid code range */ + if (rc != 1 || (s[0] & 0xC0) != 0x80) break; + dc = dc << 6 | (s[0] & 0x3F); + } while (--ct); + if (ct || dc < 0x80 || dc >= 0x110000) continue; + } + if (dc >= 0x10000) { + wc = (WCHAR)(0xD800 | ((dc >> 10) - 0x40)); + *p++ = wc; nc++; + wc = (WCHAR)(0xDC00 | (dc & 0x3FF)); + } else { + wc = (WCHAR)dc; + } +#endif + /* Output it in UTF-16 encoding */ + if (FF_USE_STRFUNC == 2 && wc == '\r') continue; + *p++ = wc; nc++; + if (wc == '\n') break; + } + +#elif FF_USE_LFN && FF_LFN_UNICODE == 2 && FF_STRF_ENCODE != 3 /* UTF-8 output */ + while (nc < len - 4) { +#if FF_STRF_ENCODE == 0 /* Read a character in ANSI/OEM */ + f_read(fp, s, 1, &rc); + if (rc != 1) break; + wc = s[0]; + if (dbc_1st((BYTE)wc)) { + f_read(fp, s, 1, &rc); + if (rc != 1 || !dbc_2nd(s[0])) continue; + wc = wc << 8 | s[0]; + } + dc = ff_oem2uni(wc, CODEPAGE); + if (dc == 0) continue; +#else /* Read a character in UTF-16LE/BE */ + f_read(fp, s, 2, &rc); + if (rc != 2) break; + dc = (FF_STRF_ENCODE == 1) ? s[1] << 8 | s[0] : s[0] << 8 | s[1]; + if (IsSurrogate(dc)) { + f_read(fp, s, 2, &rc); + if (rc != 2) break; + wc = (FF_STRF_ENCODE == 1) ? s[1] << 8 | s[0] : s[0] << 8 | s[1]; + if (!IsSurrogateH(dc) || !IsSurrogateL(wc)) continue; + dc = ((dc & 0x3FF) + 0x40) << 10 | (wc & 0x3FF); + } +#endif + /* Output it in UTF-8 encoding */ + if (FF_USE_STRFUNC == 2 && dc == '\r') continue; + if (dc < 0x80) { /* 1-byte */ + *p++ = (TCHAR)dc; + nc++; + if (dc == '\n') break; + } else { + if (dc < 0x800) { /* 2-byte */ + *p++ = (TCHAR)(0xC0 | (dc >> 6 & 0x1F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 2; } else { - if (c < 0xF0) { /* Three-byte sequence (0x800-0xFFFF) */ - f_read(fp, s, 2, &rc); - if (rc != 2) break; - c = c << 12 | (s[0] & 0x3F) << 6 | (s[1] & 0x3F); - if (c < 0x800) c = '?'; /* Reject invalid code range */ - } else { /* Reject four-byte sequence */ - c = '?'; + if (dc < 0x10000) { /* 3-byte */ + *p++ = (TCHAR)(0xE0 | (dc >> 12 & 0x0F)); + *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 3; + } else { /* 4-byte */ + *p++ = (TCHAR)(0xF0 | (dc >> 18 & 0x07)); + *p++ = (TCHAR)(0x80 | (dc >> 12 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 4; } } } -#elif _STRF_ENCODE == 2 /* Read a character in UTF-16BE */ - f_read(fp, s, 2, &rc); - if (rc != 2) break; - c = s[1] + (s[0] << 8); -#elif _STRF_ENCODE == 1 /* Read a character in UTF-16LE */ - f_read(fp, s, 2, &rc); - if (rc != 2) break; - c = s[0] + (s[1] << 8); -#else /* Read a character in ANSI/OEM */ - f_read(fp, s, 1, &rc); - if (rc != 1) break; - c = s[0]; - if (IsDBCS1(c)) { - f_read(fp, s, 1, &rc); - if (rc != 1) break; - c = (c << 8) + s[0]; - } - c = ff_convert(c, 1); /* OEM -> Unicode */ - if (!c) c = '?'; -#endif -#else /* Read a character without conversion */ - f_read(fp, s, 1, &rc); - if (rc != 1) break; - c = s[0]; -#endif - if (_USE_STRFUNC == 2 && c == '\r') continue; /* Strip '\r' */ - *p++ = c; - n++; - if (c == '\n') break; /* Break on EOL */ } + +#else /* Byte-by-byte without any conversion (ANSI/OEM API or UTF-8 to UTF-8) */ + while (nc < len - 1) { + f_read(fp, s, 1, &rc); + if (rc != 1) break; + wc = s[0]; + if (FF_USE_STRFUNC == 2 && wc == '\r') continue; + *p++ = (TCHAR)wc; nc++; + if (wc == '\n') break; + } +#endif + *p = 0; - return n ? buff : 0; /* When no data read (eof or error), return with error. */ + return nc ? buff : 0; /* When no data read (EOF or error), return with error. */ } -#if !_FS_READONLY +#if !FF_FS_READONLY #include /*-----------------------------------------------------------------------*/ -/* Put a character to the file */ +/* Put a Character to the File */ /*-----------------------------------------------------------------------*/ -typedef struct { +typedef struct { /* Putchar output buffer and work area */ FIL *fp; /* Ptr to the writing file */ - int idx, nchr; /* Write index of buf[] (-1:error), number of chars written */ + int idx, nchr; /* Write index of buf[] (-1:error), number of encoding units written */ +#if FF_USE_LFN && FF_LFN_UNICODE == 1 + WCHAR hs; +#elif FF_USE_LFN && FF_LFN_UNICODE == 2 + BYTE bs[4]; + UINT wi, ct; +#endif BYTE buf[64]; /* Write buffer */ } putbuff; @@ -5908,53 +6210,138 @@ void putc_bfd ( /* Buffered write with code conversion */ TCHAR c ) { - UINT bw; - int i; + UINT n; + int i, nc; +#if FF_USE_LFN && (FF_LFN_UNICODE == 1 || (FF_LFN_UNICODE == 2 && (FF_STRF_ENCODE != 3))) + WCHAR hs, wc; +#endif +#if FF_USE_LFN && FF_LFN_UNICODE == 2 && FF_STRF_ENCODE != 3 + DWORD dc; + TCHAR *tp; +#endif - - if (_USE_STRFUNC == 2 && c == '\n') { /* LF -> CRLF conversion */ + if (FF_USE_STRFUNC == 2 && c == '\n') { /* LF -> CRLF conversion */ putc_bfd(pb, '\r'); } - i = pb->idx; /* Write index of pb->buf[] */ + i = pb->idx; /* Write index of pb->buf[] */ if (i < 0) return; + nc = pb->nchr; /* Write unit count */ -#if _LFN_UNICODE -#if _STRF_ENCODE == 3 /* Write a character in UTF-8 */ - if (c < 0x80) { /* 7-bit */ - pb->buf[i++] = (BYTE)c; - } else { - if (c < 0x800) { /* 11-bit */ - pb->buf[i++] = (BYTE)(0xC0 | c >> 6); - } else { /* 16-bit */ - pb->buf[i++] = (BYTE)(0xE0 | c >> 12); - pb->buf[i++] = (BYTE)(0x80 | (c >> 6 & 0x3F)); - } - pb->buf[i++] = (BYTE)(0x80 | (c & 0x3F)); +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 +#if FF_USE_LFN && FF_LFN_UNICODE == 1 /* UTF-16 input */ + if (IsSurrogateH(c)) { + pb->hs = c; return; + } + wc = c; hs = pb->hs; pb->hs = 0; + if (hs != 0) { + if (!IsSurrogateL(wc)) hs = 0; + } else { + if (IsSurrogateL(wc)) return; + } +#if FF_STRF_ENCODE == 3 /* Write it in UTF-8 */ + if (hs != 0) { /* 4-byte */ + nc += 4; + hs = (hs & 0x3FF) + 0x40; + pb->buf[i++] = (BYTE)(0xF0 | hs >> 8); + pb->buf[i++] = (BYTE)(0x80 | (hs >> 2 & 0x3F)); + pb->buf[i++] = (BYTE)(0x80 | (hs & 3) << 4 | (wc >> 6 & 0x0F)); + pb->buf[i++] = (BYTE)(0x80 | (wc & 0x3F)); + } else { + if (wc < 0x80) { /* 1-byte */ + nc++; + pb->buf[i++] = (BYTE)wc; + } else { + if (wc < 0x800) { /* 2-byte */ + nc += 2; + pb->buf[i++] = (BYTE)(0xC0 | wc >> 6); + } else { /* 3-byte */ + nc += 3; + pb->buf[i++] = (BYTE)(0xE0 | wc >> 12); + pb->buf[i++] = (BYTE)(0x80 | (wc >> 6 & 0x3F)); + } + pb->buf[i++] = (BYTE)(0x80 | (wc & 0x3F)); + } } -#elif _STRF_ENCODE == 2 /* Write a character in UTF-16BE */ - pb->buf[i++] = (BYTE)(c >> 8); - pb->buf[i++] = (BYTE)c; -#elif _STRF_ENCODE == 1 /* Write a character in UTF-16LE */ - pb->buf[i++] = (BYTE)c; - pb->buf[i++] = (BYTE)(c >> 8); -#else /* Write a character in ANSI/OEM */ - c = ff_convert(c, 0); /* Unicode -> OEM */ - if (!c) c = '?'; - if (c >= 0x100) - pb->buf[i++] = (BYTE)(c >> 8); - pb->buf[i++] = (BYTE)c; #endif -#else /* Write a character without conversion */ - pb->buf[i++] = (BYTE)c; +#else /* UTF-8 input */ + for (;;) { + if (pb->ct == 0) { /* Out of multi-byte sequence? */ + pb->bs[pb->wi = 0] = (BYTE)c; /* Save 1st byte */ + if ((BYTE)c < 0x80) break; /* 1-byte? */ + if (((BYTE)c & 0xE0) == 0xC0) pb->ct = 1; /* 2-byte? */ + if (((BYTE)c & 0xF0) == 0xE0) pb->ct = 2; /* 3-byte? */ + if (((BYTE)c & 0xF1) == 0xF0) pb->ct = 3; /* 4-byte? */ + return; + } else { /* In the multi-byte sequence */ + if (((BYTE)c & 0xC0) != 0x80) { /* Broken sequence? */ + pb->ct = 0; continue; + } + pb->bs[++pb->wi] = (BYTE)c; /* Save the trailing byte */ + if (--pb->ct == 0) break; /* End of sequence? */ + return; + } + } +#if FF_STRF_ENCODE == 3 /* Write it in UTF-8 */ + pb->buf[i++] = pb->bs[0]; nc++; + if (pb->bs[0] >= 0xC0) { + pb->buf[i++] = pb->bs[1]; nc++; + } + if (pb->bs[0] >= 0xE0) { + pb->buf[i++] = pb->bs[2]; nc++; + } + if (pb->bs[0] >= 0xF0) { + pb->buf[i++] = pb->bs[3]; nc++; + } +#else /* Write it in UTF-16 or ANSI/OEM */ + tp = (TCHAR*)pb->bs; + dc = tchar2uni(&tp); /* UTF-8 ==> UTF-16 */ + if (dc == 0xFFFFFFFF) return; + wc = (WCHAR)dc; + hs = (WCHAR)(dc >> 16); +#endif +#endif +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 && FF_STRF_ENCODE != 3 +#if FF_STRF_ENCODE == 2 /* Write a character in UTF-16BE */ + if (hs != 0) { + pb->buf[i++] = (BYTE)(hs >> 8); + pb->buf[i++] = (BYTE)hs; + nc++; + } + pb->buf[i++] = (BYTE)(wc >> 8); + pb->buf[i++] = (BYTE)wc; + nc++; +#elif FF_STRF_ENCODE == 1 /* Write a character in UTF-16LE */ + if (hs != 0) { + pb->buf[i++] = (BYTE)hs; + pb->buf[i++] = (BYTE)(hs >> 8); + nc++; + } + pb->buf[i++] = (BYTE)wc; + pb->buf[i++] = (BYTE)(wc >> 8); + nc++; +#else /* Write a character in ANSI/OEM */ + if (hs != 0) return; + wc = ff_uni2oem(wc, CODEPAGE); /* UTF-16 ==> ANSI/OEM */ + if (wc == 0) return;; + if (wc >= 0x100) { + pb->buf[i++] = (BYTE)(wc >> 8); nc++; + } + pb->buf[i++] = (BYTE)wc; nc++; +#endif #endif - if (i >= (int)(sizeof pb->buf) - 3) { /* Write buffered characters to the file */ - f_write(pb->fp, pb->buf, (UINT)i, &bw); - i = (bw == (UINT)i) ? 0 : -1; +#else /* ANSI/OEM input */ + pb->buf[i++] = (BYTE)c; + nc++; +#endif + + if (i >= (int)(sizeof pb->buf) - 4) { /* Write buffered characters to the file */ + f_write(pb->fp, pb->buf, (UINT)i, &n); + i = (n == (UINT)i) ? 0 : -1; } pb->idx = i; - pb->nchr++; + pb->nchr = nc; } @@ -5978,8 +6365,8 @@ void putc_init ( /* Initialize write buffer */ FIL* fp ) { + mem_set(pb, 0, sizeof (putbuff)); pb->fp = fp; - pb->nchr = pb->idx = 0; } @@ -6001,7 +6388,7 @@ int f_putc ( /*-----------------------------------------------------------------------*/ -/* Put a string to the file */ +/* Put a String to the File */ /*-----------------------------------------------------------------------*/ int f_puts ( @@ -6021,7 +6408,7 @@ int f_puts ( /*-----------------------------------------------------------------------*/ -/* Put a formatted string to the file */ +/* Put a Formatted String to the File */ /*-----------------------------------------------------------------------*/ int f_printf ( @@ -6058,41 +6445,46 @@ int f_printf ( f = 2; c = *fmt++; } } - while (IsDigit(c)) { /* Precision */ - w = w * 10 + c - '0'; + if (c == '*') { /* Minimum width by argument */ + w = va_arg(arp, int); c = *fmt++; + } else { + while (IsDigit(c)) { /* Minimum width */ + w = w * 10 + c - '0'; + c = *fmt++; + } } - if (c == 'l' || c == 'L') { /* Prefix: Size is long int */ + if (c == 'l' || c == 'L') { /* Type prefix: Size is long int */ f |= 4; c = *fmt++; } - if (!c) break; + if (c == 0) break; d = c; if (IsLower(d)) d -= 0x20; - switch (d) { /* Type is... */ + switch (d) { /* Atgument type is... */ case 'S' : /* String */ p = va_arg(arp, TCHAR*); for (j = 0; p[j]; j++) ; - if (!(f & 2)) { - while (j++ < w) putc_bfd(&pb, ' '); + if (!(f & 2)) { /* Right padded */ + while (j++ < w) putc_bfd(&pb, ' ') ; } - while (*p) putc_bfd(&pb, *p++); - while (j++ < w) putc_bfd(&pb, ' '); + while (*p) putc_bfd(&pb, *p++) ; /* String body */ + while (j++ < w) putc_bfd(&pb, ' ') ; /* Left padded */ continue; case 'C' : /* Character */ putc_bfd(&pb, (TCHAR)va_arg(arp, int)); continue; - case 'B' : /* Binary */ + case 'B' : /* Unsigned binary */ r = 2; break; - case 'O' : /* Octal */ + case 'O' : /* Unsigned octal */ r = 8; break; case 'D' : /* Signed decimal */ case 'U' : /* Unsigned decimal */ r = 10; break; - case 'X' : /* Hexdecimal */ + case 'X' : /* Unsigned hexdecimal */ r = 16; break; default: /* Unknown type (pass-through) */ @@ -6110,14 +6502,16 @@ int f_printf ( d = (TCHAR)(v % r); v /= r; if (d > 9) d += (c == 'x') ? 0x27 : 0x07; str[i++] = d + '0'; - } while (v && i < sizeof str / sizeof str[0]); + } while (v && i < sizeof str / sizeof *str); if (f & 8) str[i++] = '-'; j = i; d = (f & 1) ? '0' : ' '; - while (!(f & 2) && j++ < w) putc_bfd(&pb, d); + if (!(f & 2)) { + while (j++ < w) putc_bfd(&pb, d); /* Right pad */ + } do { - putc_bfd(&pb, str[--i]); + putc_bfd(&pb, str[--i]); /* Number body */ } while (i); - while (j++ < w) putc_bfd(&pb, d); + while (j++ < w) putc_bfd(&pb, d); /* Left pad */ } va_end(arp); @@ -6125,5 +6519,37 @@ int f_printf ( return putc_flush(&pb); } -#endif /* !_FS_READONLY */ -#endif /* _USE_STRFUNC */ +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_STRFUNC */ + + + +#if FF_CODE_PAGE == 0 +/*-----------------------------------------------------------------------*/ +/* Set Active Codepage for the Path Name */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_setcp ( + WORD cp /* Value to be set as active code page */ +) +{ + static const WORD validcp[] = { 437, 720, 737, 771, 775, 850, 852, 857, 860, 861, 862, 863, 864, 865, 866, 869, 932, 936, 949, 950, 0}; + static const BYTE *const tables[] = {Ct437, Ct720, Ct737, Ct771, Ct775, Ct850, Ct852, Ct857, Ct860, Ct861, Ct862, Ct863, Ct864, Ct865, Ct866, Ct869, Dc932, Dc936, Dc949, Dc950, 0}; + UINT i; + + + for (i = 0; validcp[i] != 0 && validcp[i] != cp; i++) ; /* Find the code page */ + if (validcp[i] != cp) return FR_INVALID_PARAMETER; /* Not found? */ + + CodePage = cp; + if (cp >= 900) { /* DBCS */ + ExCvt = 0; + DbcTbl = tables[i]; + } else { /* SBCS */ + ExCvt = tables[i]; + DbcTbl = 0; + } + return FR_OK; +} +#endif /* FF_CODE_PAGE == 0 */ + diff --git a/extras/fatfs/ff.h b/extras/fatfs/ff.h index f902519..7b148b1 100644 --- a/extras/fatfs/ff.h +++ b/extras/fatfs/ff.h @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------/ -/ FatFs - Generic FAT file system module R0.12c / +/ FatFs - Generic FAT Filesystem module R0.13a / /-----------------------------------------------------------------------------/ / / Copyright (C) 2017, ChaN, all right reserved. @@ -15,11 +15,12 @@ / and any warranties related to this software are DISCLAIMED. / The copyright owner or contributors be NOT LIABLE for any damages caused / by use of this software. +/ /----------------------------------------------------------------------------*/ -#ifndef _FATFS -#define _FATFS 68300 /* Revision ID */ +#ifndef FF_DEFINED +#define FF_DEFINED 89352 /* Revision ID */ #ifdef __cplusplus extern "C" { @@ -28,7 +29,7 @@ extern "C" { #include "integer.h" /* Basic integer types */ #include "ffconf.h" /* FatFs configuration options */ -#if _FATFS != _FFCONF +#if FF_DEFINED != FFCONF_DEF #error Wrong configuration file (ffconf.h). #endif @@ -36,7 +37,7 @@ extern "C" { /* Definitions of volume management */ -#if _MULTI_PARTITION /* Multiple partition configuration */ +#if FF_MULTI_PARTITION /* Multiple partition configuration */ typedef struct { BYTE pd; /* Physical drive number */ BYTE pt; /* Partition: 0:Auto detect, 1-4:Forced partition) */ @@ -48,31 +49,32 @@ extern PARTITION VolToPart[]; /* Volume - Partition resolution table */ /* Type of path name strings on FatFs API */ -#if _LFN_UNICODE /* Unicode (UTF-16) string */ -#if _USE_LFN == 0 -#error _LFN_UNICODE must be 0 at non-LFN cfg. -#endif #ifndef _INC_TCHAR +#define _INC_TCHAR + +#if FF_USE_LFN && FF_LFN_UNICODE == 1 /* Unicode in UTF-16 encoding */ typedef WCHAR TCHAR; #define _T(x) L ## x #define _TEXT(x) L ## x -#endif -#else /* ANSI/OEM string */ -#ifndef _INC_TCHAR +#elif FF_USE_LFN && FF_LFN_UNICODE == 2 /* Unicode in UTF-8 encoding */ +typedef char TCHAR; +#define _T(x) u8 ## x +#define _TEXT(x) u8 ## x +#elif FF_USE_LFN && (FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 2) +#error Wrong FF_LFN_UNICODE setting +#else /* ANSI/OEM code in SBCS/DBCS */ typedef char TCHAR; #define _T(x) x #define _TEXT(x) x #endif + #endif /* Type of file size variables */ -#if _FS_EXFAT -#if _USE_LFN == 0 -#error LFN must be enabled when enable exFAT -#endif +#if FF_FS_EXFAT typedef QWORD FSIZE_t; #else typedef DWORD FSIZE_t; @@ -80,36 +82,36 @@ typedef DWORD FSIZE_t; -/* File system object structure (FATFS) */ +/* Filesystem object structure (FATFS) */ typedef struct { - BYTE fs_type; /* File system type (0:N/A) */ - BYTE drv; /* Physical drive number */ + BYTE fs_type; /* Filesystem type (0:N/A) */ + BYTE pdrv; /* Physical drive number */ BYTE n_fats; /* Number of FATs (1 or 2) */ BYTE wflag; /* win[] flag (b0:dirty) */ BYTE fsi_flag; /* FSINFO flags (b7:disabled, b0:dirty) */ - WORD id; /* File system mount ID */ + WORD id; /* Volume mount ID */ WORD n_rootdir; /* Number of root directory entries (FAT12/16) */ WORD csize; /* Cluster size [sectors] */ -#if _MAX_SS != _MIN_SS +#if FF_MAX_SS != FF_MIN_SS WORD ssize; /* Sector size (512, 1024, 2048 or 4096) */ #endif -#if _USE_LFN != 0 +#if FF_USE_LFN WCHAR* lfnbuf; /* LFN working buffer */ #endif -#if _FS_EXFAT - BYTE* dirbuf; /* Directory entry block scratchpad buffer */ +#if FF_FS_EXFAT + BYTE* dirbuf; /* Directory entry block scratchpad buffer for exFAT */ #endif -#if _FS_REENTRANT - _SYNC_t sobj; /* Identifier of sync object */ +#if FF_FS_REENTRANT + FF_SYNC_t sobj; /* Identifier of sync object */ #endif -#if !_FS_READONLY +#if !FF_FS_READONLY DWORD last_clst; /* Last allocated cluster */ DWORD free_clst; /* Number of free clusters */ #endif -#if _FS_RPATH != 0 +#if FF_FS_RPATH DWORD cdir; /* Current directory start cluster (0:root) */ -#if _FS_EXFAT +#if FF_FS_EXFAT DWORD cdc_scl; /* Containing directory start cluster (invalid when cdir is 0) */ DWORD cdc_size; /* b31-b8:Size of containing directory, b7-b0: Chain status */ DWORD cdc_ofs; /* Offset in the containing directory (invalid when cdir is 0) */ @@ -122,52 +124,52 @@ typedef struct { DWORD dirbase; /* Root directory base sector/cluster */ DWORD database; /* Data base sector */ DWORD winsect; /* Current sector appearing in the win[] */ - BYTE win[_MAX_SS]; /* Disk access window for Directory, FAT (and file data at tiny cfg) */ + BYTE win[FF_MAX_SS]; /* Disk access window for Directory, FAT (and file data at tiny cfg) */ } FATFS; -/* Object ID and allocation information (_FDID) */ +/* Object ID and allocation information (FFOBJID) */ typedef struct { - FATFS* fs; /* Pointer to the owner file system object */ - WORD id; /* Owner file system mount ID */ - BYTE attr; /* Object attribute */ - BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous (no data on FAT), =3:flagmented in this session, b2:sub-directory stretched) */ - DWORD sclust; /* Object start cluster (0:no cluster or root directory) */ - FSIZE_t objsize; /* Object size (valid when sclust != 0) */ -#if _FS_EXFAT - DWORD n_cont; /* Size of first fragment, clusters - 1 (valid when stat == 3) */ - DWORD n_frag; /* Size of last fragment needs to be written (valid when not zero) */ - DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ - DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ - DWORD c_ofs; /* Offset in the containing directory (valid when sclust != 0 and non-directory object) */ + FATFS* fs; /* Pointer to the hosting volume of this object */ + WORD id; /* Hosting volume mount ID */ + BYTE attr; /* Object attribute */ + BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous, =3:flagmented in this session, b2:sub-directory stretched) */ + DWORD sclust; /* Object data start cluster (0:no cluster or root directory) */ + FSIZE_t objsize; /* Object size (valid when sclust != 0) */ +#if FF_FS_EXFAT + DWORD n_cont; /* Size of first fragment - 1 (valid when stat == 3) */ + DWORD n_frag; /* Size of last fragment needs to be written to FAT (valid when not zero) */ + DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ + DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ + DWORD c_ofs; /* Offset in the containing directory (valid when file object and sclust != 0) */ #endif -#if _FS_LOCK != 0 - UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ +#if FF_FS_LOCK + UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ #endif -} _FDID; +} FFOBJID; /* File object structure (FIL) */ typedef struct { - _FDID obj; /* Object identifier (must be the 1st member to detect invalid object pointer) */ + FFOBJID obj; /* Object identifier (must be the 1st member to detect invalid object pointer) */ BYTE flag; /* File status flags */ BYTE err; /* Abort flag (error code) */ FSIZE_t fptr; /* File read/write pointer (Zeroed on file open) */ DWORD clust; /* Current cluster of fpter (invalid when fptr is 0) */ DWORD sect; /* Sector number appearing in buf[] (0:invalid) */ -#if !_FS_READONLY - DWORD dir_sect; /* Sector number containing the directory entry */ - BYTE* dir_ptr; /* Pointer to the directory entry in the win[] */ +#if !FF_FS_READONLY + DWORD dir_sect; /* Sector number containing the directory entry (not used at exFAT) */ + BYTE* dir_ptr; /* Pointer to the directory entry in the win[] (not used at exFAT) */ #endif -#if _USE_FASTSEEK +#if FF_USE_FASTSEEK DWORD* cltbl; /* Pointer to the cluster link map table (nulled on open, set by application) */ #endif -#if !_FS_TINY - BYTE buf[_MAX_SS]; /* File private data read/write window */ +#if !FF_FS_TINY + BYTE buf[FF_MAX_SS]; /* File private data read/write window */ #endif } FIL; @@ -176,16 +178,16 @@ typedef struct { /* Directory object structure (DIR) */ typedef struct { - _FDID obj; /* Object identifier */ + FFOBJID obj; /* Object identifier */ DWORD dptr; /* Current read/write offset */ DWORD clust; /* Current cluster */ DWORD sect; /* Current sector (0:Read operation has terminated) */ BYTE* dir; /* Pointer to the directory item in the win[] */ BYTE fn[12]; /* SFN (in/out) {body[8],ext[3],status[1]} */ -#if _USE_LFN != 0 +#if FF_USE_LFN DWORD blk_ofs; /* Offset of current entry block being processed (0xFFFFFFFF:Invalid) */ #endif -#if _USE_FIND +#if FF_USE_FIND const TCHAR* pat; /* Pointer to the name matching pattern */ #endif } DIR; @@ -199,11 +201,11 @@ typedef struct { WORD fdate; /* Modified date */ WORD ftime; /* Modified time */ BYTE fattrib; /* File attribute */ -#if _USE_LFN != 0 - TCHAR altname[13]; /* Altenative file name */ - TCHAR fname[_MAX_LFN + 1]; /* Primary file name */ +#if FF_USE_LFN + TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */ + TCHAR fname[FF_LFN_BUF + 1]; /* Primary file name */ #else - TCHAR fname[13]; /* File name */ + TCHAR fname[12 + 1]; /* File name */ #endif } FILINFO; @@ -230,7 +232,7 @@ typedef enum { FR_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */ FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */ FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */ - FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_LOCK */ + FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > FF_FS_LOCK */ FR_INVALID_PARAMETER /* (19) Given parameter is invalid */ } FRESULT; @@ -268,6 +270,7 @@ FRESULT f_expand (FIL* fp, FSIZE_t szf, BYTE opt); /* Allocate a contiguous FRESULT f_mount (FATFS* fs, const TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */ FRESULT f_mkfs (const TCHAR* path, BYTE opt, DWORD au, void* work, UINT len); /* Create a FAT volume */ FRESULT f_fdisk (BYTE pdrv, const DWORD* szt, void* work); /* Divide a physical drive into some partitions */ +FRESULT f_setcp (WORD cp); /* Set current code page */ int f_putc (TCHAR c, FIL* fp); /* Put a character to the file */ int f_puts (const TCHAR* str, FIL* cp); /* Put a string to the file */ int f_printf (FIL* fp, const TCHAR* str, ...); /* Put a formatted string to the file */ @@ -280,6 +283,7 @@ TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the fil #define f_rewind(fp) f_lseek((fp), 0) #define f_rewinddir(dp) f_readdir((dp), 0) #define f_rmdir(path) f_unlink(path) +#define f_unmount(path) f_mount(0, path, 0) #ifndef EOF #define EOF (-1) @@ -292,26 +296,27 @@ TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the fil /* Additional user defined functions */ /* RTC function */ -#if !_FS_READONLY && !_FS_NORTC +#if !FF_FS_READONLY && !FF_FS_NORTC DWORD get_fattime (void); #endif -/* Unicode support functions */ -#if _USE_LFN != 0 /* Unicode - OEM code conversion */ -WCHAR ff_convert (WCHAR chr, UINT dir); /* OEM-Unicode bidirectional conversion */ -WCHAR ff_wtoupper (WCHAR chr); /* Unicode upper-case conversion */ -#if _USE_LFN == 3 /* Memory functions */ +/* LFN support functions */ +#if FF_USE_LFN >= 1 /* Code conversion (defined in unicode.c) */ +WCHAR ff_oem2uni (WCHAR oem, WORD cp); /* OEM code to Unicode conversion */ +WCHAR ff_uni2oem (DWORD uni, WORD cp); /* Unicode to OEM code conversion */ +DWORD ff_wtoupper (DWORD uni); /* Unicode upper-case conversion */ +#endif +#if FF_USE_LFN == 3 /* Dynamic memory allocation */ void* ff_memalloc (UINT msize); /* Allocate memory block */ void ff_memfree (void* mblock); /* Free memory block */ #endif -#endif /* Sync functions */ -#if _FS_REENTRANT -int ff_cre_syncobj (BYTE vol, _SYNC_t* sobj); /* Create a sync object */ -int ff_req_grant (_SYNC_t sobj); /* Lock sync object */ -void ff_rel_grant (_SYNC_t sobj); /* Unlock sync object */ -int ff_del_syncobj (_SYNC_t sobj); /* Delete a sync object */ +#if FF_FS_REENTRANT +int ff_cre_syncobj (BYTE vol, FF_SYNC_t* sobj); /* Create a sync object */ +int ff_req_grant (FF_SYNC_t sobj); /* Lock sync object */ +void ff_rel_grant (FF_SYNC_t sobj); /* Unlock sync object */ +int ff_del_syncobj (FF_SYNC_t sobj); /* Delete a sync object */ #endif @@ -358,4 +363,4 @@ int ff_del_syncobj (_SYNC_t sobj); /* Delete a sync object */ } #endif -#endif /* _FATFS */ +#endif /* FF_DEFINED */ diff --git a/extras/fatfs/ffconf.h b/extras/fatfs/ffconf.h index a97a6ae..0e6bb04 100644 --- a/extras/fatfs/ffconf.h +++ b/extras/fatfs/ffconf.h @@ -1,14 +1,15 @@ /*---------------------------------------------------------------------------/ -/ FatFs - FAT file system module configuration file +/ FatFs - Configuration file /---------------------------------------------------------------------------*/ -#define _FFCONF 68300 /* Revision ID */ + +#define FFCONF_DEF 89352 /* Revision ID */ /*---------------------------------------------------------------------------/ / Function Configurations /---------------------------------------------------------------------------*/ -#ifndef _FS_READONLY -#define _FS_READONLY 0 +#ifndef FF_FS_READONLY +#define FF_FS_READONLY 0 #endif /* This option switches read-only configuration. (0:Read/Write or 1:Read-only) / Read-only configuration removes writing API functions, f_write(), f_sync(), @@ -16,68 +17,67 @@ / and optional writing functions as well. */ -#define _FS_MINIMIZE 0 +#define FF_FS_MINIMIZE 0 /* This option defines minimization level to remove some basic API functions. / -/ 0: All basic functions are enabled. +/ 0: Basic functions are fully enabled. / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename() / are removed. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1. / 3: f_lseek() function is removed in addition to 2. */ -#ifndef _USE_STRFUNC -#define _USE_STRFUNC 1 +#ifndef FF_USE_STRFUNC +#define FF_USE_STRFUNC 1 #endif -/* This option switches string functions, f_gets(), f_putc(), f_puts() and -/ f_printf(). +/* This option switches string functions, f_gets(), f_putc(), f_puts() and f_printf(). / / 0: Disable string functions. / 1: Enable without LF-CRLF conversion. / 2: Enable with LF-CRLF conversion. */ -#ifndef _USE_FIND -#define _USE_FIND 2 +#ifndef FF_USE_FIND +#define FF_USE_FIND 2 #endif /* This option switches filtered directory read functions, f_findfirst() and / f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */ -#ifndef _USE_MKFS -#define _USE_MKFS 1 +#ifndef FF_USE_MKFS +#define FF_USE_MKFS 1 #endif /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ -#ifndef _USE_FASTSEEK -#define _USE_FASTSEEK 1 +#ifndef FF_USE_FASTSEEK +#define FF_USE_FASTSEEK 1 #endif /* This option switches fast seek function. (0:Disable or 1:Enable) */ -#ifndef _USE_EXPAND -#define _USE_EXPAND 1 +#ifndef FF_USE_EXPAND +#define FF_USE_EXPAND 1 #endif /* This option switches f_expand function. (0:Disable or 1:Enable) */ -#ifndef _USE_CHMOD -#define _USE_CHMOD 1 +#ifndef FF_USE_CHMOD +#define FF_USE_CHMOD 1 #endif /* This option switches attribute manipulation functions, f_chmod() and f_utime(). -/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */ +/ (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */ -#ifndef _USE_LABEL -#define _USE_LABEL 1 +#ifndef FF_USE_LABEL +#define FF_USE_LABEL 1 #endif /* This option switches volume label functions, f_getlabel() and f_setlabel(). / (0:Disable or 1:Enable) */ -#ifndef _USE_FORWARD -#define _USE_FORWARD 1 +#ifndef FF_USE_FORWARD +#define FF_USE_FORWARD 1 #endif /* This option switches f_forward() function. (0:Disable or 1:Enable) */ @@ -86,13 +86,12 @@ / Locale and Namespace Configurations /---------------------------------------------------------------------------*/ -#ifndef _CODE_PAGE -#define _CODE_PAGE 437 +#ifndef FF_CODE_PAGE +#define FF_CODE_PAGE 0 #endif /* This option specifies the OEM code page to be used on the target system. -/ Incorrect setting of the code page can cause a file open failure. +/ Incorrect code page setting can cause a file open failure. / -/ 1 - ASCII (No extended character. Non-LFN cfg. only) / 437 - U.S. / 720 - Arabic / 737 - Greek @@ -114,55 +113,74 @@ / 936 - Simplified Chinese (DBCS) / 949 - Korean (DBCS) / 950 - Traditional Chinese (DBCS) +/ 0 - Include all code pages above and configured by f_setcp() */ -#ifndef _USE_LFN -#define _USE_LFN 3 + +#ifndef FF_USE_LFN +#define FF_USE_LFN 2 #endif -#ifndef _MAX_LFN -#define _MAX_LFN 255 +#ifndef FF_MAX_LFN +#define FF_MAX_LFN 255 #endif -/* The _USE_LFN switches the support of long file name (LFN). +/* The FF_USE_LFN switches the support for LFN (long file name). / -/ 0: Disable support of LFN. _MAX_LFN has no effect. +/ 0: Disable LFN. FF_MAX_LFN has no effect. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. / 2: Enable LFN with dynamic working buffer on the STACK. / 3: Enable LFN with dynamic working buffer on the HEAP. / -/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added -/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and -/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255. -/ It should be set 255 to support full featured LFN operations. +/ To enable the LFN, ffunicode.c needs to be added to the project. The LFN function +/ requiers certain internal working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and +/ additional (FF_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled. +/ The FF_MAX_LFN defines size of the working buffer in UTF-16 code unit and it can +/ be in range of 12 to 255. It is recommended to be set 255 to fully support LFN +/ specification. / When use stack for the working buffer, take care on stack overflow. When use heap / memory for the working buffer, memory management functions, ff_memalloc() and -/ ff_memfree(), must be added to the project. */ +/ ff_memfree() in ffsystem.c, need to be added to the project. */ -#ifndef _LFN_UNICODE -#define _LFN_UNICODE 0 +#ifndef FF_LFN_UNICODE +#define FF_LFN_UNICODE 0 #endif -/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16) -/ To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1. -/ This option also affects behavior of string I/O functions. */ - - -#ifndef _STRF_ENCODE -#define _STRF_ENCODE 3 -#endif -/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to -/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf(). +/* This option switches the character encoding on the API when LFN is enabled. / -/ 0: ANSI/OEM -/ 1: UTF-16LE -/ 2: UTF-16BE -/ 3: UTF-8 +/ 0: ANSI/OEM in current CP (TCHAR = char) +/ 1: Unicode in UTF-16 (TCHAR = WCHAR) +/ 2: Unicode in UTF-8 (TCHAR = char) / -/ This option has no effect when _LFN_UNICODE == 0. */ +/ Also behavior of string I/O functions will be affected by this option. +/ When LFN is not enabled, this option has no effect. */ -#ifndef _FS_RPATH -#define _FS_RPATH 2 + +#define FF_LFN_BUF 255 +#define FF_SFN_BUF 12 +/* This set of options defines size of file name members in the FILINFO structure +/ which is used to read out directory items. These values should be suffcient for +/ the file names to read. The maximum possible length of the read file name depends +/ on character encoding. When LFN is not enabled, these options have no effect. */ + + +#ifndef FF_STRF_ENCODE +#define FF_STRF_ENCODE 3 #endif -/* This option configures support of relative path. +/* When FF_LFN_UNICODE >= 1 with LFN enabled, string I/O functions, f_gets(), +/ f_putc(), f_puts and f_printf() convert the character encoding in it. +/ This option selects assumption of character encoding ON THE FILE to be +/ read/written via those functions. +/ +/ 0: ANSI/OEM in current CP +/ 1: Unicode in UTF-16LE +/ 2: Unicode in UTF-16BE +/ 3: Unicode in UTF-8 +*/ + + +#ifndef FF_FS_RPATH +#define FF_FS_RPATH 2 +#endif +/* This option configures support for relative path. / / 0: Disable relative path and remove related functions. / 1: Enable relative path. f_chdir() and f_chdrive() are available. @@ -174,45 +192,45 @@ / Drive/Volume Configurations /---------------------------------------------------------------------------*/ -#define _VOLUMES 7 -/* Number of volumes (logical drives) to be used. */ +#define FF_VOLUMES 7 +/* Number of volumes (logical drives) to be used. (1-10) */ -#define _STR_VOLUME_ID 0 -#define _VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" -/* _STR_VOLUME_ID switches string support of volume ID. -/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive -/ number in the path name. _VOLUME_STRS defines the drive ID strings for each -/ logical drives. Number of items must be equal to _VOLUMES. Valid characters for +#define FF_STR_VOLUME_ID 0 +#define FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" +/* FF_STR_VOLUME_ID switches string support for volume ID. +/ When FF_STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive +/ number in the path name. FF_VOLUME_STRS defines the drive ID strings for each +/ logical drives. Number of items must be equal to FF_VOLUMES. Valid characters for / the drive ID strings are: A-Z and 0-9. */ -#define _MULTI_PARTITION 0 -/* This option switches support of multi-partition on a physical drive. +#define FF_MULTI_PARTITION 0 +/* This option switches support for multiple volumes on the physical drive. / By default (0), each logical drive number is bound to the same physical drive / number and only an FAT volume found on the physical drive will be mounted. -/ When multi-partition is enabled (1), each logical drive number can be bound to +/ When this function is enabled (1), each logical drive number can be bound to / arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk() / funciton will be available. */ -#define _MIN_SS 512 -#define _MAX_SS 512 -/* These options configure the range of sector size to be supported. (512, 1024, -/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and +#define FF_MIN_SS 512 +#define FF_MAX_SS 512 +/* This set of options configures the range of sector size to be supported. (512, +/ 1024, 2048 or 4096) Always set both 512 for most systems, generic memory card and / harddisk. But a larger value may be required for on-board flash memory and some -/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured -/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the -/ disk_ioctl() function. */ +/ type of optical media. When FF_MAX_SS is larger than FF_MIN_SS, FatFs is configured +/ for variable sector size mode and disk_ioctl() function needs to implement +/ GET_SECTOR_SIZE command. */ -#define _USE_TRIM 1 -/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable) +#define FF_USE_TRIM 1 +/* This option switches support for ATA-TRIM. (0:Disable or 1:Enable) / To enable Trim function, also CTRL_TRIM command should be implemented to the / disk_ioctl() function. */ -#define _FS_NOFSINFO 0 +#define FF_FS_NOFSINFO 0 /* If you need to know correct free space on the FAT32 volume, set bit 0 of this / option, and f_getfree() function at first time after volume mount will force / a full FAT scan. Bit 1 controls the use of last allocated cluster number. @@ -229,39 +247,42 @@ / System Configurations /---------------------------------------------------------------------------*/ -#define _FS_TINY 0 +#define FF_FS_TINY 0 /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) -/ At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes. +/ At the tiny configuration, size of file object (FIL) is shrinked FF_MAX_SS bytes. / Instead of private sector buffer eliminated from the file object, common sector -/ buffer in the file system object (FATFS) is used for the file data transfer. */ +/ buffer in the filesystem object (FATFS) is used for the file data transfer. */ -#ifndef _FS_EXFAT -#define _FS_EXFAT 1 -#endif -/* This option switches support of exFAT file system. (0:Disable or 1:Enable) -/ When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1) -/ Note that enabling exFAT discards C89 compatibility. */ -#ifndef _FS_NORTC -#define _FS_NORTC 1 -#define _NORTC_MON 1 -#define _NORTC_MDAY 1 -#define _NORTC_YEAR 2016 +#ifndef FF_FS_EXFAT +#define FF_FS_EXFAT 1 #endif -/* The option _FS_NORTC switches timestamp functiton. If the system does not have -/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable +/* This option switches support for exFAT filesystem. (0:Disable or 1:Enable) +/ When enable exFAT, also LFN needs to be enabled. +/ Note that enabling exFAT discards ANSI C (C89) compatibility. */ + + +#ifndef FF_FS_NORTC +#define FF_FS_NORTC 1 +#define FF_NORTC_MON 1 +#define FF_NORTC_MDAY 1 +#define FF_NORTC_YEAR 2017 +#endif +/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have +/ any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable / the timestamp function. All objects modified by FatFs will have a fixed timestamp -/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time. -/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be -/ added to the project to get current time form real-time clock. _NORTC_MON, -/ _NORTC_MDAY and _NORTC_YEAR have no effect. -/ These options have no effect at read-only configuration (_FS_READONLY = 1). */ +/ defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time. +/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be +/ added to the project to read current time form real-time clock. FF_NORTC_MON, +/ FF_NORTC_MDAY and FF_NORTC_YEAR have no effect. +/ These options have no effect at read-only configuration (FF_FS_READONLY = 1). */ -#ifndef _FS_LOCK -#define _FS_LOCK 64 + +#ifndef FF_FS_LOCK +#define FF_FS_LOCK 64 #endif -/* The option _FS_LOCK switches file lock function to control duplicated file open -/ and illegal operation to open objects. This option must be 0 when _FS_READONLY +/* The option FF_FS_LOCK switches file lock function to control duplicated file open +/ and illegal operation to open objects. This option must be 0 when FF_FS_READONLY / is 1. / / 0: Disable file lock function. To avoid volume corruption, application program @@ -271,26 +292,26 @@ / lock control is independent of re-entrancy. */ -#define _FS_REENTRANT 1 -#ifndef _FS_TIMEOUT -#define _FS_TIMEOUT 1000 +#define FF_FS_REENTRANT 1 +#ifndef FF_FS_TIMEOUT +#define FF_FS_TIMEOUT 1000 #endif -#define _SYNC_t SemaphoreHandle_t -/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs +#define FF_SYNC_t SemaphoreHandle_t +/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs / module itself. Note that regardless of this option, file access to different / volume is always re-entrant and volume control functions, f_mount(), f_mkfs() / and f_fdisk() function, are always not re-entrant. Only file/directory access / to the same volume is under control of this function. / -/ 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect. +/ 0: Disable re-entrancy. FF_FS_TIMEOUT and FF_SYNC_t have no effect. / 1: Enable re-entrancy. Also user provided synchronization handlers, / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj() / function, must be added to the project. Samples are available in / option/syscall.c. / -/ The _FS_TIMEOUT defines timeout period in unit of time tick. -/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, -/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be +/ The FF_FS_TIMEOUT defines timeout period in unit of time tick. +/ The FF_SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, +/ SemaphoreHandle_t and etc. A header file for O/S definitions needs to be / included somewhere in the scope of ff.h. */ /* #include // O/S definitions */ diff --git a/extras/fatfs/ffsystem.c b/extras/fatfs/ffsystem.c new file mode 100644 index 0000000..fda64cc --- /dev/null +++ b/extras/fatfs/ffsystem.c @@ -0,0 +1,114 @@ +/*------------------------------------------------------------------------*/ +/* Sample Code of OS Dependent Functions for FatFs */ +/* (C)ChaN, 2017 */ +/*------------------------------------------------------------------------*/ + + +#include "ff.h" + + +#if FF_USE_LFN == 3 /* Dynamic memory allocation */ + +#include + +/*------------------------------------------------------------------------*/ +/* Allocate a memory block */ +/*------------------------------------------------------------------------*/ + +void* ff_memalloc ( /* Returns pointer to the allocated memory block (null on not enough core) */ + UINT msize /* Number of bytes to allocate */ +) +{ + return malloc(msize); /* Allocate a new memory block with POSIX API */ +} + + +/*------------------------------------------------------------------------*/ +/* Free a memory block */ +/*------------------------------------------------------------------------*/ + +void ff_memfree ( + void* mblock /* Pointer to the memory block to free (nothing to do for null) */ +) +{ + free(mblock); /* Free the memory block with POSIX API */ +} + +#endif + + + +#if FF_FS_REENTRANT /* Mutal exclusion */ + +/*------------------------------------------------------------------------*/ +/* Create a Synchronization Object */ +/*------------------------------------------------------------------------*/ +/* This function is called in f_mount() function to create a new +/ synchronization object for the volume, such as semaphore and mutex. +/ When a 0 is returned, the f_mount() function fails with FR_INT_ERR. +*/ + +//const osMutexDef_t Mutex[FF_VOLUMES]; /* CMSIS-RTOS */ + + +int ff_cre_syncobj ( /* 1:Function succeeded, 0:Could not create the sync object */ + BYTE vol, /* Corresponding volume (logical drive number) */ + FF_SYNC_t *sobj /* Pointer to return the created sync object */ +) +{ + /* FreeRTOS */ + *sobj = xSemaphoreCreateMutex(); + return (int)(*sobj != NULL); +} + + +/*------------------------------------------------------------------------*/ +/* Delete a Synchronization Object */ +/*------------------------------------------------------------------------*/ +/* This function is called in f_mount() function to delete a synchronization +/ object that created with ff_cre_syncobj() function. When a 0 is returned, +/ the f_mount() function fails with FR_INT_ERR. +*/ + +int ff_del_syncobj ( /* 1:Function succeeded, 0:Could not delete due to an error */ + FF_SYNC_t sobj /* Sync object tied to the logical drive to be deleted */ +) +{ + /* FreeRTOS */ + vSemaphoreDelete(sobj); + return 1; +} + + +/*------------------------------------------------------------------------*/ +/* Request Grant to Access the Volume */ +/*------------------------------------------------------------------------*/ +/* This function is called on entering file functions to lock the volume. +/ When a 0 is returned, the file function fails with FR_TIMEOUT. +*/ + +int ff_req_grant ( /* 1:Got a grant to access the volume, 0:Could not get a grant */ + FF_SYNC_t sobj /* Sync object to wait */ +) +{ + /* FreeRTOS */ + return (int)(xSemaphoreTake(sobj, FF_FS_TIMEOUT) == pdTRUE); +} + + +/*------------------------------------------------------------------------*/ +/* Release Grant to Access the Volume */ +/*------------------------------------------------------------------------*/ +/* This function is called on leaving file functions to unlock the volume. +*/ + +void ff_rel_grant ( + FF_SYNC_t sobj /* Sync object to be signaled */ +) +{ + /* FreeRTOS */ + xSemaphoreGive(sobj); +} + +#endif + diff --git a/extras/fatfs/ffunicode.c b/extras/fatfs/ffunicode.c new file mode 100644 index 0000000..23da42a --- /dev/null +++ b/extras/fatfs/ffunicode.c @@ -0,0 +1,15586 @@ +/*------------------------------------------------------------------------*/ +/* Unicode handling functions for FatFs R0.13a */ +/*------------------------------------------------------------------------*/ +/* This module will occupy a huge memory in the .const section when the / +/ FatFs is configured for LFN with DBCS. If the system has any Unicode / +/ utilitiy for the code conversion, this module should be modified to use / +/ that function to avoid silly memory consumption. / +/-------------------------------------------------------------------------*/ +/* +/ Copyright (C) 2017, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: +/ +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +*/ + + +#include "ff.h" + +#if FF_USE_LFN /* This module is blanked when non-LFN configuration */ + +#if FF_DEFINED != 89352 /* Revision ID */ +#error Wrong include file (ff.h). +#endif + +#define MERGE2(a, b) a ## b +#define CVTBL(tbl, cp) MERGE2(tbl, cp) + + +/*------------------------------------------------------------------------*/ +/* Code Conversion Tables */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE == 932 || FF_CODE_PAGE == 0 /* Japanese */ +static +const WCHAR uni2oem932[] = { /* Unicode --> Shift_JIS pairs */ + 0x00A7, 0x8198, 0x00A8, 0x814E, 0x00B0, 0x818B, 0x00B1, 0x817D, 0x00B4, 0x814C, 0x00B6, 0x81F7, 0x00D7, 0x817E, 0x00F7, 0x8180, + 0x0391, 0x839F, 0x0392, 0x83A0, 0x0393, 0x83A1, 0x0394, 0x83A2, 0x0395, 0x83A3, 0x0396, 0x83A4, 0x0397, 0x83A5, 0x0398, 0x83A6, + 0x0399, 0x83A7, 0x039A, 0x83A8, 0x039B, 0x83A9, 0x039C, 0x83AA, 0x039D, 0x83AB, 0x039E, 0x83AC, 0x039F, 0x83AD, 0x03A0, 0x83AE, + 0x03A1, 0x83AF, 0x03A3, 0x83B0, 0x03A4, 0x83B1, 0x03A5, 0x83B2, 0x03A6, 0x83B3, 0x03A7, 0x83B4, 0x03A8, 0x83B5, 0x03A9, 0x83B6, + 0x03B1, 0x83BF, 0x03B2, 0x83C0, 0x03B3, 0x83C1, 0x03B4, 0x83C2, 0x03B5, 0x83C3, 0x03B6, 0x83C4, 0x03B7, 0x83C5, 0x03B8, 0x83C6, + 0x03B9, 0x83C7, 0x03BA, 0x83C8, 0x03BB, 0x83C9, 0x03BC, 0x83CA, 0x03BD, 0x83CB, 0x03BE, 0x83CC, 0x03BF, 0x83CD, 0x03C0, 0x83CE, + 0x03C1, 0x83CF, 0x03C3, 0x83D0, 0x03C4, 0x83D1, 0x03C5, 0x83D2, 0x03C6, 0x83D3, 0x03C7, 0x83D4, 0x03C8, 0x83D5, 0x03C9, 0x83D6, + 0x0401, 0x8446, 0x0410, 0x8440, 0x0411, 0x8441, 0x0412, 0x8442, 0x0413, 0x8443, 0x0414, 0x8444, 0x0415, 0x8445, 0x0416, 0x8447, + 0x0417, 0x8448, 0x0418, 0x8449, 0x0419, 0x844A, 0x041A, 0x844B, 0x041B, 0x844C, 0x041C, 0x844D, 0x041D, 0x844E, 0x041E, 0x844F, + 0x041F, 0x8450, 0x0420, 0x8451, 0x0421, 0x8452, 0x0422, 0x8453, 0x0423, 0x8454, 0x0424, 0x8455, 0x0425, 0x8456, 0x0426, 0x8457, + 0x0427, 0x8458, 0x0428, 0x8459, 0x0429, 0x845A, 0x042A, 0x845B, 0x042B, 0x845C, 0x042C, 0x845D, 0x042D, 0x845E, 0x042E, 0x845F, + 0x042F, 0x8460, 0x0430, 0x8470, 0x0431, 0x8471, 0x0432, 0x8472, 0x0433, 0x8473, 0x0434, 0x8474, 0x0435, 0x8475, 0x0436, 0x8477, + 0x0437, 0x8478, 0x0438, 0x8479, 0x0439, 0x847A, 0x043A, 0x847B, 0x043B, 0x847C, 0x043C, 0x847D, 0x043D, 0x847E, 0x043E, 0x8480, + 0x043F, 0x8481, 0x0440, 0x8482, 0x0441, 0x8483, 0x0442, 0x8484, 0x0443, 0x8485, 0x0444, 0x8486, 0x0445, 0x8487, 0x0446, 0x8488, + 0x0447, 0x8489, 0x0448, 0x848A, 0x0449, 0x848B, 0x044A, 0x848C, 0x044B, 0x848D, 0x044C, 0x848E, 0x044D, 0x848F, 0x044E, 0x8490, + 0x044F, 0x8491, 0x0451, 0x8476, 0x2010, 0x815D, 0x2015, 0x815C, 0x2018, 0x8165, 0x2019, 0x8166, 0x201C, 0x8167, 0x201D, 0x8168, + 0x2020, 0x81F5, 0x2021, 0x81F6, 0x2025, 0x8164, 0x2026, 0x8163, 0x2030, 0x81F1, 0x2032, 0x818C, 0x2033, 0x818D, 0x203B, 0x81A6, + 0x2103, 0x818E, 0x2116, 0x8782, 0x2121, 0x8784, 0x212B, 0x81F0, 0x2160, 0x8754, 0x2161, 0x8755, 0x2162, 0x8756, 0x2163, 0x8757, + 0x2164, 0x8758, 0x2165, 0x8759, 0x2166, 0x875A, 0x2167, 0x875B, 0x2168, 0x875C, 0x2169, 0x875D, 0x2170, 0xFA40, 0x2171, 0xFA41, + 0x2172, 0xFA42, 0x2173, 0xFA43, 0x2174, 0xFA44, 0x2175, 0xFA45, 0x2176, 0xFA46, 0x2177, 0xFA47, 0x2178, 0xFA48, 0x2179, 0xFA49, + 0x2190, 0x81A9, 0x2191, 0x81AA, 0x2192, 0x81A8, 0x2193, 0x81AB, 0x21D2, 0x81CB, 0x21D4, 0x81CC, 0x2200, 0x81CD, 0x2202, 0x81DD, + 0x2203, 0x81CE, 0x2207, 0x81DE, 0x2208, 0x81B8, 0x220B, 0x81B9, 0x2211, 0x8794, 0x221A, 0x81E3, 0x221D, 0x81E5, 0x221E, 0x8187, + 0x221F, 0x8798, 0x2220, 0x81DA, 0x2225, 0x8161, 0x2227, 0x81C8, 0x2228, 0x81C9, 0x2229, 0x81BF, 0x222A, 0x81BE, 0x222B, 0x81E7, + 0x222C, 0x81E8, 0x222E, 0x8793, 0x2234, 0x8188, 0x2235, 0x81E6, 0x223D, 0x81E4, 0x2252, 0x81E0, 0x2260, 0x8182, 0x2261, 0x81DF, + 0x2266, 0x8185, 0x2267, 0x8186, 0x226A, 0x81E1, 0x226B, 0x81E2, 0x2282, 0x81BC, 0x2283, 0x81BD, 0x2286, 0x81BA, 0x2287, 0x81BB, + 0x22A5, 0x81DB, 0x22BF, 0x8799, 0x2312, 0x81DC, 0x2460, 0x8740, 0x2461, 0x8741, 0x2462, 0x8742, 0x2463, 0x8743, 0x2464, 0x8744, + 0x2465, 0x8745, 0x2466, 0x8746, 0x2467, 0x8747, 0x2468, 0x8748, 0x2469, 0x8749, 0x246A, 0x874A, 0x246B, 0x874B, 0x246C, 0x874C, + 0x246D, 0x874D, 0x246E, 0x874E, 0x246F, 0x874F, 0x2470, 0x8750, 0x2471, 0x8751, 0x2472, 0x8752, 0x2473, 0x8753, 0x2500, 0x849F, + 0x2501, 0x84AA, 0x2502, 0x84A0, 0x2503, 0x84AB, 0x250C, 0x84A1, 0x250F, 0x84AC, 0x2510, 0x84A2, 0x2513, 0x84AD, 0x2514, 0x84A4, + 0x2517, 0x84AF, 0x2518, 0x84A3, 0x251B, 0x84AE, 0x251C, 0x84A5, 0x251D, 0x84BA, 0x2520, 0x84B5, 0x2523, 0x84B0, 0x2524, 0x84A7, + 0x2525, 0x84BC, 0x2528, 0x84B7, 0x252B, 0x84B2, 0x252C, 0x84A6, 0x252F, 0x84B6, 0x2530, 0x84BB, 0x2533, 0x84B1, 0x2534, 0x84A8, + 0x2537, 0x84B8, 0x2538, 0x84BD, 0x253B, 0x84B3, 0x253C, 0x84A9, 0x253F, 0x84B9, 0x2542, 0x84BE, 0x254B, 0x84B4, 0x25A0, 0x81A1, + 0x25A1, 0x81A0, 0x25B2, 0x81A3, 0x25B3, 0x81A2, 0x25BC, 0x81A5, 0x25BD, 0x81A4, 0x25C6, 0x819F, 0x25C7, 0x819E, 0x25CB, 0x819B, + 0x25CE, 0x819D, 0x25CF, 0x819C, 0x25EF, 0x81FC, 0x2605, 0x819A, 0x2606, 0x8199, 0x2640, 0x818A, 0x2642, 0x8189, 0x266A, 0x81F4, + 0x266D, 0x81F3, 0x266F, 0x81F2, 0x3000, 0x8140, 0x3001, 0x8141, 0x3002, 0x8142, 0x3003, 0x8156, 0x3005, 0x8158, 0x3006, 0x8159, + 0x3007, 0x815A, 0x3008, 0x8171, 0x3009, 0x8172, 0x300A, 0x8173, 0x300B, 0x8174, 0x300C, 0x8175, 0x300D, 0x8176, 0x300E, 0x8177, + 0x300F, 0x8178, 0x3010, 0x8179, 0x3011, 0x817A, 0x3012, 0x81A7, 0x3013, 0x81AC, 0x3014, 0x816B, 0x3015, 0x816C, 0x301D, 0x8780, + 0x301F, 0x8781, 0x3041, 0x829F, 0x3042, 0x82A0, 0x3043, 0x82A1, 0x3044, 0x82A2, 0x3045, 0x82A3, 0x3046, 0x82A4, 0x3047, 0x82A5, + 0x3048, 0x82A6, 0x3049, 0x82A7, 0x304A, 0x82A8, 0x304B, 0x82A9, 0x304C, 0x82AA, 0x304D, 0x82AB, 0x304E, 0x82AC, 0x304F, 0x82AD, + 0x3050, 0x82AE, 0x3051, 0x82AF, 0x3052, 0x82B0, 0x3053, 0x82B1, 0x3054, 0x82B2, 0x3055, 0x82B3, 0x3056, 0x82B4, 0x3057, 0x82B5, + 0x3058, 0x82B6, 0x3059, 0x82B7, 0x305A, 0x82B8, 0x305B, 0x82B9, 0x305C, 0x82BA, 0x305D, 0x82BB, 0x305E, 0x82BC, 0x305F, 0x82BD, + 0x3060, 0x82BE, 0x3061, 0x82BF, 0x3062, 0x82C0, 0x3063, 0x82C1, 0x3064, 0x82C2, 0x3065, 0x82C3, 0x3066, 0x82C4, 0x3067, 0x82C5, + 0x3068, 0x82C6, 0x3069, 0x82C7, 0x306A, 0x82C8, 0x306B, 0x82C9, 0x306C, 0x82CA, 0x306D, 0x82CB, 0x306E, 0x82CC, 0x306F, 0x82CD, + 0x3070, 0x82CE, 0x3071, 0x82CF, 0x3072, 0x82D0, 0x3073, 0x82D1, 0x3074, 0x82D2, 0x3075, 0x82D3, 0x3076, 0x82D4, 0x3077, 0x82D5, + 0x3078, 0x82D6, 0x3079, 0x82D7, 0x307A, 0x82D8, 0x307B, 0x82D9, 0x307C, 0x82DA, 0x307D, 0x82DB, 0x307E, 0x82DC, 0x307F, 0x82DD, + 0x3080, 0x82DE, 0x3081, 0x82DF, 0x3082, 0x82E0, 0x3083, 0x82E1, 0x3084, 0x82E2, 0x3085, 0x82E3, 0x3086, 0x82E4, 0x3087, 0x82E5, + 0x3088, 0x82E6, 0x3089, 0x82E7, 0x308A, 0x82E8, 0x308B, 0x82E9, 0x308C, 0x82EA, 0x308D, 0x82EB, 0x308E, 0x82EC, 0x308F, 0x82ED, + 0x3090, 0x82EE, 0x3091, 0x82EF, 0x3092, 0x82F0, 0x3093, 0x82F1, 0x309B, 0x814A, 0x309C, 0x814B, 0x309D, 0x8154, 0x309E, 0x8155, + 0x30A1, 0x8340, 0x30A2, 0x8341, 0x30A3, 0x8342, 0x30A4, 0x8343, 0x30A5, 0x8344, 0x30A6, 0x8345, 0x30A7, 0x8346, 0x30A8, 0x8347, + 0x30A9, 0x8348, 0x30AA, 0x8349, 0x30AB, 0x834A, 0x30AC, 0x834B, 0x30AD, 0x834C, 0x30AE, 0x834D, 0x30AF, 0x834E, 0x30B0, 0x834F, + 0x30B1, 0x8350, 0x30B2, 0x8351, 0x30B3, 0x8352, 0x30B4, 0x8353, 0x30B5, 0x8354, 0x30B6, 0x8355, 0x30B7, 0x8356, 0x30B8, 0x8357, + 0x30B9, 0x8358, 0x30BA, 0x8359, 0x30BB, 0x835A, 0x30BC, 0x835B, 0x30BD, 0x835C, 0x30BE, 0x835D, 0x30BF, 0x835E, 0x30C0, 0x835F, + 0x30C1, 0x8360, 0x30C2, 0x8361, 0x30C3, 0x8362, 0x30C4, 0x8363, 0x30C5, 0x8364, 0x30C6, 0x8365, 0x30C7, 0x8366, 0x30C8, 0x8367, + 0x30C9, 0x8368, 0x30CA, 0x8369, 0x30CB, 0x836A, 0x30CC, 0x836B, 0x30CD, 0x836C, 0x30CE, 0x836D, 0x30CF, 0x836E, 0x30D0, 0x836F, + 0x30D1, 0x8370, 0x30D2, 0x8371, 0x30D3, 0x8372, 0x30D4, 0x8373, 0x30D5, 0x8374, 0x30D6, 0x8375, 0x30D7, 0x8376, 0x30D8, 0x8377, + 0x30D9, 0x8378, 0x30DA, 0x8379, 0x30DB, 0x837A, 0x30DC, 0x837B, 0x30DD, 0x837C, 0x30DE, 0x837D, 0x30DF, 0x837E, 0x30E0, 0x8380, + 0x30E1, 0x8381, 0x30E2, 0x8382, 0x30E3, 0x8383, 0x30E4, 0x8384, 0x30E5, 0x8385, 0x30E6, 0x8386, 0x30E7, 0x8387, 0x30E8, 0x8388, + 0x30E9, 0x8389, 0x30EA, 0x838A, 0x30EB, 0x838B, 0x30EC, 0x838C, 0x30ED, 0x838D, 0x30EE, 0x838E, 0x30EF, 0x838F, 0x30F0, 0x8390, + 0x30F1, 0x8391, 0x30F2, 0x8392, 0x30F3, 0x8393, 0x30F4, 0x8394, 0x30F5, 0x8395, 0x30F6, 0x8396, 0x30FB, 0x8145, 0x30FC, 0x815B, + 0x30FD, 0x8152, 0x30FE, 0x8153, 0x3231, 0x878A, 0x3232, 0x878B, 0x3239, 0x878C, 0x32A4, 0x8785, 0x32A5, 0x8786, 0x32A6, 0x8787, + 0x32A7, 0x8788, 0x32A8, 0x8789, 0x3303, 0x8765, 0x330D, 0x8769, 0x3314, 0x8760, 0x3318, 0x8763, 0x3322, 0x8761, 0x3323, 0x876B, + 0x3326, 0x876A, 0x3327, 0x8764, 0x332B, 0x876C, 0x3336, 0x8766, 0x333B, 0x876E, 0x3349, 0x875F, 0x334A, 0x876D, 0x334D, 0x8762, + 0x3351, 0x8767, 0x3357, 0x8768, 0x337B, 0x877E, 0x337C, 0x878F, 0x337D, 0x878E, 0x337E, 0x878D, 0x338E, 0x8772, 0x338F, 0x8773, + 0x339C, 0x876F, 0x339D, 0x8770, 0x339E, 0x8771, 0x33A1, 0x8775, 0x33C4, 0x8774, 0x33CD, 0x8783, 0x4E00, 0x88EA, 0x4E01, 0x929A, + 0x4E03, 0x8EB5, 0x4E07, 0x969C, 0x4E08, 0x8FE4, 0x4E09, 0x8E4F, 0x4E0A, 0x8FE3, 0x4E0B, 0x89BA, 0x4E0D, 0x9573, 0x4E0E, 0x975E, + 0x4E10, 0x98A0, 0x4E11, 0x894E, 0x4E14, 0x8A8E, 0x4E15, 0x98A1, 0x4E16, 0x90A2, 0x4E17, 0x99C0, 0x4E18, 0x8B75, 0x4E19, 0x95B8, + 0x4E1E, 0x8FE5, 0x4E21, 0x97BC, 0x4E26, 0x95C0, 0x4E28, 0xFA68, 0x4E2A, 0x98A2, 0x4E2D, 0x9286, 0x4E31, 0x98A3, 0x4E32, 0x8BF8, + 0x4E36, 0x98A4, 0x4E38, 0x8ADB, 0x4E39, 0x924F, 0x4E3B, 0x8EE5, 0x4E3C, 0x98A5, 0x4E3F, 0x98A6, 0x4E42, 0x98A7, 0x4E43, 0x9454, + 0x4E45, 0x8B76, 0x4E4B, 0x9456, 0x4E4D, 0x93E1, 0x4E4E, 0x8CC1, 0x4E4F, 0x9652, 0x4E55, 0xE568, 0x4E56, 0x98A8, 0x4E57, 0x8FE6, + 0x4E58, 0x98A9, 0x4E59, 0x89B3, 0x4E5D, 0x8BE3, 0x4E5E, 0x8CEE, 0x4E5F, 0x96E7, 0x4E62, 0x9BA4, 0x4E71, 0x9790, 0x4E73, 0x93FB, + 0x4E7E, 0x8AA3, 0x4E80, 0x8B54, 0x4E82, 0x98AA, 0x4E85, 0x98AB, 0x4E86, 0x97B9, 0x4E88, 0x975C, 0x4E89, 0x9188, 0x4E8A, 0x98AD, + 0x4E8B, 0x8E96, 0x4E8C, 0x93F1, 0x4E8E, 0x98B0, 0x4E91, 0x895D, 0x4E92, 0x8CDD, 0x4E94, 0x8CDC, 0x4E95, 0x88E4, 0x4E98, 0x986A, + 0x4E99, 0x9869, 0x4E9B, 0x8DB1, 0x4E9C, 0x889F, 0x4E9E, 0x98B1, 0x4E9F, 0x98B2, 0x4EA0, 0x98B3, 0x4EA1, 0x9653, 0x4EA2, 0x98B4, + 0x4EA4, 0x8CF0, 0x4EA5, 0x88E5, 0x4EA6, 0x9692, 0x4EA8, 0x8B9C, 0x4EAB, 0x8B9D, 0x4EAC, 0x8B9E, 0x4EAD, 0x92E0, 0x4EAE, 0x97BA, + 0x4EB0, 0x98B5, 0x4EB3, 0x98B6, 0x4EB6, 0x98B7, 0x4EBA, 0x906C, 0x4EC0, 0x8F59, 0x4EC1, 0x906D, 0x4EC2, 0x98BC, 0x4EC4, 0x98BA, + 0x4EC6, 0x98BB, 0x4EC7, 0x8B77, 0x4ECA, 0x8DA1, 0x4ECB, 0x89EE, 0x4ECD, 0x98B9, 0x4ECE, 0x98B8, 0x4ECF, 0x95A7, 0x4ED4, 0x8E65, + 0x4ED5, 0x8E64, 0x4ED6, 0x91BC, 0x4ED7, 0x98BD, 0x4ED8, 0x9574, 0x4ED9, 0x90E5, 0x4EDD, 0x8157, 0x4EDE, 0x98BE, 0x4EDF, 0x98C0, + 0x4EE1, 0xFA69, 0x4EE3, 0x91E3, 0x4EE4, 0x97DF, 0x4EE5, 0x88C8, 0x4EED, 0x98BF, 0x4EEE, 0x89BC, 0x4EF0, 0x8BC2, 0x4EF2, 0x9287, + 0x4EF6, 0x8C8F, 0x4EF7, 0x98C1, 0x4EFB, 0x9443, 0x4EFC, 0xFA6A, 0x4F00, 0xFA6B, 0x4F01, 0x8AE9, 0x4F03, 0xFA6C, 0x4F09, 0x98C2, + 0x4F0A, 0x88C9, 0x4F0D, 0x8CDE, 0x4F0E, 0x8AEA, 0x4F0F, 0x959A, 0x4F10, 0x94B0, 0x4F11, 0x8B78, 0x4F1A, 0x89EF, 0x4F1C, 0x98E5, + 0x4F1D, 0x9360, 0x4F2F, 0x948C, 0x4F30, 0x98C4, 0x4F34, 0x94BA, 0x4F36, 0x97E0, 0x4F38, 0x904C, 0x4F39, 0xFA6D, 0x4F3A, 0x8E66, + 0x4F3C, 0x8E97, 0x4F3D, 0x89BE, 0x4F43, 0x92CF, 0x4F46, 0x9241, 0x4F47, 0x98C8, 0x4F4D, 0x88CA, 0x4F4E, 0x92E1, 0x4F4F, 0x8F5A, + 0x4F50, 0x8DB2, 0x4F51, 0x9743, 0x4F53, 0x91CC, 0x4F55, 0x89BD, 0x4F56, 0xFA6E, 0x4F57, 0x98C7, 0x4F59, 0x975D, 0x4F5A, 0x98C3, + 0x4F5B, 0x98C5, 0x4F5C, 0x8DEC, 0x4F5D, 0x98C6, 0x4F5E, 0x9B43, 0x4F69, 0x98CE, 0x4F6F, 0x98D1, 0x4F70, 0x98CF, 0x4F73, 0x89C0, + 0x4F75, 0x95B9, 0x4F76, 0x98C9, 0x4F7B, 0x98CD, 0x4F7C, 0x8CF1, 0x4F7F, 0x8E67, 0x4F83, 0x8AA4, 0x4F86, 0x98D2, 0x4F88, 0x98CA, + 0x4F8A, 0xFA70, 0x4F8B, 0x97E1, 0x4F8D, 0x8E98, 0x4F8F, 0x98CB, 0x4F91, 0x98D0, 0x4F92, 0xFA6F, 0x4F94, 0xFA72, 0x4F96, 0x98D3, + 0x4F98, 0x98CC, 0x4F9A, 0xFA71, 0x4F9B, 0x8B9F, 0x4F9D, 0x88CB, 0x4FA0, 0x8BA0, 0x4FA1, 0x89BF, 0x4FAB, 0x9B44, 0x4FAD, 0x9699, + 0x4FAE, 0x958E, 0x4FAF, 0x8CF2, 0x4FB5, 0x904E, 0x4FB6, 0x97B5, 0x4FBF, 0x95D6, 0x4FC2, 0x8C57, 0x4FC3, 0x91A3, 0x4FC4, 0x89E2, + 0x4FC9, 0xFA61, 0x4FCA, 0x8F72, 0x4FCD, 0xFA73, 0x4FCE, 0x98D7, 0x4FD0, 0x98DC, 0x4FD1, 0x98DA, 0x4FD4, 0x98D5, 0x4FD7, 0x91AD, + 0x4FD8, 0x98D8, 0x4FDA, 0x98DB, 0x4FDB, 0x98D9, 0x4FDD, 0x95DB, 0x4FDF, 0x98D6, 0x4FE1, 0x904D, 0x4FE3, 0x9693, 0x4FE4, 0x98DD, + 0x4FE5, 0x98DE, 0x4FEE, 0x8F43, 0x4FEF, 0x98EB, 0x4FF3, 0x946F, 0x4FF5, 0x9555, 0x4FF6, 0x98E6, 0x4FF8, 0x95EE, 0x4FFA, 0x89B4, + 0x4FFE, 0x98EA, 0x4FFF, 0xFA76, 0x5005, 0x98E4, 0x5006, 0x98ED, 0x5009, 0x9171, 0x500B, 0x8CC2, 0x500D, 0x947B, 0x500F, 0xE0C5, + 0x5011, 0x98EC, 0x5012, 0x937C, 0x5014, 0x98E1, 0x5016, 0x8CF4, 0x5019, 0x8CF3, 0x501A, 0x98DF, 0x501E, 0xFA77, 0x501F, 0x8ED8, + 0x5021, 0x98E7, 0x5022, 0xFA75, 0x5023, 0x95ED, 0x5024, 0x926C, 0x5025, 0x98E3, 0x5026, 0x8C91, 0x5028, 0x98E0, 0x5029, 0x98E8, + 0x502A, 0x98E2, 0x502B, 0x97CF, 0x502C, 0x98E9, 0x502D, 0x9860, 0x5036, 0x8BE4, 0x5039, 0x8C90, 0x5040, 0xFA74, 0x5042, 0xFA7A, + 0x5043, 0x98EE, 0x5046, 0xFA78, 0x5047, 0x98EF, 0x5048, 0x98F3, 0x5049, 0x88CC, 0x504F, 0x95CE, 0x5050, 0x98F2, 0x5055, 0x98F1, + 0x5056, 0x98F5, 0x505A, 0x98F4, 0x505C, 0x92E2, 0x5065, 0x8C92, 0x506C, 0x98F6, 0x5070, 0xFA79, 0x5072, 0x8EC3, 0x5074, 0x91A4, + 0x5075, 0x92E3, 0x5076, 0x8BF4, 0x5078, 0x98F7, 0x507D, 0x8B55, 0x5080, 0x98F8, 0x5085, 0x98FA, 0x508D, 0x9654, 0x5091, 0x8C86, + 0x5094, 0xFA7B, 0x5098, 0x8E50, 0x5099, 0x94F5, 0x509A, 0x98F9, 0x50AC, 0x8DC3, 0x50AD, 0x9762, 0x50B2, 0x98FC, 0x50B3, 0x9942, + 0x50B4, 0x98FB, 0x50B5, 0x8DC2, 0x50B7, 0x8F9D, 0x50BE, 0x8C58, 0x50C2, 0x9943, 0x50C5, 0x8BCD, 0x50C9, 0x9940, 0x50CA, 0x9941, + 0x50CD, 0x93AD, 0x50CF, 0x919C, 0x50D1, 0x8BA1, 0x50D5, 0x966C, 0x50D6, 0x9944, 0x50D8, 0xFA7D, 0x50DA, 0x97BB, 0x50DE, 0x9945, + 0x50E3, 0x9948, 0x50E5, 0x9946, 0x50E7, 0x916D, 0x50ED, 0x9947, 0x50EE, 0x9949, 0x50F4, 0xFA7C, 0x50F5, 0x994B, 0x50F9, 0x994A, + 0x50FB, 0x95C6, 0x5100, 0x8B56, 0x5101, 0x994D, 0x5102, 0x994E, 0x5104, 0x89AD, 0x5109, 0x994C, 0x5112, 0x8EF2, 0x5114, 0x9951, + 0x5115, 0x9950, 0x5116, 0x994F, 0x5118, 0x98D4, 0x511A, 0x9952, 0x511F, 0x8F9E, 0x5121, 0x9953, 0x512A, 0x9744, 0x5132, 0x96D7, + 0x5137, 0x9955, 0x513A, 0x9954, 0x513B, 0x9957, 0x513C, 0x9956, 0x513F, 0x9958, 0x5140, 0x9959, 0x5141, 0x88F2, 0x5143, 0x8CB3, + 0x5144, 0x8C5A, 0x5145, 0x8F5B, 0x5146, 0x929B, 0x5147, 0x8BA2, 0x5148, 0x90E6, 0x5149, 0x8CF5, 0x514A, 0xFA7E, 0x514B, 0x8D8E, + 0x514C, 0x995B, 0x514D, 0x96C6, 0x514E, 0x9365, 0x5150, 0x8E99, 0x5152, 0x995A, 0x5154, 0x995C, 0x515A, 0x937D, 0x515C, 0x8A95, + 0x5162, 0x995D, 0x5164, 0xFA80, 0x5165, 0x93FC, 0x5168, 0x9153, 0x5169, 0x995F, 0x516A, 0x9960, 0x516B, 0x94AA, 0x516C, 0x8CF6, + 0x516D, 0x985A, 0x516E, 0x9961, 0x5171, 0x8BA4, 0x5175, 0x95BA, 0x5176, 0x91B4, 0x5177, 0x8BEF, 0x5178, 0x9354, 0x517C, 0x8C93, + 0x5180, 0x9962, 0x5182, 0x9963, 0x5185, 0x93E0, 0x5186, 0x897E, 0x5189, 0x9966, 0x518A, 0x8DFB, 0x518C, 0x9965, 0x518D, 0x8DC4, + 0x518F, 0x9967, 0x5190, 0xE3EC, 0x5191, 0x9968, 0x5192, 0x9660, 0x5193, 0x9969, 0x5195, 0x996A, 0x5196, 0x996B, 0x5197, 0x8FE7, + 0x5199, 0x8ECA, 0x519D, 0xFA81, 0x51A0, 0x8AA5, 0x51A2, 0x996E, 0x51A4, 0x996C, 0x51A5, 0x96BB, 0x51A6, 0x996D, 0x51A8, 0x9579, + 0x51A9, 0x996F, 0x51AA, 0x9970, 0x51AB, 0x9971, 0x51AC, 0x937E, 0x51B0, 0x9975, 0x51B1, 0x9973, 0x51B2, 0x9974, 0x51B3, 0x9972, + 0x51B4, 0x8DE1, 0x51B5, 0x9976, 0x51B6, 0x96E8, 0x51B7, 0x97E2, 0x51BD, 0x9977, 0x51BE, 0xFA82, 0x51C4, 0x90A6, 0x51C5, 0x9978, + 0x51C6, 0x8F79, 0x51C9, 0x9979, 0x51CB, 0x929C, 0x51CC, 0x97BD, 0x51CD, 0x9380, 0x51D6, 0x99C3, 0x51DB, 0x997A, 0x51DC, 0xEAA3, + 0x51DD, 0x8BC3, 0x51E0, 0x997B, 0x51E1, 0x967D, 0x51E6, 0x8F88, 0x51E7, 0x91FA, 0x51E9, 0x997D, 0x51EA, 0x93E2, 0x51EC, 0xFA83, + 0x51ED, 0x997E, 0x51F0, 0x9980, 0x51F1, 0x8A4D, 0x51F5, 0x9981, 0x51F6, 0x8BA5, 0x51F8, 0x93CA, 0x51F9, 0x899A, 0x51FA, 0x8F6F, + 0x51FD, 0x949F, 0x51FE, 0x9982, 0x5200, 0x9381, 0x5203, 0x906E, 0x5204, 0x9983, 0x5206, 0x95AA, 0x5207, 0x90D8, 0x5208, 0x8AA0, + 0x520A, 0x8AA7, 0x520B, 0x9984, 0x520E, 0x9986, 0x5211, 0x8C59, 0x5214, 0x9985, 0x5215, 0xFA84, 0x5217, 0x97F1, 0x521D, 0x8F89, + 0x5224, 0x94BB, 0x5225, 0x95CA, 0x5227, 0x9987, 0x5229, 0x9798, 0x522A, 0x9988, 0x522E, 0x9989, 0x5230, 0x939E, 0x5233, 0x998A, + 0x5236, 0x90A7, 0x5237, 0x8DFC, 0x5238, 0x8C94, 0x5239, 0x998B, 0x523A, 0x8E68, 0x523B, 0x8D8F, 0x5243, 0x92E4, 0x5244, 0x998D, + 0x5247, 0x91A5, 0x524A, 0x8DED, 0x524B, 0x998E, 0x524C, 0x998F, 0x524D, 0x914F, 0x524F, 0x998C, 0x5254, 0x9991, 0x5256, 0x9655, + 0x525B, 0x8D84, 0x525E, 0x9990, 0x5263, 0x8C95, 0x5264, 0x8DDC, 0x5265, 0x948D, 0x5269, 0x9994, 0x526A, 0x9992, 0x526F, 0x959B, + 0x5270, 0x8FE8, 0x5271, 0x999B, 0x5272, 0x8A84, 0x5273, 0x9995, 0x5274, 0x9993, 0x5275, 0x916E, 0x527D, 0x9997, 0x527F, 0x9996, + 0x5283, 0x8A63, 0x5287, 0x8C80, 0x5288, 0x999C, 0x5289, 0x97AB, 0x528D, 0x9998, 0x5291, 0x999D, 0x5292, 0x999A, 0x5294, 0x9999, + 0x529B, 0x97CD, 0x529C, 0xFA85, 0x529F, 0x8CF7, 0x52A0, 0x89C1, 0x52A3, 0x97F2, 0x52A6, 0xFA86, 0x52A9, 0x8F95, 0x52AA, 0x9377, + 0x52AB, 0x8D85, 0x52AC, 0x99A0, 0x52AD, 0x99A1, 0x52AF, 0xFB77, 0x52B1, 0x97E3, 0x52B4, 0x984A, 0x52B5, 0x99A3, 0x52B9, 0x8CF8, + 0x52BC, 0x99A2, 0x52BE, 0x8A4E, 0x52C0, 0xFA87, 0x52C1, 0x99A4, 0x52C3, 0x9675, 0x52C5, 0x92BA, 0x52C7, 0x9745, 0x52C9, 0x95D7, + 0x52CD, 0x99A5, 0x52D2, 0xE8D3, 0x52D5, 0x93AE, 0x52D7, 0x99A6, 0x52D8, 0x8AA8, 0x52D9, 0x96B1, 0x52DB, 0xFA88, 0x52DD, 0x8F9F, + 0x52DE, 0x99A7, 0x52DF, 0x95E5, 0x52E0, 0x99AB, 0x52E2, 0x90A8, 0x52E3, 0x99A8, 0x52E4, 0x8BCE, 0x52E6, 0x99A9, 0x52E7, 0x8AA9, + 0x52F2, 0x8C4D, 0x52F3, 0x99AC, 0x52F5, 0x99AD, 0x52F8, 0x99AE, 0x52F9, 0x99AF, 0x52FA, 0x8ED9, 0x52FE, 0x8CF9, 0x52FF, 0x96DC, + 0x5300, 0xFA89, 0x5301, 0x96E6, 0x5302, 0x93F5, 0x5305, 0x95EF, 0x5306, 0x99B0, 0x5307, 0xFA8A, 0x5308, 0x99B1, 0x530D, 0x99B3, + 0x530F, 0x99B5, 0x5310, 0x99B4, 0x5315, 0x99B6, 0x5316, 0x89BB, 0x5317, 0x966B, 0x5319, 0x8DFA, 0x531A, 0x99B7, 0x531D, 0x9178, + 0x5320, 0x8FA0, 0x5321, 0x8BA7, 0x5323, 0x99B8, 0x5324, 0xFA8B, 0x532A, 0x94D9, 0x532F, 0x99B9, 0x5331, 0x99BA, 0x5333, 0x99BB, + 0x5338, 0x99BC, 0x5339, 0x9543, 0x533A, 0x8BE6, 0x533B, 0x88E3, 0x533F, 0x93BD, 0x5340, 0x99BD, 0x5341, 0x8F5C, 0x5343, 0x90E7, + 0x5345, 0x99BF, 0x5346, 0x99BE, 0x5347, 0x8FA1, 0x5348, 0x8CDF, 0x5349, 0x99C1, 0x534A, 0x94BC, 0x534D, 0x99C2, 0x5351, 0x94DA, + 0x5352, 0x91B2, 0x5353, 0x91EC, 0x5354, 0x8BA6, 0x5357, 0x93EC, 0x5358, 0x9250, 0x535A, 0x948E, 0x535C, 0x966D, 0x535E, 0x99C4, + 0x5360, 0x90E8, 0x5366, 0x8C54, 0x5369, 0x99C5, 0x536E, 0x99C6, 0x536F, 0x894B, 0x5370, 0x88F3, 0x5371, 0x8AEB, 0x5372, 0xFA8C, + 0x5373, 0x91A6, 0x5374, 0x8B70, 0x5375, 0x9791, 0x5377, 0x99C9, 0x5378, 0x89B5, 0x537B, 0x99C8, 0x537F, 0x8BA8, 0x5382, 0x99CA, + 0x5384, 0x96EF, 0x5393, 0xFA8D, 0x5396, 0x99CB, 0x5398, 0x97D0, 0x539A, 0x8CFA, 0x539F, 0x8CB4, 0x53A0, 0x99CC, 0x53A5, 0x99CE, + 0x53A6, 0x99CD, 0x53A8, 0x907E, 0x53A9, 0x8958, 0x53AD, 0x897D, 0x53AE, 0x99CF, 0x53B0, 0x99D0, 0x53B2, 0xFA8E, 0x53B3, 0x8CB5, + 0x53B6, 0x99D1, 0x53BB, 0x8B8E, 0x53C2, 0x8E51, 0x53C3, 0x99D2, 0x53C8, 0x9694, 0x53C9, 0x8DB3, 0x53CA, 0x8B79, 0x53CB, 0x9746, + 0x53CC, 0x916F, 0x53CD, 0x94BD, 0x53CE, 0x8EFB, 0x53D4, 0x8F66, 0x53D6, 0x8EE6, 0x53D7, 0x8EF3, 0x53D9, 0x8F96, 0x53DB, 0x94BE, + 0x53DD, 0xFA8F, 0x53DF, 0x99D5, 0x53E1, 0x8962, 0x53E2, 0x9170, 0x53E3, 0x8CFB, 0x53E4, 0x8CC3, 0x53E5, 0x8BE5, 0x53E8, 0x99D9, + 0x53E9, 0x9240, 0x53EA, 0x91FC, 0x53EB, 0x8BA9, 0x53EC, 0x8FA2, 0x53ED, 0x99DA, 0x53EE, 0x99D8, 0x53EF, 0x89C2, 0x53F0, 0x91E4, + 0x53F1, 0x8EB6, 0x53F2, 0x8E6A, 0x53F3, 0x8945, 0x53F6, 0x8A90, 0x53F7, 0x8D86, 0x53F8, 0x8E69, 0x53FA, 0x99DB, 0x5401, 0x99DC, + 0x5403, 0x8B68, 0x5404, 0x8A65, 0x5408, 0x8D87, 0x5409, 0x8B67, 0x540A, 0x92DD, 0x540B, 0x8944, 0x540C, 0x93AF, 0x540D, 0x96BC, + 0x540E, 0x8D40, 0x540F, 0x9799, 0x5410, 0x9366, 0x5411, 0x8CFC, 0x541B, 0x8C4E, 0x541D, 0x99E5, 0x541F, 0x8BE1, 0x5420, 0x9669, + 0x5426, 0x94DB, 0x5429, 0x99E4, 0x542B, 0x8ADC, 0x542C, 0x99DF, 0x542D, 0x99E0, 0x542E, 0x99E2, 0x5436, 0x99E3, 0x5438, 0x8B7A, + 0x5439, 0x9081, 0x543B, 0x95AB, 0x543C, 0x99E1, 0x543D, 0x99DD, 0x543E, 0x8CE1, 0x5440, 0x99DE, 0x5442, 0x9843, 0x5446, 0x95F0, + 0x5448, 0x92E6, 0x5449, 0x8CE0, 0x544A, 0x8D90, 0x544E, 0x99E6, 0x5451, 0x93DB, 0x545F, 0x99EA, 0x5468, 0x8EFC, 0x546A, 0x8EF4, + 0x5470, 0x99ED, 0x5471, 0x99EB, 0x5473, 0x96A1, 0x5475, 0x99E8, 0x5476, 0x99F1, 0x5477, 0x99EC, 0x547B, 0x99EF, 0x547C, 0x8CC4, + 0x547D, 0x96BD, 0x5480, 0x99F0, 0x5484, 0x99F2, 0x5486, 0x99F4, 0x548A, 0xFA92, 0x548B, 0x8DEE, 0x548C, 0x9861, 0x548E, 0x99E9, + 0x548F, 0x99E7, 0x5490, 0x99F3, 0x5492, 0x99EE, 0x549C, 0xFA91, 0x54A2, 0x99F6, 0x54A4, 0x9A42, 0x54A5, 0x99F8, 0x54A8, 0x99FC, + 0x54A9, 0xFA93, 0x54AB, 0x9A40, 0x54AC, 0x99F9, 0x54AF, 0x9A5D, 0x54B2, 0x8DE7, 0x54B3, 0x8A50, 0x54B8, 0x99F7, 0x54BC, 0x9A44, + 0x54BD, 0x88F4, 0x54BE, 0x9A43, 0x54C0, 0x88A3, 0x54C1, 0x9569, 0x54C2, 0x9A41, 0x54C4, 0x99FA, 0x54C7, 0x99F5, 0x54C8, 0x99FB, + 0x54C9, 0x8DC6, 0x54D8, 0x9A45, 0x54E1, 0x88F5, 0x54E2, 0x9A4E, 0x54E5, 0x9A46, 0x54E6, 0x9A47, 0x54E8, 0x8FA3, 0x54E9, 0x9689, + 0x54ED, 0x9A4C, 0x54EE, 0x9A4B, 0x54F2, 0x934E, 0x54FA, 0x9A4D, 0x54FD, 0x9A4A, 0x54FF, 0xFA94, 0x5504, 0x8953, 0x5506, 0x8DB4, + 0x5507, 0x904F, 0x550F, 0x9A48, 0x5510, 0x9382, 0x5514, 0x9A49, 0x5516, 0x88A0, 0x552E, 0x9A53, 0x552F, 0x9742, 0x5531, 0x8FA5, + 0x5533, 0x9A59, 0x5538, 0x9A58, 0x5539, 0x9A4F, 0x553E, 0x91C1, 0x5540, 0x9A50, 0x5544, 0x91ED, 0x5545, 0x9A55, 0x5546, 0x8FA4, + 0x554C, 0x9A52, 0x554F, 0x96E2, 0x5553, 0x8C5B, 0x5556, 0x9A56, 0x5557, 0x9A57, 0x555C, 0x9A54, 0x555D, 0x9A5A, 0x5563, 0x9A51, + 0x557B, 0x9A60, 0x557C, 0x9A65, 0x557E, 0x9A61, 0x5580, 0x9A5C, 0x5583, 0x9A66, 0x5584, 0x9150, 0x5586, 0xFA95, 0x5587, 0x9A68, + 0x5589, 0x8D41, 0x558A, 0x9A5E, 0x558B, 0x929D, 0x5598, 0x9A62, 0x5599, 0x9A5B, 0x559A, 0x8AAB, 0x559C, 0x8AEC, 0x559D, 0x8A85, + 0x559E, 0x9A63, 0x559F, 0x9A5F, 0x55A7, 0x8C96, 0x55A8, 0x9A69, 0x55A9, 0x9A67, 0x55AA, 0x9172, 0x55AB, 0x8B69, 0x55AC, 0x8BAA, + 0x55AE, 0x9A64, 0x55B0, 0x8BF2, 0x55B6, 0x8963, 0x55C4, 0x9A6D, 0x55C5, 0x9A6B, 0x55C7, 0x9AA5, 0x55D4, 0x9A70, 0x55DA, 0x9A6A, + 0x55DC, 0x9A6E, 0x55DF, 0x9A6C, 0x55E3, 0x8E6B, 0x55E4, 0x9A6F, 0x55F7, 0x9A72, 0x55F9, 0x9A77, 0x55FD, 0x9A75, 0x55FE, 0x9A74, + 0x5606, 0x9251, 0x5609, 0x89C3, 0x5614, 0x9A71, 0x5616, 0x9A73, 0x5617, 0x8FA6, 0x5618, 0x8952, 0x561B, 0x9A76, 0x5629, 0x89DC, + 0x562F, 0x9A82, 0x5631, 0x8FFA, 0x5632, 0x9A7D, 0x5634, 0x9A7B, 0x5636, 0x9A7C, 0x5638, 0x9A7E, 0x5642, 0x895C, 0x564C, 0x9158, + 0x564E, 0x9A78, 0x5650, 0x9A79, 0x565B, 0x8A9A, 0x5664, 0x9A81, 0x5668, 0x8AED, 0x566A, 0x9A84, 0x566B, 0x9A80, 0x566C, 0x9A83, + 0x5674, 0x95AC, 0x5678, 0x93D3, 0x567A, 0x94B6, 0x5680, 0x9A86, 0x5686, 0x9A85, 0x5687, 0x8A64, 0x568A, 0x9A87, 0x568F, 0x9A8A, + 0x5694, 0x9A89, 0x56A0, 0x9A88, 0x56A2, 0x9458, 0x56A5, 0x9A8B, 0x56AE, 0x9A8C, 0x56B4, 0x9A8E, 0x56B6, 0x9A8D, 0x56BC, 0x9A90, + 0x56C0, 0x9A93, 0x56C1, 0x9A91, 0x56C2, 0x9A8F, 0x56C3, 0x9A92, 0x56C8, 0x9A94, 0x56CE, 0x9A95, 0x56D1, 0x9A96, 0x56D3, 0x9A97, + 0x56D7, 0x9A98, 0x56D8, 0x9964, 0x56DA, 0x8EFA, 0x56DB, 0x8E6C, 0x56DE, 0x89F1, 0x56E0, 0x88F6, 0x56E3, 0x9263, 0x56EE, 0x9A99, + 0x56F0, 0x8DA2, 0x56F2, 0x88CD, 0x56F3, 0x907D, 0x56F9, 0x9A9A, 0x56FA, 0x8CC5, 0x56FD, 0x8D91, 0x56FF, 0x9A9C, 0x5700, 0x9A9B, + 0x5703, 0x95DE, 0x5704, 0x9A9D, 0x5708, 0x9A9F, 0x5709, 0x9A9E, 0x570B, 0x9AA0, 0x570D, 0x9AA1, 0x570F, 0x8C97, 0x5712, 0x8980, + 0x5713, 0x9AA2, 0x5716, 0x9AA4, 0x5718, 0x9AA3, 0x571C, 0x9AA6, 0x571F, 0x9379, 0x5726, 0x9AA7, 0x5727, 0x88B3, 0x5728, 0x8DDD, + 0x572D, 0x8C5C, 0x5730, 0x926E, 0x5737, 0x9AA8, 0x5738, 0x9AA9, 0x573B, 0x9AAB, 0x5740, 0x9AAC, 0x5742, 0x8DE2, 0x5747, 0x8BCF, + 0x574A, 0x9656, 0x574E, 0x9AAA, 0x574F, 0x9AAD, 0x5750, 0x8DBF, 0x5751, 0x8D42, 0x5759, 0xFA96, 0x5761, 0x9AB1, 0x5764, 0x8DA3, + 0x5765, 0xFA97, 0x5766, 0x9252, 0x5769, 0x9AAE, 0x576A, 0x92D8, 0x577F, 0x9AB2, 0x5782, 0x9082, 0x5788, 0x9AB0, 0x5789, 0x9AB3, + 0x578B, 0x8C5E, 0x5793, 0x9AB4, 0x57A0, 0x9AB5, 0x57A2, 0x8D43, 0x57A3, 0x8A5F, 0x57A4, 0x9AB7, 0x57AA, 0x9AB8, 0x57AC, 0xFA98, + 0x57B0, 0x9AB9, 0x57B3, 0x9AB6, 0x57C0, 0x9AAF, 0x57C3, 0x9ABA, 0x57C6, 0x9ABB, 0x57C7, 0xFA9A, 0x57C8, 0xFA99, 0x57CB, 0x9684, + 0x57CE, 0x8FE9, 0x57D2, 0x9ABD, 0x57D3, 0x9ABE, 0x57D4, 0x9ABC, 0x57D6, 0x9AC0, 0x57DC, 0x9457, 0x57DF, 0x88E6, 0x57E0, 0x9575, + 0x57E3, 0x9AC1, 0x57F4, 0x8FFB, 0x57F7, 0x8EB7, 0x57F9, 0x947C, 0x57FA, 0x8AEE, 0x57FC, 0x8DE9, 0x5800, 0x9678, 0x5802, 0x93B0, + 0x5805, 0x8C98, 0x5806, 0x91CD, 0x580A, 0x9ABF, 0x580B, 0x9AC2, 0x5815, 0x91C2, 0x5819, 0x9AC3, 0x581D, 0x9AC4, 0x5821, 0x9AC6, + 0x5824, 0x92E7, 0x582A, 0x8AAC, 0x582F, 0xEA9F, 0x5830, 0x8981, 0x5831, 0x95F1, 0x5834, 0x8FEA, 0x5835, 0x9367, 0x583A, 0x8DE4, + 0x583D, 0x9ACC, 0x5840, 0x95BB, 0x5841, 0x97DB, 0x584A, 0x89F2, 0x584B, 0x9AC8, 0x5851, 0x9159, 0x5852, 0x9ACB, 0x5854, 0x9383, + 0x5857, 0x9368, 0x5858, 0x9384, 0x5859, 0x94B7, 0x585A, 0x92CB, 0x585E, 0x8DC7, 0x5862, 0x9AC7, 0x5869, 0x8996, 0x586B, 0x9355, + 0x5870, 0x9AC9, 0x5872, 0x9AC5, 0x5875, 0x906F, 0x5879, 0x9ACD, 0x587E, 0x8F6D, 0x5883, 0x8BAB, 0x5885, 0x9ACE, 0x5893, 0x95E6, + 0x5897, 0x919D, 0x589C, 0x92C4, 0x589E, 0xFA9D, 0x589F, 0x9AD0, 0x58A8, 0x966E, 0x58AB, 0x9AD1, 0x58AE, 0x9AD6, 0x58B2, 0xFA9E, + 0x58B3, 0x95AD, 0x58B8, 0x9AD5, 0x58B9, 0x9ACF, 0x58BA, 0x9AD2, 0x58BB, 0x9AD4, 0x58BE, 0x8DA4, 0x58C1, 0x95C7, 0x58C5, 0x9AD7, + 0x58C7, 0x9264, 0x58CA, 0x89F3, 0x58CC, 0x8FEB, 0x58D1, 0x9AD9, 0x58D3, 0x9AD8, 0x58D5, 0x8D88, 0x58D7, 0x9ADA, 0x58D8, 0x9ADC, + 0x58D9, 0x9ADB, 0x58DC, 0x9ADE, 0x58DE, 0x9AD3, 0x58DF, 0x9AE0, 0x58E4, 0x9ADF, 0x58E5, 0x9ADD, 0x58EB, 0x8E6D, 0x58EC, 0x9070, + 0x58EE, 0x9173, 0x58EF, 0x9AE1, 0x58F0, 0x90BA, 0x58F1, 0x88EB, 0x58F2, 0x9484, 0x58F7, 0x92D9, 0x58F9, 0x9AE3, 0x58FA, 0x9AE2, + 0x58FB, 0x9AE4, 0x58FC, 0x9AE5, 0x58FD, 0x9AE6, 0x5902, 0x9AE7, 0x5909, 0x95CF, 0x590A, 0x9AE8, 0x590B, 0xFA9F, 0x590F, 0x89C4, + 0x5910, 0x9AE9, 0x5915, 0x975B, 0x5916, 0x8A4F, 0x5918, 0x99C7, 0x5919, 0x8F67, 0x591A, 0x91BD, 0x591B, 0x9AEA, 0x591C, 0x96E9, + 0x5922, 0x96B2, 0x5925, 0x9AEC, 0x5927, 0x91E5, 0x5929, 0x9356, 0x592A, 0x91BE, 0x592B, 0x9576, 0x592C, 0x9AED, 0x592D, 0x9AEE, + 0x592E, 0x899B, 0x5931, 0x8EB8, 0x5932, 0x9AEF, 0x5937, 0x88CE, 0x5938, 0x9AF0, 0x593E, 0x9AF1, 0x5944, 0x8982, 0x5947, 0x8AEF, + 0x5948, 0x93DE, 0x5949, 0x95F2, 0x594E, 0x9AF5, 0x594F, 0x9174, 0x5950, 0x9AF4, 0x5951, 0x8C5F, 0x5953, 0xFAA0, 0x5954, 0x967A, + 0x5955, 0x9AF3, 0x5957, 0x9385, 0x5958, 0x9AF7, 0x595A, 0x9AF6, 0x595B, 0xFAA1, 0x595D, 0xFAA2, 0x5960, 0x9AF9, 0x5962, 0x9AF8, + 0x5963, 0xFAA3, 0x5965, 0x899C, 0x5967, 0x9AFA, 0x5968, 0x8FA7, 0x5969, 0x9AFC, 0x596A, 0x9244, 0x596C, 0x9AFB, 0x596E, 0x95B1, + 0x5973, 0x8F97, 0x5974, 0x937A, 0x5978, 0x9B40, 0x597D, 0x8D44, 0x5981, 0x9B41, 0x5982, 0x9440, 0x5983, 0x94DC, 0x5984, 0x96CF, + 0x598A, 0x9444, 0x598D, 0x9B4A, 0x5993, 0x8B57, 0x5996, 0x9764, 0x5999, 0x96AD, 0x599B, 0x9BAA, 0x599D, 0x9B42, 0x59A3, 0x9B45, + 0x59A4, 0xFAA4, 0x59A5, 0x91C3, 0x59A8, 0x9657, 0x59AC, 0x9369, 0x59B2, 0x9B46, 0x59B9, 0x9685, 0x59BA, 0xFAA5, 0x59BB, 0x8DC8, + 0x59BE, 0x8FA8, 0x59C6, 0x9B47, 0x59C9, 0x8E6F, 0x59CB, 0x8E6E, 0x59D0, 0x88B7, 0x59D1, 0x8CC6, 0x59D3, 0x90A9, 0x59D4, 0x88CF, + 0x59D9, 0x9B4B, 0x59DA, 0x9B4C, 0x59DC, 0x9B49, 0x59E5, 0x8957, 0x59E6, 0x8AAD, 0x59E8, 0x9B48, 0x59EA, 0x96C3, 0x59EB, 0x9550, + 0x59F6, 0x88A6, 0x59FB, 0x88F7, 0x59FF, 0x8E70, 0x5A01, 0x88D0, 0x5A03, 0x88A1, 0x5A09, 0x9B51, 0x5A11, 0x9B4F, 0x5A18, 0x96BA, + 0x5A1A, 0x9B52, 0x5A1C, 0x9B50, 0x5A1F, 0x9B4E, 0x5A20, 0x9050, 0x5A25, 0x9B4D, 0x5A29, 0x95D8, 0x5A2F, 0x8CE2, 0x5A35, 0x9B56, + 0x5A36, 0x9B57, 0x5A3C, 0x8FA9, 0x5A40, 0x9B53, 0x5A41, 0x984B, 0x5A46, 0x946B, 0x5A49, 0x9B55, 0x5A5A, 0x8DA5, 0x5A62, 0x9B58, + 0x5A66, 0x9577, 0x5A6A, 0x9B59, 0x5A6C, 0x9B54, 0x5A7F, 0x96B9, 0x5A92, 0x947D, 0x5A9A, 0x9B5A, 0x5A9B, 0x9551, 0x5ABC, 0x9B5B, + 0x5ABD, 0x9B5F, 0x5ABE, 0x9B5C, 0x5AC1, 0x89C5, 0x5AC2, 0x9B5E, 0x5AC9, 0x8EB9, 0x5ACB, 0x9B5D, 0x5ACC, 0x8C99, 0x5AD0, 0x9B6B, + 0x5AD6, 0x9B64, 0x5AD7, 0x9B61, 0x5AE1, 0x9284, 0x5AE3, 0x9B60, 0x5AE6, 0x9B62, 0x5AE9, 0x9B63, 0x5AFA, 0x9B65, 0x5AFB, 0x9B66, + 0x5B09, 0x8AF0, 0x5B0B, 0x9B68, 0x5B0C, 0x9B67, 0x5B16, 0x9B69, 0x5B22, 0x8FEC, 0x5B2A, 0x9B6C, 0x5B2C, 0x92DA, 0x5B30, 0x8964, + 0x5B32, 0x9B6A, 0x5B36, 0x9B6D, 0x5B3E, 0x9B6E, 0x5B40, 0x9B71, 0x5B43, 0x9B6F, 0x5B45, 0x9B70, 0x5B50, 0x8E71, 0x5B51, 0x9B72, + 0x5B54, 0x8D45, 0x5B55, 0x9B73, 0x5B56, 0xFAA6, 0x5B57, 0x8E9A, 0x5B58, 0x91B6, 0x5B5A, 0x9B74, 0x5B5B, 0x9B75, 0x5B5C, 0x8E79, + 0x5B5D, 0x8D46, 0x5B5F, 0x96D0, 0x5B63, 0x8B47, 0x5B64, 0x8CC7, 0x5B65, 0x9B76, 0x5B66, 0x8A77, 0x5B69, 0x9B77, 0x5B6B, 0x91B7, + 0x5B70, 0x9B78, 0x5B71, 0x9BA1, 0x5B73, 0x9B79, 0x5B75, 0x9B7A, 0x5B78, 0x9B7B, 0x5B7A, 0x9B7D, 0x5B80, 0x9B7E, 0x5B83, 0x9B80, + 0x5B85, 0x91EE, 0x5B87, 0x8946, 0x5B88, 0x8EE7, 0x5B89, 0x88C0, 0x5B8B, 0x9176, 0x5B8C, 0x8AAE, 0x5B8D, 0x8EB3, 0x5B8F, 0x8D47, + 0x5B95, 0x9386, 0x5B97, 0x8F40, 0x5B98, 0x8AAF, 0x5B99, 0x9288, 0x5B9A, 0x92E8, 0x5B9B, 0x88B6, 0x5B9C, 0x8B58, 0x5B9D, 0x95F3, + 0x5B9F, 0x8EC0, 0x5BA2, 0x8B71, 0x5BA3, 0x90E9, 0x5BA4, 0x8EBA, 0x5BA5, 0x9747, 0x5BA6, 0x9B81, 0x5BAE, 0x8B7B, 0x5BB0, 0x8DC9, + 0x5BB3, 0x8A51, 0x5BB4, 0x8983, 0x5BB5, 0x8FAA, 0x5BB6, 0x89C6, 0x5BB8, 0x9B82, 0x5BB9, 0x9765, 0x5BBF, 0x8F68, 0x5BC0, 0xFAA7, + 0x5BC2, 0x8EE2, 0x5BC3, 0x9B83, 0x5BC4, 0x8AF1, 0x5BC5, 0x93D0, 0x5BC6, 0x96A7, 0x5BC7, 0x9B84, 0x5BC9, 0x9B85, 0x5BCC, 0x9578, + 0x5BD0, 0x9B87, 0x5BD2, 0x8AA6, 0x5BD3, 0x8BF5, 0x5BD4, 0x9B86, 0x5BD8, 0xFAA9, 0x5BDB, 0x8AB0, 0x5BDD, 0x9051, 0x5BDE, 0x9B8B, + 0x5BDF, 0x8E40, 0x5BE1, 0x89C7, 0x5BE2, 0x9B8A, 0x5BE4, 0x9B88, 0x5BE5, 0x9B8C, 0x5BE6, 0x9B89, 0x5BE7, 0x944A, 0x5BE8, 0x9ECB, + 0x5BE9, 0x9052, 0x5BEB, 0x9B8D, 0x5BEC, 0xFAAA, 0x5BEE, 0x97BE, 0x5BF0, 0x9B8E, 0x5BF3, 0x9B90, 0x5BF5, 0x929E, 0x5BF6, 0x9B8F, + 0x5BF8, 0x90A1, 0x5BFA, 0x8E9B, 0x5BFE, 0x91CE, 0x5BFF, 0x8EF5, 0x5C01, 0x9595, 0x5C02, 0x90EA, 0x5C04, 0x8ECB, 0x5C05, 0x9B91, + 0x5C06, 0x8FAB, 0x5C07, 0x9B92, 0x5C08, 0x9B93, 0x5C09, 0x88D1, 0x5C0A, 0x91B8, 0x5C0B, 0x9071, 0x5C0D, 0x9B94, 0x5C0E, 0x93B1, + 0x5C0F, 0x8FAC, 0x5C11, 0x8FAD, 0x5C13, 0x9B95, 0x5C16, 0x90EB, 0x5C1A, 0x8FAE, 0x5C1E, 0xFAAB, 0x5C20, 0x9B96, 0x5C22, 0x9B97, + 0x5C24, 0x96DE, 0x5C28, 0x9B98, 0x5C2D, 0x8BC4, 0x5C31, 0x8F41, 0x5C38, 0x9B99, 0x5C39, 0x9B9A, 0x5C3A, 0x8EDA, 0x5C3B, 0x904B, + 0x5C3C, 0x93F2, 0x5C3D, 0x9073, 0x5C3E, 0x94F6, 0x5C3F, 0x9441, 0x5C40, 0x8BC7, 0x5C41, 0x9B9B, 0x5C45, 0x8B8F, 0x5C46, 0x9B9C, + 0x5C48, 0x8BFC, 0x5C4A, 0x93CD, 0x5C4B, 0x89AE, 0x5C4D, 0x8E72, 0x5C4E, 0x9B9D, 0x5C4F, 0x9BA0, 0x5C50, 0x9B9F, 0x5C51, 0x8BFB, + 0x5C53, 0x9B9E, 0x5C55, 0x9357, 0x5C5E, 0x91AE, 0x5C60, 0x936A, 0x5C61, 0x8EC6, 0x5C64, 0x9177, 0x5C65, 0x979A, 0x5C6C, 0x9BA2, + 0x5C6E, 0x9BA3, 0x5C6F, 0x93D4, 0x5C71, 0x8E52, 0x5C76, 0x9BA5, 0x5C79, 0x9BA6, 0x5C8C, 0x9BA7, 0x5C90, 0x8AF2, 0x5C91, 0x9BA8, + 0x5C94, 0x9BA9, 0x5CA1, 0x89AA, 0x5CA6, 0xFAAC, 0x5CA8, 0x915A, 0x5CA9, 0x8AE2, 0x5CAB, 0x9BAB, 0x5CAC, 0x96A6, 0x5CB1, 0x91D0, + 0x5CB3, 0x8A78, 0x5CB6, 0x9BAD, 0x5CB7, 0x9BAF, 0x5CB8, 0x8ADD, 0x5CBA, 0xFAAD, 0x5CBB, 0x9BAC, 0x5CBC, 0x9BAE, 0x5CBE, 0x9BB1, + 0x5CC5, 0x9BB0, 0x5CC7, 0x9BB2, 0x5CD9, 0x9BB3, 0x5CE0, 0x93BB, 0x5CE1, 0x8BAC, 0x5CE8, 0x89E3, 0x5CE9, 0x9BB4, 0x5CEA, 0x9BB9, + 0x5CED, 0x9BB7, 0x5CEF, 0x95F5, 0x5CF0, 0x95F4, 0x5CF5, 0xFAAE, 0x5CF6, 0x9387, 0x5CFA, 0x9BB6, 0x5CFB, 0x8F73, 0x5CFD, 0x9BB5, + 0x5D07, 0x9092, 0x5D0B, 0x9BBA, 0x5D0E, 0x8DE8, 0x5D11, 0x9BC0, 0x5D14, 0x9BC1, 0x5D15, 0x9BBB, 0x5D16, 0x8A52, 0x5D17, 0x9BBC, + 0x5D18, 0x9BC5, 0x5D19, 0x9BC4, 0x5D1A, 0x9BC3, 0x5D1B, 0x9BBF, 0x5D1F, 0x9BBE, 0x5D22, 0x9BC2, 0x5D27, 0xFAAF, 0x5D29, 0x95F6, + 0x5D42, 0xFAB2, 0x5D4B, 0x9BC9, 0x5D4C, 0x9BC6, 0x5D4E, 0x9BC8, 0x5D50, 0x9792, 0x5D52, 0x9BC7, 0x5D53, 0xFAB0, 0x5D5C, 0x9BBD, + 0x5D69, 0x9093, 0x5D6C, 0x9BCA, 0x5D6D, 0xFAB3, 0x5D6F, 0x8DB5, 0x5D73, 0x9BCB, 0x5D76, 0x9BCC, 0x5D82, 0x9BCF, 0x5D84, 0x9BCE, + 0x5D87, 0x9BCD, 0x5D8B, 0x9388, 0x5D8C, 0x9BB8, 0x5D90, 0x9BD5, 0x5D9D, 0x9BD1, 0x5DA2, 0x9BD0, 0x5DAC, 0x9BD2, 0x5DAE, 0x9BD3, + 0x5DB7, 0x9BD6, 0x5DB8, 0xFAB4, 0x5DB9, 0xFAB5, 0x5DBA, 0x97E4, 0x5DBC, 0x9BD7, 0x5DBD, 0x9BD4, 0x5DC9, 0x9BD8, 0x5DCC, 0x8ADE, + 0x5DCD, 0x9BD9, 0x5DD0, 0xFAB6, 0x5DD2, 0x9BDB, 0x5DD3, 0x9BDA, 0x5DD6, 0x9BDC, 0x5DDB, 0x9BDD, 0x5DDD, 0x90EC, 0x5DDE, 0x8F42, + 0x5DE1, 0x8F84, 0x5DE3, 0x9183, 0x5DE5, 0x8D48, 0x5DE6, 0x8DB6, 0x5DE7, 0x8D49, 0x5DE8, 0x8B90, 0x5DEB, 0x9BDE, 0x5DEE, 0x8DB7, + 0x5DF1, 0x8CC8, 0x5DF2, 0x9BDF, 0x5DF3, 0x96A4, 0x5DF4, 0x9462, 0x5DF5, 0x9BE0, 0x5DF7, 0x8D4A, 0x5DFB, 0x8AAA, 0x5DFD, 0x9246, + 0x5DFE, 0x8BD0, 0x5E02, 0x8E73, 0x5E03, 0x957A, 0x5E06, 0x94BF, 0x5E0B, 0x9BE1, 0x5E0C, 0x8AF3, 0x5E11, 0x9BE4, 0x5E16, 0x929F, + 0x5E19, 0x9BE3, 0x5E1A, 0x9BE2, 0x5E1B, 0x9BE5, 0x5E1D, 0x92E9, 0x5E25, 0x9083, 0x5E2B, 0x8E74, 0x5E2D, 0x90C8, 0x5E2F, 0x91D1, + 0x5E30, 0x8B41, 0x5E33, 0x92A0, 0x5E36, 0x9BE6, 0x5E37, 0x9BE7, 0x5E38, 0x8FED, 0x5E3D, 0x9658, 0x5E40, 0x9BEA, 0x5E43, 0x9BE9, + 0x5E44, 0x9BE8, 0x5E45, 0x959D, 0x5E47, 0x9BF1, 0x5E4C, 0x9679, 0x5E4E, 0x9BEB, 0x5E54, 0x9BED, 0x5E55, 0x968B, 0x5E57, 0x9BEC, + 0x5E5F, 0x9BEE, 0x5E61, 0x94A6, 0x5E62, 0x9BEF, 0x5E63, 0x95BC, 0x5E64, 0x9BF0, 0x5E72, 0x8AB1, 0x5E73, 0x95BD, 0x5E74, 0x944E, + 0x5E75, 0x9BF2, 0x5E76, 0x9BF3, 0x5E78, 0x8D4B, 0x5E79, 0x8AB2, 0x5E7A, 0x9BF4, 0x5E7B, 0x8CB6, 0x5E7C, 0x9763, 0x5E7D, 0x9748, + 0x5E7E, 0x8AF4, 0x5E7F, 0x9BF6, 0x5E81, 0x92A1, 0x5E83, 0x8D4C, 0x5E84, 0x8FAF, 0x5E87, 0x94DD, 0x5E8A, 0x8FB0, 0x5E8F, 0x8F98, + 0x5E95, 0x92EA, 0x5E96, 0x95F7, 0x5E97, 0x9358, 0x5E9A, 0x8D4D, 0x5E9C, 0x957B, 0x5EA0, 0x9BF7, 0x5EA6, 0x9378, 0x5EA7, 0x8DC0, + 0x5EAB, 0x8CC9, 0x5EAD, 0x92EB, 0x5EB5, 0x88C1, 0x5EB6, 0x8F8E, 0x5EB7, 0x8D4E, 0x5EB8, 0x9766, 0x5EC1, 0x9BF8, 0x5EC2, 0x9BF9, + 0x5EC3, 0x9470, 0x5EC8, 0x9BFA, 0x5EC9, 0x97F5, 0x5ECA, 0x984C, 0x5ECF, 0x9BFC, 0x5ED0, 0x9BFB, 0x5ED3, 0x8A66, 0x5ED6, 0x9C40, + 0x5EDA, 0x9C43, 0x5EDB, 0x9C44, 0x5EDD, 0x9C42, 0x5EDF, 0x955F, 0x5EE0, 0x8FB1, 0x5EE1, 0x9C46, 0x5EE2, 0x9C45, 0x5EE3, 0x9C41, + 0x5EE8, 0x9C47, 0x5EE9, 0x9C48, 0x5EEC, 0x9C49, 0x5EF0, 0x9C4C, 0x5EF1, 0x9C4A, 0x5EF3, 0x9C4B, 0x5EF4, 0x9C4D, 0x5EF6, 0x8984, + 0x5EF7, 0x92EC, 0x5EF8, 0x9C4E, 0x5EFA, 0x8C9A, 0x5EFB, 0x89F4, 0x5EFC, 0x9455, 0x5EFE, 0x9C4F, 0x5EFF, 0x93F9, 0x5F01, 0x95D9, + 0x5F03, 0x9C50, 0x5F04, 0x984D, 0x5F09, 0x9C51, 0x5F0A, 0x95BE, 0x5F0B, 0x9C54, 0x5F0C, 0x989F, 0x5F0D, 0x98AF, 0x5F0F, 0x8EAE, + 0x5F10, 0x93F3, 0x5F11, 0x9C55, 0x5F13, 0x8B7C, 0x5F14, 0x92A2, 0x5F15, 0x88F8, 0x5F16, 0x9C56, 0x5F17, 0x95A4, 0x5F18, 0x8D4F, + 0x5F1B, 0x926F, 0x5F1F, 0x92ED, 0x5F21, 0xFAB7, 0x5F25, 0x96ED, 0x5F26, 0x8CB7, 0x5F27, 0x8CCA, 0x5F29, 0x9C57, 0x5F2D, 0x9C58, + 0x5F2F, 0x9C5E, 0x5F31, 0x8EE3, 0x5F34, 0xFAB8, 0x5F35, 0x92A3, 0x5F37, 0x8BAD, 0x5F38, 0x9C59, 0x5F3C, 0x954A, 0x5F3E, 0x9265, + 0x5F41, 0x9C5A, 0x5F45, 0xFA67, 0x5F48, 0x9C5B, 0x5F4A, 0x8BAE, 0x5F4C, 0x9C5C, 0x5F4E, 0x9C5D, 0x5F51, 0x9C5F, 0x5F53, 0x9396, + 0x5F56, 0x9C60, 0x5F57, 0x9C61, 0x5F59, 0x9C62, 0x5F5C, 0x9C53, 0x5F5D, 0x9C52, 0x5F61, 0x9C63, 0x5F62, 0x8C60, 0x5F66, 0x9546, + 0x5F67, 0xFAB9, 0x5F69, 0x8DCA, 0x5F6A, 0x9556, 0x5F6B, 0x92A4, 0x5F6C, 0x956A, 0x5F6D, 0x9C64, 0x5F70, 0x8FB2, 0x5F71, 0x8965, + 0x5F73, 0x9C65, 0x5F77, 0x9C66, 0x5F79, 0x96F0, 0x5F7C, 0x94DE, 0x5F7F, 0x9C69, 0x5F80, 0x899D, 0x5F81, 0x90AA, 0x5F82, 0x9C68, + 0x5F83, 0x9C67, 0x5F84, 0x8C61, 0x5F85, 0x91D2, 0x5F87, 0x9C6D, 0x5F88, 0x9C6B, 0x5F8A, 0x9C6A, 0x5F8B, 0x97A5, 0x5F8C, 0x8CE3, + 0x5F90, 0x8F99, 0x5F91, 0x9C6C, 0x5F92, 0x936B, 0x5F93, 0x8F5D, 0x5F97, 0x93BE, 0x5F98, 0x9C70, 0x5F99, 0x9C6F, 0x5F9E, 0x9C6E, + 0x5FA0, 0x9C71, 0x5FA1, 0x8CE4, 0x5FA8, 0x9C72, 0x5FA9, 0x959C, 0x5FAA, 0x8F7A, 0x5FAD, 0x9C73, 0x5FAE, 0x94F7, 0x5FB3, 0x93BF, + 0x5FB4, 0x92A5, 0x5FB7, 0xFABA, 0x5FB9, 0x934F, 0x5FBC, 0x9C74, 0x5FBD, 0x8B4A, 0x5FC3, 0x9053, 0x5FC5, 0x954B, 0x5FCC, 0x8AF5, + 0x5FCD, 0x9445, 0x5FD6, 0x9C75, 0x5FD7, 0x8E75, 0x5FD8, 0x9659, 0x5FD9, 0x965A, 0x5FDC, 0x899E, 0x5FDD, 0x9C7A, 0x5FDE, 0xFABB, + 0x5FE0, 0x9289, 0x5FE4, 0x9C77, 0x5FEB, 0x89F5, 0x5FF0, 0x9CAB, 0x5FF1, 0x9C79, 0x5FF5, 0x944F, 0x5FF8, 0x9C78, 0x5FFB, 0x9C76, + 0x5FFD, 0x8D9A, 0x5FFF, 0x9C7C, 0x600E, 0x9C83, 0x600F, 0x9C89, 0x6010, 0x9C81, 0x6012, 0x937B, 0x6015, 0x9C86, 0x6016, 0x957C, + 0x6019, 0x9C80, 0x601B, 0x9C85, 0x601C, 0x97E5, 0x601D, 0x8E76, 0x6020, 0x91D3, 0x6021, 0x9C7D, 0x6025, 0x8B7D, 0x6026, 0x9C88, + 0x6027, 0x90AB, 0x6028, 0x8985, 0x6029, 0x9C82, 0x602A, 0x89F6, 0x602B, 0x9C87, 0x602F, 0x8BAF, 0x6031, 0x9C84, 0x603A, 0x9C8A, + 0x6041, 0x9C8C, 0x6042, 0x9C96, 0x6043, 0x9C94, 0x6046, 0x9C91, 0x604A, 0x9C90, 0x604B, 0x97F6, 0x604D, 0x9C92, 0x6050, 0x8BB0, + 0x6052, 0x8D50, 0x6055, 0x8F9A, 0x6059, 0x9C99, 0x605A, 0x9C8B, 0x605D, 0xFABC, 0x605F, 0x9C8F, 0x6060, 0x9C7E, 0x6062, 0x89F8, + 0x6063, 0x9C93, 0x6064, 0x9C95, 0x6065, 0x9270, 0x6068, 0x8DA6, 0x6069, 0x89B6, 0x606A, 0x9C8D, 0x606B, 0x9C98, 0x606C, 0x9C97, + 0x606D, 0x8BB1, 0x606F, 0x91A7, 0x6070, 0x8A86, 0x6075, 0x8C62, 0x6077, 0x9C8E, 0x6081, 0x9C9A, 0x6083, 0x9C9D, 0x6084, 0x9C9F, + 0x6085, 0xFABD, 0x6089, 0x8EBB, 0x608A, 0xFABE, 0x608B, 0x9CA5, 0x608C, 0x92EE, 0x608D, 0x9C9B, 0x6092, 0x9CA3, 0x6094, 0x89F7, + 0x6096, 0x9CA1, 0x6097, 0x9CA2, 0x609A, 0x9C9E, 0x609B, 0x9CA0, 0x609F, 0x8CE5, 0x60A0, 0x9749, 0x60A3, 0x8AB3, 0x60A6, 0x8978, + 0x60A7, 0x9CA4, 0x60A9, 0x9459, 0x60AA, 0x88AB, 0x60B2, 0x94DF, 0x60B3, 0x9C7B, 0x60B4, 0x9CAA, 0x60B5, 0x9CAE, 0x60B6, 0x96E3, + 0x60B8, 0x9CA7, 0x60BC, 0x9389, 0x60BD, 0x9CAC, 0x60C5, 0x8FEE, 0x60C6, 0x9CAD, 0x60C7, 0x93D5, 0x60D1, 0x9866, 0x60D3, 0x9CA9, + 0x60D5, 0xFAC0, 0x60D8, 0x9CAF, 0x60DA, 0x8D9B, 0x60DC, 0x90C9, 0x60DE, 0xFABF, 0x60DF, 0x88D2, 0x60E0, 0x9CA8, 0x60E1, 0x9CA6, + 0x60E3, 0x9179, 0x60E7, 0x9C9C, 0x60E8, 0x8E53, 0x60F0, 0x91C4, 0x60F1, 0x9CBB, 0x60F2, 0xFAC2, 0x60F3, 0x917A, 0x60F4, 0x9CB6, + 0x60F6, 0x9CB3, 0x60F7, 0x9CB4, 0x60F9, 0x8EE4, 0x60FA, 0x9CB7, 0x60FB, 0x9CBA, 0x6100, 0x9CB5, 0x6101, 0x8F44, 0x6103, 0x9CB8, + 0x6106, 0x9CB2, 0x6108, 0x96FA, 0x6109, 0x96F9, 0x610D, 0x9CBC, 0x610E, 0x9CBD, 0x610F, 0x88D3, 0x6111, 0xFAC3, 0x6115, 0x9CB1, + 0x611A, 0x8BF0, 0x611B, 0x88A4, 0x611F, 0x8AB4, 0x6120, 0xFAC1, 0x6121, 0x9CB9, 0x6127, 0x9CC1, 0x6128, 0x9CC0, 0x612C, 0x9CC5, + 0x6130, 0xFAC5, 0x6134, 0x9CC6, 0x6137, 0xFAC4, 0x613C, 0x9CC4, 0x613D, 0x9CC7, 0x613E, 0x9CBF, 0x613F, 0x9CC3, 0x6142, 0x9CC8, + 0x6144, 0x9CC9, 0x6147, 0x9CBE, 0x6148, 0x8E9C, 0x614A, 0x9CC2, 0x614B, 0x91D4, 0x614C, 0x8D51, 0x614D, 0x9CB0, 0x614E, 0x9054, + 0x6153, 0x9CD6, 0x6155, 0x95E7, 0x6158, 0x9CCC, 0x6159, 0x9CCD, 0x615A, 0x9CCE, 0x615D, 0x9CD5, 0x615F, 0x9CD4, 0x6162, 0x969D, + 0x6163, 0x8AB5, 0x6165, 0x9CD2, 0x6167, 0x8C64, 0x6168, 0x8A53, 0x616B, 0x9CCF, 0x616E, 0x97B6, 0x616F, 0x9CD1, 0x6170, 0x88D4, + 0x6171, 0x9CD3, 0x6173, 0x9CCA, 0x6174, 0x9CD0, 0x6175, 0x9CD7, 0x6176, 0x8C63, 0x6177, 0x9CCB, 0x617E, 0x977C, 0x6182, 0x974A, + 0x6187, 0x9CDA, 0x618A, 0x9CDE, 0x618E, 0x919E, 0x6190, 0x97F7, 0x6191, 0x9CDF, 0x6194, 0x9CDC, 0x6196, 0x9CD9, 0x6198, 0xFAC6, + 0x6199, 0x9CD8, 0x619A, 0x9CDD, 0x61A4, 0x95AE, 0x61A7, 0x93B2, 0x61A9, 0x8C65, 0x61AB, 0x9CE0, 0x61AC, 0x9CDB, 0x61AE, 0x9CE1, + 0x61B2, 0x8C9B, 0x61B6, 0x89AF, 0x61BA, 0x9CE9, 0x61BE, 0x8AB6, 0x61C3, 0x9CE7, 0x61C6, 0x9CE8, 0x61C7, 0x8DA7, 0x61C8, 0x9CE6, + 0x61C9, 0x9CE4, 0x61CA, 0x9CE3, 0x61CB, 0x9CEA, 0x61CC, 0x9CE2, 0x61CD, 0x9CEC, 0x61D0, 0x89F9, 0x61E3, 0x9CEE, 0x61E6, 0x9CED, + 0x61F2, 0x92A6, 0x61F4, 0x9CF1, 0x61F6, 0x9CEF, 0x61F7, 0x9CE5, 0x61F8, 0x8C9C, 0x61FA, 0x9CF0, 0x61FC, 0x9CF4, 0x61FD, 0x9CF3, + 0x61FE, 0x9CF5, 0x61FF, 0x9CF2, 0x6200, 0x9CF6, 0x6208, 0x9CF7, 0x6209, 0x9CF8, 0x620A, 0x95E8, 0x620C, 0x9CFA, 0x620D, 0x9CF9, + 0x620E, 0x8F5E, 0x6210, 0x90AC, 0x6211, 0x89E4, 0x6212, 0x89FA, 0x6213, 0xFAC7, 0x6214, 0x9CFB, 0x6216, 0x88BD, 0x621A, 0x90CA, + 0x621B, 0x9CFC, 0x621D, 0xE6C1, 0x621E, 0x9D40, 0x621F, 0x8C81, 0x6221, 0x9D41, 0x6226, 0x90ED, 0x622A, 0x9D42, 0x622E, 0x9D43, + 0x622F, 0x8B59, 0x6230, 0x9D44, 0x6232, 0x9D45, 0x6233, 0x9D46, 0x6234, 0x91D5, 0x6238, 0x8CCB, 0x623B, 0x96DF, 0x623F, 0x965B, + 0x6240, 0x8F8A, 0x6241, 0x9D47, 0x6247, 0x90EE, 0x6248, 0xE7BB, 0x6249, 0x94E0, 0x624B, 0x8EE8, 0x624D, 0x8DCB, 0x624E, 0x9D48, + 0x6253, 0x91C5, 0x6255, 0x95A5, 0x6258, 0x91EF, 0x625B, 0x9D4B, 0x625E, 0x9D49, 0x6260, 0x9D4C, 0x6263, 0x9D4A, 0x6268, 0x9D4D, + 0x626E, 0x95AF, 0x6271, 0x88B5, 0x6276, 0x957D, 0x6279, 0x94E1, 0x627C, 0x9D4E, 0x627E, 0x9D51, 0x627F, 0x8FB3, 0x6280, 0x8B5A, + 0x6282, 0x9D4F, 0x6283, 0x9D56, 0x6284, 0x8FB4, 0x6289, 0x9D50, 0x628A, 0x9463, 0x6291, 0x977D, 0x6292, 0x9D52, 0x6293, 0x9D53, + 0x6294, 0x9D57, 0x6295, 0x938A, 0x6296, 0x9D54, 0x6297, 0x8D52, 0x6298, 0x90DC, 0x629B, 0x9D65, 0x629C, 0x94B2, 0x629E, 0x91F0, + 0x62A6, 0xFAC8, 0x62AB, 0x94E2, 0x62AC, 0x9DAB, 0x62B1, 0x95F8, 0x62B5, 0x92EF, 0x62B9, 0x9695, 0x62BB, 0x9D5A, 0x62BC, 0x899F, + 0x62BD, 0x928A, 0x62C2, 0x9D63, 0x62C5, 0x9253, 0x62C6, 0x9D5D, 0x62C7, 0x9D64, 0x62C8, 0x9D5F, 0x62C9, 0x9D66, 0x62CA, 0x9D62, + 0x62CC, 0x9D61, 0x62CD, 0x948F, 0x62CF, 0x9D5B, 0x62D0, 0x89FB, 0x62D1, 0x9D59, 0x62D2, 0x8B91, 0x62D3, 0x91F1, 0x62D4, 0x9D55, + 0x62D7, 0x9D58, 0x62D8, 0x8D53, 0x62D9, 0x90D9, 0x62DB, 0x8FB5, 0x62DC, 0x9D60, 0x62DD, 0x9471, 0x62E0, 0x8B92, 0x62E1, 0x8A67, + 0x62EC, 0x8A87, 0x62ED, 0x9040, 0x62EE, 0x9D68, 0x62EF, 0x9D6D, 0x62F1, 0x9D69, 0x62F3, 0x8C9D, 0x62F5, 0x9D6E, 0x62F6, 0x8E41, + 0x62F7, 0x8D89, 0x62FE, 0x8F45, 0x62FF, 0x9D5C, 0x6301, 0x8E9D, 0x6302, 0x9D6B, 0x6307, 0x8E77, 0x6308, 0x9D6C, 0x6309, 0x88C2, + 0x630C, 0x9D67, 0x6311, 0x92A7, 0x6319, 0x8B93, 0x631F, 0x8BB2, 0x6327, 0x9D6A, 0x6328, 0x88A5, 0x632B, 0x8DC1, 0x632F, 0x9055, + 0x633A, 0x92F0, 0x633D, 0x94D2, 0x633E, 0x9D70, 0x633F, 0x917D, 0x6349, 0x91A8, 0x634C, 0x8E4A, 0x634D, 0x9D71, 0x634F, 0x9D73, + 0x6350, 0x9D6F, 0x6355, 0x95DF, 0x6357, 0x92BB, 0x635C, 0x917B, 0x6367, 0x95F9, 0x6368, 0x8ECC, 0x6369, 0x9D80, 0x636B, 0x9D7E, + 0x636E, 0x9098, 0x6372, 0x8C9E, 0x6376, 0x9D78, 0x6377, 0x8FB7, 0x637A, 0x93E6, 0x637B, 0x9450, 0x6380, 0x9D76, 0x6383, 0x917C, + 0x6388, 0x8EF6, 0x6389, 0x9D7B, 0x638C, 0x8FB6, 0x638E, 0x9D75, 0x638F, 0x9D7A, 0x6392, 0x9472, 0x6396, 0x9D74, 0x6398, 0x8C40, + 0x639B, 0x8A7C, 0x639F, 0x9D7C, 0x63A0, 0x97A9, 0x63A1, 0x8DCC, 0x63A2, 0x9254, 0x63A3, 0x9D79, 0x63A5, 0x90DA, 0x63A7, 0x8D54, + 0x63A8, 0x9084, 0x63A9, 0x8986, 0x63AA, 0x915B, 0x63AB, 0x9D77, 0x63AC, 0x8B64, 0x63B2, 0x8C66, 0x63B4, 0x92CD, 0x63B5, 0x9D7D, + 0x63BB, 0x917E, 0x63BE, 0x9D81, 0x63C0, 0x9D83, 0x63C3, 0x91B5, 0x63C4, 0x9D89, 0x63C6, 0x9D84, 0x63C9, 0x9D86, 0x63CF, 0x9560, + 0x63D0, 0x92F1, 0x63D2, 0x9D87, 0x63D6, 0x974B, 0x63DA, 0x9767, 0x63DB, 0x8AB7, 0x63E1, 0x88AC, 0x63E3, 0x9D85, 0x63E9, 0x9D82, + 0x63EE, 0x8AF6, 0x63F4, 0x8987, 0x63F5, 0xFAC9, 0x63F6, 0x9D88, 0x63FA, 0x9768, 0x6406, 0x9D8C, 0x640D, 0x91B9, 0x640F, 0x9D93, + 0x6413, 0x9D8D, 0x6416, 0x9D8A, 0x6417, 0x9D91, 0x641C, 0x9D72, 0x6426, 0x9D8E, 0x6428, 0x9D92, 0x642C, 0x94C0, 0x642D, 0x938B, + 0x6434, 0x9D8B, 0x6436, 0x9D8F, 0x643A, 0x8C67, 0x643E, 0x8DEF, 0x6442, 0x90DB, 0x644E, 0x9D97, 0x6458, 0x9345, 0x6460, 0xFACA, + 0x6467, 0x9D94, 0x6469, 0x9680, 0x646F, 0x9D95, 0x6476, 0x9D96, 0x6478, 0x96CC, 0x647A, 0x90A0, 0x6483, 0x8C82, 0x6488, 0x9D9D, + 0x6492, 0x8E54, 0x6493, 0x9D9A, 0x6495, 0x9D99, 0x649A, 0x9451, 0x649D, 0xFACB, 0x649E, 0x93B3, 0x64A4, 0x9350, 0x64A5, 0x9D9B, + 0x64A9, 0x9D9C, 0x64AB, 0x958F, 0x64AD, 0x9464, 0x64AE, 0x8E42, 0x64B0, 0x90EF, 0x64B2, 0x966F, 0x64B9, 0x8A68, 0x64BB, 0x9DA3, + 0x64BC, 0x9D9E, 0x64C1, 0x9769, 0x64C2, 0x9DA5, 0x64C5, 0x9DA1, 0x64C7, 0x9DA2, 0x64CD, 0x9180, 0x64CE, 0xFACC, 0x64D2, 0x9DA0, + 0x64D4, 0x9D5E, 0x64D8, 0x9DA4, 0x64DA, 0x9D9F, 0x64E0, 0x9DA9, 0x64E1, 0x9DAA, 0x64E2, 0x9346, 0x64E3, 0x9DAC, 0x64E6, 0x8E43, + 0x64E7, 0x9DA7, 0x64EC, 0x8B5B, 0x64EF, 0x9DAD, 0x64F1, 0x9DA6, 0x64F2, 0x9DB1, 0x64F4, 0x9DB0, 0x64F6, 0x9DAF, 0x64FA, 0x9DB2, + 0x64FD, 0x9DB4, 0x64FE, 0x8FEF, 0x6500, 0x9DB3, 0x6505, 0x9DB7, 0x6518, 0x9DB5, 0x651C, 0x9DB6, 0x651D, 0x9D90, 0x6523, 0x9DB9, + 0x6524, 0x9DB8, 0x652A, 0x9D98, 0x652B, 0x9DBA, 0x652C, 0x9DAE, 0x652F, 0x8E78, 0x6534, 0x9DBB, 0x6535, 0x9DBC, 0x6536, 0x9DBE, + 0x6537, 0x9DBD, 0x6538, 0x9DBF, 0x6539, 0x89FC, 0x653B, 0x8D55, 0x653E, 0x95FA, 0x653F, 0x90AD, 0x6545, 0x8CCC, 0x6548, 0x9DC1, + 0x654D, 0x9DC4, 0x654E, 0xFACD, 0x654F, 0x9571, 0x6551, 0x8B7E, 0x6555, 0x9DC3, 0x6556, 0x9DC2, 0x6557, 0x9473, 0x6558, 0x9DC5, + 0x6559, 0x8BB3, 0x655D, 0x9DC7, 0x655E, 0x9DC6, 0x6562, 0x8AB8, 0x6563, 0x8E55, 0x6566, 0x93D6, 0x656C, 0x8C68, 0x6570, 0x9094, + 0x6572, 0x9DC8, 0x6574, 0x90AE, 0x6575, 0x9347, 0x6577, 0x957E, 0x6578, 0x9DC9, 0x6582, 0x9DCA, 0x6583, 0x9DCB, 0x6587, 0x95B6, + 0x6588, 0x9B7C, 0x6589, 0x90C4, 0x658C, 0x956B, 0x658E, 0x8DD6, 0x6590, 0x94E3, 0x6591, 0x94C1, 0x6597, 0x936C, 0x6599, 0x97BF, + 0x659B, 0x9DCD, 0x659C, 0x8ECE, 0x659F, 0x9DCE, 0x65A1, 0x88B4, 0x65A4, 0x8BD2, 0x65A5, 0x90CB, 0x65A7, 0x9580, 0x65AB, 0x9DCF, + 0x65AC, 0x8E61, 0x65AD, 0x9266, 0x65AF, 0x8E7A, 0x65B0, 0x9056, 0x65B7, 0x9DD0, 0x65B9, 0x95FB, 0x65BC, 0x8997, 0x65BD, 0x8E7B, + 0x65C1, 0x9DD3, 0x65C3, 0x9DD1, 0x65C4, 0x9DD4, 0x65C5, 0x97B7, 0x65C6, 0x9DD2, 0x65CB, 0x90F9, 0x65CC, 0x9DD5, 0x65CF, 0x91B0, + 0x65D2, 0x9DD6, 0x65D7, 0x8AF8, 0x65D9, 0x9DD8, 0x65DB, 0x9DD7, 0x65E0, 0x9DD9, 0x65E1, 0x9DDA, 0x65E2, 0x8AF9, 0x65E5, 0x93FA, + 0x65E6, 0x9255, 0x65E7, 0x8B8C, 0x65E8, 0x8E7C, 0x65E9, 0x9181, 0x65EC, 0x8F7B, 0x65ED, 0x88AE, 0x65F1, 0x9DDB, 0x65FA, 0x89A0, + 0x65FB, 0x9DDF, 0x6600, 0xFACE, 0x6602, 0x8D56, 0x6603, 0x9DDE, 0x6606, 0x8DA9, 0x6607, 0x8FB8, 0x6609, 0xFAD1, 0x660A, 0x9DDD, + 0x660C, 0x8FB9, 0x660E, 0x96BE, 0x660F, 0x8DA8, 0x6613, 0x88D5, 0x6614, 0x90CC, 0x6615, 0xFACF, 0x661C, 0x9DE4, 0x661E, 0xFAD3, + 0x661F, 0x90AF, 0x6620, 0x8966, 0x6624, 0xFAD4, 0x6625, 0x8F74, 0x6627, 0x9686, 0x6628, 0x8DF0, 0x662D, 0x8FBA, 0x662E, 0xFAD2, + 0x662F, 0x90A5, 0x6631, 0xFA63, 0x6634, 0x9DE3, 0x6635, 0x9DE1, 0x6636, 0x9DE2, 0x663B, 0xFAD0, 0x663C, 0x928B, 0x663F, 0x9E45, + 0x6641, 0x9DE8, 0x6642, 0x8E9E, 0x6643, 0x8D57, 0x6644, 0x9DE6, 0x6649, 0x9DE7, 0x664B, 0x9057, 0x664F, 0x9DE5, 0x6652, 0x8E4E, + 0x6657, 0xFAD6, 0x6659, 0xFAD7, 0x665D, 0x9DEA, 0x665E, 0x9DE9, 0x665F, 0x9DEE, 0x6662, 0x9DEF, 0x6664, 0x9DEB, 0x6665, 0xFAD5, + 0x6666, 0x8A41, 0x6667, 0x9DEC, 0x6668, 0x9DED, 0x6669, 0x94D3, 0x666E, 0x9581, 0x666F, 0x8C69, 0x6670, 0x9DF0, 0x6673, 0xFAD9, + 0x6674, 0x90B0, 0x6676, 0x8FBB, 0x667A, 0x9271, 0x6681, 0x8BC5, 0x6683, 0x9DF1, 0x6684, 0x9DF5, 0x6687, 0x89C9, 0x6688, 0x9DF2, + 0x6689, 0x9DF4, 0x668E, 0x9DF3, 0x6691, 0x8F8B, 0x6696, 0x9267, 0x6697, 0x88C3, 0x6698, 0x9DF6, 0x6699, 0xFADA, 0x669D, 0x9DF7, + 0x66A0, 0xFADB, 0x66A2, 0x92A8, 0x66A6, 0x97EF, 0x66AB, 0x8E62, 0x66AE, 0x95E9, 0x66B2, 0xFADC, 0x66B4, 0x965C, 0x66B8, 0x9E41, + 0x66B9, 0x9DF9, 0x66BC, 0x9DFC, 0x66BE, 0x9DFB, 0x66BF, 0xFADD, 0x66C1, 0x9DF8, 0x66C4, 0x9E40, 0x66C7, 0x93DC, 0x66C9, 0x9DFA, + 0x66D6, 0x9E42, 0x66D9, 0x8F8C, 0x66DA, 0x9E43, 0x66DC, 0x976A, 0x66DD, 0x9498, 0x66E0, 0x9E44, 0x66E6, 0x9E46, 0x66E9, 0x9E47, + 0x66F0, 0x9E48, 0x66F2, 0x8BC8, 0x66F3, 0x8967, 0x66F4, 0x8D58, 0x66F5, 0x9E49, 0x66F7, 0x9E4A, 0x66F8, 0x8F91, 0x66F9, 0x9182, + 0x66FA, 0xFADE, 0x66FB, 0xFA66, 0x66FC, 0x99D6, 0x66FD, 0x915D, 0x66FE, 0x915C, 0x66FF, 0x91D6, 0x6700, 0x8DC5, 0x6703, 0x98F0, + 0x6708, 0x8C8E, 0x6709, 0x974C, 0x670B, 0x95FC, 0x670D, 0x959E, 0x670E, 0xFADF, 0x670F, 0x9E4B, 0x6714, 0x8DF1, 0x6715, 0x92BD, + 0x6716, 0x9E4C, 0x6717, 0x984E, 0x671B, 0x965D, 0x671D, 0x92A9, 0x671E, 0x9E4D, 0x671F, 0x8AFA, 0x6726, 0x9E4E, 0x6727, 0x9E4F, + 0x6728, 0x96D8, 0x672A, 0x96A2, 0x672B, 0x9696, 0x672C, 0x967B, 0x672D, 0x8E44, 0x672E, 0x9E51, 0x6731, 0x8EE9, 0x6734, 0x9670, + 0x6736, 0x9E53, 0x6737, 0x9E56, 0x6738, 0x9E55, 0x673A, 0x8AF7, 0x673D, 0x8B80, 0x673F, 0x9E52, 0x6741, 0x9E54, 0x6746, 0x9E57, + 0x6749, 0x9099, 0x674E, 0x979B, 0x674F, 0x88C7, 0x6750, 0x8DDE, 0x6751, 0x91BA, 0x6753, 0x8EDB, 0x6756, 0x8FF1, 0x6759, 0x9E5A, + 0x675C, 0x936D, 0x675E, 0x9E58, 0x675F, 0x91A9, 0x6760, 0x9E59, 0x6761, 0x8FF0, 0x6762, 0x96DB, 0x6763, 0x9E5B, 0x6764, 0x9E5C, + 0x6765, 0x9788, 0x6766, 0xFAE1, 0x676A, 0x9E61, 0x676D, 0x8D59, 0x676F, 0x9474, 0x6770, 0x9E5E, 0x6771, 0x938C, 0x6772, 0x9DDC, + 0x6773, 0x9DE0, 0x6775, 0x8B6E, 0x6777, 0x9466, 0x677C, 0x9E60, 0x677E, 0x8FBC, 0x677F, 0x94C2, 0x6785, 0x9E66, 0x6787, 0x94F8, + 0x6789, 0x9E5D, 0x678B, 0x9E63, 0x678C, 0x9E62, 0x6790, 0x90CD, 0x6795, 0x968D, 0x6797, 0x97D1, 0x679A, 0x9687, 0x679C, 0x89CA, + 0x679D, 0x8E7D, 0x67A0, 0x9867, 0x67A1, 0x9E65, 0x67A2, 0x9095, 0x67A6, 0x9E64, 0x67A9, 0x9E5F, 0x67AF, 0x8CCD, 0x67B3, 0x9E6B, + 0x67B4, 0x9E69, 0x67B6, 0x89CB, 0x67B7, 0x9E67, 0x67B8, 0x9E6D, 0x67B9, 0x9E73, 0x67BB, 0xFAE2, 0x67C0, 0xFAE4, 0x67C1, 0x91C6, + 0x67C4, 0x95BF, 0x67C6, 0x9E75, 0x67CA, 0x9541, 0x67CE, 0x9E74, 0x67CF, 0x9490, 0x67D0, 0x965E, 0x67D1, 0x8AB9, 0x67D3, 0x90F5, + 0x67D4, 0x8F5F, 0x67D8, 0x92D1, 0x67DA, 0x974D, 0x67DD, 0x9E70, 0x67DE, 0x9E6F, 0x67E2, 0x9E71, 0x67E4, 0x9E6E, 0x67E7, 0x9E76, + 0x67E9, 0x9E6C, 0x67EC, 0x9E6A, 0x67EE, 0x9E72, 0x67EF, 0x9E68, 0x67F1, 0x928C, 0x67F3, 0x96F6, 0x67F4, 0x8EC4, 0x67F5, 0x8DF2, + 0x67FB, 0x8DB8, 0x67FE, 0x968F, 0x67FF, 0x8A60, 0x6801, 0xFAE5, 0x6802, 0x92CC, 0x6803, 0x93C8, 0x6804, 0x8968, 0x6813, 0x90F0, + 0x6816, 0x90B2, 0x6817, 0x8C49, 0x681E, 0x9E78, 0x6821, 0x8D5A, 0x6822, 0x8A9C, 0x6829, 0x9E7A, 0x682A, 0x8A94, 0x682B, 0x9E81, + 0x6832, 0x9E7D, 0x6834, 0x90F1, 0x6838, 0x8A6A, 0x6839, 0x8DAA, 0x683C, 0x8A69, 0x683D, 0x8DCD, 0x6840, 0x9E7B, 0x6841, 0x8C85, + 0x6842, 0x8C6A, 0x6843, 0x938D, 0x6844, 0xFAE6, 0x6846, 0x9E79, 0x6848, 0x88C4, 0x684D, 0x9E7C, 0x684E, 0x9E7E, 0x6850, 0x8BCB, + 0x6851, 0x8C4B, 0x6852, 0xFAE3, 0x6853, 0x8ABA, 0x6854, 0x8B6A, 0x6859, 0x9E82, 0x685C, 0x8DF7, 0x685D, 0x9691, 0x685F, 0x8E56, + 0x6863, 0x9E83, 0x6867, 0x954F, 0x6874, 0x9E8F, 0x6876, 0x89B1, 0x6877, 0x9E84, 0x687E, 0x9E95, 0x687F, 0x9E85, 0x6881, 0x97C0, + 0x6883, 0x9E8C, 0x6885, 0x947E, 0x688D, 0x9E94, 0x688F, 0x9E87, 0x6893, 0x88B2, 0x6894, 0x9E89, 0x6897, 0x8D5B, 0x689B, 0x9E8B, + 0x689D, 0x9E8A, 0x689F, 0x9E86, 0x68A0, 0x9E91, 0x68A2, 0x8FBD, 0x68A6, 0x9AEB, 0x68A7, 0x8CE6, 0x68A8, 0x979C, 0x68AD, 0x9E88, + 0x68AF, 0x92F2, 0x68B0, 0x8A42, 0x68B1, 0x8DAB, 0x68B3, 0x9E80, 0x68B5, 0x9E90, 0x68B6, 0x8A81, 0x68B9, 0x9E8E, 0x68BA, 0x9E92, + 0x68BC, 0x938E, 0x68C4, 0x8AFC, 0x68C6, 0x9EB0, 0x68C8, 0xFA64, 0x68C9, 0x96C7, 0x68CA, 0x9E97, 0x68CB, 0x8AFB, 0x68CD, 0x9E9E, + 0x68CF, 0xFAE7, 0x68D2, 0x965F, 0x68D4, 0x9E9F, 0x68D5, 0x9EA1, 0x68D7, 0x9EA5, 0x68D8, 0x9E99, 0x68DA, 0x9249, 0x68DF, 0x938F, + 0x68E0, 0x9EA9, 0x68E1, 0x9E9C, 0x68E3, 0x9EA6, 0x68E7, 0x9EA0, 0x68EE, 0x9058, 0x68EF, 0x9EAA, 0x68F2, 0x90B1, 0x68F9, 0x9EA8, + 0x68FA, 0x8ABB, 0x6900, 0x986F, 0x6901, 0x9E96, 0x6904, 0x9EA4, 0x6905, 0x88D6, 0x6908, 0x9E98, 0x690B, 0x96B8, 0x690C, 0x9E9D, + 0x690D, 0x9041, 0x690E, 0x92C5, 0x690F, 0x9E93, 0x6912, 0x9EA3, 0x6919, 0x909A, 0x691A, 0x9EAD, 0x691B, 0x8A91, 0x691C, 0x8C9F, + 0x6921, 0x9EAF, 0x6922, 0x9E9A, 0x6923, 0x9EAE, 0x6925, 0x9EA7, 0x6926, 0x9E9B, 0x6928, 0x9EAB, 0x692A, 0x9EAC, 0x6930, 0x9EBD, + 0x6934, 0x93CC, 0x6936, 0x9EA2, 0x6939, 0x9EB9, 0x693D, 0x9EBB, 0x693F, 0x92D6, 0x694A, 0x976B, 0x6953, 0x9596, 0x6954, 0x9EB6, + 0x6955, 0x91C8, 0x6959, 0x9EBC, 0x695A, 0x915E, 0x695C, 0x9EB3, 0x695D, 0x9EC0, 0x695E, 0x9EBF, 0x6960, 0x93ED, 0x6961, 0x9EBE, + 0x6962, 0x93E8, 0x6968, 0xFAE9, 0x696A, 0x9EC2, 0x696B, 0x9EB5, 0x696D, 0x8BC6, 0x696E, 0x9EB8, 0x696F, 0x8F7C, 0x6973, 0x9480, + 0x6974, 0x9EBA, 0x6975, 0x8BC9, 0x6977, 0x9EB2, 0x6978, 0x9EB4, 0x6979, 0x9EB1, 0x697C, 0x984F, 0x697D, 0x8A79, 0x697E, 0x9EB7, + 0x6981, 0x9EC1, 0x6982, 0x8A54, 0x698A, 0x8DE5, 0x698E, 0x897C, 0x6991, 0x9ED2, 0x6994, 0x9850, 0x6995, 0x9ED5, 0x6998, 0xFAEB, + 0x699B, 0x9059, 0x699C, 0x9ED4, 0x69A0, 0x9ED3, 0x69A7, 0x9ED0, 0x69AE, 0x9EC4, 0x69B1, 0x9EE1, 0x69B2, 0x9EC3, 0x69B4, 0x9ED6, + 0x69BB, 0x9ECE, 0x69BE, 0x9EC9, 0x69BF, 0x9EC6, 0x69C1, 0x9EC7, 0x69C3, 0x9ECF, 0x69C7, 0xEAA0, 0x69CA, 0x9ECC, 0x69CB, 0x8D5C, + 0x69CC, 0x92C6, 0x69CD, 0x9184, 0x69CE, 0x9ECA, 0x69D0, 0x9EC5, 0x69D3, 0x9EC8, 0x69D8, 0x976C, 0x69D9, 0x968A, 0x69DD, 0x9ECD, + 0x69DE, 0x9ED7, 0x69E2, 0xFAEC, 0x69E7, 0x9EDF, 0x69E8, 0x9ED8, 0x69EB, 0x9EE5, 0x69ED, 0x9EE3, 0x69F2, 0x9EDE, 0x69F9, 0x9EDD, + 0x69FB, 0x92CE, 0x69FD, 0x9185, 0x69FF, 0x9EDB, 0x6A02, 0x9ED9, 0x6A05, 0x9EE0, 0x6A0A, 0x9EE6, 0x6A0B, 0x94F3, 0x6A0C, 0x9EEC, + 0x6A12, 0x9EE7, 0x6A13, 0x9EEA, 0x6A14, 0x9EE4, 0x6A17, 0x9294, 0x6A19, 0x9557, 0x6A1B, 0x9EDA, 0x6A1E, 0x9EE2, 0x6A1F, 0x8FBE, + 0x6A21, 0x96CD, 0x6A22, 0x9EF6, 0x6A23, 0x9EE9, 0x6A29, 0x8CA0, 0x6A2A, 0x89A1, 0x6A2B, 0x8A7E, 0x6A2E, 0x9ED1, 0x6A30, 0xFAED, + 0x6A35, 0x8FBF, 0x6A36, 0x9EEE, 0x6A38, 0x9EF5, 0x6A39, 0x8EF7, 0x6A3A, 0x8A92, 0x6A3D, 0x924D, 0x6A44, 0x9EEB, 0x6A46, 0xFAEF, + 0x6A47, 0x9EF0, 0x6A48, 0x9EF4, 0x6A4B, 0x8BB4, 0x6A58, 0x8B6B, 0x6A59, 0x9EF2, 0x6A5F, 0x8B40, 0x6A61, 0x93C9, 0x6A62, 0x9EF1, + 0x6A66, 0x9EF3, 0x6A6B, 0xFAEE, 0x6A72, 0x9EED, 0x6A73, 0xFAF0, 0x6A78, 0x9EEF, 0x6A7E, 0xFAF1, 0x6A7F, 0x8A80, 0x6A80, 0x9268, + 0x6A84, 0x9EFA, 0x6A8D, 0x9EF8, 0x6A8E, 0x8CE7, 0x6A90, 0x9EF7, 0x6A97, 0x9F40, 0x6A9C, 0x9E77, 0x6AA0, 0x9EF9, 0x6AA2, 0x9EFB, + 0x6AA3, 0x9EFC, 0x6AAA, 0x9F4B, 0x6AAC, 0x9F47, 0x6AAE, 0x9E8D, 0x6AB3, 0x9F46, 0x6AB8, 0x9F45, 0x6ABB, 0x9F42, 0x6AC1, 0x9EE8, + 0x6AC2, 0x9F44, 0x6AC3, 0x9F43, 0x6AD1, 0x9F49, 0x6AD3, 0x9845, 0x6ADA, 0x9F4C, 0x6ADB, 0x8BF9, 0x6ADE, 0x9F48, 0x6ADF, 0x9F4A, + 0x6AE2, 0xFAF2, 0x6AE4, 0xFAF3, 0x6AE8, 0x94A5, 0x6AEA, 0x9F4D, 0x6AFA, 0x9F51, 0x6AFB, 0x9F4E, 0x6B04, 0x9793, 0x6B05, 0x9F4F, + 0x6B0A, 0x9EDC, 0x6B12, 0x9F52, 0x6B16, 0x9F53, 0x6B1D, 0x8954, 0x6B1F, 0x9F55, 0x6B20, 0x8C87, 0x6B21, 0x8E9F, 0x6B23, 0x8BD3, + 0x6B27, 0x89A2, 0x6B32, 0x977E, 0x6B37, 0x9F57, 0x6B38, 0x9F56, 0x6B39, 0x9F59, 0x6B3A, 0x8B5C, 0x6B3D, 0x8BD4, 0x6B3E, 0x8ABC, + 0x6B43, 0x9F5C, 0x6B47, 0x9F5B, 0x6B49, 0x9F5D, 0x6B4C, 0x89CC, 0x6B4E, 0x9256, 0x6B50, 0x9F5E, 0x6B53, 0x8ABD, 0x6B54, 0x9F60, + 0x6B59, 0x9F5F, 0x6B5B, 0x9F61, 0x6B5F, 0x9F62, 0x6B61, 0x9F63, 0x6B62, 0x8E7E, 0x6B63, 0x90B3, 0x6B64, 0x8D9F, 0x6B66, 0x9590, + 0x6B69, 0x95E0, 0x6B6A, 0x9863, 0x6B6F, 0x8E95, 0x6B73, 0x8DCE, 0x6B74, 0x97F0, 0x6B78, 0x9F64, 0x6B79, 0x9F65, 0x6B7B, 0x8E80, + 0x6B7F, 0x9F66, 0x6B80, 0x9F67, 0x6B83, 0x9F69, 0x6B84, 0x9F68, 0x6B86, 0x9677, 0x6B89, 0x8F7D, 0x6B8A, 0x8EEA, 0x6B8B, 0x8E63, + 0x6B8D, 0x9F6A, 0x6B95, 0x9F6C, 0x6B96, 0x9042, 0x6B98, 0x9F6B, 0x6B9E, 0x9F6D, 0x6BA4, 0x9F6E, 0x6BAA, 0x9F6F, 0x6BAB, 0x9F70, + 0x6BAF, 0x9F71, 0x6BB1, 0x9F73, 0x6BB2, 0x9F72, 0x6BB3, 0x9F74, 0x6BB4, 0x89A3, 0x6BB5, 0x9269, 0x6BB7, 0x9F75, 0x6BBA, 0x8E45, + 0x6BBB, 0x8A6B, 0x6BBC, 0x9F76, 0x6BBF, 0x9361, 0x6BC0, 0x9ACA, 0x6BC5, 0x8B42, 0x6BC6, 0x9F77, 0x6BCB, 0x9F78, 0x6BCD, 0x95EA, + 0x6BCE, 0x9688, 0x6BD2, 0x93C5, 0x6BD3, 0x9F79, 0x6BD4, 0x94E4, 0x6BD6, 0xFAF4, 0x6BD8, 0x94F9, 0x6BDB, 0x96D1, 0x6BDF, 0x9F7A, + 0x6BEB, 0x9F7C, 0x6BEC, 0x9F7B, 0x6BEF, 0x9F7E, 0x6BF3, 0x9F7D, 0x6C08, 0x9F81, 0x6C0F, 0x8E81, 0x6C11, 0x96AF, 0x6C13, 0x9F82, + 0x6C14, 0x9F83, 0x6C17, 0x8B43, 0x6C1B, 0x9F84, 0x6C23, 0x9F86, 0x6C24, 0x9F85, 0x6C34, 0x9085, 0x6C37, 0x9558, 0x6C38, 0x8969, + 0x6C3E, 0x94C3, 0x6C3F, 0xFAF5, 0x6C40, 0x92F3, 0x6C41, 0x8F60, 0x6C42, 0x8B81, 0x6C4E, 0x94C4, 0x6C50, 0x8EAC, 0x6C55, 0x9F88, + 0x6C57, 0x8ABE, 0x6C5A, 0x8998, 0x6C5C, 0xFAF6, 0x6C5D, 0x93F0, 0x6C5E, 0x9F87, 0x6C5F, 0x8D5D, 0x6C60, 0x9272, 0x6C62, 0x9F89, + 0x6C68, 0x9F91, 0x6C6A, 0x9F8A, 0x6C6F, 0xFAF8, 0x6C70, 0x91BF, 0x6C72, 0x8B82, 0x6C73, 0x9F92, 0x6C7A, 0x8C88, 0x6C7D, 0x8B44, + 0x6C7E, 0x9F90, 0x6C81, 0x9F8E, 0x6C82, 0x9F8B, 0x6C83, 0x9780, 0x6C86, 0xFAF7, 0x6C88, 0x92BE, 0x6C8C, 0x93D7, 0x6C8D, 0x9F8C, + 0x6C90, 0x9F94, 0x6C92, 0x9F93, 0x6C93, 0x8C42, 0x6C96, 0x89AB, 0x6C99, 0x8DB9, 0x6C9A, 0x9F8D, 0x6C9B, 0x9F8F, 0x6CA1, 0x9676, + 0x6CA2, 0x91F2, 0x6CAB, 0x9697, 0x6CAE, 0x9F9C, 0x6CB1, 0x9F9D, 0x6CB3, 0x89CD, 0x6CB8, 0x95A6, 0x6CB9, 0x96FB, 0x6CBA, 0x9F9F, + 0x6CBB, 0x8EA1, 0x6CBC, 0x8FC0, 0x6CBD, 0x9F98, 0x6CBE, 0x9F9E, 0x6CBF, 0x8988, 0x6CC1, 0x8BB5, 0x6CC4, 0x9F95, 0x6CC5, 0x9F9A, + 0x6CC9, 0x90F2, 0x6CCA, 0x9491, 0x6CCC, 0x94E5, 0x6CD3, 0x9F97, 0x6CD5, 0x9640, 0x6CD7, 0x9F99, 0x6CD9, 0x9FA2, 0x6CDA, 0xFAF9, + 0x6CDB, 0x9FA0, 0x6CDD, 0x9F9B, 0x6CE1, 0x9641, 0x6CE2, 0x9467, 0x6CE3, 0x8B83, 0x6CE5, 0x9344, 0x6CE8, 0x928D, 0x6CEA, 0x9FA3, + 0x6CEF, 0x9FA1, 0x6CF0, 0x91D7, 0x6CF1, 0x9F96, 0x6CF3, 0x896A, 0x6D04, 0xFAFA, 0x6D0B, 0x976D, 0x6D0C, 0x9FAE, 0x6D12, 0x9FAD, + 0x6D17, 0x90F4, 0x6D19, 0x9FAA, 0x6D1B, 0x978C, 0x6D1E, 0x93B4, 0x6D1F, 0x9FA4, 0x6D25, 0x92C3, 0x6D29, 0x896B, 0x6D2A, 0x8D5E, + 0x6D2B, 0x9FA7, 0x6D32, 0x8F46, 0x6D33, 0x9FAC, 0x6D35, 0x9FAB, 0x6D36, 0x9FA6, 0x6D38, 0x9FA9, 0x6D3B, 0x8A88, 0x6D3D, 0x9FA8, + 0x6D3E, 0x9468, 0x6D41, 0x97AC, 0x6D44, 0x8FF2, 0x6D45, 0x90F3, 0x6D59, 0x9FB4, 0x6D5A, 0x9FB2, 0x6D5C, 0x956C, 0x6D63, 0x9FAF, + 0x6D64, 0x9FB1, 0x6D66, 0x8959, 0x6D69, 0x8D5F, 0x6D6A, 0x9851, 0x6D6C, 0x8A5C, 0x6D6E, 0x9582, 0x6D6F, 0xFAFC, 0x6D74, 0x9781, + 0x6D77, 0x8A43, 0x6D78, 0x905A, 0x6D79, 0x9FB3, 0x6D85, 0x9FB8, 0x6D87, 0xFAFB, 0x6D88, 0x8FC1, 0x6D8C, 0x974F, 0x6D8E, 0x9FB5, + 0x6D93, 0x9FB0, 0x6D95, 0x9FB6, 0x6D96, 0xFB40, 0x6D99, 0x97DC, 0x6D9B, 0x9393, 0x6D9C, 0x93C0, 0x6DAC, 0xFB41, 0x6DAF, 0x8A55, + 0x6DB2, 0x8974, 0x6DB5, 0x9FBC, 0x6DB8, 0x9FBF, 0x6DBC, 0x97C1, 0x6DC0, 0x9784, 0x6DC5, 0x9FC6, 0x6DC6, 0x9FC0, 0x6DC7, 0x9FBD, + 0x6DCB, 0x97D2, 0x6DCC, 0x9FC3, 0x6DCF, 0xFB42, 0x6DD1, 0x8F69, 0x6DD2, 0x9FC5, 0x6DD5, 0x9FCA, 0x6DD8, 0x9391, 0x6DD9, 0x9FC8, + 0x6DDE, 0x9FC2, 0x6DE1, 0x9257, 0x6DE4, 0x9FC9, 0x6DE6, 0x9FBE, 0x6DE8, 0x9FC4, 0x6DEA, 0x9FCB, 0x6DEB, 0x88FA, 0x6DEC, 0x9FC1, + 0x6DEE, 0x9FCC, 0x6DF1, 0x905B, 0x6DF2, 0xFB44, 0x6DF3, 0x8F7E, 0x6DF5, 0x95A3, 0x6DF7, 0x8DAC, 0x6DF8, 0xFB43, 0x6DF9, 0x9FB9, + 0x6DFA, 0x9FC7, 0x6DFB, 0x9359, 0x6DFC, 0xFB45, 0x6E05, 0x90B4, 0x6E07, 0x8A89, 0x6E08, 0x8DCF, 0x6E09, 0x8FC2, 0x6E0A, 0x9FBB, + 0x6E0B, 0x8F61, 0x6E13, 0x8C6B, 0x6E15, 0x9FBA, 0x6E19, 0x9FD0, 0x6E1A, 0x8F8D, 0x6E1B, 0x8CB8, 0x6E1D, 0x9FDF, 0x6E1F, 0x9FD9, + 0x6E20, 0x8B94, 0x6E21, 0x936E, 0x6E23, 0x9FD4, 0x6E24, 0x9FDD, 0x6E25, 0x88AD, 0x6E26, 0x8951, 0x6E27, 0xFB48, 0x6E29, 0x89B7, + 0x6E2B, 0x9FD6, 0x6E2C, 0x91AA, 0x6E2D, 0x9FCD, 0x6E2E, 0x9FCF, 0x6E2F, 0x8D60, 0x6E38, 0x9FE0, 0x6E39, 0xFB46, 0x6E3A, 0x9FDB, + 0x6E3C, 0xFB49, 0x6E3E, 0x9FD3, 0x6E43, 0x9FDA, 0x6E4A, 0x96A9, 0x6E4D, 0x9FD8, 0x6E4E, 0x9FDC, 0x6E56, 0x8CCE, 0x6E58, 0x8FC3, + 0x6E5B, 0x9258, 0x6E5C, 0xFB47, 0x6E5F, 0x9FD2, 0x6E67, 0x974E, 0x6E6B, 0x9FD5, 0x6E6E, 0x9FCE, 0x6E6F, 0x9392, 0x6E72, 0x9FD1, + 0x6E76, 0x9FD7, 0x6E7E, 0x9870, 0x6E7F, 0x8EBC, 0x6E80, 0x969E, 0x6E82, 0x9FE1, 0x6E8C, 0x94AC, 0x6E8F, 0x9FED, 0x6E90, 0x8CB9, + 0x6E96, 0x8F80, 0x6E98, 0x9FE3, 0x6E9C, 0x97AD, 0x6E9D, 0x8D61, 0x6E9F, 0x9FF0, 0x6EA2, 0x88EC, 0x6EA5, 0x9FEE, 0x6EAA, 0x9FE2, + 0x6EAF, 0x9FE8, 0x6EB2, 0x9FEA, 0x6EB6, 0x976E, 0x6EB7, 0x9FE5, 0x6EBA, 0x934D, 0x6EBD, 0x9FE7, 0x6EBF, 0xFB4A, 0x6EC2, 0x9FEF, + 0x6EC4, 0x9FE9, 0x6EC5, 0x96C5, 0x6EC9, 0x9FE4, 0x6ECB, 0x8EA0, 0x6ECC, 0x9FFC, 0x6ED1, 0x8A8A, 0x6ED3, 0x9FE6, 0x6ED4, 0x9FEB, + 0x6ED5, 0x9FEC, 0x6EDD, 0x91EA, 0x6EDE, 0x91D8, 0x6EEC, 0x9FF4, 0x6EEF, 0x9FFA, 0x6EF2, 0x9FF8, 0x6EF4, 0x9348, 0x6EF7, 0xE042, + 0x6EF8, 0x9FF5, 0x6EFE, 0x9FF6, 0x6EFF, 0x9FDE, 0x6F01, 0x8B99, 0x6F02, 0x9559, 0x6F06, 0x8EBD, 0x6F09, 0x8D97, 0x6F0F, 0x9852, + 0x6F11, 0x9FF2, 0x6F13, 0xE041, 0x6F14, 0x8989, 0x6F15, 0x9186, 0x6F20, 0x9499, 0x6F22, 0x8ABF, 0x6F23, 0x97F8, 0x6F2B, 0x969F, + 0x6F2C, 0x92D0, 0x6F31, 0x9FF9, 0x6F32, 0x9FFB, 0x6F38, 0x9151, 0x6F3E, 0xE040, 0x6F3F, 0x9FF7, 0x6F41, 0x9FF1, 0x6F45, 0x8AC1, + 0x6F54, 0x8C89, 0x6F58, 0xE04E, 0x6F5B, 0xE049, 0x6F5C, 0x90F6, 0x6F5F, 0x8A83, 0x6F64, 0x8F81, 0x6F66, 0xE052, 0x6F6D, 0xE04B, + 0x6F6E, 0x92AA, 0x6F6F, 0xE048, 0x6F70, 0x92D7, 0x6F74, 0xE06B, 0x6F78, 0xE045, 0x6F7A, 0xE044, 0x6F7C, 0xE04D, 0x6F80, 0xE047, + 0x6F81, 0xE046, 0x6F82, 0xE04C, 0x6F84, 0x909F, 0x6F86, 0xE043, 0x6F88, 0xFB4B, 0x6F8E, 0xE04F, 0x6F91, 0xE050, 0x6F97, 0x8AC0, + 0x6FA1, 0xE055, 0x6FA3, 0xE054, 0x6FA4, 0xE056, 0x6FAA, 0xE059, 0x6FB1, 0x9362, 0x6FB3, 0xE053, 0x6FB5, 0xFB4C, 0x6FB9, 0xE057, + 0x6FC0, 0x8C83, 0x6FC1, 0x91F7, 0x6FC2, 0xE051, 0x6FC3, 0x945A, 0x6FC6, 0xE058, 0x6FD4, 0xE05D, 0x6FD5, 0xE05B, 0x6FD8, 0xE05E, + 0x6FDB, 0xE061, 0x6FDF, 0xE05A, 0x6FE0, 0x8D8A, 0x6FE1, 0x9447, 0x6FE4, 0x9FB7, 0x6FEB, 0x9794, 0x6FEC, 0xE05C, 0x6FEE, 0xE060, + 0x6FEF, 0x91F3, 0x6FF1, 0xE05F, 0x6FF3, 0xE04A, 0x6FF5, 0xFB4D, 0x6FF6, 0xE889, 0x6FFA, 0xE064, 0x6FFE, 0xE068, 0x7001, 0xE066, + 0x7005, 0xFB4E, 0x7007, 0xFB4F, 0x7009, 0xE062, 0x700B, 0xE063, 0x700F, 0xE067, 0x7011, 0xE065, 0x7015, 0x956D, 0x7018, 0xE06D, + 0x701A, 0xE06A, 0x701B, 0xE069, 0x701D, 0xE06C, 0x701E, 0x93D2, 0x701F, 0xE06E, 0x7026, 0x9295, 0x7027, 0x91EB, 0x7028, 0xFB50, + 0x702C, 0x90A3, 0x7030, 0xE06F, 0x7032, 0xE071, 0x703E, 0xE070, 0x704C, 0x9FF3, 0x7051, 0xE072, 0x7058, 0x93E5, 0x7063, 0xE073, + 0x706B, 0x89CE, 0x706F, 0x9394, 0x7070, 0x8A44, 0x7078, 0x8B84, 0x707C, 0x8EDC, 0x707D, 0x8DD0, 0x7085, 0xFB51, 0x7089, 0x9846, + 0x708A, 0x9086, 0x708E, 0x898A, 0x7092, 0xE075, 0x7099, 0xE074, 0x70AB, 0xFB52, 0x70AC, 0xE078, 0x70AD, 0x9259, 0x70AE, 0xE07B, + 0x70AF, 0xE076, 0x70B3, 0xE07A, 0x70B8, 0xE079, 0x70B9, 0x935F, 0x70BA, 0x88D7, 0x70BB, 0xFA62, 0x70C8, 0x97F3, 0x70CB, 0xE07D, + 0x70CF, 0x8947, 0x70D9, 0xE080, 0x70DD, 0xE07E, 0x70DF, 0xE07C, 0x70F1, 0xE077, 0x70F9, 0x9642, 0x70FD, 0xE082, 0x7104, 0xFB54, + 0x7109, 0xE081, 0x710F, 0xFB53, 0x7114, 0x898B, 0x7119, 0xE084, 0x711A, 0x95B0, 0x711C, 0xE083, 0x7121, 0x96B3, 0x7126, 0x8FC5, + 0x7136, 0x9152, 0x713C, 0x8FC4, 0x7146, 0xFB56, 0x7147, 0xFB57, 0x7149, 0x97F9, 0x714C, 0xE08A, 0x714E, 0x90F7, 0x7155, 0xE086, + 0x7156, 0xE08B, 0x7159, 0x898C, 0x715C, 0xFB55, 0x7162, 0xE089, 0x7164, 0x9481, 0x7165, 0xE085, 0x7166, 0xE088, 0x7167, 0x8FC6, + 0x7169, 0x94CF, 0x716C, 0xE08C, 0x716E, 0x8ECF, 0x717D, 0x90F8, 0x7184, 0xE08F, 0x7188, 0xE087, 0x718A, 0x8C46, 0x718F, 0xE08D, + 0x7194, 0x976F, 0x7195, 0xE090, 0x7199, 0xEAA4, 0x719F, 0x8F6E, 0x71A8, 0xE091, 0x71AC, 0xE092, 0x71B1, 0x944D, 0x71B9, 0xE094, + 0x71BE, 0xE095, 0x71C1, 0xFB59, 0x71C3, 0x9452, 0x71C8, 0x9395, 0x71C9, 0xE097, 0x71CE, 0xE099, 0x71D0, 0x97D3, 0x71D2, 0xE096, + 0x71D4, 0xE098, 0x71D5, 0x898D, 0x71D7, 0xE093, 0x71DF, 0x9A7A, 0x71E0, 0xE09A, 0x71E5, 0x9187, 0x71E6, 0x8E57, 0x71E7, 0xE09C, + 0x71EC, 0xE09B, 0x71ED, 0x9043, 0x71EE, 0x99D7, 0x71F5, 0xE09D, 0x71F9, 0xE09F, 0x71FB, 0xE08E, 0x71FC, 0xE09E, 0x71FE, 0xFB5A, + 0x71FF, 0xE0A0, 0x7206, 0x949A, 0x720D, 0xE0A1, 0x7210, 0xE0A2, 0x721B, 0xE0A3, 0x7228, 0xE0A4, 0x722A, 0x92DC, 0x722C, 0xE0A6, + 0x722D, 0xE0A5, 0x7230, 0xE0A7, 0x7232, 0xE0A8, 0x7235, 0x8EDD, 0x7236, 0x9583, 0x723A, 0x96EA, 0x723B, 0xE0A9, 0x723C, 0xE0AA, + 0x723D, 0x9175, 0x723E, 0x8EA2, 0x723F, 0xE0AB, 0x7240, 0xE0AC, 0x7246, 0xE0AD, 0x7247, 0x95D0, 0x7248, 0x94C5, 0x724B, 0xE0AE, + 0x724C, 0x9476, 0x7252, 0x92AB, 0x7258, 0xE0AF, 0x7259, 0x89E5, 0x725B, 0x8B8D, 0x725D, 0x96C4, 0x725F, 0x96B4, 0x7261, 0x89B2, + 0x7262, 0x9853, 0x7267, 0x9671, 0x7269, 0x95A8, 0x7272, 0x90B5, 0x7274, 0xE0B0, 0x7279, 0x93C1, 0x727D, 0x8CA1, 0x727E, 0xE0B1, + 0x7280, 0x8DD2, 0x7281, 0xE0B3, 0x7282, 0xE0B2, 0x7287, 0xE0B4, 0x7292, 0xE0B5, 0x7296, 0xE0B6, 0x72A0, 0x8B5D, 0x72A2, 0xE0B7, + 0x72A7, 0xE0B8, 0x72AC, 0x8CA2, 0x72AF, 0x94C6, 0x72B1, 0xFB5B, 0x72B2, 0xE0BA, 0x72B6, 0x8FF3, 0x72B9, 0xE0B9, 0x72BE, 0xFB5C, + 0x72C2, 0x8BB6, 0x72C3, 0xE0BB, 0x72C4, 0xE0BD, 0x72C6, 0xE0BC, 0x72CE, 0xE0BE, 0x72D0, 0x8CCF, 0x72D2, 0xE0BF, 0x72D7, 0x8BE7, + 0x72D9, 0x915F, 0x72DB, 0x8D9D, 0x72E0, 0xE0C1, 0x72E1, 0xE0C2, 0x72E2, 0xE0C0, 0x72E9, 0x8EEB, 0x72EC, 0x93C6, 0x72ED, 0x8BB7, + 0x72F7, 0xE0C4, 0x72F8, 0x924B, 0x72F9, 0xE0C3, 0x72FC, 0x9854, 0x72FD, 0x9482, 0x730A, 0xE0C7, 0x7316, 0xE0C9, 0x7317, 0xE0C6, + 0x731B, 0x96D2, 0x731C, 0xE0C8, 0x731D, 0xE0CA, 0x731F, 0x97C2, 0x7324, 0xFB5D, 0x7325, 0xE0CE, 0x7329, 0xE0CD, 0x732A, 0x9296, + 0x732B, 0x944C, 0x732E, 0x8CA3, 0x732F, 0xE0CC, 0x7334, 0xE0CB, 0x7336, 0x9750, 0x7337, 0x9751, 0x733E, 0xE0CF, 0x733F, 0x898E, + 0x7344, 0x8D96, 0x7345, 0x8E82, 0x734E, 0xE0D0, 0x734F, 0xE0D1, 0x7357, 0xE0D3, 0x7363, 0x8F62, 0x7368, 0xE0D5, 0x736A, 0xE0D4, + 0x7370, 0xE0D6, 0x7372, 0x8A6C, 0x7375, 0xE0D8, 0x7377, 0xFB5F, 0x7378, 0xE0D7, 0x737A, 0xE0DA, 0x737B, 0xE0D9, 0x7384, 0x8CBA, + 0x7387, 0x97A6, 0x7389, 0x8BCA, 0x738B, 0x89A4, 0x7396, 0x8BE8, 0x73A9, 0x8ADF, 0x73B2, 0x97E6, 0x73B3, 0xE0DC, 0x73BB, 0xE0DE, + 0x73BD, 0xFB60, 0x73C0, 0xE0DF, 0x73C2, 0x89CF, 0x73C8, 0xE0DB, 0x73C9, 0xFB61, 0x73CA, 0x8E58, 0x73CD, 0x92BF, 0x73CE, 0xE0DD, + 0x73D2, 0xFB64, 0x73D6, 0xFB62, 0x73DE, 0xE0E2, 0x73E0, 0x8EEC, 0x73E3, 0xFB63, 0x73E5, 0xE0E0, 0x73EA, 0x8C5D, 0x73ED, 0x94C7, + 0x73EE, 0xE0E1, 0x73F1, 0xE0FC, 0x73F5, 0xFB66, 0x73F8, 0xE0E7, 0x73FE, 0x8CBB, 0x7403, 0x8B85, 0x7405, 0xE0E4, 0x7406, 0x979D, + 0x7407, 0xFB65, 0x7409, 0x97AE, 0x7422, 0x91F4, 0x7425, 0xE0E6, 0x7426, 0xFB67, 0x7429, 0xFB69, 0x742A, 0xFB68, 0x742E, 0xFB6A, + 0x7432, 0xE0E8, 0x7433, 0x97D4, 0x7434, 0x8BD5, 0x7435, 0x94FA, 0x7436, 0x9469, 0x743A, 0xE0E9, 0x743F, 0xE0EB, 0x7441, 0xE0EE, + 0x7455, 0xE0EA, 0x7459, 0xE0ED, 0x745A, 0x8CE8, 0x745B, 0x896C, 0x745C, 0xE0EF, 0x745E, 0x9090, 0x745F, 0xE0EC, 0x7460, 0x97DA, + 0x7462, 0xFB6B, 0x7463, 0xE0F2, 0x7464, 0xEAA2, 0x7469, 0xE0F0, 0x746A, 0xE0F3, 0x746F, 0xE0E5, 0x7470, 0xE0F1, 0x7473, 0x8DBA, + 0x7476, 0xE0F4, 0x747E, 0xE0F5, 0x7483, 0x979E, 0x7489, 0xFB6C, 0x748B, 0xE0F6, 0x749E, 0xE0F7, 0x749F, 0xFB6D, 0x74A2, 0xE0E3, + 0x74A7, 0xE0F8, 0x74B0, 0x8AC2, 0x74BD, 0x8EA3, 0x74CA, 0xE0F9, 0x74CF, 0xE0FA, 0x74D4, 0xE0FB, 0x74DC, 0x895A, 0x74E0, 0xE140, + 0x74E2, 0x955A, 0x74E3, 0xE141, 0x74E6, 0x8AA2, 0x74E7, 0xE142, 0x74E9, 0xE143, 0x74EE, 0xE144, 0x74F0, 0xE146, 0x74F1, 0xE147, + 0x74F2, 0xE145, 0x74F6, 0x9572, 0x74F7, 0xE149, 0x74F8, 0xE148, 0x7501, 0xFB6E, 0x7503, 0xE14B, 0x7504, 0xE14A, 0x7505, 0xE14C, + 0x750C, 0xE14D, 0x750D, 0xE14F, 0x750E, 0xE14E, 0x7511, 0x8D99, 0x7513, 0xE151, 0x7515, 0xE150, 0x7518, 0x8AC3, 0x751A, 0x9072, + 0x751C, 0x935B, 0x751E, 0xE152, 0x751F, 0x90B6, 0x7523, 0x8E59, 0x7525, 0x8999, 0x7526, 0xE153, 0x7528, 0x9770, 0x752B, 0x95E1, + 0x752C, 0xE154, 0x752F, 0xFAA8, 0x7530, 0x9363, 0x7531, 0x9752, 0x7532, 0x8D62, 0x7533, 0x905C, 0x7537, 0x926A, 0x7538, 0x99B2, + 0x753A, 0x92AC, 0x753B, 0x89E6, 0x753C, 0xE155, 0x7544, 0xE156, 0x7546, 0xE15B, 0x7549, 0xE159, 0x754A, 0xE158, 0x754B, 0x9DC0, + 0x754C, 0x8A45, 0x754D, 0xE157, 0x754F, 0x88D8, 0x7551, 0x94A8, 0x7554, 0x94C8, 0x7559, 0x97AF, 0x755A, 0xE15C, 0x755B, 0xE15A, + 0x755C, 0x927B, 0x755D, 0x90A4, 0x7560, 0x94A9, 0x7562, 0x954C, 0x7564, 0xE15E, 0x7565, 0x97AA, 0x7566, 0x8C6C, 0x7567, 0xE15F, + 0x7569, 0xE15D, 0x756A, 0x94D4, 0x756B, 0xE160, 0x756D, 0xE161, 0x756F, 0xFB6F, 0x7570, 0x88D9, 0x7573, 0x8FF4, 0x7574, 0xE166, + 0x7576, 0xE163, 0x7577, 0x93EB, 0x7578, 0xE162, 0x757F, 0x8B45, 0x7582, 0xE169, 0x7586, 0xE164, 0x7587, 0xE165, 0x7589, 0xE168, + 0x758A, 0xE167, 0x758B, 0x9544, 0x758E, 0x9161, 0x758F, 0x9160, 0x7591, 0x8B5E, 0x7594, 0xE16A, 0x759A, 0xE16B, 0x759D, 0xE16C, + 0x75A3, 0xE16E, 0x75A5, 0xE16D, 0x75AB, 0x8975, 0x75B1, 0xE176, 0x75B2, 0x94E6, 0x75B3, 0xE170, 0x75B5, 0xE172, 0x75B8, 0xE174, + 0x75B9, 0x905D, 0x75BC, 0xE175, 0x75BD, 0xE173, 0x75BE, 0x8EBE, 0x75C2, 0xE16F, 0x75C3, 0xE171, 0x75C5, 0x9561, 0x75C7, 0x8FC7, + 0x75CA, 0xE178, 0x75CD, 0xE177, 0x75D2, 0xE179, 0x75D4, 0x8EA4, 0x75D5, 0x8DAD, 0x75D8, 0x9397, 0x75D9, 0xE17A, 0x75DB, 0x92C9, + 0x75DE, 0xE17C, 0x75E2, 0x979F, 0x75E3, 0xE17B, 0x75E9, 0x9189, 0x75F0, 0xE182, 0x75F2, 0xE184, 0x75F3, 0xE185, 0x75F4, 0x9273, + 0x75FA, 0xE183, 0x75FC, 0xE180, 0x75FE, 0xE17D, 0x75FF, 0xE17E, 0x7601, 0xE181, 0x7609, 0xE188, 0x760B, 0xE186, 0x760D, 0xE187, + 0x761F, 0xE189, 0x7620, 0xE18B, 0x7621, 0xE18C, 0x7622, 0xE18D, 0x7624, 0xE18E, 0x7627, 0xE18A, 0x7630, 0xE190, 0x7634, 0xE18F, + 0x763B, 0xE191, 0x7642, 0x97C3, 0x7646, 0xE194, 0x7647, 0xE192, 0x7648, 0xE193, 0x764C, 0x8AE0, 0x7652, 0x96FC, 0x7656, 0x95C8, + 0x7658, 0xE196, 0x765C, 0xE195, 0x7661, 0xE197, 0x7662, 0xE198, 0x7667, 0xE19C, 0x7668, 0xE199, 0x7669, 0xE19A, 0x766A, 0xE19B, + 0x766C, 0xE19D, 0x7670, 0xE19E, 0x7672, 0xE19F, 0x7676, 0xE1A0, 0x7678, 0xE1A1, 0x767A, 0x94AD, 0x767B, 0x936F, 0x767C, 0xE1A2, + 0x767D, 0x9492, 0x767E, 0x9553, 0x7680, 0xE1A3, 0x7682, 0xFB70, 0x7683, 0xE1A4, 0x7684, 0x9349, 0x7686, 0x8A46, 0x7687, 0x8D63, + 0x7688, 0xE1A5, 0x768B, 0xE1A6, 0x768E, 0xE1A7, 0x7690, 0x8E48, 0x7693, 0xE1A9, 0x7696, 0xE1A8, 0x7699, 0xE1AA, 0x769A, 0xE1AB, + 0x769B, 0xFB73, 0x769C, 0xFB71, 0x769E, 0xFB72, 0x76A6, 0xFB74, 0x76AE, 0x94E7, 0x76B0, 0xE1AC, 0x76B4, 0xE1AD, 0x76B7, 0xEA89, + 0x76B8, 0xE1AE, 0x76B9, 0xE1AF, 0x76BA, 0xE1B0, 0x76BF, 0x8E4D, 0x76C2, 0xE1B1, 0x76C3, 0x9475, 0x76C6, 0x967E, 0x76C8, 0x896D, + 0x76CA, 0x8976, 0x76CD, 0xE1B2, 0x76D2, 0xE1B4, 0x76D6, 0xE1B3, 0x76D7, 0x9390, 0x76DB, 0x90B7, 0x76DC, 0x9F58, 0x76DE, 0xE1B5, + 0x76DF, 0x96BF, 0x76E1, 0xE1B6, 0x76E3, 0x8AC4, 0x76E4, 0x94D5, 0x76E5, 0xE1B7, 0x76E7, 0xE1B8, 0x76EA, 0xE1B9, 0x76EE, 0x96DA, + 0x76F2, 0x96D3, 0x76F4, 0x92BC, 0x76F8, 0x918A, 0x76FB, 0xE1BB, 0x76FE, 0x8F82, 0x7701, 0x8FC8, 0x7704, 0xE1BE, 0x7707, 0xE1BD, + 0x7708, 0xE1BC, 0x7709, 0x94FB, 0x770B, 0x8AC5, 0x770C, 0x8CA7, 0x771B, 0xE1C4, 0x771E, 0xE1C1, 0x771F, 0x905E, 0x7720, 0x96B0, + 0x7724, 0xE1C0, 0x7725, 0xE1C2, 0x7726, 0xE1C3, 0x7729, 0xE1BF, 0x7737, 0xE1C5, 0x7738, 0xE1C6, 0x773A, 0x92AD, 0x773C, 0x8AE1, + 0x7740, 0x9285, 0x7746, 0xFB76, 0x7747, 0xE1C7, 0x775A, 0xE1C8, 0x775B, 0xE1CB, 0x7761, 0x9087, 0x7763, 0x93C2, 0x7765, 0xE1CC, + 0x7766, 0x9672, 0x7768, 0xE1C9, 0x776B, 0xE1CA, 0x7779, 0xE1CF, 0x777E, 0xE1CE, 0x777F, 0xE1CD, 0x778B, 0xE1D1, 0x778E, 0xE1D0, + 0x7791, 0xE1D2, 0x779E, 0xE1D4, 0x77A0, 0xE1D3, 0x77A5, 0x95CB, 0x77AC, 0x8F75, 0x77AD, 0x97C4, 0x77B0, 0xE1D5, 0x77B3, 0x93B5, + 0x77B6, 0xE1D6, 0x77B9, 0xE1D7, 0x77BB, 0xE1DB, 0x77BC, 0xE1D9, 0x77BD, 0xE1DA, 0x77BF, 0xE1D8, 0x77C7, 0xE1DC, 0x77CD, 0xE1DD, + 0x77D7, 0xE1DE, 0x77DA, 0xE1DF, 0x77DB, 0x96B5, 0x77DC, 0xE1E0, 0x77E2, 0x96EE, 0x77E3, 0xE1E1, 0x77E5, 0x926D, 0x77E7, 0x948A, + 0x77E9, 0x8BE9, 0x77ED, 0x925A, 0x77EE, 0xE1E2, 0x77EF, 0x8BB8, 0x77F3, 0x90CE, 0x77FC, 0xE1E3, 0x7802, 0x8DBB, 0x780C, 0xE1E4, + 0x7812, 0xE1E5, 0x7814, 0x8CA4, 0x7815, 0x8DD3, 0x7820, 0xE1E7, 0x7821, 0xFB78, 0x7825, 0x9375, 0x7826, 0x8DD4, 0x7827, 0x8B6D, + 0x7832, 0x9643, 0x7834, 0x946A, 0x783A, 0x9376, 0x783F, 0x8D7B, 0x7845, 0xE1E9, 0x784E, 0xFB79, 0x785D, 0x8FC9, 0x7864, 0xFB7A, + 0x786B, 0x97B0, 0x786C, 0x8D64, 0x786F, 0x8CA5, 0x7872, 0x94A1, 0x7874, 0xE1EB, 0x787A, 0xFB7B, 0x787C, 0xE1ED, 0x7881, 0x8CE9, + 0x7886, 0xE1EC, 0x7887, 0x92F4, 0x788C, 0xE1EF, 0x788D, 0x8A56, 0x788E, 0xE1EA, 0x7891, 0x94E8, 0x7893, 0x894F, 0x7895, 0x8DEA, + 0x7897, 0x9871, 0x789A, 0xE1EE, 0x78A3, 0xE1F0, 0x78A7, 0x95C9, 0x78A9, 0x90D7, 0x78AA, 0xE1F2, 0x78AF, 0xE1F3, 0x78B5, 0xE1F1, + 0x78BA, 0x8A6D, 0x78BC, 0xE1F9, 0x78BE, 0xE1F8, 0x78C1, 0x8EA5, 0x78C5, 0xE1FA, 0x78C6, 0xE1F5, 0x78CA, 0xE1FB, 0x78CB, 0xE1F6, + 0x78D0, 0x94D6, 0x78D1, 0xE1F4, 0x78D4, 0xE1F7, 0x78DA, 0xE241, 0x78E7, 0xE240, 0x78E8, 0x9681, 0x78EC, 0xE1FC, 0x78EF, 0x88E9, + 0x78F4, 0xE243, 0x78FD, 0xE242, 0x7901, 0x8FCA, 0x7907, 0xE244, 0x790E, 0x9162, 0x7911, 0xE246, 0x7912, 0xE245, 0x7919, 0xE247, + 0x7926, 0xE1E6, 0x792A, 0xE1E8, 0x792B, 0xE249, 0x792C, 0xE248, 0x7930, 0xFB7C, 0x793A, 0x8EA6, 0x793C, 0x97E7, 0x793E, 0x8ED0, + 0x7940, 0xE24A, 0x7941, 0x8C56, 0x7947, 0x8B5F, 0x7948, 0x8B46, 0x7949, 0x8E83, 0x7950, 0x9753, 0x7953, 0xE250, 0x7955, 0xE24F, + 0x7956, 0x9163, 0x7957, 0xE24C, 0x795A, 0xE24E, 0x795D, 0x8F6A, 0x795E, 0x905F, 0x795F, 0xE24D, 0x7960, 0xE24B, 0x7962, 0x9449, + 0x7965, 0x8FCB, 0x7968, 0x955B, 0x796D, 0x8DD5, 0x7977, 0x9398, 0x797A, 0xE251, 0x797F, 0xE252, 0x7980, 0xE268, 0x7981, 0x8BD6, + 0x7984, 0x985C, 0x7985, 0x9154, 0x798A, 0xE253, 0x798D, 0x89D0, 0x798E, 0x92F5, 0x798F, 0x959F, 0x7994, 0xFB81, 0x799B, 0xFB83, + 0x799D, 0xE254, 0x79A6, 0x8B9A, 0x79A7, 0xE255, 0x79AA, 0xE257, 0x79AE, 0xE258, 0x79B0, 0x9448, 0x79B3, 0xE259, 0x79B9, 0xE25A, + 0x79BA, 0xE25B, 0x79BD, 0x8BD7, 0x79BE, 0x89D1, 0x79BF, 0x93C3, 0x79C0, 0x8F47, 0x79C1, 0x8E84, 0x79C9, 0xE25C, 0x79CB, 0x8F48, + 0x79D1, 0x89C8, 0x79D2, 0x9562, 0x79D5, 0xE25D, 0x79D8, 0x94E9, 0x79DF, 0x9164, 0x79E1, 0xE260, 0x79E3, 0xE261, 0x79E4, 0x9489, + 0x79E6, 0x9060, 0x79E7, 0xE25E, 0x79E9, 0x9281, 0x79EC, 0xE25F, 0x79F0, 0x8FCC, 0x79FB, 0x88DA, 0x7A00, 0x8B48, 0x7A08, 0xE262, + 0x7A0B, 0x92F6, 0x7A0D, 0xE263, 0x7A0E, 0x90C5, 0x7A14, 0x96AB, 0x7A17, 0x9542, 0x7A18, 0xE264, 0x7A19, 0xE265, 0x7A1A, 0x9274, + 0x7A1C, 0x97C5, 0x7A1F, 0xE267, 0x7A20, 0xE266, 0x7A2E, 0x8EED, 0x7A31, 0xE269, 0x7A32, 0x88EE, 0x7A37, 0xE26C, 0x7A3B, 0xE26A, + 0x7A3C, 0x89D2, 0x7A3D, 0x8C6D, 0x7A3E, 0xE26B, 0x7A3F, 0x8D65, 0x7A40, 0x8D92, 0x7A42, 0x95E4, 0x7A43, 0xE26D, 0x7A46, 0x9673, + 0x7A49, 0xE26F, 0x7A4D, 0x90CF, 0x7A4E, 0x896E, 0x7A4F, 0x89B8, 0x7A50, 0x88AA, 0x7A57, 0xE26E, 0x7A61, 0xE270, 0x7A62, 0xE271, + 0x7A63, 0x8FF5, 0x7A69, 0xE272, 0x7A6B, 0x8A6E, 0x7A70, 0xE274, 0x7A74, 0x8C8A, 0x7A76, 0x8B86, 0x7A79, 0xE275, 0x7A7A, 0x8BF3, + 0x7A7D, 0xE276, 0x7A7F, 0x90FA, 0x7A81, 0x93CB, 0x7A83, 0x90DE, 0x7A84, 0x8DF3, 0x7A88, 0xE277, 0x7A92, 0x9282, 0x7A93, 0x918B, + 0x7A95, 0xE279, 0x7A96, 0xE27B, 0x7A97, 0xE278, 0x7A98, 0xE27A, 0x7A9F, 0x8C41, 0x7AA9, 0xE27C, 0x7AAA, 0x8C45, 0x7AAE, 0x8B87, + 0x7AAF, 0x9771, 0x7AB0, 0xE27E, 0x7AB6, 0xE280, 0x7ABA, 0x894D, 0x7ABF, 0xE283, 0x7AC3, 0x8A96, 0x7AC4, 0xE282, 0x7AC5, 0xE281, + 0x7AC7, 0xE285, 0x7AC8, 0xE27D, 0x7ACA, 0xE286, 0x7ACB, 0x97A7, 0x7ACD, 0xE287, 0x7ACF, 0xE288, 0x7AD1, 0xFB84, 0x7AD2, 0x9AF2, + 0x7AD3, 0xE28A, 0x7AD5, 0xE289, 0x7AD9, 0xE28B, 0x7ADA, 0xE28C, 0x7ADC, 0x97B3, 0x7ADD, 0xE28D, 0x7ADF, 0xE8ED, 0x7AE0, 0x8FCD, + 0x7AE1, 0xE28E, 0x7AE2, 0xE28F, 0x7AE3, 0x8F76, 0x7AE5, 0x93B6, 0x7AE6, 0xE290, 0x7AE7, 0xFB85, 0x7AEA, 0x9247, 0x7AEB, 0xFB87, + 0x7AED, 0xE291, 0x7AEF, 0x925B, 0x7AF0, 0xE292, 0x7AF6, 0x8BA3, 0x7AF8, 0x995E, 0x7AF9, 0x927C, 0x7AFA, 0x8EB1, 0x7AFF, 0x8AC6, + 0x7B02, 0xE293, 0x7B04, 0xE2A0, 0x7B06, 0xE296, 0x7B08, 0x8B88, 0x7B0A, 0xE295, 0x7B0B, 0xE2A2, 0x7B0F, 0xE294, 0x7B11, 0x8FCE, + 0x7B18, 0xE298, 0x7B19, 0xE299, 0x7B1B, 0x934A, 0x7B1E, 0xE29A, 0x7B20, 0x8A7D, 0x7B25, 0x9079, 0x7B26, 0x9584, 0x7B28, 0xE29C, + 0x7B2C, 0x91E6, 0x7B33, 0xE297, 0x7B35, 0xE29B, 0x7B36, 0xE29D, 0x7B39, 0x8DF9, 0x7B45, 0xE2A4, 0x7B46, 0x954D, 0x7B48, 0x94A4, + 0x7B49, 0x9399, 0x7B4B, 0x8BD8, 0x7B4C, 0xE2A3, 0x7B4D, 0xE2A1, 0x7B4F, 0x94B3, 0x7B50, 0xE29E, 0x7B51, 0x927D, 0x7B52, 0x939B, + 0x7B54, 0x939A, 0x7B56, 0x8DF4, 0x7B5D, 0xE2B6, 0x7B65, 0xE2A6, 0x7B67, 0xE2A8, 0x7B6C, 0xE2AB, 0x7B6E, 0xE2AC, 0x7B70, 0xE2A9, + 0x7B71, 0xE2AA, 0x7B74, 0xE2A7, 0x7B75, 0xE2A5, 0x7B7A, 0xE29F, 0x7B86, 0x95CD, 0x7B87, 0x89D3, 0x7B8B, 0xE2B3, 0x7B8D, 0xE2B0, + 0x7B8F, 0xE2B5, 0x7B92, 0xE2B4, 0x7B94, 0x9493, 0x7B95, 0x96A5, 0x7B97, 0x8E5A, 0x7B98, 0xE2AE, 0x7B99, 0xE2B7, 0x7B9A, 0xE2B2, + 0x7B9C, 0xE2B1, 0x7B9D, 0xE2AD, 0x7B9E, 0xFB88, 0x7B9F, 0xE2AF, 0x7BA1, 0x8AC7, 0x7BAA, 0x925C, 0x7BAD, 0x90FB, 0x7BB1, 0x94A0, + 0x7BB4, 0xE2BC, 0x7BB8, 0x94A2, 0x7BC0, 0x90DF, 0x7BC1, 0xE2B9, 0x7BC4, 0x94CD, 0x7BC6, 0xE2BD, 0x7BC7, 0x95D1, 0x7BC9, 0x927A, + 0x7BCB, 0xE2B8, 0x7BCC, 0xE2BA, 0x7BCF, 0xE2BB, 0x7BDD, 0xE2BE, 0x7BE0, 0x8EC2, 0x7BE4, 0x93C4, 0x7BE5, 0xE2C3, 0x7BE6, 0xE2C2, + 0x7BE9, 0xE2BF, 0x7BED, 0x9855, 0x7BF3, 0xE2C8, 0x7BF6, 0xE2CC, 0x7BF7, 0xE2C9, 0x7C00, 0xE2C5, 0x7C07, 0xE2C6, 0x7C0D, 0xE2CB, + 0x7C11, 0xE2C0, 0x7C12, 0x99D3, 0x7C13, 0xE2C7, 0x7C14, 0xE2C1, 0x7C17, 0xE2CA, 0x7C1F, 0xE2D0, 0x7C21, 0x8AC8, 0x7C23, 0xE2CD, + 0x7C27, 0xE2CE, 0x7C2A, 0xE2CF, 0x7C2B, 0xE2D2, 0x7C37, 0xE2D1, 0x7C38, 0x94F4, 0x7C3D, 0xE2D3, 0x7C3E, 0x97FA, 0x7C3F, 0x95EB, + 0x7C40, 0xE2D8, 0x7C43, 0xE2D5, 0x7C4C, 0xE2D4, 0x7C4D, 0x90D0, 0x7C4F, 0xE2D7, 0x7C50, 0xE2D9, 0x7C54, 0xE2D6, 0x7C56, 0xE2DD, + 0x7C58, 0xE2DA, 0x7C5F, 0xE2DB, 0x7C60, 0xE2C4, 0x7C64, 0xE2DC, 0x7C65, 0xE2DE, 0x7C6C, 0xE2DF, 0x7C73, 0x95C4, 0x7C75, 0xE2E0, + 0x7C7E, 0x96E0, 0x7C81, 0x8BCC, 0x7C82, 0x8C48, 0x7C83, 0xE2E1, 0x7C89, 0x95B2, 0x7C8B, 0x9088, 0x7C8D, 0x96AE, 0x7C90, 0xE2E2, + 0x7C92, 0x97B1, 0x7C95, 0x9494, 0x7C97, 0x9165, 0x7C98, 0x9453, 0x7C9B, 0x8F6C, 0x7C9F, 0x88BE, 0x7CA1, 0xE2E7, 0x7CA2, 0xE2E5, + 0x7CA4, 0xE2E3, 0x7CA5, 0x8A9F, 0x7CA7, 0x8FCF, 0x7CA8, 0xE2E8, 0x7CAB, 0xE2E6, 0x7CAD, 0xE2E4, 0x7CAE, 0xE2EC, 0x7CB1, 0xE2EB, + 0x7CB2, 0xE2EA, 0x7CB3, 0xE2E9, 0x7CB9, 0xE2ED, 0x7CBD, 0xE2EE, 0x7CBE, 0x90B8, 0x7CC0, 0xE2EF, 0x7CC2, 0xE2F1, 0x7CC5, 0xE2F0, + 0x7CCA, 0x8CD0, 0x7CCE, 0x9157, 0x7CD2, 0xE2F3, 0x7CD6, 0x939C, 0x7CD8, 0xE2F2, 0x7CDC, 0xE2F4, 0x7CDE, 0x95B3, 0x7CDF, 0x918C, + 0x7CE0, 0x8D66, 0x7CE2, 0xE2F5, 0x7CE7, 0x97C6, 0x7CEF, 0xE2F7, 0x7CF2, 0xE2F8, 0x7CF4, 0xE2F9, 0x7CF6, 0xE2FA, 0x7CF8, 0x8E85, + 0x7CFA, 0xE2FB, 0x7CFB, 0x8C6E, 0x7CFE, 0x8B8A, 0x7D00, 0x8B49, 0x7D02, 0xE340, 0x7D04, 0x96F1, 0x7D05, 0x8D67, 0x7D06, 0xE2FC, + 0x7D0A, 0xE343, 0x7D0B, 0x96E4, 0x7D0D, 0x945B, 0x7D10, 0x9552, 0x7D14, 0x8F83, 0x7D15, 0xE342, 0x7D17, 0x8ED1, 0x7D18, 0x8D68, + 0x7D19, 0x8E86, 0x7D1A, 0x8B89, 0x7D1B, 0x95B4, 0x7D1C, 0xE341, 0x7D20, 0x9166, 0x7D21, 0x9661, 0x7D22, 0x8DF5, 0x7D2B, 0x8E87, + 0x7D2C, 0x92DB, 0x7D2E, 0xE346, 0x7D2F, 0x97DD, 0x7D30, 0x8DD7, 0x7D32, 0xE347, 0x7D33, 0x9061, 0x7D35, 0xE349, 0x7D39, 0x8FD0, + 0x7D3A, 0x8DAE, 0x7D3F, 0xE348, 0x7D42, 0x8F49, 0x7D43, 0x8CBC, 0x7D44, 0x9167, 0x7D45, 0xE344, 0x7D46, 0xE34A, 0x7D48, 0xFB8A, + 0x7D4B, 0xE345, 0x7D4C, 0x8C6F, 0x7D4E, 0xE34D, 0x7D4F, 0xE351, 0x7D50, 0x8C8B, 0x7D56, 0xE34C, 0x7D5B, 0xE355, 0x7D5C, 0xFB8B, + 0x7D5E, 0x8D69, 0x7D61, 0x978D, 0x7D62, 0x88BA, 0x7D63, 0xE352, 0x7D66, 0x8B8B, 0x7D68, 0xE34F, 0x7D6E, 0xE350, 0x7D71, 0x939D, + 0x7D72, 0xE34E, 0x7D73, 0xE34B, 0x7D75, 0x8A47, 0x7D76, 0x90E2, 0x7D79, 0x8CA6, 0x7D7D, 0xE357, 0x7D89, 0xE354, 0x7D8F, 0xE356, + 0x7D93, 0xE353, 0x7D99, 0x8C70, 0x7D9A, 0x91B1, 0x7D9B, 0xE358, 0x7D9C, 0x918E, 0x7D9F, 0xE365, 0x7DA0, 0xFB8D, 0x7DA2, 0xE361, + 0x7DA3, 0xE35B, 0x7DAB, 0xE35F, 0x7DAC, 0x8EF8, 0x7DAD, 0x88DB, 0x7DAE, 0xE35A, 0x7DAF, 0xE362, 0x7DB0, 0xE366, 0x7DB1, 0x8D6A, + 0x7DB2, 0x96D4, 0x7DB4, 0x92D4, 0x7DB5, 0xE35C, 0x7DB7, 0xFB8C, 0x7DB8, 0xE364, 0x7DBA, 0xE359, 0x7DBB, 0x925D, 0x7DBD, 0xE35E, + 0x7DBE, 0x88BB, 0x7DBF, 0x96C8, 0x7DC7, 0xE35D, 0x7DCA, 0x8BD9, 0x7DCB, 0x94EA, 0x7DCF, 0x918D, 0x7DD1, 0x97CE, 0x7DD2, 0x8F8F, + 0x7DD5, 0xE38E, 0x7DD6, 0xFB8E, 0x7DD8, 0xE367, 0x7DDA, 0x90FC, 0x7DDC, 0xE363, 0x7DDD, 0xE368, 0x7DDE, 0xE36A, 0x7DE0, 0x92F7, + 0x7DE1, 0xE36D, 0x7DE4, 0xE369, 0x7DE8, 0x95D2, 0x7DE9, 0x8AC9, 0x7DEC, 0x96C9, 0x7DEF, 0x88DC, 0x7DF2, 0xE36C, 0x7DF4, 0x97FB, + 0x7DFB, 0xE36B, 0x7E01, 0x898F, 0x7E04, 0x93EA, 0x7E05, 0xE36E, 0x7E09, 0xE375, 0x7E0A, 0xE36F, 0x7E0B, 0xE376, 0x7E12, 0xE372, + 0x7E1B, 0x949B, 0x7E1E, 0x8EC8, 0x7E1F, 0xE374, 0x7E21, 0xE371, 0x7E22, 0xE377, 0x7E23, 0xE370, 0x7E26, 0x8F63, 0x7E2B, 0x9644, + 0x7E2E, 0x8F6B, 0x7E31, 0xE373, 0x7E32, 0xE380, 0x7E35, 0xE37B, 0x7E37, 0xE37E, 0x7E39, 0xE37C, 0x7E3A, 0xE381, 0x7E3B, 0xE37A, + 0x7E3D, 0xE360, 0x7E3E, 0x90D1, 0x7E41, 0x94C9, 0x7E43, 0xE37D, 0x7E46, 0xE378, 0x7E4A, 0x9140, 0x7E4B, 0x8C71, 0x7E4D, 0x8F4A, + 0x7E52, 0xFB8F, 0x7E54, 0x9044, 0x7E55, 0x9155, 0x7E56, 0xE384, 0x7E59, 0xE386, 0x7E5A, 0xE387, 0x7E5D, 0xE383, 0x7E5E, 0xE385, + 0x7E66, 0xE379, 0x7E67, 0xE382, 0x7E69, 0xE38A, 0x7E6A, 0xE389, 0x7E6D, 0x969A, 0x7E70, 0x8C4A, 0x7E79, 0xE388, 0x7E7B, 0xE38C, + 0x7E7C, 0xE38B, 0x7E7D, 0xE38F, 0x7E7F, 0xE391, 0x7E82, 0x8E5B, 0x7E83, 0xE38D, 0x7E88, 0xE392, 0x7E89, 0xE393, 0x7E8A, 0xFA5C, + 0x7E8C, 0xE394, 0x7E8E, 0xE39A, 0x7E8F, 0x935A, 0x7E90, 0xE396, 0x7E92, 0xE395, 0x7E93, 0xE397, 0x7E94, 0xE398, 0x7E96, 0xE399, + 0x7E9B, 0xE39B, 0x7E9C, 0xE39C, 0x7F36, 0x8ACA, 0x7F38, 0xE39D, 0x7F3A, 0xE39E, 0x7F45, 0xE39F, 0x7F47, 0xFB90, 0x7F4C, 0xE3A0, + 0x7F4D, 0xE3A1, 0x7F4E, 0xE3A2, 0x7F50, 0xE3A3, 0x7F51, 0xE3A4, 0x7F54, 0xE3A6, 0x7F55, 0xE3A5, 0x7F58, 0xE3A7, 0x7F5F, 0xE3A8, + 0x7F60, 0xE3A9, 0x7F67, 0xE3AC, 0x7F68, 0xE3AA, 0x7F69, 0xE3AB, 0x7F6A, 0x8DDF, 0x7F6B, 0x8C72, 0x7F6E, 0x9275, 0x7F70, 0x94B1, + 0x7F72, 0x8F90, 0x7F75, 0x946C, 0x7F77, 0x94EB, 0x7F78, 0xE3AD, 0x7F79, 0x9CEB, 0x7F82, 0xE3AE, 0x7F83, 0xE3B0, 0x7F85, 0x9785, + 0x7F86, 0xE3AF, 0x7F87, 0xE3B2, 0x7F88, 0xE3B1, 0x7F8A, 0x9772, 0x7F8C, 0xE3B3, 0x7F8E, 0x94FC, 0x7F94, 0xE3B4, 0x7F9A, 0xE3B7, + 0x7F9D, 0xE3B6, 0x7F9E, 0xE3B5, 0x7FA1, 0xFB91, 0x7FA3, 0xE3B8, 0x7FA4, 0x8C51, 0x7FA8, 0x9141, 0x7FA9, 0x8B60, 0x7FAE, 0xE3BC, + 0x7FAF, 0xE3B9, 0x7FB2, 0xE3BA, 0x7FB6, 0xE3BD, 0x7FB8, 0xE3BE, 0x7FB9, 0xE3BB, 0x7FBD, 0x8948, 0x7FC1, 0x89A5, 0x7FC5, 0xE3C0, + 0x7FC6, 0xE3C1, 0x7FCA, 0xE3C2, 0x7FCC, 0x9782, 0x7FD2, 0x8F4B, 0x7FD4, 0xE3C4, 0x7FD5, 0xE3C3, 0x7FE0, 0x9089, 0x7FE1, 0xE3C5, + 0x7FE6, 0xE3C6, 0x7FE9, 0xE3C7, 0x7FEB, 0x8AE3, 0x7FF0, 0x8ACB, 0x7FF3, 0xE3C8, 0x7FF9, 0xE3C9, 0x7FFB, 0x967C, 0x7FFC, 0x9783, + 0x8000, 0x9773, 0x8001, 0x9856, 0x8003, 0x8D6C, 0x8004, 0xE3CC, 0x8005, 0x8ED2, 0x8006, 0xE3CB, 0x800B, 0xE3CD, 0x800C, 0x8EA7, + 0x8010, 0x91CF, 0x8012, 0xE3CE, 0x8015, 0x8D6B, 0x8017, 0x96D5, 0x8018, 0xE3CF, 0x8019, 0xE3D0, 0x801C, 0xE3D1, 0x8021, 0xE3D2, + 0x8028, 0xE3D3, 0x8033, 0x8EA8, 0x8036, 0x96EB, 0x803B, 0xE3D5, 0x803D, 0x925E, 0x803F, 0xE3D4, 0x8046, 0xE3D7, 0x804A, 0xE3D6, + 0x8052, 0xE3D8, 0x8056, 0x90B9, 0x8058, 0xE3D9, 0x805A, 0xE3DA, 0x805E, 0x95B7, 0x805F, 0xE3DB, 0x8061, 0x918F, 0x8062, 0xE3DC, + 0x8068, 0xE3DD, 0x806F, 0x97FC, 0x8070, 0xE3E0, 0x8072, 0xE3DF, 0x8073, 0xE3DE, 0x8074, 0x92AE, 0x8076, 0xE3E1, 0x8077, 0x9045, + 0x8079, 0xE3E2, 0x807D, 0xE3E3, 0x807E, 0x9857, 0x807F, 0xE3E4, 0x8084, 0xE3E5, 0x8085, 0xE3E7, 0x8086, 0xE3E6, 0x8087, 0x94A3, + 0x8089, 0x93F7, 0x808B, 0x985D, 0x808C, 0x94A7, 0x8093, 0xE3E9, 0x8096, 0x8FD1, 0x8098, 0x9549, 0x809A, 0xE3EA, 0x809B, 0xE3E8, + 0x809D, 0x8ACC, 0x80A1, 0x8CD2, 0x80A2, 0x8E88, 0x80A5, 0x94EC, 0x80A9, 0x8CA8, 0x80AA, 0x9662, 0x80AC, 0xE3ED, 0x80AD, 0xE3EB, + 0x80AF, 0x8D6D, 0x80B1, 0x8D6E, 0x80B2, 0x88E7, 0x80B4, 0x8DE6, 0x80BA, 0x9478, 0x80C3, 0x88DD, 0x80C4, 0xE3F2, 0x80C6, 0x925F, + 0x80CC, 0x9477, 0x80CE, 0x91D9, 0x80D6, 0xE3F4, 0x80D9, 0xE3F0, 0x80DA, 0xE3F3, 0x80DB, 0xE3EE, 0x80DD, 0xE3F1, 0x80DE, 0x9645, + 0x80E1, 0x8CD3, 0x80E4, 0x88FB, 0x80E5, 0xE3EF, 0x80EF, 0xE3F6, 0x80F1, 0xE3F7, 0x80F4, 0x93B7, 0x80F8, 0x8BB9, 0x80FC, 0xE445, + 0x80FD, 0x945C, 0x8102, 0x8E89, 0x8105, 0x8BBA, 0x8106, 0x90C6, 0x8107, 0x9865, 0x8108, 0x96AC, 0x8109, 0xE3F5, 0x810A, 0x90D2, + 0x811A, 0x8B72, 0x811B, 0xE3F8, 0x8123, 0xE3FA, 0x8129, 0xE3F9, 0x812F, 0xE3FB, 0x8131, 0x9245, 0x8133, 0x945D, 0x8139, 0x92AF, + 0x813E, 0xE442, 0x8146, 0xE441, 0x814B, 0xE3FC, 0x814E, 0x9074, 0x8150, 0x9585, 0x8151, 0xE444, 0x8153, 0xE443, 0x8154, 0x8D6F, + 0x8155, 0x9872, 0x815F, 0xE454, 0x8165, 0xE448, 0x8166, 0xE449, 0x816B, 0x8EEE, 0x816E, 0xE447, 0x8170, 0x8D98, 0x8171, 0xE446, + 0x8174, 0xE44A, 0x8178, 0x92B0, 0x8179, 0x95A0, 0x817A, 0x9142, 0x817F, 0x91DA, 0x8180, 0xE44E, 0x8182, 0xE44F, 0x8183, 0xE44B, + 0x8188, 0xE44C, 0x818A, 0xE44D, 0x818F, 0x8D70, 0x8193, 0xE455, 0x8195, 0xE451, 0x819A, 0x9586, 0x819C, 0x968C, 0x819D, 0x9547, + 0x81A0, 0xE450, 0x81A3, 0xE453, 0x81A4, 0xE452, 0x81A8, 0x9663, 0x81A9, 0xE456, 0x81B0, 0xE457, 0x81B3, 0x9156, 0x81B5, 0xE458, + 0x81B8, 0xE45A, 0x81BA, 0xE45E, 0x81BD, 0xE45B, 0x81BE, 0xE459, 0x81BF, 0x945E, 0x81C0, 0xE45C, 0x81C2, 0xE45D, 0x81C6, 0x89B0, + 0x81C8, 0xE464, 0x81C9, 0xE45F, 0x81CD, 0xE460, 0x81D1, 0xE461, 0x81D3, 0x919F, 0x81D8, 0xE463, 0x81D9, 0xE462, 0x81DA, 0xE465, + 0x81DF, 0xE466, 0x81E0, 0xE467, 0x81E3, 0x9062, 0x81E5, 0x89E7, 0x81E7, 0xE468, 0x81E8, 0x97D5, 0x81EA, 0x8EA9, 0x81ED, 0x8F4C, + 0x81F3, 0x8E8A, 0x81F4, 0x9276, 0x81FA, 0xE469, 0x81FB, 0xE46A, 0x81FC, 0x8950, 0x81FE, 0xE46B, 0x8201, 0xE46C, 0x8202, 0xE46D, + 0x8205, 0xE46E, 0x8207, 0xE46F, 0x8208, 0x8BBB, 0x8209, 0x9DA8, 0x820A, 0xE470, 0x820C, 0x90E3, 0x820D, 0xE471, 0x820E, 0x8EC9, + 0x8210, 0xE472, 0x8212, 0x98AE, 0x8216, 0xE473, 0x8217, 0x95DC, 0x8218, 0x8ADA, 0x821B, 0x9143, 0x821C, 0x8F77, 0x821E, 0x9591, + 0x821F, 0x8F4D, 0x8229, 0xE474, 0x822A, 0x8D71, 0x822B, 0xE475, 0x822C, 0x94CA, 0x822E, 0xE484, 0x8233, 0xE477, 0x8235, 0x91C7, + 0x8236, 0x9495, 0x8237, 0x8CBD, 0x8238, 0xE476, 0x8239, 0x9144, 0x8240, 0xE478, 0x8247, 0x92F8, 0x8258, 0xE47A, 0x8259, 0xE479, + 0x825A, 0xE47C, 0x825D, 0xE47B, 0x825F, 0xE47D, 0x8262, 0xE480, 0x8264, 0xE47E, 0x8266, 0x8ACD, 0x8268, 0xE481, 0x826A, 0xE482, + 0x826B, 0xE483, 0x826E, 0x8DAF, 0x826F, 0x97C7, 0x8271, 0xE485, 0x8272, 0x9046, 0x8276, 0x8990, 0x8277, 0xE486, 0x8278, 0xE487, + 0x827E, 0xE488, 0x828B, 0x88F0, 0x828D, 0xE489, 0x8292, 0xE48A, 0x8299, 0x9587, 0x829D, 0x8EC5, 0x829F, 0xE48C, 0x82A5, 0x8A48, + 0x82A6, 0x88B0, 0x82AB, 0xE48B, 0x82AC, 0xE48E, 0x82AD, 0x946D, 0x82AF, 0x9063, 0x82B1, 0x89D4, 0x82B3, 0x9646, 0x82B8, 0x8C7C, + 0x82B9, 0x8BDA, 0x82BB, 0xE48D, 0x82BD, 0x89E8, 0x82C5, 0x8AA1, 0x82D1, 0x8991, 0x82D2, 0xE492, 0x82D3, 0x97E8, 0x82D4, 0x91DB, + 0x82D7, 0x9563, 0x82D9, 0xE49E, 0x82DB, 0x89D5, 0x82DC, 0xE49C, 0x82DE, 0xE49A, 0x82DF, 0xE491, 0x82E1, 0xE48F, 0x82E3, 0xE490, + 0x82E5, 0x8EE1, 0x82E6, 0x8BEA, 0x82E7, 0x9297, 0x82EB, 0x93CF, 0x82F1, 0x8970, 0x82F3, 0xE494, 0x82F4, 0xE493, 0x82F9, 0xE499, + 0x82FA, 0xE495, 0x82FB, 0xE498, 0x8301, 0xFB93, 0x8302, 0x96CE, 0x8303, 0xE497, 0x8304, 0x89D6, 0x8305, 0x8A9D, 0x8306, 0xE49B, + 0x8309, 0xE49D, 0x830E, 0x8C73, 0x8316, 0xE4A1, 0x8317, 0xE4AA, 0x8318, 0xE4AB, 0x831C, 0x88A9, 0x8323, 0xE4B2, 0x8328, 0x88EF, + 0x832B, 0xE4A9, 0x832F, 0xE4A8, 0x8331, 0xE4A3, 0x8332, 0xE4A2, 0x8334, 0xE4A0, 0x8335, 0xE49F, 0x8336, 0x9283, 0x8338, 0x91F9, + 0x8339, 0xE4A5, 0x8340, 0xE4A4, 0x8345, 0xE4A7, 0x8349, 0x9190, 0x834A, 0x8C74, 0x834F, 0x8960, 0x8350, 0xE4A6, 0x8352, 0x8D72, + 0x8358, 0x9191, 0x8362, 0xFB94, 0x8373, 0xE4B8, 0x8375, 0xE4B9, 0x8377, 0x89D7, 0x837B, 0x89AC, 0x837C, 0xE4B6, 0x837F, 0xFB95, + 0x8385, 0xE4AC, 0x8387, 0xE4B4, 0x8389, 0xE4BB, 0x838A, 0xE4B5, 0x838E, 0xE4B3, 0x8393, 0xE496, 0x8396, 0xE4B1, 0x839A, 0xE4AD, + 0x839E, 0x8ACE, 0x839F, 0xE4AF, 0x83A0, 0xE4BA, 0x83A2, 0xE4B0, 0x83A8, 0xE4BC, 0x83AA, 0xE4AE, 0x83AB, 0x949C, 0x83B1, 0x9789, + 0x83B5, 0xE4B7, 0x83BD, 0xE4CD, 0x83C1, 0xE4C5, 0x83C5, 0x909B, 0x83C7, 0xFB96, 0x83CA, 0x8B65, 0x83CC, 0x8BDB, 0x83CE, 0xE4C0, + 0x83D3, 0x89D9, 0x83D6, 0x8FD2, 0x83D8, 0xE4C3, 0x83DC, 0x8DD8, 0x83DF, 0x9370, 0x83E0, 0xE4C8, 0x83E9, 0x95EC, 0x83EB, 0xE4BF, + 0x83EF, 0x89D8, 0x83F0, 0x8CD4, 0x83F1, 0x9548, 0x83F2, 0xE4C9, 0x83F4, 0xE4BD, 0x83F6, 0xFB97, 0x83F7, 0xE4C6, 0x83FB, 0xE4D0, + 0x83FD, 0xE4C1, 0x8403, 0xE4C2, 0x8404, 0x93B8, 0x8407, 0xE4C7, 0x840B, 0xE4C4, 0x840C, 0x9647, 0x840D, 0xE4CA, 0x840E, 0x88DE, + 0x8413, 0xE4BE, 0x8420, 0xE4CC, 0x8422, 0xE4CB, 0x8429, 0x948B, 0x842A, 0xE4D2, 0x842C, 0xE4DD, 0x8431, 0x8A9E, 0x8435, 0xE4E0, + 0x8438, 0xE4CE, 0x843C, 0xE4D3, 0x843D, 0x978E, 0x8446, 0xE4DC, 0x8448, 0xFB98, 0x8449, 0x9774, 0x844E, 0x97A8, 0x8457, 0x9298, + 0x845B, 0x8A8B, 0x8461, 0x9592, 0x8462, 0xE4E2, 0x8463, 0x939F, 0x8466, 0x88AF, 0x8469, 0xE4DB, 0x846B, 0xE4D7, 0x846C, 0x9192, + 0x846D, 0xE4D1, 0x846E, 0xE4D9, 0x846F, 0xE4DE, 0x8471, 0x944B, 0x8475, 0x88A8, 0x8477, 0xE4D6, 0x8479, 0xE4DF, 0x847A, 0x9598, + 0x8482, 0xE4DA, 0x8484, 0xE4D5, 0x848B, 0x8FD3, 0x8490, 0x8F4E, 0x8494, 0x8EAA, 0x8499, 0x96D6, 0x849C, 0x9566, 0x849F, 0xE4E5, + 0x84A1, 0xE4EE, 0x84AD, 0xE4D8, 0x84B2, 0x8A97, 0x84B4, 0xFB99, 0x84B8, 0x8FF6, 0x84B9, 0xE4E3, 0x84BB, 0xE4E8, 0x84BC, 0x9193, + 0x84BF, 0xE4E4, 0x84C1, 0xE4EB, 0x84C4, 0x927E, 0x84C6, 0xE4EC, 0x84C9, 0x9775, 0x84CA, 0xE4E1, 0x84CB, 0x8A57, 0x84CD, 0xE4E7, + 0x84D0, 0xE4EA, 0x84D1, 0x96AA, 0x84D6, 0xE4ED, 0x84D9, 0xE4E6, 0x84DA, 0xE4E9, 0x84DC, 0xFA60, 0x84EC, 0x9648, 0x84EE, 0x9840, + 0x84F4, 0xE4F1, 0x84FC, 0xE4F8, 0x84FF, 0xE4F0, 0x8500, 0x8EC1, 0x8506, 0xE4CF, 0x8511, 0x95CC, 0x8513, 0x96A0, 0x8514, 0xE4F7, + 0x8515, 0xE4F6, 0x8517, 0xE4F2, 0x8518, 0xE4F3, 0x851A, 0x8955, 0x851F, 0xE4F5, 0x8521, 0xE4EF, 0x8526, 0x92D3, 0x852C, 0xE4F4, + 0x852D, 0x88FC, 0x8535, 0x91A0, 0x853D, 0x95C1, 0x8540, 0xE4F9, 0x8541, 0xE540, 0x8543, 0x94D7, 0x8548, 0xE4FC, 0x8549, 0x8FD4, + 0x854A, 0x8EC7, 0x854B, 0xE542, 0x854E, 0x8BBC, 0x8553, 0xFB9A, 0x8555, 0xE543, 0x8557, 0x9599, 0x8558, 0xE4FB, 0x8559, 0xFB9B, + 0x855A, 0xE4D4, 0x8563, 0xE4FA, 0x8568, 0x986E, 0x8569, 0x93A0, 0x856A, 0x9593, 0x856B, 0xFB9C, 0x856D, 0xE54A, 0x8577, 0xE550, + 0x857E, 0xE551, 0x8580, 0xE544, 0x8584, 0x9496, 0x8587, 0xE54E, 0x8588, 0xE546, 0x858A, 0xE548, 0x8590, 0xE552, 0x8591, 0xE547, + 0x8594, 0xE54B, 0x8597, 0x8992, 0x8599, 0x93E3, 0x859B, 0xE54C, 0x859C, 0xE54F, 0x85A4, 0xE545, 0x85A6, 0x9145, 0x85A8, 0xE549, + 0x85A9, 0x8E46, 0x85AA, 0x9064, 0x85AB, 0x8C4F, 0x85AC, 0x96F2, 0x85AE, 0x96F7, 0x85AF, 0x8F92, 0x85B0, 0xFB9E, 0x85B9, 0xE556, + 0x85BA, 0xE554, 0x85C1, 0x986D, 0x85C9, 0xE553, 0x85CD, 0x9795, 0x85CF, 0xE555, 0x85D0, 0xE557, 0x85D5, 0xE558, 0x85DC, 0xE55B, + 0x85DD, 0xE559, 0x85E4, 0x93A1, 0x85E5, 0xE55A, 0x85E9, 0x94CB, 0x85EA, 0xE54D, 0x85F7, 0x8F93, 0x85F9, 0xE55C, 0x85FA, 0xE561, + 0x85FB, 0x9194, 0x85FE, 0xE560, 0x8602, 0xE541, 0x8606, 0xE562, 0x8607, 0x9168, 0x860A, 0xE55D, 0x860B, 0xE55F, 0x8613, 0xE55E, + 0x8616, 0x9F50, 0x8617, 0x9F41, 0x861A, 0xE564, 0x8622, 0xE563, 0x862D, 0x9796, 0x862F, 0xE1BA, 0x8630, 0xE565, 0x863F, 0xE566, + 0x864D, 0xE567, 0x864E, 0x8CD5, 0x8650, 0x8B73, 0x8654, 0xE569, 0x8655, 0x997C, 0x865A, 0x8B95, 0x865C, 0x97B8, 0x865E, 0x8BF1, + 0x865F, 0xE56A, 0x8667, 0xE56B, 0x866B, 0x928E, 0x8671, 0xE56C, 0x8679, 0x93F8, 0x867B, 0x88B8, 0x868A, 0x89E1, 0x868B, 0xE571, + 0x868C, 0xE572, 0x8693, 0xE56D, 0x8695, 0x8E5C, 0x86A3, 0xE56E, 0x86A4, 0x9461, 0x86A9, 0xE56F, 0x86AA, 0xE570, 0x86AB, 0xE57A, + 0x86AF, 0xE574, 0x86B0, 0xE577, 0x86B6, 0xE573, 0x86C4, 0xE575, 0x86C6, 0xE576, 0x86C7, 0x8ED6, 0x86C9, 0xE578, 0x86CB, 0x9260, + 0x86CD, 0x8C75, 0x86CE, 0x8A61, 0x86D4, 0xE57B, 0x86D9, 0x8A5E, 0x86DB, 0xE581, 0x86DE, 0xE57C, 0x86DF, 0xE580, 0x86E4, 0x94B8, + 0x86E9, 0xE57D, 0x86EC, 0xE57E, 0x86ED, 0x9567, 0x86EE, 0x94D8, 0x86EF, 0xE582, 0x86F8, 0x91FB, 0x86F9, 0xE58C, 0x86FB, 0xE588, + 0x86FE, 0x89E9, 0x8700, 0xE586, 0x8702, 0x9649, 0x8703, 0xE587, 0x8706, 0xE584, 0x8708, 0xE585, 0x8709, 0xE58A, 0x870A, 0xE58D, + 0x870D, 0xE58B, 0x8711, 0xE589, 0x8712, 0xE583, 0x8718, 0x9277, 0x871A, 0xE594, 0x871C, 0x96A8, 0x8725, 0xE592, 0x8729, 0xE593, + 0x8734, 0xE58E, 0x8737, 0xE590, 0x873B, 0xE591, 0x873F, 0xE58F, 0x8749, 0x90E4, 0x874B, 0x9858, 0x874C, 0xE598, 0x874E, 0xE599, + 0x8753, 0xE59F, 0x8755, 0x9049, 0x8757, 0xE59B, 0x8759, 0xE59E, 0x875F, 0xE596, 0x8760, 0xE595, 0x8763, 0xE5A0, 0x8766, 0x89DA, + 0x8768, 0xE59C, 0x876A, 0xE5A1, 0x876E, 0xE59D, 0x8774, 0xE59A, 0x8776, 0x92B1, 0x8778, 0xE597, 0x877F, 0x9488, 0x8782, 0xE5A5, + 0x878D, 0x975A, 0x879F, 0xE5A4, 0x87A2, 0xE5A3, 0x87AB, 0xE5AC, 0x87AF, 0xE5A6, 0x87B3, 0xE5AE, 0x87BA, 0x9786, 0x87BB, 0xE5B1, + 0x87BD, 0xE5A8, 0x87C0, 0xE5A9, 0x87C4, 0xE5AD, 0x87C6, 0xE5B0, 0x87C7, 0xE5AF, 0x87CB, 0xE5A7, 0x87D0, 0xE5AA, 0x87D2, 0xE5BB, + 0x87E0, 0xE5B4, 0x87EF, 0xE5B2, 0x87F2, 0xE5B3, 0x87F6, 0xE5B8, 0x87F7, 0xE5B9, 0x87F9, 0x8A49, 0x87FB, 0x8B61, 0x87FE, 0xE5B7, + 0x8805, 0xE5A2, 0x8807, 0xFBA1, 0x880D, 0xE5B6, 0x880E, 0xE5BA, 0x880F, 0xE5B5, 0x8811, 0xE5BC, 0x8815, 0xE5BE, 0x8816, 0xE5BD, + 0x8821, 0xE5C0, 0x8822, 0xE5BF, 0x8823, 0xE579, 0x8827, 0xE5C4, 0x8831, 0xE5C1, 0x8836, 0xE5C2, 0x8839, 0xE5C3, 0x883B, 0xE5C5, + 0x8840, 0x8C8C, 0x8842, 0xE5C7, 0x8844, 0xE5C6, 0x8846, 0x8F4F, 0x884C, 0x8D73, 0x884D, 0x9FA5, 0x8852, 0xE5C8, 0x8853, 0x8F70, + 0x8857, 0x8A58, 0x8859, 0xE5C9, 0x885B, 0x8971, 0x885D, 0x8FD5, 0x885E, 0xE5CA, 0x8861, 0x8D74, 0x8862, 0xE5CB, 0x8863, 0x88DF, + 0x8868, 0x955C, 0x886B, 0xE5CC, 0x8870, 0x908A, 0x8872, 0xE5D3, 0x8875, 0xE5D0, 0x8877, 0x928F, 0x887D, 0xE5D1, 0x887E, 0xE5CE, + 0x887F, 0x8BDC, 0x8881, 0xE5CD, 0x8882, 0xE5D4, 0x8888, 0x8C55, 0x888B, 0x91DC, 0x888D, 0xE5DA, 0x8892, 0xE5D6, 0x8896, 0x91B3, + 0x8897, 0xE5D5, 0x8899, 0xE5D8, 0x889E, 0xE5CF, 0x88A2, 0xE5D9, 0x88A4, 0xE5DB, 0x88AB, 0x94ED, 0x88AE, 0xE5D7, 0x88B0, 0xE5DC, + 0x88B1, 0xE5DE, 0x88B4, 0x8CD1, 0x88B5, 0xE5D2, 0x88B7, 0x88BF, 0x88BF, 0xE5DD, 0x88C1, 0x8DD9, 0x88C2, 0x97F4, 0x88C3, 0xE5DF, + 0x88C4, 0xE5E0, 0x88C5, 0x9195, 0x88CF, 0x97A0, 0x88D4, 0xE5E1, 0x88D5, 0x9754, 0x88D8, 0xE5E2, 0x88D9, 0xE5E3, 0x88DC, 0x95E2, + 0x88DD, 0xE5E4, 0x88DF, 0x8DBE, 0x88E1, 0x97A1, 0x88E8, 0xE5E9, 0x88F2, 0xE5EA, 0x88F3, 0x8FD6, 0x88F4, 0xE5E8, 0x88F5, 0xFBA2, + 0x88F8, 0x9787, 0x88F9, 0xE5E5, 0x88FC, 0xE5E7, 0x88FD, 0x90BB, 0x88FE, 0x909E, 0x8902, 0xE5E6, 0x8904, 0xE5EB, 0x8907, 0x95A1, + 0x890A, 0xE5ED, 0x890C, 0xE5EC, 0x8910, 0x8A8C, 0x8912, 0x964A, 0x8913, 0xE5EE, 0x891C, 0xFA5D, 0x891D, 0xE5FA, 0x891E, 0xE5F0, + 0x8925, 0xE5F1, 0x892A, 0xE5F2, 0x892B, 0xE5F3, 0x8936, 0xE5F7, 0x8938, 0xE5F8, 0x893B, 0xE5F6, 0x8941, 0xE5F4, 0x8943, 0xE5EF, + 0x8944, 0xE5F5, 0x894C, 0xE5F9, 0x894D, 0xE8B5, 0x8956, 0x89A6, 0x895E, 0xE5FC, 0x895F, 0x8BDD, 0x8960, 0xE5FB, 0x8964, 0xE641, + 0x8966, 0xE640, 0x896A, 0xE643, 0x896D, 0xE642, 0x896F, 0xE644, 0x8972, 0x8F50, 0x8974, 0xE645, 0x8977, 0xE646, 0x897E, 0xE647, + 0x897F, 0x90BC, 0x8981, 0x9776, 0x8983, 0xE648, 0x8986, 0x95A2, 0x8987, 0x9465, 0x8988, 0xE649, 0x898A, 0xE64A, 0x898B, 0x8CA9, + 0x898F, 0x8B4B, 0x8993, 0xE64B, 0x8996, 0x8E8B, 0x8997, 0x9460, 0x8998, 0xE64C, 0x899A, 0x8A6F, 0x89A1, 0xE64D, 0x89A6, 0xE64F, + 0x89A7, 0x9797, 0x89A9, 0xE64E, 0x89AA, 0x9065, 0x89AC, 0xE650, 0x89AF, 0xE651, 0x89B2, 0xE652, 0x89B3, 0x8ACF, 0x89BA, 0xE653, + 0x89BD, 0xE654, 0x89BF, 0xE655, 0x89C0, 0xE656, 0x89D2, 0x8A70, 0x89DA, 0xE657, 0x89DC, 0xE658, 0x89DD, 0xE659, 0x89E3, 0x89F0, + 0x89E6, 0x9047, 0x89E7, 0xE65A, 0x89F4, 0xE65B, 0x89F8, 0xE65C, 0x8A00, 0x8CBE, 0x8A02, 0x92F9, 0x8A03, 0xE65D, 0x8A08, 0x8C76, + 0x8A0A, 0x9075, 0x8A0C, 0xE660, 0x8A0E, 0x93A2, 0x8A10, 0xE65F, 0x8A12, 0xFBA3, 0x8A13, 0x8C50, 0x8A16, 0xE65E, 0x8A17, 0x91F5, + 0x8A18, 0x8B4C, 0x8A1B, 0xE661, 0x8A1D, 0xE662, 0x8A1F, 0x8FD7, 0x8A23, 0x8C8D, 0x8A25, 0xE663, 0x8A2A, 0x964B, 0x8A2D, 0x90DD, + 0x8A31, 0x8B96, 0x8A33, 0x96F3, 0x8A34, 0x9169, 0x8A36, 0xE664, 0x8A37, 0xFBA4, 0x8A3A, 0x9066, 0x8A3B, 0x9290, 0x8A3C, 0x8FD8, + 0x8A41, 0xE665, 0x8A46, 0xE668, 0x8A48, 0xE669, 0x8A50, 0x8DBC, 0x8A51, 0x91C0, 0x8A52, 0xE667, 0x8A54, 0x8FD9, 0x8A55, 0x955D, + 0x8A5B, 0xE666, 0x8A5E, 0x8E8C, 0x8A60, 0x8972, 0x8A62, 0xE66D, 0x8A63, 0x8C77, 0x8A66, 0x8E8E, 0x8A69, 0x8E8D, 0x8A6B, 0x986C, + 0x8A6C, 0xE66C, 0x8A6D, 0xE66B, 0x8A6E, 0x9146, 0x8A70, 0x8B6C, 0x8A71, 0x9862, 0x8A72, 0x8A59, 0x8A73, 0x8FDA, 0x8A79, 0xFBA5, + 0x8A7C, 0xE66A, 0x8A82, 0xE66F, 0x8A84, 0xE670, 0x8A85, 0xE66E, 0x8A87, 0x8CD6, 0x8A89, 0x975F, 0x8A8C, 0x8E8F, 0x8A8D, 0x9446, + 0x8A91, 0xE673, 0x8A93, 0x90BE, 0x8A95, 0x9261, 0x8A98, 0x9755, 0x8A9A, 0xE676, 0x8A9E, 0x8CEA, 0x8AA0, 0x90BD, 0x8AA1, 0xE672, + 0x8AA3, 0xE677, 0x8AA4, 0x8CEB, 0x8AA5, 0xE674, 0x8AA6, 0xE675, 0x8AA7, 0xFBA6, 0x8AA8, 0xE671, 0x8AAC, 0x90E0, 0x8AAD, 0x93C7, + 0x8AB0, 0x924E, 0x8AB2, 0x89DB, 0x8AB9, 0x94EE, 0x8ABC, 0x8B62, 0x8ABE, 0xFBA7, 0x8ABF, 0x92B2, 0x8AC2, 0xE67A, 0x8AC4, 0xE678, + 0x8AC7, 0x926B, 0x8ACB, 0x90BF, 0x8ACC, 0x8AD0, 0x8ACD, 0xE679, 0x8ACF, 0x907A, 0x8AD2, 0x97C8, 0x8AD6, 0x985F, 0x8ADA, 0xE67B, + 0x8ADB, 0xE687, 0x8ADC, 0x92B3, 0x8ADE, 0xE686, 0x8ADF, 0xFBA8, 0x8AE0, 0xE683, 0x8AE1, 0xE68B, 0x8AE2, 0xE684, 0x8AE4, 0xE680, + 0x8AE6, 0x92FA, 0x8AE7, 0xE67E, 0x8AEB, 0xE67C, 0x8AED, 0x9740, 0x8AEE, 0x8E90, 0x8AF1, 0xE681, 0x8AF3, 0xE67D, 0x8AF6, 0xFBAA, + 0x8AF7, 0xE685, 0x8AF8, 0x8F94, 0x8AFA, 0x8CBF, 0x8AFE, 0x91F8, 0x8B00, 0x9664, 0x8B01, 0x8979, 0x8B02, 0x88E0, 0x8B04, 0x93A3, + 0x8B07, 0xE689, 0x8B0C, 0xE688, 0x8B0E, 0x93E4, 0x8B10, 0xE68D, 0x8B14, 0xE682, 0x8B16, 0xE68C, 0x8B17, 0xE68E, 0x8B19, 0x8CAA, + 0x8B1A, 0xE68A, 0x8B1B, 0x8D75, 0x8B1D, 0x8ED3, 0x8B20, 0xE68F, 0x8B21, 0x9777, 0x8B26, 0xE692, 0x8B28, 0xE695, 0x8B2B, 0xE693, + 0x8B2C, 0x9554, 0x8B33, 0xE690, 0x8B39, 0x8BDE, 0x8B3E, 0xE694, 0x8B41, 0xE696, 0x8B49, 0xE69A, 0x8B4C, 0xE697, 0x8B4E, 0xE699, + 0x8B4F, 0xE698, 0x8B53, 0xFBAB, 0x8B56, 0xE69B, 0x8B58, 0x8EAF, 0x8B5A, 0xE69D, 0x8B5B, 0xE69C, 0x8B5C, 0x9588, 0x8B5F, 0xE69F, + 0x8B66, 0x8C78, 0x8B6B, 0xE69E, 0x8B6C, 0xE6A0, 0x8B6F, 0xE6A1, 0x8B70, 0x8B63, 0x8B71, 0xE3BF, 0x8B72, 0x8FF7, 0x8B74, 0xE6A2, + 0x8B77, 0x8CEC, 0x8B7D, 0xE6A3, 0x8B7F, 0xFBAC, 0x8B80, 0xE6A4, 0x8B83, 0x8E5D, 0x8B8A, 0x9DCC, 0x8B8C, 0xE6A5, 0x8B8E, 0xE6A6, + 0x8B90, 0x8F51, 0x8B92, 0xE6A7, 0x8B93, 0xE6A8, 0x8B96, 0xE6A9, 0x8B99, 0xE6AA, 0x8B9A, 0xE6AB, 0x8C37, 0x924A, 0x8C3A, 0xE6AC, + 0x8C3F, 0xE6AE, 0x8C41, 0xE6AD, 0x8C46, 0x93A4, 0x8C48, 0xE6AF, 0x8C4A, 0x964C, 0x8C4C, 0xE6B0, 0x8C4E, 0xE6B1, 0x8C50, 0xE6B2, + 0x8C55, 0xE6B3, 0x8C5A, 0x93D8, 0x8C61, 0x8FDB, 0x8C62, 0xE6B4, 0x8C6A, 0x8D8B, 0x8C6B, 0x98AC, 0x8C6C, 0xE6B5, 0x8C78, 0xE6B6, + 0x8C79, 0x955E, 0x8C7A, 0xE6B7, 0x8C7C, 0xE6BF, 0x8C82, 0xE6B8, 0x8C85, 0xE6BA, 0x8C89, 0xE6B9, 0x8C8A, 0xE6BB, 0x8C8C, 0x9665, + 0x8C8D, 0xE6BC, 0x8C8E, 0xE6BD, 0x8C94, 0xE6BE, 0x8C98, 0xE6C0, 0x8C9D, 0x8A4C, 0x8C9E, 0x92E5, 0x8CA0, 0x9589, 0x8CA1, 0x8DE0, + 0x8CA2, 0x8D76, 0x8CA7, 0x956E, 0x8CA8, 0x89DD, 0x8CA9, 0x94CC, 0x8CAA, 0xE6C3, 0x8CAB, 0x8AD1, 0x8CAC, 0x90D3, 0x8CAD, 0xE6C2, + 0x8CAE, 0xE6C7, 0x8CAF, 0x9299, 0x8CB0, 0x96E1, 0x8CB2, 0xE6C5, 0x8CB3, 0xE6C6, 0x8CB4, 0x8B4D, 0x8CB6, 0xE6C8, 0x8CB7, 0x9483, + 0x8CB8, 0x91DD, 0x8CBB, 0x94EF, 0x8CBC, 0x935C, 0x8CBD, 0xE6C4, 0x8CBF, 0x9666, 0x8CC0, 0x89EA, 0x8CC1, 0xE6CA, 0x8CC2, 0x9847, + 0x8CC3, 0x92C0, 0x8CC4, 0x9864, 0x8CC7, 0x8E91, 0x8CC8, 0xE6C9, 0x8CCA, 0x91AF, 0x8CCD, 0xE6DA, 0x8CCE, 0x9147, 0x8CD1, 0x93F6, + 0x8CD3, 0x956F, 0x8CDA, 0xE6CD, 0x8CDB, 0x8E5E, 0x8CDC, 0x8E92, 0x8CDE, 0x8FDC, 0x8CE0, 0x9485, 0x8CE2, 0x8CAB, 0x8CE3, 0xE6CC, + 0x8CE4, 0xE6CB, 0x8CE6, 0x958A, 0x8CEA, 0x8EBF, 0x8CED, 0x9371, 0x8CF0, 0xFBAD, 0x8CF4, 0xFBAE, 0x8CFA, 0xE6CF, 0x8CFB, 0xE6D0, + 0x8CFC, 0x8D77, 0x8CFD, 0xE6CE, 0x8D04, 0xE6D1, 0x8D05, 0xE6D2, 0x8D07, 0xE6D4, 0x8D08, 0x91A1, 0x8D0A, 0xE6D3, 0x8D0B, 0x8AE4, + 0x8D0D, 0xE6D6, 0x8D0F, 0xE6D5, 0x8D10, 0xE6D7, 0x8D12, 0xFBAF, 0x8D13, 0xE6D9, 0x8D14, 0xE6DB, 0x8D16, 0xE6DC, 0x8D64, 0x90D4, + 0x8D66, 0x8ECD, 0x8D67, 0xE6DD, 0x8D6B, 0x8A71, 0x8D6D, 0xE6DE, 0x8D70, 0x9196, 0x8D71, 0xE6DF, 0x8D73, 0xE6E0, 0x8D74, 0x958B, + 0x8D76, 0xFBB0, 0x8D77, 0x8B4E, 0x8D81, 0xE6E1, 0x8D85, 0x92B4, 0x8D8A, 0x897A, 0x8D99, 0xE6E2, 0x8DA3, 0x8EEF, 0x8DA8, 0x9096, + 0x8DB3, 0x91AB, 0x8DBA, 0xE6E5, 0x8DBE, 0xE6E4, 0x8DC2, 0xE6E3, 0x8DCB, 0xE6EB, 0x8DCC, 0xE6E9, 0x8DCF, 0xE6E6, 0x8DD6, 0xE6E8, + 0x8DDA, 0xE6E7, 0x8DDB, 0xE6EA, 0x8DDD, 0x8B97, 0x8DDF, 0xE6EE, 0x8DE1, 0x90D5, 0x8DE3, 0xE6EF, 0x8DE8, 0x8CD7, 0x8DEA, 0xE6EC, + 0x8DEB, 0xE6ED, 0x8DEF, 0x9848, 0x8DF3, 0x92B5, 0x8DF5, 0x9148, 0x8DFC, 0xE6F0, 0x8DFF, 0xE6F3, 0x8E08, 0xE6F1, 0x8E09, 0xE6F2, + 0x8E0A, 0x9778, 0x8E0F, 0x93A5, 0x8E10, 0xE6F6, 0x8E1D, 0xE6F4, 0x8E1E, 0xE6F5, 0x8E1F, 0xE6F7, 0x8E2A, 0xE748, 0x8E30, 0xE6FA, + 0x8E34, 0xE6FB, 0x8E35, 0xE6F9, 0x8E42, 0xE6F8, 0x8E44, 0x92FB, 0x8E47, 0xE740, 0x8E48, 0xE744, 0x8E49, 0xE741, 0x8E4A, 0xE6FC, + 0x8E4C, 0xE742, 0x8E50, 0xE743, 0x8E55, 0xE74A, 0x8E59, 0xE745, 0x8E5F, 0x90D6, 0x8E60, 0xE747, 0x8E63, 0xE749, 0x8E64, 0xE746, + 0x8E72, 0xE74C, 0x8E74, 0x8F52, 0x8E76, 0xE74B, 0x8E7C, 0xE74D, 0x8E81, 0xE74E, 0x8E84, 0xE751, 0x8E85, 0xE750, 0x8E87, 0xE74F, + 0x8E8A, 0xE753, 0x8E8B, 0xE752, 0x8E8D, 0x96F4, 0x8E91, 0xE755, 0x8E93, 0xE754, 0x8E94, 0xE756, 0x8E99, 0xE757, 0x8EA1, 0xE759, + 0x8EAA, 0xE758, 0x8EAB, 0x9067, 0x8EAC, 0xE75A, 0x8EAF, 0x8BEB, 0x8EB0, 0xE75B, 0x8EB1, 0xE75D, 0x8EBE, 0xE75E, 0x8EC5, 0xE75F, + 0x8EC6, 0xE75C, 0x8EC8, 0xE760, 0x8ECA, 0x8ED4, 0x8ECB, 0xE761, 0x8ECC, 0x8B4F, 0x8ECD, 0x8C52, 0x8ECF, 0xFBB2, 0x8ED2, 0x8CAC, + 0x8EDB, 0xE762, 0x8EDF, 0x93EE, 0x8EE2, 0x935D, 0x8EE3, 0xE763, 0x8EEB, 0xE766, 0x8EF8, 0x8EB2, 0x8EFB, 0xE765, 0x8EFC, 0xE764, + 0x8EFD, 0x8C79, 0x8EFE, 0xE767, 0x8F03, 0x8A72, 0x8F05, 0xE769, 0x8F09, 0x8DDA, 0x8F0A, 0xE768, 0x8F0C, 0xE771, 0x8F12, 0xE76B, + 0x8F13, 0xE76D, 0x8F14, 0x95E3, 0x8F15, 0xE76A, 0x8F19, 0xE76C, 0x8F1B, 0xE770, 0x8F1C, 0xE76E, 0x8F1D, 0x8B50, 0x8F1F, 0xE76F, + 0x8F26, 0xE772, 0x8F29, 0x9479, 0x8F2A, 0x97D6, 0x8F2F, 0x8F53, 0x8F33, 0xE773, 0x8F38, 0x9741, 0x8F39, 0xE775, 0x8F3B, 0xE774, + 0x8F3E, 0xE778, 0x8F3F, 0x9760, 0x8F42, 0xE777, 0x8F44, 0x8A8D, 0x8F45, 0xE776, 0x8F46, 0xE77B, 0x8F49, 0xE77A, 0x8F4C, 0xE779, + 0x8F4D, 0x9351, 0x8F4E, 0xE77C, 0x8F57, 0xE77D, 0x8F5C, 0xE77E, 0x8F5F, 0x8D8C, 0x8F61, 0x8C44, 0x8F62, 0xE780, 0x8F63, 0xE781, + 0x8F64, 0xE782, 0x8F9B, 0x9068, 0x8F9C, 0xE783, 0x8F9E, 0x8EAB, 0x8F9F, 0xE784, 0x8FA3, 0xE785, 0x8FA7, 0x999F, 0x8FA8, 0x999E, + 0x8FAD, 0xE786, 0x8FAE, 0xE390, 0x8FAF, 0xE787, 0x8FB0, 0x9243, 0x8FB1, 0x904A, 0x8FB2, 0x945F, 0x8FB7, 0xE788, 0x8FBA, 0x95D3, + 0x8FBB, 0x92D2, 0x8FBC, 0x8D9E, 0x8FBF, 0x9248, 0x8FC2, 0x8949, 0x8FC4, 0x9698, 0x8FC5, 0x9076, 0x8FCE, 0x8C7D, 0x8FD1, 0x8BDF, + 0x8FD4, 0x95D4, 0x8FDA, 0xE789, 0x8FE2, 0xE78B, 0x8FE5, 0xE78A, 0x8FE6, 0x89DE, 0x8FE9, 0x93F4, 0x8FEA, 0xE78C, 0x8FEB, 0x9497, + 0x8FED, 0x9352, 0x8FEF, 0xE78D, 0x8FF0, 0x8F71, 0x8FF4, 0xE78F, 0x8FF7, 0x96C0, 0x8FF8, 0xE79E, 0x8FF9, 0xE791, 0x8FFA, 0xE792, + 0x8FFD, 0x92C7, 0x9000, 0x91DE, 0x9001, 0x9197, 0x9003, 0x93A6, 0x9005, 0xE790, 0x9006, 0x8B74, 0x900B, 0xE799, 0x900D, 0xE796, + 0x900E, 0xE7A3, 0x900F, 0x93A7, 0x9010, 0x9280, 0x9011, 0xE793, 0x9013, 0x92FC, 0x9014, 0x9372, 0x9015, 0xE794, 0x9016, 0xE798, + 0x9017, 0x9080, 0x9019, 0x9487, 0x901A, 0x92CA, 0x901D, 0x90C0, 0x901E, 0xE797, 0x901F, 0x91AC, 0x9020, 0x91A2, 0x9021, 0xE795, + 0x9022, 0x88A7, 0x9023, 0x9841, 0x9027, 0xE79A, 0x902E, 0x91DF, 0x9031, 0x8F54, 0x9032, 0x9069, 0x9035, 0xE79C, 0x9036, 0xE79B, + 0x9038, 0x88ED, 0x9039, 0xE79D, 0x903C, 0x954E, 0x903E, 0xE7A5, 0x9041, 0x93D9, 0x9042, 0x908B, 0x9045, 0x9278, 0x9047, 0x8BF6, + 0x9049, 0xE7A4, 0x904A, 0x9756, 0x904B, 0x895E, 0x904D, 0x95D5, 0x904E, 0x89DF, 0x904F, 0xE79F, 0x9050, 0xE7A0, 0x9051, 0xE7A1, + 0x9052, 0xE7A2, 0x9053, 0x93B9, 0x9054, 0x9242, 0x9055, 0x88E1, 0x9056, 0xE7A6, 0x9058, 0xE7A7, 0x9059, 0xEAA1, 0x905C, 0x91BB, + 0x905E, 0xE7A8, 0x9060, 0x8993, 0x9061, 0x916B, 0x9063, 0x8CAD, 0x9065, 0x9779, 0x9067, 0xFBB5, 0x9068, 0xE7A9, 0x9069, 0x934B, + 0x906D, 0x9198, 0x906E, 0x8ED5, 0x906F, 0xE7AA, 0x9072, 0xE7AD, 0x9075, 0x8F85, 0x9076, 0xE7AB, 0x9077, 0x914A, 0x9078, 0x9149, + 0x907A, 0x88E2, 0x907C, 0x97C9, 0x907D, 0xE7AF, 0x907F, 0x94F0, 0x9080, 0xE7B1, 0x9081, 0xE7B0, 0x9082, 0xE7AE, 0x9083, 0xE284, + 0x9084, 0x8AD2, 0x9087, 0xE78E, 0x9089, 0xE7B3, 0x908A, 0xE7B2, 0x908F, 0xE7B4, 0x9091, 0x9757, 0x90A3, 0x93DF, 0x90A6, 0x964D, + 0x90A8, 0xE7B5, 0x90AA, 0x8ED7, 0x90AF, 0xE7B6, 0x90B1, 0xE7B7, 0x90B5, 0xE7B8, 0x90B8, 0x9340, 0x90C1, 0x88E8, 0x90CA, 0x8D78, + 0x90CE, 0x9859, 0x90DB, 0xE7BC, 0x90DE, 0xFBB6, 0x90E1, 0x8C53, 0x90E2, 0xE7B9, 0x90E4, 0xE7BA, 0x90E8, 0x9594, 0x90ED, 0x8A73, + 0x90F5, 0x9758, 0x90F7, 0x8BBD, 0x90FD, 0x9373, 0x9102, 0xE7BD, 0x9112, 0xE7BE, 0x9115, 0xFBB8, 0x9119, 0xE7BF, 0x9127, 0xFBB9, + 0x912D, 0x9341, 0x9130, 0xE7C1, 0x9132, 0xE7C0, 0x9149, 0x93D1, 0x914A, 0xE7C2, 0x914B, 0x8F55, 0x914C, 0x8EDE, 0x914D, 0x947A, + 0x914E, 0x9291, 0x9152, 0x8EF0, 0x9154, 0x908C, 0x9156, 0xE7C3, 0x9158, 0xE7C4, 0x9162, 0x907C, 0x9163, 0xE7C5, 0x9165, 0xE7C6, + 0x9169, 0xE7C7, 0x916A, 0x978F, 0x916C, 0x8F56, 0x9172, 0xE7C9, 0x9173, 0xE7C8, 0x9175, 0x8D79, 0x9177, 0x8D93, 0x9178, 0x8E5F, + 0x9182, 0xE7CC, 0x9187, 0x8F86, 0x9189, 0xE7CB, 0x918B, 0xE7CA, 0x918D, 0x91E7, 0x9190, 0x8CED, 0x9192, 0x90C1, 0x9197, 0x94AE, + 0x919C, 0x8F58, 0x91A2, 0xE7CD, 0x91A4, 0x8FDD, 0x91AA, 0xE7D0, 0x91AB, 0xE7CE, 0x91AF, 0xE7CF, 0x91B4, 0xE7D2, 0x91B5, 0xE7D1, + 0x91B8, 0x8FF8, 0x91BA, 0xE7D3, 0x91C0, 0xE7D4, 0x91C1, 0xE7D5, 0x91C6, 0x94CE, 0x91C7, 0x8DD1, 0x91C8, 0x8EDF, 0x91C9, 0xE7D6, + 0x91CB, 0xE7D7, 0x91CC, 0x97A2, 0x91CD, 0x8F64, 0x91CE, 0x96EC, 0x91CF, 0x97CA, 0x91D0, 0xE7D8, 0x91D1, 0x8BE0, 0x91D6, 0xE7D9, + 0x91D7, 0xFBBB, 0x91D8, 0x9342, 0x91DA, 0xFBBA, 0x91DB, 0xE7DC, 0x91DC, 0x8A98, 0x91DD, 0x906A, 0x91DE, 0xFBBC, 0x91DF, 0xE7DA, + 0x91E1, 0xE7DB, 0x91E3, 0x92DE, 0x91E4, 0xFBBF, 0x91E5, 0xFBC0, 0x91E6, 0x9674, 0x91E7, 0x8BFA, 0x91ED, 0xFBBD, 0x91EE, 0xFBBE, + 0x91F5, 0xE7DE, 0x91F6, 0xE7DF, 0x91FC, 0xE7DD, 0x91FF, 0xE7E1, 0x9206, 0xFBC1, 0x920A, 0xFBC3, 0x920D, 0x93DD, 0x920E, 0x8A62, + 0x9210, 0xFBC2, 0x9211, 0xE7E5, 0x9214, 0xE7E2, 0x9215, 0xE7E4, 0x921E, 0xE7E0, 0x9229, 0xE86E, 0x922C, 0xE7E3, 0x9234, 0x97E9, + 0x9237, 0x8CD8, 0x9239, 0xFBCA, 0x923A, 0xFBC4, 0x923C, 0xFBC6, 0x923F, 0xE7ED, 0x9240, 0xFBC5, 0x9244, 0x9353, 0x9245, 0xE7E8, + 0x9248, 0xE7EB, 0x9249, 0xE7E9, 0x924B, 0xE7EE, 0x924E, 0xFBC7, 0x9250, 0xE7EF, 0x9251, 0xFBC9, 0x9257, 0xE7E7, 0x9259, 0xFBC8, + 0x925A, 0xE7F4, 0x925B, 0x8994, 0x925E, 0xE7E6, 0x9262, 0x94AB, 0x9264, 0xE7EA, 0x9266, 0x8FDE, 0x9267, 0xFBCB, 0x9271, 0x8D7A, + 0x9277, 0xFBCD, 0x9278, 0xFBCE, 0x927E, 0x9667, 0x9280, 0x8BE2, 0x9283, 0x8F65, 0x9285, 0x93BA, 0x9288, 0xFA5F, 0x9291, 0x914C, + 0x9293, 0xE7F2, 0x9295, 0xE7EC, 0x9296, 0xE7F1, 0x9298, 0x96C1, 0x929A, 0x92B6, 0x929B, 0xE7F3, 0x929C, 0xE7F0, 0x92A7, 0xFBCC, + 0x92AD, 0x914B, 0x92B7, 0xE7F7, 0x92B9, 0xE7F6, 0x92CF, 0xE7F5, 0x92D0, 0xFBD2, 0x92D2, 0x964E, 0x92D3, 0xFBD6, 0x92D5, 0xFBD4, + 0x92D7, 0xFBD0, 0x92D9, 0xFBD1, 0x92E0, 0xFBD5, 0x92E4, 0x8F9B, 0x92E7, 0xFBCF, 0x92E9, 0xE7F8, 0x92EA, 0x95DD, 0x92ED, 0x8973, + 0x92F2, 0x9565, 0x92F3, 0x9292, 0x92F8, 0x8B98, 0x92F9, 0xFA65, 0x92FA, 0xE7FA, 0x92FB, 0xFBD9, 0x92FC, 0x8D7C, 0x92FF, 0xFBDC, + 0x9302, 0xFBDE, 0x9306, 0x8E4B, 0x930F, 0xE7F9, 0x9310, 0x908D, 0x9318, 0x908E, 0x9319, 0xE840, 0x931A, 0xE842, 0x931D, 0xFBDD, + 0x931E, 0xFBDB, 0x9320, 0x8FF9, 0x9321, 0xFBD8, 0x9322, 0xE841, 0x9323, 0xE843, 0x9325, 0xFBD7, 0x9326, 0x8BD1, 0x9328, 0x9564, + 0x932B, 0x8EE0, 0x932C, 0x9842, 0x932E, 0xE7FC, 0x932F, 0x8DF6, 0x9332, 0x985E, 0x9335, 0xE845, 0x933A, 0xE844, 0x933B, 0xE846, + 0x9344, 0xE7FB, 0x9348, 0xFA5E, 0x934B, 0x93E7, 0x934D, 0x9374, 0x9354, 0x92D5, 0x9356, 0xE84B, 0x9357, 0xFBE0, 0x935B, 0x9262, + 0x935C, 0xE847, 0x9360, 0xE848, 0x936C, 0x8C4C, 0x936E, 0xE84A, 0x9370, 0xFBDF, 0x9375, 0x8CAE, 0x937C, 0xE849, 0x937E, 0x8FDF, + 0x938C, 0x8A99, 0x9394, 0xE84F, 0x9396, 0x8DBD, 0x9397, 0x9199, 0x939A, 0x92C8, 0x93A4, 0xFBE1, 0x93A7, 0x8A5A, 0x93AC, 0xE84D, + 0x93AD, 0xE84E, 0x93AE, 0x92C1, 0x93B0, 0xE84C, 0x93B9, 0xE850, 0x93C3, 0xE856, 0x93C6, 0xFBE2, 0x93C8, 0xE859, 0x93D0, 0xE858, + 0x93D1, 0x934C, 0x93D6, 0xE851, 0x93D7, 0xE852, 0x93D8, 0xE855, 0x93DD, 0xE857, 0x93DE, 0xFBE3, 0x93E1, 0x8BBE, 0x93E4, 0xE85A, + 0x93E5, 0xE854, 0x93E8, 0xE853, 0x93F8, 0xFBE4, 0x9403, 0xE85E, 0x9407, 0xE85F, 0x9410, 0xE860, 0x9413, 0xE85D, 0x9414, 0xE85C, + 0x9418, 0x8FE0, 0x9419, 0x93A8, 0x941A, 0xE85B, 0x9421, 0xE864, 0x942B, 0xE862, 0x9431, 0xFBE5, 0x9435, 0xE863, 0x9436, 0xE861, + 0x9438, 0x91F6, 0x943A, 0xE865, 0x9441, 0xE866, 0x9444, 0xE868, 0x9445, 0xFBE6, 0x9448, 0xFBE7, 0x9451, 0x8AD3, 0x9452, 0xE867, + 0x9453, 0x96F8, 0x945A, 0xE873, 0x945B, 0xE869, 0x945E, 0xE86C, 0x9460, 0xE86A, 0x9462, 0xE86B, 0x946A, 0xE86D, 0x9470, 0xE86F, + 0x9475, 0xE870, 0x9477, 0xE871, 0x947C, 0xE874, 0x947D, 0xE872, 0x947E, 0xE875, 0x947F, 0xE877, 0x9481, 0xE876, 0x9577, 0x92B7, + 0x9580, 0x96E5, 0x9582, 0xE878, 0x9583, 0x914D, 0x9587, 0xE879, 0x9589, 0x95C2, 0x958A, 0xE87A, 0x958B, 0x8A4A, 0x958F, 0x895B, + 0x9591, 0x8AD5, 0x9592, 0xFBE8, 0x9593, 0x8AD4, 0x9594, 0xE87B, 0x9596, 0xE87C, 0x9598, 0xE87D, 0x9599, 0xE87E, 0x95A0, 0xE880, + 0x95A2, 0x8AD6, 0x95A3, 0x8A74, 0x95A4, 0x8D7D, 0x95A5, 0x94B4, 0x95A7, 0xE882, 0x95A8, 0xE881, 0x95AD, 0xE883, 0x95B2, 0x897B, + 0x95B9, 0xE886, 0x95BB, 0xE885, 0x95BC, 0xE884, 0x95BE, 0xE887, 0x95C3, 0xE88A, 0x95C7, 0x88C5, 0x95CA, 0xE888, 0x95CC, 0xE88C, + 0x95CD, 0xE88B, 0x95D4, 0xE88E, 0x95D5, 0xE88D, 0x95D6, 0xE88F, 0x95D8, 0x93AC, 0x95DC, 0xE890, 0x95E1, 0xE891, 0x95E2, 0xE893, + 0x95E5, 0xE892, 0x961C, 0x958C, 0x9621, 0xE894, 0x9628, 0xE895, 0x962A, 0x8DE3, 0x962E, 0xE896, 0x962F, 0xE897, 0x9632, 0x9668, + 0x963B, 0x916A, 0x963F, 0x88A2, 0x9640, 0x91C9, 0x9642, 0xE898, 0x9644, 0x958D, 0x964B, 0xE89B, 0x964C, 0xE899, 0x964D, 0x8D7E, + 0x964F, 0xE89A, 0x9650, 0x8CC0, 0x965B, 0x95C3, 0x965C, 0xE89D, 0x965D, 0xE89F, 0x965E, 0xE89E, 0x965F, 0xE8A0, 0x9662, 0x8940, + 0x9663, 0x9077, 0x9664, 0x8F9C, 0x9665, 0x8AD7, 0x9666, 0xE8A1, 0x966A, 0x9486, 0x966C, 0xE8A3, 0x9670, 0x8941, 0x9672, 0xE8A2, + 0x9673, 0x92C2, 0x9675, 0x97CB, 0x9676, 0x93A9, 0x9677, 0xE89C, 0x9678, 0x97A4, 0x967A, 0x8CAF, 0x967D, 0x977A, 0x9685, 0x8BF7, + 0x9686, 0x97B2, 0x9688, 0x8C47, 0x968A, 0x91E0, 0x968B, 0xE440, 0x968D, 0xE8A4, 0x968E, 0x8A4B, 0x968F, 0x908F, 0x9694, 0x8A75, + 0x9695, 0xE8A6, 0x9697, 0xE8A7, 0x9698, 0xE8A5, 0x9699, 0x8C84, 0x969B, 0x8DDB, 0x969C, 0x8FE1, 0x969D, 0xFBEB, 0x96A0, 0x8942, + 0x96A3, 0x97D7, 0x96A7, 0xE8A9, 0x96A8, 0xE7AC, 0x96AA, 0xE8A8, 0x96AF, 0xFBEC, 0x96B0, 0xE8AC, 0x96B1, 0xE8AA, 0x96B2, 0xE8AB, + 0x96B4, 0xE8AD, 0x96B6, 0xE8AE, 0x96B7, 0x97EA, 0x96B8, 0xE8AF, 0x96B9, 0xE8B0, 0x96BB, 0x90C7, 0x96BC, 0x94B9, 0x96C0, 0x909D, + 0x96C1, 0x8AE5, 0x96C4, 0x9759, 0x96C5, 0x89EB, 0x96C6, 0x8F57, 0x96C7, 0x8CD9, 0x96C9, 0xE8B3, 0x96CB, 0xE8B2, 0x96CC, 0x8E93, + 0x96CD, 0xE8B4, 0x96CE, 0xE8B1, 0x96D1, 0x8E47, 0x96D5, 0xE8B8, 0x96D6, 0xE5AB, 0x96D9, 0x99D4, 0x96DB, 0x9097, 0x96DC, 0xE8B6, + 0x96E2, 0x97A3, 0x96E3, 0x93EF, 0x96E8, 0x894A, 0x96EA, 0x90E1, 0x96EB, 0x8EB4, 0x96F0, 0x95B5, 0x96F2, 0x895F, 0x96F6, 0x97EB, + 0x96F7, 0x978B, 0x96F9, 0xE8B9, 0x96FB, 0x9364, 0x9700, 0x8EF9, 0x9704, 0xE8BA, 0x9706, 0xE8BB, 0x9707, 0x906B, 0x9708, 0xE8BC, + 0x970A, 0x97EC, 0x970D, 0xE8B7, 0x970E, 0xE8BE, 0x970F, 0xE8C0, 0x9711, 0xE8BF, 0x9713, 0xE8BD, 0x9716, 0xE8C1, 0x9719, 0xE8C2, + 0x971C, 0x919A, 0x971E, 0x89E0, 0x9724, 0xE8C3, 0x9727, 0x96B6, 0x972A, 0xE8C4, 0x9730, 0xE8C5, 0x9732, 0x9849, 0x9733, 0xFBED, + 0x9738, 0x9E50, 0x9739, 0xE8C6, 0x973B, 0xFBEE, 0x973D, 0xE8C7, 0x973E, 0xE8C8, 0x9742, 0xE8CC, 0x9743, 0xFBEF, 0x9744, 0xE8C9, + 0x9746, 0xE8CA, 0x9748, 0xE8CB, 0x9749, 0xE8CD, 0x974D, 0xFBF0, 0x974F, 0xFBF1, 0x9751, 0xFBF2, 0x9752, 0x90C2, 0x9755, 0xFBF3, + 0x9756, 0x96F5, 0x9759, 0x90C3, 0x975C, 0xE8CE, 0x975E, 0x94F1, 0x9760, 0xE8CF, 0x9761, 0xEA72, 0x9762, 0x96CA, 0x9764, 0xE8D0, + 0x9766, 0xE8D1, 0x9768, 0xE8D2, 0x9769, 0x8A76, 0x976B, 0xE8D4, 0x976D, 0x9078, 0x9771, 0xE8D5, 0x9774, 0x8C43, 0x9779, 0xE8D6, + 0x977A, 0xE8DA, 0x977C, 0xE8D8, 0x9781, 0xE8D9, 0x9784, 0x8A93, 0x9785, 0xE8D7, 0x9786, 0xE8DB, 0x978B, 0xE8DC, 0x978D, 0x88C6, + 0x978F, 0xE8DD, 0x9790, 0xE8DE, 0x9798, 0x8FE2, 0x979C, 0xE8DF, 0x97A0, 0x8B66, 0x97A3, 0xE8E2, 0x97A6, 0xE8E1, 0x97A8, 0xE8E0, + 0x97AB, 0xE691, 0x97AD, 0x95DA, 0x97B3, 0xE8E3, 0x97B4, 0xE8E4, 0x97C3, 0xE8E5, 0x97C6, 0xE8E6, 0x97C8, 0xE8E7, 0x97CB, 0xE8E8, + 0x97D3, 0x8AD8, 0x97DC, 0xE8E9, 0x97ED, 0xE8EA, 0x97EE, 0x9442, 0x97F2, 0xE8EC, 0x97F3, 0x89B9, 0x97F5, 0xE8EF, 0x97F6, 0xE8EE, + 0x97FB, 0x8943, 0x97FF, 0x8BBF, 0x9801, 0x95C5, 0x9802, 0x92B8, 0x9803, 0x8DA0, 0x9805, 0x8D80, 0x9806, 0x8F87, 0x9808, 0x907B, + 0x980C, 0xE8F1, 0x980F, 0xE8F0, 0x9810, 0x9761, 0x9811, 0x8AE6, 0x9812, 0x94D0, 0x9813, 0x93DA, 0x9817, 0x909C, 0x9818, 0x97CC, + 0x981A, 0x8C7A, 0x9821, 0xE8F4, 0x9824, 0xE8F3, 0x982C, 0x966A, 0x982D, 0x93AA, 0x9834, 0x896F, 0x9837, 0xE8F5, 0x9838, 0xE8F2, + 0x983B, 0x9570, 0x983C, 0x978A, 0x983D, 0xE8F6, 0x9846, 0xE8F7, 0x984B, 0xE8F9, 0x984C, 0x91E8, 0x984D, 0x8A7A, 0x984E, 0x8A7B, + 0x984F, 0xE8F8, 0x9854, 0x8AE7, 0x9855, 0x8CB0, 0x9857, 0xFBF4, 0x9858, 0x8AE8, 0x985B, 0x935E, 0x985E, 0x97DE, 0x9865, 0xFBF5, + 0x9867, 0x8CDA, 0x986B, 0xE8FA, 0x986F, 0xE8FB, 0x9870, 0xE8FC, 0x9871, 0xE940, 0x9873, 0xE942, 0x9874, 0xE941, 0x98A8, 0x9597, + 0x98AA, 0xE943, 0x98AF, 0xE944, 0x98B1, 0xE945, 0x98B6, 0xE946, 0x98C3, 0xE948, 0x98C4, 0xE947, 0x98C6, 0xE949, 0x98DB, 0x94F2, + 0x98DC, 0xE3CA, 0x98DF, 0x9048, 0x98E2, 0x8B51, 0x98E9, 0xE94A, 0x98EB, 0xE94B, 0x98ED, 0x99AA, 0x98EE, 0x9F5A, 0x98EF, 0x94D1, + 0x98F2, 0x88F9, 0x98F4, 0x88B9, 0x98FC, 0x8E94, 0x98FD, 0x964F, 0x98FE, 0x8FFC, 0x9903, 0xE94C, 0x9905, 0x96DD, 0x9909, 0xE94D, + 0x990A, 0x977B, 0x990C, 0x8961, 0x9910, 0x8E60, 0x9912, 0xE94E, 0x9913, 0x89EC, 0x9914, 0xE94F, 0x9918, 0xE950, 0x991D, 0xE952, + 0x991E, 0xE953, 0x9920, 0xE955, 0x9921, 0xE951, 0x9924, 0xE954, 0x9927, 0xFBF8, 0x9928, 0x8AD9, 0x992C, 0xE956, 0x992E, 0xE957, + 0x993D, 0xE958, 0x993E, 0xE959, 0x9942, 0xE95A, 0x9945, 0xE95C, 0x9949, 0xE95B, 0x994B, 0xE95E, 0x994C, 0xE961, 0x9950, 0xE95D, + 0x9951, 0xE95F, 0x9952, 0xE960, 0x9955, 0xE962, 0x9957, 0x8BC0, 0x9996, 0x8EF1, 0x9997, 0xE963, 0x9998, 0xE964, 0x9999, 0x8D81, + 0x999E, 0xFBFA, 0x99A5, 0xE965, 0x99A8, 0x8A5D, 0x99AC, 0x946E, 0x99AD, 0xE966, 0x99AE, 0xE967, 0x99B3, 0x9279, 0x99B4, 0x93E9, + 0x99BC, 0xE968, 0x99C1, 0x949D, 0x99C4, 0x91CA, 0x99C5, 0x8977, 0x99C6, 0x8BEC, 0x99C8, 0x8BED, 0x99D0, 0x9293, 0x99D1, 0xE96D, + 0x99D2, 0x8BEE, 0x99D5, 0x89ED, 0x99D8, 0xE96C, 0x99DB, 0xE96A, 0x99DD, 0xE96B, 0x99DF, 0xE969, 0x99E2, 0xE977, 0x99ED, 0xE96E, + 0x99EE, 0xE96F, 0x99F1, 0xE970, 0x99F2, 0xE971, 0x99F8, 0xE973, 0x99FB, 0xE972, 0x99FF, 0x8F78, 0x9A01, 0xE974, 0x9A05, 0xE976, + 0x9A0E, 0x8B52, 0x9A0F, 0xE975, 0x9A12, 0x919B, 0x9A13, 0x8CB1, 0x9A19, 0xE978, 0x9A28, 0x91CB, 0x9A2B, 0xE979, 0x9A30, 0x93AB, + 0x9A37, 0xE97A, 0x9A3E, 0xE980, 0x9A40, 0xE97D, 0x9A42, 0xE97C, 0x9A43, 0xE97E, 0x9A45, 0xE97B, 0x9A4D, 0xE982, 0x9A4E, 0xFBFB, + 0x9A55, 0xE981, 0x9A57, 0xE984, 0x9A5A, 0x8BC1, 0x9A5B, 0xE983, 0x9A5F, 0xE985, 0x9A62, 0xE986, 0x9A64, 0xE988, 0x9A65, 0xE987, + 0x9A69, 0xE989, 0x9A6A, 0xE98B, 0x9A6B, 0xE98A, 0x9AA8, 0x8D9C, 0x9AAD, 0xE98C, 0x9AB0, 0xE98D, 0x9AB8, 0x8A5B, 0x9ABC, 0xE98E, + 0x9AC0, 0xE98F, 0x9AC4, 0x9091, 0x9ACF, 0xE990, 0x9AD1, 0xE991, 0x9AD3, 0xE992, 0x9AD4, 0xE993, 0x9AD8, 0x8D82, 0x9AD9, 0xFBFC, + 0x9ADC, 0xFC40, 0x9ADE, 0xE994, 0x9ADF, 0xE995, 0x9AE2, 0xE996, 0x9AE3, 0xE997, 0x9AE6, 0xE998, 0x9AEA, 0x94AF, 0x9AEB, 0xE99A, + 0x9AED, 0x9545, 0x9AEE, 0xE99B, 0x9AEF, 0xE999, 0x9AF1, 0xE99D, 0x9AF4, 0xE99C, 0x9AF7, 0xE99E, 0x9AFB, 0xE99F, 0x9B06, 0xE9A0, + 0x9B18, 0xE9A1, 0x9B1A, 0xE9A2, 0x9B1F, 0xE9A3, 0x9B22, 0xE9A4, 0x9B23, 0xE9A5, 0x9B25, 0xE9A6, 0x9B27, 0xE9A7, 0x9B28, 0xE9A8, + 0x9B29, 0xE9A9, 0x9B2A, 0xE9AA, 0x9B2E, 0xE9AB, 0x9B2F, 0xE9AC, 0x9B31, 0x9F54, 0x9B32, 0xE9AD, 0x9B3B, 0xE2F6, 0x9B3C, 0x8B53, + 0x9B41, 0x8A40, 0x9B42, 0x8DB0, 0x9B43, 0xE9AF, 0x9B44, 0xE9AE, 0x9B45, 0x96A3, 0x9B4D, 0xE9B1, 0x9B4E, 0xE9B2, 0x9B4F, 0xE9B0, + 0x9B51, 0xE9B3, 0x9B54, 0x9682, 0x9B58, 0xE9B4, 0x9B5A, 0x8B9B, 0x9B6F, 0x9844, 0x9B72, 0xFC42, 0x9B74, 0xE9B5, 0x9B75, 0xFC41, + 0x9B83, 0xE9B7, 0x9B8E, 0x88BC, 0x9B8F, 0xFC43, 0x9B91, 0xE9B8, 0x9B92, 0x95A9, 0x9B93, 0xE9B6, 0x9B96, 0xE9B9, 0x9B97, 0xE9BA, + 0x9B9F, 0xE9BB, 0x9BA0, 0xE9BC, 0x9BA8, 0xE9BD, 0x9BAA, 0x968E, 0x9BAB, 0x8E4C, 0x9BAD, 0x8DF8, 0x9BAE, 0x914E, 0x9BB1, 0xFC44, + 0x9BB4, 0xE9BE, 0x9BB9, 0xE9C1, 0x9BBB, 0xFC45, 0x9BC0, 0xE9BF, 0x9BC6, 0xE9C2, 0x9BC9, 0x8CEF, 0x9BCA, 0xE9C0, 0x9BCF, 0xE9C3, + 0x9BD1, 0xE9C4, 0x9BD2, 0xE9C5, 0x9BD4, 0xE9C9, 0x9BD6, 0x8E49, 0x9BDB, 0x91E2, 0x9BE1, 0xE9CA, 0x9BE2, 0xE9C7, 0x9BE3, 0xE9C6, + 0x9BE4, 0xE9C8, 0x9BE8, 0x8C7E, 0x9BF0, 0xE9CE, 0x9BF1, 0xE9CD, 0x9BF2, 0xE9CC, 0x9BF5, 0x88B1, 0x9C00, 0xFC46, 0x9C04, 0xE9D8, + 0x9C06, 0xE9D4, 0x9C08, 0xE9D5, 0x9C09, 0xE9D1, 0x9C0A, 0xE9D7, 0x9C0C, 0xE9D3, 0x9C0D, 0x8A82, 0x9C10, 0x986B, 0x9C12, 0xE9D6, + 0x9C13, 0xE9D2, 0x9C14, 0xE9D0, 0x9C15, 0xE9CF, 0x9C1B, 0xE9DA, 0x9C21, 0xE9DD, 0x9C24, 0xE9DC, 0x9C25, 0xE9DB, 0x9C2D, 0x9568, + 0x9C2E, 0xE9D9, 0x9C2F, 0x88F1, 0x9C30, 0xE9DE, 0x9C32, 0xE9E0, 0x9C39, 0x8A8F, 0x9C3A, 0xE9CB, 0x9C3B, 0x8956, 0x9C3E, 0xE9E2, + 0x9C46, 0xE9E1, 0x9C47, 0xE9DF, 0x9C48, 0x924C, 0x9C52, 0x9690, 0x9C57, 0x97D8, 0x9C5A, 0xE9E3, 0x9C60, 0xE9E4, 0x9C67, 0xE9E5, + 0x9C76, 0xE9E6, 0x9C78, 0xE9E7, 0x9CE5, 0x92B9, 0x9CE7, 0xE9E8, 0x9CE9, 0x94B5, 0x9CEB, 0xE9ED, 0x9CEC, 0xE9E9, 0x9CF0, 0xE9EA, + 0x9CF3, 0x9650, 0x9CF4, 0x96C2, 0x9CF6, 0x93CE, 0x9D03, 0xE9EE, 0x9D06, 0xE9EF, 0x9D07, 0x93BC, 0x9D08, 0xE9EC, 0x9D09, 0xE9EB, + 0x9D0E, 0x89A8, 0x9D12, 0xE9F7, 0x9D15, 0xE9F6, 0x9D1B, 0x8995, 0x9D1F, 0xE9F4, 0x9D23, 0xE9F3, 0x9D26, 0xE9F1, 0x9D28, 0x8A9B, + 0x9D2A, 0xE9F0, 0x9D2B, 0x8EB0, 0x9D2C, 0x89A7, 0x9D3B, 0x8D83, 0x9D3E, 0xE9FA, 0x9D3F, 0xE9F9, 0x9D41, 0xE9F8, 0x9D44, 0xE9F5, + 0x9D46, 0xE9FB, 0x9D48, 0xE9FC, 0x9D50, 0xEA44, 0x9D51, 0xEA43, 0x9D59, 0xEA45, 0x9D5C, 0x894C, 0x9D5D, 0xEA40, 0x9D5E, 0xEA41, + 0x9D60, 0x8D94, 0x9D61, 0x96B7, 0x9D64, 0xEA42, 0x9D6B, 0xFC48, 0x9D6C, 0x9651, 0x9D6F, 0xEA4A, 0x9D70, 0xFC47, 0x9D72, 0xEA46, + 0x9D7A, 0xEA4B, 0x9D87, 0xEA48, 0x9D89, 0xEA47, 0x9D8F, 0x8C7B, 0x9D9A, 0xEA4C, 0x9DA4, 0xEA4D, 0x9DA9, 0xEA4E, 0x9DAB, 0xEA49, + 0x9DAF, 0xE9F2, 0x9DB2, 0xEA4F, 0x9DB4, 0x92DF, 0x9DB8, 0xEA53, 0x9DBA, 0xEA54, 0x9DBB, 0xEA52, 0x9DC1, 0xEA51, 0x9DC2, 0xEA57, + 0x9DC4, 0xEA50, 0x9DC6, 0xEA55, 0x9DCF, 0xEA56, 0x9DD3, 0xEA59, 0x9DD9, 0xEA58, 0x9DE6, 0xEA5B, 0x9DED, 0xEA5C, 0x9DEF, 0xEA5D, + 0x9DF2, 0x9868, 0x9DF8, 0xEA5A, 0x9DF9, 0x91E9, 0x9DFA, 0x8DEB, 0x9DFD, 0xEA5E, 0x9E19, 0xFC4A, 0x9E1A, 0xEA5F, 0x9E1B, 0xEA60, + 0x9E1E, 0xEA61, 0x9E75, 0xEA62, 0x9E78, 0x8CB2, 0x9E79, 0xEA63, 0x9E7D, 0xEA64, 0x9E7F, 0x8EAD, 0x9E81, 0xEA65, 0x9E88, 0xEA66, + 0x9E8B, 0xEA67, 0x9E8C, 0xEA68, 0x9E91, 0xEA6B, 0x9E92, 0xEA69, 0x9E93, 0x985B, 0x9E95, 0xEA6A, 0x9E97, 0x97ED, 0x9E9D, 0xEA6C, + 0x9E9F, 0x97D9, 0x9EA5, 0xEA6D, 0x9EA6, 0x949E, 0x9EA9, 0xEA6E, 0x9EAA, 0xEA70, 0x9EAD, 0xEA71, 0x9EB8, 0xEA6F, 0x9EB9, 0x8D8D, + 0x9EBA, 0x96CB, 0x9EBB, 0x9683, 0x9EBC, 0x9BF5, 0x9EBE, 0x9F80, 0x9EBF, 0x969B, 0x9EC4, 0x89A9, 0x9ECC, 0xEA73, 0x9ECD, 0x8B6F, + 0x9ECE, 0xEA74, 0x9ECF, 0xEA75, 0x9ED0, 0xEA76, 0x9ED1, 0xFC4B, 0x9ED2, 0x8D95, 0x9ED4, 0xEA77, 0x9ED8, 0xE0D2, 0x9ED9, 0x96D9, + 0x9EDB, 0x91E1, 0x9EDC, 0xEA78, 0x9EDD, 0xEA7A, 0x9EDE, 0xEA79, 0x9EE0, 0xEA7B, 0x9EE5, 0xEA7C, 0x9EE8, 0xEA7D, 0x9EEF, 0xEA7E, + 0x9EF4, 0xEA80, 0x9EF6, 0xEA81, 0x9EF7, 0xEA82, 0x9EF9, 0xEA83, 0x9EFB, 0xEA84, 0x9EFC, 0xEA85, 0x9EFD, 0xEA86, 0x9F07, 0xEA87, + 0x9F08, 0xEA88, 0x9F0E, 0x9343, 0x9F13, 0x8CDB, 0x9F15, 0xEA8A, 0x9F20, 0x916C, 0x9F21, 0xEA8B, 0x9F2C, 0xEA8C, 0x9F3B, 0x9540, + 0x9F3E, 0xEA8D, 0x9F4A, 0xEA8E, 0x9F4B, 0xE256, 0x9F4E, 0xE6D8, 0x9F4F, 0xE8EB, 0x9F52, 0xEA8F, 0x9F54, 0xEA90, 0x9F5F, 0xEA92, + 0x9F60, 0xEA93, 0x9F61, 0xEA94, 0x9F62, 0x97EE, 0x9F63, 0xEA91, 0x9F66, 0xEA95, 0x9F67, 0xEA96, 0x9F6A, 0xEA98, 0x9F6C, 0xEA97, + 0x9F72, 0xEA9A, 0x9F76, 0xEA9B, 0x9F77, 0xEA99, 0x9F8D, 0x97B4, 0x9F95, 0xEA9C, 0x9F9C, 0xEA9D, 0x9F9D, 0xE273, 0x9FA0, 0xEA9E, + 0xF929, 0xFAE0, 0xF9DC, 0xFBE9, 0xFA0E, 0xFA90, 0xFA0F, 0xFA9B, 0xFA10, 0xFA9C, 0xFA11, 0xFAB1, 0xFA12, 0xFAD8, 0xFA13, 0xFAE8, + 0xFA14, 0xFAEA, 0xFA15, 0xFB58, 0xFA16, 0xFB5E, 0xFA17, 0xFB75, 0xFA18, 0xFB7D, 0xFA19, 0xFB7E, 0xFA1A, 0xFB80, 0xFA1B, 0xFB82, + 0xFA1C, 0xFB86, 0xFA1D, 0xFB89, 0xFA1E, 0xFB92, 0xFA1F, 0xFB9D, 0xFA20, 0xFB9F, 0xFA21, 0xFBA0, 0xFA22, 0xFBA9, 0xFA23, 0xFBB1, + 0xFA24, 0xFBB3, 0xFA25, 0xFBB4, 0xFA26, 0xFBB7, 0xFA27, 0xFBD3, 0xFA28, 0xFBDA, 0xFA29, 0xFBEA, 0xFA2A, 0xFBF6, 0xFA2B, 0xFBF7, + 0xFA2C, 0xFBF9, 0xFA2D, 0xFC49, 0xFF01, 0x8149, 0xFF02, 0xFA57, 0xFF03, 0x8194, 0xFF04, 0x8190, 0xFF05, 0x8193, 0xFF06, 0x8195, + 0xFF07, 0xFA56, 0xFF08, 0x8169, 0xFF09, 0x816A, 0xFF0A, 0x8196, 0xFF0B, 0x817B, 0xFF0C, 0x8143, 0xFF0D, 0x817C, 0xFF0E, 0x8144, + 0xFF0F, 0x815E, 0xFF10, 0x824F, 0xFF11, 0x8250, 0xFF12, 0x8251, 0xFF13, 0x8252, 0xFF14, 0x8253, 0xFF15, 0x8254, 0xFF16, 0x8255, + 0xFF17, 0x8256, 0xFF18, 0x8257, 0xFF19, 0x8258, 0xFF1A, 0x8146, 0xFF1B, 0x8147, 0xFF1C, 0x8183, 0xFF1D, 0x8181, 0xFF1E, 0x8184, + 0xFF1F, 0x8148, 0xFF20, 0x8197, 0xFF21, 0x8260, 0xFF22, 0x8261, 0xFF23, 0x8262, 0xFF24, 0x8263, 0xFF25, 0x8264, 0xFF26, 0x8265, + 0xFF27, 0x8266, 0xFF28, 0x8267, 0xFF29, 0x8268, 0xFF2A, 0x8269, 0xFF2B, 0x826A, 0xFF2C, 0x826B, 0xFF2D, 0x826C, 0xFF2E, 0x826D, + 0xFF2F, 0x826E, 0xFF30, 0x826F, 0xFF31, 0x8270, 0xFF32, 0x8271, 0xFF33, 0x8272, 0xFF34, 0x8273, 0xFF35, 0x8274, 0xFF36, 0x8275, + 0xFF37, 0x8276, 0xFF38, 0x8277, 0xFF39, 0x8278, 0xFF3A, 0x8279, 0xFF3B, 0x816D, 0xFF3C, 0x815F, 0xFF3D, 0x816E, 0xFF3E, 0x814F, + 0xFF3F, 0x8151, 0xFF40, 0x814D, 0xFF41, 0x8281, 0xFF42, 0x8282, 0xFF43, 0x8283, 0xFF44, 0x8284, 0xFF45, 0x8285, 0xFF46, 0x8286, + 0xFF47, 0x8287, 0xFF48, 0x8288, 0xFF49, 0x8289, 0xFF4A, 0x828A, 0xFF4B, 0x828B, 0xFF4C, 0x828C, 0xFF4D, 0x828D, 0xFF4E, 0x828E, + 0xFF4F, 0x828F, 0xFF50, 0x8290, 0xFF51, 0x8291, 0xFF52, 0x8292, 0xFF53, 0x8293, 0xFF54, 0x8294, 0xFF55, 0x8295, 0xFF56, 0x8296, + 0xFF57, 0x8297, 0xFF58, 0x8298, 0xFF59, 0x8299, 0xFF5A, 0x829A, 0xFF5B, 0x816F, 0xFF5C, 0x8162, 0xFF5D, 0x8170, 0xFF5E, 0x8160, + 0xFF61, 0x00A1, 0xFF62, 0x00A2, 0xFF63, 0x00A3, 0xFF64, 0x00A4, 0xFF65, 0x00A5, 0xFF66, 0x00A6, 0xFF67, 0x00A7, 0xFF68, 0x00A8, + 0xFF69, 0x00A9, 0xFF6A, 0x00AA, 0xFF6B, 0x00AB, 0xFF6C, 0x00AC, 0xFF6D, 0x00AD, 0xFF6E, 0x00AE, 0xFF6F, 0x00AF, 0xFF70, 0x00B0, + 0xFF71, 0x00B1, 0xFF72, 0x00B2, 0xFF73, 0x00B3, 0xFF74, 0x00B4, 0xFF75, 0x00B5, 0xFF76, 0x00B6, 0xFF77, 0x00B7, 0xFF78, 0x00B8, + 0xFF79, 0x00B9, 0xFF7A, 0x00BA, 0xFF7B, 0x00BB, 0xFF7C, 0x00BC, 0xFF7D, 0x00BD, 0xFF7E, 0x00BE, 0xFF7F, 0x00BF, 0xFF80, 0x00C0, + 0xFF81, 0x00C1, 0xFF82, 0x00C2, 0xFF83, 0x00C3, 0xFF84, 0x00C4, 0xFF85, 0x00C5, 0xFF86, 0x00C6, 0xFF87, 0x00C7, 0xFF88, 0x00C8, + 0xFF89, 0x00C9, 0xFF8A, 0x00CA, 0xFF8B, 0x00CB, 0xFF8C, 0x00CC, 0xFF8D, 0x00CD, 0xFF8E, 0x00CE, 0xFF8F, 0x00CF, 0xFF90, 0x00D0, + 0xFF91, 0x00D1, 0xFF92, 0x00D2, 0xFF93, 0x00D3, 0xFF94, 0x00D4, 0xFF95, 0x00D5, 0xFF96, 0x00D6, 0xFF97, 0x00D7, 0xFF98, 0x00D8, + 0xFF99, 0x00D9, 0xFF9A, 0x00DA, 0xFF9B, 0x00DB, 0xFF9C, 0x00DC, 0xFF9D, 0x00DD, 0xFF9E, 0x00DE, 0xFF9F, 0x00DF, 0xFFE0, 0x8191, + 0xFFE1, 0x8192, 0xFFE2, 0x81CA, 0xFFE3, 0x8150, 0xFFE4, 0xFA55, 0xFFE5, 0x818F, 0, 0 +}; + +static +const WCHAR oem2uni932[] = { /* Shift_JIS --> Unicode pairs */ + 0x00A1, 0xFF61, 0x00A2, 0xFF62, 0x00A3, 0xFF63, 0x00A4, 0xFF64, 0x00A5, 0xFF65, 0x00A6, 0xFF66, 0x00A7, 0xFF67, 0x00A8, 0xFF68, + 0x00A9, 0xFF69, 0x00AA, 0xFF6A, 0x00AB, 0xFF6B, 0x00AC, 0xFF6C, 0x00AD, 0xFF6D, 0x00AE, 0xFF6E, 0x00AF, 0xFF6F, 0x00B0, 0xFF70, + 0x00B1, 0xFF71, 0x00B2, 0xFF72, 0x00B3, 0xFF73, 0x00B4, 0xFF74, 0x00B5, 0xFF75, 0x00B6, 0xFF76, 0x00B7, 0xFF77, 0x00B8, 0xFF78, + 0x00B9, 0xFF79, 0x00BA, 0xFF7A, 0x00BB, 0xFF7B, 0x00BC, 0xFF7C, 0x00BD, 0xFF7D, 0x00BE, 0xFF7E, 0x00BF, 0xFF7F, 0x00C0, 0xFF80, + 0x00C1, 0xFF81, 0x00C2, 0xFF82, 0x00C3, 0xFF83, 0x00C4, 0xFF84, 0x00C5, 0xFF85, 0x00C6, 0xFF86, 0x00C7, 0xFF87, 0x00C8, 0xFF88, + 0x00C9, 0xFF89, 0x00CA, 0xFF8A, 0x00CB, 0xFF8B, 0x00CC, 0xFF8C, 0x00CD, 0xFF8D, 0x00CE, 0xFF8E, 0x00CF, 0xFF8F, 0x00D0, 0xFF90, + 0x00D1, 0xFF91, 0x00D2, 0xFF92, 0x00D3, 0xFF93, 0x00D4, 0xFF94, 0x00D5, 0xFF95, 0x00D6, 0xFF96, 0x00D7, 0xFF97, 0x00D8, 0xFF98, + 0x00D9, 0xFF99, 0x00DA, 0xFF9A, 0x00DB, 0xFF9B, 0x00DC, 0xFF9C, 0x00DD, 0xFF9D, 0x00DE, 0xFF9E, 0x00DF, 0xFF9F, 0x8140, 0x3000, + 0x8141, 0x3001, 0x8142, 0x3002, 0x8143, 0xFF0C, 0x8144, 0xFF0E, 0x8145, 0x30FB, 0x8146, 0xFF1A, 0x8147, 0xFF1B, 0x8148, 0xFF1F, + 0x8149, 0xFF01, 0x814A, 0x309B, 0x814B, 0x309C, 0x814C, 0x00B4, 0x814D, 0xFF40, 0x814E, 0x00A8, 0x814F, 0xFF3E, 0x8150, 0xFFE3, + 0x8151, 0xFF3F, 0x8152, 0x30FD, 0x8153, 0x30FE, 0x8154, 0x309D, 0x8155, 0x309E, 0x8156, 0x3003, 0x8157, 0x4EDD, 0x8158, 0x3005, + 0x8159, 0x3006, 0x815A, 0x3007, 0x815B, 0x30FC, 0x815C, 0x2015, 0x815D, 0x2010, 0x815E, 0xFF0F, 0x815F, 0xFF3C, 0x8160, 0xFF5E, + 0x8161, 0x2225, 0x8162, 0xFF5C, 0x8163, 0x2026, 0x8164, 0x2025, 0x8165, 0x2018, 0x8166, 0x2019, 0x8167, 0x201C, 0x8168, 0x201D, + 0x8169, 0xFF08, 0x816A, 0xFF09, 0x816B, 0x3014, 0x816C, 0x3015, 0x816D, 0xFF3B, 0x816E, 0xFF3D, 0x816F, 0xFF5B, 0x8170, 0xFF5D, + 0x8171, 0x3008, 0x8172, 0x3009, 0x8173, 0x300A, 0x8174, 0x300B, 0x8175, 0x300C, 0x8176, 0x300D, 0x8177, 0x300E, 0x8178, 0x300F, + 0x8179, 0x3010, 0x817A, 0x3011, 0x817B, 0xFF0B, 0x817C, 0xFF0D, 0x817D, 0x00B1, 0x817E, 0x00D7, 0x8180, 0x00F7, 0x8181, 0xFF1D, + 0x8182, 0x2260, 0x8183, 0xFF1C, 0x8184, 0xFF1E, 0x8185, 0x2266, 0x8186, 0x2267, 0x8187, 0x221E, 0x8188, 0x2234, 0x8189, 0x2642, + 0x818A, 0x2640, 0x818B, 0x00B0, 0x818C, 0x2032, 0x818D, 0x2033, 0x818E, 0x2103, 0x818F, 0xFFE5, 0x8190, 0xFF04, 0x8191, 0xFFE0, + 0x8192, 0xFFE1, 0x8193, 0xFF05, 0x8194, 0xFF03, 0x8195, 0xFF06, 0x8196, 0xFF0A, 0x8197, 0xFF20, 0x8198, 0x00A7, 0x8199, 0x2606, + 0x819A, 0x2605, 0x819B, 0x25CB, 0x819C, 0x25CF, 0x819D, 0x25CE, 0x819E, 0x25C7, 0x819F, 0x25C6, 0x81A0, 0x25A1, 0x81A1, 0x25A0, + 0x81A2, 0x25B3, 0x81A3, 0x25B2, 0x81A4, 0x25BD, 0x81A5, 0x25BC, 0x81A6, 0x203B, 0x81A7, 0x3012, 0x81A8, 0x2192, 0x81A9, 0x2190, + 0x81AA, 0x2191, 0x81AB, 0x2193, 0x81AC, 0x3013, 0x81B8, 0x2208, 0x81B9, 0x220B, 0x81BA, 0x2286, 0x81BB, 0x2287, 0x81BC, 0x2282, + 0x81BD, 0x2283, 0x81BE, 0x222A, 0x81BF, 0x2229, 0x81C8, 0x2227, 0x81C9, 0x2228, 0x81CA, 0xFFE2, 0x81CB, 0x21D2, 0x81CC, 0x21D4, + 0x81CD, 0x2200, 0x81CE, 0x2203, 0x81DA, 0x2220, 0x81DB, 0x22A5, 0x81DC, 0x2312, 0x81DD, 0x2202, 0x81DE, 0x2207, 0x81DF, 0x2261, + 0x81E0, 0x2252, 0x81E1, 0x226A, 0x81E2, 0x226B, 0x81E3, 0x221A, 0x81E4, 0x223D, 0x81E5, 0x221D, 0x81E6, 0x2235, 0x81E7, 0x222B, + 0x81E8, 0x222C, 0x81F0, 0x212B, 0x81F1, 0x2030, 0x81F2, 0x266F, 0x81F3, 0x266D, 0x81F4, 0x266A, 0x81F5, 0x2020, 0x81F6, 0x2021, + 0x81F7, 0x00B6, 0x81FC, 0x25EF, 0x824F, 0xFF10, 0x8250, 0xFF11, 0x8251, 0xFF12, 0x8252, 0xFF13, 0x8253, 0xFF14, 0x8254, 0xFF15, + 0x8255, 0xFF16, 0x8256, 0xFF17, 0x8257, 0xFF18, 0x8258, 0xFF19, 0x8260, 0xFF21, 0x8261, 0xFF22, 0x8262, 0xFF23, 0x8263, 0xFF24, + 0x8264, 0xFF25, 0x8265, 0xFF26, 0x8266, 0xFF27, 0x8267, 0xFF28, 0x8268, 0xFF29, 0x8269, 0xFF2A, 0x826A, 0xFF2B, 0x826B, 0xFF2C, + 0x826C, 0xFF2D, 0x826D, 0xFF2E, 0x826E, 0xFF2F, 0x826F, 0xFF30, 0x8270, 0xFF31, 0x8271, 0xFF32, 0x8272, 0xFF33, 0x8273, 0xFF34, + 0x8274, 0xFF35, 0x8275, 0xFF36, 0x8276, 0xFF37, 0x8277, 0xFF38, 0x8278, 0xFF39, 0x8279, 0xFF3A, 0x8281, 0xFF41, 0x8282, 0xFF42, + 0x8283, 0xFF43, 0x8284, 0xFF44, 0x8285, 0xFF45, 0x8286, 0xFF46, 0x8287, 0xFF47, 0x8288, 0xFF48, 0x8289, 0xFF49, 0x828A, 0xFF4A, + 0x828B, 0xFF4B, 0x828C, 0xFF4C, 0x828D, 0xFF4D, 0x828E, 0xFF4E, 0x828F, 0xFF4F, 0x8290, 0xFF50, 0x8291, 0xFF51, 0x8292, 0xFF52, + 0x8293, 0xFF53, 0x8294, 0xFF54, 0x8295, 0xFF55, 0x8296, 0xFF56, 0x8297, 0xFF57, 0x8298, 0xFF58, 0x8299, 0xFF59, 0x829A, 0xFF5A, + 0x829F, 0x3041, 0x82A0, 0x3042, 0x82A1, 0x3043, 0x82A2, 0x3044, 0x82A3, 0x3045, 0x82A4, 0x3046, 0x82A5, 0x3047, 0x82A6, 0x3048, + 0x82A7, 0x3049, 0x82A8, 0x304A, 0x82A9, 0x304B, 0x82AA, 0x304C, 0x82AB, 0x304D, 0x82AC, 0x304E, 0x82AD, 0x304F, 0x82AE, 0x3050, + 0x82AF, 0x3051, 0x82B0, 0x3052, 0x82B1, 0x3053, 0x82B2, 0x3054, 0x82B3, 0x3055, 0x82B4, 0x3056, 0x82B5, 0x3057, 0x82B6, 0x3058, + 0x82B7, 0x3059, 0x82B8, 0x305A, 0x82B9, 0x305B, 0x82BA, 0x305C, 0x82BB, 0x305D, 0x82BC, 0x305E, 0x82BD, 0x305F, 0x82BE, 0x3060, + 0x82BF, 0x3061, 0x82C0, 0x3062, 0x82C1, 0x3063, 0x82C2, 0x3064, 0x82C3, 0x3065, 0x82C4, 0x3066, 0x82C5, 0x3067, 0x82C6, 0x3068, + 0x82C7, 0x3069, 0x82C8, 0x306A, 0x82C9, 0x306B, 0x82CA, 0x306C, 0x82CB, 0x306D, 0x82CC, 0x306E, 0x82CD, 0x306F, 0x82CE, 0x3070, + 0x82CF, 0x3071, 0x82D0, 0x3072, 0x82D1, 0x3073, 0x82D2, 0x3074, 0x82D3, 0x3075, 0x82D4, 0x3076, 0x82D5, 0x3077, 0x82D6, 0x3078, + 0x82D7, 0x3079, 0x82D8, 0x307A, 0x82D9, 0x307B, 0x82DA, 0x307C, 0x82DB, 0x307D, 0x82DC, 0x307E, 0x82DD, 0x307F, 0x82DE, 0x3080, + 0x82DF, 0x3081, 0x82E0, 0x3082, 0x82E1, 0x3083, 0x82E2, 0x3084, 0x82E3, 0x3085, 0x82E4, 0x3086, 0x82E5, 0x3087, 0x82E6, 0x3088, + 0x82E7, 0x3089, 0x82E8, 0x308A, 0x82E9, 0x308B, 0x82EA, 0x308C, 0x82EB, 0x308D, 0x82EC, 0x308E, 0x82ED, 0x308F, 0x82EE, 0x3090, + 0x82EF, 0x3091, 0x82F0, 0x3092, 0x82F1, 0x3093, 0x8340, 0x30A1, 0x8341, 0x30A2, 0x8342, 0x30A3, 0x8343, 0x30A4, 0x8344, 0x30A5, + 0x8345, 0x30A6, 0x8346, 0x30A7, 0x8347, 0x30A8, 0x8348, 0x30A9, 0x8349, 0x30AA, 0x834A, 0x30AB, 0x834B, 0x30AC, 0x834C, 0x30AD, + 0x834D, 0x30AE, 0x834E, 0x30AF, 0x834F, 0x30B0, 0x8350, 0x30B1, 0x8351, 0x30B2, 0x8352, 0x30B3, 0x8353, 0x30B4, 0x8354, 0x30B5, + 0x8355, 0x30B6, 0x8356, 0x30B7, 0x8357, 0x30B8, 0x8358, 0x30B9, 0x8359, 0x30BA, 0x835A, 0x30BB, 0x835B, 0x30BC, 0x835C, 0x30BD, + 0x835D, 0x30BE, 0x835E, 0x30BF, 0x835F, 0x30C0, 0x8360, 0x30C1, 0x8361, 0x30C2, 0x8362, 0x30C3, 0x8363, 0x30C4, 0x8364, 0x30C5, + 0x8365, 0x30C6, 0x8366, 0x30C7, 0x8367, 0x30C8, 0x8368, 0x30C9, 0x8369, 0x30CA, 0x836A, 0x30CB, 0x836B, 0x30CC, 0x836C, 0x30CD, + 0x836D, 0x30CE, 0x836E, 0x30CF, 0x836F, 0x30D0, 0x8370, 0x30D1, 0x8371, 0x30D2, 0x8372, 0x30D3, 0x8373, 0x30D4, 0x8374, 0x30D5, + 0x8375, 0x30D6, 0x8376, 0x30D7, 0x8377, 0x30D8, 0x8378, 0x30D9, 0x8379, 0x30DA, 0x837A, 0x30DB, 0x837B, 0x30DC, 0x837C, 0x30DD, + 0x837D, 0x30DE, 0x837E, 0x30DF, 0x8380, 0x30E0, 0x8381, 0x30E1, 0x8382, 0x30E2, 0x8383, 0x30E3, 0x8384, 0x30E4, 0x8385, 0x30E5, + 0x8386, 0x30E6, 0x8387, 0x30E7, 0x8388, 0x30E8, 0x8389, 0x30E9, 0x838A, 0x30EA, 0x838B, 0x30EB, 0x838C, 0x30EC, 0x838D, 0x30ED, + 0x838E, 0x30EE, 0x838F, 0x30EF, 0x8390, 0x30F0, 0x8391, 0x30F1, 0x8392, 0x30F2, 0x8393, 0x30F3, 0x8394, 0x30F4, 0x8395, 0x30F5, + 0x8396, 0x30F6, 0x839F, 0x0391, 0x83A0, 0x0392, 0x83A1, 0x0393, 0x83A2, 0x0394, 0x83A3, 0x0395, 0x83A4, 0x0396, 0x83A5, 0x0397, + 0x83A6, 0x0398, 0x83A7, 0x0399, 0x83A8, 0x039A, 0x83A9, 0x039B, 0x83AA, 0x039C, 0x83AB, 0x039D, 0x83AC, 0x039E, 0x83AD, 0x039F, + 0x83AE, 0x03A0, 0x83AF, 0x03A1, 0x83B0, 0x03A3, 0x83B1, 0x03A4, 0x83B2, 0x03A5, 0x83B3, 0x03A6, 0x83B4, 0x03A7, 0x83B5, 0x03A8, + 0x83B6, 0x03A9, 0x83BF, 0x03B1, 0x83C0, 0x03B2, 0x83C1, 0x03B3, 0x83C2, 0x03B4, 0x83C3, 0x03B5, 0x83C4, 0x03B6, 0x83C5, 0x03B7, + 0x83C6, 0x03B8, 0x83C7, 0x03B9, 0x83C8, 0x03BA, 0x83C9, 0x03BB, 0x83CA, 0x03BC, 0x83CB, 0x03BD, 0x83CC, 0x03BE, 0x83CD, 0x03BF, + 0x83CE, 0x03C0, 0x83CF, 0x03C1, 0x83D0, 0x03C3, 0x83D1, 0x03C4, 0x83D2, 0x03C5, 0x83D3, 0x03C6, 0x83D4, 0x03C7, 0x83D5, 0x03C8, + 0x83D6, 0x03C9, 0x8440, 0x0410, 0x8441, 0x0411, 0x8442, 0x0412, 0x8443, 0x0413, 0x8444, 0x0414, 0x8445, 0x0415, 0x8446, 0x0401, + 0x8447, 0x0416, 0x8448, 0x0417, 0x8449, 0x0418, 0x844A, 0x0419, 0x844B, 0x041A, 0x844C, 0x041B, 0x844D, 0x041C, 0x844E, 0x041D, + 0x844F, 0x041E, 0x8450, 0x041F, 0x8451, 0x0420, 0x8452, 0x0421, 0x8453, 0x0422, 0x8454, 0x0423, 0x8455, 0x0424, 0x8456, 0x0425, + 0x8457, 0x0426, 0x8458, 0x0427, 0x8459, 0x0428, 0x845A, 0x0429, 0x845B, 0x042A, 0x845C, 0x042B, 0x845D, 0x042C, 0x845E, 0x042D, + 0x845F, 0x042E, 0x8460, 0x042F, 0x8470, 0x0430, 0x8471, 0x0431, 0x8472, 0x0432, 0x8473, 0x0433, 0x8474, 0x0434, 0x8475, 0x0435, + 0x8476, 0x0451, 0x8477, 0x0436, 0x8478, 0x0437, 0x8479, 0x0438, 0x847A, 0x0439, 0x847B, 0x043A, 0x847C, 0x043B, 0x847D, 0x043C, + 0x847E, 0x043D, 0x8480, 0x043E, 0x8481, 0x043F, 0x8482, 0x0440, 0x8483, 0x0441, 0x8484, 0x0442, 0x8485, 0x0443, 0x8486, 0x0444, + 0x8487, 0x0445, 0x8488, 0x0446, 0x8489, 0x0447, 0x848A, 0x0448, 0x848B, 0x0449, 0x848C, 0x044A, 0x848D, 0x044B, 0x848E, 0x044C, + 0x848F, 0x044D, 0x8490, 0x044E, 0x8491, 0x044F, 0x849F, 0x2500, 0x84A0, 0x2502, 0x84A1, 0x250C, 0x84A2, 0x2510, 0x84A3, 0x2518, + 0x84A4, 0x2514, 0x84A5, 0x251C, 0x84A6, 0x252C, 0x84A7, 0x2524, 0x84A8, 0x2534, 0x84A9, 0x253C, 0x84AA, 0x2501, 0x84AB, 0x2503, + 0x84AC, 0x250F, 0x84AD, 0x2513, 0x84AE, 0x251B, 0x84AF, 0x2517, 0x84B0, 0x2523, 0x84B1, 0x2533, 0x84B2, 0x252B, 0x84B3, 0x253B, + 0x84B4, 0x254B, 0x84B5, 0x2520, 0x84B6, 0x252F, 0x84B7, 0x2528, 0x84B8, 0x2537, 0x84B9, 0x253F, 0x84BA, 0x251D, 0x84BB, 0x2530, + 0x84BC, 0x2525, 0x84BD, 0x2538, 0x84BE, 0x2542, 0x8740, 0x2460, 0x8741, 0x2461, 0x8742, 0x2462, 0x8743, 0x2463, 0x8744, 0x2464, + 0x8745, 0x2465, 0x8746, 0x2466, 0x8747, 0x2467, 0x8748, 0x2468, 0x8749, 0x2469, 0x874A, 0x246A, 0x874B, 0x246B, 0x874C, 0x246C, + 0x874D, 0x246D, 0x874E, 0x246E, 0x874F, 0x246F, 0x8750, 0x2470, 0x8751, 0x2471, 0x8752, 0x2472, 0x8753, 0x2473, 0x8754, 0x2160, + 0x8755, 0x2161, 0x8756, 0x2162, 0x8757, 0x2163, 0x8758, 0x2164, 0x8759, 0x2165, 0x875A, 0x2166, 0x875B, 0x2167, 0x875C, 0x2168, + 0x875D, 0x2169, 0x875F, 0x3349, 0x8760, 0x3314, 0x8761, 0x3322, 0x8762, 0x334D, 0x8763, 0x3318, 0x8764, 0x3327, 0x8765, 0x3303, + 0x8766, 0x3336, 0x8767, 0x3351, 0x8768, 0x3357, 0x8769, 0x330D, 0x876A, 0x3326, 0x876B, 0x3323, 0x876C, 0x332B, 0x876D, 0x334A, + 0x876E, 0x333B, 0x876F, 0x339C, 0x8770, 0x339D, 0x8771, 0x339E, 0x8772, 0x338E, 0x8773, 0x338F, 0x8774, 0x33C4, 0x8775, 0x33A1, + 0x877E, 0x337B, 0x8780, 0x301D, 0x8781, 0x301F, 0x8782, 0x2116, 0x8783, 0x33CD, 0x8784, 0x2121, 0x8785, 0x32A4, 0x8786, 0x32A5, + 0x8787, 0x32A6, 0x8788, 0x32A7, 0x8789, 0x32A8, 0x878A, 0x3231, 0x878B, 0x3232, 0x878C, 0x3239, 0x878D, 0x337E, 0x878E, 0x337D, + 0x878F, 0x337C, 0x8793, 0x222E, 0x8794, 0x2211, 0x8798, 0x221F, 0x8799, 0x22BF, 0x889F, 0x4E9C, 0x88A0, 0x5516, 0x88A1, 0x5A03, + 0x88A2, 0x963F, 0x88A3, 0x54C0, 0x88A4, 0x611B, 0x88A5, 0x6328, 0x88A6, 0x59F6, 0x88A7, 0x9022, 0x88A8, 0x8475, 0x88A9, 0x831C, + 0x88AA, 0x7A50, 0x88AB, 0x60AA, 0x88AC, 0x63E1, 0x88AD, 0x6E25, 0x88AE, 0x65ED, 0x88AF, 0x8466, 0x88B0, 0x82A6, 0x88B1, 0x9BF5, + 0x88B2, 0x6893, 0x88B3, 0x5727, 0x88B4, 0x65A1, 0x88B5, 0x6271, 0x88B6, 0x5B9B, 0x88B7, 0x59D0, 0x88B8, 0x867B, 0x88B9, 0x98F4, + 0x88BA, 0x7D62, 0x88BB, 0x7DBE, 0x88BC, 0x9B8E, 0x88BD, 0x6216, 0x88BE, 0x7C9F, 0x88BF, 0x88B7, 0x88C0, 0x5B89, 0x88C1, 0x5EB5, + 0x88C2, 0x6309, 0x88C3, 0x6697, 0x88C4, 0x6848, 0x88C5, 0x95C7, 0x88C6, 0x978D, 0x88C7, 0x674F, 0x88C8, 0x4EE5, 0x88C9, 0x4F0A, + 0x88CA, 0x4F4D, 0x88CB, 0x4F9D, 0x88CC, 0x5049, 0x88CD, 0x56F2, 0x88CE, 0x5937, 0x88CF, 0x59D4, 0x88D0, 0x5A01, 0x88D1, 0x5C09, + 0x88D2, 0x60DF, 0x88D3, 0x610F, 0x88D4, 0x6170, 0x88D5, 0x6613, 0x88D6, 0x6905, 0x88D7, 0x70BA, 0x88D8, 0x754F, 0x88D9, 0x7570, + 0x88DA, 0x79FB, 0x88DB, 0x7DAD, 0x88DC, 0x7DEF, 0x88DD, 0x80C3, 0x88DE, 0x840E, 0x88DF, 0x8863, 0x88E0, 0x8B02, 0x88E1, 0x9055, + 0x88E2, 0x907A, 0x88E3, 0x533B, 0x88E4, 0x4E95, 0x88E5, 0x4EA5, 0x88E6, 0x57DF, 0x88E7, 0x80B2, 0x88E8, 0x90C1, 0x88E9, 0x78EF, + 0x88EA, 0x4E00, 0x88EB, 0x58F1, 0x88EC, 0x6EA2, 0x88ED, 0x9038, 0x88EE, 0x7A32, 0x88EF, 0x8328, 0x88F0, 0x828B, 0x88F1, 0x9C2F, + 0x88F2, 0x5141, 0x88F3, 0x5370, 0x88F4, 0x54BD, 0x88F5, 0x54E1, 0x88F6, 0x56E0, 0x88F7, 0x59FB, 0x88F8, 0x5F15, 0x88F9, 0x98F2, + 0x88FA, 0x6DEB, 0x88FB, 0x80E4, 0x88FC, 0x852D, 0x8940, 0x9662, 0x8941, 0x9670, 0x8942, 0x96A0, 0x8943, 0x97FB, 0x8944, 0x540B, + 0x8945, 0x53F3, 0x8946, 0x5B87, 0x8947, 0x70CF, 0x8948, 0x7FBD, 0x8949, 0x8FC2, 0x894A, 0x96E8, 0x894B, 0x536F, 0x894C, 0x9D5C, + 0x894D, 0x7ABA, 0x894E, 0x4E11, 0x894F, 0x7893, 0x8950, 0x81FC, 0x8951, 0x6E26, 0x8952, 0x5618, 0x8953, 0x5504, 0x8954, 0x6B1D, + 0x8955, 0x851A, 0x8956, 0x9C3B, 0x8957, 0x59E5, 0x8958, 0x53A9, 0x8959, 0x6D66, 0x895A, 0x74DC, 0x895B, 0x958F, 0x895C, 0x5642, + 0x895D, 0x4E91, 0x895E, 0x904B, 0x895F, 0x96F2, 0x8960, 0x834F, 0x8961, 0x990C, 0x8962, 0x53E1, 0x8963, 0x55B6, 0x8964, 0x5B30, + 0x8965, 0x5F71, 0x8966, 0x6620, 0x8967, 0x66F3, 0x8968, 0x6804, 0x8969, 0x6C38, 0x896A, 0x6CF3, 0x896B, 0x6D29, 0x896C, 0x745B, + 0x896D, 0x76C8, 0x896E, 0x7A4E, 0x896F, 0x9834, 0x8970, 0x82F1, 0x8971, 0x885B, 0x8972, 0x8A60, 0x8973, 0x92ED, 0x8974, 0x6DB2, + 0x8975, 0x75AB, 0x8976, 0x76CA, 0x8977, 0x99C5, 0x8978, 0x60A6, 0x8979, 0x8B01, 0x897A, 0x8D8A, 0x897B, 0x95B2, 0x897C, 0x698E, + 0x897D, 0x53AD, 0x897E, 0x5186, 0x8980, 0x5712, 0x8981, 0x5830, 0x8982, 0x5944, 0x8983, 0x5BB4, 0x8984, 0x5EF6, 0x8985, 0x6028, + 0x8986, 0x63A9, 0x8987, 0x63F4, 0x8988, 0x6CBF, 0x8989, 0x6F14, 0x898A, 0x708E, 0x898B, 0x7114, 0x898C, 0x7159, 0x898D, 0x71D5, + 0x898E, 0x733F, 0x898F, 0x7E01, 0x8990, 0x8276, 0x8991, 0x82D1, 0x8992, 0x8597, 0x8993, 0x9060, 0x8994, 0x925B, 0x8995, 0x9D1B, + 0x8996, 0x5869, 0x8997, 0x65BC, 0x8998, 0x6C5A, 0x8999, 0x7525, 0x899A, 0x51F9, 0x899B, 0x592E, 0x899C, 0x5965, 0x899D, 0x5F80, + 0x899E, 0x5FDC, 0x899F, 0x62BC, 0x89A0, 0x65FA, 0x89A1, 0x6A2A, 0x89A2, 0x6B27, 0x89A3, 0x6BB4, 0x89A4, 0x738B, 0x89A5, 0x7FC1, + 0x89A6, 0x8956, 0x89A7, 0x9D2C, 0x89A8, 0x9D0E, 0x89A9, 0x9EC4, 0x89AA, 0x5CA1, 0x89AB, 0x6C96, 0x89AC, 0x837B, 0x89AD, 0x5104, + 0x89AE, 0x5C4B, 0x89AF, 0x61B6, 0x89B0, 0x81C6, 0x89B1, 0x6876, 0x89B2, 0x7261, 0x89B3, 0x4E59, 0x89B4, 0x4FFA, 0x89B5, 0x5378, + 0x89B6, 0x6069, 0x89B7, 0x6E29, 0x89B8, 0x7A4F, 0x89B9, 0x97F3, 0x89BA, 0x4E0B, 0x89BB, 0x5316, 0x89BC, 0x4EEE, 0x89BD, 0x4F55, + 0x89BE, 0x4F3D, 0x89BF, 0x4FA1, 0x89C0, 0x4F73, 0x89C1, 0x52A0, 0x89C2, 0x53EF, 0x89C3, 0x5609, 0x89C4, 0x590F, 0x89C5, 0x5AC1, + 0x89C6, 0x5BB6, 0x89C7, 0x5BE1, 0x89C8, 0x79D1, 0x89C9, 0x6687, 0x89CA, 0x679C, 0x89CB, 0x67B6, 0x89CC, 0x6B4C, 0x89CD, 0x6CB3, + 0x89CE, 0x706B, 0x89CF, 0x73C2, 0x89D0, 0x798D, 0x89D1, 0x79BE, 0x89D2, 0x7A3C, 0x89D3, 0x7B87, 0x89D4, 0x82B1, 0x89D5, 0x82DB, + 0x89D6, 0x8304, 0x89D7, 0x8377, 0x89D8, 0x83EF, 0x89D9, 0x83D3, 0x89DA, 0x8766, 0x89DB, 0x8AB2, 0x89DC, 0x5629, 0x89DD, 0x8CA8, + 0x89DE, 0x8FE6, 0x89DF, 0x904E, 0x89E0, 0x971E, 0x89E1, 0x868A, 0x89E2, 0x4FC4, 0x89E3, 0x5CE8, 0x89E4, 0x6211, 0x89E5, 0x7259, + 0x89E6, 0x753B, 0x89E7, 0x81E5, 0x89E8, 0x82BD, 0x89E9, 0x86FE, 0x89EA, 0x8CC0, 0x89EB, 0x96C5, 0x89EC, 0x9913, 0x89ED, 0x99D5, + 0x89EE, 0x4ECB, 0x89EF, 0x4F1A, 0x89F0, 0x89E3, 0x89F1, 0x56DE, 0x89F2, 0x584A, 0x89F3, 0x58CA, 0x89F4, 0x5EFB, 0x89F5, 0x5FEB, + 0x89F6, 0x602A, 0x89F7, 0x6094, 0x89F8, 0x6062, 0x89F9, 0x61D0, 0x89FA, 0x6212, 0x89FB, 0x62D0, 0x89FC, 0x6539, 0x8A40, 0x9B41, + 0x8A41, 0x6666, 0x8A42, 0x68B0, 0x8A43, 0x6D77, 0x8A44, 0x7070, 0x8A45, 0x754C, 0x8A46, 0x7686, 0x8A47, 0x7D75, 0x8A48, 0x82A5, + 0x8A49, 0x87F9, 0x8A4A, 0x958B, 0x8A4B, 0x968E, 0x8A4C, 0x8C9D, 0x8A4D, 0x51F1, 0x8A4E, 0x52BE, 0x8A4F, 0x5916, 0x8A50, 0x54B3, + 0x8A51, 0x5BB3, 0x8A52, 0x5D16, 0x8A53, 0x6168, 0x8A54, 0x6982, 0x8A55, 0x6DAF, 0x8A56, 0x788D, 0x8A57, 0x84CB, 0x8A58, 0x8857, + 0x8A59, 0x8A72, 0x8A5A, 0x93A7, 0x8A5B, 0x9AB8, 0x8A5C, 0x6D6C, 0x8A5D, 0x99A8, 0x8A5E, 0x86D9, 0x8A5F, 0x57A3, 0x8A60, 0x67FF, + 0x8A61, 0x86CE, 0x8A62, 0x920E, 0x8A63, 0x5283, 0x8A64, 0x5687, 0x8A65, 0x5404, 0x8A66, 0x5ED3, 0x8A67, 0x62E1, 0x8A68, 0x64B9, + 0x8A69, 0x683C, 0x8A6A, 0x6838, 0x8A6B, 0x6BBB, 0x8A6C, 0x7372, 0x8A6D, 0x78BA, 0x8A6E, 0x7A6B, 0x8A6F, 0x899A, 0x8A70, 0x89D2, + 0x8A71, 0x8D6B, 0x8A72, 0x8F03, 0x8A73, 0x90ED, 0x8A74, 0x95A3, 0x8A75, 0x9694, 0x8A76, 0x9769, 0x8A77, 0x5B66, 0x8A78, 0x5CB3, + 0x8A79, 0x697D, 0x8A7A, 0x984D, 0x8A7B, 0x984E, 0x8A7C, 0x639B, 0x8A7D, 0x7B20, 0x8A7E, 0x6A2B, 0x8A80, 0x6A7F, 0x8A81, 0x68B6, + 0x8A82, 0x9C0D, 0x8A83, 0x6F5F, 0x8A84, 0x5272, 0x8A85, 0x559D, 0x8A86, 0x6070, 0x8A87, 0x62EC, 0x8A88, 0x6D3B, 0x8A89, 0x6E07, + 0x8A8A, 0x6ED1, 0x8A8B, 0x845B, 0x8A8C, 0x8910, 0x8A8D, 0x8F44, 0x8A8E, 0x4E14, 0x8A8F, 0x9C39, 0x8A90, 0x53F6, 0x8A91, 0x691B, + 0x8A92, 0x6A3A, 0x8A93, 0x9784, 0x8A94, 0x682A, 0x8A95, 0x515C, 0x8A96, 0x7AC3, 0x8A97, 0x84B2, 0x8A98, 0x91DC, 0x8A99, 0x938C, + 0x8A9A, 0x565B, 0x8A9B, 0x9D28, 0x8A9C, 0x6822, 0x8A9D, 0x8305, 0x8A9E, 0x8431, 0x8A9F, 0x7CA5, 0x8AA0, 0x5208, 0x8AA1, 0x82C5, + 0x8AA2, 0x74E6, 0x8AA3, 0x4E7E, 0x8AA4, 0x4F83, 0x8AA5, 0x51A0, 0x8AA6, 0x5BD2, 0x8AA7, 0x520A, 0x8AA8, 0x52D8, 0x8AA9, 0x52E7, + 0x8AAA, 0x5DFB, 0x8AAB, 0x559A, 0x8AAC, 0x582A, 0x8AAD, 0x59E6, 0x8AAE, 0x5B8C, 0x8AAF, 0x5B98, 0x8AB0, 0x5BDB, 0x8AB1, 0x5E72, + 0x8AB2, 0x5E79, 0x8AB3, 0x60A3, 0x8AB4, 0x611F, 0x8AB5, 0x6163, 0x8AB6, 0x61BE, 0x8AB7, 0x63DB, 0x8AB8, 0x6562, 0x8AB9, 0x67D1, + 0x8ABA, 0x6853, 0x8ABB, 0x68FA, 0x8ABC, 0x6B3E, 0x8ABD, 0x6B53, 0x8ABE, 0x6C57, 0x8ABF, 0x6F22, 0x8AC0, 0x6F97, 0x8AC1, 0x6F45, + 0x8AC2, 0x74B0, 0x8AC3, 0x7518, 0x8AC4, 0x76E3, 0x8AC5, 0x770B, 0x8AC6, 0x7AFF, 0x8AC7, 0x7BA1, 0x8AC8, 0x7C21, 0x8AC9, 0x7DE9, + 0x8ACA, 0x7F36, 0x8ACB, 0x7FF0, 0x8ACC, 0x809D, 0x8ACD, 0x8266, 0x8ACE, 0x839E, 0x8ACF, 0x89B3, 0x8AD0, 0x8ACC, 0x8AD1, 0x8CAB, + 0x8AD2, 0x9084, 0x8AD3, 0x9451, 0x8AD4, 0x9593, 0x8AD5, 0x9591, 0x8AD6, 0x95A2, 0x8AD7, 0x9665, 0x8AD8, 0x97D3, 0x8AD9, 0x9928, + 0x8ADA, 0x8218, 0x8ADB, 0x4E38, 0x8ADC, 0x542B, 0x8ADD, 0x5CB8, 0x8ADE, 0x5DCC, 0x8ADF, 0x73A9, 0x8AE0, 0x764C, 0x8AE1, 0x773C, + 0x8AE2, 0x5CA9, 0x8AE3, 0x7FEB, 0x8AE4, 0x8D0B, 0x8AE5, 0x96C1, 0x8AE6, 0x9811, 0x8AE7, 0x9854, 0x8AE8, 0x9858, 0x8AE9, 0x4F01, + 0x8AEA, 0x4F0E, 0x8AEB, 0x5371, 0x8AEC, 0x559C, 0x8AED, 0x5668, 0x8AEE, 0x57FA, 0x8AEF, 0x5947, 0x8AF0, 0x5B09, 0x8AF1, 0x5BC4, + 0x8AF2, 0x5C90, 0x8AF3, 0x5E0C, 0x8AF4, 0x5E7E, 0x8AF5, 0x5FCC, 0x8AF6, 0x63EE, 0x8AF7, 0x673A, 0x8AF8, 0x65D7, 0x8AF9, 0x65E2, + 0x8AFA, 0x671F, 0x8AFB, 0x68CB, 0x8AFC, 0x68C4, 0x8B40, 0x6A5F, 0x8B41, 0x5E30, 0x8B42, 0x6BC5, 0x8B43, 0x6C17, 0x8B44, 0x6C7D, + 0x8B45, 0x757F, 0x8B46, 0x7948, 0x8B47, 0x5B63, 0x8B48, 0x7A00, 0x8B49, 0x7D00, 0x8B4A, 0x5FBD, 0x8B4B, 0x898F, 0x8B4C, 0x8A18, + 0x8B4D, 0x8CB4, 0x8B4E, 0x8D77, 0x8B4F, 0x8ECC, 0x8B50, 0x8F1D, 0x8B51, 0x98E2, 0x8B52, 0x9A0E, 0x8B53, 0x9B3C, 0x8B54, 0x4E80, + 0x8B55, 0x507D, 0x8B56, 0x5100, 0x8B57, 0x5993, 0x8B58, 0x5B9C, 0x8B59, 0x622F, 0x8B5A, 0x6280, 0x8B5B, 0x64EC, 0x8B5C, 0x6B3A, + 0x8B5D, 0x72A0, 0x8B5E, 0x7591, 0x8B5F, 0x7947, 0x8B60, 0x7FA9, 0x8B61, 0x87FB, 0x8B62, 0x8ABC, 0x8B63, 0x8B70, 0x8B64, 0x63AC, + 0x8B65, 0x83CA, 0x8B66, 0x97A0, 0x8B67, 0x5409, 0x8B68, 0x5403, 0x8B69, 0x55AB, 0x8B6A, 0x6854, 0x8B6B, 0x6A58, 0x8B6C, 0x8A70, + 0x8B6D, 0x7827, 0x8B6E, 0x6775, 0x8B6F, 0x9ECD, 0x8B70, 0x5374, 0x8B71, 0x5BA2, 0x8B72, 0x811A, 0x8B73, 0x8650, 0x8B74, 0x9006, + 0x8B75, 0x4E18, 0x8B76, 0x4E45, 0x8B77, 0x4EC7, 0x8B78, 0x4F11, 0x8B79, 0x53CA, 0x8B7A, 0x5438, 0x8B7B, 0x5BAE, 0x8B7C, 0x5F13, + 0x8B7D, 0x6025, 0x8B7E, 0x6551, 0x8B80, 0x673D, 0x8B81, 0x6C42, 0x8B82, 0x6C72, 0x8B83, 0x6CE3, 0x8B84, 0x7078, 0x8B85, 0x7403, + 0x8B86, 0x7A76, 0x8B87, 0x7AAE, 0x8B88, 0x7B08, 0x8B89, 0x7D1A, 0x8B8A, 0x7CFE, 0x8B8B, 0x7D66, 0x8B8C, 0x65E7, 0x8B8D, 0x725B, + 0x8B8E, 0x53BB, 0x8B8F, 0x5C45, 0x8B90, 0x5DE8, 0x8B91, 0x62D2, 0x8B92, 0x62E0, 0x8B93, 0x6319, 0x8B94, 0x6E20, 0x8B95, 0x865A, + 0x8B96, 0x8A31, 0x8B97, 0x8DDD, 0x8B98, 0x92F8, 0x8B99, 0x6F01, 0x8B9A, 0x79A6, 0x8B9B, 0x9B5A, 0x8B9C, 0x4EA8, 0x8B9D, 0x4EAB, + 0x8B9E, 0x4EAC, 0x8B9F, 0x4F9B, 0x8BA0, 0x4FA0, 0x8BA1, 0x50D1, 0x8BA2, 0x5147, 0x8BA3, 0x7AF6, 0x8BA4, 0x5171, 0x8BA5, 0x51F6, + 0x8BA6, 0x5354, 0x8BA7, 0x5321, 0x8BA8, 0x537F, 0x8BA9, 0x53EB, 0x8BAA, 0x55AC, 0x8BAB, 0x5883, 0x8BAC, 0x5CE1, 0x8BAD, 0x5F37, + 0x8BAE, 0x5F4A, 0x8BAF, 0x602F, 0x8BB0, 0x6050, 0x8BB1, 0x606D, 0x8BB2, 0x631F, 0x8BB3, 0x6559, 0x8BB4, 0x6A4B, 0x8BB5, 0x6CC1, + 0x8BB6, 0x72C2, 0x8BB7, 0x72ED, 0x8BB8, 0x77EF, 0x8BB9, 0x80F8, 0x8BBA, 0x8105, 0x8BBB, 0x8208, 0x8BBC, 0x854E, 0x8BBD, 0x90F7, + 0x8BBE, 0x93E1, 0x8BBF, 0x97FF, 0x8BC0, 0x9957, 0x8BC1, 0x9A5A, 0x8BC2, 0x4EF0, 0x8BC3, 0x51DD, 0x8BC4, 0x5C2D, 0x8BC5, 0x6681, + 0x8BC6, 0x696D, 0x8BC7, 0x5C40, 0x8BC8, 0x66F2, 0x8BC9, 0x6975, 0x8BCA, 0x7389, 0x8BCB, 0x6850, 0x8BCC, 0x7C81, 0x8BCD, 0x50C5, + 0x8BCE, 0x52E4, 0x8BCF, 0x5747, 0x8BD0, 0x5DFE, 0x8BD1, 0x9326, 0x8BD2, 0x65A4, 0x8BD3, 0x6B23, 0x8BD4, 0x6B3D, 0x8BD5, 0x7434, + 0x8BD6, 0x7981, 0x8BD7, 0x79BD, 0x8BD8, 0x7B4B, 0x8BD9, 0x7DCA, 0x8BDA, 0x82B9, 0x8BDB, 0x83CC, 0x8BDC, 0x887F, 0x8BDD, 0x895F, + 0x8BDE, 0x8B39, 0x8BDF, 0x8FD1, 0x8BE0, 0x91D1, 0x8BE1, 0x541F, 0x8BE2, 0x9280, 0x8BE3, 0x4E5D, 0x8BE4, 0x5036, 0x8BE5, 0x53E5, + 0x8BE6, 0x533A, 0x8BE7, 0x72D7, 0x8BE8, 0x7396, 0x8BE9, 0x77E9, 0x8BEA, 0x82E6, 0x8BEB, 0x8EAF, 0x8BEC, 0x99C6, 0x8BED, 0x99C8, + 0x8BEE, 0x99D2, 0x8BEF, 0x5177, 0x8BF0, 0x611A, 0x8BF1, 0x865E, 0x8BF2, 0x55B0, 0x8BF3, 0x7A7A, 0x8BF4, 0x5076, 0x8BF5, 0x5BD3, + 0x8BF6, 0x9047, 0x8BF7, 0x9685, 0x8BF8, 0x4E32, 0x8BF9, 0x6ADB, 0x8BFA, 0x91E7, 0x8BFB, 0x5C51, 0x8BFC, 0x5C48, 0x8C40, 0x6398, + 0x8C41, 0x7A9F, 0x8C42, 0x6C93, 0x8C43, 0x9774, 0x8C44, 0x8F61, 0x8C45, 0x7AAA, 0x8C46, 0x718A, 0x8C47, 0x9688, 0x8C48, 0x7C82, + 0x8C49, 0x6817, 0x8C4A, 0x7E70, 0x8C4B, 0x6851, 0x8C4C, 0x936C, 0x8C4D, 0x52F2, 0x8C4E, 0x541B, 0x8C4F, 0x85AB, 0x8C50, 0x8A13, + 0x8C51, 0x7FA4, 0x8C52, 0x8ECD, 0x8C53, 0x90E1, 0x8C54, 0x5366, 0x8C55, 0x8888, 0x8C56, 0x7941, 0x8C57, 0x4FC2, 0x8C58, 0x50BE, + 0x8C59, 0x5211, 0x8C5A, 0x5144, 0x8C5B, 0x5553, 0x8C5C, 0x572D, 0x8C5D, 0x73EA, 0x8C5E, 0x578B, 0x8C5F, 0x5951, 0x8C60, 0x5F62, + 0x8C61, 0x5F84, 0x8C62, 0x6075, 0x8C63, 0x6176, 0x8C64, 0x6167, 0x8C65, 0x61A9, 0x8C66, 0x63B2, 0x8C67, 0x643A, 0x8C68, 0x656C, + 0x8C69, 0x666F, 0x8C6A, 0x6842, 0x8C6B, 0x6E13, 0x8C6C, 0x7566, 0x8C6D, 0x7A3D, 0x8C6E, 0x7CFB, 0x8C6F, 0x7D4C, 0x8C70, 0x7D99, + 0x8C71, 0x7E4B, 0x8C72, 0x7F6B, 0x8C73, 0x830E, 0x8C74, 0x834A, 0x8C75, 0x86CD, 0x8C76, 0x8A08, 0x8C77, 0x8A63, 0x8C78, 0x8B66, + 0x8C79, 0x8EFD, 0x8C7A, 0x981A, 0x8C7B, 0x9D8F, 0x8C7C, 0x82B8, 0x8C7D, 0x8FCE, 0x8C7E, 0x9BE8, 0x8C80, 0x5287, 0x8C81, 0x621F, + 0x8C82, 0x6483, 0x8C83, 0x6FC0, 0x8C84, 0x9699, 0x8C85, 0x6841, 0x8C86, 0x5091, 0x8C87, 0x6B20, 0x8C88, 0x6C7A, 0x8C89, 0x6F54, + 0x8C8A, 0x7A74, 0x8C8B, 0x7D50, 0x8C8C, 0x8840, 0x8C8D, 0x8A23, 0x8C8E, 0x6708, 0x8C8F, 0x4EF6, 0x8C90, 0x5039, 0x8C91, 0x5026, + 0x8C92, 0x5065, 0x8C93, 0x517C, 0x8C94, 0x5238, 0x8C95, 0x5263, 0x8C96, 0x55A7, 0x8C97, 0x570F, 0x8C98, 0x5805, 0x8C99, 0x5ACC, + 0x8C9A, 0x5EFA, 0x8C9B, 0x61B2, 0x8C9C, 0x61F8, 0x8C9D, 0x62F3, 0x8C9E, 0x6372, 0x8C9F, 0x691C, 0x8CA0, 0x6A29, 0x8CA1, 0x727D, + 0x8CA2, 0x72AC, 0x8CA3, 0x732E, 0x8CA4, 0x7814, 0x8CA5, 0x786F, 0x8CA6, 0x7D79, 0x8CA7, 0x770C, 0x8CA8, 0x80A9, 0x8CA9, 0x898B, + 0x8CAA, 0x8B19, 0x8CAB, 0x8CE2, 0x8CAC, 0x8ED2, 0x8CAD, 0x9063, 0x8CAE, 0x9375, 0x8CAF, 0x967A, 0x8CB0, 0x9855, 0x8CB1, 0x9A13, + 0x8CB2, 0x9E78, 0x8CB3, 0x5143, 0x8CB4, 0x539F, 0x8CB5, 0x53B3, 0x8CB6, 0x5E7B, 0x8CB7, 0x5F26, 0x8CB8, 0x6E1B, 0x8CB9, 0x6E90, + 0x8CBA, 0x7384, 0x8CBB, 0x73FE, 0x8CBC, 0x7D43, 0x8CBD, 0x8237, 0x8CBE, 0x8A00, 0x8CBF, 0x8AFA, 0x8CC0, 0x9650, 0x8CC1, 0x4E4E, + 0x8CC2, 0x500B, 0x8CC3, 0x53E4, 0x8CC4, 0x547C, 0x8CC5, 0x56FA, 0x8CC6, 0x59D1, 0x8CC7, 0x5B64, 0x8CC8, 0x5DF1, 0x8CC9, 0x5EAB, + 0x8CCA, 0x5F27, 0x8CCB, 0x6238, 0x8CCC, 0x6545, 0x8CCD, 0x67AF, 0x8CCE, 0x6E56, 0x8CCF, 0x72D0, 0x8CD0, 0x7CCA, 0x8CD1, 0x88B4, + 0x8CD2, 0x80A1, 0x8CD3, 0x80E1, 0x8CD4, 0x83F0, 0x8CD5, 0x864E, 0x8CD6, 0x8A87, 0x8CD7, 0x8DE8, 0x8CD8, 0x9237, 0x8CD9, 0x96C7, + 0x8CDA, 0x9867, 0x8CDB, 0x9F13, 0x8CDC, 0x4E94, 0x8CDD, 0x4E92, 0x8CDE, 0x4F0D, 0x8CDF, 0x5348, 0x8CE0, 0x5449, 0x8CE1, 0x543E, + 0x8CE2, 0x5A2F, 0x8CE3, 0x5F8C, 0x8CE4, 0x5FA1, 0x8CE5, 0x609F, 0x8CE6, 0x68A7, 0x8CE7, 0x6A8E, 0x8CE8, 0x745A, 0x8CE9, 0x7881, + 0x8CEA, 0x8A9E, 0x8CEB, 0x8AA4, 0x8CEC, 0x8B77, 0x8CED, 0x9190, 0x8CEE, 0x4E5E, 0x8CEF, 0x9BC9, 0x8CF0, 0x4EA4, 0x8CF1, 0x4F7C, + 0x8CF2, 0x4FAF, 0x8CF3, 0x5019, 0x8CF4, 0x5016, 0x8CF5, 0x5149, 0x8CF6, 0x516C, 0x8CF7, 0x529F, 0x8CF8, 0x52B9, 0x8CF9, 0x52FE, + 0x8CFA, 0x539A, 0x8CFB, 0x53E3, 0x8CFC, 0x5411, 0x8D40, 0x540E, 0x8D41, 0x5589, 0x8D42, 0x5751, 0x8D43, 0x57A2, 0x8D44, 0x597D, + 0x8D45, 0x5B54, 0x8D46, 0x5B5D, 0x8D47, 0x5B8F, 0x8D48, 0x5DE5, 0x8D49, 0x5DE7, 0x8D4A, 0x5DF7, 0x8D4B, 0x5E78, 0x8D4C, 0x5E83, + 0x8D4D, 0x5E9A, 0x8D4E, 0x5EB7, 0x8D4F, 0x5F18, 0x8D50, 0x6052, 0x8D51, 0x614C, 0x8D52, 0x6297, 0x8D53, 0x62D8, 0x8D54, 0x63A7, + 0x8D55, 0x653B, 0x8D56, 0x6602, 0x8D57, 0x6643, 0x8D58, 0x66F4, 0x8D59, 0x676D, 0x8D5A, 0x6821, 0x8D5B, 0x6897, 0x8D5C, 0x69CB, + 0x8D5D, 0x6C5F, 0x8D5E, 0x6D2A, 0x8D5F, 0x6D69, 0x8D60, 0x6E2F, 0x8D61, 0x6E9D, 0x8D62, 0x7532, 0x8D63, 0x7687, 0x8D64, 0x786C, + 0x8D65, 0x7A3F, 0x8D66, 0x7CE0, 0x8D67, 0x7D05, 0x8D68, 0x7D18, 0x8D69, 0x7D5E, 0x8D6A, 0x7DB1, 0x8D6B, 0x8015, 0x8D6C, 0x8003, + 0x8D6D, 0x80AF, 0x8D6E, 0x80B1, 0x8D6F, 0x8154, 0x8D70, 0x818F, 0x8D71, 0x822A, 0x8D72, 0x8352, 0x8D73, 0x884C, 0x8D74, 0x8861, + 0x8D75, 0x8B1B, 0x8D76, 0x8CA2, 0x8D77, 0x8CFC, 0x8D78, 0x90CA, 0x8D79, 0x9175, 0x8D7A, 0x9271, 0x8D7B, 0x783F, 0x8D7C, 0x92FC, + 0x8D7D, 0x95A4, 0x8D7E, 0x964D, 0x8D80, 0x9805, 0x8D81, 0x9999, 0x8D82, 0x9AD8, 0x8D83, 0x9D3B, 0x8D84, 0x525B, 0x8D85, 0x52AB, + 0x8D86, 0x53F7, 0x8D87, 0x5408, 0x8D88, 0x58D5, 0x8D89, 0x62F7, 0x8D8A, 0x6FE0, 0x8D8B, 0x8C6A, 0x8D8C, 0x8F5F, 0x8D8D, 0x9EB9, + 0x8D8E, 0x514B, 0x8D8F, 0x523B, 0x8D90, 0x544A, 0x8D91, 0x56FD, 0x8D92, 0x7A40, 0x8D93, 0x9177, 0x8D94, 0x9D60, 0x8D95, 0x9ED2, + 0x8D96, 0x7344, 0x8D97, 0x6F09, 0x8D98, 0x8170, 0x8D99, 0x7511, 0x8D9A, 0x5FFD, 0x8D9B, 0x60DA, 0x8D9C, 0x9AA8, 0x8D9D, 0x72DB, + 0x8D9E, 0x8FBC, 0x8D9F, 0x6B64, 0x8DA0, 0x9803, 0x8DA1, 0x4ECA, 0x8DA2, 0x56F0, 0x8DA3, 0x5764, 0x8DA4, 0x58BE, 0x8DA5, 0x5A5A, + 0x8DA6, 0x6068, 0x8DA7, 0x61C7, 0x8DA8, 0x660F, 0x8DA9, 0x6606, 0x8DAA, 0x6839, 0x8DAB, 0x68B1, 0x8DAC, 0x6DF7, 0x8DAD, 0x75D5, + 0x8DAE, 0x7D3A, 0x8DAF, 0x826E, 0x8DB0, 0x9B42, 0x8DB1, 0x4E9B, 0x8DB2, 0x4F50, 0x8DB3, 0x53C9, 0x8DB4, 0x5506, 0x8DB5, 0x5D6F, + 0x8DB6, 0x5DE6, 0x8DB7, 0x5DEE, 0x8DB8, 0x67FB, 0x8DB9, 0x6C99, 0x8DBA, 0x7473, 0x8DBB, 0x7802, 0x8DBC, 0x8A50, 0x8DBD, 0x9396, + 0x8DBE, 0x88DF, 0x8DBF, 0x5750, 0x8DC0, 0x5EA7, 0x8DC1, 0x632B, 0x8DC2, 0x50B5, 0x8DC3, 0x50AC, 0x8DC4, 0x518D, 0x8DC5, 0x6700, + 0x8DC6, 0x54C9, 0x8DC7, 0x585E, 0x8DC8, 0x59BB, 0x8DC9, 0x5BB0, 0x8DCA, 0x5F69, 0x8DCB, 0x624D, 0x8DCC, 0x63A1, 0x8DCD, 0x683D, + 0x8DCE, 0x6B73, 0x8DCF, 0x6E08, 0x8DD0, 0x707D, 0x8DD1, 0x91C7, 0x8DD2, 0x7280, 0x8DD3, 0x7815, 0x8DD4, 0x7826, 0x8DD5, 0x796D, + 0x8DD6, 0x658E, 0x8DD7, 0x7D30, 0x8DD8, 0x83DC, 0x8DD9, 0x88C1, 0x8DDA, 0x8F09, 0x8DDB, 0x969B, 0x8DDC, 0x5264, 0x8DDD, 0x5728, + 0x8DDE, 0x6750, 0x8DDF, 0x7F6A, 0x8DE0, 0x8CA1, 0x8DE1, 0x51B4, 0x8DE2, 0x5742, 0x8DE3, 0x962A, 0x8DE4, 0x583A, 0x8DE5, 0x698A, + 0x8DE6, 0x80B4, 0x8DE7, 0x54B2, 0x8DE8, 0x5D0E, 0x8DE9, 0x57FC, 0x8DEA, 0x7895, 0x8DEB, 0x9DFA, 0x8DEC, 0x4F5C, 0x8DED, 0x524A, + 0x8DEE, 0x548B, 0x8DEF, 0x643E, 0x8DF0, 0x6628, 0x8DF1, 0x6714, 0x8DF2, 0x67F5, 0x8DF3, 0x7A84, 0x8DF4, 0x7B56, 0x8DF5, 0x7D22, + 0x8DF6, 0x932F, 0x8DF7, 0x685C, 0x8DF8, 0x9BAD, 0x8DF9, 0x7B39, 0x8DFA, 0x5319, 0x8DFB, 0x518A, 0x8DFC, 0x5237, 0x8E40, 0x5BDF, + 0x8E41, 0x62F6, 0x8E42, 0x64AE, 0x8E43, 0x64E6, 0x8E44, 0x672D, 0x8E45, 0x6BBA, 0x8E46, 0x85A9, 0x8E47, 0x96D1, 0x8E48, 0x7690, + 0x8E49, 0x9BD6, 0x8E4A, 0x634C, 0x8E4B, 0x9306, 0x8E4C, 0x9BAB, 0x8E4D, 0x76BF, 0x8E4E, 0x6652, 0x8E4F, 0x4E09, 0x8E50, 0x5098, + 0x8E51, 0x53C2, 0x8E52, 0x5C71, 0x8E53, 0x60E8, 0x8E54, 0x6492, 0x8E55, 0x6563, 0x8E56, 0x685F, 0x8E57, 0x71E6, 0x8E58, 0x73CA, + 0x8E59, 0x7523, 0x8E5A, 0x7B97, 0x8E5B, 0x7E82, 0x8E5C, 0x8695, 0x8E5D, 0x8B83, 0x8E5E, 0x8CDB, 0x8E5F, 0x9178, 0x8E60, 0x9910, + 0x8E61, 0x65AC, 0x8E62, 0x66AB, 0x8E63, 0x6B8B, 0x8E64, 0x4ED5, 0x8E65, 0x4ED4, 0x8E66, 0x4F3A, 0x8E67, 0x4F7F, 0x8E68, 0x523A, + 0x8E69, 0x53F8, 0x8E6A, 0x53F2, 0x8E6B, 0x55E3, 0x8E6C, 0x56DB, 0x8E6D, 0x58EB, 0x8E6E, 0x59CB, 0x8E6F, 0x59C9, 0x8E70, 0x59FF, + 0x8E71, 0x5B50, 0x8E72, 0x5C4D, 0x8E73, 0x5E02, 0x8E74, 0x5E2B, 0x8E75, 0x5FD7, 0x8E76, 0x601D, 0x8E77, 0x6307, 0x8E78, 0x652F, + 0x8E79, 0x5B5C, 0x8E7A, 0x65AF, 0x8E7B, 0x65BD, 0x8E7C, 0x65E8, 0x8E7D, 0x679D, 0x8E7E, 0x6B62, 0x8E80, 0x6B7B, 0x8E81, 0x6C0F, + 0x8E82, 0x7345, 0x8E83, 0x7949, 0x8E84, 0x79C1, 0x8E85, 0x7CF8, 0x8E86, 0x7D19, 0x8E87, 0x7D2B, 0x8E88, 0x80A2, 0x8E89, 0x8102, + 0x8E8A, 0x81F3, 0x8E8B, 0x8996, 0x8E8C, 0x8A5E, 0x8E8D, 0x8A69, 0x8E8E, 0x8A66, 0x8E8F, 0x8A8C, 0x8E90, 0x8AEE, 0x8E91, 0x8CC7, + 0x8E92, 0x8CDC, 0x8E93, 0x96CC, 0x8E94, 0x98FC, 0x8E95, 0x6B6F, 0x8E96, 0x4E8B, 0x8E97, 0x4F3C, 0x8E98, 0x4F8D, 0x8E99, 0x5150, + 0x8E9A, 0x5B57, 0x8E9B, 0x5BFA, 0x8E9C, 0x6148, 0x8E9D, 0x6301, 0x8E9E, 0x6642, 0x8E9F, 0x6B21, 0x8EA0, 0x6ECB, 0x8EA1, 0x6CBB, + 0x8EA2, 0x723E, 0x8EA3, 0x74BD, 0x8EA4, 0x75D4, 0x8EA5, 0x78C1, 0x8EA6, 0x793A, 0x8EA7, 0x800C, 0x8EA8, 0x8033, 0x8EA9, 0x81EA, + 0x8EAA, 0x8494, 0x8EAB, 0x8F9E, 0x8EAC, 0x6C50, 0x8EAD, 0x9E7F, 0x8EAE, 0x5F0F, 0x8EAF, 0x8B58, 0x8EB0, 0x9D2B, 0x8EB1, 0x7AFA, + 0x8EB2, 0x8EF8, 0x8EB3, 0x5B8D, 0x8EB4, 0x96EB, 0x8EB5, 0x4E03, 0x8EB6, 0x53F1, 0x8EB7, 0x57F7, 0x8EB8, 0x5931, 0x8EB9, 0x5AC9, + 0x8EBA, 0x5BA4, 0x8EBB, 0x6089, 0x8EBC, 0x6E7F, 0x8EBD, 0x6F06, 0x8EBE, 0x75BE, 0x8EBF, 0x8CEA, 0x8EC0, 0x5B9F, 0x8EC1, 0x8500, + 0x8EC2, 0x7BE0, 0x8EC3, 0x5072, 0x8EC4, 0x67F4, 0x8EC5, 0x829D, 0x8EC6, 0x5C61, 0x8EC7, 0x854A, 0x8EC8, 0x7E1E, 0x8EC9, 0x820E, + 0x8ECA, 0x5199, 0x8ECB, 0x5C04, 0x8ECC, 0x6368, 0x8ECD, 0x8D66, 0x8ECE, 0x659C, 0x8ECF, 0x716E, 0x8ED0, 0x793E, 0x8ED1, 0x7D17, + 0x8ED2, 0x8005, 0x8ED3, 0x8B1D, 0x8ED4, 0x8ECA, 0x8ED5, 0x906E, 0x8ED6, 0x86C7, 0x8ED7, 0x90AA, 0x8ED8, 0x501F, 0x8ED9, 0x52FA, + 0x8EDA, 0x5C3A, 0x8EDB, 0x6753, 0x8EDC, 0x707C, 0x8EDD, 0x7235, 0x8EDE, 0x914C, 0x8EDF, 0x91C8, 0x8EE0, 0x932B, 0x8EE1, 0x82E5, + 0x8EE2, 0x5BC2, 0x8EE3, 0x5F31, 0x8EE4, 0x60F9, 0x8EE5, 0x4E3B, 0x8EE6, 0x53D6, 0x8EE7, 0x5B88, 0x8EE8, 0x624B, 0x8EE9, 0x6731, + 0x8EEA, 0x6B8A, 0x8EEB, 0x72E9, 0x8EEC, 0x73E0, 0x8EED, 0x7A2E, 0x8EEE, 0x816B, 0x8EEF, 0x8DA3, 0x8EF0, 0x9152, 0x8EF1, 0x9996, + 0x8EF2, 0x5112, 0x8EF3, 0x53D7, 0x8EF4, 0x546A, 0x8EF5, 0x5BFF, 0x8EF6, 0x6388, 0x8EF7, 0x6A39, 0x8EF8, 0x7DAC, 0x8EF9, 0x9700, + 0x8EFA, 0x56DA, 0x8EFB, 0x53CE, 0x8EFC, 0x5468, 0x8F40, 0x5B97, 0x8F41, 0x5C31, 0x8F42, 0x5DDE, 0x8F43, 0x4FEE, 0x8F44, 0x6101, + 0x8F45, 0x62FE, 0x8F46, 0x6D32, 0x8F47, 0x79C0, 0x8F48, 0x79CB, 0x8F49, 0x7D42, 0x8F4A, 0x7E4D, 0x8F4B, 0x7FD2, 0x8F4C, 0x81ED, + 0x8F4D, 0x821F, 0x8F4E, 0x8490, 0x8F4F, 0x8846, 0x8F50, 0x8972, 0x8F51, 0x8B90, 0x8F52, 0x8E74, 0x8F53, 0x8F2F, 0x8F54, 0x9031, + 0x8F55, 0x914B, 0x8F56, 0x916C, 0x8F57, 0x96C6, 0x8F58, 0x919C, 0x8F59, 0x4EC0, 0x8F5A, 0x4F4F, 0x8F5B, 0x5145, 0x8F5C, 0x5341, + 0x8F5D, 0x5F93, 0x8F5E, 0x620E, 0x8F5F, 0x67D4, 0x8F60, 0x6C41, 0x8F61, 0x6E0B, 0x8F62, 0x7363, 0x8F63, 0x7E26, 0x8F64, 0x91CD, + 0x8F65, 0x9283, 0x8F66, 0x53D4, 0x8F67, 0x5919, 0x8F68, 0x5BBF, 0x8F69, 0x6DD1, 0x8F6A, 0x795D, 0x8F6B, 0x7E2E, 0x8F6C, 0x7C9B, + 0x8F6D, 0x587E, 0x8F6E, 0x719F, 0x8F6F, 0x51FA, 0x8F70, 0x8853, 0x8F71, 0x8FF0, 0x8F72, 0x4FCA, 0x8F73, 0x5CFB, 0x8F74, 0x6625, + 0x8F75, 0x77AC, 0x8F76, 0x7AE3, 0x8F77, 0x821C, 0x8F78, 0x99FF, 0x8F79, 0x51C6, 0x8F7A, 0x5FAA, 0x8F7B, 0x65EC, 0x8F7C, 0x696F, + 0x8F7D, 0x6B89, 0x8F7E, 0x6DF3, 0x8F80, 0x6E96, 0x8F81, 0x6F64, 0x8F82, 0x76FE, 0x8F83, 0x7D14, 0x8F84, 0x5DE1, 0x8F85, 0x9075, + 0x8F86, 0x9187, 0x8F87, 0x9806, 0x8F88, 0x51E6, 0x8F89, 0x521D, 0x8F8A, 0x6240, 0x8F8B, 0x6691, 0x8F8C, 0x66D9, 0x8F8D, 0x6E1A, + 0x8F8E, 0x5EB6, 0x8F8F, 0x7DD2, 0x8F90, 0x7F72, 0x8F91, 0x66F8, 0x8F92, 0x85AF, 0x8F93, 0x85F7, 0x8F94, 0x8AF8, 0x8F95, 0x52A9, + 0x8F96, 0x53D9, 0x8F97, 0x5973, 0x8F98, 0x5E8F, 0x8F99, 0x5F90, 0x8F9A, 0x6055, 0x8F9B, 0x92E4, 0x8F9C, 0x9664, 0x8F9D, 0x50B7, + 0x8F9E, 0x511F, 0x8F9F, 0x52DD, 0x8FA0, 0x5320, 0x8FA1, 0x5347, 0x8FA2, 0x53EC, 0x8FA3, 0x54E8, 0x8FA4, 0x5546, 0x8FA5, 0x5531, + 0x8FA6, 0x5617, 0x8FA7, 0x5968, 0x8FA8, 0x59BE, 0x8FA9, 0x5A3C, 0x8FAA, 0x5BB5, 0x8FAB, 0x5C06, 0x8FAC, 0x5C0F, 0x8FAD, 0x5C11, + 0x8FAE, 0x5C1A, 0x8FAF, 0x5E84, 0x8FB0, 0x5E8A, 0x8FB1, 0x5EE0, 0x8FB2, 0x5F70, 0x8FB3, 0x627F, 0x8FB4, 0x6284, 0x8FB5, 0x62DB, + 0x8FB6, 0x638C, 0x8FB7, 0x6377, 0x8FB8, 0x6607, 0x8FB9, 0x660C, 0x8FBA, 0x662D, 0x8FBB, 0x6676, 0x8FBC, 0x677E, 0x8FBD, 0x68A2, + 0x8FBE, 0x6A1F, 0x8FBF, 0x6A35, 0x8FC0, 0x6CBC, 0x8FC1, 0x6D88, 0x8FC2, 0x6E09, 0x8FC3, 0x6E58, 0x8FC4, 0x713C, 0x8FC5, 0x7126, + 0x8FC6, 0x7167, 0x8FC7, 0x75C7, 0x8FC8, 0x7701, 0x8FC9, 0x785D, 0x8FCA, 0x7901, 0x8FCB, 0x7965, 0x8FCC, 0x79F0, 0x8FCD, 0x7AE0, + 0x8FCE, 0x7B11, 0x8FCF, 0x7CA7, 0x8FD0, 0x7D39, 0x8FD1, 0x8096, 0x8FD2, 0x83D6, 0x8FD3, 0x848B, 0x8FD4, 0x8549, 0x8FD5, 0x885D, + 0x8FD6, 0x88F3, 0x8FD7, 0x8A1F, 0x8FD8, 0x8A3C, 0x8FD9, 0x8A54, 0x8FDA, 0x8A73, 0x8FDB, 0x8C61, 0x8FDC, 0x8CDE, 0x8FDD, 0x91A4, + 0x8FDE, 0x9266, 0x8FDF, 0x937E, 0x8FE0, 0x9418, 0x8FE1, 0x969C, 0x8FE2, 0x9798, 0x8FE3, 0x4E0A, 0x8FE4, 0x4E08, 0x8FE5, 0x4E1E, + 0x8FE6, 0x4E57, 0x8FE7, 0x5197, 0x8FE8, 0x5270, 0x8FE9, 0x57CE, 0x8FEA, 0x5834, 0x8FEB, 0x58CC, 0x8FEC, 0x5B22, 0x8FED, 0x5E38, + 0x8FEE, 0x60C5, 0x8FEF, 0x64FE, 0x8FF0, 0x6761, 0x8FF1, 0x6756, 0x8FF2, 0x6D44, 0x8FF3, 0x72B6, 0x8FF4, 0x7573, 0x8FF5, 0x7A63, + 0x8FF6, 0x84B8, 0x8FF7, 0x8B72, 0x8FF8, 0x91B8, 0x8FF9, 0x9320, 0x8FFA, 0x5631, 0x8FFB, 0x57F4, 0x8FFC, 0x98FE, 0x9040, 0x62ED, + 0x9041, 0x690D, 0x9042, 0x6B96, 0x9043, 0x71ED, 0x9044, 0x7E54, 0x9045, 0x8077, 0x9046, 0x8272, 0x9047, 0x89E6, 0x9048, 0x98DF, + 0x9049, 0x8755, 0x904A, 0x8FB1, 0x904B, 0x5C3B, 0x904C, 0x4F38, 0x904D, 0x4FE1, 0x904E, 0x4FB5, 0x904F, 0x5507, 0x9050, 0x5A20, + 0x9051, 0x5BDD, 0x9052, 0x5BE9, 0x9053, 0x5FC3, 0x9054, 0x614E, 0x9055, 0x632F, 0x9056, 0x65B0, 0x9057, 0x664B, 0x9058, 0x68EE, + 0x9059, 0x699B, 0x905A, 0x6D78, 0x905B, 0x6DF1, 0x905C, 0x7533, 0x905D, 0x75B9, 0x905E, 0x771F, 0x905F, 0x795E, 0x9060, 0x79E6, + 0x9061, 0x7D33, 0x9062, 0x81E3, 0x9063, 0x82AF, 0x9064, 0x85AA, 0x9065, 0x89AA, 0x9066, 0x8A3A, 0x9067, 0x8EAB, 0x9068, 0x8F9B, + 0x9069, 0x9032, 0x906A, 0x91DD, 0x906B, 0x9707, 0x906C, 0x4EBA, 0x906D, 0x4EC1, 0x906E, 0x5203, 0x906F, 0x5875, 0x9070, 0x58EC, + 0x9071, 0x5C0B, 0x9072, 0x751A, 0x9073, 0x5C3D, 0x9074, 0x814E, 0x9075, 0x8A0A, 0x9076, 0x8FC5, 0x9077, 0x9663, 0x9078, 0x976D, + 0x9079, 0x7B25, 0x907A, 0x8ACF, 0x907B, 0x9808, 0x907C, 0x9162, 0x907D, 0x56F3, 0x907E, 0x53A8, 0x9080, 0x9017, 0x9081, 0x5439, + 0x9082, 0x5782, 0x9083, 0x5E25, 0x9084, 0x63A8, 0x9085, 0x6C34, 0x9086, 0x708A, 0x9087, 0x7761, 0x9088, 0x7C8B, 0x9089, 0x7FE0, + 0x908A, 0x8870, 0x908B, 0x9042, 0x908C, 0x9154, 0x908D, 0x9310, 0x908E, 0x9318, 0x908F, 0x968F, 0x9090, 0x745E, 0x9091, 0x9AC4, + 0x9092, 0x5D07, 0x9093, 0x5D69, 0x9094, 0x6570, 0x9095, 0x67A2, 0x9096, 0x8DA8, 0x9097, 0x96DB, 0x9098, 0x636E, 0x9099, 0x6749, + 0x909A, 0x6919, 0x909B, 0x83C5, 0x909C, 0x9817, 0x909D, 0x96C0, 0x909E, 0x88FE, 0x909F, 0x6F84, 0x90A0, 0x647A, 0x90A1, 0x5BF8, + 0x90A2, 0x4E16, 0x90A3, 0x702C, 0x90A4, 0x755D, 0x90A5, 0x662F, 0x90A6, 0x51C4, 0x90A7, 0x5236, 0x90A8, 0x52E2, 0x90A9, 0x59D3, + 0x90AA, 0x5F81, 0x90AB, 0x6027, 0x90AC, 0x6210, 0x90AD, 0x653F, 0x90AE, 0x6574, 0x90AF, 0x661F, 0x90B0, 0x6674, 0x90B1, 0x68F2, + 0x90B2, 0x6816, 0x90B3, 0x6B63, 0x90B4, 0x6E05, 0x90B5, 0x7272, 0x90B6, 0x751F, 0x90B7, 0x76DB, 0x90B8, 0x7CBE, 0x90B9, 0x8056, + 0x90BA, 0x58F0, 0x90BB, 0x88FD, 0x90BC, 0x897F, 0x90BD, 0x8AA0, 0x90BE, 0x8A93, 0x90BF, 0x8ACB, 0x90C0, 0x901D, 0x90C1, 0x9192, + 0x90C2, 0x9752, 0x90C3, 0x9759, 0x90C4, 0x6589, 0x90C5, 0x7A0E, 0x90C6, 0x8106, 0x90C7, 0x96BB, 0x90C8, 0x5E2D, 0x90C9, 0x60DC, + 0x90CA, 0x621A, 0x90CB, 0x65A5, 0x90CC, 0x6614, 0x90CD, 0x6790, 0x90CE, 0x77F3, 0x90CF, 0x7A4D, 0x90D0, 0x7C4D, 0x90D1, 0x7E3E, + 0x90D2, 0x810A, 0x90D3, 0x8CAC, 0x90D4, 0x8D64, 0x90D5, 0x8DE1, 0x90D6, 0x8E5F, 0x90D7, 0x78A9, 0x90D8, 0x5207, 0x90D9, 0x62D9, + 0x90DA, 0x63A5, 0x90DB, 0x6442, 0x90DC, 0x6298, 0x90DD, 0x8A2D, 0x90DE, 0x7A83, 0x90DF, 0x7BC0, 0x90E0, 0x8AAC, 0x90E1, 0x96EA, + 0x90E2, 0x7D76, 0x90E3, 0x820C, 0x90E4, 0x8749, 0x90E5, 0x4ED9, 0x90E6, 0x5148, 0x90E7, 0x5343, 0x90E8, 0x5360, 0x90E9, 0x5BA3, + 0x90EA, 0x5C02, 0x90EB, 0x5C16, 0x90EC, 0x5DDD, 0x90ED, 0x6226, 0x90EE, 0x6247, 0x90EF, 0x64B0, 0x90F0, 0x6813, 0x90F1, 0x6834, + 0x90F2, 0x6CC9, 0x90F3, 0x6D45, 0x90F4, 0x6D17, 0x90F5, 0x67D3, 0x90F6, 0x6F5C, 0x90F7, 0x714E, 0x90F8, 0x717D, 0x90F9, 0x65CB, + 0x90FA, 0x7A7F, 0x90FB, 0x7BAD, 0x90FC, 0x7DDA, 0x9140, 0x7E4A, 0x9141, 0x7FA8, 0x9142, 0x817A, 0x9143, 0x821B, 0x9144, 0x8239, + 0x9145, 0x85A6, 0x9146, 0x8A6E, 0x9147, 0x8CCE, 0x9148, 0x8DF5, 0x9149, 0x9078, 0x914A, 0x9077, 0x914B, 0x92AD, 0x914C, 0x9291, + 0x914D, 0x9583, 0x914E, 0x9BAE, 0x914F, 0x524D, 0x9150, 0x5584, 0x9151, 0x6F38, 0x9152, 0x7136, 0x9153, 0x5168, 0x9154, 0x7985, + 0x9155, 0x7E55, 0x9156, 0x81B3, 0x9157, 0x7CCE, 0x9158, 0x564C, 0x9159, 0x5851, 0x915A, 0x5CA8, 0x915B, 0x63AA, 0x915C, 0x66FE, + 0x915D, 0x66FD, 0x915E, 0x695A, 0x915F, 0x72D9, 0x9160, 0x758F, 0x9161, 0x758E, 0x9162, 0x790E, 0x9163, 0x7956, 0x9164, 0x79DF, + 0x9165, 0x7C97, 0x9166, 0x7D20, 0x9167, 0x7D44, 0x9168, 0x8607, 0x9169, 0x8A34, 0x916A, 0x963B, 0x916B, 0x9061, 0x916C, 0x9F20, + 0x916D, 0x50E7, 0x916E, 0x5275, 0x916F, 0x53CC, 0x9170, 0x53E2, 0x9171, 0x5009, 0x9172, 0x55AA, 0x9173, 0x58EE, 0x9174, 0x594F, + 0x9175, 0x723D, 0x9176, 0x5B8B, 0x9177, 0x5C64, 0x9178, 0x531D, 0x9179, 0x60E3, 0x917A, 0x60F3, 0x917B, 0x635C, 0x917C, 0x6383, + 0x917D, 0x633F, 0x917E, 0x63BB, 0x9180, 0x64CD, 0x9181, 0x65E9, 0x9182, 0x66F9, 0x9183, 0x5DE3, 0x9184, 0x69CD, 0x9185, 0x69FD, + 0x9186, 0x6F15, 0x9187, 0x71E5, 0x9188, 0x4E89, 0x9189, 0x75E9, 0x918A, 0x76F8, 0x918B, 0x7A93, 0x918C, 0x7CDF, 0x918D, 0x7DCF, + 0x918E, 0x7D9C, 0x918F, 0x8061, 0x9190, 0x8349, 0x9191, 0x8358, 0x9192, 0x846C, 0x9193, 0x84BC, 0x9194, 0x85FB, 0x9195, 0x88C5, + 0x9196, 0x8D70, 0x9197, 0x9001, 0x9198, 0x906D, 0x9199, 0x9397, 0x919A, 0x971C, 0x919B, 0x9A12, 0x919C, 0x50CF, 0x919D, 0x5897, + 0x919E, 0x618E, 0x919F, 0x81D3, 0x91A0, 0x8535, 0x91A1, 0x8D08, 0x91A2, 0x9020, 0x91A3, 0x4FC3, 0x91A4, 0x5074, 0x91A5, 0x5247, + 0x91A6, 0x5373, 0x91A7, 0x606F, 0x91A8, 0x6349, 0x91A9, 0x675F, 0x91AA, 0x6E2C, 0x91AB, 0x8DB3, 0x91AC, 0x901F, 0x91AD, 0x4FD7, + 0x91AE, 0x5C5E, 0x91AF, 0x8CCA, 0x91B0, 0x65CF, 0x91B1, 0x7D9A, 0x91B2, 0x5352, 0x91B3, 0x8896, 0x91B4, 0x5176, 0x91B5, 0x63C3, + 0x91B6, 0x5B58, 0x91B7, 0x5B6B, 0x91B8, 0x5C0A, 0x91B9, 0x640D, 0x91BA, 0x6751, 0x91BB, 0x905C, 0x91BC, 0x4ED6, 0x91BD, 0x591A, + 0x91BE, 0x592A, 0x91BF, 0x6C70, 0x91C0, 0x8A51, 0x91C1, 0x553E, 0x91C2, 0x5815, 0x91C3, 0x59A5, 0x91C4, 0x60F0, 0x91C5, 0x6253, + 0x91C6, 0x67C1, 0x91C7, 0x8235, 0x91C8, 0x6955, 0x91C9, 0x9640, 0x91CA, 0x99C4, 0x91CB, 0x9A28, 0x91CC, 0x4F53, 0x91CD, 0x5806, + 0x91CE, 0x5BFE, 0x91CF, 0x8010, 0x91D0, 0x5CB1, 0x91D1, 0x5E2F, 0x91D2, 0x5F85, 0x91D3, 0x6020, 0x91D4, 0x614B, 0x91D5, 0x6234, + 0x91D6, 0x66FF, 0x91D7, 0x6CF0, 0x91D8, 0x6EDE, 0x91D9, 0x80CE, 0x91DA, 0x817F, 0x91DB, 0x82D4, 0x91DC, 0x888B, 0x91DD, 0x8CB8, + 0x91DE, 0x9000, 0x91DF, 0x902E, 0x91E0, 0x968A, 0x91E1, 0x9EDB, 0x91E2, 0x9BDB, 0x91E3, 0x4EE3, 0x91E4, 0x53F0, 0x91E5, 0x5927, + 0x91E6, 0x7B2C, 0x91E7, 0x918D, 0x91E8, 0x984C, 0x91E9, 0x9DF9, 0x91EA, 0x6EDD, 0x91EB, 0x7027, 0x91EC, 0x5353, 0x91ED, 0x5544, + 0x91EE, 0x5B85, 0x91EF, 0x6258, 0x91F0, 0x629E, 0x91F1, 0x62D3, 0x91F2, 0x6CA2, 0x91F3, 0x6FEF, 0x91F4, 0x7422, 0x91F5, 0x8A17, + 0x91F6, 0x9438, 0x91F7, 0x6FC1, 0x91F8, 0x8AFE, 0x91F9, 0x8338, 0x91FA, 0x51E7, 0x91FB, 0x86F8, 0x91FC, 0x53EA, 0x9240, 0x53E9, + 0x9241, 0x4F46, 0x9242, 0x9054, 0x9243, 0x8FB0, 0x9244, 0x596A, 0x9245, 0x8131, 0x9246, 0x5DFD, 0x9247, 0x7AEA, 0x9248, 0x8FBF, + 0x9249, 0x68DA, 0x924A, 0x8C37, 0x924B, 0x72F8, 0x924C, 0x9C48, 0x924D, 0x6A3D, 0x924E, 0x8AB0, 0x924F, 0x4E39, 0x9250, 0x5358, + 0x9251, 0x5606, 0x9252, 0x5766, 0x9253, 0x62C5, 0x9254, 0x63A2, 0x9255, 0x65E6, 0x9256, 0x6B4E, 0x9257, 0x6DE1, 0x9258, 0x6E5B, + 0x9259, 0x70AD, 0x925A, 0x77ED, 0x925B, 0x7AEF, 0x925C, 0x7BAA, 0x925D, 0x7DBB, 0x925E, 0x803D, 0x925F, 0x80C6, 0x9260, 0x86CB, + 0x9261, 0x8A95, 0x9262, 0x935B, 0x9263, 0x56E3, 0x9264, 0x58C7, 0x9265, 0x5F3E, 0x9266, 0x65AD, 0x9267, 0x6696, 0x9268, 0x6A80, + 0x9269, 0x6BB5, 0x926A, 0x7537, 0x926B, 0x8AC7, 0x926C, 0x5024, 0x926D, 0x77E5, 0x926E, 0x5730, 0x926F, 0x5F1B, 0x9270, 0x6065, + 0x9271, 0x667A, 0x9272, 0x6C60, 0x9273, 0x75F4, 0x9274, 0x7A1A, 0x9275, 0x7F6E, 0x9276, 0x81F4, 0x9277, 0x8718, 0x9278, 0x9045, + 0x9279, 0x99B3, 0x927A, 0x7BC9, 0x927B, 0x755C, 0x927C, 0x7AF9, 0x927D, 0x7B51, 0x927E, 0x84C4, 0x9280, 0x9010, 0x9281, 0x79E9, + 0x9282, 0x7A92, 0x9283, 0x8336, 0x9284, 0x5AE1, 0x9285, 0x7740, 0x9286, 0x4E2D, 0x9287, 0x4EF2, 0x9288, 0x5B99, 0x9289, 0x5FE0, + 0x928A, 0x62BD, 0x928B, 0x663C, 0x928C, 0x67F1, 0x928D, 0x6CE8, 0x928E, 0x866B, 0x928F, 0x8877, 0x9290, 0x8A3B, 0x9291, 0x914E, + 0x9292, 0x92F3, 0x9293, 0x99D0, 0x9294, 0x6A17, 0x9295, 0x7026, 0x9296, 0x732A, 0x9297, 0x82E7, 0x9298, 0x8457, 0x9299, 0x8CAF, + 0x929A, 0x4E01, 0x929B, 0x5146, 0x929C, 0x51CB, 0x929D, 0x558B, 0x929E, 0x5BF5, 0x929F, 0x5E16, 0x92A0, 0x5E33, 0x92A1, 0x5E81, + 0x92A2, 0x5F14, 0x92A3, 0x5F35, 0x92A4, 0x5F6B, 0x92A5, 0x5FB4, 0x92A6, 0x61F2, 0x92A7, 0x6311, 0x92A8, 0x66A2, 0x92A9, 0x671D, + 0x92AA, 0x6F6E, 0x92AB, 0x7252, 0x92AC, 0x753A, 0x92AD, 0x773A, 0x92AE, 0x8074, 0x92AF, 0x8139, 0x92B0, 0x8178, 0x92B1, 0x8776, + 0x92B2, 0x8ABF, 0x92B3, 0x8ADC, 0x92B4, 0x8D85, 0x92B5, 0x8DF3, 0x92B6, 0x929A, 0x92B7, 0x9577, 0x92B8, 0x9802, 0x92B9, 0x9CE5, + 0x92BA, 0x52C5, 0x92BB, 0x6357, 0x92BC, 0x76F4, 0x92BD, 0x6715, 0x92BE, 0x6C88, 0x92BF, 0x73CD, 0x92C0, 0x8CC3, 0x92C1, 0x93AE, + 0x92C2, 0x9673, 0x92C3, 0x6D25, 0x92C4, 0x589C, 0x92C5, 0x690E, 0x92C6, 0x69CC, 0x92C7, 0x8FFD, 0x92C8, 0x939A, 0x92C9, 0x75DB, + 0x92CA, 0x901A, 0x92CB, 0x585A, 0x92CC, 0x6802, 0x92CD, 0x63B4, 0x92CE, 0x69FB, 0x92CF, 0x4F43, 0x92D0, 0x6F2C, 0x92D1, 0x67D8, + 0x92D2, 0x8FBB, 0x92D3, 0x8526, 0x92D4, 0x7DB4, 0x92D5, 0x9354, 0x92D6, 0x693F, 0x92D7, 0x6F70, 0x92D8, 0x576A, 0x92D9, 0x58F7, + 0x92DA, 0x5B2C, 0x92DB, 0x7D2C, 0x92DC, 0x722A, 0x92DD, 0x540A, 0x92DE, 0x91E3, 0x92DF, 0x9DB4, 0x92E0, 0x4EAD, 0x92E1, 0x4F4E, + 0x92E2, 0x505C, 0x92E3, 0x5075, 0x92E4, 0x5243, 0x92E5, 0x8C9E, 0x92E6, 0x5448, 0x92E7, 0x5824, 0x92E8, 0x5B9A, 0x92E9, 0x5E1D, + 0x92EA, 0x5E95, 0x92EB, 0x5EAD, 0x92EC, 0x5EF7, 0x92ED, 0x5F1F, 0x92EE, 0x608C, 0x92EF, 0x62B5, 0x92F0, 0x633A, 0x92F1, 0x63D0, + 0x92F2, 0x68AF, 0x92F3, 0x6C40, 0x92F4, 0x7887, 0x92F5, 0x798E, 0x92F6, 0x7A0B, 0x92F7, 0x7DE0, 0x92F8, 0x8247, 0x92F9, 0x8A02, + 0x92FA, 0x8AE6, 0x92FB, 0x8E44, 0x92FC, 0x9013, 0x9340, 0x90B8, 0x9341, 0x912D, 0x9342, 0x91D8, 0x9343, 0x9F0E, 0x9344, 0x6CE5, + 0x9345, 0x6458, 0x9346, 0x64E2, 0x9347, 0x6575, 0x9348, 0x6EF4, 0x9349, 0x7684, 0x934A, 0x7B1B, 0x934B, 0x9069, 0x934C, 0x93D1, + 0x934D, 0x6EBA, 0x934E, 0x54F2, 0x934F, 0x5FB9, 0x9350, 0x64A4, 0x9351, 0x8F4D, 0x9352, 0x8FED, 0x9353, 0x9244, 0x9354, 0x5178, + 0x9355, 0x586B, 0x9356, 0x5929, 0x9357, 0x5C55, 0x9358, 0x5E97, 0x9359, 0x6DFB, 0x935A, 0x7E8F, 0x935B, 0x751C, 0x935C, 0x8CBC, + 0x935D, 0x8EE2, 0x935E, 0x985B, 0x935F, 0x70B9, 0x9360, 0x4F1D, 0x9361, 0x6BBF, 0x9362, 0x6FB1, 0x9363, 0x7530, 0x9364, 0x96FB, + 0x9365, 0x514E, 0x9366, 0x5410, 0x9367, 0x5835, 0x9368, 0x5857, 0x9369, 0x59AC, 0x936A, 0x5C60, 0x936B, 0x5F92, 0x936C, 0x6597, + 0x936D, 0x675C, 0x936E, 0x6E21, 0x936F, 0x767B, 0x9370, 0x83DF, 0x9371, 0x8CED, 0x9372, 0x9014, 0x9373, 0x90FD, 0x9374, 0x934D, + 0x9375, 0x7825, 0x9376, 0x783A, 0x9377, 0x52AA, 0x9378, 0x5EA6, 0x9379, 0x571F, 0x937A, 0x5974, 0x937B, 0x6012, 0x937C, 0x5012, + 0x937D, 0x515A, 0x937E, 0x51AC, 0x9380, 0x51CD, 0x9381, 0x5200, 0x9382, 0x5510, 0x9383, 0x5854, 0x9384, 0x5858, 0x9385, 0x5957, + 0x9386, 0x5B95, 0x9387, 0x5CF6, 0x9388, 0x5D8B, 0x9389, 0x60BC, 0x938A, 0x6295, 0x938B, 0x642D, 0x938C, 0x6771, 0x938D, 0x6843, + 0x938E, 0x68BC, 0x938F, 0x68DF, 0x9390, 0x76D7, 0x9391, 0x6DD8, 0x9392, 0x6E6F, 0x9393, 0x6D9B, 0x9394, 0x706F, 0x9395, 0x71C8, + 0x9396, 0x5F53, 0x9397, 0x75D8, 0x9398, 0x7977, 0x9399, 0x7B49, 0x939A, 0x7B54, 0x939B, 0x7B52, 0x939C, 0x7CD6, 0x939D, 0x7D71, + 0x939E, 0x5230, 0x939F, 0x8463, 0x93A0, 0x8569, 0x93A1, 0x85E4, 0x93A2, 0x8A0E, 0x93A3, 0x8B04, 0x93A4, 0x8C46, 0x93A5, 0x8E0F, + 0x93A6, 0x9003, 0x93A7, 0x900F, 0x93A8, 0x9419, 0x93A9, 0x9676, 0x93AA, 0x982D, 0x93AB, 0x9A30, 0x93AC, 0x95D8, 0x93AD, 0x50CD, + 0x93AE, 0x52D5, 0x93AF, 0x540C, 0x93B0, 0x5802, 0x93B1, 0x5C0E, 0x93B2, 0x61A7, 0x93B3, 0x649E, 0x93B4, 0x6D1E, 0x93B5, 0x77B3, + 0x93B6, 0x7AE5, 0x93B7, 0x80F4, 0x93B8, 0x8404, 0x93B9, 0x9053, 0x93BA, 0x9285, 0x93BB, 0x5CE0, 0x93BC, 0x9D07, 0x93BD, 0x533F, + 0x93BE, 0x5F97, 0x93BF, 0x5FB3, 0x93C0, 0x6D9C, 0x93C1, 0x7279, 0x93C2, 0x7763, 0x93C3, 0x79BF, 0x93C4, 0x7BE4, 0x93C5, 0x6BD2, + 0x93C6, 0x72EC, 0x93C7, 0x8AAD, 0x93C8, 0x6803, 0x93C9, 0x6A61, 0x93CA, 0x51F8, 0x93CB, 0x7A81, 0x93CC, 0x6934, 0x93CD, 0x5C4A, + 0x93CE, 0x9CF6, 0x93CF, 0x82EB, 0x93D0, 0x5BC5, 0x93D1, 0x9149, 0x93D2, 0x701E, 0x93D3, 0x5678, 0x93D4, 0x5C6F, 0x93D5, 0x60C7, + 0x93D6, 0x6566, 0x93D7, 0x6C8C, 0x93D8, 0x8C5A, 0x93D9, 0x9041, 0x93DA, 0x9813, 0x93DB, 0x5451, 0x93DC, 0x66C7, 0x93DD, 0x920D, + 0x93DE, 0x5948, 0x93DF, 0x90A3, 0x93E0, 0x5185, 0x93E1, 0x4E4D, 0x93E2, 0x51EA, 0x93E3, 0x8599, 0x93E4, 0x8B0E, 0x93E5, 0x7058, + 0x93E6, 0x637A, 0x93E7, 0x934B, 0x93E8, 0x6962, 0x93E9, 0x99B4, 0x93EA, 0x7E04, 0x93EB, 0x7577, 0x93EC, 0x5357, 0x93ED, 0x6960, + 0x93EE, 0x8EDF, 0x93EF, 0x96E3, 0x93F0, 0x6C5D, 0x93F1, 0x4E8C, 0x93F2, 0x5C3C, 0x93F3, 0x5F10, 0x93F4, 0x8FE9, 0x93F5, 0x5302, + 0x93F6, 0x8CD1, 0x93F7, 0x8089, 0x93F8, 0x8679, 0x93F9, 0x5EFF, 0x93FA, 0x65E5, 0x93FB, 0x4E73, 0x93FC, 0x5165, 0x9440, 0x5982, + 0x9441, 0x5C3F, 0x9442, 0x97EE, 0x9443, 0x4EFB, 0x9444, 0x598A, 0x9445, 0x5FCD, 0x9446, 0x8A8D, 0x9447, 0x6FE1, 0x9448, 0x79B0, + 0x9449, 0x7962, 0x944A, 0x5BE7, 0x944B, 0x8471, 0x944C, 0x732B, 0x944D, 0x71B1, 0x944E, 0x5E74, 0x944F, 0x5FF5, 0x9450, 0x637B, + 0x9451, 0x649A, 0x9452, 0x71C3, 0x9453, 0x7C98, 0x9454, 0x4E43, 0x9455, 0x5EFC, 0x9456, 0x4E4B, 0x9457, 0x57DC, 0x9458, 0x56A2, + 0x9459, 0x60A9, 0x945A, 0x6FC3, 0x945B, 0x7D0D, 0x945C, 0x80FD, 0x945D, 0x8133, 0x945E, 0x81BF, 0x945F, 0x8FB2, 0x9460, 0x8997, + 0x9461, 0x86A4, 0x9462, 0x5DF4, 0x9463, 0x628A, 0x9464, 0x64AD, 0x9465, 0x8987, 0x9466, 0x6777, 0x9467, 0x6CE2, 0x9468, 0x6D3E, + 0x9469, 0x7436, 0x946A, 0x7834, 0x946B, 0x5A46, 0x946C, 0x7F75, 0x946D, 0x82AD, 0x946E, 0x99AC, 0x946F, 0x4FF3, 0x9470, 0x5EC3, + 0x9471, 0x62DD, 0x9472, 0x6392, 0x9473, 0x6557, 0x9474, 0x676F, 0x9475, 0x76C3, 0x9476, 0x724C, 0x9477, 0x80CC, 0x9478, 0x80BA, + 0x9479, 0x8F29, 0x947A, 0x914D, 0x947B, 0x500D, 0x947C, 0x57F9, 0x947D, 0x5A92, 0x947E, 0x6885, 0x9480, 0x6973, 0x9481, 0x7164, + 0x9482, 0x72FD, 0x9483, 0x8CB7, 0x9484, 0x58F2, 0x9485, 0x8CE0, 0x9486, 0x966A, 0x9487, 0x9019, 0x9488, 0x877F, 0x9489, 0x79E4, + 0x948A, 0x77E7, 0x948B, 0x8429, 0x948C, 0x4F2F, 0x948D, 0x5265, 0x948E, 0x535A, 0x948F, 0x62CD, 0x9490, 0x67CF, 0x9491, 0x6CCA, + 0x9492, 0x767D, 0x9493, 0x7B94, 0x9494, 0x7C95, 0x9495, 0x8236, 0x9496, 0x8584, 0x9497, 0x8FEB, 0x9498, 0x66DD, 0x9499, 0x6F20, + 0x949A, 0x7206, 0x949B, 0x7E1B, 0x949C, 0x83AB, 0x949D, 0x99C1, 0x949E, 0x9EA6, 0x949F, 0x51FD, 0x94A0, 0x7BB1, 0x94A1, 0x7872, + 0x94A2, 0x7BB8, 0x94A3, 0x8087, 0x94A4, 0x7B48, 0x94A5, 0x6AE8, 0x94A6, 0x5E61, 0x94A7, 0x808C, 0x94A8, 0x7551, 0x94A9, 0x7560, + 0x94AA, 0x516B, 0x94AB, 0x9262, 0x94AC, 0x6E8C, 0x94AD, 0x767A, 0x94AE, 0x9197, 0x94AF, 0x9AEA, 0x94B0, 0x4F10, 0x94B1, 0x7F70, + 0x94B2, 0x629C, 0x94B3, 0x7B4F, 0x94B4, 0x95A5, 0x94B5, 0x9CE9, 0x94B6, 0x567A, 0x94B7, 0x5859, 0x94B8, 0x86E4, 0x94B9, 0x96BC, + 0x94BA, 0x4F34, 0x94BB, 0x5224, 0x94BC, 0x534A, 0x94BD, 0x53CD, 0x94BE, 0x53DB, 0x94BF, 0x5E06, 0x94C0, 0x642C, 0x94C1, 0x6591, + 0x94C2, 0x677F, 0x94C3, 0x6C3E, 0x94C4, 0x6C4E, 0x94C5, 0x7248, 0x94C6, 0x72AF, 0x94C7, 0x73ED, 0x94C8, 0x7554, 0x94C9, 0x7E41, + 0x94CA, 0x822C, 0x94CB, 0x85E9, 0x94CC, 0x8CA9, 0x94CD, 0x7BC4, 0x94CE, 0x91C6, 0x94CF, 0x7169, 0x94D0, 0x9812, 0x94D1, 0x98EF, + 0x94D2, 0x633D, 0x94D3, 0x6669, 0x94D4, 0x756A, 0x94D5, 0x76E4, 0x94D6, 0x78D0, 0x94D7, 0x8543, 0x94D8, 0x86EE, 0x94D9, 0x532A, + 0x94DA, 0x5351, 0x94DB, 0x5426, 0x94DC, 0x5983, 0x94DD, 0x5E87, 0x94DE, 0x5F7C, 0x94DF, 0x60B2, 0x94E0, 0x6249, 0x94E1, 0x6279, + 0x94E2, 0x62AB, 0x94E3, 0x6590, 0x94E4, 0x6BD4, 0x94E5, 0x6CCC, 0x94E6, 0x75B2, 0x94E7, 0x76AE, 0x94E8, 0x7891, 0x94E9, 0x79D8, + 0x94EA, 0x7DCB, 0x94EB, 0x7F77, 0x94EC, 0x80A5, 0x94ED, 0x88AB, 0x94EE, 0x8AB9, 0x94EF, 0x8CBB, 0x94F0, 0x907F, 0x94F1, 0x975E, + 0x94F2, 0x98DB, 0x94F3, 0x6A0B, 0x94F4, 0x7C38, 0x94F5, 0x5099, 0x94F6, 0x5C3E, 0x94F7, 0x5FAE, 0x94F8, 0x6787, 0x94F9, 0x6BD8, + 0x94FA, 0x7435, 0x94FB, 0x7709, 0x94FC, 0x7F8E, 0x9540, 0x9F3B, 0x9541, 0x67CA, 0x9542, 0x7A17, 0x9543, 0x5339, 0x9544, 0x758B, + 0x9545, 0x9AED, 0x9546, 0x5F66, 0x9547, 0x819D, 0x9548, 0x83F1, 0x9549, 0x8098, 0x954A, 0x5F3C, 0x954B, 0x5FC5, 0x954C, 0x7562, + 0x954D, 0x7B46, 0x954E, 0x903C, 0x954F, 0x6867, 0x9550, 0x59EB, 0x9551, 0x5A9B, 0x9552, 0x7D10, 0x9553, 0x767E, 0x9554, 0x8B2C, + 0x9555, 0x4FF5, 0x9556, 0x5F6A, 0x9557, 0x6A19, 0x9558, 0x6C37, 0x9559, 0x6F02, 0x955A, 0x74E2, 0x955B, 0x7968, 0x955C, 0x8868, + 0x955D, 0x8A55, 0x955E, 0x8C79, 0x955F, 0x5EDF, 0x9560, 0x63CF, 0x9561, 0x75C5, 0x9562, 0x79D2, 0x9563, 0x82D7, 0x9564, 0x9328, + 0x9565, 0x92F2, 0x9566, 0x849C, 0x9567, 0x86ED, 0x9568, 0x9C2D, 0x9569, 0x54C1, 0x956A, 0x5F6C, 0x956B, 0x658C, 0x956C, 0x6D5C, + 0x956D, 0x7015, 0x956E, 0x8CA7, 0x956F, 0x8CD3, 0x9570, 0x983B, 0x9571, 0x654F, 0x9572, 0x74F6, 0x9573, 0x4E0D, 0x9574, 0x4ED8, + 0x9575, 0x57E0, 0x9576, 0x592B, 0x9577, 0x5A66, 0x9578, 0x5BCC, 0x9579, 0x51A8, 0x957A, 0x5E03, 0x957B, 0x5E9C, 0x957C, 0x6016, + 0x957D, 0x6276, 0x957E, 0x6577, 0x9580, 0x65A7, 0x9581, 0x666E, 0x9582, 0x6D6E, 0x9583, 0x7236, 0x9584, 0x7B26, 0x9585, 0x8150, + 0x9586, 0x819A, 0x9587, 0x8299, 0x9588, 0x8B5C, 0x9589, 0x8CA0, 0x958A, 0x8CE6, 0x958B, 0x8D74, 0x958C, 0x961C, 0x958D, 0x9644, + 0x958E, 0x4FAE, 0x958F, 0x64AB, 0x9590, 0x6B66, 0x9591, 0x821E, 0x9592, 0x8461, 0x9593, 0x856A, 0x9594, 0x90E8, 0x9595, 0x5C01, + 0x9596, 0x6953, 0x9597, 0x98A8, 0x9598, 0x847A, 0x9599, 0x8557, 0x959A, 0x4F0F, 0x959B, 0x526F, 0x959C, 0x5FA9, 0x959D, 0x5E45, + 0x959E, 0x670D, 0x959F, 0x798F, 0x95A0, 0x8179, 0x95A1, 0x8907, 0x95A2, 0x8986, 0x95A3, 0x6DF5, 0x95A4, 0x5F17, 0x95A5, 0x6255, + 0x95A6, 0x6CB8, 0x95A7, 0x4ECF, 0x95A8, 0x7269, 0x95A9, 0x9B92, 0x95AA, 0x5206, 0x95AB, 0x543B, 0x95AC, 0x5674, 0x95AD, 0x58B3, + 0x95AE, 0x61A4, 0x95AF, 0x626E, 0x95B0, 0x711A, 0x95B1, 0x596E, 0x95B2, 0x7C89, 0x95B3, 0x7CDE, 0x95B4, 0x7D1B, 0x95B5, 0x96F0, + 0x95B6, 0x6587, 0x95B7, 0x805E, 0x95B8, 0x4E19, 0x95B9, 0x4F75, 0x95BA, 0x5175, 0x95BB, 0x5840, 0x95BC, 0x5E63, 0x95BD, 0x5E73, + 0x95BE, 0x5F0A, 0x95BF, 0x67C4, 0x95C0, 0x4E26, 0x95C1, 0x853D, 0x95C2, 0x9589, 0x95C3, 0x965B, 0x95C4, 0x7C73, 0x95C5, 0x9801, + 0x95C6, 0x50FB, 0x95C7, 0x58C1, 0x95C8, 0x7656, 0x95C9, 0x78A7, 0x95CA, 0x5225, 0x95CB, 0x77A5, 0x95CC, 0x8511, 0x95CD, 0x7B86, + 0x95CE, 0x504F, 0x95CF, 0x5909, 0x95D0, 0x7247, 0x95D1, 0x7BC7, 0x95D2, 0x7DE8, 0x95D3, 0x8FBA, 0x95D4, 0x8FD4, 0x95D5, 0x904D, + 0x95D6, 0x4FBF, 0x95D7, 0x52C9, 0x95D8, 0x5A29, 0x95D9, 0x5F01, 0x95DA, 0x97AD, 0x95DB, 0x4FDD, 0x95DC, 0x8217, 0x95DD, 0x92EA, + 0x95DE, 0x5703, 0x95DF, 0x6355, 0x95E0, 0x6B69, 0x95E1, 0x752B, 0x95E2, 0x88DC, 0x95E3, 0x8F14, 0x95E4, 0x7A42, 0x95E5, 0x52DF, + 0x95E6, 0x5893, 0x95E7, 0x6155, 0x95E8, 0x620A, 0x95E9, 0x66AE, 0x95EA, 0x6BCD, 0x95EB, 0x7C3F, 0x95EC, 0x83E9, 0x95ED, 0x5023, + 0x95EE, 0x4FF8, 0x95EF, 0x5305, 0x95F0, 0x5446, 0x95F1, 0x5831, 0x95F2, 0x5949, 0x95F3, 0x5B9D, 0x95F4, 0x5CF0, 0x95F5, 0x5CEF, + 0x95F6, 0x5D29, 0x95F7, 0x5E96, 0x95F8, 0x62B1, 0x95F9, 0x6367, 0x95FA, 0x653E, 0x95FB, 0x65B9, 0x95FC, 0x670B, 0x9640, 0x6CD5, + 0x9641, 0x6CE1, 0x9642, 0x70F9, 0x9643, 0x7832, 0x9644, 0x7E2B, 0x9645, 0x80DE, 0x9646, 0x82B3, 0x9647, 0x840C, 0x9648, 0x84EC, + 0x9649, 0x8702, 0x964A, 0x8912, 0x964B, 0x8A2A, 0x964C, 0x8C4A, 0x964D, 0x90A6, 0x964E, 0x92D2, 0x964F, 0x98FD, 0x9650, 0x9CF3, + 0x9651, 0x9D6C, 0x9652, 0x4E4F, 0x9653, 0x4EA1, 0x9654, 0x508D, 0x9655, 0x5256, 0x9656, 0x574A, 0x9657, 0x59A8, 0x9658, 0x5E3D, + 0x9659, 0x5FD8, 0x965A, 0x5FD9, 0x965B, 0x623F, 0x965C, 0x66B4, 0x965D, 0x671B, 0x965E, 0x67D0, 0x965F, 0x68D2, 0x9660, 0x5192, + 0x9661, 0x7D21, 0x9662, 0x80AA, 0x9663, 0x81A8, 0x9664, 0x8B00, 0x9665, 0x8C8C, 0x9666, 0x8CBF, 0x9667, 0x927E, 0x9668, 0x9632, + 0x9669, 0x5420, 0x966A, 0x982C, 0x966B, 0x5317, 0x966C, 0x50D5, 0x966D, 0x535C, 0x966E, 0x58A8, 0x966F, 0x64B2, 0x9670, 0x6734, + 0x9671, 0x7267, 0x9672, 0x7766, 0x9673, 0x7A46, 0x9674, 0x91E6, 0x9675, 0x52C3, 0x9676, 0x6CA1, 0x9677, 0x6B86, 0x9678, 0x5800, + 0x9679, 0x5E4C, 0x967A, 0x5954, 0x967B, 0x672C, 0x967C, 0x7FFB, 0x967D, 0x51E1, 0x967E, 0x76C6, 0x9680, 0x6469, 0x9681, 0x78E8, + 0x9682, 0x9B54, 0x9683, 0x9EBB, 0x9684, 0x57CB, 0x9685, 0x59B9, 0x9686, 0x6627, 0x9687, 0x679A, 0x9688, 0x6BCE, 0x9689, 0x54E9, + 0x968A, 0x69D9, 0x968B, 0x5E55, 0x968C, 0x819C, 0x968D, 0x6795, 0x968E, 0x9BAA, 0x968F, 0x67FE, 0x9690, 0x9C52, 0x9691, 0x685D, + 0x9692, 0x4EA6, 0x9693, 0x4FE3, 0x9694, 0x53C8, 0x9695, 0x62B9, 0x9696, 0x672B, 0x9697, 0x6CAB, 0x9698, 0x8FC4, 0x9699, 0x4FAD, + 0x969A, 0x7E6D, 0x969B, 0x9EBF, 0x969C, 0x4E07, 0x969D, 0x6162, 0x969E, 0x6E80, 0x969F, 0x6F2B, 0x96A0, 0x8513, 0x96A1, 0x5473, + 0x96A2, 0x672A, 0x96A3, 0x9B45, 0x96A4, 0x5DF3, 0x96A5, 0x7B95, 0x96A6, 0x5CAC, 0x96A7, 0x5BC6, 0x96A8, 0x871C, 0x96A9, 0x6E4A, + 0x96AA, 0x84D1, 0x96AB, 0x7A14, 0x96AC, 0x8108, 0x96AD, 0x5999, 0x96AE, 0x7C8D, 0x96AF, 0x6C11, 0x96B0, 0x7720, 0x96B1, 0x52D9, + 0x96B2, 0x5922, 0x96B3, 0x7121, 0x96B4, 0x725F, 0x96B5, 0x77DB, 0x96B6, 0x9727, 0x96B7, 0x9D61, 0x96B8, 0x690B, 0x96B9, 0x5A7F, + 0x96BA, 0x5A18, 0x96BB, 0x51A5, 0x96BC, 0x540D, 0x96BD, 0x547D, 0x96BE, 0x660E, 0x96BF, 0x76DF, 0x96C0, 0x8FF7, 0x96C1, 0x9298, + 0x96C2, 0x9CF4, 0x96C3, 0x59EA, 0x96C4, 0x725D, 0x96C5, 0x6EC5, 0x96C6, 0x514D, 0x96C7, 0x68C9, 0x96C8, 0x7DBF, 0x96C9, 0x7DEC, + 0x96CA, 0x9762, 0x96CB, 0x9EBA, 0x96CC, 0x6478, 0x96CD, 0x6A21, 0x96CE, 0x8302, 0x96CF, 0x5984, 0x96D0, 0x5B5F, 0x96D1, 0x6BDB, + 0x96D2, 0x731B, 0x96D3, 0x76F2, 0x96D4, 0x7DB2, 0x96D5, 0x8017, 0x96D6, 0x8499, 0x96D7, 0x5132, 0x96D8, 0x6728, 0x96D9, 0x9ED9, + 0x96DA, 0x76EE, 0x96DB, 0x6762, 0x96DC, 0x52FF, 0x96DD, 0x9905, 0x96DE, 0x5C24, 0x96DF, 0x623B, 0x96E0, 0x7C7E, 0x96E1, 0x8CB0, + 0x96E2, 0x554F, 0x96E3, 0x60B6, 0x96E4, 0x7D0B, 0x96E5, 0x9580, 0x96E6, 0x5301, 0x96E7, 0x4E5F, 0x96E8, 0x51B6, 0x96E9, 0x591C, + 0x96EA, 0x723A, 0x96EB, 0x8036, 0x96EC, 0x91CE, 0x96ED, 0x5F25, 0x96EE, 0x77E2, 0x96EF, 0x5384, 0x96F0, 0x5F79, 0x96F1, 0x7D04, + 0x96F2, 0x85AC, 0x96F3, 0x8A33, 0x96F4, 0x8E8D, 0x96F5, 0x9756, 0x96F6, 0x67F3, 0x96F7, 0x85AE, 0x96F8, 0x9453, 0x96F9, 0x6109, + 0x96FA, 0x6108, 0x96FB, 0x6CB9, 0x96FC, 0x7652, 0x9740, 0x8AED, 0x9741, 0x8F38, 0x9742, 0x552F, 0x9743, 0x4F51, 0x9744, 0x512A, + 0x9745, 0x52C7, 0x9746, 0x53CB, 0x9747, 0x5BA5, 0x9748, 0x5E7D, 0x9749, 0x60A0, 0x974A, 0x6182, 0x974B, 0x63D6, 0x974C, 0x6709, + 0x974D, 0x67DA, 0x974E, 0x6E67, 0x974F, 0x6D8C, 0x9750, 0x7336, 0x9751, 0x7337, 0x9752, 0x7531, 0x9753, 0x7950, 0x9754, 0x88D5, + 0x9755, 0x8A98, 0x9756, 0x904A, 0x9757, 0x9091, 0x9758, 0x90F5, 0x9759, 0x96C4, 0x975A, 0x878D, 0x975B, 0x5915, 0x975C, 0x4E88, + 0x975D, 0x4F59, 0x975E, 0x4E0E, 0x975F, 0x8A89, 0x9760, 0x8F3F, 0x9761, 0x9810, 0x9762, 0x50AD, 0x9763, 0x5E7C, 0x9764, 0x5996, + 0x9765, 0x5BB9, 0x9766, 0x5EB8, 0x9767, 0x63DA, 0x9768, 0x63FA, 0x9769, 0x64C1, 0x976A, 0x66DC, 0x976B, 0x694A, 0x976C, 0x69D8, + 0x976D, 0x6D0B, 0x976E, 0x6EB6, 0x976F, 0x7194, 0x9770, 0x7528, 0x9771, 0x7AAF, 0x9772, 0x7F8A, 0x9773, 0x8000, 0x9774, 0x8449, + 0x9775, 0x84C9, 0x9776, 0x8981, 0x9777, 0x8B21, 0x9778, 0x8E0A, 0x9779, 0x9065, 0x977A, 0x967D, 0x977B, 0x990A, 0x977C, 0x617E, + 0x977D, 0x6291, 0x977E, 0x6B32, 0x9780, 0x6C83, 0x9781, 0x6D74, 0x9782, 0x7FCC, 0x9783, 0x7FFC, 0x9784, 0x6DC0, 0x9785, 0x7F85, + 0x9786, 0x87BA, 0x9787, 0x88F8, 0x9788, 0x6765, 0x9789, 0x83B1, 0x978A, 0x983C, 0x978B, 0x96F7, 0x978C, 0x6D1B, 0x978D, 0x7D61, + 0x978E, 0x843D, 0x978F, 0x916A, 0x9790, 0x4E71, 0x9791, 0x5375, 0x9792, 0x5D50, 0x9793, 0x6B04, 0x9794, 0x6FEB, 0x9795, 0x85CD, + 0x9796, 0x862D, 0x9797, 0x89A7, 0x9798, 0x5229, 0x9799, 0x540F, 0x979A, 0x5C65, 0x979B, 0x674E, 0x979C, 0x68A8, 0x979D, 0x7406, + 0x979E, 0x7483, 0x979F, 0x75E2, 0x97A0, 0x88CF, 0x97A1, 0x88E1, 0x97A2, 0x91CC, 0x97A3, 0x96E2, 0x97A4, 0x9678, 0x97A5, 0x5F8B, + 0x97A6, 0x7387, 0x97A7, 0x7ACB, 0x97A8, 0x844E, 0x97A9, 0x63A0, 0x97AA, 0x7565, 0x97AB, 0x5289, 0x97AC, 0x6D41, 0x97AD, 0x6E9C, + 0x97AE, 0x7409, 0x97AF, 0x7559, 0x97B0, 0x786B, 0x97B1, 0x7C92, 0x97B2, 0x9686, 0x97B3, 0x7ADC, 0x97B4, 0x9F8D, 0x97B5, 0x4FB6, + 0x97B6, 0x616E, 0x97B7, 0x65C5, 0x97B8, 0x865C, 0x97B9, 0x4E86, 0x97BA, 0x4EAE, 0x97BB, 0x50DA, 0x97BC, 0x4E21, 0x97BD, 0x51CC, + 0x97BE, 0x5BEE, 0x97BF, 0x6599, 0x97C0, 0x6881, 0x97C1, 0x6DBC, 0x97C2, 0x731F, 0x97C3, 0x7642, 0x97C4, 0x77AD, 0x97C5, 0x7A1C, + 0x97C6, 0x7CE7, 0x97C7, 0x826F, 0x97C8, 0x8AD2, 0x97C9, 0x907C, 0x97CA, 0x91CF, 0x97CB, 0x9675, 0x97CC, 0x9818, 0x97CD, 0x529B, + 0x97CE, 0x7DD1, 0x97CF, 0x502B, 0x97D0, 0x5398, 0x97D1, 0x6797, 0x97D2, 0x6DCB, 0x97D3, 0x71D0, 0x97D4, 0x7433, 0x97D5, 0x81E8, + 0x97D6, 0x8F2A, 0x97D7, 0x96A3, 0x97D8, 0x9C57, 0x97D9, 0x9E9F, 0x97DA, 0x7460, 0x97DB, 0x5841, 0x97DC, 0x6D99, 0x97DD, 0x7D2F, + 0x97DE, 0x985E, 0x97DF, 0x4EE4, 0x97E0, 0x4F36, 0x97E1, 0x4F8B, 0x97E2, 0x51B7, 0x97E3, 0x52B1, 0x97E4, 0x5DBA, 0x97E5, 0x601C, + 0x97E6, 0x73B2, 0x97E7, 0x793C, 0x97E8, 0x82D3, 0x97E9, 0x9234, 0x97EA, 0x96B7, 0x97EB, 0x96F6, 0x97EC, 0x970A, 0x97ED, 0x9E97, + 0x97EE, 0x9F62, 0x97EF, 0x66A6, 0x97F0, 0x6B74, 0x97F1, 0x5217, 0x97F2, 0x52A3, 0x97F3, 0x70C8, 0x97F4, 0x88C2, 0x97F5, 0x5EC9, + 0x97F6, 0x604B, 0x97F7, 0x6190, 0x97F8, 0x6F23, 0x97F9, 0x7149, 0x97FA, 0x7C3E, 0x97FB, 0x7DF4, 0x97FC, 0x806F, 0x9840, 0x84EE, + 0x9841, 0x9023, 0x9842, 0x932C, 0x9843, 0x5442, 0x9844, 0x9B6F, 0x9845, 0x6AD3, 0x9846, 0x7089, 0x9847, 0x8CC2, 0x9848, 0x8DEF, + 0x9849, 0x9732, 0x984A, 0x52B4, 0x984B, 0x5A41, 0x984C, 0x5ECA, 0x984D, 0x5F04, 0x984E, 0x6717, 0x984F, 0x697C, 0x9850, 0x6994, + 0x9851, 0x6D6A, 0x9852, 0x6F0F, 0x9853, 0x7262, 0x9854, 0x72FC, 0x9855, 0x7BED, 0x9856, 0x8001, 0x9857, 0x807E, 0x9858, 0x874B, + 0x9859, 0x90CE, 0x985A, 0x516D, 0x985B, 0x9E93, 0x985C, 0x7984, 0x985D, 0x808B, 0x985E, 0x9332, 0x985F, 0x8AD6, 0x9860, 0x502D, + 0x9861, 0x548C, 0x9862, 0x8A71, 0x9863, 0x6B6A, 0x9864, 0x8CC4, 0x9865, 0x8107, 0x9866, 0x60D1, 0x9867, 0x67A0, 0x9868, 0x9DF2, + 0x9869, 0x4E99, 0x986A, 0x4E98, 0x986B, 0x9C10, 0x986C, 0x8A6B, 0x986D, 0x85C1, 0x986E, 0x8568, 0x986F, 0x6900, 0x9870, 0x6E7E, + 0x9871, 0x7897, 0x9872, 0x8155, 0x989F, 0x5F0C, 0x98A0, 0x4E10, 0x98A1, 0x4E15, 0x98A2, 0x4E2A, 0x98A3, 0x4E31, 0x98A4, 0x4E36, + 0x98A5, 0x4E3C, 0x98A6, 0x4E3F, 0x98A7, 0x4E42, 0x98A8, 0x4E56, 0x98A9, 0x4E58, 0x98AA, 0x4E82, 0x98AB, 0x4E85, 0x98AC, 0x8C6B, + 0x98AD, 0x4E8A, 0x98AE, 0x8212, 0x98AF, 0x5F0D, 0x98B0, 0x4E8E, 0x98B1, 0x4E9E, 0x98B2, 0x4E9F, 0x98B3, 0x4EA0, 0x98B4, 0x4EA2, + 0x98B5, 0x4EB0, 0x98B6, 0x4EB3, 0x98B7, 0x4EB6, 0x98B8, 0x4ECE, 0x98B9, 0x4ECD, 0x98BA, 0x4EC4, 0x98BB, 0x4EC6, 0x98BC, 0x4EC2, + 0x98BD, 0x4ED7, 0x98BE, 0x4EDE, 0x98BF, 0x4EED, 0x98C0, 0x4EDF, 0x98C1, 0x4EF7, 0x98C2, 0x4F09, 0x98C3, 0x4F5A, 0x98C4, 0x4F30, + 0x98C5, 0x4F5B, 0x98C6, 0x4F5D, 0x98C7, 0x4F57, 0x98C8, 0x4F47, 0x98C9, 0x4F76, 0x98CA, 0x4F88, 0x98CB, 0x4F8F, 0x98CC, 0x4F98, + 0x98CD, 0x4F7B, 0x98CE, 0x4F69, 0x98CF, 0x4F70, 0x98D0, 0x4F91, 0x98D1, 0x4F6F, 0x98D2, 0x4F86, 0x98D3, 0x4F96, 0x98D4, 0x5118, + 0x98D5, 0x4FD4, 0x98D6, 0x4FDF, 0x98D7, 0x4FCE, 0x98D8, 0x4FD8, 0x98D9, 0x4FDB, 0x98DA, 0x4FD1, 0x98DB, 0x4FDA, 0x98DC, 0x4FD0, + 0x98DD, 0x4FE4, 0x98DE, 0x4FE5, 0x98DF, 0x501A, 0x98E0, 0x5028, 0x98E1, 0x5014, 0x98E2, 0x502A, 0x98E3, 0x5025, 0x98E4, 0x5005, + 0x98E5, 0x4F1C, 0x98E6, 0x4FF6, 0x98E7, 0x5021, 0x98E8, 0x5029, 0x98E9, 0x502C, 0x98EA, 0x4FFE, 0x98EB, 0x4FEF, 0x98EC, 0x5011, + 0x98ED, 0x5006, 0x98EE, 0x5043, 0x98EF, 0x5047, 0x98F0, 0x6703, 0x98F1, 0x5055, 0x98F2, 0x5050, 0x98F3, 0x5048, 0x98F4, 0x505A, + 0x98F5, 0x5056, 0x98F6, 0x506C, 0x98F7, 0x5078, 0x98F8, 0x5080, 0x98F9, 0x509A, 0x98FA, 0x5085, 0x98FB, 0x50B4, 0x98FC, 0x50B2, + 0x9940, 0x50C9, 0x9941, 0x50CA, 0x9942, 0x50B3, 0x9943, 0x50C2, 0x9944, 0x50D6, 0x9945, 0x50DE, 0x9946, 0x50E5, 0x9947, 0x50ED, + 0x9948, 0x50E3, 0x9949, 0x50EE, 0x994A, 0x50F9, 0x994B, 0x50F5, 0x994C, 0x5109, 0x994D, 0x5101, 0x994E, 0x5102, 0x994F, 0x5116, + 0x9950, 0x5115, 0x9951, 0x5114, 0x9952, 0x511A, 0x9953, 0x5121, 0x9954, 0x513A, 0x9955, 0x5137, 0x9956, 0x513C, 0x9957, 0x513B, + 0x9958, 0x513F, 0x9959, 0x5140, 0x995A, 0x5152, 0x995B, 0x514C, 0x995C, 0x5154, 0x995D, 0x5162, 0x995E, 0x7AF8, 0x995F, 0x5169, + 0x9960, 0x516A, 0x9961, 0x516E, 0x9962, 0x5180, 0x9963, 0x5182, 0x9964, 0x56D8, 0x9965, 0x518C, 0x9966, 0x5189, 0x9967, 0x518F, + 0x9968, 0x5191, 0x9969, 0x5193, 0x996A, 0x5195, 0x996B, 0x5196, 0x996C, 0x51A4, 0x996D, 0x51A6, 0x996E, 0x51A2, 0x996F, 0x51A9, + 0x9970, 0x51AA, 0x9971, 0x51AB, 0x9972, 0x51B3, 0x9973, 0x51B1, 0x9974, 0x51B2, 0x9975, 0x51B0, 0x9976, 0x51B5, 0x9977, 0x51BD, + 0x9978, 0x51C5, 0x9979, 0x51C9, 0x997A, 0x51DB, 0x997B, 0x51E0, 0x997C, 0x8655, 0x997D, 0x51E9, 0x997E, 0x51ED, 0x9980, 0x51F0, + 0x9981, 0x51F5, 0x9982, 0x51FE, 0x9983, 0x5204, 0x9984, 0x520B, 0x9985, 0x5214, 0x9986, 0x520E, 0x9987, 0x5227, 0x9988, 0x522A, + 0x9989, 0x522E, 0x998A, 0x5233, 0x998B, 0x5239, 0x998C, 0x524F, 0x998D, 0x5244, 0x998E, 0x524B, 0x998F, 0x524C, 0x9990, 0x525E, + 0x9991, 0x5254, 0x9992, 0x526A, 0x9993, 0x5274, 0x9994, 0x5269, 0x9995, 0x5273, 0x9996, 0x527F, 0x9997, 0x527D, 0x9998, 0x528D, + 0x9999, 0x5294, 0x999A, 0x5292, 0x999B, 0x5271, 0x999C, 0x5288, 0x999D, 0x5291, 0x999E, 0x8FA8, 0x999F, 0x8FA7, 0x99A0, 0x52AC, + 0x99A1, 0x52AD, 0x99A2, 0x52BC, 0x99A3, 0x52B5, 0x99A4, 0x52C1, 0x99A5, 0x52CD, 0x99A6, 0x52D7, 0x99A7, 0x52DE, 0x99A8, 0x52E3, + 0x99A9, 0x52E6, 0x99AA, 0x98ED, 0x99AB, 0x52E0, 0x99AC, 0x52F3, 0x99AD, 0x52F5, 0x99AE, 0x52F8, 0x99AF, 0x52F9, 0x99B0, 0x5306, + 0x99B1, 0x5308, 0x99B2, 0x7538, 0x99B3, 0x530D, 0x99B4, 0x5310, 0x99B5, 0x530F, 0x99B6, 0x5315, 0x99B7, 0x531A, 0x99B8, 0x5323, + 0x99B9, 0x532F, 0x99BA, 0x5331, 0x99BB, 0x5333, 0x99BC, 0x5338, 0x99BD, 0x5340, 0x99BE, 0x5346, 0x99BF, 0x5345, 0x99C0, 0x4E17, + 0x99C1, 0x5349, 0x99C2, 0x534D, 0x99C3, 0x51D6, 0x99C4, 0x535E, 0x99C5, 0x5369, 0x99C6, 0x536E, 0x99C7, 0x5918, 0x99C8, 0x537B, + 0x99C9, 0x5377, 0x99CA, 0x5382, 0x99CB, 0x5396, 0x99CC, 0x53A0, 0x99CD, 0x53A6, 0x99CE, 0x53A5, 0x99CF, 0x53AE, 0x99D0, 0x53B0, + 0x99D1, 0x53B6, 0x99D2, 0x53C3, 0x99D3, 0x7C12, 0x99D4, 0x96D9, 0x99D5, 0x53DF, 0x99D6, 0x66FC, 0x99D7, 0x71EE, 0x99D8, 0x53EE, + 0x99D9, 0x53E8, 0x99DA, 0x53ED, 0x99DB, 0x53FA, 0x99DC, 0x5401, 0x99DD, 0x543D, 0x99DE, 0x5440, 0x99DF, 0x542C, 0x99E0, 0x542D, + 0x99E1, 0x543C, 0x99E2, 0x542E, 0x99E3, 0x5436, 0x99E4, 0x5429, 0x99E5, 0x541D, 0x99E6, 0x544E, 0x99E7, 0x548F, 0x99E8, 0x5475, + 0x99E9, 0x548E, 0x99EA, 0x545F, 0x99EB, 0x5471, 0x99EC, 0x5477, 0x99ED, 0x5470, 0x99EE, 0x5492, 0x99EF, 0x547B, 0x99F0, 0x5480, + 0x99F1, 0x5476, 0x99F2, 0x5484, 0x99F3, 0x5490, 0x99F4, 0x5486, 0x99F5, 0x54C7, 0x99F6, 0x54A2, 0x99F7, 0x54B8, 0x99F8, 0x54A5, + 0x99F9, 0x54AC, 0x99FA, 0x54C4, 0x99FB, 0x54C8, 0x99FC, 0x54A8, 0x9A40, 0x54AB, 0x9A41, 0x54C2, 0x9A42, 0x54A4, 0x9A43, 0x54BE, + 0x9A44, 0x54BC, 0x9A45, 0x54D8, 0x9A46, 0x54E5, 0x9A47, 0x54E6, 0x9A48, 0x550F, 0x9A49, 0x5514, 0x9A4A, 0x54FD, 0x9A4B, 0x54EE, + 0x9A4C, 0x54ED, 0x9A4D, 0x54FA, 0x9A4E, 0x54E2, 0x9A4F, 0x5539, 0x9A50, 0x5540, 0x9A51, 0x5563, 0x9A52, 0x554C, 0x9A53, 0x552E, + 0x9A54, 0x555C, 0x9A55, 0x5545, 0x9A56, 0x5556, 0x9A57, 0x5557, 0x9A58, 0x5538, 0x9A59, 0x5533, 0x9A5A, 0x555D, 0x9A5B, 0x5599, + 0x9A5C, 0x5580, 0x9A5D, 0x54AF, 0x9A5E, 0x558A, 0x9A5F, 0x559F, 0x9A60, 0x557B, 0x9A61, 0x557E, 0x9A62, 0x5598, 0x9A63, 0x559E, + 0x9A64, 0x55AE, 0x9A65, 0x557C, 0x9A66, 0x5583, 0x9A67, 0x55A9, 0x9A68, 0x5587, 0x9A69, 0x55A8, 0x9A6A, 0x55DA, 0x9A6B, 0x55C5, + 0x9A6C, 0x55DF, 0x9A6D, 0x55C4, 0x9A6E, 0x55DC, 0x9A6F, 0x55E4, 0x9A70, 0x55D4, 0x9A71, 0x5614, 0x9A72, 0x55F7, 0x9A73, 0x5616, + 0x9A74, 0x55FE, 0x9A75, 0x55FD, 0x9A76, 0x561B, 0x9A77, 0x55F9, 0x9A78, 0x564E, 0x9A79, 0x5650, 0x9A7A, 0x71DF, 0x9A7B, 0x5634, + 0x9A7C, 0x5636, 0x9A7D, 0x5632, 0x9A7E, 0x5638, 0x9A80, 0x566B, 0x9A81, 0x5664, 0x9A82, 0x562F, 0x9A83, 0x566C, 0x9A84, 0x566A, + 0x9A85, 0x5686, 0x9A86, 0x5680, 0x9A87, 0x568A, 0x9A88, 0x56A0, 0x9A89, 0x5694, 0x9A8A, 0x568F, 0x9A8B, 0x56A5, 0x9A8C, 0x56AE, + 0x9A8D, 0x56B6, 0x9A8E, 0x56B4, 0x9A8F, 0x56C2, 0x9A90, 0x56BC, 0x9A91, 0x56C1, 0x9A92, 0x56C3, 0x9A93, 0x56C0, 0x9A94, 0x56C8, + 0x9A95, 0x56CE, 0x9A96, 0x56D1, 0x9A97, 0x56D3, 0x9A98, 0x56D7, 0x9A99, 0x56EE, 0x9A9A, 0x56F9, 0x9A9B, 0x5700, 0x9A9C, 0x56FF, + 0x9A9D, 0x5704, 0x9A9E, 0x5709, 0x9A9F, 0x5708, 0x9AA0, 0x570B, 0x9AA1, 0x570D, 0x9AA2, 0x5713, 0x9AA3, 0x5718, 0x9AA4, 0x5716, + 0x9AA5, 0x55C7, 0x9AA6, 0x571C, 0x9AA7, 0x5726, 0x9AA8, 0x5737, 0x9AA9, 0x5738, 0x9AAA, 0x574E, 0x9AAB, 0x573B, 0x9AAC, 0x5740, + 0x9AAD, 0x574F, 0x9AAE, 0x5769, 0x9AAF, 0x57C0, 0x9AB0, 0x5788, 0x9AB1, 0x5761, 0x9AB2, 0x577F, 0x9AB3, 0x5789, 0x9AB4, 0x5793, + 0x9AB5, 0x57A0, 0x9AB6, 0x57B3, 0x9AB7, 0x57A4, 0x9AB8, 0x57AA, 0x9AB9, 0x57B0, 0x9ABA, 0x57C3, 0x9ABB, 0x57C6, 0x9ABC, 0x57D4, + 0x9ABD, 0x57D2, 0x9ABE, 0x57D3, 0x9ABF, 0x580A, 0x9AC0, 0x57D6, 0x9AC1, 0x57E3, 0x9AC2, 0x580B, 0x9AC3, 0x5819, 0x9AC4, 0x581D, + 0x9AC5, 0x5872, 0x9AC6, 0x5821, 0x9AC7, 0x5862, 0x9AC8, 0x584B, 0x9AC9, 0x5870, 0x9ACA, 0x6BC0, 0x9ACB, 0x5852, 0x9ACC, 0x583D, + 0x9ACD, 0x5879, 0x9ACE, 0x5885, 0x9ACF, 0x58B9, 0x9AD0, 0x589F, 0x9AD1, 0x58AB, 0x9AD2, 0x58BA, 0x9AD3, 0x58DE, 0x9AD4, 0x58BB, + 0x9AD5, 0x58B8, 0x9AD6, 0x58AE, 0x9AD7, 0x58C5, 0x9AD8, 0x58D3, 0x9AD9, 0x58D1, 0x9ADA, 0x58D7, 0x9ADB, 0x58D9, 0x9ADC, 0x58D8, + 0x9ADD, 0x58E5, 0x9ADE, 0x58DC, 0x9ADF, 0x58E4, 0x9AE0, 0x58DF, 0x9AE1, 0x58EF, 0x9AE2, 0x58FA, 0x9AE3, 0x58F9, 0x9AE4, 0x58FB, + 0x9AE5, 0x58FC, 0x9AE6, 0x58FD, 0x9AE7, 0x5902, 0x9AE8, 0x590A, 0x9AE9, 0x5910, 0x9AEA, 0x591B, 0x9AEB, 0x68A6, 0x9AEC, 0x5925, + 0x9AED, 0x592C, 0x9AEE, 0x592D, 0x9AEF, 0x5932, 0x9AF0, 0x5938, 0x9AF1, 0x593E, 0x9AF2, 0x7AD2, 0x9AF3, 0x5955, 0x9AF4, 0x5950, + 0x9AF5, 0x594E, 0x9AF6, 0x595A, 0x9AF7, 0x5958, 0x9AF8, 0x5962, 0x9AF9, 0x5960, 0x9AFA, 0x5967, 0x9AFB, 0x596C, 0x9AFC, 0x5969, + 0x9B40, 0x5978, 0x9B41, 0x5981, 0x9B42, 0x599D, 0x9B43, 0x4F5E, 0x9B44, 0x4FAB, 0x9B45, 0x59A3, 0x9B46, 0x59B2, 0x9B47, 0x59C6, + 0x9B48, 0x59E8, 0x9B49, 0x59DC, 0x9B4A, 0x598D, 0x9B4B, 0x59D9, 0x9B4C, 0x59DA, 0x9B4D, 0x5A25, 0x9B4E, 0x5A1F, 0x9B4F, 0x5A11, + 0x9B50, 0x5A1C, 0x9B51, 0x5A09, 0x9B52, 0x5A1A, 0x9B53, 0x5A40, 0x9B54, 0x5A6C, 0x9B55, 0x5A49, 0x9B56, 0x5A35, 0x9B57, 0x5A36, + 0x9B58, 0x5A62, 0x9B59, 0x5A6A, 0x9B5A, 0x5A9A, 0x9B5B, 0x5ABC, 0x9B5C, 0x5ABE, 0x9B5D, 0x5ACB, 0x9B5E, 0x5AC2, 0x9B5F, 0x5ABD, + 0x9B60, 0x5AE3, 0x9B61, 0x5AD7, 0x9B62, 0x5AE6, 0x9B63, 0x5AE9, 0x9B64, 0x5AD6, 0x9B65, 0x5AFA, 0x9B66, 0x5AFB, 0x9B67, 0x5B0C, + 0x9B68, 0x5B0B, 0x9B69, 0x5B16, 0x9B6A, 0x5B32, 0x9B6B, 0x5AD0, 0x9B6C, 0x5B2A, 0x9B6D, 0x5B36, 0x9B6E, 0x5B3E, 0x9B6F, 0x5B43, + 0x9B70, 0x5B45, 0x9B71, 0x5B40, 0x9B72, 0x5B51, 0x9B73, 0x5B55, 0x9B74, 0x5B5A, 0x9B75, 0x5B5B, 0x9B76, 0x5B65, 0x9B77, 0x5B69, + 0x9B78, 0x5B70, 0x9B79, 0x5B73, 0x9B7A, 0x5B75, 0x9B7B, 0x5B78, 0x9B7C, 0x6588, 0x9B7D, 0x5B7A, 0x9B7E, 0x5B80, 0x9B80, 0x5B83, + 0x9B81, 0x5BA6, 0x9B82, 0x5BB8, 0x9B83, 0x5BC3, 0x9B84, 0x5BC7, 0x9B85, 0x5BC9, 0x9B86, 0x5BD4, 0x9B87, 0x5BD0, 0x9B88, 0x5BE4, + 0x9B89, 0x5BE6, 0x9B8A, 0x5BE2, 0x9B8B, 0x5BDE, 0x9B8C, 0x5BE5, 0x9B8D, 0x5BEB, 0x9B8E, 0x5BF0, 0x9B8F, 0x5BF6, 0x9B90, 0x5BF3, + 0x9B91, 0x5C05, 0x9B92, 0x5C07, 0x9B93, 0x5C08, 0x9B94, 0x5C0D, 0x9B95, 0x5C13, 0x9B96, 0x5C20, 0x9B97, 0x5C22, 0x9B98, 0x5C28, + 0x9B99, 0x5C38, 0x9B9A, 0x5C39, 0x9B9B, 0x5C41, 0x9B9C, 0x5C46, 0x9B9D, 0x5C4E, 0x9B9E, 0x5C53, 0x9B9F, 0x5C50, 0x9BA0, 0x5C4F, + 0x9BA1, 0x5B71, 0x9BA2, 0x5C6C, 0x9BA3, 0x5C6E, 0x9BA4, 0x4E62, 0x9BA5, 0x5C76, 0x9BA6, 0x5C79, 0x9BA7, 0x5C8C, 0x9BA8, 0x5C91, + 0x9BA9, 0x5C94, 0x9BAA, 0x599B, 0x9BAB, 0x5CAB, 0x9BAC, 0x5CBB, 0x9BAD, 0x5CB6, 0x9BAE, 0x5CBC, 0x9BAF, 0x5CB7, 0x9BB0, 0x5CC5, + 0x9BB1, 0x5CBE, 0x9BB2, 0x5CC7, 0x9BB3, 0x5CD9, 0x9BB4, 0x5CE9, 0x9BB5, 0x5CFD, 0x9BB6, 0x5CFA, 0x9BB7, 0x5CED, 0x9BB8, 0x5D8C, + 0x9BB9, 0x5CEA, 0x9BBA, 0x5D0B, 0x9BBB, 0x5D15, 0x9BBC, 0x5D17, 0x9BBD, 0x5D5C, 0x9BBE, 0x5D1F, 0x9BBF, 0x5D1B, 0x9BC0, 0x5D11, + 0x9BC1, 0x5D14, 0x9BC2, 0x5D22, 0x9BC3, 0x5D1A, 0x9BC4, 0x5D19, 0x9BC5, 0x5D18, 0x9BC6, 0x5D4C, 0x9BC7, 0x5D52, 0x9BC8, 0x5D4E, + 0x9BC9, 0x5D4B, 0x9BCA, 0x5D6C, 0x9BCB, 0x5D73, 0x9BCC, 0x5D76, 0x9BCD, 0x5D87, 0x9BCE, 0x5D84, 0x9BCF, 0x5D82, 0x9BD0, 0x5DA2, + 0x9BD1, 0x5D9D, 0x9BD2, 0x5DAC, 0x9BD3, 0x5DAE, 0x9BD4, 0x5DBD, 0x9BD5, 0x5D90, 0x9BD6, 0x5DB7, 0x9BD7, 0x5DBC, 0x9BD8, 0x5DC9, + 0x9BD9, 0x5DCD, 0x9BDA, 0x5DD3, 0x9BDB, 0x5DD2, 0x9BDC, 0x5DD6, 0x9BDD, 0x5DDB, 0x9BDE, 0x5DEB, 0x9BDF, 0x5DF2, 0x9BE0, 0x5DF5, + 0x9BE1, 0x5E0B, 0x9BE2, 0x5E1A, 0x9BE3, 0x5E19, 0x9BE4, 0x5E11, 0x9BE5, 0x5E1B, 0x9BE6, 0x5E36, 0x9BE7, 0x5E37, 0x9BE8, 0x5E44, + 0x9BE9, 0x5E43, 0x9BEA, 0x5E40, 0x9BEB, 0x5E4E, 0x9BEC, 0x5E57, 0x9BED, 0x5E54, 0x9BEE, 0x5E5F, 0x9BEF, 0x5E62, 0x9BF0, 0x5E64, + 0x9BF1, 0x5E47, 0x9BF2, 0x5E75, 0x9BF3, 0x5E76, 0x9BF4, 0x5E7A, 0x9BF5, 0x9EBC, 0x9BF6, 0x5E7F, 0x9BF7, 0x5EA0, 0x9BF8, 0x5EC1, + 0x9BF9, 0x5EC2, 0x9BFA, 0x5EC8, 0x9BFB, 0x5ED0, 0x9BFC, 0x5ECF, 0x9C40, 0x5ED6, 0x9C41, 0x5EE3, 0x9C42, 0x5EDD, 0x9C43, 0x5EDA, + 0x9C44, 0x5EDB, 0x9C45, 0x5EE2, 0x9C46, 0x5EE1, 0x9C47, 0x5EE8, 0x9C48, 0x5EE9, 0x9C49, 0x5EEC, 0x9C4A, 0x5EF1, 0x9C4B, 0x5EF3, + 0x9C4C, 0x5EF0, 0x9C4D, 0x5EF4, 0x9C4E, 0x5EF8, 0x9C4F, 0x5EFE, 0x9C50, 0x5F03, 0x9C51, 0x5F09, 0x9C52, 0x5F5D, 0x9C53, 0x5F5C, + 0x9C54, 0x5F0B, 0x9C55, 0x5F11, 0x9C56, 0x5F16, 0x9C57, 0x5F29, 0x9C58, 0x5F2D, 0x9C59, 0x5F38, 0x9C5A, 0x5F41, 0x9C5B, 0x5F48, + 0x9C5C, 0x5F4C, 0x9C5D, 0x5F4E, 0x9C5E, 0x5F2F, 0x9C5F, 0x5F51, 0x9C60, 0x5F56, 0x9C61, 0x5F57, 0x9C62, 0x5F59, 0x9C63, 0x5F61, + 0x9C64, 0x5F6D, 0x9C65, 0x5F73, 0x9C66, 0x5F77, 0x9C67, 0x5F83, 0x9C68, 0x5F82, 0x9C69, 0x5F7F, 0x9C6A, 0x5F8A, 0x9C6B, 0x5F88, + 0x9C6C, 0x5F91, 0x9C6D, 0x5F87, 0x9C6E, 0x5F9E, 0x9C6F, 0x5F99, 0x9C70, 0x5F98, 0x9C71, 0x5FA0, 0x9C72, 0x5FA8, 0x9C73, 0x5FAD, + 0x9C74, 0x5FBC, 0x9C75, 0x5FD6, 0x9C76, 0x5FFB, 0x9C77, 0x5FE4, 0x9C78, 0x5FF8, 0x9C79, 0x5FF1, 0x9C7A, 0x5FDD, 0x9C7B, 0x60B3, + 0x9C7C, 0x5FFF, 0x9C7D, 0x6021, 0x9C7E, 0x6060, 0x9C80, 0x6019, 0x9C81, 0x6010, 0x9C82, 0x6029, 0x9C83, 0x600E, 0x9C84, 0x6031, + 0x9C85, 0x601B, 0x9C86, 0x6015, 0x9C87, 0x602B, 0x9C88, 0x6026, 0x9C89, 0x600F, 0x9C8A, 0x603A, 0x9C8B, 0x605A, 0x9C8C, 0x6041, + 0x9C8D, 0x606A, 0x9C8E, 0x6077, 0x9C8F, 0x605F, 0x9C90, 0x604A, 0x9C91, 0x6046, 0x9C92, 0x604D, 0x9C93, 0x6063, 0x9C94, 0x6043, + 0x9C95, 0x6064, 0x9C96, 0x6042, 0x9C97, 0x606C, 0x9C98, 0x606B, 0x9C99, 0x6059, 0x9C9A, 0x6081, 0x9C9B, 0x608D, 0x9C9C, 0x60E7, + 0x9C9D, 0x6083, 0x9C9E, 0x609A, 0x9C9F, 0x6084, 0x9CA0, 0x609B, 0x9CA1, 0x6096, 0x9CA2, 0x6097, 0x9CA3, 0x6092, 0x9CA4, 0x60A7, + 0x9CA5, 0x608B, 0x9CA6, 0x60E1, 0x9CA7, 0x60B8, 0x9CA8, 0x60E0, 0x9CA9, 0x60D3, 0x9CAA, 0x60B4, 0x9CAB, 0x5FF0, 0x9CAC, 0x60BD, + 0x9CAD, 0x60C6, 0x9CAE, 0x60B5, 0x9CAF, 0x60D8, 0x9CB0, 0x614D, 0x9CB1, 0x6115, 0x9CB2, 0x6106, 0x9CB3, 0x60F6, 0x9CB4, 0x60F7, + 0x9CB5, 0x6100, 0x9CB6, 0x60F4, 0x9CB7, 0x60FA, 0x9CB8, 0x6103, 0x9CB9, 0x6121, 0x9CBA, 0x60FB, 0x9CBB, 0x60F1, 0x9CBC, 0x610D, + 0x9CBD, 0x610E, 0x9CBE, 0x6147, 0x9CBF, 0x613E, 0x9CC0, 0x6128, 0x9CC1, 0x6127, 0x9CC2, 0x614A, 0x9CC3, 0x613F, 0x9CC4, 0x613C, + 0x9CC5, 0x612C, 0x9CC6, 0x6134, 0x9CC7, 0x613D, 0x9CC8, 0x6142, 0x9CC9, 0x6144, 0x9CCA, 0x6173, 0x9CCB, 0x6177, 0x9CCC, 0x6158, + 0x9CCD, 0x6159, 0x9CCE, 0x615A, 0x9CCF, 0x616B, 0x9CD0, 0x6174, 0x9CD1, 0x616F, 0x9CD2, 0x6165, 0x9CD3, 0x6171, 0x9CD4, 0x615F, + 0x9CD5, 0x615D, 0x9CD6, 0x6153, 0x9CD7, 0x6175, 0x9CD8, 0x6199, 0x9CD9, 0x6196, 0x9CDA, 0x6187, 0x9CDB, 0x61AC, 0x9CDC, 0x6194, + 0x9CDD, 0x619A, 0x9CDE, 0x618A, 0x9CDF, 0x6191, 0x9CE0, 0x61AB, 0x9CE1, 0x61AE, 0x9CE2, 0x61CC, 0x9CE3, 0x61CA, 0x9CE4, 0x61C9, + 0x9CE5, 0x61F7, 0x9CE6, 0x61C8, 0x9CE7, 0x61C3, 0x9CE8, 0x61C6, 0x9CE9, 0x61BA, 0x9CEA, 0x61CB, 0x9CEB, 0x7F79, 0x9CEC, 0x61CD, + 0x9CED, 0x61E6, 0x9CEE, 0x61E3, 0x9CEF, 0x61F6, 0x9CF0, 0x61FA, 0x9CF1, 0x61F4, 0x9CF2, 0x61FF, 0x9CF3, 0x61FD, 0x9CF4, 0x61FC, + 0x9CF5, 0x61FE, 0x9CF6, 0x6200, 0x9CF7, 0x6208, 0x9CF8, 0x6209, 0x9CF9, 0x620D, 0x9CFA, 0x620C, 0x9CFB, 0x6214, 0x9CFC, 0x621B, + 0x9D40, 0x621E, 0x9D41, 0x6221, 0x9D42, 0x622A, 0x9D43, 0x622E, 0x9D44, 0x6230, 0x9D45, 0x6232, 0x9D46, 0x6233, 0x9D47, 0x6241, + 0x9D48, 0x624E, 0x9D49, 0x625E, 0x9D4A, 0x6263, 0x9D4B, 0x625B, 0x9D4C, 0x6260, 0x9D4D, 0x6268, 0x9D4E, 0x627C, 0x9D4F, 0x6282, + 0x9D50, 0x6289, 0x9D51, 0x627E, 0x9D52, 0x6292, 0x9D53, 0x6293, 0x9D54, 0x6296, 0x9D55, 0x62D4, 0x9D56, 0x6283, 0x9D57, 0x6294, + 0x9D58, 0x62D7, 0x9D59, 0x62D1, 0x9D5A, 0x62BB, 0x9D5B, 0x62CF, 0x9D5C, 0x62FF, 0x9D5D, 0x62C6, 0x9D5E, 0x64D4, 0x9D5F, 0x62C8, + 0x9D60, 0x62DC, 0x9D61, 0x62CC, 0x9D62, 0x62CA, 0x9D63, 0x62C2, 0x9D64, 0x62C7, 0x9D65, 0x629B, 0x9D66, 0x62C9, 0x9D67, 0x630C, + 0x9D68, 0x62EE, 0x9D69, 0x62F1, 0x9D6A, 0x6327, 0x9D6B, 0x6302, 0x9D6C, 0x6308, 0x9D6D, 0x62EF, 0x9D6E, 0x62F5, 0x9D6F, 0x6350, + 0x9D70, 0x633E, 0x9D71, 0x634D, 0x9D72, 0x641C, 0x9D73, 0x634F, 0x9D74, 0x6396, 0x9D75, 0x638E, 0x9D76, 0x6380, 0x9D77, 0x63AB, + 0x9D78, 0x6376, 0x9D79, 0x63A3, 0x9D7A, 0x638F, 0x9D7B, 0x6389, 0x9D7C, 0x639F, 0x9D7D, 0x63B5, 0x9D7E, 0x636B, 0x9D80, 0x6369, + 0x9D81, 0x63BE, 0x9D82, 0x63E9, 0x9D83, 0x63C0, 0x9D84, 0x63C6, 0x9D85, 0x63E3, 0x9D86, 0x63C9, 0x9D87, 0x63D2, 0x9D88, 0x63F6, + 0x9D89, 0x63C4, 0x9D8A, 0x6416, 0x9D8B, 0x6434, 0x9D8C, 0x6406, 0x9D8D, 0x6413, 0x9D8E, 0x6426, 0x9D8F, 0x6436, 0x9D90, 0x651D, + 0x9D91, 0x6417, 0x9D92, 0x6428, 0x9D93, 0x640F, 0x9D94, 0x6467, 0x9D95, 0x646F, 0x9D96, 0x6476, 0x9D97, 0x644E, 0x9D98, 0x652A, + 0x9D99, 0x6495, 0x9D9A, 0x6493, 0x9D9B, 0x64A5, 0x9D9C, 0x64A9, 0x9D9D, 0x6488, 0x9D9E, 0x64BC, 0x9D9F, 0x64DA, 0x9DA0, 0x64D2, + 0x9DA1, 0x64C5, 0x9DA2, 0x64C7, 0x9DA3, 0x64BB, 0x9DA4, 0x64D8, 0x9DA5, 0x64C2, 0x9DA6, 0x64F1, 0x9DA7, 0x64E7, 0x9DA8, 0x8209, + 0x9DA9, 0x64E0, 0x9DAA, 0x64E1, 0x9DAB, 0x62AC, 0x9DAC, 0x64E3, 0x9DAD, 0x64EF, 0x9DAE, 0x652C, 0x9DAF, 0x64F6, 0x9DB0, 0x64F4, + 0x9DB1, 0x64F2, 0x9DB2, 0x64FA, 0x9DB3, 0x6500, 0x9DB4, 0x64FD, 0x9DB5, 0x6518, 0x9DB6, 0x651C, 0x9DB7, 0x6505, 0x9DB8, 0x6524, + 0x9DB9, 0x6523, 0x9DBA, 0x652B, 0x9DBB, 0x6534, 0x9DBC, 0x6535, 0x9DBD, 0x6537, 0x9DBE, 0x6536, 0x9DBF, 0x6538, 0x9DC0, 0x754B, + 0x9DC1, 0x6548, 0x9DC2, 0x6556, 0x9DC3, 0x6555, 0x9DC4, 0x654D, 0x9DC5, 0x6558, 0x9DC6, 0x655E, 0x9DC7, 0x655D, 0x9DC8, 0x6572, + 0x9DC9, 0x6578, 0x9DCA, 0x6582, 0x9DCB, 0x6583, 0x9DCC, 0x8B8A, 0x9DCD, 0x659B, 0x9DCE, 0x659F, 0x9DCF, 0x65AB, 0x9DD0, 0x65B7, + 0x9DD1, 0x65C3, 0x9DD2, 0x65C6, 0x9DD3, 0x65C1, 0x9DD4, 0x65C4, 0x9DD5, 0x65CC, 0x9DD6, 0x65D2, 0x9DD7, 0x65DB, 0x9DD8, 0x65D9, + 0x9DD9, 0x65E0, 0x9DDA, 0x65E1, 0x9DDB, 0x65F1, 0x9DDC, 0x6772, 0x9DDD, 0x660A, 0x9DDE, 0x6603, 0x9DDF, 0x65FB, 0x9DE0, 0x6773, + 0x9DE1, 0x6635, 0x9DE2, 0x6636, 0x9DE3, 0x6634, 0x9DE4, 0x661C, 0x9DE5, 0x664F, 0x9DE6, 0x6644, 0x9DE7, 0x6649, 0x9DE8, 0x6641, + 0x9DE9, 0x665E, 0x9DEA, 0x665D, 0x9DEB, 0x6664, 0x9DEC, 0x6667, 0x9DED, 0x6668, 0x9DEE, 0x665F, 0x9DEF, 0x6662, 0x9DF0, 0x6670, + 0x9DF1, 0x6683, 0x9DF2, 0x6688, 0x9DF3, 0x668E, 0x9DF4, 0x6689, 0x9DF5, 0x6684, 0x9DF6, 0x6698, 0x9DF7, 0x669D, 0x9DF8, 0x66C1, + 0x9DF9, 0x66B9, 0x9DFA, 0x66C9, 0x9DFB, 0x66BE, 0x9DFC, 0x66BC, 0x9E40, 0x66C4, 0x9E41, 0x66B8, 0x9E42, 0x66D6, 0x9E43, 0x66DA, + 0x9E44, 0x66E0, 0x9E45, 0x663F, 0x9E46, 0x66E6, 0x9E47, 0x66E9, 0x9E48, 0x66F0, 0x9E49, 0x66F5, 0x9E4A, 0x66F7, 0x9E4B, 0x670F, + 0x9E4C, 0x6716, 0x9E4D, 0x671E, 0x9E4E, 0x6726, 0x9E4F, 0x6727, 0x9E50, 0x9738, 0x9E51, 0x672E, 0x9E52, 0x673F, 0x9E53, 0x6736, + 0x9E54, 0x6741, 0x9E55, 0x6738, 0x9E56, 0x6737, 0x9E57, 0x6746, 0x9E58, 0x675E, 0x9E59, 0x6760, 0x9E5A, 0x6759, 0x9E5B, 0x6763, + 0x9E5C, 0x6764, 0x9E5D, 0x6789, 0x9E5E, 0x6770, 0x9E5F, 0x67A9, 0x9E60, 0x677C, 0x9E61, 0x676A, 0x9E62, 0x678C, 0x9E63, 0x678B, + 0x9E64, 0x67A6, 0x9E65, 0x67A1, 0x9E66, 0x6785, 0x9E67, 0x67B7, 0x9E68, 0x67EF, 0x9E69, 0x67B4, 0x9E6A, 0x67EC, 0x9E6B, 0x67B3, + 0x9E6C, 0x67E9, 0x9E6D, 0x67B8, 0x9E6E, 0x67E4, 0x9E6F, 0x67DE, 0x9E70, 0x67DD, 0x9E71, 0x67E2, 0x9E72, 0x67EE, 0x9E73, 0x67B9, + 0x9E74, 0x67CE, 0x9E75, 0x67C6, 0x9E76, 0x67E7, 0x9E77, 0x6A9C, 0x9E78, 0x681E, 0x9E79, 0x6846, 0x9E7A, 0x6829, 0x9E7B, 0x6840, + 0x9E7C, 0x684D, 0x9E7D, 0x6832, 0x9E7E, 0x684E, 0x9E80, 0x68B3, 0x9E81, 0x682B, 0x9E82, 0x6859, 0x9E83, 0x6863, 0x9E84, 0x6877, + 0x9E85, 0x687F, 0x9E86, 0x689F, 0x9E87, 0x688F, 0x9E88, 0x68AD, 0x9E89, 0x6894, 0x9E8A, 0x689D, 0x9E8B, 0x689B, 0x9E8C, 0x6883, + 0x9E8D, 0x6AAE, 0x9E8E, 0x68B9, 0x9E8F, 0x6874, 0x9E90, 0x68B5, 0x9E91, 0x68A0, 0x9E92, 0x68BA, 0x9E93, 0x690F, 0x9E94, 0x688D, + 0x9E95, 0x687E, 0x9E96, 0x6901, 0x9E97, 0x68CA, 0x9E98, 0x6908, 0x9E99, 0x68D8, 0x9E9A, 0x6922, 0x9E9B, 0x6926, 0x9E9C, 0x68E1, + 0x9E9D, 0x690C, 0x9E9E, 0x68CD, 0x9E9F, 0x68D4, 0x9EA0, 0x68E7, 0x9EA1, 0x68D5, 0x9EA2, 0x6936, 0x9EA3, 0x6912, 0x9EA4, 0x6904, + 0x9EA5, 0x68D7, 0x9EA6, 0x68E3, 0x9EA7, 0x6925, 0x9EA8, 0x68F9, 0x9EA9, 0x68E0, 0x9EAA, 0x68EF, 0x9EAB, 0x6928, 0x9EAC, 0x692A, + 0x9EAD, 0x691A, 0x9EAE, 0x6923, 0x9EAF, 0x6921, 0x9EB0, 0x68C6, 0x9EB1, 0x6979, 0x9EB2, 0x6977, 0x9EB3, 0x695C, 0x9EB4, 0x6978, + 0x9EB5, 0x696B, 0x9EB6, 0x6954, 0x9EB7, 0x697E, 0x9EB8, 0x696E, 0x9EB9, 0x6939, 0x9EBA, 0x6974, 0x9EBB, 0x693D, 0x9EBC, 0x6959, + 0x9EBD, 0x6930, 0x9EBE, 0x6961, 0x9EBF, 0x695E, 0x9EC0, 0x695D, 0x9EC1, 0x6981, 0x9EC2, 0x696A, 0x9EC3, 0x69B2, 0x9EC4, 0x69AE, + 0x9EC5, 0x69D0, 0x9EC6, 0x69BF, 0x9EC7, 0x69C1, 0x9EC8, 0x69D3, 0x9EC9, 0x69BE, 0x9ECA, 0x69CE, 0x9ECB, 0x5BE8, 0x9ECC, 0x69CA, + 0x9ECD, 0x69DD, 0x9ECE, 0x69BB, 0x9ECF, 0x69C3, 0x9ED0, 0x69A7, 0x9ED1, 0x6A2E, 0x9ED2, 0x6991, 0x9ED3, 0x69A0, 0x9ED4, 0x699C, + 0x9ED5, 0x6995, 0x9ED6, 0x69B4, 0x9ED7, 0x69DE, 0x9ED8, 0x69E8, 0x9ED9, 0x6A02, 0x9EDA, 0x6A1B, 0x9EDB, 0x69FF, 0x9EDC, 0x6B0A, + 0x9EDD, 0x69F9, 0x9EDE, 0x69F2, 0x9EDF, 0x69E7, 0x9EE0, 0x6A05, 0x9EE1, 0x69B1, 0x9EE2, 0x6A1E, 0x9EE3, 0x69ED, 0x9EE4, 0x6A14, + 0x9EE5, 0x69EB, 0x9EE6, 0x6A0A, 0x9EE7, 0x6A12, 0x9EE8, 0x6AC1, 0x9EE9, 0x6A23, 0x9EEA, 0x6A13, 0x9EEB, 0x6A44, 0x9EEC, 0x6A0C, + 0x9EED, 0x6A72, 0x9EEE, 0x6A36, 0x9EEF, 0x6A78, 0x9EF0, 0x6A47, 0x9EF1, 0x6A62, 0x9EF2, 0x6A59, 0x9EF3, 0x6A66, 0x9EF4, 0x6A48, + 0x9EF5, 0x6A38, 0x9EF6, 0x6A22, 0x9EF7, 0x6A90, 0x9EF8, 0x6A8D, 0x9EF9, 0x6AA0, 0x9EFA, 0x6A84, 0x9EFB, 0x6AA2, 0x9EFC, 0x6AA3, + 0x9F40, 0x6A97, 0x9F41, 0x8617, 0x9F42, 0x6ABB, 0x9F43, 0x6AC3, 0x9F44, 0x6AC2, 0x9F45, 0x6AB8, 0x9F46, 0x6AB3, 0x9F47, 0x6AAC, + 0x9F48, 0x6ADE, 0x9F49, 0x6AD1, 0x9F4A, 0x6ADF, 0x9F4B, 0x6AAA, 0x9F4C, 0x6ADA, 0x9F4D, 0x6AEA, 0x9F4E, 0x6AFB, 0x9F4F, 0x6B05, + 0x9F50, 0x8616, 0x9F51, 0x6AFA, 0x9F52, 0x6B12, 0x9F53, 0x6B16, 0x9F54, 0x9B31, 0x9F55, 0x6B1F, 0x9F56, 0x6B38, 0x9F57, 0x6B37, + 0x9F58, 0x76DC, 0x9F59, 0x6B39, 0x9F5A, 0x98EE, 0x9F5B, 0x6B47, 0x9F5C, 0x6B43, 0x9F5D, 0x6B49, 0x9F5E, 0x6B50, 0x9F5F, 0x6B59, + 0x9F60, 0x6B54, 0x9F61, 0x6B5B, 0x9F62, 0x6B5F, 0x9F63, 0x6B61, 0x9F64, 0x6B78, 0x9F65, 0x6B79, 0x9F66, 0x6B7F, 0x9F67, 0x6B80, + 0x9F68, 0x6B84, 0x9F69, 0x6B83, 0x9F6A, 0x6B8D, 0x9F6B, 0x6B98, 0x9F6C, 0x6B95, 0x9F6D, 0x6B9E, 0x9F6E, 0x6BA4, 0x9F6F, 0x6BAA, + 0x9F70, 0x6BAB, 0x9F71, 0x6BAF, 0x9F72, 0x6BB2, 0x9F73, 0x6BB1, 0x9F74, 0x6BB3, 0x9F75, 0x6BB7, 0x9F76, 0x6BBC, 0x9F77, 0x6BC6, + 0x9F78, 0x6BCB, 0x9F79, 0x6BD3, 0x9F7A, 0x6BDF, 0x9F7B, 0x6BEC, 0x9F7C, 0x6BEB, 0x9F7D, 0x6BF3, 0x9F7E, 0x6BEF, 0x9F80, 0x9EBE, + 0x9F81, 0x6C08, 0x9F82, 0x6C13, 0x9F83, 0x6C14, 0x9F84, 0x6C1B, 0x9F85, 0x6C24, 0x9F86, 0x6C23, 0x9F87, 0x6C5E, 0x9F88, 0x6C55, + 0x9F89, 0x6C62, 0x9F8A, 0x6C6A, 0x9F8B, 0x6C82, 0x9F8C, 0x6C8D, 0x9F8D, 0x6C9A, 0x9F8E, 0x6C81, 0x9F8F, 0x6C9B, 0x9F90, 0x6C7E, + 0x9F91, 0x6C68, 0x9F92, 0x6C73, 0x9F93, 0x6C92, 0x9F94, 0x6C90, 0x9F95, 0x6CC4, 0x9F96, 0x6CF1, 0x9F97, 0x6CD3, 0x9F98, 0x6CBD, + 0x9F99, 0x6CD7, 0x9F9A, 0x6CC5, 0x9F9B, 0x6CDD, 0x9F9C, 0x6CAE, 0x9F9D, 0x6CB1, 0x9F9E, 0x6CBE, 0x9F9F, 0x6CBA, 0x9FA0, 0x6CDB, + 0x9FA1, 0x6CEF, 0x9FA2, 0x6CD9, 0x9FA3, 0x6CEA, 0x9FA4, 0x6D1F, 0x9FA5, 0x884D, 0x9FA6, 0x6D36, 0x9FA7, 0x6D2B, 0x9FA8, 0x6D3D, + 0x9FA9, 0x6D38, 0x9FAA, 0x6D19, 0x9FAB, 0x6D35, 0x9FAC, 0x6D33, 0x9FAD, 0x6D12, 0x9FAE, 0x6D0C, 0x9FAF, 0x6D63, 0x9FB0, 0x6D93, + 0x9FB1, 0x6D64, 0x9FB2, 0x6D5A, 0x9FB3, 0x6D79, 0x9FB4, 0x6D59, 0x9FB5, 0x6D8E, 0x9FB6, 0x6D95, 0x9FB7, 0x6FE4, 0x9FB8, 0x6D85, + 0x9FB9, 0x6DF9, 0x9FBA, 0x6E15, 0x9FBB, 0x6E0A, 0x9FBC, 0x6DB5, 0x9FBD, 0x6DC7, 0x9FBE, 0x6DE6, 0x9FBF, 0x6DB8, 0x9FC0, 0x6DC6, + 0x9FC1, 0x6DEC, 0x9FC2, 0x6DDE, 0x9FC3, 0x6DCC, 0x9FC4, 0x6DE8, 0x9FC5, 0x6DD2, 0x9FC6, 0x6DC5, 0x9FC7, 0x6DFA, 0x9FC8, 0x6DD9, + 0x9FC9, 0x6DE4, 0x9FCA, 0x6DD5, 0x9FCB, 0x6DEA, 0x9FCC, 0x6DEE, 0x9FCD, 0x6E2D, 0x9FCE, 0x6E6E, 0x9FCF, 0x6E2E, 0x9FD0, 0x6E19, + 0x9FD1, 0x6E72, 0x9FD2, 0x6E5F, 0x9FD3, 0x6E3E, 0x9FD4, 0x6E23, 0x9FD5, 0x6E6B, 0x9FD6, 0x6E2B, 0x9FD7, 0x6E76, 0x9FD8, 0x6E4D, + 0x9FD9, 0x6E1F, 0x9FDA, 0x6E43, 0x9FDB, 0x6E3A, 0x9FDC, 0x6E4E, 0x9FDD, 0x6E24, 0x9FDE, 0x6EFF, 0x9FDF, 0x6E1D, 0x9FE0, 0x6E38, + 0x9FE1, 0x6E82, 0x9FE2, 0x6EAA, 0x9FE3, 0x6E98, 0x9FE4, 0x6EC9, 0x9FE5, 0x6EB7, 0x9FE6, 0x6ED3, 0x9FE7, 0x6EBD, 0x9FE8, 0x6EAF, + 0x9FE9, 0x6EC4, 0x9FEA, 0x6EB2, 0x9FEB, 0x6ED4, 0x9FEC, 0x6ED5, 0x9FED, 0x6E8F, 0x9FEE, 0x6EA5, 0x9FEF, 0x6EC2, 0x9FF0, 0x6E9F, + 0x9FF1, 0x6F41, 0x9FF2, 0x6F11, 0x9FF3, 0x704C, 0x9FF4, 0x6EEC, 0x9FF5, 0x6EF8, 0x9FF6, 0x6EFE, 0x9FF7, 0x6F3F, 0x9FF8, 0x6EF2, + 0x9FF9, 0x6F31, 0x9FFA, 0x6EEF, 0x9FFB, 0x6F32, 0x9FFC, 0x6ECC, 0xE040, 0x6F3E, 0xE041, 0x6F13, 0xE042, 0x6EF7, 0xE043, 0x6F86, + 0xE044, 0x6F7A, 0xE045, 0x6F78, 0xE046, 0x6F81, 0xE047, 0x6F80, 0xE048, 0x6F6F, 0xE049, 0x6F5B, 0xE04A, 0x6FF3, 0xE04B, 0x6F6D, + 0xE04C, 0x6F82, 0xE04D, 0x6F7C, 0xE04E, 0x6F58, 0xE04F, 0x6F8E, 0xE050, 0x6F91, 0xE051, 0x6FC2, 0xE052, 0x6F66, 0xE053, 0x6FB3, + 0xE054, 0x6FA3, 0xE055, 0x6FA1, 0xE056, 0x6FA4, 0xE057, 0x6FB9, 0xE058, 0x6FC6, 0xE059, 0x6FAA, 0xE05A, 0x6FDF, 0xE05B, 0x6FD5, + 0xE05C, 0x6FEC, 0xE05D, 0x6FD4, 0xE05E, 0x6FD8, 0xE05F, 0x6FF1, 0xE060, 0x6FEE, 0xE061, 0x6FDB, 0xE062, 0x7009, 0xE063, 0x700B, + 0xE064, 0x6FFA, 0xE065, 0x7011, 0xE066, 0x7001, 0xE067, 0x700F, 0xE068, 0x6FFE, 0xE069, 0x701B, 0xE06A, 0x701A, 0xE06B, 0x6F74, + 0xE06C, 0x701D, 0xE06D, 0x7018, 0xE06E, 0x701F, 0xE06F, 0x7030, 0xE070, 0x703E, 0xE071, 0x7032, 0xE072, 0x7051, 0xE073, 0x7063, + 0xE074, 0x7099, 0xE075, 0x7092, 0xE076, 0x70AF, 0xE077, 0x70F1, 0xE078, 0x70AC, 0xE079, 0x70B8, 0xE07A, 0x70B3, 0xE07B, 0x70AE, + 0xE07C, 0x70DF, 0xE07D, 0x70CB, 0xE07E, 0x70DD, 0xE080, 0x70D9, 0xE081, 0x7109, 0xE082, 0x70FD, 0xE083, 0x711C, 0xE084, 0x7119, + 0xE085, 0x7165, 0xE086, 0x7155, 0xE087, 0x7188, 0xE088, 0x7166, 0xE089, 0x7162, 0xE08A, 0x714C, 0xE08B, 0x7156, 0xE08C, 0x716C, + 0xE08D, 0x718F, 0xE08E, 0x71FB, 0xE08F, 0x7184, 0xE090, 0x7195, 0xE091, 0x71A8, 0xE092, 0x71AC, 0xE093, 0x71D7, 0xE094, 0x71B9, + 0xE095, 0x71BE, 0xE096, 0x71D2, 0xE097, 0x71C9, 0xE098, 0x71D4, 0xE099, 0x71CE, 0xE09A, 0x71E0, 0xE09B, 0x71EC, 0xE09C, 0x71E7, + 0xE09D, 0x71F5, 0xE09E, 0x71FC, 0xE09F, 0x71F9, 0xE0A0, 0x71FF, 0xE0A1, 0x720D, 0xE0A2, 0x7210, 0xE0A3, 0x721B, 0xE0A4, 0x7228, + 0xE0A5, 0x722D, 0xE0A6, 0x722C, 0xE0A7, 0x7230, 0xE0A8, 0x7232, 0xE0A9, 0x723B, 0xE0AA, 0x723C, 0xE0AB, 0x723F, 0xE0AC, 0x7240, + 0xE0AD, 0x7246, 0xE0AE, 0x724B, 0xE0AF, 0x7258, 0xE0B0, 0x7274, 0xE0B1, 0x727E, 0xE0B2, 0x7282, 0xE0B3, 0x7281, 0xE0B4, 0x7287, + 0xE0B5, 0x7292, 0xE0B6, 0x7296, 0xE0B7, 0x72A2, 0xE0B8, 0x72A7, 0xE0B9, 0x72B9, 0xE0BA, 0x72B2, 0xE0BB, 0x72C3, 0xE0BC, 0x72C6, + 0xE0BD, 0x72C4, 0xE0BE, 0x72CE, 0xE0BF, 0x72D2, 0xE0C0, 0x72E2, 0xE0C1, 0x72E0, 0xE0C2, 0x72E1, 0xE0C3, 0x72F9, 0xE0C4, 0x72F7, + 0xE0C5, 0x500F, 0xE0C6, 0x7317, 0xE0C7, 0x730A, 0xE0C8, 0x731C, 0xE0C9, 0x7316, 0xE0CA, 0x731D, 0xE0CB, 0x7334, 0xE0CC, 0x732F, + 0xE0CD, 0x7329, 0xE0CE, 0x7325, 0xE0CF, 0x733E, 0xE0D0, 0x734E, 0xE0D1, 0x734F, 0xE0D2, 0x9ED8, 0xE0D3, 0x7357, 0xE0D4, 0x736A, + 0xE0D5, 0x7368, 0xE0D6, 0x7370, 0xE0D7, 0x7378, 0xE0D8, 0x7375, 0xE0D9, 0x737B, 0xE0DA, 0x737A, 0xE0DB, 0x73C8, 0xE0DC, 0x73B3, + 0xE0DD, 0x73CE, 0xE0DE, 0x73BB, 0xE0DF, 0x73C0, 0xE0E0, 0x73E5, 0xE0E1, 0x73EE, 0xE0E2, 0x73DE, 0xE0E3, 0x74A2, 0xE0E4, 0x7405, + 0xE0E5, 0x746F, 0xE0E6, 0x7425, 0xE0E7, 0x73F8, 0xE0E8, 0x7432, 0xE0E9, 0x743A, 0xE0EA, 0x7455, 0xE0EB, 0x743F, 0xE0EC, 0x745F, + 0xE0ED, 0x7459, 0xE0EE, 0x7441, 0xE0EF, 0x745C, 0xE0F0, 0x7469, 0xE0F1, 0x7470, 0xE0F2, 0x7463, 0xE0F3, 0x746A, 0xE0F4, 0x7476, + 0xE0F5, 0x747E, 0xE0F6, 0x748B, 0xE0F7, 0x749E, 0xE0F8, 0x74A7, 0xE0F9, 0x74CA, 0xE0FA, 0x74CF, 0xE0FB, 0x74D4, 0xE0FC, 0x73F1, + 0xE140, 0x74E0, 0xE141, 0x74E3, 0xE142, 0x74E7, 0xE143, 0x74E9, 0xE144, 0x74EE, 0xE145, 0x74F2, 0xE146, 0x74F0, 0xE147, 0x74F1, + 0xE148, 0x74F8, 0xE149, 0x74F7, 0xE14A, 0x7504, 0xE14B, 0x7503, 0xE14C, 0x7505, 0xE14D, 0x750C, 0xE14E, 0x750E, 0xE14F, 0x750D, + 0xE150, 0x7515, 0xE151, 0x7513, 0xE152, 0x751E, 0xE153, 0x7526, 0xE154, 0x752C, 0xE155, 0x753C, 0xE156, 0x7544, 0xE157, 0x754D, + 0xE158, 0x754A, 0xE159, 0x7549, 0xE15A, 0x755B, 0xE15B, 0x7546, 0xE15C, 0x755A, 0xE15D, 0x7569, 0xE15E, 0x7564, 0xE15F, 0x7567, + 0xE160, 0x756B, 0xE161, 0x756D, 0xE162, 0x7578, 0xE163, 0x7576, 0xE164, 0x7586, 0xE165, 0x7587, 0xE166, 0x7574, 0xE167, 0x758A, + 0xE168, 0x7589, 0xE169, 0x7582, 0xE16A, 0x7594, 0xE16B, 0x759A, 0xE16C, 0x759D, 0xE16D, 0x75A5, 0xE16E, 0x75A3, 0xE16F, 0x75C2, + 0xE170, 0x75B3, 0xE171, 0x75C3, 0xE172, 0x75B5, 0xE173, 0x75BD, 0xE174, 0x75B8, 0xE175, 0x75BC, 0xE176, 0x75B1, 0xE177, 0x75CD, + 0xE178, 0x75CA, 0xE179, 0x75D2, 0xE17A, 0x75D9, 0xE17B, 0x75E3, 0xE17C, 0x75DE, 0xE17D, 0x75FE, 0xE17E, 0x75FF, 0xE180, 0x75FC, + 0xE181, 0x7601, 0xE182, 0x75F0, 0xE183, 0x75FA, 0xE184, 0x75F2, 0xE185, 0x75F3, 0xE186, 0x760B, 0xE187, 0x760D, 0xE188, 0x7609, + 0xE189, 0x761F, 0xE18A, 0x7627, 0xE18B, 0x7620, 0xE18C, 0x7621, 0xE18D, 0x7622, 0xE18E, 0x7624, 0xE18F, 0x7634, 0xE190, 0x7630, + 0xE191, 0x763B, 0xE192, 0x7647, 0xE193, 0x7648, 0xE194, 0x7646, 0xE195, 0x765C, 0xE196, 0x7658, 0xE197, 0x7661, 0xE198, 0x7662, + 0xE199, 0x7668, 0xE19A, 0x7669, 0xE19B, 0x766A, 0xE19C, 0x7667, 0xE19D, 0x766C, 0xE19E, 0x7670, 0xE19F, 0x7672, 0xE1A0, 0x7676, + 0xE1A1, 0x7678, 0xE1A2, 0x767C, 0xE1A3, 0x7680, 0xE1A4, 0x7683, 0xE1A5, 0x7688, 0xE1A6, 0x768B, 0xE1A7, 0x768E, 0xE1A8, 0x7696, + 0xE1A9, 0x7693, 0xE1AA, 0x7699, 0xE1AB, 0x769A, 0xE1AC, 0x76B0, 0xE1AD, 0x76B4, 0xE1AE, 0x76B8, 0xE1AF, 0x76B9, 0xE1B0, 0x76BA, + 0xE1B1, 0x76C2, 0xE1B2, 0x76CD, 0xE1B3, 0x76D6, 0xE1B4, 0x76D2, 0xE1B5, 0x76DE, 0xE1B6, 0x76E1, 0xE1B7, 0x76E5, 0xE1B8, 0x76E7, + 0xE1B9, 0x76EA, 0xE1BA, 0x862F, 0xE1BB, 0x76FB, 0xE1BC, 0x7708, 0xE1BD, 0x7707, 0xE1BE, 0x7704, 0xE1BF, 0x7729, 0xE1C0, 0x7724, + 0xE1C1, 0x771E, 0xE1C2, 0x7725, 0xE1C3, 0x7726, 0xE1C4, 0x771B, 0xE1C5, 0x7737, 0xE1C6, 0x7738, 0xE1C7, 0x7747, 0xE1C8, 0x775A, + 0xE1C9, 0x7768, 0xE1CA, 0x776B, 0xE1CB, 0x775B, 0xE1CC, 0x7765, 0xE1CD, 0x777F, 0xE1CE, 0x777E, 0xE1CF, 0x7779, 0xE1D0, 0x778E, + 0xE1D1, 0x778B, 0xE1D2, 0x7791, 0xE1D3, 0x77A0, 0xE1D4, 0x779E, 0xE1D5, 0x77B0, 0xE1D6, 0x77B6, 0xE1D7, 0x77B9, 0xE1D8, 0x77BF, + 0xE1D9, 0x77BC, 0xE1DA, 0x77BD, 0xE1DB, 0x77BB, 0xE1DC, 0x77C7, 0xE1DD, 0x77CD, 0xE1DE, 0x77D7, 0xE1DF, 0x77DA, 0xE1E0, 0x77DC, + 0xE1E1, 0x77E3, 0xE1E2, 0x77EE, 0xE1E3, 0x77FC, 0xE1E4, 0x780C, 0xE1E5, 0x7812, 0xE1E6, 0x7926, 0xE1E7, 0x7820, 0xE1E8, 0x792A, + 0xE1E9, 0x7845, 0xE1EA, 0x788E, 0xE1EB, 0x7874, 0xE1EC, 0x7886, 0xE1ED, 0x787C, 0xE1EE, 0x789A, 0xE1EF, 0x788C, 0xE1F0, 0x78A3, + 0xE1F1, 0x78B5, 0xE1F2, 0x78AA, 0xE1F3, 0x78AF, 0xE1F4, 0x78D1, 0xE1F5, 0x78C6, 0xE1F6, 0x78CB, 0xE1F7, 0x78D4, 0xE1F8, 0x78BE, + 0xE1F9, 0x78BC, 0xE1FA, 0x78C5, 0xE1FB, 0x78CA, 0xE1FC, 0x78EC, 0xE240, 0x78E7, 0xE241, 0x78DA, 0xE242, 0x78FD, 0xE243, 0x78F4, + 0xE244, 0x7907, 0xE245, 0x7912, 0xE246, 0x7911, 0xE247, 0x7919, 0xE248, 0x792C, 0xE249, 0x792B, 0xE24A, 0x7940, 0xE24B, 0x7960, + 0xE24C, 0x7957, 0xE24D, 0x795F, 0xE24E, 0x795A, 0xE24F, 0x7955, 0xE250, 0x7953, 0xE251, 0x797A, 0xE252, 0x797F, 0xE253, 0x798A, + 0xE254, 0x799D, 0xE255, 0x79A7, 0xE256, 0x9F4B, 0xE257, 0x79AA, 0xE258, 0x79AE, 0xE259, 0x79B3, 0xE25A, 0x79B9, 0xE25B, 0x79BA, + 0xE25C, 0x79C9, 0xE25D, 0x79D5, 0xE25E, 0x79E7, 0xE25F, 0x79EC, 0xE260, 0x79E1, 0xE261, 0x79E3, 0xE262, 0x7A08, 0xE263, 0x7A0D, + 0xE264, 0x7A18, 0xE265, 0x7A19, 0xE266, 0x7A20, 0xE267, 0x7A1F, 0xE268, 0x7980, 0xE269, 0x7A31, 0xE26A, 0x7A3B, 0xE26B, 0x7A3E, + 0xE26C, 0x7A37, 0xE26D, 0x7A43, 0xE26E, 0x7A57, 0xE26F, 0x7A49, 0xE270, 0x7A61, 0xE271, 0x7A62, 0xE272, 0x7A69, 0xE273, 0x9F9D, + 0xE274, 0x7A70, 0xE275, 0x7A79, 0xE276, 0x7A7D, 0xE277, 0x7A88, 0xE278, 0x7A97, 0xE279, 0x7A95, 0xE27A, 0x7A98, 0xE27B, 0x7A96, + 0xE27C, 0x7AA9, 0xE27D, 0x7AC8, 0xE27E, 0x7AB0, 0xE280, 0x7AB6, 0xE281, 0x7AC5, 0xE282, 0x7AC4, 0xE283, 0x7ABF, 0xE284, 0x9083, + 0xE285, 0x7AC7, 0xE286, 0x7ACA, 0xE287, 0x7ACD, 0xE288, 0x7ACF, 0xE289, 0x7AD5, 0xE28A, 0x7AD3, 0xE28B, 0x7AD9, 0xE28C, 0x7ADA, + 0xE28D, 0x7ADD, 0xE28E, 0x7AE1, 0xE28F, 0x7AE2, 0xE290, 0x7AE6, 0xE291, 0x7AED, 0xE292, 0x7AF0, 0xE293, 0x7B02, 0xE294, 0x7B0F, + 0xE295, 0x7B0A, 0xE296, 0x7B06, 0xE297, 0x7B33, 0xE298, 0x7B18, 0xE299, 0x7B19, 0xE29A, 0x7B1E, 0xE29B, 0x7B35, 0xE29C, 0x7B28, + 0xE29D, 0x7B36, 0xE29E, 0x7B50, 0xE29F, 0x7B7A, 0xE2A0, 0x7B04, 0xE2A1, 0x7B4D, 0xE2A2, 0x7B0B, 0xE2A3, 0x7B4C, 0xE2A4, 0x7B45, + 0xE2A5, 0x7B75, 0xE2A6, 0x7B65, 0xE2A7, 0x7B74, 0xE2A8, 0x7B67, 0xE2A9, 0x7B70, 0xE2AA, 0x7B71, 0xE2AB, 0x7B6C, 0xE2AC, 0x7B6E, + 0xE2AD, 0x7B9D, 0xE2AE, 0x7B98, 0xE2AF, 0x7B9F, 0xE2B0, 0x7B8D, 0xE2B1, 0x7B9C, 0xE2B2, 0x7B9A, 0xE2B3, 0x7B8B, 0xE2B4, 0x7B92, + 0xE2B5, 0x7B8F, 0xE2B6, 0x7B5D, 0xE2B7, 0x7B99, 0xE2B8, 0x7BCB, 0xE2B9, 0x7BC1, 0xE2BA, 0x7BCC, 0xE2BB, 0x7BCF, 0xE2BC, 0x7BB4, + 0xE2BD, 0x7BC6, 0xE2BE, 0x7BDD, 0xE2BF, 0x7BE9, 0xE2C0, 0x7C11, 0xE2C1, 0x7C14, 0xE2C2, 0x7BE6, 0xE2C3, 0x7BE5, 0xE2C4, 0x7C60, + 0xE2C5, 0x7C00, 0xE2C6, 0x7C07, 0xE2C7, 0x7C13, 0xE2C8, 0x7BF3, 0xE2C9, 0x7BF7, 0xE2CA, 0x7C17, 0xE2CB, 0x7C0D, 0xE2CC, 0x7BF6, + 0xE2CD, 0x7C23, 0xE2CE, 0x7C27, 0xE2CF, 0x7C2A, 0xE2D0, 0x7C1F, 0xE2D1, 0x7C37, 0xE2D2, 0x7C2B, 0xE2D3, 0x7C3D, 0xE2D4, 0x7C4C, + 0xE2D5, 0x7C43, 0xE2D6, 0x7C54, 0xE2D7, 0x7C4F, 0xE2D8, 0x7C40, 0xE2D9, 0x7C50, 0xE2DA, 0x7C58, 0xE2DB, 0x7C5F, 0xE2DC, 0x7C64, + 0xE2DD, 0x7C56, 0xE2DE, 0x7C65, 0xE2DF, 0x7C6C, 0xE2E0, 0x7C75, 0xE2E1, 0x7C83, 0xE2E2, 0x7C90, 0xE2E3, 0x7CA4, 0xE2E4, 0x7CAD, + 0xE2E5, 0x7CA2, 0xE2E6, 0x7CAB, 0xE2E7, 0x7CA1, 0xE2E8, 0x7CA8, 0xE2E9, 0x7CB3, 0xE2EA, 0x7CB2, 0xE2EB, 0x7CB1, 0xE2EC, 0x7CAE, + 0xE2ED, 0x7CB9, 0xE2EE, 0x7CBD, 0xE2EF, 0x7CC0, 0xE2F0, 0x7CC5, 0xE2F1, 0x7CC2, 0xE2F2, 0x7CD8, 0xE2F3, 0x7CD2, 0xE2F4, 0x7CDC, + 0xE2F5, 0x7CE2, 0xE2F6, 0x9B3B, 0xE2F7, 0x7CEF, 0xE2F8, 0x7CF2, 0xE2F9, 0x7CF4, 0xE2FA, 0x7CF6, 0xE2FB, 0x7CFA, 0xE2FC, 0x7D06, + 0xE340, 0x7D02, 0xE341, 0x7D1C, 0xE342, 0x7D15, 0xE343, 0x7D0A, 0xE344, 0x7D45, 0xE345, 0x7D4B, 0xE346, 0x7D2E, 0xE347, 0x7D32, + 0xE348, 0x7D3F, 0xE349, 0x7D35, 0xE34A, 0x7D46, 0xE34B, 0x7D73, 0xE34C, 0x7D56, 0xE34D, 0x7D4E, 0xE34E, 0x7D72, 0xE34F, 0x7D68, + 0xE350, 0x7D6E, 0xE351, 0x7D4F, 0xE352, 0x7D63, 0xE353, 0x7D93, 0xE354, 0x7D89, 0xE355, 0x7D5B, 0xE356, 0x7D8F, 0xE357, 0x7D7D, + 0xE358, 0x7D9B, 0xE359, 0x7DBA, 0xE35A, 0x7DAE, 0xE35B, 0x7DA3, 0xE35C, 0x7DB5, 0xE35D, 0x7DC7, 0xE35E, 0x7DBD, 0xE35F, 0x7DAB, + 0xE360, 0x7E3D, 0xE361, 0x7DA2, 0xE362, 0x7DAF, 0xE363, 0x7DDC, 0xE364, 0x7DB8, 0xE365, 0x7D9F, 0xE366, 0x7DB0, 0xE367, 0x7DD8, + 0xE368, 0x7DDD, 0xE369, 0x7DE4, 0xE36A, 0x7DDE, 0xE36B, 0x7DFB, 0xE36C, 0x7DF2, 0xE36D, 0x7DE1, 0xE36E, 0x7E05, 0xE36F, 0x7E0A, + 0xE370, 0x7E23, 0xE371, 0x7E21, 0xE372, 0x7E12, 0xE373, 0x7E31, 0xE374, 0x7E1F, 0xE375, 0x7E09, 0xE376, 0x7E0B, 0xE377, 0x7E22, + 0xE378, 0x7E46, 0xE379, 0x7E66, 0xE37A, 0x7E3B, 0xE37B, 0x7E35, 0xE37C, 0x7E39, 0xE37D, 0x7E43, 0xE37E, 0x7E37, 0xE380, 0x7E32, + 0xE381, 0x7E3A, 0xE382, 0x7E67, 0xE383, 0x7E5D, 0xE384, 0x7E56, 0xE385, 0x7E5E, 0xE386, 0x7E59, 0xE387, 0x7E5A, 0xE388, 0x7E79, + 0xE389, 0x7E6A, 0xE38A, 0x7E69, 0xE38B, 0x7E7C, 0xE38C, 0x7E7B, 0xE38D, 0x7E83, 0xE38E, 0x7DD5, 0xE38F, 0x7E7D, 0xE390, 0x8FAE, + 0xE391, 0x7E7F, 0xE392, 0x7E88, 0xE393, 0x7E89, 0xE394, 0x7E8C, 0xE395, 0x7E92, 0xE396, 0x7E90, 0xE397, 0x7E93, 0xE398, 0x7E94, + 0xE399, 0x7E96, 0xE39A, 0x7E8E, 0xE39B, 0x7E9B, 0xE39C, 0x7E9C, 0xE39D, 0x7F38, 0xE39E, 0x7F3A, 0xE39F, 0x7F45, 0xE3A0, 0x7F4C, + 0xE3A1, 0x7F4D, 0xE3A2, 0x7F4E, 0xE3A3, 0x7F50, 0xE3A4, 0x7F51, 0xE3A5, 0x7F55, 0xE3A6, 0x7F54, 0xE3A7, 0x7F58, 0xE3A8, 0x7F5F, + 0xE3A9, 0x7F60, 0xE3AA, 0x7F68, 0xE3AB, 0x7F69, 0xE3AC, 0x7F67, 0xE3AD, 0x7F78, 0xE3AE, 0x7F82, 0xE3AF, 0x7F86, 0xE3B0, 0x7F83, + 0xE3B1, 0x7F88, 0xE3B2, 0x7F87, 0xE3B3, 0x7F8C, 0xE3B4, 0x7F94, 0xE3B5, 0x7F9E, 0xE3B6, 0x7F9D, 0xE3B7, 0x7F9A, 0xE3B8, 0x7FA3, + 0xE3B9, 0x7FAF, 0xE3BA, 0x7FB2, 0xE3BB, 0x7FB9, 0xE3BC, 0x7FAE, 0xE3BD, 0x7FB6, 0xE3BE, 0x7FB8, 0xE3BF, 0x8B71, 0xE3C0, 0x7FC5, + 0xE3C1, 0x7FC6, 0xE3C2, 0x7FCA, 0xE3C3, 0x7FD5, 0xE3C4, 0x7FD4, 0xE3C5, 0x7FE1, 0xE3C6, 0x7FE6, 0xE3C7, 0x7FE9, 0xE3C8, 0x7FF3, + 0xE3C9, 0x7FF9, 0xE3CA, 0x98DC, 0xE3CB, 0x8006, 0xE3CC, 0x8004, 0xE3CD, 0x800B, 0xE3CE, 0x8012, 0xE3CF, 0x8018, 0xE3D0, 0x8019, + 0xE3D1, 0x801C, 0xE3D2, 0x8021, 0xE3D3, 0x8028, 0xE3D4, 0x803F, 0xE3D5, 0x803B, 0xE3D6, 0x804A, 0xE3D7, 0x8046, 0xE3D8, 0x8052, + 0xE3D9, 0x8058, 0xE3DA, 0x805A, 0xE3DB, 0x805F, 0xE3DC, 0x8062, 0xE3DD, 0x8068, 0xE3DE, 0x8073, 0xE3DF, 0x8072, 0xE3E0, 0x8070, + 0xE3E1, 0x8076, 0xE3E2, 0x8079, 0xE3E3, 0x807D, 0xE3E4, 0x807F, 0xE3E5, 0x8084, 0xE3E6, 0x8086, 0xE3E7, 0x8085, 0xE3E8, 0x809B, + 0xE3E9, 0x8093, 0xE3EA, 0x809A, 0xE3EB, 0x80AD, 0xE3EC, 0x5190, 0xE3ED, 0x80AC, 0xE3EE, 0x80DB, 0xE3EF, 0x80E5, 0xE3F0, 0x80D9, + 0xE3F1, 0x80DD, 0xE3F2, 0x80C4, 0xE3F3, 0x80DA, 0xE3F4, 0x80D6, 0xE3F5, 0x8109, 0xE3F6, 0x80EF, 0xE3F7, 0x80F1, 0xE3F8, 0x811B, + 0xE3F9, 0x8129, 0xE3FA, 0x8123, 0xE3FB, 0x812F, 0xE3FC, 0x814B, 0xE440, 0x968B, 0xE441, 0x8146, 0xE442, 0x813E, 0xE443, 0x8153, + 0xE444, 0x8151, 0xE445, 0x80FC, 0xE446, 0x8171, 0xE447, 0x816E, 0xE448, 0x8165, 0xE449, 0x8166, 0xE44A, 0x8174, 0xE44B, 0x8183, + 0xE44C, 0x8188, 0xE44D, 0x818A, 0xE44E, 0x8180, 0xE44F, 0x8182, 0xE450, 0x81A0, 0xE451, 0x8195, 0xE452, 0x81A4, 0xE453, 0x81A3, + 0xE454, 0x815F, 0xE455, 0x8193, 0xE456, 0x81A9, 0xE457, 0x81B0, 0xE458, 0x81B5, 0xE459, 0x81BE, 0xE45A, 0x81B8, 0xE45B, 0x81BD, + 0xE45C, 0x81C0, 0xE45D, 0x81C2, 0xE45E, 0x81BA, 0xE45F, 0x81C9, 0xE460, 0x81CD, 0xE461, 0x81D1, 0xE462, 0x81D9, 0xE463, 0x81D8, + 0xE464, 0x81C8, 0xE465, 0x81DA, 0xE466, 0x81DF, 0xE467, 0x81E0, 0xE468, 0x81E7, 0xE469, 0x81FA, 0xE46A, 0x81FB, 0xE46B, 0x81FE, + 0xE46C, 0x8201, 0xE46D, 0x8202, 0xE46E, 0x8205, 0xE46F, 0x8207, 0xE470, 0x820A, 0xE471, 0x820D, 0xE472, 0x8210, 0xE473, 0x8216, + 0xE474, 0x8229, 0xE475, 0x822B, 0xE476, 0x8238, 0xE477, 0x8233, 0xE478, 0x8240, 0xE479, 0x8259, 0xE47A, 0x8258, 0xE47B, 0x825D, + 0xE47C, 0x825A, 0xE47D, 0x825F, 0xE47E, 0x8264, 0xE480, 0x8262, 0xE481, 0x8268, 0xE482, 0x826A, 0xE483, 0x826B, 0xE484, 0x822E, + 0xE485, 0x8271, 0xE486, 0x8277, 0xE487, 0x8278, 0xE488, 0x827E, 0xE489, 0x828D, 0xE48A, 0x8292, 0xE48B, 0x82AB, 0xE48C, 0x829F, + 0xE48D, 0x82BB, 0xE48E, 0x82AC, 0xE48F, 0x82E1, 0xE490, 0x82E3, 0xE491, 0x82DF, 0xE492, 0x82D2, 0xE493, 0x82F4, 0xE494, 0x82F3, + 0xE495, 0x82FA, 0xE496, 0x8393, 0xE497, 0x8303, 0xE498, 0x82FB, 0xE499, 0x82F9, 0xE49A, 0x82DE, 0xE49B, 0x8306, 0xE49C, 0x82DC, + 0xE49D, 0x8309, 0xE49E, 0x82D9, 0xE49F, 0x8335, 0xE4A0, 0x8334, 0xE4A1, 0x8316, 0xE4A2, 0x8332, 0xE4A3, 0x8331, 0xE4A4, 0x8340, + 0xE4A5, 0x8339, 0xE4A6, 0x8350, 0xE4A7, 0x8345, 0xE4A8, 0x832F, 0xE4A9, 0x832B, 0xE4AA, 0x8317, 0xE4AB, 0x8318, 0xE4AC, 0x8385, + 0xE4AD, 0x839A, 0xE4AE, 0x83AA, 0xE4AF, 0x839F, 0xE4B0, 0x83A2, 0xE4B1, 0x8396, 0xE4B2, 0x8323, 0xE4B3, 0x838E, 0xE4B4, 0x8387, + 0xE4B5, 0x838A, 0xE4B6, 0x837C, 0xE4B7, 0x83B5, 0xE4B8, 0x8373, 0xE4B9, 0x8375, 0xE4BA, 0x83A0, 0xE4BB, 0x8389, 0xE4BC, 0x83A8, + 0xE4BD, 0x83F4, 0xE4BE, 0x8413, 0xE4BF, 0x83EB, 0xE4C0, 0x83CE, 0xE4C1, 0x83FD, 0xE4C2, 0x8403, 0xE4C3, 0x83D8, 0xE4C4, 0x840B, + 0xE4C5, 0x83C1, 0xE4C6, 0x83F7, 0xE4C7, 0x8407, 0xE4C8, 0x83E0, 0xE4C9, 0x83F2, 0xE4CA, 0x840D, 0xE4CB, 0x8422, 0xE4CC, 0x8420, + 0xE4CD, 0x83BD, 0xE4CE, 0x8438, 0xE4CF, 0x8506, 0xE4D0, 0x83FB, 0xE4D1, 0x846D, 0xE4D2, 0x842A, 0xE4D3, 0x843C, 0xE4D4, 0x855A, + 0xE4D5, 0x8484, 0xE4D6, 0x8477, 0xE4D7, 0x846B, 0xE4D8, 0x84AD, 0xE4D9, 0x846E, 0xE4DA, 0x8482, 0xE4DB, 0x8469, 0xE4DC, 0x8446, + 0xE4DD, 0x842C, 0xE4DE, 0x846F, 0xE4DF, 0x8479, 0xE4E0, 0x8435, 0xE4E1, 0x84CA, 0xE4E2, 0x8462, 0xE4E3, 0x84B9, 0xE4E4, 0x84BF, + 0xE4E5, 0x849F, 0xE4E6, 0x84D9, 0xE4E7, 0x84CD, 0xE4E8, 0x84BB, 0xE4E9, 0x84DA, 0xE4EA, 0x84D0, 0xE4EB, 0x84C1, 0xE4EC, 0x84C6, + 0xE4ED, 0x84D6, 0xE4EE, 0x84A1, 0xE4EF, 0x8521, 0xE4F0, 0x84FF, 0xE4F1, 0x84F4, 0xE4F2, 0x8517, 0xE4F3, 0x8518, 0xE4F4, 0x852C, + 0xE4F5, 0x851F, 0xE4F6, 0x8515, 0xE4F7, 0x8514, 0xE4F8, 0x84FC, 0xE4F9, 0x8540, 0xE4FA, 0x8563, 0xE4FB, 0x8558, 0xE4FC, 0x8548, + 0xE540, 0x8541, 0xE541, 0x8602, 0xE542, 0x854B, 0xE543, 0x8555, 0xE544, 0x8580, 0xE545, 0x85A4, 0xE546, 0x8588, 0xE547, 0x8591, + 0xE548, 0x858A, 0xE549, 0x85A8, 0xE54A, 0x856D, 0xE54B, 0x8594, 0xE54C, 0x859B, 0xE54D, 0x85EA, 0xE54E, 0x8587, 0xE54F, 0x859C, + 0xE550, 0x8577, 0xE551, 0x857E, 0xE552, 0x8590, 0xE553, 0x85C9, 0xE554, 0x85BA, 0xE555, 0x85CF, 0xE556, 0x85B9, 0xE557, 0x85D0, + 0xE558, 0x85D5, 0xE559, 0x85DD, 0xE55A, 0x85E5, 0xE55B, 0x85DC, 0xE55C, 0x85F9, 0xE55D, 0x860A, 0xE55E, 0x8613, 0xE55F, 0x860B, + 0xE560, 0x85FE, 0xE561, 0x85FA, 0xE562, 0x8606, 0xE563, 0x8622, 0xE564, 0x861A, 0xE565, 0x8630, 0xE566, 0x863F, 0xE567, 0x864D, + 0xE568, 0x4E55, 0xE569, 0x8654, 0xE56A, 0x865F, 0xE56B, 0x8667, 0xE56C, 0x8671, 0xE56D, 0x8693, 0xE56E, 0x86A3, 0xE56F, 0x86A9, + 0xE570, 0x86AA, 0xE571, 0x868B, 0xE572, 0x868C, 0xE573, 0x86B6, 0xE574, 0x86AF, 0xE575, 0x86C4, 0xE576, 0x86C6, 0xE577, 0x86B0, + 0xE578, 0x86C9, 0xE579, 0x8823, 0xE57A, 0x86AB, 0xE57B, 0x86D4, 0xE57C, 0x86DE, 0xE57D, 0x86E9, 0xE57E, 0x86EC, 0xE580, 0x86DF, + 0xE581, 0x86DB, 0xE582, 0x86EF, 0xE583, 0x8712, 0xE584, 0x8706, 0xE585, 0x8708, 0xE586, 0x8700, 0xE587, 0x8703, 0xE588, 0x86FB, + 0xE589, 0x8711, 0xE58A, 0x8709, 0xE58B, 0x870D, 0xE58C, 0x86F9, 0xE58D, 0x870A, 0xE58E, 0x8734, 0xE58F, 0x873F, 0xE590, 0x8737, + 0xE591, 0x873B, 0xE592, 0x8725, 0xE593, 0x8729, 0xE594, 0x871A, 0xE595, 0x8760, 0xE596, 0x875F, 0xE597, 0x8778, 0xE598, 0x874C, + 0xE599, 0x874E, 0xE59A, 0x8774, 0xE59B, 0x8757, 0xE59C, 0x8768, 0xE59D, 0x876E, 0xE59E, 0x8759, 0xE59F, 0x8753, 0xE5A0, 0x8763, + 0xE5A1, 0x876A, 0xE5A2, 0x8805, 0xE5A3, 0x87A2, 0xE5A4, 0x879F, 0xE5A5, 0x8782, 0xE5A6, 0x87AF, 0xE5A7, 0x87CB, 0xE5A8, 0x87BD, + 0xE5A9, 0x87C0, 0xE5AA, 0x87D0, 0xE5AB, 0x96D6, 0xE5AC, 0x87AB, 0xE5AD, 0x87C4, 0xE5AE, 0x87B3, 0xE5AF, 0x87C7, 0xE5B0, 0x87C6, + 0xE5B1, 0x87BB, 0xE5B2, 0x87EF, 0xE5B3, 0x87F2, 0xE5B4, 0x87E0, 0xE5B5, 0x880F, 0xE5B6, 0x880D, 0xE5B7, 0x87FE, 0xE5B8, 0x87F6, + 0xE5B9, 0x87F7, 0xE5BA, 0x880E, 0xE5BB, 0x87D2, 0xE5BC, 0x8811, 0xE5BD, 0x8816, 0xE5BE, 0x8815, 0xE5BF, 0x8822, 0xE5C0, 0x8821, + 0xE5C1, 0x8831, 0xE5C2, 0x8836, 0xE5C3, 0x8839, 0xE5C4, 0x8827, 0xE5C5, 0x883B, 0xE5C6, 0x8844, 0xE5C7, 0x8842, 0xE5C8, 0x8852, + 0xE5C9, 0x8859, 0xE5CA, 0x885E, 0xE5CB, 0x8862, 0xE5CC, 0x886B, 0xE5CD, 0x8881, 0xE5CE, 0x887E, 0xE5CF, 0x889E, 0xE5D0, 0x8875, + 0xE5D1, 0x887D, 0xE5D2, 0x88B5, 0xE5D3, 0x8872, 0xE5D4, 0x8882, 0xE5D5, 0x8897, 0xE5D6, 0x8892, 0xE5D7, 0x88AE, 0xE5D8, 0x8899, + 0xE5D9, 0x88A2, 0xE5DA, 0x888D, 0xE5DB, 0x88A4, 0xE5DC, 0x88B0, 0xE5DD, 0x88BF, 0xE5DE, 0x88B1, 0xE5DF, 0x88C3, 0xE5E0, 0x88C4, + 0xE5E1, 0x88D4, 0xE5E2, 0x88D8, 0xE5E3, 0x88D9, 0xE5E4, 0x88DD, 0xE5E5, 0x88F9, 0xE5E6, 0x8902, 0xE5E7, 0x88FC, 0xE5E8, 0x88F4, + 0xE5E9, 0x88E8, 0xE5EA, 0x88F2, 0xE5EB, 0x8904, 0xE5EC, 0x890C, 0xE5ED, 0x890A, 0xE5EE, 0x8913, 0xE5EF, 0x8943, 0xE5F0, 0x891E, + 0xE5F1, 0x8925, 0xE5F2, 0x892A, 0xE5F3, 0x892B, 0xE5F4, 0x8941, 0xE5F5, 0x8944, 0xE5F6, 0x893B, 0xE5F7, 0x8936, 0xE5F8, 0x8938, + 0xE5F9, 0x894C, 0xE5FA, 0x891D, 0xE5FB, 0x8960, 0xE5FC, 0x895E, 0xE640, 0x8966, 0xE641, 0x8964, 0xE642, 0x896D, 0xE643, 0x896A, + 0xE644, 0x896F, 0xE645, 0x8974, 0xE646, 0x8977, 0xE647, 0x897E, 0xE648, 0x8983, 0xE649, 0x8988, 0xE64A, 0x898A, 0xE64B, 0x8993, + 0xE64C, 0x8998, 0xE64D, 0x89A1, 0xE64E, 0x89A9, 0xE64F, 0x89A6, 0xE650, 0x89AC, 0xE651, 0x89AF, 0xE652, 0x89B2, 0xE653, 0x89BA, + 0xE654, 0x89BD, 0xE655, 0x89BF, 0xE656, 0x89C0, 0xE657, 0x89DA, 0xE658, 0x89DC, 0xE659, 0x89DD, 0xE65A, 0x89E7, 0xE65B, 0x89F4, + 0xE65C, 0x89F8, 0xE65D, 0x8A03, 0xE65E, 0x8A16, 0xE65F, 0x8A10, 0xE660, 0x8A0C, 0xE661, 0x8A1B, 0xE662, 0x8A1D, 0xE663, 0x8A25, + 0xE664, 0x8A36, 0xE665, 0x8A41, 0xE666, 0x8A5B, 0xE667, 0x8A52, 0xE668, 0x8A46, 0xE669, 0x8A48, 0xE66A, 0x8A7C, 0xE66B, 0x8A6D, + 0xE66C, 0x8A6C, 0xE66D, 0x8A62, 0xE66E, 0x8A85, 0xE66F, 0x8A82, 0xE670, 0x8A84, 0xE671, 0x8AA8, 0xE672, 0x8AA1, 0xE673, 0x8A91, + 0xE674, 0x8AA5, 0xE675, 0x8AA6, 0xE676, 0x8A9A, 0xE677, 0x8AA3, 0xE678, 0x8AC4, 0xE679, 0x8ACD, 0xE67A, 0x8AC2, 0xE67B, 0x8ADA, + 0xE67C, 0x8AEB, 0xE67D, 0x8AF3, 0xE67E, 0x8AE7, 0xE680, 0x8AE4, 0xE681, 0x8AF1, 0xE682, 0x8B14, 0xE683, 0x8AE0, 0xE684, 0x8AE2, + 0xE685, 0x8AF7, 0xE686, 0x8ADE, 0xE687, 0x8ADB, 0xE688, 0x8B0C, 0xE689, 0x8B07, 0xE68A, 0x8B1A, 0xE68B, 0x8AE1, 0xE68C, 0x8B16, + 0xE68D, 0x8B10, 0xE68E, 0x8B17, 0xE68F, 0x8B20, 0xE690, 0x8B33, 0xE691, 0x97AB, 0xE692, 0x8B26, 0xE693, 0x8B2B, 0xE694, 0x8B3E, + 0xE695, 0x8B28, 0xE696, 0x8B41, 0xE697, 0x8B4C, 0xE698, 0x8B4F, 0xE699, 0x8B4E, 0xE69A, 0x8B49, 0xE69B, 0x8B56, 0xE69C, 0x8B5B, + 0xE69D, 0x8B5A, 0xE69E, 0x8B6B, 0xE69F, 0x8B5F, 0xE6A0, 0x8B6C, 0xE6A1, 0x8B6F, 0xE6A2, 0x8B74, 0xE6A3, 0x8B7D, 0xE6A4, 0x8B80, + 0xE6A5, 0x8B8C, 0xE6A6, 0x8B8E, 0xE6A7, 0x8B92, 0xE6A8, 0x8B93, 0xE6A9, 0x8B96, 0xE6AA, 0x8B99, 0xE6AB, 0x8B9A, 0xE6AC, 0x8C3A, + 0xE6AD, 0x8C41, 0xE6AE, 0x8C3F, 0xE6AF, 0x8C48, 0xE6B0, 0x8C4C, 0xE6B1, 0x8C4E, 0xE6B2, 0x8C50, 0xE6B3, 0x8C55, 0xE6B4, 0x8C62, + 0xE6B5, 0x8C6C, 0xE6B6, 0x8C78, 0xE6B7, 0x8C7A, 0xE6B8, 0x8C82, 0xE6B9, 0x8C89, 0xE6BA, 0x8C85, 0xE6BB, 0x8C8A, 0xE6BC, 0x8C8D, + 0xE6BD, 0x8C8E, 0xE6BE, 0x8C94, 0xE6BF, 0x8C7C, 0xE6C0, 0x8C98, 0xE6C1, 0x621D, 0xE6C2, 0x8CAD, 0xE6C3, 0x8CAA, 0xE6C4, 0x8CBD, + 0xE6C5, 0x8CB2, 0xE6C6, 0x8CB3, 0xE6C7, 0x8CAE, 0xE6C8, 0x8CB6, 0xE6C9, 0x8CC8, 0xE6CA, 0x8CC1, 0xE6CB, 0x8CE4, 0xE6CC, 0x8CE3, + 0xE6CD, 0x8CDA, 0xE6CE, 0x8CFD, 0xE6CF, 0x8CFA, 0xE6D0, 0x8CFB, 0xE6D1, 0x8D04, 0xE6D2, 0x8D05, 0xE6D3, 0x8D0A, 0xE6D4, 0x8D07, + 0xE6D5, 0x8D0F, 0xE6D6, 0x8D0D, 0xE6D7, 0x8D10, 0xE6D8, 0x9F4E, 0xE6D9, 0x8D13, 0xE6DA, 0x8CCD, 0xE6DB, 0x8D14, 0xE6DC, 0x8D16, + 0xE6DD, 0x8D67, 0xE6DE, 0x8D6D, 0xE6DF, 0x8D71, 0xE6E0, 0x8D73, 0xE6E1, 0x8D81, 0xE6E2, 0x8D99, 0xE6E3, 0x8DC2, 0xE6E4, 0x8DBE, + 0xE6E5, 0x8DBA, 0xE6E6, 0x8DCF, 0xE6E7, 0x8DDA, 0xE6E8, 0x8DD6, 0xE6E9, 0x8DCC, 0xE6EA, 0x8DDB, 0xE6EB, 0x8DCB, 0xE6EC, 0x8DEA, + 0xE6ED, 0x8DEB, 0xE6EE, 0x8DDF, 0xE6EF, 0x8DE3, 0xE6F0, 0x8DFC, 0xE6F1, 0x8E08, 0xE6F2, 0x8E09, 0xE6F3, 0x8DFF, 0xE6F4, 0x8E1D, + 0xE6F5, 0x8E1E, 0xE6F6, 0x8E10, 0xE6F7, 0x8E1F, 0xE6F8, 0x8E42, 0xE6F9, 0x8E35, 0xE6FA, 0x8E30, 0xE6FB, 0x8E34, 0xE6FC, 0x8E4A, + 0xE740, 0x8E47, 0xE741, 0x8E49, 0xE742, 0x8E4C, 0xE743, 0x8E50, 0xE744, 0x8E48, 0xE745, 0x8E59, 0xE746, 0x8E64, 0xE747, 0x8E60, + 0xE748, 0x8E2A, 0xE749, 0x8E63, 0xE74A, 0x8E55, 0xE74B, 0x8E76, 0xE74C, 0x8E72, 0xE74D, 0x8E7C, 0xE74E, 0x8E81, 0xE74F, 0x8E87, + 0xE750, 0x8E85, 0xE751, 0x8E84, 0xE752, 0x8E8B, 0xE753, 0x8E8A, 0xE754, 0x8E93, 0xE755, 0x8E91, 0xE756, 0x8E94, 0xE757, 0x8E99, + 0xE758, 0x8EAA, 0xE759, 0x8EA1, 0xE75A, 0x8EAC, 0xE75B, 0x8EB0, 0xE75C, 0x8EC6, 0xE75D, 0x8EB1, 0xE75E, 0x8EBE, 0xE75F, 0x8EC5, + 0xE760, 0x8EC8, 0xE761, 0x8ECB, 0xE762, 0x8EDB, 0xE763, 0x8EE3, 0xE764, 0x8EFC, 0xE765, 0x8EFB, 0xE766, 0x8EEB, 0xE767, 0x8EFE, + 0xE768, 0x8F0A, 0xE769, 0x8F05, 0xE76A, 0x8F15, 0xE76B, 0x8F12, 0xE76C, 0x8F19, 0xE76D, 0x8F13, 0xE76E, 0x8F1C, 0xE76F, 0x8F1F, + 0xE770, 0x8F1B, 0xE771, 0x8F0C, 0xE772, 0x8F26, 0xE773, 0x8F33, 0xE774, 0x8F3B, 0xE775, 0x8F39, 0xE776, 0x8F45, 0xE777, 0x8F42, + 0xE778, 0x8F3E, 0xE779, 0x8F4C, 0xE77A, 0x8F49, 0xE77B, 0x8F46, 0xE77C, 0x8F4E, 0xE77D, 0x8F57, 0xE77E, 0x8F5C, 0xE780, 0x8F62, + 0xE781, 0x8F63, 0xE782, 0x8F64, 0xE783, 0x8F9C, 0xE784, 0x8F9F, 0xE785, 0x8FA3, 0xE786, 0x8FAD, 0xE787, 0x8FAF, 0xE788, 0x8FB7, + 0xE789, 0x8FDA, 0xE78A, 0x8FE5, 0xE78B, 0x8FE2, 0xE78C, 0x8FEA, 0xE78D, 0x8FEF, 0xE78E, 0x9087, 0xE78F, 0x8FF4, 0xE790, 0x9005, + 0xE791, 0x8FF9, 0xE792, 0x8FFA, 0xE793, 0x9011, 0xE794, 0x9015, 0xE795, 0x9021, 0xE796, 0x900D, 0xE797, 0x901E, 0xE798, 0x9016, + 0xE799, 0x900B, 0xE79A, 0x9027, 0xE79B, 0x9036, 0xE79C, 0x9035, 0xE79D, 0x9039, 0xE79E, 0x8FF8, 0xE79F, 0x904F, 0xE7A0, 0x9050, + 0xE7A1, 0x9051, 0xE7A2, 0x9052, 0xE7A3, 0x900E, 0xE7A4, 0x9049, 0xE7A5, 0x903E, 0xE7A6, 0x9056, 0xE7A7, 0x9058, 0xE7A8, 0x905E, + 0xE7A9, 0x9068, 0xE7AA, 0x906F, 0xE7AB, 0x9076, 0xE7AC, 0x96A8, 0xE7AD, 0x9072, 0xE7AE, 0x9082, 0xE7AF, 0x907D, 0xE7B0, 0x9081, + 0xE7B1, 0x9080, 0xE7B2, 0x908A, 0xE7B3, 0x9089, 0xE7B4, 0x908F, 0xE7B5, 0x90A8, 0xE7B6, 0x90AF, 0xE7B7, 0x90B1, 0xE7B8, 0x90B5, + 0xE7B9, 0x90E2, 0xE7BA, 0x90E4, 0xE7BB, 0x6248, 0xE7BC, 0x90DB, 0xE7BD, 0x9102, 0xE7BE, 0x9112, 0xE7BF, 0x9119, 0xE7C0, 0x9132, + 0xE7C1, 0x9130, 0xE7C2, 0x914A, 0xE7C3, 0x9156, 0xE7C4, 0x9158, 0xE7C5, 0x9163, 0xE7C6, 0x9165, 0xE7C7, 0x9169, 0xE7C8, 0x9173, + 0xE7C9, 0x9172, 0xE7CA, 0x918B, 0xE7CB, 0x9189, 0xE7CC, 0x9182, 0xE7CD, 0x91A2, 0xE7CE, 0x91AB, 0xE7CF, 0x91AF, 0xE7D0, 0x91AA, + 0xE7D1, 0x91B5, 0xE7D2, 0x91B4, 0xE7D3, 0x91BA, 0xE7D4, 0x91C0, 0xE7D5, 0x91C1, 0xE7D6, 0x91C9, 0xE7D7, 0x91CB, 0xE7D8, 0x91D0, + 0xE7D9, 0x91D6, 0xE7DA, 0x91DF, 0xE7DB, 0x91E1, 0xE7DC, 0x91DB, 0xE7DD, 0x91FC, 0xE7DE, 0x91F5, 0xE7DF, 0x91F6, 0xE7E0, 0x921E, + 0xE7E1, 0x91FF, 0xE7E2, 0x9214, 0xE7E3, 0x922C, 0xE7E4, 0x9215, 0xE7E5, 0x9211, 0xE7E6, 0x925E, 0xE7E7, 0x9257, 0xE7E8, 0x9245, + 0xE7E9, 0x9249, 0xE7EA, 0x9264, 0xE7EB, 0x9248, 0xE7EC, 0x9295, 0xE7ED, 0x923F, 0xE7EE, 0x924B, 0xE7EF, 0x9250, 0xE7F0, 0x929C, + 0xE7F1, 0x9296, 0xE7F2, 0x9293, 0xE7F3, 0x929B, 0xE7F4, 0x925A, 0xE7F5, 0x92CF, 0xE7F6, 0x92B9, 0xE7F7, 0x92B7, 0xE7F8, 0x92E9, + 0xE7F9, 0x930F, 0xE7FA, 0x92FA, 0xE7FB, 0x9344, 0xE7FC, 0x932E, 0xE840, 0x9319, 0xE841, 0x9322, 0xE842, 0x931A, 0xE843, 0x9323, + 0xE844, 0x933A, 0xE845, 0x9335, 0xE846, 0x933B, 0xE847, 0x935C, 0xE848, 0x9360, 0xE849, 0x937C, 0xE84A, 0x936E, 0xE84B, 0x9356, + 0xE84C, 0x93B0, 0xE84D, 0x93AC, 0xE84E, 0x93AD, 0xE84F, 0x9394, 0xE850, 0x93B9, 0xE851, 0x93D6, 0xE852, 0x93D7, 0xE853, 0x93E8, + 0xE854, 0x93E5, 0xE855, 0x93D8, 0xE856, 0x93C3, 0xE857, 0x93DD, 0xE858, 0x93D0, 0xE859, 0x93C8, 0xE85A, 0x93E4, 0xE85B, 0x941A, + 0xE85C, 0x9414, 0xE85D, 0x9413, 0xE85E, 0x9403, 0xE85F, 0x9407, 0xE860, 0x9410, 0xE861, 0x9436, 0xE862, 0x942B, 0xE863, 0x9435, + 0xE864, 0x9421, 0xE865, 0x943A, 0xE866, 0x9441, 0xE867, 0x9452, 0xE868, 0x9444, 0xE869, 0x945B, 0xE86A, 0x9460, 0xE86B, 0x9462, + 0xE86C, 0x945E, 0xE86D, 0x946A, 0xE86E, 0x9229, 0xE86F, 0x9470, 0xE870, 0x9475, 0xE871, 0x9477, 0xE872, 0x947D, 0xE873, 0x945A, + 0xE874, 0x947C, 0xE875, 0x947E, 0xE876, 0x9481, 0xE877, 0x947F, 0xE878, 0x9582, 0xE879, 0x9587, 0xE87A, 0x958A, 0xE87B, 0x9594, + 0xE87C, 0x9596, 0xE87D, 0x9598, 0xE87E, 0x9599, 0xE880, 0x95A0, 0xE881, 0x95A8, 0xE882, 0x95A7, 0xE883, 0x95AD, 0xE884, 0x95BC, + 0xE885, 0x95BB, 0xE886, 0x95B9, 0xE887, 0x95BE, 0xE888, 0x95CA, 0xE889, 0x6FF6, 0xE88A, 0x95C3, 0xE88B, 0x95CD, 0xE88C, 0x95CC, + 0xE88D, 0x95D5, 0xE88E, 0x95D4, 0xE88F, 0x95D6, 0xE890, 0x95DC, 0xE891, 0x95E1, 0xE892, 0x95E5, 0xE893, 0x95E2, 0xE894, 0x9621, + 0xE895, 0x9628, 0xE896, 0x962E, 0xE897, 0x962F, 0xE898, 0x9642, 0xE899, 0x964C, 0xE89A, 0x964F, 0xE89B, 0x964B, 0xE89C, 0x9677, + 0xE89D, 0x965C, 0xE89E, 0x965E, 0xE89F, 0x965D, 0xE8A0, 0x965F, 0xE8A1, 0x9666, 0xE8A2, 0x9672, 0xE8A3, 0x966C, 0xE8A4, 0x968D, + 0xE8A5, 0x9698, 0xE8A6, 0x9695, 0xE8A7, 0x9697, 0xE8A8, 0x96AA, 0xE8A9, 0x96A7, 0xE8AA, 0x96B1, 0xE8AB, 0x96B2, 0xE8AC, 0x96B0, + 0xE8AD, 0x96B4, 0xE8AE, 0x96B6, 0xE8AF, 0x96B8, 0xE8B0, 0x96B9, 0xE8B1, 0x96CE, 0xE8B2, 0x96CB, 0xE8B3, 0x96C9, 0xE8B4, 0x96CD, + 0xE8B5, 0x894D, 0xE8B6, 0x96DC, 0xE8B7, 0x970D, 0xE8B8, 0x96D5, 0xE8B9, 0x96F9, 0xE8BA, 0x9704, 0xE8BB, 0x9706, 0xE8BC, 0x9708, + 0xE8BD, 0x9713, 0xE8BE, 0x970E, 0xE8BF, 0x9711, 0xE8C0, 0x970F, 0xE8C1, 0x9716, 0xE8C2, 0x9719, 0xE8C3, 0x9724, 0xE8C4, 0x972A, + 0xE8C5, 0x9730, 0xE8C6, 0x9739, 0xE8C7, 0x973D, 0xE8C8, 0x973E, 0xE8C9, 0x9744, 0xE8CA, 0x9746, 0xE8CB, 0x9748, 0xE8CC, 0x9742, + 0xE8CD, 0x9749, 0xE8CE, 0x975C, 0xE8CF, 0x9760, 0xE8D0, 0x9764, 0xE8D1, 0x9766, 0xE8D2, 0x9768, 0xE8D3, 0x52D2, 0xE8D4, 0x976B, + 0xE8D5, 0x9771, 0xE8D6, 0x9779, 0xE8D7, 0x9785, 0xE8D8, 0x977C, 0xE8D9, 0x9781, 0xE8DA, 0x977A, 0xE8DB, 0x9786, 0xE8DC, 0x978B, + 0xE8DD, 0x978F, 0xE8DE, 0x9790, 0xE8DF, 0x979C, 0xE8E0, 0x97A8, 0xE8E1, 0x97A6, 0xE8E2, 0x97A3, 0xE8E3, 0x97B3, 0xE8E4, 0x97B4, + 0xE8E5, 0x97C3, 0xE8E6, 0x97C6, 0xE8E7, 0x97C8, 0xE8E8, 0x97CB, 0xE8E9, 0x97DC, 0xE8EA, 0x97ED, 0xE8EB, 0x9F4F, 0xE8EC, 0x97F2, + 0xE8ED, 0x7ADF, 0xE8EE, 0x97F6, 0xE8EF, 0x97F5, 0xE8F0, 0x980F, 0xE8F1, 0x980C, 0xE8F2, 0x9838, 0xE8F3, 0x9824, 0xE8F4, 0x9821, + 0xE8F5, 0x9837, 0xE8F6, 0x983D, 0xE8F7, 0x9846, 0xE8F8, 0x984F, 0xE8F9, 0x984B, 0xE8FA, 0x986B, 0xE8FB, 0x986F, 0xE8FC, 0x9870, + 0xE940, 0x9871, 0xE941, 0x9874, 0xE942, 0x9873, 0xE943, 0x98AA, 0xE944, 0x98AF, 0xE945, 0x98B1, 0xE946, 0x98B6, 0xE947, 0x98C4, + 0xE948, 0x98C3, 0xE949, 0x98C6, 0xE94A, 0x98E9, 0xE94B, 0x98EB, 0xE94C, 0x9903, 0xE94D, 0x9909, 0xE94E, 0x9912, 0xE94F, 0x9914, + 0xE950, 0x9918, 0xE951, 0x9921, 0xE952, 0x991D, 0xE953, 0x991E, 0xE954, 0x9924, 0xE955, 0x9920, 0xE956, 0x992C, 0xE957, 0x992E, + 0xE958, 0x993D, 0xE959, 0x993E, 0xE95A, 0x9942, 0xE95B, 0x9949, 0xE95C, 0x9945, 0xE95D, 0x9950, 0xE95E, 0x994B, 0xE95F, 0x9951, + 0xE960, 0x9952, 0xE961, 0x994C, 0xE962, 0x9955, 0xE963, 0x9997, 0xE964, 0x9998, 0xE965, 0x99A5, 0xE966, 0x99AD, 0xE967, 0x99AE, + 0xE968, 0x99BC, 0xE969, 0x99DF, 0xE96A, 0x99DB, 0xE96B, 0x99DD, 0xE96C, 0x99D8, 0xE96D, 0x99D1, 0xE96E, 0x99ED, 0xE96F, 0x99EE, + 0xE970, 0x99F1, 0xE971, 0x99F2, 0xE972, 0x99FB, 0xE973, 0x99F8, 0xE974, 0x9A01, 0xE975, 0x9A0F, 0xE976, 0x9A05, 0xE977, 0x99E2, + 0xE978, 0x9A19, 0xE979, 0x9A2B, 0xE97A, 0x9A37, 0xE97B, 0x9A45, 0xE97C, 0x9A42, 0xE97D, 0x9A40, 0xE97E, 0x9A43, 0xE980, 0x9A3E, + 0xE981, 0x9A55, 0xE982, 0x9A4D, 0xE983, 0x9A5B, 0xE984, 0x9A57, 0xE985, 0x9A5F, 0xE986, 0x9A62, 0xE987, 0x9A65, 0xE988, 0x9A64, + 0xE989, 0x9A69, 0xE98A, 0x9A6B, 0xE98B, 0x9A6A, 0xE98C, 0x9AAD, 0xE98D, 0x9AB0, 0xE98E, 0x9ABC, 0xE98F, 0x9AC0, 0xE990, 0x9ACF, + 0xE991, 0x9AD1, 0xE992, 0x9AD3, 0xE993, 0x9AD4, 0xE994, 0x9ADE, 0xE995, 0x9ADF, 0xE996, 0x9AE2, 0xE997, 0x9AE3, 0xE998, 0x9AE6, + 0xE999, 0x9AEF, 0xE99A, 0x9AEB, 0xE99B, 0x9AEE, 0xE99C, 0x9AF4, 0xE99D, 0x9AF1, 0xE99E, 0x9AF7, 0xE99F, 0x9AFB, 0xE9A0, 0x9B06, + 0xE9A1, 0x9B18, 0xE9A2, 0x9B1A, 0xE9A3, 0x9B1F, 0xE9A4, 0x9B22, 0xE9A5, 0x9B23, 0xE9A6, 0x9B25, 0xE9A7, 0x9B27, 0xE9A8, 0x9B28, + 0xE9A9, 0x9B29, 0xE9AA, 0x9B2A, 0xE9AB, 0x9B2E, 0xE9AC, 0x9B2F, 0xE9AD, 0x9B32, 0xE9AE, 0x9B44, 0xE9AF, 0x9B43, 0xE9B0, 0x9B4F, + 0xE9B1, 0x9B4D, 0xE9B2, 0x9B4E, 0xE9B3, 0x9B51, 0xE9B4, 0x9B58, 0xE9B5, 0x9B74, 0xE9B6, 0x9B93, 0xE9B7, 0x9B83, 0xE9B8, 0x9B91, + 0xE9B9, 0x9B96, 0xE9BA, 0x9B97, 0xE9BB, 0x9B9F, 0xE9BC, 0x9BA0, 0xE9BD, 0x9BA8, 0xE9BE, 0x9BB4, 0xE9BF, 0x9BC0, 0xE9C0, 0x9BCA, + 0xE9C1, 0x9BB9, 0xE9C2, 0x9BC6, 0xE9C3, 0x9BCF, 0xE9C4, 0x9BD1, 0xE9C5, 0x9BD2, 0xE9C6, 0x9BE3, 0xE9C7, 0x9BE2, 0xE9C8, 0x9BE4, + 0xE9C9, 0x9BD4, 0xE9CA, 0x9BE1, 0xE9CB, 0x9C3A, 0xE9CC, 0x9BF2, 0xE9CD, 0x9BF1, 0xE9CE, 0x9BF0, 0xE9CF, 0x9C15, 0xE9D0, 0x9C14, + 0xE9D1, 0x9C09, 0xE9D2, 0x9C13, 0xE9D3, 0x9C0C, 0xE9D4, 0x9C06, 0xE9D5, 0x9C08, 0xE9D6, 0x9C12, 0xE9D7, 0x9C0A, 0xE9D8, 0x9C04, + 0xE9D9, 0x9C2E, 0xE9DA, 0x9C1B, 0xE9DB, 0x9C25, 0xE9DC, 0x9C24, 0xE9DD, 0x9C21, 0xE9DE, 0x9C30, 0xE9DF, 0x9C47, 0xE9E0, 0x9C32, + 0xE9E1, 0x9C46, 0xE9E2, 0x9C3E, 0xE9E3, 0x9C5A, 0xE9E4, 0x9C60, 0xE9E5, 0x9C67, 0xE9E6, 0x9C76, 0xE9E7, 0x9C78, 0xE9E8, 0x9CE7, + 0xE9E9, 0x9CEC, 0xE9EA, 0x9CF0, 0xE9EB, 0x9D09, 0xE9EC, 0x9D08, 0xE9ED, 0x9CEB, 0xE9EE, 0x9D03, 0xE9EF, 0x9D06, 0xE9F0, 0x9D2A, + 0xE9F1, 0x9D26, 0xE9F2, 0x9DAF, 0xE9F3, 0x9D23, 0xE9F4, 0x9D1F, 0xE9F5, 0x9D44, 0xE9F6, 0x9D15, 0xE9F7, 0x9D12, 0xE9F8, 0x9D41, + 0xE9F9, 0x9D3F, 0xE9FA, 0x9D3E, 0xE9FB, 0x9D46, 0xE9FC, 0x9D48, 0xEA40, 0x9D5D, 0xEA41, 0x9D5E, 0xEA42, 0x9D64, 0xEA43, 0x9D51, + 0xEA44, 0x9D50, 0xEA45, 0x9D59, 0xEA46, 0x9D72, 0xEA47, 0x9D89, 0xEA48, 0x9D87, 0xEA49, 0x9DAB, 0xEA4A, 0x9D6F, 0xEA4B, 0x9D7A, + 0xEA4C, 0x9D9A, 0xEA4D, 0x9DA4, 0xEA4E, 0x9DA9, 0xEA4F, 0x9DB2, 0xEA50, 0x9DC4, 0xEA51, 0x9DC1, 0xEA52, 0x9DBB, 0xEA53, 0x9DB8, + 0xEA54, 0x9DBA, 0xEA55, 0x9DC6, 0xEA56, 0x9DCF, 0xEA57, 0x9DC2, 0xEA58, 0x9DD9, 0xEA59, 0x9DD3, 0xEA5A, 0x9DF8, 0xEA5B, 0x9DE6, + 0xEA5C, 0x9DED, 0xEA5D, 0x9DEF, 0xEA5E, 0x9DFD, 0xEA5F, 0x9E1A, 0xEA60, 0x9E1B, 0xEA61, 0x9E1E, 0xEA62, 0x9E75, 0xEA63, 0x9E79, + 0xEA64, 0x9E7D, 0xEA65, 0x9E81, 0xEA66, 0x9E88, 0xEA67, 0x9E8B, 0xEA68, 0x9E8C, 0xEA69, 0x9E92, 0xEA6A, 0x9E95, 0xEA6B, 0x9E91, + 0xEA6C, 0x9E9D, 0xEA6D, 0x9EA5, 0xEA6E, 0x9EA9, 0xEA6F, 0x9EB8, 0xEA70, 0x9EAA, 0xEA71, 0x9EAD, 0xEA72, 0x9761, 0xEA73, 0x9ECC, + 0xEA74, 0x9ECE, 0xEA75, 0x9ECF, 0xEA76, 0x9ED0, 0xEA77, 0x9ED4, 0xEA78, 0x9EDC, 0xEA79, 0x9EDE, 0xEA7A, 0x9EDD, 0xEA7B, 0x9EE0, + 0xEA7C, 0x9EE5, 0xEA7D, 0x9EE8, 0xEA7E, 0x9EEF, 0xEA80, 0x9EF4, 0xEA81, 0x9EF6, 0xEA82, 0x9EF7, 0xEA83, 0x9EF9, 0xEA84, 0x9EFB, + 0xEA85, 0x9EFC, 0xEA86, 0x9EFD, 0xEA87, 0x9F07, 0xEA88, 0x9F08, 0xEA89, 0x76B7, 0xEA8A, 0x9F15, 0xEA8B, 0x9F21, 0xEA8C, 0x9F2C, + 0xEA8D, 0x9F3E, 0xEA8E, 0x9F4A, 0xEA8F, 0x9F52, 0xEA90, 0x9F54, 0xEA91, 0x9F63, 0xEA92, 0x9F5F, 0xEA93, 0x9F60, 0xEA94, 0x9F61, + 0xEA95, 0x9F66, 0xEA96, 0x9F67, 0xEA97, 0x9F6C, 0xEA98, 0x9F6A, 0xEA99, 0x9F77, 0xEA9A, 0x9F72, 0xEA9B, 0x9F76, 0xEA9C, 0x9F95, + 0xEA9D, 0x9F9C, 0xEA9E, 0x9FA0, 0xEA9F, 0x582F, 0xEAA0, 0x69C7, 0xEAA1, 0x9059, 0xEAA2, 0x7464, 0xEAA3, 0x51DC, 0xEAA4, 0x7199, + 0xFA40, 0x2170, 0xFA41, 0x2171, 0xFA42, 0x2172, 0xFA43, 0x2173, 0xFA44, 0x2174, 0xFA45, 0x2175, 0xFA46, 0x2176, 0xFA47, 0x2177, + 0xFA48, 0x2178, 0xFA49, 0x2179, 0xFA55, 0xFFE4, 0xFA56, 0xFF07, 0xFA57, 0xFF02, 0xFA5C, 0x7E8A, 0xFA5D, 0x891C, 0xFA5E, 0x9348, + 0xFA5F, 0x9288, 0xFA60, 0x84DC, 0xFA61, 0x4FC9, 0xFA62, 0x70BB, 0xFA63, 0x6631, 0xFA64, 0x68C8, 0xFA65, 0x92F9, 0xFA66, 0x66FB, + 0xFA67, 0x5F45, 0xFA68, 0x4E28, 0xFA69, 0x4EE1, 0xFA6A, 0x4EFC, 0xFA6B, 0x4F00, 0xFA6C, 0x4F03, 0xFA6D, 0x4F39, 0xFA6E, 0x4F56, + 0xFA6F, 0x4F92, 0xFA70, 0x4F8A, 0xFA71, 0x4F9A, 0xFA72, 0x4F94, 0xFA73, 0x4FCD, 0xFA74, 0x5040, 0xFA75, 0x5022, 0xFA76, 0x4FFF, + 0xFA77, 0x501E, 0xFA78, 0x5046, 0xFA79, 0x5070, 0xFA7A, 0x5042, 0xFA7B, 0x5094, 0xFA7C, 0x50F4, 0xFA7D, 0x50D8, 0xFA7E, 0x514A, + 0xFA80, 0x5164, 0xFA81, 0x519D, 0xFA82, 0x51BE, 0xFA83, 0x51EC, 0xFA84, 0x5215, 0xFA85, 0x529C, 0xFA86, 0x52A6, 0xFA87, 0x52C0, + 0xFA88, 0x52DB, 0xFA89, 0x5300, 0xFA8A, 0x5307, 0xFA8B, 0x5324, 0xFA8C, 0x5372, 0xFA8D, 0x5393, 0xFA8E, 0x53B2, 0xFA8F, 0x53DD, + 0xFA90, 0xFA0E, 0xFA91, 0x549C, 0xFA92, 0x548A, 0xFA93, 0x54A9, 0xFA94, 0x54FF, 0xFA95, 0x5586, 0xFA96, 0x5759, 0xFA97, 0x5765, + 0xFA98, 0x57AC, 0xFA99, 0x57C8, 0xFA9A, 0x57C7, 0xFA9B, 0xFA0F, 0xFA9C, 0xFA10, 0xFA9D, 0x589E, 0xFA9E, 0x58B2, 0xFA9F, 0x590B, + 0xFAA0, 0x5953, 0xFAA1, 0x595B, 0xFAA2, 0x595D, 0xFAA3, 0x5963, 0xFAA4, 0x59A4, 0xFAA5, 0x59BA, 0xFAA6, 0x5B56, 0xFAA7, 0x5BC0, + 0xFAA8, 0x752F, 0xFAA9, 0x5BD8, 0xFAAA, 0x5BEC, 0xFAAB, 0x5C1E, 0xFAAC, 0x5CA6, 0xFAAD, 0x5CBA, 0xFAAE, 0x5CF5, 0xFAAF, 0x5D27, + 0xFAB0, 0x5D53, 0xFAB1, 0xFA11, 0xFAB2, 0x5D42, 0xFAB3, 0x5D6D, 0xFAB4, 0x5DB8, 0xFAB5, 0x5DB9, 0xFAB6, 0x5DD0, 0xFAB7, 0x5F21, + 0xFAB8, 0x5F34, 0xFAB9, 0x5F67, 0xFABA, 0x5FB7, 0xFABB, 0x5FDE, 0xFABC, 0x605D, 0xFABD, 0x6085, 0xFABE, 0x608A, 0xFABF, 0x60DE, + 0xFAC0, 0x60D5, 0xFAC1, 0x6120, 0xFAC2, 0x60F2, 0xFAC3, 0x6111, 0xFAC4, 0x6137, 0xFAC5, 0x6130, 0xFAC6, 0x6198, 0xFAC7, 0x6213, + 0xFAC8, 0x62A6, 0xFAC9, 0x63F5, 0xFACA, 0x6460, 0xFACB, 0x649D, 0xFACC, 0x64CE, 0xFACD, 0x654E, 0xFACE, 0x6600, 0xFACF, 0x6615, + 0xFAD0, 0x663B, 0xFAD1, 0x6609, 0xFAD2, 0x662E, 0xFAD3, 0x661E, 0xFAD4, 0x6624, 0xFAD5, 0x6665, 0xFAD6, 0x6657, 0xFAD7, 0x6659, + 0xFAD8, 0xFA12, 0xFAD9, 0x6673, 0xFADA, 0x6699, 0xFADB, 0x66A0, 0xFADC, 0x66B2, 0xFADD, 0x66BF, 0xFADE, 0x66FA, 0xFADF, 0x670E, + 0xFAE0, 0xF929, 0xFAE1, 0x6766, 0xFAE2, 0x67BB, 0xFAE3, 0x6852, 0xFAE4, 0x67C0, 0xFAE5, 0x6801, 0xFAE6, 0x6844, 0xFAE7, 0x68CF, + 0xFAE8, 0xFA13, 0xFAE9, 0x6968, 0xFAEA, 0xFA14, 0xFAEB, 0x6998, 0xFAEC, 0x69E2, 0xFAED, 0x6A30, 0xFAEE, 0x6A6B, 0xFAEF, 0x6A46, + 0xFAF0, 0x6A73, 0xFAF1, 0x6A7E, 0xFAF2, 0x6AE2, 0xFAF3, 0x6AE4, 0xFAF4, 0x6BD6, 0xFAF5, 0x6C3F, 0xFAF6, 0x6C5C, 0xFAF7, 0x6C86, + 0xFAF8, 0x6C6F, 0xFAF9, 0x6CDA, 0xFAFA, 0x6D04, 0xFAFB, 0x6D87, 0xFAFC, 0x6D6F, 0xFB40, 0x6D96, 0xFB41, 0x6DAC, 0xFB42, 0x6DCF, + 0xFB43, 0x6DF8, 0xFB44, 0x6DF2, 0xFB45, 0x6DFC, 0xFB46, 0x6E39, 0xFB47, 0x6E5C, 0xFB48, 0x6E27, 0xFB49, 0x6E3C, 0xFB4A, 0x6EBF, + 0xFB4B, 0x6F88, 0xFB4C, 0x6FB5, 0xFB4D, 0x6FF5, 0xFB4E, 0x7005, 0xFB4F, 0x7007, 0xFB50, 0x7028, 0xFB51, 0x7085, 0xFB52, 0x70AB, + 0xFB53, 0x710F, 0xFB54, 0x7104, 0xFB55, 0x715C, 0xFB56, 0x7146, 0xFB57, 0x7147, 0xFB58, 0xFA15, 0xFB59, 0x71C1, 0xFB5A, 0x71FE, + 0xFB5B, 0x72B1, 0xFB5C, 0x72BE, 0xFB5D, 0x7324, 0xFB5E, 0xFA16, 0xFB5F, 0x7377, 0xFB60, 0x73BD, 0xFB61, 0x73C9, 0xFB62, 0x73D6, + 0xFB63, 0x73E3, 0xFB64, 0x73D2, 0xFB65, 0x7407, 0xFB66, 0x73F5, 0xFB67, 0x7426, 0xFB68, 0x742A, 0xFB69, 0x7429, 0xFB6A, 0x742E, + 0xFB6B, 0x7462, 0xFB6C, 0x7489, 0xFB6D, 0x749F, 0xFB6E, 0x7501, 0xFB6F, 0x756F, 0xFB70, 0x7682, 0xFB71, 0x769C, 0xFB72, 0x769E, + 0xFB73, 0x769B, 0xFB74, 0x76A6, 0xFB75, 0xFA17, 0xFB76, 0x7746, 0xFB77, 0x52AF, 0xFB78, 0x7821, 0xFB79, 0x784E, 0xFB7A, 0x7864, + 0xFB7B, 0x787A, 0xFB7C, 0x7930, 0xFB7D, 0xFA18, 0xFB7E, 0xFA19, 0xFB80, 0xFA1A, 0xFB81, 0x7994, 0xFB82, 0xFA1B, 0xFB83, 0x799B, + 0xFB84, 0x7AD1, 0xFB85, 0x7AE7, 0xFB86, 0xFA1C, 0xFB87, 0x7AEB, 0xFB88, 0x7B9E, 0xFB89, 0xFA1D, 0xFB8A, 0x7D48, 0xFB8B, 0x7D5C, + 0xFB8C, 0x7DB7, 0xFB8D, 0x7DA0, 0xFB8E, 0x7DD6, 0xFB8F, 0x7E52, 0xFB90, 0x7F47, 0xFB91, 0x7FA1, 0xFB92, 0xFA1E, 0xFB93, 0x8301, + 0xFB94, 0x8362, 0xFB95, 0x837F, 0xFB96, 0x83C7, 0xFB97, 0x83F6, 0xFB98, 0x8448, 0xFB99, 0x84B4, 0xFB9A, 0x8553, 0xFB9B, 0x8559, + 0xFB9C, 0x856B, 0xFB9D, 0xFA1F, 0xFB9E, 0x85B0, 0xFB9F, 0xFA20, 0xFBA0, 0xFA21, 0xFBA1, 0x8807, 0xFBA2, 0x88F5, 0xFBA3, 0x8A12, + 0xFBA4, 0x8A37, 0xFBA5, 0x8A79, 0xFBA6, 0x8AA7, 0xFBA7, 0x8ABE, 0xFBA8, 0x8ADF, 0xFBA9, 0xFA22, 0xFBAA, 0x8AF6, 0xFBAB, 0x8B53, + 0xFBAC, 0x8B7F, 0xFBAD, 0x8CF0, 0xFBAE, 0x8CF4, 0xFBAF, 0x8D12, 0xFBB0, 0x8D76, 0xFBB1, 0xFA23, 0xFBB2, 0x8ECF, 0xFBB3, 0xFA24, + 0xFBB4, 0xFA25, 0xFBB5, 0x9067, 0xFBB6, 0x90DE, 0xFBB7, 0xFA26, 0xFBB8, 0x9115, 0xFBB9, 0x9127, 0xFBBA, 0x91DA, 0xFBBB, 0x91D7, + 0xFBBC, 0x91DE, 0xFBBD, 0x91ED, 0xFBBE, 0x91EE, 0xFBBF, 0x91E4, 0xFBC0, 0x91E5, 0xFBC1, 0x9206, 0xFBC2, 0x9210, 0xFBC3, 0x920A, + 0xFBC4, 0x923A, 0xFBC5, 0x9240, 0xFBC6, 0x923C, 0xFBC7, 0x924E, 0xFBC8, 0x9259, 0xFBC9, 0x9251, 0xFBCA, 0x9239, 0xFBCB, 0x9267, + 0xFBCC, 0x92A7, 0xFBCD, 0x9277, 0xFBCE, 0x9278, 0xFBCF, 0x92E7, 0xFBD0, 0x92D7, 0xFBD1, 0x92D9, 0xFBD2, 0x92D0, 0xFBD3, 0xFA27, + 0xFBD4, 0x92D5, 0xFBD5, 0x92E0, 0xFBD6, 0x92D3, 0xFBD7, 0x9325, 0xFBD8, 0x9321, 0xFBD9, 0x92FB, 0xFBDA, 0xFA28, 0xFBDB, 0x931E, + 0xFBDC, 0x92FF, 0xFBDD, 0x931D, 0xFBDE, 0x9302, 0xFBDF, 0x9370, 0xFBE0, 0x9357, 0xFBE1, 0x93A4, 0xFBE2, 0x93C6, 0xFBE3, 0x93DE, + 0xFBE4, 0x93F8, 0xFBE5, 0x9431, 0xFBE6, 0x9445, 0xFBE7, 0x9448, 0xFBE8, 0x9592, 0xFBE9, 0xF9DC, 0xFBEA, 0xFA29, 0xFBEB, 0x969D, + 0xFBEC, 0x96AF, 0xFBED, 0x9733, 0xFBEE, 0x973B, 0xFBEF, 0x9743, 0xFBF0, 0x974D, 0xFBF1, 0x974F, 0xFBF2, 0x9751, 0xFBF3, 0x9755, + 0xFBF4, 0x9857, 0xFBF5, 0x9865, 0xFBF6, 0xFA2A, 0xFBF7, 0xFA2B, 0xFBF8, 0x9927, 0xFBF9, 0xFA2C, 0xFBFA, 0x999E, 0xFBFB, 0x9A4E, + 0xFBFC, 0x9AD9, 0xFC40, 0x9ADC, 0xFC41, 0x9B75, 0xFC42, 0x9B72, 0xFC43, 0x9B8F, 0xFC44, 0x9BB1, 0xFC45, 0x9BBB, 0xFC46, 0x9C00, + 0xFC47, 0x9D70, 0xFC48, 0x9D6B, 0xFC49, 0xFA2D, 0xFC4A, 0x9E19, 0xFC4B, 0x9ED1, 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 936 || FF_CODE_PAGE == 0 /* Simplified Chinese */ +static +const WCHAR uni2oem936[] = { /* Unicode --> GBK pairs */ + 0x00A4, 0xA1E8, 0x00A7, 0xA1EC, 0x00A8, 0xA1A7, 0x00B0, 0xA1E3, 0x00B1, 0xA1C0, 0x00B7, 0xA1A4, 0x00D7, 0xA1C1, 0x00E0, 0xA8A4, + 0x00E1, 0xA8A2, 0x00E8, 0xA8A8, 0x00E9, 0xA8A6, 0x00EA, 0xA8BA, 0x00EC, 0xA8AC, 0x00ED, 0xA8AA, 0x00F2, 0xA8B0, 0x00F3, 0xA8AE, + 0x00F7, 0xA1C2, 0x00F9, 0xA8B4, 0x00FA, 0xA8B2, 0x00FC, 0xA8B9, 0x0101, 0xA8A1, 0x0113, 0xA8A5, 0x011B, 0xA8A7, 0x012B, 0xA8A9, + 0x0144, 0xA8BD, 0x0148, 0xA8BE, 0x014D, 0xA8AD, 0x016B, 0xA8B1, 0x01CE, 0xA8A3, 0x01D0, 0xA8AB, 0x01D2, 0xA8AF, 0x01D4, 0xA8B3, + 0x01D6, 0xA8B5, 0x01D8, 0xA8B6, 0x01DA, 0xA8B7, 0x01DC, 0xA8B8, 0x0251, 0xA8BB, 0x0261, 0xA8C0, 0x02C7, 0xA1A6, 0x02C9, 0xA1A5, + 0x02CA, 0xA840, 0x02CB, 0xA841, 0x02D9, 0xA842, 0x0391, 0xA6A1, 0x0392, 0xA6A2, 0x0393, 0xA6A3, 0x0394, 0xA6A4, 0x0395, 0xA6A5, + 0x0396, 0xA6A6, 0x0397, 0xA6A7, 0x0398, 0xA6A8, 0x0399, 0xA6A9, 0x039A, 0xA6AA, 0x039B, 0xA6AB, 0x039C, 0xA6AC, 0x039D, 0xA6AD, + 0x039E, 0xA6AE, 0x039F, 0xA6AF, 0x03A0, 0xA6B0, 0x03A1, 0xA6B1, 0x03A3, 0xA6B2, 0x03A4, 0xA6B3, 0x03A5, 0xA6B4, 0x03A6, 0xA6B5, + 0x03A7, 0xA6B6, 0x03A8, 0xA6B7, 0x03A9, 0xA6B8, 0x03B1, 0xA6C1, 0x03B2, 0xA6C2, 0x03B3, 0xA6C3, 0x03B4, 0xA6C4, 0x03B5, 0xA6C5, + 0x03B6, 0xA6C6, 0x03B7, 0xA6C7, 0x03B8, 0xA6C8, 0x03B9, 0xA6C9, 0x03BA, 0xA6CA, 0x03BB, 0xA6CB, 0x03BC, 0xA6CC, 0x03BD, 0xA6CD, + 0x03BE, 0xA6CE, 0x03BF, 0xA6CF, 0x03C0, 0xA6D0, 0x03C1, 0xA6D1, 0x03C3, 0xA6D2, 0x03C4, 0xA6D3, 0x03C5, 0xA6D4, 0x03C6, 0xA6D5, + 0x03C7, 0xA6D6, 0x03C8, 0xA6D7, 0x03C9, 0xA6D8, 0x0401, 0xA7A7, 0x0410, 0xA7A1, 0x0411, 0xA7A2, 0x0412, 0xA7A3, 0x0413, 0xA7A4, + 0x0414, 0xA7A5, 0x0415, 0xA7A6, 0x0416, 0xA7A8, 0x0417, 0xA7A9, 0x0418, 0xA7AA, 0x0419, 0xA7AB, 0x041A, 0xA7AC, 0x041B, 0xA7AD, + 0x041C, 0xA7AE, 0x041D, 0xA7AF, 0x041E, 0xA7B0, 0x041F, 0xA7B1, 0x0420, 0xA7B2, 0x0421, 0xA7B3, 0x0422, 0xA7B4, 0x0423, 0xA7B5, + 0x0424, 0xA7B6, 0x0425, 0xA7B7, 0x0426, 0xA7B8, 0x0427, 0xA7B9, 0x0428, 0xA7BA, 0x0429, 0xA7BB, 0x042A, 0xA7BC, 0x042B, 0xA7BD, + 0x042C, 0xA7BE, 0x042D, 0xA7BF, 0x042E, 0xA7C0, 0x042F, 0xA7C1, 0x0430, 0xA7D1, 0x0431, 0xA7D2, 0x0432, 0xA7D3, 0x0433, 0xA7D4, + 0x0434, 0xA7D5, 0x0435, 0xA7D6, 0x0436, 0xA7D8, 0x0437, 0xA7D9, 0x0438, 0xA7DA, 0x0439, 0xA7DB, 0x043A, 0xA7DC, 0x043B, 0xA7DD, + 0x043C, 0xA7DE, 0x043D, 0xA7DF, 0x043E, 0xA7E0, 0x043F, 0xA7E1, 0x0440, 0xA7E2, 0x0441, 0xA7E3, 0x0442, 0xA7E4, 0x0443, 0xA7E5, + 0x0444, 0xA7E6, 0x0445, 0xA7E7, 0x0446, 0xA7E8, 0x0447, 0xA7E9, 0x0448, 0xA7EA, 0x0449, 0xA7EB, 0x044A, 0xA7EC, 0x044B, 0xA7ED, + 0x044C, 0xA7EE, 0x044D, 0xA7EF, 0x044E, 0xA7F0, 0x044F, 0xA7F1, 0x0451, 0xA7D7, 0x2010, 0xA95C, 0x2013, 0xA843, 0x2014, 0xA1AA, + 0x2015, 0xA844, 0x2016, 0xA1AC, 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, 0x2025, 0xA845, 0x2026, 0xA1AD, + 0x2030, 0xA1EB, 0x2032, 0xA1E4, 0x2033, 0xA1E5, 0x2035, 0xA846, 0x203B, 0xA1F9, 0x20AC, 0x0080, 0x2103, 0xA1E6, 0x2105, 0xA847, + 0x2109, 0xA848, 0x2116, 0xA1ED, 0x2121, 0xA959, 0x2160, 0xA2F1, 0x2161, 0xA2F2, 0x2162, 0xA2F3, 0x2163, 0xA2F4, 0x2164, 0xA2F5, + 0x2165, 0xA2F6, 0x2166, 0xA2F7, 0x2167, 0xA2F8, 0x2168, 0xA2F9, 0x2169, 0xA2FA, 0x216A, 0xA2FB, 0x216B, 0xA2FC, 0x2170, 0xA2A1, + 0x2171, 0xA2A2, 0x2172, 0xA2A3, 0x2173, 0xA2A4, 0x2174, 0xA2A5, 0x2175, 0xA2A6, 0x2176, 0xA2A7, 0x2177, 0xA2A8, 0x2178, 0xA2A9, + 0x2179, 0xA2AA, 0x2190, 0xA1FB, 0x2191, 0xA1FC, 0x2192, 0xA1FA, 0x2193, 0xA1FD, 0x2196, 0xA849, 0x2197, 0xA84A, 0x2198, 0xA84B, + 0x2199, 0xA84C, 0x2208, 0xA1CA, 0x220F, 0xA1C7, 0x2211, 0xA1C6, 0x2215, 0xA84D, 0x221A, 0xA1CC, 0x221D, 0xA1D8, 0x221E, 0xA1DE, + 0x221F, 0xA84E, 0x2220, 0xA1CF, 0x2223, 0xA84F, 0x2225, 0xA1CE, 0x2227, 0xA1C4, 0x2228, 0xA1C5, 0x2229, 0xA1C9, 0x222A, 0xA1C8, + 0x222B, 0xA1D2, 0x222E, 0xA1D3, 0x2234, 0xA1E0, 0x2235, 0xA1DF, 0x2236, 0xA1C3, 0x2237, 0xA1CB, 0x223D, 0xA1D7, 0x2248, 0xA1D6, + 0x224C, 0xA1D5, 0x2252, 0xA850, 0x2260, 0xA1D9, 0x2261, 0xA1D4, 0x2264, 0xA1DC, 0x2265, 0xA1DD, 0x2266, 0xA851, 0x2267, 0xA852, + 0x226E, 0xA1DA, 0x226F, 0xA1DB, 0x2295, 0xA892, 0x2299, 0xA1D1, 0x22A5, 0xA1CD, 0x22BF, 0xA853, 0x2312, 0xA1D0, 0x2460, 0xA2D9, + 0x2461, 0xA2DA, 0x2462, 0xA2DB, 0x2463, 0xA2DC, 0x2464, 0xA2DD, 0x2465, 0xA2DE, 0x2466, 0xA2DF, 0x2467, 0xA2E0, 0x2468, 0xA2E1, + 0x2469, 0xA2E2, 0x2474, 0xA2C5, 0x2475, 0xA2C6, 0x2476, 0xA2C7, 0x2477, 0xA2C8, 0x2478, 0xA2C9, 0x2479, 0xA2CA, 0x247A, 0xA2CB, + 0x247B, 0xA2CC, 0x247C, 0xA2CD, 0x247D, 0xA2CE, 0x247E, 0xA2CF, 0x247F, 0xA2D0, 0x2480, 0xA2D1, 0x2481, 0xA2D2, 0x2482, 0xA2D3, + 0x2483, 0xA2D4, 0x2484, 0xA2D5, 0x2485, 0xA2D6, 0x2486, 0xA2D7, 0x2487, 0xA2D8, 0x2488, 0xA2B1, 0x2489, 0xA2B2, 0x248A, 0xA2B3, + 0x248B, 0xA2B4, 0x248C, 0xA2B5, 0x248D, 0xA2B6, 0x248E, 0xA2B7, 0x248F, 0xA2B8, 0x2490, 0xA2B9, 0x2491, 0xA2BA, 0x2492, 0xA2BB, + 0x2493, 0xA2BC, 0x2494, 0xA2BD, 0x2495, 0xA2BE, 0x2496, 0xA2BF, 0x2497, 0xA2C0, 0x2498, 0xA2C1, 0x2499, 0xA2C2, 0x249A, 0xA2C3, + 0x249B, 0xA2C4, 0x2500, 0xA9A4, 0x2501, 0xA9A5, 0x2502, 0xA9A6, 0x2503, 0xA9A7, 0x2504, 0xA9A8, 0x2505, 0xA9A9, 0x2506, 0xA9AA, + 0x2507, 0xA9AB, 0x2508, 0xA9AC, 0x2509, 0xA9AD, 0x250A, 0xA9AE, 0x250B, 0xA9AF, 0x250C, 0xA9B0, 0x250D, 0xA9B1, 0x250E, 0xA9B2, + 0x250F, 0xA9B3, 0x2510, 0xA9B4, 0x2511, 0xA9B5, 0x2512, 0xA9B6, 0x2513, 0xA9B7, 0x2514, 0xA9B8, 0x2515, 0xA9B9, 0x2516, 0xA9BA, + 0x2517, 0xA9BB, 0x2518, 0xA9BC, 0x2519, 0xA9BD, 0x251A, 0xA9BE, 0x251B, 0xA9BF, 0x251C, 0xA9C0, 0x251D, 0xA9C1, 0x251E, 0xA9C2, + 0x251F, 0xA9C3, 0x2520, 0xA9C4, 0x2521, 0xA9C5, 0x2522, 0xA9C6, 0x2523, 0xA9C7, 0x2524, 0xA9C8, 0x2525, 0xA9C9, 0x2526, 0xA9CA, + 0x2527, 0xA9CB, 0x2528, 0xA9CC, 0x2529, 0xA9CD, 0x252A, 0xA9CE, 0x252B, 0xA9CF, 0x252C, 0xA9D0, 0x252D, 0xA9D1, 0x252E, 0xA9D2, + 0x252F, 0xA9D3, 0x2530, 0xA9D4, 0x2531, 0xA9D5, 0x2532, 0xA9D6, 0x2533, 0xA9D7, 0x2534, 0xA9D8, 0x2535, 0xA9D9, 0x2536, 0xA9DA, + 0x2537, 0xA9DB, 0x2538, 0xA9DC, 0x2539, 0xA9DD, 0x253A, 0xA9DE, 0x253B, 0xA9DF, 0x253C, 0xA9E0, 0x253D, 0xA9E1, 0x253E, 0xA9E2, + 0x253F, 0xA9E3, 0x2540, 0xA9E4, 0x2541, 0xA9E5, 0x2542, 0xA9E6, 0x2543, 0xA9E7, 0x2544, 0xA9E8, 0x2545, 0xA9E9, 0x2546, 0xA9EA, + 0x2547, 0xA9EB, 0x2548, 0xA9EC, 0x2549, 0xA9ED, 0x254A, 0xA9EE, 0x254B, 0xA9EF, 0x2550, 0xA854, 0x2551, 0xA855, 0x2552, 0xA856, + 0x2553, 0xA857, 0x2554, 0xA858, 0x2555, 0xA859, 0x2556, 0xA85A, 0x2557, 0xA85B, 0x2558, 0xA85C, 0x2559, 0xA85D, 0x255A, 0xA85E, + 0x255B, 0xA85F, 0x255C, 0xA860, 0x255D, 0xA861, 0x255E, 0xA862, 0x255F, 0xA863, 0x2560, 0xA864, 0x2561, 0xA865, 0x2562, 0xA866, + 0x2563, 0xA867, 0x2564, 0xA868, 0x2565, 0xA869, 0x2566, 0xA86A, 0x2567, 0xA86B, 0x2568, 0xA86C, 0x2569, 0xA86D, 0x256A, 0xA86E, + 0x256B, 0xA86F, 0x256C, 0xA870, 0x256D, 0xA871, 0x256E, 0xA872, 0x256F, 0xA873, 0x2570, 0xA874, 0x2571, 0xA875, 0x2572, 0xA876, + 0x2573, 0xA877, 0x2581, 0xA878, 0x2582, 0xA879, 0x2583, 0xA87A, 0x2584, 0xA87B, 0x2585, 0xA87C, 0x2586, 0xA87D, 0x2587, 0xA87E, + 0x2588, 0xA880, 0x2589, 0xA881, 0x258A, 0xA882, 0x258B, 0xA883, 0x258C, 0xA884, 0x258D, 0xA885, 0x258E, 0xA886, 0x258F, 0xA887, + 0x2593, 0xA888, 0x2594, 0xA889, 0x2595, 0xA88A, 0x25A0, 0xA1F6, 0x25A1, 0xA1F5, 0x25B2, 0xA1F8, 0x25B3, 0xA1F7, 0x25BC, 0xA88B, + 0x25BD, 0xA88C, 0x25C6, 0xA1F4, 0x25C7, 0xA1F3, 0x25CB, 0xA1F0, 0x25CE, 0xA1F2, 0x25CF, 0xA1F1, 0x25E2, 0xA88D, 0x25E3, 0xA88E, + 0x25E4, 0xA88F, 0x25E5, 0xA890, 0x2605, 0xA1EF, 0x2606, 0xA1EE, 0x2609, 0xA891, 0x2640, 0xA1E2, 0x2642, 0xA1E1, 0x3000, 0xA1A1, + 0x3001, 0xA1A2, 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3005, 0xA1A9, 0x3006, 0xA965, 0x3007, 0xA996, 0x3008, 0xA1B4, 0x3009, 0xA1B5, + 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BE, 0x3011, 0xA1BF, + 0x3012, 0xA893, 0x3013, 0xA1FE, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3016, 0xA1BC, 0x3017, 0xA1BD, 0x301D, 0xA894, 0x301E, 0xA895, + 0x3021, 0xA940, 0x3022, 0xA941, 0x3023, 0xA942, 0x3024, 0xA943, 0x3025, 0xA944, 0x3026, 0xA945, 0x3027, 0xA946, 0x3028, 0xA947, + 0x3029, 0xA948, 0x3041, 0xA4A1, 0x3042, 0xA4A2, 0x3043, 0xA4A3, 0x3044, 0xA4A4, 0x3045, 0xA4A5, 0x3046, 0xA4A6, 0x3047, 0xA4A7, + 0x3048, 0xA4A8, 0x3049, 0xA4A9, 0x304A, 0xA4AA, 0x304B, 0xA4AB, 0x304C, 0xA4AC, 0x304D, 0xA4AD, 0x304E, 0xA4AE, 0x304F, 0xA4AF, + 0x3050, 0xA4B0, 0x3051, 0xA4B1, 0x3052, 0xA4B2, 0x3053, 0xA4B3, 0x3054, 0xA4B4, 0x3055, 0xA4B5, 0x3056, 0xA4B6, 0x3057, 0xA4B7, + 0x3058, 0xA4B8, 0x3059, 0xA4B9, 0x305A, 0xA4BA, 0x305B, 0xA4BB, 0x305C, 0xA4BC, 0x305D, 0xA4BD, 0x305E, 0xA4BE, 0x305F, 0xA4BF, + 0x3060, 0xA4C0, 0x3061, 0xA4C1, 0x3062, 0xA4C2, 0x3063, 0xA4C3, 0x3064, 0xA4C4, 0x3065, 0xA4C5, 0x3066, 0xA4C6, 0x3067, 0xA4C7, + 0x3068, 0xA4C8, 0x3069, 0xA4C9, 0x306A, 0xA4CA, 0x306B, 0xA4CB, 0x306C, 0xA4CC, 0x306D, 0xA4CD, 0x306E, 0xA4CE, 0x306F, 0xA4CF, + 0x3070, 0xA4D0, 0x3071, 0xA4D1, 0x3072, 0xA4D2, 0x3073, 0xA4D3, 0x3074, 0xA4D4, 0x3075, 0xA4D5, 0x3076, 0xA4D6, 0x3077, 0xA4D7, + 0x3078, 0xA4D8, 0x3079, 0xA4D9, 0x307A, 0xA4DA, 0x307B, 0xA4DB, 0x307C, 0xA4DC, 0x307D, 0xA4DD, 0x307E, 0xA4DE, 0x307F, 0xA4DF, + 0x3080, 0xA4E0, 0x3081, 0xA4E1, 0x3082, 0xA4E2, 0x3083, 0xA4E3, 0x3084, 0xA4E4, 0x3085, 0xA4E5, 0x3086, 0xA4E6, 0x3087, 0xA4E7, + 0x3088, 0xA4E8, 0x3089, 0xA4E9, 0x308A, 0xA4EA, 0x308B, 0xA4EB, 0x308C, 0xA4EC, 0x308D, 0xA4ED, 0x308E, 0xA4EE, 0x308F, 0xA4EF, + 0x3090, 0xA4F0, 0x3091, 0xA4F1, 0x3092, 0xA4F2, 0x3093, 0xA4F3, 0x309B, 0xA961, 0x309C, 0xA962, 0x309D, 0xA966, 0x309E, 0xA967, + 0x30A1, 0xA5A1, 0x30A2, 0xA5A2, 0x30A3, 0xA5A3, 0x30A4, 0xA5A4, 0x30A5, 0xA5A5, 0x30A6, 0xA5A6, 0x30A7, 0xA5A7, 0x30A8, 0xA5A8, + 0x30A9, 0xA5A9, 0x30AA, 0xA5AA, 0x30AB, 0xA5AB, 0x30AC, 0xA5AC, 0x30AD, 0xA5AD, 0x30AE, 0xA5AE, 0x30AF, 0xA5AF, 0x30B0, 0xA5B0, + 0x30B1, 0xA5B1, 0x30B2, 0xA5B2, 0x30B3, 0xA5B3, 0x30B4, 0xA5B4, 0x30B5, 0xA5B5, 0x30B6, 0xA5B6, 0x30B7, 0xA5B7, 0x30B8, 0xA5B8, + 0x30B9, 0xA5B9, 0x30BA, 0xA5BA, 0x30BB, 0xA5BB, 0x30BC, 0xA5BC, 0x30BD, 0xA5BD, 0x30BE, 0xA5BE, 0x30BF, 0xA5BF, 0x30C0, 0xA5C0, + 0x30C1, 0xA5C1, 0x30C2, 0xA5C2, 0x30C3, 0xA5C3, 0x30C4, 0xA5C4, 0x30C5, 0xA5C5, 0x30C6, 0xA5C6, 0x30C7, 0xA5C7, 0x30C8, 0xA5C8, + 0x30C9, 0xA5C9, 0x30CA, 0xA5CA, 0x30CB, 0xA5CB, 0x30CC, 0xA5CC, 0x30CD, 0xA5CD, 0x30CE, 0xA5CE, 0x30CF, 0xA5CF, 0x30D0, 0xA5D0, + 0x30D1, 0xA5D1, 0x30D2, 0xA5D2, 0x30D3, 0xA5D3, 0x30D4, 0xA5D4, 0x30D5, 0xA5D5, 0x30D6, 0xA5D6, 0x30D7, 0xA5D7, 0x30D8, 0xA5D8, + 0x30D9, 0xA5D9, 0x30DA, 0xA5DA, 0x30DB, 0xA5DB, 0x30DC, 0xA5DC, 0x30DD, 0xA5DD, 0x30DE, 0xA5DE, 0x30DF, 0xA5DF, 0x30E0, 0xA5E0, + 0x30E1, 0xA5E1, 0x30E2, 0xA5E2, 0x30E3, 0xA5E3, 0x30E4, 0xA5E4, 0x30E5, 0xA5E5, 0x30E6, 0xA5E6, 0x30E7, 0xA5E7, 0x30E8, 0xA5E8, + 0x30E9, 0xA5E9, 0x30EA, 0xA5EA, 0x30EB, 0xA5EB, 0x30EC, 0xA5EC, 0x30ED, 0xA5ED, 0x30EE, 0xA5EE, 0x30EF, 0xA5EF, 0x30F0, 0xA5F0, + 0x30F1, 0xA5F1, 0x30F2, 0xA5F2, 0x30F3, 0xA5F3, 0x30F4, 0xA5F4, 0x30F5, 0xA5F5, 0x30F6, 0xA5F6, 0x30FC, 0xA960, 0x30FD, 0xA963, + 0x30FE, 0xA964, 0x3105, 0xA8C5, 0x3106, 0xA8C6, 0x3107, 0xA8C7, 0x3108, 0xA8C8, 0x3109, 0xA8C9, 0x310A, 0xA8CA, 0x310B, 0xA8CB, + 0x310C, 0xA8CC, 0x310D, 0xA8CD, 0x310E, 0xA8CE, 0x310F, 0xA8CF, 0x3110, 0xA8D0, 0x3111, 0xA8D1, 0x3112, 0xA8D2, 0x3113, 0xA8D3, + 0x3114, 0xA8D4, 0x3115, 0xA8D5, 0x3116, 0xA8D6, 0x3117, 0xA8D7, 0x3118, 0xA8D8, 0x3119, 0xA8D9, 0x311A, 0xA8DA, 0x311B, 0xA8DB, + 0x311C, 0xA8DC, 0x311D, 0xA8DD, 0x311E, 0xA8DE, 0x311F, 0xA8DF, 0x3120, 0xA8E0, 0x3121, 0xA8E1, 0x3122, 0xA8E2, 0x3123, 0xA8E3, + 0x3124, 0xA8E4, 0x3125, 0xA8E5, 0x3126, 0xA8E6, 0x3127, 0xA8E7, 0x3128, 0xA8E8, 0x3129, 0xA8E9, 0x3220, 0xA2E5, 0x3221, 0xA2E6, + 0x3222, 0xA2E7, 0x3223, 0xA2E8, 0x3224, 0xA2E9, 0x3225, 0xA2EA, 0x3226, 0xA2EB, 0x3227, 0xA2EC, 0x3228, 0xA2ED, 0x3229, 0xA2EE, + 0x3231, 0xA95A, 0x32A3, 0xA949, 0x338E, 0xA94A, 0x338F, 0xA94B, 0x339C, 0xA94C, 0x339D, 0xA94D, 0x339E, 0xA94E, 0x33A1, 0xA94F, + 0x33C4, 0xA950, 0x33CE, 0xA951, 0x33D1, 0xA952, 0x33D2, 0xA953, 0x33D5, 0xA954, 0x4E00, 0xD2BB, 0x4E01, 0xB6A1, 0x4E02, 0x8140, + 0x4E03, 0xC6DF, 0x4E04, 0x8141, 0x4E05, 0x8142, 0x4E06, 0x8143, 0x4E07, 0xCDF2, 0x4E08, 0xD5C9, 0x4E09, 0xC8FD, 0x4E0A, 0xC9CF, + 0x4E0B, 0xCFC2, 0x4E0C, 0xD8A2, 0x4E0D, 0xB2BB, 0x4E0E, 0xD3EB, 0x4E0F, 0x8144, 0x4E10, 0xD8A4, 0x4E11, 0xB3F3, 0x4E12, 0x8145, + 0x4E13, 0xD7A8, 0x4E14, 0xC7D2, 0x4E15, 0xD8A7, 0x4E16, 0xCAC0, 0x4E17, 0x8146, 0x4E18, 0xC7F0, 0x4E19, 0xB1FB, 0x4E1A, 0xD2B5, + 0x4E1B, 0xB4D4, 0x4E1C, 0xB6AB, 0x4E1D, 0xCBBF, 0x4E1E, 0xD8A9, 0x4E1F, 0x8147, 0x4E20, 0x8148, 0x4E21, 0x8149, 0x4E22, 0xB6AA, + 0x4E23, 0x814A, 0x4E24, 0xC1BD, 0x4E25, 0xD1CF, 0x4E26, 0x814B, 0x4E27, 0xC9A5, 0x4E28, 0xD8AD, 0x4E29, 0x814C, 0x4E2A, 0xB8F6, + 0x4E2B, 0xD1BE, 0x4E2C, 0xE3DC, 0x4E2D, 0xD6D0, 0x4E2E, 0x814D, 0x4E2F, 0x814E, 0x4E30, 0xB7E1, 0x4E31, 0x814F, 0x4E32, 0xB4AE, + 0x4E33, 0x8150, 0x4E34, 0xC1D9, 0x4E35, 0x8151, 0x4E36, 0xD8BC, 0x4E37, 0x8152, 0x4E38, 0xCDE8, 0x4E39, 0xB5A4, 0x4E3A, 0xCEAA, + 0x4E3B, 0xD6F7, 0x4E3C, 0x8153, 0x4E3D, 0xC0F6, 0x4E3E, 0xBED9, 0x4E3F, 0xD8AF, 0x4E40, 0x8154, 0x4E41, 0x8155, 0x4E42, 0x8156, + 0x4E43, 0xC4CB, 0x4E44, 0x8157, 0x4E45, 0xBEC3, 0x4E46, 0x8158, 0x4E47, 0xD8B1, 0x4E48, 0xC3B4, 0x4E49, 0xD2E5, 0x4E4A, 0x8159, + 0x4E4B, 0xD6AE, 0x4E4C, 0xCEDA, 0x4E4D, 0xD5A7, 0x4E4E, 0xBAF5, 0x4E4F, 0xB7A6, 0x4E50, 0xC0D6, 0x4E51, 0x815A, 0x4E52, 0xC6B9, + 0x4E53, 0xC5D2, 0x4E54, 0xC7C7, 0x4E55, 0x815B, 0x4E56, 0xB9D4, 0x4E57, 0x815C, 0x4E58, 0xB3CB, 0x4E59, 0xD2D2, 0x4E5A, 0x815D, + 0x4E5B, 0x815E, 0x4E5C, 0xD8BF, 0x4E5D, 0xBEC5, 0x4E5E, 0xC6F2, 0x4E5F, 0xD2B2, 0x4E60, 0xCFB0, 0x4E61, 0xCFE7, 0x4E62, 0x815F, + 0x4E63, 0x8160, 0x4E64, 0x8161, 0x4E65, 0x8162, 0x4E66, 0xCAE9, 0x4E67, 0x8163, 0x4E68, 0x8164, 0x4E69, 0xD8C0, 0x4E6A, 0x8165, + 0x4E6B, 0x8166, 0x4E6C, 0x8167, 0x4E6D, 0x8168, 0x4E6E, 0x8169, 0x4E6F, 0x816A, 0x4E70, 0xC2F2, 0x4E71, 0xC2D2, 0x4E72, 0x816B, + 0x4E73, 0xC8E9, 0x4E74, 0x816C, 0x4E75, 0x816D, 0x4E76, 0x816E, 0x4E77, 0x816F, 0x4E78, 0x8170, 0x4E79, 0x8171, 0x4E7A, 0x8172, + 0x4E7B, 0x8173, 0x4E7C, 0x8174, 0x4E7D, 0x8175, 0x4E7E, 0xC7AC, 0x4E7F, 0x8176, 0x4E80, 0x8177, 0x4E81, 0x8178, 0x4E82, 0x8179, + 0x4E83, 0x817A, 0x4E84, 0x817B, 0x4E85, 0x817C, 0x4E86, 0xC1CB, 0x4E87, 0x817D, 0x4E88, 0xD3E8, 0x4E89, 0xD5F9, 0x4E8A, 0x817E, + 0x4E8B, 0xCAC2, 0x4E8C, 0xB6FE, 0x4E8D, 0xD8A1, 0x4E8E, 0xD3DA, 0x4E8F, 0xBFF7, 0x4E90, 0x8180, 0x4E91, 0xD4C6, 0x4E92, 0xBBA5, + 0x4E93, 0xD8C1, 0x4E94, 0xCEE5, 0x4E95, 0xBEAE, 0x4E96, 0x8181, 0x4E97, 0x8182, 0x4E98, 0xD8A8, 0x4E99, 0x8183, 0x4E9A, 0xD1C7, + 0x4E9B, 0xD0A9, 0x4E9C, 0x8184, 0x4E9D, 0x8185, 0x4E9E, 0x8186, 0x4E9F, 0xD8BD, 0x4EA0, 0xD9EF, 0x4EA1, 0xCDF6, 0x4EA2, 0xBFBA, + 0x4EA3, 0x8187, 0x4EA4, 0xBDBB, 0x4EA5, 0xBAA5, 0x4EA6, 0xD2E0, 0x4EA7, 0xB2FA, 0x4EA8, 0xBAE0, 0x4EA9, 0xC4B6, 0x4EAA, 0x8188, + 0x4EAB, 0xCFED, 0x4EAC, 0xBEA9, 0x4EAD, 0xCDA4, 0x4EAE, 0xC1C1, 0x4EAF, 0x8189, 0x4EB0, 0x818A, 0x4EB1, 0x818B, 0x4EB2, 0xC7D7, + 0x4EB3, 0xD9F1, 0x4EB4, 0x818C, 0x4EB5, 0xD9F4, 0x4EB6, 0x818D, 0x4EB7, 0x818E, 0x4EB8, 0x818F, 0x4EB9, 0x8190, 0x4EBA, 0xC8CB, + 0x4EBB, 0xD8E9, 0x4EBC, 0x8191, 0x4EBD, 0x8192, 0x4EBE, 0x8193, 0x4EBF, 0xD2DA, 0x4EC0, 0xCAB2, 0x4EC1, 0xC8CA, 0x4EC2, 0xD8EC, + 0x4EC3, 0xD8EA, 0x4EC4, 0xD8C6, 0x4EC5, 0xBDF6, 0x4EC6, 0xC6CD, 0x4EC7, 0xB3F0, 0x4EC8, 0x8194, 0x4EC9, 0xD8EB, 0x4ECA, 0xBDF1, + 0x4ECB, 0xBDE9, 0x4ECC, 0x8195, 0x4ECD, 0xC8D4, 0x4ECE, 0xB4D3, 0x4ECF, 0x8196, 0x4ED0, 0x8197, 0x4ED1, 0xC2D8, 0x4ED2, 0x8198, + 0x4ED3, 0xB2D6, 0x4ED4, 0xD7D0, 0x4ED5, 0xCACB, 0x4ED6, 0xCBFB, 0x4ED7, 0xD5CC, 0x4ED8, 0xB8B6, 0x4ED9, 0xCFC9, 0x4EDA, 0x8199, + 0x4EDB, 0x819A, 0x4EDC, 0x819B, 0x4EDD, 0xD9DA, 0x4EDE, 0xD8F0, 0x4EDF, 0xC7AA, 0x4EE0, 0x819C, 0x4EE1, 0xD8EE, 0x4EE2, 0x819D, + 0x4EE3, 0xB4FA, 0x4EE4, 0xC1EE, 0x4EE5, 0xD2D4, 0x4EE6, 0x819E, 0x4EE7, 0x819F, 0x4EE8, 0xD8ED, 0x4EE9, 0x81A0, 0x4EEA, 0xD2C7, + 0x4EEB, 0xD8EF, 0x4EEC, 0xC3C7, 0x4EED, 0x81A1, 0x4EEE, 0x81A2, 0x4EEF, 0x81A3, 0x4EF0, 0xD1F6, 0x4EF1, 0x81A4, 0x4EF2, 0xD6D9, + 0x4EF3, 0xD8F2, 0x4EF4, 0x81A5, 0x4EF5, 0xD8F5, 0x4EF6, 0xBCFE, 0x4EF7, 0xBCDB, 0x4EF8, 0x81A6, 0x4EF9, 0x81A7, 0x4EFA, 0x81A8, + 0x4EFB, 0xC8CE, 0x4EFC, 0x81A9, 0x4EFD, 0xB7DD, 0x4EFE, 0x81AA, 0x4EFF, 0xB7C2, 0x4F00, 0x81AB, 0x4F01, 0xC6F3, 0x4F02, 0x81AC, + 0x4F03, 0x81AD, 0x4F04, 0x81AE, 0x4F05, 0x81AF, 0x4F06, 0x81B0, 0x4F07, 0x81B1, 0x4F08, 0x81B2, 0x4F09, 0xD8F8, 0x4F0A, 0xD2C1, + 0x4F0B, 0x81B3, 0x4F0C, 0x81B4, 0x4F0D, 0xCEE9, 0x4F0E, 0xBCBF, 0x4F0F, 0xB7FC, 0x4F10, 0xB7A5, 0x4F11, 0xD0DD, 0x4F12, 0x81B5, + 0x4F13, 0x81B6, 0x4F14, 0x81B7, 0x4F15, 0x81B8, 0x4F16, 0x81B9, 0x4F17, 0xD6DA, 0x4F18, 0xD3C5, 0x4F19, 0xBBEF, 0x4F1A, 0xBBE1, + 0x4F1B, 0xD8F1, 0x4F1C, 0x81BA, 0x4F1D, 0x81BB, 0x4F1E, 0xC9A1, 0x4F1F, 0xCEB0, 0x4F20, 0xB4AB, 0x4F21, 0x81BC, 0x4F22, 0xD8F3, + 0x4F23, 0x81BD, 0x4F24, 0xC9CB, 0x4F25, 0xD8F6, 0x4F26, 0xC2D7, 0x4F27, 0xD8F7, 0x4F28, 0x81BE, 0x4F29, 0x81BF, 0x4F2A, 0xCEB1, + 0x4F2B, 0xD8F9, 0x4F2C, 0x81C0, 0x4F2D, 0x81C1, 0x4F2E, 0x81C2, 0x4F2F, 0xB2AE, 0x4F30, 0xB9C0, 0x4F31, 0x81C3, 0x4F32, 0xD9A3, + 0x4F33, 0x81C4, 0x4F34, 0xB0E9, 0x4F35, 0x81C5, 0x4F36, 0xC1E6, 0x4F37, 0x81C6, 0x4F38, 0xC9EC, 0x4F39, 0x81C7, 0x4F3A, 0xCBC5, + 0x4F3B, 0x81C8, 0x4F3C, 0xCBC6, 0x4F3D, 0xD9A4, 0x4F3E, 0x81C9, 0x4F3F, 0x81CA, 0x4F40, 0x81CB, 0x4F41, 0x81CC, 0x4F42, 0x81CD, + 0x4F43, 0xB5E8, 0x4F44, 0x81CE, 0x4F45, 0x81CF, 0x4F46, 0xB5AB, 0x4F47, 0x81D0, 0x4F48, 0x81D1, 0x4F49, 0x81D2, 0x4F4A, 0x81D3, + 0x4F4B, 0x81D4, 0x4F4C, 0x81D5, 0x4F4D, 0xCEBB, 0x4F4E, 0xB5CD, 0x4F4F, 0xD7A1, 0x4F50, 0xD7F4, 0x4F51, 0xD3D3, 0x4F52, 0x81D6, + 0x4F53, 0xCCE5, 0x4F54, 0x81D7, 0x4F55, 0xBACE, 0x4F56, 0x81D8, 0x4F57, 0xD9A2, 0x4F58, 0xD9DC, 0x4F59, 0xD3E0, 0x4F5A, 0xD8FD, + 0x4F5B, 0xB7F0, 0x4F5C, 0xD7F7, 0x4F5D, 0xD8FE, 0x4F5E, 0xD8FA, 0x4F5F, 0xD9A1, 0x4F60, 0xC4E3, 0x4F61, 0x81D9, 0x4F62, 0x81DA, + 0x4F63, 0xD3B6, 0x4F64, 0xD8F4, 0x4F65, 0xD9DD, 0x4F66, 0x81DB, 0x4F67, 0xD8FB, 0x4F68, 0x81DC, 0x4F69, 0xC5E5, 0x4F6A, 0x81DD, + 0x4F6B, 0x81DE, 0x4F6C, 0xC0D0, 0x4F6D, 0x81DF, 0x4F6E, 0x81E0, 0x4F6F, 0xD1F0, 0x4F70, 0xB0DB, 0x4F71, 0x81E1, 0x4F72, 0x81E2, + 0x4F73, 0xBCD1, 0x4F74, 0xD9A6, 0x4F75, 0x81E3, 0x4F76, 0xD9A5, 0x4F77, 0x81E4, 0x4F78, 0x81E5, 0x4F79, 0x81E6, 0x4F7A, 0x81E7, + 0x4F7B, 0xD9AC, 0x4F7C, 0xD9AE, 0x4F7D, 0x81E8, 0x4F7E, 0xD9AB, 0x4F7F, 0xCAB9, 0x4F80, 0x81E9, 0x4F81, 0x81EA, 0x4F82, 0x81EB, + 0x4F83, 0xD9A9, 0x4F84, 0xD6B6, 0x4F85, 0x81EC, 0x4F86, 0x81ED, 0x4F87, 0x81EE, 0x4F88, 0xB3DE, 0x4F89, 0xD9A8, 0x4F8A, 0x81EF, + 0x4F8B, 0xC0FD, 0x4F8C, 0x81F0, 0x4F8D, 0xCACC, 0x4F8E, 0x81F1, 0x4F8F, 0xD9AA, 0x4F90, 0x81F2, 0x4F91, 0xD9A7, 0x4F92, 0x81F3, + 0x4F93, 0x81F4, 0x4F94, 0xD9B0, 0x4F95, 0x81F5, 0x4F96, 0x81F6, 0x4F97, 0xB6B1, 0x4F98, 0x81F7, 0x4F99, 0x81F8, 0x4F9A, 0x81F9, + 0x4F9B, 0xB9A9, 0x4F9C, 0x81FA, 0x4F9D, 0xD2C0, 0x4F9E, 0x81FB, 0x4F9F, 0x81FC, 0x4FA0, 0xCFC0, 0x4FA1, 0x81FD, 0x4FA2, 0x81FE, + 0x4FA3, 0xC2C2, 0x4FA4, 0x8240, 0x4FA5, 0xBDC4, 0x4FA6, 0xD5EC, 0x4FA7, 0xB2E0, 0x4FA8, 0xC7C8, 0x4FA9, 0xBFEB, 0x4FAA, 0xD9AD, + 0x4FAB, 0x8241, 0x4FAC, 0xD9AF, 0x4FAD, 0x8242, 0x4FAE, 0xCEEA, 0x4FAF, 0xBAEE, 0x4FB0, 0x8243, 0x4FB1, 0x8244, 0x4FB2, 0x8245, + 0x4FB3, 0x8246, 0x4FB4, 0x8247, 0x4FB5, 0xC7D6, 0x4FB6, 0x8248, 0x4FB7, 0x8249, 0x4FB8, 0x824A, 0x4FB9, 0x824B, 0x4FBA, 0x824C, + 0x4FBB, 0x824D, 0x4FBC, 0x824E, 0x4FBD, 0x824F, 0x4FBE, 0x8250, 0x4FBF, 0xB1E3, 0x4FC0, 0x8251, 0x4FC1, 0x8252, 0x4FC2, 0x8253, + 0x4FC3, 0xB4D9, 0x4FC4, 0xB6ED, 0x4FC5, 0xD9B4, 0x4FC6, 0x8254, 0x4FC7, 0x8255, 0x4FC8, 0x8256, 0x4FC9, 0x8257, 0x4FCA, 0xBFA1, + 0x4FCB, 0x8258, 0x4FCC, 0x8259, 0x4FCD, 0x825A, 0x4FCE, 0xD9DE, 0x4FCF, 0xC7CE, 0x4FD0, 0xC0FE, 0x4FD1, 0xD9B8, 0x4FD2, 0x825B, + 0x4FD3, 0x825C, 0x4FD4, 0x825D, 0x4FD5, 0x825E, 0x4FD6, 0x825F, 0x4FD7, 0xCBD7, 0x4FD8, 0xB7FD, 0x4FD9, 0x8260, 0x4FDA, 0xD9B5, + 0x4FDB, 0x8261, 0x4FDC, 0xD9B7, 0x4FDD, 0xB1A3, 0x4FDE, 0xD3E1, 0x4FDF, 0xD9B9, 0x4FE0, 0x8262, 0x4FE1, 0xD0C5, 0x4FE2, 0x8263, + 0x4FE3, 0xD9B6, 0x4FE4, 0x8264, 0x4FE5, 0x8265, 0x4FE6, 0xD9B1, 0x4FE7, 0x8266, 0x4FE8, 0xD9B2, 0x4FE9, 0xC1A9, 0x4FEA, 0xD9B3, + 0x4FEB, 0x8267, 0x4FEC, 0x8268, 0x4FED, 0xBCF3, 0x4FEE, 0xD0DE, 0x4FEF, 0xB8A9, 0x4FF0, 0x8269, 0x4FF1, 0xBEE3, 0x4FF2, 0x826A, + 0x4FF3, 0xD9BD, 0x4FF4, 0x826B, 0x4FF5, 0x826C, 0x4FF6, 0x826D, 0x4FF7, 0x826E, 0x4FF8, 0xD9BA, 0x4FF9, 0x826F, 0x4FFA, 0xB0B3, + 0x4FFB, 0x8270, 0x4FFC, 0x8271, 0x4FFD, 0x8272, 0x4FFE, 0xD9C2, 0x4FFF, 0x8273, 0x5000, 0x8274, 0x5001, 0x8275, 0x5002, 0x8276, + 0x5003, 0x8277, 0x5004, 0x8278, 0x5005, 0x8279, 0x5006, 0x827A, 0x5007, 0x827B, 0x5008, 0x827C, 0x5009, 0x827D, 0x500A, 0x827E, + 0x500B, 0x8280, 0x500C, 0xD9C4, 0x500D, 0xB1B6, 0x500E, 0x8281, 0x500F, 0xD9BF, 0x5010, 0x8282, 0x5011, 0x8283, 0x5012, 0xB5B9, + 0x5013, 0x8284, 0x5014, 0xBEF3, 0x5015, 0x8285, 0x5016, 0x8286, 0x5017, 0x8287, 0x5018, 0xCCC8, 0x5019, 0xBAF2, 0x501A, 0xD2D0, + 0x501B, 0x8288, 0x501C, 0xD9C3, 0x501D, 0x8289, 0x501E, 0x828A, 0x501F, 0xBDE8, 0x5020, 0x828B, 0x5021, 0xB3AB, 0x5022, 0x828C, + 0x5023, 0x828D, 0x5024, 0x828E, 0x5025, 0xD9C5, 0x5026, 0xBEEB, 0x5027, 0x828F, 0x5028, 0xD9C6, 0x5029, 0xD9BB, 0x502A, 0xC4DF, + 0x502B, 0x8290, 0x502C, 0xD9BE, 0x502D, 0xD9C1, 0x502E, 0xD9C0, 0x502F, 0x8291, 0x5030, 0x8292, 0x5031, 0x8293, 0x5032, 0x8294, + 0x5033, 0x8295, 0x5034, 0x8296, 0x5035, 0x8297, 0x5036, 0x8298, 0x5037, 0x8299, 0x5038, 0x829A, 0x5039, 0x829B, 0x503A, 0xD5AE, + 0x503B, 0x829C, 0x503C, 0xD6B5, 0x503D, 0x829D, 0x503E, 0xC7E3, 0x503F, 0x829E, 0x5040, 0x829F, 0x5041, 0x82A0, 0x5042, 0x82A1, + 0x5043, 0xD9C8, 0x5044, 0x82A2, 0x5045, 0x82A3, 0x5046, 0x82A4, 0x5047, 0xBCD9, 0x5048, 0xD9CA, 0x5049, 0x82A5, 0x504A, 0x82A6, + 0x504B, 0x82A7, 0x504C, 0xD9BC, 0x504D, 0x82A8, 0x504E, 0xD9CB, 0x504F, 0xC6AB, 0x5050, 0x82A9, 0x5051, 0x82AA, 0x5052, 0x82AB, + 0x5053, 0x82AC, 0x5054, 0x82AD, 0x5055, 0xD9C9, 0x5056, 0x82AE, 0x5057, 0x82AF, 0x5058, 0x82B0, 0x5059, 0x82B1, 0x505A, 0xD7F6, + 0x505B, 0x82B2, 0x505C, 0xCDA3, 0x505D, 0x82B3, 0x505E, 0x82B4, 0x505F, 0x82B5, 0x5060, 0x82B6, 0x5061, 0x82B7, 0x5062, 0x82B8, + 0x5063, 0x82B9, 0x5064, 0x82BA, 0x5065, 0xBDA1, 0x5066, 0x82BB, 0x5067, 0x82BC, 0x5068, 0x82BD, 0x5069, 0x82BE, 0x506A, 0x82BF, + 0x506B, 0x82C0, 0x506C, 0xD9CC, 0x506D, 0x82C1, 0x506E, 0x82C2, 0x506F, 0x82C3, 0x5070, 0x82C4, 0x5071, 0x82C5, 0x5072, 0x82C6, + 0x5073, 0x82C7, 0x5074, 0x82C8, 0x5075, 0x82C9, 0x5076, 0xC5BC, 0x5077, 0xCDB5, 0x5078, 0x82CA, 0x5079, 0x82CB, 0x507A, 0x82CC, + 0x507B, 0xD9CD, 0x507C, 0x82CD, 0x507D, 0x82CE, 0x507E, 0xD9C7, 0x507F, 0xB3A5, 0x5080, 0xBFFE, 0x5081, 0x82CF, 0x5082, 0x82D0, + 0x5083, 0x82D1, 0x5084, 0x82D2, 0x5085, 0xB8B5, 0x5086, 0x82D3, 0x5087, 0x82D4, 0x5088, 0xC0FC, 0x5089, 0x82D5, 0x508A, 0x82D6, + 0x508B, 0x82D7, 0x508C, 0x82D8, 0x508D, 0xB0F8, 0x508E, 0x82D9, 0x508F, 0x82DA, 0x5090, 0x82DB, 0x5091, 0x82DC, 0x5092, 0x82DD, + 0x5093, 0x82DE, 0x5094, 0x82DF, 0x5095, 0x82E0, 0x5096, 0x82E1, 0x5097, 0x82E2, 0x5098, 0x82E3, 0x5099, 0x82E4, 0x509A, 0x82E5, + 0x509B, 0x82E6, 0x509C, 0x82E7, 0x509D, 0x82E8, 0x509E, 0x82E9, 0x509F, 0x82EA, 0x50A0, 0x82EB, 0x50A1, 0x82EC, 0x50A2, 0x82ED, + 0x50A3, 0xB4F6, 0x50A4, 0x82EE, 0x50A5, 0xD9CE, 0x50A6, 0x82EF, 0x50A7, 0xD9CF, 0x50A8, 0xB4A2, 0x50A9, 0xD9D0, 0x50AA, 0x82F0, + 0x50AB, 0x82F1, 0x50AC, 0xB4DF, 0x50AD, 0x82F2, 0x50AE, 0x82F3, 0x50AF, 0x82F4, 0x50B0, 0x82F5, 0x50B1, 0x82F6, 0x50B2, 0xB0C1, + 0x50B3, 0x82F7, 0x50B4, 0x82F8, 0x50B5, 0x82F9, 0x50B6, 0x82FA, 0x50B7, 0x82FB, 0x50B8, 0x82FC, 0x50B9, 0x82FD, 0x50BA, 0xD9D1, + 0x50BB, 0xC9B5, 0x50BC, 0x82FE, 0x50BD, 0x8340, 0x50BE, 0x8341, 0x50BF, 0x8342, 0x50C0, 0x8343, 0x50C1, 0x8344, 0x50C2, 0x8345, + 0x50C3, 0x8346, 0x50C4, 0x8347, 0x50C5, 0x8348, 0x50C6, 0x8349, 0x50C7, 0x834A, 0x50C8, 0x834B, 0x50C9, 0x834C, 0x50CA, 0x834D, + 0x50CB, 0x834E, 0x50CC, 0x834F, 0x50CD, 0x8350, 0x50CE, 0x8351, 0x50CF, 0xCFF1, 0x50D0, 0x8352, 0x50D1, 0x8353, 0x50D2, 0x8354, + 0x50D3, 0x8355, 0x50D4, 0x8356, 0x50D5, 0x8357, 0x50D6, 0xD9D2, 0x50D7, 0x8358, 0x50D8, 0x8359, 0x50D9, 0x835A, 0x50DA, 0xC1C5, + 0x50DB, 0x835B, 0x50DC, 0x835C, 0x50DD, 0x835D, 0x50DE, 0x835E, 0x50DF, 0x835F, 0x50E0, 0x8360, 0x50E1, 0x8361, 0x50E2, 0x8362, + 0x50E3, 0x8363, 0x50E4, 0x8364, 0x50E5, 0x8365, 0x50E6, 0xD9D6, 0x50E7, 0xC9AE, 0x50E8, 0x8366, 0x50E9, 0x8367, 0x50EA, 0x8368, + 0x50EB, 0x8369, 0x50EC, 0xD9D5, 0x50ED, 0xD9D4, 0x50EE, 0xD9D7, 0x50EF, 0x836A, 0x50F0, 0x836B, 0x50F1, 0x836C, 0x50F2, 0x836D, + 0x50F3, 0xCBDB, 0x50F4, 0x836E, 0x50F5, 0xBDA9, 0x50F6, 0x836F, 0x50F7, 0x8370, 0x50F8, 0x8371, 0x50F9, 0x8372, 0x50FA, 0x8373, + 0x50FB, 0xC6A7, 0x50FC, 0x8374, 0x50FD, 0x8375, 0x50FE, 0x8376, 0x50FF, 0x8377, 0x5100, 0x8378, 0x5101, 0x8379, 0x5102, 0x837A, + 0x5103, 0x837B, 0x5104, 0x837C, 0x5105, 0x837D, 0x5106, 0xD9D3, 0x5107, 0xD9D8, 0x5108, 0x837E, 0x5109, 0x8380, 0x510A, 0x8381, + 0x510B, 0xD9D9, 0x510C, 0x8382, 0x510D, 0x8383, 0x510E, 0x8384, 0x510F, 0x8385, 0x5110, 0x8386, 0x5111, 0x8387, 0x5112, 0xC8E5, + 0x5113, 0x8388, 0x5114, 0x8389, 0x5115, 0x838A, 0x5116, 0x838B, 0x5117, 0x838C, 0x5118, 0x838D, 0x5119, 0x838E, 0x511A, 0x838F, + 0x511B, 0x8390, 0x511C, 0x8391, 0x511D, 0x8392, 0x511E, 0x8393, 0x511F, 0x8394, 0x5120, 0x8395, 0x5121, 0xC0DC, 0x5122, 0x8396, + 0x5123, 0x8397, 0x5124, 0x8398, 0x5125, 0x8399, 0x5126, 0x839A, 0x5127, 0x839B, 0x5128, 0x839C, 0x5129, 0x839D, 0x512A, 0x839E, + 0x512B, 0x839F, 0x512C, 0x83A0, 0x512D, 0x83A1, 0x512E, 0x83A2, 0x512F, 0x83A3, 0x5130, 0x83A4, 0x5131, 0x83A5, 0x5132, 0x83A6, + 0x5133, 0x83A7, 0x5134, 0x83A8, 0x5135, 0x83A9, 0x5136, 0x83AA, 0x5137, 0x83AB, 0x5138, 0x83AC, 0x5139, 0x83AD, 0x513A, 0x83AE, + 0x513B, 0x83AF, 0x513C, 0x83B0, 0x513D, 0x83B1, 0x513E, 0x83B2, 0x513F, 0xB6F9, 0x5140, 0xD8A3, 0x5141, 0xD4CA, 0x5142, 0x83B3, + 0x5143, 0xD4AA, 0x5144, 0xD0D6, 0x5145, 0xB3E4, 0x5146, 0xD5D7, 0x5147, 0x83B4, 0x5148, 0xCFC8, 0x5149, 0xB9E2, 0x514A, 0x83B5, + 0x514B, 0xBFCB, 0x514C, 0x83B6, 0x514D, 0xC3E2, 0x514E, 0x83B7, 0x514F, 0x83B8, 0x5150, 0x83B9, 0x5151, 0xB6D2, 0x5152, 0x83BA, + 0x5153, 0x83BB, 0x5154, 0xCDC3, 0x5155, 0xD9EE, 0x5156, 0xD9F0, 0x5157, 0x83BC, 0x5158, 0x83BD, 0x5159, 0x83BE, 0x515A, 0xB5B3, + 0x515B, 0x83BF, 0x515C, 0xB6B5, 0x515D, 0x83C0, 0x515E, 0x83C1, 0x515F, 0x83C2, 0x5160, 0x83C3, 0x5161, 0x83C4, 0x5162, 0xBEA4, + 0x5163, 0x83C5, 0x5164, 0x83C6, 0x5165, 0xC8EB, 0x5166, 0x83C7, 0x5167, 0x83C8, 0x5168, 0xC8AB, 0x5169, 0x83C9, 0x516A, 0x83CA, + 0x516B, 0xB0CB, 0x516C, 0xB9AB, 0x516D, 0xC1F9, 0x516E, 0xD9E2, 0x516F, 0x83CB, 0x5170, 0xC0BC, 0x5171, 0xB9B2, 0x5172, 0x83CC, + 0x5173, 0xB9D8, 0x5174, 0xD0CB, 0x5175, 0xB1F8, 0x5176, 0xC6E4, 0x5177, 0xBEDF, 0x5178, 0xB5E4, 0x5179, 0xD7C8, 0x517A, 0x83CD, + 0x517B, 0xD1F8, 0x517C, 0xBCE6, 0x517D, 0xCADE, 0x517E, 0x83CE, 0x517F, 0x83CF, 0x5180, 0xBCBD, 0x5181, 0xD9E6, 0x5182, 0xD8E7, + 0x5183, 0x83D0, 0x5184, 0x83D1, 0x5185, 0xC4DA, 0x5186, 0x83D2, 0x5187, 0x83D3, 0x5188, 0xB8D4, 0x5189, 0xC8BD, 0x518A, 0x83D4, + 0x518B, 0x83D5, 0x518C, 0xB2E1, 0x518D, 0xD4D9, 0x518E, 0x83D6, 0x518F, 0x83D7, 0x5190, 0x83D8, 0x5191, 0x83D9, 0x5192, 0xC3B0, + 0x5193, 0x83DA, 0x5194, 0x83DB, 0x5195, 0xC3E1, 0x5196, 0xDAA2, 0x5197, 0xC8DF, 0x5198, 0x83DC, 0x5199, 0xD0B4, 0x519A, 0x83DD, + 0x519B, 0xBEFC, 0x519C, 0xC5A9, 0x519D, 0x83DE, 0x519E, 0x83DF, 0x519F, 0x83E0, 0x51A0, 0xB9DA, 0x51A1, 0x83E1, 0x51A2, 0xDAA3, + 0x51A3, 0x83E2, 0x51A4, 0xD4A9, 0x51A5, 0xDAA4, 0x51A6, 0x83E3, 0x51A7, 0x83E4, 0x51A8, 0x83E5, 0x51A9, 0x83E6, 0x51AA, 0x83E7, + 0x51AB, 0xD9FB, 0x51AC, 0xB6AC, 0x51AD, 0x83E8, 0x51AE, 0x83E9, 0x51AF, 0xB7EB, 0x51B0, 0xB1F9, 0x51B1, 0xD9FC, 0x51B2, 0xB3E5, + 0x51B3, 0xBEF6, 0x51B4, 0x83EA, 0x51B5, 0xBFF6, 0x51B6, 0xD2B1, 0x51B7, 0xC0E4, 0x51B8, 0x83EB, 0x51B9, 0x83EC, 0x51BA, 0x83ED, + 0x51BB, 0xB6B3, 0x51BC, 0xD9FE, 0x51BD, 0xD9FD, 0x51BE, 0x83EE, 0x51BF, 0x83EF, 0x51C0, 0xBEBB, 0x51C1, 0x83F0, 0x51C2, 0x83F1, + 0x51C3, 0x83F2, 0x51C4, 0xC6E0, 0x51C5, 0x83F3, 0x51C6, 0xD7BC, 0x51C7, 0xDAA1, 0x51C8, 0x83F4, 0x51C9, 0xC1B9, 0x51CA, 0x83F5, + 0x51CB, 0xB5F2, 0x51CC, 0xC1E8, 0x51CD, 0x83F6, 0x51CE, 0x83F7, 0x51CF, 0xBCF5, 0x51D0, 0x83F8, 0x51D1, 0xB4D5, 0x51D2, 0x83F9, + 0x51D3, 0x83FA, 0x51D4, 0x83FB, 0x51D5, 0x83FC, 0x51D6, 0x83FD, 0x51D7, 0x83FE, 0x51D8, 0x8440, 0x51D9, 0x8441, 0x51DA, 0x8442, + 0x51DB, 0xC1DD, 0x51DC, 0x8443, 0x51DD, 0xC4FD, 0x51DE, 0x8444, 0x51DF, 0x8445, 0x51E0, 0xBCB8, 0x51E1, 0xB7B2, 0x51E2, 0x8446, + 0x51E3, 0x8447, 0x51E4, 0xB7EF, 0x51E5, 0x8448, 0x51E6, 0x8449, 0x51E7, 0x844A, 0x51E8, 0x844B, 0x51E9, 0x844C, 0x51EA, 0x844D, + 0x51EB, 0xD9EC, 0x51EC, 0x844E, 0x51ED, 0xC6BE, 0x51EE, 0x844F, 0x51EF, 0xBFAD, 0x51F0, 0xBBCB, 0x51F1, 0x8450, 0x51F2, 0x8451, + 0x51F3, 0xB5CA, 0x51F4, 0x8452, 0x51F5, 0xDBC9, 0x51F6, 0xD0D7, 0x51F7, 0x8453, 0x51F8, 0xCDB9, 0x51F9, 0xB0BC, 0x51FA, 0xB3F6, + 0x51FB, 0xBBF7, 0x51FC, 0xDBCA, 0x51FD, 0xBAAF, 0x51FE, 0x8454, 0x51FF, 0xD4E4, 0x5200, 0xB5B6, 0x5201, 0xB5F3, 0x5202, 0xD8D6, + 0x5203, 0xC8D0, 0x5204, 0x8455, 0x5205, 0x8456, 0x5206, 0xB7D6, 0x5207, 0xC7D0, 0x5208, 0xD8D7, 0x5209, 0x8457, 0x520A, 0xBFAF, + 0x520B, 0x8458, 0x520C, 0x8459, 0x520D, 0xDBBB, 0x520E, 0xD8D8, 0x520F, 0x845A, 0x5210, 0x845B, 0x5211, 0xD0CC, 0x5212, 0xBBAE, + 0x5213, 0x845C, 0x5214, 0x845D, 0x5215, 0x845E, 0x5216, 0xEBBE, 0x5217, 0xC1D0, 0x5218, 0xC1F5, 0x5219, 0xD4F2, 0x521A, 0xB8D5, + 0x521B, 0xB4B4, 0x521C, 0x845F, 0x521D, 0xB3F5, 0x521E, 0x8460, 0x521F, 0x8461, 0x5220, 0xC9BE, 0x5221, 0x8462, 0x5222, 0x8463, + 0x5223, 0x8464, 0x5224, 0xC5D0, 0x5225, 0x8465, 0x5226, 0x8466, 0x5227, 0x8467, 0x5228, 0xC5D9, 0x5229, 0xC0FB, 0x522A, 0x8468, + 0x522B, 0xB1F0, 0x522C, 0x8469, 0x522D, 0xD8D9, 0x522E, 0xB9CE, 0x522F, 0x846A, 0x5230, 0xB5BD, 0x5231, 0x846B, 0x5232, 0x846C, + 0x5233, 0xD8DA, 0x5234, 0x846D, 0x5235, 0x846E, 0x5236, 0xD6C6, 0x5237, 0xCBA2, 0x5238, 0xC8AF, 0x5239, 0xC9B2, 0x523A, 0xB4CC, + 0x523B, 0xBFCC, 0x523C, 0x846F, 0x523D, 0xB9F4, 0x523E, 0x8470, 0x523F, 0xD8DB, 0x5240, 0xD8DC, 0x5241, 0xB6E7, 0x5242, 0xBCC1, + 0x5243, 0xCCEA, 0x5244, 0x8471, 0x5245, 0x8472, 0x5246, 0x8473, 0x5247, 0x8474, 0x5248, 0x8475, 0x5249, 0x8476, 0x524A, 0xCFF7, + 0x524B, 0x8477, 0x524C, 0xD8DD, 0x524D, 0xC7B0, 0x524E, 0x8478, 0x524F, 0x8479, 0x5250, 0xB9D0, 0x5251, 0xBDA3, 0x5252, 0x847A, + 0x5253, 0x847B, 0x5254, 0xCCDE, 0x5255, 0x847C, 0x5256, 0xC6CA, 0x5257, 0x847D, 0x5258, 0x847E, 0x5259, 0x8480, 0x525A, 0x8481, + 0x525B, 0x8482, 0x525C, 0xD8E0, 0x525D, 0x8483, 0x525E, 0xD8DE, 0x525F, 0x8484, 0x5260, 0x8485, 0x5261, 0xD8DF, 0x5262, 0x8486, + 0x5263, 0x8487, 0x5264, 0x8488, 0x5265, 0xB0FE, 0x5266, 0x8489, 0x5267, 0xBEE7, 0x5268, 0x848A, 0x5269, 0xCAA3, 0x526A, 0xBCF4, + 0x526B, 0x848B, 0x526C, 0x848C, 0x526D, 0x848D, 0x526E, 0x848E, 0x526F, 0xB8B1, 0x5270, 0x848F, 0x5271, 0x8490, 0x5272, 0xB8EE, + 0x5273, 0x8491, 0x5274, 0x8492, 0x5275, 0x8493, 0x5276, 0x8494, 0x5277, 0x8495, 0x5278, 0x8496, 0x5279, 0x8497, 0x527A, 0x8498, + 0x527B, 0x8499, 0x527C, 0x849A, 0x527D, 0xD8E2, 0x527E, 0x849B, 0x527F, 0xBDCB, 0x5280, 0x849C, 0x5281, 0xD8E4, 0x5282, 0xD8E3, + 0x5283, 0x849D, 0x5284, 0x849E, 0x5285, 0x849F, 0x5286, 0x84A0, 0x5287, 0x84A1, 0x5288, 0xC5FC, 0x5289, 0x84A2, 0x528A, 0x84A3, + 0x528B, 0x84A4, 0x528C, 0x84A5, 0x528D, 0x84A6, 0x528E, 0x84A7, 0x528F, 0x84A8, 0x5290, 0xD8E5, 0x5291, 0x84A9, 0x5292, 0x84AA, + 0x5293, 0xD8E6, 0x5294, 0x84AB, 0x5295, 0x84AC, 0x5296, 0x84AD, 0x5297, 0x84AE, 0x5298, 0x84AF, 0x5299, 0x84B0, 0x529A, 0x84B1, + 0x529B, 0xC1A6, 0x529C, 0x84B2, 0x529D, 0xC8B0, 0x529E, 0xB0EC, 0x529F, 0xB9A6, 0x52A0, 0xBCD3, 0x52A1, 0xCEF1, 0x52A2, 0xDBBD, + 0x52A3, 0xC1D3, 0x52A4, 0x84B3, 0x52A5, 0x84B4, 0x52A6, 0x84B5, 0x52A7, 0x84B6, 0x52A8, 0xB6AF, 0x52A9, 0xD6FA, 0x52AA, 0xC5AC, + 0x52AB, 0xBDD9, 0x52AC, 0xDBBE, 0x52AD, 0xDBBF, 0x52AE, 0x84B7, 0x52AF, 0x84B8, 0x52B0, 0x84B9, 0x52B1, 0xC0F8, 0x52B2, 0xBEA2, + 0x52B3, 0xC0CD, 0x52B4, 0x84BA, 0x52B5, 0x84BB, 0x52B6, 0x84BC, 0x52B7, 0x84BD, 0x52B8, 0x84BE, 0x52B9, 0x84BF, 0x52BA, 0x84C0, + 0x52BB, 0x84C1, 0x52BC, 0x84C2, 0x52BD, 0x84C3, 0x52BE, 0xDBC0, 0x52BF, 0xCAC6, 0x52C0, 0x84C4, 0x52C1, 0x84C5, 0x52C2, 0x84C6, + 0x52C3, 0xB2AA, 0x52C4, 0x84C7, 0x52C5, 0x84C8, 0x52C6, 0x84C9, 0x52C7, 0xD3C2, 0x52C8, 0x84CA, 0x52C9, 0xC3E3, 0x52CA, 0x84CB, + 0x52CB, 0xD1AB, 0x52CC, 0x84CC, 0x52CD, 0x84CD, 0x52CE, 0x84CE, 0x52CF, 0x84CF, 0x52D0, 0xDBC2, 0x52D1, 0x84D0, 0x52D2, 0xC0D5, + 0x52D3, 0x84D1, 0x52D4, 0x84D2, 0x52D5, 0x84D3, 0x52D6, 0xDBC3, 0x52D7, 0x84D4, 0x52D8, 0xBFB1, 0x52D9, 0x84D5, 0x52DA, 0x84D6, + 0x52DB, 0x84D7, 0x52DC, 0x84D8, 0x52DD, 0x84D9, 0x52DE, 0x84DA, 0x52DF, 0xC4BC, 0x52E0, 0x84DB, 0x52E1, 0x84DC, 0x52E2, 0x84DD, + 0x52E3, 0x84DE, 0x52E4, 0xC7DA, 0x52E5, 0x84DF, 0x52E6, 0x84E0, 0x52E7, 0x84E1, 0x52E8, 0x84E2, 0x52E9, 0x84E3, 0x52EA, 0x84E4, + 0x52EB, 0x84E5, 0x52EC, 0x84E6, 0x52ED, 0x84E7, 0x52EE, 0x84E8, 0x52EF, 0x84E9, 0x52F0, 0xDBC4, 0x52F1, 0x84EA, 0x52F2, 0x84EB, + 0x52F3, 0x84EC, 0x52F4, 0x84ED, 0x52F5, 0x84EE, 0x52F6, 0x84EF, 0x52F7, 0x84F0, 0x52F8, 0x84F1, 0x52F9, 0xD9E8, 0x52FA, 0xC9D7, + 0x52FB, 0x84F2, 0x52FC, 0x84F3, 0x52FD, 0x84F4, 0x52FE, 0xB9B4, 0x52FF, 0xCEF0, 0x5300, 0xD4C8, 0x5301, 0x84F5, 0x5302, 0x84F6, + 0x5303, 0x84F7, 0x5304, 0x84F8, 0x5305, 0xB0FC, 0x5306, 0xB4D2, 0x5307, 0x84F9, 0x5308, 0xD0D9, 0x5309, 0x84FA, 0x530A, 0x84FB, + 0x530B, 0x84FC, 0x530C, 0x84FD, 0x530D, 0xD9E9, 0x530E, 0x84FE, 0x530F, 0xDECB, 0x5310, 0xD9EB, 0x5311, 0x8540, 0x5312, 0x8541, + 0x5313, 0x8542, 0x5314, 0x8543, 0x5315, 0xD8B0, 0x5316, 0xBBAF, 0x5317, 0xB1B1, 0x5318, 0x8544, 0x5319, 0xB3D7, 0x531A, 0xD8CE, + 0x531B, 0x8545, 0x531C, 0x8546, 0x531D, 0xD4D1, 0x531E, 0x8547, 0x531F, 0x8548, 0x5320, 0xBDB3, 0x5321, 0xBFEF, 0x5322, 0x8549, + 0x5323, 0xCFBB, 0x5324, 0x854A, 0x5325, 0x854B, 0x5326, 0xD8D0, 0x5327, 0x854C, 0x5328, 0x854D, 0x5329, 0x854E, 0x532A, 0xB7CB, + 0x532B, 0x854F, 0x532C, 0x8550, 0x532D, 0x8551, 0x532E, 0xD8D1, 0x532F, 0x8552, 0x5330, 0x8553, 0x5331, 0x8554, 0x5332, 0x8555, + 0x5333, 0x8556, 0x5334, 0x8557, 0x5335, 0x8558, 0x5336, 0x8559, 0x5337, 0x855A, 0x5338, 0x855B, 0x5339, 0xC6A5, 0x533A, 0xC7F8, + 0x533B, 0xD2BD, 0x533C, 0x855C, 0x533D, 0x855D, 0x533E, 0xD8D2, 0x533F, 0xC4E4, 0x5340, 0x855E, 0x5341, 0xCAAE, 0x5342, 0x855F, + 0x5343, 0xC7A7, 0x5344, 0x8560, 0x5345, 0xD8A6, 0x5346, 0x8561, 0x5347, 0xC9FD, 0x5348, 0xCEE7, 0x5349, 0xBBDC, 0x534A, 0xB0EB, + 0x534B, 0x8562, 0x534C, 0x8563, 0x534D, 0x8564, 0x534E, 0xBBAA, 0x534F, 0xD0AD, 0x5350, 0x8565, 0x5351, 0xB1B0, 0x5352, 0xD7E4, + 0x5353, 0xD7BF, 0x5354, 0x8566, 0x5355, 0xB5A5, 0x5356, 0xC2F4, 0x5357, 0xC4CF, 0x5358, 0x8567, 0x5359, 0x8568, 0x535A, 0xB2A9, + 0x535B, 0x8569, 0x535C, 0xB2B7, 0x535D, 0x856A, 0x535E, 0xB1E5, 0x535F, 0xDFB2, 0x5360, 0xD5BC, 0x5361, 0xBFA8, 0x5362, 0xC2AC, + 0x5363, 0xD8D5, 0x5364, 0xC2B1, 0x5365, 0x856B, 0x5366, 0xD8D4, 0x5367, 0xCED4, 0x5368, 0x856C, 0x5369, 0xDAE0, 0x536A, 0x856D, + 0x536B, 0xCEC0, 0x536C, 0x856E, 0x536D, 0x856F, 0x536E, 0xD8B4, 0x536F, 0xC3AE, 0x5370, 0xD3A1, 0x5371, 0xCEA3, 0x5372, 0x8570, + 0x5373, 0xBCB4, 0x5374, 0xC8B4, 0x5375, 0xC2D1, 0x5376, 0x8571, 0x5377, 0xBEED, 0x5378, 0xD0B6, 0x5379, 0x8572, 0x537A, 0xDAE1, + 0x537B, 0x8573, 0x537C, 0x8574, 0x537D, 0x8575, 0x537E, 0x8576, 0x537F, 0xC7E4, 0x5380, 0x8577, 0x5381, 0x8578, 0x5382, 0xB3A7, + 0x5383, 0x8579, 0x5384, 0xB6F2, 0x5385, 0xCCFC, 0x5386, 0xC0FA, 0x5387, 0x857A, 0x5388, 0x857B, 0x5389, 0xC0F7, 0x538A, 0x857C, + 0x538B, 0xD1B9, 0x538C, 0xD1E1, 0x538D, 0xD8C7, 0x538E, 0x857D, 0x538F, 0x857E, 0x5390, 0x8580, 0x5391, 0x8581, 0x5392, 0x8582, + 0x5393, 0x8583, 0x5394, 0x8584, 0x5395, 0xB2DE, 0x5396, 0x8585, 0x5397, 0x8586, 0x5398, 0xC0E5, 0x5399, 0x8587, 0x539A, 0xBAF1, + 0x539B, 0x8588, 0x539C, 0x8589, 0x539D, 0xD8C8, 0x539E, 0x858A, 0x539F, 0xD4AD, 0x53A0, 0x858B, 0x53A1, 0x858C, 0x53A2, 0xCFE1, + 0x53A3, 0xD8C9, 0x53A4, 0x858D, 0x53A5, 0xD8CA, 0x53A6, 0xCFC3, 0x53A7, 0x858E, 0x53A8, 0xB3F8, 0x53A9, 0xBEC7, 0x53AA, 0x858F, + 0x53AB, 0x8590, 0x53AC, 0x8591, 0x53AD, 0x8592, 0x53AE, 0xD8CB, 0x53AF, 0x8593, 0x53B0, 0x8594, 0x53B1, 0x8595, 0x53B2, 0x8596, + 0x53B3, 0x8597, 0x53B4, 0x8598, 0x53B5, 0x8599, 0x53B6, 0xDBCC, 0x53B7, 0x859A, 0x53B8, 0x859B, 0x53B9, 0x859C, 0x53BA, 0x859D, + 0x53BB, 0xC8A5, 0x53BC, 0x859E, 0x53BD, 0x859F, 0x53BE, 0x85A0, 0x53BF, 0xCFD8, 0x53C0, 0x85A1, 0x53C1, 0xC8FE, 0x53C2, 0xB2CE, + 0x53C3, 0x85A2, 0x53C4, 0x85A3, 0x53C5, 0x85A4, 0x53C6, 0x85A5, 0x53C7, 0x85A6, 0x53C8, 0xD3D6, 0x53C9, 0xB2E6, 0x53CA, 0xBCB0, + 0x53CB, 0xD3D1, 0x53CC, 0xCBAB, 0x53CD, 0xB7B4, 0x53CE, 0x85A7, 0x53CF, 0x85A8, 0x53D0, 0x85A9, 0x53D1, 0xB7A2, 0x53D2, 0x85AA, + 0x53D3, 0x85AB, 0x53D4, 0xCAE5, 0x53D5, 0x85AC, 0x53D6, 0xC8A1, 0x53D7, 0xCADC, 0x53D8, 0xB1E4, 0x53D9, 0xD0F0, 0x53DA, 0x85AD, + 0x53DB, 0xC5D1, 0x53DC, 0x85AE, 0x53DD, 0x85AF, 0x53DE, 0x85B0, 0x53DF, 0xDBC5, 0x53E0, 0xB5FE, 0x53E1, 0x85B1, 0x53E2, 0x85B2, + 0x53E3, 0xBFDA, 0x53E4, 0xB9C5, 0x53E5, 0xBEE4, 0x53E6, 0xC1ED, 0x53E7, 0x85B3, 0x53E8, 0xDFB6, 0x53E9, 0xDFB5, 0x53EA, 0xD6BB, + 0x53EB, 0xBDD0, 0x53EC, 0xD5D9, 0x53ED, 0xB0C8, 0x53EE, 0xB6A3, 0x53EF, 0xBFC9, 0x53F0, 0xCCA8, 0x53F1, 0xDFB3, 0x53F2, 0xCAB7, + 0x53F3, 0xD3D2, 0x53F4, 0x85B4, 0x53F5, 0xD8CF, 0x53F6, 0xD2B6, 0x53F7, 0xBAC5, 0x53F8, 0xCBBE, 0x53F9, 0xCCBE, 0x53FA, 0x85B5, + 0x53FB, 0xDFB7, 0x53FC, 0xB5F0, 0x53FD, 0xDFB4, 0x53FE, 0x85B6, 0x53FF, 0x85B7, 0x5400, 0x85B8, 0x5401, 0xD3F5, 0x5402, 0x85B9, + 0x5403, 0xB3D4, 0x5404, 0xB8F7, 0x5405, 0x85BA, 0x5406, 0xDFBA, 0x5407, 0x85BB, 0x5408, 0xBACF, 0x5409, 0xBCAA, 0x540A, 0xB5F5, + 0x540B, 0x85BC, 0x540C, 0xCDAC, 0x540D, 0xC3FB, 0x540E, 0xBAF3, 0x540F, 0xC0F4, 0x5410, 0xCDC2, 0x5411, 0xCFF2, 0x5412, 0xDFB8, + 0x5413, 0xCFC5, 0x5414, 0x85BD, 0x5415, 0xC2C0, 0x5416, 0xDFB9, 0x5417, 0xC2F0, 0x5418, 0x85BE, 0x5419, 0x85BF, 0x541A, 0x85C0, + 0x541B, 0xBEFD, 0x541C, 0x85C1, 0x541D, 0xC1DF, 0x541E, 0xCDCC, 0x541F, 0xD2F7, 0x5420, 0xB7CD, 0x5421, 0xDFC1, 0x5422, 0x85C2, + 0x5423, 0xDFC4, 0x5424, 0x85C3, 0x5425, 0x85C4, 0x5426, 0xB7F1, 0x5427, 0xB0C9, 0x5428, 0xB6D6, 0x5429, 0xB7D4, 0x542A, 0x85C5, + 0x542B, 0xBAAC, 0x542C, 0xCCFD, 0x542D, 0xBFD4, 0x542E, 0xCBB1, 0x542F, 0xC6F4, 0x5430, 0x85C6, 0x5431, 0xD6A8, 0x5432, 0xDFC5, + 0x5433, 0x85C7, 0x5434, 0xCEE2, 0x5435, 0xB3B3, 0x5436, 0x85C8, 0x5437, 0x85C9, 0x5438, 0xCEFC, 0x5439, 0xB4B5, 0x543A, 0x85CA, + 0x543B, 0xCEC7, 0x543C, 0xBAF0, 0x543D, 0x85CB, 0x543E, 0xCEE1, 0x543F, 0x85CC, 0x5440, 0xD1BD, 0x5441, 0x85CD, 0x5442, 0x85CE, + 0x5443, 0xDFC0, 0x5444, 0x85CF, 0x5445, 0x85D0, 0x5446, 0xB4F4, 0x5447, 0x85D1, 0x5448, 0xB3CA, 0x5449, 0x85D2, 0x544A, 0xB8E6, + 0x544B, 0xDFBB, 0x544C, 0x85D3, 0x544D, 0x85D4, 0x544E, 0x85D5, 0x544F, 0x85D6, 0x5450, 0xC4C5, 0x5451, 0x85D7, 0x5452, 0xDFBC, + 0x5453, 0xDFBD, 0x5454, 0xDFBE, 0x5455, 0xC5BB, 0x5456, 0xDFBF, 0x5457, 0xDFC2, 0x5458, 0xD4B1, 0x5459, 0xDFC3, 0x545A, 0x85D8, + 0x545B, 0xC7BA, 0x545C, 0xCED8, 0x545D, 0x85D9, 0x545E, 0x85DA, 0x545F, 0x85DB, 0x5460, 0x85DC, 0x5461, 0x85DD, 0x5462, 0xC4D8, + 0x5463, 0x85DE, 0x5464, 0xDFCA, 0x5465, 0x85DF, 0x5466, 0xDFCF, 0x5467, 0x85E0, 0x5468, 0xD6DC, 0x5469, 0x85E1, 0x546A, 0x85E2, + 0x546B, 0x85E3, 0x546C, 0x85E4, 0x546D, 0x85E5, 0x546E, 0x85E6, 0x546F, 0x85E7, 0x5470, 0x85E8, 0x5471, 0xDFC9, 0x5472, 0xDFDA, + 0x5473, 0xCEB6, 0x5474, 0x85E9, 0x5475, 0xBAC7, 0x5476, 0xDFCE, 0x5477, 0xDFC8, 0x5478, 0xC5DE, 0x5479, 0x85EA, 0x547A, 0x85EB, + 0x547B, 0xC9EB, 0x547C, 0xBAF4, 0x547D, 0xC3FC, 0x547E, 0x85EC, 0x547F, 0x85ED, 0x5480, 0xBED7, 0x5481, 0x85EE, 0x5482, 0xDFC6, + 0x5483, 0x85EF, 0x5484, 0xDFCD, 0x5485, 0x85F0, 0x5486, 0xC5D8, 0x5487, 0x85F1, 0x5488, 0x85F2, 0x5489, 0x85F3, 0x548A, 0x85F4, + 0x548B, 0xD5A6, 0x548C, 0xBACD, 0x548D, 0x85F5, 0x548E, 0xBECC, 0x548F, 0xD3BD, 0x5490, 0xB8C0, 0x5491, 0x85F6, 0x5492, 0xD6E4, + 0x5493, 0x85F7, 0x5494, 0xDFC7, 0x5495, 0xB9BE, 0x5496, 0xBFA7, 0x5497, 0x85F8, 0x5498, 0x85F9, 0x5499, 0xC1FC, 0x549A, 0xDFCB, + 0x549B, 0xDFCC, 0x549C, 0x85FA, 0x549D, 0xDFD0, 0x549E, 0x85FB, 0x549F, 0x85FC, 0x54A0, 0x85FD, 0x54A1, 0x85FE, 0x54A2, 0x8640, + 0x54A3, 0xDFDB, 0x54A4, 0xDFE5, 0x54A5, 0x8641, 0x54A6, 0xDFD7, 0x54A7, 0xDFD6, 0x54A8, 0xD7C9, 0x54A9, 0xDFE3, 0x54AA, 0xDFE4, + 0x54AB, 0xE5EB, 0x54AC, 0xD2A7, 0x54AD, 0xDFD2, 0x54AE, 0x8642, 0x54AF, 0xBFA9, 0x54B0, 0x8643, 0x54B1, 0xD4DB, 0x54B2, 0x8644, + 0x54B3, 0xBFC8, 0x54B4, 0xDFD4, 0x54B5, 0x8645, 0x54B6, 0x8646, 0x54B7, 0x8647, 0x54B8, 0xCFCC, 0x54B9, 0x8648, 0x54BA, 0x8649, + 0x54BB, 0xDFDD, 0x54BC, 0x864A, 0x54BD, 0xD1CA, 0x54BE, 0x864B, 0x54BF, 0xDFDE, 0x54C0, 0xB0A7, 0x54C1, 0xC6B7, 0x54C2, 0xDFD3, + 0x54C3, 0x864C, 0x54C4, 0xBAE5, 0x54C5, 0x864D, 0x54C6, 0xB6DF, 0x54C7, 0xCDDB, 0x54C8, 0xB9FE, 0x54C9, 0xD4D5, 0x54CA, 0x864E, + 0x54CB, 0x864F, 0x54CC, 0xDFDF, 0x54CD, 0xCFEC, 0x54CE, 0xB0A5, 0x54CF, 0xDFE7, 0x54D0, 0xDFD1, 0x54D1, 0xD1C6, 0x54D2, 0xDFD5, + 0x54D3, 0xDFD8, 0x54D4, 0xDFD9, 0x54D5, 0xDFDC, 0x54D6, 0x8650, 0x54D7, 0xBBA9, 0x54D8, 0x8651, 0x54D9, 0xDFE0, 0x54DA, 0xDFE1, + 0x54DB, 0x8652, 0x54DC, 0xDFE2, 0x54DD, 0xDFE6, 0x54DE, 0xDFE8, 0x54DF, 0xD3B4, 0x54E0, 0x8653, 0x54E1, 0x8654, 0x54E2, 0x8655, + 0x54E3, 0x8656, 0x54E4, 0x8657, 0x54E5, 0xB8E7, 0x54E6, 0xC5B6, 0x54E7, 0xDFEA, 0x54E8, 0xC9DA, 0x54E9, 0xC1A8, 0x54EA, 0xC4C4, + 0x54EB, 0x8658, 0x54EC, 0x8659, 0x54ED, 0xBFDE, 0x54EE, 0xCFF8, 0x54EF, 0x865A, 0x54F0, 0x865B, 0x54F1, 0x865C, 0x54F2, 0xD5DC, + 0x54F3, 0xDFEE, 0x54F4, 0x865D, 0x54F5, 0x865E, 0x54F6, 0x865F, 0x54F7, 0x8660, 0x54F8, 0x8661, 0x54F9, 0x8662, 0x54FA, 0xB2B8, + 0x54FB, 0x8663, 0x54FC, 0xBADF, 0x54FD, 0xDFEC, 0x54FE, 0x8664, 0x54FF, 0xDBC1, 0x5500, 0x8665, 0x5501, 0xD1E4, 0x5502, 0x8666, + 0x5503, 0x8667, 0x5504, 0x8668, 0x5505, 0x8669, 0x5506, 0xCBF4, 0x5507, 0xB4BD, 0x5508, 0x866A, 0x5509, 0xB0A6, 0x550A, 0x866B, + 0x550B, 0x866C, 0x550C, 0x866D, 0x550D, 0x866E, 0x550E, 0x866F, 0x550F, 0xDFF1, 0x5510, 0xCCC6, 0x5511, 0xDFF2, 0x5512, 0x8670, + 0x5513, 0x8671, 0x5514, 0xDFED, 0x5515, 0x8672, 0x5516, 0x8673, 0x5517, 0x8674, 0x5518, 0x8675, 0x5519, 0x8676, 0x551A, 0x8677, + 0x551B, 0xDFE9, 0x551C, 0x8678, 0x551D, 0x8679, 0x551E, 0x867A, 0x551F, 0x867B, 0x5520, 0xDFEB, 0x5521, 0x867C, 0x5522, 0xDFEF, + 0x5523, 0xDFF0, 0x5524, 0xBBBD, 0x5525, 0x867D, 0x5526, 0x867E, 0x5527, 0xDFF3, 0x5528, 0x8680, 0x5529, 0x8681, 0x552A, 0xDFF4, + 0x552B, 0x8682, 0x552C, 0xBBA3, 0x552D, 0x8683, 0x552E, 0xCADB, 0x552F, 0xCEA8, 0x5530, 0xE0A7, 0x5531, 0xB3AA, 0x5532, 0x8684, + 0x5533, 0xE0A6, 0x5534, 0x8685, 0x5535, 0x8686, 0x5536, 0x8687, 0x5537, 0xE0A1, 0x5538, 0x8688, 0x5539, 0x8689, 0x553A, 0x868A, + 0x553B, 0x868B, 0x553C, 0xDFFE, 0x553D, 0x868C, 0x553E, 0xCDD9, 0x553F, 0xDFFC, 0x5540, 0x868D, 0x5541, 0xDFFA, 0x5542, 0x868E, + 0x5543, 0xBFD0, 0x5544, 0xD7C4, 0x5545, 0x868F, 0x5546, 0xC9CC, 0x5547, 0x8690, 0x5548, 0x8691, 0x5549, 0xDFF8, 0x554A, 0xB0A1, + 0x554B, 0x8692, 0x554C, 0x8693, 0x554D, 0x8694, 0x554E, 0x8695, 0x554F, 0x8696, 0x5550, 0xDFFD, 0x5551, 0x8697, 0x5552, 0x8698, + 0x5553, 0x8699, 0x5554, 0x869A, 0x5555, 0xDFFB, 0x5556, 0xE0A2, 0x5557, 0x869B, 0x5558, 0x869C, 0x5559, 0x869D, 0x555A, 0x869E, + 0x555B, 0x869F, 0x555C, 0xE0A8, 0x555D, 0x86A0, 0x555E, 0x86A1, 0x555F, 0x86A2, 0x5560, 0x86A3, 0x5561, 0xB7C8, 0x5562, 0x86A4, + 0x5563, 0x86A5, 0x5564, 0xC6A1, 0x5565, 0xC9B6, 0x5566, 0xC0B2, 0x5567, 0xDFF5, 0x5568, 0x86A6, 0x5569, 0x86A7, 0x556A, 0xC5BE, + 0x556B, 0x86A8, 0x556C, 0xD8C4, 0x556D, 0xDFF9, 0x556E, 0xC4F6, 0x556F, 0x86A9, 0x5570, 0x86AA, 0x5571, 0x86AB, 0x5572, 0x86AC, + 0x5573, 0x86AD, 0x5574, 0x86AE, 0x5575, 0xE0A3, 0x5576, 0xE0A4, 0x5577, 0xE0A5, 0x5578, 0xD0A5, 0x5579, 0x86AF, 0x557A, 0x86B0, + 0x557B, 0xE0B4, 0x557C, 0xCCE4, 0x557D, 0x86B1, 0x557E, 0xE0B1, 0x557F, 0x86B2, 0x5580, 0xBFA6, 0x5581, 0xE0AF, 0x5582, 0xCEB9, + 0x5583, 0xE0AB, 0x5584, 0xC9C6, 0x5585, 0x86B3, 0x5586, 0x86B4, 0x5587, 0xC0AE, 0x5588, 0xE0AE, 0x5589, 0xBAED, 0x558A, 0xBAB0, + 0x558B, 0xE0A9, 0x558C, 0x86B5, 0x558D, 0x86B6, 0x558E, 0x86B7, 0x558F, 0xDFF6, 0x5590, 0x86B8, 0x5591, 0xE0B3, 0x5592, 0x86B9, + 0x5593, 0x86BA, 0x5594, 0xE0B8, 0x5595, 0x86BB, 0x5596, 0x86BC, 0x5597, 0x86BD, 0x5598, 0xB4AD, 0x5599, 0xE0B9, 0x559A, 0x86BE, + 0x559B, 0x86BF, 0x559C, 0xCFB2, 0x559D, 0xBAC8, 0x559E, 0x86C0, 0x559F, 0xE0B0, 0x55A0, 0x86C1, 0x55A1, 0x86C2, 0x55A2, 0x86C3, + 0x55A3, 0x86C4, 0x55A4, 0x86C5, 0x55A5, 0x86C6, 0x55A6, 0x86C7, 0x55A7, 0xD0FA, 0x55A8, 0x86C8, 0x55A9, 0x86C9, 0x55AA, 0x86CA, + 0x55AB, 0x86CB, 0x55AC, 0x86CC, 0x55AD, 0x86CD, 0x55AE, 0x86CE, 0x55AF, 0x86CF, 0x55B0, 0x86D0, 0x55B1, 0xE0AC, 0x55B2, 0x86D1, + 0x55B3, 0xD4FB, 0x55B4, 0x86D2, 0x55B5, 0xDFF7, 0x55B6, 0x86D3, 0x55B7, 0xC5E7, 0x55B8, 0x86D4, 0x55B9, 0xE0AD, 0x55BA, 0x86D5, + 0x55BB, 0xD3F7, 0x55BC, 0x86D6, 0x55BD, 0xE0B6, 0x55BE, 0xE0B7, 0x55BF, 0x86D7, 0x55C0, 0x86D8, 0x55C1, 0x86D9, 0x55C2, 0x86DA, + 0x55C3, 0x86DB, 0x55C4, 0xE0C4, 0x55C5, 0xD0E1, 0x55C6, 0x86DC, 0x55C7, 0x86DD, 0x55C8, 0x86DE, 0x55C9, 0xE0BC, 0x55CA, 0x86DF, + 0x55CB, 0x86E0, 0x55CC, 0xE0C9, 0x55CD, 0xE0CA, 0x55CE, 0x86E1, 0x55CF, 0x86E2, 0x55D0, 0x86E3, 0x55D1, 0xE0BE, 0x55D2, 0xE0AA, + 0x55D3, 0xC9A4, 0x55D4, 0xE0C1, 0x55D5, 0x86E4, 0x55D6, 0xE0B2, 0x55D7, 0x86E5, 0x55D8, 0x86E6, 0x55D9, 0x86E7, 0x55DA, 0x86E8, + 0x55DB, 0x86E9, 0x55DC, 0xCAC8, 0x55DD, 0xE0C3, 0x55DE, 0x86EA, 0x55DF, 0xE0B5, 0x55E0, 0x86EB, 0x55E1, 0xCECB, 0x55E2, 0x86EC, + 0x55E3, 0xCBC3, 0x55E4, 0xE0CD, 0x55E5, 0xE0C6, 0x55E6, 0xE0C2, 0x55E7, 0x86ED, 0x55E8, 0xE0CB, 0x55E9, 0x86EE, 0x55EA, 0xE0BA, + 0x55EB, 0xE0BF, 0x55EC, 0xE0C0, 0x55ED, 0x86EF, 0x55EE, 0x86F0, 0x55EF, 0xE0C5, 0x55F0, 0x86F1, 0x55F1, 0x86F2, 0x55F2, 0xE0C7, + 0x55F3, 0xE0C8, 0x55F4, 0x86F3, 0x55F5, 0xE0CC, 0x55F6, 0x86F4, 0x55F7, 0xE0BB, 0x55F8, 0x86F5, 0x55F9, 0x86F6, 0x55FA, 0x86F7, + 0x55FB, 0x86F8, 0x55FC, 0x86F9, 0x55FD, 0xCBD4, 0x55FE, 0xE0D5, 0x55FF, 0x86FA, 0x5600, 0xE0D6, 0x5601, 0xE0D2, 0x5602, 0x86FB, + 0x5603, 0x86FC, 0x5604, 0x86FD, 0x5605, 0x86FE, 0x5606, 0x8740, 0x5607, 0x8741, 0x5608, 0xE0D0, 0x5609, 0xBCCE, 0x560A, 0x8742, + 0x560B, 0x8743, 0x560C, 0xE0D1, 0x560D, 0x8744, 0x560E, 0xB8C2, 0x560F, 0xD8C5, 0x5610, 0x8745, 0x5611, 0x8746, 0x5612, 0x8747, + 0x5613, 0x8748, 0x5614, 0x8749, 0x5615, 0x874A, 0x5616, 0x874B, 0x5617, 0x874C, 0x5618, 0xD0EA, 0x5619, 0x874D, 0x561A, 0x874E, + 0x561B, 0xC2EF, 0x561C, 0x874F, 0x561D, 0x8750, 0x561E, 0xE0CF, 0x561F, 0xE0BD, 0x5620, 0x8751, 0x5621, 0x8752, 0x5622, 0x8753, + 0x5623, 0xE0D4, 0x5624, 0xE0D3, 0x5625, 0x8754, 0x5626, 0x8755, 0x5627, 0xE0D7, 0x5628, 0x8756, 0x5629, 0x8757, 0x562A, 0x8758, + 0x562B, 0x8759, 0x562C, 0xE0DC, 0x562D, 0xE0D8, 0x562E, 0x875A, 0x562F, 0x875B, 0x5630, 0x875C, 0x5631, 0xD6F6, 0x5632, 0xB3B0, + 0x5633, 0x875D, 0x5634, 0xD7EC, 0x5635, 0x875E, 0x5636, 0xCBBB, 0x5637, 0x875F, 0x5638, 0x8760, 0x5639, 0xE0DA, 0x563A, 0x8761, + 0x563B, 0xCEFB, 0x563C, 0x8762, 0x563D, 0x8763, 0x563E, 0x8764, 0x563F, 0xBAD9, 0x5640, 0x8765, 0x5641, 0x8766, 0x5642, 0x8767, + 0x5643, 0x8768, 0x5644, 0x8769, 0x5645, 0x876A, 0x5646, 0x876B, 0x5647, 0x876C, 0x5648, 0x876D, 0x5649, 0x876E, 0x564A, 0x876F, + 0x564B, 0x8770, 0x564C, 0xE0E1, 0x564D, 0xE0DD, 0x564E, 0xD2AD, 0x564F, 0x8771, 0x5650, 0x8772, 0x5651, 0x8773, 0x5652, 0x8774, + 0x5653, 0x8775, 0x5654, 0xE0E2, 0x5655, 0x8776, 0x5656, 0x8777, 0x5657, 0xE0DB, 0x5658, 0xE0D9, 0x5659, 0xE0DF, 0x565A, 0x8778, + 0x565B, 0x8779, 0x565C, 0xE0E0, 0x565D, 0x877A, 0x565E, 0x877B, 0x565F, 0x877C, 0x5660, 0x877D, 0x5661, 0x877E, 0x5662, 0xE0DE, + 0x5663, 0x8780, 0x5664, 0xE0E4, 0x5665, 0x8781, 0x5666, 0x8782, 0x5667, 0x8783, 0x5668, 0xC6F7, 0x5669, 0xD8AC, 0x566A, 0xD4EB, + 0x566B, 0xE0E6, 0x566C, 0xCAC9, 0x566D, 0x8784, 0x566E, 0x8785, 0x566F, 0x8786, 0x5670, 0x8787, 0x5671, 0xE0E5, 0x5672, 0x8788, + 0x5673, 0x8789, 0x5674, 0x878A, 0x5675, 0x878B, 0x5676, 0xB8C1, 0x5677, 0x878C, 0x5678, 0x878D, 0x5679, 0x878E, 0x567A, 0x878F, + 0x567B, 0xE0E7, 0x567C, 0xE0E8, 0x567D, 0x8790, 0x567E, 0x8791, 0x567F, 0x8792, 0x5680, 0x8793, 0x5681, 0x8794, 0x5682, 0x8795, + 0x5683, 0x8796, 0x5684, 0x8797, 0x5685, 0xE0E9, 0x5686, 0xE0E3, 0x5687, 0x8798, 0x5688, 0x8799, 0x5689, 0x879A, 0x568A, 0x879B, + 0x568B, 0x879C, 0x568C, 0x879D, 0x568D, 0x879E, 0x568E, 0xBABF, 0x568F, 0xCCE7, 0x5690, 0x879F, 0x5691, 0x87A0, 0x5692, 0x87A1, + 0x5693, 0xE0EA, 0x5694, 0x87A2, 0x5695, 0x87A3, 0x5696, 0x87A4, 0x5697, 0x87A5, 0x5698, 0x87A6, 0x5699, 0x87A7, 0x569A, 0x87A8, + 0x569B, 0x87A9, 0x569C, 0x87AA, 0x569D, 0x87AB, 0x569E, 0x87AC, 0x569F, 0x87AD, 0x56A0, 0x87AE, 0x56A1, 0x87AF, 0x56A2, 0x87B0, + 0x56A3, 0xCFF9, 0x56A4, 0x87B1, 0x56A5, 0x87B2, 0x56A6, 0x87B3, 0x56A7, 0x87B4, 0x56A8, 0x87B5, 0x56A9, 0x87B6, 0x56AA, 0x87B7, + 0x56AB, 0x87B8, 0x56AC, 0x87B9, 0x56AD, 0x87BA, 0x56AE, 0x87BB, 0x56AF, 0xE0EB, 0x56B0, 0x87BC, 0x56B1, 0x87BD, 0x56B2, 0x87BE, + 0x56B3, 0x87BF, 0x56B4, 0x87C0, 0x56B5, 0x87C1, 0x56B6, 0x87C2, 0x56B7, 0xC8C2, 0x56B8, 0x87C3, 0x56B9, 0x87C4, 0x56BA, 0x87C5, + 0x56BB, 0x87C6, 0x56BC, 0xBDC0, 0x56BD, 0x87C7, 0x56BE, 0x87C8, 0x56BF, 0x87C9, 0x56C0, 0x87CA, 0x56C1, 0x87CB, 0x56C2, 0x87CC, + 0x56C3, 0x87CD, 0x56C4, 0x87CE, 0x56C5, 0x87CF, 0x56C6, 0x87D0, 0x56C7, 0x87D1, 0x56C8, 0x87D2, 0x56C9, 0x87D3, 0x56CA, 0xC4D2, + 0x56CB, 0x87D4, 0x56CC, 0x87D5, 0x56CD, 0x87D6, 0x56CE, 0x87D7, 0x56CF, 0x87D8, 0x56D0, 0x87D9, 0x56D1, 0x87DA, 0x56D2, 0x87DB, + 0x56D3, 0x87DC, 0x56D4, 0xE0EC, 0x56D5, 0x87DD, 0x56D6, 0x87DE, 0x56D7, 0xE0ED, 0x56D8, 0x87DF, 0x56D9, 0x87E0, 0x56DA, 0xC7F4, + 0x56DB, 0xCBC4, 0x56DC, 0x87E1, 0x56DD, 0xE0EE, 0x56DE, 0xBBD8, 0x56DF, 0xD8B6, 0x56E0, 0xD2F2, 0x56E1, 0xE0EF, 0x56E2, 0xCDC5, + 0x56E3, 0x87E2, 0x56E4, 0xB6DA, 0x56E5, 0x87E3, 0x56E6, 0x87E4, 0x56E7, 0x87E5, 0x56E8, 0x87E6, 0x56E9, 0x87E7, 0x56EA, 0x87E8, + 0x56EB, 0xE0F1, 0x56EC, 0x87E9, 0x56ED, 0xD4B0, 0x56EE, 0x87EA, 0x56EF, 0x87EB, 0x56F0, 0xC0A7, 0x56F1, 0xB4D1, 0x56F2, 0x87EC, + 0x56F3, 0x87ED, 0x56F4, 0xCEA7, 0x56F5, 0xE0F0, 0x56F6, 0x87EE, 0x56F7, 0x87EF, 0x56F8, 0x87F0, 0x56F9, 0xE0F2, 0x56FA, 0xB9CC, + 0x56FB, 0x87F1, 0x56FC, 0x87F2, 0x56FD, 0xB9FA, 0x56FE, 0xCDBC, 0x56FF, 0xE0F3, 0x5700, 0x87F3, 0x5701, 0x87F4, 0x5702, 0x87F5, + 0x5703, 0xC6D4, 0x5704, 0xE0F4, 0x5705, 0x87F6, 0x5706, 0xD4B2, 0x5707, 0x87F7, 0x5708, 0xC8A6, 0x5709, 0xE0F6, 0x570A, 0xE0F5, + 0x570B, 0x87F8, 0x570C, 0x87F9, 0x570D, 0x87FA, 0x570E, 0x87FB, 0x570F, 0x87FC, 0x5710, 0x87FD, 0x5711, 0x87FE, 0x5712, 0x8840, + 0x5713, 0x8841, 0x5714, 0x8842, 0x5715, 0x8843, 0x5716, 0x8844, 0x5717, 0x8845, 0x5718, 0x8846, 0x5719, 0x8847, 0x571A, 0x8848, + 0x571B, 0x8849, 0x571C, 0xE0F7, 0x571D, 0x884A, 0x571E, 0x884B, 0x571F, 0xCDC1, 0x5720, 0x884C, 0x5721, 0x884D, 0x5722, 0x884E, + 0x5723, 0xCAA5, 0x5724, 0x884F, 0x5725, 0x8850, 0x5726, 0x8851, 0x5727, 0x8852, 0x5728, 0xD4DA, 0x5729, 0xDBD7, 0x572A, 0xDBD9, + 0x572B, 0x8853, 0x572C, 0xDBD8, 0x572D, 0xB9E7, 0x572E, 0xDBDC, 0x572F, 0xDBDD, 0x5730, 0xB5D8, 0x5731, 0x8854, 0x5732, 0x8855, + 0x5733, 0xDBDA, 0x5734, 0x8856, 0x5735, 0x8857, 0x5736, 0x8858, 0x5737, 0x8859, 0x5738, 0x885A, 0x5739, 0xDBDB, 0x573A, 0xB3A1, + 0x573B, 0xDBDF, 0x573C, 0x885B, 0x573D, 0x885C, 0x573E, 0xBBF8, 0x573F, 0x885D, 0x5740, 0xD6B7, 0x5741, 0x885E, 0x5742, 0xDBE0, + 0x5743, 0x885F, 0x5744, 0x8860, 0x5745, 0x8861, 0x5746, 0x8862, 0x5747, 0xBEF9, 0x5748, 0x8863, 0x5749, 0x8864, 0x574A, 0xB7BB, + 0x574B, 0x8865, 0x574C, 0xDBD0, 0x574D, 0xCCAE, 0x574E, 0xBFB2, 0x574F, 0xBBB5, 0x5750, 0xD7F8, 0x5751, 0xBFD3, 0x5752, 0x8866, + 0x5753, 0x8867, 0x5754, 0x8868, 0x5755, 0x8869, 0x5756, 0x886A, 0x5757, 0xBFE9, 0x5758, 0x886B, 0x5759, 0x886C, 0x575A, 0xBCE1, + 0x575B, 0xCCB3, 0x575C, 0xDBDE, 0x575D, 0xB0D3, 0x575E, 0xCEEB, 0x575F, 0xB7D8, 0x5760, 0xD7B9, 0x5761, 0xC6C2, 0x5762, 0x886D, + 0x5763, 0x886E, 0x5764, 0xC0A4, 0x5765, 0x886F, 0x5766, 0xCCB9, 0x5767, 0x8870, 0x5768, 0xDBE7, 0x5769, 0xDBE1, 0x576A, 0xC6BA, + 0x576B, 0xDBE3, 0x576C, 0x8871, 0x576D, 0xDBE8, 0x576E, 0x8872, 0x576F, 0xC5F7, 0x5770, 0x8873, 0x5771, 0x8874, 0x5772, 0x8875, + 0x5773, 0xDBEA, 0x5774, 0x8876, 0x5775, 0x8877, 0x5776, 0xDBE9, 0x5777, 0xBFC0, 0x5778, 0x8878, 0x5779, 0x8879, 0x577A, 0x887A, + 0x577B, 0xDBE6, 0x577C, 0xDBE5, 0x577D, 0x887B, 0x577E, 0x887C, 0x577F, 0x887D, 0x5780, 0x887E, 0x5781, 0x8880, 0x5782, 0xB4B9, + 0x5783, 0xC0AC, 0x5784, 0xC2A2, 0x5785, 0xDBE2, 0x5786, 0xDBE4, 0x5787, 0x8881, 0x5788, 0x8882, 0x5789, 0x8883, 0x578A, 0x8884, + 0x578B, 0xD0CD, 0x578C, 0xDBED, 0x578D, 0x8885, 0x578E, 0x8886, 0x578F, 0x8887, 0x5790, 0x8888, 0x5791, 0x8889, 0x5792, 0xC0DD, + 0x5793, 0xDBF2, 0x5794, 0x888A, 0x5795, 0x888B, 0x5796, 0x888C, 0x5797, 0x888D, 0x5798, 0x888E, 0x5799, 0x888F, 0x579A, 0x8890, + 0x579B, 0xB6E2, 0x579C, 0x8891, 0x579D, 0x8892, 0x579E, 0x8893, 0x579F, 0x8894, 0x57A0, 0xDBF3, 0x57A1, 0xDBD2, 0x57A2, 0xB9B8, + 0x57A3, 0xD4AB, 0x57A4, 0xDBEC, 0x57A5, 0x8895, 0x57A6, 0xBFD1, 0x57A7, 0xDBF0, 0x57A8, 0x8896, 0x57A9, 0xDBD1, 0x57AA, 0x8897, + 0x57AB, 0xB5E6, 0x57AC, 0x8898, 0x57AD, 0xDBEB, 0x57AE, 0xBFE5, 0x57AF, 0x8899, 0x57B0, 0x889A, 0x57B1, 0x889B, 0x57B2, 0xDBEE, + 0x57B3, 0x889C, 0x57B4, 0xDBF1, 0x57B5, 0x889D, 0x57B6, 0x889E, 0x57B7, 0x889F, 0x57B8, 0xDBF9, 0x57B9, 0x88A0, 0x57BA, 0x88A1, + 0x57BB, 0x88A2, 0x57BC, 0x88A3, 0x57BD, 0x88A4, 0x57BE, 0x88A5, 0x57BF, 0x88A6, 0x57C0, 0x88A7, 0x57C1, 0x88A8, 0x57C2, 0xB9A1, + 0x57C3, 0xB0A3, 0x57C4, 0x88A9, 0x57C5, 0x88AA, 0x57C6, 0x88AB, 0x57C7, 0x88AC, 0x57C8, 0x88AD, 0x57C9, 0x88AE, 0x57CA, 0x88AF, + 0x57CB, 0xC2F1, 0x57CC, 0x88B0, 0x57CD, 0x88B1, 0x57CE, 0xB3C7, 0x57CF, 0xDBEF, 0x57D0, 0x88B2, 0x57D1, 0x88B3, 0x57D2, 0xDBF8, + 0x57D3, 0x88B4, 0x57D4, 0xC6D2, 0x57D5, 0xDBF4, 0x57D6, 0x88B5, 0x57D7, 0x88B6, 0x57D8, 0xDBF5, 0x57D9, 0xDBF7, 0x57DA, 0xDBF6, + 0x57DB, 0x88B7, 0x57DC, 0x88B8, 0x57DD, 0xDBFE, 0x57DE, 0x88B9, 0x57DF, 0xD3F2, 0x57E0, 0xB2BA, 0x57E1, 0x88BA, 0x57E2, 0x88BB, + 0x57E3, 0x88BC, 0x57E4, 0xDBFD, 0x57E5, 0x88BD, 0x57E6, 0x88BE, 0x57E7, 0x88BF, 0x57E8, 0x88C0, 0x57E9, 0x88C1, 0x57EA, 0x88C2, + 0x57EB, 0x88C3, 0x57EC, 0x88C4, 0x57ED, 0xDCA4, 0x57EE, 0x88C5, 0x57EF, 0xDBFB, 0x57F0, 0x88C6, 0x57F1, 0x88C7, 0x57F2, 0x88C8, + 0x57F3, 0x88C9, 0x57F4, 0xDBFA, 0x57F5, 0x88CA, 0x57F6, 0x88CB, 0x57F7, 0x88CC, 0x57F8, 0xDBFC, 0x57F9, 0xC5E0, 0x57FA, 0xBBF9, + 0x57FB, 0x88CD, 0x57FC, 0x88CE, 0x57FD, 0xDCA3, 0x57FE, 0x88CF, 0x57FF, 0x88D0, 0x5800, 0xDCA5, 0x5801, 0x88D1, 0x5802, 0xCCC3, + 0x5803, 0x88D2, 0x5804, 0x88D3, 0x5805, 0x88D4, 0x5806, 0xB6D1, 0x5807, 0xDDC0, 0x5808, 0x88D5, 0x5809, 0x88D6, 0x580A, 0x88D7, + 0x580B, 0xDCA1, 0x580C, 0x88D8, 0x580D, 0xDCA2, 0x580E, 0x88D9, 0x580F, 0x88DA, 0x5810, 0x88DB, 0x5811, 0xC7B5, 0x5812, 0x88DC, + 0x5813, 0x88DD, 0x5814, 0x88DE, 0x5815, 0xB6E9, 0x5816, 0x88DF, 0x5817, 0x88E0, 0x5818, 0x88E1, 0x5819, 0xDCA7, 0x581A, 0x88E2, + 0x581B, 0x88E3, 0x581C, 0x88E4, 0x581D, 0x88E5, 0x581E, 0xDCA6, 0x581F, 0x88E6, 0x5820, 0xDCA9, 0x5821, 0xB1A4, 0x5822, 0x88E7, + 0x5823, 0x88E8, 0x5824, 0xB5CC, 0x5825, 0x88E9, 0x5826, 0x88EA, 0x5827, 0x88EB, 0x5828, 0x88EC, 0x5829, 0x88ED, 0x582A, 0xBFB0, + 0x582B, 0x88EE, 0x582C, 0x88EF, 0x582D, 0x88F0, 0x582E, 0x88F1, 0x582F, 0x88F2, 0x5830, 0xD1DF, 0x5831, 0x88F3, 0x5832, 0x88F4, + 0x5833, 0x88F5, 0x5834, 0x88F6, 0x5835, 0xB6C2, 0x5836, 0x88F7, 0x5837, 0x88F8, 0x5838, 0x88F9, 0x5839, 0x88FA, 0x583A, 0x88FB, + 0x583B, 0x88FC, 0x583C, 0x88FD, 0x583D, 0x88FE, 0x583E, 0x8940, 0x583F, 0x8941, 0x5840, 0x8942, 0x5841, 0x8943, 0x5842, 0x8944, + 0x5843, 0x8945, 0x5844, 0xDCA8, 0x5845, 0x8946, 0x5846, 0x8947, 0x5847, 0x8948, 0x5848, 0x8949, 0x5849, 0x894A, 0x584A, 0x894B, + 0x584B, 0x894C, 0x584C, 0xCBFA, 0x584D, 0xEBF3, 0x584E, 0x894D, 0x584F, 0x894E, 0x5850, 0x894F, 0x5851, 0xCBDC, 0x5852, 0x8950, + 0x5853, 0x8951, 0x5854, 0xCBFE, 0x5855, 0x8952, 0x5856, 0x8953, 0x5857, 0x8954, 0x5858, 0xCCC1, 0x5859, 0x8955, 0x585A, 0x8956, + 0x585B, 0x8957, 0x585C, 0x8958, 0x585D, 0x8959, 0x585E, 0xC8FB, 0x585F, 0x895A, 0x5860, 0x895B, 0x5861, 0x895C, 0x5862, 0x895D, + 0x5863, 0x895E, 0x5864, 0x895F, 0x5865, 0xDCAA, 0x5866, 0x8960, 0x5867, 0x8961, 0x5868, 0x8962, 0x5869, 0x8963, 0x586A, 0x8964, + 0x586B, 0xCCEE, 0x586C, 0xDCAB, 0x586D, 0x8965, 0x586E, 0x8966, 0x586F, 0x8967, 0x5870, 0x8968, 0x5871, 0x8969, 0x5872, 0x896A, + 0x5873, 0x896B, 0x5874, 0x896C, 0x5875, 0x896D, 0x5876, 0x896E, 0x5877, 0x896F, 0x5878, 0x8970, 0x5879, 0x8971, 0x587A, 0x8972, + 0x587B, 0x8973, 0x587C, 0x8974, 0x587D, 0x8975, 0x587E, 0xDBD3, 0x587F, 0x8976, 0x5880, 0xDCAF, 0x5881, 0xDCAC, 0x5882, 0x8977, + 0x5883, 0xBEB3, 0x5884, 0x8978, 0x5885, 0xCAFB, 0x5886, 0x8979, 0x5887, 0x897A, 0x5888, 0x897B, 0x5889, 0xDCAD, 0x588A, 0x897C, + 0x588B, 0x897D, 0x588C, 0x897E, 0x588D, 0x8980, 0x588E, 0x8981, 0x588F, 0x8982, 0x5890, 0x8983, 0x5891, 0x8984, 0x5892, 0xC9CA, + 0x5893, 0xC4B9, 0x5894, 0x8985, 0x5895, 0x8986, 0x5896, 0x8987, 0x5897, 0x8988, 0x5898, 0x8989, 0x5899, 0xC7BD, 0x589A, 0xDCAE, + 0x589B, 0x898A, 0x589C, 0x898B, 0x589D, 0x898C, 0x589E, 0xD4F6, 0x589F, 0xD0E6, 0x58A0, 0x898D, 0x58A1, 0x898E, 0x58A2, 0x898F, + 0x58A3, 0x8990, 0x58A4, 0x8991, 0x58A5, 0x8992, 0x58A6, 0x8993, 0x58A7, 0x8994, 0x58A8, 0xC4AB, 0x58A9, 0xB6D5, 0x58AA, 0x8995, + 0x58AB, 0x8996, 0x58AC, 0x8997, 0x58AD, 0x8998, 0x58AE, 0x8999, 0x58AF, 0x899A, 0x58B0, 0x899B, 0x58B1, 0x899C, 0x58B2, 0x899D, + 0x58B3, 0x899E, 0x58B4, 0x899F, 0x58B5, 0x89A0, 0x58B6, 0x89A1, 0x58B7, 0x89A2, 0x58B8, 0x89A3, 0x58B9, 0x89A4, 0x58BA, 0x89A5, + 0x58BB, 0x89A6, 0x58BC, 0xDBD4, 0x58BD, 0x89A7, 0x58BE, 0x89A8, 0x58BF, 0x89A9, 0x58C0, 0x89AA, 0x58C1, 0xB1DA, 0x58C2, 0x89AB, + 0x58C3, 0x89AC, 0x58C4, 0x89AD, 0x58C5, 0xDBD5, 0x58C6, 0x89AE, 0x58C7, 0x89AF, 0x58C8, 0x89B0, 0x58C9, 0x89B1, 0x58CA, 0x89B2, + 0x58CB, 0x89B3, 0x58CC, 0x89B4, 0x58CD, 0x89B5, 0x58CE, 0x89B6, 0x58CF, 0x89B7, 0x58D0, 0x89B8, 0x58D1, 0xDBD6, 0x58D2, 0x89B9, + 0x58D3, 0x89BA, 0x58D4, 0x89BB, 0x58D5, 0xBABE, 0x58D6, 0x89BC, 0x58D7, 0x89BD, 0x58D8, 0x89BE, 0x58D9, 0x89BF, 0x58DA, 0x89C0, + 0x58DB, 0x89C1, 0x58DC, 0x89C2, 0x58DD, 0x89C3, 0x58DE, 0x89C4, 0x58DF, 0x89C5, 0x58E0, 0x89C6, 0x58E1, 0x89C7, 0x58E2, 0x89C8, + 0x58E3, 0x89C9, 0x58E4, 0xC8C0, 0x58E5, 0x89CA, 0x58E6, 0x89CB, 0x58E7, 0x89CC, 0x58E8, 0x89CD, 0x58E9, 0x89CE, 0x58EA, 0x89CF, + 0x58EB, 0xCABF, 0x58EC, 0xC8C9, 0x58ED, 0x89D0, 0x58EE, 0xD7B3, 0x58EF, 0x89D1, 0x58F0, 0xC9F9, 0x58F1, 0x89D2, 0x58F2, 0x89D3, + 0x58F3, 0xBFC7, 0x58F4, 0x89D4, 0x58F5, 0x89D5, 0x58F6, 0xBAF8, 0x58F7, 0x89D6, 0x58F8, 0x89D7, 0x58F9, 0xD2BC, 0x58FA, 0x89D8, + 0x58FB, 0x89D9, 0x58FC, 0x89DA, 0x58FD, 0x89DB, 0x58FE, 0x89DC, 0x58FF, 0x89DD, 0x5900, 0x89DE, 0x5901, 0x89DF, 0x5902, 0xE2BA, + 0x5903, 0x89E0, 0x5904, 0xB4A6, 0x5905, 0x89E1, 0x5906, 0x89E2, 0x5907, 0xB1B8, 0x5908, 0x89E3, 0x5909, 0x89E4, 0x590A, 0x89E5, + 0x590B, 0x89E6, 0x590C, 0x89E7, 0x590D, 0xB8B4, 0x590E, 0x89E8, 0x590F, 0xCFC4, 0x5910, 0x89E9, 0x5911, 0x89EA, 0x5912, 0x89EB, + 0x5913, 0x89EC, 0x5914, 0xD9E7, 0x5915, 0xCFA6, 0x5916, 0xCDE2, 0x5917, 0x89ED, 0x5918, 0x89EE, 0x5919, 0xD9ED, 0x591A, 0xB6E0, + 0x591B, 0x89EF, 0x591C, 0xD2B9, 0x591D, 0x89F0, 0x591E, 0x89F1, 0x591F, 0xB9BB, 0x5920, 0x89F2, 0x5921, 0x89F3, 0x5922, 0x89F4, + 0x5923, 0x89F5, 0x5924, 0xE2B9, 0x5925, 0xE2B7, 0x5926, 0x89F6, 0x5927, 0xB4F3, 0x5928, 0x89F7, 0x5929, 0xCCEC, 0x592A, 0xCCAB, + 0x592B, 0xB7F2, 0x592C, 0x89F8, 0x592D, 0xD8B2, 0x592E, 0xD1EB, 0x592F, 0xBABB, 0x5930, 0x89F9, 0x5931, 0xCAA7, 0x5932, 0x89FA, + 0x5933, 0x89FB, 0x5934, 0xCDB7, 0x5935, 0x89FC, 0x5936, 0x89FD, 0x5937, 0xD2C4, 0x5938, 0xBFE4, 0x5939, 0xBCD0, 0x593A, 0xB6E1, + 0x593B, 0x89FE, 0x593C, 0xDEC5, 0x593D, 0x8A40, 0x593E, 0x8A41, 0x593F, 0x8A42, 0x5940, 0x8A43, 0x5941, 0xDEC6, 0x5942, 0xDBBC, + 0x5943, 0x8A44, 0x5944, 0xD1D9, 0x5945, 0x8A45, 0x5946, 0x8A46, 0x5947, 0xC6E6, 0x5948, 0xC4CE, 0x5949, 0xB7EE, 0x594A, 0x8A47, + 0x594B, 0xB7DC, 0x594C, 0x8A48, 0x594D, 0x8A49, 0x594E, 0xBFFC, 0x594F, 0xD7E0, 0x5950, 0x8A4A, 0x5951, 0xC6F5, 0x5952, 0x8A4B, + 0x5953, 0x8A4C, 0x5954, 0xB1BC, 0x5955, 0xDEC8, 0x5956, 0xBDB1, 0x5957, 0xCCD7, 0x5958, 0xDECA, 0x5959, 0x8A4D, 0x595A, 0xDEC9, + 0x595B, 0x8A4E, 0x595C, 0x8A4F, 0x595D, 0x8A50, 0x595E, 0x8A51, 0x595F, 0x8A52, 0x5960, 0xB5EC, 0x5961, 0x8A53, 0x5962, 0xC9DD, + 0x5963, 0x8A54, 0x5964, 0x8A55, 0x5965, 0xB0C2, 0x5966, 0x8A56, 0x5967, 0x8A57, 0x5968, 0x8A58, 0x5969, 0x8A59, 0x596A, 0x8A5A, + 0x596B, 0x8A5B, 0x596C, 0x8A5C, 0x596D, 0x8A5D, 0x596E, 0x8A5E, 0x596F, 0x8A5F, 0x5970, 0x8A60, 0x5971, 0x8A61, 0x5972, 0x8A62, + 0x5973, 0xC5AE, 0x5974, 0xC5AB, 0x5975, 0x8A63, 0x5976, 0xC4CC, 0x5977, 0x8A64, 0x5978, 0xBCE9, 0x5979, 0xCBFD, 0x597A, 0x8A65, + 0x597B, 0x8A66, 0x597C, 0x8A67, 0x597D, 0xBAC3, 0x597E, 0x8A68, 0x597F, 0x8A69, 0x5980, 0x8A6A, 0x5981, 0xE5F9, 0x5982, 0xC8E7, + 0x5983, 0xE5FA, 0x5984, 0xCDFD, 0x5985, 0x8A6B, 0x5986, 0xD7B1, 0x5987, 0xB8BE, 0x5988, 0xC2E8, 0x5989, 0x8A6C, 0x598A, 0xC8D1, + 0x598B, 0x8A6D, 0x598C, 0x8A6E, 0x598D, 0xE5FB, 0x598E, 0x8A6F, 0x598F, 0x8A70, 0x5990, 0x8A71, 0x5991, 0x8A72, 0x5992, 0xB6CA, + 0x5993, 0xBCCB, 0x5994, 0x8A73, 0x5995, 0x8A74, 0x5996, 0xD1FD, 0x5997, 0xE6A1, 0x5998, 0x8A75, 0x5999, 0xC3EE, 0x599A, 0x8A76, + 0x599B, 0x8A77, 0x599C, 0x8A78, 0x599D, 0x8A79, 0x599E, 0xE6A4, 0x599F, 0x8A7A, 0x59A0, 0x8A7B, 0x59A1, 0x8A7C, 0x59A2, 0x8A7D, + 0x59A3, 0xE5FE, 0x59A4, 0xE6A5, 0x59A5, 0xCDD7, 0x59A6, 0x8A7E, 0x59A7, 0x8A80, 0x59A8, 0xB7C1, 0x59A9, 0xE5FC, 0x59AA, 0xE5FD, + 0x59AB, 0xE6A3, 0x59AC, 0x8A81, 0x59AD, 0x8A82, 0x59AE, 0xC4DD, 0x59AF, 0xE6A8, 0x59B0, 0x8A83, 0x59B1, 0x8A84, 0x59B2, 0xE6A7, + 0x59B3, 0x8A85, 0x59B4, 0x8A86, 0x59B5, 0x8A87, 0x59B6, 0x8A88, 0x59B7, 0x8A89, 0x59B8, 0x8A8A, 0x59B9, 0xC3C3, 0x59BA, 0x8A8B, + 0x59BB, 0xC6DE, 0x59BC, 0x8A8C, 0x59BD, 0x8A8D, 0x59BE, 0xE6AA, 0x59BF, 0x8A8E, 0x59C0, 0x8A8F, 0x59C1, 0x8A90, 0x59C2, 0x8A91, + 0x59C3, 0x8A92, 0x59C4, 0x8A93, 0x59C5, 0x8A94, 0x59C6, 0xC4B7, 0x59C7, 0x8A95, 0x59C8, 0x8A96, 0x59C9, 0x8A97, 0x59CA, 0xE6A2, + 0x59CB, 0xCABC, 0x59CC, 0x8A98, 0x59CD, 0x8A99, 0x59CE, 0x8A9A, 0x59CF, 0x8A9B, 0x59D0, 0xBDE3, 0x59D1, 0xB9C3, 0x59D2, 0xE6A6, + 0x59D3, 0xD0D5, 0x59D4, 0xCEAF, 0x59D5, 0x8A9C, 0x59D6, 0x8A9D, 0x59D7, 0xE6A9, 0x59D8, 0xE6B0, 0x59D9, 0x8A9E, 0x59DA, 0xD2A6, + 0x59DB, 0x8A9F, 0x59DC, 0xBDAA, 0x59DD, 0xE6AD, 0x59DE, 0x8AA0, 0x59DF, 0x8AA1, 0x59E0, 0x8AA2, 0x59E1, 0x8AA3, 0x59E2, 0x8AA4, + 0x59E3, 0xE6AF, 0x59E4, 0x8AA5, 0x59E5, 0xC0D1, 0x59E6, 0x8AA6, 0x59E7, 0x8AA7, 0x59E8, 0xD2CC, 0x59E9, 0x8AA8, 0x59EA, 0x8AA9, + 0x59EB, 0x8AAA, 0x59EC, 0xBCA7, 0x59ED, 0x8AAB, 0x59EE, 0x8AAC, 0x59EF, 0x8AAD, 0x59F0, 0x8AAE, 0x59F1, 0x8AAF, 0x59F2, 0x8AB0, + 0x59F3, 0x8AB1, 0x59F4, 0x8AB2, 0x59F5, 0x8AB3, 0x59F6, 0x8AB4, 0x59F7, 0x8AB5, 0x59F8, 0x8AB6, 0x59F9, 0xE6B1, 0x59FA, 0x8AB7, + 0x59FB, 0xD2F6, 0x59FC, 0x8AB8, 0x59FD, 0x8AB9, 0x59FE, 0x8ABA, 0x59FF, 0xD7CB, 0x5A00, 0x8ABB, 0x5A01, 0xCDFE, 0x5A02, 0x8ABC, + 0x5A03, 0xCDDE, 0x5A04, 0xC2A6, 0x5A05, 0xE6AB, 0x5A06, 0xE6AC, 0x5A07, 0xBDBF, 0x5A08, 0xE6AE, 0x5A09, 0xE6B3, 0x5A0A, 0x8ABD, + 0x5A0B, 0x8ABE, 0x5A0C, 0xE6B2, 0x5A0D, 0x8ABF, 0x5A0E, 0x8AC0, 0x5A0F, 0x8AC1, 0x5A10, 0x8AC2, 0x5A11, 0xE6B6, 0x5A12, 0x8AC3, + 0x5A13, 0xE6B8, 0x5A14, 0x8AC4, 0x5A15, 0x8AC5, 0x5A16, 0x8AC6, 0x5A17, 0x8AC7, 0x5A18, 0xC4EF, 0x5A19, 0x8AC8, 0x5A1A, 0x8AC9, + 0x5A1B, 0x8ACA, 0x5A1C, 0xC4C8, 0x5A1D, 0x8ACB, 0x5A1E, 0x8ACC, 0x5A1F, 0xBEEA, 0x5A20, 0xC9EF, 0x5A21, 0x8ACD, 0x5A22, 0x8ACE, + 0x5A23, 0xE6B7, 0x5A24, 0x8ACF, 0x5A25, 0xB6F0, 0x5A26, 0x8AD0, 0x5A27, 0x8AD1, 0x5A28, 0x8AD2, 0x5A29, 0xC3E4, 0x5A2A, 0x8AD3, + 0x5A2B, 0x8AD4, 0x5A2C, 0x8AD5, 0x5A2D, 0x8AD6, 0x5A2E, 0x8AD7, 0x5A2F, 0x8AD8, 0x5A30, 0x8AD9, 0x5A31, 0xD3E9, 0x5A32, 0xE6B4, + 0x5A33, 0x8ADA, 0x5A34, 0xE6B5, 0x5A35, 0x8ADB, 0x5A36, 0xC8A2, 0x5A37, 0x8ADC, 0x5A38, 0x8ADD, 0x5A39, 0x8ADE, 0x5A3A, 0x8ADF, + 0x5A3B, 0x8AE0, 0x5A3C, 0xE6BD, 0x5A3D, 0x8AE1, 0x5A3E, 0x8AE2, 0x5A3F, 0x8AE3, 0x5A40, 0xE6B9, 0x5A41, 0x8AE4, 0x5A42, 0x8AE5, + 0x5A43, 0x8AE6, 0x5A44, 0x8AE7, 0x5A45, 0x8AE8, 0x5A46, 0xC6C5, 0x5A47, 0x8AE9, 0x5A48, 0x8AEA, 0x5A49, 0xCDF1, 0x5A4A, 0xE6BB, + 0x5A4B, 0x8AEB, 0x5A4C, 0x8AEC, 0x5A4D, 0x8AED, 0x5A4E, 0x8AEE, 0x5A4F, 0x8AEF, 0x5A50, 0x8AF0, 0x5A51, 0x8AF1, 0x5A52, 0x8AF2, + 0x5A53, 0x8AF3, 0x5A54, 0x8AF4, 0x5A55, 0xE6BC, 0x5A56, 0x8AF5, 0x5A57, 0x8AF6, 0x5A58, 0x8AF7, 0x5A59, 0x8AF8, 0x5A5A, 0xBBE9, + 0x5A5B, 0x8AF9, 0x5A5C, 0x8AFA, 0x5A5D, 0x8AFB, 0x5A5E, 0x8AFC, 0x5A5F, 0x8AFD, 0x5A60, 0x8AFE, 0x5A61, 0x8B40, 0x5A62, 0xE6BE, + 0x5A63, 0x8B41, 0x5A64, 0x8B42, 0x5A65, 0x8B43, 0x5A66, 0x8B44, 0x5A67, 0xE6BA, 0x5A68, 0x8B45, 0x5A69, 0x8B46, 0x5A6A, 0xC0B7, + 0x5A6B, 0x8B47, 0x5A6C, 0x8B48, 0x5A6D, 0x8B49, 0x5A6E, 0x8B4A, 0x5A6F, 0x8B4B, 0x5A70, 0x8B4C, 0x5A71, 0x8B4D, 0x5A72, 0x8B4E, + 0x5A73, 0x8B4F, 0x5A74, 0xD3A4, 0x5A75, 0xE6BF, 0x5A76, 0xC9F4, 0x5A77, 0xE6C3, 0x5A78, 0x8B50, 0x5A79, 0x8B51, 0x5A7A, 0xE6C4, + 0x5A7B, 0x8B52, 0x5A7C, 0x8B53, 0x5A7D, 0x8B54, 0x5A7E, 0x8B55, 0x5A7F, 0xD0F6, 0x5A80, 0x8B56, 0x5A81, 0x8B57, 0x5A82, 0x8B58, + 0x5A83, 0x8B59, 0x5A84, 0x8B5A, 0x5A85, 0x8B5B, 0x5A86, 0x8B5C, 0x5A87, 0x8B5D, 0x5A88, 0x8B5E, 0x5A89, 0x8B5F, 0x5A8A, 0x8B60, + 0x5A8B, 0x8B61, 0x5A8C, 0x8B62, 0x5A8D, 0x8B63, 0x5A8E, 0x8B64, 0x5A8F, 0x8B65, 0x5A90, 0x8B66, 0x5A91, 0x8B67, 0x5A92, 0xC3BD, + 0x5A93, 0x8B68, 0x5A94, 0x8B69, 0x5A95, 0x8B6A, 0x5A96, 0x8B6B, 0x5A97, 0x8B6C, 0x5A98, 0x8B6D, 0x5A99, 0x8B6E, 0x5A9A, 0xC3C4, + 0x5A9B, 0xE6C2, 0x5A9C, 0x8B6F, 0x5A9D, 0x8B70, 0x5A9E, 0x8B71, 0x5A9F, 0x8B72, 0x5AA0, 0x8B73, 0x5AA1, 0x8B74, 0x5AA2, 0x8B75, + 0x5AA3, 0x8B76, 0x5AA4, 0x8B77, 0x5AA5, 0x8B78, 0x5AA6, 0x8B79, 0x5AA7, 0x8B7A, 0x5AA8, 0x8B7B, 0x5AA9, 0x8B7C, 0x5AAA, 0xE6C1, + 0x5AAB, 0x8B7D, 0x5AAC, 0x8B7E, 0x5AAD, 0x8B80, 0x5AAE, 0x8B81, 0x5AAF, 0x8B82, 0x5AB0, 0x8B83, 0x5AB1, 0x8B84, 0x5AB2, 0xE6C7, + 0x5AB3, 0xCFB1, 0x5AB4, 0x8B85, 0x5AB5, 0xEBF4, 0x5AB6, 0x8B86, 0x5AB7, 0x8B87, 0x5AB8, 0xE6CA, 0x5AB9, 0x8B88, 0x5ABA, 0x8B89, + 0x5ABB, 0x8B8A, 0x5ABC, 0x8B8B, 0x5ABD, 0x8B8C, 0x5ABE, 0xE6C5, 0x5ABF, 0x8B8D, 0x5AC0, 0x8B8E, 0x5AC1, 0xBCDE, 0x5AC2, 0xC9A9, + 0x5AC3, 0x8B8F, 0x5AC4, 0x8B90, 0x5AC5, 0x8B91, 0x5AC6, 0x8B92, 0x5AC7, 0x8B93, 0x5AC8, 0x8B94, 0x5AC9, 0xBCB5, 0x5ACA, 0x8B95, + 0x5ACB, 0x8B96, 0x5ACC, 0xCFD3, 0x5ACD, 0x8B97, 0x5ACE, 0x8B98, 0x5ACF, 0x8B99, 0x5AD0, 0x8B9A, 0x5AD1, 0x8B9B, 0x5AD2, 0xE6C8, + 0x5AD3, 0x8B9C, 0x5AD4, 0xE6C9, 0x5AD5, 0x8B9D, 0x5AD6, 0xE6CE, 0x5AD7, 0x8B9E, 0x5AD8, 0xE6D0, 0x5AD9, 0x8B9F, 0x5ADA, 0x8BA0, + 0x5ADB, 0x8BA1, 0x5ADC, 0xE6D1, 0x5ADD, 0x8BA2, 0x5ADE, 0x8BA3, 0x5ADF, 0x8BA4, 0x5AE0, 0xE6CB, 0x5AE1, 0xB5D5, 0x5AE2, 0x8BA5, + 0x5AE3, 0xE6CC, 0x5AE4, 0x8BA6, 0x5AE5, 0x8BA7, 0x5AE6, 0xE6CF, 0x5AE7, 0x8BA8, 0x5AE8, 0x8BA9, 0x5AE9, 0xC4DB, 0x5AEA, 0x8BAA, + 0x5AEB, 0xE6C6, 0x5AEC, 0x8BAB, 0x5AED, 0x8BAC, 0x5AEE, 0x8BAD, 0x5AEF, 0x8BAE, 0x5AF0, 0x8BAF, 0x5AF1, 0xE6CD, 0x5AF2, 0x8BB0, + 0x5AF3, 0x8BB1, 0x5AF4, 0x8BB2, 0x5AF5, 0x8BB3, 0x5AF6, 0x8BB4, 0x5AF7, 0x8BB5, 0x5AF8, 0x8BB6, 0x5AF9, 0x8BB7, 0x5AFA, 0x8BB8, + 0x5AFB, 0x8BB9, 0x5AFC, 0x8BBA, 0x5AFD, 0x8BBB, 0x5AFE, 0x8BBC, 0x5AFF, 0x8BBD, 0x5B00, 0x8BBE, 0x5B01, 0x8BBF, 0x5B02, 0x8BC0, + 0x5B03, 0x8BC1, 0x5B04, 0x8BC2, 0x5B05, 0x8BC3, 0x5B06, 0x8BC4, 0x5B07, 0x8BC5, 0x5B08, 0x8BC6, 0x5B09, 0xE6D2, 0x5B0A, 0x8BC7, + 0x5B0B, 0x8BC8, 0x5B0C, 0x8BC9, 0x5B0D, 0x8BCA, 0x5B0E, 0x8BCB, 0x5B0F, 0x8BCC, 0x5B10, 0x8BCD, 0x5B11, 0x8BCE, 0x5B12, 0x8BCF, + 0x5B13, 0x8BD0, 0x5B14, 0x8BD1, 0x5B15, 0x8BD2, 0x5B16, 0xE6D4, 0x5B17, 0xE6D3, 0x5B18, 0x8BD3, 0x5B19, 0x8BD4, 0x5B1A, 0x8BD5, + 0x5B1B, 0x8BD6, 0x5B1C, 0x8BD7, 0x5B1D, 0x8BD8, 0x5B1E, 0x8BD9, 0x5B1F, 0x8BDA, 0x5B20, 0x8BDB, 0x5B21, 0x8BDC, 0x5B22, 0x8BDD, + 0x5B23, 0x8BDE, 0x5B24, 0x8BDF, 0x5B25, 0x8BE0, 0x5B26, 0x8BE1, 0x5B27, 0x8BE2, 0x5B28, 0x8BE3, 0x5B29, 0x8BE4, 0x5B2A, 0x8BE5, + 0x5B2B, 0x8BE6, 0x5B2C, 0x8BE7, 0x5B2D, 0x8BE8, 0x5B2E, 0x8BE9, 0x5B2F, 0x8BEA, 0x5B30, 0x8BEB, 0x5B31, 0x8BEC, 0x5B32, 0xE6D5, + 0x5B33, 0x8BED, 0x5B34, 0xD9F8, 0x5B35, 0x8BEE, 0x5B36, 0x8BEF, 0x5B37, 0xE6D6, 0x5B38, 0x8BF0, 0x5B39, 0x8BF1, 0x5B3A, 0x8BF2, + 0x5B3B, 0x8BF3, 0x5B3C, 0x8BF4, 0x5B3D, 0x8BF5, 0x5B3E, 0x8BF6, 0x5B3F, 0x8BF7, 0x5B40, 0xE6D7, 0x5B41, 0x8BF8, 0x5B42, 0x8BF9, + 0x5B43, 0x8BFA, 0x5B44, 0x8BFB, 0x5B45, 0x8BFC, 0x5B46, 0x8BFD, 0x5B47, 0x8BFE, 0x5B48, 0x8C40, 0x5B49, 0x8C41, 0x5B4A, 0x8C42, + 0x5B4B, 0x8C43, 0x5B4C, 0x8C44, 0x5B4D, 0x8C45, 0x5B4E, 0x8C46, 0x5B4F, 0x8C47, 0x5B50, 0xD7D3, 0x5B51, 0xE6DD, 0x5B52, 0x8C48, + 0x5B53, 0xE6DE, 0x5B54, 0xBFD7, 0x5B55, 0xD4D0, 0x5B56, 0x8C49, 0x5B57, 0xD7D6, 0x5B58, 0xB4E6, 0x5B59, 0xCBEF, 0x5B5A, 0xE6DA, + 0x5B5B, 0xD8C3, 0x5B5C, 0xD7CE, 0x5B5D, 0xD0A2, 0x5B5E, 0x8C4A, 0x5B5F, 0xC3CF, 0x5B60, 0x8C4B, 0x5B61, 0x8C4C, 0x5B62, 0xE6DF, + 0x5B63, 0xBCBE, 0x5B64, 0xB9C2, 0x5B65, 0xE6DB, 0x5B66, 0xD1A7, 0x5B67, 0x8C4D, 0x5B68, 0x8C4E, 0x5B69, 0xBAA2, 0x5B6A, 0xC2CF, + 0x5B6B, 0x8C4F, 0x5B6C, 0xD8AB, 0x5B6D, 0x8C50, 0x5B6E, 0x8C51, 0x5B6F, 0x8C52, 0x5B70, 0xCAEB, 0x5B71, 0xE5EE, 0x5B72, 0x8C53, + 0x5B73, 0xE6DC, 0x5B74, 0x8C54, 0x5B75, 0xB7F5, 0x5B76, 0x8C55, 0x5B77, 0x8C56, 0x5B78, 0x8C57, 0x5B79, 0x8C58, 0x5B7A, 0xC8E6, + 0x5B7B, 0x8C59, 0x5B7C, 0x8C5A, 0x5B7D, 0xC4F5, 0x5B7E, 0x8C5B, 0x5B7F, 0x8C5C, 0x5B80, 0xE5B2, 0x5B81, 0xC4FE, 0x5B82, 0x8C5D, + 0x5B83, 0xCBFC, 0x5B84, 0xE5B3, 0x5B85, 0xD5AC, 0x5B86, 0x8C5E, 0x5B87, 0xD3EE, 0x5B88, 0xCAD8, 0x5B89, 0xB0B2, 0x5B8A, 0x8C5F, + 0x5B8B, 0xCBCE, 0x5B8C, 0xCDEA, 0x5B8D, 0x8C60, 0x5B8E, 0x8C61, 0x5B8F, 0xBAEA, 0x5B90, 0x8C62, 0x5B91, 0x8C63, 0x5B92, 0x8C64, + 0x5B93, 0xE5B5, 0x5B94, 0x8C65, 0x5B95, 0xE5B4, 0x5B96, 0x8C66, 0x5B97, 0xD7DA, 0x5B98, 0xB9D9, 0x5B99, 0xD6E6, 0x5B9A, 0xB6A8, + 0x5B9B, 0xCDF0, 0x5B9C, 0xD2CB, 0x5B9D, 0xB1A6, 0x5B9E, 0xCAB5, 0x5B9F, 0x8C67, 0x5BA0, 0xB3E8, 0x5BA1, 0xC9F3, 0x5BA2, 0xBFCD, + 0x5BA3, 0xD0FB, 0x5BA4, 0xCAD2, 0x5BA5, 0xE5B6, 0x5BA6, 0xBBC2, 0x5BA7, 0x8C68, 0x5BA8, 0x8C69, 0x5BA9, 0x8C6A, 0x5BAA, 0xCFDC, + 0x5BAB, 0xB9AC, 0x5BAC, 0x8C6B, 0x5BAD, 0x8C6C, 0x5BAE, 0x8C6D, 0x5BAF, 0x8C6E, 0x5BB0, 0xD4D7, 0x5BB1, 0x8C6F, 0x5BB2, 0x8C70, + 0x5BB3, 0xBAA6, 0x5BB4, 0xD1E7, 0x5BB5, 0xCFFC, 0x5BB6, 0xBCD2, 0x5BB7, 0x8C71, 0x5BB8, 0xE5B7, 0x5BB9, 0xC8DD, 0x5BBA, 0x8C72, + 0x5BBB, 0x8C73, 0x5BBC, 0x8C74, 0x5BBD, 0xBFED, 0x5BBE, 0xB1F6, 0x5BBF, 0xCBDE, 0x5BC0, 0x8C75, 0x5BC1, 0x8C76, 0x5BC2, 0xBCC5, + 0x5BC3, 0x8C77, 0x5BC4, 0xBCC4, 0x5BC5, 0xD2FA, 0x5BC6, 0xC3DC, 0x5BC7, 0xBFDC, 0x5BC8, 0x8C78, 0x5BC9, 0x8C79, 0x5BCA, 0x8C7A, + 0x5BCB, 0x8C7B, 0x5BCC, 0xB8BB, 0x5BCD, 0x8C7C, 0x5BCE, 0x8C7D, 0x5BCF, 0x8C7E, 0x5BD0, 0xC3C2, 0x5BD1, 0x8C80, 0x5BD2, 0xBAAE, + 0x5BD3, 0xD4A2, 0x5BD4, 0x8C81, 0x5BD5, 0x8C82, 0x5BD6, 0x8C83, 0x5BD7, 0x8C84, 0x5BD8, 0x8C85, 0x5BD9, 0x8C86, 0x5BDA, 0x8C87, + 0x5BDB, 0x8C88, 0x5BDC, 0x8C89, 0x5BDD, 0xC7DE, 0x5BDE, 0xC4AF, 0x5BDF, 0xB2EC, 0x5BE0, 0x8C8A, 0x5BE1, 0xB9D1, 0x5BE2, 0x8C8B, + 0x5BE3, 0x8C8C, 0x5BE4, 0xE5BB, 0x5BE5, 0xC1C8, 0x5BE6, 0x8C8D, 0x5BE7, 0x8C8E, 0x5BE8, 0xD5AF, 0x5BE9, 0x8C8F, 0x5BEA, 0x8C90, + 0x5BEB, 0x8C91, 0x5BEC, 0x8C92, 0x5BED, 0x8C93, 0x5BEE, 0xE5BC, 0x5BEF, 0x8C94, 0x5BF0, 0xE5BE, 0x5BF1, 0x8C95, 0x5BF2, 0x8C96, + 0x5BF3, 0x8C97, 0x5BF4, 0x8C98, 0x5BF5, 0x8C99, 0x5BF6, 0x8C9A, 0x5BF7, 0x8C9B, 0x5BF8, 0xB4E7, 0x5BF9, 0xB6D4, 0x5BFA, 0xCBC2, + 0x5BFB, 0xD1B0, 0x5BFC, 0xB5BC, 0x5BFD, 0x8C9C, 0x5BFE, 0x8C9D, 0x5BFF, 0xCAD9, 0x5C00, 0x8C9E, 0x5C01, 0xB7E2, 0x5C02, 0x8C9F, + 0x5C03, 0x8CA0, 0x5C04, 0xC9E4, 0x5C05, 0x8CA1, 0x5C06, 0xBDAB, 0x5C07, 0x8CA2, 0x5C08, 0x8CA3, 0x5C09, 0xCEBE, 0x5C0A, 0xD7F0, + 0x5C0B, 0x8CA4, 0x5C0C, 0x8CA5, 0x5C0D, 0x8CA6, 0x5C0E, 0x8CA7, 0x5C0F, 0xD0A1, 0x5C10, 0x8CA8, 0x5C11, 0xC9D9, 0x5C12, 0x8CA9, + 0x5C13, 0x8CAA, 0x5C14, 0xB6FB, 0x5C15, 0xE6D8, 0x5C16, 0xBCE2, 0x5C17, 0x8CAB, 0x5C18, 0xB3BE, 0x5C19, 0x8CAC, 0x5C1A, 0xC9D0, + 0x5C1B, 0x8CAD, 0x5C1C, 0xE6D9, 0x5C1D, 0xB3A2, 0x5C1E, 0x8CAE, 0x5C1F, 0x8CAF, 0x5C20, 0x8CB0, 0x5C21, 0x8CB1, 0x5C22, 0xDECC, + 0x5C23, 0x8CB2, 0x5C24, 0xD3C8, 0x5C25, 0xDECD, 0x5C26, 0x8CB3, 0x5C27, 0xD2A2, 0x5C28, 0x8CB4, 0x5C29, 0x8CB5, 0x5C2A, 0x8CB6, + 0x5C2B, 0x8CB7, 0x5C2C, 0xDECE, 0x5C2D, 0x8CB8, 0x5C2E, 0x8CB9, 0x5C2F, 0x8CBA, 0x5C30, 0x8CBB, 0x5C31, 0xBECD, 0x5C32, 0x8CBC, + 0x5C33, 0x8CBD, 0x5C34, 0xDECF, 0x5C35, 0x8CBE, 0x5C36, 0x8CBF, 0x5C37, 0x8CC0, 0x5C38, 0xCAAC, 0x5C39, 0xD2FC, 0x5C3A, 0xB3DF, + 0x5C3B, 0xE5EA, 0x5C3C, 0xC4E1, 0x5C3D, 0xBEA1, 0x5C3E, 0xCEB2, 0x5C3F, 0xC4F2, 0x5C40, 0xBED6, 0x5C41, 0xC6A8, 0x5C42, 0xB2E3, + 0x5C43, 0x8CC1, 0x5C44, 0x8CC2, 0x5C45, 0xBED3, 0x5C46, 0x8CC3, 0x5C47, 0x8CC4, 0x5C48, 0xC7FC, 0x5C49, 0xCCEB, 0x5C4A, 0xBDEC, + 0x5C4B, 0xCEDD, 0x5C4C, 0x8CC5, 0x5C4D, 0x8CC6, 0x5C4E, 0xCABA, 0x5C4F, 0xC6C1, 0x5C50, 0xE5EC, 0x5C51, 0xD0BC, 0x5C52, 0x8CC7, + 0x5C53, 0x8CC8, 0x5C54, 0x8CC9, 0x5C55, 0xD5B9, 0x5C56, 0x8CCA, 0x5C57, 0x8CCB, 0x5C58, 0x8CCC, 0x5C59, 0xE5ED, 0x5C5A, 0x8CCD, + 0x5C5B, 0x8CCE, 0x5C5C, 0x8CCF, 0x5C5D, 0x8CD0, 0x5C5E, 0xCAF4, 0x5C5F, 0x8CD1, 0x5C60, 0xCDC0, 0x5C61, 0xC2C5, 0x5C62, 0x8CD2, + 0x5C63, 0xE5EF, 0x5C64, 0x8CD3, 0x5C65, 0xC2C4, 0x5C66, 0xE5F0, 0x5C67, 0x8CD4, 0x5C68, 0x8CD5, 0x5C69, 0x8CD6, 0x5C6A, 0x8CD7, + 0x5C6B, 0x8CD8, 0x5C6C, 0x8CD9, 0x5C6D, 0x8CDA, 0x5C6E, 0xE5F8, 0x5C6F, 0xCDCD, 0x5C70, 0x8CDB, 0x5C71, 0xC9BD, 0x5C72, 0x8CDC, + 0x5C73, 0x8CDD, 0x5C74, 0x8CDE, 0x5C75, 0x8CDF, 0x5C76, 0x8CE0, 0x5C77, 0x8CE1, 0x5C78, 0x8CE2, 0x5C79, 0xD2D9, 0x5C7A, 0xE1A8, + 0x5C7B, 0x8CE3, 0x5C7C, 0x8CE4, 0x5C7D, 0x8CE5, 0x5C7E, 0x8CE6, 0x5C7F, 0xD3EC, 0x5C80, 0x8CE7, 0x5C81, 0xCBEA, 0x5C82, 0xC6F1, + 0x5C83, 0x8CE8, 0x5C84, 0x8CE9, 0x5C85, 0x8CEA, 0x5C86, 0x8CEB, 0x5C87, 0x8CEC, 0x5C88, 0xE1AC, 0x5C89, 0x8CED, 0x5C8A, 0x8CEE, + 0x5C8B, 0x8CEF, 0x5C8C, 0xE1A7, 0x5C8D, 0xE1A9, 0x5C8E, 0x8CF0, 0x5C8F, 0x8CF1, 0x5C90, 0xE1AA, 0x5C91, 0xE1AF, 0x5C92, 0x8CF2, + 0x5C93, 0x8CF3, 0x5C94, 0xB2ED, 0x5C95, 0x8CF4, 0x5C96, 0xE1AB, 0x5C97, 0xB8DA, 0x5C98, 0xE1AD, 0x5C99, 0xE1AE, 0x5C9A, 0xE1B0, + 0x5C9B, 0xB5BA, 0x5C9C, 0xE1B1, 0x5C9D, 0x8CF5, 0x5C9E, 0x8CF6, 0x5C9F, 0x8CF7, 0x5CA0, 0x8CF8, 0x5CA1, 0x8CF9, 0x5CA2, 0xE1B3, + 0x5CA3, 0xE1B8, 0x5CA4, 0x8CFA, 0x5CA5, 0x8CFB, 0x5CA6, 0x8CFC, 0x5CA7, 0x8CFD, 0x5CA8, 0x8CFE, 0x5CA9, 0xD1D2, 0x5CAA, 0x8D40, + 0x5CAB, 0xE1B6, 0x5CAC, 0xE1B5, 0x5CAD, 0xC1EB, 0x5CAE, 0x8D41, 0x5CAF, 0x8D42, 0x5CB0, 0x8D43, 0x5CB1, 0xE1B7, 0x5CB2, 0x8D44, + 0x5CB3, 0xD4C0, 0x5CB4, 0x8D45, 0x5CB5, 0xE1B2, 0x5CB6, 0x8D46, 0x5CB7, 0xE1BA, 0x5CB8, 0xB0B6, 0x5CB9, 0x8D47, 0x5CBA, 0x8D48, + 0x5CBB, 0x8D49, 0x5CBC, 0x8D4A, 0x5CBD, 0xE1B4, 0x5CBE, 0x8D4B, 0x5CBF, 0xBFF9, 0x5CC0, 0x8D4C, 0x5CC1, 0xE1B9, 0x5CC2, 0x8D4D, + 0x5CC3, 0x8D4E, 0x5CC4, 0xE1BB, 0x5CC5, 0x8D4F, 0x5CC6, 0x8D50, 0x5CC7, 0x8D51, 0x5CC8, 0x8D52, 0x5CC9, 0x8D53, 0x5CCA, 0x8D54, + 0x5CCB, 0xE1BE, 0x5CCC, 0x8D55, 0x5CCD, 0x8D56, 0x5CCE, 0x8D57, 0x5CCF, 0x8D58, 0x5CD0, 0x8D59, 0x5CD1, 0x8D5A, 0x5CD2, 0xE1BC, + 0x5CD3, 0x8D5B, 0x5CD4, 0x8D5C, 0x5CD5, 0x8D5D, 0x5CD6, 0x8D5E, 0x5CD7, 0x8D5F, 0x5CD8, 0x8D60, 0x5CD9, 0xD6C5, 0x5CDA, 0x8D61, + 0x5CDB, 0x8D62, 0x5CDC, 0x8D63, 0x5CDD, 0x8D64, 0x5CDE, 0x8D65, 0x5CDF, 0x8D66, 0x5CE0, 0x8D67, 0x5CE1, 0xCFBF, 0x5CE2, 0x8D68, + 0x5CE3, 0x8D69, 0x5CE4, 0xE1BD, 0x5CE5, 0xE1BF, 0x5CE6, 0xC2CD, 0x5CE7, 0x8D6A, 0x5CE8, 0xB6EB, 0x5CE9, 0x8D6B, 0x5CEA, 0xD3F8, + 0x5CEB, 0x8D6C, 0x5CEC, 0x8D6D, 0x5CED, 0xC7CD, 0x5CEE, 0x8D6E, 0x5CEF, 0x8D6F, 0x5CF0, 0xB7E5, 0x5CF1, 0x8D70, 0x5CF2, 0x8D71, + 0x5CF3, 0x8D72, 0x5CF4, 0x8D73, 0x5CF5, 0x8D74, 0x5CF6, 0x8D75, 0x5CF7, 0x8D76, 0x5CF8, 0x8D77, 0x5CF9, 0x8D78, 0x5CFA, 0x8D79, + 0x5CFB, 0xBEFE, 0x5CFC, 0x8D7A, 0x5CFD, 0x8D7B, 0x5CFE, 0x8D7C, 0x5CFF, 0x8D7D, 0x5D00, 0x8D7E, 0x5D01, 0x8D80, 0x5D02, 0xE1C0, + 0x5D03, 0xE1C1, 0x5D04, 0x8D81, 0x5D05, 0x8D82, 0x5D06, 0xE1C7, 0x5D07, 0xB3E7, 0x5D08, 0x8D83, 0x5D09, 0x8D84, 0x5D0A, 0x8D85, + 0x5D0B, 0x8D86, 0x5D0C, 0x8D87, 0x5D0D, 0x8D88, 0x5D0E, 0xC6E9, 0x5D0F, 0x8D89, 0x5D10, 0x8D8A, 0x5D11, 0x8D8B, 0x5D12, 0x8D8C, + 0x5D13, 0x8D8D, 0x5D14, 0xB4DE, 0x5D15, 0x8D8E, 0x5D16, 0xD1C2, 0x5D17, 0x8D8F, 0x5D18, 0x8D90, 0x5D19, 0x8D91, 0x5D1A, 0x8D92, + 0x5D1B, 0xE1C8, 0x5D1C, 0x8D93, 0x5D1D, 0x8D94, 0x5D1E, 0xE1C6, 0x5D1F, 0x8D95, 0x5D20, 0x8D96, 0x5D21, 0x8D97, 0x5D22, 0x8D98, + 0x5D23, 0x8D99, 0x5D24, 0xE1C5, 0x5D25, 0x8D9A, 0x5D26, 0xE1C3, 0x5D27, 0xE1C2, 0x5D28, 0x8D9B, 0x5D29, 0xB1C0, 0x5D2A, 0x8D9C, + 0x5D2B, 0x8D9D, 0x5D2C, 0x8D9E, 0x5D2D, 0xD5B8, 0x5D2E, 0xE1C4, 0x5D2F, 0x8D9F, 0x5D30, 0x8DA0, 0x5D31, 0x8DA1, 0x5D32, 0x8DA2, + 0x5D33, 0x8DA3, 0x5D34, 0xE1CB, 0x5D35, 0x8DA4, 0x5D36, 0x8DA5, 0x5D37, 0x8DA6, 0x5D38, 0x8DA7, 0x5D39, 0x8DA8, 0x5D3A, 0x8DA9, + 0x5D3B, 0x8DAA, 0x5D3C, 0x8DAB, 0x5D3D, 0xE1CC, 0x5D3E, 0xE1CA, 0x5D3F, 0x8DAC, 0x5D40, 0x8DAD, 0x5D41, 0x8DAE, 0x5D42, 0x8DAF, + 0x5D43, 0x8DB0, 0x5D44, 0x8DB1, 0x5D45, 0x8DB2, 0x5D46, 0x8DB3, 0x5D47, 0xEFFA, 0x5D48, 0x8DB4, 0x5D49, 0x8DB5, 0x5D4A, 0xE1D3, + 0x5D4B, 0xE1D2, 0x5D4C, 0xC7B6, 0x5D4D, 0x8DB6, 0x5D4E, 0x8DB7, 0x5D4F, 0x8DB8, 0x5D50, 0x8DB9, 0x5D51, 0x8DBA, 0x5D52, 0x8DBB, + 0x5D53, 0x8DBC, 0x5D54, 0x8DBD, 0x5D55, 0x8DBE, 0x5D56, 0x8DBF, 0x5D57, 0x8DC0, 0x5D58, 0xE1C9, 0x5D59, 0x8DC1, 0x5D5A, 0x8DC2, + 0x5D5B, 0xE1CE, 0x5D5C, 0x8DC3, 0x5D5D, 0xE1D0, 0x5D5E, 0x8DC4, 0x5D5F, 0x8DC5, 0x5D60, 0x8DC6, 0x5D61, 0x8DC7, 0x5D62, 0x8DC8, + 0x5D63, 0x8DC9, 0x5D64, 0x8DCA, 0x5D65, 0x8DCB, 0x5D66, 0x8DCC, 0x5D67, 0x8DCD, 0x5D68, 0x8DCE, 0x5D69, 0xE1D4, 0x5D6A, 0x8DCF, + 0x5D6B, 0xE1D1, 0x5D6C, 0xE1CD, 0x5D6D, 0x8DD0, 0x5D6E, 0x8DD1, 0x5D6F, 0xE1CF, 0x5D70, 0x8DD2, 0x5D71, 0x8DD3, 0x5D72, 0x8DD4, + 0x5D73, 0x8DD5, 0x5D74, 0xE1D5, 0x5D75, 0x8DD6, 0x5D76, 0x8DD7, 0x5D77, 0x8DD8, 0x5D78, 0x8DD9, 0x5D79, 0x8DDA, 0x5D7A, 0x8DDB, + 0x5D7B, 0x8DDC, 0x5D7C, 0x8DDD, 0x5D7D, 0x8DDE, 0x5D7E, 0x8DDF, 0x5D7F, 0x8DE0, 0x5D80, 0x8DE1, 0x5D81, 0x8DE2, 0x5D82, 0xE1D6, + 0x5D83, 0x8DE3, 0x5D84, 0x8DE4, 0x5D85, 0x8DE5, 0x5D86, 0x8DE6, 0x5D87, 0x8DE7, 0x5D88, 0x8DE8, 0x5D89, 0x8DE9, 0x5D8A, 0x8DEA, + 0x5D8B, 0x8DEB, 0x5D8C, 0x8DEC, 0x5D8D, 0x8DED, 0x5D8E, 0x8DEE, 0x5D8F, 0x8DEF, 0x5D90, 0x8DF0, 0x5D91, 0x8DF1, 0x5D92, 0x8DF2, + 0x5D93, 0x8DF3, 0x5D94, 0x8DF4, 0x5D95, 0x8DF5, 0x5D96, 0x8DF6, 0x5D97, 0x8DF7, 0x5D98, 0x8DF8, 0x5D99, 0xE1D7, 0x5D9A, 0x8DF9, + 0x5D9B, 0x8DFA, 0x5D9C, 0x8DFB, 0x5D9D, 0xE1D8, 0x5D9E, 0x8DFC, 0x5D9F, 0x8DFD, 0x5DA0, 0x8DFE, 0x5DA1, 0x8E40, 0x5DA2, 0x8E41, + 0x5DA3, 0x8E42, 0x5DA4, 0x8E43, 0x5DA5, 0x8E44, 0x5DA6, 0x8E45, 0x5DA7, 0x8E46, 0x5DA8, 0x8E47, 0x5DA9, 0x8E48, 0x5DAA, 0x8E49, + 0x5DAB, 0x8E4A, 0x5DAC, 0x8E4B, 0x5DAD, 0x8E4C, 0x5DAE, 0x8E4D, 0x5DAF, 0x8E4E, 0x5DB0, 0x8E4F, 0x5DB1, 0x8E50, 0x5DB2, 0x8E51, + 0x5DB3, 0x8E52, 0x5DB4, 0x8E53, 0x5DB5, 0x8E54, 0x5DB6, 0x8E55, 0x5DB7, 0xE1DA, 0x5DB8, 0x8E56, 0x5DB9, 0x8E57, 0x5DBA, 0x8E58, + 0x5DBB, 0x8E59, 0x5DBC, 0x8E5A, 0x5DBD, 0x8E5B, 0x5DBE, 0x8E5C, 0x5DBF, 0x8E5D, 0x5DC0, 0x8E5E, 0x5DC1, 0x8E5F, 0x5DC2, 0x8E60, + 0x5DC3, 0x8E61, 0x5DC4, 0x8E62, 0x5DC5, 0xE1DB, 0x5DC6, 0x8E63, 0x5DC7, 0x8E64, 0x5DC8, 0x8E65, 0x5DC9, 0x8E66, 0x5DCA, 0x8E67, + 0x5DCB, 0x8E68, 0x5DCC, 0x8E69, 0x5DCD, 0xCEA1, 0x5DCE, 0x8E6A, 0x5DCF, 0x8E6B, 0x5DD0, 0x8E6C, 0x5DD1, 0x8E6D, 0x5DD2, 0x8E6E, + 0x5DD3, 0x8E6F, 0x5DD4, 0x8E70, 0x5DD5, 0x8E71, 0x5DD6, 0x8E72, 0x5DD7, 0x8E73, 0x5DD8, 0x8E74, 0x5DD9, 0x8E75, 0x5DDA, 0x8E76, + 0x5DDB, 0xE7DD, 0x5DDC, 0x8E77, 0x5DDD, 0xB4A8, 0x5DDE, 0xD6DD, 0x5DDF, 0x8E78, 0x5DE0, 0x8E79, 0x5DE1, 0xD1B2, 0x5DE2, 0xB3B2, + 0x5DE3, 0x8E7A, 0x5DE4, 0x8E7B, 0x5DE5, 0xB9A4, 0x5DE6, 0xD7F3, 0x5DE7, 0xC7C9, 0x5DE8, 0xBEDE, 0x5DE9, 0xB9AE, 0x5DEA, 0x8E7C, + 0x5DEB, 0xCED7, 0x5DEC, 0x8E7D, 0x5DED, 0x8E7E, 0x5DEE, 0xB2EE, 0x5DEF, 0xDBCF, 0x5DF0, 0x8E80, 0x5DF1, 0xBCBA, 0x5DF2, 0xD2D1, + 0x5DF3, 0xCBC8, 0x5DF4, 0xB0CD, 0x5DF5, 0x8E81, 0x5DF6, 0x8E82, 0x5DF7, 0xCFEF, 0x5DF8, 0x8E83, 0x5DF9, 0x8E84, 0x5DFA, 0x8E85, + 0x5DFB, 0x8E86, 0x5DFC, 0x8E87, 0x5DFD, 0xD9E3, 0x5DFE, 0xBDED, 0x5DFF, 0x8E88, 0x5E00, 0x8E89, 0x5E01, 0xB1D2, 0x5E02, 0xCAD0, + 0x5E03, 0xB2BC, 0x5E04, 0x8E8A, 0x5E05, 0xCBA7, 0x5E06, 0xB7AB, 0x5E07, 0x8E8B, 0x5E08, 0xCAA6, 0x5E09, 0x8E8C, 0x5E0A, 0x8E8D, + 0x5E0B, 0x8E8E, 0x5E0C, 0xCFA3, 0x5E0D, 0x8E8F, 0x5E0E, 0x8E90, 0x5E0F, 0xE0F8, 0x5E10, 0xD5CA, 0x5E11, 0xE0FB, 0x5E12, 0x8E91, + 0x5E13, 0x8E92, 0x5E14, 0xE0FA, 0x5E15, 0xC5C1, 0x5E16, 0xCCFB, 0x5E17, 0x8E93, 0x5E18, 0xC1B1, 0x5E19, 0xE0F9, 0x5E1A, 0xD6E3, + 0x5E1B, 0xB2AF, 0x5E1C, 0xD6C4, 0x5E1D, 0xB5DB, 0x5E1E, 0x8E94, 0x5E1F, 0x8E95, 0x5E20, 0x8E96, 0x5E21, 0x8E97, 0x5E22, 0x8E98, + 0x5E23, 0x8E99, 0x5E24, 0x8E9A, 0x5E25, 0x8E9B, 0x5E26, 0xB4F8, 0x5E27, 0xD6A1, 0x5E28, 0x8E9C, 0x5E29, 0x8E9D, 0x5E2A, 0x8E9E, + 0x5E2B, 0x8E9F, 0x5E2C, 0x8EA0, 0x5E2D, 0xCFAF, 0x5E2E, 0xB0EF, 0x5E2F, 0x8EA1, 0x5E30, 0x8EA2, 0x5E31, 0xE0FC, 0x5E32, 0x8EA3, + 0x5E33, 0x8EA4, 0x5E34, 0x8EA5, 0x5E35, 0x8EA6, 0x5E36, 0x8EA7, 0x5E37, 0xE1A1, 0x5E38, 0xB3A3, 0x5E39, 0x8EA8, 0x5E3A, 0x8EA9, + 0x5E3B, 0xE0FD, 0x5E3C, 0xE0FE, 0x5E3D, 0xC3B1, 0x5E3E, 0x8EAA, 0x5E3F, 0x8EAB, 0x5E40, 0x8EAC, 0x5E41, 0x8EAD, 0x5E42, 0xC3DD, + 0x5E43, 0x8EAE, 0x5E44, 0xE1A2, 0x5E45, 0xB7F9, 0x5E46, 0x8EAF, 0x5E47, 0x8EB0, 0x5E48, 0x8EB1, 0x5E49, 0x8EB2, 0x5E4A, 0x8EB3, + 0x5E4B, 0x8EB4, 0x5E4C, 0xBBCF, 0x5E4D, 0x8EB5, 0x5E4E, 0x8EB6, 0x5E4F, 0x8EB7, 0x5E50, 0x8EB8, 0x5E51, 0x8EB9, 0x5E52, 0x8EBA, + 0x5E53, 0x8EBB, 0x5E54, 0xE1A3, 0x5E55, 0xC4BB, 0x5E56, 0x8EBC, 0x5E57, 0x8EBD, 0x5E58, 0x8EBE, 0x5E59, 0x8EBF, 0x5E5A, 0x8EC0, + 0x5E5B, 0xE1A4, 0x5E5C, 0x8EC1, 0x5E5D, 0x8EC2, 0x5E5E, 0xE1A5, 0x5E5F, 0x8EC3, 0x5E60, 0x8EC4, 0x5E61, 0xE1A6, 0x5E62, 0xB4B1, + 0x5E63, 0x8EC5, 0x5E64, 0x8EC6, 0x5E65, 0x8EC7, 0x5E66, 0x8EC8, 0x5E67, 0x8EC9, 0x5E68, 0x8ECA, 0x5E69, 0x8ECB, 0x5E6A, 0x8ECC, + 0x5E6B, 0x8ECD, 0x5E6C, 0x8ECE, 0x5E6D, 0x8ECF, 0x5E6E, 0x8ED0, 0x5E6F, 0x8ED1, 0x5E70, 0x8ED2, 0x5E71, 0x8ED3, 0x5E72, 0xB8C9, + 0x5E73, 0xC6BD, 0x5E74, 0xC4EA, 0x5E75, 0x8ED4, 0x5E76, 0xB2A2, 0x5E77, 0x8ED5, 0x5E78, 0xD0D2, 0x5E79, 0x8ED6, 0x5E7A, 0xE7DB, + 0x5E7B, 0xBBC3, 0x5E7C, 0xD3D7, 0x5E7D, 0xD3C4, 0x5E7E, 0x8ED7, 0x5E7F, 0xB9E3, 0x5E80, 0xE2CF, 0x5E81, 0x8ED8, 0x5E82, 0x8ED9, + 0x5E83, 0x8EDA, 0x5E84, 0xD7AF, 0x5E85, 0x8EDB, 0x5E86, 0xC7EC, 0x5E87, 0xB1D3, 0x5E88, 0x8EDC, 0x5E89, 0x8EDD, 0x5E8A, 0xB4B2, + 0x5E8B, 0xE2D1, 0x5E8C, 0x8EDE, 0x5E8D, 0x8EDF, 0x5E8E, 0x8EE0, 0x5E8F, 0xD0F2, 0x5E90, 0xC2AE, 0x5E91, 0xE2D0, 0x5E92, 0x8EE1, + 0x5E93, 0xBFE2, 0x5E94, 0xD3A6, 0x5E95, 0xB5D7, 0x5E96, 0xE2D2, 0x5E97, 0xB5EA, 0x5E98, 0x8EE2, 0x5E99, 0xC3ED, 0x5E9A, 0xB8FD, + 0x5E9B, 0x8EE3, 0x5E9C, 0xB8AE, 0x5E9D, 0x8EE4, 0x5E9E, 0xC5D3, 0x5E9F, 0xB7CF, 0x5EA0, 0xE2D4, 0x5EA1, 0x8EE5, 0x5EA2, 0x8EE6, + 0x5EA3, 0x8EE7, 0x5EA4, 0x8EE8, 0x5EA5, 0xE2D3, 0x5EA6, 0xB6C8, 0x5EA7, 0xD7F9, 0x5EA8, 0x8EE9, 0x5EA9, 0x8EEA, 0x5EAA, 0x8EEB, + 0x5EAB, 0x8EEC, 0x5EAC, 0x8EED, 0x5EAD, 0xCDA5, 0x5EAE, 0x8EEE, 0x5EAF, 0x8EEF, 0x5EB0, 0x8EF0, 0x5EB1, 0x8EF1, 0x5EB2, 0x8EF2, + 0x5EB3, 0xE2D8, 0x5EB4, 0x8EF3, 0x5EB5, 0xE2D6, 0x5EB6, 0xCAFC, 0x5EB7, 0xBFB5, 0x5EB8, 0xD3B9, 0x5EB9, 0xE2D5, 0x5EBA, 0x8EF4, + 0x5EBB, 0x8EF5, 0x5EBC, 0x8EF6, 0x5EBD, 0x8EF7, 0x5EBE, 0xE2D7, 0x5EBF, 0x8EF8, 0x5EC0, 0x8EF9, 0x5EC1, 0x8EFA, 0x5EC2, 0x8EFB, + 0x5EC3, 0x8EFC, 0x5EC4, 0x8EFD, 0x5EC5, 0x8EFE, 0x5EC6, 0x8F40, 0x5EC7, 0x8F41, 0x5EC8, 0x8F42, 0x5EC9, 0xC1AE, 0x5ECA, 0xC0C8, + 0x5ECB, 0x8F43, 0x5ECC, 0x8F44, 0x5ECD, 0x8F45, 0x5ECE, 0x8F46, 0x5ECF, 0x8F47, 0x5ED0, 0x8F48, 0x5ED1, 0xE2DB, 0x5ED2, 0xE2DA, + 0x5ED3, 0xC0AA, 0x5ED4, 0x8F49, 0x5ED5, 0x8F4A, 0x5ED6, 0xC1CE, 0x5ED7, 0x8F4B, 0x5ED8, 0x8F4C, 0x5ED9, 0x8F4D, 0x5EDA, 0x8F4E, + 0x5EDB, 0xE2DC, 0x5EDC, 0x8F4F, 0x5EDD, 0x8F50, 0x5EDE, 0x8F51, 0x5EDF, 0x8F52, 0x5EE0, 0x8F53, 0x5EE1, 0x8F54, 0x5EE2, 0x8F55, + 0x5EE3, 0x8F56, 0x5EE4, 0x8F57, 0x5EE5, 0x8F58, 0x5EE6, 0x8F59, 0x5EE7, 0x8F5A, 0x5EE8, 0xE2DD, 0x5EE9, 0x8F5B, 0x5EEA, 0xE2DE, + 0x5EEB, 0x8F5C, 0x5EEC, 0x8F5D, 0x5EED, 0x8F5E, 0x5EEE, 0x8F5F, 0x5EEF, 0x8F60, 0x5EF0, 0x8F61, 0x5EF1, 0x8F62, 0x5EF2, 0x8F63, + 0x5EF3, 0x8F64, 0x5EF4, 0xDBC8, 0x5EF5, 0x8F65, 0x5EF6, 0xD1D3, 0x5EF7, 0xCDA2, 0x5EF8, 0x8F66, 0x5EF9, 0x8F67, 0x5EFA, 0xBDA8, + 0x5EFB, 0x8F68, 0x5EFC, 0x8F69, 0x5EFD, 0x8F6A, 0x5EFE, 0xDEC3, 0x5EFF, 0xD8A5, 0x5F00, 0xBFAA, 0x5F01, 0xDBCD, 0x5F02, 0xD2EC, + 0x5F03, 0xC6FA, 0x5F04, 0xC5AA, 0x5F05, 0x8F6B, 0x5F06, 0x8F6C, 0x5F07, 0x8F6D, 0x5F08, 0xDEC4, 0x5F09, 0x8F6E, 0x5F0A, 0xB1D7, + 0x5F0B, 0xDFAE, 0x5F0C, 0x8F6F, 0x5F0D, 0x8F70, 0x5F0E, 0x8F71, 0x5F0F, 0xCABD, 0x5F10, 0x8F72, 0x5F11, 0xDFB1, 0x5F12, 0x8F73, + 0x5F13, 0xB9AD, 0x5F14, 0x8F74, 0x5F15, 0xD2FD, 0x5F16, 0x8F75, 0x5F17, 0xB8A5, 0x5F18, 0xBAEB, 0x5F19, 0x8F76, 0x5F1A, 0x8F77, + 0x5F1B, 0xB3DA, 0x5F1C, 0x8F78, 0x5F1D, 0x8F79, 0x5F1E, 0x8F7A, 0x5F1F, 0xB5DC, 0x5F20, 0xD5C5, 0x5F21, 0x8F7B, 0x5F22, 0x8F7C, + 0x5F23, 0x8F7D, 0x5F24, 0x8F7E, 0x5F25, 0xC3D6, 0x5F26, 0xCFD2, 0x5F27, 0xBBA1, 0x5F28, 0x8F80, 0x5F29, 0xE5F3, 0x5F2A, 0xE5F2, + 0x5F2B, 0x8F81, 0x5F2C, 0x8F82, 0x5F2D, 0xE5F4, 0x5F2E, 0x8F83, 0x5F2F, 0xCDE4, 0x5F30, 0x8F84, 0x5F31, 0xC8F5, 0x5F32, 0x8F85, + 0x5F33, 0x8F86, 0x5F34, 0x8F87, 0x5F35, 0x8F88, 0x5F36, 0x8F89, 0x5F37, 0x8F8A, 0x5F38, 0x8F8B, 0x5F39, 0xB5AF, 0x5F3A, 0xC7BF, + 0x5F3B, 0x8F8C, 0x5F3C, 0xE5F6, 0x5F3D, 0x8F8D, 0x5F3E, 0x8F8E, 0x5F3F, 0x8F8F, 0x5F40, 0xECB0, 0x5F41, 0x8F90, 0x5F42, 0x8F91, + 0x5F43, 0x8F92, 0x5F44, 0x8F93, 0x5F45, 0x8F94, 0x5F46, 0x8F95, 0x5F47, 0x8F96, 0x5F48, 0x8F97, 0x5F49, 0x8F98, 0x5F4A, 0x8F99, + 0x5F4B, 0x8F9A, 0x5F4C, 0x8F9B, 0x5F4D, 0x8F9C, 0x5F4E, 0x8F9D, 0x5F4F, 0x8F9E, 0x5F50, 0xE5E6, 0x5F51, 0x8F9F, 0x5F52, 0xB9E9, + 0x5F53, 0xB5B1, 0x5F54, 0x8FA0, 0x5F55, 0xC2BC, 0x5F56, 0xE5E8, 0x5F57, 0xE5E7, 0x5F58, 0xE5E9, 0x5F59, 0x8FA1, 0x5F5A, 0x8FA2, + 0x5F5B, 0x8FA3, 0x5F5C, 0x8FA4, 0x5F5D, 0xD2CD, 0x5F5E, 0x8FA5, 0x5F5F, 0x8FA6, 0x5F60, 0x8FA7, 0x5F61, 0xE1EA, 0x5F62, 0xD0CE, + 0x5F63, 0x8FA8, 0x5F64, 0xCDAE, 0x5F65, 0x8FA9, 0x5F66, 0xD1E5, 0x5F67, 0x8FAA, 0x5F68, 0x8FAB, 0x5F69, 0xB2CA, 0x5F6A, 0xB1EB, + 0x5F6B, 0x8FAC, 0x5F6C, 0xB1F2, 0x5F6D, 0xC5ED, 0x5F6E, 0x8FAD, 0x5F6F, 0x8FAE, 0x5F70, 0xD5C3, 0x5F71, 0xD3B0, 0x5F72, 0x8FAF, + 0x5F73, 0xE1DC, 0x5F74, 0x8FB0, 0x5F75, 0x8FB1, 0x5F76, 0x8FB2, 0x5F77, 0xE1DD, 0x5F78, 0x8FB3, 0x5F79, 0xD2DB, 0x5F7A, 0x8FB4, + 0x5F7B, 0xB3B9, 0x5F7C, 0xB1CB, 0x5F7D, 0x8FB5, 0x5F7E, 0x8FB6, 0x5F7F, 0x8FB7, 0x5F80, 0xCDF9, 0x5F81, 0xD5F7, 0x5F82, 0xE1DE, + 0x5F83, 0x8FB8, 0x5F84, 0xBEB6, 0x5F85, 0xB4FD, 0x5F86, 0x8FB9, 0x5F87, 0xE1DF, 0x5F88, 0xBADC, 0x5F89, 0xE1E0, 0x5F8A, 0xBBB2, + 0x5F8B, 0xC2C9, 0x5F8C, 0xE1E1, 0x5F8D, 0x8FBA, 0x5F8E, 0x8FBB, 0x5F8F, 0x8FBC, 0x5F90, 0xD0EC, 0x5F91, 0x8FBD, 0x5F92, 0xCDBD, + 0x5F93, 0x8FBE, 0x5F94, 0x8FBF, 0x5F95, 0xE1E2, 0x5F96, 0x8FC0, 0x5F97, 0xB5C3, 0x5F98, 0xC5C7, 0x5F99, 0xE1E3, 0x5F9A, 0x8FC1, + 0x5F9B, 0x8FC2, 0x5F9C, 0xE1E4, 0x5F9D, 0x8FC3, 0x5F9E, 0x8FC4, 0x5F9F, 0x8FC5, 0x5FA0, 0x8FC6, 0x5FA1, 0xD3F9, 0x5FA2, 0x8FC7, + 0x5FA3, 0x8FC8, 0x5FA4, 0x8FC9, 0x5FA5, 0x8FCA, 0x5FA6, 0x8FCB, 0x5FA7, 0x8FCC, 0x5FA8, 0xE1E5, 0x5FA9, 0x8FCD, 0x5FAA, 0xD1AD, + 0x5FAB, 0x8FCE, 0x5FAC, 0x8FCF, 0x5FAD, 0xE1E6, 0x5FAE, 0xCEA2, 0x5FAF, 0x8FD0, 0x5FB0, 0x8FD1, 0x5FB1, 0x8FD2, 0x5FB2, 0x8FD3, + 0x5FB3, 0x8FD4, 0x5FB4, 0x8FD5, 0x5FB5, 0xE1E7, 0x5FB6, 0x8FD6, 0x5FB7, 0xB5C2, 0x5FB8, 0x8FD7, 0x5FB9, 0x8FD8, 0x5FBA, 0x8FD9, + 0x5FBB, 0x8FDA, 0x5FBC, 0xE1E8, 0x5FBD, 0xBBD5, 0x5FBE, 0x8FDB, 0x5FBF, 0x8FDC, 0x5FC0, 0x8FDD, 0x5FC1, 0x8FDE, 0x5FC2, 0x8FDF, + 0x5FC3, 0xD0C4, 0x5FC4, 0xE2E0, 0x5FC5, 0xB1D8, 0x5FC6, 0xD2E4, 0x5FC7, 0x8FE0, 0x5FC8, 0x8FE1, 0x5FC9, 0xE2E1, 0x5FCA, 0x8FE2, + 0x5FCB, 0x8FE3, 0x5FCC, 0xBCC9, 0x5FCD, 0xC8CC, 0x5FCE, 0x8FE4, 0x5FCF, 0xE2E3, 0x5FD0, 0xECFE, 0x5FD1, 0xECFD, 0x5FD2, 0xDFAF, + 0x5FD3, 0x8FE5, 0x5FD4, 0x8FE6, 0x5FD5, 0x8FE7, 0x5FD6, 0xE2E2, 0x5FD7, 0xD6BE, 0x5FD8, 0xCDFC, 0x5FD9, 0xC3A6, 0x5FDA, 0x8FE8, + 0x5FDB, 0x8FE9, 0x5FDC, 0x8FEA, 0x5FDD, 0xE3C3, 0x5FDE, 0x8FEB, 0x5FDF, 0x8FEC, 0x5FE0, 0xD6D2, 0x5FE1, 0xE2E7, 0x5FE2, 0x8FED, + 0x5FE3, 0x8FEE, 0x5FE4, 0xE2E8, 0x5FE5, 0x8FEF, 0x5FE6, 0x8FF0, 0x5FE7, 0xD3C7, 0x5FE8, 0x8FF1, 0x5FE9, 0x8FF2, 0x5FEA, 0xE2EC, + 0x5FEB, 0xBFEC, 0x5FEC, 0x8FF3, 0x5FED, 0xE2ED, 0x5FEE, 0xE2E5, 0x5FEF, 0x8FF4, 0x5FF0, 0x8FF5, 0x5FF1, 0xB3C0, 0x5FF2, 0x8FF6, + 0x5FF3, 0x8FF7, 0x5FF4, 0x8FF8, 0x5FF5, 0xC4EE, 0x5FF6, 0x8FF9, 0x5FF7, 0x8FFA, 0x5FF8, 0xE2EE, 0x5FF9, 0x8FFB, 0x5FFA, 0x8FFC, + 0x5FFB, 0xD0C3, 0x5FFC, 0x8FFD, 0x5FFD, 0xBAF6, 0x5FFE, 0xE2E9, 0x5FFF, 0xB7DE, 0x6000, 0xBBB3, 0x6001, 0xCCAC, 0x6002, 0xCBCB, + 0x6003, 0xE2E4, 0x6004, 0xE2E6, 0x6005, 0xE2EA, 0x6006, 0xE2EB, 0x6007, 0x8FFE, 0x6008, 0x9040, 0x6009, 0x9041, 0x600A, 0xE2F7, + 0x600B, 0x9042, 0x600C, 0x9043, 0x600D, 0xE2F4, 0x600E, 0xD4F5, 0x600F, 0xE2F3, 0x6010, 0x9044, 0x6011, 0x9045, 0x6012, 0xC5AD, + 0x6013, 0x9046, 0x6014, 0xD5FA, 0x6015, 0xC5C2, 0x6016, 0xB2C0, 0x6017, 0x9047, 0x6018, 0x9048, 0x6019, 0xE2EF, 0x601A, 0x9049, + 0x601B, 0xE2F2, 0x601C, 0xC1AF, 0x601D, 0xCBBC, 0x601E, 0x904A, 0x601F, 0x904B, 0x6020, 0xB5A1, 0x6021, 0xE2F9, 0x6022, 0x904C, + 0x6023, 0x904D, 0x6024, 0x904E, 0x6025, 0xBCB1, 0x6026, 0xE2F1, 0x6027, 0xD0D4, 0x6028, 0xD4B9, 0x6029, 0xE2F5, 0x602A, 0xB9D6, + 0x602B, 0xE2F6, 0x602C, 0x904F, 0x602D, 0x9050, 0x602E, 0x9051, 0x602F, 0xC7D3, 0x6030, 0x9052, 0x6031, 0x9053, 0x6032, 0x9054, + 0x6033, 0x9055, 0x6034, 0x9056, 0x6035, 0xE2F0, 0x6036, 0x9057, 0x6037, 0x9058, 0x6038, 0x9059, 0x6039, 0x905A, 0x603A, 0x905B, + 0x603B, 0xD7DC, 0x603C, 0xEDA1, 0x603D, 0x905C, 0x603E, 0x905D, 0x603F, 0xE2F8, 0x6040, 0x905E, 0x6041, 0xEDA5, 0x6042, 0xE2FE, + 0x6043, 0xCAD1, 0x6044, 0x905F, 0x6045, 0x9060, 0x6046, 0x9061, 0x6047, 0x9062, 0x6048, 0x9063, 0x6049, 0x9064, 0x604A, 0x9065, + 0x604B, 0xC1B5, 0x604C, 0x9066, 0x604D, 0xBBD0, 0x604E, 0x9067, 0x604F, 0x9068, 0x6050, 0xBFD6, 0x6051, 0x9069, 0x6052, 0xBAE3, + 0x6053, 0x906A, 0x6054, 0x906B, 0x6055, 0xCBA1, 0x6056, 0x906C, 0x6057, 0x906D, 0x6058, 0x906E, 0x6059, 0xEDA6, 0x605A, 0xEDA3, + 0x605B, 0x906F, 0x605C, 0x9070, 0x605D, 0xEDA2, 0x605E, 0x9071, 0x605F, 0x9072, 0x6060, 0x9073, 0x6061, 0x9074, 0x6062, 0xBBD6, + 0x6063, 0xEDA7, 0x6064, 0xD0F4, 0x6065, 0x9075, 0x6066, 0x9076, 0x6067, 0xEDA4, 0x6068, 0xBADE, 0x6069, 0xB6F7, 0x606A, 0xE3A1, + 0x606B, 0xB6B2, 0x606C, 0xCCF1, 0x606D, 0xB9A7, 0x606E, 0x9077, 0x606F, 0xCFA2, 0x6070, 0xC7A1, 0x6071, 0x9078, 0x6072, 0x9079, + 0x6073, 0xBFD2, 0x6074, 0x907A, 0x6075, 0x907B, 0x6076, 0xB6F1, 0x6077, 0x907C, 0x6078, 0xE2FA, 0x6079, 0xE2FB, 0x607A, 0xE2FD, + 0x607B, 0xE2FC, 0x607C, 0xC4D5, 0x607D, 0xE3A2, 0x607E, 0x907D, 0x607F, 0xD3C1, 0x6080, 0x907E, 0x6081, 0x9080, 0x6082, 0x9081, + 0x6083, 0xE3A7, 0x6084, 0xC7C4, 0x6085, 0x9082, 0x6086, 0x9083, 0x6087, 0x9084, 0x6088, 0x9085, 0x6089, 0xCFA4, 0x608A, 0x9086, + 0x608B, 0x9087, 0x608C, 0xE3A9, 0x608D, 0xBAB7, 0x608E, 0x9088, 0x608F, 0x9089, 0x6090, 0x908A, 0x6091, 0x908B, 0x6092, 0xE3A8, + 0x6093, 0x908C, 0x6094, 0xBBDA, 0x6095, 0x908D, 0x6096, 0xE3A3, 0x6097, 0x908E, 0x6098, 0x908F, 0x6099, 0x9090, 0x609A, 0xE3A4, + 0x609B, 0xE3AA, 0x609C, 0x9091, 0x609D, 0xE3A6, 0x609E, 0x9092, 0x609F, 0xCEF2, 0x60A0, 0xD3C6, 0x60A1, 0x9093, 0x60A2, 0x9094, + 0x60A3, 0xBBBC, 0x60A4, 0x9095, 0x60A5, 0x9096, 0x60A6, 0xD4C3, 0x60A7, 0x9097, 0x60A8, 0xC4FA, 0x60A9, 0x9098, 0x60AA, 0x9099, + 0x60AB, 0xEDA8, 0x60AC, 0xD0FC, 0x60AD, 0xE3A5, 0x60AE, 0x909A, 0x60AF, 0xC3F5, 0x60B0, 0x909B, 0x60B1, 0xE3AD, 0x60B2, 0xB1AF, + 0x60B3, 0x909C, 0x60B4, 0xE3B2, 0x60B5, 0x909D, 0x60B6, 0x909E, 0x60B7, 0x909F, 0x60B8, 0xBCC2, 0x60B9, 0x90A0, 0x60BA, 0x90A1, + 0x60BB, 0xE3AC, 0x60BC, 0xB5BF, 0x60BD, 0x90A2, 0x60BE, 0x90A3, 0x60BF, 0x90A4, 0x60C0, 0x90A5, 0x60C1, 0x90A6, 0x60C2, 0x90A7, + 0x60C3, 0x90A8, 0x60C4, 0x90A9, 0x60C5, 0xC7E9, 0x60C6, 0xE3B0, 0x60C7, 0x90AA, 0x60C8, 0x90AB, 0x60C9, 0x90AC, 0x60CA, 0xBEAA, + 0x60CB, 0xCDEF, 0x60CC, 0x90AD, 0x60CD, 0x90AE, 0x60CE, 0x90AF, 0x60CF, 0x90B0, 0x60D0, 0x90B1, 0x60D1, 0xBBF3, 0x60D2, 0x90B2, + 0x60D3, 0x90B3, 0x60D4, 0x90B4, 0x60D5, 0xCCE8, 0x60D6, 0x90B5, 0x60D7, 0x90B6, 0x60D8, 0xE3AF, 0x60D9, 0x90B7, 0x60DA, 0xE3B1, + 0x60DB, 0x90B8, 0x60DC, 0xCFA7, 0x60DD, 0xE3AE, 0x60DE, 0x90B9, 0x60DF, 0xCEA9, 0x60E0, 0xBBDD, 0x60E1, 0x90BA, 0x60E2, 0x90BB, + 0x60E3, 0x90BC, 0x60E4, 0x90BD, 0x60E5, 0x90BE, 0x60E6, 0xB5EB, 0x60E7, 0xBEE5, 0x60E8, 0xB2D2, 0x60E9, 0xB3CD, 0x60EA, 0x90BF, + 0x60EB, 0xB1B9, 0x60EC, 0xE3AB, 0x60ED, 0xB2D1, 0x60EE, 0xB5AC, 0x60EF, 0xB9DF, 0x60F0, 0xB6E8, 0x60F1, 0x90C0, 0x60F2, 0x90C1, + 0x60F3, 0xCFEB, 0x60F4, 0xE3B7, 0x60F5, 0x90C2, 0x60F6, 0xBBCC, 0x60F7, 0x90C3, 0x60F8, 0x90C4, 0x60F9, 0xC8C7, 0x60FA, 0xD0CA, + 0x60FB, 0x90C5, 0x60FC, 0x90C6, 0x60FD, 0x90C7, 0x60FE, 0x90C8, 0x60FF, 0x90C9, 0x6100, 0xE3B8, 0x6101, 0xB3EE, 0x6102, 0x90CA, + 0x6103, 0x90CB, 0x6104, 0x90CC, 0x6105, 0x90CD, 0x6106, 0xEDA9, 0x6107, 0x90CE, 0x6108, 0xD3FA, 0x6109, 0xD3E4, 0x610A, 0x90CF, + 0x610B, 0x90D0, 0x610C, 0x90D1, 0x610D, 0xEDAA, 0x610E, 0xE3B9, 0x610F, 0xD2E2, 0x6110, 0x90D2, 0x6111, 0x90D3, 0x6112, 0x90D4, + 0x6113, 0x90D5, 0x6114, 0x90D6, 0x6115, 0xE3B5, 0x6116, 0x90D7, 0x6117, 0x90D8, 0x6118, 0x90D9, 0x6119, 0x90DA, 0x611A, 0xD3DE, + 0x611B, 0x90DB, 0x611C, 0x90DC, 0x611D, 0x90DD, 0x611E, 0x90DE, 0x611F, 0xB8D0, 0x6120, 0xE3B3, 0x6121, 0x90DF, 0x6122, 0x90E0, + 0x6123, 0xE3B6, 0x6124, 0xB7DF, 0x6125, 0x90E1, 0x6126, 0xE3B4, 0x6127, 0xC0A2, 0x6128, 0x90E2, 0x6129, 0x90E3, 0x612A, 0x90E4, + 0x612B, 0xE3BA, 0x612C, 0x90E5, 0x612D, 0x90E6, 0x612E, 0x90E7, 0x612F, 0x90E8, 0x6130, 0x90E9, 0x6131, 0x90EA, 0x6132, 0x90EB, + 0x6133, 0x90EC, 0x6134, 0x90ED, 0x6135, 0x90EE, 0x6136, 0x90EF, 0x6137, 0x90F0, 0x6138, 0x90F1, 0x6139, 0x90F2, 0x613A, 0x90F3, + 0x613B, 0x90F4, 0x613C, 0x90F5, 0x613D, 0x90F6, 0x613E, 0x90F7, 0x613F, 0xD4B8, 0x6140, 0x90F8, 0x6141, 0x90F9, 0x6142, 0x90FA, + 0x6143, 0x90FB, 0x6144, 0x90FC, 0x6145, 0x90FD, 0x6146, 0x90FE, 0x6147, 0x9140, 0x6148, 0xB4C8, 0x6149, 0x9141, 0x614A, 0xE3BB, + 0x614B, 0x9142, 0x614C, 0xBBC5, 0x614D, 0x9143, 0x614E, 0xC9F7, 0x614F, 0x9144, 0x6150, 0x9145, 0x6151, 0xC9E5, 0x6152, 0x9146, + 0x6153, 0x9147, 0x6154, 0x9148, 0x6155, 0xC4BD, 0x6156, 0x9149, 0x6157, 0x914A, 0x6158, 0x914B, 0x6159, 0x914C, 0x615A, 0x914D, + 0x615B, 0x914E, 0x615C, 0x914F, 0x615D, 0xEDAB, 0x615E, 0x9150, 0x615F, 0x9151, 0x6160, 0x9152, 0x6161, 0x9153, 0x6162, 0xC2FD, + 0x6163, 0x9154, 0x6164, 0x9155, 0x6165, 0x9156, 0x6166, 0x9157, 0x6167, 0xBBDB, 0x6168, 0xBFAE, 0x6169, 0x9158, 0x616A, 0x9159, + 0x616B, 0x915A, 0x616C, 0x915B, 0x616D, 0x915C, 0x616E, 0x915D, 0x616F, 0x915E, 0x6170, 0xCEBF, 0x6171, 0x915F, 0x6172, 0x9160, + 0x6173, 0x9161, 0x6174, 0x9162, 0x6175, 0xE3BC, 0x6176, 0x9163, 0x6177, 0xBFB6, 0x6178, 0x9164, 0x6179, 0x9165, 0x617A, 0x9166, + 0x617B, 0x9167, 0x617C, 0x9168, 0x617D, 0x9169, 0x617E, 0x916A, 0x617F, 0x916B, 0x6180, 0x916C, 0x6181, 0x916D, 0x6182, 0x916E, + 0x6183, 0x916F, 0x6184, 0x9170, 0x6185, 0x9171, 0x6186, 0x9172, 0x6187, 0x9173, 0x6188, 0x9174, 0x6189, 0x9175, 0x618A, 0x9176, + 0x618B, 0xB1EF, 0x618C, 0x9177, 0x618D, 0x9178, 0x618E, 0xD4F7, 0x618F, 0x9179, 0x6190, 0x917A, 0x6191, 0x917B, 0x6192, 0x917C, + 0x6193, 0x917D, 0x6194, 0xE3BE, 0x6195, 0x917E, 0x6196, 0x9180, 0x6197, 0x9181, 0x6198, 0x9182, 0x6199, 0x9183, 0x619A, 0x9184, + 0x619B, 0x9185, 0x619C, 0x9186, 0x619D, 0xEDAD, 0x619E, 0x9187, 0x619F, 0x9188, 0x61A0, 0x9189, 0x61A1, 0x918A, 0x61A2, 0x918B, + 0x61A3, 0x918C, 0x61A4, 0x918D, 0x61A5, 0x918E, 0x61A6, 0x918F, 0x61A7, 0xE3BF, 0x61A8, 0xBAA9, 0x61A9, 0xEDAC, 0x61AA, 0x9190, + 0x61AB, 0x9191, 0x61AC, 0xE3BD, 0x61AD, 0x9192, 0x61AE, 0x9193, 0x61AF, 0x9194, 0x61B0, 0x9195, 0x61B1, 0x9196, 0x61B2, 0x9197, + 0x61B3, 0x9198, 0x61B4, 0x9199, 0x61B5, 0x919A, 0x61B6, 0x919B, 0x61B7, 0xE3C0, 0x61B8, 0x919C, 0x61B9, 0x919D, 0x61BA, 0x919E, + 0x61BB, 0x919F, 0x61BC, 0x91A0, 0x61BD, 0x91A1, 0x61BE, 0xBAB6, 0x61BF, 0x91A2, 0x61C0, 0x91A3, 0x61C1, 0x91A4, 0x61C2, 0xB6AE, + 0x61C3, 0x91A5, 0x61C4, 0x91A6, 0x61C5, 0x91A7, 0x61C6, 0x91A8, 0x61C7, 0x91A9, 0x61C8, 0xD0B8, 0x61C9, 0x91AA, 0x61CA, 0xB0C3, + 0x61CB, 0xEDAE, 0x61CC, 0x91AB, 0x61CD, 0x91AC, 0x61CE, 0x91AD, 0x61CF, 0x91AE, 0x61D0, 0x91AF, 0x61D1, 0xEDAF, 0x61D2, 0xC0C1, + 0x61D3, 0x91B0, 0x61D4, 0xE3C1, 0x61D5, 0x91B1, 0x61D6, 0x91B2, 0x61D7, 0x91B3, 0x61D8, 0x91B4, 0x61D9, 0x91B5, 0x61DA, 0x91B6, + 0x61DB, 0x91B7, 0x61DC, 0x91B8, 0x61DD, 0x91B9, 0x61DE, 0x91BA, 0x61DF, 0x91BB, 0x61E0, 0x91BC, 0x61E1, 0x91BD, 0x61E2, 0x91BE, + 0x61E3, 0x91BF, 0x61E4, 0x91C0, 0x61E5, 0x91C1, 0x61E6, 0xC5B3, 0x61E7, 0x91C2, 0x61E8, 0x91C3, 0x61E9, 0x91C4, 0x61EA, 0x91C5, + 0x61EB, 0x91C6, 0x61EC, 0x91C7, 0x61ED, 0x91C8, 0x61EE, 0x91C9, 0x61EF, 0x91CA, 0x61F0, 0x91CB, 0x61F1, 0x91CC, 0x61F2, 0x91CD, + 0x61F3, 0x91CE, 0x61F4, 0x91CF, 0x61F5, 0xE3C2, 0x61F6, 0x91D0, 0x61F7, 0x91D1, 0x61F8, 0x91D2, 0x61F9, 0x91D3, 0x61FA, 0x91D4, + 0x61FB, 0x91D5, 0x61FC, 0x91D6, 0x61FD, 0x91D7, 0x61FE, 0x91D8, 0x61FF, 0xDCB2, 0x6200, 0x91D9, 0x6201, 0x91DA, 0x6202, 0x91DB, + 0x6203, 0x91DC, 0x6204, 0x91DD, 0x6205, 0x91DE, 0x6206, 0xEDB0, 0x6207, 0x91DF, 0x6208, 0xB8EA, 0x6209, 0x91E0, 0x620A, 0xCEEC, + 0x620B, 0xEAA7, 0x620C, 0xD0E7, 0x620D, 0xCAF9, 0x620E, 0xC8D6, 0x620F, 0xCFB7, 0x6210, 0xB3C9, 0x6211, 0xCED2, 0x6212, 0xBDE4, + 0x6213, 0x91E1, 0x6214, 0x91E2, 0x6215, 0xE3DE, 0x6216, 0xBBF2, 0x6217, 0xEAA8, 0x6218, 0xD5BD, 0x6219, 0x91E3, 0x621A, 0xC6DD, + 0x621B, 0xEAA9, 0x621C, 0x91E4, 0x621D, 0x91E5, 0x621E, 0x91E6, 0x621F, 0xEAAA, 0x6220, 0x91E7, 0x6221, 0xEAAC, 0x6222, 0xEAAB, + 0x6223, 0x91E8, 0x6224, 0xEAAE, 0x6225, 0xEAAD, 0x6226, 0x91E9, 0x6227, 0x91EA, 0x6228, 0x91EB, 0x6229, 0x91EC, 0x622A, 0xBDD8, + 0x622B, 0x91ED, 0x622C, 0xEAAF, 0x622D, 0x91EE, 0x622E, 0xC2BE, 0x622F, 0x91EF, 0x6230, 0x91F0, 0x6231, 0x91F1, 0x6232, 0x91F2, + 0x6233, 0xB4C1, 0x6234, 0xB4F7, 0x6235, 0x91F3, 0x6236, 0x91F4, 0x6237, 0xBBA7, 0x6238, 0x91F5, 0x6239, 0x91F6, 0x623A, 0x91F7, + 0x623B, 0x91F8, 0x623C, 0x91F9, 0x623D, 0xECE6, 0x623E, 0xECE5, 0x623F, 0xB7BF, 0x6240, 0xCBF9, 0x6241, 0xB1E2, 0x6242, 0x91FA, + 0x6243, 0xECE7, 0x6244, 0x91FB, 0x6245, 0x91FC, 0x6246, 0x91FD, 0x6247, 0xC9C8, 0x6248, 0xECE8, 0x6249, 0xECE9, 0x624A, 0x91FE, + 0x624B, 0xCAD6, 0x624C, 0xDED0, 0x624D, 0xB2C5, 0x624E, 0xD4FA, 0x624F, 0x9240, 0x6250, 0x9241, 0x6251, 0xC6CB, 0x6252, 0xB0C7, + 0x6253, 0xB4F2, 0x6254, 0xC8D3, 0x6255, 0x9242, 0x6256, 0x9243, 0x6257, 0x9244, 0x6258, 0xCDD0, 0x6259, 0x9245, 0x625A, 0x9246, + 0x625B, 0xBFB8, 0x625C, 0x9247, 0x625D, 0x9248, 0x625E, 0x9249, 0x625F, 0x924A, 0x6260, 0x924B, 0x6261, 0x924C, 0x6262, 0x924D, + 0x6263, 0xBFDB, 0x6264, 0x924E, 0x6265, 0x924F, 0x6266, 0xC7A4, 0x6267, 0xD6B4, 0x6268, 0x9250, 0x6269, 0xC0A9, 0x626A, 0xDED1, + 0x626B, 0xC9A8, 0x626C, 0xD1EF, 0x626D, 0xC5A4, 0x626E, 0xB0E7, 0x626F, 0xB3B6, 0x6270, 0xC8C5, 0x6271, 0x9251, 0x6272, 0x9252, + 0x6273, 0xB0E2, 0x6274, 0x9253, 0x6275, 0x9254, 0x6276, 0xB7F6, 0x6277, 0x9255, 0x6278, 0x9256, 0x6279, 0xC5FA, 0x627A, 0x9257, + 0x627B, 0x9258, 0x627C, 0xB6F3, 0x627D, 0x9259, 0x627E, 0xD5D2, 0x627F, 0xB3D0, 0x6280, 0xBCBC, 0x6281, 0x925A, 0x6282, 0x925B, + 0x6283, 0x925C, 0x6284, 0xB3AD, 0x6285, 0x925D, 0x6286, 0x925E, 0x6287, 0x925F, 0x6288, 0x9260, 0x6289, 0xBEF1, 0x628A, 0xB0D1, + 0x628B, 0x9261, 0x628C, 0x9262, 0x628D, 0x9263, 0x628E, 0x9264, 0x628F, 0x9265, 0x6290, 0x9266, 0x6291, 0xD2D6, 0x6292, 0xCAE3, + 0x6293, 0xD7A5, 0x6294, 0x9267, 0x6295, 0xCDB6, 0x6296, 0xB6B6, 0x6297, 0xBFB9, 0x6298, 0xD5DB, 0x6299, 0x9268, 0x629A, 0xB8A7, + 0x629B, 0xC5D7, 0x629C, 0x9269, 0x629D, 0x926A, 0x629E, 0x926B, 0x629F, 0xDED2, 0x62A0, 0xBFD9, 0x62A1, 0xC2D5, 0x62A2, 0xC7C0, + 0x62A3, 0x926C, 0x62A4, 0xBBA4, 0x62A5, 0xB1A8, 0x62A6, 0x926D, 0x62A7, 0x926E, 0x62A8, 0xC5EA, 0x62A9, 0x926F, 0x62AA, 0x9270, + 0x62AB, 0xC5FB, 0x62AC, 0xCCA7, 0x62AD, 0x9271, 0x62AE, 0x9272, 0x62AF, 0x9273, 0x62B0, 0x9274, 0x62B1, 0xB1A7, 0x62B2, 0x9275, + 0x62B3, 0x9276, 0x62B4, 0x9277, 0x62B5, 0xB5D6, 0x62B6, 0x9278, 0x62B7, 0x9279, 0x62B8, 0x927A, 0x62B9, 0xC4A8, 0x62BA, 0x927B, + 0x62BB, 0xDED3, 0x62BC, 0xD1BA, 0x62BD, 0xB3E9, 0x62BE, 0x927C, 0x62BF, 0xC3F2, 0x62C0, 0x927D, 0x62C1, 0x927E, 0x62C2, 0xB7F7, + 0x62C3, 0x9280, 0x62C4, 0xD6F4, 0x62C5, 0xB5A3, 0x62C6, 0xB2F0, 0x62C7, 0xC4B4, 0x62C8, 0xC4E9, 0x62C9, 0xC0AD, 0x62CA, 0xDED4, + 0x62CB, 0x9281, 0x62CC, 0xB0E8, 0x62CD, 0xC5C4, 0x62CE, 0xC1E0, 0x62CF, 0x9282, 0x62D0, 0xB9D5, 0x62D1, 0x9283, 0x62D2, 0xBEDC, + 0x62D3, 0xCDD8, 0x62D4, 0xB0CE, 0x62D5, 0x9284, 0x62D6, 0xCDCF, 0x62D7, 0xDED6, 0x62D8, 0xBED0, 0x62D9, 0xD7BE, 0x62DA, 0xDED5, + 0x62DB, 0xD5D0, 0x62DC, 0xB0DD, 0x62DD, 0x9285, 0x62DE, 0x9286, 0x62DF, 0xC4E2, 0x62E0, 0x9287, 0x62E1, 0x9288, 0x62E2, 0xC2A3, + 0x62E3, 0xBCF0, 0x62E4, 0x9289, 0x62E5, 0xD3B5, 0x62E6, 0xC0B9, 0x62E7, 0xC5A1, 0x62E8, 0xB2A6, 0x62E9, 0xD4F1, 0x62EA, 0x928A, + 0x62EB, 0x928B, 0x62EC, 0xC0A8, 0x62ED, 0xCAC3, 0x62EE, 0xDED7, 0x62EF, 0xD5FC, 0x62F0, 0x928C, 0x62F1, 0xB9B0, 0x62F2, 0x928D, + 0x62F3, 0xC8AD, 0x62F4, 0xCBA9, 0x62F5, 0x928E, 0x62F6, 0xDED9, 0x62F7, 0xBFBD, 0x62F8, 0x928F, 0x62F9, 0x9290, 0x62FA, 0x9291, + 0x62FB, 0x9292, 0x62FC, 0xC6B4, 0x62FD, 0xD7A7, 0x62FE, 0xCAB0, 0x62FF, 0xC4C3, 0x6300, 0x9293, 0x6301, 0xB3D6, 0x6302, 0xB9D2, + 0x6303, 0x9294, 0x6304, 0x9295, 0x6305, 0x9296, 0x6306, 0x9297, 0x6307, 0xD6B8, 0x6308, 0xEAFC, 0x6309, 0xB0B4, 0x630A, 0x9298, + 0x630B, 0x9299, 0x630C, 0x929A, 0x630D, 0x929B, 0x630E, 0xBFE6, 0x630F, 0x929C, 0x6310, 0x929D, 0x6311, 0xCCF4, 0x6312, 0x929E, + 0x6313, 0x929F, 0x6314, 0x92A0, 0x6315, 0x92A1, 0x6316, 0xCDDA, 0x6317, 0x92A2, 0x6318, 0x92A3, 0x6319, 0x92A4, 0x631A, 0xD6BF, + 0x631B, 0xC2CE, 0x631C, 0x92A5, 0x631D, 0xCECE, 0x631E, 0xCCA2, 0x631F, 0xD0AE, 0x6320, 0xC4D3, 0x6321, 0xB5B2, 0x6322, 0xDED8, + 0x6323, 0xD5F5, 0x6324, 0xBCB7, 0x6325, 0xBBD3, 0x6326, 0x92A6, 0x6327, 0x92A7, 0x6328, 0xB0A4, 0x6329, 0x92A8, 0x632A, 0xC5B2, + 0x632B, 0xB4EC, 0x632C, 0x92A9, 0x632D, 0x92AA, 0x632E, 0x92AB, 0x632F, 0xD5F1, 0x6330, 0x92AC, 0x6331, 0x92AD, 0x6332, 0xEAFD, + 0x6333, 0x92AE, 0x6334, 0x92AF, 0x6335, 0x92B0, 0x6336, 0x92B1, 0x6337, 0x92B2, 0x6338, 0x92B3, 0x6339, 0xDEDA, 0x633A, 0xCDA6, + 0x633B, 0x92B4, 0x633C, 0x92B5, 0x633D, 0xCDEC, 0x633E, 0x92B6, 0x633F, 0x92B7, 0x6340, 0x92B8, 0x6341, 0x92B9, 0x6342, 0xCEE6, + 0x6343, 0xDEDC, 0x6344, 0x92BA, 0x6345, 0xCDB1, 0x6346, 0xC0A6, 0x6347, 0x92BB, 0x6348, 0x92BC, 0x6349, 0xD7BD, 0x634A, 0x92BD, + 0x634B, 0xDEDB, 0x634C, 0xB0C6, 0x634D, 0xBAB4, 0x634E, 0xC9D3, 0x634F, 0xC4F3, 0x6350, 0xBEE8, 0x6351, 0x92BE, 0x6352, 0x92BF, + 0x6353, 0x92C0, 0x6354, 0x92C1, 0x6355, 0xB2B6, 0x6356, 0x92C2, 0x6357, 0x92C3, 0x6358, 0x92C4, 0x6359, 0x92C5, 0x635A, 0x92C6, + 0x635B, 0x92C7, 0x635C, 0x92C8, 0x635D, 0x92C9, 0x635E, 0xC0CC, 0x635F, 0xCBF0, 0x6360, 0x92CA, 0x6361, 0xBCF1, 0x6362, 0xBBBB, + 0x6363, 0xB5B7, 0x6364, 0x92CB, 0x6365, 0x92CC, 0x6366, 0x92CD, 0x6367, 0xC5F5, 0x6368, 0x92CE, 0x6369, 0xDEE6, 0x636A, 0x92CF, + 0x636B, 0x92D0, 0x636C, 0x92D1, 0x636D, 0xDEE3, 0x636E, 0xBEDD, 0x636F, 0x92D2, 0x6370, 0x92D3, 0x6371, 0xDEDF, 0x6372, 0x92D4, + 0x6373, 0x92D5, 0x6374, 0x92D6, 0x6375, 0x92D7, 0x6376, 0xB4B7, 0x6377, 0xBDDD, 0x6378, 0x92D8, 0x6379, 0x92D9, 0x637A, 0xDEE0, + 0x637B, 0xC4ED, 0x637C, 0x92DA, 0x637D, 0x92DB, 0x637E, 0x92DC, 0x637F, 0x92DD, 0x6380, 0xCFC6, 0x6381, 0x92DE, 0x6382, 0xB5E0, + 0x6383, 0x92DF, 0x6384, 0x92E0, 0x6385, 0x92E1, 0x6386, 0x92E2, 0x6387, 0xB6DE, 0x6388, 0xCADA, 0x6389, 0xB5F4, 0x638A, 0xDEE5, + 0x638B, 0x92E3, 0x638C, 0xD5C6, 0x638D, 0x92E4, 0x638E, 0xDEE1, 0x638F, 0xCCCD, 0x6390, 0xC6FE, 0x6391, 0x92E5, 0x6392, 0xC5C5, + 0x6393, 0x92E6, 0x6394, 0x92E7, 0x6395, 0x92E8, 0x6396, 0xD2B4, 0x6397, 0x92E9, 0x6398, 0xBEF2, 0x6399, 0x92EA, 0x639A, 0x92EB, + 0x639B, 0x92EC, 0x639C, 0x92ED, 0x639D, 0x92EE, 0x639E, 0x92EF, 0x639F, 0x92F0, 0x63A0, 0xC2D3, 0x63A1, 0x92F1, 0x63A2, 0xCCBD, + 0x63A3, 0xB3B8, 0x63A4, 0x92F2, 0x63A5, 0xBDD3, 0x63A6, 0x92F3, 0x63A7, 0xBFD8, 0x63A8, 0xCDC6, 0x63A9, 0xD1DA, 0x63AA, 0xB4EB, + 0x63AB, 0x92F4, 0x63AC, 0xDEE4, 0x63AD, 0xDEDD, 0x63AE, 0xDEE7, 0x63AF, 0x92F5, 0x63B0, 0xEAFE, 0x63B1, 0x92F6, 0x63B2, 0x92F7, + 0x63B3, 0xC2B0, 0x63B4, 0xDEE2, 0x63B5, 0x92F8, 0x63B6, 0x92F9, 0x63B7, 0xD6C0, 0x63B8, 0xB5A7, 0x63B9, 0x92FA, 0x63BA, 0xB2F4, + 0x63BB, 0x92FB, 0x63BC, 0xDEE8, 0x63BD, 0x92FC, 0x63BE, 0xDEF2, 0x63BF, 0x92FD, 0x63C0, 0x92FE, 0x63C1, 0x9340, 0x63C2, 0x9341, + 0x63C3, 0x9342, 0x63C4, 0xDEED, 0x63C5, 0x9343, 0x63C6, 0xDEF1, 0x63C7, 0x9344, 0x63C8, 0x9345, 0x63C9, 0xC8E0, 0x63CA, 0x9346, + 0x63CB, 0x9347, 0x63CC, 0x9348, 0x63CD, 0xD7E1, 0x63CE, 0xDEEF, 0x63CF, 0xC3E8, 0x63D0, 0xCCE1, 0x63D1, 0x9349, 0x63D2, 0xB2E5, + 0x63D3, 0x934A, 0x63D4, 0x934B, 0x63D5, 0x934C, 0x63D6, 0xD2BE, 0x63D7, 0x934D, 0x63D8, 0x934E, 0x63D9, 0x934F, 0x63DA, 0x9350, + 0x63DB, 0x9351, 0x63DC, 0x9352, 0x63DD, 0x9353, 0x63DE, 0xDEEE, 0x63DF, 0x9354, 0x63E0, 0xDEEB, 0x63E1, 0xCED5, 0x63E2, 0x9355, + 0x63E3, 0xB4A7, 0x63E4, 0x9356, 0x63E5, 0x9357, 0x63E6, 0x9358, 0x63E7, 0x9359, 0x63E8, 0x935A, 0x63E9, 0xBFAB, 0x63EA, 0xBEBE, + 0x63EB, 0x935B, 0x63EC, 0x935C, 0x63ED, 0xBDD2, 0x63EE, 0x935D, 0x63EF, 0x935E, 0x63F0, 0x935F, 0x63F1, 0x9360, 0x63F2, 0xDEE9, + 0x63F3, 0x9361, 0x63F4, 0xD4AE, 0x63F5, 0x9362, 0x63F6, 0xDEDE, 0x63F7, 0x9363, 0x63F8, 0xDEEA, 0x63F9, 0x9364, 0x63FA, 0x9365, + 0x63FB, 0x9366, 0x63FC, 0x9367, 0x63FD, 0xC0BF, 0x63FE, 0x9368, 0x63FF, 0xDEEC, 0x6400, 0xB2F3, 0x6401, 0xB8E9, 0x6402, 0xC2A7, + 0x6403, 0x9369, 0x6404, 0x936A, 0x6405, 0xBDC1, 0x6406, 0x936B, 0x6407, 0x936C, 0x6408, 0x936D, 0x6409, 0x936E, 0x640A, 0x936F, + 0x640B, 0xDEF5, 0x640C, 0xDEF8, 0x640D, 0x9370, 0x640E, 0x9371, 0x640F, 0xB2AB, 0x6410, 0xB4A4, 0x6411, 0x9372, 0x6412, 0x9373, + 0x6413, 0xB4EA, 0x6414, 0xC9A6, 0x6415, 0x9374, 0x6416, 0x9375, 0x6417, 0x9376, 0x6418, 0x9377, 0x6419, 0x9378, 0x641A, 0x9379, + 0x641B, 0xDEF6, 0x641C, 0xCBD1, 0x641D, 0x937A, 0x641E, 0xB8E3, 0x641F, 0x937B, 0x6420, 0xDEF7, 0x6421, 0xDEFA, 0x6422, 0x937C, + 0x6423, 0x937D, 0x6424, 0x937E, 0x6425, 0x9380, 0x6426, 0xDEF9, 0x6427, 0x9381, 0x6428, 0x9382, 0x6429, 0x9383, 0x642A, 0xCCC2, + 0x642B, 0x9384, 0x642C, 0xB0E1, 0x642D, 0xB4EE, 0x642E, 0x9385, 0x642F, 0x9386, 0x6430, 0x9387, 0x6431, 0x9388, 0x6432, 0x9389, + 0x6433, 0x938A, 0x6434, 0xE5BA, 0x6435, 0x938B, 0x6436, 0x938C, 0x6437, 0x938D, 0x6438, 0x938E, 0x6439, 0x938F, 0x643A, 0xD0AF, + 0x643B, 0x9390, 0x643C, 0x9391, 0x643D, 0xB2EB, 0x643E, 0x9392, 0x643F, 0xEBA1, 0x6440, 0x9393, 0x6441, 0xDEF4, 0x6442, 0x9394, + 0x6443, 0x9395, 0x6444, 0xC9E3, 0x6445, 0xDEF3, 0x6446, 0xB0DA, 0x6447, 0xD2A1, 0x6448, 0xB1F7, 0x6449, 0x9396, 0x644A, 0xCCAF, + 0x644B, 0x9397, 0x644C, 0x9398, 0x644D, 0x9399, 0x644E, 0x939A, 0x644F, 0x939B, 0x6450, 0x939C, 0x6451, 0x939D, 0x6452, 0xDEF0, + 0x6453, 0x939E, 0x6454, 0xCBA4, 0x6455, 0x939F, 0x6456, 0x93A0, 0x6457, 0x93A1, 0x6458, 0xD5AA, 0x6459, 0x93A2, 0x645A, 0x93A3, + 0x645B, 0x93A4, 0x645C, 0x93A5, 0x645D, 0x93A6, 0x645E, 0xDEFB, 0x645F, 0x93A7, 0x6460, 0x93A8, 0x6461, 0x93A9, 0x6462, 0x93AA, + 0x6463, 0x93AB, 0x6464, 0x93AC, 0x6465, 0x93AD, 0x6466, 0x93AE, 0x6467, 0xB4DD, 0x6468, 0x93AF, 0x6469, 0xC4A6, 0x646A, 0x93B0, + 0x646B, 0x93B1, 0x646C, 0x93B2, 0x646D, 0xDEFD, 0x646E, 0x93B3, 0x646F, 0x93B4, 0x6470, 0x93B5, 0x6471, 0x93B6, 0x6472, 0x93B7, + 0x6473, 0x93B8, 0x6474, 0x93B9, 0x6475, 0x93BA, 0x6476, 0x93BB, 0x6477, 0x93BC, 0x6478, 0xC3FE, 0x6479, 0xC4A1, 0x647A, 0xDFA1, + 0x647B, 0x93BD, 0x647C, 0x93BE, 0x647D, 0x93BF, 0x647E, 0x93C0, 0x647F, 0x93C1, 0x6480, 0x93C2, 0x6481, 0x93C3, 0x6482, 0xC1CC, + 0x6483, 0x93C4, 0x6484, 0xDEFC, 0x6485, 0xBEEF, 0x6486, 0x93C5, 0x6487, 0xC6B2, 0x6488, 0x93C6, 0x6489, 0x93C7, 0x648A, 0x93C8, + 0x648B, 0x93C9, 0x648C, 0x93CA, 0x648D, 0x93CB, 0x648E, 0x93CC, 0x648F, 0x93CD, 0x6490, 0x93CE, 0x6491, 0xB3C5, 0x6492, 0xC8F6, + 0x6493, 0x93CF, 0x6494, 0x93D0, 0x6495, 0xCBBA, 0x6496, 0xDEFE, 0x6497, 0x93D1, 0x6498, 0x93D2, 0x6499, 0xDFA4, 0x649A, 0x93D3, + 0x649B, 0x93D4, 0x649C, 0x93D5, 0x649D, 0x93D6, 0x649E, 0xD7B2, 0x649F, 0x93D7, 0x64A0, 0x93D8, 0x64A1, 0x93D9, 0x64A2, 0x93DA, + 0x64A3, 0x93DB, 0x64A4, 0xB3B7, 0x64A5, 0x93DC, 0x64A6, 0x93DD, 0x64A7, 0x93DE, 0x64A8, 0x93DF, 0x64A9, 0xC1C3, 0x64AA, 0x93E0, + 0x64AB, 0x93E1, 0x64AC, 0xC7CB, 0x64AD, 0xB2A5, 0x64AE, 0xB4E9, 0x64AF, 0x93E2, 0x64B0, 0xD7AB, 0x64B1, 0x93E3, 0x64B2, 0x93E4, + 0x64B3, 0x93E5, 0x64B4, 0x93E6, 0x64B5, 0xC4EC, 0x64B6, 0x93E7, 0x64B7, 0xDFA2, 0x64B8, 0xDFA3, 0x64B9, 0x93E8, 0x64BA, 0xDFA5, + 0x64BB, 0x93E9, 0x64BC, 0xBAB3, 0x64BD, 0x93EA, 0x64BE, 0x93EB, 0x64BF, 0x93EC, 0x64C0, 0xDFA6, 0x64C1, 0x93ED, 0x64C2, 0xC0DE, + 0x64C3, 0x93EE, 0x64C4, 0x93EF, 0x64C5, 0xC9C3, 0x64C6, 0x93F0, 0x64C7, 0x93F1, 0x64C8, 0x93F2, 0x64C9, 0x93F3, 0x64CA, 0x93F4, + 0x64CB, 0x93F5, 0x64CC, 0x93F6, 0x64CD, 0xB2D9, 0x64CE, 0xC7E6, 0x64CF, 0x93F7, 0x64D0, 0xDFA7, 0x64D1, 0x93F8, 0x64D2, 0xC7DC, + 0x64D3, 0x93F9, 0x64D4, 0x93FA, 0x64D5, 0x93FB, 0x64D6, 0x93FC, 0x64D7, 0xDFA8, 0x64D8, 0xEBA2, 0x64D9, 0x93FD, 0x64DA, 0x93FE, + 0x64DB, 0x9440, 0x64DC, 0x9441, 0x64DD, 0x9442, 0x64DE, 0xCBD3, 0x64DF, 0x9443, 0x64E0, 0x9444, 0x64E1, 0x9445, 0x64E2, 0xDFAA, + 0x64E3, 0x9446, 0x64E4, 0xDFA9, 0x64E5, 0x9447, 0x64E6, 0xB2C1, 0x64E7, 0x9448, 0x64E8, 0x9449, 0x64E9, 0x944A, 0x64EA, 0x944B, + 0x64EB, 0x944C, 0x64EC, 0x944D, 0x64ED, 0x944E, 0x64EE, 0x944F, 0x64EF, 0x9450, 0x64F0, 0x9451, 0x64F1, 0x9452, 0x64F2, 0x9453, + 0x64F3, 0x9454, 0x64F4, 0x9455, 0x64F5, 0x9456, 0x64F6, 0x9457, 0x64F7, 0x9458, 0x64F8, 0x9459, 0x64F9, 0x945A, 0x64FA, 0x945B, + 0x64FB, 0x945C, 0x64FC, 0x945D, 0x64FD, 0x945E, 0x64FE, 0x945F, 0x64FF, 0x9460, 0x6500, 0xC5CA, 0x6501, 0x9461, 0x6502, 0x9462, + 0x6503, 0x9463, 0x6504, 0x9464, 0x6505, 0x9465, 0x6506, 0x9466, 0x6507, 0x9467, 0x6508, 0x9468, 0x6509, 0xDFAB, 0x650A, 0x9469, + 0x650B, 0x946A, 0x650C, 0x946B, 0x650D, 0x946C, 0x650E, 0x946D, 0x650F, 0x946E, 0x6510, 0x946F, 0x6511, 0x9470, 0x6512, 0xD4DC, + 0x6513, 0x9471, 0x6514, 0x9472, 0x6515, 0x9473, 0x6516, 0x9474, 0x6517, 0x9475, 0x6518, 0xC8C1, 0x6519, 0x9476, 0x651A, 0x9477, + 0x651B, 0x9478, 0x651C, 0x9479, 0x651D, 0x947A, 0x651E, 0x947B, 0x651F, 0x947C, 0x6520, 0x947D, 0x6521, 0x947E, 0x6522, 0x9480, + 0x6523, 0x9481, 0x6524, 0x9482, 0x6525, 0xDFAC, 0x6526, 0x9483, 0x6527, 0x9484, 0x6528, 0x9485, 0x6529, 0x9486, 0x652A, 0x9487, + 0x652B, 0xBEF0, 0x652C, 0x9488, 0x652D, 0x9489, 0x652E, 0xDFAD, 0x652F, 0xD6A7, 0x6530, 0x948A, 0x6531, 0x948B, 0x6532, 0x948C, + 0x6533, 0x948D, 0x6534, 0xEAB7, 0x6535, 0xEBB6, 0x6536, 0xCAD5, 0x6537, 0x948E, 0x6538, 0xD8FC, 0x6539, 0xB8C4, 0x653A, 0x948F, + 0x653B, 0xB9A5, 0x653C, 0x9490, 0x653D, 0x9491, 0x653E, 0xB7C5, 0x653F, 0xD5FE, 0x6540, 0x9492, 0x6541, 0x9493, 0x6542, 0x9494, + 0x6543, 0x9495, 0x6544, 0x9496, 0x6545, 0xB9CA, 0x6546, 0x9497, 0x6547, 0x9498, 0x6548, 0xD0A7, 0x6549, 0xF4CD, 0x654A, 0x9499, + 0x654B, 0x949A, 0x654C, 0xB5D0, 0x654D, 0x949B, 0x654E, 0x949C, 0x654F, 0xC3F4, 0x6550, 0x949D, 0x6551, 0xBEC8, 0x6552, 0x949E, + 0x6553, 0x949F, 0x6554, 0x94A0, 0x6555, 0xEBB7, 0x6556, 0xB0BD, 0x6557, 0x94A1, 0x6558, 0x94A2, 0x6559, 0xBDCC, 0x655A, 0x94A3, + 0x655B, 0xC1B2, 0x655C, 0x94A4, 0x655D, 0xB1D6, 0x655E, 0xB3A8, 0x655F, 0x94A5, 0x6560, 0x94A6, 0x6561, 0x94A7, 0x6562, 0xB8D2, + 0x6563, 0xC9A2, 0x6564, 0x94A8, 0x6565, 0x94A9, 0x6566, 0xB6D8, 0x6567, 0x94AA, 0x6568, 0x94AB, 0x6569, 0x94AC, 0x656A, 0x94AD, + 0x656B, 0xEBB8, 0x656C, 0xBEB4, 0x656D, 0x94AE, 0x656E, 0x94AF, 0x656F, 0x94B0, 0x6570, 0xCAFD, 0x6571, 0x94B1, 0x6572, 0xC7C3, + 0x6573, 0x94B2, 0x6574, 0xD5FB, 0x6575, 0x94B3, 0x6576, 0x94B4, 0x6577, 0xB7F3, 0x6578, 0x94B5, 0x6579, 0x94B6, 0x657A, 0x94B7, + 0x657B, 0x94B8, 0x657C, 0x94B9, 0x657D, 0x94BA, 0x657E, 0x94BB, 0x657F, 0x94BC, 0x6580, 0x94BD, 0x6581, 0x94BE, 0x6582, 0x94BF, + 0x6583, 0x94C0, 0x6584, 0x94C1, 0x6585, 0x94C2, 0x6586, 0x94C3, 0x6587, 0xCEC4, 0x6588, 0x94C4, 0x6589, 0x94C5, 0x658A, 0x94C6, + 0x658B, 0xD5AB, 0x658C, 0xB1F3, 0x658D, 0x94C7, 0x658E, 0x94C8, 0x658F, 0x94C9, 0x6590, 0xECB3, 0x6591, 0xB0DF, 0x6592, 0x94CA, + 0x6593, 0xECB5, 0x6594, 0x94CB, 0x6595, 0x94CC, 0x6596, 0x94CD, 0x6597, 0xB6B7, 0x6598, 0x94CE, 0x6599, 0xC1CF, 0x659A, 0x94CF, + 0x659B, 0xF5FA, 0x659C, 0xD0B1, 0x659D, 0x94D0, 0x659E, 0x94D1, 0x659F, 0xD5E5, 0x65A0, 0x94D2, 0x65A1, 0xCED3, 0x65A2, 0x94D3, + 0x65A3, 0x94D4, 0x65A4, 0xBDEF, 0x65A5, 0xB3E2, 0x65A6, 0x94D5, 0x65A7, 0xB8AB, 0x65A8, 0x94D6, 0x65A9, 0xD5B6, 0x65AA, 0x94D7, + 0x65AB, 0xEDBD, 0x65AC, 0x94D8, 0x65AD, 0xB6CF, 0x65AE, 0x94D9, 0x65AF, 0xCBB9, 0x65B0, 0xD0C2, 0x65B1, 0x94DA, 0x65B2, 0x94DB, + 0x65B3, 0x94DC, 0x65B4, 0x94DD, 0x65B5, 0x94DE, 0x65B6, 0x94DF, 0x65B7, 0x94E0, 0x65B8, 0x94E1, 0x65B9, 0xB7BD, 0x65BA, 0x94E2, + 0x65BB, 0x94E3, 0x65BC, 0xECB6, 0x65BD, 0xCAA9, 0x65BE, 0x94E4, 0x65BF, 0x94E5, 0x65C0, 0x94E6, 0x65C1, 0xC5D4, 0x65C2, 0x94E7, + 0x65C3, 0xECB9, 0x65C4, 0xECB8, 0x65C5, 0xC2C3, 0x65C6, 0xECB7, 0x65C7, 0x94E8, 0x65C8, 0x94E9, 0x65C9, 0x94EA, 0x65CA, 0x94EB, + 0x65CB, 0xD0FD, 0x65CC, 0xECBA, 0x65CD, 0x94EC, 0x65CE, 0xECBB, 0x65CF, 0xD7E5, 0x65D0, 0x94ED, 0x65D1, 0x94EE, 0x65D2, 0xECBC, + 0x65D3, 0x94EF, 0x65D4, 0x94F0, 0x65D5, 0x94F1, 0x65D6, 0xECBD, 0x65D7, 0xC6EC, 0x65D8, 0x94F2, 0x65D9, 0x94F3, 0x65DA, 0x94F4, + 0x65DB, 0x94F5, 0x65DC, 0x94F6, 0x65DD, 0x94F7, 0x65DE, 0x94F8, 0x65DF, 0x94F9, 0x65E0, 0xCEDE, 0x65E1, 0x94FA, 0x65E2, 0xBCC8, + 0x65E3, 0x94FB, 0x65E4, 0x94FC, 0x65E5, 0xC8D5, 0x65E6, 0xB5A9, 0x65E7, 0xBEC9, 0x65E8, 0xD6BC, 0x65E9, 0xD4E7, 0x65EA, 0x94FD, + 0x65EB, 0x94FE, 0x65EC, 0xD1AE, 0x65ED, 0xD0F1, 0x65EE, 0xEAB8, 0x65EF, 0xEAB9, 0x65F0, 0xEABA, 0x65F1, 0xBAB5, 0x65F2, 0x9540, + 0x65F3, 0x9541, 0x65F4, 0x9542, 0x65F5, 0x9543, 0x65F6, 0xCAB1, 0x65F7, 0xBFF5, 0x65F8, 0x9544, 0x65F9, 0x9545, 0x65FA, 0xCDFA, + 0x65FB, 0x9546, 0x65FC, 0x9547, 0x65FD, 0x9548, 0x65FE, 0x9549, 0x65FF, 0x954A, 0x6600, 0xEAC0, 0x6601, 0x954B, 0x6602, 0xB0BA, + 0x6603, 0xEABE, 0x6604, 0x954C, 0x6605, 0x954D, 0x6606, 0xC0A5, 0x6607, 0x954E, 0x6608, 0x954F, 0x6609, 0x9550, 0x660A, 0xEABB, + 0x660B, 0x9551, 0x660C, 0xB2FD, 0x660D, 0x9552, 0x660E, 0xC3F7, 0x660F, 0xBBE8, 0x6610, 0x9553, 0x6611, 0x9554, 0x6612, 0x9555, + 0x6613, 0xD2D7, 0x6614, 0xCEF4, 0x6615, 0xEABF, 0x6616, 0x9556, 0x6617, 0x9557, 0x6618, 0x9558, 0x6619, 0xEABC, 0x661A, 0x9559, + 0x661B, 0x955A, 0x661C, 0x955B, 0x661D, 0xEAC3, 0x661E, 0x955C, 0x661F, 0xD0C7, 0x6620, 0xD3B3, 0x6621, 0x955D, 0x6622, 0x955E, + 0x6623, 0x955F, 0x6624, 0x9560, 0x6625, 0xB4BA, 0x6626, 0x9561, 0x6627, 0xC3C1, 0x6628, 0xD7F2, 0x6629, 0x9562, 0x662A, 0x9563, + 0x662B, 0x9564, 0x662C, 0x9565, 0x662D, 0xD5D1, 0x662E, 0x9566, 0x662F, 0xCAC7, 0x6630, 0x9567, 0x6631, 0xEAC5, 0x6632, 0x9568, + 0x6633, 0x9569, 0x6634, 0xEAC4, 0x6635, 0xEAC7, 0x6636, 0xEAC6, 0x6637, 0x956A, 0x6638, 0x956B, 0x6639, 0x956C, 0x663A, 0x956D, + 0x663B, 0x956E, 0x663C, 0xD6E7, 0x663D, 0x956F, 0x663E, 0xCFD4, 0x663F, 0x9570, 0x6640, 0x9571, 0x6641, 0xEACB, 0x6642, 0x9572, + 0x6643, 0xBBCE, 0x6644, 0x9573, 0x6645, 0x9574, 0x6646, 0x9575, 0x6647, 0x9576, 0x6648, 0x9577, 0x6649, 0x9578, 0x664A, 0x9579, + 0x664B, 0xBDFA, 0x664C, 0xC9CE, 0x664D, 0x957A, 0x664E, 0x957B, 0x664F, 0xEACC, 0x6650, 0x957C, 0x6651, 0x957D, 0x6652, 0xC9B9, + 0x6653, 0xCFFE, 0x6654, 0xEACA, 0x6655, 0xD4CE, 0x6656, 0xEACD, 0x6657, 0xEACF, 0x6658, 0x957E, 0x6659, 0x9580, 0x665A, 0xCDED, + 0x665B, 0x9581, 0x665C, 0x9582, 0x665D, 0x9583, 0x665E, 0x9584, 0x665F, 0xEAC9, 0x6660, 0x9585, 0x6661, 0xEACE, 0x6662, 0x9586, + 0x6663, 0x9587, 0x6664, 0xCEEE, 0x6665, 0x9588, 0x6666, 0xBBDE, 0x6667, 0x9589, 0x6668, 0xB3BF, 0x6669, 0x958A, 0x666A, 0x958B, + 0x666B, 0x958C, 0x666C, 0x958D, 0x666D, 0x958E, 0x666E, 0xC6D5, 0x666F, 0xBEB0, 0x6670, 0xCEFA, 0x6671, 0x958F, 0x6672, 0x9590, + 0x6673, 0x9591, 0x6674, 0xC7E7, 0x6675, 0x9592, 0x6676, 0xBEA7, 0x6677, 0xEAD0, 0x6678, 0x9593, 0x6679, 0x9594, 0x667A, 0xD6C7, + 0x667B, 0x9595, 0x667C, 0x9596, 0x667D, 0x9597, 0x667E, 0xC1C0, 0x667F, 0x9598, 0x6680, 0x9599, 0x6681, 0x959A, 0x6682, 0xD4DD, + 0x6683, 0x959B, 0x6684, 0xEAD1, 0x6685, 0x959C, 0x6686, 0x959D, 0x6687, 0xCFBE, 0x6688, 0x959E, 0x6689, 0x959F, 0x668A, 0x95A0, + 0x668B, 0x95A1, 0x668C, 0xEAD2, 0x668D, 0x95A2, 0x668E, 0x95A3, 0x668F, 0x95A4, 0x6690, 0x95A5, 0x6691, 0xCAEE, 0x6692, 0x95A6, + 0x6693, 0x95A7, 0x6694, 0x95A8, 0x6695, 0x95A9, 0x6696, 0xC5AF, 0x6697, 0xB0B5, 0x6698, 0x95AA, 0x6699, 0x95AB, 0x669A, 0x95AC, + 0x669B, 0x95AD, 0x669C, 0x95AE, 0x669D, 0xEAD4, 0x669E, 0x95AF, 0x669F, 0x95B0, 0x66A0, 0x95B1, 0x66A1, 0x95B2, 0x66A2, 0x95B3, + 0x66A3, 0x95B4, 0x66A4, 0x95B5, 0x66A5, 0x95B6, 0x66A6, 0x95B7, 0x66A7, 0xEAD3, 0x66A8, 0xF4DF, 0x66A9, 0x95B8, 0x66AA, 0x95B9, + 0x66AB, 0x95BA, 0x66AC, 0x95BB, 0x66AD, 0x95BC, 0x66AE, 0xC4BA, 0x66AF, 0x95BD, 0x66B0, 0x95BE, 0x66B1, 0x95BF, 0x66B2, 0x95C0, + 0x66B3, 0x95C1, 0x66B4, 0xB1A9, 0x66B5, 0x95C2, 0x66B6, 0x95C3, 0x66B7, 0x95C4, 0x66B8, 0x95C5, 0x66B9, 0xE5DF, 0x66BA, 0x95C6, + 0x66BB, 0x95C7, 0x66BC, 0x95C8, 0x66BD, 0x95C9, 0x66BE, 0xEAD5, 0x66BF, 0x95CA, 0x66C0, 0x95CB, 0x66C1, 0x95CC, 0x66C2, 0x95CD, + 0x66C3, 0x95CE, 0x66C4, 0x95CF, 0x66C5, 0x95D0, 0x66C6, 0x95D1, 0x66C7, 0x95D2, 0x66C8, 0x95D3, 0x66C9, 0x95D4, 0x66CA, 0x95D5, + 0x66CB, 0x95D6, 0x66CC, 0x95D7, 0x66CD, 0x95D8, 0x66CE, 0x95D9, 0x66CF, 0x95DA, 0x66D0, 0x95DB, 0x66D1, 0x95DC, 0x66D2, 0x95DD, + 0x66D3, 0x95DE, 0x66D4, 0x95DF, 0x66D5, 0x95E0, 0x66D6, 0x95E1, 0x66D7, 0x95E2, 0x66D8, 0x95E3, 0x66D9, 0xCAEF, 0x66DA, 0x95E4, + 0x66DB, 0xEAD6, 0x66DC, 0xEAD7, 0x66DD, 0xC6D8, 0x66DE, 0x95E5, 0x66DF, 0x95E6, 0x66E0, 0x95E7, 0x66E1, 0x95E8, 0x66E2, 0x95E9, + 0x66E3, 0x95EA, 0x66E4, 0x95EB, 0x66E5, 0x95EC, 0x66E6, 0xEAD8, 0x66E7, 0x95ED, 0x66E8, 0x95EE, 0x66E9, 0xEAD9, 0x66EA, 0x95EF, + 0x66EB, 0x95F0, 0x66EC, 0x95F1, 0x66ED, 0x95F2, 0x66EE, 0x95F3, 0x66EF, 0x95F4, 0x66F0, 0xD4BB, 0x66F1, 0x95F5, 0x66F2, 0xC7FA, + 0x66F3, 0xD2B7, 0x66F4, 0xB8FC, 0x66F5, 0x95F6, 0x66F6, 0x95F7, 0x66F7, 0xEAC2, 0x66F8, 0x95F8, 0x66F9, 0xB2DC, 0x66FA, 0x95F9, + 0x66FB, 0x95FA, 0x66FC, 0xC2FC, 0x66FD, 0x95FB, 0x66FE, 0xD4F8, 0x66FF, 0xCCE6, 0x6700, 0xD7EE, 0x6701, 0x95FC, 0x6702, 0x95FD, + 0x6703, 0x95FE, 0x6704, 0x9640, 0x6705, 0x9641, 0x6706, 0x9642, 0x6707, 0x9643, 0x6708, 0xD4C2, 0x6709, 0xD3D0, 0x670A, 0xEBC3, + 0x670B, 0xC5F3, 0x670C, 0x9644, 0x670D, 0xB7FE, 0x670E, 0x9645, 0x670F, 0x9646, 0x6710, 0xEBD4, 0x6711, 0x9647, 0x6712, 0x9648, + 0x6713, 0x9649, 0x6714, 0xCBB7, 0x6715, 0xEBDE, 0x6716, 0x964A, 0x6717, 0xC0CA, 0x6718, 0x964B, 0x6719, 0x964C, 0x671A, 0x964D, + 0x671B, 0xCDFB, 0x671C, 0x964E, 0x671D, 0xB3AF, 0x671E, 0x964F, 0x671F, 0xC6DA, 0x6720, 0x9650, 0x6721, 0x9651, 0x6722, 0x9652, + 0x6723, 0x9653, 0x6724, 0x9654, 0x6725, 0x9655, 0x6726, 0xEBFC, 0x6727, 0x9656, 0x6728, 0xC4BE, 0x6729, 0x9657, 0x672A, 0xCEB4, + 0x672B, 0xC4A9, 0x672C, 0xB1BE, 0x672D, 0xD4FD, 0x672E, 0x9658, 0x672F, 0xCAF5, 0x6730, 0x9659, 0x6731, 0xD6EC, 0x6732, 0x965A, + 0x6733, 0x965B, 0x6734, 0xC6D3, 0x6735, 0xB6E4, 0x6736, 0x965C, 0x6737, 0x965D, 0x6738, 0x965E, 0x6739, 0x965F, 0x673A, 0xBBFA, + 0x673B, 0x9660, 0x673C, 0x9661, 0x673D, 0xD0E0, 0x673E, 0x9662, 0x673F, 0x9663, 0x6740, 0xC9B1, 0x6741, 0x9664, 0x6742, 0xD4D3, + 0x6743, 0xC8A8, 0x6744, 0x9665, 0x6745, 0x9666, 0x6746, 0xB8CB, 0x6747, 0x9667, 0x6748, 0xE8BE, 0x6749, 0xC9BC, 0x674A, 0x9668, + 0x674B, 0x9669, 0x674C, 0xE8BB, 0x674D, 0x966A, 0x674E, 0xC0EE, 0x674F, 0xD0D3, 0x6750, 0xB2C4, 0x6751, 0xB4E5, 0x6752, 0x966B, + 0x6753, 0xE8BC, 0x6754, 0x966C, 0x6755, 0x966D, 0x6756, 0xD5C8, 0x6757, 0x966E, 0x6758, 0x966F, 0x6759, 0x9670, 0x675A, 0x9671, + 0x675B, 0x9672, 0x675C, 0xB6C5, 0x675D, 0x9673, 0x675E, 0xE8BD, 0x675F, 0xCAF8, 0x6760, 0xB8DC, 0x6761, 0xCCF5, 0x6762, 0x9674, + 0x6763, 0x9675, 0x6764, 0x9676, 0x6765, 0xC0B4, 0x6766, 0x9677, 0x6767, 0x9678, 0x6768, 0xD1EE, 0x6769, 0xE8BF, 0x676A, 0xE8C2, + 0x676B, 0x9679, 0x676C, 0x967A, 0x676D, 0xBABC, 0x676E, 0x967B, 0x676F, 0xB1AD, 0x6770, 0xBDDC, 0x6771, 0x967C, 0x6772, 0xEABD, + 0x6773, 0xE8C3, 0x6774, 0x967D, 0x6775, 0xE8C6, 0x6776, 0x967E, 0x6777, 0xE8CB, 0x6778, 0x9680, 0x6779, 0x9681, 0x677A, 0x9682, + 0x677B, 0x9683, 0x677C, 0xE8CC, 0x677D, 0x9684, 0x677E, 0xCBC9, 0x677F, 0xB0E5, 0x6780, 0x9685, 0x6781, 0xBCAB, 0x6782, 0x9686, + 0x6783, 0x9687, 0x6784, 0xB9B9, 0x6785, 0x9688, 0x6786, 0x9689, 0x6787, 0xE8C1, 0x6788, 0x968A, 0x6789, 0xCDF7, 0x678A, 0x968B, + 0x678B, 0xE8CA, 0x678C, 0x968C, 0x678D, 0x968D, 0x678E, 0x968E, 0x678F, 0x968F, 0x6790, 0xCEF6, 0x6791, 0x9690, 0x6792, 0x9691, + 0x6793, 0x9692, 0x6794, 0x9693, 0x6795, 0xD5ED, 0x6796, 0x9694, 0x6797, 0xC1D6, 0x6798, 0xE8C4, 0x6799, 0x9695, 0x679A, 0xC3B6, + 0x679B, 0x9696, 0x679C, 0xB9FB, 0x679D, 0xD6A6, 0x679E, 0xE8C8, 0x679F, 0x9697, 0x67A0, 0x9698, 0x67A1, 0x9699, 0x67A2, 0xCAE0, + 0x67A3, 0xD4E6, 0x67A4, 0x969A, 0x67A5, 0xE8C0, 0x67A6, 0x969B, 0x67A7, 0xE8C5, 0x67A8, 0xE8C7, 0x67A9, 0x969C, 0x67AA, 0xC7B9, + 0x67AB, 0xB7E3, 0x67AC, 0x969D, 0x67AD, 0xE8C9, 0x67AE, 0x969E, 0x67AF, 0xBFDD, 0x67B0, 0xE8D2, 0x67B1, 0x969F, 0x67B2, 0x96A0, + 0x67B3, 0xE8D7, 0x67B4, 0x96A1, 0x67B5, 0xE8D5, 0x67B6, 0xBCDC, 0x67B7, 0xBCCF, 0x67B8, 0xE8DB, 0x67B9, 0x96A2, 0x67BA, 0x96A3, + 0x67BB, 0x96A4, 0x67BC, 0x96A5, 0x67BD, 0x96A6, 0x67BE, 0x96A7, 0x67BF, 0x96A8, 0x67C0, 0x96A9, 0x67C1, 0xE8DE, 0x67C2, 0x96AA, + 0x67C3, 0xE8DA, 0x67C4, 0xB1FA, 0x67C5, 0x96AB, 0x67C6, 0x96AC, 0x67C7, 0x96AD, 0x67C8, 0x96AE, 0x67C9, 0x96AF, 0x67CA, 0x96B0, + 0x67CB, 0x96B1, 0x67CC, 0x96B2, 0x67CD, 0x96B3, 0x67CE, 0x96B4, 0x67CF, 0xB0D8, 0x67D0, 0xC4B3, 0x67D1, 0xB8CC, 0x67D2, 0xC6E2, + 0x67D3, 0xC8BE, 0x67D4, 0xC8E1, 0x67D5, 0x96B5, 0x67D6, 0x96B6, 0x67D7, 0x96B7, 0x67D8, 0xE8CF, 0x67D9, 0xE8D4, 0x67DA, 0xE8D6, + 0x67DB, 0x96B8, 0x67DC, 0xB9F1, 0x67DD, 0xE8D8, 0x67DE, 0xD7F5, 0x67DF, 0x96B9, 0x67E0, 0xC4FB, 0x67E1, 0x96BA, 0x67E2, 0xE8DC, + 0x67E3, 0x96BB, 0x67E4, 0x96BC, 0x67E5, 0xB2E9, 0x67E6, 0x96BD, 0x67E7, 0x96BE, 0x67E8, 0x96BF, 0x67E9, 0xE8D1, 0x67EA, 0x96C0, + 0x67EB, 0x96C1, 0x67EC, 0xBCED, 0x67ED, 0x96C2, 0x67EE, 0x96C3, 0x67EF, 0xBFC2, 0x67F0, 0xE8CD, 0x67F1, 0xD6F9, 0x67F2, 0x96C4, + 0x67F3, 0xC1F8, 0x67F4, 0xB2F1, 0x67F5, 0x96C5, 0x67F6, 0x96C6, 0x67F7, 0x96C7, 0x67F8, 0x96C8, 0x67F9, 0x96C9, 0x67FA, 0x96CA, + 0x67FB, 0x96CB, 0x67FC, 0x96CC, 0x67FD, 0xE8DF, 0x67FE, 0x96CD, 0x67FF, 0xCAC1, 0x6800, 0xE8D9, 0x6801, 0x96CE, 0x6802, 0x96CF, + 0x6803, 0x96D0, 0x6804, 0x96D1, 0x6805, 0xD5A4, 0x6806, 0x96D2, 0x6807, 0xB1EA, 0x6808, 0xD5BB, 0x6809, 0xE8CE, 0x680A, 0xE8D0, + 0x680B, 0xB6B0, 0x680C, 0xE8D3, 0x680D, 0x96D3, 0x680E, 0xE8DD, 0x680F, 0xC0B8, 0x6810, 0x96D4, 0x6811, 0xCAF7, 0x6812, 0x96D5, + 0x6813, 0xCBA8, 0x6814, 0x96D6, 0x6815, 0x96D7, 0x6816, 0xC6DC, 0x6817, 0xC0F5, 0x6818, 0x96D8, 0x6819, 0x96D9, 0x681A, 0x96DA, + 0x681B, 0x96DB, 0x681C, 0x96DC, 0x681D, 0xE8E9, 0x681E, 0x96DD, 0x681F, 0x96DE, 0x6820, 0x96DF, 0x6821, 0xD0A3, 0x6822, 0x96E0, + 0x6823, 0x96E1, 0x6824, 0x96E2, 0x6825, 0x96E3, 0x6826, 0x96E4, 0x6827, 0x96E5, 0x6828, 0x96E6, 0x6829, 0xE8F2, 0x682A, 0xD6EA, + 0x682B, 0x96E7, 0x682C, 0x96E8, 0x682D, 0x96E9, 0x682E, 0x96EA, 0x682F, 0x96EB, 0x6830, 0x96EC, 0x6831, 0x96ED, 0x6832, 0xE8E0, + 0x6833, 0xE8E1, 0x6834, 0x96EE, 0x6835, 0x96EF, 0x6836, 0x96F0, 0x6837, 0xD1F9, 0x6838, 0xBACB, 0x6839, 0xB8F9, 0x683A, 0x96F1, + 0x683B, 0x96F2, 0x683C, 0xB8F1, 0x683D, 0xD4D4, 0x683E, 0xE8EF, 0x683F, 0x96F3, 0x6840, 0xE8EE, 0x6841, 0xE8EC, 0x6842, 0xB9F0, + 0x6843, 0xCCD2, 0x6844, 0xE8E6, 0x6845, 0xCEA6, 0x6846, 0xBFF2, 0x6847, 0x96F4, 0x6848, 0xB0B8, 0x6849, 0xE8F1, 0x684A, 0xE8F0, + 0x684B, 0x96F5, 0x684C, 0xD7C0, 0x684D, 0x96F6, 0x684E, 0xE8E4, 0x684F, 0x96F7, 0x6850, 0xCDA9, 0x6851, 0xC9A3, 0x6852, 0x96F8, + 0x6853, 0xBBB8, 0x6854, 0xBDDB, 0x6855, 0xE8EA, 0x6856, 0x96F9, 0x6857, 0x96FA, 0x6858, 0x96FB, 0x6859, 0x96FC, 0x685A, 0x96FD, + 0x685B, 0x96FE, 0x685C, 0x9740, 0x685D, 0x9741, 0x685E, 0x9742, 0x685F, 0x9743, 0x6860, 0xE8E2, 0x6861, 0xE8E3, 0x6862, 0xE8E5, + 0x6863, 0xB5B5, 0x6864, 0xE8E7, 0x6865, 0xC7C5, 0x6866, 0xE8EB, 0x6867, 0xE8ED, 0x6868, 0xBDB0, 0x6869, 0xD7AE, 0x686A, 0x9744, + 0x686B, 0xE8F8, 0x686C, 0x9745, 0x686D, 0x9746, 0x686E, 0x9747, 0x686F, 0x9748, 0x6870, 0x9749, 0x6871, 0x974A, 0x6872, 0x974B, + 0x6873, 0x974C, 0x6874, 0xE8F5, 0x6875, 0x974D, 0x6876, 0xCDB0, 0x6877, 0xE8F6, 0x6878, 0x974E, 0x6879, 0x974F, 0x687A, 0x9750, + 0x687B, 0x9751, 0x687C, 0x9752, 0x687D, 0x9753, 0x687E, 0x9754, 0x687F, 0x9755, 0x6880, 0x9756, 0x6881, 0xC1BA, 0x6882, 0x9757, + 0x6883, 0xE8E8, 0x6884, 0x9758, 0x6885, 0xC3B7, 0x6886, 0xB0F0, 0x6887, 0x9759, 0x6888, 0x975A, 0x6889, 0x975B, 0x688A, 0x975C, + 0x688B, 0x975D, 0x688C, 0x975E, 0x688D, 0x975F, 0x688E, 0x9760, 0x688F, 0xE8F4, 0x6890, 0x9761, 0x6891, 0x9762, 0x6892, 0x9763, + 0x6893, 0xE8F7, 0x6894, 0x9764, 0x6895, 0x9765, 0x6896, 0x9766, 0x6897, 0xB9A3, 0x6898, 0x9767, 0x6899, 0x9768, 0x689A, 0x9769, + 0x689B, 0x976A, 0x689C, 0x976B, 0x689D, 0x976C, 0x689E, 0x976D, 0x689F, 0x976E, 0x68A0, 0x976F, 0x68A1, 0x9770, 0x68A2, 0xC9D2, + 0x68A3, 0x9771, 0x68A4, 0x9772, 0x68A5, 0x9773, 0x68A6, 0xC3CE, 0x68A7, 0xCEE0, 0x68A8, 0xC0E6, 0x68A9, 0x9774, 0x68AA, 0x9775, + 0x68AB, 0x9776, 0x68AC, 0x9777, 0x68AD, 0xCBF3, 0x68AE, 0x9778, 0x68AF, 0xCCDD, 0x68B0, 0xD0B5, 0x68B1, 0x9779, 0x68B2, 0x977A, + 0x68B3, 0xCAE1, 0x68B4, 0x977B, 0x68B5, 0xE8F3, 0x68B6, 0x977C, 0x68B7, 0x977D, 0x68B8, 0x977E, 0x68B9, 0x9780, 0x68BA, 0x9781, + 0x68BB, 0x9782, 0x68BC, 0x9783, 0x68BD, 0x9784, 0x68BE, 0x9785, 0x68BF, 0x9786, 0x68C0, 0xBCEC, 0x68C1, 0x9787, 0x68C2, 0xE8F9, + 0x68C3, 0x9788, 0x68C4, 0x9789, 0x68C5, 0x978A, 0x68C6, 0x978B, 0x68C7, 0x978C, 0x68C8, 0x978D, 0x68C9, 0xC3DE, 0x68CA, 0x978E, + 0x68CB, 0xC6E5, 0x68CC, 0x978F, 0x68CD, 0xB9F7, 0x68CE, 0x9790, 0x68CF, 0x9791, 0x68D0, 0x9792, 0x68D1, 0x9793, 0x68D2, 0xB0F4, + 0x68D3, 0x9794, 0x68D4, 0x9795, 0x68D5, 0xD7D8, 0x68D6, 0x9796, 0x68D7, 0x9797, 0x68D8, 0xBCAC, 0x68D9, 0x9798, 0x68DA, 0xC5EF, + 0x68DB, 0x9799, 0x68DC, 0x979A, 0x68DD, 0x979B, 0x68DE, 0x979C, 0x68DF, 0x979D, 0x68E0, 0xCCC4, 0x68E1, 0x979E, 0x68E2, 0x979F, + 0x68E3, 0xE9A6, 0x68E4, 0x97A0, 0x68E5, 0x97A1, 0x68E6, 0x97A2, 0x68E7, 0x97A3, 0x68E8, 0x97A4, 0x68E9, 0x97A5, 0x68EA, 0x97A6, + 0x68EB, 0x97A7, 0x68EC, 0x97A8, 0x68ED, 0x97A9, 0x68EE, 0xC9AD, 0x68EF, 0x97AA, 0x68F0, 0xE9A2, 0x68F1, 0xC0E2, 0x68F2, 0x97AB, + 0x68F3, 0x97AC, 0x68F4, 0x97AD, 0x68F5, 0xBFC3, 0x68F6, 0x97AE, 0x68F7, 0x97AF, 0x68F8, 0x97B0, 0x68F9, 0xE8FE, 0x68FA, 0xB9D7, + 0x68FB, 0x97B1, 0x68FC, 0xE8FB, 0x68FD, 0x97B2, 0x68FE, 0x97B3, 0x68FF, 0x97B4, 0x6900, 0x97B5, 0x6901, 0xE9A4, 0x6902, 0x97B6, + 0x6903, 0x97B7, 0x6904, 0x97B8, 0x6905, 0xD2CE, 0x6906, 0x97B9, 0x6907, 0x97BA, 0x6908, 0x97BB, 0x6909, 0x97BC, 0x690A, 0x97BD, + 0x690B, 0xE9A3, 0x690C, 0x97BE, 0x690D, 0xD6B2, 0x690E, 0xD7B5, 0x690F, 0x97BF, 0x6910, 0xE9A7, 0x6911, 0x97C0, 0x6912, 0xBDB7, + 0x6913, 0x97C1, 0x6914, 0x97C2, 0x6915, 0x97C3, 0x6916, 0x97C4, 0x6917, 0x97C5, 0x6918, 0x97C6, 0x6919, 0x97C7, 0x691A, 0x97C8, + 0x691B, 0x97C9, 0x691C, 0x97CA, 0x691D, 0x97CB, 0x691E, 0x97CC, 0x691F, 0xE8FC, 0x6920, 0xE8FD, 0x6921, 0x97CD, 0x6922, 0x97CE, + 0x6923, 0x97CF, 0x6924, 0xE9A1, 0x6925, 0x97D0, 0x6926, 0x97D1, 0x6927, 0x97D2, 0x6928, 0x97D3, 0x6929, 0x97D4, 0x692A, 0x97D5, + 0x692B, 0x97D6, 0x692C, 0x97D7, 0x692D, 0xCDD6, 0x692E, 0x97D8, 0x692F, 0x97D9, 0x6930, 0xD2AC, 0x6931, 0x97DA, 0x6932, 0x97DB, + 0x6933, 0x97DC, 0x6934, 0xE9B2, 0x6935, 0x97DD, 0x6936, 0x97DE, 0x6937, 0x97DF, 0x6938, 0x97E0, 0x6939, 0xE9A9, 0x693A, 0x97E1, + 0x693B, 0x97E2, 0x693C, 0x97E3, 0x693D, 0xB4AA, 0x693E, 0x97E4, 0x693F, 0xB4BB, 0x6940, 0x97E5, 0x6941, 0x97E6, 0x6942, 0xE9AB, + 0x6943, 0x97E7, 0x6944, 0x97E8, 0x6945, 0x97E9, 0x6946, 0x97EA, 0x6947, 0x97EB, 0x6948, 0x97EC, 0x6949, 0x97ED, 0x694A, 0x97EE, + 0x694B, 0x97EF, 0x694C, 0x97F0, 0x694D, 0x97F1, 0x694E, 0x97F2, 0x694F, 0x97F3, 0x6950, 0x97F4, 0x6951, 0x97F5, 0x6952, 0x97F6, + 0x6953, 0x97F7, 0x6954, 0xD0A8, 0x6955, 0x97F8, 0x6956, 0x97F9, 0x6957, 0xE9A5, 0x6958, 0x97FA, 0x6959, 0x97FB, 0x695A, 0xB3FE, + 0x695B, 0x97FC, 0x695C, 0x97FD, 0x695D, 0xE9AC, 0x695E, 0xC0E3, 0x695F, 0x97FE, 0x6960, 0xE9AA, 0x6961, 0x9840, 0x6962, 0x9841, + 0x6963, 0xE9B9, 0x6964, 0x9842, 0x6965, 0x9843, 0x6966, 0xE9B8, 0x6967, 0x9844, 0x6968, 0x9845, 0x6969, 0x9846, 0x696A, 0x9847, + 0x696B, 0xE9AE, 0x696C, 0x9848, 0x696D, 0x9849, 0x696E, 0xE8FA, 0x696F, 0x984A, 0x6970, 0x984B, 0x6971, 0xE9A8, 0x6972, 0x984C, + 0x6973, 0x984D, 0x6974, 0x984E, 0x6975, 0x984F, 0x6976, 0x9850, 0x6977, 0xBFAC, 0x6978, 0xE9B1, 0x6979, 0xE9BA, 0x697A, 0x9851, + 0x697B, 0x9852, 0x697C, 0xC2A5, 0x697D, 0x9853, 0x697E, 0x9854, 0x697F, 0x9855, 0x6980, 0xE9AF, 0x6981, 0x9856, 0x6982, 0xB8C5, + 0x6983, 0x9857, 0x6984, 0xE9AD, 0x6985, 0x9858, 0x6986, 0xD3DC, 0x6987, 0xE9B4, 0x6988, 0xE9B5, 0x6989, 0xE9B7, 0x698A, 0x9859, + 0x698B, 0x985A, 0x698C, 0x985B, 0x698D, 0xE9C7, 0x698E, 0x985C, 0x698F, 0x985D, 0x6990, 0x985E, 0x6991, 0x985F, 0x6992, 0x9860, + 0x6993, 0x9861, 0x6994, 0xC0C6, 0x6995, 0xE9C5, 0x6996, 0x9862, 0x6997, 0x9863, 0x6998, 0xE9B0, 0x6999, 0x9864, 0x699A, 0x9865, + 0x699B, 0xE9BB, 0x699C, 0xB0F1, 0x699D, 0x9866, 0x699E, 0x9867, 0x699F, 0x9868, 0x69A0, 0x9869, 0x69A1, 0x986A, 0x69A2, 0x986B, + 0x69A3, 0x986C, 0x69A4, 0x986D, 0x69A5, 0x986E, 0x69A6, 0x986F, 0x69A7, 0xE9BC, 0x69A8, 0xD5A5, 0x69A9, 0x9870, 0x69AA, 0x9871, + 0x69AB, 0xE9BE, 0x69AC, 0x9872, 0x69AD, 0xE9BF, 0x69AE, 0x9873, 0x69AF, 0x9874, 0x69B0, 0x9875, 0x69B1, 0xE9C1, 0x69B2, 0x9876, + 0x69B3, 0x9877, 0x69B4, 0xC1F1, 0x69B5, 0x9878, 0x69B6, 0x9879, 0x69B7, 0xC8B6, 0x69B8, 0x987A, 0x69B9, 0x987B, 0x69BA, 0x987C, + 0x69BB, 0xE9BD, 0x69BC, 0x987D, 0x69BD, 0x987E, 0x69BE, 0x9880, 0x69BF, 0x9881, 0x69C0, 0x9882, 0x69C1, 0xE9C2, 0x69C2, 0x9883, + 0x69C3, 0x9884, 0x69C4, 0x9885, 0x69C5, 0x9886, 0x69C6, 0x9887, 0x69C7, 0x9888, 0x69C8, 0x9889, 0x69C9, 0x988A, 0x69CA, 0xE9C3, + 0x69CB, 0x988B, 0x69CC, 0xE9B3, 0x69CD, 0x988C, 0x69CE, 0xE9B6, 0x69CF, 0x988D, 0x69D0, 0xBBB1, 0x69D1, 0x988E, 0x69D2, 0x988F, + 0x69D3, 0x9890, 0x69D4, 0xE9C0, 0x69D5, 0x9891, 0x69D6, 0x9892, 0x69D7, 0x9893, 0x69D8, 0x9894, 0x69D9, 0x9895, 0x69DA, 0x9896, + 0x69DB, 0xBCF7, 0x69DC, 0x9897, 0x69DD, 0x9898, 0x69DE, 0x9899, 0x69DF, 0xE9C4, 0x69E0, 0xE9C6, 0x69E1, 0x989A, 0x69E2, 0x989B, + 0x69E3, 0x989C, 0x69E4, 0x989D, 0x69E5, 0x989E, 0x69E6, 0x989F, 0x69E7, 0x98A0, 0x69E8, 0x98A1, 0x69E9, 0x98A2, 0x69EA, 0x98A3, + 0x69EB, 0x98A4, 0x69EC, 0x98A5, 0x69ED, 0xE9CA, 0x69EE, 0x98A6, 0x69EF, 0x98A7, 0x69F0, 0x98A8, 0x69F1, 0x98A9, 0x69F2, 0xE9CE, + 0x69F3, 0x98AA, 0x69F4, 0x98AB, 0x69F5, 0x98AC, 0x69F6, 0x98AD, 0x69F7, 0x98AE, 0x69F8, 0x98AF, 0x69F9, 0x98B0, 0x69FA, 0x98B1, + 0x69FB, 0x98B2, 0x69FC, 0x98B3, 0x69FD, 0xB2DB, 0x69FE, 0x98B4, 0x69FF, 0xE9C8, 0x6A00, 0x98B5, 0x6A01, 0x98B6, 0x6A02, 0x98B7, + 0x6A03, 0x98B8, 0x6A04, 0x98B9, 0x6A05, 0x98BA, 0x6A06, 0x98BB, 0x6A07, 0x98BC, 0x6A08, 0x98BD, 0x6A09, 0x98BE, 0x6A0A, 0xB7AE, + 0x6A0B, 0x98BF, 0x6A0C, 0x98C0, 0x6A0D, 0x98C1, 0x6A0E, 0x98C2, 0x6A0F, 0x98C3, 0x6A10, 0x98C4, 0x6A11, 0x98C5, 0x6A12, 0x98C6, + 0x6A13, 0x98C7, 0x6A14, 0x98C8, 0x6A15, 0x98C9, 0x6A16, 0x98CA, 0x6A17, 0xE9CB, 0x6A18, 0xE9CC, 0x6A19, 0x98CB, 0x6A1A, 0x98CC, + 0x6A1B, 0x98CD, 0x6A1C, 0x98CE, 0x6A1D, 0x98CF, 0x6A1E, 0x98D0, 0x6A1F, 0xD5C1, 0x6A20, 0x98D1, 0x6A21, 0xC4A3, 0x6A22, 0x98D2, + 0x6A23, 0x98D3, 0x6A24, 0x98D4, 0x6A25, 0x98D5, 0x6A26, 0x98D6, 0x6A27, 0x98D7, 0x6A28, 0xE9D8, 0x6A29, 0x98D8, 0x6A2A, 0xBAE1, + 0x6A2B, 0x98D9, 0x6A2C, 0x98DA, 0x6A2D, 0x98DB, 0x6A2E, 0x98DC, 0x6A2F, 0xE9C9, 0x6A30, 0x98DD, 0x6A31, 0xD3A3, 0x6A32, 0x98DE, + 0x6A33, 0x98DF, 0x6A34, 0x98E0, 0x6A35, 0xE9D4, 0x6A36, 0x98E1, 0x6A37, 0x98E2, 0x6A38, 0x98E3, 0x6A39, 0x98E4, 0x6A3A, 0x98E5, + 0x6A3B, 0x98E6, 0x6A3C, 0x98E7, 0x6A3D, 0xE9D7, 0x6A3E, 0xE9D0, 0x6A3F, 0x98E8, 0x6A40, 0x98E9, 0x6A41, 0x98EA, 0x6A42, 0x98EB, + 0x6A43, 0x98EC, 0x6A44, 0xE9CF, 0x6A45, 0x98ED, 0x6A46, 0x98EE, 0x6A47, 0xC7C1, 0x6A48, 0x98EF, 0x6A49, 0x98F0, 0x6A4A, 0x98F1, + 0x6A4B, 0x98F2, 0x6A4C, 0x98F3, 0x6A4D, 0x98F4, 0x6A4E, 0x98F5, 0x6A4F, 0x98F6, 0x6A50, 0xE9D2, 0x6A51, 0x98F7, 0x6A52, 0x98F8, + 0x6A53, 0x98F9, 0x6A54, 0x98FA, 0x6A55, 0x98FB, 0x6A56, 0x98FC, 0x6A57, 0x98FD, 0x6A58, 0xE9D9, 0x6A59, 0xB3C8, 0x6A5A, 0x98FE, + 0x6A5B, 0xE9D3, 0x6A5C, 0x9940, 0x6A5D, 0x9941, 0x6A5E, 0x9942, 0x6A5F, 0x9943, 0x6A60, 0x9944, 0x6A61, 0xCFF0, 0x6A62, 0x9945, + 0x6A63, 0x9946, 0x6A64, 0x9947, 0x6A65, 0xE9CD, 0x6A66, 0x9948, 0x6A67, 0x9949, 0x6A68, 0x994A, 0x6A69, 0x994B, 0x6A6A, 0x994C, + 0x6A6B, 0x994D, 0x6A6C, 0x994E, 0x6A6D, 0x994F, 0x6A6E, 0x9950, 0x6A6F, 0x9951, 0x6A70, 0x9952, 0x6A71, 0xB3F7, 0x6A72, 0x9953, + 0x6A73, 0x9954, 0x6A74, 0x9955, 0x6A75, 0x9956, 0x6A76, 0x9957, 0x6A77, 0x9958, 0x6A78, 0x9959, 0x6A79, 0xE9D6, 0x6A7A, 0x995A, + 0x6A7B, 0x995B, 0x6A7C, 0xE9DA, 0x6A7D, 0x995C, 0x6A7E, 0x995D, 0x6A7F, 0x995E, 0x6A80, 0xCCB4, 0x6A81, 0x995F, 0x6A82, 0x9960, + 0x6A83, 0x9961, 0x6A84, 0xCFAD, 0x6A85, 0x9962, 0x6A86, 0x9963, 0x6A87, 0x9964, 0x6A88, 0x9965, 0x6A89, 0x9966, 0x6A8A, 0x9967, + 0x6A8B, 0x9968, 0x6A8C, 0x9969, 0x6A8D, 0x996A, 0x6A8E, 0xE9D5, 0x6A8F, 0x996B, 0x6A90, 0xE9DC, 0x6A91, 0xE9DB, 0x6A92, 0x996C, + 0x6A93, 0x996D, 0x6A94, 0x996E, 0x6A95, 0x996F, 0x6A96, 0x9970, 0x6A97, 0xE9DE, 0x6A98, 0x9971, 0x6A99, 0x9972, 0x6A9A, 0x9973, + 0x6A9B, 0x9974, 0x6A9C, 0x9975, 0x6A9D, 0x9976, 0x6A9E, 0x9977, 0x6A9F, 0x9978, 0x6AA0, 0xE9D1, 0x6AA1, 0x9979, 0x6AA2, 0x997A, + 0x6AA3, 0x997B, 0x6AA4, 0x997C, 0x6AA5, 0x997D, 0x6AA6, 0x997E, 0x6AA7, 0x9980, 0x6AA8, 0x9981, 0x6AA9, 0xE9DD, 0x6AAA, 0x9982, + 0x6AAB, 0xE9DF, 0x6AAC, 0xC3CA, 0x6AAD, 0x9983, 0x6AAE, 0x9984, 0x6AAF, 0x9985, 0x6AB0, 0x9986, 0x6AB1, 0x9987, 0x6AB2, 0x9988, + 0x6AB3, 0x9989, 0x6AB4, 0x998A, 0x6AB5, 0x998B, 0x6AB6, 0x998C, 0x6AB7, 0x998D, 0x6AB8, 0x998E, 0x6AB9, 0x998F, 0x6ABA, 0x9990, + 0x6ABB, 0x9991, 0x6ABC, 0x9992, 0x6ABD, 0x9993, 0x6ABE, 0x9994, 0x6ABF, 0x9995, 0x6AC0, 0x9996, 0x6AC1, 0x9997, 0x6AC2, 0x9998, + 0x6AC3, 0x9999, 0x6AC4, 0x999A, 0x6AC5, 0x999B, 0x6AC6, 0x999C, 0x6AC7, 0x999D, 0x6AC8, 0x999E, 0x6AC9, 0x999F, 0x6ACA, 0x99A0, + 0x6ACB, 0x99A1, 0x6ACC, 0x99A2, 0x6ACD, 0x99A3, 0x6ACE, 0x99A4, 0x6ACF, 0x99A5, 0x6AD0, 0x99A6, 0x6AD1, 0x99A7, 0x6AD2, 0x99A8, + 0x6AD3, 0x99A9, 0x6AD4, 0x99AA, 0x6AD5, 0x99AB, 0x6AD6, 0x99AC, 0x6AD7, 0x99AD, 0x6AD8, 0x99AE, 0x6AD9, 0x99AF, 0x6ADA, 0x99B0, + 0x6ADB, 0x99B1, 0x6ADC, 0x99B2, 0x6ADD, 0x99B3, 0x6ADE, 0x99B4, 0x6ADF, 0x99B5, 0x6AE0, 0x99B6, 0x6AE1, 0x99B7, 0x6AE2, 0x99B8, + 0x6AE3, 0x99B9, 0x6AE4, 0x99BA, 0x6AE5, 0x99BB, 0x6AE6, 0x99BC, 0x6AE7, 0x99BD, 0x6AE8, 0x99BE, 0x6AE9, 0x99BF, 0x6AEA, 0x99C0, + 0x6AEB, 0x99C1, 0x6AEC, 0x99C2, 0x6AED, 0x99C3, 0x6AEE, 0x99C4, 0x6AEF, 0x99C5, 0x6AF0, 0x99C6, 0x6AF1, 0x99C7, 0x6AF2, 0x99C8, + 0x6AF3, 0x99C9, 0x6AF4, 0x99CA, 0x6AF5, 0x99CB, 0x6AF6, 0x99CC, 0x6AF7, 0x99CD, 0x6AF8, 0x99CE, 0x6AF9, 0x99CF, 0x6AFA, 0x99D0, + 0x6AFB, 0x99D1, 0x6AFC, 0x99D2, 0x6AFD, 0x99D3, 0x6AFE, 0x99D4, 0x6AFF, 0x99D5, 0x6B00, 0x99D6, 0x6B01, 0x99D7, 0x6B02, 0x99D8, + 0x6B03, 0x99D9, 0x6B04, 0x99DA, 0x6B05, 0x99DB, 0x6B06, 0x99DC, 0x6B07, 0x99DD, 0x6B08, 0x99DE, 0x6B09, 0x99DF, 0x6B0A, 0x99E0, + 0x6B0B, 0x99E1, 0x6B0C, 0x99E2, 0x6B0D, 0x99E3, 0x6B0E, 0x99E4, 0x6B0F, 0x99E5, 0x6B10, 0x99E6, 0x6B11, 0x99E7, 0x6B12, 0x99E8, + 0x6B13, 0x99E9, 0x6B14, 0x99EA, 0x6B15, 0x99EB, 0x6B16, 0x99EC, 0x6B17, 0x99ED, 0x6B18, 0x99EE, 0x6B19, 0x99EF, 0x6B1A, 0x99F0, + 0x6B1B, 0x99F1, 0x6B1C, 0x99F2, 0x6B1D, 0x99F3, 0x6B1E, 0x99F4, 0x6B1F, 0x99F5, 0x6B20, 0xC7B7, 0x6B21, 0xB4CE, 0x6B22, 0xBBB6, + 0x6B23, 0xD0C0, 0x6B24, 0xECA3, 0x6B25, 0x99F6, 0x6B26, 0x99F7, 0x6B27, 0xC5B7, 0x6B28, 0x99F8, 0x6B29, 0x99F9, 0x6B2A, 0x99FA, + 0x6B2B, 0x99FB, 0x6B2C, 0x99FC, 0x6B2D, 0x99FD, 0x6B2E, 0x99FE, 0x6B2F, 0x9A40, 0x6B30, 0x9A41, 0x6B31, 0x9A42, 0x6B32, 0xD3FB, + 0x6B33, 0x9A43, 0x6B34, 0x9A44, 0x6B35, 0x9A45, 0x6B36, 0x9A46, 0x6B37, 0xECA4, 0x6B38, 0x9A47, 0x6B39, 0xECA5, 0x6B3A, 0xC6DB, + 0x6B3B, 0x9A48, 0x6B3C, 0x9A49, 0x6B3D, 0x9A4A, 0x6B3E, 0xBFEE, 0x6B3F, 0x9A4B, 0x6B40, 0x9A4C, 0x6B41, 0x9A4D, 0x6B42, 0x9A4E, + 0x6B43, 0xECA6, 0x6B44, 0x9A4F, 0x6B45, 0x9A50, 0x6B46, 0xECA7, 0x6B47, 0xD0AA, 0x6B48, 0x9A51, 0x6B49, 0xC7B8, 0x6B4A, 0x9A52, + 0x6B4B, 0x9A53, 0x6B4C, 0xB8E8, 0x6B4D, 0x9A54, 0x6B4E, 0x9A55, 0x6B4F, 0x9A56, 0x6B50, 0x9A57, 0x6B51, 0x9A58, 0x6B52, 0x9A59, + 0x6B53, 0x9A5A, 0x6B54, 0x9A5B, 0x6B55, 0x9A5C, 0x6B56, 0x9A5D, 0x6B57, 0x9A5E, 0x6B58, 0x9A5F, 0x6B59, 0xECA8, 0x6B5A, 0x9A60, + 0x6B5B, 0x9A61, 0x6B5C, 0x9A62, 0x6B5D, 0x9A63, 0x6B5E, 0x9A64, 0x6B5F, 0x9A65, 0x6B60, 0x9A66, 0x6B61, 0x9A67, 0x6B62, 0xD6B9, + 0x6B63, 0xD5FD, 0x6B64, 0xB4CB, 0x6B65, 0xB2BD, 0x6B66, 0xCEE4, 0x6B67, 0xC6E7, 0x6B68, 0x9A68, 0x6B69, 0x9A69, 0x6B6A, 0xCDE1, + 0x6B6B, 0x9A6A, 0x6B6C, 0x9A6B, 0x6B6D, 0x9A6C, 0x6B6E, 0x9A6D, 0x6B6F, 0x9A6E, 0x6B70, 0x9A6F, 0x6B71, 0x9A70, 0x6B72, 0x9A71, + 0x6B73, 0x9A72, 0x6B74, 0x9A73, 0x6B75, 0x9A74, 0x6B76, 0x9A75, 0x6B77, 0x9A76, 0x6B78, 0x9A77, 0x6B79, 0xB4F5, 0x6B7A, 0x9A78, + 0x6B7B, 0xCBC0, 0x6B7C, 0xBCDF, 0x6B7D, 0x9A79, 0x6B7E, 0x9A7A, 0x6B7F, 0x9A7B, 0x6B80, 0x9A7C, 0x6B81, 0xE9E2, 0x6B82, 0xE9E3, + 0x6B83, 0xD1EA, 0x6B84, 0xE9E5, 0x6B85, 0x9A7D, 0x6B86, 0xB4F9, 0x6B87, 0xE9E4, 0x6B88, 0x9A7E, 0x6B89, 0xD1B3, 0x6B8A, 0xCAE2, + 0x6B8B, 0xB2D0, 0x6B8C, 0x9A80, 0x6B8D, 0xE9E8, 0x6B8E, 0x9A81, 0x6B8F, 0x9A82, 0x6B90, 0x9A83, 0x6B91, 0x9A84, 0x6B92, 0xE9E6, + 0x6B93, 0xE9E7, 0x6B94, 0x9A85, 0x6B95, 0x9A86, 0x6B96, 0xD6B3, 0x6B97, 0x9A87, 0x6B98, 0x9A88, 0x6B99, 0x9A89, 0x6B9A, 0xE9E9, + 0x6B9B, 0xE9EA, 0x6B9C, 0x9A8A, 0x6B9D, 0x9A8B, 0x6B9E, 0x9A8C, 0x6B9F, 0x9A8D, 0x6BA0, 0x9A8E, 0x6BA1, 0xE9EB, 0x6BA2, 0x9A8F, + 0x6BA3, 0x9A90, 0x6BA4, 0x9A91, 0x6BA5, 0x9A92, 0x6BA6, 0x9A93, 0x6BA7, 0x9A94, 0x6BA8, 0x9A95, 0x6BA9, 0x9A96, 0x6BAA, 0xE9EC, + 0x6BAB, 0x9A97, 0x6BAC, 0x9A98, 0x6BAD, 0x9A99, 0x6BAE, 0x9A9A, 0x6BAF, 0x9A9B, 0x6BB0, 0x9A9C, 0x6BB1, 0x9A9D, 0x6BB2, 0x9A9E, + 0x6BB3, 0xECAF, 0x6BB4, 0xC5B9, 0x6BB5, 0xB6CE, 0x6BB6, 0x9A9F, 0x6BB7, 0xD2F3, 0x6BB8, 0x9AA0, 0x6BB9, 0x9AA1, 0x6BBA, 0x9AA2, + 0x6BBB, 0x9AA3, 0x6BBC, 0x9AA4, 0x6BBD, 0x9AA5, 0x6BBE, 0x9AA6, 0x6BBF, 0xB5EE, 0x6BC0, 0x9AA7, 0x6BC1, 0xBBD9, 0x6BC2, 0xECB1, + 0x6BC3, 0x9AA8, 0x6BC4, 0x9AA9, 0x6BC5, 0xD2E3, 0x6BC6, 0x9AAA, 0x6BC7, 0x9AAB, 0x6BC8, 0x9AAC, 0x6BC9, 0x9AAD, 0x6BCA, 0x9AAE, + 0x6BCB, 0xCEE3, 0x6BCC, 0x9AAF, 0x6BCD, 0xC4B8, 0x6BCE, 0x9AB0, 0x6BCF, 0xC3BF, 0x6BD0, 0x9AB1, 0x6BD1, 0x9AB2, 0x6BD2, 0xB6BE, + 0x6BD3, 0xD8B9, 0x6BD4, 0xB1C8, 0x6BD5, 0xB1CF, 0x6BD6, 0xB1D1, 0x6BD7, 0xC5FE, 0x6BD8, 0x9AB3, 0x6BD9, 0xB1D0, 0x6BDA, 0x9AB4, + 0x6BDB, 0xC3AB, 0x6BDC, 0x9AB5, 0x6BDD, 0x9AB6, 0x6BDE, 0x9AB7, 0x6BDF, 0x9AB8, 0x6BE0, 0x9AB9, 0x6BE1, 0xD5B1, 0x6BE2, 0x9ABA, + 0x6BE3, 0x9ABB, 0x6BE4, 0x9ABC, 0x6BE5, 0x9ABD, 0x6BE6, 0x9ABE, 0x6BE7, 0x9ABF, 0x6BE8, 0x9AC0, 0x6BE9, 0x9AC1, 0x6BEA, 0xEBA4, + 0x6BEB, 0xBAC1, 0x6BEC, 0x9AC2, 0x6BED, 0x9AC3, 0x6BEE, 0x9AC4, 0x6BEF, 0xCCBA, 0x6BF0, 0x9AC5, 0x6BF1, 0x9AC6, 0x6BF2, 0x9AC7, + 0x6BF3, 0xEBA5, 0x6BF4, 0x9AC8, 0x6BF5, 0xEBA7, 0x6BF6, 0x9AC9, 0x6BF7, 0x9ACA, 0x6BF8, 0x9ACB, 0x6BF9, 0xEBA8, 0x6BFA, 0x9ACC, + 0x6BFB, 0x9ACD, 0x6BFC, 0x9ACE, 0x6BFD, 0xEBA6, 0x6BFE, 0x9ACF, 0x6BFF, 0x9AD0, 0x6C00, 0x9AD1, 0x6C01, 0x9AD2, 0x6C02, 0x9AD3, + 0x6C03, 0x9AD4, 0x6C04, 0x9AD5, 0x6C05, 0xEBA9, 0x6C06, 0xEBAB, 0x6C07, 0xEBAA, 0x6C08, 0x9AD6, 0x6C09, 0x9AD7, 0x6C0A, 0x9AD8, + 0x6C0B, 0x9AD9, 0x6C0C, 0x9ADA, 0x6C0D, 0xEBAC, 0x6C0E, 0x9ADB, 0x6C0F, 0xCACF, 0x6C10, 0xD8B5, 0x6C11, 0xC3F1, 0x6C12, 0x9ADC, + 0x6C13, 0xC3A5, 0x6C14, 0xC6F8, 0x6C15, 0xEBAD, 0x6C16, 0xC4CA, 0x6C17, 0x9ADD, 0x6C18, 0xEBAE, 0x6C19, 0xEBAF, 0x6C1A, 0xEBB0, + 0x6C1B, 0xB7D5, 0x6C1C, 0x9ADE, 0x6C1D, 0x9ADF, 0x6C1E, 0x9AE0, 0x6C1F, 0xB7FA, 0x6C20, 0x9AE1, 0x6C21, 0xEBB1, 0x6C22, 0xC7E2, + 0x6C23, 0x9AE2, 0x6C24, 0xEBB3, 0x6C25, 0x9AE3, 0x6C26, 0xBAA4, 0x6C27, 0xD1F5, 0x6C28, 0xB0B1, 0x6C29, 0xEBB2, 0x6C2A, 0xEBB4, + 0x6C2B, 0x9AE4, 0x6C2C, 0x9AE5, 0x6C2D, 0x9AE6, 0x6C2E, 0xB5AA, 0x6C2F, 0xC2C8, 0x6C30, 0xC7E8, 0x6C31, 0x9AE7, 0x6C32, 0xEBB5, + 0x6C33, 0x9AE8, 0x6C34, 0xCBAE, 0x6C35, 0xE3DF, 0x6C36, 0x9AE9, 0x6C37, 0x9AEA, 0x6C38, 0xD3C0, 0x6C39, 0x9AEB, 0x6C3A, 0x9AEC, + 0x6C3B, 0x9AED, 0x6C3C, 0x9AEE, 0x6C3D, 0xD9DB, 0x6C3E, 0x9AEF, 0x6C3F, 0x9AF0, 0x6C40, 0xCDA1, 0x6C41, 0xD6AD, 0x6C42, 0xC7F3, + 0x6C43, 0x9AF1, 0x6C44, 0x9AF2, 0x6C45, 0x9AF3, 0x6C46, 0xD9E0, 0x6C47, 0xBBE3, 0x6C48, 0x9AF4, 0x6C49, 0xBABA, 0x6C4A, 0xE3E2, + 0x6C4B, 0x9AF5, 0x6C4C, 0x9AF6, 0x6C4D, 0x9AF7, 0x6C4E, 0x9AF8, 0x6C4F, 0x9AF9, 0x6C50, 0xCFAB, 0x6C51, 0x9AFA, 0x6C52, 0x9AFB, + 0x6C53, 0x9AFC, 0x6C54, 0xE3E0, 0x6C55, 0xC9C7, 0x6C56, 0x9AFD, 0x6C57, 0xBAB9, 0x6C58, 0x9AFE, 0x6C59, 0x9B40, 0x6C5A, 0x9B41, + 0x6C5B, 0xD1B4, 0x6C5C, 0xE3E1, 0x6C5D, 0xC8EA, 0x6C5E, 0xB9AF, 0x6C5F, 0xBDAD, 0x6C60, 0xB3D8, 0x6C61, 0xCEDB, 0x6C62, 0x9B42, + 0x6C63, 0x9B43, 0x6C64, 0xCCC0, 0x6C65, 0x9B44, 0x6C66, 0x9B45, 0x6C67, 0x9B46, 0x6C68, 0xE3E8, 0x6C69, 0xE3E9, 0x6C6A, 0xCDF4, + 0x6C6B, 0x9B47, 0x6C6C, 0x9B48, 0x6C6D, 0x9B49, 0x6C6E, 0x9B4A, 0x6C6F, 0x9B4B, 0x6C70, 0xCCAD, 0x6C71, 0x9B4C, 0x6C72, 0xBCB3, + 0x6C73, 0x9B4D, 0x6C74, 0xE3EA, 0x6C75, 0x9B4E, 0x6C76, 0xE3EB, 0x6C77, 0x9B4F, 0x6C78, 0x9B50, 0x6C79, 0xD0DA, 0x6C7A, 0x9B51, + 0x6C7B, 0x9B52, 0x6C7C, 0x9B53, 0x6C7D, 0xC6FB, 0x6C7E, 0xB7DA, 0x6C7F, 0x9B54, 0x6C80, 0x9B55, 0x6C81, 0xC7DF, 0x6C82, 0xD2CA, + 0x6C83, 0xCED6, 0x6C84, 0x9B56, 0x6C85, 0xE3E4, 0x6C86, 0xE3EC, 0x6C87, 0x9B57, 0x6C88, 0xC9F2, 0x6C89, 0xB3C1, 0x6C8A, 0x9B58, + 0x6C8B, 0x9B59, 0x6C8C, 0xE3E7, 0x6C8D, 0x9B5A, 0x6C8E, 0x9B5B, 0x6C8F, 0xC6E3, 0x6C90, 0xE3E5, 0x6C91, 0x9B5C, 0x6C92, 0x9B5D, + 0x6C93, 0xEDB3, 0x6C94, 0xE3E6, 0x6C95, 0x9B5E, 0x6C96, 0x9B5F, 0x6C97, 0x9B60, 0x6C98, 0x9B61, 0x6C99, 0xC9B3, 0x6C9A, 0x9B62, + 0x6C9B, 0xC5E6, 0x6C9C, 0x9B63, 0x6C9D, 0x9B64, 0x6C9E, 0x9B65, 0x6C9F, 0xB9B5, 0x6CA0, 0x9B66, 0x6CA1, 0xC3BB, 0x6CA2, 0x9B67, + 0x6CA3, 0xE3E3, 0x6CA4, 0xC5BD, 0x6CA5, 0xC1A4, 0x6CA6, 0xC2D9, 0x6CA7, 0xB2D7, 0x6CA8, 0x9B68, 0x6CA9, 0xE3ED, 0x6CAA, 0xBBA6, + 0x6CAB, 0xC4AD, 0x6CAC, 0x9B69, 0x6CAD, 0xE3F0, 0x6CAE, 0xBEDA, 0x6CAF, 0x9B6A, 0x6CB0, 0x9B6B, 0x6CB1, 0xE3FB, 0x6CB2, 0xE3F5, + 0x6CB3, 0xBAD3, 0x6CB4, 0x9B6C, 0x6CB5, 0x9B6D, 0x6CB6, 0x9B6E, 0x6CB7, 0x9B6F, 0x6CB8, 0xB7D0, 0x6CB9, 0xD3CD, 0x6CBA, 0x9B70, + 0x6CBB, 0xD6CE, 0x6CBC, 0xD5D3, 0x6CBD, 0xB9C1, 0x6CBE, 0xD5B4, 0x6CBF, 0xD1D8, 0x6CC0, 0x9B71, 0x6CC1, 0x9B72, 0x6CC2, 0x9B73, + 0x6CC3, 0x9B74, 0x6CC4, 0xD0B9, 0x6CC5, 0xC7F6, 0x6CC6, 0x9B75, 0x6CC7, 0x9B76, 0x6CC8, 0x9B77, 0x6CC9, 0xC8AA, 0x6CCA, 0xB2B4, + 0x6CCB, 0x9B78, 0x6CCC, 0xC3DA, 0x6CCD, 0x9B79, 0x6CCE, 0x9B7A, 0x6CCF, 0x9B7B, 0x6CD0, 0xE3EE, 0x6CD1, 0x9B7C, 0x6CD2, 0x9B7D, + 0x6CD3, 0xE3FC, 0x6CD4, 0xE3EF, 0x6CD5, 0xB7A8, 0x6CD6, 0xE3F7, 0x6CD7, 0xE3F4, 0x6CD8, 0x9B7E, 0x6CD9, 0x9B80, 0x6CDA, 0x9B81, + 0x6CDB, 0xB7BA, 0x6CDC, 0x9B82, 0x6CDD, 0x9B83, 0x6CDE, 0xC5A2, 0x6CDF, 0x9B84, 0x6CE0, 0xE3F6, 0x6CE1, 0xC5DD, 0x6CE2, 0xB2A8, + 0x6CE3, 0xC6FC, 0x6CE4, 0x9B85, 0x6CE5, 0xC4E0, 0x6CE6, 0x9B86, 0x6CE7, 0x9B87, 0x6CE8, 0xD7A2, 0x6CE9, 0x9B88, 0x6CEA, 0xC0E1, + 0x6CEB, 0xE3F9, 0x6CEC, 0x9B89, 0x6CED, 0x9B8A, 0x6CEE, 0xE3FA, 0x6CEF, 0xE3FD, 0x6CF0, 0xCCA9, 0x6CF1, 0xE3F3, 0x6CF2, 0x9B8B, + 0x6CF3, 0xD3BE, 0x6CF4, 0x9B8C, 0x6CF5, 0xB1C3, 0x6CF6, 0xEDB4, 0x6CF7, 0xE3F1, 0x6CF8, 0xE3F2, 0x6CF9, 0x9B8D, 0x6CFA, 0xE3F8, + 0x6CFB, 0xD0BA, 0x6CFC, 0xC6C3, 0x6CFD, 0xD4F3, 0x6CFE, 0xE3FE, 0x6CFF, 0x9B8E, 0x6D00, 0x9B8F, 0x6D01, 0xBDE0, 0x6D02, 0x9B90, + 0x6D03, 0x9B91, 0x6D04, 0xE4A7, 0x6D05, 0x9B92, 0x6D06, 0x9B93, 0x6D07, 0xE4A6, 0x6D08, 0x9B94, 0x6D09, 0x9B95, 0x6D0A, 0x9B96, + 0x6D0B, 0xD1F3, 0x6D0C, 0xE4A3, 0x6D0D, 0x9B97, 0x6D0E, 0xE4A9, 0x6D0F, 0x9B98, 0x6D10, 0x9B99, 0x6D11, 0x9B9A, 0x6D12, 0xC8F7, + 0x6D13, 0x9B9B, 0x6D14, 0x9B9C, 0x6D15, 0x9B9D, 0x6D16, 0x9B9E, 0x6D17, 0xCFB4, 0x6D18, 0x9B9F, 0x6D19, 0xE4A8, 0x6D1A, 0xE4AE, + 0x6D1B, 0xC2E5, 0x6D1C, 0x9BA0, 0x6D1D, 0x9BA1, 0x6D1E, 0xB6B4, 0x6D1F, 0x9BA2, 0x6D20, 0x9BA3, 0x6D21, 0x9BA4, 0x6D22, 0x9BA5, + 0x6D23, 0x9BA6, 0x6D24, 0x9BA7, 0x6D25, 0xBDF2, 0x6D26, 0x9BA8, 0x6D27, 0xE4A2, 0x6D28, 0x9BA9, 0x6D29, 0x9BAA, 0x6D2A, 0xBAE9, + 0x6D2B, 0xE4AA, 0x6D2C, 0x9BAB, 0x6D2D, 0x9BAC, 0x6D2E, 0xE4AC, 0x6D2F, 0x9BAD, 0x6D30, 0x9BAE, 0x6D31, 0xB6FD, 0x6D32, 0xD6DE, + 0x6D33, 0xE4B2, 0x6D34, 0x9BAF, 0x6D35, 0xE4AD, 0x6D36, 0x9BB0, 0x6D37, 0x9BB1, 0x6D38, 0x9BB2, 0x6D39, 0xE4A1, 0x6D3A, 0x9BB3, + 0x6D3B, 0xBBEE, 0x6D3C, 0xCDDD, 0x6D3D, 0xC7A2, 0x6D3E, 0xC5C9, 0x6D3F, 0x9BB4, 0x6D40, 0x9BB5, 0x6D41, 0xC1F7, 0x6D42, 0x9BB6, + 0x6D43, 0xE4A4, 0x6D44, 0x9BB7, 0x6D45, 0xC7B3, 0x6D46, 0xBDAC, 0x6D47, 0xBDBD, 0x6D48, 0xE4A5, 0x6D49, 0x9BB8, 0x6D4A, 0xD7C7, + 0x6D4B, 0xB2E2, 0x6D4C, 0x9BB9, 0x6D4D, 0xE4AB, 0x6D4E, 0xBCC3, 0x6D4F, 0xE4AF, 0x6D50, 0x9BBA, 0x6D51, 0xBBEB, 0x6D52, 0xE4B0, + 0x6D53, 0xC5A8, 0x6D54, 0xE4B1, 0x6D55, 0x9BBB, 0x6D56, 0x9BBC, 0x6D57, 0x9BBD, 0x6D58, 0x9BBE, 0x6D59, 0xD5E3, 0x6D5A, 0xBFA3, + 0x6D5B, 0x9BBF, 0x6D5C, 0xE4BA, 0x6D5D, 0x9BC0, 0x6D5E, 0xE4B7, 0x6D5F, 0x9BC1, 0x6D60, 0xE4BB, 0x6D61, 0x9BC2, 0x6D62, 0x9BC3, + 0x6D63, 0xE4BD, 0x6D64, 0x9BC4, 0x6D65, 0x9BC5, 0x6D66, 0xC6D6, 0x6D67, 0x9BC6, 0x6D68, 0x9BC7, 0x6D69, 0xBAC6, 0x6D6A, 0xC0CB, + 0x6D6B, 0x9BC8, 0x6D6C, 0x9BC9, 0x6D6D, 0x9BCA, 0x6D6E, 0xB8A1, 0x6D6F, 0xE4B4, 0x6D70, 0x9BCB, 0x6D71, 0x9BCC, 0x6D72, 0x9BCD, + 0x6D73, 0x9BCE, 0x6D74, 0xD4A1, 0x6D75, 0x9BCF, 0x6D76, 0x9BD0, 0x6D77, 0xBAA3, 0x6D78, 0xBDFE, 0x6D79, 0x9BD1, 0x6D7A, 0x9BD2, + 0x6D7B, 0x9BD3, 0x6D7C, 0xE4BC, 0x6D7D, 0x9BD4, 0x6D7E, 0x9BD5, 0x6D7F, 0x9BD6, 0x6D80, 0x9BD7, 0x6D81, 0x9BD8, 0x6D82, 0xCDBF, + 0x6D83, 0x9BD9, 0x6D84, 0x9BDA, 0x6D85, 0xC4F9, 0x6D86, 0x9BDB, 0x6D87, 0x9BDC, 0x6D88, 0xCFFB, 0x6D89, 0xC9E6, 0x6D8A, 0x9BDD, + 0x6D8B, 0x9BDE, 0x6D8C, 0xD3BF, 0x6D8D, 0x9BDF, 0x6D8E, 0xCFD1, 0x6D8F, 0x9BE0, 0x6D90, 0x9BE1, 0x6D91, 0xE4B3, 0x6D92, 0x9BE2, + 0x6D93, 0xE4B8, 0x6D94, 0xE4B9, 0x6D95, 0xCCE9, 0x6D96, 0x9BE3, 0x6D97, 0x9BE4, 0x6D98, 0x9BE5, 0x6D99, 0x9BE6, 0x6D9A, 0x9BE7, + 0x6D9B, 0xCCCE, 0x6D9C, 0x9BE8, 0x6D9D, 0xC0D4, 0x6D9E, 0xE4B5, 0x6D9F, 0xC1B0, 0x6DA0, 0xE4B6, 0x6DA1, 0xCED0, 0x6DA2, 0x9BE9, + 0x6DA3, 0xBBC1, 0x6DA4, 0xB5D3, 0x6DA5, 0x9BEA, 0x6DA6, 0xC8F3, 0x6DA7, 0xBDA7, 0x6DA8, 0xD5C7, 0x6DA9, 0xC9AC, 0x6DAA, 0xB8A2, + 0x6DAB, 0xE4CA, 0x6DAC, 0x9BEB, 0x6DAD, 0x9BEC, 0x6DAE, 0xE4CC, 0x6DAF, 0xD1C4, 0x6DB0, 0x9BED, 0x6DB1, 0x9BEE, 0x6DB2, 0xD2BA, + 0x6DB3, 0x9BEF, 0x6DB4, 0x9BF0, 0x6DB5, 0xBAAD, 0x6DB6, 0x9BF1, 0x6DB7, 0x9BF2, 0x6DB8, 0xBAD4, 0x6DB9, 0x9BF3, 0x6DBA, 0x9BF4, + 0x6DBB, 0x9BF5, 0x6DBC, 0x9BF6, 0x6DBD, 0x9BF7, 0x6DBE, 0x9BF8, 0x6DBF, 0xE4C3, 0x6DC0, 0xB5ED, 0x6DC1, 0x9BF9, 0x6DC2, 0x9BFA, + 0x6DC3, 0x9BFB, 0x6DC4, 0xD7CD, 0x6DC5, 0xE4C0, 0x6DC6, 0xCFFD, 0x6DC7, 0xE4BF, 0x6DC8, 0x9BFC, 0x6DC9, 0x9BFD, 0x6DCA, 0x9BFE, + 0x6DCB, 0xC1DC, 0x6DCC, 0xCCCA, 0x6DCD, 0x9C40, 0x6DCE, 0x9C41, 0x6DCF, 0x9C42, 0x6DD0, 0x9C43, 0x6DD1, 0xCAE7, 0x6DD2, 0x9C44, + 0x6DD3, 0x9C45, 0x6DD4, 0x9C46, 0x6DD5, 0x9C47, 0x6DD6, 0xC4D7, 0x6DD7, 0x9C48, 0x6DD8, 0xCCD4, 0x6DD9, 0xE4C8, 0x6DDA, 0x9C49, + 0x6DDB, 0x9C4A, 0x6DDC, 0x9C4B, 0x6DDD, 0xE4C7, 0x6DDE, 0xE4C1, 0x6DDF, 0x9C4C, 0x6DE0, 0xE4C4, 0x6DE1, 0xB5AD, 0x6DE2, 0x9C4D, + 0x6DE3, 0x9C4E, 0x6DE4, 0xD3D9, 0x6DE5, 0x9C4F, 0x6DE6, 0xE4C6, 0x6DE7, 0x9C50, 0x6DE8, 0x9C51, 0x6DE9, 0x9C52, 0x6DEA, 0x9C53, + 0x6DEB, 0xD2F9, 0x6DEC, 0xB4E3, 0x6DED, 0x9C54, 0x6DEE, 0xBBB4, 0x6DEF, 0x9C55, 0x6DF0, 0x9C56, 0x6DF1, 0xC9EE, 0x6DF2, 0x9C57, + 0x6DF3, 0xB4BE, 0x6DF4, 0x9C58, 0x6DF5, 0x9C59, 0x6DF6, 0x9C5A, 0x6DF7, 0xBBEC, 0x6DF8, 0x9C5B, 0x6DF9, 0xD1CD, 0x6DFA, 0x9C5C, + 0x6DFB, 0xCCED, 0x6DFC, 0xEDB5, 0x6DFD, 0x9C5D, 0x6DFE, 0x9C5E, 0x6DFF, 0x9C5F, 0x6E00, 0x9C60, 0x6E01, 0x9C61, 0x6E02, 0x9C62, + 0x6E03, 0x9C63, 0x6E04, 0x9C64, 0x6E05, 0xC7E5, 0x6E06, 0x9C65, 0x6E07, 0x9C66, 0x6E08, 0x9C67, 0x6E09, 0x9C68, 0x6E0A, 0xD4A8, + 0x6E0B, 0x9C69, 0x6E0C, 0xE4CB, 0x6E0D, 0xD7D5, 0x6E0E, 0xE4C2, 0x6E0F, 0x9C6A, 0x6E10, 0xBDA5, 0x6E11, 0xE4C5, 0x6E12, 0x9C6B, + 0x6E13, 0x9C6C, 0x6E14, 0xD3E6, 0x6E15, 0x9C6D, 0x6E16, 0xE4C9, 0x6E17, 0xC9F8, 0x6E18, 0x9C6E, 0x6E19, 0x9C6F, 0x6E1A, 0xE4BE, + 0x6E1B, 0x9C70, 0x6E1C, 0x9C71, 0x6E1D, 0xD3E5, 0x6E1E, 0x9C72, 0x6E1F, 0x9C73, 0x6E20, 0xC7FE, 0x6E21, 0xB6C9, 0x6E22, 0x9C74, + 0x6E23, 0xD4FC, 0x6E24, 0xB2B3, 0x6E25, 0xE4D7, 0x6E26, 0x9C75, 0x6E27, 0x9C76, 0x6E28, 0x9C77, 0x6E29, 0xCEC2, 0x6E2A, 0x9C78, + 0x6E2B, 0xE4CD, 0x6E2C, 0x9C79, 0x6E2D, 0xCEBC, 0x6E2E, 0x9C7A, 0x6E2F, 0xB8DB, 0x6E30, 0x9C7B, 0x6E31, 0x9C7C, 0x6E32, 0xE4D6, + 0x6E33, 0x9C7D, 0x6E34, 0xBFCA, 0x6E35, 0x9C7E, 0x6E36, 0x9C80, 0x6E37, 0x9C81, 0x6E38, 0xD3CE, 0x6E39, 0x9C82, 0x6E3A, 0xC3EC, + 0x6E3B, 0x9C83, 0x6E3C, 0x9C84, 0x6E3D, 0x9C85, 0x6E3E, 0x9C86, 0x6E3F, 0x9C87, 0x6E40, 0x9C88, 0x6E41, 0x9C89, 0x6E42, 0x9C8A, + 0x6E43, 0xC5C8, 0x6E44, 0xE4D8, 0x6E45, 0x9C8B, 0x6E46, 0x9C8C, 0x6E47, 0x9C8D, 0x6E48, 0x9C8E, 0x6E49, 0x9C8F, 0x6E4A, 0x9C90, + 0x6E4B, 0x9C91, 0x6E4C, 0x9C92, 0x6E4D, 0xCDC4, 0x6E4E, 0xE4CF, 0x6E4F, 0x9C93, 0x6E50, 0x9C94, 0x6E51, 0x9C95, 0x6E52, 0x9C96, + 0x6E53, 0xE4D4, 0x6E54, 0xE4D5, 0x6E55, 0x9C97, 0x6E56, 0xBAFE, 0x6E57, 0x9C98, 0x6E58, 0xCFE6, 0x6E59, 0x9C99, 0x6E5A, 0x9C9A, + 0x6E5B, 0xD5BF, 0x6E5C, 0x9C9B, 0x6E5D, 0x9C9C, 0x6E5E, 0x9C9D, 0x6E5F, 0xE4D2, 0x6E60, 0x9C9E, 0x6E61, 0x9C9F, 0x6E62, 0x9CA0, + 0x6E63, 0x9CA1, 0x6E64, 0x9CA2, 0x6E65, 0x9CA3, 0x6E66, 0x9CA4, 0x6E67, 0x9CA5, 0x6E68, 0x9CA6, 0x6E69, 0x9CA7, 0x6E6A, 0x9CA8, + 0x6E6B, 0xE4D0, 0x6E6C, 0x9CA9, 0x6E6D, 0x9CAA, 0x6E6E, 0xE4CE, 0x6E6F, 0x9CAB, 0x6E70, 0x9CAC, 0x6E71, 0x9CAD, 0x6E72, 0x9CAE, + 0x6E73, 0x9CAF, 0x6E74, 0x9CB0, 0x6E75, 0x9CB1, 0x6E76, 0x9CB2, 0x6E77, 0x9CB3, 0x6E78, 0x9CB4, 0x6E79, 0x9CB5, 0x6E7A, 0x9CB6, + 0x6E7B, 0x9CB7, 0x6E7C, 0x9CB8, 0x6E7D, 0x9CB9, 0x6E7E, 0xCDE5, 0x6E7F, 0xCAAA, 0x6E80, 0x9CBA, 0x6E81, 0x9CBB, 0x6E82, 0x9CBC, + 0x6E83, 0xC0A3, 0x6E84, 0x9CBD, 0x6E85, 0xBDA6, 0x6E86, 0xE4D3, 0x6E87, 0x9CBE, 0x6E88, 0x9CBF, 0x6E89, 0xB8C8, 0x6E8A, 0x9CC0, + 0x6E8B, 0x9CC1, 0x6E8C, 0x9CC2, 0x6E8D, 0x9CC3, 0x6E8E, 0x9CC4, 0x6E8F, 0xE4E7, 0x6E90, 0xD4B4, 0x6E91, 0x9CC5, 0x6E92, 0x9CC6, + 0x6E93, 0x9CC7, 0x6E94, 0x9CC8, 0x6E95, 0x9CC9, 0x6E96, 0x9CCA, 0x6E97, 0x9CCB, 0x6E98, 0xE4DB, 0x6E99, 0x9CCC, 0x6E9A, 0x9CCD, + 0x6E9B, 0x9CCE, 0x6E9C, 0xC1EF, 0x6E9D, 0x9CCF, 0x6E9E, 0x9CD0, 0x6E9F, 0xE4E9, 0x6EA0, 0x9CD1, 0x6EA1, 0x9CD2, 0x6EA2, 0xD2E7, + 0x6EA3, 0x9CD3, 0x6EA4, 0x9CD4, 0x6EA5, 0xE4DF, 0x6EA6, 0x9CD5, 0x6EA7, 0xE4E0, 0x6EA8, 0x9CD6, 0x6EA9, 0x9CD7, 0x6EAA, 0xCFAA, + 0x6EAB, 0x9CD8, 0x6EAC, 0x9CD9, 0x6EAD, 0x9CDA, 0x6EAE, 0x9CDB, 0x6EAF, 0xCBDD, 0x6EB0, 0x9CDC, 0x6EB1, 0xE4DA, 0x6EB2, 0xE4D1, + 0x6EB3, 0x9CDD, 0x6EB4, 0xE4E5, 0x6EB5, 0x9CDE, 0x6EB6, 0xC8DC, 0x6EB7, 0xE4E3, 0x6EB8, 0x9CDF, 0x6EB9, 0x9CE0, 0x6EBA, 0xC4E7, + 0x6EBB, 0xE4E2, 0x6EBC, 0x9CE1, 0x6EBD, 0xE4E1, 0x6EBE, 0x9CE2, 0x6EBF, 0x9CE3, 0x6EC0, 0x9CE4, 0x6EC1, 0xB3FC, 0x6EC2, 0xE4E8, + 0x6EC3, 0x9CE5, 0x6EC4, 0x9CE6, 0x6EC5, 0x9CE7, 0x6EC6, 0x9CE8, 0x6EC7, 0xB5E1, 0x6EC8, 0x9CE9, 0x6EC9, 0x9CEA, 0x6ECA, 0x9CEB, + 0x6ECB, 0xD7CC, 0x6ECC, 0x9CEC, 0x6ECD, 0x9CED, 0x6ECE, 0x9CEE, 0x6ECF, 0xE4E6, 0x6ED0, 0x9CEF, 0x6ED1, 0xBBAC, 0x6ED2, 0x9CF0, + 0x6ED3, 0xD7D2, 0x6ED4, 0xCCCF, 0x6ED5, 0xEBF8, 0x6ED6, 0x9CF1, 0x6ED7, 0xE4E4, 0x6ED8, 0x9CF2, 0x6ED9, 0x9CF3, 0x6EDA, 0xB9F6, + 0x6EDB, 0x9CF4, 0x6EDC, 0x9CF5, 0x6EDD, 0x9CF6, 0x6EDE, 0xD6CD, 0x6EDF, 0xE4D9, 0x6EE0, 0xE4DC, 0x6EE1, 0xC2FA, 0x6EE2, 0xE4DE, + 0x6EE3, 0x9CF7, 0x6EE4, 0xC2CB, 0x6EE5, 0xC0C4, 0x6EE6, 0xC2D0, 0x6EE7, 0x9CF8, 0x6EE8, 0xB1F5, 0x6EE9, 0xCCB2, 0x6EEA, 0x9CF9, + 0x6EEB, 0x9CFA, 0x6EEC, 0x9CFB, 0x6EED, 0x9CFC, 0x6EEE, 0x9CFD, 0x6EEF, 0x9CFE, 0x6EF0, 0x9D40, 0x6EF1, 0x9D41, 0x6EF2, 0x9D42, + 0x6EF3, 0x9D43, 0x6EF4, 0xB5CE, 0x6EF5, 0x9D44, 0x6EF6, 0x9D45, 0x6EF7, 0x9D46, 0x6EF8, 0x9D47, 0x6EF9, 0xE4EF, 0x6EFA, 0x9D48, + 0x6EFB, 0x9D49, 0x6EFC, 0x9D4A, 0x6EFD, 0x9D4B, 0x6EFE, 0x9D4C, 0x6EFF, 0x9D4D, 0x6F00, 0x9D4E, 0x6F01, 0x9D4F, 0x6F02, 0xC6AF, + 0x6F03, 0x9D50, 0x6F04, 0x9D51, 0x6F05, 0x9D52, 0x6F06, 0xC6E1, 0x6F07, 0x9D53, 0x6F08, 0x9D54, 0x6F09, 0xE4F5, 0x6F0A, 0x9D55, + 0x6F0B, 0x9D56, 0x6F0C, 0x9D57, 0x6F0D, 0x9D58, 0x6F0E, 0x9D59, 0x6F0F, 0xC2A9, 0x6F10, 0x9D5A, 0x6F11, 0x9D5B, 0x6F12, 0x9D5C, + 0x6F13, 0xC0EC, 0x6F14, 0xD1DD, 0x6F15, 0xE4EE, 0x6F16, 0x9D5D, 0x6F17, 0x9D5E, 0x6F18, 0x9D5F, 0x6F19, 0x9D60, 0x6F1A, 0x9D61, + 0x6F1B, 0x9D62, 0x6F1C, 0x9D63, 0x6F1D, 0x9D64, 0x6F1E, 0x9D65, 0x6F1F, 0x9D66, 0x6F20, 0xC4AE, 0x6F21, 0x9D67, 0x6F22, 0x9D68, + 0x6F23, 0x9D69, 0x6F24, 0xE4ED, 0x6F25, 0x9D6A, 0x6F26, 0x9D6B, 0x6F27, 0x9D6C, 0x6F28, 0x9D6D, 0x6F29, 0xE4F6, 0x6F2A, 0xE4F4, + 0x6F2B, 0xC2FE, 0x6F2C, 0x9D6E, 0x6F2D, 0xE4DD, 0x6F2E, 0x9D6F, 0x6F2F, 0xE4F0, 0x6F30, 0x9D70, 0x6F31, 0xCAFE, 0x6F32, 0x9D71, + 0x6F33, 0xD5C4, 0x6F34, 0x9D72, 0x6F35, 0x9D73, 0x6F36, 0xE4F1, 0x6F37, 0x9D74, 0x6F38, 0x9D75, 0x6F39, 0x9D76, 0x6F3A, 0x9D77, + 0x6F3B, 0x9D78, 0x6F3C, 0x9D79, 0x6F3D, 0x9D7A, 0x6F3E, 0xD1FA, 0x6F3F, 0x9D7B, 0x6F40, 0x9D7C, 0x6F41, 0x9D7D, 0x6F42, 0x9D7E, + 0x6F43, 0x9D80, 0x6F44, 0x9D81, 0x6F45, 0x9D82, 0x6F46, 0xE4EB, 0x6F47, 0xE4EC, 0x6F48, 0x9D83, 0x6F49, 0x9D84, 0x6F4A, 0x9D85, + 0x6F4B, 0xE4F2, 0x6F4C, 0x9D86, 0x6F4D, 0xCEAB, 0x6F4E, 0x9D87, 0x6F4F, 0x9D88, 0x6F50, 0x9D89, 0x6F51, 0x9D8A, 0x6F52, 0x9D8B, + 0x6F53, 0x9D8C, 0x6F54, 0x9D8D, 0x6F55, 0x9D8E, 0x6F56, 0x9D8F, 0x6F57, 0x9D90, 0x6F58, 0xC5CB, 0x6F59, 0x9D91, 0x6F5A, 0x9D92, + 0x6F5B, 0x9D93, 0x6F5C, 0xC7B1, 0x6F5D, 0x9D94, 0x6F5E, 0xC2BA, 0x6F5F, 0x9D95, 0x6F60, 0x9D96, 0x6F61, 0x9D97, 0x6F62, 0xE4EA, + 0x6F63, 0x9D98, 0x6F64, 0x9D99, 0x6F65, 0x9D9A, 0x6F66, 0xC1CA, 0x6F67, 0x9D9B, 0x6F68, 0x9D9C, 0x6F69, 0x9D9D, 0x6F6A, 0x9D9E, + 0x6F6B, 0x9D9F, 0x6F6C, 0x9DA0, 0x6F6D, 0xCCB6, 0x6F6E, 0xB3B1, 0x6F6F, 0x9DA1, 0x6F70, 0x9DA2, 0x6F71, 0x9DA3, 0x6F72, 0xE4FB, + 0x6F73, 0x9DA4, 0x6F74, 0xE4F3, 0x6F75, 0x9DA5, 0x6F76, 0x9DA6, 0x6F77, 0x9DA7, 0x6F78, 0xE4FA, 0x6F79, 0x9DA8, 0x6F7A, 0xE4FD, + 0x6F7B, 0x9DA9, 0x6F7C, 0xE4FC, 0x6F7D, 0x9DAA, 0x6F7E, 0x9DAB, 0x6F7F, 0x9DAC, 0x6F80, 0x9DAD, 0x6F81, 0x9DAE, 0x6F82, 0x9DAF, + 0x6F83, 0x9DB0, 0x6F84, 0xB3CE, 0x6F85, 0x9DB1, 0x6F86, 0x9DB2, 0x6F87, 0x9DB3, 0x6F88, 0xB3BA, 0x6F89, 0xE4F7, 0x6F8A, 0x9DB4, + 0x6F8B, 0x9DB5, 0x6F8C, 0xE4F9, 0x6F8D, 0xE4F8, 0x6F8E, 0xC5EC, 0x6F8F, 0x9DB6, 0x6F90, 0x9DB7, 0x6F91, 0x9DB8, 0x6F92, 0x9DB9, + 0x6F93, 0x9DBA, 0x6F94, 0x9DBB, 0x6F95, 0x9DBC, 0x6F96, 0x9DBD, 0x6F97, 0x9DBE, 0x6F98, 0x9DBF, 0x6F99, 0x9DC0, 0x6F9A, 0x9DC1, + 0x6F9B, 0x9DC2, 0x6F9C, 0xC0BD, 0x6F9D, 0x9DC3, 0x6F9E, 0x9DC4, 0x6F9F, 0x9DC5, 0x6FA0, 0x9DC6, 0x6FA1, 0xD4E8, 0x6FA2, 0x9DC7, + 0x6FA3, 0x9DC8, 0x6FA4, 0x9DC9, 0x6FA5, 0x9DCA, 0x6FA6, 0x9DCB, 0x6FA7, 0xE5A2, 0x6FA8, 0x9DCC, 0x6FA9, 0x9DCD, 0x6FAA, 0x9DCE, + 0x6FAB, 0x9DCF, 0x6FAC, 0x9DD0, 0x6FAD, 0x9DD1, 0x6FAE, 0x9DD2, 0x6FAF, 0x9DD3, 0x6FB0, 0x9DD4, 0x6FB1, 0x9DD5, 0x6FB2, 0x9DD6, + 0x6FB3, 0xB0C4, 0x6FB4, 0x9DD7, 0x6FB5, 0x9DD8, 0x6FB6, 0xE5A4, 0x6FB7, 0x9DD9, 0x6FB8, 0x9DDA, 0x6FB9, 0xE5A3, 0x6FBA, 0x9DDB, + 0x6FBB, 0x9DDC, 0x6FBC, 0x9DDD, 0x6FBD, 0x9DDE, 0x6FBE, 0x9DDF, 0x6FBF, 0x9DE0, 0x6FC0, 0xBCA4, 0x6FC1, 0x9DE1, 0x6FC2, 0xE5A5, + 0x6FC3, 0x9DE2, 0x6FC4, 0x9DE3, 0x6FC5, 0x9DE4, 0x6FC6, 0x9DE5, 0x6FC7, 0x9DE6, 0x6FC8, 0x9DE7, 0x6FC9, 0xE5A1, 0x6FCA, 0x9DE8, + 0x6FCB, 0x9DE9, 0x6FCC, 0x9DEA, 0x6FCD, 0x9DEB, 0x6FCE, 0x9DEC, 0x6FCF, 0x9DED, 0x6FD0, 0x9DEE, 0x6FD1, 0xE4FE, 0x6FD2, 0xB1F4, + 0x6FD3, 0x9DEF, 0x6FD4, 0x9DF0, 0x6FD5, 0x9DF1, 0x6FD6, 0x9DF2, 0x6FD7, 0x9DF3, 0x6FD8, 0x9DF4, 0x6FD9, 0x9DF5, 0x6FDA, 0x9DF6, + 0x6FDB, 0x9DF7, 0x6FDC, 0x9DF8, 0x6FDD, 0x9DF9, 0x6FDE, 0xE5A8, 0x6FDF, 0x9DFA, 0x6FE0, 0xE5A9, 0x6FE1, 0xE5A6, 0x6FE2, 0x9DFB, + 0x6FE3, 0x9DFC, 0x6FE4, 0x9DFD, 0x6FE5, 0x9DFE, 0x6FE6, 0x9E40, 0x6FE7, 0x9E41, 0x6FE8, 0x9E42, 0x6FE9, 0x9E43, 0x6FEA, 0x9E44, + 0x6FEB, 0x9E45, 0x6FEC, 0x9E46, 0x6FED, 0x9E47, 0x6FEE, 0xE5A7, 0x6FEF, 0xE5AA, 0x6FF0, 0x9E48, 0x6FF1, 0x9E49, 0x6FF2, 0x9E4A, + 0x6FF3, 0x9E4B, 0x6FF4, 0x9E4C, 0x6FF5, 0x9E4D, 0x6FF6, 0x9E4E, 0x6FF7, 0x9E4F, 0x6FF8, 0x9E50, 0x6FF9, 0x9E51, 0x6FFA, 0x9E52, + 0x6FFB, 0x9E53, 0x6FFC, 0x9E54, 0x6FFD, 0x9E55, 0x6FFE, 0x9E56, 0x6FFF, 0x9E57, 0x7000, 0x9E58, 0x7001, 0x9E59, 0x7002, 0x9E5A, + 0x7003, 0x9E5B, 0x7004, 0x9E5C, 0x7005, 0x9E5D, 0x7006, 0x9E5E, 0x7007, 0x9E5F, 0x7008, 0x9E60, 0x7009, 0x9E61, 0x700A, 0x9E62, + 0x700B, 0x9E63, 0x700C, 0x9E64, 0x700D, 0x9E65, 0x700E, 0x9E66, 0x700F, 0x9E67, 0x7010, 0x9E68, 0x7011, 0xC6D9, 0x7012, 0x9E69, + 0x7013, 0x9E6A, 0x7014, 0x9E6B, 0x7015, 0x9E6C, 0x7016, 0x9E6D, 0x7017, 0x9E6E, 0x7018, 0x9E6F, 0x7019, 0x9E70, 0x701A, 0xE5AB, + 0x701B, 0xE5AD, 0x701C, 0x9E71, 0x701D, 0x9E72, 0x701E, 0x9E73, 0x701F, 0x9E74, 0x7020, 0x9E75, 0x7021, 0x9E76, 0x7022, 0x9E77, + 0x7023, 0xE5AC, 0x7024, 0x9E78, 0x7025, 0x9E79, 0x7026, 0x9E7A, 0x7027, 0x9E7B, 0x7028, 0x9E7C, 0x7029, 0x9E7D, 0x702A, 0x9E7E, + 0x702B, 0x9E80, 0x702C, 0x9E81, 0x702D, 0x9E82, 0x702E, 0x9E83, 0x702F, 0x9E84, 0x7030, 0x9E85, 0x7031, 0x9E86, 0x7032, 0x9E87, + 0x7033, 0x9E88, 0x7034, 0x9E89, 0x7035, 0xE5AF, 0x7036, 0x9E8A, 0x7037, 0x9E8B, 0x7038, 0x9E8C, 0x7039, 0xE5AE, 0x703A, 0x9E8D, + 0x703B, 0x9E8E, 0x703C, 0x9E8F, 0x703D, 0x9E90, 0x703E, 0x9E91, 0x703F, 0x9E92, 0x7040, 0x9E93, 0x7041, 0x9E94, 0x7042, 0x9E95, + 0x7043, 0x9E96, 0x7044, 0x9E97, 0x7045, 0x9E98, 0x7046, 0x9E99, 0x7047, 0x9E9A, 0x7048, 0x9E9B, 0x7049, 0x9E9C, 0x704A, 0x9E9D, + 0x704B, 0x9E9E, 0x704C, 0xB9E0, 0x704D, 0x9E9F, 0x704E, 0x9EA0, 0x704F, 0xE5B0, 0x7050, 0x9EA1, 0x7051, 0x9EA2, 0x7052, 0x9EA3, + 0x7053, 0x9EA4, 0x7054, 0x9EA5, 0x7055, 0x9EA6, 0x7056, 0x9EA7, 0x7057, 0x9EA8, 0x7058, 0x9EA9, 0x7059, 0x9EAA, 0x705A, 0x9EAB, + 0x705B, 0x9EAC, 0x705C, 0x9EAD, 0x705D, 0x9EAE, 0x705E, 0xE5B1, 0x705F, 0x9EAF, 0x7060, 0x9EB0, 0x7061, 0x9EB1, 0x7062, 0x9EB2, + 0x7063, 0x9EB3, 0x7064, 0x9EB4, 0x7065, 0x9EB5, 0x7066, 0x9EB6, 0x7067, 0x9EB7, 0x7068, 0x9EB8, 0x7069, 0x9EB9, 0x706A, 0x9EBA, + 0x706B, 0xBBF0, 0x706C, 0xECE1, 0x706D, 0xC3F0, 0x706E, 0x9EBB, 0x706F, 0xB5C6, 0x7070, 0xBBD2, 0x7071, 0x9EBC, 0x7072, 0x9EBD, + 0x7073, 0x9EBE, 0x7074, 0x9EBF, 0x7075, 0xC1E9, 0x7076, 0xD4EE, 0x7077, 0x9EC0, 0x7078, 0xBEC4, 0x7079, 0x9EC1, 0x707A, 0x9EC2, + 0x707B, 0x9EC3, 0x707C, 0xD7C6, 0x707D, 0x9EC4, 0x707E, 0xD4D6, 0x707F, 0xB2D3, 0x7080, 0xECBE, 0x7081, 0x9EC5, 0x7082, 0x9EC6, + 0x7083, 0x9EC7, 0x7084, 0x9EC8, 0x7085, 0xEAC1, 0x7086, 0x9EC9, 0x7087, 0x9ECA, 0x7088, 0x9ECB, 0x7089, 0xC2AF, 0x708A, 0xB4B6, + 0x708B, 0x9ECC, 0x708C, 0x9ECD, 0x708D, 0x9ECE, 0x708E, 0xD1D7, 0x708F, 0x9ECF, 0x7090, 0x9ED0, 0x7091, 0x9ED1, 0x7092, 0xB3B4, + 0x7093, 0x9ED2, 0x7094, 0xC8B2, 0x7095, 0xBFBB, 0x7096, 0xECC0, 0x7097, 0x9ED3, 0x7098, 0x9ED4, 0x7099, 0xD6CB, 0x709A, 0x9ED5, + 0x709B, 0x9ED6, 0x709C, 0xECBF, 0x709D, 0xECC1, 0x709E, 0x9ED7, 0x709F, 0x9ED8, 0x70A0, 0x9ED9, 0x70A1, 0x9EDA, 0x70A2, 0x9EDB, + 0x70A3, 0x9EDC, 0x70A4, 0x9EDD, 0x70A5, 0x9EDE, 0x70A6, 0x9EDF, 0x70A7, 0x9EE0, 0x70A8, 0x9EE1, 0x70A9, 0x9EE2, 0x70AA, 0x9EE3, + 0x70AB, 0xECC5, 0x70AC, 0xBEE6, 0x70AD, 0xCCBF, 0x70AE, 0xC5DA, 0x70AF, 0xBEBC, 0x70B0, 0x9EE4, 0x70B1, 0xECC6, 0x70B2, 0x9EE5, + 0x70B3, 0xB1FE, 0x70B4, 0x9EE6, 0x70B5, 0x9EE7, 0x70B6, 0x9EE8, 0x70B7, 0xECC4, 0x70B8, 0xD5A8, 0x70B9, 0xB5E3, 0x70BA, 0x9EE9, + 0x70BB, 0xECC2, 0x70BC, 0xC1B6, 0x70BD, 0xB3E3, 0x70BE, 0x9EEA, 0x70BF, 0x9EEB, 0x70C0, 0xECC3, 0x70C1, 0xCBB8, 0x70C2, 0xC0C3, + 0x70C3, 0xCCFE, 0x70C4, 0x9EEC, 0x70C5, 0x9EED, 0x70C6, 0x9EEE, 0x70C7, 0x9EEF, 0x70C8, 0xC1D2, 0x70C9, 0x9EF0, 0x70CA, 0xECC8, + 0x70CB, 0x9EF1, 0x70CC, 0x9EF2, 0x70CD, 0x9EF3, 0x70CE, 0x9EF4, 0x70CF, 0x9EF5, 0x70D0, 0x9EF6, 0x70D1, 0x9EF7, 0x70D2, 0x9EF8, + 0x70D3, 0x9EF9, 0x70D4, 0x9EFA, 0x70D5, 0x9EFB, 0x70D6, 0x9EFC, 0x70D7, 0x9EFD, 0x70D8, 0xBAE6, 0x70D9, 0xC0D3, 0x70DA, 0x9EFE, + 0x70DB, 0xD6F2, 0x70DC, 0x9F40, 0x70DD, 0x9F41, 0x70DE, 0x9F42, 0x70DF, 0xD1CC, 0x70E0, 0x9F43, 0x70E1, 0x9F44, 0x70E2, 0x9F45, + 0x70E3, 0x9F46, 0x70E4, 0xBFBE, 0x70E5, 0x9F47, 0x70E6, 0xB7B3, 0x70E7, 0xC9D5, 0x70E8, 0xECC7, 0x70E9, 0xBBE2, 0x70EA, 0x9F48, + 0x70EB, 0xCCCC, 0x70EC, 0xBDFD, 0x70ED, 0xC8C8, 0x70EE, 0x9F49, 0x70EF, 0xCFA9, 0x70F0, 0x9F4A, 0x70F1, 0x9F4B, 0x70F2, 0x9F4C, + 0x70F3, 0x9F4D, 0x70F4, 0x9F4E, 0x70F5, 0x9F4F, 0x70F6, 0x9F50, 0x70F7, 0xCDE9, 0x70F8, 0x9F51, 0x70F9, 0xC5EB, 0x70FA, 0x9F52, + 0x70FB, 0x9F53, 0x70FC, 0x9F54, 0x70FD, 0xB7E9, 0x70FE, 0x9F55, 0x70FF, 0x9F56, 0x7100, 0x9F57, 0x7101, 0x9F58, 0x7102, 0x9F59, + 0x7103, 0x9F5A, 0x7104, 0x9F5B, 0x7105, 0x9F5C, 0x7106, 0x9F5D, 0x7107, 0x9F5E, 0x7108, 0x9F5F, 0x7109, 0xD1C9, 0x710A, 0xBAB8, + 0x710B, 0x9F60, 0x710C, 0x9F61, 0x710D, 0x9F62, 0x710E, 0x9F63, 0x710F, 0x9F64, 0x7110, 0xECC9, 0x7111, 0x9F65, 0x7112, 0x9F66, + 0x7113, 0xECCA, 0x7114, 0x9F67, 0x7115, 0xBBC0, 0x7116, 0xECCB, 0x7117, 0x9F68, 0x7118, 0xECE2, 0x7119, 0xB1BA, 0x711A, 0xB7D9, + 0x711B, 0x9F69, 0x711C, 0x9F6A, 0x711D, 0x9F6B, 0x711E, 0x9F6C, 0x711F, 0x9F6D, 0x7120, 0x9F6E, 0x7121, 0x9F6F, 0x7122, 0x9F70, + 0x7123, 0x9F71, 0x7124, 0x9F72, 0x7125, 0x9F73, 0x7126, 0xBDB9, 0x7127, 0x9F74, 0x7128, 0x9F75, 0x7129, 0x9F76, 0x712A, 0x9F77, + 0x712B, 0x9F78, 0x712C, 0x9F79, 0x712D, 0x9F7A, 0x712E, 0x9F7B, 0x712F, 0xECCC, 0x7130, 0xD1E6, 0x7131, 0xECCD, 0x7132, 0x9F7C, + 0x7133, 0x9F7D, 0x7134, 0x9F7E, 0x7135, 0x9F80, 0x7136, 0xC8BB, 0x7137, 0x9F81, 0x7138, 0x9F82, 0x7139, 0x9F83, 0x713A, 0x9F84, + 0x713B, 0x9F85, 0x713C, 0x9F86, 0x713D, 0x9F87, 0x713E, 0x9F88, 0x713F, 0x9F89, 0x7140, 0x9F8A, 0x7141, 0x9F8B, 0x7142, 0x9F8C, + 0x7143, 0x9F8D, 0x7144, 0x9F8E, 0x7145, 0xECD1, 0x7146, 0x9F8F, 0x7147, 0x9F90, 0x7148, 0x9F91, 0x7149, 0x9F92, 0x714A, 0xECD3, + 0x714B, 0x9F93, 0x714C, 0xBBCD, 0x714D, 0x9F94, 0x714E, 0xBCE5, 0x714F, 0x9F95, 0x7150, 0x9F96, 0x7151, 0x9F97, 0x7152, 0x9F98, + 0x7153, 0x9F99, 0x7154, 0x9F9A, 0x7155, 0x9F9B, 0x7156, 0x9F9C, 0x7157, 0x9F9D, 0x7158, 0x9F9E, 0x7159, 0x9F9F, 0x715A, 0x9FA0, + 0x715B, 0x9FA1, 0x715C, 0xECCF, 0x715D, 0x9FA2, 0x715E, 0xC9B7, 0x715F, 0x9FA3, 0x7160, 0x9FA4, 0x7161, 0x9FA5, 0x7162, 0x9FA6, + 0x7163, 0x9FA7, 0x7164, 0xC3BA, 0x7165, 0x9FA8, 0x7166, 0xECE3, 0x7167, 0xD5D5, 0x7168, 0xECD0, 0x7169, 0x9FA9, 0x716A, 0x9FAA, + 0x716B, 0x9FAB, 0x716C, 0x9FAC, 0x716D, 0x9FAD, 0x716E, 0xD6F3, 0x716F, 0x9FAE, 0x7170, 0x9FAF, 0x7171, 0x9FB0, 0x7172, 0xECD2, + 0x7173, 0xECCE, 0x7174, 0x9FB1, 0x7175, 0x9FB2, 0x7176, 0x9FB3, 0x7177, 0x9FB4, 0x7178, 0xECD4, 0x7179, 0x9FB5, 0x717A, 0xECD5, + 0x717B, 0x9FB6, 0x717C, 0x9FB7, 0x717D, 0xC9BF, 0x717E, 0x9FB8, 0x717F, 0x9FB9, 0x7180, 0x9FBA, 0x7181, 0x9FBB, 0x7182, 0x9FBC, + 0x7183, 0x9FBD, 0x7184, 0xCFA8, 0x7185, 0x9FBE, 0x7186, 0x9FBF, 0x7187, 0x9FC0, 0x7188, 0x9FC1, 0x7189, 0x9FC2, 0x718A, 0xD0DC, + 0x718B, 0x9FC3, 0x718C, 0x9FC4, 0x718D, 0x9FC5, 0x718E, 0x9FC6, 0x718F, 0xD1AC, 0x7190, 0x9FC7, 0x7191, 0x9FC8, 0x7192, 0x9FC9, + 0x7193, 0x9FCA, 0x7194, 0xC8DB, 0x7195, 0x9FCB, 0x7196, 0x9FCC, 0x7197, 0x9FCD, 0x7198, 0xECD6, 0x7199, 0xCEF5, 0x719A, 0x9FCE, + 0x719B, 0x9FCF, 0x719C, 0x9FD0, 0x719D, 0x9FD1, 0x719E, 0x9FD2, 0x719F, 0xCAEC, 0x71A0, 0xECDA, 0x71A1, 0x9FD3, 0x71A2, 0x9FD4, + 0x71A3, 0x9FD5, 0x71A4, 0x9FD6, 0x71A5, 0x9FD7, 0x71A6, 0x9FD8, 0x71A7, 0x9FD9, 0x71A8, 0xECD9, 0x71A9, 0x9FDA, 0x71AA, 0x9FDB, + 0x71AB, 0x9FDC, 0x71AC, 0xB0BE, 0x71AD, 0x9FDD, 0x71AE, 0x9FDE, 0x71AF, 0x9FDF, 0x71B0, 0x9FE0, 0x71B1, 0x9FE1, 0x71B2, 0x9FE2, + 0x71B3, 0xECD7, 0x71B4, 0x9FE3, 0x71B5, 0xECD8, 0x71B6, 0x9FE4, 0x71B7, 0x9FE5, 0x71B8, 0x9FE6, 0x71B9, 0xECE4, 0x71BA, 0x9FE7, + 0x71BB, 0x9FE8, 0x71BC, 0x9FE9, 0x71BD, 0x9FEA, 0x71BE, 0x9FEB, 0x71BF, 0x9FEC, 0x71C0, 0x9FED, 0x71C1, 0x9FEE, 0x71C2, 0x9FEF, + 0x71C3, 0xC8BC, 0x71C4, 0x9FF0, 0x71C5, 0x9FF1, 0x71C6, 0x9FF2, 0x71C7, 0x9FF3, 0x71C8, 0x9FF4, 0x71C9, 0x9FF5, 0x71CA, 0x9FF6, + 0x71CB, 0x9FF7, 0x71CC, 0x9FF8, 0x71CD, 0x9FF9, 0x71CE, 0xC1C7, 0x71CF, 0x9FFA, 0x71D0, 0x9FFB, 0x71D1, 0x9FFC, 0x71D2, 0x9FFD, + 0x71D3, 0x9FFE, 0x71D4, 0xECDC, 0x71D5, 0xD1E0, 0x71D6, 0xA040, 0x71D7, 0xA041, 0x71D8, 0xA042, 0x71D9, 0xA043, 0x71DA, 0xA044, + 0x71DB, 0xA045, 0x71DC, 0xA046, 0x71DD, 0xA047, 0x71DE, 0xA048, 0x71DF, 0xA049, 0x71E0, 0xECDB, 0x71E1, 0xA04A, 0x71E2, 0xA04B, + 0x71E3, 0xA04C, 0x71E4, 0xA04D, 0x71E5, 0xD4EF, 0x71E6, 0xA04E, 0x71E7, 0xECDD, 0x71E8, 0xA04F, 0x71E9, 0xA050, 0x71EA, 0xA051, + 0x71EB, 0xA052, 0x71EC, 0xA053, 0x71ED, 0xA054, 0x71EE, 0xDBC6, 0x71EF, 0xA055, 0x71F0, 0xA056, 0x71F1, 0xA057, 0x71F2, 0xA058, + 0x71F3, 0xA059, 0x71F4, 0xA05A, 0x71F5, 0xA05B, 0x71F6, 0xA05C, 0x71F7, 0xA05D, 0x71F8, 0xA05E, 0x71F9, 0xECDE, 0x71FA, 0xA05F, + 0x71FB, 0xA060, 0x71FC, 0xA061, 0x71FD, 0xA062, 0x71FE, 0xA063, 0x71FF, 0xA064, 0x7200, 0xA065, 0x7201, 0xA066, 0x7202, 0xA067, + 0x7203, 0xA068, 0x7204, 0xA069, 0x7205, 0xA06A, 0x7206, 0xB1AC, 0x7207, 0xA06B, 0x7208, 0xA06C, 0x7209, 0xA06D, 0x720A, 0xA06E, + 0x720B, 0xA06F, 0x720C, 0xA070, 0x720D, 0xA071, 0x720E, 0xA072, 0x720F, 0xA073, 0x7210, 0xA074, 0x7211, 0xA075, 0x7212, 0xA076, + 0x7213, 0xA077, 0x7214, 0xA078, 0x7215, 0xA079, 0x7216, 0xA07A, 0x7217, 0xA07B, 0x7218, 0xA07C, 0x7219, 0xA07D, 0x721A, 0xA07E, + 0x721B, 0xA080, 0x721C, 0xA081, 0x721D, 0xECDF, 0x721E, 0xA082, 0x721F, 0xA083, 0x7220, 0xA084, 0x7221, 0xA085, 0x7222, 0xA086, + 0x7223, 0xA087, 0x7224, 0xA088, 0x7225, 0xA089, 0x7226, 0xA08A, 0x7227, 0xA08B, 0x7228, 0xECE0, 0x7229, 0xA08C, 0x722A, 0xD7A6, + 0x722B, 0xA08D, 0x722C, 0xC5C0, 0x722D, 0xA08E, 0x722E, 0xA08F, 0x722F, 0xA090, 0x7230, 0xEBBC, 0x7231, 0xB0AE, 0x7232, 0xA091, + 0x7233, 0xA092, 0x7234, 0xA093, 0x7235, 0xBEF4, 0x7236, 0xB8B8, 0x7237, 0xD2AF, 0x7238, 0xB0D6, 0x7239, 0xB5F9, 0x723A, 0xA094, + 0x723B, 0xD8B3, 0x723C, 0xA095, 0x723D, 0xCBAC, 0x723E, 0xA096, 0x723F, 0xE3DD, 0x7240, 0xA097, 0x7241, 0xA098, 0x7242, 0xA099, + 0x7243, 0xA09A, 0x7244, 0xA09B, 0x7245, 0xA09C, 0x7246, 0xA09D, 0x7247, 0xC6AC, 0x7248, 0xB0E6, 0x7249, 0xA09E, 0x724A, 0xA09F, + 0x724B, 0xA0A0, 0x724C, 0xC5C6, 0x724D, 0xEBB9, 0x724E, 0xA0A1, 0x724F, 0xA0A2, 0x7250, 0xA0A3, 0x7251, 0xA0A4, 0x7252, 0xEBBA, + 0x7253, 0xA0A5, 0x7254, 0xA0A6, 0x7255, 0xA0A7, 0x7256, 0xEBBB, 0x7257, 0xA0A8, 0x7258, 0xA0A9, 0x7259, 0xD1C0, 0x725A, 0xA0AA, + 0x725B, 0xC5A3, 0x725C, 0xA0AB, 0x725D, 0xEAF2, 0x725E, 0xA0AC, 0x725F, 0xC4B2, 0x7260, 0xA0AD, 0x7261, 0xC4B5, 0x7262, 0xC0CE, + 0x7263, 0xA0AE, 0x7264, 0xA0AF, 0x7265, 0xA0B0, 0x7266, 0xEAF3, 0x7267, 0xC4C1, 0x7268, 0xA0B1, 0x7269, 0xCEEF, 0x726A, 0xA0B2, + 0x726B, 0xA0B3, 0x726C, 0xA0B4, 0x726D, 0xA0B5, 0x726E, 0xEAF0, 0x726F, 0xEAF4, 0x7270, 0xA0B6, 0x7271, 0xA0B7, 0x7272, 0xC9FC, + 0x7273, 0xA0B8, 0x7274, 0xA0B9, 0x7275, 0xC7A3, 0x7276, 0xA0BA, 0x7277, 0xA0BB, 0x7278, 0xA0BC, 0x7279, 0xCCD8, 0x727A, 0xCEFE, + 0x727B, 0xA0BD, 0x727C, 0xA0BE, 0x727D, 0xA0BF, 0x727E, 0xEAF5, 0x727F, 0xEAF6, 0x7280, 0xCFAC, 0x7281, 0xC0E7, 0x7282, 0xA0C0, + 0x7283, 0xA0C1, 0x7284, 0xEAF7, 0x7285, 0xA0C2, 0x7286, 0xA0C3, 0x7287, 0xA0C4, 0x7288, 0xA0C5, 0x7289, 0xA0C6, 0x728A, 0xB6BF, + 0x728B, 0xEAF8, 0x728C, 0xA0C7, 0x728D, 0xEAF9, 0x728E, 0xA0C8, 0x728F, 0xEAFA, 0x7290, 0xA0C9, 0x7291, 0xA0CA, 0x7292, 0xEAFB, + 0x7293, 0xA0CB, 0x7294, 0xA0CC, 0x7295, 0xA0CD, 0x7296, 0xA0CE, 0x7297, 0xA0CF, 0x7298, 0xA0D0, 0x7299, 0xA0D1, 0x729A, 0xA0D2, + 0x729B, 0xA0D3, 0x729C, 0xA0D4, 0x729D, 0xA0D5, 0x729E, 0xA0D6, 0x729F, 0xEAF1, 0x72A0, 0xA0D7, 0x72A1, 0xA0D8, 0x72A2, 0xA0D9, + 0x72A3, 0xA0DA, 0x72A4, 0xA0DB, 0x72A5, 0xA0DC, 0x72A6, 0xA0DD, 0x72A7, 0xA0DE, 0x72A8, 0xA0DF, 0x72A9, 0xA0E0, 0x72AA, 0xA0E1, + 0x72AB, 0xA0E2, 0x72AC, 0xC8AE, 0x72AD, 0xE1EB, 0x72AE, 0xA0E3, 0x72AF, 0xB7B8, 0x72B0, 0xE1EC, 0x72B1, 0xA0E4, 0x72B2, 0xA0E5, + 0x72B3, 0xA0E6, 0x72B4, 0xE1ED, 0x72B5, 0xA0E7, 0x72B6, 0xD7B4, 0x72B7, 0xE1EE, 0x72B8, 0xE1EF, 0x72B9, 0xD3CC, 0x72BA, 0xA0E8, + 0x72BB, 0xA0E9, 0x72BC, 0xA0EA, 0x72BD, 0xA0EB, 0x72BE, 0xA0EC, 0x72BF, 0xA0ED, 0x72C0, 0xA0EE, 0x72C1, 0xE1F1, 0x72C2, 0xBFF1, + 0x72C3, 0xE1F0, 0x72C4, 0xB5D2, 0x72C5, 0xA0EF, 0x72C6, 0xA0F0, 0x72C7, 0xA0F1, 0x72C8, 0xB1B7, 0x72C9, 0xA0F2, 0x72CA, 0xA0F3, + 0x72CB, 0xA0F4, 0x72CC, 0xA0F5, 0x72CD, 0xE1F3, 0x72CE, 0xE1F2, 0x72CF, 0xA0F6, 0x72D0, 0xBAFC, 0x72D1, 0xA0F7, 0x72D2, 0xE1F4, + 0x72D3, 0xA0F8, 0x72D4, 0xA0F9, 0x72D5, 0xA0FA, 0x72D6, 0xA0FB, 0x72D7, 0xB9B7, 0x72D8, 0xA0FC, 0x72D9, 0xBED1, 0x72DA, 0xA0FD, + 0x72DB, 0xA0FE, 0x72DC, 0xAA40, 0x72DD, 0xAA41, 0x72DE, 0xC4FC, 0x72DF, 0xAA42, 0x72E0, 0xBADD, 0x72E1, 0xBDC6, 0x72E2, 0xAA43, + 0x72E3, 0xAA44, 0x72E4, 0xAA45, 0x72E5, 0xAA46, 0x72E6, 0xAA47, 0x72E7, 0xAA48, 0x72E8, 0xE1F5, 0x72E9, 0xE1F7, 0x72EA, 0xAA49, + 0x72EB, 0xAA4A, 0x72EC, 0xB6C0, 0x72ED, 0xCFC1, 0x72EE, 0xCAA8, 0x72EF, 0xE1F6, 0x72F0, 0xD5F8, 0x72F1, 0xD3FC, 0x72F2, 0xE1F8, + 0x72F3, 0xE1FC, 0x72F4, 0xE1F9, 0x72F5, 0xAA4B, 0x72F6, 0xAA4C, 0x72F7, 0xE1FA, 0x72F8, 0xC0EA, 0x72F9, 0xAA4D, 0x72FA, 0xE1FE, + 0x72FB, 0xE2A1, 0x72FC, 0xC0C7, 0x72FD, 0xAA4E, 0x72FE, 0xAA4F, 0x72FF, 0xAA50, 0x7300, 0xAA51, 0x7301, 0xE1FB, 0x7302, 0xAA52, + 0x7303, 0xE1FD, 0x7304, 0xAA53, 0x7305, 0xAA54, 0x7306, 0xAA55, 0x7307, 0xAA56, 0x7308, 0xAA57, 0x7309, 0xAA58, 0x730A, 0xE2A5, + 0x730B, 0xAA59, 0x730C, 0xAA5A, 0x730D, 0xAA5B, 0x730E, 0xC1D4, 0x730F, 0xAA5C, 0x7310, 0xAA5D, 0x7311, 0xAA5E, 0x7312, 0xAA5F, + 0x7313, 0xE2A3, 0x7314, 0xAA60, 0x7315, 0xE2A8, 0x7316, 0xB2FE, 0x7317, 0xE2A2, 0x7318, 0xAA61, 0x7319, 0xAA62, 0x731A, 0xAA63, + 0x731B, 0xC3CD, 0x731C, 0xB2C2, 0x731D, 0xE2A7, 0x731E, 0xE2A6, 0x731F, 0xAA64, 0x7320, 0xAA65, 0x7321, 0xE2A4, 0x7322, 0xE2A9, + 0x7323, 0xAA66, 0x7324, 0xAA67, 0x7325, 0xE2AB, 0x7326, 0xAA68, 0x7327, 0xAA69, 0x7328, 0xAA6A, 0x7329, 0xD0C9, 0x732A, 0xD6ED, + 0x732B, 0xC3A8, 0x732C, 0xE2AC, 0x732D, 0xAA6B, 0x732E, 0xCFD7, 0x732F, 0xAA6C, 0x7330, 0xAA6D, 0x7331, 0xE2AE, 0x7332, 0xAA6E, + 0x7333, 0xAA6F, 0x7334, 0xBAEF, 0x7335, 0xAA70, 0x7336, 0xAA71, 0x7337, 0xE9E0, 0x7338, 0xE2AD, 0x7339, 0xE2AA, 0x733A, 0xAA72, + 0x733B, 0xAA73, 0x733C, 0xAA74, 0x733D, 0xAA75, 0x733E, 0xBBAB, 0x733F, 0xD4B3, 0x7340, 0xAA76, 0x7341, 0xAA77, 0x7342, 0xAA78, + 0x7343, 0xAA79, 0x7344, 0xAA7A, 0x7345, 0xAA7B, 0x7346, 0xAA7C, 0x7347, 0xAA7D, 0x7348, 0xAA7E, 0x7349, 0xAA80, 0x734A, 0xAA81, + 0x734B, 0xAA82, 0x734C, 0xAA83, 0x734D, 0xE2B0, 0x734E, 0xAA84, 0x734F, 0xAA85, 0x7350, 0xE2AF, 0x7351, 0xAA86, 0x7352, 0xE9E1, + 0x7353, 0xAA87, 0x7354, 0xAA88, 0x7355, 0xAA89, 0x7356, 0xAA8A, 0x7357, 0xE2B1, 0x7358, 0xAA8B, 0x7359, 0xAA8C, 0x735A, 0xAA8D, + 0x735B, 0xAA8E, 0x735C, 0xAA8F, 0x735D, 0xAA90, 0x735E, 0xAA91, 0x735F, 0xAA92, 0x7360, 0xE2B2, 0x7361, 0xAA93, 0x7362, 0xAA94, + 0x7363, 0xAA95, 0x7364, 0xAA96, 0x7365, 0xAA97, 0x7366, 0xAA98, 0x7367, 0xAA99, 0x7368, 0xAA9A, 0x7369, 0xAA9B, 0x736A, 0xAA9C, + 0x736B, 0xAA9D, 0x736C, 0xE2B3, 0x736D, 0xCCA1, 0x736E, 0xAA9E, 0x736F, 0xE2B4, 0x7370, 0xAA9F, 0x7371, 0xAAA0, 0x7372, 0xAB40, + 0x7373, 0xAB41, 0x7374, 0xAB42, 0x7375, 0xAB43, 0x7376, 0xAB44, 0x7377, 0xAB45, 0x7378, 0xAB46, 0x7379, 0xAB47, 0x737A, 0xAB48, + 0x737B, 0xAB49, 0x737C, 0xAB4A, 0x737D, 0xAB4B, 0x737E, 0xE2B5, 0x737F, 0xAB4C, 0x7380, 0xAB4D, 0x7381, 0xAB4E, 0x7382, 0xAB4F, + 0x7383, 0xAB50, 0x7384, 0xD0FE, 0x7385, 0xAB51, 0x7386, 0xAB52, 0x7387, 0xC2CA, 0x7388, 0xAB53, 0x7389, 0xD3F1, 0x738A, 0xAB54, + 0x738B, 0xCDF5, 0x738C, 0xAB55, 0x738D, 0xAB56, 0x738E, 0xE7E0, 0x738F, 0xAB57, 0x7390, 0xAB58, 0x7391, 0xE7E1, 0x7392, 0xAB59, + 0x7393, 0xAB5A, 0x7394, 0xAB5B, 0x7395, 0xAB5C, 0x7396, 0xBEC1, 0x7397, 0xAB5D, 0x7398, 0xAB5E, 0x7399, 0xAB5F, 0x739A, 0xAB60, + 0x739B, 0xC2EA, 0x739C, 0xAB61, 0x739D, 0xAB62, 0x739E, 0xAB63, 0x739F, 0xE7E4, 0x73A0, 0xAB64, 0x73A1, 0xAB65, 0x73A2, 0xE7E3, + 0x73A3, 0xAB66, 0x73A4, 0xAB67, 0x73A5, 0xAB68, 0x73A6, 0xAB69, 0x73A7, 0xAB6A, 0x73A8, 0xAB6B, 0x73A9, 0xCDE6, 0x73AA, 0xAB6C, + 0x73AB, 0xC3B5, 0x73AC, 0xAB6D, 0x73AD, 0xAB6E, 0x73AE, 0xE7E2, 0x73AF, 0xBBB7, 0x73B0, 0xCFD6, 0x73B1, 0xAB6F, 0x73B2, 0xC1E1, + 0x73B3, 0xE7E9, 0x73B4, 0xAB70, 0x73B5, 0xAB71, 0x73B6, 0xAB72, 0x73B7, 0xE7E8, 0x73B8, 0xAB73, 0x73B9, 0xAB74, 0x73BA, 0xE7F4, + 0x73BB, 0xB2A3, 0x73BC, 0xAB75, 0x73BD, 0xAB76, 0x73BE, 0xAB77, 0x73BF, 0xAB78, 0x73C0, 0xE7EA, 0x73C1, 0xAB79, 0x73C2, 0xE7E6, + 0x73C3, 0xAB7A, 0x73C4, 0xAB7B, 0x73C5, 0xAB7C, 0x73C6, 0xAB7D, 0x73C7, 0xAB7E, 0x73C8, 0xE7EC, 0x73C9, 0xE7EB, 0x73CA, 0xC9BA, + 0x73CB, 0xAB80, 0x73CC, 0xAB81, 0x73CD, 0xD5E4, 0x73CE, 0xAB82, 0x73CF, 0xE7E5, 0x73D0, 0xB7A9, 0x73D1, 0xE7E7, 0x73D2, 0xAB83, + 0x73D3, 0xAB84, 0x73D4, 0xAB85, 0x73D5, 0xAB86, 0x73D6, 0xAB87, 0x73D7, 0xAB88, 0x73D8, 0xAB89, 0x73D9, 0xE7EE, 0x73DA, 0xAB8A, + 0x73DB, 0xAB8B, 0x73DC, 0xAB8C, 0x73DD, 0xAB8D, 0x73DE, 0xE7F3, 0x73DF, 0xAB8E, 0x73E0, 0xD6E9, 0x73E1, 0xAB8F, 0x73E2, 0xAB90, + 0x73E3, 0xAB91, 0x73E4, 0xAB92, 0x73E5, 0xE7ED, 0x73E6, 0xAB93, 0x73E7, 0xE7F2, 0x73E8, 0xAB94, 0x73E9, 0xE7F1, 0x73EA, 0xAB95, + 0x73EB, 0xAB96, 0x73EC, 0xAB97, 0x73ED, 0xB0E0, 0x73EE, 0xAB98, 0x73EF, 0xAB99, 0x73F0, 0xAB9A, 0x73F1, 0xAB9B, 0x73F2, 0xE7F5, + 0x73F3, 0xAB9C, 0x73F4, 0xAB9D, 0x73F5, 0xAB9E, 0x73F6, 0xAB9F, 0x73F7, 0xABA0, 0x73F8, 0xAC40, 0x73F9, 0xAC41, 0x73FA, 0xAC42, + 0x73FB, 0xAC43, 0x73FC, 0xAC44, 0x73FD, 0xAC45, 0x73FE, 0xAC46, 0x73FF, 0xAC47, 0x7400, 0xAC48, 0x7401, 0xAC49, 0x7402, 0xAC4A, + 0x7403, 0xC7F2, 0x7404, 0xAC4B, 0x7405, 0xC0C5, 0x7406, 0xC0ED, 0x7407, 0xAC4C, 0x7408, 0xAC4D, 0x7409, 0xC1F0, 0x740A, 0xE7F0, + 0x740B, 0xAC4E, 0x740C, 0xAC4F, 0x740D, 0xAC50, 0x740E, 0xAC51, 0x740F, 0xE7F6, 0x7410, 0xCBF6, 0x7411, 0xAC52, 0x7412, 0xAC53, + 0x7413, 0xAC54, 0x7414, 0xAC55, 0x7415, 0xAC56, 0x7416, 0xAC57, 0x7417, 0xAC58, 0x7418, 0xAC59, 0x7419, 0xAC5A, 0x741A, 0xE8A2, + 0x741B, 0xE8A1, 0x741C, 0xAC5B, 0x741D, 0xAC5C, 0x741E, 0xAC5D, 0x741F, 0xAC5E, 0x7420, 0xAC5F, 0x7421, 0xAC60, 0x7422, 0xD7C1, + 0x7423, 0xAC61, 0x7424, 0xAC62, 0x7425, 0xE7FA, 0x7426, 0xE7F9, 0x7427, 0xAC63, 0x7428, 0xE7FB, 0x7429, 0xAC64, 0x742A, 0xE7F7, + 0x742B, 0xAC65, 0x742C, 0xE7FE, 0x742D, 0xAC66, 0x742E, 0xE7FD, 0x742F, 0xAC67, 0x7430, 0xE7FC, 0x7431, 0xAC68, 0x7432, 0xAC69, + 0x7433, 0xC1D5, 0x7434, 0xC7D9, 0x7435, 0xC5FD, 0x7436, 0xC5C3, 0x7437, 0xAC6A, 0x7438, 0xAC6B, 0x7439, 0xAC6C, 0x743A, 0xAC6D, + 0x743B, 0xAC6E, 0x743C, 0xC7ED, 0x743D, 0xAC6F, 0x743E, 0xAC70, 0x743F, 0xAC71, 0x7440, 0xAC72, 0x7441, 0xE8A3, 0x7442, 0xAC73, + 0x7443, 0xAC74, 0x7444, 0xAC75, 0x7445, 0xAC76, 0x7446, 0xAC77, 0x7447, 0xAC78, 0x7448, 0xAC79, 0x7449, 0xAC7A, 0x744A, 0xAC7B, + 0x744B, 0xAC7C, 0x744C, 0xAC7D, 0x744D, 0xAC7E, 0x744E, 0xAC80, 0x744F, 0xAC81, 0x7450, 0xAC82, 0x7451, 0xAC83, 0x7452, 0xAC84, + 0x7453, 0xAC85, 0x7454, 0xAC86, 0x7455, 0xE8A6, 0x7456, 0xAC87, 0x7457, 0xE8A5, 0x7458, 0xAC88, 0x7459, 0xE8A7, 0x745A, 0xBAF7, + 0x745B, 0xE7F8, 0x745C, 0xE8A4, 0x745D, 0xAC89, 0x745E, 0xC8F0, 0x745F, 0xC9AA, 0x7460, 0xAC8A, 0x7461, 0xAC8B, 0x7462, 0xAC8C, + 0x7463, 0xAC8D, 0x7464, 0xAC8E, 0x7465, 0xAC8F, 0x7466, 0xAC90, 0x7467, 0xAC91, 0x7468, 0xAC92, 0x7469, 0xAC93, 0x746A, 0xAC94, + 0x746B, 0xAC95, 0x746C, 0xAC96, 0x746D, 0xE8A9, 0x746E, 0xAC97, 0x746F, 0xAC98, 0x7470, 0xB9E5, 0x7471, 0xAC99, 0x7472, 0xAC9A, + 0x7473, 0xAC9B, 0x7474, 0xAC9C, 0x7475, 0xAC9D, 0x7476, 0xD1FE, 0x7477, 0xE8A8, 0x7478, 0xAC9E, 0x7479, 0xAC9F, 0x747A, 0xACA0, + 0x747B, 0xAD40, 0x747C, 0xAD41, 0x747D, 0xAD42, 0x747E, 0xE8AA, 0x747F, 0xAD43, 0x7480, 0xE8AD, 0x7481, 0xE8AE, 0x7482, 0xAD44, + 0x7483, 0xC1A7, 0x7484, 0xAD45, 0x7485, 0xAD46, 0x7486, 0xAD47, 0x7487, 0xE8AF, 0x7488, 0xAD48, 0x7489, 0xAD49, 0x748A, 0xAD4A, + 0x748B, 0xE8B0, 0x748C, 0xAD4B, 0x748D, 0xAD4C, 0x748E, 0xE8AC, 0x748F, 0xAD4D, 0x7490, 0xE8B4, 0x7491, 0xAD4E, 0x7492, 0xAD4F, + 0x7493, 0xAD50, 0x7494, 0xAD51, 0x7495, 0xAD52, 0x7496, 0xAD53, 0x7497, 0xAD54, 0x7498, 0xAD55, 0x7499, 0xAD56, 0x749A, 0xAD57, + 0x749B, 0xAD58, 0x749C, 0xE8AB, 0x749D, 0xAD59, 0x749E, 0xE8B1, 0x749F, 0xAD5A, 0x74A0, 0xAD5B, 0x74A1, 0xAD5C, 0x74A2, 0xAD5D, + 0x74A3, 0xAD5E, 0x74A4, 0xAD5F, 0x74A5, 0xAD60, 0x74A6, 0xAD61, 0x74A7, 0xE8B5, 0x74A8, 0xE8B2, 0x74A9, 0xE8B3, 0x74AA, 0xAD62, + 0x74AB, 0xAD63, 0x74AC, 0xAD64, 0x74AD, 0xAD65, 0x74AE, 0xAD66, 0x74AF, 0xAD67, 0x74B0, 0xAD68, 0x74B1, 0xAD69, 0x74B2, 0xAD6A, + 0x74B3, 0xAD6B, 0x74B4, 0xAD6C, 0x74B5, 0xAD6D, 0x74B6, 0xAD6E, 0x74B7, 0xAD6F, 0x74B8, 0xAD70, 0x74B9, 0xAD71, 0x74BA, 0xE8B7, + 0x74BB, 0xAD72, 0x74BC, 0xAD73, 0x74BD, 0xAD74, 0x74BE, 0xAD75, 0x74BF, 0xAD76, 0x74C0, 0xAD77, 0x74C1, 0xAD78, 0x74C2, 0xAD79, + 0x74C3, 0xAD7A, 0x74C4, 0xAD7B, 0x74C5, 0xAD7C, 0x74C6, 0xAD7D, 0x74C7, 0xAD7E, 0x74C8, 0xAD80, 0x74C9, 0xAD81, 0x74CA, 0xAD82, + 0x74CB, 0xAD83, 0x74CC, 0xAD84, 0x74CD, 0xAD85, 0x74CE, 0xAD86, 0x74CF, 0xAD87, 0x74D0, 0xAD88, 0x74D1, 0xAD89, 0x74D2, 0xE8B6, + 0x74D3, 0xAD8A, 0x74D4, 0xAD8B, 0x74D5, 0xAD8C, 0x74D6, 0xAD8D, 0x74D7, 0xAD8E, 0x74D8, 0xAD8F, 0x74D9, 0xAD90, 0x74DA, 0xAD91, + 0x74DB, 0xAD92, 0x74DC, 0xB9CF, 0x74DD, 0xAD93, 0x74DE, 0xF0AC, 0x74DF, 0xAD94, 0x74E0, 0xF0AD, 0x74E1, 0xAD95, 0x74E2, 0xC6B0, + 0x74E3, 0xB0EA, 0x74E4, 0xC8BF, 0x74E5, 0xAD96, 0x74E6, 0xCDDF, 0x74E7, 0xAD97, 0x74E8, 0xAD98, 0x74E9, 0xAD99, 0x74EA, 0xAD9A, + 0x74EB, 0xAD9B, 0x74EC, 0xAD9C, 0x74ED, 0xAD9D, 0x74EE, 0xCECD, 0x74EF, 0xEAB1, 0x74F0, 0xAD9E, 0x74F1, 0xAD9F, 0x74F2, 0xADA0, + 0x74F3, 0xAE40, 0x74F4, 0xEAB2, 0x74F5, 0xAE41, 0x74F6, 0xC6BF, 0x74F7, 0xB4C9, 0x74F8, 0xAE42, 0x74F9, 0xAE43, 0x74FA, 0xAE44, + 0x74FB, 0xAE45, 0x74FC, 0xAE46, 0x74FD, 0xAE47, 0x74FE, 0xAE48, 0x74FF, 0xEAB3, 0x7500, 0xAE49, 0x7501, 0xAE4A, 0x7502, 0xAE4B, + 0x7503, 0xAE4C, 0x7504, 0xD5E7, 0x7505, 0xAE4D, 0x7506, 0xAE4E, 0x7507, 0xAE4F, 0x7508, 0xAE50, 0x7509, 0xAE51, 0x750A, 0xAE52, + 0x750B, 0xAE53, 0x750C, 0xAE54, 0x750D, 0xDDF9, 0x750E, 0xAE55, 0x750F, 0xEAB4, 0x7510, 0xAE56, 0x7511, 0xEAB5, 0x7512, 0xAE57, + 0x7513, 0xEAB6, 0x7514, 0xAE58, 0x7515, 0xAE59, 0x7516, 0xAE5A, 0x7517, 0xAE5B, 0x7518, 0xB8CA, 0x7519, 0xDFB0, 0x751A, 0xC9F5, + 0x751B, 0xAE5C, 0x751C, 0xCCF0, 0x751D, 0xAE5D, 0x751E, 0xAE5E, 0x751F, 0xC9FA, 0x7520, 0xAE5F, 0x7521, 0xAE60, 0x7522, 0xAE61, + 0x7523, 0xAE62, 0x7524, 0xAE63, 0x7525, 0xC9FB, 0x7526, 0xAE64, 0x7527, 0xAE65, 0x7528, 0xD3C3, 0x7529, 0xCBA6, 0x752A, 0xAE66, + 0x752B, 0xB8A6, 0x752C, 0xF0AE, 0x752D, 0xB1C2, 0x752E, 0xAE67, 0x752F, 0xE5B8, 0x7530, 0xCCEF, 0x7531, 0xD3C9, 0x7532, 0xBCD7, + 0x7533, 0xC9EA, 0x7534, 0xAE68, 0x7535, 0xB5E7, 0x7536, 0xAE69, 0x7537, 0xC4D0, 0x7538, 0xB5E9, 0x7539, 0xAE6A, 0x753A, 0xEEAE, + 0x753B, 0xBBAD, 0x753C, 0xAE6B, 0x753D, 0xAE6C, 0x753E, 0xE7DE, 0x753F, 0xAE6D, 0x7540, 0xEEAF, 0x7541, 0xAE6E, 0x7542, 0xAE6F, + 0x7543, 0xAE70, 0x7544, 0xAE71, 0x7545, 0xB3A9, 0x7546, 0xAE72, 0x7547, 0xAE73, 0x7548, 0xEEB2, 0x7549, 0xAE74, 0x754A, 0xAE75, + 0x754B, 0xEEB1, 0x754C, 0xBDE7, 0x754D, 0xAE76, 0x754E, 0xEEB0, 0x754F, 0xCEB7, 0x7550, 0xAE77, 0x7551, 0xAE78, 0x7552, 0xAE79, + 0x7553, 0xAE7A, 0x7554, 0xC5CF, 0x7555, 0xAE7B, 0x7556, 0xAE7C, 0x7557, 0xAE7D, 0x7558, 0xAE7E, 0x7559, 0xC1F4, 0x755A, 0xDBCE, + 0x755B, 0xEEB3, 0x755C, 0xD0F3, 0x755D, 0xAE80, 0x755E, 0xAE81, 0x755F, 0xAE82, 0x7560, 0xAE83, 0x7561, 0xAE84, 0x7562, 0xAE85, + 0x7563, 0xAE86, 0x7564, 0xAE87, 0x7565, 0xC2D4, 0x7566, 0xC6E8, 0x7567, 0xAE88, 0x7568, 0xAE89, 0x7569, 0xAE8A, 0x756A, 0xB7AC, + 0x756B, 0xAE8B, 0x756C, 0xAE8C, 0x756D, 0xAE8D, 0x756E, 0xAE8E, 0x756F, 0xAE8F, 0x7570, 0xAE90, 0x7571, 0xAE91, 0x7572, 0xEEB4, + 0x7573, 0xAE92, 0x7574, 0xB3EB, 0x7575, 0xAE93, 0x7576, 0xAE94, 0x7577, 0xAE95, 0x7578, 0xBBFB, 0x7579, 0xEEB5, 0x757A, 0xAE96, + 0x757B, 0xAE97, 0x757C, 0xAE98, 0x757D, 0xAE99, 0x757E, 0xAE9A, 0x757F, 0xE7DC, 0x7580, 0xAE9B, 0x7581, 0xAE9C, 0x7582, 0xAE9D, + 0x7583, 0xEEB6, 0x7584, 0xAE9E, 0x7585, 0xAE9F, 0x7586, 0xBDAE, 0x7587, 0xAEA0, 0x7588, 0xAF40, 0x7589, 0xAF41, 0x758A, 0xAF42, + 0x758B, 0xF1E2, 0x758C, 0xAF43, 0x758D, 0xAF44, 0x758E, 0xAF45, 0x758F, 0xCAE8, 0x7590, 0xAF46, 0x7591, 0xD2C9, 0x7592, 0xF0DA, + 0x7593, 0xAF47, 0x7594, 0xF0DB, 0x7595, 0xAF48, 0x7596, 0xF0DC, 0x7597, 0xC1C6, 0x7598, 0xAF49, 0x7599, 0xB8ED, 0x759A, 0xBECE, + 0x759B, 0xAF4A, 0x759C, 0xAF4B, 0x759D, 0xF0DE, 0x759E, 0xAF4C, 0x759F, 0xC5B1, 0x75A0, 0xF0DD, 0x75A1, 0xD1F1, 0x75A2, 0xAF4D, + 0x75A3, 0xF0E0, 0x75A4, 0xB0CC, 0x75A5, 0xBDEA, 0x75A6, 0xAF4E, 0x75A7, 0xAF4F, 0x75A8, 0xAF50, 0x75A9, 0xAF51, 0x75AA, 0xAF52, + 0x75AB, 0xD2DF, 0x75AC, 0xF0DF, 0x75AD, 0xAF53, 0x75AE, 0xB4AF, 0x75AF, 0xB7E8, 0x75B0, 0xF0E6, 0x75B1, 0xF0E5, 0x75B2, 0xC6A3, + 0x75B3, 0xF0E1, 0x75B4, 0xF0E2, 0x75B5, 0xB4C3, 0x75B6, 0xAF54, 0x75B7, 0xAF55, 0x75B8, 0xF0E3, 0x75B9, 0xD5EE, 0x75BA, 0xAF56, + 0x75BB, 0xAF57, 0x75BC, 0xCCDB, 0x75BD, 0xBED2, 0x75BE, 0xBCB2, 0x75BF, 0xAF58, 0x75C0, 0xAF59, 0x75C1, 0xAF5A, 0x75C2, 0xF0E8, + 0x75C3, 0xF0E7, 0x75C4, 0xF0E4, 0x75C5, 0xB2A1, 0x75C6, 0xAF5B, 0x75C7, 0xD6A2, 0x75C8, 0xD3B8, 0x75C9, 0xBEB7, 0x75CA, 0xC8AC, + 0x75CB, 0xAF5C, 0x75CC, 0xAF5D, 0x75CD, 0xF0EA, 0x75CE, 0xAF5E, 0x75CF, 0xAF5F, 0x75D0, 0xAF60, 0x75D1, 0xAF61, 0x75D2, 0xD1F7, + 0x75D3, 0xAF62, 0x75D4, 0xD6CC, 0x75D5, 0xBADB, 0x75D6, 0xF0E9, 0x75D7, 0xAF63, 0x75D8, 0xB6BB, 0x75D9, 0xAF64, 0x75DA, 0xAF65, + 0x75DB, 0xCDB4, 0x75DC, 0xAF66, 0x75DD, 0xAF67, 0x75DE, 0xC6A6, 0x75DF, 0xAF68, 0x75E0, 0xAF69, 0x75E1, 0xAF6A, 0x75E2, 0xC1A1, + 0x75E3, 0xF0EB, 0x75E4, 0xF0EE, 0x75E5, 0xAF6B, 0x75E6, 0xF0ED, 0x75E7, 0xF0F0, 0x75E8, 0xF0EC, 0x75E9, 0xAF6C, 0x75EA, 0xBBBE, + 0x75EB, 0xF0EF, 0x75EC, 0xAF6D, 0x75ED, 0xAF6E, 0x75EE, 0xAF6F, 0x75EF, 0xAF70, 0x75F0, 0xCCB5, 0x75F1, 0xF0F2, 0x75F2, 0xAF71, + 0x75F3, 0xAF72, 0x75F4, 0xB3D5, 0x75F5, 0xAF73, 0x75F6, 0xAF74, 0x75F7, 0xAF75, 0x75F8, 0xAF76, 0x75F9, 0xB1D4, 0x75FA, 0xAF77, + 0x75FB, 0xAF78, 0x75FC, 0xF0F3, 0x75FD, 0xAF79, 0x75FE, 0xAF7A, 0x75FF, 0xF0F4, 0x7600, 0xF0F6, 0x7601, 0xB4E1, 0x7602, 0xAF7B, + 0x7603, 0xF0F1, 0x7604, 0xAF7C, 0x7605, 0xF0F7, 0x7606, 0xAF7D, 0x7607, 0xAF7E, 0x7608, 0xAF80, 0x7609, 0xAF81, 0x760A, 0xF0FA, + 0x760B, 0xAF82, 0x760C, 0xF0F8, 0x760D, 0xAF83, 0x760E, 0xAF84, 0x760F, 0xAF85, 0x7610, 0xF0F5, 0x7611, 0xAF86, 0x7612, 0xAF87, + 0x7613, 0xAF88, 0x7614, 0xAF89, 0x7615, 0xF0FD, 0x7616, 0xAF8A, 0x7617, 0xF0F9, 0x7618, 0xF0FC, 0x7619, 0xF0FE, 0x761A, 0xAF8B, + 0x761B, 0xF1A1, 0x761C, 0xAF8C, 0x761D, 0xAF8D, 0x761E, 0xAF8E, 0x761F, 0xCEC1, 0x7620, 0xF1A4, 0x7621, 0xAF8F, 0x7622, 0xF1A3, + 0x7623, 0xAF90, 0x7624, 0xC1F6, 0x7625, 0xF0FB, 0x7626, 0xCADD, 0x7627, 0xAF91, 0x7628, 0xAF92, 0x7629, 0xB4F1, 0x762A, 0xB1F1, + 0x762B, 0xCCB1, 0x762C, 0xAF93, 0x762D, 0xF1A6, 0x762E, 0xAF94, 0x762F, 0xAF95, 0x7630, 0xF1A7, 0x7631, 0xAF96, 0x7632, 0xAF97, + 0x7633, 0xF1AC, 0x7634, 0xD5CE, 0x7635, 0xF1A9, 0x7636, 0xAF98, 0x7637, 0xAF99, 0x7638, 0xC8B3, 0x7639, 0xAF9A, 0x763A, 0xAF9B, + 0x763B, 0xAF9C, 0x763C, 0xF1A2, 0x763D, 0xAF9D, 0x763E, 0xF1AB, 0x763F, 0xF1A8, 0x7640, 0xF1A5, 0x7641, 0xAF9E, 0x7642, 0xAF9F, + 0x7643, 0xF1AA, 0x7644, 0xAFA0, 0x7645, 0xB040, 0x7646, 0xB041, 0x7647, 0xB042, 0x7648, 0xB043, 0x7649, 0xB044, 0x764A, 0xB045, + 0x764B, 0xB046, 0x764C, 0xB0A9, 0x764D, 0xF1AD, 0x764E, 0xB047, 0x764F, 0xB048, 0x7650, 0xB049, 0x7651, 0xB04A, 0x7652, 0xB04B, + 0x7653, 0xB04C, 0x7654, 0xF1AF, 0x7655, 0xB04D, 0x7656, 0xF1B1, 0x7657, 0xB04E, 0x7658, 0xB04F, 0x7659, 0xB050, 0x765A, 0xB051, + 0x765B, 0xB052, 0x765C, 0xF1B0, 0x765D, 0xB053, 0x765E, 0xF1AE, 0x765F, 0xB054, 0x7660, 0xB055, 0x7661, 0xB056, 0x7662, 0xB057, + 0x7663, 0xD1A2, 0x7664, 0xB058, 0x7665, 0xB059, 0x7666, 0xB05A, 0x7667, 0xB05B, 0x7668, 0xB05C, 0x7669, 0xB05D, 0x766A, 0xB05E, + 0x766B, 0xF1B2, 0x766C, 0xB05F, 0x766D, 0xB060, 0x766E, 0xB061, 0x766F, 0xF1B3, 0x7670, 0xB062, 0x7671, 0xB063, 0x7672, 0xB064, + 0x7673, 0xB065, 0x7674, 0xB066, 0x7675, 0xB067, 0x7676, 0xB068, 0x7677, 0xB069, 0x7678, 0xB9EF, 0x7679, 0xB06A, 0x767A, 0xB06B, + 0x767B, 0xB5C7, 0x767C, 0xB06C, 0x767D, 0xB0D7, 0x767E, 0xB0D9, 0x767F, 0xB06D, 0x7680, 0xB06E, 0x7681, 0xB06F, 0x7682, 0xD4ED, + 0x7683, 0xB070, 0x7684, 0xB5C4, 0x7685, 0xB071, 0x7686, 0xBDD4, 0x7687, 0xBBCA, 0x7688, 0xF0A7, 0x7689, 0xB072, 0x768A, 0xB073, + 0x768B, 0xB8DE, 0x768C, 0xB074, 0x768D, 0xB075, 0x768E, 0xF0A8, 0x768F, 0xB076, 0x7690, 0xB077, 0x7691, 0xB0A8, 0x7692, 0xB078, + 0x7693, 0xF0A9, 0x7694, 0xB079, 0x7695, 0xB07A, 0x7696, 0xCDEE, 0x7697, 0xB07B, 0x7698, 0xB07C, 0x7699, 0xF0AA, 0x769A, 0xB07D, + 0x769B, 0xB07E, 0x769C, 0xB080, 0x769D, 0xB081, 0x769E, 0xB082, 0x769F, 0xB083, 0x76A0, 0xB084, 0x76A1, 0xB085, 0x76A2, 0xB086, + 0x76A3, 0xB087, 0x76A4, 0xF0AB, 0x76A5, 0xB088, 0x76A6, 0xB089, 0x76A7, 0xB08A, 0x76A8, 0xB08B, 0x76A9, 0xB08C, 0x76AA, 0xB08D, + 0x76AB, 0xB08E, 0x76AC, 0xB08F, 0x76AD, 0xB090, 0x76AE, 0xC6A4, 0x76AF, 0xB091, 0x76B0, 0xB092, 0x76B1, 0xD6E5, 0x76B2, 0xF1E4, + 0x76B3, 0xB093, 0x76B4, 0xF1E5, 0x76B5, 0xB094, 0x76B6, 0xB095, 0x76B7, 0xB096, 0x76B8, 0xB097, 0x76B9, 0xB098, 0x76BA, 0xB099, + 0x76BB, 0xB09A, 0x76BC, 0xB09B, 0x76BD, 0xB09C, 0x76BE, 0xB09D, 0x76BF, 0xC3F3, 0x76C0, 0xB09E, 0x76C1, 0xB09F, 0x76C2, 0xD3DB, + 0x76C3, 0xB0A0, 0x76C4, 0xB140, 0x76C5, 0xD6D1, 0x76C6, 0xC5E8, 0x76C7, 0xB141, 0x76C8, 0xD3AF, 0x76C9, 0xB142, 0x76CA, 0xD2E6, + 0x76CB, 0xB143, 0x76CC, 0xB144, 0x76CD, 0xEEC1, 0x76CE, 0xB0BB, 0x76CF, 0xD5B5, 0x76D0, 0xD1CE, 0x76D1, 0xBCE0, 0x76D2, 0xBAD0, + 0x76D3, 0xB145, 0x76D4, 0xBFF8, 0x76D5, 0xB146, 0x76D6, 0xB8C7, 0x76D7, 0xB5C1, 0x76D8, 0xC5CC, 0x76D9, 0xB147, 0x76DA, 0xB148, + 0x76DB, 0xCAA2, 0x76DC, 0xB149, 0x76DD, 0xB14A, 0x76DE, 0xB14B, 0x76DF, 0xC3CB, 0x76E0, 0xB14C, 0x76E1, 0xB14D, 0x76E2, 0xB14E, + 0x76E3, 0xB14F, 0x76E4, 0xB150, 0x76E5, 0xEEC2, 0x76E6, 0xB151, 0x76E7, 0xB152, 0x76E8, 0xB153, 0x76E9, 0xB154, 0x76EA, 0xB155, + 0x76EB, 0xB156, 0x76EC, 0xB157, 0x76ED, 0xB158, 0x76EE, 0xC4BF, 0x76EF, 0xB6A2, 0x76F0, 0xB159, 0x76F1, 0xEDEC, 0x76F2, 0xC3A4, + 0x76F3, 0xB15A, 0x76F4, 0xD6B1, 0x76F5, 0xB15B, 0x76F6, 0xB15C, 0x76F7, 0xB15D, 0x76F8, 0xCFE0, 0x76F9, 0xEDEF, 0x76FA, 0xB15E, + 0x76FB, 0xB15F, 0x76FC, 0xC5CE, 0x76FD, 0xB160, 0x76FE, 0xB6DC, 0x76FF, 0xB161, 0x7700, 0xB162, 0x7701, 0xCAA1, 0x7702, 0xB163, + 0x7703, 0xB164, 0x7704, 0xEDED, 0x7705, 0xB165, 0x7706, 0xB166, 0x7707, 0xEDF0, 0x7708, 0xEDF1, 0x7709, 0xC3BC, 0x770A, 0xB167, + 0x770B, 0xBFB4, 0x770C, 0xB168, 0x770D, 0xEDEE, 0x770E, 0xB169, 0x770F, 0xB16A, 0x7710, 0xB16B, 0x7711, 0xB16C, 0x7712, 0xB16D, + 0x7713, 0xB16E, 0x7714, 0xB16F, 0x7715, 0xB170, 0x7716, 0xB171, 0x7717, 0xB172, 0x7718, 0xB173, 0x7719, 0xEDF4, 0x771A, 0xEDF2, + 0x771B, 0xB174, 0x771C, 0xB175, 0x771D, 0xB176, 0x771E, 0xB177, 0x771F, 0xD5E6, 0x7720, 0xC3DF, 0x7721, 0xB178, 0x7722, 0xEDF3, + 0x7723, 0xB179, 0x7724, 0xB17A, 0x7725, 0xB17B, 0x7726, 0xEDF6, 0x7727, 0xB17C, 0x7728, 0xD5A3, 0x7729, 0xD1A3, 0x772A, 0xB17D, + 0x772B, 0xB17E, 0x772C, 0xB180, 0x772D, 0xEDF5, 0x772E, 0xB181, 0x772F, 0xC3D0, 0x7730, 0xB182, 0x7731, 0xB183, 0x7732, 0xB184, + 0x7733, 0xB185, 0x7734, 0xB186, 0x7735, 0xEDF7, 0x7736, 0xBFF4, 0x7737, 0xBEEC, 0x7738, 0xEDF8, 0x7739, 0xB187, 0x773A, 0xCCF7, + 0x773B, 0xB188, 0x773C, 0xD1DB, 0x773D, 0xB189, 0x773E, 0xB18A, 0x773F, 0xB18B, 0x7740, 0xD7C5, 0x7741, 0xD5F6, 0x7742, 0xB18C, + 0x7743, 0xEDFC, 0x7744, 0xB18D, 0x7745, 0xB18E, 0x7746, 0xB18F, 0x7747, 0xEDFB, 0x7748, 0xB190, 0x7749, 0xB191, 0x774A, 0xB192, + 0x774B, 0xB193, 0x774C, 0xB194, 0x774D, 0xB195, 0x774E, 0xB196, 0x774F, 0xB197, 0x7750, 0xEDF9, 0x7751, 0xEDFA, 0x7752, 0xB198, + 0x7753, 0xB199, 0x7754, 0xB19A, 0x7755, 0xB19B, 0x7756, 0xB19C, 0x7757, 0xB19D, 0x7758, 0xB19E, 0x7759, 0xB19F, 0x775A, 0xEDFD, + 0x775B, 0xBEA6, 0x775C, 0xB1A0, 0x775D, 0xB240, 0x775E, 0xB241, 0x775F, 0xB242, 0x7760, 0xB243, 0x7761, 0xCBAF, 0x7762, 0xEEA1, + 0x7763, 0xB6BD, 0x7764, 0xB244, 0x7765, 0xEEA2, 0x7766, 0xC4C0, 0x7767, 0xB245, 0x7768, 0xEDFE, 0x7769, 0xB246, 0x776A, 0xB247, + 0x776B, 0xBDDE, 0x776C, 0xB2C7, 0x776D, 0xB248, 0x776E, 0xB249, 0x776F, 0xB24A, 0x7770, 0xB24B, 0x7771, 0xB24C, 0x7772, 0xB24D, + 0x7773, 0xB24E, 0x7774, 0xB24F, 0x7775, 0xB250, 0x7776, 0xB251, 0x7777, 0xB252, 0x7778, 0xB253, 0x7779, 0xB6C3, 0x777A, 0xB254, + 0x777B, 0xB255, 0x777C, 0xB256, 0x777D, 0xEEA5, 0x777E, 0xD8BA, 0x777F, 0xEEA3, 0x7780, 0xEEA6, 0x7781, 0xB257, 0x7782, 0xB258, + 0x7783, 0xB259, 0x7784, 0xC3E9, 0x7785, 0xB3F2, 0x7786, 0xB25A, 0x7787, 0xB25B, 0x7788, 0xB25C, 0x7789, 0xB25D, 0x778A, 0xB25E, + 0x778B, 0xB25F, 0x778C, 0xEEA7, 0x778D, 0xEEA4, 0x778E, 0xCFB9, 0x778F, 0xB260, 0x7790, 0xB261, 0x7791, 0xEEA8, 0x7792, 0xC2F7, + 0x7793, 0xB262, 0x7794, 0xB263, 0x7795, 0xB264, 0x7796, 0xB265, 0x7797, 0xB266, 0x7798, 0xB267, 0x7799, 0xB268, 0x779A, 0xB269, + 0x779B, 0xB26A, 0x779C, 0xB26B, 0x779D, 0xB26C, 0x779E, 0xB26D, 0x779F, 0xEEA9, 0x77A0, 0xEEAA, 0x77A1, 0xB26E, 0x77A2, 0xDEAB, + 0x77A3, 0xB26F, 0x77A4, 0xB270, 0x77A5, 0xC6B3, 0x77A6, 0xB271, 0x77A7, 0xC7C6, 0x77A8, 0xB272, 0x77A9, 0xD6F5, 0x77AA, 0xB5C9, + 0x77AB, 0xB273, 0x77AC, 0xCBB2, 0x77AD, 0xB274, 0x77AE, 0xB275, 0x77AF, 0xB276, 0x77B0, 0xEEAB, 0x77B1, 0xB277, 0x77B2, 0xB278, + 0x77B3, 0xCDAB, 0x77B4, 0xB279, 0x77B5, 0xEEAC, 0x77B6, 0xB27A, 0x77B7, 0xB27B, 0x77B8, 0xB27C, 0x77B9, 0xB27D, 0x77BA, 0xB27E, + 0x77BB, 0xD5B0, 0x77BC, 0xB280, 0x77BD, 0xEEAD, 0x77BE, 0xB281, 0x77BF, 0xF6C4, 0x77C0, 0xB282, 0x77C1, 0xB283, 0x77C2, 0xB284, + 0x77C3, 0xB285, 0x77C4, 0xB286, 0x77C5, 0xB287, 0x77C6, 0xB288, 0x77C7, 0xB289, 0x77C8, 0xB28A, 0x77C9, 0xB28B, 0x77CA, 0xB28C, + 0x77CB, 0xB28D, 0x77CC, 0xB28E, 0x77CD, 0xDBC7, 0x77CE, 0xB28F, 0x77CF, 0xB290, 0x77D0, 0xB291, 0x77D1, 0xB292, 0x77D2, 0xB293, + 0x77D3, 0xB294, 0x77D4, 0xB295, 0x77D5, 0xB296, 0x77D6, 0xB297, 0x77D7, 0xB4A3, 0x77D8, 0xB298, 0x77D9, 0xB299, 0x77DA, 0xB29A, + 0x77DB, 0xC3AC, 0x77DC, 0xF1E6, 0x77DD, 0xB29B, 0x77DE, 0xB29C, 0x77DF, 0xB29D, 0x77E0, 0xB29E, 0x77E1, 0xB29F, 0x77E2, 0xCAB8, + 0x77E3, 0xD2D3, 0x77E4, 0xB2A0, 0x77E5, 0xD6AA, 0x77E6, 0xB340, 0x77E7, 0xEFF2, 0x77E8, 0xB341, 0x77E9, 0xBED8, 0x77EA, 0xB342, + 0x77EB, 0xBDC3, 0x77EC, 0xEFF3, 0x77ED, 0xB6CC, 0x77EE, 0xB0AB, 0x77EF, 0xB343, 0x77F0, 0xB344, 0x77F1, 0xB345, 0x77F2, 0xB346, + 0x77F3, 0xCAAF, 0x77F4, 0xB347, 0x77F5, 0xB348, 0x77F6, 0xEDB6, 0x77F7, 0xB349, 0x77F8, 0xEDB7, 0x77F9, 0xB34A, 0x77FA, 0xB34B, + 0x77FB, 0xB34C, 0x77FC, 0xB34D, 0x77FD, 0xCEF9, 0x77FE, 0xB7AF, 0x77FF, 0xBFF3, 0x7800, 0xEDB8, 0x7801, 0xC2EB, 0x7802, 0xC9B0, + 0x7803, 0xB34E, 0x7804, 0xB34F, 0x7805, 0xB350, 0x7806, 0xB351, 0x7807, 0xB352, 0x7808, 0xB353, 0x7809, 0xEDB9, 0x780A, 0xB354, + 0x780B, 0xB355, 0x780C, 0xC6F6, 0x780D, 0xBFB3, 0x780E, 0xB356, 0x780F, 0xB357, 0x7810, 0xB358, 0x7811, 0xEDBC, 0x7812, 0xC5F8, + 0x7813, 0xB359, 0x7814, 0xD1D0, 0x7815, 0xB35A, 0x7816, 0xD7A9, 0x7817, 0xEDBA, 0x7818, 0xEDBB, 0x7819, 0xB35B, 0x781A, 0xD1E2, + 0x781B, 0xB35C, 0x781C, 0xEDBF, 0x781D, 0xEDC0, 0x781E, 0xB35D, 0x781F, 0xEDC4, 0x7820, 0xB35E, 0x7821, 0xB35F, 0x7822, 0xB360, + 0x7823, 0xEDC8, 0x7824, 0xB361, 0x7825, 0xEDC6, 0x7826, 0xEDCE, 0x7827, 0xD5E8, 0x7828, 0xB362, 0x7829, 0xEDC9, 0x782A, 0xB363, + 0x782B, 0xB364, 0x782C, 0xEDC7, 0x782D, 0xEDBE, 0x782E, 0xB365, 0x782F, 0xB366, 0x7830, 0xC5E9, 0x7831, 0xB367, 0x7832, 0xB368, + 0x7833, 0xB369, 0x7834, 0xC6C6, 0x7835, 0xB36A, 0x7836, 0xB36B, 0x7837, 0xC9E9, 0x7838, 0xD4D2, 0x7839, 0xEDC1, 0x783A, 0xEDC2, + 0x783B, 0xEDC3, 0x783C, 0xEDC5, 0x783D, 0xB36C, 0x783E, 0xC0F9, 0x783F, 0xB36D, 0x7840, 0xB4A1, 0x7841, 0xB36E, 0x7842, 0xB36F, + 0x7843, 0xB370, 0x7844, 0xB371, 0x7845, 0xB9E8, 0x7846, 0xB372, 0x7847, 0xEDD0, 0x7848, 0xB373, 0x7849, 0xB374, 0x784A, 0xB375, + 0x784B, 0xB376, 0x784C, 0xEDD1, 0x784D, 0xB377, 0x784E, 0xEDCA, 0x784F, 0xB378, 0x7850, 0xEDCF, 0x7851, 0xB379, 0x7852, 0xCEF8, + 0x7853, 0xB37A, 0x7854, 0xB37B, 0x7855, 0xCBB6, 0x7856, 0xEDCC, 0x7857, 0xEDCD, 0x7858, 0xB37C, 0x7859, 0xB37D, 0x785A, 0xB37E, + 0x785B, 0xB380, 0x785C, 0xB381, 0x785D, 0xCFF5, 0x785E, 0xB382, 0x785F, 0xB383, 0x7860, 0xB384, 0x7861, 0xB385, 0x7862, 0xB386, + 0x7863, 0xB387, 0x7864, 0xB388, 0x7865, 0xB389, 0x7866, 0xB38A, 0x7867, 0xB38B, 0x7868, 0xB38C, 0x7869, 0xB38D, 0x786A, 0xEDD2, + 0x786B, 0xC1F2, 0x786C, 0xD3B2, 0x786D, 0xEDCB, 0x786E, 0xC8B7, 0x786F, 0xB38E, 0x7870, 0xB38F, 0x7871, 0xB390, 0x7872, 0xB391, + 0x7873, 0xB392, 0x7874, 0xB393, 0x7875, 0xB394, 0x7876, 0xB395, 0x7877, 0xBCEF, 0x7878, 0xB396, 0x7879, 0xB397, 0x787A, 0xB398, + 0x787B, 0xB399, 0x787C, 0xC5F0, 0x787D, 0xB39A, 0x787E, 0xB39B, 0x787F, 0xB39C, 0x7880, 0xB39D, 0x7881, 0xB39E, 0x7882, 0xB39F, + 0x7883, 0xB3A0, 0x7884, 0xB440, 0x7885, 0xB441, 0x7886, 0xB442, 0x7887, 0xEDD6, 0x7888, 0xB443, 0x7889, 0xB5EF, 0x788A, 0xB444, + 0x788B, 0xB445, 0x788C, 0xC2B5, 0x788D, 0xB0AD, 0x788E, 0xCBE9, 0x788F, 0xB446, 0x7890, 0xB447, 0x7891, 0xB1AE, 0x7892, 0xB448, + 0x7893, 0xEDD4, 0x7894, 0xB449, 0x7895, 0xB44A, 0x7896, 0xB44B, 0x7897, 0xCDEB, 0x7898, 0xB5E2, 0x7899, 0xB44C, 0x789A, 0xEDD5, + 0x789B, 0xEDD3, 0x789C, 0xEDD7, 0x789D, 0xB44D, 0x789E, 0xB44E, 0x789F, 0xB5FA, 0x78A0, 0xB44F, 0x78A1, 0xEDD8, 0x78A2, 0xB450, + 0x78A3, 0xEDD9, 0x78A4, 0xB451, 0x78A5, 0xEDDC, 0x78A6, 0xB452, 0x78A7, 0xB1CC, 0x78A8, 0xB453, 0x78A9, 0xB454, 0x78AA, 0xB455, + 0x78AB, 0xB456, 0x78AC, 0xB457, 0x78AD, 0xB458, 0x78AE, 0xB459, 0x78AF, 0xB45A, 0x78B0, 0xC5F6, 0x78B1, 0xBCEE, 0x78B2, 0xEDDA, + 0x78B3, 0xCCBC, 0x78B4, 0xB2EA, 0x78B5, 0xB45B, 0x78B6, 0xB45C, 0x78B7, 0xB45D, 0x78B8, 0xB45E, 0x78B9, 0xEDDB, 0x78BA, 0xB45F, + 0x78BB, 0xB460, 0x78BC, 0xB461, 0x78BD, 0xB462, 0x78BE, 0xC4EB, 0x78BF, 0xB463, 0x78C0, 0xB464, 0x78C1, 0xB4C5, 0x78C2, 0xB465, + 0x78C3, 0xB466, 0x78C4, 0xB467, 0x78C5, 0xB0F5, 0x78C6, 0xB468, 0x78C7, 0xB469, 0x78C8, 0xB46A, 0x78C9, 0xEDDF, 0x78CA, 0xC0DA, + 0x78CB, 0xB4E8, 0x78CC, 0xB46B, 0x78CD, 0xB46C, 0x78CE, 0xB46D, 0x78CF, 0xB46E, 0x78D0, 0xC5CD, 0x78D1, 0xB46F, 0x78D2, 0xB470, + 0x78D3, 0xB471, 0x78D4, 0xEDDD, 0x78D5, 0xBFC4, 0x78D6, 0xB472, 0x78D7, 0xB473, 0x78D8, 0xB474, 0x78D9, 0xEDDE, 0x78DA, 0xB475, + 0x78DB, 0xB476, 0x78DC, 0xB477, 0x78DD, 0xB478, 0x78DE, 0xB479, 0x78DF, 0xB47A, 0x78E0, 0xB47B, 0x78E1, 0xB47C, 0x78E2, 0xB47D, + 0x78E3, 0xB47E, 0x78E4, 0xB480, 0x78E5, 0xB481, 0x78E6, 0xB482, 0x78E7, 0xB483, 0x78E8, 0xC4A5, 0x78E9, 0xB484, 0x78EA, 0xB485, + 0x78EB, 0xB486, 0x78EC, 0xEDE0, 0x78ED, 0xB487, 0x78EE, 0xB488, 0x78EF, 0xB489, 0x78F0, 0xB48A, 0x78F1, 0xB48B, 0x78F2, 0xEDE1, + 0x78F3, 0xB48C, 0x78F4, 0xEDE3, 0x78F5, 0xB48D, 0x78F6, 0xB48E, 0x78F7, 0xC1D7, 0x78F8, 0xB48F, 0x78F9, 0xB490, 0x78FA, 0xBBC7, + 0x78FB, 0xB491, 0x78FC, 0xB492, 0x78FD, 0xB493, 0x78FE, 0xB494, 0x78FF, 0xB495, 0x7900, 0xB496, 0x7901, 0xBDB8, 0x7902, 0xB497, + 0x7903, 0xB498, 0x7904, 0xB499, 0x7905, 0xEDE2, 0x7906, 0xB49A, 0x7907, 0xB49B, 0x7908, 0xB49C, 0x7909, 0xB49D, 0x790A, 0xB49E, + 0x790B, 0xB49F, 0x790C, 0xB4A0, 0x790D, 0xB540, 0x790E, 0xB541, 0x790F, 0xB542, 0x7910, 0xB543, 0x7911, 0xB544, 0x7912, 0xB545, + 0x7913, 0xEDE4, 0x7914, 0xB546, 0x7915, 0xB547, 0x7916, 0xB548, 0x7917, 0xB549, 0x7918, 0xB54A, 0x7919, 0xB54B, 0x791A, 0xB54C, + 0x791B, 0xB54D, 0x791C, 0xB54E, 0x791D, 0xB54F, 0x791E, 0xEDE6, 0x791F, 0xB550, 0x7920, 0xB551, 0x7921, 0xB552, 0x7922, 0xB553, + 0x7923, 0xB554, 0x7924, 0xEDE5, 0x7925, 0xB555, 0x7926, 0xB556, 0x7927, 0xB557, 0x7928, 0xB558, 0x7929, 0xB559, 0x792A, 0xB55A, + 0x792B, 0xB55B, 0x792C, 0xB55C, 0x792D, 0xB55D, 0x792E, 0xB55E, 0x792F, 0xB55F, 0x7930, 0xB560, 0x7931, 0xB561, 0x7932, 0xB562, + 0x7933, 0xB563, 0x7934, 0xEDE7, 0x7935, 0xB564, 0x7936, 0xB565, 0x7937, 0xB566, 0x7938, 0xB567, 0x7939, 0xB568, 0x793A, 0xCABE, + 0x793B, 0xECEA, 0x793C, 0xC0F1, 0x793D, 0xB569, 0x793E, 0xC9E7, 0x793F, 0xB56A, 0x7940, 0xECEB, 0x7941, 0xC6EE, 0x7942, 0xB56B, + 0x7943, 0xB56C, 0x7944, 0xB56D, 0x7945, 0xB56E, 0x7946, 0xECEC, 0x7947, 0xB56F, 0x7948, 0xC6ED, 0x7949, 0xECED, 0x794A, 0xB570, + 0x794B, 0xB571, 0x794C, 0xB572, 0x794D, 0xB573, 0x794E, 0xB574, 0x794F, 0xB575, 0x7950, 0xB576, 0x7951, 0xB577, 0x7952, 0xB578, + 0x7953, 0xECF0, 0x7954, 0xB579, 0x7955, 0xB57A, 0x7956, 0xD7E6, 0x7957, 0xECF3, 0x7958, 0xB57B, 0x7959, 0xB57C, 0x795A, 0xECF1, + 0x795B, 0xECEE, 0x795C, 0xECEF, 0x795D, 0xD7A3, 0x795E, 0xC9F1, 0x795F, 0xCBEE, 0x7960, 0xECF4, 0x7961, 0xB57D, 0x7962, 0xECF2, + 0x7963, 0xB57E, 0x7964, 0xB580, 0x7965, 0xCFE9, 0x7966, 0xB581, 0x7967, 0xECF6, 0x7968, 0xC6B1, 0x7969, 0xB582, 0x796A, 0xB583, + 0x796B, 0xB584, 0x796C, 0xB585, 0x796D, 0xBCC0, 0x796E, 0xB586, 0x796F, 0xECF5, 0x7970, 0xB587, 0x7971, 0xB588, 0x7972, 0xB589, + 0x7973, 0xB58A, 0x7974, 0xB58B, 0x7975, 0xB58C, 0x7976, 0xB58D, 0x7977, 0xB5BB, 0x7978, 0xBBF6, 0x7979, 0xB58E, 0x797A, 0xECF7, + 0x797B, 0xB58F, 0x797C, 0xB590, 0x797D, 0xB591, 0x797E, 0xB592, 0x797F, 0xB593, 0x7980, 0xD9F7, 0x7981, 0xBDFB, 0x7982, 0xB594, + 0x7983, 0xB595, 0x7984, 0xC2BB, 0x7985, 0xECF8, 0x7986, 0xB596, 0x7987, 0xB597, 0x7988, 0xB598, 0x7989, 0xB599, 0x798A, 0xECF9, + 0x798B, 0xB59A, 0x798C, 0xB59B, 0x798D, 0xB59C, 0x798E, 0xB59D, 0x798F, 0xB8A3, 0x7990, 0xB59E, 0x7991, 0xB59F, 0x7992, 0xB5A0, + 0x7993, 0xB640, 0x7994, 0xB641, 0x7995, 0xB642, 0x7996, 0xB643, 0x7997, 0xB644, 0x7998, 0xB645, 0x7999, 0xB646, 0x799A, 0xECFA, + 0x799B, 0xB647, 0x799C, 0xB648, 0x799D, 0xB649, 0x799E, 0xB64A, 0x799F, 0xB64B, 0x79A0, 0xB64C, 0x79A1, 0xB64D, 0x79A2, 0xB64E, + 0x79A3, 0xB64F, 0x79A4, 0xB650, 0x79A5, 0xB651, 0x79A6, 0xB652, 0x79A7, 0xECFB, 0x79A8, 0xB653, 0x79A9, 0xB654, 0x79AA, 0xB655, + 0x79AB, 0xB656, 0x79AC, 0xB657, 0x79AD, 0xB658, 0x79AE, 0xB659, 0x79AF, 0xB65A, 0x79B0, 0xB65B, 0x79B1, 0xB65C, 0x79B2, 0xB65D, + 0x79B3, 0xECFC, 0x79B4, 0xB65E, 0x79B5, 0xB65F, 0x79B6, 0xB660, 0x79B7, 0xB661, 0x79B8, 0xB662, 0x79B9, 0xD3ED, 0x79BA, 0xD8AE, + 0x79BB, 0xC0EB, 0x79BC, 0xB663, 0x79BD, 0xC7DD, 0x79BE, 0xBACC, 0x79BF, 0xB664, 0x79C0, 0xD0E3, 0x79C1, 0xCBBD, 0x79C2, 0xB665, + 0x79C3, 0xCDBA, 0x79C4, 0xB666, 0x79C5, 0xB667, 0x79C6, 0xB8D1, 0x79C7, 0xB668, 0x79C8, 0xB669, 0x79C9, 0xB1FC, 0x79CA, 0xB66A, + 0x79CB, 0xC7EF, 0x79CC, 0xB66B, 0x79CD, 0xD6D6, 0x79CE, 0xB66C, 0x79CF, 0xB66D, 0x79D0, 0xB66E, 0x79D1, 0xBFC6, 0x79D2, 0xC3EB, + 0x79D3, 0xB66F, 0x79D4, 0xB670, 0x79D5, 0xEFF5, 0x79D6, 0xB671, 0x79D7, 0xB672, 0x79D8, 0xC3D8, 0x79D9, 0xB673, 0x79DA, 0xB674, + 0x79DB, 0xB675, 0x79DC, 0xB676, 0x79DD, 0xB677, 0x79DE, 0xB678, 0x79DF, 0xD7E2, 0x79E0, 0xB679, 0x79E1, 0xB67A, 0x79E2, 0xB67B, + 0x79E3, 0xEFF7, 0x79E4, 0xB3D3, 0x79E5, 0xB67C, 0x79E6, 0xC7D8, 0x79E7, 0xD1ED, 0x79E8, 0xB67D, 0x79E9, 0xD6C8, 0x79EA, 0xB67E, + 0x79EB, 0xEFF8, 0x79EC, 0xB680, 0x79ED, 0xEFF6, 0x79EE, 0xB681, 0x79EF, 0xBBFD, 0x79F0, 0xB3C6, 0x79F1, 0xB682, 0x79F2, 0xB683, + 0x79F3, 0xB684, 0x79F4, 0xB685, 0x79F5, 0xB686, 0x79F6, 0xB687, 0x79F7, 0xB688, 0x79F8, 0xBDD5, 0x79F9, 0xB689, 0x79FA, 0xB68A, + 0x79FB, 0xD2C6, 0x79FC, 0xB68B, 0x79FD, 0xBBE0, 0x79FE, 0xB68C, 0x79FF, 0xB68D, 0x7A00, 0xCFA1, 0x7A01, 0xB68E, 0x7A02, 0xEFFC, + 0x7A03, 0xEFFB, 0x7A04, 0xB68F, 0x7A05, 0xB690, 0x7A06, 0xEFF9, 0x7A07, 0xB691, 0x7A08, 0xB692, 0x7A09, 0xB693, 0x7A0A, 0xB694, + 0x7A0B, 0xB3CC, 0x7A0C, 0xB695, 0x7A0D, 0xC9D4, 0x7A0E, 0xCBB0, 0x7A0F, 0xB696, 0x7A10, 0xB697, 0x7A11, 0xB698, 0x7A12, 0xB699, + 0x7A13, 0xB69A, 0x7A14, 0xEFFE, 0x7A15, 0xB69B, 0x7A16, 0xB69C, 0x7A17, 0xB0DE, 0x7A18, 0xB69D, 0x7A19, 0xB69E, 0x7A1A, 0xD6C9, + 0x7A1B, 0xB69F, 0x7A1C, 0xB6A0, 0x7A1D, 0xB740, 0x7A1E, 0xEFFD, 0x7A1F, 0xB741, 0x7A20, 0xB3ED, 0x7A21, 0xB742, 0x7A22, 0xB743, + 0x7A23, 0xF6D5, 0x7A24, 0xB744, 0x7A25, 0xB745, 0x7A26, 0xB746, 0x7A27, 0xB747, 0x7A28, 0xB748, 0x7A29, 0xB749, 0x7A2A, 0xB74A, + 0x7A2B, 0xB74B, 0x7A2C, 0xB74C, 0x7A2D, 0xB74D, 0x7A2E, 0xB74E, 0x7A2F, 0xB74F, 0x7A30, 0xB750, 0x7A31, 0xB751, 0x7A32, 0xB752, + 0x7A33, 0xCEC8, 0x7A34, 0xB753, 0x7A35, 0xB754, 0x7A36, 0xB755, 0x7A37, 0xF0A2, 0x7A38, 0xB756, 0x7A39, 0xF0A1, 0x7A3A, 0xB757, + 0x7A3B, 0xB5BE, 0x7A3C, 0xBCDA, 0x7A3D, 0xBBFC, 0x7A3E, 0xB758, 0x7A3F, 0xB8E5, 0x7A40, 0xB759, 0x7A41, 0xB75A, 0x7A42, 0xB75B, + 0x7A43, 0xB75C, 0x7A44, 0xB75D, 0x7A45, 0xB75E, 0x7A46, 0xC4C2, 0x7A47, 0xB75F, 0x7A48, 0xB760, 0x7A49, 0xB761, 0x7A4A, 0xB762, + 0x7A4B, 0xB763, 0x7A4C, 0xB764, 0x7A4D, 0xB765, 0x7A4E, 0xB766, 0x7A4F, 0xB767, 0x7A50, 0xB768, 0x7A51, 0xF0A3, 0x7A52, 0xB769, + 0x7A53, 0xB76A, 0x7A54, 0xB76B, 0x7A55, 0xB76C, 0x7A56, 0xB76D, 0x7A57, 0xCBEB, 0x7A58, 0xB76E, 0x7A59, 0xB76F, 0x7A5A, 0xB770, + 0x7A5B, 0xB771, 0x7A5C, 0xB772, 0x7A5D, 0xB773, 0x7A5E, 0xB774, 0x7A5F, 0xB775, 0x7A60, 0xB776, 0x7A61, 0xB777, 0x7A62, 0xB778, + 0x7A63, 0xB779, 0x7A64, 0xB77A, 0x7A65, 0xB77B, 0x7A66, 0xB77C, 0x7A67, 0xB77D, 0x7A68, 0xB77E, 0x7A69, 0xB780, 0x7A6A, 0xB781, + 0x7A6B, 0xB782, 0x7A6C, 0xB783, 0x7A6D, 0xB784, 0x7A6E, 0xB785, 0x7A6F, 0xB786, 0x7A70, 0xF0A6, 0x7A71, 0xB787, 0x7A72, 0xB788, + 0x7A73, 0xB789, 0x7A74, 0xD1A8, 0x7A75, 0xB78A, 0x7A76, 0xBEBF, 0x7A77, 0xC7EE, 0x7A78, 0xF1B6, 0x7A79, 0xF1B7, 0x7A7A, 0xBFD5, + 0x7A7B, 0xB78B, 0x7A7C, 0xB78C, 0x7A7D, 0xB78D, 0x7A7E, 0xB78E, 0x7A7F, 0xB4A9, 0x7A80, 0xF1B8, 0x7A81, 0xCDBB, 0x7A82, 0xB78F, + 0x7A83, 0xC7D4, 0x7A84, 0xD5AD, 0x7A85, 0xB790, 0x7A86, 0xF1B9, 0x7A87, 0xB791, 0x7A88, 0xF1BA, 0x7A89, 0xB792, 0x7A8A, 0xB793, + 0x7A8B, 0xB794, 0x7A8C, 0xB795, 0x7A8D, 0xC7CF, 0x7A8E, 0xB796, 0x7A8F, 0xB797, 0x7A90, 0xB798, 0x7A91, 0xD2A4, 0x7A92, 0xD6CF, + 0x7A93, 0xB799, 0x7A94, 0xB79A, 0x7A95, 0xF1BB, 0x7A96, 0xBDD1, 0x7A97, 0xB4B0, 0x7A98, 0xBEBD, 0x7A99, 0xB79B, 0x7A9A, 0xB79C, + 0x7A9B, 0xB79D, 0x7A9C, 0xB4DC, 0x7A9D, 0xCED1, 0x7A9E, 0xB79E, 0x7A9F, 0xBFDF, 0x7AA0, 0xF1BD, 0x7AA1, 0xB79F, 0x7AA2, 0xB7A0, + 0x7AA3, 0xB840, 0x7AA4, 0xB841, 0x7AA5, 0xBFFA, 0x7AA6, 0xF1BC, 0x7AA7, 0xB842, 0x7AA8, 0xF1BF, 0x7AA9, 0xB843, 0x7AAA, 0xB844, + 0x7AAB, 0xB845, 0x7AAC, 0xF1BE, 0x7AAD, 0xF1C0, 0x7AAE, 0xB846, 0x7AAF, 0xB847, 0x7AB0, 0xB848, 0x7AB1, 0xB849, 0x7AB2, 0xB84A, + 0x7AB3, 0xF1C1, 0x7AB4, 0xB84B, 0x7AB5, 0xB84C, 0x7AB6, 0xB84D, 0x7AB7, 0xB84E, 0x7AB8, 0xB84F, 0x7AB9, 0xB850, 0x7ABA, 0xB851, + 0x7ABB, 0xB852, 0x7ABC, 0xB853, 0x7ABD, 0xB854, 0x7ABE, 0xB855, 0x7ABF, 0xC1FE, 0x7AC0, 0xB856, 0x7AC1, 0xB857, 0x7AC2, 0xB858, + 0x7AC3, 0xB859, 0x7AC4, 0xB85A, 0x7AC5, 0xB85B, 0x7AC6, 0xB85C, 0x7AC7, 0xB85D, 0x7AC8, 0xB85E, 0x7AC9, 0xB85F, 0x7ACA, 0xB860, + 0x7ACB, 0xC1A2, 0x7ACC, 0xB861, 0x7ACD, 0xB862, 0x7ACE, 0xB863, 0x7ACF, 0xB864, 0x7AD0, 0xB865, 0x7AD1, 0xB866, 0x7AD2, 0xB867, + 0x7AD3, 0xB868, 0x7AD4, 0xB869, 0x7AD5, 0xB86A, 0x7AD6, 0xCAFA, 0x7AD7, 0xB86B, 0x7AD8, 0xB86C, 0x7AD9, 0xD5BE, 0x7ADA, 0xB86D, + 0x7ADB, 0xB86E, 0x7ADC, 0xB86F, 0x7ADD, 0xB870, 0x7ADE, 0xBEBA, 0x7ADF, 0xBEB9, 0x7AE0, 0xD5C2, 0x7AE1, 0xB871, 0x7AE2, 0xB872, + 0x7AE3, 0xBFA2, 0x7AE4, 0xB873, 0x7AE5, 0xCDAF, 0x7AE6, 0xF1B5, 0x7AE7, 0xB874, 0x7AE8, 0xB875, 0x7AE9, 0xB876, 0x7AEA, 0xB877, + 0x7AEB, 0xB878, 0x7AEC, 0xB879, 0x7AED, 0xBDDF, 0x7AEE, 0xB87A, 0x7AEF, 0xB6CB, 0x7AF0, 0xB87B, 0x7AF1, 0xB87C, 0x7AF2, 0xB87D, + 0x7AF3, 0xB87E, 0x7AF4, 0xB880, 0x7AF5, 0xB881, 0x7AF6, 0xB882, 0x7AF7, 0xB883, 0x7AF8, 0xB884, 0x7AF9, 0xD6F1, 0x7AFA, 0xF3C3, + 0x7AFB, 0xB885, 0x7AFC, 0xB886, 0x7AFD, 0xF3C4, 0x7AFE, 0xB887, 0x7AFF, 0xB8CD, 0x7B00, 0xB888, 0x7B01, 0xB889, 0x7B02, 0xB88A, + 0x7B03, 0xF3C6, 0x7B04, 0xF3C7, 0x7B05, 0xB88B, 0x7B06, 0xB0CA, 0x7B07, 0xB88C, 0x7B08, 0xF3C5, 0x7B09, 0xB88D, 0x7B0A, 0xF3C9, + 0x7B0B, 0xCBF1, 0x7B0C, 0xB88E, 0x7B0D, 0xB88F, 0x7B0E, 0xB890, 0x7B0F, 0xF3CB, 0x7B10, 0xB891, 0x7B11, 0xD0A6, 0x7B12, 0xB892, + 0x7B13, 0xB893, 0x7B14, 0xB1CA, 0x7B15, 0xF3C8, 0x7B16, 0xB894, 0x7B17, 0xB895, 0x7B18, 0xB896, 0x7B19, 0xF3CF, 0x7B1A, 0xB897, + 0x7B1B, 0xB5D1, 0x7B1C, 0xB898, 0x7B1D, 0xB899, 0x7B1E, 0xF3D7, 0x7B1F, 0xB89A, 0x7B20, 0xF3D2, 0x7B21, 0xB89B, 0x7B22, 0xB89C, + 0x7B23, 0xB89D, 0x7B24, 0xF3D4, 0x7B25, 0xF3D3, 0x7B26, 0xB7FB, 0x7B27, 0xB89E, 0x7B28, 0xB1BF, 0x7B29, 0xB89F, 0x7B2A, 0xF3CE, + 0x7B2B, 0xF3CA, 0x7B2C, 0xB5DA, 0x7B2D, 0xB8A0, 0x7B2E, 0xF3D0, 0x7B2F, 0xB940, 0x7B30, 0xB941, 0x7B31, 0xF3D1, 0x7B32, 0xB942, + 0x7B33, 0xF3D5, 0x7B34, 0xB943, 0x7B35, 0xB944, 0x7B36, 0xB945, 0x7B37, 0xB946, 0x7B38, 0xF3CD, 0x7B39, 0xB947, 0x7B3A, 0xBCE3, + 0x7B3B, 0xB948, 0x7B3C, 0xC1FD, 0x7B3D, 0xB949, 0x7B3E, 0xF3D6, 0x7B3F, 0xB94A, 0x7B40, 0xB94B, 0x7B41, 0xB94C, 0x7B42, 0xB94D, + 0x7B43, 0xB94E, 0x7B44, 0xB94F, 0x7B45, 0xF3DA, 0x7B46, 0xB950, 0x7B47, 0xF3CC, 0x7B48, 0xB951, 0x7B49, 0xB5C8, 0x7B4A, 0xB952, + 0x7B4B, 0xBDEE, 0x7B4C, 0xF3DC, 0x7B4D, 0xB953, 0x7B4E, 0xB954, 0x7B4F, 0xB7A4, 0x7B50, 0xBFF0, 0x7B51, 0xD6FE, 0x7B52, 0xCDB2, + 0x7B53, 0xB955, 0x7B54, 0xB4F0, 0x7B55, 0xB956, 0x7B56, 0xB2DF, 0x7B57, 0xB957, 0x7B58, 0xF3D8, 0x7B59, 0xB958, 0x7B5A, 0xF3D9, + 0x7B5B, 0xC9B8, 0x7B5C, 0xB959, 0x7B5D, 0xF3DD, 0x7B5E, 0xB95A, 0x7B5F, 0xB95B, 0x7B60, 0xF3DE, 0x7B61, 0xB95C, 0x7B62, 0xF3E1, + 0x7B63, 0xB95D, 0x7B64, 0xB95E, 0x7B65, 0xB95F, 0x7B66, 0xB960, 0x7B67, 0xB961, 0x7B68, 0xB962, 0x7B69, 0xB963, 0x7B6A, 0xB964, + 0x7B6B, 0xB965, 0x7B6C, 0xB966, 0x7B6D, 0xB967, 0x7B6E, 0xF3DF, 0x7B6F, 0xB968, 0x7B70, 0xB969, 0x7B71, 0xF3E3, 0x7B72, 0xF3E2, + 0x7B73, 0xB96A, 0x7B74, 0xB96B, 0x7B75, 0xF3DB, 0x7B76, 0xB96C, 0x7B77, 0xBFEA, 0x7B78, 0xB96D, 0x7B79, 0xB3EF, 0x7B7A, 0xB96E, + 0x7B7B, 0xF3E0, 0x7B7C, 0xB96F, 0x7B7D, 0xB970, 0x7B7E, 0xC7A9, 0x7B7F, 0xB971, 0x7B80, 0xBCF2, 0x7B81, 0xB972, 0x7B82, 0xB973, + 0x7B83, 0xB974, 0x7B84, 0xB975, 0x7B85, 0xF3EB, 0x7B86, 0xB976, 0x7B87, 0xB977, 0x7B88, 0xB978, 0x7B89, 0xB979, 0x7B8A, 0xB97A, + 0x7B8B, 0xB97B, 0x7B8C, 0xB97C, 0x7B8D, 0xB9BF, 0x7B8E, 0xB97D, 0x7B8F, 0xB97E, 0x7B90, 0xF3E4, 0x7B91, 0xB980, 0x7B92, 0xB981, + 0x7B93, 0xB982, 0x7B94, 0xB2AD, 0x7B95, 0xBBFE, 0x7B96, 0xB983, 0x7B97, 0xCBE3, 0x7B98, 0xB984, 0x7B99, 0xB985, 0x7B9A, 0xB986, + 0x7B9B, 0xB987, 0x7B9C, 0xF3ED, 0x7B9D, 0xF3E9, 0x7B9E, 0xB988, 0x7B9F, 0xB989, 0x7BA0, 0xB98A, 0x7BA1, 0xB9DC, 0x7BA2, 0xF3EE, + 0x7BA3, 0xB98B, 0x7BA4, 0xB98C, 0x7BA5, 0xB98D, 0x7BA6, 0xF3E5, 0x7BA7, 0xF3E6, 0x7BA8, 0xF3EA, 0x7BA9, 0xC2E1, 0x7BAA, 0xF3EC, + 0x7BAB, 0xF3EF, 0x7BAC, 0xF3E8, 0x7BAD, 0xBCFD, 0x7BAE, 0xB98E, 0x7BAF, 0xB98F, 0x7BB0, 0xB990, 0x7BB1, 0xCFE4, 0x7BB2, 0xB991, + 0x7BB3, 0xB992, 0x7BB4, 0xF3F0, 0x7BB5, 0xB993, 0x7BB6, 0xB994, 0x7BB7, 0xB995, 0x7BB8, 0xF3E7, 0x7BB9, 0xB996, 0x7BBA, 0xB997, + 0x7BBB, 0xB998, 0x7BBC, 0xB999, 0x7BBD, 0xB99A, 0x7BBE, 0xB99B, 0x7BBF, 0xB99C, 0x7BC0, 0xB99D, 0x7BC1, 0xF3F2, 0x7BC2, 0xB99E, + 0x7BC3, 0xB99F, 0x7BC4, 0xB9A0, 0x7BC5, 0xBA40, 0x7BC6, 0xD7AD, 0x7BC7, 0xC6AA, 0x7BC8, 0xBA41, 0x7BC9, 0xBA42, 0x7BCA, 0xBA43, + 0x7BCB, 0xBA44, 0x7BCC, 0xF3F3, 0x7BCD, 0xBA45, 0x7BCE, 0xBA46, 0x7BCF, 0xBA47, 0x7BD0, 0xBA48, 0x7BD1, 0xF3F1, 0x7BD2, 0xBA49, + 0x7BD3, 0xC2A8, 0x7BD4, 0xBA4A, 0x7BD5, 0xBA4B, 0x7BD6, 0xBA4C, 0x7BD7, 0xBA4D, 0x7BD8, 0xBA4E, 0x7BD9, 0xB8DD, 0x7BDA, 0xF3F5, + 0x7BDB, 0xBA4F, 0x7BDC, 0xBA50, 0x7BDD, 0xF3F4, 0x7BDE, 0xBA51, 0x7BDF, 0xBA52, 0x7BE0, 0xBA53, 0x7BE1, 0xB4DB, 0x7BE2, 0xBA54, + 0x7BE3, 0xBA55, 0x7BE4, 0xBA56, 0x7BE5, 0xF3F6, 0x7BE6, 0xF3F7, 0x7BE7, 0xBA57, 0x7BE8, 0xBA58, 0x7BE9, 0xBA59, 0x7BEA, 0xF3F8, + 0x7BEB, 0xBA5A, 0x7BEC, 0xBA5B, 0x7BED, 0xBA5C, 0x7BEE, 0xC0BA, 0x7BEF, 0xBA5D, 0x7BF0, 0xBA5E, 0x7BF1, 0xC0E9, 0x7BF2, 0xBA5F, + 0x7BF3, 0xBA60, 0x7BF4, 0xBA61, 0x7BF5, 0xBA62, 0x7BF6, 0xBA63, 0x7BF7, 0xC5F1, 0x7BF8, 0xBA64, 0x7BF9, 0xBA65, 0x7BFA, 0xBA66, + 0x7BFB, 0xBA67, 0x7BFC, 0xF3FB, 0x7BFD, 0xBA68, 0x7BFE, 0xF3FA, 0x7BFF, 0xBA69, 0x7C00, 0xBA6A, 0x7C01, 0xBA6B, 0x7C02, 0xBA6C, + 0x7C03, 0xBA6D, 0x7C04, 0xBA6E, 0x7C05, 0xBA6F, 0x7C06, 0xBA70, 0x7C07, 0xB4D8, 0x7C08, 0xBA71, 0x7C09, 0xBA72, 0x7C0A, 0xBA73, + 0x7C0B, 0xF3FE, 0x7C0C, 0xF3F9, 0x7C0D, 0xBA74, 0x7C0E, 0xBA75, 0x7C0F, 0xF3FC, 0x7C10, 0xBA76, 0x7C11, 0xBA77, 0x7C12, 0xBA78, + 0x7C13, 0xBA79, 0x7C14, 0xBA7A, 0x7C15, 0xBA7B, 0x7C16, 0xF3FD, 0x7C17, 0xBA7C, 0x7C18, 0xBA7D, 0x7C19, 0xBA7E, 0x7C1A, 0xBA80, + 0x7C1B, 0xBA81, 0x7C1C, 0xBA82, 0x7C1D, 0xBA83, 0x7C1E, 0xBA84, 0x7C1F, 0xF4A1, 0x7C20, 0xBA85, 0x7C21, 0xBA86, 0x7C22, 0xBA87, + 0x7C23, 0xBA88, 0x7C24, 0xBA89, 0x7C25, 0xBA8A, 0x7C26, 0xF4A3, 0x7C27, 0xBBC9, 0x7C28, 0xBA8B, 0x7C29, 0xBA8C, 0x7C2A, 0xF4A2, + 0x7C2B, 0xBA8D, 0x7C2C, 0xBA8E, 0x7C2D, 0xBA8F, 0x7C2E, 0xBA90, 0x7C2F, 0xBA91, 0x7C30, 0xBA92, 0x7C31, 0xBA93, 0x7C32, 0xBA94, + 0x7C33, 0xBA95, 0x7C34, 0xBA96, 0x7C35, 0xBA97, 0x7C36, 0xBA98, 0x7C37, 0xBA99, 0x7C38, 0xF4A4, 0x7C39, 0xBA9A, 0x7C3A, 0xBA9B, + 0x7C3B, 0xBA9C, 0x7C3C, 0xBA9D, 0x7C3D, 0xBA9E, 0x7C3E, 0xBA9F, 0x7C3F, 0xB2BE, 0x7C40, 0xF4A6, 0x7C41, 0xF4A5, 0x7C42, 0xBAA0, + 0x7C43, 0xBB40, 0x7C44, 0xBB41, 0x7C45, 0xBB42, 0x7C46, 0xBB43, 0x7C47, 0xBB44, 0x7C48, 0xBB45, 0x7C49, 0xBB46, 0x7C4A, 0xBB47, + 0x7C4B, 0xBB48, 0x7C4C, 0xBB49, 0x7C4D, 0xBCAE, 0x7C4E, 0xBB4A, 0x7C4F, 0xBB4B, 0x7C50, 0xBB4C, 0x7C51, 0xBB4D, 0x7C52, 0xBB4E, + 0x7C53, 0xBB4F, 0x7C54, 0xBB50, 0x7C55, 0xBB51, 0x7C56, 0xBB52, 0x7C57, 0xBB53, 0x7C58, 0xBB54, 0x7C59, 0xBB55, 0x7C5A, 0xBB56, + 0x7C5B, 0xBB57, 0x7C5C, 0xBB58, 0x7C5D, 0xBB59, 0x7C5E, 0xBB5A, 0x7C5F, 0xBB5B, 0x7C60, 0xBB5C, 0x7C61, 0xBB5D, 0x7C62, 0xBB5E, + 0x7C63, 0xBB5F, 0x7C64, 0xBB60, 0x7C65, 0xBB61, 0x7C66, 0xBB62, 0x7C67, 0xBB63, 0x7C68, 0xBB64, 0x7C69, 0xBB65, 0x7C6A, 0xBB66, + 0x7C6B, 0xBB67, 0x7C6C, 0xBB68, 0x7C6D, 0xBB69, 0x7C6E, 0xBB6A, 0x7C6F, 0xBB6B, 0x7C70, 0xBB6C, 0x7C71, 0xBB6D, 0x7C72, 0xBB6E, + 0x7C73, 0xC3D7, 0x7C74, 0xD9E1, 0x7C75, 0xBB6F, 0x7C76, 0xBB70, 0x7C77, 0xBB71, 0x7C78, 0xBB72, 0x7C79, 0xBB73, 0x7C7A, 0xBB74, + 0x7C7B, 0xC0E0, 0x7C7C, 0xF4CC, 0x7C7D, 0xD7D1, 0x7C7E, 0xBB75, 0x7C7F, 0xBB76, 0x7C80, 0xBB77, 0x7C81, 0xBB78, 0x7C82, 0xBB79, + 0x7C83, 0xBB7A, 0x7C84, 0xBB7B, 0x7C85, 0xBB7C, 0x7C86, 0xBB7D, 0x7C87, 0xBB7E, 0x7C88, 0xBB80, 0x7C89, 0xB7DB, 0x7C8A, 0xBB81, + 0x7C8B, 0xBB82, 0x7C8C, 0xBB83, 0x7C8D, 0xBB84, 0x7C8E, 0xBB85, 0x7C8F, 0xBB86, 0x7C90, 0xBB87, 0x7C91, 0xF4CE, 0x7C92, 0xC1A3, + 0x7C93, 0xBB88, 0x7C94, 0xBB89, 0x7C95, 0xC6C9, 0x7C96, 0xBB8A, 0x7C97, 0xB4D6, 0x7C98, 0xD5B3, 0x7C99, 0xBB8B, 0x7C9A, 0xBB8C, + 0x7C9B, 0xBB8D, 0x7C9C, 0xF4D0, 0x7C9D, 0xF4CF, 0x7C9E, 0xF4D1, 0x7C9F, 0xCBDA, 0x7CA0, 0xBB8E, 0x7CA1, 0xBB8F, 0x7CA2, 0xF4D2, + 0x7CA3, 0xBB90, 0x7CA4, 0xD4C1, 0x7CA5, 0xD6E0, 0x7CA6, 0xBB91, 0x7CA7, 0xBB92, 0x7CA8, 0xBB93, 0x7CA9, 0xBB94, 0x7CAA, 0xB7E0, + 0x7CAB, 0xBB95, 0x7CAC, 0xBB96, 0x7CAD, 0xBB97, 0x7CAE, 0xC1B8, 0x7CAF, 0xBB98, 0x7CB0, 0xBB99, 0x7CB1, 0xC1BB, 0x7CB2, 0xF4D3, + 0x7CB3, 0xBEAC, 0x7CB4, 0xBB9A, 0x7CB5, 0xBB9B, 0x7CB6, 0xBB9C, 0x7CB7, 0xBB9D, 0x7CB8, 0xBB9E, 0x7CB9, 0xB4E2, 0x7CBA, 0xBB9F, + 0x7CBB, 0xBBA0, 0x7CBC, 0xF4D4, 0x7CBD, 0xF4D5, 0x7CBE, 0xBEAB, 0x7CBF, 0xBC40, 0x7CC0, 0xBC41, 0x7CC1, 0xF4D6, 0x7CC2, 0xBC42, + 0x7CC3, 0xBC43, 0x7CC4, 0xBC44, 0x7CC5, 0xF4DB, 0x7CC6, 0xBC45, 0x7CC7, 0xF4D7, 0x7CC8, 0xF4DA, 0x7CC9, 0xBC46, 0x7CCA, 0xBAFD, + 0x7CCB, 0xBC47, 0x7CCC, 0xF4D8, 0x7CCD, 0xF4D9, 0x7CCE, 0xBC48, 0x7CCF, 0xBC49, 0x7CD0, 0xBC4A, 0x7CD1, 0xBC4B, 0x7CD2, 0xBC4C, + 0x7CD3, 0xBC4D, 0x7CD4, 0xBC4E, 0x7CD5, 0xB8E2, 0x7CD6, 0xCCC7, 0x7CD7, 0xF4DC, 0x7CD8, 0xBC4F, 0x7CD9, 0xB2DA, 0x7CDA, 0xBC50, + 0x7CDB, 0xBC51, 0x7CDC, 0xC3D3, 0x7CDD, 0xBC52, 0x7CDE, 0xBC53, 0x7CDF, 0xD4E3, 0x7CE0, 0xBFB7, 0x7CE1, 0xBC54, 0x7CE2, 0xBC55, + 0x7CE3, 0xBC56, 0x7CE4, 0xBC57, 0x7CE5, 0xBC58, 0x7CE6, 0xBC59, 0x7CE7, 0xBC5A, 0x7CE8, 0xF4DD, 0x7CE9, 0xBC5B, 0x7CEA, 0xBC5C, + 0x7CEB, 0xBC5D, 0x7CEC, 0xBC5E, 0x7CED, 0xBC5F, 0x7CEE, 0xBC60, 0x7CEF, 0xC5B4, 0x7CF0, 0xBC61, 0x7CF1, 0xBC62, 0x7CF2, 0xBC63, + 0x7CF3, 0xBC64, 0x7CF4, 0xBC65, 0x7CF5, 0xBC66, 0x7CF6, 0xBC67, 0x7CF7, 0xBC68, 0x7CF8, 0xF4E9, 0x7CF9, 0xBC69, 0x7CFA, 0xBC6A, + 0x7CFB, 0xCFB5, 0x7CFC, 0xBC6B, 0x7CFD, 0xBC6C, 0x7CFE, 0xBC6D, 0x7CFF, 0xBC6E, 0x7D00, 0xBC6F, 0x7D01, 0xBC70, 0x7D02, 0xBC71, + 0x7D03, 0xBC72, 0x7D04, 0xBC73, 0x7D05, 0xBC74, 0x7D06, 0xBC75, 0x7D07, 0xBC76, 0x7D08, 0xBC77, 0x7D09, 0xBC78, 0x7D0A, 0xCEC9, + 0x7D0B, 0xBC79, 0x7D0C, 0xBC7A, 0x7D0D, 0xBC7B, 0x7D0E, 0xBC7C, 0x7D0F, 0xBC7D, 0x7D10, 0xBC7E, 0x7D11, 0xBC80, 0x7D12, 0xBC81, + 0x7D13, 0xBC82, 0x7D14, 0xBC83, 0x7D15, 0xBC84, 0x7D16, 0xBC85, 0x7D17, 0xBC86, 0x7D18, 0xBC87, 0x7D19, 0xBC88, 0x7D1A, 0xBC89, + 0x7D1B, 0xBC8A, 0x7D1C, 0xBC8B, 0x7D1D, 0xBC8C, 0x7D1E, 0xBC8D, 0x7D1F, 0xBC8E, 0x7D20, 0xCBD8, 0x7D21, 0xBC8F, 0x7D22, 0xCBF7, + 0x7D23, 0xBC90, 0x7D24, 0xBC91, 0x7D25, 0xBC92, 0x7D26, 0xBC93, 0x7D27, 0xBDF4, 0x7D28, 0xBC94, 0x7D29, 0xBC95, 0x7D2A, 0xBC96, + 0x7D2B, 0xD7CF, 0x7D2C, 0xBC97, 0x7D2D, 0xBC98, 0x7D2E, 0xBC99, 0x7D2F, 0xC0DB, 0x7D30, 0xBC9A, 0x7D31, 0xBC9B, 0x7D32, 0xBC9C, + 0x7D33, 0xBC9D, 0x7D34, 0xBC9E, 0x7D35, 0xBC9F, 0x7D36, 0xBCA0, 0x7D37, 0xBD40, 0x7D38, 0xBD41, 0x7D39, 0xBD42, 0x7D3A, 0xBD43, + 0x7D3B, 0xBD44, 0x7D3C, 0xBD45, 0x7D3D, 0xBD46, 0x7D3E, 0xBD47, 0x7D3F, 0xBD48, 0x7D40, 0xBD49, 0x7D41, 0xBD4A, 0x7D42, 0xBD4B, + 0x7D43, 0xBD4C, 0x7D44, 0xBD4D, 0x7D45, 0xBD4E, 0x7D46, 0xBD4F, 0x7D47, 0xBD50, 0x7D48, 0xBD51, 0x7D49, 0xBD52, 0x7D4A, 0xBD53, + 0x7D4B, 0xBD54, 0x7D4C, 0xBD55, 0x7D4D, 0xBD56, 0x7D4E, 0xBD57, 0x7D4F, 0xBD58, 0x7D50, 0xBD59, 0x7D51, 0xBD5A, 0x7D52, 0xBD5B, + 0x7D53, 0xBD5C, 0x7D54, 0xBD5D, 0x7D55, 0xBD5E, 0x7D56, 0xBD5F, 0x7D57, 0xBD60, 0x7D58, 0xBD61, 0x7D59, 0xBD62, 0x7D5A, 0xBD63, + 0x7D5B, 0xBD64, 0x7D5C, 0xBD65, 0x7D5D, 0xBD66, 0x7D5E, 0xBD67, 0x7D5F, 0xBD68, 0x7D60, 0xBD69, 0x7D61, 0xBD6A, 0x7D62, 0xBD6B, + 0x7D63, 0xBD6C, 0x7D64, 0xBD6D, 0x7D65, 0xBD6E, 0x7D66, 0xBD6F, 0x7D67, 0xBD70, 0x7D68, 0xBD71, 0x7D69, 0xBD72, 0x7D6A, 0xBD73, + 0x7D6B, 0xBD74, 0x7D6C, 0xBD75, 0x7D6D, 0xBD76, 0x7D6E, 0xD0F5, 0x7D6F, 0xBD77, 0x7D70, 0xBD78, 0x7D71, 0xBD79, 0x7D72, 0xBD7A, + 0x7D73, 0xBD7B, 0x7D74, 0xBD7C, 0x7D75, 0xBD7D, 0x7D76, 0xBD7E, 0x7D77, 0xF4EA, 0x7D78, 0xBD80, 0x7D79, 0xBD81, 0x7D7A, 0xBD82, + 0x7D7B, 0xBD83, 0x7D7C, 0xBD84, 0x7D7D, 0xBD85, 0x7D7E, 0xBD86, 0x7D7F, 0xBD87, 0x7D80, 0xBD88, 0x7D81, 0xBD89, 0x7D82, 0xBD8A, + 0x7D83, 0xBD8B, 0x7D84, 0xBD8C, 0x7D85, 0xBD8D, 0x7D86, 0xBD8E, 0x7D87, 0xBD8F, 0x7D88, 0xBD90, 0x7D89, 0xBD91, 0x7D8A, 0xBD92, + 0x7D8B, 0xBD93, 0x7D8C, 0xBD94, 0x7D8D, 0xBD95, 0x7D8E, 0xBD96, 0x7D8F, 0xBD97, 0x7D90, 0xBD98, 0x7D91, 0xBD99, 0x7D92, 0xBD9A, + 0x7D93, 0xBD9B, 0x7D94, 0xBD9C, 0x7D95, 0xBD9D, 0x7D96, 0xBD9E, 0x7D97, 0xBD9F, 0x7D98, 0xBDA0, 0x7D99, 0xBE40, 0x7D9A, 0xBE41, + 0x7D9B, 0xBE42, 0x7D9C, 0xBE43, 0x7D9D, 0xBE44, 0x7D9E, 0xBE45, 0x7D9F, 0xBE46, 0x7DA0, 0xBE47, 0x7DA1, 0xBE48, 0x7DA2, 0xBE49, + 0x7DA3, 0xBE4A, 0x7DA4, 0xBE4B, 0x7DA5, 0xBE4C, 0x7DA6, 0xF4EB, 0x7DA7, 0xBE4D, 0x7DA8, 0xBE4E, 0x7DA9, 0xBE4F, 0x7DAA, 0xBE50, + 0x7DAB, 0xBE51, 0x7DAC, 0xBE52, 0x7DAD, 0xBE53, 0x7DAE, 0xF4EC, 0x7DAF, 0xBE54, 0x7DB0, 0xBE55, 0x7DB1, 0xBE56, 0x7DB2, 0xBE57, + 0x7DB3, 0xBE58, 0x7DB4, 0xBE59, 0x7DB5, 0xBE5A, 0x7DB6, 0xBE5B, 0x7DB7, 0xBE5C, 0x7DB8, 0xBE5D, 0x7DB9, 0xBE5E, 0x7DBA, 0xBE5F, + 0x7DBB, 0xBE60, 0x7DBC, 0xBE61, 0x7DBD, 0xBE62, 0x7DBE, 0xBE63, 0x7DBF, 0xBE64, 0x7DC0, 0xBE65, 0x7DC1, 0xBE66, 0x7DC2, 0xBE67, + 0x7DC3, 0xBE68, 0x7DC4, 0xBE69, 0x7DC5, 0xBE6A, 0x7DC6, 0xBE6B, 0x7DC7, 0xBE6C, 0x7DC8, 0xBE6D, 0x7DC9, 0xBE6E, 0x7DCA, 0xBE6F, + 0x7DCB, 0xBE70, 0x7DCC, 0xBE71, 0x7DCD, 0xBE72, 0x7DCE, 0xBE73, 0x7DCF, 0xBE74, 0x7DD0, 0xBE75, 0x7DD1, 0xBE76, 0x7DD2, 0xBE77, + 0x7DD3, 0xBE78, 0x7DD4, 0xBE79, 0x7DD5, 0xBE7A, 0x7DD6, 0xBE7B, 0x7DD7, 0xBE7C, 0x7DD8, 0xBE7D, 0x7DD9, 0xBE7E, 0x7DDA, 0xBE80, + 0x7DDB, 0xBE81, 0x7DDC, 0xBE82, 0x7DDD, 0xBE83, 0x7DDE, 0xBE84, 0x7DDF, 0xBE85, 0x7DE0, 0xBE86, 0x7DE1, 0xBE87, 0x7DE2, 0xBE88, + 0x7DE3, 0xBE89, 0x7DE4, 0xBE8A, 0x7DE5, 0xBE8B, 0x7DE6, 0xBE8C, 0x7DE7, 0xBE8D, 0x7DE8, 0xBE8E, 0x7DE9, 0xBE8F, 0x7DEA, 0xBE90, + 0x7DEB, 0xBE91, 0x7DEC, 0xBE92, 0x7DED, 0xBE93, 0x7DEE, 0xBE94, 0x7DEF, 0xBE95, 0x7DF0, 0xBE96, 0x7DF1, 0xBE97, 0x7DF2, 0xBE98, + 0x7DF3, 0xBE99, 0x7DF4, 0xBE9A, 0x7DF5, 0xBE9B, 0x7DF6, 0xBE9C, 0x7DF7, 0xBE9D, 0x7DF8, 0xBE9E, 0x7DF9, 0xBE9F, 0x7DFA, 0xBEA0, + 0x7DFB, 0xBF40, 0x7DFC, 0xBF41, 0x7DFD, 0xBF42, 0x7DFE, 0xBF43, 0x7DFF, 0xBF44, 0x7E00, 0xBF45, 0x7E01, 0xBF46, 0x7E02, 0xBF47, + 0x7E03, 0xBF48, 0x7E04, 0xBF49, 0x7E05, 0xBF4A, 0x7E06, 0xBF4B, 0x7E07, 0xBF4C, 0x7E08, 0xBF4D, 0x7E09, 0xBF4E, 0x7E0A, 0xBF4F, + 0x7E0B, 0xBF50, 0x7E0C, 0xBF51, 0x7E0D, 0xBF52, 0x7E0E, 0xBF53, 0x7E0F, 0xBF54, 0x7E10, 0xBF55, 0x7E11, 0xBF56, 0x7E12, 0xBF57, + 0x7E13, 0xBF58, 0x7E14, 0xBF59, 0x7E15, 0xBF5A, 0x7E16, 0xBF5B, 0x7E17, 0xBF5C, 0x7E18, 0xBF5D, 0x7E19, 0xBF5E, 0x7E1A, 0xBF5F, + 0x7E1B, 0xBF60, 0x7E1C, 0xBF61, 0x7E1D, 0xBF62, 0x7E1E, 0xBF63, 0x7E1F, 0xBF64, 0x7E20, 0xBF65, 0x7E21, 0xBF66, 0x7E22, 0xBF67, + 0x7E23, 0xBF68, 0x7E24, 0xBF69, 0x7E25, 0xBF6A, 0x7E26, 0xBF6B, 0x7E27, 0xBF6C, 0x7E28, 0xBF6D, 0x7E29, 0xBF6E, 0x7E2A, 0xBF6F, + 0x7E2B, 0xBF70, 0x7E2C, 0xBF71, 0x7E2D, 0xBF72, 0x7E2E, 0xBF73, 0x7E2F, 0xBF74, 0x7E30, 0xBF75, 0x7E31, 0xBF76, 0x7E32, 0xBF77, + 0x7E33, 0xBF78, 0x7E34, 0xBF79, 0x7E35, 0xBF7A, 0x7E36, 0xBF7B, 0x7E37, 0xBF7C, 0x7E38, 0xBF7D, 0x7E39, 0xBF7E, 0x7E3A, 0xBF80, + 0x7E3B, 0xF7E3, 0x7E3C, 0xBF81, 0x7E3D, 0xBF82, 0x7E3E, 0xBF83, 0x7E3F, 0xBF84, 0x7E40, 0xBF85, 0x7E41, 0xB7B1, 0x7E42, 0xBF86, + 0x7E43, 0xBF87, 0x7E44, 0xBF88, 0x7E45, 0xBF89, 0x7E46, 0xBF8A, 0x7E47, 0xF4ED, 0x7E48, 0xBF8B, 0x7E49, 0xBF8C, 0x7E4A, 0xBF8D, + 0x7E4B, 0xBF8E, 0x7E4C, 0xBF8F, 0x7E4D, 0xBF90, 0x7E4E, 0xBF91, 0x7E4F, 0xBF92, 0x7E50, 0xBF93, 0x7E51, 0xBF94, 0x7E52, 0xBF95, + 0x7E53, 0xBF96, 0x7E54, 0xBF97, 0x7E55, 0xBF98, 0x7E56, 0xBF99, 0x7E57, 0xBF9A, 0x7E58, 0xBF9B, 0x7E59, 0xBF9C, 0x7E5A, 0xBF9D, + 0x7E5B, 0xBF9E, 0x7E5C, 0xBF9F, 0x7E5D, 0xBFA0, 0x7E5E, 0xC040, 0x7E5F, 0xC041, 0x7E60, 0xC042, 0x7E61, 0xC043, 0x7E62, 0xC044, + 0x7E63, 0xC045, 0x7E64, 0xC046, 0x7E65, 0xC047, 0x7E66, 0xC048, 0x7E67, 0xC049, 0x7E68, 0xC04A, 0x7E69, 0xC04B, 0x7E6A, 0xC04C, + 0x7E6B, 0xC04D, 0x7E6C, 0xC04E, 0x7E6D, 0xC04F, 0x7E6E, 0xC050, 0x7E6F, 0xC051, 0x7E70, 0xC052, 0x7E71, 0xC053, 0x7E72, 0xC054, + 0x7E73, 0xC055, 0x7E74, 0xC056, 0x7E75, 0xC057, 0x7E76, 0xC058, 0x7E77, 0xC059, 0x7E78, 0xC05A, 0x7E79, 0xC05B, 0x7E7A, 0xC05C, + 0x7E7B, 0xC05D, 0x7E7C, 0xC05E, 0x7E7D, 0xC05F, 0x7E7E, 0xC060, 0x7E7F, 0xC061, 0x7E80, 0xC062, 0x7E81, 0xC063, 0x7E82, 0xD7EB, + 0x7E83, 0xC064, 0x7E84, 0xC065, 0x7E85, 0xC066, 0x7E86, 0xC067, 0x7E87, 0xC068, 0x7E88, 0xC069, 0x7E89, 0xC06A, 0x7E8A, 0xC06B, + 0x7E8B, 0xC06C, 0x7E8C, 0xC06D, 0x7E8D, 0xC06E, 0x7E8E, 0xC06F, 0x7E8F, 0xC070, 0x7E90, 0xC071, 0x7E91, 0xC072, 0x7E92, 0xC073, + 0x7E93, 0xC074, 0x7E94, 0xC075, 0x7E95, 0xC076, 0x7E96, 0xC077, 0x7E97, 0xC078, 0x7E98, 0xC079, 0x7E99, 0xC07A, 0x7E9A, 0xC07B, + 0x7E9B, 0xF4EE, 0x7E9C, 0xC07C, 0x7E9D, 0xC07D, 0x7E9E, 0xC07E, 0x7E9F, 0xE6F9, 0x7EA0, 0xBEC0, 0x7EA1, 0xE6FA, 0x7EA2, 0xBAEC, + 0x7EA3, 0xE6FB, 0x7EA4, 0xCFCB, 0x7EA5, 0xE6FC, 0x7EA6, 0xD4BC, 0x7EA7, 0xBCB6, 0x7EA8, 0xE6FD, 0x7EA9, 0xE6FE, 0x7EAA, 0xBCCD, + 0x7EAB, 0xC8D2, 0x7EAC, 0xCEB3, 0x7EAD, 0xE7A1, 0x7EAE, 0xC080, 0x7EAF, 0xB4BF, 0x7EB0, 0xE7A2, 0x7EB1, 0xC9B4, 0x7EB2, 0xB8D9, + 0x7EB3, 0xC4C9, 0x7EB4, 0xC081, 0x7EB5, 0xD7DD, 0x7EB6, 0xC2DA, 0x7EB7, 0xB7D7, 0x7EB8, 0xD6BD, 0x7EB9, 0xCEC6, 0x7EBA, 0xB7C4, + 0x7EBB, 0xC082, 0x7EBC, 0xC083, 0x7EBD, 0xC5A6, 0x7EBE, 0xE7A3, 0x7EBF, 0xCFDF, 0x7EC0, 0xE7A4, 0x7EC1, 0xE7A5, 0x7EC2, 0xE7A6, + 0x7EC3, 0xC1B7, 0x7EC4, 0xD7E9, 0x7EC5, 0xC9F0, 0x7EC6, 0xCFB8, 0x7EC7, 0xD6AF, 0x7EC8, 0xD6D5, 0x7EC9, 0xE7A7, 0x7ECA, 0xB0ED, + 0x7ECB, 0xE7A8, 0x7ECC, 0xE7A9, 0x7ECD, 0xC9DC, 0x7ECE, 0xD2EF, 0x7ECF, 0xBEAD, 0x7ED0, 0xE7AA, 0x7ED1, 0xB0F3, 0x7ED2, 0xC8DE, + 0x7ED3, 0xBDE1, 0x7ED4, 0xE7AB, 0x7ED5, 0xC8C6, 0x7ED6, 0xC084, 0x7ED7, 0xE7AC, 0x7ED8, 0xBBE6, 0x7ED9, 0xB8F8, 0x7EDA, 0xD1A4, + 0x7EDB, 0xE7AD, 0x7EDC, 0xC2E7, 0x7EDD, 0xBEF8, 0x7EDE, 0xBDCA, 0x7EDF, 0xCDB3, 0x7EE0, 0xE7AE, 0x7EE1, 0xE7AF, 0x7EE2, 0xBEEE, + 0x7EE3, 0xD0E5, 0x7EE4, 0xC085, 0x7EE5, 0xCBE7, 0x7EE6, 0xCCD0, 0x7EE7, 0xBCCC, 0x7EE8, 0xE7B0, 0x7EE9, 0xBCA8, 0x7EEA, 0xD0F7, + 0x7EEB, 0xE7B1, 0x7EEC, 0xC086, 0x7EED, 0xD0F8, 0x7EEE, 0xE7B2, 0x7EEF, 0xE7B3, 0x7EF0, 0xB4C2, 0x7EF1, 0xE7B4, 0x7EF2, 0xE7B5, + 0x7EF3, 0xC9FE, 0x7EF4, 0xCEAC, 0x7EF5, 0xC3E0, 0x7EF6, 0xE7B7, 0x7EF7, 0xB1C1, 0x7EF8, 0xB3F1, 0x7EF9, 0xC087, 0x7EFA, 0xE7B8, + 0x7EFB, 0xE7B9, 0x7EFC, 0xD7DB, 0x7EFD, 0xD5C0, 0x7EFE, 0xE7BA, 0x7EFF, 0xC2CC, 0x7F00, 0xD7BA, 0x7F01, 0xE7BB, 0x7F02, 0xE7BC, + 0x7F03, 0xE7BD, 0x7F04, 0xBCEA, 0x7F05, 0xC3E5, 0x7F06, 0xC0C2, 0x7F07, 0xE7BE, 0x7F08, 0xE7BF, 0x7F09, 0xBCA9, 0x7F0A, 0xC088, + 0x7F0B, 0xE7C0, 0x7F0C, 0xE7C1, 0x7F0D, 0xE7B6, 0x7F0E, 0xB6D0, 0x7F0F, 0xE7C2, 0x7F10, 0xC089, 0x7F11, 0xE7C3, 0x7F12, 0xE7C4, + 0x7F13, 0xBBBA, 0x7F14, 0xB5DE, 0x7F15, 0xC2C6, 0x7F16, 0xB1E0, 0x7F17, 0xE7C5, 0x7F18, 0xD4B5, 0x7F19, 0xE7C6, 0x7F1A, 0xB8BF, + 0x7F1B, 0xE7C8, 0x7F1C, 0xE7C7, 0x7F1D, 0xB7EC, 0x7F1E, 0xC08A, 0x7F1F, 0xE7C9, 0x7F20, 0xB2F8, 0x7F21, 0xE7CA, 0x7F22, 0xE7CB, + 0x7F23, 0xE7CC, 0x7F24, 0xE7CD, 0x7F25, 0xE7CE, 0x7F26, 0xE7CF, 0x7F27, 0xE7D0, 0x7F28, 0xD3A7, 0x7F29, 0xCBF5, 0x7F2A, 0xE7D1, + 0x7F2B, 0xE7D2, 0x7F2C, 0xE7D3, 0x7F2D, 0xE7D4, 0x7F2E, 0xC9C9, 0x7F2F, 0xE7D5, 0x7F30, 0xE7D6, 0x7F31, 0xE7D7, 0x7F32, 0xE7D8, + 0x7F33, 0xE7D9, 0x7F34, 0xBDC9, 0x7F35, 0xE7DA, 0x7F36, 0xF3BE, 0x7F37, 0xC08B, 0x7F38, 0xB8D7, 0x7F39, 0xC08C, 0x7F3A, 0xC8B1, + 0x7F3B, 0xC08D, 0x7F3C, 0xC08E, 0x7F3D, 0xC08F, 0x7F3E, 0xC090, 0x7F3F, 0xC091, 0x7F40, 0xC092, 0x7F41, 0xC093, 0x7F42, 0xF3BF, + 0x7F43, 0xC094, 0x7F44, 0xF3C0, 0x7F45, 0xF3C1, 0x7F46, 0xC095, 0x7F47, 0xC096, 0x7F48, 0xC097, 0x7F49, 0xC098, 0x7F4A, 0xC099, + 0x7F4B, 0xC09A, 0x7F4C, 0xC09B, 0x7F4D, 0xC09C, 0x7F4E, 0xC09D, 0x7F4F, 0xC09E, 0x7F50, 0xB9DE, 0x7F51, 0xCDF8, 0x7F52, 0xC09F, + 0x7F53, 0xC0A0, 0x7F54, 0xD8E8, 0x7F55, 0xBAB1, 0x7F56, 0xC140, 0x7F57, 0xC2DE, 0x7F58, 0xEEB7, 0x7F59, 0xC141, 0x7F5A, 0xB7A3, + 0x7F5B, 0xC142, 0x7F5C, 0xC143, 0x7F5D, 0xC144, 0x7F5E, 0xC145, 0x7F5F, 0xEEB9, 0x7F60, 0xC146, 0x7F61, 0xEEB8, 0x7F62, 0xB0D5, + 0x7F63, 0xC147, 0x7F64, 0xC148, 0x7F65, 0xC149, 0x7F66, 0xC14A, 0x7F67, 0xC14B, 0x7F68, 0xEEBB, 0x7F69, 0xD5D6, 0x7F6A, 0xD7EF, + 0x7F6B, 0xC14C, 0x7F6C, 0xC14D, 0x7F6D, 0xC14E, 0x7F6E, 0xD6C3, 0x7F6F, 0xC14F, 0x7F70, 0xC150, 0x7F71, 0xEEBD, 0x7F72, 0xCAF0, + 0x7F73, 0xC151, 0x7F74, 0xEEBC, 0x7F75, 0xC152, 0x7F76, 0xC153, 0x7F77, 0xC154, 0x7F78, 0xC155, 0x7F79, 0xEEBE, 0x7F7A, 0xC156, + 0x7F7B, 0xC157, 0x7F7C, 0xC158, 0x7F7D, 0xC159, 0x7F7E, 0xEEC0, 0x7F7F, 0xC15A, 0x7F80, 0xC15B, 0x7F81, 0xEEBF, 0x7F82, 0xC15C, + 0x7F83, 0xC15D, 0x7F84, 0xC15E, 0x7F85, 0xC15F, 0x7F86, 0xC160, 0x7F87, 0xC161, 0x7F88, 0xC162, 0x7F89, 0xC163, 0x7F8A, 0xD1F2, + 0x7F8B, 0xC164, 0x7F8C, 0xC7BC, 0x7F8D, 0xC165, 0x7F8E, 0xC3C0, 0x7F8F, 0xC166, 0x7F90, 0xC167, 0x7F91, 0xC168, 0x7F92, 0xC169, + 0x7F93, 0xC16A, 0x7F94, 0xB8E1, 0x7F95, 0xC16B, 0x7F96, 0xC16C, 0x7F97, 0xC16D, 0x7F98, 0xC16E, 0x7F99, 0xC16F, 0x7F9A, 0xC1E7, + 0x7F9B, 0xC170, 0x7F9C, 0xC171, 0x7F9D, 0xF4C6, 0x7F9E, 0xD0DF, 0x7F9F, 0xF4C7, 0x7FA0, 0xC172, 0x7FA1, 0xCFDB, 0x7FA2, 0xC173, + 0x7FA3, 0xC174, 0x7FA4, 0xC8BA, 0x7FA5, 0xC175, 0x7FA6, 0xC176, 0x7FA7, 0xF4C8, 0x7FA8, 0xC177, 0x7FA9, 0xC178, 0x7FAA, 0xC179, + 0x7FAB, 0xC17A, 0x7FAC, 0xC17B, 0x7FAD, 0xC17C, 0x7FAE, 0xC17D, 0x7FAF, 0xF4C9, 0x7FB0, 0xF4CA, 0x7FB1, 0xC17E, 0x7FB2, 0xF4CB, + 0x7FB3, 0xC180, 0x7FB4, 0xC181, 0x7FB5, 0xC182, 0x7FB6, 0xC183, 0x7FB7, 0xC184, 0x7FB8, 0xD9FA, 0x7FB9, 0xB8FE, 0x7FBA, 0xC185, + 0x7FBB, 0xC186, 0x7FBC, 0xE5F1, 0x7FBD, 0xD3F0, 0x7FBE, 0xC187, 0x7FBF, 0xF4E0, 0x7FC0, 0xC188, 0x7FC1, 0xCECC, 0x7FC2, 0xC189, + 0x7FC3, 0xC18A, 0x7FC4, 0xC18B, 0x7FC5, 0xB3E1, 0x7FC6, 0xC18C, 0x7FC7, 0xC18D, 0x7FC8, 0xC18E, 0x7FC9, 0xC18F, 0x7FCA, 0xF1B4, + 0x7FCB, 0xC190, 0x7FCC, 0xD2EE, 0x7FCD, 0xC191, 0x7FCE, 0xF4E1, 0x7FCF, 0xC192, 0x7FD0, 0xC193, 0x7FD1, 0xC194, 0x7FD2, 0xC195, + 0x7FD3, 0xC196, 0x7FD4, 0xCFE8, 0x7FD5, 0xF4E2, 0x7FD6, 0xC197, 0x7FD7, 0xC198, 0x7FD8, 0xC7CC, 0x7FD9, 0xC199, 0x7FDA, 0xC19A, + 0x7FDB, 0xC19B, 0x7FDC, 0xC19C, 0x7FDD, 0xC19D, 0x7FDE, 0xC19E, 0x7FDF, 0xB5D4, 0x7FE0, 0xB4E4, 0x7FE1, 0xF4E4, 0x7FE2, 0xC19F, + 0x7FE3, 0xC1A0, 0x7FE4, 0xC240, 0x7FE5, 0xF4E3, 0x7FE6, 0xF4E5, 0x7FE7, 0xC241, 0x7FE8, 0xC242, 0x7FE9, 0xF4E6, 0x7FEA, 0xC243, + 0x7FEB, 0xC244, 0x7FEC, 0xC245, 0x7FED, 0xC246, 0x7FEE, 0xF4E7, 0x7FEF, 0xC247, 0x7FF0, 0xBAB2, 0x7FF1, 0xB0BF, 0x7FF2, 0xC248, + 0x7FF3, 0xF4E8, 0x7FF4, 0xC249, 0x7FF5, 0xC24A, 0x7FF6, 0xC24B, 0x7FF7, 0xC24C, 0x7FF8, 0xC24D, 0x7FF9, 0xC24E, 0x7FFA, 0xC24F, + 0x7FFB, 0xB7AD, 0x7FFC, 0xD2ED, 0x7FFD, 0xC250, 0x7FFE, 0xC251, 0x7FFF, 0xC252, 0x8000, 0xD2AB, 0x8001, 0xC0CF, 0x8002, 0xC253, + 0x8003, 0xBFBC, 0x8004, 0xEBA3, 0x8005, 0xD5DF, 0x8006, 0xEAC8, 0x8007, 0xC254, 0x8008, 0xC255, 0x8009, 0xC256, 0x800A, 0xC257, + 0x800B, 0xF1F3, 0x800C, 0xB6F8, 0x800D, 0xCBA3, 0x800E, 0xC258, 0x800F, 0xC259, 0x8010, 0xC4CD, 0x8011, 0xC25A, 0x8012, 0xF1E7, + 0x8013, 0xC25B, 0x8014, 0xF1E8, 0x8015, 0xB8FB, 0x8016, 0xF1E9, 0x8017, 0xBAC4, 0x8018, 0xD4C5, 0x8019, 0xB0D2, 0x801A, 0xC25C, + 0x801B, 0xC25D, 0x801C, 0xF1EA, 0x801D, 0xC25E, 0x801E, 0xC25F, 0x801F, 0xC260, 0x8020, 0xF1EB, 0x8021, 0xC261, 0x8022, 0xF1EC, + 0x8023, 0xC262, 0x8024, 0xC263, 0x8025, 0xF1ED, 0x8026, 0xF1EE, 0x8027, 0xF1EF, 0x8028, 0xF1F1, 0x8029, 0xF1F0, 0x802A, 0xC5D5, + 0x802B, 0xC264, 0x802C, 0xC265, 0x802D, 0xC266, 0x802E, 0xC267, 0x802F, 0xC268, 0x8030, 0xC269, 0x8031, 0xF1F2, 0x8032, 0xC26A, + 0x8033, 0xB6FA, 0x8034, 0xC26B, 0x8035, 0xF1F4, 0x8036, 0xD2AE, 0x8037, 0xDEC7, 0x8038, 0xCBCA, 0x8039, 0xC26C, 0x803A, 0xC26D, + 0x803B, 0xB3DC, 0x803C, 0xC26E, 0x803D, 0xB5A2, 0x803E, 0xC26F, 0x803F, 0xB9A2, 0x8040, 0xC270, 0x8041, 0xC271, 0x8042, 0xC4F4, + 0x8043, 0xF1F5, 0x8044, 0xC272, 0x8045, 0xC273, 0x8046, 0xF1F6, 0x8047, 0xC274, 0x8048, 0xC275, 0x8049, 0xC276, 0x804A, 0xC1C4, + 0x804B, 0xC1FB, 0x804C, 0xD6B0, 0x804D, 0xF1F7, 0x804E, 0xC277, 0x804F, 0xC278, 0x8050, 0xC279, 0x8051, 0xC27A, 0x8052, 0xF1F8, + 0x8053, 0xC27B, 0x8054, 0xC1AA, 0x8055, 0xC27C, 0x8056, 0xC27D, 0x8057, 0xC27E, 0x8058, 0xC6B8, 0x8059, 0xC280, 0x805A, 0xBEDB, + 0x805B, 0xC281, 0x805C, 0xC282, 0x805D, 0xC283, 0x805E, 0xC284, 0x805F, 0xC285, 0x8060, 0xC286, 0x8061, 0xC287, 0x8062, 0xC288, + 0x8063, 0xC289, 0x8064, 0xC28A, 0x8065, 0xC28B, 0x8066, 0xC28C, 0x8067, 0xC28D, 0x8068, 0xC28E, 0x8069, 0xF1F9, 0x806A, 0xB4CF, + 0x806B, 0xC28F, 0x806C, 0xC290, 0x806D, 0xC291, 0x806E, 0xC292, 0x806F, 0xC293, 0x8070, 0xC294, 0x8071, 0xF1FA, 0x8072, 0xC295, + 0x8073, 0xC296, 0x8074, 0xC297, 0x8075, 0xC298, 0x8076, 0xC299, 0x8077, 0xC29A, 0x8078, 0xC29B, 0x8079, 0xC29C, 0x807A, 0xC29D, + 0x807B, 0xC29E, 0x807C, 0xC29F, 0x807D, 0xC2A0, 0x807E, 0xC340, 0x807F, 0xEDB2, 0x8080, 0xEDB1, 0x8081, 0xC341, 0x8082, 0xC342, + 0x8083, 0xCBE0, 0x8084, 0xD2DE, 0x8085, 0xC343, 0x8086, 0xCBC1, 0x8087, 0xD5D8, 0x8088, 0xC344, 0x8089, 0xC8E2, 0x808A, 0xC345, + 0x808B, 0xC0DF, 0x808C, 0xBCA1, 0x808D, 0xC346, 0x808E, 0xC347, 0x808F, 0xC348, 0x8090, 0xC349, 0x8091, 0xC34A, 0x8092, 0xC34B, + 0x8093, 0xEBC1, 0x8094, 0xC34C, 0x8095, 0xC34D, 0x8096, 0xD0A4, 0x8097, 0xC34E, 0x8098, 0xD6E2, 0x8099, 0xC34F, 0x809A, 0xB6C7, + 0x809B, 0xB8D8, 0x809C, 0xEBC0, 0x809D, 0xB8CE, 0x809E, 0xC350, 0x809F, 0xEBBF, 0x80A0, 0xB3A6, 0x80A1, 0xB9C9, 0x80A2, 0xD6AB, + 0x80A3, 0xC351, 0x80A4, 0xB7F4, 0x80A5, 0xB7CA, 0x80A6, 0xC352, 0x80A7, 0xC353, 0x80A8, 0xC354, 0x80A9, 0xBCE7, 0x80AA, 0xB7BE, + 0x80AB, 0xEBC6, 0x80AC, 0xC355, 0x80AD, 0xEBC7, 0x80AE, 0xB0B9, 0x80AF, 0xBFCF, 0x80B0, 0xC356, 0x80B1, 0xEBC5, 0x80B2, 0xD3FD, + 0x80B3, 0xC357, 0x80B4, 0xEBC8, 0x80B5, 0xC358, 0x80B6, 0xC359, 0x80B7, 0xEBC9, 0x80B8, 0xC35A, 0x80B9, 0xC35B, 0x80BA, 0xB7CE, + 0x80BB, 0xC35C, 0x80BC, 0xEBC2, 0x80BD, 0xEBC4, 0x80BE, 0xC9F6, 0x80BF, 0xD6D7, 0x80C0, 0xD5CD, 0x80C1, 0xD0B2, 0x80C2, 0xEBCF, + 0x80C3, 0xCEB8, 0x80C4, 0xEBD0, 0x80C5, 0xC35D, 0x80C6, 0xB5A8, 0x80C7, 0xC35E, 0x80C8, 0xC35F, 0x80C9, 0xC360, 0x80CA, 0xC361, + 0x80CB, 0xC362, 0x80CC, 0xB1B3, 0x80CD, 0xEBD2, 0x80CE, 0xCCA5, 0x80CF, 0xC363, 0x80D0, 0xC364, 0x80D1, 0xC365, 0x80D2, 0xC366, + 0x80D3, 0xC367, 0x80D4, 0xC368, 0x80D5, 0xC369, 0x80D6, 0xC5D6, 0x80D7, 0xEBD3, 0x80D8, 0xC36A, 0x80D9, 0xEBD1, 0x80DA, 0xC5DF, + 0x80DB, 0xEBCE, 0x80DC, 0xCAA4, 0x80DD, 0xEBD5, 0x80DE, 0xB0FB, 0x80DF, 0xC36B, 0x80E0, 0xC36C, 0x80E1, 0xBAFA, 0x80E2, 0xC36D, + 0x80E3, 0xC36E, 0x80E4, 0xD8B7, 0x80E5, 0xF1E3, 0x80E6, 0xC36F, 0x80E7, 0xEBCA, 0x80E8, 0xEBCB, 0x80E9, 0xEBCC, 0x80EA, 0xEBCD, + 0x80EB, 0xEBD6, 0x80EC, 0xE6C0, 0x80ED, 0xEBD9, 0x80EE, 0xC370, 0x80EF, 0xBFE8, 0x80F0, 0xD2C8, 0x80F1, 0xEBD7, 0x80F2, 0xEBDC, + 0x80F3, 0xB8EC, 0x80F4, 0xEBD8, 0x80F5, 0xC371, 0x80F6, 0xBDBA, 0x80F7, 0xC372, 0x80F8, 0xD0D8, 0x80F9, 0xC373, 0x80FA, 0xB0B7, + 0x80FB, 0xC374, 0x80FC, 0xEBDD, 0x80FD, 0xC4DC, 0x80FE, 0xC375, 0x80FF, 0xC376, 0x8100, 0xC377, 0x8101, 0xC378, 0x8102, 0xD6AC, + 0x8103, 0xC379, 0x8104, 0xC37A, 0x8105, 0xC37B, 0x8106, 0xB4E0, 0x8107, 0xC37C, 0x8108, 0xC37D, 0x8109, 0xC2F6, 0x810A, 0xBCB9, + 0x810B, 0xC37E, 0x810C, 0xC380, 0x810D, 0xEBDA, 0x810E, 0xEBDB, 0x810F, 0xD4E0, 0x8110, 0xC6EA, 0x8111, 0xC4D4, 0x8112, 0xEBDF, + 0x8113, 0xC5A7, 0x8114, 0xD9F5, 0x8115, 0xC381, 0x8116, 0xB2B1, 0x8117, 0xC382, 0x8118, 0xEBE4, 0x8119, 0xC383, 0x811A, 0xBDC5, + 0x811B, 0xC384, 0x811C, 0xC385, 0x811D, 0xC386, 0x811E, 0xEBE2, 0x811F, 0xC387, 0x8120, 0xC388, 0x8121, 0xC389, 0x8122, 0xC38A, + 0x8123, 0xC38B, 0x8124, 0xC38C, 0x8125, 0xC38D, 0x8126, 0xC38E, 0x8127, 0xC38F, 0x8128, 0xC390, 0x8129, 0xC391, 0x812A, 0xC392, + 0x812B, 0xC393, 0x812C, 0xEBE3, 0x812D, 0xC394, 0x812E, 0xC395, 0x812F, 0xB8AC, 0x8130, 0xC396, 0x8131, 0xCDD1, 0x8132, 0xEBE5, + 0x8133, 0xC397, 0x8134, 0xC398, 0x8135, 0xC399, 0x8136, 0xEBE1, 0x8137, 0xC39A, 0x8138, 0xC1B3, 0x8139, 0xC39B, 0x813A, 0xC39C, + 0x813B, 0xC39D, 0x813C, 0xC39E, 0x813D, 0xC39F, 0x813E, 0xC6A2, 0x813F, 0xC3A0, 0x8140, 0xC440, 0x8141, 0xC441, 0x8142, 0xC442, + 0x8143, 0xC443, 0x8144, 0xC444, 0x8145, 0xC445, 0x8146, 0xCCF3, 0x8147, 0xC446, 0x8148, 0xEBE6, 0x8149, 0xC447, 0x814A, 0xC0B0, + 0x814B, 0xD2B8, 0x814C, 0xEBE7, 0x814D, 0xC448, 0x814E, 0xC449, 0x814F, 0xC44A, 0x8150, 0xB8AF, 0x8151, 0xB8AD, 0x8152, 0xC44B, + 0x8153, 0xEBE8, 0x8154, 0xC7BB, 0x8155, 0xCDF3, 0x8156, 0xC44C, 0x8157, 0xC44D, 0x8158, 0xC44E, 0x8159, 0xEBEA, 0x815A, 0xEBEB, + 0x815B, 0xC44F, 0x815C, 0xC450, 0x815D, 0xC451, 0x815E, 0xC452, 0x815F, 0xC453, 0x8160, 0xEBED, 0x8161, 0xC454, 0x8162, 0xC455, + 0x8163, 0xC456, 0x8164, 0xC457, 0x8165, 0xD0C8, 0x8166, 0xC458, 0x8167, 0xEBF2, 0x8168, 0xC459, 0x8169, 0xEBEE, 0x816A, 0xC45A, + 0x816B, 0xC45B, 0x816C, 0xC45C, 0x816D, 0xEBF1, 0x816E, 0xC8F9, 0x816F, 0xC45D, 0x8170, 0xD1FC, 0x8171, 0xEBEC, 0x8172, 0xC45E, + 0x8173, 0xC45F, 0x8174, 0xEBE9, 0x8175, 0xC460, 0x8176, 0xC461, 0x8177, 0xC462, 0x8178, 0xC463, 0x8179, 0xB8B9, 0x817A, 0xCFD9, + 0x817B, 0xC4E5, 0x817C, 0xEBEF, 0x817D, 0xEBF0, 0x817E, 0xCCDA, 0x817F, 0xCDC8, 0x8180, 0xB0F2, 0x8181, 0xC464, 0x8182, 0xEBF6, + 0x8183, 0xC465, 0x8184, 0xC466, 0x8185, 0xC467, 0x8186, 0xC468, 0x8187, 0xC469, 0x8188, 0xEBF5, 0x8189, 0xC46A, 0x818A, 0xB2B2, + 0x818B, 0xC46B, 0x818C, 0xC46C, 0x818D, 0xC46D, 0x818E, 0xC46E, 0x818F, 0xB8E0, 0x8190, 0xC46F, 0x8191, 0xEBF7, 0x8192, 0xC470, + 0x8193, 0xC471, 0x8194, 0xC472, 0x8195, 0xC473, 0x8196, 0xC474, 0x8197, 0xC475, 0x8198, 0xB1EC, 0x8199, 0xC476, 0x819A, 0xC477, + 0x819B, 0xCCC5, 0x819C, 0xC4A4, 0x819D, 0xCFA5, 0x819E, 0xC478, 0x819F, 0xC479, 0x81A0, 0xC47A, 0x81A1, 0xC47B, 0x81A2, 0xC47C, + 0x81A3, 0xEBF9, 0x81A4, 0xC47D, 0x81A5, 0xC47E, 0x81A6, 0xECA2, 0x81A7, 0xC480, 0x81A8, 0xC5F2, 0x81A9, 0xC481, 0x81AA, 0xEBFA, + 0x81AB, 0xC482, 0x81AC, 0xC483, 0x81AD, 0xC484, 0x81AE, 0xC485, 0x81AF, 0xC486, 0x81B0, 0xC487, 0x81B1, 0xC488, 0x81B2, 0xC489, + 0x81B3, 0xC9C5, 0x81B4, 0xC48A, 0x81B5, 0xC48B, 0x81B6, 0xC48C, 0x81B7, 0xC48D, 0x81B8, 0xC48E, 0x81B9, 0xC48F, 0x81BA, 0xE2DF, + 0x81BB, 0xEBFE, 0x81BC, 0xC490, 0x81BD, 0xC491, 0x81BE, 0xC492, 0x81BF, 0xC493, 0x81C0, 0xCDCE, 0x81C1, 0xECA1, 0x81C2, 0xB1DB, + 0x81C3, 0xD3B7, 0x81C4, 0xC494, 0x81C5, 0xC495, 0x81C6, 0xD2DC, 0x81C7, 0xC496, 0x81C8, 0xC497, 0x81C9, 0xC498, 0x81CA, 0xEBFD, + 0x81CB, 0xC499, 0x81CC, 0xEBFB, 0x81CD, 0xC49A, 0x81CE, 0xC49B, 0x81CF, 0xC49C, 0x81D0, 0xC49D, 0x81D1, 0xC49E, 0x81D2, 0xC49F, + 0x81D3, 0xC4A0, 0x81D4, 0xC540, 0x81D5, 0xC541, 0x81D6, 0xC542, 0x81D7, 0xC543, 0x81D8, 0xC544, 0x81D9, 0xC545, 0x81DA, 0xC546, + 0x81DB, 0xC547, 0x81DC, 0xC548, 0x81DD, 0xC549, 0x81DE, 0xC54A, 0x81DF, 0xC54B, 0x81E0, 0xC54C, 0x81E1, 0xC54D, 0x81E2, 0xC54E, + 0x81E3, 0xB3BC, 0x81E4, 0xC54F, 0x81E5, 0xC550, 0x81E6, 0xC551, 0x81E7, 0xEAB0, 0x81E8, 0xC552, 0x81E9, 0xC553, 0x81EA, 0xD7D4, + 0x81EB, 0xC554, 0x81EC, 0xF4AB, 0x81ED, 0xB3F4, 0x81EE, 0xC555, 0x81EF, 0xC556, 0x81F0, 0xC557, 0x81F1, 0xC558, 0x81F2, 0xC559, + 0x81F3, 0xD6C1, 0x81F4, 0xD6C2, 0x81F5, 0xC55A, 0x81F6, 0xC55B, 0x81F7, 0xC55C, 0x81F8, 0xC55D, 0x81F9, 0xC55E, 0x81FA, 0xC55F, + 0x81FB, 0xD5E9, 0x81FC, 0xBECA, 0x81FD, 0xC560, 0x81FE, 0xF4A7, 0x81FF, 0xC561, 0x8200, 0xD2A8, 0x8201, 0xF4A8, 0x8202, 0xF4A9, + 0x8203, 0xC562, 0x8204, 0xF4AA, 0x8205, 0xBECB, 0x8206, 0xD3DF, 0x8207, 0xC563, 0x8208, 0xC564, 0x8209, 0xC565, 0x820A, 0xC566, + 0x820B, 0xC567, 0x820C, 0xC9E0, 0x820D, 0xC9E1, 0x820E, 0xC568, 0x820F, 0xC569, 0x8210, 0xF3C2, 0x8211, 0xC56A, 0x8212, 0xCAE6, + 0x8213, 0xC56B, 0x8214, 0xCCF2, 0x8215, 0xC56C, 0x8216, 0xC56D, 0x8217, 0xC56E, 0x8218, 0xC56F, 0x8219, 0xC570, 0x821A, 0xC571, + 0x821B, 0xE2B6, 0x821C, 0xCBB4, 0x821D, 0xC572, 0x821E, 0xCEE8, 0x821F, 0xD6DB, 0x8220, 0xC573, 0x8221, 0xF4AD, 0x8222, 0xF4AE, + 0x8223, 0xF4AF, 0x8224, 0xC574, 0x8225, 0xC575, 0x8226, 0xC576, 0x8227, 0xC577, 0x8228, 0xF4B2, 0x8229, 0xC578, 0x822A, 0xBABD, + 0x822B, 0xF4B3, 0x822C, 0xB0E3, 0x822D, 0xF4B0, 0x822E, 0xC579, 0x822F, 0xF4B1, 0x8230, 0xBDA2, 0x8231, 0xB2D5, 0x8232, 0xC57A, + 0x8233, 0xF4B6, 0x8234, 0xF4B7, 0x8235, 0xB6E6, 0x8236, 0xB2B0, 0x8237, 0xCFCF, 0x8238, 0xF4B4, 0x8239, 0xB4AC, 0x823A, 0xC57B, + 0x823B, 0xF4B5, 0x823C, 0xC57C, 0x823D, 0xC57D, 0x823E, 0xF4B8, 0x823F, 0xC57E, 0x8240, 0xC580, 0x8241, 0xC581, 0x8242, 0xC582, + 0x8243, 0xC583, 0x8244, 0xF4B9, 0x8245, 0xC584, 0x8246, 0xC585, 0x8247, 0xCDA7, 0x8248, 0xC586, 0x8249, 0xF4BA, 0x824A, 0xC587, + 0x824B, 0xF4BB, 0x824C, 0xC588, 0x824D, 0xC589, 0x824E, 0xC58A, 0x824F, 0xF4BC, 0x8250, 0xC58B, 0x8251, 0xC58C, 0x8252, 0xC58D, + 0x8253, 0xC58E, 0x8254, 0xC58F, 0x8255, 0xC590, 0x8256, 0xC591, 0x8257, 0xC592, 0x8258, 0xCBD2, 0x8259, 0xC593, 0x825A, 0xF4BD, + 0x825B, 0xC594, 0x825C, 0xC595, 0x825D, 0xC596, 0x825E, 0xC597, 0x825F, 0xF4BE, 0x8260, 0xC598, 0x8261, 0xC599, 0x8262, 0xC59A, + 0x8263, 0xC59B, 0x8264, 0xC59C, 0x8265, 0xC59D, 0x8266, 0xC59E, 0x8267, 0xC59F, 0x8268, 0xF4BF, 0x8269, 0xC5A0, 0x826A, 0xC640, + 0x826B, 0xC641, 0x826C, 0xC642, 0x826D, 0xC643, 0x826E, 0xF4DE, 0x826F, 0xC1BC, 0x8270, 0xBCE8, 0x8271, 0xC644, 0x8272, 0xC9AB, + 0x8273, 0xD1DE, 0x8274, 0xE5F5, 0x8275, 0xC645, 0x8276, 0xC646, 0x8277, 0xC647, 0x8278, 0xC648, 0x8279, 0xDCB3, 0x827A, 0xD2D5, + 0x827B, 0xC649, 0x827C, 0xC64A, 0x827D, 0xDCB4, 0x827E, 0xB0AC, 0x827F, 0xDCB5, 0x8280, 0xC64B, 0x8281, 0xC64C, 0x8282, 0xBDDA, + 0x8283, 0xC64D, 0x8284, 0xDCB9, 0x8285, 0xC64E, 0x8286, 0xC64F, 0x8287, 0xC650, 0x8288, 0xD8C2, 0x8289, 0xC651, 0x828A, 0xDCB7, + 0x828B, 0xD3F3, 0x828C, 0xC652, 0x828D, 0xC9D6, 0x828E, 0xDCBA, 0x828F, 0xDCB6, 0x8290, 0xC653, 0x8291, 0xDCBB, 0x8292, 0xC3A2, + 0x8293, 0xC654, 0x8294, 0xC655, 0x8295, 0xC656, 0x8296, 0xC657, 0x8297, 0xDCBC, 0x8298, 0xDCC5, 0x8299, 0xDCBD, 0x829A, 0xC658, + 0x829B, 0xC659, 0x829C, 0xCEDF, 0x829D, 0xD6A5, 0x829E, 0xC65A, 0x829F, 0xDCCF, 0x82A0, 0xC65B, 0x82A1, 0xDCCD, 0x82A2, 0xC65C, + 0x82A3, 0xC65D, 0x82A4, 0xDCD2, 0x82A5, 0xBDE6, 0x82A6, 0xC2AB, 0x82A7, 0xC65E, 0x82A8, 0xDCB8, 0x82A9, 0xDCCB, 0x82AA, 0xDCCE, + 0x82AB, 0xDCBE, 0x82AC, 0xB7D2, 0x82AD, 0xB0C5, 0x82AE, 0xDCC7, 0x82AF, 0xD0BE, 0x82B0, 0xDCC1, 0x82B1, 0xBBA8, 0x82B2, 0xC65F, + 0x82B3, 0xB7BC, 0x82B4, 0xDCCC, 0x82B5, 0xC660, 0x82B6, 0xC661, 0x82B7, 0xDCC6, 0x82B8, 0xDCBF, 0x82B9, 0xC7DB, 0x82BA, 0xC662, + 0x82BB, 0xC663, 0x82BC, 0xC664, 0x82BD, 0xD1BF, 0x82BE, 0xDCC0, 0x82BF, 0xC665, 0x82C0, 0xC666, 0x82C1, 0xDCCA, 0x82C2, 0xC667, + 0x82C3, 0xC668, 0x82C4, 0xDCD0, 0x82C5, 0xC669, 0x82C6, 0xC66A, 0x82C7, 0xCEAD, 0x82C8, 0xDCC2, 0x82C9, 0xC66B, 0x82CA, 0xDCC3, + 0x82CB, 0xDCC8, 0x82CC, 0xDCC9, 0x82CD, 0xB2D4, 0x82CE, 0xDCD1, 0x82CF, 0xCBD5, 0x82D0, 0xC66C, 0x82D1, 0xD4B7, 0x82D2, 0xDCDB, + 0x82D3, 0xDCDF, 0x82D4, 0xCCA6, 0x82D5, 0xDCE6, 0x82D6, 0xC66D, 0x82D7, 0xC3E7, 0x82D8, 0xDCDC, 0x82D9, 0xC66E, 0x82DA, 0xC66F, + 0x82DB, 0xBFC1, 0x82DC, 0xDCD9, 0x82DD, 0xC670, 0x82DE, 0xB0FA, 0x82DF, 0xB9B6, 0x82E0, 0xDCE5, 0x82E1, 0xDCD3, 0x82E2, 0xC671, + 0x82E3, 0xDCC4, 0x82E4, 0xDCD6, 0x82E5, 0xC8F4, 0x82E6, 0xBFE0, 0x82E7, 0xC672, 0x82E8, 0xC673, 0x82E9, 0xC674, 0x82EA, 0xC675, + 0x82EB, 0xC9BB, 0x82EC, 0xC676, 0x82ED, 0xC677, 0x82EE, 0xC678, 0x82EF, 0xB1BD, 0x82F0, 0xC679, 0x82F1, 0xD3A2, 0x82F2, 0xC67A, + 0x82F3, 0xC67B, 0x82F4, 0xDCDA, 0x82F5, 0xC67C, 0x82F6, 0xC67D, 0x82F7, 0xDCD5, 0x82F8, 0xC67E, 0x82F9, 0xC6BB, 0x82FA, 0xC680, + 0x82FB, 0xDCDE, 0x82FC, 0xC681, 0x82FD, 0xC682, 0x82FE, 0xC683, 0x82FF, 0xC684, 0x8300, 0xC685, 0x8301, 0xD7C2, 0x8302, 0xC3AF, + 0x8303, 0xB7B6, 0x8304, 0xC7D1, 0x8305, 0xC3A9, 0x8306, 0xDCE2, 0x8307, 0xDCD8, 0x8308, 0xDCEB, 0x8309, 0xDCD4, 0x830A, 0xC686, + 0x830B, 0xC687, 0x830C, 0xDCDD, 0x830D, 0xC688, 0x830E, 0xBEA5, 0x830F, 0xDCD7, 0x8310, 0xC689, 0x8311, 0xDCE0, 0x8312, 0xC68A, + 0x8313, 0xC68B, 0x8314, 0xDCE3, 0x8315, 0xDCE4, 0x8316, 0xC68C, 0x8317, 0xDCF8, 0x8318, 0xC68D, 0x8319, 0xC68E, 0x831A, 0xDCE1, + 0x831B, 0xDDA2, 0x831C, 0xDCE7, 0x831D, 0xC68F, 0x831E, 0xC690, 0x831F, 0xC691, 0x8320, 0xC692, 0x8321, 0xC693, 0x8322, 0xC694, + 0x8323, 0xC695, 0x8324, 0xC696, 0x8325, 0xC697, 0x8326, 0xC698, 0x8327, 0xBCEB, 0x8328, 0xB4C4, 0x8329, 0xC699, 0x832A, 0xC69A, + 0x832B, 0xC3A3, 0x832C, 0xB2E7, 0x832D, 0xDCFA, 0x832E, 0xC69B, 0x832F, 0xDCF2, 0x8330, 0xC69C, 0x8331, 0xDCEF, 0x8332, 0xC69D, + 0x8333, 0xDCFC, 0x8334, 0xDCEE, 0x8335, 0xD2F0, 0x8336, 0xB2E8, 0x8337, 0xC69E, 0x8338, 0xC8D7, 0x8339, 0xC8E3, 0x833A, 0xDCFB, + 0x833B, 0xC69F, 0x833C, 0xDCED, 0x833D, 0xC6A0, 0x833E, 0xC740, 0x833F, 0xC741, 0x8340, 0xDCF7, 0x8341, 0xC742, 0x8342, 0xC743, + 0x8343, 0xDCF5, 0x8344, 0xC744, 0x8345, 0xC745, 0x8346, 0xBEA3, 0x8347, 0xDCF4, 0x8348, 0xC746, 0x8349, 0xB2DD, 0x834A, 0xC747, + 0x834B, 0xC748, 0x834C, 0xC749, 0x834D, 0xC74A, 0x834E, 0xC74B, 0x834F, 0xDCF3, 0x8350, 0xBCF6, 0x8351, 0xDCE8, 0x8352, 0xBBC4, + 0x8353, 0xC74C, 0x8354, 0xC0F3, 0x8355, 0xC74D, 0x8356, 0xC74E, 0x8357, 0xC74F, 0x8358, 0xC750, 0x8359, 0xC751, 0x835A, 0xBCD4, + 0x835B, 0xDCE9, 0x835C, 0xDCEA, 0x835D, 0xC752, 0x835E, 0xDCF1, 0x835F, 0xDCF6, 0x8360, 0xDCF9, 0x8361, 0xB5B4, 0x8362, 0xC753, + 0x8363, 0xC8D9, 0x8364, 0xBBE7, 0x8365, 0xDCFE, 0x8366, 0xDCFD, 0x8367, 0xD3AB, 0x8368, 0xDDA1, 0x8369, 0xDDA3, 0x836A, 0xDDA5, + 0x836B, 0xD2F1, 0x836C, 0xDDA4, 0x836D, 0xDDA6, 0x836E, 0xDDA7, 0x836F, 0xD2A9, 0x8370, 0xC754, 0x8371, 0xC755, 0x8372, 0xC756, + 0x8373, 0xC757, 0x8374, 0xC758, 0x8375, 0xC759, 0x8376, 0xC75A, 0x8377, 0xBAC9, 0x8378, 0xDDA9, 0x8379, 0xC75B, 0x837A, 0xC75C, + 0x837B, 0xDDB6, 0x837C, 0xDDB1, 0x837D, 0xDDB4, 0x837E, 0xC75D, 0x837F, 0xC75E, 0x8380, 0xC75F, 0x8381, 0xC760, 0x8382, 0xC761, + 0x8383, 0xC762, 0x8384, 0xC763, 0x8385, 0xDDB0, 0x8386, 0xC6CE, 0x8387, 0xC764, 0x8388, 0xC765, 0x8389, 0xC0F2, 0x838A, 0xC766, + 0x838B, 0xC767, 0x838C, 0xC768, 0x838D, 0xC769, 0x838E, 0xC9AF, 0x838F, 0xC76A, 0x8390, 0xC76B, 0x8391, 0xC76C, 0x8392, 0xDCEC, + 0x8393, 0xDDAE, 0x8394, 0xC76D, 0x8395, 0xC76E, 0x8396, 0xC76F, 0x8397, 0xC770, 0x8398, 0xDDB7, 0x8399, 0xC771, 0x839A, 0xC772, + 0x839B, 0xDCF0, 0x839C, 0xDDAF, 0x839D, 0xC773, 0x839E, 0xDDB8, 0x839F, 0xC774, 0x83A0, 0xDDAC, 0x83A1, 0xC775, 0x83A2, 0xC776, + 0x83A3, 0xC777, 0x83A4, 0xC778, 0x83A5, 0xC779, 0x83A6, 0xC77A, 0x83A7, 0xC77B, 0x83A8, 0xDDB9, 0x83A9, 0xDDB3, 0x83AA, 0xDDAD, + 0x83AB, 0xC4AA, 0x83AC, 0xC77C, 0x83AD, 0xC77D, 0x83AE, 0xC77E, 0x83AF, 0xC780, 0x83B0, 0xDDA8, 0x83B1, 0xC0B3, 0x83B2, 0xC1AB, + 0x83B3, 0xDDAA, 0x83B4, 0xDDAB, 0x83B5, 0xC781, 0x83B6, 0xDDB2, 0x83B7, 0xBBF1, 0x83B8, 0xDDB5, 0x83B9, 0xD3A8, 0x83BA, 0xDDBA, + 0x83BB, 0xC782, 0x83BC, 0xDDBB, 0x83BD, 0xC3A7, 0x83BE, 0xC783, 0x83BF, 0xC784, 0x83C0, 0xDDD2, 0x83C1, 0xDDBC, 0x83C2, 0xC785, + 0x83C3, 0xC786, 0x83C4, 0xC787, 0x83C5, 0xDDD1, 0x83C6, 0xC788, 0x83C7, 0xB9BD, 0x83C8, 0xC789, 0x83C9, 0xC78A, 0x83CA, 0xBED5, + 0x83CB, 0xC78B, 0x83CC, 0xBEFA, 0x83CD, 0xC78C, 0x83CE, 0xC78D, 0x83CF, 0xBACA, 0x83D0, 0xC78E, 0x83D1, 0xC78F, 0x83D2, 0xC790, + 0x83D3, 0xC791, 0x83D4, 0xDDCA, 0x83D5, 0xC792, 0x83D6, 0xDDC5, 0x83D7, 0xC793, 0x83D8, 0xDDBF, 0x83D9, 0xC794, 0x83DA, 0xC795, + 0x83DB, 0xC796, 0x83DC, 0xB2CB, 0x83DD, 0xDDC3, 0x83DE, 0xC797, 0x83DF, 0xDDCB, 0x83E0, 0xB2A4, 0x83E1, 0xDDD5, 0x83E2, 0xC798, + 0x83E3, 0xC799, 0x83E4, 0xC79A, 0x83E5, 0xDDBE, 0x83E6, 0xC79B, 0x83E7, 0xC79C, 0x83E8, 0xC79D, 0x83E9, 0xC6D0, 0x83EA, 0xDDD0, + 0x83EB, 0xC79E, 0x83EC, 0xC79F, 0x83ED, 0xC7A0, 0x83EE, 0xC840, 0x83EF, 0xC841, 0x83F0, 0xDDD4, 0x83F1, 0xC1E2, 0x83F2, 0xB7C6, + 0x83F3, 0xC842, 0x83F4, 0xC843, 0x83F5, 0xC844, 0x83F6, 0xC845, 0x83F7, 0xC846, 0x83F8, 0xDDCE, 0x83F9, 0xDDCF, 0x83FA, 0xC847, + 0x83FB, 0xC848, 0x83FC, 0xC849, 0x83FD, 0xDDC4, 0x83FE, 0xC84A, 0x83FF, 0xC84B, 0x8400, 0xC84C, 0x8401, 0xDDBD, 0x8402, 0xC84D, + 0x8403, 0xDDCD, 0x8404, 0xCCD1, 0x8405, 0xC84E, 0x8406, 0xDDC9, 0x8407, 0xC84F, 0x8408, 0xC850, 0x8409, 0xC851, 0x840A, 0xC852, + 0x840B, 0xDDC2, 0x840C, 0xC3C8, 0x840D, 0xC6BC, 0x840E, 0xCEAE, 0x840F, 0xDDCC, 0x8410, 0xC853, 0x8411, 0xDDC8, 0x8412, 0xC854, + 0x8413, 0xC855, 0x8414, 0xC856, 0x8415, 0xC857, 0x8416, 0xC858, 0x8417, 0xC859, 0x8418, 0xDDC1, 0x8419, 0xC85A, 0x841A, 0xC85B, + 0x841B, 0xC85C, 0x841C, 0xDDC6, 0x841D, 0xC2DC, 0x841E, 0xC85D, 0x841F, 0xC85E, 0x8420, 0xC85F, 0x8421, 0xC860, 0x8422, 0xC861, + 0x8423, 0xC862, 0x8424, 0xD3A9, 0x8425, 0xD3AA, 0x8426, 0xDDD3, 0x8427, 0xCFF4, 0x8428, 0xC8F8, 0x8429, 0xC863, 0x842A, 0xC864, + 0x842B, 0xC865, 0x842C, 0xC866, 0x842D, 0xC867, 0x842E, 0xC868, 0x842F, 0xC869, 0x8430, 0xC86A, 0x8431, 0xDDE6, 0x8432, 0xC86B, + 0x8433, 0xC86C, 0x8434, 0xC86D, 0x8435, 0xC86E, 0x8436, 0xC86F, 0x8437, 0xC870, 0x8438, 0xDDC7, 0x8439, 0xC871, 0x843A, 0xC872, + 0x843B, 0xC873, 0x843C, 0xDDE0, 0x843D, 0xC2E4, 0x843E, 0xC874, 0x843F, 0xC875, 0x8440, 0xC876, 0x8441, 0xC877, 0x8442, 0xC878, + 0x8443, 0xC879, 0x8444, 0xC87A, 0x8445, 0xC87B, 0x8446, 0xDDE1, 0x8447, 0xC87C, 0x8448, 0xC87D, 0x8449, 0xC87E, 0x844A, 0xC880, + 0x844B, 0xC881, 0x844C, 0xC882, 0x844D, 0xC883, 0x844E, 0xC884, 0x844F, 0xC885, 0x8450, 0xC886, 0x8451, 0xDDD7, 0x8452, 0xC887, + 0x8453, 0xC888, 0x8454, 0xC889, 0x8455, 0xC88A, 0x8456, 0xC88B, 0x8457, 0xD6F8, 0x8458, 0xC88C, 0x8459, 0xDDD9, 0x845A, 0xDDD8, + 0x845B, 0xB8F0, 0x845C, 0xDDD6, 0x845D, 0xC88D, 0x845E, 0xC88E, 0x845F, 0xC88F, 0x8460, 0xC890, 0x8461, 0xC6CF, 0x8462, 0xC891, + 0x8463, 0xB6AD, 0x8464, 0xC892, 0x8465, 0xC893, 0x8466, 0xC894, 0x8467, 0xC895, 0x8468, 0xC896, 0x8469, 0xDDE2, 0x846A, 0xC897, + 0x846B, 0xBAF9, 0x846C, 0xD4E1, 0x846D, 0xDDE7, 0x846E, 0xC898, 0x846F, 0xC899, 0x8470, 0xC89A, 0x8471, 0xB4D0, 0x8472, 0xC89B, + 0x8473, 0xDDDA, 0x8474, 0xC89C, 0x8475, 0xBFFB, 0x8476, 0xDDE3, 0x8477, 0xC89D, 0x8478, 0xDDDF, 0x8479, 0xC89E, 0x847A, 0xDDDD, + 0x847B, 0xC89F, 0x847C, 0xC8A0, 0x847D, 0xC940, 0x847E, 0xC941, 0x847F, 0xC942, 0x8480, 0xC943, 0x8481, 0xC944, 0x8482, 0xB5D9, + 0x8483, 0xC945, 0x8484, 0xC946, 0x8485, 0xC947, 0x8486, 0xC948, 0x8487, 0xDDDB, 0x8488, 0xDDDC, 0x8489, 0xDDDE, 0x848A, 0xC949, + 0x848B, 0xBDAF, 0x848C, 0xDDE4, 0x848D, 0xC94A, 0x848E, 0xDDE5, 0x848F, 0xC94B, 0x8490, 0xC94C, 0x8491, 0xC94D, 0x8492, 0xC94E, + 0x8493, 0xC94F, 0x8494, 0xC950, 0x8495, 0xC951, 0x8496, 0xC952, 0x8497, 0xDDF5, 0x8498, 0xC953, 0x8499, 0xC3C9, 0x849A, 0xC954, + 0x849B, 0xC955, 0x849C, 0xCBE2, 0x849D, 0xC956, 0x849E, 0xC957, 0x849F, 0xC958, 0x84A0, 0xC959, 0x84A1, 0xDDF2, 0x84A2, 0xC95A, + 0x84A3, 0xC95B, 0x84A4, 0xC95C, 0x84A5, 0xC95D, 0x84A6, 0xC95E, 0x84A7, 0xC95F, 0x84A8, 0xC960, 0x84A9, 0xC961, 0x84AA, 0xC962, + 0x84AB, 0xC963, 0x84AC, 0xC964, 0x84AD, 0xC965, 0x84AE, 0xC966, 0x84AF, 0xD8E1, 0x84B0, 0xC967, 0x84B1, 0xC968, 0x84B2, 0xC6D1, + 0x84B3, 0xC969, 0x84B4, 0xDDF4, 0x84B5, 0xC96A, 0x84B6, 0xC96B, 0x84B7, 0xC96C, 0x84B8, 0xD5F4, 0x84B9, 0xDDF3, 0x84BA, 0xDDF0, + 0x84BB, 0xC96D, 0x84BC, 0xC96E, 0x84BD, 0xDDEC, 0x84BE, 0xC96F, 0x84BF, 0xDDEF, 0x84C0, 0xC970, 0x84C1, 0xDDE8, 0x84C2, 0xC971, + 0x84C3, 0xC972, 0x84C4, 0xD0EE, 0x84C5, 0xC973, 0x84C6, 0xC974, 0x84C7, 0xC975, 0x84C8, 0xC976, 0x84C9, 0xC8D8, 0x84CA, 0xDDEE, + 0x84CB, 0xC977, 0x84CC, 0xC978, 0x84CD, 0xDDE9, 0x84CE, 0xC979, 0x84CF, 0xC97A, 0x84D0, 0xDDEA, 0x84D1, 0xCBF2, 0x84D2, 0xC97B, + 0x84D3, 0xDDED, 0x84D4, 0xC97C, 0x84D5, 0xC97D, 0x84D6, 0xB1CD, 0x84D7, 0xC97E, 0x84D8, 0xC980, 0x84D9, 0xC981, 0x84DA, 0xC982, + 0x84DB, 0xC983, 0x84DC, 0xC984, 0x84DD, 0xC0B6, 0x84DE, 0xC985, 0x84DF, 0xBCBB, 0x84E0, 0xDDF1, 0x84E1, 0xC986, 0x84E2, 0xC987, + 0x84E3, 0xDDF7, 0x84E4, 0xC988, 0x84E5, 0xDDF6, 0x84E6, 0xDDEB, 0x84E7, 0xC989, 0x84E8, 0xC98A, 0x84E9, 0xC98B, 0x84EA, 0xC98C, + 0x84EB, 0xC98D, 0x84EC, 0xC5EE, 0x84ED, 0xC98E, 0x84EE, 0xC98F, 0x84EF, 0xC990, 0x84F0, 0xDDFB, 0x84F1, 0xC991, 0x84F2, 0xC992, + 0x84F3, 0xC993, 0x84F4, 0xC994, 0x84F5, 0xC995, 0x84F6, 0xC996, 0x84F7, 0xC997, 0x84F8, 0xC998, 0x84F9, 0xC999, 0x84FA, 0xC99A, + 0x84FB, 0xC99B, 0x84FC, 0xDEA4, 0x84FD, 0xC99C, 0x84FE, 0xC99D, 0x84FF, 0xDEA3, 0x8500, 0xC99E, 0x8501, 0xC99F, 0x8502, 0xC9A0, + 0x8503, 0xCA40, 0x8504, 0xCA41, 0x8505, 0xCA42, 0x8506, 0xCA43, 0x8507, 0xCA44, 0x8508, 0xCA45, 0x8509, 0xCA46, 0x850A, 0xCA47, + 0x850B, 0xCA48, 0x850C, 0xDDF8, 0x850D, 0xCA49, 0x850E, 0xCA4A, 0x850F, 0xCA4B, 0x8510, 0xCA4C, 0x8511, 0xC3EF, 0x8512, 0xCA4D, + 0x8513, 0xC2FB, 0x8514, 0xCA4E, 0x8515, 0xCA4F, 0x8516, 0xCA50, 0x8517, 0xD5E1, 0x8518, 0xCA51, 0x8519, 0xCA52, 0x851A, 0xCEB5, + 0x851B, 0xCA53, 0x851C, 0xCA54, 0x851D, 0xCA55, 0x851E, 0xCA56, 0x851F, 0xDDFD, 0x8520, 0xCA57, 0x8521, 0xB2CC, 0x8522, 0xCA58, + 0x8523, 0xCA59, 0x8524, 0xCA5A, 0x8525, 0xCA5B, 0x8526, 0xCA5C, 0x8527, 0xCA5D, 0x8528, 0xCA5E, 0x8529, 0xCA5F, 0x852A, 0xCA60, + 0x852B, 0xC4E8, 0x852C, 0xCADF, 0x852D, 0xCA61, 0x852E, 0xCA62, 0x852F, 0xCA63, 0x8530, 0xCA64, 0x8531, 0xCA65, 0x8532, 0xCA66, + 0x8533, 0xCA67, 0x8534, 0xCA68, 0x8535, 0xCA69, 0x8536, 0xCA6A, 0x8537, 0xC7BE, 0x8538, 0xDDFA, 0x8539, 0xDDFC, 0x853A, 0xDDFE, + 0x853B, 0xDEA2, 0x853C, 0xB0AA, 0x853D, 0xB1CE, 0x853E, 0xCA6B, 0x853F, 0xCA6C, 0x8540, 0xCA6D, 0x8541, 0xCA6E, 0x8542, 0xCA6F, + 0x8543, 0xDEAC, 0x8544, 0xCA70, 0x8545, 0xCA71, 0x8546, 0xCA72, 0x8547, 0xCA73, 0x8548, 0xDEA6, 0x8549, 0xBDB6, 0x854A, 0xC8EF, + 0x854B, 0xCA74, 0x854C, 0xCA75, 0x854D, 0xCA76, 0x854E, 0xCA77, 0x854F, 0xCA78, 0x8550, 0xCA79, 0x8551, 0xCA7A, 0x8552, 0xCA7B, + 0x8553, 0xCA7C, 0x8554, 0xCA7D, 0x8555, 0xCA7E, 0x8556, 0xDEA1, 0x8557, 0xCA80, 0x8558, 0xCA81, 0x8559, 0xDEA5, 0x855A, 0xCA82, + 0x855B, 0xCA83, 0x855C, 0xCA84, 0x855D, 0xCA85, 0x855E, 0xDEA9, 0x855F, 0xCA86, 0x8560, 0xCA87, 0x8561, 0xCA88, 0x8562, 0xCA89, + 0x8563, 0xCA8A, 0x8564, 0xDEA8, 0x8565, 0xCA8B, 0x8566, 0xCA8C, 0x8567, 0xCA8D, 0x8568, 0xDEA7, 0x8569, 0xCA8E, 0x856A, 0xCA8F, + 0x856B, 0xCA90, 0x856C, 0xCA91, 0x856D, 0xCA92, 0x856E, 0xCA93, 0x856F, 0xCA94, 0x8570, 0xCA95, 0x8571, 0xCA96, 0x8572, 0xDEAD, + 0x8573, 0xCA97, 0x8574, 0xD4CC, 0x8575, 0xCA98, 0x8576, 0xCA99, 0x8577, 0xCA9A, 0x8578, 0xCA9B, 0x8579, 0xDEB3, 0x857A, 0xDEAA, + 0x857B, 0xDEAE, 0x857C, 0xCA9C, 0x857D, 0xCA9D, 0x857E, 0xC0D9, 0x857F, 0xCA9E, 0x8580, 0xCA9F, 0x8581, 0xCAA0, 0x8582, 0xCB40, + 0x8583, 0xCB41, 0x8584, 0xB1A1, 0x8585, 0xDEB6, 0x8586, 0xCB42, 0x8587, 0xDEB1, 0x8588, 0xCB43, 0x8589, 0xCB44, 0x858A, 0xCB45, + 0x858B, 0xCB46, 0x858C, 0xCB47, 0x858D, 0xCB48, 0x858E, 0xCB49, 0x858F, 0xDEB2, 0x8590, 0xCB4A, 0x8591, 0xCB4B, 0x8592, 0xCB4C, + 0x8593, 0xCB4D, 0x8594, 0xCB4E, 0x8595, 0xCB4F, 0x8596, 0xCB50, 0x8597, 0xCB51, 0x8598, 0xCB52, 0x8599, 0xCB53, 0x859A, 0xCB54, + 0x859B, 0xD1A6, 0x859C, 0xDEB5, 0x859D, 0xCB55, 0x859E, 0xCB56, 0x859F, 0xCB57, 0x85A0, 0xCB58, 0x85A1, 0xCB59, 0x85A2, 0xCB5A, + 0x85A3, 0xCB5B, 0x85A4, 0xDEAF, 0x85A5, 0xCB5C, 0x85A6, 0xCB5D, 0x85A7, 0xCB5E, 0x85A8, 0xDEB0, 0x85A9, 0xCB5F, 0x85AA, 0xD0BD, + 0x85AB, 0xCB60, 0x85AC, 0xCB61, 0x85AD, 0xCB62, 0x85AE, 0xDEB4, 0x85AF, 0xCAED, 0x85B0, 0xDEB9, 0x85B1, 0xCB63, 0x85B2, 0xCB64, + 0x85B3, 0xCB65, 0x85B4, 0xCB66, 0x85B5, 0xCB67, 0x85B6, 0xCB68, 0x85B7, 0xDEB8, 0x85B8, 0xCB69, 0x85B9, 0xDEB7, 0x85BA, 0xCB6A, + 0x85BB, 0xCB6B, 0x85BC, 0xCB6C, 0x85BD, 0xCB6D, 0x85BE, 0xCB6E, 0x85BF, 0xCB6F, 0x85C0, 0xCB70, 0x85C1, 0xDEBB, 0x85C2, 0xCB71, + 0x85C3, 0xCB72, 0x85C4, 0xCB73, 0x85C5, 0xCB74, 0x85C6, 0xCB75, 0x85C7, 0xCB76, 0x85C8, 0xCB77, 0x85C9, 0xBDE5, 0x85CA, 0xCB78, + 0x85CB, 0xCB79, 0x85CC, 0xCB7A, 0x85CD, 0xCB7B, 0x85CE, 0xCB7C, 0x85CF, 0xB2D8, 0x85D0, 0xC3EA, 0x85D1, 0xCB7D, 0x85D2, 0xCB7E, + 0x85D3, 0xDEBA, 0x85D4, 0xCB80, 0x85D5, 0xC5BA, 0x85D6, 0xCB81, 0x85D7, 0xCB82, 0x85D8, 0xCB83, 0x85D9, 0xCB84, 0x85DA, 0xCB85, + 0x85DB, 0xCB86, 0x85DC, 0xDEBC, 0x85DD, 0xCB87, 0x85DE, 0xCB88, 0x85DF, 0xCB89, 0x85E0, 0xCB8A, 0x85E1, 0xCB8B, 0x85E2, 0xCB8C, + 0x85E3, 0xCB8D, 0x85E4, 0xCCD9, 0x85E5, 0xCB8E, 0x85E6, 0xCB8F, 0x85E7, 0xCB90, 0x85E8, 0xCB91, 0x85E9, 0xB7AA, 0x85EA, 0xCB92, + 0x85EB, 0xCB93, 0x85EC, 0xCB94, 0x85ED, 0xCB95, 0x85EE, 0xCB96, 0x85EF, 0xCB97, 0x85F0, 0xCB98, 0x85F1, 0xCB99, 0x85F2, 0xCB9A, + 0x85F3, 0xCB9B, 0x85F4, 0xCB9C, 0x85F5, 0xCB9D, 0x85F6, 0xCB9E, 0x85F7, 0xCB9F, 0x85F8, 0xCBA0, 0x85F9, 0xCC40, 0x85FA, 0xCC41, + 0x85FB, 0xD4E5, 0x85FC, 0xCC42, 0x85FD, 0xCC43, 0x85FE, 0xCC44, 0x85FF, 0xDEBD, 0x8600, 0xCC45, 0x8601, 0xCC46, 0x8602, 0xCC47, + 0x8603, 0xCC48, 0x8604, 0xCC49, 0x8605, 0xDEBF, 0x8606, 0xCC4A, 0x8607, 0xCC4B, 0x8608, 0xCC4C, 0x8609, 0xCC4D, 0x860A, 0xCC4E, + 0x860B, 0xCC4F, 0x860C, 0xCC50, 0x860D, 0xCC51, 0x860E, 0xCC52, 0x860F, 0xCC53, 0x8610, 0xCC54, 0x8611, 0xC4A2, 0x8612, 0xCC55, + 0x8613, 0xCC56, 0x8614, 0xCC57, 0x8615, 0xCC58, 0x8616, 0xDEC1, 0x8617, 0xCC59, 0x8618, 0xCC5A, 0x8619, 0xCC5B, 0x861A, 0xCC5C, + 0x861B, 0xCC5D, 0x861C, 0xCC5E, 0x861D, 0xCC5F, 0x861E, 0xCC60, 0x861F, 0xCC61, 0x8620, 0xCC62, 0x8621, 0xCC63, 0x8622, 0xCC64, + 0x8623, 0xCC65, 0x8624, 0xCC66, 0x8625, 0xCC67, 0x8626, 0xCC68, 0x8627, 0xDEBE, 0x8628, 0xCC69, 0x8629, 0xDEC0, 0x862A, 0xCC6A, + 0x862B, 0xCC6B, 0x862C, 0xCC6C, 0x862D, 0xCC6D, 0x862E, 0xCC6E, 0x862F, 0xCC6F, 0x8630, 0xCC70, 0x8631, 0xCC71, 0x8632, 0xCC72, + 0x8633, 0xCC73, 0x8634, 0xCC74, 0x8635, 0xCC75, 0x8636, 0xCC76, 0x8637, 0xCC77, 0x8638, 0xD5BA, 0x8639, 0xCC78, 0x863A, 0xCC79, + 0x863B, 0xCC7A, 0x863C, 0xDEC2, 0x863D, 0xCC7B, 0x863E, 0xCC7C, 0x863F, 0xCC7D, 0x8640, 0xCC7E, 0x8641, 0xCC80, 0x8642, 0xCC81, + 0x8643, 0xCC82, 0x8644, 0xCC83, 0x8645, 0xCC84, 0x8646, 0xCC85, 0x8647, 0xCC86, 0x8648, 0xCC87, 0x8649, 0xCC88, 0x864A, 0xCC89, + 0x864B, 0xCC8A, 0x864C, 0xCC8B, 0x864D, 0xF2AE, 0x864E, 0xBBA2, 0x864F, 0xC2B2, 0x8650, 0xC5B0, 0x8651, 0xC2C7, 0x8652, 0xCC8C, + 0x8653, 0xCC8D, 0x8654, 0xF2AF, 0x8655, 0xCC8E, 0x8656, 0xCC8F, 0x8657, 0xCC90, 0x8658, 0xCC91, 0x8659, 0xCC92, 0x865A, 0xD0E9, + 0x865B, 0xCC93, 0x865C, 0xCC94, 0x865D, 0xCC95, 0x865E, 0xD3DD, 0x865F, 0xCC96, 0x8660, 0xCC97, 0x8661, 0xCC98, 0x8662, 0xEBBD, + 0x8663, 0xCC99, 0x8664, 0xCC9A, 0x8665, 0xCC9B, 0x8666, 0xCC9C, 0x8667, 0xCC9D, 0x8668, 0xCC9E, 0x8669, 0xCC9F, 0x866A, 0xCCA0, + 0x866B, 0xB3E6, 0x866C, 0xF2B0, 0x866D, 0xCD40, 0x866E, 0xF2B1, 0x866F, 0xCD41, 0x8670, 0xCD42, 0x8671, 0xCAAD, 0x8672, 0xCD43, + 0x8673, 0xCD44, 0x8674, 0xCD45, 0x8675, 0xCD46, 0x8676, 0xCD47, 0x8677, 0xCD48, 0x8678, 0xCD49, 0x8679, 0xBAE7, 0x867A, 0xF2B3, + 0x867B, 0xF2B5, 0x867C, 0xF2B4, 0x867D, 0xCBE4, 0x867E, 0xCFBA, 0x867F, 0xF2B2, 0x8680, 0xCAB4, 0x8681, 0xD2CF, 0x8682, 0xC2EC, + 0x8683, 0xCD4A, 0x8684, 0xCD4B, 0x8685, 0xCD4C, 0x8686, 0xCD4D, 0x8687, 0xCD4E, 0x8688, 0xCD4F, 0x8689, 0xCD50, 0x868A, 0xCEC3, + 0x868B, 0xF2B8, 0x868C, 0xB0F6, 0x868D, 0xF2B7, 0x868E, 0xCD51, 0x868F, 0xCD52, 0x8690, 0xCD53, 0x8691, 0xCD54, 0x8692, 0xCD55, + 0x8693, 0xF2BE, 0x8694, 0xCD56, 0x8695, 0xB2CF, 0x8696, 0xCD57, 0x8697, 0xCD58, 0x8698, 0xCD59, 0x8699, 0xCD5A, 0x869A, 0xCD5B, + 0x869B, 0xCD5C, 0x869C, 0xD1C1, 0x869D, 0xF2BA, 0x869E, 0xCD5D, 0x869F, 0xCD5E, 0x86A0, 0xCD5F, 0x86A1, 0xCD60, 0x86A2, 0xCD61, + 0x86A3, 0xF2BC, 0x86A4, 0xD4E9, 0x86A5, 0xCD62, 0x86A6, 0xCD63, 0x86A7, 0xF2BB, 0x86A8, 0xF2B6, 0x86A9, 0xF2BF, 0x86AA, 0xF2BD, + 0x86AB, 0xCD64, 0x86AC, 0xF2B9, 0x86AD, 0xCD65, 0x86AE, 0xCD66, 0x86AF, 0xF2C7, 0x86B0, 0xF2C4, 0x86B1, 0xF2C6, 0x86B2, 0xCD67, + 0x86B3, 0xCD68, 0x86B4, 0xF2CA, 0x86B5, 0xF2C2, 0x86B6, 0xF2C0, 0x86B7, 0xCD69, 0x86B8, 0xCD6A, 0x86B9, 0xCD6B, 0x86BA, 0xF2C5, + 0x86BB, 0xCD6C, 0x86BC, 0xCD6D, 0x86BD, 0xCD6E, 0x86BE, 0xCD6F, 0x86BF, 0xCD70, 0x86C0, 0xD6FB, 0x86C1, 0xCD71, 0x86C2, 0xCD72, + 0x86C3, 0xCD73, 0x86C4, 0xF2C1, 0x86C5, 0xCD74, 0x86C6, 0xC7F9, 0x86C7, 0xC9DF, 0x86C8, 0xCD75, 0x86C9, 0xF2C8, 0x86CA, 0xB9C6, + 0x86CB, 0xB5B0, 0x86CC, 0xCD76, 0x86CD, 0xCD77, 0x86CE, 0xF2C3, 0x86CF, 0xF2C9, 0x86D0, 0xF2D0, 0x86D1, 0xF2D6, 0x86D2, 0xCD78, + 0x86D3, 0xCD79, 0x86D4, 0xBBD7, 0x86D5, 0xCD7A, 0x86D6, 0xCD7B, 0x86D7, 0xCD7C, 0x86D8, 0xF2D5, 0x86D9, 0xCDDC, 0x86DA, 0xCD7D, + 0x86DB, 0xD6EB, 0x86DC, 0xCD7E, 0x86DD, 0xCD80, 0x86DE, 0xF2D2, 0x86DF, 0xF2D4, 0x86E0, 0xCD81, 0x86E1, 0xCD82, 0x86E2, 0xCD83, + 0x86E3, 0xCD84, 0x86E4, 0xB8F2, 0x86E5, 0xCD85, 0x86E6, 0xCD86, 0x86E7, 0xCD87, 0x86E8, 0xCD88, 0x86E9, 0xF2CB, 0x86EA, 0xCD89, + 0x86EB, 0xCD8A, 0x86EC, 0xCD8B, 0x86ED, 0xF2CE, 0x86EE, 0xC2F9, 0x86EF, 0xCD8C, 0x86F0, 0xD5DD, 0x86F1, 0xF2CC, 0x86F2, 0xF2CD, + 0x86F3, 0xF2CF, 0x86F4, 0xF2D3, 0x86F5, 0xCD8D, 0x86F6, 0xCD8E, 0x86F7, 0xCD8F, 0x86F8, 0xF2D9, 0x86F9, 0xD3BC, 0x86FA, 0xCD90, + 0x86FB, 0xCD91, 0x86FC, 0xCD92, 0x86FD, 0xCD93, 0x86FE, 0xB6EA, 0x86FF, 0xCD94, 0x8700, 0xCAF1, 0x8701, 0xCD95, 0x8702, 0xB7E4, + 0x8703, 0xF2D7, 0x8704, 0xCD96, 0x8705, 0xCD97, 0x8706, 0xCD98, 0x8707, 0xF2D8, 0x8708, 0xF2DA, 0x8709, 0xF2DD, 0x870A, 0xF2DB, + 0x870B, 0xCD99, 0x870C, 0xCD9A, 0x870D, 0xF2DC, 0x870E, 0xCD9B, 0x870F, 0xCD9C, 0x8710, 0xCD9D, 0x8711, 0xCD9E, 0x8712, 0xD1D1, + 0x8713, 0xF2D1, 0x8714, 0xCD9F, 0x8715, 0xCDC9, 0x8716, 0xCDA0, 0x8717, 0xCECF, 0x8718, 0xD6A9, 0x8719, 0xCE40, 0x871A, 0xF2E3, + 0x871B, 0xCE41, 0x871C, 0xC3DB, 0x871D, 0xCE42, 0x871E, 0xF2E0, 0x871F, 0xCE43, 0x8720, 0xCE44, 0x8721, 0xC0AF, 0x8722, 0xF2EC, + 0x8723, 0xF2DE, 0x8724, 0xCE45, 0x8725, 0xF2E1, 0x8726, 0xCE46, 0x8727, 0xCE47, 0x8728, 0xCE48, 0x8729, 0xF2E8, 0x872A, 0xCE49, + 0x872B, 0xCE4A, 0x872C, 0xCE4B, 0x872D, 0xCE4C, 0x872E, 0xF2E2, 0x872F, 0xCE4D, 0x8730, 0xCE4E, 0x8731, 0xF2E7, 0x8732, 0xCE4F, + 0x8733, 0xCE50, 0x8734, 0xF2E6, 0x8735, 0xCE51, 0x8736, 0xCE52, 0x8737, 0xF2E9, 0x8738, 0xCE53, 0x8739, 0xCE54, 0x873A, 0xCE55, + 0x873B, 0xF2DF, 0x873C, 0xCE56, 0x873D, 0xCE57, 0x873E, 0xF2E4, 0x873F, 0xF2EA, 0x8740, 0xCE58, 0x8741, 0xCE59, 0x8742, 0xCE5A, + 0x8743, 0xCE5B, 0x8744, 0xCE5C, 0x8745, 0xCE5D, 0x8746, 0xCE5E, 0x8747, 0xD3AC, 0x8748, 0xF2E5, 0x8749, 0xB2F5, 0x874A, 0xCE5F, + 0x874B, 0xCE60, 0x874C, 0xF2F2, 0x874D, 0xCE61, 0x874E, 0xD0AB, 0x874F, 0xCE62, 0x8750, 0xCE63, 0x8751, 0xCE64, 0x8752, 0xCE65, + 0x8753, 0xF2F5, 0x8754, 0xCE66, 0x8755, 0xCE67, 0x8756, 0xCE68, 0x8757, 0xBBC8, 0x8758, 0xCE69, 0x8759, 0xF2F9, 0x875A, 0xCE6A, + 0x875B, 0xCE6B, 0x875C, 0xCE6C, 0x875D, 0xCE6D, 0x875E, 0xCE6E, 0x875F, 0xCE6F, 0x8760, 0xF2F0, 0x8761, 0xCE70, 0x8762, 0xCE71, + 0x8763, 0xF2F6, 0x8764, 0xF2F8, 0x8765, 0xF2FA, 0x8766, 0xCE72, 0x8767, 0xCE73, 0x8768, 0xCE74, 0x8769, 0xCE75, 0x876A, 0xCE76, + 0x876B, 0xCE77, 0x876C, 0xCE78, 0x876D, 0xCE79, 0x876E, 0xF2F3, 0x876F, 0xCE7A, 0x8770, 0xF2F1, 0x8771, 0xCE7B, 0x8772, 0xCE7C, + 0x8773, 0xCE7D, 0x8774, 0xBAFB, 0x8775, 0xCE7E, 0x8776, 0xB5FB, 0x8777, 0xCE80, 0x8778, 0xCE81, 0x8779, 0xCE82, 0x877A, 0xCE83, + 0x877B, 0xF2EF, 0x877C, 0xF2F7, 0x877D, 0xF2ED, 0x877E, 0xF2EE, 0x877F, 0xCE84, 0x8780, 0xCE85, 0x8781, 0xCE86, 0x8782, 0xF2EB, + 0x8783, 0xF3A6, 0x8784, 0xCE87, 0x8785, 0xF3A3, 0x8786, 0xCE88, 0x8787, 0xCE89, 0x8788, 0xF3A2, 0x8789, 0xCE8A, 0x878A, 0xCE8B, + 0x878B, 0xF2F4, 0x878C, 0xCE8C, 0x878D, 0xC8DA, 0x878E, 0xCE8D, 0x878F, 0xCE8E, 0x8790, 0xCE8F, 0x8791, 0xCE90, 0x8792, 0xCE91, + 0x8793, 0xF2FB, 0x8794, 0xCE92, 0x8795, 0xCE93, 0x8796, 0xCE94, 0x8797, 0xF3A5, 0x8798, 0xCE95, 0x8799, 0xCE96, 0x879A, 0xCE97, + 0x879B, 0xCE98, 0x879C, 0xCE99, 0x879D, 0xCE9A, 0x879E, 0xCE9B, 0x879F, 0xC3F8, 0x87A0, 0xCE9C, 0x87A1, 0xCE9D, 0x87A2, 0xCE9E, + 0x87A3, 0xCE9F, 0x87A4, 0xCEA0, 0x87A5, 0xCF40, 0x87A6, 0xCF41, 0x87A7, 0xCF42, 0x87A8, 0xF2FD, 0x87A9, 0xCF43, 0x87AA, 0xCF44, + 0x87AB, 0xF3A7, 0x87AC, 0xF3A9, 0x87AD, 0xF3A4, 0x87AE, 0xCF45, 0x87AF, 0xF2FC, 0x87B0, 0xCF46, 0x87B1, 0xCF47, 0x87B2, 0xCF48, + 0x87B3, 0xF3AB, 0x87B4, 0xCF49, 0x87B5, 0xF3AA, 0x87B6, 0xCF4A, 0x87B7, 0xCF4B, 0x87B8, 0xCF4C, 0x87B9, 0xCF4D, 0x87BA, 0xC2DD, + 0x87BB, 0xCF4E, 0x87BC, 0xCF4F, 0x87BD, 0xF3AE, 0x87BE, 0xCF50, 0x87BF, 0xCF51, 0x87C0, 0xF3B0, 0x87C1, 0xCF52, 0x87C2, 0xCF53, + 0x87C3, 0xCF54, 0x87C4, 0xCF55, 0x87C5, 0xCF56, 0x87C6, 0xF3A1, 0x87C7, 0xCF57, 0x87C8, 0xCF58, 0x87C9, 0xCF59, 0x87CA, 0xF3B1, + 0x87CB, 0xF3AC, 0x87CC, 0xCF5A, 0x87CD, 0xCF5B, 0x87CE, 0xCF5C, 0x87CF, 0xCF5D, 0x87D0, 0xCF5E, 0x87D1, 0xF3AF, 0x87D2, 0xF2FE, + 0x87D3, 0xF3AD, 0x87D4, 0xCF5F, 0x87D5, 0xCF60, 0x87D6, 0xCF61, 0x87D7, 0xCF62, 0x87D8, 0xCF63, 0x87D9, 0xCF64, 0x87DA, 0xCF65, + 0x87DB, 0xF3B2, 0x87DC, 0xCF66, 0x87DD, 0xCF67, 0x87DE, 0xCF68, 0x87DF, 0xCF69, 0x87E0, 0xF3B4, 0x87E1, 0xCF6A, 0x87E2, 0xCF6B, + 0x87E3, 0xCF6C, 0x87E4, 0xCF6D, 0x87E5, 0xF3A8, 0x87E6, 0xCF6E, 0x87E7, 0xCF6F, 0x87E8, 0xCF70, 0x87E9, 0xCF71, 0x87EA, 0xF3B3, + 0x87EB, 0xCF72, 0x87EC, 0xCF73, 0x87ED, 0xCF74, 0x87EE, 0xF3B5, 0x87EF, 0xCF75, 0x87F0, 0xCF76, 0x87F1, 0xCF77, 0x87F2, 0xCF78, + 0x87F3, 0xCF79, 0x87F4, 0xCF7A, 0x87F5, 0xCF7B, 0x87F6, 0xCF7C, 0x87F7, 0xCF7D, 0x87F8, 0xCF7E, 0x87F9, 0xD0B7, 0x87FA, 0xCF80, + 0x87FB, 0xCF81, 0x87FC, 0xCF82, 0x87FD, 0xCF83, 0x87FE, 0xF3B8, 0x87FF, 0xCF84, 0x8800, 0xCF85, 0x8801, 0xCF86, 0x8802, 0xCF87, + 0x8803, 0xD9F9, 0x8804, 0xCF88, 0x8805, 0xCF89, 0x8806, 0xCF8A, 0x8807, 0xCF8B, 0x8808, 0xCF8C, 0x8809, 0xCF8D, 0x880A, 0xF3B9, + 0x880B, 0xCF8E, 0x880C, 0xCF8F, 0x880D, 0xCF90, 0x880E, 0xCF91, 0x880F, 0xCF92, 0x8810, 0xCF93, 0x8811, 0xCF94, 0x8812, 0xCF95, + 0x8813, 0xF3B7, 0x8814, 0xCF96, 0x8815, 0xC8E4, 0x8816, 0xF3B6, 0x8817, 0xCF97, 0x8818, 0xCF98, 0x8819, 0xCF99, 0x881A, 0xCF9A, + 0x881B, 0xF3BA, 0x881C, 0xCF9B, 0x881D, 0xCF9C, 0x881E, 0xCF9D, 0x881F, 0xCF9E, 0x8820, 0xCF9F, 0x8821, 0xF3BB, 0x8822, 0xB4C0, + 0x8823, 0xCFA0, 0x8824, 0xD040, 0x8825, 0xD041, 0x8826, 0xD042, 0x8827, 0xD043, 0x8828, 0xD044, 0x8829, 0xD045, 0x882A, 0xD046, + 0x882B, 0xD047, 0x882C, 0xD048, 0x882D, 0xD049, 0x882E, 0xD04A, 0x882F, 0xD04B, 0x8830, 0xD04C, 0x8831, 0xD04D, 0x8832, 0xEEC3, + 0x8833, 0xD04E, 0x8834, 0xD04F, 0x8835, 0xD050, 0x8836, 0xD051, 0x8837, 0xD052, 0x8838, 0xD053, 0x8839, 0xF3BC, 0x883A, 0xD054, + 0x883B, 0xD055, 0x883C, 0xF3BD, 0x883D, 0xD056, 0x883E, 0xD057, 0x883F, 0xD058, 0x8840, 0xD1AA, 0x8841, 0xD059, 0x8842, 0xD05A, + 0x8843, 0xD05B, 0x8844, 0xF4AC, 0x8845, 0xD0C6, 0x8846, 0xD05C, 0x8847, 0xD05D, 0x8848, 0xD05E, 0x8849, 0xD05F, 0x884A, 0xD060, + 0x884B, 0xD061, 0x884C, 0xD0D0, 0x884D, 0xD1DC, 0x884E, 0xD062, 0x884F, 0xD063, 0x8850, 0xD064, 0x8851, 0xD065, 0x8852, 0xD066, + 0x8853, 0xD067, 0x8854, 0xCFCE, 0x8855, 0xD068, 0x8856, 0xD069, 0x8857, 0xBDD6, 0x8858, 0xD06A, 0x8859, 0xD1C3, 0x885A, 0xD06B, + 0x885B, 0xD06C, 0x885C, 0xD06D, 0x885D, 0xD06E, 0x885E, 0xD06F, 0x885F, 0xD070, 0x8860, 0xD071, 0x8861, 0xBAE2, 0x8862, 0xE1E9, + 0x8863, 0xD2C2, 0x8864, 0xF1C2, 0x8865, 0xB2B9, 0x8866, 0xD072, 0x8867, 0xD073, 0x8868, 0xB1ED, 0x8869, 0xF1C3, 0x886A, 0xD074, + 0x886B, 0xC9C0, 0x886C, 0xB3C4, 0x886D, 0xD075, 0x886E, 0xD9F2, 0x886F, 0xD076, 0x8870, 0xCBA5, 0x8871, 0xD077, 0x8872, 0xF1C4, + 0x8873, 0xD078, 0x8874, 0xD079, 0x8875, 0xD07A, 0x8876, 0xD07B, 0x8877, 0xD6D4, 0x8878, 0xD07C, 0x8879, 0xD07D, 0x887A, 0xD07E, + 0x887B, 0xD080, 0x887C, 0xD081, 0x887D, 0xF1C5, 0x887E, 0xF4C0, 0x887F, 0xF1C6, 0x8880, 0xD082, 0x8881, 0xD4AC, 0x8882, 0xF1C7, + 0x8883, 0xD083, 0x8884, 0xB0C0, 0x8885, 0xF4C1, 0x8886, 0xD084, 0x8887, 0xD085, 0x8888, 0xF4C2, 0x8889, 0xD086, 0x888A, 0xD087, + 0x888B, 0xB4FC, 0x888C, 0xD088, 0x888D, 0xC5DB, 0x888E, 0xD089, 0x888F, 0xD08A, 0x8890, 0xD08B, 0x8891, 0xD08C, 0x8892, 0xCCBB, + 0x8893, 0xD08D, 0x8894, 0xD08E, 0x8895, 0xD08F, 0x8896, 0xD0E4, 0x8897, 0xD090, 0x8898, 0xD091, 0x8899, 0xD092, 0x889A, 0xD093, + 0x889B, 0xD094, 0x889C, 0xCDE0, 0x889D, 0xD095, 0x889E, 0xD096, 0x889F, 0xD097, 0x88A0, 0xD098, 0x88A1, 0xD099, 0x88A2, 0xF1C8, + 0x88A3, 0xD09A, 0x88A4, 0xD9F3, 0x88A5, 0xD09B, 0x88A6, 0xD09C, 0x88A7, 0xD09D, 0x88A8, 0xD09E, 0x88A9, 0xD09F, 0x88AA, 0xD0A0, + 0x88AB, 0xB1BB, 0x88AC, 0xD140, 0x88AD, 0xCFAE, 0x88AE, 0xD141, 0x88AF, 0xD142, 0x88B0, 0xD143, 0x88B1, 0xB8A4, 0x88B2, 0xD144, + 0x88B3, 0xD145, 0x88B4, 0xD146, 0x88B5, 0xD147, 0x88B6, 0xD148, 0x88B7, 0xF1CA, 0x88B8, 0xD149, 0x88B9, 0xD14A, 0x88BA, 0xD14B, + 0x88BB, 0xD14C, 0x88BC, 0xF1CB, 0x88BD, 0xD14D, 0x88BE, 0xD14E, 0x88BF, 0xD14F, 0x88C0, 0xD150, 0x88C1, 0xB2C3, 0x88C2, 0xC1D1, + 0x88C3, 0xD151, 0x88C4, 0xD152, 0x88C5, 0xD7B0, 0x88C6, 0xF1C9, 0x88C7, 0xD153, 0x88C8, 0xD154, 0x88C9, 0xF1CC, 0x88CA, 0xD155, + 0x88CB, 0xD156, 0x88CC, 0xD157, 0x88CD, 0xD158, 0x88CE, 0xF1CE, 0x88CF, 0xD159, 0x88D0, 0xD15A, 0x88D1, 0xD15B, 0x88D2, 0xD9F6, + 0x88D3, 0xD15C, 0x88D4, 0xD2E1, 0x88D5, 0xD4A3, 0x88D6, 0xD15D, 0x88D7, 0xD15E, 0x88D8, 0xF4C3, 0x88D9, 0xC8B9, 0x88DA, 0xD15F, + 0x88DB, 0xD160, 0x88DC, 0xD161, 0x88DD, 0xD162, 0x88DE, 0xD163, 0x88DF, 0xF4C4, 0x88E0, 0xD164, 0x88E1, 0xD165, 0x88E2, 0xF1CD, + 0x88E3, 0xF1CF, 0x88E4, 0xBFE3, 0x88E5, 0xF1D0, 0x88E6, 0xD166, 0x88E7, 0xD167, 0x88E8, 0xF1D4, 0x88E9, 0xD168, 0x88EA, 0xD169, + 0x88EB, 0xD16A, 0x88EC, 0xD16B, 0x88ED, 0xD16C, 0x88EE, 0xD16D, 0x88EF, 0xD16E, 0x88F0, 0xF1D6, 0x88F1, 0xF1D1, 0x88F2, 0xD16F, + 0x88F3, 0xC9D1, 0x88F4, 0xC5E1, 0x88F5, 0xD170, 0x88F6, 0xD171, 0x88F7, 0xD172, 0x88F8, 0xC2E3, 0x88F9, 0xB9FC, 0x88FA, 0xD173, + 0x88FB, 0xD174, 0x88FC, 0xF1D3, 0x88FD, 0xD175, 0x88FE, 0xF1D5, 0x88FF, 0xD176, 0x8900, 0xD177, 0x8901, 0xD178, 0x8902, 0xB9D3, + 0x8903, 0xD179, 0x8904, 0xD17A, 0x8905, 0xD17B, 0x8906, 0xD17C, 0x8907, 0xD17D, 0x8908, 0xD17E, 0x8909, 0xD180, 0x890A, 0xF1DB, + 0x890B, 0xD181, 0x890C, 0xD182, 0x890D, 0xD183, 0x890E, 0xD184, 0x890F, 0xD185, 0x8910, 0xBAD6, 0x8911, 0xD186, 0x8912, 0xB0FD, + 0x8913, 0xF1D9, 0x8914, 0xD187, 0x8915, 0xD188, 0x8916, 0xD189, 0x8917, 0xD18A, 0x8918, 0xD18B, 0x8919, 0xF1D8, 0x891A, 0xF1D2, + 0x891B, 0xF1DA, 0x891C, 0xD18C, 0x891D, 0xD18D, 0x891E, 0xD18E, 0x891F, 0xD18F, 0x8920, 0xD190, 0x8921, 0xF1D7, 0x8922, 0xD191, + 0x8923, 0xD192, 0x8924, 0xD193, 0x8925, 0xC8EC, 0x8926, 0xD194, 0x8927, 0xD195, 0x8928, 0xD196, 0x8929, 0xD197, 0x892A, 0xCDCA, + 0x892B, 0xF1DD, 0x892C, 0xD198, 0x892D, 0xD199, 0x892E, 0xD19A, 0x892F, 0xD19B, 0x8930, 0xE5BD, 0x8931, 0xD19C, 0x8932, 0xD19D, + 0x8933, 0xD19E, 0x8934, 0xF1DC, 0x8935, 0xD19F, 0x8936, 0xF1DE, 0x8937, 0xD1A0, 0x8938, 0xD240, 0x8939, 0xD241, 0x893A, 0xD242, + 0x893B, 0xD243, 0x893C, 0xD244, 0x893D, 0xD245, 0x893E, 0xD246, 0x893F, 0xD247, 0x8940, 0xD248, 0x8941, 0xF1DF, 0x8942, 0xD249, + 0x8943, 0xD24A, 0x8944, 0xCFE5, 0x8945, 0xD24B, 0x8946, 0xD24C, 0x8947, 0xD24D, 0x8948, 0xD24E, 0x8949, 0xD24F, 0x894A, 0xD250, + 0x894B, 0xD251, 0x894C, 0xD252, 0x894D, 0xD253, 0x894E, 0xD254, 0x894F, 0xD255, 0x8950, 0xD256, 0x8951, 0xD257, 0x8952, 0xD258, + 0x8953, 0xD259, 0x8954, 0xD25A, 0x8955, 0xD25B, 0x8956, 0xD25C, 0x8957, 0xD25D, 0x8958, 0xD25E, 0x8959, 0xD25F, 0x895A, 0xD260, + 0x895B, 0xD261, 0x895C, 0xD262, 0x895D, 0xD263, 0x895E, 0xF4C5, 0x895F, 0xBDF3, 0x8960, 0xD264, 0x8961, 0xD265, 0x8962, 0xD266, + 0x8963, 0xD267, 0x8964, 0xD268, 0x8965, 0xD269, 0x8966, 0xF1E0, 0x8967, 0xD26A, 0x8968, 0xD26B, 0x8969, 0xD26C, 0x896A, 0xD26D, + 0x896B, 0xD26E, 0x896C, 0xD26F, 0x896D, 0xD270, 0x896E, 0xD271, 0x896F, 0xD272, 0x8970, 0xD273, 0x8971, 0xD274, 0x8972, 0xD275, + 0x8973, 0xD276, 0x8974, 0xD277, 0x8975, 0xD278, 0x8976, 0xD279, 0x8977, 0xD27A, 0x8978, 0xD27B, 0x8979, 0xD27C, 0x897A, 0xD27D, + 0x897B, 0xF1E1, 0x897C, 0xD27E, 0x897D, 0xD280, 0x897E, 0xD281, 0x897F, 0xCEF7, 0x8980, 0xD282, 0x8981, 0xD2AA, 0x8982, 0xD283, + 0x8983, 0xF1FB, 0x8984, 0xD284, 0x8985, 0xD285, 0x8986, 0xB8B2, 0x8987, 0xD286, 0x8988, 0xD287, 0x8989, 0xD288, 0x898A, 0xD289, + 0x898B, 0xD28A, 0x898C, 0xD28B, 0x898D, 0xD28C, 0x898E, 0xD28D, 0x898F, 0xD28E, 0x8990, 0xD28F, 0x8991, 0xD290, 0x8992, 0xD291, + 0x8993, 0xD292, 0x8994, 0xD293, 0x8995, 0xD294, 0x8996, 0xD295, 0x8997, 0xD296, 0x8998, 0xD297, 0x8999, 0xD298, 0x899A, 0xD299, + 0x899B, 0xD29A, 0x899C, 0xD29B, 0x899D, 0xD29C, 0x899E, 0xD29D, 0x899F, 0xD29E, 0x89A0, 0xD29F, 0x89A1, 0xD2A0, 0x89A2, 0xD340, + 0x89A3, 0xD341, 0x89A4, 0xD342, 0x89A5, 0xD343, 0x89A6, 0xD344, 0x89A7, 0xD345, 0x89A8, 0xD346, 0x89A9, 0xD347, 0x89AA, 0xD348, + 0x89AB, 0xD349, 0x89AC, 0xD34A, 0x89AD, 0xD34B, 0x89AE, 0xD34C, 0x89AF, 0xD34D, 0x89B0, 0xD34E, 0x89B1, 0xD34F, 0x89B2, 0xD350, + 0x89B3, 0xD351, 0x89B4, 0xD352, 0x89B5, 0xD353, 0x89B6, 0xD354, 0x89B7, 0xD355, 0x89B8, 0xD356, 0x89B9, 0xD357, 0x89BA, 0xD358, + 0x89BB, 0xD359, 0x89BC, 0xD35A, 0x89BD, 0xD35B, 0x89BE, 0xD35C, 0x89BF, 0xD35D, 0x89C0, 0xD35E, 0x89C1, 0xBCFB, 0x89C2, 0xB9DB, + 0x89C3, 0xD35F, 0x89C4, 0xB9E6, 0x89C5, 0xC3D9, 0x89C6, 0xCAD3, 0x89C7, 0xEAE8, 0x89C8, 0xC0C0, 0x89C9, 0xBEF5, 0x89CA, 0xEAE9, + 0x89CB, 0xEAEA, 0x89CC, 0xEAEB, 0x89CD, 0xD360, 0x89CE, 0xEAEC, 0x89CF, 0xEAED, 0x89D0, 0xEAEE, 0x89D1, 0xEAEF, 0x89D2, 0xBDC7, + 0x89D3, 0xD361, 0x89D4, 0xD362, 0x89D5, 0xD363, 0x89D6, 0xF5FB, 0x89D7, 0xD364, 0x89D8, 0xD365, 0x89D9, 0xD366, 0x89DA, 0xF5FD, + 0x89DB, 0xD367, 0x89DC, 0xF5FE, 0x89DD, 0xD368, 0x89DE, 0xF5FC, 0x89DF, 0xD369, 0x89E0, 0xD36A, 0x89E1, 0xD36B, 0x89E2, 0xD36C, + 0x89E3, 0xBDE2, 0x89E4, 0xD36D, 0x89E5, 0xF6A1, 0x89E6, 0xB4A5, 0x89E7, 0xD36E, 0x89E8, 0xD36F, 0x89E9, 0xD370, 0x89EA, 0xD371, + 0x89EB, 0xF6A2, 0x89EC, 0xD372, 0x89ED, 0xD373, 0x89EE, 0xD374, 0x89EF, 0xF6A3, 0x89F0, 0xD375, 0x89F1, 0xD376, 0x89F2, 0xD377, + 0x89F3, 0xECB2, 0x89F4, 0xD378, 0x89F5, 0xD379, 0x89F6, 0xD37A, 0x89F7, 0xD37B, 0x89F8, 0xD37C, 0x89F9, 0xD37D, 0x89FA, 0xD37E, + 0x89FB, 0xD380, 0x89FC, 0xD381, 0x89FD, 0xD382, 0x89FE, 0xD383, 0x89FF, 0xD384, 0x8A00, 0xD1D4, 0x8A01, 0xD385, 0x8A02, 0xD386, + 0x8A03, 0xD387, 0x8A04, 0xD388, 0x8A05, 0xD389, 0x8A06, 0xD38A, 0x8A07, 0xD9EA, 0x8A08, 0xD38B, 0x8A09, 0xD38C, 0x8A0A, 0xD38D, + 0x8A0B, 0xD38E, 0x8A0C, 0xD38F, 0x8A0D, 0xD390, 0x8A0E, 0xD391, 0x8A0F, 0xD392, 0x8A10, 0xD393, 0x8A11, 0xD394, 0x8A12, 0xD395, + 0x8A13, 0xD396, 0x8A14, 0xD397, 0x8A15, 0xD398, 0x8A16, 0xD399, 0x8A17, 0xD39A, 0x8A18, 0xD39B, 0x8A19, 0xD39C, 0x8A1A, 0xD39D, + 0x8A1B, 0xD39E, 0x8A1C, 0xD39F, 0x8A1D, 0xD3A0, 0x8A1E, 0xD440, 0x8A1F, 0xD441, 0x8A20, 0xD442, 0x8A21, 0xD443, 0x8A22, 0xD444, + 0x8A23, 0xD445, 0x8A24, 0xD446, 0x8A25, 0xD447, 0x8A26, 0xD448, 0x8A27, 0xD449, 0x8A28, 0xD44A, 0x8A29, 0xD44B, 0x8A2A, 0xD44C, + 0x8A2B, 0xD44D, 0x8A2C, 0xD44E, 0x8A2D, 0xD44F, 0x8A2E, 0xD450, 0x8A2F, 0xD451, 0x8A30, 0xD452, 0x8A31, 0xD453, 0x8A32, 0xD454, + 0x8A33, 0xD455, 0x8A34, 0xD456, 0x8A35, 0xD457, 0x8A36, 0xD458, 0x8A37, 0xD459, 0x8A38, 0xD45A, 0x8A39, 0xD45B, 0x8A3A, 0xD45C, + 0x8A3B, 0xD45D, 0x8A3C, 0xD45E, 0x8A3D, 0xD45F, 0x8A3E, 0xF6A4, 0x8A3F, 0xD460, 0x8A40, 0xD461, 0x8A41, 0xD462, 0x8A42, 0xD463, + 0x8A43, 0xD464, 0x8A44, 0xD465, 0x8A45, 0xD466, 0x8A46, 0xD467, 0x8A47, 0xD468, 0x8A48, 0xEEBA, 0x8A49, 0xD469, 0x8A4A, 0xD46A, + 0x8A4B, 0xD46B, 0x8A4C, 0xD46C, 0x8A4D, 0xD46D, 0x8A4E, 0xD46E, 0x8A4F, 0xD46F, 0x8A50, 0xD470, 0x8A51, 0xD471, 0x8A52, 0xD472, + 0x8A53, 0xD473, 0x8A54, 0xD474, 0x8A55, 0xD475, 0x8A56, 0xD476, 0x8A57, 0xD477, 0x8A58, 0xD478, 0x8A59, 0xD479, 0x8A5A, 0xD47A, + 0x8A5B, 0xD47B, 0x8A5C, 0xD47C, 0x8A5D, 0xD47D, 0x8A5E, 0xD47E, 0x8A5F, 0xD480, 0x8A60, 0xD481, 0x8A61, 0xD482, 0x8A62, 0xD483, + 0x8A63, 0xD484, 0x8A64, 0xD485, 0x8A65, 0xD486, 0x8A66, 0xD487, 0x8A67, 0xD488, 0x8A68, 0xD489, 0x8A69, 0xD48A, 0x8A6A, 0xD48B, + 0x8A6B, 0xD48C, 0x8A6C, 0xD48D, 0x8A6D, 0xD48E, 0x8A6E, 0xD48F, 0x8A6F, 0xD490, 0x8A70, 0xD491, 0x8A71, 0xD492, 0x8A72, 0xD493, + 0x8A73, 0xD494, 0x8A74, 0xD495, 0x8A75, 0xD496, 0x8A76, 0xD497, 0x8A77, 0xD498, 0x8A78, 0xD499, 0x8A79, 0xD5B2, 0x8A7A, 0xD49A, + 0x8A7B, 0xD49B, 0x8A7C, 0xD49C, 0x8A7D, 0xD49D, 0x8A7E, 0xD49E, 0x8A7F, 0xD49F, 0x8A80, 0xD4A0, 0x8A81, 0xD540, 0x8A82, 0xD541, + 0x8A83, 0xD542, 0x8A84, 0xD543, 0x8A85, 0xD544, 0x8A86, 0xD545, 0x8A87, 0xD546, 0x8A88, 0xD547, 0x8A89, 0xD3FE, 0x8A8A, 0xCCDC, + 0x8A8B, 0xD548, 0x8A8C, 0xD549, 0x8A8D, 0xD54A, 0x8A8E, 0xD54B, 0x8A8F, 0xD54C, 0x8A90, 0xD54D, 0x8A91, 0xD54E, 0x8A92, 0xD54F, + 0x8A93, 0xCAC4, 0x8A94, 0xD550, 0x8A95, 0xD551, 0x8A96, 0xD552, 0x8A97, 0xD553, 0x8A98, 0xD554, 0x8A99, 0xD555, 0x8A9A, 0xD556, + 0x8A9B, 0xD557, 0x8A9C, 0xD558, 0x8A9D, 0xD559, 0x8A9E, 0xD55A, 0x8A9F, 0xD55B, 0x8AA0, 0xD55C, 0x8AA1, 0xD55D, 0x8AA2, 0xD55E, + 0x8AA3, 0xD55F, 0x8AA4, 0xD560, 0x8AA5, 0xD561, 0x8AA6, 0xD562, 0x8AA7, 0xD563, 0x8AA8, 0xD564, 0x8AA9, 0xD565, 0x8AAA, 0xD566, + 0x8AAB, 0xD567, 0x8AAC, 0xD568, 0x8AAD, 0xD569, 0x8AAE, 0xD56A, 0x8AAF, 0xD56B, 0x8AB0, 0xD56C, 0x8AB1, 0xD56D, 0x8AB2, 0xD56E, + 0x8AB3, 0xD56F, 0x8AB4, 0xD570, 0x8AB5, 0xD571, 0x8AB6, 0xD572, 0x8AB7, 0xD573, 0x8AB8, 0xD574, 0x8AB9, 0xD575, 0x8ABA, 0xD576, + 0x8ABB, 0xD577, 0x8ABC, 0xD578, 0x8ABD, 0xD579, 0x8ABE, 0xD57A, 0x8ABF, 0xD57B, 0x8AC0, 0xD57C, 0x8AC1, 0xD57D, 0x8AC2, 0xD57E, + 0x8AC3, 0xD580, 0x8AC4, 0xD581, 0x8AC5, 0xD582, 0x8AC6, 0xD583, 0x8AC7, 0xD584, 0x8AC8, 0xD585, 0x8AC9, 0xD586, 0x8ACA, 0xD587, + 0x8ACB, 0xD588, 0x8ACC, 0xD589, 0x8ACD, 0xD58A, 0x8ACE, 0xD58B, 0x8ACF, 0xD58C, 0x8AD0, 0xD58D, 0x8AD1, 0xD58E, 0x8AD2, 0xD58F, + 0x8AD3, 0xD590, 0x8AD4, 0xD591, 0x8AD5, 0xD592, 0x8AD6, 0xD593, 0x8AD7, 0xD594, 0x8AD8, 0xD595, 0x8AD9, 0xD596, 0x8ADA, 0xD597, + 0x8ADB, 0xD598, 0x8ADC, 0xD599, 0x8ADD, 0xD59A, 0x8ADE, 0xD59B, 0x8ADF, 0xD59C, 0x8AE0, 0xD59D, 0x8AE1, 0xD59E, 0x8AE2, 0xD59F, + 0x8AE3, 0xD5A0, 0x8AE4, 0xD640, 0x8AE5, 0xD641, 0x8AE6, 0xD642, 0x8AE7, 0xD643, 0x8AE8, 0xD644, 0x8AE9, 0xD645, 0x8AEA, 0xD646, + 0x8AEB, 0xD647, 0x8AEC, 0xD648, 0x8AED, 0xD649, 0x8AEE, 0xD64A, 0x8AEF, 0xD64B, 0x8AF0, 0xD64C, 0x8AF1, 0xD64D, 0x8AF2, 0xD64E, + 0x8AF3, 0xD64F, 0x8AF4, 0xD650, 0x8AF5, 0xD651, 0x8AF6, 0xD652, 0x8AF7, 0xD653, 0x8AF8, 0xD654, 0x8AF9, 0xD655, 0x8AFA, 0xD656, + 0x8AFB, 0xD657, 0x8AFC, 0xD658, 0x8AFD, 0xD659, 0x8AFE, 0xD65A, 0x8AFF, 0xD65B, 0x8B00, 0xD65C, 0x8B01, 0xD65D, 0x8B02, 0xD65E, + 0x8B03, 0xD65F, 0x8B04, 0xD660, 0x8B05, 0xD661, 0x8B06, 0xD662, 0x8B07, 0xE5C0, 0x8B08, 0xD663, 0x8B09, 0xD664, 0x8B0A, 0xD665, + 0x8B0B, 0xD666, 0x8B0C, 0xD667, 0x8B0D, 0xD668, 0x8B0E, 0xD669, 0x8B0F, 0xD66A, 0x8B10, 0xD66B, 0x8B11, 0xD66C, 0x8B12, 0xD66D, + 0x8B13, 0xD66E, 0x8B14, 0xD66F, 0x8B15, 0xD670, 0x8B16, 0xD671, 0x8B17, 0xD672, 0x8B18, 0xD673, 0x8B19, 0xD674, 0x8B1A, 0xD675, + 0x8B1B, 0xD676, 0x8B1C, 0xD677, 0x8B1D, 0xD678, 0x8B1E, 0xD679, 0x8B1F, 0xD67A, 0x8B20, 0xD67B, 0x8B21, 0xD67C, 0x8B22, 0xD67D, + 0x8B23, 0xD67E, 0x8B24, 0xD680, 0x8B25, 0xD681, 0x8B26, 0xF6A5, 0x8B27, 0xD682, 0x8B28, 0xD683, 0x8B29, 0xD684, 0x8B2A, 0xD685, + 0x8B2B, 0xD686, 0x8B2C, 0xD687, 0x8B2D, 0xD688, 0x8B2E, 0xD689, 0x8B2F, 0xD68A, 0x8B30, 0xD68B, 0x8B31, 0xD68C, 0x8B32, 0xD68D, + 0x8B33, 0xD68E, 0x8B34, 0xD68F, 0x8B35, 0xD690, 0x8B36, 0xD691, 0x8B37, 0xD692, 0x8B38, 0xD693, 0x8B39, 0xD694, 0x8B3A, 0xD695, + 0x8B3B, 0xD696, 0x8B3C, 0xD697, 0x8B3D, 0xD698, 0x8B3E, 0xD699, 0x8B3F, 0xD69A, 0x8B40, 0xD69B, 0x8B41, 0xD69C, 0x8B42, 0xD69D, + 0x8B43, 0xD69E, 0x8B44, 0xD69F, 0x8B45, 0xD6A0, 0x8B46, 0xD740, 0x8B47, 0xD741, 0x8B48, 0xD742, 0x8B49, 0xD743, 0x8B4A, 0xD744, + 0x8B4B, 0xD745, 0x8B4C, 0xD746, 0x8B4D, 0xD747, 0x8B4E, 0xD748, 0x8B4F, 0xD749, 0x8B50, 0xD74A, 0x8B51, 0xD74B, 0x8B52, 0xD74C, + 0x8B53, 0xD74D, 0x8B54, 0xD74E, 0x8B55, 0xD74F, 0x8B56, 0xD750, 0x8B57, 0xD751, 0x8B58, 0xD752, 0x8B59, 0xD753, 0x8B5A, 0xD754, + 0x8B5B, 0xD755, 0x8B5C, 0xD756, 0x8B5D, 0xD757, 0x8B5E, 0xD758, 0x8B5F, 0xD759, 0x8B60, 0xD75A, 0x8B61, 0xD75B, 0x8B62, 0xD75C, + 0x8B63, 0xD75D, 0x8B64, 0xD75E, 0x8B65, 0xD75F, 0x8B66, 0xBEAF, 0x8B67, 0xD760, 0x8B68, 0xD761, 0x8B69, 0xD762, 0x8B6A, 0xD763, + 0x8B6B, 0xD764, 0x8B6C, 0xC6A9, 0x8B6D, 0xD765, 0x8B6E, 0xD766, 0x8B6F, 0xD767, 0x8B70, 0xD768, 0x8B71, 0xD769, 0x8B72, 0xD76A, + 0x8B73, 0xD76B, 0x8B74, 0xD76C, 0x8B75, 0xD76D, 0x8B76, 0xD76E, 0x8B77, 0xD76F, 0x8B78, 0xD770, 0x8B79, 0xD771, 0x8B7A, 0xD772, + 0x8B7B, 0xD773, 0x8B7C, 0xD774, 0x8B7D, 0xD775, 0x8B7E, 0xD776, 0x8B7F, 0xD777, 0x8B80, 0xD778, 0x8B81, 0xD779, 0x8B82, 0xD77A, + 0x8B83, 0xD77B, 0x8B84, 0xD77C, 0x8B85, 0xD77D, 0x8B86, 0xD77E, 0x8B87, 0xD780, 0x8B88, 0xD781, 0x8B89, 0xD782, 0x8B8A, 0xD783, + 0x8B8B, 0xD784, 0x8B8C, 0xD785, 0x8B8D, 0xD786, 0x8B8E, 0xD787, 0x8B8F, 0xD788, 0x8B90, 0xD789, 0x8B91, 0xD78A, 0x8B92, 0xD78B, + 0x8B93, 0xD78C, 0x8B94, 0xD78D, 0x8B95, 0xD78E, 0x8B96, 0xD78F, 0x8B97, 0xD790, 0x8B98, 0xD791, 0x8B99, 0xD792, 0x8B9A, 0xD793, + 0x8B9B, 0xD794, 0x8B9C, 0xD795, 0x8B9D, 0xD796, 0x8B9E, 0xD797, 0x8B9F, 0xD798, 0x8BA0, 0xDAA5, 0x8BA1, 0xBCC6, 0x8BA2, 0xB6A9, + 0x8BA3, 0xB8BC, 0x8BA4, 0xC8CF, 0x8BA5, 0xBCA5, 0x8BA6, 0xDAA6, 0x8BA7, 0xDAA7, 0x8BA8, 0xCCD6, 0x8BA9, 0xC8C3, 0x8BAA, 0xDAA8, + 0x8BAB, 0xC6FD, 0x8BAC, 0xD799, 0x8BAD, 0xD1B5, 0x8BAE, 0xD2E9, 0x8BAF, 0xD1B6, 0x8BB0, 0xBCC7, 0x8BB1, 0xD79A, 0x8BB2, 0xBDB2, + 0x8BB3, 0xBBE4, 0x8BB4, 0xDAA9, 0x8BB5, 0xDAAA, 0x8BB6, 0xD1C8, 0x8BB7, 0xDAAB, 0x8BB8, 0xD0ED, 0x8BB9, 0xB6EF, 0x8BBA, 0xC2DB, + 0x8BBB, 0xD79B, 0x8BBC, 0xCBCF, 0x8BBD, 0xB7ED, 0x8BBE, 0xC9E8, 0x8BBF, 0xB7C3, 0x8BC0, 0xBEF7, 0x8BC1, 0xD6A4, 0x8BC2, 0xDAAC, + 0x8BC3, 0xDAAD, 0x8BC4, 0xC6C0, 0x8BC5, 0xD7E7, 0x8BC6, 0xCAB6, 0x8BC7, 0xD79C, 0x8BC8, 0xD5A9, 0x8BC9, 0xCBDF, 0x8BCA, 0xD5EF, + 0x8BCB, 0xDAAE, 0x8BCC, 0xD6DF, 0x8BCD, 0xB4CA, 0x8BCE, 0xDAB0, 0x8BCF, 0xDAAF, 0x8BD0, 0xD79D, 0x8BD1, 0xD2EB, 0x8BD2, 0xDAB1, + 0x8BD3, 0xDAB2, 0x8BD4, 0xDAB3, 0x8BD5, 0xCAD4, 0x8BD6, 0xDAB4, 0x8BD7, 0xCAAB, 0x8BD8, 0xDAB5, 0x8BD9, 0xDAB6, 0x8BDA, 0xB3CF, + 0x8BDB, 0xD6EF, 0x8BDC, 0xDAB7, 0x8BDD, 0xBBB0, 0x8BDE, 0xB5AE, 0x8BDF, 0xDAB8, 0x8BE0, 0xDAB9, 0x8BE1, 0xB9EE, 0x8BE2, 0xD1AF, + 0x8BE3, 0xD2E8, 0x8BE4, 0xDABA, 0x8BE5, 0xB8C3, 0x8BE6, 0xCFEA, 0x8BE7, 0xB2EF, 0x8BE8, 0xDABB, 0x8BE9, 0xDABC, 0x8BEA, 0xD79E, + 0x8BEB, 0xBDEB, 0x8BEC, 0xCEDC, 0x8BED, 0xD3EF, 0x8BEE, 0xDABD, 0x8BEF, 0xCEF3, 0x8BF0, 0xDABE, 0x8BF1, 0xD3D5, 0x8BF2, 0xBBE5, + 0x8BF3, 0xDABF, 0x8BF4, 0xCBB5, 0x8BF5, 0xCBD0, 0x8BF6, 0xDAC0, 0x8BF7, 0xC7EB, 0x8BF8, 0xD6EE, 0x8BF9, 0xDAC1, 0x8BFA, 0xC5B5, + 0x8BFB, 0xB6C1, 0x8BFC, 0xDAC2, 0x8BFD, 0xB7CC, 0x8BFE, 0xBFCE, 0x8BFF, 0xDAC3, 0x8C00, 0xDAC4, 0x8C01, 0xCBAD, 0x8C02, 0xDAC5, + 0x8C03, 0xB5F7, 0x8C04, 0xDAC6, 0x8C05, 0xC1C2, 0x8C06, 0xD7BB, 0x8C07, 0xDAC7, 0x8C08, 0xCCB8, 0x8C09, 0xD79F, 0x8C0A, 0xD2EA, + 0x8C0B, 0xC4B1, 0x8C0C, 0xDAC8, 0x8C0D, 0xB5FD, 0x8C0E, 0xBBD1, 0x8C0F, 0xDAC9, 0x8C10, 0xD0B3, 0x8C11, 0xDACA, 0x8C12, 0xDACB, + 0x8C13, 0xCEBD, 0x8C14, 0xDACC, 0x8C15, 0xDACD, 0x8C16, 0xDACE, 0x8C17, 0xB2F7, 0x8C18, 0xDAD1, 0x8C19, 0xDACF, 0x8C1A, 0xD1E8, + 0x8C1B, 0xDAD0, 0x8C1C, 0xC3D5, 0x8C1D, 0xDAD2, 0x8C1E, 0xD7A0, 0x8C1F, 0xDAD3, 0x8C20, 0xDAD4, 0x8C21, 0xDAD5, 0x8C22, 0xD0BB, + 0x8C23, 0xD2A5, 0x8C24, 0xB0F9, 0x8C25, 0xDAD6, 0x8C26, 0xC7AB, 0x8C27, 0xDAD7, 0x8C28, 0xBDF7, 0x8C29, 0xC3A1, 0x8C2A, 0xDAD8, + 0x8C2B, 0xDAD9, 0x8C2C, 0xC3FD, 0x8C2D, 0xCCB7, 0x8C2E, 0xDADA, 0x8C2F, 0xDADB, 0x8C30, 0xC0BE, 0x8C31, 0xC6D7, 0x8C32, 0xDADC, + 0x8C33, 0xDADD, 0x8C34, 0xC7B4, 0x8C35, 0xDADE, 0x8C36, 0xDADF, 0x8C37, 0xB9C8, 0x8C38, 0xD840, 0x8C39, 0xD841, 0x8C3A, 0xD842, + 0x8C3B, 0xD843, 0x8C3C, 0xD844, 0x8C3D, 0xD845, 0x8C3E, 0xD846, 0x8C3F, 0xD847, 0x8C40, 0xD848, 0x8C41, 0xBBED, 0x8C42, 0xD849, + 0x8C43, 0xD84A, 0x8C44, 0xD84B, 0x8C45, 0xD84C, 0x8C46, 0xB6B9, 0x8C47, 0xF4F8, 0x8C48, 0xD84D, 0x8C49, 0xF4F9, 0x8C4A, 0xD84E, + 0x8C4B, 0xD84F, 0x8C4C, 0xCDE3, 0x8C4D, 0xD850, 0x8C4E, 0xD851, 0x8C4F, 0xD852, 0x8C50, 0xD853, 0x8C51, 0xD854, 0x8C52, 0xD855, + 0x8C53, 0xD856, 0x8C54, 0xD857, 0x8C55, 0xF5B9, 0x8C56, 0xD858, 0x8C57, 0xD859, 0x8C58, 0xD85A, 0x8C59, 0xD85B, 0x8C5A, 0xEBE0, + 0x8C5B, 0xD85C, 0x8C5C, 0xD85D, 0x8C5D, 0xD85E, 0x8C5E, 0xD85F, 0x8C5F, 0xD860, 0x8C60, 0xD861, 0x8C61, 0xCFF3, 0x8C62, 0xBBBF, + 0x8C63, 0xD862, 0x8C64, 0xD863, 0x8C65, 0xD864, 0x8C66, 0xD865, 0x8C67, 0xD866, 0x8C68, 0xD867, 0x8C69, 0xD868, 0x8C6A, 0xBAC0, + 0x8C6B, 0xD4A5, 0x8C6C, 0xD869, 0x8C6D, 0xD86A, 0x8C6E, 0xD86B, 0x8C6F, 0xD86C, 0x8C70, 0xD86D, 0x8C71, 0xD86E, 0x8C72, 0xD86F, + 0x8C73, 0xE1D9, 0x8C74, 0xD870, 0x8C75, 0xD871, 0x8C76, 0xD872, 0x8C77, 0xD873, 0x8C78, 0xF5F4, 0x8C79, 0xB1AA, 0x8C7A, 0xB2F2, + 0x8C7B, 0xD874, 0x8C7C, 0xD875, 0x8C7D, 0xD876, 0x8C7E, 0xD877, 0x8C7F, 0xD878, 0x8C80, 0xD879, 0x8C81, 0xD87A, 0x8C82, 0xF5F5, + 0x8C83, 0xD87B, 0x8C84, 0xD87C, 0x8C85, 0xF5F7, 0x8C86, 0xD87D, 0x8C87, 0xD87E, 0x8C88, 0xD880, 0x8C89, 0xBAD1, 0x8C8A, 0xF5F6, + 0x8C8B, 0xD881, 0x8C8C, 0xC3B2, 0x8C8D, 0xD882, 0x8C8E, 0xD883, 0x8C8F, 0xD884, 0x8C90, 0xD885, 0x8C91, 0xD886, 0x8C92, 0xD887, + 0x8C93, 0xD888, 0x8C94, 0xF5F9, 0x8C95, 0xD889, 0x8C96, 0xD88A, 0x8C97, 0xD88B, 0x8C98, 0xF5F8, 0x8C99, 0xD88C, 0x8C9A, 0xD88D, + 0x8C9B, 0xD88E, 0x8C9C, 0xD88F, 0x8C9D, 0xD890, 0x8C9E, 0xD891, 0x8C9F, 0xD892, 0x8CA0, 0xD893, 0x8CA1, 0xD894, 0x8CA2, 0xD895, + 0x8CA3, 0xD896, 0x8CA4, 0xD897, 0x8CA5, 0xD898, 0x8CA6, 0xD899, 0x8CA7, 0xD89A, 0x8CA8, 0xD89B, 0x8CA9, 0xD89C, 0x8CAA, 0xD89D, + 0x8CAB, 0xD89E, 0x8CAC, 0xD89F, 0x8CAD, 0xD8A0, 0x8CAE, 0xD940, 0x8CAF, 0xD941, 0x8CB0, 0xD942, 0x8CB1, 0xD943, 0x8CB2, 0xD944, + 0x8CB3, 0xD945, 0x8CB4, 0xD946, 0x8CB5, 0xD947, 0x8CB6, 0xD948, 0x8CB7, 0xD949, 0x8CB8, 0xD94A, 0x8CB9, 0xD94B, 0x8CBA, 0xD94C, + 0x8CBB, 0xD94D, 0x8CBC, 0xD94E, 0x8CBD, 0xD94F, 0x8CBE, 0xD950, 0x8CBF, 0xD951, 0x8CC0, 0xD952, 0x8CC1, 0xD953, 0x8CC2, 0xD954, + 0x8CC3, 0xD955, 0x8CC4, 0xD956, 0x8CC5, 0xD957, 0x8CC6, 0xD958, 0x8CC7, 0xD959, 0x8CC8, 0xD95A, 0x8CC9, 0xD95B, 0x8CCA, 0xD95C, + 0x8CCB, 0xD95D, 0x8CCC, 0xD95E, 0x8CCD, 0xD95F, 0x8CCE, 0xD960, 0x8CCF, 0xD961, 0x8CD0, 0xD962, 0x8CD1, 0xD963, 0x8CD2, 0xD964, + 0x8CD3, 0xD965, 0x8CD4, 0xD966, 0x8CD5, 0xD967, 0x8CD6, 0xD968, 0x8CD7, 0xD969, 0x8CD8, 0xD96A, 0x8CD9, 0xD96B, 0x8CDA, 0xD96C, + 0x8CDB, 0xD96D, 0x8CDC, 0xD96E, 0x8CDD, 0xD96F, 0x8CDE, 0xD970, 0x8CDF, 0xD971, 0x8CE0, 0xD972, 0x8CE1, 0xD973, 0x8CE2, 0xD974, + 0x8CE3, 0xD975, 0x8CE4, 0xD976, 0x8CE5, 0xD977, 0x8CE6, 0xD978, 0x8CE7, 0xD979, 0x8CE8, 0xD97A, 0x8CE9, 0xD97B, 0x8CEA, 0xD97C, + 0x8CEB, 0xD97D, 0x8CEC, 0xD97E, 0x8CED, 0xD980, 0x8CEE, 0xD981, 0x8CEF, 0xD982, 0x8CF0, 0xD983, 0x8CF1, 0xD984, 0x8CF2, 0xD985, + 0x8CF3, 0xD986, 0x8CF4, 0xD987, 0x8CF5, 0xD988, 0x8CF6, 0xD989, 0x8CF7, 0xD98A, 0x8CF8, 0xD98B, 0x8CF9, 0xD98C, 0x8CFA, 0xD98D, + 0x8CFB, 0xD98E, 0x8CFC, 0xD98F, 0x8CFD, 0xD990, 0x8CFE, 0xD991, 0x8CFF, 0xD992, 0x8D00, 0xD993, 0x8D01, 0xD994, 0x8D02, 0xD995, + 0x8D03, 0xD996, 0x8D04, 0xD997, 0x8D05, 0xD998, 0x8D06, 0xD999, 0x8D07, 0xD99A, 0x8D08, 0xD99B, 0x8D09, 0xD99C, 0x8D0A, 0xD99D, + 0x8D0B, 0xD99E, 0x8D0C, 0xD99F, 0x8D0D, 0xD9A0, 0x8D0E, 0xDA40, 0x8D0F, 0xDA41, 0x8D10, 0xDA42, 0x8D11, 0xDA43, 0x8D12, 0xDA44, + 0x8D13, 0xDA45, 0x8D14, 0xDA46, 0x8D15, 0xDA47, 0x8D16, 0xDA48, 0x8D17, 0xDA49, 0x8D18, 0xDA4A, 0x8D19, 0xDA4B, 0x8D1A, 0xDA4C, + 0x8D1B, 0xDA4D, 0x8D1C, 0xDA4E, 0x8D1D, 0xB1B4, 0x8D1E, 0xD5EA, 0x8D1F, 0xB8BA, 0x8D20, 0xDA4F, 0x8D21, 0xB9B1, 0x8D22, 0xB2C6, + 0x8D23, 0xD4F0, 0x8D24, 0xCFCD, 0x8D25, 0xB0DC, 0x8D26, 0xD5CB, 0x8D27, 0xBBF5, 0x8D28, 0xD6CA, 0x8D29, 0xB7B7, 0x8D2A, 0xCCB0, + 0x8D2B, 0xC6B6, 0x8D2C, 0xB1E1, 0x8D2D, 0xB9BA, 0x8D2E, 0xD6FC, 0x8D2F, 0xB9E1, 0x8D30, 0xB7A1, 0x8D31, 0xBCFA, 0x8D32, 0xEADA, + 0x8D33, 0xEADB, 0x8D34, 0xCCF9, 0x8D35, 0xB9F3, 0x8D36, 0xEADC, 0x8D37, 0xB4FB, 0x8D38, 0xC3B3, 0x8D39, 0xB7D1, 0x8D3A, 0xBAD8, + 0x8D3B, 0xEADD, 0x8D3C, 0xD4F4, 0x8D3D, 0xEADE, 0x8D3E, 0xBCD6, 0x8D3F, 0xBBDF, 0x8D40, 0xEADF, 0x8D41, 0xC1DE, 0x8D42, 0xC2B8, + 0x8D43, 0xD4DF, 0x8D44, 0xD7CA, 0x8D45, 0xEAE0, 0x8D46, 0xEAE1, 0x8D47, 0xEAE4, 0x8D48, 0xEAE2, 0x8D49, 0xEAE3, 0x8D4A, 0xC9DE, + 0x8D4B, 0xB8B3, 0x8D4C, 0xB6C4, 0x8D4D, 0xEAE5, 0x8D4E, 0xCAEA, 0x8D4F, 0xC9CD, 0x8D50, 0xB4CD, 0x8D51, 0xDA50, 0x8D52, 0xDA51, + 0x8D53, 0xE2D9, 0x8D54, 0xC5E2, 0x8D55, 0xEAE6, 0x8D56, 0xC0B5, 0x8D57, 0xDA52, 0x8D58, 0xD7B8, 0x8D59, 0xEAE7, 0x8D5A, 0xD7AC, + 0x8D5B, 0xC8FC, 0x8D5C, 0xD8D3, 0x8D5D, 0xD8CD, 0x8D5E, 0xD4DE, 0x8D5F, 0xDA53, 0x8D60, 0xD4F9, 0x8D61, 0xC9C4, 0x8D62, 0xD3AE, + 0x8D63, 0xB8D3, 0x8D64, 0xB3E0, 0x8D65, 0xDA54, 0x8D66, 0xC9E2, 0x8D67, 0xF4F6, 0x8D68, 0xDA55, 0x8D69, 0xDA56, 0x8D6A, 0xDA57, + 0x8D6B, 0xBAD5, 0x8D6C, 0xDA58, 0x8D6D, 0xF4F7, 0x8D6E, 0xDA59, 0x8D6F, 0xDA5A, 0x8D70, 0xD7DF, 0x8D71, 0xDA5B, 0x8D72, 0xDA5C, + 0x8D73, 0xF4F1, 0x8D74, 0xB8B0, 0x8D75, 0xD5D4, 0x8D76, 0xB8CF, 0x8D77, 0xC6F0, 0x8D78, 0xDA5D, 0x8D79, 0xDA5E, 0x8D7A, 0xDA5F, + 0x8D7B, 0xDA60, 0x8D7C, 0xDA61, 0x8D7D, 0xDA62, 0x8D7E, 0xDA63, 0x8D7F, 0xDA64, 0x8D80, 0xDA65, 0x8D81, 0xB3C3, 0x8D82, 0xDA66, + 0x8D83, 0xDA67, 0x8D84, 0xF4F2, 0x8D85, 0xB3AC, 0x8D86, 0xDA68, 0x8D87, 0xDA69, 0x8D88, 0xDA6A, 0x8D89, 0xDA6B, 0x8D8A, 0xD4BD, + 0x8D8B, 0xC7F7, 0x8D8C, 0xDA6C, 0x8D8D, 0xDA6D, 0x8D8E, 0xDA6E, 0x8D8F, 0xDA6F, 0x8D90, 0xDA70, 0x8D91, 0xF4F4, 0x8D92, 0xDA71, + 0x8D93, 0xDA72, 0x8D94, 0xF4F3, 0x8D95, 0xDA73, 0x8D96, 0xDA74, 0x8D97, 0xDA75, 0x8D98, 0xDA76, 0x8D99, 0xDA77, 0x8D9A, 0xDA78, + 0x8D9B, 0xDA79, 0x8D9C, 0xDA7A, 0x8D9D, 0xDA7B, 0x8D9E, 0xDA7C, 0x8D9F, 0xCCCB, 0x8DA0, 0xDA7D, 0x8DA1, 0xDA7E, 0x8DA2, 0xDA80, + 0x8DA3, 0xC8A4, 0x8DA4, 0xDA81, 0x8DA5, 0xDA82, 0x8DA6, 0xDA83, 0x8DA7, 0xDA84, 0x8DA8, 0xDA85, 0x8DA9, 0xDA86, 0x8DAA, 0xDA87, + 0x8DAB, 0xDA88, 0x8DAC, 0xDA89, 0x8DAD, 0xDA8A, 0x8DAE, 0xDA8B, 0x8DAF, 0xDA8C, 0x8DB0, 0xDA8D, 0x8DB1, 0xF4F5, 0x8DB2, 0xDA8E, + 0x8DB3, 0xD7E3, 0x8DB4, 0xC5BF, 0x8DB5, 0xF5C0, 0x8DB6, 0xDA8F, 0x8DB7, 0xDA90, 0x8DB8, 0xF5BB, 0x8DB9, 0xDA91, 0x8DBA, 0xF5C3, + 0x8DBB, 0xDA92, 0x8DBC, 0xF5C2, 0x8DBD, 0xDA93, 0x8DBE, 0xD6BA, 0x8DBF, 0xF5C1, 0x8DC0, 0xDA94, 0x8DC1, 0xDA95, 0x8DC2, 0xDA96, + 0x8DC3, 0xD4BE, 0x8DC4, 0xF5C4, 0x8DC5, 0xDA97, 0x8DC6, 0xF5CC, 0x8DC7, 0xDA98, 0x8DC8, 0xDA99, 0x8DC9, 0xDA9A, 0x8DCA, 0xDA9B, + 0x8DCB, 0xB0CF, 0x8DCC, 0xB5F8, 0x8DCD, 0xDA9C, 0x8DCE, 0xF5C9, 0x8DCF, 0xF5CA, 0x8DD0, 0xDA9D, 0x8DD1, 0xC5DC, 0x8DD2, 0xDA9E, + 0x8DD3, 0xDA9F, 0x8DD4, 0xDAA0, 0x8DD5, 0xDB40, 0x8DD6, 0xF5C5, 0x8DD7, 0xF5C6, 0x8DD8, 0xDB41, 0x8DD9, 0xDB42, 0x8DDA, 0xF5C7, + 0x8DDB, 0xF5CB, 0x8DDC, 0xDB43, 0x8DDD, 0xBEE0, 0x8DDE, 0xF5C8, 0x8DDF, 0xB8FA, 0x8DE0, 0xDB44, 0x8DE1, 0xDB45, 0x8DE2, 0xDB46, + 0x8DE3, 0xF5D0, 0x8DE4, 0xF5D3, 0x8DE5, 0xDB47, 0x8DE6, 0xDB48, 0x8DE7, 0xDB49, 0x8DE8, 0xBFE7, 0x8DE9, 0xDB4A, 0x8DEA, 0xB9F2, + 0x8DEB, 0xF5BC, 0x8DEC, 0xF5CD, 0x8DED, 0xDB4B, 0x8DEE, 0xDB4C, 0x8DEF, 0xC2B7, 0x8DF0, 0xDB4D, 0x8DF1, 0xDB4E, 0x8DF2, 0xDB4F, + 0x8DF3, 0xCCF8, 0x8DF4, 0xDB50, 0x8DF5, 0xBCF9, 0x8DF6, 0xDB51, 0x8DF7, 0xF5CE, 0x8DF8, 0xF5CF, 0x8DF9, 0xF5D1, 0x8DFA, 0xB6E5, + 0x8DFB, 0xF5D2, 0x8DFC, 0xDB52, 0x8DFD, 0xF5D5, 0x8DFE, 0xDB53, 0x8DFF, 0xDB54, 0x8E00, 0xDB55, 0x8E01, 0xDB56, 0x8E02, 0xDB57, + 0x8E03, 0xDB58, 0x8E04, 0xDB59, 0x8E05, 0xF5BD, 0x8E06, 0xDB5A, 0x8E07, 0xDB5B, 0x8E08, 0xDB5C, 0x8E09, 0xF5D4, 0x8E0A, 0xD3BB, + 0x8E0B, 0xDB5D, 0x8E0C, 0xB3EC, 0x8E0D, 0xDB5E, 0x8E0E, 0xDB5F, 0x8E0F, 0xCCA4, 0x8E10, 0xDB60, 0x8E11, 0xDB61, 0x8E12, 0xDB62, + 0x8E13, 0xDB63, 0x8E14, 0xF5D6, 0x8E15, 0xDB64, 0x8E16, 0xDB65, 0x8E17, 0xDB66, 0x8E18, 0xDB67, 0x8E19, 0xDB68, 0x8E1A, 0xDB69, + 0x8E1B, 0xDB6A, 0x8E1C, 0xDB6B, 0x8E1D, 0xF5D7, 0x8E1E, 0xBEE1, 0x8E1F, 0xF5D8, 0x8E20, 0xDB6C, 0x8E21, 0xDB6D, 0x8E22, 0xCCDF, + 0x8E23, 0xF5DB, 0x8E24, 0xDB6E, 0x8E25, 0xDB6F, 0x8E26, 0xDB70, 0x8E27, 0xDB71, 0x8E28, 0xDB72, 0x8E29, 0xB2C8, 0x8E2A, 0xD7D9, + 0x8E2B, 0xDB73, 0x8E2C, 0xF5D9, 0x8E2D, 0xDB74, 0x8E2E, 0xF5DA, 0x8E2F, 0xF5DC, 0x8E30, 0xDB75, 0x8E31, 0xF5E2, 0x8E32, 0xDB76, + 0x8E33, 0xDB77, 0x8E34, 0xDB78, 0x8E35, 0xF5E0, 0x8E36, 0xDB79, 0x8E37, 0xDB7A, 0x8E38, 0xDB7B, 0x8E39, 0xF5DF, 0x8E3A, 0xF5DD, + 0x8E3B, 0xDB7C, 0x8E3C, 0xDB7D, 0x8E3D, 0xF5E1, 0x8E3E, 0xDB7E, 0x8E3F, 0xDB80, 0x8E40, 0xF5DE, 0x8E41, 0xF5E4, 0x8E42, 0xF5E5, + 0x8E43, 0xDB81, 0x8E44, 0xCCE3, 0x8E45, 0xDB82, 0x8E46, 0xDB83, 0x8E47, 0xE5BF, 0x8E48, 0xB5B8, 0x8E49, 0xF5E3, 0x8E4A, 0xF5E8, + 0x8E4B, 0xCCA3, 0x8E4C, 0xDB84, 0x8E4D, 0xDB85, 0x8E4E, 0xDB86, 0x8E4F, 0xDB87, 0x8E50, 0xDB88, 0x8E51, 0xF5E6, 0x8E52, 0xF5E7, + 0x8E53, 0xDB89, 0x8E54, 0xDB8A, 0x8E55, 0xDB8B, 0x8E56, 0xDB8C, 0x8E57, 0xDB8D, 0x8E58, 0xDB8E, 0x8E59, 0xF5BE, 0x8E5A, 0xDB8F, + 0x8E5B, 0xDB90, 0x8E5C, 0xDB91, 0x8E5D, 0xDB92, 0x8E5E, 0xDB93, 0x8E5F, 0xDB94, 0x8E60, 0xDB95, 0x8E61, 0xDB96, 0x8E62, 0xDB97, + 0x8E63, 0xDB98, 0x8E64, 0xDB99, 0x8E65, 0xDB9A, 0x8E66, 0xB1C4, 0x8E67, 0xDB9B, 0x8E68, 0xDB9C, 0x8E69, 0xF5BF, 0x8E6A, 0xDB9D, + 0x8E6B, 0xDB9E, 0x8E6C, 0xB5C5, 0x8E6D, 0xB2E4, 0x8E6E, 0xDB9F, 0x8E6F, 0xF5EC, 0x8E70, 0xF5E9, 0x8E71, 0xDBA0, 0x8E72, 0xB6D7, + 0x8E73, 0xDC40, 0x8E74, 0xF5ED, 0x8E75, 0xDC41, 0x8E76, 0xF5EA, 0x8E77, 0xDC42, 0x8E78, 0xDC43, 0x8E79, 0xDC44, 0x8E7A, 0xDC45, + 0x8E7B, 0xDC46, 0x8E7C, 0xF5EB, 0x8E7D, 0xDC47, 0x8E7E, 0xDC48, 0x8E7F, 0xB4DA, 0x8E80, 0xDC49, 0x8E81, 0xD4EA, 0x8E82, 0xDC4A, + 0x8E83, 0xDC4B, 0x8E84, 0xDC4C, 0x8E85, 0xF5EE, 0x8E86, 0xDC4D, 0x8E87, 0xB3F9, 0x8E88, 0xDC4E, 0x8E89, 0xDC4F, 0x8E8A, 0xDC50, + 0x8E8B, 0xDC51, 0x8E8C, 0xDC52, 0x8E8D, 0xDC53, 0x8E8E, 0xDC54, 0x8E8F, 0xF5EF, 0x8E90, 0xF5F1, 0x8E91, 0xDC55, 0x8E92, 0xDC56, + 0x8E93, 0xDC57, 0x8E94, 0xF5F0, 0x8E95, 0xDC58, 0x8E96, 0xDC59, 0x8E97, 0xDC5A, 0x8E98, 0xDC5B, 0x8E99, 0xDC5C, 0x8E9A, 0xDC5D, + 0x8E9B, 0xDC5E, 0x8E9C, 0xF5F2, 0x8E9D, 0xDC5F, 0x8E9E, 0xF5F3, 0x8E9F, 0xDC60, 0x8EA0, 0xDC61, 0x8EA1, 0xDC62, 0x8EA2, 0xDC63, + 0x8EA3, 0xDC64, 0x8EA4, 0xDC65, 0x8EA5, 0xDC66, 0x8EA6, 0xDC67, 0x8EA7, 0xDC68, 0x8EA8, 0xDC69, 0x8EA9, 0xDC6A, 0x8EAA, 0xDC6B, + 0x8EAB, 0xC9ED, 0x8EAC, 0xB9AA, 0x8EAD, 0xDC6C, 0x8EAE, 0xDC6D, 0x8EAF, 0xC7FB, 0x8EB0, 0xDC6E, 0x8EB1, 0xDC6F, 0x8EB2, 0xB6E3, + 0x8EB3, 0xDC70, 0x8EB4, 0xDC71, 0x8EB5, 0xDC72, 0x8EB6, 0xDC73, 0x8EB7, 0xDC74, 0x8EB8, 0xDC75, 0x8EB9, 0xDC76, 0x8EBA, 0xCCC9, + 0x8EBB, 0xDC77, 0x8EBC, 0xDC78, 0x8EBD, 0xDC79, 0x8EBE, 0xDC7A, 0x8EBF, 0xDC7B, 0x8EC0, 0xDC7C, 0x8EC1, 0xDC7D, 0x8EC2, 0xDC7E, + 0x8EC3, 0xDC80, 0x8EC4, 0xDC81, 0x8EC5, 0xDC82, 0x8EC6, 0xDC83, 0x8EC7, 0xDC84, 0x8EC8, 0xDC85, 0x8EC9, 0xDC86, 0x8ECA, 0xDC87, + 0x8ECB, 0xDC88, 0x8ECC, 0xDC89, 0x8ECD, 0xDC8A, 0x8ECE, 0xEAA6, 0x8ECF, 0xDC8B, 0x8ED0, 0xDC8C, 0x8ED1, 0xDC8D, 0x8ED2, 0xDC8E, + 0x8ED3, 0xDC8F, 0x8ED4, 0xDC90, 0x8ED5, 0xDC91, 0x8ED6, 0xDC92, 0x8ED7, 0xDC93, 0x8ED8, 0xDC94, 0x8ED9, 0xDC95, 0x8EDA, 0xDC96, + 0x8EDB, 0xDC97, 0x8EDC, 0xDC98, 0x8EDD, 0xDC99, 0x8EDE, 0xDC9A, 0x8EDF, 0xDC9B, 0x8EE0, 0xDC9C, 0x8EE1, 0xDC9D, 0x8EE2, 0xDC9E, + 0x8EE3, 0xDC9F, 0x8EE4, 0xDCA0, 0x8EE5, 0xDD40, 0x8EE6, 0xDD41, 0x8EE7, 0xDD42, 0x8EE8, 0xDD43, 0x8EE9, 0xDD44, 0x8EEA, 0xDD45, + 0x8EEB, 0xDD46, 0x8EEC, 0xDD47, 0x8EED, 0xDD48, 0x8EEE, 0xDD49, 0x8EEF, 0xDD4A, 0x8EF0, 0xDD4B, 0x8EF1, 0xDD4C, 0x8EF2, 0xDD4D, + 0x8EF3, 0xDD4E, 0x8EF4, 0xDD4F, 0x8EF5, 0xDD50, 0x8EF6, 0xDD51, 0x8EF7, 0xDD52, 0x8EF8, 0xDD53, 0x8EF9, 0xDD54, 0x8EFA, 0xDD55, + 0x8EFB, 0xDD56, 0x8EFC, 0xDD57, 0x8EFD, 0xDD58, 0x8EFE, 0xDD59, 0x8EFF, 0xDD5A, 0x8F00, 0xDD5B, 0x8F01, 0xDD5C, 0x8F02, 0xDD5D, + 0x8F03, 0xDD5E, 0x8F04, 0xDD5F, 0x8F05, 0xDD60, 0x8F06, 0xDD61, 0x8F07, 0xDD62, 0x8F08, 0xDD63, 0x8F09, 0xDD64, 0x8F0A, 0xDD65, + 0x8F0B, 0xDD66, 0x8F0C, 0xDD67, 0x8F0D, 0xDD68, 0x8F0E, 0xDD69, 0x8F0F, 0xDD6A, 0x8F10, 0xDD6B, 0x8F11, 0xDD6C, 0x8F12, 0xDD6D, + 0x8F13, 0xDD6E, 0x8F14, 0xDD6F, 0x8F15, 0xDD70, 0x8F16, 0xDD71, 0x8F17, 0xDD72, 0x8F18, 0xDD73, 0x8F19, 0xDD74, 0x8F1A, 0xDD75, + 0x8F1B, 0xDD76, 0x8F1C, 0xDD77, 0x8F1D, 0xDD78, 0x8F1E, 0xDD79, 0x8F1F, 0xDD7A, 0x8F20, 0xDD7B, 0x8F21, 0xDD7C, 0x8F22, 0xDD7D, + 0x8F23, 0xDD7E, 0x8F24, 0xDD80, 0x8F25, 0xDD81, 0x8F26, 0xDD82, 0x8F27, 0xDD83, 0x8F28, 0xDD84, 0x8F29, 0xDD85, 0x8F2A, 0xDD86, + 0x8F2B, 0xDD87, 0x8F2C, 0xDD88, 0x8F2D, 0xDD89, 0x8F2E, 0xDD8A, 0x8F2F, 0xDD8B, 0x8F30, 0xDD8C, 0x8F31, 0xDD8D, 0x8F32, 0xDD8E, + 0x8F33, 0xDD8F, 0x8F34, 0xDD90, 0x8F35, 0xDD91, 0x8F36, 0xDD92, 0x8F37, 0xDD93, 0x8F38, 0xDD94, 0x8F39, 0xDD95, 0x8F3A, 0xDD96, + 0x8F3B, 0xDD97, 0x8F3C, 0xDD98, 0x8F3D, 0xDD99, 0x8F3E, 0xDD9A, 0x8F3F, 0xDD9B, 0x8F40, 0xDD9C, 0x8F41, 0xDD9D, 0x8F42, 0xDD9E, + 0x8F43, 0xDD9F, 0x8F44, 0xDDA0, 0x8F45, 0xDE40, 0x8F46, 0xDE41, 0x8F47, 0xDE42, 0x8F48, 0xDE43, 0x8F49, 0xDE44, 0x8F4A, 0xDE45, + 0x8F4B, 0xDE46, 0x8F4C, 0xDE47, 0x8F4D, 0xDE48, 0x8F4E, 0xDE49, 0x8F4F, 0xDE4A, 0x8F50, 0xDE4B, 0x8F51, 0xDE4C, 0x8F52, 0xDE4D, + 0x8F53, 0xDE4E, 0x8F54, 0xDE4F, 0x8F55, 0xDE50, 0x8F56, 0xDE51, 0x8F57, 0xDE52, 0x8F58, 0xDE53, 0x8F59, 0xDE54, 0x8F5A, 0xDE55, + 0x8F5B, 0xDE56, 0x8F5C, 0xDE57, 0x8F5D, 0xDE58, 0x8F5E, 0xDE59, 0x8F5F, 0xDE5A, 0x8F60, 0xDE5B, 0x8F61, 0xDE5C, 0x8F62, 0xDE5D, + 0x8F63, 0xDE5E, 0x8F64, 0xDE5F, 0x8F65, 0xDE60, 0x8F66, 0xB3B5, 0x8F67, 0xD4FE, 0x8F68, 0xB9EC, 0x8F69, 0xD0F9, 0x8F6A, 0xDE61, + 0x8F6B, 0xE9ED, 0x8F6C, 0xD7AA, 0x8F6D, 0xE9EE, 0x8F6E, 0xC2D6, 0x8F6F, 0xC8ED, 0x8F70, 0xBAE4, 0x8F71, 0xE9EF, 0x8F72, 0xE9F0, + 0x8F73, 0xE9F1, 0x8F74, 0xD6E1, 0x8F75, 0xE9F2, 0x8F76, 0xE9F3, 0x8F77, 0xE9F5, 0x8F78, 0xE9F4, 0x8F79, 0xE9F6, 0x8F7A, 0xE9F7, + 0x8F7B, 0xC7E1, 0x8F7C, 0xE9F8, 0x8F7D, 0xD4D8, 0x8F7E, 0xE9F9, 0x8F7F, 0xBDCE, 0x8F80, 0xDE62, 0x8F81, 0xE9FA, 0x8F82, 0xE9FB, + 0x8F83, 0xBDCF, 0x8F84, 0xE9FC, 0x8F85, 0xB8A8, 0x8F86, 0xC1BE, 0x8F87, 0xE9FD, 0x8F88, 0xB1B2, 0x8F89, 0xBBD4, 0x8F8A, 0xB9F5, + 0x8F8B, 0xE9FE, 0x8F8C, 0xDE63, 0x8F8D, 0xEAA1, 0x8F8E, 0xEAA2, 0x8F8F, 0xEAA3, 0x8F90, 0xB7F8, 0x8F91, 0xBCAD, 0x8F92, 0xDE64, + 0x8F93, 0xCAE4, 0x8F94, 0xE0CE, 0x8F95, 0xD4AF, 0x8F96, 0xCFBD, 0x8F97, 0xD5B7, 0x8F98, 0xEAA4, 0x8F99, 0xD5DE, 0x8F9A, 0xEAA5, + 0x8F9B, 0xD0C1, 0x8F9C, 0xB9BC, 0x8F9D, 0xDE65, 0x8F9E, 0xB4C7, 0x8F9F, 0xB1D9, 0x8FA0, 0xDE66, 0x8FA1, 0xDE67, 0x8FA2, 0xDE68, + 0x8FA3, 0xC0B1, 0x8FA4, 0xDE69, 0x8FA5, 0xDE6A, 0x8FA6, 0xDE6B, 0x8FA7, 0xDE6C, 0x8FA8, 0xB1E6, 0x8FA9, 0xB1E7, 0x8FAA, 0xDE6D, + 0x8FAB, 0xB1E8, 0x8FAC, 0xDE6E, 0x8FAD, 0xDE6F, 0x8FAE, 0xDE70, 0x8FAF, 0xDE71, 0x8FB0, 0xB3BD, 0x8FB1, 0xC8E8, 0x8FB2, 0xDE72, + 0x8FB3, 0xDE73, 0x8FB4, 0xDE74, 0x8FB5, 0xDE75, 0x8FB6, 0xE5C1, 0x8FB7, 0xDE76, 0x8FB8, 0xDE77, 0x8FB9, 0xB1DF, 0x8FBA, 0xDE78, + 0x8FBB, 0xDE79, 0x8FBC, 0xDE7A, 0x8FBD, 0xC1C9, 0x8FBE, 0xB4EF, 0x8FBF, 0xDE7B, 0x8FC0, 0xDE7C, 0x8FC1, 0xC7A8, 0x8FC2, 0xD3D8, + 0x8FC3, 0xDE7D, 0x8FC4, 0xC6F9, 0x8FC5, 0xD1B8, 0x8FC6, 0xDE7E, 0x8FC7, 0xB9FD, 0x8FC8, 0xC2F5, 0x8FC9, 0xDE80, 0x8FCA, 0xDE81, + 0x8FCB, 0xDE82, 0x8FCC, 0xDE83, 0x8FCD, 0xDE84, 0x8FCE, 0xD3AD, 0x8FCF, 0xDE85, 0x8FD0, 0xD4CB, 0x8FD1, 0xBDFC, 0x8FD2, 0xDE86, + 0x8FD3, 0xE5C2, 0x8FD4, 0xB7B5, 0x8FD5, 0xE5C3, 0x8FD6, 0xDE87, 0x8FD7, 0xDE88, 0x8FD8, 0xBBB9, 0x8FD9, 0xD5E2, 0x8FDA, 0xDE89, + 0x8FDB, 0xBDF8, 0x8FDC, 0xD4B6, 0x8FDD, 0xCEA5, 0x8FDE, 0xC1AC, 0x8FDF, 0xB3D9, 0x8FE0, 0xDE8A, 0x8FE1, 0xDE8B, 0x8FE2, 0xCCF6, + 0x8FE3, 0xDE8C, 0x8FE4, 0xE5C6, 0x8FE5, 0xE5C4, 0x8FE6, 0xE5C8, 0x8FE7, 0xDE8D, 0x8FE8, 0xE5CA, 0x8FE9, 0xE5C7, 0x8FEA, 0xB5CF, + 0x8FEB, 0xC6C8, 0x8FEC, 0xDE8E, 0x8FED, 0xB5FC, 0x8FEE, 0xE5C5, 0x8FEF, 0xDE8F, 0x8FF0, 0xCAF6, 0x8FF1, 0xDE90, 0x8FF2, 0xDE91, + 0x8FF3, 0xE5C9, 0x8FF4, 0xDE92, 0x8FF5, 0xDE93, 0x8FF6, 0xDE94, 0x8FF7, 0xC3D4, 0x8FF8, 0xB1C5, 0x8FF9, 0xBCA3, 0x8FFA, 0xDE95, + 0x8FFB, 0xDE96, 0x8FFC, 0xDE97, 0x8FFD, 0xD7B7, 0x8FFE, 0xDE98, 0x8FFF, 0xDE99, 0x9000, 0xCDCB, 0x9001, 0xCBCD, 0x9002, 0xCACA, + 0x9003, 0xCCD3, 0x9004, 0xE5CC, 0x9005, 0xE5CB, 0x9006, 0xC4E6, 0x9007, 0xDE9A, 0x9008, 0xDE9B, 0x9009, 0xD1A1, 0x900A, 0xD1B7, + 0x900B, 0xE5CD, 0x900C, 0xDE9C, 0x900D, 0xE5D0, 0x900E, 0xDE9D, 0x900F, 0xCDB8, 0x9010, 0xD6F0, 0x9011, 0xE5CF, 0x9012, 0xB5DD, + 0x9013, 0xDE9E, 0x9014, 0xCDBE, 0x9015, 0xDE9F, 0x9016, 0xE5D1, 0x9017, 0xB6BA, 0x9018, 0xDEA0, 0x9019, 0xDF40, 0x901A, 0xCDA8, + 0x901B, 0xB9E4, 0x901C, 0xDF41, 0x901D, 0xCAC5, 0x901E, 0xB3D1, 0x901F, 0xCBD9, 0x9020, 0xD4EC, 0x9021, 0xE5D2, 0x9022, 0xB7EA, + 0x9023, 0xDF42, 0x9024, 0xDF43, 0x9025, 0xDF44, 0x9026, 0xE5CE, 0x9027, 0xDF45, 0x9028, 0xDF46, 0x9029, 0xDF47, 0x902A, 0xDF48, + 0x902B, 0xDF49, 0x902C, 0xDF4A, 0x902D, 0xE5D5, 0x902E, 0xB4FE, 0x902F, 0xE5D6, 0x9030, 0xDF4B, 0x9031, 0xDF4C, 0x9032, 0xDF4D, + 0x9033, 0xDF4E, 0x9034, 0xDF4F, 0x9035, 0xE5D3, 0x9036, 0xE5D4, 0x9037, 0xDF50, 0x9038, 0xD2DD, 0x9039, 0xDF51, 0x903A, 0xDF52, + 0x903B, 0xC2DF, 0x903C, 0xB1C6, 0x903D, 0xDF53, 0x903E, 0xD3E2, 0x903F, 0xDF54, 0x9040, 0xDF55, 0x9041, 0xB6DD, 0x9042, 0xCBEC, + 0x9043, 0xDF56, 0x9044, 0xE5D7, 0x9045, 0xDF57, 0x9046, 0xDF58, 0x9047, 0xD3F6, 0x9048, 0xDF59, 0x9049, 0xDF5A, 0x904A, 0xDF5B, + 0x904B, 0xDF5C, 0x904C, 0xDF5D, 0x904D, 0xB1E9, 0x904E, 0xDF5E, 0x904F, 0xB6F4, 0x9050, 0xE5DA, 0x9051, 0xE5D8, 0x9052, 0xE5D9, + 0x9053, 0xB5C0, 0x9054, 0xDF5F, 0x9055, 0xDF60, 0x9056, 0xDF61, 0x9057, 0xD2C5, 0x9058, 0xE5DC, 0x9059, 0xDF62, 0x905A, 0xDF63, + 0x905B, 0xE5DE, 0x905C, 0xDF64, 0x905D, 0xDF65, 0x905E, 0xDF66, 0x905F, 0xDF67, 0x9060, 0xDF68, 0x9061, 0xDF69, 0x9062, 0xE5DD, + 0x9063, 0xC7B2, 0x9064, 0xDF6A, 0x9065, 0xD2A3, 0x9066, 0xDF6B, 0x9067, 0xDF6C, 0x9068, 0xE5DB, 0x9069, 0xDF6D, 0x906A, 0xDF6E, + 0x906B, 0xDF6F, 0x906C, 0xDF70, 0x906D, 0xD4E2, 0x906E, 0xD5DA, 0x906F, 0xDF71, 0x9070, 0xDF72, 0x9071, 0xDF73, 0x9072, 0xDF74, + 0x9073, 0xDF75, 0x9074, 0xE5E0, 0x9075, 0xD7F1, 0x9076, 0xDF76, 0x9077, 0xDF77, 0x9078, 0xDF78, 0x9079, 0xDF79, 0x907A, 0xDF7A, + 0x907B, 0xDF7B, 0x907C, 0xDF7C, 0x907D, 0xE5E1, 0x907E, 0xDF7D, 0x907F, 0xB1DC, 0x9080, 0xD1FB, 0x9081, 0xDF7E, 0x9082, 0xE5E2, + 0x9083, 0xE5E4, 0x9084, 0xDF80, 0x9085, 0xDF81, 0x9086, 0xDF82, 0x9087, 0xDF83, 0x9088, 0xE5E3, 0x9089, 0xDF84, 0x908A, 0xDF85, + 0x908B, 0xE5E5, 0x908C, 0xDF86, 0x908D, 0xDF87, 0x908E, 0xDF88, 0x908F, 0xDF89, 0x9090, 0xDF8A, 0x9091, 0xD2D8, 0x9092, 0xDF8B, + 0x9093, 0xB5CB, 0x9094, 0xDF8C, 0x9095, 0xE7DF, 0x9096, 0xDF8D, 0x9097, 0xDAF5, 0x9098, 0xDF8E, 0x9099, 0xDAF8, 0x909A, 0xDF8F, + 0x909B, 0xDAF6, 0x909C, 0xDF90, 0x909D, 0xDAF7, 0x909E, 0xDF91, 0x909F, 0xDF92, 0x90A0, 0xDF93, 0x90A1, 0xDAFA, 0x90A2, 0xD0CF, + 0x90A3, 0xC4C7, 0x90A4, 0xDF94, 0x90A5, 0xDF95, 0x90A6, 0xB0EE, 0x90A7, 0xDF96, 0x90A8, 0xDF97, 0x90A9, 0xDF98, 0x90AA, 0xD0B0, + 0x90AB, 0xDF99, 0x90AC, 0xDAF9, 0x90AD, 0xDF9A, 0x90AE, 0xD3CA, 0x90AF, 0xBAAA, 0x90B0, 0xDBA2, 0x90B1, 0xC7F1, 0x90B2, 0xDF9B, + 0x90B3, 0xDAFC, 0x90B4, 0xDAFB, 0x90B5, 0xC9DB, 0x90B6, 0xDAFD, 0x90B7, 0xDF9C, 0x90B8, 0xDBA1, 0x90B9, 0xD7DE, 0x90BA, 0xDAFE, + 0x90BB, 0xC1DA, 0x90BC, 0xDF9D, 0x90BD, 0xDF9E, 0x90BE, 0xDBA5, 0x90BF, 0xDF9F, 0x90C0, 0xDFA0, 0x90C1, 0xD3F4, 0x90C2, 0xE040, + 0x90C3, 0xE041, 0x90C4, 0xDBA7, 0x90C5, 0xDBA4, 0x90C6, 0xE042, 0x90C7, 0xDBA8, 0x90C8, 0xE043, 0x90C9, 0xE044, 0x90CA, 0xBDBC, + 0x90CB, 0xE045, 0x90CC, 0xE046, 0x90CD, 0xE047, 0x90CE, 0xC0C9, 0x90CF, 0xDBA3, 0x90D0, 0xDBA6, 0x90D1, 0xD6A3, 0x90D2, 0xE048, + 0x90D3, 0xDBA9, 0x90D4, 0xE049, 0x90D5, 0xE04A, 0x90D6, 0xE04B, 0x90D7, 0xDBAD, 0x90D8, 0xE04C, 0x90D9, 0xE04D, 0x90DA, 0xE04E, + 0x90DB, 0xDBAE, 0x90DC, 0xDBAC, 0x90DD, 0xBAC2, 0x90DE, 0xE04F, 0x90DF, 0xE050, 0x90E0, 0xE051, 0x90E1, 0xBFA4, 0x90E2, 0xDBAB, + 0x90E3, 0xE052, 0x90E4, 0xE053, 0x90E5, 0xE054, 0x90E6, 0xDBAA, 0x90E7, 0xD4C7, 0x90E8, 0xB2BF, 0x90E9, 0xE055, 0x90EA, 0xE056, + 0x90EB, 0xDBAF, 0x90EC, 0xE057, 0x90ED, 0xB9F9, 0x90EE, 0xE058, 0x90EF, 0xDBB0, 0x90F0, 0xE059, 0x90F1, 0xE05A, 0x90F2, 0xE05B, + 0x90F3, 0xE05C, 0x90F4, 0xB3BB, 0x90F5, 0xE05D, 0x90F6, 0xE05E, 0x90F7, 0xE05F, 0x90F8, 0xB5A6, 0x90F9, 0xE060, 0x90FA, 0xE061, + 0x90FB, 0xE062, 0x90FC, 0xE063, 0x90FD, 0xB6BC, 0x90FE, 0xDBB1, 0x90FF, 0xE064, 0x9100, 0xE065, 0x9101, 0xE066, 0x9102, 0xB6F5, + 0x9103, 0xE067, 0x9104, 0xDBB2, 0x9105, 0xE068, 0x9106, 0xE069, 0x9107, 0xE06A, 0x9108, 0xE06B, 0x9109, 0xE06C, 0x910A, 0xE06D, + 0x910B, 0xE06E, 0x910C, 0xE06F, 0x910D, 0xE070, 0x910E, 0xE071, 0x910F, 0xE072, 0x9110, 0xE073, 0x9111, 0xE074, 0x9112, 0xE075, + 0x9113, 0xE076, 0x9114, 0xE077, 0x9115, 0xE078, 0x9116, 0xE079, 0x9117, 0xE07A, 0x9118, 0xE07B, 0x9119, 0xB1C9, 0x911A, 0xE07C, + 0x911B, 0xE07D, 0x911C, 0xE07E, 0x911D, 0xE080, 0x911E, 0xDBB4, 0x911F, 0xE081, 0x9120, 0xE082, 0x9121, 0xE083, 0x9122, 0xDBB3, + 0x9123, 0xDBB5, 0x9124, 0xE084, 0x9125, 0xE085, 0x9126, 0xE086, 0x9127, 0xE087, 0x9128, 0xE088, 0x9129, 0xE089, 0x912A, 0xE08A, + 0x912B, 0xE08B, 0x912C, 0xE08C, 0x912D, 0xE08D, 0x912E, 0xE08E, 0x912F, 0xDBB7, 0x9130, 0xE08F, 0x9131, 0xDBB6, 0x9132, 0xE090, + 0x9133, 0xE091, 0x9134, 0xE092, 0x9135, 0xE093, 0x9136, 0xE094, 0x9137, 0xE095, 0x9138, 0xE096, 0x9139, 0xDBB8, 0x913A, 0xE097, + 0x913B, 0xE098, 0x913C, 0xE099, 0x913D, 0xE09A, 0x913E, 0xE09B, 0x913F, 0xE09C, 0x9140, 0xE09D, 0x9141, 0xE09E, 0x9142, 0xE09F, + 0x9143, 0xDBB9, 0x9144, 0xE0A0, 0x9145, 0xE140, 0x9146, 0xDBBA, 0x9147, 0xE141, 0x9148, 0xE142, 0x9149, 0xD3CF, 0x914A, 0xF4FA, + 0x914B, 0xC7F5, 0x914C, 0xD7C3, 0x914D, 0xC5E4, 0x914E, 0xF4FC, 0x914F, 0xF4FD, 0x9150, 0xF4FB, 0x9151, 0xE143, 0x9152, 0xBEC6, + 0x9153, 0xE144, 0x9154, 0xE145, 0x9155, 0xE146, 0x9156, 0xE147, 0x9157, 0xD0EF, 0x9158, 0xE148, 0x9159, 0xE149, 0x915A, 0xB7D3, + 0x915B, 0xE14A, 0x915C, 0xE14B, 0x915D, 0xD4CD, 0x915E, 0xCCAA, 0x915F, 0xE14C, 0x9160, 0xE14D, 0x9161, 0xF5A2, 0x9162, 0xF5A1, + 0x9163, 0xBAA8, 0x9164, 0xF4FE, 0x9165, 0xCBD6, 0x9166, 0xE14E, 0x9167, 0xE14F, 0x9168, 0xE150, 0x9169, 0xF5A4, 0x916A, 0xC0D2, + 0x916B, 0xE151, 0x916C, 0xB3EA, 0x916D, 0xE152, 0x916E, 0xCDAA, 0x916F, 0xF5A5, 0x9170, 0xF5A3, 0x9171, 0xBDB4, 0x9172, 0xF5A8, + 0x9173, 0xE153, 0x9174, 0xF5A9, 0x9175, 0xBDCD, 0x9176, 0xC3B8, 0x9177, 0xBFE1, 0x9178, 0xCBE1, 0x9179, 0xF5AA, 0x917A, 0xE154, + 0x917B, 0xE155, 0x917C, 0xE156, 0x917D, 0xF5A6, 0x917E, 0xF5A7, 0x917F, 0xC4F0, 0x9180, 0xE157, 0x9181, 0xE158, 0x9182, 0xE159, + 0x9183, 0xE15A, 0x9184, 0xE15B, 0x9185, 0xF5AC, 0x9186, 0xE15C, 0x9187, 0xB4BC, 0x9188, 0xE15D, 0x9189, 0xD7ED, 0x918A, 0xE15E, + 0x918B, 0xB4D7, 0x918C, 0xF5AB, 0x918D, 0xF5AE, 0x918E, 0xE15F, 0x918F, 0xE160, 0x9190, 0xF5AD, 0x9191, 0xF5AF, 0x9192, 0xD0D1, + 0x9193, 0xE161, 0x9194, 0xE162, 0x9195, 0xE163, 0x9196, 0xE164, 0x9197, 0xE165, 0x9198, 0xE166, 0x9199, 0xE167, 0x919A, 0xC3D1, + 0x919B, 0xC8A9, 0x919C, 0xE168, 0x919D, 0xE169, 0x919E, 0xE16A, 0x919F, 0xE16B, 0x91A0, 0xE16C, 0x91A1, 0xE16D, 0x91A2, 0xF5B0, + 0x91A3, 0xF5B1, 0x91A4, 0xE16E, 0x91A5, 0xE16F, 0x91A6, 0xE170, 0x91A7, 0xE171, 0x91A8, 0xE172, 0x91A9, 0xE173, 0x91AA, 0xF5B2, + 0x91AB, 0xE174, 0x91AC, 0xE175, 0x91AD, 0xF5B3, 0x91AE, 0xF5B4, 0x91AF, 0xF5B5, 0x91B0, 0xE176, 0x91B1, 0xE177, 0x91B2, 0xE178, + 0x91B3, 0xE179, 0x91B4, 0xF5B7, 0x91B5, 0xF5B6, 0x91B6, 0xE17A, 0x91B7, 0xE17B, 0x91B8, 0xE17C, 0x91B9, 0xE17D, 0x91BA, 0xF5B8, + 0x91BB, 0xE17E, 0x91BC, 0xE180, 0x91BD, 0xE181, 0x91BE, 0xE182, 0x91BF, 0xE183, 0x91C0, 0xE184, 0x91C1, 0xE185, 0x91C2, 0xE186, + 0x91C3, 0xE187, 0x91C4, 0xE188, 0x91C5, 0xE189, 0x91C6, 0xE18A, 0x91C7, 0xB2C9, 0x91C8, 0xE18B, 0x91C9, 0xD3D4, 0x91CA, 0xCACD, + 0x91CB, 0xE18C, 0x91CC, 0xC0EF, 0x91CD, 0xD6D8, 0x91CE, 0xD2B0, 0x91CF, 0xC1BF, 0x91D0, 0xE18D, 0x91D1, 0xBDF0, 0x91D2, 0xE18E, + 0x91D3, 0xE18F, 0x91D4, 0xE190, 0x91D5, 0xE191, 0x91D6, 0xE192, 0x91D7, 0xE193, 0x91D8, 0xE194, 0x91D9, 0xE195, 0x91DA, 0xE196, + 0x91DB, 0xE197, 0x91DC, 0xB8AA, 0x91DD, 0xE198, 0x91DE, 0xE199, 0x91DF, 0xE19A, 0x91E0, 0xE19B, 0x91E1, 0xE19C, 0x91E2, 0xE19D, + 0x91E3, 0xE19E, 0x91E4, 0xE19F, 0x91E5, 0xE1A0, 0x91E6, 0xE240, 0x91E7, 0xE241, 0x91E8, 0xE242, 0x91E9, 0xE243, 0x91EA, 0xE244, + 0x91EB, 0xE245, 0x91EC, 0xE246, 0x91ED, 0xE247, 0x91EE, 0xE248, 0x91EF, 0xE249, 0x91F0, 0xE24A, 0x91F1, 0xE24B, 0x91F2, 0xE24C, + 0x91F3, 0xE24D, 0x91F4, 0xE24E, 0x91F5, 0xE24F, 0x91F6, 0xE250, 0x91F7, 0xE251, 0x91F8, 0xE252, 0x91F9, 0xE253, 0x91FA, 0xE254, + 0x91FB, 0xE255, 0x91FC, 0xE256, 0x91FD, 0xE257, 0x91FE, 0xE258, 0x91FF, 0xE259, 0x9200, 0xE25A, 0x9201, 0xE25B, 0x9202, 0xE25C, + 0x9203, 0xE25D, 0x9204, 0xE25E, 0x9205, 0xE25F, 0x9206, 0xE260, 0x9207, 0xE261, 0x9208, 0xE262, 0x9209, 0xE263, 0x920A, 0xE264, + 0x920B, 0xE265, 0x920C, 0xE266, 0x920D, 0xE267, 0x920E, 0xE268, 0x920F, 0xE269, 0x9210, 0xE26A, 0x9211, 0xE26B, 0x9212, 0xE26C, + 0x9213, 0xE26D, 0x9214, 0xE26E, 0x9215, 0xE26F, 0x9216, 0xE270, 0x9217, 0xE271, 0x9218, 0xE272, 0x9219, 0xE273, 0x921A, 0xE274, + 0x921B, 0xE275, 0x921C, 0xE276, 0x921D, 0xE277, 0x921E, 0xE278, 0x921F, 0xE279, 0x9220, 0xE27A, 0x9221, 0xE27B, 0x9222, 0xE27C, + 0x9223, 0xE27D, 0x9224, 0xE27E, 0x9225, 0xE280, 0x9226, 0xE281, 0x9227, 0xE282, 0x9228, 0xE283, 0x9229, 0xE284, 0x922A, 0xE285, + 0x922B, 0xE286, 0x922C, 0xE287, 0x922D, 0xE288, 0x922E, 0xE289, 0x922F, 0xE28A, 0x9230, 0xE28B, 0x9231, 0xE28C, 0x9232, 0xE28D, + 0x9233, 0xE28E, 0x9234, 0xE28F, 0x9235, 0xE290, 0x9236, 0xE291, 0x9237, 0xE292, 0x9238, 0xE293, 0x9239, 0xE294, 0x923A, 0xE295, + 0x923B, 0xE296, 0x923C, 0xE297, 0x923D, 0xE298, 0x923E, 0xE299, 0x923F, 0xE29A, 0x9240, 0xE29B, 0x9241, 0xE29C, 0x9242, 0xE29D, + 0x9243, 0xE29E, 0x9244, 0xE29F, 0x9245, 0xE2A0, 0x9246, 0xE340, 0x9247, 0xE341, 0x9248, 0xE342, 0x9249, 0xE343, 0x924A, 0xE344, + 0x924B, 0xE345, 0x924C, 0xE346, 0x924D, 0xE347, 0x924E, 0xE348, 0x924F, 0xE349, 0x9250, 0xE34A, 0x9251, 0xE34B, 0x9252, 0xE34C, + 0x9253, 0xE34D, 0x9254, 0xE34E, 0x9255, 0xE34F, 0x9256, 0xE350, 0x9257, 0xE351, 0x9258, 0xE352, 0x9259, 0xE353, 0x925A, 0xE354, + 0x925B, 0xE355, 0x925C, 0xE356, 0x925D, 0xE357, 0x925E, 0xE358, 0x925F, 0xE359, 0x9260, 0xE35A, 0x9261, 0xE35B, 0x9262, 0xE35C, + 0x9263, 0xE35D, 0x9264, 0xE35E, 0x9265, 0xE35F, 0x9266, 0xE360, 0x9267, 0xE361, 0x9268, 0xE362, 0x9269, 0xE363, 0x926A, 0xE364, + 0x926B, 0xE365, 0x926C, 0xE366, 0x926D, 0xE367, 0x926E, 0xE368, 0x926F, 0xE369, 0x9270, 0xE36A, 0x9271, 0xE36B, 0x9272, 0xE36C, + 0x9273, 0xE36D, 0x9274, 0xBCF8, 0x9275, 0xE36E, 0x9276, 0xE36F, 0x9277, 0xE370, 0x9278, 0xE371, 0x9279, 0xE372, 0x927A, 0xE373, + 0x927B, 0xE374, 0x927C, 0xE375, 0x927D, 0xE376, 0x927E, 0xE377, 0x927F, 0xE378, 0x9280, 0xE379, 0x9281, 0xE37A, 0x9282, 0xE37B, + 0x9283, 0xE37C, 0x9284, 0xE37D, 0x9285, 0xE37E, 0x9286, 0xE380, 0x9287, 0xE381, 0x9288, 0xE382, 0x9289, 0xE383, 0x928A, 0xE384, + 0x928B, 0xE385, 0x928C, 0xE386, 0x928D, 0xE387, 0x928E, 0xF6C6, 0x928F, 0xE388, 0x9290, 0xE389, 0x9291, 0xE38A, 0x9292, 0xE38B, + 0x9293, 0xE38C, 0x9294, 0xE38D, 0x9295, 0xE38E, 0x9296, 0xE38F, 0x9297, 0xE390, 0x9298, 0xE391, 0x9299, 0xE392, 0x929A, 0xE393, + 0x929B, 0xE394, 0x929C, 0xE395, 0x929D, 0xE396, 0x929E, 0xE397, 0x929F, 0xE398, 0x92A0, 0xE399, 0x92A1, 0xE39A, 0x92A2, 0xE39B, + 0x92A3, 0xE39C, 0x92A4, 0xE39D, 0x92A5, 0xE39E, 0x92A6, 0xE39F, 0x92A7, 0xE3A0, 0x92A8, 0xE440, 0x92A9, 0xE441, 0x92AA, 0xE442, + 0x92AB, 0xE443, 0x92AC, 0xE444, 0x92AD, 0xE445, 0x92AE, 0xF6C7, 0x92AF, 0xE446, 0x92B0, 0xE447, 0x92B1, 0xE448, 0x92B2, 0xE449, + 0x92B3, 0xE44A, 0x92B4, 0xE44B, 0x92B5, 0xE44C, 0x92B6, 0xE44D, 0x92B7, 0xE44E, 0x92B8, 0xE44F, 0x92B9, 0xE450, 0x92BA, 0xE451, + 0x92BB, 0xE452, 0x92BC, 0xE453, 0x92BD, 0xE454, 0x92BE, 0xE455, 0x92BF, 0xE456, 0x92C0, 0xE457, 0x92C1, 0xE458, 0x92C2, 0xE459, + 0x92C3, 0xE45A, 0x92C4, 0xE45B, 0x92C5, 0xE45C, 0x92C6, 0xE45D, 0x92C7, 0xE45E, 0x92C8, 0xF6C8, 0x92C9, 0xE45F, 0x92CA, 0xE460, + 0x92CB, 0xE461, 0x92CC, 0xE462, 0x92CD, 0xE463, 0x92CE, 0xE464, 0x92CF, 0xE465, 0x92D0, 0xE466, 0x92D1, 0xE467, 0x92D2, 0xE468, + 0x92D3, 0xE469, 0x92D4, 0xE46A, 0x92D5, 0xE46B, 0x92D6, 0xE46C, 0x92D7, 0xE46D, 0x92D8, 0xE46E, 0x92D9, 0xE46F, 0x92DA, 0xE470, + 0x92DB, 0xE471, 0x92DC, 0xE472, 0x92DD, 0xE473, 0x92DE, 0xE474, 0x92DF, 0xE475, 0x92E0, 0xE476, 0x92E1, 0xE477, 0x92E2, 0xE478, + 0x92E3, 0xE479, 0x92E4, 0xE47A, 0x92E5, 0xE47B, 0x92E6, 0xE47C, 0x92E7, 0xE47D, 0x92E8, 0xE47E, 0x92E9, 0xE480, 0x92EA, 0xE481, + 0x92EB, 0xE482, 0x92EC, 0xE483, 0x92ED, 0xE484, 0x92EE, 0xE485, 0x92EF, 0xE486, 0x92F0, 0xE487, 0x92F1, 0xE488, 0x92F2, 0xE489, + 0x92F3, 0xE48A, 0x92F4, 0xE48B, 0x92F5, 0xE48C, 0x92F6, 0xE48D, 0x92F7, 0xE48E, 0x92F8, 0xE48F, 0x92F9, 0xE490, 0x92FA, 0xE491, + 0x92FB, 0xE492, 0x92FC, 0xE493, 0x92FD, 0xE494, 0x92FE, 0xE495, 0x92FF, 0xE496, 0x9300, 0xE497, 0x9301, 0xE498, 0x9302, 0xE499, + 0x9303, 0xE49A, 0x9304, 0xE49B, 0x9305, 0xE49C, 0x9306, 0xE49D, 0x9307, 0xE49E, 0x9308, 0xE49F, 0x9309, 0xE4A0, 0x930A, 0xE540, + 0x930B, 0xE541, 0x930C, 0xE542, 0x930D, 0xE543, 0x930E, 0xE544, 0x930F, 0xE545, 0x9310, 0xE546, 0x9311, 0xE547, 0x9312, 0xE548, + 0x9313, 0xE549, 0x9314, 0xE54A, 0x9315, 0xE54B, 0x9316, 0xE54C, 0x9317, 0xE54D, 0x9318, 0xE54E, 0x9319, 0xE54F, 0x931A, 0xE550, + 0x931B, 0xE551, 0x931C, 0xE552, 0x931D, 0xE553, 0x931E, 0xE554, 0x931F, 0xE555, 0x9320, 0xE556, 0x9321, 0xE557, 0x9322, 0xE558, + 0x9323, 0xE559, 0x9324, 0xE55A, 0x9325, 0xE55B, 0x9326, 0xE55C, 0x9327, 0xE55D, 0x9328, 0xE55E, 0x9329, 0xE55F, 0x932A, 0xE560, + 0x932B, 0xE561, 0x932C, 0xE562, 0x932D, 0xE563, 0x932E, 0xE564, 0x932F, 0xE565, 0x9330, 0xE566, 0x9331, 0xE567, 0x9332, 0xE568, + 0x9333, 0xE569, 0x9334, 0xE56A, 0x9335, 0xE56B, 0x9336, 0xE56C, 0x9337, 0xE56D, 0x9338, 0xE56E, 0x9339, 0xE56F, 0x933A, 0xE570, + 0x933B, 0xE571, 0x933C, 0xE572, 0x933D, 0xE573, 0x933E, 0xF6C9, 0x933F, 0xE574, 0x9340, 0xE575, 0x9341, 0xE576, 0x9342, 0xE577, + 0x9343, 0xE578, 0x9344, 0xE579, 0x9345, 0xE57A, 0x9346, 0xE57B, 0x9347, 0xE57C, 0x9348, 0xE57D, 0x9349, 0xE57E, 0x934A, 0xE580, + 0x934B, 0xE581, 0x934C, 0xE582, 0x934D, 0xE583, 0x934E, 0xE584, 0x934F, 0xE585, 0x9350, 0xE586, 0x9351, 0xE587, 0x9352, 0xE588, + 0x9353, 0xE589, 0x9354, 0xE58A, 0x9355, 0xE58B, 0x9356, 0xE58C, 0x9357, 0xE58D, 0x9358, 0xE58E, 0x9359, 0xE58F, 0x935A, 0xE590, + 0x935B, 0xE591, 0x935C, 0xE592, 0x935D, 0xE593, 0x935E, 0xE594, 0x935F, 0xE595, 0x9360, 0xE596, 0x9361, 0xE597, 0x9362, 0xE598, + 0x9363, 0xE599, 0x9364, 0xE59A, 0x9365, 0xE59B, 0x9366, 0xE59C, 0x9367, 0xE59D, 0x9368, 0xE59E, 0x9369, 0xE59F, 0x936A, 0xF6CA, + 0x936B, 0xE5A0, 0x936C, 0xE640, 0x936D, 0xE641, 0x936E, 0xE642, 0x936F, 0xE643, 0x9370, 0xE644, 0x9371, 0xE645, 0x9372, 0xE646, + 0x9373, 0xE647, 0x9374, 0xE648, 0x9375, 0xE649, 0x9376, 0xE64A, 0x9377, 0xE64B, 0x9378, 0xE64C, 0x9379, 0xE64D, 0x937A, 0xE64E, + 0x937B, 0xE64F, 0x937C, 0xE650, 0x937D, 0xE651, 0x937E, 0xE652, 0x937F, 0xE653, 0x9380, 0xE654, 0x9381, 0xE655, 0x9382, 0xE656, + 0x9383, 0xE657, 0x9384, 0xE658, 0x9385, 0xE659, 0x9386, 0xE65A, 0x9387, 0xE65B, 0x9388, 0xE65C, 0x9389, 0xE65D, 0x938A, 0xE65E, + 0x938B, 0xE65F, 0x938C, 0xE660, 0x938D, 0xE661, 0x938E, 0xE662, 0x938F, 0xF6CC, 0x9390, 0xE663, 0x9391, 0xE664, 0x9392, 0xE665, + 0x9393, 0xE666, 0x9394, 0xE667, 0x9395, 0xE668, 0x9396, 0xE669, 0x9397, 0xE66A, 0x9398, 0xE66B, 0x9399, 0xE66C, 0x939A, 0xE66D, + 0x939B, 0xE66E, 0x939C, 0xE66F, 0x939D, 0xE670, 0x939E, 0xE671, 0x939F, 0xE672, 0x93A0, 0xE673, 0x93A1, 0xE674, 0x93A2, 0xE675, + 0x93A3, 0xE676, 0x93A4, 0xE677, 0x93A5, 0xE678, 0x93A6, 0xE679, 0x93A7, 0xE67A, 0x93A8, 0xE67B, 0x93A9, 0xE67C, 0x93AA, 0xE67D, + 0x93AB, 0xE67E, 0x93AC, 0xE680, 0x93AD, 0xE681, 0x93AE, 0xE682, 0x93AF, 0xE683, 0x93B0, 0xE684, 0x93B1, 0xE685, 0x93B2, 0xE686, + 0x93B3, 0xE687, 0x93B4, 0xE688, 0x93B5, 0xE689, 0x93B6, 0xE68A, 0x93B7, 0xE68B, 0x93B8, 0xE68C, 0x93B9, 0xE68D, 0x93BA, 0xE68E, + 0x93BB, 0xE68F, 0x93BC, 0xE690, 0x93BD, 0xE691, 0x93BE, 0xE692, 0x93BF, 0xE693, 0x93C0, 0xE694, 0x93C1, 0xE695, 0x93C2, 0xE696, + 0x93C3, 0xE697, 0x93C4, 0xE698, 0x93C5, 0xE699, 0x93C6, 0xE69A, 0x93C7, 0xE69B, 0x93C8, 0xE69C, 0x93C9, 0xE69D, 0x93CA, 0xF6CB, + 0x93CB, 0xE69E, 0x93CC, 0xE69F, 0x93CD, 0xE6A0, 0x93CE, 0xE740, 0x93CF, 0xE741, 0x93D0, 0xE742, 0x93D1, 0xE743, 0x93D2, 0xE744, + 0x93D3, 0xE745, 0x93D4, 0xE746, 0x93D5, 0xE747, 0x93D6, 0xF7E9, 0x93D7, 0xE748, 0x93D8, 0xE749, 0x93D9, 0xE74A, 0x93DA, 0xE74B, + 0x93DB, 0xE74C, 0x93DC, 0xE74D, 0x93DD, 0xE74E, 0x93DE, 0xE74F, 0x93DF, 0xE750, 0x93E0, 0xE751, 0x93E1, 0xE752, 0x93E2, 0xE753, + 0x93E3, 0xE754, 0x93E4, 0xE755, 0x93E5, 0xE756, 0x93E6, 0xE757, 0x93E7, 0xE758, 0x93E8, 0xE759, 0x93E9, 0xE75A, 0x93EA, 0xE75B, + 0x93EB, 0xE75C, 0x93EC, 0xE75D, 0x93ED, 0xE75E, 0x93EE, 0xE75F, 0x93EF, 0xE760, 0x93F0, 0xE761, 0x93F1, 0xE762, 0x93F2, 0xE763, + 0x93F3, 0xE764, 0x93F4, 0xE765, 0x93F5, 0xE766, 0x93F6, 0xE767, 0x93F7, 0xE768, 0x93F8, 0xE769, 0x93F9, 0xE76A, 0x93FA, 0xE76B, + 0x93FB, 0xE76C, 0x93FC, 0xE76D, 0x93FD, 0xE76E, 0x93FE, 0xE76F, 0x93FF, 0xE770, 0x9400, 0xE771, 0x9401, 0xE772, 0x9402, 0xE773, + 0x9403, 0xE774, 0x9404, 0xE775, 0x9405, 0xE776, 0x9406, 0xE777, 0x9407, 0xE778, 0x9408, 0xE779, 0x9409, 0xE77A, 0x940A, 0xE77B, + 0x940B, 0xE77C, 0x940C, 0xE77D, 0x940D, 0xE77E, 0x940E, 0xE780, 0x940F, 0xE781, 0x9410, 0xE782, 0x9411, 0xE783, 0x9412, 0xE784, + 0x9413, 0xE785, 0x9414, 0xE786, 0x9415, 0xE787, 0x9416, 0xE788, 0x9417, 0xE789, 0x9418, 0xE78A, 0x9419, 0xE78B, 0x941A, 0xE78C, + 0x941B, 0xE78D, 0x941C, 0xE78E, 0x941D, 0xE78F, 0x941E, 0xE790, 0x941F, 0xE791, 0x9420, 0xE792, 0x9421, 0xE793, 0x9422, 0xE794, + 0x9423, 0xE795, 0x9424, 0xE796, 0x9425, 0xE797, 0x9426, 0xE798, 0x9427, 0xE799, 0x9428, 0xE79A, 0x9429, 0xE79B, 0x942A, 0xE79C, + 0x942B, 0xE79D, 0x942C, 0xE79E, 0x942D, 0xE79F, 0x942E, 0xE7A0, 0x942F, 0xE840, 0x9430, 0xE841, 0x9431, 0xE842, 0x9432, 0xE843, + 0x9433, 0xE844, 0x9434, 0xE845, 0x9435, 0xE846, 0x9436, 0xE847, 0x9437, 0xE848, 0x9438, 0xE849, 0x9439, 0xE84A, 0x943A, 0xE84B, + 0x943B, 0xE84C, 0x943C, 0xE84D, 0x943D, 0xE84E, 0x943E, 0xF6CD, 0x943F, 0xE84F, 0x9440, 0xE850, 0x9441, 0xE851, 0x9442, 0xE852, + 0x9443, 0xE853, 0x9444, 0xE854, 0x9445, 0xE855, 0x9446, 0xE856, 0x9447, 0xE857, 0x9448, 0xE858, 0x9449, 0xE859, 0x944A, 0xE85A, + 0x944B, 0xE85B, 0x944C, 0xE85C, 0x944D, 0xE85D, 0x944E, 0xE85E, 0x944F, 0xE85F, 0x9450, 0xE860, 0x9451, 0xE861, 0x9452, 0xE862, + 0x9453, 0xE863, 0x9454, 0xE864, 0x9455, 0xE865, 0x9456, 0xE866, 0x9457, 0xE867, 0x9458, 0xE868, 0x9459, 0xE869, 0x945A, 0xE86A, + 0x945B, 0xE86B, 0x945C, 0xE86C, 0x945D, 0xE86D, 0x945E, 0xE86E, 0x945F, 0xE86F, 0x9460, 0xE870, 0x9461, 0xE871, 0x9462, 0xE872, + 0x9463, 0xE873, 0x9464, 0xE874, 0x9465, 0xE875, 0x9466, 0xE876, 0x9467, 0xE877, 0x9468, 0xE878, 0x9469, 0xE879, 0x946A, 0xE87A, + 0x946B, 0xF6CE, 0x946C, 0xE87B, 0x946D, 0xE87C, 0x946E, 0xE87D, 0x946F, 0xE87E, 0x9470, 0xE880, 0x9471, 0xE881, 0x9472, 0xE882, + 0x9473, 0xE883, 0x9474, 0xE884, 0x9475, 0xE885, 0x9476, 0xE886, 0x9477, 0xE887, 0x9478, 0xE888, 0x9479, 0xE889, 0x947A, 0xE88A, + 0x947B, 0xE88B, 0x947C, 0xE88C, 0x947D, 0xE88D, 0x947E, 0xE88E, 0x947F, 0xE88F, 0x9480, 0xE890, 0x9481, 0xE891, 0x9482, 0xE892, + 0x9483, 0xE893, 0x9484, 0xE894, 0x9485, 0xEEC4, 0x9486, 0xEEC5, 0x9487, 0xEEC6, 0x9488, 0xD5EB, 0x9489, 0xB6A4, 0x948A, 0xEEC8, + 0x948B, 0xEEC7, 0x948C, 0xEEC9, 0x948D, 0xEECA, 0x948E, 0xC7A5, 0x948F, 0xEECB, 0x9490, 0xEECC, 0x9491, 0xE895, 0x9492, 0xB7B0, + 0x9493, 0xB5F6, 0x9494, 0xEECD, 0x9495, 0xEECF, 0x9496, 0xE896, 0x9497, 0xEECE, 0x9498, 0xE897, 0x9499, 0xB8C6, 0x949A, 0xEED0, + 0x949B, 0xEED1, 0x949C, 0xEED2, 0x949D, 0xB6DB, 0x949E, 0xB3AE, 0x949F, 0xD6D3, 0x94A0, 0xC4C6, 0x94A1, 0xB1B5, 0x94A2, 0xB8D6, + 0x94A3, 0xEED3, 0x94A4, 0xEED4, 0x94A5, 0xD4BF, 0x94A6, 0xC7D5, 0x94A7, 0xBEFB, 0x94A8, 0xCED9, 0x94A9, 0xB9B3, 0x94AA, 0xEED6, + 0x94AB, 0xEED5, 0x94AC, 0xEED8, 0x94AD, 0xEED7, 0x94AE, 0xC5A5, 0x94AF, 0xEED9, 0x94B0, 0xEEDA, 0x94B1, 0xC7AE, 0x94B2, 0xEEDB, + 0x94B3, 0xC7AF, 0x94B4, 0xEEDC, 0x94B5, 0xB2A7, 0x94B6, 0xEEDD, 0x94B7, 0xEEDE, 0x94B8, 0xEEDF, 0x94B9, 0xEEE0, 0x94BA, 0xEEE1, + 0x94BB, 0xD7EA, 0x94BC, 0xEEE2, 0x94BD, 0xEEE3, 0x94BE, 0xBCD8, 0x94BF, 0xEEE4, 0x94C0, 0xD3CB, 0x94C1, 0xCCFA, 0x94C2, 0xB2AC, + 0x94C3, 0xC1E5, 0x94C4, 0xEEE5, 0x94C5, 0xC7A6, 0x94C6, 0xC3AD, 0x94C7, 0xE898, 0x94C8, 0xEEE6, 0x94C9, 0xEEE7, 0x94CA, 0xEEE8, + 0x94CB, 0xEEE9, 0x94CC, 0xEEEA, 0x94CD, 0xEEEB, 0x94CE, 0xEEEC, 0x94CF, 0xE899, 0x94D0, 0xEEED, 0x94D1, 0xEEEE, 0x94D2, 0xEEEF, + 0x94D3, 0xE89A, 0x94D4, 0xE89B, 0x94D5, 0xEEF0, 0x94D6, 0xEEF1, 0x94D7, 0xEEF2, 0x94D8, 0xEEF4, 0x94D9, 0xEEF3, 0x94DA, 0xE89C, + 0x94DB, 0xEEF5, 0x94DC, 0xCDAD, 0x94DD, 0xC2C1, 0x94DE, 0xEEF6, 0x94DF, 0xEEF7, 0x94E0, 0xEEF8, 0x94E1, 0xD5A1, 0x94E2, 0xEEF9, + 0x94E3, 0xCFB3, 0x94E4, 0xEEFA, 0x94E5, 0xEEFB, 0x94E6, 0xE89D, 0x94E7, 0xEEFC, 0x94E8, 0xEEFD, 0x94E9, 0xEFA1, 0x94EA, 0xEEFE, + 0x94EB, 0xEFA2, 0x94EC, 0xB8F5, 0x94ED, 0xC3FA, 0x94EE, 0xEFA3, 0x94EF, 0xEFA4, 0x94F0, 0xBDC2, 0x94F1, 0xD2BF, 0x94F2, 0xB2F9, + 0x94F3, 0xEFA5, 0x94F4, 0xEFA6, 0x94F5, 0xEFA7, 0x94F6, 0xD2F8, 0x94F7, 0xEFA8, 0x94F8, 0xD6FD, 0x94F9, 0xEFA9, 0x94FA, 0xC6CC, + 0x94FB, 0xE89E, 0x94FC, 0xEFAA, 0x94FD, 0xEFAB, 0x94FE, 0xC1B4, 0x94FF, 0xEFAC, 0x9500, 0xCFFA, 0x9501, 0xCBF8, 0x9502, 0xEFAE, + 0x9503, 0xEFAD, 0x9504, 0xB3FA, 0x9505, 0xB9F8, 0x9506, 0xEFAF, 0x9507, 0xEFB0, 0x9508, 0xD0E2, 0x9509, 0xEFB1, 0x950A, 0xEFB2, + 0x950B, 0xB7E6, 0x950C, 0xD0BF, 0x950D, 0xEFB3, 0x950E, 0xEFB4, 0x950F, 0xEFB5, 0x9510, 0xC8F1, 0x9511, 0xCCE0, 0x9512, 0xEFB6, + 0x9513, 0xEFB7, 0x9514, 0xEFB8, 0x9515, 0xEFB9, 0x9516, 0xEFBA, 0x9517, 0xD5E0, 0x9518, 0xEFBB, 0x9519, 0xB4ED, 0x951A, 0xC3AA, + 0x951B, 0xEFBC, 0x951C, 0xE89F, 0x951D, 0xEFBD, 0x951E, 0xEFBE, 0x951F, 0xEFBF, 0x9520, 0xE8A0, 0x9521, 0xCEFD, 0x9522, 0xEFC0, + 0x9523, 0xC2E0, 0x9524, 0xB4B8, 0x9525, 0xD7B6, 0x9526, 0xBDF5, 0x9527, 0xE940, 0x9528, 0xCFC7, 0x9529, 0xEFC3, 0x952A, 0xEFC1, + 0x952B, 0xEFC2, 0x952C, 0xEFC4, 0x952D, 0xB6A7, 0x952E, 0xBCFC, 0x952F, 0xBEE2, 0x9530, 0xC3CC, 0x9531, 0xEFC5, 0x9532, 0xEFC6, + 0x9533, 0xE941, 0x9534, 0xEFC7, 0x9535, 0xEFCF, 0x9536, 0xEFC8, 0x9537, 0xEFC9, 0x9538, 0xEFCA, 0x9539, 0xC7C2, 0x953A, 0xEFF1, + 0x953B, 0xB6CD, 0x953C, 0xEFCB, 0x953D, 0xE942, 0x953E, 0xEFCC, 0x953F, 0xEFCD, 0x9540, 0xB6C6, 0x9541, 0xC3BE, 0x9542, 0xEFCE, + 0x9543, 0xE943, 0x9544, 0xEFD0, 0x9545, 0xEFD1, 0x9546, 0xEFD2, 0x9547, 0xD5F2, 0x9548, 0xE944, 0x9549, 0xEFD3, 0x954A, 0xC4F7, + 0x954B, 0xE945, 0x954C, 0xEFD4, 0x954D, 0xC4F8, 0x954E, 0xEFD5, 0x954F, 0xEFD6, 0x9550, 0xB8E4, 0x9551, 0xB0F7, 0x9552, 0xEFD7, + 0x9553, 0xEFD8, 0x9554, 0xEFD9, 0x9555, 0xE946, 0x9556, 0xEFDA, 0x9557, 0xEFDB, 0x9558, 0xEFDC, 0x9559, 0xEFDD, 0x955A, 0xE947, + 0x955B, 0xEFDE, 0x955C, 0xBEB5, 0x955D, 0xEFE1, 0x955E, 0xEFDF, 0x955F, 0xEFE0, 0x9560, 0xE948, 0x9561, 0xEFE2, 0x9562, 0xEFE3, + 0x9563, 0xC1CD, 0x9564, 0xEFE4, 0x9565, 0xEFE5, 0x9566, 0xEFE6, 0x9567, 0xEFE7, 0x9568, 0xEFE8, 0x9569, 0xEFE9, 0x956A, 0xEFEA, + 0x956B, 0xEFEB, 0x956C, 0xEFEC, 0x956D, 0xC0D8, 0x956E, 0xE949, 0x956F, 0xEFED, 0x9570, 0xC1AD, 0x9571, 0xEFEE, 0x9572, 0xEFEF, + 0x9573, 0xEFF0, 0x9574, 0xE94A, 0x9575, 0xE94B, 0x9576, 0xCFE2, 0x9577, 0xE94C, 0x9578, 0xE94D, 0x9579, 0xE94E, 0x957A, 0xE94F, + 0x957B, 0xE950, 0x957C, 0xE951, 0x957D, 0xE952, 0x957E, 0xE953, 0x957F, 0xB3A4, 0x9580, 0xE954, 0x9581, 0xE955, 0x9582, 0xE956, + 0x9583, 0xE957, 0x9584, 0xE958, 0x9585, 0xE959, 0x9586, 0xE95A, 0x9587, 0xE95B, 0x9588, 0xE95C, 0x9589, 0xE95D, 0x958A, 0xE95E, + 0x958B, 0xE95F, 0x958C, 0xE960, 0x958D, 0xE961, 0x958E, 0xE962, 0x958F, 0xE963, 0x9590, 0xE964, 0x9591, 0xE965, 0x9592, 0xE966, + 0x9593, 0xE967, 0x9594, 0xE968, 0x9595, 0xE969, 0x9596, 0xE96A, 0x9597, 0xE96B, 0x9598, 0xE96C, 0x9599, 0xE96D, 0x959A, 0xE96E, + 0x959B, 0xE96F, 0x959C, 0xE970, 0x959D, 0xE971, 0x959E, 0xE972, 0x959F, 0xE973, 0x95A0, 0xE974, 0x95A1, 0xE975, 0x95A2, 0xE976, + 0x95A3, 0xE977, 0x95A4, 0xE978, 0x95A5, 0xE979, 0x95A6, 0xE97A, 0x95A7, 0xE97B, 0x95A8, 0xE97C, 0x95A9, 0xE97D, 0x95AA, 0xE97E, + 0x95AB, 0xE980, 0x95AC, 0xE981, 0x95AD, 0xE982, 0x95AE, 0xE983, 0x95AF, 0xE984, 0x95B0, 0xE985, 0x95B1, 0xE986, 0x95B2, 0xE987, + 0x95B3, 0xE988, 0x95B4, 0xE989, 0x95B5, 0xE98A, 0x95B6, 0xE98B, 0x95B7, 0xE98C, 0x95B8, 0xE98D, 0x95B9, 0xE98E, 0x95BA, 0xE98F, + 0x95BB, 0xE990, 0x95BC, 0xE991, 0x95BD, 0xE992, 0x95BE, 0xE993, 0x95BF, 0xE994, 0x95C0, 0xE995, 0x95C1, 0xE996, 0x95C2, 0xE997, + 0x95C3, 0xE998, 0x95C4, 0xE999, 0x95C5, 0xE99A, 0x95C6, 0xE99B, 0x95C7, 0xE99C, 0x95C8, 0xE99D, 0x95C9, 0xE99E, 0x95CA, 0xE99F, + 0x95CB, 0xE9A0, 0x95CC, 0xEA40, 0x95CD, 0xEA41, 0x95CE, 0xEA42, 0x95CF, 0xEA43, 0x95D0, 0xEA44, 0x95D1, 0xEA45, 0x95D2, 0xEA46, + 0x95D3, 0xEA47, 0x95D4, 0xEA48, 0x95D5, 0xEA49, 0x95D6, 0xEA4A, 0x95D7, 0xEA4B, 0x95D8, 0xEA4C, 0x95D9, 0xEA4D, 0x95DA, 0xEA4E, + 0x95DB, 0xEA4F, 0x95DC, 0xEA50, 0x95DD, 0xEA51, 0x95DE, 0xEA52, 0x95DF, 0xEA53, 0x95E0, 0xEA54, 0x95E1, 0xEA55, 0x95E2, 0xEA56, + 0x95E3, 0xEA57, 0x95E4, 0xEA58, 0x95E5, 0xEA59, 0x95E6, 0xEA5A, 0x95E7, 0xEA5B, 0x95E8, 0xC3C5, 0x95E9, 0xE3C5, 0x95EA, 0xC9C1, + 0x95EB, 0xE3C6, 0x95EC, 0xEA5C, 0x95ED, 0xB1D5, 0x95EE, 0xCECA, 0x95EF, 0xB4B3, 0x95F0, 0xC8F2, 0x95F1, 0xE3C7, 0x95F2, 0xCFD0, + 0x95F3, 0xE3C8, 0x95F4, 0xBCE4, 0x95F5, 0xE3C9, 0x95F6, 0xE3CA, 0x95F7, 0xC3C6, 0x95F8, 0xD5A2, 0x95F9, 0xC4D6, 0x95FA, 0xB9EB, + 0x95FB, 0xCEC5, 0x95FC, 0xE3CB, 0x95FD, 0xC3F6, 0x95FE, 0xE3CC, 0x95FF, 0xEA5D, 0x9600, 0xB7A7, 0x9601, 0xB8F3, 0x9602, 0xBAD2, + 0x9603, 0xE3CD, 0x9604, 0xE3CE, 0x9605, 0xD4C4, 0x9606, 0xE3CF, 0x9607, 0xEA5E, 0x9608, 0xE3D0, 0x9609, 0xD1CB, 0x960A, 0xE3D1, + 0x960B, 0xE3D2, 0x960C, 0xE3D3, 0x960D, 0xE3D4, 0x960E, 0xD1D6, 0x960F, 0xE3D5, 0x9610, 0xB2FB, 0x9611, 0xC0BB, 0x9612, 0xE3D6, + 0x9613, 0xEA5F, 0x9614, 0xC0AB, 0x9615, 0xE3D7, 0x9616, 0xE3D8, 0x9617, 0xE3D9, 0x9618, 0xEA60, 0x9619, 0xE3DA, 0x961A, 0xE3DB, + 0x961B, 0xEA61, 0x961C, 0xB8B7, 0x961D, 0xDAE2, 0x961E, 0xEA62, 0x961F, 0xB6D3, 0x9620, 0xEA63, 0x9621, 0xDAE4, 0x9622, 0xDAE3, + 0x9623, 0xEA64, 0x9624, 0xEA65, 0x9625, 0xEA66, 0x9626, 0xEA67, 0x9627, 0xEA68, 0x9628, 0xEA69, 0x9629, 0xEA6A, 0x962A, 0xDAE6, + 0x962B, 0xEA6B, 0x962C, 0xEA6C, 0x962D, 0xEA6D, 0x962E, 0xC8EE, 0x962F, 0xEA6E, 0x9630, 0xEA6F, 0x9631, 0xDAE5, 0x9632, 0xB7C0, + 0x9633, 0xD1F4, 0x9634, 0xD2F5, 0x9635, 0xD5F3, 0x9636, 0xBDD7, 0x9637, 0xEA70, 0x9638, 0xEA71, 0x9639, 0xEA72, 0x963A, 0xEA73, + 0x963B, 0xD7E8, 0x963C, 0xDAE8, 0x963D, 0xDAE7, 0x963E, 0xEA74, 0x963F, 0xB0A2, 0x9640, 0xCDD3, 0x9641, 0xEA75, 0x9642, 0xDAE9, + 0x9643, 0xEA76, 0x9644, 0xB8BD, 0x9645, 0xBCCA, 0x9646, 0xC2BD, 0x9647, 0xC2A4, 0x9648, 0xB3C2, 0x9649, 0xDAEA, 0x964A, 0xEA77, + 0x964B, 0xC2AA, 0x964C, 0xC4B0, 0x964D, 0xBDB5, 0x964E, 0xEA78, 0x964F, 0xEA79, 0x9650, 0xCFDE, 0x9651, 0xEA7A, 0x9652, 0xEA7B, + 0x9653, 0xEA7C, 0x9654, 0xDAEB, 0x9655, 0xC9C2, 0x9656, 0xEA7D, 0x9657, 0xEA7E, 0x9658, 0xEA80, 0x9659, 0xEA81, 0x965A, 0xEA82, + 0x965B, 0xB1DD, 0x965C, 0xEA83, 0x965D, 0xEA84, 0x965E, 0xEA85, 0x965F, 0xDAEC, 0x9660, 0xEA86, 0x9661, 0xB6B8, 0x9662, 0xD4BA, + 0x9663, 0xEA87, 0x9664, 0xB3FD, 0x9665, 0xEA88, 0x9666, 0xEA89, 0x9667, 0xDAED, 0x9668, 0xD4C9, 0x9669, 0xCFD5, 0x966A, 0xC5E3, + 0x966B, 0xEA8A, 0x966C, 0xDAEE, 0x966D, 0xEA8B, 0x966E, 0xEA8C, 0x966F, 0xEA8D, 0x9670, 0xEA8E, 0x9671, 0xEA8F, 0x9672, 0xDAEF, + 0x9673, 0xEA90, 0x9674, 0xDAF0, 0x9675, 0xC1EA, 0x9676, 0xCCD5, 0x9677, 0xCFDD, 0x9678, 0xEA91, 0x9679, 0xEA92, 0x967A, 0xEA93, + 0x967B, 0xEA94, 0x967C, 0xEA95, 0x967D, 0xEA96, 0x967E, 0xEA97, 0x967F, 0xEA98, 0x9680, 0xEA99, 0x9681, 0xEA9A, 0x9682, 0xEA9B, + 0x9683, 0xEA9C, 0x9684, 0xEA9D, 0x9685, 0xD3E7, 0x9686, 0xC2A1, 0x9687, 0xEA9E, 0x9688, 0xDAF1, 0x9689, 0xEA9F, 0x968A, 0xEAA0, + 0x968B, 0xCBE5, 0x968C, 0xEB40, 0x968D, 0xDAF2, 0x968E, 0xEB41, 0x968F, 0xCBE6, 0x9690, 0xD2FE, 0x9691, 0xEB42, 0x9692, 0xEB43, + 0x9693, 0xEB44, 0x9694, 0xB8F4, 0x9695, 0xEB45, 0x9696, 0xEB46, 0x9697, 0xDAF3, 0x9698, 0xB0AF, 0x9699, 0xCFB6, 0x969A, 0xEB47, + 0x969B, 0xEB48, 0x969C, 0xD5CF, 0x969D, 0xEB49, 0x969E, 0xEB4A, 0x969F, 0xEB4B, 0x96A0, 0xEB4C, 0x96A1, 0xEB4D, 0x96A2, 0xEB4E, + 0x96A3, 0xEB4F, 0x96A4, 0xEB50, 0x96A5, 0xEB51, 0x96A6, 0xEB52, 0x96A7, 0xCBED, 0x96A8, 0xEB53, 0x96A9, 0xEB54, 0x96AA, 0xEB55, + 0x96AB, 0xEB56, 0x96AC, 0xEB57, 0x96AD, 0xEB58, 0x96AE, 0xEB59, 0x96AF, 0xEB5A, 0x96B0, 0xDAF4, 0x96B1, 0xEB5B, 0x96B2, 0xEB5C, + 0x96B3, 0xE3C4, 0x96B4, 0xEB5D, 0x96B5, 0xEB5E, 0x96B6, 0xC1A5, 0x96B7, 0xEB5F, 0x96B8, 0xEB60, 0x96B9, 0xF6BF, 0x96BA, 0xEB61, + 0x96BB, 0xEB62, 0x96BC, 0xF6C0, 0x96BD, 0xF6C1, 0x96BE, 0xC4D1, 0x96BF, 0xEB63, 0x96C0, 0xC8B8, 0x96C1, 0xD1E3, 0x96C2, 0xEB64, + 0x96C3, 0xEB65, 0x96C4, 0xD0DB, 0x96C5, 0xD1C5, 0x96C6, 0xBCAF, 0x96C7, 0xB9CD, 0x96C8, 0xEB66, 0x96C9, 0xEFF4, 0x96CA, 0xEB67, + 0x96CB, 0xEB68, 0x96CC, 0xB4C6, 0x96CD, 0xD3BA, 0x96CE, 0xF6C2, 0x96CF, 0xB3FB, 0x96D0, 0xEB69, 0x96D1, 0xEB6A, 0x96D2, 0xF6C3, + 0x96D3, 0xEB6B, 0x96D4, 0xEB6C, 0x96D5, 0xB5F1, 0x96D6, 0xEB6D, 0x96D7, 0xEB6E, 0x96D8, 0xEB6F, 0x96D9, 0xEB70, 0x96DA, 0xEB71, + 0x96DB, 0xEB72, 0x96DC, 0xEB73, 0x96DD, 0xEB74, 0x96DE, 0xEB75, 0x96DF, 0xEB76, 0x96E0, 0xF6C5, 0x96E1, 0xEB77, 0x96E2, 0xEB78, + 0x96E3, 0xEB79, 0x96E4, 0xEB7A, 0x96E5, 0xEB7B, 0x96E6, 0xEB7C, 0x96E7, 0xEB7D, 0x96E8, 0xD3EA, 0x96E9, 0xF6A7, 0x96EA, 0xD1A9, + 0x96EB, 0xEB7E, 0x96EC, 0xEB80, 0x96ED, 0xEB81, 0x96EE, 0xEB82, 0x96EF, 0xF6A9, 0x96F0, 0xEB83, 0x96F1, 0xEB84, 0x96F2, 0xEB85, + 0x96F3, 0xF6A8, 0x96F4, 0xEB86, 0x96F5, 0xEB87, 0x96F6, 0xC1E3, 0x96F7, 0xC0D7, 0x96F8, 0xEB88, 0x96F9, 0xB1A2, 0x96FA, 0xEB89, + 0x96FB, 0xEB8A, 0x96FC, 0xEB8B, 0x96FD, 0xEB8C, 0x96FE, 0xCEED, 0x96FF, 0xEB8D, 0x9700, 0xD0E8, 0x9701, 0xF6AB, 0x9702, 0xEB8E, + 0x9703, 0xEB8F, 0x9704, 0xCFF6, 0x9705, 0xEB90, 0x9706, 0xF6AA, 0x9707, 0xD5F0, 0x9708, 0xF6AC, 0x9709, 0xC3B9, 0x970A, 0xEB91, + 0x970B, 0xEB92, 0x970C, 0xEB93, 0x970D, 0xBBF4, 0x970E, 0xF6AE, 0x970F, 0xF6AD, 0x9710, 0xEB94, 0x9711, 0xEB95, 0x9712, 0xEB96, + 0x9713, 0xC4DE, 0x9714, 0xEB97, 0x9715, 0xEB98, 0x9716, 0xC1D8, 0x9717, 0xEB99, 0x9718, 0xEB9A, 0x9719, 0xEB9B, 0x971A, 0xEB9C, + 0x971B, 0xEB9D, 0x971C, 0xCBAA, 0x971D, 0xEB9E, 0x971E, 0xCFBC, 0x971F, 0xEB9F, 0x9720, 0xEBA0, 0x9721, 0xEC40, 0x9722, 0xEC41, + 0x9723, 0xEC42, 0x9724, 0xEC43, 0x9725, 0xEC44, 0x9726, 0xEC45, 0x9727, 0xEC46, 0x9728, 0xEC47, 0x9729, 0xEC48, 0x972A, 0xF6AF, + 0x972B, 0xEC49, 0x972C, 0xEC4A, 0x972D, 0xF6B0, 0x972E, 0xEC4B, 0x972F, 0xEC4C, 0x9730, 0xF6B1, 0x9731, 0xEC4D, 0x9732, 0xC2B6, + 0x9733, 0xEC4E, 0x9734, 0xEC4F, 0x9735, 0xEC50, 0x9736, 0xEC51, 0x9737, 0xEC52, 0x9738, 0xB0D4, 0x9739, 0xC5F9, 0x973A, 0xEC53, + 0x973B, 0xEC54, 0x973C, 0xEC55, 0x973D, 0xEC56, 0x973E, 0xF6B2, 0x973F, 0xEC57, 0x9740, 0xEC58, 0x9741, 0xEC59, 0x9742, 0xEC5A, + 0x9743, 0xEC5B, 0x9744, 0xEC5C, 0x9745, 0xEC5D, 0x9746, 0xEC5E, 0x9747, 0xEC5F, 0x9748, 0xEC60, 0x9749, 0xEC61, 0x974A, 0xEC62, + 0x974B, 0xEC63, 0x974C, 0xEC64, 0x974D, 0xEC65, 0x974E, 0xEC66, 0x974F, 0xEC67, 0x9750, 0xEC68, 0x9751, 0xEC69, 0x9752, 0xC7E0, + 0x9753, 0xF6A6, 0x9754, 0xEC6A, 0x9755, 0xEC6B, 0x9756, 0xBEB8, 0x9757, 0xEC6C, 0x9758, 0xEC6D, 0x9759, 0xBEB2, 0x975A, 0xEC6E, + 0x975B, 0xB5E5, 0x975C, 0xEC6F, 0x975D, 0xEC70, 0x975E, 0xB7C7, 0x975F, 0xEC71, 0x9760, 0xBFBF, 0x9761, 0xC3D2, 0x9762, 0xC3E6, + 0x9763, 0xEC72, 0x9764, 0xEC73, 0x9765, 0xD8CC, 0x9766, 0xEC74, 0x9767, 0xEC75, 0x9768, 0xEC76, 0x9769, 0xB8EF, 0x976A, 0xEC77, + 0x976B, 0xEC78, 0x976C, 0xEC79, 0x976D, 0xEC7A, 0x976E, 0xEC7B, 0x976F, 0xEC7C, 0x9770, 0xEC7D, 0x9771, 0xEC7E, 0x9772, 0xEC80, + 0x9773, 0xBDF9, 0x9774, 0xD1A5, 0x9775, 0xEC81, 0x9776, 0xB0D0, 0x9777, 0xEC82, 0x9778, 0xEC83, 0x9779, 0xEC84, 0x977A, 0xEC85, + 0x977B, 0xEC86, 0x977C, 0xF7B0, 0x977D, 0xEC87, 0x977E, 0xEC88, 0x977F, 0xEC89, 0x9780, 0xEC8A, 0x9781, 0xEC8B, 0x9782, 0xEC8C, + 0x9783, 0xEC8D, 0x9784, 0xEC8E, 0x9785, 0xF7B1, 0x9786, 0xEC8F, 0x9787, 0xEC90, 0x9788, 0xEC91, 0x9789, 0xEC92, 0x978A, 0xEC93, + 0x978B, 0xD0AC, 0x978C, 0xEC94, 0x978D, 0xB0B0, 0x978E, 0xEC95, 0x978F, 0xEC96, 0x9790, 0xEC97, 0x9791, 0xF7B2, 0x9792, 0xF7B3, + 0x9793, 0xEC98, 0x9794, 0xF7B4, 0x9795, 0xEC99, 0x9796, 0xEC9A, 0x9797, 0xEC9B, 0x9798, 0xC7CA, 0x9799, 0xEC9C, 0x979A, 0xEC9D, + 0x979B, 0xEC9E, 0x979C, 0xEC9F, 0x979D, 0xECA0, 0x979E, 0xED40, 0x979F, 0xED41, 0x97A0, 0xBECF, 0x97A1, 0xED42, 0x97A2, 0xED43, + 0x97A3, 0xF7B7, 0x97A4, 0xED44, 0x97A5, 0xED45, 0x97A6, 0xED46, 0x97A7, 0xED47, 0x97A8, 0xED48, 0x97A9, 0xED49, 0x97AA, 0xED4A, + 0x97AB, 0xF7B6, 0x97AC, 0xED4B, 0x97AD, 0xB1DE, 0x97AE, 0xED4C, 0x97AF, 0xF7B5, 0x97B0, 0xED4D, 0x97B1, 0xED4E, 0x97B2, 0xF7B8, + 0x97B3, 0xED4F, 0x97B4, 0xF7B9, 0x97B5, 0xED50, 0x97B6, 0xED51, 0x97B7, 0xED52, 0x97B8, 0xED53, 0x97B9, 0xED54, 0x97BA, 0xED55, + 0x97BB, 0xED56, 0x97BC, 0xED57, 0x97BD, 0xED58, 0x97BE, 0xED59, 0x97BF, 0xED5A, 0x97C0, 0xED5B, 0x97C1, 0xED5C, 0x97C2, 0xED5D, + 0x97C3, 0xED5E, 0x97C4, 0xED5F, 0x97C5, 0xED60, 0x97C6, 0xED61, 0x97C7, 0xED62, 0x97C8, 0xED63, 0x97C9, 0xED64, 0x97CA, 0xED65, + 0x97CB, 0xED66, 0x97CC, 0xED67, 0x97CD, 0xED68, 0x97CE, 0xED69, 0x97CF, 0xED6A, 0x97D0, 0xED6B, 0x97D1, 0xED6C, 0x97D2, 0xED6D, + 0x97D3, 0xED6E, 0x97D4, 0xED6F, 0x97D5, 0xED70, 0x97D6, 0xED71, 0x97D7, 0xED72, 0x97D8, 0xED73, 0x97D9, 0xED74, 0x97DA, 0xED75, + 0x97DB, 0xED76, 0x97DC, 0xED77, 0x97DD, 0xED78, 0x97DE, 0xED79, 0x97DF, 0xED7A, 0x97E0, 0xED7B, 0x97E1, 0xED7C, 0x97E2, 0xED7D, + 0x97E3, 0xED7E, 0x97E4, 0xED80, 0x97E5, 0xED81, 0x97E6, 0xCEA4, 0x97E7, 0xC8CD, 0x97E8, 0xED82, 0x97E9, 0xBAAB, 0x97EA, 0xE8B8, + 0x97EB, 0xE8B9, 0x97EC, 0xE8BA, 0x97ED, 0xBEC2, 0x97EE, 0xED83, 0x97EF, 0xED84, 0x97F0, 0xED85, 0x97F1, 0xED86, 0x97F2, 0xED87, + 0x97F3, 0xD2F4, 0x97F4, 0xED88, 0x97F5, 0xD4CF, 0x97F6, 0xC9D8, 0x97F7, 0xED89, 0x97F8, 0xED8A, 0x97F9, 0xED8B, 0x97FA, 0xED8C, + 0x97FB, 0xED8D, 0x97FC, 0xED8E, 0x97FD, 0xED8F, 0x97FE, 0xED90, 0x97FF, 0xED91, 0x9800, 0xED92, 0x9801, 0xED93, 0x9802, 0xED94, + 0x9803, 0xED95, 0x9804, 0xED96, 0x9805, 0xED97, 0x9806, 0xED98, 0x9807, 0xED99, 0x9808, 0xED9A, 0x9809, 0xED9B, 0x980A, 0xED9C, + 0x980B, 0xED9D, 0x980C, 0xED9E, 0x980D, 0xED9F, 0x980E, 0xEDA0, 0x980F, 0xEE40, 0x9810, 0xEE41, 0x9811, 0xEE42, 0x9812, 0xEE43, + 0x9813, 0xEE44, 0x9814, 0xEE45, 0x9815, 0xEE46, 0x9816, 0xEE47, 0x9817, 0xEE48, 0x9818, 0xEE49, 0x9819, 0xEE4A, 0x981A, 0xEE4B, + 0x981B, 0xEE4C, 0x981C, 0xEE4D, 0x981D, 0xEE4E, 0x981E, 0xEE4F, 0x981F, 0xEE50, 0x9820, 0xEE51, 0x9821, 0xEE52, 0x9822, 0xEE53, + 0x9823, 0xEE54, 0x9824, 0xEE55, 0x9825, 0xEE56, 0x9826, 0xEE57, 0x9827, 0xEE58, 0x9828, 0xEE59, 0x9829, 0xEE5A, 0x982A, 0xEE5B, + 0x982B, 0xEE5C, 0x982C, 0xEE5D, 0x982D, 0xEE5E, 0x982E, 0xEE5F, 0x982F, 0xEE60, 0x9830, 0xEE61, 0x9831, 0xEE62, 0x9832, 0xEE63, + 0x9833, 0xEE64, 0x9834, 0xEE65, 0x9835, 0xEE66, 0x9836, 0xEE67, 0x9837, 0xEE68, 0x9838, 0xEE69, 0x9839, 0xEE6A, 0x983A, 0xEE6B, + 0x983B, 0xEE6C, 0x983C, 0xEE6D, 0x983D, 0xEE6E, 0x983E, 0xEE6F, 0x983F, 0xEE70, 0x9840, 0xEE71, 0x9841, 0xEE72, 0x9842, 0xEE73, + 0x9843, 0xEE74, 0x9844, 0xEE75, 0x9845, 0xEE76, 0x9846, 0xEE77, 0x9847, 0xEE78, 0x9848, 0xEE79, 0x9849, 0xEE7A, 0x984A, 0xEE7B, + 0x984B, 0xEE7C, 0x984C, 0xEE7D, 0x984D, 0xEE7E, 0x984E, 0xEE80, 0x984F, 0xEE81, 0x9850, 0xEE82, 0x9851, 0xEE83, 0x9852, 0xEE84, + 0x9853, 0xEE85, 0x9854, 0xEE86, 0x9855, 0xEE87, 0x9856, 0xEE88, 0x9857, 0xEE89, 0x9858, 0xEE8A, 0x9859, 0xEE8B, 0x985A, 0xEE8C, + 0x985B, 0xEE8D, 0x985C, 0xEE8E, 0x985D, 0xEE8F, 0x985E, 0xEE90, 0x985F, 0xEE91, 0x9860, 0xEE92, 0x9861, 0xEE93, 0x9862, 0xEE94, + 0x9863, 0xEE95, 0x9864, 0xEE96, 0x9865, 0xEE97, 0x9866, 0xEE98, 0x9867, 0xEE99, 0x9868, 0xEE9A, 0x9869, 0xEE9B, 0x986A, 0xEE9C, + 0x986B, 0xEE9D, 0x986C, 0xEE9E, 0x986D, 0xEE9F, 0x986E, 0xEEA0, 0x986F, 0xEF40, 0x9870, 0xEF41, 0x9871, 0xEF42, 0x9872, 0xEF43, + 0x9873, 0xEF44, 0x9874, 0xEF45, 0x9875, 0xD2B3, 0x9876, 0xB6A5, 0x9877, 0xC7EA, 0x9878, 0xF1FC, 0x9879, 0xCFEE, 0x987A, 0xCBB3, + 0x987B, 0xD0EB, 0x987C, 0xE7EF, 0x987D, 0xCDE7, 0x987E, 0xB9CB, 0x987F, 0xB6D9, 0x9880, 0xF1FD, 0x9881, 0xB0E4, 0x9882, 0xCBCC, + 0x9883, 0xF1FE, 0x9884, 0xD4A4, 0x9885, 0xC2AD, 0x9886, 0xC1EC, 0x9887, 0xC6C4, 0x9888, 0xBEB1, 0x9889, 0xF2A1, 0x988A, 0xBCD5, + 0x988B, 0xEF46, 0x988C, 0xF2A2, 0x988D, 0xF2A3, 0x988E, 0xEF47, 0x988F, 0xF2A4, 0x9890, 0xD2C3, 0x9891, 0xC6B5, 0x9892, 0xEF48, + 0x9893, 0xCDC7, 0x9894, 0xF2A5, 0x9895, 0xEF49, 0x9896, 0xD3B1, 0x9897, 0xBFC5, 0x9898, 0xCCE2, 0x9899, 0xEF4A, 0x989A, 0xF2A6, + 0x989B, 0xF2A7, 0x989C, 0xD1D5, 0x989D, 0xB6EE, 0x989E, 0xF2A8, 0x989F, 0xF2A9, 0x98A0, 0xB5DF, 0x98A1, 0xF2AA, 0x98A2, 0xF2AB, + 0x98A3, 0xEF4B, 0x98A4, 0xB2FC, 0x98A5, 0xF2AC, 0x98A6, 0xF2AD, 0x98A7, 0xC8A7, 0x98A8, 0xEF4C, 0x98A9, 0xEF4D, 0x98AA, 0xEF4E, + 0x98AB, 0xEF4F, 0x98AC, 0xEF50, 0x98AD, 0xEF51, 0x98AE, 0xEF52, 0x98AF, 0xEF53, 0x98B0, 0xEF54, 0x98B1, 0xEF55, 0x98B2, 0xEF56, + 0x98B3, 0xEF57, 0x98B4, 0xEF58, 0x98B5, 0xEF59, 0x98B6, 0xEF5A, 0x98B7, 0xEF5B, 0x98B8, 0xEF5C, 0x98B9, 0xEF5D, 0x98BA, 0xEF5E, + 0x98BB, 0xEF5F, 0x98BC, 0xEF60, 0x98BD, 0xEF61, 0x98BE, 0xEF62, 0x98BF, 0xEF63, 0x98C0, 0xEF64, 0x98C1, 0xEF65, 0x98C2, 0xEF66, + 0x98C3, 0xEF67, 0x98C4, 0xEF68, 0x98C5, 0xEF69, 0x98C6, 0xEF6A, 0x98C7, 0xEF6B, 0x98C8, 0xEF6C, 0x98C9, 0xEF6D, 0x98CA, 0xEF6E, + 0x98CB, 0xEF6F, 0x98CC, 0xEF70, 0x98CD, 0xEF71, 0x98CE, 0xB7E7, 0x98CF, 0xEF72, 0x98D0, 0xEF73, 0x98D1, 0xECA9, 0x98D2, 0xECAA, + 0x98D3, 0xECAB, 0x98D4, 0xEF74, 0x98D5, 0xECAC, 0x98D6, 0xEF75, 0x98D7, 0xEF76, 0x98D8, 0xC6AE, 0x98D9, 0xECAD, 0x98DA, 0xECAE, + 0x98DB, 0xEF77, 0x98DC, 0xEF78, 0x98DD, 0xEF79, 0x98DE, 0xB7C9, 0x98DF, 0xCAB3, 0x98E0, 0xEF7A, 0x98E1, 0xEF7B, 0x98E2, 0xEF7C, + 0x98E3, 0xEF7D, 0x98E4, 0xEF7E, 0x98E5, 0xEF80, 0x98E6, 0xEF81, 0x98E7, 0xE2B8, 0x98E8, 0xF7CF, 0x98E9, 0xEF82, 0x98EA, 0xEF83, + 0x98EB, 0xEF84, 0x98EC, 0xEF85, 0x98ED, 0xEF86, 0x98EE, 0xEF87, 0x98EF, 0xEF88, 0x98F0, 0xEF89, 0x98F1, 0xEF8A, 0x98F2, 0xEF8B, + 0x98F3, 0xEF8C, 0x98F4, 0xEF8D, 0x98F5, 0xEF8E, 0x98F6, 0xEF8F, 0x98F7, 0xEF90, 0x98F8, 0xEF91, 0x98F9, 0xEF92, 0x98FA, 0xEF93, + 0x98FB, 0xEF94, 0x98FC, 0xEF95, 0x98FD, 0xEF96, 0x98FE, 0xEF97, 0x98FF, 0xEF98, 0x9900, 0xEF99, 0x9901, 0xEF9A, 0x9902, 0xEF9B, + 0x9903, 0xEF9C, 0x9904, 0xEF9D, 0x9905, 0xEF9E, 0x9906, 0xEF9F, 0x9907, 0xEFA0, 0x9908, 0xF040, 0x9909, 0xF041, 0x990A, 0xF042, + 0x990B, 0xF043, 0x990C, 0xF044, 0x990D, 0xF7D0, 0x990E, 0xF045, 0x990F, 0xF046, 0x9910, 0xB2CD, 0x9911, 0xF047, 0x9912, 0xF048, + 0x9913, 0xF049, 0x9914, 0xF04A, 0x9915, 0xF04B, 0x9916, 0xF04C, 0x9917, 0xF04D, 0x9918, 0xF04E, 0x9919, 0xF04F, 0x991A, 0xF050, + 0x991B, 0xF051, 0x991C, 0xF052, 0x991D, 0xF053, 0x991E, 0xF054, 0x991F, 0xF055, 0x9920, 0xF056, 0x9921, 0xF057, 0x9922, 0xF058, + 0x9923, 0xF059, 0x9924, 0xF05A, 0x9925, 0xF05B, 0x9926, 0xF05C, 0x9927, 0xF05D, 0x9928, 0xF05E, 0x9929, 0xF05F, 0x992A, 0xF060, + 0x992B, 0xF061, 0x992C, 0xF062, 0x992D, 0xF063, 0x992E, 0xF7D1, 0x992F, 0xF064, 0x9930, 0xF065, 0x9931, 0xF066, 0x9932, 0xF067, + 0x9933, 0xF068, 0x9934, 0xF069, 0x9935, 0xF06A, 0x9936, 0xF06B, 0x9937, 0xF06C, 0x9938, 0xF06D, 0x9939, 0xF06E, 0x993A, 0xF06F, + 0x993B, 0xF070, 0x993C, 0xF071, 0x993D, 0xF072, 0x993E, 0xF073, 0x993F, 0xF074, 0x9940, 0xF075, 0x9941, 0xF076, 0x9942, 0xF077, + 0x9943, 0xF078, 0x9944, 0xF079, 0x9945, 0xF07A, 0x9946, 0xF07B, 0x9947, 0xF07C, 0x9948, 0xF07D, 0x9949, 0xF07E, 0x994A, 0xF080, + 0x994B, 0xF081, 0x994C, 0xF082, 0x994D, 0xF083, 0x994E, 0xF084, 0x994F, 0xF085, 0x9950, 0xF086, 0x9951, 0xF087, 0x9952, 0xF088, + 0x9953, 0xF089, 0x9954, 0xF7D3, 0x9955, 0xF7D2, 0x9956, 0xF08A, 0x9957, 0xF08B, 0x9958, 0xF08C, 0x9959, 0xF08D, 0x995A, 0xF08E, + 0x995B, 0xF08F, 0x995C, 0xF090, 0x995D, 0xF091, 0x995E, 0xF092, 0x995F, 0xF093, 0x9960, 0xF094, 0x9961, 0xF095, 0x9962, 0xF096, + 0x9963, 0xE2BB, 0x9964, 0xF097, 0x9965, 0xBCA2, 0x9966, 0xF098, 0x9967, 0xE2BC, 0x9968, 0xE2BD, 0x9969, 0xE2BE, 0x996A, 0xE2BF, + 0x996B, 0xE2C0, 0x996C, 0xE2C1, 0x996D, 0xB7B9, 0x996E, 0xD2FB, 0x996F, 0xBDA4, 0x9970, 0xCACE, 0x9971, 0xB1A5, 0x9972, 0xCBC7, + 0x9973, 0xF099, 0x9974, 0xE2C2, 0x9975, 0xB6FC, 0x9976, 0xC8C4, 0x9977, 0xE2C3, 0x9978, 0xF09A, 0x9979, 0xF09B, 0x997A, 0xBDC8, + 0x997B, 0xF09C, 0x997C, 0xB1FD, 0x997D, 0xE2C4, 0x997E, 0xF09D, 0x997F, 0xB6F6, 0x9980, 0xE2C5, 0x9981, 0xC4D9, 0x9982, 0xF09E, + 0x9983, 0xF09F, 0x9984, 0xE2C6, 0x9985, 0xCFDA, 0x9986, 0xB9DD, 0x9987, 0xE2C7, 0x9988, 0xC0A1, 0x9989, 0xF0A0, 0x998A, 0xE2C8, + 0x998B, 0xB2F6, 0x998C, 0xF140, 0x998D, 0xE2C9, 0x998E, 0xF141, 0x998F, 0xC1F3, 0x9990, 0xE2CA, 0x9991, 0xE2CB, 0x9992, 0xC2F8, + 0x9993, 0xE2CC, 0x9994, 0xE2CD, 0x9995, 0xE2CE, 0x9996, 0xCAD7, 0x9997, 0xD8B8, 0x9998, 0xD9E5, 0x9999, 0xCFE3, 0x999A, 0xF142, + 0x999B, 0xF143, 0x999C, 0xF144, 0x999D, 0xF145, 0x999E, 0xF146, 0x999F, 0xF147, 0x99A0, 0xF148, 0x99A1, 0xF149, 0x99A2, 0xF14A, + 0x99A3, 0xF14B, 0x99A4, 0xF14C, 0x99A5, 0xF0A5, 0x99A6, 0xF14D, 0x99A7, 0xF14E, 0x99A8, 0xDCB0, 0x99A9, 0xF14F, 0x99AA, 0xF150, + 0x99AB, 0xF151, 0x99AC, 0xF152, 0x99AD, 0xF153, 0x99AE, 0xF154, 0x99AF, 0xF155, 0x99B0, 0xF156, 0x99B1, 0xF157, 0x99B2, 0xF158, + 0x99B3, 0xF159, 0x99B4, 0xF15A, 0x99B5, 0xF15B, 0x99B6, 0xF15C, 0x99B7, 0xF15D, 0x99B8, 0xF15E, 0x99B9, 0xF15F, 0x99BA, 0xF160, + 0x99BB, 0xF161, 0x99BC, 0xF162, 0x99BD, 0xF163, 0x99BE, 0xF164, 0x99BF, 0xF165, 0x99C0, 0xF166, 0x99C1, 0xF167, 0x99C2, 0xF168, + 0x99C3, 0xF169, 0x99C4, 0xF16A, 0x99C5, 0xF16B, 0x99C6, 0xF16C, 0x99C7, 0xF16D, 0x99C8, 0xF16E, 0x99C9, 0xF16F, 0x99CA, 0xF170, + 0x99CB, 0xF171, 0x99CC, 0xF172, 0x99CD, 0xF173, 0x99CE, 0xF174, 0x99CF, 0xF175, 0x99D0, 0xF176, 0x99D1, 0xF177, 0x99D2, 0xF178, + 0x99D3, 0xF179, 0x99D4, 0xF17A, 0x99D5, 0xF17B, 0x99D6, 0xF17C, 0x99D7, 0xF17D, 0x99D8, 0xF17E, 0x99D9, 0xF180, 0x99DA, 0xF181, + 0x99DB, 0xF182, 0x99DC, 0xF183, 0x99DD, 0xF184, 0x99DE, 0xF185, 0x99DF, 0xF186, 0x99E0, 0xF187, 0x99E1, 0xF188, 0x99E2, 0xF189, + 0x99E3, 0xF18A, 0x99E4, 0xF18B, 0x99E5, 0xF18C, 0x99E6, 0xF18D, 0x99E7, 0xF18E, 0x99E8, 0xF18F, 0x99E9, 0xF190, 0x99EA, 0xF191, + 0x99EB, 0xF192, 0x99EC, 0xF193, 0x99ED, 0xF194, 0x99EE, 0xF195, 0x99EF, 0xF196, 0x99F0, 0xF197, 0x99F1, 0xF198, 0x99F2, 0xF199, + 0x99F3, 0xF19A, 0x99F4, 0xF19B, 0x99F5, 0xF19C, 0x99F6, 0xF19D, 0x99F7, 0xF19E, 0x99F8, 0xF19F, 0x99F9, 0xF1A0, 0x99FA, 0xF240, + 0x99FB, 0xF241, 0x99FC, 0xF242, 0x99FD, 0xF243, 0x99FE, 0xF244, 0x99FF, 0xF245, 0x9A00, 0xF246, 0x9A01, 0xF247, 0x9A02, 0xF248, + 0x9A03, 0xF249, 0x9A04, 0xF24A, 0x9A05, 0xF24B, 0x9A06, 0xF24C, 0x9A07, 0xF24D, 0x9A08, 0xF24E, 0x9A09, 0xF24F, 0x9A0A, 0xF250, + 0x9A0B, 0xF251, 0x9A0C, 0xF252, 0x9A0D, 0xF253, 0x9A0E, 0xF254, 0x9A0F, 0xF255, 0x9A10, 0xF256, 0x9A11, 0xF257, 0x9A12, 0xF258, + 0x9A13, 0xF259, 0x9A14, 0xF25A, 0x9A15, 0xF25B, 0x9A16, 0xF25C, 0x9A17, 0xF25D, 0x9A18, 0xF25E, 0x9A19, 0xF25F, 0x9A1A, 0xF260, + 0x9A1B, 0xF261, 0x9A1C, 0xF262, 0x9A1D, 0xF263, 0x9A1E, 0xF264, 0x9A1F, 0xF265, 0x9A20, 0xF266, 0x9A21, 0xF267, 0x9A22, 0xF268, + 0x9A23, 0xF269, 0x9A24, 0xF26A, 0x9A25, 0xF26B, 0x9A26, 0xF26C, 0x9A27, 0xF26D, 0x9A28, 0xF26E, 0x9A29, 0xF26F, 0x9A2A, 0xF270, + 0x9A2B, 0xF271, 0x9A2C, 0xF272, 0x9A2D, 0xF273, 0x9A2E, 0xF274, 0x9A2F, 0xF275, 0x9A30, 0xF276, 0x9A31, 0xF277, 0x9A32, 0xF278, + 0x9A33, 0xF279, 0x9A34, 0xF27A, 0x9A35, 0xF27B, 0x9A36, 0xF27C, 0x9A37, 0xF27D, 0x9A38, 0xF27E, 0x9A39, 0xF280, 0x9A3A, 0xF281, + 0x9A3B, 0xF282, 0x9A3C, 0xF283, 0x9A3D, 0xF284, 0x9A3E, 0xF285, 0x9A3F, 0xF286, 0x9A40, 0xF287, 0x9A41, 0xF288, 0x9A42, 0xF289, + 0x9A43, 0xF28A, 0x9A44, 0xF28B, 0x9A45, 0xF28C, 0x9A46, 0xF28D, 0x9A47, 0xF28E, 0x9A48, 0xF28F, 0x9A49, 0xF290, 0x9A4A, 0xF291, + 0x9A4B, 0xF292, 0x9A4C, 0xF293, 0x9A4D, 0xF294, 0x9A4E, 0xF295, 0x9A4F, 0xF296, 0x9A50, 0xF297, 0x9A51, 0xF298, 0x9A52, 0xF299, + 0x9A53, 0xF29A, 0x9A54, 0xF29B, 0x9A55, 0xF29C, 0x9A56, 0xF29D, 0x9A57, 0xF29E, 0x9A58, 0xF29F, 0x9A59, 0xF2A0, 0x9A5A, 0xF340, + 0x9A5B, 0xF341, 0x9A5C, 0xF342, 0x9A5D, 0xF343, 0x9A5E, 0xF344, 0x9A5F, 0xF345, 0x9A60, 0xF346, 0x9A61, 0xF347, 0x9A62, 0xF348, + 0x9A63, 0xF349, 0x9A64, 0xF34A, 0x9A65, 0xF34B, 0x9A66, 0xF34C, 0x9A67, 0xF34D, 0x9A68, 0xF34E, 0x9A69, 0xF34F, 0x9A6A, 0xF350, + 0x9A6B, 0xF351, 0x9A6C, 0xC2ED, 0x9A6D, 0xD4A6, 0x9A6E, 0xCDD4, 0x9A6F, 0xD1B1, 0x9A70, 0xB3DB, 0x9A71, 0xC7FD, 0x9A72, 0xF352, + 0x9A73, 0xB2B5, 0x9A74, 0xC2BF, 0x9A75, 0xE6E0, 0x9A76, 0xCABB, 0x9A77, 0xE6E1, 0x9A78, 0xE6E2, 0x9A79, 0xBED4, 0x9A7A, 0xE6E3, + 0x9A7B, 0xD7A4, 0x9A7C, 0xCDD5, 0x9A7D, 0xE6E5, 0x9A7E, 0xBCDD, 0x9A7F, 0xE6E4, 0x9A80, 0xE6E6, 0x9A81, 0xE6E7, 0x9A82, 0xC2EE, + 0x9A83, 0xF353, 0x9A84, 0xBDBE, 0x9A85, 0xE6E8, 0x9A86, 0xC2E6, 0x9A87, 0xBAA7, 0x9A88, 0xE6E9, 0x9A89, 0xF354, 0x9A8A, 0xE6EA, + 0x9A8B, 0xB3D2, 0x9A8C, 0xD1E9, 0x9A8D, 0xF355, 0x9A8E, 0xF356, 0x9A8F, 0xBFA5, 0x9A90, 0xE6EB, 0x9A91, 0xC6EF, 0x9A92, 0xE6EC, + 0x9A93, 0xE6ED, 0x9A94, 0xF357, 0x9A95, 0xF358, 0x9A96, 0xE6EE, 0x9A97, 0xC6AD, 0x9A98, 0xE6EF, 0x9A99, 0xF359, 0x9A9A, 0xC9A7, + 0x9A9B, 0xE6F0, 0x9A9C, 0xE6F1, 0x9A9D, 0xE6F2, 0x9A9E, 0xE5B9, 0x9A9F, 0xE6F3, 0x9AA0, 0xE6F4, 0x9AA1, 0xC2E2, 0x9AA2, 0xE6F5, + 0x9AA3, 0xE6F6, 0x9AA4, 0xD6E8, 0x9AA5, 0xE6F7, 0x9AA6, 0xF35A, 0x9AA7, 0xE6F8, 0x9AA8, 0xB9C7, 0x9AA9, 0xF35B, 0x9AAA, 0xF35C, + 0x9AAB, 0xF35D, 0x9AAC, 0xF35E, 0x9AAD, 0xF35F, 0x9AAE, 0xF360, 0x9AAF, 0xF361, 0x9AB0, 0xF7BB, 0x9AB1, 0xF7BA, 0x9AB2, 0xF362, + 0x9AB3, 0xF363, 0x9AB4, 0xF364, 0x9AB5, 0xF365, 0x9AB6, 0xF7BE, 0x9AB7, 0xF7BC, 0x9AB8, 0xBAA1, 0x9AB9, 0xF366, 0x9ABA, 0xF7BF, + 0x9ABB, 0xF367, 0x9ABC, 0xF7C0, 0x9ABD, 0xF368, 0x9ABE, 0xF369, 0x9ABF, 0xF36A, 0x9AC0, 0xF7C2, 0x9AC1, 0xF7C1, 0x9AC2, 0xF7C4, + 0x9AC3, 0xF36B, 0x9AC4, 0xF36C, 0x9AC5, 0xF7C3, 0x9AC6, 0xF36D, 0x9AC7, 0xF36E, 0x9AC8, 0xF36F, 0x9AC9, 0xF370, 0x9ACA, 0xF371, + 0x9ACB, 0xF7C5, 0x9ACC, 0xF7C6, 0x9ACD, 0xF372, 0x9ACE, 0xF373, 0x9ACF, 0xF374, 0x9AD0, 0xF375, 0x9AD1, 0xF7C7, 0x9AD2, 0xF376, + 0x9AD3, 0xCBE8, 0x9AD4, 0xF377, 0x9AD5, 0xF378, 0x9AD6, 0xF379, 0x9AD7, 0xF37A, 0x9AD8, 0xB8DF, 0x9AD9, 0xF37B, 0x9ADA, 0xF37C, + 0x9ADB, 0xF37D, 0x9ADC, 0xF37E, 0x9ADD, 0xF380, 0x9ADE, 0xF381, 0x9ADF, 0xF7D4, 0x9AE0, 0xF382, 0x9AE1, 0xF7D5, 0x9AE2, 0xF383, + 0x9AE3, 0xF384, 0x9AE4, 0xF385, 0x9AE5, 0xF386, 0x9AE6, 0xF7D6, 0x9AE7, 0xF387, 0x9AE8, 0xF388, 0x9AE9, 0xF389, 0x9AEA, 0xF38A, + 0x9AEB, 0xF7D8, 0x9AEC, 0xF38B, 0x9AED, 0xF7DA, 0x9AEE, 0xF38C, 0x9AEF, 0xF7D7, 0x9AF0, 0xF38D, 0x9AF1, 0xF38E, 0x9AF2, 0xF38F, + 0x9AF3, 0xF390, 0x9AF4, 0xF391, 0x9AF5, 0xF392, 0x9AF6, 0xF393, 0x9AF7, 0xF394, 0x9AF8, 0xF395, 0x9AF9, 0xF7DB, 0x9AFA, 0xF396, + 0x9AFB, 0xF7D9, 0x9AFC, 0xF397, 0x9AFD, 0xF398, 0x9AFE, 0xF399, 0x9AFF, 0xF39A, 0x9B00, 0xF39B, 0x9B01, 0xF39C, 0x9B02, 0xF39D, + 0x9B03, 0xD7D7, 0x9B04, 0xF39E, 0x9B05, 0xF39F, 0x9B06, 0xF3A0, 0x9B07, 0xF440, 0x9B08, 0xF7DC, 0x9B09, 0xF441, 0x9B0A, 0xF442, + 0x9B0B, 0xF443, 0x9B0C, 0xF444, 0x9B0D, 0xF445, 0x9B0E, 0xF446, 0x9B0F, 0xF7DD, 0x9B10, 0xF447, 0x9B11, 0xF448, 0x9B12, 0xF449, + 0x9B13, 0xF7DE, 0x9B14, 0xF44A, 0x9B15, 0xF44B, 0x9B16, 0xF44C, 0x9B17, 0xF44D, 0x9B18, 0xF44E, 0x9B19, 0xF44F, 0x9B1A, 0xF450, + 0x9B1B, 0xF451, 0x9B1C, 0xF452, 0x9B1D, 0xF453, 0x9B1E, 0xF454, 0x9B1F, 0xF7DF, 0x9B20, 0xF455, 0x9B21, 0xF456, 0x9B22, 0xF457, + 0x9B23, 0xF7E0, 0x9B24, 0xF458, 0x9B25, 0xF459, 0x9B26, 0xF45A, 0x9B27, 0xF45B, 0x9B28, 0xF45C, 0x9B29, 0xF45D, 0x9B2A, 0xF45E, + 0x9B2B, 0xF45F, 0x9B2C, 0xF460, 0x9B2D, 0xF461, 0x9B2E, 0xF462, 0x9B2F, 0xDBCB, 0x9B30, 0xF463, 0x9B31, 0xF464, 0x9B32, 0xD8AA, + 0x9B33, 0xF465, 0x9B34, 0xF466, 0x9B35, 0xF467, 0x9B36, 0xF468, 0x9B37, 0xF469, 0x9B38, 0xF46A, 0x9B39, 0xF46B, 0x9B3A, 0xF46C, + 0x9B3B, 0xE5F7, 0x9B3C, 0xB9ED, 0x9B3D, 0xF46D, 0x9B3E, 0xF46E, 0x9B3F, 0xF46F, 0x9B40, 0xF470, 0x9B41, 0xBFFD, 0x9B42, 0xBBEA, + 0x9B43, 0xF7C9, 0x9B44, 0xC6C7, 0x9B45, 0xF7C8, 0x9B46, 0xF471, 0x9B47, 0xF7CA, 0x9B48, 0xF7CC, 0x9B49, 0xF7CB, 0x9B4A, 0xF472, + 0x9B4B, 0xF473, 0x9B4C, 0xF474, 0x9B4D, 0xF7CD, 0x9B4E, 0xF475, 0x9B4F, 0xCEBA, 0x9B50, 0xF476, 0x9B51, 0xF7CE, 0x9B52, 0xF477, + 0x9B53, 0xF478, 0x9B54, 0xC4A7, 0x9B55, 0xF479, 0x9B56, 0xF47A, 0x9B57, 0xF47B, 0x9B58, 0xF47C, 0x9B59, 0xF47D, 0x9B5A, 0xF47E, + 0x9B5B, 0xF480, 0x9B5C, 0xF481, 0x9B5D, 0xF482, 0x9B5E, 0xF483, 0x9B5F, 0xF484, 0x9B60, 0xF485, 0x9B61, 0xF486, 0x9B62, 0xF487, + 0x9B63, 0xF488, 0x9B64, 0xF489, 0x9B65, 0xF48A, 0x9B66, 0xF48B, 0x9B67, 0xF48C, 0x9B68, 0xF48D, 0x9B69, 0xF48E, 0x9B6A, 0xF48F, + 0x9B6B, 0xF490, 0x9B6C, 0xF491, 0x9B6D, 0xF492, 0x9B6E, 0xF493, 0x9B6F, 0xF494, 0x9B70, 0xF495, 0x9B71, 0xF496, 0x9B72, 0xF497, + 0x9B73, 0xF498, 0x9B74, 0xF499, 0x9B75, 0xF49A, 0x9B76, 0xF49B, 0x9B77, 0xF49C, 0x9B78, 0xF49D, 0x9B79, 0xF49E, 0x9B7A, 0xF49F, + 0x9B7B, 0xF4A0, 0x9B7C, 0xF540, 0x9B7D, 0xF541, 0x9B7E, 0xF542, 0x9B7F, 0xF543, 0x9B80, 0xF544, 0x9B81, 0xF545, 0x9B82, 0xF546, + 0x9B83, 0xF547, 0x9B84, 0xF548, 0x9B85, 0xF549, 0x9B86, 0xF54A, 0x9B87, 0xF54B, 0x9B88, 0xF54C, 0x9B89, 0xF54D, 0x9B8A, 0xF54E, + 0x9B8B, 0xF54F, 0x9B8C, 0xF550, 0x9B8D, 0xF551, 0x9B8E, 0xF552, 0x9B8F, 0xF553, 0x9B90, 0xF554, 0x9B91, 0xF555, 0x9B92, 0xF556, + 0x9B93, 0xF557, 0x9B94, 0xF558, 0x9B95, 0xF559, 0x9B96, 0xF55A, 0x9B97, 0xF55B, 0x9B98, 0xF55C, 0x9B99, 0xF55D, 0x9B9A, 0xF55E, + 0x9B9B, 0xF55F, 0x9B9C, 0xF560, 0x9B9D, 0xF561, 0x9B9E, 0xF562, 0x9B9F, 0xF563, 0x9BA0, 0xF564, 0x9BA1, 0xF565, 0x9BA2, 0xF566, + 0x9BA3, 0xF567, 0x9BA4, 0xF568, 0x9BA5, 0xF569, 0x9BA6, 0xF56A, 0x9BA7, 0xF56B, 0x9BA8, 0xF56C, 0x9BA9, 0xF56D, 0x9BAA, 0xF56E, + 0x9BAB, 0xF56F, 0x9BAC, 0xF570, 0x9BAD, 0xF571, 0x9BAE, 0xF572, 0x9BAF, 0xF573, 0x9BB0, 0xF574, 0x9BB1, 0xF575, 0x9BB2, 0xF576, + 0x9BB3, 0xF577, 0x9BB4, 0xF578, 0x9BB5, 0xF579, 0x9BB6, 0xF57A, 0x9BB7, 0xF57B, 0x9BB8, 0xF57C, 0x9BB9, 0xF57D, 0x9BBA, 0xF57E, + 0x9BBB, 0xF580, 0x9BBC, 0xF581, 0x9BBD, 0xF582, 0x9BBE, 0xF583, 0x9BBF, 0xF584, 0x9BC0, 0xF585, 0x9BC1, 0xF586, 0x9BC2, 0xF587, + 0x9BC3, 0xF588, 0x9BC4, 0xF589, 0x9BC5, 0xF58A, 0x9BC6, 0xF58B, 0x9BC7, 0xF58C, 0x9BC8, 0xF58D, 0x9BC9, 0xF58E, 0x9BCA, 0xF58F, + 0x9BCB, 0xF590, 0x9BCC, 0xF591, 0x9BCD, 0xF592, 0x9BCE, 0xF593, 0x9BCF, 0xF594, 0x9BD0, 0xF595, 0x9BD1, 0xF596, 0x9BD2, 0xF597, + 0x9BD3, 0xF598, 0x9BD4, 0xF599, 0x9BD5, 0xF59A, 0x9BD6, 0xF59B, 0x9BD7, 0xF59C, 0x9BD8, 0xF59D, 0x9BD9, 0xF59E, 0x9BDA, 0xF59F, + 0x9BDB, 0xF5A0, 0x9BDC, 0xF640, 0x9BDD, 0xF641, 0x9BDE, 0xF642, 0x9BDF, 0xF643, 0x9BE0, 0xF644, 0x9BE1, 0xF645, 0x9BE2, 0xF646, + 0x9BE3, 0xF647, 0x9BE4, 0xF648, 0x9BE5, 0xF649, 0x9BE6, 0xF64A, 0x9BE7, 0xF64B, 0x9BE8, 0xF64C, 0x9BE9, 0xF64D, 0x9BEA, 0xF64E, + 0x9BEB, 0xF64F, 0x9BEC, 0xF650, 0x9BED, 0xF651, 0x9BEE, 0xF652, 0x9BEF, 0xF653, 0x9BF0, 0xF654, 0x9BF1, 0xF655, 0x9BF2, 0xF656, + 0x9BF3, 0xF657, 0x9BF4, 0xF658, 0x9BF5, 0xF659, 0x9BF6, 0xF65A, 0x9BF7, 0xF65B, 0x9BF8, 0xF65C, 0x9BF9, 0xF65D, 0x9BFA, 0xF65E, + 0x9BFB, 0xF65F, 0x9BFC, 0xF660, 0x9BFD, 0xF661, 0x9BFE, 0xF662, 0x9BFF, 0xF663, 0x9C00, 0xF664, 0x9C01, 0xF665, 0x9C02, 0xF666, + 0x9C03, 0xF667, 0x9C04, 0xF668, 0x9C05, 0xF669, 0x9C06, 0xF66A, 0x9C07, 0xF66B, 0x9C08, 0xF66C, 0x9C09, 0xF66D, 0x9C0A, 0xF66E, + 0x9C0B, 0xF66F, 0x9C0C, 0xF670, 0x9C0D, 0xF671, 0x9C0E, 0xF672, 0x9C0F, 0xF673, 0x9C10, 0xF674, 0x9C11, 0xF675, 0x9C12, 0xF676, + 0x9C13, 0xF677, 0x9C14, 0xF678, 0x9C15, 0xF679, 0x9C16, 0xF67A, 0x9C17, 0xF67B, 0x9C18, 0xF67C, 0x9C19, 0xF67D, 0x9C1A, 0xF67E, + 0x9C1B, 0xF680, 0x9C1C, 0xF681, 0x9C1D, 0xF682, 0x9C1E, 0xF683, 0x9C1F, 0xF684, 0x9C20, 0xF685, 0x9C21, 0xF686, 0x9C22, 0xF687, + 0x9C23, 0xF688, 0x9C24, 0xF689, 0x9C25, 0xF68A, 0x9C26, 0xF68B, 0x9C27, 0xF68C, 0x9C28, 0xF68D, 0x9C29, 0xF68E, 0x9C2A, 0xF68F, + 0x9C2B, 0xF690, 0x9C2C, 0xF691, 0x9C2D, 0xF692, 0x9C2E, 0xF693, 0x9C2F, 0xF694, 0x9C30, 0xF695, 0x9C31, 0xF696, 0x9C32, 0xF697, + 0x9C33, 0xF698, 0x9C34, 0xF699, 0x9C35, 0xF69A, 0x9C36, 0xF69B, 0x9C37, 0xF69C, 0x9C38, 0xF69D, 0x9C39, 0xF69E, 0x9C3A, 0xF69F, + 0x9C3B, 0xF6A0, 0x9C3C, 0xF740, 0x9C3D, 0xF741, 0x9C3E, 0xF742, 0x9C3F, 0xF743, 0x9C40, 0xF744, 0x9C41, 0xF745, 0x9C42, 0xF746, + 0x9C43, 0xF747, 0x9C44, 0xF748, 0x9C45, 0xF749, 0x9C46, 0xF74A, 0x9C47, 0xF74B, 0x9C48, 0xF74C, 0x9C49, 0xF74D, 0x9C4A, 0xF74E, + 0x9C4B, 0xF74F, 0x9C4C, 0xF750, 0x9C4D, 0xF751, 0x9C4E, 0xF752, 0x9C4F, 0xF753, 0x9C50, 0xF754, 0x9C51, 0xF755, 0x9C52, 0xF756, + 0x9C53, 0xF757, 0x9C54, 0xF758, 0x9C55, 0xF759, 0x9C56, 0xF75A, 0x9C57, 0xF75B, 0x9C58, 0xF75C, 0x9C59, 0xF75D, 0x9C5A, 0xF75E, + 0x9C5B, 0xF75F, 0x9C5C, 0xF760, 0x9C5D, 0xF761, 0x9C5E, 0xF762, 0x9C5F, 0xF763, 0x9C60, 0xF764, 0x9C61, 0xF765, 0x9C62, 0xF766, + 0x9C63, 0xF767, 0x9C64, 0xF768, 0x9C65, 0xF769, 0x9C66, 0xF76A, 0x9C67, 0xF76B, 0x9C68, 0xF76C, 0x9C69, 0xF76D, 0x9C6A, 0xF76E, + 0x9C6B, 0xF76F, 0x9C6C, 0xF770, 0x9C6D, 0xF771, 0x9C6E, 0xF772, 0x9C6F, 0xF773, 0x9C70, 0xF774, 0x9C71, 0xF775, 0x9C72, 0xF776, + 0x9C73, 0xF777, 0x9C74, 0xF778, 0x9C75, 0xF779, 0x9C76, 0xF77A, 0x9C77, 0xF77B, 0x9C78, 0xF77C, 0x9C79, 0xF77D, 0x9C7A, 0xF77E, + 0x9C7B, 0xF780, 0x9C7C, 0xD3E3, 0x9C7D, 0xF781, 0x9C7E, 0xF782, 0x9C7F, 0xF6CF, 0x9C80, 0xF783, 0x9C81, 0xC2B3, 0x9C82, 0xF6D0, + 0x9C83, 0xF784, 0x9C84, 0xF785, 0x9C85, 0xF6D1, 0x9C86, 0xF6D2, 0x9C87, 0xF6D3, 0x9C88, 0xF6D4, 0x9C89, 0xF786, 0x9C8A, 0xF787, + 0x9C8B, 0xF6D6, 0x9C8C, 0xF788, 0x9C8D, 0xB1AB, 0x9C8E, 0xF6D7, 0x9C8F, 0xF789, 0x9C90, 0xF6D8, 0x9C91, 0xF6D9, 0x9C92, 0xF6DA, + 0x9C93, 0xF78A, 0x9C94, 0xF6DB, 0x9C95, 0xF6DC, 0x9C96, 0xF78B, 0x9C97, 0xF78C, 0x9C98, 0xF78D, 0x9C99, 0xF78E, 0x9C9A, 0xF6DD, + 0x9C9B, 0xF6DE, 0x9C9C, 0xCFCA, 0x9C9D, 0xF78F, 0x9C9E, 0xF6DF, 0x9C9F, 0xF6E0, 0x9CA0, 0xF6E1, 0x9CA1, 0xF6E2, 0x9CA2, 0xF6E3, + 0x9CA3, 0xF6E4, 0x9CA4, 0xC0F0, 0x9CA5, 0xF6E5, 0x9CA6, 0xF6E6, 0x9CA7, 0xF6E7, 0x9CA8, 0xF6E8, 0x9CA9, 0xF6E9, 0x9CAA, 0xF790, + 0x9CAB, 0xF6EA, 0x9CAC, 0xF791, 0x9CAD, 0xF6EB, 0x9CAE, 0xF6EC, 0x9CAF, 0xF792, 0x9CB0, 0xF6ED, 0x9CB1, 0xF6EE, 0x9CB2, 0xF6EF, + 0x9CB3, 0xF6F0, 0x9CB4, 0xF6F1, 0x9CB5, 0xF6F2, 0x9CB6, 0xF6F3, 0x9CB7, 0xF6F4, 0x9CB8, 0xBEA8, 0x9CB9, 0xF793, 0x9CBA, 0xF6F5, + 0x9CBB, 0xF6F6, 0x9CBC, 0xF6F7, 0x9CBD, 0xF6F8, 0x9CBE, 0xF794, 0x9CBF, 0xF795, 0x9CC0, 0xF796, 0x9CC1, 0xF797, 0x9CC2, 0xF798, + 0x9CC3, 0xC8FA, 0x9CC4, 0xF6F9, 0x9CC5, 0xF6FA, 0x9CC6, 0xF6FB, 0x9CC7, 0xF6FC, 0x9CC8, 0xF799, 0x9CC9, 0xF79A, 0x9CCA, 0xF6FD, + 0x9CCB, 0xF6FE, 0x9CCC, 0xF7A1, 0x9CCD, 0xF7A2, 0x9CCE, 0xF7A3, 0x9CCF, 0xF7A4, 0x9CD0, 0xF7A5, 0x9CD1, 0xF79B, 0x9CD2, 0xF79C, + 0x9CD3, 0xF7A6, 0x9CD4, 0xF7A7, 0x9CD5, 0xF7A8, 0x9CD6, 0xB1EE, 0x9CD7, 0xF7A9, 0x9CD8, 0xF7AA, 0x9CD9, 0xF7AB, 0x9CDA, 0xF79D, + 0x9CDB, 0xF79E, 0x9CDC, 0xF7AC, 0x9CDD, 0xF7AD, 0x9CDE, 0xC1DB, 0x9CDF, 0xF7AE, 0x9CE0, 0xF79F, 0x9CE1, 0xF7A0, 0x9CE2, 0xF7AF, + 0x9CE3, 0xF840, 0x9CE4, 0xF841, 0x9CE5, 0xF842, 0x9CE6, 0xF843, 0x9CE7, 0xF844, 0x9CE8, 0xF845, 0x9CE9, 0xF846, 0x9CEA, 0xF847, + 0x9CEB, 0xF848, 0x9CEC, 0xF849, 0x9CED, 0xF84A, 0x9CEE, 0xF84B, 0x9CEF, 0xF84C, 0x9CF0, 0xF84D, 0x9CF1, 0xF84E, 0x9CF2, 0xF84F, + 0x9CF3, 0xF850, 0x9CF4, 0xF851, 0x9CF5, 0xF852, 0x9CF6, 0xF853, 0x9CF7, 0xF854, 0x9CF8, 0xF855, 0x9CF9, 0xF856, 0x9CFA, 0xF857, + 0x9CFB, 0xF858, 0x9CFC, 0xF859, 0x9CFD, 0xF85A, 0x9CFE, 0xF85B, 0x9CFF, 0xF85C, 0x9D00, 0xF85D, 0x9D01, 0xF85E, 0x9D02, 0xF85F, + 0x9D03, 0xF860, 0x9D04, 0xF861, 0x9D05, 0xF862, 0x9D06, 0xF863, 0x9D07, 0xF864, 0x9D08, 0xF865, 0x9D09, 0xF866, 0x9D0A, 0xF867, + 0x9D0B, 0xF868, 0x9D0C, 0xF869, 0x9D0D, 0xF86A, 0x9D0E, 0xF86B, 0x9D0F, 0xF86C, 0x9D10, 0xF86D, 0x9D11, 0xF86E, 0x9D12, 0xF86F, + 0x9D13, 0xF870, 0x9D14, 0xF871, 0x9D15, 0xF872, 0x9D16, 0xF873, 0x9D17, 0xF874, 0x9D18, 0xF875, 0x9D19, 0xF876, 0x9D1A, 0xF877, + 0x9D1B, 0xF878, 0x9D1C, 0xF879, 0x9D1D, 0xF87A, 0x9D1E, 0xF87B, 0x9D1F, 0xF87C, 0x9D20, 0xF87D, 0x9D21, 0xF87E, 0x9D22, 0xF880, + 0x9D23, 0xF881, 0x9D24, 0xF882, 0x9D25, 0xF883, 0x9D26, 0xF884, 0x9D27, 0xF885, 0x9D28, 0xF886, 0x9D29, 0xF887, 0x9D2A, 0xF888, + 0x9D2B, 0xF889, 0x9D2C, 0xF88A, 0x9D2D, 0xF88B, 0x9D2E, 0xF88C, 0x9D2F, 0xF88D, 0x9D30, 0xF88E, 0x9D31, 0xF88F, 0x9D32, 0xF890, + 0x9D33, 0xF891, 0x9D34, 0xF892, 0x9D35, 0xF893, 0x9D36, 0xF894, 0x9D37, 0xF895, 0x9D38, 0xF896, 0x9D39, 0xF897, 0x9D3A, 0xF898, + 0x9D3B, 0xF899, 0x9D3C, 0xF89A, 0x9D3D, 0xF89B, 0x9D3E, 0xF89C, 0x9D3F, 0xF89D, 0x9D40, 0xF89E, 0x9D41, 0xF89F, 0x9D42, 0xF8A0, + 0x9D43, 0xF940, 0x9D44, 0xF941, 0x9D45, 0xF942, 0x9D46, 0xF943, 0x9D47, 0xF944, 0x9D48, 0xF945, 0x9D49, 0xF946, 0x9D4A, 0xF947, + 0x9D4B, 0xF948, 0x9D4C, 0xF949, 0x9D4D, 0xF94A, 0x9D4E, 0xF94B, 0x9D4F, 0xF94C, 0x9D50, 0xF94D, 0x9D51, 0xF94E, 0x9D52, 0xF94F, + 0x9D53, 0xF950, 0x9D54, 0xF951, 0x9D55, 0xF952, 0x9D56, 0xF953, 0x9D57, 0xF954, 0x9D58, 0xF955, 0x9D59, 0xF956, 0x9D5A, 0xF957, + 0x9D5B, 0xF958, 0x9D5C, 0xF959, 0x9D5D, 0xF95A, 0x9D5E, 0xF95B, 0x9D5F, 0xF95C, 0x9D60, 0xF95D, 0x9D61, 0xF95E, 0x9D62, 0xF95F, + 0x9D63, 0xF960, 0x9D64, 0xF961, 0x9D65, 0xF962, 0x9D66, 0xF963, 0x9D67, 0xF964, 0x9D68, 0xF965, 0x9D69, 0xF966, 0x9D6A, 0xF967, + 0x9D6B, 0xF968, 0x9D6C, 0xF969, 0x9D6D, 0xF96A, 0x9D6E, 0xF96B, 0x9D6F, 0xF96C, 0x9D70, 0xF96D, 0x9D71, 0xF96E, 0x9D72, 0xF96F, + 0x9D73, 0xF970, 0x9D74, 0xF971, 0x9D75, 0xF972, 0x9D76, 0xF973, 0x9D77, 0xF974, 0x9D78, 0xF975, 0x9D79, 0xF976, 0x9D7A, 0xF977, + 0x9D7B, 0xF978, 0x9D7C, 0xF979, 0x9D7D, 0xF97A, 0x9D7E, 0xF97B, 0x9D7F, 0xF97C, 0x9D80, 0xF97D, 0x9D81, 0xF97E, 0x9D82, 0xF980, + 0x9D83, 0xF981, 0x9D84, 0xF982, 0x9D85, 0xF983, 0x9D86, 0xF984, 0x9D87, 0xF985, 0x9D88, 0xF986, 0x9D89, 0xF987, 0x9D8A, 0xF988, + 0x9D8B, 0xF989, 0x9D8C, 0xF98A, 0x9D8D, 0xF98B, 0x9D8E, 0xF98C, 0x9D8F, 0xF98D, 0x9D90, 0xF98E, 0x9D91, 0xF98F, 0x9D92, 0xF990, + 0x9D93, 0xF991, 0x9D94, 0xF992, 0x9D95, 0xF993, 0x9D96, 0xF994, 0x9D97, 0xF995, 0x9D98, 0xF996, 0x9D99, 0xF997, 0x9D9A, 0xF998, + 0x9D9B, 0xF999, 0x9D9C, 0xF99A, 0x9D9D, 0xF99B, 0x9D9E, 0xF99C, 0x9D9F, 0xF99D, 0x9DA0, 0xF99E, 0x9DA1, 0xF99F, 0x9DA2, 0xF9A0, + 0x9DA3, 0xFA40, 0x9DA4, 0xFA41, 0x9DA5, 0xFA42, 0x9DA6, 0xFA43, 0x9DA7, 0xFA44, 0x9DA8, 0xFA45, 0x9DA9, 0xFA46, 0x9DAA, 0xFA47, + 0x9DAB, 0xFA48, 0x9DAC, 0xFA49, 0x9DAD, 0xFA4A, 0x9DAE, 0xFA4B, 0x9DAF, 0xFA4C, 0x9DB0, 0xFA4D, 0x9DB1, 0xFA4E, 0x9DB2, 0xFA4F, + 0x9DB3, 0xFA50, 0x9DB4, 0xFA51, 0x9DB5, 0xFA52, 0x9DB6, 0xFA53, 0x9DB7, 0xFA54, 0x9DB8, 0xFA55, 0x9DB9, 0xFA56, 0x9DBA, 0xFA57, + 0x9DBB, 0xFA58, 0x9DBC, 0xFA59, 0x9DBD, 0xFA5A, 0x9DBE, 0xFA5B, 0x9DBF, 0xFA5C, 0x9DC0, 0xFA5D, 0x9DC1, 0xFA5E, 0x9DC2, 0xFA5F, + 0x9DC3, 0xFA60, 0x9DC4, 0xFA61, 0x9DC5, 0xFA62, 0x9DC6, 0xFA63, 0x9DC7, 0xFA64, 0x9DC8, 0xFA65, 0x9DC9, 0xFA66, 0x9DCA, 0xFA67, + 0x9DCB, 0xFA68, 0x9DCC, 0xFA69, 0x9DCD, 0xFA6A, 0x9DCE, 0xFA6B, 0x9DCF, 0xFA6C, 0x9DD0, 0xFA6D, 0x9DD1, 0xFA6E, 0x9DD2, 0xFA6F, + 0x9DD3, 0xFA70, 0x9DD4, 0xFA71, 0x9DD5, 0xFA72, 0x9DD6, 0xFA73, 0x9DD7, 0xFA74, 0x9DD8, 0xFA75, 0x9DD9, 0xFA76, 0x9DDA, 0xFA77, + 0x9DDB, 0xFA78, 0x9DDC, 0xFA79, 0x9DDD, 0xFA7A, 0x9DDE, 0xFA7B, 0x9DDF, 0xFA7C, 0x9DE0, 0xFA7D, 0x9DE1, 0xFA7E, 0x9DE2, 0xFA80, + 0x9DE3, 0xFA81, 0x9DE4, 0xFA82, 0x9DE5, 0xFA83, 0x9DE6, 0xFA84, 0x9DE7, 0xFA85, 0x9DE8, 0xFA86, 0x9DE9, 0xFA87, 0x9DEA, 0xFA88, + 0x9DEB, 0xFA89, 0x9DEC, 0xFA8A, 0x9DED, 0xFA8B, 0x9DEE, 0xFA8C, 0x9DEF, 0xFA8D, 0x9DF0, 0xFA8E, 0x9DF1, 0xFA8F, 0x9DF2, 0xFA90, + 0x9DF3, 0xFA91, 0x9DF4, 0xFA92, 0x9DF5, 0xFA93, 0x9DF6, 0xFA94, 0x9DF7, 0xFA95, 0x9DF8, 0xFA96, 0x9DF9, 0xFA97, 0x9DFA, 0xFA98, + 0x9DFB, 0xFA99, 0x9DFC, 0xFA9A, 0x9DFD, 0xFA9B, 0x9DFE, 0xFA9C, 0x9DFF, 0xFA9D, 0x9E00, 0xFA9E, 0x9E01, 0xFA9F, 0x9E02, 0xFAA0, + 0x9E03, 0xFB40, 0x9E04, 0xFB41, 0x9E05, 0xFB42, 0x9E06, 0xFB43, 0x9E07, 0xFB44, 0x9E08, 0xFB45, 0x9E09, 0xFB46, 0x9E0A, 0xFB47, + 0x9E0B, 0xFB48, 0x9E0C, 0xFB49, 0x9E0D, 0xFB4A, 0x9E0E, 0xFB4B, 0x9E0F, 0xFB4C, 0x9E10, 0xFB4D, 0x9E11, 0xFB4E, 0x9E12, 0xFB4F, + 0x9E13, 0xFB50, 0x9E14, 0xFB51, 0x9E15, 0xFB52, 0x9E16, 0xFB53, 0x9E17, 0xFB54, 0x9E18, 0xFB55, 0x9E19, 0xFB56, 0x9E1A, 0xFB57, + 0x9E1B, 0xFB58, 0x9E1C, 0xFB59, 0x9E1D, 0xFB5A, 0x9E1E, 0xFB5B, 0x9E1F, 0xC4F1, 0x9E20, 0xF0AF, 0x9E21, 0xBCA6, 0x9E22, 0xF0B0, + 0x9E23, 0xC3F9, 0x9E24, 0xFB5C, 0x9E25, 0xC5B8, 0x9E26, 0xD1BB, 0x9E27, 0xFB5D, 0x9E28, 0xF0B1, 0x9E29, 0xF0B2, 0x9E2A, 0xF0B3, + 0x9E2B, 0xF0B4, 0x9E2C, 0xF0B5, 0x9E2D, 0xD1BC, 0x9E2E, 0xFB5E, 0x9E2F, 0xD1EC, 0x9E30, 0xFB5F, 0x9E31, 0xF0B7, 0x9E32, 0xF0B6, + 0x9E33, 0xD4A7, 0x9E34, 0xFB60, 0x9E35, 0xCDD2, 0x9E36, 0xF0B8, 0x9E37, 0xF0BA, 0x9E38, 0xF0B9, 0x9E39, 0xF0BB, 0x9E3A, 0xF0BC, + 0x9E3B, 0xFB61, 0x9E3C, 0xFB62, 0x9E3D, 0xB8EB, 0x9E3E, 0xF0BD, 0x9E3F, 0xBAE8, 0x9E40, 0xFB63, 0x9E41, 0xF0BE, 0x9E42, 0xF0BF, + 0x9E43, 0xBEE9, 0x9E44, 0xF0C0, 0x9E45, 0xB6EC, 0x9E46, 0xF0C1, 0x9E47, 0xF0C2, 0x9E48, 0xF0C3, 0x9E49, 0xF0C4, 0x9E4A, 0xC8B5, + 0x9E4B, 0xF0C5, 0x9E4C, 0xF0C6, 0x9E4D, 0xFB64, 0x9E4E, 0xF0C7, 0x9E4F, 0xC5F4, 0x9E50, 0xFB65, 0x9E51, 0xF0C8, 0x9E52, 0xFB66, + 0x9E53, 0xFB67, 0x9E54, 0xFB68, 0x9E55, 0xF0C9, 0x9E56, 0xFB69, 0x9E57, 0xF0CA, 0x9E58, 0xF7BD, 0x9E59, 0xFB6A, 0x9E5A, 0xF0CB, + 0x9E5B, 0xF0CC, 0x9E5C, 0xF0CD, 0x9E5D, 0xFB6B, 0x9E5E, 0xF0CE, 0x9E5F, 0xFB6C, 0x9E60, 0xFB6D, 0x9E61, 0xFB6E, 0x9E62, 0xFB6F, + 0x9E63, 0xF0CF, 0x9E64, 0xBAD7, 0x9E65, 0xFB70, 0x9E66, 0xF0D0, 0x9E67, 0xF0D1, 0x9E68, 0xF0D2, 0x9E69, 0xF0D3, 0x9E6A, 0xF0D4, + 0x9E6B, 0xF0D5, 0x9E6C, 0xF0D6, 0x9E6D, 0xF0D8, 0x9E6E, 0xFB71, 0x9E6F, 0xFB72, 0x9E70, 0xD3A5, 0x9E71, 0xF0D7, 0x9E72, 0xFB73, + 0x9E73, 0xF0D9, 0x9E74, 0xFB74, 0x9E75, 0xFB75, 0x9E76, 0xFB76, 0x9E77, 0xFB77, 0x9E78, 0xFB78, 0x9E79, 0xFB79, 0x9E7A, 0xFB7A, + 0x9E7B, 0xFB7B, 0x9E7C, 0xFB7C, 0x9E7D, 0xFB7D, 0x9E7E, 0xF5BA, 0x9E7F, 0xC2B9, 0x9E80, 0xFB7E, 0x9E81, 0xFB80, 0x9E82, 0xF7E4, + 0x9E83, 0xFB81, 0x9E84, 0xFB82, 0x9E85, 0xFB83, 0x9E86, 0xFB84, 0x9E87, 0xF7E5, 0x9E88, 0xF7E6, 0x9E89, 0xFB85, 0x9E8A, 0xFB86, + 0x9E8B, 0xF7E7, 0x9E8C, 0xFB87, 0x9E8D, 0xFB88, 0x9E8E, 0xFB89, 0x9E8F, 0xFB8A, 0x9E90, 0xFB8B, 0x9E91, 0xFB8C, 0x9E92, 0xF7E8, + 0x9E93, 0xC2B4, 0x9E94, 0xFB8D, 0x9E95, 0xFB8E, 0x9E96, 0xFB8F, 0x9E97, 0xFB90, 0x9E98, 0xFB91, 0x9E99, 0xFB92, 0x9E9A, 0xFB93, + 0x9E9B, 0xFB94, 0x9E9C, 0xFB95, 0x9E9D, 0xF7EA, 0x9E9E, 0xFB96, 0x9E9F, 0xF7EB, 0x9EA0, 0xFB97, 0x9EA1, 0xFB98, 0x9EA2, 0xFB99, + 0x9EA3, 0xFB9A, 0x9EA4, 0xFB9B, 0x9EA5, 0xFB9C, 0x9EA6, 0xC2F3, 0x9EA7, 0xFB9D, 0x9EA8, 0xFB9E, 0x9EA9, 0xFB9F, 0x9EAA, 0xFBA0, + 0x9EAB, 0xFC40, 0x9EAC, 0xFC41, 0x9EAD, 0xFC42, 0x9EAE, 0xFC43, 0x9EAF, 0xFC44, 0x9EB0, 0xFC45, 0x9EB1, 0xFC46, 0x9EB2, 0xFC47, + 0x9EB3, 0xFC48, 0x9EB4, 0xF4F0, 0x9EB5, 0xFC49, 0x9EB6, 0xFC4A, 0x9EB7, 0xFC4B, 0x9EB8, 0xF4EF, 0x9EB9, 0xFC4C, 0x9EBA, 0xFC4D, + 0x9EBB, 0xC2E9, 0x9EBC, 0xFC4E, 0x9EBD, 0xF7E1, 0x9EBE, 0xF7E2, 0x9EBF, 0xFC4F, 0x9EC0, 0xFC50, 0x9EC1, 0xFC51, 0x9EC2, 0xFC52, + 0x9EC3, 0xFC53, 0x9EC4, 0xBBC6, 0x9EC5, 0xFC54, 0x9EC6, 0xFC55, 0x9EC7, 0xFC56, 0x9EC8, 0xFC57, 0x9EC9, 0xD9E4, 0x9ECA, 0xFC58, + 0x9ECB, 0xFC59, 0x9ECC, 0xFC5A, 0x9ECD, 0xCAF2, 0x9ECE, 0xC0E8, 0x9ECF, 0xF0A4, 0x9ED0, 0xFC5B, 0x9ED1, 0xBADA, 0x9ED2, 0xFC5C, + 0x9ED3, 0xFC5D, 0x9ED4, 0xC7AD, 0x9ED5, 0xFC5E, 0x9ED6, 0xFC5F, 0x9ED7, 0xFC60, 0x9ED8, 0xC4AC, 0x9ED9, 0xFC61, 0x9EDA, 0xFC62, + 0x9EDB, 0xF7EC, 0x9EDC, 0xF7ED, 0x9EDD, 0xF7EE, 0x9EDE, 0xFC63, 0x9EDF, 0xF7F0, 0x9EE0, 0xF7EF, 0x9EE1, 0xFC64, 0x9EE2, 0xF7F1, + 0x9EE3, 0xFC65, 0x9EE4, 0xFC66, 0x9EE5, 0xF7F4, 0x9EE6, 0xFC67, 0x9EE7, 0xF7F3, 0x9EE8, 0xFC68, 0x9EE9, 0xF7F2, 0x9EEA, 0xF7F5, + 0x9EEB, 0xFC69, 0x9EEC, 0xFC6A, 0x9EED, 0xFC6B, 0x9EEE, 0xFC6C, 0x9EEF, 0xF7F6, 0x9EF0, 0xFC6D, 0x9EF1, 0xFC6E, 0x9EF2, 0xFC6F, + 0x9EF3, 0xFC70, 0x9EF4, 0xFC71, 0x9EF5, 0xFC72, 0x9EF6, 0xFC73, 0x9EF7, 0xFC74, 0x9EF8, 0xFC75, 0x9EF9, 0xEDE9, 0x9EFA, 0xFC76, + 0x9EFB, 0xEDEA, 0x9EFC, 0xEDEB, 0x9EFD, 0xFC77, 0x9EFE, 0xF6BC, 0x9EFF, 0xFC78, 0x9F00, 0xFC79, 0x9F01, 0xFC7A, 0x9F02, 0xFC7B, + 0x9F03, 0xFC7C, 0x9F04, 0xFC7D, 0x9F05, 0xFC7E, 0x9F06, 0xFC80, 0x9F07, 0xFC81, 0x9F08, 0xFC82, 0x9F09, 0xFC83, 0x9F0A, 0xFC84, + 0x9F0B, 0xF6BD, 0x9F0C, 0xFC85, 0x9F0D, 0xF6BE, 0x9F0E, 0xB6A6, 0x9F0F, 0xFC86, 0x9F10, 0xD8BE, 0x9F11, 0xFC87, 0x9F12, 0xFC88, + 0x9F13, 0xB9C4, 0x9F14, 0xFC89, 0x9F15, 0xFC8A, 0x9F16, 0xFC8B, 0x9F17, 0xD8BB, 0x9F18, 0xFC8C, 0x9F19, 0xDCB1, 0x9F1A, 0xFC8D, + 0x9F1B, 0xFC8E, 0x9F1C, 0xFC8F, 0x9F1D, 0xFC90, 0x9F1E, 0xFC91, 0x9F1F, 0xFC92, 0x9F20, 0xCAF3, 0x9F21, 0xFC93, 0x9F22, 0xF7F7, + 0x9F23, 0xFC94, 0x9F24, 0xFC95, 0x9F25, 0xFC96, 0x9F26, 0xFC97, 0x9F27, 0xFC98, 0x9F28, 0xFC99, 0x9F29, 0xFC9A, 0x9F2A, 0xFC9B, + 0x9F2B, 0xFC9C, 0x9F2C, 0xF7F8, 0x9F2D, 0xFC9D, 0x9F2E, 0xFC9E, 0x9F2F, 0xF7F9, 0x9F30, 0xFC9F, 0x9F31, 0xFCA0, 0x9F32, 0xFD40, + 0x9F33, 0xFD41, 0x9F34, 0xFD42, 0x9F35, 0xFD43, 0x9F36, 0xFD44, 0x9F37, 0xF7FB, 0x9F38, 0xFD45, 0x9F39, 0xF7FA, 0x9F3A, 0xFD46, + 0x9F3B, 0xB1C7, 0x9F3C, 0xFD47, 0x9F3D, 0xF7FC, 0x9F3E, 0xF7FD, 0x9F3F, 0xFD48, 0x9F40, 0xFD49, 0x9F41, 0xFD4A, 0x9F42, 0xFD4B, + 0x9F43, 0xFD4C, 0x9F44, 0xF7FE, 0x9F45, 0xFD4D, 0x9F46, 0xFD4E, 0x9F47, 0xFD4F, 0x9F48, 0xFD50, 0x9F49, 0xFD51, 0x9F4A, 0xFD52, + 0x9F4B, 0xFD53, 0x9F4C, 0xFD54, 0x9F4D, 0xFD55, 0x9F4E, 0xFD56, 0x9F4F, 0xFD57, 0x9F50, 0xC6EB, 0x9F51, 0xECB4, 0x9F52, 0xFD58, + 0x9F53, 0xFD59, 0x9F54, 0xFD5A, 0x9F55, 0xFD5B, 0x9F56, 0xFD5C, 0x9F57, 0xFD5D, 0x9F58, 0xFD5E, 0x9F59, 0xFD5F, 0x9F5A, 0xFD60, + 0x9F5B, 0xFD61, 0x9F5C, 0xFD62, 0x9F5D, 0xFD63, 0x9F5E, 0xFD64, 0x9F5F, 0xFD65, 0x9F60, 0xFD66, 0x9F61, 0xFD67, 0x9F62, 0xFD68, + 0x9F63, 0xFD69, 0x9F64, 0xFD6A, 0x9F65, 0xFD6B, 0x9F66, 0xFD6C, 0x9F67, 0xFD6D, 0x9F68, 0xFD6E, 0x9F69, 0xFD6F, 0x9F6A, 0xFD70, + 0x9F6B, 0xFD71, 0x9F6C, 0xFD72, 0x9F6D, 0xFD73, 0x9F6E, 0xFD74, 0x9F6F, 0xFD75, 0x9F70, 0xFD76, 0x9F71, 0xFD77, 0x9F72, 0xFD78, + 0x9F73, 0xFD79, 0x9F74, 0xFD7A, 0x9F75, 0xFD7B, 0x9F76, 0xFD7C, 0x9F77, 0xFD7D, 0x9F78, 0xFD7E, 0x9F79, 0xFD80, 0x9F7A, 0xFD81, + 0x9F7B, 0xFD82, 0x9F7C, 0xFD83, 0x9F7D, 0xFD84, 0x9F7E, 0xFD85, 0x9F7F, 0xB3DD, 0x9F80, 0xF6B3, 0x9F81, 0xFD86, 0x9F82, 0xFD87, + 0x9F83, 0xF6B4, 0x9F84, 0xC1E4, 0x9F85, 0xF6B5, 0x9F86, 0xF6B6, 0x9F87, 0xF6B7, 0x9F88, 0xF6B8, 0x9F89, 0xF6B9, 0x9F8A, 0xF6BA, + 0x9F8B, 0xC8A3, 0x9F8C, 0xF6BB, 0x9F8D, 0xFD88, 0x9F8E, 0xFD89, 0x9F8F, 0xFD8A, 0x9F90, 0xFD8B, 0x9F91, 0xFD8C, 0x9F92, 0xFD8D, + 0x9F93, 0xFD8E, 0x9F94, 0xFD8F, 0x9F95, 0xFD90, 0x9F96, 0xFD91, 0x9F97, 0xFD92, 0x9F98, 0xFD93, 0x9F99, 0xC1FA, 0x9F9A, 0xB9A8, + 0x9F9B, 0xEDE8, 0x9F9C, 0xFD94, 0x9F9D, 0xFD95, 0x9F9E, 0xFD96, 0x9F9F, 0xB9EA, 0x9FA0, 0xD9DF, 0x9FA1, 0xFD97, 0x9FA2, 0xFD98, + 0x9FA3, 0xFD99, 0x9FA4, 0xFD9A, 0x9FA5, 0xFD9B, 0xF92C, 0xFD9C, 0xF979, 0xFD9D, 0xF995, 0xFD9E, 0xF9E7, 0xFD9F, 0xF9F1, 0xFDA0, + 0xFA0C, 0xFE40, 0xFA0D, 0xFE41, 0xFA0E, 0xFE42, 0xFA0F, 0xFE43, 0xFA11, 0xFE44, 0xFA13, 0xFE45, 0xFA14, 0xFE46, 0xFA18, 0xFE47, + 0xFA1F, 0xFE48, 0xFA20, 0xFE49, 0xFA21, 0xFE4A, 0xFA23, 0xFE4B, 0xFA24, 0xFE4C, 0xFA27, 0xFE4D, 0xFA28, 0xFE4E, 0xFA29, 0xFE4F, + 0xFE30, 0xA955, 0xFE31, 0xA6F2, 0xFE33, 0xA6F4, 0xFE34, 0xA6F5, 0xFE35, 0xA6E0, 0xFE36, 0xA6E1, 0xFE37, 0xA6F0, 0xFE38, 0xA6F1, + 0xFE39, 0xA6E2, 0xFE3A, 0xA6E3, 0xFE3B, 0xA6EE, 0xFE3C, 0xA6EF, 0xFE3D, 0xA6E6, 0xFE3E, 0xA6E7, 0xFE3F, 0xA6E4, 0xFE40, 0xA6E5, + 0xFE41, 0xA6E8, 0xFE42, 0xA6E9, 0xFE43, 0xA6EA, 0xFE44, 0xA6EB, 0xFE49, 0xA968, 0xFE4A, 0xA969, 0xFE4B, 0xA96A, 0xFE4C, 0xA96B, + 0xFE4D, 0xA96C, 0xFE4E, 0xA96D, 0xFE4F, 0xA96E, 0xFE50, 0xA96F, 0xFE51, 0xA970, 0xFE52, 0xA971, 0xFE54, 0xA972, 0xFE55, 0xA973, + 0xFE56, 0xA974, 0xFE57, 0xA975, 0xFE59, 0xA976, 0xFE5A, 0xA977, 0xFE5B, 0xA978, 0xFE5C, 0xA979, 0xFE5D, 0xA97A, 0xFE5E, 0xA97B, + 0xFE5F, 0xA97C, 0xFE60, 0xA97D, 0xFE61, 0xA97E, 0xFE62, 0xA980, 0xFE63, 0xA981, 0xFE64, 0xA982, 0xFE65, 0xA983, 0xFE66, 0xA984, + 0xFE68, 0xA985, 0xFE69, 0xA986, 0xFE6A, 0xA987, 0xFE6B, 0xA988, 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA1E7, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA3DC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA1AB, 0xFFE0, 0xA1E9, 0xFFE1, 0xA1EA, 0xFFE2, 0xA956, 0xFFE3, 0xA3FE, 0xFFE4, 0xA957, 0xFFE5, 0xA3A4, + 0, 0 +}; + +static +const WCHAR oem2uni936[] = { /* GBK --> Unicode pairs */ + 0x0080, 0x20AC, 0x8140, 0x4E02, 0x8141, 0x4E04, 0x8142, 0x4E05, 0x8143, 0x4E06, 0x8144, 0x4E0F, 0x8145, 0x4E12, 0x8146, 0x4E17, + 0x8147, 0x4E1F, 0x8148, 0x4E20, 0x8149, 0x4E21, 0x814A, 0x4E23, 0x814B, 0x4E26, 0x814C, 0x4E29, 0x814D, 0x4E2E, 0x814E, 0x4E2F, + 0x814F, 0x4E31, 0x8150, 0x4E33, 0x8151, 0x4E35, 0x8152, 0x4E37, 0x8153, 0x4E3C, 0x8154, 0x4E40, 0x8155, 0x4E41, 0x8156, 0x4E42, + 0x8157, 0x4E44, 0x8158, 0x4E46, 0x8159, 0x4E4A, 0x815A, 0x4E51, 0x815B, 0x4E55, 0x815C, 0x4E57, 0x815D, 0x4E5A, 0x815E, 0x4E5B, + 0x815F, 0x4E62, 0x8160, 0x4E63, 0x8161, 0x4E64, 0x8162, 0x4E65, 0x8163, 0x4E67, 0x8164, 0x4E68, 0x8165, 0x4E6A, 0x8166, 0x4E6B, + 0x8167, 0x4E6C, 0x8168, 0x4E6D, 0x8169, 0x4E6E, 0x816A, 0x4E6F, 0x816B, 0x4E72, 0x816C, 0x4E74, 0x816D, 0x4E75, 0x816E, 0x4E76, + 0x816F, 0x4E77, 0x8170, 0x4E78, 0x8171, 0x4E79, 0x8172, 0x4E7A, 0x8173, 0x4E7B, 0x8174, 0x4E7C, 0x8175, 0x4E7D, 0x8176, 0x4E7F, + 0x8177, 0x4E80, 0x8178, 0x4E81, 0x8179, 0x4E82, 0x817A, 0x4E83, 0x817B, 0x4E84, 0x817C, 0x4E85, 0x817D, 0x4E87, 0x817E, 0x4E8A, + 0x8180, 0x4E90, 0x8181, 0x4E96, 0x8182, 0x4E97, 0x8183, 0x4E99, 0x8184, 0x4E9C, 0x8185, 0x4E9D, 0x8186, 0x4E9E, 0x8187, 0x4EA3, + 0x8188, 0x4EAA, 0x8189, 0x4EAF, 0x818A, 0x4EB0, 0x818B, 0x4EB1, 0x818C, 0x4EB4, 0x818D, 0x4EB6, 0x818E, 0x4EB7, 0x818F, 0x4EB8, + 0x8190, 0x4EB9, 0x8191, 0x4EBC, 0x8192, 0x4EBD, 0x8193, 0x4EBE, 0x8194, 0x4EC8, 0x8195, 0x4ECC, 0x8196, 0x4ECF, 0x8197, 0x4ED0, + 0x8198, 0x4ED2, 0x8199, 0x4EDA, 0x819A, 0x4EDB, 0x819B, 0x4EDC, 0x819C, 0x4EE0, 0x819D, 0x4EE2, 0x819E, 0x4EE6, 0x819F, 0x4EE7, + 0x81A0, 0x4EE9, 0x81A1, 0x4EED, 0x81A2, 0x4EEE, 0x81A3, 0x4EEF, 0x81A4, 0x4EF1, 0x81A5, 0x4EF4, 0x81A6, 0x4EF8, 0x81A7, 0x4EF9, + 0x81A8, 0x4EFA, 0x81A9, 0x4EFC, 0x81AA, 0x4EFE, 0x81AB, 0x4F00, 0x81AC, 0x4F02, 0x81AD, 0x4F03, 0x81AE, 0x4F04, 0x81AF, 0x4F05, + 0x81B0, 0x4F06, 0x81B1, 0x4F07, 0x81B2, 0x4F08, 0x81B3, 0x4F0B, 0x81B4, 0x4F0C, 0x81B5, 0x4F12, 0x81B6, 0x4F13, 0x81B7, 0x4F14, + 0x81B8, 0x4F15, 0x81B9, 0x4F16, 0x81BA, 0x4F1C, 0x81BB, 0x4F1D, 0x81BC, 0x4F21, 0x81BD, 0x4F23, 0x81BE, 0x4F28, 0x81BF, 0x4F29, + 0x81C0, 0x4F2C, 0x81C1, 0x4F2D, 0x81C2, 0x4F2E, 0x81C3, 0x4F31, 0x81C4, 0x4F33, 0x81C5, 0x4F35, 0x81C6, 0x4F37, 0x81C7, 0x4F39, + 0x81C8, 0x4F3B, 0x81C9, 0x4F3E, 0x81CA, 0x4F3F, 0x81CB, 0x4F40, 0x81CC, 0x4F41, 0x81CD, 0x4F42, 0x81CE, 0x4F44, 0x81CF, 0x4F45, + 0x81D0, 0x4F47, 0x81D1, 0x4F48, 0x81D2, 0x4F49, 0x81D3, 0x4F4A, 0x81D4, 0x4F4B, 0x81D5, 0x4F4C, 0x81D6, 0x4F52, 0x81D7, 0x4F54, + 0x81D8, 0x4F56, 0x81D9, 0x4F61, 0x81DA, 0x4F62, 0x81DB, 0x4F66, 0x81DC, 0x4F68, 0x81DD, 0x4F6A, 0x81DE, 0x4F6B, 0x81DF, 0x4F6D, + 0x81E0, 0x4F6E, 0x81E1, 0x4F71, 0x81E2, 0x4F72, 0x81E3, 0x4F75, 0x81E4, 0x4F77, 0x81E5, 0x4F78, 0x81E6, 0x4F79, 0x81E7, 0x4F7A, + 0x81E8, 0x4F7D, 0x81E9, 0x4F80, 0x81EA, 0x4F81, 0x81EB, 0x4F82, 0x81EC, 0x4F85, 0x81ED, 0x4F86, 0x81EE, 0x4F87, 0x81EF, 0x4F8A, + 0x81F0, 0x4F8C, 0x81F1, 0x4F8E, 0x81F2, 0x4F90, 0x81F3, 0x4F92, 0x81F4, 0x4F93, 0x81F5, 0x4F95, 0x81F6, 0x4F96, 0x81F7, 0x4F98, + 0x81F8, 0x4F99, 0x81F9, 0x4F9A, 0x81FA, 0x4F9C, 0x81FB, 0x4F9E, 0x81FC, 0x4F9F, 0x81FD, 0x4FA1, 0x81FE, 0x4FA2, 0x8240, 0x4FA4, + 0x8241, 0x4FAB, 0x8242, 0x4FAD, 0x8243, 0x4FB0, 0x8244, 0x4FB1, 0x8245, 0x4FB2, 0x8246, 0x4FB3, 0x8247, 0x4FB4, 0x8248, 0x4FB6, + 0x8249, 0x4FB7, 0x824A, 0x4FB8, 0x824B, 0x4FB9, 0x824C, 0x4FBA, 0x824D, 0x4FBB, 0x824E, 0x4FBC, 0x824F, 0x4FBD, 0x8250, 0x4FBE, + 0x8251, 0x4FC0, 0x8252, 0x4FC1, 0x8253, 0x4FC2, 0x8254, 0x4FC6, 0x8255, 0x4FC7, 0x8256, 0x4FC8, 0x8257, 0x4FC9, 0x8258, 0x4FCB, + 0x8259, 0x4FCC, 0x825A, 0x4FCD, 0x825B, 0x4FD2, 0x825C, 0x4FD3, 0x825D, 0x4FD4, 0x825E, 0x4FD5, 0x825F, 0x4FD6, 0x8260, 0x4FD9, + 0x8261, 0x4FDB, 0x8262, 0x4FE0, 0x8263, 0x4FE2, 0x8264, 0x4FE4, 0x8265, 0x4FE5, 0x8266, 0x4FE7, 0x8267, 0x4FEB, 0x8268, 0x4FEC, + 0x8269, 0x4FF0, 0x826A, 0x4FF2, 0x826B, 0x4FF4, 0x826C, 0x4FF5, 0x826D, 0x4FF6, 0x826E, 0x4FF7, 0x826F, 0x4FF9, 0x8270, 0x4FFB, + 0x8271, 0x4FFC, 0x8272, 0x4FFD, 0x8273, 0x4FFF, 0x8274, 0x5000, 0x8275, 0x5001, 0x8276, 0x5002, 0x8277, 0x5003, 0x8278, 0x5004, + 0x8279, 0x5005, 0x827A, 0x5006, 0x827B, 0x5007, 0x827C, 0x5008, 0x827D, 0x5009, 0x827E, 0x500A, 0x8280, 0x500B, 0x8281, 0x500E, + 0x8282, 0x5010, 0x8283, 0x5011, 0x8284, 0x5013, 0x8285, 0x5015, 0x8286, 0x5016, 0x8287, 0x5017, 0x8288, 0x501B, 0x8289, 0x501D, + 0x828A, 0x501E, 0x828B, 0x5020, 0x828C, 0x5022, 0x828D, 0x5023, 0x828E, 0x5024, 0x828F, 0x5027, 0x8290, 0x502B, 0x8291, 0x502F, + 0x8292, 0x5030, 0x8293, 0x5031, 0x8294, 0x5032, 0x8295, 0x5033, 0x8296, 0x5034, 0x8297, 0x5035, 0x8298, 0x5036, 0x8299, 0x5037, + 0x829A, 0x5038, 0x829B, 0x5039, 0x829C, 0x503B, 0x829D, 0x503D, 0x829E, 0x503F, 0x829F, 0x5040, 0x82A0, 0x5041, 0x82A1, 0x5042, + 0x82A2, 0x5044, 0x82A3, 0x5045, 0x82A4, 0x5046, 0x82A5, 0x5049, 0x82A6, 0x504A, 0x82A7, 0x504B, 0x82A8, 0x504D, 0x82A9, 0x5050, + 0x82AA, 0x5051, 0x82AB, 0x5052, 0x82AC, 0x5053, 0x82AD, 0x5054, 0x82AE, 0x5056, 0x82AF, 0x5057, 0x82B0, 0x5058, 0x82B1, 0x5059, + 0x82B2, 0x505B, 0x82B3, 0x505D, 0x82B4, 0x505E, 0x82B5, 0x505F, 0x82B6, 0x5060, 0x82B7, 0x5061, 0x82B8, 0x5062, 0x82B9, 0x5063, + 0x82BA, 0x5064, 0x82BB, 0x5066, 0x82BC, 0x5067, 0x82BD, 0x5068, 0x82BE, 0x5069, 0x82BF, 0x506A, 0x82C0, 0x506B, 0x82C1, 0x506D, + 0x82C2, 0x506E, 0x82C3, 0x506F, 0x82C4, 0x5070, 0x82C5, 0x5071, 0x82C6, 0x5072, 0x82C7, 0x5073, 0x82C8, 0x5074, 0x82C9, 0x5075, + 0x82CA, 0x5078, 0x82CB, 0x5079, 0x82CC, 0x507A, 0x82CD, 0x507C, 0x82CE, 0x507D, 0x82CF, 0x5081, 0x82D0, 0x5082, 0x82D1, 0x5083, + 0x82D2, 0x5084, 0x82D3, 0x5086, 0x82D4, 0x5087, 0x82D5, 0x5089, 0x82D6, 0x508A, 0x82D7, 0x508B, 0x82D8, 0x508C, 0x82D9, 0x508E, + 0x82DA, 0x508F, 0x82DB, 0x5090, 0x82DC, 0x5091, 0x82DD, 0x5092, 0x82DE, 0x5093, 0x82DF, 0x5094, 0x82E0, 0x5095, 0x82E1, 0x5096, + 0x82E2, 0x5097, 0x82E3, 0x5098, 0x82E4, 0x5099, 0x82E5, 0x509A, 0x82E6, 0x509B, 0x82E7, 0x509C, 0x82E8, 0x509D, 0x82E9, 0x509E, + 0x82EA, 0x509F, 0x82EB, 0x50A0, 0x82EC, 0x50A1, 0x82ED, 0x50A2, 0x82EE, 0x50A4, 0x82EF, 0x50A6, 0x82F0, 0x50AA, 0x82F1, 0x50AB, + 0x82F2, 0x50AD, 0x82F3, 0x50AE, 0x82F4, 0x50AF, 0x82F5, 0x50B0, 0x82F6, 0x50B1, 0x82F7, 0x50B3, 0x82F8, 0x50B4, 0x82F9, 0x50B5, + 0x82FA, 0x50B6, 0x82FB, 0x50B7, 0x82FC, 0x50B8, 0x82FD, 0x50B9, 0x82FE, 0x50BC, 0x8340, 0x50BD, 0x8341, 0x50BE, 0x8342, 0x50BF, + 0x8343, 0x50C0, 0x8344, 0x50C1, 0x8345, 0x50C2, 0x8346, 0x50C3, 0x8347, 0x50C4, 0x8348, 0x50C5, 0x8349, 0x50C6, 0x834A, 0x50C7, + 0x834B, 0x50C8, 0x834C, 0x50C9, 0x834D, 0x50CA, 0x834E, 0x50CB, 0x834F, 0x50CC, 0x8350, 0x50CD, 0x8351, 0x50CE, 0x8352, 0x50D0, + 0x8353, 0x50D1, 0x8354, 0x50D2, 0x8355, 0x50D3, 0x8356, 0x50D4, 0x8357, 0x50D5, 0x8358, 0x50D7, 0x8359, 0x50D8, 0x835A, 0x50D9, + 0x835B, 0x50DB, 0x835C, 0x50DC, 0x835D, 0x50DD, 0x835E, 0x50DE, 0x835F, 0x50DF, 0x8360, 0x50E0, 0x8361, 0x50E1, 0x8362, 0x50E2, + 0x8363, 0x50E3, 0x8364, 0x50E4, 0x8365, 0x50E5, 0x8366, 0x50E8, 0x8367, 0x50E9, 0x8368, 0x50EA, 0x8369, 0x50EB, 0x836A, 0x50EF, + 0x836B, 0x50F0, 0x836C, 0x50F1, 0x836D, 0x50F2, 0x836E, 0x50F4, 0x836F, 0x50F6, 0x8370, 0x50F7, 0x8371, 0x50F8, 0x8372, 0x50F9, + 0x8373, 0x50FA, 0x8374, 0x50FC, 0x8375, 0x50FD, 0x8376, 0x50FE, 0x8377, 0x50FF, 0x8378, 0x5100, 0x8379, 0x5101, 0x837A, 0x5102, + 0x837B, 0x5103, 0x837C, 0x5104, 0x837D, 0x5105, 0x837E, 0x5108, 0x8380, 0x5109, 0x8381, 0x510A, 0x8382, 0x510C, 0x8383, 0x510D, + 0x8384, 0x510E, 0x8385, 0x510F, 0x8386, 0x5110, 0x8387, 0x5111, 0x8388, 0x5113, 0x8389, 0x5114, 0x838A, 0x5115, 0x838B, 0x5116, + 0x838C, 0x5117, 0x838D, 0x5118, 0x838E, 0x5119, 0x838F, 0x511A, 0x8390, 0x511B, 0x8391, 0x511C, 0x8392, 0x511D, 0x8393, 0x511E, + 0x8394, 0x511F, 0x8395, 0x5120, 0x8396, 0x5122, 0x8397, 0x5123, 0x8398, 0x5124, 0x8399, 0x5125, 0x839A, 0x5126, 0x839B, 0x5127, + 0x839C, 0x5128, 0x839D, 0x5129, 0x839E, 0x512A, 0x839F, 0x512B, 0x83A0, 0x512C, 0x83A1, 0x512D, 0x83A2, 0x512E, 0x83A3, 0x512F, + 0x83A4, 0x5130, 0x83A5, 0x5131, 0x83A6, 0x5132, 0x83A7, 0x5133, 0x83A8, 0x5134, 0x83A9, 0x5135, 0x83AA, 0x5136, 0x83AB, 0x5137, + 0x83AC, 0x5138, 0x83AD, 0x5139, 0x83AE, 0x513A, 0x83AF, 0x513B, 0x83B0, 0x513C, 0x83B1, 0x513D, 0x83B2, 0x513E, 0x83B3, 0x5142, + 0x83B4, 0x5147, 0x83B5, 0x514A, 0x83B6, 0x514C, 0x83B7, 0x514E, 0x83B8, 0x514F, 0x83B9, 0x5150, 0x83BA, 0x5152, 0x83BB, 0x5153, + 0x83BC, 0x5157, 0x83BD, 0x5158, 0x83BE, 0x5159, 0x83BF, 0x515B, 0x83C0, 0x515D, 0x83C1, 0x515E, 0x83C2, 0x515F, 0x83C3, 0x5160, + 0x83C4, 0x5161, 0x83C5, 0x5163, 0x83C6, 0x5164, 0x83C7, 0x5166, 0x83C8, 0x5167, 0x83C9, 0x5169, 0x83CA, 0x516A, 0x83CB, 0x516F, + 0x83CC, 0x5172, 0x83CD, 0x517A, 0x83CE, 0x517E, 0x83CF, 0x517F, 0x83D0, 0x5183, 0x83D1, 0x5184, 0x83D2, 0x5186, 0x83D3, 0x5187, + 0x83D4, 0x518A, 0x83D5, 0x518B, 0x83D6, 0x518E, 0x83D7, 0x518F, 0x83D8, 0x5190, 0x83D9, 0x5191, 0x83DA, 0x5193, 0x83DB, 0x5194, + 0x83DC, 0x5198, 0x83DD, 0x519A, 0x83DE, 0x519D, 0x83DF, 0x519E, 0x83E0, 0x519F, 0x83E1, 0x51A1, 0x83E2, 0x51A3, 0x83E3, 0x51A6, + 0x83E4, 0x51A7, 0x83E5, 0x51A8, 0x83E6, 0x51A9, 0x83E7, 0x51AA, 0x83E8, 0x51AD, 0x83E9, 0x51AE, 0x83EA, 0x51B4, 0x83EB, 0x51B8, + 0x83EC, 0x51B9, 0x83ED, 0x51BA, 0x83EE, 0x51BE, 0x83EF, 0x51BF, 0x83F0, 0x51C1, 0x83F1, 0x51C2, 0x83F2, 0x51C3, 0x83F3, 0x51C5, + 0x83F4, 0x51C8, 0x83F5, 0x51CA, 0x83F6, 0x51CD, 0x83F7, 0x51CE, 0x83F8, 0x51D0, 0x83F9, 0x51D2, 0x83FA, 0x51D3, 0x83FB, 0x51D4, + 0x83FC, 0x51D5, 0x83FD, 0x51D6, 0x83FE, 0x51D7, 0x8440, 0x51D8, 0x8441, 0x51D9, 0x8442, 0x51DA, 0x8443, 0x51DC, 0x8444, 0x51DE, + 0x8445, 0x51DF, 0x8446, 0x51E2, 0x8447, 0x51E3, 0x8448, 0x51E5, 0x8449, 0x51E6, 0x844A, 0x51E7, 0x844B, 0x51E8, 0x844C, 0x51E9, + 0x844D, 0x51EA, 0x844E, 0x51EC, 0x844F, 0x51EE, 0x8450, 0x51F1, 0x8451, 0x51F2, 0x8452, 0x51F4, 0x8453, 0x51F7, 0x8454, 0x51FE, + 0x8455, 0x5204, 0x8456, 0x5205, 0x8457, 0x5209, 0x8458, 0x520B, 0x8459, 0x520C, 0x845A, 0x520F, 0x845B, 0x5210, 0x845C, 0x5213, + 0x845D, 0x5214, 0x845E, 0x5215, 0x845F, 0x521C, 0x8460, 0x521E, 0x8461, 0x521F, 0x8462, 0x5221, 0x8463, 0x5222, 0x8464, 0x5223, + 0x8465, 0x5225, 0x8466, 0x5226, 0x8467, 0x5227, 0x8468, 0x522A, 0x8469, 0x522C, 0x846A, 0x522F, 0x846B, 0x5231, 0x846C, 0x5232, + 0x846D, 0x5234, 0x846E, 0x5235, 0x846F, 0x523C, 0x8470, 0x523E, 0x8471, 0x5244, 0x8472, 0x5245, 0x8473, 0x5246, 0x8474, 0x5247, + 0x8475, 0x5248, 0x8476, 0x5249, 0x8477, 0x524B, 0x8478, 0x524E, 0x8479, 0x524F, 0x847A, 0x5252, 0x847B, 0x5253, 0x847C, 0x5255, + 0x847D, 0x5257, 0x847E, 0x5258, 0x8480, 0x5259, 0x8481, 0x525A, 0x8482, 0x525B, 0x8483, 0x525D, 0x8484, 0x525F, 0x8485, 0x5260, + 0x8486, 0x5262, 0x8487, 0x5263, 0x8488, 0x5264, 0x8489, 0x5266, 0x848A, 0x5268, 0x848B, 0x526B, 0x848C, 0x526C, 0x848D, 0x526D, + 0x848E, 0x526E, 0x848F, 0x5270, 0x8490, 0x5271, 0x8491, 0x5273, 0x8492, 0x5274, 0x8493, 0x5275, 0x8494, 0x5276, 0x8495, 0x5277, + 0x8496, 0x5278, 0x8497, 0x5279, 0x8498, 0x527A, 0x8499, 0x527B, 0x849A, 0x527C, 0x849B, 0x527E, 0x849C, 0x5280, 0x849D, 0x5283, + 0x849E, 0x5284, 0x849F, 0x5285, 0x84A0, 0x5286, 0x84A1, 0x5287, 0x84A2, 0x5289, 0x84A3, 0x528A, 0x84A4, 0x528B, 0x84A5, 0x528C, + 0x84A6, 0x528D, 0x84A7, 0x528E, 0x84A8, 0x528F, 0x84A9, 0x5291, 0x84AA, 0x5292, 0x84AB, 0x5294, 0x84AC, 0x5295, 0x84AD, 0x5296, + 0x84AE, 0x5297, 0x84AF, 0x5298, 0x84B0, 0x5299, 0x84B1, 0x529A, 0x84B2, 0x529C, 0x84B3, 0x52A4, 0x84B4, 0x52A5, 0x84B5, 0x52A6, + 0x84B6, 0x52A7, 0x84B7, 0x52AE, 0x84B8, 0x52AF, 0x84B9, 0x52B0, 0x84BA, 0x52B4, 0x84BB, 0x52B5, 0x84BC, 0x52B6, 0x84BD, 0x52B7, + 0x84BE, 0x52B8, 0x84BF, 0x52B9, 0x84C0, 0x52BA, 0x84C1, 0x52BB, 0x84C2, 0x52BC, 0x84C3, 0x52BD, 0x84C4, 0x52C0, 0x84C5, 0x52C1, + 0x84C6, 0x52C2, 0x84C7, 0x52C4, 0x84C8, 0x52C5, 0x84C9, 0x52C6, 0x84CA, 0x52C8, 0x84CB, 0x52CA, 0x84CC, 0x52CC, 0x84CD, 0x52CD, + 0x84CE, 0x52CE, 0x84CF, 0x52CF, 0x84D0, 0x52D1, 0x84D1, 0x52D3, 0x84D2, 0x52D4, 0x84D3, 0x52D5, 0x84D4, 0x52D7, 0x84D5, 0x52D9, + 0x84D6, 0x52DA, 0x84D7, 0x52DB, 0x84D8, 0x52DC, 0x84D9, 0x52DD, 0x84DA, 0x52DE, 0x84DB, 0x52E0, 0x84DC, 0x52E1, 0x84DD, 0x52E2, + 0x84DE, 0x52E3, 0x84DF, 0x52E5, 0x84E0, 0x52E6, 0x84E1, 0x52E7, 0x84E2, 0x52E8, 0x84E3, 0x52E9, 0x84E4, 0x52EA, 0x84E5, 0x52EB, + 0x84E6, 0x52EC, 0x84E7, 0x52ED, 0x84E8, 0x52EE, 0x84E9, 0x52EF, 0x84EA, 0x52F1, 0x84EB, 0x52F2, 0x84EC, 0x52F3, 0x84ED, 0x52F4, + 0x84EE, 0x52F5, 0x84EF, 0x52F6, 0x84F0, 0x52F7, 0x84F1, 0x52F8, 0x84F2, 0x52FB, 0x84F3, 0x52FC, 0x84F4, 0x52FD, 0x84F5, 0x5301, + 0x84F6, 0x5302, 0x84F7, 0x5303, 0x84F8, 0x5304, 0x84F9, 0x5307, 0x84FA, 0x5309, 0x84FB, 0x530A, 0x84FC, 0x530B, 0x84FD, 0x530C, + 0x84FE, 0x530E, 0x8540, 0x5311, 0x8541, 0x5312, 0x8542, 0x5313, 0x8543, 0x5314, 0x8544, 0x5318, 0x8545, 0x531B, 0x8546, 0x531C, + 0x8547, 0x531E, 0x8548, 0x531F, 0x8549, 0x5322, 0x854A, 0x5324, 0x854B, 0x5325, 0x854C, 0x5327, 0x854D, 0x5328, 0x854E, 0x5329, + 0x854F, 0x532B, 0x8550, 0x532C, 0x8551, 0x532D, 0x8552, 0x532F, 0x8553, 0x5330, 0x8554, 0x5331, 0x8555, 0x5332, 0x8556, 0x5333, + 0x8557, 0x5334, 0x8558, 0x5335, 0x8559, 0x5336, 0x855A, 0x5337, 0x855B, 0x5338, 0x855C, 0x533C, 0x855D, 0x533D, 0x855E, 0x5340, + 0x855F, 0x5342, 0x8560, 0x5344, 0x8561, 0x5346, 0x8562, 0x534B, 0x8563, 0x534C, 0x8564, 0x534D, 0x8565, 0x5350, 0x8566, 0x5354, + 0x8567, 0x5358, 0x8568, 0x5359, 0x8569, 0x535B, 0x856A, 0x535D, 0x856B, 0x5365, 0x856C, 0x5368, 0x856D, 0x536A, 0x856E, 0x536C, + 0x856F, 0x536D, 0x8570, 0x5372, 0x8571, 0x5376, 0x8572, 0x5379, 0x8573, 0x537B, 0x8574, 0x537C, 0x8575, 0x537D, 0x8576, 0x537E, + 0x8577, 0x5380, 0x8578, 0x5381, 0x8579, 0x5383, 0x857A, 0x5387, 0x857B, 0x5388, 0x857C, 0x538A, 0x857D, 0x538E, 0x857E, 0x538F, + 0x8580, 0x5390, 0x8581, 0x5391, 0x8582, 0x5392, 0x8583, 0x5393, 0x8584, 0x5394, 0x8585, 0x5396, 0x8586, 0x5397, 0x8587, 0x5399, + 0x8588, 0x539B, 0x8589, 0x539C, 0x858A, 0x539E, 0x858B, 0x53A0, 0x858C, 0x53A1, 0x858D, 0x53A4, 0x858E, 0x53A7, 0x858F, 0x53AA, + 0x8590, 0x53AB, 0x8591, 0x53AC, 0x8592, 0x53AD, 0x8593, 0x53AF, 0x8594, 0x53B0, 0x8595, 0x53B1, 0x8596, 0x53B2, 0x8597, 0x53B3, + 0x8598, 0x53B4, 0x8599, 0x53B5, 0x859A, 0x53B7, 0x859B, 0x53B8, 0x859C, 0x53B9, 0x859D, 0x53BA, 0x859E, 0x53BC, 0x859F, 0x53BD, + 0x85A0, 0x53BE, 0x85A1, 0x53C0, 0x85A2, 0x53C3, 0x85A3, 0x53C4, 0x85A4, 0x53C5, 0x85A5, 0x53C6, 0x85A6, 0x53C7, 0x85A7, 0x53CE, + 0x85A8, 0x53CF, 0x85A9, 0x53D0, 0x85AA, 0x53D2, 0x85AB, 0x53D3, 0x85AC, 0x53D5, 0x85AD, 0x53DA, 0x85AE, 0x53DC, 0x85AF, 0x53DD, + 0x85B0, 0x53DE, 0x85B1, 0x53E1, 0x85B2, 0x53E2, 0x85B3, 0x53E7, 0x85B4, 0x53F4, 0x85B5, 0x53FA, 0x85B6, 0x53FE, 0x85B7, 0x53FF, + 0x85B8, 0x5400, 0x85B9, 0x5402, 0x85BA, 0x5405, 0x85BB, 0x5407, 0x85BC, 0x540B, 0x85BD, 0x5414, 0x85BE, 0x5418, 0x85BF, 0x5419, + 0x85C0, 0x541A, 0x85C1, 0x541C, 0x85C2, 0x5422, 0x85C3, 0x5424, 0x85C4, 0x5425, 0x85C5, 0x542A, 0x85C6, 0x5430, 0x85C7, 0x5433, + 0x85C8, 0x5436, 0x85C9, 0x5437, 0x85CA, 0x543A, 0x85CB, 0x543D, 0x85CC, 0x543F, 0x85CD, 0x5441, 0x85CE, 0x5442, 0x85CF, 0x5444, + 0x85D0, 0x5445, 0x85D1, 0x5447, 0x85D2, 0x5449, 0x85D3, 0x544C, 0x85D4, 0x544D, 0x85D5, 0x544E, 0x85D6, 0x544F, 0x85D7, 0x5451, + 0x85D8, 0x545A, 0x85D9, 0x545D, 0x85DA, 0x545E, 0x85DB, 0x545F, 0x85DC, 0x5460, 0x85DD, 0x5461, 0x85DE, 0x5463, 0x85DF, 0x5465, + 0x85E0, 0x5467, 0x85E1, 0x5469, 0x85E2, 0x546A, 0x85E3, 0x546B, 0x85E4, 0x546C, 0x85E5, 0x546D, 0x85E6, 0x546E, 0x85E7, 0x546F, + 0x85E8, 0x5470, 0x85E9, 0x5474, 0x85EA, 0x5479, 0x85EB, 0x547A, 0x85EC, 0x547E, 0x85ED, 0x547F, 0x85EE, 0x5481, 0x85EF, 0x5483, + 0x85F0, 0x5485, 0x85F1, 0x5487, 0x85F2, 0x5488, 0x85F3, 0x5489, 0x85F4, 0x548A, 0x85F5, 0x548D, 0x85F6, 0x5491, 0x85F7, 0x5493, + 0x85F8, 0x5497, 0x85F9, 0x5498, 0x85FA, 0x549C, 0x85FB, 0x549E, 0x85FC, 0x549F, 0x85FD, 0x54A0, 0x85FE, 0x54A1, 0x8640, 0x54A2, + 0x8641, 0x54A5, 0x8642, 0x54AE, 0x8643, 0x54B0, 0x8644, 0x54B2, 0x8645, 0x54B5, 0x8646, 0x54B6, 0x8647, 0x54B7, 0x8648, 0x54B9, + 0x8649, 0x54BA, 0x864A, 0x54BC, 0x864B, 0x54BE, 0x864C, 0x54C3, 0x864D, 0x54C5, 0x864E, 0x54CA, 0x864F, 0x54CB, 0x8650, 0x54D6, + 0x8651, 0x54D8, 0x8652, 0x54DB, 0x8653, 0x54E0, 0x8654, 0x54E1, 0x8655, 0x54E2, 0x8656, 0x54E3, 0x8657, 0x54E4, 0x8658, 0x54EB, + 0x8659, 0x54EC, 0x865A, 0x54EF, 0x865B, 0x54F0, 0x865C, 0x54F1, 0x865D, 0x54F4, 0x865E, 0x54F5, 0x865F, 0x54F6, 0x8660, 0x54F7, + 0x8661, 0x54F8, 0x8662, 0x54F9, 0x8663, 0x54FB, 0x8664, 0x54FE, 0x8665, 0x5500, 0x8666, 0x5502, 0x8667, 0x5503, 0x8668, 0x5504, + 0x8669, 0x5505, 0x866A, 0x5508, 0x866B, 0x550A, 0x866C, 0x550B, 0x866D, 0x550C, 0x866E, 0x550D, 0x866F, 0x550E, 0x8670, 0x5512, + 0x8671, 0x5513, 0x8672, 0x5515, 0x8673, 0x5516, 0x8674, 0x5517, 0x8675, 0x5518, 0x8676, 0x5519, 0x8677, 0x551A, 0x8678, 0x551C, + 0x8679, 0x551D, 0x867A, 0x551E, 0x867B, 0x551F, 0x867C, 0x5521, 0x867D, 0x5525, 0x867E, 0x5526, 0x8680, 0x5528, 0x8681, 0x5529, + 0x8682, 0x552B, 0x8683, 0x552D, 0x8684, 0x5532, 0x8685, 0x5534, 0x8686, 0x5535, 0x8687, 0x5536, 0x8688, 0x5538, 0x8689, 0x5539, + 0x868A, 0x553A, 0x868B, 0x553B, 0x868C, 0x553D, 0x868D, 0x5540, 0x868E, 0x5542, 0x868F, 0x5545, 0x8690, 0x5547, 0x8691, 0x5548, + 0x8692, 0x554B, 0x8693, 0x554C, 0x8694, 0x554D, 0x8695, 0x554E, 0x8696, 0x554F, 0x8697, 0x5551, 0x8698, 0x5552, 0x8699, 0x5553, + 0x869A, 0x5554, 0x869B, 0x5557, 0x869C, 0x5558, 0x869D, 0x5559, 0x869E, 0x555A, 0x869F, 0x555B, 0x86A0, 0x555D, 0x86A1, 0x555E, + 0x86A2, 0x555F, 0x86A3, 0x5560, 0x86A4, 0x5562, 0x86A5, 0x5563, 0x86A6, 0x5568, 0x86A7, 0x5569, 0x86A8, 0x556B, 0x86A9, 0x556F, + 0x86AA, 0x5570, 0x86AB, 0x5571, 0x86AC, 0x5572, 0x86AD, 0x5573, 0x86AE, 0x5574, 0x86AF, 0x5579, 0x86B0, 0x557A, 0x86B1, 0x557D, + 0x86B2, 0x557F, 0x86B3, 0x5585, 0x86B4, 0x5586, 0x86B5, 0x558C, 0x86B6, 0x558D, 0x86B7, 0x558E, 0x86B8, 0x5590, 0x86B9, 0x5592, + 0x86BA, 0x5593, 0x86BB, 0x5595, 0x86BC, 0x5596, 0x86BD, 0x5597, 0x86BE, 0x559A, 0x86BF, 0x559B, 0x86C0, 0x559E, 0x86C1, 0x55A0, + 0x86C2, 0x55A1, 0x86C3, 0x55A2, 0x86C4, 0x55A3, 0x86C5, 0x55A4, 0x86C6, 0x55A5, 0x86C7, 0x55A6, 0x86C8, 0x55A8, 0x86C9, 0x55A9, + 0x86CA, 0x55AA, 0x86CB, 0x55AB, 0x86CC, 0x55AC, 0x86CD, 0x55AD, 0x86CE, 0x55AE, 0x86CF, 0x55AF, 0x86D0, 0x55B0, 0x86D1, 0x55B2, + 0x86D2, 0x55B4, 0x86D3, 0x55B6, 0x86D4, 0x55B8, 0x86D5, 0x55BA, 0x86D6, 0x55BC, 0x86D7, 0x55BF, 0x86D8, 0x55C0, 0x86D9, 0x55C1, + 0x86DA, 0x55C2, 0x86DB, 0x55C3, 0x86DC, 0x55C6, 0x86DD, 0x55C7, 0x86DE, 0x55C8, 0x86DF, 0x55CA, 0x86E0, 0x55CB, 0x86E1, 0x55CE, + 0x86E2, 0x55CF, 0x86E3, 0x55D0, 0x86E4, 0x55D5, 0x86E5, 0x55D7, 0x86E6, 0x55D8, 0x86E7, 0x55D9, 0x86E8, 0x55DA, 0x86E9, 0x55DB, + 0x86EA, 0x55DE, 0x86EB, 0x55E0, 0x86EC, 0x55E2, 0x86ED, 0x55E7, 0x86EE, 0x55E9, 0x86EF, 0x55ED, 0x86F0, 0x55EE, 0x86F1, 0x55F0, + 0x86F2, 0x55F1, 0x86F3, 0x55F4, 0x86F4, 0x55F6, 0x86F5, 0x55F8, 0x86F6, 0x55F9, 0x86F7, 0x55FA, 0x86F8, 0x55FB, 0x86F9, 0x55FC, + 0x86FA, 0x55FF, 0x86FB, 0x5602, 0x86FC, 0x5603, 0x86FD, 0x5604, 0x86FE, 0x5605, 0x8740, 0x5606, 0x8741, 0x5607, 0x8742, 0x560A, + 0x8743, 0x560B, 0x8744, 0x560D, 0x8745, 0x5610, 0x8746, 0x5611, 0x8747, 0x5612, 0x8748, 0x5613, 0x8749, 0x5614, 0x874A, 0x5615, + 0x874B, 0x5616, 0x874C, 0x5617, 0x874D, 0x5619, 0x874E, 0x561A, 0x874F, 0x561C, 0x8750, 0x561D, 0x8751, 0x5620, 0x8752, 0x5621, + 0x8753, 0x5622, 0x8754, 0x5625, 0x8755, 0x5626, 0x8756, 0x5628, 0x8757, 0x5629, 0x8758, 0x562A, 0x8759, 0x562B, 0x875A, 0x562E, + 0x875B, 0x562F, 0x875C, 0x5630, 0x875D, 0x5633, 0x875E, 0x5635, 0x875F, 0x5637, 0x8760, 0x5638, 0x8761, 0x563A, 0x8762, 0x563C, + 0x8763, 0x563D, 0x8764, 0x563E, 0x8765, 0x5640, 0x8766, 0x5641, 0x8767, 0x5642, 0x8768, 0x5643, 0x8769, 0x5644, 0x876A, 0x5645, + 0x876B, 0x5646, 0x876C, 0x5647, 0x876D, 0x5648, 0x876E, 0x5649, 0x876F, 0x564A, 0x8770, 0x564B, 0x8771, 0x564F, 0x8772, 0x5650, + 0x8773, 0x5651, 0x8774, 0x5652, 0x8775, 0x5653, 0x8776, 0x5655, 0x8777, 0x5656, 0x8778, 0x565A, 0x8779, 0x565B, 0x877A, 0x565D, + 0x877B, 0x565E, 0x877C, 0x565F, 0x877D, 0x5660, 0x877E, 0x5661, 0x8780, 0x5663, 0x8781, 0x5665, 0x8782, 0x5666, 0x8783, 0x5667, + 0x8784, 0x566D, 0x8785, 0x566E, 0x8786, 0x566F, 0x8787, 0x5670, 0x8788, 0x5672, 0x8789, 0x5673, 0x878A, 0x5674, 0x878B, 0x5675, + 0x878C, 0x5677, 0x878D, 0x5678, 0x878E, 0x5679, 0x878F, 0x567A, 0x8790, 0x567D, 0x8791, 0x567E, 0x8792, 0x567F, 0x8793, 0x5680, + 0x8794, 0x5681, 0x8795, 0x5682, 0x8796, 0x5683, 0x8797, 0x5684, 0x8798, 0x5687, 0x8799, 0x5688, 0x879A, 0x5689, 0x879B, 0x568A, + 0x879C, 0x568B, 0x879D, 0x568C, 0x879E, 0x568D, 0x879F, 0x5690, 0x87A0, 0x5691, 0x87A1, 0x5692, 0x87A2, 0x5694, 0x87A3, 0x5695, + 0x87A4, 0x5696, 0x87A5, 0x5697, 0x87A6, 0x5698, 0x87A7, 0x5699, 0x87A8, 0x569A, 0x87A9, 0x569B, 0x87AA, 0x569C, 0x87AB, 0x569D, + 0x87AC, 0x569E, 0x87AD, 0x569F, 0x87AE, 0x56A0, 0x87AF, 0x56A1, 0x87B0, 0x56A2, 0x87B1, 0x56A4, 0x87B2, 0x56A5, 0x87B3, 0x56A6, + 0x87B4, 0x56A7, 0x87B5, 0x56A8, 0x87B6, 0x56A9, 0x87B7, 0x56AA, 0x87B8, 0x56AB, 0x87B9, 0x56AC, 0x87BA, 0x56AD, 0x87BB, 0x56AE, + 0x87BC, 0x56B0, 0x87BD, 0x56B1, 0x87BE, 0x56B2, 0x87BF, 0x56B3, 0x87C0, 0x56B4, 0x87C1, 0x56B5, 0x87C2, 0x56B6, 0x87C3, 0x56B8, + 0x87C4, 0x56B9, 0x87C5, 0x56BA, 0x87C6, 0x56BB, 0x87C7, 0x56BD, 0x87C8, 0x56BE, 0x87C9, 0x56BF, 0x87CA, 0x56C0, 0x87CB, 0x56C1, + 0x87CC, 0x56C2, 0x87CD, 0x56C3, 0x87CE, 0x56C4, 0x87CF, 0x56C5, 0x87D0, 0x56C6, 0x87D1, 0x56C7, 0x87D2, 0x56C8, 0x87D3, 0x56C9, + 0x87D4, 0x56CB, 0x87D5, 0x56CC, 0x87D6, 0x56CD, 0x87D7, 0x56CE, 0x87D8, 0x56CF, 0x87D9, 0x56D0, 0x87DA, 0x56D1, 0x87DB, 0x56D2, + 0x87DC, 0x56D3, 0x87DD, 0x56D5, 0x87DE, 0x56D6, 0x87DF, 0x56D8, 0x87E0, 0x56D9, 0x87E1, 0x56DC, 0x87E2, 0x56E3, 0x87E3, 0x56E5, + 0x87E4, 0x56E6, 0x87E5, 0x56E7, 0x87E6, 0x56E8, 0x87E7, 0x56E9, 0x87E8, 0x56EA, 0x87E9, 0x56EC, 0x87EA, 0x56EE, 0x87EB, 0x56EF, + 0x87EC, 0x56F2, 0x87ED, 0x56F3, 0x87EE, 0x56F6, 0x87EF, 0x56F7, 0x87F0, 0x56F8, 0x87F1, 0x56FB, 0x87F2, 0x56FC, 0x87F3, 0x5700, + 0x87F4, 0x5701, 0x87F5, 0x5702, 0x87F6, 0x5705, 0x87F7, 0x5707, 0x87F8, 0x570B, 0x87F9, 0x570C, 0x87FA, 0x570D, 0x87FB, 0x570E, + 0x87FC, 0x570F, 0x87FD, 0x5710, 0x87FE, 0x5711, 0x8840, 0x5712, 0x8841, 0x5713, 0x8842, 0x5714, 0x8843, 0x5715, 0x8844, 0x5716, + 0x8845, 0x5717, 0x8846, 0x5718, 0x8847, 0x5719, 0x8848, 0x571A, 0x8849, 0x571B, 0x884A, 0x571D, 0x884B, 0x571E, 0x884C, 0x5720, + 0x884D, 0x5721, 0x884E, 0x5722, 0x884F, 0x5724, 0x8850, 0x5725, 0x8851, 0x5726, 0x8852, 0x5727, 0x8853, 0x572B, 0x8854, 0x5731, + 0x8855, 0x5732, 0x8856, 0x5734, 0x8857, 0x5735, 0x8858, 0x5736, 0x8859, 0x5737, 0x885A, 0x5738, 0x885B, 0x573C, 0x885C, 0x573D, + 0x885D, 0x573F, 0x885E, 0x5741, 0x885F, 0x5743, 0x8860, 0x5744, 0x8861, 0x5745, 0x8862, 0x5746, 0x8863, 0x5748, 0x8864, 0x5749, + 0x8865, 0x574B, 0x8866, 0x5752, 0x8867, 0x5753, 0x8868, 0x5754, 0x8869, 0x5755, 0x886A, 0x5756, 0x886B, 0x5758, 0x886C, 0x5759, + 0x886D, 0x5762, 0x886E, 0x5763, 0x886F, 0x5765, 0x8870, 0x5767, 0x8871, 0x576C, 0x8872, 0x576E, 0x8873, 0x5770, 0x8874, 0x5771, + 0x8875, 0x5772, 0x8876, 0x5774, 0x8877, 0x5775, 0x8878, 0x5778, 0x8879, 0x5779, 0x887A, 0x577A, 0x887B, 0x577D, 0x887C, 0x577E, + 0x887D, 0x577F, 0x887E, 0x5780, 0x8880, 0x5781, 0x8881, 0x5787, 0x8882, 0x5788, 0x8883, 0x5789, 0x8884, 0x578A, 0x8885, 0x578D, + 0x8886, 0x578E, 0x8887, 0x578F, 0x8888, 0x5790, 0x8889, 0x5791, 0x888A, 0x5794, 0x888B, 0x5795, 0x888C, 0x5796, 0x888D, 0x5797, + 0x888E, 0x5798, 0x888F, 0x5799, 0x8890, 0x579A, 0x8891, 0x579C, 0x8892, 0x579D, 0x8893, 0x579E, 0x8894, 0x579F, 0x8895, 0x57A5, + 0x8896, 0x57A8, 0x8897, 0x57AA, 0x8898, 0x57AC, 0x8899, 0x57AF, 0x889A, 0x57B0, 0x889B, 0x57B1, 0x889C, 0x57B3, 0x889D, 0x57B5, + 0x889E, 0x57B6, 0x889F, 0x57B7, 0x88A0, 0x57B9, 0x88A1, 0x57BA, 0x88A2, 0x57BB, 0x88A3, 0x57BC, 0x88A4, 0x57BD, 0x88A5, 0x57BE, + 0x88A6, 0x57BF, 0x88A7, 0x57C0, 0x88A8, 0x57C1, 0x88A9, 0x57C4, 0x88AA, 0x57C5, 0x88AB, 0x57C6, 0x88AC, 0x57C7, 0x88AD, 0x57C8, + 0x88AE, 0x57C9, 0x88AF, 0x57CA, 0x88B0, 0x57CC, 0x88B1, 0x57CD, 0x88B2, 0x57D0, 0x88B3, 0x57D1, 0x88B4, 0x57D3, 0x88B5, 0x57D6, + 0x88B6, 0x57D7, 0x88B7, 0x57DB, 0x88B8, 0x57DC, 0x88B9, 0x57DE, 0x88BA, 0x57E1, 0x88BB, 0x57E2, 0x88BC, 0x57E3, 0x88BD, 0x57E5, + 0x88BE, 0x57E6, 0x88BF, 0x57E7, 0x88C0, 0x57E8, 0x88C1, 0x57E9, 0x88C2, 0x57EA, 0x88C3, 0x57EB, 0x88C4, 0x57EC, 0x88C5, 0x57EE, + 0x88C6, 0x57F0, 0x88C7, 0x57F1, 0x88C8, 0x57F2, 0x88C9, 0x57F3, 0x88CA, 0x57F5, 0x88CB, 0x57F6, 0x88CC, 0x57F7, 0x88CD, 0x57FB, + 0x88CE, 0x57FC, 0x88CF, 0x57FE, 0x88D0, 0x57FF, 0x88D1, 0x5801, 0x88D2, 0x5803, 0x88D3, 0x5804, 0x88D4, 0x5805, 0x88D5, 0x5808, + 0x88D6, 0x5809, 0x88D7, 0x580A, 0x88D8, 0x580C, 0x88D9, 0x580E, 0x88DA, 0x580F, 0x88DB, 0x5810, 0x88DC, 0x5812, 0x88DD, 0x5813, + 0x88DE, 0x5814, 0x88DF, 0x5816, 0x88E0, 0x5817, 0x88E1, 0x5818, 0x88E2, 0x581A, 0x88E3, 0x581B, 0x88E4, 0x581C, 0x88E5, 0x581D, + 0x88E6, 0x581F, 0x88E7, 0x5822, 0x88E8, 0x5823, 0x88E9, 0x5825, 0x88EA, 0x5826, 0x88EB, 0x5827, 0x88EC, 0x5828, 0x88ED, 0x5829, + 0x88EE, 0x582B, 0x88EF, 0x582C, 0x88F0, 0x582D, 0x88F1, 0x582E, 0x88F2, 0x582F, 0x88F3, 0x5831, 0x88F4, 0x5832, 0x88F5, 0x5833, + 0x88F6, 0x5834, 0x88F7, 0x5836, 0x88F8, 0x5837, 0x88F9, 0x5838, 0x88FA, 0x5839, 0x88FB, 0x583A, 0x88FC, 0x583B, 0x88FD, 0x583C, + 0x88FE, 0x583D, 0x8940, 0x583E, 0x8941, 0x583F, 0x8942, 0x5840, 0x8943, 0x5841, 0x8944, 0x5842, 0x8945, 0x5843, 0x8946, 0x5845, + 0x8947, 0x5846, 0x8948, 0x5847, 0x8949, 0x5848, 0x894A, 0x5849, 0x894B, 0x584A, 0x894C, 0x584B, 0x894D, 0x584E, 0x894E, 0x584F, + 0x894F, 0x5850, 0x8950, 0x5852, 0x8951, 0x5853, 0x8952, 0x5855, 0x8953, 0x5856, 0x8954, 0x5857, 0x8955, 0x5859, 0x8956, 0x585A, + 0x8957, 0x585B, 0x8958, 0x585C, 0x8959, 0x585D, 0x895A, 0x585F, 0x895B, 0x5860, 0x895C, 0x5861, 0x895D, 0x5862, 0x895E, 0x5863, + 0x895F, 0x5864, 0x8960, 0x5866, 0x8961, 0x5867, 0x8962, 0x5868, 0x8963, 0x5869, 0x8964, 0x586A, 0x8965, 0x586D, 0x8966, 0x586E, + 0x8967, 0x586F, 0x8968, 0x5870, 0x8969, 0x5871, 0x896A, 0x5872, 0x896B, 0x5873, 0x896C, 0x5874, 0x896D, 0x5875, 0x896E, 0x5876, + 0x896F, 0x5877, 0x8970, 0x5878, 0x8971, 0x5879, 0x8972, 0x587A, 0x8973, 0x587B, 0x8974, 0x587C, 0x8975, 0x587D, 0x8976, 0x587F, + 0x8977, 0x5882, 0x8978, 0x5884, 0x8979, 0x5886, 0x897A, 0x5887, 0x897B, 0x5888, 0x897C, 0x588A, 0x897D, 0x588B, 0x897E, 0x588C, + 0x8980, 0x588D, 0x8981, 0x588E, 0x8982, 0x588F, 0x8983, 0x5890, 0x8984, 0x5891, 0x8985, 0x5894, 0x8986, 0x5895, 0x8987, 0x5896, + 0x8988, 0x5897, 0x8989, 0x5898, 0x898A, 0x589B, 0x898B, 0x589C, 0x898C, 0x589D, 0x898D, 0x58A0, 0x898E, 0x58A1, 0x898F, 0x58A2, + 0x8990, 0x58A3, 0x8991, 0x58A4, 0x8992, 0x58A5, 0x8993, 0x58A6, 0x8994, 0x58A7, 0x8995, 0x58AA, 0x8996, 0x58AB, 0x8997, 0x58AC, + 0x8998, 0x58AD, 0x8999, 0x58AE, 0x899A, 0x58AF, 0x899B, 0x58B0, 0x899C, 0x58B1, 0x899D, 0x58B2, 0x899E, 0x58B3, 0x899F, 0x58B4, + 0x89A0, 0x58B5, 0x89A1, 0x58B6, 0x89A2, 0x58B7, 0x89A3, 0x58B8, 0x89A4, 0x58B9, 0x89A5, 0x58BA, 0x89A6, 0x58BB, 0x89A7, 0x58BD, + 0x89A8, 0x58BE, 0x89A9, 0x58BF, 0x89AA, 0x58C0, 0x89AB, 0x58C2, 0x89AC, 0x58C3, 0x89AD, 0x58C4, 0x89AE, 0x58C6, 0x89AF, 0x58C7, + 0x89B0, 0x58C8, 0x89B1, 0x58C9, 0x89B2, 0x58CA, 0x89B3, 0x58CB, 0x89B4, 0x58CC, 0x89B5, 0x58CD, 0x89B6, 0x58CE, 0x89B7, 0x58CF, + 0x89B8, 0x58D0, 0x89B9, 0x58D2, 0x89BA, 0x58D3, 0x89BB, 0x58D4, 0x89BC, 0x58D6, 0x89BD, 0x58D7, 0x89BE, 0x58D8, 0x89BF, 0x58D9, + 0x89C0, 0x58DA, 0x89C1, 0x58DB, 0x89C2, 0x58DC, 0x89C3, 0x58DD, 0x89C4, 0x58DE, 0x89C5, 0x58DF, 0x89C6, 0x58E0, 0x89C7, 0x58E1, + 0x89C8, 0x58E2, 0x89C9, 0x58E3, 0x89CA, 0x58E5, 0x89CB, 0x58E6, 0x89CC, 0x58E7, 0x89CD, 0x58E8, 0x89CE, 0x58E9, 0x89CF, 0x58EA, + 0x89D0, 0x58ED, 0x89D1, 0x58EF, 0x89D2, 0x58F1, 0x89D3, 0x58F2, 0x89D4, 0x58F4, 0x89D5, 0x58F5, 0x89D6, 0x58F7, 0x89D7, 0x58F8, + 0x89D8, 0x58FA, 0x89D9, 0x58FB, 0x89DA, 0x58FC, 0x89DB, 0x58FD, 0x89DC, 0x58FE, 0x89DD, 0x58FF, 0x89DE, 0x5900, 0x89DF, 0x5901, + 0x89E0, 0x5903, 0x89E1, 0x5905, 0x89E2, 0x5906, 0x89E3, 0x5908, 0x89E4, 0x5909, 0x89E5, 0x590A, 0x89E6, 0x590B, 0x89E7, 0x590C, + 0x89E8, 0x590E, 0x89E9, 0x5910, 0x89EA, 0x5911, 0x89EB, 0x5912, 0x89EC, 0x5913, 0x89ED, 0x5917, 0x89EE, 0x5918, 0x89EF, 0x591B, + 0x89F0, 0x591D, 0x89F1, 0x591E, 0x89F2, 0x5920, 0x89F3, 0x5921, 0x89F4, 0x5922, 0x89F5, 0x5923, 0x89F6, 0x5926, 0x89F7, 0x5928, + 0x89F8, 0x592C, 0x89F9, 0x5930, 0x89FA, 0x5932, 0x89FB, 0x5933, 0x89FC, 0x5935, 0x89FD, 0x5936, 0x89FE, 0x593B, 0x8A40, 0x593D, + 0x8A41, 0x593E, 0x8A42, 0x593F, 0x8A43, 0x5940, 0x8A44, 0x5943, 0x8A45, 0x5945, 0x8A46, 0x5946, 0x8A47, 0x594A, 0x8A48, 0x594C, + 0x8A49, 0x594D, 0x8A4A, 0x5950, 0x8A4B, 0x5952, 0x8A4C, 0x5953, 0x8A4D, 0x5959, 0x8A4E, 0x595B, 0x8A4F, 0x595C, 0x8A50, 0x595D, + 0x8A51, 0x595E, 0x8A52, 0x595F, 0x8A53, 0x5961, 0x8A54, 0x5963, 0x8A55, 0x5964, 0x8A56, 0x5966, 0x8A57, 0x5967, 0x8A58, 0x5968, + 0x8A59, 0x5969, 0x8A5A, 0x596A, 0x8A5B, 0x596B, 0x8A5C, 0x596C, 0x8A5D, 0x596D, 0x8A5E, 0x596E, 0x8A5F, 0x596F, 0x8A60, 0x5970, + 0x8A61, 0x5971, 0x8A62, 0x5972, 0x8A63, 0x5975, 0x8A64, 0x5977, 0x8A65, 0x597A, 0x8A66, 0x597B, 0x8A67, 0x597C, 0x8A68, 0x597E, + 0x8A69, 0x597F, 0x8A6A, 0x5980, 0x8A6B, 0x5985, 0x8A6C, 0x5989, 0x8A6D, 0x598B, 0x8A6E, 0x598C, 0x8A6F, 0x598E, 0x8A70, 0x598F, + 0x8A71, 0x5990, 0x8A72, 0x5991, 0x8A73, 0x5994, 0x8A74, 0x5995, 0x8A75, 0x5998, 0x8A76, 0x599A, 0x8A77, 0x599B, 0x8A78, 0x599C, + 0x8A79, 0x599D, 0x8A7A, 0x599F, 0x8A7B, 0x59A0, 0x8A7C, 0x59A1, 0x8A7D, 0x59A2, 0x8A7E, 0x59A6, 0x8A80, 0x59A7, 0x8A81, 0x59AC, + 0x8A82, 0x59AD, 0x8A83, 0x59B0, 0x8A84, 0x59B1, 0x8A85, 0x59B3, 0x8A86, 0x59B4, 0x8A87, 0x59B5, 0x8A88, 0x59B6, 0x8A89, 0x59B7, + 0x8A8A, 0x59B8, 0x8A8B, 0x59BA, 0x8A8C, 0x59BC, 0x8A8D, 0x59BD, 0x8A8E, 0x59BF, 0x8A8F, 0x59C0, 0x8A90, 0x59C1, 0x8A91, 0x59C2, + 0x8A92, 0x59C3, 0x8A93, 0x59C4, 0x8A94, 0x59C5, 0x8A95, 0x59C7, 0x8A96, 0x59C8, 0x8A97, 0x59C9, 0x8A98, 0x59CC, 0x8A99, 0x59CD, + 0x8A9A, 0x59CE, 0x8A9B, 0x59CF, 0x8A9C, 0x59D5, 0x8A9D, 0x59D6, 0x8A9E, 0x59D9, 0x8A9F, 0x59DB, 0x8AA0, 0x59DE, 0x8AA1, 0x59DF, + 0x8AA2, 0x59E0, 0x8AA3, 0x59E1, 0x8AA4, 0x59E2, 0x8AA5, 0x59E4, 0x8AA6, 0x59E6, 0x8AA7, 0x59E7, 0x8AA8, 0x59E9, 0x8AA9, 0x59EA, + 0x8AAA, 0x59EB, 0x8AAB, 0x59ED, 0x8AAC, 0x59EE, 0x8AAD, 0x59EF, 0x8AAE, 0x59F0, 0x8AAF, 0x59F1, 0x8AB0, 0x59F2, 0x8AB1, 0x59F3, + 0x8AB2, 0x59F4, 0x8AB3, 0x59F5, 0x8AB4, 0x59F6, 0x8AB5, 0x59F7, 0x8AB6, 0x59F8, 0x8AB7, 0x59FA, 0x8AB8, 0x59FC, 0x8AB9, 0x59FD, + 0x8ABA, 0x59FE, 0x8ABB, 0x5A00, 0x8ABC, 0x5A02, 0x8ABD, 0x5A0A, 0x8ABE, 0x5A0B, 0x8ABF, 0x5A0D, 0x8AC0, 0x5A0E, 0x8AC1, 0x5A0F, + 0x8AC2, 0x5A10, 0x8AC3, 0x5A12, 0x8AC4, 0x5A14, 0x8AC5, 0x5A15, 0x8AC6, 0x5A16, 0x8AC7, 0x5A17, 0x8AC8, 0x5A19, 0x8AC9, 0x5A1A, + 0x8ACA, 0x5A1B, 0x8ACB, 0x5A1D, 0x8ACC, 0x5A1E, 0x8ACD, 0x5A21, 0x8ACE, 0x5A22, 0x8ACF, 0x5A24, 0x8AD0, 0x5A26, 0x8AD1, 0x5A27, + 0x8AD2, 0x5A28, 0x8AD3, 0x5A2A, 0x8AD4, 0x5A2B, 0x8AD5, 0x5A2C, 0x8AD6, 0x5A2D, 0x8AD7, 0x5A2E, 0x8AD8, 0x5A2F, 0x8AD9, 0x5A30, + 0x8ADA, 0x5A33, 0x8ADB, 0x5A35, 0x8ADC, 0x5A37, 0x8ADD, 0x5A38, 0x8ADE, 0x5A39, 0x8ADF, 0x5A3A, 0x8AE0, 0x5A3B, 0x8AE1, 0x5A3D, + 0x8AE2, 0x5A3E, 0x8AE3, 0x5A3F, 0x8AE4, 0x5A41, 0x8AE5, 0x5A42, 0x8AE6, 0x5A43, 0x8AE7, 0x5A44, 0x8AE8, 0x5A45, 0x8AE9, 0x5A47, + 0x8AEA, 0x5A48, 0x8AEB, 0x5A4B, 0x8AEC, 0x5A4C, 0x8AED, 0x5A4D, 0x8AEE, 0x5A4E, 0x8AEF, 0x5A4F, 0x8AF0, 0x5A50, 0x8AF1, 0x5A51, + 0x8AF2, 0x5A52, 0x8AF3, 0x5A53, 0x8AF4, 0x5A54, 0x8AF5, 0x5A56, 0x8AF6, 0x5A57, 0x8AF7, 0x5A58, 0x8AF8, 0x5A59, 0x8AF9, 0x5A5B, + 0x8AFA, 0x5A5C, 0x8AFB, 0x5A5D, 0x8AFC, 0x5A5E, 0x8AFD, 0x5A5F, 0x8AFE, 0x5A60, 0x8B40, 0x5A61, 0x8B41, 0x5A63, 0x8B42, 0x5A64, + 0x8B43, 0x5A65, 0x8B44, 0x5A66, 0x8B45, 0x5A68, 0x8B46, 0x5A69, 0x8B47, 0x5A6B, 0x8B48, 0x5A6C, 0x8B49, 0x5A6D, 0x8B4A, 0x5A6E, + 0x8B4B, 0x5A6F, 0x8B4C, 0x5A70, 0x8B4D, 0x5A71, 0x8B4E, 0x5A72, 0x8B4F, 0x5A73, 0x8B50, 0x5A78, 0x8B51, 0x5A79, 0x8B52, 0x5A7B, + 0x8B53, 0x5A7C, 0x8B54, 0x5A7D, 0x8B55, 0x5A7E, 0x8B56, 0x5A80, 0x8B57, 0x5A81, 0x8B58, 0x5A82, 0x8B59, 0x5A83, 0x8B5A, 0x5A84, + 0x8B5B, 0x5A85, 0x8B5C, 0x5A86, 0x8B5D, 0x5A87, 0x8B5E, 0x5A88, 0x8B5F, 0x5A89, 0x8B60, 0x5A8A, 0x8B61, 0x5A8B, 0x8B62, 0x5A8C, + 0x8B63, 0x5A8D, 0x8B64, 0x5A8E, 0x8B65, 0x5A8F, 0x8B66, 0x5A90, 0x8B67, 0x5A91, 0x8B68, 0x5A93, 0x8B69, 0x5A94, 0x8B6A, 0x5A95, + 0x8B6B, 0x5A96, 0x8B6C, 0x5A97, 0x8B6D, 0x5A98, 0x8B6E, 0x5A99, 0x8B6F, 0x5A9C, 0x8B70, 0x5A9D, 0x8B71, 0x5A9E, 0x8B72, 0x5A9F, + 0x8B73, 0x5AA0, 0x8B74, 0x5AA1, 0x8B75, 0x5AA2, 0x8B76, 0x5AA3, 0x8B77, 0x5AA4, 0x8B78, 0x5AA5, 0x8B79, 0x5AA6, 0x8B7A, 0x5AA7, + 0x8B7B, 0x5AA8, 0x8B7C, 0x5AA9, 0x8B7D, 0x5AAB, 0x8B7E, 0x5AAC, 0x8B80, 0x5AAD, 0x8B81, 0x5AAE, 0x8B82, 0x5AAF, 0x8B83, 0x5AB0, + 0x8B84, 0x5AB1, 0x8B85, 0x5AB4, 0x8B86, 0x5AB6, 0x8B87, 0x5AB7, 0x8B88, 0x5AB9, 0x8B89, 0x5ABA, 0x8B8A, 0x5ABB, 0x8B8B, 0x5ABC, + 0x8B8C, 0x5ABD, 0x8B8D, 0x5ABF, 0x8B8E, 0x5AC0, 0x8B8F, 0x5AC3, 0x8B90, 0x5AC4, 0x8B91, 0x5AC5, 0x8B92, 0x5AC6, 0x8B93, 0x5AC7, + 0x8B94, 0x5AC8, 0x8B95, 0x5ACA, 0x8B96, 0x5ACB, 0x8B97, 0x5ACD, 0x8B98, 0x5ACE, 0x8B99, 0x5ACF, 0x8B9A, 0x5AD0, 0x8B9B, 0x5AD1, + 0x8B9C, 0x5AD3, 0x8B9D, 0x5AD5, 0x8B9E, 0x5AD7, 0x8B9F, 0x5AD9, 0x8BA0, 0x5ADA, 0x8BA1, 0x5ADB, 0x8BA2, 0x5ADD, 0x8BA3, 0x5ADE, + 0x8BA4, 0x5ADF, 0x8BA5, 0x5AE2, 0x8BA6, 0x5AE4, 0x8BA7, 0x5AE5, 0x8BA8, 0x5AE7, 0x8BA9, 0x5AE8, 0x8BAA, 0x5AEA, 0x8BAB, 0x5AEC, + 0x8BAC, 0x5AED, 0x8BAD, 0x5AEE, 0x8BAE, 0x5AEF, 0x8BAF, 0x5AF0, 0x8BB0, 0x5AF2, 0x8BB1, 0x5AF3, 0x8BB2, 0x5AF4, 0x8BB3, 0x5AF5, + 0x8BB4, 0x5AF6, 0x8BB5, 0x5AF7, 0x8BB6, 0x5AF8, 0x8BB7, 0x5AF9, 0x8BB8, 0x5AFA, 0x8BB9, 0x5AFB, 0x8BBA, 0x5AFC, 0x8BBB, 0x5AFD, + 0x8BBC, 0x5AFE, 0x8BBD, 0x5AFF, 0x8BBE, 0x5B00, 0x8BBF, 0x5B01, 0x8BC0, 0x5B02, 0x8BC1, 0x5B03, 0x8BC2, 0x5B04, 0x8BC3, 0x5B05, + 0x8BC4, 0x5B06, 0x8BC5, 0x5B07, 0x8BC6, 0x5B08, 0x8BC7, 0x5B0A, 0x8BC8, 0x5B0B, 0x8BC9, 0x5B0C, 0x8BCA, 0x5B0D, 0x8BCB, 0x5B0E, + 0x8BCC, 0x5B0F, 0x8BCD, 0x5B10, 0x8BCE, 0x5B11, 0x8BCF, 0x5B12, 0x8BD0, 0x5B13, 0x8BD1, 0x5B14, 0x8BD2, 0x5B15, 0x8BD3, 0x5B18, + 0x8BD4, 0x5B19, 0x8BD5, 0x5B1A, 0x8BD6, 0x5B1B, 0x8BD7, 0x5B1C, 0x8BD8, 0x5B1D, 0x8BD9, 0x5B1E, 0x8BDA, 0x5B1F, 0x8BDB, 0x5B20, + 0x8BDC, 0x5B21, 0x8BDD, 0x5B22, 0x8BDE, 0x5B23, 0x8BDF, 0x5B24, 0x8BE0, 0x5B25, 0x8BE1, 0x5B26, 0x8BE2, 0x5B27, 0x8BE3, 0x5B28, + 0x8BE4, 0x5B29, 0x8BE5, 0x5B2A, 0x8BE6, 0x5B2B, 0x8BE7, 0x5B2C, 0x8BE8, 0x5B2D, 0x8BE9, 0x5B2E, 0x8BEA, 0x5B2F, 0x8BEB, 0x5B30, + 0x8BEC, 0x5B31, 0x8BED, 0x5B33, 0x8BEE, 0x5B35, 0x8BEF, 0x5B36, 0x8BF0, 0x5B38, 0x8BF1, 0x5B39, 0x8BF2, 0x5B3A, 0x8BF3, 0x5B3B, + 0x8BF4, 0x5B3C, 0x8BF5, 0x5B3D, 0x8BF6, 0x5B3E, 0x8BF7, 0x5B3F, 0x8BF8, 0x5B41, 0x8BF9, 0x5B42, 0x8BFA, 0x5B43, 0x8BFB, 0x5B44, + 0x8BFC, 0x5B45, 0x8BFD, 0x5B46, 0x8BFE, 0x5B47, 0x8C40, 0x5B48, 0x8C41, 0x5B49, 0x8C42, 0x5B4A, 0x8C43, 0x5B4B, 0x8C44, 0x5B4C, + 0x8C45, 0x5B4D, 0x8C46, 0x5B4E, 0x8C47, 0x5B4F, 0x8C48, 0x5B52, 0x8C49, 0x5B56, 0x8C4A, 0x5B5E, 0x8C4B, 0x5B60, 0x8C4C, 0x5B61, + 0x8C4D, 0x5B67, 0x8C4E, 0x5B68, 0x8C4F, 0x5B6B, 0x8C50, 0x5B6D, 0x8C51, 0x5B6E, 0x8C52, 0x5B6F, 0x8C53, 0x5B72, 0x8C54, 0x5B74, + 0x8C55, 0x5B76, 0x8C56, 0x5B77, 0x8C57, 0x5B78, 0x8C58, 0x5B79, 0x8C59, 0x5B7B, 0x8C5A, 0x5B7C, 0x8C5B, 0x5B7E, 0x8C5C, 0x5B7F, + 0x8C5D, 0x5B82, 0x8C5E, 0x5B86, 0x8C5F, 0x5B8A, 0x8C60, 0x5B8D, 0x8C61, 0x5B8E, 0x8C62, 0x5B90, 0x8C63, 0x5B91, 0x8C64, 0x5B92, + 0x8C65, 0x5B94, 0x8C66, 0x5B96, 0x8C67, 0x5B9F, 0x8C68, 0x5BA7, 0x8C69, 0x5BA8, 0x8C6A, 0x5BA9, 0x8C6B, 0x5BAC, 0x8C6C, 0x5BAD, + 0x8C6D, 0x5BAE, 0x8C6E, 0x5BAF, 0x8C6F, 0x5BB1, 0x8C70, 0x5BB2, 0x8C71, 0x5BB7, 0x8C72, 0x5BBA, 0x8C73, 0x5BBB, 0x8C74, 0x5BBC, + 0x8C75, 0x5BC0, 0x8C76, 0x5BC1, 0x8C77, 0x5BC3, 0x8C78, 0x5BC8, 0x8C79, 0x5BC9, 0x8C7A, 0x5BCA, 0x8C7B, 0x5BCB, 0x8C7C, 0x5BCD, + 0x8C7D, 0x5BCE, 0x8C7E, 0x5BCF, 0x8C80, 0x5BD1, 0x8C81, 0x5BD4, 0x8C82, 0x5BD5, 0x8C83, 0x5BD6, 0x8C84, 0x5BD7, 0x8C85, 0x5BD8, + 0x8C86, 0x5BD9, 0x8C87, 0x5BDA, 0x8C88, 0x5BDB, 0x8C89, 0x5BDC, 0x8C8A, 0x5BE0, 0x8C8B, 0x5BE2, 0x8C8C, 0x5BE3, 0x8C8D, 0x5BE6, + 0x8C8E, 0x5BE7, 0x8C8F, 0x5BE9, 0x8C90, 0x5BEA, 0x8C91, 0x5BEB, 0x8C92, 0x5BEC, 0x8C93, 0x5BED, 0x8C94, 0x5BEF, 0x8C95, 0x5BF1, + 0x8C96, 0x5BF2, 0x8C97, 0x5BF3, 0x8C98, 0x5BF4, 0x8C99, 0x5BF5, 0x8C9A, 0x5BF6, 0x8C9B, 0x5BF7, 0x8C9C, 0x5BFD, 0x8C9D, 0x5BFE, + 0x8C9E, 0x5C00, 0x8C9F, 0x5C02, 0x8CA0, 0x5C03, 0x8CA1, 0x5C05, 0x8CA2, 0x5C07, 0x8CA3, 0x5C08, 0x8CA4, 0x5C0B, 0x8CA5, 0x5C0C, + 0x8CA6, 0x5C0D, 0x8CA7, 0x5C0E, 0x8CA8, 0x5C10, 0x8CA9, 0x5C12, 0x8CAA, 0x5C13, 0x8CAB, 0x5C17, 0x8CAC, 0x5C19, 0x8CAD, 0x5C1B, + 0x8CAE, 0x5C1E, 0x8CAF, 0x5C1F, 0x8CB0, 0x5C20, 0x8CB1, 0x5C21, 0x8CB2, 0x5C23, 0x8CB3, 0x5C26, 0x8CB4, 0x5C28, 0x8CB5, 0x5C29, + 0x8CB6, 0x5C2A, 0x8CB7, 0x5C2B, 0x8CB8, 0x5C2D, 0x8CB9, 0x5C2E, 0x8CBA, 0x5C2F, 0x8CBB, 0x5C30, 0x8CBC, 0x5C32, 0x8CBD, 0x5C33, + 0x8CBE, 0x5C35, 0x8CBF, 0x5C36, 0x8CC0, 0x5C37, 0x8CC1, 0x5C43, 0x8CC2, 0x5C44, 0x8CC3, 0x5C46, 0x8CC4, 0x5C47, 0x8CC5, 0x5C4C, + 0x8CC6, 0x5C4D, 0x8CC7, 0x5C52, 0x8CC8, 0x5C53, 0x8CC9, 0x5C54, 0x8CCA, 0x5C56, 0x8CCB, 0x5C57, 0x8CCC, 0x5C58, 0x8CCD, 0x5C5A, + 0x8CCE, 0x5C5B, 0x8CCF, 0x5C5C, 0x8CD0, 0x5C5D, 0x8CD1, 0x5C5F, 0x8CD2, 0x5C62, 0x8CD3, 0x5C64, 0x8CD4, 0x5C67, 0x8CD5, 0x5C68, + 0x8CD6, 0x5C69, 0x8CD7, 0x5C6A, 0x8CD8, 0x5C6B, 0x8CD9, 0x5C6C, 0x8CDA, 0x5C6D, 0x8CDB, 0x5C70, 0x8CDC, 0x5C72, 0x8CDD, 0x5C73, + 0x8CDE, 0x5C74, 0x8CDF, 0x5C75, 0x8CE0, 0x5C76, 0x8CE1, 0x5C77, 0x8CE2, 0x5C78, 0x8CE3, 0x5C7B, 0x8CE4, 0x5C7C, 0x8CE5, 0x5C7D, + 0x8CE6, 0x5C7E, 0x8CE7, 0x5C80, 0x8CE8, 0x5C83, 0x8CE9, 0x5C84, 0x8CEA, 0x5C85, 0x8CEB, 0x5C86, 0x8CEC, 0x5C87, 0x8CED, 0x5C89, + 0x8CEE, 0x5C8A, 0x8CEF, 0x5C8B, 0x8CF0, 0x5C8E, 0x8CF1, 0x5C8F, 0x8CF2, 0x5C92, 0x8CF3, 0x5C93, 0x8CF4, 0x5C95, 0x8CF5, 0x5C9D, + 0x8CF6, 0x5C9E, 0x8CF7, 0x5C9F, 0x8CF8, 0x5CA0, 0x8CF9, 0x5CA1, 0x8CFA, 0x5CA4, 0x8CFB, 0x5CA5, 0x8CFC, 0x5CA6, 0x8CFD, 0x5CA7, + 0x8CFE, 0x5CA8, 0x8D40, 0x5CAA, 0x8D41, 0x5CAE, 0x8D42, 0x5CAF, 0x8D43, 0x5CB0, 0x8D44, 0x5CB2, 0x8D45, 0x5CB4, 0x8D46, 0x5CB6, + 0x8D47, 0x5CB9, 0x8D48, 0x5CBA, 0x8D49, 0x5CBB, 0x8D4A, 0x5CBC, 0x8D4B, 0x5CBE, 0x8D4C, 0x5CC0, 0x8D4D, 0x5CC2, 0x8D4E, 0x5CC3, + 0x8D4F, 0x5CC5, 0x8D50, 0x5CC6, 0x8D51, 0x5CC7, 0x8D52, 0x5CC8, 0x8D53, 0x5CC9, 0x8D54, 0x5CCA, 0x8D55, 0x5CCC, 0x8D56, 0x5CCD, + 0x8D57, 0x5CCE, 0x8D58, 0x5CCF, 0x8D59, 0x5CD0, 0x8D5A, 0x5CD1, 0x8D5B, 0x5CD3, 0x8D5C, 0x5CD4, 0x8D5D, 0x5CD5, 0x8D5E, 0x5CD6, + 0x8D5F, 0x5CD7, 0x8D60, 0x5CD8, 0x8D61, 0x5CDA, 0x8D62, 0x5CDB, 0x8D63, 0x5CDC, 0x8D64, 0x5CDD, 0x8D65, 0x5CDE, 0x8D66, 0x5CDF, + 0x8D67, 0x5CE0, 0x8D68, 0x5CE2, 0x8D69, 0x5CE3, 0x8D6A, 0x5CE7, 0x8D6B, 0x5CE9, 0x8D6C, 0x5CEB, 0x8D6D, 0x5CEC, 0x8D6E, 0x5CEE, + 0x8D6F, 0x5CEF, 0x8D70, 0x5CF1, 0x8D71, 0x5CF2, 0x8D72, 0x5CF3, 0x8D73, 0x5CF4, 0x8D74, 0x5CF5, 0x8D75, 0x5CF6, 0x8D76, 0x5CF7, + 0x8D77, 0x5CF8, 0x8D78, 0x5CF9, 0x8D79, 0x5CFA, 0x8D7A, 0x5CFC, 0x8D7B, 0x5CFD, 0x8D7C, 0x5CFE, 0x8D7D, 0x5CFF, 0x8D7E, 0x5D00, + 0x8D80, 0x5D01, 0x8D81, 0x5D04, 0x8D82, 0x5D05, 0x8D83, 0x5D08, 0x8D84, 0x5D09, 0x8D85, 0x5D0A, 0x8D86, 0x5D0B, 0x8D87, 0x5D0C, + 0x8D88, 0x5D0D, 0x8D89, 0x5D0F, 0x8D8A, 0x5D10, 0x8D8B, 0x5D11, 0x8D8C, 0x5D12, 0x8D8D, 0x5D13, 0x8D8E, 0x5D15, 0x8D8F, 0x5D17, + 0x8D90, 0x5D18, 0x8D91, 0x5D19, 0x8D92, 0x5D1A, 0x8D93, 0x5D1C, 0x8D94, 0x5D1D, 0x8D95, 0x5D1F, 0x8D96, 0x5D20, 0x8D97, 0x5D21, + 0x8D98, 0x5D22, 0x8D99, 0x5D23, 0x8D9A, 0x5D25, 0x8D9B, 0x5D28, 0x8D9C, 0x5D2A, 0x8D9D, 0x5D2B, 0x8D9E, 0x5D2C, 0x8D9F, 0x5D2F, + 0x8DA0, 0x5D30, 0x8DA1, 0x5D31, 0x8DA2, 0x5D32, 0x8DA3, 0x5D33, 0x8DA4, 0x5D35, 0x8DA5, 0x5D36, 0x8DA6, 0x5D37, 0x8DA7, 0x5D38, + 0x8DA8, 0x5D39, 0x8DA9, 0x5D3A, 0x8DAA, 0x5D3B, 0x8DAB, 0x5D3C, 0x8DAC, 0x5D3F, 0x8DAD, 0x5D40, 0x8DAE, 0x5D41, 0x8DAF, 0x5D42, + 0x8DB0, 0x5D43, 0x8DB1, 0x5D44, 0x8DB2, 0x5D45, 0x8DB3, 0x5D46, 0x8DB4, 0x5D48, 0x8DB5, 0x5D49, 0x8DB6, 0x5D4D, 0x8DB7, 0x5D4E, + 0x8DB8, 0x5D4F, 0x8DB9, 0x5D50, 0x8DBA, 0x5D51, 0x8DBB, 0x5D52, 0x8DBC, 0x5D53, 0x8DBD, 0x5D54, 0x8DBE, 0x5D55, 0x8DBF, 0x5D56, + 0x8DC0, 0x5D57, 0x8DC1, 0x5D59, 0x8DC2, 0x5D5A, 0x8DC3, 0x5D5C, 0x8DC4, 0x5D5E, 0x8DC5, 0x5D5F, 0x8DC6, 0x5D60, 0x8DC7, 0x5D61, + 0x8DC8, 0x5D62, 0x8DC9, 0x5D63, 0x8DCA, 0x5D64, 0x8DCB, 0x5D65, 0x8DCC, 0x5D66, 0x8DCD, 0x5D67, 0x8DCE, 0x5D68, 0x8DCF, 0x5D6A, + 0x8DD0, 0x5D6D, 0x8DD1, 0x5D6E, 0x8DD2, 0x5D70, 0x8DD3, 0x5D71, 0x8DD4, 0x5D72, 0x8DD5, 0x5D73, 0x8DD6, 0x5D75, 0x8DD7, 0x5D76, + 0x8DD8, 0x5D77, 0x8DD9, 0x5D78, 0x8DDA, 0x5D79, 0x8DDB, 0x5D7A, 0x8DDC, 0x5D7B, 0x8DDD, 0x5D7C, 0x8DDE, 0x5D7D, 0x8DDF, 0x5D7E, + 0x8DE0, 0x5D7F, 0x8DE1, 0x5D80, 0x8DE2, 0x5D81, 0x8DE3, 0x5D83, 0x8DE4, 0x5D84, 0x8DE5, 0x5D85, 0x8DE6, 0x5D86, 0x8DE7, 0x5D87, + 0x8DE8, 0x5D88, 0x8DE9, 0x5D89, 0x8DEA, 0x5D8A, 0x8DEB, 0x5D8B, 0x8DEC, 0x5D8C, 0x8DED, 0x5D8D, 0x8DEE, 0x5D8E, 0x8DEF, 0x5D8F, + 0x8DF0, 0x5D90, 0x8DF1, 0x5D91, 0x8DF2, 0x5D92, 0x8DF3, 0x5D93, 0x8DF4, 0x5D94, 0x8DF5, 0x5D95, 0x8DF6, 0x5D96, 0x8DF7, 0x5D97, + 0x8DF8, 0x5D98, 0x8DF9, 0x5D9A, 0x8DFA, 0x5D9B, 0x8DFB, 0x5D9C, 0x8DFC, 0x5D9E, 0x8DFD, 0x5D9F, 0x8DFE, 0x5DA0, 0x8E40, 0x5DA1, + 0x8E41, 0x5DA2, 0x8E42, 0x5DA3, 0x8E43, 0x5DA4, 0x8E44, 0x5DA5, 0x8E45, 0x5DA6, 0x8E46, 0x5DA7, 0x8E47, 0x5DA8, 0x8E48, 0x5DA9, + 0x8E49, 0x5DAA, 0x8E4A, 0x5DAB, 0x8E4B, 0x5DAC, 0x8E4C, 0x5DAD, 0x8E4D, 0x5DAE, 0x8E4E, 0x5DAF, 0x8E4F, 0x5DB0, 0x8E50, 0x5DB1, + 0x8E51, 0x5DB2, 0x8E52, 0x5DB3, 0x8E53, 0x5DB4, 0x8E54, 0x5DB5, 0x8E55, 0x5DB6, 0x8E56, 0x5DB8, 0x8E57, 0x5DB9, 0x8E58, 0x5DBA, + 0x8E59, 0x5DBB, 0x8E5A, 0x5DBC, 0x8E5B, 0x5DBD, 0x8E5C, 0x5DBE, 0x8E5D, 0x5DBF, 0x8E5E, 0x5DC0, 0x8E5F, 0x5DC1, 0x8E60, 0x5DC2, + 0x8E61, 0x5DC3, 0x8E62, 0x5DC4, 0x8E63, 0x5DC6, 0x8E64, 0x5DC7, 0x8E65, 0x5DC8, 0x8E66, 0x5DC9, 0x8E67, 0x5DCA, 0x8E68, 0x5DCB, + 0x8E69, 0x5DCC, 0x8E6A, 0x5DCE, 0x8E6B, 0x5DCF, 0x8E6C, 0x5DD0, 0x8E6D, 0x5DD1, 0x8E6E, 0x5DD2, 0x8E6F, 0x5DD3, 0x8E70, 0x5DD4, + 0x8E71, 0x5DD5, 0x8E72, 0x5DD6, 0x8E73, 0x5DD7, 0x8E74, 0x5DD8, 0x8E75, 0x5DD9, 0x8E76, 0x5DDA, 0x8E77, 0x5DDC, 0x8E78, 0x5DDF, + 0x8E79, 0x5DE0, 0x8E7A, 0x5DE3, 0x8E7B, 0x5DE4, 0x8E7C, 0x5DEA, 0x8E7D, 0x5DEC, 0x8E7E, 0x5DED, 0x8E80, 0x5DF0, 0x8E81, 0x5DF5, + 0x8E82, 0x5DF6, 0x8E83, 0x5DF8, 0x8E84, 0x5DF9, 0x8E85, 0x5DFA, 0x8E86, 0x5DFB, 0x8E87, 0x5DFC, 0x8E88, 0x5DFF, 0x8E89, 0x5E00, + 0x8E8A, 0x5E04, 0x8E8B, 0x5E07, 0x8E8C, 0x5E09, 0x8E8D, 0x5E0A, 0x8E8E, 0x5E0B, 0x8E8F, 0x5E0D, 0x8E90, 0x5E0E, 0x8E91, 0x5E12, + 0x8E92, 0x5E13, 0x8E93, 0x5E17, 0x8E94, 0x5E1E, 0x8E95, 0x5E1F, 0x8E96, 0x5E20, 0x8E97, 0x5E21, 0x8E98, 0x5E22, 0x8E99, 0x5E23, + 0x8E9A, 0x5E24, 0x8E9B, 0x5E25, 0x8E9C, 0x5E28, 0x8E9D, 0x5E29, 0x8E9E, 0x5E2A, 0x8E9F, 0x5E2B, 0x8EA0, 0x5E2C, 0x8EA1, 0x5E2F, + 0x8EA2, 0x5E30, 0x8EA3, 0x5E32, 0x8EA4, 0x5E33, 0x8EA5, 0x5E34, 0x8EA6, 0x5E35, 0x8EA7, 0x5E36, 0x8EA8, 0x5E39, 0x8EA9, 0x5E3A, + 0x8EAA, 0x5E3E, 0x8EAB, 0x5E3F, 0x8EAC, 0x5E40, 0x8EAD, 0x5E41, 0x8EAE, 0x5E43, 0x8EAF, 0x5E46, 0x8EB0, 0x5E47, 0x8EB1, 0x5E48, + 0x8EB2, 0x5E49, 0x8EB3, 0x5E4A, 0x8EB4, 0x5E4B, 0x8EB5, 0x5E4D, 0x8EB6, 0x5E4E, 0x8EB7, 0x5E4F, 0x8EB8, 0x5E50, 0x8EB9, 0x5E51, + 0x8EBA, 0x5E52, 0x8EBB, 0x5E53, 0x8EBC, 0x5E56, 0x8EBD, 0x5E57, 0x8EBE, 0x5E58, 0x8EBF, 0x5E59, 0x8EC0, 0x5E5A, 0x8EC1, 0x5E5C, + 0x8EC2, 0x5E5D, 0x8EC3, 0x5E5F, 0x8EC4, 0x5E60, 0x8EC5, 0x5E63, 0x8EC6, 0x5E64, 0x8EC7, 0x5E65, 0x8EC8, 0x5E66, 0x8EC9, 0x5E67, + 0x8ECA, 0x5E68, 0x8ECB, 0x5E69, 0x8ECC, 0x5E6A, 0x8ECD, 0x5E6B, 0x8ECE, 0x5E6C, 0x8ECF, 0x5E6D, 0x8ED0, 0x5E6E, 0x8ED1, 0x5E6F, + 0x8ED2, 0x5E70, 0x8ED3, 0x5E71, 0x8ED4, 0x5E75, 0x8ED5, 0x5E77, 0x8ED6, 0x5E79, 0x8ED7, 0x5E7E, 0x8ED8, 0x5E81, 0x8ED9, 0x5E82, + 0x8EDA, 0x5E83, 0x8EDB, 0x5E85, 0x8EDC, 0x5E88, 0x8EDD, 0x5E89, 0x8EDE, 0x5E8C, 0x8EDF, 0x5E8D, 0x8EE0, 0x5E8E, 0x8EE1, 0x5E92, + 0x8EE2, 0x5E98, 0x8EE3, 0x5E9B, 0x8EE4, 0x5E9D, 0x8EE5, 0x5EA1, 0x8EE6, 0x5EA2, 0x8EE7, 0x5EA3, 0x8EE8, 0x5EA4, 0x8EE9, 0x5EA8, + 0x8EEA, 0x5EA9, 0x8EEB, 0x5EAA, 0x8EEC, 0x5EAB, 0x8EED, 0x5EAC, 0x8EEE, 0x5EAE, 0x8EEF, 0x5EAF, 0x8EF0, 0x5EB0, 0x8EF1, 0x5EB1, + 0x8EF2, 0x5EB2, 0x8EF3, 0x5EB4, 0x8EF4, 0x5EBA, 0x8EF5, 0x5EBB, 0x8EF6, 0x5EBC, 0x8EF7, 0x5EBD, 0x8EF8, 0x5EBF, 0x8EF9, 0x5EC0, + 0x8EFA, 0x5EC1, 0x8EFB, 0x5EC2, 0x8EFC, 0x5EC3, 0x8EFD, 0x5EC4, 0x8EFE, 0x5EC5, 0x8F40, 0x5EC6, 0x8F41, 0x5EC7, 0x8F42, 0x5EC8, + 0x8F43, 0x5ECB, 0x8F44, 0x5ECC, 0x8F45, 0x5ECD, 0x8F46, 0x5ECE, 0x8F47, 0x5ECF, 0x8F48, 0x5ED0, 0x8F49, 0x5ED4, 0x8F4A, 0x5ED5, + 0x8F4B, 0x5ED7, 0x8F4C, 0x5ED8, 0x8F4D, 0x5ED9, 0x8F4E, 0x5EDA, 0x8F4F, 0x5EDC, 0x8F50, 0x5EDD, 0x8F51, 0x5EDE, 0x8F52, 0x5EDF, + 0x8F53, 0x5EE0, 0x8F54, 0x5EE1, 0x8F55, 0x5EE2, 0x8F56, 0x5EE3, 0x8F57, 0x5EE4, 0x8F58, 0x5EE5, 0x8F59, 0x5EE6, 0x8F5A, 0x5EE7, + 0x8F5B, 0x5EE9, 0x8F5C, 0x5EEB, 0x8F5D, 0x5EEC, 0x8F5E, 0x5EED, 0x8F5F, 0x5EEE, 0x8F60, 0x5EEF, 0x8F61, 0x5EF0, 0x8F62, 0x5EF1, + 0x8F63, 0x5EF2, 0x8F64, 0x5EF3, 0x8F65, 0x5EF5, 0x8F66, 0x5EF8, 0x8F67, 0x5EF9, 0x8F68, 0x5EFB, 0x8F69, 0x5EFC, 0x8F6A, 0x5EFD, + 0x8F6B, 0x5F05, 0x8F6C, 0x5F06, 0x8F6D, 0x5F07, 0x8F6E, 0x5F09, 0x8F6F, 0x5F0C, 0x8F70, 0x5F0D, 0x8F71, 0x5F0E, 0x8F72, 0x5F10, + 0x8F73, 0x5F12, 0x8F74, 0x5F14, 0x8F75, 0x5F16, 0x8F76, 0x5F19, 0x8F77, 0x5F1A, 0x8F78, 0x5F1C, 0x8F79, 0x5F1D, 0x8F7A, 0x5F1E, + 0x8F7B, 0x5F21, 0x8F7C, 0x5F22, 0x8F7D, 0x5F23, 0x8F7E, 0x5F24, 0x8F80, 0x5F28, 0x8F81, 0x5F2B, 0x8F82, 0x5F2C, 0x8F83, 0x5F2E, + 0x8F84, 0x5F30, 0x8F85, 0x5F32, 0x8F86, 0x5F33, 0x8F87, 0x5F34, 0x8F88, 0x5F35, 0x8F89, 0x5F36, 0x8F8A, 0x5F37, 0x8F8B, 0x5F38, + 0x8F8C, 0x5F3B, 0x8F8D, 0x5F3D, 0x8F8E, 0x5F3E, 0x8F8F, 0x5F3F, 0x8F90, 0x5F41, 0x8F91, 0x5F42, 0x8F92, 0x5F43, 0x8F93, 0x5F44, + 0x8F94, 0x5F45, 0x8F95, 0x5F46, 0x8F96, 0x5F47, 0x8F97, 0x5F48, 0x8F98, 0x5F49, 0x8F99, 0x5F4A, 0x8F9A, 0x5F4B, 0x8F9B, 0x5F4C, + 0x8F9C, 0x5F4D, 0x8F9D, 0x5F4E, 0x8F9E, 0x5F4F, 0x8F9F, 0x5F51, 0x8FA0, 0x5F54, 0x8FA1, 0x5F59, 0x8FA2, 0x5F5A, 0x8FA3, 0x5F5B, + 0x8FA4, 0x5F5C, 0x8FA5, 0x5F5E, 0x8FA6, 0x5F5F, 0x8FA7, 0x5F60, 0x8FA8, 0x5F63, 0x8FA9, 0x5F65, 0x8FAA, 0x5F67, 0x8FAB, 0x5F68, + 0x8FAC, 0x5F6B, 0x8FAD, 0x5F6E, 0x8FAE, 0x5F6F, 0x8FAF, 0x5F72, 0x8FB0, 0x5F74, 0x8FB1, 0x5F75, 0x8FB2, 0x5F76, 0x8FB3, 0x5F78, + 0x8FB4, 0x5F7A, 0x8FB5, 0x5F7D, 0x8FB6, 0x5F7E, 0x8FB7, 0x5F7F, 0x8FB8, 0x5F83, 0x8FB9, 0x5F86, 0x8FBA, 0x5F8D, 0x8FBB, 0x5F8E, + 0x8FBC, 0x5F8F, 0x8FBD, 0x5F91, 0x8FBE, 0x5F93, 0x8FBF, 0x5F94, 0x8FC0, 0x5F96, 0x8FC1, 0x5F9A, 0x8FC2, 0x5F9B, 0x8FC3, 0x5F9D, + 0x8FC4, 0x5F9E, 0x8FC5, 0x5F9F, 0x8FC6, 0x5FA0, 0x8FC7, 0x5FA2, 0x8FC8, 0x5FA3, 0x8FC9, 0x5FA4, 0x8FCA, 0x5FA5, 0x8FCB, 0x5FA6, + 0x8FCC, 0x5FA7, 0x8FCD, 0x5FA9, 0x8FCE, 0x5FAB, 0x8FCF, 0x5FAC, 0x8FD0, 0x5FAF, 0x8FD1, 0x5FB0, 0x8FD2, 0x5FB1, 0x8FD3, 0x5FB2, + 0x8FD4, 0x5FB3, 0x8FD5, 0x5FB4, 0x8FD6, 0x5FB6, 0x8FD7, 0x5FB8, 0x8FD8, 0x5FB9, 0x8FD9, 0x5FBA, 0x8FDA, 0x5FBB, 0x8FDB, 0x5FBE, + 0x8FDC, 0x5FBF, 0x8FDD, 0x5FC0, 0x8FDE, 0x5FC1, 0x8FDF, 0x5FC2, 0x8FE0, 0x5FC7, 0x8FE1, 0x5FC8, 0x8FE2, 0x5FCA, 0x8FE3, 0x5FCB, + 0x8FE4, 0x5FCE, 0x8FE5, 0x5FD3, 0x8FE6, 0x5FD4, 0x8FE7, 0x5FD5, 0x8FE8, 0x5FDA, 0x8FE9, 0x5FDB, 0x8FEA, 0x5FDC, 0x8FEB, 0x5FDE, + 0x8FEC, 0x5FDF, 0x8FED, 0x5FE2, 0x8FEE, 0x5FE3, 0x8FEF, 0x5FE5, 0x8FF0, 0x5FE6, 0x8FF1, 0x5FE8, 0x8FF2, 0x5FE9, 0x8FF3, 0x5FEC, + 0x8FF4, 0x5FEF, 0x8FF5, 0x5FF0, 0x8FF6, 0x5FF2, 0x8FF7, 0x5FF3, 0x8FF8, 0x5FF4, 0x8FF9, 0x5FF6, 0x8FFA, 0x5FF7, 0x8FFB, 0x5FF9, + 0x8FFC, 0x5FFA, 0x8FFD, 0x5FFC, 0x8FFE, 0x6007, 0x9040, 0x6008, 0x9041, 0x6009, 0x9042, 0x600B, 0x9043, 0x600C, 0x9044, 0x6010, + 0x9045, 0x6011, 0x9046, 0x6013, 0x9047, 0x6017, 0x9048, 0x6018, 0x9049, 0x601A, 0x904A, 0x601E, 0x904B, 0x601F, 0x904C, 0x6022, + 0x904D, 0x6023, 0x904E, 0x6024, 0x904F, 0x602C, 0x9050, 0x602D, 0x9051, 0x602E, 0x9052, 0x6030, 0x9053, 0x6031, 0x9054, 0x6032, + 0x9055, 0x6033, 0x9056, 0x6034, 0x9057, 0x6036, 0x9058, 0x6037, 0x9059, 0x6038, 0x905A, 0x6039, 0x905B, 0x603A, 0x905C, 0x603D, + 0x905D, 0x603E, 0x905E, 0x6040, 0x905F, 0x6044, 0x9060, 0x6045, 0x9061, 0x6046, 0x9062, 0x6047, 0x9063, 0x6048, 0x9064, 0x6049, + 0x9065, 0x604A, 0x9066, 0x604C, 0x9067, 0x604E, 0x9068, 0x604F, 0x9069, 0x6051, 0x906A, 0x6053, 0x906B, 0x6054, 0x906C, 0x6056, + 0x906D, 0x6057, 0x906E, 0x6058, 0x906F, 0x605B, 0x9070, 0x605C, 0x9071, 0x605E, 0x9072, 0x605F, 0x9073, 0x6060, 0x9074, 0x6061, + 0x9075, 0x6065, 0x9076, 0x6066, 0x9077, 0x606E, 0x9078, 0x6071, 0x9079, 0x6072, 0x907A, 0x6074, 0x907B, 0x6075, 0x907C, 0x6077, + 0x907D, 0x607E, 0x907E, 0x6080, 0x9080, 0x6081, 0x9081, 0x6082, 0x9082, 0x6085, 0x9083, 0x6086, 0x9084, 0x6087, 0x9085, 0x6088, + 0x9086, 0x608A, 0x9087, 0x608B, 0x9088, 0x608E, 0x9089, 0x608F, 0x908A, 0x6090, 0x908B, 0x6091, 0x908C, 0x6093, 0x908D, 0x6095, + 0x908E, 0x6097, 0x908F, 0x6098, 0x9090, 0x6099, 0x9091, 0x609C, 0x9092, 0x609E, 0x9093, 0x60A1, 0x9094, 0x60A2, 0x9095, 0x60A4, + 0x9096, 0x60A5, 0x9097, 0x60A7, 0x9098, 0x60A9, 0x9099, 0x60AA, 0x909A, 0x60AE, 0x909B, 0x60B0, 0x909C, 0x60B3, 0x909D, 0x60B5, + 0x909E, 0x60B6, 0x909F, 0x60B7, 0x90A0, 0x60B9, 0x90A1, 0x60BA, 0x90A2, 0x60BD, 0x90A3, 0x60BE, 0x90A4, 0x60BF, 0x90A5, 0x60C0, + 0x90A6, 0x60C1, 0x90A7, 0x60C2, 0x90A8, 0x60C3, 0x90A9, 0x60C4, 0x90AA, 0x60C7, 0x90AB, 0x60C8, 0x90AC, 0x60C9, 0x90AD, 0x60CC, + 0x90AE, 0x60CD, 0x90AF, 0x60CE, 0x90B0, 0x60CF, 0x90B1, 0x60D0, 0x90B2, 0x60D2, 0x90B3, 0x60D3, 0x90B4, 0x60D4, 0x90B5, 0x60D6, + 0x90B6, 0x60D7, 0x90B7, 0x60D9, 0x90B8, 0x60DB, 0x90B9, 0x60DE, 0x90BA, 0x60E1, 0x90BB, 0x60E2, 0x90BC, 0x60E3, 0x90BD, 0x60E4, + 0x90BE, 0x60E5, 0x90BF, 0x60EA, 0x90C0, 0x60F1, 0x90C1, 0x60F2, 0x90C2, 0x60F5, 0x90C3, 0x60F7, 0x90C4, 0x60F8, 0x90C5, 0x60FB, + 0x90C6, 0x60FC, 0x90C7, 0x60FD, 0x90C8, 0x60FE, 0x90C9, 0x60FF, 0x90CA, 0x6102, 0x90CB, 0x6103, 0x90CC, 0x6104, 0x90CD, 0x6105, + 0x90CE, 0x6107, 0x90CF, 0x610A, 0x90D0, 0x610B, 0x90D1, 0x610C, 0x90D2, 0x6110, 0x90D3, 0x6111, 0x90D4, 0x6112, 0x90D5, 0x6113, + 0x90D6, 0x6114, 0x90D7, 0x6116, 0x90D8, 0x6117, 0x90D9, 0x6118, 0x90DA, 0x6119, 0x90DB, 0x611B, 0x90DC, 0x611C, 0x90DD, 0x611D, + 0x90DE, 0x611E, 0x90DF, 0x6121, 0x90E0, 0x6122, 0x90E1, 0x6125, 0x90E2, 0x6128, 0x90E3, 0x6129, 0x90E4, 0x612A, 0x90E5, 0x612C, + 0x90E6, 0x612D, 0x90E7, 0x612E, 0x90E8, 0x612F, 0x90E9, 0x6130, 0x90EA, 0x6131, 0x90EB, 0x6132, 0x90EC, 0x6133, 0x90ED, 0x6134, + 0x90EE, 0x6135, 0x90EF, 0x6136, 0x90F0, 0x6137, 0x90F1, 0x6138, 0x90F2, 0x6139, 0x90F3, 0x613A, 0x90F4, 0x613B, 0x90F5, 0x613C, + 0x90F6, 0x613D, 0x90F7, 0x613E, 0x90F8, 0x6140, 0x90F9, 0x6141, 0x90FA, 0x6142, 0x90FB, 0x6143, 0x90FC, 0x6144, 0x90FD, 0x6145, + 0x90FE, 0x6146, 0x9140, 0x6147, 0x9141, 0x6149, 0x9142, 0x614B, 0x9143, 0x614D, 0x9144, 0x614F, 0x9145, 0x6150, 0x9146, 0x6152, + 0x9147, 0x6153, 0x9148, 0x6154, 0x9149, 0x6156, 0x914A, 0x6157, 0x914B, 0x6158, 0x914C, 0x6159, 0x914D, 0x615A, 0x914E, 0x615B, + 0x914F, 0x615C, 0x9150, 0x615E, 0x9151, 0x615F, 0x9152, 0x6160, 0x9153, 0x6161, 0x9154, 0x6163, 0x9155, 0x6164, 0x9156, 0x6165, + 0x9157, 0x6166, 0x9158, 0x6169, 0x9159, 0x616A, 0x915A, 0x616B, 0x915B, 0x616C, 0x915C, 0x616D, 0x915D, 0x616E, 0x915E, 0x616F, + 0x915F, 0x6171, 0x9160, 0x6172, 0x9161, 0x6173, 0x9162, 0x6174, 0x9163, 0x6176, 0x9164, 0x6178, 0x9165, 0x6179, 0x9166, 0x617A, + 0x9167, 0x617B, 0x9168, 0x617C, 0x9169, 0x617D, 0x916A, 0x617E, 0x916B, 0x617F, 0x916C, 0x6180, 0x916D, 0x6181, 0x916E, 0x6182, + 0x916F, 0x6183, 0x9170, 0x6184, 0x9171, 0x6185, 0x9172, 0x6186, 0x9173, 0x6187, 0x9174, 0x6188, 0x9175, 0x6189, 0x9176, 0x618A, + 0x9177, 0x618C, 0x9178, 0x618D, 0x9179, 0x618F, 0x917A, 0x6190, 0x917B, 0x6191, 0x917C, 0x6192, 0x917D, 0x6193, 0x917E, 0x6195, + 0x9180, 0x6196, 0x9181, 0x6197, 0x9182, 0x6198, 0x9183, 0x6199, 0x9184, 0x619A, 0x9185, 0x619B, 0x9186, 0x619C, 0x9187, 0x619E, + 0x9188, 0x619F, 0x9189, 0x61A0, 0x918A, 0x61A1, 0x918B, 0x61A2, 0x918C, 0x61A3, 0x918D, 0x61A4, 0x918E, 0x61A5, 0x918F, 0x61A6, + 0x9190, 0x61AA, 0x9191, 0x61AB, 0x9192, 0x61AD, 0x9193, 0x61AE, 0x9194, 0x61AF, 0x9195, 0x61B0, 0x9196, 0x61B1, 0x9197, 0x61B2, + 0x9198, 0x61B3, 0x9199, 0x61B4, 0x919A, 0x61B5, 0x919B, 0x61B6, 0x919C, 0x61B8, 0x919D, 0x61B9, 0x919E, 0x61BA, 0x919F, 0x61BB, + 0x91A0, 0x61BC, 0x91A1, 0x61BD, 0x91A2, 0x61BF, 0x91A3, 0x61C0, 0x91A4, 0x61C1, 0x91A5, 0x61C3, 0x91A6, 0x61C4, 0x91A7, 0x61C5, + 0x91A8, 0x61C6, 0x91A9, 0x61C7, 0x91AA, 0x61C9, 0x91AB, 0x61CC, 0x91AC, 0x61CD, 0x91AD, 0x61CE, 0x91AE, 0x61CF, 0x91AF, 0x61D0, + 0x91B0, 0x61D3, 0x91B1, 0x61D5, 0x91B2, 0x61D6, 0x91B3, 0x61D7, 0x91B4, 0x61D8, 0x91B5, 0x61D9, 0x91B6, 0x61DA, 0x91B7, 0x61DB, + 0x91B8, 0x61DC, 0x91B9, 0x61DD, 0x91BA, 0x61DE, 0x91BB, 0x61DF, 0x91BC, 0x61E0, 0x91BD, 0x61E1, 0x91BE, 0x61E2, 0x91BF, 0x61E3, + 0x91C0, 0x61E4, 0x91C1, 0x61E5, 0x91C2, 0x61E7, 0x91C3, 0x61E8, 0x91C4, 0x61E9, 0x91C5, 0x61EA, 0x91C6, 0x61EB, 0x91C7, 0x61EC, + 0x91C8, 0x61ED, 0x91C9, 0x61EE, 0x91CA, 0x61EF, 0x91CB, 0x61F0, 0x91CC, 0x61F1, 0x91CD, 0x61F2, 0x91CE, 0x61F3, 0x91CF, 0x61F4, + 0x91D0, 0x61F6, 0x91D1, 0x61F7, 0x91D2, 0x61F8, 0x91D3, 0x61F9, 0x91D4, 0x61FA, 0x91D5, 0x61FB, 0x91D6, 0x61FC, 0x91D7, 0x61FD, + 0x91D8, 0x61FE, 0x91D9, 0x6200, 0x91DA, 0x6201, 0x91DB, 0x6202, 0x91DC, 0x6203, 0x91DD, 0x6204, 0x91DE, 0x6205, 0x91DF, 0x6207, + 0x91E0, 0x6209, 0x91E1, 0x6213, 0x91E2, 0x6214, 0x91E3, 0x6219, 0x91E4, 0x621C, 0x91E5, 0x621D, 0x91E6, 0x621E, 0x91E7, 0x6220, + 0x91E8, 0x6223, 0x91E9, 0x6226, 0x91EA, 0x6227, 0x91EB, 0x6228, 0x91EC, 0x6229, 0x91ED, 0x622B, 0x91EE, 0x622D, 0x91EF, 0x622F, + 0x91F0, 0x6230, 0x91F1, 0x6231, 0x91F2, 0x6232, 0x91F3, 0x6235, 0x91F4, 0x6236, 0x91F5, 0x6238, 0x91F6, 0x6239, 0x91F7, 0x623A, + 0x91F8, 0x623B, 0x91F9, 0x623C, 0x91FA, 0x6242, 0x91FB, 0x6244, 0x91FC, 0x6245, 0x91FD, 0x6246, 0x91FE, 0x624A, 0x9240, 0x624F, + 0x9241, 0x6250, 0x9242, 0x6255, 0x9243, 0x6256, 0x9244, 0x6257, 0x9245, 0x6259, 0x9246, 0x625A, 0x9247, 0x625C, 0x9248, 0x625D, + 0x9249, 0x625E, 0x924A, 0x625F, 0x924B, 0x6260, 0x924C, 0x6261, 0x924D, 0x6262, 0x924E, 0x6264, 0x924F, 0x6265, 0x9250, 0x6268, + 0x9251, 0x6271, 0x9252, 0x6272, 0x9253, 0x6274, 0x9254, 0x6275, 0x9255, 0x6277, 0x9256, 0x6278, 0x9257, 0x627A, 0x9258, 0x627B, + 0x9259, 0x627D, 0x925A, 0x6281, 0x925B, 0x6282, 0x925C, 0x6283, 0x925D, 0x6285, 0x925E, 0x6286, 0x925F, 0x6287, 0x9260, 0x6288, + 0x9261, 0x628B, 0x9262, 0x628C, 0x9263, 0x628D, 0x9264, 0x628E, 0x9265, 0x628F, 0x9266, 0x6290, 0x9267, 0x6294, 0x9268, 0x6299, + 0x9269, 0x629C, 0x926A, 0x629D, 0x926B, 0x629E, 0x926C, 0x62A3, 0x926D, 0x62A6, 0x926E, 0x62A7, 0x926F, 0x62A9, 0x9270, 0x62AA, + 0x9271, 0x62AD, 0x9272, 0x62AE, 0x9273, 0x62AF, 0x9274, 0x62B0, 0x9275, 0x62B2, 0x9276, 0x62B3, 0x9277, 0x62B4, 0x9278, 0x62B6, + 0x9279, 0x62B7, 0x927A, 0x62B8, 0x927B, 0x62BA, 0x927C, 0x62BE, 0x927D, 0x62C0, 0x927E, 0x62C1, 0x9280, 0x62C3, 0x9281, 0x62CB, + 0x9282, 0x62CF, 0x9283, 0x62D1, 0x9284, 0x62D5, 0x9285, 0x62DD, 0x9286, 0x62DE, 0x9287, 0x62E0, 0x9288, 0x62E1, 0x9289, 0x62E4, + 0x928A, 0x62EA, 0x928B, 0x62EB, 0x928C, 0x62F0, 0x928D, 0x62F2, 0x928E, 0x62F5, 0x928F, 0x62F8, 0x9290, 0x62F9, 0x9291, 0x62FA, + 0x9292, 0x62FB, 0x9293, 0x6300, 0x9294, 0x6303, 0x9295, 0x6304, 0x9296, 0x6305, 0x9297, 0x6306, 0x9298, 0x630A, 0x9299, 0x630B, + 0x929A, 0x630C, 0x929B, 0x630D, 0x929C, 0x630F, 0x929D, 0x6310, 0x929E, 0x6312, 0x929F, 0x6313, 0x92A0, 0x6314, 0x92A1, 0x6315, + 0x92A2, 0x6317, 0x92A3, 0x6318, 0x92A4, 0x6319, 0x92A5, 0x631C, 0x92A6, 0x6326, 0x92A7, 0x6327, 0x92A8, 0x6329, 0x92A9, 0x632C, + 0x92AA, 0x632D, 0x92AB, 0x632E, 0x92AC, 0x6330, 0x92AD, 0x6331, 0x92AE, 0x6333, 0x92AF, 0x6334, 0x92B0, 0x6335, 0x92B1, 0x6336, + 0x92B2, 0x6337, 0x92B3, 0x6338, 0x92B4, 0x633B, 0x92B5, 0x633C, 0x92B6, 0x633E, 0x92B7, 0x633F, 0x92B8, 0x6340, 0x92B9, 0x6341, + 0x92BA, 0x6344, 0x92BB, 0x6347, 0x92BC, 0x6348, 0x92BD, 0x634A, 0x92BE, 0x6351, 0x92BF, 0x6352, 0x92C0, 0x6353, 0x92C1, 0x6354, + 0x92C2, 0x6356, 0x92C3, 0x6357, 0x92C4, 0x6358, 0x92C5, 0x6359, 0x92C6, 0x635A, 0x92C7, 0x635B, 0x92C8, 0x635C, 0x92C9, 0x635D, + 0x92CA, 0x6360, 0x92CB, 0x6364, 0x92CC, 0x6365, 0x92CD, 0x6366, 0x92CE, 0x6368, 0x92CF, 0x636A, 0x92D0, 0x636B, 0x92D1, 0x636C, + 0x92D2, 0x636F, 0x92D3, 0x6370, 0x92D4, 0x6372, 0x92D5, 0x6373, 0x92D6, 0x6374, 0x92D7, 0x6375, 0x92D8, 0x6378, 0x92D9, 0x6379, + 0x92DA, 0x637C, 0x92DB, 0x637D, 0x92DC, 0x637E, 0x92DD, 0x637F, 0x92DE, 0x6381, 0x92DF, 0x6383, 0x92E0, 0x6384, 0x92E1, 0x6385, + 0x92E2, 0x6386, 0x92E3, 0x638B, 0x92E4, 0x638D, 0x92E5, 0x6391, 0x92E6, 0x6393, 0x92E7, 0x6394, 0x92E8, 0x6395, 0x92E9, 0x6397, + 0x92EA, 0x6399, 0x92EB, 0x639A, 0x92EC, 0x639B, 0x92ED, 0x639C, 0x92EE, 0x639D, 0x92EF, 0x639E, 0x92F0, 0x639F, 0x92F1, 0x63A1, + 0x92F2, 0x63A4, 0x92F3, 0x63A6, 0x92F4, 0x63AB, 0x92F5, 0x63AF, 0x92F6, 0x63B1, 0x92F7, 0x63B2, 0x92F8, 0x63B5, 0x92F9, 0x63B6, + 0x92FA, 0x63B9, 0x92FB, 0x63BB, 0x92FC, 0x63BD, 0x92FD, 0x63BF, 0x92FE, 0x63C0, 0x9340, 0x63C1, 0x9341, 0x63C2, 0x9342, 0x63C3, + 0x9343, 0x63C5, 0x9344, 0x63C7, 0x9345, 0x63C8, 0x9346, 0x63CA, 0x9347, 0x63CB, 0x9348, 0x63CC, 0x9349, 0x63D1, 0x934A, 0x63D3, + 0x934B, 0x63D4, 0x934C, 0x63D5, 0x934D, 0x63D7, 0x934E, 0x63D8, 0x934F, 0x63D9, 0x9350, 0x63DA, 0x9351, 0x63DB, 0x9352, 0x63DC, + 0x9353, 0x63DD, 0x9354, 0x63DF, 0x9355, 0x63E2, 0x9356, 0x63E4, 0x9357, 0x63E5, 0x9358, 0x63E6, 0x9359, 0x63E7, 0x935A, 0x63E8, + 0x935B, 0x63EB, 0x935C, 0x63EC, 0x935D, 0x63EE, 0x935E, 0x63EF, 0x935F, 0x63F0, 0x9360, 0x63F1, 0x9361, 0x63F3, 0x9362, 0x63F5, + 0x9363, 0x63F7, 0x9364, 0x63F9, 0x9365, 0x63FA, 0x9366, 0x63FB, 0x9367, 0x63FC, 0x9368, 0x63FE, 0x9369, 0x6403, 0x936A, 0x6404, + 0x936B, 0x6406, 0x936C, 0x6407, 0x936D, 0x6408, 0x936E, 0x6409, 0x936F, 0x640A, 0x9370, 0x640D, 0x9371, 0x640E, 0x9372, 0x6411, + 0x9373, 0x6412, 0x9374, 0x6415, 0x9375, 0x6416, 0x9376, 0x6417, 0x9377, 0x6418, 0x9378, 0x6419, 0x9379, 0x641A, 0x937A, 0x641D, + 0x937B, 0x641F, 0x937C, 0x6422, 0x937D, 0x6423, 0x937E, 0x6424, 0x9380, 0x6425, 0x9381, 0x6427, 0x9382, 0x6428, 0x9383, 0x6429, + 0x9384, 0x642B, 0x9385, 0x642E, 0x9386, 0x642F, 0x9387, 0x6430, 0x9388, 0x6431, 0x9389, 0x6432, 0x938A, 0x6433, 0x938B, 0x6435, + 0x938C, 0x6436, 0x938D, 0x6437, 0x938E, 0x6438, 0x938F, 0x6439, 0x9390, 0x643B, 0x9391, 0x643C, 0x9392, 0x643E, 0x9393, 0x6440, + 0x9394, 0x6442, 0x9395, 0x6443, 0x9396, 0x6449, 0x9397, 0x644B, 0x9398, 0x644C, 0x9399, 0x644D, 0x939A, 0x644E, 0x939B, 0x644F, + 0x939C, 0x6450, 0x939D, 0x6451, 0x939E, 0x6453, 0x939F, 0x6455, 0x93A0, 0x6456, 0x93A1, 0x6457, 0x93A2, 0x6459, 0x93A3, 0x645A, + 0x93A4, 0x645B, 0x93A5, 0x645C, 0x93A6, 0x645D, 0x93A7, 0x645F, 0x93A8, 0x6460, 0x93A9, 0x6461, 0x93AA, 0x6462, 0x93AB, 0x6463, + 0x93AC, 0x6464, 0x93AD, 0x6465, 0x93AE, 0x6466, 0x93AF, 0x6468, 0x93B0, 0x646A, 0x93B1, 0x646B, 0x93B2, 0x646C, 0x93B3, 0x646E, + 0x93B4, 0x646F, 0x93B5, 0x6470, 0x93B6, 0x6471, 0x93B7, 0x6472, 0x93B8, 0x6473, 0x93B9, 0x6474, 0x93BA, 0x6475, 0x93BB, 0x6476, + 0x93BC, 0x6477, 0x93BD, 0x647B, 0x93BE, 0x647C, 0x93BF, 0x647D, 0x93C0, 0x647E, 0x93C1, 0x647F, 0x93C2, 0x6480, 0x93C3, 0x6481, + 0x93C4, 0x6483, 0x93C5, 0x6486, 0x93C6, 0x6488, 0x93C7, 0x6489, 0x93C8, 0x648A, 0x93C9, 0x648B, 0x93CA, 0x648C, 0x93CB, 0x648D, + 0x93CC, 0x648E, 0x93CD, 0x648F, 0x93CE, 0x6490, 0x93CF, 0x6493, 0x93D0, 0x6494, 0x93D1, 0x6497, 0x93D2, 0x6498, 0x93D3, 0x649A, + 0x93D4, 0x649B, 0x93D5, 0x649C, 0x93D6, 0x649D, 0x93D7, 0x649F, 0x93D8, 0x64A0, 0x93D9, 0x64A1, 0x93DA, 0x64A2, 0x93DB, 0x64A3, + 0x93DC, 0x64A5, 0x93DD, 0x64A6, 0x93DE, 0x64A7, 0x93DF, 0x64A8, 0x93E0, 0x64AA, 0x93E1, 0x64AB, 0x93E2, 0x64AF, 0x93E3, 0x64B1, + 0x93E4, 0x64B2, 0x93E5, 0x64B3, 0x93E6, 0x64B4, 0x93E7, 0x64B6, 0x93E8, 0x64B9, 0x93E9, 0x64BB, 0x93EA, 0x64BD, 0x93EB, 0x64BE, + 0x93EC, 0x64BF, 0x93ED, 0x64C1, 0x93EE, 0x64C3, 0x93EF, 0x64C4, 0x93F0, 0x64C6, 0x93F1, 0x64C7, 0x93F2, 0x64C8, 0x93F3, 0x64C9, + 0x93F4, 0x64CA, 0x93F5, 0x64CB, 0x93F6, 0x64CC, 0x93F7, 0x64CF, 0x93F8, 0x64D1, 0x93F9, 0x64D3, 0x93FA, 0x64D4, 0x93FB, 0x64D5, + 0x93FC, 0x64D6, 0x93FD, 0x64D9, 0x93FE, 0x64DA, 0x9440, 0x64DB, 0x9441, 0x64DC, 0x9442, 0x64DD, 0x9443, 0x64DF, 0x9444, 0x64E0, + 0x9445, 0x64E1, 0x9446, 0x64E3, 0x9447, 0x64E5, 0x9448, 0x64E7, 0x9449, 0x64E8, 0x944A, 0x64E9, 0x944B, 0x64EA, 0x944C, 0x64EB, + 0x944D, 0x64EC, 0x944E, 0x64ED, 0x944F, 0x64EE, 0x9450, 0x64EF, 0x9451, 0x64F0, 0x9452, 0x64F1, 0x9453, 0x64F2, 0x9454, 0x64F3, + 0x9455, 0x64F4, 0x9456, 0x64F5, 0x9457, 0x64F6, 0x9458, 0x64F7, 0x9459, 0x64F8, 0x945A, 0x64F9, 0x945B, 0x64FA, 0x945C, 0x64FB, + 0x945D, 0x64FC, 0x945E, 0x64FD, 0x945F, 0x64FE, 0x9460, 0x64FF, 0x9461, 0x6501, 0x9462, 0x6502, 0x9463, 0x6503, 0x9464, 0x6504, + 0x9465, 0x6505, 0x9466, 0x6506, 0x9467, 0x6507, 0x9468, 0x6508, 0x9469, 0x650A, 0x946A, 0x650B, 0x946B, 0x650C, 0x946C, 0x650D, + 0x946D, 0x650E, 0x946E, 0x650F, 0x946F, 0x6510, 0x9470, 0x6511, 0x9471, 0x6513, 0x9472, 0x6514, 0x9473, 0x6515, 0x9474, 0x6516, + 0x9475, 0x6517, 0x9476, 0x6519, 0x9477, 0x651A, 0x9478, 0x651B, 0x9479, 0x651C, 0x947A, 0x651D, 0x947B, 0x651E, 0x947C, 0x651F, + 0x947D, 0x6520, 0x947E, 0x6521, 0x9480, 0x6522, 0x9481, 0x6523, 0x9482, 0x6524, 0x9483, 0x6526, 0x9484, 0x6527, 0x9485, 0x6528, + 0x9486, 0x6529, 0x9487, 0x652A, 0x9488, 0x652C, 0x9489, 0x652D, 0x948A, 0x6530, 0x948B, 0x6531, 0x948C, 0x6532, 0x948D, 0x6533, + 0x948E, 0x6537, 0x948F, 0x653A, 0x9490, 0x653C, 0x9491, 0x653D, 0x9492, 0x6540, 0x9493, 0x6541, 0x9494, 0x6542, 0x9495, 0x6543, + 0x9496, 0x6544, 0x9497, 0x6546, 0x9498, 0x6547, 0x9499, 0x654A, 0x949A, 0x654B, 0x949B, 0x654D, 0x949C, 0x654E, 0x949D, 0x6550, + 0x949E, 0x6552, 0x949F, 0x6553, 0x94A0, 0x6554, 0x94A1, 0x6557, 0x94A2, 0x6558, 0x94A3, 0x655A, 0x94A4, 0x655C, 0x94A5, 0x655F, + 0x94A6, 0x6560, 0x94A7, 0x6561, 0x94A8, 0x6564, 0x94A9, 0x6565, 0x94AA, 0x6567, 0x94AB, 0x6568, 0x94AC, 0x6569, 0x94AD, 0x656A, + 0x94AE, 0x656D, 0x94AF, 0x656E, 0x94B0, 0x656F, 0x94B1, 0x6571, 0x94B2, 0x6573, 0x94B3, 0x6575, 0x94B4, 0x6576, 0x94B5, 0x6578, + 0x94B6, 0x6579, 0x94B7, 0x657A, 0x94B8, 0x657B, 0x94B9, 0x657C, 0x94BA, 0x657D, 0x94BB, 0x657E, 0x94BC, 0x657F, 0x94BD, 0x6580, + 0x94BE, 0x6581, 0x94BF, 0x6582, 0x94C0, 0x6583, 0x94C1, 0x6584, 0x94C2, 0x6585, 0x94C3, 0x6586, 0x94C4, 0x6588, 0x94C5, 0x6589, + 0x94C6, 0x658A, 0x94C7, 0x658D, 0x94C8, 0x658E, 0x94C9, 0x658F, 0x94CA, 0x6592, 0x94CB, 0x6594, 0x94CC, 0x6595, 0x94CD, 0x6596, + 0x94CE, 0x6598, 0x94CF, 0x659A, 0x94D0, 0x659D, 0x94D1, 0x659E, 0x94D2, 0x65A0, 0x94D3, 0x65A2, 0x94D4, 0x65A3, 0x94D5, 0x65A6, + 0x94D6, 0x65A8, 0x94D7, 0x65AA, 0x94D8, 0x65AC, 0x94D9, 0x65AE, 0x94DA, 0x65B1, 0x94DB, 0x65B2, 0x94DC, 0x65B3, 0x94DD, 0x65B4, + 0x94DE, 0x65B5, 0x94DF, 0x65B6, 0x94E0, 0x65B7, 0x94E1, 0x65B8, 0x94E2, 0x65BA, 0x94E3, 0x65BB, 0x94E4, 0x65BE, 0x94E5, 0x65BF, + 0x94E6, 0x65C0, 0x94E7, 0x65C2, 0x94E8, 0x65C7, 0x94E9, 0x65C8, 0x94EA, 0x65C9, 0x94EB, 0x65CA, 0x94EC, 0x65CD, 0x94ED, 0x65D0, + 0x94EE, 0x65D1, 0x94EF, 0x65D3, 0x94F0, 0x65D4, 0x94F1, 0x65D5, 0x94F2, 0x65D8, 0x94F3, 0x65D9, 0x94F4, 0x65DA, 0x94F5, 0x65DB, + 0x94F6, 0x65DC, 0x94F7, 0x65DD, 0x94F8, 0x65DE, 0x94F9, 0x65DF, 0x94FA, 0x65E1, 0x94FB, 0x65E3, 0x94FC, 0x65E4, 0x94FD, 0x65EA, + 0x94FE, 0x65EB, 0x9540, 0x65F2, 0x9541, 0x65F3, 0x9542, 0x65F4, 0x9543, 0x65F5, 0x9544, 0x65F8, 0x9545, 0x65F9, 0x9546, 0x65FB, + 0x9547, 0x65FC, 0x9548, 0x65FD, 0x9549, 0x65FE, 0x954A, 0x65FF, 0x954B, 0x6601, 0x954C, 0x6604, 0x954D, 0x6605, 0x954E, 0x6607, + 0x954F, 0x6608, 0x9550, 0x6609, 0x9551, 0x660B, 0x9552, 0x660D, 0x9553, 0x6610, 0x9554, 0x6611, 0x9555, 0x6612, 0x9556, 0x6616, + 0x9557, 0x6617, 0x9558, 0x6618, 0x9559, 0x661A, 0x955A, 0x661B, 0x955B, 0x661C, 0x955C, 0x661E, 0x955D, 0x6621, 0x955E, 0x6622, + 0x955F, 0x6623, 0x9560, 0x6624, 0x9561, 0x6626, 0x9562, 0x6629, 0x9563, 0x662A, 0x9564, 0x662B, 0x9565, 0x662C, 0x9566, 0x662E, + 0x9567, 0x6630, 0x9568, 0x6632, 0x9569, 0x6633, 0x956A, 0x6637, 0x956B, 0x6638, 0x956C, 0x6639, 0x956D, 0x663A, 0x956E, 0x663B, + 0x956F, 0x663D, 0x9570, 0x663F, 0x9571, 0x6640, 0x9572, 0x6642, 0x9573, 0x6644, 0x9574, 0x6645, 0x9575, 0x6646, 0x9576, 0x6647, + 0x9577, 0x6648, 0x9578, 0x6649, 0x9579, 0x664A, 0x957A, 0x664D, 0x957B, 0x664E, 0x957C, 0x6650, 0x957D, 0x6651, 0x957E, 0x6658, + 0x9580, 0x6659, 0x9581, 0x665B, 0x9582, 0x665C, 0x9583, 0x665D, 0x9584, 0x665E, 0x9585, 0x6660, 0x9586, 0x6662, 0x9587, 0x6663, + 0x9588, 0x6665, 0x9589, 0x6667, 0x958A, 0x6669, 0x958B, 0x666A, 0x958C, 0x666B, 0x958D, 0x666C, 0x958E, 0x666D, 0x958F, 0x6671, + 0x9590, 0x6672, 0x9591, 0x6673, 0x9592, 0x6675, 0x9593, 0x6678, 0x9594, 0x6679, 0x9595, 0x667B, 0x9596, 0x667C, 0x9597, 0x667D, + 0x9598, 0x667F, 0x9599, 0x6680, 0x959A, 0x6681, 0x959B, 0x6683, 0x959C, 0x6685, 0x959D, 0x6686, 0x959E, 0x6688, 0x959F, 0x6689, + 0x95A0, 0x668A, 0x95A1, 0x668B, 0x95A2, 0x668D, 0x95A3, 0x668E, 0x95A4, 0x668F, 0x95A5, 0x6690, 0x95A6, 0x6692, 0x95A7, 0x6693, + 0x95A8, 0x6694, 0x95A9, 0x6695, 0x95AA, 0x6698, 0x95AB, 0x6699, 0x95AC, 0x669A, 0x95AD, 0x669B, 0x95AE, 0x669C, 0x95AF, 0x669E, + 0x95B0, 0x669F, 0x95B1, 0x66A0, 0x95B2, 0x66A1, 0x95B3, 0x66A2, 0x95B4, 0x66A3, 0x95B5, 0x66A4, 0x95B6, 0x66A5, 0x95B7, 0x66A6, + 0x95B8, 0x66A9, 0x95B9, 0x66AA, 0x95BA, 0x66AB, 0x95BB, 0x66AC, 0x95BC, 0x66AD, 0x95BD, 0x66AF, 0x95BE, 0x66B0, 0x95BF, 0x66B1, + 0x95C0, 0x66B2, 0x95C1, 0x66B3, 0x95C2, 0x66B5, 0x95C3, 0x66B6, 0x95C4, 0x66B7, 0x95C5, 0x66B8, 0x95C6, 0x66BA, 0x95C7, 0x66BB, + 0x95C8, 0x66BC, 0x95C9, 0x66BD, 0x95CA, 0x66BF, 0x95CB, 0x66C0, 0x95CC, 0x66C1, 0x95CD, 0x66C2, 0x95CE, 0x66C3, 0x95CF, 0x66C4, + 0x95D0, 0x66C5, 0x95D1, 0x66C6, 0x95D2, 0x66C7, 0x95D3, 0x66C8, 0x95D4, 0x66C9, 0x95D5, 0x66CA, 0x95D6, 0x66CB, 0x95D7, 0x66CC, + 0x95D8, 0x66CD, 0x95D9, 0x66CE, 0x95DA, 0x66CF, 0x95DB, 0x66D0, 0x95DC, 0x66D1, 0x95DD, 0x66D2, 0x95DE, 0x66D3, 0x95DF, 0x66D4, + 0x95E0, 0x66D5, 0x95E1, 0x66D6, 0x95E2, 0x66D7, 0x95E3, 0x66D8, 0x95E4, 0x66DA, 0x95E5, 0x66DE, 0x95E6, 0x66DF, 0x95E7, 0x66E0, + 0x95E8, 0x66E1, 0x95E9, 0x66E2, 0x95EA, 0x66E3, 0x95EB, 0x66E4, 0x95EC, 0x66E5, 0x95ED, 0x66E7, 0x95EE, 0x66E8, 0x95EF, 0x66EA, + 0x95F0, 0x66EB, 0x95F1, 0x66EC, 0x95F2, 0x66ED, 0x95F3, 0x66EE, 0x95F4, 0x66EF, 0x95F5, 0x66F1, 0x95F6, 0x66F5, 0x95F7, 0x66F6, + 0x95F8, 0x66F8, 0x95F9, 0x66FA, 0x95FA, 0x66FB, 0x95FB, 0x66FD, 0x95FC, 0x6701, 0x95FD, 0x6702, 0x95FE, 0x6703, 0x9640, 0x6704, + 0x9641, 0x6705, 0x9642, 0x6706, 0x9643, 0x6707, 0x9644, 0x670C, 0x9645, 0x670E, 0x9646, 0x670F, 0x9647, 0x6711, 0x9648, 0x6712, + 0x9649, 0x6713, 0x964A, 0x6716, 0x964B, 0x6718, 0x964C, 0x6719, 0x964D, 0x671A, 0x964E, 0x671C, 0x964F, 0x671E, 0x9650, 0x6720, + 0x9651, 0x6721, 0x9652, 0x6722, 0x9653, 0x6723, 0x9654, 0x6724, 0x9655, 0x6725, 0x9656, 0x6727, 0x9657, 0x6729, 0x9658, 0x672E, + 0x9659, 0x6730, 0x965A, 0x6732, 0x965B, 0x6733, 0x965C, 0x6736, 0x965D, 0x6737, 0x965E, 0x6738, 0x965F, 0x6739, 0x9660, 0x673B, + 0x9661, 0x673C, 0x9662, 0x673E, 0x9663, 0x673F, 0x9664, 0x6741, 0x9665, 0x6744, 0x9666, 0x6745, 0x9667, 0x6747, 0x9668, 0x674A, + 0x9669, 0x674B, 0x966A, 0x674D, 0x966B, 0x6752, 0x966C, 0x6754, 0x966D, 0x6755, 0x966E, 0x6757, 0x966F, 0x6758, 0x9670, 0x6759, + 0x9671, 0x675A, 0x9672, 0x675B, 0x9673, 0x675D, 0x9674, 0x6762, 0x9675, 0x6763, 0x9676, 0x6764, 0x9677, 0x6766, 0x9678, 0x6767, + 0x9679, 0x676B, 0x967A, 0x676C, 0x967B, 0x676E, 0x967C, 0x6771, 0x967D, 0x6774, 0x967E, 0x6776, 0x9680, 0x6778, 0x9681, 0x6779, + 0x9682, 0x677A, 0x9683, 0x677B, 0x9684, 0x677D, 0x9685, 0x6780, 0x9686, 0x6782, 0x9687, 0x6783, 0x9688, 0x6785, 0x9689, 0x6786, + 0x968A, 0x6788, 0x968B, 0x678A, 0x968C, 0x678C, 0x968D, 0x678D, 0x968E, 0x678E, 0x968F, 0x678F, 0x9690, 0x6791, 0x9691, 0x6792, + 0x9692, 0x6793, 0x9693, 0x6794, 0x9694, 0x6796, 0x9695, 0x6799, 0x9696, 0x679B, 0x9697, 0x679F, 0x9698, 0x67A0, 0x9699, 0x67A1, + 0x969A, 0x67A4, 0x969B, 0x67A6, 0x969C, 0x67A9, 0x969D, 0x67AC, 0x969E, 0x67AE, 0x969F, 0x67B1, 0x96A0, 0x67B2, 0x96A1, 0x67B4, + 0x96A2, 0x67B9, 0x96A3, 0x67BA, 0x96A4, 0x67BB, 0x96A5, 0x67BC, 0x96A6, 0x67BD, 0x96A7, 0x67BE, 0x96A8, 0x67BF, 0x96A9, 0x67C0, + 0x96AA, 0x67C2, 0x96AB, 0x67C5, 0x96AC, 0x67C6, 0x96AD, 0x67C7, 0x96AE, 0x67C8, 0x96AF, 0x67C9, 0x96B0, 0x67CA, 0x96B1, 0x67CB, + 0x96B2, 0x67CC, 0x96B3, 0x67CD, 0x96B4, 0x67CE, 0x96B5, 0x67D5, 0x96B6, 0x67D6, 0x96B7, 0x67D7, 0x96B8, 0x67DB, 0x96B9, 0x67DF, + 0x96BA, 0x67E1, 0x96BB, 0x67E3, 0x96BC, 0x67E4, 0x96BD, 0x67E6, 0x96BE, 0x67E7, 0x96BF, 0x67E8, 0x96C0, 0x67EA, 0x96C1, 0x67EB, + 0x96C2, 0x67ED, 0x96C3, 0x67EE, 0x96C4, 0x67F2, 0x96C5, 0x67F5, 0x96C6, 0x67F6, 0x96C7, 0x67F7, 0x96C8, 0x67F8, 0x96C9, 0x67F9, + 0x96CA, 0x67FA, 0x96CB, 0x67FB, 0x96CC, 0x67FC, 0x96CD, 0x67FE, 0x96CE, 0x6801, 0x96CF, 0x6802, 0x96D0, 0x6803, 0x96D1, 0x6804, + 0x96D2, 0x6806, 0x96D3, 0x680D, 0x96D4, 0x6810, 0x96D5, 0x6812, 0x96D6, 0x6814, 0x96D7, 0x6815, 0x96D8, 0x6818, 0x96D9, 0x6819, + 0x96DA, 0x681A, 0x96DB, 0x681B, 0x96DC, 0x681C, 0x96DD, 0x681E, 0x96DE, 0x681F, 0x96DF, 0x6820, 0x96E0, 0x6822, 0x96E1, 0x6823, + 0x96E2, 0x6824, 0x96E3, 0x6825, 0x96E4, 0x6826, 0x96E5, 0x6827, 0x96E6, 0x6828, 0x96E7, 0x682B, 0x96E8, 0x682C, 0x96E9, 0x682D, + 0x96EA, 0x682E, 0x96EB, 0x682F, 0x96EC, 0x6830, 0x96ED, 0x6831, 0x96EE, 0x6834, 0x96EF, 0x6835, 0x96F0, 0x6836, 0x96F1, 0x683A, + 0x96F2, 0x683B, 0x96F3, 0x683F, 0x96F4, 0x6847, 0x96F5, 0x684B, 0x96F6, 0x684D, 0x96F7, 0x684F, 0x96F8, 0x6852, 0x96F9, 0x6856, + 0x96FA, 0x6857, 0x96FB, 0x6858, 0x96FC, 0x6859, 0x96FD, 0x685A, 0x96FE, 0x685B, 0x9740, 0x685C, 0x9741, 0x685D, 0x9742, 0x685E, + 0x9743, 0x685F, 0x9744, 0x686A, 0x9745, 0x686C, 0x9746, 0x686D, 0x9747, 0x686E, 0x9748, 0x686F, 0x9749, 0x6870, 0x974A, 0x6871, + 0x974B, 0x6872, 0x974C, 0x6873, 0x974D, 0x6875, 0x974E, 0x6878, 0x974F, 0x6879, 0x9750, 0x687A, 0x9751, 0x687B, 0x9752, 0x687C, + 0x9753, 0x687D, 0x9754, 0x687E, 0x9755, 0x687F, 0x9756, 0x6880, 0x9757, 0x6882, 0x9758, 0x6884, 0x9759, 0x6887, 0x975A, 0x6888, + 0x975B, 0x6889, 0x975C, 0x688A, 0x975D, 0x688B, 0x975E, 0x688C, 0x975F, 0x688D, 0x9760, 0x688E, 0x9761, 0x6890, 0x9762, 0x6891, + 0x9763, 0x6892, 0x9764, 0x6894, 0x9765, 0x6895, 0x9766, 0x6896, 0x9767, 0x6898, 0x9768, 0x6899, 0x9769, 0x689A, 0x976A, 0x689B, + 0x976B, 0x689C, 0x976C, 0x689D, 0x976D, 0x689E, 0x976E, 0x689F, 0x976F, 0x68A0, 0x9770, 0x68A1, 0x9771, 0x68A3, 0x9772, 0x68A4, + 0x9773, 0x68A5, 0x9774, 0x68A9, 0x9775, 0x68AA, 0x9776, 0x68AB, 0x9777, 0x68AC, 0x9778, 0x68AE, 0x9779, 0x68B1, 0x977A, 0x68B2, + 0x977B, 0x68B4, 0x977C, 0x68B6, 0x977D, 0x68B7, 0x977E, 0x68B8, 0x9780, 0x68B9, 0x9781, 0x68BA, 0x9782, 0x68BB, 0x9783, 0x68BC, + 0x9784, 0x68BD, 0x9785, 0x68BE, 0x9786, 0x68BF, 0x9787, 0x68C1, 0x9788, 0x68C3, 0x9789, 0x68C4, 0x978A, 0x68C5, 0x978B, 0x68C6, + 0x978C, 0x68C7, 0x978D, 0x68C8, 0x978E, 0x68CA, 0x978F, 0x68CC, 0x9790, 0x68CE, 0x9791, 0x68CF, 0x9792, 0x68D0, 0x9793, 0x68D1, + 0x9794, 0x68D3, 0x9795, 0x68D4, 0x9796, 0x68D6, 0x9797, 0x68D7, 0x9798, 0x68D9, 0x9799, 0x68DB, 0x979A, 0x68DC, 0x979B, 0x68DD, + 0x979C, 0x68DE, 0x979D, 0x68DF, 0x979E, 0x68E1, 0x979F, 0x68E2, 0x97A0, 0x68E4, 0x97A1, 0x68E5, 0x97A2, 0x68E6, 0x97A3, 0x68E7, + 0x97A4, 0x68E8, 0x97A5, 0x68E9, 0x97A6, 0x68EA, 0x97A7, 0x68EB, 0x97A8, 0x68EC, 0x97A9, 0x68ED, 0x97AA, 0x68EF, 0x97AB, 0x68F2, + 0x97AC, 0x68F3, 0x97AD, 0x68F4, 0x97AE, 0x68F6, 0x97AF, 0x68F7, 0x97B0, 0x68F8, 0x97B1, 0x68FB, 0x97B2, 0x68FD, 0x97B3, 0x68FE, + 0x97B4, 0x68FF, 0x97B5, 0x6900, 0x97B6, 0x6902, 0x97B7, 0x6903, 0x97B8, 0x6904, 0x97B9, 0x6906, 0x97BA, 0x6907, 0x97BB, 0x6908, + 0x97BC, 0x6909, 0x97BD, 0x690A, 0x97BE, 0x690C, 0x97BF, 0x690F, 0x97C0, 0x6911, 0x97C1, 0x6913, 0x97C2, 0x6914, 0x97C3, 0x6915, + 0x97C4, 0x6916, 0x97C5, 0x6917, 0x97C6, 0x6918, 0x97C7, 0x6919, 0x97C8, 0x691A, 0x97C9, 0x691B, 0x97CA, 0x691C, 0x97CB, 0x691D, + 0x97CC, 0x691E, 0x97CD, 0x6921, 0x97CE, 0x6922, 0x97CF, 0x6923, 0x97D0, 0x6925, 0x97D1, 0x6926, 0x97D2, 0x6927, 0x97D3, 0x6928, + 0x97D4, 0x6929, 0x97D5, 0x692A, 0x97D6, 0x692B, 0x97D7, 0x692C, 0x97D8, 0x692E, 0x97D9, 0x692F, 0x97DA, 0x6931, 0x97DB, 0x6932, + 0x97DC, 0x6933, 0x97DD, 0x6935, 0x97DE, 0x6936, 0x97DF, 0x6937, 0x97E0, 0x6938, 0x97E1, 0x693A, 0x97E2, 0x693B, 0x97E3, 0x693C, + 0x97E4, 0x693E, 0x97E5, 0x6940, 0x97E6, 0x6941, 0x97E7, 0x6943, 0x97E8, 0x6944, 0x97E9, 0x6945, 0x97EA, 0x6946, 0x97EB, 0x6947, + 0x97EC, 0x6948, 0x97ED, 0x6949, 0x97EE, 0x694A, 0x97EF, 0x694B, 0x97F0, 0x694C, 0x97F1, 0x694D, 0x97F2, 0x694E, 0x97F3, 0x694F, + 0x97F4, 0x6950, 0x97F5, 0x6951, 0x97F6, 0x6952, 0x97F7, 0x6953, 0x97F8, 0x6955, 0x97F9, 0x6956, 0x97FA, 0x6958, 0x97FB, 0x6959, + 0x97FC, 0x695B, 0x97FD, 0x695C, 0x97FE, 0x695F, 0x9840, 0x6961, 0x9841, 0x6962, 0x9842, 0x6964, 0x9843, 0x6965, 0x9844, 0x6967, + 0x9845, 0x6968, 0x9846, 0x6969, 0x9847, 0x696A, 0x9848, 0x696C, 0x9849, 0x696D, 0x984A, 0x696F, 0x984B, 0x6970, 0x984C, 0x6972, + 0x984D, 0x6973, 0x984E, 0x6974, 0x984F, 0x6975, 0x9850, 0x6976, 0x9851, 0x697A, 0x9852, 0x697B, 0x9853, 0x697D, 0x9854, 0x697E, + 0x9855, 0x697F, 0x9856, 0x6981, 0x9857, 0x6983, 0x9858, 0x6985, 0x9859, 0x698A, 0x985A, 0x698B, 0x985B, 0x698C, 0x985C, 0x698E, + 0x985D, 0x698F, 0x985E, 0x6990, 0x985F, 0x6991, 0x9860, 0x6992, 0x9861, 0x6993, 0x9862, 0x6996, 0x9863, 0x6997, 0x9864, 0x6999, + 0x9865, 0x699A, 0x9866, 0x699D, 0x9867, 0x699E, 0x9868, 0x699F, 0x9869, 0x69A0, 0x986A, 0x69A1, 0x986B, 0x69A2, 0x986C, 0x69A3, + 0x986D, 0x69A4, 0x986E, 0x69A5, 0x986F, 0x69A6, 0x9870, 0x69A9, 0x9871, 0x69AA, 0x9872, 0x69AC, 0x9873, 0x69AE, 0x9874, 0x69AF, + 0x9875, 0x69B0, 0x9876, 0x69B2, 0x9877, 0x69B3, 0x9878, 0x69B5, 0x9879, 0x69B6, 0x987A, 0x69B8, 0x987B, 0x69B9, 0x987C, 0x69BA, + 0x987D, 0x69BC, 0x987E, 0x69BD, 0x9880, 0x69BE, 0x9881, 0x69BF, 0x9882, 0x69C0, 0x9883, 0x69C2, 0x9884, 0x69C3, 0x9885, 0x69C4, + 0x9886, 0x69C5, 0x9887, 0x69C6, 0x9888, 0x69C7, 0x9889, 0x69C8, 0x988A, 0x69C9, 0x988B, 0x69CB, 0x988C, 0x69CD, 0x988D, 0x69CF, + 0x988E, 0x69D1, 0x988F, 0x69D2, 0x9890, 0x69D3, 0x9891, 0x69D5, 0x9892, 0x69D6, 0x9893, 0x69D7, 0x9894, 0x69D8, 0x9895, 0x69D9, + 0x9896, 0x69DA, 0x9897, 0x69DC, 0x9898, 0x69DD, 0x9899, 0x69DE, 0x989A, 0x69E1, 0x989B, 0x69E2, 0x989C, 0x69E3, 0x989D, 0x69E4, + 0x989E, 0x69E5, 0x989F, 0x69E6, 0x98A0, 0x69E7, 0x98A1, 0x69E8, 0x98A2, 0x69E9, 0x98A3, 0x69EA, 0x98A4, 0x69EB, 0x98A5, 0x69EC, + 0x98A6, 0x69EE, 0x98A7, 0x69EF, 0x98A8, 0x69F0, 0x98A9, 0x69F1, 0x98AA, 0x69F3, 0x98AB, 0x69F4, 0x98AC, 0x69F5, 0x98AD, 0x69F6, + 0x98AE, 0x69F7, 0x98AF, 0x69F8, 0x98B0, 0x69F9, 0x98B1, 0x69FA, 0x98B2, 0x69FB, 0x98B3, 0x69FC, 0x98B4, 0x69FE, 0x98B5, 0x6A00, + 0x98B6, 0x6A01, 0x98B7, 0x6A02, 0x98B8, 0x6A03, 0x98B9, 0x6A04, 0x98BA, 0x6A05, 0x98BB, 0x6A06, 0x98BC, 0x6A07, 0x98BD, 0x6A08, + 0x98BE, 0x6A09, 0x98BF, 0x6A0B, 0x98C0, 0x6A0C, 0x98C1, 0x6A0D, 0x98C2, 0x6A0E, 0x98C3, 0x6A0F, 0x98C4, 0x6A10, 0x98C5, 0x6A11, + 0x98C6, 0x6A12, 0x98C7, 0x6A13, 0x98C8, 0x6A14, 0x98C9, 0x6A15, 0x98CA, 0x6A16, 0x98CB, 0x6A19, 0x98CC, 0x6A1A, 0x98CD, 0x6A1B, + 0x98CE, 0x6A1C, 0x98CF, 0x6A1D, 0x98D0, 0x6A1E, 0x98D1, 0x6A20, 0x98D2, 0x6A22, 0x98D3, 0x6A23, 0x98D4, 0x6A24, 0x98D5, 0x6A25, + 0x98D6, 0x6A26, 0x98D7, 0x6A27, 0x98D8, 0x6A29, 0x98D9, 0x6A2B, 0x98DA, 0x6A2C, 0x98DB, 0x6A2D, 0x98DC, 0x6A2E, 0x98DD, 0x6A30, + 0x98DE, 0x6A32, 0x98DF, 0x6A33, 0x98E0, 0x6A34, 0x98E1, 0x6A36, 0x98E2, 0x6A37, 0x98E3, 0x6A38, 0x98E4, 0x6A39, 0x98E5, 0x6A3A, + 0x98E6, 0x6A3B, 0x98E7, 0x6A3C, 0x98E8, 0x6A3F, 0x98E9, 0x6A40, 0x98EA, 0x6A41, 0x98EB, 0x6A42, 0x98EC, 0x6A43, 0x98ED, 0x6A45, + 0x98EE, 0x6A46, 0x98EF, 0x6A48, 0x98F0, 0x6A49, 0x98F1, 0x6A4A, 0x98F2, 0x6A4B, 0x98F3, 0x6A4C, 0x98F4, 0x6A4D, 0x98F5, 0x6A4E, + 0x98F6, 0x6A4F, 0x98F7, 0x6A51, 0x98F8, 0x6A52, 0x98F9, 0x6A53, 0x98FA, 0x6A54, 0x98FB, 0x6A55, 0x98FC, 0x6A56, 0x98FD, 0x6A57, + 0x98FE, 0x6A5A, 0x9940, 0x6A5C, 0x9941, 0x6A5D, 0x9942, 0x6A5E, 0x9943, 0x6A5F, 0x9944, 0x6A60, 0x9945, 0x6A62, 0x9946, 0x6A63, + 0x9947, 0x6A64, 0x9948, 0x6A66, 0x9949, 0x6A67, 0x994A, 0x6A68, 0x994B, 0x6A69, 0x994C, 0x6A6A, 0x994D, 0x6A6B, 0x994E, 0x6A6C, + 0x994F, 0x6A6D, 0x9950, 0x6A6E, 0x9951, 0x6A6F, 0x9952, 0x6A70, 0x9953, 0x6A72, 0x9954, 0x6A73, 0x9955, 0x6A74, 0x9956, 0x6A75, + 0x9957, 0x6A76, 0x9958, 0x6A77, 0x9959, 0x6A78, 0x995A, 0x6A7A, 0x995B, 0x6A7B, 0x995C, 0x6A7D, 0x995D, 0x6A7E, 0x995E, 0x6A7F, + 0x995F, 0x6A81, 0x9960, 0x6A82, 0x9961, 0x6A83, 0x9962, 0x6A85, 0x9963, 0x6A86, 0x9964, 0x6A87, 0x9965, 0x6A88, 0x9966, 0x6A89, + 0x9967, 0x6A8A, 0x9968, 0x6A8B, 0x9969, 0x6A8C, 0x996A, 0x6A8D, 0x996B, 0x6A8F, 0x996C, 0x6A92, 0x996D, 0x6A93, 0x996E, 0x6A94, + 0x996F, 0x6A95, 0x9970, 0x6A96, 0x9971, 0x6A98, 0x9972, 0x6A99, 0x9973, 0x6A9A, 0x9974, 0x6A9B, 0x9975, 0x6A9C, 0x9976, 0x6A9D, + 0x9977, 0x6A9E, 0x9978, 0x6A9F, 0x9979, 0x6AA1, 0x997A, 0x6AA2, 0x997B, 0x6AA3, 0x997C, 0x6AA4, 0x997D, 0x6AA5, 0x997E, 0x6AA6, + 0x9980, 0x6AA7, 0x9981, 0x6AA8, 0x9982, 0x6AAA, 0x9983, 0x6AAD, 0x9984, 0x6AAE, 0x9985, 0x6AAF, 0x9986, 0x6AB0, 0x9987, 0x6AB1, + 0x9988, 0x6AB2, 0x9989, 0x6AB3, 0x998A, 0x6AB4, 0x998B, 0x6AB5, 0x998C, 0x6AB6, 0x998D, 0x6AB7, 0x998E, 0x6AB8, 0x998F, 0x6AB9, + 0x9990, 0x6ABA, 0x9991, 0x6ABB, 0x9992, 0x6ABC, 0x9993, 0x6ABD, 0x9994, 0x6ABE, 0x9995, 0x6ABF, 0x9996, 0x6AC0, 0x9997, 0x6AC1, + 0x9998, 0x6AC2, 0x9999, 0x6AC3, 0x999A, 0x6AC4, 0x999B, 0x6AC5, 0x999C, 0x6AC6, 0x999D, 0x6AC7, 0x999E, 0x6AC8, 0x999F, 0x6AC9, + 0x99A0, 0x6ACA, 0x99A1, 0x6ACB, 0x99A2, 0x6ACC, 0x99A3, 0x6ACD, 0x99A4, 0x6ACE, 0x99A5, 0x6ACF, 0x99A6, 0x6AD0, 0x99A7, 0x6AD1, + 0x99A8, 0x6AD2, 0x99A9, 0x6AD3, 0x99AA, 0x6AD4, 0x99AB, 0x6AD5, 0x99AC, 0x6AD6, 0x99AD, 0x6AD7, 0x99AE, 0x6AD8, 0x99AF, 0x6AD9, + 0x99B0, 0x6ADA, 0x99B1, 0x6ADB, 0x99B2, 0x6ADC, 0x99B3, 0x6ADD, 0x99B4, 0x6ADE, 0x99B5, 0x6ADF, 0x99B6, 0x6AE0, 0x99B7, 0x6AE1, + 0x99B8, 0x6AE2, 0x99B9, 0x6AE3, 0x99BA, 0x6AE4, 0x99BB, 0x6AE5, 0x99BC, 0x6AE6, 0x99BD, 0x6AE7, 0x99BE, 0x6AE8, 0x99BF, 0x6AE9, + 0x99C0, 0x6AEA, 0x99C1, 0x6AEB, 0x99C2, 0x6AEC, 0x99C3, 0x6AED, 0x99C4, 0x6AEE, 0x99C5, 0x6AEF, 0x99C6, 0x6AF0, 0x99C7, 0x6AF1, + 0x99C8, 0x6AF2, 0x99C9, 0x6AF3, 0x99CA, 0x6AF4, 0x99CB, 0x6AF5, 0x99CC, 0x6AF6, 0x99CD, 0x6AF7, 0x99CE, 0x6AF8, 0x99CF, 0x6AF9, + 0x99D0, 0x6AFA, 0x99D1, 0x6AFB, 0x99D2, 0x6AFC, 0x99D3, 0x6AFD, 0x99D4, 0x6AFE, 0x99D5, 0x6AFF, 0x99D6, 0x6B00, 0x99D7, 0x6B01, + 0x99D8, 0x6B02, 0x99D9, 0x6B03, 0x99DA, 0x6B04, 0x99DB, 0x6B05, 0x99DC, 0x6B06, 0x99DD, 0x6B07, 0x99DE, 0x6B08, 0x99DF, 0x6B09, + 0x99E0, 0x6B0A, 0x99E1, 0x6B0B, 0x99E2, 0x6B0C, 0x99E3, 0x6B0D, 0x99E4, 0x6B0E, 0x99E5, 0x6B0F, 0x99E6, 0x6B10, 0x99E7, 0x6B11, + 0x99E8, 0x6B12, 0x99E9, 0x6B13, 0x99EA, 0x6B14, 0x99EB, 0x6B15, 0x99EC, 0x6B16, 0x99ED, 0x6B17, 0x99EE, 0x6B18, 0x99EF, 0x6B19, + 0x99F0, 0x6B1A, 0x99F1, 0x6B1B, 0x99F2, 0x6B1C, 0x99F3, 0x6B1D, 0x99F4, 0x6B1E, 0x99F5, 0x6B1F, 0x99F6, 0x6B25, 0x99F7, 0x6B26, + 0x99F8, 0x6B28, 0x99F9, 0x6B29, 0x99FA, 0x6B2A, 0x99FB, 0x6B2B, 0x99FC, 0x6B2C, 0x99FD, 0x6B2D, 0x99FE, 0x6B2E, 0x9A40, 0x6B2F, + 0x9A41, 0x6B30, 0x9A42, 0x6B31, 0x9A43, 0x6B33, 0x9A44, 0x6B34, 0x9A45, 0x6B35, 0x9A46, 0x6B36, 0x9A47, 0x6B38, 0x9A48, 0x6B3B, + 0x9A49, 0x6B3C, 0x9A4A, 0x6B3D, 0x9A4B, 0x6B3F, 0x9A4C, 0x6B40, 0x9A4D, 0x6B41, 0x9A4E, 0x6B42, 0x9A4F, 0x6B44, 0x9A50, 0x6B45, + 0x9A51, 0x6B48, 0x9A52, 0x6B4A, 0x9A53, 0x6B4B, 0x9A54, 0x6B4D, 0x9A55, 0x6B4E, 0x9A56, 0x6B4F, 0x9A57, 0x6B50, 0x9A58, 0x6B51, + 0x9A59, 0x6B52, 0x9A5A, 0x6B53, 0x9A5B, 0x6B54, 0x9A5C, 0x6B55, 0x9A5D, 0x6B56, 0x9A5E, 0x6B57, 0x9A5F, 0x6B58, 0x9A60, 0x6B5A, + 0x9A61, 0x6B5B, 0x9A62, 0x6B5C, 0x9A63, 0x6B5D, 0x9A64, 0x6B5E, 0x9A65, 0x6B5F, 0x9A66, 0x6B60, 0x9A67, 0x6B61, 0x9A68, 0x6B68, + 0x9A69, 0x6B69, 0x9A6A, 0x6B6B, 0x9A6B, 0x6B6C, 0x9A6C, 0x6B6D, 0x9A6D, 0x6B6E, 0x9A6E, 0x6B6F, 0x9A6F, 0x6B70, 0x9A70, 0x6B71, + 0x9A71, 0x6B72, 0x9A72, 0x6B73, 0x9A73, 0x6B74, 0x9A74, 0x6B75, 0x9A75, 0x6B76, 0x9A76, 0x6B77, 0x9A77, 0x6B78, 0x9A78, 0x6B7A, + 0x9A79, 0x6B7D, 0x9A7A, 0x6B7E, 0x9A7B, 0x6B7F, 0x9A7C, 0x6B80, 0x9A7D, 0x6B85, 0x9A7E, 0x6B88, 0x9A80, 0x6B8C, 0x9A81, 0x6B8E, + 0x9A82, 0x6B8F, 0x9A83, 0x6B90, 0x9A84, 0x6B91, 0x9A85, 0x6B94, 0x9A86, 0x6B95, 0x9A87, 0x6B97, 0x9A88, 0x6B98, 0x9A89, 0x6B99, + 0x9A8A, 0x6B9C, 0x9A8B, 0x6B9D, 0x9A8C, 0x6B9E, 0x9A8D, 0x6B9F, 0x9A8E, 0x6BA0, 0x9A8F, 0x6BA2, 0x9A90, 0x6BA3, 0x9A91, 0x6BA4, + 0x9A92, 0x6BA5, 0x9A93, 0x6BA6, 0x9A94, 0x6BA7, 0x9A95, 0x6BA8, 0x9A96, 0x6BA9, 0x9A97, 0x6BAB, 0x9A98, 0x6BAC, 0x9A99, 0x6BAD, + 0x9A9A, 0x6BAE, 0x9A9B, 0x6BAF, 0x9A9C, 0x6BB0, 0x9A9D, 0x6BB1, 0x9A9E, 0x6BB2, 0x9A9F, 0x6BB6, 0x9AA0, 0x6BB8, 0x9AA1, 0x6BB9, + 0x9AA2, 0x6BBA, 0x9AA3, 0x6BBB, 0x9AA4, 0x6BBC, 0x9AA5, 0x6BBD, 0x9AA6, 0x6BBE, 0x9AA7, 0x6BC0, 0x9AA8, 0x6BC3, 0x9AA9, 0x6BC4, + 0x9AAA, 0x6BC6, 0x9AAB, 0x6BC7, 0x9AAC, 0x6BC8, 0x9AAD, 0x6BC9, 0x9AAE, 0x6BCA, 0x9AAF, 0x6BCC, 0x9AB0, 0x6BCE, 0x9AB1, 0x6BD0, + 0x9AB2, 0x6BD1, 0x9AB3, 0x6BD8, 0x9AB4, 0x6BDA, 0x9AB5, 0x6BDC, 0x9AB6, 0x6BDD, 0x9AB7, 0x6BDE, 0x9AB8, 0x6BDF, 0x9AB9, 0x6BE0, + 0x9ABA, 0x6BE2, 0x9ABB, 0x6BE3, 0x9ABC, 0x6BE4, 0x9ABD, 0x6BE5, 0x9ABE, 0x6BE6, 0x9ABF, 0x6BE7, 0x9AC0, 0x6BE8, 0x9AC1, 0x6BE9, + 0x9AC2, 0x6BEC, 0x9AC3, 0x6BED, 0x9AC4, 0x6BEE, 0x9AC5, 0x6BF0, 0x9AC6, 0x6BF1, 0x9AC7, 0x6BF2, 0x9AC8, 0x6BF4, 0x9AC9, 0x6BF6, + 0x9ACA, 0x6BF7, 0x9ACB, 0x6BF8, 0x9ACC, 0x6BFA, 0x9ACD, 0x6BFB, 0x9ACE, 0x6BFC, 0x9ACF, 0x6BFE, 0x9AD0, 0x6BFF, 0x9AD1, 0x6C00, + 0x9AD2, 0x6C01, 0x9AD3, 0x6C02, 0x9AD4, 0x6C03, 0x9AD5, 0x6C04, 0x9AD6, 0x6C08, 0x9AD7, 0x6C09, 0x9AD8, 0x6C0A, 0x9AD9, 0x6C0B, + 0x9ADA, 0x6C0C, 0x9ADB, 0x6C0E, 0x9ADC, 0x6C12, 0x9ADD, 0x6C17, 0x9ADE, 0x6C1C, 0x9ADF, 0x6C1D, 0x9AE0, 0x6C1E, 0x9AE1, 0x6C20, + 0x9AE2, 0x6C23, 0x9AE3, 0x6C25, 0x9AE4, 0x6C2B, 0x9AE5, 0x6C2C, 0x9AE6, 0x6C2D, 0x9AE7, 0x6C31, 0x9AE8, 0x6C33, 0x9AE9, 0x6C36, + 0x9AEA, 0x6C37, 0x9AEB, 0x6C39, 0x9AEC, 0x6C3A, 0x9AED, 0x6C3B, 0x9AEE, 0x6C3C, 0x9AEF, 0x6C3E, 0x9AF0, 0x6C3F, 0x9AF1, 0x6C43, + 0x9AF2, 0x6C44, 0x9AF3, 0x6C45, 0x9AF4, 0x6C48, 0x9AF5, 0x6C4B, 0x9AF6, 0x6C4C, 0x9AF7, 0x6C4D, 0x9AF8, 0x6C4E, 0x9AF9, 0x6C4F, + 0x9AFA, 0x6C51, 0x9AFB, 0x6C52, 0x9AFC, 0x6C53, 0x9AFD, 0x6C56, 0x9AFE, 0x6C58, 0x9B40, 0x6C59, 0x9B41, 0x6C5A, 0x9B42, 0x6C62, + 0x9B43, 0x6C63, 0x9B44, 0x6C65, 0x9B45, 0x6C66, 0x9B46, 0x6C67, 0x9B47, 0x6C6B, 0x9B48, 0x6C6C, 0x9B49, 0x6C6D, 0x9B4A, 0x6C6E, + 0x9B4B, 0x6C6F, 0x9B4C, 0x6C71, 0x9B4D, 0x6C73, 0x9B4E, 0x6C75, 0x9B4F, 0x6C77, 0x9B50, 0x6C78, 0x9B51, 0x6C7A, 0x9B52, 0x6C7B, + 0x9B53, 0x6C7C, 0x9B54, 0x6C7F, 0x9B55, 0x6C80, 0x9B56, 0x6C84, 0x9B57, 0x6C87, 0x9B58, 0x6C8A, 0x9B59, 0x6C8B, 0x9B5A, 0x6C8D, + 0x9B5B, 0x6C8E, 0x9B5C, 0x6C91, 0x9B5D, 0x6C92, 0x9B5E, 0x6C95, 0x9B5F, 0x6C96, 0x9B60, 0x6C97, 0x9B61, 0x6C98, 0x9B62, 0x6C9A, + 0x9B63, 0x6C9C, 0x9B64, 0x6C9D, 0x9B65, 0x6C9E, 0x9B66, 0x6CA0, 0x9B67, 0x6CA2, 0x9B68, 0x6CA8, 0x9B69, 0x6CAC, 0x9B6A, 0x6CAF, + 0x9B6B, 0x6CB0, 0x9B6C, 0x6CB4, 0x9B6D, 0x6CB5, 0x9B6E, 0x6CB6, 0x9B6F, 0x6CB7, 0x9B70, 0x6CBA, 0x9B71, 0x6CC0, 0x9B72, 0x6CC1, + 0x9B73, 0x6CC2, 0x9B74, 0x6CC3, 0x9B75, 0x6CC6, 0x9B76, 0x6CC7, 0x9B77, 0x6CC8, 0x9B78, 0x6CCB, 0x9B79, 0x6CCD, 0x9B7A, 0x6CCE, + 0x9B7B, 0x6CCF, 0x9B7C, 0x6CD1, 0x9B7D, 0x6CD2, 0x9B7E, 0x6CD8, 0x9B80, 0x6CD9, 0x9B81, 0x6CDA, 0x9B82, 0x6CDC, 0x9B83, 0x6CDD, + 0x9B84, 0x6CDF, 0x9B85, 0x6CE4, 0x9B86, 0x6CE6, 0x9B87, 0x6CE7, 0x9B88, 0x6CE9, 0x9B89, 0x6CEC, 0x9B8A, 0x6CED, 0x9B8B, 0x6CF2, + 0x9B8C, 0x6CF4, 0x9B8D, 0x6CF9, 0x9B8E, 0x6CFF, 0x9B8F, 0x6D00, 0x9B90, 0x6D02, 0x9B91, 0x6D03, 0x9B92, 0x6D05, 0x9B93, 0x6D06, + 0x9B94, 0x6D08, 0x9B95, 0x6D09, 0x9B96, 0x6D0A, 0x9B97, 0x6D0D, 0x9B98, 0x6D0F, 0x9B99, 0x6D10, 0x9B9A, 0x6D11, 0x9B9B, 0x6D13, + 0x9B9C, 0x6D14, 0x9B9D, 0x6D15, 0x9B9E, 0x6D16, 0x9B9F, 0x6D18, 0x9BA0, 0x6D1C, 0x9BA1, 0x6D1D, 0x9BA2, 0x6D1F, 0x9BA3, 0x6D20, + 0x9BA4, 0x6D21, 0x9BA5, 0x6D22, 0x9BA6, 0x6D23, 0x9BA7, 0x6D24, 0x9BA8, 0x6D26, 0x9BA9, 0x6D28, 0x9BAA, 0x6D29, 0x9BAB, 0x6D2C, + 0x9BAC, 0x6D2D, 0x9BAD, 0x6D2F, 0x9BAE, 0x6D30, 0x9BAF, 0x6D34, 0x9BB0, 0x6D36, 0x9BB1, 0x6D37, 0x9BB2, 0x6D38, 0x9BB3, 0x6D3A, + 0x9BB4, 0x6D3F, 0x9BB5, 0x6D40, 0x9BB6, 0x6D42, 0x9BB7, 0x6D44, 0x9BB8, 0x6D49, 0x9BB9, 0x6D4C, 0x9BBA, 0x6D50, 0x9BBB, 0x6D55, + 0x9BBC, 0x6D56, 0x9BBD, 0x6D57, 0x9BBE, 0x6D58, 0x9BBF, 0x6D5B, 0x9BC0, 0x6D5D, 0x9BC1, 0x6D5F, 0x9BC2, 0x6D61, 0x9BC3, 0x6D62, + 0x9BC4, 0x6D64, 0x9BC5, 0x6D65, 0x9BC6, 0x6D67, 0x9BC7, 0x6D68, 0x9BC8, 0x6D6B, 0x9BC9, 0x6D6C, 0x9BCA, 0x6D6D, 0x9BCB, 0x6D70, + 0x9BCC, 0x6D71, 0x9BCD, 0x6D72, 0x9BCE, 0x6D73, 0x9BCF, 0x6D75, 0x9BD0, 0x6D76, 0x9BD1, 0x6D79, 0x9BD2, 0x6D7A, 0x9BD3, 0x6D7B, + 0x9BD4, 0x6D7D, 0x9BD5, 0x6D7E, 0x9BD6, 0x6D7F, 0x9BD7, 0x6D80, 0x9BD8, 0x6D81, 0x9BD9, 0x6D83, 0x9BDA, 0x6D84, 0x9BDB, 0x6D86, + 0x9BDC, 0x6D87, 0x9BDD, 0x6D8A, 0x9BDE, 0x6D8B, 0x9BDF, 0x6D8D, 0x9BE0, 0x6D8F, 0x9BE1, 0x6D90, 0x9BE2, 0x6D92, 0x9BE3, 0x6D96, + 0x9BE4, 0x6D97, 0x9BE5, 0x6D98, 0x9BE6, 0x6D99, 0x9BE7, 0x6D9A, 0x9BE8, 0x6D9C, 0x9BE9, 0x6DA2, 0x9BEA, 0x6DA5, 0x9BEB, 0x6DAC, + 0x9BEC, 0x6DAD, 0x9BED, 0x6DB0, 0x9BEE, 0x6DB1, 0x9BEF, 0x6DB3, 0x9BF0, 0x6DB4, 0x9BF1, 0x6DB6, 0x9BF2, 0x6DB7, 0x9BF3, 0x6DB9, + 0x9BF4, 0x6DBA, 0x9BF5, 0x6DBB, 0x9BF6, 0x6DBC, 0x9BF7, 0x6DBD, 0x9BF8, 0x6DBE, 0x9BF9, 0x6DC1, 0x9BFA, 0x6DC2, 0x9BFB, 0x6DC3, + 0x9BFC, 0x6DC8, 0x9BFD, 0x6DC9, 0x9BFE, 0x6DCA, 0x9C40, 0x6DCD, 0x9C41, 0x6DCE, 0x9C42, 0x6DCF, 0x9C43, 0x6DD0, 0x9C44, 0x6DD2, + 0x9C45, 0x6DD3, 0x9C46, 0x6DD4, 0x9C47, 0x6DD5, 0x9C48, 0x6DD7, 0x9C49, 0x6DDA, 0x9C4A, 0x6DDB, 0x9C4B, 0x6DDC, 0x9C4C, 0x6DDF, + 0x9C4D, 0x6DE2, 0x9C4E, 0x6DE3, 0x9C4F, 0x6DE5, 0x9C50, 0x6DE7, 0x9C51, 0x6DE8, 0x9C52, 0x6DE9, 0x9C53, 0x6DEA, 0x9C54, 0x6DED, + 0x9C55, 0x6DEF, 0x9C56, 0x6DF0, 0x9C57, 0x6DF2, 0x9C58, 0x6DF4, 0x9C59, 0x6DF5, 0x9C5A, 0x6DF6, 0x9C5B, 0x6DF8, 0x9C5C, 0x6DFA, + 0x9C5D, 0x6DFD, 0x9C5E, 0x6DFE, 0x9C5F, 0x6DFF, 0x9C60, 0x6E00, 0x9C61, 0x6E01, 0x9C62, 0x6E02, 0x9C63, 0x6E03, 0x9C64, 0x6E04, + 0x9C65, 0x6E06, 0x9C66, 0x6E07, 0x9C67, 0x6E08, 0x9C68, 0x6E09, 0x9C69, 0x6E0B, 0x9C6A, 0x6E0F, 0x9C6B, 0x6E12, 0x9C6C, 0x6E13, + 0x9C6D, 0x6E15, 0x9C6E, 0x6E18, 0x9C6F, 0x6E19, 0x9C70, 0x6E1B, 0x9C71, 0x6E1C, 0x9C72, 0x6E1E, 0x9C73, 0x6E1F, 0x9C74, 0x6E22, + 0x9C75, 0x6E26, 0x9C76, 0x6E27, 0x9C77, 0x6E28, 0x9C78, 0x6E2A, 0x9C79, 0x6E2C, 0x9C7A, 0x6E2E, 0x9C7B, 0x6E30, 0x9C7C, 0x6E31, + 0x9C7D, 0x6E33, 0x9C7E, 0x6E35, 0x9C80, 0x6E36, 0x9C81, 0x6E37, 0x9C82, 0x6E39, 0x9C83, 0x6E3B, 0x9C84, 0x6E3C, 0x9C85, 0x6E3D, + 0x9C86, 0x6E3E, 0x9C87, 0x6E3F, 0x9C88, 0x6E40, 0x9C89, 0x6E41, 0x9C8A, 0x6E42, 0x9C8B, 0x6E45, 0x9C8C, 0x6E46, 0x9C8D, 0x6E47, + 0x9C8E, 0x6E48, 0x9C8F, 0x6E49, 0x9C90, 0x6E4A, 0x9C91, 0x6E4B, 0x9C92, 0x6E4C, 0x9C93, 0x6E4F, 0x9C94, 0x6E50, 0x9C95, 0x6E51, + 0x9C96, 0x6E52, 0x9C97, 0x6E55, 0x9C98, 0x6E57, 0x9C99, 0x6E59, 0x9C9A, 0x6E5A, 0x9C9B, 0x6E5C, 0x9C9C, 0x6E5D, 0x9C9D, 0x6E5E, + 0x9C9E, 0x6E60, 0x9C9F, 0x6E61, 0x9CA0, 0x6E62, 0x9CA1, 0x6E63, 0x9CA2, 0x6E64, 0x9CA3, 0x6E65, 0x9CA4, 0x6E66, 0x9CA5, 0x6E67, + 0x9CA6, 0x6E68, 0x9CA7, 0x6E69, 0x9CA8, 0x6E6A, 0x9CA9, 0x6E6C, 0x9CAA, 0x6E6D, 0x9CAB, 0x6E6F, 0x9CAC, 0x6E70, 0x9CAD, 0x6E71, + 0x9CAE, 0x6E72, 0x9CAF, 0x6E73, 0x9CB0, 0x6E74, 0x9CB1, 0x6E75, 0x9CB2, 0x6E76, 0x9CB3, 0x6E77, 0x9CB4, 0x6E78, 0x9CB5, 0x6E79, + 0x9CB6, 0x6E7A, 0x9CB7, 0x6E7B, 0x9CB8, 0x6E7C, 0x9CB9, 0x6E7D, 0x9CBA, 0x6E80, 0x9CBB, 0x6E81, 0x9CBC, 0x6E82, 0x9CBD, 0x6E84, + 0x9CBE, 0x6E87, 0x9CBF, 0x6E88, 0x9CC0, 0x6E8A, 0x9CC1, 0x6E8B, 0x9CC2, 0x6E8C, 0x9CC3, 0x6E8D, 0x9CC4, 0x6E8E, 0x9CC5, 0x6E91, + 0x9CC6, 0x6E92, 0x9CC7, 0x6E93, 0x9CC8, 0x6E94, 0x9CC9, 0x6E95, 0x9CCA, 0x6E96, 0x9CCB, 0x6E97, 0x9CCC, 0x6E99, 0x9CCD, 0x6E9A, + 0x9CCE, 0x6E9B, 0x9CCF, 0x6E9D, 0x9CD0, 0x6E9E, 0x9CD1, 0x6EA0, 0x9CD2, 0x6EA1, 0x9CD3, 0x6EA3, 0x9CD4, 0x6EA4, 0x9CD5, 0x6EA6, + 0x9CD6, 0x6EA8, 0x9CD7, 0x6EA9, 0x9CD8, 0x6EAB, 0x9CD9, 0x6EAC, 0x9CDA, 0x6EAD, 0x9CDB, 0x6EAE, 0x9CDC, 0x6EB0, 0x9CDD, 0x6EB3, + 0x9CDE, 0x6EB5, 0x9CDF, 0x6EB8, 0x9CE0, 0x6EB9, 0x9CE1, 0x6EBC, 0x9CE2, 0x6EBE, 0x9CE3, 0x6EBF, 0x9CE4, 0x6EC0, 0x9CE5, 0x6EC3, + 0x9CE6, 0x6EC4, 0x9CE7, 0x6EC5, 0x9CE8, 0x6EC6, 0x9CE9, 0x6EC8, 0x9CEA, 0x6EC9, 0x9CEB, 0x6ECA, 0x9CEC, 0x6ECC, 0x9CED, 0x6ECD, + 0x9CEE, 0x6ECE, 0x9CEF, 0x6ED0, 0x9CF0, 0x6ED2, 0x9CF1, 0x6ED6, 0x9CF2, 0x6ED8, 0x9CF3, 0x6ED9, 0x9CF4, 0x6EDB, 0x9CF5, 0x6EDC, + 0x9CF6, 0x6EDD, 0x9CF7, 0x6EE3, 0x9CF8, 0x6EE7, 0x9CF9, 0x6EEA, 0x9CFA, 0x6EEB, 0x9CFB, 0x6EEC, 0x9CFC, 0x6EED, 0x9CFD, 0x6EEE, + 0x9CFE, 0x6EEF, 0x9D40, 0x6EF0, 0x9D41, 0x6EF1, 0x9D42, 0x6EF2, 0x9D43, 0x6EF3, 0x9D44, 0x6EF5, 0x9D45, 0x6EF6, 0x9D46, 0x6EF7, + 0x9D47, 0x6EF8, 0x9D48, 0x6EFA, 0x9D49, 0x6EFB, 0x9D4A, 0x6EFC, 0x9D4B, 0x6EFD, 0x9D4C, 0x6EFE, 0x9D4D, 0x6EFF, 0x9D4E, 0x6F00, + 0x9D4F, 0x6F01, 0x9D50, 0x6F03, 0x9D51, 0x6F04, 0x9D52, 0x6F05, 0x9D53, 0x6F07, 0x9D54, 0x6F08, 0x9D55, 0x6F0A, 0x9D56, 0x6F0B, + 0x9D57, 0x6F0C, 0x9D58, 0x6F0D, 0x9D59, 0x6F0E, 0x9D5A, 0x6F10, 0x9D5B, 0x6F11, 0x9D5C, 0x6F12, 0x9D5D, 0x6F16, 0x9D5E, 0x6F17, + 0x9D5F, 0x6F18, 0x9D60, 0x6F19, 0x9D61, 0x6F1A, 0x9D62, 0x6F1B, 0x9D63, 0x6F1C, 0x9D64, 0x6F1D, 0x9D65, 0x6F1E, 0x9D66, 0x6F1F, + 0x9D67, 0x6F21, 0x9D68, 0x6F22, 0x9D69, 0x6F23, 0x9D6A, 0x6F25, 0x9D6B, 0x6F26, 0x9D6C, 0x6F27, 0x9D6D, 0x6F28, 0x9D6E, 0x6F2C, + 0x9D6F, 0x6F2E, 0x9D70, 0x6F30, 0x9D71, 0x6F32, 0x9D72, 0x6F34, 0x9D73, 0x6F35, 0x9D74, 0x6F37, 0x9D75, 0x6F38, 0x9D76, 0x6F39, + 0x9D77, 0x6F3A, 0x9D78, 0x6F3B, 0x9D79, 0x6F3C, 0x9D7A, 0x6F3D, 0x9D7B, 0x6F3F, 0x9D7C, 0x6F40, 0x9D7D, 0x6F41, 0x9D7E, 0x6F42, + 0x9D80, 0x6F43, 0x9D81, 0x6F44, 0x9D82, 0x6F45, 0x9D83, 0x6F48, 0x9D84, 0x6F49, 0x9D85, 0x6F4A, 0x9D86, 0x6F4C, 0x9D87, 0x6F4E, + 0x9D88, 0x6F4F, 0x9D89, 0x6F50, 0x9D8A, 0x6F51, 0x9D8B, 0x6F52, 0x9D8C, 0x6F53, 0x9D8D, 0x6F54, 0x9D8E, 0x6F55, 0x9D8F, 0x6F56, + 0x9D90, 0x6F57, 0x9D91, 0x6F59, 0x9D92, 0x6F5A, 0x9D93, 0x6F5B, 0x9D94, 0x6F5D, 0x9D95, 0x6F5F, 0x9D96, 0x6F60, 0x9D97, 0x6F61, + 0x9D98, 0x6F63, 0x9D99, 0x6F64, 0x9D9A, 0x6F65, 0x9D9B, 0x6F67, 0x9D9C, 0x6F68, 0x9D9D, 0x6F69, 0x9D9E, 0x6F6A, 0x9D9F, 0x6F6B, + 0x9DA0, 0x6F6C, 0x9DA1, 0x6F6F, 0x9DA2, 0x6F70, 0x9DA3, 0x6F71, 0x9DA4, 0x6F73, 0x9DA5, 0x6F75, 0x9DA6, 0x6F76, 0x9DA7, 0x6F77, + 0x9DA8, 0x6F79, 0x9DA9, 0x6F7B, 0x9DAA, 0x6F7D, 0x9DAB, 0x6F7E, 0x9DAC, 0x6F7F, 0x9DAD, 0x6F80, 0x9DAE, 0x6F81, 0x9DAF, 0x6F82, + 0x9DB0, 0x6F83, 0x9DB1, 0x6F85, 0x9DB2, 0x6F86, 0x9DB3, 0x6F87, 0x9DB4, 0x6F8A, 0x9DB5, 0x6F8B, 0x9DB6, 0x6F8F, 0x9DB7, 0x6F90, + 0x9DB8, 0x6F91, 0x9DB9, 0x6F92, 0x9DBA, 0x6F93, 0x9DBB, 0x6F94, 0x9DBC, 0x6F95, 0x9DBD, 0x6F96, 0x9DBE, 0x6F97, 0x9DBF, 0x6F98, + 0x9DC0, 0x6F99, 0x9DC1, 0x6F9A, 0x9DC2, 0x6F9B, 0x9DC3, 0x6F9D, 0x9DC4, 0x6F9E, 0x9DC5, 0x6F9F, 0x9DC6, 0x6FA0, 0x9DC7, 0x6FA2, + 0x9DC8, 0x6FA3, 0x9DC9, 0x6FA4, 0x9DCA, 0x6FA5, 0x9DCB, 0x6FA6, 0x9DCC, 0x6FA8, 0x9DCD, 0x6FA9, 0x9DCE, 0x6FAA, 0x9DCF, 0x6FAB, + 0x9DD0, 0x6FAC, 0x9DD1, 0x6FAD, 0x9DD2, 0x6FAE, 0x9DD3, 0x6FAF, 0x9DD4, 0x6FB0, 0x9DD5, 0x6FB1, 0x9DD6, 0x6FB2, 0x9DD7, 0x6FB4, + 0x9DD8, 0x6FB5, 0x9DD9, 0x6FB7, 0x9DDA, 0x6FB8, 0x9DDB, 0x6FBA, 0x9DDC, 0x6FBB, 0x9DDD, 0x6FBC, 0x9DDE, 0x6FBD, 0x9DDF, 0x6FBE, + 0x9DE0, 0x6FBF, 0x9DE1, 0x6FC1, 0x9DE2, 0x6FC3, 0x9DE3, 0x6FC4, 0x9DE4, 0x6FC5, 0x9DE5, 0x6FC6, 0x9DE6, 0x6FC7, 0x9DE7, 0x6FC8, + 0x9DE8, 0x6FCA, 0x9DE9, 0x6FCB, 0x9DEA, 0x6FCC, 0x9DEB, 0x6FCD, 0x9DEC, 0x6FCE, 0x9DED, 0x6FCF, 0x9DEE, 0x6FD0, 0x9DEF, 0x6FD3, + 0x9DF0, 0x6FD4, 0x9DF1, 0x6FD5, 0x9DF2, 0x6FD6, 0x9DF3, 0x6FD7, 0x9DF4, 0x6FD8, 0x9DF5, 0x6FD9, 0x9DF6, 0x6FDA, 0x9DF7, 0x6FDB, + 0x9DF8, 0x6FDC, 0x9DF9, 0x6FDD, 0x9DFA, 0x6FDF, 0x9DFB, 0x6FE2, 0x9DFC, 0x6FE3, 0x9DFD, 0x6FE4, 0x9DFE, 0x6FE5, 0x9E40, 0x6FE6, + 0x9E41, 0x6FE7, 0x9E42, 0x6FE8, 0x9E43, 0x6FE9, 0x9E44, 0x6FEA, 0x9E45, 0x6FEB, 0x9E46, 0x6FEC, 0x9E47, 0x6FED, 0x9E48, 0x6FF0, + 0x9E49, 0x6FF1, 0x9E4A, 0x6FF2, 0x9E4B, 0x6FF3, 0x9E4C, 0x6FF4, 0x9E4D, 0x6FF5, 0x9E4E, 0x6FF6, 0x9E4F, 0x6FF7, 0x9E50, 0x6FF8, + 0x9E51, 0x6FF9, 0x9E52, 0x6FFA, 0x9E53, 0x6FFB, 0x9E54, 0x6FFC, 0x9E55, 0x6FFD, 0x9E56, 0x6FFE, 0x9E57, 0x6FFF, 0x9E58, 0x7000, + 0x9E59, 0x7001, 0x9E5A, 0x7002, 0x9E5B, 0x7003, 0x9E5C, 0x7004, 0x9E5D, 0x7005, 0x9E5E, 0x7006, 0x9E5F, 0x7007, 0x9E60, 0x7008, + 0x9E61, 0x7009, 0x9E62, 0x700A, 0x9E63, 0x700B, 0x9E64, 0x700C, 0x9E65, 0x700D, 0x9E66, 0x700E, 0x9E67, 0x700F, 0x9E68, 0x7010, + 0x9E69, 0x7012, 0x9E6A, 0x7013, 0x9E6B, 0x7014, 0x9E6C, 0x7015, 0x9E6D, 0x7016, 0x9E6E, 0x7017, 0x9E6F, 0x7018, 0x9E70, 0x7019, + 0x9E71, 0x701C, 0x9E72, 0x701D, 0x9E73, 0x701E, 0x9E74, 0x701F, 0x9E75, 0x7020, 0x9E76, 0x7021, 0x9E77, 0x7022, 0x9E78, 0x7024, + 0x9E79, 0x7025, 0x9E7A, 0x7026, 0x9E7B, 0x7027, 0x9E7C, 0x7028, 0x9E7D, 0x7029, 0x9E7E, 0x702A, 0x9E80, 0x702B, 0x9E81, 0x702C, + 0x9E82, 0x702D, 0x9E83, 0x702E, 0x9E84, 0x702F, 0x9E85, 0x7030, 0x9E86, 0x7031, 0x9E87, 0x7032, 0x9E88, 0x7033, 0x9E89, 0x7034, + 0x9E8A, 0x7036, 0x9E8B, 0x7037, 0x9E8C, 0x7038, 0x9E8D, 0x703A, 0x9E8E, 0x703B, 0x9E8F, 0x703C, 0x9E90, 0x703D, 0x9E91, 0x703E, + 0x9E92, 0x703F, 0x9E93, 0x7040, 0x9E94, 0x7041, 0x9E95, 0x7042, 0x9E96, 0x7043, 0x9E97, 0x7044, 0x9E98, 0x7045, 0x9E99, 0x7046, + 0x9E9A, 0x7047, 0x9E9B, 0x7048, 0x9E9C, 0x7049, 0x9E9D, 0x704A, 0x9E9E, 0x704B, 0x9E9F, 0x704D, 0x9EA0, 0x704E, 0x9EA1, 0x7050, + 0x9EA2, 0x7051, 0x9EA3, 0x7052, 0x9EA4, 0x7053, 0x9EA5, 0x7054, 0x9EA6, 0x7055, 0x9EA7, 0x7056, 0x9EA8, 0x7057, 0x9EA9, 0x7058, + 0x9EAA, 0x7059, 0x9EAB, 0x705A, 0x9EAC, 0x705B, 0x9EAD, 0x705C, 0x9EAE, 0x705D, 0x9EAF, 0x705F, 0x9EB0, 0x7060, 0x9EB1, 0x7061, + 0x9EB2, 0x7062, 0x9EB3, 0x7063, 0x9EB4, 0x7064, 0x9EB5, 0x7065, 0x9EB6, 0x7066, 0x9EB7, 0x7067, 0x9EB8, 0x7068, 0x9EB9, 0x7069, + 0x9EBA, 0x706A, 0x9EBB, 0x706E, 0x9EBC, 0x7071, 0x9EBD, 0x7072, 0x9EBE, 0x7073, 0x9EBF, 0x7074, 0x9EC0, 0x7077, 0x9EC1, 0x7079, + 0x9EC2, 0x707A, 0x9EC3, 0x707B, 0x9EC4, 0x707D, 0x9EC5, 0x7081, 0x9EC6, 0x7082, 0x9EC7, 0x7083, 0x9EC8, 0x7084, 0x9EC9, 0x7086, + 0x9ECA, 0x7087, 0x9ECB, 0x7088, 0x9ECC, 0x708B, 0x9ECD, 0x708C, 0x9ECE, 0x708D, 0x9ECF, 0x708F, 0x9ED0, 0x7090, 0x9ED1, 0x7091, + 0x9ED2, 0x7093, 0x9ED3, 0x7097, 0x9ED4, 0x7098, 0x9ED5, 0x709A, 0x9ED6, 0x709B, 0x9ED7, 0x709E, 0x9ED8, 0x709F, 0x9ED9, 0x70A0, + 0x9EDA, 0x70A1, 0x9EDB, 0x70A2, 0x9EDC, 0x70A3, 0x9EDD, 0x70A4, 0x9EDE, 0x70A5, 0x9EDF, 0x70A6, 0x9EE0, 0x70A7, 0x9EE1, 0x70A8, + 0x9EE2, 0x70A9, 0x9EE3, 0x70AA, 0x9EE4, 0x70B0, 0x9EE5, 0x70B2, 0x9EE6, 0x70B4, 0x9EE7, 0x70B5, 0x9EE8, 0x70B6, 0x9EE9, 0x70BA, + 0x9EEA, 0x70BE, 0x9EEB, 0x70BF, 0x9EEC, 0x70C4, 0x9EED, 0x70C5, 0x9EEE, 0x70C6, 0x9EEF, 0x70C7, 0x9EF0, 0x70C9, 0x9EF1, 0x70CB, + 0x9EF2, 0x70CC, 0x9EF3, 0x70CD, 0x9EF4, 0x70CE, 0x9EF5, 0x70CF, 0x9EF6, 0x70D0, 0x9EF7, 0x70D1, 0x9EF8, 0x70D2, 0x9EF9, 0x70D3, + 0x9EFA, 0x70D4, 0x9EFB, 0x70D5, 0x9EFC, 0x70D6, 0x9EFD, 0x70D7, 0x9EFE, 0x70DA, 0x9F40, 0x70DC, 0x9F41, 0x70DD, 0x9F42, 0x70DE, + 0x9F43, 0x70E0, 0x9F44, 0x70E1, 0x9F45, 0x70E2, 0x9F46, 0x70E3, 0x9F47, 0x70E5, 0x9F48, 0x70EA, 0x9F49, 0x70EE, 0x9F4A, 0x70F0, + 0x9F4B, 0x70F1, 0x9F4C, 0x70F2, 0x9F4D, 0x70F3, 0x9F4E, 0x70F4, 0x9F4F, 0x70F5, 0x9F50, 0x70F6, 0x9F51, 0x70F8, 0x9F52, 0x70FA, + 0x9F53, 0x70FB, 0x9F54, 0x70FC, 0x9F55, 0x70FE, 0x9F56, 0x70FF, 0x9F57, 0x7100, 0x9F58, 0x7101, 0x9F59, 0x7102, 0x9F5A, 0x7103, + 0x9F5B, 0x7104, 0x9F5C, 0x7105, 0x9F5D, 0x7106, 0x9F5E, 0x7107, 0x9F5F, 0x7108, 0x9F60, 0x710B, 0x9F61, 0x710C, 0x9F62, 0x710D, + 0x9F63, 0x710E, 0x9F64, 0x710F, 0x9F65, 0x7111, 0x9F66, 0x7112, 0x9F67, 0x7114, 0x9F68, 0x7117, 0x9F69, 0x711B, 0x9F6A, 0x711C, + 0x9F6B, 0x711D, 0x9F6C, 0x711E, 0x9F6D, 0x711F, 0x9F6E, 0x7120, 0x9F6F, 0x7121, 0x9F70, 0x7122, 0x9F71, 0x7123, 0x9F72, 0x7124, + 0x9F73, 0x7125, 0x9F74, 0x7127, 0x9F75, 0x7128, 0x9F76, 0x7129, 0x9F77, 0x712A, 0x9F78, 0x712B, 0x9F79, 0x712C, 0x9F7A, 0x712D, + 0x9F7B, 0x712E, 0x9F7C, 0x7132, 0x9F7D, 0x7133, 0x9F7E, 0x7134, 0x9F80, 0x7135, 0x9F81, 0x7137, 0x9F82, 0x7138, 0x9F83, 0x7139, + 0x9F84, 0x713A, 0x9F85, 0x713B, 0x9F86, 0x713C, 0x9F87, 0x713D, 0x9F88, 0x713E, 0x9F89, 0x713F, 0x9F8A, 0x7140, 0x9F8B, 0x7141, + 0x9F8C, 0x7142, 0x9F8D, 0x7143, 0x9F8E, 0x7144, 0x9F8F, 0x7146, 0x9F90, 0x7147, 0x9F91, 0x7148, 0x9F92, 0x7149, 0x9F93, 0x714B, + 0x9F94, 0x714D, 0x9F95, 0x714F, 0x9F96, 0x7150, 0x9F97, 0x7151, 0x9F98, 0x7152, 0x9F99, 0x7153, 0x9F9A, 0x7154, 0x9F9B, 0x7155, + 0x9F9C, 0x7156, 0x9F9D, 0x7157, 0x9F9E, 0x7158, 0x9F9F, 0x7159, 0x9FA0, 0x715A, 0x9FA1, 0x715B, 0x9FA2, 0x715D, 0x9FA3, 0x715F, + 0x9FA4, 0x7160, 0x9FA5, 0x7161, 0x9FA6, 0x7162, 0x9FA7, 0x7163, 0x9FA8, 0x7165, 0x9FA9, 0x7169, 0x9FAA, 0x716A, 0x9FAB, 0x716B, + 0x9FAC, 0x716C, 0x9FAD, 0x716D, 0x9FAE, 0x716F, 0x9FAF, 0x7170, 0x9FB0, 0x7171, 0x9FB1, 0x7174, 0x9FB2, 0x7175, 0x9FB3, 0x7176, + 0x9FB4, 0x7177, 0x9FB5, 0x7179, 0x9FB6, 0x717B, 0x9FB7, 0x717C, 0x9FB8, 0x717E, 0x9FB9, 0x717F, 0x9FBA, 0x7180, 0x9FBB, 0x7181, + 0x9FBC, 0x7182, 0x9FBD, 0x7183, 0x9FBE, 0x7185, 0x9FBF, 0x7186, 0x9FC0, 0x7187, 0x9FC1, 0x7188, 0x9FC2, 0x7189, 0x9FC3, 0x718B, + 0x9FC4, 0x718C, 0x9FC5, 0x718D, 0x9FC6, 0x718E, 0x9FC7, 0x7190, 0x9FC8, 0x7191, 0x9FC9, 0x7192, 0x9FCA, 0x7193, 0x9FCB, 0x7195, + 0x9FCC, 0x7196, 0x9FCD, 0x7197, 0x9FCE, 0x719A, 0x9FCF, 0x719B, 0x9FD0, 0x719C, 0x9FD1, 0x719D, 0x9FD2, 0x719E, 0x9FD3, 0x71A1, + 0x9FD4, 0x71A2, 0x9FD5, 0x71A3, 0x9FD6, 0x71A4, 0x9FD7, 0x71A5, 0x9FD8, 0x71A6, 0x9FD9, 0x71A7, 0x9FDA, 0x71A9, 0x9FDB, 0x71AA, + 0x9FDC, 0x71AB, 0x9FDD, 0x71AD, 0x9FDE, 0x71AE, 0x9FDF, 0x71AF, 0x9FE0, 0x71B0, 0x9FE1, 0x71B1, 0x9FE2, 0x71B2, 0x9FE3, 0x71B4, + 0x9FE4, 0x71B6, 0x9FE5, 0x71B7, 0x9FE6, 0x71B8, 0x9FE7, 0x71BA, 0x9FE8, 0x71BB, 0x9FE9, 0x71BC, 0x9FEA, 0x71BD, 0x9FEB, 0x71BE, + 0x9FEC, 0x71BF, 0x9FED, 0x71C0, 0x9FEE, 0x71C1, 0x9FEF, 0x71C2, 0x9FF0, 0x71C4, 0x9FF1, 0x71C5, 0x9FF2, 0x71C6, 0x9FF3, 0x71C7, + 0x9FF4, 0x71C8, 0x9FF5, 0x71C9, 0x9FF6, 0x71CA, 0x9FF7, 0x71CB, 0x9FF8, 0x71CC, 0x9FF9, 0x71CD, 0x9FFA, 0x71CF, 0x9FFB, 0x71D0, + 0x9FFC, 0x71D1, 0x9FFD, 0x71D2, 0x9FFE, 0x71D3, 0xA040, 0x71D6, 0xA041, 0x71D7, 0xA042, 0x71D8, 0xA043, 0x71D9, 0xA044, 0x71DA, + 0xA045, 0x71DB, 0xA046, 0x71DC, 0xA047, 0x71DD, 0xA048, 0x71DE, 0xA049, 0x71DF, 0xA04A, 0x71E1, 0xA04B, 0x71E2, 0xA04C, 0x71E3, + 0xA04D, 0x71E4, 0xA04E, 0x71E6, 0xA04F, 0x71E8, 0xA050, 0x71E9, 0xA051, 0x71EA, 0xA052, 0x71EB, 0xA053, 0x71EC, 0xA054, 0x71ED, + 0xA055, 0x71EF, 0xA056, 0x71F0, 0xA057, 0x71F1, 0xA058, 0x71F2, 0xA059, 0x71F3, 0xA05A, 0x71F4, 0xA05B, 0x71F5, 0xA05C, 0x71F6, + 0xA05D, 0x71F7, 0xA05E, 0x71F8, 0xA05F, 0x71FA, 0xA060, 0x71FB, 0xA061, 0x71FC, 0xA062, 0x71FD, 0xA063, 0x71FE, 0xA064, 0x71FF, + 0xA065, 0x7200, 0xA066, 0x7201, 0xA067, 0x7202, 0xA068, 0x7203, 0xA069, 0x7204, 0xA06A, 0x7205, 0xA06B, 0x7207, 0xA06C, 0x7208, + 0xA06D, 0x7209, 0xA06E, 0x720A, 0xA06F, 0x720B, 0xA070, 0x720C, 0xA071, 0x720D, 0xA072, 0x720E, 0xA073, 0x720F, 0xA074, 0x7210, + 0xA075, 0x7211, 0xA076, 0x7212, 0xA077, 0x7213, 0xA078, 0x7214, 0xA079, 0x7215, 0xA07A, 0x7216, 0xA07B, 0x7217, 0xA07C, 0x7218, + 0xA07D, 0x7219, 0xA07E, 0x721A, 0xA080, 0x721B, 0xA081, 0x721C, 0xA082, 0x721E, 0xA083, 0x721F, 0xA084, 0x7220, 0xA085, 0x7221, + 0xA086, 0x7222, 0xA087, 0x7223, 0xA088, 0x7224, 0xA089, 0x7225, 0xA08A, 0x7226, 0xA08B, 0x7227, 0xA08C, 0x7229, 0xA08D, 0x722B, + 0xA08E, 0x722D, 0xA08F, 0x722E, 0xA090, 0x722F, 0xA091, 0x7232, 0xA092, 0x7233, 0xA093, 0x7234, 0xA094, 0x723A, 0xA095, 0x723C, + 0xA096, 0x723E, 0xA097, 0x7240, 0xA098, 0x7241, 0xA099, 0x7242, 0xA09A, 0x7243, 0xA09B, 0x7244, 0xA09C, 0x7245, 0xA09D, 0x7246, + 0xA09E, 0x7249, 0xA09F, 0x724A, 0xA0A0, 0x724B, 0xA0A1, 0x724E, 0xA0A2, 0x724F, 0xA0A3, 0x7250, 0xA0A4, 0x7251, 0xA0A5, 0x7253, + 0xA0A6, 0x7254, 0xA0A7, 0x7255, 0xA0A8, 0x7257, 0xA0A9, 0x7258, 0xA0AA, 0x725A, 0xA0AB, 0x725C, 0xA0AC, 0x725E, 0xA0AD, 0x7260, + 0xA0AE, 0x7263, 0xA0AF, 0x7264, 0xA0B0, 0x7265, 0xA0B1, 0x7268, 0xA0B2, 0x726A, 0xA0B3, 0x726B, 0xA0B4, 0x726C, 0xA0B5, 0x726D, + 0xA0B6, 0x7270, 0xA0B7, 0x7271, 0xA0B8, 0x7273, 0xA0B9, 0x7274, 0xA0BA, 0x7276, 0xA0BB, 0x7277, 0xA0BC, 0x7278, 0xA0BD, 0x727B, + 0xA0BE, 0x727C, 0xA0BF, 0x727D, 0xA0C0, 0x7282, 0xA0C1, 0x7283, 0xA0C2, 0x7285, 0xA0C3, 0x7286, 0xA0C4, 0x7287, 0xA0C5, 0x7288, + 0xA0C6, 0x7289, 0xA0C7, 0x728C, 0xA0C8, 0x728E, 0xA0C9, 0x7290, 0xA0CA, 0x7291, 0xA0CB, 0x7293, 0xA0CC, 0x7294, 0xA0CD, 0x7295, + 0xA0CE, 0x7296, 0xA0CF, 0x7297, 0xA0D0, 0x7298, 0xA0D1, 0x7299, 0xA0D2, 0x729A, 0xA0D3, 0x729B, 0xA0D4, 0x729C, 0xA0D5, 0x729D, + 0xA0D6, 0x729E, 0xA0D7, 0x72A0, 0xA0D8, 0x72A1, 0xA0D9, 0x72A2, 0xA0DA, 0x72A3, 0xA0DB, 0x72A4, 0xA0DC, 0x72A5, 0xA0DD, 0x72A6, + 0xA0DE, 0x72A7, 0xA0DF, 0x72A8, 0xA0E0, 0x72A9, 0xA0E1, 0x72AA, 0xA0E2, 0x72AB, 0xA0E3, 0x72AE, 0xA0E4, 0x72B1, 0xA0E5, 0x72B2, + 0xA0E6, 0x72B3, 0xA0E7, 0x72B5, 0xA0E8, 0x72BA, 0xA0E9, 0x72BB, 0xA0EA, 0x72BC, 0xA0EB, 0x72BD, 0xA0EC, 0x72BE, 0xA0ED, 0x72BF, + 0xA0EE, 0x72C0, 0xA0EF, 0x72C5, 0xA0F0, 0x72C6, 0xA0F1, 0x72C7, 0xA0F2, 0x72C9, 0xA0F3, 0x72CA, 0xA0F4, 0x72CB, 0xA0F5, 0x72CC, + 0xA0F6, 0x72CF, 0xA0F7, 0x72D1, 0xA0F8, 0x72D3, 0xA0F9, 0x72D4, 0xA0FA, 0x72D5, 0xA0FB, 0x72D6, 0xA0FC, 0x72D8, 0xA0FD, 0x72DA, + 0xA0FE, 0x72DB, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, 0xA1A5, 0x02C9, 0xA1A6, 0x02C7, 0xA1A7, 0x00A8, + 0xA1A8, 0x3003, 0xA1A9, 0x3005, 0xA1AA, 0x2014, 0xA1AB, 0xFF5E, 0xA1AC, 0x2016, 0xA1AD, 0x2026, 0xA1AE, 0x2018, 0xA1AF, 0x2019, + 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, + 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3016, 0xA1BD, 0x3017, 0xA1BE, 0x3010, 0xA1BF, 0x3011, + 0xA1C0, 0x00B1, 0xA1C1, 0x00D7, 0xA1C2, 0x00F7, 0xA1C3, 0x2236, 0xA1C4, 0x2227, 0xA1C5, 0x2228, 0xA1C6, 0x2211, 0xA1C7, 0x220F, + 0xA1C8, 0x222A, 0xA1C9, 0x2229, 0xA1CA, 0x2208, 0xA1CB, 0x2237, 0xA1CC, 0x221A, 0xA1CD, 0x22A5, 0xA1CE, 0x2225, 0xA1CF, 0x2220, + 0xA1D0, 0x2312, 0xA1D1, 0x2299, 0xA1D2, 0x222B, 0xA1D3, 0x222E, 0xA1D4, 0x2261, 0xA1D5, 0x224C, 0xA1D6, 0x2248, 0xA1D7, 0x223D, + 0xA1D8, 0x221D, 0xA1D9, 0x2260, 0xA1DA, 0x226E, 0xA1DB, 0x226F, 0xA1DC, 0x2264, 0xA1DD, 0x2265, 0xA1DE, 0x221E, 0xA1DF, 0x2235, + 0xA1E0, 0x2234, 0xA1E1, 0x2642, 0xA1E2, 0x2640, 0xA1E3, 0x00B0, 0xA1E4, 0x2032, 0xA1E5, 0x2033, 0xA1E6, 0x2103, 0xA1E7, 0xFF04, + 0xA1E8, 0x00A4, 0xA1E9, 0xFFE0, 0xA1EA, 0xFFE1, 0xA1EB, 0x2030, 0xA1EC, 0x00A7, 0xA1ED, 0x2116, 0xA1EE, 0x2606, 0xA1EF, 0x2605, + 0xA1F0, 0x25CB, 0xA1F1, 0x25CF, 0xA1F2, 0x25CE, 0xA1F3, 0x25C7, 0xA1F4, 0x25C6, 0xA1F5, 0x25A1, 0xA1F6, 0x25A0, 0xA1F7, 0x25B3, + 0xA1F8, 0x25B2, 0xA1F9, 0x203B, 0xA1FA, 0x2192, 0xA1FB, 0x2190, 0xA1FC, 0x2191, 0xA1FD, 0x2193, 0xA1FE, 0x3013, 0xA2A1, 0x2170, + 0xA2A2, 0x2171, 0xA2A3, 0x2172, 0xA2A4, 0x2173, 0xA2A5, 0x2174, 0xA2A6, 0x2175, 0xA2A7, 0x2176, 0xA2A8, 0x2177, 0xA2A9, 0x2178, + 0xA2AA, 0x2179, 0xA2B1, 0x2488, 0xA2B2, 0x2489, 0xA2B3, 0x248A, 0xA2B4, 0x248B, 0xA2B5, 0x248C, 0xA2B6, 0x248D, 0xA2B7, 0x248E, + 0xA2B8, 0x248F, 0xA2B9, 0x2490, 0xA2BA, 0x2491, 0xA2BB, 0x2492, 0xA2BC, 0x2493, 0xA2BD, 0x2494, 0xA2BE, 0x2495, 0xA2BF, 0x2496, + 0xA2C0, 0x2497, 0xA2C1, 0x2498, 0xA2C2, 0x2499, 0xA2C3, 0x249A, 0xA2C4, 0x249B, 0xA2C5, 0x2474, 0xA2C6, 0x2475, 0xA2C7, 0x2476, + 0xA2C8, 0x2477, 0xA2C9, 0x2478, 0xA2CA, 0x2479, 0xA2CB, 0x247A, 0xA2CC, 0x247B, 0xA2CD, 0x247C, 0xA2CE, 0x247D, 0xA2CF, 0x247E, + 0xA2D0, 0x247F, 0xA2D1, 0x2480, 0xA2D2, 0x2481, 0xA2D3, 0x2482, 0xA2D4, 0x2483, 0xA2D5, 0x2484, 0xA2D6, 0x2485, 0xA2D7, 0x2486, + 0xA2D8, 0x2487, 0xA2D9, 0x2460, 0xA2DA, 0x2461, 0xA2DB, 0x2462, 0xA2DC, 0x2463, 0xA2DD, 0x2464, 0xA2DE, 0x2465, 0xA2DF, 0x2466, + 0xA2E0, 0x2467, 0xA2E1, 0x2468, 0xA2E2, 0x2469, 0xA2E5, 0x3220, 0xA2E6, 0x3221, 0xA2E7, 0x3222, 0xA2E8, 0x3223, 0xA2E9, 0x3224, + 0xA2EA, 0x3225, 0xA2EB, 0x3226, 0xA2EC, 0x3227, 0xA2ED, 0x3228, 0xA2EE, 0x3229, 0xA2F1, 0x2160, 0xA2F2, 0x2161, 0xA2F3, 0x2162, + 0xA2F4, 0x2163, 0xA2F5, 0x2164, 0xA2F6, 0x2165, 0xA2F7, 0x2166, 0xA2F8, 0x2167, 0xA2F9, 0x2168, 0xA2FA, 0x2169, 0xA2FB, 0x216A, + 0xA2FC, 0x216B, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, 0xA3A4, 0xFFE5, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, 0xA3DC, 0xFF3C, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA4A1, 0x3041, + 0xA4A2, 0x3042, 0xA4A3, 0x3043, 0xA4A4, 0x3044, 0xA4A5, 0x3045, 0xA4A6, 0x3046, 0xA4A7, 0x3047, 0xA4A8, 0x3048, 0xA4A9, 0x3049, + 0xA4AA, 0x304A, 0xA4AB, 0x304B, 0xA4AC, 0x304C, 0xA4AD, 0x304D, 0xA4AE, 0x304E, 0xA4AF, 0x304F, 0xA4B0, 0x3050, 0xA4B1, 0x3051, + 0xA4B2, 0x3052, 0xA4B3, 0x3053, 0xA4B4, 0x3054, 0xA4B5, 0x3055, 0xA4B6, 0x3056, 0xA4B7, 0x3057, 0xA4B8, 0x3058, 0xA4B9, 0x3059, + 0xA4BA, 0x305A, 0xA4BB, 0x305B, 0xA4BC, 0x305C, 0xA4BD, 0x305D, 0xA4BE, 0x305E, 0xA4BF, 0x305F, 0xA4C0, 0x3060, 0xA4C1, 0x3061, + 0xA4C2, 0x3062, 0xA4C3, 0x3063, 0xA4C4, 0x3064, 0xA4C5, 0x3065, 0xA4C6, 0x3066, 0xA4C7, 0x3067, 0xA4C8, 0x3068, 0xA4C9, 0x3069, + 0xA4CA, 0x306A, 0xA4CB, 0x306B, 0xA4CC, 0x306C, 0xA4CD, 0x306D, 0xA4CE, 0x306E, 0xA4CF, 0x306F, 0xA4D0, 0x3070, 0xA4D1, 0x3071, + 0xA4D2, 0x3072, 0xA4D3, 0x3073, 0xA4D4, 0x3074, 0xA4D5, 0x3075, 0xA4D6, 0x3076, 0xA4D7, 0x3077, 0xA4D8, 0x3078, 0xA4D9, 0x3079, + 0xA4DA, 0x307A, 0xA4DB, 0x307B, 0xA4DC, 0x307C, 0xA4DD, 0x307D, 0xA4DE, 0x307E, 0xA4DF, 0x307F, 0xA4E0, 0x3080, 0xA4E1, 0x3081, + 0xA4E2, 0x3082, 0xA4E3, 0x3083, 0xA4E4, 0x3084, 0xA4E5, 0x3085, 0xA4E6, 0x3086, 0xA4E7, 0x3087, 0xA4E8, 0x3088, 0xA4E9, 0x3089, + 0xA4EA, 0x308A, 0xA4EB, 0x308B, 0xA4EC, 0x308C, 0xA4ED, 0x308D, 0xA4EE, 0x308E, 0xA4EF, 0x308F, 0xA4F0, 0x3090, 0xA4F1, 0x3091, + 0xA4F2, 0x3092, 0xA4F3, 0x3093, 0xA5A1, 0x30A1, 0xA5A2, 0x30A2, 0xA5A3, 0x30A3, 0xA5A4, 0x30A4, 0xA5A5, 0x30A5, 0xA5A6, 0x30A6, + 0xA5A7, 0x30A7, 0xA5A8, 0x30A8, 0xA5A9, 0x30A9, 0xA5AA, 0x30AA, 0xA5AB, 0x30AB, 0xA5AC, 0x30AC, 0xA5AD, 0x30AD, 0xA5AE, 0x30AE, + 0xA5AF, 0x30AF, 0xA5B0, 0x30B0, 0xA5B1, 0x30B1, 0xA5B2, 0x30B2, 0xA5B3, 0x30B3, 0xA5B4, 0x30B4, 0xA5B5, 0x30B5, 0xA5B6, 0x30B6, + 0xA5B7, 0x30B7, 0xA5B8, 0x30B8, 0xA5B9, 0x30B9, 0xA5BA, 0x30BA, 0xA5BB, 0x30BB, 0xA5BC, 0x30BC, 0xA5BD, 0x30BD, 0xA5BE, 0x30BE, + 0xA5BF, 0x30BF, 0xA5C0, 0x30C0, 0xA5C1, 0x30C1, 0xA5C2, 0x30C2, 0xA5C3, 0x30C3, 0xA5C4, 0x30C4, 0xA5C5, 0x30C5, 0xA5C6, 0x30C6, + 0xA5C7, 0x30C7, 0xA5C8, 0x30C8, 0xA5C9, 0x30C9, 0xA5CA, 0x30CA, 0xA5CB, 0x30CB, 0xA5CC, 0x30CC, 0xA5CD, 0x30CD, 0xA5CE, 0x30CE, + 0xA5CF, 0x30CF, 0xA5D0, 0x30D0, 0xA5D1, 0x30D1, 0xA5D2, 0x30D2, 0xA5D3, 0x30D3, 0xA5D4, 0x30D4, 0xA5D5, 0x30D5, 0xA5D6, 0x30D6, + 0xA5D7, 0x30D7, 0xA5D8, 0x30D8, 0xA5D9, 0x30D9, 0xA5DA, 0x30DA, 0xA5DB, 0x30DB, 0xA5DC, 0x30DC, 0xA5DD, 0x30DD, 0xA5DE, 0x30DE, + 0xA5DF, 0x30DF, 0xA5E0, 0x30E0, 0xA5E1, 0x30E1, 0xA5E2, 0x30E2, 0xA5E3, 0x30E3, 0xA5E4, 0x30E4, 0xA5E5, 0x30E5, 0xA5E6, 0x30E6, + 0xA5E7, 0x30E7, 0xA5E8, 0x30E8, 0xA5E9, 0x30E9, 0xA5EA, 0x30EA, 0xA5EB, 0x30EB, 0xA5EC, 0x30EC, 0xA5ED, 0x30ED, 0xA5EE, 0x30EE, + 0xA5EF, 0x30EF, 0xA5F0, 0x30F0, 0xA5F1, 0x30F1, 0xA5F2, 0x30F2, 0xA5F3, 0x30F3, 0xA5F4, 0x30F4, 0xA5F5, 0x30F5, 0xA5F6, 0x30F6, + 0xA6A1, 0x0391, 0xA6A2, 0x0392, 0xA6A3, 0x0393, 0xA6A4, 0x0394, 0xA6A5, 0x0395, 0xA6A6, 0x0396, 0xA6A7, 0x0397, 0xA6A8, 0x0398, + 0xA6A9, 0x0399, 0xA6AA, 0x039A, 0xA6AB, 0x039B, 0xA6AC, 0x039C, 0xA6AD, 0x039D, 0xA6AE, 0x039E, 0xA6AF, 0x039F, 0xA6B0, 0x03A0, + 0xA6B1, 0x03A1, 0xA6B2, 0x03A3, 0xA6B3, 0x03A4, 0xA6B4, 0x03A5, 0xA6B5, 0x03A6, 0xA6B6, 0x03A7, 0xA6B7, 0x03A8, 0xA6B8, 0x03A9, + 0xA6C1, 0x03B1, 0xA6C2, 0x03B2, 0xA6C3, 0x03B3, 0xA6C4, 0x03B4, 0xA6C5, 0x03B5, 0xA6C6, 0x03B6, 0xA6C7, 0x03B7, 0xA6C8, 0x03B8, + 0xA6C9, 0x03B9, 0xA6CA, 0x03BA, 0xA6CB, 0x03BB, 0xA6CC, 0x03BC, 0xA6CD, 0x03BD, 0xA6CE, 0x03BE, 0xA6CF, 0x03BF, 0xA6D0, 0x03C0, + 0xA6D1, 0x03C1, 0xA6D2, 0x03C3, 0xA6D3, 0x03C4, 0xA6D4, 0x03C5, 0xA6D5, 0x03C6, 0xA6D6, 0x03C7, 0xA6D7, 0x03C8, 0xA6D8, 0x03C9, + 0xA6E0, 0xFE35, 0xA6E1, 0xFE36, 0xA6E2, 0xFE39, 0xA6E3, 0xFE3A, 0xA6E4, 0xFE3F, 0xA6E5, 0xFE40, 0xA6E6, 0xFE3D, 0xA6E7, 0xFE3E, + 0xA6E8, 0xFE41, 0xA6E9, 0xFE42, 0xA6EA, 0xFE43, 0xA6EB, 0xFE44, 0xA6EE, 0xFE3B, 0xA6EF, 0xFE3C, 0xA6F0, 0xFE37, 0xA6F1, 0xFE38, + 0xA6F2, 0xFE31, 0xA6F4, 0xFE33, 0xA6F5, 0xFE34, 0xA7A1, 0x0410, 0xA7A2, 0x0411, 0xA7A3, 0x0412, 0xA7A4, 0x0413, 0xA7A5, 0x0414, + 0xA7A6, 0x0415, 0xA7A7, 0x0401, 0xA7A8, 0x0416, 0xA7A9, 0x0417, 0xA7AA, 0x0418, 0xA7AB, 0x0419, 0xA7AC, 0x041A, 0xA7AD, 0x041B, + 0xA7AE, 0x041C, 0xA7AF, 0x041D, 0xA7B0, 0x041E, 0xA7B1, 0x041F, 0xA7B2, 0x0420, 0xA7B3, 0x0421, 0xA7B4, 0x0422, 0xA7B5, 0x0423, + 0xA7B6, 0x0424, 0xA7B7, 0x0425, 0xA7B8, 0x0426, 0xA7B9, 0x0427, 0xA7BA, 0x0428, 0xA7BB, 0x0429, 0xA7BC, 0x042A, 0xA7BD, 0x042B, + 0xA7BE, 0x042C, 0xA7BF, 0x042D, 0xA7C0, 0x042E, 0xA7C1, 0x042F, 0xA7D1, 0x0430, 0xA7D2, 0x0431, 0xA7D3, 0x0432, 0xA7D4, 0x0433, + 0xA7D5, 0x0434, 0xA7D6, 0x0435, 0xA7D7, 0x0451, 0xA7D8, 0x0436, 0xA7D9, 0x0437, 0xA7DA, 0x0438, 0xA7DB, 0x0439, 0xA7DC, 0x043A, + 0xA7DD, 0x043B, 0xA7DE, 0x043C, 0xA7DF, 0x043D, 0xA7E0, 0x043E, 0xA7E1, 0x043F, 0xA7E2, 0x0440, 0xA7E3, 0x0441, 0xA7E4, 0x0442, + 0xA7E5, 0x0443, 0xA7E6, 0x0444, 0xA7E7, 0x0445, 0xA7E8, 0x0446, 0xA7E9, 0x0447, 0xA7EA, 0x0448, 0xA7EB, 0x0449, 0xA7EC, 0x044A, + 0xA7ED, 0x044B, 0xA7EE, 0x044C, 0xA7EF, 0x044D, 0xA7F0, 0x044E, 0xA7F1, 0x044F, 0xA840, 0x02CA, 0xA841, 0x02CB, 0xA842, 0x02D9, + 0xA843, 0x2013, 0xA844, 0x2015, 0xA845, 0x2025, 0xA846, 0x2035, 0xA847, 0x2105, 0xA848, 0x2109, 0xA849, 0x2196, 0xA84A, 0x2197, + 0xA84B, 0x2198, 0xA84C, 0x2199, 0xA84D, 0x2215, 0xA84E, 0x221F, 0xA84F, 0x2223, 0xA850, 0x2252, 0xA851, 0x2266, 0xA852, 0x2267, + 0xA853, 0x22BF, 0xA854, 0x2550, 0xA855, 0x2551, 0xA856, 0x2552, 0xA857, 0x2553, 0xA858, 0x2554, 0xA859, 0x2555, 0xA85A, 0x2556, + 0xA85B, 0x2557, 0xA85C, 0x2558, 0xA85D, 0x2559, 0xA85E, 0x255A, 0xA85F, 0x255B, 0xA860, 0x255C, 0xA861, 0x255D, 0xA862, 0x255E, + 0xA863, 0x255F, 0xA864, 0x2560, 0xA865, 0x2561, 0xA866, 0x2562, 0xA867, 0x2563, 0xA868, 0x2564, 0xA869, 0x2565, 0xA86A, 0x2566, + 0xA86B, 0x2567, 0xA86C, 0x2568, 0xA86D, 0x2569, 0xA86E, 0x256A, 0xA86F, 0x256B, 0xA870, 0x256C, 0xA871, 0x256D, 0xA872, 0x256E, + 0xA873, 0x256F, 0xA874, 0x2570, 0xA875, 0x2571, 0xA876, 0x2572, 0xA877, 0x2573, 0xA878, 0x2581, 0xA879, 0x2582, 0xA87A, 0x2583, + 0xA87B, 0x2584, 0xA87C, 0x2585, 0xA87D, 0x2586, 0xA87E, 0x2587, 0xA880, 0x2588, 0xA881, 0x2589, 0xA882, 0x258A, 0xA883, 0x258B, + 0xA884, 0x258C, 0xA885, 0x258D, 0xA886, 0x258E, 0xA887, 0x258F, 0xA888, 0x2593, 0xA889, 0x2594, 0xA88A, 0x2595, 0xA88B, 0x25BC, + 0xA88C, 0x25BD, 0xA88D, 0x25E2, 0xA88E, 0x25E3, 0xA88F, 0x25E4, 0xA890, 0x25E5, 0xA891, 0x2609, 0xA892, 0x2295, 0xA893, 0x3012, + 0xA894, 0x301D, 0xA895, 0x301E, 0xA8A1, 0x0101, 0xA8A2, 0x00E1, 0xA8A3, 0x01CE, 0xA8A4, 0x00E0, 0xA8A5, 0x0113, 0xA8A6, 0x00E9, + 0xA8A7, 0x011B, 0xA8A8, 0x00E8, 0xA8A9, 0x012B, 0xA8AA, 0x00ED, 0xA8AB, 0x01D0, 0xA8AC, 0x00EC, 0xA8AD, 0x014D, 0xA8AE, 0x00F3, + 0xA8AF, 0x01D2, 0xA8B0, 0x00F2, 0xA8B1, 0x016B, 0xA8B2, 0x00FA, 0xA8B3, 0x01D4, 0xA8B4, 0x00F9, 0xA8B5, 0x01D6, 0xA8B6, 0x01D8, + 0xA8B7, 0x01DA, 0xA8B8, 0x01DC, 0xA8B9, 0x00FC, 0xA8BA, 0x00EA, 0xA8BB, 0x0251, 0xA8BD, 0x0144, 0xA8BE, 0x0148, 0xA8C0, 0x0261, + 0xA8C5, 0x3105, 0xA8C6, 0x3106, 0xA8C7, 0x3107, 0xA8C8, 0x3108, 0xA8C9, 0x3109, 0xA8CA, 0x310A, 0xA8CB, 0x310B, 0xA8CC, 0x310C, + 0xA8CD, 0x310D, 0xA8CE, 0x310E, 0xA8CF, 0x310F, 0xA8D0, 0x3110, 0xA8D1, 0x3111, 0xA8D2, 0x3112, 0xA8D3, 0x3113, 0xA8D4, 0x3114, + 0xA8D5, 0x3115, 0xA8D6, 0x3116, 0xA8D7, 0x3117, 0xA8D8, 0x3118, 0xA8D9, 0x3119, 0xA8DA, 0x311A, 0xA8DB, 0x311B, 0xA8DC, 0x311C, + 0xA8DD, 0x311D, 0xA8DE, 0x311E, 0xA8DF, 0x311F, 0xA8E0, 0x3120, 0xA8E1, 0x3121, 0xA8E2, 0x3122, 0xA8E3, 0x3123, 0xA8E4, 0x3124, + 0xA8E5, 0x3125, 0xA8E6, 0x3126, 0xA8E7, 0x3127, 0xA8E8, 0x3128, 0xA8E9, 0x3129, 0xA940, 0x3021, 0xA941, 0x3022, 0xA942, 0x3023, + 0xA943, 0x3024, 0xA944, 0x3025, 0xA945, 0x3026, 0xA946, 0x3027, 0xA947, 0x3028, 0xA948, 0x3029, 0xA949, 0x32A3, 0xA94A, 0x338E, + 0xA94B, 0x338F, 0xA94C, 0x339C, 0xA94D, 0x339D, 0xA94E, 0x339E, 0xA94F, 0x33A1, 0xA950, 0x33C4, 0xA951, 0x33CE, 0xA952, 0x33D1, + 0xA953, 0x33D2, 0xA954, 0x33D5, 0xA955, 0xFE30, 0xA956, 0xFFE2, 0xA957, 0xFFE4, 0xA959, 0x2121, 0xA95A, 0x3231, 0xA95C, 0x2010, + 0xA960, 0x30FC, 0xA961, 0x309B, 0xA962, 0x309C, 0xA963, 0x30FD, 0xA964, 0x30FE, 0xA965, 0x3006, 0xA966, 0x309D, 0xA967, 0x309E, + 0xA968, 0xFE49, 0xA969, 0xFE4A, 0xA96A, 0xFE4B, 0xA96B, 0xFE4C, 0xA96C, 0xFE4D, 0xA96D, 0xFE4E, 0xA96E, 0xFE4F, 0xA96F, 0xFE50, + 0xA970, 0xFE51, 0xA971, 0xFE52, 0xA972, 0xFE54, 0xA973, 0xFE55, 0xA974, 0xFE56, 0xA975, 0xFE57, 0xA976, 0xFE59, 0xA977, 0xFE5A, + 0xA978, 0xFE5B, 0xA979, 0xFE5C, 0xA97A, 0xFE5D, 0xA97B, 0xFE5E, 0xA97C, 0xFE5F, 0xA97D, 0xFE60, 0xA97E, 0xFE61, 0xA980, 0xFE62, + 0xA981, 0xFE63, 0xA982, 0xFE64, 0xA983, 0xFE65, 0xA984, 0xFE66, 0xA985, 0xFE68, 0xA986, 0xFE69, 0xA987, 0xFE6A, 0xA988, 0xFE6B, + 0xA996, 0x3007, 0xA9A4, 0x2500, 0xA9A5, 0x2501, 0xA9A6, 0x2502, 0xA9A7, 0x2503, 0xA9A8, 0x2504, 0xA9A9, 0x2505, 0xA9AA, 0x2506, + 0xA9AB, 0x2507, 0xA9AC, 0x2508, 0xA9AD, 0x2509, 0xA9AE, 0x250A, 0xA9AF, 0x250B, 0xA9B0, 0x250C, 0xA9B1, 0x250D, 0xA9B2, 0x250E, + 0xA9B3, 0x250F, 0xA9B4, 0x2510, 0xA9B5, 0x2511, 0xA9B6, 0x2512, 0xA9B7, 0x2513, 0xA9B8, 0x2514, 0xA9B9, 0x2515, 0xA9BA, 0x2516, + 0xA9BB, 0x2517, 0xA9BC, 0x2518, 0xA9BD, 0x2519, 0xA9BE, 0x251A, 0xA9BF, 0x251B, 0xA9C0, 0x251C, 0xA9C1, 0x251D, 0xA9C2, 0x251E, + 0xA9C3, 0x251F, 0xA9C4, 0x2520, 0xA9C5, 0x2521, 0xA9C6, 0x2522, 0xA9C7, 0x2523, 0xA9C8, 0x2524, 0xA9C9, 0x2525, 0xA9CA, 0x2526, + 0xA9CB, 0x2527, 0xA9CC, 0x2528, 0xA9CD, 0x2529, 0xA9CE, 0x252A, 0xA9CF, 0x252B, 0xA9D0, 0x252C, 0xA9D1, 0x252D, 0xA9D2, 0x252E, + 0xA9D3, 0x252F, 0xA9D4, 0x2530, 0xA9D5, 0x2531, 0xA9D6, 0x2532, 0xA9D7, 0x2533, 0xA9D8, 0x2534, 0xA9D9, 0x2535, 0xA9DA, 0x2536, + 0xA9DB, 0x2537, 0xA9DC, 0x2538, 0xA9DD, 0x2539, 0xA9DE, 0x253A, 0xA9DF, 0x253B, 0xA9E0, 0x253C, 0xA9E1, 0x253D, 0xA9E2, 0x253E, + 0xA9E3, 0x253F, 0xA9E4, 0x2540, 0xA9E5, 0x2541, 0xA9E6, 0x2542, 0xA9E7, 0x2543, 0xA9E8, 0x2544, 0xA9E9, 0x2545, 0xA9EA, 0x2546, + 0xA9EB, 0x2547, 0xA9EC, 0x2548, 0xA9ED, 0x2549, 0xA9EE, 0x254A, 0xA9EF, 0x254B, 0xAA40, 0x72DC, 0xAA41, 0x72DD, 0xAA42, 0x72DF, + 0xAA43, 0x72E2, 0xAA44, 0x72E3, 0xAA45, 0x72E4, 0xAA46, 0x72E5, 0xAA47, 0x72E6, 0xAA48, 0x72E7, 0xAA49, 0x72EA, 0xAA4A, 0x72EB, + 0xAA4B, 0x72F5, 0xAA4C, 0x72F6, 0xAA4D, 0x72F9, 0xAA4E, 0x72FD, 0xAA4F, 0x72FE, 0xAA50, 0x72FF, 0xAA51, 0x7300, 0xAA52, 0x7302, + 0xAA53, 0x7304, 0xAA54, 0x7305, 0xAA55, 0x7306, 0xAA56, 0x7307, 0xAA57, 0x7308, 0xAA58, 0x7309, 0xAA59, 0x730B, 0xAA5A, 0x730C, + 0xAA5B, 0x730D, 0xAA5C, 0x730F, 0xAA5D, 0x7310, 0xAA5E, 0x7311, 0xAA5F, 0x7312, 0xAA60, 0x7314, 0xAA61, 0x7318, 0xAA62, 0x7319, + 0xAA63, 0x731A, 0xAA64, 0x731F, 0xAA65, 0x7320, 0xAA66, 0x7323, 0xAA67, 0x7324, 0xAA68, 0x7326, 0xAA69, 0x7327, 0xAA6A, 0x7328, + 0xAA6B, 0x732D, 0xAA6C, 0x732F, 0xAA6D, 0x7330, 0xAA6E, 0x7332, 0xAA6F, 0x7333, 0xAA70, 0x7335, 0xAA71, 0x7336, 0xAA72, 0x733A, + 0xAA73, 0x733B, 0xAA74, 0x733C, 0xAA75, 0x733D, 0xAA76, 0x7340, 0xAA77, 0x7341, 0xAA78, 0x7342, 0xAA79, 0x7343, 0xAA7A, 0x7344, + 0xAA7B, 0x7345, 0xAA7C, 0x7346, 0xAA7D, 0x7347, 0xAA7E, 0x7348, 0xAA80, 0x7349, 0xAA81, 0x734A, 0xAA82, 0x734B, 0xAA83, 0x734C, + 0xAA84, 0x734E, 0xAA85, 0x734F, 0xAA86, 0x7351, 0xAA87, 0x7353, 0xAA88, 0x7354, 0xAA89, 0x7355, 0xAA8A, 0x7356, 0xAA8B, 0x7358, + 0xAA8C, 0x7359, 0xAA8D, 0x735A, 0xAA8E, 0x735B, 0xAA8F, 0x735C, 0xAA90, 0x735D, 0xAA91, 0x735E, 0xAA92, 0x735F, 0xAA93, 0x7361, + 0xAA94, 0x7362, 0xAA95, 0x7363, 0xAA96, 0x7364, 0xAA97, 0x7365, 0xAA98, 0x7366, 0xAA99, 0x7367, 0xAA9A, 0x7368, 0xAA9B, 0x7369, + 0xAA9C, 0x736A, 0xAA9D, 0x736B, 0xAA9E, 0x736E, 0xAA9F, 0x7370, 0xAAA0, 0x7371, 0xAB40, 0x7372, 0xAB41, 0x7373, 0xAB42, 0x7374, + 0xAB43, 0x7375, 0xAB44, 0x7376, 0xAB45, 0x7377, 0xAB46, 0x7378, 0xAB47, 0x7379, 0xAB48, 0x737A, 0xAB49, 0x737B, 0xAB4A, 0x737C, + 0xAB4B, 0x737D, 0xAB4C, 0x737F, 0xAB4D, 0x7380, 0xAB4E, 0x7381, 0xAB4F, 0x7382, 0xAB50, 0x7383, 0xAB51, 0x7385, 0xAB52, 0x7386, + 0xAB53, 0x7388, 0xAB54, 0x738A, 0xAB55, 0x738C, 0xAB56, 0x738D, 0xAB57, 0x738F, 0xAB58, 0x7390, 0xAB59, 0x7392, 0xAB5A, 0x7393, + 0xAB5B, 0x7394, 0xAB5C, 0x7395, 0xAB5D, 0x7397, 0xAB5E, 0x7398, 0xAB5F, 0x7399, 0xAB60, 0x739A, 0xAB61, 0x739C, 0xAB62, 0x739D, + 0xAB63, 0x739E, 0xAB64, 0x73A0, 0xAB65, 0x73A1, 0xAB66, 0x73A3, 0xAB67, 0x73A4, 0xAB68, 0x73A5, 0xAB69, 0x73A6, 0xAB6A, 0x73A7, + 0xAB6B, 0x73A8, 0xAB6C, 0x73AA, 0xAB6D, 0x73AC, 0xAB6E, 0x73AD, 0xAB6F, 0x73B1, 0xAB70, 0x73B4, 0xAB71, 0x73B5, 0xAB72, 0x73B6, + 0xAB73, 0x73B8, 0xAB74, 0x73B9, 0xAB75, 0x73BC, 0xAB76, 0x73BD, 0xAB77, 0x73BE, 0xAB78, 0x73BF, 0xAB79, 0x73C1, 0xAB7A, 0x73C3, + 0xAB7B, 0x73C4, 0xAB7C, 0x73C5, 0xAB7D, 0x73C6, 0xAB7E, 0x73C7, 0xAB80, 0x73CB, 0xAB81, 0x73CC, 0xAB82, 0x73CE, 0xAB83, 0x73D2, + 0xAB84, 0x73D3, 0xAB85, 0x73D4, 0xAB86, 0x73D5, 0xAB87, 0x73D6, 0xAB88, 0x73D7, 0xAB89, 0x73D8, 0xAB8A, 0x73DA, 0xAB8B, 0x73DB, + 0xAB8C, 0x73DC, 0xAB8D, 0x73DD, 0xAB8E, 0x73DF, 0xAB8F, 0x73E1, 0xAB90, 0x73E2, 0xAB91, 0x73E3, 0xAB92, 0x73E4, 0xAB93, 0x73E6, + 0xAB94, 0x73E8, 0xAB95, 0x73EA, 0xAB96, 0x73EB, 0xAB97, 0x73EC, 0xAB98, 0x73EE, 0xAB99, 0x73EF, 0xAB9A, 0x73F0, 0xAB9B, 0x73F1, + 0xAB9C, 0x73F3, 0xAB9D, 0x73F4, 0xAB9E, 0x73F5, 0xAB9F, 0x73F6, 0xABA0, 0x73F7, 0xAC40, 0x73F8, 0xAC41, 0x73F9, 0xAC42, 0x73FA, + 0xAC43, 0x73FB, 0xAC44, 0x73FC, 0xAC45, 0x73FD, 0xAC46, 0x73FE, 0xAC47, 0x73FF, 0xAC48, 0x7400, 0xAC49, 0x7401, 0xAC4A, 0x7402, + 0xAC4B, 0x7404, 0xAC4C, 0x7407, 0xAC4D, 0x7408, 0xAC4E, 0x740B, 0xAC4F, 0x740C, 0xAC50, 0x740D, 0xAC51, 0x740E, 0xAC52, 0x7411, + 0xAC53, 0x7412, 0xAC54, 0x7413, 0xAC55, 0x7414, 0xAC56, 0x7415, 0xAC57, 0x7416, 0xAC58, 0x7417, 0xAC59, 0x7418, 0xAC5A, 0x7419, + 0xAC5B, 0x741C, 0xAC5C, 0x741D, 0xAC5D, 0x741E, 0xAC5E, 0x741F, 0xAC5F, 0x7420, 0xAC60, 0x7421, 0xAC61, 0x7423, 0xAC62, 0x7424, + 0xAC63, 0x7427, 0xAC64, 0x7429, 0xAC65, 0x742B, 0xAC66, 0x742D, 0xAC67, 0x742F, 0xAC68, 0x7431, 0xAC69, 0x7432, 0xAC6A, 0x7437, + 0xAC6B, 0x7438, 0xAC6C, 0x7439, 0xAC6D, 0x743A, 0xAC6E, 0x743B, 0xAC6F, 0x743D, 0xAC70, 0x743E, 0xAC71, 0x743F, 0xAC72, 0x7440, + 0xAC73, 0x7442, 0xAC74, 0x7443, 0xAC75, 0x7444, 0xAC76, 0x7445, 0xAC77, 0x7446, 0xAC78, 0x7447, 0xAC79, 0x7448, 0xAC7A, 0x7449, + 0xAC7B, 0x744A, 0xAC7C, 0x744B, 0xAC7D, 0x744C, 0xAC7E, 0x744D, 0xAC80, 0x744E, 0xAC81, 0x744F, 0xAC82, 0x7450, 0xAC83, 0x7451, + 0xAC84, 0x7452, 0xAC85, 0x7453, 0xAC86, 0x7454, 0xAC87, 0x7456, 0xAC88, 0x7458, 0xAC89, 0x745D, 0xAC8A, 0x7460, 0xAC8B, 0x7461, + 0xAC8C, 0x7462, 0xAC8D, 0x7463, 0xAC8E, 0x7464, 0xAC8F, 0x7465, 0xAC90, 0x7466, 0xAC91, 0x7467, 0xAC92, 0x7468, 0xAC93, 0x7469, + 0xAC94, 0x746A, 0xAC95, 0x746B, 0xAC96, 0x746C, 0xAC97, 0x746E, 0xAC98, 0x746F, 0xAC99, 0x7471, 0xAC9A, 0x7472, 0xAC9B, 0x7473, + 0xAC9C, 0x7474, 0xAC9D, 0x7475, 0xAC9E, 0x7478, 0xAC9F, 0x7479, 0xACA0, 0x747A, 0xAD40, 0x747B, 0xAD41, 0x747C, 0xAD42, 0x747D, + 0xAD43, 0x747F, 0xAD44, 0x7482, 0xAD45, 0x7484, 0xAD46, 0x7485, 0xAD47, 0x7486, 0xAD48, 0x7488, 0xAD49, 0x7489, 0xAD4A, 0x748A, + 0xAD4B, 0x748C, 0xAD4C, 0x748D, 0xAD4D, 0x748F, 0xAD4E, 0x7491, 0xAD4F, 0x7492, 0xAD50, 0x7493, 0xAD51, 0x7494, 0xAD52, 0x7495, + 0xAD53, 0x7496, 0xAD54, 0x7497, 0xAD55, 0x7498, 0xAD56, 0x7499, 0xAD57, 0x749A, 0xAD58, 0x749B, 0xAD59, 0x749D, 0xAD5A, 0x749F, + 0xAD5B, 0x74A0, 0xAD5C, 0x74A1, 0xAD5D, 0x74A2, 0xAD5E, 0x74A3, 0xAD5F, 0x74A4, 0xAD60, 0x74A5, 0xAD61, 0x74A6, 0xAD62, 0x74AA, + 0xAD63, 0x74AB, 0xAD64, 0x74AC, 0xAD65, 0x74AD, 0xAD66, 0x74AE, 0xAD67, 0x74AF, 0xAD68, 0x74B0, 0xAD69, 0x74B1, 0xAD6A, 0x74B2, + 0xAD6B, 0x74B3, 0xAD6C, 0x74B4, 0xAD6D, 0x74B5, 0xAD6E, 0x74B6, 0xAD6F, 0x74B7, 0xAD70, 0x74B8, 0xAD71, 0x74B9, 0xAD72, 0x74BB, + 0xAD73, 0x74BC, 0xAD74, 0x74BD, 0xAD75, 0x74BE, 0xAD76, 0x74BF, 0xAD77, 0x74C0, 0xAD78, 0x74C1, 0xAD79, 0x74C2, 0xAD7A, 0x74C3, + 0xAD7B, 0x74C4, 0xAD7C, 0x74C5, 0xAD7D, 0x74C6, 0xAD7E, 0x74C7, 0xAD80, 0x74C8, 0xAD81, 0x74C9, 0xAD82, 0x74CA, 0xAD83, 0x74CB, + 0xAD84, 0x74CC, 0xAD85, 0x74CD, 0xAD86, 0x74CE, 0xAD87, 0x74CF, 0xAD88, 0x74D0, 0xAD89, 0x74D1, 0xAD8A, 0x74D3, 0xAD8B, 0x74D4, + 0xAD8C, 0x74D5, 0xAD8D, 0x74D6, 0xAD8E, 0x74D7, 0xAD8F, 0x74D8, 0xAD90, 0x74D9, 0xAD91, 0x74DA, 0xAD92, 0x74DB, 0xAD93, 0x74DD, + 0xAD94, 0x74DF, 0xAD95, 0x74E1, 0xAD96, 0x74E5, 0xAD97, 0x74E7, 0xAD98, 0x74E8, 0xAD99, 0x74E9, 0xAD9A, 0x74EA, 0xAD9B, 0x74EB, + 0xAD9C, 0x74EC, 0xAD9D, 0x74ED, 0xAD9E, 0x74F0, 0xAD9F, 0x74F1, 0xADA0, 0x74F2, 0xAE40, 0x74F3, 0xAE41, 0x74F5, 0xAE42, 0x74F8, + 0xAE43, 0x74F9, 0xAE44, 0x74FA, 0xAE45, 0x74FB, 0xAE46, 0x74FC, 0xAE47, 0x74FD, 0xAE48, 0x74FE, 0xAE49, 0x7500, 0xAE4A, 0x7501, + 0xAE4B, 0x7502, 0xAE4C, 0x7503, 0xAE4D, 0x7505, 0xAE4E, 0x7506, 0xAE4F, 0x7507, 0xAE50, 0x7508, 0xAE51, 0x7509, 0xAE52, 0x750A, + 0xAE53, 0x750B, 0xAE54, 0x750C, 0xAE55, 0x750E, 0xAE56, 0x7510, 0xAE57, 0x7512, 0xAE58, 0x7514, 0xAE59, 0x7515, 0xAE5A, 0x7516, + 0xAE5B, 0x7517, 0xAE5C, 0x751B, 0xAE5D, 0x751D, 0xAE5E, 0x751E, 0xAE5F, 0x7520, 0xAE60, 0x7521, 0xAE61, 0x7522, 0xAE62, 0x7523, + 0xAE63, 0x7524, 0xAE64, 0x7526, 0xAE65, 0x7527, 0xAE66, 0x752A, 0xAE67, 0x752E, 0xAE68, 0x7534, 0xAE69, 0x7536, 0xAE6A, 0x7539, + 0xAE6B, 0x753C, 0xAE6C, 0x753D, 0xAE6D, 0x753F, 0xAE6E, 0x7541, 0xAE6F, 0x7542, 0xAE70, 0x7543, 0xAE71, 0x7544, 0xAE72, 0x7546, + 0xAE73, 0x7547, 0xAE74, 0x7549, 0xAE75, 0x754A, 0xAE76, 0x754D, 0xAE77, 0x7550, 0xAE78, 0x7551, 0xAE79, 0x7552, 0xAE7A, 0x7553, + 0xAE7B, 0x7555, 0xAE7C, 0x7556, 0xAE7D, 0x7557, 0xAE7E, 0x7558, 0xAE80, 0x755D, 0xAE81, 0x755E, 0xAE82, 0x755F, 0xAE83, 0x7560, + 0xAE84, 0x7561, 0xAE85, 0x7562, 0xAE86, 0x7563, 0xAE87, 0x7564, 0xAE88, 0x7567, 0xAE89, 0x7568, 0xAE8A, 0x7569, 0xAE8B, 0x756B, + 0xAE8C, 0x756C, 0xAE8D, 0x756D, 0xAE8E, 0x756E, 0xAE8F, 0x756F, 0xAE90, 0x7570, 0xAE91, 0x7571, 0xAE92, 0x7573, 0xAE93, 0x7575, + 0xAE94, 0x7576, 0xAE95, 0x7577, 0xAE96, 0x757A, 0xAE97, 0x757B, 0xAE98, 0x757C, 0xAE99, 0x757D, 0xAE9A, 0x757E, 0xAE9B, 0x7580, + 0xAE9C, 0x7581, 0xAE9D, 0x7582, 0xAE9E, 0x7584, 0xAE9F, 0x7585, 0xAEA0, 0x7587, 0xAF40, 0x7588, 0xAF41, 0x7589, 0xAF42, 0x758A, + 0xAF43, 0x758C, 0xAF44, 0x758D, 0xAF45, 0x758E, 0xAF46, 0x7590, 0xAF47, 0x7593, 0xAF48, 0x7595, 0xAF49, 0x7598, 0xAF4A, 0x759B, + 0xAF4B, 0x759C, 0xAF4C, 0x759E, 0xAF4D, 0x75A2, 0xAF4E, 0x75A6, 0xAF4F, 0x75A7, 0xAF50, 0x75A8, 0xAF51, 0x75A9, 0xAF52, 0x75AA, + 0xAF53, 0x75AD, 0xAF54, 0x75B6, 0xAF55, 0x75B7, 0xAF56, 0x75BA, 0xAF57, 0x75BB, 0xAF58, 0x75BF, 0xAF59, 0x75C0, 0xAF5A, 0x75C1, + 0xAF5B, 0x75C6, 0xAF5C, 0x75CB, 0xAF5D, 0x75CC, 0xAF5E, 0x75CE, 0xAF5F, 0x75CF, 0xAF60, 0x75D0, 0xAF61, 0x75D1, 0xAF62, 0x75D3, + 0xAF63, 0x75D7, 0xAF64, 0x75D9, 0xAF65, 0x75DA, 0xAF66, 0x75DC, 0xAF67, 0x75DD, 0xAF68, 0x75DF, 0xAF69, 0x75E0, 0xAF6A, 0x75E1, + 0xAF6B, 0x75E5, 0xAF6C, 0x75E9, 0xAF6D, 0x75EC, 0xAF6E, 0x75ED, 0xAF6F, 0x75EE, 0xAF70, 0x75EF, 0xAF71, 0x75F2, 0xAF72, 0x75F3, + 0xAF73, 0x75F5, 0xAF74, 0x75F6, 0xAF75, 0x75F7, 0xAF76, 0x75F8, 0xAF77, 0x75FA, 0xAF78, 0x75FB, 0xAF79, 0x75FD, 0xAF7A, 0x75FE, + 0xAF7B, 0x7602, 0xAF7C, 0x7604, 0xAF7D, 0x7606, 0xAF7E, 0x7607, 0xAF80, 0x7608, 0xAF81, 0x7609, 0xAF82, 0x760B, 0xAF83, 0x760D, + 0xAF84, 0x760E, 0xAF85, 0x760F, 0xAF86, 0x7611, 0xAF87, 0x7612, 0xAF88, 0x7613, 0xAF89, 0x7614, 0xAF8A, 0x7616, 0xAF8B, 0x761A, + 0xAF8C, 0x761C, 0xAF8D, 0x761D, 0xAF8E, 0x761E, 0xAF8F, 0x7621, 0xAF90, 0x7623, 0xAF91, 0x7627, 0xAF92, 0x7628, 0xAF93, 0x762C, + 0xAF94, 0x762E, 0xAF95, 0x762F, 0xAF96, 0x7631, 0xAF97, 0x7632, 0xAF98, 0x7636, 0xAF99, 0x7637, 0xAF9A, 0x7639, 0xAF9B, 0x763A, + 0xAF9C, 0x763B, 0xAF9D, 0x763D, 0xAF9E, 0x7641, 0xAF9F, 0x7642, 0xAFA0, 0x7644, 0xB040, 0x7645, 0xB041, 0x7646, 0xB042, 0x7647, + 0xB043, 0x7648, 0xB044, 0x7649, 0xB045, 0x764A, 0xB046, 0x764B, 0xB047, 0x764E, 0xB048, 0x764F, 0xB049, 0x7650, 0xB04A, 0x7651, + 0xB04B, 0x7652, 0xB04C, 0x7653, 0xB04D, 0x7655, 0xB04E, 0x7657, 0xB04F, 0x7658, 0xB050, 0x7659, 0xB051, 0x765A, 0xB052, 0x765B, + 0xB053, 0x765D, 0xB054, 0x765F, 0xB055, 0x7660, 0xB056, 0x7661, 0xB057, 0x7662, 0xB058, 0x7664, 0xB059, 0x7665, 0xB05A, 0x7666, + 0xB05B, 0x7667, 0xB05C, 0x7668, 0xB05D, 0x7669, 0xB05E, 0x766A, 0xB05F, 0x766C, 0xB060, 0x766D, 0xB061, 0x766E, 0xB062, 0x7670, + 0xB063, 0x7671, 0xB064, 0x7672, 0xB065, 0x7673, 0xB066, 0x7674, 0xB067, 0x7675, 0xB068, 0x7676, 0xB069, 0x7677, 0xB06A, 0x7679, + 0xB06B, 0x767A, 0xB06C, 0x767C, 0xB06D, 0x767F, 0xB06E, 0x7680, 0xB06F, 0x7681, 0xB070, 0x7683, 0xB071, 0x7685, 0xB072, 0x7689, + 0xB073, 0x768A, 0xB074, 0x768C, 0xB075, 0x768D, 0xB076, 0x768F, 0xB077, 0x7690, 0xB078, 0x7692, 0xB079, 0x7694, 0xB07A, 0x7695, + 0xB07B, 0x7697, 0xB07C, 0x7698, 0xB07D, 0x769A, 0xB07E, 0x769B, 0xB080, 0x769C, 0xB081, 0x769D, 0xB082, 0x769E, 0xB083, 0x769F, + 0xB084, 0x76A0, 0xB085, 0x76A1, 0xB086, 0x76A2, 0xB087, 0x76A3, 0xB088, 0x76A5, 0xB089, 0x76A6, 0xB08A, 0x76A7, 0xB08B, 0x76A8, + 0xB08C, 0x76A9, 0xB08D, 0x76AA, 0xB08E, 0x76AB, 0xB08F, 0x76AC, 0xB090, 0x76AD, 0xB091, 0x76AF, 0xB092, 0x76B0, 0xB093, 0x76B3, + 0xB094, 0x76B5, 0xB095, 0x76B6, 0xB096, 0x76B7, 0xB097, 0x76B8, 0xB098, 0x76B9, 0xB099, 0x76BA, 0xB09A, 0x76BB, 0xB09B, 0x76BC, + 0xB09C, 0x76BD, 0xB09D, 0x76BE, 0xB09E, 0x76C0, 0xB09F, 0x76C1, 0xB0A0, 0x76C3, 0xB0A1, 0x554A, 0xB0A2, 0x963F, 0xB0A3, 0x57C3, + 0xB0A4, 0x6328, 0xB0A5, 0x54CE, 0xB0A6, 0x5509, 0xB0A7, 0x54C0, 0xB0A8, 0x7691, 0xB0A9, 0x764C, 0xB0AA, 0x853C, 0xB0AB, 0x77EE, + 0xB0AC, 0x827E, 0xB0AD, 0x788D, 0xB0AE, 0x7231, 0xB0AF, 0x9698, 0xB0B0, 0x978D, 0xB0B1, 0x6C28, 0xB0B2, 0x5B89, 0xB0B3, 0x4FFA, + 0xB0B4, 0x6309, 0xB0B5, 0x6697, 0xB0B6, 0x5CB8, 0xB0B7, 0x80FA, 0xB0B8, 0x6848, 0xB0B9, 0x80AE, 0xB0BA, 0x6602, 0xB0BB, 0x76CE, + 0xB0BC, 0x51F9, 0xB0BD, 0x6556, 0xB0BE, 0x71AC, 0xB0BF, 0x7FF1, 0xB0C0, 0x8884, 0xB0C1, 0x50B2, 0xB0C2, 0x5965, 0xB0C3, 0x61CA, + 0xB0C4, 0x6FB3, 0xB0C5, 0x82AD, 0xB0C6, 0x634C, 0xB0C7, 0x6252, 0xB0C8, 0x53ED, 0xB0C9, 0x5427, 0xB0CA, 0x7B06, 0xB0CB, 0x516B, + 0xB0CC, 0x75A4, 0xB0CD, 0x5DF4, 0xB0CE, 0x62D4, 0xB0CF, 0x8DCB, 0xB0D0, 0x9776, 0xB0D1, 0x628A, 0xB0D2, 0x8019, 0xB0D3, 0x575D, + 0xB0D4, 0x9738, 0xB0D5, 0x7F62, 0xB0D6, 0x7238, 0xB0D7, 0x767D, 0xB0D8, 0x67CF, 0xB0D9, 0x767E, 0xB0DA, 0x6446, 0xB0DB, 0x4F70, + 0xB0DC, 0x8D25, 0xB0DD, 0x62DC, 0xB0DE, 0x7A17, 0xB0DF, 0x6591, 0xB0E0, 0x73ED, 0xB0E1, 0x642C, 0xB0E2, 0x6273, 0xB0E3, 0x822C, + 0xB0E4, 0x9881, 0xB0E5, 0x677F, 0xB0E6, 0x7248, 0xB0E7, 0x626E, 0xB0E8, 0x62CC, 0xB0E9, 0x4F34, 0xB0EA, 0x74E3, 0xB0EB, 0x534A, + 0xB0EC, 0x529E, 0xB0ED, 0x7ECA, 0xB0EE, 0x90A6, 0xB0EF, 0x5E2E, 0xB0F0, 0x6886, 0xB0F1, 0x699C, 0xB0F2, 0x8180, 0xB0F3, 0x7ED1, + 0xB0F4, 0x68D2, 0xB0F5, 0x78C5, 0xB0F6, 0x868C, 0xB0F7, 0x9551, 0xB0F8, 0x508D, 0xB0F9, 0x8C24, 0xB0FA, 0x82DE, 0xB0FB, 0x80DE, + 0xB0FC, 0x5305, 0xB0FD, 0x8912, 0xB0FE, 0x5265, 0xB140, 0x76C4, 0xB141, 0x76C7, 0xB142, 0x76C9, 0xB143, 0x76CB, 0xB144, 0x76CC, + 0xB145, 0x76D3, 0xB146, 0x76D5, 0xB147, 0x76D9, 0xB148, 0x76DA, 0xB149, 0x76DC, 0xB14A, 0x76DD, 0xB14B, 0x76DE, 0xB14C, 0x76E0, + 0xB14D, 0x76E1, 0xB14E, 0x76E2, 0xB14F, 0x76E3, 0xB150, 0x76E4, 0xB151, 0x76E6, 0xB152, 0x76E7, 0xB153, 0x76E8, 0xB154, 0x76E9, + 0xB155, 0x76EA, 0xB156, 0x76EB, 0xB157, 0x76EC, 0xB158, 0x76ED, 0xB159, 0x76F0, 0xB15A, 0x76F3, 0xB15B, 0x76F5, 0xB15C, 0x76F6, + 0xB15D, 0x76F7, 0xB15E, 0x76FA, 0xB15F, 0x76FB, 0xB160, 0x76FD, 0xB161, 0x76FF, 0xB162, 0x7700, 0xB163, 0x7702, 0xB164, 0x7703, + 0xB165, 0x7705, 0xB166, 0x7706, 0xB167, 0x770A, 0xB168, 0x770C, 0xB169, 0x770E, 0xB16A, 0x770F, 0xB16B, 0x7710, 0xB16C, 0x7711, + 0xB16D, 0x7712, 0xB16E, 0x7713, 0xB16F, 0x7714, 0xB170, 0x7715, 0xB171, 0x7716, 0xB172, 0x7717, 0xB173, 0x7718, 0xB174, 0x771B, + 0xB175, 0x771C, 0xB176, 0x771D, 0xB177, 0x771E, 0xB178, 0x7721, 0xB179, 0x7723, 0xB17A, 0x7724, 0xB17B, 0x7725, 0xB17C, 0x7727, + 0xB17D, 0x772A, 0xB17E, 0x772B, 0xB180, 0x772C, 0xB181, 0x772E, 0xB182, 0x7730, 0xB183, 0x7731, 0xB184, 0x7732, 0xB185, 0x7733, + 0xB186, 0x7734, 0xB187, 0x7739, 0xB188, 0x773B, 0xB189, 0x773D, 0xB18A, 0x773E, 0xB18B, 0x773F, 0xB18C, 0x7742, 0xB18D, 0x7744, + 0xB18E, 0x7745, 0xB18F, 0x7746, 0xB190, 0x7748, 0xB191, 0x7749, 0xB192, 0x774A, 0xB193, 0x774B, 0xB194, 0x774C, 0xB195, 0x774D, + 0xB196, 0x774E, 0xB197, 0x774F, 0xB198, 0x7752, 0xB199, 0x7753, 0xB19A, 0x7754, 0xB19B, 0x7755, 0xB19C, 0x7756, 0xB19D, 0x7757, + 0xB19E, 0x7758, 0xB19F, 0x7759, 0xB1A0, 0x775C, 0xB1A1, 0x8584, 0xB1A2, 0x96F9, 0xB1A3, 0x4FDD, 0xB1A4, 0x5821, 0xB1A5, 0x9971, + 0xB1A6, 0x5B9D, 0xB1A7, 0x62B1, 0xB1A8, 0x62A5, 0xB1A9, 0x66B4, 0xB1AA, 0x8C79, 0xB1AB, 0x9C8D, 0xB1AC, 0x7206, 0xB1AD, 0x676F, + 0xB1AE, 0x7891, 0xB1AF, 0x60B2, 0xB1B0, 0x5351, 0xB1B1, 0x5317, 0xB1B2, 0x8F88, 0xB1B3, 0x80CC, 0xB1B4, 0x8D1D, 0xB1B5, 0x94A1, + 0xB1B6, 0x500D, 0xB1B7, 0x72C8, 0xB1B8, 0x5907, 0xB1B9, 0x60EB, 0xB1BA, 0x7119, 0xB1BB, 0x88AB, 0xB1BC, 0x5954, 0xB1BD, 0x82EF, + 0xB1BE, 0x672C, 0xB1BF, 0x7B28, 0xB1C0, 0x5D29, 0xB1C1, 0x7EF7, 0xB1C2, 0x752D, 0xB1C3, 0x6CF5, 0xB1C4, 0x8E66, 0xB1C5, 0x8FF8, + 0xB1C6, 0x903C, 0xB1C7, 0x9F3B, 0xB1C8, 0x6BD4, 0xB1C9, 0x9119, 0xB1CA, 0x7B14, 0xB1CB, 0x5F7C, 0xB1CC, 0x78A7, 0xB1CD, 0x84D6, + 0xB1CE, 0x853D, 0xB1CF, 0x6BD5, 0xB1D0, 0x6BD9, 0xB1D1, 0x6BD6, 0xB1D2, 0x5E01, 0xB1D3, 0x5E87, 0xB1D4, 0x75F9, 0xB1D5, 0x95ED, + 0xB1D6, 0x655D, 0xB1D7, 0x5F0A, 0xB1D8, 0x5FC5, 0xB1D9, 0x8F9F, 0xB1DA, 0x58C1, 0xB1DB, 0x81C2, 0xB1DC, 0x907F, 0xB1DD, 0x965B, + 0xB1DE, 0x97AD, 0xB1DF, 0x8FB9, 0xB1E0, 0x7F16, 0xB1E1, 0x8D2C, 0xB1E2, 0x6241, 0xB1E3, 0x4FBF, 0xB1E4, 0x53D8, 0xB1E5, 0x535E, + 0xB1E6, 0x8FA8, 0xB1E7, 0x8FA9, 0xB1E8, 0x8FAB, 0xB1E9, 0x904D, 0xB1EA, 0x6807, 0xB1EB, 0x5F6A, 0xB1EC, 0x8198, 0xB1ED, 0x8868, + 0xB1EE, 0x9CD6, 0xB1EF, 0x618B, 0xB1F0, 0x522B, 0xB1F1, 0x762A, 0xB1F2, 0x5F6C, 0xB1F3, 0x658C, 0xB1F4, 0x6FD2, 0xB1F5, 0x6EE8, + 0xB1F6, 0x5BBE, 0xB1F7, 0x6448, 0xB1F8, 0x5175, 0xB1F9, 0x51B0, 0xB1FA, 0x67C4, 0xB1FB, 0x4E19, 0xB1FC, 0x79C9, 0xB1FD, 0x997C, + 0xB1FE, 0x70B3, 0xB240, 0x775D, 0xB241, 0x775E, 0xB242, 0x775F, 0xB243, 0x7760, 0xB244, 0x7764, 0xB245, 0x7767, 0xB246, 0x7769, + 0xB247, 0x776A, 0xB248, 0x776D, 0xB249, 0x776E, 0xB24A, 0x776F, 0xB24B, 0x7770, 0xB24C, 0x7771, 0xB24D, 0x7772, 0xB24E, 0x7773, + 0xB24F, 0x7774, 0xB250, 0x7775, 0xB251, 0x7776, 0xB252, 0x7777, 0xB253, 0x7778, 0xB254, 0x777A, 0xB255, 0x777B, 0xB256, 0x777C, + 0xB257, 0x7781, 0xB258, 0x7782, 0xB259, 0x7783, 0xB25A, 0x7786, 0xB25B, 0x7787, 0xB25C, 0x7788, 0xB25D, 0x7789, 0xB25E, 0x778A, + 0xB25F, 0x778B, 0xB260, 0x778F, 0xB261, 0x7790, 0xB262, 0x7793, 0xB263, 0x7794, 0xB264, 0x7795, 0xB265, 0x7796, 0xB266, 0x7797, + 0xB267, 0x7798, 0xB268, 0x7799, 0xB269, 0x779A, 0xB26A, 0x779B, 0xB26B, 0x779C, 0xB26C, 0x779D, 0xB26D, 0x779E, 0xB26E, 0x77A1, + 0xB26F, 0x77A3, 0xB270, 0x77A4, 0xB271, 0x77A6, 0xB272, 0x77A8, 0xB273, 0x77AB, 0xB274, 0x77AD, 0xB275, 0x77AE, 0xB276, 0x77AF, + 0xB277, 0x77B1, 0xB278, 0x77B2, 0xB279, 0x77B4, 0xB27A, 0x77B6, 0xB27B, 0x77B7, 0xB27C, 0x77B8, 0xB27D, 0x77B9, 0xB27E, 0x77BA, + 0xB280, 0x77BC, 0xB281, 0x77BE, 0xB282, 0x77C0, 0xB283, 0x77C1, 0xB284, 0x77C2, 0xB285, 0x77C3, 0xB286, 0x77C4, 0xB287, 0x77C5, + 0xB288, 0x77C6, 0xB289, 0x77C7, 0xB28A, 0x77C8, 0xB28B, 0x77C9, 0xB28C, 0x77CA, 0xB28D, 0x77CB, 0xB28E, 0x77CC, 0xB28F, 0x77CE, + 0xB290, 0x77CF, 0xB291, 0x77D0, 0xB292, 0x77D1, 0xB293, 0x77D2, 0xB294, 0x77D3, 0xB295, 0x77D4, 0xB296, 0x77D5, 0xB297, 0x77D6, + 0xB298, 0x77D8, 0xB299, 0x77D9, 0xB29A, 0x77DA, 0xB29B, 0x77DD, 0xB29C, 0x77DE, 0xB29D, 0x77DF, 0xB29E, 0x77E0, 0xB29F, 0x77E1, + 0xB2A0, 0x77E4, 0xB2A1, 0x75C5, 0xB2A2, 0x5E76, 0xB2A3, 0x73BB, 0xB2A4, 0x83E0, 0xB2A5, 0x64AD, 0xB2A6, 0x62E8, 0xB2A7, 0x94B5, + 0xB2A8, 0x6CE2, 0xB2A9, 0x535A, 0xB2AA, 0x52C3, 0xB2AB, 0x640F, 0xB2AC, 0x94C2, 0xB2AD, 0x7B94, 0xB2AE, 0x4F2F, 0xB2AF, 0x5E1B, + 0xB2B0, 0x8236, 0xB2B1, 0x8116, 0xB2B2, 0x818A, 0xB2B3, 0x6E24, 0xB2B4, 0x6CCA, 0xB2B5, 0x9A73, 0xB2B6, 0x6355, 0xB2B7, 0x535C, + 0xB2B8, 0x54FA, 0xB2B9, 0x8865, 0xB2BA, 0x57E0, 0xB2BB, 0x4E0D, 0xB2BC, 0x5E03, 0xB2BD, 0x6B65, 0xB2BE, 0x7C3F, 0xB2BF, 0x90E8, + 0xB2C0, 0x6016, 0xB2C1, 0x64E6, 0xB2C2, 0x731C, 0xB2C3, 0x88C1, 0xB2C4, 0x6750, 0xB2C5, 0x624D, 0xB2C6, 0x8D22, 0xB2C7, 0x776C, + 0xB2C8, 0x8E29, 0xB2C9, 0x91C7, 0xB2CA, 0x5F69, 0xB2CB, 0x83DC, 0xB2CC, 0x8521, 0xB2CD, 0x9910, 0xB2CE, 0x53C2, 0xB2CF, 0x8695, + 0xB2D0, 0x6B8B, 0xB2D1, 0x60ED, 0xB2D2, 0x60E8, 0xB2D3, 0x707F, 0xB2D4, 0x82CD, 0xB2D5, 0x8231, 0xB2D6, 0x4ED3, 0xB2D7, 0x6CA7, + 0xB2D8, 0x85CF, 0xB2D9, 0x64CD, 0xB2DA, 0x7CD9, 0xB2DB, 0x69FD, 0xB2DC, 0x66F9, 0xB2DD, 0x8349, 0xB2DE, 0x5395, 0xB2DF, 0x7B56, + 0xB2E0, 0x4FA7, 0xB2E1, 0x518C, 0xB2E2, 0x6D4B, 0xB2E3, 0x5C42, 0xB2E4, 0x8E6D, 0xB2E5, 0x63D2, 0xB2E6, 0x53C9, 0xB2E7, 0x832C, + 0xB2E8, 0x8336, 0xB2E9, 0x67E5, 0xB2EA, 0x78B4, 0xB2EB, 0x643D, 0xB2EC, 0x5BDF, 0xB2ED, 0x5C94, 0xB2EE, 0x5DEE, 0xB2EF, 0x8BE7, + 0xB2F0, 0x62C6, 0xB2F1, 0x67F4, 0xB2F2, 0x8C7A, 0xB2F3, 0x6400, 0xB2F4, 0x63BA, 0xB2F5, 0x8749, 0xB2F6, 0x998B, 0xB2F7, 0x8C17, + 0xB2F8, 0x7F20, 0xB2F9, 0x94F2, 0xB2FA, 0x4EA7, 0xB2FB, 0x9610, 0xB2FC, 0x98A4, 0xB2FD, 0x660C, 0xB2FE, 0x7316, 0xB340, 0x77E6, + 0xB341, 0x77E8, 0xB342, 0x77EA, 0xB343, 0x77EF, 0xB344, 0x77F0, 0xB345, 0x77F1, 0xB346, 0x77F2, 0xB347, 0x77F4, 0xB348, 0x77F5, + 0xB349, 0x77F7, 0xB34A, 0x77F9, 0xB34B, 0x77FA, 0xB34C, 0x77FB, 0xB34D, 0x77FC, 0xB34E, 0x7803, 0xB34F, 0x7804, 0xB350, 0x7805, + 0xB351, 0x7806, 0xB352, 0x7807, 0xB353, 0x7808, 0xB354, 0x780A, 0xB355, 0x780B, 0xB356, 0x780E, 0xB357, 0x780F, 0xB358, 0x7810, + 0xB359, 0x7813, 0xB35A, 0x7815, 0xB35B, 0x7819, 0xB35C, 0x781B, 0xB35D, 0x781E, 0xB35E, 0x7820, 0xB35F, 0x7821, 0xB360, 0x7822, + 0xB361, 0x7824, 0xB362, 0x7828, 0xB363, 0x782A, 0xB364, 0x782B, 0xB365, 0x782E, 0xB366, 0x782F, 0xB367, 0x7831, 0xB368, 0x7832, + 0xB369, 0x7833, 0xB36A, 0x7835, 0xB36B, 0x7836, 0xB36C, 0x783D, 0xB36D, 0x783F, 0xB36E, 0x7841, 0xB36F, 0x7842, 0xB370, 0x7843, + 0xB371, 0x7844, 0xB372, 0x7846, 0xB373, 0x7848, 0xB374, 0x7849, 0xB375, 0x784A, 0xB376, 0x784B, 0xB377, 0x784D, 0xB378, 0x784F, + 0xB379, 0x7851, 0xB37A, 0x7853, 0xB37B, 0x7854, 0xB37C, 0x7858, 0xB37D, 0x7859, 0xB37E, 0x785A, 0xB380, 0x785B, 0xB381, 0x785C, + 0xB382, 0x785E, 0xB383, 0x785F, 0xB384, 0x7860, 0xB385, 0x7861, 0xB386, 0x7862, 0xB387, 0x7863, 0xB388, 0x7864, 0xB389, 0x7865, + 0xB38A, 0x7866, 0xB38B, 0x7867, 0xB38C, 0x7868, 0xB38D, 0x7869, 0xB38E, 0x786F, 0xB38F, 0x7870, 0xB390, 0x7871, 0xB391, 0x7872, + 0xB392, 0x7873, 0xB393, 0x7874, 0xB394, 0x7875, 0xB395, 0x7876, 0xB396, 0x7878, 0xB397, 0x7879, 0xB398, 0x787A, 0xB399, 0x787B, + 0xB39A, 0x787D, 0xB39B, 0x787E, 0xB39C, 0x787F, 0xB39D, 0x7880, 0xB39E, 0x7881, 0xB39F, 0x7882, 0xB3A0, 0x7883, 0xB3A1, 0x573A, + 0xB3A2, 0x5C1D, 0xB3A3, 0x5E38, 0xB3A4, 0x957F, 0xB3A5, 0x507F, 0xB3A6, 0x80A0, 0xB3A7, 0x5382, 0xB3A8, 0x655E, 0xB3A9, 0x7545, + 0xB3AA, 0x5531, 0xB3AB, 0x5021, 0xB3AC, 0x8D85, 0xB3AD, 0x6284, 0xB3AE, 0x949E, 0xB3AF, 0x671D, 0xB3B0, 0x5632, 0xB3B1, 0x6F6E, + 0xB3B2, 0x5DE2, 0xB3B3, 0x5435, 0xB3B4, 0x7092, 0xB3B5, 0x8F66, 0xB3B6, 0x626F, 0xB3B7, 0x64A4, 0xB3B8, 0x63A3, 0xB3B9, 0x5F7B, + 0xB3BA, 0x6F88, 0xB3BB, 0x90F4, 0xB3BC, 0x81E3, 0xB3BD, 0x8FB0, 0xB3BE, 0x5C18, 0xB3BF, 0x6668, 0xB3C0, 0x5FF1, 0xB3C1, 0x6C89, + 0xB3C2, 0x9648, 0xB3C3, 0x8D81, 0xB3C4, 0x886C, 0xB3C5, 0x6491, 0xB3C6, 0x79F0, 0xB3C7, 0x57CE, 0xB3C8, 0x6A59, 0xB3C9, 0x6210, + 0xB3CA, 0x5448, 0xB3CB, 0x4E58, 0xB3CC, 0x7A0B, 0xB3CD, 0x60E9, 0xB3CE, 0x6F84, 0xB3CF, 0x8BDA, 0xB3D0, 0x627F, 0xB3D1, 0x901E, + 0xB3D2, 0x9A8B, 0xB3D3, 0x79E4, 0xB3D4, 0x5403, 0xB3D5, 0x75F4, 0xB3D6, 0x6301, 0xB3D7, 0x5319, 0xB3D8, 0x6C60, 0xB3D9, 0x8FDF, + 0xB3DA, 0x5F1B, 0xB3DB, 0x9A70, 0xB3DC, 0x803B, 0xB3DD, 0x9F7F, 0xB3DE, 0x4F88, 0xB3DF, 0x5C3A, 0xB3E0, 0x8D64, 0xB3E1, 0x7FC5, + 0xB3E2, 0x65A5, 0xB3E3, 0x70BD, 0xB3E4, 0x5145, 0xB3E5, 0x51B2, 0xB3E6, 0x866B, 0xB3E7, 0x5D07, 0xB3E8, 0x5BA0, 0xB3E9, 0x62BD, + 0xB3EA, 0x916C, 0xB3EB, 0x7574, 0xB3EC, 0x8E0C, 0xB3ED, 0x7A20, 0xB3EE, 0x6101, 0xB3EF, 0x7B79, 0xB3F0, 0x4EC7, 0xB3F1, 0x7EF8, + 0xB3F2, 0x7785, 0xB3F3, 0x4E11, 0xB3F4, 0x81ED, 0xB3F5, 0x521D, 0xB3F6, 0x51FA, 0xB3F7, 0x6A71, 0xB3F8, 0x53A8, 0xB3F9, 0x8E87, + 0xB3FA, 0x9504, 0xB3FB, 0x96CF, 0xB3FC, 0x6EC1, 0xB3FD, 0x9664, 0xB3FE, 0x695A, 0xB440, 0x7884, 0xB441, 0x7885, 0xB442, 0x7886, + 0xB443, 0x7888, 0xB444, 0x788A, 0xB445, 0x788B, 0xB446, 0x788F, 0xB447, 0x7890, 0xB448, 0x7892, 0xB449, 0x7894, 0xB44A, 0x7895, + 0xB44B, 0x7896, 0xB44C, 0x7899, 0xB44D, 0x789D, 0xB44E, 0x789E, 0xB44F, 0x78A0, 0xB450, 0x78A2, 0xB451, 0x78A4, 0xB452, 0x78A6, + 0xB453, 0x78A8, 0xB454, 0x78A9, 0xB455, 0x78AA, 0xB456, 0x78AB, 0xB457, 0x78AC, 0xB458, 0x78AD, 0xB459, 0x78AE, 0xB45A, 0x78AF, + 0xB45B, 0x78B5, 0xB45C, 0x78B6, 0xB45D, 0x78B7, 0xB45E, 0x78B8, 0xB45F, 0x78BA, 0xB460, 0x78BB, 0xB461, 0x78BC, 0xB462, 0x78BD, + 0xB463, 0x78BF, 0xB464, 0x78C0, 0xB465, 0x78C2, 0xB466, 0x78C3, 0xB467, 0x78C4, 0xB468, 0x78C6, 0xB469, 0x78C7, 0xB46A, 0x78C8, + 0xB46B, 0x78CC, 0xB46C, 0x78CD, 0xB46D, 0x78CE, 0xB46E, 0x78CF, 0xB46F, 0x78D1, 0xB470, 0x78D2, 0xB471, 0x78D3, 0xB472, 0x78D6, + 0xB473, 0x78D7, 0xB474, 0x78D8, 0xB475, 0x78DA, 0xB476, 0x78DB, 0xB477, 0x78DC, 0xB478, 0x78DD, 0xB479, 0x78DE, 0xB47A, 0x78DF, + 0xB47B, 0x78E0, 0xB47C, 0x78E1, 0xB47D, 0x78E2, 0xB47E, 0x78E3, 0xB480, 0x78E4, 0xB481, 0x78E5, 0xB482, 0x78E6, 0xB483, 0x78E7, + 0xB484, 0x78E9, 0xB485, 0x78EA, 0xB486, 0x78EB, 0xB487, 0x78ED, 0xB488, 0x78EE, 0xB489, 0x78EF, 0xB48A, 0x78F0, 0xB48B, 0x78F1, + 0xB48C, 0x78F3, 0xB48D, 0x78F5, 0xB48E, 0x78F6, 0xB48F, 0x78F8, 0xB490, 0x78F9, 0xB491, 0x78FB, 0xB492, 0x78FC, 0xB493, 0x78FD, + 0xB494, 0x78FE, 0xB495, 0x78FF, 0xB496, 0x7900, 0xB497, 0x7902, 0xB498, 0x7903, 0xB499, 0x7904, 0xB49A, 0x7906, 0xB49B, 0x7907, + 0xB49C, 0x7908, 0xB49D, 0x7909, 0xB49E, 0x790A, 0xB49F, 0x790B, 0xB4A0, 0x790C, 0xB4A1, 0x7840, 0xB4A2, 0x50A8, 0xB4A3, 0x77D7, + 0xB4A4, 0x6410, 0xB4A5, 0x89E6, 0xB4A6, 0x5904, 0xB4A7, 0x63E3, 0xB4A8, 0x5DDD, 0xB4A9, 0x7A7F, 0xB4AA, 0x693D, 0xB4AB, 0x4F20, + 0xB4AC, 0x8239, 0xB4AD, 0x5598, 0xB4AE, 0x4E32, 0xB4AF, 0x75AE, 0xB4B0, 0x7A97, 0xB4B1, 0x5E62, 0xB4B2, 0x5E8A, 0xB4B3, 0x95EF, + 0xB4B4, 0x521B, 0xB4B5, 0x5439, 0xB4B6, 0x708A, 0xB4B7, 0x6376, 0xB4B8, 0x9524, 0xB4B9, 0x5782, 0xB4BA, 0x6625, 0xB4BB, 0x693F, + 0xB4BC, 0x9187, 0xB4BD, 0x5507, 0xB4BE, 0x6DF3, 0xB4BF, 0x7EAF, 0xB4C0, 0x8822, 0xB4C1, 0x6233, 0xB4C2, 0x7EF0, 0xB4C3, 0x75B5, + 0xB4C4, 0x8328, 0xB4C5, 0x78C1, 0xB4C6, 0x96CC, 0xB4C7, 0x8F9E, 0xB4C8, 0x6148, 0xB4C9, 0x74F7, 0xB4CA, 0x8BCD, 0xB4CB, 0x6B64, + 0xB4CC, 0x523A, 0xB4CD, 0x8D50, 0xB4CE, 0x6B21, 0xB4CF, 0x806A, 0xB4D0, 0x8471, 0xB4D1, 0x56F1, 0xB4D2, 0x5306, 0xB4D3, 0x4ECE, + 0xB4D4, 0x4E1B, 0xB4D5, 0x51D1, 0xB4D6, 0x7C97, 0xB4D7, 0x918B, 0xB4D8, 0x7C07, 0xB4D9, 0x4FC3, 0xB4DA, 0x8E7F, 0xB4DB, 0x7BE1, + 0xB4DC, 0x7A9C, 0xB4DD, 0x6467, 0xB4DE, 0x5D14, 0xB4DF, 0x50AC, 0xB4E0, 0x8106, 0xB4E1, 0x7601, 0xB4E2, 0x7CB9, 0xB4E3, 0x6DEC, + 0xB4E4, 0x7FE0, 0xB4E5, 0x6751, 0xB4E6, 0x5B58, 0xB4E7, 0x5BF8, 0xB4E8, 0x78CB, 0xB4E9, 0x64AE, 0xB4EA, 0x6413, 0xB4EB, 0x63AA, + 0xB4EC, 0x632B, 0xB4ED, 0x9519, 0xB4EE, 0x642D, 0xB4EF, 0x8FBE, 0xB4F0, 0x7B54, 0xB4F1, 0x7629, 0xB4F2, 0x6253, 0xB4F3, 0x5927, + 0xB4F4, 0x5446, 0xB4F5, 0x6B79, 0xB4F6, 0x50A3, 0xB4F7, 0x6234, 0xB4F8, 0x5E26, 0xB4F9, 0x6B86, 0xB4FA, 0x4EE3, 0xB4FB, 0x8D37, + 0xB4FC, 0x888B, 0xB4FD, 0x5F85, 0xB4FE, 0x902E, 0xB540, 0x790D, 0xB541, 0x790E, 0xB542, 0x790F, 0xB543, 0x7910, 0xB544, 0x7911, + 0xB545, 0x7912, 0xB546, 0x7914, 0xB547, 0x7915, 0xB548, 0x7916, 0xB549, 0x7917, 0xB54A, 0x7918, 0xB54B, 0x7919, 0xB54C, 0x791A, + 0xB54D, 0x791B, 0xB54E, 0x791C, 0xB54F, 0x791D, 0xB550, 0x791F, 0xB551, 0x7920, 0xB552, 0x7921, 0xB553, 0x7922, 0xB554, 0x7923, + 0xB555, 0x7925, 0xB556, 0x7926, 0xB557, 0x7927, 0xB558, 0x7928, 0xB559, 0x7929, 0xB55A, 0x792A, 0xB55B, 0x792B, 0xB55C, 0x792C, + 0xB55D, 0x792D, 0xB55E, 0x792E, 0xB55F, 0x792F, 0xB560, 0x7930, 0xB561, 0x7931, 0xB562, 0x7932, 0xB563, 0x7933, 0xB564, 0x7935, + 0xB565, 0x7936, 0xB566, 0x7937, 0xB567, 0x7938, 0xB568, 0x7939, 0xB569, 0x793D, 0xB56A, 0x793F, 0xB56B, 0x7942, 0xB56C, 0x7943, + 0xB56D, 0x7944, 0xB56E, 0x7945, 0xB56F, 0x7947, 0xB570, 0x794A, 0xB571, 0x794B, 0xB572, 0x794C, 0xB573, 0x794D, 0xB574, 0x794E, + 0xB575, 0x794F, 0xB576, 0x7950, 0xB577, 0x7951, 0xB578, 0x7952, 0xB579, 0x7954, 0xB57A, 0x7955, 0xB57B, 0x7958, 0xB57C, 0x7959, + 0xB57D, 0x7961, 0xB57E, 0x7963, 0xB580, 0x7964, 0xB581, 0x7966, 0xB582, 0x7969, 0xB583, 0x796A, 0xB584, 0x796B, 0xB585, 0x796C, + 0xB586, 0x796E, 0xB587, 0x7970, 0xB588, 0x7971, 0xB589, 0x7972, 0xB58A, 0x7973, 0xB58B, 0x7974, 0xB58C, 0x7975, 0xB58D, 0x7976, + 0xB58E, 0x7979, 0xB58F, 0x797B, 0xB590, 0x797C, 0xB591, 0x797D, 0xB592, 0x797E, 0xB593, 0x797F, 0xB594, 0x7982, 0xB595, 0x7983, + 0xB596, 0x7986, 0xB597, 0x7987, 0xB598, 0x7988, 0xB599, 0x7989, 0xB59A, 0x798B, 0xB59B, 0x798C, 0xB59C, 0x798D, 0xB59D, 0x798E, + 0xB59E, 0x7990, 0xB59F, 0x7991, 0xB5A0, 0x7992, 0xB5A1, 0x6020, 0xB5A2, 0x803D, 0xB5A3, 0x62C5, 0xB5A4, 0x4E39, 0xB5A5, 0x5355, + 0xB5A6, 0x90F8, 0xB5A7, 0x63B8, 0xB5A8, 0x80C6, 0xB5A9, 0x65E6, 0xB5AA, 0x6C2E, 0xB5AB, 0x4F46, 0xB5AC, 0x60EE, 0xB5AD, 0x6DE1, + 0xB5AE, 0x8BDE, 0xB5AF, 0x5F39, 0xB5B0, 0x86CB, 0xB5B1, 0x5F53, 0xB5B2, 0x6321, 0xB5B3, 0x515A, 0xB5B4, 0x8361, 0xB5B5, 0x6863, + 0xB5B6, 0x5200, 0xB5B7, 0x6363, 0xB5B8, 0x8E48, 0xB5B9, 0x5012, 0xB5BA, 0x5C9B, 0xB5BB, 0x7977, 0xB5BC, 0x5BFC, 0xB5BD, 0x5230, + 0xB5BE, 0x7A3B, 0xB5BF, 0x60BC, 0xB5C0, 0x9053, 0xB5C1, 0x76D7, 0xB5C2, 0x5FB7, 0xB5C3, 0x5F97, 0xB5C4, 0x7684, 0xB5C5, 0x8E6C, + 0xB5C6, 0x706F, 0xB5C7, 0x767B, 0xB5C8, 0x7B49, 0xB5C9, 0x77AA, 0xB5CA, 0x51F3, 0xB5CB, 0x9093, 0xB5CC, 0x5824, 0xB5CD, 0x4F4E, + 0xB5CE, 0x6EF4, 0xB5CF, 0x8FEA, 0xB5D0, 0x654C, 0xB5D1, 0x7B1B, 0xB5D2, 0x72C4, 0xB5D3, 0x6DA4, 0xB5D4, 0x7FDF, 0xB5D5, 0x5AE1, + 0xB5D6, 0x62B5, 0xB5D7, 0x5E95, 0xB5D8, 0x5730, 0xB5D9, 0x8482, 0xB5DA, 0x7B2C, 0xB5DB, 0x5E1D, 0xB5DC, 0x5F1F, 0xB5DD, 0x9012, + 0xB5DE, 0x7F14, 0xB5DF, 0x98A0, 0xB5E0, 0x6382, 0xB5E1, 0x6EC7, 0xB5E2, 0x7898, 0xB5E3, 0x70B9, 0xB5E4, 0x5178, 0xB5E5, 0x975B, + 0xB5E6, 0x57AB, 0xB5E7, 0x7535, 0xB5E8, 0x4F43, 0xB5E9, 0x7538, 0xB5EA, 0x5E97, 0xB5EB, 0x60E6, 0xB5EC, 0x5960, 0xB5ED, 0x6DC0, + 0xB5EE, 0x6BBF, 0xB5EF, 0x7889, 0xB5F0, 0x53FC, 0xB5F1, 0x96D5, 0xB5F2, 0x51CB, 0xB5F3, 0x5201, 0xB5F4, 0x6389, 0xB5F5, 0x540A, + 0xB5F6, 0x9493, 0xB5F7, 0x8C03, 0xB5F8, 0x8DCC, 0xB5F9, 0x7239, 0xB5FA, 0x789F, 0xB5FB, 0x8776, 0xB5FC, 0x8FED, 0xB5FD, 0x8C0D, + 0xB5FE, 0x53E0, 0xB640, 0x7993, 0xB641, 0x7994, 0xB642, 0x7995, 0xB643, 0x7996, 0xB644, 0x7997, 0xB645, 0x7998, 0xB646, 0x7999, + 0xB647, 0x799B, 0xB648, 0x799C, 0xB649, 0x799D, 0xB64A, 0x799E, 0xB64B, 0x799F, 0xB64C, 0x79A0, 0xB64D, 0x79A1, 0xB64E, 0x79A2, + 0xB64F, 0x79A3, 0xB650, 0x79A4, 0xB651, 0x79A5, 0xB652, 0x79A6, 0xB653, 0x79A8, 0xB654, 0x79A9, 0xB655, 0x79AA, 0xB656, 0x79AB, + 0xB657, 0x79AC, 0xB658, 0x79AD, 0xB659, 0x79AE, 0xB65A, 0x79AF, 0xB65B, 0x79B0, 0xB65C, 0x79B1, 0xB65D, 0x79B2, 0xB65E, 0x79B4, + 0xB65F, 0x79B5, 0xB660, 0x79B6, 0xB661, 0x79B7, 0xB662, 0x79B8, 0xB663, 0x79BC, 0xB664, 0x79BF, 0xB665, 0x79C2, 0xB666, 0x79C4, + 0xB667, 0x79C5, 0xB668, 0x79C7, 0xB669, 0x79C8, 0xB66A, 0x79CA, 0xB66B, 0x79CC, 0xB66C, 0x79CE, 0xB66D, 0x79CF, 0xB66E, 0x79D0, + 0xB66F, 0x79D3, 0xB670, 0x79D4, 0xB671, 0x79D6, 0xB672, 0x79D7, 0xB673, 0x79D9, 0xB674, 0x79DA, 0xB675, 0x79DB, 0xB676, 0x79DC, + 0xB677, 0x79DD, 0xB678, 0x79DE, 0xB679, 0x79E0, 0xB67A, 0x79E1, 0xB67B, 0x79E2, 0xB67C, 0x79E5, 0xB67D, 0x79E8, 0xB67E, 0x79EA, + 0xB680, 0x79EC, 0xB681, 0x79EE, 0xB682, 0x79F1, 0xB683, 0x79F2, 0xB684, 0x79F3, 0xB685, 0x79F4, 0xB686, 0x79F5, 0xB687, 0x79F6, + 0xB688, 0x79F7, 0xB689, 0x79F9, 0xB68A, 0x79FA, 0xB68B, 0x79FC, 0xB68C, 0x79FE, 0xB68D, 0x79FF, 0xB68E, 0x7A01, 0xB68F, 0x7A04, + 0xB690, 0x7A05, 0xB691, 0x7A07, 0xB692, 0x7A08, 0xB693, 0x7A09, 0xB694, 0x7A0A, 0xB695, 0x7A0C, 0xB696, 0x7A0F, 0xB697, 0x7A10, + 0xB698, 0x7A11, 0xB699, 0x7A12, 0xB69A, 0x7A13, 0xB69B, 0x7A15, 0xB69C, 0x7A16, 0xB69D, 0x7A18, 0xB69E, 0x7A19, 0xB69F, 0x7A1B, + 0xB6A0, 0x7A1C, 0xB6A1, 0x4E01, 0xB6A2, 0x76EF, 0xB6A3, 0x53EE, 0xB6A4, 0x9489, 0xB6A5, 0x9876, 0xB6A6, 0x9F0E, 0xB6A7, 0x952D, + 0xB6A8, 0x5B9A, 0xB6A9, 0x8BA2, 0xB6AA, 0x4E22, 0xB6AB, 0x4E1C, 0xB6AC, 0x51AC, 0xB6AD, 0x8463, 0xB6AE, 0x61C2, 0xB6AF, 0x52A8, + 0xB6B0, 0x680B, 0xB6B1, 0x4F97, 0xB6B2, 0x606B, 0xB6B3, 0x51BB, 0xB6B4, 0x6D1E, 0xB6B5, 0x515C, 0xB6B6, 0x6296, 0xB6B7, 0x6597, + 0xB6B8, 0x9661, 0xB6B9, 0x8C46, 0xB6BA, 0x9017, 0xB6BB, 0x75D8, 0xB6BC, 0x90FD, 0xB6BD, 0x7763, 0xB6BE, 0x6BD2, 0xB6BF, 0x728A, + 0xB6C0, 0x72EC, 0xB6C1, 0x8BFB, 0xB6C2, 0x5835, 0xB6C3, 0x7779, 0xB6C4, 0x8D4C, 0xB6C5, 0x675C, 0xB6C6, 0x9540, 0xB6C7, 0x809A, + 0xB6C8, 0x5EA6, 0xB6C9, 0x6E21, 0xB6CA, 0x5992, 0xB6CB, 0x7AEF, 0xB6CC, 0x77ED, 0xB6CD, 0x953B, 0xB6CE, 0x6BB5, 0xB6CF, 0x65AD, + 0xB6D0, 0x7F0E, 0xB6D1, 0x5806, 0xB6D2, 0x5151, 0xB6D3, 0x961F, 0xB6D4, 0x5BF9, 0xB6D5, 0x58A9, 0xB6D6, 0x5428, 0xB6D7, 0x8E72, + 0xB6D8, 0x6566, 0xB6D9, 0x987F, 0xB6DA, 0x56E4, 0xB6DB, 0x949D, 0xB6DC, 0x76FE, 0xB6DD, 0x9041, 0xB6DE, 0x6387, 0xB6DF, 0x54C6, + 0xB6E0, 0x591A, 0xB6E1, 0x593A, 0xB6E2, 0x579B, 0xB6E3, 0x8EB2, 0xB6E4, 0x6735, 0xB6E5, 0x8DFA, 0xB6E6, 0x8235, 0xB6E7, 0x5241, + 0xB6E8, 0x60F0, 0xB6E9, 0x5815, 0xB6EA, 0x86FE, 0xB6EB, 0x5CE8, 0xB6EC, 0x9E45, 0xB6ED, 0x4FC4, 0xB6EE, 0x989D, 0xB6EF, 0x8BB9, + 0xB6F0, 0x5A25, 0xB6F1, 0x6076, 0xB6F2, 0x5384, 0xB6F3, 0x627C, 0xB6F4, 0x904F, 0xB6F5, 0x9102, 0xB6F6, 0x997F, 0xB6F7, 0x6069, + 0xB6F8, 0x800C, 0xB6F9, 0x513F, 0xB6FA, 0x8033, 0xB6FB, 0x5C14, 0xB6FC, 0x9975, 0xB6FD, 0x6D31, 0xB6FE, 0x4E8C, 0xB740, 0x7A1D, + 0xB741, 0x7A1F, 0xB742, 0x7A21, 0xB743, 0x7A22, 0xB744, 0x7A24, 0xB745, 0x7A25, 0xB746, 0x7A26, 0xB747, 0x7A27, 0xB748, 0x7A28, + 0xB749, 0x7A29, 0xB74A, 0x7A2A, 0xB74B, 0x7A2B, 0xB74C, 0x7A2C, 0xB74D, 0x7A2D, 0xB74E, 0x7A2E, 0xB74F, 0x7A2F, 0xB750, 0x7A30, + 0xB751, 0x7A31, 0xB752, 0x7A32, 0xB753, 0x7A34, 0xB754, 0x7A35, 0xB755, 0x7A36, 0xB756, 0x7A38, 0xB757, 0x7A3A, 0xB758, 0x7A3E, + 0xB759, 0x7A40, 0xB75A, 0x7A41, 0xB75B, 0x7A42, 0xB75C, 0x7A43, 0xB75D, 0x7A44, 0xB75E, 0x7A45, 0xB75F, 0x7A47, 0xB760, 0x7A48, + 0xB761, 0x7A49, 0xB762, 0x7A4A, 0xB763, 0x7A4B, 0xB764, 0x7A4C, 0xB765, 0x7A4D, 0xB766, 0x7A4E, 0xB767, 0x7A4F, 0xB768, 0x7A50, + 0xB769, 0x7A52, 0xB76A, 0x7A53, 0xB76B, 0x7A54, 0xB76C, 0x7A55, 0xB76D, 0x7A56, 0xB76E, 0x7A58, 0xB76F, 0x7A59, 0xB770, 0x7A5A, + 0xB771, 0x7A5B, 0xB772, 0x7A5C, 0xB773, 0x7A5D, 0xB774, 0x7A5E, 0xB775, 0x7A5F, 0xB776, 0x7A60, 0xB777, 0x7A61, 0xB778, 0x7A62, + 0xB779, 0x7A63, 0xB77A, 0x7A64, 0xB77B, 0x7A65, 0xB77C, 0x7A66, 0xB77D, 0x7A67, 0xB77E, 0x7A68, 0xB780, 0x7A69, 0xB781, 0x7A6A, + 0xB782, 0x7A6B, 0xB783, 0x7A6C, 0xB784, 0x7A6D, 0xB785, 0x7A6E, 0xB786, 0x7A6F, 0xB787, 0x7A71, 0xB788, 0x7A72, 0xB789, 0x7A73, + 0xB78A, 0x7A75, 0xB78B, 0x7A7B, 0xB78C, 0x7A7C, 0xB78D, 0x7A7D, 0xB78E, 0x7A7E, 0xB78F, 0x7A82, 0xB790, 0x7A85, 0xB791, 0x7A87, + 0xB792, 0x7A89, 0xB793, 0x7A8A, 0xB794, 0x7A8B, 0xB795, 0x7A8C, 0xB796, 0x7A8E, 0xB797, 0x7A8F, 0xB798, 0x7A90, 0xB799, 0x7A93, + 0xB79A, 0x7A94, 0xB79B, 0x7A99, 0xB79C, 0x7A9A, 0xB79D, 0x7A9B, 0xB79E, 0x7A9E, 0xB79F, 0x7AA1, 0xB7A0, 0x7AA2, 0xB7A1, 0x8D30, + 0xB7A2, 0x53D1, 0xB7A3, 0x7F5A, 0xB7A4, 0x7B4F, 0xB7A5, 0x4F10, 0xB7A6, 0x4E4F, 0xB7A7, 0x9600, 0xB7A8, 0x6CD5, 0xB7A9, 0x73D0, + 0xB7AA, 0x85E9, 0xB7AB, 0x5E06, 0xB7AC, 0x756A, 0xB7AD, 0x7FFB, 0xB7AE, 0x6A0A, 0xB7AF, 0x77FE, 0xB7B0, 0x9492, 0xB7B1, 0x7E41, + 0xB7B2, 0x51E1, 0xB7B3, 0x70E6, 0xB7B4, 0x53CD, 0xB7B5, 0x8FD4, 0xB7B6, 0x8303, 0xB7B7, 0x8D29, 0xB7B8, 0x72AF, 0xB7B9, 0x996D, + 0xB7BA, 0x6CDB, 0xB7BB, 0x574A, 0xB7BC, 0x82B3, 0xB7BD, 0x65B9, 0xB7BE, 0x80AA, 0xB7BF, 0x623F, 0xB7C0, 0x9632, 0xB7C1, 0x59A8, + 0xB7C2, 0x4EFF, 0xB7C3, 0x8BBF, 0xB7C4, 0x7EBA, 0xB7C5, 0x653E, 0xB7C6, 0x83F2, 0xB7C7, 0x975E, 0xB7C8, 0x5561, 0xB7C9, 0x98DE, + 0xB7CA, 0x80A5, 0xB7CB, 0x532A, 0xB7CC, 0x8BFD, 0xB7CD, 0x5420, 0xB7CE, 0x80BA, 0xB7CF, 0x5E9F, 0xB7D0, 0x6CB8, 0xB7D1, 0x8D39, + 0xB7D2, 0x82AC, 0xB7D3, 0x915A, 0xB7D4, 0x5429, 0xB7D5, 0x6C1B, 0xB7D6, 0x5206, 0xB7D7, 0x7EB7, 0xB7D8, 0x575F, 0xB7D9, 0x711A, + 0xB7DA, 0x6C7E, 0xB7DB, 0x7C89, 0xB7DC, 0x594B, 0xB7DD, 0x4EFD, 0xB7DE, 0x5FFF, 0xB7DF, 0x6124, 0xB7E0, 0x7CAA, 0xB7E1, 0x4E30, + 0xB7E2, 0x5C01, 0xB7E3, 0x67AB, 0xB7E4, 0x8702, 0xB7E5, 0x5CF0, 0xB7E6, 0x950B, 0xB7E7, 0x98CE, 0xB7E8, 0x75AF, 0xB7E9, 0x70FD, + 0xB7EA, 0x9022, 0xB7EB, 0x51AF, 0xB7EC, 0x7F1D, 0xB7ED, 0x8BBD, 0xB7EE, 0x5949, 0xB7EF, 0x51E4, 0xB7F0, 0x4F5B, 0xB7F1, 0x5426, + 0xB7F2, 0x592B, 0xB7F3, 0x6577, 0xB7F4, 0x80A4, 0xB7F5, 0x5B75, 0xB7F6, 0x6276, 0xB7F7, 0x62C2, 0xB7F8, 0x8F90, 0xB7F9, 0x5E45, + 0xB7FA, 0x6C1F, 0xB7FB, 0x7B26, 0xB7FC, 0x4F0F, 0xB7FD, 0x4FD8, 0xB7FE, 0x670D, 0xB840, 0x7AA3, 0xB841, 0x7AA4, 0xB842, 0x7AA7, + 0xB843, 0x7AA9, 0xB844, 0x7AAA, 0xB845, 0x7AAB, 0xB846, 0x7AAE, 0xB847, 0x7AAF, 0xB848, 0x7AB0, 0xB849, 0x7AB1, 0xB84A, 0x7AB2, + 0xB84B, 0x7AB4, 0xB84C, 0x7AB5, 0xB84D, 0x7AB6, 0xB84E, 0x7AB7, 0xB84F, 0x7AB8, 0xB850, 0x7AB9, 0xB851, 0x7ABA, 0xB852, 0x7ABB, + 0xB853, 0x7ABC, 0xB854, 0x7ABD, 0xB855, 0x7ABE, 0xB856, 0x7AC0, 0xB857, 0x7AC1, 0xB858, 0x7AC2, 0xB859, 0x7AC3, 0xB85A, 0x7AC4, + 0xB85B, 0x7AC5, 0xB85C, 0x7AC6, 0xB85D, 0x7AC7, 0xB85E, 0x7AC8, 0xB85F, 0x7AC9, 0xB860, 0x7ACA, 0xB861, 0x7ACC, 0xB862, 0x7ACD, + 0xB863, 0x7ACE, 0xB864, 0x7ACF, 0xB865, 0x7AD0, 0xB866, 0x7AD1, 0xB867, 0x7AD2, 0xB868, 0x7AD3, 0xB869, 0x7AD4, 0xB86A, 0x7AD5, + 0xB86B, 0x7AD7, 0xB86C, 0x7AD8, 0xB86D, 0x7ADA, 0xB86E, 0x7ADB, 0xB86F, 0x7ADC, 0xB870, 0x7ADD, 0xB871, 0x7AE1, 0xB872, 0x7AE2, + 0xB873, 0x7AE4, 0xB874, 0x7AE7, 0xB875, 0x7AE8, 0xB876, 0x7AE9, 0xB877, 0x7AEA, 0xB878, 0x7AEB, 0xB879, 0x7AEC, 0xB87A, 0x7AEE, + 0xB87B, 0x7AF0, 0xB87C, 0x7AF1, 0xB87D, 0x7AF2, 0xB87E, 0x7AF3, 0xB880, 0x7AF4, 0xB881, 0x7AF5, 0xB882, 0x7AF6, 0xB883, 0x7AF7, + 0xB884, 0x7AF8, 0xB885, 0x7AFB, 0xB886, 0x7AFC, 0xB887, 0x7AFE, 0xB888, 0x7B00, 0xB889, 0x7B01, 0xB88A, 0x7B02, 0xB88B, 0x7B05, + 0xB88C, 0x7B07, 0xB88D, 0x7B09, 0xB88E, 0x7B0C, 0xB88F, 0x7B0D, 0xB890, 0x7B0E, 0xB891, 0x7B10, 0xB892, 0x7B12, 0xB893, 0x7B13, + 0xB894, 0x7B16, 0xB895, 0x7B17, 0xB896, 0x7B18, 0xB897, 0x7B1A, 0xB898, 0x7B1C, 0xB899, 0x7B1D, 0xB89A, 0x7B1F, 0xB89B, 0x7B21, + 0xB89C, 0x7B22, 0xB89D, 0x7B23, 0xB89E, 0x7B27, 0xB89F, 0x7B29, 0xB8A0, 0x7B2D, 0xB8A1, 0x6D6E, 0xB8A2, 0x6DAA, 0xB8A3, 0x798F, + 0xB8A4, 0x88B1, 0xB8A5, 0x5F17, 0xB8A6, 0x752B, 0xB8A7, 0x629A, 0xB8A8, 0x8F85, 0xB8A9, 0x4FEF, 0xB8AA, 0x91DC, 0xB8AB, 0x65A7, + 0xB8AC, 0x812F, 0xB8AD, 0x8151, 0xB8AE, 0x5E9C, 0xB8AF, 0x8150, 0xB8B0, 0x8D74, 0xB8B1, 0x526F, 0xB8B2, 0x8986, 0xB8B3, 0x8D4B, + 0xB8B4, 0x590D, 0xB8B5, 0x5085, 0xB8B6, 0x4ED8, 0xB8B7, 0x961C, 0xB8B8, 0x7236, 0xB8B9, 0x8179, 0xB8BA, 0x8D1F, 0xB8BB, 0x5BCC, + 0xB8BC, 0x8BA3, 0xB8BD, 0x9644, 0xB8BE, 0x5987, 0xB8BF, 0x7F1A, 0xB8C0, 0x5490, 0xB8C1, 0x5676, 0xB8C2, 0x560E, 0xB8C3, 0x8BE5, + 0xB8C4, 0x6539, 0xB8C5, 0x6982, 0xB8C6, 0x9499, 0xB8C7, 0x76D6, 0xB8C8, 0x6E89, 0xB8C9, 0x5E72, 0xB8CA, 0x7518, 0xB8CB, 0x6746, + 0xB8CC, 0x67D1, 0xB8CD, 0x7AFF, 0xB8CE, 0x809D, 0xB8CF, 0x8D76, 0xB8D0, 0x611F, 0xB8D1, 0x79C6, 0xB8D2, 0x6562, 0xB8D3, 0x8D63, + 0xB8D4, 0x5188, 0xB8D5, 0x521A, 0xB8D6, 0x94A2, 0xB8D7, 0x7F38, 0xB8D8, 0x809B, 0xB8D9, 0x7EB2, 0xB8DA, 0x5C97, 0xB8DB, 0x6E2F, + 0xB8DC, 0x6760, 0xB8DD, 0x7BD9, 0xB8DE, 0x768B, 0xB8DF, 0x9AD8, 0xB8E0, 0x818F, 0xB8E1, 0x7F94, 0xB8E2, 0x7CD5, 0xB8E3, 0x641E, + 0xB8E4, 0x9550, 0xB8E5, 0x7A3F, 0xB8E6, 0x544A, 0xB8E7, 0x54E5, 0xB8E8, 0x6B4C, 0xB8E9, 0x6401, 0xB8EA, 0x6208, 0xB8EB, 0x9E3D, + 0xB8EC, 0x80F3, 0xB8ED, 0x7599, 0xB8EE, 0x5272, 0xB8EF, 0x9769, 0xB8F0, 0x845B, 0xB8F1, 0x683C, 0xB8F2, 0x86E4, 0xB8F3, 0x9601, + 0xB8F4, 0x9694, 0xB8F5, 0x94EC, 0xB8F6, 0x4E2A, 0xB8F7, 0x5404, 0xB8F8, 0x7ED9, 0xB8F9, 0x6839, 0xB8FA, 0x8DDF, 0xB8FB, 0x8015, + 0xB8FC, 0x66F4, 0xB8FD, 0x5E9A, 0xB8FE, 0x7FB9, 0xB940, 0x7B2F, 0xB941, 0x7B30, 0xB942, 0x7B32, 0xB943, 0x7B34, 0xB944, 0x7B35, + 0xB945, 0x7B36, 0xB946, 0x7B37, 0xB947, 0x7B39, 0xB948, 0x7B3B, 0xB949, 0x7B3D, 0xB94A, 0x7B3F, 0xB94B, 0x7B40, 0xB94C, 0x7B41, + 0xB94D, 0x7B42, 0xB94E, 0x7B43, 0xB94F, 0x7B44, 0xB950, 0x7B46, 0xB951, 0x7B48, 0xB952, 0x7B4A, 0xB953, 0x7B4D, 0xB954, 0x7B4E, + 0xB955, 0x7B53, 0xB956, 0x7B55, 0xB957, 0x7B57, 0xB958, 0x7B59, 0xB959, 0x7B5C, 0xB95A, 0x7B5E, 0xB95B, 0x7B5F, 0xB95C, 0x7B61, + 0xB95D, 0x7B63, 0xB95E, 0x7B64, 0xB95F, 0x7B65, 0xB960, 0x7B66, 0xB961, 0x7B67, 0xB962, 0x7B68, 0xB963, 0x7B69, 0xB964, 0x7B6A, + 0xB965, 0x7B6B, 0xB966, 0x7B6C, 0xB967, 0x7B6D, 0xB968, 0x7B6F, 0xB969, 0x7B70, 0xB96A, 0x7B73, 0xB96B, 0x7B74, 0xB96C, 0x7B76, + 0xB96D, 0x7B78, 0xB96E, 0x7B7A, 0xB96F, 0x7B7C, 0xB970, 0x7B7D, 0xB971, 0x7B7F, 0xB972, 0x7B81, 0xB973, 0x7B82, 0xB974, 0x7B83, + 0xB975, 0x7B84, 0xB976, 0x7B86, 0xB977, 0x7B87, 0xB978, 0x7B88, 0xB979, 0x7B89, 0xB97A, 0x7B8A, 0xB97B, 0x7B8B, 0xB97C, 0x7B8C, + 0xB97D, 0x7B8E, 0xB97E, 0x7B8F, 0xB980, 0x7B91, 0xB981, 0x7B92, 0xB982, 0x7B93, 0xB983, 0x7B96, 0xB984, 0x7B98, 0xB985, 0x7B99, + 0xB986, 0x7B9A, 0xB987, 0x7B9B, 0xB988, 0x7B9E, 0xB989, 0x7B9F, 0xB98A, 0x7BA0, 0xB98B, 0x7BA3, 0xB98C, 0x7BA4, 0xB98D, 0x7BA5, + 0xB98E, 0x7BAE, 0xB98F, 0x7BAF, 0xB990, 0x7BB0, 0xB991, 0x7BB2, 0xB992, 0x7BB3, 0xB993, 0x7BB5, 0xB994, 0x7BB6, 0xB995, 0x7BB7, + 0xB996, 0x7BB9, 0xB997, 0x7BBA, 0xB998, 0x7BBB, 0xB999, 0x7BBC, 0xB99A, 0x7BBD, 0xB99B, 0x7BBE, 0xB99C, 0x7BBF, 0xB99D, 0x7BC0, + 0xB99E, 0x7BC2, 0xB99F, 0x7BC3, 0xB9A0, 0x7BC4, 0xB9A1, 0x57C2, 0xB9A2, 0x803F, 0xB9A3, 0x6897, 0xB9A4, 0x5DE5, 0xB9A5, 0x653B, + 0xB9A6, 0x529F, 0xB9A7, 0x606D, 0xB9A8, 0x9F9A, 0xB9A9, 0x4F9B, 0xB9AA, 0x8EAC, 0xB9AB, 0x516C, 0xB9AC, 0x5BAB, 0xB9AD, 0x5F13, + 0xB9AE, 0x5DE9, 0xB9AF, 0x6C5E, 0xB9B0, 0x62F1, 0xB9B1, 0x8D21, 0xB9B2, 0x5171, 0xB9B3, 0x94A9, 0xB9B4, 0x52FE, 0xB9B5, 0x6C9F, + 0xB9B6, 0x82DF, 0xB9B7, 0x72D7, 0xB9B8, 0x57A2, 0xB9B9, 0x6784, 0xB9BA, 0x8D2D, 0xB9BB, 0x591F, 0xB9BC, 0x8F9C, 0xB9BD, 0x83C7, + 0xB9BE, 0x5495, 0xB9BF, 0x7B8D, 0xB9C0, 0x4F30, 0xB9C1, 0x6CBD, 0xB9C2, 0x5B64, 0xB9C3, 0x59D1, 0xB9C4, 0x9F13, 0xB9C5, 0x53E4, + 0xB9C6, 0x86CA, 0xB9C7, 0x9AA8, 0xB9C8, 0x8C37, 0xB9C9, 0x80A1, 0xB9CA, 0x6545, 0xB9CB, 0x987E, 0xB9CC, 0x56FA, 0xB9CD, 0x96C7, + 0xB9CE, 0x522E, 0xB9CF, 0x74DC, 0xB9D0, 0x5250, 0xB9D1, 0x5BE1, 0xB9D2, 0x6302, 0xB9D3, 0x8902, 0xB9D4, 0x4E56, 0xB9D5, 0x62D0, + 0xB9D6, 0x602A, 0xB9D7, 0x68FA, 0xB9D8, 0x5173, 0xB9D9, 0x5B98, 0xB9DA, 0x51A0, 0xB9DB, 0x89C2, 0xB9DC, 0x7BA1, 0xB9DD, 0x9986, + 0xB9DE, 0x7F50, 0xB9DF, 0x60EF, 0xB9E0, 0x704C, 0xB9E1, 0x8D2F, 0xB9E2, 0x5149, 0xB9E3, 0x5E7F, 0xB9E4, 0x901B, 0xB9E5, 0x7470, + 0xB9E6, 0x89C4, 0xB9E7, 0x572D, 0xB9E8, 0x7845, 0xB9E9, 0x5F52, 0xB9EA, 0x9F9F, 0xB9EB, 0x95FA, 0xB9EC, 0x8F68, 0xB9ED, 0x9B3C, + 0xB9EE, 0x8BE1, 0xB9EF, 0x7678, 0xB9F0, 0x6842, 0xB9F1, 0x67DC, 0xB9F2, 0x8DEA, 0xB9F3, 0x8D35, 0xB9F4, 0x523D, 0xB9F5, 0x8F8A, + 0xB9F6, 0x6EDA, 0xB9F7, 0x68CD, 0xB9F8, 0x9505, 0xB9F9, 0x90ED, 0xB9FA, 0x56FD, 0xB9FB, 0x679C, 0xB9FC, 0x88F9, 0xB9FD, 0x8FC7, + 0xB9FE, 0x54C8, 0xBA40, 0x7BC5, 0xBA41, 0x7BC8, 0xBA42, 0x7BC9, 0xBA43, 0x7BCA, 0xBA44, 0x7BCB, 0xBA45, 0x7BCD, 0xBA46, 0x7BCE, + 0xBA47, 0x7BCF, 0xBA48, 0x7BD0, 0xBA49, 0x7BD2, 0xBA4A, 0x7BD4, 0xBA4B, 0x7BD5, 0xBA4C, 0x7BD6, 0xBA4D, 0x7BD7, 0xBA4E, 0x7BD8, + 0xBA4F, 0x7BDB, 0xBA50, 0x7BDC, 0xBA51, 0x7BDE, 0xBA52, 0x7BDF, 0xBA53, 0x7BE0, 0xBA54, 0x7BE2, 0xBA55, 0x7BE3, 0xBA56, 0x7BE4, + 0xBA57, 0x7BE7, 0xBA58, 0x7BE8, 0xBA59, 0x7BE9, 0xBA5A, 0x7BEB, 0xBA5B, 0x7BEC, 0xBA5C, 0x7BED, 0xBA5D, 0x7BEF, 0xBA5E, 0x7BF0, + 0xBA5F, 0x7BF2, 0xBA60, 0x7BF3, 0xBA61, 0x7BF4, 0xBA62, 0x7BF5, 0xBA63, 0x7BF6, 0xBA64, 0x7BF8, 0xBA65, 0x7BF9, 0xBA66, 0x7BFA, + 0xBA67, 0x7BFB, 0xBA68, 0x7BFD, 0xBA69, 0x7BFF, 0xBA6A, 0x7C00, 0xBA6B, 0x7C01, 0xBA6C, 0x7C02, 0xBA6D, 0x7C03, 0xBA6E, 0x7C04, + 0xBA6F, 0x7C05, 0xBA70, 0x7C06, 0xBA71, 0x7C08, 0xBA72, 0x7C09, 0xBA73, 0x7C0A, 0xBA74, 0x7C0D, 0xBA75, 0x7C0E, 0xBA76, 0x7C10, + 0xBA77, 0x7C11, 0xBA78, 0x7C12, 0xBA79, 0x7C13, 0xBA7A, 0x7C14, 0xBA7B, 0x7C15, 0xBA7C, 0x7C17, 0xBA7D, 0x7C18, 0xBA7E, 0x7C19, + 0xBA80, 0x7C1A, 0xBA81, 0x7C1B, 0xBA82, 0x7C1C, 0xBA83, 0x7C1D, 0xBA84, 0x7C1E, 0xBA85, 0x7C20, 0xBA86, 0x7C21, 0xBA87, 0x7C22, + 0xBA88, 0x7C23, 0xBA89, 0x7C24, 0xBA8A, 0x7C25, 0xBA8B, 0x7C28, 0xBA8C, 0x7C29, 0xBA8D, 0x7C2B, 0xBA8E, 0x7C2C, 0xBA8F, 0x7C2D, + 0xBA90, 0x7C2E, 0xBA91, 0x7C2F, 0xBA92, 0x7C30, 0xBA93, 0x7C31, 0xBA94, 0x7C32, 0xBA95, 0x7C33, 0xBA96, 0x7C34, 0xBA97, 0x7C35, + 0xBA98, 0x7C36, 0xBA99, 0x7C37, 0xBA9A, 0x7C39, 0xBA9B, 0x7C3A, 0xBA9C, 0x7C3B, 0xBA9D, 0x7C3C, 0xBA9E, 0x7C3D, 0xBA9F, 0x7C3E, + 0xBAA0, 0x7C42, 0xBAA1, 0x9AB8, 0xBAA2, 0x5B69, 0xBAA3, 0x6D77, 0xBAA4, 0x6C26, 0xBAA5, 0x4EA5, 0xBAA6, 0x5BB3, 0xBAA7, 0x9A87, + 0xBAA8, 0x9163, 0xBAA9, 0x61A8, 0xBAAA, 0x90AF, 0xBAAB, 0x97E9, 0xBAAC, 0x542B, 0xBAAD, 0x6DB5, 0xBAAE, 0x5BD2, 0xBAAF, 0x51FD, + 0xBAB0, 0x558A, 0xBAB1, 0x7F55, 0xBAB2, 0x7FF0, 0xBAB3, 0x64BC, 0xBAB4, 0x634D, 0xBAB5, 0x65F1, 0xBAB6, 0x61BE, 0xBAB7, 0x608D, + 0xBAB8, 0x710A, 0xBAB9, 0x6C57, 0xBABA, 0x6C49, 0xBABB, 0x592F, 0xBABC, 0x676D, 0xBABD, 0x822A, 0xBABE, 0x58D5, 0xBABF, 0x568E, + 0xBAC0, 0x8C6A, 0xBAC1, 0x6BEB, 0xBAC2, 0x90DD, 0xBAC3, 0x597D, 0xBAC4, 0x8017, 0xBAC5, 0x53F7, 0xBAC6, 0x6D69, 0xBAC7, 0x5475, + 0xBAC8, 0x559D, 0xBAC9, 0x8377, 0xBACA, 0x83CF, 0xBACB, 0x6838, 0xBACC, 0x79BE, 0xBACD, 0x548C, 0xBACE, 0x4F55, 0xBACF, 0x5408, + 0xBAD0, 0x76D2, 0xBAD1, 0x8C89, 0xBAD2, 0x9602, 0xBAD3, 0x6CB3, 0xBAD4, 0x6DB8, 0xBAD5, 0x8D6B, 0xBAD6, 0x8910, 0xBAD7, 0x9E64, + 0xBAD8, 0x8D3A, 0xBAD9, 0x563F, 0xBADA, 0x9ED1, 0xBADB, 0x75D5, 0xBADC, 0x5F88, 0xBADD, 0x72E0, 0xBADE, 0x6068, 0xBADF, 0x54FC, + 0xBAE0, 0x4EA8, 0xBAE1, 0x6A2A, 0xBAE2, 0x8861, 0xBAE3, 0x6052, 0xBAE4, 0x8F70, 0xBAE5, 0x54C4, 0xBAE6, 0x70D8, 0xBAE7, 0x8679, + 0xBAE8, 0x9E3F, 0xBAE9, 0x6D2A, 0xBAEA, 0x5B8F, 0xBAEB, 0x5F18, 0xBAEC, 0x7EA2, 0xBAED, 0x5589, 0xBAEE, 0x4FAF, 0xBAEF, 0x7334, + 0xBAF0, 0x543C, 0xBAF1, 0x539A, 0xBAF2, 0x5019, 0xBAF3, 0x540E, 0xBAF4, 0x547C, 0xBAF5, 0x4E4E, 0xBAF6, 0x5FFD, 0xBAF7, 0x745A, + 0xBAF8, 0x58F6, 0xBAF9, 0x846B, 0xBAFA, 0x80E1, 0xBAFB, 0x8774, 0xBAFC, 0x72D0, 0xBAFD, 0x7CCA, 0xBAFE, 0x6E56, 0xBB40, 0x7C43, + 0xBB41, 0x7C44, 0xBB42, 0x7C45, 0xBB43, 0x7C46, 0xBB44, 0x7C47, 0xBB45, 0x7C48, 0xBB46, 0x7C49, 0xBB47, 0x7C4A, 0xBB48, 0x7C4B, + 0xBB49, 0x7C4C, 0xBB4A, 0x7C4E, 0xBB4B, 0x7C4F, 0xBB4C, 0x7C50, 0xBB4D, 0x7C51, 0xBB4E, 0x7C52, 0xBB4F, 0x7C53, 0xBB50, 0x7C54, + 0xBB51, 0x7C55, 0xBB52, 0x7C56, 0xBB53, 0x7C57, 0xBB54, 0x7C58, 0xBB55, 0x7C59, 0xBB56, 0x7C5A, 0xBB57, 0x7C5B, 0xBB58, 0x7C5C, + 0xBB59, 0x7C5D, 0xBB5A, 0x7C5E, 0xBB5B, 0x7C5F, 0xBB5C, 0x7C60, 0xBB5D, 0x7C61, 0xBB5E, 0x7C62, 0xBB5F, 0x7C63, 0xBB60, 0x7C64, + 0xBB61, 0x7C65, 0xBB62, 0x7C66, 0xBB63, 0x7C67, 0xBB64, 0x7C68, 0xBB65, 0x7C69, 0xBB66, 0x7C6A, 0xBB67, 0x7C6B, 0xBB68, 0x7C6C, + 0xBB69, 0x7C6D, 0xBB6A, 0x7C6E, 0xBB6B, 0x7C6F, 0xBB6C, 0x7C70, 0xBB6D, 0x7C71, 0xBB6E, 0x7C72, 0xBB6F, 0x7C75, 0xBB70, 0x7C76, + 0xBB71, 0x7C77, 0xBB72, 0x7C78, 0xBB73, 0x7C79, 0xBB74, 0x7C7A, 0xBB75, 0x7C7E, 0xBB76, 0x7C7F, 0xBB77, 0x7C80, 0xBB78, 0x7C81, + 0xBB79, 0x7C82, 0xBB7A, 0x7C83, 0xBB7B, 0x7C84, 0xBB7C, 0x7C85, 0xBB7D, 0x7C86, 0xBB7E, 0x7C87, 0xBB80, 0x7C88, 0xBB81, 0x7C8A, + 0xBB82, 0x7C8B, 0xBB83, 0x7C8C, 0xBB84, 0x7C8D, 0xBB85, 0x7C8E, 0xBB86, 0x7C8F, 0xBB87, 0x7C90, 0xBB88, 0x7C93, 0xBB89, 0x7C94, + 0xBB8A, 0x7C96, 0xBB8B, 0x7C99, 0xBB8C, 0x7C9A, 0xBB8D, 0x7C9B, 0xBB8E, 0x7CA0, 0xBB8F, 0x7CA1, 0xBB90, 0x7CA3, 0xBB91, 0x7CA6, + 0xBB92, 0x7CA7, 0xBB93, 0x7CA8, 0xBB94, 0x7CA9, 0xBB95, 0x7CAB, 0xBB96, 0x7CAC, 0xBB97, 0x7CAD, 0xBB98, 0x7CAF, 0xBB99, 0x7CB0, + 0xBB9A, 0x7CB4, 0xBB9B, 0x7CB5, 0xBB9C, 0x7CB6, 0xBB9D, 0x7CB7, 0xBB9E, 0x7CB8, 0xBB9F, 0x7CBA, 0xBBA0, 0x7CBB, 0xBBA1, 0x5F27, + 0xBBA2, 0x864E, 0xBBA3, 0x552C, 0xBBA4, 0x62A4, 0xBBA5, 0x4E92, 0xBBA6, 0x6CAA, 0xBBA7, 0x6237, 0xBBA8, 0x82B1, 0xBBA9, 0x54D7, + 0xBBAA, 0x534E, 0xBBAB, 0x733E, 0xBBAC, 0x6ED1, 0xBBAD, 0x753B, 0xBBAE, 0x5212, 0xBBAF, 0x5316, 0xBBB0, 0x8BDD, 0xBBB1, 0x69D0, + 0xBBB2, 0x5F8A, 0xBBB3, 0x6000, 0xBBB4, 0x6DEE, 0xBBB5, 0x574F, 0xBBB6, 0x6B22, 0xBBB7, 0x73AF, 0xBBB8, 0x6853, 0xBBB9, 0x8FD8, + 0xBBBA, 0x7F13, 0xBBBB, 0x6362, 0xBBBC, 0x60A3, 0xBBBD, 0x5524, 0xBBBE, 0x75EA, 0xBBBF, 0x8C62, 0xBBC0, 0x7115, 0xBBC1, 0x6DA3, + 0xBBC2, 0x5BA6, 0xBBC3, 0x5E7B, 0xBBC4, 0x8352, 0xBBC5, 0x614C, 0xBBC6, 0x9EC4, 0xBBC7, 0x78FA, 0xBBC8, 0x8757, 0xBBC9, 0x7C27, + 0xBBCA, 0x7687, 0xBBCB, 0x51F0, 0xBBCC, 0x60F6, 0xBBCD, 0x714C, 0xBBCE, 0x6643, 0xBBCF, 0x5E4C, 0xBBD0, 0x604D, 0xBBD1, 0x8C0E, + 0xBBD2, 0x7070, 0xBBD3, 0x6325, 0xBBD4, 0x8F89, 0xBBD5, 0x5FBD, 0xBBD6, 0x6062, 0xBBD7, 0x86D4, 0xBBD8, 0x56DE, 0xBBD9, 0x6BC1, + 0xBBDA, 0x6094, 0xBBDB, 0x6167, 0xBBDC, 0x5349, 0xBBDD, 0x60E0, 0xBBDE, 0x6666, 0xBBDF, 0x8D3F, 0xBBE0, 0x79FD, 0xBBE1, 0x4F1A, + 0xBBE2, 0x70E9, 0xBBE3, 0x6C47, 0xBBE4, 0x8BB3, 0xBBE5, 0x8BF2, 0xBBE6, 0x7ED8, 0xBBE7, 0x8364, 0xBBE8, 0x660F, 0xBBE9, 0x5A5A, + 0xBBEA, 0x9B42, 0xBBEB, 0x6D51, 0xBBEC, 0x6DF7, 0xBBED, 0x8C41, 0xBBEE, 0x6D3B, 0xBBEF, 0x4F19, 0xBBF0, 0x706B, 0xBBF1, 0x83B7, + 0xBBF2, 0x6216, 0xBBF3, 0x60D1, 0xBBF4, 0x970D, 0xBBF5, 0x8D27, 0xBBF6, 0x7978, 0xBBF7, 0x51FB, 0xBBF8, 0x573E, 0xBBF9, 0x57FA, + 0xBBFA, 0x673A, 0xBBFB, 0x7578, 0xBBFC, 0x7A3D, 0xBBFD, 0x79EF, 0xBBFE, 0x7B95, 0xBC40, 0x7CBF, 0xBC41, 0x7CC0, 0xBC42, 0x7CC2, + 0xBC43, 0x7CC3, 0xBC44, 0x7CC4, 0xBC45, 0x7CC6, 0xBC46, 0x7CC9, 0xBC47, 0x7CCB, 0xBC48, 0x7CCE, 0xBC49, 0x7CCF, 0xBC4A, 0x7CD0, + 0xBC4B, 0x7CD1, 0xBC4C, 0x7CD2, 0xBC4D, 0x7CD3, 0xBC4E, 0x7CD4, 0xBC4F, 0x7CD8, 0xBC50, 0x7CDA, 0xBC51, 0x7CDB, 0xBC52, 0x7CDD, + 0xBC53, 0x7CDE, 0xBC54, 0x7CE1, 0xBC55, 0x7CE2, 0xBC56, 0x7CE3, 0xBC57, 0x7CE4, 0xBC58, 0x7CE5, 0xBC59, 0x7CE6, 0xBC5A, 0x7CE7, + 0xBC5B, 0x7CE9, 0xBC5C, 0x7CEA, 0xBC5D, 0x7CEB, 0xBC5E, 0x7CEC, 0xBC5F, 0x7CED, 0xBC60, 0x7CEE, 0xBC61, 0x7CF0, 0xBC62, 0x7CF1, + 0xBC63, 0x7CF2, 0xBC64, 0x7CF3, 0xBC65, 0x7CF4, 0xBC66, 0x7CF5, 0xBC67, 0x7CF6, 0xBC68, 0x7CF7, 0xBC69, 0x7CF9, 0xBC6A, 0x7CFA, + 0xBC6B, 0x7CFC, 0xBC6C, 0x7CFD, 0xBC6D, 0x7CFE, 0xBC6E, 0x7CFF, 0xBC6F, 0x7D00, 0xBC70, 0x7D01, 0xBC71, 0x7D02, 0xBC72, 0x7D03, + 0xBC73, 0x7D04, 0xBC74, 0x7D05, 0xBC75, 0x7D06, 0xBC76, 0x7D07, 0xBC77, 0x7D08, 0xBC78, 0x7D09, 0xBC79, 0x7D0B, 0xBC7A, 0x7D0C, + 0xBC7B, 0x7D0D, 0xBC7C, 0x7D0E, 0xBC7D, 0x7D0F, 0xBC7E, 0x7D10, 0xBC80, 0x7D11, 0xBC81, 0x7D12, 0xBC82, 0x7D13, 0xBC83, 0x7D14, + 0xBC84, 0x7D15, 0xBC85, 0x7D16, 0xBC86, 0x7D17, 0xBC87, 0x7D18, 0xBC88, 0x7D19, 0xBC89, 0x7D1A, 0xBC8A, 0x7D1B, 0xBC8B, 0x7D1C, + 0xBC8C, 0x7D1D, 0xBC8D, 0x7D1E, 0xBC8E, 0x7D1F, 0xBC8F, 0x7D21, 0xBC90, 0x7D23, 0xBC91, 0x7D24, 0xBC92, 0x7D25, 0xBC93, 0x7D26, + 0xBC94, 0x7D28, 0xBC95, 0x7D29, 0xBC96, 0x7D2A, 0xBC97, 0x7D2C, 0xBC98, 0x7D2D, 0xBC99, 0x7D2E, 0xBC9A, 0x7D30, 0xBC9B, 0x7D31, + 0xBC9C, 0x7D32, 0xBC9D, 0x7D33, 0xBC9E, 0x7D34, 0xBC9F, 0x7D35, 0xBCA0, 0x7D36, 0xBCA1, 0x808C, 0xBCA2, 0x9965, 0xBCA3, 0x8FF9, + 0xBCA4, 0x6FC0, 0xBCA5, 0x8BA5, 0xBCA6, 0x9E21, 0xBCA7, 0x59EC, 0xBCA8, 0x7EE9, 0xBCA9, 0x7F09, 0xBCAA, 0x5409, 0xBCAB, 0x6781, + 0xBCAC, 0x68D8, 0xBCAD, 0x8F91, 0xBCAE, 0x7C4D, 0xBCAF, 0x96C6, 0xBCB0, 0x53CA, 0xBCB1, 0x6025, 0xBCB2, 0x75BE, 0xBCB3, 0x6C72, + 0xBCB4, 0x5373, 0xBCB5, 0x5AC9, 0xBCB6, 0x7EA7, 0xBCB7, 0x6324, 0xBCB8, 0x51E0, 0xBCB9, 0x810A, 0xBCBA, 0x5DF1, 0xBCBB, 0x84DF, + 0xBCBC, 0x6280, 0xBCBD, 0x5180, 0xBCBE, 0x5B63, 0xBCBF, 0x4F0E, 0xBCC0, 0x796D, 0xBCC1, 0x5242, 0xBCC2, 0x60B8, 0xBCC3, 0x6D4E, + 0xBCC4, 0x5BC4, 0xBCC5, 0x5BC2, 0xBCC6, 0x8BA1, 0xBCC7, 0x8BB0, 0xBCC8, 0x65E2, 0xBCC9, 0x5FCC, 0xBCCA, 0x9645, 0xBCCB, 0x5993, + 0xBCCC, 0x7EE7, 0xBCCD, 0x7EAA, 0xBCCE, 0x5609, 0xBCCF, 0x67B7, 0xBCD0, 0x5939, 0xBCD1, 0x4F73, 0xBCD2, 0x5BB6, 0xBCD3, 0x52A0, + 0xBCD4, 0x835A, 0xBCD5, 0x988A, 0xBCD6, 0x8D3E, 0xBCD7, 0x7532, 0xBCD8, 0x94BE, 0xBCD9, 0x5047, 0xBCDA, 0x7A3C, 0xBCDB, 0x4EF7, + 0xBCDC, 0x67B6, 0xBCDD, 0x9A7E, 0xBCDE, 0x5AC1, 0xBCDF, 0x6B7C, 0xBCE0, 0x76D1, 0xBCE1, 0x575A, 0xBCE2, 0x5C16, 0xBCE3, 0x7B3A, + 0xBCE4, 0x95F4, 0xBCE5, 0x714E, 0xBCE6, 0x517C, 0xBCE7, 0x80A9, 0xBCE8, 0x8270, 0xBCE9, 0x5978, 0xBCEA, 0x7F04, 0xBCEB, 0x8327, + 0xBCEC, 0x68C0, 0xBCED, 0x67EC, 0xBCEE, 0x78B1, 0xBCEF, 0x7877, 0xBCF0, 0x62E3, 0xBCF1, 0x6361, 0xBCF2, 0x7B80, 0xBCF3, 0x4FED, + 0xBCF4, 0x526A, 0xBCF5, 0x51CF, 0xBCF6, 0x8350, 0xBCF7, 0x69DB, 0xBCF8, 0x9274, 0xBCF9, 0x8DF5, 0xBCFA, 0x8D31, 0xBCFB, 0x89C1, + 0xBCFC, 0x952E, 0xBCFD, 0x7BAD, 0xBCFE, 0x4EF6, 0xBD40, 0x7D37, 0xBD41, 0x7D38, 0xBD42, 0x7D39, 0xBD43, 0x7D3A, 0xBD44, 0x7D3B, + 0xBD45, 0x7D3C, 0xBD46, 0x7D3D, 0xBD47, 0x7D3E, 0xBD48, 0x7D3F, 0xBD49, 0x7D40, 0xBD4A, 0x7D41, 0xBD4B, 0x7D42, 0xBD4C, 0x7D43, + 0xBD4D, 0x7D44, 0xBD4E, 0x7D45, 0xBD4F, 0x7D46, 0xBD50, 0x7D47, 0xBD51, 0x7D48, 0xBD52, 0x7D49, 0xBD53, 0x7D4A, 0xBD54, 0x7D4B, + 0xBD55, 0x7D4C, 0xBD56, 0x7D4D, 0xBD57, 0x7D4E, 0xBD58, 0x7D4F, 0xBD59, 0x7D50, 0xBD5A, 0x7D51, 0xBD5B, 0x7D52, 0xBD5C, 0x7D53, + 0xBD5D, 0x7D54, 0xBD5E, 0x7D55, 0xBD5F, 0x7D56, 0xBD60, 0x7D57, 0xBD61, 0x7D58, 0xBD62, 0x7D59, 0xBD63, 0x7D5A, 0xBD64, 0x7D5B, + 0xBD65, 0x7D5C, 0xBD66, 0x7D5D, 0xBD67, 0x7D5E, 0xBD68, 0x7D5F, 0xBD69, 0x7D60, 0xBD6A, 0x7D61, 0xBD6B, 0x7D62, 0xBD6C, 0x7D63, + 0xBD6D, 0x7D64, 0xBD6E, 0x7D65, 0xBD6F, 0x7D66, 0xBD70, 0x7D67, 0xBD71, 0x7D68, 0xBD72, 0x7D69, 0xBD73, 0x7D6A, 0xBD74, 0x7D6B, + 0xBD75, 0x7D6C, 0xBD76, 0x7D6D, 0xBD77, 0x7D6F, 0xBD78, 0x7D70, 0xBD79, 0x7D71, 0xBD7A, 0x7D72, 0xBD7B, 0x7D73, 0xBD7C, 0x7D74, + 0xBD7D, 0x7D75, 0xBD7E, 0x7D76, 0xBD80, 0x7D78, 0xBD81, 0x7D79, 0xBD82, 0x7D7A, 0xBD83, 0x7D7B, 0xBD84, 0x7D7C, 0xBD85, 0x7D7D, + 0xBD86, 0x7D7E, 0xBD87, 0x7D7F, 0xBD88, 0x7D80, 0xBD89, 0x7D81, 0xBD8A, 0x7D82, 0xBD8B, 0x7D83, 0xBD8C, 0x7D84, 0xBD8D, 0x7D85, + 0xBD8E, 0x7D86, 0xBD8F, 0x7D87, 0xBD90, 0x7D88, 0xBD91, 0x7D89, 0xBD92, 0x7D8A, 0xBD93, 0x7D8B, 0xBD94, 0x7D8C, 0xBD95, 0x7D8D, + 0xBD96, 0x7D8E, 0xBD97, 0x7D8F, 0xBD98, 0x7D90, 0xBD99, 0x7D91, 0xBD9A, 0x7D92, 0xBD9B, 0x7D93, 0xBD9C, 0x7D94, 0xBD9D, 0x7D95, + 0xBD9E, 0x7D96, 0xBD9F, 0x7D97, 0xBDA0, 0x7D98, 0xBDA1, 0x5065, 0xBDA2, 0x8230, 0xBDA3, 0x5251, 0xBDA4, 0x996F, 0xBDA5, 0x6E10, + 0xBDA6, 0x6E85, 0xBDA7, 0x6DA7, 0xBDA8, 0x5EFA, 0xBDA9, 0x50F5, 0xBDAA, 0x59DC, 0xBDAB, 0x5C06, 0xBDAC, 0x6D46, 0xBDAD, 0x6C5F, + 0xBDAE, 0x7586, 0xBDAF, 0x848B, 0xBDB0, 0x6868, 0xBDB1, 0x5956, 0xBDB2, 0x8BB2, 0xBDB3, 0x5320, 0xBDB4, 0x9171, 0xBDB5, 0x964D, + 0xBDB6, 0x8549, 0xBDB7, 0x6912, 0xBDB8, 0x7901, 0xBDB9, 0x7126, 0xBDBA, 0x80F6, 0xBDBB, 0x4EA4, 0xBDBC, 0x90CA, 0xBDBD, 0x6D47, + 0xBDBE, 0x9A84, 0xBDBF, 0x5A07, 0xBDC0, 0x56BC, 0xBDC1, 0x6405, 0xBDC2, 0x94F0, 0xBDC3, 0x77EB, 0xBDC4, 0x4FA5, 0xBDC5, 0x811A, + 0xBDC6, 0x72E1, 0xBDC7, 0x89D2, 0xBDC8, 0x997A, 0xBDC9, 0x7F34, 0xBDCA, 0x7EDE, 0xBDCB, 0x527F, 0xBDCC, 0x6559, 0xBDCD, 0x9175, + 0xBDCE, 0x8F7F, 0xBDCF, 0x8F83, 0xBDD0, 0x53EB, 0xBDD1, 0x7A96, 0xBDD2, 0x63ED, 0xBDD3, 0x63A5, 0xBDD4, 0x7686, 0xBDD5, 0x79F8, + 0xBDD6, 0x8857, 0xBDD7, 0x9636, 0xBDD8, 0x622A, 0xBDD9, 0x52AB, 0xBDDA, 0x8282, 0xBDDB, 0x6854, 0xBDDC, 0x6770, 0xBDDD, 0x6377, + 0xBDDE, 0x776B, 0xBDDF, 0x7AED, 0xBDE0, 0x6D01, 0xBDE1, 0x7ED3, 0xBDE2, 0x89E3, 0xBDE3, 0x59D0, 0xBDE4, 0x6212, 0xBDE5, 0x85C9, + 0xBDE6, 0x82A5, 0xBDE7, 0x754C, 0xBDE8, 0x501F, 0xBDE9, 0x4ECB, 0xBDEA, 0x75A5, 0xBDEB, 0x8BEB, 0xBDEC, 0x5C4A, 0xBDED, 0x5DFE, + 0xBDEE, 0x7B4B, 0xBDEF, 0x65A4, 0xBDF0, 0x91D1, 0xBDF1, 0x4ECA, 0xBDF2, 0x6D25, 0xBDF3, 0x895F, 0xBDF4, 0x7D27, 0xBDF5, 0x9526, + 0xBDF6, 0x4EC5, 0xBDF7, 0x8C28, 0xBDF8, 0x8FDB, 0xBDF9, 0x9773, 0xBDFA, 0x664B, 0xBDFB, 0x7981, 0xBDFC, 0x8FD1, 0xBDFD, 0x70EC, + 0xBDFE, 0x6D78, 0xBE40, 0x7D99, 0xBE41, 0x7D9A, 0xBE42, 0x7D9B, 0xBE43, 0x7D9C, 0xBE44, 0x7D9D, 0xBE45, 0x7D9E, 0xBE46, 0x7D9F, + 0xBE47, 0x7DA0, 0xBE48, 0x7DA1, 0xBE49, 0x7DA2, 0xBE4A, 0x7DA3, 0xBE4B, 0x7DA4, 0xBE4C, 0x7DA5, 0xBE4D, 0x7DA7, 0xBE4E, 0x7DA8, + 0xBE4F, 0x7DA9, 0xBE50, 0x7DAA, 0xBE51, 0x7DAB, 0xBE52, 0x7DAC, 0xBE53, 0x7DAD, 0xBE54, 0x7DAF, 0xBE55, 0x7DB0, 0xBE56, 0x7DB1, + 0xBE57, 0x7DB2, 0xBE58, 0x7DB3, 0xBE59, 0x7DB4, 0xBE5A, 0x7DB5, 0xBE5B, 0x7DB6, 0xBE5C, 0x7DB7, 0xBE5D, 0x7DB8, 0xBE5E, 0x7DB9, + 0xBE5F, 0x7DBA, 0xBE60, 0x7DBB, 0xBE61, 0x7DBC, 0xBE62, 0x7DBD, 0xBE63, 0x7DBE, 0xBE64, 0x7DBF, 0xBE65, 0x7DC0, 0xBE66, 0x7DC1, + 0xBE67, 0x7DC2, 0xBE68, 0x7DC3, 0xBE69, 0x7DC4, 0xBE6A, 0x7DC5, 0xBE6B, 0x7DC6, 0xBE6C, 0x7DC7, 0xBE6D, 0x7DC8, 0xBE6E, 0x7DC9, + 0xBE6F, 0x7DCA, 0xBE70, 0x7DCB, 0xBE71, 0x7DCC, 0xBE72, 0x7DCD, 0xBE73, 0x7DCE, 0xBE74, 0x7DCF, 0xBE75, 0x7DD0, 0xBE76, 0x7DD1, + 0xBE77, 0x7DD2, 0xBE78, 0x7DD3, 0xBE79, 0x7DD4, 0xBE7A, 0x7DD5, 0xBE7B, 0x7DD6, 0xBE7C, 0x7DD7, 0xBE7D, 0x7DD8, 0xBE7E, 0x7DD9, + 0xBE80, 0x7DDA, 0xBE81, 0x7DDB, 0xBE82, 0x7DDC, 0xBE83, 0x7DDD, 0xBE84, 0x7DDE, 0xBE85, 0x7DDF, 0xBE86, 0x7DE0, 0xBE87, 0x7DE1, + 0xBE88, 0x7DE2, 0xBE89, 0x7DE3, 0xBE8A, 0x7DE4, 0xBE8B, 0x7DE5, 0xBE8C, 0x7DE6, 0xBE8D, 0x7DE7, 0xBE8E, 0x7DE8, 0xBE8F, 0x7DE9, + 0xBE90, 0x7DEA, 0xBE91, 0x7DEB, 0xBE92, 0x7DEC, 0xBE93, 0x7DED, 0xBE94, 0x7DEE, 0xBE95, 0x7DEF, 0xBE96, 0x7DF0, 0xBE97, 0x7DF1, + 0xBE98, 0x7DF2, 0xBE99, 0x7DF3, 0xBE9A, 0x7DF4, 0xBE9B, 0x7DF5, 0xBE9C, 0x7DF6, 0xBE9D, 0x7DF7, 0xBE9E, 0x7DF8, 0xBE9F, 0x7DF9, + 0xBEA0, 0x7DFA, 0xBEA1, 0x5C3D, 0xBEA2, 0x52B2, 0xBEA3, 0x8346, 0xBEA4, 0x5162, 0xBEA5, 0x830E, 0xBEA6, 0x775B, 0xBEA7, 0x6676, + 0xBEA8, 0x9CB8, 0xBEA9, 0x4EAC, 0xBEAA, 0x60CA, 0xBEAB, 0x7CBE, 0xBEAC, 0x7CB3, 0xBEAD, 0x7ECF, 0xBEAE, 0x4E95, 0xBEAF, 0x8B66, + 0xBEB0, 0x666F, 0xBEB1, 0x9888, 0xBEB2, 0x9759, 0xBEB3, 0x5883, 0xBEB4, 0x656C, 0xBEB5, 0x955C, 0xBEB6, 0x5F84, 0xBEB7, 0x75C9, + 0xBEB8, 0x9756, 0xBEB9, 0x7ADF, 0xBEBA, 0x7ADE, 0xBEBB, 0x51C0, 0xBEBC, 0x70AF, 0xBEBD, 0x7A98, 0xBEBE, 0x63EA, 0xBEBF, 0x7A76, + 0xBEC0, 0x7EA0, 0xBEC1, 0x7396, 0xBEC2, 0x97ED, 0xBEC3, 0x4E45, 0xBEC4, 0x7078, 0xBEC5, 0x4E5D, 0xBEC6, 0x9152, 0xBEC7, 0x53A9, + 0xBEC8, 0x6551, 0xBEC9, 0x65E7, 0xBECA, 0x81FC, 0xBECB, 0x8205, 0xBECC, 0x548E, 0xBECD, 0x5C31, 0xBECE, 0x759A, 0xBECF, 0x97A0, + 0xBED0, 0x62D8, 0xBED1, 0x72D9, 0xBED2, 0x75BD, 0xBED3, 0x5C45, 0xBED4, 0x9A79, 0xBED5, 0x83CA, 0xBED6, 0x5C40, 0xBED7, 0x5480, + 0xBED8, 0x77E9, 0xBED9, 0x4E3E, 0xBEDA, 0x6CAE, 0xBEDB, 0x805A, 0xBEDC, 0x62D2, 0xBEDD, 0x636E, 0xBEDE, 0x5DE8, 0xBEDF, 0x5177, + 0xBEE0, 0x8DDD, 0xBEE1, 0x8E1E, 0xBEE2, 0x952F, 0xBEE3, 0x4FF1, 0xBEE4, 0x53E5, 0xBEE5, 0x60E7, 0xBEE6, 0x70AC, 0xBEE7, 0x5267, + 0xBEE8, 0x6350, 0xBEE9, 0x9E43, 0xBEEA, 0x5A1F, 0xBEEB, 0x5026, 0xBEEC, 0x7737, 0xBEED, 0x5377, 0xBEEE, 0x7EE2, 0xBEEF, 0x6485, + 0xBEF0, 0x652B, 0xBEF1, 0x6289, 0xBEF2, 0x6398, 0xBEF3, 0x5014, 0xBEF4, 0x7235, 0xBEF5, 0x89C9, 0xBEF6, 0x51B3, 0xBEF7, 0x8BC0, + 0xBEF8, 0x7EDD, 0xBEF9, 0x5747, 0xBEFA, 0x83CC, 0xBEFB, 0x94A7, 0xBEFC, 0x519B, 0xBEFD, 0x541B, 0xBEFE, 0x5CFB, 0xBF40, 0x7DFB, + 0xBF41, 0x7DFC, 0xBF42, 0x7DFD, 0xBF43, 0x7DFE, 0xBF44, 0x7DFF, 0xBF45, 0x7E00, 0xBF46, 0x7E01, 0xBF47, 0x7E02, 0xBF48, 0x7E03, + 0xBF49, 0x7E04, 0xBF4A, 0x7E05, 0xBF4B, 0x7E06, 0xBF4C, 0x7E07, 0xBF4D, 0x7E08, 0xBF4E, 0x7E09, 0xBF4F, 0x7E0A, 0xBF50, 0x7E0B, + 0xBF51, 0x7E0C, 0xBF52, 0x7E0D, 0xBF53, 0x7E0E, 0xBF54, 0x7E0F, 0xBF55, 0x7E10, 0xBF56, 0x7E11, 0xBF57, 0x7E12, 0xBF58, 0x7E13, + 0xBF59, 0x7E14, 0xBF5A, 0x7E15, 0xBF5B, 0x7E16, 0xBF5C, 0x7E17, 0xBF5D, 0x7E18, 0xBF5E, 0x7E19, 0xBF5F, 0x7E1A, 0xBF60, 0x7E1B, + 0xBF61, 0x7E1C, 0xBF62, 0x7E1D, 0xBF63, 0x7E1E, 0xBF64, 0x7E1F, 0xBF65, 0x7E20, 0xBF66, 0x7E21, 0xBF67, 0x7E22, 0xBF68, 0x7E23, + 0xBF69, 0x7E24, 0xBF6A, 0x7E25, 0xBF6B, 0x7E26, 0xBF6C, 0x7E27, 0xBF6D, 0x7E28, 0xBF6E, 0x7E29, 0xBF6F, 0x7E2A, 0xBF70, 0x7E2B, + 0xBF71, 0x7E2C, 0xBF72, 0x7E2D, 0xBF73, 0x7E2E, 0xBF74, 0x7E2F, 0xBF75, 0x7E30, 0xBF76, 0x7E31, 0xBF77, 0x7E32, 0xBF78, 0x7E33, + 0xBF79, 0x7E34, 0xBF7A, 0x7E35, 0xBF7B, 0x7E36, 0xBF7C, 0x7E37, 0xBF7D, 0x7E38, 0xBF7E, 0x7E39, 0xBF80, 0x7E3A, 0xBF81, 0x7E3C, + 0xBF82, 0x7E3D, 0xBF83, 0x7E3E, 0xBF84, 0x7E3F, 0xBF85, 0x7E40, 0xBF86, 0x7E42, 0xBF87, 0x7E43, 0xBF88, 0x7E44, 0xBF89, 0x7E45, + 0xBF8A, 0x7E46, 0xBF8B, 0x7E48, 0xBF8C, 0x7E49, 0xBF8D, 0x7E4A, 0xBF8E, 0x7E4B, 0xBF8F, 0x7E4C, 0xBF90, 0x7E4D, 0xBF91, 0x7E4E, + 0xBF92, 0x7E4F, 0xBF93, 0x7E50, 0xBF94, 0x7E51, 0xBF95, 0x7E52, 0xBF96, 0x7E53, 0xBF97, 0x7E54, 0xBF98, 0x7E55, 0xBF99, 0x7E56, + 0xBF9A, 0x7E57, 0xBF9B, 0x7E58, 0xBF9C, 0x7E59, 0xBF9D, 0x7E5A, 0xBF9E, 0x7E5B, 0xBF9F, 0x7E5C, 0xBFA0, 0x7E5D, 0xBFA1, 0x4FCA, + 0xBFA2, 0x7AE3, 0xBFA3, 0x6D5A, 0xBFA4, 0x90E1, 0xBFA5, 0x9A8F, 0xBFA6, 0x5580, 0xBFA7, 0x5496, 0xBFA8, 0x5361, 0xBFA9, 0x54AF, + 0xBFAA, 0x5F00, 0xBFAB, 0x63E9, 0xBFAC, 0x6977, 0xBFAD, 0x51EF, 0xBFAE, 0x6168, 0xBFAF, 0x520A, 0xBFB0, 0x582A, 0xBFB1, 0x52D8, + 0xBFB2, 0x574E, 0xBFB3, 0x780D, 0xBFB4, 0x770B, 0xBFB5, 0x5EB7, 0xBFB6, 0x6177, 0xBFB7, 0x7CE0, 0xBFB8, 0x625B, 0xBFB9, 0x6297, + 0xBFBA, 0x4EA2, 0xBFBB, 0x7095, 0xBFBC, 0x8003, 0xBFBD, 0x62F7, 0xBFBE, 0x70E4, 0xBFBF, 0x9760, 0xBFC0, 0x5777, 0xBFC1, 0x82DB, + 0xBFC2, 0x67EF, 0xBFC3, 0x68F5, 0xBFC4, 0x78D5, 0xBFC5, 0x9897, 0xBFC6, 0x79D1, 0xBFC7, 0x58F3, 0xBFC8, 0x54B3, 0xBFC9, 0x53EF, + 0xBFCA, 0x6E34, 0xBFCB, 0x514B, 0xBFCC, 0x523B, 0xBFCD, 0x5BA2, 0xBFCE, 0x8BFE, 0xBFCF, 0x80AF, 0xBFD0, 0x5543, 0xBFD1, 0x57A6, + 0xBFD2, 0x6073, 0xBFD3, 0x5751, 0xBFD4, 0x542D, 0xBFD5, 0x7A7A, 0xBFD6, 0x6050, 0xBFD7, 0x5B54, 0xBFD8, 0x63A7, 0xBFD9, 0x62A0, + 0xBFDA, 0x53E3, 0xBFDB, 0x6263, 0xBFDC, 0x5BC7, 0xBFDD, 0x67AF, 0xBFDE, 0x54ED, 0xBFDF, 0x7A9F, 0xBFE0, 0x82E6, 0xBFE1, 0x9177, + 0xBFE2, 0x5E93, 0xBFE3, 0x88E4, 0xBFE4, 0x5938, 0xBFE5, 0x57AE, 0xBFE6, 0x630E, 0xBFE7, 0x8DE8, 0xBFE8, 0x80EF, 0xBFE9, 0x5757, + 0xBFEA, 0x7B77, 0xBFEB, 0x4FA9, 0xBFEC, 0x5FEB, 0xBFED, 0x5BBD, 0xBFEE, 0x6B3E, 0xBFEF, 0x5321, 0xBFF0, 0x7B50, 0xBFF1, 0x72C2, + 0xBFF2, 0x6846, 0xBFF3, 0x77FF, 0xBFF4, 0x7736, 0xBFF5, 0x65F7, 0xBFF6, 0x51B5, 0xBFF7, 0x4E8F, 0xBFF8, 0x76D4, 0xBFF9, 0x5CBF, + 0xBFFA, 0x7AA5, 0xBFFB, 0x8475, 0xBFFC, 0x594E, 0xBFFD, 0x9B41, 0xBFFE, 0x5080, 0xC040, 0x7E5E, 0xC041, 0x7E5F, 0xC042, 0x7E60, + 0xC043, 0x7E61, 0xC044, 0x7E62, 0xC045, 0x7E63, 0xC046, 0x7E64, 0xC047, 0x7E65, 0xC048, 0x7E66, 0xC049, 0x7E67, 0xC04A, 0x7E68, + 0xC04B, 0x7E69, 0xC04C, 0x7E6A, 0xC04D, 0x7E6B, 0xC04E, 0x7E6C, 0xC04F, 0x7E6D, 0xC050, 0x7E6E, 0xC051, 0x7E6F, 0xC052, 0x7E70, + 0xC053, 0x7E71, 0xC054, 0x7E72, 0xC055, 0x7E73, 0xC056, 0x7E74, 0xC057, 0x7E75, 0xC058, 0x7E76, 0xC059, 0x7E77, 0xC05A, 0x7E78, + 0xC05B, 0x7E79, 0xC05C, 0x7E7A, 0xC05D, 0x7E7B, 0xC05E, 0x7E7C, 0xC05F, 0x7E7D, 0xC060, 0x7E7E, 0xC061, 0x7E7F, 0xC062, 0x7E80, + 0xC063, 0x7E81, 0xC064, 0x7E83, 0xC065, 0x7E84, 0xC066, 0x7E85, 0xC067, 0x7E86, 0xC068, 0x7E87, 0xC069, 0x7E88, 0xC06A, 0x7E89, + 0xC06B, 0x7E8A, 0xC06C, 0x7E8B, 0xC06D, 0x7E8C, 0xC06E, 0x7E8D, 0xC06F, 0x7E8E, 0xC070, 0x7E8F, 0xC071, 0x7E90, 0xC072, 0x7E91, + 0xC073, 0x7E92, 0xC074, 0x7E93, 0xC075, 0x7E94, 0xC076, 0x7E95, 0xC077, 0x7E96, 0xC078, 0x7E97, 0xC079, 0x7E98, 0xC07A, 0x7E99, + 0xC07B, 0x7E9A, 0xC07C, 0x7E9C, 0xC07D, 0x7E9D, 0xC07E, 0x7E9E, 0xC080, 0x7EAE, 0xC081, 0x7EB4, 0xC082, 0x7EBB, 0xC083, 0x7EBC, + 0xC084, 0x7ED6, 0xC085, 0x7EE4, 0xC086, 0x7EEC, 0xC087, 0x7EF9, 0xC088, 0x7F0A, 0xC089, 0x7F10, 0xC08A, 0x7F1E, 0xC08B, 0x7F37, + 0xC08C, 0x7F39, 0xC08D, 0x7F3B, 0xC08E, 0x7F3C, 0xC08F, 0x7F3D, 0xC090, 0x7F3E, 0xC091, 0x7F3F, 0xC092, 0x7F40, 0xC093, 0x7F41, + 0xC094, 0x7F43, 0xC095, 0x7F46, 0xC096, 0x7F47, 0xC097, 0x7F48, 0xC098, 0x7F49, 0xC099, 0x7F4A, 0xC09A, 0x7F4B, 0xC09B, 0x7F4C, + 0xC09C, 0x7F4D, 0xC09D, 0x7F4E, 0xC09E, 0x7F4F, 0xC09F, 0x7F52, 0xC0A0, 0x7F53, 0xC0A1, 0x9988, 0xC0A2, 0x6127, 0xC0A3, 0x6E83, + 0xC0A4, 0x5764, 0xC0A5, 0x6606, 0xC0A6, 0x6346, 0xC0A7, 0x56F0, 0xC0A8, 0x62EC, 0xC0A9, 0x6269, 0xC0AA, 0x5ED3, 0xC0AB, 0x9614, + 0xC0AC, 0x5783, 0xC0AD, 0x62C9, 0xC0AE, 0x5587, 0xC0AF, 0x8721, 0xC0B0, 0x814A, 0xC0B1, 0x8FA3, 0xC0B2, 0x5566, 0xC0B3, 0x83B1, + 0xC0B4, 0x6765, 0xC0B5, 0x8D56, 0xC0B6, 0x84DD, 0xC0B7, 0x5A6A, 0xC0B8, 0x680F, 0xC0B9, 0x62E6, 0xC0BA, 0x7BEE, 0xC0BB, 0x9611, + 0xC0BC, 0x5170, 0xC0BD, 0x6F9C, 0xC0BE, 0x8C30, 0xC0BF, 0x63FD, 0xC0C0, 0x89C8, 0xC0C1, 0x61D2, 0xC0C2, 0x7F06, 0xC0C3, 0x70C2, + 0xC0C4, 0x6EE5, 0xC0C5, 0x7405, 0xC0C6, 0x6994, 0xC0C7, 0x72FC, 0xC0C8, 0x5ECA, 0xC0C9, 0x90CE, 0xC0CA, 0x6717, 0xC0CB, 0x6D6A, + 0xC0CC, 0x635E, 0xC0CD, 0x52B3, 0xC0CE, 0x7262, 0xC0CF, 0x8001, 0xC0D0, 0x4F6C, 0xC0D1, 0x59E5, 0xC0D2, 0x916A, 0xC0D3, 0x70D9, + 0xC0D4, 0x6D9D, 0xC0D5, 0x52D2, 0xC0D6, 0x4E50, 0xC0D7, 0x96F7, 0xC0D8, 0x956D, 0xC0D9, 0x857E, 0xC0DA, 0x78CA, 0xC0DB, 0x7D2F, + 0xC0DC, 0x5121, 0xC0DD, 0x5792, 0xC0DE, 0x64C2, 0xC0DF, 0x808B, 0xC0E0, 0x7C7B, 0xC0E1, 0x6CEA, 0xC0E2, 0x68F1, 0xC0E3, 0x695E, + 0xC0E4, 0x51B7, 0xC0E5, 0x5398, 0xC0E6, 0x68A8, 0xC0E7, 0x7281, 0xC0E8, 0x9ECE, 0xC0E9, 0x7BF1, 0xC0EA, 0x72F8, 0xC0EB, 0x79BB, + 0xC0EC, 0x6F13, 0xC0ED, 0x7406, 0xC0EE, 0x674E, 0xC0EF, 0x91CC, 0xC0F0, 0x9CA4, 0xC0F1, 0x793C, 0xC0F2, 0x8389, 0xC0F3, 0x8354, + 0xC0F4, 0x540F, 0xC0F5, 0x6817, 0xC0F6, 0x4E3D, 0xC0F7, 0x5389, 0xC0F8, 0x52B1, 0xC0F9, 0x783E, 0xC0FA, 0x5386, 0xC0FB, 0x5229, + 0xC0FC, 0x5088, 0xC0FD, 0x4F8B, 0xC0FE, 0x4FD0, 0xC140, 0x7F56, 0xC141, 0x7F59, 0xC142, 0x7F5B, 0xC143, 0x7F5C, 0xC144, 0x7F5D, + 0xC145, 0x7F5E, 0xC146, 0x7F60, 0xC147, 0x7F63, 0xC148, 0x7F64, 0xC149, 0x7F65, 0xC14A, 0x7F66, 0xC14B, 0x7F67, 0xC14C, 0x7F6B, + 0xC14D, 0x7F6C, 0xC14E, 0x7F6D, 0xC14F, 0x7F6F, 0xC150, 0x7F70, 0xC151, 0x7F73, 0xC152, 0x7F75, 0xC153, 0x7F76, 0xC154, 0x7F77, + 0xC155, 0x7F78, 0xC156, 0x7F7A, 0xC157, 0x7F7B, 0xC158, 0x7F7C, 0xC159, 0x7F7D, 0xC15A, 0x7F7F, 0xC15B, 0x7F80, 0xC15C, 0x7F82, + 0xC15D, 0x7F83, 0xC15E, 0x7F84, 0xC15F, 0x7F85, 0xC160, 0x7F86, 0xC161, 0x7F87, 0xC162, 0x7F88, 0xC163, 0x7F89, 0xC164, 0x7F8B, + 0xC165, 0x7F8D, 0xC166, 0x7F8F, 0xC167, 0x7F90, 0xC168, 0x7F91, 0xC169, 0x7F92, 0xC16A, 0x7F93, 0xC16B, 0x7F95, 0xC16C, 0x7F96, + 0xC16D, 0x7F97, 0xC16E, 0x7F98, 0xC16F, 0x7F99, 0xC170, 0x7F9B, 0xC171, 0x7F9C, 0xC172, 0x7FA0, 0xC173, 0x7FA2, 0xC174, 0x7FA3, + 0xC175, 0x7FA5, 0xC176, 0x7FA6, 0xC177, 0x7FA8, 0xC178, 0x7FA9, 0xC179, 0x7FAA, 0xC17A, 0x7FAB, 0xC17B, 0x7FAC, 0xC17C, 0x7FAD, + 0xC17D, 0x7FAE, 0xC17E, 0x7FB1, 0xC180, 0x7FB3, 0xC181, 0x7FB4, 0xC182, 0x7FB5, 0xC183, 0x7FB6, 0xC184, 0x7FB7, 0xC185, 0x7FBA, + 0xC186, 0x7FBB, 0xC187, 0x7FBE, 0xC188, 0x7FC0, 0xC189, 0x7FC2, 0xC18A, 0x7FC3, 0xC18B, 0x7FC4, 0xC18C, 0x7FC6, 0xC18D, 0x7FC7, + 0xC18E, 0x7FC8, 0xC18F, 0x7FC9, 0xC190, 0x7FCB, 0xC191, 0x7FCD, 0xC192, 0x7FCF, 0xC193, 0x7FD0, 0xC194, 0x7FD1, 0xC195, 0x7FD2, + 0xC196, 0x7FD3, 0xC197, 0x7FD6, 0xC198, 0x7FD7, 0xC199, 0x7FD9, 0xC19A, 0x7FDA, 0xC19B, 0x7FDB, 0xC19C, 0x7FDC, 0xC19D, 0x7FDD, + 0xC19E, 0x7FDE, 0xC19F, 0x7FE2, 0xC1A0, 0x7FE3, 0xC1A1, 0x75E2, 0xC1A2, 0x7ACB, 0xC1A3, 0x7C92, 0xC1A4, 0x6CA5, 0xC1A5, 0x96B6, + 0xC1A6, 0x529B, 0xC1A7, 0x7483, 0xC1A8, 0x54E9, 0xC1A9, 0x4FE9, 0xC1AA, 0x8054, 0xC1AB, 0x83B2, 0xC1AC, 0x8FDE, 0xC1AD, 0x9570, + 0xC1AE, 0x5EC9, 0xC1AF, 0x601C, 0xC1B0, 0x6D9F, 0xC1B1, 0x5E18, 0xC1B2, 0x655B, 0xC1B3, 0x8138, 0xC1B4, 0x94FE, 0xC1B5, 0x604B, + 0xC1B6, 0x70BC, 0xC1B7, 0x7EC3, 0xC1B8, 0x7CAE, 0xC1B9, 0x51C9, 0xC1BA, 0x6881, 0xC1BB, 0x7CB1, 0xC1BC, 0x826F, 0xC1BD, 0x4E24, + 0xC1BE, 0x8F86, 0xC1BF, 0x91CF, 0xC1C0, 0x667E, 0xC1C1, 0x4EAE, 0xC1C2, 0x8C05, 0xC1C3, 0x64A9, 0xC1C4, 0x804A, 0xC1C5, 0x50DA, + 0xC1C6, 0x7597, 0xC1C7, 0x71CE, 0xC1C8, 0x5BE5, 0xC1C9, 0x8FBD, 0xC1CA, 0x6F66, 0xC1CB, 0x4E86, 0xC1CC, 0x6482, 0xC1CD, 0x9563, + 0xC1CE, 0x5ED6, 0xC1CF, 0x6599, 0xC1D0, 0x5217, 0xC1D1, 0x88C2, 0xC1D2, 0x70C8, 0xC1D3, 0x52A3, 0xC1D4, 0x730E, 0xC1D5, 0x7433, + 0xC1D6, 0x6797, 0xC1D7, 0x78F7, 0xC1D8, 0x9716, 0xC1D9, 0x4E34, 0xC1DA, 0x90BB, 0xC1DB, 0x9CDE, 0xC1DC, 0x6DCB, 0xC1DD, 0x51DB, + 0xC1DE, 0x8D41, 0xC1DF, 0x541D, 0xC1E0, 0x62CE, 0xC1E1, 0x73B2, 0xC1E2, 0x83F1, 0xC1E3, 0x96F6, 0xC1E4, 0x9F84, 0xC1E5, 0x94C3, + 0xC1E6, 0x4F36, 0xC1E7, 0x7F9A, 0xC1E8, 0x51CC, 0xC1E9, 0x7075, 0xC1EA, 0x9675, 0xC1EB, 0x5CAD, 0xC1EC, 0x9886, 0xC1ED, 0x53E6, + 0xC1EE, 0x4EE4, 0xC1EF, 0x6E9C, 0xC1F0, 0x7409, 0xC1F1, 0x69B4, 0xC1F2, 0x786B, 0xC1F3, 0x998F, 0xC1F4, 0x7559, 0xC1F5, 0x5218, + 0xC1F6, 0x7624, 0xC1F7, 0x6D41, 0xC1F8, 0x67F3, 0xC1F9, 0x516D, 0xC1FA, 0x9F99, 0xC1FB, 0x804B, 0xC1FC, 0x5499, 0xC1FD, 0x7B3C, + 0xC1FE, 0x7ABF, 0xC240, 0x7FE4, 0xC241, 0x7FE7, 0xC242, 0x7FE8, 0xC243, 0x7FEA, 0xC244, 0x7FEB, 0xC245, 0x7FEC, 0xC246, 0x7FED, + 0xC247, 0x7FEF, 0xC248, 0x7FF2, 0xC249, 0x7FF4, 0xC24A, 0x7FF5, 0xC24B, 0x7FF6, 0xC24C, 0x7FF7, 0xC24D, 0x7FF8, 0xC24E, 0x7FF9, + 0xC24F, 0x7FFA, 0xC250, 0x7FFD, 0xC251, 0x7FFE, 0xC252, 0x7FFF, 0xC253, 0x8002, 0xC254, 0x8007, 0xC255, 0x8008, 0xC256, 0x8009, + 0xC257, 0x800A, 0xC258, 0x800E, 0xC259, 0x800F, 0xC25A, 0x8011, 0xC25B, 0x8013, 0xC25C, 0x801A, 0xC25D, 0x801B, 0xC25E, 0x801D, + 0xC25F, 0x801E, 0xC260, 0x801F, 0xC261, 0x8021, 0xC262, 0x8023, 0xC263, 0x8024, 0xC264, 0x802B, 0xC265, 0x802C, 0xC266, 0x802D, + 0xC267, 0x802E, 0xC268, 0x802F, 0xC269, 0x8030, 0xC26A, 0x8032, 0xC26B, 0x8034, 0xC26C, 0x8039, 0xC26D, 0x803A, 0xC26E, 0x803C, + 0xC26F, 0x803E, 0xC270, 0x8040, 0xC271, 0x8041, 0xC272, 0x8044, 0xC273, 0x8045, 0xC274, 0x8047, 0xC275, 0x8048, 0xC276, 0x8049, + 0xC277, 0x804E, 0xC278, 0x804F, 0xC279, 0x8050, 0xC27A, 0x8051, 0xC27B, 0x8053, 0xC27C, 0x8055, 0xC27D, 0x8056, 0xC27E, 0x8057, + 0xC280, 0x8059, 0xC281, 0x805B, 0xC282, 0x805C, 0xC283, 0x805D, 0xC284, 0x805E, 0xC285, 0x805F, 0xC286, 0x8060, 0xC287, 0x8061, + 0xC288, 0x8062, 0xC289, 0x8063, 0xC28A, 0x8064, 0xC28B, 0x8065, 0xC28C, 0x8066, 0xC28D, 0x8067, 0xC28E, 0x8068, 0xC28F, 0x806B, + 0xC290, 0x806C, 0xC291, 0x806D, 0xC292, 0x806E, 0xC293, 0x806F, 0xC294, 0x8070, 0xC295, 0x8072, 0xC296, 0x8073, 0xC297, 0x8074, + 0xC298, 0x8075, 0xC299, 0x8076, 0xC29A, 0x8077, 0xC29B, 0x8078, 0xC29C, 0x8079, 0xC29D, 0x807A, 0xC29E, 0x807B, 0xC29F, 0x807C, + 0xC2A0, 0x807D, 0xC2A1, 0x9686, 0xC2A2, 0x5784, 0xC2A3, 0x62E2, 0xC2A4, 0x9647, 0xC2A5, 0x697C, 0xC2A6, 0x5A04, 0xC2A7, 0x6402, + 0xC2A8, 0x7BD3, 0xC2A9, 0x6F0F, 0xC2AA, 0x964B, 0xC2AB, 0x82A6, 0xC2AC, 0x5362, 0xC2AD, 0x9885, 0xC2AE, 0x5E90, 0xC2AF, 0x7089, + 0xC2B0, 0x63B3, 0xC2B1, 0x5364, 0xC2B2, 0x864F, 0xC2B3, 0x9C81, 0xC2B4, 0x9E93, 0xC2B5, 0x788C, 0xC2B6, 0x9732, 0xC2B7, 0x8DEF, + 0xC2B8, 0x8D42, 0xC2B9, 0x9E7F, 0xC2BA, 0x6F5E, 0xC2BB, 0x7984, 0xC2BC, 0x5F55, 0xC2BD, 0x9646, 0xC2BE, 0x622E, 0xC2BF, 0x9A74, + 0xC2C0, 0x5415, 0xC2C1, 0x94DD, 0xC2C2, 0x4FA3, 0xC2C3, 0x65C5, 0xC2C4, 0x5C65, 0xC2C5, 0x5C61, 0xC2C6, 0x7F15, 0xC2C7, 0x8651, + 0xC2C8, 0x6C2F, 0xC2C9, 0x5F8B, 0xC2CA, 0x7387, 0xC2CB, 0x6EE4, 0xC2CC, 0x7EFF, 0xC2CD, 0x5CE6, 0xC2CE, 0x631B, 0xC2CF, 0x5B6A, + 0xC2D0, 0x6EE6, 0xC2D1, 0x5375, 0xC2D2, 0x4E71, 0xC2D3, 0x63A0, 0xC2D4, 0x7565, 0xC2D5, 0x62A1, 0xC2D6, 0x8F6E, 0xC2D7, 0x4F26, + 0xC2D8, 0x4ED1, 0xC2D9, 0x6CA6, 0xC2DA, 0x7EB6, 0xC2DB, 0x8BBA, 0xC2DC, 0x841D, 0xC2DD, 0x87BA, 0xC2DE, 0x7F57, 0xC2DF, 0x903B, + 0xC2E0, 0x9523, 0xC2E1, 0x7BA9, 0xC2E2, 0x9AA1, 0xC2E3, 0x88F8, 0xC2E4, 0x843D, 0xC2E5, 0x6D1B, 0xC2E6, 0x9A86, 0xC2E7, 0x7EDC, + 0xC2E8, 0x5988, 0xC2E9, 0x9EBB, 0xC2EA, 0x739B, 0xC2EB, 0x7801, 0xC2EC, 0x8682, 0xC2ED, 0x9A6C, 0xC2EE, 0x9A82, 0xC2EF, 0x561B, + 0xC2F0, 0x5417, 0xC2F1, 0x57CB, 0xC2F2, 0x4E70, 0xC2F3, 0x9EA6, 0xC2F4, 0x5356, 0xC2F5, 0x8FC8, 0xC2F6, 0x8109, 0xC2F7, 0x7792, + 0xC2F8, 0x9992, 0xC2F9, 0x86EE, 0xC2FA, 0x6EE1, 0xC2FB, 0x8513, 0xC2FC, 0x66FC, 0xC2FD, 0x6162, 0xC2FE, 0x6F2B, 0xC340, 0x807E, + 0xC341, 0x8081, 0xC342, 0x8082, 0xC343, 0x8085, 0xC344, 0x8088, 0xC345, 0x808A, 0xC346, 0x808D, 0xC347, 0x808E, 0xC348, 0x808F, + 0xC349, 0x8090, 0xC34A, 0x8091, 0xC34B, 0x8092, 0xC34C, 0x8094, 0xC34D, 0x8095, 0xC34E, 0x8097, 0xC34F, 0x8099, 0xC350, 0x809E, + 0xC351, 0x80A3, 0xC352, 0x80A6, 0xC353, 0x80A7, 0xC354, 0x80A8, 0xC355, 0x80AC, 0xC356, 0x80B0, 0xC357, 0x80B3, 0xC358, 0x80B5, + 0xC359, 0x80B6, 0xC35A, 0x80B8, 0xC35B, 0x80B9, 0xC35C, 0x80BB, 0xC35D, 0x80C5, 0xC35E, 0x80C7, 0xC35F, 0x80C8, 0xC360, 0x80C9, + 0xC361, 0x80CA, 0xC362, 0x80CB, 0xC363, 0x80CF, 0xC364, 0x80D0, 0xC365, 0x80D1, 0xC366, 0x80D2, 0xC367, 0x80D3, 0xC368, 0x80D4, + 0xC369, 0x80D5, 0xC36A, 0x80D8, 0xC36B, 0x80DF, 0xC36C, 0x80E0, 0xC36D, 0x80E2, 0xC36E, 0x80E3, 0xC36F, 0x80E6, 0xC370, 0x80EE, + 0xC371, 0x80F5, 0xC372, 0x80F7, 0xC373, 0x80F9, 0xC374, 0x80FB, 0xC375, 0x80FE, 0xC376, 0x80FF, 0xC377, 0x8100, 0xC378, 0x8101, + 0xC379, 0x8103, 0xC37A, 0x8104, 0xC37B, 0x8105, 0xC37C, 0x8107, 0xC37D, 0x8108, 0xC37E, 0x810B, 0xC380, 0x810C, 0xC381, 0x8115, + 0xC382, 0x8117, 0xC383, 0x8119, 0xC384, 0x811B, 0xC385, 0x811C, 0xC386, 0x811D, 0xC387, 0x811F, 0xC388, 0x8120, 0xC389, 0x8121, + 0xC38A, 0x8122, 0xC38B, 0x8123, 0xC38C, 0x8124, 0xC38D, 0x8125, 0xC38E, 0x8126, 0xC38F, 0x8127, 0xC390, 0x8128, 0xC391, 0x8129, + 0xC392, 0x812A, 0xC393, 0x812B, 0xC394, 0x812D, 0xC395, 0x812E, 0xC396, 0x8130, 0xC397, 0x8133, 0xC398, 0x8134, 0xC399, 0x8135, + 0xC39A, 0x8137, 0xC39B, 0x8139, 0xC39C, 0x813A, 0xC39D, 0x813B, 0xC39E, 0x813C, 0xC39F, 0x813D, 0xC3A0, 0x813F, 0xC3A1, 0x8C29, + 0xC3A2, 0x8292, 0xC3A3, 0x832B, 0xC3A4, 0x76F2, 0xC3A5, 0x6C13, 0xC3A6, 0x5FD9, 0xC3A7, 0x83BD, 0xC3A8, 0x732B, 0xC3A9, 0x8305, + 0xC3AA, 0x951A, 0xC3AB, 0x6BDB, 0xC3AC, 0x77DB, 0xC3AD, 0x94C6, 0xC3AE, 0x536F, 0xC3AF, 0x8302, 0xC3B0, 0x5192, 0xC3B1, 0x5E3D, + 0xC3B2, 0x8C8C, 0xC3B3, 0x8D38, 0xC3B4, 0x4E48, 0xC3B5, 0x73AB, 0xC3B6, 0x679A, 0xC3B7, 0x6885, 0xC3B8, 0x9176, 0xC3B9, 0x9709, + 0xC3BA, 0x7164, 0xC3BB, 0x6CA1, 0xC3BC, 0x7709, 0xC3BD, 0x5A92, 0xC3BE, 0x9541, 0xC3BF, 0x6BCF, 0xC3C0, 0x7F8E, 0xC3C1, 0x6627, + 0xC3C2, 0x5BD0, 0xC3C3, 0x59B9, 0xC3C4, 0x5A9A, 0xC3C5, 0x95E8, 0xC3C6, 0x95F7, 0xC3C7, 0x4EEC, 0xC3C8, 0x840C, 0xC3C9, 0x8499, + 0xC3CA, 0x6AAC, 0xC3CB, 0x76DF, 0xC3CC, 0x9530, 0xC3CD, 0x731B, 0xC3CE, 0x68A6, 0xC3CF, 0x5B5F, 0xC3D0, 0x772F, 0xC3D1, 0x919A, + 0xC3D2, 0x9761, 0xC3D3, 0x7CDC, 0xC3D4, 0x8FF7, 0xC3D5, 0x8C1C, 0xC3D6, 0x5F25, 0xC3D7, 0x7C73, 0xC3D8, 0x79D8, 0xC3D9, 0x89C5, + 0xC3DA, 0x6CCC, 0xC3DB, 0x871C, 0xC3DC, 0x5BC6, 0xC3DD, 0x5E42, 0xC3DE, 0x68C9, 0xC3DF, 0x7720, 0xC3E0, 0x7EF5, 0xC3E1, 0x5195, + 0xC3E2, 0x514D, 0xC3E3, 0x52C9, 0xC3E4, 0x5A29, 0xC3E5, 0x7F05, 0xC3E6, 0x9762, 0xC3E7, 0x82D7, 0xC3E8, 0x63CF, 0xC3E9, 0x7784, + 0xC3EA, 0x85D0, 0xC3EB, 0x79D2, 0xC3EC, 0x6E3A, 0xC3ED, 0x5E99, 0xC3EE, 0x5999, 0xC3EF, 0x8511, 0xC3F0, 0x706D, 0xC3F1, 0x6C11, + 0xC3F2, 0x62BF, 0xC3F3, 0x76BF, 0xC3F4, 0x654F, 0xC3F5, 0x60AF, 0xC3F6, 0x95FD, 0xC3F7, 0x660E, 0xC3F8, 0x879F, 0xC3F9, 0x9E23, + 0xC3FA, 0x94ED, 0xC3FB, 0x540D, 0xC3FC, 0x547D, 0xC3FD, 0x8C2C, 0xC3FE, 0x6478, 0xC440, 0x8140, 0xC441, 0x8141, 0xC442, 0x8142, + 0xC443, 0x8143, 0xC444, 0x8144, 0xC445, 0x8145, 0xC446, 0x8147, 0xC447, 0x8149, 0xC448, 0x814D, 0xC449, 0x814E, 0xC44A, 0x814F, + 0xC44B, 0x8152, 0xC44C, 0x8156, 0xC44D, 0x8157, 0xC44E, 0x8158, 0xC44F, 0x815B, 0xC450, 0x815C, 0xC451, 0x815D, 0xC452, 0x815E, + 0xC453, 0x815F, 0xC454, 0x8161, 0xC455, 0x8162, 0xC456, 0x8163, 0xC457, 0x8164, 0xC458, 0x8166, 0xC459, 0x8168, 0xC45A, 0x816A, + 0xC45B, 0x816B, 0xC45C, 0x816C, 0xC45D, 0x816F, 0xC45E, 0x8172, 0xC45F, 0x8173, 0xC460, 0x8175, 0xC461, 0x8176, 0xC462, 0x8177, + 0xC463, 0x8178, 0xC464, 0x8181, 0xC465, 0x8183, 0xC466, 0x8184, 0xC467, 0x8185, 0xC468, 0x8186, 0xC469, 0x8187, 0xC46A, 0x8189, + 0xC46B, 0x818B, 0xC46C, 0x818C, 0xC46D, 0x818D, 0xC46E, 0x818E, 0xC46F, 0x8190, 0xC470, 0x8192, 0xC471, 0x8193, 0xC472, 0x8194, + 0xC473, 0x8195, 0xC474, 0x8196, 0xC475, 0x8197, 0xC476, 0x8199, 0xC477, 0x819A, 0xC478, 0x819E, 0xC479, 0x819F, 0xC47A, 0x81A0, + 0xC47B, 0x81A1, 0xC47C, 0x81A2, 0xC47D, 0x81A4, 0xC47E, 0x81A5, 0xC480, 0x81A7, 0xC481, 0x81A9, 0xC482, 0x81AB, 0xC483, 0x81AC, + 0xC484, 0x81AD, 0xC485, 0x81AE, 0xC486, 0x81AF, 0xC487, 0x81B0, 0xC488, 0x81B1, 0xC489, 0x81B2, 0xC48A, 0x81B4, 0xC48B, 0x81B5, + 0xC48C, 0x81B6, 0xC48D, 0x81B7, 0xC48E, 0x81B8, 0xC48F, 0x81B9, 0xC490, 0x81BC, 0xC491, 0x81BD, 0xC492, 0x81BE, 0xC493, 0x81BF, + 0xC494, 0x81C4, 0xC495, 0x81C5, 0xC496, 0x81C7, 0xC497, 0x81C8, 0xC498, 0x81C9, 0xC499, 0x81CB, 0xC49A, 0x81CD, 0xC49B, 0x81CE, + 0xC49C, 0x81CF, 0xC49D, 0x81D0, 0xC49E, 0x81D1, 0xC49F, 0x81D2, 0xC4A0, 0x81D3, 0xC4A1, 0x6479, 0xC4A2, 0x8611, 0xC4A3, 0x6A21, + 0xC4A4, 0x819C, 0xC4A5, 0x78E8, 0xC4A6, 0x6469, 0xC4A7, 0x9B54, 0xC4A8, 0x62B9, 0xC4A9, 0x672B, 0xC4AA, 0x83AB, 0xC4AB, 0x58A8, + 0xC4AC, 0x9ED8, 0xC4AD, 0x6CAB, 0xC4AE, 0x6F20, 0xC4AF, 0x5BDE, 0xC4B0, 0x964C, 0xC4B1, 0x8C0B, 0xC4B2, 0x725F, 0xC4B3, 0x67D0, + 0xC4B4, 0x62C7, 0xC4B5, 0x7261, 0xC4B6, 0x4EA9, 0xC4B7, 0x59C6, 0xC4B8, 0x6BCD, 0xC4B9, 0x5893, 0xC4BA, 0x66AE, 0xC4BB, 0x5E55, + 0xC4BC, 0x52DF, 0xC4BD, 0x6155, 0xC4BE, 0x6728, 0xC4BF, 0x76EE, 0xC4C0, 0x7766, 0xC4C1, 0x7267, 0xC4C2, 0x7A46, 0xC4C3, 0x62FF, + 0xC4C4, 0x54EA, 0xC4C5, 0x5450, 0xC4C6, 0x94A0, 0xC4C7, 0x90A3, 0xC4C8, 0x5A1C, 0xC4C9, 0x7EB3, 0xC4CA, 0x6C16, 0xC4CB, 0x4E43, + 0xC4CC, 0x5976, 0xC4CD, 0x8010, 0xC4CE, 0x5948, 0xC4CF, 0x5357, 0xC4D0, 0x7537, 0xC4D1, 0x96BE, 0xC4D2, 0x56CA, 0xC4D3, 0x6320, + 0xC4D4, 0x8111, 0xC4D5, 0x607C, 0xC4D6, 0x95F9, 0xC4D7, 0x6DD6, 0xC4D8, 0x5462, 0xC4D9, 0x9981, 0xC4DA, 0x5185, 0xC4DB, 0x5AE9, + 0xC4DC, 0x80FD, 0xC4DD, 0x59AE, 0xC4DE, 0x9713, 0xC4DF, 0x502A, 0xC4E0, 0x6CE5, 0xC4E1, 0x5C3C, 0xC4E2, 0x62DF, 0xC4E3, 0x4F60, + 0xC4E4, 0x533F, 0xC4E5, 0x817B, 0xC4E6, 0x9006, 0xC4E7, 0x6EBA, 0xC4E8, 0x852B, 0xC4E9, 0x62C8, 0xC4EA, 0x5E74, 0xC4EB, 0x78BE, + 0xC4EC, 0x64B5, 0xC4ED, 0x637B, 0xC4EE, 0x5FF5, 0xC4EF, 0x5A18, 0xC4F0, 0x917F, 0xC4F1, 0x9E1F, 0xC4F2, 0x5C3F, 0xC4F3, 0x634F, + 0xC4F4, 0x8042, 0xC4F5, 0x5B7D, 0xC4F6, 0x556E, 0xC4F7, 0x954A, 0xC4F8, 0x954D, 0xC4F9, 0x6D85, 0xC4FA, 0x60A8, 0xC4FB, 0x67E0, + 0xC4FC, 0x72DE, 0xC4FD, 0x51DD, 0xC4FE, 0x5B81, 0xC540, 0x81D4, 0xC541, 0x81D5, 0xC542, 0x81D6, 0xC543, 0x81D7, 0xC544, 0x81D8, + 0xC545, 0x81D9, 0xC546, 0x81DA, 0xC547, 0x81DB, 0xC548, 0x81DC, 0xC549, 0x81DD, 0xC54A, 0x81DE, 0xC54B, 0x81DF, 0xC54C, 0x81E0, + 0xC54D, 0x81E1, 0xC54E, 0x81E2, 0xC54F, 0x81E4, 0xC550, 0x81E5, 0xC551, 0x81E6, 0xC552, 0x81E8, 0xC553, 0x81E9, 0xC554, 0x81EB, + 0xC555, 0x81EE, 0xC556, 0x81EF, 0xC557, 0x81F0, 0xC558, 0x81F1, 0xC559, 0x81F2, 0xC55A, 0x81F5, 0xC55B, 0x81F6, 0xC55C, 0x81F7, + 0xC55D, 0x81F8, 0xC55E, 0x81F9, 0xC55F, 0x81FA, 0xC560, 0x81FD, 0xC561, 0x81FF, 0xC562, 0x8203, 0xC563, 0x8207, 0xC564, 0x8208, + 0xC565, 0x8209, 0xC566, 0x820A, 0xC567, 0x820B, 0xC568, 0x820E, 0xC569, 0x820F, 0xC56A, 0x8211, 0xC56B, 0x8213, 0xC56C, 0x8215, + 0xC56D, 0x8216, 0xC56E, 0x8217, 0xC56F, 0x8218, 0xC570, 0x8219, 0xC571, 0x821A, 0xC572, 0x821D, 0xC573, 0x8220, 0xC574, 0x8224, + 0xC575, 0x8225, 0xC576, 0x8226, 0xC577, 0x8227, 0xC578, 0x8229, 0xC579, 0x822E, 0xC57A, 0x8232, 0xC57B, 0x823A, 0xC57C, 0x823C, + 0xC57D, 0x823D, 0xC57E, 0x823F, 0xC580, 0x8240, 0xC581, 0x8241, 0xC582, 0x8242, 0xC583, 0x8243, 0xC584, 0x8245, 0xC585, 0x8246, + 0xC586, 0x8248, 0xC587, 0x824A, 0xC588, 0x824C, 0xC589, 0x824D, 0xC58A, 0x824E, 0xC58B, 0x8250, 0xC58C, 0x8251, 0xC58D, 0x8252, + 0xC58E, 0x8253, 0xC58F, 0x8254, 0xC590, 0x8255, 0xC591, 0x8256, 0xC592, 0x8257, 0xC593, 0x8259, 0xC594, 0x825B, 0xC595, 0x825C, + 0xC596, 0x825D, 0xC597, 0x825E, 0xC598, 0x8260, 0xC599, 0x8261, 0xC59A, 0x8262, 0xC59B, 0x8263, 0xC59C, 0x8264, 0xC59D, 0x8265, + 0xC59E, 0x8266, 0xC59F, 0x8267, 0xC5A0, 0x8269, 0xC5A1, 0x62E7, 0xC5A2, 0x6CDE, 0xC5A3, 0x725B, 0xC5A4, 0x626D, 0xC5A5, 0x94AE, + 0xC5A6, 0x7EBD, 0xC5A7, 0x8113, 0xC5A8, 0x6D53, 0xC5A9, 0x519C, 0xC5AA, 0x5F04, 0xC5AB, 0x5974, 0xC5AC, 0x52AA, 0xC5AD, 0x6012, + 0xC5AE, 0x5973, 0xC5AF, 0x6696, 0xC5B0, 0x8650, 0xC5B1, 0x759F, 0xC5B2, 0x632A, 0xC5B3, 0x61E6, 0xC5B4, 0x7CEF, 0xC5B5, 0x8BFA, + 0xC5B6, 0x54E6, 0xC5B7, 0x6B27, 0xC5B8, 0x9E25, 0xC5B9, 0x6BB4, 0xC5BA, 0x85D5, 0xC5BB, 0x5455, 0xC5BC, 0x5076, 0xC5BD, 0x6CA4, + 0xC5BE, 0x556A, 0xC5BF, 0x8DB4, 0xC5C0, 0x722C, 0xC5C1, 0x5E15, 0xC5C2, 0x6015, 0xC5C3, 0x7436, 0xC5C4, 0x62CD, 0xC5C5, 0x6392, + 0xC5C6, 0x724C, 0xC5C7, 0x5F98, 0xC5C8, 0x6E43, 0xC5C9, 0x6D3E, 0xC5CA, 0x6500, 0xC5CB, 0x6F58, 0xC5CC, 0x76D8, 0xC5CD, 0x78D0, + 0xC5CE, 0x76FC, 0xC5CF, 0x7554, 0xC5D0, 0x5224, 0xC5D1, 0x53DB, 0xC5D2, 0x4E53, 0xC5D3, 0x5E9E, 0xC5D4, 0x65C1, 0xC5D5, 0x802A, + 0xC5D6, 0x80D6, 0xC5D7, 0x629B, 0xC5D8, 0x5486, 0xC5D9, 0x5228, 0xC5DA, 0x70AE, 0xC5DB, 0x888D, 0xC5DC, 0x8DD1, 0xC5DD, 0x6CE1, + 0xC5DE, 0x5478, 0xC5DF, 0x80DA, 0xC5E0, 0x57F9, 0xC5E1, 0x88F4, 0xC5E2, 0x8D54, 0xC5E3, 0x966A, 0xC5E4, 0x914D, 0xC5E5, 0x4F69, + 0xC5E6, 0x6C9B, 0xC5E7, 0x55B7, 0xC5E8, 0x76C6, 0xC5E9, 0x7830, 0xC5EA, 0x62A8, 0xC5EB, 0x70F9, 0xC5EC, 0x6F8E, 0xC5ED, 0x5F6D, + 0xC5EE, 0x84EC, 0xC5EF, 0x68DA, 0xC5F0, 0x787C, 0xC5F1, 0x7BF7, 0xC5F2, 0x81A8, 0xC5F3, 0x670B, 0xC5F4, 0x9E4F, 0xC5F5, 0x6367, + 0xC5F6, 0x78B0, 0xC5F7, 0x576F, 0xC5F8, 0x7812, 0xC5F9, 0x9739, 0xC5FA, 0x6279, 0xC5FB, 0x62AB, 0xC5FC, 0x5288, 0xC5FD, 0x7435, + 0xC5FE, 0x6BD7, 0xC640, 0x826A, 0xC641, 0x826B, 0xC642, 0x826C, 0xC643, 0x826D, 0xC644, 0x8271, 0xC645, 0x8275, 0xC646, 0x8276, + 0xC647, 0x8277, 0xC648, 0x8278, 0xC649, 0x827B, 0xC64A, 0x827C, 0xC64B, 0x8280, 0xC64C, 0x8281, 0xC64D, 0x8283, 0xC64E, 0x8285, + 0xC64F, 0x8286, 0xC650, 0x8287, 0xC651, 0x8289, 0xC652, 0x828C, 0xC653, 0x8290, 0xC654, 0x8293, 0xC655, 0x8294, 0xC656, 0x8295, + 0xC657, 0x8296, 0xC658, 0x829A, 0xC659, 0x829B, 0xC65A, 0x829E, 0xC65B, 0x82A0, 0xC65C, 0x82A2, 0xC65D, 0x82A3, 0xC65E, 0x82A7, + 0xC65F, 0x82B2, 0xC660, 0x82B5, 0xC661, 0x82B6, 0xC662, 0x82BA, 0xC663, 0x82BB, 0xC664, 0x82BC, 0xC665, 0x82BF, 0xC666, 0x82C0, + 0xC667, 0x82C2, 0xC668, 0x82C3, 0xC669, 0x82C5, 0xC66A, 0x82C6, 0xC66B, 0x82C9, 0xC66C, 0x82D0, 0xC66D, 0x82D6, 0xC66E, 0x82D9, + 0xC66F, 0x82DA, 0xC670, 0x82DD, 0xC671, 0x82E2, 0xC672, 0x82E7, 0xC673, 0x82E8, 0xC674, 0x82E9, 0xC675, 0x82EA, 0xC676, 0x82EC, + 0xC677, 0x82ED, 0xC678, 0x82EE, 0xC679, 0x82F0, 0xC67A, 0x82F2, 0xC67B, 0x82F3, 0xC67C, 0x82F5, 0xC67D, 0x82F6, 0xC67E, 0x82F8, + 0xC680, 0x82FA, 0xC681, 0x82FC, 0xC682, 0x82FD, 0xC683, 0x82FE, 0xC684, 0x82FF, 0xC685, 0x8300, 0xC686, 0x830A, 0xC687, 0x830B, + 0xC688, 0x830D, 0xC689, 0x8310, 0xC68A, 0x8312, 0xC68B, 0x8313, 0xC68C, 0x8316, 0xC68D, 0x8318, 0xC68E, 0x8319, 0xC68F, 0x831D, + 0xC690, 0x831E, 0xC691, 0x831F, 0xC692, 0x8320, 0xC693, 0x8321, 0xC694, 0x8322, 0xC695, 0x8323, 0xC696, 0x8324, 0xC697, 0x8325, + 0xC698, 0x8326, 0xC699, 0x8329, 0xC69A, 0x832A, 0xC69B, 0x832E, 0xC69C, 0x8330, 0xC69D, 0x8332, 0xC69E, 0x8337, 0xC69F, 0x833B, + 0xC6A0, 0x833D, 0xC6A1, 0x5564, 0xC6A2, 0x813E, 0xC6A3, 0x75B2, 0xC6A4, 0x76AE, 0xC6A5, 0x5339, 0xC6A6, 0x75DE, 0xC6A7, 0x50FB, + 0xC6A8, 0x5C41, 0xC6A9, 0x8B6C, 0xC6AA, 0x7BC7, 0xC6AB, 0x504F, 0xC6AC, 0x7247, 0xC6AD, 0x9A97, 0xC6AE, 0x98D8, 0xC6AF, 0x6F02, + 0xC6B0, 0x74E2, 0xC6B1, 0x7968, 0xC6B2, 0x6487, 0xC6B3, 0x77A5, 0xC6B4, 0x62FC, 0xC6B5, 0x9891, 0xC6B6, 0x8D2B, 0xC6B7, 0x54C1, + 0xC6B8, 0x8058, 0xC6B9, 0x4E52, 0xC6BA, 0x576A, 0xC6BB, 0x82F9, 0xC6BC, 0x840D, 0xC6BD, 0x5E73, 0xC6BE, 0x51ED, 0xC6BF, 0x74F6, + 0xC6C0, 0x8BC4, 0xC6C1, 0x5C4F, 0xC6C2, 0x5761, 0xC6C3, 0x6CFC, 0xC6C4, 0x9887, 0xC6C5, 0x5A46, 0xC6C6, 0x7834, 0xC6C7, 0x9B44, + 0xC6C8, 0x8FEB, 0xC6C9, 0x7C95, 0xC6CA, 0x5256, 0xC6CB, 0x6251, 0xC6CC, 0x94FA, 0xC6CD, 0x4EC6, 0xC6CE, 0x8386, 0xC6CF, 0x8461, + 0xC6D0, 0x83E9, 0xC6D1, 0x84B2, 0xC6D2, 0x57D4, 0xC6D3, 0x6734, 0xC6D4, 0x5703, 0xC6D5, 0x666E, 0xC6D6, 0x6D66, 0xC6D7, 0x8C31, + 0xC6D8, 0x66DD, 0xC6D9, 0x7011, 0xC6DA, 0x671F, 0xC6DB, 0x6B3A, 0xC6DC, 0x6816, 0xC6DD, 0x621A, 0xC6DE, 0x59BB, 0xC6DF, 0x4E03, + 0xC6E0, 0x51C4, 0xC6E1, 0x6F06, 0xC6E2, 0x67D2, 0xC6E3, 0x6C8F, 0xC6E4, 0x5176, 0xC6E5, 0x68CB, 0xC6E6, 0x5947, 0xC6E7, 0x6B67, + 0xC6E8, 0x7566, 0xC6E9, 0x5D0E, 0xC6EA, 0x8110, 0xC6EB, 0x9F50, 0xC6EC, 0x65D7, 0xC6ED, 0x7948, 0xC6EE, 0x7941, 0xC6EF, 0x9A91, + 0xC6F0, 0x8D77, 0xC6F1, 0x5C82, 0xC6F2, 0x4E5E, 0xC6F3, 0x4F01, 0xC6F4, 0x542F, 0xC6F5, 0x5951, 0xC6F6, 0x780C, 0xC6F7, 0x5668, + 0xC6F8, 0x6C14, 0xC6F9, 0x8FC4, 0xC6FA, 0x5F03, 0xC6FB, 0x6C7D, 0xC6FC, 0x6CE3, 0xC6FD, 0x8BAB, 0xC6FE, 0x6390, 0xC740, 0x833E, + 0xC741, 0x833F, 0xC742, 0x8341, 0xC743, 0x8342, 0xC744, 0x8344, 0xC745, 0x8345, 0xC746, 0x8348, 0xC747, 0x834A, 0xC748, 0x834B, + 0xC749, 0x834C, 0xC74A, 0x834D, 0xC74B, 0x834E, 0xC74C, 0x8353, 0xC74D, 0x8355, 0xC74E, 0x8356, 0xC74F, 0x8357, 0xC750, 0x8358, + 0xC751, 0x8359, 0xC752, 0x835D, 0xC753, 0x8362, 0xC754, 0x8370, 0xC755, 0x8371, 0xC756, 0x8372, 0xC757, 0x8373, 0xC758, 0x8374, + 0xC759, 0x8375, 0xC75A, 0x8376, 0xC75B, 0x8379, 0xC75C, 0x837A, 0xC75D, 0x837E, 0xC75E, 0x837F, 0xC75F, 0x8380, 0xC760, 0x8381, + 0xC761, 0x8382, 0xC762, 0x8383, 0xC763, 0x8384, 0xC764, 0x8387, 0xC765, 0x8388, 0xC766, 0x838A, 0xC767, 0x838B, 0xC768, 0x838C, + 0xC769, 0x838D, 0xC76A, 0x838F, 0xC76B, 0x8390, 0xC76C, 0x8391, 0xC76D, 0x8394, 0xC76E, 0x8395, 0xC76F, 0x8396, 0xC770, 0x8397, + 0xC771, 0x8399, 0xC772, 0x839A, 0xC773, 0x839D, 0xC774, 0x839F, 0xC775, 0x83A1, 0xC776, 0x83A2, 0xC777, 0x83A3, 0xC778, 0x83A4, + 0xC779, 0x83A5, 0xC77A, 0x83A6, 0xC77B, 0x83A7, 0xC77C, 0x83AC, 0xC77D, 0x83AD, 0xC77E, 0x83AE, 0xC780, 0x83AF, 0xC781, 0x83B5, + 0xC782, 0x83BB, 0xC783, 0x83BE, 0xC784, 0x83BF, 0xC785, 0x83C2, 0xC786, 0x83C3, 0xC787, 0x83C4, 0xC788, 0x83C6, 0xC789, 0x83C8, + 0xC78A, 0x83C9, 0xC78B, 0x83CB, 0xC78C, 0x83CD, 0xC78D, 0x83CE, 0xC78E, 0x83D0, 0xC78F, 0x83D1, 0xC790, 0x83D2, 0xC791, 0x83D3, + 0xC792, 0x83D5, 0xC793, 0x83D7, 0xC794, 0x83D9, 0xC795, 0x83DA, 0xC796, 0x83DB, 0xC797, 0x83DE, 0xC798, 0x83E2, 0xC799, 0x83E3, + 0xC79A, 0x83E4, 0xC79B, 0x83E6, 0xC79C, 0x83E7, 0xC79D, 0x83E8, 0xC79E, 0x83EB, 0xC79F, 0x83EC, 0xC7A0, 0x83ED, 0xC7A1, 0x6070, + 0xC7A2, 0x6D3D, 0xC7A3, 0x7275, 0xC7A4, 0x6266, 0xC7A5, 0x948E, 0xC7A6, 0x94C5, 0xC7A7, 0x5343, 0xC7A8, 0x8FC1, 0xC7A9, 0x7B7E, + 0xC7AA, 0x4EDF, 0xC7AB, 0x8C26, 0xC7AC, 0x4E7E, 0xC7AD, 0x9ED4, 0xC7AE, 0x94B1, 0xC7AF, 0x94B3, 0xC7B0, 0x524D, 0xC7B1, 0x6F5C, + 0xC7B2, 0x9063, 0xC7B3, 0x6D45, 0xC7B4, 0x8C34, 0xC7B5, 0x5811, 0xC7B6, 0x5D4C, 0xC7B7, 0x6B20, 0xC7B8, 0x6B49, 0xC7B9, 0x67AA, + 0xC7BA, 0x545B, 0xC7BB, 0x8154, 0xC7BC, 0x7F8C, 0xC7BD, 0x5899, 0xC7BE, 0x8537, 0xC7BF, 0x5F3A, 0xC7C0, 0x62A2, 0xC7C1, 0x6A47, + 0xC7C2, 0x9539, 0xC7C3, 0x6572, 0xC7C4, 0x6084, 0xC7C5, 0x6865, 0xC7C6, 0x77A7, 0xC7C7, 0x4E54, 0xC7C8, 0x4FA8, 0xC7C9, 0x5DE7, + 0xC7CA, 0x9798, 0xC7CB, 0x64AC, 0xC7CC, 0x7FD8, 0xC7CD, 0x5CED, 0xC7CE, 0x4FCF, 0xC7CF, 0x7A8D, 0xC7D0, 0x5207, 0xC7D1, 0x8304, + 0xC7D2, 0x4E14, 0xC7D3, 0x602F, 0xC7D4, 0x7A83, 0xC7D5, 0x94A6, 0xC7D6, 0x4FB5, 0xC7D7, 0x4EB2, 0xC7D8, 0x79E6, 0xC7D9, 0x7434, + 0xC7DA, 0x52E4, 0xC7DB, 0x82B9, 0xC7DC, 0x64D2, 0xC7DD, 0x79BD, 0xC7DE, 0x5BDD, 0xC7DF, 0x6C81, 0xC7E0, 0x9752, 0xC7E1, 0x8F7B, + 0xC7E2, 0x6C22, 0xC7E3, 0x503E, 0xC7E4, 0x537F, 0xC7E5, 0x6E05, 0xC7E6, 0x64CE, 0xC7E7, 0x6674, 0xC7E8, 0x6C30, 0xC7E9, 0x60C5, + 0xC7EA, 0x9877, 0xC7EB, 0x8BF7, 0xC7EC, 0x5E86, 0xC7ED, 0x743C, 0xC7EE, 0x7A77, 0xC7EF, 0x79CB, 0xC7F0, 0x4E18, 0xC7F1, 0x90B1, + 0xC7F2, 0x7403, 0xC7F3, 0x6C42, 0xC7F4, 0x56DA, 0xC7F5, 0x914B, 0xC7F6, 0x6CC5, 0xC7F7, 0x8D8B, 0xC7F8, 0x533A, 0xC7F9, 0x86C6, + 0xC7FA, 0x66F2, 0xC7FB, 0x8EAF, 0xC7FC, 0x5C48, 0xC7FD, 0x9A71, 0xC7FE, 0x6E20, 0xC840, 0x83EE, 0xC841, 0x83EF, 0xC842, 0x83F3, + 0xC843, 0x83F4, 0xC844, 0x83F5, 0xC845, 0x83F6, 0xC846, 0x83F7, 0xC847, 0x83FA, 0xC848, 0x83FB, 0xC849, 0x83FC, 0xC84A, 0x83FE, + 0xC84B, 0x83FF, 0xC84C, 0x8400, 0xC84D, 0x8402, 0xC84E, 0x8405, 0xC84F, 0x8407, 0xC850, 0x8408, 0xC851, 0x8409, 0xC852, 0x840A, + 0xC853, 0x8410, 0xC854, 0x8412, 0xC855, 0x8413, 0xC856, 0x8414, 0xC857, 0x8415, 0xC858, 0x8416, 0xC859, 0x8417, 0xC85A, 0x8419, + 0xC85B, 0x841A, 0xC85C, 0x841B, 0xC85D, 0x841E, 0xC85E, 0x841F, 0xC85F, 0x8420, 0xC860, 0x8421, 0xC861, 0x8422, 0xC862, 0x8423, + 0xC863, 0x8429, 0xC864, 0x842A, 0xC865, 0x842B, 0xC866, 0x842C, 0xC867, 0x842D, 0xC868, 0x842E, 0xC869, 0x842F, 0xC86A, 0x8430, + 0xC86B, 0x8432, 0xC86C, 0x8433, 0xC86D, 0x8434, 0xC86E, 0x8435, 0xC86F, 0x8436, 0xC870, 0x8437, 0xC871, 0x8439, 0xC872, 0x843A, + 0xC873, 0x843B, 0xC874, 0x843E, 0xC875, 0x843F, 0xC876, 0x8440, 0xC877, 0x8441, 0xC878, 0x8442, 0xC879, 0x8443, 0xC87A, 0x8444, + 0xC87B, 0x8445, 0xC87C, 0x8447, 0xC87D, 0x8448, 0xC87E, 0x8449, 0xC880, 0x844A, 0xC881, 0x844B, 0xC882, 0x844C, 0xC883, 0x844D, + 0xC884, 0x844E, 0xC885, 0x844F, 0xC886, 0x8450, 0xC887, 0x8452, 0xC888, 0x8453, 0xC889, 0x8454, 0xC88A, 0x8455, 0xC88B, 0x8456, + 0xC88C, 0x8458, 0xC88D, 0x845D, 0xC88E, 0x845E, 0xC88F, 0x845F, 0xC890, 0x8460, 0xC891, 0x8462, 0xC892, 0x8464, 0xC893, 0x8465, + 0xC894, 0x8466, 0xC895, 0x8467, 0xC896, 0x8468, 0xC897, 0x846A, 0xC898, 0x846E, 0xC899, 0x846F, 0xC89A, 0x8470, 0xC89B, 0x8472, + 0xC89C, 0x8474, 0xC89D, 0x8477, 0xC89E, 0x8479, 0xC89F, 0x847B, 0xC8A0, 0x847C, 0xC8A1, 0x53D6, 0xC8A2, 0x5A36, 0xC8A3, 0x9F8B, + 0xC8A4, 0x8DA3, 0xC8A5, 0x53BB, 0xC8A6, 0x5708, 0xC8A7, 0x98A7, 0xC8A8, 0x6743, 0xC8A9, 0x919B, 0xC8AA, 0x6CC9, 0xC8AB, 0x5168, + 0xC8AC, 0x75CA, 0xC8AD, 0x62F3, 0xC8AE, 0x72AC, 0xC8AF, 0x5238, 0xC8B0, 0x529D, 0xC8B1, 0x7F3A, 0xC8B2, 0x7094, 0xC8B3, 0x7638, + 0xC8B4, 0x5374, 0xC8B5, 0x9E4A, 0xC8B6, 0x69B7, 0xC8B7, 0x786E, 0xC8B8, 0x96C0, 0xC8B9, 0x88D9, 0xC8BA, 0x7FA4, 0xC8BB, 0x7136, + 0xC8BC, 0x71C3, 0xC8BD, 0x5189, 0xC8BE, 0x67D3, 0xC8BF, 0x74E4, 0xC8C0, 0x58E4, 0xC8C1, 0x6518, 0xC8C2, 0x56B7, 0xC8C3, 0x8BA9, + 0xC8C4, 0x9976, 0xC8C5, 0x6270, 0xC8C6, 0x7ED5, 0xC8C7, 0x60F9, 0xC8C8, 0x70ED, 0xC8C9, 0x58EC, 0xC8CA, 0x4EC1, 0xC8CB, 0x4EBA, + 0xC8CC, 0x5FCD, 0xC8CD, 0x97E7, 0xC8CE, 0x4EFB, 0xC8CF, 0x8BA4, 0xC8D0, 0x5203, 0xC8D1, 0x598A, 0xC8D2, 0x7EAB, 0xC8D3, 0x6254, + 0xC8D4, 0x4ECD, 0xC8D5, 0x65E5, 0xC8D6, 0x620E, 0xC8D7, 0x8338, 0xC8D8, 0x84C9, 0xC8D9, 0x8363, 0xC8DA, 0x878D, 0xC8DB, 0x7194, + 0xC8DC, 0x6EB6, 0xC8DD, 0x5BB9, 0xC8DE, 0x7ED2, 0xC8DF, 0x5197, 0xC8E0, 0x63C9, 0xC8E1, 0x67D4, 0xC8E2, 0x8089, 0xC8E3, 0x8339, + 0xC8E4, 0x8815, 0xC8E5, 0x5112, 0xC8E6, 0x5B7A, 0xC8E7, 0x5982, 0xC8E8, 0x8FB1, 0xC8E9, 0x4E73, 0xC8EA, 0x6C5D, 0xC8EB, 0x5165, + 0xC8EC, 0x8925, 0xC8ED, 0x8F6F, 0xC8EE, 0x962E, 0xC8EF, 0x854A, 0xC8F0, 0x745E, 0xC8F1, 0x9510, 0xC8F2, 0x95F0, 0xC8F3, 0x6DA6, + 0xC8F4, 0x82E5, 0xC8F5, 0x5F31, 0xC8F6, 0x6492, 0xC8F7, 0x6D12, 0xC8F8, 0x8428, 0xC8F9, 0x816E, 0xC8FA, 0x9CC3, 0xC8FB, 0x585E, + 0xC8FC, 0x8D5B, 0xC8FD, 0x4E09, 0xC8FE, 0x53C1, 0xC940, 0x847D, 0xC941, 0x847E, 0xC942, 0x847F, 0xC943, 0x8480, 0xC944, 0x8481, + 0xC945, 0x8483, 0xC946, 0x8484, 0xC947, 0x8485, 0xC948, 0x8486, 0xC949, 0x848A, 0xC94A, 0x848D, 0xC94B, 0x848F, 0xC94C, 0x8490, + 0xC94D, 0x8491, 0xC94E, 0x8492, 0xC94F, 0x8493, 0xC950, 0x8494, 0xC951, 0x8495, 0xC952, 0x8496, 0xC953, 0x8498, 0xC954, 0x849A, + 0xC955, 0x849B, 0xC956, 0x849D, 0xC957, 0x849E, 0xC958, 0x849F, 0xC959, 0x84A0, 0xC95A, 0x84A2, 0xC95B, 0x84A3, 0xC95C, 0x84A4, + 0xC95D, 0x84A5, 0xC95E, 0x84A6, 0xC95F, 0x84A7, 0xC960, 0x84A8, 0xC961, 0x84A9, 0xC962, 0x84AA, 0xC963, 0x84AB, 0xC964, 0x84AC, + 0xC965, 0x84AD, 0xC966, 0x84AE, 0xC967, 0x84B0, 0xC968, 0x84B1, 0xC969, 0x84B3, 0xC96A, 0x84B5, 0xC96B, 0x84B6, 0xC96C, 0x84B7, + 0xC96D, 0x84BB, 0xC96E, 0x84BC, 0xC96F, 0x84BE, 0xC970, 0x84C0, 0xC971, 0x84C2, 0xC972, 0x84C3, 0xC973, 0x84C5, 0xC974, 0x84C6, + 0xC975, 0x84C7, 0xC976, 0x84C8, 0xC977, 0x84CB, 0xC978, 0x84CC, 0xC979, 0x84CE, 0xC97A, 0x84CF, 0xC97B, 0x84D2, 0xC97C, 0x84D4, + 0xC97D, 0x84D5, 0xC97E, 0x84D7, 0xC980, 0x84D8, 0xC981, 0x84D9, 0xC982, 0x84DA, 0xC983, 0x84DB, 0xC984, 0x84DC, 0xC985, 0x84DE, + 0xC986, 0x84E1, 0xC987, 0x84E2, 0xC988, 0x84E4, 0xC989, 0x84E7, 0xC98A, 0x84E8, 0xC98B, 0x84E9, 0xC98C, 0x84EA, 0xC98D, 0x84EB, + 0xC98E, 0x84ED, 0xC98F, 0x84EE, 0xC990, 0x84EF, 0xC991, 0x84F1, 0xC992, 0x84F2, 0xC993, 0x84F3, 0xC994, 0x84F4, 0xC995, 0x84F5, + 0xC996, 0x84F6, 0xC997, 0x84F7, 0xC998, 0x84F8, 0xC999, 0x84F9, 0xC99A, 0x84FA, 0xC99B, 0x84FB, 0xC99C, 0x84FD, 0xC99D, 0x84FE, + 0xC99E, 0x8500, 0xC99F, 0x8501, 0xC9A0, 0x8502, 0xC9A1, 0x4F1E, 0xC9A2, 0x6563, 0xC9A3, 0x6851, 0xC9A4, 0x55D3, 0xC9A5, 0x4E27, + 0xC9A6, 0x6414, 0xC9A7, 0x9A9A, 0xC9A8, 0x626B, 0xC9A9, 0x5AC2, 0xC9AA, 0x745F, 0xC9AB, 0x8272, 0xC9AC, 0x6DA9, 0xC9AD, 0x68EE, + 0xC9AE, 0x50E7, 0xC9AF, 0x838E, 0xC9B0, 0x7802, 0xC9B1, 0x6740, 0xC9B2, 0x5239, 0xC9B3, 0x6C99, 0xC9B4, 0x7EB1, 0xC9B5, 0x50BB, + 0xC9B6, 0x5565, 0xC9B7, 0x715E, 0xC9B8, 0x7B5B, 0xC9B9, 0x6652, 0xC9BA, 0x73CA, 0xC9BB, 0x82EB, 0xC9BC, 0x6749, 0xC9BD, 0x5C71, + 0xC9BE, 0x5220, 0xC9BF, 0x717D, 0xC9C0, 0x886B, 0xC9C1, 0x95EA, 0xC9C2, 0x9655, 0xC9C3, 0x64C5, 0xC9C4, 0x8D61, 0xC9C5, 0x81B3, + 0xC9C6, 0x5584, 0xC9C7, 0x6C55, 0xC9C8, 0x6247, 0xC9C9, 0x7F2E, 0xC9CA, 0x5892, 0xC9CB, 0x4F24, 0xC9CC, 0x5546, 0xC9CD, 0x8D4F, + 0xC9CE, 0x664C, 0xC9CF, 0x4E0A, 0xC9D0, 0x5C1A, 0xC9D1, 0x88F3, 0xC9D2, 0x68A2, 0xC9D3, 0x634E, 0xC9D4, 0x7A0D, 0xC9D5, 0x70E7, + 0xC9D6, 0x828D, 0xC9D7, 0x52FA, 0xC9D8, 0x97F6, 0xC9D9, 0x5C11, 0xC9DA, 0x54E8, 0xC9DB, 0x90B5, 0xC9DC, 0x7ECD, 0xC9DD, 0x5962, + 0xC9DE, 0x8D4A, 0xC9DF, 0x86C7, 0xC9E0, 0x820C, 0xC9E1, 0x820D, 0xC9E2, 0x8D66, 0xC9E3, 0x6444, 0xC9E4, 0x5C04, 0xC9E5, 0x6151, + 0xC9E6, 0x6D89, 0xC9E7, 0x793E, 0xC9E8, 0x8BBE, 0xC9E9, 0x7837, 0xC9EA, 0x7533, 0xC9EB, 0x547B, 0xC9EC, 0x4F38, 0xC9ED, 0x8EAB, + 0xC9EE, 0x6DF1, 0xC9EF, 0x5A20, 0xC9F0, 0x7EC5, 0xC9F1, 0x795E, 0xC9F2, 0x6C88, 0xC9F3, 0x5BA1, 0xC9F4, 0x5A76, 0xC9F5, 0x751A, + 0xC9F6, 0x80BE, 0xC9F7, 0x614E, 0xC9F8, 0x6E17, 0xC9F9, 0x58F0, 0xC9FA, 0x751F, 0xC9FB, 0x7525, 0xC9FC, 0x7272, 0xC9FD, 0x5347, + 0xC9FE, 0x7EF3, 0xCA40, 0x8503, 0xCA41, 0x8504, 0xCA42, 0x8505, 0xCA43, 0x8506, 0xCA44, 0x8507, 0xCA45, 0x8508, 0xCA46, 0x8509, + 0xCA47, 0x850A, 0xCA48, 0x850B, 0xCA49, 0x850D, 0xCA4A, 0x850E, 0xCA4B, 0x850F, 0xCA4C, 0x8510, 0xCA4D, 0x8512, 0xCA4E, 0x8514, + 0xCA4F, 0x8515, 0xCA50, 0x8516, 0xCA51, 0x8518, 0xCA52, 0x8519, 0xCA53, 0x851B, 0xCA54, 0x851C, 0xCA55, 0x851D, 0xCA56, 0x851E, + 0xCA57, 0x8520, 0xCA58, 0x8522, 0xCA59, 0x8523, 0xCA5A, 0x8524, 0xCA5B, 0x8525, 0xCA5C, 0x8526, 0xCA5D, 0x8527, 0xCA5E, 0x8528, + 0xCA5F, 0x8529, 0xCA60, 0x852A, 0xCA61, 0x852D, 0xCA62, 0x852E, 0xCA63, 0x852F, 0xCA64, 0x8530, 0xCA65, 0x8531, 0xCA66, 0x8532, + 0xCA67, 0x8533, 0xCA68, 0x8534, 0xCA69, 0x8535, 0xCA6A, 0x8536, 0xCA6B, 0x853E, 0xCA6C, 0x853F, 0xCA6D, 0x8540, 0xCA6E, 0x8541, + 0xCA6F, 0x8542, 0xCA70, 0x8544, 0xCA71, 0x8545, 0xCA72, 0x8546, 0xCA73, 0x8547, 0xCA74, 0x854B, 0xCA75, 0x854C, 0xCA76, 0x854D, + 0xCA77, 0x854E, 0xCA78, 0x854F, 0xCA79, 0x8550, 0xCA7A, 0x8551, 0xCA7B, 0x8552, 0xCA7C, 0x8553, 0xCA7D, 0x8554, 0xCA7E, 0x8555, + 0xCA80, 0x8557, 0xCA81, 0x8558, 0xCA82, 0x855A, 0xCA83, 0x855B, 0xCA84, 0x855C, 0xCA85, 0x855D, 0xCA86, 0x855F, 0xCA87, 0x8560, + 0xCA88, 0x8561, 0xCA89, 0x8562, 0xCA8A, 0x8563, 0xCA8B, 0x8565, 0xCA8C, 0x8566, 0xCA8D, 0x8567, 0xCA8E, 0x8569, 0xCA8F, 0x856A, + 0xCA90, 0x856B, 0xCA91, 0x856C, 0xCA92, 0x856D, 0xCA93, 0x856E, 0xCA94, 0x856F, 0xCA95, 0x8570, 0xCA96, 0x8571, 0xCA97, 0x8573, + 0xCA98, 0x8575, 0xCA99, 0x8576, 0xCA9A, 0x8577, 0xCA9B, 0x8578, 0xCA9C, 0x857C, 0xCA9D, 0x857D, 0xCA9E, 0x857F, 0xCA9F, 0x8580, + 0xCAA0, 0x8581, 0xCAA1, 0x7701, 0xCAA2, 0x76DB, 0xCAA3, 0x5269, 0xCAA4, 0x80DC, 0xCAA5, 0x5723, 0xCAA6, 0x5E08, 0xCAA7, 0x5931, + 0xCAA8, 0x72EE, 0xCAA9, 0x65BD, 0xCAAA, 0x6E7F, 0xCAAB, 0x8BD7, 0xCAAC, 0x5C38, 0xCAAD, 0x8671, 0xCAAE, 0x5341, 0xCAAF, 0x77F3, + 0xCAB0, 0x62FE, 0xCAB1, 0x65F6, 0xCAB2, 0x4EC0, 0xCAB3, 0x98DF, 0xCAB4, 0x8680, 0xCAB5, 0x5B9E, 0xCAB6, 0x8BC6, 0xCAB7, 0x53F2, + 0xCAB8, 0x77E2, 0xCAB9, 0x4F7F, 0xCABA, 0x5C4E, 0xCABB, 0x9A76, 0xCABC, 0x59CB, 0xCABD, 0x5F0F, 0xCABE, 0x793A, 0xCABF, 0x58EB, + 0xCAC0, 0x4E16, 0xCAC1, 0x67FF, 0xCAC2, 0x4E8B, 0xCAC3, 0x62ED, 0xCAC4, 0x8A93, 0xCAC5, 0x901D, 0xCAC6, 0x52BF, 0xCAC7, 0x662F, + 0xCAC8, 0x55DC, 0xCAC9, 0x566C, 0xCACA, 0x9002, 0xCACB, 0x4ED5, 0xCACC, 0x4F8D, 0xCACD, 0x91CA, 0xCACE, 0x9970, 0xCACF, 0x6C0F, + 0xCAD0, 0x5E02, 0xCAD1, 0x6043, 0xCAD2, 0x5BA4, 0xCAD3, 0x89C6, 0xCAD4, 0x8BD5, 0xCAD5, 0x6536, 0xCAD6, 0x624B, 0xCAD7, 0x9996, + 0xCAD8, 0x5B88, 0xCAD9, 0x5BFF, 0xCADA, 0x6388, 0xCADB, 0x552E, 0xCADC, 0x53D7, 0xCADD, 0x7626, 0xCADE, 0x517D, 0xCADF, 0x852C, + 0xCAE0, 0x67A2, 0xCAE1, 0x68B3, 0xCAE2, 0x6B8A, 0xCAE3, 0x6292, 0xCAE4, 0x8F93, 0xCAE5, 0x53D4, 0xCAE6, 0x8212, 0xCAE7, 0x6DD1, + 0xCAE8, 0x758F, 0xCAE9, 0x4E66, 0xCAEA, 0x8D4E, 0xCAEB, 0x5B70, 0xCAEC, 0x719F, 0xCAED, 0x85AF, 0xCAEE, 0x6691, 0xCAEF, 0x66D9, + 0xCAF0, 0x7F72, 0xCAF1, 0x8700, 0xCAF2, 0x9ECD, 0xCAF3, 0x9F20, 0xCAF4, 0x5C5E, 0xCAF5, 0x672F, 0xCAF6, 0x8FF0, 0xCAF7, 0x6811, + 0xCAF8, 0x675F, 0xCAF9, 0x620D, 0xCAFA, 0x7AD6, 0xCAFB, 0x5885, 0xCAFC, 0x5EB6, 0xCAFD, 0x6570, 0xCAFE, 0x6F31, 0xCB40, 0x8582, + 0xCB41, 0x8583, 0xCB42, 0x8586, 0xCB43, 0x8588, 0xCB44, 0x8589, 0xCB45, 0x858A, 0xCB46, 0x858B, 0xCB47, 0x858C, 0xCB48, 0x858D, + 0xCB49, 0x858E, 0xCB4A, 0x8590, 0xCB4B, 0x8591, 0xCB4C, 0x8592, 0xCB4D, 0x8593, 0xCB4E, 0x8594, 0xCB4F, 0x8595, 0xCB50, 0x8596, + 0xCB51, 0x8597, 0xCB52, 0x8598, 0xCB53, 0x8599, 0xCB54, 0x859A, 0xCB55, 0x859D, 0xCB56, 0x859E, 0xCB57, 0x859F, 0xCB58, 0x85A0, + 0xCB59, 0x85A1, 0xCB5A, 0x85A2, 0xCB5B, 0x85A3, 0xCB5C, 0x85A5, 0xCB5D, 0x85A6, 0xCB5E, 0x85A7, 0xCB5F, 0x85A9, 0xCB60, 0x85AB, + 0xCB61, 0x85AC, 0xCB62, 0x85AD, 0xCB63, 0x85B1, 0xCB64, 0x85B2, 0xCB65, 0x85B3, 0xCB66, 0x85B4, 0xCB67, 0x85B5, 0xCB68, 0x85B6, + 0xCB69, 0x85B8, 0xCB6A, 0x85BA, 0xCB6B, 0x85BB, 0xCB6C, 0x85BC, 0xCB6D, 0x85BD, 0xCB6E, 0x85BE, 0xCB6F, 0x85BF, 0xCB70, 0x85C0, + 0xCB71, 0x85C2, 0xCB72, 0x85C3, 0xCB73, 0x85C4, 0xCB74, 0x85C5, 0xCB75, 0x85C6, 0xCB76, 0x85C7, 0xCB77, 0x85C8, 0xCB78, 0x85CA, + 0xCB79, 0x85CB, 0xCB7A, 0x85CC, 0xCB7B, 0x85CD, 0xCB7C, 0x85CE, 0xCB7D, 0x85D1, 0xCB7E, 0x85D2, 0xCB80, 0x85D4, 0xCB81, 0x85D6, + 0xCB82, 0x85D7, 0xCB83, 0x85D8, 0xCB84, 0x85D9, 0xCB85, 0x85DA, 0xCB86, 0x85DB, 0xCB87, 0x85DD, 0xCB88, 0x85DE, 0xCB89, 0x85DF, + 0xCB8A, 0x85E0, 0xCB8B, 0x85E1, 0xCB8C, 0x85E2, 0xCB8D, 0x85E3, 0xCB8E, 0x85E5, 0xCB8F, 0x85E6, 0xCB90, 0x85E7, 0xCB91, 0x85E8, + 0xCB92, 0x85EA, 0xCB93, 0x85EB, 0xCB94, 0x85EC, 0xCB95, 0x85ED, 0xCB96, 0x85EE, 0xCB97, 0x85EF, 0xCB98, 0x85F0, 0xCB99, 0x85F1, + 0xCB9A, 0x85F2, 0xCB9B, 0x85F3, 0xCB9C, 0x85F4, 0xCB9D, 0x85F5, 0xCB9E, 0x85F6, 0xCB9F, 0x85F7, 0xCBA0, 0x85F8, 0xCBA1, 0x6055, + 0xCBA2, 0x5237, 0xCBA3, 0x800D, 0xCBA4, 0x6454, 0xCBA5, 0x8870, 0xCBA6, 0x7529, 0xCBA7, 0x5E05, 0xCBA8, 0x6813, 0xCBA9, 0x62F4, + 0xCBAA, 0x971C, 0xCBAB, 0x53CC, 0xCBAC, 0x723D, 0xCBAD, 0x8C01, 0xCBAE, 0x6C34, 0xCBAF, 0x7761, 0xCBB0, 0x7A0E, 0xCBB1, 0x542E, + 0xCBB2, 0x77AC, 0xCBB3, 0x987A, 0xCBB4, 0x821C, 0xCBB5, 0x8BF4, 0xCBB6, 0x7855, 0xCBB7, 0x6714, 0xCBB8, 0x70C1, 0xCBB9, 0x65AF, + 0xCBBA, 0x6495, 0xCBBB, 0x5636, 0xCBBC, 0x601D, 0xCBBD, 0x79C1, 0xCBBE, 0x53F8, 0xCBBF, 0x4E1D, 0xCBC0, 0x6B7B, 0xCBC1, 0x8086, + 0xCBC2, 0x5BFA, 0xCBC3, 0x55E3, 0xCBC4, 0x56DB, 0xCBC5, 0x4F3A, 0xCBC6, 0x4F3C, 0xCBC7, 0x9972, 0xCBC8, 0x5DF3, 0xCBC9, 0x677E, + 0xCBCA, 0x8038, 0xCBCB, 0x6002, 0xCBCC, 0x9882, 0xCBCD, 0x9001, 0xCBCE, 0x5B8B, 0xCBCF, 0x8BBC, 0xCBD0, 0x8BF5, 0xCBD1, 0x641C, + 0xCBD2, 0x8258, 0xCBD3, 0x64DE, 0xCBD4, 0x55FD, 0xCBD5, 0x82CF, 0xCBD6, 0x9165, 0xCBD7, 0x4FD7, 0xCBD8, 0x7D20, 0xCBD9, 0x901F, + 0xCBDA, 0x7C9F, 0xCBDB, 0x50F3, 0xCBDC, 0x5851, 0xCBDD, 0x6EAF, 0xCBDE, 0x5BBF, 0xCBDF, 0x8BC9, 0xCBE0, 0x8083, 0xCBE1, 0x9178, + 0xCBE2, 0x849C, 0xCBE3, 0x7B97, 0xCBE4, 0x867D, 0xCBE5, 0x968B, 0xCBE6, 0x968F, 0xCBE7, 0x7EE5, 0xCBE8, 0x9AD3, 0xCBE9, 0x788E, + 0xCBEA, 0x5C81, 0xCBEB, 0x7A57, 0xCBEC, 0x9042, 0xCBED, 0x96A7, 0xCBEE, 0x795F, 0xCBEF, 0x5B59, 0xCBF0, 0x635F, 0xCBF1, 0x7B0B, + 0xCBF2, 0x84D1, 0xCBF3, 0x68AD, 0xCBF4, 0x5506, 0xCBF5, 0x7F29, 0xCBF6, 0x7410, 0xCBF7, 0x7D22, 0xCBF8, 0x9501, 0xCBF9, 0x6240, + 0xCBFA, 0x584C, 0xCBFB, 0x4ED6, 0xCBFC, 0x5B83, 0xCBFD, 0x5979, 0xCBFE, 0x5854, 0xCC40, 0x85F9, 0xCC41, 0x85FA, 0xCC42, 0x85FC, + 0xCC43, 0x85FD, 0xCC44, 0x85FE, 0xCC45, 0x8600, 0xCC46, 0x8601, 0xCC47, 0x8602, 0xCC48, 0x8603, 0xCC49, 0x8604, 0xCC4A, 0x8606, + 0xCC4B, 0x8607, 0xCC4C, 0x8608, 0xCC4D, 0x8609, 0xCC4E, 0x860A, 0xCC4F, 0x860B, 0xCC50, 0x860C, 0xCC51, 0x860D, 0xCC52, 0x860E, + 0xCC53, 0x860F, 0xCC54, 0x8610, 0xCC55, 0x8612, 0xCC56, 0x8613, 0xCC57, 0x8614, 0xCC58, 0x8615, 0xCC59, 0x8617, 0xCC5A, 0x8618, + 0xCC5B, 0x8619, 0xCC5C, 0x861A, 0xCC5D, 0x861B, 0xCC5E, 0x861C, 0xCC5F, 0x861D, 0xCC60, 0x861E, 0xCC61, 0x861F, 0xCC62, 0x8620, + 0xCC63, 0x8621, 0xCC64, 0x8622, 0xCC65, 0x8623, 0xCC66, 0x8624, 0xCC67, 0x8625, 0xCC68, 0x8626, 0xCC69, 0x8628, 0xCC6A, 0x862A, + 0xCC6B, 0x862B, 0xCC6C, 0x862C, 0xCC6D, 0x862D, 0xCC6E, 0x862E, 0xCC6F, 0x862F, 0xCC70, 0x8630, 0xCC71, 0x8631, 0xCC72, 0x8632, + 0xCC73, 0x8633, 0xCC74, 0x8634, 0xCC75, 0x8635, 0xCC76, 0x8636, 0xCC77, 0x8637, 0xCC78, 0x8639, 0xCC79, 0x863A, 0xCC7A, 0x863B, + 0xCC7B, 0x863D, 0xCC7C, 0x863E, 0xCC7D, 0x863F, 0xCC7E, 0x8640, 0xCC80, 0x8641, 0xCC81, 0x8642, 0xCC82, 0x8643, 0xCC83, 0x8644, + 0xCC84, 0x8645, 0xCC85, 0x8646, 0xCC86, 0x8647, 0xCC87, 0x8648, 0xCC88, 0x8649, 0xCC89, 0x864A, 0xCC8A, 0x864B, 0xCC8B, 0x864C, + 0xCC8C, 0x8652, 0xCC8D, 0x8653, 0xCC8E, 0x8655, 0xCC8F, 0x8656, 0xCC90, 0x8657, 0xCC91, 0x8658, 0xCC92, 0x8659, 0xCC93, 0x865B, + 0xCC94, 0x865C, 0xCC95, 0x865D, 0xCC96, 0x865F, 0xCC97, 0x8660, 0xCC98, 0x8661, 0xCC99, 0x8663, 0xCC9A, 0x8664, 0xCC9B, 0x8665, + 0xCC9C, 0x8666, 0xCC9D, 0x8667, 0xCC9E, 0x8668, 0xCC9F, 0x8669, 0xCCA0, 0x866A, 0xCCA1, 0x736D, 0xCCA2, 0x631E, 0xCCA3, 0x8E4B, + 0xCCA4, 0x8E0F, 0xCCA5, 0x80CE, 0xCCA6, 0x82D4, 0xCCA7, 0x62AC, 0xCCA8, 0x53F0, 0xCCA9, 0x6CF0, 0xCCAA, 0x915E, 0xCCAB, 0x592A, + 0xCCAC, 0x6001, 0xCCAD, 0x6C70, 0xCCAE, 0x574D, 0xCCAF, 0x644A, 0xCCB0, 0x8D2A, 0xCCB1, 0x762B, 0xCCB2, 0x6EE9, 0xCCB3, 0x575B, + 0xCCB4, 0x6A80, 0xCCB5, 0x75F0, 0xCCB6, 0x6F6D, 0xCCB7, 0x8C2D, 0xCCB8, 0x8C08, 0xCCB9, 0x5766, 0xCCBA, 0x6BEF, 0xCCBB, 0x8892, + 0xCCBC, 0x78B3, 0xCCBD, 0x63A2, 0xCCBE, 0x53F9, 0xCCBF, 0x70AD, 0xCCC0, 0x6C64, 0xCCC1, 0x5858, 0xCCC2, 0x642A, 0xCCC3, 0x5802, + 0xCCC4, 0x68E0, 0xCCC5, 0x819B, 0xCCC6, 0x5510, 0xCCC7, 0x7CD6, 0xCCC8, 0x5018, 0xCCC9, 0x8EBA, 0xCCCA, 0x6DCC, 0xCCCB, 0x8D9F, + 0xCCCC, 0x70EB, 0xCCCD, 0x638F, 0xCCCE, 0x6D9B, 0xCCCF, 0x6ED4, 0xCCD0, 0x7EE6, 0xCCD1, 0x8404, 0xCCD2, 0x6843, 0xCCD3, 0x9003, + 0xCCD4, 0x6DD8, 0xCCD5, 0x9676, 0xCCD6, 0x8BA8, 0xCCD7, 0x5957, 0xCCD8, 0x7279, 0xCCD9, 0x85E4, 0xCCDA, 0x817E, 0xCCDB, 0x75BC, + 0xCCDC, 0x8A8A, 0xCCDD, 0x68AF, 0xCCDE, 0x5254, 0xCCDF, 0x8E22, 0xCCE0, 0x9511, 0xCCE1, 0x63D0, 0xCCE2, 0x9898, 0xCCE3, 0x8E44, + 0xCCE4, 0x557C, 0xCCE5, 0x4F53, 0xCCE6, 0x66FF, 0xCCE7, 0x568F, 0xCCE8, 0x60D5, 0xCCE9, 0x6D95, 0xCCEA, 0x5243, 0xCCEB, 0x5C49, + 0xCCEC, 0x5929, 0xCCED, 0x6DFB, 0xCCEE, 0x586B, 0xCCEF, 0x7530, 0xCCF0, 0x751C, 0xCCF1, 0x606C, 0xCCF2, 0x8214, 0xCCF3, 0x8146, + 0xCCF4, 0x6311, 0xCCF5, 0x6761, 0xCCF6, 0x8FE2, 0xCCF7, 0x773A, 0xCCF8, 0x8DF3, 0xCCF9, 0x8D34, 0xCCFA, 0x94C1, 0xCCFB, 0x5E16, + 0xCCFC, 0x5385, 0xCCFD, 0x542C, 0xCCFE, 0x70C3, 0xCD40, 0x866D, 0xCD41, 0x866F, 0xCD42, 0x8670, 0xCD43, 0x8672, 0xCD44, 0x8673, + 0xCD45, 0x8674, 0xCD46, 0x8675, 0xCD47, 0x8676, 0xCD48, 0x8677, 0xCD49, 0x8678, 0xCD4A, 0x8683, 0xCD4B, 0x8684, 0xCD4C, 0x8685, + 0xCD4D, 0x8686, 0xCD4E, 0x8687, 0xCD4F, 0x8688, 0xCD50, 0x8689, 0xCD51, 0x868E, 0xCD52, 0x868F, 0xCD53, 0x8690, 0xCD54, 0x8691, + 0xCD55, 0x8692, 0xCD56, 0x8694, 0xCD57, 0x8696, 0xCD58, 0x8697, 0xCD59, 0x8698, 0xCD5A, 0x8699, 0xCD5B, 0x869A, 0xCD5C, 0x869B, + 0xCD5D, 0x869E, 0xCD5E, 0x869F, 0xCD5F, 0x86A0, 0xCD60, 0x86A1, 0xCD61, 0x86A2, 0xCD62, 0x86A5, 0xCD63, 0x86A6, 0xCD64, 0x86AB, + 0xCD65, 0x86AD, 0xCD66, 0x86AE, 0xCD67, 0x86B2, 0xCD68, 0x86B3, 0xCD69, 0x86B7, 0xCD6A, 0x86B8, 0xCD6B, 0x86B9, 0xCD6C, 0x86BB, + 0xCD6D, 0x86BC, 0xCD6E, 0x86BD, 0xCD6F, 0x86BE, 0xCD70, 0x86BF, 0xCD71, 0x86C1, 0xCD72, 0x86C2, 0xCD73, 0x86C3, 0xCD74, 0x86C5, + 0xCD75, 0x86C8, 0xCD76, 0x86CC, 0xCD77, 0x86CD, 0xCD78, 0x86D2, 0xCD79, 0x86D3, 0xCD7A, 0x86D5, 0xCD7B, 0x86D6, 0xCD7C, 0x86D7, + 0xCD7D, 0x86DA, 0xCD7E, 0x86DC, 0xCD80, 0x86DD, 0xCD81, 0x86E0, 0xCD82, 0x86E1, 0xCD83, 0x86E2, 0xCD84, 0x86E3, 0xCD85, 0x86E5, + 0xCD86, 0x86E6, 0xCD87, 0x86E7, 0xCD88, 0x86E8, 0xCD89, 0x86EA, 0xCD8A, 0x86EB, 0xCD8B, 0x86EC, 0xCD8C, 0x86EF, 0xCD8D, 0x86F5, + 0xCD8E, 0x86F6, 0xCD8F, 0x86F7, 0xCD90, 0x86FA, 0xCD91, 0x86FB, 0xCD92, 0x86FC, 0xCD93, 0x86FD, 0xCD94, 0x86FF, 0xCD95, 0x8701, + 0xCD96, 0x8704, 0xCD97, 0x8705, 0xCD98, 0x8706, 0xCD99, 0x870B, 0xCD9A, 0x870C, 0xCD9B, 0x870E, 0xCD9C, 0x870F, 0xCD9D, 0x8710, + 0xCD9E, 0x8711, 0xCD9F, 0x8714, 0xCDA0, 0x8716, 0xCDA1, 0x6C40, 0xCDA2, 0x5EF7, 0xCDA3, 0x505C, 0xCDA4, 0x4EAD, 0xCDA5, 0x5EAD, + 0xCDA6, 0x633A, 0xCDA7, 0x8247, 0xCDA8, 0x901A, 0xCDA9, 0x6850, 0xCDAA, 0x916E, 0xCDAB, 0x77B3, 0xCDAC, 0x540C, 0xCDAD, 0x94DC, + 0xCDAE, 0x5F64, 0xCDAF, 0x7AE5, 0xCDB0, 0x6876, 0xCDB1, 0x6345, 0xCDB2, 0x7B52, 0xCDB3, 0x7EDF, 0xCDB4, 0x75DB, 0xCDB5, 0x5077, + 0xCDB6, 0x6295, 0xCDB7, 0x5934, 0xCDB8, 0x900F, 0xCDB9, 0x51F8, 0xCDBA, 0x79C3, 0xCDBB, 0x7A81, 0xCDBC, 0x56FE, 0xCDBD, 0x5F92, + 0xCDBE, 0x9014, 0xCDBF, 0x6D82, 0xCDC0, 0x5C60, 0xCDC1, 0x571F, 0xCDC2, 0x5410, 0xCDC3, 0x5154, 0xCDC4, 0x6E4D, 0xCDC5, 0x56E2, + 0xCDC6, 0x63A8, 0xCDC7, 0x9893, 0xCDC8, 0x817F, 0xCDC9, 0x8715, 0xCDCA, 0x892A, 0xCDCB, 0x9000, 0xCDCC, 0x541E, 0xCDCD, 0x5C6F, + 0xCDCE, 0x81C0, 0xCDCF, 0x62D6, 0xCDD0, 0x6258, 0xCDD1, 0x8131, 0xCDD2, 0x9E35, 0xCDD3, 0x9640, 0xCDD4, 0x9A6E, 0xCDD5, 0x9A7C, + 0xCDD6, 0x692D, 0xCDD7, 0x59A5, 0xCDD8, 0x62D3, 0xCDD9, 0x553E, 0xCDDA, 0x6316, 0xCDDB, 0x54C7, 0xCDDC, 0x86D9, 0xCDDD, 0x6D3C, + 0xCDDE, 0x5A03, 0xCDDF, 0x74E6, 0xCDE0, 0x889C, 0xCDE1, 0x6B6A, 0xCDE2, 0x5916, 0xCDE3, 0x8C4C, 0xCDE4, 0x5F2F, 0xCDE5, 0x6E7E, + 0xCDE6, 0x73A9, 0xCDE7, 0x987D, 0xCDE8, 0x4E38, 0xCDE9, 0x70F7, 0xCDEA, 0x5B8C, 0xCDEB, 0x7897, 0xCDEC, 0x633D, 0xCDED, 0x665A, + 0xCDEE, 0x7696, 0xCDEF, 0x60CB, 0xCDF0, 0x5B9B, 0xCDF1, 0x5A49, 0xCDF2, 0x4E07, 0xCDF3, 0x8155, 0xCDF4, 0x6C6A, 0xCDF5, 0x738B, + 0xCDF6, 0x4EA1, 0xCDF7, 0x6789, 0xCDF8, 0x7F51, 0xCDF9, 0x5F80, 0xCDFA, 0x65FA, 0xCDFB, 0x671B, 0xCDFC, 0x5FD8, 0xCDFD, 0x5984, + 0xCDFE, 0x5A01, 0xCE40, 0x8719, 0xCE41, 0x871B, 0xCE42, 0x871D, 0xCE43, 0x871F, 0xCE44, 0x8720, 0xCE45, 0x8724, 0xCE46, 0x8726, + 0xCE47, 0x8727, 0xCE48, 0x8728, 0xCE49, 0x872A, 0xCE4A, 0x872B, 0xCE4B, 0x872C, 0xCE4C, 0x872D, 0xCE4D, 0x872F, 0xCE4E, 0x8730, + 0xCE4F, 0x8732, 0xCE50, 0x8733, 0xCE51, 0x8735, 0xCE52, 0x8736, 0xCE53, 0x8738, 0xCE54, 0x8739, 0xCE55, 0x873A, 0xCE56, 0x873C, + 0xCE57, 0x873D, 0xCE58, 0x8740, 0xCE59, 0x8741, 0xCE5A, 0x8742, 0xCE5B, 0x8743, 0xCE5C, 0x8744, 0xCE5D, 0x8745, 0xCE5E, 0x8746, + 0xCE5F, 0x874A, 0xCE60, 0x874B, 0xCE61, 0x874D, 0xCE62, 0x874F, 0xCE63, 0x8750, 0xCE64, 0x8751, 0xCE65, 0x8752, 0xCE66, 0x8754, + 0xCE67, 0x8755, 0xCE68, 0x8756, 0xCE69, 0x8758, 0xCE6A, 0x875A, 0xCE6B, 0x875B, 0xCE6C, 0x875C, 0xCE6D, 0x875D, 0xCE6E, 0x875E, + 0xCE6F, 0x875F, 0xCE70, 0x8761, 0xCE71, 0x8762, 0xCE72, 0x8766, 0xCE73, 0x8767, 0xCE74, 0x8768, 0xCE75, 0x8769, 0xCE76, 0x876A, + 0xCE77, 0x876B, 0xCE78, 0x876C, 0xCE79, 0x876D, 0xCE7A, 0x876F, 0xCE7B, 0x8771, 0xCE7C, 0x8772, 0xCE7D, 0x8773, 0xCE7E, 0x8775, + 0xCE80, 0x8777, 0xCE81, 0x8778, 0xCE82, 0x8779, 0xCE83, 0x877A, 0xCE84, 0x877F, 0xCE85, 0x8780, 0xCE86, 0x8781, 0xCE87, 0x8784, + 0xCE88, 0x8786, 0xCE89, 0x8787, 0xCE8A, 0x8789, 0xCE8B, 0x878A, 0xCE8C, 0x878C, 0xCE8D, 0x878E, 0xCE8E, 0x878F, 0xCE8F, 0x8790, + 0xCE90, 0x8791, 0xCE91, 0x8792, 0xCE92, 0x8794, 0xCE93, 0x8795, 0xCE94, 0x8796, 0xCE95, 0x8798, 0xCE96, 0x8799, 0xCE97, 0x879A, + 0xCE98, 0x879B, 0xCE99, 0x879C, 0xCE9A, 0x879D, 0xCE9B, 0x879E, 0xCE9C, 0x87A0, 0xCE9D, 0x87A1, 0xCE9E, 0x87A2, 0xCE9F, 0x87A3, + 0xCEA0, 0x87A4, 0xCEA1, 0x5DCD, 0xCEA2, 0x5FAE, 0xCEA3, 0x5371, 0xCEA4, 0x97E6, 0xCEA5, 0x8FDD, 0xCEA6, 0x6845, 0xCEA7, 0x56F4, + 0xCEA8, 0x552F, 0xCEA9, 0x60DF, 0xCEAA, 0x4E3A, 0xCEAB, 0x6F4D, 0xCEAC, 0x7EF4, 0xCEAD, 0x82C7, 0xCEAE, 0x840E, 0xCEAF, 0x59D4, + 0xCEB0, 0x4F1F, 0xCEB1, 0x4F2A, 0xCEB2, 0x5C3E, 0xCEB3, 0x7EAC, 0xCEB4, 0x672A, 0xCEB5, 0x851A, 0xCEB6, 0x5473, 0xCEB7, 0x754F, + 0xCEB8, 0x80C3, 0xCEB9, 0x5582, 0xCEBA, 0x9B4F, 0xCEBB, 0x4F4D, 0xCEBC, 0x6E2D, 0xCEBD, 0x8C13, 0xCEBE, 0x5C09, 0xCEBF, 0x6170, + 0xCEC0, 0x536B, 0xCEC1, 0x761F, 0xCEC2, 0x6E29, 0xCEC3, 0x868A, 0xCEC4, 0x6587, 0xCEC5, 0x95FB, 0xCEC6, 0x7EB9, 0xCEC7, 0x543B, + 0xCEC8, 0x7A33, 0xCEC9, 0x7D0A, 0xCECA, 0x95EE, 0xCECB, 0x55E1, 0xCECC, 0x7FC1, 0xCECD, 0x74EE, 0xCECE, 0x631D, 0xCECF, 0x8717, + 0xCED0, 0x6DA1, 0xCED1, 0x7A9D, 0xCED2, 0x6211, 0xCED3, 0x65A1, 0xCED4, 0x5367, 0xCED5, 0x63E1, 0xCED6, 0x6C83, 0xCED7, 0x5DEB, + 0xCED8, 0x545C, 0xCED9, 0x94A8, 0xCEDA, 0x4E4C, 0xCEDB, 0x6C61, 0xCEDC, 0x8BEC, 0xCEDD, 0x5C4B, 0xCEDE, 0x65E0, 0xCEDF, 0x829C, + 0xCEE0, 0x68A7, 0xCEE1, 0x543E, 0xCEE2, 0x5434, 0xCEE3, 0x6BCB, 0xCEE4, 0x6B66, 0xCEE5, 0x4E94, 0xCEE6, 0x6342, 0xCEE7, 0x5348, + 0xCEE8, 0x821E, 0xCEE9, 0x4F0D, 0xCEEA, 0x4FAE, 0xCEEB, 0x575E, 0xCEEC, 0x620A, 0xCEED, 0x96FE, 0xCEEE, 0x6664, 0xCEEF, 0x7269, + 0xCEF0, 0x52FF, 0xCEF1, 0x52A1, 0xCEF2, 0x609F, 0xCEF3, 0x8BEF, 0xCEF4, 0x6614, 0xCEF5, 0x7199, 0xCEF6, 0x6790, 0xCEF7, 0x897F, + 0xCEF8, 0x7852, 0xCEF9, 0x77FD, 0xCEFA, 0x6670, 0xCEFB, 0x563B, 0xCEFC, 0x5438, 0xCEFD, 0x9521, 0xCEFE, 0x727A, 0xCF40, 0x87A5, + 0xCF41, 0x87A6, 0xCF42, 0x87A7, 0xCF43, 0x87A9, 0xCF44, 0x87AA, 0xCF45, 0x87AE, 0xCF46, 0x87B0, 0xCF47, 0x87B1, 0xCF48, 0x87B2, + 0xCF49, 0x87B4, 0xCF4A, 0x87B6, 0xCF4B, 0x87B7, 0xCF4C, 0x87B8, 0xCF4D, 0x87B9, 0xCF4E, 0x87BB, 0xCF4F, 0x87BC, 0xCF50, 0x87BE, + 0xCF51, 0x87BF, 0xCF52, 0x87C1, 0xCF53, 0x87C2, 0xCF54, 0x87C3, 0xCF55, 0x87C4, 0xCF56, 0x87C5, 0xCF57, 0x87C7, 0xCF58, 0x87C8, + 0xCF59, 0x87C9, 0xCF5A, 0x87CC, 0xCF5B, 0x87CD, 0xCF5C, 0x87CE, 0xCF5D, 0x87CF, 0xCF5E, 0x87D0, 0xCF5F, 0x87D4, 0xCF60, 0x87D5, + 0xCF61, 0x87D6, 0xCF62, 0x87D7, 0xCF63, 0x87D8, 0xCF64, 0x87D9, 0xCF65, 0x87DA, 0xCF66, 0x87DC, 0xCF67, 0x87DD, 0xCF68, 0x87DE, + 0xCF69, 0x87DF, 0xCF6A, 0x87E1, 0xCF6B, 0x87E2, 0xCF6C, 0x87E3, 0xCF6D, 0x87E4, 0xCF6E, 0x87E6, 0xCF6F, 0x87E7, 0xCF70, 0x87E8, + 0xCF71, 0x87E9, 0xCF72, 0x87EB, 0xCF73, 0x87EC, 0xCF74, 0x87ED, 0xCF75, 0x87EF, 0xCF76, 0x87F0, 0xCF77, 0x87F1, 0xCF78, 0x87F2, + 0xCF79, 0x87F3, 0xCF7A, 0x87F4, 0xCF7B, 0x87F5, 0xCF7C, 0x87F6, 0xCF7D, 0x87F7, 0xCF7E, 0x87F8, 0xCF80, 0x87FA, 0xCF81, 0x87FB, + 0xCF82, 0x87FC, 0xCF83, 0x87FD, 0xCF84, 0x87FF, 0xCF85, 0x8800, 0xCF86, 0x8801, 0xCF87, 0x8802, 0xCF88, 0x8804, 0xCF89, 0x8805, + 0xCF8A, 0x8806, 0xCF8B, 0x8807, 0xCF8C, 0x8808, 0xCF8D, 0x8809, 0xCF8E, 0x880B, 0xCF8F, 0x880C, 0xCF90, 0x880D, 0xCF91, 0x880E, + 0xCF92, 0x880F, 0xCF93, 0x8810, 0xCF94, 0x8811, 0xCF95, 0x8812, 0xCF96, 0x8814, 0xCF97, 0x8817, 0xCF98, 0x8818, 0xCF99, 0x8819, + 0xCF9A, 0x881A, 0xCF9B, 0x881C, 0xCF9C, 0x881D, 0xCF9D, 0x881E, 0xCF9E, 0x881F, 0xCF9F, 0x8820, 0xCFA0, 0x8823, 0xCFA1, 0x7A00, + 0xCFA2, 0x606F, 0xCFA3, 0x5E0C, 0xCFA4, 0x6089, 0xCFA5, 0x819D, 0xCFA6, 0x5915, 0xCFA7, 0x60DC, 0xCFA8, 0x7184, 0xCFA9, 0x70EF, + 0xCFAA, 0x6EAA, 0xCFAB, 0x6C50, 0xCFAC, 0x7280, 0xCFAD, 0x6A84, 0xCFAE, 0x88AD, 0xCFAF, 0x5E2D, 0xCFB0, 0x4E60, 0xCFB1, 0x5AB3, + 0xCFB2, 0x559C, 0xCFB3, 0x94E3, 0xCFB4, 0x6D17, 0xCFB5, 0x7CFB, 0xCFB6, 0x9699, 0xCFB7, 0x620F, 0xCFB8, 0x7EC6, 0xCFB9, 0x778E, + 0xCFBA, 0x867E, 0xCFBB, 0x5323, 0xCFBC, 0x971E, 0xCFBD, 0x8F96, 0xCFBE, 0x6687, 0xCFBF, 0x5CE1, 0xCFC0, 0x4FA0, 0xCFC1, 0x72ED, + 0xCFC2, 0x4E0B, 0xCFC3, 0x53A6, 0xCFC4, 0x590F, 0xCFC5, 0x5413, 0xCFC6, 0x6380, 0xCFC7, 0x9528, 0xCFC8, 0x5148, 0xCFC9, 0x4ED9, + 0xCFCA, 0x9C9C, 0xCFCB, 0x7EA4, 0xCFCC, 0x54B8, 0xCFCD, 0x8D24, 0xCFCE, 0x8854, 0xCFCF, 0x8237, 0xCFD0, 0x95F2, 0xCFD1, 0x6D8E, + 0xCFD2, 0x5F26, 0xCFD3, 0x5ACC, 0xCFD4, 0x663E, 0xCFD5, 0x9669, 0xCFD6, 0x73B0, 0xCFD7, 0x732E, 0xCFD8, 0x53BF, 0xCFD9, 0x817A, + 0xCFDA, 0x9985, 0xCFDB, 0x7FA1, 0xCFDC, 0x5BAA, 0xCFDD, 0x9677, 0xCFDE, 0x9650, 0xCFDF, 0x7EBF, 0xCFE0, 0x76F8, 0xCFE1, 0x53A2, + 0xCFE2, 0x9576, 0xCFE3, 0x9999, 0xCFE4, 0x7BB1, 0xCFE5, 0x8944, 0xCFE6, 0x6E58, 0xCFE7, 0x4E61, 0xCFE8, 0x7FD4, 0xCFE9, 0x7965, + 0xCFEA, 0x8BE6, 0xCFEB, 0x60F3, 0xCFEC, 0x54CD, 0xCFED, 0x4EAB, 0xCFEE, 0x9879, 0xCFEF, 0x5DF7, 0xCFF0, 0x6A61, 0xCFF1, 0x50CF, + 0xCFF2, 0x5411, 0xCFF3, 0x8C61, 0xCFF4, 0x8427, 0xCFF5, 0x785D, 0xCFF6, 0x9704, 0xCFF7, 0x524A, 0xCFF8, 0x54EE, 0xCFF9, 0x56A3, + 0xCFFA, 0x9500, 0xCFFB, 0x6D88, 0xCFFC, 0x5BB5, 0xCFFD, 0x6DC6, 0xCFFE, 0x6653, 0xD040, 0x8824, 0xD041, 0x8825, 0xD042, 0x8826, + 0xD043, 0x8827, 0xD044, 0x8828, 0xD045, 0x8829, 0xD046, 0x882A, 0xD047, 0x882B, 0xD048, 0x882C, 0xD049, 0x882D, 0xD04A, 0x882E, + 0xD04B, 0x882F, 0xD04C, 0x8830, 0xD04D, 0x8831, 0xD04E, 0x8833, 0xD04F, 0x8834, 0xD050, 0x8835, 0xD051, 0x8836, 0xD052, 0x8837, + 0xD053, 0x8838, 0xD054, 0x883A, 0xD055, 0x883B, 0xD056, 0x883D, 0xD057, 0x883E, 0xD058, 0x883F, 0xD059, 0x8841, 0xD05A, 0x8842, + 0xD05B, 0x8843, 0xD05C, 0x8846, 0xD05D, 0x8847, 0xD05E, 0x8848, 0xD05F, 0x8849, 0xD060, 0x884A, 0xD061, 0x884B, 0xD062, 0x884E, + 0xD063, 0x884F, 0xD064, 0x8850, 0xD065, 0x8851, 0xD066, 0x8852, 0xD067, 0x8853, 0xD068, 0x8855, 0xD069, 0x8856, 0xD06A, 0x8858, + 0xD06B, 0x885A, 0xD06C, 0x885B, 0xD06D, 0x885C, 0xD06E, 0x885D, 0xD06F, 0x885E, 0xD070, 0x885F, 0xD071, 0x8860, 0xD072, 0x8866, + 0xD073, 0x8867, 0xD074, 0x886A, 0xD075, 0x886D, 0xD076, 0x886F, 0xD077, 0x8871, 0xD078, 0x8873, 0xD079, 0x8874, 0xD07A, 0x8875, + 0xD07B, 0x8876, 0xD07C, 0x8878, 0xD07D, 0x8879, 0xD07E, 0x887A, 0xD080, 0x887B, 0xD081, 0x887C, 0xD082, 0x8880, 0xD083, 0x8883, + 0xD084, 0x8886, 0xD085, 0x8887, 0xD086, 0x8889, 0xD087, 0x888A, 0xD088, 0x888C, 0xD089, 0x888E, 0xD08A, 0x888F, 0xD08B, 0x8890, + 0xD08C, 0x8891, 0xD08D, 0x8893, 0xD08E, 0x8894, 0xD08F, 0x8895, 0xD090, 0x8897, 0xD091, 0x8898, 0xD092, 0x8899, 0xD093, 0x889A, + 0xD094, 0x889B, 0xD095, 0x889D, 0xD096, 0x889E, 0xD097, 0x889F, 0xD098, 0x88A0, 0xD099, 0x88A1, 0xD09A, 0x88A3, 0xD09B, 0x88A5, + 0xD09C, 0x88A6, 0xD09D, 0x88A7, 0xD09E, 0x88A8, 0xD09F, 0x88A9, 0xD0A0, 0x88AA, 0xD0A1, 0x5C0F, 0xD0A2, 0x5B5D, 0xD0A3, 0x6821, + 0xD0A4, 0x8096, 0xD0A5, 0x5578, 0xD0A6, 0x7B11, 0xD0A7, 0x6548, 0xD0A8, 0x6954, 0xD0A9, 0x4E9B, 0xD0AA, 0x6B47, 0xD0AB, 0x874E, + 0xD0AC, 0x978B, 0xD0AD, 0x534F, 0xD0AE, 0x631F, 0xD0AF, 0x643A, 0xD0B0, 0x90AA, 0xD0B1, 0x659C, 0xD0B2, 0x80C1, 0xD0B3, 0x8C10, + 0xD0B4, 0x5199, 0xD0B5, 0x68B0, 0xD0B6, 0x5378, 0xD0B7, 0x87F9, 0xD0B8, 0x61C8, 0xD0B9, 0x6CC4, 0xD0BA, 0x6CFB, 0xD0BB, 0x8C22, + 0xD0BC, 0x5C51, 0xD0BD, 0x85AA, 0xD0BE, 0x82AF, 0xD0BF, 0x950C, 0xD0C0, 0x6B23, 0xD0C1, 0x8F9B, 0xD0C2, 0x65B0, 0xD0C3, 0x5FFB, + 0xD0C4, 0x5FC3, 0xD0C5, 0x4FE1, 0xD0C6, 0x8845, 0xD0C7, 0x661F, 0xD0C8, 0x8165, 0xD0C9, 0x7329, 0xD0CA, 0x60FA, 0xD0CB, 0x5174, + 0xD0CC, 0x5211, 0xD0CD, 0x578B, 0xD0CE, 0x5F62, 0xD0CF, 0x90A2, 0xD0D0, 0x884C, 0xD0D1, 0x9192, 0xD0D2, 0x5E78, 0xD0D3, 0x674F, + 0xD0D4, 0x6027, 0xD0D5, 0x59D3, 0xD0D6, 0x5144, 0xD0D7, 0x51F6, 0xD0D8, 0x80F8, 0xD0D9, 0x5308, 0xD0DA, 0x6C79, 0xD0DB, 0x96C4, + 0xD0DC, 0x718A, 0xD0DD, 0x4F11, 0xD0DE, 0x4FEE, 0xD0DF, 0x7F9E, 0xD0E0, 0x673D, 0xD0E1, 0x55C5, 0xD0E2, 0x9508, 0xD0E3, 0x79C0, + 0xD0E4, 0x8896, 0xD0E5, 0x7EE3, 0xD0E6, 0x589F, 0xD0E7, 0x620C, 0xD0E8, 0x9700, 0xD0E9, 0x865A, 0xD0EA, 0x5618, 0xD0EB, 0x987B, + 0xD0EC, 0x5F90, 0xD0ED, 0x8BB8, 0xD0EE, 0x84C4, 0xD0EF, 0x9157, 0xD0F0, 0x53D9, 0xD0F1, 0x65ED, 0xD0F2, 0x5E8F, 0xD0F3, 0x755C, + 0xD0F4, 0x6064, 0xD0F5, 0x7D6E, 0xD0F6, 0x5A7F, 0xD0F7, 0x7EEA, 0xD0F8, 0x7EED, 0xD0F9, 0x8F69, 0xD0FA, 0x55A7, 0xD0FB, 0x5BA3, + 0xD0FC, 0x60AC, 0xD0FD, 0x65CB, 0xD0FE, 0x7384, 0xD140, 0x88AC, 0xD141, 0x88AE, 0xD142, 0x88AF, 0xD143, 0x88B0, 0xD144, 0x88B2, + 0xD145, 0x88B3, 0xD146, 0x88B4, 0xD147, 0x88B5, 0xD148, 0x88B6, 0xD149, 0x88B8, 0xD14A, 0x88B9, 0xD14B, 0x88BA, 0xD14C, 0x88BB, + 0xD14D, 0x88BD, 0xD14E, 0x88BE, 0xD14F, 0x88BF, 0xD150, 0x88C0, 0xD151, 0x88C3, 0xD152, 0x88C4, 0xD153, 0x88C7, 0xD154, 0x88C8, + 0xD155, 0x88CA, 0xD156, 0x88CB, 0xD157, 0x88CC, 0xD158, 0x88CD, 0xD159, 0x88CF, 0xD15A, 0x88D0, 0xD15B, 0x88D1, 0xD15C, 0x88D3, + 0xD15D, 0x88D6, 0xD15E, 0x88D7, 0xD15F, 0x88DA, 0xD160, 0x88DB, 0xD161, 0x88DC, 0xD162, 0x88DD, 0xD163, 0x88DE, 0xD164, 0x88E0, + 0xD165, 0x88E1, 0xD166, 0x88E6, 0xD167, 0x88E7, 0xD168, 0x88E9, 0xD169, 0x88EA, 0xD16A, 0x88EB, 0xD16B, 0x88EC, 0xD16C, 0x88ED, + 0xD16D, 0x88EE, 0xD16E, 0x88EF, 0xD16F, 0x88F2, 0xD170, 0x88F5, 0xD171, 0x88F6, 0xD172, 0x88F7, 0xD173, 0x88FA, 0xD174, 0x88FB, + 0xD175, 0x88FD, 0xD176, 0x88FF, 0xD177, 0x8900, 0xD178, 0x8901, 0xD179, 0x8903, 0xD17A, 0x8904, 0xD17B, 0x8905, 0xD17C, 0x8906, + 0xD17D, 0x8907, 0xD17E, 0x8908, 0xD180, 0x8909, 0xD181, 0x890B, 0xD182, 0x890C, 0xD183, 0x890D, 0xD184, 0x890E, 0xD185, 0x890F, + 0xD186, 0x8911, 0xD187, 0x8914, 0xD188, 0x8915, 0xD189, 0x8916, 0xD18A, 0x8917, 0xD18B, 0x8918, 0xD18C, 0x891C, 0xD18D, 0x891D, + 0xD18E, 0x891E, 0xD18F, 0x891F, 0xD190, 0x8920, 0xD191, 0x8922, 0xD192, 0x8923, 0xD193, 0x8924, 0xD194, 0x8926, 0xD195, 0x8927, + 0xD196, 0x8928, 0xD197, 0x8929, 0xD198, 0x892C, 0xD199, 0x892D, 0xD19A, 0x892E, 0xD19B, 0x892F, 0xD19C, 0x8931, 0xD19D, 0x8932, + 0xD19E, 0x8933, 0xD19F, 0x8935, 0xD1A0, 0x8937, 0xD1A1, 0x9009, 0xD1A2, 0x7663, 0xD1A3, 0x7729, 0xD1A4, 0x7EDA, 0xD1A5, 0x9774, + 0xD1A6, 0x859B, 0xD1A7, 0x5B66, 0xD1A8, 0x7A74, 0xD1A9, 0x96EA, 0xD1AA, 0x8840, 0xD1AB, 0x52CB, 0xD1AC, 0x718F, 0xD1AD, 0x5FAA, + 0xD1AE, 0x65EC, 0xD1AF, 0x8BE2, 0xD1B0, 0x5BFB, 0xD1B1, 0x9A6F, 0xD1B2, 0x5DE1, 0xD1B3, 0x6B89, 0xD1B4, 0x6C5B, 0xD1B5, 0x8BAD, + 0xD1B6, 0x8BAF, 0xD1B7, 0x900A, 0xD1B8, 0x8FC5, 0xD1B9, 0x538B, 0xD1BA, 0x62BC, 0xD1BB, 0x9E26, 0xD1BC, 0x9E2D, 0xD1BD, 0x5440, + 0xD1BE, 0x4E2B, 0xD1BF, 0x82BD, 0xD1C0, 0x7259, 0xD1C1, 0x869C, 0xD1C2, 0x5D16, 0xD1C3, 0x8859, 0xD1C4, 0x6DAF, 0xD1C5, 0x96C5, + 0xD1C6, 0x54D1, 0xD1C7, 0x4E9A, 0xD1C8, 0x8BB6, 0xD1C9, 0x7109, 0xD1CA, 0x54BD, 0xD1CB, 0x9609, 0xD1CC, 0x70DF, 0xD1CD, 0x6DF9, + 0xD1CE, 0x76D0, 0xD1CF, 0x4E25, 0xD1D0, 0x7814, 0xD1D1, 0x8712, 0xD1D2, 0x5CA9, 0xD1D3, 0x5EF6, 0xD1D4, 0x8A00, 0xD1D5, 0x989C, + 0xD1D6, 0x960E, 0xD1D7, 0x708E, 0xD1D8, 0x6CBF, 0xD1D9, 0x5944, 0xD1DA, 0x63A9, 0xD1DB, 0x773C, 0xD1DC, 0x884D, 0xD1DD, 0x6F14, + 0xD1DE, 0x8273, 0xD1DF, 0x5830, 0xD1E0, 0x71D5, 0xD1E1, 0x538C, 0xD1E2, 0x781A, 0xD1E3, 0x96C1, 0xD1E4, 0x5501, 0xD1E5, 0x5F66, + 0xD1E6, 0x7130, 0xD1E7, 0x5BB4, 0xD1E8, 0x8C1A, 0xD1E9, 0x9A8C, 0xD1EA, 0x6B83, 0xD1EB, 0x592E, 0xD1EC, 0x9E2F, 0xD1ED, 0x79E7, + 0xD1EE, 0x6768, 0xD1EF, 0x626C, 0xD1F0, 0x4F6F, 0xD1F1, 0x75A1, 0xD1F2, 0x7F8A, 0xD1F3, 0x6D0B, 0xD1F4, 0x9633, 0xD1F5, 0x6C27, + 0xD1F6, 0x4EF0, 0xD1F7, 0x75D2, 0xD1F8, 0x517B, 0xD1F9, 0x6837, 0xD1FA, 0x6F3E, 0xD1FB, 0x9080, 0xD1FC, 0x8170, 0xD1FD, 0x5996, + 0xD1FE, 0x7476, 0xD240, 0x8938, 0xD241, 0x8939, 0xD242, 0x893A, 0xD243, 0x893B, 0xD244, 0x893C, 0xD245, 0x893D, 0xD246, 0x893E, + 0xD247, 0x893F, 0xD248, 0x8940, 0xD249, 0x8942, 0xD24A, 0x8943, 0xD24B, 0x8945, 0xD24C, 0x8946, 0xD24D, 0x8947, 0xD24E, 0x8948, + 0xD24F, 0x8949, 0xD250, 0x894A, 0xD251, 0x894B, 0xD252, 0x894C, 0xD253, 0x894D, 0xD254, 0x894E, 0xD255, 0x894F, 0xD256, 0x8950, + 0xD257, 0x8951, 0xD258, 0x8952, 0xD259, 0x8953, 0xD25A, 0x8954, 0xD25B, 0x8955, 0xD25C, 0x8956, 0xD25D, 0x8957, 0xD25E, 0x8958, + 0xD25F, 0x8959, 0xD260, 0x895A, 0xD261, 0x895B, 0xD262, 0x895C, 0xD263, 0x895D, 0xD264, 0x8960, 0xD265, 0x8961, 0xD266, 0x8962, + 0xD267, 0x8963, 0xD268, 0x8964, 0xD269, 0x8965, 0xD26A, 0x8967, 0xD26B, 0x8968, 0xD26C, 0x8969, 0xD26D, 0x896A, 0xD26E, 0x896B, + 0xD26F, 0x896C, 0xD270, 0x896D, 0xD271, 0x896E, 0xD272, 0x896F, 0xD273, 0x8970, 0xD274, 0x8971, 0xD275, 0x8972, 0xD276, 0x8973, + 0xD277, 0x8974, 0xD278, 0x8975, 0xD279, 0x8976, 0xD27A, 0x8977, 0xD27B, 0x8978, 0xD27C, 0x8979, 0xD27D, 0x897A, 0xD27E, 0x897C, + 0xD280, 0x897D, 0xD281, 0x897E, 0xD282, 0x8980, 0xD283, 0x8982, 0xD284, 0x8984, 0xD285, 0x8985, 0xD286, 0x8987, 0xD287, 0x8988, + 0xD288, 0x8989, 0xD289, 0x898A, 0xD28A, 0x898B, 0xD28B, 0x898C, 0xD28C, 0x898D, 0xD28D, 0x898E, 0xD28E, 0x898F, 0xD28F, 0x8990, + 0xD290, 0x8991, 0xD291, 0x8992, 0xD292, 0x8993, 0xD293, 0x8994, 0xD294, 0x8995, 0xD295, 0x8996, 0xD296, 0x8997, 0xD297, 0x8998, + 0xD298, 0x8999, 0xD299, 0x899A, 0xD29A, 0x899B, 0xD29B, 0x899C, 0xD29C, 0x899D, 0xD29D, 0x899E, 0xD29E, 0x899F, 0xD29F, 0x89A0, + 0xD2A0, 0x89A1, 0xD2A1, 0x6447, 0xD2A2, 0x5C27, 0xD2A3, 0x9065, 0xD2A4, 0x7A91, 0xD2A5, 0x8C23, 0xD2A6, 0x59DA, 0xD2A7, 0x54AC, + 0xD2A8, 0x8200, 0xD2A9, 0x836F, 0xD2AA, 0x8981, 0xD2AB, 0x8000, 0xD2AC, 0x6930, 0xD2AD, 0x564E, 0xD2AE, 0x8036, 0xD2AF, 0x7237, + 0xD2B0, 0x91CE, 0xD2B1, 0x51B6, 0xD2B2, 0x4E5F, 0xD2B3, 0x9875, 0xD2B4, 0x6396, 0xD2B5, 0x4E1A, 0xD2B6, 0x53F6, 0xD2B7, 0x66F3, + 0xD2B8, 0x814B, 0xD2B9, 0x591C, 0xD2BA, 0x6DB2, 0xD2BB, 0x4E00, 0xD2BC, 0x58F9, 0xD2BD, 0x533B, 0xD2BE, 0x63D6, 0xD2BF, 0x94F1, + 0xD2C0, 0x4F9D, 0xD2C1, 0x4F0A, 0xD2C2, 0x8863, 0xD2C3, 0x9890, 0xD2C4, 0x5937, 0xD2C5, 0x9057, 0xD2C6, 0x79FB, 0xD2C7, 0x4EEA, + 0xD2C8, 0x80F0, 0xD2C9, 0x7591, 0xD2CA, 0x6C82, 0xD2CB, 0x5B9C, 0xD2CC, 0x59E8, 0xD2CD, 0x5F5D, 0xD2CE, 0x6905, 0xD2CF, 0x8681, + 0xD2D0, 0x501A, 0xD2D1, 0x5DF2, 0xD2D2, 0x4E59, 0xD2D3, 0x77E3, 0xD2D4, 0x4EE5, 0xD2D5, 0x827A, 0xD2D6, 0x6291, 0xD2D7, 0x6613, + 0xD2D8, 0x9091, 0xD2D9, 0x5C79, 0xD2DA, 0x4EBF, 0xD2DB, 0x5F79, 0xD2DC, 0x81C6, 0xD2DD, 0x9038, 0xD2DE, 0x8084, 0xD2DF, 0x75AB, + 0xD2E0, 0x4EA6, 0xD2E1, 0x88D4, 0xD2E2, 0x610F, 0xD2E3, 0x6BC5, 0xD2E4, 0x5FC6, 0xD2E5, 0x4E49, 0xD2E6, 0x76CA, 0xD2E7, 0x6EA2, + 0xD2E8, 0x8BE3, 0xD2E9, 0x8BAE, 0xD2EA, 0x8C0A, 0xD2EB, 0x8BD1, 0xD2EC, 0x5F02, 0xD2ED, 0x7FFC, 0xD2EE, 0x7FCC, 0xD2EF, 0x7ECE, + 0xD2F0, 0x8335, 0xD2F1, 0x836B, 0xD2F2, 0x56E0, 0xD2F3, 0x6BB7, 0xD2F4, 0x97F3, 0xD2F5, 0x9634, 0xD2F6, 0x59FB, 0xD2F7, 0x541F, + 0xD2F8, 0x94F6, 0xD2F9, 0x6DEB, 0xD2FA, 0x5BC5, 0xD2FB, 0x996E, 0xD2FC, 0x5C39, 0xD2FD, 0x5F15, 0xD2FE, 0x9690, 0xD340, 0x89A2, + 0xD341, 0x89A3, 0xD342, 0x89A4, 0xD343, 0x89A5, 0xD344, 0x89A6, 0xD345, 0x89A7, 0xD346, 0x89A8, 0xD347, 0x89A9, 0xD348, 0x89AA, + 0xD349, 0x89AB, 0xD34A, 0x89AC, 0xD34B, 0x89AD, 0xD34C, 0x89AE, 0xD34D, 0x89AF, 0xD34E, 0x89B0, 0xD34F, 0x89B1, 0xD350, 0x89B2, + 0xD351, 0x89B3, 0xD352, 0x89B4, 0xD353, 0x89B5, 0xD354, 0x89B6, 0xD355, 0x89B7, 0xD356, 0x89B8, 0xD357, 0x89B9, 0xD358, 0x89BA, + 0xD359, 0x89BB, 0xD35A, 0x89BC, 0xD35B, 0x89BD, 0xD35C, 0x89BE, 0xD35D, 0x89BF, 0xD35E, 0x89C0, 0xD35F, 0x89C3, 0xD360, 0x89CD, + 0xD361, 0x89D3, 0xD362, 0x89D4, 0xD363, 0x89D5, 0xD364, 0x89D7, 0xD365, 0x89D8, 0xD366, 0x89D9, 0xD367, 0x89DB, 0xD368, 0x89DD, + 0xD369, 0x89DF, 0xD36A, 0x89E0, 0xD36B, 0x89E1, 0xD36C, 0x89E2, 0xD36D, 0x89E4, 0xD36E, 0x89E7, 0xD36F, 0x89E8, 0xD370, 0x89E9, + 0xD371, 0x89EA, 0xD372, 0x89EC, 0xD373, 0x89ED, 0xD374, 0x89EE, 0xD375, 0x89F0, 0xD376, 0x89F1, 0xD377, 0x89F2, 0xD378, 0x89F4, + 0xD379, 0x89F5, 0xD37A, 0x89F6, 0xD37B, 0x89F7, 0xD37C, 0x89F8, 0xD37D, 0x89F9, 0xD37E, 0x89FA, 0xD380, 0x89FB, 0xD381, 0x89FC, + 0xD382, 0x89FD, 0xD383, 0x89FE, 0xD384, 0x89FF, 0xD385, 0x8A01, 0xD386, 0x8A02, 0xD387, 0x8A03, 0xD388, 0x8A04, 0xD389, 0x8A05, + 0xD38A, 0x8A06, 0xD38B, 0x8A08, 0xD38C, 0x8A09, 0xD38D, 0x8A0A, 0xD38E, 0x8A0B, 0xD38F, 0x8A0C, 0xD390, 0x8A0D, 0xD391, 0x8A0E, + 0xD392, 0x8A0F, 0xD393, 0x8A10, 0xD394, 0x8A11, 0xD395, 0x8A12, 0xD396, 0x8A13, 0xD397, 0x8A14, 0xD398, 0x8A15, 0xD399, 0x8A16, + 0xD39A, 0x8A17, 0xD39B, 0x8A18, 0xD39C, 0x8A19, 0xD39D, 0x8A1A, 0xD39E, 0x8A1B, 0xD39F, 0x8A1C, 0xD3A0, 0x8A1D, 0xD3A1, 0x5370, + 0xD3A2, 0x82F1, 0xD3A3, 0x6A31, 0xD3A4, 0x5A74, 0xD3A5, 0x9E70, 0xD3A6, 0x5E94, 0xD3A7, 0x7F28, 0xD3A8, 0x83B9, 0xD3A9, 0x8424, + 0xD3AA, 0x8425, 0xD3AB, 0x8367, 0xD3AC, 0x8747, 0xD3AD, 0x8FCE, 0xD3AE, 0x8D62, 0xD3AF, 0x76C8, 0xD3B0, 0x5F71, 0xD3B1, 0x9896, + 0xD3B2, 0x786C, 0xD3B3, 0x6620, 0xD3B4, 0x54DF, 0xD3B5, 0x62E5, 0xD3B6, 0x4F63, 0xD3B7, 0x81C3, 0xD3B8, 0x75C8, 0xD3B9, 0x5EB8, + 0xD3BA, 0x96CD, 0xD3BB, 0x8E0A, 0xD3BC, 0x86F9, 0xD3BD, 0x548F, 0xD3BE, 0x6CF3, 0xD3BF, 0x6D8C, 0xD3C0, 0x6C38, 0xD3C1, 0x607F, + 0xD3C2, 0x52C7, 0xD3C3, 0x7528, 0xD3C4, 0x5E7D, 0xD3C5, 0x4F18, 0xD3C6, 0x60A0, 0xD3C7, 0x5FE7, 0xD3C8, 0x5C24, 0xD3C9, 0x7531, + 0xD3CA, 0x90AE, 0xD3CB, 0x94C0, 0xD3CC, 0x72B9, 0xD3CD, 0x6CB9, 0xD3CE, 0x6E38, 0xD3CF, 0x9149, 0xD3D0, 0x6709, 0xD3D1, 0x53CB, + 0xD3D2, 0x53F3, 0xD3D3, 0x4F51, 0xD3D4, 0x91C9, 0xD3D5, 0x8BF1, 0xD3D6, 0x53C8, 0xD3D7, 0x5E7C, 0xD3D8, 0x8FC2, 0xD3D9, 0x6DE4, + 0xD3DA, 0x4E8E, 0xD3DB, 0x76C2, 0xD3DC, 0x6986, 0xD3DD, 0x865E, 0xD3DE, 0x611A, 0xD3DF, 0x8206, 0xD3E0, 0x4F59, 0xD3E1, 0x4FDE, + 0xD3E2, 0x903E, 0xD3E3, 0x9C7C, 0xD3E4, 0x6109, 0xD3E5, 0x6E1D, 0xD3E6, 0x6E14, 0xD3E7, 0x9685, 0xD3E8, 0x4E88, 0xD3E9, 0x5A31, + 0xD3EA, 0x96E8, 0xD3EB, 0x4E0E, 0xD3EC, 0x5C7F, 0xD3ED, 0x79B9, 0xD3EE, 0x5B87, 0xD3EF, 0x8BED, 0xD3F0, 0x7FBD, 0xD3F1, 0x7389, + 0xD3F2, 0x57DF, 0xD3F3, 0x828B, 0xD3F4, 0x90C1, 0xD3F5, 0x5401, 0xD3F6, 0x9047, 0xD3F7, 0x55BB, 0xD3F8, 0x5CEA, 0xD3F9, 0x5FA1, + 0xD3FA, 0x6108, 0xD3FB, 0x6B32, 0xD3FC, 0x72F1, 0xD3FD, 0x80B2, 0xD3FE, 0x8A89, 0xD440, 0x8A1E, 0xD441, 0x8A1F, 0xD442, 0x8A20, + 0xD443, 0x8A21, 0xD444, 0x8A22, 0xD445, 0x8A23, 0xD446, 0x8A24, 0xD447, 0x8A25, 0xD448, 0x8A26, 0xD449, 0x8A27, 0xD44A, 0x8A28, + 0xD44B, 0x8A29, 0xD44C, 0x8A2A, 0xD44D, 0x8A2B, 0xD44E, 0x8A2C, 0xD44F, 0x8A2D, 0xD450, 0x8A2E, 0xD451, 0x8A2F, 0xD452, 0x8A30, + 0xD453, 0x8A31, 0xD454, 0x8A32, 0xD455, 0x8A33, 0xD456, 0x8A34, 0xD457, 0x8A35, 0xD458, 0x8A36, 0xD459, 0x8A37, 0xD45A, 0x8A38, + 0xD45B, 0x8A39, 0xD45C, 0x8A3A, 0xD45D, 0x8A3B, 0xD45E, 0x8A3C, 0xD45F, 0x8A3D, 0xD460, 0x8A3F, 0xD461, 0x8A40, 0xD462, 0x8A41, + 0xD463, 0x8A42, 0xD464, 0x8A43, 0xD465, 0x8A44, 0xD466, 0x8A45, 0xD467, 0x8A46, 0xD468, 0x8A47, 0xD469, 0x8A49, 0xD46A, 0x8A4A, + 0xD46B, 0x8A4B, 0xD46C, 0x8A4C, 0xD46D, 0x8A4D, 0xD46E, 0x8A4E, 0xD46F, 0x8A4F, 0xD470, 0x8A50, 0xD471, 0x8A51, 0xD472, 0x8A52, + 0xD473, 0x8A53, 0xD474, 0x8A54, 0xD475, 0x8A55, 0xD476, 0x8A56, 0xD477, 0x8A57, 0xD478, 0x8A58, 0xD479, 0x8A59, 0xD47A, 0x8A5A, + 0xD47B, 0x8A5B, 0xD47C, 0x8A5C, 0xD47D, 0x8A5D, 0xD47E, 0x8A5E, 0xD480, 0x8A5F, 0xD481, 0x8A60, 0xD482, 0x8A61, 0xD483, 0x8A62, + 0xD484, 0x8A63, 0xD485, 0x8A64, 0xD486, 0x8A65, 0xD487, 0x8A66, 0xD488, 0x8A67, 0xD489, 0x8A68, 0xD48A, 0x8A69, 0xD48B, 0x8A6A, + 0xD48C, 0x8A6B, 0xD48D, 0x8A6C, 0xD48E, 0x8A6D, 0xD48F, 0x8A6E, 0xD490, 0x8A6F, 0xD491, 0x8A70, 0xD492, 0x8A71, 0xD493, 0x8A72, + 0xD494, 0x8A73, 0xD495, 0x8A74, 0xD496, 0x8A75, 0xD497, 0x8A76, 0xD498, 0x8A77, 0xD499, 0x8A78, 0xD49A, 0x8A7A, 0xD49B, 0x8A7B, + 0xD49C, 0x8A7C, 0xD49D, 0x8A7D, 0xD49E, 0x8A7E, 0xD49F, 0x8A7F, 0xD4A0, 0x8A80, 0xD4A1, 0x6D74, 0xD4A2, 0x5BD3, 0xD4A3, 0x88D5, + 0xD4A4, 0x9884, 0xD4A5, 0x8C6B, 0xD4A6, 0x9A6D, 0xD4A7, 0x9E33, 0xD4A8, 0x6E0A, 0xD4A9, 0x51A4, 0xD4AA, 0x5143, 0xD4AB, 0x57A3, + 0xD4AC, 0x8881, 0xD4AD, 0x539F, 0xD4AE, 0x63F4, 0xD4AF, 0x8F95, 0xD4B0, 0x56ED, 0xD4B1, 0x5458, 0xD4B2, 0x5706, 0xD4B3, 0x733F, + 0xD4B4, 0x6E90, 0xD4B5, 0x7F18, 0xD4B6, 0x8FDC, 0xD4B7, 0x82D1, 0xD4B8, 0x613F, 0xD4B9, 0x6028, 0xD4BA, 0x9662, 0xD4BB, 0x66F0, + 0xD4BC, 0x7EA6, 0xD4BD, 0x8D8A, 0xD4BE, 0x8DC3, 0xD4BF, 0x94A5, 0xD4C0, 0x5CB3, 0xD4C1, 0x7CA4, 0xD4C2, 0x6708, 0xD4C3, 0x60A6, + 0xD4C4, 0x9605, 0xD4C5, 0x8018, 0xD4C6, 0x4E91, 0xD4C7, 0x90E7, 0xD4C8, 0x5300, 0xD4C9, 0x9668, 0xD4CA, 0x5141, 0xD4CB, 0x8FD0, + 0xD4CC, 0x8574, 0xD4CD, 0x915D, 0xD4CE, 0x6655, 0xD4CF, 0x97F5, 0xD4D0, 0x5B55, 0xD4D1, 0x531D, 0xD4D2, 0x7838, 0xD4D3, 0x6742, + 0xD4D4, 0x683D, 0xD4D5, 0x54C9, 0xD4D6, 0x707E, 0xD4D7, 0x5BB0, 0xD4D8, 0x8F7D, 0xD4D9, 0x518D, 0xD4DA, 0x5728, 0xD4DB, 0x54B1, + 0xD4DC, 0x6512, 0xD4DD, 0x6682, 0xD4DE, 0x8D5E, 0xD4DF, 0x8D43, 0xD4E0, 0x810F, 0xD4E1, 0x846C, 0xD4E2, 0x906D, 0xD4E3, 0x7CDF, + 0xD4E4, 0x51FF, 0xD4E5, 0x85FB, 0xD4E6, 0x67A3, 0xD4E7, 0x65E9, 0xD4E8, 0x6FA1, 0xD4E9, 0x86A4, 0xD4EA, 0x8E81, 0xD4EB, 0x566A, + 0xD4EC, 0x9020, 0xD4ED, 0x7682, 0xD4EE, 0x7076, 0xD4EF, 0x71E5, 0xD4F0, 0x8D23, 0xD4F1, 0x62E9, 0xD4F2, 0x5219, 0xD4F3, 0x6CFD, + 0xD4F4, 0x8D3C, 0xD4F5, 0x600E, 0xD4F6, 0x589E, 0xD4F7, 0x618E, 0xD4F8, 0x66FE, 0xD4F9, 0x8D60, 0xD4FA, 0x624E, 0xD4FB, 0x55B3, + 0xD4FC, 0x6E23, 0xD4FD, 0x672D, 0xD4FE, 0x8F67, 0xD540, 0x8A81, 0xD541, 0x8A82, 0xD542, 0x8A83, 0xD543, 0x8A84, 0xD544, 0x8A85, + 0xD545, 0x8A86, 0xD546, 0x8A87, 0xD547, 0x8A88, 0xD548, 0x8A8B, 0xD549, 0x8A8C, 0xD54A, 0x8A8D, 0xD54B, 0x8A8E, 0xD54C, 0x8A8F, + 0xD54D, 0x8A90, 0xD54E, 0x8A91, 0xD54F, 0x8A92, 0xD550, 0x8A94, 0xD551, 0x8A95, 0xD552, 0x8A96, 0xD553, 0x8A97, 0xD554, 0x8A98, + 0xD555, 0x8A99, 0xD556, 0x8A9A, 0xD557, 0x8A9B, 0xD558, 0x8A9C, 0xD559, 0x8A9D, 0xD55A, 0x8A9E, 0xD55B, 0x8A9F, 0xD55C, 0x8AA0, + 0xD55D, 0x8AA1, 0xD55E, 0x8AA2, 0xD55F, 0x8AA3, 0xD560, 0x8AA4, 0xD561, 0x8AA5, 0xD562, 0x8AA6, 0xD563, 0x8AA7, 0xD564, 0x8AA8, + 0xD565, 0x8AA9, 0xD566, 0x8AAA, 0xD567, 0x8AAB, 0xD568, 0x8AAC, 0xD569, 0x8AAD, 0xD56A, 0x8AAE, 0xD56B, 0x8AAF, 0xD56C, 0x8AB0, + 0xD56D, 0x8AB1, 0xD56E, 0x8AB2, 0xD56F, 0x8AB3, 0xD570, 0x8AB4, 0xD571, 0x8AB5, 0xD572, 0x8AB6, 0xD573, 0x8AB7, 0xD574, 0x8AB8, + 0xD575, 0x8AB9, 0xD576, 0x8ABA, 0xD577, 0x8ABB, 0xD578, 0x8ABC, 0xD579, 0x8ABD, 0xD57A, 0x8ABE, 0xD57B, 0x8ABF, 0xD57C, 0x8AC0, + 0xD57D, 0x8AC1, 0xD57E, 0x8AC2, 0xD580, 0x8AC3, 0xD581, 0x8AC4, 0xD582, 0x8AC5, 0xD583, 0x8AC6, 0xD584, 0x8AC7, 0xD585, 0x8AC8, + 0xD586, 0x8AC9, 0xD587, 0x8ACA, 0xD588, 0x8ACB, 0xD589, 0x8ACC, 0xD58A, 0x8ACD, 0xD58B, 0x8ACE, 0xD58C, 0x8ACF, 0xD58D, 0x8AD0, + 0xD58E, 0x8AD1, 0xD58F, 0x8AD2, 0xD590, 0x8AD3, 0xD591, 0x8AD4, 0xD592, 0x8AD5, 0xD593, 0x8AD6, 0xD594, 0x8AD7, 0xD595, 0x8AD8, + 0xD596, 0x8AD9, 0xD597, 0x8ADA, 0xD598, 0x8ADB, 0xD599, 0x8ADC, 0xD59A, 0x8ADD, 0xD59B, 0x8ADE, 0xD59C, 0x8ADF, 0xD59D, 0x8AE0, + 0xD59E, 0x8AE1, 0xD59F, 0x8AE2, 0xD5A0, 0x8AE3, 0xD5A1, 0x94E1, 0xD5A2, 0x95F8, 0xD5A3, 0x7728, 0xD5A4, 0x6805, 0xD5A5, 0x69A8, + 0xD5A6, 0x548B, 0xD5A7, 0x4E4D, 0xD5A8, 0x70B8, 0xD5A9, 0x8BC8, 0xD5AA, 0x6458, 0xD5AB, 0x658B, 0xD5AC, 0x5B85, 0xD5AD, 0x7A84, + 0xD5AE, 0x503A, 0xD5AF, 0x5BE8, 0xD5B0, 0x77BB, 0xD5B1, 0x6BE1, 0xD5B2, 0x8A79, 0xD5B3, 0x7C98, 0xD5B4, 0x6CBE, 0xD5B5, 0x76CF, + 0xD5B6, 0x65A9, 0xD5B7, 0x8F97, 0xD5B8, 0x5D2D, 0xD5B9, 0x5C55, 0xD5BA, 0x8638, 0xD5BB, 0x6808, 0xD5BC, 0x5360, 0xD5BD, 0x6218, + 0xD5BE, 0x7AD9, 0xD5BF, 0x6E5B, 0xD5C0, 0x7EFD, 0xD5C1, 0x6A1F, 0xD5C2, 0x7AE0, 0xD5C3, 0x5F70, 0xD5C4, 0x6F33, 0xD5C5, 0x5F20, + 0xD5C6, 0x638C, 0xD5C7, 0x6DA8, 0xD5C8, 0x6756, 0xD5C9, 0x4E08, 0xD5CA, 0x5E10, 0xD5CB, 0x8D26, 0xD5CC, 0x4ED7, 0xD5CD, 0x80C0, + 0xD5CE, 0x7634, 0xD5CF, 0x969C, 0xD5D0, 0x62DB, 0xD5D1, 0x662D, 0xD5D2, 0x627E, 0xD5D3, 0x6CBC, 0xD5D4, 0x8D75, 0xD5D5, 0x7167, + 0xD5D6, 0x7F69, 0xD5D7, 0x5146, 0xD5D8, 0x8087, 0xD5D9, 0x53EC, 0xD5DA, 0x906E, 0xD5DB, 0x6298, 0xD5DC, 0x54F2, 0xD5DD, 0x86F0, + 0xD5DE, 0x8F99, 0xD5DF, 0x8005, 0xD5E0, 0x9517, 0xD5E1, 0x8517, 0xD5E2, 0x8FD9, 0xD5E3, 0x6D59, 0xD5E4, 0x73CD, 0xD5E5, 0x659F, + 0xD5E6, 0x771F, 0xD5E7, 0x7504, 0xD5E8, 0x7827, 0xD5E9, 0x81FB, 0xD5EA, 0x8D1E, 0xD5EB, 0x9488, 0xD5EC, 0x4FA6, 0xD5ED, 0x6795, + 0xD5EE, 0x75B9, 0xD5EF, 0x8BCA, 0xD5F0, 0x9707, 0xD5F1, 0x632F, 0xD5F2, 0x9547, 0xD5F3, 0x9635, 0xD5F4, 0x84B8, 0xD5F5, 0x6323, + 0xD5F6, 0x7741, 0xD5F7, 0x5F81, 0xD5F8, 0x72F0, 0xD5F9, 0x4E89, 0xD5FA, 0x6014, 0xD5FB, 0x6574, 0xD5FC, 0x62EF, 0xD5FD, 0x6B63, + 0xD5FE, 0x653F, 0xD640, 0x8AE4, 0xD641, 0x8AE5, 0xD642, 0x8AE6, 0xD643, 0x8AE7, 0xD644, 0x8AE8, 0xD645, 0x8AE9, 0xD646, 0x8AEA, + 0xD647, 0x8AEB, 0xD648, 0x8AEC, 0xD649, 0x8AED, 0xD64A, 0x8AEE, 0xD64B, 0x8AEF, 0xD64C, 0x8AF0, 0xD64D, 0x8AF1, 0xD64E, 0x8AF2, + 0xD64F, 0x8AF3, 0xD650, 0x8AF4, 0xD651, 0x8AF5, 0xD652, 0x8AF6, 0xD653, 0x8AF7, 0xD654, 0x8AF8, 0xD655, 0x8AF9, 0xD656, 0x8AFA, + 0xD657, 0x8AFB, 0xD658, 0x8AFC, 0xD659, 0x8AFD, 0xD65A, 0x8AFE, 0xD65B, 0x8AFF, 0xD65C, 0x8B00, 0xD65D, 0x8B01, 0xD65E, 0x8B02, + 0xD65F, 0x8B03, 0xD660, 0x8B04, 0xD661, 0x8B05, 0xD662, 0x8B06, 0xD663, 0x8B08, 0xD664, 0x8B09, 0xD665, 0x8B0A, 0xD666, 0x8B0B, + 0xD667, 0x8B0C, 0xD668, 0x8B0D, 0xD669, 0x8B0E, 0xD66A, 0x8B0F, 0xD66B, 0x8B10, 0xD66C, 0x8B11, 0xD66D, 0x8B12, 0xD66E, 0x8B13, + 0xD66F, 0x8B14, 0xD670, 0x8B15, 0xD671, 0x8B16, 0xD672, 0x8B17, 0xD673, 0x8B18, 0xD674, 0x8B19, 0xD675, 0x8B1A, 0xD676, 0x8B1B, + 0xD677, 0x8B1C, 0xD678, 0x8B1D, 0xD679, 0x8B1E, 0xD67A, 0x8B1F, 0xD67B, 0x8B20, 0xD67C, 0x8B21, 0xD67D, 0x8B22, 0xD67E, 0x8B23, + 0xD680, 0x8B24, 0xD681, 0x8B25, 0xD682, 0x8B27, 0xD683, 0x8B28, 0xD684, 0x8B29, 0xD685, 0x8B2A, 0xD686, 0x8B2B, 0xD687, 0x8B2C, + 0xD688, 0x8B2D, 0xD689, 0x8B2E, 0xD68A, 0x8B2F, 0xD68B, 0x8B30, 0xD68C, 0x8B31, 0xD68D, 0x8B32, 0xD68E, 0x8B33, 0xD68F, 0x8B34, + 0xD690, 0x8B35, 0xD691, 0x8B36, 0xD692, 0x8B37, 0xD693, 0x8B38, 0xD694, 0x8B39, 0xD695, 0x8B3A, 0xD696, 0x8B3B, 0xD697, 0x8B3C, + 0xD698, 0x8B3D, 0xD699, 0x8B3E, 0xD69A, 0x8B3F, 0xD69B, 0x8B40, 0xD69C, 0x8B41, 0xD69D, 0x8B42, 0xD69E, 0x8B43, 0xD69F, 0x8B44, + 0xD6A0, 0x8B45, 0xD6A1, 0x5E27, 0xD6A2, 0x75C7, 0xD6A3, 0x90D1, 0xD6A4, 0x8BC1, 0xD6A5, 0x829D, 0xD6A6, 0x679D, 0xD6A7, 0x652F, + 0xD6A8, 0x5431, 0xD6A9, 0x8718, 0xD6AA, 0x77E5, 0xD6AB, 0x80A2, 0xD6AC, 0x8102, 0xD6AD, 0x6C41, 0xD6AE, 0x4E4B, 0xD6AF, 0x7EC7, + 0xD6B0, 0x804C, 0xD6B1, 0x76F4, 0xD6B2, 0x690D, 0xD6B3, 0x6B96, 0xD6B4, 0x6267, 0xD6B5, 0x503C, 0xD6B6, 0x4F84, 0xD6B7, 0x5740, + 0xD6B8, 0x6307, 0xD6B9, 0x6B62, 0xD6BA, 0x8DBE, 0xD6BB, 0x53EA, 0xD6BC, 0x65E8, 0xD6BD, 0x7EB8, 0xD6BE, 0x5FD7, 0xD6BF, 0x631A, + 0xD6C0, 0x63B7, 0xD6C1, 0x81F3, 0xD6C2, 0x81F4, 0xD6C3, 0x7F6E, 0xD6C4, 0x5E1C, 0xD6C5, 0x5CD9, 0xD6C6, 0x5236, 0xD6C7, 0x667A, + 0xD6C8, 0x79E9, 0xD6C9, 0x7A1A, 0xD6CA, 0x8D28, 0xD6CB, 0x7099, 0xD6CC, 0x75D4, 0xD6CD, 0x6EDE, 0xD6CE, 0x6CBB, 0xD6CF, 0x7A92, + 0xD6D0, 0x4E2D, 0xD6D1, 0x76C5, 0xD6D2, 0x5FE0, 0xD6D3, 0x949F, 0xD6D4, 0x8877, 0xD6D5, 0x7EC8, 0xD6D6, 0x79CD, 0xD6D7, 0x80BF, + 0xD6D8, 0x91CD, 0xD6D9, 0x4EF2, 0xD6DA, 0x4F17, 0xD6DB, 0x821F, 0xD6DC, 0x5468, 0xD6DD, 0x5DDE, 0xD6DE, 0x6D32, 0xD6DF, 0x8BCC, + 0xD6E0, 0x7CA5, 0xD6E1, 0x8F74, 0xD6E2, 0x8098, 0xD6E3, 0x5E1A, 0xD6E4, 0x5492, 0xD6E5, 0x76B1, 0xD6E6, 0x5B99, 0xD6E7, 0x663C, + 0xD6E8, 0x9AA4, 0xD6E9, 0x73E0, 0xD6EA, 0x682A, 0xD6EB, 0x86DB, 0xD6EC, 0x6731, 0xD6ED, 0x732A, 0xD6EE, 0x8BF8, 0xD6EF, 0x8BDB, + 0xD6F0, 0x9010, 0xD6F1, 0x7AF9, 0xD6F2, 0x70DB, 0xD6F3, 0x716E, 0xD6F4, 0x62C4, 0xD6F5, 0x77A9, 0xD6F6, 0x5631, 0xD6F7, 0x4E3B, + 0xD6F8, 0x8457, 0xD6F9, 0x67F1, 0xD6FA, 0x52A9, 0xD6FB, 0x86C0, 0xD6FC, 0x8D2E, 0xD6FD, 0x94F8, 0xD6FE, 0x7B51, 0xD740, 0x8B46, + 0xD741, 0x8B47, 0xD742, 0x8B48, 0xD743, 0x8B49, 0xD744, 0x8B4A, 0xD745, 0x8B4B, 0xD746, 0x8B4C, 0xD747, 0x8B4D, 0xD748, 0x8B4E, + 0xD749, 0x8B4F, 0xD74A, 0x8B50, 0xD74B, 0x8B51, 0xD74C, 0x8B52, 0xD74D, 0x8B53, 0xD74E, 0x8B54, 0xD74F, 0x8B55, 0xD750, 0x8B56, + 0xD751, 0x8B57, 0xD752, 0x8B58, 0xD753, 0x8B59, 0xD754, 0x8B5A, 0xD755, 0x8B5B, 0xD756, 0x8B5C, 0xD757, 0x8B5D, 0xD758, 0x8B5E, + 0xD759, 0x8B5F, 0xD75A, 0x8B60, 0xD75B, 0x8B61, 0xD75C, 0x8B62, 0xD75D, 0x8B63, 0xD75E, 0x8B64, 0xD75F, 0x8B65, 0xD760, 0x8B67, + 0xD761, 0x8B68, 0xD762, 0x8B69, 0xD763, 0x8B6A, 0xD764, 0x8B6B, 0xD765, 0x8B6D, 0xD766, 0x8B6E, 0xD767, 0x8B6F, 0xD768, 0x8B70, + 0xD769, 0x8B71, 0xD76A, 0x8B72, 0xD76B, 0x8B73, 0xD76C, 0x8B74, 0xD76D, 0x8B75, 0xD76E, 0x8B76, 0xD76F, 0x8B77, 0xD770, 0x8B78, + 0xD771, 0x8B79, 0xD772, 0x8B7A, 0xD773, 0x8B7B, 0xD774, 0x8B7C, 0xD775, 0x8B7D, 0xD776, 0x8B7E, 0xD777, 0x8B7F, 0xD778, 0x8B80, + 0xD779, 0x8B81, 0xD77A, 0x8B82, 0xD77B, 0x8B83, 0xD77C, 0x8B84, 0xD77D, 0x8B85, 0xD77E, 0x8B86, 0xD780, 0x8B87, 0xD781, 0x8B88, + 0xD782, 0x8B89, 0xD783, 0x8B8A, 0xD784, 0x8B8B, 0xD785, 0x8B8C, 0xD786, 0x8B8D, 0xD787, 0x8B8E, 0xD788, 0x8B8F, 0xD789, 0x8B90, + 0xD78A, 0x8B91, 0xD78B, 0x8B92, 0xD78C, 0x8B93, 0xD78D, 0x8B94, 0xD78E, 0x8B95, 0xD78F, 0x8B96, 0xD790, 0x8B97, 0xD791, 0x8B98, + 0xD792, 0x8B99, 0xD793, 0x8B9A, 0xD794, 0x8B9B, 0xD795, 0x8B9C, 0xD796, 0x8B9D, 0xD797, 0x8B9E, 0xD798, 0x8B9F, 0xD799, 0x8BAC, + 0xD79A, 0x8BB1, 0xD79B, 0x8BBB, 0xD79C, 0x8BC7, 0xD79D, 0x8BD0, 0xD79E, 0x8BEA, 0xD79F, 0x8C09, 0xD7A0, 0x8C1E, 0xD7A1, 0x4F4F, + 0xD7A2, 0x6CE8, 0xD7A3, 0x795D, 0xD7A4, 0x9A7B, 0xD7A5, 0x6293, 0xD7A6, 0x722A, 0xD7A7, 0x62FD, 0xD7A8, 0x4E13, 0xD7A9, 0x7816, + 0xD7AA, 0x8F6C, 0xD7AB, 0x64B0, 0xD7AC, 0x8D5A, 0xD7AD, 0x7BC6, 0xD7AE, 0x6869, 0xD7AF, 0x5E84, 0xD7B0, 0x88C5, 0xD7B1, 0x5986, + 0xD7B2, 0x649E, 0xD7B3, 0x58EE, 0xD7B4, 0x72B6, 0xD7B5, 0x690E, 0xD7B6, 0x9525, 0xD7B7, 0x8FFD, 0xD7B8, 0x8D58, 0xD7B9, 0x5760, + 0xD7BA, 0x7F00, 0xD7BB, 0x8C06, 0xD7BC, 0x51C6, 0xD7BD, 0x6349, 0xD7BE, 0x62D9, 0xD7BF, 0x5353, 0xD7C0, 0x684C, 0xD7C1, 0x7422, + 0xD7C2, 0x8301, 0xD7C3, 0x914C, 0xD7C4, 0x5544, 0xD7C5, 0x7740, 0xD7C6, 0x707C, 0xD7C7, 0x6D4A, 0xD7C8, 0x5179, 0xD7C9, 0x54A8, + 0xD7CA, 0x8D44, 0xD7CB, 0x59FF, 0xD7CC, 0x6ECB, 0xD7CD, 0x6DC4, 0xD7CE, 0x5B5C, 0xD7CF, 0x7D2B, 0xD7D0, 0x4ED4, 0xD7D1, 0x7C7D, + 0xD7D2, 0x6ED3, 0xD7D3, 0x5B50, 0xD7D4, 0x81EA, 0xD7D5, 0x6E0D, 0xD7D6, 0x5B57, 0xD7D7, 0x9B03, 0xD7D8, 0x68D5, 0xD7D9, 0x8E2A, + 0xD7DA, 0x5B97, 0xD7DB, 0x7EFC, 0xD7DC, 0x603B, 0xD7DD, 0x7EB5, 0xD7DE, 0x90B9, 0xD7DF, 0x8D70, 0xD7E0, 0x594F, 0xD7E1, 0x63CD, + 0xD7E2, 0x79DF, 0xD7E3, 0x8DB3, 0xD7E4, 0x5352, 0xD7E5, 0x65CF, 0xD7E6, 0x7956, 0xD7E7, 0x8BC5, 0xD7E8, 0x963B, 0xD7E9, 0x7EC4, + 0xD7EA, 0x94BB, 0xD7EB, 0x7E82, 0xD7EC, 0x5634, 0xD7ED, 0x9189, 0xD7EE, 0x6700, 0xD7EF, 0x7F6A, 0xD7F0, 0x5C0A, 0xD7F1, 0x9075, + 0xD7F2, 0x6628, 0xD7F3, 0x5DE6, 0xD7F4, 0x4F50, 0xD7F5, 0x67DE, 0xD7F6, 0x505A, 0xD7F7, 0x4F5C, 0xD7F8, 0x5750, 0xD7F9, 0x5EA7, + 0xD840, 0x8C38, 0xD841, 0x8C39, 0xD842, 0x8C3A, 0xD843, 0x8C3B, 0xD844, 0x8C3C, 0xD845, 0x8C3D, 0xD846, 0x8C3E, 0xD847, 0x8C3F, + 0xD848, 0x8C40, 0xD849, 0x8C42, 0xD84A, 0x8C43, 0xD84B, 0x8C44, 0xD84C, 0x8C45, 0xD84D, 0x8C48, 0xD84E, 0x8C4A, 0xD84F, 0x8C4B, + 0xD850, 0x8C4D, 0xD851, 0x8C4E, 0xD852, 0x8C4F, 0xD853, 0x8C50, 0xD854, 0x8C51, 0xD855, 0x8C52, 0xD856, 0x8C53, 0xD857, 0x8C54, + 0xD858, 0x8C56, 0xD859, 0x8C57, 0xD85A, 0x8C58, 0xD85B, 0x8C59, 0xD85C, 0x8C5B, 0xD85D, 0x8C5C, 0xD85E, 0x8C5D, 0xD85F, 0x8C5E, + 0xD860, 0x8C5F, 0xD861, 0x8C60, 0xD862, 0x8C63, 0xD863, 0x8C64, 0xD864, 0x8C65, 0xD865, 0x8C66, 0xD866, 0x8C67, 0xD867, 0x8C68, + 0xD868, 0x8C69, 0xD869, 0x8C6C, 0xD86A, 0x8C6D, 0xD86B, 0x8C6E, 0xD86C, 0x8C6F, 0xD86D, 0x8C70, 0xD86E, 0x8C71, 0xD86F, 0x8C72, + 0xD870, 0x8C74, 0xD871, 0x8C75, 0xD872, 0x8C76, 0xD873, 0x8C77, 0xD874, 0x8C7B, 0xD875, 0x8C7C, 0xD876, 0x8C7D, 0xD877, 0x8C7E, + 0xD878, 0x8C7F, 0xD879, 0x8C80, 0xD87A, 0x8C81, 0xD87B, 0x8C83, 0xD87C, 0x8C84, 0xD87D, 0x8C86, 0xD87E, 0x8C87, 0xD880, 0x8C88, + 0xD881, 0x8C8B, 0xD882, 0x8C8D, 0xD883, 0x8C8E, 0xD884, 0x8C8F, 0xD885, 0x8C90, 0xD886, 0x8C91, 0xD887, 0x8C92, 0xD888, 0x8C93, + 0xD889, 0x8C95, 0xD88A, 0x8C96, 0xD88B, 0x8C97, 0xD88C, 0x8C99, 0xD88D, 0x8C9A, 0xD88E, 0x8C9B, 0xD88F, 0x8C9C, 0xD890, 0x8C9D, + 0xD891, 0x8C9E, 0xD892, 0x8C9F, 0xD893, 0x8CA0, 0xD894, 0x8CA1, 0xD895, 0x8CA2, 0xD896, 0x8CA3, 0xD897, 0x8CA4, 0xD898, 0x8CA5, + 0xD899, 0x8CA6, 0xD89A, 0x8CA7, 0xD89B, 0x8CA8, 0xD89C, 0x8CA9, 0xD89D, 0x8CAA, 0xD89E, 0x8CAB, 0xD89F, 0x8CAC, 0xD8A0, 0x8CAD, + 0xD8A1, 0x4E8D, 0xD8A2, 0x4E0C, 0xD8A3, 0x5140, 0xD8A4, 0x4E10, 0xD8A5, 0x5EFF, 0xD8A6, 0x5345, 0xD8A7, 0x4E15, 0xD8A8, 0x4E98, + 0xD8A9, 0x4E1E, 0xD8AA, 0x9B32, 0xD8AB, 0x5B6C, 0xD8AC, 0x5669, 0xD8AD, 0x4E28, 0xD8AE, 0x79BA, 0xD8AF, 0x4E3F, 0xD8B0, 0x5315, + 0xD8B1, 0x4E47, 0xD8B2, 0x592D, 0xD8B3, 0x723B, 0xD8B4, 0x536E, 0xD8B5, 0x6C10, 0xD8B6, 0x56DF, 0xD8B7, 0x80E4, 0xD8B8, 0x9997, + 0xD8B9, 0x6BD3, 0xD8BA, 0x777E, 0xD8BB, 0x9F17, 0xD8BC, 0x4E36, 0xD8BD, 0x4E9F, 0xD8BE, 0x9F10, 0xD8BF, 0x4E5C, 0xD8C0, 0x4E69, + 0xD8C1, 0x4E93, 0xD8C2, 0x8288, 0xD8C3, 0x5B5B, 0xD8C4, 0x556C, 0xD8C5, 0x560F, 0xD8C6, 0x4EC4, 0xD8C7, 0x538D, 0xD8C8, 0x539D, + 0xD8C9, 0x53A3, 0xD8CA, 0x53A5, 0xD8CB, 0x53AE, 0xD8CC, 0x9765, 0xD8CD, 0x8D5D, 0xD8CE, 0x531A, 0xD8CF, 0x53F5, 0xD8D0, 0x5326, + 0xD8D1, 0x532E, 0xD8D2, 0x533E, 0xD8D3, 0x8D5C, 0xD8D4, 0x5366, 0xD8D5, 0x5363, 0xD8D6, 0x5202, 0xD8D7, 0x5208, 0xD8D8, 0x520E, + 0xD8D9, 0x522D, 0xD8DA, 0x5233, 0xD8DB, 0x523F, 0xD8DC, 0x5240, 0xD8DD, 0x524C, 0xD8DE, 0x525E, 0xD8DF, 0x5261, 0xD8E0, 0x525C, + 0xD8E1, 0x84AF, 0xD8E2, 0x527D, 0xD8E3, 0x5282, 0xD8E4, 0x5281, 0xD8E5, 0x5290, 0xD8E6, 0x5293, 0xD8E7, 0x5182, 0xD8E8, 0x7F54, + 0xD8E9, 0x4EBB, 0xD8EA, 0x4EC3, 0xD8EB, 0x4EC9, 0xD8EC, 0x4EC2, 0xD8ED, 0x4EE8, 0xD8EE, 0x4EE1, 0xD8EF, 0x4EEB, 0xD8F0, 0x4EDE, + 0xD8F1, 0x4F1B, 0xD8F2, 0x4EF3, 0xD8F3, 0x4F22, 0xD8F4, 0x4F64, 0xD8F5, 0x4EF5, 0xD8F6, 0x4F25, 0xD8F7, 0x4F27, 0xD8F8, 0x4F09, + 0xD8F9, 0x4F2B, 0xD8FA, 0x4F5E, 0xD8FB, 0x4F67, 0xD8FC, 0x6538, 0xD8FD, 0x4F5A, 0xD8FE, 0x4F5D, 0xD940, 0x8CAE, 0xD941, 0x8CAF, + 0xD942, 0x8CB0, 0xD943, 0x8CB1, 0xD944, 0x8CB2, 0xD945, 0x8CB3, 0xD946, 0x8CB4, 0xD947, 0x8CB5, 0xD948, 0x8CB6, 0xD949, 0x8CB7, + 0xD94A, 0x8CB8, 0xD94B, 0x8CB9, 0xD94C, 0x8CBA, 0xD94D, 0x8CBB, 0xD94E, 0x8CBC, 0xD94F, 0x8CBD, 0xD950, 0x8CBE, 0xD951, 0x8CBF, + 0xD952, 0x8CC0, 0xD953, 0x8CC1, 0xD954, 0x8CC2, 0xD955, 0x8CC3, 0xD956, 0x8CC4, 0xD957, 0x8CC5, 0xD958, 0x8CC6, 0xD959, 0x8CC7, + 0xD95A, 0x8CC8, 0xD95B, 0x8CC9, 0xD95C, 0x8CCA, 0xD95D, 0x8CCB, 0xD95E, 0x8CCC, 0xD95F, 0x8CCD, 0xD960, 0x8CCE, 0xD961, 0x8CCF, + 0xD962, 0x8CD0, 0xD963, 0x8CD1, 0xD964, 0x8CD2, 0xD965, 0x8CD3, 0xD966, 0x8CD4, 0xD967, 0x8CD5, 0xD968, 0x8CD6, 0xD969, 0x8CD7, + 0xD96A, 0x8CD8, 0xD96B, 0x8CD9, 0xD96C, 0x8CDA, 0xD96D, 0x8CDB, 0xD96E, 0x8CDC, 0xD96F, 0x8CDD, 0xD970, 0x8CDE, 0xD971, 0x8CDF, + 0xD972, 0x8CE0, 0xD973, 0x8CE1, 0xD974, 0x8CE2, 0xD975, 0x8CE3, 0xD976, 0x8CE4, 0xD977, 0x8CE5, 0xD978, 0x8CE6, 0xD979, 0x8CE7, + 0xD97A, 0x8CE8, 0xD97B, 0x8CE9, 0xD97C, 0x8CEA, 0xD97D, 0x8CEB, 0xD97E, 0x8CEC, 0xD980, 0x8CED, 0xD981, 0x8CEE, 0xD982, 0x8CEF, + 0xD983, 0x8CF0, 0xD984, 0x8CF1, 0xD985, 0x8CF2, 0xD986, 0x8CF3, 0xD987, 0x8CF4, 0xD988, 0x8CF5, 0xD989, 0x8CF6, 0xD98A, 0x8CF7, + 0xD98B, 0x8CF8, 0xD98C, 0x8CF9, 0xD98D, 0x8CFA, 0xD98E, 0x8CFB, 0xD98F, 0x8CFC, 0xD990, 0x8CFD, 0xD991, 0x8CFE, 0xD992, 0x8CFF, + 0xD993, 0x8D00, 0xD994, 0x8D01, 0xD995, 0x8D02, 0xD996, 0x8D03, 0xD997, 0x8D04, 0xD998, 0x8D05, 0xD999, 0x8D06, 0xD99A, 0x8D07, + 0xD99B, 0x8D08, 0xD99C, 0x8D09, 0xD99D, 0x8D0A, 0xD99E, 0x8D0B, 0xD99F, 0x8D0C, 0xD9A0, 0x8D0D, 0xD9A1, 0x4F5F, 0xD9A2, 0x4F57, + 0xD9A3, 0x4F32, 0xD9A4, 0x4F3D, 0xD9A5, 0x4F76, 0xD9A6, 0x4F74, 0xD9A7, 0x4F91, 0xD9A8, 0x4F89, 0xD9A9, 0x4F83, 0xD9AA, 0x4F8F, + 0xD9AB, 0x4F7E, 0xD9AC, 0x4F7B, 0xD9AD, 0x4FAA, 0xD9AE, 0x4F7C, 0xD9AF, 0x4FAC, 0xD9B0, 0x4F94, 0xD9B1, 0x4FE6, 0xD9B2, 0x4FE8, + 0xD9B3, 0x4FEA, 0xD9B4, 0x4FC5, 0xD9B5, 0x4FDA, 0xD9B6, 0x4FE3, 0xD9B7, 0x4FDC, 0xD9B8, 0x4FD1, 0xD9B9, 0x4FDF, 0xD9BA, 0x4FF8, + 0xD9BB, 0x5029, 0xD9BC, 0x504C, 0xD9BD, 0x4FF3, 0xD9BE, 0x502C, 0xD9BF, 0x500F, 0xD9C0, 0x502E, 0xD9C1, 0x502D, 0xD9C2, 0x4FFE, + 0xD9C3, 0x501C, 0xD9C4, 0x500C, 0xD9C5, 0x5025, 0xD9C6, 0x5028, 0xD9C7, 0x507E, 0xD9C8, 0x5043, 0xD9C9, 0x5055, 0xD9CA, 0x5048, + 0xD9CB, 0x504E, 0xD9CC, 0x506C, 0xD9CD, 0x507B, 0xD9CE, 0x50A5, 0xD9CF, 0x50A7, 0xD9D0, 0x50A9, 0xD9D1, 0x50BA, 0xD9D2, 0x50D6, + 0xD9D3, 0x5106, 0xD9D4, 0x50ED, 0xD9D5, 0x50EC, 0xD9D6, 0x50E6, 0xD9D7, 0x50EE, 0xD9D8, 0x5107, 0xD9D9, 0x510B, 0xD9DA, 0x4EDD, + 0xD9DB, 0x6C3D, 0xD9DC, 0x4F58, 0xD9DD, 0x4F65, 0xD9DE, 0x4FCE, 0xD9DF, 0x9FA0, 0xD9E0, 0x6C46, 0xD9E1, 0x7C74, 0xD9E2, 0x516E, + 0xD9E3, 0x5DFD, 0xD9E4, 0x9EC9, 0xD9E5, 0x9998, 0xD9E6, 0x5181, 0xD9E7, 0x5914, 0xD9E8, 0x52F9, 0xD9E9, 0x530D, 0xD9EA, 0x8A07, + 0xD9EB, 0x5310, 0xD9EC, 0x51EB, 0xD9ED, 0x5919, 0xD9EE, 0x5155, 0xD9EF, 0x4EA0, 0xD9F0, 0x5156, 0xD9F1, 0x4EB3, 0xD9F2, 0x886E, + 0xD9F3, 0x88A4, 0xD9F4, 0x4EB5, 0xD9F5, 0x8114, 0xD9F6, 0x88D2, 0xD9F7, 0x7980, 0xD9F8, 0x5B34, 0xD9F9, 0x8803, 0xD9FA, 0x7FB8, + 0xD9FB, 0x51AB, 0xD9FC, 0x51B1, 0xD9FD, 0x51BD, 0xD9FE, 0x51BC, 0xDA40, 0x8D0E, 0xDA41, 0x8D0F, 0xDA42, 0x8D10, 0xDA43, 0x8D11, + 0xDA44, 0x8D12, 0xDA45, 0x8D13, 0xDA46, 0x8D14, 0xDA47, 0x8D15, 0xDA48, 0x8D16, 0xDA49, 0x8D17, 0xDA4A, 0x8D18, 0xDA4B, 0x8D19, + 0xDA4C, 0x8D1A, 0xDA4D, 0x8D1B, 0xDA4E, 0x8D1C, 0xDA4F, 0x8D20, 0xDA50, 0x8D51, 0xDA51, 0x8D52, 0xDA52, 0x8D57, 0xDA53, 0x8D5F, + 0xDA54, 0x8D65, 0xDA55, 0x8D68, 0xDA56, 0x8D69, 0xDA57, 0x8D6A, 0xDA58, 0x8D6C, 0xDA59, 0x8D6E, 0xDA5A, 0x8D6F, 0xDA5B, 0x8D71, + 0xDA5C, 0x8D72, 0xDA5D, 0x8D78, 0xDA5E, 0x8D79, 0xDA5F, 0x8D7A, 0xDA60, 0x8D7B, 0xDA61, 0x8D7C, 0xDA62, 0x8D7D, 0xDA63, 0x8D7E, + 0xDA64, 0x8D7F, 0xDA65, 0x8D80, 0xDA66, 0x8D82, 0xDA67, 0x8D83, 0xDA68, 0x8D86, 0xDA69, 0x8D87, 0xDA6A, 0x8D88, 0xDA6B, 0x8D89, + 0xDA6C, 0x8D8C, 0xDA6D, 0x8D8D, 0xDA6E, 0x8D8E, 0xDA6F, 0x8D8F, 0xDA70, 0x8D90, 0xDA71, 0x8D92, 0xDA72, 0x8D93, 0xDA73, 0x8D95, + 0xDA74, 0x8D96, 0xDA75, 0x8D97, 0xDA76, 0x8D98, 0xDA77, 0x8D99, 0xDA78, 0x8D9A, 0xDA79, 0x8D9B, 0xDA7A, 0x8D9C, 0xDA7B, 0x8D9D, + 0xDA7C, 0x8D9E, 0xDA7D, 0x8DA0, 0xDA7E, 0x8DA1, 0xDA80, 0x8DA2, 0xDA81, 0x8DA4, 0xDA82, 0x8DA5, 0xDA83, 0x8DA6, 0xDA84, 0x8DA7, + 0xDA85, 0x8DA8, 0xDA86, 0x8DA9, 0xDA87, 0x8DAA, 0xDA88, 0x8DAB, 0xDA89, 0x8DAC, 0xDA8A, 0x8DAD, 0xDA8B, 0x8DAE, 0xDA8C, 0x8DAF, + 0xDA8D, 0x8DB0, 0xDA8E, 0x8DB2, 0xDA8F, 0x8DB6, 0xDA90, 0x8DB7, 0xDA91, 0x8DB9, 0xDA92, 0x8DBB, 0xDA93, 0x8DBD, 0xDA94, 0x8DC0, + 0xDA95, 0x8DC1, 0xDA96, 0x8DC2, 0xDA97, 0x8DC5, 0xDA98, 0x8DC7, 0xDA99, 0x8DC8, 0xDA9A, 0x8DC9, 0xDA9B, 0x8DCA, 0xDA9C, 0x8DCD, + 0xDA9D, 0x8DD0, 0xDA9E, 0x8DD2, 0xDA9F, 0x8DD3, 0xDAA0, 0x8DD4, 0xDAA1, 0x51C7, 0xDAA2, 0x5196, 0xDAA3, 0x51A2, 0xDAA4, 0x51A5, + 0xDAA5, 0x8BA0, 0xDAA6, 0x8BA6, 0xDAA7, 0x8BA7, 0xDAA8, 0x8BAA, 0xDAA9, 0x8BB4, 0xDAAA, 0x8BB5, 0xDAAB, 0x8BB7, 0xDAAC, 0x8BC2, + 0xDAAD, 0x8BC3, 0xDAAE, 0x8BCB, 0xDAAF, 0x8BCF, 0xDAB0, 0x8BCE, 0xDAB1, 0x8BD2, 0xDAB2, 0x8BD3, 0xDAB3, 0x8BD4, 0xDAB4, 0x8BD6, + 0xDAB5, 0x8BD8, 0xDAB6, 0x8BD9, 0xDAB7, 0x8BDC, 0xDAB8, 0x8BDF, 0xDAB9, 0x8BE0, 0xDABA, 0x8BE4, 0xDABB, 0x8BE8, 0xDABC, 0x8BE9, + 0xDABD, 0x8BEE, 0xDABE, 0x8BF0, 0xDABF, 0x8BF3, 0xDAC0, 0x8BF6, 0xDAC1, 0x8BF9, 0xDAC2, 0x8BFC, 0xDAC3, 0x8BFF, 0xDAC4, 0x8C00, + 0xDAC5, 0x8C02, 0xDAC6, 0x8C04, 0xDAC7, 0x8C07, 0xDAC8, 0x8C0C, 0xDAC9, 0x8C0F, 0xDACA, 0x8C11, 0xDACB, 0x8C12, 0xDACC, 0x8C14, + 0xDACD, 0x8C15, 0xDACE, 0x8C16, 0xDACF, 0x8C19, 0xDAD0, 0x8C1B, 0xDAD1, 0x8C18, 0xDAD2, 0x8C1D, 0xDAD3, 0x8C1F, 0xDAD4, 0x8C20, + 0xDAD5, 0x8C21, 0xDAD6, 0x8C25, 0xDAD7, 0x8C27, 0xDAD8, 0x8C2A, 0xDAD9, 0x8C2B, 0xDADA, 0x8C2E, 0xDADB, 0x8C2F, 0xDADC, 0x8C32, + 0xDADD, 0x8C33, 0xDADE, 0x8C35, 0xDADF, 0x8C36, 0xDAE0, 0x5369, 0xDAE1, 0x537A, 0xDAE2, 0x961D, 0xDAE3, 0x9622, 0xDAE4, 0x9621, + 0xDAE5, 0x9631, 0xDAE6, 0x962A, 0xDAE7, 0x963D, 0xDAE8, 0x963C, 0xDAE9, 0x9642, 0xDAEA, 0x9649, 0xDAEB, 0x9654, 0xDAEC, 0x965F, + 0xDAED, 0x9667, 0xDAEE, 0x966C, 0xDAEF, 0x9672, 0xDAF0, 0x9674, 0xDAF1, 0x9688, 0xDAF2, 0x968D, 0xDAF3, 0x9697, 0xDAF4, 0x96B0, + 0xDAF5, 0x9097, 0xDAF6, 0x909B, 0xDAF7, 0x909D, 0xDAF8, 0x9099, 0xDAF9, 0x90AC, 0xDAFA, 0x90A1, 0xDAFB, 0x90B4, 0xDAFC, 0x90B3, + 0xDAFD, 0x90B6, 0xDAFE, 0x90BA, 0xDB40, 0x8DD5, 0xDB41, 0x8DD8, 0xDB42, 0x8DD9, 0xDB43, 0x8DDC, 0xDB44, 0x8DE0, 0xDB45, 0x8DE1, + 0xDB46, 0x8DE2, 0xDB47, 0x8DE5, 0xDB48, 0x8DE6, 0xDB49, 0x8DE7, 0xDB4A, 0x8DE9, 0xDB4B, 0x8DED, 0xDB4C, 0x8DEE, 0xDB4D, 0x8DF0, + 0xDB4E, 0x8DF1, 0xDB4F, 0x8DF2, 0xDB50, 0x8DF4, 0xDB51, 0x8DF6, 0xDB52, 0x8DFC, 0xDB53, 0x8DFE, 0xDB54, 0x8DFF, 0xDB55, 0x8E00, + 0xDB56, 0x8E01, 0xDB57, 0x8E02, 0xDB58, 0x8E03, 0xDB59, 0x8E04, 0xDB5A, 0x8E06, 0xDB5B, 0x8E07, 0xDB5C, 0x8E08, 0xDB5D, 0x8E0B, + 0xDB5E, 0x8E0D, 0xDB5F, 0x8E0E, 0xDB60, 0x8E10, 0xDB61, 0x8E11, 0xDB62, 0x8E12, 0xDB63, 0x8E13, 0xDB64, 0x8E15, 0xDB65, 0x8E16, + 0xDB66, 0x8E17, 0xDB67, 0x8E18, 0xDB68, 0x8E19, 0xDB69, 0x8E1A, 0xDB6A, 0x8E1B, 0xDB6B, 0x8E1C, 0xDB6C, 0x8E20, 0xDB6D, 0x8E21, + 0xDB6E, 0x8E24, 0xDB6F, 0x8E25, 0xDB70, 0x8E26, 0xDB71, 0x8E27, 0xDB72, 0x8E28, 0xDB73, 0x8E2B, 0xDB74, 0x8E2D, 0xDB75, 0x8E30, + 0xDB76, 0x8E32, 0xDB77, 0x8E33, 0xDB78, 0x8E34, 0xDB79, 0x8E36, 0xDB7A, 0x8E37, 0xDB7B, 0x8E38, 0xDB7C, 0x8E3B, 0xDB7D, 0x8E3C, + 0xDB7E, 0x8E3E, 0xDB80, 0x8E3F, 0xDB81, 0x8E43, 0xDB82, 0x8E45, 0xDB83, 0x8E46, 0xDB84, 0x8E4C, 0xDB85, 0x8E4D, 0xDB86, 0x8E4E, + 0xDB87, 0x8E4F, 0xDB88, 0x8E50, 0xDB89, 0x8E53, 0xDB8A, 0x8E54, 0xDB8B, 0x8E55, 0xDB8C, 0x8E56, 0xDB8D, 0x8E57, 0xDB8E, 0x8E58, + 0xDB8F, 0x8E5A, 0xDB90, 0x8E5B, 0xDB91, 0x8E5C, 0xDB92, 0x8E5D, 0xDB93, 0x8E5E, 0xDB94, 0x8E5F, 0xDB95, 0x8E60, 0xDB96, 0x8E61, + 0xDB97, 0x8E62, 0xDB98, 0x8E63, 0xDB99, 0x8E64, 0xDB9A, 0x8E65, 0xDB9B, 0x8E67, 0xDB9C, 0x8E68, 0xDB9D, 0x8E6A, 0xDB9E, 0x8E6B, + 0xDB9F, 0x8E6E, 0xDBA0, 0x8E71, 0xDBA1, 0x90B8, 0xDBA2, 0x90B0, 0xDBA3, 0x90CF, 0xDBA4, 0x90C5, 0xDBA5, 0x90BE, 0xDBA6, 0x90D0, + 0xDBA7, 0x90C4, 0xDBA8, 0x90C7, 0xDBA9, 0x90D3, 0xDBAA, 0x90E6, 0xDBAB, 0x90E2, 0xDBAC, 0x90DC, 0xDBAD, 0x90D7, 0xDBAE, 0x90DB, + 0xDBAF, 0x90EB, 0xDBB0, 0x90EF, 0xDBB1, 0x90FE, 0xDBB2, 0x9104, 0xDBB3, 0x9122, 0xDBB4, 0x911E, 0xDBB5, 0x9123, 0xDBB6, 0x9131, + 0xDBB7, 0x912F, 0xDBB8, 0x9139, 0xDBB9, 0x9143, 0xDBBA, 0x9146, 0xDBBB, 0x520D, 0xDBBC, 0x5942, 0xDBBD, 0x52A2, 0xDBBE, 0x52AC, + 0xDBBF, 0x52AD, 0xDBC0, 0x52BE, 0xDBC1, 0x54FF, 0xDBC2, 0x52D0, 0xDBC3, 0x52D6, 0xDBC4, 0x52F0, 0xDBC5, 0x53DF, 0xDBC6, 0x71EE, + 0xDBC7, 0x77CD, 0xDBC8, 0x5EF4, 0xDBC9, 0x51F5, 0xDBCA, 0x51FC, 0xDBCB, 0x9B2F, 0xDBCC, 0x53B6, 0xDBCD, 0x5F01, 0xDBCE, 0x755A, + 0xDBCF, 0x5DEF, 0xDBD0, 0x574C, 0xDBD1, 0x57A9, 0xDBD2, 0x57A1, 0xDBD3, 0x587E, 0xDBD4, 0x58BC, 0xDBD5, 0x58C5, 0xDBD6, 0x58D1, + 0xDBD7, 0x5729, 0xDBD8, 0x572C, 0xDBD9, 0x572A, 0xDBDA, 0x5733, 0xDBDB, 0x5739, 0xDBDC, 0x572E, 0xDBDD, 0x572F, 0xDBDE, 0x575C, + 0xDBDF, 0x573B, 0xDBE0, 0x5742, 0xDBE1, 0x5769, 0xDBE2, 0x5785, 0xDBE3, 0x576B, 0xDBE4, 0x5786, 0xDBE5, 0x577C, 0xDBE6, 0x577B, + 0xDBE7, 0x5768, 0xDBE8, 0x576D, 0xDBE9, 0x5776, 0xDBEA, 0x5773, 0xDBEB, 0x57AD, 0xDBEC, 0x57A4, 0xDBED, 0x578C, 0xDBEE, 0x57B2, + 0xDBEF, 0x57CF, 0xDBF0, 0x57A7, 0xDBF1, 0x57B4, 0xDBF2, 0x5793, 0xDBF3, 0x57A0, 0xDBF4, 0x57D5, 0xDBF5, 0x57D8, 0xDBF6, 0x57DA, + 0xDBF7, 0x57D9, 0xDBF8, 0x57D2, 0xDBF9, 0x57B8, 0xDBFA, 0x57F4, 0xDBFB, 0x57EF, 0xDBFC, 0x57F8, 0xDBFD, 0x57E4, 0xDBFE, 0x57DD, + 0xDC40, 0x8E73, 0xDC41, 0x8E75, 0xDC42, 0x8E77, 0xDC43, 0x8E78, 0xDC44, 0x8E79, 0xDC45, 0x8E7A, 0xDC46, 0x8E7B, 0xDC47, 0x8E7D, + 0xDC48, 0x8E7E, 0xDC49, 0x8E80, 0xDC4A, 0x8E82, 0xDC4B, 0x8E83, 0xDC4C, 0x8E84, 0xDC4D, 0x8E86, 0xDC4E, 0x8E88, 0xDC4F, 0x8E89, + 0xDC50, 0x8E8A, 0xDC51, 0x8E8B, 0xDC52, 0x8E8C, 0xDC53, 0x8E8D, 0xDC54, 0x8E8E, 0xDC55, 0x8E91, 0xDC56, 0x8E92, 0xDC57, 0x8E93, + 0xDC58, 0x8E95, 0xDC59, 0x8E96, 0xDC5A, 0x8E97, 0xDC5B, 0x8E98, 0xDC5C, 0x8E99, 0xDC5D, 0x8E9A, 0xDC5E, 0x8E9B, 0xDC5F, 0x8E9D, + 0xDC60, 0x8E9F, 0xDC61, 0x8EA0, 0xDC62, 0x8EA1, 0xDC63, 0x8EA2, 0xDC64, 0x8EA3, 0xDC65, 0x8EA4, 0xDC66, 0x8EA5, 0xDC67, 0x8EA6, + 0xDC68, 0x8EA7, 0xDC69, 0x8EA8, 0xDC6A, 0x8EA9, 0xDC6B, 0x8EAA, 0xDC6C, 0x8EAD, 0xDC6D, 0x8EAE, 0xDC6E, 0x8EB0, 0xDC6F, 0x8EB1, + 0xDC70, 0x8EB3, 0xDC71, 0x8EB4, 0xDC72, 0x8EB5, 0xDC73, 0x8EB6, 0xDC74, 0x8EB7, 0xDC75, 0x8EB8, 0xDC76, 0x8EB9, 0xDC77, 0x8EBB, + 0xDC78, 0x8EBC, 0xDC79, 0x8EBD, 0xDC7A, 0x8EBE, 0xDC7B, 0x8EBF, 0xDC7C, 0x8EC0, 0xDC7D, 0x8EC1, 0xDC7E, 0x8EC2, 0xDC80, 0x8EC3, + 0xDC81, 0x8EC4, 0xDC82, 0x8EC5, 0xDC83, 0x8EC6, 0xDC84, 0x8EC7, 0xDC85, 0x8EC8, 0xDC86, 0x8EC9, 0xDC87, 0x8ECA, 0xDC88, 0x8ECB, + 0xDC89, 0x8ECC, 0xDC8A, 0x8ECD, 0xDC8B, 0x8ECF, 0xDC8C, 0x8ED0, 0xDC8D, 0x8ED1, 0xDC8E, 0x8ED2, 0xDC8F, 0x8ED3, 0xDC90, 0x8ED4, + 0xDC91, 0x8ED5, 0xDC92, 0x8ED6, 0xDC93, 0x8ED7, 0xDC94, 0x8ED8, 0xDC95, 0x8ED9, 0xDC96, 0x8EDA, 0xDC97, 0x8EDB, 0xDC98, 0x8EDC, + 0xDC99, 0x8EDD, 0xDC9A, 0x8EDE, 0xDC9B, 0x8EDF, 0xDC9C, 0x8EE0, 0xDC9D, 0x8EE1, 0xDC9E, 0x8EE2, 0xDC9F, 0x8EE3, 0xDCA0, 0x8EE4, + 0xDCA1, 0x580B, 0xDCA2, 0x580D, 0xDCA3, 0x57FD, 0xDCA4, 0x57ED, 0xDCA5, 0x5800, 0xDCA6, 0x581E, 0xDCA7, 0x5819, 0xDCA8, 0x5844, + 0xDCA9, 0x5820, 0xDCAA, 0x5865, 0xDCAB, 0x586C, 0xDCAC, 0x5881, 0xDCAD, 0x5889, 0xDCAE, 0x589A, 0xDCAF, 0x5880, 0xDCB0, 0x99A8, + 0xDCB1, 0x9F19, 0xDCB2, 0x61FF, 0xDCB3, 0x8279, 0xDCB4, 0x827D, 0xDCB5, 0x827F, 0xDCB6, 0x828F, 0xDCB7, 0x828A, 0xDCB8, 0x82A8, + 0xDCB9, 0x8284, 0xDCBA, 0x828E, 0xDCBB, 0x8291, 0xDCBC, 0x8297, 0xDCBD, 0x8299, 0xDCBE, 0x82AB, 0xDCBF, 0x82B8, 0xDCC0, 0x82BE, + 0xDCC1, 0x82B0, 0xDCC2, 0x82C8, 0xDCC3, 0x82CA, 0xDCC4, 0x82E3, 0xDCC5, 0x8298, 0xDCC6, 0x82B7, 0xDCC7, 0x82AE, 0xDCC8, 0x82CB, + 0xDCC9, 0x82CC, 0xDCCA, 0x82C1, 0xDCCB, 0x82A9, 0xDCCC, 0x82B4, 0xDCCD, 0x82A1, 0xDCCE, 0x82AA, 0xDCCF, 0x829F, 0xDCD0, 0x82C4, + 0xDCD1, 0x82CE, 0xDCD2, 0x82A4, 0xDCD3, 0x82E1, 0xDCD4, 0x8309, 0xDCD5, 0x82F7, 0xDCD6, 0x82E4, 0xDCD7, 0x830F, 0xDCD8, 0x8307, + 0xDCD9, 0x82DC, 0xDCDA, 0x82F4, 0xDCDB, 0x82D2, 0xDCDC, 0x82D8, 0xDCDD, 0x830C, 0xDCDE, 0x82FB, 0xDCDF, 0x82D3, 0xDCE0, 0x8311, + 0xDCE1, 0x831A, 0xDCE2, 0x8306, 0xDCE3, 0x8314, 0xDCE4, 0x8315, 0xDCE5, 0x82E0, 0xDCE6, 0x82D5, 0xDCE7, 0x831C, 0xDCE8, 0x8351, + 0xDCE9, 0x835B, 0xDCEA, 0x835C, 0xDCEB, 0x8308, 0xDCEC, 0x8392, 0xDCED, 0x833C, 0xDCEE, 0x8334, 0xDCEF, 0x8331, 0xDCF0, 0x839B, + 0xDCF1, 0x835E, 0xDCF2, 0x832F, 0xDCF3, 0x834F, 0xDCF4, 0x8347, 0xDCF5, 0x8343, 0xDCF6, 0x835F, 0xDCF7, 0x8340, 0xDCF8, 0x8317, + 0xDCF9, 0x8360, 0xDCFA, 0x832D, 0xDCFB, 0x833A, 0xDCFC, 0x8333, 0xDCFD, 0x8366, 0xDCFE, 0x8365, 0xDD40, 0x8EE5, 0xDD41, 0x8EE6, + 0xDD42, 0x8EE7, 0xDD43, 0x8EE8, 0xDD44, 0x8EE9, 0xDD45, 0x8EEA, 0xDD46, 0x8EEB, 0xDD47, 0x8EEC, 0xDD48, 0x8EED, 0xDD49, 0x8EEE, + 0xDD4A, 0x8EEF, 0xDD4B, 0x8EF0, 0xDD4C, 0x8EF1, 0xDD4D, 0x8EF2, 0xDD4E, 0x8EF3, 0xDD4F, 0x8EF4, 0xDD50, 0x8EF5, 0xDD51, 0x8EF6, + 0xDD52, 0x8EF7, 0xDD53, 0x8EF8, 0xDD54, 0x8EF9, 0xDD55, 0x8EFA, 0xDD56, 0x8EFB, 0xDD57, 0x8EFC, 0xDD58, 0x8EFD, 0xDD59, 0x8EFE, + 0xDD5A, 0x8EFF, 0xDD5B, 0x8F00, 0xDD5C, 0x8F01, 0xDD5D, 0x8F02, 0xDD5E, 0x8F03, 0xDD5F, 0x8F04, 0xDD60, 0x8F05, 0xDD61, 0x8F06, + 0xDD62, 0x8F07, 0xDD63, 0x8F08, 0xDD64, 0x8F09, 0xDD65, 0x8F0A, 0xDD66, 0x8F0B, 0xDD67, 0x8F0C, 0xDD68, 0x8F0D, 0xDD69, 0x8F0E, + 0xDD6A, 0x8F0F, 0xDD6B, 0x8F10, 0xDD6C, 0x8F11, 0xDD6D, 0x8F12, 0xDD6E, 0x8F13, 0xDD6F, 0x8F14, 0xDD70, 0x8F15, 0xDD71, 0x8F16, + 0xDD72, 0x8F17, 0xDD73, 0x8F18, 0xDD74, 0x8F19, 0xDD75, 0x8F1A, 0xDD76, 0x8F1B, 0xDD77, 0x8F1C, 0xDD78, 0x8F1D, 0xDD79, 0x8F1E, + 0xDD7A, 0x8F1F, 0xDD7B, 0x8F20, 0xDD7C, 0x8F21, 0xDD7D, 0x8F22, 0xDD7E, 0x8F23, 0xDD80, 0x8F24, 0xDD81, 0x8F25, 0xDD82, 0x8F26, + 0xDD83, 0x8F27, 0xDD84, 0x8F28, 0xDD85, 0x8F29, 0xDD86, 0x8F2A, 0xDD87, 0x8F2B, 0xDD88, 0x8F2C, 0xDD89, 0x8F2D, 0xDD8A, 0x8F2E, + 0xDD8B, 0x8F2F, 0xDD8C, 0x8F30, 0xDD8D, 0x8F31, 0xDD8E, 0x8F32, 0xDD8F, 0x8F33, 0xDD90, 0x8F34, 0xDD91, 0x8F35, 0xDD92, 0x8F36, + 0xDD93, 0x8F37, 0xDD94, 0x8F38, 0xDD95, 0x8F39, 0xDD96, 0x8F3A, 0xDD97, 0x8F3B, 0xDD98, 0x8F3C, 0xDD99, 0x8F3D, 0xDD9A, 0x8F3E, + 0xDD9B, 0x8F3F, 0xDD9C, 0x8F40, 0xDD9D, 0x8F41, 0xDD9E, 0x8F42, 0xDD9F, 0x8F43, 0xDDA0, 0x8F44, 0xDDA1, 0x8368, 0xDDA2, 0x831B, + 0xDDA3, 0x8369, 0xDDA4, 0x836C, 0xDDA5, 0x836A, 0xDDA6, 0x836D, 0xDDA7, 0x836E, 0xDDA8, 0x83B0, 0xDDA9, 0x8378, 0xDDAA, 0x83B3, + 0xDDAB, 0x83B4, 0xDDAC, 0x83A0, 0xDDAD, 0x83AA, 0xDDAE, 0x8393, 0xDDAF, 0x839C, 0xDDB0, 0x8385, 0xDDB1, 0x837C, 0xDDB2, 0x83B6, + 0xDDB3, 0x83A9, 0xDDB4, 0x837D, 0xDDB5, 0x83B8, 0xDDB6, 0x837B, 0xDDB7, 0x8398, 0xDDB8, 0x839E, 0xDDB9, 0x83A8, 0xDDBA, 0x83BA, + 0xDDBB, 0x83BC, 0xDDBC, 0x83C1, 0xDDBD, 0x8401, 0xDDBE, 0x83E5, 0xDDBF, 0x83D8, 0xDDC0, 0x5807, 0xDDC1, 0x8418, 0xDDC2, 0x840B, + 0xDDC3, 0x83DD, 0xDDC4, 0x83FD, 0xDDC5, 0x83D6, 0xDDC6, 0x841C, 0xDDC7, 0x8438, 0xDDC8, 0x8411, 0xDDC9, 0x8406, 0xDDCA, 0x83D4, + 0xDDCB, 0x83DF, 0xDDCC, 0x840F, 0xDDCD, 0x8403, 0xDDCE, 0x83F8, 0xDDCF, 0x83F9, 0xDDD0, 0x83EA, 0xDDD1, 0x83C5, 0xDDD2, 0x83C0, + 0xDDD3, 0x8426, 0xDDD4, 0x83F0, 0xDDD5, 0x83E1, 0xDDD6, 0x845C, 0xDDD7, 0x8451, 0xDDD8, 0x845A, 0xDDD9, 0x8459, 0xDDDA, 0x8473, + 0xDDDB, 0x8487, 0xDDDC, 0x8488, 0xDDDD, 0x847A, 0xDDDE, 0x8489, 0xDDDF, 0x8478, 0xDDE0, 0x843C, 0xDDE1, 0x8446, 0xDDE2, 0x8469, + 0xDDE3, 0x8476, 0xDDE4, 0x848C, 0xDDE5, 0x848E, 0xDDE6, 0x8431, 0xDDE7, 0x846D, 0xDDE8, 0x84C1, 0xDDE9, 0x84CD, 0xDDEA, 0x84D0, + 0xDDEB, 0x84E6, 0xDDEC, 0x84BD, 0xDDED, 0x84D3, 0xDDEE, 0x84CA, 0xDDEF, 0x84BF, 0xDDF0, 0x84BA, 0xDDF1, 0x84E0, 0xDDF2, 0x84A1, + 0xDDF3, 0x84B9, 0xDDF4, 0x84B4, 0xDDF5, 0x8497, 0xDDF6, 0x84E5, 0xDDF7, 0x84E3, 0xDDF8, 0x850C, 0xDDF9, 0x750D, 0xDDFA, 0x8538, + 0xDDFB, 0x84F0, 0xDDFC, 0x8539, 0xDDFD, 0x851F, 0xDDFE, 0x853A, 0xDE40, 0x8F45, 0xDE41, 0x8F46, 0xDE42, 0x8F47, 0xDE43, 0x8F48, + 0xDE44, 0x8F49, 0xDE45, 0x8F4A, 0xDE46, 0x8F4B, 0xDE47, 0x8F4C, 0xDE48, 0x8F4D, 0xDE49, 0x8F4E, 0xDE4A, 0x8F4F, 0xDE4B, 0x8F50, + 0xDE4C, 0x8F51, 0xDE4D, 0x8F52, 0xDE4E, 0x8F53, 0xDE4F, 0x8F54, 0xDE50, 0x8F55, 0xDE51, 0x8F56, 0xDE52, 0x8F57, 0xDE53, 0x8F58, + 0xDE54, 0x8F59, 0xDE55, 0x8F5A, 0xDE56, 0x8F5B, 0xDE57, 0x8F5C, 0xDE58, 0x8F5D, 0xDE59, 0x8F5E, 0xDE5A, 0x8F5F, 0xDE5B, 0x8F60, + 0xDE5C, 0x8F61, 0xDE5D, 0x8F62, 0xDE5E, 0x8F63, 0xDE5F, 0x8F64, 0xDE60, 0x8F65, 0xDE61, 0x8F6A, 0xDE62, 0x8F80, 0xDE63, 0x8F8C, + 0xDE64, 0x8F92, 0xDE65, 0x8F9D, 0xDE66, 0x8FA0, 0xDE67, 0x8FA1, 0xDE68, 0x8FA2, 0xDE69, 0x8FA4, 0xDE6A, 0x8FA5, 0xDE6B, 0x8FA6, + 0xDE6C, 0x8FA7, 0xDE6D, 0x8FAA, 0xDE6E, 0x8FAC, 0xDE6F, 0x8FAD, 0xDE70, 0x8FAE, 0xDE71, 0x8FAF, 0xDE72, 0x8FB2, 0xDE73, 0x8FB3, + 0xDE74, 0x8FB4, 0xDE75, 0x8FB5, 0xDE76, 0x8FB7, 0xDE77, 0x8FB8, 0xDE78, 0x8FBA, 0xDE79, 0x8FBB, 0xDE7A, 0x8FBC, 0xDE7B, 0x8FBF, + 0xDE7C, 0x8FC0, 0xDE7D, 0x8FC3, 0xDE7E, 0x8FC6, 0xDE80, 0x8FC9, 0xDE81, 0x8FCA, 0xDE82, 0x8FCB, 0xDE83, 0x8FCC, 0xDE84, 0x8FCD, + 0xDE85, 0x8FCF, 0xDE86, 0x8FD2, 0xDE87, 0x8FD6, 0xDE88, 0x8FD7, 0xDE89, 0x8FDA, 0xDE8A, 0x8FE0, 0xDE8B, 0x8FE1, 0xDE8C, 0x8FE3, + 0xDE8D, 0x8FE7, 0xDE8E, 0x8FEC, 0xDE8F, 0x8FEF, 0xDE90, 0x8FF1, 0xDE91, 0x8FF2, 0xDE92, 0x8FF4, 0xDE93, 0x8FF5, 0xDE94, 0x8FF6, + 0xDE95, 0x8FFA, 0xDE96, 0x8FFB, 0xDE97, 0x8FFC, 0xDE98, 0x8FFE, 0xDE99, 0x8FFF, 0xDE9A, 0x9007, 0xDE9B, 0x9008, 0xDE9C, 0x900C, + 0xDE9D, 0x900E, 0xDE9E, 0x9013, 0xDE9F, 0x9015, 0xDEA0, 0x9018, 0xDEA1, 0x8556, 0xDEA2, 0x853B, 0xDEA3, 0x84FF, 0xDEA4, 0x84FC, + 0xDEA5, 0x8559, 0xDEA6, 0x8548, 0xDEA7, 0x8568, 0xDEA8, 0x8564, 0xDEA9, 0x855E, 0xDEAA, 0x857A, 0xDEAB, 0x77A2, 0xDEAC, 0x8543, + 0xDEAD, 0x8572, 0xDEAE, 0x857B, 0xDEAF, 0x85A4, 0xDEB0, 0x85A8, 0xDEB1, 0x8587, 0xDEB2, 0x858F, 0xDEB3, 0x8579, 0xDEB4, 0x85AE, + 0xDEB5, 0x859C, 0xDEB6, 0x8585, 0xDEB7, 0x85B9, 0xDEB8, 0x85B7, 0xDEB9, 0x85B0, 0xDEBA, 0x85D3, 0xDEBB, 0x85C1, 0xDEBC, 0x85DC, + 0xDEBD, 0x85FF, 0xDEBE, 0x8627, 0xDEBF, 0x8605, 0xDEC0, 0x8629, 0xDEC1, 0x8616, 0xDEC2, 0x863C, 0xDEC3, 0x5EFE, 0xDEC4, 0x5F08, + 0xDEC5, 0x593C, 0xDEC6, 0x5941, 0xDEC7, 0x8037, 0xDEC8, 0x5955, 0xDEC9, 0x595A, 0xDECA, 0x5958, 0xDECB, 0x530F, 0xDECC, 0x5C22, + 0xDECD, 0x5C25, 0xDECE, 0x5C2C, 0xDECF, 0x5C34, 0xDED0, 0x624C, 0xDED1, 0x626A, 0xDED2, 0x629F, 0xDED3, 0x62BB, 0xDED4, 0x62CA, + 0xDED5, 0x62DA, 0xDED6, 0x62D7, 0xDED7, 0x62EE, 0xDED8, 0x6322, 0xDED9, 0x62F6, 0xDEDA, 0x6339, 0xDEDB, 0x634B, 0xDEDC, 0x6343, + 0xDEDD, 0x63AD, 0xDEDE, 0x63F6, 0xDEDF, 0x6371, 0xDEE0, 0x637A, 0xDEE1, 0x638E, 0xDEE2, 0x63B4, 0xDEE3, 0x636D, 0xDEE4, 0x63AC, + 0xDEE5, 0x638A, 0xDEE6, 0x6369, 0xDEE7, 0x63AE, 0xDEE8, 0x63BC, 0xDEE9, 0x63F2, 0xDEEA, 0x63F8, 0xDEEB, 0x63E0, 0xDEEC, 0x63FF, + 0xDEED, 0x63C4, 0xDEEE, 0x63DE, 0xDEEF, 0x63CE, 0xDEF0, 0x6452, 0xDEF1, 0x63C6, 0xDEF2, 0x63BE, 0xDEF3, 0x6445, 0xDEF4, 0x6441, + 0xDEF5, 0x640B, 0xDEF6, 0x641B, 0xDEF7, 0x6420, 0xDEF8, 0x640C, 0xDEF9, 0x6426, 0xDEFA, 0x6421, 0xDEFB, 0x645E, 0xDEFC, 0x6484, + 0xDEFD, 0x646D, 0xDEFE, 0x6496, 0xDF40, 0x9019, 0xDF41, 0x901C, 0xDF42, 0x9023, 0xDF43, 0x9024, 0xDF44, 0x9025, 0xDF45, 0x9027, + 0xDF46, 0x9028, 0xDF47, 0x9029, 0xDF48, 0x902A, 0xDF49, 0x902B, 0xDF4A, 0x902C, 0xDF4B, 0x9030, 0xDF4C, 0x9031, 0xDF4D, 0x9032, + 0xDF4E, 0x9033, 0xDF4F, 0x9034, 0xDF50, 0x9037, 0xDF51, 0x9039, 0xDF52, 0x903A, 0xDF53, 0x903D, 0xDF54, 0x903F, 0xDF55, 0x9040, + 0xDF56, 0x9043, 0xDF57, 0x9045, 0xDF58, 0x9046, 0xDF59, 0x9048, 0xDF5A, 0x9049, 0xDF5B, 0x904A, 0xDF5C, 0x904B, 0xDF5D, 0x904C, + 0xDF5E, 0x904E, 0xDF5F, 0x9054, 0xDF60, 0x9055, 0xDF61, 0x9056, 0xDF62, 0x9059, 0xDF63, 0x905A, 0xDF64, 0x905C, 0xDF65, 0x905D, + 0xDF66, 0x905E, 0xDF67, 0x905F, 0xDF68, 0x9060, 0xDF69, 0x9061, 0xDF6A, 0x9064, 0xDF6B, 0x9066, 0xDF6C, 0x9067, 0xDF6D, 0x9069, + 0xDF6E, 0x906A, 0xDF6F, 0x906B, 0xDF70, 0x906C, 0xDF71, 0x906F, 0xDF72, 0x9070, 0xDF73, 0x9071, 0xDF74, 0x9072, 0xDF75, 0x9073, + 0xDF76, 0x9076, 0xDF77, 0x9077, 0xDF78, 0x9078, 0xDF79, 0x9079, 0xDF7A, 0x907A, 0xDF7B, 0x907B, 0xDF7C, 0x907C, 0xDF7D, 0x907E, + 0xDF7E, 0x9081, 0xDF80, 0x9084, 0xDF81, 0x9085, 0xDF82, 0x9086, 0xDF83, 0x9087, 0xDF84, 0x9089, 0xDF85, 0x908A, 0xDF86, 0x908C, + 0xDF87, 0x908D, 0xDF88, 0x908E, 0xDF89, 0x908F, 0xDF8A, 0x9090, 0xDF8B, 0x9092, 0xDF8C, 0x9094, 0xDF8D, 0x9096, 0xDF8E, 0x9098, + 0xDF8F, 0x909A, 0xDF90, 0x909C, 0xDF91, 0x909E, 0xDF92, 0x909F, 0xDF93, 0x90A0, 0xDF94, 0x90A4, 0xDF95, 0x90A5, 0xDF96, 0x90A7, + 0xDF97, 0x90A8, 0xDF98, 0x90A9, 0xDF99, 0x90AB, 0xDF9A, 0x90AD, 0xDF9B, 0x90B2, 0xDF9C, 0x90B7, 0xDF9D, 0x90BC, 0xDF9E, 0x90BD, + 0xDF9F, 0x90BF, 0xDFA0, 0x90C0, 0xDFA1, 0x647A, 0xDFA2, 0x64B7, 0xDFA3, 0x64B8, 0xDFA4, 0x6499, 0xDFA5, 0x64BA, 0xDFA6, 0x64C0, + 0xDFA7, 0x64D0, 0xDFA8, 0x64D7, 0xDFA9, 0x64E4, 0xDFAA, 0x64E2, 0xDFAB, 0x6509, 0xDFAC, 0x6525, 0xDFAD, 0x652E, 0xDFAE, 0x5F0B, + 0xDFAF, 0x5FD2, 0xDFB0, 0x7519, 0xDFB1, 0x5F11, 0xDFB2, 0x535F, 0xDFB3, 0x53F1, 0xDFB4, 0x53FD, 0xDFB5, 0x53E9, 0xDFB6, 0x53E8, + 0xDFB7, 0x53FB, 0xDFB8, 0x5412, 0xDFB9, 0x5416, 0xDFBA, 0x5406, 0xDFBB, 0x544B, 0xDFBC, 0x5452, 0xDFBD, 0x5453, 0xDFBE, 0x5454, + 0xDFBF, 0x5456, 0xDFC0, 0x5443, 0xDFC1, 0x5421, 0xDFC2, 0x5457, 0xDFC3, 0x5459, 0xDFC4, 0x5423, 0xDFC5, 0x5432, 0xDFC6, 0x5482, + 0xDFC7, 0x5494, 0xDFC8, 0x5477, 0xDFC9, 0x5471, 0xDFCA, 0x5464, 0xDFCB, 0x549A, 0xDFCC, 0x549B, 0xDFCD, 0x5484, 0xDFCE, 0x5476, + 0xDFCF, 0x5466, 0xDFD0, 0x549D, 0xDFD1, 0x54D0, 0xDFD2, 0x54AD, 0xDFD3, 0x54C2, 0xDFD4, 0x54B4, 0xDFD5, 0x54D2, 0xDFD6, 0x54A7, + 0xDFD7, 0x54A6, 0xDFD8, 0x54D3, 0xDFD9, 0x54D4, 0xDFDA, 0x5472, 0xDFDB, 0x54A3, 0xDFDC, 0x54D5, 0xDFDD, 0x54BB, 0xDFDE, 0x54BF, + 0xDFDF, 0x54CC, 0xDFE0, 0x54D9, 0xDFE1, 0x54DA, 0xDFE2, 0x54DC, 0xDFE3, 0x54A9, 0xDFE4, 0x54AA, 0xDFE5, 0x54A4, 0xDFE6, 0x54DD, + 0xDFE7, 0x54CF, 0xDFE8, 0x54DE, 0xDFE9, 0x551B, 0xDFEA, 0x54E7, 0xDFEB, 0x5520, 0xDFEC, 0x54FD, 0xDFED, 0x5514, 0xDFEE, 0x54F3, + 0xDFEF, 0x5522, 0xDFF0, 0x5523, 0xDFF1, 0x550F, 0xDFF2, 0x5511, 0xDFF3, 0x5527, 0xDFF4, 0x552A, 0xDFF5, 0x5567, 0xDFF6, 0x558F, + 0xDFF7, 0x55B5, 0xDFF8, 0x5549, 0xDFF9, 0x556D, 0xDFFA, 0x5541, 0xDFFB, 0x5555, 0xDFFC, 0x553F, 0xDFFD, 0x5550, 0xDFFE, 0x553C, + 0xE040, 0x90C2, 0xE041, 0x90C3, 0xE042, 0x90C6, 0xE043, 0x90C8, 0xE044, 0x90C9, 0xE045, 0x90CB, 0xE046, 0x90CC, 0xE047, 0x90CD, + 0xE048, 0x90D2, 0xE049, 0x90D4, 0xE04A, 0x90D5, 0xE04B, 0x90D6, 0xE04C, 0x90D8, 0xE04D, 0x90D9, 0xE04E, 0x90DA, 0xE04F, 0x90DE, + 0xE050, 0x90DF, 0xE051, 0x90E0, 0xE052, 0x90E3, 0xE053, 0x90E4, 0xE054, 0x90E5, 0xE055, 0x90E9, 0xE056, 0x90EA, 0xE057, 0x90EC, + 0xE058, 0x90EE, 0xE059, 0x90F0, 0xE05A, 0x90F1, 0xE05B, 0x90F2, 0xE05C, 0x90F3, 0xE05D, 0x90F5, 0xE05E, 0x90F6, 0xE05F, 0x90F7, + 0xE060, 0x90F9, 0xE061, 0x90FA, 0xE062, 0x90FB, 0xE063, 0x90FC, 0xE064, 0x90FF, 0xE065, 0x9100, 0xE066, 0x9101, 0xE067, 0x9103, + 0xE068, 0x9105, 0xE069, 0x9106, 0xE06A, 0x9107, 0xE06B, 0x9108, 0xE06C, 0x9109, 0xE06D, 0x910A, 0xE06E, 0x910B, 0xE06F, 0x910C, + 0xE070, 0x910D, 0xE071, 0x910E, 0xE072, 0x910F, 0xE073, 0x9110, 0xE074, 0x9111, 0xE075, 0x9112, 0xE076, 0x9113, 0xE077, 0x9114, + 0xE078, 0x9115, 0xE079, 0x9116, 0xE07A, 0x9117, 0xE07B, 0x9118, 0xE07C, 0x911A, 0xE07D, 0x911B, 0xE07E, 0x911C, 0xE080, 0x911D, + 0xE081, 0x911F, 0xE082, 0x9120, 0xE083, 0x9121, 0xE084, 0x9124, 0xE085, 0x9125, 0xE086, 0x9126, 0xE087, 0x9127, 0xE088, 0x9128, + 0xE089, 0x9129, 0xE08A, 0x912A, 0xE08B, 0x912B, 0xE08C, 0x912C, 0xE08D, 0x912D, 0xE08E, 0x912E, 0xE08F, 0x9130, 0xE090, 0x9132, + 0xE091, 0x9133, 0xE092, 0x9134, 0xE093, 0x9135, 0xE094, 0x9136, 0xE095, 0x9137, 0xE096, 0x9138, 0xE097, 0x913A, 0xE098, 0x913B, + 0xE099, 0x913C, 0xE09A, 0x913D, 0xE09B, 0x913E, 0xE09C, 0x913F, 0xE09D, 0x9140, 0xE09E, 0x9141, 0xE09F, 0x9142, 0xE0A0, 0x9144, + 0xE0A1, 0x5537, 0xE0A2, 0x5556, 0xE0A3, 0x5575, 0xE0A4, 0x5576, 0xE0A5, 0x5577, 0xE0A6, 0x5533, 0xE0A7, 0x5530, 0xE0A8, 0x555C, + 0xE0A9, 0x558B, 0xE0AA, 0x55D2, 0xE0AB, 0x5583, 0xE0AC, 0x55B1, 0xE0AD, 0x55B9, 0xE0AE, 0x5588, 0xE0AF, 0x5581, 0xE0B0, 0x559F, + 0xE0B1, 0x557E, 0xE0B2, 0x55D6, 0xE0B3, 0x5591, 0xE0B4, 0x557B, 0xE0B5, 0x55DF, 0xE0B6, 0x55BD, 0xE0B7, 0x55BE, 0xE0B8, 0x5594, + 0xE0B9, 0x5599, 0xE0BA, 0x55EA, 0xE0BB, 0x55F7, 0xE0BC, 0x55C9, 0xE0BD, 0x561F, 0xE0BE, 0x55D1, 0xE0BF, 0x55EB, 0xE0C0, 0x55EC, + 0xE0C1, 0x55D4, 0xE0C2, 0x55E6, 0xE0C3, 0x55DD, 0xE0C4, 0x55C4, 0xE0C5, 0x55EF, 0xE0C6, 0x55E5, 0xE0C7, 0x55F2, 0xE0C8, 0x55F3, + 0xE0C9, 0x55CC, 0xE0CA, 0x55CD, 0xE0CB, 0x55E8, 0xE0CC, 0x55F5, 0xE0CD, 0x55E4, 0xE0CE, 0x8F94, 0xE0CF, 0x561E, 0xE0D0, 0x5608, + 0xE0D1, 0x560C, 0xE0D2, 0x5601, 0xE0D3, 0x5624, 0xE0D4, 0x5623, 0xE0D5, 0x55FE, 0xE0D6, 0x5600, 0xE0D7, 0x5627, 0xE0D8, 0x562D, + 0xE0D9, 0x5658, 0xE0DA, 0x5639, 0xE0DB, 0x5657, 0xE0DC, 0x562C, 0xE0DD, 0x564D, 0xE0DE, 0x5662, 0xE0DF, 0x5659, 0xE0E0, 0x565C, + 0xE0E1, 0x564C, 0xE0E2, 0x5654, 0xE0E3, 0x5686, 0xE0E4, 0x5664, 0xE0E5, 0x5671, 0xE0E6, 0x566B, 0xE0E7, 0x567B, 0xE0E8, 0x567C, + 0xE0E9, 0x5685, 0xE0EA, 0x5693, 0xE0EB, 0x56AF, 0xE0EC, 0x56D4, 0xE0ED, 0x56D7, 0xE0EE, 0x56DD, 0xE0EF, 0x56E1, 0xE0F0, 0x56F5, + 0xE0F1, 0x56EB, 0xE0F2, 0x56F9, 0xE0F3, 0x56FF, 0xE0F4, 0x5704, 0xE0F5, 0x570A, 0xE0F6, 0x5709, 0xE0F7, 0x571C, 0xE0F8, 0x5E0F, + 0xE0F9, 0x5E19, 0xE0FA, 0x5E14, 0xE0FB, 0x5E11, 0xE0FC, 0x5E31, 0xE0FD, 0x5E3B, 0xE0FE, 0x5E3C, 0xE140, 0x9145, 0xE141, 0x9147, + 0xE142, 0x9148, 0xE143, 0x9151, 0xE144, 0x9153, 0xE145, 0x9154, 0xE146, 0x9155, 0xE147, 0x9156, 0xE148, 0x9158, 0xE149, 0x9159, + 0xE14A, 0x915B, 0xE14B, 0x915C, 0xE14C, 0x915F, 0xE14D, 0x9160, 0xE14E, 0x9166, 0xE14F, 0x9167, 0xE150, 0x9168, 0xE151, 0x916B, + 0xE152, 0x916D, 0xE153, 0x9173, 0xE154, 0x917A, 0xE155, 0x917B, 0xE156, 0x917C, 0xE157, 0x9180, 0xE158, 0x9181, 0xE159, 0x9182, + 0xE15A, 0x9183, 0xE15B, 0x9184, 0xE15C, 0x9186, 0xE15D, 0x9188, 0xE15E, 0x918A, 0xE15F, 0x918E, 0xE160, 0x918F, 0xE161, 0x9193, + 0xE162, 0x9194, 0xE163, 0x9195, 0xE164, 0x9196, 0xE165, 0x9197, 0xE166, 0x9198, 0xE167, 0x9199, 0xE168, 0x919C, 0xE169, 0x919D, + 0xE16A, 0x919E, 0xE16B, 0x919F, 0xE16C, 0x91A0, 0xE16D, 0x91A1, 0xE16E, 0x91A4, 0xE16F, 0x91A5, 0xE170, 0x91A6, 0xE171, 0x91A7, + 0xE172, 0x91A8, 0xE173, 0x91A9, 0xE174, 0x91AB, 0xE175, 0x91AC, 0xE176, 0x91B0, 0xE177, 0x91B1, 0xE178, 0x91B2, 0xE179, 0x91B3, + 0xE17A, 0x91B6, 0xE17B, 0x91B7, 0xE17C, 0x91B8, 0xE17D, 0x91B9, 0xE17E, 0x91BB, 0xE180, 0x91BC, 0xE181, 0x91BD, 0xE182, 0x91BE, + 0xE183, 0x91BF, 0xE184, 0x91C0, 0xE185, 0x91C1, 0xE186, 0x91C2, 0xE187, 0x91C3, 0xE188, 0x91C4, 0xE189, 0x91C5, 0xE18A, 0x91C6, + 0xE18B, 0x91C8, 0xE18C, 0x91CB, 0xE18D, 0x91D0, 0xE18E, 0x91D2, 0xE18F, 0x91D3, 0xE190, 0x91D4, 0xE191, 0x91D5, 0xE192, 0x91D6, + 0xE193, 0x91D7, 0xE194, 0x91D8, 0xE195, 0x91D9, 0xE196, 0x91DA, 0xE197, 0x91DB, 0xE198, 0x91DD, 0xE199, 0x91DE, 0xE19A, 0x91DF, + 0xE19B, 0x91E0, 0xE19C, 0x91E1, 0xE19D, 0x91E2, 0xE19E, 0x91E3, 0xE19F, 0x91E4, 0xE1A0, 0x91E5, 0xE1A1, 0x5E37, 0xE1A2, 0x5E44, + 0xE1A3, 0x5E54, 0xE1A4, 0x5E5B, 0xE1A5, 0x5E5E, 0xE1A6, 0x5E61, 0xE1A7, 0x5C8C, 0xE1A8, 0x5C7A, 0xE1A9, 0x5C8D, 0xE1AA, 0x5C90, + 0xE1AB, 0x5C96, 0xE1AC, 0x5C88, 0xE1AD, 0x5C98, 0xE1AE, 0x5C99, 0xE1AF, 0x5C91, 0xE1B0, 0x5C9A, 0xE1B1, 0x5C9C, 0xE1B2, 0x5CB5, + 0xE1B3, 0x5CA2, 0xE1B4, 0x5CBD, 0xE1B5, 0x5CAC, 0xE1B6, 0x5CAB, 0xE1B7, 0x5CB1, 0xE1B8, 0x5CA3, 0xE1B9, 0x5CC1, 0xE1BA, 0x5CB7, + 0xE1BB, 0x5CC4, 0xE1BC, 0x5CD2, 0xE1BD, 0x5CE4, 0xE1BE, 0x5CCB, 0xE1BF, 0x5CE5, 0xE1C0, 0x5D02, 0xE1C1, 0x5D03, 0xE1C2, 0x5D27, + 0xE1C3, 0x5D26, 0xE1C4, 0x5D2E, 0xE1C5, 0x5D24, 0xE1C6, 0x5D1E, 0xE1C7, 0x5D06, 0xE1C8, 0x5D1B, 0xE1C9, 0x5D58, 0xE1CA, 0x5D3E, + 0xE1CB, 0x5D34, 0xE1CC, 0x5D3D, 0xE1CD, 0x5D6C, 0xE1CE, 0x5D5B, 0xE1CF, 0x5D6F, 0xE1D0, 0x5D5D, 0xE1D1, 0x5D6B, 0xE1D2, 0x5D4B, + 0xE1D3, 0x5D4A, 0xE1D4, 0x5D69, 0xE1D5, 0x5D74, 0xE1D6, 0x5D82, 0xE1D7, 0x5D99, 0xE1D8, 0x5D9D, 0xE1D9, 0x8C73, 0xE1DA, 0x5DB7, + 0xE1DB, 0x5DC5, 0xE1DC, 0x5F73, 0xE1DD, 0x5F77, 0xE1DE, 0x5F82, 0xE1DF, 0x5F87, 0xE1E0, 0x5F89, 0xE1E1, 0x5F8C, 0xE1E2, 0x5F95, + 0xE1E3, 0x5F99, 0xE1E4, 0x5F9C, 0xE1E5, 0x5FA8, 0xE1E6, 0x5FAD, 0xE1E7, 0x5FB5, 0xE1E8, 0x5FBC, 0xE1E9, 0x8862, 0xE1EA, 0x5F61, + 0xE1EB, 0x72AD, 0xE1EC, 0x72B0, 0xE1ED, 0x72B4, 0xE1EE, 0x72B7, 0xE1EF, 0x72B8, 0xE1F0, 0x72C3, 0xE1F1, 0x72C1, 0xE1F2, 0x72CE, + 0xE1F3, 0x72CD, 0xE1F4, 0x72D2, 0xE1F5, 0x72E8, 0xE1F6, 0x72EF, 0xE1F7, 0x72E9, 0xE1F8, 0x72F2, 0xE1F9, 0x72F4, 0xE1FA, 0x72F7, + 0xE1FB, 0x7301, 0xE1FC, 0x72F3, 0xE1FD, 0x7303, 0xE1FE, 0x72FA, 0xE240, 0x91E6, 0xE241, 0x91E7, 0xE242, 0x91E8, 0xE243, 0x91E9, + 0xE244, 0x91EA, 0xE245, 0x91EB, 0xE246, 0x91EC, 0xE247, 0x91ED, 0xE248, 0x91EE, 0xE249, 0x91EF, 0xE24A, 0x91F0, 0xE24B, 0x91F1, + 0xE24C, 0x91F2, 0xE24D, 0x91F3, 0xE24E, 0x91F4, 0xE24F, 0x91F5, 0xE250, 0x91F6, 0xE251, 0x91F7, 0xE252, 0x91F8, 0xE253, 0x91F9, + 0xE254, 0x91FA, 0xE255, 0x91FB, 0xE256, 0x91FC, 0xE257, 0x91FD, 0xE258, 0x91FE, 0xE259, 0x91FF, 0xE25A, 0x9200, 0xE25B, 0x9201, + 0xE25C, 0x9202, 0xE25D, 0x9203, 0xE25E, 0x9204, 0xE25F, 0x9205, 0xE260, 0x9206, 0xE261, 0x9207, 0xE262, 0x9208, 0xE263, 0x9209, + 0xE264, 0x920A, 0xE265, 0x920B, 0xE266, 0x920C, 0xE267, 0x920D, 0xE268, 0x920E, 0xE269, 0x920F, 0xE26A, 0x9210, 0xE26B, 0x9211, + 0xE26C, 0x9212, 0xE26D, 0x9213, 0xE26E, 0x9214, 0xE26F, 0x9215, 0xE270, 0x9216, 0xE271, 0x9217, 0xE272, 0x9218, 0xE273, 0x9219, + 0xE274, 0x921A, 0xE275, 0x921B, 0xE276, 0x921C, 0xE277, 0x921D, 0xE278, 0x921E, 0xE279, 0x921F, 0xE27A, 0x9220, 0xE27B, 0x9221, + 0xE27C, 0x9222, 0xE27D, 0x9223, 0xE27E, 0x9224, 0xE280, 0x9225, 0xE281, 0x9226, 0xE282, 0x9227, 0xE283, 0x9228, 0xE284, 0x9229, + 0xE285, 0x922A, 0xE286, 0x922B, 0xE287, 0x922C, 0xE288, 0x922D, 0xE289, 0x922E, 0xE28A, 0x922F, 0xE28B, 0x9230, 0xE28C, 0x9231, + 0xE28D, 0x9232, 0xE28E, 0x9233, 0xE28F, 0x9234, 0xE290, 0x9235, 0xE291, 0x9236, 0xE292, 0x9237, 0xE293, 0x9238, 0xE294, 0x9239, + 0xE295, 0x923A, 0xE296, 0x923B, 0xE297, 0x923C, 0xE298, 0x923D, 0xE299, 0x923E, 0xE29A, 0x923F, 0xE29B, 0x9240, 0xE29C, 0x9241, + 0xE29D, 0x9242, 0xE29E, 0x9243, 0xE29F, 0x9244, 0xE2A0, 0x9245, 0xE2A1, 0x72FB, 0xE2A2, 0x7317, 0xE2A3, 0x7313, 0xE2A4, 0x7321, + 0xE2A5, 0x730A, 0xE2A6, 0x731E, 0xE2A7, 0x731D, 0xE2A8, 0x7315, 0xE2A9, 0x7322, 0xE2AA, 0x7339, 0xE2AB, 0x7325, 0xE2AC, 0x732C, + 0xE2AD, 0x7338, 0xE2AE, 0x7331, 0xE2AF, 0x7350, 0xE2B0, 0x734D, 0xE2B1, 0x7357, 0xE2B2, 0x7360, 0xE2B3, 0x736C, 0xE2B4, 0x736F, + 0xE2B5, 0x737E, 0xE2B6, 0x821B, 0xE2B7, 0x5925, 0xE2B8, 0x98E7, 0xE2B9, 0x5924, 0xE2BA, 0x5902, 0xE2BB, 0x9963, 0xE2BC, 0x9967, + 0xE2BD, 0x9968, 0xE2BE, 0x9969, 0xE2BF, 0x996A, 0xE2C0, 0x996B, 0xE2C1, 0x996C, 0xE2C2, 0x9974, 0xE2C3, 0x9977, 0xE2C4, 0x997D, + 0xE2C5, 0x9980, 0xE2C6, 0x9984, 0xE2C7, 0x9987, 0xE2C8, 0x998A, 0xE2C9, 0x998D, 0xE2CA, 0x9990, 0xE2CB, 0x9991, 0xE2CC, 0x9993, + 0xE2CD, 0x9994, 0xE2CE, 0x9995, 0xE2CF, 0x5E80, 0xE2D0, 0x5E91, 0xE2D1, 0x5E8B, 0xE2D2, 0x5E96, 0xE2D3, 0x5EA5, 0xE2D4, 0x5EA0, + 0xE2D5, 0x5EB9, 0xE2D6, 0x5EB5, 0xE2D7, 0x5EBE, 0xE2D8, 0x5EB3, 0xE2D9, 0x8D53, 0xE2DA, 0x5ED2, 0xE2DB, 0x5ED1, 0xE2DC, 0x5EDB, + 0xE2DD, 0x5EE8, 0xE2DE, 0x5EEA, 0xE2DF, 0x81BA, 0xE2E0, 0x5FC4, 0xE2E1, 0x5FC9, 0xE2E2, 0x5FD6, 0xE2E3, 0x5FCF, 0xE2E4, 0x6003, + 0xE2E5, 0x5FEE, 0xE2E6, 0x6004, 0xE2E7, 0x5FE1, 0xE2E8, 0x5FE4, 0xE2E9, 0x5FFE, 0xE2EA, 0x6005, 0xE2EB, 0x6006, 0xE2EC, 0x5FEA, + 0xE2ED, 0x5FED, 0xE2EE, 0x5FF8, 0xE2EF, 0x6019, 0xE2F0, 0x6035, 0xE2F1, 0x6026, 0xE2F2, 0x601B, 0xE2F3, 0x600F, 0xE2F4, 0x600D, + 0xE2F5, 0x6029, 0xE2F6, 0x602B, 0xE2F7, 0x600A, 0xE2F8, 0x603F, 0xE2F9, 0x6021, 0xE2FA, 0x6078, 0xE2FB, 0x6079, 0xE2FC, 0x607B, + 0xE2FD, 0x607A, 0xE2FE, 0x6042, 0xE340, 0x9246, 0xE341, 0x9247, 0xE342, 0x9248, 0xE343, 0x9249, 0xE344, 0x924A, 0xE345, 0x924B, + 0xE346, 0x924C, 0xE347, 0x924D, 0xE348, 0x924E, 0xE349, 0x924F, 0xE34A, 0x9250, 0xE34B, 0x9251, 0xE34C, 0x9252, 0xE34D, 0x9253, + 0xE34E, 0x9254, 0xE34F, 0x9255, 0xE350, 0x9256, 0xE351, 0x9257, 0xE352, 0x9258, 0xE353, 0x9259, 0xE354, 0x925A, 0xE355, 0x925B, + 0xE356, 0x925C, 0xE357, 0x925D, 0xE358, 0x925E, 0xE359, 0x925F, 0xE35A, 0x9260, 0xE35B, 0x9261, 0xE35C, 0x9262, 0xE35D, 0x9263, + 0xE35E, 0x9264, 0xE35F, 0x9265, 0xE360, 0x9266, 0xE361, 0x9267, 0xE362, 0x9268, 0xE363, 0x9269, 0xE364, 0x926A, 0xE365, 0x926B, + 0xE366, 0x926C, 0xE367, 0x926D, 0xE368, 0x926E, 0xE369, 0x926F, 0xE36A, 0x9270, 0xE36B, 0x9271, 0xE36C, 0x9272, 0xE36D, 0x9273, + 0xE36E, 0x9275, 0xE36F, 0x9276, 0xE370, 0x9277, 0xE371, 0x9278, 0xE372, 0x9279, 0xE373, 0x927A, 0xE374, 0x927B, 0xE375, 0x927C, + 0xE376, 0x927D, 0xE377, 0x927E, 0xE378, 0x927F, 0xE379, 0x9280, 0xE37A, 0x9281, 0xE37B, 0x9282, 0xE37C, 0x9283, 0xE37D, 0x9284, + 0xE37E, 0x9285, 0xE380, 0x9286, 0xE381, 0x9287, 0xE382, 0x9288, 0xE383, 0x9289, 0xE384, 0x928A, 0xE385, 0x928B, 0xE386, 0x928C, + 0xE387, 0x928D, 0xE388, 0x928F, 0xE389, 0x9290, 0xE38A, 0x9291, 0xE38B, 0x9292, 0xE38C, 0x9293, 0xE38D, 0x9294, 0xE38E, 0x9295, + 0xE38F, 0x9296, 0xE390, 0x9297, 0xE391, 0x9298, 0xE392, 0x9299, 0xE393, 0x929A, 0xE394, 0x929B, 0xE395, 0x929C, 0xE396, 0x929D, + 0xE397, 0x929E, 0xE398, 0x929F, 0xE399, 0x92A0, 0xE39A, 0x92A1, 0xE39B, 0x92A2, 0xE39C, 0x92A3, 0xE39D, 0x92A4, 0xE39E, 0x92A5, + 0xE39F, 0x92A6, 0xE3A0, 0x92A7, 0xE3A1, 0x606A, 0xE3A2, 0x607D, 0xE3A3, 0x6096, 0xE3A4, 0x609A, 0xE3A5, 0x60AD, 0xE3A6, 0x609D, + 0xE3A7, 0x6083, 0xE3A8, 0x6092, 0xE3A9, 0x608C, 0xE3AA, 0x609B, 0xE3AB, 0x60EC, 0xE3AC, 0x60BB, 0xE3AD, 0x60B1, 0xE3AE, 0x60DD, + 0xE3AF, 0x60D8, 0xE3B0, 0x60C6, 0xE3B1, 0x60DA, 0xE3B2, 0x60B4, 0xE3B3, 0x6120, 0xE3B4, 0x6126, 0xE3B5, 0x6115, 0xE3B6, 0x6123, + 0xE3B7, 0x60F4, 0xE3B8, 0x6100, 0xE3B9, 0x610E, 0xE3BA, 0x612B, 0xE3BB, 0x614A, 0xE3BC, 0x6175, 0xE3BD, 0x61AC, 0xE3BE, 0x6194, + 0xE3BF, 0x61A7, 0xE3C0, 0x61B7, 0xE3C1, 0x61D4, 0xE3C2, 0x61F5, 0xE3C3, 0x5FDD, 0xE3C4, 0x96B3, 0xE3C5, 0x95E9, 0xE3C6, 0x95EB, + 0xE3C7, 0x95F1, 0xE3C8, 0x95F3, 0xE3C9, 0x95F5, 0xE3CA, 0x95F6, 0xE3CB, 0x95FC, 0xE3CC, 0x95FE, 0xE3CD, 0x9603, 0xE3CE, 0x9604, + 0xE3CF, 0x9606, 0xE3D0, 0x9608, 0xE3D1, 0x960A, 0xE3D2, 0x960B, 0xE3D3, 0x960C, 0xE3D4, 0x960D, 0xE3D5, 0x960F, 0xE3D6, 0x9612, + 0xE3D7, 0x9615, 0xE3D8, 0x9616, 0xE3D9, 0x9617, 0xE3DA, 0x9619, 0xE3DB, 0x961A, 0xE3DC, 0x4E2C, 0xE3DD, 0x723F, 0xE3DE, 0x6215, + 0xE3DF, 0x6C35, 0xE3E0, 0x6C54, 0xE3E1, 0x6C5C, 0xE3E2, 0x6C4A, 0xE3E3, 0x6CA3, 0xE3E4, 0x6C85, 0xE3E5, 0x6C90, 0xE3E6, 0x6C94, + 0xE3E7, 0x6C8C, 0xE3E8, 0x6C68, 0xE3E9, 0x6C69, 0xE3EA, 0x6C74, 0xE3EB, 0x6C76, 0xE3EC, 0x6C86, 0xE3ED, 0x6CA9, 0xE3EE, 0x6CD0, + 0xE3EF, 0x6CD4, 0xE3F0, 0x6CAD, 0xE3F1, 0x6CF7, 0xE3F2, 0x6CF8, 0xE3F3, 0x6CF1, 0xE3F4, 0x6CD7, 0xE3F5, 0x6CB2, 0xE3F6, 0x6CE0, + 0xE3F7, 0x6CD6, 0xE3F8, 0x6CFA, 0xE3F9, 0x6CEB, 0xE3FA, 0x6CEE, 0xE3FB, 0x6CB1, 0xE3FC, 0x6CD3, 0xE3FD, 0x6CEF, 0xE3FE, 0x6CFE, + 0xE440, 0x92A8, 0xE441, 0x92A9, 0xE442, 0x92AA, 0xE443, 0x92AB, 0xE444, 0x92AC, 0xE445, 0x92AD, 0xE446, 0x92AF, 0xE447, 0x92B0, + 0xE448, 0x92B1, 0xE449, 0x92B2, 0xE44A, 0x92B3, 0xE44B, 0x92B4, 0xE44C, 0x92B5, 0xE44D, 0x92B6, 0xE44E, 0x92B7, 0xE44F, 0x92B8, + 0xE450, 0x92B9, 0xE451, 0x92BA, 0xE452, 0x92BB, 0xE453, 0x92BC, 0xE454, 0x92BD, 0xE455, 0x92BE, 0xE456, 0x92BF, 0xE457, 0x92C0, + 0xE458, 0x92C1, 0xE459, 0x92C2, 0xE45A, 0x92C3, 0xE45B, 0x92C4, 0xE45C, 0x92C5, 0xE45D, 0x92C6, 0xE45E, 0x92C7, 0xE45F, 0x92C9, + 0xE460, 0x92CA, 0xE461, 0x92CB, 0xE462, 0x92CC, 0xE463, 0x92CD, 0xE464, 0x92CE, 0xE465, 0x92CF, 0xE466, 0x92D0, 0xE467, 0x92D1, + 0xE468, 0x92D2, 0xE469, 0x92D3, 0xE46A, 0x92D4, 0xE46B, 0x92D5, 0xE46C, 0x92D6, 0xE46D, 0x92D7, 0xE46E, 0x92D8, 0xE46F, 0x92D9, + 0xE470, 0x92DA, 0xE471, 0x92DB, 0xE472, 0x92DC, 0xE473, 0x92DD, 0xE474, 0x92DE, 0xE475, 0x92DF, 0xE476, 0x92E0, 0xE477, 0x92E1, + 0xE478, 0x92E2, 0xE479, 0x92E3, 0xE47A, 0x92E4, 0xE47B, 0x92E5, 0xE47C, 0x92E6, 0xE47D, 0x92E7, 0xE47E, 0x92E8, 0xE480, 0x92E9, + 0xE481, 0x92EA, 0xE482, 0x92EB, 0xE483, 0x92EC, 0xE484, 0x92ED, 0xE485, 0x92EE, 0xE486, 0x92EF, 0xE487, 0x92F0, 0xE488, 0x92F1, + 0xE489, 0x92F2, 0xE48A, 0x92F3, 0xE48B, 0x92F4, 0xE48C, 0x92F5, 0xE48D, 0x92F6, 0xE48E, 0x92F7, 0xE48F, 0x92F8, 0xE490, 0x92F9, + 0xE491, 0x92FA, 0xE492, 0x92FB, 0xE493, 0x92FC, 0xE494, 0x92FD, 0xE495, 0x92FE, 0xE496, 0x92FF, 0xE497, 0x9300, 0xE498, 0x9301, + 0xE499, 0x9302, 0xE49A, 0x9303, 0xE49B, 0x9304, 0xE49C, 0x9305, 0xE49D, 0x9306, 0xE49E, 0x9307, 0xE49F, 0x9308, 0xE4A0, 0x9309, + 0xE4A1, 0x6D39, 0xE4A2, 0x6D27, 0xE4A3, 0x6D0C, 0xE4A4, 0x6D43, 0xE4A5, 0x6D48, 0xE4A6, 0x6D07, 0xE4A7, 0x6D04, 0xE4A8, 0x6D19, + 0xE4A9, 0x6D0E, 0xE4AA, 0x6D2B, 0xE4AB, 0x6D4D, 0xE4AC, 0x6D2E, 0xE4AD, 0x6D35, 0xE4AE, 0x6D1A, 0xE4AF, 0x6D4F, 0xE4B0, 0x6D52, + 0xE4B1, 0x6D54, 0xE4B2, 0x6D33, 0xE4B3, 0x6D91, 0xE4B4, 0x6D6F, 0xE4B5, 0x6D9E, 0xE4B6, 0x6DA0, 0xE4B7, 0x6D5E, 0xE4B8, 0x6D93, + 0xE4B9, 0x6D94, 0xE4BA, 0x6D5C, 0xE4BB, 0x6D60, 0xE4BC, 0x6D7C, 0xE4BD, 0x6D63, 0xE4BE, 0x6E1A, 0xE4BF, 0x6DC7, 0xE4C0, 0x6DC5, + 0xE4C1, 0x6DDE, 0xE4C2, 0x6E0E, 0xE4C3, 0x6DBF, 0xE4C4, 0x6DE0, 0xE4C5, 0x6E11, 0xE4C6, 0x6DE6, 0xE4C7, 0x6DDD, 0xE4C8, 0x6DD9, + 0xE4C9, 0x6E16, 0xE4CA, 0x6DAB, 0xE4CB, 0x6E0C, 0xE4CC, 0x6DAE, 0xE4CD, 0x6E2B, 0xE4CE, 0x6E6E, 0xE4CF, 0x6E4E, 0xE4D0, 0x6E6B, + 0xE4D1, 0x6EB2, 0xE4D2, 0x6E5F, 0xE4D3, 0x6E86, 0xE4D4, 0x6E53, 0xE4D5, 0x6E54, 0xE4D6, 0x6E32, 0xE4D7, 0x6E25, 0xE4D8, 0x6E44, + 0xE4D9, 0x6EDF, 0xE4DA, 0x6EB1, 0xE4DB, 0x6E98, 0xE4DC, 0x6EE0, 0xE4DD, 0x6F2D, 0xE4DE, 0x6EE2, 0xE4DF, 0x6EA5, 0xE4E0, 0x6EA7, + 0xE4E1, 0x6EBD, 0xE4E2, 0x6EBB, 0xE4E3, 0x6EB7, 0xE4E4, 0x6ED7, 0xE4E5, 0x6EB4, 0xE4E6, 0x6ECF, 0xE4E7, 0x6E8F, 0xE4E8, 0x6EC2, + 0xE4E9, 0x6E9F, 0xE4EA, 0x6F62, 0xE4EB, 0x6F46, 0xE4EC, 0x6F47, 0xE4ED, 0x6F24, 0xE4EE, 0x6F15, 0xE4EF, 0x6EF9, 0xE4F0, 0x6F2F, + 0xE4F1, 0x6F36, 0xE4F2, 0x6F4B, 0xE4F3, 0x6F74, 0xE4F4, 0x6F2A, 0xE4F5, 0x6F09, 0xE4F6, 0x6F29, 0xE4F7, 0x6F89, 0xE4F8, 0x6F8D, + 0xE4F9, 0x6F8C, 0xE4FA, 0x6F78, 0xE4FB, 0x6F72, 0xE4FC, 0x6F7C, 0xE4FD, 0x6F7A, 0xE4FE, 0x6FD1, 0xE540, 0x930A, 0xE541, 0x930B, + 0xE542, 0x930C, 0xE543, 0x930D, 0xE544, 0x930E, 0xE545, 0x930F, 0xE546, 0x9310, 0xE547, 0x9311, 0xE548, 0x9312, 0xE549, 0x9313, + 0xE54A, 0x9314, 0xE54B, 0x9315, 0xE54C, 0x9316, 0xE54D, 0x9317, 0xE54E, 0x9318, 0xE54F, 0x9319, 0xE550, 0x931A, 0xE551, 0x931B, + 0xE552, 0x931C, 0xE553, 0x931D, 0xE554, 0x931E, 0xE555, 0x931F, 0xE556, 0x9320, 0xE557, 0x9321, 0xE558, 0x9322, 0xE559, 0x9323, + 0xE55A, 0x9324, 0xE55B, 0x9325, 0xE55C, 0x9326, 0xE55D, 0x9327, 0xE55E, 0x9328, 0xE55F, 0x9329, 0xE560, 0x932A, 0xE561, 0x932B, + 0xE562, 0x932C, 0xE563, 0x932D, 0xE564, 0x932E, 0xE565, 0x932F, 0xE566, 0x9330, 0xE567, 0x9331, 0xE568, 0x9332, 0xE569, 0x9333, + 0xE56A, 0x9334, 0xE56B, 0x9335, 0xE56C, 0x9336, 0xE56D, 0x9337, 0xE56E, 0x9338, 0xE56F, 0x9339, 0xE570, 0x933A, 0xE571, 0x933B, + 0xE572, 0x933C, 0xE573, 0x933D, 0xE574, 0x933F, 0xE575, 0x9340, 0xE576, 0x9341, 0xE577, 0x9342, 0xE578, 0x9343, 0xE579, 0x9344, + 0xE57A, 0x9345, 0xE57B, 0x9346, 0xE57C, 0x9347, 0xE57D, 0x9348, 0xE57E, 0x9349, 0xE580, 0x934A, 0xE581, 0x934B, 0xE582, 0x934C, + 0xE583, 0x934D, 0xE584, 0x934E, 0xE585, 0x934F, 0xE586, 0x9350, 0xE587, 0x9351, 0xE588, 0x9352, 0xE589, 0x9353, 0xE58A, 0x9354, + 0xE58B, 0x9355, 0xE58C, 0x9356, 0xE58D, 0x9357, 0xE58E, 0x9358, 0xE58F, 0x9359, 0xE590, 0x935A, 0xE591, 0x935B, 0xE592, 0x935C, + 0xE593, 0x935D, 0xE594, 0x935E, 0xE595, 0x935F, 0xE596, 0x9360, 0xE597, 0x9361, 0xE598, 0x9362, 0xE599, 0x9363, 0xE59A, 0x9364, + 0xE59B, 0x9365, 0xE59C, 0x9366, 0xE59D, 0x9367, 0xE59E, 0x9368, 0xE59F, 0x9369, 0xE5A0, 0x936B, 0xE5A1, 0x6FC9, 0xE5A2, 0x6FA7, + 0xE5A3, 0x6FB9, 0xE5A4, 0x6FB6, 0xE5A5, 0x6FC2, 0xE5A6, 0x6FE1, 0xE5A7, 0x6FEE, 0xE5A8, 0x6FDE, 0xE5A9, 0x6FE0, 0xE5AA, 0x6FEF, + 0xE5AB, 0x701A, 0xE5AC, 0x7023, 0xE5AD, 0x701B, 0xE5AE, 0x7039, 0xE5AF, 0x7035, 0xE5B0, 0x704F, 0xE5B1, 0x705E, 0xE5B2, 0x5B80, + 0xE5B3, 0x5B84, 0xE5B4, 0x5B95, 0xE5B5, 0x5B93, 0xE5B6, 0x5BA5, 0xE5B7, 0x5BB8, 0xE5B8, 0x752F, 0xE5B9, 0x9A9E, 0xE5BA, 0x6434, + 0xE5BB, 0x5BE4, 0xE5BC, 0x5BEE, 0xE5BD, 0x8930, 0xE5BE, 0x5BF0, 0xE5BF, 0x8E47, 0xE5C0, 0x8B07, 0xE5C1, 0x8FB6, 0xE5C2, 0x8FD3, + 0xE5C3, 0x8FD5, 0xE5C4, 0x8FE5, 0xE5C5, 0x8FEE, 0xE5C6, 0x8FE4, 0xE5C7, 0x8FE9, 0xE5C8, 0x8FE6, 0xE5C9, 0x8FF3, 0xE5CA, 0x8FE8, + 0xE5CB, 0x9005, 0xE5CC, 0x9004, 0xE5CD, 0x900B, 0xE5CE, 0x9026, 0xE5CF, 0x9011, 0xE5D0, 0x900D, 0xE5D1, 0x9016, 0xE5D2, 0x9021, + 0xE5D3, 0x9035, 0xE5D4, 0x9036, 0xE5D5, 0x902D, 0xE5D6, 0x902F, 0xE5D7, 0x9044, 0xE5D8, 0x9051, 0xE5D9, 0x9052, 0xE5DA, 0x9050, + 0xE5DB, 0x9068, 0xE5DC, 0x9058, 0xE5DD, 0x9062, 0xE5DE, 0x905B, 0xE5DF, 0x66B9, 0xE5E0, 0x9074, 0xE5E1, 0x907D, 0xE5E2, 0x9082, + 0xE5E3, 0x9088, 0xE5E4, 0x9083, 0xE5E5, 0x908B, 0xE5E6, 0x5F50, 0xE5E7, 0x5F57, 0xE5E8, 0x5F56, 0xE5E9, 0x5F58, 0xE5EA, 0x5C3B, + 0xE5EB, 0x54AB, 0xE5EC, 0x5C50, 0xE5ED, 0x5C59, 0xE5EE, 0x5B71, 0xE5EF, 0x5C63, 0xE5F0, 0x5C66, 0xE5F1, 0x7FBC, 0xE5F2, 0x5F2A, + 0xE5F3, 0x5F29, 0xE5F4, 0x5F2D, 0xE5F5, 0x8274, 0xE5F6, 0x5F3C, 0xE5F7, 0x9B3B, 0xE5F8, 0x5C6E, 0xE5F9, 0x5981, 0xE5FA, 0x5983, + 0xE5FB, 0x598D, 0xE5FC, 0x59A9, 0xE5FD, 0x59AA, 0xE5FE, 0x59A3, 0xE640, 0x936C, 0xE641, 0x936D, 0xE642, 0x936E, 0xE643, 0x936F, + 0xE644, 0x9370, 0xE645, 0x9371, 0xE646, 0x9372, 0xE647, 0x9373, 0xE648, 0x9374, 0xE649, 0x9375, 0xE64A, 0x9376, 0xE64B, 0x9377, + 0xE64C, 0x9378, 0xE64D, 0x9379, 0xE64E, 0x937A, 0xE64F, 0x937B, 0xE650, 0x937C, 0xE651, 0x937D, 0xE652, 0x937E, 0xE653, 0x937F, + 0xE654, 0x9380, 0xE655, 0x9381, 0xE656, 0x9382, 0xE657, 0x9383, 0xE658, 0x9384, 0xE659, 0x9385, 0xE65A, 0x9386, 0xE65B, 0x9387, + 0xE65C, 0x9388, 0xE65D, 0x9389, 0xE65E, 0x938A, 0xE65F, 0x938B, 0xE660, 0x938C, 0xE661, 0x938D, 0xE662, 0x938E, 0xE663, 0x9390, + 0xE664, 0x9391, 0xE665, 0x9392, 0xE666, 0x9393, 0xE667, 0x9394, 0xE668, 0x9395, 0xE669, 0x9396, 0xE66A, 0x9397, 0xE66B, 0x9398, + 0xE66C, 0x9399, 0xE66D, 0x939A, 0xE66E, 0x939B, 0xE66F, 0x939C, 0xE670, 0x939D, 0xE671, 0x939E, 0xE672, 0x939F, 0xE673, 0x93A0, + 0xE674, 0x93A1, 0xE675, 0x93A2, 0xE676, 0x93A3, 0xE677, 0x93A4, 0xE678, 0x93A5, 0xE679, 0x93A6, 0xE67A, 0x93A7, 0xE67B, 0x93A8, + 0xE67C, 0x93A9, 0xE67D, 0x93AA, 0xE67E, 0x93AB, 0xE680, 0x93AC, 0xE681, 0x93AD, 0xE682, 0x93AE, 0xE683, 0x93AF, 0xE684, 0x93B0, + 0xE685, 0x93B1, 0xE686, 0x93B2, 0xE687, 0x93B3, 0xE688, 0x93B4, 0xE689, 0x93B5, 0xE68A, 0x93B6, 0xE68B, 0x93B7, 0xE68C, 0x93B8, + 0xE68D, 0x93B9, 0xE68E, 0x93BA, 0xE68F, 0x93BB, 0xE690, 0x93BC, 0xE691, 0x93BD, 0xE692, 0x93BE, 0xE693, 0x93BF, 0xE694, 0x93C0, + 0xE695, 0x93C1, 0xE696, 0x93C2, 0xE697, 0x93C3, 0xE698, 0x93C4, 0xE699, 0x93C5, 0xE69A, 0x93C6, 0xE69B, 0x93C7, 0xE69C, 0x93C8, + 0xE69D, 0x93C9, 0xE69E, 0x93CB, 0xE69F, 0x93CC, 0xE6A0, 0x93CD, 0xE6A1, 0x5997, 0xE6A2, 0x59CA, 0xE6A3, 0x59AB, 0xE6A4, 0x599E, + 0xE6A5, 0x59A4, 0xE6A6, 0x59D2, 0xE6A7, 0x59B2, 0xE6A8, 0x59AF, 0xE6A9, 0x59D7, 0xE6AA, 0x59BE, 0xE6AB, 0x5A05, 0xE6AC, 0x5A06, + 0xE6AD, 0x59DD, 0xE6AE, 0x5A08, 0xE6AF, 0x59E3, 0xE6B0, 0x59D8, 0xE6B1, 0x59F9, 0xE6B2, 0x5A0C, 0xE6B3, 0x5A09, 0xE6B4, 0x5A32, + 0xE6B5, 0x5A34, 0xE6B6, 0x5A11, 0xE6B7, 0x5A23, 0xE6B8, 0x5A13, 0xE6B9, 0x5A40, 0xE6BA, 0x5A67, 0xE6BB, 0x5A4A, 0xE6BC, 0x5A55, + 0xE6BD, 0x5A3C, 0xE6BE, 0x5A62, 0xE6BF, 0x5A75, 0xE6C0, 0x80EC, 0xE6C1, 0x5AAA, 0xE6C2, 0x5A9B, 0xE6C3, 0x5A77, 0xE6C4, 0x5A7A, + 0xE6C5, 0x5ABE, 0xE6C6, 0x5AEB, 0xE6C7, 0x5AB2, 0xE6C8, 0x5AD2, 0xE6C9, 0x5AD4, 0xE6CA, 0x5AB8, 0xE6CB, 0x5AE0, 0xE6CC, 0x5AE3, + 0xE6CD, 0x5AF1, 0xE6CE, 0x5AD6, 0xE6CF, 0x5AE6, 0xE6D0, 0x5AD8, 0xE6D1, 0x5ADC, 0xE6D2, 0x5B09, 0xE6D3, 0x5B17, 0xE6D4, 0x5B16, + 0xE6D5, 0x5B32, 0xE6D6, 0x5B37, 0xE6D7, 0x5B40, 0xE6D8, 0x5C15, 0xE6D9, 0x5C1C, 0xE6DA, 0x5B5A, 0xE6DB, 0x5B65, 0xE6DC, 0x5B73, + 0xE6DD, 0x5B51, 0xE6DE, 0x5B53, 0xE6DF, 0x5B62, 0xE6E0, 0x9A75, 0xE6E1, 0x9A77, 0xE6E2, 0x9A78, 0xE6E3, 0x9A7A, 0xE6E4, 0x9A7F, + 0xE6E5, 0x9A7D, 0xE6E6, 0x9A80, 0xE6E7, 0x9A81, 0xE6E8, 0x9A85, 0xE6E9, 0x9A88, 0xE6EA, 0x9A8A, 0xE6EB, 0x9A90, 0xE6EC, 0x9A92, + 0xE6ED, 0x9A93, 0xE6EE, 0x9A96, 0xE6EF, 0x9A98, 0xE6F0, 0x9A9B, 0xE6F1, 0x9A9C, 0xE6F2, 0x9A9D, 0xE6F3, 0x9A9F, 0xE6F4, 0x9AA0, + 0xE6F5, 0x9AA2, 0xE6F6, 0x9AA3, 0xE6F7, 0x9AA5, 0xE6F8, 0x9AA7, 0xE6F9, 0x7E9F, 0xE6FA, 0x7EA1, 0xE6FB, 0x7EA3, 0xE6FC, 0x7EA5, + 0xE6FD, 0x7EA8, 0xE6FE, 0x7EA9, 0xE740, 0x93CE, 0xE741, 0x93CF, 0xE742, 0x93D0, 0xE743, 0x93D1, 0xE744, 0x93D2, 0xE745, 0x93D3, + 0xE746, 0x93D4, 0xE747, 0x93D5, 0xE748, 0x93D7, 0xE749, 0x93D8, 0xE74A, 0x93D9, 0xE74B, 0x93DA, 0xE74C, 0x93DB, 0xE74D, 0x93DC, + 0xE74E, 0x93DD, 0xE74F, 0x93DE, 0xE750, 0x93DF, 0xE751, 0x93E0, 0xE752, 0x93E1, 0xE753, 0x93E2, 0xE754, 0x93E3, 0xE755, 0x93E4, + 0xE756, 0x93E5, 0xE757, 0x93E6, 0xE758, 0x93E7, 0xE759, 0x93E8, 0xE75A, 0x93E9, 0xE75B, 0x93EA, 0xE75C, 0x93EB, 0xE75D, 0x93EC, + 0xE75E, 0x93ED, 0xE75F, 0x93EE, 0xE760, 0x93EF, 0xE761, 0x93F0, 0xE762, 0x93F1, 0xE763, 0x93F2, 0xE764, 0x93F3, 0xE765, 0x93F4, + 0xE766, 0x93F5, 0xE767, 0x93F6, 0xE768, 0x93F7, 0xE769, 0x93F8, 0xE76A, 0x93F9, 0xE76B, 0x93FA, 0xE76C, 0x93FB, 0xE76D, 0x93FC, + 0xE76E, 0x93FD, 0xE76F, 0x93FE, 0xE770, 0x93FF, 0xE771, 0x9400, 0xE772, 0x9401, 0xE773, 0x9402, 0xE774, 0x9403, 0xE775, 0x9404, + 0xE776, 0x9405, 0xE777, 0x9406, 0xE778, 0x9407, 0xE779, 0x9408, 0xE77A, 0x9409, 0xE77B, 0x940A, 0xE77C, 0x940B, 0xE77D, 0x940C, + 0xE77E, 0x940D, 0xE780, 0x940E, 0xE781, 0x940F, 0xE782, 0x9410, 0xE783, 0x9411, 0xE784, 0x9412, 0xE785, 0x9413, 0xE786, 0x9414, + 0xE787, 0x9415, 0xE788, 0x9416, 0xE789, 0x9417, 0xE78A, 0x9418, 0xE78B, 0x9419, 0xE78C, 0x941A, 0xE78D, 0x941B, 0xE78E, 0x941C, + 0xE78F, 0x941D, 0xE790, 0x941E, 0xE791, 0x941F, 0xE792, 0x9420, 0xE793, 0x9421, 0xE794, 0x9422, 0xE795, 0x9423, 0xE796, 0x9424, + 0xE797, 0x9425, 0xE798, 0x9426, 0xE799, 0x9427, 0xE79A, 0x9428, 0xE79B, 0x9429, 0xE79C, 0x942A, 0xE79D, 0x942B, 0xE79E, 0x942C, + 0xE79F, 0x942D, 0xE7A0, 0x942E, 0xE7A1, 0x7EAD, 0xE7A2, 0x7EB0, 0xE7A3, 0x7EBE, 0xE7A4, 0x7EC0, 0xE7A5, 0x7EC1, 0xE7A6, 0x7EC2, + 0xE7A7, 0x7EC9, 0xE7A8, 0x7ECB, 0xE7A9, 0x7ECC, 0xE7AA, 0x7ED0, 0xE7AB, 0x7ED4, 0xE7AC, 0x7ED7, 0xE7AD, 0x7EDB, 0xE7AE, 0x7EE0, + 0xE7AF, 0x7EE1, 0xE7B0, 0x7EE8, 0xE7B1, 0x7EEB, 0xE7B2, 0x7EEE, 0xE7B3, 0x7EEF, 0xE7B4, 0x7EF1, 0xE7B5, 0x7EF2, 0xE7B6, 0x7F0D, + 0xE7B7, 0x7EF6, 0xE7B8, 0x7EFA, 0xE7B9, 0x7EFB, 0xE7BA, 0x7EFE, 0xE7BB, 0x7F01, 0xE7BC, 0x7F02, 0xE7BD, 0x7F03, 0xE7BE, 0x7F07, + 0xE7BF, 0x7F08, 0xE7C0, 0x7F0B, 0xE7C1, 0x7F0C, 0xE7C2, 0x7F0F, 0xE7C3, 0x7F11, 0xE7C4, 0x7F12, 0xE7C5, 0x7F17, 0xE7C6, 0x7F19, + 0xE7C7, 0x7F1C, 0xE7C8, 0x7F1B, 0xE7C9, 0x7F1F, 0xE7CA, 0x7F21, 0xE7CB, 0x7F22, 0xE7CC, 0x7F23, 0xE7CD, 0x7F24, 0xE7CE, 0x7F25, + 0xE7CF, 0x7F26, 0xE7D0, 0x7F27, 0xE7D1, 0x7F2A, 0xE7D2, 0x7F2B, 0xE7D3, 0x7F2C, 0xE7D4, 0x7F2D, 0xE7D5, 0x7F2F, 0xE7D6, 0x7F30, + 0xE7D7, 0x7F31, 0xE7D8, 0x7F32, 0xE7D9, 0x7F33, 0xE7DA, 0x7F35, 0xE7DB, 0x5E7A, 0xE7DC, 0x757F, 0xE7DD, 0x5DDB, 0xE7DE, 0x753E, + 0xE7DF, 0x9095, 0xE7E0, 0x738E, 0xE7E1, 0x7391, 0xE7E2, 0x73AE, 0xE7E3, 0x73A2, 0xE7E4, 0x739F, 0xE7E5, 0x73CF, 0xE7E6, 0x73C2, + 0xE7E7, 0x73D1, 0xE7E8, 0x73B7, 0xE7E9, 0x73B3, 0xE7EA, 0x73C0, 0xE7EB, 0x73C9, 0xE7EC, 0x73C8, 0xE7ED, 0x73E5, 0xE7EE, 0x73D9, + 0xE7EF, 0x987C, 0xE7F0, 0x740A, 0xE7F1, 0x73E9, 0xE7F2, 0x73E7, 0xE7F3, 0x73DE, 0xE7F4, 0x73BA, 0xE7F5, 0x73F2, 0xE7F6, 0x740F, + 0xE7F7, 0x742A, 0xE7F8, 0x745B, 0xE7F9, 0x7426, 0xE7FA, 0x7425, 0xE7FB, 0x7428, 0xE7FC, 0x7430, 0xE7FD, 0x742E, 0xE7FE, 0x742C, + 0xE840, 0x942F, 0xE841, 0x9430, 0xE842, 0x9431, 0xE843, 0x9432, 0xE844, 0x9433, 0xE845, 0x9434, 0xE846, 0x9435, 0xE847, 0x9436, + 0xE848, 0x9437, 0xE849, 0x9438, 0xE84A, 0x9439, 0xE84B, 0x943A, 0xE84C, 0x943B, 0xE84D, 0x943C, 0xE84E, 0x943D, 0xE84F, 0x943F, + 0xE850, 0x9440, 0xE851, 0x9441, 0xE852, 0x9442, 0xE853, 0x9443, 0xE854, 0x9444, 0xE855, 0x9445, 0xE856, 0x9446, 0xE857, 0x9447, + 0xE858, 0x9448, 0xE859, 0x9449, 0xE85A, 0x944A, 0xE85B, 0x944B, 0xE85C, 0x944C, 0xE85D, 0x944D, 0xE85E, 0x944E, 0xE85F, 0x944F, + 0xE860, 0x9450, 0xE861, 0x9451, 0xE862, 0x9452, 0xE863, 0x9453, 0xE864, 0x9454, 0xE865, 0x9455, 0xE866, 0x9456, 0xE867, 0x9457, + 0xE868, 0x9458, 0xE869, 0x9459, 0xE86A, 0x945A, 0xE86B, 0x945B, 0xE86C, 0x945C, 0xE86D, 0x945D, 0xE86E, 0x945E, 0xE86F, 0x945F, + 0xE870, 0x9460, 0xE871, 0x9461, 0xE872, 0x9462, 0xE873, 0x9463, 0xE874, 0x9464, 0xE875, 0x9465, 0xE876, 0x9466, 0xE877, 0x9467, + 0xE878, 0x9468, 0xE879, 0x9469, 0xE87A, 0x946A, 0xE87B, 0x946C, 0xE87C, 0x946D, 0xE87D, 0x946E, 0xE87E, 0x946F, 0xE880, 0x9470, + 0xE881, 0x9471, 0xE882, 0x9472, 0xE883, 0x9473, 0xE884, 0x9474, 0xE885, 0x9475, 0xE886, 0x9476, 0xE887, 0x9477, 0xE888, 0x9478, + 0xE889, 0x9479, 0xE88A, 0x947A, 0xE88B, 0x947B, 0xE88C, 0x947C, 0xE88D, 0x947D, 0xE88E, 0x947E, 0xE88F, 0x947F, 0xE890, 0x9480, + 0xE891, 0x9481, 0xE892, 0x9482, 0xE893, 0x9483, 0xE894, 0x9484, 0xE895, 0x9491, 0xE896, 0x9496, 0xE897, 0x9498, 0xE898, 0x94C7, + 0xE899, 0x94CF, 0xE89A, 0x94D3, 0xE89B, 0x94D4, 0xE89C, 0x94DA, 0xE89D, 0x94E6, 0xE89E, 0x94FB, 0xE89F, 0x951C, 0xE8A0, 0x9520, + 0xE8A1, 0x741B, 0xE8A2, 0x741A, 0xE8A3, 0x7441, 0xE8A4, 0x745C, 0xE8A5, 0x7457, 0xE8A6, 0x7455, 0xE8A7, 0x7459, 0xE8A8, 0x7477, + 0xE8A9, 0x746D, 0xE8AA, 0x747E, 0xE8AB, 0x749C, 0xE8AC, 0x748E, 0xE8AD, 0x7480, 0xE8AE, 0x7481, 0xE8AF, 0x7487, 0xE8B0, 0x748B, + 0xE8B1, 0x749E, 0xE8B2, 0x74A8, 0xE8B3, 0x74A9, 0xE8B4, 0x7490, 0xE8B5, 0x74A7, 0xE8B6, 0x74D2, 0xE8B7, 0x74BA, 0xE8B8, 0x97EA, + 0xE8B9, 0x97EB, 0xE8BA, 0x97EC, 0xE8BB, 0x674C, 0xE8BC, 0x6753, 0xE8BD, 0x675E, 0xE8BE, 0x6748, 0xE8BF, 0x6769, 0xE8C0, 0x67A5, + 0xE8C1, 0x6787, 0xE8C2, 0x676A, 0xE8C3, 0x6773, 0xE8C4, 0x6798, 0xE8C5, 0x67A7, 0xE8C6, 0x6775, 0xE8C7, 0x67A8, 0xE8C8, 0x679E, + 0xE8C9, 0x67AD, 0xE8CA, 0x678B, 0xE8CB, 0x6777, 0xE8CC, 0x677C, 0xE8CD, 0x67F0, 0xE8CE, 0x6809, 0xE8CF, 0x67D8, 0xE8D0, 0x680A, + 0xE8D1, 0x67E9, 0xE8D2, 0x67B0, 0xE8D3, 0x680C, 0xE8D4, 0x67D9, 0xE8D5, 0x67B5, 0xE8D6, 0x67DA, 0xE8D7, 0x67B3, 0xE8D8, 0x67DD, + 0xE8D9, 0x6800, 0xE8DA, 0x67C3, 0xE8DB, 0x67B8, 0xE8DC, 0x67E2, 0xE8DD, 0x680E, 0xE8DE, 0x67C1, 0xE8DF, 0x67FD, 0xE8E0, 0x6832, + 0xE8E1, 0x6833, 0xE8E2, 0x6860, 0xE8E3, 0x6861, 0xE8E4, 0x684E, 0xE8E5, 0x6862, 0xE8E6, 0x6844, 0xE8E7, 0x6864, 0xE8E8, 0x6883, + 0xE8E9, 0x681D, 0xE8EA, 0x6855, 0xE8EB, 0x6866, 0xE8EC, 0x6841, 0xE8ED, 0x6867, 0xE8EE, 0x6840, 0xE8EF, 0x683E, 0xE8F0, 0x684A, + 0xE8F1, 0x6849, 0xE8F2, 0x6829, 0xE8F3, 0x68B5, 0xE8F4, 0x688F, 0xE8F5, 0x6874, 0xE8F6, 0x6877, 0xE8F7, 0x6893, 0xE8F8, 0x686B, + 0xE8F9, 0x68C2, 0xE8FA, 0x696E, 0xE8FB, 0x68FC, 0xE8FC, 0x691F, 0xE8FD, 0x6920, 0xE8FE, 0x68F9, 0xE940, 0x9527, 0xE941, 0x9533, + 0xE942, 0x953D, 0xE943, 0x9543, 0xE944, 0x9548, 0xE945, 0x954B, 0xE946, 0x9555, 0xE947, 0x955A, 0xE948, 0x9560, 0xE949, 0x956E, + 0xE94A, 0x9574, 0xE94B, 0x9575, 0xE94C, 0x9577, 0xE94D, 0x9578, 0xE94E, 0x9579, 0xE94F, 0x957A, 0xE950, 0x957B, 0xE951, 0x957C, + 0xE952, 0x957D, 0xE953, 0x957E, 0xE954, 0x9580, 0xE955, 0x9581, 0xE956, 0x9582, 0xE957, 0x9583, 0xE958, 0x9584, 0xE959, 0x9585, + 0xE95A, 0x9586, 0xE95B, 0x9587, 0xE95C, 0x9588, 0xE95D, 0x9589, 0xE95E, 0x958A, 0xE95F, 0x958B, 0xE960, 0x958C, 0xE961, 0x958D, + 0xE962, 0x958E, 0xE963, 0x958F, 0xE964, 0x9590, 0xE965, 0x9591, 0xE966, 0x9592, 0xE967, 0x9593, 0xE968, 0x9594, 0xE969, 0x9595, + 0xE96A, 0x9596, 0xE96B, 0x9597, 0xE96C, 0x9598, 0xE96D, 0x9599, 0xE96E, 0x959A, 0xE96F, 0x959B, 0xE970, 0x959C, 0xE971, 0x959D, + 0xE972, 0x959E, 0xE973, 0x959F, 0xE974, 0x95A0, 0xE975, 0x95A1, 0xE976, 0x95A2, 0xE977, 0x95A3, 0xE978, 0x95A4, 0xE979, 0x95A5, + 0xE97A, 0x95A6, 0xE97B, 0x95A7, 0xE97C, 0x95A8, 0xE97D, 0x95A9, 0xE97E, 0x95AA, 0xE980, 0x95AB, 0xE981, 0x95AC, 0xE982, 0x95AD, + 0xE983, 0x95AE, 0xE984, 0x95AF, 0xE985, 0x95B0, 0xE986, 0x95B1, 0xE987, 0x95B2, 0xE988, 0x95B3, 0xE989, 0x95B4, 0xE98A, 0x95B5, + 0xE98B, 0x95B6, 0xE98C, 0x95B7, 0xE98D, 0x95B8, 0xE98E, 0x95B9, 0xE98F, 0x95BA, 0xE990, 0x95BB, 0xE991, 0x95BC, 0xE992, 0x95BD, + 0xE993, 0x95BE, 0xE994, 0x95BF, 0xE995, 0x95C0, 0xE996, 0x95C1, 0xE997, 0x95C2, 0xE998, 0x95C3, 0xE999, 0x95C4, 0xE99A, 0x95C5, + 0xE99B, 0x95C6, 0xE99C, 0x95C7, 0xE99D, 0x95C8, 0xE99E, 0x95C9, 0xE99F, 0x95CA, 0xE9A0, 0x95CB, 0xE9A1, 0x6924, 0xE9A2, 0x68F0, + 0xE9A3, 0x690B, 0xE9A4, 0x6901, 0xE9A5, 0x6957, 0xE9A6, 0x68E3, 0xE9A7, 0x6910, 0xE9A8, 0x6971, 0xE9A9, 0x6939, 0xE9AA, 0x6960, + 0xE9AB, 0x6942, 0xE9AC, 0x695D, 0xE9AD, 0x6984, 0xE9AE, 0x696B, 0xE9AF, 0x6980, 0xE9B0, 0x6998, 0xE9B1, 0x6978, 0xE9B2, 0x6934, + 0xE9B3, 0x69CC, 0xE9B4, 0x6987, 0xE9B5, 0x6988, 0xE9B6, 0x69CE, 0xE9B7, 0x6989, 0xE9B8, 0x6966, 0xE9B9, 0x6963, 0xE9BA, 0x6979, + 0xE9BB, 0x699B, 0xE9BC, 0x69A7, 0xE9BD, 0x69BB, 0xE9BE, 0x69AB, 0xE9BF, 0x69AD, 0xE9C0, 0x69D4, 0xE9C1, 0x69B1, 0xE9C2, 0x69C1, + 0xE9C3, 0x69CA, 0xE9C4, 0x69DF, 0xE9C5, 0x6995, 0xE9C6, 0x69E0, 0xE9C7, 0x698D, 0xE9C8, 0x69FF, 0xE9C9, 0x6A2F, 0xE9CA, 0x69ED, + 0xE9CB, 0x6A17, 0xE9CC, 0x6A18, 0xE9CD, 0x6A65, 0xE9CE, 0x69F2, 0xE9CF, 0x6A44, 0xE9D0, 0x6A3E, 0xE9D1, 0x6AA0, 0xE9D2, 0x6A50, + 0xE9D3, 0x6A5B, 0xE9D4, 0x6A35, 0xE9D5, 0x6A8E, 0xE9D6, 0x6A79, 0xE9D7, 0x6A3D, 0xE9D8, 0x6A28, 0xE9D9, 0x6A58, 0xE9DA, 0x6A7C, + 0xE9DB, 0x6A91, 0xE9DC, 0x6A90, 0xE9DD, 0x6AA9, 0xE9DE, 0x6A97, 0xE9DF, 0x6AAB, 0xE9E0, 0x7337, 0xE9E1, 0x7352, 0xE9E2, 0x6B81, + 0xE9E3, 0x6B82, 0xE9E4, 0x6B87, 0xE9E5, 0x6B84, 0xE9E6, 0x6B92, 0xE9E7, 0x6B93, 0xE9E8, 0x6B8D, 0xE9E9, 0x6B9A, 0xE9EA, 0x6B9B, + 0xE9EB, 0x6BA1, 0xE9EC, 0x6BAA, 0xE9ED, 0x8F6B, 0xE9EE, 0x8F6D, 0xE9EF, 0x8F71, 0xE9F0, 0x8F72, 0xE9F1, 0x8F73, 0xE9F2, 0x8F75, + 0xE9F3, 0x8F76, 0xE9F4, 0x8F78, 0xE9F5, 0x8F77, 0xE9F6, 0x8F79, 0xE9F7, 0x8F7A, 0xE9F8, 0x8F7C, 0xE9F9, 0x8F7E, 0xE9FA, 0x8F81, + 0xE9FB, 0x8F82, 0xE9FC, 0x8F84, 0xE9FD, 0x8F87, 0xE9FE, 0x8F8B, 0xEA40, 0x95CC, 0xEA41, 0x95CD, 0xEA42, 0x95CE, 0xEA43, 0x95CF, + 0xEA44, 0x95D0, 0xEA45, 0x95D1, 0xEA46, 0x95D2, 0xEA47, 0x95D3, 0xEA48, 0x95D4, 0xEA49, 0x95D5, 0xEA4A, 0x95D6, 0xEA4B, 0x95D7, + 0xEA4C, 0x95D8, 0xEA4D, 0x95D9, 0xEA4E, 0x95DA, 0xEA4F, 0x95DB, 0xEA50, 0x95DC, 0xEA51, 0x95DD, 0xEA52, 0x95DE, 0xEA53, 0x95DF, + 0xEA54, 0x95E0, 0xEA55, 0x95E1, 0xEA56, 0x95E2, 0xEA57, 0x95E3, 0xEA58, 0x95E4, 0xEA59, 0x95E5, 0xEA5A, 0x95E6, 0xEA5B, 0x95E7, + 0xEA5C, 0x95EC, 0xEA5D, 0x95FF, 0xEA5E, 0x9607, 0xEA5F, 0x9613, 0xEA60, 0x9618, 0xEA61, 0x961B, 0xEA62, 0x961E, 0xEA63, 0x9620, + 0xEA64, 0x9623, 0xEA65, 0x9624, 0xEA66, 0x9625, 0xEA67, 0x9626, 0xEA68, 0x9627, 0xEA69, 0x9628, 0xEA6A, 0x9629, 0xEA6B, 0x962B, + 0xEA6C, 0x962C, 0xEA6D, 0x962D, 0xEA6E, 0x962F, 0xEA6F, 0x9630, 0xEA70, 0x9637, 0xEA71, 0x9638, 0xEA72, 0x9639, 0xEA73, 0x963A, + 0xEA74, 0x963E, 0xEA75, 0x9641, 0xEA76, 0x9643, 0xEA77, 0x964A, 0xEA78, 0x964E, 0xEA79, 0x964F, 0xEA7A, 0x9651, 0xEA7B, 0x9652, + 0xEA7C, 0x9653, 0xEA7D, 0x9656, 0xEA7E, 0x9657, 0xEA80, 0x9658, 0xEA81, 0x9659, 0xEA82, 0x965A, 0xEA83, 0x965C, 0xEA84, 0x965D, + 0xEA85, 0x965E, 0xEA86, 0x9660, 0xEA87, 0x9663, 0xEA88, 0x9665, 0xEA89, 0x9666, 0xEA8A, 0x966B, 0xEA8B, 0x966D, 0xEA8C, 0x966E, + 0xEA8D, 0x966F, 0xEA8E, 0x9670, 0xEA8F, 0x9671, 0xEA90, 0x9673, 0xEA91, 0x9678, 0xEA92, 0x9679, 0xEA93, 0x967A, 0xEA94, 0x967B, + 0xEA95, 0x967C, 0xEA96, 0x967D, 0xEA97, 0x967E, 0xEA98, 0x967F, 0xEA99, 0x9680, 0xEA9A, 0x9681, 0xEA9B, 0x9682, 0xEA9C, 0x9683, + 0xEA9D, 0x9684, 0xEA9E, 0x9687, 0xEA9F, 0x9689, 0xEAA0, 0x968A, 0xEAA1, 0x8F8D, 0xEAA2, 0x8F8E, 0xEAA3, 0x8F8F, 0xEAA4, 0x8F98, + 0xEAA5, 0x8F9A, 0xEAA6, 0x8ECE, 0xEAA7, 0x620B, 0xEAA8, 0x6217, 0xEAA9, 0x621B, 0xEAAA, 0x621F, 0xEAAB, 0x6222, 0xEAAC, 0x6221, + 0xEAAD, 0x6225, 0xEAAE, 0x6224, 0xEAAF, 0x622C, 0xEAB0, 0x81E7, 0xEAB1, 0x74EF, 0xEAB2, 0x74F4, 0xEAB3, 0x74FF, 0xEAB4, 0x750F, + 0xEAB5, 0x7511, 0xEAB6, 0x7513, 0xEAB7, 0x6534, 0xEAB8, 0x65EE, 0xEAB9, 0x65EF, 0xEABA, 0x65F0, 0xEABB, 0x660A, 0xEABC, 0x6619, + 0xEABD, 0x6772, 0xEABE, 0x6603, 0xEABF, 0x6615, 0xEAC0, 0x6600, 0xEAC1, 0x7085, 0xEAC2, 0x66F7, 0xEAC3, 0x661D, 0xEAC4, 0x6634, + 0xEAC5, 0x6631, 0xEAC6, 0x6636, 0xEAC7, 0x6635, 0xEAC8, 0x8006, 0xEAC9, 0x665F, 0xEACA, 0x6654, 0xEACB, 0x6641, 0xEACC, 0x664F, + 0xEACD, 0x6656, 0xEACE, 0x6661, 0xEACF, 0x6657, 0xEAD0, 0x6677, 0xEAD1, 0x6684, 0xEAD2, 0x668C, 0xEAD3, 0x66A7, 0xEAD4, 0x669D, + 0xEAD5, 0x66BE, 0xEAD6, 0x66DB, 0xEAD7, 0x66DC, 0xEAD8, 0x66E6, 0xEAD9, 0x66E9, 0xEADA, 0x8D32, 0xEADB, 0x8D33, 0xEADC, 0x8D36, + 0xEADD, 0x8D3B, 0xEADE, 0x8D3D, 0xEADF, 0x8D40, 0xEAE0, 0x8D45, 0xEAE1, 0x8D46, 0xEAE2, 0x8D48, 0xEAE3, 0x8D49, 0xEAE4, 0x8D47, + 0xEAE5, 0x8D4D, 0xEAE6, 0x8D55, 0xEAE7, 0x8D59, 0xEAE8, 0x89C7, 0xEAE9, 0x89CA, 0xEAEA, 0x89CB, 0xEAEB, 0x89CC, 0xEAEC, 0x89CE, + 0xEAED, 0x89CF, 0xEAEE, 0x89D0, 0xEAEF, 0x89D1, 0xEAF0, 0x726E, 0xEAF1, 0x729F, 0xEAF2, 0x725D, 0xEAF3, 0x7266, 0xEAF4, 0x726F, + 0xEAF5, 0x727E, 0xEAF6, 0x727F, 0xEAF7, 0x7284, 0xEAF8, 0x728B, 0xEAF9, 0x728D, 0xEAFA, 0x728F, 0xEAFB, 0x7292, 0xEAFC, 0x6308, + 0xEAFD, 0x6332, 0xEAFE, 0x63B0, 0xEB40, 0x968C, 0xEB41, 0x968E, 0xEB42, 0x9691, 0xEB43, 0x9692, 0xEB44, 0x9693, 0xEB45, 0x9695, + 0xEB46, 0x9696, 0xEB47, 0x969A, 0xEB48, 0x969B, 0xEB49, 0x969D, 0xEB4A, 0x969E, 0xEB4B, 0x969F, 0xEB4C, 0x96A0, 0xEB4D, 0x96A1, + 0xEB4E, 0x96A2, 0xEB4F, 0x96A3, 0xEB50, 0x96A4, 0xEB51, 0x96A5, 0xEB52, 0x96A6, 0xEB53, 0x96A8, 0xEB54, 0x96A9, 0xEB55, 0x96AA, + 0xEB56, 0x96AB, 0xEB57, 0x96AC, 0xEB58, 0x96AD, 0xEB59, 0x96AE, 0xEB5A, 0x96AF, 0xEB5B, 0x96B1, 0xEB5C, 0x96B2, 0xEB5D, 0x96B4, + 0xEB5E, 0x96B5, 0xEB5F, 0x96B7, 0xEB60, 0x96B8, 0xEB61, 0x96BA, 0xEB62, 0x96BB, 0xEB63, 0x96BF, 0xEB64, 0x96C2, 0xEB65, 0x96C3, + 0xEB66, 0x96C8, 0xEB67, 0x96CA, 0xEB68, 0x96CB, 0xEB69, 0x96D0, 0xEB6A, 0x96D1, 0xEB6B, 0x96D3, 0xEB6C, 0x96D4, 0xEB6D, 0x96D6, + 0xEB6E, 0x96D7, 0xEB6F, 0x96D8, 0xEB70, 0x96D9, 0xEB71, 0x96DA, 0xEB72, 0x96DB, 0xEB73, 0x96DC, 0xEB74, 0x96DD, 0xEB75, 0x96DE, + 0xEB76, 0x96DF, 0xEB77, 0x96E1, 0xEB78, 0x96E2, 0xEB79, 0x96E3, 0xEB7A, 0x96E4, 0xEB7B, 0x96E5, 0xEB7C, 0x96E6, 0xEB7D, 0x96E7, + 0xEB7E, 0x96EB, 0xEB80, 0x96EC, 0xEB81, 0x96ED, 0xEB82, 0x96EE, 0xEB83, 0x96F0, 0xEB84, 0x96F1, 0xEB85, 0x96F2, 0xEB86, 0x96F4, + 0xEB87, 0x96F5, 0xEB88, 0x96F8, 0xEB89, 0x96FA, 0xEB8A, 0x96FB, 0xEB8B, 0x96FC, 0xEB8C, 0x96FD, 0xEB8D, 0x96FF, 0xEB8E, 0x9702, + 0xEB8F, 0x9703, 0xEB90, 0x9705, 0xEB91, 0x970A, 0xEB92, 0x970B, 0xEB93, 0x970C, 0xEB94, 0x9710, 0xEB95, 0x9711, 0xEB96, 0x9712, + 0xEB97, 0x9714, 0xEB98, 0x9715, 0xEB99, 0x9717, 0xEB9A, 0x9718, 0xEB9B, 0x9719, 0xEB9C, 0x971A, 0xEB9D, 0x971B, 0xEB9E, 0x971D, + 0xEB9F, 0x971F, 0xEBA0, 0x9720, 0xEBA1, 0x643F, 0xEBA2, 0x64D8, 0xEBA3, 0x8004, 0xEBA4, 0x6BEA, 0xEBA5, 0x6BF3, 0xEBA6, 0x6BFD, + 0xEBA7, 0x6BF5, 0xEBA8, 0x6BF9, 0xEBA9, 0x6C05, 0xEBAA, 0x6C07, 0xEBAB, 0x6C06, 0xEBAC, 0x6C0D, 0xEBAD, 0x6C15, 0xEBAE, 0x6C18, + 0xEBAF, 0x6C19, 0xEBB0, 0x6C1A, 0xEBB1, 0x6C21, 0xEBB2, 0x6C29, 0xEBB3, 0x6C24, 0xEBB4, 0x6C2A, 0xEBB5, 0x6C32, 0xEBB6, 0x6535, + 0xEBB7, 0x6555, 0xEBB8, 0x656B, 0xEBB9, 0x724D, 0xEBBA, 0x7252, 0xEBBB, 0x7256, 0xEBBC, 0x7230, 0xEBBD, 0x8662, 0xEBBE, 0x5216, + 0xEBBF, 0x809F, 0xEBC0, 0x809C, 0xEBC1, 0x8093, 0xEBC2, 0x80BC, 0xEBC3, 0x670A, 0xEBC4, 0x80BD, 0xEBC5, 0x80B1, 0xEBC6, 0x80AB, + 0xEBC7, 0x80AD, 0xEBC8, 0x80B4, 0xEBC9, 0x80B7, 0xEBCA, 0x80E7, 0xEBCB, 0x80E8, 0xEBCC, 0x80E9, 0xEBCD, 0x80EA, 0xEBCE, 0x80DB, + 0xEBCF, 0x80C2, 0xEBD0, 0x80C4, 0xEBD1, 0x80D9, 0xEBD2, 0x80CD, 0xEBD3, 0x80D7, 0xEBD4, 0x6710, 0xEBD5, 0x80DD, 0xEBD6, 0x80EB, + 0xEBD7, 0x80F1, 0xEBD8, 0x80F4, 0xEBD9, 0x80ED, 0xEBDA, 0x810D, 0xEBDB, 0x810E, 0xEBDC, 0x80F2, 0xEBDD, 0x80FC, 0xEBDE, 0x6715, + 0xEBDF, 0x8112, 0xEBE0, 0x8C5A, 0xEBE1, 0x8136, 0xEBE2, 0x811E, 0xEBE3, 0x812C, 0xEBE4, 0x8118, 0xEBE5, 0x8132, 0xEBE6, 0x8148, + 0xEBE7, 0x814C, 0xEBE8, 0x8153, 0xEBE9, 0x8174, 0xEBEA, 0x8159, 0xEBEB, 0x815A, 0xEBEC, 0x8171, 0xEBED, 0x8160, 0xEBEE, 0x8169, + 0xEBEF, 0x817C, 0xEBF0, 0x817D, 0xEBF1, 0x816D, 0xEBF2, 0x8167, 0xEBF3, 0x584D, 0xEBF4, 0x5AB5, 0xEBF5, 0x8188, 0xEBF6, 0x8182, + 0xEBF7, 0x8191, 0xEBF8, 0x6ED5, 0xEBF9, 0x81A3, 0xEBFA, 0x81AA, 0xEBFB, 0x81CC, 0xEBFC, 0x6726, 0xEBFD, 0x81CA, 0xEBFE, 0x81BB, + 0xEC40, 0x9721, 0xEC41, 0x9722, 0xEC42, 0x9723, 0xEC43, 0x9724, 0xEC44, 0x9725, 0xEC45, 0x9726, 0xEC46, 0x9727, 0xEC47, 0x9728, + 0xEC48, 0x9729, 0xEC49, 0x972B, 0xEC4A, 0x972C, 0xEC4B, 0x972E, 0xEC4C, 0x972F, 0xEC4D, 0x9731, 0xEC4E, 0x9733, 0xEC4F, 0x9734, + 0xEC50, 0x9735, 0xEC51, 0x9736, 0xEC52, 0x9737, 0xEC53, 0x973A, 0xEC54, 0x973B, 0xEC55, 0x973C, 0xEC56, 0x973D, 0xEC57, 0x973F, + 0xEC58, 0x9740, 0xEC59, 0x9741, 0xEC5A, 0x9742, 0xEC5B, 0x9743, 0xEC5C, 0x9744, 0xEC5D, 0x9745, 0xEC5E, 0x9746, 0xEC5F, 0x9747, + 0xEC60, 0x9748, 0xEC61, 0x9749, 0xEC62, 0x974A, 0xEC63, 0x974B, 0xEC64, 0x974C, 0xEC65, 0x974D, 0xEC66, 0x974E, 0xEC67, 0x974F, + 0xEC68, 0x9750, 0xEC69, 0x9751, 0xEC6A, 0x9754, 0xEC6B, 0x9755, 0xEC6C, 0x9757, 0xEC6D, 0x9758, 0xEC6E, 0x975A, 0xEC6F, 0x975C, + 0xEC70, 0x975D, 0xEC71, 0x975F, 0xEC72, 0x9763, 0xEC73, 0x9764, 0xEC74, 0x9766, 0xEC75, 0x9767, 0xEC76, 0x9768, 0xEC77, 0x976A, + 0xEC78, 0x976B, 0xEC79, 0x976C, 0xEC7A, 0x976D, 0xEC7B, 0x976E, 0xEC7C, 0x976F, 0xEC7D, 0x9770, 0xEC7E, 0x9771, 0xEC80, 0x9772, + 0xEC81, 0x9775, 0xEC82, 0x9777, 0xEC83, 0x9778, 0xEC84, 0x9779, 0xEC85, 0x977A, 0xEC86, 0x977B, 0xEC87, 0x977D, 0xEC88, 0x977E, + 0xEC89, 0x977F, 0xEC8A, 0x9780, 0xEC8B, 0x9781, 0xEC8C, 0x9782, 0xEC8D, 0x9783, 0xEC8E, 0x9784, 0xEC8F, 0x9786, 0xEC90, 0x9787, + 0xEC91, 0x9788, 0xEC92, 0x9789, 0xEC93, 0x978A, 0xEC94, 0x978C, 0xEC95, 0x978E, 0xEC96, 0x978F, 0xEC97, 0x9790, 0xEC98, 0x9793, + 0xEC99, 0x9795, 0xEC9A, 0x9796, 0xEC9B, 0x9797, 0xEC9C, 0x9799, 0xEC9D, 0x979A, 0xEC9E, 0x979B, 0xEC9F, 0x979C, 0xECA0, 0x979D, + 0xECA1, 0x81C1, 0xECA2, 0x81A6, 0xECA3, 0x6B24, 0xECA4, 0x6B37, 0xECA5, 0x6B39, 0xECA6, 0x6B43, 0xECA7, 0x6B46, 0xECA8, 0x6B59, + 0xECA9, 0x98D1, 0xECAA, 0x98D2, 0xECAB, 0x98D3, 0xECAC, 0x98D5, 0xECAD, 0x98D9, 0xECAE, 0x98DA, 0xECAF, 0x6BB3, 0xECB0, 0x5F40, + 0xECB1, 0x6BC2, 0xECB2, 0x89F3, 0xECB3, 0x6590, 0xECB4, 0x9F51, 0xECB5, 0x6593, 0xECB6, 0x65BC, 0xECB7, 0x65C6, 0xECB8, 0x65C4, + 0xECB9, 0x65C3, 0xECBA, 0x65CC, 0xECBB, 0x65CE, 0xECBC, 0x65D2, 0xECBD, 0x65D6, 0xECBE, 0x7080, 0xECBF, 0x709C, 0xECC0, 0x7096, + 0xECC1, 0x709D, 0xECC2, 0x70BB, 0xECC3, 0x70C0, 0xECC4, 0x70B7, 0xECC5, 0x70AB, 0xECC6, 0x70B1, 0xECC7, 0x70E8, 0xECC8, 0x70CA, + 0xECC9, 0x7110, 0xECCA, 0x7113, 0xECCB, 0x7116, 0xECCC, 0x712F, 0xECCD, 0x7131, 0xECCE, 0x7173, 0xECCF, 0x715C, 0xECD0, 0x7168, + 0xECD1, 0x7145, 0xECD2, 0x7172, 0xECD3, 0x714A, 0xECD4, 0x7178, 0xECD5, 0x717A, 0xECD6, 0x7198, 0xECD7, 0x71B3, 0xECD8, 0x71B5, + 0xECD9, 0x71A8, 0xECDA, 0x71A0, 0xECDB, 0x71E0, 0xECDC, 0x71D4, 0xECDD, 0x71E7, 0xECDE, 0x71F9, 0xECDF, 0x721D, 0xECE0, 0x7228, + 0xECE1, 0x706C, 0xECE2, 0x7118, 0xECE3, 0x7166, 0xECE4, 0x71B9, 0xECE5, 0x623E, 0xECE6, 0x623D, 0xECE7, 0x6243, 0xECE8, 0x6248, + 0xECE9, 0x6249, 0xECEA, 0x793B, 0xECEB, 0x7940, 0xECEC, 0x7946, 0xECED, 0x7949, 0xECEE, 0x795B, 0xECEF, 0x795C, 0xECF0, 0x7953, + 0xECF1, 0x795A, 0xECF2, 0x7962, 0xECF3, 0x7957, 0xECF4, 0x7960, 0xECF5, 0x796F, 0xECF6, 0x7967, 0xECF7, 0x797A, 0xECF8, 0x7985, + 0xECF9, 0x798A, 0xECFA, 0x799A, 0xECFB, 0x79A7, 0xECFC, 0x79B3, 0xECFD, 0x5FD1, 0xECFE, 0x5FD0, 0xED40, 0x979E, 0xED41, 0x979F, + 0xED42, 0x97A1, 0xED43, 0x97A2, 0xED44, 0x97A4, 0xED45, 0x97A5, 0xED46, 0x97A6, 0xED47, 0x97A7, 0xED48, 0x97A8, 0xED49, 0x97A9, + 0xED4A, 0x97AA, 0xED4B, 0x97AC, 0xED4C, 0x97AE, 0xED4D, 0x97B0, 0xED4E, 0x97B1, 0xED4F, 0x97B3, 0xED50, 0x97B5, 0xED51, 0x97B6, + 0xED52, 0x97B7, 0xED53, 0x97B8, 0xED54, 0x97B9, 0xED55, 0x97BA, 0xED56, 0x97BB, 0xED57, 0x97BC, 0xED58, 0x97BD, 0xED59, 0x97BE, + 0xED5A, 0x97BF, 0xED5B, 0x97C0, 0xED5C, 0x97C1, 0xED5D, 0x97C2, 0xED5E, 0x97C3, 0xED5F, 0x97C4, 0xED60, 0x97C5, 0xED61, 0x97C6, + 0xED62, 0x97C7, 0xED63, 0x97C8, 0xED64, 0x97C9, 0xED65, 0x97CA, 0xED66, 0x97CB, 0xED67, 0x97CC, 0xED68, 0x97CD, 0xED69, 0x97CE, + 0xED6A, 0x97CF, 0xED6B, 0x97D0, 0xED6C, 0x97D1, 0xED6D, 0x97D2, 0xED6E, 0x97D3, 0xED6F, 0x97D4, 0xED70, 0x97D5, 0xED71, 0x97D6, + 0xED72, 0x97D7, 0xED73, 0x97D8, 0xED74, 0x97D9, 0xED75, 0x97DA, 0xED76, 0x97DB, 0xED77, 0x97DC, 0xED78, 0x97DD, 0xED79, 0x97DE, + 0xED7A, 0x97DF, 0xED7B, 0x97E0, 0xED7C, 0x97E1, 0xED7D, 0x97E2, 0xED7E, 0x97E3, 0xED80, 0x97E4, 0xED81, 0x97E5, 0xED82, 0x97E8, + 0xED83, 0x97EE, 0xED84, 0x97EF, 0xED85, 0x97F0, 0xED86, 0x97F1, 0xED87, 0x97F2, 0xED88, 0x97F4, 0xED89, 0x97F7, 0xED8A, 0x97F8, + 0xED8B, 0x97F9, 0xED8C, 0x97FA, 0xED8D, 0x97FB, 0xED8E, 0x97FC, 0xED8F, 0x97FD, 0xED90, 0x97FE, 0xED91, 0x97FF, 0xED92, 0x9800, + 0xED93, 0x9801, 0xED94, 0x9802, 0xED95, 0x9803, 0xED96, 0x9804, 0xED97, 0x9805, 0xED98, 0x9806, 0xED99, 0x9807, 0xED9A, 0x9808, + 0xED9B, 0x9809, 0xED9C, 0x980A, 0xED9D, 0x980B, 0xED9E, 0x980C, 0xED9F, 0x980D, 0xEDA0, 0x980E, 0xEDA1, 0x603C, 0xEDA2, 0x605D, + 0xEDA3, 0x605A, 0xEDA4, 0x6067, 0xEDA5, 0x6041, 0xEDA6, 0x6059, 0xEDA7, 0x6063, 0xEDA8, 0x60AB, 0xEDA9, 0x6106, 0xEDAA, 0x610D, + 0xEDAB, 0x615D, 0xEDAC, 0x61A9, 0xEDAD, 0x619D, 0xEDAE, 0x61CB, 0xEDAF, 0x61D1, 0xEDB0, 0x6206, 0xEDB1, 0x8080, 0xEDB2, 0x807F, + 0xEDB3, 0x6C93, 0xEDB4, 0x6CF6, 0xEDB5, 0x6DFC, 0xEDB6, 0x77F6, 0xEDB7, 0x77F8, 0xEDB8, 0x7800, 0xEDB9, 0x7809, 0xEDBA, 0x7817, + 0xEDBB, 0x7818, 0xEDBC, 0x7811, 0xEDBD, 0x65AB, 0xEDBE, 0x782D, 0xEDBF, 0x781C, 0xEDC0, 0x781D, 0xEDC1, 0x7839, 0xEDC2, 0x783A, + 0xEDC3, 0x783B, 0xEDC4, 0x781F, 0xEDC5, 0x783C, 0xEDC6, 0x7825, 0xEDC7, 0x782C, 0xEDC8, 0x7823, 0xEDC9, 0x7829, 0xEDCA, 0x784E, + 0xEDCB, 0x786D, 0xEDCC, 0x7856, 0xEDCD, 0x7857, 0xEDCE, 0x7826, 0xEDCF, 0x7850, 0xEDD0, 0x7847, 0xEDD1, 0x784C, 0xEDD2, 0x786A, + 0xEDD3, 0x789B, 0xEDD4, 0x7893, 0xEDD5, 0x789A, 0xEDD6, 0x7887, 0xEDD7, 0x789C, 0xEDD8, 0x78A1, 0xEDD9, 0x78A3, 0xEDDA, 0x78B2, + 0xEDDB, 0x78B9, 0xEDDC, 0x78A5, 0xEDDD, 0x78D4, 0xEDDE, 0x78D9, 0xEDDF, 0x78C9, 0xEDE0, 0x78EC, 0xEDE1, 0x78F2, 0xEDE2, 0x7905, + 0xEDE3, 0x78F4, 0xEDE4, 0x7913, 0xEDE5, 0x7924, 0xEDE6, 0x791E, 0xEDE7, 0x7934, 0xEDE8, 0x9F9B, 0xEDE9, 0x9EF9, 0xEDEA, 0x9EFB, + 0xEDEB, 0x9EFC, 0xEDEC, 0x76F1, 0xEDED, 0x7704, 0xEDEE, 0x770D, 0xEDEF, 0x76F9, 0xEDF0, 0x7707, 0xEDF1, 0x7708, 0xEDF2, 0x771A, + 0xEDF3, 0x7722, 0xEDF4, 0x7719, 0xEDF5, 0x772D, 0xEDF6, 0x7726, 0xEDF7, 0x7735, 0xEDF8, 0x7738, 0xEDF9, 0x7750, 0xEDFA, 0x7751, + 0xEDFB, 0x7747, 0xEDFC, 0x7743, 0xEDFD, 0x775A, 0xEDFE, 0x7768, 0xEE40, 0x980F, 0xEE41, 0x9810, 0xEE42, 0x9811, 0xEE43, 0x9812, + 0xEE44, 0x9813, 0xEE45, 0x9814, 0xEE46, 0x9815, 0xEE47, 0x9816, 0xEE48, 0x9817, 0xEE49, 0x9818, 0xEE4A, 0x9819, 0xEE4B, 0x981A, + 0xEE4C, 0x981B, 0xEE4D, 0x981C, 0xEE4E, 0x981D, 0xEE4F, 0x981E, 0xEE50, 0x981F, 0xEE51, 0x9820, 0xEE52, 0x9821, 0xEE53, 0x9822, + 0xEE54, 0x9823, 0xEE55, 0x9824, 0xEE56, 0x9825, 0xEE57, 0x9826, 0xEE58, 0x9827, 0xEE59, 0x9828, 0xEE5A, 0x9829, 0xEE5B, 0x982A, + 0xEE5C, 0x982B, 0xEE5D, 0x982C, 0xEE5E, 0x982D, 0xEE5F, 0x982E, 0xEE60, 0x982F, 0xEE61, 0x9830, 0xEE62, 0x9831, 0xEE63, 0x9832, + 0xEE64, 0x9833, 0xEE65, 0x9834, 0xEE66, 0x9835, 0xEE67, 0x9836, 0xEE68, 0x9837, 0xEE69, 0x9838, 0xEE6A, 0x9839, 0xEE6B, 0x983A, + 0xEE6C, 0x983B, 0xEE6D, 0x983C, 0xEE6E, 0x983D, 0xEE6F, 0x983E, 0xEE70, 0x983F, 0xEE71, 0x9840, 0xEE72, 0x9841, 0xEE73, 0x9842, + 0xEE74, 0x9843, 0xEE75, 0x9844, 0xEE76, 0x9845, 0xEE77, 0x9846, 0xEE78, 0x9847, 0xEE79, 0x9848, 0xEE7A, 0x9849, 0xEE7B, 0x984A, + 0xEE7C, 0x984B, 0xEE7D, 0x984C, 0xEE7E, 0x984D, 0xEE80, 0x984E, 0xEE81, 0x984F, 0xEE82, 0x9850, 0xEE83, 0x9851, 0xEE84, 0x9852, + 0xEE85, 0x9853, 0xEE86, 0x9854, 0xEE87, 0x9855, 0xEE88, 0x9856, 0xEE89, 0x9857, 0xEE8A, 0x9858, 0xEE8B, 0x9859, 0xEE8C, 0x985A, + 0xEE8D, 0x985B, 0xEE8E, 0x985C, 0xEE8F, 0x985D, 0xEE90, 0x985E, 0xEE91, 0x985F, 0xEE92, 0x9860, 0xEE93, 0x9861, 0xEE94, 0x9862, + 0xEE95, 0x9863, 0xEE96, 0x9864, 0xEE97, 0x9865, 0xEE98, 0x9866, 0xEE99, 0x9867, 0xEE9A, 0x9868, 0xEE9B, 0x9869, 0xEE9C, 0x986A, + 0xEE9D, 0x986B, 0xEE9E, 0x986C, 0xEE9F, 0x986D, 0xEEA0, 0x986E, 0xEEA1, 0x7762, 0xEEA2, 0x7765, 0xEEA3, 0x777F, 0xEEA4, 0x778D, + 0xEEA5, 0x777D, 0xEEA6, 0x7780, 0xEEA7, 0x778C, 0xEEA8, 0x7791, 0xEEA9, 0x779F, 0xEEAA, 0x77A0, 0xEEAB, 0x77B0, 0xEEAC, 0x77B5, + 0xEEAD, 0x77BD, 0xEEAE, 0x753A, 0xEEAF, 0x7540, 0xEEB0, 0x754E, 0xEEB1, 0x754B, 0xEEB2, 0x7548, 0xEEB3, 0x755B, 0xEEB4, 0x7572, + 0xEEB5, 0x7579, 0xEEB6, 0x7583, 0xEEB7, 0x7F58, 0xEEB8, 0x7F61, 0xEEB9, 0x7F5F, 0xEEBA, 0x8A48, 0xEEBB, 0x7F68, 0xEEBC, 0x7F74, + 0xEEBD, 0x7F71, 0xEEBE, 0x7F79, 0xEEBF, 0x7F81, 0xEEC0, 0x7F7E, 0xEEC1, 0x76CD, 0xEEC2, 0x76E5, 0xEEC3, 0x8832, 0xEEC4, 0x9485, + 0xEEC5, 0x9486, 0xEEC6, 0x9487, 0xEEC7, 0x948B, 0xEEC8, 0x948A, 0xEEC9, 0x948C, 0xEECA, 0x948D, 0xEECB, 0x948F, 0xEECC, 0x9490, + 0xEECD, 0x9494, 0xEECE, 0x9497, 0xEECF, 0x9495, 0xEED0, 0x949A, 0xEED1, 0x949B, 0xEED2, 0x949C, 0xEED3, 0x94A3, 0xEED4, 0x94A4, + 0xEED5, 0x94AB, 0xEED6, 0x94AA, 0xEED7, 0x94AD, 0xEED8, 0x94AC, 0xEED9, 0x94AF, 0xEEDA, 0x94B0, 0xEEDB, 0x94B2, 0xEEDC, 0x94B4, + 0xEEDD, 0x94B6, 0xEEDE, 0x94B7, 0xEEDF, 0x94B8, 0xEEE0, 0x94B9, 0xEEE1, 0x94BA, 0xEEE2, 0x94BC, 0xEEE3, 0x94BD, 0xEEE4, 0x94BF, + 0xEEE5, 0x94C4, 0xEEE6, 0x94C8, 0xEEE7, 0x94C9, 0xEEE8, 0x94CA, 0xEEE9, 0x94CB, 0xEEEA, 0x94CC, 0xEEEB, 0x94CD, 0xEEEC, 0x94CE, + 0xEEED, 0x94D0, 0xEEEE, 0x94D1, 0xEEEF, 0x94D2, 0xEEF0, 0x94D5, 0xEEF1, 0x94D6, 0xEEF2, 0x94D7, 0xEEF3, 0x94D9, 0xEEF4, 0x94D8, + 0xEEF5, 0x94DB, 0xEEF6, 0x94DE, 0xEEF7, 0x94DF, 0xEEF8, 0x94E0, 0xEEF9, 0x94E2, 0xEEFA, 0x94E4, 0xEEFB, 0x94E5, 0xEEFC, 0x94E7, + 0xEEFD, 0x94E8, 0xEEFE, 0x94EA, 0xEF40, 0x986F, 0xEF41, 0x9870, 0xEF42, 0x9871, 0xEF43, 0x9872, 0xEF44, 0x9873, 0xEF45, 0x9874, + 0xEF46, 0x988B, 0xEF47, 0x988E, 0xEF48, 0x9892, 0xEF49, 0x9895, 0xEF4A, 0x9899, 0xEF4B, 0x98A3, 0xEF4C, 0x98A8, 0xEF4D, 0x98A9, + 0xEF4E, 0x98AA, 0xEF4F, 0x98AB, 0xEF50, 0x98AC, 0xEF51, 0x98AD, 0xEF52, 0x98AE, 0xEF53, 0x98AF, 0xEF54, 0x98B0, 0xEF55, 0x98B1, + 0xEF56, 0x98B2, 0xEF57, 0x98B3, 0xEF58, 0x98B4, 0xEF59, 0x98B5, 0xEF5A, 0x98B6, 0xEF5B, 0x98B7, 0xEF5C, 0x98B8, 0xEF5D, 0x98B9, + 0xEF5E, 0x98BA, 0xEF5F, 0x98BB, 0xEF60, 0x98BC, 0xEF61, 0x98BD, 0xEF62, 0x98BE, 0xEF63, 0x98BF, 0xEF64, 0x98C0, 0xEF65, 0x98C1, + 0xEF66, 0x98C2, 0xEF67, 0x98C3, 0xEF68, 0x98C4, 0xEF69, 0x98C5, 0xEF6A, 0x98C6, 0xEF6B, 0x98C7, 0xEF6C, 0x98C8, 0xEF6D, 0x98C9, + 0xEF6E, 0x98CA, 0xEF6F, 0x98CB, 0xEF70, 0x98CC, 0xEF71, 0x98CD, 0xEF72, 0x98CF, 0xEF73, 0x98D0, 0xEF74, 0x98D4, 0xEF75, 0x98D6, + 0xEF76, 0x98D7, 0xEF77, 0x98DB, 0xEF78, 0x98DC, 0xEF79, 0x98DD, 0xEF7A, 0x98E0, 0xEF7B, 0x98E1, 0xEF7C, 0x98E2, 0xEF7D, 0x98E3, + 0xEF7E, 0x98E4, 0xEF80, 0x98E5, 0xEF81, 0x98E6, 0xEF82, 0x98E9, 0xEF83, 0x98EA, 0xEF84, 0x98EB, 0xEF85, 0x98EC, 0xEF86, 0x98ED, + 0xEF87, 0x98EE, 0xEF88, 0x98EF, 0xEF89, 0x98F0, 0xEF8A, 0x98F1, 0xEF8B, 0x98F2, 0xEF8C, 0x98F3, 0xEF8D, 0x98F4, 0xEF8E, 0x98F5, + 0xEF8F, 0x98F6, 0xEF90, 0x98F7, 0xEF91, 0x98F8, 0xEF92, 0x98F9, 0xEF93, 0x98FA, 0xEF94, 0x98FB, 0xEF95, 0x98FC, 0xEF96, 0x98FD, + 0xEF97, 0x98FE, 0xEF98, 0x98FF, 0xEF99, 0x9900, 0xEF9A, 0x9901, 0xEF9B, 0x9902, 0xEF9C, 0x9903, 0xEF9D, 0x9904, 0xEF9E, 0x9905, + 0xEF9F, 0x9906, 0xEFA0, 0x9907, 0xEFA1, 0x94E9, 0xEFA2, 0x94EB, 0xEFA3, 0x94EE, 0xEFA4, 0x94EF, 0xEFA5, 0x94F3, 0xEFA6, 0x94F4, + 0xEFA7, 0x94F5, 0xEFA8, 0x94F7, 0xEFA9, 0x94F9, 0xEFAA, 0x94FC, 0xEFAB, 0x94FD, 0xEFAC, 0x94FF, 0xEFAD, 0x9503, 0xEFAE, 0x9502, + 0xEFAF, 0x9506, 0xEFB0, 0x9507, 0xEFB1, 0x9509, 0xEFB2, 0x950A, 0xEFB3, 0x950D, 0xEFB4, 0x950E, 0xEFB5, 0x950F, 0xEFB6, 0x9512, + 0xEFB7, 0x9513, 0xEFB8, 0x9514, 0xEFB9, 0x9515, 0xEFBA, 0x9516, 0xEFBB, 0x9518, 0xEFBC, 0x951B, 0xEFBD, 0x951D, 0xEFBE, 0x951E, + 0xEFBF, 0x951F, 0xEFC0, 0x9522, 0xEFC1, 0x952A, 0xEFC2, 0x952B, 0xEFC3, 0x9529, 0xEFC4, 0x952C, 0xEFC5, 0x9531, 0xEFC6, 0x9532, + 0xEFC7, 0x9534, 0xEFC8, 0x9536, 0xEFC9, 0x9537, 0xEFCA, 0x9538, 0xEFCB, 0x953C, 0xEFCC, 0x953E, 0xEFCD, 0x953F, 0xEFCE, 0x9542, + 0xEFCF, 0x9535, 0xEFD0, 0x9544, 0xEFD1, 0x9545, 0xEFD2, 0x9546, 0xEFD3, 0x9549, 0xEFD4, 0x954C, 0xEFD5, 0x954E, 0xEFD6, 0x954F, + 0xEFD7, 0x9552, 0xEFD8, 0x9553, 0xEFD9, 0x9554, 0xEFDA, 0x9556, 0xEFDB, 0x9557, 0xEFDC, 0x9558, 0xEFDD, 0x9559, 0xEFDE, 0x955B, + 0xEFDF, 0x955E, 0xEFE0, 0x955F, 0xEFE1, 0x955D, 0xEFE2, 0x9561, 0xEFE3, 0x9562, 0xEFE4, 0x9564, 0xEFE5, 0x9565, 0xEFE6, 0x9566, + 0xEFE7, 0x9567, 0xEFE8, 0x9568, 0xEFE9, 0x9569, 0xEFEA, 0x956A, 0xEFEB, 0x956B, 0xEFEC, 0x956C, 0xEFED, 0x956F, 0xEFEE, 0x9571, + 0xEFEF, 0x9572, 0xEFF0, 0x9573, 0xEFF1, 0x953A, 0xEFF2, 0x77E7, 0xEFF3, 0x77EC, 0xEFF4, 0x96C9, 0xEFF5, 0x79D5, 0xEFF6, 0x79ED, + 0xEFF7, 0x79E3, 0xEFF8, 0x79EB, 0xEFF9, 0x7A06, 0xEFFA, 0x5D47, 0xEFFB, 0x7A03, 0xEFFC, 0x7A02, 0xEFFD, 0x7A1E, 0xEFFE, 0x7A14, + 0xF040, 0x9908, 0xF041, 0x9909, 0xF042, 0x990A, 0xF043, 0x990B, 0xF044, 0x990C, 0xF045, 0x990E, 0xF046, 0x990F, 0xF047, 0x9911, + 0xF048, 0x9912, 0xF049, 0x9913, 0xF04A, 0x9914, 0xF04B, 0x9915, 0xF04C, 0x9916, 0xF04D, 0x9917, 0xF04E, 0x9918, 0xF04F, 0x9919, + 0xF050, 0x991A, 0xF051, 0x991B, 0xF052, 0x991C, 0xF053, 0x991D, 0xF054, 0x991E, 0xF055, 0x991F, 0xF056, 0x9920, 0xF057, 0x9921, + 0xF058, 0x9922, 0xF059, 0x9923, 0xF05A, 0x9924, 0xF05B, 0x9925, 0xF05C, 0x9926, 0xF05D, 0x9927, 0xF05E, 0x9928, 0xF05F, 0x9929, + 0xF060, 0x992A, 0xF061, 0x992B, 0xF062, 0x992C, 0xF063, 0x992D, 0xF064, 0x992F, 0xF065, 0x9930, 0xF066, 0x9931, 0xF067, 0x9932, + 0xF068, 0x9933, 0xF069, 0x9934, 0xF06A, 0x9935, 0xF06B, 0x9936, 0xF06C, 0x9937, 0xF06D, 0x9938, 0xF06E, 0x9939, 0xF06F, 0x993A, + 0xF070, 0x993B, 0xF071, 0x993C, 0xF072, 0x993D, 0xF073, 0x993E, 0xF074, 0x993F, 0xF075, 0x9940, 0xF076, 0x9941, 0xF077, 0x9942, + 0xF078, 0x9943, 0xF079, 0x9944, 0xF07A, 0x9945, 0xF07B, 0x9946, 0xF07C, 0x9947, 0xF07D, 0x9948, 0xF07E, 0x9949, 0xF080, 0x994A, + 0xF081, 0x994B, 0xF082, 0x994C, 0xF083, 0x994D, 0xF084, 0x994E, 0xF085, 0x994F, 0xF086, 0x9950, 0xF087, 0x9951, 0xF088, 0x9952, + 0xF089, 0x9953, 0xF08A, 0x9956, 0xF08B, 0x9957, 0xF08C, 0x9958, 0xF08D, 0x9959, 0xF08E, 0x995A, 0xF08F, 0x995B, 0xF090, 0x995C, + 0xF091, 0x995D, 0xF092, 0x995E, 0xF093, 0x995F, 0xF094, 0x9960, 0xF095, 0x9961, 0xF096, 0x9962, 0xF097, 0x9964, 0xF098, 0x9966, + 0xF099, 0x9973, 0xF09A, 0x9978, 0xF09B, 0x9979, 0xF09C, 0x997B, 0xF09D, 0x997E, 0xF09E, 0x9982, 0xF09F, 0x9983, 0xF0A0, 0x9989, + 0xF0A1, 0x7A39, 0xF0A2, 0x7A37, 0xF0A3, 0x7A51, 0xF0A4, 0x9ECF, 0xF0A5, 0x99A5, 0xF0A6, 0x7A70, 0xF0A7, 0x7688, 0xF0A8, 0x768E, + 0xF0A9, 0x7693, 0xF0AA, 0x7699, 0xF0AB, 0x76A4, 0xF0AC, 0x74DE, 0xF0AD, 0x74E0, 0xF0AE, 0x752C, 0xF0AF, 0x9E20, 0xF0B0, 0x9E22, + 0xF0B1, 0x9E28, 0xF0B2, 0x9E29, 0xF0B3, 0x9E2A, 0xF0B4, 0x9E2B, 0xF0B5, 0x9E2C, 0xF0B6, 0x9E32, 0xF0B7, 0x9E31, 0xF0B8, 0x9E36, + 0xF0B9, 0x9E38, 0xF0BA, 0x9E37, 0xF0BB, 0x9E39, 0xF0BC, 0x9E3A, 0xF0BD, 0x9E3E, 0xF0BE, 0x9E41, 0xF0BF, 0x9E42, 0xF0C0, 0x9E44, + 0xF0C1, 0x9E46, 0xF0C2, 0x9E47, 0xF0C3, 0x9E48, 0xF0C4, 0x9E49, 0xF0C5, 0x9E4B, 0xF0C6, 0x9E4C, 0xF0C7, 0x9E4E, 0xF0C8, 0x9E51, + 0xF0C9, 0x9E55, 0xF0CA, 0x9E57, 0xF0CB, 0x9E5A, 0xF0CC, 0x9E5B, 0xF0CD, 0x9E5C, 0xF0CE, 0x9E5E, 0xF0CF, 0x9E63, 0xF0D0, 0x9E66, + 0xF0D1, 0x9E67, 0xF0D2, 0x9E68, 0xF0D3, 0x9E69, 0xF0D4, 0x9E6A, 0xF0D5, 0x9E6B, 0xF0D6, 0x9E6C, 0xF0D7, 0x9E71, 0xF0D8, 0x9E6D, + 0xF0D9, 0x9E73, 0xF0DA, 0x7592, 0xF0DB, 0x7594, 0xF0DC, 0x7596, 0xF0DD, 0x75A0, 0xF0DE, 0x759D, 0xF0DF, 0x75AC, 0xF0E0, 0x75A3, + 0xF0E1, 0x75B3, 0xF0E2, 0x75B4, 0xF0E3, 0x75B8, 0xF0E4, 0x75C4, 0xF0E5, 0x75B1, 0xF0E6, 0x75B0, 0xF0E7, 0x75C3, 0xF0E8, 0x75C2, + 0xF0E9, 0x75D6, 0xF0EA, 0x75CD, 0xF0EB, 0x75E3, 0xF0EC, 0x75E8, 0xF0ED, 0x75E6, 0xF0EE, 0x75E4, 0xF0EF, 0x75EB, 0xF0F0, 0x75E7, + 0xF0F1, 0x7603, 0xF0F2, 0x75F1, 0xF0F3, 0x75FC, 0xF0F4, 0x75FF, 0xF0F5, 0x7610, 0xF0F6, 0x7600, 0xF0F7, 0x7605, 0xF0F8, 0x760C, + 0xF0F9, 0x7617, 0xF0FA, 0x760A, 0xF0FB, 0x7625, 0xF0FC, 0x7618, 0xF0FD, 0x7615, 0xF0FE, 0x7619, 0xF140, 0x998C, 0xF141, 0x998E, + 0xF142, 0x999A, 0xF143, 0x999B, 0xF144, 0x999C, 0xF145, 0x999D, 0xF146, 0x999E, 0xF147, 0x999F, 0xF148, 0x99A0, 0xF149, 0x99A1, + 0xF14A, 0x99A2, 0xF14B, 0x99A3, 0xF14C, 0x99A4, 0xF14D, 0x99A6, 0xF14E, 0x99A7, 0xF14F, 0x99A9, 0xF150, 0x99AA, 0xF151, 0x99AB, + 0xF152, 0x99AC, 0xF153, 0x99AD, 0xF154, 0x99AE, 0xF155, 0x99AF, 0xF156, 0x99B0, 0xF157, 0x99B1, 0xF158, 0x99B2, 0xF159, 0x99B3, + 0xF15A, 0x99B4, 0xF15B, 0x99B5, 0xF15C, 0x99B6, 0xF15D, 0x99B7, 0xF15E, 0x99B8, 0xF15F, 0x99B9, 0xF160, 0x99BA, 0xF161, 0x99BB, + 0xF162, 0x99BC, 0xF163, 0x99BD, 0xF164, 0x99BE, 0xF165, 0x99BF, 0xF166, 0x99C0, 0xF167, 0x99C1, 0xF168, 0x99C2, 0xF169, 0x99C3, + 0xF16A, 0x99C4, 0xF16B, 0x99C5, 0xF16C, 0x99C6, 0xF16D, 0x99C7, 0xF16E, 0x99C8, 0xF16F, 0x99C9, 0xF170, 0x99CA, 0xF171, 0x99CB, + 0xF172, 0x99CC, 0xF173, 0x99CD, 0xF174, 0x99CE, 0xF175, 0x99CF, 0xF176, 0x99D0, 0xF177, 0x99D1, 0xF178, 0x99D2, 0xF179, 0x99D3, + 0xF17A, 0x99D4, 0xF17B, 0x99D5, 0xF17C, 0x99D6, 0xF17D, 0x99D7, 0xF17E, 0x99D8, 0xF180, 0x99D9, 0xF181, 0x99DA, 0xF182, 0x99DB, + 0xF183, 0x99DC, 0xF184, 0x99DD, 0xF185, 0x99DE, 0xF186, 0x99DF, 0xF187, 0x99E0, 0xF188, 0x99E1, 0xF189, 0x99E2, 0xF18A, 0x99E3, + 0xF18B, 0x99E4, 0xF18C, 0x99E5, 0xF18D, 0x99E6, 0xF18E, 0x99E7, 0xF18F, 0x99E8, 0xF190, 0x99E9, 0xF191, 0x99EA, 0xF192, 0x99EB, + 0xF193, 0x99EC, 0xF194, 0x99ED, 0xF195, 0x99EE, 0xF196, 0x99EF, 0xF197, 0x99F0, 0xF198, 0x99F1, 0xF199, 0x99F2, 0xF19A, 0x99F3, + 0xF19B, 0x99F4, 0xF19C, 0x99F5, 0xF19D, 0x99F6, 0xF19E, 0x99F7, 0xF19F, 0x99F8, 0xF1A0, 0x99F9, 0xF1A1, 0x761B, 0xF1A2, 0x763C, + 0xF1A3, 0x7622, 0xF1A4, 0x7620, 0xF1A5, 0x7640, 0xF1A6, 0x762D, 0xF1A7, 0x7630, 0xF1A8, 0x763F, 0xF1A9, 0x7635, 0xF1AA, 0x7643, + 0xF1AB, 0x763E, 0xF1AC, 0x7633, 0xF1AD, 0x764D, 0xF1AE, 0x765E, 0xF1AF, 0x7654, 0xF1B0, 0x765C, 0xF1B1, 0x7656, 0xF1B2, 0x766B, + 0xF1B3, 0x766F, 0xF1B4, 0x7FCA, 0xF1B5, 0x7AE6, 0xF1B6, 0x7A78, 0xF1B7, 0x7A79, 0xF1B8, 0x7A80, 0xF1B9, 0x7A86, 0xF1BA, 0x7A88, + 0xF1BB, 0x7A95, 0xF1BC, 0x7AA6, 0xF1BD, 0x7AA0, 0xF1BE, 0x7AAC, 0xF1BF, 0x7AA8, 0xF1C0, 0x7AAD, 0xF1C1, 0x7AB3, 0xF1C2, 0x8864, + 0xF1C3, 0x8869, 0xF1C4, 0x8872, 0xF1C5, 0x887D, 0xF1C6, 0x887F, 0xF1C7, 0x8882, 0xF1C8, 0x88A2, 0xF1C9, 0x88C6, 0xF1CA, 0x88B7, + 0xF1CB, 0x88BC, 0xF1CC, 0x88C9, 0xF1CD, 0x88E2, 0xF1CE, 0x88CE, 0xF1CF, 0x88E3, 0xF1D0, 0x88E5, 0xF1D1, 0x88F1, 0xF1D2, 0x891A, + 0xF1D3, 0x88FC, 0xF1D4, 0x88E8, 0xF1D5, 0x88FE, 0xF1D6, 0x88F0, 0xF1D7, 0x8921, 0xF1D8, 0x8919, 0xF1D9, 0x8913, 0xF1DA, 0x891B, + 0xF1DB, 0x890A, 0xF1DC, 0x8934, 0xF1DD, 0x892B, 0xF1DE, 0x8936, 0xF1DF, 0x8941, 0xF1E0, 0x8966, 0xF1E1, 0x897B, 0xF1E2, 0x758B, + 0xF1E3, 0x80E5, 0xF1E4, 0x76B2, 0xF1E5, 0x76B4, 0xF1E6, 0x77DC, 0xF1E7, 0x8012, 0xF1E8, 0x8014, 0xF1E9, 0x8016, 0xF1EA, 0x801C, + 0xF1EB, 0x8020, 0xF1EC, 0x8022, 0xF1ED, 0x8025, 0xF1EE, 0x8026, 0xF1EF, 0x8027, 0xF1F0, 0x8029, 0xF1F1, 0x8028, 0xF1F2, 0x8031, + 0xF1F3, 0x800B, 0xF1F4, 0x8035, 0xF1F5, 0x8043, 0xF1F6, 0x8046, 0xF1F7, 0x804D, 0xF1F8, 0x8052, 0xF1F9, 0x8069, 0xF1FA, 0x8071, + 0xF1FB, 0x8983, 0xF1FC, 0x9878, 0xF1FD, 0x9880, 0xF1FE, 0x9883, 0xF240, 0x99FA, 0xF241, 0x99FB, 0xF242, 0x99FC, 0xF243, 0x99FD, + 0xF244, 0x99FE, 0xF245, 0x99FF, 0xF246, 0x9A00, 0xF247, 0x9A01, 0xF248, 0x9A02, 0xF249, 0x9A03, 0xF24A, 0x9A04, 0xF24B, 0x9A05, + 0xF24C, 0x9A06, 0xF24D, 0x9A07, 0xF24E, 0x9A08, 0xF24F, 0x9A09, 0xF250, 0x9A0A, 0xF251, 0x9A0B, 0xF252, 0x9A0C, 0xF253, 0x9A0D, + 0xF254, 0x9A0E, 0xF255, 0x9A0F, 0xF256, 0x9A10, 0xF257, 0x9A11, 0xF258, 0x9A12, 0xF259, 0x9A13, 0xF25A, 0x9A14, 0xF25B, 0x9A15, + 0xF25C, 0x9A16, 0xF25D, 0x9A17, 0xF25E, 0x9A18, 0xF25F, 0x9A19, 0xF260, 0x9A1A, 0xF261, 0x9A1B, 0xF262, 0x9A1C, 0xF263, 0x9A1D, + 0xF264, 0x9A1E, 0xF265, 0x9A1F, 0xF266, 0x9A20, 0xF267, 0x9A21, 0xF268, 0x9A22, 0xF269, 0x9A23, 0xF26A, 0x9A24, 0xF26B, 0x9A25, + 0xF26C, 0x9A26, 0xF26D, 0x9A27, 0xF26E, 0x9A28, 0xF26F, 0x9A29, 0xF270, 0x9A2A, 0xF271, 0x9A2B, 0xF272, 0x9A2C, 0xF273, 0x9A2D, + 0xF274, 0x9A2E, 0xF275, 0x9A2F, 0xF276, 0x9A30, 0xF277, 0x9A31, 0xF278, 0x9A32, 0xF279, 0x9A33, 0xF27A, 0x9A34, 0xF27B, 0x9A35, + 0xF27C, 0x9A36, 0xF27D, 0x9A37, 0xF27E, 0x9A38, 0xF280, 0x9A39, 0xF281, 0x9A3A, 0xF282, 0x9A3B, 0xF283, 0x9A3C, 0xF284, 0x9A3D, + 0xF285, 0x9A3E, 0xF286, 0x9A3F, 0xF287, 0x9A40, 0xF288, 0x9A41, 0xF289, 0x9A42, 0xF28A, 0x9A43, 0xF28B, 0x9A44, 0xF28C, 0x9A45, + 0xF28D, 0x9A46, 0xF28E, 0x9A47, 0xF28F, 0x9A48, 0xF290, 0x9A49, 0xF291, 0x9A4A, 0xF292, 0x9A4B, 0xF293, 0x9A4C, 0xF294, 0x9A4D, + 0xF295, 0x9A4E, 0xF296, 0x9A4F, 0xF297, 0x9A50, 0xF298, 0x9A51, 0xF299, 0x9A52, 0xF29A, 0x9A53, 0xF29B, 0x9A54, 0xF29C, 0x9A55, + 0xF29D, 0x9A56, 0xF29E, 0x9A57, 0xF29F, 0x9A58, 0xF2A0, 0x9A59, 0xF2A1, 0x9889, 0xF2A2, 0x988C, 0xF2A3, 0x988D, 0xF2A4, 0x988F, + 0xF2A5, 0x9894, 0xF2A6, 0x989A, 0xF2A7, 0x989B, 0xF2A8, 0x989E, 0xF2A9, 0x989F, 0xF2AA, 0x98A1, 0xF2AB, 0x98A2, 0xF2AC, 0x98A5, + 0xF2AD, 0x98A6, 0xF2AE, 0x864D, 0xF2AF, 0x8654, 0xF2B0, 0x866C, 0xF2B1, 0x866E, 0xF2B2, 0x867F, 0xF2B3, 0x867A, 0xF2B4, 0x867C, + 0xF2B5, 0x867B, 0xF2B6, 0x86A8, 0xF2B7, 0x868D, 0xF2B8, 0x868B, 0xF2B9, 0x86AC, 0xF2BA, 0x869D, 0xF2BB, 0x86A7, 0xF2BC, 0x86A3, + 0xF2BD, 0x86AA, 0xF2BE, 0x8693, 0xF2BF, 0x86A9, 0xF2C0, 0x86B6, 0xF2C1, 0x86C4, 0xF2C2, 0x86B5, 0xF2C3, 0x86CE, 0xF2C4, 0x86B0, + 0xF2C5, 0x86BA, 0xF2C6, 0x86B1, 0xF2C7, 0x86AF, 0xF2C8, 0x86C9, 0xF2C9, 0x86CF, 0xF2CA, 0x86B4, 0xF2CB, 0x86E9, 0xF2CC, 0x86F1, + 0xF2CD, 0x86F2, 0xF2CE, 0x86ED, 0xF2CF, 0x86F3, 0xF2D0, 0x86D0, 0xF2D1, 0x8713, 0xF2D2, 0x86DE, 0xF2D3, 0x86F4, 0xF2D4, 0x86DF, + 0xF2D5, 0x86D8, 0xF2D6, 0x86D1, 0xF2D7, 0x8703, 0xF2D8, 0x8707, 0xF2D9, 0x86F8, 0xF2DA, 0x8708, 0xF2DB, 0x870A, 0xF2DC, 0x870D, + 0xF2DD, 0x8709, 0xF2DE, 0x8723, 0xF2DF, 0x873B, 0xF2E0, 0x871E, 0xF2E1, 0x8725, 0xF2E2, 0x872E, 0xF2E3, 0x871A, 0xF2E4, 0x873E, + 0xF2E5, 0x8748, 0xF2E6, 0x8734, 0xF2E7, 0x8731, 0xF2E8, 0x8729, 0xF2E9, 0x8737, 0xF2EA, 0x873F, 0xF2EB, 0x8782, 0xF2EC, 0x8722, + 0xF2ED, 0x877D, 0xF2EE, 0x877E, 0xF2EF, 0x877B, 0xF2F0, 0x8760, 0xF2F1, 0x8770, 0xF2F2, 0x874C, 0xF2F3, 0x876E, 0xF2F4, 0x878B, + 0xF2F5, 0x8753, 0xF2F6, 0x8763, 0xF2F7, 0x877C, 0xF2F8, 0x8764, 0xF2F9, 0x8759, 0xF2FA, 0x8765, 0xF2FB, 0x8793, 0xF2FC, 0x87AF, + 0xF2FD, 0x87A8, 0xF2FE, 0x87D2, 0xF340, 0x9A5A, 0xF341, 0x9A5B, 0xF342, 0x9A5C, 0xF343, 0x9A5D, 0xF344, 0x9A5E, 0xF345, 0x9A5F, + 0xF346, 0x9A60, 0xF347, 0x9A61, 0xF348, 0x9A62, 0xF349, 0x9A63, 0xF34A, 0x9A64, 0xF34B, 0x9A65, 0xF34C, 0x9A66, 0xF34D, 0x9A67, + 0xF34E, 0x9A68, 0xF34F, 0x9A69, 0xF350, 0x9A6A, 0xF351, 0x9A6B, 0xF352, 0x9A72, 0xF353, 0x9A83, 0xF354, 0x9A89, 0xF355, 0x9A8D, + 0xF356, 0x9A8E, 0xF357, 0x9A94, 0xF358, 0x9A95, 0xF359, 0x9A99, 0xF35A, 0x9AA6, 0xF35B, 0x9AA9, 0xF35C, 0x9AAA, 0xF35D, 0x9AAB, + 0xF35E, 0x9AAC, 0xF35F, 0x9AAD, 0xF360, 0x9AAE, 0xF361, 0x9AAF, 0xF362, 0x9AB2, 0xF363, 0x9AB3, 0xF364, 0x9AB4, 0xF365, 0x9AB5, + 0xF366, 0x9AB9, 0xF367, 0x9ABB, 0xF368, 0x9ABD, 0xF369, 0x9ABE, 0xF36A, 0x9ABF, 0xF36B, 0x9AC3, 0xF36C, 0x9AC4, 0xF36D, 0x9AC6, + 0xF36E, 0x9AC7, 0xF36F, 0x9AC8, 0xF370, 0x9AC9, 0xF371, 0x9ACA, 0xF372, 0x9ACD, 0xF373, 0x9ACE, 0xF374, 0x9ACF, 0xF375, 0x9AD0, + 0xF376, 0x9AD2, 0xF377, 0x9AD4, 0xF378, 0x9AD5, 0xF379, 0x9AD6, 0xF37A, 0x9AD7, 0xF37B, 0x9AD9, 0xF37C, 0x9ADA, 0xF37D, 0x9ADB, + 0xF37E, 0x9ADC, 0xF380, 0x9ADD, 0xF381, 0x9ADE, 0xF382, 0x9AE0, 0xF383, 0x9AE2, 0xF384, 0x9AE3, 0xF385, 0x9AE4, 0xF386, 0x9AE5, + 0xF387, 0x9AE7, 0xF388, 0x9AE8, 0xF389, 0x9AE9, 0xF38A, 0x9AEA, 0xF38B, 0x9AEC, 0xF38C, 0x9AEE, 0xF38D, 0x9AF0, 0xF38E, 0x9AF1, + 0xF38F, 0x9AF2, 0xF390, 0x9AF3, 0xF391, 0x9AF4, 0xF392, 0x9AF5, 0xF393, 0x9AF6, 0xF394, 0x9AF7, 0xF395, 0x9AF8, 0xF396, 0x9AFA, + 0xF397, 0x9AFC, 0xF398, 0x9AFD, 0xF399, 0x9AFE, 0xF39A, 0x9AFF, 0xF39B, 0x9B00, 0xF39C, 0x9B01, 0xF39D, 0x9B02, 0xF39E, 0x9B04, + 0xF39F, 0x9B05, 0xF3A0, 0x9B06, 0xF3A1, 0x87C6, 0xF3A2, 0x8788, 0xF3A3, 0x8785, 0xF3A4, 0x87AD, 0xF3A5, 0x8797, 0xF3A6, 0x8783, + 0xF3A7, 0x87AB, 0xF3A8, 0x87E5, 0xF3A9, 0x87AC, 0xF3AA, 0x87B5, 0xF3AB, 0x87B3, 0xF3AC, 0x87CB, 0xF3AD, 0x87D3, 0xF3AE, 0x87BD, + 0xF3AF, 0x87D1, 0xF3B0, 0x87C0, 0xF3B1, 0x87CA, 0xF3B2, 0x87DB, 0xF3B3, 0x87EA, 0xF3B4, 0x87E0, 0xF3B5, 0x87EE, 0xF3B6, 0x8816, + 0xF3B7, 0x8813, 0xF3B8, 0x87FE, 0xF3B9, 0x880A, 0xF3BA, 0x881B, 0xF3BB, 0x8821, 0xF3BC, 0x8839, 0xF3BD, 0x883C, 0xF3BE, 0x7F36, + 0xF3BF, 0x7F42, 0xF3C0, 0x7F44, 0xF3C1, 0x7F45, 0xF3C2, 0x8210, 0xF3C3, 0x7AFA, 0xF3C4, 0x7AFD, 0xF3C5, 0x7B08, 0xF3C6, 0x7B03, + 0xF3C7, 0x7B04, 0xF3C8, 0x7B15, 0xF3C9, 0x7B0A, 0xF3CA, 0x7B2B, 0xF3CB, 0x7B0F, 0xF3CC, 0x7B47, 0xF3CD, 0x7B38, 0xF3CE, 0x7B2A, + 0xF3CF, 0x7B19, 0xF3D0, 0x7B2E, 0xF3D1, 0x7B31, 0xF3D2, 0x7B20, 0xF3D3, 0x7B25, 0xF3D4, 0x7B24, 0xF3D5, 0x7B33, 0xF3D6, 0x7B3E, + 0xF3D7, 0x7B1E, 0xF3D8, 0x7B58, 0xF3D9, 0x7B5A, 0xF3DA, 0x7B45, 0xF3DB, 0x7B75, 0xF3DC, 0x7B4C, 0xF3DD, 0x7B5D, 0xF3DE, 0x7B60, + 0xF3DF, 0x7B6E, 0xF3E0, 0x7B7B, 0xF3E1, 0x7B62, 0xF3E2, 0x7B72, 0xF3E3, 0x7B71, 0xF3E4, 0x7B90, 0xF3E5, 0x7BA6, 0xF3E6, 0x7BA7, + 0xF3E7, 0x7BB8, 0xF3E8, 0x7BAC, 0xF3E9, 0x7B9D, 0xF3EA, 0x7BA8, 0xF3EB, 0x7B85, 0xF3EC, 0x7BAA, 0xF3ED, 0x7B9C, 0xF3EE, 0x7BA2, + 0xF3EF, 0x7BAB, 0xF3F0, 0x7BB4, 0xF3F1, 0x7BD1, 0xF3F2, 0x7BC1, 0xF3F3, 0x7BCC, 0xF3F4, 0x7BDD, 0xF3F5, 0x7BDA, 0xF3F6, 0x7BE5, + 0xF3F7, 0x7BE6, 0xF3F8, 0x7BEA, 0xF3F9, 0x7C0C, 0xF3FA, 0x7BFE, 0xF3FB, 0x7BFC, 0xF3FC, 0x7C0F, 0xF3FD, 0x7C16, 0xF3FE, 0x7C0B, + 0xF440, 0x9B07, 0xF441, 0x9B09, 0xF442, 0x9B0A, 0xF443, 0x9B0B, 0xF444, 0x9B0C, 0xF445, 0x9B0D, 0xF446, 0x9B0E, 0xF447, 0x9B10, + 0xF448, 0x9B11, 0xF449, 0x9B12, 0xF44A, 0x9B14, 0xF44B, 0x9B15, 0xF44C, 0x9B16, 0xF44D, 0x9B17, 0xF44E, 0x9B18, 0xF44F, 0x9B19, + 0xF450, 0x9B1A, 0xF451, 0x9B1B, 0xF452, 0x9B1C, 0xF453, 0x9B1D, 0xF454, 0x9B1E, 0xF455, 0x9B20, 0xF456, 0x9B21, 0xF457, 0x9B22, + 0xF458, 0x9B24, 0xF459, 0x9B25, 0xF45A, 0x9B26, 0xF45B, 0x9B27, 0xF45C, 0x9B28, 0xF45D, 0x9B29, 0xF45E, 0x9B2A, 0xF45F, 0x9B2B, + 0xF460, 0x9B2C, 0xF461, 0x9B2D, 0xF462, 0x9B2E, 0xF463, 0x9B30, 0xF464, 0x9B31, 0xF465, 0x9B33, 0xF466, 0x9B34, 0xF467, 0x9B35, + 0xF468, 0x9B36, 0xF469, 0x9B37, 0xF46A, 0x9B38, 0xF46B, 0x9B39, 0xF46C, 0x9B3A, 0xF46D, 0x9B3D, 0xF46E, 0x9B3E, 0xF46F, 0x9B3F, + 0xF470, 0x9B40, 0xF471, 0x9B46, 0xF472, 0x9B4A, 0xF473, 0x9B4B, 0xF474, 0x9B4C, 0xF475, 0x9B4E, 0xF476, 0x9B50, 0xF477, 0x9B52, + 0xF478, 0x9B53, 0xF479, 0x9B55, 0xF47A, 0x9B56, 0xF47B, 0x9B57, 0xF47C, 0x9B58, 0xF47D, 0x9B59, 0xF47E, 0x9B5A, 0xF480, 0x9B5B, + 0xF481, 0x9B5C, 0xF482, 0x9B5D, 0xF483, 0x9B5E, 0xF484, 0x9B5F, 0xF485, 0x9B60, 0xF486, 0x9B61, 0xF487, 0x9B62, 0xF488, 0x9B63, + 0xF489, 0x9B64, 0xF48A, 0x9B65, 0xF48B, 0x9B66, 0xF48C, 0x9B67, 0xF48D, 0x9B68, 0xF48E, 0x9B69, 0xF48F, 0x9B6A, 0xF490, 0x9B6B, + 0xF491, 0x9B6C, 0xF492, 0x9B6D, 0xF493, 0x9B6E, 0xF494, 0x9B6F, 0xF495, 0x9B70, 0xF496, 0x9B71, 0xF497, 0x9B72, 0xF498, 0x9B73, + 0xF499, 0x9B74, 0xF49A, 0x9B75, 0xF49B, 0x9B76, 0xF49C, 0x9B77, 0xF49D, 0x9B78, 0xF49E, 0x9B79, 0xF49F, 0x9B7A, 0xF4A0, 0x9B7B, + 0xF4A1, 0x7C1F, 0xF4A2, 0x7C2A, 0xF4A3, 0x7C26, 0xF4A4, 0x7C38, 0xF4A5, 0x7C41, 0xF4A6, 0x7C40, 0xF4A7, 0x81FE, 0xF4A8, 0x8201, + 0xF4A9, 0x8202, 0xF4AA, 0x8204, 0xF4AB, 0x81EC, 0xF4AC, 0x8844, 0xF4AD, 0x8221, 0xF4AE, 0x8222, 0xF4AF, 0x8223, 0xF4B0, 0x822D, + 0xF4B1, 0x822F, 0xF4B2, 0x8228, 0xF4B3, 0x822B, 0xF4B4, 0x8238, 0xF4B5, 0x823B, 0xF4B6, 0x8233, 0xF4B7, 0x8234, 0xF4B8, 0x823E, + 0xF4B9, 0x8244, 0xF4BA, 0x8249, 0xF4BB, 0x824B, 0xF4BC, 0x824F, 0xF4BD, 0x825A, 0xF4BE, 0x825F, 0xF4BF, 0x8268, 0xF4C0, 0x887E, + 0xF4C1, 0x8885, 0xF4C2, 0x8888, 0xF4C3, 0x88D8, 0xF4C4, 0x88DF, 0xF4C5, 0x895E, 0xF4C6, 0x7F9D, 0xF4C7, 0x7F9F, 0xF4C8, 0x7FA7, + 0xF4C9, 0x7FAF, 0xF4CA, 0x7FB0, 0xF4CB, 0x7FB2, 0xF4CC, 0x7C7C, 0xF4CD, 0x6549, 0xF4CE, 0x7C91, 0xF4CF, 0x7C9D, 0xF4D0, 0x7C9C, + 0xF4D1, 0x7C9E, 0xF4D2, 0x7CA2, 0xF4D3, 0x7CB2, 0xF4D4, 0x7CBC, 0xF4D5, 0x7CBD, 0xF4D6, 0x7CC1, 0xF4D7, 0x7CC7, 0xF4D8, 0x7CCC, + 0xF4D9, 0x7CCD, 0xF4DA, 0x7CC8, 0xF4DB, 0x7CC5, 0xF4DC, 0x7CD7, 0xF4DD, 0x7CE8, 0xF4DE, 0x826E, 0xF4DF, 0x66A8, 0xF4E0, 0x7FBF, + 0xF4E1, 0x7FCE, 0xF4E2, 0x7FD5, 0xF4E3, 0x7FE5, 0xF4E4, 0x7FE1, 0xF4E5, 0x7FE6, 0xF4E6, 0x7FE9, 0xF4E7, 0x7FEE, 0xF4E8, 0x7FF3, + 0xF4E9, 0x7CF8, 0xF4EA, 0x7D77, 0xF4EB, 0x7DA6, 0xF4EC, 0x7DAE, 0xF4ED, 0x7E47, 0xF4EE, 0x7E9B, 0xF4EF, 0x9EB8, 0xF4F0, 0x9EB4, + 0xF4F1, 0x8D73, 0xF4F2, 0x8D84, 0xF4F3, 0x8D94, 0xF4F4, 0x8D91, 0xF4F5, 0x8DB1, 0xF4F6, 0x8D67, 0xF4F7, 0x8D6D, 0xF4F8, 0x8C47, + 0xF4F9, 0x8C49, 0xF4FA, 0x914A, 0xF4FB, 0x9150, 0xF4FC, 0x914E, 0xF4FD, 0x914F, 0xF4FE, 0x9164, 0xF540, 0x9B7C, 0xF541, 0x9B7D, + 0xF542, 0x9B7E, 0xF543, 0x9B7F, 0xF544, 0x9B80, 0xF545, 0x9B81, 0xF546, 0x9B82, 0xF547, 0x9B83, 0xF548, 0x9B84, 0xF549, 0x9B85, + 0xF54A, 0x9B86, 0xF54B, 0x9B87, 0xF54C, 0x9B88, 0xF54D, 0x9B89, 0xF54E, 0x9B8A, 0xF54F, 0x9B8B, 0xF550, 0x9B8C, 0xF551, 0x9B8D, + 0xF552, 0x9B8E, 0xF553, 0x9B8F, 0xF554, 0x9B90, 0xF555, 0x9B91, 0xF556, 0x9B92, 0xF557, 0x9B93, 0xF558, 0x9B94, 0xF559, 0x9B95, + 0xF55A, 0x9B96, 0xF55B, 0x9B97, 0xF55C, 0x9B98, 0xF55D, 0x9B99, 0xF55E, 0x9B9A, 0xF55F, 0x9B9B, 0xF560, 0x9B9C, 0xF561, 0x9B9D, + 0xF562, 0x9B9E, 0xF563, 0x9B9F, 0xF564, 0x9BA0, 0xF565, 0x9BA1, 0xF566, 0x9BA2, 0xF567, 0x9BA3, 0xF568, 0x9BA4, 0xF569, 0x9BA5, + 0xF56A, 0x9BA6, 0xF56B, 0x9BA7, 0xF56C, 0x9BA8, 0xF56D, 0x9BA9, 0xF56E, 0x9BAA, 0xF56F, 0x9BAB, 0xF570, 0x9BAC, 0xF571, 0x9BAD, + 0xF572, 0x9BAE, 0xF573, 0x9BAF, 0xF574, 0x9BB0, 0xF575, 0x9BB1, 0xF576, 0x9BB2, 0xF577, 0x9BB3, 0xF578, 0x9BB4, 0xF579, 0x9BB5, + 0xF57A, 0x9BB6, 0xF57B, 0x9BB7, 0xF57C, 0x9BB8, 0xF57D, 0x9BB9, 0xF57E, 0x9BBA, 0xF580, 0x9BBB, 0xF581, 0x9BBC, 0xF582, 0x9BBD, + 0xF583, 0x9BBE, 0xF584, 0x9BBF, 0xF585, 0x9BC0, 0xF586, 0x9BC1, 0xF587, 0x9BC2, 0xF588, 0x9BC3, 0xF589, 0x9BC4, 0xF58A, 0x9BC5, + 0xF58B, 0x9BC6, 0xF58C, 0x9BC7, 0xF58D, 0x9BC8, 0xF58E, 0x9BC9, 0xF58F, 0x9BCA, 0xF590, 0x9BCB, 0xF591, 0x9BCC, 0xF592, 0x9BCD, + 0xF593, 0x9BCE, 0xF594, 0x9BCF, 0xF595, 0x9BD0, 0xF596, 0x9BD1, 0xF597, 0x9BD2, 0xF598, 0x9BD3, 0xF599, 0x9BD4, 0xF59A, 0x9BD5, + 0xF59B, 0x9BD6, 0xF59C, 0x9BD7, 0xF59D, 0x9BD8, 0xF59E, 0x9BD9, 0xF59F, 0x9BDA, 0xF5A0, 0x9BDB, 0xF5A1, 0x9162, 0xF5A2, 0x9161, + 0xF5A3, 0x9170, 0xF5A4, 0x9169, 0xF5A5, 0x916F, 0xF5A6, 0x917D, 0xF5A7, 0x917E, 0xF5A8, 0x9172, 0xF5A9, 0x9174, 0xF5AA, 0x9179, + 0xF5AB, 0x918C, 0xF5AC, 0x9185, 0xF5AD, 0x9190, 0xF5AE, 0x918D, 0xF5AF, 0x9191, 0xF5B0, 0x91A2, 0xF5B1, 0x91A3, 0xF5B2, 0x91AA, + 0xF5B3, 0x91AD, 0xF5B4, 0x91AE, 0xF5B5, 0x91AF, 0xF5B6, 0x91B5, 0xF5B7, 0x91B4, 0xF5B8, 0x91BA, 0xF5B9, 0x8C55, 0xF5BA, 0x9E7E, + 0xF5BB, 0x8DB8, 0xF5BC, 0x8DEB, 0xF5BD, 0x8E05, 0xF5BE, 0x8E59, 0xF5BF, 0x8E69, 0xF5C0, 0x8DB5, 0xF5C1, 0x8DBF, 0xF5C2, 0x8DBC, + 0xF5C3, 0x8DBA, 0xF5C4, 0x8DC4, 0xF5C5, 0x8DD6, 0xF5C6, 0x8DD7, 0xF5C7, 0x8DDA, 0xF5C8, 0x8DDE, 0xF5C9, 0x8DCE, 0xF5CA, 0x8DCF, + 0xF5CB, 0x8DDB, 0xF5CC, 0x8DC6, 0xF5CD, 0x8DEC, 0xF5CE, 0x8DF7, 0xF5CF, 0x8DF8, 0xF5D0, 0x8DE3, 0xF5D1, 0x8DF9, 0xF5D2, 0x8DFB, + 0xF5D3, 0x8DE4, 0xF5D4, 0x8E09, 0xF5D5, 0x8DFD, 0xF5D6, 0x8E14, 0xF5D7, 0x8E1D, 0xF5D8, 0x8E1F, 0xF5D9, 0x8E2C, 0xF5DA, 0x8E2E, + 0xF5DB, 0x8E23, 0xF5DC, 0x8E2F, 0xF5DD, 0x8E3A, 0xF5DE, 0x8E40, 0xF5DF, 0x8E39, 0xF5E0, 0x8E35, 0xF5E1, 0x8E3D, 0xF5E2, 0x8E31, + 0xF5E3, 0x8E49, 0xF5E4, 0x8E41, 0xF5E5, 0x8E42, 0xF5E6, 0x8E51, 0xF5E7, 0x8E52, 0xF5E8, 0x8E4A, 0xF5E9, 0x8E70, 0xF5EA, 0x8E76, + 0xF5EB, 0x8E7C, 0xF5EC, 0x8E6F, 0xF5ED, 0x8E74, 0xF5EE, 0x8E85, 0xF5EF, 0x8E8F, 0xF5F0, 0x8E94, 0xF5F1, 0x8E90, 0xF5F2, 0x8E9C, + 0xF5F3, 0x8E9E, 0xF5F4, 0x8C78, 0xF5F5, 0x8C82, 0xF5F6, 0x8C8A, 0xF5F7, 0x8C85, 0xF5F8, 0x8C98, 0xF5F9, 0x8C94, 0xF5FA, 0x659B, + 0xF5FB, 0x89D6, 0xF5FC, 0x89DE, 0xF5FD, 0x89DA, 0xF5FE, 0x89DC, 0xF640, 0x9BDC, 0xF641, 0x9BDD, 0xF642, 0x9BDE, 0xF643, 0x9BDF, + 0xF644, 0x9BE0, 0xF645, 0x9BE1, 0xF646, 0x9BE2, 0xF647, 0x9BE3, 0xF648, 0x9BE4, 0xF649, 0x9BE5, 0xF64A, 0x9BE6, 0xF64B, 0x9BE7, + 0xF64C, 0x9BE8, 0xF64D, 0x9BE9, 0xF64E, 0x9BEA, 0xF64F, 0x9BEB, 0xF650, 0x9BEC, 0xF651, 0x9BED, 0xF652, 0x9BEE, 0xF653, 0x9BEF, + 0xF654, 0x9BF0, 0xF655, 0x9BF1, 0xF656, 0x9BF2, 0xF657, 0x9BF3, 0xF658, 0x9BF4, 0xF659, 0x9BF5, 0xF65A, 0x9BF6, 0xF65B, 0x9BF7, + 0xF65C, 0x9BF8, 0xF65D, 0x9BF9, 0xF65E, 0x9BFA, 0xF65F, 0x9BFB, 0xF660, 0x9BFC, 0xF661, 0x9BFD, 0xF662, 0x9BFE, 0xF663, 0x9BFF, + 0xF664, 0x9C00, 0xF665, 0x9C01, 0xF666, 0x9C02, 0xF667, 0x9C03, 0xF668, 0x9C04, 0xF669, 0x9C05, 0xF66A, 0x9C06, 0xF66B, 0x9C07, + 0xF66C, 0x9C08, 0xF66D, 0x9C09, 0xF66E, 0x9C0A, 0xF66F, 0x9C0B, 0xF670, 0x9C0C, 0xF671, 0x9C0D, 0xF672, 0x9C0E, 0xF673, 0x9C0F, + 0xF674, 0x9C10, 0xF675, 0x9C11, 0xF676, 0x9C12, 0xF677, 0x9C13, 0xF678, 0x9C14, 0xF679, 0x9C15, 0xF67A, 0x9C16, 0xF67B, 0x9C17, + 0xF67C, 0x9C18, 0xF67D, 0x9C19, 0xF67E, 0x9C1A, 0xF680, 0x9C1B, 0xF681, 0x9C1C, 0xF682, 0x9C1D, 0xF683, 0x9C1E, 0xF684, 0x9C1F, + 0xF685, 0x9C20, 0xF686, 0x9C21, 0xF687, 0x9C22, 0xF688, 0x9C23, 0xF689, 0x9C24, 0xF68A, 0x9C25, 0xF68B, 0x9C26, 0xF68C, 0x9C27, + 0xF68D, 0x9C28, 0xF68E, 0x9C29, 0xF68F, 0x9C2A, 0xF690, 0x9C2B, 0xF691, 0x9C2C, 0xF692, 0x9C2D, 0xF693, 0x9C2E, 0xF694, 0x9C2F, + 0xF695, 0x9C30, 0xF696, 0x9C31, 0xF697, 0x9C32, 0xF698, 0x9C33, 0xF699, 0x9C34, 0xF69A, 0x9C35, 0xF69B, 0x9C36, 0xF69C, 0x9C37, + 0xF69D, 0x9C38, 0xF69E, 0x9C39, 0xF69F, 0x9C3A, 0xF6A0, 0x9C3B, 0xF6A1, 0x89E5, 0xF6A2, 0x89EB, 0xF6A3, 0x89EF, 0xF6A4, 0x8A3E, + 0xF6A5, 0x8B26, 0xF6A6, 0x9753, 0xF6A7, 0x96E9, 0xF6A8, 0x96F3, 0xF6A9, 0x96EF, 0xF6AA, 0x9706, 0xF6AB, 0x9701, 0xF6AC, 0x9708, + 0xF6AD, 0x970F, 0xF6AE, 0x970E, 0xF6AF, 0x972A, 0xF6B0, 0x972D, 0xF6B1, 0x9730, 0xF6B2, 0x973E, 0xF6B3, 0x9F80, 0xF6B4, 0x9F83, + 0xF6B5, 0x9F85, 0xF6B6, 0x9F86, 0xF6B7, 0x9F87, 0xF6B8, 0x9F88, 0xF6B9, 0x9F89, 0xF6BA, 0x9F8A, 0xF6BB, 0x9F8C, 0xF6BC, 0x9EFE, + 0xF6BD, 0x9F0B, 0xF6BE, 0x9F0D, 0xF6BF, 0x96B9, 0xF6C0, 0x96BC, 0xF6C1, 0x96BD, 0xF6C2, 0x96CE, 0xF6C3, 0x96D2, 0xF6C4, 0x77BF, + 0xF6C5, 0x96E0, 0xF6C6, 0x928E, 0xF6C7, 0x92AE, 0xF6C8, 0x92C8, 0xF6C9, 0x933E, 0xF6CA, 0x936A, 0xF6CB, 0x93CA, 0xF6CC, 0x938F, + 0xF6CD, 0x943E, 0xF6CE, 0x946B, 0xF6CF, 0x9C7F, 0xF6D0, 0x9C82, 0xF6D1, 0x9C85, 0xF6D2, 0x9C86, 0xF6D3, 0x9C87, 0xF6D4, 0x9C88, + 0xF6D5, 0x7A23, 0xF6D6, 0x9C8B, 0xF6D7, 0x9C8E, 0xF6D8, 0x9C90, 0xF6D9, 0x9C91, 0xF6DA, 0x9C92, 0xF6DB, 0x9C94, 0xF6DC, 0x9C95, + 0xF6DD, 0x9C9A, 0xF6DE, 0x9C9B, 0xF6DF, 0x9C9E, 0xF6E0, 0x9C9F, 0xF6E1, 0x9CA0, 0xF6E2, 0x9CA1, 0xF6E3, 0x9CA2, 0xF6E4, 0x9CA3, + 0xF6E5, 0x9CA5, 0xF6E6, 0x9CA6, 0xF6E7, 0x9CA7, 0xF6E8, 0x9CA8, 0xF6E9, 0x9CA9, 0xF6EA, 0x9CAB, 0xF6EB, 0x9CAD, 0xF6EC, 0x9CAE, + 0xF6ED, 0x9CB0, 0xF6EE, 0x9CB1, 0xF6EF, 0x9CB2, 0xF6F0, 0x9CB3, 0xF6F1, 0x9CB4, 0xF6F2, 0x9CB5, 0xF6F3, 0x9CB6, 0xF6F4, 0x9CB7, + 0xF6F5, 0x9CBA, 0xF6F6, 0x9CBB, 0xF6F7, 0x9CBC, 0xF6F8, 0x9CBD, 0xF6F9, 0x9CC4, 0xF6FA, 0x9CC5, 0xF6FB, 0x9CC6, 0xF6FC, 0x9CC7, + 0xF6FD, 0x9CCA, 0xF6FE, 0x9CCB, 0xF740, 0x9C3C, 0xF741, 0x9C3D, 0xF742, 0x9C3E, 0xF743, 0x9C3F, 0xF744, 0x9C40, 0xF745, 0x9C41, + 0xF746, 0x9C42, 0xF747, 0x9C43, 0xF748, 0x9C44, 0xF749, 0x9C45, 0xF74A, 0x9C46, 0xF74B, 0x9C47, 0xF74C, 0x9C48, 0xF74D, 0x9C49, + 0xF74E, 0x9C4A, 0xF74F, 0x9C4B, 0xF750, 0x9C4C, 0xF751, 0x9C4D, 0xF752, 0x9C4E, 0xF753, 0x9C4F, 0xF754, 0x9C50, 0xF755, 0x9C51, + 0xF756, 0x9C52, 0xF757, 0x9C53, 0xF758, 0x9C54, 0xF759, 0x9C55, 0xF75A, 0x9C56, 0xF75B, 0x9C57, 0xF75C, 0x9C58, 0xF75D, 0x9C59, + 0xF75E, 0x9C5A, 0xF75F, 0x9C5B, 0xF760, 0x9C5C, 0xF761, 0x9C5D, 0xF762, 0x9C5E, 0xF763, 0x9C5F, 0xF764, 0x9C60, 0xF765, 0x9C61, + 0xF766, 0x9C62, 0xF767, 0x9C63, 0xF768, 0x9C64, 0xF769, 0x9C65, 0xF76A, 0x9C66, 0xF76B, 0x9C67, 0xF76C, 0x9C68, 0xF76D, 0x9C69, + 0xF76E, 0x9C6A, 0xF76F, 0x9C6B, 0xF770, 0x9C6C, 0xF771, 0x9C6D, 0xF772, 0x9C6E, 0xF773, 0x9C6F, 0xF774, 0x9C70, 0xF775, 0x9C71, + 0xF776, 0x9C72, 0xF777, 0x9C73, 0xF778, 0x9C74, 0xF779, 0x9C75, 0xF77A, 0x9C76, 0xF77B, 0x9C77, 0xF77C, 0x9C78, 0xF77D, 0x9C79, + 0xF77E, 0x9C7A, 0xF780, 0x9C7B, 0xF781, 0x9C7D, 0xF782, 0x9C7E, 0xF783, 0x9C80, 0xF784, 0x9C83, 0xF785, 0x9C84, 0xF786, 0x9C89, + 0xF787, 0x9C8A, 0xF788, 0x9C8C, 0xF789, 0x9C8F, 0xF78A, 0x9C93, 0xF78B, 0x9C96, 0xF78C, 0x9C97, 0xF78D, 0x9C98, 0xF78E, 0x9C99, + 0xF78F, 0x9C9D, 0xF790, 0x9CAA, 0xF791, 0x9CAC, 0xF792, 0x9CAF, 0xF793, 0x9CB9, 0xF794, 0x9CBE, 0xF795, 0x9CBF, 0xF796, 0x9CC0, + 0xF797, 0x9CC1, 0xF798, 0x9CC2, 0xF799, 0x9CC8, 0xF79A, 0x9CC9, 0xF79B, 0x9CD1, 0xF79C, 0x9CD2, 0xF79D, 0x9CDA, 0xF79E, 0x9CDB, + 0xF79F, 0x9CE0, 0xF7A0, 0x9CE1, 0xF7A1, 0x9CCC, 0xF7A2, 0x9CCD, 0xF7A3, 0x9CCE, 0xF7A4, 0x9CCF, 0xF7A5, 0x9CD0, 0xF7A6, 0x9CD3, + 0xF7A7, 0x9CD4, 0xF7A8, 0x9CD5, 0xF7A9, 0x9CD7, 0xF7AA, 0x9CD8, 0xF7AB, 0x9CD9, 0xF7AC, 0x9CDC, 0xF7AD, 0x9CDD, 0xF7AE, 0x9CDF, + 0xF7AF, 0x9CE2, 0xF7B0, 0x977C, 0xF7B1, 0x9785, 0xF7B2, 0x9791, 0xF7B3, 0x9792, 0xF7B4, 0x9794, 0xF7B5, 0x97AF, 0xF7B6, 0x97AB, + 0xF7B7, 0x97A3, 0xF7B8, 0x97B2, 0xF7B9, 0x97B4, 0xF7BA, 0x9AB1, 0xF7BB, 0x9AB0, 0xF7BC, 0x9AB7, 0xF7BD, 0x9E58, 0xF7BE, 0x9AB6, + 0xF7BF, 0x9ABA, 0xF7C0, 0x9ABC, 0xF7C1, 0x9AC1, 0xF7C2, 0x9AC0, 0xF7C3, 0x9AC5, 0xF7C4, 0x9AC2, 0xF7C5, 0x9ACB, 0xF7C6, 0x9ACC, + 0xF7C7, 0x9AD1, 0xF7C8, 0x9B45, 0xF7C9, 0x9B43, 0xF7CA, 0x9B47, 0xF7CB, 0x9B49, 0xF7CC, 0x9B48, 0xF7CD, 0x9B4D, 0xF7CE, 0x9B51, + 0xF7CF, 0x98E8, 0xF7D0, 0x990D, 0xF7D1, 0x992E, 0xF7D2, 0x9955, 0xF7D3, 0x9954, 0xF7D4, 0x9ADF, 0xF7D5, 0x9AE1, 0xF7D6, 0x9AE6, + 0xF7D7, 0x9AEF, 0xF7D8, 0x9AEB, 0xF7D9, 0x9AFB, 0xF7DA, 0x9AED, 0xF7DB, 0x9AF9, 0xF7DC, 0x9B08, 0xF7DD, 0x9B0F, 0xF7DE, 0x9B13, + 0xF7DF, 0x9B1F, 0xF7E0, 0x9B23, 0xF7E1, 0x9EBD, 0xF7E2, 0x9EBE, 0xF7E3, 0x7E3B, 0xF7E4, 0x9E82, 0xF7E5, 0x9E87, 0xF7E6, 0x9E88, + 0xF7E7, 0x9E8B, 0xF7E8, 0x9E92, 0xF7E9, 0x93D6, 0xF7EA, 0x9E9D, 0xF7EB, 0x9E9F, 0xF7EC, 0x9EDB, 0xF7ED, 0x9EDC, 0xF7EE, 0x9EDD, + 0xF7EF, 0x9EE0, 0xF7F0, 0x9EDF, 0xF7F1, 0x9EE2, 0xF7F2, 0x9EE9, 0xF7F3, 0x9EE7, 0xF7F4, 0x9EE5, 0xF7F5, 0x9EEA, 0xF7F6, 0x9EEF, + 0xF7F7, 0x9F22, 0xF7F8, 0x9F2C, 0xF7F9, 0x9F2F, 0xF7FA, 0x9F39, 0xF7FB, 0x9F37, 0xF7FC, 0x9F3D, 0xF7FD, 0x9F3E, 0xF7FE, 0x9F44, + 0xF840, 0x9CE3, 0xF841, 0x9CE4, 0xF842, 0x9CE5, 0xF843, 0x9CE6, 0xF844, 0x9CE7, 0xF845, 0x9CE8, 0xF846, 0x9CE9, 0xF847, 0x9CEA, + 0xF848, 0x9CEB, 0xF849, 0x9CEC, 0xF84A, 0x9CED, 0xF84B, 0x9CEE, 0xF84C, 0x9CEF, 0xF84D, 0x9CF0, 0xF84E, 0x9CF1, 0xF84F, 0x9CF2, + 0xF850, 0x9CF3, 0xF851, 0x9CF4, 0xF852, 0x9CF5, 0xF853, 0x9CF6, 0xF854, 0x9CF7, 0xF855, 0x9CF8, 0xF856, 0x9CF9, 0xF857, 0x9CFA, + 0xF858, 0x9CFB, 0xF859, 0x9CFC, 0xF85A, 0x9CFD, 0xF85B, 0x9CFE, 0xF85C, 0x9CFF, 0xF85D, 0x9D00, 0xF85E, 0x9D01, 0xF85F, 0x9D02, + 0xF860, 0x9D03, 0xF861, 0x9D04, 0xF862, 0x9D05, 0xF863, 0x9D06, 0xF864, 0x9D07, 0xF865, 0x9D08, 0xF866, 0x9D09, 0xF867, 0x9D0A, + 0xF868, 0x9D0B, 0xF869, 0x9D0C, 0xF86A, 0x9D0D, 0xF86B, 0x9D0E, 0xF86C, 0x9D0F, 0xF86D, 0x9D10, 0xF86E, 0x9D11, 0xF86F, 0x9D12, + 0xF870, 0x9D13, 0xF871, 0x9D14, 0xF872, 0x9D15, 0xF873, 0x9D16, 0xF874, 0x9D17, 0xF875, 0x9D18, 0xF876, 0x9D19, 0xF877, 0x9D1A, + 0xF878, 0x9D1B, 0xF879, 0x9D1C, 0xF87A, 0x9D1D, 0xF87B, 0x9D1E, 0xF87C, 0x9D1F, 0xF87D, 0x9D20, 0xF87E, 0x9D21, 0xF880, 0x9D22, + 0xF881, 0x9D23, 0xF882, 0x9D24, 0xF883, 0x9D25, 0xF884, 0x9D26, 0xF885, 0x9D27, 0xF886, 0x9D28, 0xF887, 0x9D29, 0xF888, 0x9D2A, + 0xF889, 0x9D2B, 0xF88A, 0x9D2C, 0xF88B, 0x9D2D, 0xF88C, 0x9D2E, 0xF88D, 0x9D2F, 0xF88E, 0x9D30, 0xF88F, 0x9D31, 0xF890, 0x9D32, + 0xF891, 0x9D33, 0xF892, 0x9D34, 0xF893, 0x9D35, 0xF894, 0x9D36, 0xF895, 0x9D37, 0xF896, 0x9D38, 0xF897, 0x9D39, 0xF898, 0x9D3A, + 0xF899, 0x9D3B, 0xF89A, 0x9D3C, 0xF89B, 0x9D3D, 0xF89C, 0x9D3E, 0xF89D, 0x9D3F, 0xF89E, 0x9D40, 0xF89F, 0x9D41, 0xF8A0, 0x9D42, + 0xF940, 0x9D43, 0xF941, 0x9D44, 0xF942, 0x9D45, 0xF943, 0x9D46, 0xF944, 0x9D47, 0xF945, 0x9D48, 0xF946, 0x9D49, 0xF947, 0x9D4A, + 0xF948, 0x9D4B, 0xF949, 0x9D4C, 0xF94A, 0x9D4D, 0xF94B, 0x9D4E, 0xF94C, 0x9D4F, 0xF94D, 0x9D50, 0xF94E, 0x9D51, 0xF94F, 0x9D52, + 0xF950, 0x9D53, 0xF951, 0x9D54, 0xF952, 0x9D55, 0xF953, 0x9D56, 0xF954, 0x9D57, 0xF955, 0x9D58, 0xF956, 0x9D59, 0xF957, 0x9D5A, + 0xF958, 0x9D5B, 0xF959, 0x9D5C, 0xF95A, 0x9D5D, 0xF95B, 0x9D5E, 0xF95C, 0x9D5F, 0xF95D, 0x9D60, 0xF95E, 0x9D61, 0xF95F, 0x9D62, + 0xF960, 0x9D63, 0xF961, 0x9D64, 0xF962, 0x9D65, 0xF963, 0x9D66, 0xF964, 0x9D67, 0xF965, 0x9D68, 0xF966, 0x9D69, 0xF967, 0x9D6A, + 0xF968, 0x9D6B, 0xF969, 0x9D6C, 0xF96A, 0x9D6D, 0xF96B, 0x9D6E, 0xF96C, 0x9D6F, 0xF96D, 0x9D70, 0xF96E, 0x9D71, 0xF96F, 0x9D72, + 0xF970, 0x9D73, 0xF971, 0x9D74, 0xF972, 0x9D75, 0xF973, 0x9D76, 0xF974, 0x9D77, 0xF975, 0x9D78, 0xF976, 0x9D79, 0xF977, 0x9D7A, + 0xF978, 0x9D7B, 0xF979, 0x9D7C, 0xF97A, 0x9D7D, 0xF97B, 0x9D7E, 0xF97C, 0x9D7F, 0xF97D, 0x9D80, 0xF97E, 0x9D81, 0xF980, 0x9D82, + 0xF981, 0x9D83, 0xF982, 0x9D84, 0xF983, 0x9D85, 0xF984, 0x9D86, 0xF985, 0x9D87, 0xF986, 0x9D88, 0xF987, 0x9D89, 0xF988, 0x9D8A, + 0xF989, 0x9D8B, 0xF98A, 0x9D8C, 0xF98B, 0x9D8D, 0xF98C, 0x9D8E, 0xF98D, 0x9D8F, 0xF98E, 0x9D90, 0xF98F, 0x9D91, 0xF990, 0x9D92, + 0xF991, 0x9D93, 0xF992, 0x9D94, 0xF993, 0x9D95, 0xF994, 0x9D96, 0xF995, 0x9D97, 0xF996, 0x9D98, 0xF997, 0x9D99, 0xF998, 0x9D9A, + 0xF999, 0x9D9B, 0xF99A, 0x9D9C, 0xF99B, 0x9D9D, 0xF99C, 0x9D9E, 0xF99D, 0x9D9F, 0xF99E, 0x9DA0, 0xF99F, 0x9DA1, 0xF9A0, 0x9DA2, + 0xFA40, 0x9DA3, 0xFA41, 0x9DA4, 0xFA42, 0x9DA5, 0xFA43, 0x9DA6, 0xFA44, 0x9DA7, 0xFA45, 0x9DA8, 0xFA46, 0x9DA9, 0xFA47, 0x9DAA, + 0xFA48, 0x9DAB, 0xFA49, 0x9DAC, 0xFA4A, 0x9DAD, 0xFA4B, 0x9DAE, 0xFA4C, 0x9DAF, 0xFA4D, 0x9DB0, 0xFA4E, 0x9DB1, 0xFA4F, 0x9DB2, + 0xFA50, 0x9DB3, 0xFA51, 0x9DB4, 0xFA52, 0x9DB5, 0xFA53, 0x9DB6, 0xFA54, 0x9DB7, 0xFA55, 0x9DB8, 0xFA56, 0x9DB9, 0xFA57, 0x9DBA, + 0xFA58, 0x9DBB, 0xFA59, 0x9DBC, 0xFA5A, 0x9DBD, 0xFA5B, 0x9DBE, 0xFA5C, 0x9DBF, 0xFA5D, 0x9DC0, 0xFA5E, 0x9DC1, 0xFA5F, 0x9DC2, + 0xFA60, 0x9DC3, 0xFA61, 0x9DC4, 0xFA62, 0x9DC5, 0xFA63, 0x9DC6, 0xFA64, 0x9DC7, 0xFA65, 0x9DC8, 0xFA66, 0x9DC9, 0xFA67, 0x9DCA, + 0xFA68, 0x9DCB, 0xFA69, 0x9DCC, 0xFA6A, 0x9DCD, 0xFA6B, 0x9DCE, 0xFA6C, 0x9DCF, 0xFA6D, 0x9DD0, 0xFA6E, 0x9DD1, 0xFA6F, 0x9DD2, + 0xFA70, 0x9DD3, 0xFA71, 0x9DD4, 0xFA72, 0x9DD5, 0xFA73, 0x9DD6, 0xFA74, 0x9DD7, 0xFA75, 0x9DD8, 0xFA76, 0x9DD9, 0xFA77, 0x9DDA, + 0xFA78, 0x9DDB, 0xFA79, 0x9DDC, 0xFA7A, 0x9DDD, 0xFA7B, 0x9DDE, 0xFA7C, 0x9DDF, 0xFA7D, 0x9DE0, 0xFA7E, 0x9DE1, 0xFA80, 0x9DE2, + 0xFA81, 0x9DE3, 0xFA82, 0x9DE4, 0xFA83, 0x9DE5, 0xFA84, 0x9DE6, 0xFA85, 0x9DE7, 0xFA86, 0x9DE8, 0xFA87, 0x9DE9, 0xFA88, 0x9DEA, + 0xFA89, 0x9DEB, 0xFA8A, 0x9DEC, 0xFA8B, 0x9DED, 0xFA8C, 0x9DEE, 0xFA8D, 0x9DEF, 0xFA8E, 0x9DF0, 0xFA8F, 0x9DF1, 0xFA90, 0x9DF2, + 0xFA91, 0x9DF3, 0xFA92, 0x9DF4, 0xFA93, 0x9DF5, 0xFA94, 0x9DF6, 0xFA95, 0x9DF7, 0xFA96, 0x9DF8, 0xFA97, 0x9DF9, 0xFA98, 0x9DFA, + 0xFA99, 0x9DFB, 0xFA9A, 0x9DFC, 0xFA9B, 0x9DFD, 0xFA9C, 0x9DFE, 0xFA9D, 0x9DFF, 0xFA9E, 0x9E00, 0xFA9F, 0x9E01, 0xFAA0, 0x9E02, + 0xFB40, 0x9E03, 0xFB41, 0x9E04, 0xFB42, 0x9E05, 0xFB43, 0x9E06, 0xFB44, 0x9E07, 0xFB45, 0x9E08, 0xFB46, 0x9E09, 0xFB47, 0x9E0A, + 0xFB48, 0x9E0B, 0xFB49, 0x9E0C, 0xFB4A, 0x9E0D, 0xFB4B, 0x9E0E, 0xFB4C, 0x9E0F, 0xFB4D, 0x9E10, 0xFB4E, 0x9E11, 0xFB4F, 0x9E12, + 0xFB50, 0x9E13, 0xFB51, 0x9E14, 0xFB52, 0x9E15, 0xFB53, 0x9E16, 0xFB54, 0x9E17, 0xFB55, 0x9E18, 0xFB56, 0x9E19, 0xFB57, 0x9E1A, + 0xFB58, 0x9E1B, 0xFB59, 0x9E1C, 0xFB5A, 0x9E1D, 0xFB5B, 0x9E1E, 0xFB5C, 0x9E24, 0xFB5D, 0x9E27, 0xFB5E, 0x9E2E, 0xFB5F, 0x9E30, + 0xFB60, 0x9E34, 0xFB61, 0x9E3B, 0xFB62, 0x9E3C, 0xFB63, 0x9E40, 0xFB64, 0x9E4D, 0xFB65, 0x9E50, 0xFB66, 0x9E52, 0xFB67, 0x9E53, + 0xFB68, 0x9E54, 0xFB69, 0x9E56, 0xFB6A, 0x9E59, 0xFB6B, 0x9E5D, 0xFB6C, 0x9E5F, 0xFB6D, 0x9E60, 0xFB6E, 0x9E61, 0xFB6F, 0x9E62, + 0xFB70, 0x9E65, 0xFB71, 0x9E6E, 0xFB72, 0x9E6F, 0xFB73, 0x9E72, 0xFB74, 0x9E74, 0xFB75, 0x9E75, 0xFB76, 0x9E76, 0xFB77, 0x9E77, + 0xFB78, 0x9E78, 0xFB79, 0x9E79, 0xFB7A, 0x9E7A, 0xFB7B, 0x9E7B, 0xFB7C, 0x9E7C, 0xFB7D, 0x9E7D, 0xFB7E, 0x9E80, 0xFB80, 0x9E81, + 0xFB81, 0x9E83, 0xFB82, 0x9E84, 0xFB83, 0x9E85, 0xFB84, 0x9E86, 0xFB85, 0x9E89, 0xFB86, 0x9E8A, 0xFB87, 0x9E8C, 0xFB88, 0x9E8D, + 0xFB89, 0x9E8E, 0xFB8A, 0x9E8F, 0xFB8B, 0x9E90, 0xFB8C, 0x9E91, 0xFB8D, 0x9E94, 0xFB8E, 0x9E95, 0xFB8F, 0x9E96, 0xFB90, 0x9E97, + 0xFB91, 0x9E98, 0xFB92, 0x9E99, 0xFB93, 0x9E9A, 0xFB94, 0x9E9B, 0xFB95, 0x9E9C, 0xFB96, 0x9E9E, 0xFB97, 0x9EA0, 0xFB98, 0x9EA1, + 0xFB99, 0x9EA2, 0xFB9A, 0x9EA3, 0xFB9B, 0x9EA4, 0xFB9C, 0x9EA5, 0xFB9D, 0x9EA7, 0xFB9E, 0x9EA8, 0xFB9F, 0x9EA9, 0xFBA0, 0x9EAA, + 0xFC40, 0x9EAB, 0xFC41, 0x9EAC, 0xFC42, 0x9EAD, 0xFC43, 0x9EAE, 0xFC44, 0x9EAF, 0xFC45, 0x9EB0, 0xFC46, 0x9EB1, 0xFC47, 0x9EB2, + 0xFC48, 0x9EB3, 0xFC49, 0x9EB5, 0xFC4A, 0x9EB6, 0xFC4B, 0x9EB7, 0xFC4C, 0x9EB9, 0xFC4D, 0x9EBA, 0xFC4E, 0x9EBC, 0xFC4F, 0x9EBF, + 0xFC50, 0x9EC0, 0xFC51, 0x9EC1, 0xFC52, 0x9EC2, 0xFC53, 0x9EC3, 0xFC54, 0x9EC5, 0xFC55, 0x9EC6, 0xFC56, 0x9EC7, 0xFC57, 0x9EC8, + 0xFC58, 0x9ECA, 0xFC59, 0x9ECB, 0xFC5A, 0x9ECC, 0xFC5B, 0x9ED0, 0xFC5C, 0x9ED2, 0xFC5D, 0x9ED3, 0xFC5E, 0x9ED5, 0xFC5F, 0x9ED6, + 0xFC60, 0x9ED7, 0xFC61, 0x9ED9, 0xFC62, 0x9EDA, 0xFC63, 0x9EDE, 0xFC64, 0x9EE1, 0xFC65, 0x9EE3, 0xFC66, 0x9EE4, 0xFC67, 0x9EE6, + 0xFC68, 0x9EE8, 0xFC69, 0x9EEB, 0xFC6A, 0x9EEC, 0xFC6B, 0x9EED, 0xFC6C, 0x9EEE, 0xFC6D, 0x9EF0, 0xFC6E, 0x9EF1, 0xFC6F, 0x9EF2, + 0xFC70, 0x9EF3, 0xFC71, 0x9EF4, 0xFC72, 0x9EF5, 0xFC73, 0x9EF6, 0xFC74, 0x9EF7, 0xFC75, 0x9EF8, 0xFC76, 0x9EFA, 0xFC77, 0x9EFD, + 0xFC78, 0x9EFF, 0xFC79, 0x9F00, 0xFC7A, 0x9F01, 0xFC7B, 0x9F02, 0xFC7C, 0x9F03, 0xFC7D, 0x9F04, 0xFC7E, 0x9F05, 0xFC80, 0x9F06, + 0xFC81, 0x9F07, 0xFC82, 0x9F08, 0xFC83, 0x9F09, 0xFC84, 0x9F0A, 0xFC85, 0x9F0C, 0xFC86, 0x9F0F, 0xFC87, 0x9F11, 0xFC88, 0x9F12, + 0xFC89, 0x9F14, 0xFC8A, 0x9F15, 0xFC8B, 0x9F16, 0xFC8C, 0x9F18, 0xFC8D, 0x9F1A, 0xFC8E, 0x9F1B, 0xFC8F, 0x9F1C, 0xFC90, 0x9F1D, + 0xFC91, 0x9F1E, 0xFC92, 0x9F1F, 0xFC93, 0x9F21, 0xFC94, 0x9F23, 0xFC95, 0x9F24, 0xFC96, 0x9F25, 0xFC97, 0x9F26, 0xFC98, 0x9F27, + 0xFC99, 0x9F28, 0xFC9A, 0x9F29, 0xFC9B, 0x9F2A, 0xFC9C, 0x9F2B, 0xFC9D, 0x9F2D, 0xFC9E, 0x9F2E, 0xFC9F, 0x9F30, 0xFCA0, 0x9F31, + 0xFD40, 0x9F32, 0xFD41, 0x9F33, 0xFD42, 0x9F34, 0xFD43, 0x9F35, 0xFD44, 0x9F36, 0xFD45, 0x9F38, 0xFD46, 0x9F3A, 0xFD47, 0x9F3C, + 0xFD48, 0x9F3F, 0xFD49, 0x9F40, 0xFD4A, 0x9F41, 0xFD4B, 0x9F42, 0xFD4C, 0x9F43, 0xFD4D, 0x9F45, 0xFD4E, 0x9F46, 0xFD4F, 0x9F47, + 0xFD50, 0x9F48, 0xFD51, 0x9F49, 0xFD52, 0x9F4A, 0xFD53, 0x9F4B, 0xFD54, 0x9F4C, 0xFD55, 0x9F4D, 0xFD56, 0x9F4E, 0xFD57, 0x9F4F, + 0xFD58, 0x9F52, 0xFD59, 0x9F53, 0xFD5A, 0x9F54, 0xFD5B, 0x9F55, 0xFD5C, 0x9F56, 0xFD5D, 0x9F57, 0xFD5E, 0x9F58, 0xFD5F, 0x9F59, + 0xFD60, 0x9F5A, 0xFD61, 0x9F5B, 0xFD62, 0x9F5C, 0xFD63, 0x9F5D, 0xFD64, 0x9F5E, 0xFD65, 0x9F5F, 0xFD66, 0x9F60, 0xFD67, 0x9F61, + 0xFD68, 0x9F62, 0xFD69, 0x9F63, 0xFD6A, 0x9F64, 0xFD6B, 0x9F65, 0xFD6C, 0x9F66, 0xFD6D, 0x9F67, 0xFD6E, 0x9F68, 0xFD6F, 0x9F69, + 0xFD70, 0x9F6A, 0xFD71, 0x9F6B, 0xFD72, 0x9F6C, 0xFD73, 0x9F6D, 0xFD74, 0x9F6E, 0xFD75, 0x9F6F, 0xFD76, 0x9F70, 0xFD77, 0x9F71, + 0xFD78, 0x9F72, 0xFD79, 0x9F73, 0xFD7A, 0x9F74, 0xFD7B, 0x9F75, 0xFD7C, 0x9F76, 0xFD7D, 0x9F77, 0xFD7E, 0x9F78, 0xFD80, 0x9F79, + 0xFD81, 0x9F7A, 0xFD82, 0x9F7B, 0xFD83, 0x9F7C, 0xFD84, 0x9F7D, 0xFD85, 0x9F7E, 0xFD86, 0x9F81, 0xFD87, 0x9F82, 0xFD88, 0x9F8D, + 0xFD89, 0x9F8E, 0xFD8A, 0x9F8F, 0xFD8B, 0x9F90, 0xFD8C, 0x9F91, 0xFD8D, 0x9F92, 0xFD8E, 0x9F93, 0xFD8F, 0x9F94, 0xFD90, 0x9F95, + 0xFD91, 0x9F96, 0xFD92, 0x9F97, 0xFD93, 0x9F98, 0xFD94, 0x9F9C, 0xFD95, 0x9F9D, 0xFD96, 0x9F9E, 0xFD97, 0x9FA1, 0xFD98, 0x9FA2, + 0xFD99, 0x9FA3, 0xFD9A, 0x9FA4, 0xFD9B, 0x9FA5, 0xFD9C, 0xF92C, 0xFD9D, 0xF979, 0xFD9E, 0xF995, 0xFD9F, 0xF9E7, 0xFDA0, 0xF9F1, + 0xFE40, 0xFA0C, 0xFE41, 0xFA0D, 0xFE42, 0xFA0E, 0xFE43, 0xFA0F, 0xFE44, 0xFA11, 0xFE45, 0xFA13, 0xFE46, 0xFA14, 0xFE47, 0xFA18, + 0xFE48, 0xFA1F, 0xFE49, 0xFA20, 0xFE4A, 0xFA21, 0xFE4B, 0xFA23, 0xFE4C, 0xFA24, 0xFE4D, 0xFA27, 0xFE4E, 0xFA28, 0xFE4F, 0xFA29, + 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 949 || FF_CODE_PAGE == 0 /* Korean */ +static +const WCHAR uni2oem949[] = { /* Unicode --> Korean pairs */ + 0x00A1, 0xA2AE, 0x00A4, 0xA2B4, 0x00A7, 0xA1D7, 0x00A8, 0xA1A7, 0x00AA, 0xA8A3, 0x00AD, 0xA1A9, 0x00AE, 0xA2E7, 0x00B0, 0xA1C6, + 0x00B1, 0xA1BE, 0x00B2, 0xA9F7, 0x00B3, 0xA9F8, 0x00B4, 0xA2A5, 0x00B6, 0xA2D2, 0x00B7, 0xA1A4, 0x00B8, 0xA2AC, 0x00B9, 0xA9F6, + 0x00BA, 0xA8AC, 0x00BC, 0xA8F9, 0x00BD, 0xA8F6, 0x00BE, 0xA8FA, 0x00BF, 0xA2AF, 0x00C6, 0xA8A1, 0x00D0, 0xA8A2, 0x00D7, 0xA1BF, + 0x00D8, 0xA8AA, 0x00DE, 0xA8AD, 0x00DF, 0xA9AC, 0x00E6, 0xA9A1, 0x00F0, 0xA9A3, 0x00F7, 0xA1C0, 0x00F8, 0xA9AA, 0x00FE, 0xA9AD, + 0x0111, 0xA9A2, 0x0126, 0xA8A4, 0x0127, 0xA9A4, 0x0131, 0xA9A5, 0x0132, 0xA8A6, 0x0133, 0xA9A6, 0x0138, 0xA9A7, 0x013F, 0xA8A8, + 0x0140, 0xA9A8, 0x0141, 0xA8A9, 0x0142, 0xA9A9, 0x0149, 0xA9B0, 0x014A, 0xA8AF, 0x014B, 0xA9AF, 0x0152, 0xA8AB, 0x0153, 0xA9AB, + 0x0166, 0xA8AE, 0x0167, 0xA9AE, 0x02C7, 0xA2A7, 0x02D0, 0xA2B0, 0x02D8, 0xA2A8, 0x02D9, 0xA2AB, 0x02DA, 0xA2AA, 0x02DB, 0xA2AD, + 0x02DD, 0xA2A9, 0x0391, 0xA5C1, 0x0392, 0xA5C2, 0x0393, 0xA5C3, 0x0394, 0xA5C4, 0x0395, 0xA5C5, 0x0396, 0xA5C6, 0x0397, 0xA5C7, + 0x0398, 0xA5C8, 0x0399, 0xA5C9, 0x039A, 0xA5CA, 0x039B, 0xA5CB, 0x039C, 0xA5CC, 0x039D, 0xA5CD, 0x039E, 0xA5CE, 0x039F, 0xA5CF, + 0x03A0, 0xA5D0, 0x03A1, 0xA5D1, 0x03A3, 0xA5D2, 0x03A4, 0xA5D3, 0x03A5, 0xA5D4, 0x03A6, 0xA5D5, 0x03A7, 0xA5D6, 0x03A8, 0xA5D7, + 0x03A9, 0xA5D8, 0x03B1, 0xA5E1, 0x03B2, 0xA5E2, 0x03B3, 0xA5E3, 0x03B4, 0xA5E4, 0x03B5, 0xA5E5, 0x03B6, 0xA5E6, 0x03B7, 0xA5E7, + 0x03B8, 0xA5E8, 0x03B9, 0xA5E9, 0x03BA, 0xA5EA, 0x03BB, 0xA5EB, 0x03BC, 0xA5EC, 0x03BD, 0xA5ED, 0x03BE, 0xA5EE, 0x03BF, 0xA5EF, + 0x03C0, 0xA5F0, 0x03C1, 0xA5F1, 0x03C3, 0xA5F2, 0x03C4, 0xA5F3, 0x03C5, 0xA5F4, 0x03C6, 0xA5F5, 0x03C7, 0xA5F6, 0x03C8, 0xA5F7, + 0x03C9, 0xA5F8, 0x0401, 0xACA7, 0x0410, 0xACA1, 0x0411, 0xACA2, 0x0412, 0xACA3, 0x0413, 0xACA4, 0x0414, 0xACA5, 0x0415, 0xACA6, + 0x0416, 0xACA8, 0x0417, 0xACA9, 0x0418, 0xACAA, 0x0419, 0xACAB, 0x041A, 0xACAC, 0x041B, 0xACAD, 0x041C, 0xACAE, 0x041D, 0xACAF, + 0x041E, 0xACB0, 0x041F, 0xACB1, 0x0420, 0xACB2, 0x0421, 0xACB3, 0x0422, 0xACB4, 0x0423, 0xACB5, 0x0424, 0xACB6, 0x0425, 0xACB7, + 0x0426, 0xACB8, 0x0427, 0xACB9, 0x0428, 0xACBA, 0x0429, 0xACBB, 0x042A, 0xACBC, 0x042B, 0xACBD, 0x042C, 0xACBE, 0x042D, 0xACBF, + 0x042E, 0xACC0, 0x042F, 0xACC1, 0x0430, 0xACD1, 0x0431, 0xACD2, 0x0432, 0xACD3, 0x0433, 0xACD4, 0x0434, 0xACD5, 0x0435, 0xACD6, + 0x0436, 0xACD8, 0x0437, 0xACD9, 0x0438, 0xACDA, 0x0439, 0xACDB, 0x043A, 0xACDC, 0x043B, 0xACDD, 0x043C, 0xACDE, 0x043D, 0xACDF, + 0x043E, 0xACE0, 0x043F, 0xACE1, 0x0440, 0xACE2, 0x0441, 0xACE3, 0x0442, 0xACE4, 0x0443, 0xACE5, 0x0444, 0xACE6, 0x0445, 0xACE7, + 0x0446, 0xACE8, 0x0447, 0xACE9, 0x0448, 0xACEA, 0x0449, 0xACEB, 0x044A, 0xACEC, 0x044B, 0xACED, 0x044C, 0xACEE, 0x044D, 0xACEF, + 0x044E, 0xACF0, 0x044F, 0xACF1, 0x0451, 0xACD7, 0x2015, 0xA1AA, 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, + 0x2020, 0xA2D3, 0x2021, 0xA2D4, 0x2025, 0xA1A5, 0x2026, 0xA1A6, 0x2030, 0xA2B6, 0x2032, 0xA1C7, 0x2033, 0xA1C8, 0x203B, 0xA1D8, + 0x2074, 0xA9F9, 0x207F, 0xA9FA, 0x2081, 0xA9FB, 0x2082, 0xA9FC, 0x2083, 0xA9FD, 0x2084, 0xA9FE, 0x20AC, 0xA2E6, 0x2103, 0xA1C9, + 0x2109, 0xA2B5, 0x2113, 0xA7A4, 0x2116, 0xA2E0, 0x2121, 0xA2E5, 0x2122, 0xA2E2, 0x2126, 0xA7D9, 0x212B, 0xA1CA, 0x2153, 0xA8F7, + 0x2154, 0xA8F8, 0x215B, 0xA8FB, 0x215C, 0xA8FC, 0x215D, 0xA8FD, 0x215E, 0xA8FE, 0x2160, 0xA5B0, 0x2161, 0xA5B1, 0x2162, 0xA5B2, + 0x2163, 0xA5B3, 0x2164, 0xA5B4, 0x2165, 0xA5B5, 0x2166, 0xA5B6, 0x2167, 0xA5B7, 0x2168, 0xA5B8, 0x2169, 0xA5B9, 0x2170, 0xA5A1, + 0x2171, 0xA5A2, 0x2172, 0xA5A3, 0x2173, 0xA5A4, 0x2174, 0xA5A5, 0x2175, 0xA5A6, 0x2176, 0xA5A7, 0x2177, 0xA5A8, 0x2178, 0xA5A9, + 0x2179, 0xA5AA, 0x2190, 0xA1E7, 0x2191, 0xA1E8, 0x2192, 0xA1E6, 0x2193, 0xA1E9, 0x2194, 0xA1EA, 0x2195, 0xA2D5, 0x2196, 0xA2D8, + 0x2197, 0xA2D6, 0x2198, 0xA2D9, 0x2199, 0xA2D7, 0x21D2, 0xA2A1, 0x21D4, 0xA2A2, 0x2200, 0xA2A3, 0x2202, 0xA1D3, 0x2203, 0xA2A4, + 0x2207, 0xA1D4, 0x2208, 0xA1F4, 0x220B, 0xA1F5, 0x220F, 0xA2B3, 0x2211, 0xA2B2, 0x221A, 0xA1EE, 0x221D, 0xA1F0, 0x221E, 0xA1C4, + 0x2220, 0xA1D0, 0x2225, 0xA1AB, 0x2227, 0xA1FC, 0x2228, 0xA1FD, 0x2229, 0xA1FB, 0x222A, 0xA1FA, 0x222B, 0xA1F2, 0x222C, 0xA1F3, + 0x222E, 0xA2B1, 0x2234, 0xA1C5, 0x2235, 0xA1F1, 0x223C, 0xA1AD, 0x223D, 0xA1EF, 0x2252, 0xA1D6, 0x2260, 0xA1C1, 0x2261, 0xA1D5, + 0x2264, 0xA1C2, 0x2265, 0xA1C3, 0x226A, 0xA1EC, 0x226B, 0xA1ED, 0x2282, 0xA1F8, 0x2283, 0xA1F9, 0x2286, 0xA1F6, 0x2287, 0xA1F7, + 0x2299, 0xA2C1, 0x22A5, 0xA1D1, 0x2312, 0xA1D2, 0x2460, 0xA8E7, 0x2461, 0xA8E8, 0x2462, 0xA8E9, 0x2463, 0xA8EA, 0x2464, 0xA8EB, + 0x2465, 0xA8EC, 0x2466, 0xA8ED, 0x2467, 0xA8EE, 0x2468, 0xA8EF, 0x2469, 0xA8F0, 0x246A, 0xA8F1, 0x246B, 0xA8F2, 0x246C, 0xA8F3, + 0x246D, 0xA8F4, 0x246E, 0xA8F5, 0x2474, 0xA9E7, 0x2475, 0xA9E8, 0x2476, 0xA9E9, 0x2477, 0xA9EA, 0x2478, 0xA9EB, 0x2479, 0xA9EC, + 0x247A, 0xA9ED, 0x247B, 0xA9EE, 0x247C, 0xA9EF, 0x247D, 0xA9F0, 0x247E, 0xA9F1, 0x247F, 0xA9F2, 0x2480, 0xA9F3, 0x2481, 0xA9F4, + 0x2482, 0xA9F5, 0x249C, 0xA9CD, 0x249D, 0xA9CE, 0x249E, 0xA9CF, 0x249F, 0xA9D0, 0x24A0, 0xA9D1, 0x24A1, 0xA9D2, 0x24A2, 0xA9D3, + 0x24A3, 0xA9D4, 0x24A4, 0xA9D5, 0x24A5, 0xA9D6, 0x24A6, 0xA9D7, 0x24A7, 0xA9D8, 0x24A8, 0xA9D9, 0x24A9, 0xA9DA, 0x24AA, 0xA9DB, + 0x24AB, 0xA9DC, 0x24AC, 0xA9DD, 0x24AD, 0xA9DE, 0x24AE, 0xA9DF, 0x24AF, 0xA9E0, 0x24B0, 0xA9E1, 0x24B1, 0xA9E2, 0x24B2, 0xA9E3, + 0x24B3, 0xA9E4, 0x24B4, 0xA9E5, 0x24B5, 0xA9E6, 0x24D0, 0xA8CD, 0x24D1, 0xA8CE, 0x24D2, 0xA8CF, 0x24D3, 0xA8D0, 0x24D4, 0xA8D1, + 0x24D5, 0xA8D2, 0x24D6, 0xA8D3, 0x24D7, 0xA8D4, 0x24D8, 0xA8D5, 0x24D9, 0xA8D6, 0x24DA, 0xA8D7, 0x24DB, 0xA8D8, 0x24DC, 0xA8D9, + 0x24DD, 0xA8DA, 0x24DE, 0xA8DB, 0x24DF, 0xA8DC, 0x24E0, 0xA8DD, 0x24E1, 0xA8DE, 0x24E2, 0xA8DF, 0x24E3, 0xA8E0, 0x24E4, 0xA8E1, + 0x24E5, 0xA8E2, 0x24E6, 0xA8E3, 0x24E7, 0xA8E4, 0x24E8, 0xA8E5, 0x24E9, 0xA8E6, 0x2500, 0xA6A1, 0x2501, 0xA6AC, 0x2502, 0xA6A2, + 0x2503, 0xA6AD, 0x250C, 0xA6A3, 0x250D, 0xA6C8, 0x250E, 0xA6C7, 0x250F, 0xA6AE, 0x2510, 0xA6A4, 0x2511, 0xA6C2, 0x2512, 0xA6C1, + 0x2513, 0xA6AF, 0x2514, 0xA6A6, 0x2515, 0xA6C6, 0x2516, 0xA6C5, 0x2517, 0xA6B1, 0x2518, 0xA6A5, 0x2519, 0xA6C4, 0x251A, 0xA6C3, + 0x251B, 0xA6B0, 0x251C, 0xA6A7, 0x251D, 0xA6BC, 0x251E, 0xA6C9, 0x251F, 0xA6CA, 0x2520, 0xA6B7, 0x2521, 0xA6CB, 0x2522, 0xA6CC, + 0x2523, 0xA6B2, 0x2524, 0xA6A9, 0x2525, 0xA6BE, 0x2526, 0xA6CD, 0x2527, 0xA6CE, 0x2528, 0xA6B9, 0x2529, 0xA6CF, 0x252A, 0xA6D0, + 0x252B, 0xA6B4, 0x252C, 0xA6A8, 0x252D, 0xA6D1, 0x252E, 0xA6D2, 0x252F, 0xA6B8, 0x2530, 0xA6BD, 0x2531, 0xA6D3, 0x2532, 0xA6D4, + 0x2533, 0xA6B3, 0x2534, 0xA6AA, 0x2535, 0xA6D5, 0x2536, 0xA6D6, 0x2537, 0xA6BA, 0x2538, 0xA6BF, 0x2539, 0xA6D7, 0x253A, 0xA6D8, + 0x253B, 0xA6B5, 0x253C, 0xA6AB, 0x253D, 0xA6D9, 0x253E, 0xA6DA, 0x253F, 0xA6BB, 0x2540, 0xA6DB, 0x2541, 0xA6DC, 0x2542, 0xA6C0, + 0x2543, 0xA6DD, 0x2544, 0xA6DE, 0x2545, 0xA6DF, 0x2546, 0xA6E0, 0x2547, 0xA6E1, 0x2548, 0xA6E2, 0x2549, 0xA6E3, 0x254A, 0xA6E4, + 0x254B, 0xA6B6, 0x2592, 0xA2C6, 0x25A0, 0xA1E1, 0x25A1, 0xA1E0, 0x25A3, 0xA2C3, 0x25A4, 0xA2C7, 0x25A5, 0xA2C8, 0x25A6, 0xA2CB, + 0x25A7, 0xA2CA, 0x25A8, 0xA2C9, 0x25A9, 0xA2CC, 0x25B2, 0xA1E3, 0x25B3, 0xA1E2, 0x25B6, 0xA2BA, 0x25B7, 0xA2B9, 0x25BC, 0xA1E5, + 0x25BD, 0xA1E4, 0x25C0, 0xA2B8, 0x25C1, 0xA2B7, 0x25C6, 0xA1DF, 0x25C7, 0xA1DE, 0x25C8, 0xA2C2, 0x25CB, 0xA1DB, 0x25CE, 0xA1DD, + 0x25CF, 0xA1DC, 0x25D0, 0xA2C4, 0x25D1, 0xA2C5, 0x2605, 0xA1DA, 0x2606, 0xA1D9, 0x260E, 0xA2CF, 0x260F, 0xA2CE, 0x261C, 0xA2D0, + 0x261E, 0xA2D1, 0x2640, 0xA1CF, 0x2642, 0xA1CE, 0x2660, 0xA2BC, 0x2661, 0xA2BD, 0x2663, 0xA2C0, 0x2664, 0xA2BB, 0x2665, 0xA2BE, + 0x2667, 0xA2BF, 0x2668, 0xA2CD, 0x2669, 0xA2DB, 0x266A, 0xA2DC, 0x266C, 0xA2DD, 0x266D, 0xA2DA, 0x3000, 0xA1A1, 0x3001, 0xA1A2, + 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3008, 0xA1B4, 0x3009, 0xA1B5, 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, + 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BC, 0x3011, 0xA1BD, 0x3013, 0xA1EB, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3041, 0xAAA1, + 0x3042, 0xAAA2, 0x3043, 0xAAA3, 0x3044, 0xAAA4, 0x3045, 0xAAA5, 0x3046, 0xAAA6, 0x3047, 0xAAA7, 0x3048, 0xAAA8, 0x3049, 0xAAA9, + 0x304A, 0xAAAA, 0x304B, 0xAAAB, 0x304C, 0xAAAC, 0x304D, 0xAAAD, 0x304E, 0xAAAE, 0x304F, 0xAAAF, 0x3050, 0xAAB0, 0x3051, 0xAAB1, + 0x3052, 0xAAB2, 0x3053, 0xAAB3, 0x3054, 0xAAB4, 0x3055, 0xAAB5, 0x3056, 0xAAB6, 0x3057, 0xAAB7, 0x3058, 0xAAB8, 0x3059, 0xAAB9, + 0x305A, 0xAABA, 0x305B, 0xAABB, 0x305C, 0xAABC, 0x305D, 0xAABD, 0x305E, 0xAABE, 0x305F, 0xAABF, 0x3060, 0xAAC0, 0x3061, 0xAAC1, + 0x3062, 0xAAC2, 0x3063, 0xAAC3, 0x3064, 0xAAC4, 0x3065, 0xAAC5, 0x3066, 0xAAC6, 0x3067, 0xAAC7, 0x3068, 0xAAC8, 0x3069, 0xAAC9, + 0x306A, 0xAACA, 0x306B, 0xAACB, 0x306C, 0xAACC, 0x306D, 0xAACD, 0x306E, 0xAACE, 0x306F, 0xAACF, 0x3070, 0xAAD0, 0x3071, 0xAAD1, + 0x3072, 0xAAD2, 0x3073, 0xAAD3, 0x3074, 0xAAD4, 0x3075, 0xAAD5, 0x3076, 0xAAD6, 0x3077, 0xAAD7, 0x3078, 0xAAD8, 0x3079, 0xAAD9, + 0x307A, 0xAADA, 0x307B, 0xAADB, 0x307C, 0xAADC, 0x307D, 0xAADD, 0x307E, 0xAADE, 0x307F, 0xAADF, 0x3080, 0xAAE0, 0x3081, 0xAAE1, + 0x3082, 0xAAE2, 0x3083, 0xAAE3, 0x3084, 0xAAE4, 0x3085, 0xAAE5, 0x3086, 0xAAE6, 0x3087, 0xAAE7, 0x3088, 0xAAE8, 0x3089, 0xAAE9, + 0x308A, 0xAAEA, 0x308B, 0xAAEB, 0x308C, 0xAAEC, 0x308D, 0xAAED, 0x308E, 0xAAEE, 0x308F, 0xAAEF, 0x3090, 0xAAF0, 0x3091, 0xAAF1, + 0x3092, 0xAAF2, 0x3093, 0xAAF3, 0x30A1, 0xABA1, 0x30A2, 0xABA2, 0x30A3, 0xABA3, 0x30A4, 0xABA4, 0x30A5, 0xABA5, 0x30A6, 0xABA6, + 0x30A7, 0xABA7, 0x30A8, 0xABA8, 0x30A9, 0xABA9, 0x30AA, 0xABAA, 0x30AB, 0xABAB, 0x30AC, 0xABAC, 0x30AD, 0xABAD, 0x30AE, 0xABAE, + 0x30AF, 0xABAF, 0x30B0, 0xABB0, 0x30B1, 0xABB1, 0x30B2, 0xABB2, 0x30B3, 0xABB3, 0x30B4, 0xABB4, 0x30B5, 0xABB5, 0x30B6, 0xABB6, + 0x30B7, 0xABB7, 0x30B8, 0xABB8, 0x30B9, 0xABB9, 0x30BA, 0xABBA, 0x30BB, 0xABBB, 0x30BC, 0xABBC, 0x30BD, 0xABBD, 0x30BE, 0xABBE, + 0x30BF, 0xABBF, 0x30C0, 0xABC0, 0x30C1, 0xABC1, 0x30C2, 0xABC2, 0x30C3, 0xABC3, 0x30C4, 0xABC4, 0x30C5, 0xABC5, 0x30C6, 0xABC6, + 0x30C7, 0xABC7, 0x30C8, 0xABC8, 0x30C9, 0xABC9, 0x30CA, 0xABCA, 0x30CB, 0xABCB, 0x30CC, 0xABCC, 0x30CD, 0xABCD, 0x30CE, 0xABCE, + 0x30CF, 0xABCF, 0x30D0, 0xABD0, 0x30D1, 0xABD1, 0x30D2, 0xABD2, 0x30D3, 0xABD3, 0x30D4, 0xABD4, 0x30D5, 0xABD5, 0x30D6, 0xABD6, + 0x30D7, 0xABD7, 0x30D8, 0xABD8, 0x30D9, 0xABD9, 0x30DA, 0xABDA, 0x30DB, 0xABDB, 0x30DC, 0xABDC, 0x30DD, 0xABDD, 0x30DE, 0xABDE, + 0x30DF, 0xABDF, 0x30E0, 0xABE0, 0x30E1, 0xABE1, 0x30E2, 0xABE2, 0x30E3, 0xABE3, 0x30E4, 0xABE4, 0x30E5, 0xABE5, 0x30E6, 0xABE6, + 0x30E7, 0xABE7, 0x30E8, 0xABE8, 0x30E9, 0xABE9, 0x30EA, 0xABEA, 0x30EB, 0xABEB, 0x30EC, 0xABEC, 0x30ED, 0xABED, 0x30EE, 0xABEE, + 0x30EF, 0xABEF, 0x30F0, 0xABF0, 0x30F1, 0xABF1, 0x30F2, 0xABF2, 0x30F3, 0xABF3, 0x30F4, 0xABF4, 0x30F5, 0xABF5, 0x30F6, 0xABF6, + 0x3131, 0xA4A1, 0x3132, 0xA4A2, 0x3133, 0xA4A3, 0x3134, 0xA4A4, 0x3135, 0xA4A5, 0x3136, 0xA4A6, 0x3137, 0xA4A7, 0x3138, 0xA4A8, + 0x3139, 0xA4A9, 0x313A, 0xA4AA, 0x313B, 0xA4AB, 0x313C, 0xA4AC, 0x313D, 0xA4AD, 0x313E, 0xA4AE, 0x313F, 0xA4AF, 0x3140, 0xA4B0, + 0x3141, 0xA4B1, 0x3142, 0xA4B2, 0x3143, 0xA4B3, 0x3144, 0xA4B4, 0x3145, 0xA4B5, 0x3146, 0xA4B6, 0x3147, 0xA4B7, 0x3148, 0xA4B8, + 0x3149, 0xA4B9, 0x314A, 0xA4BA, 0x314B, 0xA4BB, 0x314C, 0xA4BC, 0x314D, 0xA4BD, 0x314E, 0xA4BE, 0x314F, 0xA4BF, 0x3150, 0xA4C0, + 0x3151, 0xA4C1, 0x3152, 0xA4C2, 0x3153, 0xA4C3, 0x3154, 0xA4C4, 0x3155, 0xA4C5, 0x3156, 0xA4C6, 0x3157, 0xA4C7, 0x3158, 0xA4C8, + 0x3159, 0xA4C9, 0x315A, 0xA4CA, 0x315B, 0xA4CB, 0x315C, 0xA4CC, 0x315D, 0xA4CD, 0x315E, 0xA4CE, 0x315F, 0xA4CF, 0x3160, 0xA4D0, + 0x3161, 0xA4D1, 0x3162, 0xA4D2, 0x3163, 0xA4D3, 0x3164, 0xA4D4, 0x3165, 0xA4D5, 0x3166, 0xA4D6, 0x3167, 0xA4D7, 0x3168, 0xA4D8, + 0x3169, 0xA4D9, 0x316A, 0xA4DA, 0x316B, 0xA4DB, 0x316C, 0xA4DC, 0x316D, 0xA4DD, 0x316E, 0xA4DE, 0x316F, 0xA4DF, 0x3170, 0xA4E0, + 0x3171, 0xA4E1, 0x3172, 0xA4E2, 0x3173, 0xA4E3, 0x3174, 0xA4E4, 0x3175, 0xA4E5, 0x3176, 0xA4E6, 0x3177, 0xA4E7, 0x3178, 0xA4E8, + 0x3179, 0xA4E9, 0x317A, 0xA4EA, 0x317B, 0xA4EB, 0x317C, 0xA4EC, 0x317D, 0xA4ED, 0x317E, 0xA4EE, 0x317F, 0xA4EF, 0x3180, 0xA4F0, + 0x3181, 0xA4F1, 0x3182, 0xA4F2, 0x3183, 0xA4F3, 0x3184, 0xA4F4, 0x3185, 0xA4F5, 0x3186, 0xA4F6, 0x3187, 0xA4F7, 0x3188, 0xA4F8, + 0x3189, 0xA4F9, 0x318A, 0xA4FA, 0x318B, 0xA4FB, 0x318C, 0xA4FC, 0x318D, 0xA4FD, 0x318E, 0xA4FE, 0x3200, 0xA9B1, 0x3201, 0xA9B2, + 0x3202, 0xA9B3, 0x3203, 0xA9B4, 0x3204, 0xA9B5, 0x3205, 0xA9B6, 0x3206, 0xA9B7, 0x3207, 0xA9B8, 0x3208, 0xA9B9, 0x3209, 0xA9BA, + 0x320A, 0xA9BB, 0x320B, 0xA9BC, 0x320C, 0xA9BD, 0x320D, 0xA9BE, 0x320E, 0xA9BF, 0x320F, 0xA9C0, 0x3210, 0xA9C1, 0x3211, 0xA9C2, + 0x3212, 0xA9C3, 0x3213, 0xA9C4, 0x3214, 0xA9C5, 0x3215, 0xA9C6, 0x3216, 0xA9C7, 0x3217, 0xA9C8, 0x3218, 0xA9C9, 0x3219, 0xA9CA, + 0x321A, 0xA9CB, 0x321B, 0xA9CC, 0x321C, 0xA2DF, 0x3260, 0xA8B1, 0x3261, 0xA8B2, 0x3262, 0xA8B3, 0x3263, 0xA8B4, 0x3264, 0xA8B5, + 0x3265, 0xA8B6, 0x3266, 0xA8B7, 0x3267, 0xA8B8, 0x3268, 0xA8B9, 0x3269, 0xA8BA, 0x326A, 0xA8BB, 0x326B, 0xA8BC, 0x326C, 0xA8BD, + 0x326D, 0xA8BE, 0x326E, 0xA8BF, 0x326F, 0xA8C0, 0x3270, 0xA8C1, 0x3271, 0xA8C2, 0x3272, 0xA8C3, 0x3273, 0xA8C4, 0x3274, 0xA8C5, + 0x3275, 0xA8C6, 0x3276, 0xA8C7, 0x3277, 0xA8C8, 0x3278, 0xA8C9, 0x3279, 0xA8CA, 0x327A, 0xA8CB, 0x327B, 0xA8CC, 0x327F, 0xA2DE, + 0x3380, 0xA7C9, 0x3381, 0xA7CA, 0x3382, 0xA7CB, 0x3383, 0xA7CC, 0x3384, 0xA7CD, 0x3388, 0xA7BA, 0x3389, 0xA7BB, 0x338A, 0xA7DC, + 0x338B, 0xA7DD, 0x338C, 0xA7DE, 0x338D, 0xA7B6, 0x338E, 0xA7B7, 0x338F, 0xA7B8, 0x3390, 0xA7D4, 0x3391, 0xA7D5, 0x3392, 0xA7D6, + 0x3393, 0xA7D7, 0x3394, 0xA7D8, 0x3395, 0xA7A1, 0x3396, 0xA7A2, 0x3397, 0xA7A3, 0x3398, 0xA7A5, 0x3399, 0xA7AB, 0x339A, 0xA7AC, + 0x339B, 0xA7AD, 0x339C, 0xA7AE, 0x339D, 0xA7AF, 0x339E, 0xA7B0, 0x339F, 0xA7B1, 0x33A0, 0xA7B2, 0x33A1, 0xA7B3, 0x33A2, 0xA7B4, + 0x33A3, 0xA7A7, 0x33A4, 0xA7A8, 0x33A5, 0xA7A9, 0x33A6, 0xA7AA, 0x33A7, 0xA7BD, 0x33A8, 0xA7BE, 0x33A9, 0xA7E5, 0x33AA, 0xA7E6, + 0x33AB, 0xA7E7, 0x33AC, 0xA7E8, 0x33AD, 0xA7E1, 0x33AE, 0xA7E2, 0x33AF, 0xA7E3, 0x33B0, 0xA7BF, 0x33B1, 0xA7C0, 0x33B2, 0xA7C1, + 0x33B3, 0xA7C2, 0x33B4, 0xA7C3, 0x33B5, 0xA7C4, 0x33B6, 0xA7C5, 0x33B7, 0xA7C6, 0x33B8, 0xA7C7, 0x33B9, 0xA7C8, 0x33BA, 0xA7CE, + 0x33BB, 0xA7CF, 0x33BC, 0xA7D0, 0x33BD, 0xA7D1, 0x33BE, 0xA7D2, 0x33BF, 0xA7D3, 0x33C0, 0xA7DA, 0x33C1, 0xA7DB, 0x33C2, 0xA2E3, + 0x33C3, 0xA7EC, 0x33C4, 0xA7A6, 0x33C5, 0xA7E0, 0x33C6, 0xA7EF, 0x33C7, 0xA2E1, 0x33C8, 0xA7BC, 0x33C9, 0xA7ED, 0x33CA, 0xA7B5, + 0x33CF, 0xA7B9, 0x33D0, 0xA7EA, 0x33D3, 0xA7EB, 0x33D6, 0xA7DF, 0x33D8, 0xA2E4, 0x33DB, 0xA7E4, 0x33DC, 0xA7EE, 0x33DD, 0xA7E9, + 0x4E00, 0xECE9, 0x4E01, 0xEFCB, 0x4E03, 0xF6D2, 0x4E07, 0xD8B2, 0x4E08, 0xEDDB, 0x4E09, 0xDFB2, 0x4E0A, 0xDFBE, 0x4E0B, 0xF9BB, + 0x4E0D, 0xDCF4, 0x4E11, 0xF5E4, 0x4E14, 0xF3A6, 0x4E15, 0xDDE0, 0x4E16, 0xE1A6, 0x4E18, 0xCEF8, 0x4E19, 0xDCB0, 0x4E1E, 0xE3AA, + 0x4E2D, 0xF1E9, 0x4E32, 0xCDFA, 0x4E38, 0xFCAF, 0x4E39, 0xD3A1, 0x4E3B, 0xF1AB, 0x4E42, 0xE7D1, 0x4E43, 0xD2AC, 0x4E45, 0xCEF9, + 0x4E4B, 0xF1FD, 0x4E4D, 0xDEBF, 0x4E4E, 0xFBBA, 0x4E4F, 0xF9B9, 0x4E56, 0xCED2, 0x4E58, 0xE3AB, 0x4E59, 0xEBE0, 0x4E5D, 0xCEFA, + 0x4E5E, 0xCBF7, 0x4E5F, 0xE5A5, 0x4E6B, 0xCAE1, 0x4E6D, 0xD4CC, 0x4E73, 0xEAE1, 0x4E76, 0xDCE3, 0x4E77, 0xDFAD, 0x4E7E, 0xCBEB, + 0x4E82, 0xD5AF, 0x4E86, 0xD6F5, 0x4E88, 0xE5F8, 0x4E8B, 0xDEC0, 0x4E8C, 0xECA3, 0x4E8E, 0xE9CD, 0x4E90, 0xEAA7, 0x4E91, 0xE9F6, + 0x4E92, 0xFBBB, 0x4E94, 0xE7E9, 0x4E95, 0xEFCC, 0x4E98, 0xD0E6, 0x4E9B, 0xDEC1, 0x4E9E, 0xE4AC, 0x4EA1, 0xD8CC, 0x4EA2, 0xF9F1, + 0x4EA4, 0xCEDF, 0x4EA5, 0xFAA4, 0x4EA6, 0xE6B2, 0x4EA8, 0xFAFB, 0x4EAB, 0xFABD, 0x4EAC, 0xCCC8, 0x4EAD, 0xEFCD, 0x4EAE, 0xD5D5, + 0x4EB6, 0xD3A2, 0x4EBA, 0xECD1, 0x4EC0, 0xE4A7, 0x4EC1, 0xECD2, 0x4EC4, 0xF6B1, 0x4EC7, 0xCEFB, 0x4ECA, 0xD0D1, 0x4ECB, 0xCBBF, + 0x4ECD, 0xEDA4, 0x4ED4, 0xEDA8, 0x4ED5, 0xDEC2, 0x4ED6, 0xF6E2, 0x4ED7, 0xEDDC, 0x4ED8, 0xDCF5, 0x4ED9, 0xE0B9, 0x4EDD, 0xD4CE, + 0x4EDF, 0xF4B5, 0x4EE3, 0xD3DB, 0x4EE4, 0xD6B5, 0x4EE5, 0xECA4, 0x4EF0, 0xE4E6, 0x4EF2, 0xF1EA, 0x4EF6, 0xCBEC, 0x4EF7, 0xCBC0, + 0x4EFB, 0xECF2, 0x4F01, 0xD0EA, 0x4F09, 0xF9F2, 0x4F0A, 0xECA5, 0x4F0B, 0xD0DF, 0x4F0D, 0xE7EA, 0x4F0E, 0xD0EB, 0x4F0F, 0xDCD1, + 0x4F10, 0xDBE9, 0x4F11, 0xFDCC, 0x4F2F, 0xDBD7, 0x4F34, 0xDAE1, 0x4F36, 0xD6B6, 0x4F38, 0xE3DF, 0x4F3A, 0xDEC3, 0x4F3C, 0xDEC4, + 0x4F3D, 0xCAA1, 0x4F43, 0xEEEC, 0x4F46, 0xD3A3, 0x4F47, 0xEEB7, 0x4F48, 0xF8CF, 0x4F4D, 0xEAC8, 0x4F4E, 0xEEB8, 0x4F4F, 0xF1AC, + 0x4F50, 0xF1A5, 0x4F51, 0xE9CE, 0x4F55, 0xF9BC, 0x4F59, 0xE5F9, 0x4F5A, 0xECEA, 0x4F5B, 0xDDD6, 0x4F5C, 0xEDC2, 0x4F69, 0xF8A5, + 0x4F6F, 0xE5BA, 0x4F70, 0xDBD8, 0x4F73, 0xCAA2, 0x4F76, 0xD1CD, 0x4F7A, 0xEEED, 0x4F7E, 0xECEB, 0x4F7F, 0xDEC5, 0x4F81, 0xE3E0, + 0x4F83, 0xCAC9, 0x4F84, 0xF2E9, 0x4F86, 0xD5CE, 0x4F88, 0xF6B6, 0x4F8A, 0xCEC2, 0x4F8B, 0xD6C7, 0x4F8D, 0xE3B4, 0x4F8F, 0xF1AD, + 0x4F91, 0xEAE2, 0x4F96, 0xD7C2, 0x4F98, 0xF3A7, 0x4F9B, 0xCDEA, 0x4F9D, 0xEBEE, 0x4FAE, 0xD9B2, 0x4FAF, 0xFDA5, 0x4FB5, 0xF6D5, + 0x4FB6, 0xD5E2, 0x4FBF, 0xF8B5, 0x4FC2, 0xCCF5, 0x4FC3, 0xF5B5, 0x4FC4, 0xE4AD, 0x4FC9, 0xE7EB, 0x4FCA, 0xF1D5, 0x4FCE, 0xF0BB, + 0x4FD1, 0xE9B5, 0x4FD3, 0xCCC9, 0x4FD4, 0xFAD5, 0x4FD7, 0xE1D4, 0x4FDA, 0xD7D6, 0x4FDD, 0xDCC1, 0x4FDF, 0xDEC6, 0x4FE0, 0xFAEF, + 0x4FE1, 0xE3E1, 0x4FEE, 0xE1F3, 0x4FEF, 0xDCF6, 0x4FF1, 0xCEFC, 0x4FF3, 0xDBC4, 0x4FF5, 0xF8F1, 0x4FF8, 0xDCE4, 0x4FFA, 0xE5EF, + 0x5002, 0xDCB1, 0x5006, 0xD5D6, 0x5009, 0xF3DA, 0x500B, 0xCBC1, 0x500D, 0xDBC3, 0x5011, 0xD9FA, 0x5012, 0xD3EE, 0x5016, 0xFAB8, + 0x5019, 0xFDA6, 0x501A, 0xEBEF, 0x501C, 0xF4A6, 0x501E, 0xCCCA, 0x501F, 0xF3A8, 0x5021, 0xF3DB, 0x5023, 0xDBA7, 0x5024, 0xF6B7, + 0x5026, 0xCFE6, 0x5027, 0xF0F2, 0x5028, 0xCBDA, 0x502A, 0xE7D2, 0x502B, 0xD7C3, 0x502C, 0xF6F0, 0x502D, 0xE8DE, 0x503B, 0xE5A6, + 0x5043, 0xE5E7, 0x5047, 0xCAA3, 0x5048, 0xCCA7, 0x5049, 0xEAC9, 0x504F, 0xF8B6, 0x5055, 0xFAA5, 0x505A, 0xF1AE, 0x505C, 0xEFCE, + 0x5065, 0xCBED, 0x5074, 0xF6B0, 0x5075, 0xEFCF, 0x5076, 0xE9CF, 0x5078, 0xF7DE, 0x5080, 0xCED3, 0x5085, 0xDCF7, 0x508D, 0xDBA8, + 0x5091, 0xCBF8, 0x5098, 0xDFA1, 0x5099, 0xDDE1, 0x50AC, 0xF5CA, 0x50AD, 0xE9B6, 0x50B2, 0xE7EC, 0x50B3, 0xEEEE, 0x50B5, 0xF3F0, + 0x50B7, 0xDFBF, 0x50BE, 0xCCCB, 0x50C5, 0xD0C1, 0x50C9, 0xF4D2, 0x50CA, 0xE0BA, 0x50CF, 0xDFC0, 0x50D1, 0xCEE0, 0x50D5, 0xDCD2, + 0x50D6, 0xFDEA, 0x50DA, 0xD6F6, 0x50DE, 0xEACA, 0x50E5, 0xE8E9, 0x50E7, 0xE3AC, 0x50ED, 0xF3D0, 0x50F9, 0xCAA4, 0x50FB, 0xDBF8, + 0x50FF, 0xDEC7, 0x5100, 0xEBF0, 0x5101, 0xF1D6, 0x5104, 0xE5E2, 0x5106, 0xCCCC, 0x5109, 0xCBFB, 0x5112, 0xEAE3, 0x511F, 0xDFC1, + 0x5121, 0xD6ED, 0x512A, 0xE9D0, 0x5132, 0xEEB9, 0x5137, 0xD5E3, 0x513A, 0xD1D3, 0x513C, 0xE5F0, 0x5140, 0xE8B4, 0x5141, 0xEBC3, + 0x5143, 0xEAAA, 0x5144, 0xFAFC, 0x5145, 0xF5F6, 0x5146, 0xF0BC, 0x5147, 0xFDD4, 0x5148, 0xE0BB, 0x5149, 0xCEC3, 0x514B, 0xD0BA, + 0x514C, 0xF7BA, 0x514D, 0xD8F3, 0x514E, 0xF7CD, 0x5152, 0xE4AE, 0x515C, 0xD4DF, 0x5162, 0xD0E7, 0x5165, 0xECFD, 0x5167, 0xD2AE, + 0x5168, 0xEEEF, 0x5169, 0xD5D7, 0x516A, 0xEAE4, 0x516B, 0xF8A2, 0x516C, 0xCDEB, 0x516D, 0xD7BF, 0x516E, 0xFBB1, 0x5171, 0xCDEC, + 0x5175, 0xDCB2, 0x5176, 0xD0EC, 0x5177, 0xCEFD, 0x5178, 0xEEF0, 0x517C, 0xCCC2, 0x5180, 0xD0ED, 0x5186, 0xE5F7, 0x518A, 0xF3FC, + 0x518D, 0xEEA2, 0x5192, 0xD9B3, 0x5195, 0xD8F4, 0x5197, 0xE9B7, 0x51A0, 0xCEAE, 0x51A5, 0xD9A2, 0x51AA, 0xD8F1, 0x51AC, 0xD4CF, + 0x51B6, 0xE5A7, 0x51B7, 0xD5D2, 0x51BD, 0xD6A9, 0x51C4, 0xF4A2, 0x51C6, 0xF1D7, 0x51C9, 0xD5D8, 0x51CB, 0xF0BD, 0x51CC, 0xD7D0, + 0x51CD, 0xD4D0, 0x51DC, 0xD7CF, 0x51DD, 0xEBEA, 0x51DE, 0xFDEB, 0x51E1, 0xDBED, 0x51F0, 0xFCC5, 0x51F1, 0xCBC2, 0x51F6, 0xFDD5, + 0x51F8, 0xF4C8, 0x51F9, 0xE8EA, 0x51FA, 0xF5F3, 0x51FD, 0xF9DE, 0x5200, 0xD3EF, 0x5203, 0xECD3, 0x5206, 0xDDC2, 0x5207, 0xEFB7, + 0x5208, 0xE7D4, 0x520A, 0xCACA, 0x520E, 0xD9FB, 0x5211, 0xFAFD, 0x5217, 0xD6AA, 0x521D, 0xF4F8, 0x5224, 0xF7F7, 0x5225, 0xDCAC, + 0x5229, 0xD7D7, 0x522A, 0xDFA2, 0x522E, 0xCEBE, 0x5230, 0xD3F0, 0x5236, 0xF0A4, 0x5237, 0xE1EC, 0x5238, 0xCFE7, 0x5239, 0xF3CB, + 0x523A, 0xEDA9, 0x523B, 0xCABE, 0x5243, 0xF4EF, 0x5247, 0xF6CE, 0x524A, 0xDEFB, 0x524B, 0xD0BB, 0x524C, 0xD5B7, 0x524D, 0xEEF1, + 0x5254, 0xF4A8, 0x5256, 0xDCF8, 0x525B, 0xCBA7, 0x525D, 0xDACE, 0x5261, 0xE0E6, 0x5269, 0xEDA5, 0x526A, 0xEEF2, 0x526F, 0xDCF9, + 0x5272, 0xF9DC, 0x5275, 0xF3DC, 0x527D, 0xF8F2, 0x527F, 0xF4F9, 0x5283, 0xFCF1, 0x5287, 0xD0BC, 0x5288, 0xDBF9, 0x5289, 0xD7B1, + 0x528D, 0xCBFC, 0x5291, 0xF0A5, 0x5292, 0xCBFD, 0x529B, 0xD5F4, 0x529F, 0xCDED, 0x52A0, 0xCAA5, 0x52A3, 0xD6AB, 0x52A4, 0xD0C2, + 0x52A9, 0xF0BE, 0x52AA, 0xD2BD, 0x52AB, 0xCCA4, 0x52BE, 0xFAB6, 0x52C1, 0xCCCD, 0x52C3, 0xDAFA, 0x52C5, 0xF6CF, 0x52C7, 0xE9B8, + 0x52C9, 0xD8F5, 0x52CD, 0xCCCE, 0x52D2, 0xD7CD, 0x52D5, 0xD4D1, 0x52D6, 0xE9ED, 0x52D8, 0xCAEB, 0x52D9, 0xD9E2, 0x52DB, 0xFDB2, + 0x52DD, 0xE3AD, 0x52DE, 0xD6CC, 0x52DF, 0xD9B4, 0x52E2, 0xE1A7, 0x52E3, 0xEED3, 0x52E4, 0xD0C3, 0x52F3, 0xFDB3, 0x52F5, 0xD5E4, + 0x52F8, 0xCFE8, 0x52FA, 0xEDC3, 0x52FB, 0xD0B2, 0x52FE, 0xCEFE, 0x52FF, 0xDAA8, 0x5305, 0xF8D0, 0x5308, 0xFDD6, 0x530D, 0xF8D1, + 0x530F, 0xF8D2, 0x5310, 0xDCD3, 0x5315, 0xDDE2, 0x5316, 0xFBF9, 0x5317, 0xDDC1, 0x5319, 0xE3B5, 0x5320, 0xEDDD, 0x5321, 0xCEC4, + 0x5323, 0xCBA1, 0x532A, 0xDDE3, 0x532F, 0xFCDD, 0x5339, 0xF9AF, 0x533F, 0xD2FB, 0x5340, 0xCFA1, 0x5341, 0xE4A8, 0x5343, 0xF4B6, + 0x5344, 0xECFE, 0x5347, 0xE3AE, 0x5348, 0xE7ED, 0x5349, 0xFDC1, 0x534A, 0xDAE2, 0x534D, 0xD8B3, 0x5351, 0xDDE4, 0x5352, 0xF0EF, + 0x5353, 0xF6F1, 0x5354, 0xFAF0, 0x5357, 0xD1F5, 0x535A, 0xDACF, 0x535C, 0xDCD4, 0x535E, 0xDCA6, 0x5360, 0xEFBF, 0x5366, 0xCECF, + 0x5368, 0xE0D9, 0x536F, 0xD9D6, 0x5370, 0xECD4, 0x5371, 0xEACB, 0x5374, 0xCABF, 0x5375, 0xD5B0, 0x5377, 0xCFE9, 0x537D, 0xF1ED, + 0x537F, 0xCCCF, 0x5384, 0xE4F8, 0x5393, 0xE4ED, 0x5398, 0xD7D8, 0x539A, 0xFDA7, 0x539F, 0xEAAB, 0x53A0, 0xF6B2, 0x53A5, 0xCFF0, + 0x53A6, 0xF9BD, 0x53AD, 0xE6F4, 0x53BB, 0xCBDB, 0x53C3, 0xF3D1, 0x53C8, 0xE9D1, 0x53C9, 0xF3A9, 0x53CA, 0xD0E0, 0x53CB, 0xE9D2, + 0x53CD, 0xDAE3, 0x53D4, 0xE2D2, 0x53D6, 0xF6A2, 0x53D7, 0xE1F4, 0x53DB, 0xDAE4, 0x53E1, 0xE7D5, 0x53E2, 0xF5BF, 0x53E3, 0xCFA2, + 0x53E4, 0xCDAF, 0x53E5, 0xCFA3, 0x53E9, 0xCDB0, 0x53EA, 0xF1FE, 0x53EB, 0xD0A3, 0x53EC, 0xE1AF, 0x53ED, 0xF8A3, 0x53EF, 0xCAA6, + 0x53F0, 0xF7BB, 0x53F1, 0xF2EA, 0x53F2, 0xDEC8, 0x53F3, 0xE9D3, 0x53F8, 0xDEC9, 0x5403, 0xFDDE, 0x5404, 0xCAC0, 0x5408, 0xF9EA, + 0x5409, 0xD1CE, 0x540A, 0xEED4, 0x540C, 0xD4D2, 0x540D, 0xD9A3, 0x540E, 0xFDA8, 0x540F, 0xD7D9, 0x5410, 0xF7CE, 0x5411, 0xFABE, + 0x541B, 0xCFD6, 0x541D, 0xD7F0, 0x541F, 0xEBE1, 0x5420, 0xF8C5, 0x5426, 0xDCFA, 0x5429, 0xDDC3, 0x542B, 0xF9DF, 0x5433, 0xE7EF, + 0x5438, 0xFDE5, 0x5439, 0xF6A3, 0x543B, 0xD9FC, 0x543C, 0xFDA9, 0x543E, 0xE7EE, 0x5442, 0xD5E5, 0x5448, 0xEFD0, 0x544A, 0xCDB1, + 0x5451, 0xF7A2, 0x5468, 0xF1B2, 0x546A, 0xF1B1, 0x5471, 0xCDB2, 0x5473, 0xDAAB, 0x5475, 0xCAA7, 0x547B, 0xE3E2, 0x547C, 0xFBBC, + 0x547D, 0xD9A4, 0x5480, 0xEEBA, 0x5486, 0xF8D3, 0x548C, 0xFBFA, 0x548E, 0xCFA4, 0x5490, 0xDCFB, 0x54A4, 0xF6E3, 0x54A8, 0xEDAA, + 0x54AB, 0xF2A1, 0x54AC, 0xCEE1, 0x54B3, 0xFAA6, 0x54B8, 0xF9E0, 0x54BD, 0xECD6, 0x54C0, 0xE4EE, 0x54C1, 0xF9A1, 0x54C4, 0xFBEF, + 0x54C8, 0xF9EB, 0x54C9, 0xEEA3, 0x54E1, 0xEAAC, 0x54E5, 0xCAA8, 0x54E8, 0xF4FA, 0x54ED, 0xCDD6, 0x54EE, 0xFCF6, 0x54F2, 0xF4C9, + 0x54FA, 0xF8D4, 0x5504, 0xF8A6, 0x5506, 0xDECA, 0x5507, 0xF2C6, 0x550E, 0xD7DA, 0x5510, 0xD3D0, 0x551C, 0xD8C5, 0x552F, 0xEAE6, + 0x5531, 0xF3DD, 0x5535, 0xE4DA, 0x553E, 0xF6E4, 0x5544, 0xF6F2, 0x5546, 0xDFC2, 0x554F, 0xD9FD, 0x5553, 0xCCF6, 0x5556, 0xD3BA, + 0x555E, 0xE4AF, 0x5563, 0xF9E1, 0x557C, 0xF0A6, 0x5580, 0xCBD3, 0x5584, 0xE0BC, 0x5586, 0xF4CA, 0x5587, 0xD4FA, 0x5589, 0xFDAA, + 0x558A, 0xF9E2, 0x5598, 0xF4B7, 0x5599, 0xFDC2, 0x559A, 0xFCB0, 0x559C, 0xFDEC, 0x559D, 0xCAE2, 0x55A7, 0xFDBD, 0x55A9, 0xEAE7, + 0x55AA, 0xDFC3, 0x55AB, 0xD1D2, 0x55AC, 0xCEE2, 0x55AE, 0xD3A4, 0x55C5, 0xFDAB, 0x55C7, 0xDFE0, 0x55D4, 0xF2C7, 0x55DA, 0xE7F0, + 0x55DC, 0xD0EE, 0x55DF, 0xF3AA, 0x55E3, 0xDECB, 0x55E4, 0xF6B8, 0x55FD, 0xE1F5, 0x55FE, 0xF1B3, 0x5606, 0xF7A3, 0x5609, 0xCAA9, + 0x5614, 0xCFA5, 0x5617, 0xDFC4, 0x562F, 0xE1B0, 0x5632, 0xF0BF, 0x5634, 0xF6A4, 0x5636, 0xE3B6, 0x5653, 0xFAC6, 0x5668, 0xD0EF, + 0x566B, 0xFDED, 0x5674, 0xDDC4, 0x5686, 0xFCF7, 0x56A5, 0xE6BF, 0x56AC, 0xDEAD, 0x56AE, 0xFABF, 0x56B4, 0xE5F1, 0x56BC, 0xEDC4, + 0x56CA, 0xD2A5, 0x56CD, 0xFDEE, 0x56D1, 0xF5B6, 0x56DA, 0xE1F6, 0x56DB, 0xDECC, 0x56DE, 0xFCDE, 0x56E0, 0xECD7, 0x56F0, 0xCDDD, + 0x56F9, 0xD6B7, 0x56FA, 0xCDB3, 0x5703, 0xF8D5, 0x5704, 0xE5D8, 0x5708, 0xCFEA, 0x570B, 0xCFD0, 0x570D, 0xEACC, 0x5712, 0xEAAE, + 0x5713, 0xEAAD, 0x5716, 0xD3F1, 0x5718, 0xD3A5, 0x571F, 0xF7CF, 0x5728, 0xEEA4, 0x572D, 0xD0A4, 0x5730, 0xF2A2, 0x573B, 0xD0F0, + 0x5740, 0xF2A3, 0x5742, 0xF7F8, 0x5747, 0xD0B3, 0x574A, 0xDBA9, 0x574D, 0xD3BB, 0x574E, 0xCAEC, 0x5750, 0xF1A6, 0x5751, 0xCBD5, + 0x5761, 0xF7E7, 0x5764, 0xCDDE, 0x5766, 0xF7A4, 0x576A, 0xF8C0, 0x576E, 0xD3DD, 0x5770, 0xCCD0, 0x5775, 0xCFA6, 0x577C, 0xF6F3, + 0x5782, 0xE1F7, 0x5788, 0xD3DC, 0x578B, 0xFAFE, 0x5793, 0xFAA7, 0x57A0, 0xEBD9, 0x57A2, 0xCFA7, 0x57A3, 0xEAAF, 0x57C3, 0xE4EF, + 0x57C7, 0xE9B9, 0x57C8, 0xF1D8, 0x57CB, 0xD8D8, 0x57CE, 0xE0F2, 0x57DF, 0xE6B4, 0x57E0, 0xDCFC, 0x57F0, 0xF3F1, 0x57F4, 0xE3D0, + 0x57F7, 0xF2FB, 0x57F9, 0xDBC6, 0x57FA, 0xD0F1, 0x57FC, 0xD0F2, 0x5800, 0xCFDC, 0x5802, 0xD3D1, 0x5805, 0xCCB1, 0x5806, 0xF7D8, + 0x5808, 0xCBA8, 0x5809, 0xEBBC, 0x580A, 0xE4BE, 0x581E, 0xF4DC, 0x5821, 0xDCC2, 0x5824, 0xF0A7, 0x5827, 0xE6C0, 0x582A, 0xCAED, + 0x582F, 0xE8EB, 0x5830, 0xE5E8, 0x5831, 0xDCC3, 0x5834, 0xEDDE, 0x5835, 0xD3F2, 0x583A, 0xCCF7, 0x584A, 0xCED4, 0x584B, 0xE7AB, + 0x584F, 0xCBC3, 0x5851, 0xE1B1, 0x5854, 0xF7B2, 0x5857, 0xD3F3, 0x5858, 0xD3D2, 0x585A, 0xF5C0, 0x585E, 0xDFDD, 0x5861, 0xEEF3, + 0x5862, 0xE7F1, 0x5864, 0xFDB4, 0x5875, 0xF2C8, 0x5879, 0xF3D2, 0x587C, 0xEEF4, 0x587E, 0xE2D3, 0x5883, 0xCCD1, 0x5885, 0xDFEA, + 0x5889, 0xE9BA, 0x5893, 0xD9D7, 0x589C, 0xF5CD, 0x589E, 0xF1F2, 0x589F, 0xFAC7, 0x58A8, 0xD9F8, 0x58A9, 0xD4C2, 0x58AE, 0xF6E5, + 0x58B3, 0xDDC5, 0x58BA, 0xE7F2, 0x58BB, 0xEDDF, 0x58BE, 0xCACB, 0x58C1, 0xDBFA, 0x58C5, 0xE8B5, 0x58C7, 0xD3A6, 0x58CE, 0xFDB5, + 0x58D1, 0xF9C9, 0x58D3, 0xE4E2, 0x58D5, 0xFBBD, 0x58D8, 0xD7A4, 0x58D9, 0xCEC5, 0x58DE, 0xCED5, 0x58DF, 0xD6E6, 0x58E4, 0xE5BD, + 0x58EB, 0xDECD, 0x58EC, 0xECF3, 0x58EF, 0xEDE0, 0x58F9, 0xECEC, 0x58FA, 0xFBBE, 0x58FB, 0xDFEB, 0x58FD, 0xE1F8, 0x590F, 0xF9BE, + 0x5914, 0xD0F3, 0x5915, 0xE0AA, 0x5916, 0xE8E2, 0x5919, 0xE2D4, 0x591A, 0xD2FD, 0x591C, 0xE5A8, 0x5922, 0xD9D3, 0x5927, 0xD3DE, + 0x5929, 0xF4B8, 0x592A, 0xF7BC, 0x592B, 0xDCFD, 0x592D, 0xE8EC, 0x592E, 0xE4E7, 0x5931, 0xE3F7, 0x5937, 0xECA8, 0x593E, 0xFAF1, + 0x5944, 0xE5F2, 0x5947, 0xD0F4, 0x5948, 0xD2AF, 0x5949, 0xDCE5, 0x594E, 0xD0A5, 0x594F, 0xF1B4, 0x5950, 0xFCB1, 0x5951, 0xCCF8, + 0x5954, 0xDDC6, 0x5955, 0xFAD1, 0x5957, 0xF7DF, 0x595A, 0xFAA8, 0x5960, 0xEEF5, 0x5962, 0xDECE, 0x5967, 0xE7F3, 0x596A, 0xF7AC, + 0x596B, 0xEBC4, 0x596C, 0xEDE1, 0x596D, 0xE0AB, 0x596E, 0xDDC7, 0x5973, 0xD2B3, 0x5974, 0xD2BF, 0x5978, 0xCACC, 0x597D, 0xFBBF, + 0x5982, 0xE5FD, 0x5983, 0xDDE5, 0x5984, 0xD8CD, 0x598A, 0xECF4, 0x5993, 0xD0F5, 0x5996, 0xE8ED, 0x5997, 0xD0D2, 0x5999, 0xD9D8, + 0x59A5, 0xF6E6, 0x59A8, 0xDBAA, 0x59AC, 0xF7E0, 0x59B9, 0xD8D9, 0x59BB, 0xF4A3, 0x59BE, 0xF4DD, 0x59C3, 0xEFD1, 0x59C6, 0xD9B5, + 0x59C9, 0xEDAB, 0x59CB, 0xE3B7, 0x59D0, 0xEEBB, 0x59D1, 0xCDB4, 0x59D3, 0xE0F3, 0x59D4, 0xEACD, 0x59D9, 0xECF5, 0x59DA, 0xE8EE, + 0x59DC, 0xCBA9, 0x59DD, 0xF1AF, 0x59E6, 0xCACD, 0x59E8, 0xECA9, 0x59EA, 0xF2EB, 0x59EC, 0xFDEF, 0x59EE, 0xF9F3, 0x59F8, 0xE6C1, + 0x59FB, 0xECD8, 0x59FF, 0xEDAC, 0x5A01, 0xEACE, 0x5A03, 0xE8DF, 0x5A11, 0xDECF, 0x5A18, 0xD2A6, 0x5A1B, 0xE7F4, 0x5A1C, 0xD1D6, + 0x5A1F, 0xE6C2, 0x5A20, 0xE3E3, 0x5A25, 0xE4B0, 0x5A29, 0xD8B4, 0x5A36, 0xF6A5, 0x5A3C, 0xF3DE, 0x5A41, 0xD7A5, 0x5A46, 0xF7E8, + 0x5A49, 0xE8C6, 0x5A5A, 0xFBE6, 0x5A62, 0xDDE6, 0x5A66, 0xDCFE, 0x5A92, 0xD8DA, 0x5A9A, 0xDAAC, 0x5A9B, 0xEAB0, 0x5AA4, 0xE3B8, + 0x5AC1, 0xCAAA, 0x5AC2, 0xE1F9, 0x5AC4, 0xEAB1, 0x5AC9, 0xF2EC, 0x5ACC, 0xFAEE, 0x5AE1, 0xEED5, 0x5AE6, 0xF9F4, 0x5AE9, 0xD2EC, + 0x5B05, 0xFBFB, 0x5B09, 0xFDF0, 0x5B0B, 0xE0BD, 0x5B0C, 0xCEE3, 0x5B16, 0xF8C6, 0x5B2A, 0xDEAE, 0x5B40, 0xDFC5, 0x5B43, 0xE5BE, + 0x5B50, 0xEDAD, 0x5B51, 0xFAEA, 0x5B54, 0xCDEE, 0x5B55, 0xEDA6, 0x5B57, 0xEDAE, 0x5B58, 0xF0ED, 0x5B5A, 0xDDA1, 0x5B5C, 0xEDAF, + 0x5B5D, 0xFCF8, 0x5B5F, 0xD8EB, 0x5B63, 0xCCF9, 0x5B64, 0xCDB5, 0x5B69, 0xFAA9, 0x5B6B, 0xE1DD, 0x5B70, 0xE2D5, 0x5B71, 0xEDCF, + 0x5B75, 0xDDA2, 0x5B78, 0xF9CA, 0x5B7A, 0xEAE8, 0x5B7C, 0xE5ED, 0x5B85, 0xD3EB, 0x5B87, 0xE9D4, 0x5B88, 0xE1FA, 0x5B89, 0xE4CC, + 0x5B8B, 0xE1E4, 0x5B8C, 0xE8C7, 0x5B8F, 0xCEDB, 0x5B93, 0xDCD5, 0x5B95, 0xF7B5, 0x5B96, 0xFCF3, 0x5B97, 0xF0F3, 0x5B98, 0xCEAF, + 0x5B99, 0xF1B5, 0x5B9A, 0xEFD2, 0x5B9B, 0xE8C8, 0x5B9C, 0xEBF1, 0x5BA2, 0xCBD4, 0x5BA3, 0xE0BE, 0x5BA4, 0xE3F8, 0x5BA5, 0xEAE9, + 0x5BA6, 0xFCB2, 0x5BAC, 0xE0F4, 0x5BAE, 0xCFE0, 0x5BB0, 0xEEA5, 0x5BB3, 0xFAAA, 0x5BB4, 0xE6C3, 0x5BB5, 0xE1B2, 0x5BB6, 0xCAAB, + 0x5BB8, 0xE3E4, 0x5BB9, 0xE9BB, 0x5BBF, 0xE2D6, 0x5BC0, 0xF3F2, 0x5BC2, 0xEED6, 0x5BC3, 0xEAB2, 0x5BC4, 0xD0F6, 0x5BC5, 0xECD9, + 0x5BC6, 0xDACB, 0x5BC7, 0xCFA8, 0x5BCC, 0xDDA3, 0x5BD0, 0xD8DB, 0x5BD2, 0xF9CE, 0x5BD3, 0xE9D5, 0x5BD4, 0xE3D1, 0x5BD7, 0xD2BC, + 0x5BDE, 0xD8AC, 0x5BDF, 0xF3CC, 0x5BE1, 0xCDFB, 0x5BE2, 0xF6D6, 0x5BE4, 0xE7F5, 0x5BE5, 0xE8EF, 0x5BE6, 0xE3F9, 0x5BE7, 0xD2BB, + 0x5BE8, 0xF3F3, 0x5BE9, 0xE3FB, 0x5BEB, 0xDED0, 0x5BEC, 0xCEB0, 0x5BEE, 0xD6F7, 0x5BEF, 0xF1D9, 0x5BF5, 0xF5C1, 0x5BF6, 0xDCC4, + 0x5BF8, 0xF5BB, 0x5BFA, 0xDED1, 0x5C01, 0xDCE6, 0x5C04, 0xDED2, 0x5C07, 0xEDE2, 0x5C08, 0xEEF6, 0x5C09, 0xEACF, 0x5C0A, 0xF0EE, + 0x5C0B, 0xE3FC, 0x5C0D, 0xD3DF, 0x5C0E, 0xD3F4, 0x5C0F, 0xE1B3, 0x5C11, 0xE1B4, 0x5C16, 0xF4D3, 0x5C19, 0xDFC6, 0x5C24, 0xE9D6, + 0x5C28, 0xDBAB, 0x5C31, 0xF6A6, 0x5C38, 0xE3B9, 0x5C39, 0xEBC5, 0x5C3A, 0xF4A9, 0x5C3B, 0xCDB6, 0x5C3C, 0xD2F9, 0x5C3E, 0xDAAD, + 0x5C3F, 0xD2E3, 0x5C40, 0xCFD1, 0x5C45, 0xCBDC, 0x5C46, 0xCCFA, 0x5C48, 0xCFDD, 0x5C4B, 0xE8A9, 0x5C4D, 0xE3BB, 0x5C4E, 0xE3BA, + 0x5C51, 0xE0DA, 0x5C55, 0xEEF7, 0x5C5B, 0xDCB3, 0x5C60, 0xD3F5, 0x5C62, 0xD7A6, 0x5C64, 0xF6B5, 0x5C65, 0xD7DB, 0x5C6C, 0xE1D5, + 0x5C6F, 0xD4EA, 0x5C71, 0xDFA3, 0x5C79, 0xFDDF, 0x5C90, 0xD0F7, 0x5C91, 0xEDD4, 0x5CA1, 0xCBAA, 0x5CA9, 0xE4DB, 0x5CAB, 0xE1FB, + 0x5CAC, 0xCBA2, 0x5CB1, 0xD3E0, 0x5CB3, 0xE4BF, 0x5CB5, 0xFBC0, 0x5CB7, 0xDABE, 0x5CB8, 0xE4CD, 0x5CBA, 0xD6B9, 0x5CBE, 0xEFC0, + 0x5CC0, 0xE1FC, 0x5CD9, 0xF6B9, 0x5CE0, 0xDFC7, 0x5CE8, 0xE4B1, 0x5CEF, 0xDCE7, 0x5CF0, 0xDCE8, 0x5CF4, 0xFAD6, 0x5CF6, 0xD3F6, + 0x5CFB, 0xF1DA, 0x5CFD, 0xFAF2, 0x5D07, 0xE2FD, 0x5D0D, 0xD5CF, 0x5D0E, 0xD0F8, 0x5D11, 0xCDDF, 0x5D14, 0xF5CB, 0x5D16, 0xE4F0, + 0x5D17, 0xCBAB, 0x5D19, 0xD7C4, 0x5D27, 0xE2FE, 0x5D29, 0xDDDA, 0x5D4B, 0xDAAE, 0x5D4C, 0xCAEE, 0x5D50, 0xD5B9, 0x5D69, 0xE3A1, + 0x5D6C, 0xE8E3, 0x5D6F, 0xF3AB, 0x5D87, 0xCFA9, 0x5D8B, 0xD3F7, 0x5D9D, 0xD4F1, 0x5DA0, 0xCEE4, 0x5DA2, 0xE8F2, 0x5DAA, 0xE5F5, + 0x5DB8, 0xE7AE, 0x5DBA, 0xD6BA, 0x5DBC, 0xDFEC, 0x5DBD, 0xE4C0, 0x5DCD, 0xE8E4, 0x5DD2, 0xD8B5, 0x5DD6, 0xE4DC, 0x5DDD, 0xF4B9, + 0x5DDE, 0xF1B6, 0x5DE1, 0xE2DE, 0x5DE2, 0xE1B5, 0x5DE5, 0xCDEF, 0x5DE6, 0xF1A7, 0x5DE7, 0xCEE5, 0x5DE8, 0xCBDD, 0x5DEB, 0xD9E3, + 0x5DEE, 0xF3AC, 0x5DF1, 0xD0F9, 0x5DF2, 0xECAB, 0x5DF3, 0xDED3, 0x5DF4, 0xF7E9, 0x5DF7, 0xF9F5, 0x5DFD, 0xE1DE, 0x5DFE, 0xCBEE, + 0x5E02, 0xE3BC, 0x5E03, 0xF8D6, 0x5E06, 0xDBEE, 0x5E0C, 0xFDF1, 0x5E11, 0xF7B6, 0x5E16, 0xF4DE, 0x5E19, 0xF2ED, 0x5E1B, 0xDBD9, + 0x5E1D, 0xF0A8, 0x5E25, 0xE1FD, 0x5E2B, 0xDED4, 0x5E2D, 0xE0AC, 0x5E33, 0xEDE3, 0x5E36, 0xD3E1, 0x5E38, 0xDFC8, 0x5E3D, 0xD9B6, + 0x5E3F, 0xFDAC, 0x5E40, 0xEFD3, 0x5E44, 0xE4C1, 0x5E45, 0xF8EB, 0x5E47, 0xDBAC, 0x5E4C, 0xFCC6, 0x5E55, 0xD8AD, 0x5E5F, 0xF6BA, + 0x5E61, 0xDBDF, 0x5E62, 0xD3D3, 0x5E63, 0xF8C7, 0x5E72, 0xCACE, 0x5E73, 0xF8C1, 0x5E74, 0xD2B4, 0x5E77, 0xDCB4, 0x5E78, 0xFAB9, + 0x5E79, 0xCACF, 0x5E7B, 0xFCB3, 0x5E7C, 0xEAEA, 0x5E7D, 0xEAEB, 0x5E7E, 0xD0FA, 0x5E84, 0xEDE4, 0x5E87, 0xDDE7, 0x5E8A, 0xDFC9, + 0x5E8F, 0xDFED, 0x5E95, 0xEEBC, 0x5E97, 0xEFC1, 0x5E9A, 0xCCD2, 0x5E9C, 0xDDA4, 0x5EA0, 0xDFCA, 0x5EA6, 0xD3F8, 0x5EA7, 0xF1A8, + 0x5EAB, 0xCDB7, 0x5EAD, 0xEFD4, 0x5EB5, 0xE4DD, 0x5EB6, 0xDFEE, 0x5EB7, 0xCBAC, 0x5EB8, 0xE9BC, 0x5EBE, 0xEAEC, 0x5EC2, 0xDFCB, + 0x5EC8, 0xF9BF, 0x5EC9, 0xD6AF, 0x5ECA, 0xD5C6, 0x5ED0, 0xCFAA, 0x5ED3, 0xCEA9, 0x5ED6, 0xD6F8, 0x5EDA, 0xF1B7, 0x5EDB, 0xEEF8, + 0x5EDF, 0xD9D9, 0x5EE0, 0xF3DF, 0x5EE2, 0xF8C8, 0x5EE3, 0xCEC6, 0x5EEC, 0xD5E6, 0x5EF3, 0xF4E6, 0x5EF6, 0xE6C5, 0x5EF7, 0xEFD5, + 0x5EFA, 0xCBEF, 0x5EFB, 0xFCDF, 0x5F01, 0xDCA7, 0x5F04, 0xD6E7, 0x5F0A, 0xF8C9, 0x5F0F, 0xE3D2, 0x5F11, 0xE3BD, 0x5F13, 0xCFE1, + 0x5F14, 0xF0C0, 0x5F15, 0xECDA, 0x5F17, 0xDDD7, 0x5F18, 0xFBF0, 0x5F1B, 0xECAC, 0x5F1F, 0xF0A9, 0x5F26, 0xFAD7, 0x5F27, 0xFBC1, + 0x5F29, 0xD2C0, 0x5F31, 0xE5B0, 0x5F35, 0xEDE5, 0x5F3A, 0xCBAD, 0x5F3C, 0xF9B0, 0x5F48, 0xF7A5, 0x5F4A, 0xCBAE, 0x5F4C, 0xDAAF, + 0x5F4E, 0xD8B6, 0x5F56, 0xD3A7, 0x5F57, 0xFBB2, 0x5F59, 0xFDC4, 0x5F5B, 0xECAD, 0x5F62, 0xFBA1, 0x5F66, 0xE5E9, 0x5F67, 0xE9EE, + 0x5F69, 0xF3F4, 0x5F6A, 0xF8F3, 0x5F6B, 0xF0C1, 0x5F6C, 0xDEAF, 0x5F6D, 0xF8B0, 0x5F70, 0xF3E0, 0x5F71, 0xE7AF, 0x5F77, 0xDBAD, + 0x5F79, 0xE6B5, 0x5F7C, 0xF9A8, 0x5F7F, 0xDDD8, 0x5F80, 0xE8D9, 0x5F81, 0xEFD6, 0x5F85, 0xD3E2, 0x5F87, 0xE2DF, 0x5F8A, 0xFCE0, + 0x5F8B, 0xD7C8, 0x5F8C, 0xFDAD, 0x5F90, 0xDFEF, 0x5F91, 0xCCD3, 0x5F92, 0xD3F9, 0x5F97, 0xD4F0, 0x5F98, 0xDBC7, 0x5F99, 0xDED5, + 0x5F9E, 0xF0F4, 0x5FA0, 0xD5D0, 0x5FA1, 0xE5D9, 0x5FA8, 0xFCC7, 0x5FA9, 0xDCD6, 0x5FAA, 0xE2E0, 0x5FAE, 0xDAB0, 0x5FB5, 0xF3A3, + 0x5FB7, 0xD3EC, 0x5FB9, 0xF4CB, 0x5FBD, 0xFDC5, 0x5FC3, 0xE3FD, 0x5FC5, 0xF9B1, 0x5FCC, 0xD0FB, 0x5FCD, 0xECDB, 0x5FD6, 0xF5BC, + 0x5FD7, 0xF2A4, 0x5FD8, 0xD8CE, 0x5FD9, 0xD8CF, 0x5FE0, 0xF5F7, 0x5FEB, 0xF6E1, 0x5FF5, 0xD2B7, 0x5FFD, 0xFBEC, 0x5FFF, 0xDDC8, + 0x600F, 0xE4E8, 0x6012, 0xD2C1, 0x6016, 0xF8D7, 0x601C, 0xD6BB, 0x601D, 0xDED6, 0x6020, 0xF7BD, 0x6021, 0xECAE, 0x6025, 0xD0E1, + 0x6027, 0xE0F5, 0x6028, 0xEAB3, 0x602A, 0xCED6, 0x602F, 0xCCA5, 0x6041, 0xECF6, 0x6042, 0xE2E1, 0x6043, 0xE3BE, 0x604D, 0xFCC8, + 0x6050, 0xCDF0, 0x6052, 0xF9F6, 0x6055, 0xDFF0, 0x6059, 0xE5BF, 0x605D, 0xCEBF, 0x6062, 0xFCE1, 0x6063, 0xEDB0, 0x6064, 0xFDD1, + 0x6065, 0xF6BB, 0x6068, 0xF9CF, 0x6069, 0xEBDA, 0x606A, 0xCAC1, 0x606C, 0xD2B8, 0x606D, 0xCDF1, 0x606F, 0xE3D3, 0x6070, 0xFDE6, + 0x6085, 0xE6ED, 0x6089, 0xE3FA, 0x608C, 0xF0AA, 0x608D, 0xF9D0, 0x6094, 0xFCE2, 0x6096, 0xF8A7, 0x609A, 0xE1E5, 0x609B, 0xEEF9, + 0x609F, 0xE7F6, 0x60A0, 0xEAED, 0x60A3, 0xFCB4, 0x60A4, 0xF5C2, 0x60A7, 0xD7DC, 0x60B0, 0xF0F5, 0x60B2, 0xDDE8, 0x60B3, 0xD3ED, + 0x60B4, 0xF5FC, 0x60B6, 0xDABF, 0x60B8, 0xCCFB, 0x60BC, 0xD3FA, 0x60BD, 0xF4A4, 0x60C5, 0xEFD7, 0x60C7, 0xD4C3, 0x60D1, 0xFBE3, + 0x60DA, 0xFBED, 0x60DC, 0xE0AD, 0x60DF, 0xEAEE, 0x60E0, 0xFBB3, 0x60E1, 0xE4C2, 0x60F0, 0xF6E7, 0x60F1, 0xD2DD, 0x60F3, 0xDFCC, + 0x60F6, 0xFCC9, 0x60F9, 0xE5A9, 0x60FA, 0xE0F6, 0x60FB, 0xF6B3, 0x6101, 0xE1FE, 0x6106, 0xCBF0, 0x6108, 0xEAEF, 0x6109, 0xEAF0, + 0x610D, 0xDAC0, 0x610E, 0xF8B4, 0x610F, 0xEBF2, 0x6115, 0xE4C3, 0x611A, 0xE9D7, 0x611B, 0xE4F1, 0x611F, 0xCAEF, 0x6127, 0xCED7, + 0x6130, 0xFCCA, 0x6134, 0xF3E1, 0x6137, 0xCBC4, 0x613C, 0xE3E5, 0x613E, 0xCBC5, 0x613F, 0xEAB4, 0x6142, 0xE9BD, 0x6144, 0xD7C9, + 0x6147, 0xEBDB, 0x6148, 0xEDB1, 0x614A, 0xCCC3, 0x614B, 0xF7BE, 0x614C, 0xFCCB, 0x6153, 0xF8F4, 0x6155, 0xD9B7, 0x6158, 0xF3D3, + 0x6159, 0xF3D4, 0x615D, 0xF7E4, 0x615F, 0xF7D1, 0x6162, 0xD8B7, 0x6163, 0xCEB1, 0x6164, 0xCAC2, 0x6167, 0xFBB4, 0x6168, 0xCBC6, + 0x616B, 0xF0F6, 0x616E, 0xD5E7, 0x6170, 0xEAD0, 0x6176, 0xCCD4, 0x6177, 0xCBAF, 0x617D, 0xF4AA, 0x617E, 0xE9AF, 0x6181, 0xF5C3, + 0x6182, 0xE9D8, 0x618A, 0xDDE9, 0x618E, 0xF1F3, 0x6190, 0xD5FB, 0x6191, 0xDEBB, 0x6194, 0xF4FB, 0x6198, 0xFDF3, 0x6199, 0xFDF2, + 0x619A, 0xF7A6, 0x61A4, 0xDDC9, 0x61A7, 0xD4D3, 0x61A9, 0xCCA8, 0x61AB, 0xDAC1, 0x61AC, 0xCCD5, 0x61AE, 0xD9E4, 0x61B2, 0xFACA, + 0x61B6, 0xE5E3, 0x61BA, 0xD3BC, 0x61BE, 0xCAF0, 0x61C3, 0xD0C4, 0x61C7, 0xCAD0, 0x61C8, 0xFAAB, 0x61C9, 0xEBEB, 0x61CA, 0xE7F8, + 0x61CB, 0xD9E5, 0x61E6, 0xD1D7, 0x61F2, 0xF3A4, 0x61F6, 0xD4FB, 0x61F7, 0xFCE3, 0x61F8, 0xFAD8, 0x61FA, 0xF3D5, 0x61FC, 0xCFAB, + 0x61FF, 0xEBF3, 0x6200, 0xD5FC, 0x6207, 0xD3D4, 0x6208, 0xCDFC, 0x620A, 0xD9E6, 0x620C, 0xE2F9, 0x620D, 0xE2A1, 0x620E, 0xEBD4, + 0x6210, 0xE0F7, 0x6211, 0xE4B2, 0x6212, 0xCCFC, 0x6216, 0xFBE4, 0x621A, 0xF4AB, 0x621F, 0xD0BD, 0x6221, 0xCAF1, 0x622A, 0xEFB8, + 0x622E, 0xD7C0, 0x6230, 0xEEFA, 0x6231, 0xFDF4, 0x6234, 0xD3E3, 0x6236, 0xFBC2, 0x623E, 0xD5E8, 0x623F, 0xDBAE, 0x6240, 0xE1B6, + 0x6241, 0xF8B7, 0x6247, 0xE0BF, 0x6248, 0xFBC3, 0x6249, 0xDDEA, 0x624B, 0xE2A2, 0x624D, 0xEEA6, 0x6253, 0xF6E8, 0x6258, 0xF6F5, + 0x626E, 0xDDCA, 0x6271, 0xD0E2, 0x6276, 0xDDA6, 0x6279, 0xDDEB, 0x627C, 0xE4F9, 0x627F, 0xE3AF, 0x6280, 0xD0FC, 0x6284, 0xF4FC, + 0x6289, 0xCCBC, 0x628A, 0xF7EA, 0x6291, 0xE5E4, 0x6292, 0xDFF1, 0x6295, 0xF7E1, 0x6297, 0xF9F7, 0x6298, 0xEFB9, 0x629B, 0xF8D8, + 0x62AB, 0xF9A9, 0x62B1, 0xF8D9, 0x62B5, 0xEEBD, 0x62B9, 0xD8C6, 0x62BC, 0xE4E3, 0x62BD, 0xF5CE, 0x62C2, 0xDDD9, 0x62C7, 0xD9E7, + 0x62C8, 0xD2B9, 0x62C9, 0xD5C3, 0x62CC, 0xDAE5, 0x62CD, 0xDAD0, 0x62CF, 0xD1D9, 0x62D0, 0xCED8, 0x62D2, 0xCBDE, 0x62D3, 0xF4AC, + 0x62D4, 0xDAFB, 0x62D6, 0xF6E9, 0x62D7, 0xE8F3, 0x62D8, 0xCFAC, 0x62D9, 0xF0F0, 0x62DB, 0xF4FD, 0x62DC, 0xDBC8, 0x62EC, 0xCEC0, + 0x62ED, 0xE3D4, 0x62EE, 0xD1CF, 0x62EF, 0xF1F5, 0x62F1, 0xCDF2, 0x62F3, 0xCFEB, 0x62F7, 0xCDB8, 0x62FE, 0xE3A6, 0x62FF, 0xD1DA, + 0x6301, 0xF2A5, 0x6307, 0xF2A6, 0x6309, 0xE4CE, 0x6311, 0xD3FB, 0x632B, 0xF1A9, 0x632F, 0xF2C9, 0x633A, 0xEFD8, 0x633B, 0xE6C9, + 0x633D, 0xD8B8, 0x633E, 0xFAF3, 0x6349, 0xF3B5, 0x634C, 0xF8A4, 0x634F, 0xD1F3, 0x6350, 0xE6C8, 0x6355, 0xF8DA, 0x6367, 0xDCE9, + 0x6368, 0xDED7, 0x636E, 0xCBDF, 0x6372, 0xCFEC, 0x6377, 0xF4DF, 0x637A, 0xD1F4, 0x637B, 0xD2BA, 0x637F, 0xDFF2, 0x6383, 0xE1B7, + 0x6388, 0xE2A3, 0x6389, 0xD3FC, 0x638C, 0xEDE6, 0x6392, 0xDBC9, 0x6396, 0xE4FA, 0x6398, 0xCFDE, 0x639B, 0xCED0, 0x63A0, 0xD5D3, + 0x63A1, 0xF3F5, 0x63A2, 0xF7AE, 0x63A5, 0xEFC8, 0x63A7, 0xCDF3, 0x63A8, 0xF5CF, 0x63A9, 0xE5F3, 0x63AA, 0xF0C2, 0x63C0, 0xCAD1, + 0x63C4, 0xEAF1, 0x63C6, 0xD0A6, 0x63CF, 0xD9DA, 0x63D0, 0xF0AB, 0x63D6, 0xEBE7, 0x63DA, 0xE5C0, 0x63DB, 0xFCB5, 0x63E1, 0xE4C4, + 0x63ED, 0xCCA9, 0x63EE, 0xFDC6, 0x63F4, 0xEAB5, 0x63F6, 0xE5AA, 0x63F7, 0xDFBA, 0x640D, 0xE1DF, 0x640F, 0xDAD1, 0x6414, 0xE1B8, + 0x6416, 0xE8F4, 0x6417, 0xD3FD, 0x641C, 0xE2A4, 0x6422, 0xF2CA, 0x642C, 0xDAE6, 0x642D, 0xF7B3, 0x643A, 0xFDCD, 0x643E, 0xF3B6, + 0x6458, 0xEED7, 0x6460, 0xF5C4, 0x6469, 0xD8A4, 0x646F, 0xF2A7, 0x6478, 0xD9B8, 0x6479, 0xD9B9, 0x647A, 0xEFC9, 0x6488, 0xD6CE, + 0x6491, 0xF7CB, 0x6492, 0xDFAE, 0x6493, 0xE8F5, 0x649A, 0xD2B5, 0x649E, 0xD3D5, 0x64A4, 0xF4CC, 0x64A5, 0xDAFC, 0x64AB, 0xD9E8, + 0x64AD, 0xF7EB, 0x64AE, 0xF5C9, 0x64B0, 0xF3BC, 0x64B2, 0xDAD2, 0x64BB, 0xD3B5, 0x64C1, 0xE8B6, 0x64C4, 0xD6CF, 0x64C5, 0xF4BA, + 0x64C7, 0xF7C9, 0x64CA, 0xCCAA, 0x64CD, 0xF0C3, 0x64CE, 0xCCD6, 0x64D2, 0xD0D3, 0x64D4, 0xD3BD, 0x64D8, 0xDBFB, 0x64DA, 0xCBE0, + 0x64E1, 0xD3E4, 0x64E2, 0xF6F7, 0x64E5, 0xD5BA, 0x64E6, 0xF3CD, 0x64E7, 0xCBE1, 0x64EC, 0xEBF4, 0x64F2, 0xF4AD, 0x64F4, 0xFCAA, + 0x64FA, 0xF7EC, 0x64FE, 0xE8F6, 0x6500, 0xDAE7, 0x6504, 0xF7CC, 0x6518, 0xE5C1, 0x651D, 0xE0EE, 0x6523, 0xD5FD, 0x652A, 0xCEE6, + 0x652B, 0xFCAB, 0x652C, 0xD5BB, 0x652F, 0xF2A8, 0x6536, 0xE2A5, 0x6537, 0xCDB9, 0x6538, 0xEAF2, 0x6539, 0xCBC7, 0x653B, 0xCDF4, + 0x653E, 0xDBAF, 0x653F, 0xEFD9, 0x6545, 0xCDBA, 0x6548, 0xFCF9, 0x654D, 0xDFF3, 0x654E, 0xCEE7, 0x654F, 0xDAC2, 0x6551, 0xCFAD, + 0x6556, 0xE7F9, 0x6557, 0xF8A8, 0x655E, 0xF3E2, 0x6562, 0xCAF2, 0x6563, 0xDFA4, 0x6566, 0xD4C4, 0x656C, 0xCCD7, 0x656D, 0xE5C2, + 0x6572, 0xCDBB, 0x6574, 0xEFDA, 0x6575, 0xEED8, 0x6577, 0xDDA7, 0x6578, 0xE2A6, 0x657E, 0xE0C0, 0x6582, 0xD6B0, 0x6583, 0xF8CA, + 0x6585, 0xFCFA, 0x6587, 0xD9FE, 0x658C, 0xDEB0, 0x6590, 0xDDEC, 0x6591, 0xDAE8, 0x6597, 0xD4E0, 0x6599, 0xD6F9, 0x659B, 0xCDD7, + 0x659C, 0xDED8, 0x659F, 0xF2F8, 0x65A1, 0xE4D6, 0x65A4, 0xD0C5, 0x65A5, 0xF4AE, 0x65A7, 0xDDA8, 0x65AB, 0xEDC5, 0x65AC, 0xF3D6, + 0x65AF, 0xDED9, 0x65B0, 0xE3E6, 0x65B7, 0xD3A8, 0x65B9, 0xDBB0, 0x65BC, 0xE5DA, 0x65BD, 0xE3BF, 0x65C1, 0xDBB1, 0x65C5, 0xD5E9, + 0x65CB, 0xE0C1, 0x65CC, 0xEFDB, 0x65CF, 0xF0E9, 0x65D2, 0xD7B2, 0x65D7, 0xD0FD, 0x65E0, 0xD9E9, 0x65E3, 0xD0FE, 0x65E5, 0xECED, + 0x65E6, 0xD3A9, 0x65E8, 0xF2A9, 0x65E9, 0xF0C4, 0x65EC, 0xE2E2, 0x65ED, 0xE9EF, 0x65F1, 0xF9D1, 0x65F4, 0xE9D9, 0x65FA, 0xE8DA, + 0x65FB, 0xDAC3, 0x65FC, 0xDAC4, 0x65FD, 0xD4C5, 0x65FF, 0xE7FA, 0x6606, 0xCDE0, 0x6607, 0xE3B0, 0x6609, 0xDBB2, 0x660A, 0xFBC4, + 0x660C, 0xF3E3, 0x660E, 0xD9A5, 0x660F, 0xFBE7, 0x6610, 0xDDCB, 0x6611, 0xD0D4, 0x6613, 0xE6B6, 0x6614, 0xE0AE, 0x6615, 0xFDDA, + 0x661E, 0xDCB5, 0x661F, 0xE0F8, 0x6620, 0xE7B1, 0x6625, 0xF5F0, 0x6627, 0xD8DC, 0x6628, 0xEDC6, 0x662D, 0xE1B9, 0x662F, 0xE3C0, + 0x6630, 0xF9C0, 0x6631, 0xE9F0, 0x6634, 0xD9DB, 0x6636, 0xF3E4, 0x663A, 0xDCB6, 0x663B, 0xE4E9, 0x6641, 0xF0C5, 0x6642, 0xE3C1, + 0x6643, 0xFCCC, 0x6644, 0xFCCD, 0x6649, 0xF2CB, 0x664B, 0xF2CC, 0x664F, 0xE4CF, 0x6659, 0xF1DB, 0x665B, 0xFAD9, 0x665D, 0xF1B8, + 0x665E, 0xFDF5, 0x665F, 0xE0F9, 0x6664, 0xE7FB, 0x6665, 0xFCB7, 0x6666, 0xFCE4, 0x6667, 0xFBC5, 0x6668, 0xE3E7, 0x6669, 0xD8B9, + 0x666B, 0xF6F8, 0x666E, 0xDCC5, 0x666F, 0xCCD8, 0x6673, 0xE0AF, 0x6674, 0xF4E7, 0x6676, 0xEFDC, 0x6677, 0xCFFC, 0x6678, 0xEFDD, + 0x667A, 0xF2AA, 0x6684, 0xFDBE, 0x6687, 0xCAAC, 0x6688, 0xFDBB, 0x6689, 0xFDC7, 0x668E, 0xE7B2, 0x6690, 0xEAD1, 0x6691, 0xDFF4, + 0x6696, 0xD1EC, 0x6697, 0xE4DE, 0x6698, 0xE5C3, 0x669D, 0xD9A6, 0x66A0, 0xCDBC, 0x66A2, 0xF3E5, 0x66AB, 0xEDD5, 0x66AE, 0xD9BA, + 0x66B2, 0xEDE7, 0x66B3, 0xFBB5, 0x66B4, 0xF8EC, 0x66B9, 0xE0E7, 0x66BB, 0xCCD9, 0x66BE, 0xD4C6, 0x66C4, 0xE7A5, 0x66C6, 0xD5F5, + 0x66C7, 0xD3BE, 0x66C9, 0xFCFB, 0x66D6, 0xE4F2, 0x66D9, 0xDFF5, 0x66DC, 0xE8F8, 0x66DD, 0xF8ED, 0x66E0, 0xCEC7, 0x66E6, 0xFDF6, + 0x66F0, 0xE8D8, 0x66F2, 0xCDD8, 0x66F3, 0xE7D6, 0x66F4, 0xCCDA, 0x66F7, 0xCAE3, 0x66F8, 0xDFF6, 0x66F9, 0xF0C7, 0x66FA, 0xF0C6, + 0x66FC, 0xD8BA, 0x66FE, 0xF1F4, 0x66FF, 0xF4F0, 0x6700, 0xF5CC, 0x6703, 0xFCE5, 0x6708, 0xEAC5, 0x6709, 0xEAF3, 0x670B, 0xDDDB, + 0x670D, 0xDCD7, 0x6714, 0xDEFD, 0x6715, 0xF2F9, 0x6717, 0xD5C7, 0x671B, 0xD8D0, 0x671D, 0xF0C8, 0x671E, 0xD1A1, 0x671F, 0xD1A2, + 0x6726, 0xD9D4, 0x6727, 0xD6E8, 0x6728, 0xD9CA, 0x672A, 0xDAB1, 0x672B, 0xD8C7, 0x672C, 0xDCE2, 0x672D, 0xF3CE, 0x672E, 0xF5F4, + 0x6731, 0xF1B9, 0x6734, 0xDAD3, 0x6736, 0xF6EA, 0x673A, 0xCFF5, 0x673D, 0xFDAE, 0x6746, 0xCAD2, 0x6749, 0xDFB4, 0x674E, 0xD7DD, + 0x674F, 0xFABA, 0x6750, 0xEEA7, 0x6751, 0xF5BD, 0x6753, 0xF8F5, 0x6756, 0xEDE8, 0x675C, 0xD4E1, 0x675E, 0xD1A3, 0x675F, 0xE1D6, + 0x676D, 0xF9F8, 0x676F, 0xDBCA, 0x6770, 0xCBF9, 0x6771, 0xD4D4, 0x6773, 0xD9DC, 0x6775, 0xEEBE, 0x6777, 0xF7ED, 0x677B, 0xD2EE, + 0x677E, 0xE1E6, 0x677F, 0xF7F9, 0x6787, 0xDDED, 0x6789, 0xE8DB, 0x678B, 0xDBB3, 0x678F, 0xD1F7, 0x6790, 0xE0B0, 0x6793, 0xD4E2, + 0x6795, 0xF6D7, 0x6797, 0xD7F9, 0x679A, 0xD8DD, 0x679C, 0xCDFD, 0x679D, 0xF2AB, 0x67AF, 0xCDBD, 0x67B0, 0xF8C2, 0x67B3, 0xF2AC, + 0x67B6, 0xCAAD, 0x67B7, 0xCAAE, 0x67B8, 0xCFAE, 0x67BE, 0xE3C2, 0x67C4, 0xDCB7, 0x67CF, 0xDBDA, 0x67D0, 0xD9BB, 0x67D1, 0xCAF3, + 0x67D2, 0xF6D3, 0x67D3, 0xE6F8, 0x67D4, 0xEAF5, 0x67DA, 0xEAF6, 0x67DD, 0xF6F9, 0x67E9, 0xCFAF, 0x67EC, 0xCAD3, 0x67EF, 0xCAAF, + 0x67F0, 0xD2B0, 0x67F1, 0xF1BA, 0x67F3, 0xD7B3, 0x67F4, 0xE3C3, 0x67F5, 0xF3FD, 0x67F6, 0xDEDA, 0x67FB, 0xDEDB, 0x67FE, 0xEFDE, + 0x6812, 0xE2E3, 0x6813, 0xEEFB, 0x6816, 0xDFF7, 0x6817, 0xD7CA, 0x6821, 0xCEE8, 0x6822, 0xDBDB, 0x682A, 0xF1BB, 0x682F, 0xE9F1, + 0x6838, 0xFAB7, 0x6839, 0xD0C6, 0x683C, 0xCCAB, 0x683D, 0xEEA8, 0x6840, 0xCBFA, 0x6841, 0xF9F9, 0x6842, 0xCCFD, 0x6843, 0xD3FE, + 0x6848, 0xE4D0, 0x684E, 0xF2EE, 0x6850, 0xD4D5, 0x6851, 0xDFCD, 0x6853, 0xFCB8, 0x6854, 0xD1D0, 0x686D, 0xF2CD, 0x6876, 0xF7D2, + 0x687F, 0xCAD4, 0x6881, 0xD5D9, 0x6885, 0xD8DE, 0x688F, 0xCDD9, 0x6893, 0xEEA9, 0x6894, 0xF6BC, 0x6897, 0xCCDB, 0x689D, 0xF0C9, + 0x689F, 0xFCFC, 0x68A1, 0xE8C9, 0x68A2, 0xF4FE, 0x68A7, 0xE7FC, 0x68A8, 0xD7DE, 0x68AD, 0xDEDC, 0x68AF, 0xF0AC, 0x68B0, 0xCCFE, + 0x68B1, 0xCDE1, 0x68B3, 0xE1BA, 0x68B5, 0xDBEF, 0x68B6, 0xDAB2, 0x68C4, 0xD1A5, 0x68C5, 0xDCB8, 0x68C9, 0xD8F6, 0x68CB, 0xD1A4, + 0x68CD, 0xCDE2, 0x68D2, 0xDCEA, 0x68D5, 0xF0F7, 0x68D7, 0xF0CA, 0x68D8, 0xD0BE, 0x68DA, 0xDDDC, 0x68DF, 0xD4D6, 0x68E0, 0xD3D6, + 0x68E7, 0xEDD0, 0x68E8, 0xCDA1, 0x68EE, 0xDFB5, 0x68F2, 0xDFF8, 0x68F9, 0xD4A1, 0x68FA, 0xCEB2, 0x6900, 0xE8CA, 0x6905, 0xEBF5, + 0x690D, 0xE3D5, 0x690E, 0xF5D0, 0x6912, 0xF5A1, 0x6927, 0xD9A7, 0x6930, 0xE5AB, 0x693D, 0xE6CB, 0x693F, 0xF5F1, 0x694A, 0xE5C5, + 0x6953, 0xF9A3, 0x6954, 0xE0DB, 0x6955, 0xF6EB, 0x6957, 0xCBF1, 0x6959, 0xD9EA, 0x695A, 0xF5A2, 0x695E, 0xD7D1, 0x6960, 0xD1F8, + 0x6961, 0xEAF8, 0x6962, 0xEAF9, 0x6963, 0xDAB3, 0x6968, 0xEFDF, 0x696B, 0xF1EF, 0x696D, 0xE5F6, 0x696E, 0xEEBF, 0x696F, 0xE2E4, + 0x6975, 0xD0BF, 0x6977, 0xFAAC, 0x6978, 0xF5D1, 0x6979, 0xE7B3, 0x6995, 0xE9BE, 0x699B, 0xF2CE, 0x699C, 0xDBB4, 0x69A5, 0xFCCE, + 0x69A7, 0xDDEE, 0x69AE, 0xE7B4, 0x69B4, 0xD7B4, 0x69BB, 0xF7B4, 0x69C1, 0xCDBE, 0x69C3, 0xDAE9, 0x69CB, 0xCFB0, 0x69CC, 0xF7D9, + 0x69CD, 0xF3E6, 0x69D0, 0xCED9, 0x69E8, 0xCEAA, 0x69EA, 0xCBC8, 0x69FB, 0xD0A7, 0x69FD, 0xF0CB, 0x69FF, 0xD0C7, 0x6A02, 0xE4C5, + 0x6A0A, 0xDBE0, 0x6A11, 0xD5DA, 0x6A13, 0xD7A7, 0x6A17, 0xEEC0, 0x6A19, 0xF8F6, 0x6A1E, 0xF5D2, 0x6A1F, 0xEDE9, 0x6A21, 0xD9BC, + 0x6A23, 0xE5C6, 0x6A35, 0xF5A3, 0x6A38, 0xDAD4, 0x6A39, 0xE2A7, 0x6A3A, 0xFBFC, 0x6A3D, 0xF1DC, 0x6A44, 0xCAF4, 0x6A48, 0xE8FA, + 0x6A4B, 0xCEE9, 0x6A52, 0xE9F8, 0x6A53, 0xE2E5, 0x6A58, 0xD0B9, 0x6A59, 0xD4F2, 0x6A5F, 0xD1A6, 0x6A61, 0xDFCE, 0x6A6B, 0xFCF4, + 0x6A80, 0xD3AA, 0x6A84, 0xCCAC, 0x6A89, 0xEFE0, 0x6A8D, 0xE5E5, 0x6A8E, 0xD0D5, 0x6A97, 0xDBFC, 0x6A9C, 0xFCE6, 0x6AA2, 0xCBFE, + 0x6AA3, 0xEDEA, 0x6AB3, 0xDEB1, 0x6ABB, 0xF9E3, 0x6AC2, 0xD4A2, 0x6AC3, 0xCFF6, 0x6AD3, 0xD6D0, 0x6ADA, 0xD5EA, 0x6ADB, 0xF1EE, + 0x6AF6, 0xFACB, 0x6AFB, 0xE5A1, 0x6B04, 0xD5B1, 0x6B0A, 0xCFED, 0x6B0C, 0xEDEB, 0x6B12, 0xD5B2, 0x6B16, 0xD5BC, 0x6B20, 0xFDE2, + 0x6B21, 0xF3AD, 0x6B23, 0xFDDB, 0x6B32, 0xE9B0, 0x6B3A, 0xD1A7, 0x6B3D, 0xFDE3, 0x6B3E, 0xCEB3, 0x6B46, 0xFDE4, 0x6B47, 0xFACE, + 0x6B4C, 0xCAB0, 0x6B4E, 0xF7A7, 0x6B50, 0xCFB1, 0x6B5F, 0xE6A2, 0x6B61, 0xFCB6, 0x6B62, 0xF2AD, 0x6B63, 0xEFE1, 0x6B64, 0xF3AE, + 0x6B65, 0xDCC6, 0x6B66, 0xD9EB, 0x6B6A, 0xE8E0, 0x6B72, 0xE1A8, 0x6B77, 0xD5F6, 0x6B78, 0xCFFD, 0x6B7B, 0xDEDD, 0x6B7F, 0xD9D1, + 0x6B83, 0xE4EA, 0x6B84, 0xF2CF, 0x6B86, 0xF7BF, 0x6B89, 0xE2E6, 0x6B8A, 0xE2A8, 0x6B96, 0xE3D6, 0x6B98, 0xEDD1, 0x6B9E, 0xE9F9, + 0x6BAE, 0xD6B1, 0x6BAF, 0xDEB2, 0x6BB2, 0xE0E8, 0x6BB5, 0xD3AB, 0x6BB7, 0xEBDC, 0x6BBA, 0xDFAF, 0x6BBC, 0xCAC3, 0x6BBF, 0xEEFC, + 0x6BC1, 0xFDC3, 0x6BC5, 0xEBF6, 0x6BC6, 0xCFB2, 0x6BCB, 0xD9EC, 0x6BCD, 0xD9BD, 0x6BCF, 0xD8DF, 0x6BD2, 0xD4B8, 0x6BD3, 0xEBBE, + 0x6BD4, 0xDDEF, 0x6BD6, 0xDDF0, 0x6BD7, 0xDDF1, 0x6BD8, 0xDDF2, 0x6BDB, 0xD9BE, 0x6BEB, 0xFBC6, 0x6BEC, 0xCFB3, 0x6C08, 0xEEFD, + 0x6C0F, 0xE4AB, 0x6C11, 0xDAC5, 0x6C13, 0xD8EC, 0x6C23, 0xD1A8, 0x6C34, 0xE2A9, 0x6C37, 0xDEBC, 0x6C38, 0xE7B5, 0x6C3E, 0xDBF0, + 0x6C40, 0xEFE2, 0x6C41, 0xF1F0, 0x6C42, 0xCFB4, 0x6C4E, 0xDBF1, 0x6C50, 0xE0B1, 0x6C55, 0xDFA5, 0x6C57, 0xF9D2, 0x6C5A, 0xE7FD, + 0x6C5D, 0xE6A3, 0x6C5E, 0xFBF1, 0x6C5F, 0xCBB0, 0x6C60, 0xF2AE, 0x6C68, 0xCDE7, 0x6C6A, 0xE8DC, 0x6C6D, 0xE7D7, 0x6C70, 0xF7C0, + 0x6C72, 0xD0E3, 0x6C76, 0xDAA1, 0x6C7A, 0xCCBD, 0x6C7D, 0xD1A9, 0x6C7E, 0xDDCC, 0x6C81, 0xE3FE, 0x6C82, 0xD1AA, 0x6C83, 0xE8AA, + 0x6C85, 0xEAB6, 0x6C86, 0xF9FA, 0x6C87, 0xE6CC, 0x6C88, 0xF6D8, 0x6C8C, 0xD4C7, 0x6C90, 0xD9CB, 0x6C92, 0xD9D2, 0x6C93, 0xD3CB, + 0x6C94, 0xD8F7, 0x6C95, 0xDAA9, 0x6C96, 0xF5F8, 0x6C99, 0xDEDE, 0x6C9A, 0xF2AF, 0x6C9B, 0xF8A9, 0x6CAB, 0xD8C8, 0x6CAE, 0xEEC1, + 0x6CB3, 0xF9C1, 0x6CB8, 0xDDF3, 0x6CB9, 0xEAFA, 0x6CBB, 0xF6BD, 0x6CBC, 0xE1BB, 0x6CBD, 0xCDBF, 0x6CBE, 0xF4D4, 0x6CBF, 0xE6CD, + 0x6CC1, 0xFCCF, 0x6CC2, 0xFBA2, 0x6CC4, 0xE0DC, 0x6CC9, 0xF4BB, 0x6CCA, 0xDAD5, 0x6CCC, 0xF9B2, 0x6CD3, 0xFBF2, 0x6CD5, 0xDBF6, + 0x6CD7, 0xDEDF, 0x6CDB, 0xDBF2, 0x6CE1, 0xF8DC, 0x6CE2, 0xF7EE, 0x6CE3, 0xEBE8, 0x6CE5, 0xD2FA, 0x6CE8, 0xF1BC, 0x6CEB, 0xFADA, + 0x6CEE, 0xDAEA, 0x6CEF, 0xDAC6, 0x6CF0, 0xF7C1, 0x6CF3, 0xE7B6, 0x6D0B, 0xE5C7, 0x6D0C, 0xD6AC, 0x6D11, 0xDCC7, 0x6D17, 0xE1A9, + 0x6D19, 0xE2AA, 0x6D1B, 0xD5A6, 0x6D1E, 0xD4D7, 0x6D25, 0xF2D0, 0x6D27, 0xEAFB, 0x6D29, 0xE0DD, 0x6D2A, 0xFBF3, 0x6D32, 0xF1BD, + 0x6D35, 0xE2E7, 0x6D36, 0xFDD7, 0x6D38, 0xCEC8, 0x6D39, 0xEAB7, 0x6D3B, 0xFCC0, 0x6D3D, 0xFDE7, 0x6D3E, 0xF7EF, 0x6D41, 0xD7B5, + 0x6D59, 0xEFBA, 0x6D5A, 0xF1DD, 0x6D5C, 0xDEB3, 0x6D63, 0xE8CB, 0x6D66, 0xF8DD, 0x6D69, 0xFBC7, 0x6D6A, 0xD5C8, 0x6D6C, 0xD7DF, + 0x6D6E, 0xDDA9, 0x6D74, 0xE9B1, 0x6D77, 0xFAAD, 0x6D78, 0xF6D9, 0x6D79, 0xFAF4, 0x6D7F, 0xF8AA, 0x6D85, 0xE6EE, 0x6D87, 0xCCDC, + 0x6D88, 0xE1BC, 0x6D89, 0xE0EF, 0x6D8C, 0xE9BF, 0x6D8D, 0xFCFD, 0x6D8E, 0xE6CE, 0x6D91, 0xE1D7, 0x6D93, 0xE6CF, 0x6D95, 0xF4F1, + 0x6DAF, 0xE4F3, 0x6DB2, 0xE4FB, 0x6DB5, 0xF9E4, 0x6DC0, 0xEFE3, 0x6DC3, 0xCFEE, 0x6DC4, 0xF6BE, 0x6DC5, 0xE0B2, 0x6DC6, 0xFCFE, + 0x6DC7, 0xD1AB, 0x6DCB, 0xD7FA, 0x6DCF, 0xFBC8, 0x6DD1, 0xE2D7, 0x6DD8, 0xD4A3, 0x6DD9, 0xF0F8, 0x6DDA, 0xD7A8, 0x6DDE, 0xE1E7, + 0x6DE1, 0xD3BF, 0x6DE8, 0xEFE4, 0x6DEA, 0xD7C5, 0x6DEB, 0xEBE2, 0x6DEE, 0xFCE7, 0x6DF1, 0xE4A2, 0x6DF3, 0xE2E8, 0x6DF5, 0xE6D0, + 0x6DF7, 0xFBE8, 0x6DF8, 0xF4E8, 0x6DF9, 0xE5F4, 0x6DFA, 0xF4BC, 0x6DFB, 0xF4D5, 0x6E17, 0xDFB6, 0x6E19, 0xFCB9, 0x6E1A, 0xEEC2, + 0x6E1B, 0xCAF5, 0x6E1F, 0xEFE5, 0x6E20, 0xCBE2, 0x6E21, 0xD4A4, 0x6E23, 0xDEE0, 0x6E24, 0xDAFD, 0x6E25, 0xE4C6, 0x6E26, 0xE8BE, + 0x6E2B, 0xE0DE, 0x6E2C, 0xF6B4, 0x6E2D, 0xEAD2, 0x6E2F, 0xF9FB, 0x6E32, 0xE0C2, 0x6E34, 0xCAE4, 0x6E36, 0xE7B7, 0x6E38, 0xEAFD, + 0x6E3A, 0xD9DD, 0x6E3C, 0xDAB4, 0x6E3D, 0xEEAA, 0x6E3E, 0xFBE9, 0x6E43, 0xDBCB, 0x6E44, 0xDAB5, 0x6E4A, 0xF1BE, 0x6E4D, 0xD3AC, + 0x6E56, 0xFBC9, 0x6E58, 0xDFCF, 0x6E5B, 0xD3C0, 0x6E5C, 0xE3D7, 0x6E5E, 0xEFE6, 0x6E5F, 0xFCD0, 0x6E67, 0xE9C0, 0x6E6B, 0xF5D3, + 0x6E6E, 0xECDC, 0x6E6F, 0xF7B7, 0x6E72, 0xEAB8, 0x6E73, 0xD1F9, 0x6E7A, 0xDCC8, 0x6E90, 0xEAB9, 0x6E96, 0xF1DE, 0x6E9C, 0xD7B6, + 0x6E9D, 0xCFB5, 0x6E9F, 0xD9A8, 0x6EA2, 0xECEE, 0x6EA5, 0xDDAA, 0x6EAA, 0xCDA2, 0x6EAB, 0xE8AE, 0x6EAF, 0xE1BD, 0x6EB1, 0xF2D1, + 0x6EB6, 0xE9C1, 0x6EBA, 0xD2FC, 0x6EC2, 0xDBB5, 0x6EC4, 0xF3E7, 0x6EC5, 0xD8FE, 0x6EC9, 0xFCD1, 0x6ECB, 0xEDB2, 0x6ECC, 0xF4AF, + 0x6ECE, 0xFBA3, 0x6ED1, 0xFCC1, 0x6ED3, 0xEEAB, 0x6ED4, 0xD4A5, 0x6EEF, 0xF4F2, 0x6EF4, 0xEED9, 0x6EF8, 0xFBCA, 0x6EFE, 0xCDE3, + 0x6EFF, 0xD8BB, 0x6F01, 0xE5DB, 0x6F02, 0xF8F7, 0x6F06, 0xF6D4, 0x6F0F, 0xD7A9, 0x6F11, 0xCBC9, 0x6F14, 0xE6D1, 0x6F15, 0xF0CC, + 0x6F20, 0xD8AE, 0x6F22, 0xF9D3, 0x6F23, 0xD5FE, 0x6F2B, 0xD8BC, 0x6F2C, 0xF2B0, 0x6F31, 0xE2AB, 0x6F32, 0xF3E8, 0x6F38, 0xEFC2, + 0x6F3F, 0xEDEC, 0x6F41, 0xE7B8, 0x6F51, 0xDAFE, 0x6F54, 0xCCBE, 0x6F57, 0xF2FC, 0x6F58, 0xDAEB, 0x6F5A, 0xE2D8, 0x6F5B, 0xEDD6, + 0x6F5E, 0xD6D1, 0x6F5F, 0xE0B3, 0x6F62, 0xFCD2, 0x6F64, 0xEBC8, 0x6F6D, 0xD3C1, 0x6F6E, 0xF0CD, 0x6F70, 0xCFF7, 0x6F7A, 0xEDD2, + 0x6F7C, 0xD4D8, 0x6F7D, 0xDCC9, 0x6F7E, 0xD7F1, 0x6F81, 0xDFBB, 0x6F84, 0xF3A5, 0x6F88, 0xF4CD, 0x6F8D, 0xF1BF, 0x6F8E, 0xF8B1, + 0x6F90, 0xE9FA, 0x6F94, 0xFBCB, 0x6F97, 0xCAD5, 0x6FA3, 0xF9D4, 0x6FA4, 0xF7CA, 0x6FA7, 0xD6C8, 0x6FAE, 0xFCE8, 0x6FAF, 0xF3BD, + 0x6FB1, 0xEEFE, 0x6FB3, 0xE7FE, 0x6FB9, 0xD3C2, 0x6FBE, 0xD3B6, 0x6FC0, 0xCCAD, 0x6FC1, 0xF6FA, 0x6FC2, 0xD6B2, 0x6FC3, 0xD2D8, + 0x6FCA, 0xE7D8, 0x6FD5, 0xE3A5, 0x6FDA, 0xE7B9, 0x6FDF, 0xF0AD, 0x6FE0, 0xFBCC, 0x6FE1, 0xEBA1, 0x6FE4, 0xD4A6, 0x6FE9, 0xFBCD, + 0x6FEB, 0xD5BD, 0x6FEC, 0xF1DF, 0x6FEF, 0xF6FB, 0x6FF1, 0xDEB4, 0x6FFE, 0xD5EB, 0x7001, 0xE5C8, 0x7005, 0xFBA4, 0x7006, 0xD4B9, + 0x7009, 0xDEE1, 0x700B, 0xE4A3, 0x700F, 0xD7B7, 0x7011, 0xF8EE, 0x7015, 0xDEB5, 0x7018, 0xD6D2, 0x701A, 0xF9D5, 0x701B, 0xE7BA, + 0x701C, 0xEBD5, 0x701D, 0xD5F7, 0x701E, 0xEFE7, 0x701F, 0xE1BE, 0x7023, 0xFAAE, 0x7027, 0xD6E9, 0x7028, 0xD6EE, 0x702F, 0xE7BB, + 0x7037, 0xECCB, 0x703E, 0xD5B3, 0x704C, 0xCEB4, 0x7050, 0xFBA5, 0x7051, 0xE1EE, 0x7058, 0xF7A8, 0x705D, 0xFBCE, 0x7063, 0xD8BD, + 0x706B, 0xFBFD, 0x7070, 0xFCE9, 0x7078, 0xCFB6, 0x707C, 0xEDC7, 0x707D, 0xEEAC, 0x7085, 0xCCDD, 0x708A, 0xF6A7, 0x708E, 0xE6FA, + 0x7092, 0xF5A4, 0x7098, 0xFDDC, 0x7099, 0xEDB3, 0x709A, 0xCEC9, 0x70A1, 0xEFE8, 0x70A4, 0xE1BF, 0x70AB, 0xFADB, 0x70AC, 0xCBE3, + 0x70AD, 0xF7A9, 0x70AF, 0xFBA6, 0x70B3, 0xDCB9, 0x70B7, 0xF1C0, 0x70B8, 0xEDC8, 0x70B9, 0xEFC3, 0x70C8, 0xD6AD, 0x70CB, 0xFDCE, + 0x70CF, 0xE8A1, 0x70D8, 0xFBF4, 0x70D9, 0xD5A7, 0x70DD, 0xF1F6, 0x70DF, 0xE6D3, 0x70F1, 0xCCDE, 0x70F9, 0xF8B2, 0x70FD, 0xDCEB, + 0x7104, 0xFDB6, 0x7109, 0xE5EA, 0x710C, 0xF1E0, 0x7119, 0xDBCC, 0x711A, 0xDDCD, 0x711E, 0xD4C8, 0x7121, 0xD9ED, 0x7126, 0xF5A5, + 0x7130, 0xE6FB, 0x7136, 0xE6D4, 0x7147, 0xFDC8, 0x7149, 0xD6A1, 0x714A, 0xFDBF, 0x714C, 0xFCD3, 0x714E, 0xEFA1, 0x7150, 0xE7BC, + 0x7156, 0xD1EE, 0x7159, 0xE6D5, 0x715C, 0xE9F2, 0x715E, 0xDFB0, 0x7164, 0xD8E0, 0x7165, 0xFCBA, 0x7166, 0xFDAF, 0x7167, 0xF0CE, + 0x7169, 0xDBE1, 0x716C, 0xE5C9, 0x716E, 0xEDB4, 0x717D, 0xE0C3, 0x7184, 0xE3D8, 0x7189, 0xE9FB, 0x718A, 0xEAA8, 0x718F, 0xFDB7, + 0x7192, 0xFBA7, 0x7194, 0xE9C2, 0x7199, 0xFDF7, 0x719F, 0xE2D9, 0x71A2, 0xDCEC, 0x71AC, 0xE8A2, 0x71B1, 0xE6F0, 0x71B9, 0xFDF8, + 0x71BA, 0xFDF9, 0x71BE, 0xF6BF, 0x71C1, 0xE7A7, 0x71C3, 0xE6D7, 0x71C8, 0xD4F3, 0x71C9, 0xD4C9, 0x71CE, 0xD6FA, 0x71D0, 0xD7F2, + 0x71D2, 0xE1C0, 0x71D4, 0xDBE2, 0x71D5, 0xE6D8, 0x71DF, 0xE7BD, 0x71E5, 0xF0CF, 0x71E6, 0xF3BE, 0x71E7, 0xE2AC, 0x71ED, 0xF5B7, + 0x71EE, 0xE0F0, 0x71FB, 0xFDB8, 0x71FC, 0xE3E8, 0x71FE, 0xD4A7, 0x71FF, 0xE8FC, 0x7200, 0xFAD2, 0x7206, 0xF8EF, 0x7210, 0xD6D3, + 0x721B, 0xD5B4, 0x722A, 0xF0D0, 0x722C, 0xF7F0, 0x722D, 0xEEB3, 0x7230, 0xEABA, 0x7232, 0xEAD3, 0x7235, 0xEDC9, 0x7236, 0xDDAB, + 0x723A, 0xE5AC, 0x723B, 0xFDA1, 0x723D, 0xDFD0, 0x723E, 0xECB3, 0x7240, 0xDFD1, 0x7246, 0xEDED, 0x7247, 0xF8B8, 0x7248, 0xF7FA, + 0x724C, 0xF8AB, 0x7252, 0xF4E0, 0x7258, 0xD4BA, 0x7259, 0xE4B3, 0x725B, 0xE9DA, 0x725D, 0xDEB6, 0x725F, 0xD9BF, 0x7261, 0xD9C0, + 0x7262, 0xD6EF, 0x7267, 0xD9CC, 0x7269, 0xDAAA, 0x7272, 0xDFE5, 0x7279, 0xF7E5, 0x727D, 0xCCB2, 0x7280, 0xDFF9, 0x7281, 0xD7E0, + 0x72A2, 0xD4BB, 0x72A7, 0xFDFA, 0x72AC, 0xCCB3, 0x72AF, 0xDBF3, 0x72C0, 0xDFD2, 0x72C2, 0xCECA, 0x72C4, 0xEEDA, 0x72CE, 0xE4E4, + 0x72D0, 0xFBCF, 0x72D7, 0xCFB7, 0x72D9, 0xEEC3, 0x72E1, 0xCEEA, 0x72E9, 0xE2AD, 0x72F8, 0xD7E1, 0x72F9, 0xFAF5, 0x72FC, 0xD5C9, + 0x72FD, 0xF8AC, 0x730A, 0xE7D9, 0x7316, 0xF3E9, 0x731B, 0xD8ED, 0x731C, 0xE3C4, 0x731D, 0xF0F1, 0x7325, 0xE8E5, 0x7329, 0xE0FA, + 0x732A, 0xEEC4, 0x732B, 0xD9DE, 0x7336, 0xEBA2, 0x7337, 0xEBA3, 0x733E, 0xFCC2, 0x733F, 0xEABB, 0x7344, 0xE8AB, 0x7345, 0xDEE2, + 0x7350, 0xEDEF, 0x7352, 0xE8A3, 0x7357, 0xCFF1, 0x7368, 0xD4BC, 0x736A, 0xFCEA, 0x7370, 0xE7BE, 0x7372, 0xFCF2, 0x7375, 0xD6B4, + 0x7378, 0xE2AE, 0x737A, 0xD3B7, 0x737B, 0xFACC, 0x7384, 0xFADC, 0x7386, 0xEDB5, 0x7387, 0xE1E3, 0x7389, 0xE8AC, 0x738B, 0xE8DD, + 0x738E, 0xEFE9, 0x7394, 0xF4BD, 0x7396, 0xCFB8, 0x7397, 0xE9DB, 0x7398, 0xD1AC, 0x739F, 0xDAC7, 0x73A7, 0xEBC9, 0x73A9, 0xE8CC, + 0x73AD, 0xDEB7, 0x73B2, 0xD6BC, 0x73B3, 0xD3E5, 0x73B9, 0xFADD, 0x73C0, 0xDAD6, 0x73C2, 0xCAB1, 0x73C9, 0xDAC8, 0x73CA, 0xDFA6, + 0x73CC, 0xF9B3, 0x73CD, 0xF2D2, 0x73CF, 0xCAC4, 0x73D6, 0xCECB, 0x73D9, 0xCDF5, 0x73DD, 0xFDB0, 0x73DE, 0xD5A8, 0x73E0, 0xF1C1, + 0x73E3, 0xE2E9, 0x73E4, 0xDCCA, 0x73E5, 0xECB4, 0x73E6, 0xFAC0, 0x73E9, 0xFBA8, 0x73EA, 0xD0A8, 0x73ED, 0xDAEC, 0x73F7, 0xD9EE, + 0x73F9, 0xE0FB, 0x73FD, 0xEFEA, 0x73FE, 0xFADE, 0x7401, 0xE0C4, 0x7403, 0xCFB9, 0x7405, 0xD5CA, 0x7406, 0xD7E2, 0x7407, 0xE2AF, + 0x7409, 0xD7B8, 0x7413, 0xE8CD, 0x741B, 0xF6DA, 0x7420, 0xEFA2, 0x7421, 0xE2DA, 0x7422, 0xF6FC, 0x7425, 0xFBD0, 0x7426, 0xD1AD, + 0x7428, 0xCDE4, 0x742A, 0xD1AE, 0x742B, 0xDCED, 0x742C, 0xE8CE, 0x742E, 0xF0F9, 0x742F, 0xCEB5, 0x7430, 0xE6FC, 0x7433, 0xD7FB, + 0x7434, 0xD0D6, 0x7435, 0xDDF5, 0x7436, 0xF7F1, 0x7438, 0xF6FD, 0x743A, 0xDBF7, 0x743F, 0xFBEA, 0x7440, 0xE9DC, 0x7441, 0xD9C1, + 0x7443, 0xF5F2, 0x7444, 0xE0C5, 0x744B, 0xEAD4, 0x7455, 0xF9C2, 0x7457, 0xEABC, 0x7459, 0xD2C5, 0x745A, 0xFBD1, 0x745B, 0xE7C0, + 0x745C, 0xEBA5, 0x745E, 0xDFFA, 0x745F, 0xE3A2, 0x7460, 0xD7B9, 0x7462, 0xE9C3, 0x7464, 0xE8FD, 0x7465, 0xE8AF, 0x7468, 0xF2D3, + 0x7469, 0xFBA9, 0x746A, 0xD8A5, 0x746F, 0xD5CB, 0x747E, 0xD0C8, 0x7482, 0xD1AF, 0x7483, 0xD7E3, 0x7487, 0xE0C6, 0x7489, 0xD6A2, + 0x748B, 0xEDF0, 0x7498, 0xD7F3, 0x749C, 0xFCD4, 0x749E, 0xDAD7, 0x749F, 0xCCDF, 0x74A1, 0xF2D4, 0x74A3, 0xD1B0, 0x74A5, 0xCCE0, + 0x74A7, 0xDBFD, 0x74A8, 0xF3BF, 0x74AA, 0xF0D1, 0x74B0, 0xFCBB, 0x74B2, 0xE2B0, 0x74B5, 0xE6A5, 0x74B9, 0xE2DB, 0x74BD, 0xDFDE, + 0x74BF, 0xE0C7, 0x74C6, 0xF2EF, 0x74CA, 0xCCE1, 0x74CF, 0xD6EA, 0x74D4, 0xE7C2, 0x74D8, 0xCEB6, 0x74DA, 0xF3C0, 0x74DC, 0xCDFE, + 0x74E0, 0xFBD2, 0x74E2, 0xF8F8, 0x74E3, 0xF7FB, 0x74E6, 0xE8BF, 0x74EE, 0xE8B7, 0x74F7, 0xEDB6, 0x7501, 0xDCBA, 0x7504, 0xCCB4, + 0x7511, 0xF1F7, 0x7515, 0xE8B8, 0x7518, 0xCAF6, 0x751A, 0xE4A4, 0x751B, 0xF4D6, 0x751F, 0xDFE6, 0x7523, 0xDFA7, 0x7525, 0xDFE7, + 0x7526, 0xE1C1, 0x7528, 0xE9C4, 0x752B, 0xDCCB, 0x752C, 0xE9C5, 0x7530, 0xEFA3, 0x7531, 0xEBA6, 0x7532, 0xCBA3, 0x7533, 0xE3E9, + 0x7537, 0xD1FB, 0x7538, 0xEFA4, 0x753A, 0xEFEB, 0x7547, 0xD0B4, 0x754C, 0xCDA3, 0x754F, 0xE8E6, 0x7551, 0xEFA5, 0x7553, 0xD3CC, + 0x7554, 0xDAED, 0x7559, 0xD7BA, 0x755B, 0xF2D5, 0x755C, 0xF5E5, 0x755D, 0xD9EF, 0x7562, 0xF9B4, 0x7565, 0xD5D4, 0x7566, 0xFDCF, + 0x756A, 0xDBE3, 0x756F, 0xF1E1, 0x7570, 0xECB6, 0x7575, 0xFBFE, 0x7576, 0xD3D7, 0x7578, 0xD1B1, 0x757A, 0xCBB1, 0x757F, 0xD1B2, + 0x7586, 0xCBB2, 0x7587, 0xF1C2, 0x758A, 0xF4E1, 0x758B, 0xF9B5, 0x758E, 0xE1C3, 0x758F, 0xE1C2, 0x7591, 0xEBF7, 0x759D, 0xDFA8, + 0x75A5, 0xCBCA, 0x75AB, 0xE6B9, 0x75B1, 0xF8DE, 0x75B2, 0xF9AA, 0x75B3, 0xCAF7, 0x75B5, 0xEDB7, 0x75B8, 0xD3B8, 0x75B9, 0xF2D6, + 0x75BC, 0xD4D9, 0x75BD, 0xEEC5, 0x75BE, 0xF2F0, 0x75C2, 0xCAB2, 0x75C5, 0xDCBB, 0x75C7, 0xF1F8, 0x75CD, 0xECB7, 0x75D2, 0xE5CA, + 0x75D4, 0xF6C0, 0x75D5, 0xFDDD, 0x75D8, 0xD4E3, 0x75D9, 0xCCE2, 0x75DB, 0xF7D4, 0x75E2, 0xD7E5, 0x75F0, 0xD3C3, 0x75F2, 0xD8A6, + 0x75F4, 0xF6C1, 0x75FA, 0xDDF6, 0x75FC, 0xCDC0, 0x7600, 0xE5DC, 0x760D, 0xE5CB, 0x7619, 0xE1C4, 0x761F, 0xE8B0, 0x7620, 0xF4B0, + 0x7621, 0xF3EA, 0x7622, 0xDAEE, 0x7624, 0xD7BB, 0x7626, 0xE2B1, 0x763B, 0xD7AA, 0x7642, 0xD6FB, 0x764C, 0xE4DF, 0x764E, 0xCAD6, + 0x7652, 0xEBA8, 0x7656, 0xDBFE, 0x7661, 0xF6C2, 0x7664, 0xEFBB, 0x7669, 0xD4FD, 0x766C, 0xE0C8, 0x7670, 0xE8B9, 0x7672, 0xEFA6, + 0x7678, 0xCDA4, 0x767B, 0xD4F4, 0x767C, 0xDBA1, 0x767D, 0xDBDC, 0x767E, 0xDBDD, 0x7684, 0xEEDC, 0x7686, 0xCBCB, 0x7687, 0xFCD5, + 0x768E, 0xCEEB, 0x7690, 0xCDC1, 0x7693, 0xFBD3, 0x76AE, 0xF9AB, 0x76BA, 0xF5D4, 0x76BF, 0xD9A9, 0x76C2, 0xE9DD, 0x76C3, 0xDBCD, + 0x76C6, 0xDDCE, 0x76C8, 0xE7C3, 0x76CA, 0xECCC, 0x76D2, 0xF9EC, 0x76D6, 0xCBCC, 0x76DB, 0xE0FC, 0x76DC, 0xD4A8, 0x76DE, 0xEDD3, + 0x76DF, 0xD8EF, 0x76E1, 0xF2D7, 0x76E3, 0xCAF8, 0x76E4, 0xDAEF, 0x76E7, 0xD6D4, 0x76EE, 0xD9CD, 0x76F2, 0xD8EE, 0x76F4, 0xF2C1, + 0x76F8, 0xDFD3, 0x76FC, 0xDAF0, 0x76FE, 0xE2EA, 0x7701, 0xE0FD, 0x7704, 0xD8F8, 0x7708, 0xF7AF, 0x7709, 0xDAB6, 0x770B, 0xCAD7, + 0x771E, 0xF2D8, 0x7720, 0xD8F9, 0x7729, 0xFADF, 0x7737, 0xCFEF, 0x7738, 0xD9C2, 0x773A, 0xF0D2, 0x773C, 0xE4D1, 0x7740, 0xF3B7, + 0x774D, 0xFAE0, 0x775B, 0xEFEC, 0x7761, 0xE2B2, 0x7763, 0xD4BD, 0x7766, 0xD9CE, 0x776B, 0xF4E2, 0x7779, 0xD4A9, 0x777E, 0xCDC2, + 0x777F, 0xE7DA, 0x778B, 0xF2D9, 0x7791, 0xD9AA, 0x779E, 0xD8BE, 0x77A5, 0xDCAD, 0x77AC, 0xE2EB, 0x77AD, 0xD6FC, 0x77B0, 0xCAF9, + 0x77B3, 0xD4DA, 0x77BB, 0xF4D7, 0x77BC, 0xCCA1, 0x77BF, 0xCFBA, 0x77D7, 0xF5B8, 0x77DB, 0xD9C3, 0x77DC, 0xD0E8, 0x77E2, 0xE3C5, + 0x77E3, 0xEBF8, 0x77E5, 0xF2B1, 0x77E9, 0xCFBB, 0x77ED, 0xD3AD, 0x77EE, 0xE8E1, 0x77EF, 0xCEEC, 0x77F3, 0xE0B4, 0x7802, 0xDEE3, + 0x7812, 0xDDF7, 0x7825, 0xF2B2, 0x7826, 0xF3F6, 0x7827, 0xF6DB, 0x782C, 0xD7FE, 0x7832, 0xF8DF, 0x7834, 0xF7F2, 0x7845, 0xD0A9, + 0x784F, 0xE6DA, 0x785D, 0xF5A6, 0x786B, 0xD7BC, 0x786C, 0xCCE3, 0x786F, 0xE6DB, 0x787C, 0xDDDD, 0x7881, 0xD1B3, 0x7887, 0xEFED, + 0x788C, 0xD6DE, 0x788D, 0xE4F4, 0x788E, 0xE1EF, 0x7891, 0xDDF8, 0x7897, 0xE8CF, 0x78A3, 0xCAE5, 0x78A7, 0xDCA1, 0x78A9, 0xE0B5, + 0x78BA, 0xFCAC, 0x78BB, 0xFCAD, 0x78BC, 0xD8A7, 0x78C1, 0xEDB8, 0x78C5, 0xDBB6, 0x78CA, 0xD6F0, 0x78CB, 0xF3AF, 0x78CE, 0xCDA5, + 0x78D0, 0xDAF1, 0x78E8, 0xD8A8, 0x78EC, 0xCCE4, 0x78EF, 0xD1B4, 0x78F5, 0xCAD8, 0x78FB, 0xDAF2, 0x7901, 0xF5A7, 0x790E, 0xF5A8, + 0x7916, 0xE6A6, 0x792A, 0xD5EC, 0x792B, 0xD5F8, 0x792C, 0xDAF3, 0x793A, 0xE3C6, 0x793E, 0xDEE4, 0x7940, 0xDEE5, 0x7941, 0xD1B5, + 0x7947, 0xD1B6, 0x7948, 0xD1B7, 0x7949, 0xF2B3, 0x7950, 0xE9DE, 0x7956, 0xF0D3, 0x7957, 0xF2B4, 0x795A, 0xF0D4, 0x795B, 0xCBE4, + 0x795C, 0xFBD4, 0x795D, 0xF5E6, 0x795E, 0xE3EA, 0x7960, 0xDEE6, 0x7965, 0xDFD4, 0x7968, 0xF8F9, 0x796D, 0xF0AE, 0x797A, 0xD1B8, + 0x797F, 0xD6DF, 0x7981, 0xD0D7, 0x798D, 0xFCA1, 0x798E, 0xEFEE, 0x798F, 0xDCD8, 0x7991, 0xE9DF, 0x79A6, 0xE5DD, 0x79A7, 0xFDFB, + 0x79AA, 0xE0C9, 0x79AE, 0xD6C9, 0x79B1, 0xD4AA, 0x79B3, 0xE5CC, 0x79B9, 0xE9E0, 0x79BD, 0xD0D8, 0x79BE, 0xFCA2, 0x79BF, 0xD4BE, + 0x79C0, 0xE2B3, 0x79C1, 0xDEE7, 0x79C9, 0xDCBC, 0x79CA, 0xD2B6, 0x79CB, 0xF5D5, 0x79D1, 0xCEA1, 0x79D2, 0xF5A9, 0x79D5, 0xDDF9, + 0x79D8, 0xDDFA, 0x79DF, 0xF0D5, 0x79E4, 0xF6DF, 0x79E6, 0xF2DA, 0x79E7, 0xE4EB, 0x79E9, 0xF2F1, 0x79FB, 0xECB9, 0x7A00, 0xFDFC, + 0x7A05, 0xE1AA, 0x7A08, 0xCAD9, 0x7A0B, 0xEFEF, 0x7A0D, 0xF5AA, 0x7A14, 0xECF9, 0x7A17, 0xF8AD, 0x7A19, 0xF2C2, 0x7A1A, 0xF6C3, + 0x7A1C, 0xD7D2, 0x7A1F, 0xF9A2, 0x7A20, 0xF0D6, 0x7A2E, 0xF0FA, 0x7A31, 0xF6E0, 0x7A36, 0xE9F3, 0x7A37, 0xF2C3, 0x7A3B, 0xD4AB, + 0x7A3C, 0xCAB3, 0x7A3D, 0xCDA6, 0x7A3F, 0xCDC3, 0x7A40, 0xCDDA, 0x7A46, 0xD9CF, 0x7A49, 0xF6C4, 0x7A4D, 0xEEDD, 0x7A4E, 0xE7C4, + 0x7A57, 0xE2B4, 0x7A61, 0xDFE2, 0x7A62, 0xE7DB, 0x7A69, 0xE8B1, 0x7A6B, 0xFCAE, 0x7A70, 0xE5CD, 0x7A74, 0xFAEB, 0x7A76, 0xCFBC, + 0x7A79, 0xCFE2, 0x7A7A, 0xCDF6, 0x7A7D, 0xEFF0, 0x7A7F, 0xF4BE, 0x7A81, 0xD4CD, 0x7A84, 0xF3B8, 0x7A88, 0xE9A1, 0x7A92, 0xF2F2, + 0x7A93, 0xF3EB, 0x7A95, 0xF0D7, 0x7A98, 0xCFD7, 0x7A9F, 0xCFDF, 0x7AA9, 0xE8C0, 0x7AAA, 0xE8C1, 0x7AAE, 0xCFE3, 0x7AAF, 0xE9A2, + 0x7ABA, 0xD0AA, 0x7AC4, 0xF3C1, 0x7AC5, 0xD0AB, 0x7AC7, 0xD4E4, 0x7ACA, 0xEFBC, 0x7ACB, 0xD8A1, 0x7AD7, 0xD9DF, 0x7AD9, 0xF3D7, + 0x7ADD, 0xDCBD, 0x7ADF, 0xCCE5, 0x7AE0, 0xEDF1, 0x7AE3, 0xF1E2, 0x7AE5, 0xD4DB, 0x7AEA, 0xE2B5, 0x7AED, 0xCAE6, 0x7AEF, 0xD3AE, + 0x7AF6, 0xCCE6, 0x7AF9, 0xF1D3, 0x7AFA, 0xF5E7, 0x7AFF, 0xCADA, 0x7B0F, 0xFBEE, 0x7B11, 0xE1C5, 0x7B19, 0xDFE9, 0x7B1B, 0xEEDE, + 0x7B1E, 0xF7C2, 0x7B20, 0xD8A2, 0x7B26, 0xDDAC, 0x7B2C, 0xF0AF, 0x7B2D, 0xD6BD, 0x7B39, 0xE1AB, 0x7B46, 0xF9B6, 0x7B49, 0xD4F5, + 0x7B4B, 0xD0C9, 0x7B4C, 0xEFA7, 0x7B4D, 0xE2EC, 0x7B4F, 0xDBEA, 0x7B50, 0xCECC, 0x7B51, 0xF5E8, 0x7B52, 0xF7D5, 0x7B54, 0xD3CD, + 0x7B56, 0xF3FE, 0x7B60, 0xD0B5, 0x7B6C, 0xE0FE, 0x7B6E, 0xDFFB, 0x7B75, 0xE6DD, 0x7B7D, 0xE8A4, 0x7B87, 0xCBCD, 0x7B8B, 0xEFA8, + 0x7B8F, 0xEEB4, 0x7B94, 0xDAD8, 0x7B95, 0xD1B9, 0x7B97, 0xDFA9, 0x7B9A, 0xF3B0, 0x7B9D, 0xCCC4, 0x7BA1, 0xCEB7, 0x7BAD, 0xEFA9, + 0x7BB1, 0xDFD5, 0x7BB4, 0xEDD7, 0x7BB8, 0xEEC6, 0x7BC0, 0xEFBD, 0x7BC1, 0xFCD6, 0x7BC4, 0xDBF4, 0x7BC6, 0xEFAA, 0x7BC7, 0xF8B9, + 0x7BC9, 0xF5E9, 0x7BD2, 0xE3D9, 0x7BE0, 0xE1C6, 0x7BE4, 0xD4BF, 0x7BE9, 0xDEE8, 0x7C07, 0xF0EA, 0x7C12, 0xF3C2, 0x7C1E, 0xD3AF, + 0x7C21, 0xCADB, 0x7C27, 0xFCD7, 0x7C2A, 0xEDD8, 0x7C2B, 0xE1C7, 0x7C3D, 0xF4D8, 0x7C3E, 0xD6B3, 0x7C3F, 0xDDAD, 0x7C43, 0xD5BE, + 0x7C4C, 0xF1C3, 0x7C4D, 0xEEDF, 0x7C60, 0xD6EB, 0x7C64, 0xF4D9, 0x7C6C, 0xD7E6, 0x7C73, 0xDAB7, 0x7C83, 0xDDFB, 0x7C89, 0xDDCF, + 0x7C92, 0xD8A3, 0x7C95, 0xDAD9, 0x7C97, 0xF0D8, 0x7C98, 0xEFC4, 0x7C9F, 0xE1D8, 0x7CA5, 0xF1D4, 0x7CA7, 0xEDF2, 0x7CAE, 0xD5DB, + 0x7CB1, 0xD5DC, 0x7CB2, 0xF3C4, 0x7CB3, 0xCBD7, 0x7CB9, 0xE2B6, 0x7CBE, 0xEFF1, 0x7CCA, 0xFBD5, 0x7CD6, 0xD3D8, 0x7CDE, 0xDDD0, + 0x7CDF, 0xF0D9, 0x7CE0, 0xCBB3, 0x7CE7, 0xD5DD, 0x7CFB, 0xCDA7, 0x7CFE, 0xD0AC, 0x7D00, 0xD1BA, 0x7D02, 0xF1C4, 0x7D04, 0xE5B3, + 0x7D05, 0xFBF5, 0x7D06, 0xE9E1, 0x7D07, 0xFDE0, 0x7D08, 0xFCBC, 0x7D0A, 0xDAA2, 0x7D0B, 0xDAA3, 0x7D0D, 0xD2A1, 0x7D10, 0xD2EF, + 0x7D14, 0xE2ED, 0x7D17, 0xDEE9, 0x7D18, 0xCEDC, 0x7D19, 0xF2B5, 0x7D1A, 0xD0E4, 0x7D1B, 0xDDD1, 0x7D20, 0xE1C8, 0x7D21, 0xDBB7, + 0x7D22, 0xDFE3, 0x7D2B, 0xEDB9, 0x7D2C, 0xF1C5, 0x7D2E, 0xF3CF, 0x7D2F, 0xD7AB, 0x7D30, 0xE1AC, 0x7D33, 0xE3EB, 0x7D35, 0xEEC7, + 0x7D39, 0xE1C9, 0x7D3A, 0xCAFA, 0x7D42, 0xF0FB, 0x7D43, 0xFAE1, 0x7D44, 0xF0DA, 0x7D45, 0xCCE7, 0x7D46, 0xDAF4, 0x7D50, 0xCCBF, + 0x7D5E, 0xCEED, 0x7D61, 0xD5A9, 0x7D62, 0xFAE2, 0x7D66, 0xD0E5, 0x7D68, 0xEBD6, 0x7D6A, 0xECDF, 0x7D6E, 0xDFFC, 0x7D71, 0xF7D6, + 0x7D72, 0xDEEA, 0x7D73, 0xCBB4, 0x7D76, 0xEFBE, 0x7D79, 0xCCB5, 0x7D7F, 0xCFBD, 0x7D8E, 0xEFF2, 0x7D8F, 0xE2B7, 0x7D93, 0xCCE8, + 0x7D9C, 0xF0FC, 0x7DA0, 0xD6E0, 0x7DA2, 0xF1C6, 0x7DAC, 0xE2B8, 0x7DAD, 0xEBAB, 0x7DB1, 0xCBB5, 0x7DB2, 0xD8D1, 0x7DB4, 0xF4CE, + 0x7DB5, 0xF3F7, 0x7DB8, 0xD7C6, 0x7DBA, 0xD1BB, 0x7DBB, 0xF7AA, 0x7DBD, 0xEDCA, 0x7DBE, 0xD7D3, 0x7DBF, 0xD8FA, 0x7DC7, 0xF6C5, + 0x7DCA, 0xD1CC, 0x7DCB, 0xDDFC, 0x7DD6, 0xDFFD, 0x7DD8, 0xF9E5, 0x7DDA, 0xE0CA, 0x7DDD, 0xF2FD, 0x7DDE, 0xD3B0, 0x7DE0, 0xF4F3, + 0x7DE1, 0xDAC9, 0x7DE3, 0xE6DE, 0x7DE8, 0xF8BA, 0x7DE9, 0xE8D0, 0x7DEC, 0xD8FB, 0x7DEF, 0xEAD5, 0x7DF4, 0xD6A3, 0x7DFB, 0xF6C6, + 0x7E09, 0xF2DB, 0x7E0A, 0xE4FC, 0x7E15, 0xE8B2, 0x7E1B, 0xDADA, 0x7E1D, 0xF2DC, 0x7E1E, 0xFBD6, 0x7E1F, 0xE9B2, 0x7E21, 0xEEAD, + 0x7E23, 0xFAE3, 0x7E2B, 0xDCEE, 0x7E2E, 0xF5EA, 0x7E2F, 0xE6E0, 0x7E31, 0xF0FD, 0x7E37, 0xD7AC, 0x7E3D, 0xF5C5, 0x7E3E, 0xEEE0, + 0x7E41, 0xDBE5, 0x7E43, 0xDDDE, 0x7E46, 0xD9F0, 0x7E47, 0xE9A3, 0x7E52, 0xF1F9, 0x7E54, 0xF2C4, 0x7E55, 0xE0CB, 0x7E5E, 0xE9A4, + 0x7E61, 0xE2B9, 0x7E69, 0xE3B1, 0x7E6A, 0xFCEB, 0x7E6B, 0xCDA8, 0x7E6D, 0xCCB6, 0x7E70, 0xF0DB, 0x7E79, 0xE6BA, 0x7E7C, 0xCDA9, + 0x7E82, 0xF3C3, 0x7E8C, 0xE1D9, 0x7E8F, 0xEFAB, 0x7E93, 0xE7C5, 0x7E96, 0xE0E9, 0x7E98, 0xF3C5, 0x7E9B, 0xD4C0, 0x7E9C, 0xD5BF, + 0x7F36, 0xDDAE, 0x7F38, 0xF9FC, 0x7F3A, 0xCCC0, 0x7F4C, 0xE5A2, 0x7F50, 0xCEB8, 0x7F54, 0xD8D2, 0x7F55, 0xF9D6, 0x7F6A, 0xF1AA, + 0x7F6B, 0xCED1, 0x7F6E, 0xF6C7, 0x7F70, 0xDBEB, 0x7F72, 0xDFFE, 0x7F75, 0xD8E1, 0x7F77, 0xF7F3, 0x7F79, 0xD7E7, 0x7F85, 0xD4FE, + 0x7F88, 0xD1BC, 0x7F8A, 0xE5CF, 0x7F8C, 0xCBB6, 0x7F8E, 0xDAB8, 0x7F94, 0xCDC4, 0x7F9A, 0xD6BE, 0x7F9E, 0xE2BA, 0x7FA4, 0xCFD8, + 0x7FA8, 0xE0CC, 0x7FA9, 0xEBF9, 0x7FB2, 0xFDFD, 0x7FB8, 0xD7E8, 0x7FB9, 0xCBD8, 0x7FBD, 0xE9E2, 0x7FC1, 0xE8BA, 0x7FC5, 0xE3C7, + 0x7FCA, 0xECCD, 0x7FCC, 0xECCE, 0x7FCE, 0xD6BF, 0x7FD2, 0xE3A7, 0x7FD4, 0xDFD6, 0x7FD5, 0xFDE8, 0x7FDF, 0xEEE1, 0x7FE0, 0xF6A8, + 0x7FE1, 0xDDFD, 0x7FE9, 0xF8BB, 0x7FEB, 0xE8D1, 0x7FF0, 0xF9D7, 0x7FF9, 0xCEEE, 0x7FFC, 0xECCF, 0x8000, 0xE9A5, 0x8001, 0xD6D5, + 0x8003, 0xCDC5, 0x8005, 0xEDBA, 0x8006, 0xD1BD, 0x8009, 0xCFBE, 0x800C, 0xECBB, 0x8010, 0xD2B1, 0x8015, 0xCCE9, 0x8017, 0xD9C4, + 0x8018, 0xE9FC, 0x802D, 0xD1BE, 0x8033, 0xECBC, 0x8036, 0xE5AD, 0x803D, 0xF7B0, 0x803F, 0xCCEA, 0x8043, 0xD3C4, 0x8046, 0xD6C0, + 0x804A, 0xD6FD, 0x8056, 0xE1A1, 0x8058, 0xDEBD, 0x805A, 0xF6A9, 0x805E, 0xDAA4, 0x806F, 0xD6A4, 0x8070, 0xF5C6, 0x8072, 0xE1A2, + 0x8073, 0xE9C6, 0x8077, 0xF2C5, 0x807D, 0xF4E9, 0x807E, 0xD6EC, 0x807F, 0xEBD3, 0x8084, 0xECBD, 0x8085, 0xE2DC, 0x8086, 0xDEEB, + 0x8087, 0xF0DC, 0x8089, 0xEBBF, 0x808B, 0xD7CE, 0x808C, 0xD1BF, 0x8096, 0xF5AB, 0x809B, 0xF9FD, 0x809D, 0xCADC, 0x80A1, 0xCDC6, + 0x80A2, 0xF2B6, 0x80A5, 0xDDFE, 0x80A9, 0xCCB7, 0x80AA, 0xDBB8, 0x80AF, 0xD0E9, 0x80B1, 0xCEDD, 0x80B2, 0xEBC0, 0x80B4, 0xFDA2, + 0x80BA, 0xF8CB, 0x80C3, 0xEAD6, 0x80C4, 0xF1B0, 0x80CC, 0xDBCE, 0x80CE, 0xF7C3, 0x80DA, 0xDBCF, 0x80DB, 0xCBA4, 0x80DE, 0xF8E0, + 0x80E1, 0xFBD7, 0x80E4, 0xEBCA, 0x80E5, 0xE0A1, 0x80F1, 0xCECD, 0x80F4, 0xD4DC, 0x80F8, 0xFDD8, 0x80FD, 0xD2F6, 0x8102, 0xF2B7, + 0x8105, 0xFAF6, 0x8106, 0xF6AA, 0x8107, 0xFAF7, 0x8108, 0xD8E6, 0x810A, 0xF4B1, 0x8118, 0xE8D2, 0x811A, 0xCAC5, 0x811B, 0xCCEB, + 0x8123, 0xE2EE, 0x8129, 0xE2BB, 0x812B, 0xF7AD, 0x812F, 0xF8E1, 0x8139, 0xF3EC, 0x813E, 0xDEA1, 0x814B, 0xE4FD, 0x814E, 0xE3EC, + 0x8150, 0xDDAF, 0x8151, 0xDDB0, 0x8154, 0xCBB7, 0x8155, 0xE8D3, 0x8165, 0xE1A3, 0x8166, 0xD2E0, 0x816B, 0xF0FE, 0x8170, 0xE9A6, + 0x8171, 0xCBF2, 0x8178, 0xEDF3, 0x8179, 0xDCD9, 0x817A, 0xE0CD, 0x817F, 0xF7DA, 0x8180, 0xDBB9, 0x8188, 0xCCAE, 0x818A, 0xDADB, + 0x818F, 0xCDC7, 0x819A, 0xDDB1, 0x819C, 0xD8AF, 0x819D, 0xE3A3, 0x81A0, 0xCEEF, 0x81A3, 0xF2F3, 0x81A8, 0xF8B3, 0x81B3, 0xE0CE, + 0x81B5, 0xF5FD, 0x81BA, 0xEBEC, 0x81BD, 0xD3C5, 0x81BE, 0xFCEC, 0x81BF, 0xD2DB, 0x81C0, 0xD4EB, 0x81C2, 0xDEA2, 0x81C6, 0xE5E6, + 0x81CD, 0xF0B0, 0x81D8, 0xD5C4, 0x81DF, 0xEDF4, 0x81E3, 0xE3ED, 0x81E5, 0xE8C2, 0x81E7, 0xEDF5, 0x81E8, 0xD7FC, 0x81EA, 0xEDBB, + 0x81ED, 0xF6AB, 0x81F3, 0xF2B8, 0x81F4, 0xF6C8, 0x81FA, 0xD3E6, 0x81FB, 0xF2DD, 0x81FC, 0xCFBF, 0x81FE, 0xEBAC, 0x8205, 0xCFC0, + 0x8207, 0xE6A8, 0x8208, 0xFDE9, 0x820A, 0xCFC1, 0x820C, 0xE0DF, 0x820D, 0xDEEC, 0x8212, 0xE0A2, 0x821B, 0xF4BF, 0x821C, 0xE2EF, + 0x821E, 0xD9F1, 0x821F, 0xF1C7, 0x8221, 0xCBB8, 0x822A, 0xF9FE, 0x822B, 0xDBBA, 0x822C, 0xDAF5, 0x8235, 0xF6EC, 0x8236, 0xDADC, + 0x8237, 0xFAE4, 0x8239, 0xE0CF, 0x8240, 0xDDB2, 0x8245, 0xE6A9, 0x8247, 0xEFF3, 0x8259, 0xF3ED, 0x8264, 0xEBFA, 0x8266, 0xF9E6, + 0x826E, 0xCADD, 0x826F, 0xD5DE, 0x8271, 0xCADE, 0x8272, 0xDFE4, 0x8276, 0xE6FD, 0x8278, 0xF5AC, 0x827E, 0xE4F5, 0x828B, 0xE9E3, + 0x828D, 0xEDCB, 0x828E, 0xCFE4, 0x8292, 0xD8D3, 0x8299, 0xDDB3, 0x829A, 0xD4EC, 0x829D, 0xF2B9, 0x829F, 0xDFB7, 0x82A5, 0xCBCE, + 0x82A6, 0xFBD8, 0x82A9, 0xD0D9, 0x82AC, 0xDDD2, 0x82AD, 0xF7F4, 0x82AE, 0xE7DC, 0x82AF, 0xE4A5, 0x82B1, 0xFCA3, 0x82B3, 0xDBBB, + 0x82B7, 0xF2BA, 0x82B8, 0xE9FD, 0x82B9, 0xD0CA, 0x82BB, 0xF5D6, 0x82BC, 0xD9C5, 0x82BD, 0xE4B4, 0x82BF, 0xEDA7, 0x82D1, 0xEABD, + 0x82D2, 0xE6FE, 0x82D4, 0xF7C4, 0x82D5, 0xF5AD, 0x82D7, 0xD9E0, 0x82DB, 0xCAB4, 0x82DE, 0xF8E2, 0x82DF, 0xCFC2, 0x82E1, 0xECBE, + 0x82E5, 0xE5B4, 0x82E6, 0xCDC8, 0x82E7, 0xEEC8, 0x82F1, 0xE7C8, 0x82FD, 0xCDC9, 0x82FE, 0xF9B7, 0x8301, 0xF1E8, 0x8302, 0xD9F2, + 0x8303, 0xDBF5, 0x8304, 0xCAB5, 0x8305, 0xD9C6, 0x8309, 0xD8C9, 0x8317, 0xD9AB, 0x8328, 0xEDBC, 0x832B, 0xD8D4, 0x832F, 0xDCDA, + 0x8331, 0xE2BC, 0x8334, 0xFCED, 0x8335, 0xECE0, 0x8336, 0xD2FE, 0x8338, 0xE9C7, 0x8339, 0xE6AA, 0x8340, 0xE2F0, 0x8347, 0xFABB, + 0x8349, 0xF5AE, 0x834A, 0xFBAA, 0x834F, 0xECFB, 0x8351, 0xECBF, 0x8352, 0xFCD8, 0x8373, 0xD4E5, 0x8377, 0xF9C3, 0x837B, 0xEEE2, + 0x8389, 0xD7E9, 0x838A, 0xEDF6, 0x838E, 0xDEED, 0x8396, 0xCCEC, 0x8398, 0xE3EE, 0x839E, 0xE8D4, 0x83A2, 0xFAF8, 0x83A9, 0xDDB4, + 0x83AA, 0xE4B5, 0x83AB, 0xD8B0, 0x83BD, 0xD8D5, 0x83C1, 0xF4EA, 0x83C5, 0xCEB9, 0x83C9, 0xD6E1, 0x83CA, 0xCFD2, 0x83CC, 0xD0B6, + 0x83D3, 0xCEA2, 0x83D6, 0xF3EE, 0x83DC, 0xF3F8, 0x83E9, 0xDCCC, 0x83EB, 0xD0CB, 0x83EF, 0xFCA4, 0x83F0, 0xCDCA, 0x83F1, 0xD7D4, + 0x83F2, 0xDEA3, 0x83F4, 0xE4E0, 0x83F9, 0xEEC9, 0x83FD, 0xE2DD, 0x8403, 0xF5FE, 0x8404, 0xD4AC, 0x840A, 0xD5D1, 0x840C, 0xD8F0, + 0x840D, 0xF8C3, 0x840E, 0xEAD7, 0x8429, 0xF5D7, 0x842C, 0xD8BF, 0x8431, 0xFDC0, 0x8438, 0xEBAD, 0x843D, 0xD5AA, 0x8449, 0xE7A8, + 0x8457, 0xEECA, 0x845B, 0xCAE7, 0x8461, 0xF8E3, 0x8463, 0xD4DD, 0x8466, 0xEAD8, 0x846B, 0xFBD9, 0x846C, 0xEDF7, 0x846F, 0xE5B5, + 0x8475, 0xD0AD, 0x847A, 0xF1F1, 0x8490, 0xE2BD, 0x8494, 0xE3C8, 0x8499, 0xD9D5, 0x849C, 0xDFAA, 0x84A1, 0xDBBC, 0x84B2, 0xF8E4, + 0x84B8, 0xF1FA, 0x84BB, 0xE5B6, 0x84BC, 0xF3EF, 0x84BF, 0xFBDA, 0x84C0, 0xE1E0, 0x84C2, 0xD9AC, 0x84C4, 0xF5EB, 0x84C6, 0xE0B6, + 0x84C9, 0xE9C8, 0x84CB, 0xCBCF, 0x84CD, 0xE3C9, 0x84D1, 0xDEEE, 0x84DA, 0xE2BE, 0x84EC, 0xDCEF, 0x84EE, 0xD6A5, 0x84F4, 0xE2F1, + 0x84FC, 0xD6FE, 0x8511, 0xD9A1, 0x8513, 0xD8C0, 0x8514, 0xDCDB, 0x8517, 0xEDBD, 0x8518, 0xDFB8, 0x851A, 0xEAA5, 0x851E, 0xD7AD, + 0x8521, 0xF3F9, 0x8523, 0xEDF8, 0x8525, 0xF5C7, 0x852C, 0xE1CA, 0x852D, 0xEBE3, 0x852F, 0xF2DE, 0x853D, 0xF8CC, 0x853F, 0xEAD9, + 0x8541, 0xD3C6, 0x8543, 0xDBE6, 0x8549, 0xF5AF, 0x854E, 0xCEF0, 0x8553, 0xE9FE, 0x8559, 0xFBB6, 0x8563, 0xE2F2, 0x8568, 0xCFF2, + 0x8569, 0xF7B9, 0x856A, 0xD9F3, 0x856D, 0xE1CB, 0x8584, 0xDADD, 0x8587, 0xDAB9, 0x858F, 0xEBFB, 0x8591, 0xCBB9, 0x8594, 0xEDF9, + 0x859B, 0xE0E0, 0x85A6, 0xF4C0, 0x85A8, 0xFDBC, 0x85A9, 0xDFB1, 0x85AA, 0xE3EF, 0x85AF, 0xE0A3, 0x85B0, 0xFDB9, 0x85BA, 0xF0B1, + 0x85C1, 0xCDCB, 0x85C9, 0xEDBE, 0x85CD, 0xD5C0, 0x85CE, 0xE3F0, 0x85CF, 0xEDFA, 0x85D5, 0xE9E4, 0x85DC, 0xD5ED, 0x85DD, 0xE7DD, + 0x85E4, 0xD4F6, 0x85E5, 0xE5B7, 0x85E9, 0xDBE7, 0x85EA, 0xE2BF, 0x85F7, 0xEECB, 0x85FA, 0xD7F4, 0x85FB, 0xF0DD, 0x85FF, 0xCEAB, + 0x8602, 0xE7DE, 0x8606, 0xD6D6, 0x8607, 0xE1CC, 0x860A, 0xE8B3, 0x8616, 0xE5EE, 0x8617, 0xDCA2, 0x861A, 0xE0D0, 0x862D, 0xD5B5, + 0x863F, 0xD5A1, 0x864E, 0xFBDB, 0x8650, 0xF9CB, 0x8654, 0xCBF3, 0x8655, 0xF4A5, 0x865B, 0xFAC8, 0x865C, 0xD6D7, 0x865E, 0xE9E5, + 0x865F, 0xFBDC, 0x8667, 0xFDD0, 0x8679, 0xFBF6, 0x868A, 0xDAA5, 0x868C, 0xDBBD, 0x8693, 0xECE2, 0x86A3, 0xCDF7, 0x86A4, 0xF0DE, + 0x86A9, 0xF6C9, 0x86C7, 0xDEEF, 0x86CB, 0xD3B1, 0x86D4, 0xFCEE, 0x86D9, 0xE8C3, 0x86DB, 0xF1C8, 0x86DF, 0xCEF1, 0x86E4, 0xF9ED, + 0x86ED, 0xF2F4, 0x86FE, 0xE4B6, 0x8700, 0xF5B9, 0x8702, 0xDCF0, 0x8703, 0xE3F1, 0x8708, 0xE8A5, 0x8718, 0xF2BB, 0x871A, 0xDEA4, + 0x871C, 0xDACC, 0x874E, 0xCAE9, 0x8755, 0xE3DA, 0x8757, 0xFCD9, 0x875F, 0xEADA, 0x8766, 0xF9C4, 0x8768, 0xE3A4, 0x8774, 0xFBDD, + 0x8776, 0xEFCA, 0x8778, 0xE8C4, 0x8782, 0xD5CC, 0x878D, 0xEBD7, 0x879F, 0xD9AD, 0x87A2, 0xFBAB, 0x87B3, 0xD3D9, 0x87BA, 0xD5A2, + 0x87C4, 0xF6DE, 0x87E0, 0xDAF6, 0x87EC, 0xE0D1, 0x87EF, 0xE9A8, 0x87F2, 0xF5F9, 0x87F9, 0xFAAF, 0x87FB, 0xEBFC, 0x87FE, 0xE0EA, + 0x8805, 0xE3B2, 0x881F, 0xD5C5, 0x8822, 0xF1E3, 0x8823, 0xD5EE, 0x8831, 0xCDCC, 0x8836, 0xEDD9, 0x883B, 0xD8C1, 0x8840, 0xFAEC, + 0x8846, 0xF1EB, 0x884C, 0xFABC, 0x884D, 0xE6E2, 0x8852, 0xFAE5, 0x8853, 0xE2FA, 0x8857, 0xCAB6, 0x8859, 0xE4B7, 0x885B, 0xEADB, + 0x885D, 0xF5FA, 0x8861, 0xFBAC, 0x8862, 0xCFC3, 0x8863, 0xEBFD, 0x8868, 0xF8FA, 0x886B, 0xDFB9, 0x8870, 0xE1F1, 0x8872, 0xD2A4, + 0x8877, 0xF5FB, 0x887E, 0xD0DA, 0x887F, 0xD0DB, 0x8881, 0xEABE, 0x8882, 0xD9B1, 0x8888, 0xCAB7, 0x888B, 0xD3E7, 0x888D, 0xF8E5, + 0x8892, 0xD3B2, 0x8896, 0xE2C0, 0x8897, 0xF2DF, 0x889E, 0xCDE5, 0x88AB, 0xF9AC, 0x88B4, 0xCDCD, 0x88C1, 0xEEAE, 0x88C2, 0xD6AE, + 0x88CF, 0xD7EA, 0x88D4, 0xE7E0, 0x88D5, 0xEBAE, 0x88D9, 0xCFD9, 0x88DC, 0xDCCD, 0x88DD, 0xEDFB, 0x88DF, 0xDEF0, 0x88E1, 0xD7EB, + 0x88E8, 0xDEA5, 0x88F3, 0xDFD7, 0x88F4, 0xDBD0, 0x88F5, 0xDBD1, 0x88F8, 0xD5A3, 0x88FD, 0xF0B2, 0x8907, 0xDCDC, 0x8910, 0xCAE8, + 0x8912, 0xF8E6, 0x8913, 0xDCCE, 0x8918, 0xEADC, 0x8919, 0xDBD2, 0x8925, 0xE9B3, 0x892A, 0xF7DB, 0x8936, 0xE3A8, 0x8938, 0xD7AE, + 0x893B, 0xE0E1, 0x8941, 0xCBBA, 0x8944, 0xE5D1, 0x895F, 0xD0DC, 0x8964, 0xD5C1, 0x896A, 0xD8CA, 0x8972, 0xE3A9, 0x897F, 0xE0A4, + 0x8981, 0xE9A9, 0x8983, 0xD3C7, 0x8986, 0xDCDD, 0x8987, 0xF8AE, 0x898B, 0xCCB8, 0x898F, 0xD0AE, 0x8993, 0xD8F2, 0x8996, 0xE3CA, + 0x89A1, 0xCCAF, 0x89A9, 0xD4AD, 0x89AA, 0xF6D1, 0x89B2, 0xD0CC, 0x89BA, 0xCAC6, 0x89BD, 0xD5C2, 0x89C0, 0xCEBA, 0x89D2, 0xCAC7, + 0x89E3, 0xFAB0, 0x89F4, 0xDFD8, 0x89F8, 0xF5BA, 0x8A00, 0xE5EB, 0x8A02, 0xEFF4, 0x8A03, 0xDDB5, 0x8A08, 0xCDAA, 0x8A0A, 0xE3F2, + 0x8A0C, 0xFBF7, 0x8A0E, 0xF7D0, 0x8A13, 0xFDBA, 0x8A16, 0xFDE1, 0x8A17, 0xF6FE, 0x8A18, 0xD1C0, 0x8A1B, 0xE8C5, 0x8A1D, 0xE4B8, + 0x8A1F, 0xE1E8, 0x8A23, 0xCCC1, 0x8A25, 0xD2ED, 0x8A2A, 0xDBBE, 0x8A2D, 0xE0E2, 0x8A31, 0xFAC9, 0x8A34, 0xE1CD, 0x8A36, 0xCAB8, + 0x8A3A, 0xF2E0, 0x8A3B, 0xF1C9, 0x8A50, 0xDEF1, 0x8A54, 0xF0DF, 0x8A55, 0xF8C4, 0x8A5B, 0xEECC, 0x8A5E, 0xDEF2, 0x8A60, 0xE7C9, + 0x8A62, 0xE2F3, 0x8A63, 0xE7E1, 0x8A66, 0xE3CB, 0x8A69, 0xE3CC, 0x8A6D, 0xCFF8, 0x8A6E, 0xEFAC, 0x8A70, 0xFDFE, 0x8A71, 0xFCA5, + 0x8A72, 0xFAB1, 0x8A73, 0xDFD9, 0x8A75, 0xE0D2, 0x8A79, 0xF4DA, 0x8A85, 0xF1CA, 0x8A87, 0xCEA3, 0x8A8C, 0xF2BC, 0x8A8D, 0xECE3, + 0x8A93, 0xE0A5, 0x8A95, 0xF7AB, 0x8A98, 0xEBAF, 0x8A9E, 0xE5DE, 0x8AA0, 0xE1A4, 0x8AA1, 0xCDAB, 0x8AA3, 0xD9F4, 0x8AA4, 0xE8A6, + 0x8AA5, 0xCDCE, 0x8AA6, 0xE1E9, 0x8AA8, 0xFCEF, 0x8AAA, 0xE0E3, 0x8AB0, 0xE2C1, 0x8AB2, 0xCEA4, 0x8AB9, 0xDEA6, 0x8ABC, 0xEBFE, + 0x8ABE, 0xEBDD, 0x8ABF, 0xF0E0, 0x8AC2, 0xF4DB, 0x8AC4, 0xE2F4, 0x8AC7, 0xD3C8, 0x8ACB, 0xF4EB, 0x8ACD, 0xEEB5, 0x8ACF, 0xF5D8, + 0x8AD2, 0xD5DF, 0x8AD6, 0xD6E5, 0x8ADB, 0xEBB0, 0x8ADC, 0xF4E3, 0x8AE1, 0xE3CD, 0x8AE6, 0xF4F4, 0x8AE7, 0xFAB2, 0x8AEA, 0xEFF5, + 0x8AEB, 0xCADF, 0x8AED, 0xEBB1, 0x8AEE, 0xEDBF, 0x8AF1, 0xFDC9, 0x8AF6, 0xE4A6, 0x8AF7, 0xF9A4, 0x8AF8, 0xF0B3, 0x8AFA, 0xE5EC, + 0x8AFE, 0xD1E7, 0x8B00, 0xD9C7, 0x8B01, 0xE4D7, 0x8B02, 0xEADD, 0x8B04, 0xD4F7, 0x8B0E, 0xDABA, 0x8B10, 0xDACD, 0x8B14, 0xF9CC, + 0x8B16, 0xE1DA, 0x8B17, 0xDBBF, 0x8B19, 0xCCC5, 0x8B1A, 0xECD0, 0x8B1B, 0xCBBB, 0x8B1D, 0xDEF3, 0x8B20, 0xE9AA, 0x8B28, 0xD9C8, + 0x8B2B, 0xEEE3, 0x8B2C, 0xD7BD, 0x8B33, 0xCFC4, 0x8B39, 0xD0CD, 0x8B41, 0xFCA6, 0x8B49, 0xF1FB, 0x8B4E, 0xFDD2, 0x8B4F, 0xD1C1, + 0x8B58, 0xE3DB, 0x8B5A, 0xD3C9, 0x8B5C, 0xDCCF, 0x8B66, 0xCCED, 0x8B6C, 0xDEA7, 0x8B6F, 0xE6BB, 0x8B70, 0xECA1, 0x8B74, 0xCCB9, + 0x8B77, 0xFBDE, 0x8B7D, 0xE7E2, 0x8B80, 0xD4C1, 0x8B8A, 0xDCA8, 0x8B90, 0xE2C2, 0x8B92, 0xF3D8, 0x8B93, 0xE5D3, 0x8B96, 0xF3D9, + 0x8B9A, 0xF3C6, 0x8C37, 0xCDDB, 0x8C3F, 0xCDAC, 0x8C41, 0xFCC3, 0x8C46, 0xD4E7, 0x8C48, 0xD1C2, 0x8C4A, 0xF9A5, 0x8C4C, 0xE8D5, + 0x8C55, 0xE3CE, 0x8C5A, 0xD4CA, 0x8C61, 0xDFDA, 0x8C6A, 0xFBDF, 0x8C6B, 0xE7E3, 0x8C79, 0xF8FB, 0x8C7A, 0xE3CF, 0x8C82, 0xF5B0, + 0x8C8A, 0xD8E7, 0x8C8C, 0xD9C9, 0x8C9D, 0xF8AF, 0x8C9E, 0xEFF6, 0x8CA0, 0xDDB6, 0x8CA1, 0xEEAF, 0x8CA2, 0xCDF8, 0x8CA7, 0xDEB8, + 0x8CA8, 0xFCA7, 0x8CA9, 0xF7FC, 0x8CAA, 0xF7B1, 0x8CAB, 0xCEBB, 0x8CAC, 0xF4A1, 0x8CAF, 0xEECD, 0x8CB0, 0xE1AE, 0x8CB3, 0xECC3, + 0x8CB4, 0xCFFE, 0x8CB6, 0xF8BF, 0x8CB7, 0xD8E2, 0x8CB8, 0xD3E8, 0x8CBB, 0xDEA8, 0x8CBC, 0xF4E4, 0x8CBD, 0xECC2, 0x8CBF, 0xD9F5, + 0x8CC0, 0xF9C5, 0x8CC1, 0xDDD3, 0x8CC2, 0xD6F1, 0x8CC3, 0xECFC, 0x8CC4, 0xFCF0, 0x8CC7, 0xEDC0, 0x8CC8, 0xCAB9, 0x8CCA, 0xEEE4, + 0x8CD1, 0xF2E1, 0x8CD3, 0xDEB9, 0x8CDA, 0xD6F2, 0x8CDC, 0xDEF4, 0x8CDE, 0xDFDB, 0x8CE0, 0xDBD3, 0x8CE2, 0xFAE7, 0x8CE3, 0xD8E3, + 0x8CE4, 0xF4C1, 0x8CE6, 0xDDB7, 0x8CEA, 0xF2F5, 0x8CED, 0xD4AE, 0x8CF4, 0xD6F3, 0x8CFB, 0xDDB8, 0x8CFC, 0xCFC5, 0x8CFD, 0xDFDF, + 0x8D04, 0xF2BE, 0x8D05, 0xF6A1, 0x8D07, 0xEBCB, 0x8D08, 0xF1FC, 0x8D0A, 0xF3C7, 0x8D0D, 0xE0EB, 0x8D13, 0xEDFC, 0x8D16, 0xE1DB, + 0x8D64, 0xEEE5, 0x8D66, 0xDEF5, 0x8D6B, 0xFAD3, 0x8D70, 0xF1CB, 0x8D73, 0xD0AF, 0x8D74, 0xDDB9, 0x8D77, 0xD1C3, 0x8D85, 0xF5B1, + 0x8D8A, 0xEAC6, 0x8D99, 0xF0E1, 0x8DA3, 0xF6AC, 0x8DA8, 0xF5D9, 0x8DB3, 0xF0EB, 0x8DBA, 0xDDBA, 0x8DBE, 0xF2BF, 0x8DC6, 0xF7C5, + 0x8DCB, 0xDBA2, 0x8DCC, 0xF2F6, 0x8DCF, 0xCABA, 0x8DDB, 0xF7F5, 0x8DDD, 0xCBE5, 0x8DE1, 0xEEE6, 0x8DE3, 0xE0D3, 0x8DE8, 0xCEA5, + 0x8DEF, 0xD6D8, 0x8DF3, 0xD4AF, 0x8E0A, 0xE9C9, 0x8E0F, 0xD3CE, 0x8E10, 0xF4C2, 0x8E1E, 0xCBE6, 0x8E2A, 0xF1A1, 0x8E30, 0xEBB2, + 0x8E35, 0xF1A2, 0x8E42, 0xEBB3, 0x8E44, 0xF0B4, 0x8E47, 0xCBF4, 0x8E48, 0xD4B0, 0x8E49, 0xF3B2, 0x8E4A, 0xFBB7, 0x8E59, 0xF5EC, + 0x8E5F, 0xEEE7, 0x8E60, 0xF4B2, 0x8E74, 0xF5ED, 0x8E76, 0xCFF3, 0x8E81, 0xF0E2, 0x8E87, 0xEECE, 0x8E8A, 0xF1CC, 0x8E8D, 0xE5B8, + 0x8EAA, 0xD7F5, 0x8EAB, 0xE3F3, 0x8EAC, 0xCFE5, 0x8EC0, 0xCFC6, 0x8ECA, 0xF3B3, 0x8ECB, 0xE4D8, 0x8ECC, 0xCFF9, 0x8ECD, 0xCFDA, + 0x8ED2, 0xFACD, 0x8EDF, 0xE6E3, 0x8EEB, 0xF2E2, 0x8EF8, 0xF5EE, 0x8EFB, 0xCABB, 0x8EFE, 0xE3DC, 0x8F03, 0xCEF2, 0x8F05, 0xD6D9, + 0x8F09, 0xEEB0, 0x8F12, 0xF4E5, 0x8F13, 0xD8C2, 0x8F14, 0xDCD0, 0x8F15, 0xCCEE, 0x8F1B, 0xD5E0, 0x8F1C, 0xF6CA, 0x8F1D, 0xFDCA, + 0x8F1E, 0xD8D6, 0x8F1F, 0xF4CF, 0x8F26, 0xD6A6, 0x8F27, 0xDCBE, 0x8F29, 0xDBD4, 0x8F2A, 0xD7C7, 0x8F2F, 0xF2FE, 0x8F33, 0xF1CD, + 0x8F38, 0xE2C3, 0x8F39, 0xDCDE, 0x8F3B, 0xDCDF, 0x8F3E, 0xEFAD, 0x8F3F, 0xE6AB, 0x8F44, 0xF9DD, 0x8F45, 0xEABF, 0x8F49, 0xEFAE, + 0x8F4D, 0xF4D0, 0x8F4E, 0xCEF3, 0x8F5D, 0xE6AC, 0x8F5F, 0xCEDE, 0x8F62, 0xD5F9, 0x8F9B, 0xE3F4, 0x8F9C, 0xCDD0, 0x8FA3, 0xD5B8, + 0x8FA6, 0xF7FD, 0x8FA8, 0xDCA9, 0x8FAD, 0xDEF6, 0x8FAF, 0xDCAA, 0x8FB0, 0xF2E3, 0x8FB1, 0xE9B4, 0x8FB2, 0xD2DC, 0x8FC2, 0xE9E6, + 0x8FC5, 0xE3F6, 0x8FCE, 0xE7CA, 0x8FD1, 0xD0CE, 0x8FD4, 0xDAF7, 0x8FE6, 0xCABC, 0x8FEA, 0xEEE8, 0x8FEB, 0xDADE, 0x8FED, 0xF2F7, + 0x8FF0, 0xE2FB, 0x8FF2, 0xCCA6, 0x8FF7, 0xDABB, 0x8FF9, 0xEEE9, 0x8FFD, 0xF5DA, 0x9000, 0xF7DC, 0x9001, 0xE1EA, 0x9002, 0xCEC1, + 0x9003, 0xD4B1, 0x9005, 0xFDB1, 0x9006, 0xE6BD, 0x9008, 0xFBAD, 0x900B, 0xF8E7, 0x900D, 0xE1CE, 0x900F, 0xF7E2, 0x9010, 0xF5EF, + 0x9011, 0xCFC7, 0x9014, 0xD4B2, 0x9015, 0xCCEF, 0x9017, 0xD4E8, 0x9019, 0xEECF, 0x901A, 0xF7D7, 0x901D, 0xE0A6, 0x901E, 0xD6C1, + 0x901F, 0xE1DC, 0x9020, 0xF0E3, 0x9021, 0xF1E4, 0x9022, 0xDCF1, 0x9023, 0xD6A7, 0x902E, 0xF4F5, 0x9031, 0xF1CE, 0x9032, 0xF2E4, + 0x9035, 0xD0B0, 0x9038, 0xECEF, 0x903C, 0xF9BA, 0x903E, 0xEBB5, 0x9041, 0xD4ED, 0x9042, 0xE2C4, 0x9047, 0xE9E7, 0x904A, 0xEBB4, + 0x904B, 0xEAA1, 0x904D, 0xF8BC, 0x904E, 0xCEA6, 0x9050, 0xF9C6, 0x9051, 0xFCDA, 0x9053, 0xD4B3, 0x9054, 0xD3B9, 0x9055, 0xEADE, + 0x9059, 0xE9AB, 0x905C, 0xE1E1, 0x905D, 0xD3CF, 0x905E, 0xF4F6, 0x9060, 0xEAC0, 0x9061, 0xE1CF, 0x9063, 0xCCBA, 0x9069, 0xEEEA, + 0x906D, 0xF0E4, 0x906E, 0xF3B4, 0x906F, 0xD4EE, 0x9072, 0xF2C0, 0x9075, 0xF1E5, 0x9077, 0xF4C3, 0x9078, 0xE0D4, 0x907A, 0xEBB6, + 0x907C, 0xD7A1, 0x907D, 0xCBE8, 0x907F, 0xF9AD, 0x9080, 0xE9AD, 0x9081, 0xD8E4, 0x9082, 0xFAB3, 0x9083, 0xE2C5, 0x9084, 0xFCBD, + 0x9087, 0xECC4, 0x9088, 0xD8B1, 0x908A, 0xDCAB, 0x908F, 0xD5A4, 0x9091, 0xEBE9, 0x9095, 0xE8BB, 0x9099, 0xD8D7, 0x90A2, 0xFBAE, + 0x90A3, 0xD1E1, 0x90A6, 0xDBC0, 0x90A8, 0xF5BE, 0x90AA, 0xDEF7, 0x90AF, 0xCAFB, 0x90B0, 0xF7C6, 0x90B1, 0xCFC8, 0x90B5, 0xE1D0, + 0x90B8, 0xEED0, 0x90C1, 0xE9F4, 0x90CA, 0xCEF4, 0x90DE, 0xD5CD, 0x90E1, 0xCFDB, 0x90E8, 0xDDBB, 0x90ED, 0xCEAC, 0x90F5, 0xE9E8, + 0x90FD, 0xD4B4, 0x9102, 0xE4C7, 0x9112, 0xF5DB, 0x9115, 0xFAC1, 0x9119, 0xDEA9, 0x9127, 0xD4F8, 0x912D, 0xEFF7, 0x9132, 0xD3B3, + 0x9149, 0xEBB7, 0x914A, 0xEFF8, 0x914B, 0xF5DC, 0x914C, 0xEDCC, 0x914D, 0xDBD5, 0x914E, 0xF1CF, 0x9152, 0xF1D0, 0x9162, 0xF5B2, + 0x9169, 0xD9AE, 0x916A, 0xD5AC, 0x916C, 0xE2C6, 0x9175, 0xFDA3, 0x9177, 0xFBE5, 0x9178, 0xDFAB, 0x9187, 0xE2F5, 0x9189, 0xF6AD, + 0x918B, 0xF5B3, 0x918D, 0xF0B5, 0x9192, 0xE1A5, 0x919C, 0xF5DD, 0x91AB, 0xECA2, 0x91AC, 0xEDFD, 0x91AE, 0xF5B4, 0x91AF, 0xFBB8, + 0x91B1, 0xDBA3, 0x91B4, 0xD6CA, 0x91B5, 0xCBD9, 0x91C0, 0xE5D4, 0x91C7, 0xF3FA, 0x91C9, 0xEBB8, 0x91CB, 0xE0B7, 0x91CC, 0xD7EC, + 0x91CD, 0xF1EC, 0x91CE, 0xE5AF, 0x91CF, 0xD5E1, 0x91D0, 0xD7ED, 0x91D1, 0xD1D1, 0x91D7, 0xE1F2, 0x91D8, 0xEFF9, 0x91DC, 0xDDBC, + 0x91DD, 0xF6DC, 0x91E3, 0xF0E5, 0x91E7, 0xF4C4, 0x91EA, 0xE9E9, 0x91F5, 0xF3FB, 0x920D, 0xD4EF, 0x9210, 0xCCA2, 0x9211, 0xF7FE, + 0x9212, 0xDFBC, 0x9217, 0xEBCD, 0x921E, 0xD0B7, 0x9234, 0xD6C2, 0x923A, 0xE8AD, 0x923F, 0xEFAF, 0x9240, 0xCBA5, 0x9245, 0xCBE9, + 0x9249, 0xFAE8, 0x9257, 0xCCC6, 0x925B, 0xE6E7, 0x925E, 0xEAC7, 0x9262, 0xDBA4, 0x9264, 0xCFC9, 0x9265, 0xE2FC, 0x9266, 0xEFFA, + 0x9280, 0xEBDE, 0x9283, 0xF5C8, 0x9285, 0xD4DE, 0x9291, 0xE0D5, 0x9293, 0xEFB0, 0x9296, 0xE2C7, 0x9298, 0xD9AF, 0x929C, 0xF9E7, + 0x92B3, 0xE7E5, 0x92B6, 0xCFCA, 0x92B7, 0xE1D1, 0x92B9, 0xE2C8, 0x92CC, 0xEFFB, 0x92CF, 0xFAF9, 0x92D2, 0xDCF2, 0x92E4, 0xE0A7, + 0x92EA, 0xF8E8, 0x92F8, 0xCBEA, 0x92FC, 0xCBBC, 0x9304, 0xD6E2, 0x9310, 0xF5DE, 0x9318, 0xF5DF, 0x931A, 0xEEB6, 0x931E, 0xE2F6, + 0x931F, 0xD3CA, 0x9320, 0xEFFC, 0x9321, 0xD1C4, 0x9322, 0xEFB1, 0x9324, 0xD1C5, 0x9326, 0xD0DE, 0x9328, 0xD9E1, 0x932B, 0xE0B8, + 0x932E, 0xCDD1, 0x932F, 0xF3B9, 0x9348, 0xE7CC, 0x934A, 0xD6A8, 0x934B, 0xCEA7, 0x934D, 0xD4B5, 0x9354, 0xE4C8, 0x935B, 0xD3B4, + 0x936E, 0xEBB9, 0x9375, 0xCBF5, 0x937C, 0xF6DD, 0x937E, 0xF1A3, 0x938C, 0xCCC7, 0x9394, 0xE9CA, 0x9396, 0xE1F0, 0x939A, 0xF5E0, + 0x93A3, 0xFBAF, 0x93A7, 0xCBD1, 0x93AC, 0xFBE0, 0x93AD, 0xF2E5, 0x93B0, 0xECF0, 0x93C3, 0xF0EC, 0x93D1, 0xEEEB, 0x93DE, 0xE9CB, + 0x93E1, 0xCCF0, 0x93E4, 0xD7AF, 0x93F6, 0xF3A1, 0x9404, 0xFCF5, 0x9418, 0xF1A4, 0x9425, 0xE0D6, 0x942B, 0xEFB2, 0x9435, 0xF4D1, + 0x9438, 0xF7A1, 0x9444, 0xF1D1, 0x9451, 0xCAFC, 0x9452, 0xCAFD, 0x945B, 0xCECE, 0x947D, 0xF3C8, 0x947F, 0xF3BA, 0x9577, 0xEDFE, + 0x9580, 0xDAA6, 0x9583, 0xE0EC, 0x9589, 0xF8CD, 0x958B, 0xCBD2, 0x958F, 0xEBCE, 0x9591, 0xF9D8, 0x9592, 0xF9D9, 0x9593, 0xCAE0, + 0x9594, 0xDACA, 0x9598, 0xCBA6, 0x95A3, 0xCAC8, 0x95A4, 0xF9EE, 0x95A5, 0xDBEC, 0x95A8, 0xD0B1, 0x95AD, 0xD5EF, 0x95B1, 0xE6F3, + 0x95BB, 0xE7A2, 0x95BC, 0xE4D9, 0x95C7, 0xE4E1, 0x95CA, 0xFCC4, 0x95D4, 0xF9EF, 0x95D5, 0xCFF4, 0x95D6, 0xF7E6, 0x95DC, 0xCEBC, + 0x95E1, 0xF4C5, 0x95E2, 0xDCA3, 0x961C, 0xDDBD, 0x9621, 0xF4C6, 0x962A, 0xF8A1, 0x962E, 0xE8D6, 0x9632, 0xDBC1, 0x963B, 0xF0E6, + 0x963F, 0xE4B9, 0x9640, 0xF6ED, 0x9642, 0xF9AE, 0x9644, 0xDDBE, 0x964B, 0xD7B0, 0x964C, 0xD8E8, 0x964D, 0xCBBD, 0x9650, 0xF9DA, + 0x965B, 0xF8CE, 0x965C, 0xF9F0, 0x965D, 0xE0ED, 0x965E, 0xE3B3, 0x965F, 0xF4B3, 0x9662, 0xEAC2, 0x9663, 0xF2E6, 0x9664, 0xF0B6, + 0x966A, 0xDBD6, 0x9670, 0xEBE4, 0x9673, 0xF2E7, 0x9675, 0xD7D5, 0x9676, 0xD4B6, 0x9677, 0xF9E8, 0x9678, 0xD7C1, 0x967D, 0xE5D5, + 0x9685, 0xE9EA, 0x9686, 0xD7CC, 0x968A, 0xD3E9, 0x968B, 0xE2C9, 0x968D, 0xFCDB, 0x968E, 0xCDAD, 0x9694, 0xCCB0, 0x9695, 0xEAA2, + 0x9698, 0xE4F6, 0x9699, 0xD0C0, 0x969B, 0xF0B7, 0x969C, 0xEEA1, 0x96A3, 0xD7F6, 0x96A7, 0xE2CA, 0x96A8, 0xE2CB, 0x96AA, 0xFACF, + 0x96B1, 0xEBDF, 0x96B7, 0xD6CB, 0x96BB, 0xF4B4, 0x96C0, 0xEDCD, 0x96C1, 0xE4D2, 0x96C4, 0xEAA9, 0x96C5, 0xE4BA, 0x96C6, 0xF3A2, + 0x96C7, 0xCDD2, 0x96C9, 0xF6CB, 0x96CB, 0xF1E6, 0x96CC, 0xEDC1, 0x96CD, 0xE8BC, 0x96CE, 0xEED1, 0x96D5, 0xF0E7, 0x96D6, 0xE2CC, + 0x96D9, 0xE4AA, 0x96DB, 0xF5E1, 0x96DC, 0xEDDA, 0x96E2, 0xD7EE, 0x96E3, 0xD1F1, 0x96E8, 0xE9EB, 0x96E9, 0xE9EC, 0x96EA, 0xE0E4, + 0x96EF, 0xDAA7, 0x96F0, 0xDDD4, 0x96F2, 0xEAA3, 0x96F6, 0xD6C3, 0x96F7, 0xD6F4, 0x96F9, 0xDADF, 0x96FB, 0xEFB3, 0x9700, 0xE2CD, + 0x9706, 0xEFFD, 0x9707, 0xF2E8, 0x9711, 0xEFC5, 0x9713, 0xE7E7, 0x9716, 0xD7FD, 0x9719, 0xE7CE, 0x971C, 0xDFDC, 0x971E, 0xF9C7, + 0x9727, 0xD9F6, 0x9730, 0xDFAC, 0x9732, 0xD6DA, 0x9739, 0xDCA4, 0x973D, 0xF0B8, 0x9742, 0xD5FA, 0x9744, 0xE4F7, 0x9748, 0xD6C4, + 0x9751, 0xF4EC, 0x9756, 0xEFFE, 0x975C, 0xF0A1, 0x975E, 0xDEAA, 0x9761, 0xDABC, 0x9762, 0xD8FC, 0x9769, 0xFAD4, 0x976D, 0xECE5, + 0x9774, 0xFCA8, 0x9777, 0xECE6, 0x977A, 0xD8CB, 0x978B, 0xFBB9, 0x978D, 0xE4D3, 0x978F, 0xCDF9, 0x97A0, 0xCFD3, 0x97A8, 0xCAEA, + 0x97AB, 0xCFD4, 0x97AD, 0xF8BD, 0x97C6, 0xF4C7, 0x97CB, 0xEADF, 0x97D3, 0xF9DB, 0x97DC, 0xD4B7, 0x97F3, 0xEBE5, 0x97F6, 0xE1D2, + 0x97FB, 0xEAA4, 0x97FF, 0xFAC2, 0x9800, 0xFBE1, 0x9801, 0xFAED, 0x9802, 0xF0A2, 0x9803, 0xCCF1, 0x9805, 0xFAA3, 0x9806, 0xE2F7, + 0x9808, 0xE2CE, 0x980A, 0xE9F5, 0x980C, 0xE1EB, 0x9810, 0xE7E8, 0x9811, 0xE8D7, 0x9812, 0xDAF8, 0x9813, 0xD4CB, 0x9817, 0xF7F6, + 0x9818, 0xD6C5, 0x982D, 0xD4E9, 0x9830, 0xFAFA, 0x9838, 0xCCF2, 0x9839, 0xF7DD, 0x983B, 0xDEBA, 0x9846, 0xCEA8, 0x984C, 0xF0B9, + 0x984D, 0xE4FE, 0x984E, 0xE4C9, 0x9854, 0xE4D4, 0x9858, 0xEAC3, 0x985A, 0xEFB4, 0x985E, 0xD7BE, 0x9865, 0xFBE2, 0x9867, 0xCDD3, + 0x986B, 0xEFB5, 0x986F, 0xFAE9, 0x98A8, 0xF9A6, 0x98AF, 0xDFBD, 0x98B1, 0xF7C7, 0x98C4, 0xF8FD, 0x98C7, 0xF8FC, 0x98DB, 0xDEAB, + 0x98DC, 0xDBE8, 0x98DF, 0xE3DD, 0x98E1, 0xE1E2, 0x98E2, 0xD1C6, 0x98ED, 0xF6D0, 0x98EE, 0xEBE6, 0x98EF, 0xDAF9, 0x98F4, 0xECC7, + 0x98FC, 0xDEF8, 0x98FD, 0xF8E9, 0x98FE, 0xE3DE, 0x9903, 0xCEF5, 0x9909, 0xFAC3, 0x990A, 0xE5D7, 0x990C, 0xECC8, 0x9910, 0xF3C9, + 0x9913, 0xE4BB, 0x9918, 0xE6AE, 0x991E, 0xEFB6, 0x9920, 0xDCBF, 0x9928, 0xCEBD, 0x9945, 0xD8C3, 0x9949, 0xD0CF, 0x994B, 0xCFFA, + 0x994C, 0xF3CA, 0x994D, 0xE0D7, 0x9951, 0xD1C7, 0x9952, 0xE9AE, 0x9954, 0xE8BD, 0x9957, 0xFAC4, 0x9996, 0xE2CF, 0x9999, 0xFAC5, + 0x999D, 0xF9B8, 0x99A5, 0xDCE0, 0x99A8, 0xFBB0, 0x99AC, 0xD8A9, 0x99AD, 0xE5DF, 0x99AE, 0xF9A7, 0x99B1, 0xF6EE, 0x99B3, 0xF6CC, + 0x99B4, 0xE2F8, 0x99B9, 0xECF1, 0x99C1, 0xDAE0, 0x99D0, 0xF1D2, 0x99D1, 0xD2CC, 0x99D2, 0xCFCB, 0x99D5, 0xCABD, 0x99D9, 0xDDBF, + 0x99DD, 0xF6EF, 0x99DF, 0xDEF9, 0x99ED, 0xFAB4, 0x99F1, 0xD5AD, 0x99FF, 0xF1E7, 0x9A01, 0xDEBE, 0x9A08, 0xDCC0, 0x9A0E, 0xD1C8, + 0x9A0F, 0xD1C9, 0x9A19, 0xF8BE, 0x9A2B, 0xCBF6, 0x9A30, 0xD4F9, 0x9A36, 0xF5E2, 0x9A37, 0xE1D3, 0x9A40, 0xD8E9, 0x9A43, 0xF8FE, + 0x9A45, 0xCFCC, 0x9A4D, 0xFDA4, 0x9A55, 0xCEF6, 0x9A57, 0xFAD0, 0x9A5A, 0xCCF3, 0x9A5B, 0xE6BE, 0x9A5F, 0xF6AE, 0x9A62, 0xD5F0, + 0x9A65, 0xD1CA, 0x9A69, 0xFCBE, 0x9A6A, 0xD5F1, 0x9AA8, 0xCDE9, 0x9AB8, 0xFAB5, 0x9AD3, 0xE2D0, 0x9AD4, 0xF4F7, 0x9AD8, 0xCDD4, + 0x9AE5, 0xE7A3, 0x9AEE, 0xDBA5, 0x9B1A, 0xE2D1, 0x9B27, 0xD7A2, 0x9B2A, 0xF7E3, 0x9B31, 0xEAA6, 0x9B3C, 0xD0A1, 0x9B41, 0xCEDA, + 0x9B42, 0xFBEB, 0x9B43, 0xDBA6, 0x9B44, 0xDBDE, 0x9B45, 0xD8E5, 0x9B4F, 0xEAE0, 0x9B54, 0xD8AA, 0x9B5A, 0xE5E0, 0x9B6F, 0xD6DB, + 0x9B8E, 0xEFC6, 0x9B91, 0xF8EA, 0x9B9F, 0xE4D5, 0x9BAB, 0xCEF7, 0x9BAE, 0xE0D8, 0x9BC9, 0xD7EF, 0x9BD6, 0xF4ED, 0x9BE4, 0xCDE6, + 0x9BE8, 0xCCF4, 0x9C0D, 0xF5E3, 0x9C10, 0xE4CA, 0x9C12, 0xDCE1, 0x9C15, 0xF9C8, 0x9C25, 0xFCBF, 0x9C32, 0xE8A7, 0x9C3B, 0xD8C4, + 0x9C47, 0xCBBE, 0x9C49, 0xDCAE, 0x9C57, 0xD7F7, 0x9CE5, 0xF0E8, 0x9CE7, 0xDDC0, 0x9CE9, 0xCFCD, 0x9CF3, 0xDCF3, 0x9CF4, 0xD9B0, + 0x9CF6, 0xE6E9, 0x9D09, 0xE4BC, 0x9D1B, 0xEAC4, 0x9D26, 0xE4EC, 0x9D28, 0xE4E5, 0x9D3B, 0xFBF8, 0x9D51, 0xCCBB, 0x9D5D, 0xE4BD, + 0x9D60, 0xCDDC, 0x9D61, 0xD9F7, 0x9D6C, 0xDDDF, 0x9D72, 0xEDCE, 0x9DA9, 0xD9D0, 0x9DAF, 0xE5A3, 0x9DB4, 0xF9CD, 0x9DC4, 0xCDAE, + 0x9DD7, 0xCFCE, 0x9DF2, 0xF6AF, 0x9DF8, 0xFDD3, 0x9DF9, 0xEBED, 0x9DFA, 0xD6DC, 0x9E1A, 0xE5A4, 0x9E1E, 0xD5B6, 0x9E75, 0xD6DD, + 0x9E79, 0xF9E9, 0x9E7D, 0xE7A4, 0x9E7F, 0xD6E3, 0x9E92, 0xD1CB, 0x9E93, 0xD6E4, 0x9E97, 0xD5F2, 0x9E9D, 0xDEFA, 0x9E9F, 0xD7F8, + 0x9EA5, 0xD8EA, 0x9EB4, 0xCFD5, 0x9EB5, 0xD8FD, 0x9EBB, 0xD8AB, 0x9EBE, 0xFDCB, 0x9EC3, 0xFCDC, 0x9ECD, 0xE0A8, 0x9ECE, 0xD5F3, + 0x9ED1, 0xFDD9, 0x9ED4, 0xCCA3, 0x9ED8, 0xD9F9, 0x9EDB, 0xD3EA, 0x9EDC, 0xF5F5, 0x9EDE, 0xEFC7, 0x9EE8, 0xD3DA, 0x9EF4, 0xDABD, + 0x9F07, 0xE8A8, 0x9F08, 0xDCAF, 0x9F0E, 0xF0A3, 0x9F13, 0xCDD5, 0x9F20, 0xE0A9, 0x9F3B, 0xDEAC, 0x9F4A, 0xF0BA, 0x9F4B, 0xEEB1, + 0x9F4E, 0xEEB2, 0x9F52, 0xF6CD, 0x9F5F, 0xEED2, 0x9F61, 0xD6C6, 0x9F67, 0xE0E5, 0x9F6A, 0xF3BB, 0x9F6C, 0xE5E1, 0x9F77, 0xE4CB, + 0x9F8D, 0xD7A3, 0x9F90, 0xDBC2, 0x9F95, 0xCAFE, 0x9F9C, 0xCFCF, 0xAC00, 0xB0A1, 0xAC01, 0xB0A2, 0xAC02, 0x8141, 0xAC03, 0x8142, + 0xAC04, 0xB0A3, 0xAC05, 0x8143, 0xAC06, 0x8144, 0xAC07, 0xB0A4, 0xAC08, 0xB0A5, 0xAC09, 0xB0A6, 0xAC0A, 0xB0A7, 0xAC0B, 0x8145, + 0xAC0C, 0x8146, 0xAC0D, 0x8147, 0xAC0E, 0x8148, 0xAC0F, 0x8149, 0xAC10, 0xB0A8, 0xAC11, 0xB0A9, 0xAC12, 0xB0AA, 0xAC13, 0xB0AB, + 0xAC14, 0xB0AC, 0xAC15, 0xB0AD, 0xAC16, 0xB0AE, 0xAC17, 0xB0AF, 0xAC18, 0x814A, 0xAC19, 0xB0B0, 0xAC1A, 0xB0B1, 0xAC1B, 0xB0B2, + 0xAC1C, 0xB0B3, 0xAC1D, 0xB0B4, 0xAC1E, 0x814B, 0xAC1F, 0x814C, 0xAC20, 0xB0B5, 0xAC21, 0x814D, 0xAC22, 0x814E, 0xAC23, 0x814F, + 0xAC24, 0xB0B6, 0xAC25, 0x8150, 0xAC26, 0x8151, 0xAC27, 0x8152, 0xAC28, 0x8153, 0xAC29, 0x8154, 0xAC2A, 0x8155, 0xAC2B, 0x8156, + 0xAC2C, 0xB0B7, 0xAC2D, 0xB0B8, 0xAC2E, 0x8157, 0xAC2F, 0xB0B9, 0xAC30, 0xB0BA, 0xAC31, 0xB0BB, 0xAC32, 0x8158, 0xAC33, 0x8159, + 0xAC34, 0x815A, 0xAC35, 0x8161, 0xAC36, 0x8162, 0xAC37, 0x8163, 0xAC38, 0xB0BC, 0xAC39, 0xB0BD, 0xAC3A, 0x8164, 0xAC3B, 0x8165, + 0xAC3C, 0xB0BE, 0xAC3D, 0x8166, 0xAC3E, 0x8167, 0xAC3F, 0x8168, 0xAC40, 0xB0BF, 0xAC41, 0x8169, 0xAC42, 0x816A, 0xAC43, 0x816B, + 0xAC44, 0x816C, 0xAC45, 0x816D, 0xAC46, 0x816E, 0xAC47, 0x816F, 0xAC48, 0x8170, 0xAC49, 0x8171, 0xAC4A, 0x8172, 0xAC4B, 0xB0C0, + 0xAC4C, 0x8173, 0xAC4D, 0xB0C1, 0xAC4E, 0x8174, 0xAC4F, 0x8175, 0xAC50, 0x8176, 0xAC51, 0x8177, 0xAC52, 0x8178, 0xAC53, 0x8179, + 0xAC54, 0xB0C2, 0xAC55, 0x817A, 0xAC56, 0x8181, 0xAC57, 0x8182, 0xAC58, 0xB0C3, 0xAC59, 0x8183, 0xAC5A, 0x8184, 0xAC5B, 0x8185, + 0xAC5C, 0xB0C4, 0xAC5D, 0x8186, 0xAC5E, 0x8187, 0xAC5F, 0x8188, 0xAC60, 0x8189, 0xAC61, 0x818A, 0xAC62, 0x818B, 0xAC63, 0x818C, + 0xAC64, 0x818D, 0xAC65, 0x818E, 0xAC66, 0x818F, 0xAC67, 0x8190, 0xAC68, 0x8191, 0xAC69, 0x8192, 0xAC6A, 0x8193, 0xAC6B, 0x8194, + 0xAC6C, 0x8195, 0xAC6D, 0x8196, 0xAC6E, 0x8197, 0xAC6F, 0x8198, 0xAC70, 0xB0C5, 0xAC71, 0xB0C6, 0xAC72, 0x8199, 0xAC73, 0x819A, + 0xAC74, 0xB0C7, 0xAC75, 0x819B, 0xAC76, 0x819C, 0xAC77, 0xB0C8, 0xAC78, 0xB0C9, 0xAC79, 0x819D, 0xAC7A, 0xB0CA, 0xAC7B, 0x819E, + 0xAC7C, 0x819F, 0xAC7D, 0x81A0, 0xAC7E, 0x81A1, 0xAC7F, 0x81A2, 0xAC80, 0xB0CB, 0xAC81, 0xB0CC, 0xAC82, 0x81A3, 0xAC83, 0xB0CD, + 0xAC84, 0xB0CE, 0xAC85, 0xB0CF, 0xAC86, 0xB0D0, 0xAC87, 0x81A4, 0xAC88, 0x81A5, 0xAC89, 0xB0D1, 0xAC8A, 0xB0D2, 0xAC8B, 0xB0D3, + 0xAC8C, 0xB0D4, 0xAC8D, 0x81A6, 0xAC8E, 0x81A7, 0xAC8F, 0x81A8, 0xAC90, 0xB0D5, 0xAC91, 0x81A9, 0xAC92, 0x81AA, 0xAC93, 0x81AB, + 0xAC94, 0xB0D6, 0xAC95, 0x81AC, 0xAC96, 0x81AD, 0xAC97, 0x81AE, 0xAC98, 0x81AF, 0xAC99, 0x81B0, 0xAC9A, 0x81B1, 0xAC9B, 0x81B2, + 0xAC9C, 0xB0D7, 0xAC9D, 0xB0D8, 0xAC9E, 0x81B3, 0xAC9F, 0xB0D9, 0xACA0, 0xB0DA, 0xACA1, 0xB0DB, 0xACA2, 0x81B4, 0xACA3, 0x81B5, + 0xACA4, 0x81B6, 0xACA5, 0x81B7, 0xACA6, 0x81B8, 0xACA7, 0x81B9, 0xACA8, 0xB0DC, 0xACA9, 0xB0DD, 0xACAA, 0xB0DE, 0xACAB, 0x81BA, + 0xACAC, 0xB0DF, 0xACAD, 0x81BB, 0xACAE, 0x81BC, 0xACAF, 0xB0E0, 0xACB0, 0xB0E1, 0xACB1, 0x81BD, 0xACB2, 0x81BE, 0xACB3, 0x81BF, + 0xACB4, 0x81C0, 0xACB5, 0x81C1, 0xACB6, 0x81C2, 0xACB7, 0x81C3, 0xACB8, 0xB0E2, 0xACB9, 0xB0E3, 0xACBA, 0x81C4, 0xACBB, 0xB0E4, + 0xACBC, 0xB0E5, 0xACBD, 0xB0E6, 0xACBE, 0x81C5, 0xACBF, 0x81C6, 0xACC0, 0x81C7, 0xACC1, 0xB0E7, 0xACC2, 0x81C8, 0xACC3, 0x81C9, + 0xACC4, 0xB0E8, 0xACC5, 0x81CA, 0xACC6, 0x81CB, 0xACC7, 0x81CC, 0xACC8, 0xB0E9, 0xACC9, 0x81CD, 0xACCA, 0x81CE, 0xACCB, 0x81CF, + 0xACCC, 0xB0EA, 0xACCD, 0x81D0, 0xACCE, 0x81D1, 0xACCF, 0x81D2, 0xACD0, 0x81D3, 0xACD1, 0x81D4, 0xACD2, 0x81D5, 0xACD3, 0x81D6, + 0xACD4, 0x81D7, 0xACD5, 0xB0EB, 0xACD6, 0x81D8, 0xACD7, 0xB0EC, 0xACD8, 0x81D9, 0xACD9, 0x81DA, 0xACDA, 0x81DB, 0xACDB, 0x81DC, + 0xACDC, 0x81DD, 0xACDD, 0x81DE, 0xACDE, 0x81DF, 0xACDF, 0x81E0, 0xACE0, 0xB0ED, 0xACE1, 0xB0EE, 0xACE2, 0x81E1, 0xACE3, 0x81E2, + 0xACE4, 0xB0EF, 0xACE5, 0x81E3, 0xACE6, 0x81E4, 0xACE7, 0xB0F0, 0xACE8, 0xB0F1, 0xACE9, 0x81E5, 0xACEA, 0xB0F2, 0xACEB, 0x81E6, + 0xACEC, 0xB0F3, 0xACED, 0x81E7, 0xACEE, 0x81E8, 0xACEF, 0xB0F4, 0xACF0, 0xB0F5, 0xACF1, 0xB0F6, 0xACF2, 0x81E9, 0xACF3, 0xB0F7, + 0xACF4, 0x81EA, 0xACF5, 0xB0F8, 0xACF6, 0xB0F9, 0xACF7, 0x81EB, 0xACF8, 0x81EC, 0xACF9, 0x81ED, 0xACFA, 0x81EE, 0xACFB, 0x81EF, + 0xACFC, 0xB0FA, 0xACFD, 0xB0FB, 0xACFE, 0x81F0, 0xACFF, 0x81F1, 0xAD00, 0xB0FC, 0xAD01, 0x81F2, 0xAD02, 0x81F3, 0xAD03, 0x81F4, + 0xAD04, 0xB0FD, 0xAD05, 0x81F5, 0xAD06, 0xB0FE, 0xAD07, 0x81F6, 0xAD08, 0x81F7, 0xAD09, 0x81F8, 0xAD0A, 0x81F9, 0xAD0B, 0x81FA, + 0xAD0C, 0xB1A1, 0xAD0D, 0xB1A2, 0xAD0E, 0x81FB, 0xAD0F, 0xB1A3, 0xAD10, 0x81FC, 0xAD11, 0xB1A4, 0xAD12, 0x81FD, 0xAD13, 0x81FE, + 0xAD14, 0x8241, 0xAD15, 0x8242, 0xAD16, 0x8243, 0xAD17, 0x8244, 0xAD18, 0xB1A5, 0xAD19, 0x8245, 0xAD1A, 0x8246, 0xAD1B, 0x8247, + 0xAD1C, 0xB1A6, 0xAD1D, 0x8248, 0xAD1E, 0x8249, 0xAD1F, 0x824A, 0xAD20, 0xB1A7, 0xAD21, 0x824B, 0xAD22, 0x824C, 0xAD23, 0x824D, + 0xAD24, 0x824E, 0xAD25, 0x824F, 0xAD26, 0x8250, 0xAD27, 0x8251, 0xAD28, 0x8252, 0xAD29, 0xB1A8, 0xAD2A, 0x8253, 0xAD2B, 0x8254, + 0xAD2C, 0xB1A9, 0xAD2D, 0xB1AA, 0xAD2E, 0x8255, 0xAD2F, 0x8256, 0xAD30, 0x8257, 0xAD31, 0x8258, 0xAD32, 0x8259, 0xAD33, 0x825A, + 0xAD34, 0xB1AB, 0xAD35, 0xB1AC, 0xAD36, 0x8261, 0xAD37, 0x8262, 0xAD38, 0xB1AD, 0xAD39, 0x8263, 0xAD3A, 0x8264, 0xAD3B, 0x8265, + 0xAD3C, 0xB1AE, 0xAD3D, 0x8266, 0xAD3E, 0x8267, 0xAD3F, 0x8268, 0xAD40, 0x8269, 0xAD41, 0x826A, 0xAD42, 0x826B, 0xAD43, 0x826C, + 0xAD44, 0xB1AF, 0xAD45, 0xB1B0, 0xAD46, 0x826D, 0xAD47, 0xB1B1, 0xAD48, 0x826E, 0xAD49, 0xB1B2, 0xAD4A, 0x826F, 0xAD4B, 0x8270, + 0xAD4C, 0x8271, 0xAD4D, 0x8272, 0xAD4E, 0x8273, 0xAD4F, 0x8274, 0xAD50, 0xB1B3, 0xAD51, 0x8275, 0xAD52, 0x8276, 0xAD53, 0x8277, + 0xAD54, 0xB1B4, 0xAD55, 0x8278, 0xAD56, 0x8279, 0xAD57, 0x827A, 0xAD58, 0xB1B5, 0xAD59, 0x8281, 0xAD5A, 0x8282, 0xAD5B, 0x8283, + 0xAD5C, 0x8284, 0xAD5D, 0x8285, 0xAD5E, 0x8286, 0xAD5F, 0x8287, 0xAD60, 0x8288, 0xAD61, 0xB1B6, 0xAD62, 0x8289, 0xAD63, 0xB1B7, + 0xAD64, 0x828A, 0xAD65, 0x828B, 0xAD66, 0x828C, 0xAD67, 0x828D, 0xAD68, 0x828E, 0xAD69, 0x828F, 0xAD6A, 0x8290, 0xAD6B, 0x8291, + 0xAD6C, 0xB1B8, 0xAD6D, 0xB1B9, 0xAD6E, 0x8292, 0xAD6F, 0x8293, 0xAD70, 0xB1BA, 0xAD71, 0x8294, 0xAD72, 0x8295, 0xAD73, 0xB1BB, + 0xAD74, 0xB1BC, 0xAD75, 0xB1BD, 0xAD76, 0xB1BE, 0xAD77, 0x8296, 0xAD78, 0x8297, 0xAD79, 0x8298, 0xAD7A, 0x8299, 0xAD7B, 0xB1BF, + 0xAD7C, 0xB1C0, 0xAD7D, 0xB1C1, 0xAD7E, 0x829A, 0xAD7F, 0xB1C2, 0xAD80, 0x829B, 0xAD81, 0xB1C3, 0xAD82, 0xB1C4, 0xAD83, 0x829C, + 0xAD84, 0x829D, 0xAD85, 0x829E, 0xAD86, 0x829F, 0xAD87, 0x82A0, 0xAD88, 0xB1C5, 0xAD89, 0xB1C6, 0xAD8A, 0x82A1, 0xAD8B, 0x82A2, + 0xAD8C, 0xB1C7, 0xAD8D, 0x82A3, 0xAD8E, 0x82A4, 0xAD8F, 0x82A5, 0xAD90, 0xB1C8, 0xAD91, 0x82A6, 0xAD92, 0x82A7, 0xAD93, 0x82A8, + 0xAD94, 0x82A9, 0xAD95, 0x82AA, 0xAD96, 0x82AB, 0xAD97, 0x82AC, 0xAD98, 0x82AD, 0xAD99, 0x82AE, 0xAD9A, 0x82AF, 0xAD9B, 0x82B0, + 0xAD9C, 0xB1C9, 0xAD9D, 0xB1CA, 0xAD9E, 0x82B1, 0xAD9F, 0x82B2, 0xADA0, 0x82B3, 0xADA1, 0x82B4, 0xADA2, 0x82B5, 0xADA3, 0x82B6, + 0xADA4, 0xB1CB, 0xADA5, 0x82B7, 0xADA6, 0x82B8, 0xADA7, 0x82B9, 0xADA8, 0x82BA, 0xADA9, 0x82BB, 0xADAA, 0x82BC, 0xADAB, 0x82BD, + 0xADAC, 0x82BE, 0xADAD, 0x82BF, 0xADAE, 0x82C0, 0xADAF, 0x82C1, 0xADB0, 0x82C2, 0xADB1, 0x82C3, 0xADB2, 0x82C4, 0xADB3, 0x82C5, + 0xADB4, 0x82C6, 0xADB5, 0x82C7, 0xADB6, 0x82C8, 0xADB7, 0xB1CC, 0xADB8, 0x82C9, 0xADB9, 0x82CA, 0xADBA, 0x82CB, 0xADBB, 0x82CC, + 0xADBC, 0x82CD, 0xADBD, 0x82CE, 0xADBE, 0x82CF, 0xADBF, 0x82D0, 0xADC0, 0xB1CD, 0xADC1, 0xB1CE, 0xADC2, 0x82D1, 0xADC3, 0x82D2, + 0xADC4, 0xB1CF, 0xADC5, 0x82D3, 0xADC6, 0x82D4, 0xADC7, 0x82D5, 0xADC8, 0xB1D0, 0xADC9, 0x82D6, 0xADCA, 0x82D7, 0xADCB, 0x82D8, + 0xADCC, 0x82D9, 0xADCD, 0x82DA, 0xADCE, 0x82DB, 0xADCF, 0x82DC, 0xADD0, 0xB1D1, 0xADD1, 0xB1D2, 0xADD2, 0x82DD, 0xADD3, 0xB1D3, + 0xADD4, 0x82DE, 0xADD5, 0x82DF, 0xADD6, 0x82E0, 0xADD7, 0x82E1, 0xADD8, 0x82E2, 0xADD9, 0x82E3, 0xADDA, 0x82E4, 0xADDB, 0x82E5, + 0xADDC, 0xB1D4, 0xADDD, 0x82E6, 0xADDE, 0x82E7, 0xADDF, 0x82E8, 0xADE0, 0xB1D5, 0xADE1, 0x82E9, 0xADE2, 0x82EA, 0xADE3, 0x82EB, + 0xADE4, 0xB1D6, 0xADE5, 0x82EC, 0xADE6, 0x82ED, 0xADE7, 0x82EE, 0xADE8, 0x82EF, 0xADE9, 0x82F0, 0xADEA, 0x82F1, 0xADEB, 0x82F2, + 0xADEC, 0x82F3, 0xADED, 0x82F4, 0xADEE, 0x82F5, 0xADEF, 0x82F6, 0xADF0, 0x82F7, 0xADF1, 0x82F8, 0xADF2, 0x82F9, 0xADF3, 0x82FA, + 0xADF4, 0x82FB, 0xADF5, 0x82FC, 0xADF6, 0x82FD, 0xADF7, 0x82FE, 0xADF8, 0xB1D7, 0xADF9, 0xB1D8, 0xADFA, 0x8341, 0xADFB, 0x8342, + 0xADFC, 0xB1D9, 0xADFD, 0x8343, 0xADFE, 0x8344, 0xADFF, 0xB1DA, 0xAE00, 0xB1DB, 0xAE01, 0xB1DC, 0xAE02, 0x8345, 0xAE03, 0x8346, + 0xAE04, 0x8347, 0xAE05, 0x8348, 0xAE06, 0x8349, 0xAE07, 0x834A, 0xAE08, 0xB1DD, 0xAE09, 0xB1DE, 0xAE0A, 0x834B, 0xAE0B, 0xB1DF, + 0xAE0C, 0x834C, 0xAE0D, 0xB1E0, 0xAE0E, 0x834D, 0xAE0F, 0x834E, 0xAE10, 0x834F, 0xAE11, 0x8350, 0xAE12, 0x8351, 0xAE13, 0x8352, + 0xAE14, 0xB1E1, 0xAE15, 0x8353, 0xAE16, 0x8354, 0xAE17, 0x8355, 0xAE18, 0x8356, 0xAE19, 0x8357, 0xAE1A, 0x8358, 0xAE1B, 0x8359, + 0xAE1C, 0x835A, 0xAE1D, 0x8361, 0xAE1E, 0x8362, 0xAE1F, 0x8363, 0xAE20, 0x8364, 0xAE21, 0x8365, 0xAE22, 0x8366, 0xAE23, 0x8367, + 0xAE24, 0x8368, 0xAE25, 0x8369, 0xAE26, 0x836A, 0xAE27, 0x836B, 0xAE28, 0x836C, 0xAE29, 0x836D, 0xAE2A, 0x836E, 0xAE2B, 0x836F, + 0xAE2C, 0x8370, 0xAE2D, 0x8371, 0xAE2E, 0x8372, 0xAE2F, 0x8373, 0xAE30, 0xB1E2, 0xAE31, 0xB1E3, 0xAE32, 0x8374, 0xAE33, 0x8375, + 0xAE34, 0xB1E4, 0xAE35, 0x8376, 0xAE36, 0x8377, 0xAE37, 0xB1E5, 0xAE38, 0xB1E6, 0xAE39, 0x8378, 0xAE3A, 0xB1E7, 0xAE3B, 0x8379, + 0xAE3C, 0x837A, 0xAE3D, 0x8381, 0xAE3E, 0x8382, 0xAE3F, 0x8383, 0xAE40, 0xB1E8, 0xAE41, 0xB1E9, 0xAE42, 0x8384, 0xAE43, 0xB1EA, + 0xAE44, 0x8385, 0xAE45, 0xB1EB, 0xAE46, 0xB1EC, 0xAE47, 0x8386, 0xAE48, 0x8387, 0xAE49, 0x8388, 0xAE4A, 0xB1ED, 0xAE4B, 0x8389, + 0xAE4C, 0xB1EE, 0xAE4D, 0xB1EF, 0xAE4E, 0xB1F0, 0xAE4F, 0x838A, 0xAE50, 0xB1F1, 0xAE51, 0x838B, 0xAE52, 0x838C, 0xAE53, 0x838D, + 0xAE54, 0xB1F2, 0xAE55, 0x838E, 0xAE56, 0xB1F3, 0xAE57, 0x838F, 0xAE58, 0x8390, 0xAE59, 0x8391, 0xAE5A, 0x8392, 0xAE5B, 0x8393, + 0xAE5C, 0xB1F4, 0xAE5D, 0xB1F5, 0xAE5E, 0x8394, 0xAE5F, 0xB1F6, 0xAE60, 0xB1F7, 0xAE61, 0xB1F8, 0xAE62, 0x8395, 0xAE63, 0x8396, + 0xAE64, 0x8397, 0xAE65, 0xB1F9, 0xAE66, 0x8398, 0xAE67, 0x8399, 0xAE68, 0xB1FA, 0xAE69, 0xB1FB, 0xAE6A, 0x839A, 0xAE6B, 0x839B, + 0xAE6C, 0xB1FC, 0xAE6D, 0x839C, 0xAE6E, 0x839D, 0xAE6F, 0x839E, 0xAE70, 0xB1FD, 0xAE71, 0x839F, 0xAE72, 0x83A0, 0xAE73, 0x83A1, + 0xAE74, 0x83A2, 0xAE75, 0x83A3, 0xAE76, 0x83A4, 0xAE77, 0x83A5, 0xAE78, 0xB1FE, 0xAE79, 0xB2A1, 0xAE7A, 0x83A6, 0xAE7B, 0xB2A2, + 0xAE7C, 0xB2A3, 0xAE7D, 0xB2A4, 0xAE7E, 0x83A7, 0xAE7F, 0x83A8, 0xAE80, 0x83A9, 0xAE81, 0x83AA, 0xAE82, 0x83AB, 0xAE83, 0x83AC, + 0xAE84, 0xB2A5, 0xAE85, 0xB2A6, 0xAE86, 0x83AD, 0xAE87, 0x83AE, 0xAE88, 0x83AF, 0xAE89, 0x83B0, 0xAE8A, 0x83B1, 0xAE8B, 0x83B2, + 0xAE8C, 0xB2A7, 0xAE8D, 0x83B3, 0xAE8E, 0x83B4, 0xAE8F, 0x83B5, 0xAE90, 0x83B6, 0xAE91, 0x83B7, 0xAE92, 0x83B8, 0xAE93, 0x83B9, + 0xAE94, 0x83BA, 0xAE95, 0x83BB, 0xAE96, 0x83BC, 0xAE97, 0x83BD, 0xAE98, 0x83BE, 0xAE99, 0x83BF, 0xAE9A, 0x83C0, 0xAE9B, 0x83C1, + 0xAE9C, 0x83C2, 0xAE9D, 0x83C3, 0xAE9E, 0x83C4, 0xAE9F, 0x83C5, 0xAEA0, 0x83C6, 0xAEA1, 0x83C7, 0xAEA2, 0x83C8, 0xAEA3, 0x83C9, + 0xAEA4, 0x83CA, 0xAEA5, 0x83CB, 0xAEA6, 0x83CC, 0xAEA7, 0x83CD, 0xAEA8, 0x83CE, 0xAEA9, 0x83CF, 0xAEAA, 0x83D0, 0xAEAB, 0x83D1, + 0xAEAC, 0x83D2, 0xAEAD, 0x83D3, 0xAEAE, 0x83D4, 0xAEAF, 0x83D5, 0xAEB0, 0x83D6, 0xAEB1, 0x83D7, 0xAEB2, 0x83D8, 0xAEB3, 0x83D9, + 0xAEB4, 0x83DA, 0xAEB5, 0x83DB, 0xAEB6, 0x83DC, 0xAEB7, 0x83DD, 0xAEB8, 0x83DE, 0xAEB9, 0x83DF, 0xAEBA, 0x83E0, 0xAEBB, 0x83E1, + 0xAEBC, 0xB2A8, 0xAEBD, 0xB2A9, 0xAEBE, 0xB2AA, 0xAEBF, 0x83E2, 0xAEC0, 0xB2AB, 0xAEC1, 0x83E3, 0xAEC2, 0x83E4, 0xAEC3, 0x83E5, + 0xAEC4, 0xB2AC, 0xAEC5, 0x83E6, 0xAEC6, 0x83E7, 0xAEC7, 0x83E8, 0xAEC8, 0x83E9, 0xAEC9, 0x83EA, 0xAECA, 0x83EB, 0xAECB, 0x83EC, + 0xAECC, 0xB2AD, 0xAECD, 0xB2AE, 0xAECE, 0x83ED, 0xAECF, 0xB2AF, 0xAED0, 0xB2B0, 0xAED1, 0xB2B1, 0xAED2, 0x83EE, 0xAED3, 0x83EF, + 0xAED4, 0x83F0, 0xAED5, 0x83F1, 0xAED6, 0x83F2, 0xAED7, 0x83F3, 0xAED8, 0xB2B2, 0xAED9, 0xB2B3, 0xAEDA, 0x83F4, 0xAEDB, 0x83F5, + 0xAEDC, 0xB2B4, 0xAEDD, 0x83F6, 0xAEDE, 0x83F7, 0xAEDF, 0x83F8, 0xAEE0, 0x83F9, 0xAEE1, 0x83FA, 0xAEE2, 0x83FB, 0xAEE3, 0x83FC, + 0xAEE4, 0x83FD, 0xAEE5, 0x83FE, 0xAEE6, 0x8441, 0xAEE7, 0x8442, 0xAEE8, 0xB2B5, 0xAEE9, 0x8443, 0xAEEA, 0x8444, 0xAEEB, 0xB2B6, + 0xAEEC, 0x8445, 0xAEED, 0xB2B7, 0xAEEE, 0x8446, 0xAEEF, 0x8447, 0xAEF0, 0x8448, 0xAEF1, 0x8449, 0xAEF2, 0x844A, 0xAEF3, 0x844B, + 0xAEF4, 0xB2B8, 0xAEF5, 0x844C, 0xAEF6, 0x844D, 0xAEF7, 0x844E, 0xAEF8, 0xB2B9, 0xAEF9, 0x844F, 0xAEFA, 0x8450, 0xAEFB, 0x8451, + 0xAEFC, 0xB2BA, 0xAEFD, 0x8452, 0xAEFE, 0x8453, 0xAEFF, 0x8454, 0xAF00, 0x8455, 0xAF01, 0x8456, 0xAF02, 0x8457, 0xAF03, 0x8458, + 0xAF04, 0x8459, 0xAF05, 0x845A, 0xAF06, 0x8461, 0xAF07, 0xB2BB, 0xAF08, 0xB2BC, 0xAF09, 0x8462, 0xAF0A, 0x8463, 0xAF0B, 0x8464, + 0xAF0C, 0x8465, 0xAF0D, 0xB2BD, 0xAF0E, 0x8466, 0xAF0F, 0x8467, 0xAF10, 0xB2BE, 0xAF11, 0x8468, 0xAF12, 0x8469, 0xAF13, 0x846A, + 0xAF14, 0x846B, 0xAF15, 0x846C, 0xAF16, 0x846D, 0xAF17, 0x846E, 0xAF18, 0x846F, 0xAF19, 0x8470, 0xAF1A, 0x8471, 0xAF1B, 0x8472, + 0xAF1C, 0x8473, 0xAF1D, 0x8474, 0xAF1E, 0x8475, 0xAF1F, 0x8476, 0xAF20, 0x8477, 0xAF21, 0x8478, 0xAF22, 0x8479, 0xAF23, 0x847A, + 0xAF24, 0x8481, 0xAF25, 0x8482, 0xAF26, 0x8483, 0xAF27, 0x8484, 0xAF28, 0x8485, 0xAF29, 0x8486, 0xAF2A, 0x8487, 0xAF2B, 0x8488, + 0xAF2C, 0xB2BF, 0xAF2D, 0xB2C0, 0xAF2E, 0x8489, 0xAF2F, 0x848A, 0xAF30, 0xB2C1, 0xAF31, 0x848B, 0xAF32, 0xB2C2, 0xAF33, 0x848C, + 0xAF34, 0xB2C3, 0xAF35, 0x848D, 0xAF36, 0x848E, 0xAF37, 0x848F, 0xAF38, 0x8490, 0xAF39, 0x8491, 0xAF3A, 0x8492, 0xAF3B, 0x8493, + 0xAF3C, 0xB2C4, 0xAF3D, 0xB2C5, 0xAF3E, 0x8494, 0xAF3F, 0xB2C6, 0xAF40, 0x8495, 0xAF41, 0xB2C7, 0xAF42, 0xB2C8, 0xAF43, 0xB2C9, + 0xAF44, 0x8496, 0xAF45, 0x8497, 0xAF46, 0x8498, 0xAF47, 0x8499, 0xAF48, 0xB2CA, 0xAF49, 0xB2CB, 0xAF4A, 0x849A, 0xAF4B, 0x849B, + 0xAF4C, 0x849C, 0xAF4D, 0x849D, 0xAF4E, 0x849E, 0xAF4F, 0x849F, 0xAF50, 0xB2CC, 0xAF51, 0x84A0, 0xAF52, 0x84A1, 0xAF53, 0x84A2, + 0xAF54, 0x84A3, 0xAF55, 0x84A4, 0xAF56, 0x84A5, 0xAF57, 0x84A6, 0xAF58, 0x84A7, 0xAF59, 0x84A8, 0xAF5A, 0x84A9, 0xAF5B, 0x84AA, + 0xAF5C, 0xB2CD, 0xAF5D, 0xB2CE, 0xAF5E, 0x84AB, 0xAF5F, 0x84AC, 0xAF60, 0x84AD, 0xAF61, 0x84AE, 0xAF62, 0x84AF, 0xAF63, 0x84B0, + 0xAF64, 0xB2CF, 0xAF65, 0xB2D0, 0xAF66, 0x84B1, 0xAF67, 0x84B2, 0xAF68, 0x84B3, 0xAF69, 0x84B4, 0xAF6A, 0x84B5, 0xAF6B, 0x84B6, + 0xAF6C, 0x84B7, 0xAF6D, 0x84B8, 0xAF6E, 0x84B9, 0xAF6F, 0x84BA, 0xAF70, 0x84BB, 0xAF71, 0x84BC, 0xAF72, 0x84BD, 0xAF73, 0x84BE, + 0xAF74, 0x84BF, 0xAF75, 0x84C0, 0xAF76, 0x84C1, 0xAF77, 0x84C2, 0xAF78, 0x84C3, 0xAF79, 0xB2D1, 0xAF7A, 0x84C4, 0xAF7B, 0x84C5, + 0xAF7C, 0x84C6, 0xAF7D, 0x84C7, 0xAF7E, 0x84C8, 0xAF7F, 0x84C9, 0xAF80, 0xB2D2, 0xAF81, 0x84CA, 0xAF82, 0x84CB, 0xAF83, 0x84CC, + 0xAF84, 0xB2D3, 0xAF85, 0x84CD, 0xAF86, 0x84CE, 0xAF87, 0x84CF, 0xAF88, 0xB2D4, 0xAF89, 0x84D0, 0xAF8A, 0x84D1, 0xAF8B, 0x84D2, + 0xAF8C, 0x84D3, 0xAF8D, 0x84D4, 0xAF8E, 0x84D5, 0xAF8F, 0x84D6, 0xAF90, 0xB2D5, 0xAF91, 0xB2D6, 0xAF92, 0x84D7, 0xAF93, 0x84D8, + 0xAF94, 0x84D9, 0xAF95, 0xB2D7, 0xAF96, 0x84DA, 0xAF97, 0x84DB, 0xAF98, 0x84DC, 0xAF99, 0x84DD, 0xAF9A, 0x84DE, 0xAF9B, 0x84DF, + 0xAF9C, 0xB2D8, 0xAF9D, 0x84E0, 0xAF9E, 0x84E1, 0xAF9F, 0x84E2, 0xAFA0, 0x84E3, 0xAFA1, 0x84E4, 0xAFA2, 0x84E5, 0xAFA3, 0x84E6, + 0xAFA4, 0x84E7, 0xAFA5, 0x84E8, 0xAFA6, 0x84E9, 0xAFA7, 0x84EA, 0xAFA8, 0x84EB, 0xAFA9, 0x84EC, 0xAFAA, 0x84ED, 0xAFAB, 0x84EE, + 0xAFAC, 0x84EF, 0xAFAD, 0x84F0, 0xAFAE, 0x84F1, 0xAFAF, 0x84F2, 0xAFB0, 0x84F3, 0xAFB1, 0x84F4, 0xAFB2, 0x84F5, 0xAFB3, 0x84F6, + 0xAFB4, 0x84F7, 0xAFB5, 0x84F8, 0xAFB6, 0x84F9, 0xAFB7, 0x84FA, 0xAFB8, 0xB2D9, 0xAFB9, 0xB2DA, 0xAFBA, 0x84FB, 0xAFBB, 0x84FC, + 0xAFBC, 0xB2DB, 0xAFBD, 0x84FD, 0xAFBE, 0x84FE, 0xAFBF, 0x8541, 0xAFC0, 0xB2DC, 0xAFC1, 0x8542, 0xAFC2, 0x8543, 0xAFC3, 0x8544, + 0xAFC4, 0x8545, 0xAFC5, 0x8546, 0xAFC6, 0x8547, 0xAFC7, 0xB2DD, 0xAFC8, 0xB2DE, 0xAFC9, 0xB2DF, 0xAFCA, 0x8548, 0xAFCB, 0xB2E0, + 0xAFCC, 0x8549, 0xAFCD, 0xB2E1, 0xAFCE, 0xB2E2, 0xAFCF, 0x854A, 0xAFD0, 0x854B, 0xAFD1, 0x854C, 0xAFD2, 0x854D, 0xAFD3, 0x854E, + 0xAFD4, 0xB2E3, 0xAFD5, 0x854F, 0xAFD6, 0x8550, 0xAFD7, 0x8551, 0xAFD8, 0x8552, 0xAFD9, 0x8553, 0xAFDA, 0x8554, 0xAFDB, 0x8555, + 0xAFDC, 0xB2E4, 0xAFDD, 0x8556, 0xAFDE, 0x8557, 0xAFDF, 0x8558, 0xAFE0, 0x8559, 0xAFE1, 0x855A, 0xAFE2, 0x8561, 0xAFE3, 0x8562, + 0xAFE4, 0x8563, 0xAFE5, 0x8564, 0xAFE6, 0x8565, 0xAFE7, 0x8566, 0xAFE8, 0xB2E5, 0xAFE9, 0xB2E6, 0xAFEA, 0x8567, 0xAFEB, 0x8568, + 0xAFEC, 0x8569, 0xAFED, 0x856A, 0xAFEE, 0x856B, 0xAFEF, 0x856C, 0xAFF0, 0xB2E7, 0xAFF1, 0xB2E8, 0xAFF2, 0x856D, 0xAFF3, 0x856E, + 0xAFF4, 0xB2E9, 0xAFF5, 0x856F, 0xAFF6, 0x8570, 0xAFF7, 0x8571, 0xAFF8, 0xB2EA, 0xAFF9, 0x8572, 0xAFFA, 0x8573, 0xAFFB, 0x8574, + 0xAFFC, 0x8575, 0xAFFD, 0x8576, 0xAFFE, 0x8577, 0xAFFF, 0x8578, 0xB000, 0xB2EB, 0xB001, 0xB2EC, 0xB002, 0x8579, 0xB003, 0x857A, + 0xB004, 0xB2ED, 0xB005, 0x8581, 0xB006, 0x8582, 0xB007, 0x8583, 0xB008, 0x8584, 0xB009, 0x8585, 0xB00A, 0x8586, 0xB00B, 0x8587, + 0xB00C, 0xB2EE, 0xB00D, 0x8588, 0xB00E, 0x8589, 0xB00F, 0x858A, 0xB010, 0xB2EF, 0xB011, 0x858B, 0xB012, 0x858C, 0xB013, 0x858D, + 0xB014, 0xB2F0, 0xB015, 0x858E, 0xB016, 0x858F, 0xB017, 0x8590, 0xB018, 0x8591, 0xB019, 0x8592, 0xB01A, 0x8593, 0xB01B, 0x8594, + 0xB01C, 0xB2F1, 0xB01D, 0xB2F2, 0xB01E, 0x8595, 0xB01F, 0x8596, 0xB020, 0x8597, 0xB021, 0x8598, 0xB022, 0x8599, 0xB023, 0x859A, + 0xB024, 0x859B, 0xB025, 0x859C, 0xB026, 0x859D, 0xB027, 0x859E, 0xB028, 0xB2F3, 0xB029, 0x859F, 0xB02A, 0x85A0, 0xB02B, 0x85A1, + 0xB02C, 0x85A2, 0xB02D, 0x85A3, 0xB02E, 0x85A4, 0xB02F, 0x85A5, 0xB030, 0x85A6, 0xB031, 0x85A7, 0xB032, 0x85A8, 0xB033, 0x85A9, + 0xB034, 0x85AA, 0xB035, 0x85AB, 0xB036, 0x85AC, 0xB037, 0x85AD, 0xB038, 0x85AE, 0xB039, 0x85AF, 0xB03A, 0x85B0, 0xB03B, 0x85B1, + 0xB03C, 0x85B2, 0xB03D, 0x85B3, 0xB03E, 0x85B4, 0xB03F, 0x85B5, 0xB040, 0x85B6, 0xB041, 0x85B7, 0xB042, 0x85B8, 0xB043, 0x85B9, + 0xB044, 0xB2F4, 0xB045, 0xB2F5, 0xB046, 0x85BA, 0xB047, 0x85BB, 0xB048, 0xB2F6, 0xB049, 0x85BC, 0xB04A, 0xB2F7, 0xB04B, 0x85BD, + 0xB04C, 0xB2F8, 0xB04D, 0x85BE, 0xB04E, 0xB2F9, 0xB04F, 0x85BF, 0xB050, 0x85C0, 0xB051, 0x85C1, 0xB052, 0x85C2, 0xB053, 0xB2FA, + 0xB054, 0xB2FB, 0xB055, 0xB2FC, 0xB056, 0x85C3, 0xB057, 0xB2FD, 0xB058, 0x85C4, 0xB059, 0xB2FE, 0xB05A, 0x85C5, 0xB05B, 0x85C6, + 0xB05C, 0x85C7, 0xB05D, 0xB3A1, 0xB05E, 0x85C8, 0xB05F, 0x85C9, 0xB060, 0x85CA, 0xB061, 0x85CB, 0xB062, 0x85CC, 0xB063, 0x85CD, + 0xB064, 0x85CE, 0xB065, 0x85CF, 0xB066, 0x85D0, 0xB067, 0x85D1, 0xB068, 0x85D2, 0xB069, 0x85D3, 0xB06A, 0x85D4, 0xB06B, 0x85D5, + 0xB06C, 0x85D6, 0xB06D, 0x85D7, 0xB06E, 0x85D8, 0xB06F, 0x85D9, 0xB070, 0x85DA, 0xB071, 0x85DB, 0xB072, 0x85DC, 0xB073, 0x85DD, + 0xB074, 0x85DE, 0xB075, 0x85DF, 0xB076, 0x85E0, 0xB077, 0x85E1, 0xB078, 0x85E2, 0xB079, 0x85E3, 0xB07A, 0x85E4, 0xB07B, 0x85E5, + 0xB07C, 0xB3A2, 0xB07D, 0xB3A3, 0xB07E, 0x85E6, 0xB07F, 0x85E7, 0xB080, 0xB3A4, 0xB081, 0x85E8, 0xB082, 0x85E9, 0xB083, 0x85EA, + 0xB084, 0xB3A5, 0xB085, 0x85EB, 0xB086, 0x85EC, 0xB087, 0x85ED, 0xB088, 0x85EE, 0xB089, 0x85EF, 0xB08A, 0x85F0, 0xB08B, 0x85F1, + 0xB08C, 0xB3A6, 0xB08D, 0xB3A7, 0xB08E, 0x85F2, 0xB08F, 0xB3A8, 0xB090, 0x85F3, 0xB091, 0xB3A9, 0xB092, 0x85F4, 0xB093, 0x85F5, + 0xB094, 0x85F6, 0xB095, 0x85F7, 0xB096, 0x85F8, 0xB097, 0x85F9, 0xB098, 0xB3AA, 0xB099, 0xB3AB, 0xB09A, 0xB3AC, 0xB09B, 0x85FA, + 0xB09C, 0xB3AD, 0xB09D, 0x85FB, 0xB09E, 0x85FC, 0xB09F, 0xB3AE, 0xB0A0, 0xB3AF, 0xB0A1, 0xB3B0, 0xB0A2, 0xB3B1, 0xB0A3, 0x85FD, + 0xB0A4, 0x85FE, 0xB0A5, 0x8641, 0xB0A6, 0x8642, 0xB0A7, 0x8643, 0xB0A8, 0xB3B2, 0xB0A9, 0xB3B3, 0xB0AA, 0x8644, 0xB0AB, 0xB3B4, + 0xB0AC, 0xB3B5, 0xB0AD, 0xB3B6, 0xB0AE, 0xB3B7, 0xB0AF, 0xB3B8, 0xB0B0, 0x8645, 0xB0B1, 0xB3B9, 0xB0B2, 0x8646, 0xB0B3, 0xB3BA, + 0xB0B4, 0xB3BB, 0xB0B5, 0xB3BC, 0xB0B6, 0x8647, 0xB0B7, 0x8648, 0xB0B8, 0xB3BD, 0xB0B9, 0x8649, 0xB0BA, 0x864A, 0xB0BB, 0x864B, + 0xB0BC, 0xB3BE, 0xB0BD, 0x864C, 0xB0BE, 0x864D, 0xB0BF, 0x864E, 0xB0C0, 0x864F, 0xB0C1, 0x8650, 0xB0C2, 0x8651, 0xB0C3, 0x8652, + 0xB0C4, 0xB3BF, 0xB0C5, 0xB3C0, 0xB0C6, 0x8653, 0xB0C7, 0xB3C1, 0xB0C8, 0xB3C2, 0xB0C9, 0xB3C3, 0xB0CA, 0x8654, 0xB0CB, 0x8655, + 0xB0CC, 0x8656, 0xB0CD, 0x8657, 0xB0CE, 0x8658, 0xB0CF, 0x8659, 0xB0D0, 0xB3C4, 0xB0D1, 0xB3C5, 0xB0D2, 0x865A, 0xB0D3, 0x8661, + 0xB0D4, 0xB3C6, 0xB0D5, 0x8662, 0xB0D6, 0x8663, 0xB0D7, 0x8664, 0xB0D8, 0xB3C7, 0xB0D9, 0x8665, 0xB0DA, 0x8666, 0xB0DB, 0x8667, + 0xB0DC, 0x8668, 0xB0DD, 0x8669, 0xB0DE, 0x866A, 0xB0DF, 0x866B, 0xB0E0, 0xB3C8, 0xB0E1, 0x866C, 0xB0E2, 0x866D, 0xB0E3, 0x866E, + 0xB0E4, 0x866F, 0xB0E5, 0xB3C9, 0xB0E6, 0x8670, 0xB0E7, 0x8671, 0xB0E8, 0x8672, 0xB0E9, 0x8673, 0xB0EA, 0x8674, 0xB0EB, 0x8675, + 0xB0EC, 0x8676, 0xB0ED, 0x8677, 0xB0EE, 0x8678, 0xB0EF, 0x8679, 0xB0F0, 0x867A, 0xB0F1, 0x8681, 0xB0F2, 0x8682, 0xB0F3, 0x8683, + 0xB0F4, 0x8684, 0xB0F5, 0x8685, 0xB0F6, 0x8686, 0xB0F7, 0x8687, 0xB0F8, 0x8688, 0xB0F9, 0x8689, 0xB0FA, 0x868A, 0xB0FB, 0x868B, + 0xB0FC, 0x868C, 0xB0FD, 0x868D, 0xB0FE, 0x868E, 0xB0FF, 0x868F, 0xB100, 0x8690, 0xB101, 0x8691, 0xB102, 0x8692, 0xB103, 0x8693, + 0xB104, 0x8694, 0xB105, 0x8695, 0xB106, 0x8696, 0xB107, 0x8697, 0xB108, 0xB3CA, 0xB109, 0xB3CB, 0xB10A, 0x8698, 0xB10B, 0xB3CC, + 0xB10C, 0xB3CD, 0xB10D, 0x8699, 0xB10E, 0x869A, 0xB10F, 0x869B, 0xB110, 0xB3CE, 0xB111, 0x869C, 0xB112, 0xB3CF, 0xB113, 0xB3D0, + 0xB114, 0x869D, 0xB115, 0x869E, 0xB116, 0x869F, 0xB117, 0x86A0, 0xB118, 0xB3D1, 0xB119, 0xB3D2, 0xB11A, 0x86A1, 0xB11B, 0xB3D3, + 0xB11C, 0xB3D4, 0xB11D, 0xB3D5, 0xB11E, 0x86A2, 0xB11F, 0x86A3, 0xB120, 0x86A4, 0xB121, 0x86A5, 0xB122, 0x86A6, 0xB123, 0xB3D6, + 0xB124, 0xB3D7, 0xB125, 0xB3D8, 0xB126, 0x86A7, 0xB127, 0x86A8, 0xB128, 0xB3D9, 0xB129, 0x86A9, 0xB12A, 0x86AA, 0xB12B, 0x86AB, + 0xB12C, 0xB3DA, 0xB12D, 0x86AC, 0xB12E, 0x86AD, 0xB12F, 0x86AE, 0xB130, 0x86AF, 0xB131, 0x86B0, 0xB132, 0x86B1, 0xB133, 0x86B2, + 0xB134, 0xB3DB, 0xB135, 0xB3DC, 0xB136, 0x86B3, 0xB137, 0xB3DD, 0xB138, 0xB3DE, 0xB139, 0xB3DF, 0xB13A, 0x86B4, 0xB13B, 0x86B5, + 0xB13C, 0x86B6, 0xB13D, 0x86B7, 0xB13E, 0x86B8, 0xB13F, 0x86B9, 0xB140, 0xB3E0, 0xB141, 0xB3E1, 0xB142, 0x86BA, 0xB143, 0x86BB, + 0xB144, 0xB3E2, 0xB145, 0x86BC, 0xB146, 0x86BD, 0xB147, 0x86BE, 0xB148, 0xB3E3, 0xB149, 0x86BF, 0xB14A, 0x86C0, 0xB14B, 0x86C1, + 0xB14C, 0x86C2, 0xB14D, 0x86C3, 0xB14E, 0x86C4, 0xB14F, 0x86C5, 0xB150, 0xB3E4, 0xB151, 0xB3E5, 0xB152, 0x86C6, 0xB153, 0x86C7, + 0xB154, 0xB3E6, 0xB155, 0xB3E7, 0xB156, 0x86C8, 0xB157, 0x86C9, 0xB158, 0xB3E8, 0xB159, 0x86CA, 0xB15A, 0x86CB, 0xB15B, 0x86CC, + 0xB15C, 0xB3E9, 0xB15D, 0x86CD, 0xB15E, 0x86CE, 0xB15F, 0x86CF, 0xB160, 0xB3EA, 0xB161, 0x86D0, 0xB162, 0x86D1, 0xB163, 0x86D2, + 0xB164, 0x86D3, 0xB165, 0x86D4, 0xB166, 0x86D5, 0xB167, 0x86D6, 0xB168, 0x86D7, 0xB169, 0x86D8, 0xB16A, 0x86D9, 0xB16B, 0x86DA, + 0xB16C, 0x86DB, 0xB16D, 0x86DC, 0xB16E, 0x86DD, 0xB16F, 0x86DE, 0xB170, 0x86DF, 0xB171, 0x86E0, 0xB172, 0x86E1, 0xB173, 0x86E2, + 0xB174, 0x86E3, 0xB175, 0x86E4, 0xB176, 0x86E5, 0xB177, 0x86E6, 0xB178, 0xB3EB, 0xB179, 0xB3EC, 0xB17A, 0x86E7, 0xB17B, 0x86E8, + 0xB17C, 0xB3ED, 0xB17D, 0x86E9, 0xB17E, 0x86EA, 0xB17F, 0x86EB, 0xB180, 0xB3EE, 0xB181, 0x86EC, 0xB182, 0xB3EF, 0xB183, 0x86ED, + 0xB184, 0x86EE, 0xB185, 0x86EF, 0xB186, 0x86F0, 0xB187, 0x86F1, 0xB188, 0xB3F0, 0xB189, 0xB3F1, 0xB18A, 0x86F2, 0xB18B, 0xB3F2, + 0xB18C, 0x86F3, 0xB18D, 0xB3F3, 0xB18E, 0x86F4, 0xB18F, 0x86F5, 0xB190, 0x86F6, 0xB191, 0x86F7, 0xB192, 0xB3F4, 0xB193, 0xB3F5, + 0xB194, 0xB3F6, 0xB195, 0x86F8, 0xB196, 0x86F9, 0xB197, 0x86FA, 0xB198, 0xB3F7, 0xB199, 0x86FB, 0xB19A, 0x86FC, 0xB19B, 0x86FD, + 0xB19C, 0xB3F8, 0xB19D, 0x86FE, 0xB19E, 0x8741, 0xB19F, 0x8742, 0xB1A0, 0x8743, 0xB1A1, 0x8744, 0xB1A2, 0x8745, 0xB1A3, 0x8746, + 0xB1A4, 0x8747, 0xB1A5, 0x8748, 0xB1A6, 0x8749, 0xB1A7, 0x874A, 0xB1A8, 0xB3F9, 0xB1A9, 0x874B, 0xB1AA, 0x874C, 0xB1AB, 0x874D, + 0xB1AC, 0x874E, 0xB1AD, 0x874F, 0xB1AE, 0x8750, 0xB1AF, 0x8751, 0xB1B0, 0x8752, 0xB1B1, 0x8753, 0xB1B2, 0x8754, 0xB1B3, 0x8755, + 0xB1B4, 0x8756, 0xB1B5, 0x8757, 0xB1B6, 0x8758, 0xB1B7, 0x8759, 0xB1B8, 0x875A, 0xB1B9, 0x8761, 0xB1BA, 0x8762, 0xB1BB, 0x8763, + 0xB1BC, 0x8764, 0xB1BD, 0x8765, 0xB1BE, 0x8766, 0xB1BF, 0x8767, 0xB1C0, 0x8768, 0xB1C1, 0x8769, 0xB1C2, 0x876A, 0xB1C3, 0x876B, + 0xB1C4, 0x876C, 0xB1C5, 0x876D, 0xB1C6, 0x876E, 0xB1C7, 0x876F, 0xB1C8, 0x8770, 0xB1C9, 0x8771, 0xB1CA, 0x8772, 0xB1CB, 0x8773, + 0xB1CC, 0xB3FA, 0xB1CD, 0x8774, 0xB1CE, 0x8775, 0xB1CF, 0x8776, 0xB1D0, 0xB3FB, 0xB1D1, 0x8777, 0xB1D2, 0x8778, 0xB1D3, 0x8779, + 0xB1D4, 0xB3FC, 0xB1D5, 0x877A, 0xB1D6, 0x8781, 0xB1D7, 0x8782, 0xB1D8, 0x8783, 0xB1D9, 0x8784, 0xB1DA, 0x8785, 0xB1DB, 0x8786, + 0xB1DC, 0xB3FD, 0xB1DD, 0xB3FE, 0xB1DE, 0x8787, 0xB1DF, 0xB4A1, 0xB1E0, 0x8788, 0xB1E1, 0x8789, 0xB1E2, 0x878A, 0xB1E3, 0x878B, + 0xB1E4, 0x878C, 0xB1E5, 0x878D, 0xB1E6, 0x878E, 0xB1E7, 0x878F, 0xB1E8, 0xB4A2, 0xB1E9, 0xB4A3, 0xB1EA, 0x8790, 0xB1EB, 0x8791, + 0xB1EC, 0xB4A4, 0xB1ED, 0x8792, 0xB1EE, 0x8793, 0xB1EF, 0x8794, 0xB1F0, 0xB4A5, 0xB1F1, 0x8795, 0xB1F2, 0x8796, 0xB1F3, 0x8797, + 0xB1F4, 0x8798, 0xB1F5, 0x8799, 0xB1F6, 0x879A, 0xB1F7, 0x879B, 0xB1F8, 0x879C, 0xB1F9, 0xB4A6, 0xB1FA, 0x879D, 0xB1FB, 0xB4A7, + 0xB1FC, 0x879E, 0xB1FD, 0xB4A8, 0xB1FE, 0x879F, 0xB1FF, 0x87A0, 0xB200, 0x87A1, 0xB201, 0x87A2, 0xB202, 0x87A3, 0xB203, 0x87A4, + 0xB204, 0xB4A9, 0xB205, 0xB4AA, 0xB206, 0x87A5, 0xB207, 0x87A6, 0xB208, 0xB4AB, 0xB209, 0x87A7, 0xB20A, 0x87A8, 0xB20B, 0xB4AC, + 0xB20C, 0xB4AD, 0xB20D, 0x87A9, 0xB20E, 0x87AA, 0xB20F, 0x87AB, 0xB210, 0x87AC, 0xB211, 0x87AD, 0xB212, 0x87AE, 0xB213, 0x87AF, + 0xB214, 0xB4AE, 0xB215, 0xB4AF, 0xB216, 0x87B0, 0xB217, 0xB4B0, 0xB218, 0x87B1, 0xB219, 0xB4B1, 0xB21A, 0x87B2, 0xB21B, 0x87B3, + 0xB21C, 0x87B4, 0xB21D, 0x87B5, 0xB21E, 0x87B6, 0xB21F, 0x87B7, 0xB220, 0xB4B2, 0xB221, 0x87B8, 0xB222, 0x87B9, 0xB223, 0x87BA, + 0xB224, 0x87BB, 0xB225, 0x87BC, 0xB226, 0x87BD, 0xB227, 0x87BE, 0xB228, 0x87BF, 0xB229, 0x87C0, 0xB22A, 0x87C1, 0xB22B, 0x87C2, + 0xB22C, 0x87C3, 0xB22D, 0x87C4, 0xB22E, 0x87C5, 0xB22F, 0x87C6, 0xB230, 0x87C7, 0xB231, 0x87C8, 0xB232, 0x87C9, 0xB233, 0x87CA, + 0xB234, 0xB4B3, 0xB235, 0x87CB, 0xB236, 0x87CC, 0xB237, 0x87CD, 0xB238, 0x87CE, 0xB239, 0x87CF, 0xB23A, 0x87D0, 0xB23B, 0x87D1, + 0xB23C, 0xB4B4, 0xB23D, 0x87D2, 0xB23E, 0x87D3, 0xB23F, 0x87D4, 0xB240, 0x87D5, 0xB241, 0x87D6, 0xB242, 0x87D7, 0xB243, 0x87D8, + 0xB244, 0x87D9, 0xB245, 0x87DA, 0xB246, 0x87DB, 0xB247, 0x87DC, 0xB248, 0x87DD, 0xB249, 0x87DE, 0xB24A, 0x87DF, 0xB24B, 0x87E0, + 0xB24C, 0x87E1, 0xB24D, 0x87E2, 0xB24E, 0x87E3, 0xB24F, 0x87E4, 0xB250, 0x87E5, 0xB251, 0x87E6, 0xB252, 0x87E7, 0xB253, 0x87E8, + 0xB254, 0x87E9, 0xB255, 0x87EA, 0xB256, 0x87EB, 0xB257, 0x87EC, 0xB258, 0xB4B5, 0xB259, 0x87ED, 0xB25A, 0x87EE, 0xB25B, 0x87EF, + 0xB25C, 0xB4B6, 0xB25D, 0x87F0, 0xB25E, 0x87F1, 0xB25F, 0x87F2, 0xB260, 0xB4B7, 0xB261, 0x87F3, 0xB262, 0x87F4, 0xB263, 0x87F5, + 0xB264, 0x87F6, 0xB265, 0x87F7, 0xB266, 0x87F8, 0xB267, 0x87F9, 0xB268, 0xB4B8, 0xB269, 0xB4B9, 0xB26A, 0x87FA, 0xB26B, 0x87FB, + 0xB26C, 0x87FC, 0xB26D, 0x87FD, 0xB26E, 0x87FE, 0xB26F, 0x8841, 0xB270, 0x8842, 0xB271, 0x8843, 0xB272, 0x8844, 0xB273, 0x8845, + 0xB274, 0xB4BA, 0xB275, 0xB4BB, 0xB276, 0x8846, 0xB277, 0x8847, 0xB278, 0x8848, 0xB279, 0x8849, 0xB27A, 0x884A, 0xB27B, 0x884B, + 0xB27C, 0xB4BC, 0xB27D, 0x884C, 0xB27E, 0x884D, 0xB27F, 0x884E, 0xB280, 0x884F, 0xB281, 0x8850, 0xB282, 0x8851, 0xB283, 0x8852, + 0xB284, 0xB4BD, 0xB285, 0xB4BE, 0xB286, 0x8853, 0xB287, 0x8854, 0xB288, 0x8855, 0xB289, 0xB4BF, 0xB28A, 0x8856, 0xB28B, 0x8857, + 0xB28C, 0x8858, 0xB28D, 0x8859, 0xB28E, 0x885A, 0xB28F, 0x8861, 0xB290, 0xB4C0, 0xB291, 0xB4C1, 0xB292, 0x8862, 0xB293, 0x8863, + 0xB294, 0xB4C2, 0xB295, 0x8864, 0xB296, 0x8865, 0xB297, 0x8866, 0xB298, 0xB4C3, 0xB299, 0xB4C4, 0xB29A, 0xB4C5, 0xB29B, 0x8867, + 0xB29C, 0x8868, 0xB29D, 0x8869, 0xB29E, 0x886A, 0xB29F, 0x886B, 0xB2A0, 0xB4C6, 0xB2A1, 0xB4C7, 0xB2A2, 0x886C, 0xB2A3, 0xB4C8, + 0xB2A4, 0x886D, 0xB2A5, 0xB4C9, 0xB2A6, 0xB4CA, 0xB2A7, 0x886E, 0xB2A8, 0x886F, 0xB2A9, 0x8870, 0xB2AA, 0xB4CB, 0xB2AB, 0x8871, + 0xB2AC, 0xB4CC, 0xB2AD, 0x8872, 0xB2AE, 0x8873, 0xB2AF, 0x8874, 0xB2B0, 0xB4CD, 0xB2B1, 0x8875, 0xB2B2, 0x8876, 0xB2B3, 0x8877, + 0xB2B4, 0xB4CE, 0xB2B5, 0x8878, 0xB2B6, 0x8879, 0xB2B7, 0x887A, 0xB2B8, 0x8881, 0xB2B9, 0x8882, 0xB2BA, 0x8883, 0xB2BB, 0x8884, + 0xB2BC, 0x8885, 0xB2BD, 0x8886, 0xB2BE, 0x8887, 0xB2BF, 0x8888, 0xB2C0, 0x8889, 0xB2C1, 0x888A, 0xB2C2, 0x888B, 0xB2C3, 0x888C, + 0xB2C4, 0x888D, 0xB2C5, 0x888E, 0xB2C6, 0x888F, 0xB2C7, 0x8890, 0xB2C8, 0xB4CF, 0xB2C9, 0xB4D0, 0xB2CA, 0x8891, 0xB2CB, 0x8892, + 0xB2CC, 0xB4D1, 0xB2CD, 0x8893, 0xB2CE, 0x8894, 0xB2CF, 0x8895, 0xB2D0, 0xB4D2, 0xB2D1, 0x8896, 0xB2D2, 0xB4D3, 0xB2D3, 0x8897, + 0xB2D4, 0x8898, 0xB2D5, 0x8899, 0xB2D6, 0x889A, 0xB2D7, 0x889B, 0xB2D8, 0xB4D4, 0xB2D9, 0xB4D5, 0xB2DA, 0x889C, 0xB2DB, 0xB4D6, + 0xB2DC, 0x889D, 0xB2DD, 0xB4D7, 0xB2DE, 0x889E, 0xB2DF, 0x889F, 0xB2E0, 0x88A0, 0xB2E1, 0x88A1, 0xB2E2, 0xB4D8, 0xB2E3, 0x88A2, + 0xB2E4, 0xB4D9, 0xB2E5, 0xB4DA, 0xB2E6, 0xB4DB, 0xB2E7, 0x88A3, 0xB2E8, 0xB4DC, 0xB2E9, 0x88A4, 0xB2EA, 0x88A5, 0xB2EB, 0xB4DD, + 0xB2EC, 0xB4DE, 0xB2ED, 0xB4DF, 0xB2EE, 0xB4E0, 0xB2EF, 0xB4E1, 0xB2F0, 0x88A6, 0xB2F1, 0x88A7, 0xB2F2, 0x88A8, 0xB2F3, 0xB4E2, + 0xB2F4, 0xB4E3, 0xB2F5, 0xB4E4, 0xB2F6, 0x88A9, 0xB2F7, 0xB4E5, 0xB2F8, 0xB4E6, 0xB2F9, 0xB4E7, 0xB2FA, 0xB4E8, 0xB2FB, 0xB4E9, + 0xB2FC, 0x88AA, 0xB2FD, 0x88AB, 0xB2FE, 0x88AC, 0xB2FF, 0xB4EA, 0xB300, 0xB4EB, 0xB301, 0xB4EC, 0xB302, 0x88AD, 0xB303, 0x88AE, + 0xB304, 0xB4ED, 0xB305, 0x88AF, 0xB306, 0x88B0, 0xB307, 0x88B1, 0xB308, 0xB4EE, 0xB309, 0x88B2, 0xB30A, 0x88B3, 0xB30B, 0x88B4, + 0xB30C, 0x88B5, 0xB30D, 0x88B6, 0xB30E, 0x88B7, 0xB30F, 0x88B8, 0xB310, 0xB4EF, 0xB311, 0xB4F0, 0xB312, 0x88B9, 0xB313, 0xB4F1, + 0xB314, 0xB4F2, 0xB315, 0xB4F3, 0xB316, 0x88BA, 0xB317, 0x88BB, 0xB318, 0x88BC, 0xB319, 0x88BD, 0xB31A, 0x88BE, 0xB31B, 0x88BF, + 0xB31C, 0xB4F4, 0xB31D, 0x88C0, 0xB31E, 0x88C1, 0xB31F, 0x88C2, 0xB320, 0x88C3, 0xB321, 0x88C4, 0xB322, 0x88C5, 0xB323, 0x88C6, + 0xB324, 0x88C7, 0xB325, 0x88C8, 0xB326, 0x88C9, 0xB327, 0x88CA, 0xB328, 0x88CB, 0xB329, 0x88CC, 0xB32A, 0x88CD, 0xB32B, 0x88CE, + 0xB32C, 0x88CF, 0xB32D, 0x88D0, 0xB32E, 0x88D1, 0xB32F, 0x88D2, 0xB330, 0x88D3, 0xB331, 0x88D4, 0xB332, 0x88D5, 0xB333, 0x88D6, + 0xB334, 0x88D7, 0xB335, 0x88D8, 0xB336, 0x88D9, 0xB337, 0x88DA, 0xB338, 0x88DB, 0xB339, 0x88DC, 0xB33A, 0x88DD, 0xB33B, 0x88DE, + 0xB33C, 0x88DF, 0xB33D, 0x88E0, 0xB33E, 0x88E1, 0xB33F, 0x88E2, 0xB340, 0x88E3, 0xB341, 0x88E4, 0xB342, 0x88E5, 0xB343, 0x88E6, + 0xB344, 0x88E7, 0xB345, 0x88E8, 0xB346, 0x88E9, 0xB347, 0x88EA, 0xB348, 0x88EB, 0xB349, 0x88EC, 0xB34A, 0x88ED, 0xB34B, 0x88EE, + 0xB34C, 0x88EF, 0xB34D, 0x88F0, 0xB34E, 0x88F1, 0xB34F, 0x88F2, 0xB350, 0x88F3, 0xB351, 0x88F4, 0xB352, 0x88F5, 0xB353, 0x88F6, + 0xB354, 0xB4F5, 0xB355, 0xB4F6, 0xB356, 0xB4F7, 0xB357, 0x88F7, 0xB358, 0xB4F8, 0xB359, 0x88F8, 0xB35A, 0x88F9, 0xB35B, 0xB4F9, + 0xB35C, 0xB4FA, 0xB35D, 0x88FA, 0xB35E, 0xB4FB, 0xB35F, 0xB4FC, 0xB360, 0x88FB, 0xB361, 0x88FC, 0xB362, 0x88FD, 0xB363, 0x88FE, + 0xB364, 0xB4FD, 0xB365, 0xB4FE, 0xB366, 0x8941, 0xB367, 0xB5A1, 0xB368, 0x8942, 0xB369, 0xB5A2, 0xB36A, 0x8943, 0xB36B, 0xB5A3, + 0xB36C, 0x8944, 0xB36D, 0x8945, 0xB36E, 0xB5A4, 0xB36F, 0x8946, 0xB370, 0xB5A5, 0xB371, 0xB5A6, 0xB372, 0x8947, 0xB373, 0x8948, + 0xB374, 0xB5A7, 0xB375, 0x8949, 0xB376, 0x894A, 0xB377, 0x894B, 0xB378, 0xB5A8, 0xB379, 0x894C, 0xB37A, 0x894D, 0xB37B, 0x894E, + 0xB37C, 0x894F, 0xB37D, 0x8950, 0xB37E, 0x8951, 0xB37F, 0x8952, 0xB380, 0xB5A9, 0xB381, 0xB5AA, 0xB382, 0x8953, 0xB383, 0xB5AB, + 0xB384, 0xB5AC, 0xB385, 0xB5AD, 0xB386, 0x8954, 0xB387, 0x8955, 0xB388, 0x8956, 0xB389, 0x8957, 0xB38A, 0x8958, 0xB38B, 0x8959, + 0xB38C, 0xB5AE, 0xB38D, 0x895A, 0xB38E, 0x8961, 0xB38F, 0x8962, 0xB390, 0xB5AF, 0xB391, 0x8963, 0xB392, 0x8964, 0xB393, 0x8965, + 0xB394, 0xB5B0, 0xB395, 0x8966, 0xB396, 0x8967, 0xB397, 0x8968, 0xB398, 0x8969, 0xB399, 0x896A, 0xB39A, 0x896B, 0xB39B, 0x896C, + 0xB39C, 0x896D, 0xB39D, 0x896E, 0xB39E, 0x896F, 0xB39F, 0x8970, 0xB3A0, 0xB5B1, 0xB3A1, 0xB5B2, 0xB3A2, 0x8971, 0xB3A3, 0x8972, + 0xB3A4, 0x8973, 0xB3A5, 0x8974, 0xB3A6, 0x8975, 0xB3A7, 0x8976, 0xB3A8, 0xB5B3, 0xB3A9, 0x8977, 0xB3AA, 0x8978, 0xB3AB, 0x8979, + 0xB3AC, 0xB5B4, 0xB3AD, 0x897A, 0xB3AE, 0x8981, 0xB3AF, 0x8982, 0xB3B0, 0x8983, 0xB3B1, 0x8984, 0xB3B2, 0x8985, 0xB3B3, 0x8986, + 0xB3B4, 0x8987, 0xB3B5, 0x8988, 0xB3B6, 0x8989, 0xB3B7, 0x898A, 0xB3B8, 0x898B, 0xB3B9, 0x898C, 0xB3BA, 0x898D, 0xB3BB, 0x898E, + 0xB3BC, 0x898F, 0xB3BD, 0x8990, 0xB3BE, 0x8991, 0xB3BF, 0x8992, 0xB3C0, 0x8993, 0xB3C1, 0x8994, 0xB3C2, 0x8995, 0xB3C3, 0x8996, + 0xB3C4, 0xB5B5, 0xB3C5, 0xB5B6, 0xB3C6, 0x8997, 0xB3C7, 0x8998, 0xB3C8, 0xB5B7, 0xB3C9, 0x8999, 0xB3CA, 0x899A, 0xB3CB, 0xB5B8, + 0xB3CC, 0xB5B9, 0xB3CD, 0x899B, 0xB3CE, 0xB5BA, 0xB3CF, 0x899C, 0xB3D0, 0xB5BB, 0xB3D1, 0x899D, 0xB3D2, 0x899E, 0xB3D3, 0x899F, + 0xB3D4, 0xB5BC, 0xB3D5, 0xB5BD, 0xB3D6, 0x89A0, 0xB3D7, 0xB5BE, 0xB3D8, 0x89A1, 0xB3D9, 0xB5BF, 0xB3DA, 0x89A2, 0xB3DB, 0xB5C0, + 0xB3DC, 0x89A3, 0xB3DD, 0xB5C1, 0xB3DE, 0x89A4, 0xB3DF, 0x89A5, 0xB3E0, 0xB5C2, 0xB3E1, 0x89A6, 0xB3E2, 0x89A7, 0xB3E3, 0x89A8, + 0xB3E4, 0xB5C3, 0xB3E5, 0x89A9, 0xB3E6, 0x89AA, 0xB3E7, 0x89AB, 0xB3E8, 0xB5C4, 0xB3E9, 0x89AC, 0xB3EA, 0x89AD, 0xB3EB, 0x89AE, + 0xB3EC, 0x89AF, 0xB3ED, 0x89B0, 0xB3EE, 0x89B1, 0xB3EF, 0x89B2, 0xB3F0, 0x89B3, 0xB3F1, 0x89B4, 0xB3F2, 0x89B5, 0xB3F3, 0x89B6, + 0xB3F4, 0x89B7, 0xB3F5, 0x89B8, 0xB3F6, 0x89B9, 0xB3F7, 0x89BA, 0xB3F8, 0x89BB, 0xB3F9, 0x89BC, 0xB3FA, 0x89BD, 0xB3FB, 0x89BE, + 0xB3FC, 0xB5C5, 0xB3FD, 0x89BF, 0xB3FE, 0x89C0, 0xB3FF, 0x89C1, 0xB400, 0x89C2, 0xB401, 0x89C3, 0xB402, 0x89C4, 0xB403, 0x89C5, + 0xB404, 0x89C6, 0xB405, 0x89C7, 0xB406, 0x89C8, 0xB407, 0x89C9, 0xB408, 0x89CA, 0xB409, 0x89CB, 0xB40A, 0x89CC, 0xB40B, 0x89CD, + 0xB40C, 0x89CE, 0xB40D, 0x89CF, 0xB40E, 0x89D0, 0xB40F, 0x89D1, 0xB410, 0xB5C6, 0xB411, 0x89D2, 0xB412, 0x89D3, 0xB413, 0x89D4, + 0xB414, 0x89D5, 0xB415, 0x89D6, 0xB416, 0x89D7, 0xB417, 0x89D8, 0xB418, 0xB5C7, 0xB419, 0x89D9, 0xB41A, 0x89DA, 0xB41B, 0x89DB, + 0xB41C, 0xB5C8, 0xB41D, 0x89DC, 0xB41E, 0x89DD, 0xB41F, 0x89DE, 0xB420, 0xB5C9, 0xB421, 0x89DF, 0xB422, 0x89E0, 0xB423, 0x89E1, + 0xB424, 0x89E2, 0xB425, 0x89E3, 0xB426, 0x89E4, 0xB427, 0x89E5, 0xB428, 0xB5CA, 0xB429, 0xB5CB, 0xB42A, 0x89E6, 0xB42B, 0xB5CC, + 0xB42C, 0x89E7, 0xB42D, 0x89E8, 0xB42E, 0x89E9, 0xB42F, 0x89EA, 0xB430, 0x89EB, 0xB431, 0x89EC, 0xB432, 0x89ED, 0xB433, 0x89EE, + 0xB434, 0xB5CD, 0xB435, 0x89EF, 0xB436, 0x89F0, 0xB437, 0x89F1, 0xB438, 0x89F2, 0xB439, 0x89F3, 0xB43A, 0x89F4, 0xB43B, 0x89F5, + 0xB43C, 0x89F6, 0xB43D, 0x89F7, 0xB43E, 0x89F8, 0xB43F, 0x89F9, 0xB440, 0x89FA, 0xB441, 0x89FB, 0xB442, 0x89FC, 0xB443, 0x89FD, + 0xB444, 0x89FE, 0xB445, 0x8A41, 0xB446, 0x8A42, 0xB447, 0x8A43, 0xB448, 0x8A44, 0xB449, 0x8A45, 0xB44A, 0x8A46, 0xB44B, 0x8A47, + 0xB44C, 0x8A48, 0xB44D, 0x8A49, 0xB44E, 0x8A4A, 0xB44F, 0x8A4B, 0xB450, 0xB5CE, 0xB451, 0xB5CF, 0xB452, 0x8A4C, 0xB453, 0x8A4D, + 0xB454, 0xB5D0, 0xB455, 0x8A4E, 0xB456, 0x8A4F, 0xB457, 0x8A50, 0xB458, 0xB5D1, 0xB459, 0x8A51, 0xB45A, 0x8A52, 0xB45B, 0x8A53, + 0xB45C, 0x8A54, 0xB45D, 0x8A55, 0xB45E, 0x8A56, 0xB45F, 0x8A57, 0xB460, 0xB5D2, 0xB461, 0xB5D3, 0xB462, 0x8A58, 0xB463, 0xB5D4, + 0xB464, 0x8A59, 0xB465, 0xB5D5, 0xB466, 0x8A5A, 0xB467, 0x8A61, 0xB468, 0x8A62, 0xB469, 0x8A63, 0xB46A, 0x8A64, 0xB46B, 0x8A65, + 0xB46C, 0xB5D6, 0xB46D, 0x8A66, 0xB46E, 0x8A67, 0xB46F, 0x8A68, 0xB470, 0x8A69, 0xB471, 0x8A6A, 0xB472, 0x8A6B, 0xB473, 0x8A6C, + 0xB474, 0x8A6D, 0xB475, 0x8A6E, 0xB476, 0x8A6F, 0xB477, 0x8A70, 0xB478, 0x8A71, 0xB479, 0x8A72, 0xB47A, 0x8A73, 0xB47B, 0x8A74, + 0xB47C, 0x8A75, 0xB47D, 0x8A76, 0xB47E, 0x8A77, 0xB47F, 0x8A78, 0xB480, 0xB5D7, 0xB481, 0x8A79, 0xB482, 0x8A7A, 0xB483, 0x8A81, + 0xB484, 0x8A82, 0xB485, 0x8A83, 0xB486, 0x8A84, 0xB487, 0x8A85, 0xB488, 0xB5D8, 0xB489, 0x8A86, 0xB48A, 0x8A87, 0xB48B, 0x8A88, + 0xB48C, 0x8A89, 0xB48D, 0x8A8A, 0xB48E, 0x8A8B, 0xB48F, 0x8A8C, 0xB490, 0x8A8D, 0xB491, 0x8A8E, 0xB492, 0x8A8F, 0xB493, 0x8A90, + 0xB494, 0x8A91, 0xB495, 0x8A92, 0xB496, 0x8A93, 0xB497, 0x8A94, 0xB498, 0x8A95, 0xB499, 0x8A96, 0xB49A, 0x8A97, 0xB49B, 0x8A98, + 0xB49C, 0x8A99, 0xB49D, 0xB5D9, 0xB49E, 0x8A9A, 0xB49F, 0x8A9B, 0xB4A0, 0x8A9C, 0xB4A1, 0x8A9D, 0xB4A2, 0x8A9E, 0xB4A3, 0x8A9F, + 0xB4A4, 0xB5DA, 0xB4A5, 0x8AA0, 0xB4A6, 0x8AA1, 0xB4A7, 0x8AA2, 0xB4A8, 0xB5DB, 0xB4A9, 0x8AA3, 0xB4AA, 0x8AA4, 0xB4AB, 0x8AA5, + 0xB4AC, 0xB5DC, 0xB4AD, 0x8AA6, 0xB4AE, 0x8AA7, 0xB4AF, 0x8AA8, 0xB4B0, 0x8AA9, 0xB4B1, 0x8AAA, 0xB4B2, 0x8AAB, 0xB4B3, 0x8AAC, + 0xB4B4, 0x8AAD, 0xB4B5, 0xB5DD, 0xB4B6, 0x8AAE, 0xB4B7, 0xB5DE, 0xB4B8, 0x8AAF, 0xB4B9, 0xB5DF, 0xB4BA, 0x8AB0, 0xB4BB, 0x8AB1, + 0xB4BC, 0x8AB2, 0xB4BD, 0x8AB3, 0xB4BE, 0x8AB4, 0xB4BF, 0x8AB5, 0xB4C0, 0xB5E0, 0xB4C1, 0x8AB6, 0xB4C2, 0x8AB7, 0xB4C3, 0x8AB8, + 0xB4C4, 0xB5E1, 0xB4C5, 0x8AB9, 0xB4C6, 0x8ABA, 0xB4C7, 0x8ABB, 0xB4C8, 0xB5E2, 0xB4C9, 0x8ABC, 0xB4CA, 0x8ABD, 0xB4CB, 0x8ABE, + 0xB4CC, 0x8ABF, 0xB4CD, 0x8AC0, 0xB4CE, 0x8AC1, 0xB4CF, 0x8AC2, 0xB4D0, 0xB5E3, 0xB4D1, 0x8AC3, 0xB4D2, 0x8AC4, 0xB4D3, 0x8AC5, + 0xB4D4, 0x8AC6, 0xB4D5, 0xB5E4, 0xB4D6, 0x8AC7, 0xB4D7, 0x8AC8, 0xB4D8, 0x8AC9, 0xB4D9, 0x8ACA, 0xB4DA, 0x8ACB, 0xB4DB, 0x8ACC, + 0xB4DC, 0xB5E5, 0xB4DD, 0xB5E6, 0xB4DE, 0x8ACD, 0xB4DF, 0x8ACE, 0xB4E0, 0xB5E7, 0xB4E1, 0x8ACF, 0xB4E2, 0x8AD0, 0xB4E3, 0xB5E8, + 0xB4E4, 0xB5E9, 0xB4E5, 0x8AD1, 0xB4E6, 0xB5EA, 0xB4E7, 0x8AD2, 0xB4E8, 0x8AD3, 0xB4E9, 0x8AD4, 0xB4EA, 0x8AD5, 0xB4EB, 0x8AD6, + 0xB4EC, 0xB5EB, 0xB4ED, 0xB5EC, 0xB4EE, 0x8AD7, 0xB4EF, 0xB5ED, 0xB4F0, 0x8AD8, 0xB4F1, 0xB5EE, 0xB4F2, 0x8AD9, 0xB4F3, 0x8ADA, + 0xB4F4, 0x8ADB, 0xB4F5, 0x8ADC, 0xB4F6, 0x8ADD, 0xB4F7, 0x8ADE, 0xB4F8, 0xB5EF, 0xB4F9, 0x8ADF, 0xB4FA, 0x8AE0, 0xB4FB, 0x8AE1, + 0xB4FC, 0x8AE2, 0xB4FD, 0x8AE3, 0xB4FE, 0x8AE4, 0xB4FF, 0x8AE5, 0xB500, 0x8AE6, 0xB501, 0x8AE7, 0xB502, 0x8AE8, 0xB503, 0x8AE9, + 0xB504, 0x8AEA, 0xB505, 0x8AEB, 0xB506, 0x8AEC, 0xB507, 0x8AED, 0xB508, 0x8AEE, 0xB509, 0x8AEF, 0xB50A, 0x8AF0, 0xB50B, 0x8AF1, + 0xB50C, 0x8AF2, 0xB50D, 0x8AF3, 0xB50E, 0x8AF4, 0xB50F, 0x8AF5, 0xB510, 0x8AF6, 0xB511, 0x8AF7, 0xB512, 0x8AF8, 0xB513, 0x8AF9, + 0xB514, 0xB5F0, 0xB515, 0xB5F1, 0xB516, 0x8AFA, 0xB517, 0x8AFB, 0xB518, 0xB5F2, 0xB519, 0x8AFC, 0xB51A, 0x8AFD, 0xB51B, 0xB5F3, + 0xB51C, 0xB5F4, 0xB51D, 0x8AFE, 0xB51E, 0x8B41, 0xB51F, 0x8B42, 0xB520, 0x8B43, 0xB521, 0x8B44, 0xB522, 0x8B45, 0xB523, 0x8B46, + 0xB524, 0xB5F5, 0xB525, 0xB5F6, 0xB526, 0x8B47, 0xB527, 0xB5F7, 0xB528, 0xB5F8, 0xB529, 0xB5F9, 0xB52A, 0xB5FA, 0xB52B, 0x8B48, + 0xB52C, 0x8B49, 0xB52D, 0x8B4A, 0xB52E, 0x8B4B, 0xB52F, 0x8B4C, 0xB530, 0xB5FB, 0xB531, 0xB5FC, 0xB532, 0x8B4D, 0xB533, 0x8B4E, + 0xB534, 0xB5FD, 0xB535, 0x8B4F, 0xB536, 0x8B50, 0xB537, 0x8B51, 0xB538, 0xB5FE, 0xB539, 0x8B52, 0xB53A, 0x8B53, 0xB53B, 0x8B54, + 0xB53C, 0x8B55, 0xB53D, 0x8B56, 0xB53E, 0x8B57, 0xB53F, 0x8B58, 0xB540, 0xB6A1, 0xB541, 0xB6A2, 0xB542, 0x8B59, 0xB543, 0xB6A3, + 0xB544, 0xB6A4, 0xB545, 0xB6A5, 0xB546, 0x8B5A, 0xB547, 0x8B61, 0xB548, 0x8B62, 0xB549, 0x8B63, 0xB54A, 0x8B64, 0xB54B, 0xB6A6, + 0xB54C, 0xB6A7, 0xB54D, 0xB6A8, 0xB54E, 0x8B65, 0xB54F, 0x8B66, 0xB550, 0xB6A9, 0xB551, 0x8B67, 0xB552, 0x8B68, 0xB553, 0x8B69, + 0xB554, 0xB6AA, 0xB555, 0x8B6A, 0xB556, 0x8B6B, 0xB557, 0x8B6C, 0xB558, 0x8B6D, 0xB559, 0x8B6E, 0xB55A, 0x8B6F, 0xB55B, 0x8B70, + 0xB55C, 0xB6AB, 0xB55D, 0xB6AC, 0xB55E, 0x8B71, 0xB55F, 0xB6AD, 0xB560, 0xB6AE, 0xB561, 0xB6AF, 0xB562, 0x8B72, 0xB563, 0x8B73, + 0xB564, 0x8B74, 0xB565, 0x8B75, 0xB566, 0x8B76, 0xB567, 0x8B77, 0xB568, 0x8B78, 0xB569, 0x8B79, 0xB56A, 0x8B7A, 0xB56B, 0x8B81, + 0xB56C, 0x8B82, 0xB56D, 0x8B83, 0xB56E, 0x8B84, 0xB56F, 0x8B85, 0xB570, 0x8B86, 0xB571, 0x8B87, 0xB572, 0x8B88, 0xB573, 0x8B89, + 0xB574, 0x8B8A, 0xB575, 0x8B8B, 0xB576, 0x8B8C, 0xB577, 0x8B8D, 0xB578, 0x8B8E, 0xB579, 0x8B8F, 0xB57A, 0x8B90, 0xB57B, 0x8B91, + 0xB57C, 0x8B92, 0xB57D, 0x8B93, 0xB57E, 0x8B94, 0xB57F, 0x8B95, 0xB580, 0x8B96, 0xB581, 0x8B97, 0xB582, 0x8B98, 0xB583, 0x8B99, + 0xB584, 0x8B9A, 0xB585, 0x8B9B, 0xB586, 0x8B9C, 0xB587, 0x8B9D, 0xB588, 0x8B9E, 0xB589, 0x8B9F, 0xB58A, 0x8BA0, 0xB58B, 0x8BA1, + 0xB58C, 0x8BA2, 0xB58D, 0x8BA3, 0xB58E, 0x8BA4, 0xB58F, 0x8BA5, 0xB590, 0x8BA6, 0xB591, 0x8BA7, 0xB592, 0x8BA8, 0xB593, 0x8BA9, + 0xB594, 0x8BAA, 0xB595, 0x8BAB, 0xB596, 0x8BAC, 0xB597, 0x8BAD, 0xB598, 0x8BAE, 0xB599, 0x8BAF, 0xB59A, 0x8BB0, 0xB59B, 0x8BB1, + 0xB59C, 0x8BB2, 0xB59D, 0x8BB3, 0xB59E, 0x8BB4, 0xB59F, 0x8BB5, 0xB5A0, 0xB6B0, 0xB5A1, 0xB6B1, 0xB5A2, 0x8BB6, 0xB5A3, 0x8BB7, + 0xB5A4, 0xB6B2, 0xB5A5, 0x8BB8, 0xB5A6, 0x8BB9, 0xB5A7, 0x8BBA, 0xB5A8, 0xB6B3, 0xB5A9, 0x8BBB, 0xB5AA, 0xB6B4, 0xB5AB, 0xB6B5, + 0xB5AC, 0x8BBC, 0xB5AD, 0x8BBD, 0xB5AE, 0x8BBE, 0xB5AF, 0x8BBF, 0xB5B0, 0xB6B6, 0xB5B1, 0xB6B7, 0xB5B2, 0x8BC0, 0xB5B3, 0xB6B8, + 0xB5B4, 0xB6B9, 0xB5B5, 0xB6BA, 0xB5B6, 0x8BC1, 0xB5B7, 0x8BC2, 0xB5B8, 0x8BC3, 0xB5B9, 0x8BC4, 0xB5BA, 0x8BC5, 0xB5BB, 0xB6BB, + 0xB5BC, 0xB6BC, 0xB5BD, 0xB6BD, 0xB5BE, 0x8BC6, 0xB5BF, 0x8BC7, 0xB5C0, 0xB6BE, 0xB5C1, 0x8BC8, 0xB5C2, 0x8BC9, 0xB5C3, 0x8BCA, + 0xB5C4, 0xB6BF, 0xB5C5, 0x8BCB, 0xB5C6, 0x8BCC, 0xB5C7, 0x8BCD, 0xB5C8, 0x8BCE, 0xB5C9, 0x8BCF, 0xB5CA, 0x8BD0, 0xB5CB, 0x8BD1, + 0xB5CC, 0xB6C0, 0xB5CD, 0xB6C1, 0xB5CE, 0x8BD2, 0xB5CF, 0xB6C2, 0xB5D0, 0xB6C3, 0xB5D1, 0xB6C4, 0xB5D2, 0x8BD3, 0xB5D3, 0x8BD4, + 0xB5D4, 0x8BD5, 0xB5D5, 0x8BD6, 0xB5D6, 0x8BD7, 0xB5D7, 0x8BD8, 0xB5D8, 0xB6C5, 0xB5D9, 0x8BD9, 0xB5DA, 0x8BDA, 0xB5DB, 0x8BDB, + 0xB5DC, 0x8BDC, 0xB5DD, 0x8BDD, 0xB5DE, 0x8BDE, 0xB5DF, 0x8BDF, 0xB5E0, 0x8BE0, 0xB5E1, 0x8BE1, 0xB5E2, 0x8BE2, 0xB5E3, 0x8BE3, + 0xB5E4, 0x8BE4, 0xB5E5, 0x8BE5, 0xB5E6, 0x8BE6, 0xB5E7, 0x8BE7, 0xB5E8, 0x8BE8, 0xB5E9, 0x8BE9, 0xB5EA, 0x8BEA, 0xB5EB, 0x8BEB, + 0xB5EC, 0xB6C6, 0xB5ED, 0x8BEC, 0xB5EE, 0x8BED, 0xB5EF, 0x8BEE, 0xB5F0, 0x8BEF, 0xB5F1, 0x8BF0, 0xB5F2, 0x8BF1, 0xB5F3, 0x8BF2, + 0xB5F4, 0x8BF3, 0xB5F5, 0x8BF4, 0xB5F6, 0x8BF5, 0xB5F7, 0x8BF6, 0xB5F8, 0x8BF7, 0xB5F9, 0x8BF8, 0xB5FA, 0x8BF9, 0xB5FB, 0x8BFA, + 0xB5FC, 0x8BFB, 0xB5FD, 0x8BFC, 0xB5FE, 0x8BFD, 0xB5FF, 0x8BFE, 0xB600, 0x8C41, 0xB601, 0x8C42, 0xB602, 0x8C43, 0xB603, 0x8C44, + 0xB604, 0x8C45, 0xB605, 0x8C46, 0xB606, 0x8C47, 0xB607, 0x8C48, 0xB608, 0x8C49, 0xB609, 0x8C4A, 0xB60A, 0x8C4B, 0xB60B, 0x8C4C, + 0xB60C, 0x8C4D, 0xB60D, 0x8C4E, 0xB60E, 0x8C4F, 0xB60F, 0x8C50, 0xB610, 0xB6C7, 0xB611, 0xB6C8, 0xB612, 0x8C51, 0xB613, 0x8C52, + 0xB614, 0xB6C9, 0xB615, 0x8C53, 0xB616, 0x8C54, 0xB617, 0x8C55, 0xB618, 0xB6CA, 0xB619, 0x8C56, 0xB61A, 0x8C57, 0xB61B, 0x8C58, + 0xB61C, 0x8C59, 0xB61D, 0x8C5A, 0xB61E, 0x8C61, 0xB61F, 0x8C62, 0xB620, 0x8C63, 0xB621, 0x8C64, 0xB622, 0x8C65, 0xB623, 0x8C66, + 0xB624, 0x8C67, 0xB625, 0xB6CB, 0xB626, 0x8C68, 0xB627, 0x8C69, 0xB628, 0x8C6A, 0xB629, 0x8C6B, 0xB62A, 0x8C6C, 0xB62B, 0x8C6D, + 0xB62C, 0xB6CC, 0xB62D, 0x8C6E, 0xB62E, 0x8C6F, 0xB62F, 0x8C70, 0xB630, 0x8C71, 0xB631, 0x8C72, 0xB632, 0x8C73, 0xB633, 0x8C74, + 0xB634, 0xB6CD, 0xB635, 0x8C75, 0xB636, 0x8C76, 0xB637, 0x8C77, 0xB638, 0x8C78, 0xB639, 0x8C79, 0xB63A, 0x8C7A, 0xB63B, 0x8C81, + 0xB63C, 0x8C82, 0xB63D, 0x8C83, 0xB63E, 0x8C84, 0xB63F, 0x8C85, 0xB640, 0x8C86, 0xB641, 0x8C87, 0xB642, 0x8C88, 0xB643, 0x8C89, + 0xB644, 0x8C8A, 0xB645, 0x8C8B, 0xB646, 0x8C8C, 0xB647, 0x8C8D, 0xB648, 0xB6CE, 0xB649, 0x8C8E, 0xB64A, 0x8C8F, 0xB64B, 0x8C90, + 0xB64C, 0x8C91, 0xB64D, 0x8C92, 0xB64E, 0x8C93, 0xB64F, 0x8C94, 0xB650, 0x8C95, 0xB651, 0x8C96, 0xB652, 0x8C97, 0xB653, 0x8C98, + 0xB654, 0x8C99, 0xB655, 0x8C9A, 0xB656, 0x8C9B, 0xB657, 0x8C9C, 0xB658, 0x8C9D, 0xB659, 0x8C9E, 0xB65A, 0x8C9F, 0xB65B, 0x8CA0, + 0xB65C, 0x8CA1, 0xB65D, 0x8CA2, 0xB65E, 0x8CA3, 0xB65F, 0x8CA4, 0xB660, 0x8CA5, 0xB661, 0x8CA6, 0xB662, 0x8CA7, 0xB663, 0x8CA8, + 0xB664, 0xB6CF, 0xB665, 0x8CA9, 0xB666, 0x8CAA, 0xB667, 0x8CAB, 0xB668, 0xB6D0, 0xB669, 0x8CAC, 0xB66A, 0x8CAD, 0xB66B, 0x8CAE, + 0xB66C, 0x8CAF, 0xB66D, 0x8CB0, 0xB66E, 0x8CB1, 0xB66F, 0x8CB2, 0xB670, 0x8CB3, 0xB671, 0x8CB4, 0xB672, 0x8CB5, 0xB673, 0x8CB6, + 0xB674, 0x8CB7, 0xB675, 0x8CB8, 0xB676, 0x8CB9, 0xB677, 0x8CBA, 0xB678, 0x8CBB, 0xB679, 0x8CBC, 0xB67A, 0x8CBD, 0xB67B, 0x8CBE, + 0xB67C, 0x8CBF, 0xB67D, 0x8CC0, 0xB67E, 0x8CC1, 0xB67F, 0x8CC2, 0xB680, 0x8CC3, 0xB681, 0x8CC4, 0xB682, 0x8CC5, 0xB683, 0x8CC6, + 0xB684, 0x8CC7, 0xB685, 0x8CC8, 0xB686, 0x8CC9, 0xB687, 0x8CCA, 0xB688, 0x8CCB, 0xB689, 0x8CCC, 0xB68A, 0x8CCD, 0xB68B, 0x8CCE, + 0xB68C, 0x8CCF, 0xB68D, 0x8CD0, 0xB68E, 0x8CD1, 0xB68F, 0x8CD2, 0xB690, 0x8CD3, 0xB691, 0x8CD4, 0xB692, 0x8CD5, 0xB693, 0x8CD6, + 0xB694, 0x8CD7, 0xB695, 0x8CD8, 0xB696, 0x8CD9, 0xB697, 0x8CDA, 0xB698, 0x8CDB, 0xB699, 0x8CDC, 0xB69A, 0x8CDD, 0xB69B, 0x8CDE, + 0xB69C, 0xB6D1, 0xB69D, 0xB6D2, 0xB69E, 0x8CDF, 0xB69F, 0x8CE0, 0xB6A0, 0xB6D3, 0xB6A1, 0x8CE1, 0xB6A2, 0x8CE2, 0xB6A3, 0x8CE3, + 0xB6A4, 0xB6D4, 0xB6A5, 0x8CE4, 0xB6A6, 0x8CE5, 0xB6A7, 0x8CE6, 0xB6A8, 0x8CE7, 0xB6A9, 0x8CE8, 0xB6AA, 0x8CE9, 0xB6AB, 0xB6D5, + 0xB6AC, 0xB6D6, 0xB6AD, 0x8CEA, 0xB6AE, 0x8CEB, 0xB6AF, 0x8CEC, 0xB6B0, 0x8CED, 0xB6B1, 0xB6D7, 0xB6B2, 0x8CEE, 0xB6B3, 0x8CEF, + 0xB6B4, 0x8CF0, 0xB6B5, 0x8CF1, 0xB6B6, 0x8CF2, 0xB6B7, 0x8CF3, 0xB6B8, 0x8CF4, 0xB6B9, 0x8CF5, 0xB6BA, 0x8CF6, 0xB6BB, 0x8CF7, + 0xB6BC, 0x8CF8, 0xB6BD, 0x8CF9, 0xB6BE, 0x8CFA, 0xB6BF, 0x8CFB, 0xB6C0, 0x8CFC, 0xB6C1, 0x8CFD, 0xB6C2, 0x8CFE, 0xB6C3, 0x8D41, + 0xB6C4, 0x8D42, 0xB6C5, 0x8D43, 0xB6C6, 0x8D44, 0xB6C7, 0x8D45, 0xB6C8, 0x8D46, 0xB6C9, 0x8D47, 0xB6CA, 0x8D48, 0xB6CB, 0x8D49, + 0xB6CC, 0x8D4A, 0xB6CD, 0x8D4B, 0xB6CE, 0x8D4C, 0xB6CF, 0x8D4D, 0xB6D0, 0x8D4E, 0xB6D1, 0x8D4F, 0xB6D2, 0x8D50, 0xB6D3, 0x8D51, + 0xB6D4, 0xB6D8, 0xB6D5, 0x8D52, 0xB6D6, 0x8D53, 0xB6D7, 0x8D54, 0xB6D8, 0x8D55, 0xB6D9, 0x8D56, 0xB6DA, 0x8D57, 0xB6DB, 0x8D58, + 0xB6DC, 0x8D59, 0xB6DD, 0x8D5A, 0xB6DE, 0x8D61, 0xB6DF, 0x8D62, 0xB6E0, 0x8D63, 0xB6E1, 0x8D64, 0xB6E2, 0x8D65, 0xB6E3, 0x8D66, + 0xB6E4, 0x8D67, 0xB6E5, 0x8D68, 0xB6E6, 0x8D69, 0xB6E7, 0x8D6A, 0xB6E8, 0x8D6B, 0xB6E9, 0x8D6C, 0xB6EA, 0x8D6D, 0xB6EB, 0x8D6E, + 0xB6EC, 0x8D6F, 0xB6ED, 0x8D70, 0xB6EE, 0x8D71, 0xB6EF, 0x8D72, 0xB6F0, 0xB6D9, 0xB6F1, 0x8D73, 0xB6F2, 0x8D74, 0xB6F3, 0x8D75, + 0xB6F4, 0xB6DA, 0xB6F5, 0x8D76, 0xB6F6, 0x8D77, 0xB6F7, 0x8D78, 0xB6F8, 0xB6DB, 0xB6F9, 0x8D79, 0xB6FA, 0x8D7A, 0xB6FB, 0x8D81, + 0xB6FC, 0x8D82, 0xB6FD, 0x8D83, 0xB6FE, 0x8D84, 0xB6FF, 0x8D85, 0xB700, 0xB6DC, 0xB701, 0xB6DD, 0xB702, 0x8D86, 0xB703, 0x8D87, + 0xB704, 0x8D88, 0xB705, 0xB6DE, 0xB706, 0x8D89, 0xB707, 0x8D8A, 0xB708, 0x8D8B, 0xB709, 0x8D8C, 0xB70A, 0x8D8D, 0xB70B, 0x8D8E, + 0xB70C, 0x8D8F, 0xB70D, 0x8D90, 0xB70E, 0x8D91, 0xB70F, 0x8D92, 0xB710, 0x8D93, 0xB711, 0x8D94, 0xB712, 0x8D95, 0xB713, 0x8D96, + 0xB714, 0x8D97, 0xB715, 0x8D98, 0xB716, 0x8D99, 0xB717, 0x8D9A, 0xB718, 0x8D9B, 0xB719, 0x8D9C, 0xB71A, 0x8D9D, 0xB71B, 0x8D9E, + 0xB71C, 0x8D9F, 0xB71D, 0x8DA0, 0xB71E, 0x8DA1, 0xB71F, 0x8DA2, 0xB720, 0x8DA3, 0xB721, 0x8DA4, 0xB722, 0x8DA5, 0xB723, 0x8DA6, + 0xB724, 0x8DA7, 0xB725, 0x8DA8, 0xB726, 0x8DA9, 0xB727, 0x8DAA, 0xB728, 0xB6DF, 0xB729, 0xB6E0, 0xB72A, 0x8DAB, 0xB72B, 0x8DAC, + 0xB72C, 0xB6E1, 0xB72D, 0x8DAD, 0xB72E, 0x8DAE, 0xB72F, 0xB6E2, 0xB730, 0xB6E3, 0xB731, 0x8DAF, 0xB732, 0x8DB0, 0xB733, 0x8DB1, + 0xB734, 0x8DB2, 0xB735, 0x8DB3, 0xB736, 0x8DB4, 0xB737, 0x8DB5, 0xB738, 0xB6E4, 0xB739, 0xB6E5, 0xB73A, 0x8DB6, 0xB73B, 0xB6E6, + 0xB73C, 0x8DB7, 0xB73D, 0x8DB8, 0xB73E, 0x8DB9, 0xB73F, 0x8DBA, 0xB740, 0x8DBB, 0xB741, 0x8DBC, 0xB742, 0x8DBD, 0xB743, 0x8DBE, + 0xB744, 0xB6E7, 0xB745, 0x8DBF, 0xB746, 0x8DC0, 0xB747, 0x8DC1, 0xB748, 0xB6E8, 0xB749, 0x8DC2, 0xB74A, 0x8DC3, 0xB74B, 0x8DC4, + 0xB74C, 0xB6E9, 0xB74D, 0x8DC5, 0xB74E, 0x8DC6, 0xB74F, 0x8DC7, 0xB750, 0x8DC8, 0xB751, 0x8DC9, 0xB752, 0x8DCA, 0xB753, 0x8DCB, + 0xB754, 0xB6EA, 0xB755, 0xB6EB, 0xB756, 0x8DCC, 0xB757, 0x8DCD, 0xB758, 0x8DCE, 0xB759, 0x8DCF, 0xB75A, 0x8DD0, 0xB75B, 0x8DD1, + 0xB75C, 0x8DD2, 0xB75D, 0x8DD3, 0xB75E, 0x8DD4, 0xB75F, 0x8DD5, 0xB760, 0xB6EC, 0xB761, 0x8DD6, 0xB762, 0x8DD7, 0xB763, 0x8DD8, + 0xB764, 0xB6ED, 0xB765, 0x8DD9, 0xB766, 0x8DDA, 0xB767, 0x8DDB, 0xB768, 0xB6EE, 0xB769, 0x8DDC, 0xB76A, 0x8DDD, 0xB76B, 0x8DDE, + 0xB76C, 0x8DDF, 0xB76D, 0x8DE0, 0xB76E, 0x8DE1, 0xB76F, 0x8DE2, 0xB770, 0xB6EF, 0xB771, 0xB6F0, 0xB772, 0x8DE3, 0xB773, 0xB6F1, + 0xB774, 0x8DE4, 0xB775, 0xB6F2, 0xB776, 0x8DE5, 0xB777, 0x8DE6, 0xB778, 0x8DE7, 0xB779, 0x8DE8, 0xB77A, 0x8DE9, 0xB77B, 0x8DEA, + 0xB77C, 0xB6F3, 0xB77D, 0xB6F4, 0xB77E, 0x8DEB, 0xB77F, 0x8DEC, 0xB780, 0xB6F5, 0xB781, 0x8DED, 0xB782, 0x8DEE, 0xB783, 0x8DEF, + 0xB784, 0xB6F6, 0xB785, 0x8DF0, 0xB786, 0x8DF1, 0xB787, 0x8DF2, 0xB788, 0x8DF3, 0xB789, 0x8DF4, 0xB78A, 0x8DF5, 0xB78B, 0x8DF6, + 0xB78C, 0xB6F7, 0xB78D, 0xB6F8, 0xB78E, 0x8DF7, 0xB78F, 0xB6F9, 0xB790, 0xB6FA, 0xB791, 0xB6FB, 0xB792, 0xB6FC, 0xB793, 0x8DF8, + 0xB794, 0x8DF9, 0xB795, 0x8DFA, 0xB796, 0xB6FD, 0xB797, 0xB6FE, 0xB798, 0xB7A1, 0xB799, 0xB7A2, 0xB79A, 0x8DFB, 0xB79B, 0x8DFC, + 0xB79C, 0xB7A3, 0xB79D, 0x8DFD, 0xB79E, 0x8DFE, 0xB79F, 0x8E41, 0xB7A0, 0xB7A4, 0xB7A1, 0x8E42, 0xB7A2, 0x8E43, 0xB7A3, 0x8E44, + 0xB7A4, 0x8E45, 0xB7A5, 0x8E46, 0xB7A6, 0x8E47, 0xB7A7, 0x8E48, 0xB7A8, 0xB7A5, 0xB7A9, 0xB7A6, 0xB7AA, 0x8E49, 0xB7AB, 0xB7A7, + 0xB7AC, 0xB7A8, 0xB7AD, 0xB7A9, 0xB7AE, 0x8E4A, 0xB7AF, 0x8E4B, 0xB7B0, 0x8E4C, 0xB7B1, 0x8E4D, 0xB7B2, 0x8E4E, 0xB7B3, 0x8E4F, + 0xB7B4, 0xB7AA, 0xB7B5, 0xB7AB, 0xB7B6, 0x8E50, 0xB7B7, 0x8E51, 0xB7B8, 0xB7AC, 0xB7B9, 0x8E52, 0xB7BA, 0x8E53, 0xB7BB, 0x8E54, + 0xB7BC, 0x8E55, 0xB7BD, 0x8E56, 0xB7BE, 0x8E57, 0xB7BF, 0x8E58, 0xB7C0, 0x8E59, 0xB7C1, 0x8E5A, 0xB7C2, 0x8E61, 0xB7C3, 0x8E62, + 0xB7C4, 0x8E63, 0xB7C5, 0x8E64, 0xB7C6, 0x8E65, 0xB7C7, 0xB7AD, 0xB7C8, 0x8E66, 0xB7C9, 0xB7AE, 0xB7CA, 0x8E67, 0xB7CB, 0x8E68, + 0xB7CC, 0x8E69, 0xB7CD, 0x8E6A, 0xB7CE, 0x8E6B, 0xB7CF, 0x8E6C, 0xB7D0, 0x8E6D, 0xB7D1, 0x8E6E, 0xB7D2, 0x8E6F, 0xB7D3, 0x8E70, + 0xB7D4, 0x8E71, 0xB7D5, 0x8E72, 0xB7D6, 0x8E73, 0xB7D7, 0x8E74, 0xB7D8, 0x8E75, 0xB7D9, 0x8E76, 0xB7DA, 0x8E77, 0xB7DB, 0x8E78, + 0xB7DC, 0x8E79, 0xB7DD, 0x8E7A, 0xB7DE, 0x8E81, 0xB7DF, 0x8E82, 0xB7E0, 0x8E83, 0xB7E1, 0x8E84, 0xB7E2, 0x8E85, 0xB7E3, 0x8E86, + 0xB7E4, 0x8E87, 0xB7E5, 0x8E88, 0xB7E6, 0x8E89, 0xB7E7, 0x8E8A, 0xB7E8, 0x8E8B, 0xB7E9, 0x8E8C, 0xB7EA, 0x8E8D, 0xB7EB, 0x8E8E, + 0xB7EC, 0xB7AF, 0xB7ED, 0xB7B0, 0xB7EE, 0x8E8F, 0xB7EF, 0x8E90, 0xB7F0, 0xB7B1, 0xB7F1, 0x8E91, 0xB7F2, 0x8E92, 0xB7F3, 0x8E93, + 0xB7F4, 0xB7B2, 0xB7F5, 0x8E94, 0xB7F6, 0x8E95, 0xB7F7, 0x8E96, 0xB7F8, 0x8E97, 0xB7F9, 0x8E98, 0xB7FA, 0x8E99, 0xB7FB, 0x8E9A, + 0xB7FC, 0xB7B3, 0xB7FD, 0xB7B4, 0xB7FE, 0x8E9B, 0xB7FF, 0xB7B5, 0xB800, 0xB7B6, 0xB801, 0xB7B7, 0xB802, 0x8E9C, 0xB803, 0x8E9D, + 0xB804, 0x8E9E, 0xB805, 0x8E9F, 0xB806, 0x8EA0, 0xB807, 0xB7B8, 0xB808, 0xB7B9, 0xB809, 0xB7BA, 0xB80A, 0x8EA1, 0xB80B, 0x8EA2, + 0xB80C, 0xB7BB, 0xB80D, 0x8EA3, 0xB80E, 0x8EA4, 0xB80F, 0x8EA5, 0xB810, 0xB7BC, 0xB811, 0x8EA6, 0xB812, 0x8EA7, 0xB813, 0x8EA8, + 0xB814, 0x8EA9, 0xB815, 0x8EAA, 0xB816, 0x8EAB, 0xB817, 0x8EAC, 0xB818, 0xB7BD, 0xB819, 0xB7BE, 0xB81A, 0x8EAD, 0xB81B, 0xB7BF, + 0xB81C, 0x8EAE, 0xB81D, 0xB7C0, 0xB81E, 0x8EAF, 0xB81F, 0x8EB0, 0xB820, 0x8EB1, 0xB821, 0x8EB2, 0xB822, 0x8EB3, 0xB823, 0x8EB4, + 0xB824, 0xB7C1, 0xB825, 0xB7C2, 0xB826, 0x8EB5, 0xB827, 0x8EB6, 0xB828, 0xB7C3, 0xB829, 0x8EB7, 0xB82A, 0x8EB8, 0xB82B, 0x8EB9, + 0xB82C, 0xB7C4, 0xB82D, 0x8EBA, 0xB82E, 0x8EBB, 0xB82F, 0x8EBC, 0xB830, 0x8EBD, 0xB831, 0x8EBE, 0xB832, 0x8EBF, 0xB833, 0x8EC0, + 0xB834, 0xB7C5, 0xB835, 0xB7C6, 0xB836, 0x8EC1, 0xB837, 0xB7C7, 0xB838, 0xB7C8, 0xB839, 0xB7C9, 0xB83A, 0x8EC2, 0xB83B, 0x8EC3, + 0xB83C, 0x8EC4, 0xB83D, 0x8EC5, 0xB83E, 0x8EC6, 0xB83F, 0x8EC7, 0xB840, 0xB7CA, 0xB841, 0x8EC8, 0xB842, 0x8EC9, 0xB843, 0x8ECA, + 0xB844, 0xB7CB, 0xB845, 0x8ECB, 0xB846, 0x8ECC, 0xB847, 0x8ECD, 0xB848, 0x8ECE, 0xB849, 0x8ECF, 0xB84A, 0x8ED0, 0xB84B, 0x8ED1, + 0xB84C, 0x8ED2, 0xB84D, 0x8ED3, 0xB84E, 0x8ED4, 0xB84F, 0x8ED5, 0xB850, 0x8ED6, 0xB851, 0xB7CC, 0xB852, 0x8ED7, 0xB853, 0xB7CD, + 0xB854, 0x8ED8, 0xB855, 0x8ED9, 0xB856, 0x8EDA, 0xB857, 0x8EDB, 0xB858, 0x8EDC, 0xB859, 0x8EDD, 0xB85A, 0x8EDE, 0xB85B, 0x8EDF, + 0xB85C, 0xB7CE, 0xB85D, 0xB7CF, 0xB85E, 0x8EE0, 0xB85F, 0x8EE1, 0xB860, 0xB7D0, 0xB861, 0x8EE2, 0xB862, 0x8EE3, 0xB863, 0x8EE4, + 0xB864, 0xB7D1, 0xB865, 0x8EE5, 0xB866, 0x8EE6, 0xB867, 0x8EE7, 0xB868, 0x8EE8, 0xB869, 0x8EE9, 0xB86A, 0x8EEA, 0xB86B, 0x8EEB, + 0xB86C, 0xB7D2, 0xB86D, 0xB7D3, 0xB86E, 0x8EEC, 0xB86F, 0xB7D4, 0xB870, 0x8EED, 0xB871, 0xB7D5, 0xB872, 0x8EEE, 0xB873, 0x8EEF, + 0xB874, 0x8EF0, 0xB875, 0x8EF1, 0xB876, 0x8EF2, 0xB877, 0x8EF3, 0xB878, 0xB7D6, 0xB879, 0x8EF4, 0xB87A, 0x8EF5, 0xB87B, 0x8EF6, + 0xB87C, 0xB7D7, 0xB87D, 0x8EF7, 0xB87E, 0x8EF8, 0xB87F, 0x8EF9, 0xB880, 0x8EFA, 0xB881, 0x8EFB, 0xB882, 0x8EFC, 0xB883, 0x8EFD, + 0xB884, 0x8EFE, 0xB885, 0x8F41, 0xB886, 0x8F42, 0xB887, 0x8F43, 0xB888, 0x8F44, 0xB889, 0x8F45, 0xB88A, 0x8F46, 0xB88B, 0x8F47, + 0xB88C, 0x8F48, 0xB88D, 0xB7D8, 0xB88E, 0x8F49, 0xB88F, 0x8F4A, 0xB890, 0x8F4B, 0xB891, 0x8F4C, 0xB892, 0x8F4D, 0xB893, 0x8F4E, + 0xB894, 0x8F4F, 0xB895, 0x8F50, 0xB896, 0x8F51, 0xB897, 0x8F52, 0xB898, 0x8F53, 0xB899, 0x8F54, 0xB89A, 0x8F55, 0xB89B, 0x8F56, + 0xB89C, 0x8F57, 0xB89D, 0x8F58, 0xB89E, 0x8F59, 0xB89F, 0x8F5A, 0xB8A0, 0x8F61, 0xB8A1, 0x8F62, 0xB8A2, 0x8F63, 0xB8A3, 0x8F64, + 0xB8A4, 0x8F65, 0xB8A5, 0x8F66, 0xB8A6, 0x8F67, 0xB8A7, 0x8F68, 0xB8A8, 0xB7D9, 0xB8A9, 0x8F69, 0xB8AA, 0x8F6A, 0xB8AB, 0x8F6B, + 0xB8AC, 0x8F6C, 0xB8AD, 0x8F6D, 0xB8AE, 0x8F6E, 0xB8AF, 0x8F6F, 0xB8B0, 0xB7DA, 0xB8B1, 0x8F70, 0xB8B2, 0x8F71, 0xB8B3, 0x8F72, + 0xB8B4, 0xB7DB, 0xB8B5, 0x8F73, 0xB8B6, 0x8F74, 0xB8B7, 0x8F75, 0xB8B8, 0xB7DC, 0xB8B9, 0x8F76, 0xB8BA, 0x8F77, 0xB8BB, 0x8F78, + 0xB8BC, 0x8F79, 0xB8BD, 0x8F7A, 0xB8BE, 0x8F81, 0xB8BF, 0x8F82, 0xB8C0, 0xB7DD, 0xB8C1, 0xB7DE, 0xB8C2, 0x8F83, 0xB8C3, 0xB7DF, + 0xB8C4, 0x8F84, 0xB8C5, 0xB7E0, 0xB8C6, 0x8F85, 0xB8C7, 0x8F86, 0xB8C8, 0x8F87, 0xB8C9, 0x8F88, 0xB8CA, 0x8F89, 0xB8CB, 0x8F8A, + 0xB8CC, 0xB7E1, 0xB8CD, 0x8F8B, 0xB8CE, 0x8F8C, 0xB8CF, 0x8F8D, 0xB8D0, 0xB7E2, 0xB8D1, 0x8F8E, 0xB8D2, 0x8F8F, 0xB8D3, 0x8F90, + 0xB8D4, 0xB7E3, 0xB8D5, 0x8F91, 0xB8D6, 0x8F92, 0xB8D7, 0x8F93, 0xB8D8, 0x8F94, 0xB8D9, 0x8F95, 0xB8DA, 0x8F96, 0xB8DB, 0x8F97, + 0xB8DC, 0x8F98, 0xB8DD, 0xB7E4, 0xB8DE, 0x8F99, 0xB8DF, 0xB7E5, 0xB8E0, 0x8F9A, 0xB8E1, 0xB7E6, 0xB8E2, 0x8F9B, 0xB8E3, 0x8F9C, + 0xB8E4, 0x8F9D, 0xB8E5, 0x8F9E, 0xB8E6, 0x8F9F, 0xB8E7, 0x8FA0, 0xB8E8, 0xB7E7, 0xB8E9, 0xB7E8, 0xB8EA, 0x8FA1, 0xB8EB, 0x8FA2, + 0xB8EC, 0xB7E9, 0xB8ED, 0x8FA3, 0xB8EE, 0x8FA4, 0xB8EF, 0x8FA5, 0xB8F0, 0xB7EA, 0xB8F1, 0x8FA6, 0xB8F2, 0x8FA7, 0xB8F3, 0x8FA8, + 0xB8F4, 0x8FA9, 0xB8F5, 0x8FAA, 0xB8F6, 0x8FAB, 0xB8F7, 0x8FAC, 0xB8F8, 0xB7EB, 0xB8F9, 0xB7EC, 0xB8FA, 0x8FAD, 0xB8FB, 0xB7ED, + 0xB8FC, 0x8FAE, 0xB8FD, 0xB7EE, 0xB8FE, 0x8FAF, 0xB8FF, 0x8FB0, 0xB900, 0x8FB1, 0xB901, 0x8FB2, 0xB902, 0x8FB3, 0xB903, 0x8FB4, + 0xB904, 0xB7EF, 0xB905, 0x8FB5, 0xB906, 0x8FB6, 0xB907, 0x8FB7, 0xB908, 0x8FB8, 0xB909, 0x8FB9, 0xB90A, 0x8FBA, 0xB90B, 0x8FBB, + 0xB90C, 0x8FBC, 0xB90D, 0x8FBD, 0xB90E, 0x8FBE, 0xB90F, 0x8FBF, 0xB910, 0x8FC0, 0xB911, 0x8FC1, 0xB912, 0x8FC2, 0xB913, 0x8FC3, + 0xB914, 0x8FC4, 0xB915, 0x8FC5, 0xB916, 0x8FC6, 0xB917, 0x8FC7, 0xB918, 0xB7F0, 0xB919, 0x8FC8, 0xB91A, 0x8FC9, 0xB91B, 0x8FCA, + 0xB91C, 0x8FCB, 0xB91D, 0x8FCC, 0xB91E, 0x8FCD, 0xB91F, 0x8FCE, 0xB920, 0xB7F1, 0xB921, 0x8FCF, 0xB922, 0x8FD0, 0xB923, 0x8FD1, + 0xB924, 0x8FD2, 0xB925, 0x8FD3, 0xB926, 0x8FD4, 0xB927, 0x8FD5, 0xB928, 0x8FD6, 0xB929, 0x8FD7, 0xB92A, 0x8FD8, 0xB92B, 0x8FD9, + 0xB92C, 0x8FDA, 0xB92D, 0x8FDB, 0xB92E, 0x8FDC, 0xB92F, 0x8FDD, 0xB930, 0x8FDE, 0xB931, 0x8FDF, 0xB932, 0x8FE0, 0xB933, 0x8FE1, + 0xB934, 0x8FE2, 0xB935, 0x8FE3, 0xB936, 0x8FE4, 0xB937, 0x8FE5, 0xB938, 0x8FE6, 0xB939, 0x8FE7, 0xB93A, 0x8FE8, 0xB93B, 0x8FE9, + 0xB93C, 0xB7F2, 0xB93D, 0xB7F3, 0xB93E, 0x8FEA, 0xB93F, 0x8FEB, 0xB940, 0xB7F4, 0xB941, 0x8FEC, 0xB942, 0x8FED, 0xB943, 0x8FEE, + 0xB944, 0xB7F5, 0xB945, 0x8FEF, 0xB946, 0x8FF0, 0xB947, 0x8FF1, 0xB948, 0x8FF2, 0xB949, 0x8FF3, 0xB94A, 0x8FF4, 0xB94B, 0x8FF5, + 0xB94C, 0xB7F6, 0xB94D, 0x8FF6, 0xB94E, 0x8FF7, 0xB94F, 0xB7F7, 0xB950, 0x8FF8, 0xB951, 0xB7F8, 0xB952, 0x8FF9, 0xB953, 0x8FFA, + 0xB954, 0x8FFB, 0xB955, 0x8FFC, 0xB956, 0x8FFD, 0xB957, 0x8FFE, 0xB958, 0xB7F9, 0xB959, 0xB7FA, 0xB95A, 0x9041, 0xB95B, 0x9042, + 0xB95C, 0xB7FB, 0xB95D, 0x9043, 0xB95E, 0x9044, 0xB95F, 0x9045, 0xB960, 0xB7FC, 0xB961, 0x9046, 0xB962, 0x9047, 0xB963, 0x9048, + 0xB964, 0x9049, 0xB965, 0x904A, 0xB966, 0x904B, 0xB967, 0x904C, 0xB968, 0xB7FD, 0xB969, 0xB7FE, 0xB96A, 0x904D, 0xB96B, 0xB8A1, + 0xB96C, 0x904E, 0xB96D, 0xB8A2, 0xB96E, 0x904F, 0xB96F, 0x9050, 0xB970, 0x9051, 0xB971, 0x9052, 0xB972, 0x9053, 0xB973, 0x9054, + 0xB974, 0xB8A3, 0xB975, 0xB8A4, 0xB976, 0x9055, 0xB977, 0x9056, 0xB978, 0xB8A5, 0xB979, 0x9057, 0xB97A, 0x9058, 0xB97B, 0x9059, + 0xB97C, 0xB8A6, 0xB97D, 0x905A, 0xB97E, 0x9061, 0xB97F, 0x9062, 0xB980, 0x9063, 0xB981, 0x9064, 0xB982, 0x9065, 0xB983, 0x9066, + 0xB984, 0xB8A7, 0xB985, 0xB8A8, 0xB986, 0x9067, 0xB987, 0xB8A9, 0xB988, 0x9068, 0xB989, 0xB8AA, 0xB98A, 0xB8AB, 0xB98B, 0x9069, + 0xB98C, 0x906A, 0xB98D, 0xB8AC, 0xB98E, 0xB8AD, 0xB98F, 0x906B, 0xB990, 0x906C, 0xB991, 0x906D, 0xB992, 0x906E, 0xB993, 0x906F, + 0xB994, 0x9070, 0xB995, 0x9071, 0xB996, 0x9072, 0xB997, 0x9073, 0xB998, 0x9074, 0xB999, 0x9075, 0xB99A, 0x9076, 0xB99B, 0x9077, + 0xB99C, 0x9078, 0xB99D, 0x9079, 0xB99E, 0x907A, 0xB99F, 0x9081, 0xB9A0, 0x9082, 0xB9A1, 0x9083, 0xB9A2, 0x9084, 0xB9A3, 0x9085, + 0xB9A4, 0x9086, 0xB9A5, 0x9087, 0xB9A6, 0x9088, 0xB9A7, 0x9089, 0xB9A8, 0x908A, 0xB9A9, 0x908B, 0xB9AA, 0x908C, 0xB9AB, 0x908D, + 0xB9AC, 0xB8AE, 0xB9AD, 0xB8AF, 0xB9AE, 0x908E, 0xB9AF, 0x908F, 0xB9B0, 0xB8B0, 0xB9B1, 0x9090, 0xB9B2, 0x9091, 0xB9B3, 0x9092, + 0xB9B4, 0xB8B1, 0xB9B5, 0x9093, 0xB9B6, 0x9094, 0xB9B7, 0x9095, 0xB9B8, 0x9096, 0xB9B9, 0x9097, 0xB9BA, 0x9098, 0xB9BB, 0x9099, + 0xB9BC, 0xB8B2, 0xB9BD, 0xB8B3, 0xB9BE, 0x909A, 0xB9BF, 0xB8B4, 0xB9C0, 0x909B, 0xB9C1, 0xB8B5, 0xB9C2, 0x909C, 0xB9C3, 0x909D, + 0xB9C4, 0x909E, 0xB9C5, 0x909F, 0xB9C6, 0x90A0, 0xB9C7, 0x90A1, 0xB9C8, 0xB8B6, 0xB9C9, 0xB8B7, 0xB9CA, 0x90A2, 0xB9CB, 0x90A3, + 0xB9CC, 0xB8B8, 0xB9CD, 0x90A4, 0xB9CE, 0xB8B9, 0xB9CF, 0xB8BA, 0xB9D0, 0xB8BB, 0xB9D1, 0xB8BC, 0xB9D2, 0xB8BD, 0xB9D3, 0x90A5, + 0xB9D4, 0x90A6, 0xB9D5, 0x90A7, 0xB9D6, 0x90A8, 0xB9D7, 0x90A9, 0xB9D8, 0xB8BE, 0xB9D9, 0xB8BF, 0xB9DA, 0x90AA, 0xB9DB, 0xB8C0, + 0xB9DC, 0x90AB, 0xB9DD, 0xB8C1, 0xB9DE, 0xB8C2, 0xB9DF, 0x90AC, 0xB9E0, 0x90AD, 0xB9E1, 0xB8C3, 0xB9E2, 0x90AE, 0xB9E3, 0xB8C4, + 0xB9E4, 0xB8C5, 0xB9E5, 0xB8C6, 0xB9E6, 0x90AF, 0xB9E7, 0x90B0, 0xB9E8, 0xB8C7, 0xB9E9, 0x90B1, 0xB9EA, 0x90B2, 0xB9EB, 0x90B3, + 0xB9EC, 0xB8C8, 0xB9ED, 0x90B4, 0xB9EE, 0x90B5, 0xB9EF, 0x90B6, 0xB9F0, 0x90B7, 0xB9F1, 0x90B8, 0xB9F2, 0x90B9, 0xB9F3, 0x90BA, + 0xB9F4, 0xB8C9, 0xB9F5, 0xB8CA, 0xB9F6, 0x90BB, 0xB9F7, 0xB8CB, 0xB9F8, 0xB8CC, 0xB9F9, 0xB8CD, 0xB9FA, 0xB8CE, 0xB9FB, 0x90BC, + 0xB9FC, 0x90BD, 0xB9FD, 0x90BE, 0xB9FE, 0x90BF, 0xB9FF, 0x90C0, 0xBA00, 0xB8CF, 0xBA01, 0xB8D0, 0xBA02, 0x90C1, 0xBA03, 0x90C2, + 0xBA04, 0x90C3, 0xBA05, 0x90C4, 0xBA06, 0x90C5, 0xBA07, 0x90C6, 0xBA08, 0xB8D1, 0xBA09, 0x90C7, 0xBA0A, 0x90C8, 0xBA0B, 0x90C9, + 0xBA0C, 0x90CA, 0xBA0D, 0x90CB, 0xBA0E, 0x90CC, 0xBA0F, 0x90CD, 0xBA10, 0x90CE, 0xBA11, 0x90CF, 0xBA12, 0x90D0, 0xBA13, 0x90D1, + 0xBA14, 0x90D2, 0xBA15, 0xB8D2, 0xBA16, 0x90D3, 0xBA17, 0x90D4, 0xBA18, 0x90D5, 0xBA19, 0x90D6, 0xBA1A, 0x90D7, 0xBA1B, 0x90D8, + 0xBA1C, 0x90D9, 0xBA1D, 0x90DA, 0xBA1E, 0x90DB, 0xBA1F, 0x90DC, 0xBA20, 0x90DD, 0xBA21, 0x90DE, 0xBA22, 0x90DF, 0xBA23, 0x90E0, + 0xBA24, 0x90E1, 0xBA25, 0x90E2, 0xBA26, 0x90E3, 0xBA27, 0x90E4, 0xBA28, 0x90E5, 0xBA29, 0x90E6, 0xBA2A, 0x90E7, 0xBA2B, 0x90E8, + 0xBA2C, 0x90E9, 0xBA2D, 0x90EA, 0xBA2E, 0x90EB, 0xBA2F, 0x90EC, 0xBA30, 0x90ED, 0xBA31, 0x90EE, 0xBA32, 0x90EF, 0xBA33, 0x90F0, + 0xBA34, 0x90F1, 0xBA35, 0x90F2, 0xBA36, 0x90F3, 0xBA37, 0x90F4, 0xBA38, 0xB8D3, 0xBA39, 0xB8D4, 0xBA3A, 0x90F5, 0xBA3B, 0x90F6, + 0xBA3C, 0xB8D5, 0xBA3D, 0x90F7, 0xBA3E, 0x90F8, 0xBA3F, 0x90F9, 0xBA40, 0xB8D6, 0xBA41, 0x90FA, 0xBA42, 0xB8D7, 0xBA43, 0x90FB, + 0xBA44, 0x90FC, 0xBA45, 0x90FD, 0xBA46, 0x90FE, 0xBA47, 0x9141, 0xBA48, 0xB8D8, 0xBA49, 0xB8D9, 0xBA4A, 0x9142, 0xBA4B, 0xB8DA, + 0xBA4C, 0x9143, 0xBA4D, 0xB8DB, 0xBA4E, 0xB8DC, 0xBA4F, 0x9144, 0xBA50, 0x9145, 0xBA51, 0x9146, 0xBA52, 0x9147, 0xBA53, 0xB8DD, + 0xBA54, 0xB8DE, 0xBA55, 0xB8DF, 0xBA56, 0x9148, 0xBA57, 0x9149, 0xBA58, 0xB8E0, 0xBA59, 0x914A, 0xBA5A, 0x914B, 0xBA5B, 0x914C, + 0xBA5C, 0xB8E1, 0xBA5D, 0x914D, 0xBA5E, 0x914E, 0xBA5F, 0x914F, 0xBA60, 0x9150, 0xBA61, 0x9151, 0xBA62, 0x9152, 0xBA63, 0x9153, + 0xBA64, 0xB8E2, 0xBA65, 0xB8E3, 0xBA66, 0x9154, 0xBA67, 0xB8E4, 0xBA68, 0xB8E5, 0xBA69, 0xB8E6, 0xBA6A, 0x9155, 0xBA6B, 0x9156, + 0xBA6C, 0x9157, 0xBA6D, 0x9158, 0xBA6E, 0x9159, 0xBA6F, 0x915A, 0xBA70, 0xB8E7, 0xBA71, 0xB8E8, 0xBA72, 0x9161, 0xBA73, 0x9162, + 0xBA74, 0xB8E9, 0xBA75, 0x9163, 0xBA76, 0x9164, 0xBA77, 0x9165, 0xBA78, 0xB8EA, 0xBA79, 0x9166, 0xBA7A, 0x9167, 0xBA7B, 0x9168, + 0xBA7C, 0x9169, 0xBA7D, 0x916A, 0xBA7E, 0x916B, 0xBA7F, 0x916C, 0xBA80, 0x916D, 0xBA81, 0x916E, 0xBA82, 0x916F, 0xBA83, 0xB8EB, + 0xBA84, 0xB8EC, 0xBA85, 0xB8ED, 0xBA86, 0x9170, 0xBA87, 0xB8EE, 0xBA88, 0x9171, 0xBA89, 0x9172, 0xBA8A, 0x9173, 0xBA8B, 0x9174, + 0xBA8C, 0xB8EF, 0xBA8D, 0x9175, 0xBA8E, 0x9176, 0xBA8F, 0x9177, 0xBA90, 0x9178, 0xBA91, 0x9179, 0xBA92, 0x917A, 0xBA93, 0x9181, + 0xBA94, 0x9182, 0xBA95, 0x9183, 0xBA96, 0x9184, 0xBA97, 0x9185, 0xBA98, 0x9186, 0xBA99, 0x9187, 0xBA9A, 0x9188, 0xBA9B, 0x9189, + 0xBA9C, 0x918A, 0xBA9D, 0x918B, 0xBA9E, 0x918C, 0xBA9F, 0x918D, 0xBAA0, 0x918E, 0xBAA1, 0x918F, 0xBAA2, 0x9190, 0xBAA3, 0x9191, + 0xBAA4, 0x9192, 0xBAA5, 0x9193, 0xBAA6, 0x9194, 0xBAA7, 0x9195, 0xBAA8, 0xB8F0, 0xBAA9, 0xB8F1, 0xBAAA, 0x9196, 0xBAAB, 0xB8F2, + 0xBAAC, 0xB8F3, 0xBAAD, 0x9197, 0xBAAE, 0x9198, 0xBAAF, 0x9199, 0xBAB0, 0xB8F4, 0xBAB1, 0x919A, 0xBAB2, 0xB8F5, 0xBAB3, 0x919B, + 0xBAB4, 0x919C, 0xBAB5, 0x919D, 0xBAB6, 0x919E, 0xBAB7, 0x919F, 0xBAB8, 0xB8F6, 0xBAB9, 0xB8F7, 0xBABA, 0x91A0, 0xBABB, 0xB8F8, + 0xBABC, 0x91A1, 0xBABD, 0xB8F9, 0xBABE, 0x91A2, 0xBABF, 0x91A3, 0xBAC0, 0x91A4, 0xBAC1, 0x91A5, 0xBAC2, 0x91A6, 0xBAC3, 0x91A7, + 0xBAC4, 0xB8FA, 0xBAC5, 0x91A8, 0xBAC6, 0x91A9, 0xBAC7, 0x91AA, 0xBAC8, 0xB8FB, 0xBAC9, 0x91AB, 0xBACA, 0x91AC, 0xBACB, 0x91AD, + 0xBACC, 0x91AE, 0xBACD, 0x91AF, 0xBACE, 0x91B0, 0xBACF, 0x91B1, 0xBAD0, 0x91B2, 0xBAD1, 0x91B3, 0xBAD2, 0x91B4, 0xBAD3, 0x91B5, + 0xBAD4, 0x91B6, 0xBAD5, 0x91B7, 0xBAD6, 0x91B8, 0xBAD7, 0x91B9, 0xBAD8, 0xB8FC, 0xBAD9, 0xB8FD, 0xBADA, 0x91BA, 0xBADB, 0x91BB, + 0xBADC, 0x91BC, 0xBADD, 0x91BD, 0xBADE, 0x91BE, 0xBADF, 0x91BF, 0xBAE0, 0x91C0, 0xBAE1, 0x91C1, 0xBAE2, 0x91C2, 0xBAE3, 0x91C3, + 0xBAE4, 0x91C4, 0xBAE5, 0x91C5, 0xBAE6, 0x91C6, 0xBAE7, 0x91C7, 0xBAE8, 0x91C8, 0xBAE9, 0x91C9, 0xBAEA, 0x91CA, 0xBAEB, 0x91CB, + 0xBAEC, 0x91CC, 0xBAED, 0x91CD, 0xBAEE, 0x91CE, 0xBAEF, 0x91CF, 0xBAF0, 0x91D0, 0xBAF1, 0x91D1, 0xBAF2, 0x91D2, 0xBAF3, 0x91D3, + 0xBAF4, 0x91D4, 0xBAF5, 0x91D5, 0xBAF6, 0x91D6, 0xBAF7, 0x91D7, 0xBAF8, 0x91D8, 0xBAF9, 0x91D9, 0xBAFA, 0x91DA, 0xBAFB, 0x91DB, + 0xBAFC, 0xB8FE, 0xBAFD, 0x91DC, 0xBAFE, 0x91DD, 0xBAFF, 0x91DE, 0xBB00, 0xB9A1, 0xBB01, 0x91DF, 0xBB02, 0x91E0, 0xBB03, 0x91E1, + 0xBB04, 0xB9A2, 0xBB05, 0x91E2, 0xBB06, 0x91E3, 0xBB07, 0x91E4, 0xBB08, 0x91E5, 0xBB09, 0x91E6, 0xBB0A, 0x91E7, 0xBB0B, 0x91E8, + 0xBB0C, 0x91E9, 0xBB0D, 0xB9A3, 0xBB0E, 0x91EA, 0xBB0F, 0xB9A4, 0xBB10, 0x91EB, 0xBB11, 0xB9A5, 0xBB12, 0x91EC, 0xBB13, 0x91ED, + 0xBB14, 0x91EE, 0xBB15, 0x91EF, 0xBB16, 0x91F0, 0xBB17, 0x91F1, 0xBB18, 0xB9A6, 0xBB19, 0x91F2, 0xBB1A, 0x91F3, 0xBB1B, 0x91F4, + 0xBB1C, 0xB9A7, 0xBB1D, 0x91F5, 0xBB1E, 0x91F6, 0xBB1F, 0x91F7, 0xBB20, 0xB9A8, 0xBB21, 0x91F8, 0xBB22, 0x91F9, 0xBB23, 0x91FA, + 0xBB24, 0x91FB, 0xBB25, 0x91FC, 0xBB26, 0x91FD, 0xBB27, 0x91FE, 0xBB28, 0x9241, 0xBB29, 0xB9A9, 0xBB2A, 0x9242, 0xBB2B, 0xB9AA, + 0xBB2C, 0x9243, 0xBB2D, 0x9244, 0xBB2E, 0x9245, 0xBB2F, 0x9246, 0xBB30, 0x9247, 0xBB31, 0x9248, 0xBB32, 0x9249, 0xBB33, 0x924A, + 0xBB34, 0xB9AB, 0xBB35, 0xB9AC, 0xBB36, 0xB9AD, 0xBB37, 0x924B, 0xBB38, 0xB9AE, 0xBB39, 0x924C, 0xBB3A, 0x924D, 0xBB3B, 0xB9AF, + 0xBB3C, 0xB9B0, 0xBB3D, 0xB9B1, 0xBB3E, 0xB9B2, 0xBB3F, 0x924E, 0xBB40, 0x924F, 0xBB41, 0x9250, 0xBB42, 0x9251, 0xBB43, 0x9252, + 0xBB44, 0xB9B3, 0xBB45, 0xB9B4, 0xBB46, 0x9253, 0xBB47, 0xB9B5, 0xBB48, 0x9254, 0xBB49, 0xB9B6, 0xBB4A, 0x9255, 0xBB4B, 0x9256, + 0xBB4C, 0x9257, 0xBB4D, 0xB9B7, 0xBB4E, 0x9258, 0xBB4F, 0xB9B8, 0xBB50, 0xB9B9, 0xBB51, 0x9259, 0xBB52, 0x925A, 0xBB53, 0x9261, + 0xBB54, 0xB9BA, 0xBB55, 0x9262, 0xBB56, 0x9263, 0xBB57, 0x9264, 0xBB58, 0xB9BB, 0xBB59, 0x9265, 0xBB5A, 0x9266, 0xBB5B, 0x9267, + 0xBB5C, 0x9268, 0xBB5D, 0x9269, 0xBB5E, 0x926A, 0xBB5F, 0x926B, 0xBB60, 0x926C, 0xBB61, 0xB9BC, 0xBB62, 0x926D, 0xBB63, 0xB9BD, + 0xBB64, 0x926E, 0xBB65, 0x926F, 0xBB66, 0x9270, 0xBB67, 0x9271, 0xBB68, 0x9272, 0xBB69, 0x9273, 0xBB6A, 0x9274, 0xBB6B, 0x9275, + 0xBB6C, 0xB9BE, 0xBB6D, 0x9276, 0xBB6E, 0x9277, 0xBB6F, 0x9278, 0xBB70, 0x9279, 0xBB71, 0x927A, 0xBB72, 0x9281, 0xBB73, 0x9282, + 0xBB74, 0x9283, 0xBB75, 0x9284, 0xBB76, 0x9285, 0xBB77, 0x9286, 0xBB78, 0x9287, 0xBB79, 0x9288, 0xBB7A, 0x9289, 0xBB7B, 0x928A, + 0xBB7C, 0x928B, 0xBB7D, 0x928C, 0xBB7E, 0x928D, 0xBB7F, 0x928E, 0xBB80, 0x928F, 0xBB81, 0x9290, 0xBB82, 0x9291, 0xBB83, 0x9292, + 0xBB84, 0x9293, 0xBB85, 0x9294, 0xBB86, 0x9295, 0xBB87, 0x9296, 0xBB88, 0xB9BF, 0xBB89, 0x9297, 0xBB8A, 0x9298, 0xBB8B, 0x9299, + 0xBB8C, 0xB9C0, 0xBB8D, 0x929A, 0xBB8E, 0x929B, 0xBB8F, 0x929C, 0xBB90, 0xB9C1, 0xBB91, 0x929D, 0xBB92, 0x929E, 0xBB93, 0x929F, + 0xBB94, 0x92A0, 0xBB95, 0x92A1, 0xBB96, 0x92A2, 0xBB97, 0x92A3, 0xBB98, 0x92A4, 0xBB99, 0x92A5, 0xBB9A, 0x92A6, 0xBB9B, 0x92A7, + 0xBB9C, 0x92A8, 0xBB9D, 0x92A9, 0xBB9E, 0x92AA, 0xBB9F, 0x92AB, 0xBBA0, 0x92AC, 0xBBA1, 0x92AD, 0xBBA2, 0x92AE, 0xBBA3, 0x92AF, + 0xBBA4, 0xB9C2, 0xBBA5, 0x92B0, 0xBBA6, 0x92B1, 0xBBA7, 0x92B2, 0xBBA8, 0xB9C3, 0xBBA9, 0x92B3, 0xBBAA, 0x92B4, 0xBBAB, 0x92B5, + 0xBBAC, 0xB9C4, 0xBBAD, 0x92B6, 0xBBAE, 0x92B7, 0xBBAF, 0x92B8, 0xBBB0, 0x92B9, 0xBBB1, 0x92BA, 0xBBB2, 0x92BB, 0xBBB3, 0x92BC, + 0xBBB4, 0xB9C5, 0xBBB5, 0x92BD, 0xBBB6, 0x92BE, 0xBBB7, 0xB9C6, 0xBBB8, 0x92BF, 0xBBB9, 0x92C0, 0xBBBA, 0x92C1, 0xBBBB, 0x92C2, + 0xBBBC, 0x92C3, 0xBBBD, 0x92C4, 0xBBBE, 0x92C5, 0xBBBF, 0x92C6, 0xBBC0, 0xB9C7, 0xBBC1, 0x92C7, 0xBBC2, 0x92C8, 0xBBC3, 0x92C9, + 0xBBC4, 0xB9C8, 0xBBC5, 0x92CA, 0xBBC6, 0x92CB, 0xBBC7, 0x92CC, 0xBBC8, 0xB9C9, 0xBBC9, 0x92CD, 0xBBCA, 0x92CE, 0xBBCB, 0x92CF, + 0xBBCC, 0x92D0, 0xBBCD, 0x92D1, 0xBBCE, 0x92D2, 0xBBCF, 0x92D3, 0xBBD0, 0xB9CA, 0xBBD1, 0x92D4, 0xBBD2, 0x92D5, 0xBBD3, 0xB9CB, + 0xBBD4, 0x92D6, 0xBBD5, 0x92D7, 0xBBD6, 0x92D8, 0xBBD7, 0x92D9, 0xBBD8, 0x92DA, 0xBBD9, 0x92DB, 0xBBDA, 0x92DC, 0xBBDB, 0x92DD, + 0xBBDC, 0x92DE, 0xBBDD, 0x92DF, 0xBBDE, 0x92E0, 0xBBDF, 0x92E1, 0xBBE0, 0x92E2, 0xBBE1, 0x92E3, 0xBBE2, 0x92E4, 0xBBE3, 0x92E5, + 0xBBE4, 0x92E6, 0xBBE5, 0x92E7, 0xBBE6, 0x92E8, 0xBBE7, 0x92E9, 0xBBE8, 0x92EA, 0xBBE9, 0x92EB, 0xBBEA, 0x92EC, 0xBBEB, 0x92ED, + 0xBBEC, 0x92EE, 0xBBED, 0x92EF, 0xBBEE, 0x92F0, 0xBBEF, 0x92F1, 0xBBF0, 0x92F2, 0xBBF1, 0x92F3, 0xBBF2, 0x92F4, 0xBBF3, 0x92F5, + 0xBBF4, 0x92F6, 0xBBF5, 0x92F7, 0xBBF6, 0x92F8, 0xBBF7, 0x92F9, 0xBBF8, 0xB9CC, 0xBBF9, 0xB9CD, 0xBBFA, 0x92FA, 0xBBFB, 0x92FB, + 0xBBFC, 0xB9CE, 0xBBFD, 0x92FC, 0xBBFE, 0x92FD, 0xBBFF, 0xB9CF, 0xBC00, 0xB9D0, 0xBC01, 0x92FE, 0xBC02, 0xB9D1, 0xBC03, 0x9341, + 0xBC04, 0x9342, 0xBC05, 0x9343, 0xBC06, 0x9344, 0xBC07, 0x9345, 0xBC08, 0xB9D2, 0xBC09, 0xB9D3, 0xBC0A, 0x9346, 0xBC0B, 0xB9D4, + 0xBC0C, 0xB9D5, 0xBC0D, 0xB9D6, 0xBC0E, 0x9347, 0xBC0F, 0xB9D7, 0xBC10, 0x9348, 0xBC11, 0xB9D8, 0xBC12, 0x9349, 0xBC13, 0x934A, + 0xBC14, 0xB9D9, 0xBC15, 0xB9DA, 0xBC16, 0xB9DB, 0xBC17, 0xB9DC, 0xBC18, 0xB9DD, 0xBC19, 0x934B, 0xBC1A, 0x934C, 0xBC1B, 0xB9DE, + 0xBC1C, 0xB9DF, 0xBC1D, 0xB9E0, 0xBC1E, 0xB9E1, 0xBC1F, 0xB9E2, 0xBC20, 0x934D, 0xBC21, 0x934E, 0xBC22, 0x934F, 0xBC23, 0x9350, + 0xBC24, 0xB9E3, 0xBC25, 0xB9E4, 0xBC26, 0x9351, 0xBC27, 0xB9E5, 0xBC28, 0x9352, 0xBC29, 0xB9E6, 0xBC2A, 0x9353, 0xBC2B, 0x9354, + 0xBC2C, 0x9355, 0xBC2D, 0xB9E7, 0xBC2E, 0x9356, 0xBC2F, 0x9357, 0xBC30, 0xB9E8, 0xBC31, 0xB9E9, 0xBC32, 0x9358, 0xBC33, 0x9359, + 0xBC34, 0xB9EA, 0xBC35, 0x935A, 0xBC36, 0x9361, 0xBC37, 0x9362, 0xBC38, 0xB9EB, 0xBC39, 0x9363, 0xBC3A, 0x9364, 0xBC3B, 0x9365, + 0xBC3C, 0x9366, 0xBC3D, 0x9367, 0xBC3E, 0x9368, 0xBC3F, 0x9369, 0xBC40, 0xB9EC, 0xBC41, 0xB9ED, 0xBC42, 0x936A, 0xBC43, 0xB9EE, + 0xBC44, 0xB9EF, 0xBC45, 0xB9F0, 0xBC46, 0x936B, 0xBC47, 0x936C, 0xBC48, 0x936D, 0xBC49, 0xB9F1, 0xBC4A, 0x936E, 0xBC4B, 0x936F, + 0xBC4C, 0xB9F2, 0xBC4D, 0xB9F3, 0xBC4E, 0x9370, 0xBC4F, 0x9371, 0xBC50, 0xB9F4, 0xBC51, 0x9372, 0xBC52, 0x9373, 0xBC53, 0x9374, + 0xBC54, 0x9375, 0xBC55, 0x9376, 0xBC56, 0x9377, 0xBC57, 0x9378, 0xBC58, 0x9379, 0xBC59, 0x937A, 0xBC5A, 0x9381, 0xBC5B, 0x9382, + 0xBC5C, 0x9383, 0xBC5D, 0xB9F5, 0xBC5E, 0x9384, 0xBC5F, 0x9385, 0xBC60, 0x9386, 0xBC61, 0x9387, 0xBC62, 0x9388, 0xBC63, 0x9389, + 0xBC64, 0x938A, 0xBC65, 0x938B, 0xBC66, 0x938C, 0xBC67, 0x938D, 0xBC68, 0x938E, 0xBC69, 0x938F, 0xBC6A, 0x9390, 0xBC6B, 0x9391, + 0xBC6C, 0x9392, 0xBC6D, 0x9393, 0xBC6E, 0x9394, 0xBC6F, 0x9395, 0xBC70, 0x9396, 0xBC71, 0x9397, 0xBC72, 0x9398, 0xBC73, 0x9399, + 0xBC74, 0x939A, 0xBC75, 0x939B, 0xBC76, 0x939C, 0xBC77, 0x939D, 0xBC78, 0x939E, 0xBC79, 0x939F, 0xBC7A, 0x93A0, 0xBC7B, 0x93A1, + 0xBC7C, 0x93A2, 0xBC7D, 0x93A3, 0xBC7E, 0x93A4, 0xBC7F, 0x93A5, 0xBC80, 0x93A6, 0xBC81, 0x93A7, 0xBC82, 0x93A8, 0xBC83, 0x93A9, + 0xBC84, 0xB9F6, 0xBC85, 0xB9F7, 0xBC86, 0x93AA, 0xBC87, 0x93AB, 0xBC88, 0xB9F8, 0xBC89, 0x93AC, 0xBC8A, 0x93AD, 0xBC8B, 0xB9F9, + 0xBC8C, 0xB9FA, 0xBC8D, 0x93AE, 0xBC8E, 0xB9FB, 0xBC8F, 0x93AF, 0xBC90, 0x93B0, 0xBC91, 0x93B1, 0xBC92, 0x93B2, 0xBC93, 0x93B3, + 0xBC94, 0xB9FC, 0xBC95, 0xB9FD, 0xBC96, 0x93B4, 0xBC97, 0xB9FE, 0xBC98, 0x93B5, 0xBC99, 0xBAA1, 0xBC9A, 0xBAA2, 0xBC9B, 0x93B6, + 0xBC9C, 0x93B7, 0xBC9D, 0x93B8, 0xBC9E, 0x93B9, 0xBC9F, 0x93BA, 0xBCA0, 0xBAA3, 0xBCA1, 0xBAA4, 0xBCA2, 0x93BB, 0xBCA3, 0x93BC, + 0xBCA4, 0xBAA5, 0xBCA5, 0x93BD, 0xBCA6, 0x93BE, 0xBCA7, 0xBAA6, 0xBCA8, 0xBAA7, 0xBCA9, 0x93BF, 0xBCAA, 0x93C0, 0xBCAB, 0x93C1, + 0xBCAC, 0x93C2, 0xBCAD, 0x93C3, 0xBCAE, 0x93C4, 0xBCAF, 0x93C5, 0xBCB0, 0xBAA8, 0xBCB1, 0xBAA9, 0xBCB2, 0x93C6, 0xBCB3, 0xBAAA, + 0xBCB4, 0xBAAB, 0xBCB5, 0xBAAC, 0xBCB6, 0x93C7, 0xBCB7, 0x93C8, 0xBCB8, 0x93C9, 0xBCB9, 0x93CA, 0xBCBA, 0x93CB, 0xBCBB, 0x93CC, + 0xBCBC, 0xBAAD, 0xBCBD, 0xBAAE, 0xBCBE, 0x93CD, 0xBCBF, 0x93CE, 0xBCC0, 0xBAAF, 0xBCC1, 0x93CF, 0xBCC2, 0x93D0, 0xBCC3, 0x93D1, + 0xBCC4, 0xBAB0, 0xBCC5, 0x93D2, 0xBCC6, 0x93D3, 0xBCC7, 0x93D4, 0xBCC8, 0x93D5, 0xBCC9, 0x93D6, 0xBCCA, 0x93D7, 0xBCCB, 0x93D8, + 0xBCCC, 0x93D9, 0xBCCD, 0xBAB1, 0xBCCE, 0x93DA, 0xBCCF, 0xBAB2, 0xBCD0, 0xBAB3, 0xBCD1, 0xBAB4, 0xBCD2, 0x93DB, 0xBCD3, 0x93DC, + 0xBCD4, 0x93DD, 0xBCD5, 0xBAB5, 0xBCD6, 0x93DE, 0xBCD7, 0x93DF, 0xBCD8, 0xBAB6, 0xBCD9, 0x93E0, 0xBCDA, 0x93E1, 0xBCDB, 0x93E2, + 0xBCDC, 0xBAB7, 0xBCDD, 0x93E3, 0xBCDE, 0x93E4, 0xBCDF, 0x93E5, 0xBCE0, 0x93E6, 0xBCE1, 0x93E7, 0xBCE2, 0x93E8, 0xBCE3, 0x93E9, + 0xBCE4, 0x93EA, 0xBCE5, 0x93EB, 0xBCE6, 0x93EC, 0xBCE7, 0x93ED, 0xBCE8, 0x93EE, 0xBCE9, 0x93EF, 0xBCEA, 0x93F0, 0xBCEB, 0x93F1, + 0xBCEC, 0x93F2, 0xBCED, 0x93F3, 0xBCEE, 0x93F4, 0xBCEF, 0x93F5, 0xBCF0, 0x93F6, 0xBCF1, 0x93F7, 0xBCF2, 0x93F8, 0xBCF3, 0x93F9, + 0xBCF4, 0xBAB8, 0xBCF5, 0xBAB9, 0xBCF6, 0xBABA, 0xBCF7, 0x93FA, 0xBCF8, 0xBABB, 0xBCF9, 0x93FB, 0xBCFA, 0x93FC, 0xBCFB, 0x93FD, + 0xBCFC, 0xBABC, 0xBCFD, 0x93FE, 0xBCFE, 0x9441, 0xBCFF, 0x9442, 0xBD00, 0x9443, 0xBD01, 0x9444, 0xBD02, 0x9445, 0xBD03, 0x9446, + 0xBD04, 0xBABD, 0xBD05, 0xBABE, 0xBD06, 0x9447, 0xBD07, 0xBABF, 0xBD08, 0x9448, 0xBD09, 0xBAC0, 0xBD0A, 0x9449, 0xBD0B, 0x944A, + 0xBD0C, 0x944B, 0xBD0D, 0x944C, 0xBD0E, 0x944D, 0xBD0F, 0x944E, 0xBD10, 0xBAC1, 0xBD11, 0x944F, 0xBD12, 0x9450, 0xBD13, 0x9451, + 0xBD14, 0xBAC2, 0xBD15, 0x9452, 0xBD16, 0x9453, 0xBD17, 0x9454, 0xBD18, 0x9455, 0xBD19, 0x9456, 0xBD1A, 0x9457, 0xBD1B, 0x9458, + 0xBD1C, 0x9459, 0xBD1D, 0x945A, 0xBD1E, 0x9461, 0xBD1F, 0x9462, 0xBD20, 0x9463, 0xBD21, 0x9464, 0xBD22, 0x9465, 0xBD23, 0x9466, + 0xBD24, 0xBAC3, 0xBD25, 0x9467, 0xBD26, 0x9468, 0xBD27, 0x9469, 0xBD28, 0x946A, 0xBD29, 0x946B, 0xBD2A, 0x946C, 0xBD2B, 0x946D, + 0xBD2C, 0xBAC4, 0xBD2D, 0x946E, 0xBD2E, 0x946F, 0xBD2F, 0x9470, 0xBD30, 0x9471, 0xBD31, 0x9472, 0xBD32, 0x9473, 0xBD33, 0x9474, + 0xBD34, 0x9475, 0xBD35, 0x9476, 0xBD36, 0x9477, 0xBD37, 0x9478, 0xBD38, 0x9479, 0xBD39, 0x947A, 0xBD3A, 0x9481, 0xBD3B, 0x9482, + 0xBD3C, 0x9483, 0xBD3D, 0x9484, 0xBD3E, 0x9485, 0xBD3F, 0x9486, 0xBD40, 0xBAC5, 0xBD41, 0x9487, 0xBD42, 0x9488, 0xBD43, 0x9489, + 0xBD44, 0x948A, 0xBD45, 0x948B, 0xBD46, 0x948C, 0xBD47, 0x948D, 0xBD48, 0xBAC6, 0xBD49, 0xBAC7, 0xBD4A, 0x948E, 0xBD4B, 0x948F, + 0xBD4C, 0xBAC8, 0xBD4D, 0x9490, 0xBD4E, 0x9491, 0xBD4F, 0x9492, 0xBD50, 0xBAC9, 0xBD51, 0x9493, 0xBD52, 0x9494, 0xBD53, 0x9495, + 0xBD54, 0x9496, 0xBD55, 0x9497, 0xBD56, 0x9498, 0xBD57, 0x9499, 0xBD58, 0xBACA, 0xBD59, 0xBACB, 0xBD5A, 0x949A, 0xBD5B, 0x949B, + 0xBD5C, 0x949C, 0xBD5D, 0x949D, 0xBD5E, 0x949E, 0xBD5F, 0x949F, 0xBD60, 0x94A0, 0xBD61, 0x94A1, 0xBD62, 0x94A2, 0xBD63, 0x94A3, + 0xBD64, 0xBACC, 0xBD65, 0x94A4, 0xBD66, 0x94A5, 0xBD67, 0x94A6, 0xBD68, 0xBACD, 0xBD69, 0x94A7, 0xBD6A, 0x94A8, 0xBD6B, 0x94A9, + 0xBD6C, 0x94AA, 0xBD6D, 0x94AB, 0xBD6E, 0x94AC, 0xBD6F, 0x94AD, 0xBD70, 0x94AE, 0xBD71, 0x94AF, 0xBD72, 0x94B0, 0xBD73, 0x94B1, + 0xBD74, 0x94B2, 0xBD75, 0x94B3, 0xBD76, 0x94B4, 0xBD77, 0x94B5, 0xBD78, 0x94B6, 0xBD79, 0x94B7, 0xBD7A, 0x94B8, 0xBD7B, 0x94B9, + 0xBD7C, 0x94BA, 0xBD7D, 0x94BB, 0xBD7E, 0x94BC, 0xBD7F, 0x94BD, 0xBD80, 0xBACE, 0xBD81, 0xBACF, 0xBD82, 0x94BE, 0xBD83, 0x94BF, + 0xBD84, 0xBAD0, 0xBD85, 0x94C0, 0xBD86, 0x94C1, 0xBD87, 0xBAD1, 0xBD88, 0xBAD2, 0xBD89, 0xBAD3, 0xBD8A, 0xBAD4, 0xBD8B, 0x94C2, + 0xBD8C, 0x94C3, 0xBD8D, 0x94C4, 0xBD8E, 0x94C5, 0xBD8F, 0x94C6, 0xBD90, 0xBAD5, 0xBD91, 0xBAD6, 0xBD92, 0x94C7, 0xBD93, 0xBAD7, + 0xBD94, 0x94C8, 0xBD95, 0xBAD8, 0xBD96, 0x94C9, 0xBD97, 0x94CA, 0xBD98, 0x94CB, 0xBD99, 0xBAD9, 0xBD9A, 0xBADA, 0xBD9B, 0x94CC, + 0xBD9C, 0xBADB, 0xBD9D, 0x94CD, 0xBD9E, 0x94CE, 0xBD9F, 0x94CF, 0xBDA0, 0x94D0, 0xBDA1, 0x94D1, 0xBDA2, 0x94D2, 0xBDA3, 0x94D3, + 0xBDA4, 0xBADC, 0xBDA5, 0x94D4, 0xBDA6, 0x94D5, 0xBDA7, 0x94D6, 0xBDA8, 0x94D7, 0xBDA9, 0x94D8, 0xBDAA, 0x94D9, 0xBDAB, 0x94DA, + 0xBDAC, 0x94DB, 0xBDAD, 0x94DC, 0xBDAE, 0x94DD, 0xBDAF, 0x94DE, 0xBDB0, 0xBADD, 0xBDB1, 0x94DF, 0xBDB2, 0x94E0, 0xBDB3, 0x94E1, + 0xBDB4, 0x94E2, 0xBDB5, 0x94E3, 0xBDB6, 0x94E4, 0xBDB7, 0x94E5, 0xBDB8, 0xBADE, 0xBDB9, 0x94E6, 0xBDBA, 0x94E7, 0xBDBB, 0x94E8, + 0xBDBC, 0x94E9, 0xBDBD, 0x94EA, 0xBDBE, 0x94EB, 0xBDBF, 0x94EC, 0xBDC0, 0x94ED, 0xBDC1, 0x94EE, 0xBDC2, 0x94EF, 0xBDC3, 0x94F0, + 0xBDC4, 0x94F1, 0xBDC5, 0x94F2, 0xBDC6, 0x94F3, 0xBDC7, 0x94F4, 0xBDC8, 0x94F5, 0xBDC9, 0x94F6, 0xBDCA, 0x94F7, 0xBDCB, 0x94F8, + 0xBDCC, 0x94F9, 0xBDCD, 0x94FA, 0xBDCE, 0x94FB, 0xBDCF, 0x94FC, 0xBDD0, 0x94FD, 0xBDD1, 0x94FE, 0xBDD2, 0x9541, 0xBDD3, 0x9542, + 0xBDD4, 0xBADF, 0xBDD5, 0xBAE0, 0xBDD6, 0x9543, 0xBDD7, 0x9544, 0xBDD8, 0xBAE1, 0xBDD9, 0x9545, 0xBDDA, 0x9546, 0xBDDB, 0x9547, + 0xBDDC, 0xBAE2, 0xBDDD, 0x9548, 0xBDDE, 0x9549, 0xBDDF, 0x954A, 0xBDE0, 0x954B, 0xBDE1, 0x954C, 0xBDE2, 0x954D, 0xBDE3, 0x954E, + 0xBDE4, 0x954F, 0xBDE5, 0x9550, 0xBDE6, 0x9551, 0xBDE7, 0x9552, 0xBDE8, 0x9553, 0xBDE9, 0xBAE3, 0xBDEA, 0x9554, 0xBDEB, 0x9555, + 0xBDEC, 0x9556, 0xBDED, 0x9557, 0xBDEE, 0x9558, 0xBDEF, 0x9559, 0xBDF0, 0xBAE4, 0xBDF1, 0x955A, 0xBDF2, 0x9561, 0xBDF3, 0x9562, + 0xBDF4, 0xBAE5, 0xBDF5, 0x9563, 0xBDF6, 0x9564, 0xBDF7, 0x9565, 0xBDF8, 0xBAE6, 0xBDF9, 0x9566, 0xBDFA, 0x9567, 0xBDFB, 0x9568, + 0xBDFC, 0x9569, 0xBDFD, 0x956A, 0xBDFE, 0x956B, 0xBDFF, 0x956C, 0xBE00, 0xBAE7, 0xBE01, 0x956D, 0xBE02, 0x956E, 0xBE03, 0xBAE8, + 0xBE04, 0x956F, 0xBE05, 0xBAE9, 0xBE06, 0x9570, 0xBE07, 0x9571, 0xBE08, 0x9572, 0xBE09, 0x9573, 0xBE0A, 0x9574, 0xBE0B, 0x9575, + 0xBE0C, 0xBAEA, 0xBE0D, 0xBAEB, 0xBE0E, 0x9576, 0xBE0F, 0x9577, 0xBE10, 0xBAEC, 0xBE11, 0x9578, 0xBE12, 0x9579, 0xBE13, 0x957A, + 0xBE14, 0xBAED, 0xBE15, 0x9581, 0xBE16, 0x9582, 0xBE17, 0x9583, 0xBE18, 0x9584, 0xBE19, 0x9585, 0xBE1A, 0x9586, 0xBE1B, 0x9587, + 0xBE1C, 0xBAEE, 0xBE1D, 0xBAEF, 0xBE1E, 0x9588, 0xBE1F, 0xBAF0, 0xBE20, 0x9589, 0xBE21, 0x958A, 0xBE22, 0x958B, 0xBE23, 0x958C, + 0xBE24, 0x958D, 0xBE25, 0x958E, 0xBE26, 0x958F, 0xBE27, 0x9590, 0xBE28, 0x9591, 0xBE29, 0x9592, 0xBE2A, 0x9593, 0xBE2B, 0x9594, + 0xBE2C, 0x9595, 0xBE2D, 0x9596, 0xBE2E, 0x9597, 0xBE2F, 0x9598, 0xBE30, 0x9599, 0xBE31, 0x959A, 0xBE32, 0x959B, 0xBE33, 0x959C, + 0xBE34, 0x959D, 0xBE35, 0x959E, 0xBE36, 0x959F, 0xBE37, 0x95A0, 0xBE38, 0x95A1, 0xBE39, 0x95A2, 0xBE3A, 0x95A3, 0xBE3B, 0x95A4, + 0xBE3C, 0x95A5, 0xBE3D, 0x95A6, 0xBE3E, 0x95A7, 0xBE3F, 0x95A8, 0xBE40, 0x95A9, 0xBE41, 0x95AA, 0xBE42, 0x95AB, 0xBE43, 0x95AC, + 0xBE44, 0xBAF1, 0xBE45, 0xBAF2, 0xBE46, 0x95AD, 0xBE47, 0x95AE, 0xBE48, 0xBAF3, 0xBE49, 0x95AF, 0xBE4A, 0x95B0, 0xBE4B, 0x95B1, + 0xBE4C, 0xBAF4, 0xBE4D, 0x95B2, 0xBE4E, 0xBAF5, 0xBE4F, 0x95B3, 0xBE50, 0x95B4, 0xBE51, 0x95B5, 0xBE52, 0x95B6, 0xBE53, 0x95B7, + 0xBE54, 0xBAF6, 0xBE55, 0xBAF7, 0xBE56, 0x95B8, 0xBE57, 0xBAF8, 0xBE58, 0x95B9, 0xBE59, 0xBAF9, 0xBE5A, 0xBAFA, 0xBE5B, 0xBAFB, + 0xBE5C, 0x95BA, 0xBE5D, 0x95BB, 0xBE5E, 0x95BC, 0xBE5F, 0x95BD, 0xBE60, 0xBAFC, 0xBE61, 0xBAFD, 0xBE62, 0x95BE, 0xBE63, 0x95BF, + 0xBE64, 0xBAFE, 0xBE65, 0x95C0, 0xBE66, 0x95C1, 0xBE67, 0x95C2, 0xBE68, 0xBBA1, 0xBE69, 0x95C3, 0xBE6A, 0xBBA2, 0xBE6B, 0x95C4, + 0xBE6C, 0x95C5, 0xBE6D, 0x95C6, 0xBE6E, 0x95C7, 0xBE6F, 0x95C8, 0xBE70, 0xBBA3, 0xBE71, 0xBBA4, 0xBE72, 0x95C9, 0xBE73, 0xBBA5, + 0xBE74, 0xBBA6, 0xBE75, 0xBBA7, 0xBE76, 0x95CA, 0xBE77, 0x95CB, 0xBE78, 0x95CC, 0xBE79, 0x95CD, 0xBE7A, 0x95CE, 0xBE7B, 0xBBA8, + 0xBE7C, 0xBBA9, 0xBE7D, 0xBBAA, 0xBE7E, 0x95CF, 0xBE7F, 0x95D0, 0xBE80, 0xBBAB, 0xBE81, 0x95D1, 0xBE82, 0x95D2, 0xBE83, 0x95D3, + 0xBE84, 0xBBAC, 0xBE85, 0x95D4, 0xBE86, 0x95D5, 0xBE87, 0x95D6, 0xBE88, 0x95D7, 0xBE89, 0x95D8, 0xBE8A, 0x95D9, 0xBE8B, 0x95DA, + 0xBE8C, 0xBBAD, 0xBE8D, 0xBBAE, 0xBE8E, 0x95DB, 0xBE8F, 0xBBAF, 0xBE90, 0xBBB0, 0xBE91, 0xBBB1, 0xBE92, 0x95DC, 0xBE93, 0x95DD, + 0xBE94, 0x95DE, 0xBE95, 0x95DF, 0xBE96, 0x95E0, 0xBE97, 0x95E1, 0xBE98, 0xBBB2, 0xBE99, 0xBBB3, 0xBE9A, 0x95E2, 0xBE9B, 0x95E3, + 0xBE9C, 0x95E4, 0xBE9D, 0x95E5, 0xBE9E, 0x95E6, 0xBE9F, 0x95E7, 0xBEA0, 0x95E8, 0xBEA1, 0x95E9, 0xBEA2, 0x95EA, 0xBEA3, 0x95EB, + 0xBEA4, 0x95EC, 0xBEA5, 0x95ED, 0xBEA6, 0x95EE, 0xBEA7, 0x95EF, 0xBEA8, 0xBBB4, 0xBEA9, 0x95F0, 0xBEAA, 0x95F1, 0xBEAB, 0x95F2, + 0xBEAC, 0x95F3, 0xBEAD, 0x95F4, 0xBEAE, 0x95F5, 0xBEAF, 0x95F6, 0xBEB0, 0x95F7, 0xBEB1, 0x95F8, 0xBEB2, 0x95F9, 0xBEB3, 0x95FA, + 0xBEB4, 0x95FB, 0xBEB5, 0x95FC, 0xBEB6, 0x95FD, 0xBEB7, 0x95FE, 0xBEB8, 0x9641, 0xBEB9, 0x9642, 0xBEBA, 0x9643, 0xBEBB, 0x9644, + 0xBEBC, 0x9645, 0xBEBD, 0x9646, 0xBEBE, 0x9647, 0xBEBF, 0x9648, 0xBEC0, 0x9649, 0xBEC1, 0x964A, 0xBEC2, 0x964B, 0xBEC3, 0x964C, + 0xBEC4, 0x964D, 0xBEC5, 0x964E, 0xBEC6, 0x964F, 0xBEC7, 0x9650, 0xBEC8, 0x9651, 0xBEC9, 0x9652, 0xBECA, 0x9653, 0xBECB, 0x9654, + 0xBECC, 0x9655, 0xBECD, 0x9656, 0xBECE, 0x9657, 0xBECF, 0x9658, 0xBED0, 0xBBB5, 0xBED1, 0xBBB6, 0xBED2, 0x9659, 0xBED3, 0x965A, + 0xBED4, 0xBBB7, 0xBED5, 0x9661, 0xBED6, 0x9662, 0xBED7, 0xBBB8, 0xBED8, 0xBBB9, 0xBED9, 0x9663, 0xBEDA, 0x9664, 0xBEDB, 0x9665, + 0xBEDC, 0x9666, 0xBEDD, 0x9667, 0xBEDE, 0x9668, 0xBEDF, 0x9669, 0xBEE0, 0xBBBA, 0xBEE1, 0x966A, 0xBEE2, 0x966B, 0xBEE3, 0xBBBB, + 0xBEE4, 0xBBBC, 0xBEE5, 0xBBBD, 0xBEE6, 0x966C, 0xBEE7, 0x966D, 0xBEE8, 0x966E, 0xBEE9, 0x966F, 0xBEEA, 0x9670, 0xBEEB, 0x9671, + 0xBEEC, 0xBBBE, 0xBEED, 0x9672, 0xBEEE, 0x9673, 0xBEEF, 0x9674, 0xBEF0, 0x9675, 0xBEF1, 0x9676, 0xBEF2, 0x9677, 0xBEF3, 0x9678, + 0xBEF4, 0x9679, 0xBEF5, 0x967A, 0xBEF6, 0x9681, 0xBEF7, 0x9682, 0xBEF8, 0x9683, 0xBEF9, 0x9684, 0xBEFA, 0x9685, 0xBEFB, 0x9686, + 0xBEFC, 0x9687, 0xBEFD, 0x9688, 0xBEFE, 0x9689, 0xBEFF, 0x968A, 0xBF00, 0x968B, 0xBF01, 0xBBBF, 0xBF02, 0x968C, 0xBF03, 0x968D, + 0xBF04, 0x968E, 0xBF05, 0x968F, 0xBF06, 0x9690, 0xBF07, 0x9691, 0xBF08, 0xBBC0, 0xBF09, 0xBBC1, 0xBF0A, 0x9692, 0xBF0B, 0x9693, + 0xBF0C, 0x9694, 0xBF0D, 0x9695, 0xBF0E, 0x9696, 0xBF0F, 0x9697, 0xBF10, 0x9698, 0xBF11, 0x9699, 0xBF12, 0x969A, 0xBF13, 0x969B, + 0xBF14, 0x969C, 0xBF15, 0x969D, 0xBF16, 0x969E, 0xBF17, 0x969F, 0xBF18, 0xBBC2, 0xBF19, 0xBBC3, 0xBF1A, 0x96A0, 0xBF1B, 0xBBC4, + 0xBF1C, 0xBBC5, 0xBF1D, 0xBBC6, 0xBF1E, 0x96A1, 0xBF1F, 0x96A2, 0xBF20, 0x96A3, 0xBF21, 0x96A4, 0xBF22, 0x96A5, 0xBF23, 0x96A6, + 0xBF24, 0x96A7, 0xBF25, 0x96A8, 0xBF26, 0x96A9, 0xBF27, 0x96AA, 0xBF28, 0x96AB, 0xBF29, 0x96AC, 0xBF2A, 0x96AD, 0xBF2B, 0x96AE, + 0xBF2C, 0x96AF, 0xBF2D, 0x96B0, 0xBF2E, 0x96B1, 0xBF2F, 0x96B2, 0xBF30, 0x96B3, 0xBF31, 0x96B4, 0xBF32, 0x96B5, 0xBF33, 0x96B6, + 0xBF34, 0x96B7, 0xBF35, 0x96B8, 0xBF36, 0x96B9, 0xBF37, 0x96BA, 0xBF38, 0x96BB, 0xBF39, 0x96BC, 0xBF3A, 0x96BD, 0xBF3B, 0x96BE, + 0xBF3C, 0x96BF, 0xBF3D, 0x96C0, 0xBF3E, 0x96C1, 0xBF3F, 0x96C2, 0xBF40, 0xBBC7, 0xBF41, 0xBBC8, 0xBF42, 0x96C3, 0xBF43, 0x96C4, + 0xBF44, 0xBBC9, 0xBF45, 0x96C5, 0xBF46, 0x96C6, 0xBF47, 0x96C7, 0xBF48, 0xBBCA, 0xBF49, 0x96C8, 0xBF4A, 0x96C9, 0xBF4B, 0x96CA, + 0xBF4C, 0x96CB, 0xBF4D, 0x96CC, 0xBF4E, 0x96CD, 0xBF4F, 0x96CE, 0xBF50, 0xBBCB, 0xBF51, 0xBBCC, 0xBF52, 0x96CF, 0xBF53, 0x96D0, + 0xBF54, 0x96D1, 0xBF55, 0xBBCD, 0xBF56, 0x96D2, 0xBF57, 0x96D3, 0xBF58, 0x96D4, 0xBF59, 0x96D5, 0xBF5A, 0x96D6, 0xBF5B, 0x96D7, + 0xBF5C, 0x96D8, 0xBF5D, 0x96D9, 0xBF5E, 0x96DA, 0xBF5F, 0x96DB, 0xBF60, 0x96DC, 0xBF61, 0x96DD, 0xBF62, 0x96DE, 0xBF63, 0x96DF, + 0xBF64, 0x96E0, 0xBF65, 0x96E1, 0xBF66, 0x96E2, 0xBF67, 0x96E3, 0xBF68, 0x96E4, 0xBF69, 0x96E5, 0xBF6A, 0x96E6, 0xBF6B, 0x96E7, + 0xBF6C, 0x96E8, 0xBF6D, 0x96E9, 0xBF6E, 0x96EA, 0xBF6F, 0x96EB, 0xBF70, 0x96EC, 0xBF71, 0x96ED, 0xBF72, 0x96EE, 0xBF73, 0x96EF, + 0xBF74, 0x96F0, 0xBF75, 0x96F1, 0xBF76, 0x96F2, 0xBF77, 0x96F3, 0xBF78, 0x96F4, 0xBF79, 0x96F5, 0xBF7A, 0x96F6, 0xBF7B, 0x96F7, + 0xBF7C, 0x96F8, 0xBF7D, 0x96F9, 0xBF7E, 0x96FA, 0xBF7F, 0x96FB, 0xBF80, 0x96FC, 0xBF81, 0x96FD, 0xBF82, 0x96FE, 0xBF83, 0x9741, + 0xBF84, 0x9742, 0xBF85, 0x9743, 0xBF86, 0x9744, 0xBF87, 0x9745, 0xBF88, 0x9746, 0xBF89, 0x9747, 0xBF8A, 0x9748, 0xBF8B, 0x9749, + 0xBF8C, 0x974A, 0xBF8D, 0x974B, 0xBF8E, 0x974C, 0xBF8F, 0x974D, 0xBF90, 0x974E, 0xBF91, 0x974F, 0xBF92, 0x9750, 0xBF93, 0x9751, + 0xBF94, 0xBBCE, 0xBF95, 0x9752, 0xBF96, 0x9753, 0xBF97, 0x9754, 0xBF98, 0x9755, 0xBF99, 0x9756, 0xBF9A, 0x9757, 0xBF9B, 0x9758, + 0xBF9C, 0x9759, 0xBF9D, 0x975A, 0xBF9E, 0x9761, 0xBF9F, 0x9762, 0xBFA0, 0x9763, 0xBFA1, 0x9764, 0xBFA2, 0x9765, 0xBFA3, 0x9766, + 0xBFA4, 0x9767, 0xBFA5, 0x9768, 0xBFA6, 0x9769, 0xBFA7, 0x976A, 0xBFA8, 0x976B, 0xBFA9, 0x976C, 0xBFAA, 0x976D, 0xBFAB, 0x976E, + 0xBFAC, 0x976F, 0xBFAD, 0x9770, 0xBFAE, 0x9771, 0xBFAF, 0x9772, 0xBFB0, 0xBBCF, 0xBFB1, 0x9773, 0xBFB2, 0x9774, 0xBFB3, 0x9775, + 0xBFB4, 0x9776, 0xBFB5, 0x9777, 0xBFB6, 0x9778, 0xBFB7, 0x9779, 0xBFB8, 0x977A, 0xBFB9, 0x9781, 0xBFBA, 0x9782, 0xBFBB, 0x9783, + 0xBFBC, 0x9784, 0xBFBD, 0x9785, 0xBFBE, 0x9786, 0xBFBF, 0x9787, 0xBFC0, 0x9788, 0xBFC1, 0x9789, 0xBFC2, 0x978A, 0xBFC3, 0x978B, + 0xBFC4, 0x978C, 0xBFC5, 0xBBD0, 0xBFC6, 0x978D, 0xBFC7, 0x978E, 0xBFC8, 0x978F, 0xBFC9, 0x9790, 0xBFCA, 0x9791, 0xBFCB, 0x9792, + 0xBFCC, 0xBBD1, 0xBFCD, 0xBBD2, 0xBFCE, 0x9793, 0xBFCF, 0x9794, 0xBFD0, 0xBBD3, 0xBFD1, 0x9795, 0xBFD2, 0x9796, 0xBFD3, 0x9797, + 0xBFD4, 0xBBD4, 0xBFD5, 0x9798, 0xBFD6, 0x9799, 0xBFD7, 0x979A, 0xBFD8, 0x979B, 0xBFD9, 0x979C, 0xBFDA, 0x979D, 0xBFDB, 0x979E, + 0xBFDC, 0xBBD5, 0xBFDD, 0x979F, 0xBFDE, 0x97A0, 0xBFDF, 0xBBD6, 0xBFE0, 0x97A1, 0xBFE1, 0xBBD7, 0xBFE2, 0x97A2, 0xBFE3, 0x97A3, + 0xBFE4, 0x97A4, 0xBFE5, 0x97A5, 0xBFE6, 0x97A6, 0xBFE7, 0x97A7, 0xBFE8, 0x97A8, 0xBFE9, 0x97A9, 0xBFEA, 0x97AA, 0xBFEB, 0x97AB, + 0xBFEC, 0x97AC, 0xBFED, 0x97AD, 0xBFEE, 0x97AE, 0xBFEF, 0x97AF, 0xBFF0, 0x97B0, 0xBFF1, 0x97B1, 0xBFF2, 0x97B2, 0xBFF3, 0x97B3, + 0xBFF4, 0x97B4, 0xBFF5, 0x97B5, 0xBFF6, 0x97B6, 0xBFF7, 0x97B7, 0xBFF8, 0x97B8, 0xBFF9, 0x97B9, 0xBFFA, 0x97BA, 0xBFFB, 0x97BB, + 0xBFFC, 0x97BC, 0xBFFD, 0x97BD, 0xBFFE, 0x97BE, 0xBFFF, 0x97BF, 0xC000, 0x97C0, 0xC001, 0x97C1, 0xC002, 0x97C2, 0xC003, 0x97C3, + 0xC004, 0x97C4, 0xC005, 0x97C5, 0xC006, 0x97C6, 0xC007, 0x97C7, 0xC008, 0x97C8, 0xC009, 0x97C9, 0xC00A, 0x97CA, 0xC00B, 0x97CB, + 0xC00C, 0x97CC, 0xC00D, 0x97CD, 0xC00E, 0x97CE, 0xC00F, 0x97CF, 0xC010, 0x97D0, 0xC011, 0x97D1, 0xC012, 0x97D2, 0xC013, 0x97D3, + 0xC014, 0x97D4, 0xC015, 0x97D5, 0xC016, 0x97D6, 0xC017, 0x97D7, 0xC018, 0x97D8, 0xC019, 0x97D9, 0xC01A, 0x97DA, 0xC01B, 0x97DB, + 0xC01C, 0x97DC, 0xC01D, 0x97DD, 0xC01E, 0x97DE, 0xC01F, 0x97DF, 0xC020, 0x97E0, 0xC021, 0x97E1, 0xC022, 0x97E2, 0xC023, 0x97E3, + 0xC024, 0x97E4, 0xC025, 0x97E5, 0xC026, 0x97E6, 0xC027, 0x97E7, 0xC028, 0x97E8, 0xC029, 0x97E9, 0xC02A, 0x97EA, 0xC02B, 0x97EB, + 0xC02C, 0x97EC, 0xC02D, 0x97ED, 0xC02E, 0x97EE, 0xC02F, 0x97EF, 0xC030, 0x97F0, 0xC031, 0x97F1, 0xC032, 0x97F2, 0xC033, 0x97F3, + 0xC034, 0x97F4, 0xC035, 0x97F5, 0xC036, 0x97F6, 0xC037, 0x97F7, 0xC038, 0x97F8, 0xC039, 0x97F9, 0xC03A, 0x97FA, 0xC03B, 0x97FB, + 0xC03C, 0xBBD8, 0xC03D, 0x97FC, 0xC03E, 0x97FD, 0xC03F, 0x97FE, 0xC040, 0x9841, 0xC041, 0x9842, 0xC042, 0x9843, 0xC043, 0x9844, + 0xC044, 0x9845, 0xC045, 0x9846, 0xC046, 0x9847, 0xC047, 0x9848, 0xC048, 0x9849, 0xC049, 0x984A, 0xC04A, 0x984B, 0xC04B, 0x984C, + 0xC04C, 0x984D, 0xC04D, 0x984E, 0xC04E, 0x984F, 0xC04F, 0x9850, 0xC050, 0x9851, 0xC051, 0xBBD9, 0xC052, 0x9852, 0xC053, 0x9853, + 0xC054, 0x9854, 0xC055, 0x9855, 0xC056, 0x9856, 0xC057, 0x9857, 0xC058, 0xBBDA, 0xC059, 0x9858, 0xC05A, 0x9859, 0xC05B, 0x985A, + 0xC05C, 0xBBDB, 0xC05D, 0x9861, 0xC05E, 0x9862, 0xC05F, 0x9863, 0xC060, 0xBBDC, 0xC061, 0x9864, 0xC062, 0x9865, 0xC063, 0x9866, + 0xC064, 0x9867, 0xC065, 0x9868, 0xC066, 0x9869, 0xC067, 0x986A, 0xC068, 0xBBDD, 0xC069, 0xBBDE, 0xC06A, 0x986B, 0xC06B, 0x986C, + 0xC06C, 0x986D, 0xC06D, 0x986E, 0xC06E, 0x986F, 0xC06F, 0x9870, 0xC070, 0x9871, 0xC071, 0x9872, 0xC072, 0x9873, 0xC073, 0x9874, + 0xC074, 0x9875, 0xC075, 0x9876, 0xC076, 0x9877, 0xC077, 0x9878, 0xC078, 0x9879, 0xC079, 0x987A, 0xC07A, 0x9881, 0xC07B, 0x9882, + 0xC07C, 0x9883, 0xC07D, 0x9884, 0xC07E, 0x9885, 0xC07F, 0x9886, 0xC080, 0x9887, 0xC081, 0x9888, 0xC082, 0x9889, 0xC083, 0x988A, + 0xC084, 0x988B, 0xC085, 0x988C, 0xC086, 0x988D, 0xC087, 0x988E, 0xC088, 0x988F, 0xC089, 0x9890, 0xC08A, 0x9891, 0xC08B, 0x9892, + 0xC08C, 0x9893, 0xC08D, 0x9894, 0xC08E, 0x9895, 0xC08F, 0x9896, 0xC090, 0xBBDF, 0xC091, 0xBBE0, 0xC092, 0x9897, 0xC093, 0x9898, + 0xC094, 0xBBE1, 0xC095, 0x9899, 0xC096, 0x989A, 0xC097, 0x989B, 0xC098, 0xBBE2, 0xC099, 0x989C, 0xC09A, 0x989D, 0xC09B, 0x989E, + 0xC09C, 0x989F, 0xC09D, 0x98A0, 0xC09E, 0x98A1, 0xC09F, 0x98A2, 0xC0A0, 0xBBE3, 0xC0A1, 0xBBE4, 0xC0A2, 0x98A3, 0xC0A3, 0xBBE5, + 0xC0A4, 0x98A4, 0xC0A5, 0xBBE6, 0xC0A6, 0x98A5, 0xC0A7, 0x98A6, 0xC0A8, 0x98A7, 0xC0A9, 0x98A8, 0xC0AA, 0x98A9, 0xC0AB, 0x98AA, + 0xC0AC, 0xBBE7, 0xC0AD, 0xBBE8, 0xC0AE, 0x98AB, 0xC0AF, 0xBBE9, 0xC0B0, 0xBBEA, 0xC0B1, 0x98AC, 0xC0B2, 0x98AD, 0xC0B3, 0xBBEB, + 0xC0B4, 0xBBEC, 0xC0B5, 0xBBED, 0xC0B6, 0xBBEE, 0xC0B7, 0x98AE, 0xC0B8, 0x98AF, 0xC0B9, 0x98B0, 0xC0BA, 0x98B1, 0xC0BB, 0x98B2, + 0xC0BC, 0xBBEF, 0xC0BD, 0xBBF0, 0xC0BE, 0x98B3, 0xC0BF, 0xBBF1, 0xC0C0, 0xBBF2, 0xC0C1, 0xBBF3, 0xC0C2, 0x98B4, 0xC0C3, 0x98B5, + 0xC0C4, 0x98B6, 0xC0C5, 0xBBF4, 0xC0C6, 0x98B7, 0xC0C7, 0x98B8, 0xC0C8, 0xBBF5, 0xC0C9, 0xBBF6, 0xC0CA, 0x98B9, 0xC0CB, 0x98BA, + 0xC0CC, 0xBBF7, 0xC0CD, 0x98BB, 0xC0CE, 0x98BC, 0xC0CF, 0x98BD, 0xC0D0, 0xBBF8, 0xC0D1, 0x98BE, 0xC0D2, 0x98BF, 0xC0D3, 0x98C0, + 0xC0D4, 0x98C1, 0xC0D5, 0x98C2, 0xC0D6, 0x98C3, 0xC0D7, 0x98C4, 0xC0D8, 0xBBF9, 0xC0D9, 0xBBFA, 0xC0DA, 0x98C5, 0xC0DB, 0xBBFB, + 0xC0DC, 0xBBFC, 0xC0DD, 0xBBFD, 0xC0DE, 0x98C6, 0xC0DF, 0x98C7, 0xC0E0, 0x98C8, 0xC0E1, 0x98C9, 0xC0E2, 0x98CA, 0xC0E3, 0x98CB, + 0xC0E4, 0xBBFE, 0xC0E5, 0xBCA1, 0xC0E6, 0x98CC, 0xC0E7, 0x98CD, 0xC0E8, 0xBCA2, 0xC0E9, 0x98CE, 0xC0EA, 0x98CF, 0xC0EB, 0x98D0, + 0xC0EC, 0xBCA3, 0xC0ED, 0x98D1, 0xC0EE, 0x98D2, 0xC0EF, 0x98D3, 0xC0F0, 0x98D4, 0xC0F1, 0x98D5, 0xC0F2, 0x98D6, 0xC0F3, 0x98D7, + 0xC0F4, 0xBCA4, 0xC0F5, 0xBCA5, 0xC0F6, 0x98D8, 0xC0F7, 0xBCA6, 0xC0F8, 0x98D9, 0xC0F9, 0xBCA7, 0xC0FA, 0x98DA, 0xC0FB, 0x98DB, + 0xC0FC, 0x98DC, 0xC0FD, 0x98DD, 0xC0FE, 0x98DE, 0xC0FF, 0x98DF, 0xC100, 0xBCA8, 0xC101, 0x98E0, 0xC102, 0x98E1, 0xC103, 0x98E2, + 0xC104, 0xBCA9, 0xC105, 0x98E3, 0xC106, 0x98E4, 0xC107, 0x98E5, 0xC108, 0xBCAA, 0xC109, 0x98E6, 0xC10A, 0x98E7, 0xC10B, 0x98E8, + 0xC10C, 0x98E9, 0xC10D, 0x98EA, 0xC10E, 0x98EB, 0xC10F, 0x98EC, 0xC110, 0xBCAB, 0xC111, 0x98ED, 0xC112, 0x98EE, 0xC113, 0x98EF, + 0xC114, 0x98F0, 0xC115, 0xBCAC, 0xC116, 0x98F1, 0xC117, 0x98F2, 0xC118, 0x98F3, 0xC119, 0x98F4, 0xC11A, 0x98F5, 0xC11B, 0x98F6, + 0xC11C, 0xBCAD, 0xC11D, 0xBCAE, 0xC11E, 0xBCAF, 0xC11F, 0xBCB0, 0xC120, 0xBCB1, 0xC121, 0x98F7, 0xC122, 0x98F8, 0xC123, 0xBCB2, + 0xC124, 0xBCB3, 0xC125, 0x98F9, 0xC126, 0xBCB4, 0xC127, 0xBCB5, 0xC128, 0x98FA, 0xC129, 0x98FB, 0xC12A, 0x98FC, 0xC12B, 0x98FD, + 0xC12C, 0xBCB6, 0xC12D, 0xBCB7, 0xC12E, 0x98FE, 0xC12F, 0xBCB8, 0xC130, 0xBCB9, 0xC131, 0xBCBA, 0xC132, 0x9941, 0xC133, 0x9942, + 0xC134, 0x9943, 0xC135, 0x9944, 0xC136, 0xBCBB, 0xC137, 0x9945, 0xC138, 0xBCBC, 0xC139, 0xBCBD, 0xC13A, 0x9946, 0xC13B, 0x9947, + 0xC13C, 0xBCBE, 0xC13D, 0x9948, 0xC13E, 0x9949, 0xC13F, 0x994A, 0xC140, 0xBCBF, 0xC141, 0x994B, 0xC142, 0x994C, 0xC143, 0x994D, + 0xC144, 0x994E, 0xC145, 0x994F, 0xC146, 0x9950, 0xC147, 0x9951, 0xC148, 0xBCC0, 0xC149, 0xBCC1, 0xC14A, 0x9952, 0xC14B, 0xBCC2, + 0xC14C, 0xBCC3, 0xC14D, 0xBCC4, 0xC14E, 0x9953, 0xC14F, 0x9954, 0xC150, 0x9955, 0xC151, 0x9956, 0xC152, 0x9957, 0xC153, 0x9958, + 0xC154, 0xBCC5, 0xC155, 0xBCC6, 0xC156, 0x9959, 0xC157, 0x995A, 0xC158, 0xBCC7, 0xC159, 0x9961, 0xC15A, 0x9962, 0xC15B, 0x9963, + 0xC15C, 0xBCC8, 0xC15D, 0x9964, 0xC15E, 0x9965, 0xC15F, 0x9966, 0xC160, 0x9967, 0xC161, 0x9968, 0xC162, 0x9969, 0xC163, 0x996A, + 0xC164, 0xBCC9, 0xC165, 0xBCCA, 0xC166, 0x996B, 0xC167, 0xBCCB, 0xC168, 0xBCCC, 0xC169, 0xBCCD, 0xC16A, 0x996C, 0xC16B, 0x996D, + 0xC16C, 0x996E, 0xC16D, 0x996F, 0xC16E, 0x9970, 0xC16F, 0x9971, 0xC170, 0xBCCE, 0xC171, 0x9972, 0xC172, 0x9973, 0xC173, 0x9974, + 0xC174, 0xBCCF, 0xC175, 0x9975, 0xC176, 0x9976, 0xC177, 0x9977, 0xC178, 0xBCD0, 0xC179, 0x9978, 0xC17A, 0x9979, 0xC17B, 0x997A, + 0xC17C, 0x9981, 0xC17D, 0x9982, 0xC17E, 0x9983, 0xC17F, 0x9984, 0xC180, 0x9985, 0xC181, 0x9986, 0xC182, 0x9987, 0xC183, 0x9988, + 0xC184, 0x9989, 0xC185, 0xBCD1, 0xC186, 0x998A, 0xC187, 0x998B, 0xC188, 0x998C, 0xC189, 0x998D, 0xC18A, 0x998E, 0xC18B, 0x998F, + 0xC18C, 0xBCD2, 0xC18D, 0xBCD3, 0xC18E, 0xBCD4, 0xC18F, 0x9990, 0xC190, 0xBCD5, 0xC191, 0x9991, 0xC192, 0x9992, 0xC193, 0x9993, + 0xC194, 0xBCD6, 0xC195, 0x9994, 0xC196, 0xBCD7, 0xC197, 0x9995, 0xC198, 0x9996, 0xC199, 0x9997, 0xC19A, 0x9998, 0xC19B, 0x9999, + 0xC19C, 0xBCD8, 0xC19D, 0xBCD9, 0xC19E, 0x999A, 0xC19F, 0xBCDA, 0xC1A0, 0x999B, 0xC1A1, 0xBCDB, 0xC1A2, 0x999C, 0xC1A3, 0x999D, + 0xC1A4, 0x999E, 0xC1A5, 0xBCDC, 0xC1A6, 0x999F, 0xC1A7, 0x99A0, 0xC1A8, 0xBCDD, 0xC1A9, 0xBCDE, 0xC1AA, 0x99A1, 0xC1AB, 0x99A2, + 0xC1AC, 0xBCDF, 0xC1AD, 0x99A3, 0xC1AE, 0x99A4, 0xC1AF, 0x99A5, 0xC1B0, 0xBCE0, 0xC1B1, 0x99A6, 0xC1B2, 0x99A7, 0xC1B3, 0x99A8, + 0xC1B4, 0x99A9, 0xC1B5, 0x99AA, 0xC1B6, 0x99AB, 0xC1B7, 0x99AC, 0xC1B8, 0x99AD, 0xC1B9, 0x99AE, 0xC1BA, 0x99AF, 0xC1BB, 0x99B0, + 0xC1BC, 0x99B1, 0xC1BD, 0xBCE1, 0xC1BE, 0x99B2, 0xC1BF, 0x99B3, 0xC1C0, 0x99B4, 0xC1C1, 0x99B5, 0xC1C2, 0x99B6, 0xC1C3, 0x99B7, + 0xC1C4, 0xBCE2, 0xC1C5, 0x99B8, 0xC1C6, 0x99B9, 0xC1C7, 0x99BA, 0xC1C8, 0xBCE3, 0xC1C9, 0x99BB, 0xC1CA, 0x99BC, 0xC1CB, 0x99BD, + 0xC1CC, 0xBCE4, 0xC1CD, 0x99BE, 0xC1CE, 0x99BF, 0xC1CF, 0x99C0, 0xC1D0, 0x99C1, 0xC1D1, 0x99C2, 0xC1D2, 0x99C3, 0xC1D3, 0x99C4, + 0xC1D4, 0xBCE5, 0xC1D5, 0x99C5, 0xC1D6, 0x99C6, 0xC1D7, 0xBCE6, 0xC1D8, 0xBCE7, 0xC1D9, 0x99C7, 0xC1DA, 0x99C8, 0xC1DB, 0x99C9, + 0xC1DC, 0x99CA, 0xC1DD, 0x99CB, 0xC1DE, 0x99CC, 0xC1DF, 0x99CD, 0xC1E0, 0xBCE8, 0xC1E1, 0x99CE, 0xC1E2, 0x99CF, 0xC1E3, 0x99D0, + 0xC1E4, 0xBCE9, 0xC1E5, 0x99D1, 0xC1E6, 0x99D2, 0xC1E7, 0x99D3, 0xC1E8, 0xBCEA, 0xC1E9, 0x99D4, 0xC1EA, 0x99D5, 0xC1EB, 0x99D6, + 0xC1EC, 0x99D7, 0xC1ED, 0x99D8, 0xC1EE, 0x99D9, 0xC1EF, 0x99DA, 0xC1F0, 0xBCEB, 0xC1F1, 0xBCEC, 0xC1F2, 0x99DB, 0xC1F3, 0xBCED, + 0xC1F4, 0x99DC, 0xC1F5, 0x99DD, 0xC1F6, 0x99DE, 0xC1F7, 0x99DF, 0xC1F8, 0x99E0, 0xC1F9, 0x99E1, 0xC1FA, 0x99E2, 0xC1FB, 0x99E3, + 0xC1FC, 0xBCEE, 0xC1FD, 0xBCEF, 0xC1FE, 0x99E4, 0xC1FF, 0x99E5, 0xC200, 0xBCF0, 0xC201, 0x99E6, 0xC202, 0x99E7, 0xC203, 0x99E8, + 0xC204, 0xBCF1, 0xC205, 0x99E9, 0xC206, 0x99EA, 0xC207, 0x99EB, 0xC208, 0x99EC, 0xC209, 0x99ED, 0xC20A, 0x99EE, 0xC20B, 0x99EF, + 0xC20C, 0xBCF2, 0xC20D, 0xBCF3, 0xC20E, 0x99F0, 0xC20F, 0xBCF4, 0xC210, 0x99F1, 0xC211, 0xBCF5, 0xC212, 0x99F2, 0xC213, 0x99F3, + 0xC214, 0x99F4, 0xC215, 0x99F5, 0xC216, 0x99F6, 0xC217, 0x99F7, 0xC218, 0xBCF6, 0xC219, 0xBCF7, 0xC21A, 0x99F8, 0xC21B, 0x99F9, + 0xC21C, 0xBCF8, 0xC21D, 0x99FA, 0xC21E, 0x99FB, 0xC21F, 0xBCF9, 0xC220, 0xBCFA, 0xC221, 0x99FC, 0xC222, 0x99FD, 0xC223, 0x99FE, + 0xC224, 0x9A41, 0xC225, 0x9A42, 0xC226, 0x9A43, 0xC227, 0x9A44, 0xC228, 0xBCFB, 0xC229, 0xBCFC, 0xC22A, 0x9A45, 0xC22B, 0xBCFD, + 0xC22C, 0x9A46, 0xC22D, 0xBCFE, 0xC22E, 0x9A47, 0xC22F, 0xBDA1, 0xC230, 0x9A48, 0xC231, 0xBDA2, 0xC232, 0xBDA3, 0xC233, 0x9A49, + 0xC234, 0xBDA4, 0xC235, 0x9A4A, 0xC236, 0x9A4B, 0xC237, 0x9A4C, 0xC238, 0x9A4D, 0xC239, 0x9A4E, 0xC23A, 0x9A4F, 0xC23B, 0x9A50, + 0xC23C, 0x9A51, 0xC23D, 0x9A52, 0xC23E, 0x9A53, 0xC23F, 0x9A54, 0xC240, 0x9A55, 0xC241, 0x9A56, 0xC242, 0x9A57, 0xC243, 0x9A58, + 0xC244, 0x9A59, 0xC245, 0x9A5A, 0xC246, 0x9A61, 0xC247, 0x9A62, 0xC248, 0xBDA5, 0xC249, 0x9A63, 0xC24A, 0x9A64, 0xC24B, 0x9A65, + 0xC24C, 0x9A66, 0xC24D, 0x9A67, 0xC24E, 0x9A68, 0xC24F, 0x9A69, 0xC250, 0xBDA6, 0xC251, 0xBDA7, 0xC252, 0x9A6A, 0xC253, 0x9A6B, + 0xC254, 0xBDA8, 0xC255, 0x9A6C, 0xC256, 0x9A6D, 0xC257, 0x9A6E, 0xC258, 0xBDA9, 0xC259, 0x9A6F, 0xC25A, 0x9A70, 0xC25B, 0x9A71, + 0xC25C, 0x9A72, 0xC25D, 0x9A73, 0xC25E, 0x9A74, 0xC25F, 0x9A75, 0xC260, 0xBDAA, 0xC261, 0x9A76, 0xC262, 0x9A77, 0xC263, 0x9A78, + 0xC264, 0x9A79, 0xC265, 0xBDAB, 0xC266, 0x9A7A, 0xC267, 0x9A81, 0xC268, 0x9A82, 0xC269, 0x9A83, 0xC26A, 0x9A84, 0xC26B, 0x9A85, + 0xC26C, 0xBDAC, 0xC26D, 0xBDAD, 0xC26E, 0x9A86, 0xC26F, 0x9A87, 0xC270, 0xBDAE, 0xC271, 0x9A88, 0xC272, 0x9A89, 0xC273, 0x9A8A, + 0xC274, 0xBDAF, 0xC275, 0x9A8B, 0xC276, 0x9A8C, 0xC277, 0x9A8D, 0xC278, 0x9A8E, 0xC279, 0x9A8F, 0xC27A, 0x9A90, 0xC27B, 0x9A91, + 0xC27C, 0xBDB0, 0xC27D, 0xBDB1, 0xC27E, 0x9A92, 0xC27F, 0xBDB2, 0xC280, 0x9A93, 0xC281, 0xBDB3, 0xC282, 0x9A94, 0xC283, 0x9A95, + 0xC284, 0x9A96, 0xC285, 0x9A97, 0xC286, 0x9A98, 0xC287, 0x9A99, 0xC288, 0xBDB4, 0xC289, 0xBDB5, 0xC28A, 0x9A9A, 0xC28B, 0x9A9B, + 0xC28C, 0x9A9C, 0xC28D, 0x9A9D, 0xC28E, 0x9A9E, 0xC28F, 0x9A9F, 0xC290, 0xBDB6, 0xC291, 0x9AA0, 0xC292, 0x9AA1, 0xC293, 0x9AA2, + 0xC294, 0x9AA3, 0xC295, 0x9AA4, 0xC296, 0x9AA5, 0xC297, 0x9AA6, 0xC298, 0xBDB7, 0xC299, 0x9AA7, 0xC29A, 0x9AA8, 0xC29B, 0xBDB8, + 0xC29C, 0x9AA9, 0xC29D, 0xBDB9, 0xC29E, 0x9AAA, 0xC29F, 0x9AAB, 0xC2A0, 0x9AAC, 0xC2A1, 0x9AAD, 0xC2A2, 0x9AAE, 0xC2A3, 0x9AAF, + 0xC2A4, 0xBDBA, 0xC2A5, 0xBDBB, 0xC2A6, 0x9AB0, 0xC2A7, 0x9AB1, 0xC2A8, 0xBDBC, 0xC2A9, 0x9AB2, 0xC2AA, 0x9AB3, 0xC2AB, 0x9AB4, + 0xC2AC, 0xBDBD, 0xC2AD, 0xBDBE, 0xC2AE, 0x9AB5, 0xC2AF, 0x9AB6, 0xC2B0, 0x9AB7, 0xC2B1, 0x9AB8, 0xC2B2, 0x9AB9, 0xC2B3, 0x9ABA, + 0xC2B4, 0xBDBF, 0xC2B5, 0xBDC0, 0xC2B6, 0x9ABB, 0xC2B7, 0xBDC1, 0xC2B8, 0x9ABC, 0xC2B9, 0xBDC2, 0xC2BA, 0x9ABD, 0xC2BB, 0x9ABE, + 0xC2BC, 0x9ABF, 0xC2BD, 0x9AC0, 0xC2BE, 0x9AC1, 0xC2BF, 0x9AC2, 0xC2C0, 0x9AC3, 0xC2C1, 0x9AC4, 0xC2C2, 0x9AC5, 0xC2C3, 0x9AC6, + 0xC2C4, 0x9AC7, 0xC2C5, 0x9AC8, 0xC2C6, 0x9AC9, 0xC2C7, 0x9ACA, 0xC2C8, 0x9ACB, 0xC2C9, 0x9ACC, 0xC2CA, 0x9ACD, 0xC2CB, 0x9ACE, + 0xC2CC, 0x9ACF, 0xC2CD, 0x9AD0, 0xC2CE, 0x9AD1, 0xC2CF, 0x9AD2, 0xC2D0, 0x9AD3, 0xC2D1, 0x9AD4, 0xC2D2, 0x9AD5, 0xC2D3, 0x9AD6, + 0xC2D4, 0x9AD7, 0xC2D5, 0x9AD8, 0xC2D6, 0x9AD9, 0xC2D7, 0x9ADA, 0xC2D8, 0x9ADB, 0xC2D9, 0x9ADC, 0xC2DA, 0x9ADD, 0xC2DB, 0x9ADE, + 0xC2DC, 0xBDC3, 0xC2DD, 0xBDC4, 0xC2DE, 0x9ADF, 0xC2DF, 0x9AE0, 0xC2E0, 0xBDC5, 0xC2E1, 0x9AE1, 0xC2E2, 0x9AE2, 0xC2E3, 0xBDC6, + 0xC2E4, 0xBDC7, 0xC2E5, 0x9AE3, 0xC2E6, 0x9AE4, 0xC2E7, 0x9AE5, 0xC2E8, 0x9AE6, 0xC2E9, 0x9AE7, 0xC2EA, 0x9AE8, 0xC2EB, 0xBDC8, + 0xC2EC, 0xBDC9, 0xC2ED, 0xBDCA, 0xC2EE, 0x9AE9, 0xC2EF, 0xBDCB, 0xC2F0, 0x9AEA, 0xC2F1, 0xBDCC, 0xC2F2, 0x9AEB, 0xC2F3, 0x9AEC, + 0xC2F4, 0x9AED, 0xC2F5, 0x9AEE, 0xC2F6, 0xBDCD, 0xC2F7, 0x9AEF, 0xC2F8, 0xBDCE, 0xC2F9, 0xBDCF, 0xC2FA, 0x9AF0, 0xC2FB, 0xBDD0, + 0xC2FC, 0xBDD1, 0xC2FD, 0x9AF1, 0xC2FE, 0x9AF2, 0xC2FF, 0x9AF3, 0xC300, 0xBDD2, 0xC301, 0x9AF4, 0xC302, 0x9AF5, 0xC303, 0x9AF6, + 0xC304, 0x9AF7, 0xC305, 0x9AF8, 0xC306, 0x9AF9, 0xC307, 0x9AFA, 0xC308, 0xBDD3, 0xC309, 0xBDD4, 0xC30A, 0x9AFB, 0xC30B, 0x9AFC, + 0xC30C, 0xBDD5, 0xC30D, 0xBDD6, 0xC30E, 0x9AFD, 0xC30F, 0x9AFE, 0xC310, 0x9B41, 0xC311, 0x9B42, 0xC312, 0x9B43, 0xC313, 0xBDD7, + 0xC314, 0xBDD8, 0xC315, 0xBDD9, 0xC316, 0x9B44, 0xC317, 0x9B45, 0xC318, 0xBDDA, 0xC319, 0x9B46, 0xC31A, 0x9B47, 0xC31B, 0x9B48, + 0xC31C, 0xBDDB, 0xC31D, 0x9B49, 0xC31E, 0x9B4A, 0xC31F, 0x9B4B, 0xC320, 0x9B4C, 0xC321, 0x9B4D, 0xC322, 0x9B4E, 0xC323, 0x9B4F, + 0xC324, 0xBDDC, 0xC325, 0xBDDD, 0xC326, 0x9B50, 0xC327, 0x9B51, 0xC328, 0xBDDE, 0xC329, 0xBDDF, 0xC32A, 0x9B52, 0xC32B, 0x9B53, + 0xC32C, 0x9B54, 0xC32D, 0x9B55, 0xC32E, 0x9B56, 0xC32F, 0x9B57, 0xC330, 0x9B58, 0xC331, 0x9B59, 0xC332, 0x9B5A, 0xC333, 0x9B61, + 0xC334, 0x9B62, 0xC335, 0x9B63, 0xC336, 0x9B64, 0xC337, 0x9B65, 0xC338, 0x9B66, 0xC339, 0x9B67, 0xC33A, 0x9B68, 0xC33B, 0x9B69, + 0xC33C, 0x9B6A, 0xC33D, 0x9B6B, 0xC33E, 0x9B6C, 0xC33F, 0x9B6D, 0xC340, 0x9B6E, 0xC341, 0x9B6F, 0xC342, 0x9B70, 0xC343, 0x9B71, + 0xC344, 0x9B72, 0xC345, 0xBDE0, 0xC346, 0x9B73, 0xC347, 0x9B74, 0xC348, 0x9B75, 0xC349, 0x9B76, 0xC34A, 0x9B77, 0xC34B, 0x9B78, + 0xC34C, 0x9B79, 0xC34D, 0x9B7A, 0xC34E, 0x9B81, 0xC34F, 0x9B82, 0xC350, 0x9B83, 0xC351, 0x9B84, 0xC352, 0x9B85, 0xC353, 0x9B86, + 0xC354, 0x9B87, 0xC355, 0x9B88, 0xC356, 0x9B89, 0xC357, 0x9B8A, 0xC358, 0x9B8B, 0xC359, 0x9B8C, 0xC35A, 0x9B8D, 0xC35B, 0x9B8E, + 0xC35C, 0x9B8F, 0xC35D, 0x9B90, 0xC35E, 0x9B91, 0xC35F, 0x9B92, 0xC360, 0x9B93, 0xC361, 0x9B94, 0xC362, 0x9B95, 0xC363, 0x9B96, + 0xC364, 0x9B97, 0xC365, 0x9B98, 0xC366, 0x9B99, 0xC367, 0x9B9A, 0xC368, 0xBDE1, 0xC369, 0xBDE2, 0xC36A, 0x9B9B, 0xC36B, 0x9B9C, + 0xC36C, 0xBDE3, 0xC36D, 0x9B9D, 0xC36E, 0x9B9E, 0xC36F, 0x9B9F, 0xC370, 0xBDE4, 0xC371, 0x9BA0, 0xC372, 0xBDE5, 0xC373, 0x9BA1, + 0xC374, 0x9BA2, 0xC375, 0x9BA3, 0xC376, 0x9BA4, 0xC377, 0x9BA5, 0xC378, 0xBDE6, 0xC379, 0xBDE7, 0xC37A, 0x9BA6, 0xC37B, 0x9BA7, + 0xC37C, 0xBDE8, 0xC37D, 0xBDE9, 0xC37E, 0x9BA8, 0xC37F, 0x9BA9, 0xC380, 0x9BAA, 0xC381, 0x9BAB, 0xC382, 0x9BAC, 0xC383, 0x9BAD, + 0xC384, 0xBDEA, 0xC385, 0x9BAE, 0xC386, 0x9BAF, 0xC387, 0x9BB0, 0xC388, 0xBDEB, 0xC389, 0x9BB1, 0xC38A, 0x9BB2, 0xC38B, 0x9BB3, + 0xC38C, 0xBDEC, 0xC38D, 0x9BB4, 0xC38E, 0x9BB5, 0xC38F, 0x9BB6, 0xC390, 0x9BB7, 0xC391, 0x9BB8, 0xC392, 0x9BB9, 0xC393, 0x9BBA, + 0xC394, 0x9BBB, 0xC395, 0x9BBC, 0xC396, 0x9BBD, 0xC397, 0x9BBE, 0xC398, 0x9BBF, 0xC399, 0x9BC0, 0xC39A, 0x9BC1, 0xC39B, 0x9BC2, + 0xC39C, 0x9BC3, 0xC39D, 0x9BC4, 0xC39E, 0x9BC5, 0xC39F, 0x9BC6, 0xC3A0, 0x9BC7, 0xC3A1, 0x9BC8, 0xC3A2, 0x9BC9, 0xC3A3, 0x9BCA, + 0xC3A4, 0x9BCB, 0xC3A5, 0x9BCC, 0xC3A6, 0x9BCD, 0xC3A7, 0x9BCE, 0xC3A8, 0x9BCF, 0xC3A9, 0x9BD0, 0xC3AA, 0x9BD1, 0xC3AB, 0x9BD2, + 0xC3AC, 0x9BD3, 0xC3AD, 0x9BD4, 0xC3AE, 0x9BD5, 0xC3AF, 0x9BD6, 0xC3B0, 0x9BD7, 0xC3B1, 0x9BD8, 0xC3B2, 0x9BD9, 0xC3B3, 0x9BDA, + 0xC3B4, 0x9BDB, 0xC3B5, 0x9BDC, 0xC3B6, 0x9BDD, 0xC3B7, 0x9BDE, 0xC3B8, 0x9BDF, 0xC3B9, 0x9BE0, 0xC3BA, 0x9BE1, 0xC3BB, 0x9BE2, + 0xC3BC, 0x9BE3, 0xC3BD, 0x9BE4, 0xC3BE, 0x9BE5, 0xC3BF, 0x9BE6, 0xC3C0, 0xBDED, 0xC3C1, 0x9BE7, 0xC3C2, 0x9BE8, 0xC3C3, 0x9BE9, + 0xC3C4, 0x9BEA, 0xC3C5, 0x9BEB, 0xC3C6, 0x9BEC, 0xC3C7, 0x9BED, 0xC3C8, 0x9BEE, 0xC3C9, 0x9BEF, 0xC3CA, 0x9BF0, 0xC3CB, 0x9BF1, + 0xC3CC, 0x9BF2, 0xC3CD, 0x9BF3, 0xC3CE, 0x9BF4, 0xC3CF, 0x9BF5, 0xC3D0, 0x9BF6, 0xC3D1, 0x9BF7, 0xC3D2, 0x9BF8, 0xC3D3, 0x9BF9, + 0xC3D4, 0x9BFA, 0xC3D5, 0x9BFB, 0xC3D6, 0x9BFC, 0xC3D7, 0x9BFD, 0xC3D8, 0xBDEE, 0xC3D9, 0xBDEF, 0xC3DA, 0x9BFE, 0xC3DB, 0x9C41, + 0xC3DC, 0xBDF0, 0xC3DD, 0x9C42, 0xC3DE, 0x9C43, 0xC3DF, 0xBDF1, 0xC3E0, 0xBDF2, 0xC3E1, 0x9C44, 0xC3E2, 0xBDF3, 0xC3E3, 0x9C45, + 0xC3E4, 0x9C46, 0xC3E5, 0x9C47, 0xC3E6, 0x9C48, 0xC3E7, 0x9C49, 0xC3E8, 0xBDF4, 0xC3E9, 0xBDF5, 0xC3EA, 0x9C4A, 0xC3EB, 0x9C4B, + 0xC3EC, 0x9C4C, 0xC3ED, 0xBDF6, 0xC3EE, 0x9C4D, 0xC3EF, 0x9C4E, 0xC3F0, 0x9C4F, 0xC3F1, 0x9C50, 0xC3F2, 0x9C51, 0xC3F3, 0x9C52, + 0xC3F4, 0xBDF7, 0xC3F5, 0xBDF8, 0xC3F6, 0x9C53, 0xC3F7, 0x9C54, 0xC3F8, 0xBDF9, 0xC3F9, 0x9C55, 0xC3FA, 0x9C56, 0xC3FB, 0x9C57, + 0xC3FC, 0x9C58, 0xC3FD, 0x9C59, 0xC3FE, 0x9C5A, 0xC3FF, 0x9C61, 0xC400, 0x9C62, 0xC401, 0x9C63, 0xC402, 0x9C64, 0xC403, 0x9C65, + 0xC404, 0x9C66, 0xC405, 0x9C67, 0xC406, 0x9C68, 0xC407, 0x9C69, 0xC408, 0xBDFA, 0xC409, 0x9C6A, 0xC40A, 0x9C6B, 0xC40B, 0x9C6C, + 0xC40C, 0x9C6D, 0xC40D, 0x9C6E, 0xC40E, 0x9C6F, 0xC40F, 0x9C70, 0xC410, 0xBDFB, 0xC411, 0x9C71, 0xC412, 0x9C72, 0xC413, 0x9C73, + 0xC414, 0x9C74, 0xC415, 0x9C75, 0xC416, 0x9C76, 0xC417, 0x9C77, 0xC418, 0x9C78, 0xC419, 0x9C79, 0xC41A, 0x9C7A, 0xC41B, 0x9C81, + 0xC41C, 0x9C82, 0xC41D, 0x9C83, 0xC41E, 0x9C84, 0xC41F, 0x9C85, 0xC420, 0x9C86, 0xC421, 0x9C87, 0xC422, 0x9C88, 0xC423, 0x9C89, + 0xC424, 0xBDFC, 0xC425, 0x9C8A, 0xC426, 0x9C8B, 0xC427, 0x9C8C, 0xC428, 0x9C8D, 0xC429, 0x9C8E, 0xC42A, 0x9C8F, 0xC42B, 0x9C90, + 0xC42C, 0xBDFD, 0xC42D, 0x9C91, 0xC42E, 0x9C92, 0xC42F, 0x9C93, 0xC430, 0xBDFE, 0xC431, 0x9C94, 0xC432, 0x9C95, 0xC433, 0x9C96, + 0xC434, 0xBEA1, 0xC435, 0x9C97, 0xC436, 0x9C98, 0xC437, 0x9C99, 0xC438, 0x9C9A, 0xC439, 0x9C9B, 0xC43A, 0x9C9C, 0xC43B, 0x9C9D, + 0xC43C, 0xBEA2, 0xC43D, 0xBEA3, 0xC43E, 0x9C9E, 0xC43F, 0x9C9F, 0xC440, 0x9CA0, 0xC441, 0x9CA1, 0xC442, 0x9CA2, 0xC443, 0x9CA3, + 0xC444, 0x9CA4, 0xC445, 0x9CA5, 0xC446, 0x9CA6, 0xC447, 0x9CA7, 0xC448, 0xBEA4, 0xC449, 0x9CA8, 0xC44A, 0x9CA9, 0xC44B, 0x9CAA, + 0xC44C, 0x9CAB, 0xC44D, 0x9CAC, 0xC44E, 0x9CAD, 0xC44F, 0x9CAE, 0xC450, 0x9CAF, 0xC451, 0x9CB0, 0xC452, 0x9CB1, 0xC453, 0x9CB2, + 0xC454, 0x9CB3, 0xC455, 0x9CB4, 0xC456, 0x9CB5, 0xC457, 0x9CB6, 0xC458, 0x9CB7, 0xC459, 0x9CB8, 0xC45A, 0x9CB9, 0xC45B, 0x9CBA, + 0xC45C, 0x9CBB, 0xC45D, 0x9CBC, 0xC45E, 0x9CBD, 0xC45F, 0x9CBE, 0xC460, 0x9CBF, 0xC461, 0x9CC0, 0xC462, 0x9CC1, 0xC463, 0x9CC2, + 0xC464, 0xBEA5, 0xC465, 0xBEA6, 0xC466, 0x9CC3, 0xC467, 0x9CC4, 0xC468, 0xBEA7, 0xC469, 0x9CC5, 0xC46A, 0x9CC6, 0xC46B, 0x9CC7, + 0xC46C, 0xBEA8, 0xC46D, 0x9CC8, 0xC46E, 0x9CC9, 0xC46F, 0x9CCA, 0xC470, 0x9CCB, 0xC471, 0x9CCC, 0xC472, 0x9CCD, 0xC473, 0x9CCE, + 0xC474, 0xBEA9, 0xC475, 0xBEAA, 0xC476, 0x9CCF, 0xC477, 0x9CD0, 0xC478, 0x9CD1, 0xC479, 0xBEAB, 0xC47A, 0x9CD2, 0xC47B, 0x9CD3, + 0xC47C, 0x9CD4, 0xC47D, 0x9CD5, 0xC47E, 0x9CD6, 0xC47F, 0x9CD7, 0xC480, 0xBEAC, 0xC481, 0x9CD8, 0xC482, 0x9CD9, 0xC483, 0x9CDA, + 0xC484, 0x9CDB, 0xC485, 0x9CDC, 0xC486, 0x9CDD, 0xC487, 0x9CDE, 0xC488, 0x9CDF, 0xC489, 0x9CE0, 0xC48A, 0x9CE1, 0xC48B, 0x9CE2, + 0xC48C, 0x9CE3, 0xC48D, 0x9CE4, 0xC48E, 0x9CE5, 0xC48F, 0x9CE6, 0xC490, 0x9CE7, 0xC491, 0x9CE8, 0xC492, 0x9CE9, 0xC493, 0x9CEA, + 0xC494, 0xBEAD, 0xC495, 0x9CEB, 0xC496, 0x9CEC, 0xC497, 0x9CED, 0xC498, 0x9CEE, 0xC499, 0x9CEF, 0xC49A, 0x9CF0, 0xC49B, 0x9CF1, + 0xC49C, 0xBEAE, 0xC49D, 0x9CF2, 0xC49E, 0x9CF3, 0xC49F, 0x9CF4, 0xC4A0, 0x9CF5, 0xC4A1, 0x9CF6, 0xC4A2, 0x9CF7, 0xC4A3, 0x9CF8, + 0xC4A4, 0x9CF9, 0xC4A5, 0x9CFA, 0xC4A6, 0x9CFB, 0xC4A7, 0x9CFC, 0xC4A8, 0x9CFD, 0xC4A9, 0x9CFE, 0xC4AA, 0x9D41, 0xC4AB, 0x9D42, + 0xC4AC, 0x9D43, 0xC4AD, 0x9D44, 0xC4AE, 0x9D45, 0xC4AF, 0x9D46, 0xC4B0, 0x9D47, 0xC4B1, 0x9D48, 0xC4B2, 0x9D49, 0xC4B3, 0x9D4A, + 0xC4B4, 0x9D4B, 0xC4B5, 0x9D4C, 0xC4B6, 0x9D4D, 0xC4B7, 0x9D4E, 0xC4B8, 0xBEAF, 0xC4B9, 0x9D4F, 0xC4BA, 0x9D50, 0xC4BB, 0x9D51, + 0xC4BC, 0xBEB0, 0xC4BD, 0x9D52, 0xC4BE, 0x9D53, 0xC4BF, 0x9D54, 0xC4C0, 0x9D55, 0xC4C1, 0x9D56, 0xC4C2, 0x9D57, 0xC4C3, 0x9D58, + 0xC4C4, 0x9D59, 0xC4C5, 0x9D5A, 0xC4C6, 0x9D61, 0xC4C7, 0x9D62, 0xC4C8, 0x9D63, 0xC4C9, 0x9D64, 0xC4CA, 0x9D65, 0xC4CB, 0x9D66, + 0xC4CC, 0x9D67, 0xC4CD, 0x9D68, 0xC4CE, 0x9D69, 0xC4CF, 0x9D6A, 0xC4D0, 0x9D6B, 0xC4D1, 0x9D6C, 0xC4D2, 0x9D6D, 0xC4D3, 0x9D6E, + 0xC4D4, 0x9D6F, 0xC4D5, 0x9D70, 0xC4D6, 0x9D71, 0xC4D7, 0x9D72, 0xC4D8, 0x9D73, 0xC4D9, 0x9D74, 0xC4DA, 0x9D75, 0xC4DB, 0x9D76, + 0xC4DC, 0x9D77, 0xC4DD, 0x9D78, 0xC4DE, 0x9D79, 0xC4DF, 0x9D7A, 0xC4E0, 0x9D81, 0xC4E1, 0x9D82, 0xC4E2, 0x9D83, 0xC4E3, 0x9D84, + 0xC4E4, 0x9D85, 0xC4E5, 0x9D86, 0xC4E6, 0x9D87, 0xC4E7, 0x9D88, 0xC4E8, 0x9D89, 0xC4E9, 0xBEB1, 0xC4EA, 0x9D8A, 0xC4EB, 0x9D8B, + 0xC4EC, 0x9D8C, 0xC4ED, 0x9D8D, 0xC4EE, 0x9D8E, 0xC4EF, 0x9D8F, 0xC4F0, 0xBEB2, 0xC4F1, 0xBEB3, 0xC4F2, 0x9D90, 0xC4F3, 0x9D91, + 0xC4F4, 0xBEB4, 0xC4F5, 0x9D92, 0xC4F6, 0x9D93, 0xC4F7, 0x9D94, 0xC4F8, 0xBEB5, 0xC4F9, 0x9D95, 0xC4FA, 0xBEB6, 0xC4FB, 0x9D96, + 0xC4FC, 0x9D97, 0xC4FD, 0x9D98, 0xC4FE, 0x9D99, 0xC4FF, 0xBEB7, 0xC500, 0xBEB8, 0xC501, 0xBEB9, 0xC502, 0x9D9A, 0xC503, 0x9D9B, + 0xC504, 0x9D9C, 0xC505, 0x9D9D, 0xC506, 0x9D9E, 0xC507, 0x9D9F, 0xC508, 0x9DA0, 0xC509, 0x9DA1, 0xC50A, 0x9DA2, 0xC50B, 0x9DA3, + 0xC50C, 0xBEBA, 0xC50D, 0x9DA4, 0xC50E, 0x9DA5, 0xC50F, 0x9DA6, 0xC510, 0xBEBB, 0xC511, 0x9DA7, 0xC512, 0x9DA8, 0xC513, 0x9DA9, + 0xC514, 0xBEBC, 0xC515, 0x9DAA, 0xC516, 0x9DAB, 0xC517, 0x9DAC, 0xC518, 0x9DAD, 0xC519, 0x9DAE, 0xC51A, 0x9DAF, 0xC51B, 0x9DB0, + 0xC51C, 0xBEBD, 0xC51D, 0x9DB1, 0xC51E, 0x9DB2, 0xC51F, 0x9DB3, 0xC520, 0x9DB4, 0xC521, 0x9DB5, 0xC522, 0x9DB6, 0xC523, 0x9DB7, + 0xC524, 0x9DB8, 0xC525, 0x9DB9, 0xC526, 0x9DBA, 0xC527, 0x9DBB, 0xC528, 0xBEBE, 0xC529, 0xBEBF, 0xC52A, 0x9DBC, 0xC52B, 0x9DBD, + 0xC52C, 0xBEC0, 0xC52D, 0x9DBE, 0xC52E, 0x9DBF, 0xC52F, 0x9DC0, 0xC530, 0xBEC1, 0xC531, 0x9DC1, 0xC532, 0x9DC2, 0xC533, 0x9DC3, + 0xC534, 0x9DC4, 0xC535, 0x9DC5, 0xC536, 0x9DC6, 0xC537, 0x9DC7, 0xC538, 0xBEC2, 0xC539, 0xBEC3, 0xC53A, 0x9DC8, 0xC53B, 0xBEC4, + 0xC53C, 0x9DC9, 0xC53D, 0xBEC5, 0xC53E, 0x9DCA, 0xC53F, 0x9DCB, 0xC540, 0x9DCC, 0xC541, 0x9DCD, 0xC542, 0x9DCE, 0xC543, 0x9DCF, + 0xC544, 0xBEC6, 0xC545, 0xBEC7, 0xC546, 0x9DD0, 0xC547, 0x9DD1, 0xC548, 0xBEC8, 0xC549, 0xBEC9, 0xC54A, 0xBECA, 0xC54B, 0x9DD2, + 0xC54C, 0xBECB, 0xC54D, 0xBECC, 0xC54E, 0xBECD, 0xC54F, 0x9DD3, 0xC550, 0x9DD4, 0xC551, 0x9DD5, 0xC552, 0x9DD6, 0xC553, 0xBECE, + 0xC554, 0xBECF, 0xC555, 0xBED0, 0xC556, 0x9DD7, 0xC557, 0xBED1, 0xC558, 0xBED2, 0xC559, 0xBED3, 0xC55A, 0x9DD8, 0xC55B, 0x9DD9, + 0xC55C, 0x9DDA, 0xC55D, 0xBED4, 0xC55E, 0xBED5, 0xC55F, 0x9DDB, 0xC560, 0xBED6, 0xC561, 0xBED7, 0xC562, 0x9DDC, 0xC563, 0x9DDD, + 0xC564, 0xBED8, 0xC565, 0x9DDE, 0xC566, 0x9DDF, 0xC567, 0x9DE0, 0xC568, 0xBED9, 0xC569, 0x9DE1, 0xC56A, 0x9DE2, 0xC56B, 0x9DE3, + 0xC56C, 0x9DE4, 0xC56D, 0x9DE5, 0xC56E, 0x9DE6, 0xC56F, 0x9DE7, 0xC570, 0xBEDA, 0xC571, 0xBEDB, 0xC572, 0x9DE8, 0xC573, 0xBEDC, + 0xC574, 0xBEDD, 0xC575, 0xBEDE, 0xC576, 0x9DE9, 0xC577, 0x9DEA, 0xC578, 0x9DEB, 0xC579, 0x9DEC, 0xC57A, 0x9DED, 0xC57B, 0x9DEE, + 0xC57C, 0xBEDF, 0xC57D, 0xBEE0, 0xC57E, 0x9DEF, 0xC57F, 0x9DF0, 0xC580, 0xBEE1, 0xC581, 0x9DF1, 0xC582, 0x9DF2, 0xC583, 0x9DF3, + 0xC584, 0xBEE2, 0xC585, 0x9DF4, 0xC586, 0x9DF5, 0xC587, 0xBEE3, 0xC588, 0x9DF6, 0xC589, 0x9DF7, 0xC58A, 0x9DF8, 0xC58B, 0x9DF9, + 0xC58C, 0xBEE4, 0xC58D, 0xBEE5, 0xC58E, 0x9DFA, 0xC58F, 0xBEE6, 0xC590, 0x9DFB, 0xC591, 0xBEE7, 0xC592, 0x9DFC, 0xC593, 0x9DFD, + 0xC594, 0x9DFE, 0xC595, 0xBEE8, 0xC596, 0x9E41, 0xC597, 0xBEE9, 0xC598, 0xBEEA, 0xC599, 0x9E42, 0xC59A, 0x9E43, 0xC59B, 0x9E44, + 0xC59C, 0xBEEB, 0xC59D, 0x9E45, 0xC59E, 0x9E46, 0xC59F, 0x9E47, 0xC5A0, 0xBEEC, 0xC5A1, 0x9E48, 0xC5A2, 0x9E49, 0xC5A3, 0x9E4A, + 0xC5A4, 0x9E4B, 0xC5A5, 0x9E4C, 0xC5A6, 0x9E4D, 0xC5A7, 0x9E4E, 0xC5A8, 0x9E4F, 0xC5A9, 0xBEED, 0xC5AA, 0x9E50, 0xC5AB, 0x9E51, + 0xC5AC, 0x9E52, 0xC5AD, 0x9E53, 0xC5AE, 0x9E54, 0xC5AF, 0x9E55, 0xC5B0, 0x9E56, 0xC5B1, 0x9E57, 0xC5B2, 0x9E58, 0xC5B3, 0x9E59, + 0xC5B4, 0xBEEE, 0xC5B5, 0xBEEF, 0xC5B6, 0x9E5A, 0xC5B7, 0x9E61, 0xC5B8, 0xBEF0, 0xC5B9, 0xBEF1, 0xC5BA, 0x9E62, 0xC5BB, 0xBEF2, + 0xC5BC, 0xBEF3, 0xC5BD, 0xBEF4, 0xC5BE, 0xBEF5, 0xC5BF, 0x9E63, 0xC5C0, 0x9E64, 0xC5C1, 0x9E65, 0xC5C2, 0x9E66, 0xC5C3, 0x9E67, + 0xC5C4, 0xBEF6, 0xC5C5, 0xBEF7, 0xC5C6, 0xBEF8, 0xC5C7, 0xBEF9, 0xC5C8, 0xBEFA, 0xC5C9, 0xBEFB, 0xC5CA, 0xBEFC, 0xC5CB, 0x9E68, + 0xC5CC, 0xBEFD, 0xC5CD, 0x9E69, 0xC5CE, 0xBEFE, 0xC5CF, 0x9E6A, 0xC5D0, 0xBFA1, 0xC5D1, 0xBFA2, 0xC5D2, 0x9E6B, 0xC5D3, 0x9E6C, + 0xC5D4, 0xBFA3, 0xC5D5, 0x9E6D, 0xC5D6, 0x9E6E, 0xC5D7, 0x9E6F, 0xC5D8, 0xBFA4, 0xC5D9, 0x9E70, 0xC5DA, 0x9E71, 0xC5DB, 0x9E72, + 0xC5DC, 0x9E73, 0xC5DD, 0x9E74, 0xC5DE, 0x9E75, 0xC5DF, 0x9E76, 0xC5E0, 0xBFA5, 0xC5E1, 0xBFA6, 0xC5E2, 0x9E77, 0xC5E3, 0xBFA7, + 0xC5E4, 0x9E78, 0xC5E5, 0xBFA8, 0xC5E6, 0x9E79, 0xC5E7, 0x9E7A, 0xC5E8, 0x9E81, 0xC5E9, 0x9E82, 0xC5EA, 0x9E83, 0xC5EB, 0x9E84, + 0xC5EC, 0xBFA9, 0xC5ED, 0xBFAA, 0xC5EE, 0xBFAB, 0xC5EF, 0x9E85, 0xC5F0, 0xBFAC, 0xC5F1, 0x9E86, 0xC5F2, 0x9E87, 0xC5F3, 0x9E88, + 0xC5F4, 0xBFAD, 0xC5F5, 0x9E89, 0xC5F6, 0xBFAE, 0xC5F7, 0xBFAF, 0xC5F8, 0x9E8A, 0xC5F9, 0x9E8B, 0xC5FA, 0x9E8C, 0xC5FB, 0x9E8D, + 0xC5FC, 0xBFB0, 0xC5FD, 0xBFB1, 0xC5FE, 0xBFB2, 0xC5FF, 0xBFB3, 0xC600, 0xBFB4, 0xC601, 0xBFB5, 0xC602, 0x9E8E, 0xC603, 0x9E8F, + 0xC604, 0x9E90, 0xC605, 0xBFB6, 0xC606, 0xBFB7, 0xC607, 0xBFB8, 0xC608, 0xBFB9, 0xC609, 0x9E91, 0xC60A, 0x9E92, 0xC60B, 0x9E93, + 0xC60C, 0xBFBA, 0xC60D, 0x9E94, 0xC60E, 0x9E95, 0xC60F, 0x9E96, 0xC610, 0xBFBB, 0xC611, 0x9E97, 0xC612, 0x9E98, 0xC613, 0x9E99, + 0xC614, 0x9E9A, 0xC615, 0x9E9B, 0xC616, 0x9E9C, 0xC617, 0x9E9D, 0xC618, 0xBFBC, 0xC619, 0xBFBD, 0xC61A, 0x9E9E, 0xC61B, 0xBFBE, + 0xC61C, 0xBFBF, 0xC61D, 0x9E9F, 0xC61E, 0x9EA0, 0xC61F, 0x9EA1, 0xC620, 0x9EA2, 0xC621, 0x9EA3, 0xC622, 0x9EA4, 0xC623, 0x9EA5, + 0xC624, 0xBFC0, 0xC625, 0xBFC1, 0xC626, 0x9EA6, 0xC627, 0x9EA7, 0xC628, 0xBFC2, 0xC629, 0x9EA8, 0xC62A, 0x9EA9, 0xC62B, 0x9EAA, + 0xC62C, 0xBFC3, 0xC62D, 0xBFC4, 0xC62E, 0xBFC5, 0xC62F, 0x9EAB, 0xC630, 0xBFC6, 0xC631, 0x9EAC, 0xC632, 0x9EAD, 0xC633, 0xBFC7, + 0xC634, 0xBFC8, 0xC635, 0xBFC9, 0xC636, 0x9EAE, 0xC637, 0xBFCA, 0xC638, 0x9EAF, 0xC639, 0xBFCB, 0xC63A, 0x9EB0, 0xC63B, 0xBFCC, + 0xC63C, 0x9EB1, 0xC63D, 0x9EB2, 0xC63E, 0x9EB3, 0xC63F, 0x9EB4, 0xC640, 0xBFCD, 0xC641, 0xBFCE, 0xC642, 0x9EB5, 0xC643, 0x9EB6, + 0xC644, 0xBFCF, 0xC645, 0x9EB7, 0xC646, 0x9EB8, 0xC647, 0x9EB9, 0xC648, 0xBFD0, 0xC649, 0x9EBA, 0xC64A, 0x9EBB, 0xC64B, 0x9EBC, + 0xC64C, 0x9EBD, 0xC64D, 0x9EBE, 0xC64E, 0x9EBF, 0xC64F, 0x9EC0, 0xC650, 0xBFD1, 0xC651, 0xBFD2, 0xC652, 0x9EC1, 0xC653, 0xBFD3, + 0xC654, 0xBFD4, 0xC655, 0xBFD5, 0xC656, 0x9EC2, 0xC657, 0x9EC3, 0xC658, 0x9EC4, 0xC659, 0x9EC5, 0xC65A, 0x9EC6, 0xC65B, 0x9EC7, + 0xC65C, 0xBFD6, 0xC65D, 0xBFD7, 0xC65E, 0x9EC8, 0xC65F, 0x9EC9, 0xC660, 0xBFD8, 0xC661, 0x9ECA, 0xC662, 0x9ECB, 0xC663, 0x9ECC, + 0xC664, 0x9ECD, 0xC665, 0x9ECE, 0xC666, 0x9ECF, 0xC667, 0x9ED0, 0xC668, 0x9ED1, 0xC669, 0x9ED2, 0xC66A, 0x9ED3, 0xC66B, 0x9ED4, + 0xC66C, 0xBFD9, 0xC66D, 0x9ED5, 0xC66E, 0x9ED6, 0xC66F, 0xBFDA, 0xC670, 0x9ED7, 0xC671, 0xBFDB, 0xC672, 0x9ED8, 0xC673, 0x9ED9, + 0xC674, 0x9EDA, 0xC675, 0x9EDB, 0xC676, 0x9EDC, 0xC677, 0x9EDD, 0xC678, 0xBFDC, 0xC679, 0xBFDD, 0xC67A, 0x9EDE, 0xC67B, 0x9EDF, + 0xC67C, 0xBFDE, 0xC67D, 0x9EE0, 0xC67E, 0x9EE1, 0xC67F, 0x9EE2, 0xC680, 0xBFDF, 0xC681, 0x9EE3, 0xC682, 0x9EE4, 0xC683, 0x9EE5, + 0xC684, 0x9EE6, 0xC685, 0x9EE7, 0xC686, 0x9EE8, 0xC687, 0x9EE9, 0xC688, 0xBFE0, 0xC689, 0xBFE1, 0xC68A, 0x9EEA, 0xC68B, 0xBFE2, + 0xC68C, 0x9EEB, 0xC68D, 0xBFE3, 0xC68E, 0x9EEC, 0xC68F, 0x9EED, 0xC690, 0x9EEE, 0xC691, 0x9EEF, 0xC692, 0x9EF0, 0xC693, 0x9EF1, + 0xC694, 0xBFE4, 0xC695, 0xBFE5, 0xC696, 0x9EF2, 0xC697, 0x9EF3, 0xC698, 0xBFE6, 0xC699, 0x9EF4, 0xC69A, 0x9EF5, 0xC69B, 0x9EF6, + 0xC69C, 0xBFE7, 0xC69D, 0x9EF7, 0xC69E, 0x9EF8, 0xC69F, 0x9EF9, 0xC6A0, 0x9EFA, 0xC6A1, 0x9EFB, 0xC6A2, 0x9EFC, 0xC6A3, 0x9EFD, + 0xC6A4, 0xBFE8, 0xC6A5, 0xBFE9, 0xC6A6, 0x9EFE, 0xC6A7, 0xBFEA, 0xC6A8, 0x9F41, 0xC6A9, 0xBFEB, 0xC6AA, 0x9F42, 0xC6AB, 0x9F43, + 0xC6AC, 0x9F44, 0xC6AD, 0x9F45, 0xC6AE, 0x9F46, 0xC6AF, 0x9F47, 0xC6B0, 0xBFEC, 0xC6B1, 0xBFED, 0xC6B2, 0x9F48, 0xC6B3, 0x9F49, + 0xC6B4, 0xBFEE, 0xC6B5, 0x9F4A, 0xC6B6, 0x9F4B, 0xC6B7, 0x9F4C, 0xC6B8, 0xBFEF, 0xC6B9, 0xBFF0, 0xC6BA, 0xBFF1, 0xC6BB, 0x9F4D, + 0xC6BC, 0x9F4E, 0xC6BD, 0x9F4F, 0xC6BE, 0x9F50, 0xC6BF, 0x9F51, 0xC6C0, 0xBFF2, 0xC6C1, 0xBFF3, 0xC6C2, 0x9F52, 0xC6C3, 0xBFF4, + 0xC6C4, 0x9F53, 0xC6C5, 0xBFF5, 0xC6C6, 0x9F54, 0xC6C7, 0x9F55, 0xC6C8, 0x9F56, 0xC6C9, 0x9F57, 0xC6CA, 0x9F58, 0xC6CB, 0x9F59, + 0xC6CC, 0xBFF6, 0xC6CD, 0xBFF7, 0xC6CE, 0x9F5A, 0xC6CF, 0x9F61, 0xC6D0, 0xBFF8, 0xC6D1, 0x9F62, 0xC6D2, 0x9F63, 0xC6D3, 0x9F64, + 0xC6D4, 0xBFF9, 0xC6D5, 0x9F65, 0xC6D6, 0x9F66, 0xC6D7, 0x9F67, 0xC6D8, 0x9F68, 0xC6D9, 0x9F69, 0xC6DA, 0x9F6A, 0xC6DB, 0x9F6B, + 0xC6DC, 0xBFFA, 0xC6DD, 0xBFFB, 0xC6DE, 0x9F6C, 0xC6DF, 0x9F6D, 0xC6E0, 0xBFFC, 0xC6E1, 0xBFFD, 0xC6E2, 0x9F6E, 0xC6E3, 0x9F6F, + 0xC6E4, 0x9F70, 0xC6E5, 0x9F71, 0xC6E6, 0x9F72, 0xC6E7, 0x9F73, 0xC6E8, 0xBFFE, 0xC6E9, 0xC0A1, 0xC6EA, 0x9F74, 0xC6EB, 0x9F75, + 0xC6EC, 0xC0A2, 0xC6ED, 0x9F76, 0xC6EE, 0x9F77, 0xC6EF, 0x9F78, 0xC6F0, 0xC0A3, 0xC6F1, 0x9F79, 0xC6F2, 0x9F7A, 0xC6F3, 0x9F81, + 0xC6F4, 0x9F82, 0xC6F5, 0x9F83, 0xC6F6, 0x9F84, 0xC6F7, 0x9F85, 0xC6F8, 0xC0A4, 0xC6F9, 0xC0A5, 0xC6FA, 0x9F86, 0xC6FB, 0x9F87, + 0xC6FC, 0x9F88, 0xC6FD, 0xC0A6, 0xC6FE, 0x9F89, 0xC6FF, 0x9F8A, 0xC700, 0x9F8B, 0xC701, 0x9F8C, 0xC702, 0x9F8D, 0xC703, 0x9F8E, + 0xC704, 0xC0A7, 0xC705, 0xC0A8, 0xC706, 0x9F8F, 0xC707, 0x9F90, 0xC708, 0xC0A9, 0xC709, 0x9F91, 0xC70A, 0x9F92, 0xC70B, 0x9F93, + 0xC70C, 0xC0AA, 0xC70D, 0x9F94, 0xC70E, 0x9F95, 0xC70F, 0x9F96, 0xC710, 0x9F97, 0xC711, 0x9F98, 0xC712, 0x9F99, 0xC713, 0x9F9A, + 0xC714, 0xC0AB, 0xC715, 0xC0AC, 0xC716, 0x9F9B, 0xC717, 0xC0AD, 0xC718, 0x9F9C, 0xC719, 0xC0AE, 0xC71A, 0x9F9D, 0xC71B, 0x9F9E, + 0xC71C, 0x9F9F, 0xC71D, 0x9FA0, 0xC71E, 0x9FA1, 0xC71F, 0x9FA2, 0xC720, 0xC0AF, 0xC721, 0xC0B0, 0xC722, 0x9FA3, 0xC723, 0x9FA4, + 0xC724, 0xC0B1, 0xC725, 0x9FA5, 0xC726, 0x9FA6, 0xC727, 0x9FA7, 0xC728, 0xC0B2, 0xC729, 0x9FA8, 0xC72A, 0x9FA9, 0xC72B, 0x9FAA, + 0xC72C, 0x9FAB, 0xC72D, 0x9FAC, 0xC72E, 0x9FAD, 0xC72F, 0x9FAE, 0xC730, 0xC0B3, 0xC731, 0xC0B4, 0xC732, 0x9FAF, 0xC733, 0xC0B5, + 0xC734, 0x9FB0, 0xC735, 0xC0B6, 0xC736, 0x9FB1, 0xC737, 0xC0B7, 0xC738, 0x9FB2, 0xC739, 0x9FB3, 0xC73A, 0x9FB4, 0xC73B, 0x9FB5, + 0xC73C, 0xC0B8, 0xC73D, 0xC0B9, 0xC73E, 0x9FB6, 0xC73F, 0x9FB7, 0xC740, 0xC0BA, 0xC741, 0x9FB8, 0xC742, 0x9FB9, 0xC743, 0x9FBA, + 0xC744, 0xC0BB, 0xC745, 0x9FBB, 0xC746, 0x9FBC, 0xC747, 0x9FBD, 0xC748, 0x9FBE, 0xC749, 0x9FBF, 0xC74A, 0xC0BC, 0xC74B, 0x9FC0, + 0xC74C, 0xC0BD, 0xC74D, 0xC0BE, 0xC74E, 0x9FC1, 0xC74F, 0xC0BF, 0xC750, 0x9FC2, 0xC751, 0xC0C0, 0xC752, 0xC0C1, 0xC753, 0xC0C2, + 0xC754, 0xC0C3, 0xC755, 0xC0C4, 0xC756, 0xC0C5, 0xC757, 0xC0C6, 0xC758, 0xC0C7, 0xC759, 0x9FC3, 0xC75A, 0x9FC4, 0xC75B, 0x9FC5, + 0xC75C, 0xC0C8, 0xC75D, 0x9FC6, 0xC75E, 0x9FC7, 0xC75F, 0x9FC8, 0xC760, 0xC0C9, 0xC761, 0x9FC9, 0xC762, 0x9FCA, 0xC763, 0x9FCB, + 0xC764, 0x9FCC, 0xC765, 0x9FCD, 0xC766, 0x9FCE, 0xC767, 0x9FCF, 0xC768, 0xC0CA, 0xC769, 0x9FD0, 0xC76A, 0x9FD1, 0xC76B, 0xC0CB, + 0xC76C, 0x9FD2, 0xC76D, 0x9FD3, 0xC76E, 0x9FD4, 0xC76F, 0x9FD5, 0xC770, 0x9FD6, 0xC771, 0x9FD7, 0xC772, 0x9FD8, 0xC773, 0x9FD9, + 0xC774, 0xC0CC, 0xC775, 0xC0CD, 0xC776, 0x9FDA, 0xC777, 0x9FDB, 0xC778, 0xC0CE, 0xC779, 0x9FDC, 0xC77A, 0x9FDD, 0xC77B, 0x9FDE, + 0xC77C, 0xC0CF, 0xC77D, 0xC0D0, 0xC77E, 0xC0D1, 0xC77F, 0x9FDF, 0xC780, 0x9FE0, 0xC781, 0x9FE1, 0xC782, 0x9FE2, 0xC783, 0xC0D2, + 0xC784, 0xC0D3, 0xC785, 0xC0D4, 0xC786, 0x9FE3, 0xC787, 0xC0D5, 0xC788, 0xC0D6, 0xC789, 0xC0D7, 0xC78A, 0xC0D8, 0xC78B, 0x9FE4, + 0xC78C, 0x9FE5, 0xC78D, 0x9FE6, 0xC78E, 0xC0D9, 0xC78F, 0x9FE7, 0xC790, 0xC0DA, 0xC791, 0xC0DB, 0xC792, 0x9FE8, 0xC793, 0x9FE9, + 0xC794, 0xC0DC, 0xC795, 0x9FEA, 0xC796, 0xC0DD, 0xC797, 0xC0DE, 0xC798, 0xC0DF, 0xC799, 0x9FEB, 0xC79A, 0xC0E0, 0xC79B, 0x9FEC, + 0xC79C, 0x9FED, 0xC79D, 0x9FEE, 0xC79E, 0x9FEF, 0xC79F, 0x9FF0, 0xC7A0, 0xC0E1, 0xC7A1, 0xC0E2, 0xC7A2, 0x9FF1, 0xC7A3, 0xC0E3, + 0xC7A4, 0xC0E4, 0xC7A5, 0xC0E5, 0xC7A6, 0xC0E6, 0xC7A7, 0x9FF2, 0xC7A8, 0x9FF3, 0xC7A9, 0x9FF4, 0xC7AA, 0x9FF5, 0xC7AB, 0x9FF6, + 0xC7AC, 0xC0E7, 0xC7AD, 0xC0E8, 0xC7AE, 0x9FF7, 0xC7AF, 0x9FF8, 0xC7B0, 0xC0E9, 0xC7B1, 0x9FF9, 0xC7B2, 0x9FFA, 0xC7B3, 0x9FFB, + 0xC7B4, 0xC0EA, 0xC7B5, 0x9FFC, 0xC7B6, 0x9FFD, 0xC7B7, 0x9FFE, 0xC7B8, 0xA041, 0xC7B9, 0xA042, 0xC7BA, 0xA043, 0xC7BB, 0xA044, + 0xC7BC, 0xC0EB, 0xC7BD, 0xC0EC, 0xC7BE, 0xA045, 0xC7BF, 0xC0ED, 0xC7C0, 0xC0EE, 0xC7C1, 0xC0EF, 0xC7C2, 0xA046, 0xC7C3, 0xA047, + 0xC7C4, 0xA048, 0xC7C5, 0xA049, 0xC7C6, 0xA04A, 0xC7C7, 0xA04B, 0xC7C8, 0xC0F0, 0xC7C9, 0xC0F1, 0xC7CA, 0xA04C, 0xC7CB, 0xA04D, + 0xC7CC, 0xC0F2, 0xC7CD, 0xA04E, 0xC7CE, 0xC0F3, 0xC7CF, 0xA04F, 0xC7D0, 0xC0F4, 0xC7D1, 0xA050, 0xC7D2, 0xA051, 0xC7D3, 0xA052, + 0xC7D4, 0xA053, 0xC7D5, 0xA054, 0xC7D6, 0xA055, 0xC7D7, 0xA056, 0xC7D8, 0xC0F5, 0xC7D9, 0xA057, 0xC7DA, 0xA058, 0xC7DB, 0xA059, + 0xC7DC, 0xA05A, 0xC7DD, 0xC0F6, 0xC7DE, 0xA061, 0xC7DF, 0xA062, 0xC7E0, 0xA063, 0xC7E1, 0xA064, 0xC7E2, 0xA065, 0xC7E3, 0xA066, + 0xC7E4, 0xC0F7, 0xC7E5, 0xA067, 0xC7E6, 0xA068, 0xC7E7, 0xA069, 0xC7E8, 0xC0F8, 0xC7E9, 0xA06A, 0xC7EA, 0xA06B, 0xC7EB, 0xA06C, + 0xC7EC, 0xC0F9, 0xC7ED, 0xA06D, 0xC7EE, 0xA06E, 0xC7EF, 0xA06F, 0xC7F0, 0xA070, 0xC7F1, 0xA071, 0xC7F2, 0xA072, 0xC7F3, 0xA073, + 0xC7F4, 0xA074, 0xC7F5, 0xA075, 0xC7F6, 0xA076, 0xC7F7, 0xA077, 0xC7F8, 0xA078, 0xC7F9, 0xA079, 0xC7FA, 0xA07A, 0xC7FB, 0xA081, + 0xC7FC, 0xA082, 0xC7FD, 0xA083, 0xC7FE, 0xA084, 0xC7FF, 0xA085, 0xC800, 0xC0FA, 0xC801, 0xC0FB, 0xC802, 0xA086, 0xC803, 0xA087, + 0xC804, 0xC0FC, 0xC805, 0xA088, 0xC806, 0xA089, 0xC807, 0xA08A, 0xC808, 0xC0FD, 0xC809, 0xA08B, 0xC80A, 0xC0FE, 0xC80B, 0xA08C, + 0xC80C, 0xA08D, 0xC80D, 0xA08E, 0xC80E, 0xA08F, 0xC80F, 0xA090, 0xC810, 0xC1A1, 0xC811, 0xC1A2, 0xC812, 0xA091, 0xC813, 0xC1A3, + 0xC814, 0xA092, 0xC815, 0xC1A4, 0xC816, 0xC1A5, 0xC817, 0xA093, 0xC818, 0xA094, 0xC819, 0xA095, 0xC81A, 0xA096, 0xC81B, 0xA097, + 0xC81C, 0xC1A6, 0xC81D, 0xC1A7, 0xC81E, 0xA098, 0xC81F, 0xA099, 0xC820, 0xC1A8, 0xC821, 0xA09A, 0xC822, 0xA09B, 0xC823, 0xA09C, + 0xC824, 0xC1A9, 0xC825, 0xA09D, 0xC826, 0xA09E, 0xC827, 0xA09F, 0xC828, 0xA0A0, 0xC829, 0xA0A1, 0xC82A, 0xA0A2, 0xC82B, 0xA0A3, + 0xC82C, 0xC1AA, 0xC82D, 0xC1AB, 0xC82E, 0xA0A4, 0xC82F, 0xC1AC, 0xC830, 0xA0A5, 0xC831, 0xC1AD, 0xC832, 0xA0A6, 0xC833, 0xA0A7, + 0xC834, 0xA0A8, 0xC835, 0xA0A9, 0xC836, 0xA0AA, 0xC837, 0xA0AB, 0xC838, 0xC1AE, 0xC839, 0xA0AC, 0xC83A, 0xA0AD, 0xC83B, 0xA0AE, + 0xC83C, 0xC1AF, 0xC83D, 0xA0AF, 0xC83E, 0xA0B0, 0xC83F, 0xA0B1, 0xC840, 0xC1B0, 0xC841, 0xA0B2, 0xC842, 0xA0B3, 0xC843, 0xA0B4, + 0xC844, 0xA0B5, 0xC845, 0xA0B6, 0xC846, 0xA0B7, 0xC847, 0xA0B8, 0xC848, 0xC1B1, 0xC849, 0xC1B2, 0xC84A, 0xA0B9, 0xC84B, 0xA0BA, + 0xC84C, 0xC1B3, 0xC84D, 0xC1B4, 0xC84E, 0xA0BB, 0xC84F, 0xA0BC, 0xC850, 0xA0BD, 0xC851, 0xA0BE, 0xC852, 0xA0BF, 0xC853, 0xA0C0, + 0xC854, 0xC1B5, 0xC855, 0xA0C1, 0xC856, 0xA0C2, 0xC857, 0xA0C3, 0xC858, 0xA0C4, 0xC859, 0xA0C5, 0xC85A, 0xA0C6, 0xC85B, 0xA0C7, + 0xC85C, 0xA0C8, 0xC85D, 0xA0C9, 0xC85E, 0xA0CA, 0xC85F, 0xA0CB, 0xC860, 0xA0CC, 0xC861, 0xA0CD, 0xC862, 0xA0CE, 0xC863, 0xA0CF, + 0xC864, 0xA0D0, 0xC865, 0xA0D1, 0xC866, 0xA0D2, 0xC867, 0xA0D3, 0xC868, 0xA0D4, 0xC869, 0xA0D5, 0xC86A, 0xA0D6, 0xC86B, 0xA0D7, + 0xC86C, 0xA0D8, 0xC86D, 0xA0D9, 0xC86E, 0xA0DA, 0xC86F, 0xA0DB, 0xC870, 0xC1B6, 0xC871, 0xC1B7, 0xC872, 0xA0DC, 0xC873, 0xA0DD, + 0xC874, 0xC1B8, 0xC875, 0xA0DE, 0xC876, 0xA0DF, 0xC877, 0xA0E0, 0xC878, 0xC1B9, 0xC879, 0xA0E1, 0xC87A, 0xC1BA, 0xC87B, 0xA0E2, + 0xC87C, 0xA0E3, 0xC87D, 0xA0E4, 0xC87E, 0xA0E5, 0xC87F, 0xA0E6, 0xC880, 0xC1BB, 0xC881, 0xC1BC, 0xC882, 0xA0E7, 0xC883, 0xC1BD, + 0xC884, 0xA0E8, 0xC885, 0xC1BE, 0xC886, 0xC1BF, 0xC887, 0xC1C0, 0xC888, 0xA0E9, 0xC889, 0xA0EA, 0xC88A, 0xA0EB, 0xC88B, 0xC1C1, + 0xC88C, 0xC1C2, 0xC88D, 0xC1C3, 0xC88E, 0xA0EC, 0xC88F, 0xA0ED, 0xC890, 0xA0EE, 0xC891, 0xA0EF, 0xC892, 0xA0F0, 0xC893, 0xA0F1, + 0xC894, 0xC1C4, 0xC895, 0xA0F2, 0xC896, 0xA0F3, 0xC897, 0xA0F4, 0xC898, 0xA0F5, 0xC899, 0xA0F6, 0xC89A, 0xA0F7, 0xC89B, 0xA0F8, + 0xC89C, 0xA0F9, 0xC89D, 0xC1C5, 0xC89E, 0xA0FA, 0xC89F, 0xC1C6, 0xC8A0, 0xA0FB, 0xC8A1, 0xC1C7, 0xC8A2, 0xA0FC, 0xC8A3, 0xA0FD, + 0xC8A4, 0xA0FE, 0xC8A5, 0xA141, 0xC8A6, 0xA142, 0xC8A7, 0xA143, 0xC8A8, 0xC1C8, 0xC8A9, 0xA144, 0xC8AA, 0xA145, 0xC8AB, 0xA146, + 0xC8AC, 0xA147, 0xC8AD, 0xA148, 0xC8AE, 0xA149, 0xC8AF, 0xA14A, 0xC8B0, 0xA14B, 0xC8B1, 0xA14C, 0xC8B2, 0xA14D, 0xC8B3, 0xA14E, + 0xC8B4, 0xA14F, 0xC8B5, 0xA150, 0xC8B6, 0xA151, 0xC8B7, 0xA152, 0xC8B8, 0xA153, 0xC8B9, 0xA154, 0xC8BA, 0xA155, 0xC8BB, 0xA156, + 0xC8BC, 0xC1C9, 0xC8BD, 0xC1CA, 0xC8BE, 0xA157, 0xC8BF, 0xA158, 0xC8C0, 0xA159, 0xC8C1, 0xA15A, 0xC8C2, 0xA161, 0xC8C3, 0xA162, + 0xC8C4, 0xC1CB, 0xC8C5, 0xA163, 0xC8C6, 0xA164, 0xC8C7, 0xA165, 0xC8C8, 0xC1CC, 0xC8C9, 0xA166, 0xC8CA, 0xA167, 0xC8CB, 0xA168, + 0xC8CC, 0xC1CD, 0xC8CD, 0xA169, 0xC8CE, 0xA16A, 0xC8CF, 0xA16B, 0xC8D0, 0xA16C, 0xC8D1, 0xA16D, 0xC8D2, 0xA16E, 0xC8D3, 0xA16F, + 0xC8D4, 0xC1CE, 0xC8D5, 0xC1CF, 0xC8D6, 0xA170, 0xC8D7, 0xC1D0, 0xC8D8, 0xA171, 0xC8D9, 0xC1D1, 0xC8DA, 0xA172, 0xC8DB, 0xA173, + 0xC8DC, 0xA174, 0xC8DD, 0xA175, 0xC8DE, 0xA176, 0xC8DF, 0xA177, 0xC8E0, 0xC1D2, 0xC8E1, 0xC1D3, 0xC8E2, 0xA178, 0xC8E3, 0xA179, + 0xC8E4, 0xC1D4, 0xC8E5, 0xA17A, 0xC8E6, 0xA181, 0xC8E7, 0xA182, 0xC8E8, 0xA183, 0xC8E9, 0xA184, 0xC8EA, 0xA185, 0xC8EB, 0xA186, + 0xC8EC, 0xA187, 0xC8ED, 0xA188, 0xC8EE, 0xA189, 0xC8EF, 0xA18A, 0xC8F0, 0xA18B, 0xC8F1, 0xA18C, 0xC8F2, 0xA18D, 0xC8F3, 0xA18E, + 0xC8F4, 0xA18F, 0xC8F5, 0xC1D5, 0xC8F6, 0xA190, 0xC8F7, 0xA191, 0xC8F8, 0xA192, 0xC8F9, 0xA193, 0xC8FA, 0xA194, 0xC8FB, 0xA195, + 0xC8FC, 0xC1D6, 0xC8FD, 0xC1D7, 0xC8FE, 0xA196, 0xC8FF, 0xA197, 0xC900, 0xC1D8, 0xC901, 0xA198, 0xC902, 0xA199, 0xC903, 0xA19A, + 0xC904, 0xC1D9, 0xC905, 0xC1DA, 0xC906, 0xC1DB, 0xC907, 0xA19B, 0xC908, 0xA19C, 0xC909, 0xA19D, 0xC90A, 0xA19E, 0xC90B, 0xA19F, + 0xC90C, 0xC1DC, 0xC90D, 0xC1DD, 0xC90E, 0xA1A0, 0xC90F, 0xC1DE, 0xC910, 0xA241, 0xC911, 0xC1DF, 0xC912, 0xA242, 0xC913, 0xA243, + 0xC914, 0xA244, 0xC915, 0xA245, 0xC916, 0xA246, 0xC917, 0xA247, 0xC918, 0xC1E0, 0xC919, 0xA248, 0xC91A, 0xA249, 0xC91B, 0xA24A, + 0xC91C, 0xA24B, 0xC91D, 0xA24C, 0xC91E, 0xA24D, 0xC91F, 0xA24E, 0xC920, 0xA24F, 0xC921, 0xA250, 0xC922, 0xA251, 0xC923, 0xA252, + 0xC924, 0xA253, 0xC925, 0xA254, 0xC926, 0xA255, 0xC927, 0xA256, 0xC928, 0xA257, 0xC929, 0xA258, 0xC92A, 0xA259, 0xC92B, 0xA25A, + 0xC92C, 0xC1E1, 0xC92D, 0xA261, 0xC92E, 0xA262, 0xC92F, 0xA263, 0xC930, 0xA264, 0xC931, 0xA265, 0xC932, 0xA266, 0xC933, 0xA267, + 0xC934, 0xC1E2, 0xC935, 0xA268, 0xC936, 0xA269, 0xC937, 0xA26A, 0xC938, 0xA26B, 0xC939, 0xA26C, 0xC93A, 0xA26D, 0xC93B, 0xA26E, + 0xC93C, 0xA26F, 0xC93D, 0xA270, 0xC93E, 0xA271, 0xC93F, 0xA272, 0xC940, 0xA273, 0xC941, 0xA274, 0xC942, 0xA275, 0xC943, 0xA276, + 0xC944, 0xA277, 0xC945, 0xA278, 0xC946, 0xA279, 0xC947, 0xA27A, 0xC948, 0xA281, 0xC949, 0xA282, 0xC94A, 0xA283, 0xC94B, 0xA284, + 0xC94C, 0xA285, 0xC94D, 0xA286, 0xC94E, 0xA287, 0xC94F, 0xA288, 0xC950, 0xC1E3, 0xC951, 0xC1E4, 0xC952, 0xA289, 0xC953, 0xA28A, + 0xC954, 0xC1E5, 0xC955, 0xA28B, 0xC956, 0xA28C, 0xC957, 0xA28D, 0xC958, 0xC1E6, 0xC959, 0xA28E, 0xC95A, 0xA28F, 0xC95B, 0xA290, + 0xC95C, 0xA291, 0xC95D, 0xA292, 0xC95E, 0xA293, 0xC95F, 0xA294, 0xC960, 0xC1E7, 0xC961, 0xC1E8, 0xC962, 0xA295, 0xC963, 0xC1E9, + 0xC964, 0xA296, 0xC965, 0xA297, 0xC966, 0xA298, 0xC967, 0xA299, 0xC968, 0xA29A, 0xC969, 0xA29B, 0xC96A, 0xA29C, 0xC96B, 0xA29D, + 0xC96C, 0xC1EA, 0xC96D, 0xA29E, 0xC96E, 0xA29F, 0xC96F, 0xA2A0, 0xC970, 0xC1EB, 0xC971, 0xA341, 0xC972, 0xA342, 0xC973, 0xA343, + 0xC974, 0xC1EC, 0xC975, 0xA344, 0xC976, 0xA345, 0xC977, 0xA346, 0xC978, 0xA347, 0xC979, 0xA348, 0xC97A, 0xA349, 0xC97B, 0xA34A, + 0xC97C, 0xC1ED, 0xC97D, 0xA34B, 0xC97E, 0xA34C, 0xC97F, 0xA34D, 0xC980, 0xA34E, 0xC981, 0xA34F, 0xC982, 0xA350, 0xC983, 0xA351, + 0xC984, 0xA352, 0xC985, 0xA353, 0xC986, 0xA354, 0xC987, 0xA355, 0xC988, 0xC1EE, 0xC989, 0xC1EF, 0xC98A, 0xA356, 0xC98B, 0xA357, + 0xC98C, 0xC1F0, 0xC98D, 0xA358, 0xC98E, 0xA359, 0xC98F, 0xA35A, 0xC990, 0xC1F1, 0xC991, 0xA361, 0xC992, 0xA362, 0xC993, 0xA363, + 0xC994, 0xA364, 0xC995, 0xA365, 0xC996, 0xA366, 0xC997, 0xA367, 0xC998, 0xC1F2, 0xC999, 0xC1F3, 0xC99A, 0xA368, 0xC99B, 0xC1F4, + 0xC99C, 0xA369, 0xC99D, 0xC1F5, 0xC99E, 0xA36A, 0xC99F, 0xA36B, 0xC9A0, 0xA36C, 0xC9A1, 0xA36D, 0xC9A2, 0xA36E, 0xC9A3, 0xA36F, + 0xC9A4, 0xA370, 0xC9A5, 0xA371, 0xC9A6, 0xA372, 0xC9A7, 0xA373, 0xC9A8, 0xA374, 0xC9A9, 0xA375, 0xC9AA, 0xA376, 0xC9AB, 0xA377, + 0xC9AC, 0xA378, 0xC9AD, 0xA379, 0xC9AE, 0xA37A, 0xC9AF, 0xA381, 0xC9B0, 0xA382, 0xC9B1, 0xA383, 0xC9B2, 0xA384, 0xC9B3, 0xA385, + 0xC9B4, 0xA386, 0xC9B5, 0xA387, 0xC9B6, 0xA388, 0xC9B7, 0xA389, 0xC9B8, 0xA38A, 0xC9B9, 0xA38B, 0xC9BA, 0xA38C, 0xC9BB, 0xA38D, + 0xC9BC, 0xA38E, 0xC9BD, 0xA38F, 0xC9BE, 0xA390, 0xC9BF, 0xA391, 0xC9C0, 0xC1F6, 0xC9C1, 0xC1F7, 0xC9C2, 0xA392, 0xC9C3, 0xA393, + 0xC9C4, 0xC1F8, 0xC9C5, 0xA394, 0xC9C6, 0xA395, 0xC9C7, 0xC1F9, 0xC9C8, 0xC1FA, 0xC9C9, 0xA396, 0xC9CA, 0xC1FB, 0xC9CB, 0xA397, + 0xC9CC, 0xA398, 0xC9CD, 0xA399, 0xC9CE, 0xA39A, 0xC9CF, 0xA39B, 0xC9D0, 0xC1FC, 0xC9D1, 0xC1FD, 0xC9D2, 0xA39C, 0xC9D3, 0xC1FE, + 0xC9D4, 0xA39D, 0xC9D5, 0xC2A1, 0xC9D6, 0xC2A2, 0xC9D7, 0xA39E, 0xC9D8, 0xA39F, 0xC9D9, 0xC2A3, 0xC9DA, 0xC2A4, 0xC9DB, 0xA3A0, + 0xC9DC, 0xC2A5, 0xC9DD, 0xC2A6, 0xC9DE, 0xA441, 0xC9DF, 0xA442, 0xC9E0, 0xC2A7, 0xC9E1, 0xA443, 0xC9E2, 0xC2A8, 0xC9E3, 0xA444, + 0xC9E4, 0xC2A9, 0xC9E5, 0xA445, 0xC9E6, 0xA446, 0xC9E7, 0xC2AA, 0xC9E8, 0xA447, 0xC9E9, 0xA448, 0xC9EA, 0xA449, 0xC9EB, 0xA44A, + 0xC9EC, 0xC2AB, 0xC9ED, 0xC2AC, 0xC9EE, 0xA44B, 0xC9EF, 0xC2AD, 0xC9F0, 0xC2AE, 0xC9F1, 0xC2AF, 0xC9F2, 0xA44C, 0xC9F3, 0xA44D, + 0xC9F4, 0xA44E, 0xC9F5, 0xA44F, 0xC9F6, 0xA450, 0xC9F7, 0xA451, 0xC9F8, 0xC2B0, 0xC9F9, 0xC2B1, 0xC9FA, 0xA452, 0xC9FB, 0xA453, + 0xC9FC, 0xC2B2, 0xC9FD, 0xA454, 0xC9FE, 0xA455, 0xC9FF, 0xA456, 0xCA00, 0xC2B3, 0xCA01, 0xA457, 0xCA02, 0xA458, 0xCA03, 0xA459, + 0xCA04, 0xA45A, 0xCA05, 0xA461, 0xCA06, 0xA462, 0xCA07, 0xA463, 0xCA08, 0xC2B4, 0xCA09, 0xC2B5, 0xCA0A, 0xA464, 0xCA0B, 0xC2B6, + 0xCA0C, 0xC2B7, 0xCA0D, 0xC2B8, 0xCA0E, 0xA465, 0xCA0F, 0xA466, 0xCA10, 0xA467, 0xCA11, 0xA468, 0xCA12, 0xA469, 0xCA13, 0xA46A, + 0xCA14, 0xC2B9, 0xCA15, 0xA46B, 0xCA16, 0xA46C, 0xCA17, 0xA46D, 0xCA18, 0xC2BA, 0xCA19, 0xA46E, 0xCA1A, 0xA46F, 0xCA1B, 0xA470, + 0xCA1C, 0xA471, 0xCA1D, 0xA472, 0xCA1E, 0xA473, 0xCA1F, 0xA474, 0xCA20, 0xA475, 0xCA21, 0xA476, 0xCA22, 0xA477, 0xCA23, 0xA478, + 0xCA24, 0xA479, 0xCA25, 0xA47A, 0xCA26, 0xA481, 0xCA27, 0xA482, 0xCA28, 0xA483, 0xCA29, 0xC2BB, 0xCA2A, 0xA484, 0xCA2B, 0xA485, + 0xCA2C, 0xA486, 0xCA2D, 0xA487, 0xCA2E, 0xA488, 0xCA2F, 0xA489, 0xCA30, 0xA48A, 0xCA31, 0xA48B, 0xCA32, 0xA48C, 0xCA33, 0xA48D, + 0xCA34, 0xA48E, 0xCA35, 0xA48F, 0xCA36, 0xA490, 0xCA37, 0xA491, 0xCA38, 0xA492, 0xCA39, 0xA493, 0xCA3A, 0xA494, 0xCA3B, 0xA495, + 0xCA3C, 0xA496, 0xCA3D, 0xA497, 0xCA3E, 0xA498, 0xCA3F, 0xA499, 0xCA40, 0xA49A, 0xCA41, 0xA49B, 0xCA42, 0xA49C, 0xCA43, 0xA49D, + 0xCA44, 0xA49E, 0xCA45, 0xA49F, 0xCA46, 0xA4A0, 0xCA47, 0xA541, 0xCA48, 0xA542, 0xCA49, 0xA543, 0xCA4A, 0xA544, 0xCA4B, 0xA545, + 0xCA4C, 0xC2BC, 0xCA4D, 0xC2BD, 0xCA4E, 0xA546, 0xCA4F, 0xA547, 0xCA50, 0xC2BE, 0xCA51, 0xA548, 0xCA52, 0xA549, 0xCA53, 0xA54A, + 0xCA54, 0xC2BF, 0xCA55, 0xA54B, 0xCA56, 0xA54C, 0xCA57, 0xA54D, 0xCA58, 0xA54E, 0xCA59, 0xA54F, 0xCA5A, 0xA550, 0xCA5B, 0xA551, + 0xCA5C, 0xC2C0, 0xCA5D, 0xC2C1, 0xCA5E, 0xA552, 0xCA5F, 0xC2C2, 0xCA60, 0xC2C3, 0xCA61, 0xC2C4, 0xCA62, 0xA553, 0xCA63, 0xA554, + 0xCA64, 0xA555, 0xCA65, 0xA556, 0xCA66, 0xA557, 0xCA67, 0xA558, 0xCA68, 0xC2C5, 0xCA69, 0xA559, 0xCA6A, 0xA55A, 0xCA6B, 0xA561, + 0xCA6C, 0xA562, 0xCA6D, 0xA563, 0xCA6E, 0xA564, 0xCA6F, 0xA565, 0xCA70, 0xA566, 0xCA71, 0xA567, 0xCA72, 0xA568, 0xCA73, 0xA569, + 0xCA74, 0xA56A, 0xCA75, 0xA56B, 0xCA76, 0xA56C, 0xCA77, 0xA56D, 0xCA78, 0xA56E, 0xCA79, 0xA56F, 0xCA7A, 0xA570, 0xCA7B, 0xA571, + 0xCA7C, 0xA572, 0xCA7D, 0xC2C6, 0xCA7E, 0xA573, 0xCA7F, 0xA574, 0xCA80, 0xA575, 0xCA81, 0xA576, 0xCA82, 0xA577, 0xCA83, 0xA578, + 0xCA84, 0xC2C7, 0xCA85, 0xA579, 0xCA86, 0xA57A, 0xCA87, 0xA581, 0xCA88, 0xA582, 0xCA89, 0xA583, 0xCA8A, 0xA584, 0xCA8B, 0xA585, + 0xCA8C, 0xA586, 0xCA8D, 0xA587, 0xCA8E, 0xA588, 0xCA8F, 0xA589, 0xCA90, 0xA58A, 0xCA91, 0xA58B, 0xCA92, 0xA58C, 0xCA93, 0xA58D, + 0xCA94, 0xA58E, 0xCA95, 0xA58F, 0xCA96, 0xA590, 0xCA97, 0xA591, 0xCA98, 0xC2C8, 0xCA99, 0xA592, 0xCA9A, 0xA593, 0xCA9B, 0xA594, + 0xCA9C, 0xA595, 0xCA9D, 0xA596, 0xCA9E, 0xA597, 0xCA9F, 0xA598, 0xCAA0, 0xA599, 0xCAA1, 0xA59A, 0xCAA2, 0xA59B, 0xCAA3, 0xA59C, + 0xCAA4, 0xA59D, 0xCAA5, 0xA59E, 0xCAA6, 0xA59F, 0xCAA7, 0xA5A0, 0xCAA8, 0xA641, 0xCAA9, 0xA642, 0xCAAA, 0xA643, 0xCAAB, 0xA644, + 0xCAAC, 0xA645, 0xCAAD, 0xA646, 0xCAAE, 0xA647, 0xCAAF, 0xA648, 0xCAB0, 0xA649, 0xCAB1, 0xA64A, 0xCAB2, 0xA64B, 0xCAB3, 0xA64C, + 0xCAB4, 0xA64D, 0xCAB5, 0xA64E, 0xCAB6, 0xA64F, 0xCAB7, 0xA650, 0xCAB8, 0xA651, 0xCAB9, 0xA652, 0xCABA, 0xA653, 0xCABB, 0xA654, + 0xCABC, 0xC2C9, 0xCABD, 0xC2CA, 0xCABE, 0xA655, 0xCABF, 0xA656, 0xCAC0, 0xC2CB, 0xCAC1, 0xA657, 0xCAC2, 0xA658, 0xCAC3, 0xA659, + 0xCAC4, 0xC2CC, 0xCAC5, 0xA65A, 0xCAC6, 0xA661, 0xCAC7, 0xA662, 0xCAC8, 0xA663, 0xCAC9, 0xA664, 0xCACA, 0xA665, 0xCACB, 0xA666, + 0xCACC, 0xC2CD, 0xCACD, 0xC2CE, 0xCACE, 0xA667, 0xCACF, 0xC2CF, 0xCAD0, 0xA668, 0xCAD1, 0xC2D0, 0xCAD2, 0xA669, 0xCAD3, 0xC2D1, + 0xCAD4, 0xA66A, 0xCAD5, 0xA66B, 0xCAD6, 0xA66C, 0xCAD7, 0xA66D, 0xCAD8, 0xC2D2, 0xCAD9, 0xC2D3, 0xCADA, 0xA66E, 0xCADB, 0xA66F, + 0xCADC, 0xA670, 0xCADD, 0xA671, 0xCADE, 0xA672, 0xCADF, 0xA673, 0xCAE0, 0xC2D4, 0xCAE1, 0xA674, 0xCAE2, 0xA675, 0xCAE3, 0xA676, + 0xCAE4, 0xA677, 0xCAE5, 0xA678, 0xCAE6, 0xA679, 0xCAE7, 0xA67A, 0xCAE8, 0xA681, 0xCAE9, 0xA682, 0xCAEA, 0xA683, 0xCAEB, 0xA684, + 0xCAEC, 0xC2D5, 0xCAED, 0xA685, 0xCAEE, 0xA686, 0xCAEF, 0xA687, 0xCAF0, 0xA688, 0xCAF1, 0xA689, 0xCAF2, 0xA68A, 0xCAF3, 0xA68B, + 0xCAF4, 0xC2D6, 0xCAF5, 0xA68C, 0xCAF6, 0xA68D, 0xCAF7, 0xA68E, 0xCAF8, 0xA68F, 0xCAF9, 0xA690, 0xCAFA, 0xA691, 0xCAFB, 0xA692, + 0xCAFC, 0xA693, 0xCAFD, 0xA694, 0xCAFE, 0xA695, 0xCAFF, 0xA696, 0xCB00, 0xA697, 0xCB01, 0xA698, 0xCB02, 0xA699, 0xCB03, 0xA69A, + 0xCB04, 0xA69B, 0xCB05, 0xA69C, 0xCB06, 0xA69D, 0xCB07, 0xA69E, 0xCB08, 0xC2D7, 0xCB09, 0xA69F, 0xCB0A, 0xA6A0, 0xCB0B, 0xA741, + 0xCB0C, 0xA742, 0xCB0D, 0xA743, 0xCB0E, 0xA744, 0xCB0F, 0xA745, 0xCB10, 0xC2D8, 0xCB11, 0xA746, 0xCB12, 0xA747, 0xCB13, 0xA748, + 0xCB14, 0xC2D9, 0xCB15, 0xA749, 0xCB16, 0xA74A, 0xCB17, 0xA74B, 0xCB18, 0xC2DA, 0xCB19, 0xA74C, 0xCB1A, 0xA74D, 0xCB1B, 0xA74E, + 0xCB1C, 0xA74F, 0xCB1D, 0xA750, 0xCB1E, 0xA751, 0xCB1F, 0xA752, 0xCB20, 0xC2DB, 0xCB21, 0xC2DC, 0xCB22, 0xA753, 0xCB23, 0xA754, + 0xCB24, 0xA755, 0xCB25, 0xA756, 0xCB26, 0xA757, 0xCB27, 0xA758, 0xCB28, 0xA759, 0xCB29, 0xA75A, 0xCB2A, 0xA761, 0xCB2B, 0xA762, + 0xCB2C, 0xA763, 0xCB2D, 0xA764, 0xCB2E, 0xA765, 0xCB2F, 0xA766, 0xCB30, 0xA767, 0xCB31, 0xA768, 0xCB32, 0xA769, 0xCB33, 0xA76A, + 0xCB34, 0xA76B, 0xCB35, 0xA76C, 0xCB36, 0xA76D, 0xCB37, 0xA76E, 0xCB38, 0xA76F, 0xCB39, 0xA770, 0xCB3A, 0xA771, 0xCB3B, 0xA772, + 0xCB3C, 0xA773, 0xCB3D, 0xA774, 0xCB3E, 0xA775, 0xCB3F, 0xA776, 0xCB40, 0xA777, 0xCB41, 0xC2DD, 0xCB42, 0xA778, 0xCB43, 0xA779, + 0xCB44, 0xA77A, 0xCB45, 0xA781, 0xCB46, 0xA782, 0xCB47, 0xA783, 0xCB48, 0xC2DE, 0xCB49, 0xC2DF, 0xCB4A, 0xA784, 0xCB4B, 0xA785, + 0xCB4C, 0xC2E0, 0xCB4D, 0xA786, 0xCB4E, 0xA787, 0xCB4F, 0xA788, 0xCB50, 0xC2E1, 0xCB51, 0xA789, 0xCB52, 0xA78A, 0xCB53, 0xA78B, + 0xCB54, 0xA78C, 0xCB55, 0xA78D, 0xCB56, 0xA78E, 0xCB57, 0xA78F, 0xCB58, 0xC2E2, 0xCB59, 0xC2E3, 0xCB5A, 0xA790, 0xCB5B, 0xA791, + 0xCB5C, 0xA792, 0xCB5D, 0xC2E4, 0xCB5E, 0xA793, 0xCB5F, 0xA794, 0xCB60, 0xA795, 0xCB61, 0xA796, 0xCB62, 0xA797, 0xCB63, 0xA798, + 0xCB64, 0xC2E5, 0xCB65, 0xA799, 0xCB66, 0xA79A, 0xCB67, 0xA79B, 0xCB68, 0xA79C, 0xCB69, 0xA79D, 0xCB6A, 0xA79E, 0xCB6B, 0xA79F, + 0xCB6C, 0xA7A0, 0xCB6D, 0xA841, 0xCB6E, 0xA842, 0xCB6F, 0xA843, 0xCB70, 0xA844, 0xCB71, 0xA845, 0xCB72, 0xA846, 0xCB73, 0xA847, + 0xCB74, 0xA848, 0xCB75, 0xA849, 0xCB76, 0xA84A, 0xCB77, 0xA84B, 0xCB78, 0xC2E6, 0xCB79, 0xC2E7, 0xCB7A, 0xA84C, 0xCB7B, 0xA84D, + 0xCB7C, 0xA84E, 0xCB7D, 0xA84F, 0xCB7E, 0xA850, 0xCB7F, 0xA851, 0xCB80, 0xA852, 0xCB81, 0xA853, 0xCB82, 0xA854, 0xCB83, 0xA855, + 0xCB84, 0xA856, 0xCB85, 0xA857, 0xCB86, 0xA858, 0xCB87, 0xA859, 0xCB88, 0xA85A, 0xCB89, 0xA861, 0xCB8A, 0xA862, 0xCB8B, 0xA863, + 0xCB8C, 0xA864, 0xCB8D, 0xA865, 0xCB8E, 0xA866, 0xCB8F, 0xA867, 0xCB90, 0xA868, 0xCB91, 0xA869, 0xCB92, 0xA86A, 0xCB93, 0xA86B, + 0xCB94, 0xA86C, 0xCB95, 0xA86D, 0xCB96, 0xA86E, 0xCB97, 0xA86F, 0xCB98, 0xA870, 0xCB99, 0xA871, 0xCB9A, 0xA872, 0xCB9B, 0xA873, + 0xCB9C, 0xC2E8, 0xCB9D, 0xA874, 0xCB9E, 0xA875, 0xCB9F, 0xA876, 0xCBA0, 0xA877, 0xCBA1, 0xA878, 0xCBA2, 0xA879, 0xCBA3, 0xA87A, + 0xCBA4, 0xA881, 0xCBA5, 0xA882, 0xCBA6, 0xA883, 0xCBA7, 0xA884, 0xCBA8, 0xA885, 0xCBA9, 0xA886, 0xCBAA, 0xA887, 0xCBAB, 0xA888, + 0xCBAC, 0xA889, 0xCBAD, 0xA88A, 0xCBAE, 0xA88B, 0xCBAF, 0xA88C, 0xCBB0, 0xA88D, 0xCBB1, 0xA88E, 0xCBB2, 0xA88F, 0xCBB3, 0xA890, + 0xCBB4, 0xA891, 0xCBB5, 0xA892, 0xCBB6, 0xA893, 0xCBB7, 0xA894, 0xCBB8, 0xC2E9, 0xCBB9, 0xA895, 0xCBBA, 0xA896, 0xCBBB, 0xA897, + 0xCBBC, 0xA898, 0xCBBD, 0xA899, 0xCBBE, 0xA89A, 0xCBBF, 0xA89B, 0xCBC0, 0xA89C, 0xCBC1, 0xA89D, 0xCBC2, 0xA89E, 0xCBC3, 0xA89F, + 0xCBC4, 0xA8A0, 0xCBC5, 0xA941, 0xCBC6, 0xA942, 0xCBC7, 0xA943, 0xCBC8, 0xA944, 0xCBC9, 0xA945, 0xCBCA, 0xA946, 0xCBCB, 0xA947, + 0xCBCC, 0xA948, 0xCBCD, 0xA949, 0xCBCE, 0xA94A, 0xCBCF, 0xA94B, 0xCBD0, 0xA94C, 0xCBD1, 0xA94D, 0xCBD2, 0xA94E, 0xCBD3, 0xA94F, + 0xCBD4, 0xC2EA, 0xCBD5, 0xA950, 0xCBD6, 0xA951, 0xCBD7, 0xA952, 0xCBD8, 0xA953, 0xCBD9, 0xA954, 0xCBDA, 0xA955, 0xCBDB, 0xA956, + 0xCBDC, 0xA957, 0xCBDD, 0xA958, 0xCBDE, 0xA959, 0xCBDF, 0xA95A, 0xCBE0, 0xA961, 0xCBE1, 0xA962, 0xCBE2, 0xA963, 0xCBE3, 0xA964, + 0xCBE4, 0xC2EB, 0xCBE5, 0xA965, 0xCBE6, 0xA966, 0xCBE7, 0xC2EC, 0xCBE8, 0xA967, 0xCBE9, 0xC2ED, 0xCBEA, 0xA968, 0xCBEB, 0xA969, + 0xCBEC, 0xA96A, 0xCBED, 0xA96B, 0xCBEE, 0xA96C, 0xCBEF, 0xA96D, 0xCBF0, 0xA96E, 0xCBF1, 0xA96F, 0xCBF2, 0xA970, 0xCBF3, 0xA971, + 0xCBF4, 0xA972, 0xCBF5, 0xA973, 0xCBF6, 0xA974, 0xCBF7, 0xA975, 0xCBF8, 0xA976, 0xCBF9, 0xA977, 0xCBFA, 0xA978, 0xCBFB, 0xA979, + 0xCBFC, 0xA97A, 0xCBFD, 0xA981, 0xCBFE, 0xA982, 0xCBFF, 0xA983, 0xCC00, 0xA984, 0xCC01, 0xA985, 0xCC02, 0xA986, 0xCC03, 0xA987, + 0xCC04, 0xA988, 0xCC05, 0xA989, 0xCC06, 0xA98A, 0xCC07, 0xA98B, 0xCC08, 0xA98C, 0xCC09, 0xA98D, 0xCC0A, 0xA98E, 0xCC0B, 0xA98F, + 0xCC0C, 0xC2EE, 0xCC0D, 0xC2EF, 0xCC0E, 0xA990, 0xCC0F, 0xA991, 0xCC10, 0xC2F0, 0xCC11, 0xA992, 0xCC12, 0xA993, 0xCC13, 0xA994, + 0xCC14, 0xC2F1, 0xCC15, 0xA995, 0xCC16, 0xA996, 0xCC17, 0xA997, 0xCC18, 0xA998, 0xCC19, 0xA999, 0xCC1A, 0xA99A, 0xCC1B, 0xA99B, + 0xCC1C, 0xC2F2, 0xCC1D, 0xC2F3, 0xCC1E, 0xA99C, 0xCC1F, 0xA99D, 0xCC20, 0xA99E, 0xCC21, 0xC2F4, 0xCC22, 0xC2F5, 0xCC23, 0xA99F, + 0xCC24, 0xA9A0, 0xCC25, 0xAA41, 0xCC26, 0xAA42, 0xCC27, 0xC2F6, 0xCC28, 0xC2F7, 0xCC29, 0xC2F8, 0xCC2A, 0xAA43, 0xCC2B, 0xAA44, + 0xCC2C, 0xC2F9, 0xCC2D, 0xAA45, 0xCC2E, 0xC2FA, 0xCC2F, 0xAA46, 0xCC30, 0xC2FB, 0xCC31, 0xAA47, 0xCC32, 0xAA48, 0xCC33, 0xAA49, + 0xCC34, 0xAA4A, 0xCC35, 0xAA4B, 0xCC36, 0xAA4C, 0xCC37, 0xAA4D, 0xCC38, 0xC2FC, 0xCC39, 0xC2FD, 0xCC3A, 0xAA4E, 0xCC3B, 0xC2FE, + 0xCC3C, 0xC3A1, 0xCC3D, 0xC3A2, 0xCC3E, 0xC3A3, 0xCC3F, 0xAA4F, 0xCC40, 0xAA50, 0xCC41, 0xAA51, 0xCC42, 0xAA52, 0xCC43, 0xAA53, + 0xCC44, 0xC3A4, 0xCC45, 0xC3A5, 0xCC46, 0xAA54, 0xCC47, 0xAA55, 0xCC48, 0xC3A6, 0xCC49, 0xAA56, 0xCC4A, 0xAA57, 0xCC4B, 0xAA58, + 0xCC4C, 0xC3A7, 0xCC4D, 0xAA59, 0xCC4E, 0xAA5A, 0xCC4F, 0xAA61, 0xCC50, 0xAA62, 0xCC51, 0xAA63, 0xCC52, 0xAA64, 0xCC53, 0xAA65, + 0xCC54, 0xC3A8, 0xCC55, 0xC3A9, 0xCC56, 0xAA66, 0xCC57, 0xC3AA, 0xCC58, 0xC3AB, 0xCC59, 0xC3AC, 0xCC5A, 0xAA67, 0xCC5B, 0xAA68, + 0xCC5C, 0xAA69, 0xCC5D, 0xAA6A, 0xCC5E, 0xAA6B, 0xCC5F, 0xAA6C, 0xCC60, 0xC3AD, 0xCC61, 0xAA6D, 0xCC62, 0xAA6E, 0xCC63, 0xAA6F, + 0xCC64, 0xC3AE, 0xCC65, 0xAA70, 0xCC66, 0xC3AF, 0xCC67, 0xAA71, 0xCC68, 0xC3B0, 0xCC69, 0xAA72, 0xCC6A, 0xAA73, 0xCC6B, 0xAA74, + 0xCC6C, 0xAA75, 0xCC6D, 0xAA76, 0xCC6E, 0xAA77, 0xCC6F, 0xAA78, 0xCC70, 0xC3B1, 0xCC71, 0xAA79, 0xCC72, 0xAA7A, 0xCC73, 0xAA81, + 0xCC74, 0xAA82, 0xCC75, 0xC3B2, 0xCC76, 0xAA83, 0xCC77, 0xAA84, 0xCC78, 0xAA85, 0xCC79, 0xAA86, 0xCC7A, 0xAA87, 0xCC7B, 0xAA88, + 0xCC7C, 0xAA89, 0xCC7D, 0xAA8A, 0xCC7E, 0xAA8B, 0xCC7F, 0xAA8C, 0xCC80, 0xAA8D, 0xCC81, 0xAA8E, 0xCC82, 0xAA8F, 0xCC83, 0xAA90, + 0xCC84, 0xAA91, 0xCC85, 0xAA92, 0xCC86, 0xAA93, 0xCC87, 0xAA94, 0xCC88, 0xAA95, 0xCC89, 0xAA96, 0xCC8A, 0xAA97, 0xCC8B, 0xAA98, + 0xCC8C, 0xAA99, 0xCC8D, 0xAA9A, 0xCC8E, 0xAA9B, 0xCC8F, 0xAA9C, 0xCC90, 0xAA9D, 0xCC91, 0xAA9E, 0xCC92, 0xAA9F, 0xCC93, 0xAAA0, + 0xCC94, 0xAB41, 0xCC95, 0xAB42, 0xCC96, 0xAB43, 0xCC97, 0xAB44, 0xCC98, 0xC3B3, 0xCC99, 0xC3B4, 0xCC9A, 0xAB45, 0xCC9B, 0xAB46, + 0xCC9C, 0xC3B5, 0xCC9D, 0xAB47, 0xCC9E, 0xAB48, 0xCC9F, 0xAB49, 0xCCA0, 0xC3B6, 0xCCA1, 0xAB4A, 0xCCA2, 0xAB4B, 0xCCA3, 0xAB4C, + 0xCCA4, 0xAB4D, 0xCCA5, 0xAB4E, 0xCCA6, 0xAB4F, 0xCCA7, 0xAB50, 0xCCA8, 0xC3B7, 0xCCA9, 0xC3B8, 0xCCAA, 0xAB51, 0xCCAB, 0xC3B9, + 0xCCAC, 0xC3BA, 0xCCAD, 0xC3BB, 0xCCAE, 0xAB52, 0xCCAF, 0xAB53, 0xCCB0, 0xAB54, 0xCCB1, 0xAB55, 0xCCB2, 0xAB56, 0xCCB3, 0xAB57, + 0xCCB4, 0xC3BC, 0xCCB5, 0xC3BD, 0xCCB6, 0xAB58, 0xCCB7, 0xAB59, 0xCCB8, 0xC3BE, 0xCCB9, 0xAB5A, 0xCCBA, 0xAB61, 0xCCBB, 0xAB62, + 0xCCBC, 0xC3BF, 0xCCBD, 0xAB63, 0xCCBE, 0xAB64, 0xCCBF, 0xAB65, 0xCCC0, 0xAB66, 0xCCC1, 0xAB67, 0xCCC2, 0xAB68, 0xCCC3, 0xAB69, + 0xCCC4, 0xC3C0, 0xCCC5, 0xC3C1, 0xCCC6, 0xAB6A, 0xCCC7, 0xC3C2, 0xCCC8, 0xAB6B, 0xCCC9, 0xC3C3, 0xCCCA, 0xAB6C, 0xCCCB, 0xAB6D, + 0xCCCC, 0xAB6E, 0xCCCD, 0xAB6F, 0xCCCE, 0xAB70, 0xCCCF, 0xAB71, 0xCCD0, 0xC3C4, 0xCCD1, 0xAB72, 0xCCD2, 0xAB73, 0xCCD3, 0xAB74, + 0xCCD4, 0xC3C5, 0xCCD5, 0xAB75, 0xCCD6, 0xAB76, 0xCCD7, 0xAB77, 0xCCD8, 0xAB78, 0xCCD9, 0xAB79, 0xCCDA, 0xAB7A, 0xCCDB, 0xAB81, + 0xCCDC, 0xAB82, 0xCCDD, 0xAB83, 0xCCDE, 0xAB84, 0xCCDF, 0xAB85, 0xCCE0, 0xAB86, 0xCCE1, 0xAB87, 0xCCE2, 0xAB88, 0xCCE3, 0xAB89, + 0xCCE4, 0xC3C6, 0xCCE5, 0xAB8A, 0xCCE6, 0xAB8B, 0xCCE7, 0xAB8C, 0xCCE8, 0xAB8D, 0xCCE9, 0xAB8E, 0xCCEA, 0xAB8F, 0xCCEB, 0xAB90, + 0xCCEC, 0xC3C7, 0xCCED, 0xAB91, 0xCCEE, 0xAB92, 0xCCEF, 0xAB93, 0xCCF0, 0xC3C8, 0xCCF1, 0xAB94, 0xCCF2, 0xAB95, 0xCCF3, 0xAB96, + 0xCCF4, 0xAB97, 0xCCF5, 0xAB98, 0xCCF6, 0xAB99, 0xCCF7, 0xAB9A, 0xCCF8, 0xAB9B, 0xCCF9, 0xAB9C, 0xCCFA, 0xAB9D, 0xCCFB, 0xAB9E, + 0xCCFC, 0xAB9F, 0xCCFD, 0xABA0, 0xCCFE, 0xAC41, 0xCCFF, 0xAC42, 0xCD00, 0xAC43, 0xCD01, 0xC3C9, 0xCD02, 0xAC44, 0xCD03, 0xAC45, + 0xCD04, 0xAC46, 0xCD05, 0xAC47, 0xCD06, 0xAC48, 0xCD07, 0xAC49, 0xCD08, 0xC3CA, 0xCD09, 0xC3CB, 0xCD0A, 0xAC4A, 0xCD0B, 0xAC4B, + 0xCD0C, 0xC3CC, 0xCD0D, 0xAC4C, 0xCD0E, 0xAC4D, 0xCD0F, 0xAC4E, 0xCD10, 0xC3CD, 0xCD11, 0xAC4F, 0xCD12, 0xAC50, 0xCD13, 0xAC51, + 0xCD14, 0xAC52, 0xCD15, 0xAC53, 0xCD16, 0xAC54, 0xCD17, 0xAC55, 0xCD18, 0xC3CE, 0xCD19, 0xC3CF, 0xCD1A, 0xAC56, 0xCD1B, 0xC3D0, + 0xCD1C, 0xAC57, 0xCD1D, 0xC3D1, 0xCD1E, 0xAC58, 0xCD1F, 0xAC59, 0xCD20, 0xAC5A, 0xCD21, 0xAC61, 0xCD22, 0xAC62, 0xCD23, 0xAC63, + 0xCD24, 0xC3D2, 0xCD25, 0xAC64, 0xCD26, 0xAC65, 0xCD27, 0xAC66, 0xCD28, 0xC3D3, 0xCD29, 0xAC67, 0xCD2A, 0xAC68, 0xCD2B, 0xAC69, + 0xCD2C, 0xC3D4, 0xCD2D, 0xAC6A, 0xCD2E, 0xAC6B, 0xCD2F, 0xAC6C, 0xCD30, 0xAC6D, 0xCD31, 0xAC6E, 0xCD32, 0xAC6F, 0xCD33, 0xAC70, + 0xCD34, 0xAC71, 0xCD35, 0xAC72, 0xCD36, 0xAC73, 0xCD37, 0xAC74, 0xCD38, 0xAC75, 0xCD39, 0xC3D5, 0xCD3A, 0xAC76, 0xCD3B, 0xAC77, + 0xCD3C, 0xAC78, 0xCD3D, 0xAC79, 0xCD3E, 0xAC7A, 0xCD3F, 0xAC81, 0xCD40, 0xAC82, 0xCD41, 0xAC83, 0xCD42, 0xAC84, 0xCD43, 0xAC85, + 0xCD44, 0xAC86, 0xCD45, 0xAC87, 0xCD46, 0xAC88, 0xCD47, 0xAC89, 0xCD48, 0xAC8A, 0xCD49, 0xAC8B, 0xCD4A, 0xAC8C, 0xCD4B, 0xAC8D, + 0xCD4C, 0xAC8E, 0xCD4D, 0xAC8F, 0xCD4E, 0xAC90, 0xCD4F, 0xAC91, 0xCD50, 0xAC92, 0xCD51, 0xAC93, 0xCD52, 0xAC94, 0xCD53, 0xAC95, + 0xCD54, 0xAC96, 0xCD55, 0xAC97, 0xCD56, 0xAC98, 0xCD57, 0xAC99, 0xCD58, 0xAC9A, 0xCD59, 0xAC9B, 0xCD5A, 0xAC9C, 0xCD5B, 0xAC9D, + 0xCD5C, 0xC3D6, 0xCD5D, 0xAC9E, 0xCD5E, 0xAC9F, 0xCD5F, 0xACA0, 0xCD60, 0xC3D7, 0xCD61, 0xAD41, 0xCD62, 0xAD42, 0xCD63, 0xAD43, + 0xCD64, 0xC3D8, 0xCD65, 0xAD44, 0xCD66, 0xAD45, 0xCD67, 0xAD46, 0xCD68, 0xAD47, 0xCD69, 0xAD48, 0xCD6A, 0xAD49, 0xCD6B, 0xAD4A, + 0xCD6C, 0xC3D9, 0xCD6D, 0xC3DA, 0xCD6E, 0xAD4B, 0xCD6F, 0xC3DB, 0xCD70, 0xAD4C, 0xCD71, 0xC3DC, 0xCD72, 0xAD4D, 0xCD73, 0xAD4E, + 0xCD74, 0xAD4F, 0xCD75, 0xAD50, 0xCD76, 0xAD51, 0xCD77, 0xAD52, 0xCD78, 0xC3DD, 0xCD79, 0xAD53, 0xCD7A, 0xAD54, 0xCD7B, 0xAD55, + 0xCD7C, 0xAD56, 0xCD7D, 0xAD57, 0xCD7E, 0xAD58, 0xCD7F, 0xAD59, 0xCD80, 0xAD5A, 0xCD81, 0xAD61, 0xCD82, 0xAD62, 0xCD83, 0xAD63, + 0xCD84, 0xAD64, 0xCD85, 0xAD65, 0xCD86, 0xAD66, 0xCD87, 0xAD67, 0xCD88, 0xC3DE, 0xCD89, 0xAD68, 0xCD8A, 0xAD69, 0xCD8B, 0xAD6A, + 0xCD8C, 0xAD6B, 0xCD8D, 0xAD6C, 0xCD8E, 0xAD6D, 0xCD8F, 0xAD6E, 0xCD90, 0xAD6F, 0xCD91, 0xAD70, 0xCD92, 0xAD71, 0xCD93, 0xAD72, + 0xCD94, 0xC3DF, 0xCD95, 0xC3E0, 0xCD96, 0xAD73, 0xCD97, 0xAD74, 0xCD98, 0xC3E1, 0xCD99, 0xAD75, 0xCD9A, 0xAD76, 0xCD9B, 0xAD77, + 0xCD9C, 0xC3E2, 0xCD9D, 0xAD78, 0xCD9E, 0xAD79, 0xCD9F, 0xAD7A, 0xCDA0, 0xAD81, 0xCDA1, 0xAD82, 0xCDA2, 0xAD83, 0xCDA3, 0xAD84, + 0xCDA4, 0xC3E3, 0xCDA5, 0xC3E4, 0xCDA6, 0xAD85, 0xCDA7, 0xC3E5, 0xCDA8, 0xAD86, 0xCDA9, 0xC3E6, 0xCDAA, 0xAD87, 0xCDAB, 0xAD88, + 0xCDAC, 0xAD89, 0xCDAD, 0xAD8A, 0xCDAE, 0xAD8B, 0xCDAF, 0xAD8C, 0xCDB0, 0xC3E7, 0xCDB1, 0xAD8D, 0xCDB2, 0xAD8E, 0xCDB3, 0xAD8F, + 0xCDB4, 0xAD90, 0xCDB5, 0xAD91, 0xCDB6, 0xAD92, 0xCDB7, 0xAD93, 0xCDB8, 0xAD94, 0xCDB9, 0xAD95, 0xCDBA, 0xAD96, 0xCDBB, 0xAD97, + 0xCDBC, 0xAD98, 0xCDBD, 0xAD99, 0xCDBE, 0xAD9A, 0xCDBF, 0xAD9B, 0xCDC0, 0xAD9C, 0xCDC1, 0xAD9D, 0xCDC2, 0xAD9E, 0xCDC3, 0xAD9F, + 0xCDC4, 0xC3E8, 0xCDC5, 0xADA0, 0xCDC6, 0xAE41, 0xCDC7, 0xAE42, 0xCDC8, 0xAE43, 0xCDC9, 0xAE44, 0xCDCA, 0xAE45, 0xCDCB, 0xAE46, + 0xCDCC, 0xC3E9, 0xCDCD, 0xAE47, 0xCDCE, 0xAE48, 0xCDCF, 0xAE49, 0xCDD0, 0xC3EA, 0xCDD1, 0xAE4A, 0xCDD2, 0xAE4B, 0xCDD3, 0xAE4C, + 0xCDD4, 0xAE4D, 0xCDD5, 0xAE4E, 0xCDD6, 0xAE4F, 0xCDD7, 0xAE50, 0xCDD8, 0xAE51, 0xCDD9, 0xAE52, 0xCDDA, 0xAE53, 0xCDDB, 0xAE54, + 0xCDDC, 0xAE55, 0xCDDD, 0xAE56, 0xCDDE, 0xAE57, 0xCDDF, 0xAE58, 0xCDE0, 0xAE59, 0xCDE1, 0xAE5A, 0xCDE2, 0xAE61, 0xCDE3, 0xAE62, + 0xCDE4, 0xAE63, 0xCDE5, 0xAE64, 0xCDE6, 0xAE65, 0xCDE7, 0xAE66, 0xCDE8, 0xC3EB, 0xCDE9, 0xAE67, 0xCDEA, 0xAE68, 0xCDEB, 0xAE69, + 0xCDEC, 0xC3EC, 0xCDED, 0xAE6A, 0xCDEE, 0xAE6B, 0xCDEF, 0xAE6C, 0xCDF0, 0xC3ED, 0xCDF1, 0xAE6D, 0xCDF2, 0xAE6E, 0xCDF3, 0xAE6F, + 0xCDF4, 0xAE70, 0xCDF5, 0xAE71, 0xCDF6, 0xAE72, 0xCDF7, 0xAE73, 0xCDF8, 0xC3EE, 0xCDF9, 0xC3EF, 0xCDFA, 0xAE74, 0xCDFB, 0xC3F0, + 0xCDFC, 0xAE75, 0xCDFD, 0xC3F1, 0xCDFE, 0xAE76, 0xCDFF, 0xAE77, 0xCE00, 0xAE78, 0xCE01, 0xAE79, 0xCE02, 0xAE7A, 0xCE03, 0xAE81, + 0xCE04, 0xC3F2, 0xCE05, 0xAE82, 0xCE06, 0xAE83, 0xCE07, 0xAE84, 0xCE08, 0xC3F3, 0xCE09, 0xAE85, 0xCE0A, 0xAE86, 0xCE0B, 0xAE87, + 0xCE0C, 0xC3F4, 0xCE0D, 0xAE88, 0xCE0E, 0xAE89, 0xCE0F, 0xAE8A, 0xCE10, 0xAE8B, 0xCE11, 0xAE8C, 0xCE12, 0xAE8D, 0xCE13, 0xAE8E, + 0xCE14, 0xC3F5, 0xCE15, 0xAE8F, 0xCE16, 0xAE90, 0xCE17, 0xAE91, 0xCE18, 0xAE92, 0xCE19, 0xC3F6, 0xCE1A, 0xAE93, 0xCE1B, 0xAE94, + 0xCE1C, 0xAE95, 0xCE1D, 0xAE96, 0xCE1E, 0xAE97, 0xCE1F, 0xAE98, 0xCE20, 0xC3F7, 0xCE21, 0xC3F8, 0xCE22, 0xAE99, 0xCE23, 0xAE9A, + 0xCE24, 0xC3F9, 0xCE25, 0xAE9B, 0xCE26, 0xAE9C, 0xCE27, 0xAE9D, 0xCE28, 0xC3FA, 0xCE29, 0xAE9E, 0xCE2A, 0xAE9F, 0xCE2B, 0xAEA0, + 0xCE2C, 0xAF41, 0xCE2D, 0xAF42, 0xCE2E, 0xAF43, 0xCE2F, 0xAF44, 0xCE30, 0xC3FB, 0xCE31, 0xC3FC, 0xCE32, 0xAF45, 0xCE33, 0xC3FD, + 0xCE34, 0xAF46, 0xCE35, 0xC3FE, 0xCE36, 0xAF47, 0xCE37, 0xAF48, 0xCE38, 0xAF49, 0xCE39, 0xAF4A, 0xCE3A, 0xAF4B, 0xCE3B, 0xAF4C, + 0xCE3C, 0xAF4D, 0xCE3D, 0xAF4E, 0xCE3E, 0xAF4F, 0xCE3F, 0xAF50, 0xCE40, 0xAF51, 0xCE41, 0xAF52, 0xCE42, 0xAF53, 0xCE43, 0xAF54, + 0xCE44, 0xAF55, 0xCE45, 0xAF56, 0xCE46, 0xAF57, 0xCE47, 0xAF58, 0xCE48, 0xAF59, 0xCE49, 0xAF5A, 0xCE4A, 0xAF61, 0xCE4B, 0xAF62, + 0xCE4C, 0xAF63, 0xCE4D, 0xAF64, 0xCE4E, 0xAF65, 0xCE4F, 0xAF66, 0xCE50, 0xAF67, 0xCE51, 0xAF68, 0xCE52, 0xAF69, 0xCE53, 0xAF6A, + 0xCE54, 0xAF6B, 0xCE55, 0xAF6C, 0xCE56, 0xAF6D, 0xCE57, 0xAF6E, 0xCE58, 0xC4A1, 0xCE59, 0xC4A2, 0xCE5A, 0xAF6F, 0xCE5B, 0xAF70, + 0xCE5C, 0xC4A3, 0xCE5D, 0xAF71, 0xCE5E, 0xAF72, 0xCE5F, 0xC4A4, 0xCE60, 0xC4A5, 0xCE61, 0xC4A6, 0xCE62, 0xAF73, 0xCE63, 0xAF74, + 0xCE64, 0xAF75, 0xCE65, 0xAF76, 0xCE66, 0xAF77, 0xCE67, 0xAF78, 0xCE68, 0xC4A7, 0xCE69, 0xC4A8, 0xCE6A, 0xAF79, 0xCE6B, 0xC4A9, + 0xCE6C, 0xAF7A, 0xCE6D, 0xC4AA, 0xCE6E, 0xAF81, 0xCE6F, 0xAF82, 0xCE70, 0xAF83, 0xCE71, 0xAF84, 0xCE72, 0xAF85, 0xCE73, 0xAF86, + 0xCE74, 0xC4AB, 0xCE75, 0xC4AC, 0xCE76, 0xAF87, 0xCE77, 0xAF88, 0xCE78, 0xC4AD, 0xCE79, 0xAF89, 0xCE7A, 0xAF8A, 0xCE7B, 0xAF8B, + 0xCE7C, 0xC4AE, 0xCE7D, 0xAF8C, 0xCE7E, 0xAF8D, 0xCE7F, 0xAF8E, 0xCE80, 0xAF8F, 0xCE81, 0xAF90, 0xCE82, 0xAF91, 0xCE83, 0xAF92, + 0xCE84, 0xC4AF, 0xCE85, 0xC4B0, 0xCE86, 0xAF93, 0xCE87, 0xC4B1, 0xCE88, 0xAF94, 0xCE89, 0xC4B2, 0xCE8A, 0xAF95, 0xCE8B, 0xAF96, + 0xCE8C, 0xAF97, 0xCE8D, 0xAF98, 0xCE8E, 0xAF99, 0xCE8F, 0xAF9A, 0xCE90, 0xC4B3, 0xCE91, 0xC4B4, 0xCE92, 0xAF9B, 0xCE93, 0xAF9C, + 0xCE94, 0xC4B5, 0xCE95, 0xAF9D, 0xCE96, 0xAF9E, 0xCE97, 0xAF9F, 0xCE98, 0xC4B6, 0xCE99, 0xAFA0, 0xCE9A, 0xB041, 0xCE9B, 0xB042, + 0xCE9C, 0xB043, 0xCE9D, 0xB044, 0xCE9E, 0xB045, 0xCE9F, 0xB046, 0xCEA0, 0xC4B7, 0xCEA1, 0xC4B8, 0xCEA2, 0xB047, 0xCEA3, 0xC4B9, + 0xCEA4, 0xC4BA, 0xCEA5, 0xC4BB, 0xCEA6, 0xB048, 0xCEA7, 0xB049, 0xCEA8, 0xB04A, 0xCEA9, 0xB04B, 0xCEAA, 0xB04C, 0xCEAB, 0xB04D, + 0xCEAC, 0xC4BC, 0xCEAD, 0xC4BD, 0xCEAE, 0xB04E, 0xCEAF, 0xB04F, 0xCEB0, 0xB050, 0xCEB1, 0xB051, 0xCEB2, 0xB052, 0xCEB3, 0xB053, + 0xCEB4, 0xB054, 0xCEB5, 0xB055, 0xCEB6, 0xB056, 0xCEB7, 0xB057, 0xCEB8, 0xB058, 0xCEB9, 0xB059, 0xCEBA, 0xB05A, 0xCEBB, 0xB061, + 0xCEBC, 0xB062, 0xCEBD, 0xB063, 0xCEBE, 0xB064, 0xCEBF, 0xB065, 0xCEC0, 0xB066, 0xCEC1, 0xC4BE, 0xCEC2, 0xB067, 0xCEC3, 0xB068, + 0xCEC4, 0xB069, 0xCEC5, 0xB06A, 0xCEC6, 0xB06B, 0xCEC7, 0xB06C, 0xCEC8, 0xB06D, 0xCEC9, 0xB06E, 0xCECA, 0xB06F, 0xCECB, 0xB070, + 0xCECC, 0xB071, 0xCECD, 0xB072, 0xCECE, 0xB073, 0xCECF, 0xB074, 0xCED0, 0xB075, 0xCED1, 0xB076, 0xCED2, 0xB077, 0xCED3, 0xB078, + 0xCED4, 0xB079, 0xCED5, 0xB07A, 0xCED6, 0xB081, 0xCED7, 0xB082, 0xCED8, 0xB083, 0xCED9, 0xB084, 0xCEDA, 0xB085, 0xCEDB, 0xB086, + 0xCEDC, 0xB087, 0xCEDD, 0xB088, 0xCEDE, 0xB089, 0xCEDF, 0xB08A, 0xCEE0, 0xB08B, 0xCEE1, 0xB08C, 0xCEE2, 0xB08D, 0xCEE3, 0xB08E, + 0xCEE4, 0xC4BF, 0xCEE5, 0xC4C0, 0xCEE6, 0xB08F, 0xCEE7, 0xB090, 0xCEE8, 0xC4C1, 0xCEE9, 0xB091, 0xCEEA, 0xB092, 0xCEEB, 0xC4C2, + 0xCEEC, 0xC4C3, 0xCEED, 0xB093, 0xCEEE, 0xB094, 0xCEEF, 0xB095, 0xCEF0, 0xB096, 0xCEF1, 0xB097, 0xCEF2, 0xB098, 0xCEF3, 0xB099, + 0xCEF4, 0xC4C4, 0xCEF5, 0xC4C5, 0xCEF6, 0xB09A, 0xCEF7, 0xC4C6, 0xCEF8, 0xC4C7, 0xCEF9, 0xC4C8, 0xCEFA, 0xB09B, 0xCEFB, 0xB09C, + 0xCEFC, 0xB09D, 0xCEFD, 0xB09E, 0xCEFE, 0xB09F, 0xCEFF, 0xB0A0, 0xCF00, 0xC4C9, 0xCF01, 0xC4CA, 0xCF02, 0xB141, 0xCF03, 0xB142, + 0xCF04, 0xC4CB, 0xCF05, 0xB143, 0xCF06, 0xB144, 0xCF07, 0xB145, 0xCF08, 0xC4CC, 0xCF09, 0xB146, 0xCF0A, 0xB147, 0xCF0B, 0xB148, + 0xCF0C, 0xB149, 0xCF0D, 0xB14A, 0xCF0E, 0xB14B, 0xCF0F, 0xB14C, 0xCF10, 0xC4CD, 0xCF11, 0xC4CE, 0xCF12, 0xB14D, 0xCF13, 0xC4CF, + 0xCF14, 0xB14E, 0xCF15, 0xC4D0, 0xCF16, 0xB14F, 0xCF17, 0xB150, 0xCF18, 0xB151, 0xCF19, 0xB152, 0xCF1A, 0xB153, 0xCF1B, 0xB154, + 0xCF1C, 0xC4D1, 0xCF1D, 0xB155, 0xCF1E, 0xB156, 0xCF1F, 0xB157, 0xCF20, 0xC4D2, 0xCF21, 0xB158, 0xCF22, 0xB159, 0xCF23, 0xB15A, + 0xCF24, 0xC4D3, 0xCF25, 0xB161, 0xCF26, 0xB162, 0xCF27, 0xB163, 0xCF28, 0xB164, 0xCF29, 0xB165, 0xCF2A, 0xB166, 0xCF2B, 0xB167, + 0xCF2C, 0xC4D4, 0xCF2D, 0xC4D5, 0xCF2E, 0xB168, 0xCF2F, 0xC4D6, 0xCF30, 0xC4D7, 0xCF31, 0xC4D8, 0xCF32, 0xB169, 0xCF33, 0xB16A, + 0xCF34, 0xB16B, 0xCF35, 0xB16C, 0xCF36, 0xB16D, 0xCF37, 0xB16E, 0xCF38, 0xC4D9, 0xCF39, 0xB16F, 0xCF3A, 0xB170, 0xCF3B, 0xB171, + 0xCF3C, 0xB172, 0xCF3D, 0xB173, 0xCF3E, 0xB174, 0xCF3F, 0xB175, 0xCF40, 0xB176, 0xCF41, 0xB177, 0xCF42, 0xB178, 0xCF43, 0xB179, + 0xCF44, 0xB17A, 0xCF45, 0xB181, 0xCF46, 0xB182, 0xCF47, 0xB183, 0xCF48, 0xB184, 0xCF49, 0xB185, 0xCF4A, 0xB186, 0xCF4B, 0xB187, + 0xCF4C, 0xB188, 0xCF4D, 0xB189, 0xCF4E, 0xB18A, 0xCF4F, 0xB18B, 0xCF50, 0xB18C, 0xCF51, 0xB18D, 0xCF52, 0xB18E, 0xCF53, 0xB18F, + 0xCF54, 0xC4DA, 0xCF55, 0xC4DB, 0xCF56, 0xB190, 0xCF57, 0xB191, 0xCF58, 0xC4DC, 0xCF59, 0xB192, 0xCF5A, 0xB193, 0xCF5B, 0xB194, + 0xCF5C, 0xC4DD, 0xCF5D, 0xB195, 0xCF5E, 0xB196, 0xCF5F, 0xB197, 0xCF60, 0xB198, 0xCF61, 0xB199, 0xCF62, 0xB19A, 0xCF63, 0xB19B, + 0xCF64, 0xC4DE, 0xCF65, 0xC4DF, 0xCF66, 0xB19C, 0xCF67, 0xC4E0, 0xCF68, 0xB19D, 0xCF69, 0xC4E1, 0xCF6A, 0xB19E, 0xCF6B, 0xB19F, + 0xCF6C, 0xB1A0, 0xCF6D, 0xB241, 0xCF6E, 0xB242, 0xCF6F, 0xB243, 0xCF70, 0xC4E2, 0xCF71, 0xC4E3, 0xCF72, 0xB244, 0xCF73, 0xB245, + 0xCF74, 0xC4E4, 0xCF75, 0xB246, 0xCF76, 0xB247, 0xCF77, 0xB248, 0xCF78, 0xC4E5, 0xCF79, 0xB249, 0xCF7A, 0xB24A, 0xCF7B, 0xB24B, + 0xCF7C, 0xB24C, 0xCF7D, 0xB24D, 0xCF7E, 0xB24E, 0xCF7F, 0xB24F, 0xCF80, 0xC4E6, 0xCF81, 0xB250, 0xCF82, 0xB251, 0xCF83, 0xB252, + 0xCF84, 0xB253, 0xCF85, 0xC4E7, 0xCF86, 0xB254, 0xCF87, 0xB255, 0xCF88, 0xB256, 0xCF89, 0xB257, 0xCF8A, 0xB258, 0xCF8B, 0xB259, + 0xCF8C, 0xC4E8, 0xCF8D, 0xB25A, 0xCF8E, 0xB261, 0xCF8F, 0xB262, 0xCF90, 0xB263, 0xCF91, 0xB264, 0xCF92, 0xB265, 0xCF93, 0xB266, + 0xCF94, 0xB267, 0xCF95, 0xB268, 0xCF96, 0xB269, 0xCF97, 0xB26A, 0xCF98, 0xB26B, 0xCF99, 0xB26C, 0xCF9A, 0xB26D, 0xCF9B, 0xB26E, + 0xCF9C, 0xB26F, 0xCF9D, 0xB270, 0xCF9E, 0xB271, 0xCF9F, 0xB272, 0xCFA0, 0xB273, 0xCFA1, 0xC4E9, 0xCFA2, 0xB274, 0xCFA3, 0xB275, + 0xCFA4, 0xB276, 0xCFA5, 0xB277, 0xCFA6, 0xB278, 0xCFA7, 0xB279, 0xCFA8, 0xC4EA, 0xCFA9, 0xB27A, 0xCFAA, 0xB281, 0xCFAB, 0xB282, + 0xCFAC, 0xB283, 0xCFAD, 0xB284, 0xCFAE, 0xB285, 0xCFAF, 0xB286, 0xCFB0, 0xC4EB, 0xCFB1, 0xB287, 0xCFB2, 0xB288, 0xCFB3, 0xB289, + 0xCFB4, 0xB28A, 0xCFB5, 0xB28B, 0xCFB6, 0xB28C, 0xCFB7, 0xB28D, 0xCFB8, 0xB28E, 0xCFB9, 0xB28F, 0xCFBA, 0xB290, 0xCFBB, 0xB291, + 0xCFBC, 0xB292, 0xCFBD, 0xB293, 0xCFBE, 0xB294, 0xCFBF, 0xB295, 0xCFC0, 0xB296, 0xCFC1, 0xB297, 0xCFC2, 0xB298, 0xCFC3, 0xB299, + 0xCFC4, 0xC4EC, 0xCFC5, 0xB29A, 0xCFC6, 0xB29B, 0xCFC7, 0xB29C, 0xCFC8, 0xB29D, 0xCFC9, 0xB29E, 0xCFCA, 0xB29F, 0xCFCB, 0xB2A0, + 0xCFCC, 0xB341, 0xCFCD, 0xB342, 0xCFCE, 0xB343, 0xCFCF, 0xB344, 0xCFD0, 0xB345, 0xCFD1, 0xB346, 0xCFD2, 0xB347, 0xCFD3, 0xB348, + 0xCFD4, 0xB349, 0xCFD5, 0xB34A, 0xCFD6, 0xB34B, 0xCFD7, 0xB34C, 0xCFD8, 0xB34D, 0xCFD9, 0xB34E, 0xCFDA, 0xB34F, 0xCFDB, 0xB350, + 0xCFDC, 0xB351, 0xCFDD, 0xB352, 0xCFDE, 0xB353, 0xCFDF, 0xB354, 0xCFE0, 0xC4ED, 0xCFE1, 0xC4EE, 0xCFE2, 0xB355, 0xCFE3, 0xB356, + 0xCFE4, 0xC4EF, 0xCFE5, 0xB357, 0xCFE6, 0xB358, 0xCFE7, 0xB359, 0xCFE8, 0xC4F0, 0xCFE9, 0xB35A, 0xCFEA, 0xB361, 0xCFEB, 0xB362, + 0xCFEC, 0xB363, 0xCFED, 0xB364, 0xCFEE, 0xB365, 0xCFEF, 0xB366, 0xCFF0, 0xC4F1, 0xCFF1, 0xC4F2, 0xCFF2, 0xB367, 0xCFF3, 0xC4F3, + 0xCFF4, 0xB368, 0xCFF5, 0xC4F4, 0xCFF6, 0xB369, 0xCFF7, 0xB36A, 0xCFF8, 0xB36B, 0xCFF9, 0xB36C, 0xCFFA, 0xB36D, 0xCFFB, 0xB36E, + 0xCFFC, 0xC4F5, 0xCFFD, 0xB36F, 0xCFFE, 0xB370, 0xCFFF, 0xB371, 0xD000, 0xC4F6, 0xD001, 0xB372, 0xD002, 0xB373, 0xD003, 0xB374, + 0xD004, 0xC4F7, 0xD005, 0xB375, 0xD006, 0xB376, 0xD007, 0xB377, 0xD008, 0xB378, 0xD009, 0xB379, 0xD00A, 0xB37A, 0xD00B, 0xB381, + 0xD00C, 0xB382, 0xD00D, 0xB383, 0xD00E, 0xB384, 0xD00F, 0xB385, 0xD010, 0xB386, 0xD011, 0xC4F8, 0xD012, 0xB387, 0xD013, 0xB388, + 0xD014, 0xB389, 0xD015, 0xB38A, 0xD016, 0xB38B, 0xD017, 0xB38C, 0xD018, 0xC4F9, 0xD019, 0xB38D, 0xD01A, 0xB38E, 0xD01B, 0xB38F, + 0xD01C, 0xB390, 0xD01D, 0xB391, 0xD01E, 0xB392, 0xD01F, 0xB393, 0xD020, 0xB394, 0xD021, 0xB395, 0xD022, 0xB396, 0xD023, 0xB397, + 0xD024, 0xB398, 0xD025, 0xB399, 0xD026, 0xB39A, 0xD027, 0xB39B, 0xD028, 0xB39C, 0xD029, 0xB39D, 0xD02A, 0xB39E, 0xD02B, 0xB39F, + 0xD02C, 0xB3A0, 0xD02D, 0xC4FA, 0xD02E, 0xB441, 0xD02F, 0xB442, 0xD030, 0xB443, 0xD031, 0xB444, 0xD032, 0xB445, 0xD033, 0xB446, + 0xD034, 0xC4FB, 0xD035, 0xC4FC, 0xD036, 0xB447, 0xD037, 0xB448, 0xD038, 0xC4FD, 0xD039, 0xB449, 0xD03A, 0xB44A, 0xD03B, 0xB44B, + 0xD03C, 0xC4FE, 0xD03D, 0xB44C, 0xD03E, 0xB44D, 0xD03F, 0xB44E, 0xD040, 0xB44F, 0xD041, 0xB450, 0xD042, 0xB451, 0xD043, 0xB452, + 0xD044, 0xC5A1, 0xD045, 0xC5A2, 0xD046, 0xB453, 0xD047, 0xC5A3, 0xD048, 0xB454, 0xD049, 0xC5A4, 0xD04A, 0xB455, 0xD04B, 0xB456, + 0xD04C, 0xB457, 0xD04D, 0xB458, 0xD04E, 0xB459, 0xD04F, 0xB45A, 0xD050, 0xC5A5, 0xD051, 0xB461, 0xD052, 0xB462, 0xD053, 0xB463, + 0xD054, 0xC5A6, 0xD055, 0xB464, 0xD056, 0xB465, 0xD057, 0xB466, 0xD058, 0xC5A7, 0xD059, 0xB467, 0xD05A, 0xB468, 0xD05B, 0xB469, + 0xD05C, 0xB46A, 0xD05D, 0xB46B, 0xD05E, 0xB46C, 0xD05F, 0xB46D, 0xD060, 0xC5A8, 0xD061, 0xB46E, 0xD062, 0xB46F, 0xD063, 0xB470, + 0xD064, 0xB471, 0xD065, 0xB472, 0xD066, 0xB473, 0xD067, 0xB474, 0xD068, 0xB475, 0xD069, 0xB476, 0xD06A, 0xB477, 0xD06B, 0xB478, + 0xD06C, 0xC5A9, 0xD06D, 0xC5AA, 0xD06E, 0xB479, 0xD06F, 0xB47A, 0xD070, 0xC5AB, 0xD071, 0xB481, 0xD072, 0xB482, 0xD073, 0xB483, + 0xD074, 0xC5AC, 0xD075, 0xB484, 0xD076, 0xB485, 0xD077, 0xB486, 0xD078, 0xB487, 0xD079, 0xB488, 0xD07A, 0xB489, 0xD07B, 0xB48A, + 0xD07C, 0xC5AD, 0xD07D, 0xC5AE, 0xD07E, 0xB48B, 0xD07F, 0xB48C, 0xD080, 0xB48D, 0xD081, 0xC5AF, 0xD082, 0xB48E, 0xD083, 0xB48F, + 0xD084, 0xB490, 0xD085, 0xB491, 0xD086, 0xB492, 0xD087, 0xB493, 0xD088, 0xB494, 0xD089, 0xB495, 0xD08A, 0xB496, 0xD08B, 0xB497, + 0xD08C, 0xB498, 0xD08D, 0xB499, 0xD08E, 0xB49A, 0xD08F, 0xB49B, 0xD090, 0xB49C, 0xD091, 0xB49D, 0xD092, 0xB49E, 0xD093, 0xB49F, + 0xD094, 0xB4A0, 0xD095, 0xB541, 0xD096, 0xB542, 0xD097, 0xB543, 0xD098, 0xB544, 0xD099, 0xB545, 0xD09A, 0xB546, 0xD09B, 0xB547, + 0xD09C, 0xB548, 0xD09D, 0xB549, 0xD09E, 0xB54A, 0xD09F, 0xB54B, 0xD0A0, 0xB54C, 0xD0A1, 0xB54D, 0xD0A2, 0xB54E, 0xD0A3, 0xB54F, + 0xD0A4, 0xC5B0, 0xD0A5, 0xC5B1, 0xD0A6, 0xB550, 0xD0A7, 0xB551, 0xD0A8, 0xC5B2, 0xD0A9, 0xB552, 0xD0AA, 0xB553, 0xD0AB, 0xB554, + 0xD0AC, 0xC5B3, 0xD0AD, 0xB555, 0xD0AE, 0xB556, 0xD0AF, 0xB557, 0xD0B0, 0xB558, 0xD0B1, 0xB559, 0xD0B2, 0xB55A, 0xD0B3, 0xB561, + 0xD0B4, 0xC5B4, 0xD0B5, 0xC5B5, 0xD0B6, 0xB562, 0xD0B7, 0xC5B6, 0xD0B8, 0xB563, 0xD0B9, 0xC5B7, 0xD0BA, 0xB564, 0xD0BB, 0xB565, + 0xD0BC, 0xB566, 0xD0BD, 0xB567, 0xD0BE, 0xB568, 0xD0BF, 0xB569, 0xD0C0, 0xC5B8, 0xD0C1, 0xC5B9, 0xD0C2, 0xB56A, 0xD0C3, 0xB56B, + 0xD0C4, 0xC5BA, 0xD0C5, 0xB56C, 0xD0C6, 0xB56D, 0xD0C7, 0xB56E, 0xD0C8, 0xC5BB, 0xD0C9, 0xC5BC, 0xD0CA, 0xB56F, 0xD0CB, 0xB570, + 0xD0CC, 0xB571, 0xD0CD, 0xB572, 0xD0CE, 0xB573, 0xD0CF, 0xB574, 0xD0D0, 0xC5BD, 0xD0D1, 0xC5BE, 0xD0D2, 0xB575, 0xD0D3, 0xC5BF, + 0xD0D4, 0xC5C0, 0xD0D5, 0xC5C1, 0xD0D6, 0xB576, 0xD0D7, 0xB577, 0xD0D8, 0xB578, 0xD0D9, 0xB579, 0xD0DA, 0xB57A, 0xD0DB, 0xB581, + 0xD0DC, 0xC5C2, 0xD0DD, 0xC5C3, 0xD0DE, 0xB582, 0xD0DF, 0xB583, 0xD0E0, 0xC5C4, 0xD0E1, 0xB584, 0xD0E2, 0xB585, 0xD0E3, 0xB586, + 0xD0E4, 0xC5C5, 0xD0E5, 0xB587, 0xD0E6, 0xB588, 0xD0E7, 0xB589, 0xD0E8, 0xB58A, 0xD0E9, 0xB58B, 0xD0EA, 0xB58C, 0xD0EB, 0xB58D, + 0xD0EC, 0xC5C6, 0xD0ED, 0xC5C7, 0xD0EE, 0xB58E, 0xD0EF, 0xC5C8, 0xD0F0, 0xC5C9, 0xD0F1, 0xC5CA, 0xD0F2, 0xB58F, 0xD0F3, 0xB590, + 0xD0F4, 0xB591, 0xD0F5, 0xB592, 0xD0F6, 0xB593, 0xD0F7, 0xB594, 0xD0F8, 0xC5CB, 0xD0F9, 0xB595, 0xD0FA, 0xB596, 0xD0FB, 0xB597, + 0xD0FC, 0xB598, 0xD0FD, 0xB599, 0xD0FE, 0xB59A, 0xD0FF, 0xB59B, 0xD100, 0xB59C, 0xD101, 0xB59D, 0xD102, 0xB59E, 0xD103, 0xB59F, + 0xD104, 0xB5A0, 0xD105, 0xB641, 0xD106, 0xB642, 0xD107, 0xB643, 0xD108, 0xB644, 0xD109, 0xB645, 0xD10A, 0xB646, 0xD10B, 0xB647, + 0xD10C, 0xB648, 0xD10D, 0xC5CC, 0xD10E, 0xB649, 0xD10F, 0xB64A, 0xD110, 0xB64B, 0xD111, 0xB64C, 0xD112, 0xB64D, 0xD113, 0xB64E, + 0xD114, 0xB64F, 0xD115, 0xB650, 0xD116, 0xB651, 0xD117, 0xB652, 0xD118, 0xB653, 0xD119, 0xB654, 0xD11A, 0xB655, 0xD11B, 0xB656, + 0xD11C, 0xB657, 0xD11D, 0xB658, 0xD11E, 0xB659, 0xD11F, 0xB65A, 0xD120, 0xB661, 0xD121, 0xB662, 0xD122, 0xB663, 0xD123, 0xB664, + 0xD124, 0xB665, 0xD125, 0xB666, 0xD126, 0xB667, 0xD127, 0xB668, 0xD128, 0xB669, 0xD129, 0xB66A, 0xD12A, 0xB66B, 0xD12B, 0xB66C, + 0xD12C, 0xB66D, 0xD12D, 0xB66E, 0xD12E, 0xB66F, 0xD12F, 0xB670, 0xD130, 0xC5CD, 0xD131, 0xC5CE, 0xD132, 0xB671, 0xD133, 0xB672, + 0xD134, 0xC5CF, 0xD135, 0xB673, 0xD136, 0xB674, 0xD137, 0xB675, 0xD138, 0xC5D0, 0xD139, 0xB676, 0xD13A, 0xC5D1, 0xD13B, 0xB677, + 0xD13C, 0xB678, 0xD13D, 0xB679, 0xD13E, 0xB67A, 0xD13F, 0xB681, 0xD140, 0xC5D2, 0xD141, 0xC5D3, 0xD142, 0xB682, 0xD143, 0xC5D4, + 0xD144, 0xC5D5, 0xD145, 0xC5D6, 0xD146, 0xB683, 0xD147, 0xB684, 0xD148, 0xB685, 0xD149, 0xB686, 0xD14A, 0xB687, 0xD14B, 0xB688, + 0xD14C, 0xC5D7, 0xD14D, 0xC5D8, 0xD14E, 0xB689, 0xD14F, 0xB68A, 0xD150, 0xC5D9, 0xD151, 0xB68B, 0xD152, 0xB68C, 0xD153, 0xB68D, + 0xD154, 0xC5DA, 0xD155, 0xB68E, 0xD156, 0xB68F, 0xD157, 0xB690, 0xD158, 0xB691, 0xD159, 0xB692, 0xD15A, 0xB693, 0xD15B, 0xB694, + 0xD15C, 0xC5DB, 0xD15D, 0xC5DC, 0xD15E, 0xB695, 0xD15F, 0xC5DD, 0xD160, 0xB696, 0xD161, 0xC5DE, 0xD162, 0xB697, 0xD163, 0xB698, + 0xD164, 0xB699, 0xD165, 0xB69A, 0xD166, 0xB69B, 0xD167, 0xB69C, 0xD168, 0xC5DF, 0xD169, 0xB69D, 0xD16A, 0xB69E, 0xD16B, 0xB69F, + 0xD16C, 0xC5E0, 0xD16D, 0xB6A0, 0xD16E, 0xB741, 0xD16F, 0xB742, 0xD170, 0xB743, 0xD171, 0xB744, 0xD172, 0xB745, 0xD173, 0xB746, + 0xD174, 0xB747, 0xD175, 0xB748, 0xD176, 0xB749, 0xD177, 0xB74A, 0xD178, 0xB74B, 0xD179, 0xB74C, 0xD17A, 0xB74D, 0xD17B, 0xB74E, + 0xD17C, 0xC5E1, 0xD17D, 0xB74F, 0xD17E, 0xB750, 0xD17F, 0xB751, 0xD180, 0xB752, 0xD181, 0xB753, 0xD182, 0xB754, 0xD183, 0xB755, + 0xD184, 0xC5E2, 0xD185, 0xB756, 0xD186, 0xB757, 0xD187, 0xB758, 0xD188, 0xC5E3, 0xD189, 0xB759, 0xD18A, 0xB75A, 0xD18B, 0xB761, + 0xD18C, 0xB762, 0xD18D, 0xB763, 0xD18E, 0xB764, 0xD18F, 0xB765, 0xD190, 0xB766, 0xD191, 0xB767, 0xD192, 0xB768, 0xD193, 0xB769, + 0xD194, 0xB76A, 0xD195, 0xB76B, 0xD196, 0xB76C, 0xD197, 0xB76D, 0xD198, 0xB76E, 0xD199, 0xB76F, 0xD19A, 0xB770, 0xD19B, 0xB771, + 0xD19C, 0xB772, 0xD19D, 0xB773, 0xD19E, 0xB774, 0xD19F, 0xB775, 0xD1A0, 0xC5E4, 0xD1A1, 0xC5E5, 0xD1A2, 0xB776, 0xD1A3, 0xB777, + 0xD1A4, 0xC5E6, 0xD1A5, 0xB778, 0xD1A6, 0xB779, 0xD1A7, 0xB77A, 0xD1A8, 0xC5E7, 0xD1A9, 0xB781, 0xD1AA, 0xB782, 0xD1AB, 0xB783, + 0xD1AC, 0xB784, 0xD1AD, 0xB785, 0xD1AE, 0xB786, 0xD1AF, 0xB787, 0xD1B0, 0xC5E8, 0xD1B1, 0xC5E9, 0xD1B2, 0xB788, 0xD1B3, 0xC5EA, + 0xD1B4, 0xB789, 0xD1B5, 0xC5EB, 0xD1B6, 0xB78A, 0xD1B7, 0xB78B, 0xD1B8, 0xB78C, 0xD1B9, 0xB78D, 0xD1BA, 0xC5EC, 0xD1BB, 0xB78E, + 0xD1BC, 0xC5ED, 0xD1BD, 0xB78F, 0xD1BE, 0xB790, 0xD1BF, 0xB791, 0xD1C0, 0xC5EE, 0xD1C1, 0xB792, 0xD1C2, 0xB793, 0xD1C3, 0xB794, + 0xD1C4, 0xB795, 0xD1C5, 0xB796, 0xD1C6, 0xB797, 0xD1C7, 0xB798, 0xD1C8, 0xB799, 0xD1C9, 0xB79A, 0xD1CA, 0xB79B, 0xD1CB, 0xB79C, + 0xD1CC, 0xB79D, 0xD1CD, 0xB79E, 0xD1CE, 0xB79F, 0xD1CF, 0xB7A0, 0xD1D0, 0xB841, 0xD1D1, 0xB842, 0xD1D2, 0xB843, 0xD1D3, 0xB844, + 0xD1D4, 0xB845, 0xD1D5, 0xB846, 0xD1D6, 0xB847, 0xD1D7, 0xB848, 0xD1D8, 0xC5EF, 0xD1D9, 0xB849, 0xD1DA, 0xB84A, 0xD1DB, 0xB84B, + 0xD1DC, 0xB84C, 0xD1DD, 0xB84D, 0xD1DE, 0xB84E, 0xD1DF, 0xB84F, 0xD1E0, 0xB850, 0xD1E1, 0xB851, 0xD1E2, 0xB852, 0xD1E3, 0xB853, + 0xD1E4, 0xB854, 0xD1E5, 0xB855, 0xD1E6, 0xB856, 0xD1E7, 0xB857, 0xD1E8, 0xB858, 0xD1E9, 0xB859, 0xD1EA, 0xB85A, 0xD1EB, 0xB861, + 0xD1EC, 0xB862, 0xD1ED, 0xB863, 0xD1EE, 0xB864, 0xD1EF, 0xB865, 0xD1F0, 0xB866, 0xD1F1, 0xB867, 0xD1F2, 0xB868, 0xD1F3, 0xB869, + 0xD1F4, 0xC5F0, 0xD1F5, 0xB86A, 0xD1F6, 0xB86B, 0xD1F7, 0xB86C, 0xD1F8, 0xC5F1, 0xD1F9, 0xB86D, 0xD1FA, 0xB86E, 0xD1FB, 0xB86F, + 0xD1FC, 0xB870, 0xD1FD, 0xB871, 0xD1FE, 0xB872, 0xD1FF, 0xB873, 0xD200, 0xB874, 0xD201, 0xB875, 0xD202, 0xB876, 0xD203, 0xB877, + 0xD204, 0xB878, 0xD205, 0xB879, 0xD206, 0xB87A, 0xD207, 0xC5F2, 0xD208, 0xB881, 0xD209, 0xC5F3, 0xD20A, 0xB882, 0xD20B, 0xB883, + 0xD20C, 0xB884, 0xD20D, 0xB885, 0xD20E, 0xB886, 0xD20F, 0xB887, 0xD210, 0xC5F4, 0xD211, 0xB888, 0xD212, 0xB889, 0xD213, 0xB88A, + 0xD214, 0xB88B, 0xD215, 0xB88C, 0xD216, 0xB88D, 0xD217, 0xB88E, 0xD218, 0xB88F, 0xD219, 0xB890, 0xD21A, 0xB891, 0xD21B, 0xB892, + 0xD21C, 0xB893, 0xD21D, 0xB894, 0xD21E, 0xB895, 0xD21F, 0xB896, 0xD220, 0xB897, 0xD221, 0xB898, 0xD222, 0xB899, 0xD223, 0xB89A, + 0xD224, 0xB89B, 0xD225, 0xB89C, 0xD226, 0xB89D, 0xD227, 0xB89E, 0xD228, 0xB89F, 0xD229, 0xB8A0, 0xD22A, 0xB941, 0xD22B, 0xB942, + 0xD22C, 0xC5F5, 0xD22D, 0xC5F6, 0xD22E, 0xB943, 0xD22F, 0xB944, 0xD230, 0xC5F7, 0xD231, 0xB945, 0xD232, 0xB946, 0xD233, 0xB947, + 0xD234, 0xC5F8, 0xD235, 0xB948, 0xD236, 0xB949, 0xD237, 0xB94A, 0xD238, 0xB94B, 0xD239, 0xB94C, 0xD23A, 0xB94D, 0xD23B, 0xB94E, + 0xD23C, 0xC5F9, 0xD23D, 0xC5FA, 0xD23E, 0xB94F, 0xD23F, 0xC5FB, 0xD240, 0xB950, 0xD241, 0xC5FC, 0xD242, 0xB951, 0xD243, 0xB952, + 0xD244, 0xB953, 0xD245, 0xB954, 0xD246, 0xB955, 0xD247, 0xB956, 0xD248, 0xC5FD, 0xD249, 0xB957, 0xD24A, 0xB958, 0xD24B, 0xB959, + 0xD24C, 0xB95A, 0xD24D, 0xB961, 0xD24E, 0xB962, 0xD24F, 0xB963, 0xD250, 0xB964, 0xD251, 0xB965, 0xD252, 0xB966, 0xD253, 0xB967, + 0xD254, 0xB968, 0xD255, 0xB969, 0xD256, 0xB96A, 0xD257, 0xB96B, 0xD258, 0xB96C, 0xD259, 0xB96D, 0xD25A, 0xB96E, 0xD25B, 0xB96F, + 0xD25C, 0xC5FE, 0xD25D, 0xB970, 0xD25E, 0xB971, 0xD25F, 0xB972, 0xD260, 0xB973, 0xD261, 0xB974, 0xD262, 0xB975, 0xD263, 0xB976, + 0xD264, 0xC6A1, 0xD265, 0xB977, 0xD266, 0xB978, 0xD267, 0xB979, 0xD268, 0xB97A, 0xD269, 0xB981, 0xD26A, 0xB982, 0xD26B, 0xB983, + 0xD26C, 0xB984, 0xD26D, 0xB985, 0xD26E, 0xB986, 0xD26F, 0xB987, 0xD270, 0xB988, 0xD271, 0xB989, 0xD272, 0xB98A, 0xD273, 0xB98B, + 0xD274, 0xB98C, 0xD275, 0xB98D, 0xD276, 0xB98E, 0xD277, 0xB98F, 0xD278, 0xB990, 0xD279, 0xB991, 0xD27A, 0xB992, 0xD27B, 0xB993, + 0xD27C, 0xB994, 0xD27D, 0xB995, 0xD27E, 0xB996, 0xD27F, 0xB997, 0xD280, 0xC6A2, 0xD281, 0xC6A3, 0xD282, 0xB998, 0xD283, 0xB999, + 0xD284, 0xC6A4, 0xD285, 0xB99A, 0xD286, 0xB99B, 0xD287, 0xB99C, 0xD288, 0xC6A5, 0xD289, 0xB99D, 0xD28A, 0xB99E, 0xD28B, 0xB99F, + 0xD28C, 0xB9A0, 0xD28D, 0xBA41, 0xD28E, 0xBA42, 0xD28F, 0xBA43, 0xD290, 0xC6A6, 0xD291, 0xC6A7, 0xD292, 0xBA44, 0xD293, 0xBA45, + 0xD294, 0xBA46, 0xD295, 0xC6A8, 0xD296, 0xBA47, 0xD297, 0xBA48, 0xD298, 0xBA49, 0xD299, 0xBA4A, 0xD29A, 0xBA4B, 0xD29B, 0xBA4C, + 0xD29C, 0xC6A9, 0xD29D, 0xBA4D, 0xD29E, 0xBA4E, 0xD29F, 0xBA4F, 0xD2A0, 0xC6AA, 0xD2A1, 0xBA50, 0xD2A2, 0xBA51, 0xD2A3, 0xBA52, + 0xD2A4, 0xC6AB, 0xD2A5, 0xBA53, 0xD2A6, 0xBA54, 0xD2A7, 0xBA55, 0xD2A8, 0xBA56, 0xD2A9, 0xBA57, 0xD2AA, 0xBA58, 0xD2AB, 0xBA59, + 0xD2AC, 0xC6AC, 0xD2AD, 0xBA5A, 0xD2AE, 0xBA61, 0xD2AF, 0xBA62, 0xD2B0, 0xBA63, 0xD2B1, 0xC6AD, 0xD2B2, 0xBA64, 0xD2B3, 0xBA65, + 0xD2B4, 0xBA66, 0xD2B5, 0xBA67, 0xD2B6, 0xBA68, 0xD2B7, 0xBA69, 0xD2B8, 0xC6AE, 0xD2B9, 0xC6AF, 0xD2BA, 0xBA6A, 0xD2BB, 0xBA6B, + 0xD2BC, 0xC6B0, 0xD2BD, 0xBA6C, 0xD2BE, 0xBA6D, 0xD2BF, 0xC6B1, 0xD2C0, 0xC6B2, 0xD2C1, 0xBA6E, 0xD2C2, 0xC6B3, 0xD2C3, 0xBA6F, + 0xD2C4, 0xBA70, 0xD2C5, 0xBA71, 0xD2C6, 0xBA72, 0xD2C7, 0xBA73, 0xD2C8, 0xC6B4, 0xD2C9, 0xC6B5, 0xD2CA, 0xBA74, 0xD2CB, 0xC6B6, + 0xD2CC, 0xBA75, 0xD2CD, 0xBA76, 0xD2CE, 0xBA77, 0xD2CF, 0xBA78, 0xD2D0, 0xBA79, 0xD2D1, 0xBA7A, 0xD2D2, 0xBA81, 0xD2D3, 0xBA82, + 0xD2D4, 0xC6B7, 0xD2D5, 0xBA83, 0xD2D6, 0xBA84, 0xD2D7, 0xBA85, 0xD2D8, 0xC6B8, 0xD2D9, 0xBA86, 0xD2DA, 0xBA87, 0xD2DB, 0xBA88, + 0xD2DC, 0xC6B9, 0xD2DD, 0xBA89, 0xD2DE, 0xBA8A, 0xD2DF, 0xBA8B, 0xD2E0, 0xBA8C, 0xD2E1, 0xBA8D, 0xD2E2, 0xBA8E, 0xD2E3, 0xBA8F, + 0xD2E4, 0xC6BA, 0xD2E5, 0xC6BB, 0xD2E6, 0xBA90, 0xD2E7, 0xBA91, 0xD2E8, 0xBA92, 0xD2E9, 0xBA93, 0xD2EA, 0xBA94, 0xD2EB, 0xBA95, + 0xD2EC, 0xBA96, 0xD2ED, 0xBA97, 0xD2EE, 0xBA98, 0xD2EF, 0xBA99, 0xD2F0, 0xC6BC, 0xD2F1, 0xC6BD, 0xD2F2, 0xBA9A, 0xD2F3, 0xBA9B, + 0xD2F4, 0xC6BE, 0xD2F5, 0xBA9C, 0xD2F6, 0xBA9D, 0xD2F7, 0xBA9E, 0xD2F8, 0xC6BF, 0xD2F9, 0xBA9F, 0xD2FA, 0xBAA0, 0xD2FB, 0xBB41, + 0xD2FC, 0xBB42, 0xD2FD, 0xBB43, 0xD2FE, 0xBB44, 0xD2FF, 0xBB45, 0xD300, 0xC6C0, 0xD301, 0xC6C1, 0xD302, 0xBB46, 0xD303, 0xC6C2, + 0xD304, 0xBB47, 0xD305, 0xC6C3, 0xD306, 0xBB48, 0xD307, 0xBB49, 0xD308, 0xBB4A, 0xD309, 0xBB4B, 0xD30A, 0xBB4C, 0xD30B, 0xBB4D, + 0xD30C, 0xC6C4, 0xD30D, 0xC6C5, 0xD30E, 0xC6C6, 0xD30F, 0xBB4E, 0xD310, 0xC6C7, 0xD311, 0xBB4F, 0xD312, 0xBB50, 0xD313, 0xBB51, + 0xD314, 0xC6C8, 0xD315, 0xBB52, 0xD316, 0xC6C9, 0xD317, 0xBB53, 0xD318, 0xBB54, 0xD319, 0xBB55, 0xD31A, 0xBB56, 0xD31B, 0xBB57, + 0xD31C, 0xC6CA, 0xD31D, 0xC6CB, 0xD31E, 0xBB58, 0xD31F, 0xC6CC, 0xD320, 0xC6CD, 0xD321, 0xC6CE, 0xD322, 0xBB59, 0xD323, 0xBB5A, + 0xD324, 0xBB61, 0xD325, 0xC6CF, 0xD326, 0xBB62, 0xD327, 0xBB63, 0xD328, 0xC6D0, 0xD329, 0xC6D1, 0xD32A, 0xBB64, 0xD32B, 0xBB65, + 0xD32C, 0xC6D2, 0xD32D, 0xBB66, 0xD32E, 0xBB67, 0xD32F, 0xBB68, 0xD330, 0xC6D3, 0xD331, 0xBB69, 0xD332, 0xBB6A, 0xD333, 0xBB6B, + 0xD334, 0xBB6C, 0xD335, 0xBB6D, 0xD336, 0xBB6E, 0xD337, 0xBB6F, 0xD338, 0xC6D4, 0xD339, 0xC6D5, 0xD33A, 0xBB70, 0xD33B, 0xC6D6, + 0xD33C, 0xC6D7, 0xD33D, 0xC6D8, 0xD33E, 0xBB71, 0xD33F, 0xBB72, 0xD340, 0xBB73, 0xD341, 0xBB74, 0xD342, 0xBB75, 0xD343, 0xBB76, + 0xD344, 0xC6D9, 0xD345, 0xC6DA, 0xD346, 0xBB77, 0xD347, 0xBB78, 0xD348, 0xBB79, 0xD349, 0xBB7A, 0xD34A, 0xBB81, 0xD34B, 0xBB82, + 0xD34C, 0xBB83, 0xD34D, 0xBB84, 0xD34E, 0xBB85, 0xD34F, 0xBB86, 0xD350, 0xBB87, 0xD351, 0xBB88, 0xD352, 0xBB89, 0xD353, 0xBB8A, + 0xD354, 0xBB8B, 0xD355, 0xBB8C, 0xD356, 0xBB8D, 0xD357, 0xBB8E, 0xD358, 0xBB8F, 0xD359, 0xBB90, 0xD35A, 0xBB91, 0xD35B, 0xBB92, + 0xD35C, 0xBB93, 0xD35D, 0xBB94, 0xD35E, 0xBB95, 0xD35F, 0xBB96, 0xD360, 0xBB97, 0xD361, 0xBB98, 0xD362, 0xBB99, 0xD363, 0xBB9A, + 0xD364, 0xBB9B, 0xD365, 0xBB9C, 0xD366, 0xBB9D, 0xD367, 0xBB9E, 0xD368, 0xBB9F, 0xD369, 0xBBA0, 0xD36A, 0xBC41, 0xD36B, 0xBC42, + 0xD36C, 0xBC43, 0xD36D, 0xBC44, 0xD36E, 0xBC45, 0xD36F, 0xBC46, 0xD370, 0xBC47, 0xD371, 0xBC48, 0xD372, 0xBC49, 0xD373, 0xBC4A, + 0xD374, 0xBC4B, 0xD375, 0xBC4C, 0xD376, 0xBC4D, 0xD377, 0xBC4E, 0xD378, 0xBC4F, 0xD379, 0xBC50, 0xD37A, 0xBC51, 0xD37B, 0xBC52, + 0xD37C, 0xC6DB, 0xD37D, 0xC6DC, 0xD37E, 0xBC53, 0xD37F, 0xBC54, 0xD380, 0xC6DD, 0xD381, 0xBC55, 0xD382, 0xBC56, 0xD383, 0xBC57, + 0xD384, 0xC6DE, 0xD385, 0xBC58, 0xD386, 0xBC59, 0xD387, 0xBC5A, 0xD388, 0xBC61, 0xD389, 0xBC62, 0xD38A, 0xBC63, 0xD38B, 0xBC64, + 0xD38C, 0xC6DF, 0xD38D, 0xC6E0, 0xD38E, 0xBC65, 0xD38F, 0xC6E1, 0xD390, 0xC6E2, 0xD391, 0xC6E3, 0xD392, 0xBC66, 0xD393, 0xBC67, + 0xD394, 0xBC68, 0xD395, 0xBC69, 0xD396, 0xBC6A, 0xD397, 0xBC6B, 0xD398, 0xC6E4, 0xD399, 0xC6E5, 0xD39A, 0xBC6C, 0xD39B, 0xBC6D, + 0xD39C, 0xC6E6, 0xD39D, 0xBC6E, 0xD39E, 0xBC6F, 0xD39F, 0xBC70, 0xD3A0, 0xC6E7, 0xD3A1, 0xBC71, 0xD3A2, 0xBC72, 0xD3A3, 0xBC73, + 0xD3A4, 0xBC74, 0xD3A5, 0xBC75, 0xD3A6, 0xBC76, 0xD3A7, 0xBC77, 0xD3A8, 0xC6E8, 0xD3A9, 0xC6E9, 0xD3AA, 0xBC78, 0xD3AB, 0xC6EA, + 0xD3AC, 0xBC79, 0xD3AD, 0xC6EB, 0xD3AE, 0xBC7A, 0xD3AF, 0xBC81, 0xD3B0, 0xBC82, 0xD3B1, 0xBC83, 0xD3B2, 0xBC84, 0xD3B3, 0xBC85, + 0xD3B4, 0xC6EC, 0xD3B5, 0xBC86, 0xD3B6, 0xBC87, 0xD3B7, 0xBC88, 0xD3B8, 0xC6ED, 0xD3B9, 0xBC89, 0xD3BA, 0xBC8A, 0xD3BB, 0xBC8B, + 0xD3BC, 0xC6EE, 0xD3BD, 0xBC8C, 0xD3BE, 0xBC8D, 0xD3BF, 0xBC8E, 0xD3C0, 0xBC8F, 0xD3C1, 0xBC90, 0xD3C2, 0xBC91, 0xD3C3, 0xBC92, + 0xD3C4, 0xC6EF, 0xD3C5, 0xC6F0, 0xD3C6, 0xBC93, 0xD3C7, 0xBC94, 0xD3C8, 0xC6F1, 0xD3C9, 0xC6F2, 0xD3CA, 0xBC95, 0xD3CB, 0xBC96, + 0xD3CC, 0xBC97, 0xD3CD, 0xBC98, 0xD3CE, 0xBC99, 0xD3CF, 0xBC9A, 0xD3D0, 0xC6F3, 0xD3D1, 0xBC9B, 0xD3D2, 0xBC9C, 0xD3D3, 0xBC9D, + 0xD3D4, 0xBC9E, 0xD3D5, 0xBC9F, 0xD3D6, 0xBCA0, 0xD3D7, 0xBD41, 0xD3D8, 0xC6F4, 0xD3D9, 0xBD42, 0xD3DA, 0xBD43, 0xD3DB, 0xBD44, + 0xD3DC, 0xBD45, 0xD3DD, 0xBD46, 0xD3DE, 0xBD47, 0xD3DF, 0xBD48, 0xD3E0, 0xBD49, 0xD3E1, 0xC6F5, 0xD3E2, 0xBD4A, 0xD3E3, 0xC6F6, + 0xD3E4, 0xBD4B, 0xD3E5, 0xBD4C, 0xD3E6, 0xBD4D, 0xD3E7, 0xBD4E, 0xD3E8, 0xBD4F, 0xD3E9, 0xBD50, 0xD3EA, 0xBD51, 0xD3EB, 0xBD52, + 0xD3EC, 0xC6F7, 0xD3ED, 0xC6F8, 0xD3EE, 0xBD53, 0xD3EF, 0xBD54, 0xD3F0, 0xC6F9, 0xD3F1, 0xBD55, 0xD3F2, 0xBD56, 0xD3F3, 0xBD57, + 0xD3F4, 0xC6FA, 0xD3F5, 0xBD58, 0xD3F6, 0xBD59, 0xD3F7, 0xBD5A, 0xD3F8, 0xBD61, 0xD3F9, 0xBD62, 0xD3FA, 0xBD63, 0xD3FB, 0xBD64, + 0xD3FC, 0xC6FB, 0xD3FD, 0xC6FC, 0xD3FE, 0xBD65, 0xD3FF, 0xC6FD, 0xD400, 0xBD66, 0xD401, 0xC6FE, 0xD402, 0xBD67, 0xD403, 0xBD68, + 0xD404, 0xBD69, 0xD405, 0xBD6A, 0xD406, 0xBD6B, 0xD407, 0xBD6C, 0xD408, 0xC7A1, 0xD409, 0xBD6D, 0xD40A, 0xBD6E, 0xD40B, 0xBD6F, + 0xD40C, 0xBD70, 0xD40D, 0xBD71, 0xD40E, 0xBD72, 0xD40F, 0xBD73, 0xD410, 0xBD74, 0xD411, 0xBD75, 0xD412, 0xBD76, 0xD413, 0xBD77, + 0xD414, 0xBD78, 0xD415, 0xBD79, 0xD416, 0xBD7A, 0xD417, 0xBD81, 0xD418, 0xBD82, 0xD419, 0xBD83, 0xD41A, 0xBD84, 0xD41B, 0xBD85, + 0xD41C, 0xBD86, 0xD41D, 0xC7A2, 0xD41E, 0xBD87, 0xD41F, 0xBD88, 0xD420, 0xBD89, 0xD421, 0xBD8A, 0xD422, 0xBD8B, 0xD423, 0xBD8C, + 0xD424, 0xBD8D, 0xD425, 0xBD8E, 0xD426, 0xBD8F, 0xD427, 0xBD90, 0xD428, 0xBD91, 0xD429, 0xBD92, 0xD42A, 0xBD93, 0xD42B, 0xBD94, + 0xD42C, 0xBD95, 0xD42D, 0xBD96, 0xD42E, 0xBD97, 0xD42F, 0xBD98, 0xD430, 0xBD99, 0xD431, 0xBD9A, 0xD432, 0xBD9B, 0xD433, 0xBD9C, + 0xD434, 0xBD9D, 0xD435, 0xBD9E, 0xD436, 0xBD9F, 0xD437, 0xBDA0, 0xD438, 0xBE41, 0xD439, 0xBE42, 0xD43A, 0xBE43, 0xD43B, 0xBE44, + 0xD43C, 0xBE45, 0xD43D, 0xBE46, 0xD43E, 0xBE47, 0xD43F, 0xBE48, 0xD440, 0xC7A3, 0xD441, 0xBE49, 0xD442, 0xBE4A, 0xD443, 0xBE4B, + 0xD444, 0xC7A4, 0xD445, 0xBE4C, 0xD446, 0xBE4D, 0xD447, 0xBE4E, 0xD448, 0xBE4F, 0xD449, 0xBE50, 0xD44A, 0xBE51, 0xD44B, 0xBE52, + 0xD44C, 0xBE53, 0xD44D, 0xBE54, 0xD44E, 0xBE55, 0xD44F, 0xBE56, 0xD450, 0xBE57, 0xD451, 0xBE58, 0xD452, 0xBE59, 0xD453, 0xBE5A, + 0xD454, 0xBE61, 0xD455, 0xBE62, 0xD456, 0xBE63, 0xD457, 0xBE64, 0xD458, 0xBE65, 0xD459, 0xBE66, 0xD45A, 0xBE67, 0xD45B, 0xBE68, + 0xD45C, 0xC7A5, 0xD45D, 0xBE69, 0xD45E, 0xBE6A, 0xD45F, 0xBE6B, 0xD460, 0xC7A6, 0xD461, 0xBE6C, 0xD462, 0xBE6D, 0xD463, 0xBE6E, + 0xD464, 0xC7A7, 0xD465, 0xBE6F, 0xD466, 0xBE70, 0xD467, 0xBE71, 0xD468, 0xBE72, 0xD469, 0xBE73, 0xD46A, 0xBE74, 0xD46B, 0xBE75, + 0xD46C, 0xBE76, 0xD46D, 0xC7A8, 0xD46E, 0xBE77, 0xD46F, 0xC7A9, 0xD470, 0xBE78, 0xD471, 0xBE79, 0xD472, 0xBE7A, 0xD473, 0xBE81, + 0xD474, 0xBE82, 0xD475, 0xBE83, 0xD476, 0xBE84, 0xD477, 0xBE85, 0xD478, 0xC7AA, 0xD479, 0xC7AB, 0xD47A, 0xBE86, 0xD47B, 0xBE87, + 0xD47C, 0xC7AC, 0xD47D, 0xBE88, 0xD47E, 0xBE89, 0xD47F, 0xC7AD, 0xD480, 0xC7AE, 0xD481, 0xBE8A, 0xD482, 0xC7AF, 0xD483, 0xBE8B, + 0xD484, 0xBE8C, 0xD485, 0xBE8D, 0xD486, 0xBE8E, 0xD487, 0xBE8F, 0xD488, 0xC7B0, 0xD489, 0xC7B1, 0xD48A, 0xBE90, 0xD48B, 0xC7B2, + 0xD48C, 0xBE91, 0xD48D, 0xC7B3, 0xD48E, 0xBE92, 0xD48F, 0xBE93, 0xD490, 0xBE94, 0xD491, 0xBE95, 0xD492, 0xBE96, 0xD493, 0xBE97, + 0xD494, 0xC7B4, 0xD495, 0xBE98, 0xD496, 0xBE99, 0xD497, 0xBE9A, 0xD498, 0xBE9B, 0xD499, 0xBE9C, 0xD49A, 0xBE9D, 0xD49B, 0xBE9E, + 0xD49C, 0xBE9F, 0xD49D, 0xBEA0, 0xD49E, 0xBF41, 0xD49F, 0xBF42, 0xD4A0, 0xBF43, 0xD4A1, 0xBF44, 0xD4A2, 0xBF45, 0xD4A3, 0xBF46, + 0xD4A4, 0xBF47, 0xD4A5, 0xBF48, 0xD4A6, 0xBF49, 0xD4A7, 0xBF4A, 0xD4A8, 0xBF4B, 0xD4A9, 0xC7B5, 0xD4AA, 0xBF4C, 0xD4AB, 0xBF4D, + 0xD4AC, 0xBF4E, 0xD4AD, 0xBF4F, 0xD4AE, 0xBF50, 0xD4AF, 0xBF51, 0xD4B0, 0xBF52, 0xD4B1, 0xBF53, 0xD4B2, 0xBF54, 0xD4B3, 0xBF55, + 0xD4B4, 0xBF56, 0xD4B5, 0xBF57, 0xD4B6, 0xBF58, 0xD4B7, 0xBF59, 0xD4B8, 0xBF5A, 0xD4B9, 0xBF61, 0xD4BA, 0xBF62, 0xD4BB, 0xBF63, + 0xD4BC, 0xBF64, 0xD4BD, 0xBF65, 0xD4BE, 0xBF66, 0xD4BF, 0xBF67, 0xD4C0, 0xBF68, 0xD4C1, 0xBF69, 0xD4C2, 0xBF6A, 0xD4C3, 0xBF6B, + 0xD4C4, 0xBF6C, 0xD4C5, 0xBF6D, 0xD4C6, 0xBF6E, 0xD4C7, 0xBF6F, 0xD4C8, 0xBF70, 0xD4C9, 0xBF71, 0xD4CA, 0xBF72, 0xD4CB, 0xBF73, + 0xD4CC, 0xC7B6, 0xD4CD, 0xBF74, 0xD4CE, 0xBF75, 0xD4CF, 0xBF76, 0xD4D0, 0xC7B7, 0xD4D1, 0xBF77, 0xD4D2, 0xBF78, 0xD4D3, 0xBF79, + 0xD4D4, 0xC7B8, 0xD4D5, 0xBF7A, 0xD4D6, 0xBF81, 0xD4D7, 0xBF82, 0xD4D8, 0xBF83, 0xD4D9, 0xBF84, 0xD4DA, 0xBF85, 0xD4DB, 0xBF86, + 0xD4DC, 0xC7B9, 0xD4DD, 0xBF87, 0xD4DE, 0xBF88, 0xD4DF, 0xC7BA, 0xD4E0, 0xBF89, 0xD4E1, 0xBF8A, 0xD4E2, 0xBF8B, 0xD4E3, 0xBF8C, + 0xD4E4, 0xBF8D, 0xD4E5, 0xBF8E, 0xD4E6, 0xBF8F, 0xD4E7, 0xBF90, 0xD4E8, 0xC7BB, 0xD4E9, 0xBF91, 0xD4EA, 0xBF92, 0xD4EB, 0xBF93, + 0xD4EC, 0xC7BC, 0xD4ED, 0xBF94, 0xD4EE, 0xBF95, 0xD4EF, 0xBF96, 0xD4F0, 0xC7BD, 0xD4F1, 0xBF97, 0xD4F2, 0xBF98, 0xD4F3, 0xBF99, + 0xD4F4, 0xBF9A, 0xD4F5, 0xBF9B, 0xD4F6, 0xBF9C, 0xD4F7, 0xBF9D, 0xD4F8, 0xC7BE, 0xD4F9, 0xBF9E, 0xD4FA, 0xBF9F, 0xD4FB, 0xC7BF, + 0xD4FC, 0xBFA0, 0xD4FD, 0xC7C0, 0xD4FE, 0xC041, 0xD4FF, 0xC042, 0xD500, 0xC043, 0xD501, 0xC044, 0xD502, 0xC045, 0xD503, 0xC046, + 0xD504, 0xC7C1, 0xD505, 0xC047, 0xD506, 0xC048, 0xD507, 0xC049, 0xD508, 0xC7C2, 0xD509, 0xC04A, 0xD50A, 0xC04B, 0xD50B, 0xC04C, + 0xD50C, 0xC7C3, 0xD50D, 0xC04D, 0xD50E, 0xC04E, 0xD50F, 0xC04F, 0xD510, 0xC050, 0xD511, 0xC051, 0xD512, 0xC052, 0xD513, 0xC053, + 0xD514, 0xC7C4, 0xD515, 0xC7C5, 0xD516, 0xC054, 0xD517, 0xC7C6, 0xD518, 0xC055, 0xD519, 0xC056, 0xD51A, 0xC057, 0xD51B, 0xC058, + 0xD51C, 0xC059, 0xD51D, 0xC05A, 0xD51E, 0xC061, 0xD51F, 0xC062, 0xD520, 0xC063, 0xD521, 0xC064, 0xD522, 0xC065, 0xD523, 0xC066, + 0xD524, 0xC067, 0xD525, 0xC068, 0xD526, 0xC069, 0xD527, 0xC06A, 0xD528, 0xC06B, 0xD529, 0xC06C, 0xD52A, 0xC06D, 0xD52B, 0xC06E, + 0xD52C, 0xC06F, 0xD52D, 0xC070, 0xD52E, 0xC071, 0xD52F, 0xC072, 0xD530, 0xC073, 0xD531, 0xC074, 0xD532, 0xC075, 0xD533, 0xC076, + 0xD534, 0xC077, 0xD535, 0xC078, 0xD536, 0xC079, 0xD537, 0xC07A, 0xD538, 0xC081, 0xD539, 0xC082, 0xD53A, 0xC083, 0xD53B, 0xC084, + 0xD53C, 0xC7C7, 0xD53D, 0xC7C8, 0xD53E, 0xC085, 0xD53F, 0xC086, 0xD540, 0xC7C9, 0xD541, 0xC087, 0xD542, 0xC088, 0xD543, 0xC089, + 0xD544, 0xC7CA, 0xD545, 0xC08A, 0xD546, 0xC08B, 0xD547, 0xC08C, 0xD548, 0xC08D, 0xD549, 0xC08E, 0xD54A, 0xC08F, 0xD54B, 0xC090, + 0xD54C, 0xC7CB, 0xD54D, 0xC7CC, 0xD54E, 0xC091, 0xD54F, 0xC7CD, 0xD550, 0xC092, 0xD551, 0xC7CE, 0xD552, 0xC093, 0xD553, 0xC094, + 0xD554, 0xC095, 0xD555, 0xC096, 0xD556, 0xC097, 0xD557, 0xC098, 0xD558, 0xC7CF, 0xD559, 0xC7D0, 0xD55A, 0xC099, 0xD55B, 0xC09A, + 0xD55C, 0xC7D1, 0xD55D, 0xC09B, 0xD55E, 0xC09C, 0xD55F, 0xC09D, 0xD560, 0xC7D2, 0xD561, 0xC09E, 0xD562, 0xC09F, 0xD563, 0xC0A0, + 0xD564, 0xC141, 0xD565, 0xC7D3, 0xD566, 0xC142, 0xD567, 0xC143, 0xD568, 0xC7D4, 0xD569, 0xC7D5, 0xD56A, 0xC144, 0xD56B, 0xC7D6, + 0xD56C, 0xC145, 0xD56D, 0xC7D7, 0xD56E, 0xC146, 0xD56F, 0xC147, 0xD570, 0xC148, 0xD571, 0xC149, 0xD572, 0xC14A, 0xD573, 0xC14B, + 0xD574, 0xC7D8, 0xD575, 0xC7D9, 0xD576, 0xC14C, 0xD577, 0xC14D, 0xD578, 0xC7DA, 0xD579, 0xC14E, 0xD57A, 0xC14F, 0xD57B, 0xC150, + 0xD57C, 0xC7DB, 0xD57D, 0xC151, 0xD57E, 0xC152, 0xD57F, 0xC153, 0xD580, 0xC154, 0xD581, 0xC155, 0xD582, 0xC156, 0xD583, 0xC157, + 0xD584, 0xC7DC, 0xD585, 0xC7DD, 0xD586, 0xC158, 0xD587, 0xC7DE, 0xD588, 0xC7DF, 0xD589, 0xC7E0, 0xD58A, 0xC159, 0xD58B, 0xC15A, + 0xD58C, 0xC161, 0xD58D, 0xC162, 0xD58E, 0xC163, 0xD58F, 0xC164, 0xD590, 0xC7E1, 0xD591, 0xC165, 0xD592, 0xC166, 0xD593, 0xC167, + 0xD594, 0xC168, 0xD595, 0xC169, 0xD596, 0xC16A, 0xD597, 0xC16B, 0xD598, 0xC16C, 0xD599, 0xC16D, 0xD59A, 0xC16E, 0xD59B, 0xC16F, + 0xD59C, 0xC170, 0xD59D, 0xC171, 0xD59E, 0xC172, 0xD59F, 0xC173, 0xD5A0, 0xC174, 0xD5A1, 0xC175, 0xD5A2, 0xC176, 0xD5A3, 0xC177, + 0xD5A4, 0xC178, 0xD5A5, 0xC7E2, 0xD5A6, 0xC179, 0xD5A7, 0xC17A, 0xD5A8, 0xC181, 0xD5A9, 0xC182, 0xD5AA, 0xC183, 0xD5AB, 0xC184, + 0xD5AC, 0xC185, 0xD5AD, 0xC186, 0xD5AE, 0xC187, 0xD5AF, 0xC188, 0xD5B0, 0xC189, 0xD5B1, 0xC18A, 0xD5B2, 0xC18B, 0xD5B3, 0xC18C, + 0xD5B4, 0xC18D, 0xD5B5, 0xC18E, 0xD5B6, 0xC18F, 0xD5B7, 0xC190, 0xD5B8, 0xC191, 0xD5B9, 0xC192, 0xD5BA, 0xC193, 0xD5BB, 0xC194, + 0xD5BC, 0xC195, 0xD5BD, 0xC196, 0xD5BE, 0xC197, 0xD5BF, 0xC198, 0xD5C0, 0xC199, 0xD5C1, 0xC19A, 0xD5C2, 0xC19B, 0xD5C3, 0xC19C, + 0xD5C4, 0xC19D, 0xD5C5, 0xC19E, 0xD5C6, 0xC19F, 0xD5C7, 0xC1A0, 0xD5C8, 0xC7E3, 0xD5C9, 0xC7E4, 0xD5CA, 0xC241, 0xD5CB, 0xC242, + 0xD5CC, 0xC7E5, 0xD5CD, 0xC243, 0xD5CE, 0xC244, 0xD5CF, 0xC245, 0xD5D0, 0xC7E6, 0xD5D1, 0xC246, 0xD5D2, 0xC7E7, 0xD5D3, 0xC247, + 0xD5D4, 0xC248, 0xD5D5, 0xC249, 0xD5D6, 0xC24A, 0xD5D7, 0xC24B, 0xD5D8, 0xC7E8, 0xD5D9, 0xC7E9, 0xD5DA, 0xC24C, 0xD5DB, 0xC7EA, + 0xD5DC, 0xC24D, 0xD5DD, 0xC7EB, 0xD5DE, 0xC24E, 0xD5DF, 0xC24F, 0xD5E0, 0xC250, 0xD5E1, 0xC251, 0xD5E2, 0xC252, 0xD5E3, 0xC253, + 0xD5E4, 0xC7EC, 0xD5E5, 0xC7ED, 0xD5E6, 0xC254, 0xD5E7, 0xC255, 0xD5E8, 0xC7EE, 0xD5E9, 0xC256, 0xD5EA, 0xC257, 0xD5EB, 0xC258, + 0xD5EC, 0xC7EF, 0xD5ED, 0xC259, 0xD5EE, 0xC25A, 0xD5EF, 0xC261, 0xD5F0, 0xC262, 0xD5F1, 0xC263, 0xD5F2, 0xC264, 0xD5F3, 0xC265, + 0xD5F4, 0xC7F0, 0xD5F5, 0xC7F1, 0xD5F6, 0xC266, 0xD5F7, 0xC7F2, 0xD5F8, 0xC267, 0xD5F9, 0xC7F3, 0xD5FA, 0xC268, 0xD5FB, 0xC269, + 0xD5FC, 0xC26A, 0xD5FD, 0xC26B, 0xD5FE, 0xC26C, 0xD5FF, 0xC26D, 0xD600, 0xC7F4, 0xD601, 0xC7F5, 0xD602, 0xC26E, 0xD603, 0xC26F, + 0xD604, 0xC7F6, 0xD605, 0xC270, 0xD606, 0xC271, 0xD607, 0xC272, 0xD608, 0xC7F7, 0xD609, 0xC273, 0xD60A, 0xC274, 0xD60B, 0xC275, + 0xD60C, 0xC276, 0xD60D, 0xC277, 0xD60E, 0xC278, 0xD60F, 0xC279, 0xD610, 0xC7F8, 0xD611, 0xC7F9, 0xD612, 0xC27A, 0xD613, 0xC7FA, + 0xD614, 0xC7FB, 0xD615, 0xC7FC, 0xD616, 0xC281, 0xD617, 0xC282, 0xD618, 0xC283, 0xD619, 0xC284, 0xD61A, 0xC285, 0xD61B, 0xC286, + 0xD61C, 0xC7FD, 0xD61D, 0xC287, 0xD61E, 0xC288, 0xD61F, 0xC289, 0xD620, 0xC7FE, 0xD621, 0xC28A, 0xD622, 0xC28B, 0xD623, 0xC28C, + 0xD624, 0xC8A1, 0xD625, 0xC28D, 0xD626, 0xC28E, 0xD627, 0xC28F, 0xD628, 0xC290, 0xD629, 0xC291, 0xD62A, 0xC292, 0xD62B, 0xC293, + 0xD62C, 0xC294, 0xD62D, 0xC8A2, 0xD62E, 0xC295, 0xD62F, 0xC296, 0xD630, 0xC297, 0xD631, 0xC298, 0xD632, 0xC299, 0xD633, 0xC29A, + 0xD634, 0xC29B, 0xD635, 0xC29C, 0xD636, 0xC29D, 0xD637, 0xC29E, 0xD638, 0xC8A3, 0xD639, 0xC8A4, 0xD63A, 0xC29F, 0xD63B, 0xC2A0, + 0xD63C, 0xC8A5, 0xD63D, 0xC341, 0xD63E, 0xC342, 0xD63F, 0xC343, 0xD640, 0xC8A6, 0xD641, 0xC344, 0xD642, 0xC345, 0xD643, 0xC346, + 0xD644, 0xC347, 0xD645, 0xC8A7, 0xD646, 0xC348, 0xD647, 0xC349, 0xD648, 0xC8A8, 0xD649, 0xC8A9, 0xD64A, 0xC34A, 0xD64B, 0xC8AA, + 0xD64C, 0xC34B, 0xD64D, 0xC8AB, 0xD64E, 0xC34C, 0xD64F, 0xC34D, 0xD650, 0xC34E, 0xD651, 0xC8AC, 0xD652, 0xC34F, 0xD653, 0xC350, + 0xD654, 0xC8AD, 0xD655, 0xC8AE, 0xD656, 0xC351, 0xD657, 0xC352, 0xD658, 0xC8AF, 0xD659, 0xC353, 0xD65A, 0xC354, 0xD65B, 0xC355, + 0xD65C, 0xC8B0, 0xD65D, 0xC356, 0xD65E, 0xC357, 0xD65F, 0xC358, 0xD660, 0xC359, 0xD661, 0xC35A, 0xD662, 0xC361, 0xD663, 0xC362, + 0xD664, 0xC363, 0xD665, 0xC364, 0xD666, 0xC365, 0xD667, 0xC8B1, 0xD668, 0xC366, 0xD669, 0xC8B2, 0xD66A, 0xC367, 0xD66B, 0xC368, + 0xD66C, 0xC369, 0xD66D, 0xC36A, 0xD66E, 0xC36B, 0xD66F, 0xC36C, 0xD670, 0xC8B3, 0xD671, 0xC8B4, 0xD672, 0xC36D, 0xD673, 0xC36E, + 0xD674, 0xC8B5, 0xD675, 0xC36F, 0xD676, 0xC370, 0xD677, 0xC371, 0xD678, 0xC372, 0xD679, 0xC373, 0xD67A, 0xC374, 0xD67B, 0xC375, + 0xD67C, 0xC376, 0xD67D, 0xC377, 0xD67E, 0xC378, 0xD67F, 0xC379, 0xD680, 0xC37A, 0xD681, 0xC381, 0xD682, 0xC382, 0xD683, 0xC8B6, + 0xD684, 0xC383, 0xD685, 0xC8B7, 0xD686, 0xC384, 0xD687, 0xC385, 0xD688, 0xC386, 0xD689, 0xC387, 0xD68A, 0xC388, 0xD68B, 0xC389, + 0xD68C, 0xC8B8, 0xD68D, 0xC8B9, 0xD68E, 0xC38A, 0xD68F, 0xC38B, 0xD690, 0xC8BA, 0xD691, 0xC38C, 0xD692, 0xC38D, 0xD693, 0xC38E, + 0xD694, 0xC8BB, 0xD695, 0xC38F, 0xD696, 0xC390, 0xD697, 0xC391, 0xD698, 0xC392, 0xD699, 0xC393, 0xD69A, 0xC394, 0xD69B, 0xC395, + 0xD69C, 0xC396, 0xD69D, 0xC8BC, 0xD69E, 0xC397, 0xD69F, 0xC8BD, 0xD6A0, 0xC398, 0xD6A1, 0xC8BE, 0xD6A2, 0xC399, 0xD6A3, 0xC39A, + 0xD6A4, 0xC39B, 0xD6A5, 0xC39C, 0xD6A6, 0xC39D, 0xD6A7, 0xC39E, 0xD6A8, 0xC8BF, 0xD6A9, 0xC39F, 0xD6AA, 0xC3A0, 0xD6AB, 0xC441, + 0xD6AC, 0xC8C0, 0xD6AD, 0xC442, 0xD6AE, 0xC443, 0xD6AF, 0xC444, 0xD6B0, 0xC8C1, 0xD6B1, 0xC445, 0xD6B2, 0xC446, 0xD6B3, 0xC447, + 0xD6B4, 0xC448, 0xD6B5, 0xC449, 0xD6B6, 0xC44A, 0xD6B7, 0xC44B, 0xD6B8, 0xC44C, 0xD6B9, 0xC8C2, 0xD6BA, 0xC44D, 0xD6BB, 0xC8C3, + 0xD6BC, 0xC44E, 0xD6BD, 0xC44F, 0xD6BE, 0xC450, 0xD6BF, 0xC451, 0xD6C0, 0xC452, 0xD6C1, 0xC453, 0xD6C2, 0xC454, 0xD6C3, 0xC455, + 0xD6C4, 0xC8C4, 0xD6C5, 0xC8C5, 0xD6C6, 0xC456, 0xD6C7, 0xC457, 0xD6C8, 0xC8C6, 0xD6C9, 0xC458, 0xD6CA, 0xC459, 0xD6CB, 0xC45A, + 0xD6CC, 0xC8C7, 0xD6CD, 0xC461, 0xD6CE, 0xC462, 0xD6CF, 0xC463, 0xD6D0, 0xC464, 0xD6D1, 0xC8C8, 0xD6D2, 0xC465, 0xD6D3, 0xC466, + 0xD6D4, 0xC8C9, 0xD6D5, 0xC467, 0xD6D6, 0xC468, 0xD6D7, 0xC8CA, 0xD6D8, 0xC469, 0xD6D9, 0xC8CB, 0xD6DA, 0xC46A, 0xD6DB, 0xC46B, + 0xD6DC, 0xC46C, 0xD6DD, 0xC46D, 0xD6DE, 0xC46E, 0xD6DF, 0xC46F, 0xD6E0, 0xC8CC, 0xD6E1, 0xC470, 0xD6E2, 0xC471, 0xD6E3, 0xC472, + 0xD6E4, 0xC8CD, 0xD6E5, 0xC473, 0xD6E6, 0xC474, 0xD6E7, 0xC475, 0xD6E8, 0xC8CE, 0xD6E9, 0xC476, 0xD6EA, 0xC477, 0xD6EB, 0xC478, + 0xD6EC, 0xC479, 0xD6ED, 0xC47A, 0xD6EE, 0xC481, 0xD6EF, 0xC482, 0xD6F0, 0xC8CF, 0xD6F1, 0xC483, 0xD6F2, 0xC484, 0xD6F3, 0xC485, + 0xD6F4, 0xC486, 0xD6F5, 0xC8D0, 0xD6F6, 0xC487, 0xD6F7, 0xC488, 0xD6F8, 0xC489, 0xD6F9, 0xC48A, 0xD6FA, 0xC48B, 0xD6FB, 0xC48C, + 0xD6FC, 0xC8D1, 0xD6FD, 0xC8D2, 0xD6FE, 0xC48D, 0xD6FF, 0xC48E, 0xD700, 0xC8D3, 0xD701, 0xC48F, 0xD702, 0xC490, 0xD703, 0xC491, + 0xD704, 0xC8D4, 0xD705, 0xC492, 0xD706, 0xC493, 0xD707, 0xC494, 0xD708, 0xC495, 0xD709, 0xC496, 0xD70A, 0xC497, 0xD70B, 0xC498, + 0xD70C, 0xC499, 0xD70D, 0xC49A, 0xD70E, 0xC49B, 0xD70F, 0xC49C, 0xD710, 0xC49D, 0xD711, 0xC8D5, 0xD712, 0xC49E, 0xD713, 0xC49F, + 0xD714, 0xC4A0, 0xD715, 0xC541, 0xD716, 0xC542, 0xD717, 0xC543, 0xD718, 0xC8D6, 0xD719, 0xC8D7, 0xD71A, 0xC544, 0xD71B, 0xC545, + 0xD71C, 0xC8D8, 0xD71D, 0xC546, 0xD71E, 0xC547, 0xD71F, 0xC548, 0xD720, 0xC8D9, 0xD721, 0xC549, 0xD722, 0xC54A, 0xD723, 0xC54B, + 0xD724, 0xC54C, 0xD725, 0xC54D, 0xD726, 0xC54E, 0xD727, 0xC54F, 0xD728, 0xC8DA, 0xD729, 0xC8DB, 0xD72A, 0xC550, 0xD72B, 0xC8DC, + 0xD72C, 0xC551, 0xD72D, 0xC8DD, 0xD72E, 0xC552, 0xD72F, 0xC553, 0xD730, 0xC554, 0xD731, 0xC555, 0xD732, 0xC556, 0xD733, 0xC557, + 0xD734, 0xC8DE, 0xD735, 0xC8DF, 0xD736, 0xC558, 0xD737, 0xC559, 0xD738, 0xC8E0, 0xD739, 0xC55A, 0xD73A, 0xC561, 0xD73B, 0xC562, + 0xD73C, 0xC8E1, 0xD73D, 0xC563, 0xD73E, 0xC564, 0xD73F, 0xC565, 0xD740, 0xC566, 0xD741, 0xC567, 0xD742, 0xC568, 0xD743, 0xC569, + 0xD744, 0xC8E2, 0xD745, 0xC56A, 0xD746, 0xC56B, 0xD747, 0xC8E3, 0xD748, 0xC56C, 0xD749, 0xC8E4, 0xD74A, 0xC56D, 0xD74B, 0xC56E, + 0xD74C, 0xC56F, 0xD74D, 0xC570, 0xD74E, 0xC571, 0xD74F, 0xC572, 0xD750, 0xC8E5, 0xD751, 0xC8E6, 0xD752, 0xC573, 0xD753, 0xC574, + 0xD754, 0xC8E7, 0xD755, 0xC575, 0xD756, 0xC8E8, 0xD757, 0xC8E9, 0xD758, 0xC8EA, 0xD759, 0xC8EB, 0xD75A, 0xC576, 0xD75B, 0xC577, + 0xD75C, 0xC578, 0xD75D, 0xC579, 0xD75E, 0xC57A, 0xD75F, 0xC581, 0xD760, 0xC8EC, 0xD761, 0xC8ED, 0xD762, 0xC582, 0xD763, 0xC8EE, + 0xD764, 0xC583, 0xD765, 0xC8EF, 0xD766, 0xC584, 0xD767, 0xC585, 0xD768, 0xC586, 0xD769, 0xC8F0, 0xD76A, 0xC587, 0xD76B, 0xC588, + 0xD76C, 0xC8F1, 0xD76D, 0xC589, 0xD76E, 0xC58A, 0xD76F, 0xC58B, 0xD770, 0xC8F2, 0xD771, 0xC58C, 0xD772, 0xC58D, 0xD773, 0xC58E, + 0xD774, 0xC8F3, 0xD775, 0xC58F, 0xD776, 0xC590, 0xD777, 0xC591, 0xD778, 0xC592, 0xD779, 0xC593, 0xD77A, 0xC594, 0xD77B, 0xC595, + 0xD77C, 0xC8F4, 0xD77D, 0xC8F5, 0xD77E, 0xC596, 0xD77F, 0xC597, 0xD780, 0xC598, 0xD781, 0xC8F6, 0xD782, 0xC599, 0xD783, 0xC59A, + 0xD784, 0xC59B, 0xD785, 0xC59C, 0xD786, 0xC59D, 0xD787, 0xC59E, 0xD788, 0xC8F7, 0xD789, 0xC8F8, 0xD78A, 0xC59F, 0xD78B, 0xC5A0, + 0xD78C, 0xC8F9, 0xD78D, 0xC641, 0xD78E, 0xC642, 0xD78F, 0xC643, 0xD790, 0xC8FA, 0xD791, 0xC644, 0xD792, 0xC645, 0xD793, 0xC646, + 0xD794, 0xC647, 0xD795, 0xC648, 0xD796, 0xC649, 0xD797, 0xC64A, 0xD798, 0xC8FB, 0xD799, 0xC8FC, 0xD79A, 0xC64B, 0xD79B, 0xC8FD, + 0xD79C, 0xC64C, 0xD79D, 0xC8FE, 0xD79E, 0xC64D, 0xD79F, 0xC64E, 0xD7A0, 0xC64F, 0xD7A1, 0xC650, 0xD7A2, 0xC651, 0xD7A3, 0xC652, + 0xF900, 0xCBD0, 0xF901, 0xCBD6, 0xF902, 0xCBE7, 0xF903, 0xCDCF, 0xF904, 0xCDE8, 0xF905, 0xCEAD, 0xF906, 0xCFFB, 0xF907, 0xD0A2, + 0xF908, 0xD0B8, 0xF909, 0xD0D0, 0xF90A, 0xD0DD, 0xF90B, 0xD1D4, 0xF90C, 0xD1D5, 0xF90D, 0xD1D8, 0xF90E, 0xD1DB, 0xF90F, 0xD1DC, + 0xF910, 0xD1DD, 0xF911, 0xD1DE, 0xF912, 0xD1DF, 0xF913, 0xD1E0, 0xF914, 0xD1E2, 0xF915, 0xD1E3, 0xF916, 0xD1E4, 0xF917, 0xD1E5, + 0xF918, 0xD1E6, 0xF919, 0xD1E8, 0xF91A, 0xD1E9, 0xF91B, 0xD1EA, 0xF91C, 0xD1EB, 0xF91D, 0xD1ED, 0xF91E, 0xD1EF, 0xF91F, 0xD1F0, + 0xF920, 0xD1F2, 0xF921, 0xD1F6, 0xF922, 0xD1FA, 0xF923, 0xD1FC, 0xF924, 0xD1FD, 0xF925, 0xD1FE, 0xF926, 0xD2A2, 0xF927, 0xD2A3, + 0xF928, 0xD2A7, 0xF929, 0xD2A8, 0xF92A, 0xD2A9, 0xF92B, 0xD2AA, 0xF92C, 0xD2AB, 0xF92D, 0xD2AD, 0xF92E, 0xD2B2, 0xF92F, 0xD2BE, + 0xF930, 0xD2C2, 0xF931, 0xD2C3, 0xF932, 0xD2C4, 0xF933, 0xD2C6, 0xF934, 0xD2C7, 0xF935, 0xD2C8, 0xF936, 0xD2C9, 0xF937, 0xD2CA, + 0xF938, 0xD2CB, 0xF939, 0xD2CD, 0xF93A, 0xD2CE, 0xF93B, 0xD2CF, 0xF93C, 0xD2D0, 0xF93D, 0xD2D1, 0xF93E, 0xD2D2, 0xF93F, 0xD2D3, + 0xF940, 0xD2D4, 0xF941, 0xD2D5, 0xF942, 0xD2D6, 0xF943, 0xD2D7, 0xF944, 0xD2D9, 0xF945, 0xD2DA, 0xF946, 0xD2DE, 0xF947, 0xD2DF, + 0xF948, 0xD2E1, 0xF949, 0xD2E2, 0xF94A, 0xD2E4, 0xF94B, 0xD2E5, 0xF94C, 0xD2E6, 0xF94D, 0xD2E7, 0xF94E, 0xD2E8, 0xF94F, 0xD2E9, + 0xF950, 0xD2EA, 0xF951, 0xD2EB, 0xF952, 0xD2F0, 0xF953, 0xD2F1, 0xF954, 0xD2F2, 0xF955, 0xD2F3, 0xF956, 0xD2F4, 0xF957, 0xD2F5, + 0xF958, 0xD2F7, 0xF959, 0xD2F8, 0xF95A, 0xD4E6, 0xF95B, 0xD4FC, 0xF95C, 0xD5A5, 0xF95D, 0xD5AB, 0xF95E, 0xD5AE, 0xF95F, 0xD6B8, + 0xF960, 0xD6CD, 0xF961, 0xD7CB, 0xF962, 0xD7E4, 0xF963, 0xDBC5, 0xF964, 0xDBE4, 0xF965, 0xDCA5, 0xF966, 0xDDA5, 0xF967, 0xDDD5, + 0xF968, 0xDDF4, 0xF969, 0xDEFC, 0xF96A, 0xDEFE, 0xF96B, 0xDFB3, 0xF96C, 0xDFE1, 0xF96D, 0xDFE8, 0xF96E, 0xE0F1, 0xF96F, 0xE1AD, + 0xF970, 0xE1ED, 0xF971, 0xE3F5, 0xF972, 0xE4A1, 0xF973, 0xE4A9, 0xF974, 0xE5AE, 0xF975, 0xE5B1, 0xF976, 0xE5B2, 0xF977, 0xE5B9, + 0xF978, 0xE5BB, 0xF979, 0xE5BC, 0xF97A, 0xE5C4, 0xF97B, 0xE5CE, 0xF97C, 0xE5D0, 0xF97D, 0xE5D2, 0xF97E, 0xE5D6, 0xF97F, 0xE5FA, + 0xF980, 0xE5FB, 0xF981, 0xE5FC, 0xF982, 0xE5FE, 0xF983, 0xE6A1, 0xF984, 0xE6A4, 0xF985, 0xE6A7, 0xF986, 0xE6AD, 0xF987, 0xE6AF, + 0xF988, 0xE6B0, 0xF989, 0xE6B1, 0xF98A, 0xE6B3, 0xF98B, 0xE6B7, 0xF98C, 0xE6B8, 0xF98D, 0xE6BC, 0xF98E, 0xE6C4, 0xF98F, 0xE6C6, + 0xF990, 0xE6C7, 0xF991, 0xE6CA, 0xF992, 0xE6D2, 0xF993, 0xE6D6, 0xF994, 0xE6D9, 0xF995, 0xE6DC, 0xF996, 0xE6DF, 0xF997, 0xE6E1, + 0xF998, 0xE6E4, 0xF999, 0xE6E5, 0xF99A, 0xE6E6, 0xF99B, 0xE6E8, 0xF99C, 0xE6EA, 0xF99D, 0xE6EB, 0xF99E, 0xE6EC, 0xF99F, 0xE6EF, + 0xF9A0, 0xE6F1, 0xF9A1, 0xE6F2, 0xF9A2, 0xE6F5, 0xF9A3, 0xE6F6, 0xF9A4, 0xE6F7, 0xF9A5, 0xE6F9, 0xF9A6, 0xE7A1, 0xF9A7, 0xE7A6, + 0xF9A8, 0xE7A9, 0xF9A9, 0xE7AA, 0xF9AA, 0xE7AC, 0xF9AB, 0xE7AD, 0xF9AC, 0xE7B0, 0xF9AD, 0xE7BF, 0xF9AE, 0xE7C1, 0xF9AF, 0xE7C6, + 0xF9B0, 0xE7C7, 0xF9B1, 0xE7CB, 0xF9B2, 0xE7CD, 0xF9B3, 0xE7CF, 0xF9B4, 0xE7D0, 0xF9B5, 0xE7D3, 0xF9B6, 0xE7DF, 0xF9B7, 0xE7E4, + 0xF9B8, 0xE7E6, 0xF9B9, 0xE7F7, 0xF9BA, 0xE8E7, 0xF9BB, 0xE8E8, 0xF9BC, 0xE8F0, 0xF9BD, 0xE8F1, 0xF9BE, 0xE8F7, 0xF9BF, 0xE8F9, + 0xF9C0, 0xE8FB, 0xF9C1, 0xE8FE, 0xF9C2, 0xE9A7, 0xF9C3, 0xE9AC, 0xF9C4, 0xE9CC, 0xF9C5, 0xE9F7, 0xF9C6, 0xEAC1, 0xF9C7, 0xEAE5, + 0xF9C8, 0xEAF4, 0xF9C9, 0xEAF7, 0xF9CA, 0xEAFC, 0xF9CB, 0xEAFE, 0xF9CC, 0xEBA4, 0xF9CD, 0xEBA7, 0xF9CE, 0xEBA9, 0xF9CF, 0xEBAA, + 0xF9D0, 0xEBBA, 0xF9D1, 0xEBBB, 0xF9D2, 0xEBBD, 0xF9D3, 0xEBC1, 0xF9D4, 0xEBC2, 0xF9D5, 0xEBC6, 0xF9D6, 0xEBC7, 0xF9D7, 0xEBCC, + 0xF9D8, 0xEBCF, 0xF9D9, 0xEBD0, 0xF9DA, 0xEBD1, 0xF9DB, 0xEBD2, 0xF9DC, 0xEBD8, 0xF9DD, 0xECA6, 0xF9DE, 0xECA7, 0xF9DF, 0xECAA, + 0xF9E0, 0xECAF, 0xF9E1, 0xECB0, 0xF9E2, 0xECB1, 0xF9E3, 0xECB2, 0xF9E4, 0xECB5, 0xF9E5, 0xECB8, 0xF9E6, 0xECBA, 0xF9E7, 0xECC0, + 0xF9E8, 0xECC1, 0xF9E9, 0xECC5, 0xF9EA, 0xECC6, 0xF9EB, 0xECC9, 0xF9EC, 0xECCA, 0xF9ED, 0xECD5, 0xF9EE, 0xECDD, 0xF9EF, 0xECDE, + 0xF9F0, 0xECE1, 0xF9F1, 0xECE4, 0xF9F2, 0xECE7, 0xF9F3, 0xECE8, 0xF9F4, 0xECF7, 0xF9F5, 0xECF8, 0xF9F6, 0xECFA, 0xF9F7, 0xEDA1, + 0xF9F8, 0xEDA2, 0xF9F9, 0xEDA3, 0xF9FA, 0xEDEE, 0xF9FB, 0xEEDB, 0xF9FC, 0xF2BD, 0xF9FD, 0xF2FA, 0xF9FE, 0xF3B1, 0xF9FF, 0xF4A7, + 0xFA00, 0xF4EE, 0xFA01, 0xF6F4, 0xFA02, 0xF6F6, 0xFA03, 0xF7B8, 0xFA04, 0xF7C8, 0xFA05, 0xF7D3, 0xFA06, 0xF8DB, 0xFA07, 0xF8F0, + 0xFA08, 0xFAA1, 0xFA09, 0xFAA2, 0xFA0A, 0xFAE6, 0xFA0B, 0xFCA9, 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA3A4, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA1AC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA2A6, 0xFFE0, 0xA1CB, 0xFFE1, 0xA1CC, 0xFFE2, 0xA1FE, 0xFFE3, 0xA3FE, 0xFFE5, 0xA1CD, 0xFFE6, 0xA3DC, + 0, 0 +}; + +static +const WCHAR oem2uni949[] = { /* Korean --> Unicode pairs */ + 0x8141, 0xAC02, 0x8142, 0xAC03, 0x8143, 0xAC05, 0x8144, 0xAC06, 0x8145, 0xAC0B, 0x8146, 0xAC0C, 0x8147, 0xAC0D, 0x8148, 0xAC0E, + 0x8149, 0xAC0F, 0x814A, 0xAC18, 0x814B, 0xAC1E, 0x814C, 0xAC1F, 0x814D, 0xAC21, 0x814E, 0xAC22, 0x814F, 0xAC23, 0x8150, 0xAC25, + 0x8151, 0xAC26, 0x8152, 0xAC27, 0x8153, 0xAC28, 0x8154, 0xAC29, 0x8155, 0xAC2A, 0x8156, 0xAC2B, 0x8157, 0xAC2E, 0x8158, 0xAC32, + 0x8159, 0xAC33, 0x815A, 0xAC34, 0x8161, 0xAC35, 0x8162, 0xAC36, 0x8163, 0xAC37, 0x8164, 0xAC3A, 0x8165, 0xAC3B, 0x8166, 0xAC3D, + 0x8167, 0xAC3E, 0x8168, 0xAC3F, 0x8169, 0xAC41, 0x816A, 0xAC42, 0x816B, 0xAC43, 0x816C, 0xAC44, 0x816D, 0xAC45, 0x816E, 0xAC46, + 0x816F, 0xAC47, 0x8170, 0xAC48, 0x8171, 0xAC49, 0x8172, 0xAC4A, 0x8173, 0xAC4C, 0x8174, 0xAC4E, 0x8175, 0xAC4F, 0x8176, 0xAC50, + 0x8177, 0xAC51, 0x8178, 0xAC52, 0x8179, 0xAC53, 0x817A, 0xAC55, 0x8181, 0xAC56, 0x8182, 0xAC57, 0x8183, 0xAC59, 0x8184, 0xAC5A, + 0x8185, 0xAC5B, 0x8186, 0xAC5D, 0x8187, 0xAC5E, 0x8188, 0xAC5F, 0x8189, 0xAC60, 0x818A, 0xAC61, 0x818B, 0xAC62, 0x818C, 0xAC63, + 0x818D, 0xAC64, 0x818E, 0xAC65, 0x818F, 0xAC66, 0x8190, 0xAC67, 0x8191, 0xAC68, 0x8192, 0xAC69, 0x8193, 0xAC6A, 0x8194, 0xAC6B, + 0x8195, 0xAC6C, 0x8196, 0xAC6D, 0x8197, 0xAC6E, 0x8198, 0xAC6F, 0x8199, 0xAC72, 0x819A, 0xAC73, 0x819B, 0xAC75, 0x819C, 0xAC76, + 0x819D, 0xAC79, 0x819E, 0xAC7B, 0x819F, 0xAC7C, 0x81A0, 0xAC7D, 0x81A1, 0xAC7E, 0x81A2, 0xAC7F, 0x81A3, 0xAC82, 0x81A4, 0xAC87, + 0x81A5, 0xAC88, 0x81A6, 0xAC8D, 0x81A7, 0xAC8E, 0x81A8, 0xAC8F, 0x81A9, 0xAC91, 0x81AA, 0xAC92, 0x81AB, 0xAC93, 0x81AC, 0xAC95, + 0x81AD, 0xAC96, 0x81AE, 0xAC97, 0x81AF, 0xAC98, 0x81B0, 0xAC99, 0x81B1, 0xAC9A, 0x81B2, 0xAC9B, 0x81B3, 0xAC9E, 0x81B4, 0xACA2, + 0x81B5, 0xACA3, 0x81B6, 0xACA4, 0x81B7, 0xACA5, 0x81B8, 0xACA6, 0x81B9, 0xACA7, 0x81BA, 0xACAB, 0x81BB, 0xACAD, 0x81BC, 0xACAE, + 0x81BD, 0xACB1, 0x81BE, 0xACB2, 0x81BF, 0xACB3, 0x81C0, 0xACB4, 0x81C1, 0xACB5, 0x81C2, 0xACB6, 0x81C3, 0xACB7, 0x81C4, 0xACBA, + 0x81C5, 0xACBE, 0x81C6, 0xACBF, 0x81C7, 0xACC0, 0x81C8, 0xACC2, 0x81C9, 0xACC3, 0x81CA, 0xACC5, 0x81CB, 0xACC6, 0x81CC, 0xACC7, + 0x81CD, 0xACC9, 0x81CE, 0xACCA, 0x81CF, 0xACCB, 0x81D0, 0xACCD, 0x81D1, 0xACCE, 0x81D2, 0xACCF, 0x81D3, 0xACD0, 0x81D4, 0xACD1, + 0x81D5, 0xACD2, 0x81D6, 0xACD3, 0x81D7, 0xACD4, 0x81D8, 0xACD6, 0x81D9, 0xACD8, 0x81DA, 0xACD9, 0x81DB, 0xACDA, 0x81DC, 0xACDB, + 0x81DD, 0xACDC, 0x81DE, 0xACDD, 0x81DF, 0xACDE, 0x81E0, 0xACDF, 0x81E1, 0xACE2, 0x81E2, 0xACE3, 0x81E3, 0xACE5, 0x81E4, 0xACE6, + 0x81E5, 0xACE9, 0x81E6, 0xACEB, 0x81E7, 0xACED, 0x81E8, 0xACEE, 0x81E9, 0xACF2, 0x81EA, 0xACF4, 0x81EB, 0xACF7, 0x81EC, 0xACF8, + 0x81ED, 0xACF9, 0x81EE, 0xACFA, 0x81EF, 0xACFB, 0x81F0, 0xACFE, 0x81F1, 0xACFF, 0x81F2, 0xAD01, 0x81F3, 0xAD02, 0x81F4, 0xAD03, + 0x81F5, 0xAD05, 0x81F6, 0xAD07, 0x81F7, 0xAD08, 0x81F8, 0xAD09, 0x81F9, 0xAD0A, 0x81FA, 0xAD0B, 0x81FB, 0xAD0E, 0x81FC, 0xAD10, + 0x81FD, 0xAD12, 0x81FE, 0xAD13, 0x8241, 0xAD14, 0x8242, 0xAD15, 0x8243, 0xAD16, 0x8244, 0xAD17, 0x8245, 0xAD19, 0x8246, 0xAD1A, + 0x8247, 0xAD1B, 0x8248, 0xAD1D, 0x8249, 0xAD1E, 0x824A, 0xAD1F, 0x824B, 0xAD21, 0x824C, 0xAD22, 0x824D, 0xAD23, 0x824E, 0xAD24, + 0x824F, 0xAD25, 0x8250, 0xAD26, 0x8251, 0xAD27, 0x8252, 0xAD28, 0x8253, 0xAD2A, 0x8254, 0xAD2B, 0x8255, 0xAD2E, 0x8256, 0xAD2F, + 0x8257, 0xAD30, 0x8258, 0xAD31, 0x8259, 0xAD32, 0x825A, 0xAD33, 0x8261, 0xAD36, 0x8262, 0xAD37, 0x8263, 0xAD39, 0x8264, 0xAD3A, + 0x8265, 0xAD3B, 0x8266, 0xAD3D, 0x8267, 0xAD3E, 0x8268, 0xAD3F, 0x8269, 0xAD40, 0x826A, 0xAD41, 0x826B, 0xAD42, 0x826C, 0xAD43, + 0x826D, 0xAD46, 0x826E, 0xAD48, 0x826F, 0xAD4A, 0x8270, 0xAD4B, 0x8271, 0xAD4C, 0x8272, 0xAD4D, 0x8273, 0xAD4E, 0x8274, 0xAD4F, + 0x8275, 0xAD51, 0x8276, 0xAD52, 0x8277, 0xAD53, 0x8278, 0xAD55, 0x8279, 0xAD56, 0x827A, 0xAD57, 0x8281, 0xAD59, 0x8282, 0xAD5A, + 0x8283, 0xAD5B, 0x8284, 0xAD5C, 0x8285, 0xAD5D, 0x8286, 0xAD5E, 0x8287, 0xAD5F, 0x8288, 0xAD60, 0x8289, 0xAD62, 0x828A, 0xAD64, + 0x828B, 0xAD65, 0x828C, 0xAD66, 0x828D, 0xAD67, 0x828E, 0xAD68, 0x828F, 0xAD69, 0x8290, 0xAD6A, 0x8291, 0xAD6B, 0x8292, 0xAD6E, + 0x8293, 0xAD6F, 0x8294, 0xAD71, 0x8295, 0xAD72, 0x8296, 0xAD77, 0x8297, 0xAD78, 0x8298, 0xAD79, 0x8299, 0xAD7A, 0x829A, 0xAD7E, + 0x829B, 0xAD80, 0x829C, 0xAD83, 0x829D, 0xAD84, 0x829E, 0xAD85, 0x829F, 0xAD86, 0x82A0, 0xAD87, 0x82A1, 0xAD8A, 0x82A2, 0xAD8B, + 0x82A3, 0xAD8D, 0x82A4, 0xAD8E, 0x82A5, 0xAD8F, 0x82A6, 0xAD91, 0x82A7, 0xAD92, 0x82A8, 0xAD93, 0x82A9, 0xAD94, 0x82AA, 0xAD95, + 0x82AB, 0xAD96, 0x82AC, 0xAD97, 0x82AD, 0xAD98, 0x82AE, 0xAD99, 0x82AF, 0xAD9A, 0x82B0, 0xAD9B, 0x82B1, 0xAD9E, 0x82B2, 0xAD9F, + 0x82B3, 0xADA0, 0x82B4, 0xADA1, 0x82B5, 0xADA2, 0x82B6, 0xADA3, 0x82B7, 0xADA5, 0x82B8, 0xADA6, 0x82B9, 0xADA7, 0x82BA, 0xADA8, + 0x82BB, 0xADA9, 0x82BC, 0xADAA, 0x82BD, 0xADAB, 0x82BE, 0xADAC, 0x82BF, 0xADAD, 0x82C0, 0xADAE, 0x82C1, 0xADAF, 0x82C2, 0xADB0, + 0x82C3, 0xADB1, 0x82C4, 0xADB2, 0x82C5, 0xADB3, 0x82C6, 0xADB4, 0x82C7, 0xADB5, 0x82C8, 0xADB6, 0x82C9, 0xADB8, 0x82CA, 0xADB9, + 0x82CB, 0xADBA, 0x82CC, 0xADBB, 0x82CD, 0xADBC, 0x82CE, 0xADBD, 0x82CF, 0xADBE, 0x82D0, 0xADBF, 0x82D1, 0xADC2, 0x82D2, 0xADC3, + 0x82D3, 0xADC5, 0x82D4, 0xADC6, 0x82D5, 0xADC7, 0x82D6, 0xADC9, 0x82D7, 0xADCA, 0x82D8, 0xADCB, 0x82D9, 0xADCC, 0x82DA, 0xADCD, + 0x82DB, 0xADCE, 0x82DC, 0xADCF, 0x82DD, 0xADD2, 0x82DE, 0xADD4, 0x82DF, 0xADD5, 0x82E0, 0xADD6, 0x82E1, 0xADD7, 0x82E2, 0xADD8, + 0x82E3, 0xADD9, 0x82E4, 0xADDA, 0x82E5, 0xADDB, 0x82E6, 0xADDD, 0x82E7, 0xADDE, 0x82E8, 0xADDF, 0x82E9, 0xADE1, 0x82EA, 0xADE2, + 0x82EB, 0xADE3, 0x82EC, 0xADE5, 0x82ED, 0xADE6, 0x82EE, 0xADE7, 0x82EF, 0xADE8, 0x82F0, 0xADE9, 0x82F1, 0xADEA, 0x82F2, 0xADEB, + 0x82F3, 0xADEC, 0x82F4, 0xADED, 0x82F5, 0xADEE, 0x82F6, 0xADEF, 0x82F7, 0xADF0, 0x82F8, 0xADF1, 0x82F9, 0xADF2, 0x82FA, 0xADF3, + 0x82FB, 0xADF4, 0x82FC, 0xADF5, 0x82FD, 0xADF6, 0x82FE, 0xADF7, 0x8341, 0xADFA, 0x8342, 0xADFB, 0x8343, 0xADFD, 0x8344, 0xADFE, + 0x8345, 0xAE02, 0x8346, 0xAE03, 0x8347, 0xAE04, 0x8348, 0xAE05, 0x8349, 0xAE06, 0x834A, 0xAE07, 0x834B, 0xAE0A, 0x834C, 0xAE0C, + 0x834D, 0xAE0E, 0x834E, 0xAE0F, 0x834F, 0xAE10, 0x8350, 0xAE11, 0x8351, 0xAE12, 0x8352, 0xAE13, 0x8353, 0xAE15, 0x8354, 0xAE16, + 0x8355, 0xAE17, 0x8356, 0xAE18, 0x8357, 0xAE19, 0x8358, 0xAE1A, 0x8359, 0xAE1B, 0x835A, 0xAE1C, 0x8361, 0xAE1D, 0x8362, 0xAE1E, + 0x8363, 0xAE1F, 0x8364, 0xAE20, 0x8365, 0xAE21, 0x8366, 0xAE22, 0x8367, 0xAE23, 0x8368, 0xAE24, 0x8369, 0xAE25, 0x836A, 0xAE26, + 0x836B, 0xAE27, 0x836C, 0xAE28, 0x836D, 0xAE29, 0x836E, 0xAE2A, 0x836F, 0xAE2B, 0x8370, 0xAE2C, 0x8371, 0xAE2D, 0x8372, 0xAE2E, + 0x8373, 0xAE2F, 0x8374, 0xAE32, 0x8375, 0xAE33, 0x8376, 0xAE35, 0x8377, 0xAE36, 0x8378, 0xAE39, 0x8379, 0xAE3B, 0x837A, 0xAE3C, + 0x8381, 0xAE3D, 0x8382, 0xAE3E, 0x8383, 0xAE3F, 0x8384, 0xAE42, 0x8385, 0xAE44, 0x8386, 0xAE47, 0x8387, 0xAE48, 0x8388, 0xAE49, + 0x8389, 0xAE4B, 0x838A, 0xAE4F, 0x838B, 0xAE51, 0x838C, 0xAE52, 0x838D, 0xAE53, 0x838E, 0xAE55, 0x838F, 0xAE57, 0x8390, 0xAE58, + 0x8391, 0xAE59, 0x8392, 0xAE5A, 0x8393, 0xAE5B, 0x8394, 0xAE5E, 0x8395, 0xAE62, 0x8396, 0xAE63, 0x8397, 0xAE64, 0x8398, 0xAE66, + 0x8399, 0xAE67, 0x839A, 0xAE6A, 0x839B, 0xAE6B, 0x839C, 0xAE6D, 0x839D, 0xAE6E, 0x839E, 0xAE6F, 0x839F, 0xAE71, 0x83A0, 0xAE72, + 0x83A1, 0xAE73, 0x83A2, 0xAE74, 0x83A3, 0xAE75, 0x83A4, 0xAE76, 0x83A5, 0xAE77, 0x83A6, 0xAE7A, 0x83A7, 0xAE7E, 0x83A8, 0xAE7F, + 0x83A9, 0xAE80, 0x83AA, 0xAE81, 0x83AB, 0xAE82, 0x83AC, 0xAE83, 0x83AD, 0xAE86, 0x83AE, 0xAE87, 0x83AF, 0xAE88, 0x83B0, 0xAE89, + 0x83B1, 0xAE8A, 0x83B2, 0xAE8B, 0x83B3, 0xAE8D, 0x83B4, 0xAE8E, 0x83B5, 0xAE8F, 0x83B6, 0xAE90, 0x83B7, 0xAE91, 0x83B8, 0xAE92, + 0x83B9, 0xAE93, 0x83BA, 0xAE94, 0x83BB, 0xAE95, 0x83BC, 0xAE96, 0x83BD, 0xAE97, 0x83BE, 0xAE98, 0x83BF, 0xAE99, 0x83C0, 0xAE9A, + 0x83C1, 0xAE9B, 0x83C2, 0xAE9C, 0x83C3, 0xAE9D, 0x83C4, 0xAE9E, 0x83C5, 0xAE9F, 0x83C6, 0xAEA0, 0x83C7, 0xAEA1, 0x83C8, 0xAEA2, + 0x83C9, 0xAEA3, 0x83CA, 0xAEA4, 0x83CB, 0xAEA5, 0x83CC, 0xAEA6, 0x83CD, 0xAEA7, 0x83CE, 0xAEA8, 0x83CF, 0xAEA9, 0x83D0, 0xAEAA, + 0x83D1, 0xAEAB, 0x83D2, 0xAEAC, 0x83D3, 0xAEAD, 0x83D4, 0xAEAE, 0x83D5, 0xAEAF, 0x83D6, 0xAEB0, 0x83D7, 0xAEB1, 0x83D8, 0xAEB2, + 0x83D9, 0xAEB3, 0x83DA, 0xAEB4, 0x83DB, 0xAEB5, 0x83DC, 0xAEB6, 0x83DD, 0xAEB7, 0x83DE, 0xAEB8, 0x83DF, 0xAEB9, 0x83E0, 0xAEBA, + 0x83E1, 0xAEBB, 0x83E2, 0xAEBF, 0x83E3, 0xAEC1, 0x83E4, 0xAEC2, 0x83E5, 0xAEC3, 0x83E6, 0xAEC5, 0x83E7, 0xAEC6, 0x83E8, 0xAEC7, + 0x83E9, 0xAEC8, 0x83EA, 0xAEC9, 0x83EB, 0xAECA, 0x83EC, 0xAECB, 0x83ED, 0xAECE, 0x83EE, 0xAED2, 0x83EF, 0xAED3, 0x83F0, 0xAED4, + 0x83F1, 0xAED5, 0x83F2, 0xAED6, 0x83F3, 0xAED7, 0x83F4, 0xAEDA, 0x83F5, 0xAEDB, 0x83F6, 0xAEDD, 0x83F7, 0xAEDE, 0x83F8, 0xAEDF, + 0x83F9, 0xAEE0, 0x83FA, 0xAEE1, 0x83FB, 0xAEE2, 0x83FC, 0xAEE3, 0x83FD, 0xAEE4, 0x83FE, 0xAEE5, 0x8441, 0xAEE6, 0x8442, 0xAEE7, + 0x8443, 0xAEE9, 0x8444, 0xAEEA, 0x8445, 0xAEEC, 0x8446, 0xAEEE, 0x8447, 0xAEEF, 0x8448, 0xAEF0, 0x8449, 0xAEF1, 0x844A, 0xAEF2, + 0x844B, 0xAEF3, 0x844C, 0xAEF5, 0x844D, 0xAEF6, 0x844E, 0xAEF7, 0x844F, 0xAEF9, 0x8450, 0xAEFA, 0x8451, 0xAEFB, 0x8452, 0xAEFD, + 0x8453, 0xAEFE, 0x8454, 0xAEFF, 0x8455, 0xAF00, 0x8456, 0xAF01, 0x8457, 0xAF02, 0x8458, 0xAF03, 0x8459, 0xAF04, 0x845A, 0xAF05, + 0x8461, 0xAF06, 0x8462, 0xAF09, 0x8463, 0xAF0A, 0x8464, 0xAF0B, 0x8465, 0xAF0C, 0x8466, 0xAF0E, 0x8467, 0xAF0F, 0x8468, 0xAF11, + 0x8469, 0xAF12, 0x846A, 0xAF13, 0x846B, 0xAF14, 0x846C, 0xAF15, 0x846D, 0xAF16, 0x846E, 0xAF17, 0x846F, 0xAF18, 0x8470, 0xAF19, + 0x8471, 0xAF1A, 0x8472, 0xAF1B, 0x8473, 0xAF1C, 0x8474, 0xAF1D, 0x8475, 0xAF1E, 0x8476, 0xAF1F, 0x8477, 0xAF20, 0x8478, 0xAF21, + 0x8479, 0xAF22, 0x847A, 0xAF23, 0x8481, 0xAF24, 0x8482, 0xAF25, 0x8483, 0xAF26, 0x8484, 0xAF27, 0x8485, 0xAF28, 0x8486, 0xAF29, + 0x8487, 0xAF2A, 0x8488, 0xAF2B, 0x8489, 0xAF2E, 0x848A, 0xAF2F, 0x848B, 0xAF31, 0x848C, 0xAF33, 0x848D, 0xAF35, 0x848E, 0xAF36, + 0x848F, 0xAF37, 0x8490, 0xAF38, 0x8491, 0xAF39, 0x8492, 0xAF3A, 0x8493, 0xAF3B, 0x8494, 0xAF3E, 0x8495, 0xAF40, 0x8496, 0xAF44, + 0x8497, 0xAF45, 0x8498, 0xAF46, 0x8499, 0xAF47, 0x849A, 0xAF4A, 0x849B, 0xAF4B, 0x849C, 0xAF4C, 0x849D, 0xAF4D, 0x849E, 0xAF4E, + 0x849F, 0xAF4F, 0x84A0, 0xAF51, 0x84A1, 0xAF52, 0x84A2, 0xAF53, 0x84A3, 0xAF54, 0x84A4, 0xAF55, 0x84A5, 0xAF56, 0x84A6, 0xAF57, + 0x84A7, 0xAF58, 0x84A8, 0xAF59, 0x84A9, 0xAF5A, 0x84AA, 0xAF5B, 0x84AB, 0xAF5E, 0x84AC, 0xAF5F, 0x84AD, 0xAF60, 0x84AE, 0xAF61, + 0x84AF, 0xAF62, 0x84B0, 0xAF63, 0x84B1, 0xAF66, 0x84B2, 0xAF67, 0x84B3, 0xAF68, 0x84B4, 0xAF69, 0x84B5, 0xAF6A, 0x84B6, 0xAF6B, + 0x84B7, 0xAF6C, 0x84B8, 0xAF6D, 0x84B9, 0xAF6E, 0x84BA, 0xAF6F, 0x84BB, 0xAF70, 0x84BC, 0xAF71, 0x84BD, 0xAF72, 0x84BE, 0xAF73, + 0x84BF, 0xAF74, 0x84C0, 0xAF75, 0x84C1, 0xAF76, 0x84C2, 0xAF77, 0x84C3, 0xAF78, 0x84C4, 0xAF7A, 0x84C5, 0xAF7B, 0x84C6, 0xAF7C, + 0x84C7, 0xAF7D, 0x84C8, 0xAF7E, 0x84C9, 0xAF7F, 0x84CA, 0xAF81, 0x84CB, 0xAF82, 0x84CC, 0xAF83, 0x84CD, 0xAF85, 0x84CE, 0xAF86, + 0x84CF, 0xAF87, 0x84D0, 0xAF89, 0x84D1, 0xAF8A, 0x84D2, 0xAF8B, 0x84D3, 0xAF8C, 0x84D4, 0xAF8D, 0x84D5, 0xAF8E, 0x84D6, 0xAF8F, + 0x84D7, 0xAF92, 0x84D8, 0xAF93, 0x84D9, 0xAF94, 0x84DA, 0xAF96, 0x84DB, 0xAF97, 0x84DC, 0xAF98, 0x84DD, 0xAF99, 0x84DE, 0xAF9A, + 0x84DF, 0xAF9B, 0x84E0, 0xAF9D, 0x84E1, 0xAF9E, 0x84E2, 0xAF9F, 0x84E3, 0xAFA0, 0x84E4, 0xAFA1, 0x84E5, 0xAFA2, 0x84E6, 0xAFA3, + 0x84E7, 0xAFA4, 0x84E8, 0xAFA5, 0x84E9, 0xAFA6, 0x84EA, 0xAFA7, 0x84EB, 0xAFA8, 0x84EC, 0xAFA9, 0x84ED, 0xAFAA, 0x84EE, 0xAFAB, + 0x84EF, 0xAFAC, 0x84F0, 0xAFAD, 0x84F1, 0xAFAE, 0x84F2, 0xAFAF, 0x84F3, 0xAFB0, 0x84F4, 0xAFB1, 0x84F5, 0xAFB2, 0x84F6, 0xAFB3, + 0x84F7, 0xAFB4, 0x84F8, 0xAFB5, 0x84F9, 0xAFB6, 0x84FA, 0xAFB7, 0x84FB, 0xAFBA, 0x84FC, 0xAFBB, 0x84FD, 0xAFBD, 0x84FE, 0xAFBE, + 0x8541, 0xAFBF, 0x8542, 0xAFC1, 0x8543, 0xAFC2, 0x8544, 0xAFC3, 0x8545, 0xAFC4, 0x8546, 0xAFC5, 0x8547, 0xAFC6, 0x8548, 0xAFCA, + 0x8549, 0xAFCC, 0x854A, 0xAFCF, 0x854B, 0xAFD0, 0x854C, 0xAFD1, 0x854D, 0xAFD2, 0x854E, 0xAFD3, 0x854F, 0xAFD5, 0x8550, 0xAFD6, + 0x8551, 0xAFD7, 0x8552, 0xAFD8, 0x8553, 0xAFD9, 0x8554, 0xAFDA, 0x8555, 0xAFDB, 0x8556, 0xAFDD, 0x8557, 0xAFDE, 0x8558, 0xAFDF, + 0x8559, 0xAFE0, 0x855A, 0xAFE1, 0x8561, 0xAFE2, 0x8562, 0xAFE3, 0x8563, 0xAFE4, 0x8564, 0xAFE5, 0x8565, 0xAFE6, 0x8566, 0xAFE7, + 0x8567, 0xAFEA, 0x8568, 0xAFEB, 0x8569, 0xAFEC, 0x856A, 0xAFED, 0x856B, 0xAFEE, 0x856C, 0xAFEF, 0x856D, 0xAFF2, 0x856E, 0xAFF3, + 0x856F, 0xAFF5, 0x8570, 0xAFF6, 0x8571, 0xAFF7, 0x8572, 0xAFF9, 0x8573, 0xAFFA, 0x8574, 0xAFFB, 0x8575, 0xAFFC, 0x8576, 0xAFFD, + 0x8577, 0xAFFE, 0x8578, 0xAFFF, 0x8579, 0xB002, 0x857A, 0xB003, 0x8581, 0xB005, 0x8582, 0xB006, 0x8583, 0xB007, 0x8584, 0xB008, + 0x8585, 0xB009, 0x8586, 0xB00A, 0x8587, 0xB00B, 0x8588, 0xB00D, 0x8589, 0xB00E, 0x858A, 0xB00F, 0x858B, 0xB011, 0x858C, 0xB012, + 0x858D, 0xB013, 0x858E, 0xB015, 0x858F, 0xB016, 0x8590, 0xB017, 0x8591, 0xB018, 0x8592, 0xB019, 0x8593, 0xB01A, 0x8594, 0xB01B, + 0x8595, 0xB01E, 0x8596, 0xB01F, 0x8597, 0xB020, 0x8598, 0xB021, 0x8599, 0xB022, 0x859A, 0xB023, 0x859B, 0xB024, 0x859C, 0xB025, + 0x859D, 0xB026, 0x859E, 0xB027, 0x859F, 0xB029, 0x85A0, 0xB02A, 0x85A1, 0xB02B, 0x85A2, 0xB02C, 0x85A3, 0xB02D, 0x85A4, 0xB02E, + 0x85A5, 0xB02F, 0x85A6, 0xB030, 0x85A7, 0xB031, 0x85A8, 0xB032, 0x85A9, 0xB033, 0x85AA, 0xB034, 0x85AB, 0xB035, 0x85AC, 0xB036, + 0x85AD, 0xB037, 0x85AE, 0xB038, 0x85AF, 0xB039, 0x85B0, 0xB03A, 0x85B1, 0xB03B, 0x85B2, 0xB03C, 0x85B3, 0xB03D, 0x85B4, 0xB03E, + 0x85B5, 0xB03F, 0x85B6, 0xB040, 0x85B7, 0xB041, 0x85B8, 0xB042, 0x85B9, 0xB043, 0x85BA, 0xB046, 0x85BB, 0xB047, 0x85BC, 0xB049, + 0x85BD, 0xB04B, 0x85BE, 0xB04D, 0x85BF, 0xB04F, 0x85C0, 0xB050, 0x85C1, 0xB051, 0x85C2, 0xB052, 0x85C3, 0xB056, 0x85C4, 0xB058, + 0x85C5, 0xB05A, 0x85C6, 0xB05B, 0x85C7, 0xB05C, 0x85C8, 0xB05E, 0x85C9, 0xB05F, 0x85CA, 0xB060, 0x85CB, 0xB061, 0x85CC, 0xB062, + 0x85CD, 0xB063, 0x85CE, 0xB064, 0x85CF, 0xB065, 0x85D0, 0xB066, 0x85D1, 0xB067, 0x85D2, 0xB068, 0x85D3, 0xB069, 0x85D4, 0xB06A, + 0x85D5, 0xB06B, 0x85D6, 0xB06C, 0x85D7, 0xB06D, 0x85D8, 0xB06E, 0x85D9, 0xB06F, 0x85DA, 0xB070, 0x85DB, 0xB071, 0x85DC, 0xB072, + 0x85DD, 0xB073, 0x85DE, 0xB074, 0x85DF, 0xB075, 0x85E0, 0xB076, 0x85E1, 0xB077, 0x85E2, 0xB078, 0x85E3, 0xB079, 0x85E4, 0xB07A, + 0x85E5, 0xB07B, 0x85E6, 0xB07E, 0x85E7, 0xB07F, 0x85E8, 0xB081, 0x85E9, 0xB082, 0x85EA, 0xB083, 0x85EB, 0xB085, 0x85EC, 0xB086, + 0x85ED, 0xB087, 0x85EE, 0xB088, 0x85EF, 0xB089, 0x85F0, 0xB08A, 0x85F1, 0xB08B, 0x85F2, 0xB08E, 0x85F3, 0xB090, 0x85F4, 0xB092, + 0x85F5, 0xB093, 0x85F6, 0xB094, 0x85F7, 0xB095, 0x85F8, 0xB096, 0x85F9, 0xB097, 0x85FA, 0xB09B, 0x85FB, 0xB09D, 0x85FC, 0xB09E, + 0x85FD, 0xB0A3, 0x85FE, 0xB0A4, 0x8641, 0xB0A5, 0x8642, 0xB0A6, 0x8643, 0xB0A7, 0x8644, 0xB0AA, 0x8645, 0xB0B0, 0x8646, 0xB0B2, + 0x8647, 0xB0B6, 0x8648, 0xB0B7, 0x8649, 0xB0B9, 0x864A, 0xB0BA, 0x864B, 0xB0BB, 0x864C, 0xB0BD, 0x864D, 0xB0BE, 0x864E, 0xB0BF, + 0x864F, 0xB0C0, 0x8650, 0xB0C1, 0x8651, 0xB0C2, 0x8652, 0xB0C3, 0x8653, 0xB0C6, 0x8654, 0xB0CA, 0x8655, 0xB0CB, 0x8656, 0xB0CC, + 0x8657, 0xB0CD, 0x8658, 0xB0CE, 0x8659, 0xB0CF, 0x865A, 0xB0D2, 0x8661, 0xB0D3, 0x8662, 0xB0D5, 0x8663, 0xB0D6, 0x8664, 0xB0D7, + 0x8665, 0xB0D9, 0x8666, 0xB0DA, 0x8667, 0xB0DB, 0x8668, 0xB0DC, 0x8669, 0xB0DD, 0x866A, 0xB0DE, 0x866B, 0xB0DF, 0x866C, 0xB0E1, + 0x866D, 0xB0E2, 0x866E, 0xB0E3, 0x866F, 0xB0E4, 0x8670, 0xB0E6, 0x8671, 0xB0E7, 0x8672, 0xB0E8, 0x8673, 0xB0E9, 0x8674, 0xB0EA, + 0x8675, 0xB0EB, 0x8676, 0xB0EC, 0x8677, 0xB0ED, 0x8678, 0xB0EE, 0x8679, 0xB0EF, 0x867A, 0xB0F0, 0x8681, 0xB0F1, 0x8682, 0xB0F2, + 0x8683, 0xB0F3, 0x8684, 0xB0F4, 0x8685, 0xB0F5, 0x8686, 0xB0F6, 0x8687, 0xB0F7, 0x8688, 0xB0F8, 0x8689, 0xB0F9, 0x868A, 0xB0FA, + 0x868B, 0xB0FB, 0x868C, 0xB0FC, 0x868D, 0xB0FD, 0x868E, 0xB0FE, 0x868F, 0xB0FF, 0x8690, 0xB100, 0x8691, 0xB101, 0x8692, 0xB102, + 0x8693, 0xB103, 0x8694, 0xB104, 0x8695, 0xB105, 0x8696, 0xB106, 0x8697, 0xB107, 0x8698, 0xB10A, 0x8699, 0xB10D, 0x869A, 0xB10E, + 0x869B, 0xB10F, 0x869C, 0xB111, 0x869D, 0xB114, 0x869E, 0xB115, 0x869F, 0xB116, 0x86A0, 0xB117, 0x86A1, 0xB11A, 0x86A2, 0xB11E, + 0x86A3, 0xB11F, 0x86A4, 0xB120, 0x86A5, 0xB121, 0x86A6, 0xB122, 0x86A7, 0xB126, 0x86A8, 0xB127, 0x86A9, 0xB129, 0x86AA, 0xB12A, + 0x86AB, 0xB12B, 0x86AC, 0xB12D, 0x86AD, 0xB12E, 0x86AE, 0xB12F, 0x86AF, 0xB130, 0x86B0, 0xB131, 0x86B1, 0xB132, 0x86B2, 0xB133, + 0x86B3, 0xB136, 0x86B4, 0xB13A, 0x86B5, 0xB13B, 0x86B6, 0xB13C, 0x86B7, 0xB13D, 0x86B8, 0xB13E, 0x86B9, 0xB13F, 0x86BA, 0xB142, + 0x86BB, 0xB143, 0x86BC, 0xB145, 0x86BD, 0xB146, 0x86BE, 0xB147, 0x86BF, 0xB149, 0x86C0, 0xB14A, 0x86C1, 0xB14B, 0x86C2, 0xB14C, + 0x86C3, 0xB14D, 0x86C4, 0xB14E, 0x86C5, 0xB14F, 0x86C6, 0xB152, 0x86C7, 0xB153, 0x86C8, 0xB156, 0x86C9, 0xB157, 0x86CA, 0xB159, + 0x86CB, 0xB15A, 0x86CC, 0xB15B, 0x86CD, 0xB15D, 0x86CE, 0xB15E, 0x86CF, 0xB15F, 0x86D0, 0xB161, 0x86D1, 0xB162, 0x86D2, 0xB163, + 0x86D3, 0xB164, 0x86D4, 0xB165, 0x86D5, 0xB166, 0x86D6, 0xB167, 0x86D7, 0xB168, 0x86D8, 0xB169, 0x86D9, 0xB16A, 0x86DA, 0xB16B, + 0x86DB, 0xB16C, 0x86DC, 0xB16D, 0x86DD, 0xB16E, 0x86DE, 0xB16F, 0x86DF, 0xB170, 0x86E0, 0xB171, 0x86E1, 0xB172, 0x86E2, 0xB173, + 0x86E3, 0xB174, 0x86E4, 0xB175, 0x86E5, 0xB176, 0x86E6, 0xB177, 0x86E7, 0xB17A, 0x86E8, 0xB17B, 0x86E9, 0xB17D, 0x86EA, 0xB17E, + 0x86EB, 0xB17F, 0x86EC, 0xB181, 0x86ED, 0xB183, 0x86EE, 0xB184, 0x86EF, 0xB185, 0x86F0, 0xB186, 0x86F1, 0xB187, 0x86F2, 0xB18A, + 0x86F3, 0xB18C, 0x86F4, 0xB18E, 0x86F5, 0xB18F, 0x86F6, 0xB190, 0x86F7, 0xB191, 0x86F8, 0xB195, 0x86F9, 0xB196, 0x86FA, 0xB197, + 0x86FB, 0xB199, 0x86FC, 0xB19A, 0x86FD, 0xB19B, 0x86FE, 0xB19D, 0x8741, 0xB19E, 0x8742, 0xB19F, 0x8743, 0xB1A0, 0x8744, 0xB1A1, + 0x8745, 0xB1A2, 0x8746, 0xB1A3, 0x8747, 0xB1A4, 0x8748, 0xB1A5, 0x8749, 0xB1A6, 0x874A, 0xB1A7, 0x874B, 0xB1A9, 0x874C, 0xB1AA, + 0x874D, 0xB1AB, 0x874E, 0xB1AC, 0x874F, 0xB1AD, 0x8750, 0xB1AE, 0x8751, 0xB1AF, 0x8752, 0xB1B0, 0x8753, 0xB1B1, 0x8754, 0xB1B2, + 0x8755, 0xB1B3, 0x8756, 0xB1B4, 0x8757, 0xB1B5, 0x8758, 0xB1B6, 0x8759, 0xB1B7, 0x875A, 0xB1B8, 0x8761, 0xB1B9, 0x8762, 0xB1BA, + 0x8763, 0xB1BB, 0x8764, 0xB1BC, 0x8765, 0xB1BD, 0x8766, 0xB1BE, 0x8767, 0xB1BF, 0x8768, 0xB1C0, 0x8769, 0xB1C1, 0x876A, 0xB1C2, + 0x876B, 0xB1C3, 0x876C, 0xB1C4, 0x876D, 0xB1C5, 0x876E, 0xB1C6, 0x876F, 0xB1C7, 0x8770, 0xB1C8, 0x8771, 0xB1C9, 0x8772, 0xB1CA, + 0x8773, 0xB1CB, 0x8774, 0xB1CD, 0x8775, 0xB1CE, 0x8776, 0xB1CF, 0x8777, 0xB1D1, 0x8778, 0xB1D2, 0x8779, 0xB1D3, 0x877A, 0xB1D5, + 0x8781, 0xB1D6, 0x8782, 0xB1D7, 0x8783, 0xB1D8, 0x8784, 0xB1D9, 0x8785, 0xB1DA, 0x8786, 0xB1DB, 0x8787, 0xB1DE, 0x8788, 0xB1E0, + 0x8789, 0xB1E1, 0x878A, 0xB1E2, 0x878B, 0xB1E3, 0x878C, 0xB1E4, 0x878D, 0xB1E5, 0x878E, 0xB1E6, 0x878F, 0xB1E7, 0x8790, 0xB1EA, + 0x8791, 0xB1EB, 0x8792, 0xB1ED, 0x8793, 0xB1EE, 0x8794, 0xB1EF, 0x8795, 0xB1F1, 0x8796, 0xB1F2, 0x8797, 0xB1F3, 0x8798, 0xB1F4, + 0x8799, 0xB1F5, 0x879A, 0xB1F6, 0x879B, 0xB1F7, 0x879C, 0xB1F8, 0x879D, 0xB1FA, 0x879E, 0xB1FC, 0x879F, 0xB1FE, 0x87A0, 0xB1FF, + 0x87A1, 0xB200, 0x87A2, 0xB201, 0x87A3, 0xB202, 0x87A4, 0xB203, 0x87A5, 0xB206, 0x87A6, 0xB207, 0x87A7, 0xB209, 0x87A8, 0xB20A, + 0x87A9, 0xB20D, 0x87AA, 0xB20E, 0x87AB, 0xB20F, 0x87AC, 0xB210, 0x87AD, 0xB211, 0x87AE, 0xB212, 0x87AF, 0xB213, 0x87B0, 0xB216, + 0x87B1, 0xB218, 0x87B2, 0xB21A, 0x87B3, 0xB21B, 0x87B4, 0xB21C, 0x87B5, 0xB21D, 0x87B6, 0xB21E, 0x87B7, 0xB21F, 0x87B8, 0xB221, + 0x87B9, 0xB222, 0x87BA, 0xB223, 0x87BB, 0xB224, 0x87BC, 0xB225, 0x87BD, 0xB226, 0x87BE, 0xB227, 0x87BF, 0xB228, 0x87C0, 0xB229, + 0x87C1, 0xB22A, 0x87C2, 0xB22B, 0x87C3, 0xB22C, 0x87C4, 0xB22D, 0x87C5, 0xB22E, 0x87C6, 0xB22F, 0x87C7, 0xB230, 0x87C8, 0xB231, + 0x87C9, 0xB232, 0x87CA, 0xB233, 0x87CB, 0xB235, 0x87CC, 0xB236, 0x87CD, 0xB237, 0x87CE, 0xB238, 0x87CF, 0xB239, 0x87D0, 0xB23A, + 0x87D1, 0xB23B, 0x87D2, 0xB23D, 0x87D3, 0xB23E, 0x87D4, 0xB23F, 0x87D5, 0xB240, 0x87D6, 0xB241, 0x87D7, 0xB242, 0x87D8, 0xB243, + 0x87D9, 0xB244, 0x87DA, 0xB245, 0x87DB, 0xB246, 0x87DC, 0xB247, 0x87DD, 0xB248, 0x87DE, 0xB249, 0x87DF, 0xB24A, 0x87E0, 0xB24B, + 0x87E1, 0xB24C, 0x87E2, 0xB24D, 0x87E3, 0xB24E, 0x87E4, 0xB24F, 0x87E5, 0xB250, 0x87E6, 0xB251, 0x87E7, 0xB252, 0x87E8, 0xB253, + 0x87E9, 0xB254, 0x87EA, 0xB255, 0x87EB, 0xB256, 0x87EC, 0xB257, 0x87ED, 0xB259, 0x87EE, 0xB25A, 0x87EF, 0xB25B, 0x87F0, 0xB25D, + 0x87F1, 0xB25E, 0x87F2, 0xB25F, 0x87F3, 0xB261, 0x87F4, 0xB262, 0x87F5, 0xB263, 0x87F6, 0xB264, 0x87F7, 0xB265, 0x87F8, 0xB266, + 0x87F9, 0xB267, 0x87FA, 0xB26A, 0x87FB, 0xB26B, 0x87FC, 0xB26C, 0x87FD, 0xB26D, 0x87FE, 0xB26E, 0x8841, 0xB26F, 0x8842, 0xB270, + 0x8843, 0xB271, 0x8844, 0xB272, 0x8845, 0xB273, 0x8846, 0xB276, 0x8847, 0xB277, 0x8848, 0xB278, 0x8849, 0xB279, 0x884A, 0xB27A, + 0x884B, 0xB27B, 0x884C, 0xB27D, 0x884D, 0xB27E, 0x884E, 0xB27F, 0x884F, 0xB280, 0x8850, 0xB281, 0x8851, 0xB282, 0x8852, 0xB283, + 0x8853, 0xB286, 0x8854, 0xB287, 0x8855, 0xB288, 0x8856, 0xB28A, 0x8857, 0xB28B, 0x8858, 0xB28C, 0x8859, 0xB28D, 0x885A, 0xB28E, + 0x8861, 0xB28F, 0x8862, 0xB292, 0x8863, 0xB293, 0x8864, 0xB295, 0x8865, 0xB296, 0x8866, 0xB297, 0x8867, 0xB29B, 0x8868, 0xB29C, + 0x8869, 0xB29D, 0x886A, 0xB29E, 0x886B, 0xB29F, 0x886C, 0xB2A2, 0x886D, 0xB2A4, 0x886E, 0xB2A7, 0x886F, 0xB2A8, 0x8870, 0xB2A9, + 0x8871, 0xB2AB, 0x8872, 0xB2AD, 0x8873, 0xB2AE, 0x8874, 0xB2AF, 0x8875, 0xB2B1, 0x8876, 0xB2B2, 0x8877, 0xB2B3, 0x8878, 0xB2B5, + 0x8879, 0xB2B6, 0x887A, 0xB2B7, 0x8881, 0xB2B8, 0x8882, 0xB2B9, 0x8883, 0xB2BA, 0x8884, 0xB2BB, 0x8885, 0xB2BC, 0x8886, 0xB2BD, + 0x8887, 0xB2BE, 0x8888, 0xB2BF, 0x8889, 0xB2C0, 0x888A, 0xB2C1, 0x888B, 0xB2C2, 0x888C, 0xB2C3, 0x888D, 0xB2C4, 0x888E, 0xB2C5, + 0x888F, 0xB2C6, 0x8890, 0xB2C7, 0x8891, 0xB2CA, 0x8892, 0xB2CB, 0x8893, 0xB2CD, 0x8894, 0xB2CE, 0x8895, 0xB2CF, 0x8896, 0xB2D1, + 0x8897, 0xB2D3, 0x8898, 0xB2D4, 0x8899, 0xB2D5, 0x889A, 0xB2D6, 0x889B, 0xB2D7, 0x889C, 0xB2DA, 0x889D, 0xB2DC, 0x889E, 0xB2DE, + 0x889F, 0xB2DF, 0x88A0, 0xB2E0, 0x88A1, 0xB2E1, 0x88A2, 0xB2E3, 0x88A3, 0xB2E7, 0x88A4, 0xB2E9, 0x88A5, 0xB2EA, 0x88A6, 0xB2F0, + 0x88A7, 0xB2F1, 0x88A8, 0xB2F2, 0x88A9, 0xB2F6, 0x88AA, 0xB2FC, 0x88AB, 0xB2FD, 0x88AC, 0xB2FE, 0x88AD, 0xB302, 0x88AE, 0xB303, + 0x88AF, 0xB305, 0x88B0, 0xB306, 0x88B1, 0xB307, 0x88B2, 0xB309, 0x88B3, 0xB30A, 0x88B4, 0xB30B, 0x88B5, 0xB30C, 0x88B6, 0xB30D, + 0x88B7, 0xB30E, 0x88B8, 0xB30F, 0x88B9, 0xB312, 0x88BA, 0xB316, 0x88BB, 0xB317, 0x88BC, 0xB318, 0x88BD, 0xB319, 0x88BE, 0xB31A, + 0x88BF, 0xB31B, 0x88C0, 0xB31D, 0x88C1, 0xB31E, 0x88C2, 0xB31F, 0x88C3, 0xB320, 0x88C4, 0xB321, 0x88C5, 0xB322, 0x88C6, 0xB323, + 0x88C7, 0xB324, 0x88C8, 0xB325, 0x88C9, 0xB326, 0x88CA, 0xB327, 0x88CB, 0xB328, 0x88CC, 0xB329, 0x88CD, 0xB32A, 0x88CE, 0xB32B, + 0x88CF, 0xB32C, 0x88D0, 0xB32D, 0x88D1, 0xB32E, 0x88D2, 0xB32F, 0x88D3, 0xB330, 0x88D4, 0xB331, 0x88D5, 0xB332, 0x88D6, 0xB333, + 0x88D7, 0xB334, 0x88D8, 0xB335, 0x88D9, 0xB336, 0x88DA, 0xB337, 0x88DB, 0xB338, 0x88DC, 0xB339, 0x88DD, 0xB33A, 0x88DE, 0xB33B, + 0x88DF, 0xB33C, 0x88E0, 0xB33D, 0x88E1, 0xB33E, 0x88E2, 0xB33F, 0x88E3, 0xB340, 0x88E4, 0xB341, 0x88E5, 0xB342, 0x88E6, 0xB343, + 0x88E7, 0xB344, 0x88E8, 0xB345, 0x88E9, 0xB346, 0x88EA, 0xB347, 0x88EB, 0xB348, 0x88EC, 0xB349, 0x88ED, 0xB34A, 0x88EE, 0xB34B, + 0x88EF, 0xB34C, 0x88F0, 0xB34D, 0x88F1, 0xB34E, 0x88F2, 0xB34F, 0x88F3, 0xB350, 0x88F4, 0xB351, 0x88F5, 0xB352, 0x88F6, 0xB353, + 0x88F7, 0xB357, 0x88F8, 0xB359, 0x88F9, 0xB35A, 0x88FA, 0xB35D, 0x88FB, 0xB360, 0x88FC, 0xB361, 0x88FD, 0xB362, 0x88FE, 0xB363, + 0x8941, 0xB366, 0x8942, 0xB368, 0x8943, 0xB36A, 0x8944, 0xB36C, 0x8945, 0xB36D, 0x8946, 0xB36F, 0x8947, 0xB372, 0x8948, 0xB373, + 0x8949, 0xB375, 0x894A, 0xB376, 0x894B, 0xB377, 0x894C, 0xB379, 0x894D, 0xB37A, 0x894E, 0xB37B, 0x894F, 0xB37C, 0x8950, 0xB37D, + 0x8951, 0xB37E, 0x8952, 0xB37F, 0x8953, 0xB382, 0x8954, 0xB386, 0x8955, 0xB387, 0x8956, 0xB388, 0x8957, 0xB389, 0x8958, 0xB38A, + 0x8959, 0xB38B, 0x895A, 0xB38D, 0x8961, 0xB38E, 0x8962, 0xB38F, 0x8963, 0xB391, 0x8964, 0xB392, 0x8965, 0xB393, 0x8966, 0xB395, + 0x8967, 0xB396, 0x8968, 0xB397, 0x8969, 0xB398, 0x896A, 0xB399, 0x896B, 0xB39A, 0x896C, 0xB39B, 0x896D, 0xB39C, 0x896E, 0xB39D, + 0x896F, 0xB39E, 0x8970, 0xB39F, 0x8971, 0xB3A2, 0x8972, 0xB3A3, 0x8973, 0xB3A4, 0x8974, 0xB3A5, 0x8975, 0xB3A6, 0x8976, 0xB3A7, + 0x8977, 0xB3A9, 0x8978, 0xB3AA, 0x8979, 0xB3AB, 0x897A, 0xB3AD, 0x8981, 0xB3AE, 0x8982, 0xB3AF, 0x8983, 0xB3B0, 0x8984, 0xB3B1, + 0x8985, 0xB3B2, 0x8986, 0xB3B3, 0x8987, 0xB3B4, 0x8988, 0xB3B5, 0x8989, 0xB3B6, 0x898A, 0xB3B7, 0x898B, 0xB3B8, 0x898C, 0xB3B9, + 0x898D, 0xB3BA, 0x898E, 0xB3BB, 0x898F, 0xB3BC, 0x8990, 0xB3BD, 0x8991, 0xB3BE, 0x8992, 0xB3BF, 0x8993, 0xB3C0, 0x8994, 0xB3C1, + 0x8995, 0xB3C2, 0x8996, 0xB3C3, 0x8997, 0xB3C6, 0x8998, 0xB3C7, 0x8999, 0xB3C9, 0x899A, 0xB3CA, 0x899B, 0xB3CD, 0x899C, 0xB3CF, + 0x899D, 0xB3D1, 0x899E, 0xB3D2, 0x899F, 0xB3D3, 0x89A0, 0xB3D6, 0x89A1, 0xB3D8, 0x89A2, 0xB3DA, 0x89A3, 0xB3DC, 0x89A4, 0xB3DE, + 0x89A5, 0xB3DF, 0x89A6, 0xB3E1, 0x89A7, 0xB3E2, 0x89A8, 0xB3E3, 0x89A9, 0xB3E5, 0x89AA, 0xB3E6, 0x89AB, 0xB3E7, 0x89AC, 0xB3E9, + 0x89AD, 0xB3EA, 0x89AE, 0xB3EB, 0x89AF, 0xB3EC, 0x89B0, 0xB3ED, 0x89B1, 0xB3EE, 0x89B2, 0xB3EF, 0x89B3, 0xB3F0, 0x89B4, 0xB3F1, + 0x89B5, 0xB3F2, 0x89B6, 0xB3F3, 0x89B7, 0xB3F4, 0x89B8, 0xB3F5, 0x89B9, 0xB3F6, 0x89BA, 0xB3F7, 0x89BB, 0xB3F8, 0x89BC, 0xB3F9, + 0x89BD, 0xB3FA, 0x89BE, 0xB3FB, 0x89BF, 0xB3FD, 0x89C0, 0xB3FE, 0x89C1, 0xB3FF, 0x89C2, 0xB400, 0x89C3, 0xB401, 0x89C4, 0xB402, + 0x89C5, 0xB403, 0x89C6, 0xB404, 0x89C7, 0xB405, 0x89C8, 0xB406, 0x89C9, 0xB407, 0x89CA, 0xB408, 0x89CB, 0xB409, 0x89CC, 0xB40A, + 0x89CD, 0xB40B, 0x89CE, 0xB40C, 0x89CF, 0xB40D, 0x89D0, 0xB40E, 0x89D1, 0xB40F, 0x89D2, 0xB411, 0x89D3, 0xB412, 0x89D4, 0xB413, + 0x89D5, 0xB414, 0x89D6, 0xB415, 0x89D7, 0xB416, 0x89D8, 0xB417, 0x89D9, 0xB419, 0x89DA, 0xB41A, 0x89DB, 0xB41B, 0x89DC, 0xB41D, + 0x89DD, 0xB41E, 0x89DE, 0xB41F, 0x89DF, 0xB421, 0x89E0, 0xB422, 0x89E1, 0xB423, 0x89E2, 0xB424, 0x89E3, 0xB425, 0x89E4, 0xB426, + 0x89E5, 0xB427, 0x89E6, 0xB42A, 0x89E7, 0xB42C, 0x89E8, 0xB42D, 0x89E9, 0xB42E, 0x89EA, 0xB42F, 0x89EB, 0xB430, 0x89EC, 0xB431, + 0x89ED, 0xB432, 0x89EE, 0xB433, 0x89EF, 0xB435, 0x89F0, 0xB436, 0x89F1, 0xB437, 0x89F2, 0xB438, 0x89F3, 0xB439, 0x89F4, 0xB43A, + 0x89F5, 0xB43B, 0x89F6, 0xB43C, 0x89F7, 0xB43D, 0x89F8, 0xB43E, 0x89F9, 0xB43F, 0x89FA, 0xB440, 0x89FB, 0xB441, 0x89FC, 0xB442, + 0x89FD, 0xB443, 0x89FE, 0xB444, 0x8A41, 0xB445, 0x8A42, 0xB446, 0x8A43, 0xB447, 0x8A44, 0xB448, 0x8A45, 0xB449, 0x8A46, 0xB44A, + 0x8A47, 0xB44B, 0x8A48, 0xB44C, 0x8A49, 0xB44D, 0x8A4A, 0xB44E, 0x8A4B, 0xB44F, 0x8A4C, 0xB452, 0x8A4D, 0xB453, 0x8A4E, 0xB455, + 0x8A4F, 0xB456, 0x8A50, 0xB457, 0x8A51, 0xB459, 0x8A52, 0xB45A, 0x8A53, 0xB45B, 0x8A54, 0xB45C, 0x8A55, 0xB45D, 0x8A56, 0xB45E, + 0x8A57, 0xB45F, 0x8A58, 0xB462, 0x8A59, 0xB464, 0x8A5A, 0xB466, 0x8A61, 0xB467, 0x8A62, 0xB468, 0x8A63, 0xB469, 0x8A64, 0xB46A, + 0x8A65, 0xB46B, 0x8A66, 0xB46D, 0x8A67, 0xB46E, 0x8A68, 0xB46F, 0x8A69, 0xB470, 0x8A6A, 0xB471, 0x8A6B, 0xB472, 0x8A6C, 0xB473, + 0x8A6D, 0xB474, 0x8A6E, 0xB475, 0x8A6F, 0xB476, 0x8A70, 0xB477, 0x8A71, 0xB478, 0x8A72, 0xB479, 0x8A73, 0xB47A, 0x8A74, 0xB47B, + 0x8A75, 0xB47C, 0x8A76, 0xB47D, 0x8A77, 0xB47E, 0x8A78, 0xB47F, 0x8A79, 0xB481, 0x8A7A, 0xB482, 0x8A81, 0xB483, 0x8A82, 0xB484, + 0x8A83, 0xB485, 0x8A84, 0xB486, 0x8A85, 0xB487, 0x8A86, 0xB489, 0x8A87, 0xB48A, 0x8A88, 0xB48B, 0x8A89, 0xB48C, 0x8A8A, 0xB48D, + 0x8A8B, 0xB48E, 0x8A8C, 0xB48F, 0x8A8D, 0xB490, 0x8A8E, 0xB491, 0x8A8F, 0xB492, 0x8A90, 0xB493, 0x8A91, 0xB494, 0x8A92, 0xB495, + 0x8A93, 0xB496, 0x8A94, 0xB497, 0x8A95, 0xB498, 0x8A96, 0xB499, 0x8A97, 0xB49A, 0x8A98, 0xB49B, 0x8A99, 0xB49C, 0x8A9A, 0xB49E, + 0x8A9B, 0xB49F, 0x8A9C, 0xB4A0, 0x8A9D, 0xB4A1, 0x8A9E, 0xB4A2, 0x8A9F, 0xB4A3, 0x8AA0, 0xB4A5, 0x8AA1, 0xB4A6, 0x8AA2, 0xB4A7, + 0x8AA3, 0xB4A9, 0x8AA4, 0xB4AA, 0x8AA5, 0xB4AB, 0x8AA6, 0xB4AD, 0x8AA7, 0xB4AE, 0x8AA8, 0xB4AF, 0x8AA9, 0xB4B0, 0x8AAA, 0xB4B1, + 0x8AAB, 0xB4B2, 0x8AAC, 0xB4B3, 0x8AAD, 0xB4B4, 0x8AAE, 0xB4B6, 0x8AAF, 0xB4B8, 0x8AB0, 0xB4BA, 0x8AB1, 0xB4BB, 0x8AB2, 0xB4BC, + 0x8AB3, 0xB4BD, 0x8AB4, 0xB4BE, 0x8AB5, 0xB4BF, 0x8AB6, 0xB4C1, 0x8AB7, 0xB4C2, 0x8AB8, 0xB4C3, 0x8AB9, 0xB4C5, 0x8ABA, 0xB4C6, + 0x8ABB, 0xB4C7, 0x8ABC, 0xB4C9, 0x8ABD, 0xB4CA, 0x8ABE, 0xB4CB, 0x8ABF, 0xB4CC, 0x8AC0, 0xB4CD, 0x8AC1, 0xB4CE, 0x8AC2, 0xB4CF, + 0x8AC3, 0xB4D1, 0x8AC4, 0xB4D2, 0x8AC5, 0xB4D3, 0x8AC6, 0xB4D4, 0x8AC7, 0xB4D6, 0x8AC8, 0xB4D7, 0x8AC9, 0xB4D8, 0x8ACA, 0xB4D9, + 0x8ACB, 0xB4DA, 0x8ACC, 0xB4DB, 0x8ACD, 0xB4DE, 0x8ACE, 0xB4DF, 0x8ACF, 0xB4E1, 0x8AD0, 0xB4E2, 0x8AD1, 0xB4E5, 0x8AD2, 0xB4E7, + 0x8AD3, 0xB4E8, 0x8AD4, 0xB4E9, 0x8AD5, 0xB4EA, 0x8AD6, 0xB4EB, 0x8AD7, 0xB4EE, 0x8AD8, 0xB4F0, 0x8AD9, 0xB4F2, 0x8ADA, 0xB4F3, + 0x8ADB, 0xB4F4, 0x8ADC, 0xB4F5, 0x8ADD, 0xB4F6, 0x8ADE, 0xB4F7, 0x8ADF, 0xB4F9, 0x8AE0, 0xB4FA, 0x8AE1, 0xB4FB, 0x8AE2, 0xB4FC, + 0x8AE3, 0xB4FD, 0x8AE4, 0xB4FE, 0x8AE5, 0xB4FF, 0x8AE6, 0xB500, 0x8AE7, 0xB501, 0x8AE8, 0xB502, 0x8AE9, 0xB503, 0x8AEA, 0xB504, + 0x8AEB, 0xB505, 0x8AEC, 0xB506, 0x8AED, 0xB507, 0x8AEE, 0xB508, 0x8AEF, 0xB509, 0x8AF0, 0xB50A, 0x8AF1, 0xB50B, 0x8AF2, 0xB50C, + 0x8AF3, 0xB50D, 0x8AF4, 0xB50E, 0x8AF5, 0xB50F, 0x8AF6, 0xB510, 0x8AF7, 0xB511, 0x8AF8, 0xB512, 0x8AF9, 0xB513, 0x8AFA, 0xB516, + 0x8AFB, 0xB517, 0x8AFC, 0xB519, 0x8AFD, 0xB51A, 0x8AFE, 0xB51D, 0x8B41, 0xB51E, 0x8B42, 0xB51F, 0x8B43, 0xB520, 0x8B44, 0xB521, + 0x8B45, 0xB522, 0x8B46, 0xB523, 0x8B47, 0xB526, 0x8B48, 0xB52B, 0x8B49, 0xB52C, 0x8B4A, 0xB52D, 0x8B4B, 0xB52E, 0x8B4C, 0xB52F, + 0x8B4D, 0xB532, 0x8B4E, 0xB533, 0x8B4F, 0xB535, 0x8B50, 0xB536, 0x8B51, 0xB537, 0x8B52, 0xB539, 0x8B53, 0xB53A, 0x8B54, 0xB53B, + 0x8B55, 0xB53C, 0x8B56, 0xB53D, 0x8B57, 0xB53E, 0x8B58, 0xB53F, 0x8B59, 0xB542, 0x8B5A, 0xB546, 0x8B61, 0xB547, 0x8B62, 0xB548, + 0x8B63, 0xB549, 0x8B64, 0xB54A, 0x8B65, 0xB54E, 0x8B66, 0xB54F, 0x8B67, 0xB551, 0x8B68, 0xB552, 0x8B69, 0xB553, 0x8B6A, 0xB555, + 0x8B6B, 0xB556, 0x8B6C, 0xB557, 0x8B6D, 0xB558, 0x8B6E, 0xB559, 0x8B6F, 0xB55A, 0x8B70, 0xB55B, 0x8B71, 0xB55E, 0x8B72, 0xB562, + 0x8B73, 0xB563, 0x8B74, 0xB564, 0x8B75, 0xB565, 0x8B76, 0xB566, 0x8B77, 0xB567, 0x8B78, 0xB568, 0x8B79, 0xB569, 0x8B7A, 0xB56A, + 0x8B81, 0xB56B, 0x8B82, 0xB56C, 0x8B83, 0xB56D, 0x8B84, 0xB56E, 0x8B85, 0xB56F, 0x8B86, 0xB570, 0x8B87, 0xB571, 0x8B88, 0xB572, + 0x8B89, 0xB573, 0x8B8A, 0xB574, 0x8B8B, 0xB575, 0x8B8C, 0xB576, 0x8B8D, 0xB577, 0x8B8E, 0xB578, 0x8B8F, 0xB579, 0x8B90, 0xB57A, + 0x8B91, 0xB57B, 0x8B92, 0xB57C, 0x8B93, 0xB57D, 0x8B94, 0xB57E, 0x8B95, 0xB57F, 0x8B96, 0xB580, 0x8B97, 0xB581, 0x8B98, 0xB582, + 0x8B99, 0xB583, 0x8B9A, 0xB584, 0x8B9B, 0xB585, 0x8B9C, 0xB586, 0x8B9D, 0xB587, 0x8B9E, 0xB588, 0x8B9F, 0xB589, 0x8BA0, 0xB58A, + 0x8BA1, 0xB58B, 0x8BA2, 0xB58C, 0x8BA3, 0xB58D, 0x8BA4, 0xB58E, 0x8BA5, 0xB58F, 0x8BA6, 0xB590, 0x8BA7, 0xB591, 0x8BA8, 0xB592, + 0x8BA9, 0xB593, 0x8BAA, 0xB594, 0x8BAB, 0xB595, 0x8BAC, 0xB596, 0x8BAD, 0xB597, 0x8BAE, 0xB598, 0x8BAF, 0xB599, 0x8BB0, 0xB59A, + 0x8BB1, 0xB59B, 0x8BB2, 0xB59C, 0x8BB3, 0xB59D, 0x8BB4, 0xB59E, 0x8BB5, 0xB59F, 0x8BB6, 0xB5A2, 0x8BB7, 0xB5A3, 0x8BB8, 0xB5A5, + 0x8BB9, 0xB5A6, 0x8BBA, 0xB5A7, 0x8BBB, 0xB5A9, 0x8BBC, 0xB5AC, 0x8BBD, 0xB5AD, 0x8BBE, 0xB5AE, 0x8BBF, 0xB5AF, 0x8BC0, 0xB5B2, + 0x8BC1, 0xB5B6, 0x8BC2, 0xB5B7, 0x8BC3, 0xB5B8, 0x8BC4, 0xB5B9, 0x8BC5, 0xB5BA, 0x8BC6, 0xB5BE, 0x8BC7, 0xB5BF, 0x8BC8, 0xB5C1, + 0x8BC9, 0xB5C2, 0x8BCA, 0xB5C3, 0x8BCB, 0xB5C5, 0x8BCC, 0xB5C6, 0x8BCD, 0xB5C7, 0x8BCE, 0xB5C8, 0x8BCF, 0xB5C9, 0x8BD0, 0xB5CA, + 0x8BD1, 0xB5CB, 0x8BD2, 0xB5CE, 0x8BD3, 0xB5D2, 0x8BD4, 0xB5D3, 0x8BD5, 0xB5D4, 0x8BD6, 0xB5D5, 0x8BD7, 0xB5D6, 0x8BD8, 0xB5D7, + 0x8BD9, 0xB5D9, 0x8BDA, 0xB5DA, 0x8BDB, 0xB5DB, 0x8BDC, 0xB5DC, 0x8BDD, 0xB5DD, 0x8BDE, 0xB5DE, 0x8BDF, 0xB5DF, 0x8BE0, 0xB5E0, + 0x8BE1, 0xB5E1, 0x8BE2, 0xB5E2, 0x8BE3, 0xB5E3, 0x8BE4, 0xB5E4, 0x8BE5, 0xB5E5, 0x8BE6, 0xB5E6, 0x8BE7, 0xB5E7, 0x8BE8, 0xB5E8, + 0x8BE9, 0xB5E9, 0x8BEA, 0xB5EA, 0x8BEB, 0xB5EB, 0x8BEC, 0xB5ED, 0x8BED, 0xB5EE, 0x8BEE, 0xB5EF, 0x8BEF, 0xB5F0, 0x8BF0, 0xB5F1, + 0x8BF1, 0xB5F2, 0x8BF2, 0xB5F3, 0x8BF3, 0xB5F4, 0x8BF4, 0xB5F5, 0x8BF5, 0xB5F6, 0x8BF6, 0xB5F7, 0x8BF7, 0xB5F8, 0x8BF8, 0xB5F9, + 0x8BF9, 0xB5FA, 0x8BFA, 0xB5FB, 0x8BFB, 0xB5FC, 0x8BFC, 0xB5FD, 0x8BFD, 0xB5FE, 0x8BFE, 0xB5FF, 0x8C41, 0xB600, 0x8C42, 0xB601, + 0x8C43, 0xB602, 0x8C44, 0xB603, 0x8C45, 0xB604, 0x8C46, 0xB605, 0x8C47, 0xB606, 0x8C48, 0xB607, 0x8C49, 0xB608, 0x8C4A, 0xB609, + 0x8C4B, 0xB60A, 0x8C4C, 0xB60B, 0x8C4D, 0xB60C, 0x8C4E, 0xB60D, 0x8C4F, 0xB60E, 0x8C50, 0xB60F, 0x8C51, 0xB612, 0x8C52, 0xB613, + 0x8C53, 0xB615, 0x8C54, 0xB616, 0x8C55, 0xB617, 0x8C56, 0xB619, 0x8C57, 0xB61A, 0x8C58, 0xB61B, 0x8C59, 0xB61C, 0x8C5A, 0xB61D, + 0x8C61, 0xB61E, 0x8C62, 0xB61F, 0x8C63, 0xB620, 0x8C64, 0xB621, 0x8C65, 0xB622, 0x8C66, 0xB623, 0x8C67, 0xB624, 0x8C68, 0xB626, + 0x8C69, 0xB627, 0x8C6A, 0xB628, 0x8C6B, 0xB629, 0x8C6C, 0xB62A, 0x8C6D, 0xB62B, 0x8C6E, 0xB62D, 0x8C6F, 0xB62E, 0x8C70, 0xB62F, + 0x8C71, 0xB630, 0x8C72, 0xB631, 0x8C73, 0xB632, 0x8C74, 0xB633, 0x8C75, 0xB635, 0x8C76, 0xB636, 0x8C77, 0xB637, 0x8C78, 0xB638, + 0x8C79, 0xB639, 0x8C7A, 0xB63A, 0x8C81, 0xB63B, 0x8C82, 0xB63C, 0x8C83, 0xB63D, 0x8C84, 0xB63E, 0x8C85, 0xB63F, 0x8C86, 0xB640, + 0x8C87, 0xB641, 0x8C88, 0xB642, 0x8C89, 0xB643, 0x8C8A, 0xB644, 0x8C8B, 0xB645, 0x8C8C, 0xB646, 0x8C8D, 0xB647, 0x8C8E, 0xB649, + 0x8C8F, 0xB64A, 0x8C90, 0xB64B, 0x8C91, 0xB64C, 0x8C92, 0xB64D, 0x8C93, 0xB64E, 0x8C94, 0xB64F, 0x8C95, 0xB650, 0x8C96, 0xB651, + 0x8C97, 0xB652, 0x8C98, 0xB653, 0x8C99, 0xB654, 0x8C9A, 0xB655, 0x8C9B, 0xB656, 0x8C9C, 0xB657, 0x8C9D, 0xB658, 0x8C9E, 0xB659, + 0x8C9F, 0xB65A, 0x8CA0, 0xB65B, 0x8CA1, 0xB65C, 0x8CA2, 0xB65D, 0x8CA3, 0xB65E, 0x8CA4, 0xB65F, 0x8CA5, 0xB660, 0x8CA6, 0xB661, + 0x8CA7, 0xB662, 0x8CA8, 0xB663, 0x8CA9, 0xB665, 0x8CAA, 0xB666, 0x8CAB, 0xB667, 0x8CAC, 0xB669, 0x8CAD, 0xB66A, 0x8CAE, 0xB66B, + 0x8CAF, 0xB66C, 0x8CB0, 0xB66D, 0x8CB1, 0xB66E, 0x8CB2, 0xB66F, 0x8CB3, 0xB670, 0x8CB4, 0xB671, 0x8CB5, 0xB672, 0x8CB6, 0xB673, + 0x8CB7, 0xB674, 0x8CB8, 0xB675, 0x8CB9, 0xB676, 0x8CBA, 0xB677, 0x8CBB, 0xB678, 0x8CBC, 0xB679, 0x8CBD, 0xB67A, 0x8CBE, 0xB67B, + 0x8CBF, 0xB67C, 0x8CC0, 0xB67D, 0x8CC1, 0xB67E, 0x8CC2, 0xB67F, 0x8CC3, 0xB680, 0x8CC4, 0xB681, 0x8CC5, 0xB682, 0x8CC6, 0xB683, + 0x8CC7, 0xB684, 0x8CC8, 0xB685, 0x8CC9, 0xB686, 0x8CCA, 0xB687, 0x8CCB, 0xB688, 0x8CCC, 0xB689, 0x8CCD, 0xB68A, 0x8CCE, 0xB68B, + 0x8CCF, 0xB68C, 0x8CD0, 0xB68D, 0x8CD1, 0xB68E, 0x8CD2, 0xB68F, 0x8CD3, 0xB690, 0x8CD4, 0xB691, 0x8CD5, 0xB692, 0x8CD6, 0xB693, + 0x8CD7, 0xB694, 0x8CD8, 0xB695, 0x8CD9, 0xB696, 0x8CDA, 0xB697, 0x8CDB, 0xB698, 0x8CDC, 0xB699, 0x8CDD, 0xB69A, 0x8CDE, 0xB69B, + 0x8CDF, 0xB69E, 0x8CE0, 0xB69F, 0x8CE1, 0xB6A1, 0x8CE2, 0xB6A2, 0x8CE3, 0xB6A3, 0x8CE4, 0xB6A5, 0x8CE5, 0xB6A6, 0x8CE6, 0xB6A7, + 0x8CE7, 0xB6A8, 0x8CE8, 0xB6A9, 0x8CE9, 0xB6AA, 0x8CEA, 0xB6AD, 0x8CEB, 0xB6AE, 0x8CEC, 0xB6AF, 0x8CED, 0xB6B0, 0x8CEE, 0xB6B2, + 0x8CEF, 0xB6B3, 0x8CF0, 0xB6B4, 0x8CF1, 0xB6B5, 0x8CF2, 0xB6B6, 0x8CF3, 0xB6B7, 0x8CF4, 0xB6B8, 0x8CF5, 0xB6B9, 0x8CF6, 0xB6BA, + 0x8CF7, 0xB6BB, 0x8CF8, 0xB6BC, 0x8CF9, 0xB6BD, 0x8CFA, 0xB6BE, 0x8CFB, 0xB6BF, 0x8CFC, 0xB6C0, 0x8CFD, 0xB6C1, 0x8CFE, 0xB6C2, + 0x8D41, 0xB6C3, 0x8D42, 0xB6C4, 0x8D43, 0xB6C5, 0x8D44, 0xB6C6, 0x8D45, 0xB6C7, 0x8D46, 0xB6C8, 0x8D47, 0xB6C9, 0x8D48, 0xB6CA, + 0x8D49, 0xB6CB, 0x8D4A, 0xB6CC, 0x8D4B, 0xB6CD, 0x8D4C, 0xB6CE, 0x8D4D, 0xB6CF, 0x8D4E, 0xB6D0, 0x8D4F, 0xB6D1, 0x8D50, 0xB6D2, + 0x8D51, 0xB6D3, 0x8D52, 0xB6D5, 0x8D53, 0xB6D6, 0x8D54, 0xB6D7, 0x8D55, 0xB6D8, 0x8D56, 0xB6D9, 0x8D57, 0xB6DA, 0x8D58, 0xB6DB, + 0x8D59, 0xB6DC, 0x8D5A, 0xB6DD, 0x8D61, 0xB6DE, 0x8D62, 0xB6DF, 0x8D63, 0xB6E0, 0x8D64, 0xB6E1, 0x8D65, 0xB6E2, 0x8D66, 0xB6E3, + 0x8D67, 0xB6E4, 0x8D68, 0xB6E5, 0x8D69, 0xB6E6, 0x8D6A, 0xB6E7, 0x8D6B, 0xB6E8, 0x8D6C, 0xB6E9, 0x8D6D, 0xB6EA, 0x8D6E, 0xB6EB, + 0x8D6F, 0xB6EC, 0x8D70, 0xB6ED, 0x8D71, 0xB6EE, 0x8D72, 0xB6EF, 0x8D73, 0xB6F1, 0x8D74, 0xB6F2, 0x8D75, 0xB6F3, 0x8D76, 0xB6F5, + 0x8D77, 0xB6F6, 0x8D78, 0xB6F7, 0x8D79, 0xB6F9, 0x8D7A, 0xB6FA, 0x8D81, 0xB6FB, 0x8D82, 0xB6FC, 0x8D83, 0xB6FD, 0x8D84, 0xB6FE, + 0x8D85, 0xB6FF, 0x8D86, 0xB702, 0x8D87, 0xB703, 0x8D88, 0xB704, 0x8D89, 0xB706, 0x8D8A, 0xB707, 0x8D8B, 0xB708, 0x8D8C, 0xB709, + 0x8D8D, 0xB70A, 0x8D8E, 0xB70B, 0x8D8F, 0xB70C, 0x8D90, 0xB70D, 0x8D91, 0xB70E, 0x8D92, 0xB70F, 0x8D93, 0xB710, 0x8D94, 0xB711, + 0x8D95, 0xB712, 0x8D96, 0xB713, 0x8D97, 0xB714, 0x8D98, 0xB715, 0x8D99, 0xB716, 0x8D9A, 0xB717, 0x8D9B, 0xB718, 0x8D9C, 0xB719, + 0x8D9D, 0xB71A, 0x8D9E, 0xB71B, 0x8D9F, 0xB71C, 0x8DA0, 0xB71D, 0x8DA1, 0xB71E, 0x8DA2, 0xB71F, 0x8DA3, 0xB720, 0x8DA4, 0xB721, + 0x8DA5, 0xB722, 0x8DA6, 0xB723, 0x8DA7, 0xB724, 0x8DA8, 0xB725, 0x8DA9, 0xB726, 0x8DAA, 0xB727, 0x8DAB, 0xB72A, 0x8DAC, 0xB72B, + 0x8DAD, 0xB72D, 0x8DAE, 0xB72E, 0x8DAF, 0xB731, 0x8DB0, 0xB732, 0x8DB1, 0xB733, 0x8DB2, 0xB734, 0x8DB3, 0xB735, 0x8DB4, 0xB736, + 0x8DB5, 0xB737, 0x8DB6, 0xB73A, 0x8DB7, 0xB73C, 0x8DB8, 0xB73D, 0x8DB9, 0xB73E, 0x8DBA, 0xB73F, 0x8DBB, 0xB740, 0x8DBC, 0xB741, + 0x8DBD, 0xB742, 0x8DBE, 0xB743, 0x8DBF, 0xB745, 0x8DC0, 0xB746, 0x8DC1, 0xB747, 0x8DC2, 0xB749, 0x8DC3, 0xB74A, 0x8DC4, 0xB74B, + 0x8DC5, 0xB74D, 0x8DC6, 0xB74E, 0x8DC7, 0xB74F, 0x8DC8, 0xB750, 0x8DC9, 0xB751, 0x8DCA, 0xB752, 0x8DCB, 0xB753, 0x8DCC, 0xB756, + 0x8DCD, 0xB757, 0x8DCE, 0xB758, 0x8DCF, 0xB759, 0x8DD0, 0xB75A, 0x8DD1, 0xB75B, 0x8DD2, 0xB75C, 0x8DD3, 0xB75D, 0x8DD4, 0xB75E, + 0x8DD5, 0xB75F, 0x8DD6, 0xB761, 0x8DD7, 0xB762, 0x8DD8, 0xB763, 0x8DD9, 0xB765, 0x8DDA, 0xB766, 0x8DDB, 0xB767, 0x8DDC, 0xB769, + 0x8DDD, 0xB76A, 0x8DDE, 0xB76B, 0x8DDF, 0xB76C, 0x8DE0, 0xB76D, 0x8DE1, 0xB76E, 0x8DE2, 0xB76F, 0x8DE3, 0xB772, 0x8DE4, 0xB774, + 0x8DE5, 0xB776, 0x8DE6, 0xB777, 0x8DE7, 0xB778, 0x8DE8, 0xB779, 0x8DE9, 0xB77A, 0x8DEA, 0xB77B, 0x8DEB, 0xB77E, 0x8DEC, 0xB77F, + 0x8DED, 0xB781, 0x8DEE, 0xB782, 0x8DEF, 0xB783, 0x8DF0, 0xB785, 0x8DF1, 0xB786, 0x8DF2, 0xB787, 0x8DF3, 0xB788, 0x8DF4, 0xB789, + 0x8DF5, 0xB78A, 0x8DF6, 0xB78B, 0x8DF7, 0xB78E, 0x8DF8, 0xB793, 0x8DF9, 0xB794, 0x8DFA, 0xB795, 0x8DFB, 0xB79A, 0x8DFC, 0xB79B, + 0x8DFD, 0xB79D, 0x8DFE, 0xB79E, 0x8E41, 0xB79F, 0x8E42, 0xB7A1, 0x8E43, 0xB7A2, 0x8E44, 0xB7A3, 0x8E45, 0xB7A4, 0x8E46, 0xB7A5, + 0x8E47, 0xB7A6, 0x8E48, 0xB7A7, 0x8E49, 0xB7AA, 0x8E4A, 0xB7AE, 0x8E4B, 0xB7AF, 0x8E4C, 0xB7B0, 0x8E4D, 0xB7B1, 0x8E4E, 0xB7B2, + 0x8E4F, 0xB7B3, 0x8E50, 0xB7B6, 0x8E51, 0xB7B7, 0x8E52, 0xB7B9, 0x8E53, 0xB7BA, 0x8E54, 0xB7BB, 0x8E55, 0xB7BC, 0x8E56, 0xB7BD, + 0x8E57, 0xB7BE, 0x8E58, 0xB7BF, 0x8E59, 0xB7C0, 0x8E5A, 0xB7C1, 0x8E61, 0xB7C2, 0x8E62, 0xB7C3, 0x8E63, 0xB7C4, 0x8E64, 0xB7C5, + 0x8E65, 0xB7C6, 0x8E66, 0xB7C8, 0x8E67, 0xB7CA, 0x8E68, 0xB7CB, 0x8E69, 0xB7CC, 0x8E6A, 0xB7CD, 0x8E6B, 0xB7CE, 0x8E6C, 0xB7CF, + 0x8E6D, 0xB7D0, 0x8E6E, 0xB7D1, 0x8E6F, 0xB7D2, 0x8E70, 0xB7D3, 0x8E71, 0xB7D4, 0x8E72, 0xB7D5, 0x8E73, 0xB7D6, 0x8E74, 0xB7D7, + 0x8E75, 0xB7D8, 0x8E76, 0xB7D9, 0x8E77, 0xB7DA, 0x8E78, 0xB7DB, 0x8E79, 0xB7DC, 0x8E7A, 0xB7DD, 0x8E81, 0xB7DE, 0x8E82, 0xB7DF, + 0x8E83, 0xB7E0, 0x8E84, 0xB7E1, 0x8E85, 0xB7E2, 0x8E86, 0xB7E3, 0x8E87, 0xB7E4, 0x8E88, 0xB7E5, 0x8E89, 0xB7E6, 0x8E8A, 0xB7E7, + 0x8E8B, 0xB7E8, 0x8E8C, 0xB7E9, 0x8E8D, 0xB7EA, 0x8E8E, 0xB7EB, 0x8E8F, 0xB7EE, 0x8E90, 0xB7EF, 0x8E91, 0xB7F1, 0x8E92, 0xB7F2, + 0x8E93, 0xB7F3, 0x8E94, 0xB7F5, 0x8E95, 0xB7F6, 0x8E96, 0xB7F7, 0x8E97, 0xB7F8, 0x8E98, 0xB7F9, 0x8E99, 0xB7FA, 0x8E9A, 0xB7FB, + 0x8E9B, 0xB7FE, 0x8E9C, 0xB802, 0x8E9D, 0xB803, 0x8E9E, 0xB804, 0x8E9F, 0xB805, 0x8EA0, 0xB806, 0x8EA1, 0xB80A, 0x8EA2, 0xB80B, + 0x8EA3, 0xB80D, 0x8EA4, 0xB80E, 0x8EA5, 0xB80F, 0x8EA6, 0xB811, 0x8EA7, 0xB812, 0x8EA8, 0xB813, 0x8EA9, 0xB814, 0x8EAA, 0xB815, + 0x8EAB, 0xB816, 0x8EAC, 0xB817, 0x8EAD, 0xB81A, 0x8EAE, 0xB81C, 0x8EAF, 0xB81E, 0x8EB0, 0xB81F, 0x8EB1, 0xB820, 0x8EB2, 0xB821, + 0x8EB3, 0xB822, 0x8EB4, 0xB823, 0x8EB5, 0xB826, 0x8EB6, 0xB827, 0x8EB7, 0xB829, 0x8EB8, 0xB82A, 0x8EB9, 0xB82B, 0x8EBA, 0xB82D, + 0x8EBB, 0xB82E, 0x8EBC, 0xB82F, 0x8EBD, 0xB830, 0x8EBE, 0xB831, 0x8EBF, 0xB832, 0x8EC0, 0xB833, 0x8EC1, 0xB836, 0x8EC2, 0xB83A, + 0x8EC3, 0xB83B, 0x8EC4, 0xB83C, 0x8EC5, 0xB83D, 0x8EC6, 0xB83E, 0x8EC7, 0xB83F, 0x8EC8, 0xB841, 0x8EC9, 0xB842, 0x8ECA, 0xB843, + 0x8ECB, 0xB845, 0x8ECC, 0xB846, 0x8ECD, 0xB847, 0x8ECE, 0xB848, 0x8ECF, 0xB849, 0x8ED0, 0xB84A, 0x8ED1, 0xB84B, 0x8ED2, 0xB84C, + 0x8ED3, 0xB84D, 0x8ED4, 0xB84E, 0x8ED5, 0xB84F, 0x8ED6, 0xB850, 0x8ED7, 0xB852, 0x8ED8, 0xB854, 0x8ED9, 0xB855, 0x8EDA, 0xB856, + 0x8EDB, 0xB857, 0x8EDC, 0xB858, 0x8EDD, 0xB859, 0x8EDE, 0xB85A, 0x8EDF, 0xB85B, 0x8EE0, 0xB85E, 0x8EE1, 0xB85F, 0x8EE2, 0xB861, + 0x8EE3, 0xB862, 0x8EE4, 0xB863, 0x8EE5, 0xB865, 0x8EE6, 0xB866, 0x8EE7, 0xB867, 0x8EE8, 0xB868, 0x8EE9, 0xB869, 0x8EEA, 0xB86A, + 0x8EEB, 0xB86B, 0x8EEC, 0xB86E, 0x8EED, 0xB870, 0x8EEE, 0xB872, 0x8EEF, 0xB873, 0x8EF0, 0xB874, 0x8EF1, 0xB875, 0x8EF2, 0xB876, + 0x8EF3, 0xB877, 0x8EF4, 0xB879, 0x8EF5, 0xB87A, 0x8EF6, 0xB87B, 0x8EF7, 0xB87D, 0x8EF8, 0xB87E, 0x8EF9, 0xB87F, 0x8EFA, 0xB880, + 0x8EFB, 0xB881, 0x8EFC, 0xB882, 0x8EFD, 0xB883, 0x8EFE, 0xB884, 0x8F41, 0xB885, 0x8F42, 0xB886, 0x8F43, 0xB887, 0x8F44, 0xB888, + 0x8F45, 0xB889, 0x8F46, 0xB88A, 0x8F47, 0xB88B, 0x8F48, 0xB88C, 0x8F49, 0xB88E, 0x8F4A, 0xB88F, 0x8F4B, 0xB890, 0x8F4C, 0xB891, + 0x8F4D, 0xB892, 0x8F4E, 0xB893, 0x8F4F, 0xB894, 0x8F50, 0xB895, 0x8F51, 0xB896, 0x8F52, 0xB897, 0x8F53, 0xB898, 0x8F54, 0xB899, + 0x8F55, 0xB89A, 0x8F56, 0xB89B, 0x8F57, 0xB89C, 0x8F58, 0xB89D, 0x8F59, 0xB89E, 0x8F5A, 0xB89F, 0x8F61, 0xB8A0, 0x8F62, 0xB8A1, + 0x8F63, 0xB8A2, 0x8F64, 0xB8A3, 0x8F65, 0xB8A4, 0x8F66, 0xB8A5, 0x8F67, 0xB8A6, 0x8F68, 0xB8A7, 0x8F69, 0xB8A9, 0x8F6A, 0xB8AA, + 0x8F6B, 0xB8AB, 0x8F6C, 0xB8AC, 0x8F6D, 0xB8AD, 0x8F6E, 0xB8AE, 0x8F6F, 0xB8AF, 0x8F70, 0xB8B1, 0x8F71, 0xB8B2, 0x8F72, 0xB8B3, + 0x8F73, 0xB8B5, 0x8F74, 0xB8B6, 0x8F75, 0xB8B7, 0x8F76, 0xB8B9, 0x8F77, 0xB8BA, 0x8F78, 0xB8BB, 0x8F79, 0xB8BC, 0x8F7A, 0xB8BD, + 0x8F81, 0xB8BE, 0x8F82, 0xB8BF, 0x8F83, 0xB8C2, 0x8F84, 0xB8C4, 0x8F85, 0xB8C6, 0x8F86, 0xB8C7, 0x8F87, 0xB8C8, 0x8F88, 0xB8C9, + 0x8F89, 0xB8CA, 0x8F8A, 0xB8CB, 0x8F8B, 0xB8CD, 0x8F8C, 0xB8CE, 0x8F8D, 0xB8CF, 0x8F8E, 0xB8D1, 0x8F8F, 0xB8D2, 0x8F90, 0xB8D3, + 0x8F91, 0xB8D5, 0x8F92, 0xB8D6, 0x8F93, 0xB8D7, 0x8F94, 0xB8D8, 0x8F95, 0xB8D9, 0x8F96, 0xB8DA, 0x8F97, 0xB8DB, 0x8F98, 0xB8DC, + 0x8F99, 0xB8DE, 0x8F9A, 0xB8E0, 0x8F9B, 0xB8E2, 0x8F9C, 0xB8E3, 0x8F9D, 0xB8E4, 0x8F9E, 0xB8E5, 0x8F9F, 0xB8E6, 0x8FA0, 0xB8E7, + 0x8FA1, 0xB8EA, 0x8FA2, 0xB8EB, 0x8FA3, 0xB8ED, 0x8FA4, 0xB8EE, 0x8FA5, 0xB8EF, 0x8FA6, 0xB8F1, 0x8FA7, 0xB8F2, 0x8FA8, 0xB8F3, + 0x8FA9, 0xB8F4, 0x8FAA, 0xB8F5, 0x8FAB, 0xB8F6, 0x8FAC, 0xB8F7, 0x8FAD, 0xB8FA, 0x8FAE, 0xB8FC, 0x8FAF, 0xB8FE, 0x8FB0, 0xB8FF, + 0x8FB1, 0xB900, 0x8FB2, 0xB901, 0x8FB3, 0xB902, 0x8FB4, 0xB903, 0x8FB5, 0xB905, 0x8FB6, 0xB906, 0x8FB7, 0xB907, 0x8FB8, 0xB908, + 0x8FB9, 0xB909, 0x8FBA, 0xB90A, 0x8FBB, 0xB90B, 0x8FBC, 0xB90C, 0x8FBD, 0xB90D, 0x8FBE, 0xB90E, 0x8FBF, 0xB90F, 0x8FC0, 0xB910, + 0x8FC1, 0xB911, 0x8FC2, 0xB912, 0x8FC3, 0xB913, 0x8FC4, 0xB914, 0x8FC5, 0xB915, 0x8FC6, 0xB916, 0x8FC7, 0xB917, 0x8FC8, 0xB919, + 0x8FC9, 0xB91A, 0x8FCA, 0xB91B, 0x8FCB, 0xB91C, 0x8FCC, 0xB91D, 0x8FCD, 0xB91E, 0x8FCE, 0xB91F, 0x8FCF, 0xB921, 0x8FD0, 0xB922, + 0x8FD1, 0xB923, 0x8FD2, 0xB924, 0x8FD3, 0xB925, 0x8FD4, 0xB926, 0x8FD5, 0xB927, 0x8FD6, 0xB928, 0x8FD7, 0xB929, 0x8FD8, 0xB92A, + 0x8FD9, 0xB92B, 0x8FDA, 0xB92C, 0x8FDB, 0xB92D, 0x8FDC, 0xB92E, 0x8FDD, 0xB92F, 0x8FDE, 0xB930, 0x8FDF, 0xB931, 0x8FE0, 0xB932, + 0x8FE1, 0xB933, 0x8FE2, 0xB934, 0x8FE3, 0xB935, 0x8FE4, 0xB936, 0x8FE5, 0xB937, 0x8FE6, 0xB938, 0x8FE7, 0xB939, 0x8FE8, 0xB93A, + 0x8FE9, 0xB93B, 0x8FEA, 0xB93E, 0x8FEB, 0xB93F, 0x8FEC, 0xB941, 0x8FED, 0xB942, 0x8FEE, 0xB943, 0x8FEF, 0xB945, 0x8FF0, 0xB946, + 0x8FF1, 0xB947, 0x8FF2, 0xB948, 0x8FF3, 0xB949, 0x8FF4, 0xB94A, 0x8FF5, 0xB94B, 0x8FF6, 0xB94D, 0x8FF7, 0xB94E, 0x8FF8, 0xB950, + 0x8FF9, 0xB952, 0x8FFA, 0xB953, 0x8FFB, 0xB954, 0x8FFC, 0xB955, 0x8FFD, 0xB956, 0x8FFE, 0xB957, 0x9041, 0xB95A, 0x9042, 0xB95B, + 0x9043, 0xB95D, 0x9044, 0xB95E, 0x9045, 0xB95F, 0x9046, 0xB961, 0x9047, 0xB962, 0x9048, 0xB963, 0x9049, 0xB964, 0x904A, 0xB965, + 0x904B, 0xB966, 0x904C, 0xB967, 0x904D, 0xB96A, 0x904E, 0xB96C, 0x904F, 0xB96E, 0x9050, 0xB96F, 0x9051, 0xB970, 0x9052, 0xB971, + 0x9053, 0xB972, 0x9054, 0xB973, 0x9055, 0xB976, 0x9056, 0xB977, 0x9057, 0xB979, 0x9058, 0xB97A, 0x9059, 0xB97B, 0x905A, 0xB97D, + 0x9061, 0xB97E, 0x9062, 0xB97F, 0x9063, 0xB980, 0x9064, 0xB981, 0x9065, 0xB982, 0x9066, 0xB983, 0x9067, 0xB986, 0x9068, 0xB988, + 0x9069, 0xB98B, 0x906A, 0xB98C, 0x906B, 0xB98F, 0x906C, 0xB990, 0x906D, 0xB991, 0x906E, 0xB992, 0x906F, 0xB993, 0x9070, 0xB994, + 0x9071, 0xB995, 0x9072, 0xB996, 0x9073, 0xB997, 0x9074, 0xB998, 0x9075, 0xB999, 0x9076, 0xB99A, 0x9077, 0xB99B, 0x9078, 0xB99C, + 0x9079, 0xB99D, 0x907A, 0xB99E, 0x9081, 0xB99F, 0x9082, 0xB9A0, 0x9083, 0xB9A1, 0x9084, 0xB9A2, 0x9085, 0xB9A3, 0x9086, 0xB9A4, + 0x9087, 0xB9A5, 0x9088, 0xB9A6, 0x9089, 0xB9A7, 0x908A, 0xB9A8, 0x908B, 0xB9A9, 0x908C, 0xB9AA, 0x908D, 0xB9AB, 0x908E, 0xB9AE, + 0x908F, 0xB9AF, 0x9090, 0xB9B1, 0x9091, 0xB9B2, 0x9092, 0xB9B3, 0x9093, 0xB9B5, 0x9094, 0xB9B6, 0x9095, 0xB9B7, 0x9096, 0xB9B8, + 0x9097, 0xB9B9, 0x9098, 0xB9BA, 0x9099, 0xB9BB, 0x909A, 0xB9BE, 0x909B, 0xB9C0, 0x909C, 0xB9C2, 0x909D, 0xB9C3, 0x909E, 0xB9C4, + 0x909F, 0xB9C5, 0x90A0, 0xB9C6, 0x90A1, 0xB9C7, 0x90A2, 0xB9CA, 0x90A3, 0xB9CB, 0x90A4, 0xB9CD, 0x90A5, 0xB9D3, 0x90A6, 0xB9D4, + 0x90A7, 0xB9D5, 0x90A8, 0xB9D6, 0x90A9, 0xB9D7, 0x90AA, 0xB9DA, 0x90AB, 0xB9DC, 0x90AC, 0xB9DF, 0x90AD, 0xB9E0, 0x90AE, 0xB9E2, + 0x90AF, 0xB9E6, 0x90B0, 0xB9E7, 0x90B1, 0xB9E9, 0x90B2, 0xB9EA, 0x90B3, 0xB9EB, 0x90B4, 0xB9ED, 0x90B5, 0xB9EE, 0x90B6, 0xB9EF, + 0x90B7, 0xB9F0, 0x90B8, 0xB9F1, 0x90B9, 0xB9F2, 0x90BA, 0xB9F3, 0x90BB, 0xB9F6, 0x90BC, 0xB9FB, 0x90BD, 0xB9FC, 0x90BE, 0xB9FD, + 0x90BF, 0xB9FE, 0x90C0, 0xB9FF, 0x90C1, 0xBA02, 0x90C2, 0xBA03, 0x90C3, 0xBA04, 0x90C4, 0xBA05, 0x90C5, 0xBA06, 0x90C6, 0xBA07, + 0x90C7, 0xBA09, 0x90C8, 0xBA0A, 0x90C9, 0xBA0B, 0x90CA, 0xBA0C, 0x90CB, 0xBA0D, 0x90CC, 0xBA0E, 0x90CD, 0xBA0F, 0x90CE, 0xBA10, + 0x90CF, 0xBA11, 0x90D0, 0xBA12, 0x90D1, 0xBA13, 0x90D2, 0xBA14, 0x90D3, 0xBA16, 0x90D4, 0xBA17, 0x90D5, 0xBA18, 0x90D6, 0xBA19, + 0x90D7, 0xBA1A, 0x90D8, 0xBA1B, 0x90D9, 0xBA1C, 0x90DA, 0xBA1D, 0x90DB, 0xBA1E, 0x90DC, 0xBA1F, 0x90DD, 0xBA20, 0x90DE, 0xBA21, + 0x90DF, 0xBA22, 0x90E0, 0xBA23, 0x90E1, 0xBA24, 0x90E2, 0xBA25, 0x90E3, 0xBA26, 0x90E4, 0xBA27, 0x90E5, 0xBA28, 0x90E6, 0xBA29, + 0x90E7, 0xBA2A, 0x90E8, 0xBA2B, 0x90E9, 0xBA2C, 0x90EA, 0xBA2D, 0x90EB, 0xBA2E, 0x90EC, 0xBA2F, 0x90ED, 0xBA30, 0x90EE, 0xBA31, + 0x90EF, 0xBA32, 0x90F0, 0xBA33, 0x90F1, 0xBA34, 0x90F2, 0xBA35, 0x90F3, 0xBA36, 0x90F4, 0xBA37, 0x90F5, 0xBA3A, 0x90F6, 0xBA3B, + 0x90F7, 0xBA3D, 0x90F8, 0xBA3E, 0x90F9, 0xBA3F, 0x90FA, 0xBA41, 0x90FB, 0xBA43, 0x90FC, 0xBA44, 0x90FD, 0xBA45, 0x90FE, 0xBA46, + 0x9141, 0xBA47, 0x9142, 0xBA4A, 0x9143, 0xBA4C, 0x9144, 0xBA4F, 0x9145, 0xBA50, 0x9146, 0xBA51, 0x9147, 0xBA52, 0x9148, 0xBA56, + 0x9149, 0xBA57, 0x914A, 0xBA59, 0x914B, 0xBA5A, 0x914C, 0xBA5B, 0x914D, 0xBA5D, 0x914E, 0xBA5E, 0x914F, 0xBA5F, 0x9150, 0xBA60, + 0x9151, 0xBA61, 0x9152, 0xBA62, 0x9153, 0xBA63, 0x9154, 0xBA66, 0x9155, 0xBA6A, 0x9156, 0xBA6B, 0x9157, 0xBA6C, 0x9158, 0xBA6D, + 0x9159, 0xBA6E, 0x915A, 0xBA6F, 0x9161, 0xBA72, 0x9162, 0xBA73, 0x9163, 0xBA75, 0x9164, 0xBA76, 0x9165, 0xBA77, 0x9166, 0xBA79, + 0x9167, 0xBA7A, 0x9168, 0xBA7B, 0x9169, 0xBA7C, 0x916A, 0xBA7D, 0x916B, 0xBA7E, 0x916C, 0xBA7F, 0x916D, 0xBA80, 0x916E, 0xBA81, + 0x916F, 0xBA82, 0x9170, 0xBA86, 0x9171, 0xBA88, 0x9172, 0xBA89, 0x9173, 0xBA8A, 0x9174, 0xBA8B, 0x9175, 0xBA8D, 0x9176, 0xBA8E, + 0x9177, 0xBA8F, 0x9178, 0xBA90, 0x9179, 0xBA91, 0x917A, 0xBA92, 0x9181, 0xBA93, 0x9182, 0xBA94, 0x9183, 0xBA95, 0x9184, 0xBA96, + 0x9185, 0xBA97, 0x9186, 0xBA98, 0x9187, 0xBA99, 0x9188, 0xBA9A, 0x9189, 0xBA9B, 0x918A, 0xBA9C, 0x918B, 0xBA9D, 0x918C, 0xBA9E, + 0x918D, 0xBA9F, 0x918E, 0xBAA0, 0x918F, 0xBAA1, 0x9190, 0xBAA2, 0x9191, 0xBAA3, 0x9192, 0xBAA4, 0x9193, 0xBAA5, 0x9194, 0xBAA6, + 0x9195, 0xBAA7, 0x9196, 0xBAAA, 0x9197, 0xBAAD, 0x9198, 0xBAAE, 0x9199, 0xBAAF, 0x919A, 0xBAB1, 0x919B, 0xBAB3, 0x919C, 0xBAB4, + 0x919D, 0xBAB5, 0x919E, 0xBAB6, 0x919F, 0xBAB7, 0x91A0, 0xBABA, 0x91A1, 0xBABC, 0x91A2, 0xBABE, 0x91A3, 0xBABF, 0x91A4, 0xBAC0, + 0x91A5, 0xBAC1, 0x91A6, 0xBAC2, 0x91A7, 0xBAC3, 0x91A8, 0xBAC5, 0x91A9, 0xBAC6, 0x91AA, 0xBAC7, 0x91AB, 0xBAC9, 0x91AC, 0xBACA, + 0x91AD, 0xBACB, 0x91AE, 0xBACC, 0x91AF, 0xBACD, 0x91B0, 0xBACE, 0x91B1, 0xBACF, 0x91B2, 0xBAD0, 0x91B3, 0xBAD1, 0x91B4, 0xBAD2, + 0x91B5, 0xBAD3, 0x91B6, 0xBAD4, 0x91B7, 0xBAD5, 0x91B8, 0xBAD6, 0x91B9, 0xBAD7, 0x91BA, 0xBADA, 0x91BB, 0xBADB, 0x91BC, 0xBADC, + 0x91BD, 0xBADD, 0x91BE, 0xBADE, 0x91BF, 0xBADF, 0x91C0, 0xBAE0, 0x91C1, 0xBAE1, 0x91C2, 0xBAE2, 0x91C3, 0xBAE3, 0x91C4, 0xBAE4, + 0x91C5, 0xBAE5, 0x91C6, 0xBAE6, 0x91C7, 0xBAE7, 0x91C8, 0xBAE8, 0x91C9, 0xBAE9, 0x91CA, 0xBAEA, 0x91CB, 0xBAEB, 0x91CC, 0xBAEC, + 0x91CD, 0xBAED, 0x91CE, 0xBAEE, 0x91CF, 0xBAEF, 0x91D0, 0xBAF0, 0x91D1, 0xBAF1, 0x91D2, 0xBAF2, 0x91D3, 0xBAF3, 0x91D4, 0xBAF4, + 0x91D5, 0xBAF5, 0x91D6, 0xBAF6, 0x91D7, 0xBAF7, 0x91D8, 0xBAF8, 0x91D9, 0xBAF9, 0x91DA, 0xBAFA, 0x91DB, 0xBAFB, 0x91DC, 0xBAFD, + 0x91DD, 0xBAFE, 0x91DE, 0xBAFF, 0x91DF, 0xBB01, 0x91E0, 0xBB02, 0x91E1, 0xBB03, 0x91E2, 0xBB05, 0x91E3, 0xBB06, 0x91E4, 0xBB07, + 0x91E5, 0xBB08, 0x91E6, 0xBB09, 0x91E7, 0xBB0A, 0x91E8, 0xBB0B, 0x91E9, 0xBB0C, 0x91EA, 0xBB0E, 0x91EB, 0xBB10, 0x91EC, 0xBB12, + 0x91ED, 0xBB13, 0x91EE, 0xBB14, 0x91EF, 0xBB15, 0x91F0, 0xBB16, 0x91F1, 0xBB17, 0x91F2, 0xBB19, 0x91F3, 0xBB1A, 0x91F4, 0xBB1B, + 0x91F5, 0xBB1D, 0x91F6, 0xBB1E, 0x91F7, 0xBB1F, 0x91F8, 0xBB21, 0x91F9, 0xBB22, 0x91FA, 0xBB23, 0x91FB, 0xBB24, 0x91FC, 0xBB25, + 0x91FD, 0xBB26, 0x91FE, 0xBB27, 0x9241, 0xBB28, 0x9242, 0xBB2A, 0x9243, 0xBB2C, 0x9244, 0xBB2D, 0x9245, 0xBB2E, 0x9246, 0xBB2F, + 0x9247, 0xBB30, 0x9248, 0xBB31, 0x9249, 0xBB32, 0x924A, 0xBB33, 0x924B, 0xBB37, 0x924C, 0xBB39, 0x924D, 0xBB3A, 0x924E, 0xBB3F, + 0x924F, 0xBB40, 0x9250, 0xBB41, 0x9251, 0xBB42, 0x9252, 0xBB43, 0x9253, 0xBB46, 0x9254, 0xBB48, 0x9255, 0xBB4A, 0x9256, 0xBB4B, + 0x9257, 0xBB4C, 0x9258, 0xBB4E, 0x9259, 0xBB51, 0x925A, 0xBB52, 0x9261, 0xBB53, 0x9262, 0xBB55, 0x9263, 0xBB56, 0x9264, 0xBB57, + 0x9265, 0xBB59, 0x9266, 0xBB5A, 0x9267, 0xBB5B, 0x9268, 0xBB5C, 0x9269, 0xBB5D, 0x926A, 0xBB5E, 0x926B, 0xBB5F, 0x926C, 0xBB60, + 0x926D, 0xBB62, 0x926E, 0xBB64, 0x926F, 0xBB65, 0x9270, 0xBB66, 0x9271, 0xBB67, 0x9272, 0xBB68, 0x9273, 0xBB69, 0x9274, 0xBB6A, + 0x9275, 0xBB6B, 0x9276, 0xBB6D, 0x9277, 0xBB6E, 0x9278, 0xBB6F, 0x9279, 0xBB70, 0x927A, 0xBB71, 0x9281, 0xBB72, 0x9282, 0xBB73, + 0x9283, 0xBB74, 0x9284, 0xBB75, 0x9285, 0xBB76, 0x9286, 0xBB77, 0x9287, 0xBB78, 0x9288, 0xBB79, 0x9289, 0xBB7A, 0x928A, 0xBB7B, + 0x928B, 0xBB7C, 0x928C, 0xBB7D, 0x928D, 0xBB7E, 0x928E, 0xBB7F, 0x928F, 0xBB80, 0x9290, 0xBB81, 0x9291, 0xBB82, 0x9292, 0xBB83, + 0x9293, 0xBB84, 0x9294, 0xBB85, 0x9295, 0xBB86, 0x9296, 0xBB87, 0x9297, 0xBB89, 0x9298, 0xBB8A, 0x9299, 0xBB8B, 0x929A, 0xBB8D, + 0x929B, 0xBB8E, 0x929C, 0xBB8F, 0x929D, 0xBB91, 0x929E, 0xBB92, 0x929F, 0xBB93, 0x92A0, 0xBB94, 0x92A1, 0xBB95, 0x92A2, 0xBB96, + 0x92A3, 0xBB97, 0x92A4, 0xBB98, 0x92A5, 0xBB99, 0x92A6, 0xBB9A, 0x92A7, 0xBB9B, 0x92A8, 0xBB9C, 0x92A9, 0xBB9D, 0x92AA, 0xBB9E, + 0x92AB, 0xBB9F, 0x92AC, 0xBBA0, 0x92AD, 0xBBA1, 0x92AE, 0xBBA2, 0x92AF, 0xBBA3, 0x92B0, 0xBBA5, 0x92B1, 0xBBA6, 0x92B2, 0xBBA7, + 0x92B3, 0xBBA9, 0x92B4, 0xBBAA, 0x92B5, 0xBBAB, 0x92B6, 0xBBAD, 0x92B7, 0xBBAE, 0x92B8, 0xBBAF, 0x92B9, 0xBBB0, 0x92BA, 0xBBB1, + 0x92BB, 0xBBB2, 0x92BC, 0xBBB3, 0x92BD, 0xBBB5, 0x92BE, 0xBBB6, 0x92BF, 0xBBB8, 0x92C0, 0xBBB9, 0x92C1, 0xBBBA, 0x92C2, 0xBBBB, + 0x92C3, 0xBBBC, 0x92C4, 0xBBBD, 0x92C5, 0xBBBE, 0x92C6, 0xBBBF, 0x92C7, 0xBBC1, 0x92C8, 0xBBC2, 0x92C9, 0xBBC3, 0x92CA, 0xBBC5, + 0x92CB, 0xBBC6, 0x92CC, 0xBBC7, 0x92CD, 0xBBC9, 0x92CE, 0xBBCA, 0x92CF, 0xBBCB, 0x92D0, 0xBBCC, 0x92D1, 0xBBCD, 0x92D2, 0xBBCE, + 0x92D3, 0xBBCF, 0x92D4, 0xBBD1, 0x92D5, 0xBBD2, 0x92D6, 0xBBD4, 0x92D7, 0xBBD5, 0x92D8, 0xBBD6, 0x92D9, 0xBBD7, 0x92DA, 0xBBD8, + 0x92DB, 0xBBD9, 0x92DC, 0xBBDA, 0x92DD, 0xBBDB, 0x92DE, 0xBBDC, 0x92DF, 0xBBDD, 0x92E0, 0xBBDE, 0x92E1, 0xBBDF, 0x92E2, 0xBBE0, + 0x92E3, 0xBBE1, 0x92E4, 0xBBE2, 0x92E5, 0xBBE3, 0x92E6, 0xBBE4, 0x92E7, 0xBBE5, 0x92E8, 0xBBE6, 0x92E9, 0xBBE7, 0x92EA, 0xBBE8, + 0x92EB, 0xBBE9, 0x92EC, 0xBBEA, 0x92ED, 0xBBEB, 0x92EE, 0xBBEC, 0x92EF, 0xBBED, 0x92F0, 0xBBEE, 0x92F1, 0xBBEF, 0x92F2, 0xBBF0, + 0x92F3, 0xBBF1, 0x92F4, 0xBBF2, 0x92F5, 0xBBF3, 0x92F6, 0xBBF4, 0x92F7, 0xBBF5, 0x92F8, 0xBBF6, 0x92F9, 0xBBF7, 0x92FA, 0xBBFA, + 0x92FB, 0xBBFB, 0x92FC, 0xBBFD, 0x92FD, 0xBBFE, 0x92FE, 0xBC01, 0x9341, 0xBC03, 0x9342, 0xBC04, 0x9343, 0xBC05, 0x9344, 0xBC06, + 0x9345, 0xBC07, 0x9346, 0xBC0A, 0x9347, 0xBC0E, 0x9348, 0xBC10, 0x9349, 0xBC12, 0x934A, 0xBC13, 0x934B, 0xBC19, 0x934C, 0xBC1A, + 0x934D, 0xBC20, 0x934E, 0xBC21, 0x934F, 0xBC22, 0x9350, 0xBC23, 0x9351, 0xBC26, 0x9352, 0xBC28, 0x9353, 0xBC2A, 0x9354, 0xBC2B, + 0x9355, 0xBC2C, 0x9356, 0xBC2E, 0x9357, 0xBC2F, 0x9358, 0xBC32, 0x9359, 0xBC33, 0x935A, 0xBC35, 0x9361, 0xBC36, 0x9362, 0xBC37, + 0x9363, 0xBC39, 0x9364, 0xBC3A, 0x9365, 0xBC3B, 0x9366, 0xBC3C, 0x9367, 0xBC3D, 0x9368, 0xBC3E, 0x9369, 0xBC3F, 0x936A, 0xBC42, + 0x936B, 0xBC46, 0x936C, 0xBC47, 0x936D, 0xBC48, 0x936E, 0xBC4A, 0x936F, 0xBC4B, 0x9370, 0xBC4E, 0x9371, 0xBC4F, 0x9372, 0xBC51, + 0x9373, 0xBC52, 0x9374, 0xBC53, 0x9375, 0xBC54, 0x9376, 0xBC55, 0x9377, 0xBC56, 0x9378, 0xBC57, 0x9379, 0xBC58, 0x937A, 0xBC59, + 0x9381, 0xBC5A, 0x9382, 0xBC5B, 0x9383, 0xBC5C, 0x9384, 0xBC5E, 0x9385, 0xBC5F, 0x9386, 0xBC60, 0x9387, 0xBC61, 0x9388, 0xBC62, + 0x9389, 0xBC63, 0x938A, 0xBC64, 0x938B, 0xBC65, 0x938C, 0xBC66, 0x938D, 0xBC67, 0x938E, 0xBC68, 0x938F, 0xBC69, 0x9390, 0xBC6A, + 0x9391, 0xBC6B, 0x9392, 0xBC6C, 0x9393, 0xBC6D, 0x9394, 0xBC6E, 0x9395, 0xBC6F, 0x9396, 0xBC70, 0x9397, 0xBC71, 0x9398, 0xBC72, + 0x9399, 0xBC73, 0x939A, 0xBC74, 0x939B, 0xBC75, 0x939C, 0xBC76, 0x939D, 0xBC77, 0x939E, 0xBC78, 0x939F, 0xBC79, 0x93A0, 0xBC7A, + 0x93A1, 0xBC7B, 0x93A2, 0xBC7C, 0x93A3, 0xBC7D, 0x93A4, 0xBC7E, 0x93A5, 0xBC7F, 0x93A6, 0xBC80, 0x93A7, 0xBC81, 0x93A8, 0xBC82, + 0x93A9, 0xBC83, 0x93AA, 0xBC86, 0x93AB, 0xBC87, 0x93AC, 0xBC89, 0x93AD, 0xBC8A, 0x93AE, 0xBC8D, 0x93AF, 0xBC8F, 0x93B0, 0xBC90, + 0x93B1, 0xBC91, 0x93B2, 0xBC92, 0x93B3, 0xBC93, 0x93B4, 0xBC96, 0x93B5, 0xBC98, 0x93B6, 0xBC9B, 0x93B7, 0xBC9C, 0x93B8, 0xBC9D, + 0x93B9, 0xBC9E, 0x93BA, 0xBC9F, 0x93BB, 0xBCA2, 0x93BC, 0xBCA3, 0x93BD, 0xBCA5, 0x93BE, 0xBCA6, 0x93BF, 0xBCA9, 0x93C0, 0xBCAA, + 0x93C1, 0xBCAB, 0x93C2, 0xBCAC, 0x93C3, 0xBCAD, 0x93C4, 0xBCAE, 0x93C5, 0xBCAF, 0x93C6, 0xBCB2, 0x93C7, 0xBCB6, 0x93C8, 0xBCB7, + 0x93C9, 0xBCB8, 0x93CA, 0xBCB9, 0x93CB, 0xBCBA, 0x93CC, 0xBCBB, 0x93CD, 0xBCBE, 0x93CE, 0xBCBF, 0x93CF, 0xBCC1, 0x93D0, 0xBCC2, + 0x93D1, 0xBCC3, 0x93D2, 0xBCC5, 0x93D3, 0xBCC6, 0x93D4, 0xBCC7, 0x93D5, 0xBCC8, 0x93D6, 0xBCC9, 0x93D7, 0xBCCA, 0x93D8, 0xBCCB, + 0x93D9, 0xBCCC, 0x93DA, 0xBCCE, 0x93DB, 0xBCD2, 0x93DC, 0xBCD3, 0x93DD, 0xBCD4, 0x93DE, 0xBCD6, 0x93DF, 0xBCD7, 0x93E0, 0xBCD9, + 0x93E1, 0xBCDA, 0x93E2, 0xBCDB, 0x93E3, 0xBCDD, 0x93E4, 0xBCDE, 0x93E5, 0xBCDF, 0x93E6, 0xBCE0, 0x93E7, 0xBCE1, 0x93E8, 0xBCE2, + 0x93E9, 0xBCE3, 0x93EA, 0xBCE4, 0x93EB, 0xBCE5, 0x93EC, 0xBCE6, 0x93ED, 0xBCE7, 0x93EE, 0xBCE8, 0x93EF, 0xBCE9, 0x93F0, 0xBCEA, + 0x93F1, 0xBCEB, 0x93F2, 0xBCEC, 0x93F3, 0xBCED, 0x93F4, 0xBCEE, 0x93F5, 0xBCEF, 0x93F6, 0xBCF0, 0x93F7, 0xBCF1, 0x93F8, 0xBCF2, + 0x93F9, 0xBCF3, 0x93FA, 0xBCF7, 0x93FB, 0xBCF9, 0x93FC, 0xBCFA, 0x93FD, 0xBCFB, 0x93FE, 0xBCFD, 0x9441, 0xBCFE, 0x9442, 0xBCFF, + 0x9443, 0xBD00, 0x9444, 0xBD01, 0x9445, 0xBD02, 0x9446, 0xBD03, 0x9447, 0xBD06, 0x9448, 0xBD08, 0x9449, 0xBD0A, 0x944A, 0xBD0B, + 0x944B, 0xBD0C, 0x944C, 0xBD0D, 0x944D, 0xBD0E, 0x944E, 0xBD0F, 0x944F, 0xBD11, 0x9450, 0xBD12, 0x9451, 0xBD13, 0x9452, 0xBD15, + 0x9453, 0xBD16, 0x9454, 0xBD17, 0x9455, 0xBD18, 0x9456, 0xBD19, 0x9457, 0xBD1A, 0x9458, 0xBD1B, 0x9459, 0xBD1C, 0x945A, 0xBD1D, + 0x9461, 0xBD1E, 0x9462, 0xBD1F, 0x9463, 0xBD20, 0x9464, 0xBD21, 0x9465, 0xBD22, 0x9466, 0xBD23, 0x9467, 0xBD25, 0x9468, 0xBD26, + 0x9469, 0xBD27, 0x946A, 0xBD28, 0x946B, 0xBD29, 0x946C, 0xBD2A, 0x946D, 0xBD2B, 0x946E, 0xBD2D, 0x946F, 0xBD2E, 0x9470, 0xBD2F, + 0x9471, 0xBD30, 0x9472, 0xBD31, 0x9473, 0xBD32, 0x9474, 0xBD33, 0x9475, 0xBD34, 0x9476, 0xBD35, 0x9477, 0xBD36, 0x9478, 0xBD37, + 0x9479, 0xBD38, 0x947A, 0xBD39, 0x9481, 0xBD3A, 0x9482, 0xBD3B, 0x9483, 0xBD3C, 0x9484, 0xBD3D, 0x9485, 0xBD3E, 0x9486, 0xBD3F, + 0x9487, 0xBD41, 0x9488, 0xBD42, 0x9489, 0xBD43, 0x948A, 0xBD44, 0x948B, 0xBD45, 0x948C, 0xBD46, 0x948D, 0xBD47, 0x948E, 0xBD4A, + 0x948F, 0xBD4B, 0x9490, 0xBD4D, 0x9491, 0xBD4E, 0x9492, 0xBD4F, 0x9493, 0xBD51, 0x9494, 0xBD52, 0x9495, 0xBD53, 0x9496, 0xBD54, + 0x9497, 0xBD55, 0x9498, 0xBD56, 0x9499, 0xBD57, 0x949A, 0xBD5A, 0x949B, 0xBD5B, 0x949C, 0xBD5C, 0x949D, 0xBD5D, 0x949E, 0xBD5E, + 0x949F, 0xBD5F, 0x94A0, 0xBD60, 0x94A1, 0xBD61, 0x94A2, 0xBD62, 0x94A3, 0xBD63, 0x94A4, 0xBD65, 0x94A5, 0xBD66, 0x94A6, 0xBD67, + 0x94A7, 0xBD69, 0x94A8, 0xBD6A, 0x94A9, 0xBD6B, 0x94AA, 0xBD6C, 0x94AB, 0xBD6D, 0x94AC, 0xBD6E, 0x94AD, 0xBD6F, 0x94AE, 0xBD70, + 0x94AF, 0xBD71, 0x94B0, 0xBD72, 0x94B1, 0xBD73, 0x94B2, 0xBD74, 0x94B3, 0xBD75, 0x94B4, 0xBD76, 0x94B5, 0xBD77, 0x94B6, 0xBD78, + 0x94B7, 0xBD79, 0x94B8, 0xBD7A, 0x94B9, 0xBD7B, 0x94BA, 0xBD7C, 0x94BB, 0xBD7D, 0x94BC, 0xBD7E, 0x94BD, 0xBD7F, 0x94BE, 0xBD82, + 0x94BF, 0xBD83, 0x94C0, 0xBD85, 0x94C1, 0xBD86, 0x94C2, 0xBD8B, 0x94C3, 0xBD8C, 0x94C4, 0xBD8D, 0x94C5, 0xBD8E, 0x94C6, 0xBD8F, + 0x94C7, 0xBD92, 0x94C8, 0xBD94, 0x94C9, 0xBD96, 0x94CA, 0xBD97, 0x94CB, 0xBD98, 0x94CC, 0xBD9B, 0x94CD, 0xBD9D, 0x94CE, 0xBD9E, + 0x94CF, 0xBD9F, 0x94D0, 0xBDA0, 0x94D1, 0xBDA1, 0x94D2, 0xBDA2, 0x94D3, 0xBDA3, 0x94D4, 0xBDA5, 0x94D5, 0xBDA6, 0x94D6, 0xBDA7, + 0x94D7, 0xBDA8, 0x94D8, 0xBDA9, 0x94D9, 0xBDAA, 0x94DA, 0xBDAB, 0x94DB, 0xBDAC, 0x94DC, 0xBDAD, 0x94DD, 0xBDAE, 0x94DE, 0xBDAF, + 0x94DF, 0xBDB1, 0x94E0, 0xBDB2, 0x94E1, 0xBDB3, 0x94E2, 0xBDB4, 0x94E3, 0xBDB5, 0x94E4, 0xBDB6, 0x94E5, 0xBDB7, 0x94E6, 0xBDB9, + 0x94E7, 0xBDBA, 0x94E8, 0xBDBB, 0x94E9, 0xBDBC, 0x94EA, 0xBDBD, 0x94EB, 0xBDBE, 0x94EC, 0xBDBF, 0x94ED, 0xBDC0, 0x94EE, 0xBDC1, + 0x94EF, 0xBDC2, 0x94F0, 0xBDC3, 0x94F1, 0xBDC4, 0x94F2, 0xBDC5, 0x94F3, 0xBDC6, 0x94F4, 0xBDC7, 0x94F5, 0xBDC8, 0x94F6, 0xBDC9, + 0x94F7, 0xBDCA, 0x94F8, 0xBDCB, 0x94F9, 0xBDCC, 0x94FA, 0xBDCD, 0x94FB, 0xBDCE, 0x94FC, 0xBDCF, 0x94FD, 0xBDD0, 0x94FE, 0xBDD1, + 0x9541, 0xBDD2, 0x9542, 0xBDD3, 0x9543, 0xBDD6, 0x9544, 0xBDD7, 0x9545, 0xBDD9, 0x9546, 0xBDDA, 0x9547, 0xBDDB, 0x9548, 0xBDDD, + 0x9549, 0xBDDE, 0x954A, 0xBDDF, 0x954B, 0xBDE0, 0x954C, 0xBDE1, 0x954D, 0xBDE2, 0x954E, 0xBDE3, 0x954F, 0xBDE4, 0x9550, 0xBDE5, + 0x9551, 0xBDE6, 0x9552, 0xBDE7, 0x9553, 0xBDE8, 0x9554, 0xBDEA, 0x9555, 0xBDEB, 0x9556, 0xBDEC, 0x9557, 0xBDED, 0x9558, 0xBDEE, + 0x9559, 0xBDEF, 0x955A, 0xBDF1, 0x9561, 0xBDF2, 0x9562, 0xBDF3, 0x9563, 0xBDF5, 0x9564, 0xBDF6, 0x9565, 0xBDF7, 0x9566, 0xBDF9, + 0x9567, 0xBDFA, 0x9568, 0xBDFB, 0x9569, 0xBDFC, 0x956A, 0xBDFD, 0x956B, 0xBDFE, 0x956C, 0xBDFF, 0x956D, 0xBE01, 0x956E, 0xBE02, + 0x956F, 0xBE04, 0x9570, 0xBE06, 0x9571, 0xBE07, 0x9572, 0xBE08, 0x9573, 0xBE09, 0x9574, 0xBE0A, 0x9575, 0xBE0B, 0x9576, 0xBE0E, + 0x9577, 0xBE0F, 0x9578, 0xBE11, 0x9579, 0xBE12, 0x957A, 0xBE13, 0x9581, 0xBE15, 0x9582, 0xBE16, 0x9583, 0xBE17, 0x9584, 0xBE18, + 0x9585, 0xBE19, 0x9586, 0xBE1A, 0x9587, 0xBE1B, 0x9588, 0xBE1E, 0x9589, 0xBE20, 0x958A, 0xBE21, 0x958B, 0xBE22, 0x958C, 0xBE23, + 0x958D, 0xBE24, 0x958E, 0xBE25, 0x958F, 0xBE26, 0x9590, 0xBE27, 0x9591, 0xBE28, 0x9592, 0xBE29, 0x9593, 0xBE2A, 0x9594, 0xBE2B, + 0x9595, 0xBE2C, 0x9596, 0xBE2D, 0x9597, 0xBE2E, 0x9598, 0xBE2F, 0x9599, 0xBE30, 0x959A, 0xBE31, 0x959B, 0xBE32, 0x959C, 0xBE33, + 0x959D, 0xBE34, 0x959E, 0xBE35, 0x959F, 0xBE36, 0x95A0, 0xBE37, 0x95A1, 0xBE38, 0x95A2, 0xBE39, 0x95A3, 0xBE3A, 0x95A4, 0xBE3B, + 0x95A5, 0xBE3C, 0x95A6, 0xBE3D, 0x95A7, 0xBE3E, 0x95A8, 0xBE3F, 0x95A9, 0xBE40, 0x95AA, 0xBE41, 0x95AB, 0xBE42, 0x95AC, 0xBE43, + 0x95AD, 0xBE46, 0x95AE, 0xBE47, 0x95AF, 0xBE49, 0x95B0, 0xBE4A, 0x95B1, 0xBE4B, 0x95B2, 0xBE4D, 0x95B3, 0xBE4F, 0x95B4, 0xBE50, + 0x95B5, 0xBE51, 0x95B6, 0xBE52, 0x95B7, 0xBE53, 0x95B8, 0xBE56, 0x95B9, 0xBE58, 0x95BA, 0xBE5C, 0x95BB, 0xBE5D, 0x95BC, 0xBE5E, + 0x95BD, 0xBE5F, 0x95BE, 0xBE62, 0x95BF, 0xBE63, 0x95C0, 0xBE65, 0x95C1, 0xBE66, 0x95C2, 0xBE67, 0x95C3, 0xBE69, 0x95C4, 0xBE6B, + 0x95C5, 0xBE6C, 0x95C6, 0xBE6D, 0x95C7, 0xBE6E, 0x95C8, 0xBE6F, 0x95C9, 0xBE72, 0x95CA, 0xBE76, 0x95CB, 0xBE77, 0x95CC, 0xBE78, + 0x95CD, 0xBE79, 0x95CE, 0xBE7A, 0x95CF, 0xBE7E, 0x95D0, 0xBE7F, 0x95D1, 0xBE81, 0x95D2, 0xBE82, 0x95D3, 0xBE83, 0x95D4, 0xBE85, + 0x95D5, 0xBE86, 0x95D6, 0xBE87, 0x95D7, 0xBE88, 0x95D8, 0xBE89, 0x95D9, 0xBE8A, 0x95DA, 0xBE8B, 0x95DB, 0xBE8E, 0x95DC, 0xBE92, + 0x95DD, 0xBE93, 0x95DE, 0xBE94, 0x95DF, 0xBE95, 0x95E0, 0xBE96, 0x95E1, 0xBE97, 0x95E2, 0xBE9A, 0x95E3, 0xBE9B, 0x95E4, 0xBE9C, + 0x95E5, 0xBE9D, 0x95E6, 0xBE9E, 0x95E7, 0xBE9F, 0x95E8, 0xBEA0, 0x95E9, 0xBEA1, 0x95EA, 0xBEA2, 0x95EB, 0xBEA3, 0x95EC, 0xBEA4, + 0x95ED, 0xBEA5, 0x95EE, 0xBEA6, 0x95EF, 0xBEA7, 0x95F0, 0xBEA9, 0x95F1, 0xBEAA, 0x95F2, 0xBEAB, 0x95F3, 0xBEAC, 0x95F4, 0xBEAD, + 0x95F5, 0xBEAE, 0x95F6, 0xBEAF, 0x95F7, 0xBEB0, 0x95F8, 0xBEB1, 0x95F9, 0xBEB2, 0x95FA, 0xBEB3, 0x95FB, 0xBEB4, 0x95FC, 0xBEB5, + 0x95FD, 0xBEB6, 0x95FE, 0xBEB7, 0x9641, 0xBEB8, 0x9642, 0xBEB9, 0x9643, 0xBEBA, 0x9644, 0xBEBB, 0x9645, 0xBEBC, 0x9646, 0xBEBD, + 0x9647, 0xBEBE, 0x9648, 0xBEBF, 0x9649, 0xBEC0, 0x964A, 0xBEC1, 0x964B, 0xBEC2, 0x964C, 0xBEC3, 0x964D, 0xBEC4, 0x964E, 0xBEC5, + 0x964F, 0xBEC6, 0x9650, 0xBEC7, 0x9651, 0xBEC8, 0x9652, 0xBEC9, 0x9653, 0xBECA, 0x9654, 0xBECB, 0x9655, 0xBECC, 0x9656, 0xBECD, + 0x9657, 0xBECE, 0x9658, 0xBECF, 0x9659, 0xBED2, 0x965A, 0xBED3, 0x9661, 0xBED5, 0x9662, 0xBED6, 0x9663, 0xBED9, 0x9664, 0xBEDA, + 0x9665, 0xBEDB, 0x9666, 0xBEDC, 0x9667, 0xBEDD, 0x9668, 0xBEDE, 0x9669, 0xBEDF, 0x966A, 0xBEE1, 0x966B, 0xBEE2, 0x966C, 0xBEE6, + 0x966D, 0xBEE7, 0x966E, 0xBEE8, 0x966F, 0xBEE9, 0x9670, 0xBEEA, 0x9671, 0xBEEB, 0x9672, 0xBEED, 0x9673, 0xBEEE, 0x9674, 0xBEEF, + 0x9675, 0xBEF0, 0x9676, 0xBEF1, 0x9677, 0xBEF2, 0x9678, 0xBEF3, 0x9679, 0xBEF4, 0x967A, 0xBEF5, 0x9681, 0xBEF6, 0x9682, 0xBEF7, + 0x9683, 0xBEF8, 0x9684, 0xBEF9, 0x9685, 0xBEFA, 0x9686, 0xBEFB, 0x9687, 0xBEFC, 0x9688, 0xBEFD, 0x9689, 0xBEFE, 0x968A, 0xBEFF, + 0x968B, 0xBF00, 0x968C, 0xBF02, 0x968D, 0xBF03, 0x968E, 0xBF04, 0x968F, 0xBF05, 0x9690, 0xBF06, 0x9691, 0xBF07, 0x9692, 0xBF0A, + 0x9693, 0xBF0B, 0x9694, 0xBF0C, 0x9695, 0xBF0D, 0x9696, 0xBF0E, 0x9697, 0xBF0F, 0x9698, 0xBF10, 0x9699, 0xBF11, 0x969A, 0xBF12, + 0x969B, 0xBF13, 0x969C, 0xBF14, 0x969D, 0xBF15, 0x969E, 0xBF16, 0x969F, 0xBF17, 0x96A0, 0xBF1A, 0x96A1, 0xBF1E, 0x96A2, 0xBF1F, + 0x96A3, 0xBF20, 0x96A4, 0xBF21, 0x96A5, 0xBF22, 0x96A6, 0xBF23, 0x96A7, 0xBF24, 0x96A8, 0xBF25, 0x96A9, 0xBF26, 0x96AA, 0xBF27, + 0x96AB, 0xBF28, 0x96AC, 0xBF29, 0x96AD, 0xBF2A, 0x96AE, 0xBF2B, 0x96AF, 0xBF2C, 0x96B0, 0xBF2D, 0x96B1, 0xBF2E, 0x96B2, 0xBF2F, + 0x96B3, 0xBF30, 0x96B4, 0xBF31, 0x96B5, 0xBF32, 0x96B6, 0xBF33, 0x96B7, 0xBF34, 0x96B8, 0xBF35, 0x96B9, 0xBF36, 0x96BA, 0xBF37, + 0x96BB, 0xBF38, 0x96BC, 0xBF39, 0x96BD, 0xBF3A, 0x96BE, 0xBF3B, 0x96BF, 0xBF3C, 0x96C0, 0xBF3D, 0x96C1, 0xBF3E, 0x96C2, 0xBF3F, + 0x96C3, 0xBF42, 0x96C4, 0xBF43, 0x96C5, 0xBF45, 0x96C6, 0xBF46, 0x96C7, 0xBF47, 0x96C8, 0xBF49, 0x96C9, 0xBF4A, 0x96CA, 0xBF4B, + 0x96CB, 0xBF4C, 0x96CC, 0xBF4D, 0x96CD, 0xBF4E, 0x96CE, 0xBF4F, 0x96CF, 0xBF52, 0x96D0, 0xBF53, 0x96D1, 0xBF54, 0x96D2, 0xBF56, + 0x96D3, 0xBF57, 0x96D4, 0xBF58, 0x96D5, 0xBF59, 0x96D6, 0xBF5A, 0x96D7, 0xBF5B, 0x96D8, 0xBF5C, 0x96D9, 0xBF5D, 0x96DA, 0xBF5E, + 0x96DB, 0xBF5F, 0x96DC, 0xBF60, 0x96DD, 0xBF61, 0x96DE, 0xBF62, 0x96DF, 0xBF63, 0x96E0, 0xBF64, 0x96E1, 0xBF65, 0x96E2, 0xBF66, + 0x96E3, 0xBF67, 0x96E4, 0xBF68, 0x96E5, 0xBF69, 0x96E6, 0xBF6A, 0x96E7, 0xBF6B, 0x96E8, 0xBF6C, 0x96E9, 0xBF6D, 0x96EA, 0xBF6E, + 0x96EB, 0xBF6F, 0x96EC, 0xBF70, 0x96ED, 0xBF71, 0x96EE, 0xBF72, 0x96EF, 0xBF73, 0x96F0, 0xBF74, 0x96F1, 0xBF75, 0x96F2, 0xBF76, + 0x96F3, 0xBF77, 0x96F4, 0xBF78, 0x96F5, 0xBF79, 0x96F6, 0xBF7A, 0x96F7, 0xBF7B, 0x96F8, 0xBF7C, 0x96F9, 0xBF7D, 0x96FA, 0xBF7E, + 0x96FB, 0xBF7F, 0x96FC, 0xBF80, 0x96FD, 0xBF81, 0x96FE, 0xBF82, 0x9741, 0xBF83, 0x9742, 0xBF84, 0x9743, 0xBF85, 0x9744, 0xBF86, + 0x9745, 0xBF87, 0x9746, 0xBF88, 0x9747, 0xBF89, 0x9748, 0xBF8A, 0x9749, 0xBF8B, 0x974A, 0xBF8C, 0x974B, 0xBF8D, 0x974C, 0xBF8E, + 0x974D, 0xBF8F, 0x974E, 0xBF90, 0x974F, 0xBF91, 0x9750, 0xBF92, 0x9751, 0xBF93, 0x9752, 0xBF95, 0x9753, 0xBF96, 0x9754, 0xBF97, + 0x9755, 0xBF98, 0x9756, 0xBF99, 0x9757, 0xBF9A, 0x9758, 0xBF9B, 0x9759, 0xBF9C, 0x975A, 0xBF9D, 0x9761, 0xBF9E, 0x9762, 0xBF9F, + 0x9763, 0xBFA0, 0x9764, 0xBFA1, 0x9765, 0xBFA2, 0x9766, 0xBFA3, 0x9767, 0xBFA4, 0x9768, 0xBFA5, 0x9769, 0xBFA6, 0x976A, 0xBFA7, + 0x976B, 0xBFA8, 0x976C, 0xBFA9, 0x976D, 0xBFAA, 0x976E, 0xBFAB, 0x976F, 0xBFAC, 0x9770, 0xBFAD, 0x9771, 0xBFAE, 0x9772, 0xBFAF, + 0x9773, 0xBFB1, 0x9774, 0xBFB2, 0x9775, 0xBFB3, 0x9776, 0xBFB4, 0x9777, 0xBFB5, 0x9778, 0xBFB6, 0x9779, 0xBFB7, 0x977A, 0xBFB8, + 0x9781, 0xBFB9, 0x9782, 0xBFBA, 0x9783, 0xBFBB, 0x9784, 0xBFBC, 0x9785, 0xBFBD, 0x9786, 0xBFBE, 0x9787, 0xBFBF, 0x9788, 0xBFC0, + 0x9789, 0xBFC1, 0x978A, 0xBFC2, 0x978B, 0xBFC3, 0x978C, 0xBFC4, 0x978D, 0xBFC6, 0x978E, 0xBFC7, 0x978F, 0xBFC8, 0x9790, 0xBFC9, + 0x9791, 0xBFCA, 0x9792, 0xBFCB, 0x9793, 0xBFCE, 0x9794, 0xBFCF, 0x9795, 0xBFD1, 0x9796, 0xBFD2, 0x9797, 0xBFD3, 0x9798, 0xBFD5, + 0x9799, 0xBFD6, 0x979A, 0xBFD7, 0x979B, 0xBFD8, 0x979C, 0xBFD9, 0x979D, 0xBFDA, 0x979E, 0xBFDB, 0x979F, 0xBFDD, 0x97A0, 0xBFDE, + 0x97A1, 0xBFE0, 0x97A2, 0xBFE2, 0x97A3, 0xBFE3, 0x97A4, 0xBFE4, 0x97A5, 0xBFE5, 0x97A6, 0xBFE6, 0x97A7, 0xBFE7, 0x97A8, 0xBFE8, + 0x97A9, 0xBFE9, 0x97AA, 0xBFEA, 0x97AB, 0xBFEB, 0x97AC, 0xBFEC, 0x97AD, 0xBFED, 0x97AE, 0xBFEE, 0x97AF, 0xBFEF, 0x97B0, 0xBFF0, + 0x97B1, 0xBFF1, 0x97B2, 0xBFF2, 0x97B3, 0xBFF3, 0x97B4, 0xBFF4, 0x97B5, 0xBFF5, 0x97B6, 0xBFF6, 0x97B7, 0xBFF7, 0x97B8, 0xBFF8, + 0x97B9, 0xBFF9, 0x97BA, 0xBFFA, 0x97BB, 0xBFFB, 0x97BC, 0xBFFC, 0x97BD, 0xBFFD, 0x97BE, 0xBFFE, 0x97BF, 0xBFFF, 0x97C0, 0xC000, + 0x97C1, 0xC001, 0x97C2, 0xC002, 0x97C3, 0xC003, 0x97C4, 0xC004, 0x97C5, 0xC005, 0x97C6, 0xC006, 0x97C7, 0xC007, 0x97C8, 0xC008, + 0x97C9, 0xC009, 0x97CA, 0xC00A, 0x97CB, 0xC00B, 0x97CC, 0xC00C, 0x97CD, 0xC00D, 0x97CE, 0xC00E, 0x97CF, 0xC00F, 0x97D0, 0xC010, + 0x97D1, 0xC011, 0x97D2, 0xC012, 0x97D3, 0xC013, 0x97D4, 0xC014, 0x97D5, 0xC015, 0x97D6, 0xC016, 0x97D7, 0xC017, 0x97D8, 0xC018, + 0x97D9, 0xC019, 0x97DA, 0xC01A, 0x97DB, 0xC01B, 0x97DC, 0xC01C, 0x97DD, 0xC01D, 0x97DE, 0xC01E, 0x97DF, 0xC01F, 0x97E0, 0xC020, + 0x97E1, 0xC021, 0x97E2, 0xC022, 0x97E3, 0xC023, 0x97E4, 0xC024, 0x97E5, 0xC025, 0x97E6, 0xC026, 0x97E7, 0xC027, 0x97E8, 0xC028, + 0x97E9, 0xC029, 0x97EA, 0xC02A, 0x97EB, 0xC02B, 0x97EC, 0xC02C, 0x97ED, 0xC02D, 0x97EE, 0xC02E, 0x97EF, 0xC02F, 0x97F0, 0xC030, + 0x97F1, 0xC031, 0x97F2, 0xC032, 0x97F3, 0xC033, 0x97F4, 0xC034, 0x97F5, 0xC035, 0x97F6, 0xC036, 0x97F7, 0xC037, 0x97F8, 0xC038, + 0x97F9, 0xC039, 0x97FA, 0xC03A, 0x97FB, 0xC03B, 0x97FC, 0xC03D, 0x97FD, 0xC03E, 0x97FE, 0xC03F, 0x9841, 0xC040, 0x9842, 0xC041, + 0x9843, 0xC042, 0x9844, 0xC043, 0x9845, 0xC044, 0x9846, 0xC045, 0x9847, 0xC046, 0x9848, 0xC047, 0x9849, 0xC048, 0x984A, 0xC049, + 0x984B, 0xC04A, 0x984C, 0xC04B, 0x984D, 0xC04C, 0x984E, 0xC04D, 0x984F, 0xC04E, 0x9850, 0xC04F, 0x9851, 0xC050, 0x9852, 0xC052, + 0x9853, 0xC053, 0x9854, 0xC054, 0x9855, 0xC055, 0x9856, 0xC056, 0x9857, 0xC057, 0x9858, 0xC059, 0x9859, 0xC05A, 0x985A, 0xC05B, + 0x9861, 0xC05D, 0x9862, 0xC05E, 0x9863, 0xC05F, 0x9864, 0xC061, 0x9865, 0xC062, 0x9866, 0xC063, 0x9867, 0xC064, 0x9868, 0xC065, + 0x9869, 0xC066, 0x986A, 0xC067, 0x986B, 0xC06A, 0x986C, 0xC06B, 0x986D, 0xC06C, 0x986E, 0xC06D, 0x986F, 0xC06E, 0x9870, 0xC06F, + 0x9871, 0xC070, 0x9872, 0xC071, 0x9873, 0xC072, 0x9874, 0xC073, 0x9875, 0xC074, 0x9876, 0xC075, 0x9877, 0xC076, 0x9878, 0xC077, + 0x9879, 0xC078, 0x987A, 0xC079, 0x9881, 0xC07A, 0x9882, 0xC07B, 0x9883, 0xC07C, 0x9884, 0xC07D, 0x9885, 0xC07E, 0x9886, 0xC07F, + 0x9887, 0xC080, 0x9888, 0xC081, 0x9889, 0xC082, 0x988A, 0xC083, 0x988B, 0xC084, 0x988C, 0xC085, 0x988D, 0xC086, 0x988E, 0xC087, + 0x988F, 0xC088, 0x9890, 0xC089, 0x9891, 0xC08A, 0x9892, 0xC08B, 0x9893, 0xC08C, 0x9894, 0xC08D, 0x9895, 0xC08E, 0x9896, 0xC08F, + 0x9897, 0xC092, 0x9898, 0xC093, 0x9899, 0xC095, 0x989A, 0xC096, 0x989B, 0xC097, 0x989C, 0xC099, 0x989D, 0xC09A, 0x989E, 0xC09B, + 0x989F, 0xC09C, 0x98A0, 0xC09D, 0x98A1, 0xC09E, 0x98A2, 0xC09F, 0x98A3, 0xC0A2, 0x98A4, 0xC0A4, 0x98A5, 0xC0A6, 0x98A6, 0xC0A7, + 0x98A7, 0xC0A8, 0x98A8, 0xC0A9, 0x98A9, 0xC0AA, 0x98AA, 0xC0AB, 0x98AB, 0xC0AE, 0x98AC, 0xC0B1, 0x98AD, 0xC0B2, 0x98AE, 0xC0B7, + 0x98AF, 0xC0B8, 0x98B0, 0xC0B9, 0x98B1, 0xC0BA, 0x98B2, 0xC0BB, 0x98B3, 0xC0BE, 0x98B4, 0xC0C2, 0x98B5, 0xC0C3, 0x98B6, 0xC0C4, + 0x98B7, 0xC0C6, 0x98B8, 0xC0C7, 0x98B9, 0xC0CA, 0x98BA, 0xC0CB, 0x98BB, 0xC0CD, 0x98BC, 0xC0CE, 0x98BD, 0xC0CF, 0x98BE, 0xC0D1, + 0x98BF, 0xC0D2, 0x98C0, 0xC0D3, 0x98C1, 0xC0D4, 0x98C2, 0xC0D5, 0x98C3, 0xC0D6, 0x98C4, 0xC0D7, 0x98C5, 0xC0DA, 0x98C6, 0xC0DE, + 0x98C7, 0xC0DF, 0x98C8, 0xC0E0, 0x98C9, 0xC0E1, 0x98CA, 0xC0E2, 0x98CB, 0xC0E3, 0x98CC, 0xC0E6, 0x98CD, 0xC0E7, 0x98CE, 0xC0E9, + 0x98CF, 0xC0EA, 0x98D0, 0xC0EB, 0x98D1, 0xC0ED, 0x98D2, 0xC0EE, 0x98D3, 0xC0EF, 0x98D4, 0xC0F0, 0x98D5, 0xC0F1, 0x98D6, 0xC0F2, + 0x98D7, 0xC0F3, 0x98D8, 0xC0F6, 0x98D9, 0xC0F8, 0x98DA, 0xC0FA, 0x98DB, 0xC0FB, 0x98DC, 0xC0FC, 0x98DD, 0xC0FD, 0x98DE, 0xC0FE, + 0x98DF, 0xC0FF, 0x98E0, 0xC101, 0x98E1, 0xC102, 0x98E2, 0xC103, 0x98E3, 0xC105, 0x98E4, 0xC106, 0x98E5, 0xC107, 0x98E6, 0xC109, + 0x98E7, 0xC10A, 0x98E8, 0xC10B, 0x98E9, 0xC10C, 0x98EA, 0xC10D, 0x98EB, 0xC10E, 0x98EC, 0xC10F, 0x98ED, 0xC111, 0x98EE, 0xC112, + 0x98EF, 0xC113, 0x98F0, 0xC114, 0x98F1, 0xC116, 0x98F2, 0xC117, 0x98F3, 0xC118, 0x98F4, 0xC119, 0x98F5, 0xC11A, 0x98F6, 0xC11B, + 0x98F7, 0xC121, 0x98F8, 0xC122, 0x98F9, 0xC125, 0x98FA, 0xC128, 0x98FB, 0xC129, 0x98FC, 0xC12A, 0x98FD, 0xC12B, 0x98FE, 0xC12E, + 0x9941, 0xC132, 0x9942, 0xC133, 0x9943, 0xC134, 0x9944, 0xC135, 0x9945, 0xC137, 0x9946, 0xC13A, 0x9947, 0xC13B, 0x9948, 0xC13D, + 0x9949, 0xC13E, 0x994A, 0xC13F, 0x994B, 0xC141, 0x994C, 0xC142, 0x994D, 0xC143, 0x994E, 0xC144, 0x994F, 0xC145, 0x9950, 0xC146, + 0x9951, 0xC147, 0x9952, 0xC14A, 0x9953, 0xC14E, 0x9954, 0xC14F, 0x9955, 0xC150, 0x9956, 0xC151, 0x9957, 0xC152, 0x9958, 0xC153, + 0x9959, 0xC156, 0x995A, 0xC157, 0x9961, 0xC159, 0x9962, 0xC15A, 0x9963, 0xC15B, 0x9964, 0xC15D, 0x9965, 0xC15E, 0x9966, 0xC15F, + 0x9967, 0xC160, 0x9968, 0xC161, 0x9969, 0xC162, 0x996A, 0xC163, 0x996B, 0xC166, 0x996C, 0xC16A, 0x996D, 0xC16B, 0x996E, 0xC16C, + 0x996F, 0xC16D, 0x9970, 0xC16E, 0x9971, 0xC16F, 0x9972, 0xC171, 0x9973, 0xC172, 0x9974, 0xC173, 0x9975, 0xC175, 0x9976, 0xC176, + 0x9977, 0xC177, 0x9978, 0xC179, 0x9979, 0xC17A, 0x997A, 0xC17B, 0x9981, 0xC17C, 0x9982, 0xC17D, 0x9983, 0xC17E, 0x9984, 0xC17F, + 0x9985, 0xC180, 0x9986, 0xC181, 0x9987, 0xC182, 0x9988, 0xC183, 0x9989, 0xC184, 0x998A, 0xC186, 0x998B, 0xC187, 0x998C, 0xC188, + 0x998D, 0xC189, 0x998E, 0xC18A, 0x998F, 0xC18B, 0x9990, 0xC18F, 0x9991, 0xC191, 0x9992, 0xC192, 0x9993, 0xC193, 0x9994, 0xC195, + 0x9995, 0xC197, 0x9996, 0xC198, 0x9997, 0xC199, 0x9998, 0xC19A, 0x9999, 0xC19B, 0x999A, 0xC19E, 0x999B, 0xC1A0, 0x999C, 0xC1A2, + 0x999D, 0xC1A3, 0x999E, 0xC1A4, 0x999F, 0xC1A6, 0x99A0, 0xC1A7, 0x99A1, 0xC1AA, 0x99A2, 0xC1AB, 0x99A3, 0xC1AD, 0x99A4, 0xC1AE, + 0x99A5, 0xC1AF, 0x99A6, 0xC1B1, 0x99A7, 0xC1B2, 0x99A8, 0xC1B3, 0x99A9, 0xC1B4, 0x99AA, 0xC1B5, 0x99AB, 0xC1B6, 0x99AC, 0xC1B7, + 0x99AD, 0xC1B8, 0x99AE, 0xC1B9, 0x99AF, 0xC1BA, 0x99B0, 0xC1BB, 0x99B1, 0xC1BC, 0x99B2, 0xC1BE, 0x99B3, 0xC1BF, 0x99B4, 0xC1C0, + 0x99B5, 0xC1C1, 0x99B6, 0xC1C2, 0x99B7, 0xC1C3, 0x99B8, 0xC1C5, 0x99B9, 0xC1C6, 0x99BA, 0xC1C7, 0x99BB, 0xC1C9, 0x99BC, 0xC1CA, + 0x99BD, 0xC1CB, 0x99BE, 0xC1CD, 0x99BF, 0xC1CE, 0x99C0, 0xC1CF, 0x99C1, 0xC1D0, 0x99C2, 0xC1D1, 0x99C3, 0xC1D2, 0x99C4, 0xC1D3, + 0x99C5, 0xC1D5, 0x99C6, 0xC1D6, 0x99C7, 0xC1D9, 0x99C8, 0xC1DA, 0x99C9, 0xC1DB, 0x99CA, 0xC1DC, 0x99CB, 0xC1DD, 0x99CC, 0xC1DE, + 0x99CD, 0xC1DF, 0x99CE, 0xC1E1, 0x99CF, 0xC1E2, 0x99D0, 0xC1E3, 0x99D1, 0xC1E5, 0x99D2, 0xC1E6, 0x99D3, 0xC1E7, 0x99D4, 0xC1E9, + 0x99D5, 0xC1EA, 0x99D6, 0xC1EB, 0x99D7, 0xC1EC, 0x99D8, 0xC1ED, 0x99D9, 0xC1EE, 0x99DA, 0xC1EF, 0x99DB, 0xC1F2, 0x99DC, 0xC1F4, + 0x99DD, 0xC1F5, 0x99DE, 0xC1F6, 0x99DF, 0xC1F7, 0x99E0, 0xC1F8, 0x99E1, 0xC1F9, 0x99E2, 0xC1FA, 0x99E3, 0xC1FB, 0x99E4, 0xC1FE, + 0x99E5, 0xC1FF, 0x99E6, 0xC201, 0x99E7, 0xC202, 0x99E8, 0xC203, 0x99E9, 0xC205, 0x99EA, 0xC206, 0x99EB, 0xC207, 0x99EC, 0xC208, + 0x99ED, 0xC209, 0x99EE, 0xC20A, 0x99EF, 0xC20B, 0x99F0, 0xC20E, 0x99F1, 0xC210, 0x99F2, 0xC212, 0x99F3, 0xC213, 0x99F4, 0xC214, + 0x99F5, 0xC215, 0x99F6, 0xC216, 0x99F7, 0xC217, 0x99F8, 0xC21A, 0x99F9, 0xC21B, 0x99FA, 0xC21D, 0x99FB, 0xC21E, 0x99FC, 0xC221, + 0x99FD, 0xC222, 0x99FE, 0xC223, 0x9A41, 0xC224, 0x9A42, 0xC225, 0x9A43, 0xC226, 0x9A44, 0xC227, 0x9A45, 0xC22A, 0x9A46, 0xC22C, + 0x9A47, 0xC22E, 0x9A48, 0xC230, 0x9A49, 0xC233, 0x9A4A, 0xC235, 0x9A4B, 0xC236, 0x9A4C, 0xC237, 0x9A4D, 0xC238, 0x9A4E, 0xC239, + 0x9A4F, 0xC23A, 0x9A50, 0xC23B, 0x9A51, 0xC23C, 0x9A52, 0xC23D, 0x9A53, 0xC23E, 0x9A54, 0xC23F, 0x9A55, 0xC240, 0x9A56, 0xC241, + 0x9A57, 0xC242, 0x9A58, 0xC243, 0x9A59, 0xC244, 0x9A5A, 0xC245, 0x9A61, 0xC246, 0x9A62, 0xC247, 0x9A63, 0xC249, 0x9A64, 0xC24A, + 0x9A65, 0xC24B, 0x9A66, 0xC24C, 0x9A67, 0xC24D, 0x9A68, 0xC24E, 0x9A69, 0xC24F, 0x9A6A, 0xC252, 0x9A6B, 0xC253, 0x9A6C, 0xC255, + 0x9A6D, 0xC256, 0x9A6E, 0xC257, 0x9A6F, 0xC259, 0x9A70, 0xC25A, 0x9A71, 0xC25B, 0x9A72, 0xC25C, 0x9A73, 0xC25D, 0x9A74, 0xC25E, + 0x9A75, 0xC25F, 0x9A76, 0xC261, 0x9A77, 0xC262, 0x9A78, 0xC263, 0x9A79, 0xC264, 0x9A7A, 0xC266, 0x9A81, 0xC267, 0x9A82, 0xC268, + 0x9A83, 0xC269, 0x9A84, 0xC26A, 0x9A85, 0xC26B, 0x9A86, 0xC26E, 0x9A87, 0xC26F, 0x9A88, 0xC271, 0x9A89, 0xC272, 0x9A8A, 0xC273, + 0x9A8B, 0xC275, 0x9A8C, 0xC276, 0x9A8D, 0xC277, 0x9A8E, 0xC278, 0x9A8F, 0xC279, 0x9A90, 0xC27A, 0x9A91, 0xC27B, 0x9A92, 0xC27E, + 0x9A93, 0xC280, 0x9A94, 0xC282, 0x9A95, 0xC283, 0x9A96, 0xC284, 0x9A97, 0xC285, 0x9A98, 0xC286, 0x9A99, 0xC287, 0x9A9A, 0xC28A, + 0x9A9B, 0xC28B, 0x9A9C, 0xC28C, 0x9A9D, 0xC28D, 0x9A9E, 0xC28E, 0x9A9F, 0xC28F, 0x9AA0, 0xC291, 0x9AA1, 0xC292, 0x9AA2, 0xC293, + 0x9AA3, 0xC294, 0x9AA4, 0xC295, 0x9AA5, 0xC296, 0x9AA6, 0xC297, 0x9AA7, 0xC299, 0x9AA8, 0xC29A, 0x9AA9, 0xC29C, 0x9AAA, 0xC29E, + 0x9AAB, 0xC29F, 0x9AAC, 0xC2A0, 0x9AAD, 0xC2A1, 0x9AAE, 0xC2A2, 0x9AAF, 0xC2A3, 0x9AB0, 0xC2A6, 0x9AB1, 0xC2A7, 0x9AB2, 0xC2A9, + 0x9AB3, 0xC2AA, 0x9AB4, 0xC2AB, 0x9AB5, 0xC2AE, 0x9AB6, 0xC2AF, 0x9AB7, 0xC2B0, 0x9AB8, 0xC2B1, 0x9AB9, 0xC2B2, 0x9ABA, 0xC2B3, + 0x9ABB, 0xC2B6, 0x9ABC, 0xC2B8, 0x9ABD, 0xC2BA, 0x9ABE, 0xC2BB, 0x9ABF, 0xC2BC, 0x9AC0, 0xC2BD, 0x9AC1, 0xC2BE, 0x9AC2, 0xC2BF, + 0x9AC3, 0xC2C0, 0x9AC4, 0xC2C1, 0x9AC5, 0xC2C2, 0x9AC6, 0xC2C3, 0x9AC7, 0xC2C4, 0x9AC8, 0xC2C5, 0x9AC9, 0xC2C6, 0x9ACA, 0xC2C7, + 0x9ACB, 0xC2C8, 0x9ACC, 0xC2C9, 0x9ACD, 0xC2CA, 0x9ACE, 0xC2CB, 0x9ACF, 0xC2CC, 0x9AD0, 0xC2CD, 0x9AD1, 0xC2CE, 0x9AD2, 0xC2CF, + 0x9AD3, 0xC2D0, 0x9AD4, 0xC2D1, 0x9AD5, 0xC2D2, 0x9AD6, 0xC2D3, 0x9AD7, 0xC2D4, 0x9AD8, 0xC2D5, 0x9AD9, 0xC2D6, 0x9ADA, 0xC2D7, + 0x9ADB, 0xC2D8, 0x9ADC, 0xC2D9, 0x9ADD, 0xC2DA, 0x9ADE, 0xC2DB, 0x9ADF, 0xC2DE, 0x9AE0, 0xC2DF, 0x9AE1, 0xC2E1, 0x9AE2, 0xC2E2, + 0x9AE3, 0xC2E5, 0x9AE4, 0xC2E6, 0x9AE5, 0xC2E7, 0x9AE6, 0xC2E8, 0x9AE7, 0xC2E9, 0x9AE8, 0xC2EA, 0x9AE9, 0xC2EE, 0x9AEA, 0xC2F0, + 0x9AEB, 0xC2F2, 0x9AEC, 0xC2F3, 0x9AED, 0xC2F4, 0x9AEE, 0xC2F5, 0x9AEF, 0xC2F7, 0x9AF0, 0xC2FA, 0x9AF1, 0xC2FD, 0x9AF2, 0xC2FE, + 0x9AF3, 0xC2FF, 0x9AF4, 0xC301, 0x9AF5, 0xC302, 0x9AF6, 0xC303, 0x9AF7, 0xC304, 0x9AF8, 0xC305, 0x9AF9, 0xC306, 0x9AFA, 0xC307, + 0x9AFB, 0xC30A, 0x9AFC, 0xC30B, 0x9AFD, 0xC30E, 0x9AFE, 0xC30F, 0x9B41, 0xC310, 0x9B42, 0xC311, 0x9B43, 0xC312, 0x9B44, 0xC316, + 0x9B45, 0xC317, 0x9B46, 0xC319, 0x9B47, 0xC31A, 0x9B48, 0xC31B, 0x9B49, 0xC31D, 0x9B4A, 0xC31E, 0x9B4B, 0xC31F, 0x9B4C, 0xC320, + 0x9B4D, 0xC321, 0x9B4E, 0xC322, 0x9B4F, 0xC323, 0x9B50, 0xC326, 0x9B51, 0xC327, 0x9B52, 0xC32A, 0x9B53, 0xC32B, 0x9B54, 0xC32C, + 0x9B55, 0xC32D, 0x9B56, 0xC32E, 0x9B57, 0xC32F, 0x9B58, 0xC330, 0x9B59, 0xC331, 0x9B5A, 0xC332, 0x9B61, 0xC333, 0x9B62, 0xC334, + 0x9B63, 0xC335, 0x9B64, 0xC336, 0x9B65, 0xC337, 0x9B66, 0xC338, 0x9B67, 0xC339, 0x9B68, 0xC33A, 0x9B69, 0xC33B, 0x9B6A, 0xC33C, + 0x9B6B, 0xC33D, 0x9B6C, 0xC33E, 0x9B6D, 0xC33F, 0x9B6E, 0xC340, 0x9B6F, 0xC341, 0x9B70, 0xC342, 0x9B71, 0xC343, 0x9B72, 0xC344, + 0x9B73, 0xC346, 0x9B74, 0xC347, 0x9B75, 0xC348, 0x9B76, 0xC349, 0x9B77, 0xC34A, 0x9B78, 0xC34B, 0x9B79, 0xC34C, 0x9B7A, 0xC34D, + 0x9B81, 0xC34E, 0x9B82, 0xC34F, 0x9B83, 0xC350, 0x9B84, 0xC351, 0x9B85, 0xC352, 0x9B86, 0xC353, 0x9B87, 0xC354, 0x9B88, 0xC355, + 0x9B89, 0xC356, 0x9B8A, 0xC357, 0x9B8B, 0xC358, 0x9B8C, 0xC359, 0x9B8D, 0xC35A, 0x9B8E, 0xC35B, 0x9B8F, 0xC35C, 0x9B90, 0xC35D, + 0x9B91, 0xC35E, 0x9B92, 0xC35F, 0x9B93, 0xC360, 0x9B94, 0xC361, 0x9B95, 0xC362, 0x9B96, 0xC363, 0x9B97, 0xC364, 0x9B98, 0xC365, + 0x9B99, 0xC366, 0x9B9A, 0xC367, 0x9B9B, 0xC36A, 0x9B9C, 0xC36B, 0x9B9D, 0xC36D, 0x9B9E, 0xC36E, 0x9B9F, 0xC36F, 0x9BA0, 0xC371, + 0x9BA1, 0xC373, 0x9BA2, 0xC374, 0x9BA3, 0xC375, 0x9BA4, 0xC376, 0x9BA5, 0xC377, 0x9BA6, 0xC37A, 0x9BA7, 0xC37B, 0x9BA8, 0xC37E, + 0x9BA9, 0xC37F, 0x9BAA, 0xC380, 0x9BAB, 0xC381, 0x9BAC, 0xC382, 0x9BAD, 0xC383, 0x9BAE, 0xC385, 0x9BAF, 0xC386, 0x9BB0, 0xC387, + 0x9BB1, 0xC389, 0x9BB2, 0xC38A, 0x9BB3, 0xC38B, 0x9BB4, 0xC38D, 0x9BB5, 0xC38E, 0x9BB6, 0xC38F, 0x9BB7, 0xC390, 0x9BB8, 0xC391, + 0x9BB9, 0xC392, 0x9BBA, 0xC393, 0x9BBB, 0xC394, 0x9BBC, 0xC395, 0x9BBD, 0xC396, 0x9BBE, 0xC397, 0x9BBF, 0xC398, 0x9BC0, 0xC399, + 0x9BC1, 0xC39A, 0x9BC2, 0xC39B, 0x9BC3, 0xC39C, 0x9BC4, 0xC39D, 0x9BC5, 0xC39E, 0x9BC6, 0xC39F, 0x9BC7, 0xC3A0, 0x9BC8, 0xC3A1, + 0x9BC9, 0xC3A2, 0x9BCA, 0xC3A3, 0x9BCB, 0xC3A4, 0x9BCC, 0xC3A5, 0x9BCD, 0xC3A6, 0x9BCE, 0xC3A7, 0x9BCF, 0xC3A8, 0x9BD0, 0xC3A9, + 0x9BD1, 0xC3AA, 0x9BD2, 0xC3AB, 0x9BD3, 0xC3AC, 0x9BD4, 0xC3AD, 0x9BD5, 0xC3AE, 0x9BD6, 0xC3AF, 0x9BD7, 0xC3B0, 0x9BD8, 0xC3B1, + 0x9BD9, 0xC3B2, 0x9BDA, 0xC3B3, 0x9BDB, 0xC3B4, 0x9BDC, 0xC3B5, 0x9BDD, 0xC3B6, 0x9BDE, 0xC3B7, 0x9BDF, 0xC3B8, 0x9BE0, 0xC3B9, + 0x9BE1, 0xC3BA, 0x9BE2, 0xC3BB, 0x9BE3, 0xC3BC, 0x9BE4, 0xC3BD, 0x9BE5, 0xC3BE, 0x9BE6, 0xC3BF, 0x9BE7, 0xC3C1, 0x9BE8, 0xC3C2, + 0x9BE9, 0xC3C3, 0x9BEA, 0xC3C4, 0x9BEB, 0xC3C5, 0x9BEC, 0xC3C6, 0x9BED, 0xC3C7, 0x9BEE, 0xC3C8, 0x9BEF, 0xC3C9, 0x9BF0, 0xC3CA, + 0x9BF1, 0xC3CB, 0x9BF2, 0xC3CC, 0x9BF3, 0xC3CD, 0x9BF4, 0xC3CE, 0x9BF5, 0xC3CF, 0x9BF6, 0xC3D0, 0x9BF7, 0xC3D1, 0x9BF8, 0xC3D2, + 0x9BF9, 0xC3D3, 0x9BFA, 0xC3D4, 0x9BFB, 0xC3D5, 0x9BFC, 0xC3D6, 0x9BFD, 0xC3D7, 0x9BFE, 0xC3DA, 0x9C41, 0xC3DB, 0x9C42, 0xC3DD, + 0x9C43, 0xC3DE, 0x9C44, 0xC3E1, 0x9C45, 0xC3E3, 0x9C46, 0xC3E4, 0x9C47, 0xC3E5, 0x9C48, 0xC3E6, 0x9C49, 0xC3E7, 0x9C4A, 0xC3EA, + 0x9C4B, 0xC3EB, 0x9C4C, 0xC3EC, 0x9C4D, 0xC3EE, 0x9C4E, 0xC3EF, 0x9C4F, 0xC3F0, 0x9C50, 0xC3F1, 0x9C51, 0xC3F2, 0x9C52, 0xC3F3, + 0x9C53, 0xC3F6, 0x9C54, 0xC3F7, 0x9C55, 0xC3F9, 0x9C56, 0xC3FA, 0x9C57, 0xC3FB, 0x9C58, 0xC3FC, 0x9C59, 0xC3FD, 0x9C5A, 0xC3FE, + 0x9C61, 0xC3FF, 0x9C62, 0xC400, 0x9C63, 0xC401, 0x9C64, 0xC402, 0x9C65, 0xC403, 0x9C66, 0xC404, 0x9C67, 0xC405, 0x9C68, 0xC406, + 0x9C69, 0xC407, 0x9C6A, 0xC409, 0x9C6B, 0xC40A, 0x9C6C, 0xC40B, 0x9C6D, 0xC40C, 0x9C6E, 0xC40D, 0x9C6F, 0xC40E, 0x9C70, 0xC40F, + 0x9C71, 0xC411, 0x9C72, 0xC412, 0x9C73, 0xC413, 0x9C74, 0xC414, 0x9C75, 0xC415, 0x9C76, 0xC416, 0x9C77, 0xC417, 0x9C78, 0xC418, + 0x9C79, 0xC419, 0x9C7A, 0xC41A, 0x9C81, 0xC41B, 0x9C82, 0xC41C, 0x9C83, 0xC41D, 0x9C84, 0xC41E, 0x9C85, 0xC41F, 0x9C86, 0xC420, + 0x9C87, 0xC421, 0x9C88, 0xC422, 0x9C89, 0xC423, 0x9C8A, 0xC425, 0x9C8B, 0xC426, 0x9C8C, 0xC427, 0x9C8D, 0xC428, 0x9C8E, 0xC429, + 0x9C8F, 0xC42A, 0x9C90, 0xC42B, 0x9C91, 0xC42D, 0x9C92, 0xC42E, 0x9C93, 0xC42F, 0x9C94, 0xC431, 0x9C95, 0xC432, 0x9C96, 0xC433, + 0x9C97, 0xC435, 0x9C98, 0xC436, 0x9C99, 0xC437, 0x9C9A, 0xC438, 0x9C9B, 0xC439, 0x9C9C, 0xC43A, 0x9C9D, 0xC43B, 0x9C9E, 0xC43E, + 0x9C9F, 0xC43F, 0x9CA0, 0xC440, 0x9CA1, 0xC441, 0x9CA2, 0xC442, 0x9CA3, 0xC443, 0x9CA4, 0xC444, 0x9CA5, 0xC445, 0x9CA6, 0xC446, + 0x9CA7, 0xC447, 0x9CA8, 0xC449, 0x9CA9, 0xC44A, 0x9CAA, 0xC44B, 0x9CAB, 0xC44C, 0x9CAC, 0xC44D, 0x9CAD, 0xC44E, 0x9CAE, 0xC44F, + 0x9CAF, 0xC450, 0x9CB0, 0xC451, 0x9CB1, 0xC452, 0x9CB2, 0xC453, 0x9CB3, 0xC454, 0x9CB4, 0xC455, 0x9CB5, 0xC456, 0x9CB6, 0xC457, + 0x9CB7, 0xC458, 0x9CB8, 0xC459, 0x9CB9, 0xC45A, 0x9CBA, 0xC45B, 0x9CBB, 0xC45C, 0x9CBC, 0xC45D, 0x9CBD, 0xC45E, 0x9CBE, 0xC45F, + 0x9CBF, 0xC460, 0x9CC0, 0xC461, 0x9CC1, 0xC462, 0x9CC2, 0xC463, 0x9CC3, 0xC466, 0x9CC4, 0xC467, 0x9CC5, 0xC469, 0x9CC6, 0xC46A, + 0x9CC7, 0xC46B, 0x9CC8, 0xC46D, 0x9CC9, 0xC46E, 0x9CCA, 0xC46F, 0x9CCB, 0xC470, 0x9CCC, 0xC471, 0x9CCD, 0xC472, 0x9CCE, 0xC473, + 0x9CCF, 0xC476, 0x9CD0, 0xC477, 0x9CD1, 0xC478, 0x9CD2, 0xC47A, 0x9CD3, 0xC47B, 0x9CD4, 0xC47C, 0x9CD5, 0xC47D, 0x9CD6, 0xC47E, + 0x9CD7, 0xC47F, 0x9CD8, 0xC481, 0x9CD9, 0xC482, 0x9CDA, 0xC483, 0x9CDB, 0xC484, 0x9CDC, 0xC485, 0x9CDD, 0xC486, 0x9CDE, 0xC487, + 0x9CDF, 0xC488, 0x9CE0, 0xC489, 0x9CE1, 0xC48A, 0x9CE2, 0xC48B, 0x9CE3, 0xC48C, 0x9CE4, 0xC48D, 0x9CE5, 0xC48E, 0x9CE6, 0xC48F, + 0x9CE7, 0xC490, 0x9CE8, 0xC491, 0x9CE9, 0xC492, 0x9CEA, 0xC493, 0x9CEB, 0xC495, 0x9CEC, 0xC496, 0x9CED, 0xC497, 0x9CEE, 0xC498, + 0x9CEF, 0xC499, 0x9CF0, 0xC49A, 0x9CF1, 0xC49B, 0x9CF2, 0xC49D, 0x9CF3, 0xC49E, 0x9CF4, 0xC49F, 0x9CF5, 0xC4A0, 0x9CF6, 0xC4A1, + 0x9CF7, 0xC4A2, 0x9CF8, 0xC4A3, 0x9CF9, 0xC4A4, 0x9CFA, 0xC4A5, 0x9CFB, 0xC4A6, 0x9CFC, 0xC4A7, 0x9CFD, 0xC4A8, 0x9CFE, 0xC4A9, + 0x9D41, 0xC4AA, 0x9D42, 0xC4AB, 0x9D43, 0xC4AC, 0x9D44, 0xC4AD, 0x9D45, 0xC4AE, 0x9D46, 0xC4AF, 0x9D47, 0xC4B0, 0x9D48, 0xC4B1, + 0x9D49, 0xC4B2, 0x9D4A, 0xC4B3, 0x9D4B, 0xC4B4, 0x9D4C, 0xC4B5, 0x9D4D, 0xC4B6, 0x9D4E, 0xC4B7, 0x9D4F, 0xC4B9, 0x9D50, 0xC4BA, + 0x9D51, 0xC4BB, 0x9D52, 0xC4BD, 0x9D53, 0xC4BE, 0x9D54, 0xC4BF, 0x9D55, 0xC4C0, 0x9D56, 0xC4C1, 0x9D57, 0xC4C2, 0x9D58, 0xC4C3, + 0x9D59, 0xC4C4, 0x9D5A, 0xC4C5, 0x9D61, 0xC4C6, 0x9D62, 0xC4C7, 0x9D63, 0xC4C8, 0x9D64, 0xC4C9, 0x9D65, 0xC4CA, 0x9D66, 0xC4CB, + 0x9D67, 0xC4CC, 0x9D68, 0xC4CD, 0x9D69, 0xC4CE, 0x9D6A, 0xC4CF, 0x9D6B, 0xC4D0, 0x9D6C, 0xC4D1, 0x9D6D, 0xC4D2, 0x9D6E, 0xC4D3, + 0x9D6F, 0xC4D4, 0x9D70, 0xC4D5, 0x9D71, 0xC4D6, 0x9D72, 0xC4D7, 0x9D73, 0xC4D8, 0x9D74, 0xC4D9, 0x9D75, 0xC4DA, 0x9D76, 0xC4DB, + 0x9D77, 0xC4DC, 0x9D78, 0xC4DD, 0x9D79, 0xC4DE, 0x9D7A, 0xC4DF, 0x9D81, 0xC4E0, 0x9D82, 0xC4E1, 0x9D83, 0xC4E2, 0x9D84, 0xC4E3, + 0x9D85, 0xC4E4, 0x9D86, 0xC4E5, 0x9D87, 0xC4E6, 0x9D88, 0xC4E7, 0x9D89, 0xC4E8, 0x9D8A, 0xC4EA, 0x9D8B, 0xC4EB, 0x9D8C, 0xC4EC, + 0x9D8D, 0xC4ED, 0x9D8E, 0xC4EE, 0x9D8F, 0xC4EF, 0x9D90, 0xC4F2, 0x9D91, 0xC4F3, 0x9D92, 0xC4F5, 0x9D93, 0xC4F6, 0x9D94, 0xC4F7, + 0x9D95, 0xC4F9, 0x9D96, 0xC4FB, 0x9D97, 0xC4FC, 0x9D98, 0xC4FD, 0x9D99, 0xC4FE, 0x9D9A, 0xC502, 0x9D9B, 0xC503, 0x9D9C, 0xC504, + 0x9D9D, 0xC505, 0x9D9E, 0xC506, 0x9D9F, 0xC507, 0x9DA0, 0xC508, 0x9DA1, 0xC509, 0x9DA2, 0xC50A, 0x9DA3, 0xC50B, 0x9DA4, 0xC50D, + 0x9DA5, 0xC50E, 0x9DA6, 0xC50F, 0x9DA7, 0xC511, 0x9DA8, 0xC512, 0x9DA9, 0xC513, 0x9DAA, 0xC515, 0x9DAB, 0xC516, 0x9DAC, 0xC517, + 0x9DAD, 0xC518, 0x9DAE, 0xC519, 0x9DAF, 0xC51A, 0x9DB0, 0xC51B, 0x9DB1, 0xC51D, 0x9DB2, 0xC51E, 0x9DB3, 0xC51F, 0x9DB4, 0xC520, + 0x9DB5, 0xC521, 0x9DB6, 0xC522, 0x9DB7, 0xC523, 0x9DB8, 0xC524, 0x9DB9, 0xC525, 0x9DBA, 0xC526, 0x9DBB, 0xC527, 0x9DBC, 0xC52A, + 0x9DBD, 0xC52B, 0x9DBE, 0xC52D, 0x9DBF, 0xC52E, 0x9DC0, 0xC52F, 0x9DC1, 0xC531, 0x9DC2, 0xC532, 0x9DC3, 0xC533, 0x9DC4, 0xC534, + 0x9DC5, 0xC535, 0x9DC6, 0xC536, 0x9DC7, 0xC537, 0x9DC8, 0xC53A, 0x9DC9, 0xC53C, 0x9DCA, 0xC53E, 0x9DCB, 0xC53F, 0x9DCC, 0xC540, + 0x9DCD, 0xC541, 0x9DCE, 0xC542, 0x9DCF, 0xC543, 0x9DD0, 0xC546, 0x9DD1, 0xC547, 0x9DD2, 0xC54B, 0x9DD3, 0xC54F, 0x9DD4, 0xC550, + 0x9DD5, 0xC551, 0x9DD6, 0xC552, 0x9DD7, 0xC556, 0x9DD8, 0xC55A, 0x9DD9, 0xC55B, 0x9DDA, 0xC55C, 0x9DDB, 0xC55F, 0x9DDC, 0xC562, + 0x9DDD, 0xC563, 0x9DDE, 0xC565, 0x9DDF, 0xC566, 0x9DE0, 0xC567, 0x9DE1, 0xC569, 0x9DE2, 0xC56A, 0x9DE3, 0xC56B, 0x9DE4, 0xC56C, + 0x9DE5, 0xC56D, 0x9DE6, 0xC56E, 0x9DE7, 0xC56F, 0x9DE8, 0xC572, 0x9DE9, 0xC576, 0x9DEA, 0xC577, 0x9DEB, 0xC578, 0x9DEC, 0xC579, + 0x9DED, 0xC57A, 0x9DEE, 0xC57B, 0x9DEF, 0xC57E, 0x9DF0, 0xC57F, 0x9DF1, 0xC581, 0x9DF2, 0xC582, 0x9DF3, 0xC583, 0x9DF4, 0xC585, + 0x9DF5, 0xC586, 0x9DF6, 0xC588, 0x9DF7, 0xC589, 0x9DF8, 0xC58A, 0x9DF9, 0xC58B, 0x9DFA, 0xC58E, 0x9DFB, 0xC590, 0x9DFC, 0xC592, + 0x9DFD, 0xC593, 0x9DFE, 0xC594, 0x9E41, 0xC596, 0x9E42, 0xC599, 0x9E43, 0xC59A, 0x9E44, 0xC59B, 0x9E45, 0xC59D, 0x9E46, 0xC59E, + 0x9E47, 0xC59F, 0x9E48, 0xC5A1, 0x9E49, 0xC5A2, 0x9E4A, 0xC5A3, 0x9E4B, 0xC5A4, 0x9E4C, 0xC5A5, 0x9E4D, 0xC5A6, 0x9E4E, 0xC5A7, + 0x9E4F, 0xC5A8, 0x9E50, 0xC5AA, 0x9E51, 0xC5AB, 0x9E52, 0xC5AC, 0x9E53, 0xC5AD, 0x9E54, 0xC5AE, 0x9E55, 0xC5AF, 0x9E56, 0xC5B0, + 0x9E57, 0xC5B1, 0x9E58, 0xC5B2, 0x9E59, 0xC5B3, 0x9E5A, 0xC5B6, 0x9E61, 0xC5B7, 0x9E62, 0xC5BA, 0x9E63, 0xC5BF, 0x9E64, 0xC5C0, + 0x9E65, 0xC5C1, 0x9E66, 0xC5C2, 0x9E67, 0xC5C3, 0x9E68, 0xC5CB, 0x9E69, 0xC5CD, 0x9E6A, 0xC5CF, 0x9E6B, 0xC5D2, 0x9E6C, 0xC5D3, + 0x9E6D, 0xC5D5, 0x9E6E, 0xC5D6, 0x9E6F, 0xC5D7, 0x9E70, 0xC5D9, 0x9E71, 0xC5DA, 0x9E72, 0xC5DB, 0x9E73, 0xC5DC, 0x9E74, 0xC5DD, + 0x9E75, 0xC5DE, 0x9E76, 0xC5DF, 0x9E77, 0xC5E2, 0x9E78, 0xC5E4, 0x9E79, 0xC5E6, 0x9E7A, 0xC5E7, 0x9E81, 0xC5E8, 0x9E82, 0xC5E9, + 0x9E83, 0xC5EA, 0x9E84, 0xC5EB, 0x9E85, 0xC5EF, 0x9E86, 0xC5F1, 0x9E87, 0xC5F2, 0x9E88, 0xC5F3, 0x9E89, 0xC5F5, 0x9E8A, 0xC5F8, + 0x9E8B, 0xC5F9, 0x9E8C, 0xC5FA, 0x9E8D, 0xC5FB, 0x9E8E, 0xC602, 0x9E8F, 0xC603, 0x9E90, 0xC604, 0x9E91, 0xC609, 0x9E92, 0xC60A, + 0x9E93, 0xC60B, 0x9E94, 0xC60D, 0x9E95, 0xC60E, 0x9E96, 0xC60F, 0x9E97, 0xC611, 0x9E98, 0xC612, 0x9E99, 0xC613, 0x9E9A, 0xC614, + 0x9E9B, 0xC615, 0x9E9C, 0xC616, 0x9E9D, 0xC617, 0x9E9E, 0xC61A, 0x9E9F, 0xC61D, 0x9EA0, 0xC61E, 0x9EA1, 0xC61F, 0x9EA2, 0xC620, + 0x9EA3, 0xC621, 0x9EA4, 0xC622, 0x9EA5, 0xC623, 0x9EA6, 0xC626, 0x9EA7, 0xC627, 0x9EA8, 0xC629, 0x9EA9, 0xC62A, 0x9EAA, 0xC62B, + 0x9EAB, 0xC62F, 0x9EAC, 0xC631, 0x9EAD, 0xC632, 0x9EAE, 0xC636, 0x9EAF, 0xC638, 0x9EB0, 0xC63A, 0x9EB1, 0xC63C, 0x9EB2, 0xC63D, + 0x9EB3, 0xC63E, 0x9EB4, 0xC63F, 0x9EB5, 0xC642, 0x9EB6, 0xC643, 0x9EB7, 0xC645, 0x9EB8, 0xC646, 0x9EB9, 0xC647, 0x9EBA, 0xC649, + 0x9EBB, 0xC64A, 0x9EBC, 0xC64B, 0x9EBD, 0xC64C, 0x9EBE, 0xC64D, 0x9EBF, 0xC64E, 0x9EC0, 0xC64F, 0x9EC1, 0xC652, 0x9EC2, 0xC656, + 0x9EC3, 0xC657, 0x9EC4, 0xC658, 0x9EC5, 0xC659, 0x9EC6, 0xC65A, 0x9EC7, 0xC65B, 0x9EC8, 0xC65E, 0x9EC9, 0xC65F, 0x9ECA, 0xC661, + 0x9ECB, 0xC662, 0x9ECC, 0xC663, 0x9ECD, 0xC664, 0x9ECE, 0xC665, 0x9ECF, 0xC666, 0x9ED0, 0xC667, 0x9ED1, 0xC668, 0x9ED2, 0xC669, + 0x9ED3, 0xC66A, 0x9ED4, 0xC66B, 0x9ED5, 0xC66D, 0x9ED6, 0xC66E, 0x9ED7, 0xC670, 0x9ED8, 0xC672, 0x9ED9, 0xC673, 0x9EDA, 0xC674, + 0x9EDB, 0xC675, 0x9EDC, 0xC676, 0x9EDD, 0xC677, 0x9EDE, 0xC67A, 0x9EDF, 0xC67B, 0x9EE0, 0xC67D, 0x9EE1, 0xC67E, 0x9EE2, 0xC67F, + 0x9EE3, 0xC681, 0x9EE4, 0xC682, 0x9EE5, 0xC683, 0x9EE6, 0xC684, 0x9EE7, 0xC685, 0x9EE8, 0xC686, 0x9EE9, 0xC687, 0x9EEA, 0xC68A, + 0x9EEB, 0xC68C, 0x9EEC, 0xC68E, 0x9EED, 0xC68F, 0x9EEE, 0xC690, 0x9EEF, 0xC691, 0x9EF0, 0xC692, 0x9EF1, 0xC693, 0x9EF2, 0xC696, + 0x9EF3, 0xC697, 0x9EF4, 0xC699, 0x9EF5, 0xC69A, 0x9EF6, 0xC69B, 0x9EF7, 0xC69D, 0x9EF8, 0xC69E, 0x9EF9, 0xC69F, 0x9EFA, 0xC6A0, + 0x9EFB, 0xC6A1, 0x9EFC, 0xC6A2, 0x9EFD, 0xC6A3, 0x9EFE, 0xC6A6, 0x9F41, 0xC6A8, 0x9F42, 0xC6AA, 0x9F43, 0xC6AB, 0x9F44, 0xC6AC, + 0x9F45, 0xC6AD, 0x9F46, 0xC6AE, 0x9F47, 0xC6AF, 0x9F48, 0xC6B2, 0x9F49, 0xC6B3, 0x9F4A, 0xC6B5, 0x9F4B, 0xC6B6, 0x9F4C, 0xC6B7, + 0x9F4D, 0xC6BB, 0x9F4E, 0xC6BC, 0x9F4F, 0xC6BD, 0x9F50, 0xC6BE, 0x9F51, 0xC6BF, 0x9F52, 0xC6C2, 0x9F53, 0xC6C4, 0x9F54, 0xC6C6, + 0x9F55, 0xC6C7, 0x9F56, 0xC6C8, 0x9F57, 0xC6C9, 0x9F58, 0xC6CA, 0x9F59, 0xC6CB, 0x9F5A, 0xC6CE, 0x9F61, 0xC6CF, 0x9F62, 0xC6D1, + 0x9F63, 0xC6D2, 0x9F64, 0xC6D3, 0x9F65, 0xC6D5, 0x9F66, 0xC6D6, 0x9F67, 0xC6D7, 0x9F68, 0xC6D8, 0x9F69, 0xC6D9, 0x9F6A, 0xC6DA, + 0x9F6B, 0xC6DB, 0x9F6C, 0xC6DE, 0x9F6D, 0xC6DF, 0x9F6E, 0xC6E2, 0x9F6F, 0xC6E3, 0x9F70, 0xC6E4, 0x9F71, 0xC6E5, 0x9F72, 0xC6E6, + 0x9F73, 0xC6E7, 0x9F74, 0xC6EA, 0x9F75, 0xC6EB, 0x9F76, 0xC6ED, 0x9F77, 0xC6EE, 0x9F78, 0xC6EF, 0x9F79, 0xC6F1, 0x9F7A, 0xC6F2, + 0x9F81, 0xC6F3, 0x9F82, 0xC6F4, 0x9F83, 0xC6F5, 0x9F84, 0xC6F6, 0x9F85, 0xC6F7, 0x9F86, 0xC6FA, 0x9F87, 0xC6FB, 0x9F88, 0xC6FC, + 0x9F89, 0xC6FE, 0x9F8A, 0xC6FF, 0x9F8B, 0xC700, 0x9F8C, 0xC701, 0x9F8D, 0xC702, 0x9F8E, 0xC703, 0x9F8F, 0xC706, 0x9F90, 0xC707, + 0x9F91, 0xC709, 0x9F92, 0xC70A, 0x9F93, 0xC70B, 0x9F94, 0xC70D, 0x9F95, 0xC70E, 0x9F96, 0xC70F, 0x9F97, 0xC710, 0x9F98, 0xC711, + 0x9F99, 0xC712, 0x9F9A, 0xC713, 0x9F9B, 0xC716, 0x9F9C, 0xC718, 0x9F9D, 0xC71A, 0x9F9E, 0xC71B, 0x9F9F, 0xC71C, 0x9FA0, 0xC71D, + 0x9FA1, 0xC71E, 0x9FA2, 0xC71F, 0x9FA3, 0xC722, 0x9FA4, 0xC723, 0x9FA5, 0xC725, 0x9FA6, 0xC726, 0x9FA7, 0xC727, 0x9FA8, 0xC729, + 0x9FA9, 0xC72A, 0x9FAA, 0xC72B, 0x9FAB, 0xC72C, 0x9FAC, 0xC72D, 0x9FAD, 0xC72E, 0x9FAE, 0xC72F, 0x9FAF, 0xC732, 0x9FB0, 0xC734, + 0x9FB1, 0xC736, 0x9FB2, 0xC738, 0x9FB3, 0xC739, 0x9FB4, 0xC73A, 0x9FB5, 0xC73B, 0x9FB6, 0xC73E, 0x9FB7, 0xC73F, 0x9FB8, 0xC741, + 0x9FB9, 0xC742, 0x9FBA, 0xC743, 0x9FBB, 0xC745, 0x9FBC, 0xC746, 0x9FBD, 0xC747, 0x9FBE, 0xC748, 0x9FBF, 0xC749, 0x9FC0, 0xC74B, + 0x9FC1, 0xC74E, 0x9FC2, 0xC750, 0x9FC3, 0xC759, 0x9FC4, 0xC75A, 0x9FC5, 0xC75B, 0x9FC6, 0xC75D, 0x9FC7, 0xC75E, 0x9FC8, 0xC75F, + 0x9FC9, 0xC761, 0x9FCA, 0xC762, 0x9FCB, 0xC763, 0x9FCC, 0xC764, 0x9FCD, 0xC765, 0x9FCE, 0xC766, 0x9FCF, 0xC767, 0x9FD0, 0xC769, + 0x9FD1, 0xC76A, 0x9FD2, 0xC76C, 0x9FD3, 0xC76D, 0x9FD4, 0xC76E, 0x9FD5, 0xC76F, 0x9FD6, 0xC770, 0x9FD7, 0xC771, 0x9FD8, 0xC772, + 0x9FD9, 0xC773, 0x9FDA, 0xC776, 0x9FDB, 0xC777, 0x9FDC, 0xC779, 0x9FDD, 0xC77A, 0x9FDE, 0xC77B, 0x9FDF, 0xC77F, 0x9FE0, 0xC780, + 0x9FE1, 0xC781, 0x9FE2, 0xC782, 0x9FE3, 0xC786, 0x9FE4, 0xC78B, 0x9FE5, 0xC78C, 0x9FE6, 0xC78D, 0x9FE7, 0xC78F, 0x9FE8, 0xC792, + 0x9FE9, 0xC793, 0x9FEA, 0xC795, 0x9FEB, 0xC799, 0x9FEC, 0xC79B, 0x9FED, 0xC79C, 0x9FEE, 0xC79D, 0x9FEF, 0xC79E, 0x9FF0, 0xC79F, + 0x9FF1, 0xC7A2, 0x9FF2, 0xC7A7, 0x9FF3, 0xC7A8, 0x9FF4, 0xC7A9, 0x9FF5, 0xC7AA, 0x9FF6, 0xC7AB, 0x9FF7, 0xC7AE, 0x9FF8, 0xC7AF, + 0x9FF9, 0xC7B1, 0x9FFA, 0xC7B2, 0x9FFB, 0xC7B3, 0x9FFC, 0xC7B5, 0x9FFD, 0xC7B6, 0x9FFE, 0xC7B7, 0xA041, 0xC7B8, 0xA042, 0xC7B9, + 0xA043, 0xC7BA, 0xA044, 0xC7BB, 0xA045, 0xC7BE, 0xA046, 0xC7C2, 0xA047, 0xC7C3, 0xA048, 0xC7C4, 0xA049, 0xC7C5, 0xA04A, 0xC7C6, + 0xA04B, 0xC7C7, 0xA04C, 0xC7CA, 0xA04D, 0xC7CB, 0xA04E, 0xC7CD, 0xA04F, 0xC7CF, 0xA050, 0xC7D1, 0xA051, 0xC7D2, 0xA052, 0xC7D3, + 0xA053, 0xC7D4, 0xA054, 0xC7D5, 0xA055, 0xC7D6, 0xA056, 0xC7D7, 0xA057, 0xC7D9, 0xA058, 0xC7DA, 0xA059, 0xC7DB, 0xA05A, 0xC7DC, + 0xA061, 0xC7DE, 0xA062, 0xC7DF, 0xA063, 0xC7E0, 0xA064, 0xC7E1, 0xA065, 0xC7E2, 0xA066, 0xC7E3, 0xA067, 0xC7E5, 0xA068, 0xC7E6, + 0xA069, 0xC7E7, 0xA06A, 0xC7E9, 0xA06B, 0xC7EA, 0xA06C, 0xC7EB, 0xA06D, 0xC7ED, 0xA06E, 0xC7EE, 0xA06F, 0xC7EF, 0xA070, 0xC7F0, + 0xA071, 0xC7F1, 0xA072, 0xC7F2, 0xA073, 0xC7F3, 0xA074, 0xC7F4, 0xA075, 0xC7F5, 0xA076, 0xC7F6, 0xA077, 0xC7F7, 0xA078, 0xC7F8, + 0xA079, 0xC7F9, 0xA07A, 0xC7FA, 0xA081, 0xC7FB, 0xA082, 0xC7FC, 0xA083, 0xC7FD, 0xA084, 0xC7FE, 0xA085, 0xC7FF, 0xA086, 0xC802, + 0xA087, 0xC803, 0xA088, 0xC805, 0xA089, 0xC806, 0xA08A, 0xC807, 0xA08B, 0xC809, 0xA08C, 0xC80B, 0xA08D, 0xC80C, 0xA08E, 0xC80D, + 0xA08F, 0xC80E, 0xA090, 0xC80F, 0xA091, 0xC812, 0xA092, 0xC814, 0xA093, 0xC817, 0xA094, 0xC818, 0xA095, 0xC819, 0xA096, 0xC81A, + 0xA097, 0xC81B, 0xA098, 0xC81E, 0xA099, 0xC81F, 0xA09A, 0xC821, 0xA09B, 0xC822, 0xA09C, 0xC823, 0xA09D, 0xC825, 0xA09E, 0xC826, + 0xA09F, 0xC827, 0xA0A0, 0xC828, 0xA0A1, 0xC829, 0xA0A2, 0xC82A, 0xA0A3, 0xC82B, 0xA0A4, 0xC82E, 0xA0A5, 0xC830, 0xA0A6, 0xC832, + 0xA0A7, 0xC833, 0xA0A8, 0xC834, 0xA0A9, 0xC835, 0xA0AA, 0xC836, 0xA0AB, 0xC837, 0xA0AC, 0xC839, 0xA0AD, 0xC83A, 0xA0AE, 0xC83B, + 0xA0AF, 0xC83D, 0xA0B0, 0xC83E, 0xA0B1, 0xC83F, 0xA0B2, 0xC841, 0xA0B3, 0xC842, 0xA0B4, 0xC843, 0xA0B5, 0xC844, 0xA0B6, 0xC845, + 0xA0B7, 0xC846, 0xA0B8, 0xC847, 0xA0B9, 0xC84A, 0xA0BA, 0xC84B, 0xA0BB, 0xC84E, 0xA0BC, 0xC84F, 0xA0BD, 0xC850, 0xA0BE, 0xC851, + 0xA0BF, 0xC852, 0xA0C0, 0xC853, 0xA0C1, 0xC855, 0xA0C2, 0xC856, 0xA0C3, 0xC857, 0xA0C4, 0xC858, 0xA0C5, 0xC859, 0xA0C6, 0xC85A, + 0xA0C7, 0xC85B, 0xA0C8, 0xC85C, 0xA0C9, 0xC85D, 0xA0CA, 0xC85E, 0xA0CB, 0xC85F, 0xA0CC, 0xC860, 0xA0CD, 0xC861, 0xA0CE, 0xC862, + 0xA0CF, 0xC863, 0xA0D0, 0xC864, 0xA0D1, 0xC865, 0xA0D2, 0xC866, 0xA0D3, 0xC867, 0xA0D4, 0xC868, 0xA0D5, 0xC869, 0xA0D6, 0xC86A, + 0xA0D7, 0xC86B, 0xA0D8, 0xC86C, 0xA0D9, 0xC86D, 0xA0DA, 0xC86E, 0xA0DB, 0xC86F, 0xA0DC, 0xC872, 0xA0DD, 0xC873, 0xA0DE, 0xC875, + 0xA0DF, 0xC876, 0xA0E0, 0xC877, 0xA0E1, 0xC879, 0xA0E2, 0xC87B, 0xA0E3, 0xC87C, 0xA0E4, 0xC87D, 0xA0E5, 0xC87E, 0xA0E6, 0xC87F, + 0xA0E7, 0xC882, 0xA0E8, 0xC884, 0xA0E9, 0xC888, 0xA0EA, 0xC889, 0xA0EB, 0xC88A, 0xA0EC, 0xC88E, 0xA0ED, 0xC88F, 0xA0EE, 0xC890, + 0xA0EF, 0xC891, 0xA0F0, 0xC892, 0xA0F1, 0xC893, 0xA0F2, 0xC895, 0xA0F3, 0xC896, 0xA0F4, 0xC897, 0xA0F5, 0xC898, 0xA0F6, 0xC899, + 0xA0F7, 0xC89A, 0xA0F8, 0xC89B, 0xA0F9, 0xC89C, 0xA0FA, 0xC89E, 0xA0FB, 0xC8A0, 0xA0FC, 0xC8A2, 0xA0FD, 0xC8A3, 0xA0FE, 0xC8A4, + 0xA141, 0xC8A5, 0xA142, 0xC8A6, 0xA143, 0xC8A7, 0xA144, 0xC8A9, 0xA145, 0xC8AA, 0xA146, 0xC8AB, 0xA147, 0xC8AC, 0xA148, 0xC8AD, + 0xA149, 0xC8AE, 0xA14A, 0xC8AF, 0xA14B, 0xC8B0, 0xA14C, 0xC8B1, 0xA14D, 0xC8B2, 0xA14E, 0xC8B3, 0xA14F, 0xC8B4, 0xA150, 0xC8B5, + 0xA151, 0xC8B6, 0xA152, 0xC8B7, 0xA153, 0xC8B8, 0xA154, 0xC8B9, 0xA155, 0xC8BA, 0xA156, 0xC8BB, 0xA157, 0xC8BE, 0xA158, 0xC8BF, + 0xA159, 0xC8C0, 0xA15A, 0xC8C1, 0xA161, 0xC8C2, 0xA162, 0xC8C3, 0xA163, 0xC8C5, 0xA164, 0xC8C6, 0xA165, 0xC8C7, 0xA166, 0xC8C9, + 0xA167, 0xC8CA, 0xA168, 0xC8CB, 0xA169, 0xC8CD, 0xA16A, 0xC8CE, 0xA16B, 0xC8CF, 0xA16C, 0xC8D0, 0xA16D, 0xC8D1, 0xA16E, 0xC8D2, + 0xA16F, 0xC8D3, 0xA170, 0xC8D6, 0xA171, 0xC8D8, 0xA172, 0xC8DA, 0xA173, 0xC8DB, 0xA174, 0xC8DC, 0xA175, 0xC8DD, 0xA176, 0xC8DE, + 0xA177, 0xC8DF, 0xA178, 0xC8E2, 0xA179, 0xC8E3, 0xA17A, 0xC8E5, 0xA181, 0xC8E6, 0xA182, 0xC8E7, 0xA183, 0xC8E8, 0xA184, 0xC8E9, + 0xA185, 0xC8EA, 0xA186, 0xC8EB, 0xA187, 0xC8EC, 0xA188, 0xC8ED, 0xA189, 0xC8EE, 0xA18A, 0xC8EF, 0xA18B, 0xC8F0, 0xA18C, 0xC8F1, + 0xA18D, 0xC8F2, 0xA18E, 0xC8F3, 0xA18F, 0xC8F4, 0xA190, 0xC8F6, 0xA191, 0xC8F7, 0xA192, 0xC8F8, 0xA193, 0xC8F9, 0xA194, 0xC8FA, + 0xA195, 0xC8FB, 0xA196, 0xC8FE, 0xA197, 0xC8FF, 0xA198, 0xC901, 0xA199, 0xC902, 0xA19A, 0xC903, 0xA19B, 0xC907, 0xA19C, 0xC908, + 0xA19D, 0xC909, 0xA19E, 0xC90A, 0xA19F, 0xC90B, 0xA1A0, 0xC90E, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, + 0xA1A5, 0x2025, 0xA1A6, 0x2026, 0xA1A7, 0x00A8, 0xA1A8, 0x3003, 0xA1A9, 0x00AD, 0xA1AA, 0x2015, 0xA1AB, 0x2225, 0xA1AC, 0xFF3C, + 0xA1AD, 0x223C, 0xA1AE, 0x2018, 0xA1AF, 0x2019, 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, + 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3010, + 0xA1BD, 0x3011, 0xA1BE, 0x00B1, 0xA1BF, 0x00D7, 0xA1C0, 0x00F7, 0xA1C1, 0x2260, 0xA1C2, 0x2264, 0xA1C3, 0x2265, 0xA1C4, 0x221E, + 0xA1C5, 0x2234, 0xA1C6, 0x00B0, 0xA1C7, 0x2032, 0xA1C8, 0x2033, 0xA1C9, 0x2103, 0xA1CA, 0x212B, 0xA1CB, 0xFFE0, 0xA1CC, 0xFFE1, + 0xA1CD, 0xFFE5, 0xA1CE, 0x2642, 0xA1CF, 0x2640, 0xA1D0, 0x2220, 0xA1D1, 0x22A5, 0xA1D2, 0x2312, 0xA1D3, 0x2202, 0xA1D4, 0x2207, + 0xA1D5, 0x2261, 0xA1D6, 0x2252, 0xA1D7, 0x00A7, 0xA1D8, 0x203B, 0xA1D9, 0x2606, 0xA1DA, 0x2605, 0xA1DB, 0x25CB, 0xA1DC, 0x25CF, + 0xA1DD, 0x25CE, 0xA1DE, 0x25C7, 0xA1DF, 0x25C6, 0xA1E0, 0x25A1, 0xA1E1, 0x25A0, 0xA1E2, 0x25B3, 0xA1E3, 0x25B2, 0xA1E4, 0x25BD, + 0xA1E5, 0x25BC, 0xA1E6, 0x2192, 0xA1E7, 0x2190, 0xA1E8, 0x2191, 0xA1E9, 0x2193, 0xA1EA, 0x2194, 0xA1EB, 0x3013, 0xA1EC, 0x226A, + 0xA1ED, 0x226B, 0xA1EE, 0x221A, 0xA1EF, 0x223D, 0xA1F0, 0x221D, 0xA1F1, 0x2235, 0xA1F2, 0x222B, 0xA1F3, 0x222C, 0xA1F4, 0x2208, + 0xA1F5, 0x220B, 0xA1F6, 0x2286, 0xA1F7, 0x2287, 0xA1F8, 0x2282, 0xA1F9, 0x2283, 0xA1FA, 0x222A, 0xA1FB, 0x2229, 0xA1FC, 0x2227, + 0xA1FD, 0x2228, 0xA1FE, 0xFFE2, 0xA241, 0xC910, 0xA242, 0xC912, 0xA243, 0xC913, 0xA244, 0xC914, 0xA245, 0xC915, 0xA246, 0xC916, + 0xA247, 0xC917, 0xA248, 0xC919, 0xA249, 0xC91A, 0xA24A, 0xC91B, 0xA24B, 0xC91C, 0xA24C, 0xC91D, 0xA24D, 0xC91E, 0xA24E, 0xC91F, + 0xA24F, 0xC920, 0xA250, 0xC921, 0xA251, 0xC922, 0xA252, 0xC923, 0xA253, 0xC924, 0xA254, 0xC925, 0xA255, 0xC926, 0xA256, 0xC927, + 0xA257, 0xC928, 0xA258, 0xC929, 0xA259, 0xC92A, 0xA25A, 0xC92B, 0xA261, 0xC92D, 0xA262, 0xC92E, 0xA263, 0xC92F, 0xA264, 0xC930, + 0xA265, 0xC931, 0xA266, 0xC932, 0xA267, 0xC933, 0xA268, 0xC935, 0xA269, 0xC936, 0xA26A, 0xC937, 0xA26B, 0xC938, 0xA26C, 0xC939, + 0xA26D, 0xC93A, 0xA26E, 0xC93B, 0xA26F, 0xC93C, 0xA270, 0xC93D, 0xA271, 0xC93E, 0xA272, 0xC93F, 0xA273, 0xC940, 0xA274, 0xC941, + 0xA275, 0xC942, 0xA276, 0xC943, 0xA277, 0xC944, 0xA278, 0xC945, 0xA279, 0xC946, 0xA27A, 0xC947, 0xA281, 0xC948, 0xA282, 0xC949, + 0xA283, 0xC94A, 0xA284, 0xC94B, 0xA285, 0xC94C, 0xA286, 0xC94D, 0xA287, 0xC94E, 0xA288, 0xC94F, 0xA289, 0xC952, 0xA28A, 0xC953, + 0xA28B, 0xC955, 0xA28C, 0xC956, 0xA28D, 0xC957, 0xA28E, 0xC959, 0xA28F, 0xC95A, 0xA290, 0xC95B, 0xA291, 0xC95C, 0xA292, 0xC95D, + 0xA293, 0xC95E, 0xA294, 0xC95F, 0xA295, 0xC962, 0xA296, 0xC964, 0xA297, 0xC965, 0xA298, 0xC966, 0xA299, 0xC967, 0xA29A, 0xC968, + 0xA29B, 0xC969, 0xA29C, 0xC96A, 0xA29D, 0xC96B, 0xA29E, 0xC96D, 0xA29F, 0xC96E, 0xA2A0, 0xC96F, 0xA2A1, 0x21D2, 0xA2A2, 0x21D4, + 0xA2A3, 0x2200, 0xA2A4, 0x2203, 0xA2A5, 0x00B4, 0xA2A6, 0xFF5E, 0xA2A7, 0x02C7, 0xA2A8, 0x02D8, 0xA2A9, 0x02DD, 0xA2AA, 0x02DA, + 0xA2AB, 0x02D9, 0xA2AC, 0x00B8, 0xA2AD, 0x02DB, 0xA2AE, 0x00A1, 0xA2AF, 0x00BF, 0xA2B0, 0x02D0, 0xA2B1, 0x222E, 0xA2B2, 0x2211, + 0xA2B3, 0x220F, 0xA2B4, 0x00A4, 0xA2B5, 0x2109, 0xA2B6, 0x2030, 0xA2B7, 0x25C1, 0xA2B8, 0x25C0, 0xA2B9, 0x25B7, 0xA2BA, 0x25B6, + 0xA2BB, 0x2664, 0xA2BC, 0x2660, 0xA2BD, 0x2661, 0xA2BE, 0x2665, 0xA2BF, 0x2667, 0xA2C0, 0x2663, 0xA2C1, 0x2299, 0xA2C2, 0x25C8, + 0xA2C3, 0x25A3, 0xA2C4, 0x25D0, 0xA2C5, 0x25D1, 0xA2C6, 0x2592, 0xA2C7, 0x25A4, 0xA2C8, 0x25A5, 0xA2C9, 0x25A8, 0xA2CA, 0x25A7, + 0xA2CB, 0x25A6, 0xA2CC, 0x25A9, 0xA2CD, 0x2668, 0xA2CE, 0x260F, 0xA2CF, 0x260E, 0xA2D0, 0x261C, 0xA2D1, 0x261E, 0xA2D2, 0x00B6, + 0xA2D3, 0x2020, 0xA2D4, 0x2021, 0xA2D5, 0x2195, 0xA2D6, 0x2197, 0xA2D7, 0x2199, 0xA2D8, 0x2196, 0xA2D9, 0x2198, 0xA2DA, 0x266D, + 0xA2DB, 0x2669, 0xA2DC, 0x266A, 0xA2DD, 0x266C, 0xA2DE, 0x327F, 0xA2DF, 0x321C, 0xA2E0, 0x2116, 0xA2E1, 0x33C7, 0xA2E2, 0x2122, + 0xA2E3, 0x33C2, 0xA2E4, 0x33D8, 0xA2E5, 0x2121, 0xA2E6, 0x20AC, 0xA2E7, 0x00AE, 0xA341, 0xC971, 0xA342, 0xC972, 0xA343, 0xC973, + 0xA344, 0xC975, 0xA345, 0xC976, 0xA346, 0xC977, 0xA347, 0xC978, 0xA348, 0xC979, 0xA349, 0xC97A, 0xA34A, 0xC97B, 0xA34B, 0xC97D, + 0xA34C, 0xC97E, 0xA34D, 0xC97F, 0xA34E, 0xC980, 0xA34F, 0xC981, 0xA350, 0xC982, 0xA351, 0xC983, 0xA352, 0xC984, 0xA353, 0xC985, + 0xA354, 0xC986, 0xA355, 0xC987, 0xA356, 0xC98A, 0xA357, 0xC98B, 0xA358, 0xC98D, 0xA359, 0xC98E, 0xA35A, 0xC98F, 0xA361, 0xC991, + 0xA362, 0xC992, 0xA363, 0xC993, 0xA364, 0xC994, 0xA365, 0xC995, 0xA366, 0xC996, 0xA367, 0xC997, 0xA368, 0xC99A, 0xA369, 0xC99C, + 0xA36A, 0xC99E, 0xA36B, 0xC99F, 0xA36C, 0xC9A0, 0xA36D, 0xC9A1, 0xA36E, 0xC9A2, 0xA36F, 0xC9A3, 0xA370, 0xC9A4, 0xA371, 0xC9A5, + 0xA372, 0xC9A6, 0xA373, 0xC9A7, 0xA374, 0xC9A8, 0xA375, 0xC9A9, 0xA376, 0xC9AA, 0xA377, 0xC9AB, 0xA378, 0xC9AC, 0xA379, 0xC9AD, + 0xA37A, 0xC9AE, 0xA381, 0xC9AF, 0xA382, 0xC9B0, 0xA383, 0xC9B1, 0xA384, 0xC9B2, 0xA385, 0xC9B3, 0xA386, 0xC9B4, 0xA387, 0xC9B5, + 0xA388, 0xC9B6, 0xA389, 0xC9B7, 0xA38A, 0xC9B8, 0xA38B, 0xC9B9, 0xA38C, 0xC9BA, 0xA38D, 0xC9BB, 0xA38E, 0xC9BC, 0xA38F, 0xC9BD, + 0xA390, 0xC9BE, 0xA391, 0xC9BF, 0xA392, 0xC9C2, 0xA393, 0xC9C3, 0xA394, 0xC9C5, 0xA395, 0xC9C6, 0xA396, 0xC9C9, 0xA397, 0xC9CB, + 0xA398, 0xC9CC, 0xA399, 0xC9CD, 0xA39A, 0xC9CE, 0xA39B, 0xC9CF, 0xA39C, 0xC9D2, 0xA39D, 0xC9D4, 0xA39E, 0xC9D7, 0xA39F, 0xC9D8, + 0xA3A0, 0xC9DB, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, 0xA3A4, 0xFF04, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, 0xA3DC, 0xFFE6, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA441, 0xC9DE, + 0xA442, 0xC9DF, 0xA443, 0xC9E1, 0xA444, 0xC9E3, 0xA445, 0xC9E5, 0xA446, 0xC9E6, 0xA447, 0xC9E8, 0xA448, 0xC9E9, 0xA449, 0xC9EA, + 0xA44A, 0xC9EB, 0xA44B, 0xC9EE, 0xA44C, 0xC9F2, 0xA44D, 0xC9F3, 0xA44E, 0xC9F4, 0xA44F, 0xC9F5, 0xA450, 0xC9F6, 0xA451, 0xC9F7, + 0xA452, 0xC9FA, 0xA453, 0xC9FB, 0xA454, 0xC9FD, 0xA455, 0xC9FE, 0xA456, 0xC9FF, 0xA457, 0xCA01, 0xA458, 0xCA02, 0xA459, 0xCA03, + 0xA45A, 0xCA04, 0xA461, 0xCA05, 0xA462, 0xCA06, 0xA463, 0xCA07, 0xA464, 0xCA0A, 0xA465, 0xCA0E, 0xA466, 0xCA0F, 0xA467, 0xCA10, + 0xA468, 0xCA11, 0xA469, 0xCA12, 0xA46A, 0xCA13, 0xA46B, 0xCA15, 0xA46C, 0xCA16, 0xA46D, 0xCA17, 0xA46E, 0xCA19, 0xA46F, 0xCA1A, + 0xA470, 0xCA1B, 0xA471, 0xCA1C, 0xA472, 0xCA1D, 0xA473, 0xCA1E, 0xA474, 0xCA1F, 0xA475, 0xCA20, 0xA476, 0xCA21, 0xA477, 0xCA22, + 0xA478, 0xCA23, 0xA479, 0xCA24, 0xA47A, 0xCA25, 0xA481, 0xCA26, 0xA482, 0xCA27, 0xA483, 0xCA28, 0xA484, 0xCA2A, 0xA485, 0xCA2B, + 0xA486, 0xCA2C, 0xA487, 0xCA2D, 0xA488, 0xCA2E, 0xA489, 0xCA2F, 0xA48A, 0xCA30, 0xA48B, 0xCA31, 0xA48C, 0xCA32, 0xA48D, 0xCA33, + 0xA48E, 0xCA34, 0xA48F, 0xCA35, 0xA490, 0xCA36, 0xA491, 0xCA37, 0xA492, 0xCA38, 0xA493, 0xCA39, 0xA494, 0xCA3A, 0xA495, 0xCA3B, + 0xA496, 0xCA3C, 0xA497, 0xCA3D, 0xA498, 0xCA3E, 0xA499, 0xCA3F, 0xA49A, 0xCA40, 0xA49B, 0xCA41, 0xA49C, 0xCA42, 0xA49D, 0xCA43, + 0xA49E, 0xCA44, 0xA49F, 0xCA45, 0xA4A0, 0xCA46, 0xA4A1, 0x3131, 0xA4A2, 0x3132, 0xA4A3, 0x3133, 0xA4A4, 0x3134, 0xA4A5, 0x3135, + 0xA4A6, 0x3136, 0xA4A7, 0x3137, 0xA4A8, 0x3138, 0xA4A9, 0x3139, 0xA4AA, 0x313A, 0xA4AB, 0x313B, 0xA4AC, 0x313C, 0xA4AD, 0x313D, + 0xA4AE, 0x313E, 0xA4AF, 0x313F, 0xA4B0, 0x3140, 0xA4B1, 0x3141, 0xA4B2, 0x3142, 0xA4B3, 0x3143, 0xA4B4, 0x3144, 0xA4B5, 0x3145, + 0xA4B6, 0x3146, 0xA4B7, 0x3147, 0xA4B8, 0x3148, 0xA4B9, 0x3149, 0xA4BA, 0x314A, 0xA4BB, 0x314B, 0xA4BC, 0x314C, 0xA4BD, 0x314D, + 0xA4BE, 0x314E, 0xA4BF, 0x314F, 0xA4C0, 0x3150, 0xA4C1, 0x3151, 0xA4C2, 0x3152, 0xA4C3, 0x3153, 0xA4C4, 0x3154, 0xA4C5, 0x3155, + 0xA4C6, 0x3156, 0xA4C7, 0x3157, 0xA4C8, 0x3158, 0xA4C9, 0x3159, 0xA4CA, 0x315A, 0xA4CB, 0x315B, 0xA4CC, 0x315C, 0xA4CD, 0x315D, + 0xA4CE, 0x315E, 0xA4CF, 0x315F, 0xA4D0, 0x3160, 0xA4D1, 0x3161, 0xA4D2, 0x3162, 0xA4D3, 0x3163, 0xA4D4, 0x3164, 0xA4D5, 0x3165, + 0xA4D6, 0x3166, 0xA4D7, 0x3167, 0xA4D8, 0x3168, 0xA4D9, 0x3169, 0xA4DA, 0x316A, 0xA4DB, 0x316B, 0xA4DC, 0x316C, 0xA4DD, 0x316D, + 0xA4DE, 0x316E, 0xA4DF, 0x316F, 0xA4E0, 0x3170, 0xA4E1, 0x3171, 0xA4E2, 0x3172, 0xA4E3, 0x3173, 0xA4E4, 0x3174, 0xA4E5, 0x3175, + 0xA4E6, 0x3176, 0xA4E7, 0x3177, 0xA4E8, 0x3178, 0xA4E9, 0x3179, 0xA4EA, 0x317A, 0xA4EB, 0x317B, 0xA4EC, 0x317C, 0xA4ED, 0x317D, + 0xA4EE, 0x317E, 0xA4EF, 0x317F, 0xA4F0, 0x3180, 0xA4F1, 0x3181, 0xA4F2, 0x3182, 0xA4F3, 0x3183, 0xA4F4, 0x3184, 0xA4F5, 0x3185, + 0xA4F6, 0x3186, 0xA4F7, 0x3187, 0xA4F8, 0x3188, 0xA4F9, 0x3189, 0xA4FA, 0x318A, 0xA4FB, 0x318B, 0xA4FC, 0x318C, 0xA4FD, 0x318D, + 0xA4FE, 0x318E, 0xA541, 0xCA47, 0xA542, 0xCA48, 0xA543, 0xCA49, 0xA544, 0xCA4A, 0xA545, 0xCA4B, 0xA546, 0xCA4E, 0xA547, 0xCA4F, + 0xA548, 0xCA51, 0xA549, 0xCA52, 0xA54A, 0xCA53, 0xA54B, 0xCA55, 0xA54C, 0xCA56, 0xA54D, 0xCA57, 0xA54E, 0xCA58, 0xA54F, 0xCA59, + 0xA550, 0xCA5A, 0xA551, 0xCA5B, 0xA552, 0xCA5E, 0xA553, 0xCA62, 0xA554, 0xCA63, 0xA555, 0xCA64, 0xA556, 0xCA65, 0xA557, 0xCA66, + 0xA558, 0xCA67, 0xA559, 0xCA69, 0xA55A, 0xCA6A, 0xA561, 0xCA6B, 0xA562, 0xCA6C, 0xA563, 0xCA6D, 0xA564, 0xCA6E, 0xA565, 0xCA6F, + 0xA566, 0xCA70, 0xA567, 0xCA71, 0xA568, 0xCA72, 0xA569, 0xCA73, 0xA56A, 0xCA74, 0xA56B, 0xCA75, 0xA56C, 0xCA76, 0xA56D, 0xCA77, + 0xA56E, 0xCA78, 0xA56F, 0xCA79, 0xA570, 0xCA7A, 0xA571, 0xCA7B, 0xA572, 0xCA7C, 0xA573, 0xCA7E, 0xA574, 0xCA7F, 0xA575, 0xCA80, + 0xA576, 0xCA81, 0xA577, 0xCA82, 0xA578, 0xCA83, 0xA579, 0xCA85, 0xA57A, 0xCA86, 0xA581, 0xCA87, 0xA582, 0xCA88, 0xA583, 0xCA89, + 0xA584, 0xCA8A, 0xA585, 0xCA8B, 0xA586, 0xCA8C, 0xA587, 0xCA8D, 0xA588, 0xCA8E, 0xA589, 0xCA8F, 0xA58A, 0xCA90, 0xA58B, 0xCA91, + 0xA58C, 0xCA92, 0xA58D, 0xCA93, 0xA58E, 0xCA94, 0xA58F, 0xCA95, 0xA590, 0xCA96, 0xA591, 0xCA97, 0xA592, 0xCA99, 0xA593, 0xCA9A, + 0xA594, 0xCA9B, 0xA595, 0xCA9C, 0xA596, 0xCA9D, 0xA597, 0xCA9E, 0xA598, 0xCA9F, 0xA599, 0xCAA0, 0xA59A, 0xCAA1, 0xA59B, 0xCAA2, + 0xA59C, 0xCAA3, 0xA59D, 0xCAA4, 0xA59E, 0xCAA5, 0xA59F, 0xCAA6, 0xA5A0, 0xCAA7, 0xA5A1, 0x2170, 0xA5A2, 0x2171, 0xA5A3, 0x2172, + 0xA5A4, 0x2173, 0xA5A5, 0x2174, 0xA5A6, 0x2175, 0xA5A7, 0x2176, 0xA5A8, 0x2177, 0xA5A9, 0x2178, 0xA5AA, 0x2179, 0xA5B0, 0x2160, + 0xA5B1, 0x2161, 0xA5B2, 0x2162, 0xA5B3, 0x2163, 0xA5B4, 0x2164, 0xA5B5, 0x2165, 0xA5B6, 0x2166, 0xA5B7, 0x2167, 0xA5B8, 0x2168, + 0xA5B9, 0x2169, 0xA5C1, 0x0391, 0xA5C2, 0x0392, 0xA5C3, 0x0393, 0xA5C4, 0x0394, 0xA5C5, 0x0395, 0xA5C6, 0x0396, 0xA5C7, 0x0397, + 0xA5C8, 0x0398, 0xA5C9, 0x0399, 0xA5CA, 0x039A, 0xA5CB, 0x039B, 0xA5CC, 0x039C, 0xA5CD, 0x039D, 0xA5CE, 0x039E, 0xA5CF, 0x039F, + 0xA5D0, 0x03A0, 0xA5D1, 0x03A1, 0xA5D2, 0x03A3, 0xA5D3, 0x03A4, 0xA5D4, 0x03A5, 0xA5D5, 0x03A6, 0xA5D6, 0x03A7, 0xA5D7, 0x03A8, + 0xA5D8, 0x03A9, 0xA5E1, 0x03B1, 0xA5E2, 0x03B2, 0xA5E3, 0x03B3, 0xA5E4, 0x03B4, 0xA5E5, 0x03B5, 0xA5E6, 0x03B6, 0xA5E7, 0x03B7, + 0xA5E8, 0x03B8, 0xA5E9, 0x03B9, 0xA5EA, 0x03BA, 0xA5EB, 0x03BB, 0xA5EC, 0x03BC, 0xA5ED, 0x03BD, 0xA5EE, 0x03BE, 0xA5EF, 0x03BF, + 0xA5F0, 0x03C0, 0xA5F1, 0x03C1, 0xA5F2, 0x03C3, 0xA5F3, 0x03C4, 0xA5F4, 0x03C5, 0xA5F5, 0x03C6, 0xA5F6, 0x03C7, 0xA5F7, 0x03C8, + 0xA5F8, 0x03C9, 0xA641, 0xCAA8, 0xA642, 0xCAA9, 0xA643, 0xCAAA, 0xA644, 0xCAAB, 0xA645, 0xCAAC, 0xA646, 0xCAAD, 0xA647, 0xCAAE, + 0xA648, 0xCAAF, 0xA649, 0xCAB0, 0xA64A, 0xCAB1, 0xA64B, 0xCAB2, 0xA64C, 0xCAB3, 0xA64D, 0xCAB4, 0xA64E, 0xCAB5, 0xA64F, 0xCAB6, + 0xA650, 0xCAB7, 0xA651, 0xCAB8, 0xA652, 0xCAB9, 0xA653, 0xCABA, 0xA654, 0xCABB, 0xA655, 0xCABE, 0xA656, 0xCABF, 0xA657, 0xCAC1, + 0xA658, 0xCAC2, 0xA659, 0xCAC3, 0xA65A, 0xCAC5, 0xA661, 0xCAC6, 0xA662, 0xCAC7, 0xA663, 0xCAC8, 0xA664, 0xCAC9, 0xA665, 0xCACA, + 0xA666, 0xCACB, 0xA667, 0xCACE, 0xA668, 0xCAD0, 0xA669, 0xCAD2, 0xA66A, 0xCAD4, 0xA66B, 0xCAD5, 0xA66C, 0xCAD6, 0xA66D, 0xCAD7, + 0xA66E, 0xCADA, 0xA66F, 0xCADB, 0xA670, 0xCADC, 0xA671, 0xCADD, 0xA672, 0xCADE, 0xA673, 0xCADF, 0xA674, 0xCAE1, 0xA675, 0xCAE2, + 0xA676, 0xCAE3, 0xA677, 0xCAE4, 0xA678, 0xCAE5, 0xA679, 0xCAE6, 0xA67A, 0xCAE7, 0xA681, 0xCAE8, 0xA682, 0xCAE9, 0xA683, 0xCAEA, + 0xA684, 0xCAEB, 0xA685, 0xCAED, 0xA686, 0xCAEE, 0xA687, 0xCAEF, 0xA688, 0xCAF0, 0xA689, 0xCAF1, 0xA68A, 0xCAF2, 0xA68B, 0xCAF3, + 0xA68C, 0xCAF5, 0xA68D, 0xCAF6, 0xA68E, 0xCAF7, 0xA68F, 0xCAF8, 0xA690, 0xCAF9, 0xA691, 0xCAFA, 0xA692, 0xCAFB, 0xA693, 0xCAFC, + 0xA694, 0xCAFD, 0xA695, 0xCAFE, 0xA696, 0xCAFF, 0xA697, 0xCB00, 0xA698, 0xCB01, 0xA699, 0xCB02, 0xA69A, 0xCB03, 0xA69B, 0xCB04, + 0xA69C, 0xCB05, 0xA69D, 0xCB06, 0xA69E, 0xCB07, 0xA69F, 0xCB09, 0xA6A0, 0xCB0A, 0xA6A1, 0x2500, 0xA6A2, 0x2502, 0xA6A3, 0x250C, + 0xA6A4, 0x2510, 0xA6A5, 0x2518, 0xA6A6, 0x2514, 0xA6A7, 0x251C, 0xA6A8, 0x252C, 0xA6A9, 0x2524, 0xA6AA, 0x2534, 0xA6AB, 0x253C, + 0xA6AC, 0x2501, 0xA6AD, 0x2503, 0xA6AE, 0x250F, 0xA6AF, 0x2513, 0xA6B0, 0x251B, 0xA6B1, 0x2517, 0xA6B2, 0x2523, 0xA6B3, 0x2533, + 0xA6B4, 0x252B, 0xA6B5, 0x253B, 0xA6B6, 0x254B, 0xA6B7, 0x2520, 0xA6B8, 0x252F, 0xA6B9, 0x2528, 0xA6BA, 0x2537, 0xA6BB, 0x253F, + 0xA6BC, 0x251D, 0xA6BD, 0x2530, 0xA6BE, 0x2525, 0xA6BF, 0x2538, 0xA6C0, 0x2542, 0xA6C1, 0x2512, 0xA6C2, 0x2511, 0xA6C3, 0x251A, + 0xA6C4, 0x2519, 0xA6C5, 0x2516, 0xA6C6, 0x2515, 0xA6C7, 0x250E, 0xA6C8, 0x250D, 0xA6C9, 0x251E, 0xA6CA, 0x251F, 0xA6CB, 0x2521, + 0xA6CC, 0x2522, 0xA6CD, 0x2526, 0xA6CE, 0x2527, 0xA6CF, 0x2529, 0xA6D0, 0x252A, 0xA6D1, 0x252D, 0xA6D2, 0x252E, 0xA6D3, 0x2531, + 0xA6D4, 0x2532, 0xA6D5, 0x2535, 0xA6D6, 0x2536, 0xA6D7, 0x2539, 0xA6D8, 0x253A, 0xA6D9, 0x253D, 0xA6DA, 0x253E, 0xA6DB, 0x2540, + 0xA6DC, 0x2541, 0xA6DD, 0x2543, 0xA6DE, 0x2544, 0xA6DF, 0x2545, 0xA6E0, 0x2546, 0xA6E1, 0x2547, 0xA6E2, 0x2548, 0xA6E3, 0x2549, + 0xA6E4, 0x254A, 0xA741, 0xCB0B, 0xA742, 0xCB0C, 0xA743, 0xCB0D, 0xA744, 0xCB0E, 0xA745, 0xCB0F, 0xA746, 0xCB11, 0xA747, 0xCB12, + 0xA748, 0xCB13, 0xA749, 0xCB15, 0xA74A, 0xCB16, 0xA74B, 0xCB17, 0xA74C, 0xCB19, 0xA74D, 0xCB1A, 0xA74E, 0xCB1B, 0xA74F, 0xCB1C, + 0xA750, 0xCB1D, 0xA751, 0xCB1E, 0xA752, 0xCB1F, 0xA753, 0xCB22, 0xA754, 0xCB23, 0xA755, 0xCB24, 0xA756, 0xCB25, 0xA757, 0xCB26, + 0xA758, 0xCB27, 0xA759, 0xCB28, 0xA75A, 0xCB29, 0xA761, 0xCB2A, 0xA762, 0xCB2B, 0xA763, 0xCB2C, 0xA764, 0xCB2D, 0xA765, 0xCB2E, + 0xA766, 0xCB2F, 0xA767, 0xCB30, 0xA768, 0xCB31, 0xA769, 0xCB32, 0xA76A, 0xCB33, 0xA76B, 0xCB34, 0xA76C, 0xCB35, 0xA76D, 0xCB36, + 0xA76E, 0xCB37, 0xA76F, 0xCB38, 0xA770, 0xCB39, 0xA771, 0xCB3A, 0xA772, 0xCB3B, 0xA773, 0xCB3C, 0xA774, 0xCB3D, 0xA775, 0xCB3E, + 0xA776, 0xCB3F, 0xA777, 0xCB40, 0xA778, 0xCB42, 0xA779, 0xCB43, 0xA77A, 0xCB44, 0xA781, 0xCB45, 0xA782, 0xCB46, 0xA783, 0xCB47, + 0xA784, 0xCB4A, 0xA785, 0xCB4B, 0xA786, 0xCB4D, 0xA787, 0xCB4E, 0xA788, 0xCB4F, 0xA789, 0xCB51, 0xA78A, 0xCB52, 0xA78B, 0xCB53, + 0xA78C, 0xCB54, 0xA78D, 0xCB55, 0xA78E, 0xCB56, 0xA78F, 0xCB57, 0xA790, 0xCB5A, 0xA791, 0xCB5B, 0xA792, 0xCB5C, 0xA793, 0xCB5E, + 0xA794, 0xCB5F, 0xA795, 0xCB60, 0xA796, 0xCB61, 0xA797, 0xCB62, 0xA798, 0xCB63, 0xA799, 0xCB65, 0xA79A, 0xCB66, 0xA79B, 0xCB67, + 0xA79C, 0xCB68, 0xA79D, 0xCB69, 0xA79E, 0xCB6A, 0xA79F, 0xCB6B, 0xA7A0, 0xCB6C, 0xA7A1, 0x3395, 0xA7A2, 0x3396, 0xA7A3, 0x3397, + 0xA7A4, 0x2113, 0xA7A5, 0x3398, 0xA7A6, 0x33C4, 0xA7A7, 0x33A3, 0xA7A8, 0x33A4, 0xA7A9, 0x33A5, 0xA7AA, 0x33A6, 0xA7AB, 0x3399, + 0xA7AC, 0x339A, 0xA7AD, 0x339B, 0xA7AE, 0x339C, 0xA7AF, 0x339D, 0xA7B0, 0x339E, 0xA7B1, 0x339F, 0xA7B2, 0x33A0, 0xA7B3, 0x33A1, + 0xA7B4, 0x33A2, 0xA7B5, 0x33CA, 0xA7B6, 0x338D, 0xA7B7, 0x338E, 0xA7B8, 0x338F, 0xA7B9, 0x33CF, 0xA7BA, 0x3388, 0xA7BB, 0x3389, + 0xA7BC, 0x33C8, 0xA7BD, 0x33A7, 0xA7BE, 0x33A8, 0xA7BF, 0x33B0, 0xA7C0, 0x33B1, 0xA7C1, 0x33B2, 0xA7C2, 0x33B3, 0xA7C3, 0x33B4, + 0xA7C4, 0x33B5, 0xA7C5, 0x33B6, 0xA7C6, 0x33B7, 0xA7C7, 0x33B8, 0xA7C8, 0x33B9, 0xA7C9, 0x3380, 0xA7CA, 0x3381, 0xA7CB, 0x3382, + 0xA7CC, 0x3383, 0xA7CD, 0x3384, 0xA7CE, 0x33BA, 0xA7CF, 0x33BB, 0xA7D0, 0x33BC, 0xA7D1, 0x33BD, 0xA7D2, 0x33BE, 0xA7D3, 0x33BF, + 0xA7D4, 0x3390, 0xA7D5, 0x3391, 0xA7D6, 0x3392, 0xA7D7, 0x3393, 0xA7D8, 0x3394, 0xA7D9, 0x2126, 0xA7DA, 0x33C0, 0xA7DB, 0x33C1, + 0xA7DC, 0x338A, 0xA7DD, 0x338B, 0xA7DE, 0x338C, 0xA7DF, 0x33D6, 0xA7E0, 0x33C5, 0xA7E1, 0x33AD, 0xA7E2, 0x33AE, 0xA7E3, 0x33AF, + 0xA7E4, 0x33DB, 0xA7E5, 0x33A9, 0xA7E6, 0x33AA, 0xA7E7, 0x33AB, 0xA7E8, 0x33AC, 0xA7E9, 0x33DD, 0xA7EA, 0x33D0, 0xA7EB, 0x33D3, + 0xA7EC, 0x33C3, 0xA7ED, 0x33C9, 0xA7EE, 0x33DC, 0xA7EF, 0x33C6, 0xA841, 0xCB6D, 0xA842, 0xCB6E, 0xA843, 0xCB6F, 0xA844, 0xCB70, + 0xA845, 0xCB71, 0xA846, 0xCB72, 0xA847, 0xCB73, 0xA848, 0xCB74, 0xA849, 0xCB75, 0xA84A, 0xCB76, 0xA84B, 0xCB77, 0xA84C, 0xCB7A, + 0xA84D, 0xCB7B, 0xA84E, 0xCB7C, 0xA84F, 0xCB7D, 0xA850, 0xCB7E, 0xA851, 0xCB7F, 0xA852, 0xCB80, 0xA853, 0xCB81, 0xA854, 0xCB82, + 0xA855, 0xCB83, 0xA856, 0xCB84, 0xA857, 0xCB85, 0xA858, 0xCB86, 0xA859, 0xCB87, 0xA85A, 0xCB88, 0xA861, 0xCB89, 0xA862, 0xCB8A, + 0xA863, 0xCB8B, 0xA864, 0xCB8C, 0xA865, 0xCB8D, 0xA866, 0xCB8E, 0xA867, 0xCB8F, 0xA868, 0xCB90, 0xA869, 0xCB91, 0xA86A, 0xCB92, + 0xA86B, 0xCB93, 0xA86C, 0xCB94, 0xA86D, 0xCB95, 0xA86E, 0xCB96, 0xA86F, 0xCB97, 0xA870, 0xCB98, 0xA871, 0xCB99, 0xA872, 0xCB9A, + 0xA873, 0xCB9B, 0xA874, 0xCB9D, 0xA875, 0xCB9E, 0xA876, 0xCB9F, 0xA877, 0xCBA0, 0xA878, 0xCBA1, 0xA879, 0xCBA2, 0xA87A, 0xCBA3, + 0xA881, 0xCBA4, 0xA882, 0xCBA5, 0xA883, 0xCBA6, 0xA884, 0xCBA7, 0xA885, 0xCBA8, 0xA886, 0xCBA9, 0xA887, 0xCBAA, 0xA888, 0xCBAB, + 0xA889, 0xCBAC, 0xA88A, 0xCBAD, 0xA88B, 0xCBAE, 0xA88C, 0xCBAF, 0xA88D, 0xCBB0, 0xA88E, 0xCBB1, 0xA88F, 0xCBB2, 0xA890, 0xCBB3, + 0xA891, 0xCBB4, 0xA892, 0xCBB5, 0xA893, 0xCBB6, 0xA894, 0xCBB7, 0xA895, 0xCBB9, 0xA896, 0xCBBA, 0xA897, 0xCBBB, 0xA898, 0xCBBC, + 0xA899, 0xCBBD, 0xA89A, 0xCBBE, 0xA89B, 0xCBBF, 0xA89C, 0xCBC0, 0xA89D, 0xCBC1, 0xA89E, 0xCBC2, 0xA89F, 0xCBC3, 0xA8A0, 0xCBC4, + 0xA8A1, 0x00C6, 0xA8A2, 0x00D0, 0xA8A3, 0x00AA, 0xA8A4, 0x0126, 0xA8A6, 0x0132, 0xA8A8, 0x013F, 0xA8A9, 0x0141, 0xA8AA, 0x00D8, + 0xA8AB, 0x0152, 0xA8AC, 0x00BA, 0xA8AD, 0x00DE, 0xA8AE, 0x0166, 0xA8AF, 0x014A, 0xA8B1, 0x3260, 0xA8B2, 0x3261, 0xA8B3, 0x3262, + 0xA8B4, 0x3263, 0xA8B5, 0x3264, 0xA8B6, 0x3265, 0xA8B7, 0x3266, 0xA8B8, 0x3267, 0xA8B9, 0x3268, 0xA8BA, 0x3269, 0xA8BB, 0x326A, + 0xA8BC, 0x326B, 0xA8BD, 0x326C, 0xA8BE, 0x326D, 0xA8BF, 0x326E, 0xA8C0, 0x326F, 0xA8C1, 0x3270, 0xA8C2, 0x3271, 0xA8C3, 0x3272, + 0xA8C4, 0x3273, 0xA8C5, 0x3274, 0xA8C6, 0x3275, 0xA8C7, 0x3276, 0xA8C8, 0x3277, 0xA8C9, 0x3278, 0xA8CA, 0x3279, 0xA8CB, 0x327A, + 0xA8CC, 0x327B, 0xA8CD, 0x24D0, 0xA8CE, 0x24D1, 0xA8CF, 0x24D2, 0xA8D0, 0x24D3, 0xA8D1, 0x24D4, 0xA8D2, 0x24D5, 0xA8D3, 0x24D6, + 0xA8D4, 0x24D7, 0xA8D5, 0x24D8, 0xA8D6, 0x24D9, 0xA8D7, 0x24DA, 0xA8D8, 0x24DB, 0xA8D9, 0x24DC, 0xA8DA, 0x24DD, 0xA8DB, 0x24DE, + 0xA8DC, 0x24DF, 0xA8DD, 0x24E0, 0xA8DE, 0x24E1, 0xA8DF, 0x24E2, 0xA8E0, 0x24E3, 0xA8E1, 0x24E4, 0xA8E2, 0x24E5, 0xA8E3, 0x24E6, + 0xA8E4, 0x24E7, 0xA8E5, 0x24E8, 0xA8E6, 0x24E9, 0xA8E7, 0x2460, 0xA8E8, 0x2461, 0xA8E9, 0x2462, 0xA8EA, 0x2463, 0xA8EB, 0x2464, + 0xA8EC, 0x2465, 0xA8ED, 0x2466, 0xA8EE, 0x2467, 0xA8EF, 0x2468, 0xA8F0, 0x2469, 0xA8F1, 0x246A, 0xA8F2, 0x246B, 0xA8F3, 0x246C, + 0xA8F4, 0x246D, 0xA8F5, 0x246E, 0xA8F6, 0x00BD, 0xA8F7, 0x2153, 0xA8F8, 0x2154, 0xA8F9, 0x00BC, 0xA8FA, 0x00BE, 0xA8FB, 0x215B, + 0xA8FC, 0x215C, 0xA8FD, 0x215D, 0xA8FE, 0x215E, 0xA941, 0xCBC5, 0xA942, 0xCBC6, 0xA943, 0xCBC7, 0xA944, 0xCBC8, 0xA945, 0xCBC9, + 0xA946, 0xCBCA, 0xA947, 0xCBCB, 0xA948, 0xCBCC, 0xA949, 0xCBCD, 0xA94A, 0xCBCE, 0xA94B, 0xCBCF, 0xA94C, 0xCBD0, 0xA94D, 0xCBD1, + 0xA94E, 0xCBD2, 0xA94F, 0xCBD3, 0xA950, 0xCBD5, 0xA951, 0xCBD6, 0xA952, 0xCBD7, 0xA953, 0xCBD8, 0xA954, 0xCBD9, 0xA955, 0xCBDA, + 0xA956, 0xCBDB, 0xA957, 0xCBDC, 0xA958, 0xCBDD, 0xA959, 0xCBDE, 0xA95A, 0xCBDF, 0xA961, 0xCBE0, 0xA962, 0xCBE1, 0xA963, 0xCBE2, + 0xA964, 0xCBE3, 0xA965, 0xCBE5, 0xA966, 0xCBE6, 0xA967, 0xCBE8, 0xA968, 0xCBEA, 0xA969, 0xCBEB, 0xA96A, 0xCBEC, 0xA96B, 0xCBED, + 0xA96C, 0xCBEE, 0xA96D, 0xCBEF, 0xA96E, 0xCBF0, 0xA96F, 0xCBF1, 0xA970, 0xCBF2, 0xA971, 0xCBF3, 0xA972, 0xCBF4, 0xA973, 0xCBF5, + 0xA974, 0xCBF6, 0xA975, 0xCBF7, 0xA976, 0xCBF8, 0xA977, 0xCBF9, 0xA978, 0xCBFA, 0xA979, 0xCBFB, 0xA97A, 0xCBFC, 0xA981, 0xCBFD, + 0xA982, 0xCBFE, 0xA983, 0xCBFF, 0xA984, 0xCC00, 0xA985, 0xCC01, 0xA986, 0xCC02, 0xA987, 0xCC03, 0xA988, 0xCC04, 0xA989, 0xCC05, + 0xA98A, 0xCC06, 0xA98B, 0xCC07, 0xA98C, 0xCC08, 0xA98D, 0xCC09, 0xA98E, 0xCC0A, 0xA98F, 0xCC0B, 0xA990, 0xCC0E, 0xA991, 0xCC0F, + 0xA992, 0xCC11, 0xA993, 0xCC12, 0xA994, 0xCC13, 0xA995, 0xCC15, 0xA996, 0xCC16, 0xA997, 0xCC17, 0xA998, 0xCC18, 0xA999, 0xCC19, + 0xA99A, 0xCC1A, 0xA99B, 0xCC1B, 0xA99C, 0xCC1E, 0xA99D, 0xCC1F, 0xA99E, 0xCC20, 0xA99F, 0xCC23, 0xA9A0, 0xCC24, 0xA9A1, 0x00E6, + 0xA9A2, 0x0111, 0xA9A3, 0x00F0, 0xA9A4, 0x0127, 0xA9A5, 0x0131, 0xA9A6, 0x0133, 0xA9A7, 0x0138, 0xA9A8, 0x0140, 0xA9A9, 0x0142, + 0xA9AA, 0x00F8, 0xA9AB, 0x0153, 0xA9AC, 0x00DF, 0xA9AD, 0x00FE, 0xA9AE, 0x0167, 0xA9AF, 0x014B, 0xA9B0, 0x0149, 0xA9B1, 0x3200, + 0xA9B2, 0x3201, 0xA9B3, 0x3202, 0xA9B4, 0x3203, 0xA9B5, 0x3204, 0xA9B6, 0x3205, 0xA9B7, 0x3206, 0xA9B8, 0x3207, 0xA9B9, 0x3208, + 0xA9BA, 0x3209, 0xA9BB, 0x320A, 0xA9BC, 0x320B, 0xA9BD, 0x320C, 0xA9BE, 0x320D, 0xA9BF, 0x320E, 0xA9C0, 0x320F, 0xA9C1, 0x3210, + 0xA9C2, 0x3211, 0xA9C3, 0x3212, 0xA9C4, 0x3213, 0xA9C5, 0x3214, 0xA9C6, 0x3215, 0xA9C7, 0x3216, 0xA9C8, 0x3217, 0xA9C9, 0x3218, + 0xA9CA, 0x3219, 0xA9CB, 0x321A, 0xA9CC, 0x321B, 0xA9CD, 0x249C, 0xA9CE, 0x249D, 0xA9CF, 0x249E, 0xA9D0, 0x249F, 0xA9D1, 0x24A0, + 0xA9D2, 0x24A1, 0xA9D3, 0x24A2, 0xA9D4, 0x24A3, 0xA9D5, 0x24A4, 0xA9D6, 0x24A5, 0xA9D7, 0x24A6, 0xA9D8, 0x24A7, 0xA9D9, 0x24A8, + 0xA9DA, 0x24A9, 0xA9DB, 0x24AA, 0xA9DC, 0x24AB, 0xA9DD, 0x24AC, 0xA9DE, 0x24AD, 0xA9DF, 0x24AE, 0xA9E0, 0x24AF, 0xA9E1, 0x24B0, + 0xA9E2, 0x24B1, 0xA9E3, 0x24B2, 0xA9E4, 0x24B3, 0xA9E5, 0x24B4, 0xA9E6, 0x24B5, 0xA9E7, 0x2474, 0xA9E8, 0x2475, 0xA9E9, 0x2476, + 0xA9EA, 0x2477, 0xA9EB, 0x2478, 0xA9EC, 0x2479, 0xA9ED, 0x247A, 0xA9EE, 0x247B, 0xA9EF, 0x247C, 0xA9F0, 0x247D, 0xA9F1, 0x247E, + 0xA9F2, 0x247F, 0xA9F3, 0x2480, 0xA9F4, 0x2481, 0xA9F5, 0x2482, 0xA9F6, 0x00B9, 0xA9F7, 0x00B2, 0xA9F8, 0x00B3, 0xA9F9, 0x2074, + 0xA9FA, 0x207F, 0xA9FB, 0x2081, 0xA9FC, 0x2082, 0xA9FD, 0x2083, 0xA9FE, 0x2084, 0xAA41, 0xCC25, 0xAA42, 0xCC26, 0xAA43, 0xCC2A, + 0xAA44, 0xCC2B, 0xAA45, 0xCC2D, 0xAA46, 0xCC2F, 0xAA47, 0xCC31, 0xAA48, 0xCC32, 0xAA49, 0xCC33, 0xAA4A, 0xCC34, 0xAA4B, 0xCC35, + 0xAA4C, 0xCC36, 0xAA4D, 0xCC37, 0xAA4E, 0xCC3A, 0xAA4F, 0xCC3F, 0xAA50, 0xCC40, 0xAA51, 0xCC41, 0xAA52, 0xCC42, 0xAA53, 0xCC43, + 0xAA54, 0xCC46, 0xAA55, 0xCC47, 0xAA56, 0xCC49, 0xAA57, 0xCC4A, 0xAA58, 0xCC4B, 0xAA59, 0xCC4D, 0xAA5A, 0xCC4E, 0xAA61, 0xCC4F, + 0xAA62, 0xCC50, 0xAA63, 0xCC51, 0xAA64, 0xCC52, 0xAA65, 0xCC53, 0xAA66, 0xCC56, 0xAA67, 0xCC5A, 0xAA68, 0xCC5B, 0xAA69, 0xCC5C, + 0xAA6A, 0xCC5D, 0xAA6B, 0xCC5E, 0xAA6C, 0xCC5F, 0xAA6D, 0xCC61, 0xAA6E, 0xCC62, 0xAA6F, 0xCC63, 0xAA70, 0xCC65, 0xAA71, 0xCC67, + 0xAA72, 0xCC69, 0xAA73, 0xCC6A, 0xAA74, 0xCC6B, 0xAA75, 0xCC6C, 0xAA76, 0xCC6D, 0xAA77, 0xCC6E, 0xAA78, 0xCC6F, 0xAA79, 0xCC71, + 0xAA7A, 0xCC72, 0xAA81, 0xCC73, 0xAA82, 0xCC74, 0xAA83, 0xCC76, 0xAA84, 0xCC77, 0xAA85, 0xCC78, 0xAA86, 0xCC79, 0xAA87, 0xCC7A, + 0xAA88, 0xCC7B, 0xAA89, 0xCC7C, 0xAA8A, 0xCC7D, 0xAA8B, 0xCC7E, 0xAA8C, 0xCC7F, 0xAA8D, 0xCC80, 0xAA8E, 0xCC81, 0xAA8F, 0xCC82, + 0xAA90, 0xCC83, 0xAA91, 0xCC84, 0xAA92, 0xCC85, 0xAA93, 0xCC86, 0xAA94, 0xCC87, 0xAA95, 0xCC88, 0xAA96, 0xCC89, 0xAA97, 0xCC8A, + 0xAA98, 0xCC8B, 0xAA99, 0xCC8C, 0xAA9A, 0xCC8D, 0xAA9B, 0xCC8E, 0xAA9C, 0xCC8F, 0xAA9D, 0xCC90, 0xAA9E, 0xCC91, 0xAA9F, 0xCC92, + 0xAAA0, 0xCC93, 0xAAA1, 0x3041, 0xAAA2, 0x3042, 0xAAA3, 0x3043, 0xAAA4, 0x3044, 0xAAA5, 0x3045, 0xAAA6, 0x3046, 0xAAA7, 0x3047, + 0xAAA8, 0x3048, 0xAAA9, 0x3049, 0xAAAA, 0x304A, 0xAAAB, 0x304B, 0xAAAC, 0x304C, 0xAAAD, 0x304D, 0xAAAE, 0x304E, 0xAAAF, 0x304F, + 0xAAB0, 0x3050, 0xAAB1, 0x3051, 0xAAB2, 0x3052, 0xAAB3, 0x3053, 0xAAB4, 0x3054, 0xAAB5, 0x3055, 0xAAB6, 0x3056, 0xAAB7, 0x3057, + 0xAAB8, 0x3058, 0xAAB9, 0x3059, 0xAABA, 0x305A, 0xAABB, 0x305B, 0xAABC, 0x305C, 0xAABD, 0x305D, 0xAABE, 0x305E, 0xAABF, 0x305F, + 0xAAC0, 0x3060, 0xAAC1, 0x3061, 0xAAC2, 0x3062, 0xAAC3, 0x3063, 0xAAC4, 0x3064, 0xAAC5, 0x3065, 0xAAC6, 0x3066, 0xAAC7, 0x3067, + 0xAAC8, 0x3068, 0xAAC9, 0x3069, 0xAACA, 0x306A, 0xAACB, 0x306B, 0xAACC, 0x306C, 0xAACD, 0x306D, 0xAACE, 0x306E, 0xAACF, 0x306F, + 0xAAD0, 0x3070, 0xAAD1, 0x3071, 0xAAD2, 0x3072, 0xAAD3, 0x3073, 0xAAD4, 0x3074, 0xAAD5, 0x3075, 0xAAD6, 0x3076, 0xAAD7, 0x3077, + 0xAAD8, 0x3078, 0xAAD9, 0x3079, 0xAADA, 0x307A, 0xAADB, 0x307B, 0xAADC, 0x307C, 0xAADD, 0x307D, 0xAADE, 0x307E, 0xAADF, 0x307F, + 0xAAE0, 0x3080, 0xAAE1, 0x3081, 0xAAE2, 0x3082, 0xAAE3, 0x3083, 0xAAE4, 0x3084, 0xAAE5, 0x3085, 0xAAE6, 0x3086, 0xAAE7, 0x3087, + 0xAAE8, 0x3088, 0xAAE9, 0x3089, 0xAAEA, 0x308A, 0xAAEB, 0x308B, 0xAAEC, 0x308C, 0xAAED, 0x308D, 0xAAEE, 0x308E, 0xAAEF, 0x308F, + 0xAAF0, 0x3090, 0xAAF1, 0x3091, 0xAAF2, 0x3092, 0xAAF3, 0x3093, 0xAB41, 0xCC94, 0xAB42, 0xCC95, 0xAB43, 0xCC96, 0xAB44, 0xCC97, + 0xAB45, 0xCC9A, 0xAB46, 0xCC9B, 0xAB47, 0xCC9D, 0xAB48, 0xCC9E, 0xAB49, 0xCC9F, 0xAB4A, 0xCCA1, 0xAB4B, 0xCCA2, 0xAB4C, 0xCCA3, + 0xAB4D, 0xCCA4, 0xAB4E, 0xCCA5, 0xAB4F, 0xCCA6, 0xAB50, 0xCCA7, 0xAB51, 0xCCAA, 0xAB52, 0xCCAE, 0xAB53, 0xCCAF, 0xAB54, 0xCCB0, + 0xAB55, 0xCCB1, 0xAB56, 0xCCB2, 0xAB57, 0xCCB3, 0xAB58, 0xCCB6, 0xAB59, 0xCCB7, 0xAB5A, 0xCCB9, 0xAB61, 0xCCBA, 0xAB62, 0xCCBB, + 0xAB63, 0xCCBD, 0xAB64, 0xCCBE, 0xAB65, 0xCCBF, 0xAB66, 0xCCC0, 0xAB67, 0xCCC1, 0xAB68, 0xCCC2, 0xAB69, 0xCCC3, 0xAB6A, 0xCCC6, + 0xAB6B, 0xCCC8, 0xAB6C, 0xCCCA, 0xAB6D, 0xCCCB, 0xAB6E, 0xCCCC, 0xAB6F, 0xCCCD, 0xAB70, 0xCCCE, 0xAB71, 0xCCCF, 0xAB72, 0xCCD1, + 0xAB73, 0xCCD2, 0xAB74, 0xCCD3, 0xAB75, 0xCCD5, 0xAB76, 0xCCD6, 0xAB77, 0xCCD7, 0xAB78, 0xCCD8, 0xAB79, 0xCCD9, 0xAB7A, 0xCCDA, + 0xAB81, 0xCCDB, 0xAB82, 0xCCDC, 0xAB83, 0xCCDD, 0xAB84, 0xCCDE, 0xAB85, 0xCCDF, 0xAB86, 0xCCE0, 0xAB87, 0xCCE1, 0xAB88, 0xCCE2, + 0xAB89, 0xCCE3, 0xAB8A, 0xCCE5, 0xAB8B, 0xCCE6, 0xAB8C, 0xCCE7, 0xAB8D, 0xCCE8, 0xAB8E, 0xCCE9, 0xAB8F, 0xCCEA, 0xAB90, 0xCCEB, + 0xAB91, 0xCCED, 0xAB92, 0xCCEE, 0xAB93, 0xCCEF, 0xAB94, 0xCCF1, 0xAB95, 0xCCF2, 0xAB96, 0xCCF3, 0xAB97, 0xCCF4, 0xAB98, 0xCCF5, + 0xAB99, 0xCCF6, 0xAB9A, 0xCCF7, 0xAB9B, 0xCCF8, 0xAB9C, 0xCCF9, 0xAB9D, 0xCCFA, 0xAB9E, 0xCCFB, 0xAB9F, 0xCCFC, 0xABA0, 0xCCFD, + 0xABA1, 0x30A1, 0xABA2, 0x30A2, 0xABA3, 0x30A3, 0xABA4, 0x30A4, 0xABA5, 0x30A5, 0xABA6, 0x30A6, 0xABA7, 0x30A7, 0xABA8, 0x30A8, + 0xABA9, 0x30A9, 0xABAA, 0x30AA, 0xABAB, 0x30AB, 0xABAC, 0x30AC, 0xABAD, 0x30AD, 0xABAE, 0x30AE, 0xABAF, 0x30AF, 0xABB0, 0x30B0, + 0xABB1, 0x30B1, 0xABB2, 0x30B2, 0xABB3, 0x30B3, 0xABB4, 0x30B4, 0xABB5, 0x30B5, 0xABB6, 0x30B6, 0xABB7, 0x30B7, 0xABB8, 0x30B8, + 0xABB9, 0x30B9, 0xABBA, 0x30BA, 0xABBB, 0x30BB, 0xABBC, 0x30BC, 0xABBD, 0x30BD, 0xABBE, 0x30BE, 0xABBF, 0x30BF, 0xABC0, 0x30C0, + 0xABC1, 0x30C1, 0xABC2, 0x30C2, 0xABC3, 0x30C3, 0xABC4, 0x30C4, 0xABC5, 0x30C5, 0xABC6, 0x30C6, 0xABC7, 0x30C7, 0xABC8, 0x30C8, + 0xABC9, 0x30C9, 0xABCA, 0x30CA, 0xABCB, 0x30CB, 0xABCC, 0x30CC, 0xABCD, 0x30CD, 0xABCE, 0x30CE, 0xABCF, 0x30CF, 0xABD0, 0x30D0, + 0xABD1, 0x30D1, 0xABD2, 0x30D2, 0xABD3, 0x30D3, 0xABD4, 0x30D4, 0xABD5, 0x30D5, 0xABD6, 0x30D6, 0xABD7, 0x30D7, 0xABD8, 0x30D8, + 0xABD9, 0x30D9, 0xABDA, 0x30DA, 0xABDB, 0x30DB, 0xABDC, 0x30DC, 0xABDD, 0x30DD, 0xABDE, 0x30DE, 0xABDF, 0x30DF, 0xABE0, 0x30E0, + 0xABE1, 0x30E1, 0xABE2, 0x30E2, 0xABE3, 0x30E3, 0xABE4, 0x30E4, 0xABE5, 0x30E5, 0xABE6, 0x30E6, 0xABE7, 0x30E7, 0xABE8, 0x30E8, + 0xABE9, 0x30E9, 0xABEA, 0x30EA, 0xABEB, 0x30EB, 0xABEC, 0x30EC, 0xABED, 0x30ED, 0xABEE, 0x30EE, 0xABEF, 0x30EF, 0xABF0, 0x30F0, + 0xABF1, 0x30F1, 0xABF2, 0x30F2, 0xABF3, 0x30F3, 0xABF4, 0x30F4, 0xABF5, 0x30F5, 0xABF6, 0x30F6, 0xAC41, 0xCCFE, 0xAC42, 0xCCFF, + 0xAC43, 0xCD00, 0xAC44, 0xCD02, 0xAC45, 0xCD03, 0xAC46, 0xCD04, 0xAC47, 0xCD05, 0xAC48, 0xCD06, 0xAC49, 0xCD07, 0xAC4A, 0xCD0A, + 0xAC4B, 0xCD0B, 0xAC4C, 0xCD0D, 0xAC4D, 0xCD0E, 0xAC4E, 0xCD0F, 0xAC4F, 0xCD11, 0xAC50, 0xCD12, 0xAC51, 0xCD13, 0xAC52, 0xCD14, + 0xAC53, 0xCD15, 0xAC54, 0xCD16, 0xAC55, 0xCD17, 0xAC56, 0xCD1A, 0xAC57, 0xCD1C, 0xAC58, 0xCD1E, 0xAC59, 0xCD1F, 0xAC5A, 0xCD20, + 0xAC61, 0xCD21, 0xAC62, 0xCD22, 0xAC63, 0xCD23, 0xAC64, 0xCD25, 0xAC65, 0xCD26, 0xAC66, 0xCD27, 0xAC67, 0xCD29, 0xAC68, 0xCD2A, + 0xAC69, 0xCD2B, 0xAC6A, 0xCD2D, 0xAC6B, 0xCD2E, 0xAC6C, 0xCD2F, 0xAC6D, 0xCD30, 0xAC6E, 0xCD31, 0xAC6F, 0xCD32, 0xAC70, 0xCD33, + 0xAC71, 0xCD34, 0xAC72, 0xCD35, 0xAC73, 0xCD36, 0xAC74, 0xCD37, 0xAC75, 0xCD38, 0xAC76, 0xCD3A, 0xAC77, 0xCD3B, 0xAC78, 0xCD3C, + 0xAC79, 0xCD3D, 0xAC7A, 0xCD3E, 0xAC81, 0xCD3F, 0xAC82, 0xCD40, 0xAC83, 0xCD41, 0xAC84, 0xCD42, 0xAC85, 0xCD43, 0xAC86, 0xCD44, + 0xAC87, 0xCD45, 0xAC88, 0xCD46, 0xAC89, 0xCD47, 0xAC8A, 0xCD48, 0xAC8B, 0xCD49, 0xAC8C, 0xCD4A, 0xAC8D, 0xCD4B, 0xAC8E, 0xCD4C, + 0xAC8F, 0xCD4D, 0xAC90, 0xCD4E, 0xAC91, 0xCD4F, 0xAC92, 0xCD50, 0xAC93, 0xCD51, 0xAC94, 0xCD52, 0xAC95, 0xCD53, 0xAC96, 0xCD54, + 0xAC97, 0xCD55, 0xAC98, 0xCD56, 0xAC99, 0xCD57, 0xAC9A, 0xCD58, 0xAC9B, 0xCD59, 0xAC9C, 0xCD5A, 0xAC9D, 0xCD5B, 0xAC9E, 0xCD5D, + 0xAC9F, 0xCD5E, 0xACA0, 0xCD5F, 0xACA1, 0x0410, 0xACA2, 0x0411, 0xACA3, 0x0412, 0xACA4, 0x0413, 0xACA5, 0x0414, 0xACA6, 0x0415, + 0xACA7, 0x0401, 0xACA8, 0x0416, 0xACA9, 0x0417, 0xACAA, 0x0418, 0xACAB, 0x0419, 0xACAC, 0x041A, 0xACAD, 0x041B, 0xACAE, 0x041C, + 0xACAF, 0x041D, 0xACB0, 0x041E, 0xACB1, 0x041F, 0xACB2, 0x0420, 0xACB3, 0x0421, 0xACB4, 0x0422, 0xACB5, 0x0423, 0xACB6, 0x0424, + 0xACB7, 0x0425, 0xACB8, 0x0426, 0xACB9, 0x0427, 0xACBA, 0x0428, 0xACBB, 0x0429, 0xACBC, 0x042A, 0xACBD, 0x042B, 0xACBE, 0x042C, + 0xACBF, 0x042D, 0xACC0, 0x042E, 0xACC1, 0x042F, 0xACD1, 0x0430, 0xACD2, 0x0431, 0xACD3, 0x0432, 0xACD4, 0x0433, 0xACD5, 0x0434, + 0xACD6, 0x0435, 0xACD7, 0x0451, 0xACD8, 0x0436, 0xACD9, 0x0437, 0xACDA, 0x0438, 0xACDB, 0x0439, 0xACDC, 0x043A, 0xACDD, 0x043B, + 0xACDE, 0x043C, 0xACDF, 0x043D, 0xACE0, 0x043E, 0xACE1, 0x043F, 0xACE2, 0x0440, 0xACE3, 0x0441, 0xACE4, 0x0442, 0xACE5, 0x0443, + 0xACE6, 0x0444, 0xACE7, 0x0445, 0xACE8, 0x0446, 0xACE9, 0x0447, 0xACEA, 0x0448, 0xACEB, 0x0449, 0xACEC, 0x044A, 0xACED, 0x044B, + 0xACEE, 0x044C, 0xACEF, 0x044D, 0xACF0, 0x044E, 0xACF1, 0x044F, 0xAD41, 0xCD61, 0xAD42, 0xCD62, 0xAD43, 0xCD63, 0xAD44, 0xCD65, + 0xAD45, 0xCD66, 0xAD46, 0xCD67, 0xAD47, 0xCD68, 0xAD48, 0xCD69, 0xAD49, 0xCD6A, 0xAD4A, 0xCD6B, 0xAD4B, 0xCD6E, 0xAD4C, 0xCD70, + 0xAD4D, 0xCD72, 0xAD4E, 0xCD73, 0xAD4F, 0xCD74, 0xAD50, 0xCD75, 0xAD51, 0xCD76, 0xAD52, 0xCD77, 0xAD53, 0xCD79, 0xAD54, 0xCD7A, + 0xAD55, 0xCD7B, 0xAD56, 0xCD7C, 0xAD57, 0xCD7D, 0xAD58, 0xCD7E, 0xAD59, 0xCD7F, 0xAD5A, 0xCD80, 0xAD61, 0xCD81, 0xAD62, 0xCD82, + 0xAD63, 0xCD83, 0xAD64, 0xCD84, 0xAD65, 0xCD85, 0xAD66, 0xCD86, 0xAD67, 0xCD87, 0xAD68, 0xCD89, 0xAD69, 0xCD8A, 0xAD6A, 0xCD8B, + 0xAD6B, 0xCD8C, 0xAD6C, 0xCD8D, 0xAD6D, 0xCD8E, 0xAD6E, 0xCD8F, 0xAD6F, 0xCD90, 0xAD70, 0xCD91, 0xAD71, 0xCD92, 0xAD72, 0xCD93, + 0xAD73, 0xCD96, 0xAD74, 0xCD97, 0xAD75, 0xCD99, 0xAD76, 0xCD9A, 0xAD77, 0xCD9B, 0xAD78, 0xCD9D, 0xAD79, 0xCD9E, 0xAD7A, 0xCD9F, + 0xAD81, 0xCDA0, 0xAD82, 0xCDA1, 0xAD83, 0xCDA2, 0xAD84, 0xCDA3, 0xAD85, 0xCDA6, 0xAD86, 0xCDA8, 0xAD87, 0xCDAA, 0xAD88, 0xCDAB, + 0xAD89, 0xCDAC, 0xAD8A, 0xCDAD, 0xAD8B, 0xCDAE, 0xAD8C, 0xCDAF, 0xAD8D, 0xCDB1, 0xAD8E, 0xCDB2, 0xAD8F, 0xCDB3, 0xAD90, 0xCDB4, + 0xAD91, 0xCDB5, 0xAD92, 0xCDB6, 0xAD93, 0xCDB7, 0xAD94, 0xCDB8, 0xAD95, 0xCDB9, 0xAD96, 0xCDBA, 0xAD97, 0xCDBB, 0xAD98, 0xCDBC, + 0xAD99, 0xCDBD, 0xAD9A, 0xCDBE, 0xAD9B, 0xCDBF, 0xAD9C, 0xCDC0, 0xAD9D, 0xCDC1, 0xAD9E, 0xCDC2, 0xAD9F, 0xCDC3, 0xADA0, 0xCDC5, + 0xAE41, 0xCDC6, 0xAE42, 0xCDC7, 0xAE43, 0xCDC8, 0xAE44, 0xCDC9, 0xAE45, 0xCDCA, 0xAE46, 0xCDCB, 0xAE47, 0xCDCD, 0xAE48, 0xCDCE, + 0xAE49, 0xCDCF, 0xAE4A, 0xCDD1, 0xAE4B, 0xCDD2, 0xAE4C, 0xCDD3, 0xAE4D, 0xCDD4, 0xAE4E, 0xCDD5, 0xAE4F, 0xCDD6, 0xAE50, 0xCDD7, + 0xAE51, 0xCDD8, 0xAE52, 0xCDD9, 0xAE53, 0xCDDA, 0xAE54, 0xCDDB, 0xAE55, 0xCDDC, 0xAE56, 0xCDDD, 0xAE57, 0xCDDE, 0xAE58, 0xCDDF, + 0xAE59, 0xCDE0, 0xAE5A, 0xCDE1, 0xAE61, 0xCDE2, 0xAE62, 0xCDE3, 0xAE63, 0xCDE4, 0xAE64, 0xCDE5, 0xAE65, 0xCDE6, 0xAE66, 0xCDE7, + 0xAE67, 0xCDE9, 0xAE68, 0xCDEA, 0xAE69, 0xCDEB, 0xAE6A, 0xCDED, 0xAE6B, 0xCDEE, 0xAE6C, 0xCDEF, 0xAE6D, 0xCDF1, 0xAE6E, 0xCDF2, + 0xAE6F, 0xCDF3, 0xAE70, 0xCDF4, 0xAE71, 0xCDF5, 0xAE72, 0xCDF6, 0xAE73, 0xCDF7, 0xAE74, 0xCDFA, 0xAE75, 0xCDFC, 0xAE76, 0xCDFE, + 0xAE77, 0xCDFF, 0xAE78, 0xCE00, 0xAE79, 0xCE01, 0xAE7A, 0xCE02, 0xAE81, 0xCE03, 0xAE82, 0xCE05, 0xAE83, 0xCE06, 0xAE84, 0xCE07, + 0xAE85, 0xCE09, 0xAE86, 0xCE0A, 0xAE87, 0xCE0B, 0xAE88, 0xCE0D, 0xAE89, 0xCE0E, 0xAE8A, 0xCE0F, 0xAE8B, 0xCE10, 0xAE8C, 0xCE11, + 0xAE8D, 0xCE12, 0xAE8E, 0xCE13, 0xAE8F, 0xCE15, 0xAE90, 0xCE16, 0xAE91, 0xCE17, 0xAE92, 0xCE18, 0xAE93, 0xCE1A, 0xAE94, 0xCE1B, + 0xAE95, 0xCE1C, 0xAE96, 0xCE1D, 0xAE97, 0xCE1E, 0xAE98, 0xCE1F, 0xAE99, 0xCE22, 0xAE9A, 0xCE23, 0xAE9B, 0xCE25, 0xAE9C, 0xCE26, + 0xAE9D, 0xCE27, 0xAE9E, 0xCE29, 0xAE9F, 0xCE2A, 0xAEA0, 0xCE2B, 0xAF41, 0xCE2C, 0xAF42, 0xCE2D, 0xAF43, 0xCE2E, 0xAF44, 0xCE2F, + 0xAF45, 0xCE32, 0xAF46, 0xCE34, 0xAF47, 0xCE36, 0xAF48, 0xCE37, 0xAF49, 0xCE38, 0xAF4A, 0xCE39, 0xAF4B, 0xCE3A, 0xAF4C, 0xCE3B, + 0xAF4D, 0xCE3C, 0xAF4E, 0xCE3D, 0xAF4F, 0xCE3E, 0xAF50, 0xCE3F, 0xAF51, 0xCE40, 0xAF52, 0xCE41, 0xAF53, 0xCE42, 0xAF54, 0xCE43, + 0xAF55, 0xCE44, 0xAF56, 0xCE45, 0xAF57, 0xCE46, 0xAF58, 0xCE47, 0xAF59, 0xCE48, 0xAF5A, 0xCE49, 0xAF61, 0xCE4A, 0xAF62, 0xCE4B, + 0xAF63, 0xCE4C, 0xAF64, 0xCE4D, 0xAF65, 0xCE4E, 0xAF66, 0xCE4F, 0xAF67, 0xCE50, 0xAF68, 0xCE51, 0xAF69, 0xCE52, 0xAF6A, 0xCE53, + 0xAF6B, 0xCE54, 0xAF6C, 0xCE55, 0xAF6D, 0xCE56, 0xAF6E, 0xCE57, 0xAF6F, 0xCE5A, 0xAF70, 0xCE5B, 0xAF71, 0xCE5D, 0xAF72, 0xCE5E, + 0xAF73, 0xCE62, 0xAF74, 0xCE63, 0xAF75, 0xCE64, 0xAF76, 0xCE65, 0xAF77, 0xCE66, 0xAF78, 0xCE67, 0xAF79, 0xCE6A, 0xAF7A, 0xCE6C, + 0xAF81, 0xCE6E, 0xAF82, 0xCE6F, 0xAF83, 0xCE70, 0xAF84, 0xCE71, 0xAF85, 0xCE72, 0xAF86, 0xCE73, 0xAF87, 0xCE76, 0xAF88, 0xCE77, + 0xAF89, 0xCE79, 0xAF8A, 0xCE7A, 0xAF8B, 0xCE7B, 0xAF8C, 0xCE7D, 0xAF8D, 0xCE7E, 0xAF8E, 0xCE7F, 0xAF8F, 0xCE80, 0xAF90, 0xCE81, + 0xAF91, 0xCE82, 0xAF92, 0xCE83, 0xAF93, 0xCE86, 0xAF94, 0xCE88, 0xAF95, 0xCE8A, 0xAF96, 0xCE8B, 0xAF97, 0xCE8C, 0xAF98, 0xCE8D, + 0xAF99, 0xCE8E, 0xAF9A, 0xCE8F, 0xAF9B, 0xCE92, 0xAF9C, 0xCE93, 0xAF9D, 0xCE95, 0xAF9E, 0xCE96, 0xAF9F, 0xCE97, 0xAFA0, 0xCE99, + 0xB041, 0xCE9A, 0xB042, 0xCE9B, 0xB043, 0xCE9C, 0xB044, 0xCE9D, 0xB045, 0xCE9E, 0xB046, 0xCE9F, 0xB047, 0xCEA2, 0xB048, 0xCEA6, + 0xB049, 0xCEA7, 0xB04A, 0xCEA8, 0xB04B, 0xCEA9, 0xB04C, 0xCEAA, 0xB04D, 0xCEAB, 0xB04E, 0xCEAE, 0xB04F, 0xCEAF, 0xB050, 0xCEB0, + 0xB051, 0xCEB1, 0xB052, 0xCEB2, 0xB053, 0xCEB3, 0xB054, 0xCEB4, 0xB055, 0xCEB5, 0xB056, 0xCEB6, 0xB057, 0xCEB7, 0xB058, 0xCEB8, + 0xB059, 0xCEB9, 0xB05A, 0xCEBA, 0xB061, 0xCEBB, 0xB062, 0xCEBC, 0xB063, 0xCEBD, 0xB064, 0xCEBE, 0xB065, 0xCEBF, 0xB066, 0xCEC0, + 0xB067, 0xCEC2, 0xB068, 0xCEC3, 0xB069, 0xCEC4, 0xB06A, 0xCEC5, 0xB06B, 0xCEC6, 0xB06C, 0xCEC7, 0xB06D, 0xCEC8, 0xB06E, 0xCEC9, + 0xB06F, 0xCECA, 0xB070, 0xCECB, 0xB071, 0xCECC, 0xB072, 0xCECD, 0xB073, 0xCECE, 0xB074, 0xCECF, 0xB075, 0xCED0, 0xB076, 0xCED1, + 0xB077, 0xCED2, 0xB078, 0xCED3, 0xB079, 0xCED4, 0xB07A, 0xCED5, 0xB081, 0xCED6, 0xB082, 0xCED7, 0xB083, 0xCED8, 0xB084, 0xCED9, + 0xB085, 0xCEDA, 0xB086, 0xCEDB, 0xB087, 0xCEDC, 0xB088, 0xCEDD, 0xB089, 0xCEDE, 0xB08A, 0xCEDF, 0xB08B, 0xCEE0, 0xB08C, 0xCEE1, + 0xB08D, 0xCEE2, 0xB08E, 0xCEE3, 0xB08F, 0xCEE6, 0xB090, 0xCEE7, 0xB091, 0xCEE9, 0xB092, 0xCEEA, 0xB093, 0xCEED, 0xB094, 0xCEEE, + 0xB095, 0xCEEF, 0xB096, 0xCEF0, 0xB097, 0xCEF1, 0xB098, 0xCEF2, 0xB099, 0xCEF3, 0xB09A, 0xCEF6, 0xB09B, 0xCEFA, 0xB09C, 0xCEFB, + 0xB09D, 0xCEFC, 0xB09E, 0xCEFD, 0xB09F, 0xCEFE, 0xB0A0, 0xCEFF, 0xB0A1, 0xAC00, 0xB0A2, 0xAC01, 0xB0A3, 0xAC04, 0xB0A4, 0xAC07, + 0xB0A5, 0xAC08, 0xB0A6, 0xAC09, 0xB0A7, 0xAC0A, 0xB0A8, 0xAC10, 0xB0A9, 0xAC11, 0xB0AA, 0xAC12, 0xB0AB, 0xAC13, 0xB0AC, 0xAC14, + 0xB0AD, 0xAC15, 0xB0AE, 0xAC16, 0xB0AF, 0xAC17, 0xB0B0, 0xAC19, 0xB0B1, 0xAC1A, 0xB0B2, 0xAC1B, 0xB0B3, 0xAC1C, 0xB0B4, 0xAC1D, + 0xB0B5, 0xAC20, 0xB0B6, 0xAC24, 0xB0B7, 0xAC2C, 0xB0B8, 0xAC2D, 0xB0B9, 0xAC2F, 0xB0BA, 0xAC30, 0xB0BB, 0xAC31, 0xB0BC, 0xAC38, + 0xB0BD, 0xAC39, 0xB0BE, 0xAC3C, 0xB0BF, 0xAC40, 0xB0C0, 0xAC4B, 0xB0C1, 0xAC4D, 0xB0C2, 0xAC54, 0xB0C3, 0xAC58, 0xB0C4, 0xAC5C, + 0xB0C5, 0xAC70, 0xB0C6, 0xAC71, 0xB0C7, 0xAC74, 0xB0C8, 0xAC77, 0xB0C9, 0xAC78, 0xB0CA, 0xAC7A, 0xB0CB, 0xAC80, 0xB0CC, 0xAC81, + 0xB0CD, 0xAC83, 0xB0CE, 0xAC84, 0xB0CF, 0xAC85, 0xB0D0, 0xAC86, 0xB0D1, 0xAC89, 0xB0D2, 0xAC8A, 0xB0D3, 0xAC8B, 0xB0D4, 0xAC8C, + 0xB0D5, 0xAC90, 0xB0D6, 0xAC94, 0xB0D7, 0xAC9C, 0xB0D8, 0xAC9D, 0xB0D9, 0xAC9F, 0xB0DA, 0xACA0, 0xB0DB, 0xACA1, 0xB0DC, 0xACA8, + 0xB0DD, 0xACA9, 0xB0DE, 0xACAA, 0xB0DF, 0xACAC, 0xB0E0, 0xACAF, 0xB0E1, 0xACB0, 0xB0E2, 0xACB8, 0xB0E3, 0xACB9, 0xB0E4, 0xACBB, + 0xB0E5, 0xACBC, 0xB0E6, 0xACBD, 0xB0E7, 0xACC1, 0xB0E8, 0xACC4, 0xB0E9, 0xACC8, 0xB0EA, 0xACCC, 0xB0EB, 0xACD5, 0xB0EC, 0xACD7, + 0xB0ED, 0xACE0, 0xB0EE, 0xACE1, 0xB0EF, 0xACE4, 0xB0F0, 0xACE7, 0xB0F1, 0xACE8, 0xB0F2, 0xACEA, 0xB0F3, 0xACEC, 0xB0F4, 0xACEF, + 0xB0F5, 0xACF0, 0xB0F6, 0xACF1, 0xB0F7, 0xACF3, 0xB0F8, 0xACF5, 0xB0F9, 0xACF6, 0xB0FA, 0xACFC, 0xB0FB, 0xACFD, 0xB0FC, 0xAD00, + 0xB0FD, 0xAD04, 0xB0FE, 0xAD06, 0xB141, 0xCF02, 0xB142, 0xCF03, 0xB143, 0xCF05, 0xB144, 0xCF06, 0xB145, 0xCF07, 0xB146, 0xCF09, + 0xB147, 0xCF0A, 0xB148, 0xCF0B, 0xB149, 0xCF0C, 0xB14A, 0xCF0D, 0xB14B, 0xCF0E, 0xB14C, 0xCF0F, 0xB14D, 0xCF12, 0xB14E, 0xCF14, + 0xB14F, 0xCF16, 0xB150, 0xCF17, 0xB151, 0xCF18, 0xB152, 0xCF19, 0xB153, 0xCF1A, 0xB154, 0xCF1B, 0xB155, 0xCF1D, 0xB156, 0xCF1E, + 0xB157, 0xCF1F, 0xB158, 0xCF21, 0xB159, 0xCF22, 0xB15A, 0xCF23, 0xB161, 0xCF25, 0xB162, 0xCF26, 0xB163, 0xCF27, 0xB164, 0xCF28, + 0xB165, 0xCF29, 0xB166, 0xCF2A, 0xB167, 0xCF2B, 0xB168, 0xCF2E, 0xB169, 0xCF32, 0xB16A, 0xCF33, 0xB16B, 0xCF34, 0xB16C, 0xCF35, + 0xB16D, 0xCF36, 0xB16E, 0xCF37, 0xB16F, 0xCF39, 0xB170, 0xCF3A, 0xB171, 0xCF3B, 0xB172, 0xCF3C, 0xB173, 0xCF3D, 0xB174, 0xCF3E, + 0xB175, 0xCF3F, 0xB176, 0xCF40, 0xB177, 0xCF41, 0xB178, 0xCF42, 0xB179, 0xCF43, 0xB17A, 0xCF44, 0xB181, 0xCF45, 0xB182, 0xCF46, + 0xB183, 0xCF47, 0xB184, 0xCF48, 0xB185, 0xCF49, 0xB186, 0xCF4A, 0xB187, 0xCF4B, 0xB188, 0xCF4C, 0xB189, 0xCF4D, 0xB18A, 0xCF4E, + 0xB18B, 0xCF4F, 0xB18C, 0xCF50, 0xB18D, 0xCF51, 0xB18E, 0xCF52, 0xB18F, 0xCF53, 0xB190, 0xCF56, 0xB191, 0xCF57, 0xB192, 0xCF59, + 0xB193, 0xCF5A, 0xB194, 0xCF5B, 0xB195, 0xCF5D, 0xB196, 0xCF5E, 0xB197, 0xCF5F, 0xB198, 0xCF60, 0xB199, 0xCF61, 0xB19A, 0xCF62, + 0xB19B, 0xCF63, 0xB19C, 0xCF66, 0xB19D, 0xCF68, 0xB19E, 0xCF6A, 0xB19F, 0xCF6B, 0xB1A0, 0xCF6C, 0xB1A1, 0xAD0C, 0xB1A2, 0xAD0D, + 0xB1A3, 0xAD0F, 0xB1A4, 0xAD11, 0xB1A5, 0xAD18, 0xB1A6, 0xAD1C, 0xB1A7, 0xAD20, 0xB1A8, 0xAD29, 0xB1A9, 0xAD2C, 0xB1AA, 0xAD2D, + 0xB1AB, 0xAD34, 0xB1AC, 0xAD35, 0xB1AD, 0xAD38, 0xB1AE, 0xAD3C, 0xB1AF, 0xAD44, 0xB1B0, 0xAD45, 0xB1B1, 0xAD47, 0xB1B2, 0xAD49, + 0xB1B3, 0xAD50, 0xB1B4, 0xAD54, 0xB1B5, 0xAD58, 0xB1B6, 0xAD61, 0xB1B7, 0xAD63, 0xB1B8, 0xAD6C, 0xB1B9, 0xAD6D, 0xB1BA, 0xAD70, + 0xB1BB, 0xAD73, 0xB1BC, 0xAD74, 0xB1BD, 0xAD75, 0xB1BE, 0xAD76, 0xB1BF, 0xAD7B, 0xB1C0, 0xAD7C, 0xB1C1, 0xAD7D, 0xB1C2, 0xAD7F, + 0xB1C3, 0xAD81, 0xB1C4, 0xAD82, 0xB1C5, 0xAD88, 0xB1C6, 0xAD89, 0xB1C7, 0xAD8C, 0xB1C8, 0xAD90, 0xB1C9, 0xAD9C, 0xB1CA, 0xAD9D, + 0xB1CB, 0xADA4, 0xB1CC, 0xADB7, 0xB1CD, 0xADC0, 0xB1CE, 0xADC1, 0xB1CF, 0xADC4, 0xB1D0, 0xADC8, 0xB1D1, 0xADD0, 0xB1D2, 0xADD1, + 0xB1D3, 0xADD3, 0xB1D4, 0xADDC, 0xB1D5, 0xADE0, 0xB1D6, 0xADE4, 0xB1D7, 0xADF8, 0xB1D8, 0xADF9, 0xB1D9, 0xADFC, 0xB1DA, 0xADFF, + 0xB1DB, 0xAE00, 0xB1DC, 0xAE01, 0xB1DD, 0xAE08, 0xB1DE, 0xAE09, 0xB1DF, 0xAE0B, 0xB1E0, 0xAE0D, 0xB1E1, 0xAE14, 0xB1E2, 0xAE30, + 0xB1E3, 0xAE31, 0xB1E4, 0xAE34, 0xB1E5, 0xAE37, 0xB1E6, 0xAE38, 0xB1E7, 0xAE3A, 0xB1E8, 0xAE40, 0xB1E9, 0xAE41, 0xB1EA, 0xAE43, + 0xB1EB, 0xAE45, 0xB1EC, 0xAE46, 0xB1ED, 0xAE4A, 0xB1EE, 0xAE4C, 0xB1EF, 0xAE4D, 0xB1F0, 0xAE4E, 0xB1F1, 0xAE50, 0xB1F2, 0xAE54, + 0xB1F3, 0xAE56, 0xB1F4, 0xAE5C, 0xB1F5, 0xAE5D, 0xB1F6, 0xAE5F, 0xB1F7, 0xAE60, 0xB1F8, 0xAE61, 0xB1F9, 0xAE65, 0xB1FA, 0xAE68, + 0xB1FB, 0xAE69, 0xB1FC, 0xAE6C, 0xB1FD, 0xAE70, 0xB1FE, 0xAE78, 0xB241, 0xCF6D, 0xB242, 0xCF6E, 0xB243, 0xCF6F, 0xB244, 0xCF72, + 0xB245, 0xCF73, 0xB246, 0xCF75, 0xB247, 0xCF76, 0xB248, 0xCF77, 0xB249, 0xCF79, 0xB24A, 0xCF7A, 0xB24B, 0xCF7B, 0xB24C, 0xCF7C, + 0xB24D, 0xCF7D, 0xB24E, 0xCF7E, 0xB24F, 0xCF7F, 0xB250, 0xCF81, 0xB251, 0xCF82, 0xB252, 0xCF83, 0xB253, 0xCF84, 0xB254, 0xCF86, + 0xB255, 0xCF87, 0xB256, 0xCF88, 0xB257, 0xCF89, 0xB258, 0xCF8A, 0xB259, 0xCF8B, 0xB25A, 0xCF8D, 0xB261, 0xCF8E, 0xB262, 0xCF8F, + 0xB263, 0xCF90, 0xB264, 0xCF91, 0xB265, 0xCF92, 0xB266, 0xCF93, 0xB267, 0xCF94, 0xB268, 0xCF95, 0xB269, 0xCF96, 0xB26A, 0xCF97, + 0xB26B, 0xCF98, 0xB26C, 0xCF99, 0xB26D, 0xCF9A, 0xB26E, 0xCF9B, 0xB26F, 0xCF9C, 0xB270, 0xCF9D, 0xB271, 0xCF9E, 0xB272, 0xCF9F, + 0xB273, 0xCFA0, 0xB274, 0xCFA2, 0xB275, 0xCFA3, 0xB276, 0xCFA4, 0xB277, 0xCFA5, 0xB278, 0xCFA6, 0xB279, 0xCFA7, 0xB27A, 0xCFA9, + 0xB281, 0xCFAA, 0xB282, 0xCFAB, 0xB283, 0xCFAC, 0xB284, 0xCFAD, 0xB285, 0xCFAE, 0xB286, 0xCFAF, 0xB287, 0xCFB1, 0xB288, 0xCFB2, + 0xB289, 0xCFB3, 0xB28A, 0xCFB4, 0xB28B, 0xCFB5, 0xB28C, 0xCFB6, 0xB28D, 0xCFB7, 0xB28E, 0xCFB8, 0xB28F, 0xCFB9, 0xB290, 0xCFBA, + 0xB291, 0xCFBB, 0xB292, 0xCFBC, 0xB293, 0xCFBD, 0xB294, 0xCFBE, 0xB295, 0xCFBF, 0xB296, 0xCFC0, 0xB297, 0xCFC1, 0xB298, 0xCFC2, + 0xB299, 0xCFC3, 0xB29A, 0xCFC5, 0xB29B, 0xCFC6, 0xB29C, 0xCFC7, 0xB29D, 0xCFC8, 0xB29E, 0xCFC9, 0xB29F, 0xCFCA, 0xB2A0, 0xCFCB, + 0xB2A1, 0xAE79, 0xB2A2, 0xAE7B, 0xB2A3, 0xAE7C, 0xB2A4, 0xAE7D, 0xB2A5, 0xAE84, 0xB2A6, 0xAE85, 0xB2A7, 0xAE8C, 0xB2A8, 0xAEBC, + 0xB2A9, 0xAEBD, 0xB2AA, 0xAEBE, 0xB2AB, 0xAEC0, 0xB2AC, 0xAEC4, 0xB2AD, 0xAECC, 0xB2AE, 0xAECD, 0xB2AF, 0xAECF, 0xB2B0, 0xAED0, + 0xB2B1, 0xAED1, 0xB2B2, 0xAED8, 0xB2B3, 0xAED9, 0xB2B4, 0xAEDC, 0xB2B5, 0xAEE8, 0xB2B6, 0xAEEB, 0xB2B7, 0xAEED, 0xB2B8, 0xAEF4, + 0xB2B9, 0xAEF8, 0xB2BA, 0xAEFC, 0xB2BB, 0xAF07, 0xB2BC, 0xAF08, 0xB2BD, 0xAF0D, 0xB2BE, 0xAF10, 0xB2BF, 0xAF2C, 0xB2C0, 0xAF2D, + 0xB2C1, 0xAF30, 0xB2C2, 0xAF32, 0xB2C3, 0xAF34, 0xB2C4, 0xAF3C, 0xB2C5, 0xAF3D, 0xB2C6, 0xAF3F, 0xB2C7, 0xAF41, 0xB2C8, 0xAF42, + 0xB2C9, 0xAF43, 0xB2CA, 0xAF48, 0xB2CB, 0xAF49, 0xB2CC, 0xAF50, 0xB2CD, 0xAF5C, 0xB2CE, 0xAF5D, 0xB2CF, 0xAF64, 0xB2D0, 0xAF65, + 0xB2D1, 0xAF79, 0xB2D2, 0xAF80, 0xB2D3, 0xAF84, 0xB2D4, 0xAF88, 0xB2D5, 0xAF90, 0xB2D6, 0xAF91, 0xB2D7, 0xAF95, 0xB2D8, 0xAF9C, + 0xB2D9, 0xAFB8, 0xB2DA, 0xAFB9, 0xB2DB, 0xAFBC, 0xB2DC, 0xAFC0, 0xB2DD, 0xAFC7, 0xB2DE, 0xAFC8, 0xB2DF, 0xAFC9, 0xB2E0, 0xAFCB, + 0xB2E1, 0xAFCD, 0xB2E2, 0xAFCE, 0xB2E3, 0xAFD4, 0xB2E4, 0xAFDC, 0xB2E5, 0xAFE8, 0xB2E6, 0xAFE9, 0xB2E7, 0xAFF0, 0xB2E8, 0xAFF1, + 0xB2E9, 0xAFF4, 0xB2EA, 0xAFF8, 0xB2EB, 0xB000, 0xB2EC, 0xB001, 0xB2ED, 0xB004, 0xB2EE, 0xB00C, 0xB2EF, 0xB010, 0xB2F0, 0xB014, + 0xB2F1, 0xB01C, 0xB2F2, 0xB01D, 0xB2F3, 0xB028, 0xB2F4, 0xB044, 0xB2F5, 0xB045, 0xB2F6, 0xB048, 0xB2F7, 0xB04A, 0xB2F8, 0xB04C, + 0xB2F9, 0xB04E, 0xB2FA, 0xB053, 0xB2FB, 0xB054, 0xB2FC, 0xB055, 0xB2FD, 0xB057, 0xB2FE, 0xB059, 0xB341, 0xCFCC, 0xB342, 0xCFCD, + 0xB343, 0xCFCE, 0xB344, 0xCFCF, 0xB345, 0xCFD0, 0xB346, 0xCFD1, 0xB347, 0xCFD2, 0xB348, 0xCFD3, 0xB349, 0xCFD4, 0xB34A, 0xCFD5, + 0xB34B, 0xCFD6, 0xB34C, 0xCFD7, 0xB34D, 0xCFD8, 0xB34E, 0xCFD9, 0xB34F, 0xCFDA, 0xB350, 0xCFDB, 0xB351, 0xCFDC, 0xB352, 0xCFDD, + 0xB353, 0xCFDE, 0xB354, 0xCFDF, 0xB355, 0xCFE2, 0xB356, 0xCFE3, 0xB357, 0xCFE5, 0xB358, 0xCFE6, 0xB359, 0xCFE7, 0xB35A, 0xCFE9, + 0xB361, 0xCFEA, 0xB362, 0xCFEB, 0xB363, 0xCFEC, 0xB364, 0xCFED, 0xB365, 0xCFEE, 0xB366, 0xCFEF, 0xB367, 0xCFF2, 0xB368, 0xCFF4, + 0xB369, 0xCFF6, 0xB36A, 0xCFF7, 0xB36B, 0xCFF8, 0xB36C, 0xCFF9, 0xB36D, 0xCFFA, 0xB36E, 0xCFFB, 0xB36F, 0xCFFD, 0xB370, 0xCFFE, + 0xB371, 0xCFFF, 0xB372, 0xD001, 0xB373, 0xD002, 0xB374, 0xD003, 0xB375, 0xD005, 0xB376, 0xD006, 0xB377, 0xD007, 0xB378, 0xD008, + 0xB379, 0xD009, 0xB37A, 0xD00A, 0xB381, 0xD00B, 0xB382, 0xD00C, 0xB383, 0xD00D, 0xB384, 0xD00E, 0xB385, 0xD00F, 0xB386, 0xD010, + 0xB387, 0xD012, 0xB388, 0xD013, 0xB389, 0xD014, 0xB38A, 0xD015, 0xB38B, 0xD016, 0xB38C, 0xD017, 0xB38D, 0xD019, 0xB38E, 0xD01A, + 0xB38F, 0xD01B, 0xB390, 0xD01C, 0xB391, 0xD01D, 0xB392, 0xD01E, 0xB393, 0xD01F, 0xB394, 0xD020, 0xB395, 0xD021, 0xB396, 0xD022, + 0xB397, 0xD023, 0xB398, 0xD024, 0xB399, 0xD025, 0xB39A, 0xD026, 0xB39B, 0xD027, 0xB39C, 0xD028, 0xB39D, 0xD029, 0xB39E, 0xD02A, + 0xB39F, 0xD02B, 0xB3A0, 0xD02C, 0xB3A1, 0xB05D, 0xB3A2, 0xB07C, 0xB3A3, 0xB07D, 0xB3A4, 0xB080, 0xB3A5, 0xB084, 0xB3A6, 0xB08C, + 0xB3A7, 0xB08D, 0xB3A8, 0xB08F, 0xB3A9, 0xB091, 0xB3AA, 0xB098, 0xB3AB, 0xB099, 0xB3AC, 0xB09A, 0xB3AD, 0xB09C, 0xB3AE, 0xB09F, + 0xB3AF, 0xB0A0, 0xB3B0, 0xB0A1, 0xB3B1, 0xB0A2, 0xB3B2, 0xB0A8, 0xB3B3, 0xB0A9, 0xB3B4, 0xB0AB, 0xB3B5, 0xB0AC, 0xB3B6, 0xB0AD, + 0xB3B7, 0xB0AE, 0xB3B8, 0xB0AF, 0xB3B9, 0xB0B1, 0xB3BA, 0xB0B3, 0xB3BB, 0xB0B4, 0xB3BC, 0xB0B5, 0xB3BD, 0xB0B8, 0xB3BE, 0xB0BC, + 0xB3BF, 0xB0C4, 0xB3C0, 0xB0C5, 0xB3C1, 0xB0C7, 0xB3C2, 0xB0C8, 0xB3C3, 0xB0C9, 0xB3C4, 0xB0D0, 0xB3C5, 0xB0D1, 0xB3C6, 0xB0D4, + 0xB3C7, 0xB0D8, 0xB3C8, 0xB0E0, 0xB3C9, 0xB0E5, 0xB3CA, 0xB108, 0xB3CB, 0xB109, 0xB3CC, 0xB10B, 0xB3CD, 0xB10C, 0xB3CE, 0xB110, + 0xB3CF, 0xB112, 0xB3D0, 0xB113, 0xB3D1, 0xB118, 0xB3D2, 0xB119, 0xB3D3, 0xB11B, 0xB3D4, 0xB11C, 0xB3D5, 0xB11D, 0xB3D6, 0xB123, + 0xB3D7, 0xB124, 0xB3D8, 0xB125, 0xB3D9, 0xB128, 0xB3DA, 0xB12C, 0xB3DB, 0xB134, 0xB3DC, 0xB135, 0xB3DD, 0xB137, 0xB3DE, 0xB138, + 0xB3DF, 0xB139, 0xB3E0, 0xB140, 0xB3E1, 0xB141, 0xB3E2, 0xB144, 0xB3E3, 0xB148, 0xB3E4, 0xB150, 0xB3E5, 0xB151, 0xB3E6, 0xB154, + 0xB3E7, 0xB155, 0xB3E8, 0xB158, 0xB3E9, 0xB15C, 0xB3EA, 0xB160, 0xB3EB, 0xB178, 0xB3EC, 0xB179, 0xB3ED, 0xB17C, 0xB3EE, 0xB180, + 0xB3EF, 0xB182, 0xB3F0, 0xB188, 0xB3F1, 0xB189, 0xB3F2, 0xB18B, 0xB3F3, 0xB18D, 0xB3F4, 0xB192, 0xB3F5, 0xB193, 0xB3F6, 0xB194, + 0xB3F7, 0xB198, 0xB3F8, 0xB19C, 0xB3F9, 0xB1A8, 0xB3FA, 0xB1CC, 0xB3FB, 0xB1D0, 0xB3FC, 0xB1D4, 0xB3FD, 0xB1DC, 0xB3FE, 0xB1DD, + 0xB441, 0xD02E, 0xB442, 0xD02F, 0xB443, 0xD030, 0xB444, 0xD031, 0xB445, 0xD032, 0xB446, 0xD033, 0xB447, 0xD036, 0xB448, 0xD037, + 0xB449, 0xD039, 0xB44A, 0xD03A, 0xB44B, 0xD03B, 0xB44C, 0xD03D, 0xB44D, 0xD03E, 0xB44E, 0xD03F, 0xB44F, 0xD040, 0xB450, 0xD041, + 0xB451, 0xD042, 0xB452, 0xD043, 0xB453, 0xD046, 0xB454, 0xD048, 0xB455, 0xD04A, 0xB456, 0xD04B, 0xB457, 0xD04C, 0xB458, 0xD04D, + 0xB459, 0xD04E, 0xB45A, 0xD04F, 0xB461, 0xD051, 0xB462, 0xD052, 0xB463, 0xD053, 0xB464, 0xD055, 0xB465, 0xD056, 0xB466, 0xD057, + 0xB467, 0xD059, 0xB468, 0xD05A, 0xB469, 0xD05B, 0xB46A, 0xD05C, 0xB46B, 0xD05D, 0xB46C, 0xD05E, 0xB46D, 0xD05F, 0xB46E, 0xD061, + 0xB46F, 0xD062, 0xB470, 0xD063, 0xB471, 0xD064, 0xB472, 0xD065, 0xB473, 0xD066, 0xB474, 0xD067, 0xB475, 0xD068, 0xB476, 0xD069, + 0xB477, 0xD06A, 0xB478, 0xD06B, 0xB479, 0xD06E, 0xB47A, 0xD06F, 0xB481, 0xD071, 0xB482, 0xD072, 0xB483, 0xD073, 0xB484, 0xD075, + 0xB485, 0xD076, 0xB486, 0xD077, 0xB487, 0xD078, 0xB488, 0xD079, 0xB489, 0xD07A, 0xB48A, 0xD07B, 0xB48B, 0xD07E, 0xB48C, 0xD07F, + 0xB48D, 0xD080, 0xB48E, 0xD082, 0xB48F, 0xD083, 0xB490, 0xD084, 0xB491, 0xD085, 0xB492, 0xD086, 0xB493, 0xD087, 0xB494, 0xD088, + 0xB495, 0xD089, 0xB496, 0xD08A, 0xB497, 0xD08B, 0xB498, 0xD08C, 0xB499, 0xD08D, 0xB49A, 0xD08E, 0xB49B, 0xD08F, 0xB49C, 0xD090, + 0xB49D, 0xD091, 0xB49E, 0xD092, 0xB49F, 0xD093, 0xB4A0, 0xD094, 0xB4A1, 0xB1DF, 0xB4A2, 0xB1E8, 0xB4A3, 0xB1E9, 0xB4A4, 0xB1EC, + 0xB4A5, 0xB1F0, 0xB4A6, 0xB1F9, 0xB4A7, 0xB1FB, 0xB4A8, 0xB1FD, 0xB4A9, 0xB204, 0xB4AA, 0xB205, 0xB4AB, 0xB208, 0xB4AC, 0xB20B, + 0xB4AD, 0xB20C, 0xB4AE, 0xB214, 0xB4AF, 0xB215, 0xB4B0, 0xB217, 0xB4B1, 0xB219, 0xB4B2, 0xB220, 0xB4B3, 0xB234, 0xB4B4, 0xB23C, + 0xB4B5, 0xB258, 0xB4B6, 0xB25C, 0xB4B7, 0xB260, 0xB4B8, 0xB268, 0xB4B9, 0xB269, 0xB4BA, 0xB274, 0xB4BB, 0xB275, 0xB4BC, 0xB27C, + 0xB4BD, 0xB284, 0xB4BE, 0xB285, 0xB4BF, 0xB289, 0xB4C0, 0xB290, 0xB4C1, 0xB291, 0xB4C2, 0xB294, 0xB4C3, 0xB298, 0xB4C4, 0xB299, + 0xB4C5, 0xB29A, 0xB4C6, 0xB2A0, 0xB4C7, 0xB2A1, 0xB4C8, 0xB2A3, 0xB4C9, 0xB2A5, 0xB4CA, 0xB2A6, 0xB4CB, 0xB2AA, 0xB4CC, 0xB2AC, + 0xB4CD, 0xB2B0, 0xB4CE, 0xB2B4, 0xB4CF, 0xB2C8, 0xB4D0, 0xB2C9, 0xB4D1, 0xB2CC, 0xB4D2, 0xB2D0, 0xB4D3, 0xB2D2, 0xB4D4, 0xB2D8, + 0xB4D5, 0xB2D9, 0xB4D6, 0xB2DB, 0xB4D7, 0xB2DD, 0xB4D8, 0xB2E2, 0xB4D9, 0xB2E4, 0xB4DA, 0xB2E5, 0xB4DB, 0xB2E6, 0xB4DC, 0xB2E8, + 0xB4DD, 0xB2EB, 0xB4DE, 0xB2EC, 0xB4DF, 0xB2ED, 0xB4E0, 0xB2EE, 0xB4E1, 0xB2EF, 0xB4E2, 0xB2F3, 0xB4E3, 0xB2F4, 0xB4E4, 0xB2F5, + 0xB4E5, 0xB2F7, 0xB4E6, 0xB2F8, 0xB4E7, 0xB2F9, 0xB4E8, 0xB2FA, 0xB4E9, 0xB2FB, 0xB4EA, 0xB2FF, 0xB4EB, 0xB300, 0xB4EC, 0xB301, + 0xB4ED, 0xB304, 0xB4EE, 0xB308, 0xB4EF, 0xB310, 0xB4F0, 0xB311, 0xB4F1, 0xB313, 0xB4F2, 0xB314, 0xB4F3, 0xB315, 0xB4F4, 0xB31C, + 0xB4F5, 0xB354, 0xB4F6, 0xB355, 0xB4F7, 0xB356, 0xB4F8, 0xB358, 0xB4F9, 0xB35B, 0xB4FA, 0xB35C, 0xB4FB, 0xB35E, 0xB4FC, 0xB35F, + 0xB4FD, 0xB364, 0xB4FE, 0xB365, 0xB541, 0xD095, 0xB542, 0xD096, 0xB543, 0xD097, 0xB544, 0xD098, 0xB545, 0xD099, 0xB546, 0xD09A, + 0xB547, 0xD09B, 0xB548, 0xD09C, 0xB549, 0xD09D, 0xB54A, 0xD09E, 0xB54B, 0xD09F, 0xB54C, 0xD0A0, 0xB54D, 0xD0A1, 0xB54E, 0xD0A2, + 0xB54F, 0xD0A3, 0xB550, 0xD0A6, 0xB551, 0xD0A7, 0xB552, 0xD0A9, 0xB553, 0xD0AA, 0xB554, 0xD0AB, 0xB555, 0xD0AD, 0xB556, 0xD0AE, + 0xB557, 0xD0AF, 0xB558, 0xD0B0, 0xB559, 0xD0B1, 0xB55A, 0xD0B2, 0xB561, 0xD0B3, 0xB562, 0xD0B6, 0xB563, 0xD0B8, 0xB564, 0xD0BA, + 0xB565, 0xD0BB, 0xB566, 0xD0BC, 0xB567, 0xD0BD, 0xB568, 0xD0BE, 0xB569, 0xD0BF, 0xB56A, 0xD0C2, 0xB56B, 0xD0C3, 0xB56C, 0xD0C5, + 0xB56D, 0xD0C6, 0xB56E, 0xD0C7, 0xB56F, 0xD0CA, 0xB570, 0xD0CB, 0xB571, 0xD0CC, 0xB572, 0xD0CD, 0xB573, 0xD0CE, 0xB574, 0xD0CF, + 0xB575, 0xD0D2, 0xB576, 0xD0D6, 0xB577, 0xD0D7, 0xB578, 0xD0D8, 0xB579, 0xD0D9, 0xB57A, 0xD0DA, 0xB581, 0xD0DB, 0xB582, 0xD0DE, + 0xB583, 0xD0DF, 0xB584, 0xD0E1, 0xB585, 0xD0E2, 0xB586, 0xD0E3, 0xB587, 0xD0E5, 0xB588, 0xD0E6, 0xB589, 0xD0E7, 0xB58A, 0xD0E8, + 0xB58B, 0xD0E9, 0xB58C, 0xD0EA, 0xB58D, 0xD0EB, 0xB58E, 0xD0EE, 0xB58F, 0xD0F2, 0xB590, 0xD0F3, 0xB591, 0xD0F4, 0xB592, 0xD0F5, + 0xB593, 0xD0F6, 0xB594, 0xD0F7, 0xB595, 0xD0F9, 0xB596, 0xD0FA, 0xB597, 0xD0FB, 0xB598, 0xD0FC, 0xB599, 0xD0FD, 0xB59A, 0xD0FE, + 0xB59B, 0xD0FF, 0xB59C, 0xD100, 0xB59D, 0xD101, 0xB59E, 0xD102, 0xB59F, 0xD103, 0xB5A0, 0xD104, 0xB5A1, 0xB367, 0xB5A2, 0xB369, + 0xB5A3, 0xB36B, 0xB5A4, 0xB36E, 0xB5A5, 0xB370, 0xB5A6, 0xB371, 0xB5A7, 0xB374, 0xB5A8, 0xB378, 0xB5A9, 0xB380, 0xB5AA, 0xB381, + 0xB5AB, 0xB383, 0xB5AC, 0xB384, 0xB5AD, 0xB385, 0xB5AE, 0xB38C, 0xB5AF, 0xB390, 0xB5B0, 0xB394, 0xB5B1, 0xB3A0, 0xB5B2, 0xB3A1, + 0xB5B3, 0xB3A8, 0xB5B4, 0xB3AC, 0xB5B5, 0xB3C4, 0xB5B6, 0xB3C5, 0xB5B7, 0xB3C8, 0xB5B8, 0xB3CB, 0xB5B9, 0xB3CC, 0xB5BA, 0xB3CE, + 0xB5BB, 0xB3D0, 0xB5BC, 0xB3D4, 0xB5BD, 0xB3D5, 0xB5BE, 0xB3D7, 0xB5BF, 0xB3D9, 0xB5C0, 0xB3DB, 0xB5C1, 0xB3DD, 0xB5C2, 0xB3E0, + 0xB5C3, 0xB3E4, 0xB5C4, 0xB3E8, 0xB5C5, 0xB3FC, 0xB5C6, 0xB410, 0xB5C7, 0xB418, 0xB5C8, 0xB41C, 0xB5C9, 0xB420, 0xB5CA, 0xB428, + 0xB5CB, 0xB429, 0xB5CC, 0xB42B, 0xB5CD, 0xB434, 0xB5CE, 0xB450, 0xB5CF, 0xB451, 0xB5D0, 0xB454, 0xB5D1, 0xB458, 0xB5D2, 0xB460, + 0xB5D3, 0xB461, 0xB5D4, 0xB463, 0xB5D5, 0xB465, 0xB5D6, 0xB46C, 0xB5D7, 0xB480, 0xB5D8, 0xB488, 0xB5D9, 0xB49D, 0xB5DA, 0xB4A4, + 0xB5DB, 0xB4A8, 0xB5DC, 0xB4AC, 0xB5DD, 0xB4B5, 0xB5DE, 0xB4B7, 0xB5DF, 0xB4B9, 0xB5E0, 0xB4C0, 0xB5E1, 0xB4C4, 0xB5E2, 0xB4C8, + 0xB5E3, 0xB4D0, 0xB5E4, 0xB4D5, 0xB5E5, 0xB4DC, 0xB5E6, 0xB4DD, 0xB5E7, 0xB4E0, 0xB5E8, 0xB4E3, 0xB5E9, 0xB4E4, 0xB5EA, 0xB4E6, + 0xB5EB, 0xB4EC, 0xB5EC, 0xB4ED, 0xB5ED, 0xB4EF, 0xB5EE, 0xB4F1, 0xB5EF, 0xB4F8, 0xB5F0, 0xB514, 0xB5F1, 0xB515, 0xB5F2, 0xB518, + 0xB5F3, 0xB51B, 0xB5F4, 0xB51C, 0xB5F5, 0xB524, 0xB5F6, 0xB525, 0xB5F7, 0xB527, 0xB5F8, 0xB528, 0xB5F9, 0xB529, 0xB5FA, 0xB52A, + 0xB5FB, 0xB530, 0xB5FC, 0xB531, 0xB5FD, 0xB534, 0xB5FE, 0xB538, 0xB641, 0xD105, 0xB642, 0xD106, 0xB643, 0xD107, 0xB644, 0xD108, + 0xB645, 0xD109, 0xB646, 0xD10A, 0xB647, 0xD10B, 0xB648, 0xD10C, 0xB649, 0xD10E, 0xB64A, 0xD10F, 0xB64B, 0xD110, 0xB64C, 0xD111, + 0xB64D, 0xD112, 0xB64E, 0xD113, 0xB64F, 0xD114, 0xB650, 0xD115, 0xB651, 0xD116, 0xB652, 0xD117, 0xB653, 0xD118, 0xB654, 0xD119, + 0xB655, 0xD11A, 0xB656, 0xD11B, 0xB657, 0xD11C, 0xB658, 0xD11D, 0xB659, 0xD11E, 0xB65A, 0xD11F, 0xB661, 0xD120, 0xB662, 0xD121, + 0xB663, 0xD122, 0xB664, 0xD123, 0xB665, 0xD124, 0xB666, 0xD125, 0xB667, 0xD126, 0xB668, 0xD127, 0xB669, 0xD128, 0xB66A, 0xD129, + 0xB66B, 0xD12A, 0xB66C, 0xD12B, 0xB66D, 0xD12C, 0xB66E, 0xD12D, 0xB66F, 0xD12E, 0xB670, 0xD12F, 0xB671, 0xD132, 0xB672, 0xD133, + 0xB673, 0xD135, 0xB674, 0xD136, 0xB675, 0xD137, 0xB676, 0xD139, 0xB677, 0xD13B, 0xB678, 0xD13C, 0xB679, 0xD13D, 0xB67A, 0xD13E, + 0xB681, 0xD13F, 0xB682, 0xD142, 0xB683, 0xD146, 0xB684, 0xD147, 0xB685, 0xD148, 0xB686, 0xD149, 0xB687, 0xD14A, 0xB688, 0xD14B, + 0xB689, 0xD14E, 0xB68A, 0xD14F, 0xB68B, 0xD151, 0xB68C, 0xD152, 0xB68D, 0xD153, 0xB68E, 0xD155, 0xB68F, 0xD156, 0xB690, 0xD157, + 0xB691, 0xD158, 0xB692, 0xD159, 0xB693, 0xD15A, 0xB694, 0xD15B, 0xB695, 0xD15E, 0xB696, 0xD160, 0xB697, 0xD162, 0xB698, 0xD163, + 0xB699, 0xD164, 0xB69A, 0xD165, 0xB69B, 0xD166, 0xB69C, 0xD167, 0xB69D, 0xD169, 0xB69E, 0xD16A, 0xB69F, 0xD16B, 0xB6A0, 0xD16D, + 0xB6A1, 0xB540, 0xB6A2, 0xB541, 0xB6A3, 0xB543, 0xB6A4, 0xB544, 0xB6A5, 0xB545, 0xB6A6, 0xB54B, 0xB6A7, 0xB54C, 0xB6A8, 0xB54D, + 0xB6A9, 0xB550, 0xB6AA, 0xB554, 0xB6AB, 0xB55C, 0xB6AC, 0xB55D, 0xB6AD, 0xB55F, 0xB6AE, 0xB560, 0xB6AF, 0xB561, 0xB6B0, 0xB5A0, + 0xB6B1, 0xB5A1, 0xB6B2, 0xB5A4, 0xB6B3, 0xB5A8, 0xB6B4, 0xB5AA, 0xB6B5, 0xB5AB, 0xB6B6, 0xB5B0, 0xB6B7, 0xB5B1, 0xB6B8, 0xB5B3, + 0xB6B9, 0xB5B4, 0xB6BA, 0xB5B5, 0xB6BB, 0xB5BB, 0xB6BC, 0xB5BC, 0xB6BD, 0xB5BD, 0xB6BE, 0xB5C0, 0xB6BF, 0xB5C4, 0xB6C0, 0xB5CC, + 0xB6C1, 0xB5CD, 0xB6C2, 0xB5CF, 0xB6C3, 0xB5D0, 0xB6C4, 0xB5D1, 0xB6C5, 0xB5D8, 0xB6C6, 0xB5EC, 0xB6C7, 0xB610, 0xB6C8, 0xB611, + 0xB6C9, 0xB614, 0xB6CA, 0xB618, 0xB6CB, 0xB625, 0xB6CC, 0xB62C, 0xB6CD, 0xB634, 0xB6CE, 0xB648, 0xB6CF, 0xB664, 0xB6D0, 0xB668, + 0xB6D1, 0xB69C, 0xB6D2, 0xB69D, 0xB6D3, 0xB6A0, 0xB6D4, 0xB6A4, 0xB6D5, 0xB6AB, 0xB6D6, 0xB6AC, 0xB6D7, 0xB6B1, 0xB6D8, 0xB6D4, + 0xB6D9, 0xB6F0, 0xB6DA, 0xB6F4, 0xB6DB, 0xB6F8, 0xB6DC, 0xB700, 0xB6DD, 0xB701, 0xB6DE, 0xB705, 0xB6DF, 0xB728, 0xB6E0, 0xB729, + 0xB6E1, 0xB72C, 0xB6E2, 0xB72F, 0xB6E3, 0xB730, 0xB6E4, 0xB738, 0xB6E5, 0xB739, 0xB6E6, 0xB73B, 0xB6E7, 0xB744, 0xB6E8, 0xB748, + 0xB6E9, 0xB74C, 0xB6EA, 0xB754, 0xB6EB, 0xB755, 0xB6EC, 0xB760, 0xB6ED, 0xB764, 0xB6EE, 0xB768, 0xB6EF, 0xB770, 0xB6F0, 0xB771, + 0xB6F1, 0xB773, 0xB6F2, 0xB775, 0xB6F3, 0xB77C, 0xB6F4, 0xB77D, 0xB6F5, 0xB780, 0xB6F6, 0xB784, 0xB6F7, 0xB78C, 0xB6F8, 0xB78D, + 0xB6F9, 0xB78F, 0xB6FA, 0xB790, 0xB6FB, 0xB791, 0xB6FC, 0xB792, 0xB6FD, 0xB796, 0xB6FE, 0xB797, 0xB741, 0xD16E, 0xB742, 0xD16F, + 0xB743, 0xD170, 0xB744, 0xD171, 0xB745, 0xD172, 0xB746, 0xD173, 0xB747, 0xD174, 0xB748, 0xD175, 0xB749, 0xD176, 0xB74A, 0xD177, + 0xB74B, 0xD178, 0xB74C, 0xD179, 0xB74D, 0xD17A, 0xB74E, 0xD17B, 0xB74F, 0xD17D, 0xB750, 0xD17E, 0xB751, 0xD17F, 0xB752, 0xD180, + 0xB753, 0xD181, 0xB754, 0xD182, 0xB755, 0xD183, 0xB756, 0xD185, 0xB757, 0xD186, 0xB758, 0xD187, 0xB759, 0xD189, 0xB75A, 0xD18A, + 0xB761, 0xD18B, 0xB762, 0xD18C, 0xB763, 0xD18D, 0xB764, 0xD18E, 0xB765, 0xD18F, 0xB766, 0xD190, 0xB767, 0xD191, 0xB768, 0xD192, + 0xB769, 0xD193, 0xB76A, 0xD194, 0xB76B, 0xD195, 0xB76C, 0xD196, 0xB76D, 0xD197, 0xB76E, 0xD198, 0xB76F, 0xD199, 0xB770, 0xD19A, + 0xB771, 0xD19B, 0xB772, 0xD19C, 0xB773, 0xD19D, 0xB774, 0xD19E, 0xB775, 0xD19F, 0xB776, 0xD1A2, 0xB777, 0xD1A3, 0xB778, 0xD1A5, + 0xB779, 0xD1A6, 0xB77A, 0xD1A7, 0xB781, 0xD1A9, 0xB782, 0xD1AA, 0xB783, 0xD1AB, 0xB784, 0xD1AC, 0xB785, 0xD1AD, 0xB786, 0xD1AE, + 0xB787, 0xD1AF, 0xB788, 0xD1B2, 0xB789, 0xD1B4, 0xB78A, 0xD1B6, 0xB78B, 0xD1B7, 0xB78C, 0xD1B8, 0xB78D, 0xD1B9, 0xB78E, 0xD1BB, + 0xB78F, 0xD1BD, 0xB790, 0xD1BE, 0xB791, 0xD1BF, 0xB792, 0xD1C1, 0xB793, 0xD1C2, 0xB794, 0xD1C3, 0xB795, 0xD1C4, 0xB796, 0xD1C5, + 0xB797, 0xD1C6, 0xB798, 0xD1C7, 0xB799, 0xD1C8, 0xB79A, 0xD1C9, 0xB79B, 0xD1CA, 0xB79C, 0xD1CB, 0xB79D, 0xD1CC, 0xB79E, 0xD1CD, + 0xB79F, 0xD1CE, 0xB7A0, 0xD1CF, 0xB7A1, 0xB798, 0xB7A2, 0xB799, 0xB7A3, 0xB79C, 0xB7A4, 0xB7A0, 0xB7A5, 0xB7A8, 0xB7A6, 0xB7A9, + 0xB7A7, 0xB7AB, 0xB7A8, 0xB7AC, 0xB7A9, 0xB7AD, 0xB7AA, 0xB7B4, 0xB7AB, 0xB7B5, 0xB7AC, 0xB7B8, 0xB7AD, 0xB7C7, 0xB7AE, 0xB7C9, + 0xB7AF, 0xB7EC, 0xB7B0, 0xB7ED, 0xB7B1, 0xB7F0, 0xB7B2, 0xB7F4, 0xB7B3, 0xB7FC, 0xB7B4, 0xB7FD, 0xB7B5, 0xB7FF, 0xB7B6, 0xB800, + 0xB7B7, 0xB801, 0xB7B8, 0xB807, 0xB7B9, 0xB808, 0xB7BA, 0xB809, 0xB7BB, 0xB80C, 0xB7BC, 0xB810, 0xB7BD, 0xB818, 0xB7BE, 0xB819, + 0xB7BF, 0xB81B, 0xB7C0, 0xB81D, 0xB7C1, 0xB824, 0xB7C2, 0xB825, 0xB7C3, 0xB828, 0xB7C4, 0xB82C, 0xB7C5, 0xB834, 0xB7C6, 0xB835, + 0xB7C7, 0xB837, 0xB7C8, 0xB838, 0xB7C9, 0xB839, 0xB7CA, 0xB840, 0xB7CB, 0xB844, 0xB7CC, 0xB851, 0xB7CD, 0xB853, 0xB7CE, 0xB85C, + 0xB7CF, 0xB85D, 0xB7D0, 0xB860, 0xB7D1, 0xB864, 0xB7D2, 0xB86C, 0xB7D3, 0xB86D, 0xB7D4, 0xB86F, 0xB7D5, 0xB871, 0xB7D6, 0xB878, + 0xB7D7, 0xB87C, 0xB7D8, 0xB88D, 0xB7D9, 0xB8A8, 0xB7DA, 0xB8B0, 0xB7DB, 0xB8B4, 0xB7DC, 0xB8B8, 0xB7DD, 0xB8C0, 0xB7DE, 0xB8C1, + 0xB7DF, 0xB8C3, 0xB7E0, 0xB8C5, 0xB7E1, 0xB8CC, 0xB7E2, 0xB8D0, 0xB7E3, 0xB8D4, 0xB7E4, 0xB8DD, 0xB7E5, 0xB8DF, 0xB7E6, 0xB8E1, + 0xB7E7, 0xB8E8, 0xB7E8, 0xB8E9, 0xB7E9, 0xB8EC, 0xB7EA, 0xB8F0, 0xB7EB, 0xB8F8, 0xB7EC, 0xB8F9, 0xB7ED, 0xB8FB, 0xB7EE, 0xB8FD, + 0xB7EF, 0xB904, 0xB7F0, 0xB918, 0xB7F1, 0xB920, 0xB7F2, 0xB93C, 0xB7F3, 0xB93D, 0xB7F4, 0xB940, 0xB7F5, 0xB944, 0xB7F6, 0xB94C, + 0xB7F7, 0xB94F, 0xB7F8, 0xB951, 0xB7F9, 0xB958, 0xB7FA, 0xB959, 0xB7FB, 0xB95C, 0xB7FC, 0xB960, 0xB7FD, 0xB968, 0xB7FE, 0xB969, + 0xB841, 0xD1D0, 0xB842, 0xD1D1, 0xB843, 0xD1D2, 0xB844, 0xD1D3, 0xB845, 0xD1D4, 0xB846, 0xD1D5, 0xB847, 0xD1D6, 0xB848, 0xD1D7, + 0xB849, 0xD1D9, 0xB84A, 0xD1DA, 0xB84B, 0xD1DB, 0xB84C, 0xD1DC, 0xB84D, 0xD1DD, 0xB84E, 0xD1DE, 0xB84F, 0xD1DF, 0xB850, 0xD1E0, + 0xB851, 0xD1E1, 0xB852, 0xD1E2, 0xB853, 0xD1E3, 0xB854, 0xD1E4, 0xB855, 0xD1E5, 0xB856, 0xD1E6, 0xB857, 0xD1E7, 0xB858, 0xD1E8, + 0xB859, 0xD1E9, 0xB85A, 0xD1EA, 0xB861, 0xD1EB, 0xB862, 0xD1EC, 0xB863, 0xD1ED, 0xB864, 0xD1EE, 0xB865, 0xD1EF, 0xB866, 0xD1F0, + 0xB867, 0xD1F1, 0xB868, 0xD1F2, 0xB869, 0xD1F3, 0xB86A, 0xD1F5, 0xB86B, 0xD1F6, 0xB86C, 0xD1F7, 0xB86D, 0xD1F9, 0xB86E, 0xD1FA, + 0xB86F, 0xD1FB, 0xB870, 0xD1FC, 0xB871, 0xD1FD, 0xB872, 0xD1FE, 0xB873, 0xD1FF, 0xB874, 0xD200, 0xB875, 0xD201, 0xB876, 0xD202, + 0xB877, 0xD203, 0xB878, 0xD204, 0xB879, 0xD205, 0xB87A, 0xD206, 0xB881, 0xD208, 0xB882, 0xD20A, 0xB883, 0xD20B, 0xB884, 0xD20C, + 0xB885, 0xD20D, 0xB886, 0xD20E, 0xB887, 0xD20F, 0xB888, 0xD211, 0xB889, 0xD212, 0xB88A, 0xD213, 0xB88B, 0xD214, 0xB88C, 0xD215, + 0xB88D, 0xD216, 0xB88E, 0xD217, 0xB88F, 0xD218, 0xB890, 0xD219, 0xB891, 0xD21A, 0xB892, 0xD21B, 0xB893, 0xD21C, 0xB894, 0xD21D, + 0xB895, 0xD21E, 0xB896, 0xD21F, 0xB897, 0xD220, 0xB898, 0xD221, 0xB899, 0xD222, 0xB89A, 0xD223, 0xB89B, 0xD224, 0xB89C, 0xD225, + 0xB89D, 0xD226, 0xB89E, 0xD227, 0xB89F, 0xD228, 0xB8A0, 0xD229, 0xB8A1, 0xB96B, 0xB8A2, 0xB96D, 0xB8A3, 0xB974, 0xB8A4, 0xB975, + 0xB8A5, 0xB978, 0xB8A6, 0xB97C, 0xB8A7, 0xB984, 0xB8A8, 0xB985, 0xB8A9, 0xB987, 0xB8AA, 0xB989, 0xB8AB, 0xB98A, 0xB8AC, 0xB98D, + 0xB8AD, 0xB98E, 0xB8AE, 0xB9AC, 0xB8AF, 0xB9AD, 0xB8B0, 0xB9B0, 0xB8B1, 0xB9B4, 0xB8B2, 0xB9BC, 0xB8B3, 0xB9BD, 0xB8B4, 0xB9BF, + 0xB8B5, 0xB9C1, 0xB8B6, 0xB9C8, 0xB8B7, 0xB9C9, 0xB8B8, 0xB9CC, 0xB8B9, 0xB9CE, 0xB8BA, 0xB9CF, 0xB8BB, 0xB9D0, 0xB8BC, 0xB9D1, + 0xB8BD, 0xB9D2, 0xB8BE, 0xB9D8, 0xB8BF, 0xB9D9, 0xB8C0, 0xB9DB, 0xB8C1, 0xB9DD, 0xB8C2, 0xB9DE, 0xB8C3, 0xB9E1, 0xB8C4, 0xB9E3, + 0xB8C5, 0xB9E4, 0xB8C6, 0xB9E5, 0xB8C7, 0xB9E8, 0xB8C8, 0xB9EC, 0xB8C9, 0xB9F4, 0xB8CA, 0xB9F5, 0xB8CB, 0xB9F7, 0xB8CC, 0xB9F8, + 0xB8CD, 0xB9F9, 0xB8CE, 0xB9FA, 0xB8CF, 0xBA00, 0xB8D0, 0xBA01, 0xB8D1, 0xBA08, 0xB8D2, 0xBA15, 0xB8D3, 0xBA38, 0xB8D4, 0xBA39, + 0xB8D5, 0xBA3C, 0xB8D6, 0xBA40, 0xB8D7, 0xBA42, 0xB8D8, 0xBA48, 0xB8D9, 0xBA49, 0xB8DA, 0xBA4B, 0xB8DB, 0xBA4D, 0xB8DC, 0xBA4E, + 0xB8DD, 0xBA53, 0xB8DE, 0xBA54, 0xB8DF, 0xBA55, 0xB8E0, 0xBA58, 0xB8E1, 0xBA5C, 0xB8E2, 0xBA64, 0xB8E3, 0xBA65, 0xB8E4, 0xBA67, + 0xB8E5, 0xBA68, 0xB8E6, 0xBA69, 0xB8E7, 0xBA70, 0xB8E8, 0xBA71, 0xB8E9, 0xBA74, 0xB8EA, 0xBA78, 0xB8EB, 0xBA83, 0xB8EC, 0xBA84, + 0xB8ED, 0xBA85, 0xB8EE, 0xBA87, 0xB8EF, 0xBA8C, 0xB8F0, 0xBAA8, 0xB8F1, 0xBAA9, 0xB8F2, 0xBAAB, 0xB8F3, 0xBAAC, 0xB8F4, 0xBAB0, + 0xB8F5, 0xBAB2, 0xB8F6, 0xBAB8, 0xB8F7, 0xBAB9, 0xB8F8, 0xBABB, 0xB8F9, 0xBABD, 0xB8FA, 0xBAC4, 0xB8FB, 0xBAC8, 0xB8FC, 0xBAD8, + 0xB8FD, 0xBAD9, 0xB8FE, 0xBAFC, 0xB941, 0xD22A, 0xB942, 0xD22B, 0xB943, 0xD22E, 0xB944, 0xD22F, 0xB945, 0xD231, 0xB946, 0xD232, + 0xB947, 0xD233, 0xB948, 0xD235, 0xB949, 0xD236, 0xB94A, 0xD237, 0xB94B, 0xD238, 0xB94C, 0xD239, 0xB94D, 0xD23A, 0xB94E, 0xD23B, + 0xB94F, 0xD23E, 0xB950, 0xD240, 0xB951, 0xD242, 0xB952, 0xD243, 0xB953, 0xD244, 0xB954, 0xD245, 0xB955, 0xD246, 0xB956, 0xD247, + 0xB957, 0xD249, 0xB958, 0xD24A, 0xB959, 0xD24B, 0xB95A, 0xD24C, 0xB961, 0xD24D, 0xB962, 0xD24E, 0xB963, 0xD24F, 0xB964, 0xD250, + 0xB965, 0xD251, 0xB966, 0xD252, 0xB967, 0xD253, 0xB968, 0xD254, 0xB969, 0xD255, 0xB96A, 0xD256, 0xB96B, 0xD257, 0xB96C, 0xD258, + 0xB96D, 0xD259, 0xB96E, 0xD25A, 0xB96F, 0xD25B, 0xB970, 0xD25D, 0xB971, 0xD25E, 0xB972, 0xD25F, 0xB973, 0xD260, 0xB974, 0xD261, + 0xB975, 0xD262, 0xB976, 0xD263, 0xB977, 0xD265, 0xB978, 0xD266, 0xB979, 0xD267, 0xB97A, 0xD268, 0xB981, 0xD269, 0xB982, 0xD26A, + 0xB983, 0xD26B, 0xB984, 0xD26C, 0xB985, 0xD26D, 0xB986, 0xD26E, 0xB987, 0xD26F, 0xB988, 0xD270, 0xB989, 0xD271, 0xB98A, 0xD272, + 0xB98B, 0xD273, 0xB98C, 0xD274, 0xB98D, 0xD275, 0xB98E, 0xD276, 0xB98F, 0xD277, 0xB990, 0xD278, 0xB991, 0xD279, 0xB992, 0xD27A, + 0xB993, 0xD27B, 0xB994, 0xD27C, 0xB995, 0xD27D, 0xB996, 0xD27E, 0xB997, 0xD27F, 0xB998, 0xD282, 0xB999, 0xD283, 0xB99A, 0xD285, + 0xB99B, 0xD286, 0xB99C, 0xD287, 0xB99D, 0xD289, 0xB99E, 0xD28A, 0xB99F, 0xD28B, 0xB9A0, 0xD28C, 0xB9A1, 0xBB00, 0xB9A2, 0xBB04, + 0xB9A3, 0xBB0D, 0xB9A4, 0xBB0F, 0xB9A5, 0xBB11, 0xB9A6, 0xBB18, 0xB9A7, 0xBB1C, 0xB9A8, 0xBB20, 0xB9A9, 0xBB29, 0xB9AA, 0xBB2B, + 0xB9AB, 0xBB34, 0xB9AC, 0xBB35, 0xB9AD, 0xBB36, 0xB9AE, 0xBB38, 0xB9AF, 0xBB3B, 0xB9B0, 0xBB3C, 0xB9B1, 0xBB3D, 0xB9B2, 0xBB3E, + 0xB9B3, 0xBB44, 0xB9B4, 0xBB45, 0xB9B5, 0xBB47, 0xB9B6, 0xBB49, 0xB9B7, 0xBB4D, 0xB9B8, 0xBB4F, 0xB9B9, 0xBB50, 0xB9BA, 0xBB54, + 0xB9BB, 0xBB58, 0xB9BC, 0xBB61, 0xB9BD, 0xBB63, 0xB9BE, 0xBB6C, 0xB9BF, 0xBB88, 0xB9C0, 0xBB8C, 0xB9C1, 0xBB90, 0xB9C2, 0xBBA4, + 0xB9C3, 0xBBA8, 0xB9C4, 0xBBAC, 0xB9C5, 0xBBB4, 0xB9C6, 0xBBB7, 0xB9C7, 0xBBC0, 0xB9C8, 0xBBC4, 0xB9C9, 0xBBC8, 0xB9CA, 0xBBD0, + 0xB9CB, 0xBBD3, 0xB9CC, 0xBBF8, 0xB9CD, 0xBBF9, 0xB9CE, 0xBBFC, 0xB9CF, 0xBBFF, 0xB9D0, 0xBC00, 0xB9D1, 0xBC02, 0xB9D2, 0xBC08, + 0xB9D3, 0xBC09, 0xB9D4, 0xBC0B, 0xB9D5, 0xBC0C, 0xB9D6, 0xBC0D, 0xB9D7, 0xBC0F, 0xB9D8, 0xBC11, 0xB9D9, 0xBC14, 0xB9DA, 0xBC15, + 0xB9DB, 0xBC16, 0xB9DC, 0xBC17, 0xB9DD, 0xBC18, 0xB9DE, 0xBC1B, 0xB9DF, 0xBC1C, 0xB9E0, 0xBC1D, 0xB9E1, 0xBC1E, 0xB9E2, 0xBC1F, + 0xB9E3, 0xBC24, 0xB9E4, 0xBC25, 0xB9E5, 0xBC27, 0xB9E6, 0xBC29, 0xB9E7, 0xBC2D, 0xB9E8, 0xBC30, 0xB9E9, 0xBC31, 0xB9EA, 0xBC34, + 0xB9EB, 0xBC38, 0xB9EC, 0xBC40, 0xB9ED, 0xBC41, 0xB9EE, 0xBC43, 0xB9EF, 0xBC44, 0xB9F0, 0xBC45, 0xB9F1, 0xBC49, 0xB9F2, 0xBC4C, + 0xB9F3, 0xBC4D, 0xB9F4, 0xBC50, 0xB9F5, 0xBC5D, 0xB9F6, 0xBC84, 0xB9F7, 0xBC85, 0xB9F8, 0xBC88, 0xB9F9, 0xBC8B, 0xB9FA, 0xBC8C, + 0xB9FB, 0xBC8E, 0xB9FC, 0xBC94, 0xB9FD, 0xBC95, 0xB9FE, 0xBC97, 0xBA41, 0xD28D, 0xBA42, 0xD28E, 0xBA43, 0xD28F, 0xBA44, 0xD292, + 0xBA45, 0xD293, 0xBA46, 0xD294, 0xBA47, 0xD296, 0xBA48, 0xD297, 0xBA49, 0xD298, 0xBA4A, 0xD299, 0xBA4B, 0xD29A, 0xBA4C, 0xD29B, + 0xBA4D, 0xD29D, 0xBA4E, 0xD29E, 0xBA4F, 0xD29F, 0xBA50, 0xD2A1, 0xBA51, 0xD2A2, 0xBA52, 0xD2A3, 0xBA53, 0xD2A5, 0xBA54, 0xD2A6, + 0xBA55, 0xD2A7, 0xBA56, 0xD2A8, 0xBA57, 0xD2A9, 0xBA58, 0xD2AA, 0xBA59, 0xD2AB, 0xBA5A, 0xD2AD, 0xBA61, 0xD2AE, 0xBA62, 0xD2AF, + 0xBA63, 0xD2B0, 0xBA64, 0xD2B2, 0xBA65, 0xD2B3, 0xBA66, 0xD2B4, 0xBA67, 0xD2B5, 0xBA68, 0xD2B6, 0xBA69, 0xD2B7, 0xBA6A, 0xD2BA, + 0xBA6B, 0xD2BB, 0xBA6C, 0xD2BD, 0xBA6D, 0xD2BE, 0xBA6E, 0xD2C1, 0xBA6F, 0xD2C3, 0xBA70, 0xD2C4, 0xBA71, 0xD2C5, 0xBA72, 0xD2C6, + 0xBA73, 0xD2C7, 0xBA74, 0xD2CA, 0xBA75, 0xD2CC, 0xBA76, 0xD2CD, 0xBA77, 0xD2CE, 0xBA78, 0xD2CF, 0xBA79, 0xD2D0, 0xBA7A, 0xD2D1, + 0xBA81, 0xD2D2, 0xBA82, 0xD2D3, 0xBA83, 0xD2D5, 0xBA84, 0xD2D6, 0xBA85, 0xD2D7, 0xBA86, 0xD2D9, 0xBA87, 0xD2DA, 0xBA88, 0xD2DB, + 0xBA89, 0xD2DD, 0xBA8A, 0xD2DE, 0xBA8B, 0xD2DF, 0xBA8C, 0xD2E0, 0xBA8D, 0xD2E1, 0xBA8E, 0xD2E2, 0xBA8F, 0xD2E3, 0xBA90, 0xD2E6, + 0xBA91, 0xD2E7, 0xBA92, 0xD2E8, 0xBA93, 0xD2E9, 0xBA94, 0xD2EA, 0xBA95, 0xD2EB, 0xBA96, 0xD2EC, 0xBA97, 0xD2ED, 0xBA98, 0xD2EE, + 0xBA99, 0xD2EF, 0xBA9A, 0xD2F2, 0xBA9B, 0xD2F3, 0xBA9C, 0xD2F5, 0xBA9D, 0xD2F6, 0xBA9E, 0xD2F7, 0xBA9F, 0xD2F9, 0xBAA0, 0xD2FA, + 0xBAA1, 0xBC99, 0xBAA2, 0xBC9A, 0xBAA3, 0xBCA0, 0xBAA4, 0xBCA1, 0xBAA5, 0xBCA4, 0xBAA6, 0xBCA7, 0xBAA7, 0xBCA8, 0xBAA8, 0xBCB0, + 0xBAA9, 0xBCB1, 0xBAAA, 0xBCB3, 0xBAAB, 0xBCB4, 0xBAAC, 0xBCB5, 0xBAAD, 0xBCBC, 0xBAAE, 0xBCBD, 0xBAAF, 0xBCC0, 0xBAB0, 0xBCC4, + 0xBAB1, 0xBCCD, 0xBAB2, 0xBCCF, 0xBAB3, 0xBCD0, 0xBAB4, 0xBCD1, 0xBAB5, 0xBCD5, 0xBAB6, 0xBCD8, 0xBAB7, 0xBCDC, 0xBAB8, 0xBCF4, + 0xBAB9, 0xBCF5, 0xBABA, 0xBCF6, 0xBABB, 0xBCF8, 0xBABC, 0xBCFC, 0xBABD, 0xBD04, 0xBABE, 0xBD05, 0xBABF, 0xBD07, 0xBAC0, 0xBD09, + 0xBAC1, 0xBD10, 0xBAC2, 0xBD14, 0xBAC3, 0xBD24, 0xBAC4, 0xBD2C, 0xBAC5, 0xBD40, 0xBAC6, 0xBD48, 0xBAC7, 0xBD49, 0xBAC8, 0xBD4C, + 0xBAC9, 0xBD50, 0xBACA, 0xBD58, 0xBACB, 0xBD59, 0xBACC, 0xBD64, 0xBACD, 0xBD68, 0xBACE, 0xBD80, 0xBACF, 0xBD81, 0xBAD0, 0xBD84, + 0xBAD1, 0xBD87, 0xBAD2, 0xBD88, 0xBAD3, 0xBD89, 0xBAD4, 0xBD8A, 0xBAD5, 0xBD90, 0xBAD6, 0xBD91, 0xBAD7, 0xBD93, 0xBAD8, 0xBD95, + 0xBAD9, 0xBD99, 0xBADA, 0xBD9A, 0xBADB, 0xBD9C, 0xBADC, 0xBDA4, 0xBADD, 0xBDB0, 0xBADE, 0xBDB8, 0xBADF, 0xBDD4, 0xBAE0, 0xBDD5, + 0xBAE1, 0xBDD8, 0xBAE2, 0xBDDC, 0xBAE3, 0xBDE9, 0xBAE4, 0xBDF0, 0xBAE5, 0xBDF4, 0xBAE6, 0xBDF8, 0xBAE7, 0xBE00, 0xBAE8, 0xBE03, + 0xBAE9, 0xBE05, 0xBAEA, 0xBE0C, 0xBAEB, 0xBE0D, 0xBAEC, 0xBE10, 0xBAED, 0xBE14, 0xBAEE, 0xBE1C, 0xBAEF, 0xBE1D, 0xBAF0, 0xBE1F, + 0xBAF1, 0xBE44, 0xBAF2, 0xBE45, 0xBAF3, 0xBE48, 0xBAF4, 0xBE4C, 0xBAF5, 0xBE4E, 0xBAF6, 0xBE54, 0xBAF7, 0xBE55, 0xBAF8, 0xBE57, + 0xBAF9, 0xBE59, 0xBAFA, 0xBE5A, 0xBAFB, 0xBE5B, 0xBAFC, 0xBE60, 0xBAFD, 0xBE61, 0xBAFE, 0xBE64, 0xBB41, 0xD2FB, 0xBB42, 0xD2FC, + 0xBB43, 0xD2FD, 0xBB44, 0xD2FE, 0xBB45, 0xD2FF, 0xBB46, 0xD302, 0xBB47, 0xD304, 0xBB48, 0xD306, 0xBB49, 0xD307, 0xBB4A, 0xD308, + 0xBB4B, 0xD309, 0xBB4C, 0xD30A, 0xBB4D, 0xD30B, 0xBB4E, 0xD30F, 0xBB4F, 0xD311, 0xBB50, 0xD312, 0xBB51, 0xD313, 0xBB52, 0xD315, + 0xBB53, 0xD317, 0xBB54, 0xD318, 0xBB55, 0xD319, 0xBB56, 0xD31A, 0xBB57, 0xD31B, 0xBB58, 0xD31E, 0xBB59, 0xD322, 0xBB5A, 0xD323, + 0xBB61, 0xD324, 0xBB62, 0xD326, 0xBB63, 0xD327, 0xBB64, 0xD32A, 0xBB65, 0xD32B, 0xBB66, 0xD32D, 0xBB67, 0xD32E, 0xBB68, 0xD32F, + 0xBB69, 0xD331, 0xBB6A, 0xD332, 0xBB6B, 0xD333, 0xBB6C, 0xD334, 0xBB6D, 0xD335, 0xBB6E, 0xD336, 0xBB6F, 0xD337, 0xBB70, 0xD33A, + 0xBB71, 0xD33E, 0xBB72, 0xD33F, 0xBB73, 0xD340, 0xBB74, 0xD341, 0xBB75, 0xD342, 0xBB76, 0xD343, 0xBB77, 0xD346, 0xBB78, 0xD347, + 0xBB79, 0xD348, 0xBB7A, 0xD349, 0xBB81, 0xD34A, 0xBB82, 0xD34B, 0xBB83, 0xD34C, 0xBB84, 0xD34D, 0xBB85, 0xD34E, 0xBB86, 0xD34F, + 0xBB87, 0xD350, 0xBB88, 0xD351, 0xBB89, 0xD352, 0xBB8A, 0xD353, 0xBB8B, 0xD354, 0xBB8C, 0xD355, 0xBB8D, 0xD356, 0xBB8E, 0xD357, + 0xBB8F, 0xD358, 0xBB90, 0xD359, 0xBB91, 0xD35A, 0xBB92, 0xD35B, 0xBB93, 0xD35C, 0xBB94, 0xD35D, 0xBB95, 0xD35E, 0xBB96, 0xD35F, + 0xBB97, 0xD360, 0xBB98, 0xD361, 0xBB99, 0xD362, 0xBB9A, 0xD363, 0xBB9B, 0xD364, 0xBB9C, 0xD365, 0xBB9D, 0xD366, 0xBB9E, 0xD367, + 0xBB9F, 0xD368, 0xBBA0, 0xD369, 0xBBA1, 0xBE68, 0xBBA2, 0xBE6A, 0xBBA3, 0xBE70, 0xBBA4, 0xBE71, 0xBBA5, 0xBE73, 0xBBA6, 0xBE74, + 0xBBA7, 0xBE75, 0xBBA8, 0xBE7B, 0xBBA9, 0xBE7C, 0xBBAA, 0xBE7D, 0xBBAB, 0xBE80, 0xBBAC, 0xBE84, 0xBBAD, 0xBE8C, 0xBBAE, 0xBE8D, + 0xBBAF, 0xBE8F, 0xBBB0, 0xBE90, 0xBBB1, 0xBE91, 0xBBB2, 0xBE98, 0xBBB3, 0xBE99, 0xBBB4, 0xBEA8, 0xBBB5, 0xBED0, 0xBBB6, 0xBED1, + 0xBBB7, 0xBED4, 0xBBB8, 0xBED7, 0xBBB9, 0xBED8, 0xBBBA, 0xBEE0, 0xBBBB, 0xBEE3, 0xBBBC, 0xBEE4, 0xBBBD, 0xBEE5, 0xBBBE, 0xBEEC, + 0xBBBF, 0xBF01, 0xBBC0, 0xBF08, 0xBBC1, 0xBF09, 0xBBC2, 0xBF18, 0xBBC3, 0xBF19, 0xBBC4, 0xBF1B, 0xBBC5, 0xBF1C, 0xBBC6, 0xBF1D, + 0xBBC7, 0xBF40, 0xBBC8, 0xBF41, 0xBBC9, 0xBF44, 0xBBCA, 0xBF48, 0xBBCB, 0xBF50, 0xBBCC, 0xBF51, 0xBBCD, 0xBF55, 0xBBCE, 0xBF94, + 0xBBCF, 0xBFB0, 0xBBD0, 0xBFC5, 0xBBD1, 0xBFCC, 0xBBD2, 0xBFCD, 0xBBD3, 0xBFD0, 0xBBD4, 0xBFD4, 0xBBD5, 0xBFDC, 0xBBD6, 0xBFDF, + 0xBBD7, 0xBFE1, 0xBBD8, 0xC03C, 0xBBD9, 0xC051, 0xBBDA, 0xC058, 0xBBDB, 0xC05C, 0xBBDC, 0xC060, 0xBBDD, 0xC068, 0xBBDE, 0xC069, + 0xBBDF, 0xC090, 0xBBE0, 0xC091, 0xBBE1, 0xC094, 0xBBE2, 0xC098, 0xBBE3, 0xC0A0, 0xBBE4, 0xC0A1, 0xBBE5, 0xC0A3, 0xBBE6, 0xC0A5, + 0xBBE7, 0xC0AC, 0xBBE8, 0xC0AD, 0xBBE9, 0xC0AF, 0xBBEA, 0xC0B0, 0xBBEB, 0xC0B3, 0xBBEC, 0xC0B4, 0xBBED, 0xC0B5, 0xBBEE, 0xC0B6, + 0xBBEF, 0xC0BC, 0xBBF0, 0xC0BD, 0xBBF1, 0xC0BF, 0xBBF2, 0xC0C0, 0xBBF3, 0xC0C1, 0xBBF4, 0xC0C5, 0xBBF5, 0xC0C8, 0xBBF6, 0xC0C9, + 0xBBF7, 0xC0CC, 0xBBF8, 0xC0D0, 0xBBF9, 0xC0D8, 0xBBFA, 0xC0D9, 0xBBFB, 0xC0DB, 0xBBFC, 0xC0DC, 0xBBFD, 0xC0DD, 0xBBFE, 0xC0E4, + 0xBC41, 0xD36A, 0xBC42, 0xD36B, 0xBC43, 0xD36C, 0xBC44, 0xD36D, 0xBC45, 0xD36E, 0xBC46, 0xD36F, 0xBC47, 0xD370, 0xBC48, 0xD371, + 0xBC49, 0xD372, 0xBC4A, 0xD373, 0xBC4B, 0xD374, 0xBC4C, 0xD375, 0xBC4D, 0xD376, 0xBC4E, 0xD377, 0xBC4F, 0xD378, 0xBC50, 0xD379, + 0xBC51, 0xD37A, 0xBC52, 0xD37B, 0xBC53, 0xD37E, 0xBC54, 0xD37F, 0xBC55, 0xD381, 0xBC56, 0xD382, 0xBC57, 0xD383, 0xBC58, 0xD385, + 0xBC59, 0xD386, 0xBC5A, 0xD387, 0xBC61, 0xD388, 0xBC62, 0xD389, 0xBC63, 0xD38A, 0xBC64, 0xD38B, 0xBC65, 0xD38E, 0xBC66, 0xD392, + 0xBC67, 0xD393, 0xBC68, 0xD394, 0xBC69, 0xD395, 0xBC6A, 0xD396, 0xBC6B, 0xD397, 0xBC6C, 0xD39A, 0xBC6D, 0xD39B, 0xBC6E, 0xD39D, + 0xBC6F, 0xD39E, 0xBC70, 0xD39F, 0xBC71, 0xD3A1, 0xBC72, 0xD3A2, 0xBC73, 0xD3A3, 0xBC74, 0xD3A4, 0xBC75, 0xD3A5, 0xBC76, 0xD3A6, + 0xBC77, 0xD3A7, 0xBC78, 0xD3AA, 0xBC79, 0xD3AC, 0xBC7A, 0xD3AE, 0xBC81, 0xD3AF, 0xBC82, 0xD3B0, 0xBC83, 0xD3B1, 0xBC84, 0xD3B2, + 0xBC85, 0xD3B3, 0xBC86, 0xD3B5, 0xBC87, 0xD3B6, 0xBC88, 0xD3B7, 0xBC89, 0xD3B9, 0xBC8A, 0xD3BA, 0xBC8B, 0xD3BB, 0xBC8C, 0xD3BD, + 0xBC8D, 0xD3BE, 0xBC8E, 0xD3BF, 0xBC8F, 0xD3C0, 0xBC90, 0xD3C1, 0xBC91, 0xD3C2, 0xBC92, 0xD3C3, 0xBC93, 0xD3C6, 0xBC94, 0xD3C7, + 0xBC95, 0xD3CA, 0xBC96, 0xD3CB, 0xBC97, 0xD3CC, 0xBC98, 0xD3CD, 0xBC99, 0xD3CE, 0xBC9A, 0xD3CF, 0xBC9B, 0xD3D1, 0xBC9C, 0xD3D2, + 0xBC9D, 0xD3D3, 0xBC9E, 0xD3D4, 0xBC9F, 0xD3D5, 0xBCA0, 0xD3D6, 0xBCA1, 0xC0E5, 0xBCA2, 0xC0E8, 0xBCA3, 0xC0EC, 0xBCA4, 0xC0F4, + 0xBCA5, 0xC0F5, 0xBCA6, 0xC0F7, 0xBCA7, 0xC0F9, 0xBCA8, 0xC100, 0xBCA9, 0xC104, 0xBCAA, 0xC108, 0xBCAB, 0xC110, 0xBCAC, 0xC115, + 0xBCAD, 0xC11C, 0xBCAE, 0xC11D, 0xBCAF, 0xC11E, 0xBCB0, 0xC11F, 0xBCB1, 0xC120, 0xBCB2, 0xC123, 0xBCB3, 0xC124, 0xBCB4, 0xC126, + 0xBCB5, 0xC127, 0xBCB6, 0xC12C, 0xBCB7, 0xC12D, 0xBCB8, 0xC12F, 0xBCB9, 0xC130, 0xBCBA, 0xC131, 0xBCBB, 0xC136, 0xBCBC, 0xC138, + 0xBCBD, 0xC139, 0xBCBE, 0xC13C, 0xBCBF, 0xC140, 0xBCC0, 0xC148, 0xBCC1, 0xC149, 0xBCC2, 0xC14B, 0xBCC3, 0xC14C, 0xBCC4, 0xC14D, + 0xBCC5, 0xC154, 0xBCC6, 0xC155, 0xBCC7, 0xC158, 0xBCC8, 0xC15C, 0xBCC9, 0xC164, 0xBCCA, 0xC165, 0xBCCB, 0xC167, 0xBCCC, 0xC168, + 0xBCCD, 0xC169, 0xBCCE, 0xC170, 0xBCCF, 0xC174, 0xBCD0, 0xC178, 0xBCD1, 0xC185, 0xBCD2, 0xC18C, 0xBCD3, 0xC18D, 0xBCD4, 0xC18E, + 0xBCD5, 0xC190, 0xBCD6, 0xC194, 0xBCD7, 0xC196, 0xBCD8, 0xC19C, 0xBCD9, 0xC19D, 0xBCDA, 0xC19F, 0xBCDB, 0xC1A1, 0xBCDC, 0xC1A5, + 0xBCDD, 0xC1A8, 0xBCDE, 0xC1A9, 0xBCDF, 0xC1AC, 0xBCE0, 0xC1B0, 0xBCE1, 0xC1BD, 0xBCE2, 0xC1C4, 0xBCE3, 0xC1C8, 0xBCE4, 0xC1CC, + 0xBCE5, 0xC1D4, 0xBCE6, 0xC1D7, 0xBCE7, 0xC1D8, 0xBCE8, 0xC1E0, 0xBCE9, 0xC1E4, 0xBCEA, 0xC1E8, 0xBCEB, 0xC1F0, 0xBCEC, 0xC1F1, + 0xBCED, 0xC1F3, 0xBCEE, 0xC1FC, 0xBCEF, 0xC1FD, 0xBCF0, 0xC200, 0xBCF1, 0xC204, 0xBCF2, 0xC20C, 0xBCF3, 0xC20D, 0xBCF4, 0xC20F, + 0xBCF5, 0xC211, 0xBCF6, 0xC218, 0xBCF7, 0xC219, 0xBCF8, 0xC21C, 0xBCF9, 0xC21F, 0xBCFA, 0xC220, 0xBCFB, 0xC228, 0xBCFC, 0xC229, + 0xBCFD, 0xC22B, 0xBCFE, 0xC22D, 0xBD41, 0xD3D7, 0xBD42, 0xD3D9, 0xBD43, 0xD3DA, 0xBD44, 0xD3DB, 0xBD45, 0xD3DC, 0xBD46, 0xD3DD, + 0xBD47, 0xD3DE, 0xBD48, 0xD3DF, 0xBD49, 0xD3E0, 0xBD4A, 0xD3E2, 0xBD4B, 0xD3E4, 0xBD4C, 0xD3E5, 0xBD4D, 0xD3E6, 0xBD4E, 0xD3E7, + 0xBD4F, 0xD3E8, 0xBD50, 0xD3E9, 0xBD51, 0xD3EA, 0xBD52, 0xD3EB, 0xBD53, 0xD3EE, 0xBD54, 0xD3EF, 0xBD55, 0xD3F1, 0xBD56, 0xD3F2, + 0xBD57, 0xD3F3, 0xBD58, 0xD3F5, 0xBD59, 0xD3F6, 0xBD5A, 0xD3F7, 0xBD61, 0xD3F8, 0xBD62, 0xD3F9, 0xBD63, 0xD3FA, 0xBD64, 0xD3FB, + 0xBD65, 0xD3FE, 0xBD66, 0xD400, 0xBD67, 0xD402, 0xBD68, 0xD403, 0xBD69, 0xD404, 0xBD6A, 0xD405, 0xBD6B, 0xD406, 0xBD6C, 0xD407, + 0xBD6D, 0xD409, 0xBD6E, 0xD40A, 0xBD6F, 0xD40B, 0xBD70, 0xD40C, 0xBD71, 0xD40D, 0xBD72, 0xD40E, 0xBD73, 0xD40F, 0xBD74, 0xD410, + 0xBD75, 0xD411, 0xBD76, 0xD412, 0xBD77, 0xD413, 0xBD78, 0xD414, 0xBD79, 0xD415, 0xBD7A, 0xD416, 0xBD81, 0xD417, 0xBD82, 0xD418, + 0xBD83, 0xD419, 0xBD84, 0xD41A, 0xBD85, 0xD41B, 0xBD86, 0xD41C, 0xBD87, 0xD41E, 0xBD88, 0xD41F, 0xBD89, 0xD420, 0xBD8A, 0xD421, + 0xBD8B, 0xD422, 0xBD8C, 0xD423, 0xBD8D, 0xD424, 0xBD8E, 0xD425, 0xBD8F, 0xD426, 0xBD90, 0xD427, 0xBD91, 0xD428, 0xBD92, 0xD429, + 0xBD93, 0xD42A, 0xBD94, 0xD42B, 0xBD95, 0xD42C, 0xBD96, 0xD42D, 0xBD97, 0xD42E, 0xBD98, 0xD42F, 0xBD99, 0xD430, 0xBD9A, 0xD431, + 0xBD9B, 0xD432, 0xBD9C, 0xD433, 0xBD9D, 0xD434, 0xBD9E, 0xD435, 0xBD9F, 0xD436, 0xBDA0, 0xD437, 0xBDA1, 0xC22F, 0xBDA2, 0xC231, + 0xBDA3, 0xC232, 0xBDA4, 0xC234, 0xBDA5, 0xC248, 0xBDA6, 0xC250, 0xBDA7, 0xC251, 0xBDA8, 0xC254, 0xBDA9, 0xC258, 0xBDAA, 0xC260, + 0xBDAB, 0xC265, 0xBDAC, 0xC26C, 0xBDAD, 0xC26D, 0xBDAE, 0xC270, 0xBDAF, 0xC274, 0xBDB0, 0xC27C, 0xBDB1, 0xC27D, 0xBDB2, 0xC27F, + 0xBDB3, 0xC281, 0xBDB4, 0xC288, 0xBDB5, 0xC289, 0xBDB6, 0xC290, 0xBDB7, 0xC298, 0xBDB8, 0xC29B, 0xBDB9, 0xC29D, 0xBDBA, 0xC2A4, + 0xBDBB, 0xC2A5, 0xBDBC, 0xC2A8, 0xBDBD, 0xC2AC, 0xBDBE, 0xC2AD, 0xBDBF, 0xC2B4, 0xBDC0, 0xC2B5, 0xBDC1, 0xC2B7, 0xBDC2, 0xC2B9, + 0xBDC3, 0xC2DC, 0xBDC4, 0xC2DD, 0xBDC5, 0xC2E0, 0xBDC6, 0xC2E3, 0xBDC7, 0xC2E4, 0xBDC8, 0xC2EB, 0xBDC9, 0xC2EC, 0xBDCA, 0xC2ED, + 0xBDCB, 0xC2EF, 0xBDCC, 0xC2F1, 0xBDCD, 0xC2F6, 0xBDCE, 0xC2F8, 0xBDCF, 0xC2F9, 0xBDD0, 0xC2FB, 0xBDD1, 0xC2FC, 0xBDD2, 0xC300, + 0xBDD3, 0xC308, 0xBDD4, 0xC309, 0xBDD5, 0xC30C, 0xBDD6, 0xC30D, 0xBDD7, 0xC313, 0xBDD8, 0xC314, 0xBDD9, 0xC315, 0xBDDA, 0xC318, + 0xBDDB, 0xC31C, 0xBDDC, 0xC324, 0xBDDD, 0xC325, 0xBDDE, 0xC328, 0xBDDF, 0xC329, 0xBDE0, 0xC345, 0xBDE1, 0xC368, 0xBDE2, 0xC369, + 0xBDE3, 0xC36C, 0xBDE4, 0xC370, 0xBDE5, 0xC372, 0xBDE6, 0xC378, 0xBDE7, 0xC379, 0xBDE8, 0xC37C, 0xBDE9, 0xC37D, 0xBDEA, 0xC384, + 0xBDEB, 0xC388, 0xBDEC, 0xC38C, 0xBDED, 0xC3C0, 0xBDEE, 0xC3D8, 0xBDEF, 0xC3D9, 0xBDF0, 0xC3DC, 0xBDF1, 0xC3DF, 0xBDF2, 0xC3E0, + 0xBDF3, 0xC3E2, 0xBDF4, 0xC3E8, 0xBDF5, 0xC3E9, 0xBDF6, 0xC3ED, 0xBDF7, 0xC3F4, 0xBDF8, 0xC3F5, 0xBDF9, 0xC3F8, 0xBDFA, 0xC408, + 0xBDFB, 0xC410, 0xBDFC, 0xC424, 0xBDFD, 0xC42C, 0xBDFE, 0xC430, 0xBE41, 0xD438, 0xBE42, 0xD439, 0xBE43, 0xD43A, 0xBE44, 0xD43B, + 0xBE45, 0xD43C, 0xBE46, 0xD43D, 0xBE47, 0xD43E, 0xBE48, 0xD43F, 0xBE49, 0xD441, 0xBE4A, 0xD442, 0xBE4B, 0xD443, 0xBE4C, 0xD445, + 0xBE4D, 0xD446, 0xBE4E, 0xD447, 0xBE4F, 0xD448, 0xBE50, 0xD449, 0xBE51, 0xD44A, 0xBE52, 0xD44B, 0xBE53, 0xD44C, 0xBE54, 0xD44D, + 0xBE55, 0xD44E, 0xBE56, 0xD44F, 0xBE57, 0xD450, 0xBE58, 0xD451, 0xBE59, 0xD452, 0xBE5A, 0xD453, 0xBE61, 0xD454, 0xBE62, 0xD455, + 0xBE63, 0xD456, 0xBE64, 0xD457, 0xBE65, 0xD458, 0xBE66, 0xD459, 0xBE67, 0xD45A, 0xBE68, 0xD45B, 0xBE69, 0xD45D, 0xBE6A, 0xD45E, + 0xBE6B, 0xD45F, 0xBE6C, 0xD461, 0xBE6D, 0xD462, 0xBE6E, 0xD463, 0xBE6F, 0xD465, 0xBE70, 0xD466, 0xBE71, 0xD467, 0xBE72, 0xD468, + 0xBE73, 0xD469, 0xBE74, 0xD46A, 0xBE75, 0xD46B, 0xBE76, 0xD46C, 0xBE77, 0xD46E, 0xBE78, 0xD470, 0xBE79, 0xD471, 0xBE7A, 0xD472, + 0xBE81, 0xD473, 0xBE82, 0xD474, 0xBE83, 0xD475, 0xBE84, 0xD476, 0xBE85, 0xD477, 0xBE86, 0xD47A, 0xBE87, 0xD47B, 0xBE88, 0xD47D, + 0xBE89, 0xD47E, 0xBE8A, 0xD481, 0xBE8B, 0xD483, 0xBE8C, 0xD484, 0xBE8D, 0xD485, 0xBE8E, 0xD486, 0xBE8F, 0xD487, 0xBE90, 0xD48A, + 0xBE91, 0xD48C, 0xBE92, 0xD48E, 0xBE93, 0xD48F, 0xBE94, 0xD490, 0xBE95, 0xD491, 0xBE96, 0xD492, 0xBE97, 0xD493, 0xBE98, 0xD495, + 0xBE99, 0xD496, 0xBE9A, 0xD497, 0xBE9B, 0xD498, 0xBE9C, 0xD499, 0xBE9D, 0xD49A, 0xBE9E, 0xD49B, 0xBE9F, 0xD49C, 0xBEA0, 0xD49D, + 0xBEA1, 0xC434, 0xBEA2, 0xC43C, 0xBEA3, 0xC43D, 0xBEA4, 0xC448, 0xBEA5, 0xC464, 0xBEA6, 0xC465, 0xBEA7, 0xC468, 0xBEA8, 0xC46C, + 0xBEA9, 0xC474, 0xBEAA, 0xC475, 0xBEAB, 0xC479, 0xBEAC, 0xC480, 0xBEAD, 0xC494, 0xBEAE, 0xC49C, 0xBEAF, 0xC4B8, 0xBEB0, 0xC4BC, + 0xBEB1, 0xC4E9, 0xBEB2, 0xC4F0, 0xBEB3, 0xC4F1, 0xBEB4, 0xC4F4, 0xBEB5, 0xC4F8, 0xBEB6, 0xC4FA, 0xBEB7, 0xC4FF, 0xBEB8, 0xC500, + 0xBEB9, 0xC501, 0xBEBA, 0xC50C, 0xBEBB, 0xC510, 0xBEBC, 0xC514, 0xBEBD, 0xC51C, 0xBEBE, 0xC528, 0xBEBF, 0xC529, 0xBEC0, 0xC52C, + 0xBEC1, 0xC530, 0xBEC2, 0xC538, 0xBEC3, 0xC539, 0xBEC4, 0xC53B, 0xBEC5, 0xC53D, 0xBEC6, 0xC544, 0xBEC7, 0xC545, 0xBEC8, 0xC548, + 0xBEC9, 0xC549, 0xBECA, 0xC54A, 0xBECB, 0xC54C, 0xBECC, 0xC54D, 0xBECD, 0xC54E, 0xBECE, 0xC553, 0xBECF, 0xC554, 0xBED0, 0xC555, + 0xBED1, 0xC557, 0xBED2, 0xC558, 0xBED3, 0xC559, 0xBED4, 0xC55D, 0xBED5, 0xC55E, 0xBED6, 0xC560, 0xBED7, 0xC561, 0xBED8, 0xC564, + 0xBED9, 0xC568, 0xBEDA, 0xC570, 0xBEDB, 0xC571, 0xBEDC, 0xC573, 0xBEDD, 0xC574, 0xBEDE, 0xC575, 0xBEDF, 0xC57C, 0xBEE0, 0xC57D, + 0xBEE1, 0xC580, 0xBEE2, 0xC584, 0xBEE3, 0xC587, 0xBEE4, 0xC58C, 0xBEE5, 0xC58D, 0xBEE6, 0xC58F, 0xBEE7, 0xC591, 0xBEE8, 0xC595, + 0xBEE9, 0xC597, 0xBEEA, 0xC598, 0xBEEB, 0xC59C, 0xBEEC, 0xC5A0, 0xBEED, 0xC5A9, 0xBEEE, 0xC5B4, 0xBEEF, 0xC5B5, 0xBEF0, 0xC5B8, + 0xBEF1, 0xC5B9, 0xBEF2, 0xC5BB, 0xBEF3, 0xC5BC, 0xBEF4, 0xC5BD, 0xBEF5, 0xC5BE, 0xBEF6, 0xC5C4, 0xBEF7, 0xC5C5, 0xBEF8, 0xC5C6, + 0xBEF9, 0xC5C7, 0xBEFA, 0xC5C8, 0xBEFB, 0xC5C9, 0xBEFC, 0xC5CA, 0xBEFD, 0xC5CC, 0xBEFE, 0xC5CE, 0xBF41, 0xD49E, 0xBF42, 0xD49F, + 0xBF43, 0xD4A0, 0xBF44, 0xD4A1, 0xBF45, 0xD4A2, 0xBF46, 0xD4A3, 0xBF47, 0xD4A4, 0xBF48, 0xD4A5, 0xBF49, 0xD4A6, 0xBF4A, 0xD4A7, + 0xBF4B, 0xD4A8, 0xBF4C, 0xD4AA, 0xBF4D, 0xD4AB, 0xBF4E, 0xD4AC, 0xBF4F, 0xD4AD, 0xBF50, 0xD4AE, 0xBF51, 0xD4AF, 0xBF52, 0xD4B0, + 0xBF53, 0xD4B1, 0xBF54, 0xD4B2, 0xBF55, 0xD4B3, 0xBF56, 0xD4B4, 0xBF57, 0xD4B5, 0xBF58, 0xD4B6, 0xBF59, 0xD4B7, 0xBF5A, 0xD4B8, + 0xBF61, 0xD4B9, 0xBF62, 0xD4BA, 0xBF63, 0xD4BB, 0xBF64, 0xD4BC, 0xBF65, 0xD4BD, 0xBF66, 0xD4BE, 0xBF67, 0xD4BF, 0xBF68, 0xD4C0, + 0xBF69, 0xD4C1, 0xBF6A, 0xD4C2, 0xBF6B, 0xD4C3, 0xBF6C, 0xD4C4, 0xBF6D, 0xD4C5, 0xBF6E, 0xD4C6, 0xBF6F, 0xD4C7, 0xBF70, 0xD4C8, + 0xBF71, 0xD4C9, 0xBF72, 0xD4CA, 0xBF73, 0xD4CB, 0xBF74, 0xD4CD, 0xBF75, 0xD4CE, 0xBF76, 0xD4CF, 0xBF77, 0xD4D1, 0xBF78, 0xD4D2, + 0xBF79, 0xD4D3, 0xBF7A, 0xD4D5, 0xBF81, 0xD4D6, 0xBF82, 0xD4D7, 0xBF83, 0xD4D8, 0xBF84, 0xD4D9, 0xBF85, 0xD4DA, 0xBF86, 0xD4DB, + 0xBF87, 0xD4DD, 0xBF88, 0xD4DE, 0xBF89, 0xD4E0, 0xBF8A, 0xD4E1, 0xBF8B, 0xD4E2, 0xBF8C, 0xD4E3, 0xBF8D, 0xD4E4, 0xBF8E, 0xD4E5, + 0xBF8F, 0xD4E6, 0xBF90, 0xD4E7, 0xBF91, 0xD4E9, 0xBF92, 0xD4EA, 0xBF93, 0xD4EB, 0xBF94, 0xD4ED, 0xBF95, 0xD4EE, 0xBF96, 0xD4EF, + 0xBF97, 0xD4F1, 0xBF98, 0xD4F2, 0xBF99, 0xD4F3, 0xBF9A, 0xD4F4, 0xBF9B, 0xD4F5, 0xBF9C, 0xD4F6, 0xBF9D, 0xD4F7, 0xBF9E, 0xD4F9, + 0xBF9F, 0xD4FA, 0xBFA0, 0xD4FC, 0xBFA1, 0xC5D0, 0xBFA2, 0xC5D1, 0xBFA3, 0xC5D4, 0xBFA4, 0xC5D8, 0xBFA5, 0xC5E0, 0xBFA6, 0xC5E1, + 0xBFA7, 0xC5E3, 0xBFA8, 0xC5E5, 0xBFA9, 0xC5EC, 0xBFAA, 0xC5ED, 0xBFAB, 0xC5EE, 0xBFAC, 0xC5F0, 0xBFAD, 0xC5F4, 0xBFAE, 0xC5F6, + 0xBFAF, 0xC5F7, 0xBFB0, 0xC5FC, 0xBFB1, 0xC5FD, 0xBFB2, 0xC5FE, 0xBFB3, 0xC5FF, 0xBFB4, 0xC600, 0xBFB5, 0xC601, 0xBFB6, 0xC605, + 0xBFB7, 0xC606, 0xBFB8, 0xC607, 0xBFB9, 0xC608, 0xBFBA, 0xC60C, 0xBFBB, 0xC610, 0xBFBC, 0xC618, 0xBFBD, 0xC619, 0xBFBE, 0xC61B, + 0xBFBF, 0xC61C, 0xBFC0, 0xC624, 0xBFC1, 0xC625, 0xBFC2, 0xC628, 0xBFC3, 0xC62C, 0xBFC4, 0xC62D, 0xBFC5, 0xC62E, 0xBFC6, 0xC630, + 0xBFC7, 0xC633, 0xBFC8, 0xC634, 0xBFC9, 0xC635, 0xBFCA, 0xC637, 0xBFCB, 0xC639, 0xBFCC, 0xC63B, 0xBFCD, 0xC640, 0xBFCE, 0xC641, + 0xBFCF, 0xC644, 0xBFD0, 0xC648, 0xBFD1, 0xC650, 0xBFD2, 0xC651, 0xBFD3, 0xC653, 0xBFD4, 0xC654, 0xBFD5, 0xC655, 0xBFD6, 0xC65C, + 0xBFD7, 0xC65D, 0xBFD8, 0xC660, 0xBFD9, 0xC66C, 0xBFDA, 0xC66F, 0xBFDB, 0xC671, 0xBFDC, 0xC678, 0xBFDD, 0xC679, 0xBFDE, 0xC67C, + 0xBFDF, 0xC680, 0xBFE0, 0xC688, 0xBFE1, 0xC689, 0xBFE2, 0xC68B, 0xBFE3, 0xC68D, 0xBFE4, 0xC694, 0xBFE5, 0xC695, 0xBFE6, 0xC698, + 0xBFE7, 0xC69C, 0xBFE8, 0xC6A4, 0xBFE9, 0xC6A5, 0xBFEA, 0xC6A7, 0xBFEB, 0xC6A9, 0xBFEC, 0xC6B0, 0xBFED, 0xC6B1, 0xBFEE, 0xC6B4, + 0xBFEF, 0xC6B8, 0xBFF0, 0xC6B9, 0xBFF1, 0xC6BA, 0xBFF2, 0xC6C0, 0xBFF3, 0xC6C1, 0xBFF4, 0xC6C3, 0xBFF5, 0xC6C5, 0xBFF6, 0xC6CC, + 0xBFF7, 0xC6CD, 0xBFF8, 0xC6D0, 0xBFF9, 0xC6D4, 0xBFFA, 0xC6DC, 0xBFFB, 0xC6DD, 0xBFFC, 0xC6E0, 0xBFFD, 0xC6E1, 0xBFFE, 0xC6E8, + 0xC041, 0xD4FE, 0xC042, 0xD4FF, 0xC043, 0xD500, 0xC044, 0xD501, 0xC045, 0xD502, 0xC046, 0xD503, 0xC047, 0xD505, 0xC048, 0xD506, + 0xC049, 0xD507, 0xC04A, 0xD509, 0xC04B, 0xD50A, 0xC04C, 0xD50B, 0xC04D, 0xD50D, 0xC04E, 0xD50E, 0xC04F, 0xD50F, 0xC050, 0xD510, + 0xC051, 0xD511, 0xC052, 0xD512, 0xC053, 0xD513, 0xC054, 0xD516, 0xC055, 0xD518, 0xC056, 0xD519, 0xC057, 0xD51A, 0xC058, 0xD51B, + 0xC059, 0xD51C, 0xC05A, 0xD51D, 0xC061, 0xD51E, 0xC062, 0xD51F, 0xC063, 0xD520, 0xC064, 0xD521, 0xC065, 0xD522, 0xC066, 0xD523, + 0xC067, 0xD524, 0xC068, 0xD525, 0xC069, 0xD526, 0xC06A, 0xD527, 0xC06B, 0xD528, 0xC06C, 0xD529, 0xC06D, 0xD52A, 0xC06E, 0xD52B, + 0xC06F, 0xD52C, 0xC070, 0xD52D, 0xC071, 0xD52E, 0xC072, 0xD52F, 0xC073, 0xD530, 0xC074, 0xD531, 0xC075, 0xD532, 0xC076, 0xD533, + 0xC077, 0xD534, 0xC078, 0xD535, 0xC079, 0xD536, 0xC07A, 0xD537, 0xC081, 0xD538, 0xC082, 0xD539, 0xC083, 0xD53A, 0xC084, 0xD53B, + 0xC085, 0xD53E, 0xC086, 0xD53F, 0xC087, 0xD541, 0xC088, 0xD542, 0xC089, 0xD543, 0xC08A, 0xD545, 0xC08B, 0xD546, 0xC08C, 0xD547, + 0xC08D, 0xD548, 0xC08E, 0xD549, 0xC08F, 0xD54A, 0xC090, 0xD54B, 0xC091, 0xD54E, 0xC092, 0xD550, 0xC093, 0xD552, 0xC094, 0xD553, + 0xC095, 0xD554, 0xC096, 0xD555, 0xC097, 0xD556, 0xC098, 0xD557, 0xC099, 0xD55A, 0xC09A, 0xD55B, 0xC09B, 0xD55D, 0xC09C, 0xD55E, + 0xC09D, 0xD55F, 0xC09E, 0xD561, 0xC09F, 0xD562, 0xC0A0, 0xD563, 0xC0A1, 0xC6E9, 0xC0A2, 0xC6EC, 0xC0A3, 0xC6F0, 0xC0A4, 0xC6F8, + 0xC0A5, 0xC6F9, 0xC0A6, 0xC6FD, 0xC0A7, 0xC704, 0xC0A8, 0xC705, 0xC0A9, 0xC708, 0xC0AA, 0xC70C, 0xC0AB, 0xC714, 0xC0AC, 0xC715, + 0xC0AD, 0xC717, 0xC0AE, 0xC719, 0xC0AF, 0xC720, 0xC0B0, 0xC721, 0xC0B1, 0xC724, 0xC0B2, 0xC728, 0xC0B3, 0xC730, 0xC0B4, 0xC731, + 0xC0B5, 0xC733, 0xC0B6, 0xC735, 0xC0B7, 0xC737, 0xC0B8, 0xC73C, 0xC0B9, 0xC73D, 0xC0BA, 0xC740, 0xC0BB, 0xC744, 0xC0BC, 0xC74A, + 0xC0BD, 0xC74C, 0xC0BE, 0xC74D, 0xC0BF, 0xC74F, 0xC0C0, 0xC751, 0xC0C1, 0xC752, 0xC0C2, 0xC753, 0xC0C3, 0xC754, 0xC0C4, 0xC755, + 0xC0C5, 0xC756, 0xC0C6, 0xC757, 0xC0C7, 0xC758, 0xC0C8, 0xC75C, 0xC0C9, 0xC760, 0xC0CA, 0xC768, 0xC0CB, 0xC76B, 0xC0CC, 0xC774, + 0xC0CD, 0xC775, 0xC0CE, 0xC778, 0xC0CF, 0xC77C, 0xC0D0, 0xC77D, 0xC0D1, 0xC77E, 0xC0D2, 0xC783, 0xC0D3, 0xC784, 0xC0D4, 0xC785, + 0xC0D5, 0xC787, 0xC0D6, 0xC788, 0xC0D7, 0xC789, 0xC0D8, 0xC78A, 0xC0D9, 0xC78E, 0xC0DA, 0xC790, 0xC0DB, 0xC791, 0xC0DC, 0xC794, + 0xC0DD, 0xC796, 0xC0DE, 0xC797, 0xC0DF, 0xC798, 0xC0E0, 0xC79A, 0xC0E1, 0xC7A0, 0xC0E2, 0xC7A1, 0xC0E3, 0xC7A3, 0xC0E4, 0xC7A4, + 0xC0E5, 0xC7A5, 0xC0E6, 0xC7A6, 0xC0E7, 0xC7AC, 0xC0E8, 0xC7AD, 0xC0E9, 0xC7B0, 0xC0EA, 0xC7B4, 0xC0EB, 0xC7BC, 0xC0EC, 0xC7BD, + 0xC0ED, 0xC7BF, 0xC0EE, 0xC7C0, 0xC0EF, 0xC7C1, 0xC0F0, 0xC7C8, 0xC0F1, 0xC7C9, 0xC0F2, 0xC7CC, 0xC0F3, 0xC7CE, 0xC0F4, 0xC7D0, + 0xC0F5, 0xC7D8, 0xC0F6, 0xC7DD, 0xC0F7, 0xC7E4, 0xC0F8, 0xC7E8, 0xC0F9, 0xC7EC, 0xC0FA, 0xC800, 0xC0FB, 0xC801, 0xC0FC, 0xC804, + 0xC0FD, 0xC808, 0xC0FE, 0xC80A, 0xC141, 0xD564, 0xC142, 0xD566, 0xC143, 0xD567, 0xC144, 0xD56A, 0xC145, 0xD56C, 0xC146, 0xD56E, + 0xC147, 0xD56F, 0xC148, 0xD570, 0xC149, 0xD571, 0xC14A, 0xD572, 0xC14B, 0xD573, 0xC14C, 0xD576, 0xC14D, 0xD577, 0xC14E, 0xD579, + 0xC14F, 0xD57A, 0xC150, 0xD57B, 0xC151, 0xD57D, 0xC152, 0xD57E, 0xC153, 0xD57F, 0xC154, 0xD580, 0xC155, 0xD581, 0xC156, 0xD582, + 0xC157, 0xD583, 0xC158, 0xD586, 0xC159, 0xD58A, 0xC15A, 0xD58B, 0xC161, 0xD58C, 0xC162, 0xD58D, 0xC163, 0xD58E, 0xC164, 0xD58F, + 0xC165, 0xD591, 0xC166, 0xD592, 0xC167, 0xD593, 0xC168, 0xD594, 0xC169, 0xD595, 0xC16A, 0xD596, 0xC16B, 0xD597, 0xC16C, 0xD598, + 0xC16D, 0xD599, 0xC16E, 0xD59A, 0xC16F, 0xD59B, 0xC170, 0xD59C, 0xC171, 0xD59D, 0xC172, 0xD59E, 0xC173, 0xD59F, 0xC174, 0xD5A0, + 0xC175, 0xD5A1, 0xC176, 0xD5A2, 0xC177, 0xD5A3, 0xC178, 0xD5A4, 0xC179, 0xD5A6, 0xC17A, 0xD5A7, 0xC181, 0xD5A8, 0xC182, 0xD5A9, + 0xC183, 0xD5AA, 0xC184, 0xD5AB, 0xC185, 0xD5AC, 0xC186, 0xD5AD, 0xC187, 0xD5AE, 0xC188, 0xD5AF, 0xC189, 0xD5B0, 0xC18A, 0xD5B1, + 0xC18B, 0xD5B2, 0xC18C, 0xD5B3, 0xC18D, 0xD5B4, 0xC18E, 0xD5B5, 0xC18F, 0xD5B6, 0xC190, 0xD5B7, 0xC191, 0xD5B8, 0xC192, 0xD5B9, + 0xC193, 0xD5BA, 0xC194, 0xD5BB, 0xC195, 0xD5BC, 0xC196, 0xD5BD, 0xC197, 0xD5BE, 0xC198, 0xD5BF, 0xC199, 0xD5C0, 0xC19A, 0xD5C1, + 0xC19B, 0xD5C2, 0xC19C, 0xD5C3, 0xC19D, 0xD5C4, 0xC19E, 0xD5C5, 0xC19F, 0xD5C6, 0xC1A0, 0xD5C7, 0xC1A1, 0xC810, 0xC1A2, 0xC811, + 0xC1A3, 0xC813, 0xC1A4, 0xC815, 0xC1A5, 0xC816, 0xC1A6, 0xC81C, 0xC1A7, 0xC81D, 0xC1A8, 0xC820, 0xC1A9, 0xC824, 0xC1AA, 0xC82C, + 0xC1AB, 0xC82D, 0xC1AC, 0xC82F, 0xC1AD, 0xC831, 0xC1AE, 0xC838, 0xC1AF, 0xC83C, 0xC1B0, 0xC840, 0xC1B1, 0xC848, 0xC1B2, 0xC849, + 0xC1B3, 0xC84C, 0xC1B4, 0xC84D, 0xC1B5, 0xC854, 0xC1B6, 0xC870, 0xC1B7, 0xC871, 0xC1B8, 0xC874, 0xC1B9, 0xC878, 0xC1BA, 0xC87A, + 0xC1BB, 0xC880, 0xC1BC, 0xC881, 0xC1BD, 0xC883, 0xC1BE, 0xC885, 0xC1BF, 0xC886, 0xC1C0, 0xC887, 0xC1C1, 0xC88B, 0xC1C2, 0xC88C, + 0xC1C3, 0xC88D, 0xC1C4, 0xC894, 0xC1C5, 0xC89D, 0xC1C6, 0xC89F, 0xC1C7, 0xC8A1, 0xC1C8, 0xC8A8, 0xC1C9, 0xC8BC, 0xC1CA, 0xC8BD, + 0xC1CB, 0xC8C4, 0xC1CC, 0xC8C8, 0xC1CD, 0xC8CC, 0xC1CE, 0xC8D4, 0xC1CF, 0xC8D5, 0xC1D0, 0xC8D7, 0xC1D1, 0xC8D9, 0xC1D2, 0xC8E0, + 0xC1D3, 0xC8E1, 0xC1D4, 0xC8E4, 0xC1D5, 0xC8F5, 0xC1D6, 0xC8FC, 0xC1D7, 0xC8FD, 0xC1D8, 0xC900, 0xC1D9, 0xC904, 0xC1DA, 0xC905, + 0xC1DB, 0xC906, 0xC1DC, 0xC90C, 0xC1DD, 0xC90D, 0xC1DE, 0xC90F, 0xC1DF, 0xC911, 0xC1E0, 0xC918, 0xC1E1, 0xC92C, 0xC1E2, 0xC934, + 0xC1E3, 0xC950, 0xC1E4, 0xC951, 0xC1E5, 0xC954, 0xC1E6, 0xC958, 0xC1E7, 0xC960, 0xC1E8, 0xC961, 0xC1E9, 0xC963, 0xC1EA, 0xC96C, + 0xC1EB, 0xC970, 0xC1EC, 0xC974, 0xC1ED, 0xC97C, 0xC1EE, 0xC988, 0xC1EF, 0xC989, 0xC1F0, 0xC98C, 0xC1F1, 0xC990, 0xC1F2, 0xC998, + 0xC1F3, 0xC999, 0xC1F4, 0xC99B, 0xC1F5, 0xC99D, 0xC1F6, 0xC9C0, 0xC1F7, 0xC9C1, 0xC1F8, 0xC9C4, 0xC1F9, 0xC9C7, 0xC1FA, 0xC9C8, + 0xC1FB, 0xC9CA, 0xC1FC, 0xC9D0, 0xC1FD, 0xC9D1, 0xC1FE, 0xC9D3, 0xC241, 0xD5CA, 0xC242, 0xD5CB, 0xC243, 0xD5CD, 0xC244, 0xD5CE, + 0xC245, 0xD5CF, 0xC246, 0xD5D1, 0xC247, 0xD5D3, 0xC248, 0xD5D4, 0xC249, 0xD5D5, 0xC24A, 0xD5D6, 0xC24B, 0xD5D7, 0xC24C, 0xD5DA, + 0xC24D, 0xD5DC, 0xC24E, 0xD5DE, 0xC24F, 0xD5DF, 0xC250, 0xD5E0, 0xC251, 0xD5E1, 0xC252, 0xD5E2, 0xC253, 0xD5E3, 0xC254, 0xD5E6, + 0xC255, 0xD5E7, 0xC256, 0xD5E9, 0xC257, 0xD5EA, 0xC258, 0xD5EB, 0xC259, 0xD5ED, 0xC25A, 0xD5EE, 0xC261, 0xD5EF, 0xC262, 0xD5F0, + 0xC263, 0xD5F1, 0xC264, 0xD5F2, 0xC265, 0xD5F3, 0xC266, 0xD5F6, 0xC267, 0xD5F8, 0xC268, 0xD5FA, 0xC269, 0xD5FB, 0xC26A, 0xD5FC, + 0xC26B, 0xD5FD, 0xC26C, 0xD5FE, 0xC26D, 0xD5FF, 0xC26E, 0xD602, 0xC26F, 0xD603, 0xC270, 0xD605, 0xC271, 0xD606, 0xC272, 0xD607, + 0xC273, 0xD609, 0xC274, 0xD60A, 0xC275, 0xD60B, 0xC276, 0xD60C, 0xC277, 0xD60D, 0xC278, 0xD60E, 0xC279, 0xD60F, 0xC27A, 0xD612, + 0xC281, 0xD616, 0xC282, 0xD617, 0xC283, 0xD618, 0xC284, 0xD619, 0xC285, 0xD61A, 0xC286, 0xD61B, 0xC287, 0xD61D, 0xC288, 0xD61E, + 0xC289, 0xD61F, 0xC28A, 0xD621, 0xC28B, 0xD622, 0xC28C, 0xD623, 0xC28D, 0xD625, 0xC28E, 0xD626, 0xC28F, 0xD627, 0xC290, 0xD628, + 0xC291, 0xD629, 0xC292, 0xD62A, 0xC293, 0xD62B, 0xC294, 0xD62C, 0xC295, 0xD62E, 0xC296, 0xD62F, 0xC297, 0xD630, 0xC298, 0xD631, + 0xC299, 0xD632, 0xC29A, 0xD633, 0xC29B, 0xD634, 0xC29C, 0xD635, 0xC29D, 0xD636, 0xC29E, 0xD637, 0xC29F, 0xD63A, 0xC2A0, 0xD63B, + 0xC2A1, 0xC9D5, 0xC2A2, 0xC9D6, 0xC2A3, 0xC9D9, 0xC2A4, 0xC9DA, 0xC2A5, 0xC9DC, 0xC2A6, 0xC9DD, 0xC2A7, 0xC9E0, 0xC2A8, 0xC9E2, + 0xC2A9, 0xC9E4, 0xC2AA, 0xC9E7, 0xC2AB, 0xC9EC, 0xC2AC, 0xC9ED, 0xC2AD, 0xC9EF, 0xC2AE, 0xC9F0, 0xC2AF, 0xC9F1, 0xC2B0, 0xC9F8, + 0xC2B1, 0xC9F9, 0xC2B2, 0xC9FC, 0xC2B3, 0xCA00, 0xC2B4, 0xCA08, 0xC2B5, 0xCA09, 0xC2B6, 0xCA0B, 0xC2B7, 0xCA0C, 0xC2B8, 0xCA0D, + 0xC2B9, 0xCA14, 0xC2BA, 0xCA18, 0xC2BB, 0xCA29, 0xC2BC, 0xCA4C, 0xC2BD, 0xCA4D, 0xC2BE, 0xCA50, 0xC2BF, 0xCA54, 0xC2C0, 0xCA5C, + 0xC2C1, 0xCA5D, 0xC2C2, 0xCA5F, 0xC2C3, 0xCA60, 0xC2C4, 0xCA61, 0xC2C5, 0xCA68, 0xC2C6, 0xCA7D, 0xC2C7, 0xCA84, 0xC2C8, 0xCA98, + 0xC2C9, 0xCABC, 0xC2CA, 0xCABD, 0xC2CB, 0xCAC0, 0xC2CC, 0xCAC4, 0xC2CD, 0xCACC, 0xC2CE, 0xCACD, 0xC2CF, 0xCACF, 0xC2D0, 0xCAD1, + 0xC2D1, 0xCAD3, 0xC2D2, 0xCAD8, 0xC2D3, 0xCAD9, 0xC2D4, 0xCAE0, 0xC2D5, 0xCAEC, 0xC2D6, 0xCAF4, 0xC2D7, 0xCB08, 0xC2D8, 0xCB10, + 0xC2D9, 0xCB14, 0xC2DA, 0xCB18, 0xC2DB, 0xCB20, 0xC2DC, 0xCB21, 0xC2DD, 0xCB41, 0xC2DE, 0xCB48, 0xC2DF, 0xCB49, 0xC2E0, 0xCB4C, + 0xC2E1, 0xCB50, 0xC2E2, 0xCB58, 0xC2E3, 0xCB59, 0xC2E4, 0xCB5D, 0xC2E5, 0xCB64, 0xC2E6, 0xCB78, 0xC2E7, 0xCB79, 0xC2E8, 0xCB9C, + 0xC2E9, 0xCBB8, 0xC2EA, 0xCBD4, 0xC2EB, 0xCBE4, 0xC2EC, 0xCBE7, 0xC2ED, 0xCBE9, 0xC2EE, 0xCC0C, 0xC2EF, 0xCC0D, 0xC2F0, 0xCC10, + 0xC2F1, 0xCC14, 0xC2F2, 0xCC1C, 0xC2F3, 0xCC1D, 0xC2F4, 0xCC21, 0xC2F5, 0xCC22, 0xC2F6, 0xCC27, 0xC2F7, 0xCC28, 0xC2F8, 0xCC29, + 0xC2F9, 0xCC2C, 0xC2FA, 0xCC2E, 0xC2FB, 0xCC30, 0xC2FC, 0xCC38, 0xC2FD, 0xCC39, 0xC2FE, 0xCC3B, 0xC341, 0xD63D, 0xC342, 0xD63E, + 0xC343, 0xD63F, 0xC344, 0xD641, 0xC345, 0xD642, 0xC346, 0xD643, 0xC347, 0xD644, 0xC348, 0xD646, 0xC349, 0xD647, 0xC34A, 0xD64A, + 0xC34B, 0xD64C, 0xC34C, 0xD64E, 0xC34D, 0xD64F, 0xC34E, 0xD650, 0xC34F, 0xD652, 0xC350, 0xD653, 0xC351, 0xD656, 0xC352, 0xD657, + 0xC353, 0xD659, 0xC354, 0xD65A, 0xC355, 0xD65B, 0xC356, 0xD65D, 0xC357, 0xD65E, 0xC358, 0xD65F, 0xC359, 0xD660, 0xC35A, 0xD661, + 0xC361, 0xD662, 0xC362, 0xD663, 0xC363, 0xD664, 0xC364, 0xD665, 0xC365, 0xD666, 0xC366, 0xD668, 0xC367, 0xD66A, 0xC368, 0xD66B, + 0xC369, 0xD66C, 0xC36A, 0xD66D, 0xC36B, 0xD66E, 0xC36C, 0xD66F, 0xC36D, 0xD672, 0xC36E, 0xD673, 0xC36F, 0xD675, 0xC370, 0xD676, + 0xC371, 0xD677, 0xC372, 0xD678, 0xC373, 0xD679, 0xC374, 0xD67A, 0xC375, 0xD67B, 0xC376, 0xD67C, 0xC377, 0xD67D, 0xC378, 0xD67E, + 0xC379, 0xD67F, 0xC37A, 0xD680, 0xC381, 0xD681, 0xC382, 0xD682, 0xC383, 0xD684, 0xC384, 0xD686, 0xC385, 0xD687, 0xC386, 0xD688, + 0xC387, 0xD689, 0xC388, 0xD68A, 0xC389, 0xD68B, 0xC38A, 0xD68E, 0xC38B, 0xD68F, 0xC38C, 0xD691, 0xC38D, 0xD692, 0xC38E, 0xD693, + 0xC38F, 0xD695, 0xC390, 0xD696, 0xC391, 0xD697, 0xC392, 0xD698, 0xC393, 0xD699, 0xC394, 0xD69A, 0xC395, 0xD69B, 0xC396, 0xD69C, + 0xC397, 0xD69E, 0xC398, 0xD6A0, 0xC399, 0xD6A2, 0xC39A, 0xD6A3, 0xC39B, 0xD6A4, 0xC39C, 0xD6A5, 0xC39D, 0xD6A6, 0xC39E, 0xD6A7, + 0xC39F, 0xD6A9, 0xC3A0, 0xD6AA, 0xC3A1, 0xCC3C, 0xC3A2, 0xCC3D, 0xC3A3, 0xCC3E, 0xC3A4, 0xCC44, 0xC3A5, 0xCC45, 0xC3A6, 0xCC48, + 0xC3A7, 0xCC4C, 0xC3A8, 0xCC54, 0xC3A9, 0xCC55, 0xC3AA, 0xCC57, 0xC3AB, 0xCC58, 0xC3AC, 0xCC59, 0xC3AD, 0xCC60, 0xC3AE, 0xCC64, + 0xC3AF, 0xCC66, 0xC3B0, 0xCC68, 0xC3B1, 0xCC70, 0xC3B2, 0xCC75, 0xC3B3, 0xCC98, 0xC3B4, 0xCC99, 0xC3B5, 0xCC9C, 0xC3B6, 0xCCA0, + 0xC3B7, 0xCCA8, 0xC3B8, 0xCCA9, 0xC3B9, 0xCCAB, 0xC3BA, 0xCCAC, 0xC3BB, 0xCCAD, 0xC3BC, 0xCCB4, 0xC3BD, 0xCCB5, 0xC3BE, 0xCCB8, + 0xC3BF, 0xCCBC, 0xC3C0, 0xCCC4, 0xC3C1, 0xCCC5, 0xC3C2, 0xCCC7, 0xC3C3, 0xCCC9, 0xC3C4, 0xCCD0, 0xC3C5, 0xCCD4, 0xC3C6, 0xCCE4, + 0xC3C7, 0xCCEC, 0xC3C8, 0xCCF0, 0xC3C9, 0xCD01, 0xC3CA, 0xCD08, 0xC3CB, 0xCD09, 0xC3CC, 0xCD0C, 0xC3CD, 0xCD10, 0xC3CE, 0xCD18, + 0xC3CF, 0xCD19, 0xC3D0, 0xCD1B, 0xC3D1, 0xCD1D, 0xC3D2, 0xCD24, 0xC3D3, 0xCD28, 0xC3D4, 0xCD2C, 0xC3D5, 0xCD39, 0xC3D6, 0xCD5C, + 0xC3D7, 0xCD60, 0xC3D8, 0xCD64, 0xC3D9, 0xCD6C, 0xC3DA, 0xCD6D, 0xC3DB, 0xCD6F, 0xC3DC, 0xCD71, 0xC3DD, 0xCD78, 0xC3DE, 0xCD88, + 0xC3DF, 0xCD94, 0xC3E0, 0xCD95, 0xC3E1, 0xCD98, 0xC3E2, 0xCD9C, 0xC3E3, 0xCDA4, 0xC3E4, 0xCDA5, 0xC3E5, 0xCDA7, 0xC3E6, 0xCDA9, + 0xC3E7, 0xCDB0, 0xC3E8, 0xCDC4, 0xC3E9, 0xCDCC, 0xC3EA, 0xCDD0, 0xC3EB, 0xCDE8, 0xC3EC, 0xCDEC, 0xC3ED, 0xCDF0, 0xC3EE, 0xCDF8, + 0xC3EF, 0xCDF9, 0xC3F0, 0xCDFB, 0xC3F1, 0xCDFD, 0xC3F2, 0xCE04, 0xC3F3, 0xCE08, 0xC3F4, 0xCE0C, 0xC3F5, 0xCE14, 0xC3F6, 0xCE19, + 0xC3F7, 0xCE20, 0xC3F8, 0xCE21, 0xC3F9, 0xCE24, 0xC3FA, 0xCE28, 0xC3FB, 0xCE30, 0xC3FC, 0xCE31, 0xC3FD, 0xCE33, 0xC3FE, 0xCE35, + 0xC441, 0xD6AB, 0xC442, 0xD6AD, 0xC443, 0xD6AE, 0xC444, 0xD6AF, 0xC445, 0xD6B1, 0xC446, 0xD6B2, 0xC447, 0xD6B3, 0xC448, 0xD6B4, + 0xC449, 0xD6B5, 0xC44A, 0xD6B6, 0xC44B, 0xD6B7, 0xC44C, 0xD6B8, 0xC44D, 0xD6BA, 0xC44E, 0xD6BC, 0xC44F, 0xD6BD, 0xC450, 0xD6BE, + 0xC451, 0xD6BF, 0xC452, 0xD6C0, 0xC453, 0xD6C1, 0xC454, 0xD6C2, 0xC455, 0xD6C3, 0xC456, 0xD6C6, 0xC457, 0xD6C7, 0xC458, 0xD6C9, + 0xC459, 0xD6CA, 0xC45A, 0xD6CB, 0xC461, 0xD6CD, 0xC462, 0xD6CE, 0xC463, 0xD6CF, 0xC464, 0xD6D0, 0xC465, 0xD6D2, 0xC466, 0xD6D3, + 0xC467, 0xD6D5, 0xC468, 0xD6D6, 0xC469, 0xD6D8, 0xC46A, 0xD6DA, 0xC46B, 0xD6DB, 0xC46C, 0xD6DC, 0xC46D, 0xD6DD, 0xC46E, 0xD6DE, + 0xC46F, 0xD6DF, 0xC470, 0xD6E1, 0xC471, 0xD6E2, 0xC472, 0xD6E3, 0xC473, 0xD6E5, 0xC474, 0xD6E6, 0xC475, 0xD6E7, 0xC476, 0xD6E9, + 0xC477, 0xD6EA, 0xC478, 0xD6EB, 0xC479, 0xD6EC, 0xC47A, 0xD6ED, 0xC481, 0xD6EE, 0xC482, 0xD6EF, 0xC483, 0xD6F1, 0xC484, 0xD6F2, + 0xC485, 0xD6F3, 0xC486, 0xD6F4, 0xC487, 0xD6F6, 0xC488, 0xD6F7, 0xC489, 0xD6F8, 0xC48A, 0xD6F9, 0xC48B, 0xD6FA, 0xC48C, 0xD6FB, + 0xC48D, 0xD6FE, 0xC48E, 0xD6FF, 0xC48F, 0xD701, 0xC490, 0xD702, 0xC491, 0xD703, 0xC492, 0xD705, 0xC493, 0xD706, 0xC494, 0xD707, + 0xC495, 0xD708, 0xC496, 0xD709, 0xC497, 0xD70A, 0xC498, 0xD70B, 0xC499, 0xD70C, 0xC49A, 0xD70D, 0xC49B, 0xD70E, 0xC49C, 0xD70F, + 0xC49D, 0xD710, 0xC49E, 0xD712, 0xC49F, 0xD713, 0xC4A0, 0xD714, 0xC4A1, 0xCE58, 0xC4A2, 0xCE59, 0xC4A3, 0xCE5C, 0xC4A4, 0xCE5F, + 0xC4A5, 0xCE60, 0xC4A6, 0xCE61, 0xC4A7, 0xCE68, 0xC4A8, 0xCE69, 0xC4A9, 0xCE6B, 0xC4AA, 0xCE6D, 0xC4AB, 0xCE74, 0xC4AC, 0xCE75, + 0xC4AD, 0xCE78, 0xC4AE, 0xCE7C, 0xC4AF, 0xCE84, 0xC4B0, 0xCE85, 0xC4B1, 0xCE87, 0xC4B2, 0xCE89, 0xC4B3, 0xCE90, 0xC4B4, 0xCE91, + 0xC4B5, 0xCE94, 0xC4B6, 0xCE98, 0xC4B7, 0xCEA0, 0xC4B8, 0xCEA1, 0xC4B9, 0xCEA3, 0xC4BA, 0xCEA4, 0xC4BB, 0xCEA5, 0xC4BC, 0xCEAC, + 0xC4BD, 0xCEAD, 0xC4BE, 0xCEC1, 0xC4BF, 0xCEE4, 0xC4C0, 0xCEE5, 0xC4C1, 0xCEE8, 0xC4C2, 0xCEEB, 0xC4C3, 0xCEEC, 0xC4C4, 0xCEF4, + 0xC4C5, 0xCEF5, 0xC4C6, 0xCEF7, 0xC4C7, 0xCEF8, 0xC4C8, 0xCEF9, 0xC4C9, 0xCF00, 0xC4CA, 0xCF01, 0xC4CB, 0xCF04, 0xC4CC, 0xCF08, + 0xC4CD, 0xCF10, 0xC4CE, 0xCF11, 0xC4CF, 0xCF13, 0xC4D0, 0xCF15, 0xC4D1, 0xCF1C, 0xC4D2, 0xCF20, 0xC4D3, 0xCF24, 0xC4D4, 0xCF2C, + 0xC4D5, 0xCF2D, 0xC4D6, 0xCF2F, 0xC4D7, 0xCF30, 0xC4D8, 0xCF31, 0xC4D9, 0xCF38, 0xC4DA, 0xCF54, 0xC4DB, 0xCF55, 0xC4DC, 0xCF58, + 0xC4DD, 0xCF5C, 0xC4DE, 0xCF64, 0xC4DF, 0xCF65, 0xC4E0, 0xCF67, 0xC4E1, 0xCF69, 0xC4E2, 0xCF70, 0xC4E3, 0xCF71, 0xC4E4, 0xCF74, + 0xC4E5, 0xCF78, 0xC4E6, 0xCF80, 0xC4E7, 0xCF85, 0xC4E8, 0xCF8C, 0xC4E9, 0xCFA1, 0xC4EA, 0xCFA8, 0xC4EB, 0xCFB0, 0xC4EC, 0xCFC4, + 0xC4ED, 0xCFE0, 0xC4EE, 0xCFE1, 0xC4EF, 0xCFE4, 0xC4F0, 0xCFE8, 0xC4F1, 0xCFF0, 0xC4F2, 0xCFF1, 0xC4F3, 0xCFF3, 0xC4F4, 0xCFF5, + 0xC4F5, 0xCFFC, 0xC4F6, 0xD000, 0xC4F7, 0xD004, 0xC4F8, 0xD011, 0xC4F9, 0xD018, 0xC4FA, 0xD02D, 0xC4FB, 0xD034, 0xC4FC, 0xD035, + 0xC4FD, 0xD038, 0xC4FE, 0xD03C, 0xC541, 0xD715, 0xC542, 0xD716, 0xC543, 0xD717, 0xC544, 0xD71A, 0xC545, 0xD71B, 0xC546, 0xD71D, + 0xC547, 0xD71E, 0xC548, 0xD71F, 0xC549, 0xD721, 0xC54A, 0xD722, 0xC54B, 0xD723, 0xC54C, 0xD724, 0xC54D, 0xD725, 0xC54E, 0xD726, + 0xC54F, 0xD727, 0xC550, 0xD72A, 0xC551, 0xD72C, 0xC552, 0xD72E, 0xC553, 0xD72F, 0xC554, 0xD730, 0xC555, 0xD731, 0xC556, 0xD732, + 0xC557, 0xD733, 0xC558, 0xD736, 0xC559, 0xD737, 0xC55A, 0xD739, 0xC561, 0xD73A, 0xC562, 0xD73B, 0xC563, 0xD73D, 0xC564, 0xD73E, + 0xC565, 0xD73F, 0xC566, 0xD740, 0xC567, 0xD741, 0xC568, 0xD742, 0xC569, 0xD743, 0xC56A, 0xD745, 0xC56B, 0xD746, 0xC56C, 0xD748, + 0xC56D, 0xD74A, 0xC56E, 0xD74B, 0xC56F, 0xD74C, 0xC570, 0xD74D, 0xC571, 0xD74E, 0xC572, 0xD74F, 0xC573, 0xD752, 0xC574, 0xD753, + 0xC575, 0xD755, 0xC576, 0xD75A, 0xC577, 0xD75B, 0xC578, 0xD75C, 0xC579, 0xD75D, 0xC57A, 0xD75E, 0xC581, 0xD75F, 0xC582, 0xD762, + 0xC583, 0xD764, 0xC584, 0xD766, 0xC585, 0xD767, 0xC586, 0xD768, 0xC587, 0xD76A, 0xC588, 0xD76B, 0xC589, 0xD76D, 0xC58A, 0xD76E, + 0xC58B, 0xD76F, 0xC58C, 0xD771, 0xC58D, 0xD772, 0xC58E, 0xD773, 0xC58F, 0xD775, 0xC590, 0xD776, 0xC591, 0xD777, 0xC592, 0xD778, + 0xC593, 0xD779, 0xC594, 0xD77A, 0xC595, 0xD77B, 0xC596, 0xD77E, 0xC597, 0xD77F, 0xC598, 0xD780, 0xC599, 0xD782, 0xC59A, 0xD783, + 0xC59B, 0xD784, 0xC59C, 0xD785, 0xC59D, 0xD786, 0xC59E, 0xD787, 0xC59F, 0xD78A, 0xC5A0, 0xD78B, 0xC5A1, 0xD044, 0xC5A2, 0xD045, + 0xC5A3, 0xD047, 0xC5A4, 0xD049, 0xC5A5, 0xD050, 0xC5A6, 0xD054, 0xC5A7, 0xD058, 0xC5A8, 0xD060, 0xC5A9, 0xD06C, 0xC5AA, 0xD06D, + 0xC5AB, 0xD070, 0xC5AC, 0xD074, 0xC5AD, 0xD07C, 0xC5AE, 0xD07D, 0xC5AF, 0xD081, 0xC5B0, 0xD0A4, 0xC5B1, 0xD0A5, 0xC5B2, 0xD0A8, + 0xC5B3, 0xD0AC, 0xC5B4, 0xD0B4, 0xC5B5, 0xD0B5, 0xC5B6, 0xD0B7, 0xC5B7, 0xD0B9, 0xC5B8, 0xD0C0, 0xC5B9, 0xD0C1, 0xC5BA, 0xD0C4, + 0xC5BB, 0xD0C8, 0xC5BC, 0xD0C9, 0xC5BD, 0xD0D0, 0xC5BE, 0xD0D1, 0xC5BF, 0xD0D3, 0xC5C0, 0xD0D4, 0xC5C1, 0xD0D5, 0xC5C2, 0xD0DC, + 0xC5C3, 0xD0DD, 0xC5C4, 0xD0E0, 0xC5C5, 0xD0E4, 0xC5C6, 0xD0EC, 0xC5C7, 0xD0ED, 0xC5C8, 0xD0EF, 0xC5C9, 0xD0F0, 0xC5CA, 0xD0F1, + 0xC5CB, 0xD0F8, 0xC5CC, 0xD10D, 0xC5CD, 0xD130, 0xC5CE, 0xD131, 0xC5CF, 0xD134, 0xC5D0, 0xD138, 0xC5D1, 0xD13A, 0xC5D2, 0xD140, + 0xC5D3, 0xD141, 0xC5D4, 0xD143, 0xC5D5, 0xD144, 0xC5D6, 0xD145, 0xC5D7, 0xD14C, 0xC5D8, 0xD14D, 0xC5D9, 0xD150, 0xC5DA, 0xD154, + 0xC5DB, 0xD15C, 0xC5DC, 0xD15D, 0xC5DD, 0xD15F, 0xC5DE, 0xD161, 0xC5DF, 0xD168, 0xC5E0, 0xD16C, 0xC5E1, 0xD17C, 0xC5E2, 0xD184, + 0xC5E3, 0xD188, 0xC5E4, 0xD1A0, 0xC5E5, 0xD1A1, 0xC5E6, 0xD1A4, 0xC5E7, 0xD1A8, 0xC5E8, 0xD1B0, 0xC5E9, 0xD1B1, 0xC5EA, 0xD1B3, + 0xC5EB, 0xD1B5, 0xC5EC, 0xD1BA, 0xC5ED, 0xD1BC, 0xC5EE, 0xD1C0, 0xC5EF, 0xD1D8, 0xC5F0, 0xD1F4, 0xC5F1, 0xD1F8, 0xC5F2, 0xD207, + 0xC5F3, 0xD209, 0xC5F4, 0xD210, 0xC5F5, 0xD22C, 0xC5F6, 0xD22D, 0xC5F7, 0xD230, 0xC5F8, 0xD234, 0xC5F9, 0xD23C, 0xC5FA, 0xD23D, + 0xC5FB, 0xD23F, 0xC5FC, 0xD241, 0xC5FD, 0xD248, 0xC5FE, 0xD25C, 0xC641, 0xD78D, 0xC642, 0xD78E, 0xC643, 0xD78F, 0xC644, 0xD791, + 0xC645, 0xD792, 0xC646, 0xD793, 0xC647, 0xD794, 0xC648, 0xD795, 0xC649, 0xD796, 0xC64A, 0xD797, 0xC64B, 0xD79A, 0xC64C, 0xD79C, + 0xC64D, 0xD79E, 0xC64E, 0xD79F, 0xC64F, 0xD7A0, 0xC650, 0xD7A1, 0xC651, 0xD7A2, 0xC652, 0xD7A3, 0xC6A1, 0xD264, 0xC6A2, 0xD280, + 0xC6A3, 0xD281, 0xC6A4, 0xD284, 0xC6A5, 0xD288, 0xC6A6, 0xD290, 0xC6A7, 0xD291, 0xC6A8, 0xD295, 0xC6A9, 0xD29C, 0xC6AA, 0xD2A0, + 0xC6AB, 0xD2A4, 0xC6AC, 0xD2AC, 0xC6AD, 0xD2B1, 0xC6AE, 0xD2B8, 0xC6AF, 0xD2B9, 0xC6B0, 0xD2BC, 0xC6B1, 0xD2BF, 0xC6B2, 0xD2C0, + 0xC6B3, 0xD2C2, 0xC6B4, 0xD2C8, 0xC6B5, 0xD2C9, 0xC6B6, 0xD2CB, 0xC6B7, 0xD2D4, 0xC6B8, 0xD2D8, 0xC6B9, 0xD2DC, 0xC6BA, 0xD2E4, + 0xC6BB, 0xD2E5, 0xC6BC, 0xD2F0, 0xC6BD, 0xD2F1, 0xC6BE, 0xD2F4, 0xC6BF, 0xD2F8, 0xC6C0, 0xD300, 0xC6C1, 0xD301, 0xC6C2, 0xD303, + 0xC6C3, 0xD305, 0xC6C4, 0xD30C, 0xC6C5, 0xD30D, 0xC6C6, 0xD30E, 0xC6C7, 0xD310, 0xC6C8, 0xD314, 0xC6C9, 0xD316, 0xC6CA, 0xD31C, + 0xC6CB, 0xD31D, 0xC6CC, 0xD31F, 0xC6CD, 0xD320, 0xC6CE, 0xD321, 0xC6CF, 0xD325, 0xC6D0, 0xD328, 0xC6D1, 0xD329, 0xC6D2, 0xD32C, + 0xC6D3, 0xD330, 0xC6D4, 0xD338, 0xC6D5, 0xD339, 0xC6D6, 0xD33B, 0xC6D7, 0xD33C, 0xC6D8, 0xD33D, 0xC6D9, 0xD344, 0xC6DA, 0xD345, + 0xC6DB, 0xD37C, 0xC6DC, 0xD37D, 0xC6DD, 0xD380, 0xC6DE, 0xD384, 0xC6DF, 0xD38C, 0xC6E0, 0xD38D, 0xC6E1, 0xD38F, 0xC6E2, 0xD390, + 0xC6E3, 0xD391, 0xC6E4, 0xD398, 0xC6E5, 0xD399, 0xC6E6, 0xD39C, 0xC6E7, 0xD3A0, 0xC6E8, 0xD3A8, 0xC6E9, 0xD3A9, 0xC6EA, 0xD3AB, + 0xC6EB, 0xD3AD, 0xC6EC, 0xD3B4, 0xC6ED, 0xD3B8, 0xC6EE, 0xD3BC, 0xC6EF, 0xD3C4, 0xC6F0, 0xD3C5, 0xC6F1, 0xD3C8, 0xC6F2, 0xD3C9, + 0xC6F3, 0xD3D0, 0xC6F4, 0xD3D8, 0xC6F5, 0xD3E1, 0xC6F6, 0xD3E3, 0xC6F7, 0xD3EC, 0xC6F8, 0xD3ED, 0xC6F9, 0xD3F0, 0xC6FA, 0xD3F4, + 0xC6FB, 0xD3FC, 0xC6FC, 0xD3FD, 0xC6FD, 0xD3FF, 0xC6FE, 0xD401, 0xC7A1, 0xD408, 0xC7A2, 0xD41D, 0xC7A3, 0xD440, 0xC7A4, 0xD444, + 0xC7A5, 0xD45C, 0xC7A6, 0xD460, 0xC7A7, 0xD464, 0xC7A8, 0xD46D, 0xC7A9, 0xD46F, 0xC7AA, 0xD478, 0xC7AB, 0xD479, 0xC7AC, 0xD47C, + 0xC7AD, 0xD47F, 0xC7AE, 0xD480, 0xC7AF, 0xD482, 0xC7B0, 0xD488, 0xC7B1, 0xD489, 0xC7B2, 0xD48B, 0xC7B3, 0xD48D, 0xC7B4, 0xD494, + 0xC7B5, 0xD4A9, 0xC7B6, 0xD4CC, 0xC7B7, 0xD4D0, 0xC7B8, 0xD4D4, 0xC7B9, 0xD4DC, 0xC7BA, 0xD4DF, 0xC7BB, 0xD4E8, 0xC7BC, 0xD4EC, + 0xC7BD, 0xD4F0, 0xC7BE, 0xD4F8, 0xC7BF, 0xD4FB, 0xC7C0, 0xD4FD, 0xC7C1, 0xD504, 0xC7C2, 0xD508, 0xC7C3, 0xD50C, 0xC7C4, 0xD514, + 0xC7C5, 0xD515, 0xC7C6, 0xD517, 0xC7C7, 0xD53C, 0xC7C8, 0xD53D, 0xC7C9, 0xD540, 0xC7CA, 0xD544, 0xC7CB, 0xD54C, 0xC7CC, 0xD54D, + 0xC7CD, 0xD54F, 0xC7CE, 0xD551, 0xC7CF, 0xD558, 0xC7D0, 0xD559, 0xC7D1, 0xD55C, 0xC7D2, 0xD560, 0xC7D3, 0xD565, 0xC7D4, 0xD568, + 0xC7D5, 0xD569, 0xC7D6, 0xD56B, 0xC7D7, 0xD56D, 0xC7D8, 0xD574, 0xC7D9, 0xD575, 0xC7DA, 0xD578, 0xC7DB, 0xD57C, 0xC7DC, 0xD584, + 0xC7DD, 0xD585, 0xC7DE, 0xD587, 0xC7DF, 0xD588, 0xC7E0, 0xD589, 0xC7E1, 0xD590, 0xC7E2, 0xD5A5, 0xC7E3, 0xD5C8, 0xC7E4, 0xD5C9, + 0xC7E5, 0xD5CC, 0xC7E6, 0xD5D0, 0xC7E7, 0xD5D2, 0xC7E8, 0xD5D8, 0xC7E9, 0xD5D9, 0xC7EA, 0xD5DB, 0xC7EB, 0xD5DD, 0xC7EC, 0xD5E4, + 0xC7ED, 0xD5E5, 0xC7EE, 0xD5E8, 0xC7EF, 0xD5EC, 0xC7F0, 0xD5F4, 0xC7F1, 0xD5F5, 0xC7F2, 0xD5F7, 0xC7F3, 0xD5F9, 0xC7F4, 0xD600, + 0xC7F5, 0xD601, 0xC7F6, 0xD604, 0xC7F7, 0xD608, 0xC7F8, 0xD610, 0xC7F9, 0xD611, 0xC7FA, 0xD613, 0xC7FB, 0xD614, 0xC7FC, 0xD615, + 0xC7FD, 0xD61C, 0xC7FE, 0xD620, 0xC8A1, 0xD624, 0xC8A2, 0xD62D, 0xC8A3, 0xD638, 0xC8A4, 0xD639, 0xC8A5, 0xD63C, 0xC8A6, 0xD640, + 0xC8A7, 0xD645, 0xC8A8, 0xD648, 0xC8A9, 0xD649, 0xC8AA, 0xD64B, 0xC8AB, 0xD64D, 0xC8AC, 0xD651, 0xC8AD, 0xD654, 0xC8AE, 0xD655, + 0xC8AF, 0xD658, 0xC8B0, 0xD65C, 0xC8B1, 0xD667, 0xC8B2, 0xD669, 0xC8B3, 0xD670, 0xC8B4, 0xD671, 0xC8B5, 0xD674, 0xC8B6, 0xD683, + 0xC8B7, 0xD685, 0xC8B8, 0xD68C, 0xC8B9, 0xD68D, 0xC8BA, 0xD690, 0xC8BB, 0xD694, 0xC8BC, 0xD69D, 0xC8BD, 0xD69F, 0xC8BE, 0xD6A1, + 0xC8BF, 0xD6A8, 0xC8C0, 0xD6AC, 0xC8C1, 0xD6B0, 0xC8C2, 0xD6B9, 0xC8C3, 0xD6BB, 0xC8C4, 0xD6C4, 0xC8C5, 0xD6C5, 0xC8C6, 0xD6C8, + 0xC8C7, 0xD6CC, 0xC8C8, 0xD6D1, 0xC8C9, 0xD6D4, 0xC8CA, 0xD6D7, 0xC8CB, 0xD6D9, 0xC8CC, 0xD6E0, 0xC8CD, 0xD6E4, 0xC8CE, 0xD6E8, + 0xC8CF, 0xD6F0, 0xC8D0, 0xD6F5, 0xC8D1, 0xD6FC, 0xC8D2, 0xD6FD, 0xC8D3, 0xD700, 0xC8D4, 0xD704, 0xC8D5, 0xD711, 0xC8D6, 0xD718, + 0xC8D7, 0xD719, 0xC8D8, 0xD71C, 0xC8D9, 0xD720, 0xC8DA, 0xD728, 0xC8DB, 0xD729, 0xC8DC, 0xD72B, 0xC8DD, 0xD72D, 0xC8DE, 0xD734, + 0xC8DF, 0xD735, 0xC8E0, 0xD738, 0xC8E1, 0xD73C, 0xC8E2, 0xD744, 0xC8E3, 0xD747, 0xC8E4, 0xD749, 0xC8E5, 0xD750, 0xC8E6, 0xD751, + 0xC8E7, 0xD754, 0xC8E8, 0xD756, 0xC8E9, 0xD757, 0xC8EA, 0xD758, 0xC8EB, 0xD759, 0xC8EC, 0xD760, 0xC8ED, 0xD761, 0xC8EE, 0xD763, + 0xC8EF, 0xD765, 0xC8F0, 0xD769, 0xC8F1, 0xD76C, 0xC8F2, 0xD770, 0xC8F3, 0xD774, 0xC8F4, 0xD77C, 0xC8F5, 0xD77D, 0xC8F6, 0xD781, + 0xC8F7, 0xD788, 0xC8F8, 0xD789, 0xC8F9, 0xD78C, 0xC8FA, 0xD790, 0xC8FB, 0xD798, 0xC8FC, 0xD799, 0xC8FD, 0xD79B, 0xC8FE, 0xD79D, + 0xCAA1, 0x4F3D, 0xCAA2, 0x4F73, 0xCAA3, 0x5047, 0xCAA4, 0x50F9, 0xCAA5, 0x52A0, 0xCAA6, 0x53EF, 0xCAA7, 0x5475, 0xCAA8, 0x54E5, + 0xCAA9, 0x5609, 0xCAAA, 0x5AC1, 0xCAAB, 0x5BB6, 0xCAAC, 0x6687, 0xCAAD, 0x67B6, 0xCAAE, 0x67B7, 0xCAAF, 0x67EF, 0xCAB0, 0x6B4C, + 0xCAB1, 0x73C2, 0xCAB2, 0x75C2, 0xCAB3, 0x7A3C, 0xCAB4, 0x82DB, 0xCAB5, 0x8304, 0xCAB6, 0x8857, 0xCAB7, 0x8888, 0xCAB8, 0x8A36, + 0xCAB9, 0x8CC8, 0xCABA, 0x8DCF, 0xCABB, 0x8EFB, 0xCABC, 0x8FE6, 0xCABD, 0x99D5, 0xCABE, 0x523B, 0xCABF, 0x5374, 0xCAC0, 0x5404, + 0xCAC1, 0x606A, 0xCAC2, 0x6164, 0xCAC3, 0x6BBC, 0xCAC4, 0x73CF, 0xCAC5, 0x811A, 0xCAC6, 0x89BA, 0xCAC7, 0x89D2, 0xCAC8, 0x95A3, + 0xCAC9, 0x4F83, 0xCACA, 0x520A, 0xCACB, 0x58BE, 0xCACC, 0x5978, 0xCACD, 0x59E6, 0xCACE, 0x5E72, 0xCACF, 0x5E79, 0xCAD0, 0x61C7, + 0xCAD1, 0x63C0, 0xCAD2, 0x6746, 0xCAD3, 0x67EC, 0xCAD4, 0x687F, 0xCAD5, 0x6F97, 0xCAD6, 0x764E, 0xCAD7, 0x770B, 0xCAD8, 0x78F5, + 0xCAD9, 0x7A08, 0xCADA, 0x7AFF, 0xCADB, 0x7C21, 0xCADC, 0x809D, 0xCADD, 0x826E, 0xCADE, 0x8271, 0xCADF, 0x8AEB, 0xCAE0, 0x9593, + 0xCAE1, 0x4E6B, 0xCAE2, 0x559D, 0xCAE3, 0x66F7, 0xCAE4, 0x6E34, 0xCAE5, 0x78A3, 0xCAE6, 0x7AED, 0xCAE7, 0x845B, 0xCAE8, 0x8910, + 0xCAE9, 0x874E, 0xCAEA, 0x97A8, 0xCAEB, 0x52D8, 0xCAEC, 0x574E, 0xCAED, 0x582A, 0xCAEE, 0x5D4C, 0xCAEF, 0x611F, 0xCAF0, 0x61BE, + 0xCAF1, 0x6221, 0xCAF2, 0x6562, 0xCAF3, 0x67D1, 0xCAF4, 0x6A44, 0xCAF5, 0x6E1B, 0xCAF6, 0x7518, 0xCAF7, 0x75B3, 0xCAF8, 0x76E3, + 0xCAF9, 0x77B0, 0xCAFA, 0x7D3A, 0xCAFB, 0x90AF, 0xCAFC, 0x9451, 0xCAFD, 0x9452, 0xCAFE, 0x9F95, 0xCBA1, 0x5323, 0xCBA2, 0x5CAC, + 0xCBA3, 0x7532, 0xCBA4, 0x80DB, 0xCBA5, 0x9240, 0xCBA6, 0x9598, 0xCBA7, 0x525B, 0xCBA8, 0x5808, 0xCBA9, 0x59DC, 0xCBAA, 0x5CA1, + 0xCBAB, 0x5D17, 0xCBAC, 0x5EB7, 0xCBAD, 0x5F3A, 0xCBAE, 0x5F4A, 0xCBAF, 0x6177, 0xCBB0, 0x6C5F, 0xCBB1, 0x757A, 0xCBB2, 0x7586, + 0xCBB3, 0x7CE0, 0xCBB4, 0x7D73, 0xCBB5, 0x7DB1, 0xCBB6, 0x7F8C, 0xCBB7, 0x8154, 0xCBB8, 0x8221, 0xCBB9, 0x8591, 0xCBBA, 0x8941, + 0xCBBB, 0x8B1B, 0xCBBC, 0x92FC, 0xCBBD, 0x964D, 0xCBBE, 0x9C47, 0xCBBF, 0x4ECB, 0xCBC0, 0x4EF7, 0xCBC1, 0x500B, 0xCBC2, 0x51F1, + 0xCBC3, 0x584F, 0xCBC4, 0x6137, 0xCBC5, 0x613E, 0xCBC6, 0x6168, 0xCBC7, 0x6539, 0xCBC8, 0x69EA, 0xCBC9, 0x6F11, 0xCBCA, 0x75A5, + 0xCBCB, 0x7686, 0xCBCC, 0x76D6, 0xCBCD, 0x7B87, 0xCBCE, 0x82A5, 0xCBCF, 0x84CB, 0xCBD0, 0xF900, 0xCBD1, 0x93A7, 0xCBD2, 0x958B, + 0xCBD3, 0x5580, 0xCBD4, 0x5BA2, 0xCBD5, 0x5751, 0xCBD6, 0xF901, 0xCBD7, 0x7CB3, 0xCBD8, 0x7FB9, 0xCBD9, 0x91B5, 0xCBDA, 0x5028, + 0xCBDB, 0x53BB, 0xCBDC, 0x5C45, 0xCBDD, 0x5DE8, 0xCBDE, 0x62D2, 0xCBDF, 0x636E, 0xCBE0, 0x64DA, 0xCBE1, 0x64E7, 0xCBE2, 0x6E20, + 0xCBE3, 0x70AC, 0xCBE4, 0x795B, 0xCBE5, 0x8DDD, 0xCBE6, 0x8E1E, 0xCBE7, 0xF902, 0xCBE8, 0x907D, 0xCBE9, 0x9245, 0xCBEA, 0x92F8, + 0xCBEB, 0x4E7E, 0xCBEC, 0x4EF6, 0xCBED, 0x5065, 0xCBEE, 0x5DFE, 0xCBEF, 0x5EFA, 0xCBF0, 0x6106, 0xCBF1, 0x6957, 0xCBF2, 0x8171, + 0xCBF3, 0x8654, 0xCBF4, 0x8E47, 0xCBF5, 0x9375, 0xCBF6, 0x9A2B, 0xCBF7, 0x4E5E, 0xCBF8, 0x5091, 0xCBF9, 0x6770, 0xCBFA, 0x6840, + 0xCBFB, 0x5109, 0xCBFC, 0x528D, 0xCBFD, 0x5292, 0xCBFE, 0x6AA2, 0xCCA1, 0x77BC, 0xCCA2, 0x9210, 0xCCA3, 0x9ED4, 0xCCA4, 0x52AB, + 0xCCA5, 0x602F, 0xCCA6, 0x8FF2, 0xCCA7, 0x5048, 0xCCA8, 0x61A9, 0xCCA9, 0x63ED, 0xCCAA, 0x64CA, 0xCCAB, 0x683C, 0xCCAC, 0x6A84, + 0xCCAD, 0x6FC0, 0xCCAE, 0x8188, 0xCCAF, 0x89A1, 0xCCB0, 0x9694, 0xCCB1, 0x5805, 0xCCB2, 0x727D, 0xCCB3, 0x72AC, 0xCCB4, 0x7504, + 0xCCB5, 0x7D79, 0xCCB6, 0x7E6D, 0xCCB7, 0x80A9, 0xCCB8, 0x898B, 0xCCB9, 0x8B74, 0xCCBA, 0x9063, 0xCCBB, 0x9D51, 0xCCBC, 0x6289, + 0xCCBD, 0x6C7A, 0xCCBE, 0x6F54, 0xCCBF, 0x7D50, 0xCCC0, 0x7F3A, 0xCCC1, 0x8A23, 0xCCC2, 0x517C, 0xCCC3, 0x614A, 0xCCC4, 0x7B9D, + 0xCCC5, 0x8B19, 0xCCC6, 0x9257, 0xCCC7, 0x938C, 0xCCC8, 0x4EAC, 0xCCC9, 0x4FD3, 0xCCCA, 0x501E, 0xCCCB, 0x50BE, 0xCCCC, 0x5106, + 0xCCCD, 0x52C1, 0xCCCE, 0x52CD, 0xCCCF, 0x537F, 0xCCD0, 0x5770, 0xCCD1, 0x5883, 0xCCD2, 0x5E9A, 0xCCD3, 0x5F91, 0xCCD4, 0x6176, + 0xCCD5, 0x61AC, 0xCCD6, 0x64CE, 0xCCD7, 0x656C, 0xCCD8, 0x666F, 0xCCD9, 0x66BB, 0xCCDA, 0x66F4, 0xCCDB, 0x6897, 0xCCDC, 0x6D87, + 0xCCDD, 0x7085, 0xCCDE, 0x70F1, 0xCCDF, 0x749F, 0xCCE0, 0x74A5, 0xCCE1, 0x74CA, 0xCCE2, 0x75D9, 0xCCE3, 0x786C, 0xCCE4, 0x78EC, + 0xCCE5, 0x7ADF, 0xCCE6, 0x7AF6, 0xCCE7, 0x7D45, 0xCCE8, 0x7D93, 0xCCE9, 0x8015, 0xCCEA, 0x803F, 0xCCEB, 0x811B, 0xCCEC, 0x8396, + 0xCCED, 0x8B66, 0xCCEE, 0x8F15, 0xCCEF, 0x9015, 0xCCF0, 0x93E1, 0xCCF1, 0x9803, 0xCCF2, 0x9838, 0xCCF3, 0x9A5A, 0xCCF4, 0x9BE8, + 0xCCF5, 0x4FC2, 0xCCF6, 0x5553, 0xCCF7, 0x583A, 0xCCF8, 0x5951, 0xCCF9, 0x5B63, 0xCCFA, 0x5C46, 0xCCFB, 0x60B8, 0xCCFC, 0x6212, + 0xCCFD, 0x6842, 0xCCFE, 0x68B0, 0xCDA1, 0x68E8, 0xCDA2, 0x6EAA, 0xCDA3, 0x754C, 0xCDA4, 0x7678, 0xCDA5, 0x78CE, 0xCDA6, 0x7A3D, + 0xCDA7, 0x7CFB, 0xCDA8, 0x7E6B, 0xCDA9, 0x7E7C, 0xCDAA, 0x8A08, 0xCDAB, 0x8AA1, 0xCDAC, 0x8C3F, 0xCDAD, 0x968E, 0xCDAE, 0x9DC4, + 0xCDAF, 0x53E4, 0xCDB0, 0x53E9, 0xCDB1, 0x544A, 0xCDB2, 0x5471, 0xCDB3, 0x56FA, 0xCDB4, 0x59D1, 0xCDB5, 0x5B64, 0xCDB6, 0x5C3B, + 0xCDB7, 0x5EAB, 0xCDB8, 0x62F7, 0xCDB9, 0x6537, 0xCDBA, 0x6545, 0xCDBB, 0x6572, 0xCDBC, 0x66A0, 0xCDBD, 0x67AF, 0xCDBE, 0x69C1, + 0xCDBF, 0x6CBD, 0xCDC0, 0x75FC, 0xCDC1, 0x7690, 0xCDC2, 0x777E, 0xCDC3, 0x7A3F, 0xCDC4, 0x7F94, 0xCDC5, 0x8003, 0xCDC6, 0x80A1, + 0xCDC7, 0x818F, 0xCDC8, 0x82E6, 0xCDC9, 0x82FD, 0xCDCA, 0x83F0, 0xCDCB, 0x85C1, 0xCDCC, 0x8831, 0xCDCD, 0x88B4, 0xCDCE, 0x8AA5, + 0xCDCF, 0xF903, 0xCDD0, 0x8F9C, 0xCDD1, 0x932E, 0xCDD2, 0x96C7, 0xCDD3, 0x9867, 0xCDD4, 0x9AD8, 0xCDD5, 0x9F13, 0xCDD6, 0x54ED, + 0xCDD7, 0x659B, 0xCDD8, 0x66F2, 0xCDD9, 0x688F, 0xCDDA, 0x7A40, 0xCDDB, 0x8C37, 0xCDDC, 0x9D60, 0xCDDD, 0x56F0, 0xCDDE, 0x5764, + 0xCDDF, 0x5D11, 0xCDE0, 0x6606, 0xCDE1, 0x68B1, 0xCDE2, 0x68CD, 0xCDE3, 0x6EFE, 0xCDE4, 0x7428, 0xCDE5, 0x889E, 0xCDE6, 0x9BE4, + 0xCDE7, 0x6C68, 0xCDE8, 0xF904, 0xCDE9, 0x9AA8, 0xCDEA, 0x4F9B, 0xCDEB, 0x516C, 0xCDEC, 0x5171, 0xCDED, 0x529F, 0xCDEE, 0x5B54, + 0xCDEF, 0x5DE5, 0xCDF0, 0x6050, 0xCDF1, 0x606D, 0xCDF2, 0x62F1, 0xCDF3, 0x63A7, 0xCDF4, 0x653B, 0xCDF5, 0x73D9, 0xCDF6, 0x7A7A, + 0xCDF7, 0x86A3, 0xCDF8, 0x8CA2, 0xCDF9, 0x978F, 0xCDFA, 0x4E32, 0xCDFB, 0x5BE1, 0xCDFC, 0x6208, 0xCDFD, 0x679C, 0xCDFE, 0x74DC, + 0xCEA1, 0x79D1, 0xCEA2, 0x83D3, 0xCEA3, 0x8A87, 0xCEA4, 0x8AB2, 0xCEA5, 0x8DE8, 0xCEA6, 0x904E, 0xCEA7, 0x934B, 0xCEA8, 0x9846, + 0xCEA9, 0x5ED3, 0xCEAA, 0x69E8, 0xCEAB, 0x85FF, 0xCEAC, 0x90ED, 0xCEAD, 0xF905, 0xCEAE, 0x51A0, 0xCEAF, 0x5B98, 0xCEB0, 0x5BEC, + 0xCEB1, 0x6163, 0xCEB2, 0x68FA, 0xCEB3, 0x6B3E, 0xCEB4, 0x704C, 0xCEB5, 0x742F, 0xCEB6, 0x74D8, 0xCEB7, 0x7BA1, 0xCEB8, 0x7F50, + 0xCEB9, 0x83C5, 0xCEBA, 0x89C0, 0xCEBB, 0x8CAB, 0xCEBC, 0x95DC, 0xCEBD, 0x9928, 0xCEBE, 0x522E, 0xCEBF, 0x605D, 0xCEC0, 0x62EC, + 0xCEC1, 0x9002, 0xCEC2, 0x4F8A, 0xCEC3, 0x5149, 0xCEC4, 0x5321, 0xCEC5, 0x58D9, 0xCEC6, 0x5EE3, 0xCEC7, 0x66E0, 0xCEC8, 0x6D38, + 0xCEC9, 0x709A, 0xCECA, 0x72C2, 0xCECB, 0x73D6, 0xCECC, 0x7B50, 0xCECD, 0x80F1, 0xCECE, 0x945B, 0xCECF, 0x5366, 0xCED0, 0x639B, + 0xCED1, 0x7F6B, 0xCED2, 0x4E56, 0xCED3, 0x5080, 0xCED4, 0x584A, 0xCED5, 0x58DE, 0xCED6, 0x602A, 0xCED7, 0x6127, 0xCED8, 0x62D0, + 0xCED9, 0x69D0, 0xCEDA, 0x9B41, 0xCEDB, 0x5B8F, 0xCEDC, 0x7D18, 0xCEDD, 0x80B1, 0xCEDE, 0x8F5F, 0xCEDF, 0x4EA4, 0xCEE0, 0x50D1, + 0xCEE1, 0x54AC, 0xCEE2, 0x55AC, 0xCEE3, 0x5B0C, 0xCEE4, 0x5DA0, 0xCEE5, 0x5DE7, 0xCEE6, 0x652A, 0xCEE7, 0x654E, 0xCEE8, 0x6821, + 0xCEE9, 0x6A4B, 0xCEEA, 0x72E1, 0xCEEB, 0x768E, 0xCEEC, 0x77EF, 0xCEED, 0x7D5E, 0xCEEE, 0x7FF9, 0xCEEF, 0x81A0, 0xCEF0, 0x854E, + 0xCEF1, 0x86DF, 0xCEF2, 0x8F03, 0xCEF3, 0x8F4E, 0xCEF4, 0x90CA, 0xCEF5, 0x9903, 0xCEF6, 0x9A55, 0xCEF7, 0x9BAB, 0xCEF8, 0x4E18, + 0xCEF9, 0x4E45, 0xCEFA, 0x4E5D, 0xCEFB, 0x4EC7, 0xCEFC, 0x4FF1, 0xCEFD, 0x5177, 0xCEFE, 0x52FE, 0xCFA1, 0x5340, 0xCFA2, 0x53E3, + 0xCFA3, 0x53E5, 0xCFA4, 0x548E, 0xCFA5, 0x5614, 0xCFA6, 0x5775, 0xCFA7, 0x57A2, 0xCFA8, 0x5BC7, 0xCFA9, 0x5D87, 0xCFAA, 0x5ED0, + 0xCFAB, 0x61FC, 0xCFAC, 0x62D8, 0xCFAD, 0x6551, 0xCFAE, 0x67B8, 0xCFAF, 0x67E9, 0xCFB0, 0x69CB, 0xCFB1, 0x6B50, 0xCFB2, 0x6BC6, + 0xCFB3, 0x6BEC, 0xCFB4, 0x6C42, 0xCFB5, 0x6E9D, 0xCFB6, 0x7078, 0xCFB7, 0x72D7, 0xCFB8, 0x7396, 0xCFB9, 0x7403, 0xCFBA, 0x77BF, + 0xCFBB, 0x77E9, 0xCFBC, 0x7A76, 0xCFBD, 0x7D7F, 0xCFBE, 0x8009, 0xCFBF, 0x81FC, 0xCFC0, 0x8205, 0xCFC1, 0x820A, 0xCFC2, 0x82DF, + 0xCFC3, 0x8862, 0xCFC4, 0x8B33, 0xCFC5, 0x8CFC, 0xCFC6, 0x8EC0, 0xCFC7, 0x9011, 0xCFC8, 0x90B1, 0xCFC9, 0x9264, 0xCFCA, 0x92B6, + 0xCFCB, 0x99D2, 0xCFCC, 0x9A45, 0xCFCD, 0x9CE9, 0xCFCE, 0x9DD7, 0xCFCF, 0x9F9C, 0xCFD0, 0x570B, 0xCFD1, 0x5C40, 0xCFD2, 0x83CA, + 0xCFD3, 0x97A0, 0xCFD4, 0x97AB, 0xCFD5, 0x9EB4, 0xCFD6, 0x541B, 0xCFD7, 0x7A98, 0xCFD8, 0x7FA4, 0xCFD9, 0x88D9, 0xCFDA, 0x8ECD, + 0xCFDB, 0x90E1, 0xCFDC, 0x5800, 0xCFDD, 0x5C48, 0xCFDE, 0x6398, 0xCFDF, 0x7A9F, 0xCFE0, 0x5BAE, 0xCFE1, 0x5F13, 0xCFE2, 0x7A79, + 0xCFE3, 0x7AAE, 0xCFE4, 0x828E, 0xCFE5, 0x8EAC, 0xCFE6, 0x5026, 0xCFE7, 0x5238, 0xCFE8, 0x52F8, 0xCFE9, 0x5377, 0xCFEA, 0x5708, + 0xCFEB, 0x62F3, 0xCFEC, 0x6372, 0xCFED, 0x6B0A, 0xCFEE, 0x6DC3, 0xCFEF, 0x7737, 0xCFF0, 0x53A5, 0xCFF1, 0x7357, 0xCFF2, 0x8568, + 0xCFF3, 0x8E76, 0xCFF4, 0x95D5, 0xCFF5, 0x673A, 0xCFF6, 0x6AC3, 0xCFF7, 0x6F70, 0xCFF8, 0x8A6D, 0xCFF9, 0x8ECC, 0xCFFA, 0x994B, + 0xCFFB, 0xF906, 0xCFFC, 0x6677, 0xCFFD, 0x6B78, 0xCFFE, 0x8CB4, 0xD0A1, 0x9B3C, 0xD0A2, 0xF907, 0xD0A3, 0x53EB, 0xD0A4, 0x572D, + 0xD0A5, 0x594E, 0xD0A6, 0x63C6, 0xD0A7, 0x69FB, 0xD0A8, 0x73EA, 0xD0A9, 0x7845, 0xD0AA, 0x7ABA, 0xD0AB, 0x7AC5, 0xD0AC, 0x7CFE, + 0xD0AD, 0x8475, 0xD0AE, 0x898F, 0xD0AF, 0x8D73, 0xD0B0, 0x9035, 0xD0B1, 0x95A8, 0xD0B2, 0x52FB, 0xD0B3, 0x5747, 0xD0B4, 0x7547, + 0xD0B5, 0x7B60, 0xD0B6, 0x83CC, 0xD0B7, 0x921E, 0xD0B8, 0xF908, 0xD0B9, 0x6A58, 0xD0BA, 0x514B, 0xD0BB, 0x524B, 0xD0BC, 0x5287, + 0xD0BD, 0x621F, 0xD0BE, 0x68D8, 0xD0BF, 0x6975, 0xD0C0, 0x9699, 0xD0C1, 0x50C5, 0xD0C2, 0x52A4, 0xD0C3, 0x52E4, 0xD0C4, 0x61C3, + 0xD0C5, 0x65A4, 0xD0C6, 0x6839, 0xD0C7, 0x69FF, 0xD0C8, 0x747E, 0xD0C9, 0x7B4B, 0xD0CA, 0x82B9, 0xD0CB, 0x83EB, 0xD0CC, 0x89B2, + 0xD0CD, 0x8B39, 0xD0CE, 0x8FD1, 0xD0CF, 0x9949, 0xD0D0, 0xF909, 0xD0D1, 0x4ECA, 0xD0D2, 0x5997, 0xD0D3, 0x64D2, 0xD0D4, 0x6611, + 0xD0D5, 0x6A8E, 0xD0D6, 0x7434, 0xD0D7, 0x7981, 0xD0D8, 0x79BD, 0xD0D9, 0x82A9, 0xD0DA, 0x887E, 0xD0DB, 0x887F, 0xD0DC, 0x895F, + 0xD0DD, 0xF90A, 0xD0DE, 0x9326, 0xD0DF, 0x4F0B, 0xD0E0, 0x53CA, 0xD0E1, 0x6025, 0xD0E2, 0x6271, 0xD0E3, 0x6C72, 0xD0E4, 0x7D1A, + 0xD0E5, 0x7D66, 0xD0E6, 0x4E98, 0xD0E7, 0x5162, 0xD0E8, 0x77DC, 0xD0E9, 0x80AF, 0xD0EA, 0x4F01, 0xD0EB, 0x4F0E, 0xD0EC, 0x5176, + 0xD0ED, 0x5180, 0xD0EE, 0x55DC, 0xD0EF, 0x5668, 0xD0F0, 0x573B, 0xD0F1, 0x57FA, 0xD0F2, 0x57FC, 0xD0F3, 0x5914, 0xD0F4, 0x5947, + 0xD0F5, 0x5993, 0xD0F6, 0x5BC4, 0xD0F7, 0x5C90, 0xD0F8, 0x5D0E, 0xD0F9, 0x5DF1, 0xD0FA, 0x5E7E, 0xD0FB, 0x5FCC, 0xD0FC, 0x6280, + 0xD0FD, 0x65D7, 0xD0FE, 0x65E3, 0xD1A1, 0x671E, 0xD1A2, 0x671F, 0xD1A3, 0x675E, 0xD1A4, 0x68CB, 0xD1A5, 0x68C4, 0xD1A6, 0x6A5F, + 0xD1A7, 0x6B3A, 0xD1A8, 0x6C23, 0xD1A9, 0x6C7D, 0xD1AA, 0x6C82, 0xD1AB, 0x6DC7, 0xD1AC, 0x7398, 0xD1AD, 0x7426, 0xD1AE, 0x742A, + 0xD1AF, 0x7482, 0xD1B0, 0x74A3, 0xD1B1, 0x7578, 0xD1B2, 0x757F, 0xD1B3, 0x7881, 0xD1B4, 0x78EF, 0xD1B5, 0x7941, 0xD1B6, 0x7947, + 0xD1B7, 0x7948, 0xD1B8, 0x797A, 0xD1B9, 0x7B95, 0xD1BA, 0x7D00, 0xD1BB, 0x7DBA, 0xD1BC, 0x7F88, 0xD1BD, 0x8006, 0xD1BE, 0x802D, + 0xD1BF, 0x808C, 0xD1C0, 0x8A18, 0xD1C1, 0x8B4F, 0xD1C2, 0x8C48, 0xD1C3, 0x8D77, 0xD1C4, 0x9321, 0xD1C5, 0x9324, 0xD1C6, 0x98E2, + 0xD1C7, 0x9951, 0xD1C8, 0x9A0E, 0xD1C9, 0x9A0F, 0xD1CA, 0x9A65, 0xD1CB, 0x9E92, 0xD1CC, 0x7DCA, 0xD1CD, 0x4F76, 0xD1CE, 0x5409, + 0xD1CF, 0x62EE, 0xD1D0, 0x6854, 0xD1D1, 0x91D1, 0xD1D2, 0x55AB, 0xD1D3, 0x513A, 0xD1D4, 0xF90B, 0xD1D5, 0xF90C, 0xD1D6, 0x5A1C, + 0xD1D7, 0x61E6, 0xD1D8, 0xF90D, 0xD1D9, 0x62CF, 0xD1DA, 0x62FF, 0xD1DB, 0xF90E, 0xD1DC, 0xF90F, 0xD1DD, 0xF910, 0xD1DE, 0xF911, + 0xD1DF, 0xF912, 0xD1E0, 0xF913, 0xD1E1, 0x90A3, 0xD1E2, 0xF914, 0xD1E3, 0xF915, 0xD1E4, 0xF916, 0xD1E5, 0xF917, 0xD1E6, 0xF918, + 0xD1E7, 0x8AFE, 0xD1E8, 0xF919, 0xD1E9, 0xF91A, 0xD1EA, 0xF91B, 0xD1EB, 0xF91C, 0xD1EC, 0x6696, 0xD1ED, 0xF91D, 0xD1EE, 0x7156, + 0xD1EF, 0xF91E, 0xD1F0, 0xF91F, 0xD1F1, 0x96E3, 0xD1F2, 0xF920, 0xD1F3, 0x634F, 0xD1F4, 0x637A, 0xD1F5, 0x5357, 0xD1F6, 0xF921, + 0xD1F7, 0x678F, 0xD1F8, 0x6960, 0xD1F9, 0x6E73, 0xD1FA, 0xF922, 0xD1FB, 0x7537, 0xD1FC, 0xF923, 0xD1FD, 0xF924, 0xD1FE, 0xF925, + 0xD2A1, 0x7D0D, 0xD2A2, 0xF926, 0xD2A3, 0xF927, 0xD2A4, 0x8872, 0xD2A5, 0x56CA, 0xD2A6, 0x5A18, 0xD2A7, 0xF928, 0xD2A8, 0xF929, + 0xD2A9, 0xF92A, 0xD2AA, 0xF92B, 0xD2AB, 0xF92C, 0xD2AC, 0x4E43, 0xD2AD, 0xF92D, 0xD2AE, 0x5167, 0xD2AF, 0x5948, 0xD2B0, 0x67F0, + 0xD2B1, 0x8010, 0xD2B2, 0xF92E, 0xD2B3, 0x5973, 0xD2B4, 0x5E74, 0xD2B5, 0x649A, 0xD2B6, 0x79CA, 0xD2B7, 0x5FF5, 0xD2B8, 0x606C, + 0xD2B9, 0x62C8, 0xD2BA, 0x637B, 0xD2BB, 0x5BE7, 0xD2BC, 0x5BD7, 0xD2BD, 0x52AA, 0xD2BE, 0xF92F, 0xD2BF, 0x5974, 0xD2C0, 0x5F29, + 0xD2C1, 0x6012, 0xD2C2, 0xF930, 0xD2C3, 0xF931, 0xD2C4, 0xF932, 0xD2C5, 0x7459, 0xD2C6, 0xF933, 0xD2C7, 0xF934, 0xD2C8, 0xF935, + 0xD2C9, 0xF936, 0xD2CA, 0xF937, 0xD2CB, 0xF938, 0xD2CC, 0x99D1, 0xD2CD, 0xF939, 0xD2CE, 0xF93A, 0xD2CF, 0xF93B, 0xD2D0, 0xF93C, + 0xD2D1, 0xF93D, 0xD2D2, 0xF93E, 0xD2D3, 0xF93F, 0xD2D4, 0xF940, 0xD2D5, 0xF941, 0xD2D6, 0xF942, 0xD2D7, 0xF943, 0xD2D8, 0x6FC3, + 0xD2D9, 0xF944, 0xD2DA, 0xF945, 0xD2DB, 0x81BF, 0xD2DC, 0x8FB2, 0xD2DD, 0x60F1, 0xD2DE, 0xF946, 0xD2DF, 0xF947, 0xD2E0, 0x8166, + 0xD2E1, 0xF948, 0xD2E2, 0xF949, 0xD2E3, 0x5C3F, 0xD2E4, 0xF94A, 0xD2E5, 0xF94B, 0xD2E6, 0xF94C, 0xD2E7, 0xF94D, 0xD2E8, 0xF94E, + 0xD2E9, 0xF94F, 0xD2EA, 0xF950, 0xD2EB, 0xF951, 0xD2EC, 0x5AE9, 0xD2ED, 0x8A25, 0xD2EE, 0x677B, 0xD2EF, 0x7D10, 0xD2F0, 0xF952, + 0xD2F1, 0xF953, 0xD2F2, 0xF954, 0xD2F3, 0xF955, 0xD2F4, 0xF956, 0xD2F5, 0xF957, 0xD2F6, 0x80FD, 0xD2F7, 0xF958, 0xD2F8, 0xF959, + 0xD2F9, 0x5C3C, 0xD2FA, 0x6CE5, 0xD2FB, 0x533F, 0xD2FC, 0x6EBA, 0xD2FD, 0x591A, 0xD2FE, 0x8336, 0xD3A1, 0x4E39, 0xD3A2, 0x4EB6, + 0xD3A3, 0x4F46, 0xD3A4, 0x55AE, 0xD3A5, 0x5718, 0xD3A6, 0x58C7, 0xD3A7, 0x5F56, 0xD3A8, 0x65B7, 0xD3A9, 0x65E6, 0xD3AA, 0x6A80, + 0xD3AB, 0x6BB5, 0xD3AC, 0x6E4D, 0xD3AD, 0x77ED, 0xD3AE, 0x7AEF, 0xD3AF, 0x7C1E, 0xD3B0, 0x7DDE, 0xD3B1, 0x86CB, 0xD3B2, 0x8892, + 0xD3B3, 0x9132, 0xD3B4, 0x935B, 0xD3B5, 0x64BB, 0xD3B6, 0x6FBE, 0xD3B7, 0x737A, 0xD3B8, 0x75B8, 0xD3B9, 0x9054, 0xD3BA, 0x5556, + 0xD3BB, 0x574D, 0xD3BC, 0x61BA, 0xD3BD, 0x64D4, 0xD3BE, 0x66C7, 0xD3BF, 0x6DE1, 0xD3C0, 0x6E5B, 0xD3C1, 0x6F6D, 0xD3C2, 0x6FB9, + 0xD3C3, 0x75F0, 0xD3C4, 0x8043, 0xD3C5, 0x81BD, 0xD3C6, 0x8541, 0xD3C7, 0x8983, 0xD3C8, 0x8AC7, 0xD3C9, 0x8B5A, 0xD3CA, 0x931F, + 0xD3CB, 0x6C93, 0xD3CC, 0x7553, 0xD3CD, 0x7B54, 0xD3CE, 0x8E0F, 0xD3CF, 0x905D, 0xD3D0, 0x5510, 0xD3D1, 0x5802, 0xD3D2, 0x5858, + 0xD3D3, 0x5E62, 0xD3D4, 0x6207, 0xD3D5, 0x649E, 0xD3D6, 0x68E0, 0xD3D7, 0x7576, 0xD3D8, 0x7CD6, 0xD3D9, 0x87B3, 0xD3DA, 0x9EE8, + 0xD3DB, 0x4EE3, 0xD3DC, 0x5788, 0xD3DD, 0x576E, 0xD3DE, 0x5927, 0xD3DF, 0x5C0D, 0xD3E0, 0x5CB1, 0xD3E1, 0x5E36, 0xD3E2, 0x5F85, + 0xD3E3, 0x6234, 0xD3E4, 0x64E1, 0xD3E5, 0x73B3, 0xD3E6, 0x81FA, 0xD3E7, 0x888B, 0xD3E8, 0x8CB8, 0xD3E9, 0x968A, 0xD3EA, 0x9EDB, + 0xD3EB, 0x5B85, 0xD3EC, 0x5FB7, 0xD3ED, 0x60B3, 0xD3EE, 0x5012, 0xD3EF, 0x5200, 0xD3F0, 0x5230, 0xD3F1, 0x5716, 0xD3F2, 0x5835, + 0xD3F3, 0x5857, 0xD3F4, 0x5C0E, 0xD3F5, 0x5C60, 0xD3F6, 0x5CF6, 0xD3F7, 0x5D8B, 0xD3F8, 0x5EA6, 0xD3F9, 0x5F92, 0xD3FA, 0x60BC, + 0xD3FB, 0x6311, 0xD3FC, 0x6389, 0xD3FD, 0x6417, 0xD3FE, 0x6843, 0xD4A1, 0x68F9, 0xD4A2, 0x6AC2, 0xD4A3, 0x6DD8, 0xD4A4, 0x6E21, + 0xD4A5, 0x6ED4, 0xD4A6, 0x6FE4, 0xD4A7, 0x71FE, 0xD4A8, 0x76DC, 0xD4A9, 0x7779, 0xD4AA, 0x79B1, 0xD4AB, 0x7A3B, 0xD4AC, 0x8404, + 0xD4AD, 0x89A9, 0xD4AE, 0x8CED, 0xD4AF, 0x8DF3, 0xD4B0, 0x8E48, 0xD4B1, 0x9003, 0xD4B2, 0x9014, 0xD4B3, 0x9053, 0xD4B4, 0x90FD, + 0xD4B5, 0x934D, 0xD4B6, 0x9676, 0xD4B7, 0x97DC, 0xD4B8, 0x6BD2, 0xD4B9, 0x7006, 0xD4BA, 0x7258, 0xD4BB, 0x72A2, 0xD4BC, 0x7368, + 0xD4BD, 0x7763, 0xD4BE, 0x79BF, 0xD4BF, 0x7BE4, 0xD4C0, 0x7E9B, 0xD4C1, 0x8B80, 0xD4C2, 0x58A9, 0xD4C3, 0x60C7, 0xD4C4, 0x6566, + 0xD4C5, 0x65FD, 0xD4C6, 0x66BE, 0xD4C7, 0x6C8C, 0xD4C8, 0x711E, 0xD4C9, 0x71C9, 0xD4CA, 0x8C5A, 0xD4CB, 0x9813, 0xD4CC, 0x4E6D, + 0xD4CD, 0x7A81, 0xD4CE, 0x4EDD, 0xD4CF, 0x51AC, 0xD4D0, 0x51CD, 0xD4D1, 0x52D5, 0xD4D2, 0x540C, 0xD4D3, 0x61A7, 0xD4D4, 0x6771, + 0xD4D5, 0x6850, 0xD4D6, 0x68DF, 0xD4D7, 0x6D1E, 0xD4D8, 0x6F7C, 0xD4D9, 0x75BC, 0xD4DA, 0x77B3, 0xD4DB, 0x7AE5, 0xD4DC, 0x80F4, + 0xD4DD, 0x8463, 0xD4DE, 0x9285, 0xD4DF, 0x515C, 0xD4E0, 0x6597, 0xD4E1, 0x675C, 0xD4E2, 0x6793, 0xD4E3, 0x75D8, 0xD4E4, 0x7AC7, + 0xD4E5, 0x8373, 0xD4E6, 0xF95A, 0xD4E7, 0x8C46, 0xD4E8, 0x9017, 0xD4E9, 0x982D, 0xD4EA, 0x5C6F, 0xD4EB, 0x81C0, 0xD4EC, 0x829A, + 0xD4ED, 0x9041, 0xD4EE, 0x906F, 0xD4EF, 0x920D, 0xD4F0, 0x5F97, 0xD4F1, 0x5D9D, 0xD4F2, 0x6A59, 0xD4F3, 0x71C8, 0xD4F4, 0x767B, + 0xD4F5, 0x7B49, 0xD4F6, 0x85E4, 0xD4F7, 0x8B04, 0xD4F8, 0x9127, 0xD4F9, 0x9A30, 0xD4FA, 0x5587, 0xD4FB, 0x61F6, 0xD4FC, 0xF95B, + 0xD4FD, 0x7669, 0xD4FE, 0x7F85, 0xD5A1, 0x863F, 0xD5A2, 0x87BA, 0xD5A3, 0x88F8, 0xD5A4, 0x908F, 0xD5A5, 0xF95C, 0xD5A6, 0x6D1B, + 0xD5A7, 0x70D9, 0xD5A8, 0x73DE, 0xD5A9, 0x7D61, 0xD5AA, 0x843D, 0xD5AB, 0xF95D, 0xD5AC, 0x916A, 0xD5AD, 0x99F1, 0xD5AE, 0xF95E, + 0xD5AF, 0x4E82, 0xD5B0, 0x5375, 0xD5B1, 0x6B04, 0xD5B2, 0x6B12, 0xD5B3, 0x703E, 0xD5B4, 0x721B, 0xD5B5, 0x862D, 0xD5B6, 0x9E1E, + 0xD5B7, 0x524C, 0xD5B8, 0x8FA3, 0xD5B9, 0x5D50, 0xD5BA, 0x64E5, 0xD5BB, 0x652C, 0xD5BC, 0x6B16, 0xD5BD, 0x6FEB, 0xD5BE, 0x7C43, + 0xD5BF, 0x7E9C, 0xD5C0, 0x85CD, 0xD5C1, 0x8964, 0xD5C2, 0x89BD, 0xD5C3, 0x62C9, 0xD5C4, 0x81D8, 0xD5C5, 0x881F, 0xD5C6, 0x5ECA, + 0xD5C7, 0x6717, 0xD5C8, 0x6D6A, 0xD5C9, 0x72FC, 0xD5CA, 0x7405, 0xD5CB, 0x746F, 0xD5CC, 0x8782, 0xD5CD, 0x90DE, 0xD5CE, 0x4F86, + 0xD5CF, 0x5D0D, 0xD5D0, 0x5FA0, 0xD5D1, 0x840A, 0xD5D2, 0x51B7, 0xD5D3, 0x63A0, 0xD5D4, 0x7565, 0xD5D5, 0x4EAE, 0xD5D6, 0x5006, + 0xD5D7, 0x5169, 0xD5D8, 0x51C9, 0xD5D9, 0x6881, 0xD5DA, 0x6A11, 0xD5DB, 0x7CAE, 0xD5DC, 0x7CB1, 0xD5DD, 0x7CE7, 0xD5DE, 0x826F, + 0xD5DF, 0x8AD2, 0xD5E0, 0x8F1B, 0xD5E1, 0x91CF, 0xD5E2, 0x4FB6, 0xD5E3, 0x5137, 0xD5E4, 0x52F5, 0xD5E5, 0x5442, 0xD5E6, 0x5EEC, + 0xD5E7, 0x616E, 0xD5E8, 0x623E, 0xD5E9, 0x65C5, 0xD5EA, 0x6ADA, 0xD5EB, 0x6FFE, 0xD5EC, 0x792A, 0xD5ED, 0x85DC, 0xD5EE, 0x8823, + 0xD5EF, 0x95AD, 0xD5F0, 0x9A62, 0xD5F1, 0x9A6A, 0xD5F2, 0x9E97, 0xD5F3, 0x9ECE, 0xD5F4, 0x529B, 0xD5F5, 0x66C6, 0xD5F6, 0x6B77, + 0xD5F7, 0x701D, 0xD5F8, 0x792B, 0xD5F9, 0x8F62, 0xD5FA, 0x9742, 0xD5FB, 0x6190, 0xD5FC, 0x6200, 0xD5FD, 0x6523, 0xD5FE, 0x6F23, + 0xD6A1, 0x7149, 0xD6A2, 0x7489, 0xD6A3, 0x7DF4, 0xD6A4, 0x806F, 0xD6A5, 0x84EE, 0xD6A6, 0x8F26, 0xD6A7, 0x9023, 0xD6A8, 0x934A, + 0xD6A9, 0x51BD, 0xD6AA, 0x5217, 0xD6AB, 0x52A3, 0xD6AC, 0x6D0C, 0xD6AD, 0x70C8, 0xD6AE, 0x88C2, 0xD6AF, 0x5EC9, 0xD6B0, 0x6582, + 0xD6B1, 0x6BAE, 0xD6B2, 0x6FC2, 0xD6B3, 0x7C3E, 0xD6B4, 0x7375, 0xD6B5, 0x4EE4, 0xD6B6, 0x4F36, 0xD6B7, 0x56F9, 0xD6B8, 0xF95F, + 0xD6B9, 0x5CBA, 0xD6BA, 0x5DBA, 0xD6BB, 0x601C, 0xD6BC, 0x73B2, 0xD6BD, 0x7B2D, 0xD6BE, 0x7F9A, 0xD6BF, 0x7FCE, 0xD6C0, 0x8046, + 0xD6C1, 0x901E, 0xD6C2, 0x9234, 0xD6C3, 0x96F6, 0xD6C4, 0x9748, 0xD6C5, 0x9818, 0xD6C6, 0x9F61, 0xD6C7, 0x4F8B, 0xD6C8, 0x6FA7, + 0xD6C9, 0x79AE, 0xD6CA, 0x91B4, 0xD6CB, 0x96B7, 0xD6CC, 0x52DE, 0xD6CD, 0xF960, 0xD6CE, 0x6488, 0xD6CF, 0x64C4, 0xD6D0, 0x6AD3, + 0xD6D1, 0x6F5E, 0xD6D2, 0x7018, 0xD6D3, 0x7210, 0xD6D4, 0x76E7, 0xD6D5, 0x8001, 0xD6D6, 0x8606, 0xD6D7, 0x865C, 0xD6D8, 0x8DEF, + 0xD6D9, 0x8F05, 0xD6DA, 0x9732, 0xD6DB, 0x9B6F, 0xD6DC, 0x9DFA, 0xD6DD, 0x9E75, 0xD6DE, 0x788C, 0xD6DF, 0x797F, 0xD6E0, 0x7DA0, + 0xD6E1, 0x83C9, 0xD6E2, 0x9304, 0xD6E3, 0x9E7F, 0xD6E4, 0x9E93, 0xD6E5, 0x8AD6, 0xD6E6, 0x58DF, 0xD6E7, 0x5F04, 0xD6E8, 0x6727, + 0xD6E9, 0x7027, 0xD6EA, 0x74CF, 0xD6EB, 0x7C60, 0xD6EC, 0x807E, 0xD6ED, 0x5121, 0xD6EE, 0x7028, 0xD6EF, 0x7262, 0xD6F0, 0x78CA, + 0xD6F1, 0x8CC2, 0xD6F2, 0x8CDA, 0xD6F3, 0x8CF4, 0xD6F4, 0x96F7, 0xD6F5, 0x4E86, 0xD6F6, 0x50DA, 0xD6F7, 0x5BEE, 0xD6F8, 0x5ED6, + 0xD6F9, 0x6599, 0xD6FA, 0x71CE, 0xD6FB, 0x7642, 0xD6FC, 0x77AD, 0xD6FD, 0x804A, 0xD6FE, 0x84FC, 0xD7A1, 0x907C, 0xD7A2, 0x9B27, + 0xD7A3, 0x9F8D, 0xD7A4, 0x58D8, 0xD7A5, 0x5A41, 0xD7A6, 0x5C62, 0xD7A7, 0x6A13, 0xD7A8, 0x6DDA, 0xD7A9, 0x6F0F, 0xD7AA, 0x763B, + 0xD7AB, 0x7D2F, 0xD7AC, 0x7E37, 0xD7AD, 0x851E, 0xD7AE, 0x8938, 0xD7AF, 0x93E4, 0xD7B0, 0x964B, 0xD7B1, 0x5289, 0xD7B2, 0x65D2, + 0xD7B3, 0x67F3, 0xD7B4, 0x69B4, 0xD7B5, 0x6D41, 0xD7B6, 0x6E9C, 0xD7B7, 0x700F, 0xD7B8, 0x7409, 0xD7B9, 0x7460, 0xD7BA, 0x7559, + 0xD7BB, 0x7624, 0xD7BC, 0x786B, 0xD7BD, 0x8B2C, 0xD7BE, 0x985E, 0xD7BF, 0x516D, 0xD7C0, 0x622E, 0xD7C1, 0x9678, 0xD7C2, 0x4F96, + 0xD7C3, 0x502B, 0xD7C4, 0x5D19, 0xD7C5, 0x6DEA, 0xD7C6, 0x7DB8, 0xD7C7, 0x8F2A, 0xD7C8, 0x5F8B, 0xD7C9, 0x6144, 0xD7CA, 0x6817, + 0xD7CB, 0xF961, 0xD7CC, 0x9686, 0xD7CD, 0x52D2, 0xD7CE, 0x808B, 0xD7CF, 0x51DC, 0xD7D0, 0x51CC, 0xD7D1, 0x695E, 0xD7D2, 0x7A1C, + 0xD7D3, 0x7DBE, 0xD7D4, 0x83F1, 0xD7D5, 0x9675, 0xD7D6, 0x4FDA, 0xD7D7, 0x5229, 0xD7D8, 0x5398, 0xD7D9, 0x540F, 0xD7DA, 0x550E, + 0xD7DB, 0x5C65, 0xD7DC, 0x60A7, 0xD7DD, 0x674E, 0xD7DE, 0x68A8, 0xD7DF, 0x6D6C, 0xD7E0, 0x7281, 0xD7E1, 0x72F8, 0xD7E2, 0x7406, + 0xD7E3, 0x7483, 0xD7E4, 0xF962, 0xD7E5, 0x75E2, 0xD7E6, 0x7C6C, 0xD7E7, 0x7F79, 0xD7E8, 0x7FB8, 0xD7E9, 0x8389, 0xD7EA, 0x88CF, + 0xD7EB, 0x88E1, 0xD7EC, 0x91CC, 0xD7ED, 0x91D0, 0xD7EE, 0x96E2, 0xD7EF, 0x9BC9, 0xD7F0, 0x541D, 0xD7F1, 0x6F7E, 0xD7F2, 0x71D0, + 0xD7F3, 0x7498, 0xD7F4, 0x85FA, 0xD7F5, 0x8EAA, 0xD7F6, 0x96A3, 0xD7F7, 0x9C57, 0xD7F8, 0x9E9F, 0xD7F9, 0x6797, 0xD7FA, 0x6DCB, + 0xD7FB, 0x7433, 0xD7FC, 0x81E8, 0xD7FD, 0x9716, 0xD7FE, 0x782C, 0xD8A1, 0x7ACB, 0xD8A2, 0x7B20, 0xD8A3, 0x7C92, 0xD8A4, 0x6469, + 0xD8A5, 0x746A, 0xD8A6, 0x75F2, 0xD8A7, 0x78BC, 0xD8A8, 0x78E8, 0xD8A9, 0x99AC, 0xD8AA, 0x9B54, 0xD8AB, 0x9EBB, 0xD8AC, 0x5BDE, + 0xD8AD, 0x5E55, 0xD8AE, 0x6F20, 0xD8AF, 0x819C, 0xD8B0, 0x83AB, 0xD8B1, 0x9088, 0xD8B2, 0x4E07, 0xD8B3, 0x534D, 0xD8B4, 0x5A29, + 0xD8B5, 0x5DD2, 0xD8B6, 0x5F4E, 0xD8B7, 0x6162, 0xD8B8, 0x633D, 0xD8B9, 0x6669, 0xD8BA, 0x66FC, 0xD8BB, 0x6EFF, 0xD8BC, 0x6F2B, + 0xD8BD, 0x7063, 0xD8BE, 0x779E, 0xD8BF, 0x842C, 0xD8C0, 0x8513, 0xD8C1, 0x883B, 0xD8C2, 0x8F13, 0xD8C3, 0x9945, 0xD8C4, 0x9C3B, + 0xD8C5, 0x551C, 0xD8C6, 0x62B9, 0xD8C7, 0x672B, 0xD8C8, 0x6CAB, 0xD8C9, 0x8309, 0xD8CA, 0x896A, 0xD8CB, 0x977A, 0xD8CC, 0x4EA1, + 0xD8CD, 0x5984, 0xD8CE, 0x5FD8, 0xD8CF, 0x5FD9, 0xD8D0, 0x671B, 0xD8D1, 0x7DB2, 0xD8D2, 0x7F54, 0xD8D3, 0x8292, 0xD8D4, 0x832B, + 0xD8D5, 0x83BD, 0xD8D6, 0x8F1E, 0xD8D7, 0x9099, 0xD8D8, 0x57CB, 0xD8D9, 0x59B9, 0xD8DA, 0x5A92, 0xD8DB, 0x5BD0, 0xD8DC, 0x6627, + 0xD8DD, 0x679A, 0xD8DE, 0x6885, 0xD8DF, 0x6BCF, 0xD8E0, 0x7164, 0xD8E1, 0x7F75, 0xD8E2, 0x8CB7, 0xD8E3, 0x8CE3, 0xD8E4, 0x9081, + 0xD8E5, 0x9B45, 0xD8E6, 0x8108, 0xD8E7, 0x8C8A, 0xD8E8, 0x964C, 0xD8E9, 0x9A40, 0xD8EA, 0x9EA5, 0xD8EB, 0x5B5F, 0xD8EC, 0x6C13, + 0xD8ED, 0x731B, 0xD8EE, 0x76F2, 0xD8EF, 0x76DF, 0xD8F0, 0x840C, 0xD8F1, 0x51AA, 0xD8F2, 0x8993, 0xD8F3, 0x514D, 0xD8F4, 0x5195, + 0xD8F5, 0x52C9, 0xD8F6, 0x68C9, 0xD8F7, 0x6C94, 0xD8F8, 0x7704, 0xD8F9, 0x7720, 0xD8FA, 0x7DBF, 0xD8FB, 0x7DEC, 0xD8FC, 0x9762, + 0xD8FD, 0x9EB5, 0xD8FE, 0x6EC5, 0xD9A1, 0x8511, 0xD9A2, 0x51A5, 0xD9A3, 0x540D, 0xD9A4, 0x547D, 0xD9A5, 0x660E, 0xD9A6, 0x669D, + 0xD9A7, 0x6927, 0xD9A8, 0x6E9F, 0xD9A9, 0x76BF, 0xD9AA, 0x7791, 0xD9AB, 0x8317, 0xD9AC, 0x84C2, 0xD9AD, 0x879F, 0xD9AE, 0x9169, + 0xD9AF, 0x9298, 0xD9B0, 0x9CF4, 0xD9B1, 0x8882, 0xD9B2, 0x4FAE, 0xD9B3, 0x5192, 0xD9B4, 0x52DF, 0xD9B5, 0x59C6, 0xD9B6, 0x5E3D, + 0xD9B7, 0x6155, 0xD9B8, 0x6478, 0xD9B9, 0x6479, 0xD9BA, 0x66AE, 0xD9BB, 0x67D0, 0xD9BC, 0x6A21, 0xD9BD, 0x6BCD, 0xD9BE, 0x6BDB, + 0xD9BF, 0x725F, 0xD9C0, 0x7261, 0xD9C1, 0x7441, 0xD9C2, 0x7738, 0xD9C3, 0x77DB, 0xD9C4, 0x8017, 0xD9C5, 0x82BC, 0xD9C6, 0x8305, + 0xD9C7, 0x8B00, 0xD9C8, 0x8B28, 0xD9C9, 0x8C8C, 0xD9CA, 0x6728, 0xD9CB, 0x6C90, 0xD9CC, 0x7267, 0xD9CD, 0x76EE, 0xD9CE, 0x7766, + 0xD9CF, 0x7A46, 0xD9D0, 0x9DA9, 0xD9D1, 0x6B7F, 0xD9D2, 0x6C92, 0xD9D3, 0x5922, 0xD9D4, 0x6726, 0xD9D5, 0x8499, 0xD9D6, 0x536F, + 0xD9D7, 0x5893, 0xD9D8, 0x5999, 0xD9D9, 0x5EDF, 0xD9DA, 0x63CF, 0xD9DB, 0x6634, 0xD9DC, 0x6773, 0xD9DD, 0x6E3A, 0xD9DE, 0x732B, + 0xD9DF, 0x7AD7, 0xD9E0, 0x82D7, 0xD9E1, 0x9328, 0xD9E2, 0x52D9, 0xD9E3, 0x5DEB, 0xD9E4, 0x61AE, 0xD9E5, 0x61CB, 0xD9E6, 0x620A, + 0xD9E7, 0x62C7, 0xD9E8, 0x64AB, 0xD9E9, 0x65E0, 0xD9EA, 0x6959, 0xD9EB, 0x6B66, 0xD9EC, 0x6BCB, 0xD9ED, 0x7121, 0xD9EE, 0x73F7, + 0xD9EF, 0x755D, 0xD9F0, 0x7E46, 0xD9F1, 0x821E, 0xD9F2, 0x8302, 0xD9F3, 0x856A, 0xD9F4, 0x8AA3, 0xD9F5, 0x8CBF, 0xD9F6, 0x9727, + 0xD9F7, 0x9D61, 0xD9F8, 0x58A8, 0xD9F9, 0x9ED8, 0xD9FA, 0x5011, 0xD9FB, 0x520E, 0xD9FC, 0x543B, 0xD9FD, 0x554F, 0xD9FE, 0x6587, + 0xDAA1, 0x6C76, 0xDAA2, 0x7D0A, 0xDAA3, 0x7D0B, 0xDAA4, 0x805E, 0xDAA5, 0x868A, 0xDAA6, 0x9580, 0xDAA7, 0x96EF, 0xDAA8, 0x52FF, + 0xDAA9, 0x6C95, 0xDAAA, 0x7269, 0xDAAB, 0x5473, 0xDAAC, 0x5A9A, 0xDAAD, 0x5C3E, 0xDAAE, 0x5D4B, 0xDAAF, 0x5F4C, 0xDAB0, 0x5FAE, + 0xDAB1, 0x672A, 0xDAB2, 0x68B6, 0xDAB3, 0x6963, 0xDAB4, 0x6E3C, 0xDAB5, 0x6E44, 0xDAB6, 0x7709, 0xDAB7, 0x7C73, 0xDAB8, 0x7F8E, + 0xDAB9, 0x8587, 0xDABA, 0x8B0E, 0xDABB, 0x8FF7, 0xDABC, 0x9761, 0xDABD, 0x9EF4, 0xDABE, 0x5CB7, 0xDABF, 0x60B6, 0xDAC0, 0x610D, + 0xDAC1, 0x61AB, 0xDAC2, 0x654F, 0xDAC3, 0x65FB, 0xDAC4, 0x65FC, 0xDAC5, 0x6C11, 0xDAC6, 0x6CEF, 0xDAC7, 0x739F, 0xDAC8, 0x73C9, + 0xDAC9, 0x7DE1, 0xDACA, 0x9594, 0xDACB, 0x5BC6, 0xDACC, 0x871C, 0xDACD, 0x8B10, 0xDACE, 0x525D, 0xDACF, 0x535A, 0xDAD0, 0x62CD, + 0xDAD1, 0x640F, 0xDAD2, 0x64B2, 0xDAD3, 0x6734, 0xDAD4, 0x6A38, 0xDAD5, 0x6CCA, 0xDAD6, 0x73C0, 0xDAD7, 0x749E, 0xDAD8, 0x7B94, + 0xDAD9, 0x7C95, 0xDADA, 0x7E1B, 0xDADB, 0x818A, 0xDADC, 0x8236, 0xDADD, 0x8584, 0xDADE, 0x8FEB, 0xDADF, 0x96F9, 0xDAE0, 0x99C1, + 0xDAE1, 0x4F34, 0xDAE2, 0x534A, 0xDAE3, 0x53CD, 0xDAE4, 0x53DB, 0xDAE5, 0x62CC, 0xDAE6, 0x642C, 0xDAE7, 0x6500, 0xDAE8, 0x6591, + 0xDAE9, 0x69C3, 0xDAEA, 0x6CEE, 0xDAEB, 0x6F58, 0xDAEC, 0x73ED, 0xDAED, 0x7554, 0xDAEE, 0x7622, 0xDAEF, 0x76E4, 0xDAF0, 0x76FC, + 0xDAF1, 0x78D0, 0xDAF2, 0x78FB, 0xDAF3, 0x792C, 0xDAF4, 0x7D46, 0xDAF5, 0x822C, 0xDAF6, 0x87E0, 0xDAF7, 0x8FD4, 0xDAF8, 0x9812, + 0xDAF9, 0x98EF, 0xDAFA, 0x52C3, 0xDAFB, 0x62D4, 0xDAFC, 0x64A5, 0xDAFD, 0x6E24, 0xDAFE, 0x6F51, 0xDBA1, 0x767C, 0xDBA2, 0x8DCB, + 0xDBA3, 0x91B1, 0xDBA4, 0x9262, 0xDBA5, 0x9AEE, 0xDBA6, 0x9B43, 0xDBA7, 0x5023, 0xDBA8, 0x508D, 0xDBA9, 0x574A, 0xDBAA, 0x59A8, + 0xDBAB, 0x5C28, 0xDBAC, 0x5E47, 0xDBAD, 0x5F77, 0xDBAE, 0x623F, 0xDBAF, 0x653E, 0xDBB0, 0x65B9, 0xDBB1, 0x65C1, 0xDBB2, 0x6609, + 0xDBB3, 0x678B, 0xDBB4, 0x699C, 0xDBB5, 0x6EC2, 0xDBB6, 0x78C5, 0xDBB7, 0x7D21, 0xDBB8, 0x80AA, 0xDBB9, 0x8180, 0xDBBA, 0x822B, + 0xDBBB, 0x82B3, 0xDBBC, 0x84A1, 0xDBBD, 0x868C, 0xDBBE, 0x8A2A, 0xDBBF, 0x8B17, 0xDBC0, 0x90A6, 0xDBC1, 0x9632, 0xDBC2, 0x9F90, + 0xDBC3, 0x500D, 0xDBC4, 0x4FF3, 0xDBC5, 0xF963, 0xDBC6, 0x57F9, 0xDBC7, 0x5F98, 0xDBC8, 0x62DC, 0xDBC9, 0x6392, 0xDBCA, 0x676F, + 0xDBCB, 0x6E43, 0xDBCC, 0x7119, 0xDBCD, 0x76C3, 0xDBCE, 0x80CC, 0xDBCF, 0x80DA, 0xDBD0, 0x88F4, 0xDBD1, 0x88F5, 0xDBD2, 0x8919, + 0xDBD3, 0x8CE0, 0xDBD4, 0x8F29, 0xDBD5, 0x914D, 0xDBD6, 0x966A, 0xDBD7, 0x4F2F, 0xDBD8, 0x4F70, 0xDBD9, 0x5E1B, 0xDBDA, 0x67CF, + 0xDBDB, 0x6822, 0xDBDC, 0x767D, 0xDBDD, 0x767E, 0xDBDE, 0x9B44, 0xDBDF, 0x5E61, 0xDBE0, 0x6A0A, 0xDBE1, 0x7169, 0xDBE2, 0x71D4, + 0xDBE3, 0x756A, 0xDBE4, 0xF964, 0xDBE5, 0x7E41, 0xDBE6, 0x8543, 0xDBE7, 0x85E9, 0xDBE8, 0x98DC, 0xDBE9, 0x4F10, 0xDBEA, 0x7B4F, + 0xDBEB, 0x7F70, 0xDBEC, 0x95A5, 0xDBED, 0x51E1, 0xDBEE, 0x5E06, 0xDBEF, 0x68B5, 0xDBF0, 0x6C3E, 0xDBF1, 0x6C4E, 0xDBF2, 0x6CDB, + 0xDBF3, 0x72AF, 0xDBF4, 0x7BC4, 0xDBF5, 0x8303, 0xDBF6, 0x6CD5, 0xDBF7, 0x743A, 0xDBF8, 0x50FB, 0xDBF9, 0x5288, 0xDBFA, 0x58C1, + 0xDBFB, 0x64D8, 0xDBFC, 0x6A97, 0xDBFD, 0x74A7, 0xDBFE, 0x7656, 0xDCA1, 0x78A7, 0xDCA2, 0x8617, 0xDCA3, 0x95E2, 0xDCA4, 0x9739, + 0xDCA5, 0xF965, 0xDCA6, 0x535E, 0xDCA7, 0x5F01, 0xDCA8, 0x8B8A, 0xDCA9, 0x8FA8, 0xDCAA, 0x8FAF, 0xDCAB, 0x908A, 0xDCAC, 0x5225, + 0xDCAD, 0x77A5, 0xDCAE, 0x9C49, 0xDCAF, 0x9F08, 0xDCB0, 0x4E19, 0xDCB1, 0x5002, 0xDCB2, 0x5175, 0xDCB3, 0x5C5B, 0xDCB4, 0x5E77, + 0xDCB5, 0x661E, 0xDCB6, 0x663A, 0xDCB7, 0x67C4, 0xDCB8, 0x68C5, 0xDCB9, 0x70B3, 0xDCBA, 0x7501, 0xDCBB, 0x75C5, 0xDCBC, 0x79C9, + 0xDCBD, 0x7ADD, 0xDCBE, 0x8F27, 0xDCBF, 0x9920, 0xDCC0, 0x9A08, 0xDCC1, 0x4FDD, 0xDCC2, 0x5821, 0xDCC3, 0x5831, 0xDCC4, 0x5BF6, + 0xDCC5, 0x666E, 0xDCC6, 0x6B65, 0xDCC7, 0x6D11, 0xDCC8, 0x6E7A, 0xDCC9, 0x6F7D, 0xDCCA, 0x73E4, 0xDCCB, 0x752B, 0xDCCC, 0x83E9, + 0xDCCD, 0x88DC, 0xDCCE, 0x8913, 0xDCCF, 0x8B5C, 0xDCD0, 0x8F14, 0xDCD1, 0x4F0F, 0xDCD2, 0x50D5, 0xDCD3, 0x5310, 0xDCD4, 0x535C, + 0xDCD5, 0x5B93, 0xDCD6, 0x5FA9, 0xDCD7, 0x670D, 0xDCD8, 0x798F, 0xDCD9, 0x8179, 0xDCDA, 0x832F, 0xDCDB, 0x8514, 0xDCDC, 0x8907, + 0xDCDD, 0x8986, 0xDCDE, 0x8F39, 0xDCDF, 0x8F3B, 0xDCE0, 0x99A5, 0xDCE1, 0x9C12, 0xDCE2, 0x672C, 0xDCE3, 0x4E76, 0xDCE4, 0x4FF8, + 0xDCE5, 0x5949, 0xDCE6, 0x5C01, 0xDCE7, 0x5CEF, 0xDCE8, 0x5CF0, 0xDCE9, 0x6367, 0xDCEA, 0x68D2, 0xDCEB, 0x70FD, 0xDCEC, 0x71A2, + 0xDCED, 0x742B, 0xDCEE, 0x7E2B, 0xDCEF, 0x84EC, 0xDCF0, 0x8702, 0xDCF1, 0x9022, 0xDCF2, 0x92D2, 0xDCF3, 0x9CF3, 0xDCF4, 0x4E0D, + 0xDCF5, 0x4ED8, 0xDCF6, 0x4FEF, 0xDCF7, 0x5085, 0xDCF8, 0x5256, 0xDCF9, 0x526F, 0xDCFA, 0x5426, 0xDCFB, 0x5490, 0xDCFC, 0x57E0, + 0xDCFD, 0x592B, 0xDCFE, 0x5A66, 0xDDA1, 0x5B5A, 0xDDA2, 0x5B75, 0xDDA3, 0x5BCC, 0xDDA4, 0x5E9C, 0xDDA5, 0xF966, 0xDDA6, 0x6276, + 0xDDA7, 0x6577, 0xDDA8, 0x65A7, 0xDDA9, 0x6D6E, 0xDDAA, 0x6EA5, 0xDDAB, 0x7236, 0xDDAC, 0x7B26, 0xDDAD, 0x7C3F, 0xDDAE, 0x7F36, + 0xDDAF, 0x8150, 0xDDB0, 0x8151, 0xDDB1, 0x819A, 0xDDB2, 0x8240, 0xDDB3, 0x8299, 0xDDB4, 0x83A9, 0xDDB5, 0x8A03, 0xDDB6, 0x8CA0, + 0xDDB7, 0x8CE6, 0xDDB8, 0x8CFB, 0xDDB9, 0x8D74, 0xDDBA, 0x8DBA, 0xDDBB, 0x90E8, 0xDDBC, 0x91DC, 0xDDBD, 0x961C, 0xDDBE, 0x9644, + 0xDDBF, 0x99D9, 0xDDC0, 0x9CE7, 0xDDC1, 0x5317, 0xDDC2, 0x5206, 0xDDC3, 0x5429, 0xDDC4, 0x5674, 0xDDC5, 0x58B3, 0xDDC6, 0x5954, + 0xDDC7, 0x596E, 0xDDC8, 0x5FFF, 0xDDC9, 0x61A4, 0xDDCA, 0x626E, 0xDDCB, 0x6610, 0xDDCC, 0x6C7E, 0xDDCD, 0x711A, 0xDDCE, 0x76C6, + 0xDDCF, 0x7C89, 0xDDD0, 0x7CDE, 0xDDD1, 0x7D1B, 0xDDD2, 0x82AC, 0xDDD3, 0x8CC1, 0xDDD4, 0x96F0, 0xDDD5, 0xF967, 0xDDD6, 0x4F5B, + 0xDDD7, 0x5F17, 0xDDD8, 0x5F7F, 0xDDD9, 0x62C2, 0xDDDA, 0x5D29, 0xDDDB, 0x670B, 0xDDDC, 0x68DA, 0xDDDD, 0x787C, 0xDDDE, 0x7E43, + 0xDDDF, 0x9D6C, 0xDDE0, 0x4E15, 0xDDE1, 0x5099, 0xDDE2, 0x5315, 0xDDE3, 0x532A, 0xDDE4, 0x5351, 0xDDE5, 0x5983, 0xDDE6, 0x5A62, + 0xDDE7, 0x5E87, 0xDDE8, 0x60B2, 0xDDE9, 0x618A, 0xDDEA, 0x6249, 0xDDEB, 0x6279, 0xDDEC, 0x6590, 0xDDED, 0x6787, 0xDDEE, 0x69A7, + 0xDDEF, 0x6BD4, 0xDDF0, 0x6BD6, 0xDDF1, 0x6BD7, 0xDDF2, 0x6BD8, 0xDDF3, 0x6CB8, 0xDDF4, 0xF968, 0xDDF5, 0x7435, 0xDDF6, 0x75FA, + 0xDDF7, 0x7812, 0xDDF8, 0x7891, 0xDDF9, 0x79D5, 0xDDFA, 0x79D8, 0xDDFB, 0x7C83, 0xDDFC, 0x7DCB, 0xDDFD, 0x7FE1, 0xDDFE, 0x80A5, + 0xDEA1, 0x813E, 0xDEA2, 0x81C2, 0xDEA3, 0x83F2, 0xDEA4, 0x871A, 0xDEA5, 0x88E8, 0xDEA6, 0x8AB9, 0xDEA7, 0x8B6C, 0xDEA8, 0x8CBB, + 0xDEA9, 0x9119, 0xDEAA, 0x975E, 0xDEAB, 0x98DB, 0xDEAC, 0x9F3B, 0xDEAD, 0x56AC, 0xDEAE, 0x5B2A, 0xDEAF, 0x5F6C, 0xDEB0, 0x658C, + 0xDEB1, 0x6AB3, 0xDEB2, 0x6BAF, 0xDEB3, 0x6D5C, 0xDEB4, 0x6FF1, 0xDEB5, 0x7015, 0xDEB6, 0x725D, 0xDEB7, 0x73AD, 0xDEB8, 0x8CA7, + 0xDEB9, 0x8CD3, 0xDEBA, 0x983B, 0xDEBB, 0x6191, 0xDEBC, 0x6C37, 0xDEBD, 0x8058, 0xDEBE, 0x9A01, 0xDEBF, 0x4E4D, 0xDEC0, 0x4E8B, + 0xDEC1, 0x4E9B, 0xDEC2, 0x4ED5, 0xDEC3, 0x4F3A, 0xDEC4, 0x4F3C, 0xDEC5, 0x4F7F, 0xDEC6, 0x4FDF, 0xDEC7, 0x50FF, 0xDEC8, 0x53F2, + 0xDEC9, 0x53F8, 0xDECA, 0x5506, 0xDECB, 0x55E3, 0xDECC, 0x56DB, 0xDECD, 0x58EB, 0xDECE, 0x5962, 0xDECF, 0x5A11, 0xDED0, 0x5BEB, + 0xDED1, 0x5BFA, 0xDED2, 0x5C04, 0xDED3, 0x5DF3, 0xDED4, 0x5E2B, 0xDED5, 0x5F99, 0xDED6, 0x601D, 0xDED7, 0x6368, 0xDED8, 0x659C, + 0xDED9, 0x65AF, 0xDEDA, 0x67F6, 0xDEDB, 0x67FB, 0xDEDC, 0x68AD, 0xDEDD, 0x6B7B, 0xDEDE, 0x6C99, 0xDEDF, 0x6CD7, 0xDEE0, 0x6E23, + 0xDEE1, 0x7009, 0xDEE2, 0x7345, 0xDEE3, 0x7802, 0xDEE4, 0x793E, 0xDEE5, 0x7940, 0xDEE6, 0x7960, 0xDEE7, 0x79C1, 0xDEE8, 0x7BE9, + 0xDEE9, 0x7D17, 0xDEEA, 0x7D72, 0xDEEB, 0x8086, 0xDEEC, 0x820D, 0xDEED, 0x838E, 0xDEEE, 0x84D1, 0xDEEF, 0x86C7, 0xDEF0, 0x88DF, + 0xDEF1, 0x8A50, 0xDEF2, 0x8A5E, 0xDEF3, 0x8B1D, 0xDEF4, 0x8CDC, 0xDEF5, 0x8D66, 0xDEF6, 0x8FAD, 0xDEF7, 0x90AA, 0xDEF8, 0x98FC, + 0xDEF9, 0x99DF, 0xDEFA, 0x9E9D, 0xDEFB, 0x524A, 0xDEFC, 0xF969, 0xDEFD, 0x6714, 0xDEFE, 0xF96A, 0xDFA1, 0x5098, 0xDFA2, 0x522A, + 0xDFA3, 0x5C71, 0xDFA4, 0x6563, 0xDFA5, 0x6C55, 0xDFA6, 0x73CA, 0xDFA7, 0x7523, 0xDFA8, 0x759D, 0xDFA9, 0x7B97, 0xDFAA, 0x849C, + 0xDFAB, 0x9178, 0xDFAC, 0x9730, 0xDFAD, 0x4E77, 0xDFAE, 0x6492, 0xDFAF, 0x6BBA, 0xDFB0, 0x715E, 0xDFB1, 0x85A9, 0xDFB2, 0x4E09, + 0xDFB3, 0xF96B, 0xDFB4, 0x6749, 0xDFB5, 0x68EE, 0xDFB6, 0x6E17, 0xDFB7, 0x829F, 0xDFB8, 0x8518, 0xDFB9, 0x886B, 0xDFBA, 0x63F7, + 0xDFBB, 0x6F81, 0xDFBC, 0x9212, 0xDFBD, 0x98AF, 0xDFBE, 0x4E0A, 0xDFBF, 0x50B7, 0xDFC0, 0x50CF, 0xDFC1, 0x511F, 0xDFC2, 0x5546, + 0xDFC3, 0x55AA, 0xDFC4, 0x5617, 0xDFC5, 0x5B40, 0xDFC6, 0x5C19, 0xDFC7, 0x5CE0, 0xDFC8, 0x5E38, 0xDFC9, 0x5E8A, 0xDFCA, 0x5EA0, + 0xDFCB, 0x5EC2, 0xDFCC, 0x60F3, 0xDFCD, 0x6851, 0xDFCE, 0x6A61, 0xDFCF, 0x6E58, 0xDFD0, 0x723D, 0xDFD1, 0x7240, 0xDFD2, 0x72C0, + 0xDFD3, 0x76F8, 0xDFD4, 0x7965, 0xDFD5, 0x7BB1, 0xDFD6, 0x7FD4, 0xDFD7, 0x88F3, 0xDFD8, 0x89F4, 0xDFD9, 0x8A73, 0xDFDA, 0x8C61, + 0xDFDB, 0x8CDE, 0xDFDC, 0x971C, 0xDFDD, 0x585E, 0xDFDE, 0x74BD, 0xDFDF, 0x8CFD, 0xDFE0, 0x55C7, 0xDFE1, 0xF96C, 0xDFE2, 0x7A61, + 0xDFE3, 0x7D22, 0xDFE4, 0x8272, 0xDFE5, 0x7272, 0xDFE6, 0x751F, 0xDFE7, 0x7525, 0xDFE8, 0xF96D, 0xDFE9, 0x7B19, 0xDFEA, 0x5885, + 0xDFEB, 0x58FB, 0xDFEC, 0x5DBC, 0xDFED, 0x5E8F, 0xDFEE, 0x5EB6, 0xDFEF, 0x5F90, 0xDFF0, 0x6055, 0xDFF1, 0x6292, 0xDFF2, 0x637F, + 0xDFF3, 0x654D, 0xDFF4, 0x6691, 0xDFF5, 0x66D9, 0xDFF6, 0x66F8, 0xDFF7, 0x6816, 0xDFF8, 0x68F2, 0xDFF9, 0x7280, 0xDFFA, 0x745E, + 0xDFFB, 0x7B6E, 0xDFFC, 0x7D6E, 0xDFFD, 0x7DD6, 0xDFFE, 0x7F72, 0xE0A1, 0x80E5, 0xE0A2, 0x8212, 0xE0A3, 0x85AF, 0xE0A4, 0x897F, + 0xE0A5, 0x8A93, 0xE0A6, 0x901D, 0xE0A7, 0x92E4, 0xE0A8, 0x9ECD, 0xE0A9, 0x9F20, 0xE0AA, 0x5915, 0xE0AB, 0x596D, 0xE0AC, 0x5E2D, + 0xE0AD, 0x60DC, 0xE0AE, 0x6614, 0xE0AF, 0x6673, 0xE0B0, 0x6790, 0xE0B1, 0x6C50, 0xE0B2, 0x6DC5, 0xE0B3, 0x6F5F, 0xE0B4, 0x77F3, + 0xE0B5, 0x78A9, 0xE0B6, 0x84C6, 0xE0B7, 0x91CB, 0xE0B8, 0x932B, 0xE0B9, 0x4ED9, 0xE0BA, 0x50CA, 0xE0BB, 0x5148, 0xE0BC, 0x5584, + 0xE0BD, 0x5B0B, 0xE0BE, 0x5BA3, 0xE0BF, 0x6247, 0xE0C0, 0x657E, 0xE0C1, 0x65CB, 0xE0C2, 0x6E32, 0xE0C3, 0x717D, 0xE0C4, 0x7401, + 0xE0C5, 0x7444, 0xE0C6, 0x7487, 0xE0C7, 0x74BF, 0xE0C8, 0x766C, 0xE0C9, 0x79AA, 0xE0CA, 0x7DDA, 0xE0CB, 0x7E55, 0xE0CC, 0x7FA8, + 0xE0CD, 0x817A, 0xE0CE, 0x81B3, 0xE0CF, 0x8239, 0xE0D0, 0x861A, 0xE0D1, 0x87EC, 0xE0D2, 0x8A75, 0xE0D3, 0x8DE3, 0xE0D4, 0x9078, + 0xE0D5, 0x9291, 0xE0D6, 0x9425, 0xE0D7, 0x994D, 0xE0D8, 0x9BAE, 0xE0D9, 0x5368, 0xE0DA, 0x5C51, 0xE0DB, 0x6954, 0xE0DC, 0x6CC4, + 0xE0DD, 0x6D29, 0xE0DE, 0x6E2B, 0xE0DF, 0x820C, 0xE0E0, 0x859B, 0xE0E1, 0x893B, 0xE0E2, 0x8A2D, 0xE0E3, 0x8AAA, 0xE0E4, 0x96EA, + 0xE0E5, 0x9F67, 0xE0E6, 0x5261, 0xE0E7, 0x66B9, 0xE0E8, 0x6BB2, 0xE0E9, 0x7E96, 0xE0EA, 0x87FE, 0xE0EB, 0x8D0D, 0xE0EC, 0x9583, + 0xE0ED, 0x965D, 0xE0EE, 0x651D, 0xE0EF, 0x6D89, 0xE0F0, 0x71EE, 0xE0F1, 0xF96E, 0xE0F2, 0x57CE, 0xE0F3, 0x59D3, 0xE0F4, 0x5BAC, + 0xE0F5, 0x6027, 0xE0F6, 0x60FA, 0xE0F7, 0x6210, 0xE0F8, 0x661F, 0xE0F9, 0x665F, 0xE0FA, 0x7329, 0xE0FB, 0x73F9, 0xE0FC, 0x76DB, + 0xE0FD, 0x7701, 0xE0FE, 0x7B6C, 0xE1A1, 0x8056, 0xE1A2, 0x8072, 0xE1A3, 0x8165, 0xE1A4, 0x8AA0, 0xE1A5, 0x9192, 0xE1A6, 0x4E16, + 0xE1A7, 0x52E2, 0xE1A8, 0x6B72, 0xE1A9, 0x6D17, 0xE1AA, 0x7A05, 0xE1AB, 0x7B39, 0xE1AC, 0x7D30, 0xE1AD, 0xF96F, 0xE1AE, 0x8CB0, + 0xE1AF, 0x53EC, 0xE1B0, 0x562F, 0xE1B1, 0x5851, 0xE1B2, 0x5BB5, 0xE1B3, 0x5C0F, 0xE1B4, 0x5C11, 0xE1B5, 0x5DE2, 0xE1B6, 0x6240, + 0xE1B7, 0x6383, 0xE1B8, 0x6414, 0xE1B9, 0x662D, 0xE1BA, 0x68B3, 0xE1BB, 0x6CBC, 0xE1BC, 0x6D88, 0xE1BD, 0x6EAF, 0xE1BE, 0x701F, + 0xE1BF, 0x70A4, 0xE1C0, 0x71D2, 0xE1C1, 0x7526, 0xE1C2, 0x758F, 0xE1C3, 0x758E, 0xE1C4, 0x7619, 0xE1C5, 0x7B11, 0xE1C6, 0x7BE0, + 0xE1C7, 0x7C2B, 0xE1C8, 0x7D20, 0xE1C9, 0x7D39, 0xE1CA, 0x852C, 0xE1CB, 0x856D, 0xE1CC, 0x8607, 0xE1CD, 0x8A34, 0xE1CE, 0x900D, + 0xE1CF, 0x9061, 0xE1D0, 0x90B5, 0xE1D1, 0x92B7, 0xE1D2, 0x97F6, 0xE1D3, 0x9A37, 0xE1D4, 0x4FD7, 0xE1D5, 0x5C6C, 0xE1D6, 0x675F, + 0xE1D7, 0x6D91, 0xE1D8, 0x7C9F, 0xE1D9, 0x7E8C, 0xE1DA, 0x8B16, 0xE1DB, 0x8D16, 0xE1DC, 0x901F, 0xE1DD, 0x5B6B, 0xE1DE, 0x5DFD, + 0xE1DF, 0x640D, 0xE1E0, 0x84C0, 0xE1E1, 0x905C, 0xE1E2, 0x98E1, 0xE1E3, 0x7387, 0xE1E4, 0x5B8B, 0xE1E5, 0x609A, 0xE1E6, 0x677E, + 0xE1E7, 0x6DDE, 0xE1E8, 0x8A1F, 0xE1E9, 0x8AA6, 0xE1EA, 0x9001, 0xE1EB, 0x980C, 0xE1EC, 0x5237, 0xE1ED, 0xF970, 0xE1EE, 0x7051, + 0xE1EF, 0x788E, 0xE1F0, 0x9396, 0xE1F1, 0x8870, 0xE1F2, 0x91D7, 0xE1F3, 0x4FEE, 0xE1F4, 0x53D7, 0xE1F5, 0x55FD, 0xE1F6, 0x56DA, + 0xE1F7, 0x5782, 0xE1F8, 0x58FD, 0xE1F9, 0x5AC2, 0xE1FA, 0x5B88, 0xE1FB, 0x5CAB, 0xE1FC, 0x5CC0, 0xE1FD, 0x5E25, 0xE1FE, 0x6101, + 0xE2A1, 0x620D, 0xE2A2, 0x624B, 0xE2A3, 0x6388, 0xE2A4, 0x641C, 0xE2A5, 0x6536, 0xE2A6, 0x6578, 0xE2A7, 0x6A39, 0xE2A8, 0x6B8A, + 0xE2A9, 0x6C34, 0xE2AA, 0x6D19, 0xE2AB, 0x6F31, 0xE2AC, 0x71E7, 0xE2AD, 0x72E9, 0xE2AE, 0x7378, 0xE2AF, 0x7407, 0xE2B0, 0x74B2, + 0xE2B1, 0x7626, 0xE2B2, 0x7761, 0xE2B3, 0x79C0, 0xE2B4, 0x7A57, 0xE2B5, 0x7AEA, 0xE2B6, 0x7CB9, 0xE2B7, 0x7D8F, 0xE2B8, 0x7DAC, + 0xE2B9, 0x7E61, 0xE2BA, 0x7F9E, 0xE2BB, 0x8129, 0xE2BC, 0x8331, 0xE2BD, 0x8490, 0xE2BE, 0x84DA, 0xE2BF, 0x85EA, 0xE2C0, 0x8896, + 0xE2C1, 0x8AB0, 0xE2C2, 0x8B90, 0xE2C3, 0x8F38, 0xE2C4, 0x9042, 0xE2C5, 0x9083, 0xE2C6, 0x916C, 0xE2C7, 0x9296, 0xE2C8, 0x92B9, + 0xE2C9, 0x968B, 0xE2CA, 0x96A7, 0xE2CB, 0x96A8, 0xE2CC, 0x96D6, 0xE2CD, 0x9700, 0xE2CE, 0x9808, 0xE2CF, 0x9996, 0xE2D0, 0x9AD3, + 0xE2D1, 0x9B1A, 0xE2D2, 0x53D4, 0xE2D3, 0x587E, 0xE2D4, 0x5919, 0xE2D5, 0x5B70, 0xE2D6, 0x5BBF, 0xE2D7, 0x6DD1, 0xE2D8, 0x6F5A, + 0xE2D9, 0x719F, 0xE2DA, 0x7421, 0xE2DB, 0x74B9, 0xE2DC, 0x8085, 0xE2DD, 0x83FD, 0xE2DE, 0x5DE1, 0xE2DF, 0x5F87, 0xE2E0, 0x5FAA, + 0xE2E1, 0x6042, 0xE2E2, 0x65EC, 0xE2E3, 0x6812, 0xE2E4, 0x696F, 0xE2E5, 0x6A53, 0xE2E6, 0x6B89, 0xE2E7, 0x6D35, 0xE2E8, 0x6DF3, + 0xE2E9, 0x73E3, 0xE2EA, 0x76FE, 0xE2EB, 0x77AC, 0xE2EC, 0x7B4D, 0xE2ED, 0x7D14, 0xE2EE, 0x8123, 0xE2EF, 0x821C, 0xE2F0, 0x8340, + 0xE2F1, 0x84F4, 0xE2F2, 0x8563, 0xE2F3, 0x8A62, 0xE2F4, 0x8AC4, 0xE2F5, 0x9187, 0xE2F6, 0x931E, 0xE2F7, 0x9806, 0xE2F8, 0x99B4, + 0xE2F9, 0x620C, 0xE2FA, 0x8853, 0xE2FB, 0x8FF0, 0xE2FC, 0x9265, 0xE2FD, 0x5D07, 0xE2FE, 0x5D27, 0xE3A1, 0x5D69, 0xE3A2, 0x745F, + 0xE3A3, 0x819D, 0xE3A4, 0x8768, 0xE3A5, 0x6FD5, 0xE3A6, 0x62FE, 0xE3A7, 0x7FD2, 0xE3A8, 0x8936, 0xE3A9, 0x8972, 0xE3AA, 0x4E1E, + 0xE3AB, 0x4E58, 0xE3AC, 0x50E7, 0xE3AD, 0x52DD, 0xE3AE, 0x5347, 0xE3AF, 0x627F, 0xE3B0, 0x6607, 0xE3B1, 0x7E69, 0xE3B2, 0x8805, + 0xE3B3, 0x965E, 0xE3B4, 0x4F8D, 0xE3B5, 0x5319, 0xE3B6, 0x5636, 0xE3B7, 0x59CB, 0xE3B8, 0x5AA4, 0xE3B9, 0x5C38, 0xE3BA, 0x5C4E, + 0xE3BB, 0x5C4D, 0xE3BC, 0x5E02, 0xE3BD, 0x5F11, 0xE3BE, 0x6043, 0xE3BF, 0x65BD, 0xE3C0, 0x662F, 0xE3C1, 0x6642, 0xE3C2, 0x67BE, + 0xE3C3, 0x67F4, 0xE3C4, 0x731C, 0xE3C5, 0x77E2, 0xE3C6, 0x793A, 0xE3C7, 0x7FC5, 0xE3C8, 0x8494, 0xE3C9, 0x84CD, 0xE3CA, 0x8996, + 0xE3CB, 0x8A66, 0xE3CC, 0x8A69, 0xE3CD, 0x8AE1, 0xE3CE, 0x8C55, 0xE3CF, 0x8C7A, 0xE3D0, 0x57F4, 0xE3D1, 0x5BD4, 0xE3D2, 0x5F0F, + 0xE3D3, 0x606F, 0xE3D4, 0x62ED, 0xE3D5, 0x690D, 0xE3D6, 0x6B96, 0xE3D7, 0x6E5C, 0xE3D8, 0x7184, 0xE3D9, 0x7BD2, 0xE3DA, 0x8755, + 0xE3DB, 0x8B58, 0xE3DC, 0x8EFE, 0xE3DD, 0x98DF, 0xE3DE, 0x98FE, 0xE3DF, 0x4F38, 0xE3E0, 0x4F81, 0xE3E1, 0x4FE1, 0xE3E2, 0x547B, + 0xE3E3, 0x5A20, 0xE3E4, 0x5BB8, 0xE3E5, 0x613C, 0xE3E6, 0x65B0, 0xE3E7, 0x6668, 0xE3E8, 0x71FC, 0xE3E9, 0x7533, 0xE3EA, 0x795E, + 0xE3EB, 0x7D33, 0xE3EC, 0x814E, 0xE3ED, 0x81E3, 0xE3EE, 0x8398, 0xE3EF, 0x85AA, 0xE3F0, 0x85CE, 0xE3F1, 0x8703, 0xE3F2, 0x8A0A, + 0xE3F3, 0x8EAB, 0xE3F4, 0x8F9B, 0xE3F5, 0xF971, 0xE3F6, 0x8FC5, 0xE3F7, 0x5931, 0xE3F8, 0x5BA4, 0xE3F9, 0x5BE6, 0xE3FA, 0x6089, + 0xE3FB, 0x5BE9, 0xE3FC, 0x5C0B, 0xE3FD, 0x5FC3, 0xE3FE, 0x6C81, 0xE4A1, 0xF972, 0xE4A2, 0x6DF1, 0xE4A3, 0x700B, 0xE4A4, 0x751A, + 0xE4A5, 0x82AF, 0xE4A6, 0x8AF6, 0xE4A7, 0x4EC0, 0xE4A8, 0x5341, 0xE4A9, 0xF973, 0xE4AA, 0x96D9, 0xE4AB, 0x6C0F, 0xE4AC, 0x4E9E, + 0xE4AD, 0x4FC4, 0xE4AE, 0x5152, 0xE4AF, 0x555E, 0xE4B0, 0x5A25, 0xE4B1, 0x5CE8, 0xE4B2, 0x6211, 0xE4B3, 0x7259, 0xE4B4, 0x82BD, + 0xE4B5, 0x83AA, 0xE4B6, 0x86FE, 0xE4B7, 0x8859, 0xE4B8, 0x8A1D, 0xE4B9, 0x963F, 0xE4BA, 0x96C5, 0xE4BB, 0x9913, 0xE4BC, 0x9D09, + 0xE4BD, 0x9D5D, 0xE4BE, 0x580A, 0xE4BF, 0x5CB3, 0xE4C0, 0x5DBD, 0xE4C1, 0x5E44, 0xE4C2, 0x60E1, 0xE4C3, 0x6115, 0xE4C4, 0x63E1, + 0xE4C5, 0x6A02, 0xE4C6, 0x6E25, 0xE4C7, 0x9102, 0xE4C8, 0x9354, 0xE4C9, 0x984E, 0xE4CA, 0x9C10, 0xE4CB, 0x9F77, 0xE4CC, 0x5B89, + 0xE4CD, 0x5CB8, 0xE4CE, 0x6309, 0xE4CF, 0x664F, 0xE4D0, 0x6848, 0xE4D1, 0x773C, 0xE4D2, 0x96C1, 0xE4D3, 0x978D, 0xE4D4, 0x9854, + 0xE4D5, 0x9B9F, 0xE4D6, 0x65A1, 0xE4D7, 0x8B01, 0xE4D8, 0x8ECB, 0xE4D9, 0x95BC, 0xE4DA, 0x5535, 0xE4DB, 0x5CA9, 0xE4DC, 0x5DD6, + 0xE4DD, 0x5EB5, 0xE4DE, 0x6697, 0xE4DF, 0x764C, 0xE4E0, 0x83F4, 0xE4E1, 0x95C7, 0xE4E2, 0x58D3, 0xE4E3, 0x62BC, 0xE4E4, 0x72CE, + 0xE4E5, 0x9D28, 0xE4E6, 0x4EF0, 0xE4E7, 0x592E, 0xE4E8, 0x600F, 0xE4E9, 0x663B, 0xE4EA, 0x6B83, 0xE4EB, 0x79E7, 0xE4EC, 0x9D26, + 0xE4ED, 0x5393, 0xE4EE, 0x54C0, 0xE4EF, 0x57C3, 0xE4F0, 0x5D16, 0xE4F1, 0x611B, 0xE4F2, 0x66D6, 0xE4F3, 0x6DAF, 0xE4F4, 0x788D, + 0xE4F5, 0x827E, 0xE4F6, 0x9698, 0xE4F7, 0x9744, 0xE4F8, 0x5384, 0xE4F9, 0x627C, 0xE4FA, 0x6396, 0xE4FB, 0x6DB2, 0xE4FC, 0x7E0A, + 0xE4FD, 0x814B, 0xE4FE, 0x984D, 0xE5A1, 0x6AFB, 0xE5A2, 0x7F4C, 0xE5A3, 0x9DAF, 0xE5A4, 0x9E1A, 0xE5A5, 0x4E5F, 0xE5A6, 0x503B, + 0xE5A7, 0x51B6, 0xE5A8, 0x591C, 0xE5A9, 0x60F9, 0xE5AA, 0x63F6, 0xE5AB, 0x6930, 0xE5AC, 0x723A, 0xE5AD, 0x8036, 0xE5AE, 0xF974, + 0xE5AF, 0x91CE, 0xE5B0, 0x5F31, 0xE5B1, 0xF975, 0xE5B2, 0xF976, 0xE5B3, 0x7D04, 0xE5B4, 0x82E5, 0xE5B5, 0x846F, 0xE5B6, 0x84BB, + 0xE5B7, 0x85E5, 0xE5B8, 0x8E8D, 0xE5B9, 0xF977, 0xE5BA, 0x4F6F, 0xE5BB, 0xF978, 0xE5BC, 0xF979, 0xE5BD, 0x58E4, 0xE5BE, 0x5B43, + 0xE5BF, 0x6059, 0xE5C0, 0x63DA, 0xE5C1, 0x6518, 0xE5C2, 0x656D, 0xE5C3, 0x6698, 0xE5C4, 0xF97A, 0xE5C5, 0x694A, 0xE5C6, 0x6A23, + 0xE5C7, 0x6D0B, 0xE5C8, 0x7001, 0xE5C9, 0x716C, 0xE5CA, 0x75D2, 0xE5CB, 0x760D, 0xE5CC, 0x79B3, 0xE5CD, 0x7A70, 0xE5CE, 0xF97B, + 0xE5CF, 0x7F8A, 0xE5D0, 0xF97C, 0xE5D1, 0x8944, 0xE5D2, 0xF97D, 0xE5D3, 0x8B93, 0xE5D4, 0x91C0, 0xE5D5, 0x967D, 0xE5D6, 0xF97E, + 0xE5D7, 0x990A, 0xE5D8, 0x5704, 0xE5D9, 0x5FA1, 0xE5DA, 0x65BC, 0xE5DB, 0x6F01, 0xE5DC, 0x7600, 0xE5DD, 0x79A6, 0xE5DE, 0x8A9E, + 0xE5DF, 0x99AD, 0xE5E0, 0x9B5A, 0xE5E1, 0x9F6C, 0xE5E2, 0x5104, 0xE5E3, 0x61B6, 0xE5E4, 0x6291, 0xE5E5, 0x6A8D, 0xE5E6, 0x81C6, + 0xE5E7, 0x5043, 0xE5E8, 0x5830, 0xE5E9, 0x5F66, 0xE5EA, 0x7109, 0xE5EB, 0x8A00, 0xE5EC, 0x8AFA, 0xE5ED, 0x5B7C, 0xE5EE, 0x8616, + 0xE5EF, 0x4FFA, 0xE5F0, 0x513C, 0xE5F1, 0x56B4, 0xE5F2, 0x5944, 0xE5F3, 0x63A9, 0xE5F4, 0x6DF9, 0xE5F5, 0x5DAA, 0xE5F6, 0x696D, + 0xE5F7, 0x5186, 0xE5F8, 0x4E88, 0xE5F9, 0x4F59, 0xE5FA, 0xF97F, 0xE5FB, 0xF980, 0xE5FC, 0xF981, 0xE5FD, 0x5982, 0xE5FE, 0xF982, + 0xE6A1, 0xF983, 0xE6A2, 0x6B5F, 0xE6A3, 0x6C5D, 0xE6A4, 0xF984, 0xE6A5, 0x74B5, 0xE6A6, 0x7916, 0xE6A7, 0xF985, 0xE6A8, 0x8207, + 0xE6A9, 0x8245, 0xE6AA, 0x8339, 0xE6AB, 0x8F3F, 0xE6AC, 0x8F5D, 0xE6AD, 0xF986, 0xE6AE, 0x9918, 0xE6AF, 0xF987, 0xE6B0, 0xF988, + 0xE6B1, 0xF989, 0xE6B2, 0x4EA6, 0xE6B3, 0xF98A, 0xE6B4, 0x57DF, 0xE6B5, 0x5F79, 0xE6B6, 0x6613, 0xE6B7, 0xF98B, 0xE6B8, 0xF98C, + 0xE6B9, 0x75AB, 0xE6BA, 0x7E79, 0xE6BB, 0x8B6F, 0xE6BC, 0xF98D, 0xE6BD, 0x9006, 0xE6BE, 0x9A5B, 0xE6BF, 0x56A5, 0xE6C0, 0x5827, + 0xE6C1, 0x59F8, 0xE6C2, 0x5A1F, 0xE6C3, 0x5BB4, 0xE6C4, 0xF98E, 0xE6C5, 0x5EF6, 0xE6C6, 0xF98F, 0xE6C7, 0xF990, 0xE6C8, 0x6350, + 0xE6C9, 0x633B, 0xE6CA, 0xF991, 0xE6CB, 0x693D, 0xE6CC, 0x6C87, 0xE6CD, 0x6CBF, 0xE6CE, 0x6D8E, 0xE6CF, 0x6D93, 0xE6D0, 0x6DF5, + 0xE6D1, 0x6F14, 0xE6D2, 0xF992, 0xE6D3, 0x70DF, 0xE6D4, 0x7136, 0xE6D5, 0x7159, 0xE6D6, 0xF993, 0xE6D7, 0x71C3, 0xE6D8, 0x71D5, + 0xE6D9, 0xF994, 0xE6DA, 0x784F, 0xE6DB, 0x786F, 0xE6DC, 0xF995, 0xE6DD, 0x7B75, 0xE6DE, 0x7DE3, 0xE6DF, 0xF996, 0xE6E0, 0x7E2F, + 0xE6E1, 0xF997, 0xE6E2, 0x884D, 0xE6E3, 0x8EDF, 0xE6E4, 0xF998, 0xE6E5, 0xF999, 0xE6E6, 0xF99A, 0xE6E7, 0x925B, 0xE6E8, 0xF99B, + 0xE6E9, 0x9CF6, 0xE6EA, 0xF99C, 0xE6EB, 0xF99D, 0xE6EC, 0xF99E, 0xE6ED, 0x6085, 0xE6EE, 0x6D85, 0xE6EF, 0xF99F, 0xE6F0, 0x71B1, + 0xE6F1, 0xF9A0, 0xE6F2, 0xF9A1, 0xE6F3, 0x95B1, 0xE6F4, 0x53AD, 0xE6F5, 0xF9A2, 0xE6F6, 0xF9A3, 0xE6F7, 0xF9A4, 0xE6F8, 0x67D3, + 0xE6F9, 0xF9A5, 0xE6FA, 0x708E, 0xE6FB, 0x7130, 0xE6FC, 0x7430, 0xE6FD, 0x8276, 0xE6FE, 0x82D2, 0xE7A1, 0xF9A6, 0xE7A2, 0x95BB, + 0xE7A3, 0x9AE5, 0xE7A4, 0x9E7D, 0xE7A5, 0x66C4, 0xE7A6, 0xF9A7, 0xE7A7, 0x71C1, 0xE7A8, 0x8449, 0xE7A9, 0xF9A8, 0xE7AA, 0xF9A9, + 0xE7AB, 0x584B, 0xE7AC, 0xF9AA, 0xE7AD, 0xF9AB, 0xE7AE, 0x5DB8, 0xE7AF, 0x5F71, 0xE7B0, 0xF9AC, 0xE7B1, 0x6620, 0xE7B2, 0x668E, + 0xE7B3, 0x6979, 0xE7B4, 0x69AE, 0xE7B5, 0x6C38, 0xE7B6, 0x6CF3, 0xE7B7, 0x6E36, 0xE7B8, 0x6F41, 0xE7B9, 0x6FDA, 0xE7BA, 0x701B, + 0xE7BB, 0x702F, 0xE7BC, 0x7150, 0xE7BD, 0x71DF, 0xE7BE, 0x7370, 0xE7BF, 0xF9AD, 0xE7C0, 0x745B, 0xE7C1, 0xF9AE, 0xE7C2, 0x74D4, + 0xE7C3, 0x76C8, 0xE7C4, 0x7A4E, 0xE7C5, 0x7E93, 0xE7C6, 0xF9AF, 0xE7C7, 0xF9B0, 0xE7C8, 0x82F1, 0xE7C9, 0x8A60, 0xE7CA, 0x8FCE, + 0xE7CB, 0xF9B1, 0xE7CC, 0x9348, 0xE7CD, 0xF9B2, 0xE7CE, 0x9719, 0xE7CF, 0xF9B3, 0xE7D0, 0xF9B4, 0xE7D1, 0x4E42, 0xE7D2, 0x502A, + 0xE7D3, 0xF9B5, 0xE7D4, 0x5208, 0xE7D5, 0x53E1, 0xE7D6, 0x66F3, 0xE7D7, 0x6C6D, 0xE7D8, 0x6FCA, 0xE7D9, 0x730A, 0xE7DA, 0x777F, + 0xE7DB, 0x7A62, 0xE7DC, 0x82AE, 0xE7DD, 0x85DD, 0xE7DE, 0x8602, 0xE7DF, 0xF9B6, 0xE7E0, 0x88D4, 0xE7E1, 0x8A63, 0xE7E2, 0x8B7D, + 0xE7E3, 0x8C6B, 0xE7E4, 0xF9B7, 0xE7E5, 0x92B3, 0xE7E6, 0xF9B8, 0xE7E7, 0x9713, 0xE7E8, 0x9810, 0xE7E9, 0x4E94, 0xE7EA, 0x4F0D, + 0xE7EB, 0x4FC9, 0xE7EC, 0x50B2, 0xE7ED, 0x5348, 0xE7EE, 0x543E, 0xE7EF, 0x5433, 0xE7F0, 0x55DA, 0xE7F1, 0x5862, 0xE7F2, 0x58BA, + 0xE7F3, 0x5967, 0xE7F4, 0x5A1B, 0xE7F5, 0x5BE4, 0xE7F6, 0x609F, 0xE7F7, 0xF9B9, 0xE7F8, 0x61CA, 0xE7F9, 0x6556, 0xE7FA, 0x65FF, + 0xE7FB, 0x6664, 0xE7FC, 0x68A7, 0xE7FD, 0x6C5A, 0xE7FE, 0x6FB3, 0xE8A1, 0x70CF, 0xE8A2, 0x71AC, 0xE8A3, 0x7352, 0xE8A4, 0x7B7D, + 0xE8A5, 0x8708, 0xE8A6, 0x8AA4, 0xE8A7, 0x9C32, 0xE8A8, 0x9F07, 0xE8A9, 0x5C4B, 0xE8AA, 0x6C83, 0xE8AB, 0x7344, 0xE8AC, 0x7389, + 0xE8AD, 0x923A, 0xE8AE, 0x6EAB, 0xE8AF, 0x7465, 0xE8B0, 0x761F, 0xE8B1, 0x7A69, 0xE8B2, 0x7E15, 0xE8B3, 0x860A, 0xE8B4, 0x5140, + 0xE8B5, 0x58C5, 0xE8B6, 0x64C1, 0xE8B7, 0x74EE, 0xE8B8, 0x7515, 0xE8B9, 0x7670, 0xE8BA, 0x7FC1, 0xE8BB, 0x9095, 0xE8BC, 0x96CD, + 0xE8BD, 0x9954, 0xE8BE, 0x6E26, 0xE8BF, 0x74E6, 0xE8C0, 0x7AA9, 0xE8C1, 0x7AAA, 0xE8C2, 0x81E5, 0xE8C3, 0x86D9, 0xE8C4, 0x8778, + 0xE8C5, 0x8A1B, 0xE8C6, 0x5A49, 0xE8C7, 0x5B8C, 0xE8C8, 0x5B9B, 0xE8C9, 0x68A1, 0xE8CA, 0x6900, 0xE8CB, 0x6D63, 0xE8CC, 0x73A9, + 0xE8CD, 0x7413, 0xE8CE, 0x742C, 0xE8CF, 0x7897, 0xE8D0, 0x7DE9, 0xE8D1, 0x7FEB, 0xE8D2, 0x8118, 0xE8D3, 0x8155, 0xE8D4, 0x839E, + 0xE8D5, 0x8C4C, 0xE8D6, 0x962E, 0xE8D7, 0x9811, 0xE8D8, 0x66F0, 0xE8D9, 0x5F80, 0xE8DA, 0x65FA, 0xE8DB, 0x6789, 0xE8DC, 0x6C6A, + 0xE8DD, 0x738B, 0xE8DE, 0x502D, 0xE8DF, 0x5A03, 0xE8E0, 0x6B6A, 0xE8E1, 0x77EE, 0xE8E2, 0x5916, 0xE8E3, 0x5D6C, 0xE8E4, 0x5DCD, + 0xE8E5, 0x7325, 0xE8E6, 0x754F, 0xE8E7, 0xF9BA, 0xE8E8, 0xF9BB, 0xE8E9, 0x50E5, 0xE8EA, 0x51F9, 0xE8EB, 0x582F, 0xE8EC, 0x592D, + 0xE8ED, 0x5996, 0xE8EE, 0x59DA, 0xE8EF, 0x5BE5, 0xE8F0, 0xF9BC, 0xE8F1, 0xF9BD, 0xE8F2, 0x5DA2, 0xE8F3, 0x62D7, 0xE8F4, 0x6416, + 0xE8F5, 0x6493, 0xE8F6, 0x64FE, 0xE8F7, 0xF9BE, 0xE8F8, 0x66DC, 0xE8F9, 0xF9BF, 0xE8FA, 0x6A48, 0xE8FB, 0xF9C0, 0xE8FC, 0x71FF, + 0xE8FD, 0x7464, 0xE8FE, 0xF9C1, 0xE9A1, 0x7A88, 0xE9A2, 0x7AAF, 0xE9A3, 0x7E47, 0xE9A4, 0x7E5E, 0xE9A5, 0x8000, 0xE9A6, 0x8170, + 0xE9A7, 0xF9C2, 0xE9A8, 0x87EF, 0xE9A9, 0x8981, 0xE9AA, 0x8B20, 0xE9AB, 0x9059, 0xE9AC, 0xF9C3, 0xE9AD, 0x9080, 0xE9AE, 0x9952, + 0xE9AF, 0x617E, 0xE9B0, 0x6B32, 0xE9B1, 0x6D74, 0xE9B2, 0x7E1F, 0xE9B3, 0x8925, 0xE9B4, 0x8FB1, 0xE9B5, 0x4FD1, 0xE9B6, 0x50AD, + 0xE9B7, 0x5197, 0xE9B8, 0x52C7, 0xE9B9, 0x57C7, 0xE9BA, 0x5889, 0xE9BB, 0x5BB9, 0xE9BC, 0x5EB8, 0xE9BD, 0x6142, 0xE9BE, 0x6995, + 0xE9BF, 0x6D8C, 0xE9C0, 0x6E67, 0xE9C1, 0x6EB6, 0xE9C2, 0x7194, 0xE9C3, 0x7462, 0xE9C4, 0x7528, 0xE9C5, 0x752C, 0xE9C6, 0x8073, + 0xE9C7, 0x8338, 0xE9C8, 0x84C9, 0xE9C9, 0x8E0A, 0xE9CA, 0x9394, 0xE9CB, 0x93DE, 0xE9CC, 0xF9C4, 0xE9CD, 0x4E8E, 0xE9CE, 0x4F51, + 0xE9CF, 0x5076, 0xE9D0, 0x512A, 0xE9D1, 0x53C8, 0xE9D2, 0x53CB, 0xE9D3, 0x53F3, 0xE9D4, 0x5B87, 0xE9D5, 0x5BD3, 0xE9D6, 0x5C24, + 0xE9D7, 0x611A, 0xE9D8, 0x6182, 0xE9D9, 0x65F4, 0xE9DA, 0x725B, 0xE9DB, 0x7397, 0xE9DC, 0x7440, 0xE9DD, 0x76C2, 0xE9DE, 0x7950, + 0xE9DF, 0x7991, 0xE9E0, 0x79B9, 0xE9E1, 0x7D06, 0xE9E2, 0x7FBD, 0xE9E3, 0x828B, 0xE9E4, 0x85D5, 0xE9E5, 0x865E, 0xE9E6, 0x8FC2, + 0xE9E7, 0x9047, 0xE9E8, 0x90F5, 0xE9E9, 0x91EA, 0xE9EA, 0x9685, 0xE9EB, 0x96E8, 0xE9EC, 0x96E9, 0xE9ED, 0x52D6, 0xE9EE, 0x5F67, + 0xE9EF, 0x65ED, 0xE9F0, 0x6631, 0xE9F1, 0x682F, 0xE9F2, 0x715C, 0xE9F3, 0x7A36, 0xE9F4, 0x90C1, 0xE9F5, 0x980A, 0xE9F6, 0x4E91, + 0xE9F7, 0xF9C5, 0xE9F8, 0x6A52, 0xE9F9, 0x6B9E, 0xE9FA, 0x6F90, 0xE9FB, 0x7189, 0xE9FC, 0x8018, 0xE9FD, 0x82B8, 0xE9FE, 0x8553, + 0xEAA1, 0x904B, 0xEAA2, 0x9695, 0xEAA3, 0x96F2, 0xEAA4, 0x97FB, 0xEAA5, 0x851A, 0xEAA6, 0x9B31, 0xEAA7, 0x4E90, 0xEAA8, 0x718A, + 0xEAA9, 0x96C4, 0xEAAA, 0x5143, 0xEAAB, 0x539F, 0xEAAC, 0x54E1, 0xEAAD, 0x5713, 0xEAAE, 0x5712, 0xEAAF, 0x57A3, 0xEAB0, 0x5A9B, + 0xEAB1, 0x5AC4, 0xEAB2, 0x5BC3, 0xEAB3, 0x6028, 0xEAB4, 0x613F, 0xEAB5, 0x63F4, 0xEAB6, 0x6C85, 0xEAB7, 0x6D39, 0xEAB8, 0x6E72, + 0xEAB9, 0x6E90, 0xEABA, 0x7230, 0xEABB, 0x733F, 0xEABC, 0x7457, 0xEABD, 0x82D1, 0xEABE, 0x8881, 0xEABF, 0x8F45, 0xEAC0, 0x9060, + 0xEAC1, 0xF9C6, 0xEAC2, 0x9662, 0xEAC3, 0x9858, 0xEAC4, 0x9D1B, 0xEAC5, 0x6708, 0xEAC6, 0x8D8A, 0xEAC7, 0x925E, 0xEAC8, 0x4F4D, + 0xEAC9, 0x5049, 0xEACA, 0x50DE, 0xEACB, 0x5371, 0xEACC, 0x570D, 0xEACD, 0x59D4, 0xEACE, 0x5A01, 0xEACF, 0x5C09, 0xEAD0, 0x6170, + 0xEAD1, 0x6690, 0xEAD2, 0x6E2D, 0xEAD3, 0x7232, 0xEAD4, 0x744B, 0xEAD5, 0x7DEF, 0xEAD6, 0x80C3, 0xEAD7, 0x840E, 0xEAD8, 0x8466, + 0xEAD9, 0x853F, 0xEADA, 0x875F, 0xEADB, 0x885B, 0xEADC, 0x8918, 0xEADD, 0x8B02, 0xEADE, 0x9055, 0xEADF, 0x97CB, 0xEAE0, 0x9B4F, + 0xEAE1, 0x4E73, 0xEAE2, 0x4F91, 0xEAE3, 0x5112, 0xEAE4, 0x516A, 0xEAE5, 0xF9C7, 0xEAE6, 0x552F, 0xEAE7, 0x55A9, 0xEAE8, 0x5B7A, + 0xEAE9, 0x5BA5, 0xEAEA, 0x5E7C, 0xEAEB, 0x5E7D, 0xEAEC, 0x5EBE, 0xEAED, 0x60A0, 0xEAEE, 0x60DF, 0xEAEF, 0x6108, 0xEAF0, 0x6109, + 0xEAF1, 0x63C4, 0xEAF2, 0x6538, 0xEAF3, 0x6709, 0xEAF4, 0xF9C8, 0xEAF5, 0x67D4, 0xEAF6, 0x67DA, 0xEAF7, 0xF9C9, 0xEAF8, 0x6961, + 0xEAF9, 0x6962, 0xEAFA, 0x6CB9, 0xEAFB, 0x6D27, 0xEAFC, 0xF9CA, 0xEAFD, 0x6E38, 0xEAFE, 0xF9CB, 0xEBA1, 0x6FE1, 0xEBA2, 0x7336, + 0xEBA3, 0x7337, 0xEBA4, 0xF9CC, 0xEBA5, 0x745C, 0xEBA6, 0x7531, 0xEBA7, 0xF9CD, 0xEBA8, 0x7652, 0xEBA9, 0xF9CE, 0xEBAA, 0xF9CF, + 0xEBAB, 0x7DAD, 0xEBAC, 0x81FE, 0xEBAD, 0x8438, 0xEBAE, 0x88D5, 0xEBAF, 0x8A98, 0xEBB0, 0x8ADB, 0xEBB1, 0x8AED, 0xEBB2, 0x8E30, + 0xEBB3, 0x8E42, 0xEBB4, 0x904A, 0xEBB5, 0x903E, 0xEBB6, 0x907A, 0xEBB7, 0x9149, 0xEBB8, 0x91C9, 0xEBB9, 0x936E, 0xEBBA, 0xF9D0, + 0xEBBB, 0xF9D1, 0xEBBC, 0x5809, 0xEBBD, 0xF9D2, 0xEBBE, 0x6BD3, 0xEBBF, 0x8089, 0xEBC0, 0x80B2, 0xEBC1, 0xF9D3, 0xEBC2, 0xF9D4, + 0xEBC3, 0x5141, 0xEBC4, 0x596B, 0xEBC5, 0x5C39, 0xEBC6, 0xF9D5, 0xEBC7, 0xF9D6, 0xEBC8, 0x6F64, 0xEBC9, 0x73A7, 0xEBCA, 0x80E4, + 0xEBCB, 0x8D07, 0xEBCC, 0xF9D7, 0xEBCD, 0x9217, 0xEBCE, 0x958F, 0xEBCF, 0xF9D8, 0xEBD0, 0xF9D9, 0xEBD1, 0xF9DA, 0xEBD2, 0xF9DB, + 0xEBD3, 0x807F, 0xEBD4, 0x620E, 0xEBD5, 0x701C, 0xEBD6, 0x7D68, 0xEBD7, 0x878D, 0xEBD8, 0xF9DC, 0xEBD9, 0x57A0, 0xEBDA, 0x6069, + 0xEBDB, 0x6147, 0xEBDC, 0x6BB7, 0xEBDD, 0x8ABE, 0xEBDE, 0x9280, 0xEBDF, 0x96B1, 0xEBE0, 0x4E59, 0xEBE1, 0x541F, 0xEBE2, 0x6DEB, + 0xEBE3, 0x852D, 0xEBE4, 0x9670, 0xEBE5, 0x97F3, 0xEBE6, 0x98EE, 0xEBE7, 0x63D6, 0xEBE8, 0x6CE3, 0xEBE9, 0x9091, 0xEBEA, 0x51DD, + 0xEBEB, 0x61C9, 0xEBEC, 0x81BA, 0xEBED, 0x9DF9, 0xEBEE, 0x4F9D, 0xEBEF, 0x501A, 0xEBF0, 0x5100, 0xEBF1, 0x5B9C, 0xEBF2, 0x610F, + 0xEBF3, 0x61FF, 0xEBF4, 0x64EC, 0xEBF5, 0x6905, 0xEBF6, 0x6BC5, 0xEBF7, 0x7591, 0xEBF8, 0x77E3, 0xEBF9, 0x7FA9, 0xEBFA, 0x8264, + 0xEBFB, 0x858F, 0xEBFC, 0x87FB, 0xEBFD, 0x8863, 0xEBFE, 0x8ABC, 0xECA1, 0x8B70, 0xECA2, 0x91AB, 0xECA3, 0x4E8C, 0xECA4, 0x4EE5, + 0xECA5, 0x4F0A, 0xECA6, 0xF9DD, 0xECA7, 0xF9DE, 0xECA8, 0x5937, 0xECA9, 0x59E8, 0xECAA, 0xF9DF, 0xECAB, 0x5DF2, 0xECAC, 0x5F1B, + 0xECAD, 0x5F5B, 0xECAE, 0x6021, 0xECAF, 0xF9E0, 0xECB0, 0xF9E1, 0xECB1, 0xF9E2, 0xECB2, 0xF9E3, 0xECB3, 0x723E, 0xECB4, 0x73E5, + 0xECB5, 0xF9E4, 0xECB6, 0x7570, 0xECB7, 0x75CD, 0xECB8, 0xF9E5, 0xECB9, 0x79FB, 0xECBA, 0xF9E6, 0xECBB, 0x800C, 0xECBC, 0x8033, + 0xECBD, 0x8084, 0xECBE, 0x82E1, 0xECBF, 0x8351, 0xECC0, 0xF9E7, 0xECC1, 0xF9E8, 0xECC2, 0x8CBD, 0xECC3, 0x8CB3, 0xECC4, 0x9087, + 0xECC5, 0xF9E9, 0xECC6, 0xF9EA, 0xECC7, 0x98F4, 0xECC8, 0x990C, 0xECC9, 0xF9EB, 0xECCA, 0xF9EC, 0xECCB, 0x7037, 0xECCC, 0x76CA, + 0xECCD, 0x7FCA, 0xECCE, 0x7FCC, 0xECCF, 0x7FFC, 0xECD0, 0x8B1A, 0xECD1, 0x4EBA, 0xECD2, 0x4EC1, 0xECD3, 0x5203, 0xECD4, 0x5370, + 0xECD5, 0xF9ED, 0xECD6, 0x54BD, 0xECD7, 0x56E0, 0xECD8, 0x59FB, 0xECD9, 0x5BC5, 0xECDA, 0x5F15, 0xECDB, 0x5FCD, 0xECDC, 0x6E6E, + 0xECDD, 0xF9EE, 0xECDE, 0xF9EF, 0xECDF, 0x7D6A, 0xECE0, 0x8335, 0xECE1, 0xF9F0, 0xECE2, 0x8693, 0xECE3, 0x8A8D, 0xECE4, 0xF9F1, + 0xECE5, 0x976D, 0xECE6, 0x9777, 0xECE7, 0xF9F2, 0xECE8, 0xF9F3, 0xECE9, 0x4E00, 0xECEA, 0x4F5A, 0xECEB, 0x4F7E, 0xECEC, 0x58F9, + 0xECED, 0x65E5, 0xECEE, 0x6EA2, 0xECEF, 0x9038, 0xECF0, 0x93B0, 0xECF1, 0x99B9, 0xECF2, 0x4EFB, 0xECF3, 0x58EC, 0xECF4, 0x598A, + 0xECF5, 0x59D9, 0xECF6, 0x6041, 0xECF7, 0xF9F4, 0xECF8, 0xF9F5, 0xECF9, 0x7A14, 0xECFA, 0xF9F6, 0xECFB, 0x834F, 0xECFC, 0x8CC3, + 0xECFD, 0x5165, 0xECFE, 0x5344, 0xEDA1, 0xF9F7, 0xEDA2, 0xF9F8, 0xEDA3, 0xF9F9, 0xEDA4, 0x4ECD, 0xEDA5, 0x5269, 0xEDA6, 0x5B55, + 0xEDA7, 0x82BF, 0xEDA8, 0x4ED4, 0xEDA9, 0x523A, 0xEDAA, 0x54A8, 0xEDAB, 0x59C9, 0xEDAC, 0x59FF, 0xEDAD, 0x5B50, 0xEDAE, 0x5B57, + 0xEDAF, 0x5B5C, 0xEDB0, 0x6063, 0xEDB1, 0x6148, 0xEDB2, 0x6ECB, 0xEDB3, 0x7099, 0xEDB4, 0x716E, 0xEDB5, 0x7386, 0xEDB6, 0x74F7, + 0xEDB7, 0x75B5, 0xEDB8, 0x78C1, 0xEDB9, 0x7D2B, 0xEDBA, 0x8005, 0xEDBB, 0x81EA, 0xEDBC, 0x8328, 0xEDBD, 0x8517, 0xEDBE, 0x85C9, + 0xEDBF, 0x8AEE, 0xEDC0, 0x8CC7, 0xEDC1, 0x96CC, 0xEDC2, 0x4F5C, 0xEDC3, 0x52FA, 0xEDC4, 0x56BC, 0xEDC5, 0x65AB, 0xEDC6, 0x6628, + 0xEDC7, 0x707C, 0xEDC8, 0x70B8, 0xEDC9, 0x7235, 0xEDCA, 0x7DBD, 0xEDCB, 0x828D, 0xEDCC, 0x914C, 0xEDCD, 0x96C0, 0xEDCE, 0x9D72, + 0xEDCF, 0x5B71, 0xEDD0, 0x68E7, 0xEDD1, 0x6B98, 0xEDD2, 0x6F7A, 0xEDD3, 0x76DE, 0xEDD4, 0x5C91, 0xEDD5, 0x66AB, 0xEDD6, 0x6F5B, + 0xEDD7, 0x7BB4, 0xEDD8, 0x7C2A, 0xEDD9, 0x8836, 0xEDDA, 0x96DC, 0xEDDB, 0x4E08, 0xEDDC, 0x4ED7, 0xEDDD, 0x5320, 0xEDDE, 0x5834, + 0xEDDF, 0x58BB, 0xEDE0, 0x58EF, 0xEDE1, 0x596C, 0xEDE2, 0x5C07, 0xEDE3, 0x5E33, 0xEDE4, 0x5E84, 0xEDE5, 0x5F35, 0xEDE6, 0x638C, + 0xEDE7, 0x66B2, 0xEDE8, 0x6756, 0xEDE9, 0x6A1F, 0xEDEA, 0x6AA3, 0xEDEB, 0x6B0C, 0xEDEC, 0x6F3F, 0xEDED, 0x7246, 0xEDEE, 0xF9FA, + 0xEDEF, 0x7350, 0xEDF0, 0x748B, 0xEDF1, 0x7AE0, 0xEDF2, 0x7CA7, 0xEDF3, 0x8178, 0xEDF4, 0x81DF, 0xEDF5, 0x81E7, 0xEDF6, 0x838A, + 0xEDF7, 0x846C, 0xEDF8, 0x8523, 0xEDF9, 0x8594, 0xEDFA, 0x85CF, 0xEDFB, 0x88DD, 0xEDFC, 0x8D13, 0xEDFD, 0x91AC, 0xEDFE, 0x9577, + 0xEEA1, 0x969C, 0xEEA2, 0x518D, 0xEEA3, 0x54C9, 0xEEA4, 0x5728, 0xEEA5, 0x5BB0, 0xEEA6, 0x624D, 0xEEA7, 0x6750, 0xEEA8, 0x683D, + 0xEEA9, 0x6893, 0xEEAA, 0x6E3D, 0xEEAB, 0x6ED3, 0xEEAC, 0x707D, 0xEEAD, 0x7E21, 0xEEAE, 0x88C1, 0xEEAF, 0x8CA1, 0xEEB0, 0x8F09, + 0xEEB1, 0x9F4B, 0xEEB2, 0x9F4E, 0xEEB3, 0x722D, 0xEEB4, 0x7B8F, 0xEEB5, 0x8ACD, 0xEEB6, 0x931A, 0xEEB7, 0x4F47, 0xEEB8, 0x4F4E, + 0xEEB9, 0x5132, 0xEEBA, 0x5480, 0xEEBB, 0x59D0, 0xEEBC, 0x5E95, 0xEEBD, 0x62B5, 0xEEBE, 0x6775, 0xEEBF, 0x696E, 0xEEC0, 0x6A17, + 0xEEC1, 0x6CAE, 0xEEC2, 0x6E1A, 0xEEC3, 0x72D9, 0xEEC4, 0x732A, 0xEEC5, 0x75BD, 0xEEC6, 0x7BB8, 0xEEC7, 0x7D35, 0xEEC8, 0x82E7, + 0xEEC9, 0x83F9, 0xEECA, 0x8457, 0xEECB, 0x85F7, 0xEECC, 0x8A5B, 0xEECD, 0x8CAF, 0xEECE, 0x8E87, 0xEECF, 0x9019, 0xEED0, 0x90B8, + 0xEED1, 0x96CE, 0xEED2, 0x9F5F, 0xEED3, 0x52E3, 0xEED4, 0x540A, 0xEED5, 0x5AE1, 0xEED6, 0x5BC2, 0xEED7, 0x6458, 0xEED8, 0x6575, + 0xEED9, 0x6EF4, 0xEEDA, 0x72C4, 0xEEDB, 0xF9FB, 0xEEDC, 0x7684, 0xEEDD, 0x7A4D, 0xEEDE, 0x7B1B, 0xEEDF, 0x7C4D, 0xEEE0, 0x7E3E, + 0xEEE1, 0x7FDF, 0xEEE2, 0x837B, 0xEEE3, 0x8B2B, 0xEEE4, 0x8CCA, 0xEEE5, 0x8D64, 0xEEE6, 0x8DE1, 0xEEE7, 0x8E5F, 0xEEE8, 0x8FEA, + 0xEEE9, 0x8FF9, 0xEEEA, 0x9069, 0xEEEB, 0x93D1, 0xEEEC, 0x4F43, 0xEEED, 0x4F7A, 0xEEEE, 0x50B3, 0xEEEF, 0x5168, 0xEEF0, 0x5178, + 0xEEF1, 0x524D, 0xEEF2, 0x526A, 0xEEF3, 0x5861, 0xEEF4, 0x587C, 0xEEF5, 0x5960, 0xEEF6, 0x5C08, 0xEEF7, 0x5C55, 0xEEF8, 0x5EDB, + 0xEEF9, 0x609B, 0xEEFA, 0x6230, 0xEEFB, 0x6813, 0xEEFC, 0x6BBF, 0xEEFD, 0x6C08, 0xEEFE, 0x6FB1, 0xEFA1, 0x714E, 0xEFA2, 0x7420, + 0xEFA3, 0x7530, 0xEFA4, 0x7538, 0xEFA5, 0x7551, 0xEFA6, 0x7672, 0xEFA7, 0x7B4C, 0xEFA8, 0x7B8B, 0xEFA9, 0x7BAD, 0xEFAA, 0x7BC6, + 0xEFAB, 0x7E8F, 0xEFAC, 0x8A6E, 0xEFAD, 0x8F3E, 0xEFAE, 0x8F49, 0xEFAF, 0x923F, 0xEFB0, 0x9293, 0xEFB1, 0x9322, 0xEFB2, 0x942B, + 0xEFB3, 0x96FB, 0xEFB4, 0x985A, 0xEFB5, 0x986B, 0xEFB6, 0x991E, 0xEFB7, 0x5207, 0xEFB8, 0x622A, 0xEFB9, 0x6298, 0xEFBA, 0x6D59, + 0xEFBB, 0x7664, 0xEFBC, 0x7ACA, 0xEFBD, 0x7BC0, 0xEFBE, 0x7D76, 0xEFBF, 0x5360, 0xEFC0, 0x5CBE, 0xEFC1, 0x5E97, 0xEFC2, 0x6F38, + 0xEFC3, 0x70B9, 0xEFC4, 0x7C98, 0xEFC5, 0x9711, 0xEFC6, 0x9B8E, 0xEFC7, 0x9EDE, 0xEFC8, 0x63A5, 0xEFC9, 0x647A, 0xEFCA, 0x8776, + 0xEFCB, 0x4E01, 0xEFCC, 0x4E95, 0xEFCD, 0x4EAD, 0xEFCE, 0x505C, 0xEFCF, 0x5075, 0xEFD0, 0x5448, 0xEFD1, 0x59C3, 0xEFD2, 0x5B9A, + 0xEFD3, 0x5E40, 0xEFD4, 0x5EAD, 0xEFD5, 0x5EF7, 0xEFD6, 0x5F81, 0xEFD7, 0x60C5, 0xEFD8, 0x633A, 0xEFD9, 0x653F, 0xEFDA, 0x6574, + 0xEFDB, 0x65CC, 0xEFDC, 0x6676, 0xEFDD, 0x6678, 0xEFDE, 0x67FE, 0xEFDF, 0x6968, 0xEFE0, 0x6A89, 0xEFE1, 0x6B63, 0xEFE2, 0x6C40, + 0xEFE3, 0x6DC0, 0xEFE4, 0x6DE8, 0xEFE5, 0x6E1F, 0xEFE6, 0x6E5E, 0xEFE7, 0x701E, 0xEFE8, 0x70A1, 0xEFE9, 0x738E, 0xEFEA, 0x73FD, + 0xEFEB, 0x753A, 0xEFEC, 0x775B, 0xEFED, 0x7887, 0xEFEE, 0x798E, 0xEFEF, 0x7A0B, 0xEFF0, 0x7A7D, 0xEFF1, 0x7CBE, 0xEFF2, 0x7D8E, + 0xEFF3, 0x8247, 0xEFF4, 0x8A02, 0xEFF5, 0x8AEA, 0xEFF6, 0x8C9E, 0xEFF7, 0x912D, 0xEFF8, 0x914A, 0xEFF9, 0x91D8, 0xEFFA, 0x9266, + 0xEFFB, 0x92CC, 0xEFFC, 0x9320, 0xEFFD, 0x9706, 0xEFFE, 0x9756, 0xF0A1, 0x975C, 0xF0A2, 0x9802, 0xF0A3, 0x9F0E, 0xF0A4, 0x5236, + 0xF0A5, 0x5291, 0xF0A6, 0x557C, 0xF0A7, 0x5824, 0xF0A8, 0x5E1D, 0xF0A9, 0x5F1F, 0xF0AA, 0x608C, 0xF0AB, 0x63D0, 0xF0AC, 0x68AF, + 0xF0AD, 0x6FDF, 0xF0AE, 0x796D, 0xF0AF, 0x7B2C, 0xF0B0, 0x81CD, 0xF0B1, 0x85BA, 0xF0B2, 0x88FD, 0xF0B3, 0x8AF8, 0xF0B4, 0x8E44, + 0xF0B5, 0x918D, 0xF0B6, 0x9664, 0xF0B7, 0x969B, 0xF0B8, 0x973D, 0xF0B9, 0x984C, 0xF0BA, 0x9F4A, 0xF0BB, 0x4FCE, 0xF0BC, 0x5146, + 0xF0BD, 0x51CB, 0xF0BE, 0x52A9, 0xF0BF, 0x5632, 0xF0C0, 0x5F14, 0xF0C1, 0x5F6B, 0xF0C2, 0x63AA, 0xF0C3, 0x64CD, 0xF0C4, 0x65E9, + 0xF0C5, 0x6641, 0xF0C6, 0x66FA, 0xF0C7, 0x66F9, 0xF0C8, 0x671D, 0xF0C9, 0x689D, 0xF0CA, 0x68D7, 0xF0CB, 0x69FD, 0xF0CC, 0x6F15, + 0xF0CD, 0x6F6E, 0xF0CE, 0x7167, 0xF0CF, 0x71E5, 0xF0D0, 0x722A, 0xF0D1, 0x74AA, 0xF0D2, 0x773A, 0xF0D3, 0x7956, 0xF0D4, 0x795A, + 0xF0D5, 0x79DF, 0xF0D6, 0x7A20, 0xF0D7, 0x7A95, 0xF0D8, 0x7C97, 0xF0D9, 0x7CDF, 0xF0DA, 0x7D44, 0xF0DB, 0x7E70, 0xF0DC, 0x8087, + 0xF0DD, 0x85FB, 0xF0DE, 0x86A4, 0xF0DF, 0x8A54, 0xF0E0, 0x8ABF, 0xF0E1, 0x8D99, 0xF0E2, 0x8E81, 0xF0E3, 0x9020, 0xF0E4, 0x906D, + 0xF0E5, 0x91E3, 0xF0E6, 0x963B, 0xF0E7, 0x96D5, 0xF0E8, 0x9CE5, 0xF0E9, 0x65CF, 0xF0EA, 0x7C07, 0xF0EB, 0x8DB3, 0xF0EC, 0x93C3, + 0xF0ED, 0x5B58, 0xF0EE, 0x5C0A, 0xF0EF, 0x5352, 0xF0F0, 0x62D9, 0xF0F1, 0x731D, 0xF0F2, 0x5027, 0xF0F3, 0x5B97, 0xF0F4, 0x5F9E, + 0xF0F5, 0x60B0, 0xF0F6, 0x616B, 0xF0F7, 0x68D5, 0xF0F8, 0x6DD9, 0xF0F9, 0x742E, 0xF0FA, 0x7A2E, 0xF0FB, 0x7D42, 0xF0FC, 0x7D9C, + 0xF0FD, 0x7E31, 0xF0FE, 0x816B, 0xF1A1, 0x8E2A, 0xF1A2, 0x8E35, 0xF1A3, 0x937E, 0xF1A4, 0x9418, 0xF1A5, 0x4F50, 0xF1A6, 0x5750, + 0xF1A7, 0x5DE6, 0xF1A8, 0x5EA7, 0xF1A9, 0x632B, 0xF1AA, 0x7F6A, 0xF1AB, 0x4E3B, 0xF1AC, 0x4F4F, 0xF1AD, 0x4F8F, 0xF1AE, 0x505A, + 0xF1AF, 0x59DD, 0xF1B0, 0x80C4, 0xF1B1, 0x546A, 0xF1B2, 0x5468, 0xF1B3, 0x55FE, 0xF1B4, 0x594F, 0xF1B5, 0x5B99, 0xF1B6, 0x5DDE, + 0xF1B7, 0x5EDA, 0xF1B8, 0x665D, 0xF1B9, 0x6731, 0xF1BA, 0x67F1, 0xF1BB, 0x682A, 0xF1BC, 0x6CE8, 0xF1BD, 0x6D32, 0xF1BE, 0x6E4A, + 0xF1BF, 0x6F8D, 0xF1C0, 0x70B7, 0xF1C1, 0x73E0, 0xF1C2, 0x7587, 0xF1C3, 0x7C4C, 0xF1C4, 0x7D02, 0xF1C5, 0x7D2C, 0xF1C6, 0x7DA2, + 0xF1C7, 0x821F, 0xF1C8, 0x86DB, 0xF1C9, 0x8A3B, 0xF1CA, 0x8A85, 0xF1CB, 0x8D70, 0xF1CC, 0x8E8A, 0xF1CD, 0x8F33, 0xF1CE, 0x9031, + 0xF1CF, 0x914E, 0xF1D0, 0x9152, 0xF1D1, 0x9444, 0xF1D2, 0x99D0, 0xF1D3, 0x7AF9, 0xF1D4, 0x7CA5, 0xF1D5, 0x4FCA, 0xF1D6, 0x5101, + 0xF1D7, 0x51C6, 0xF1D8, 0x57C8, 0xF1D9, 0x5BEF, 0xF1DA, 0x5CFB, 0xF1DB, 0x6659, 0xF1DC, 0x6A3D, 0xF1DD, 0x6D5A, 0xF1DE, 0x6E96, + 0xF1DF, 0x6FEC, 0xF1E0, 0x710C, 0xF1E1, 0x756F, 0xF1E2, 0x7AE3, 0xF1E3, 0x8822, 0xF1E4, 0x9021, 0xF1E5, 0x9075, 0xF1E6, 0x96CB, + 0xF1E7, 0x99FF, 0xF1E8, 0x8301, 0xF1E9, 0x4E2D, 0xF1EA, 0x4EF2, 0xF1EB, 0x8846, 0xF1EC, 0x91CD, 0xF1ED, 0x537D, 0xF1EE, 0x6ADB, + 0xF1EF, 0x696B, 0xF1F0, 0x6C41, 0xF1F1, 0x847A, 0xF1F2, 0x589E, 0xF1F3, 0x618E, 0xF1F4, 0x66FE, 0xF1F5, 0x62EF, 0xF1F6, 0x70DD, + 0xF1F7, 0x7511, 0xF1F8, 0x75C7, 0xF1F9, 0x7E52, 0xF1FA, 0x84B8, 0xF1FB, 0x8B49, 0xF1FC, 0x8D08, 0xF1FD, 0x4E4B, 0xF1FE, 0x53EA, + 0xF2A1, 0x54AB, 0xF2A2, 0x5730, 0xF2A3, 0x5740, 0xF2A4, 0x5FD7, 0xF2A5, 0x6301, 0xF2A6, 0x6307, 0xF2A7, 0x646F, 0xF2A8, 0x652F, + 0xF2A9, 0x65E8, 0xF2AA, 0x667A, 0xF2AB, 0x679D, 0xF2AC, 0x67B3, 0xF2AD, 0x6B62, 0xF2AE, 0x6C60, 0xF2AF, 0x6C9A, 0xF2B0, 0x6F2C, + 0xF2B1, 0x77E5, 0xF2B2, 0x7825, 0xF2B3, 0x7949, 0xF2B4, 0x7957, 0xF2B5, 0x7D19, 0xF2B6, 0x80A2, 0xF2B7, 0x8102, 0xF2B8, 0x81F3, + 0xF2B9, 0x829D, 0xF2BA, 0x82B7, 0xF2BB, 0x8718, 0xF2BC, 0x8A8C, 0xF2BD, 0xF9FC, 0xF2BE, 0x8D04, 0xF2BF, 0x8DBE, 0xF2C0, 0x9072, + 0xF2C1, 0x76F4, 0xF2C2, 0x7A19, 0xF2C3, 0x7A37, 0xF2C4, 0x7E54, 0xF2C5, 0x8077, 0xF2C6, 0x5507, 0xF2C7, 0x55D4, 0xF2C8, 0x5875, + 0xF2C9, 0x632F, 0xF2CA, 0x6422, 0xF2CB, 0x6649, 0xF2CC, 0x664B, 0xF2CD, 0x686D, 0xF2CE, 0x699B, 0xF2CF, 0x6B84, 0xF2D0, 0x6D25, + 0xF2D1, 0x6EB1, 0xF2D2, 0x73CD, 0xF2D3, 0x7468, 0xF2D4, 0x74A1, 0xF2D5, 0x755B, 0xF2D6, 0x75B9, 0xF2D7, 0x76E1, 0xF2D8, 0x771E, + 0xF2D9, 0x778B, 0xF2DA, 0x79E6, 0xF2DB, 0x7E09, 0xF2DC, 0x7E1D, 0xF2DD, 0x81FB, 0xF2DE, 0x852F, 0xF2DF, 0x8897, 0xF2E0, 0x8A3A, + 0xF2E1, 0x8CD1, 0xF2E2, 0x8EEB, 0xF2E3, 0x8FB0, 0xF2E4, 0x9032, 0xF2E5, 0x93AD, 0xF2E6, 0x9663, 0xF2E7, 0x9673, 0xF2E8, 0x9707, + 0xF2E9, 0x4F84, 0xF2EA, 0x53F1, 0xF2EB, 0x59EA, 0xF2EC, 0x5AC9, 0xF2ED, 0x5E19, 0xF2EE, 0x684E, 0xF2EF, 0x74C6, 0xF2F0, 0x75BE, + 0xF2F1, 0x79E9, 0xF2F2, 0x7A92, 0xF2F3, 0x81A3, 0xF2F4, 0x86ED, 0xF2F5, 0x8CEA, 0xF2F6, 0x8DCC, 0xF2F7, 0x8FED, 0xF2F8, 0x659F, + 0xF2F9, 0x6715, 0xF2FA, 0xF9FD, 0xF2FB, 0x57F7, 0xF2FC, 0x6F57, 0xF2FD, 0x7DDD, 0xF2FE, 0x8F2F, 0xF3A1, 0x93F6, 0xF3A2, 0x96C6, + 0xF3A3, 0x5FB5, 0xF3A4, 0x61F2, 0xF3A5, 0x6F84, 0xF3A6, 0x4E14, 0xF3A7, 0x4F98, 0xF3A8, 0x501F, 0xF3A9, 0x53C9, 0xF3AA, 0x55DF, + 0xF3AB, 0x5D6F, 0xF3AC, 0x5DEE, 0xF3AD, 0x6B21, 0xF3AE, 0x6B64, 0xF3AF, 0x78CB, 0xF3B0, 0x7B9A, 0xF3B1, 0xF9FE, 0xF3B2, 0x8E49, + 0xF3B3, 0x8ECA, 0xF3B4, 0x906E, 0xF3B5, 0x6349, 0xF3B6, 0x643E, 0xF3B7, 0x7740, 0xF3B8, 0x7A84, 0xF3B9, 0x932F, 0xF3BA, 0x947F, + 0xF3BB, 0x9F6A, 0xF3BC, 0x64B0, 0xF3BD, 0x6FAF, 0xF3BE, 0x71E6, 0xF3BF, 0x74A8, 0xF3C0, 0x74DA, 0xF3C1, 0x7AC4, 0xF3C2, 0x7C12, + 0xF3C3, 0x7E82, 0xF3C4, 0x7CB2, 0xF3C5, 0x7E98, 0xF3C6, 0x8B9A, 0xF3C7, 0x8D0A, 0xF3C8, 0x947D, 0xF3C9, 0x9910, 0xF3CA, 0x994C, + 0xF3CB, 0x5239, 0xF3CC, 0x5BDF, 0xF3CD, 0x64E6, 0xF3CE, 0x672D, 0xF3CF, 0x7D2E, 0xF3D0, 0x50ED, 0xF3D1, 0x53C3, 0xF3D2, 0x5879, + 0xF3D3, 0x6158, 0xF3D4, 0x6159, 0xF3D5, 0x61FA, 0xF3D6, 0x65AC, 0xF3D7, 0x7AD9, 0xF3D8, 0x8B92, 0xF3D9, 0x8B96, 0xF3DA, 0x5009, + 0xF3DB, 0x5021, 0xF3DC, 0x5275, 0xF3DD, 0x5531, 0xF3DE, 0x5A3C, 0xF3DF, 0x5EE0, 0xF3E0, 0x5F70, 0xF3E1, 0x6134, 0xF3E2, 0x655E, + 0xF3E3, 0x660C, 0xF3E4, 0x6636, 0xF3E5, 0x66A2, 0xF3E6, 0x69CD, 0xF3E7, 0x6EC4, 0xF3E8, 0x6F32, 0xF3E9, 0x7316, 0xF3EA, 0x7621, + 0xF3EB, 0x7A93, 0xF3EC, 0x8139, 0xF3ED, 0x8259, 0xF3EE, 0x83D6, 0xF3EF, 0x84BC, 0xF3F0, 0x50B5, 0xF3F1, 0x57F0, 0xF3F2, 0x5BC0, + 0xF3F3, 0x5BE8, 0xF3F4, 0x5F69, 0xF3F5, 0x63A1, 0xF3F6, 0x7826, 0xF3F7, 0x7DB5, 0xF3F8, 0x83DC, 0xF3F9, 0x8521, 0xF3FA, 0x91C7, + 0xF3FB, 0x91F5, 0xF3FC, 0x518A, 0xF3FD, 0x67F5, 0xF3FE, 0x7B56, 0xF4A1, 0x8CAC, 0xF4A2, 0x51C4, 0xF4A3, 0x59BB, 0xF4A4, 0x60BD, + 0xF4A5, 0x8655, 0xF4A6, 0x501C, 0xF4A7, 0xF9FF, 0xF4A8, 0x5254, 0xF4A9, 0x5C3A, 0xF4AA, 0x617D, 0xF4AB, 0x621A, 0xF4AC, 0x62D3, + 0xF4AD, 0x64F2, 0xF4AE, 0x65A5, 0xF4AF, 0x6ECC, 0xF4B0, 0x7620, 0xF4B1, 0x810A, 0xF4B2, 0x8E60, 0xF4B3, 0x965F, 0xF4B4, 0x96BB, + 0xF4B5, 0x4EDF, 0xF4B6, 0x5343, 0xF4B7, 0x5598, 0xF4B8, 0x5929, 0xF4B9, 0x5DDD, 0xF4BA, 0x64C5, 0xF4BB, 0x6CC9, 0xF4BC, 0x6DFA, + 0xF4BD, 0x7394, 0xF4BE, 0x7A7F, 0xF4BF, 0x821B, 0xF4C0, 0x85A6, 0xF4C1, 0x8CE4, 0xF4C2, 0x8E10, 0xF4C3, 0x9077, 0xF4C4, 0x91E7, + 0xF4C5, 0x95E1, 0xF4C6, 0x9621, 0xF4C7, 0x97C6, 0xF4C8, 0x51F8, 0xF4C9, 0x54F2, 0xF4CA, 0x5586, 0xF4CB, 0x5FB9, 0xF4CC, 0x64A4, + 0xF4CD, 0x6F88, 0xF4CE, 0x7DB4, 0xF4CF, 0x8F1F, 0xF4D0, 0x8F4D, 0xF4D1, 0x9435, 0xF4D2, 0x50C9, 0xF4D3, 0x5C16, 0xF4D4, 0x6CBE, + 0xF4D5, 0x6DFB, 0xF4D6, 0x751B, 0xF4D7, 0x77BB, 0xF4D8, 0x7C3D, 0xF4D9, 0x7C64, 0xF4DA, 0x8A79, 0xF4DB, 0x8AC2, 0xF4DC, 0x581E, + 0xF4DD, 0x59BE, 0xF4DE, 0x5E16, 0xF4DF, 0x6377, 0xF4E0, 0x7252, 0xF4E1, 0x758A, 0xF4E2, 0x776B, 0xF4E3, 0x8ADC, 0xF4E4, 0x8CBC, + 0xF4E5, 0x8F12, 0xF4E6, 0x5EF3, 0xF4E7, 0x6674, 0xF4E8, 0x6DF8, 0xF4E9, 0x807D, 0xF4EA, 0x83C1, 0xF4EB, 0x8ACB, 0xF4EC, 0x9751, + 0xF4ED, 0x9BD6, 0xF4EE, 0xFA00, 0xF4EF, 0x5243, 0xF4F0, 0x66FF, 0xF4F1, 0x6D95, 0xF4F2, 0x6EEF, 0xF4F3, 0x7DE0, 0xF4F4, 0x8AE6, + 0xF4F5, 0x902E, 0xF4F6, 0x905E, 0xF4F7, 0x9AD4, 0xF4F8, 0x521D, 0xF4F9, 0x527F, 0xF4FA, 0x54E8, 0xF4FB, 0x6194, 0xF4FC, 0x6284, + 0xF4FD, 0x62DB, 0xF4FE, 0x68A2, 0xF5A1, 0x6912, 0xF5A2, 0x695A, 0xF5A3, 0x6A35, 0xF5A4, 0x7092, 0xF5A5, 0x7126, 0xF5A6, 0x785D, + 0xF5A7, 0x7901, 0xF5A8, 0x790E, 0xF5A9, 0x79D2, 0xF5AA, 0x7A0D, 0xF5AB, 0x8096, 0xF5AC, 0x8278, 0xF5AD, 0x82D5, 0xF5AE, 0x8349, + 0xF5AF, 0x8549, 0xF5B0, 0x8C82, 0xF5B1, 0x8D85, 0xF5B2, 0x9162, 0xF5B3, 0x918B, 0xF5B4, 0x91AE, 0xF5B5, 0x4FC3, 0xF5B6, 0x56D1, + 0xF5B7, 0x71ED, 0xF5B8, 0x77D7, 0xF5B9, 0x8700, 0xF5BA, 0x89F8, 0xF5BB, 0x5BF8, 0xF5BC, 0x5FD6, 0xF5BD, 0x6751, 0xF5BE, 0x90A8, + 0xF5BF, 0x53E2, 0xF5C0, 0x585A, 0xF5C1, 0x5BF5, 0xF5C2, 0x60A4, 0xF5C3, 0x6181, 0xF5C4, 0x6460, 0xF5C5, 0x7E3D, 0xF5C6, 0x8070, + 0xF5C7, 0x8525, 0xF5C8, 0x9283, 0xF5C9, 0x64AE, 0xF5CA, 0x50AC, 0xF5CB, 0x5D14, 0xF5CC, 0x6700, 0xF5CD, 0x589C, 0xF5CE, 0x62BD, + 0xF5CF, 0x63A8, 0xF5D0, 0x690E, 0xF5D1, 0x6978, 0xF5D2, 0x6A1E, 0xF5D3, 0x6E6B, 0xF5D4, 0x76BA, 0xF5D5, 0x79CB, 0xF5D6, 0x82BB, + 0xF5D7, 0x8429, 0xF5D8, 0x8ACF, 0xF5D9, 0x8DA8, 0xF5DA, 0x8FFD, 0xF5DB, 0x9112, 0xF5DC, 0x914B, 0xF5DD, 0x919C, 0xF5DE, 0x9310, + 0xF5DF, 0x9318, 0xF5E0, 0x939A, 0xF5E1, 0x96DB, 0xF5E2, 0x9A36, 0xF5E3, 0x9C0D, 0xF5E4, 0x4E11, 0xF5E5, 0x755C, 0xF5E6, 0x795D, + 0xF5E7, 0x7AFA, 0xF5E8, 0x7B51, 0xF5E9, 0x7BC9, 0xF5EA, 0x7E2E, 0xF5EB, 0x84C4, 0xF5EC, 0x8E59, 0xF5ED, 0x8E74, 0xF5EE, 0x8EF8, + 0xF5EF, 0x9010, 0xF5F0, 0x6625, 0xF5F1, 0x693F, 0xF5F2, 0x7443, 0xF5F3, 0x51FA, 0xF5F4, 0x672E, 0xF5F5, 0x9EDC, 0xF5F6, 0x5145, + 0xF5F7, 0x5FE0, 0xF5F8, 0x6C96, 0xF5F9, 0x87F2, 0xF5FA, 0x885D, 0xF5FB, 0x8877, 0xF5FC, 0x60B4, 0xF5FD, 0x81B5, 0xF5FE, 0x8403, + 0xF6A1, 0x8D05, 0xF6A2, 0x53D6, 0xF6A3, 0x5439, 0xF6A4, 0x5634, 0xF6A5, 0x5A36, 0xF6A6, 0x5C31, 0xF6A7, 0x708A, 0xF6A8, 0x7FE0, + 0xF6A9, 0x805A, 0xF6AA, 0x8106, 0xF6AB, 0x81ED, 0xF6AC, 0x8DA3, 0xF6AD, 0x9189, 0xF6AE, 0x9A5F, 0xF6AF, 0x9DF2, 0xF6B0, 0x5074, + 0xF6B1, 0x4EC4, 0xF6B2, 0x53A0, 0xF6B3, 0x60FB, 0xF6B4, 0x6E2C, 0xF6B5, 0x5C64, 0xF6B6, 0x4F88, 0xF6B7, 0x5024, 0xF6B8, 0x55E4, + 0xF6B9, 0x5CD9, 0xF6BA, 0x5E5F, 0xF6BB, 0x6065, 0xF6BC, 0x6894, 0xF6BD, 0x6CBB, 0xF6BE, 0x6DC4, 0xF6BF, 0x71BE, 0xF6C0, 0x75D4, + 0xF6C1, 0x75F4, 0xF6C2, 0x7661, 0xF6C3, 0x7A1A, 0xF6C4, 0x7A49, 0xF6C5, 0x7DC7, 0xF6C6, 0x7DFB, 0xF6C7, 0x7F6E, 0xF6C8, 0x81F4, + 0xF6C9, 0x86A9, 0xF6CA, 0x8F1C, 0xF6CB, 0x96C9, 0xF6CC, 0x99B3, 0xF6CD, 0x9F52, 0xF6CE, 0x5247, 0xF6CF, 0x52C5, 0xF6D0, 0x98ED, + 0xF6D1, 0x89AA, 0xF6D2, 0x4E03, 0xF6D3, 0x67D2, 0xF6D4, 0x6F06, 0xF6D5, 0x4FB5, 0xF6D6, 0x5BE2, 0xF6D7, 0x6795, 0xF6D8, 0x6C88, + 0xF6D9, 0x6D78, 0xF6DA, 0x741B, 0xF6DB, 0x7827, 0xF6DC, 0x91DD, 0xF6DD, 0x937C, 0xF6DE, 0x87C4, 0xF6DF, 0x79E4, 0xF6E0, 0x7A31, + 0xF6E1, 0x5FEB, 0xF6E2, 0x4ED6, 0xF6E3, 0x54A4, 0xF6E4, 0x553E, 0xF6E5, 0x58AE, 0xF6E6, 0x59A5, 0xF6E7, 0x60F0, 0xF6E8, 0x6253, + 0xF6E9, 0x62D6, 0xF6EA, 0x6736, 0xF6EB, 0x6955, 0xF6EC, 0x8235, 0xF6ED, 0x9640, 0xF6EE, 0x99B1, 0xF6EF, 0x99DD, 0xF6F0, 0x502C, + 0xF6F1, 0x5353, 0xF6F2, 0x5544, 0xF6F3, 0x577C, 0xF6F4, 0xFA01, 0xF6F5, 0x6258, 0xF6F6, 0xFA02, 0xF6F7, 0x64E2, 0xF6F8, 0x666B, + 0xF6F9, 0x67DD, 0xF6FA, 0x6FC1, 0xF6FB, 0x6FEF, 0xF6FC, 0x7422, 0xF6FD, 0x7438, 0xF6FE, 0x8A17, 0xF7A1, 0x9438, 0xF7A2, 0x5451, + 0xF7A3, 0x5606, 0xF7A4, 0x5766, 0xF7A5, 0x5F48, 0xF7A6, 0x619A, 0xF7A7, 0x6B4E, 0xF7A8, 0x7058, 0xF7A9, 0x70AD, 0xF7AA, 0x7DBB, + 0xF7AB, 0x8A95, 0xF7AC, 0x596A, 0xF7AD, 0x812B, 0xF7AE, 0x63A2, 0xF7AF, 0x7708, 0xF7B0, 0x803D, 0xF7B1, 0x8CAA, 0xF7B2, 0x5854, + 0xF7B3, 0x642D, 0xF7B4, 0x69BB, 0xF7B5, 0x5B95, 0xF7B6, 0x5E11, 0xF7B7, 0x6E6F, 0xF7B8, 0xFA03, 0xF7B9, 0x8569, 0xF7BA, 0x514C, + 0xF7BB, 0x53F0, 0xF7BC, 0x592A, 0xF7BD, 0x6020, 0xF7BE, 0x614B, 0xF7BF, 0x6B86, 0xF7C0, 0x6C70, 0xF7C1, 0x6CF0, 0xF7C2, 0x7B1E, + 0xF7C3, 0x80CE, 0xF7C4, 0x82D4, 0xF7C5, 0x8DC6, 0xF7C6, 0x90B0, 0xF7C7, 0x98B1, 0xF7C8, 0xFA04, 0xF7C9, 0x64C7, 0xF7CA, 0x6FA4, + 0xF7CB, 0x6491, 0xF7CC, 0x6504, 0xF7CD, 0x514E, 0xF7CE, 0x5410, 0xF7CF, 0x571F, 0xF7D0, 0x8A0E, 0xF7D1, 0x615F, 0xF7D2, 0x6876, + 0xF7D3, 0xFA05, 0xF7D4, 0x75DB, 0xF7D5, 0x7B52, 0xF7D6, 0x7D71, 0xF7D7, 0x901A, 0xF7D8, 0x5806, 0xF7D9, 0x69CC, 0xF7DA, 0x817F, + 0xF7DB, 0x892A, 0xF7DC, 0x9000, 0xF7DD, 0x9839, 0xF7DE, 0x5078, 0xF7DF, 0x5957, 0xF7E0, 0x59AC, 0xF7E1, 0x6295, 0xF7E2, 0x900F, + 0xF7E3, 0x9B2A, 0xF7E4, 0x615D, 0xF7E5, 0x7279, 0xF7E6, 0x95D6, 0xF7E7, 0x5761, 0xF7E8, 0x5A46, 0xF7E9, 0x5DF4, 0xF7EA, 0x628A, + 0xF7EB, 0x64AD, 0xF7EC, 0x64FA, 0xF7ED, 0x6777, 0xF7EE, 0x6CE2, 0xF7EF, 0x6D3E, 0xF7F0, 0x722C, 0xF7F1, 0x7436, 0xF7F2, 0x7834, + 0xF7F3, 0x7F77, 0xF7F4, 0x82AD, 0xF7F5, 0x8DDB, 0xF7F6, 0x9817, 0xF7F7, 0x5224, 0xF7F8, 0x5742, 0xF7F9, 0x677F, 0xF7FA, 0x7248, + 0xF7FB, 0x74E3, 0xF7FC, 0x8CA9, 0xF7FD, 0x8FA6, 0xF7FE, 0x9211, 0xF8A1, 0x962A, 0xF8A2, 0x516B, 0xF8A3, 0x53ED, 0xF8A4, 0x634C, + 0xF8A5, 0x4F69, 0xF8A6, 0x5504, 0xF8A7, 0x6096, 0xF8A8, 0x6557, 0xF8A9, 0x6C9B, 0xF8AA, 0x6D7F, 0xF8AB, 0x724C, 0xF8AC, 0x72FD, + 0xF8AD, 0x7A17, 0xF8AE, 0x8987, 0xF8AF, 0x8C9D, 0xF8B0, 0x5F6D, 0xF8B1, 0x6F8E, 0xF8B2, 0x70F9, 0xF8B3, 0x81A8, 0xF8B4, 0x610E, + 0xF8B5, 0x4FBF, 0xF8B6, 0x504F, 0xF8B7, 0x6241, 0xF8B8, 0x7247, 0xF8B9, 0x7BC7, 0xF8BA, 0x7DE8, 0xF8BB, 0x7FE9, 0xF8BC, 0x904D, + 0xF8BD, 0x97AD, 0xF8BE, 0x9A19, 0xF8BF, 0x8CB6, 0xF8C0, 0x576A, 0xF8C1, 0x5E73, 0xF8C2, 0x67B0, 0xF8C3, 0x840D, 0xF8C4, 0x8A55, + 0xF8C5, 0x5420, 0xF8C6, 0x5B16, 0xF8C7, 0x5E63, 0xF8C8, 0x5EE2, 0xF8C9, 0x5F0A, 0xF8CA, 0x6583, 0xF8CB, 0x80BA, 0xF8CC, 0x853D, + 0xF8CD, 0x9589, 0xF8CE, 0x965B, 0xF8CF, 0x4F48, 0xF8D0, 0x5305, 0xF8D1, 0x530D, 0xF8D2, 0x530F, 0xF8D3, 0x5486, 0xF8D4, 0x54FA, + 0xF8D5, 0x5703, 0xF8D6, 0x5E03, 0xF8D7, 0x6016, 0xF8D8, 0x629B, 0xF8D9, 0x62B1, 0xF8DA, 0x6355, 0xF8DB, 0xFA06, 0xF8DC, 0x6CE1, + 0xF8DD, 0x6D66, 0xF8DE, 0x75B1, 0xF8DF, 0x7832, 0xF8E0, 0x80DE, 0xF8E1, 0x812F, 0xF8E2, 0x82DE, 0xF8E3, 0x8461, 0xF8E4, 0x84B2, + 0xF8E5, 0x888D, 0xF8E6, 0x8912, 0xF8E7, 0x900B, 0xF8E8, 0x92EA, 0xF8E9, 0x98FD, 0xF8EA, 0x9B91, 0xF8EB, 0x5E45, 0xF8EC, 0x66B4, + 0xF8ED, 0x66DD, 0xF8EE, 0x7011, 0xF8EF, 0x7206, 0xF8F0, 0xFA07, 0xF8F1, 0x4FF5, 0xF8F2, 0x527D, 0xF8F3, 0x5F6A, 0xF8F4, 0x6153, + 0xF8F5, 0x6753, 0xF8F6, 0x6A19, 0xF8F7, 0x6F02, 0xF8F8, 0x74E2, 0xF8F9, 0x7968, 0xF8FA, 0x8868, 0xF8FB, 0x8C79, 0xF8FC, 0x98C7, + 0xF8FD, 0x98C4, 0xF8FE, 0x9A43, 0xF9A1, 0x54C1, 0xF9A2, 0x7A1F, 0xF9A3, 0x6953, 0xF9A4, 0x8AF7, 0xF9A5, 0x8C4A, 0xF9A6, 0x98A8, + 0xF9A7, 0x99AE, 0xF9A8, 0x5F7C, 0xF9A9, 0x62AB, 0xF9AA, 0x75B2, 0xF9AB, 0x76AE, 0xF9AC, 0x88AB, 0xF9AD, 0x907F, 0xF9AE, 0x9642, + 0xF9AF, 0x5339, 0xF9B0, 0x5F3C, 0xF9B1, 0x5FC5, 0xF9B2, 0x6CCC, 0xF9B3, 0x73CC, 0xF9B4, 0x7562, 0xF9B5, 0x758B, 0xF9B6, 0x7B46, + 0xF9B7, 0x82FE, 0xF9B8, 0x999D, 0xF9B9, 0x4E4F, 0xF9BA, 0x903C, 0xF9BB, 0x4E0B, 0xF9BC, 0x4F55, 0xF9BD, 0x53A6, 0xF9BE, 0x590F, + 0xF9BF, 0x5EC8, 0xF9C0, 0x6630, 0xF9C1, 0x6CB3, 0xF9C2, 0x7455, 0xF9C3, 0x8377, 0xF9C4, 0x8766, 0xF9C5, 0x8CC0, 0xF9C6, 0x9050, + 0xF9C7, 0x971E, 0xF9C8, 0x9C15, 0xF9C9, 0x58D1, 0xF9CA, 0x5B78, 0xF9CB, 0x8650, 0xF9CC, 0x8B14, 0xF9CD, 0x9DB4, 0xF9CE, 0x5BD2, + 0xF9CF, 0x6068, 0xF9D0, 0x608D, 0xF9D1, 0x65F1, 0xF9D2, 0x6C57, 0xF9D3, 0x6F22, 0xF9D4, 0x6FA3, 0xF9D5, 0x701A, 0xF9D6, 0x7F55, + 0xF9D7, 0x7FF0, 0xF9D8, 0x9591, 0xF9D9, 0x9592, 0xF9DA, 0x9650, 0xF9DB, 0x97D3, 0xF9DC, 0x5272, 0xF9DD, 0x8F44, 0xF9DE, 0x51FD, + 0xF9DF, 0x542B, 0xF9E0, 0x54B8, 0xF9E1, 0x5563, 0xF9E2, 0x558A, 0xF9E3, 0x6ABB, 0xF9E4, 0x6DB5, 0xF9E5, 0x7DD8, 0xF9E6, 0x8266, + 0xF9E7, 0x929C, 0xF9E8, 0x9677, 0xF9E9, 0x9E79, 0xF9EA, 0x5408, 0xF9EB, 0x54C8, 0xF9EC, 0x76D2, 0xF9ED, 0x86E4, 0xF9EE, 0x95A4, + 0xF9EF, 0x95D4, 0xF9F0, 0x965C, 0xF9F1, 0x4EA2, 0xF9F2, 0x4F09, 0xF9F3, 0x59EE, 0xF9F4, 0x5AE6, 0xF9F5, 0x5DF7, 0xF9F6, 0x6052, + 0xF9F7, 0x6297, 0xF9F8, 0x676D, 0xF9F9, 0x6841, 0xF9FA, 0x6C86, 0xF9FB, 0x6E2F, 0xF9FC, 0x7F38, 0xF9FD, 0x809B, 0xF9FE, 0x822A, + 0xFAA1, 0xFA08, 0xFAA2, 0xFA09, 0xFAA3, 0x9805, 0xFAA4, 0x4EA5, 0xFAA5, 0x5055, 0xFAA6, 0x54B3, 0xFAA7, 0x5793, 0xFAA8, 0x595A, + 0xFAA9, 0x5B69, 0xFAAA, 0x5BB3, 0xFAAB, 0x61C8, 0xFAAC, 0x6977, 0xFAAD, 0x6D77, 0xFAAE, 0x7023, 0xFAAF, 0x87F9, 0xFAB0, 0x89E3, + 0xFAB1, 0x8A72, 0xFAB2, 0x8AE7, 0xFAB3, 0x9082, 0xFAB4, 0x99ED, 0xFAB5, 0x9AB8, 0xFAB6, 0x52BE, 0xFAB7, 0x6838, 0xFAB8, 0x5016, + 0xFAB9, 0x5E78, 0xFABA, 0x674F, 0xFABB, 0x8347, 0xFABC, 0x884C, 0xFABD, 0x4EAB, 0xFABE, 0x5411, 0xFABF, 0x56AE, 0xFAC0, 0x73E6, + 0xFAC1, 0x9115, 0xFAC2, 0x97FF, 0xFAC3, 0x9909, 0xFAC4, 0x9957, 0xFAC5, 0x9999, 0xFAC6, 0x5653, 0xFAC7, 0x589F, 0xFAC8, 0x865B, + 0xFAC9, 0x8A31, 0xFACA, 0x61B2, 0xFACB, 0x6AF6, 0xFACC, 0x737B, 0xFACD, 0x8ED2, 0xFACE, 0x6B47, 0xFACF, 0x96AA, 0xFAD0, 0x9A57, + 0xFAD1, 0x5955, 0xFAD2, 0x7200, 0xFAD3, 0x8D6B, 0xFAD4, 0x9769, 0xFAD5, 0x4FD4, 0xFAD6, 0x5CF4, 0xFAD7, 0x5F26, 0xFAD8, 0x61F8, + 0xFAD9, 0x665B, 0xFADA, 0x6CEB, 0xFADB, 0x70AB, 0xFADC, 0x7384, 0xFADD, 0x73B9, 0xFADE, 0x73FE, 0xFADF, 0x7729, 0xFAE0, 0x774D, + 0xFAE1, 0x7D43, 0xFAE2, 0x7D62, 0xFAE3, 0x7E23, 0xFAE4, 0x8237, 0xFAE5, 0x8852, 0xFAE6, 0xFA0A, 0xFAE7, 0x8CE2, 0xFAE8, 0x9249, + 0xFAE9, 0x986F, 0xFAEA, 0x5B51, 0xFAEB, 0x7A74, 0xFAEC, 0x8840, 0xFAED, 0x9801, 0xFAEE, 0x5ACC, 0xFAEF, 0x4FE0, 0xFAF0, 0x5354, + 0xFAF1, 0x593E, 0xFAF2, 0x5CFD, 0xFAF3, 0x633E, 0xFAF4, 0x6D79, 0xFAF5, 0x72F9, 0xFAF6, 0x8105, 0xFAF7, 0x8107, 0xFAF8, 0x83A2, + 0xFAF9, 0x92CF, 0xFAFA, 0x9830, 0xFAFB, 0x4EA8, 0xFAFC, 0x5144, 0xFAFD, 0x5211, 0xFAFE, 0x578B, 0xFBA1, 0x5F62, 0xFBA2, 0x6CC2, + 0xFBA3, 0x6ECE, 0xFBA4, 0x7005, 0xFBA5, 0x7050, 0xFBA6, 0x70AF, 0xFBA7, 0x7192, 0xFBA8, 0x73E9, 0xFBA9, 0x7469, 0xFBAA, 0x834A, + 0xFBAB, 0x87A2, 0xFBAC, 0x8861, 0xFBAD, 0x9008, 0xFBAE, 0x90A2, 0xFBAF, 0x93A3, 0xFBB0, 0x99A8, 0xFBB1, 0x516E, 0xFBB2, 0x5F57, + 0xFBB3, 0x60E0, 0xFBB4, 0x6167, 0xFBB5, 0x66B3, 0xFBB6, 0x8559, 0xFBB7, 0x8E4A, 0xFBB8, 0x91AF, 0xFBB9, 0x978B, 0xFBBA, 0x4E4E, + 0xFBBB, 0x4E92, 0xFBBC, 0x547C, 0xFBBD, 0x58D5, 0xFBBE, 0x58FA, 0xFBBF, 0x597D, 0xFBC0, 0x5CB5, 0xFBC1, 0x5F27, 0xFBC2, 0x6236, + 0xFBC3, 0x6248, 0xFBC4, 0x660A, 0xFBC5, 0x6667, 0xFBC6, 0x6BEB, 0xFBC7, 0x6D69, 0xFBC8, 0x6DCF, 0xFBC9, 0x6E56, 0xFBCA, 0x6EF8, + 0xFBCB, 0x6F94, 0xFBCC, 0x6FE0, 0xFBCD, 0x6FE9, 0xFBCE, 0x705D, 0xFBCF, 0x72D0, 0xFBD0, 0x7425, 0xFBD1, 0x745A, 0xFBD2, 0x74E0, + 0xFBD3, 0x7693, 0xFBD4, 0x795C, 0xFBD5, 0x7CCA, 0xFBD6, 0x7E1E, 0xFBD7, 0x80E1, 0xFBD8, 0x82A6, 0xFBD9, 0x846B, 0xFBDA, 0x84BF, + 0xFBDB, 0x864E, 0xFBDC, 0x865F, 0xFBDD, 0x8774, 0xFBDE, 0x8B77, 0xFBDF, 0x8C6A, 0xFBE0, 0x93AC, 0xFBE1, 0x9800, 0xFBE2, 0x9865, + 0xFBE3, 0x60D1, 0xFBE4, 0x6216, 0xFBE5, 0x9177, 0xFBE6, 0x5A5A, 0xFBE7, 0x660F, 0xFBE8, 0x6DF7, 0xFBE9, 0x6E3E, 0xFBEA, 0x743F, + 0xFBEB, 0x9B42, 0xFBEC, 0x5FFD, 0xFBED, 0x60DA, 0xFBEE, 0x7B0F, 0xFBEF, 0x54C4, 0xFBF0, 0x5F18, 0xFBF1, 0x6C5E, 0xFBF2, 0x6CD3, + 0xFBF3, 0x6D2A, 0xFBF4, 0x70D8, 0xFBF5, 0x7D05, 0xFBF6, 0x8679, 0xFBF7, 0x8A0C, 0xFBF8, 0x9D3B, 0xFBF9, 0x5316, 0xFBFA, 0x548C, + 0xFBFB, 0x5B05, 0xFBFC, 0x6A3A, 0xFBFD, 0x706B, 0xFBFE, 0x7575, 0xFCA1, 0x798D, 0xFCA2, 0x79BE, 0xFCA3, 0x82B1, 0xFCA4, 0x83EF, + 0xFCA5, 0x8A71, 0xFCA6, 0x8B41, 0xFCA7, 0x8CA8, 0xFCA8, 0x9774, 0xFCA9, 0xFA0B, 0xFCAA, 0x64F4, 0xFCAB, 0x652B, 0xFCAC, 0x78BA, + 0xFCAD, 0x78BB, 0xFCAE, 0x7A6B, 0xFCAF, 0x4E38, 0xFCB0, 0x559A, 0xFCB1, 0x5950, 0xFCB2, 0x5BA6, 0xFCB3, 0x5E7B, 0xFCB4, 0x60A3, + 0xFCB5, 0x63DB, 0xFCB6, 0x6B61, 0xFCB7, 0x6665, 0xFCB8, 0x6853, 0xFCB9, 0x6E19, 0xFCBA, 0x7165, 0xFCBB, 0x74B0, 0xFCBC, 0x7D08, + 0xFCBD, 0x9084, 0xFCBE, 0x9A69, 0xFCBF, 0x9C25, 0xFCC0, 0x6D3B, 0xFCC1, 0x6ED1, 0xFCC2, 0x733E, 0xFCC3, 0x8C41, 0xFCC4, 0x95CA, + 0xFCC5, 0x51F0, 0xFCC6, 0x5E4C, 0xFCC7, 0x5FA8, 0xFCC8, 0x604D, 0xFCC9, 0x60F6, 0xFCCA, 0x6130, 0xFCCB, 0x614C, 0xFCCC, 0x6643, + 0xFCCD, 0x6644, 0xFCCE, 0x69A5, 0xFCCF, 0x6CC1, 0xFCD0, 0x6E5F, 0xFCD1, 0x6EC9, 0xFCD2, 0x6F62, 0xFCD3, 0x714C, 0xFCD4, 0x749C, + 0xFCD5, 0x7687, 0xFCD6, 0x7BC1, 0xFCD7, 0x7C27, 0xFCD8, 0x8352, 0xFCD9, 0x8757, 0xFCDA, 0x9051, 0xFCDB, 0x968D, 0xFCDC, 0x9EC3, + 0xFCDD, 0x532F, 0xFCDE, 0x56DE, 0xFCDF, 0x5EFB, 0xFCE0, 0x5F8A, 0xFCE1, 0x6062, 0xFCE2, 0x6094, 0xFCE3, 0x61F7, 0xFCE4, 0x6666, + 0xFCE5, 0x6703, 0xFCE6, 0x6A9C, 0xFCE7, 0x6DEE, 0xFCE8, 0x6FAE, 0xFCE9, 0x7070, 0xFCEA, 0x736A, 0xFCEB, 0x7E6A, 0xFCEC, 0x81BE, + 0xFCED, 0x8334, 0xFCEE, 0x86D4, 0xFCEF, 0x8AA8, 0xFCF0, 0x8CC4, 0xFCF1, 0x5283, 0xFCF2, 0x7372, 0xFCF3, 0x5B96, 0xFCF4, 0x6A6B, + 0xFCF5, 0x9404, 0xFCF6, 0x54EE, 0xFCF7, 0x5686, 0xFCF8, 0x5B5D, 0xFCF9, 0x6548, 0xFCFA, 0x6585, 0xFCFB, 0x66C9, 0xFCFC, 0x689F, + 0xFCFD, 0x6D8D, 0xFCFE, 0x6DC6, 0xFDA1, 0x723B, 0xFDA2, 0x80B4, 0xFDA3, 0x9175, 0xFDA4, 0x9A4D, 0xFDA5, 0x4FAF, 0xFDA6, 0x5019, + 0xFDA7, 0x539A, 0xFDA8, 0x540E, 0xFDA9, 0x543C, 0xFDAA, 0x5589, 0xFDAB, 0x55C5, 0xFDAC, 0x5E3F, 0xFDAD, 0x5F8C, 0xFDAE, 0x673D, + 0xFDAF, 0x7166, 0xFDB0, 0x73DD, 0xFDB1, 0x9005, 0xFDB2, 0x52DB, 0xFDB3, 0x52F3, 0xFDB4, 0x5864, 0xFDB5, 0x58CE, 0xFDB6, 0x7104, + 0xFDB7, 0x718F, 0xFDB8, 0x71FB, 0xFDB9, 0x85B0, 0xFDBA, 0x8A13, 0xFDBB, 0x6688, 0xFDBC, 0x85A8, 0xFDBD, 0x55A7, 0xFDBE, 0x6684, + 0xFDBF, 0x714A, 0xFDC0, 0x8431, 0xFDC1, 0x5349, 0xFDC2, 0x5599, 0xFDC3, 0x6BC1, 0xFDC4, 0x5F59, 0xFDC5, 0x5FBD, 0xFDC6, 0x63EE, + 0xFDC7, 0x6689, 0xFDC8, 0x7147, 0xFDC9, 0x8AF1, 0xFDCA, 0x8F1D, 0xFDCB, 0x9EBE, 0xFDCC, 0x4F11, 0xFDCD, 0x643A, 0xFDCE, 0x70CB, + 0xFDCF, 0x7566, 0xFDD0, 0x8667, 0xFDD1, 0x6064, 0xFDD2, 0x8B4E, 0xFDD3, 0x9DF8, 0xFDD4, 0x5147, 0xFDD5, 0x51F6, 0xFDD6, 0x5308, + 0xFDD7, 0x6D36, 0xFDD8, 0x80F8, 0xFDD9, 0x9ED1, 0xFDDA, 0x6615, 0xFDDB, 0x6B23, 0xFDDC, 0x7098, 0xFDDD, 0x75D5, 0xFDDE, 0x5403, + 0xFDDF, 0x5C79, 0xFDE0, 0x7D07, 0xFDE1, 0x8A16, 0xFDE2, 0x6B20, 0xFDE3, 0x6B3D, 0xFDE4, 0x6B46, 0xFDE5, 0x5438, 0xFDE6, 0x6070, + 0xFDE7, 0x6D3D, 0xFDE8, 0x7FD5, 0xFDE9, 0x8208, 0xFDEA, 0x50D6, 0xFDEB, 0x51DE, 0xFDEC, 0x559C, 0xFDED, 0x566B, 0xFDEE, 0x56CD, + 0xFDEF, 0x59EC, 0xFDF0, 0x5B09, 0xFDF1, 0x5E0C, 0xFDF2, 0x6199, 0xFDF3, 0x6198, 0xFDF4, 0x6231, 0xFDF5, 0x665E, 0xFDF6, 0x66E6, + 0xFDF7, 0x7199, 0xFDF8, 0x71B9, 0xFDF9, 0x71BA, 0xFDFA, 0x72A7, 0xFDFB, 0x79A7, 0xFDFC, 0x7A00, 0xFDFD, 0x7FB2, 0xFDFE, 0x8A70, + 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 950 || FF_CODE_PAGE == 0 /* Traditional Chinese */ +static +const WCHAR uni2oem950[] = { /* Unicode --> Big5 pairs */ + 0x00A7, 0xA1B1, 0x00AF, 0xA1C2, 0x00B0, 0xA258, 0x00B1, 0xA1D3, 0x00B7, 0xA150, 0x00D7, 0xA1D1, 0x00F7, 0xA1D2, 0x02C7, 0xA3BE, + 0x02C9, 0xA3BC, 0x02CA, 0xA3BD, 0x02CB, 0xA3BF, 0x02CD, 0xA1C5, 0x02D9, 0xA3BB, 0x0391, 0xA344, 0x0392, 0xA345, 0x0393, 0xA346, + 0x0394, 0xA347, 0x0395, 0xA348, 0x0396, 0xA349, 0x0397, 0xA34A, 0x0398, 0xA34B, 0x0399, 0xA34C, 0x039A, 0xA34D, 0x039B, 0xA34E, + 0x039C, 0xA34F, 0x039D, 0xA350, 0x039E, 0xA351, 0x039F, 0xA352, 0x03A0, 0xA353, 0x03A1, 0xA354, 0x03A3, 0xA355, 0x03A4, 0xA356, + 0x03A5, 0xA357, 0x03A6, 0xA358, 0x03A7, 0xA359, 0x03A8, 0xA35A, 0x03A9, 0xA35B, 0x03B1, 0xA35C, 0x03B2, 0xA35D, 0x03B3, 0xA35E, + 0x03B4, 0xA35F, 0x03B5, 0xA360, 0x03B6, 0xA361, 0x03B7, 0xA362, 0x03B8, 0xA363, 0x03B9, 0xA364, 0x03BA, 0xA365, 0x03BB, 0xA366, + 0x03BC, 0xA367, 0x03BD, 0xA368, 0x03BE, 0xA369, 0x03BF, 0xA36A, 0x03C0, 0xA36B, 0x03C1, 0xA36C, 0x03C3, 0xA36D, 0x03C4, 0xA36E, + 0x03C5, 0xA36F, 0x03C6, 0xA370, 0x03C7, 0xA371, 0x03C8, 0xA372, 0x03C9, 0xA373, 0x2013, 0xA156, 0x2014, 0xA158, 0x2018, 0xA1A5, + 0x2019, 0xA1A6, 0x201C, 0xA1A7, 0x201D, 0xA1A8, 0x2025, 0xA14C, 0x2026, 0xA14B, 0x2027, 0xA145, 0x2032, 0xA1AC, 0x2035, 0xA1AB, + 0x203B, 0xA1B0, 0x20AC, 0xA3E1, 0x2103, 0xA24A, 0x2105, 0xA1C1, 0x2109, 0xA24B, 0x2160, 0xA2B9, 0x2161, 0xA2BA, 0x2162, 0xA2BB, + 0x2163, 0xA2BC, 0x2164, 0xA2BD, 0x2165, 0xA2BE, 0x2166, 0xA2BF, 0x2167, 0xA2C0, 0x2168, 0xA2C1, 0x2169, 0xA2C2, 0x2190, 0xA1F6, + 0x2191, 0xA1F4, 0x2192, 0xA1F7, 0x2193, 0xA1F5, 0x2196, 0xA1F8, 0x2197, 0xA1F9, 0x2198, 0xA1FB, 0x2199, 0xA1FA, 0x2215, 0xA241, + 0x221A, 0xA1D4, 0x221E, 0xA1DB, 0x221F, 0xA1E8, 0x2220, 0xA1E7, 0x2223, 0xA1FD, 0x2225, 0xA1FC, 0x2229, 0xA1E4, 0x222A, 0xA1E5, + 0x222B, 0xA1EC, 0x222E, 0xA1ED, 0x2234, 0xA1EF, 0x2235, 0xA1EE, 0x2252, 0xA1DC, 0x2260, 0xA1DA, 0x2261, 0xA1DD, 0x2266, 0xA1D8, + 0x2267, 0xA1D9, 0x2295, 0xA1F2, 0x2299, 0xA1F3, 0x22A5, 0xA1E6, 0x22BF, 0xA1E9, 0x2500, 0xA277, 0x2502, 0xA278, 0x250C, 0xA27A, + 0x2510, 0xA27B, 0x2514, 0xA27C, 0x2518, 0xA27D, 0x251C, 0xA275, 0x2524, 0xA274, 0x252C, 0xA273, 0x2534, 0xA272, 0x253C, 0xA271, + 0x2550, 0xA2A4, 0x2550, 0xF9F9, 0x2551, 0xF9F8, 0x2552, 0xF9E6, 0x2553, 0xF9EF, 0x2554, 0xF9DD, 0x2555, 0xF9E8, 0x2556, 0xF9F1, + 0x2557, 0xF9DF, 0x2558, 0xF9EC, 0x2559, 0xF9F5, 0x255A, 0xF9E3, 0x255B, 0xF9EE, 0x255C, 0xF9F7, 0x255D, 0xF9E5, 0x255E, 0xA2A5, + 0x255E, 0xF9E9, 0x255F, 0xF9F2, 0x2560, 0xF9E0, 0x2561, 0xA2A7, 0x2561, 0xF9EB, 0x2562, 0xF9F4, 0x2563, 0xF9E2, 0x2564, 0xF9E7, + 0x2565, 0xF9F0, 0x2566, 0xF9DE, 0x2567, 0xF9ED, 0x2568, 0xF9F6, 0x2569, 0xF9E4, 0x256A, 0xA2A6, 0x256A, 0xF9EA, 0x256B, 0xF9F3, + 0x256C, 0xF9E1, 0x256D, 0xA27E, 0x256D, 0xF9FA, 0x256E, 0xA2A1, 0x256E, 0xF9FB, 0x256F, 0xA2A3, 0x256F, 0xF9FD, 0x2570, 0xA2A2, + 0x2570, 0xF9FC, 0x2571, 0xA2AC, 0x2572, 0xA2AD, 0x2573, 0xA2AE, 0x2574, 0xA15A, 0x2581, 0xA262, 0x2582, 0xA263, 0x2583, 0xA264, + 0x2584, 0xA265, 0x2585, 0xA266, 0x2586, 0xA267, 0x2587, 0xA268, 0x2588, 0xA269, 0x2589, 0xA270, 0x258A, 0xA26F, 0x258B, 0xA26E, + 0x258C, 0xA26D, 0x258D, 0xA26C, 0x258E, 0xA26B, 0x258F, 0xA26A, 0x2593, 0xF9FE, 0x2594, 0xA276, 0x2595, 0xA279, 0x25A0, 0xA1BD, + 0x25A1, 0xA1BC, 0x25B2, 0xA1B6, 0x25B3, 0xA1B5, 0x25BC, 0xA1BF, 0x25BD, 0xA1BE, 0x25C6, 0xA1BB, 0x25C7, 0xA1BA, 0x25CB, 0xA1B3, + 0x25CE, 0xA1B7, 0x25CF, 0xA1B4, 0x25E2, 0xA2A8, 0x25E3, 0xA2A9, 0x25E4, 0xA2AB, 0x25E5, 0xA2AA, 0x2605, 0xA1B9, 0x2606, 0xA1B8, + 0x2640, 0xA1F0, 0x2642, 0xA1F1, 0x3000, 0xA140, 0x3001, 0xA142, 0x3002, 0xA143, 0x3003, 0xA1B2, 0x3008, 0xA171, 0x3009, 0xA172, + 0x300A, 0xA16D, 0x300B, 0xA16E, 0x300C, 0xA175, 0x300D, 0xA176, 0x300E, 0xA179, 0x300F, 0xA17A, 0x3010, 0xA169, 0x3011, 0xA16A, + 0x3012, 0xA245, 0x3014, 0xA165, 0x3015, 0xA166, 0x301D, 0xA1A9, 0x301E, 0xA1AA, 0x3021, 0xA2C3, 0x3022, 0xA2C4, 0x3023, 0xA2C5, + 0x3024, 0xA2C6, 0x3025, 0xA2C7, 0x3026, 0xA2C8, 0x3027, 0xA2C9, 0x3028, 0xA2CA, 0x3029, 0xA2CB, 0x3105, 0xA374, 0x3106, 0xA375, + 0x3107, 0xA376, 0x3108, 0xA377, 0x3109, 0xA378, 0x310A, 0xA379, 0x310B, 0xA37A, 0x310C, 0xA37B, 0x310D, 0xA37C, 0x310E, 0xA37D, + 0x310F, 0xA37E, 0x3110, 0xA3A1, 0x3111, 0xA3A2, 0x3112, 0xA3A3, 0x3113, 0xA3A4, 0x3114, 0xA3A5, 0x3115, 0xA3A6, 0x3116, 0xA3A7, + 0x3117, 0xA3A8, 0x3118, 0xA3A9, 0x3119, 0xA3AA, 0x311A, 0xA3AB, 0x311B, 0xA3AC, 0x311C, 0xA3AD, 0x311D, 0xA3AE, 0x311E, 0xA3AF, + 0x311F, 0xA3B0, 0x3120, 0xA3B1, 0x3121, 0xA3B2, 0x3122, 0xA3B3, 0x3123, 0xA3B4, 0x3124, 0xA3B5, 0x3125, 0xA3B6, 0x3126, 0xA3B7, + 0x3127, 0xA3B8, 0x3128, 0xA3B9, 0x3129, 0xA3BA, 0x32A3, 0xA1C0, 0x338E, 0xA255, 0x338F, 0xA256, 0x339C, 0xA250, 0x339D, 0xA251, + 0x339E, 0xA252, 0x33A1, 0xA254, 0x33C4, 0xA257, 0x33CE, 0xA253, 0x33D1, 0xA1EB, 0x33D2, 0xA1EA, 0x33D5, 0xA24F, 0x4E00, 0xA440, + 0x4E01, 0xA442, 0x4E03, 0xA443, 0x4E07, 0xC945, 0x4E08, 0xA456, 0x4E09, 0xA454, 0x4E0A, 0xA457, 0x4E0B, 0xA455, 0x4E0C, 0xC946, + 0x4E0D, 0xA4A3, 0x4E0E, 0xC94F, 0x4E0F, 0xC94D, 0x4E10, 0xA4A2, 0x4E11, 0xA4A1, 0x4E14, 0xA542, 0x4E15, 0xA541, 0x4E16, 0xA540, + 0x4E18, 0xA543, 0x4E19, 0xA4FE, 0x4E1E, 0xA5E0, 0x4E1F, 0xA5E1, 0x4E26, 0xA8C3, 0x4E2B, 0xA458, 0x4E2D, 0xA4A4, 0x4E2E, 0xC950, + 0x4E30, 0xA4A5, 0x4E31, 0xC963, 0x4E32, 0xA6EA, 0x4E33, 0xCBB1, 0x4E38, 0xA459, 0x4E39, 0xA4A6, 0x4E3B, 0xA544, 0x4E3C, 0xC964, + 0x4E42, 0xC940, 0x4E43, 0xA444, 0x4E45, 0xA45B, 0x4E47, 0xC947, 0x4E48, 0xA45C, 0x4E4B, 0xA4A7, 0x4E4D, 0xA545, 0x4E4E, 0xA547, + 0x4E4F, 0xA546, 0x4E52, 0xA5E2, 0x4E53, 0xA5E3, 0x4E56, 0xA8C4, 0x4E58, 0xADBC, 0x4E59, 0xA441, 0x4E5C, 0xC941, 0x4E5D, 0xA445, + 0x4E5E, 0xA45E, 0x4E5F, 0xA45D, 0x4E69, 0xA5E4, 0x4E73, 0xA8C5, 0x4E7E, 0xB0AE, 0x4E7F, 0xD44B, 0x4E82, 0xB6C3, 0x4E83, 0xDCB1, + 0x4E84, 0xDCB2, 0x4E86, 0xA446, 0x4E88, 0xA4A9, 0x4E8B, 0xA8C6, 0x4E8C, 0xA447, 0x4E8D, 0xC948, 0x4E8E, 0xA45F, 0x4E91, 0xA4AA, + 0x4E92, 0xA4AC, 0x4E93, 0xC951, 0x4E94, 0xA4AD, 0x4E95, 0xA4AB, 0x4E99, 0xA5E5, 0x4E9B, 0xA8C7, 0x4E9E, 0xA8C8, 0x4E9F, 0xAB45, + 0x4EA1, 0xA460, 0x4EA2, 0xA4AE, 0x4EA4, 0xA5E6, 0x4EA5, 0xA5E8, 0x4EA6, 0xA5E7, 0x4EA8, 0xA6EB, 0x4EAB, 0xA8C9, 0x4EAC, 0xA8CA, + 0x4EAD, 0xAB46, 0x4EAE, 0xAB47, 0x4EB3, 0xADBD, 0x4EB6, 0xDCB3, 0x4EB9, 0xF6D6, 0x4EBA, 0xA448, 0x4EC0, 0xA4B0, 0x4EC1, 0xA4AF, + 0x4EC2, 0xC952, 0x4EC3, 0xA4B1, 0x4EC4, 0xA4B7, 0x4EC6, 0xA4B2, 0x4EC7, 0xA4B3, 0x4EC8, 0xC954, 0x4EC9, 0xC953, 0x4ECA, 0xA4B5, + 0x4ECB, 0xA4B6, 0x4ECD, 0xA4B4, 0x4ED4, 0xA54A, 0x4ED5, 0xA54B, 0x4ED6, 0xA54C, 0x4ED7, 0xA54D, 0x4ED8, 0xA549, 0x4ED9, 0xA550, + 0x4EDA, 0xC96A, 0x4EDC, 0xC966, 0x4EDD, 0xC969, 0x4EDE, 0xA551, 0x4EDF, 0xA561, 0x4EE1, 0xC968, 0x4EE3, 0xA54E, 0x4EE4, 0xA54F, + 0x4EE5, 0xA548, 0x4EE8, 0xC965, 0x4EE9, 0xC967, 0x4EF0, 0xA5F5, 0x4EF1, 0xC9B0, 0x4EF2, 0xA5F2, 0x4EF3, 0xA5F6, 0x4EF4, 0xC9BA, + 0x4EF5, 0xC9AE, 0x4EF6, 0xA5F3, 0x4EF7, 0xC9B2, 0x4EFB, 0xA5F4, 0x4EFD, 0xA5F7, 0x4EFF, 0xA5E9, 0x4F00, 0xC9B1, 0x4F01, 0xA5F8, + 0x4F02, 0xC9B5, 0x4F04, 0xC9B9, 0x4F05, 0xC9B6, 0x4F08, 0xC9B3, 0x4F09, 0xA5EA, 0x4F0A, 0xA5EC, 0x4F0B, 0xA5F9, 0x4F0D, 0xA5EE, + 0x4F0E, 0xC9AB, 0x4F0F, 0xA5F1, 0x4F10, 0xA5EF, 0x4F11, 0xA5F0, 0x4F12, 0xC9BB, 0x4F13, 0xC9B8, 0x4F14, 0xC9AF, 0x4F15, 0xA5ED, + 0x4F18, 0xC9AC, 0x4F19, 0xA5EB, 0x4F1D, 0xC9B4, 0x4F22, 0xC9B7, 0x4F2C, 0xC9AD, 0x4F2D, 0xCA66, 0x4F2F, 0xA742, 0x4F30, 0xA6F4, + 0x4F33, 0xCA67, 0x4F34, 0xA6F1, 0x4F36, 0xA744, 0x4F38, 0xA6F9, 0x4F3A, 0xA6F8, 0x4F3B, 0xCA5B, 0x4F3C, 0xA6FC, 0x4F3D, 0xA6F7, + 0x4F3E, 0xCA60, 0x4F3F, 0xCA68, 0x4F41, 0xCA64, 0x4F43, 0xA6FA, 0x4F46, 0xA6FD, 0x4F47, 0xA6EE, 0x4F48, 0xA747, 0x4F49, 0xCA5D, + 0x4F4C, 0xCBBD, 0x4F4D, 0xA6EC, 0x4F4E, 0xA743, 0x4F4F, 0xA6ED, 0x4F50, 0xA6F5, 0x4F51, 0xA6F6, 0x4F52, 0xCA62, 0x4F53, 0xCA5E, + 0x4F54, 0xA6FB, 0x4F55, 0xA6F3, 0x4F56, 0xCA5A, 0x4F57, 0xA6EF, 0x4F58, 0xCA65, 0x4F59, 0xA745, 0x4F5A, 0xA748, 0x4F5B, 0xA6F2, + 0x4F5C, 0xA740, 0x4F5D, 0xA746, 0x4F5E, 0xA6F0, 0x4F5F, 0xCA63, 0x4F60, 0xA741, 0x4F61, 0xCA69, 0x4F62, 0xCA5C, 0x4F63, 0xA6FE, + 0x4F64, 0xCA5F, 0x4F67, 0xCA61, 0x4F69, 0xA8D8, 0x4F6A, 0xCBBF, 0x4F6B, 0xCBCB, 0x4F6C, 0xA8D0, 0x4F6E, 0xCBCC, 0x4F6F, 0xA8CB, + 0x4F70, 0xA8D5, 0x4F73, 0xA8CE, 0x4F74, 0xCBB9, 0x4F75, 0xA8D6, 0x4F76, 0xCBB8, 0x4F77, 0xCBBC, 0x4F78, 0xCBC3, 0x4F79, 0xCBC1, + 0x4F7A, 0xA8DE, 0x4F7B, 0xA8D9, 0x4F7C, 0xCBB3, 0x4F7D, 0xCBB5, 0x4F7E, 0xA8DB, 0x4F7F, 0xA8CF, 0x4F80, 0xCBB6, 0x4F81, 0xCBC2, + 0x4F82, 0xCBC9, 0x4F83, 0xA8D4, 0x4F84, 0xCBBB, 0x4F85, 0xCBB4, 0x4F86, 0xA8D3, 0x4F87, 0xCBB7, 0x4F88, 0xA8D7, 0x4F89, 0xCBBA, + 0x4F8B, 0xA8D2, 0x4F8D, 0xA8CD, 0x4F8F, 0xA8DC, 0x4F90, 0xCBC4, 0x4F91, 0xA8DD, 0x4F92, 0xCBC8, 0x4F94, 0xCBC6, 0x4F95, 0xCBCA, + 0x4F96, 0xA8DA, 0x4F97, 0xCBBE, 0x4F98, 0xCBB2, 0x4F9A, 0xCBC0, 0x4F9B, 0xA8D1, 0x4F9C, 0xCBC5, 0x4F9D, 0xA8CC, 0x4F9E, 0xCBC7, + 0x4FAE, 0xAB56, 0x4FAF, 0xAB4A, 0x4FB2, 0xCDE0, 0x4FB3, 0xCDE8, 0x4FB5, 0xAB49, 0x4FB6, 0xAB51, 0x4FB7, 0xAB5D, 0x4FB9, 0xCDEE, + 0x4FBA, 0xCDEC, 0x4FBB, 0xCDE7, 0x4FBF, 0xAB4B, 0x4FC0, 0xCDED, 0x4FC1, 0xCDE3, 0x4FC2, 0xAB59, 0x4FC3, 0xAB50, 0x4FC4, 0xAB58, + 0x4FC5, 0xCDDE, 0x4FC7, 0xCDEA, 0x4FC9, 0xCDE1, 0x4FCA, 0xAB54, 0x4FCB, 0xCDE2, 0x4FCD, 0xCDDD, 0x4FCE, 0xAB5B, 0x4FCF, 0xAB4E, + 0x4FD0, 0xAB57, 0x4FD1, 0xAB4D, 0x4FD3, 0xCDDF, 0x4FD4, 0xCDE4, 0x4FD6, 0xCDEB, 0x4FD7, 0xAB55, 0x4FD8, 0xAB52, 0x4FD9, 0xCDE6, + 0x4FDA, 0xAB5A, 0x4FDB, 0xCDE9, 0x4FDC, 0xCDE5, 0x4FDD, 0xAB4F, 0x4FDE, 0xAB5C, 0x4FDF, 0xAB53, 0x4FE0, 0xAB4C, 0x4FE1, 0xAB48, + 0x4FEC, 0xCDEF, 0x4FEE, 0xADD7, 0x4FEF, 0xADC1, 0x4FF1, 0xADD1, 0x4FF3, 0xADD6, 0x4FF4, 0xD0D0, 0x4FF5, 0xD0CF, 0x4FF6, 0xD0D4, + 0x4FF7, 0xD0D5, 0x4FF8, 0xADC4, 0x4FFA, 0xADCD, 0x4FFE, 0xADDA, 0x5000, 0xADCE, 0x5005, 0xD0C9, 0x5006, 0xADC7, 0x5007, 0xD0CA, + 0x5009, 0xADDC, 0x500B, 0xADD3, 0x500C, 0xADBE, 0x500D, 0xADBF, 0x500E, 0xD0DD, 0x500F, 0xB0BF, 0x5011, 0xADCC, 0x5012, 0xADCB, + 0x5013, 0xD0CB, 0x5014, 0xADCF, 0x5015, 0xD45B, 0x5016, 0xADC6, 0x5017, 0xD0D6, 0x5018, 0xADD5, 0x5019, 0xADD4, 0x501A, 0xADCA, + 0x501B, 0xD0CE, 0x501C, 0xD0D7, 0x501E, 0xD0C8, 0x501F, 0xADC9, 0x5020, 0xD0D8, 0x5021, 0xADD2, 0x5022, 0xD0CC, 0x5023, 0xADC0, + 0x5025, 0xADC3, 0x5026, 0xADC2, 0x5027, 0xD0D9, 0x5028, 0xADD0, 0x5029, 0xADC5, 0x502A, 0xADD9, 0x502B, 0xADDB, 0x502C, 0xD0D3, + 0x502D, 0xADD8, 0x502F, 0xD0DB, 0x5030, 0xD0CD, 0x5031, 0xD0DC, 0x5033, 0xD0D1, 0x5035, 0xD0DA, 0x5037, 0xD0D2, 0x503C, 0xADC8, + 0x5040, 0xD463, 0x5041, 0xD457, 0x5043, 0xB0B3, 0x5045, 0xD45C, 0x5046, 0xD462, 0x5047, 0xB0B2, 0x5048, 0xD455, 0x5049, 0xB0B6, + 0x504A, 0xD459, 0x504B, 0xD452, 0x504C, 0xB0B4, 0x504D, 0xD456, 0x504E, 0xB0B9, 0x504F, 0xB0BE, 0x5051, 0xD467, 0x5053, 0xD451, + 0x5055, 0xB0BA, 0x5057, 0xD466, 0x505A, 0xB0B5, 0x505B, 0xD458, 0x505C, 0xB0B1, 0x505D, 0xD453, 0x505E, 0xD44F, 0x505F, 0xD45D, + 0x5060, 0xD450, 0x5061, 0xD44E, 0x5062, 0xD45A, 0x5063, 0xD460, 0x5064, 0xD461, 0x5065, 0xB0B7, 0x5068, 0xD85B, 0x5069, 0xD45E, + 0x506A, 0xD44D, 0x506B, 0xD45F, 0x506D, 0xB0C1, 0x506E, 0xD464, 0x506F, 0xB0C0, 0x5070, 0xD44C, 0x5072, 0xD454, 0x5073, 0xD465, + 0x5074, 0xB0BC, 0x5075, 0xB0BB, 0x5076, 0xB0B8, 0x5077, 0xB0BD, 0x507A, 0xB0AF, 0x507D, 0xB0B0, 0x5080, 0xB3C8, 0x5082, 0xD85E, + 0x5083, 0xD857, 0x5085, 0xB3C5, 0x5087, 0xD85F, 0x508B, 0xD855, 0x508C, 0xD858, 0x508D, 0xB3C4, 0x508E, 0xD859, 0x5091, 0xB3C7, + 0x5092, 0xD85D, 0x5094, 0xD853, 0x5095, 0xD852, 0x5096, 0xB3C9, 0x5098, 0xB3CA, 0x5099, 0xB3C6, 0x509A, 0xB3CB, 0x509B, 0xD851, + 0x509C, 0xD85C, 0x509D, 0xD85A, 0x509E, 0xD854, 0x50A2, 0xB3C3, 0x50A3, 0xD856, 0x50AC, 0xB6CA, 0x50AD, 0xB6C4, 0x50AE, 0xDCB7, + 0x50AF, 0xB6CD, 0x50B0, 0xDCBD, 0x50B1, 0xDCC0, 0x50B2, 0xB6C6, 0x50B3, 0xB6C7, 0x50B4, 0xDCBA, 0x50B5, 0xB6C5, 0x50B6, 0xDCC3, + 0x50B7, 0xB6CB, 0x50B8, 0xDCC4, 0x50BA, 0xDCBF, 0x50BB, 0xB6CC, 0x50BD, 0xDCB4, 0x50BE, 0xB6C9, 0x50BF, 0xDCB5, 0x50C1, 0xDCBE, + 0x50C2, 0xDCBC, 0x50C4, 0xDCB8, 0x50C5, 0xB6C8, 0x50C6, 0xDCB6, 0x50C7, 0xB6CE, 0x50C8, 0xDCBB, 0x50C9, 0xDCC2, 0x50CA, 0xDCB9, + 0x50CB, 0xDCC1, 0x50CE, 0xB9B6, 0x50CF, 0xB9B3, 0x50D1, 0xB9B4, 0x50D3, 0xE0F9, 0x50D4, 0xE0F1, 0x50D5, 0xB9B2, 0x50D6, 0xB9AF, + 0x50D7, 0xE0F2, 0x50DA, 0xB9B1, 0x50DB, 0xE0F5, 0x50DD, 0xE0F7, 0x50E0, 0xE0FE, 0x50E3, 0xE0FD, 0x50E4, 0xE0F8, 0x50E5, 0xB9AE, + 0x50E6, 0xE0F0, 0x50E7, 0xB9AC, 0x50E8, 0xE0F3, 0x50E9, 0xB9B7, 0x50EA, 0xE0F6, 0x50EC, 0xE0FA, 0x50ED, 0xB9B0, 0x50EE, 0xB9AD, + 0x50EF, 0xE0FC, 0x50F0, 0xE0FB, 0x50F1, 0xB9B5, 0x50F3, 0xE0F4, 0x50F5, 0xBBF8, 0x50F6, 0xE4EC, 0x50F8, 0xE4E9, 0x50F9, 0xBBF9, + 0x50FB, 0xBBF7, 0x50FD, 0xE4F0, 0x50FE, 0xE4ED, 0x50FF, 0xE4E6, 0x5100, 0xBBF6, 0x5102, 0xBBFA, 0x5103, 0xE4E7, 0x5104, 0xBBF5, + 0x5105, 0xBBFD, 0x5106, 0xE4EA, 0x5107, 0xE4EB, 0x5108, 0xBBFB, 0x5109, 0xBBFC, 0x510A, 0xE4F1, 0x510B, 0xE4EE, 0x510C, 0xE4EF, + 0x5110, 0xBEAA, 0x5111, 0xE8F8, 0x5112, 0xBEA7, 0x5113, 0xE8F5, 0x5114, 0xBEA9, 0x5115, 0xBEAB, 0x5117, 0xE8F6, 0x5118, 0xBEA8, + 0x511A, 0xE8F7, 0x511C, 0xE8F4, 0x511F, 0xC076, 0x5120, 0xECBD, 0x5121, 0xC077, 0x5122, 0xECBB, 0x5124, 0xECBC, 0x5125, 0xECBA, + 0x5126, 0xECB9, 0x5129, 0xECBE, 0x512A, 0xC075, 0x512D, 0xEFB8, 0x512E, 0xEFB9, 0x5130, 0xE4E8, 0x5131, 0xEFB7, 0x5132, 0xC078, + 0x5133, 0xC35F, 0x5134, 0xF1EB, 0x5135, 0xF1EC, 0x5137, 0xC4D7, 0x5138, 0xC4D8, 0x5139, 0xF5C1, 0x513A, 0xF5C0, 0x513B, 0xC56C, + 0x513C, 0xC56B, 0x513D, 0xF7D0, 0x513F, 0xA449, 0x5140, 0xA461, 0x5141, 0xA4B9, 0x5143, 0xA4B8, 0x5144, 0xA553, 0x5145, 0xA552, + 0x5146, 0xA5FC, 0x5147, 0xA5FB, 0x5148, 0xA5FD, 0x5149, 0xA5FA, 0x514B, 0xA74A, 0x514C, 0xA749, 0x514D, 0xA74B, 0x5152, 0xA8E0, + 0x5154, 0xA8DF, 0x5155, 0xA8E1, 0x5157, 0xAB5E, 0x5159, 0xA259, 0x515A, 0xD0DE, 0x515B, 0xA25A, 0x515C, 0xB0C2, 0x515D, 0xA25C, + 0x515E, 0xA25B, 0x515F, 0xD860, 0x5161, 0xA25D, 0x5162, 0xB9B8, 0x5163, 0xA25E, 0x5165, 0xA44A, 0x5167, 0xA4BA, 0x5168, 0xA5FE, + 0x5169, 0xA8E2, 0x516B, 0xA44B, 0x516C, 0xA4BD, 0x516D, 0xA4BB, 0x516E, 0xA4BC, 0x5171, 0xA640, 0x5175, 0xA74C, 0x5176, 0xA8E4, + 0x5177, 0xA8E3, 0x5178, 0xA8E5, 0x517C, 0xADDD, 0x5180, 0xBEAC, 0x5187, 0xC94E, 0x5189, 0xA554, 0x518A, 0xA555, 0x518D, 0xA641, + 0x518F, 0xCA6A, 0x5191, 0xAB60, 0x5192, 0xAB5F, 0x5193, 0xD0E0, 0x5194, 0xD0DF, 0x5195, 0xB0C3, 0x5197, 0xA4BE, 0x5198, 0xC955, + 0x519E, 0xCBCD, 0x51A0, 0xAB61, 0x51A2, 0xADE0, 0x51A4, 0xADDE, 0x51A5, 0xADDF, 0x51AA, 0xBEAD, 0x51AC, 0xA556, 0x51B0, 0xA642, + 0x51B1, 0xC9BC, 0x51B6, 0xA74D, 0x51B7, 0xA74E, 0x51B9, 0xCA6B, 0x51BC, 0xCBCE, 0x51BD, 0xA8E6, 0x51BE, 0xCBCF, 0x51C4, 0xD0E2, + 0x51C5, 0xD0E3, 0x51C6, 0xADE3, 0x51C8, 0xD0E4, 0x51CA, 0xD0E1, 0x51CB, 0xADE4, 0x51CC, 0xADE2, 0x51CD, 0xADE1, 0x51CE, 0xD0E5, + 0x51D0, 0xD468, 0x51D4, 0xD861, 0x51D7, 0xDCC5, 0x51D8, 0xE140, 0x51DC, 0xBBFE, 0x51DD, 0xBEAE, 0x51DE, 0xE8F9, 0x51E0, 0xA44C, + 0x51E1, 0xA45A, 0x51F0, 0xB0C4, 0x51F1, 0xB3CD, 0x51F3, 0xB9B9, 0x51F5, 0xC942, 0x51F6, 0xA4BF, 0x51F8, 0xA559, 0x51F9, 0xA557, + 0x51FA, 0xA558, 0x51FD, 0xA8E7, 0x5200, 0xA44D, 0x5201, 0xA44E, 0x5203, 0xA462, 0x5206, 0xA4C0, 0x5207, 0xA4C1, 0x5208, 0xA4C2, + 0x5209, 0xC9BE, 0x520A, 0xA55A, 0x520C, 0xC96B, 0x520E, 0xA646, 0x5210, 0xC9BF, 0x5211, 0xA644, 0x5212, 0xA645, 0x5213, 0xC9BD, + 0x5216, 0xA647, 0x5217, 0xA643, 0x521C, 0xCA6C, 0x521D, 0xAAEC, 0x521E, 0xCA6D, 0x5221, 0xCA6E, 0x5224, 0xA750, 0x5225, 0xA74F, + 0x5228, 0xA753, 0x5229, 0xA751, 0x522A, 0xA752, 0x522E, 0xA8ED, 0x5230, 0xA8EC, 0x5231, 0xCBD4, 0x5232, 0xCBD1, 0x5233, 0xCBD2, + 0x5235, 0xCBD0, 0x5236, 0xA8EE, 0x5237, 0xA8EA, 0x5238, 0xA8E9, 0x523A, 0xA8EB, 0x523B, 0xA8E8, 0x5241, 0xA8EF, 0x5243, 0xAB63, + 0x5244, 0xCDF0, 0x5246, 0xCBD3, 0x5247, 0xAB68, 0x5249, 0xCDF1, 0x524A, 0xAB64, 0x524B, 0xAB67, 0x524C, 0xAB66, 0x524D, 0xAB65, + 0x524E, 0xAB62, 0x5252, 0xD0E8, 0x5254, 0xADE7, 0x5255, 0xD0EB, 0x5256, 0xADE5, 0x525A, 0xD0E7, 0x525B, 0xADE8, 0x525C, 0xADE6, + 0x525D, 0xADE9, 0x525E, 0xD0E9, 0x525F, 0xD0EA, 0x5261, 0xD0E6, 0x5262, 0xD0EC, 0x5269, 0xB3D1, 0x526A, 0xB0C5, 0x526B, 0xD469, + 0x526C, 0xD46B, 0x526D, 0xD46A, 0x526E, 0xD46C, 0x526F, 0xB0C6, 0x5272, 0xB3CE, 0x5274, 0xB3CF, 0x5275, 0xB3D0, 0x5277, 0xB6D0, + 0x5278, 0xDCC7, 0x527A, 0xDCC6, 0x527B, 0xDCC8, 0x527C, 0xDCC9, 0x527D, 0xB6D1, 0x527F, 0xB6CF, 0x5280, 0xE141, 0x5281, 0xE142, + 0x5282, 0xB9BB, 0x5283, 0xB9BA, 0x5284, 0xE35A, 0x5287, 0xBC40, 0x5288, 0xBC41, 0x5289, 0xBC42, 0x528A, 0xBC44, 0x528B, 0xE4F2, + 0x528C, 0xE4F3, 0x528D, 0xBC43, 0x5291, 0xBEAF, 0x5293, 0xBEB0, 0x5296, 0xF1ED, 0x5297, 0xF5C3, 0x5298, 0xF5C2, 0x5299, 0xF7D1, + 0x529B, 0xA44F, 0x529F, 0xA55C, 0x52A0, 0xA55B, 0x52A3, 0xA648, 0x52A6, 0xC9C0, 0x52A9, 0xA755, 0x52AA, 0xA756, 0x52AB, 0xA754, + 0x52AC, 0xA757, 0x52AD, 0xCA6F, 0x52AE, 0xCA70, 0x52BB, 0xA8F1, 0x52BC, 0xCBD5, 0x52BE, 0xA8F0, 0x52C0, 0xCDF2, 0x52C1, 0xAB6C, + 0x52C2, 0xCDF3, 0x52C3, 0xAB6B, 0x52C7, 0xAB69, 0x52C9, 0xAB6A, 0x52CD, 0xD0ED, 0x52D2, 0xB0C7, 0x52D3, 0xD46E, 0x52D5, 0xB0CA, + 0x52D6, 0xD46D, 0x52D7, 0xB1E5, 0x52D8, 0xB0C9, 0x52D9, 0xB0C8, 0x52DB, 0xB3D4, 0x52DD, 0xB3D3, 0x52DE, 0xB3D2, 0x52DF, 0xB6D2, + 0x52E2, 0xB6D5, 0x52E3, 0xB6D6, 0x52E4, 0xB6D4, 0x52E6, 0xB6D3, 0x52E9, 0xE143, 0x52EB, 0xE144, 0x52EF, 0xE4F5, 0x52F0, 0xBC45, + 0x52F1, 0xE4F4, 0x52F3, 0xBEB1, 0x52F4, 0xECBF, 0x52F5, 0xC079, 0x52F7, 0xF1EE, 0x52F8, 0xC455, 0x52FA, 0xA463, 0x52FB, 0xA4C3, + 0x52FC, 0xC956, 0x52FE, 0xA4C4, 0x52FF, 0xA4C5, 0x5305, 0xA55D, 0x5306, 0xA55E, 0x5308, 0xA649, 0x5309, 0xCA71, 0x530A, 0xCBD6, + 0x530B, 0xCBD7, 0x530D, 0xAB6D, 0x530E, 0xD0EE, 0x530F, 0xB0CC, 0x5310, 0xB0CB, 0x5311, 0xD863, 0x5312, 0xD862, 0x5315, 0xA450, + 0x5316, 0xA4C6, 0x5317, 0xA55F, 0x5319, 0xB0CD, 0x531A, 0xC943, 0x531C, 0xC96C, 0x531D, 0xA560, 0x531F, 0xC9C2, 0x5320, 0xA64B, + 0x5321, 0xA64A, 0x5322, 0xC9C1, 0x5323, 0xA758, 0x532A, 0xADEA, 0x532D, 0xD46F, 0x532F, 0xB6D7, 0x5330, 0xE145, 0x5331, 0xB9BC, + 0x5334, 0xE8FA, 0x5337, 0xF3FD, 0x5339, 0xA4C7, 0x533C, 0xCBD8, 0x533D, 0xCDF4, 0x533E, 0xB0D0, 0x533F, 0xB0CE, 0x5340, 0xB0CF, + 0x5341, 0xA2CC, 0x5341, 0xA451, 0x5343, 0xA464, 0x5344, 0xA2CD, 0x5345, 0xA2CE, 0x5345, 0xA4CA, 0x5347, 0xA4C9, 0x5348, 0xA4C8, + 0x5349, 0xA563, 0x534A, 0xA562, 0x534C, 0xC96D, 0x534D, 0xC9C3, 0x5351, 0xA8F5, 0x5352, 0xA8F2, 0x5353, 0xA8F4, 0x5354, 0xA8F3, + 0x5357, 0xAB6E, 0x535A, 0xB3D5, 0x535C, 0xA452, 0x535E, 0xA4CB, 0x5360, 0xA565, 0x5361, 0xA564, 0x5363, 0xCA72, 0x5366, 0xA8F6, + 0x536C, 0xC957, 0x536E, 0xA567, 0x536F, 0xA566, 0x5370, 0xA64C, 0x5371, 0xA64D, 0x5372, 0xCA73, 0x5373, 0xA759, 0x5375, 0xA75A, + 0x5377, 0xA8F7, 0x5378, 0xA8F8, 0x5379, 0xA8F9, 0x537B, 0xAB6F, 0x537C, 0xCDF5, 0x537F, 0xADEB, 0x5382, 0xC944, 0x5384, 0xA4CC, + 0x538A, 0xC9C4, 0x538E, 0xCA74, 0x538F, 0xCA75, 0x5392, 0xCBD9, 0x5394, 0xCBDA, 0x5396, 0xCDF7, 0x5397, 0xCDF6, 0x5398, 0xCDF9, + 0x5399, 0xCDF8, 0x539A, 0xAB70, 0x539C, 0xD470, 0x539D, 0xADED, 0x539E, 0xD0EF, 0x539F, 0xADEC, 0x53A4, 0xD864, 0x53A5, 0xB3D6, + 0x53A7, 0xD865, 0x53AC, 0xE146, 0x53AD, 0xB9BD, 0x53B2, 0xBC46, 0x53B4, 0xF1EF, 0x53B9, 0xC958, 0x53BB, 0xA568, 0x53C3, 0xB0D1, + 0x53C8, 0xA453, 0x53C9, 0xA465, 0x53CA, 0xA4CE, 0x53CB, 0xA4CD, 0x53CD, 0xA4CF, 0x53D4, 0xA8FB, 0x53D6, 0xA8FA, 0x53D7, 0xA8FC, + 0x53DB, 0xAB71, 0x53DF, 0xADEE, 0x53E1, 0xE8FB, 0x53E2, 0xC24F, 0x53E3, 0xA466, 0x53E4, 0xA56A, 0x53E5, 0xA579, 0x53E6, 0xA574, + 0x53E8, 0xA56F, 0x53E9, 0xA56E, 0x53EA, 0xA575, 0x53EB, 0xA573, 0x53EC, 0xA56C, 0x53ED, 0xA57A, 0x53EE, 0xA56D, 0x53EF, 0xA569, + 0x53F0, 0xA578, 0x53F1, 0xA577, 0x53F2, 0xA576, 0x53F3, 0xA56B, 0x53F5, 0xA572, 0x53F8, 0xA571, 0x53FB, 0xA57B, 0x53FC, 0xA570, + 0x5401, 0xA653, 0x5403, 0xA659, 0x5404, 0xA655, 0x5406, 0xA65B, 0x5407, 0xC9C5, 0x5408, 0xA658, 0x5409, 0xA64E, 0x540A, 0xA651, + 0x540B, 0xA654, 0x540C, 0xA650, 0x540D, 0xA657, 0x540E, 0xA65A, 0x540F, 0xA64F, 0x5410, 0xA652, 0x5411, 0xA656, 0x5412, 0xA65C, + 0x5418, 0xCA7E, 0x5419, 0xCA7B, 0x541B, 0xA767, 0x541C, 0xCA7C, 0x541D, 0xA75B, 0x541E, 0xA75D, 0x541F, 0xA775, 0x5420, 0xA770, + 0x5424, 0xCAA5, 0x5425, 0xCA7D, 0x5426, 0xA75F, 0x5427, 0xA761, 0x5428, 0xCAA4, 0x5429, 0xA768, 0x542A, 0xCA78, 0x542B, 0xA774, + 0x542C, 0xA776, 0x542D, 0xA75C, 0x542E, 0xA76D, 0x5430, 0xCA76, 0x5431, 0xA773, 0x5433, 0xA764, 0x5435, 0xA76E, 0x5436, 0xA76F, + 0x5437, 0xCA77, 0x5438, 0xA76C, 0x5439, 0xA76A, 0x543B, 0xA76B, 0x543C, 0xA771, 0x543D, 0xCAA1, 0x543E, 0xA75E, 0x5440, 0xA772, + 0x5441, 0xCAA3, 0x5442, 0xA766, 0x5443, 0xA763, 0x5445, 0xCA7A, 0x5446, 0xA762, 0x5447, 0xCAA6, 0x5448, 0xA765, 0x544A, 0xA769, + 0x544E, 0xA760, 0x544F, 0xCAA2, 0x5454, 0xCA79, 0x5460, 0xCBEB, 0x5461, 0xCBEA, 0x5462, 0xA94F, 0x5463, 0xCBED, 0x5464, 0xCBEF, + 0x5465, 0xCBE4, 0x5466, 0xCBE7, 0x5467, 0xCBEE, 0x5468, 0xA950, 0x546B, 0xCBE1, 0x546C, 0xCBE5, 0x546F, 0xCBE9, 0x5470, 0xCE49, + 0x5471, 0xA94B, 0x5472, 0xCE4D, 0x5473, 0xA8FD, 0x5474, 0xCBE6, 0x5475, 0xA8FE, 0x5476, 0xA94C, 0x5477, 0xA945, 0x5478, 0xA941, + 0x547A, 0xCBE2, 0x547B, 0xA944, 0x547C, 0xA949, 0x547D, 0xA952, 0x547E, 0xCBE3, 0x547F, 0xCBDC, 0x5480, 0xA943, 0x5481, 0xCBDD, + 0x5482, 0xCBDF, 0x5484, 0xA946, 0x5486, 0xA948, 0x5487, 0xCBDB, 0x5488, 0xCBE0, 0x548B, 0xA951, 0x548C, 0xA94D, 0x548D, 0xCBE8, + 0x548E, 0xA953, 0x5490, 0xA94A, 0x5491, 0xCBDE, 0x5492, 0xA947, 0x5495, 0xA942, 0x5496, 0xA940, 0x5498, 0xCBEC, 0x549A, 0xA94E, + 0x54A0, 0xCE48, 0x54A1, 0xCDFB, 0x54A2, 0xCE4B, 0x54A5, 0xCDFD, 0x54A6, 0xAB78, 0x54A7, 0xABA8, 0x54A8, 0xAB74, 0x54A9, 0xABA7, + 0x54AA, 0xAB7D, 0x54AB, 0xABA4, 0x54AC, 0xAB72, 0x54AD, 0xCDFC, 0x54AE, 0xCE43, 0x54AF, 0xABA3, 0x54B0, 0xCE4F, 0x54B1, 0xABA5, + 0x54B3, 0xAB79, 0x54B6, 0xCE45, 0x54B7, 0xCE42, 0x54B8, 0xAB77, 0x54BA, 0xCDFA, 0x54BB, 0xABA6, 0x54BC, 0xCE4A, 0x54BD, 0xAB7C, + 0x54BE, 0xCE4C, 0x54BF, 0xABA9, 0x54C0, 0xAB73, 0x54C1, 0xAB7E, 0x54C2, 0xAB7B, 0x54C3, 0xCE40, 0x54C4, 0xABA1, 0x54C5, 0xCE46, + 0x54C6, 0xCE47, 0x54C7, 0xAB7A, 0x54C8, 0xABA2, 0x54C9, 0xAB76, 0x54CE, 0xAB75, 0x54CF, 0xCDFE, 0x54D6, 0xCE44, 0x54DE, 0xCE4E, + 0x54E0, 0xD144, 0x54E1, 0xADFB, 0x54E2, 0xD0F1, 0x54E4, 0xD0F6, 0x54E5, 0xADF4, 0x54E6, 0xAE40, 0x54E7, 0xD0F4, 0x54E8, 0xADEF, + 0x54E9, 0xADF9, 0x54EA, 0xADFE, 0x54EB, 0xD0FB, 0x54ED, 0xADFA, 0x54EE, 0xADFD, 0x54F1, 0xD0FE, 0x54F2, 0xADF5, 0x54F3, 0xD0F5, + 0x54F7, 0xD142, 0x54F8, 0xD143, 0x54FA, 0xADF7, 0x54FB, 0xD141, 0x54FC, 0xADF3, 0x54FD, 0xAE43, 0x54FF, 0xD0F8, 0x5501, 0xADF1, + 0x5503, 0xD146, 0x5504, 0xD0F9, 0x5505, 0xD0FD, 0x5506, 0xADF6, 0x5507, 0xAE42, 0x5508, 0xD0FA, 0x5509, 0xADFC, 0x550A, 0xD140, + 0x550B, 0xD147, 0x550C, 0xD4A1, 0x550E, 0xD145, 0x550F, 0xAE44, 0x5510, 0xADF0, 0x5511, 0xD0FC, 0x5512, 0xD0F3, 0x5514, 0xADF8, + 0x5517, 0xD0F2, 0x551A, 0xD0F7, 0x5526, 0xD0F0, 0x5527, 0xAE41, 0x552A, 0xD477, 0x552C, 0xB0E4, 0x552D, 0xD4A7, 0x552E, 0xB0E2, + 0x552F, 0xB0DF, 0x5530, 0xD47C, 0x5531, 0xB0DB, 0x5532, 0xD4A2, 0x5533, 0xB0E6, 0x5534, 0xD476, 0x5535, 0xD47B, 0x5536, 0xD47A, + 0x5537, 0xADF2, 0x5538, 0xB0E1, 0x5539, 0xD4A5, 0x553B, 0xD4A8, 0x553C, 0xD473, 0x553E, 0xB3E8, 0x5540, 0xD4A9, 0x5541, 0xB0E7, + 0x5543, 0xB0D9, 0x5544, 0xB0D6, 0x5545, 0xD47E, 0x5546, 0xB0D3, 0x5548, 0xD4A6, 0x554A, 0xB0DA, 0x554B, 0xD4AA, 0x554D, 0xD474, + 0x554E, 0xD4A4, 0x554F, 0xB0DD, 0x5550, 0xD475, 0x5551, 0xD478, 0x5552, 0xD47D, 0x5555, 0xB0DE, 0x5556, 0xB0DC, 0x5557, 0xB0E8, + 0x555C, 0xB0E3, 0x555E, 0xB0D7, 0x555F, 0xB1D2, 0x5561, 0xB0D8, 0x5562, 0xD479, 0x5563, 0xB0E5, 0x5564, 0xB0E0, 0x5565, 0xD4A3, + 0x5566, 0xB0D5, 0x556A, 0xB0D4, 0x5575, 0xD471, 0x5576, 0xD472, 0x5577, 0xD86A, 0x557B, 0xB3D7, 0x557C, 0xB3DA, 0x557D, 0xD875, + 0x557E, 0xB3EE, 0x557F, 0xD878, 0x5580, 0xB3D8, 0x5581, 0xD871, 0x5582, 0xB3DE, 0x5583, 0xB3E4, 0x5584, 0xB5BD, 0x5587, 0xB3E2, + 0x5588, 0xD86E, 0x5589, 0xB3EF, 0x558A, 0xB3DB, 0x558B, 0xB3E3, 0x558C, 0xD876, 0x558D, 0xDCD7, 0x558E, 0xD87B, 0x558F, 0xD86F, + 0x5591, 0xD866, 0x5592, 0xD873, 0x5593, 0xD86D, 0x5594, 0xB3E1, 0x5595, 0xD879, 0x5598, 0xB3DD, 0x5599, 0xB3F1, 0x559A, 0xB3EA, + 0x559C, 0xB3DF, 0x559D, 0xB3DC, 0x559F, 0xB3E7, 0x55A1, 0xD87A, 0x55A2, 0xD86C, 0x55A3, 0xD872, 0x55A4, 0xD874, 0x55A5, 0xD868, + 0x55A6, 0xD877, 0x55A7, 0xB3D9, 0x55A8, 0xD867, 0x55AA, 0xB3E0, 0x55AB, 0xB3F0, 0x55AC, 0xB3EC, 0x55AD, 0xD869, 0x55AE, 0xB3E6, + 0x55B1, 0xB3ED, 0x55B2, 0xB3E9, 0x55B3, 0xB3E5, 0x55B5, 0xD870, 0x55BB, 0xB3EB, 0x55BF, 0xDCD5, 0x55C0, 0xDCD1, 0x55C2, 0xDCE0, + 0x55C3, 0xDCCA, 0x55C4, 0xDCD3, 0x55C5, 0xB6E5, 0x55C6, 0xB6E6, 0x55C7, 0xB6DE, 0x55C8, 0xDCDC, 0x55C9, 0xB6E8, 0x55CA, 0xDCCF, + 0x55CB, 0xDCCE, 0x55CC, 0xDCCC, 0x55CD, 0xDCDE, 0x55CE, 0xB6DC, 0x55CF, 0xDCD8, 0x55D0, 0xDCCD, 0x55D1, 0xB6DF, 0x55D2, 0xDCD6, + 0x55D3, 0xB6DA, 0x55D4, 0xDCD2, 0x55D5, 0xDCD9, 0x55D6, 0xDCDB, 0x55D9, 0xDCDF, 0x55DA, 0xB6E3, 0x55DB, 0xDCCB, 0x55DC, 0xB6DD, + 0x55DD, 0xDCD0, 0x55DF, 0xB6D8, 0x55E1, 0xB6E4, 0x55E2, 0xDCDA, 0x55E3, 0xB6E0, 0x55E4, 0xB6E1, 0x55E5, 0xB6E7, 0x55E6, 0xB6DB, + 0x55E7, 0xA25F, 0x55E8, 0xB6D9, 0x55E9, 0xDCD4, 0x55EF, 0xB6E2, 0x55F2, 0xDCDD, 0x55F6, 0xB9CD, 0x55F7, 0xB9C8, 0x55F9, 0xE155, + 0x55FA, 0xE151, 0x55FC, 0xE14B, 0x55FD, 0xB9C2, 0x55FE, 0xB9BE, 0x55FF, 0xE154, 0x5600, 0xB9BF, 0x5601, 0xE14E, 0x5602, 0xE150, + 0x5604, 0xE153, 0x5606, 0xB9C4, 0x5608, 0xB9CB, 0x5609, 0xB9C5, 0x560C, 0xE149, 0x560D, 0xB9C6, 0x560E, 0xB9C7, 0x560F, 0xE14C, + 0x5610, 0xB9CC, 0x5612, 0xE14A, 0x5613, 0xE14F, 0x5614, 0xB9C3, 0x5615, 0xE148, 0x5616, 0xB9C9, 0x5617, 0xB9C1, 0x561B, 0xB9C0, + 0x561C, 0xE14D, 0x561D, 0xE152, 0x561F, 0xB9CA, 0x5627, 0xE147, 0x5629, 0xBC4D, 0x562A, 0xE547, 0x562C, 0xE544, 0x562E, 0xBC47, + 0x562F, 0xBC53, 0x5630, 0xBC54, 0x5632, 0xBC4A, 0x5633, 0xE542, 0x5634, 0xBC4C, 0x5635, 0xE4F9, 0x5636, 0xBC52, 0x5638, 0xE546, + 0x5639, 0xBC49, 0x563A, 0xE548, 0x563B, 0xBC48, 0x563D, 0xE543, 0x563E, 0xE545, 0x563F, 0xBC4B, 0x5640, 0xE541, 0x5641, 0xE4FA, + 0x5642, 0xE4F7, 0x5645, 0xD86B, 0x5646, 0xE4FD, 0x5648, 0xE4F6, 0x5649, 0xE4FC, 0x564A, 0xE4FB, 0x564C, 0xE4F8, 0x564E, 0xBC4F, + 0x5653, 0xBC4E, 0x5657, 0xBC50, 0x5658, 0xE4FE, 0x5659, 0xBEB2, 0x565A, 0xE540, 0x565E, 0xE945, 0x5660, 0xE8FD, 0x5662, 0xBEBE, + 0x5663, 0xE942, 0x5664, 0xBEB6, 0x5665, 0xBEBA, 0x5666, 0xE941, 0x5668, 0xBEB9, 0x5669, 0xBEB5, 0x566A, 0xBEB8, 0x566B, 0xBEB3, + 0x566C, 0xBEBD, 0x566D, 0xE943, 0x566E, 0xE8FE, 0x566F, 0xBEBC, 0x5670, 0xE8FC, 0x5671, 0xBEBB, 0x5672, 0xE944, 0x5673, 0xE940, + 0x5674, 0xBC51, 0x5676, 0xBEBF, 0x5677, 0xE946, 0x5678, 0xBEB7, 0x5679, 0xBEB4, 0x567E, 0xECC6, 0x567F, 0xECC8, 0x5680, 0xC07B, + 0x5681, 0xECC9, 0x5682, 0xECC7, 0x5683, 0xECC5, 0x5684, 0xECC4, 0x5685, 0xC07D, 0x5686, 0xECC3, 0x5687, 0xC07E, 0x568C, 0xECC1, + 0x568D, 0xECC2, 0x568E, 0xC07A, 0x568F, 0xC0A1, 0x5690, 0xC07C, 0x5693, 0xECC0, 0x5695, 0xC250, 0x5697, 0xEFBC, 0x5698, 0xEFBA, + 0x5699, 0xEFBF, 0x569A, 0xEFBD, 0x569C, 0xEFBB, 0x569D, 0xEFBE, 0x56A5, 0xC360, 0x56A6, 0xF1F2, 0x56A7, 0xF1F3, 0x56A8, 0xC456, + 0x56AA, 0xF1F4, 0x56AB, 0xF1F0, 0x56AC, 0xF1F5, 0x56AD, 0xF1F1, 0x56AE, 0xC251, 0x56B2, 0xF3FE, 0x56B3, 0xF441, 0x56B4, 0xC459, + 0x56B5, 0xF440, 0x56B6, 0xC458, 0x56B7, 0xC457, 0x56BC, 0xC45A, 0x56BD, 0xF5C5, 0x56BE, 0xF5C6, 0x56C0, 0xC4DA, 0x56C1, 0xC4D9, + 0x56C2, 0xC4DB, 0x56C3, 0xF5C4, 0x56C5, 0xF6D8, 0x56C6, 0xF6D7, 0x56C8, 0xC56D, 0x56C9, 0xC56F, 0x56CA, 0xC56E, 0x56CB, 0xF6D9, + 0x56CC, 0xC5C8, 0x56CD, 0xF8A6, 0x56D1, 0xC5F1, 0x56D3, 0xF8A5, 0x56D4, 0xF8EE, 0x56D7, 0xC949, 0x56DA, 0xA57D, 0x56DB, 0xA57C, + 0x56DD, 0xA65F, 0x56DE, 0xA65E, 0x56DF, 0xC9C7, 0x56E0, 0xA65D, 0x56E1, 0xC9C6, 0x56E4, 0xA779, 0x56E5, 0xCAA9, 0x56E7, 0xCAA8, + 0x56EA, 0xA777, 0x56EB, 0xA77A, 0x56EE, 0xCAA7, 0x56F0, 0xA778, 0x56F7, 0xCBF0, 0x56F9, 0xCBF1, 0x56FA, 0xA954, 0x56FF, 0xABAA, + 0x5701, 0xD148, 0x5702, 0xD149, 0x5703, 0xAE45, 0x5704, 0xAE46, 0x5707, 0xD4AC, 0x5708, 0xB0E9, 0x5709, 0xB0EB, 0x570A, 0xD4AB, + 0x570B, 0xB0EA, 0x570C, 0xD87C, 0x570D, 0xB3F2, 0x5712, 0xB6E9, 0x5713, 0xB6EA, 0x5714, 0xDCE1, 0x5716, 0xB9CF, 0x5718, 0xB9CE, + 0x571A, 0xE549, 0x571B, 0xE948, 0x571C, 0xE947, 0x571E, 0xF96B, 0x571F, 0xA467, 0x5720, 0xC959, 0x5722, 0xC96E, 0x5723, 0xC96F, + 0x5728, 0xA662, 0x5729, 0xA666, 0x572A, 0xC9C9, 0x572C, 0xA664, 0x572D, 0xA663, 0x572E, 0xC9C8, 0x572F, 0xA665, 0x5730, 0xA661, + 0x5733, 0xA660, 0x5734, 0xC9CA, 0x573B, 0xA7A6, 0x573E, 0xA7A3, 0x5740, 0xA77D, 0x5741, 0xCAAA, 0x5745, 0xCAAB, 0x5747, 0xA7A1, + 0x5749, 0xCAAD, 0x574A, 0xA77B, 0x574B, 0xCAAE, 0x574C, 0xCAAC, 0x574D, 0xA77E, 0x574E, 0xA7A2, 0x574F, 0xA7A5, 0x5750, 0xA7A4, + 0x5751, 0xA77C, 0x5752, 0xCAAF, 0x5761, 0xA959, 0x5762, 0xCBFE, 0x5764, 0xA95B, 0x5766, 0xA95A, 0x5768, 0xCC40, 0x5769, 0xA958, + 0x576A, 0xA957, 0x576B, 0xCBF5, 0x576D, 0xCBF4, 0x576F, 0xCBF2, 0x5770, 0xCBF7, 0x5771, 0xCBF6, 0x5772, 0xCBF3, 0x5773, 0xCBFC, + 0x5774, 0xCBFD, 0x5775, 0xCBFA, 0x5776, 0xCBF8, 0x5777, 0xA956, 0x577B, 0xCBFB, 0x577C, 0xA95C, 0x577D, 0xCC41, 0x5780, 0xCBF9, + 0x5782, 0xABAB, 0x5783, 0xA955, 0x578B, 0xABAC, 0x578C, 0xCE54, 0x578F, 0xCE5A, 0x5793, 0xABB2, 0x5794, 0xCE58, 0x5795, 0xCE5E, + 0x5797, 0xCE55, 0x5798, 0xCE59, 0x5799, 0xCE5B, 0x579A, 0xCE5D, 0x579B, 0xCE57, 0x579D, 0xCE56, 0x579E, 0xCE51, 0x579F, 0xCE52, + 0x57A0, 0xABAD, 0x57A2, 0xABAF, 0x57A3, 0xABAE, 0x57A4, 0xCE53, 0x57A5, 0xCE5C, 0x57AE, 0xABB1, 0x57B5, 0xCE50, 0x57B6, 0xD153, + 0x57B8, 0xD152, 0x57B9, 0xD157, 0x57BA, 0xD14E, 0x57BC, 0xD151, 0x57BD, 0xD150, 0x57BF, 0xD154, 0x57C1, 0xD158, 0x57C2, 0xAE47, + 0x57C3, 0xAE4A, 0x57C6, 0xD14F, 0x57C7, 0xD155, 0x57CB, 0xAE49, 0x57CC, 0xD14A, 0x57CE, 0xABB0, 0x57CF, 0xD4BA, 0x57D0, 0xD156, + 0x57D2, 0xD14D, 0x57D4, 0xAE48, 0x57D5, 0xD14C, 0x57DC, 0xD4B1, 0x57DF, 0xB0EC, 0x57E0, 0xB0F0, 0x57E1, 0xD4C1, 0x57E2, 0xD4AF, + 0x57E3, 0xD4BD, 0x57E4, 0xB0F1, 0x57E5, 0xD4BF, 0x57E7, 0xD4C5, 0x57E9, 0xD4C9, 0x57EC, 0xD4C0, 0x57ED, 0xD4B4, 0x57EE, 0xD4BC, + 0x57F0, 0xD4CA, 0x57F1, 0xD4C8, 0x57F2, 0xD4BE, 0x57F3, 0xD4B9, 0x57F4, 0xD4B2, 0x57F5, 0xD8A6, 0x57F6, 0xD4B0, 0x57F7, 0xB0F5, + 0x57F8, 0xD4B7, 0x57F9, 0xB0F6, 0x57FA, 0xB0F2, 0x57FB, 0xD4AD, 0x57FC, 0xD4C3, 0x57FD, 0xD4B5, 0x5800, 0xD4B3, 0x5801, 0xD4C6, + 0x5802, 0xB0F3, 0x5804, 0xD4CC, 0x5805, 0xB0ED, 0x5806, 0xB0EF, 0x5807, 0xD4BB, 0x5808, 0xD4B6, 0x5809, 0xAE4B, 0x580A, 0xB0EE, + 0x580B, 0xD4B8, 0x580C, 0xD4C7, 0x580D, 0xD4CB, 0x580E, 0xD4C2, 0x5810, 0xD4C4, 0x5814, 0xD4AE, 0x5819, 0xD8A1, 0x581B, 0xD8AA, + 0x581C, 0xD8A9, 0x581D, 0xB3FA, 0x581E, 0xD8A2, 0x5820, 0xB3FB, 0x5821, 0xB3F9, 0x5823, 0xD8A4, 0x5824, 0xB3F6, 0x5825, 0xD8A8, + 0x5827, 0xD8A3, 0x5828, 0xD8A5, 0x5829, 0xD87D, 0x582A, 0xB3F4, 0x582C, 0xD8B2, 0x582D, 0xD8B1, 0x582E, 0xD8AE, 0x582F, 0xB3F3, + 0x5830, 0xB3F7, 0x5831, 0xB3F8, 0x5832, 0xD14B, 0x5833, 0xD8AB, 0x5834, 0xB3F5, 0x5835, 0xB0F4, 0x5836, 0xD8AD, 0x5837, 0xD87E, + 0x5838, 0xD8B0, 0x5839, 0xD8AF, 0x583B, 0xD8B3, 0x583D, 0xDCEF, 0x583F, 0xD8AC, 0x5848, 0xD8A7, 0x5849, 0xDCE7, 0x584A, 0xB6F4, + 0x584B, 0xB6F7, 0x584C, 0xB6F2, 0x584D, 0xDCE6, 0x584E, 0xDCEA, 0x584F, 0xDCE5, 0x5851, 0xB6EC, 0x5852, 0xB6F6, 0x5853, 0xDCE2, + 0x5854, 0xB6F0, 0x5855, 0xDCE9, 0x5857, 0xB6EE, 0x5858, 0xB6ED, 0x5859, 0xDCEC, 0x585A, 0xB6EF, 0x585B, 0xDCEE, 0x585D, 0xDCEB, + 0x585E, 0xB6EB, 0x5862, 0xB6F5, 0x5863, 0xDCF0, 0x5864, 0xDCE4, 0x5865, 0xDCED, 0x5868, 0xDCE3, 0x586B, 0xB6F1, 0x586D, 0xB6F3, + 0x586F, 0xDCE8, 0x5871, 0xDCF1, 0x5874, 0xE15D, 0x5875, 0xB9D0, 0x5876, 0xE163, 0x5879, 0xB9D5, 0x587A, 0xE15F, 0x587B, 0xE166, + 0x587C, 0xE157, 0x587D, 0xB9D7, 0x587E, 0xB9D1, 0x587F, 0xE15C, 0x5880, 0xBC55, 0x5881, 0xE15B, 0x5882, 0xE164, 0x5883, 0xB9D2, + 0x5885, 0xB9D6, 0x5886, 0xE15A, 0x5887, 0xE160, 0x5888, 0xE165, 0x5889, 0xE156, 0x588A, 0xB9D4, 0x588B, 0xE15E, 0x588E, 0xE162, + 0x588F, 0xE168, 0x5890, 0xE158, 0x5891, 0xE161, 0x5893, 0xB9D3, 0x5894, 0xE167, 0x5898, 0xE159, 0x589C, 0xBC59, 0x589D, 0xE54B, + 0x589E, 0xBC57, 0x589F, 0xBC56, 0x58A0, 0xE54D, 0x58A1, 0xE552, 0x58A3, 0xE54E, 0x58A5, 0xE551, 0x58A6, 0xBC5C, 0x58A8, 0xBEA5, + 0x58A9, 0xBC5B, 0x58AB, 0xE54A, 0x58AC, 0xE550, 0x58AE, 0xBC5A, 0x58AF, 0xE54F, 0x58B1, 0xE54C, 0x58B3, 0xBC58, 0x58BA, 0xE94D, + 0x58BB, 0xF9D9, 0x58BC, 0xE94F, 0x58BD, 0xE94A, 0x58BE, 0xBEC1, 0x58BF, 0xE94C, 0x58C1, 0xBEC0, 0x58C2, 0xE94E, 0x58C5, 0xBEC3, + 0x58C6, 0xE950, 0x58C7, 0xBEC2, 0x58C8, 0xE949, 0x58C9, 0xE94B, 0x58CE, 0xC0A5, 0x58CF, 0xECCC, 0x58D1, 0xC0A4, 0x58D2, 0xECCD, + 0x58D3, 0xC0A3, 0x58D4, 0xECCB, 0x58D5, 0xC0A2, 0x58D6, 0xECCA, 0x58D8, 0xC253, 0x58D9, 0xC252, 0x58DA, 0xF1F6, 0x58DB, 0xF1F8, + 0x58DD, 0xF1F7, 0x58DE, 0xC361, 0x58DF, 0xC362, 0x58E2, 0xC363, 0x58E3, 0xF442, 0x58E4, 0xC45B, 0x58E7, 0xF7D3, 0x58E8, 0xF7D2, + 0x58E9, 0xC5F2, 0x58EB, 0xA468, 0x58EC, 0xA4D0, 0x58EF, 0xA7A7, 0x58F4, 0xCE5F, 0x58F9, 0xB3FC, 0x58FA, 0xB3FD, 0x58FC, 0xDCF2, + 0x58FD, 0xB9D8, 0x58FE, 0xE169, 0x58FF, 0xE553, 0x5903, 0xC95A, 0x5906, 0xCAB0, 0x590C, 0xCC42, 0x590D, 0xCE60, 0x590E, 0xD159, + 0x590F, 0xAE4C, 0x5912, 0xF1F9, 0x5914, 0xC4DC, 0x5915, 0xA469, 0x5916, 0xA57E, 0x5917, 0xC970, 0x5919, 0xA667, 0x591A, 0xA668, + 0x591C, 0xA95D, 0x5920, 0xB0F7, 0x5922, 0xB9DA, 0x5924, 0xB9DB, 0x5925, 0xB9D9, 0x5927, 0xA46A, 0x5929, 0xA4D1, 0x592A, 0xA4D3, + 0x592B, 0xA4D2, 0x592C, 0xC95B, 0x592D, 0xA4D4, 0x592E, 0xA5A1, 0x592F, 0xC971, 0x5931, 0xA5A2, 0x5937, 0xA669, 0x5938, 0xA66A, + 0x593C, 0xC9CB, 0x593E, 0xA7A8, 0x5940, 0xCAB1, 0x5944, 0xA961, 0x5945, 0xCC43, 0x5947, 0xA95F, 0x5948, 0xA960, 0x5949, 0xA95E, + 0x594A, 0xD15A, 0x594E, 0xABB6, 0x594F, 0xABB5, 0x5950, 0xABB7, 0x5951, 0xABB4, 0x5953, 0xCE61, 0x5954, 0xA962, 0x5955, 0xABB3, + 0x5957, 0xAE4D, 0x5958, 0xAE4E, 0x595A, 0xAE4F, 0x595C, 0xD4CD, 0x5960, 0xB3FE, 0x5961, 0xD8B4, 0x5962, 0xB0F8, 0x5967, 0xB6F8, + 0x5969, 0xB9DD, 0x596A, 0xB9DC, 0x596B, 0xE16A, 0x596D, 0xBC5D, 0x596E, 0xBEC4, 0x5970, 0xEFC0, 0x5971, 0xF6DA, 0x5972, 0xF7D4, + 0x5973, 0xA46B, 0x5974, 0xA5A3, 0x5976, 0xA5A4, 0x5977, 0xC9D1, 0x5978, 0xA66C, 0x5979, 0xA66F, 0x597B, 0xC9CF, 0x597C, 0xC9CD, + 0x597D, 0xA66E, 0x597E, 0xC9D0, 0x597F, 0xC9D2, 0x5980, 0xC9CC, 0x5981, 0xA671, 0x5982, 0xA670, 0x5983, 0xA66D, 0x5984, 0xA66B, + 0x5985, 0xC9CE, 0x598A, 0xA7B3, 0x598D, 0xA7B0, 0x598E, 0xCAB6, 0x598F, 0xCAB9, 0x5990, 0xCAB8, 0x5992, 0xA7AA, 0x5993, 0xA7B2, + 0x5996, 0xA7AF, 0x5997, 0xCAB5, 0x5998, 0xCAB3, 0x5999, 0xA7AE, 0x599D, 0xA7A9, 0x599E, 0xA7AC, 0x59A0, 0xCAB4, 0x59A1, 0xCABB, + 0x59A2, 0xCAB7, 0x59A3, 0xA7AD, 0x59A4, 0xA7B1, 0x59A5, 0xA7B4, 0x59A6, 0xCAB2, 0x59A7, 0xCABA, 0x59A8, 0xA7AB, 0x59AE, 0xA967, + 0x59AF, 0xA96F, 0x59B1, 0xCC4F, 0x59B2, 0xCC48, 0x59B3, 0xA970, 0x59B4, 0xCC53, 0x59B5, 0xCC44, 0x59B6, 0xCC4B, 0x59B9, 0xA966, + 0x59BA, 0xCC45, 0x59BB, 0xA964, 0x59BC, 0xCC4C, 0x59BD, 0xCC50, 0x59BE, 0xA963, 0x59C0, 0xCC51, 0x59C1, 0xCC4A, 0x59C3, 0xCC4D, + 0x59C5, 0xA972, 0x59C6, 0xA969, 0x59C7, 0xCC54, 0x59C8, 0xCC52, 0x59CA, 0xA96E, 0x59CB, 0xA96C, 0x59CC, 0xCC49, 0x59CD, 0xA96B, + 0x59CE, 0xCC47, 0x59CF, 0xCC46, 0x59D0, 0xA96A, 0x59D1, 0xA968, 0x59D2, 0xA971, 0x59D3, 0xA96D, 0x59D4, 0xA965, 0x59D6, 0xCC4E, + 0x59D8, 0xABB9, 0x59DA, 0xABC0, 0x59DB, 0xCE6F, 0x59DC, 0xABB8, 0x59DD, 0xCE67, 0x59DE, 0xCE63, 0x59E0, 0xCE73, 0x59E1, 0xCE62, + 0x59E3, 0xABBB, 0x59E4, 0xCE6C, 0x59E5, 0xABBE, 0x59E6, 0xABC1, 0x59E8, 0xABBC, 0x59E9, 0xCE70, 0x59EA, 0xABBF, 0x59EC, 0xAE56, + 0x59ED, 0xCE76, 0x59EE, 0xCE64, 0x59F1, 0xCE66, 0x59F2, 0xCE6D, 0x59F3, 0xCE71, 0x59F4, 0xCE75, 0x59F5, 0xCE72, 0x59F6, 0xCE6B, + 0x59F7, 0xCE6E, 0x59FA, 0xCE68, 0x59FB, 0xABC3, 0x59FC, 0xCE6A, 0x59FD, 0xCE69, 0x59FE, 0xCE74, 0x59FF, 0xABBA, 0x5A00, 0xCE65, + 0x5A01, 0xABC2, 0x5A03, 0xABBD, 0x5A09, 0xAE5C, 0x5A0A, 0xD162, 0x5A0C, 0xAE5B, 0x5A0F, 0xD160, 0x5A11, 0xAE50, 0x5A13, 0xAE55, + 0x5A15, 0xD15F, 0x5A16, 0xD15C, 0x5A17, 0xD161, 0x5A18, 0xAE51, 0x5A19, 0xD15B, 0x5A1B, 0xAE54, 0x5A1C, 0xAE52, 0x5A1E, 0xD163, + 0x5A1F, 0xAE53, 0x5A20, 0xAE57, 0x5A23, 0xAE58, 0x5A25, 0xAE5A, 0x5A29, 0xAE59, 0x5A2D, 0xD15D, 0x5A2E, 0xD15E, 0x5A33, 0xD164, + 0x5A35, 0xD4D4, 0x5A36, 0xB0F9, 0x5A37, 0xD8C2, 0x5A38, 0xD4D3, 0x5A39, 0xD4E6, 0x5A3C, 0xB140, 0x5A3E, 0xD4E4, 0x5A40, 0xB0FE, + 0x5A41, 0xB0FA, 0x5A42, 0xD4ED, 0x5A43, 0xD4DD, 0x5A44, 0xD4E0, 0x5A46, 0xB143, 0x5A47, 0xD4EA, 0x5A48, 0xD4E2, 0x5A49, 0xB0FB, + 0x5A4A, 0xB144, 0x5A4C, 0xD4E7, 0x5A4D, 0xD4E5, 0x5A50, 0xD4D6, 0x5A51, 0xD4EB, 0x5A52, 0xD4DF, 0x5A53, 0xD4DA, 0x5A55, 0xD4D0, + 0x5A56, 0xD4EC, 0x5A57, 0xD4DC, 0x5A58, 0xD4CF, 0x5A5A, 0xB142, 0x5A5B, 0xD4E1, 0x5A5C, 0xD4EE, 0x5A5D, 0xD4DE, 0x5A5E, 0xD4D2, + 0x5A5F, 0xD4D7, 0x5A60, 0xD4CE, 0x5A62, 0xB141, 0x5A64, 0xD4DB, 0x5A65, 0xD4D8, 0x5A66, 0xB0FC, 0x5A67, 0xD4D1, 0x5A69, 0xD4E9, + 0x5A6A, 0xB0FD, 0x5A6C, 0xD4D9, 0x5A6D, 0xD4D5, 0x5A70, 0xD4E8, 0x5A77, 0xB440, 0x5A78, 0xD8BB, 0x5A7A, 0xD8B8, 0x5A7B, 0xD8C9, + 0x5A7C, 0xD8BD, 0x5A7D, 0xD8CA, 0x5A7F, 0xB442, 0x5A83, 0xD8C6, 0x5A84, 0xD8C3, 0x5A8A, 0xD8C4, 0x5A8B, 0xD8C7, 0x5A8C, 0xD8CB, + 0x5A8E, 0xD4E3, 0x5A8F, 0xD8CD, 0x5A90, 0xDD47, 0x5A92, 0xB443, 0x5A93, 0xD8CE, 0x5A94, 0xD8B6, 0x5A95, 0xD8C0, 0x5A97, 0xD8C5, + 0x5A9A, 0xB441, 0x5A9B, 0xB444, 0x5A9C, 0xD8CC, 0x5A9D, 0xD8CF, 0x5A9E, 0xD8BA, 0x5A9F, 0xD8B7, 0x5AA2, 0xD8B9, 0x5AA5, 0xD8BE, + 0x5AA6, 0xD8BC, 0x5AA7, 0xB445, 0x5AA9, 0xD8C8, 0x5AAC, 0xD8BF, 0x5AAE, 0xD8C1, 0x5AAF, 0xD8B5, 0x5AB0, 0xDCFA, 0x5AB1, 0xDCF8, + 0x5AB2, 0xB742, 0x5AB3, 0xB740, 0x5AB4, 0xDD43, 0x5AB5, 0xDCF9, 0x5AB6, 0xDD44, 0x5AB7, 0xDD40, 0x5AB8, 0xDCF7, 0x5AB9, 0xDD46, + 0x5ABA, 0xDCF6, 0x5ABB, 0xDCFD, 0x5ABC, 0xB6FE, 0x5ABD, 0xB6FD, 0x5ABE, 0xB6FC, 0x5ABF, 0xDCFB, 0x5AC0, 0xDD41, 0x5AC1, 0xB6F9, + 0x5AC2, 0xB741, 0x5AC4, 0xDCF4, 0x5AC6, 0xDCFE, 0x5AC7, 0xDCF3, 0x5AC8, 0xDCFC, 0x5AC9, 0xB6FA, 0x5ACA, 0xDD42, 0x5ACB, 0xDCF5, + 0x5ACC, 0xB6FB, 0x5ACD, 0xDD45, 0x5AD5, 0xE16E, 0x5AD6, 0xB9E2, 0x5AD7, 0xB9E1, 0x5AD8, 0xB9E3, 0x5AD9, 0xE17A, 0x5ADA, 0xE170, + 0x5ADB, 0xE176, 0x5ADC, 0xE16B, 0x5ADD, 0xE179, 0x5ADE, 0xE178, 0x5ADF, 0xE17C, 0x5AE0, 0xE175, 0x5AE1, 0xB9DE, 0x5AE2, 0xE174, + 0x5AE3, 0xB9E4, 0x5AE5, 0xE16D, 0x5AE6, 0xB9DF, 0x5AE8, 0xE17B, 0x5AE9, 0xB9E0, 0x5AEA, 0xE16F, 0x5AEB, 0xE172, 0x5AEC, 0xE177, + 0x5AED, 0xE171, 0x5AEE, 0xE16C, 0x5AF3, 0xE173, 0x5AF4, 0xE555, 0x5AF5, 0xBC61, 0x5AF6, 0xE558, 0x5AF7, 0xE557, 0x5AF8, 0xE55A, + 0x5AF9, 0xE55C, 0x5AFA, 0xF9DC, 0x5AFB, 0xBC5F, 0x5AFD, 0xE556, 0x5AFF, 0xE554, 0x5B01, 0xE55D, 0x5B02, 0xE55B, 0x5B03, 0xE559, + 0x5B05, 0xE55F, 0x5B07, 0xE55E, 0x5B08, 0xBC63, 0x5B09, 0xBC5E, 0x5B0B, 0xBC60, 0x5B0C, 0xBC62, 0x5B0F, 0xE560, 0x5B10, 0xE957, + 0x5B13, 0xE956, 0x5B14, 0xE955, 0x5B16, 0xE958, 0x5B17, 0xE951, 0x5B19, 0xE952, 0x5B1A, 0xE95A, 0x5B1B, 0xE953, 0x5B1D, 0xBEC5, + 0x5B1E, 0xE95C, 0x5B20, 0xE95B, 0x5B21, 0xE954, 0x5B23, 0xECD1, 0x5B24, 0xC0A8, 0x5B25, 0xECCF, 0x5B26, 0xECD4, 0x5B27, 0xECD3, + 0x5B28, 0xE959, 0x5B2A, 0xC0A7, 0x5B2C, 0xECD2, 0x5B2D, 0xECCE, 0x5B2E, 0xECD6, 0x5B2F, 0xECD5, 0x5B30, 0xC0A6, 0x5B32, 0xECD0, + 0x5B34, 0xBEC6, 0x5B38, 0xC254, 0x5B3C, 0xEFC1, 0x5B3D, 0xF1FA, 0x5B3E, 0xF1FB, 0x5B3F, 0xF1FC, 0x5B40, 0xC45C, 0x5B43, 0xC45D, + 0x5B45, 0xF443, 0x5B47, 0xF5C8, 0x5B48, 0xF5C7, 0x5B4B, 0xF6DB, 0x5B4C, 0xF6DC, 0x5B4D, 0xF7D5, 0x5B4E, 0xF8A7, 0x5B50, 0xA46C, + 0x5B51, 0xA46D, 0x5B53, 0xA46E, 0x5B54, 0xA4D5, 0x5B55, 0xA5A5, 0x5B56, 0xC9D3, 0x5B57, 0xA672, 0x5B58, 0xA673, 0x5B5A, 0xA7B7, + 0x5B5B, 0xA7B8, 0x5B5C, 0xA7B6, 0x5B5D, 0xA7B5, 0x5B5F, 0xA973, 0x5B62, 0xCC55, 0x5B63, 0xA975, 0x5B64, 0xA974, 0x5B65, 0xCC56, + 0x5B69, 0xABC4, 0x5B6B, 0xAE5D, 0x5B6C, 0xD165, 0x5B6E, 0xD4F0, 0x5B70, 0xB145, 0x5B71, 0xB447, 0x5B72, 0xD4EF, 0x5B73, 0xB446, + 0x5B75, 0xB9E5, 0x5B77, 0xE17D, 0x5B78, 0xBEC7, 0x5B7A, 0xC0A9, 0x5B7B, 0xECD7, 0x5B7D, 0xC45E, 0x5B7F, 0xC570, 0x5B81, 0xC972, + 0x5B83, 0xA5A6, 0x5B84, 0xC973, 0x5B85, 0xA676, 0x5B87, 0xA674, 0x5B88, 0xA675, 0x5B89, 0xA677, 0x5B8B, 0xA7BA, 0x5B8C, 0xA7B9, + 0x5B8E, 0xCABC, 0x5B8F, 0xA7BB, 0x5B92, 0xCABD, 0x5B93, 0xCC57, 0x5B95, 0xCC58, 0x5B97, 0xA976, 0x5B98, 0xA978, 0x5B99, 0xA97A, + 0x5B9A, 0xA977, 0x5B9B, 0xA97B, 0x5B9C, 0xA979, 0x5BA2, 0xABC8, 0x5BA3, 0xABC5, 0x5BA4, 0xABC7, 0x5BA5, 0xABC9, 0x5BA6, 0xABC6, + 0x5BA7, 0xD166, 0x5BA8, 0xCE77, 0x5BAC, 0xD168, 0x5BAD, 0xD167, 0x5BAE, 0xAE63, 0x5BB0, 0xAE5F, 0x5BB3, 0xAE60, 0x5BB4, 0xAE62, + 0x5BB5, 0xAE64, 0x5BB6, 0xAE61, 0x5BB8, 0xAE66, 0x5BB9, 0xAE65, 0x5BBF, 0xB14A, 0x5BC0, 0xD4F2, 0x5BC1, 0xD4F1, 0x5BC2, 0xB149, + 0x5BC4, 0xB148, 0x5BC5, 0xB147, 0x5BC6, 0xB14B, 0x5BC7, 0xB146, 0x5BCA, 0xD8D5, 0x5BCB, 0xD8D2, 0x5BCC, 0xB449, 0x5BCD, 0xD8D1, + 0x5BCE, 0xD8D6, 0x5BD0, 0xB44B, 0x5BD1, 0xD8D4, 0x5BD2, 0xB448, 0x5BD3, 0xB44A, 0x5BD4, 0xD8D3, 0x5BD6, 0xDD48, 0x5BD8, 0xDD49, + 0x5BD9, 0xDD4A, 0x5BDE, 0xB9E6, 0x5BDF, 0xB9EE, 0x5BE0, 0xE17E, 0x5BE1, 0xB9E8, 0x5BE2, 0xB9EC, 0x5BE3, 0xE1A1, 0x5BE4, 0xB9ED, + 0x5BE5, 0xB9E9, 0x5BE6, 0xB9EA, 0x5BE7, 0xB9E7, 0x5BE8, 0xB9EB, 0x5BE9, 0xBC66, 0x5BEA, 0xD8D0, 0x5BEB, 0xBC67, 0x5BEC, 0xBC65, + 0x5BEE, 0xBC64, 0x5BEF, 0xE95D, 0x5BF0, 0xBEC8, 0x5BF1, 0xECD8, 0x5BF2, 0xECD9, 0x5BF5, 0xC364, 0x5BF6, 0xC45F, 0x5BF8, 0xA46F, + 0x5BFA, 0xA678, 0x5C01, 0xABCA, 0x5C03, 0xD169, 0x5C04, 0xAE67, 0x5C07, 0xB14E, 0x5C08, 0xB14D, 0x5C09, 0xB14C, 0x5C0A, 0xB44C, + 0x5C0B, 0xB44D, 0x5C0C, 0xD8D7, 0x5C0D, 0xB9EF, 0x5C0E, 0xBEC9, 0x5C0F, 0xA470, 0x5C10, 0xC95C, 0x5C11, 0xA4D6, 0x5C12, 0xC974, + 0x5C15, 0xC9D4, 0x5C16, 0xA679, 0x5C1A, 0xA97C, 0x5C1F, 0xDD4B, 0x5C22, 0xA471, 0x5C24, 0xA4D7, 0x5C25, 0xC9D5, 0x5C28, 0xCABE, + 0x5C2A, 0xCABF, 0x5C2C, 0xA7BC, 0x5C30, 0xD8D8, 0x5C31, 0xB44E, 0x5C33, 0xDD4C, 0x5C37, 0xC0AA, 0x5C38, 0xA472, 0x5C39, 0xA4A8, + 0x5C3A, 0xA4D8, 0x5C3B, 0xC975, 0x5C3C, 0xA5A7, 0x5C3E, 0xA7C0, 0x5C3F, 0xA7BF, 0x5C40, 0xA7BD, 0x5C41, 0xA7BE, 0x5C44, 0xCC59, + 0x5C45, 0xA97E, 0x5C46, 0xA9A1, 0x5C47, 0xCC5A, 0x5C48, 0xA97D, 0x5C4B, 0xABCE, 0x5C4C, 0xCE78, 0x5C4D, 0xABCD, 0x5C4E, 0xABCB, + 0x5C4F, 0xABCC, 0x5C50, 0xAE6A, 0x5C51, 0xAE68, 0x5C54, 0xD16B, 0x5C55, 0xAE69, 0x5C56, 0xD16A, 0x5C58, 0xAE5E, 0x5C59, 0xD4F3, + 0x5C5C, 0xB150, 0x5C5D, 0xB151, 0x5C60, 0xB14F, 0x5C62, 0xB9F0, 0x5C63, 0xE1A2, 0x5C64, 0xBC68, 0x5C65, 0xBC69, 0x5C67, 0xE561, + 0x5C68, 0xC0AB, 0x5C69, 0xEFC2, 0x5C6A, 0xEFC3, 0x5C6C, 0xC4DD, 0x5C6D, 0xF8A8, 0x5C6E, 0xC94B, 0x5C6F, 0xA4D9, 0x5C71, 0xA473, + 0x5C73, 0xC977, 0x5C74, 0xC976, 0x5C79, 0xA67A, 0x5C7A, 0xC9D7, 0x5C7B, 0xC9D8, 0x5C7C, 0xC9D6, 0x5C7E, 0xC9D9, 0x5C86, 0xCAC7, + 0x5C88, 0xCAC2, 0x5C89, 0xCAC4, 0x5C8A, 0xCAC6, 0x5C8B, 0xCAC3, 0x5C8C, 0xA7C4, 0x5C8D, 0xCAC0, 0x5C8F, 0xCAC1, 0x5C90, 0xA7C1, + 0x5C91, 0xA7C2, 0x5C92, 0xCAC5, 0x5C93, 0xCAC8, 0x5C94, 0xA7C3, 0x5C95, 0xCAC9, 0x5C9D, 0xCC68, 0x5C9F, 0xCC62, 0x5CA0, 0xCC5D, + 0x5CA1, 0xA9A3, 0x5CA2, 0xCC65, 0x5CA3, 0xCC63, 0x5CA4, 0xCC5C, 0x5CA5, 0xCC69, 0x5CA6, 0xCC6C, 0x5CA7, 0xCC67, 0x5CA8, 0xCC60, + 0x5CA9, 0xA9A5, 0x5CAA, 0xCC66, 0x5CAB, 0xA9A6, 0x5CAC, 0xCC61, 0x5CAD, 0xCC64, 0x5CAE, 0xCC5B, 0x5CAF, 0xCC5F, 0x5CB0, 0xCC6B, + 0x5CB1, 0xA9A7, 0x5CB3, 0xA9A8, 0x5CB5, 0xCC5E, 0x5CB6, 0xCC6A, 0x5CB7, 0xA9A2, 0x5CB8, 0xA9A4, 0x5CC6, 0xCEAB, 0x5CC7, 0xCEA4, + 0x5CC8, 0xCEAA, 0x5CC9, 0xCEA3, 0x5CCA, 0xCEA5, 0x5CCB, 0xCE7D, 0x5CCC, 0xCE7B, 0x5CCE, 0xCEAC, 0x5CCF, 0xCEA9, 0x5CD0, 0xCE79, + 0x5CD2, 0xABD0, 0x5CD3, 0xCEA7, 0x5CD4, 0xCEA8, 0x5CD6, 0xCEA6, 0x5CD7, 0xCE7C, 0x5CD8, 0xCE7A, 0x5CD9, 0xABCF, 0x5CDA, 0xCEA2, + 0x5CDB, 0xCE7E, 0x5CDE, 0xCEA1, 0x5CDF, 0xCEAD, 0x5CE8, 0xAE6F, 0x5CEA, 0xAE6E, 0x5CEC, 0xD16C, 0x5CED, 0xAE6B, 0x5CEE, 0xD16E, + 0x5CF0, 0xAE70, 0x5CF1, 0xD16F, 0x5CF4, 0xAE73, 0x5CF6, 0xAE71, 0x5CF7, 0xD170, 0x5CF8, 0xCEAE, 0x5CF9, 0xD172, 0x5CFB, 0xAE6D, + 0x5CFD, 0xAE6C, 0x5CFF, 0xD16D, 0x5D00, 0xD171, 0x5D01, 0xAE72, 0x5D06, 0xB153, 0x5D07, 0xB152, 0x5D0B, 0xD4F5, 0x5D0C, 0xD4F9, + 0x5D0D, 0xD4FB, 0x5D0E, 0xB154, 0x5D0F, 0xD4FE, 0x5D11, 0xB158, 0x5D12, 0xD541, 0x5D14, 0xB15A, 0x5D16, 0xB156, 0x5D17, 0xB15E, + 0x5D19, 0xB15B, 0x5D1A, 0xD4F7, 0x5D1B, 0xB155, 0x5D1D, 0xD4F6, 0x5D1E, 0xD4F4, 0x5D1F, 0xD543, 0x5D20, 0xD4F8, 0x5D22, 0xB157, + 0x5D23, 0xD542, 0x5D24, 0xB15C, 0x5D25, 0xD4FD, 0x5D26, 0xD4FC, 0x5D27, 0xB15D, 0x5D28, 0xD4FA, 0x5D29, 0xB159, 0x5D2E, 0xD544, + 0x5D30, 0xD540, 0x5D31, 0xD8E7, 0x5D32, 0xD8EE, 0x5D33, 0xD8E3, 0x5D34, 0xB451, 0x5D35, 0xD8DF, 0x5D36, 0xD8EF, 0x5D37, 0xD8D9, + 0x5D38, 0xD8EC, 0x5D39, 0xD8EA, 0x5D3A, 0xD8E4, 0x5D3C, 0xD8ED, 0x5D3D, 0xD8E6, 0x5D3F, 0xD8DE, 0x5D40, 0xD8F0, 0x5D41, 0xD8DC, + 0x5D42, 0xD8E9, 0x5D43, 0xD8DA, 0x5D45, 0xD8F1, 0x5D47, 0xB452, 0x5D49, 0xD8EB, 0x5D4A, 0xDD4F, 0x5D4B, 0xD8DD, 0x5D4C, 0xB44F, + 0x5D4E, 0xD8E1, 0x5D50, 0xB450, 0x5D51, 0xD8E0, 0x5D52, 0xD8E5, 0x5D55, 0xD8E2, 0x5D59, 0xD8E8, 0x5D5E, 0xDD53, 0x5D62, 0xDD56, + 0x5D63, 0xDD4E, 0x5D65, 0xDD50, 0x5D67, 0xDD55, 0x5D68, 0xDD54, 0x5D69, 0xB743, 0x5D6B, 0xD8DB, 0x5D6C, 0xDD52, 0x5D6F, 0xB744, + 0x5D71, 0xDD4D, 0x5D72, 0xDD51, 0x5D77, 0xE1A9, 0x5D79, 0xE1B0, 0x5D7A, 0xE1A7, 0x5D7C, 0xE1AE, 0x5D7D, 0xE1A5, 0x5D7E, 0xE1AD, + 0x5D7F, 0xE1B1, 0x5D80, 0xE1A4, 0x5D81, 0xE1A8, 0x5D82, 0xE1A3, 0x5D84, 0xB9F1, 0x5D86, 0xE1A6, 0x5D87, 0xB9F2, 0x5D88, 0xE1AC, + 0x5D89, 0xE1AB, 0x5D8A, 0xE1AA, 0x5D8D, 0xE1AF, 0x5D92, 0xE565, 0x5D93, 0xE567, 0x5D94, 0xBC6B, 0x5D95, 0xE568, 0x5D97, 0xE563, + 0x5D99, 0xE562, 0x5D9A, 0xE56C, 0x5D9C, 0xE56A, 0x5D9D, 0xBC6A, 0x5D9E, 0xE56D, 0x5D9F, 0xE564, 0x5DA0, 0xE569, 0x5DA1, 0xE56B, + 0x5DA2, 0xE566, 0x5DA7, 0xE961, 0x5DA8, 0xE966, 0x5DA9, 0xE960, 0x5DAA, 0xE965, 0x5DAC, 0xE95E, 0x5DAD, 0xE968, 0x5DAE, 0xE964, + 0x5DAF, 0xE969, 0x5DB0, 0xE963, 0x5DB1, 0xE95F, 0x5DB2, 0xE967, 0x5DB4, 0xE96A, 0x5DB5, 0xE962, 0x5DB7, 0xECDA, 0x5DB8, 0xC0AF, + 0x5DBA, 0xC0AD, 0x5DBC, 0xC0AC, 0x5DBD, 0xC0AE, 0x5DC0, 0xEFC4, 0x5DC2, 0xF172, 0x5DC3, 0xF1FD, 0x5DC6, 0xF444, 0x5DC7, 0xF445, + 0x5DC9, 0xC460, 0x5DCB, 0xF5C9, 0x5DCD, 0xC4DE, 0x5DCF, 0xF5CA, 0x5DD1, 0xF6DE, 0x5DD2, 0xC572, 0x5DD4, 0xC571, 0x5DD5, 0xF6DD, + 0x5DD6, 0xC5C9, 0x5DD8, 0xF7D6, 0x5DDD, 0xA474, 0x5DDE, 0xA67B, 0x5DDF, 0xC9DA, 0x5DE0, 0xCACA, 0x5DE1, 0xA8B5, 0x5DE2, 0xB15F, + 0x5DE5, 0xA475, 0x5DE6, 0xA5AA, 0x5DE7, 0xA5A9, 0x5DE8, 0xA5A8, 0x5DEB, 0xA7C5, 0x5DEE, 0xAE74, 0x5DF0, 0xDD57, 0x5DF1, 0xA476, + 0x5DF2, 0xA477, 0x5DF3, 0xA478, 0x5DF4, 0xA4DA, 0x5DF7, 0xABD1, 0x5DF9, 0xCEAF, 0x5DFD, 0xB453, 0x5DFE, 0xA479, 0x5DFF, 0xC95D, + 0x5E02, 0xA5AB, 0x5E03, 0xA5AC, 0x5E04, 0xC978, 0x5E06, 0xA67C, 0x5E0A, 0xCACB, 0x5E0C, 0xA7C6, 0x5E0E, 0xCACC, 0x5E11, 0xA9AE, + 0x5E14, 0xCC6E, 0x5E15, 0xA9AC, 0x5E16, 0xA9AB, 0x5E17, 0xCC6D, 0x5E18, 0xA9A9, 0x5E19, 0xCC6F, 0x5E1A, 0xA9AA, 0x5E1B, 0xA9AD, + 0x5E1D, 0xABD2, 0x5E1F, 0xABD4, 0x5E20, 0xCEB3, 0x5E21, 0xCEB0, 0x5E22, 0xCEB1, 0x5E23, 0xCEB2, 0x5E24, 0xCEB4, 0x5E25, 0xABD3, + 0x5E28, 0xD174, 0x5E29, 0xD173, 0x5E2B, 0xAE76, 0x5E2D, 0xAE75, 0x5E33, 0xB162, 0x5E34, 0xD546, 0x5E36, 0xB161, 0x5E37, 0xB163, + 0x5E38, 0xB160, 0x5E3D, 0xB455, 0x5E3E, 0xD545, 0x5E40, 0xB456, 0x5E41, 0xD8F3, 0x5E43, 0xB457, 0x5E44, 0xD8F2, 0x5E45, 0xB454, + 0x5E4A, 0xDD5A, 0x5E4B, 0xDD5C, 0x5E4C, 0xB745, 0x5E4D, 0xDD5B, 0x5E4E, 0xDD59, 0x5E4F, 0xDD58, 0x5E53, 0xE1B4, 0x5E54, 0xB9F7, + 0x5E55, 0xB9F5, 0x5E57, 0xB9F6, 0x5E58, 0xE1B2, 0x5E59, 0xE1B3, 0x5E5B, 0xB9F3, 0x5E5C, 0xE571, 0x5E5D, 0xE56F, 0x5E5F, 0xBC6D, + 0x5E60, 0xE570, 0x5E61, 0xBC6E, 0x5E62, 0xBC6C, 0x5E63, 0xB9F4, 0x5E66, 0xE96D, 0x5E67, 0xE96B, 0x5E68, 0xE96C, 0x5E69, 0xE56E, + 0x5E6A, 0xECDC, 0x5E6B, 0xC0B0, 0x5E6C, 0xECDB, 0x5E6D, 0xEFC5, 0x5E6E, 0xEFC6, 0x5E6F, 0xE96E, 0x5E70, 0xF1FE, 0x5E72, 0xA47A, + 0x5E73, 0xA5AD, 0x5E74, 0xA67E, 0x5E75, 0xC9DB, 0x5E76, 0xA67D, 0x5E78, 0xA9AF, 0x5E79, 0xB746, 0x5E7B, 0xA4DB, 0x5E7C, 0xA5AE, + 0x5E7D, 0xABD5, 0x5E7E, 0xB458, 0x5E80, 0xC979, 0x5E82, 0xC97A, 0x5E84, 0xC9DC, 0x5E87, 0xA7C8, 0x5E88, 0xCAD0, 0x5E89, 0xCACE, + 0x5E8A, 0xA7C9, 0x5E8B, 0xCACD, 0x5E8C, 0xCACF, 0x5E8D, 0xCAD1, 0x5E8F, 0xA7C7, 0x5E95, 0xA9B3, 0x5E96, 0xA9B4, 0x5E97, 0xA9B1, + 0x5E9A, 0xA9B0, 0x5E9B, 0xCEB8, 0x5E9C, 0xA9B2, 0x5EA0, 0xABD6, 0x5EA2, 0xCEB7, 0x5EA3, 0xCEB9, 0x5EA4, 0xCEB6, 0x5EA5, 0xCEBA, + 0x5EA6, 0xABD7, 0x5EA7, 0xAE79, 0x5EA8, 0xD175, 0x5EAA, 0xD177, 0x5EAB, 0xAE77, 0x5EAC, 0xD178, 0x5EAD, 0xAE78, 0x5EAE, 0xD176, + 0x5EB0, 0xCEB5, 0x5EB1, 0xD547, 0x5EB2, 0xD54A, 0x5EB3, 0xD54B, 0x5EB4, 0xD548, 0x5EB5, 0xB167, 0x5EB6, 0xB166, 0x5EB7, 0xB164, + 0x5EB8, 0xB165, 0x5EB9, 0xD549, 0x5EBE, 0xB168, 0x5EC1, 0xB45A, 0x5EC2, 0xB45B, 0x5EC4, 0xB45C, 0x5EC5, 0xDD5D, 0x5EC6, 0xDD5F, + 0x5EC7, 0xDD61, 0x5EC8, 0xB748, 0x5EC9, 0xB747, 0x5ECA, 0xB459, 0x5ECB, 0xDD60, 0x5ECC, 0xDD5E, 0x5ECE, 0xE1B8, 0x5ED1, 0xE1B6, + 0x5ED2, 0xE1BC, 0x5ED3, 0xB9F8, 0x5ED4, 0xE1BD, 0x5ED5, 0xE1BA, 0x5ED6, 0xB9F9, 0x5ED7, 0xE1B7, 0x5ED8, 0xE1B5, 0x5ED9, 0xE1BB, + 0x5EDA, 0xBC70, 0x5EDB, 0xE573, 0x5EDC, 0xE1B9, 0x5EDD, 0xBC72, 0x5EDE, 0xE574, 0x5EDF, 0xBC71, 0x5EE0, 0xBC74, 0x5EE1, 0xE575, + 0x5EE2, 0xBC6F, 0x5EE3, 0xBC73, 0x5EE5, 0xE973, 0x5EE6, 0xE971, 0x5EE7, 0xE970, 0x5EE8, 0xE972, 0x5EE9, 0xE96F, 0x5EEC, 0xC366, + 0x5EEE, 0xF446, 0x5EEF, 0xF447, 0x5EF1, 0xF5CB, 0x5EF2, 0xF6DF, 0x5EF3, 0xC655, 0x5EF6, 0xA9B5, 0x5EF7, 0xA7CA, 0x5EFA, 0xABD8, + 0x5EFE, 0xA47B, 0x5EFF, 0xA4DC, 0x5F01, 0xA5AF, 0x5F02, 0xC9DD, 0x5F04, 0xA7CB, 0x5F05, 0xCAD2, 0x5F07, 0xCEBB, 0x5F08, 0xABD9, + 0x5F0A, 0xB9FA, 0x5F0B, 0xA47C, 0x5F0F, 0xA6A1, 0x5F12, 0xB749, 0x5F13, 0xA47D, 0x5F14, 0xA4DD, 0x5F15, 0xA4DE, 0x5F17, 0xA5B1, + 0x5F18, 0xA5B0, 0x5F1A, 0xC9DE, 0x5F1B, 0xA6A2, 0x5F1D, 0xCAD3, 0x5F1F, 0xA7CC, 0x5F22, 0xCC71, 0x5F23, 0xCC72, 0x5F24, 0xCC73, + 0x5F26, 0xA9B6, 0x5F27, 0xA9B7, 0x5F28, 0xCC70, 0x5F29, 0xA9B8, 0x5F2D, 0xABDA, 0x5F2E, 0xCEBC, 0x5F30, 0xD17A, 0x5F31, 0xAE7A, + 0x5F33, 0xD179, 0x5F35, 0xB169, 0x5F36, 0xD54C, 0x5F37, 0xB16A, 0x5F38, 0xD54D, 0x5F3C, 0xB45D, 0x5F40, 0xDD62, 0x5F43, 0xE1BF, + 0x5F44, 0xE1BE, 0x5F46, 0xB9FB, 0x5F48, 0xBC75, 0x5F49, 0xE576, 0x5F4A, 0xBECA, 0x5F4B, 0xE974, 0x5F4C, 0xC0B1, 0x5F4E, 0xC573, + 0x5F4F, 0xF7D8, 0x5F54, 0xCC74, 0x5F56, 0xCEBD, 0x5F57, 0xB16B, 0x5F58, 0xD8F4, 0x5F59, 0xB74A, 0x5F5D, 0xC255, 0x5F62, 0xA7CE, + 0x5F64, 0xA7CD, 0x5F65, 0xABDB, 0x5F67, 0xD17B, 0x5F69, 0xB16D, 0x5F6A, 0xB343, 0x5F6B, 0xB16E, 0x5F6C, 0xB16C, 0x5F6D, 0xB45E, + 0x5F6F, 0xE1C0, 0x5F70, 0xB9FC, 0x5F71, 0xBC76, 0x5F73, 0xC94C, 0x5F74, 0xC9DF, 0x5F76, 0xCAD5, 0x5F77, 0xA7CF, 0x5F78, 0xCAD4, + 0x5F79, 0xA7D0, 0x5F7C, 0xA9BC, 0x5F7D, 0xCC77, 0x5F7E, 0xCC76, 0x5F7F, 0xA9BB, 0x5F80, 0xA9B9, 0x5F81, 0xA9BA, 0x5F82, 0xCC75, + 0x5F85, 0xABDD, 0x5F86, 0xCEBE, 0x5F87, 0xABE0, 0x5F88, 0xABDC, 0x5F89, 0xABE2, 0x5F8A, 0xABDE, 0x5F8B, 0xABDF, 0x5F8C, 0xABE1, + 0x5F90, 0xAE7D, 0x5F91, 0xAE7C, 0x5F92, 0xAE7B, 0x5F96, 0xD54F, 0x5F97, 0xB16F, 0x5F98, 0xB172, 0x5F99, 0xB170, 0x5F9B, 0xD54E, + 0x5F9C, 0xB175, 0x5F9E, 0xB171, 0x5F9F, 0xD550, 0x5FA0, 0xB174, 0x5FA1, 0xB173, 0x5FA5, 0xD8F6, 0x5FA6, 0xD8F5, 0x5FA8, 0xB461, + 0x5FA9, 0xB45F, 0x5FAA, 0xB460, 0x5FAB, 0xD8F7, 0x5FAC, 0xB74B, 0x5FAD, 0xDD64, 0x5FAE, 0xB74C, 0x5FAF, 0xDD63, 0x5FB2, 0xE577, + 0x5FB5, 0xBC78, 0x5FB6, 0xE1C1, 0x5FB7, 0xBC77, 0x5FB9, 0xB9FD, 0x5FBB, 0xECDE, 0x5FBC, 0xE975, 0x5FBD, 0xC0B2, 0x5FBE, 0xECDD, + 0x5FBF, 0xF240, 0x5FC0, 0xF448, 0x5FC1, 0xF449, 0x5FC3, 0xA4DF, 0x5FC5, 0xA5B2, 0x5FC9, 0xC97B, 0x5FCC, 0xA7D2, 0x5FCD, 0xA7D4, + 0x5FCF, 0xC9E2, 0x5FD0, 0xCAD8, 0x5FD1, 0xCAD7, 0x5FD2, 0xCAD6, 0x5FD4, 0xC9E1, 0x5FD5, 0xC9E0, 0x5FD6, 0xA6A4, 0x5FD7, 0xA7D3, + 0x5FD8, 0xA7D1, 0x5FD9, 0xA6A3, 0x5FDD, 0xA9BD, 0x5FDE, 0xCC78, 0x5FE0, 0xA9BE, 0x5FE1, 0xCADD, 0x5FE3, 0xCADF, 0x5FE4, 0xCADE, + 0x5FE5, 0xCC79, 0x5FE8, 0xCADA, 0x5FEA, 0xA7D8, 0x5FEB, 0xA7D6, 0x5FED, 0xCAD9, 0x5FEE, 0xCADB, 0x5FEF, 0xCAE1, 0x5FF1, 0xA7D5, + 0x5FF3, 0xCADC, 0x5FF4, 0xCAE5, 0x5FF5, 0xA9C0, 0x5FF7, 0xCAE2, 0x5FF8, 0xA7D7, 0x5FFA, 0xCAE0, 0x5FFB, 0xCAE3, 0x5FFD, 0xA9BF, + 0x5FFF, 0xA9C1, 0x6000, 0xCAE4, 0x6009, 0xCCAF, 0x600A, 0xCCA2, 0x600B, 0xCC7E, 0x600C, 0xCCAE, 0x600D, 0xCCA9, 0x600E, 0xABE7, + 0x600F, 0xA9C2, 0x6010, 0xCCAA, 0x6011, 0xCCAD, 0x6012, 0xABE3, 0x6013, 0xCCAC, 0x6014, 0xA9C3, 0x6015, 0xA9C8, 0x6016, 0xA9C6, + 0x6017, 0xCCA3, 0x6019, 0xCC7C, 0x601A, 0xCCA5, 0x601B, 0xA9CD, 0x601C, 0xCCB0, 0x601D, 0xABE4, 0x601E, 0xCCA6, 0x6020, 0xABE5, + 0x6021, 0xA9C9, 0x6022, 0xCCA8, 0x6024, 0xCECD, 0x6025, 0xABE6, 0x6026, 0xCC7B, 0x6027, 0xA9CA, 0x6028, 0xABE8, 0x6029, 0xA9CB, + 0x602A, 0xA9C7, 0x602B, 0xA9CC, 0x602C, 0xCCA7, 0x602D, 0xCC7A, 0x602E, 0xCCAB, 0x602F, 0xA9C4, 0x6032, 0xCC7D, 0x6033, 0xCCA4, + 0x6034, 0xCCA1, 0x6035, 0xA9C5, 0x6037, 0xCEBF, 0x6039, 0xCEC0, 0x6040, 0xCECA, 0x6041, 0xD1A1, 0x6042, 0xCECB, 0x6043, 0xABEE, + 0x6044, 0xCECE, 0x6045, 0xCEC4, 0x6046, 0xABED, 0x6047, 0xCEC6, 0x6049, 0xCEC7, 0x604C, 0xCEC9, 0x604D, 0xABE9, 0x6050, 0xAEA3, + 0x6052, 0xF9DA, 0x6053, 0xCEC5, 0x6054, 0xCEC1, 0x6055, 0xAEA4, 0x6058, 0xCECF, 0x6059, 0xAE7E, 0x605A, 0xD17D, 0x605B, 0xCEC8, + 0x605D, 0xD17C, 0x605E, 0xCEC3, 0x605F, 0xCECC, 0x6062, 0xABEC, 0x6063, 0xAEA1, 0x6064, 0xABF2, 0x6065, 0xAEA2, 0x6066, 0xCED0, + 0x6067, 0xD17E, 0x6068, 0xABEB, 0x6069, 0xAEA6, 0x606A, 0xABF1, 0x606B, 0xABF0, 0x606C, 0xABEF, 0x606D, 0xAEA5, 0x606E, 0xCED1, + 0x606F, 0xAEA7, 0x6070, 0xABEA, 0x6072, 0xCEC2, 0x607F, 0xB176, 0x6080, 0xD1A4, 0x6081, 0xD1A6, 0x6083, 0xD1A8, 0x6084, 0xAEA8, + 0x6085, 0xAEAE, 0x6086, 0xD553, 0x6087, 0xD1AC, 0x6088, 0xD1A3, 0x6089, 0xB178, 0x608A, 0xD551, 0x608C, 0xAEAD, 0x608D, 0xAEAB, + 0x608E, 0xD1AE, 0x6090, 0xD552, 0x6092, 0xD1A5, 0x6094, 0xAEAC, 0x6095, 0xD1A9, 0x6096, 0xAEAF, 0x6097, 0xD1AB, 0x609A, 0xAEAA, + 0x609B, 0xD1AA, 0x609C, 0xD1AD, 0x609D, 0xD1A7, 0x609F, 0xAEA9, 0x60A0, 0xB179, 0x60A2, 0xD1A2, 0x60A3, 0xB177, 0x60A8, 0xB17A, + 0x60B0, 0xD555, 0x60B1, 0xD55E, 0x60B2, 0xB464, 0x60B4, 0xB17C, 0x60B5, 0xB1A3, 0x60B6, 0xB465, 0x60B7, 0xD560, 0x60B8, 0xB1AA, + 0x60B9, 0xD8F9, 0x60BA, 0xD556, 0x60BB, 0xB1A2, 0x60BC, 0xB1A5, 0x60BD, 0xB17E, 0x60BE, 0xD554, 0x60BF, 0xD562, 0x60C0, 0xD565, + 0x60C1, 0xD949, 0x60C3, 0xD563, 0x60C4, 0xD8FD, 0x60C5, 0xB1A1, 0x60C6, 0xB1A8, 0x60C7, 0xB1AC, 0x60C8, 0xD55D, 0x60C9, 0xD8F8, + 0x60CA, 0xD561, 0x60CB, 0xB17B, 0x60CC, 0xD8FA, 0x60CD, 0xD564, 0x60CE, 0xD8FC, 0x60CF, 0xD559, 0x60D1, 0xB462, 0x60D3, 0xD557, + 0x60D4, 0xD558, 0x60D5, 0xB1A7, 0x60D8, 0xB1A6, 0x60D9, 0xD55B, 0x60DA, 0xB1AB, 0x60DB, 0xD55F, 0x60DC, 0xB1A4, 0x60DD, 0xD55C, + 0x60DF, 0xB1A9, 0x60E0, 0xB466, 0x60E1, 0xB463, 0x60E2, 0xD8FB, 0x60E4, 0xD55A, 0x60E6, 0xB17D, 0x60F0, 0xB46B, 0x60F1, 0xB46F, + 0x60F2, 0xD940, 0x60F3, 0xB751, 0x60F4, 0xB46D, 0x60F5, 0xD944, 0x60F6, 0xB471, 0x60F7, 0xDD65, 0x60F8, 0xD946, 0x60F9, 0xB753, + 0x60FA, 0xB469, 0x60FB, 0xB46C, 0x60FC, 0xD947, 0x60FE, 0xD948, 0x60FF, 0xD94E, 0x6100, 0xB473, 0x6101, 0xB754, 0x6103, 0xD94A, + 0x6104, 0xD94F, 0x6105, 0xD943, 0x6106, 0xB75E, 0x6108, 0xB755, 0x6109, 0xB472, 0x610A, 0xD941, 0x610B, 0xD950, 0x610D, 0xB75D, + 0x610E, 0xB470, 0x610F, 0xB74E, 0x6110, 0xD94D, 0x6112, 0xB474, 0x6113, 0xD945, 0x6114, 0xD8FE, 0x6115, 0xB46A, 0x6116, 0xD942, + 0x6118, 0xD94B, 0x611A, 0xB74D, 0x611B, 0xB752, 0x611C, 0xB467, 0x611D, 0xD94C, 0x611F, 0xB750, 0x6123, 0xB468, 0x6127, 0xB75C, + 0x6128, 0xE1C3, 0x6129, 0xDD70, 0x612B, 0xDD68, 0x612C, 0xE1C2, 0x612E, 0xDD6C, 0x612F, 0xDD6E, 0x6132, 0xDD6B, 0x6134, 0xB75B, + 0x6136, 0xDD6A, 0x6137, 0xB75F, 0x613B, 0xE1D2, 0x613E, 0xB75A, 0x613F, 0xBA40, 0x6140, 0xDD71, 0x6141, 0xE1C4, 0x6144, 0xB758, + 0x6145, 0xDD69, 0x6146, 0xDD6D, 0x6147, 0xB9FE, 0x6148, 0xB74F, 0x6149, 0xDD66, 0x614A, 0xDD67, 0x614B, 0xBA41, 0x614C, 0xB757, + 0x614D, 0xB759, 0x614E, 0xB756, 0x614F, 0xDD6F, 0x6152, 0xE1C8, 0x6153, 0xE1C9, 0x6154, 0xE1CE, 0x6155, 0xBC7D, 0x6156, 0xE1D5, + 0x6158, 0xBA47, 0x615A, 0xBA46, 0x615B, 0xE1D0, 0x615D, 0xBC7C, 0x615E, 0xE1C5, 0x615F, 0xBA45, 0x6161, 0xE1D4, 0x6162, 0xBA43, + 0x6163, 0xBA44, 0x6165, 0xE1D1, 0x6166, 0xE5AA, 0x6167, 0xBC7A, 0x6168, 0xB46E, 0x616A, 0xE1D3, 0x616B, 0xBCA3, 0x616C, 0xE1CB, + 0x616E, 0xBC7B, 0x6170, 0xBCA2, 0x6171, 0xE1C6, 0x6172, 0xE1CA, 0x6173, 0xE1C7, 0x6174, 0xE1CD, 0x6175, 0xBA48, 0x6176, 0xBC79, + 0x6177, 0xBA42, 0x6179, 0xE57A, 0x617A, 0xE1CF, 0x617C, 0xBCA1, 0x617E, 0xBCA4, 0x6180, 0xE1CC, 0x6182, 0xBC7E, 0x6183, 0xE579, + 0x6189, 0xE57E, 0x618A, 0xBECE, 0x618B, 0xE578, 0x618C, 0xE9A3, 0x618D, 0xE5A9, 0x618E, 0xBCA8, 0x6190, 0xBCA6, 0x6191, 0xBECC, + 0x6192, 0xE5A6, 0x6193, 0xE5A2, 0x6194, 0xBCAC, 0x6196, 0xE978, 0x619A, 0xBCAA, 0x619B, 0xE5A1, 0x619D, 0xE976, 0x619F, 0xE5A5, + 0x61A1, 0xE5A8, 0x61A2, 0xE57D, 0x61A4, 0xBCAB, 0x61A7, 0xBCA5, 0x61A8, 0xE977, 0x61A9, 0xBECD, 0x61AA, 0xE5A7, 0x61AB, 0xBCA7, + 0x61AC, 0xBCA9, 0x61AD, 0xE5A4, 0x61AE, 0xBCAD, 0x61AF, 0xE5A3, 0x61B0, 0xE57C, 0x61B1, 0xE57B, 0x61B2, 0xBECB, 0x61B3, 0xE5AB, + 0x61B4, 0xE97A, 0x61B5, 0xECE0, 0x61B6, 0xBED0, 0x61B8, 0xE9A2, 0x61BA, 0xE97E, 0x61BC, 0xECE1, 0x61BE, 0xBED1, 0x61BF, 0xE9A1, + 0x61C1, 0xE97C, 0x61C2, 0xC0B4, 0x61C3, 0xECDF, 0x61C5, 0xE979, 0x61C6, 0xE97B, 0x61C7, 0xC0B5, 0x61C8, 0xBED3, 0x61C9, 0xC0B3, + 0x61CA, 0xBED2, 0x61CB, 0xC0B7, 0x61CC, 0xE97D, 0x61CD, 0xBECF, 0x61D6, 0xEFCF, 0x61D8, 0xEFC7, 0x61DE, 0xECE7, 0x61DF, 0xEFC8, + 0x61E0, 0xECE3, 0x61E3, 0xC256, 0x61E4, 0xECE5, 0x61E5, 0xECE4, 0x61E6, 0xC0B6, 0x61E7, 0xECE2, 0x61E8, 0xECE6, 0x61E9, 0xEFD0, + 0x61EA, 0xEFCC, 0x61EB, 0xEFCE, 0x61ED, 0xEFC9, 0x61EE, 0xEFCA, 0x61F0, 0xEFCD, 0x61F1, 0xEFCB, 0x61F2, 0xC367, 0x61F5, 0xC36A, + 0x61F6, 0xC369, 0x61F7, 0xC368, 0x61F8, 0xC461, 0x61F9, 0xF44A, 0x61FA, 0xC462, 0x61FB, 0xF241, 0x61FC, 0xC4DF, 0x61FD, 0xF5CC, + 0x61FE, 0xC4E0, 0x61FF, 0xC574, 0x6200, 0xC5CA, 0x6201, 0xF7D9, 0x6203, 0xF7DA, 0x6204, 0xF7DB, 0x6207, 0xF9BA, 0x6208, 0xA4E0, + 0x6209, 0xC97C, 0x620A, 0xA5B3, 0x620C, 0xA6A6, 0x620D, 0xA6A7, 0x620E, 0xA6A5, 0x6210, 0xA6A8, 0x6211, 0xA7DA, 0x6212, 0xA7D9, + 0x6214, 0xCCB1, 0x6215, 0xA9CF, 0x6216, 0xA9CE, 0x6219, 0xD1AF, 0x621A, 0xB1AD, 0x621B, 0xB1AE, 0x621F, 0xB475, 0x6220, 0xDD72, + 0x6221, 0xB760, 0x6222, 0xB761, 0x6223, 0xDD74, 0x6224, 0xDD76, 0x6225, 0xDD75, 0x6227, 0xE1D7, 0x6229, 0xE1D6, 0x622A, 0xBA49, + 0x622B, 0xE1D8, 0x622D, 0xE5AC, 0x622E, 0xBCAE, 0x6230, 0xBED4, 0x6232, 0xC0B8, 0x6233, 0xC257, 0x6234, 0xC0B9, 0x6236, 0xA4E1, + 0x623A, 0xCAE6, 0x623D, 0xCCB2, 0x623E, 0xA9D1, 0x623F, 0xA9D0, 0x6240, 0xA9D2, 0x6241, 0xABF3, 0x6242, 0xCED2, 0x6243, 0xCED3, + 0x6246, 0xD1B0, 0x6247, 0xAEB0, 0x6248, 0xB1AF, 0x6249, 0xB476, 0x624A, 0xD951, 0x624B, 0xA4E2, 0x624D, 0xA47E, 0x624E, 0xA4E3, + 0x6250, 0xC97D, 0x6251, 0xA5B7, 0x6252, 0xA5B6, 0x6253, 0xA5B4, 0x6254, 0xA5B5, 0x6258, 0xA6AB, 0x6259, 0xC9E9, 0x625A, 0xC9EB, + 0x625B, 0xA6AA, 0x625C, 0xC9E3, 0x625E, 0xC9E4, 0x6260, 0xC9EA, 0x6261, 0xC9E6, 0x6262, 0xC9E8, 0x6263, 0xA6A9, 0x6264, 0xC9E5, + 0x6265, 0xC9EC, 0x6266, 0xC9E7, 0x626D, 0xA7E1, 0x626E, 0xA7EA, 0x626F, 0xA7E8, 0x6270, 0xCAF0, 0x6271, 0xCAED, 0x6272, 0xCAF5, + 0x6273, 0xA7E6, 0x6274, 0xCAF6, 0x6276, 0xA7DF, 0x6277, 0xCAF3, 0x6279, 0xA7E5, 0x627A, 0xCAEF, 0x627B, 0xCAEE, 0x627C, 0xA7E3, + 0x627D, 0xCAF4, 0x627E, 0xA7E4, 0x627F, 0xA9D3, 0x6280, 0xA7DE, 0x6281, 0xCAF1, 0x6283, 0xCAE7, 0x6284, 0xA7DB, 0x6286, 0xA7EE, + 0x6287, 0xCAEC, 0x6288, 0xCAF2, 0x6289, 0xA7E0, 0x628A, 0xA7E2, 0x628C, 0xCAE8, 0x628E, 0xCAE9, 0x628F, 0xCAEA, 0x6291, 0xA7ED, + 0x6292, 0xA7E7, 0x6293, 0xA7EC, 0x6294, 0xCAEB, 0x6295, 0xA7EB, 0x6296, 0xA7DD, 0x6297, 0xA7DC, 0x6298, 0xA7E9, 0x62A8, 0xA9E1, + 0x62A9, 0xCCBE, 0x62AA, 0xCCB7, 0x62AB, 0xA9DC, 0x62AC, 0xA9EF, 0x62AD, 0xCCB3, 0x62AE, 0xCCBA, 0x62AF, 0xCCBC, 0x62B0, 0xCCBF, + 0x62B1, 0xA9EA, 0x62B3, 0xCCBB, 0x62B4, 0xCCB4, 0x62B5, 0xA9E8, 0x62B6, 0xCCB8, 0x62B8, 0xCCC0, 0x62B9, 0xA9D9, 0x62BB, 0xCCBD, + 0x62BC, 0xA9E3, 0x62BD, 0xA9E2, 0x62BE, 0xCCB6, 0x62BF, 0xA9D7, 0x62C2, 0xA9D8, 0x62C4, 0xA9D6, 0x62C6, 0xA9EE, 0x62C7, 0xA9E6, + 0x62C8, 0xA9E0, 0x62C9, 0xA9D4, 0x62CA, 0xCCB9, 0x62CB, 0xA9DF, 0x62CC, 0xA9D5, 0x62CD, 0xA9E7, 0x62CE, 0xA9F0, 0x62CF, 0xCED4, + 0x62D0, 0xA9E4, 0x62D1, 0xCCB5, 0x62D2, 0xA9DA, 0x62D3, 0xA9DD, 0x62D4, 0xA9DE, 0x62D6, 0xA9EC, 0x62D7, 0xA9ED, 0x62D8, 0xA9EB, + 0x62D9, 0xA9E5, 0x62DA, 0xA9E9, 0x62DB, 0xA9DB, 0x62DC, 0xABF4, 0x62EB, 0xCEDA, 0x62EC, 0xAC41, 0x62ED, 0xABF8, 0x62EE, 0xABFA, + 0x62EF, 0xAC40, 0x62F0, 0xCEE6, 0x62F1, 0xABFD, 0x62F2, 0xD1B1, 0x62F3, 0xAEB1, 0x62F4, 0xAC43, 0x62F5, 0xCED7, 0x62F6, 0xCEDF, + 0x62F7, 0xABFE, 0x62F8, 0xCEDE, 0x62F9, 0xCEDB, 0x62FA, 0xCEE3, 0x62FB, 0xCEE5, 0x62FC, 0xABF7, 0x62FD, 0xABFB, 0x62FE, 0xAC42, + 0x62FF, 0xAEB3, 0x6300, 0xCEE0, 0x6301, 0xABF9, 0x6302, 0xAC45, 0x6303, 0xCED9, 0x6307, 0xABFC, 0x6308, 0xAEB2, 0x6309, 0xABF6, + 0x630B, 0xCED6, 0x630C, 0xCEDD, 0x630D, 0xCED5, 0x630E, 0xCED8, 0x630F, 0xCEDC, 0x6310, 0xD1B2, 0x6311, 0xAC44, 0x6313, 0xCEE1, + 0x6314, 0xCEE2, 0x6315, 0xCEE4, 0x6316, 0xABF5, 0x6328, 0xAEC1, 0x6329, 0xD1BE, 0x632A, 0xAEBF, 0x632B, 0xAEC0, 0x632C, 0xD1B4, + 0x632D, 0xD1C4, 0x632F, 0xAEB6, 0x6332, 0xD566, 0x6333, 0xD1C6, 0x6334, 0xD1C0, 0x6336, 0xD1B7, 0x6338, 0xD1C9, 0x6339, 0xD1BA, + 0x633A, 0xAEBC, 0x633B, 0xD57D, 0x633C, 0xD1BD, 0x633D, 0xAEBE, 0x633E, 0xAEB5, 0x6340, 0xD1CB, 0x6341, 0xD1BF, 0x6342, 0xAEB8, + 0x6343, 0xD1B8, 0x6344, 0xD1B5, 0x6345, 0xD1B6, 0x6346, 0xAEB9, 0x6347, 0xD1C5, 0x6348, 0xD1CC, 0x6349, 0xAEBB, 0x634A, 0xD1BC, + 0x634B, 0xD1BB, 0x634C, 0xAEC3, 0x634D, 0xAEC2, 0x634E, 0xAEB4, 0x634F, 0xAEBA, 0x6350, 0xAEBD, 0x6351, 0xD1C8, 0x6354, 0xD1C2, + 0x6355, 0xAEB7, 0x6356, 0xD1B3, 0x6357, 0xD1CA, 0x6358, 0xD1C1, 0x6359, 0xD1C3, 0x635A, 0xD1C7, 0x6365, 0xD567, 0x6367, 0xB1B7, + 0x6368, 0xB1CB, 0x6369, 0xB1CA, 0x636B, 0xB1BF, 0x636D, 0xD579, 0x636E, 0xD575, 0x636F, 0xD572, 0x6370, 0xD5A6, 0x6371, 0xB1BA, + 0x6372, 0xB1B2, 0x6375, 0xD577, 0x6376, 0xB4A8, 0x6377, 0xB1B6, 0x6378, 0xD5A1, 0x637A, 0xB1CC, 0x637B, 0xB1C9, 0x637C, 0xD57B, + 0x637D, 0xD56A, 0x6380, 0xB1C8, 0x6381, 0xD5A3, 0x6382, 0xD569, 0x6383, 0xB1BD, 0x6384, 0xB1C1, 0x6385, 0xD5A2, 0x6387, 0xD573, + 0x6388, 0xB1C2, 0x6389, 0xB1BC, 0x638A, 0xD568, 0x638C, 0xB478, 0x638D, 0xD5A5, 0x638E, 0xD571, 0x638F, 0xB1C7, 0x6390, 0xD574, + 0x6391, 0xD5A4, 0x6392, 0xB1C6, 0x6394, 0xD952, 0x6396, 0xB1B3, 0x6397, 0xD56F, 0x6398, 0xB1B8, 0x6399, 0xB1C3, 0x639B, 0xB1BE, + 0x639C, 0xD578, 0x639D, 0xD56E, 0x639E, 0xD56C, 0x639F, 0xD57E, 0x63A0, 0xB1B0, 0x63A1, 0xB1C4, 0x63A2, 0xB1B4, 0x63A3, 0xB477, + 0x63A4, 0xD57C, 0x63A5, 0xB1B5, 0x63A7, 0xB1B1, 0x63A8, 0xB1C0, 0x63A9, 0xB1BB, 0x63AA, 0xB1B9, 0x63AB, 0xD570, 0x63AC, 0xB1C5, + 0x63AD, 0xD56D, 0x63AE, 0xD57A, 0x63AF, 0xD576, 0x63B0, 0xD954, 0x63B1, 0xD953, 0x63BD, 0xD56B, 0x63BE, 0xD964, 0x63C0, 0xB47A, + 0x63C2, 0xD96A, 0x63C3, 0xD959, 0x63C4, 0xD967, 0x63C5, 0xDD77, 0x63C6, 0xB47D, 0x63C7, 0xD96B, 0x63C8, 0xD96E, 0x63C9, 0xB47C, + 0x63CA, 0xD95C, 0x63CB, 0xD96D, 0x63CC, 0xD96C, 0x63CD, 0xB47E, 0x63CE, 0xD955, 0x63CF, 0xB479, 0x63D0, 0xB4A3, 0x63D2, 0xB4A1, + 0x63D3, 0xD969, 0x63D5, 0xD95F, 0x63D6, 0xB4A5, 0x63D7, 0xD970, 0x63D8, 0xD968, 0x63D9, 0xD971, 0x63DA, 0xB4AD, 0x63DB, 0xB4AB, + 0x63DC, 0xD966, 0x63DD, 0xD965, 0x63DF, 0xD963, 0x63E0, 0xD95D, 0x63E1, 0xB4A4, 0x63E3, 0xB4A2, 0x63E4, 0xD1B9, 0x63E5, 0xD956, + 0x63E7, 0xDDB7, 0x63E8, 0xD957, 0x63E9, 0xB47B, 0x63EA, 0xB4AA, 0x63EB, 0xDD79, 0x63ED, 0xB4A6, 0x63EE, 0xB4A7, 0x63EF, 0xD958, + 0x63F0, 0xD96F, 0x63F1, 0xDD78, 0x63F2, 0xD960, 0x63F3, 0xD95B, 0x63F4, 0xB4A9, 0x63F5, 0xD961, 0x63F6, 0xD95E, 0x63F9, 0xB4AE, + 0x6406, 0xB770, 0x6409, 0xDD7C, 0x640A, 0xDDB1, 0x640B, 0xDDB6, 0x640C, 0xDDAA, 0x640D, 0xB76C, 0x640E, 0xDDBB, 0x640F, 0xB769, + 0x6410, 0xDD7A, 0x6412, 0xDD7B, 0x6413, 0xB762, 0x6414, 0xB76B, 0x6415, 0xDDA4, 0x6416, 0xB76E, 0x6417, 0xB76F, 0x6418, 0xDDA5, + 0x641A, 0xDDB2, 0x641B, 0xDDB8, 0x641C, 0xB76A, 0x641E, 0xB764, 0x641F, 0xDDA3, 0x6420, 0xDD7D, 0x6421, 0xDDBA, 0x6422, 0xDDA8, + 0x6423, 0xDDA9, 0x6424, 0xDD7E, 0x6425, 0xDDB4, 0x6426, 0xDDAB, 0x6427, 0xDDB5, 0x6428, 0xDDAD, 0x642A, 0xB765, 0x642B, 0xE1D9, + 0x642C, 0xB768, 0x642D, 0xB766, 0x642E, 0xDDB9, 0x642F, 0xDDB0, 0x6430, 0xDDAC, 0x6433, 0xDDA1, 0x6434, 0xBA53, 0x6435, 0xDDAF, + 0x6436, 0xB76D, 0x6437, 0xDDA7, 0x6439, 0xDDA6, 0x643D, 0xB767, 0x643E, 0xB763, 0x643F, 0xE1EE, 0x6440, 0xDDB3, 0x6441, 0xDDAE, + 0x6443, 0xDDA2, 0x644B, 0xE1E9, 0x644D, 0xE1DA, 0x644E, 0xE1E5, 0x6450, 0xE1EC, 0x6451, 0xBA51, 0x6452, 0xB4AC, 0x6453, 0xE1EA, + 0x6454, 0xBA4C, 0x6458, 0xBA4B, 0x6459, 0xE1F1, 0x645B, 0xE1DB, 0x645C, 0xE1E8, 0x645D, 0xE1DC, 0x645E, 0xE1E7, 0x645F, 0xBA4F, + 0x6460, 0xE1EB, 0x6461, 0xD962, 0x6465, 0xE1F2, 0x6466, 0xE1E3, 0x6467, 0xBA52, 0x6468, 0xE5BA, 0x6469, 0xBCAF, 0x646B, 0xE1F0, + 0x646C, 0xE1EF, 0x646D, 0xBA54, 0x646E, 0xE5AD, 0x646F, 0xBCB0, 0x6470, 0xE5AE, 0x6472, 0xE1DF, 0x6473, 0xE1E0, 0x6474, 0xE1DD, + 0x6475, 0xE1E2, 0x6476, 0xE1DE, 0x6477, 0xE1F3, 0x6478, 0xBA4E, 0x6479, 0xBCB1, 0x647A, 0xBA50, 0x647B, 0xBA55, 0x647D, 0xE1E1, + 0x647F, 0xE1ED, 0x6482, 0xE1E6, 0x6485, 0xE5B1, 0x6487, 0xBA4A, 0x6488, 0xBCB4, 0x6489, 0xE9AA, 0x648A, 0xE5B6, 0x648B, 0xE5B5, + 0x648C, 0xE5B7, 0x648F, 0xE5B4, 0x6490, 0xBCB5, 0x6492, 0xBCBB, 0x6493, 0xBCB8, 0x6495, 0xBCB9, 0x6496, 0xE5AF, 0x6497, 0xE5B2, + 0x6498, 0xE5BC, 0x6499, 0xBCC1, 0x649A, 0xBCBF, 0x649C, 0xE5B3, 0x649D, 0xD95A, 0x649E, 0xBCB2, 0x649F, 0xE5B9, 0x64A0, 0xE5B0, + 0x64A2, 0xBCC2, 0x64A3, 0xE5B8, 0x64A4, 0xBA4D, 0x64A5, 0xBCB7, 0x64A6, 0xE1E4, 0x64A9, 0xBCBA, 0x64AB, 0xBCBE, 0x64AC, 0xBCC0, + 0x64AD, 0xBCBD, 0x64AE, 0xBCBC, 0x64B0, 0xBCB6, 0x64B1, 0xE5BB, 0x64B2, 0xBCB3, 0x64B3, 0xBCC3, 0x64BB, 0xBED8, 0x64BC, 0xBED9, + 0x64BD, 0xE9A9, 0x64BE, 0xBEE2, 0x64BF, 0xBEDF, 0x64C1, 0xBED6, 0x64C2, 0xBEDD, 0x64C3, 0xE9AB, 0x64C4, 0xBEDB, 0x64C5, 0xBED5, + 0x64C7, 0xBEDC, 0x64C9, 0xE9A8, 0x64CA, 0xC0BB, 0x64CB, 0xBED7, 0x64CD, 0xBEDE, 0x64CE, 0xC0BA, 0x64CF, 0xE9A7, 0x64D0, 0xE9A6, + 0x64D2, 0xBEE0, 0x64D4, 0xBEE1, 0x64D6, 0xE9A5, 0x64D7, 0xE9A4, 0x64D8, 0xC0BC, 0x64D9, 0xE9AE, 0x64DA, 0xBEDA, 0x64DB, 0xE9AC, + 0x64E0, 0xC0BD, 0x64E2, 0xC0C2, 0x64E3, 0xECEA, 0x64E4, 0xECEC, 0x64E6, 0xC0BF, 0x64E8, 0xECED, 0x64E9, 0xECE9, 0x64EB, 0xECEB, + 0x64EC, 0xC0C0, 0x64ED, 0xC0C3, 0x64EF, 0xECE8, 0x64F0, 0xC0BE, 0x64F1, 0xC0C1, 0x64F2, 0xC259, 0x64F3, 0xE9AD, 0x64F4, 0xC258, + 0x64F7, 0xC25E, 0x64F8, 0xEFD4, 0x64FA, 0xC25C, 0x64FB, 0xC25D, 0x64FC, 0xEFD7, 0x64FD, 0xEFD3, 0x64FE, 0xC25A, 0x64FF, 0xEFD1, + 0x6500, 0xC36B, 0x6501, 0xEFD5, 0x6503, 0xEFD6, 0x6504, 0xEFD2, 0x6506, 0xC25B, 0x6507, 0xF242, 0x6509, 0xF245, 0x650C, 0xF246, + 0x650D, 0xF244, 0x650E, 0xF247, 0x650F, 0xC36C, 0x6510, 0xF243, 0x6513, 0xF44E, 0x6514, 0xC464, 0x6515, 0xF44D, 0x6516, 0xF44C, + 0x6517, 0xF44B, 0x6518, 0xC463, 0x6519, 0xC465, 0x651B, 0xF5CD, 0x651C, 0xC4E2, 0x651D, 0xC4E1, 0x6520, 0xF6E1, 0x6521, 0xF6E0, + 0x6522, 0xF6E3, 0x6523, 0xC5CB, 0x6524, 0xC575, 0x6525, 0xF7DD, 0x6526, 0xF6E2, 0x6529, 0xF7DC, 0x652A, 0xC5CD, 0x652B, 0xC5CC, + 0x652C, 0xC5F3, 0x652D, 0xF8A9, 0x652E, 0xF8EF, 0x652F, 0xA4E4, 0x6532, 0xD972, 0x6533, 0xE9AF, 0x6536, 0xA6AC, 0x6537, 0xCAF7, + 0x6538, 0xA7F1, 0x6539, 0xA7EF, 0x653B, 0xA7F0, 0x653D, 0xCCC1, 0x653E, 0xA9F1, 0x653F, 0xAC46, 0x6541, 0xCEE7, 0x6543, 0xCEE8, + 0x6545, 0xAC47, 0x6546, 0xD1CE, 0x6548, 0xAEC4, 0x6549, 0xAEC5, 0x654A, 0xD1CD, 0x654F, 0xB1D3, 0x6551, 0xB1CF, 0x6553, 0xD5A7, + 0x6554, 0xB1D6, 0x6555, 0xB1D5, 0x6556, 0xB1CE, 0x6557, 0xB1D1, 0x6558, 0xB1D4, 0x6559, 0xB1D0, 0x655C, 0xD976, 0x655D, 0xB1CD, + 0x655E, 0xB4AF, 0x6562, 0xB4B1, 0x6563, 0xB4B2, 0x6564, 0xD975, 0x6565, 0xD978, 0x6566, 0xB4B0, 0x6567, 0xD973, 0x6568, 0xD977, + 0x656A, 0xD974, 0x656C, 0xB771, 0x656F, 0xDDBC, 0x6572, 0xBA56, 0x6573, 0xE1F4, 0x6574, 0xBEE3, 0x6575, 0xBCC4, 0x6576, 0xE5BD, + 0x6577, 0xBCC5, 0x6578, 0xBCC6, 0x6579, 0xE5BF, 0x657A, 0xE5BE, 0x657B, 0xE5C0, 0x657C, 0xE9B1, 0x657F, 0xE9B0, 0x6580, 0xECEF, + 0x6581, 0xECEE, 0x6582, 0xC0C4, 0x6583, 0xC0C5, 0x6584, 0xF248, 0x6587, 0xA4E5, 0x658C, 0xD979, 0x6590, 0xB4B4, 0x6591, 0xB4B3, + 0x6592, 0xDDBD, 0x6594, 0xEFD8, 0x6595, 0xC4E3, 0x6596, 0xF7DE, 0x6597, 0xA4E6, 0x6599, 0xAEC6, 0x659B, 0xB1D8, 0x659C, 0xB1D7, + 0x659D, 0xD97A, 0x659E, 0xD97B, 0x659F, 0xB772, 0x65A0, 0xE1F5, 0x65A1, 0xBA57, 0x65A2, 0xE9B2, 0x65A4, 0xA4E7, 0x65A5, 0xA5B8, + 0x65A7, 0xA9F2, 0x65A8, 0xCCC2, 0x65AA, 0xCEE9, 0x65AB, 0xAC48, 0x65AC, 0xB1D9, 0x65AE, 0xD97C, 0x65AF, 0xB4B5, 0x65B0, 0xB773, + 0x65B2, 0xE5C1, 0x65B3, 0xE5C2, 0x65B6, 0xECF0, 0x65B7, 0xC25F, 0x65B8, 0xF8F0, 0x65B9, 0xA4E8, 0x65BB, 0xCCC3, 0x65BC, 0xA9F3, + 0x65BD, 0xAC49, 0x65BF, 0xCEEA, 0x65C1, 0xAEC7, 0x65C2, 0xD1D2, 0x65C3, 0xD1D0, 0x65C4, 0xD1D1, 0x65C5, 0xAEC8, 0x65C6, 0xD1CF, + 0x65CB, 0xB1DB, 0x65CC, 0xB1DC, 0x65CD, 0xD5A8, 0x65CE, 0xB1DD, 0x65CF, 0xB1DA, 0x65D0, 0xD97D, 0x65D2, 0xD97E, 0x65D3, 0xDDBE, + 0x65D6, 0xBA59, 0x65D7, 0xBA58, 0x65DA, 0xECF1, 0x65DB, 0xEFD9, 0x65DD, 0xF24A, 0x65DE, 0xF249, 0x65DF, 0xF44F, 0x65E1, 0xC95E, + 0x65E2, 0xAC4A, 0x65E5, 0xA4E9, 0x65E6, 0xA5B9, 0x65E8, 0xA6AE, 0x65E9, 0xA6AD, 0x65EC, 0xA6AF, 0x65ED, 0xA6B0, 0x65EE, 0xC9EE, + 0x65EF, 0xC9ED, 0x65F0, 0xCAF8, 0x65F1, 0xA7F2, 0x65F2, 0xCAFB, 0x65F3, 0xCAFA, 0x65F4, 0xCAF9, 0x65F5, 0xCAFC, 0x65FA, 0xA9F4, + 0x65FB, 0xCCC9, 0x65FC, 0xCCC5, 0x65FD, 0xCCCE, 0x6600, 0xA9FB, 0x6602, 0xA9F9, 0x6603, 0xCCCA, 0x6604, 0xCCC6, 0x6605, 0xCCCD, + 0x6606, 0xA9F8, 0x6607, 0xAA40, 0x6608, 0xCCC8, 0x6609, 0xCCC4, 0x660A, 0xA9FE, 0x660B, 0xCCCB, 0x660C, 0xA9F7, 0x660D, 0xCCCC, + 0x660E, 0xA9FA, 0x660F, 0xA9FC, 0x6610, 0xCCD0, 0x6611, 0xCCCF, 0x6612, 0xCCC7, 0x6613, 0xA9F6, 0x6614, 0xA9F5, 0x6615, 0xA9FD, + 0x661C, 0xCEEF, 0x661D, 0xCEF5, 0x661F, 0xAC50, 0x6620, 0xAC4D, 0x6621, 0xCEEC, 0x6622, 0xCEF1, 0x6624, 0xAC53, 0x6625, 0xAC4B, + 0x6626, 0xCEF0, 0x6627, 0xAC4E, 0x6628, 0xAC51, 0x662B, 0xCEF3, 0x662D, 0xAC4C, 0x662E, 0xCEF8, 0x662F, 0xAC4F, 0x6631, 0xAC52, + 0x6632, 0xCEED, 0x6633, 0xCEF2, 0x6634, 0xCEF6, 0x6635, 0xCEEE, 0x6636, 0xCEEB, 0x6639, 0xCEF7, 0x663A, 0xCEF4, 0x6641, 0xAED0, + 0x6642, 0xAEC9, 0x6643, 0xAECC, 0x6645, 0xAECF, 0x6647, 0xD1D5, 0x6649, 0xAECA, 0x664A, 0xD1D3, 0x664C, 0xAECE, 0x664F, 0xAECB, + 0x6651, 0xD1D6, 0x6652, 0xAECD, 0x6659, 0xD5AC, 0x665A, 0xB1DF, 0x665B, 0xD5AB, 0x665C, 0xD5AD, 0x665D, 0xB1DE, 0x665E, 0xB1E3, + 0x665F, 0xD1D4, 0x6661, 0xD5AA, 0x6662, 0xD5AE, 0x6664, 0xB1E0, 0x6665, 0xD5A9, 0x6666, 0xB1E2, 0x6668, 0xB1E1, 0x666A, 0xD9A7, + 0x666C, 0xD9A2, 0x666E, 0xB4B6, 0x666F, 0xB4BA, 0x6670, 0xB4B7, 0x6671, 0xD9A5, 0x6672, 0xD9A8, 0x6674, 0xB4B8, 0x6676, 0xB4B9, + 0x6677, 0xB4BE, 0x6678, 0xDDC7, 0x6679, 0xD9A6, 0x667A, 0xB4BC, 0x667B, 0xD9A3, 0x667C, 0xD9A1, 0x667E, 0xB4BD, 0x6680, 0xD9A4, + 0x6684, 0xB779, 0x6686, 0xDDBF, 0x6687, 0xB776, 0x6688, 0xB777, 0x6689, 0xB775, 0x668A, 0xDDC4, 0x668B, 0xDDC3, 0x668C, 0xDDC0, + 0x668D, 0xB77B, 0x6690, 0xDDC2, 0x6691, 0xB4BB, 0x6694, 0xDDC6, 0x6695, 0xDDC1, 0x6696, 0xB778, 0x6697, 0xB774, 0x6698, 0xB77A, + 0x6699, 0xDDC5, 0x669D, 0xBA5C, 0x669F, 0xE1F8, 0x66A0, 0xE1F7, 0x66A1, 0xE1F6, 0x66A2, 0xBA5A, 0x66A8, 0xBA5B, 0x66A9, 0xE5C5, + 0x66AA, 0xE5C8, 0x66AB, 0xBCC8, 0x66AE, 0xBCC7, 0x66AF, 0xE5C9, 0x66B0, 0xE5C4, 0x66B1, 0xBCCA, 0x66B2, 0xE5C6, 0x66B4, 0xBCC9, + 0x66B5, 0xE5C3, 0x66B7, 0xE5C7, 0x66B8, 0xBEE9, 0x66B9, 0xBEE6, 0x66BA, 0xE9BB, 0x66BB, 0xE9BA, 0x66BD, 0xE9B9, 0x66BE, 0xE9B4, + 0x66C0, 0xE9B5, 0x66C4, 0xBEE7, 0x66C6, 0xBEE4, 0x66C7, 0xBEE8, 0x66C8, 0xE9B3, 0x66C9, 0xBEE5, 0x66CA, 0xE9B6, 0x66CB, 0xE9B7, + 0x66CC, 0xE9BC, 0x66CF, 0xE9B8, 0x66D2, 0xECF2, 0x66D6, 0xC0C7, 0x66D8, 0xEFDC, 0x66D9, 0xC0C6, 0x66DA, 0xEFDA, 0x66DB, 0xEFDB, + 0x66DC, 0xC260, 0x66DD, 0xC36E, 0x66DE, 0xF24B, 0x66E0, 0xC36D, 0x66E3, 0xF451, 0x66E4, 0xF452, 0x66E6, 0xC466, 0x66E8, 0xF450, + 0x66E9, 0xC4E4, 0x66EB, 0xF7DF, 0x66EC, 0xC5CE, 0x66ED, 0xF8AA, 0x66EE, 0xF8AB, 0x66F0, 0xA4EA, 0x66F2, 0xA6B1, 0x66F3, 0xA6B2, + 0x66F4, 0xA7F3, 0x66F6, 0xCCD1, 0x66F7, 0xAC54, 0x66F8, 0xAED1, 0x66F9, 0xB1E4, 0x66FC, 0xB0D2, 0x66FE, 0xB4BF, 0x66FF, 0xB4C0, + 0x6700, 0xB3CC, 0x6701, 0xD9A9, 0x6703, 0xB77C, 0x6704, 0xE1FA, 0x6705, 0xE1F9, 0x6708, 0xA4EB, 0x6709, 0xA6B3, 0x670A, 0xCCD2, + 0x670B, 0xAA42, 0x670D, 0xAA41, 0x670F, 0xCEF9, 0x6710, 0xCEFA, 0x6712, 0xD1D7, 0x6713, 0xD1D8, 0x6714, 0xAED2, 0x6715, 0xAED3, + 0x6717, 0xAED4, 0x6718, 0xD5AF, 0x671B, 0xB1E6, 0x671D, 0xB4C2, 0x671F, 0xB4C1, 0x6720, 0xDDC8, 0x6721, 0xDF7A, 0x6722, 0xE1FB, + 0x6723, 0xE9BD, 0x6726, 0xC261, 0x6727, 0xC467, 0x6728, 0xA4EC, 0x672A, 0xA5BC, 0x672B, 0xA5BD, 0x672C, 0xA5BB, 0x672D, 0xA5BE, + 0x672E, 0xA5BA, 0x6731, 0xA6B6, 0x6733, 0xC9F6, 0x6734, 0xA6B5, 0x6735, 0xA6B7, 0x6738, 0xC9F1, 0x6739, 0xC9F0, 0x673A, 0xC9F3, + 0x673B, 0xC9F2, 0x673C, 0xC9F5, 0x673D, 0xA6B4, 0x673E, 0xC9EF, 0x673F, 0xC9F4, 0x6745, 0xCAFD, 0x6746, 0xA7FD, 0x6747, 0xCAFE, + 0x6748, 0xCB43, 0x6749, 0xA7FC, 0x674B, 0xCB47, 0x674C, 0xCB42, 0x674D, 0xCB45, 0x674E, 0xA7F5, 0x674F, 0xA7F6, 0x6750, 0xA7F7, + 0x6751, 0xA7F8, 0x6753, 0xA840, 0x6755, 0xCB41, 0x6756, 0xA7FA, 0x6757, 0xA841, 0x6759, 0xCB40, 0x675A, 0xCB46, 0x675C, 0xA7F9, + 0x675D, 0xCB44, 0x675E, 0xA7FB, 0x675F, 0xA7F4, 0x6760, 0xA7FE, 0x676A, 0xAA57, 0x676C, 0xCCD4, 0x676D, 0xAA43, 0x676F, 0xAA4D, + 0x6770, 0xAA4E, 0x6771, 0xAA46, 0x6772, 0xAA58, 0x6773, 0xAA48, 0x6774, 0xCCDC, 0x6775, 0xAA53, 0x6776, 0xCCD7, 0x6777, 0xAA49, + 0x6778, 0xCCE6, 0x6779, 0xCCE7, 0x677A, 0xCCDF, 0x677B, 0xCCD8, 0x677C, 0xAA56, 0x677D, 0xCCE4, 0x677E, 0xAA51, 0x677F, 0xAA4F, + 0x6781, 0xCCE5, 0x6783, 0xCCE3, 0x6784, 0xCCDB, 0x6785, 0xCCD3, 0x6786, 0xCCDA, 0x6787, 0xAA4A, 0x6789, 0xAA50, 0x678B, 0xAA44, + 0x678C, 0xCCDE, 0x678D, 0xCCDD, 0x678E, 0xCCD5, 0x6790, 0xAA52, 0x6791, 0xCCE1, 0x6792, 0xCCD6, 0x6793, 0xAA55, 0x6794, 0xCCE8, + 0x6795, 0xAA45, 0x6797, 0xAA4C, 0x6798, 0xCCD9, 0x6799, 0xCCE2, 0x679A, 0xAA54, 0x679C, 0xAA47, 0x679D, 0xAA4B, 0x679F, 0xCCE0, + 0x67AE, 0xCF5B, 0x67AF, 0xAC5C, 0x67B0, 0xAC69, 0x67B2, 0xCF56, 0x67B3, 0xCF4C, 0x67B4, 0xAC62, 0x67B5, 0xCF4A, 0x67B6, 0xAC5B, + 0x67B7, 0xCF45, 0x67B8, 0xAC65, 0x67B9, 0xCF52, 0x67BA, 0xCEFE, 0x67BB, 0xCF41, 0x67C0, 0xCF44, 0x67C1, 0xCEFB, 0x67C2, 0xCF51, + 0x67C3, 0xCF61, 0x67C4, 0xAC60, 0x67C5, 0xCF46, 0x67C6, 0xCF58, 0x67C8, 0xCEFD, 0x67C9, 0xCF5F, 0x67CA, 0xCF60, 0x67CB, 0xCF63, + 0x67CC, 0xCF5A, 0x67CD, 0xCF4B, 0x67CE, 0xCF53, 0x67CF, 0xAC66, 0x67D0, 0xAC59, 0x67D1, 0xAC61, 0x67D2, 0xAC6D, 0x67D3, 0xAC56, + 0x67D4, 0xAC58, 0x67D8, 0xCF43, 0x67D9, 0xAC6A, 0x67DA, 0xAC63, 0x67DB, 0xCF5D, 0x67DC, 0xCF40, 0x67DD, 0xAC6C, 0x67DE, 0xAC67, + 0x67DF, 0xCF49, 0x67E2, 0xAC6B, 0x67E3, 0xCF50, 0x67E4, 0xCF48, 0x67E5, 0xAC64, 0x67E6, 0xCF5C, 0x67E7, 0xCF54, 0x67E9, 0xAC5E, + 0x67EA, 0xCF62, 0x67EB, 0xCF47, 0x67EC, 0xAC5A, 0x67ED, 0xCF59, 0x67EE, 0xCF4F, 0x67EF, 0xAC5F, 0x67F0, 0xCF55, 0x67F1, 0xAC57, + 0x67F2, 0xCEFC, 0x67F3, 0xAC68, 0x67F4, 0xAEE3, 0x67F5, 0xAC5D, 0x67F6, 0xCF4E, 0x67F7, 0xCF4D, 0x67F8, 0xCF42, 0x67FA, 0xCF5E, + 0x67FC, 0xCF57, 0x67FF, 0xAC55, 0x6812, 0xD1EC, 0x6813, 0xAEEA, 0x6814, 0xD1ED, 0x6816, 0xD1E1, 0x6817, 0xAEDF, 0x6818, 0xAEEB, + 0x681A, 0xD1DA, 0x681C, 0xD1E3, 0x681D, 0xD1EB, 0x681F, 0xD1D9, 0x6820, 0xD1F4, 0x6821, 0xAED5, 0x6825, 0xD1F3, 0x6826, 0xD1EE, + 0x6828, 0xD1EF, 0x6829, 0xAEDD, 0x682A, 0xAEE8, 0x682B, 0xD1E5, 0x682D, 0xD1E6, 0x682E, 0xD1F0, 0x682F, 0xD1E7, 0x6831, 0xD1E2, + 0x6832, 0xD1DC, 0x6833, 0xD1DD, 0x6834, 0xD1EA, 0x6835, 0xD1E4, 0x6838, 0xAED6, 0x6839, 0xAEDA, 0x683A, 0xD1F2, 0x683B, 0xD1DE, + 0x683C, 0xAEE6, 0x683D, 0xAEE2, 0x6840, 0xAEE5, 0x6841, 0xAEEC, 0x6842, 0xAEDB, 0x6843, 0xAEE7, 0x6844, 0xD1E9, 0x6845, 0xAEE9, + 0x6846, 0xAED8, 0x6848, 0xAED7, 0x6849, 0xD1DB, 0x684B, 0xD1DF, 0x684C, 0xAEE0, 0x684D, 0xD1F1, 0x684E, 0xD1E8, 0x684F, 0xD1E0, + 0x6850, 0xAEE4, 0x6851, 0xAEE1, 0x6853, 0xAED9, 0x6854, 0xAEDC, 0x686B, 0xD5C4, 0x686D, 0xD5B4, 0x686E, 0xD5B5, 0x686F, 0xD5B9, + 0x6871, 0xD5C8, 0x6872, 0xD5C5, 0x6874, 0xD5BE, 0x6875, 0xD5BD, 0x6876, 0xB1ED, 0x6877, 0xD5C1, 0x6878, 0xD5D0, 0x6879, 0xD5B0, + 0x687B, 0xD5D1, 0x687C, 0xD5C3, 0x687D, 0xD5D5, 0x687E, 0xD5C9, 0x687F, 0xB1EC, 0x6880, 0xD5C7, 0x6881, 0xB1E7, 0x6882, 0xB1FC, + 0x6883, 0xB1F2, 0x6885, 0xB1F6, 0x6886, 0xB1F5, 0x6887, 0xD5B1, 0x6889, 0xD5CE, 0x688A, 0xD5D4, 0x688B, 0xD5CC, 0x688C, 0xD5D3, + 0x688F, 0xD5C0, 0x6890, 0xD5B2, 0x6891, 0xD5D2, 0x6892, 0xD5C2, 0x6893, 0xB1EA, 0x6894, 0xB1F7, 0x6896, 0xD5CB, 0x6897, 0xB1F0, + 0x689B, 0xD5CA, 0x689C, 0xD5B3, 0x689D, 0xB1F8, 0x689F, 0xB1FA, 0x68A0, 0xD5CD, 0x68A1, 0xB1FB, 0x68A2, 0xB1E9, 0x68A3, 0xD5BA, + 0x68A4, 0xD5CF, 0x68A7, 0xB1EF, 0x68A8, 0xB1F9, 0x68A9, 0xD5BC, 0x68AA, 0xD5C6, 0x68AB, 0xD5B7, 0x68AC, 0xD5BB, 0x68AD, 0xB1F4, + 0x68AE, 0xD5B6, 0x68AF, 0xB1E8, 0x68B0, 0xB1F1, 0x68B1, 0xB1EE, 0x68B2, 0xD5BF, 0x68B3, 0xAEDE, 0x68B4, 0xD9C0, 0x68B5, 0xB1EB, + 0x68C4, 0xB1F3, 0x68C6, 0xD9C3, 0x68C7, 0xD9D9, 0x68C8, 0xD9CE, 0x68C9, 0xB4D6, 0x68CB, 0xB4D1, 0x68CC, 0xD9BD, 0x68CD, 0xB4D2, + 0x68CE, 0xD9CD, 0x68D0, 0xD9C6, 0x68D1, 0xD9D3, 0x68D2, 0xB4CE, 0x68D3, 0xD9AB, 0x68D4, 0xD9D5, 0x68D5, 0xB4C4, 0x68D6, 0xD9B3, + 0x68D7, 0xB4C7, 0x68D8, 0xB4C6, 0x68DA, 0xB4D7, 0x68DC, 0xD9AD, 0x68DD, 0xD9CF, 0x68DE, 0xD9D0, 0x68DF, 0xB4C9, 0x68E0, 0xB4C5, + 0x68E1, 0xD9BB, 0x68E3, 0xB4D0, 0x68E4, 0xD9B6, 0x68E6, 0xD9D1, 0x68E7, 0xB4CC, 0x68E8, 0xD9C9, 0x68E9, 0xD9D6, 0x68EA, 0xD9B0, + 0x68EB, 0xD9B5, 0x68EC, 0xD9AF, 0x68EE, 0xB4CB, 0x68EF, 0xD9C2, 0x68F0, 0xDDDE, 0x68F1, 0xD9B1, 0x68F2, 0xB4CF, 0x68F3, 0xD9BA, + 0x68F4, 0xD9D2, 0x68F5, 0xB4CA, 0x68F6, 0xD9B7, 0x68F7, 0xD9B4, 0x68F8, 0xD9C5, 0x68F9, 0xB4CD, 0x68FA, 0xB4C3, 0x68FB, 0xB4D9, + 0x68FC, 0xD9C8, 0x68FD, 0xD9C7, 0x6904, 0xD9AC, 0x6905, 0xB4C8, 0x6906, 0xD9D4, 0x6907, 0xD9BC, 0x6908, 0xD9BE, 0x690A, 0xD9CB, + 0x690B, 0xD9CA, 0x690C, 0xD9AA, 0x690D, 0xB4D3, 0x690E, 0xB4D5, 0x690F, 0xD9B2, 0x6910, 0xD9B9, 0x6911, 0xD9C1, 0x6912, 0xB4D4, + 0x6913, 0xD9B8, 0x6914, 0xD9C4, 0x6915, 0xD9D7, 0x6917, 0xD9CC, 0x6925, 0xD9D8, 0x692A, 0xD9AE, 0x692F, 0xDDF2, 0x6930, 0xB7A6, + 0x6932, 0xDDF0, 0x6933, 0xDDDB, 0x6934, 0xDDE0, 0x6935, 0xDDD9, 0x6937, 0xDDEC, 0x6938, 0xDDCB, 0x6939, 0xDDD2, 0x693B, 0xDDEA, + 0x693C, 0xDDF4, 0x693D, 0xDDDC, 0x693F, 0xDDCF, 0x6940, 0xDDE2, 0x6941, 0xDDE7, 0x6942, 0xDDD3, 0x6944, 0xDDE4, 0x6945, 0xDDD0, + 0x6948, 0xDDD7, 0x6949, 0xDDD8, 0x694A, 0xB7A8, 0x694B, 0xDDEB, 0x694C, 0xDDE9, 0x694E, 0xDDCC, 0x694F, 0xDDEE, 0x6951, 0xDDEF, + 0x6952, 0xDDF1, 0x6953, 0xB7AC, 0x6954, 0xB7A4, 0x6956, 0xD5B8, 0x6957, 0xDDD4, 0x6958, 0xDDE6, 0x6959, 0xDDD5, 0x695A, 0xB7A1, + 0x695B, 0xB7B1, 0x695C, 0xDDED, 0x695D, 0xB7AF, 0x695E, 0xB7AB, 0x695F, 0xDDCA, 0x6960, 0xB7A3, 0x6962, 0xDDCD, 0x6963, 0xB7B0, + 0x6965, 0xDDDD, 0x6966, 0xDDC9, 0x6968, 0xB7A9, 0x6969, 0xDDE1, 0x696A, 0xDDD1, 0x696B, 0xB7AA, 0x696C, 0xDDDA, 0x696D, 0xB77E, + 0x696E, 0xB4D8, 0x696F, 0xDDE3, 0x6970, 0xD9BF, 0x6971, 0xDDCE, 0x6974, 0xDDE8, 0x6975, 0xB7A5, 0x6976, 0xDDE5, 0x6977, 0xB7A2, + 0x6978, 0xDDDF, 0x6979, 0xB7AD, 0x697A, 0xDDD6, 0x697B, 0xDDF3, 0x6982, 0xB7A7, 0x6983, 0xDEC6, 0x6986, 0xB7AE, 0x698D, 0xE24A, + 0x698E, 0xE248, 0x6990, 0xE25E, 0x6991, 0xE246, 0x6993, 0xE258, 0x6994, 0xB77D, 0x6995, 0xBA5F, 0x6996, 0xE242, 0x6997, 0xE25D, + 0x6999, 0xE247, 0x699A, 0xE255, 0x699B, 0xBA64, 0x699C, 0xBA5D, 0x699E, 0xE25B, 0x69A0, 0xE240, 0x69A1, 0xE25A, 0x69A3, 0xBA6F, + 0x69A4, 0xE251, 0x69A5, 0xE261, 0x69A6, 0xBA6D, 0x69A7, 0xE249, 0x69A8, 0xBA5E, 0x69A9, 0xE24B, 0x69AA, 0xE259, 0x69AB, 0xBA67, + 0x69AC, 0xE244, 0x69AD, 0xBA6B, 0x69AE, 0xBA61, 0x69AF, 0xE24D, 0x69B0, 0xE243, 0x69B1, 0xE1FC, 0x69B3, 0xE257, 0x69B4, 0xBA68, + 0x69B5, 0xE260, 0x69B6, 0xE1FD, 0x69B7, 0xBA65, 0x69B9, 0xE253, 0x69BB, 0xBA66, 0x69BC, 0xE245, 0x69BD, 0xE250, 0x69BE, 0xE24C, + 0x69BF, 0xE24E, 0x69C1, 0xBA60, 0x69C2, 0xE25F, 0x69C3, 0xBA6E, 0x69C4, 0xE24F, 0x69C6, 0xE262, 0x69C9, 0xE1FE, 0x69CA, 0xE254, + 0x69CB, 0xBA63, 0x69CC, 0xBA6C, 0x69CD, 0xBA6A, 0x69CE, 0xE241, 0x69CF, 0xE256, 0x69D0, 0xBA69, 0x69D3, 0xBA62, 0x69D4, 0xE252, + 0x69D9, 0xE25C, 0x69E2, 0xE5D5, 0x69E4, 0xE5D1, 0x69E5, 0xE5CD, 0x69E6, 0xE5E1, 0x69E7, 0xE5DE, 0x69E8, 0xBCCD, 0x69EB, 0xE5E5, + 0x69EC, 0xE5D4, 0x69ED, 0xBCD8, 0x69EE, 0xE5DB, 0x69F1, 0xE5D0, 0x69F2, 0xE5DA, 0x69F3, 0xBCD5, 0x69F4, 0xE5EE, 0x69F6, 0xE5EB, + 0x69F7, 0xE5DD, 0x69F8, 0xE5CE, 0x69FB, 0xE5E2, 0x69FC, 0xE5E4, 0x69FD, 0xBCD1, 0x69FE, 0xE5D8, 0x69FF, 0xE5D3, 0x6A00, 0xE5CA, + 0x6A01, 0xBCCE, 0x6A02, 0xBCD6, 0x6A04, 0xE5E7, 0x6A05, 0xBCD7, 0x6A06, 0xE5CB, 0x6A07, 0xE5ED, 0x6A08, 0xE5E0, 0x6A09, 0xE5E6, + 0x6A0A, 0xBCD4, 0x6A0D, 0xE5E3, 0x6A0F, 0xE5EA, 0x6A11, 0xBCD9, 0x6A13, 0xBCD3, 0x6A14, 0xE5DC, 0x6A15, 0xE5CF, 0x6A16, 0xE5EF, + 0x6A17, 0xE5CC, 0x6A18, 0xE5E8, 0x6A19, 0xBCD0, 0x6A1B, 0xE5D6, 0x6A1D, 0xE5D7, 0x6A1E, 0xBCCF, 0x6A1F, 0xBCCC, 0x6A20, 0xE5D2, + 0x6A21, 0xBCD2, 0x6A23, 0xBCCB, 0x6A25, 0xE5E9, 0x6A26, 0xE5EC, 0x6A27, 0xE5D9, 0x6A28, 0xE9CA, 0x6A32, 0xE9C2, 0x6A34, 0xE9BE, + 0x6A35, 0xBEF6, 0x6A38, 0xBEEB, 0x6A39, 0xBEF0, 0x6A3A, 0xBEEC, 0x6A3B, 0xE9CC, 0x6A3C, 0xE9D7, 0x6A3D, 0xBEEA, 0x6A3E, 0xE9C4, + 0x6A3F, 0xE9CD, 0x6A40, 0xE5DF, 0x6A41, 0xE9CE, 0x6A44, 0xBEF1, 0x6A46, 0xE9DD, 0x6A47, 0xBEF5, 0x6A48, 0xBEF8, 0x6A49, 0xE9C0, + 0x6A4B, 0xBEF4, 0x6A4D, 0xE9DB, 0x6A4E, 0xE9DC, 0x6A4F, 0xE9D2, 0x6A50, 0xE9D1, 0x6A51, 0xE9C9, 0x6A54, 0xE9D3, 0x6A55, 0xE9DA, + 0x6A56, 0xE9D9, 0x6A58, 0xBEEF, 0x6A59, 0xBEED, 0x6A5A, 0xE9CB, 0x6A5B, 0xE9C8, 0x6A5D, 0xE9C5, 0x6A5E, 0xE9D8, 0x6A5F, 0xBEF7, + 0x6A60, 0xE9D6, 0x6A61, 0xBEF3, 0x6A62, 0xBEF2, 0x6A64, 0xE9D0, 0x6A66, 0xE9BF, 0x6A67, 0xE9C1, 0x6A68, 0xE9C3, 0x6A69, 0xE9D5, + 0x6A6A, 0xE9CF, 0x6A6B, 0xBEEE, 0x6A6D, 0xE9C6, 0x6A6F, 0xE9D4, 0x6A76, 0xE9C7, 0x6A7E, 0xC0CF, 0x6A7F, 0xED45, 0x6A80, 0xC0C8, + 0x6A81, 0xECF5, 0x6A83, 0xED41, 0x6A84, 0xC0CA, 0x6A85, 0xED48, 0x6A87, 0xECFC, 0x6A89, 0xECF7, 0x6A8C, 0xED49, 0x6A8D, 0xECF3, + 0x6A8E, 0xECFE, 0x6A90, 0xC0D1, 0x6A91, 0xED44, 0x6A92, 0xED4A, 0x6A93, 0xECFD, 0x6A94, 0xC0C9, 0x6A95, 0xED40, 0x6A96, 0xECF4, + 0x6A97, 0xC0D0, 0x6A9A, 0xED47, 0x6A9B, 0xECF9, 0x6A9C, 0xC0CC, 0x6A9E, 0xECFB, 0x6A9F, 0xECF8, 0x6AA0, 0xC0D2, 0x6AA1, 0xECFA, + 0x6AA2, 0xC0CB, 0x6AA3, 0xC0CE, 0x6AA4, 0xED43, 0x6AA5, 0xECF6, 0x6AA6, 0xED46, 0x6AA8, 0xED42, 0x6AAC, 0xC263, 0x6AAD, 0xEFE7, + 0x6AAE, 0xC268, 0x6AAF, 0xC269, 0x6AB3, 0xC262, 0x6AB4, 0xEFE6, 0x6AB6, 0xEFE3, 0x6AB7, 0xEFE4, 0x6AB8, 0xC266, 0x6AB9, 0xEFDE, + 0x6ABA, 0xEFE2, 0x6ABB, 0xC265, 0x6ABD, 0xEFDF, 0x6AC2, 0xC267, 0x6AC3, 0xC264, 0x6AC5, 0xEFDD, 0x6AC6, 0xEFE1, 0x6AC7, 0xEFE5, + 0x6ACB, 0xF251, 0x6ACC, 0xF24E, 0x6ACD, 0xF257, 0x6ACF, 0xF256, 0x6AD0, 0xF254, 0x6AD1, 0xF24F, 0x6AD3, 0xC372, 0x6AD9, 0xF250, + 0x6ADA, 0xC371, 0x6ADB, 0xC0CD, 0x6ADC, 0xF253, 0x6ADD, 0xC370, 0x6ADE, 0xF258, 0x6ADF, 0xF252, 0x6AE0, 0xF24D, 0x6AE1, 0xEFE0, + 0x6AE5, 0xC36F, 0x6AE7, 0xF24C, 0x6AE8, 0xF456, 0x6AEA, 0xF455, 0x6AEB, 0xF255, 0x6AEC, 0xC468, 0x6AEE, 0xF459, 0x6AEF, 0xF45A, + 0x6AF0, 0xF454, 0x6AF1, 0xF458, 0x6AF3, 0xF453, 0x6AF8, 0xF5D1, 0x6AF9, 0xF457, 0x6AFA, 0xC4E7, 0x6AFB, 0xC4E5, 0x6AFC, 0xF5CF, + 0x6B00, 0xF5D2, 0x6B02, 0xF5CE, 0x6B03, 0xF5D0, 0x6B04, 0xC4E6, 0x6B08, 0xF6E5, 0x6B09, 0xF6E6, 0x6B0A, 0xC576, 0x6B0B, 0xF6E4, + 0x6B0F, 0xF7E2, 0x6B10, 0xC5CF, 0x6B11, 0xF7E0, 0x6B12, 0xF7E1, 0x6B13, 0xF8AC, 0x6B16, 0xC656, 0x6B17, 0xF8F3, 0x6B18, 0xF8F1, + 0x6B19, 0xF8F2, 0x6B1A, 0xF8F4, 0x6B1E, 0xF9BB, 0x6B20, 0xA4ED, 0x6B21, 0xA6B8, 0x6B23, 0xAA59, 0x6B25, 0xCCE9, 0x6B28, 0xCF64, + 0x6B2C, 0xD1F5, 0x6B2D, 0xD1F7, 0x6B2F, 0xD1F6, 0x6B31, 0xD1F8, 0x6B32, 0xB1FD, 0x6B33, 0xD5D7, 0x6B34, 0xD1F9, 0x6B36, 0xD5D6, + 0x6B37, 0xD5D8, 0x6B38, 0xD5D9, 0x6B39, 0xD9DA, 0x6B3A, 0xB4DB, 0x6B3B, 0xD9DB, 0x6B3C, 0xD9DD, 0x6B3D, 0xB4DC, 0x6B3E, 0xB4DA, + 0x6B3F, 0xD9DC, 0x6B41, 0xDDFA, 0x6B42, 0xDDF8, 0x6B43, 0xDDF7, 0x6B45, 0xDDF6, 0x6B46, 0xDDF5, 0x6B47, 0xB7B2, 0x6B48, 0xDDF9, + 0x6B49, 0xBA70, 0x6B4A, 0xE263, 0x6B4B, 0xE265, 0x6B4C, 0xBA71, 0x6B4D, 0xE264, 0x6B4E, 0xBCDB, 0x6B50, 0xBCDA, 0x6B51, 0xE5F0, + 0x6B54, 0xE9DF, 0x6B55, 0xE9DE, 0x6B56, 0xE9E0, 0x6B59, 0xBEF9, 0x6B5B, 0xED4B, 0x6B5C, 0xC0D3, 0x6B5E, 0xEFE8, 0x6B5F, 0xC26A, + 0x6B60, 0xF259, 0x6B61, 0xC577, 0x6B62, 0xA4EE, 0x6B63, 0xA5BF, 0x6B64, 0xA6B9, 0x6B65, 0xA842, 0x6B66, 0xAA5A, 0x6B67, 0xAA5B, + 0x6B6A, 0xAC6E, 0x6B6D, 0xD1FA, 0x6B72, 0xB7B3, 0x6B76, 0xE6D1, 0x6B77, 0xBEFA, 0x6B78, 0xC26B, 0x6B79, 0xA4EF, 0x6B7B, 0xA6BA, + 0x6B7E, 0xCCEB, 0x6B7F, 0xAA5C, 0x6B80, 0xCCEA, 0x6B82, 0xCF65, 0x6B83, 0xAC6F, 0x6B84, 0xCF66, 0x6B86, 0xAC70, 0x6B88, 0xD1FC, + 0x6B89, 0xAEEE, 0x6B8A, 0xAEED, 0x6B8C, 0xD5DE, 0x6B8D, 0xD5DC, 0x6B8E, 0xD5DD, 0x6B8F, 0xD5DB, 0x6B91, 0xD5DA, 0x6B94, 0xD9DE, + 0x6B95, 0xD9E1, 0x6B96, 0xB4DE, 0x6B97, 0xD9DF, 0x6B98, 0xB4DD, 0x6B99, 0xD9E0, 0x6B9B, 0xDDFB, 0x6B9E, 0xE266, 0x6B9F, 0xE267, + 0x6BA0, 0xE268, 0x6BA2, 0xE5F3, 0x6BA3, 0xE5F2, 0x6BA4, 0xBCDC, 0x6BA5, 0xE5F1, 0x6BA6, 0xE5F4, 0x6BA7, 0xE9E1, 0x6BAA, 0xE9E2, + 0x6BAB, 0xE9E3, 0x6BAD, 0xED4C, 0x6BAE, 0xC0D4, 0x6BAF, 0xC26C, 0x6BB0, 0xF25A, 0x6BB2, 0xC4E8, 0x6BB3, 0xC95F, 0x6BB5, 0xAC71, + 0x6BB6, 0xCF67, 0x6BB7, 0xAEEF, 0x6BBA, 0xB1FE, 0x6BBC, 0xB4DF, 0x6BBD, 0xD9E2, 0x6BBF, 0xB7B5, 0x6BC0, 0xB7B4, 0x6BC3, 0xE269, + 0x6BC4, 0xE26A, 0x6BC5, 0xBCDD, 0x6BC6, 0xBCDE, 0x6BC7, 0xE9E5, 0x6BC8, 0xE9E4, 0x6BC9, 0xEFE9, 0x6BCA, 0xF7E3, 0x6BCB, 0xA4F0, + 0x6BCC, 0xC960, 0x6BCD, 0xA5C0, 0x6BCF, 0xA843, 0x6BD0, 0xCB48, 0x6BD2, 0xAC72, 0x6BD3, 0xB7B6, 0x6BD4, 0xA4F1, 0x6BD6, 0xCF68, + 0x6BD7, 0xAC73, 0x6BD8, 0xCF69, 0x6BDA, 0xC0D5, 0x6BDB, 0xA4F2, 0x6BDE, 0xCCEC, 0x6BE0, 0xCF6A, 0x6BE2, 0xD242, 0x6BE3, 0xD241, + 0x6BE4, 0xD1FE, 0x6BE6, 0xD1FD, 0x6BE7, 0xD243, 0x6BE8, 0xD240, 0x6BEB, 0xB240, 0x6BEC, 0xB241, 0x6BEF, 0xB4E0, 0x6BF0, 0xD9E3, + 0x6BF2, 0xD9E4, 0x6BF3, 0xD9E5, 0x6BF7, 0xDE41, 0x6BF8, 0xDE42, 0x6BF9, 0xDE40, 0x6BFB, 0xDDFD, 0x6BFC, 0xDDFE, 0x6BFD, 0xB7B7, + 0x6BFE, 0xE26B, 0x6BFF, 0xE5F7, 0x6C00, 0xE5F6, 0x6C01, 0xE5F5, 0x6C02, 0xE5F8, 0x6C03, 0xE9E7, 0x6C04, 0xE9E6, 0x6C05, 0xBEFB, + 0x6C06, 0xE9E8, 0x6C08, 0xC0D6, 0x6C09, 0xED4D, 0x6C0B, 0xEFEA, 0x6C0C, 0xF25B, 0x6C0D, 0xF6E7, 0x6C0F, 0xA4F3, 0x6C10, 0xA5C2, + 0x6C11, 0xA5C1, 0x6C13, 0xAA5D, 0x6C14, 0xC961, 0x6C15, 0xC97E, 0x6C16, 0xA6BB, 0x6C18, 0xC9F7, 0x6C19, 0xCB49, 0x6C1A, 0xCB4A, + 0x6C1B, 0xAA5E, 0x6C1D, 0xCCED, 0x6C1F, 0xAC74, 0x6C20, 0xCF6B, 0x6C21, 0xCF6C, 0x6C23, 0xAEF0, 0x6C24, 0xAEF4, 0x6C25, 0xD244, + 0x6C26, 0xAEF3, 0x6C27, 0xAEF1, 0x6C28, 0xAEF2, 0x6C2A, 0xD5DF, 0x6C2B, 0xB242, 0x6C2C, 0xB4E3, 0x6C2E, 0xB4E1, 0x6C2F, 0xB4E2, + 0x6C30, 0xD9E6, 0x6C33, 0xBA72, 0x6C34, 0xA4F4, 0x6C36, 0xC9A1, 0x6C38, 0xA5C3, 0x6C3B, 0xC9A4, 0x6C3E, 0xA5C6, 0x6C3F, 0xC9A3, + 0x6C40, 0xA5C5, 0x6C41, 0xA5C4, 0x6C42, 0xA844, 0x6C43, 0xC9A2, 0x6C46, 0xC9F8, 0x6C4A, 0xC9FC, 0x6C4B, 0xC9FE, 0x6C4C, 0xCA40, + 0x6C4D, 0xA6C5, 0x6C4E, 0xA6C6, 0x6C4F, 0xC9FB, 0x6C50, 0xA6C1, 0x6C52, 0xC9F9, 0x6C54, 0xC9FD, 0x6C55, 0xA6C2, 0x6C57, 0xA6BD, + 0x6C59, 0xA6BE, 0x6C5B, 0xA6C4, 0x6C5C, 0xC9FA, 0x6C5D, 0xA6BC, 0x6C5E, 0xA845, 0x6C5F, 0xA6BF, 0x6C60, 0xA6C0, 0x6C61, 0xA6C3, + 0x6C65, 0xCB5B, 0x6C66, 0xCB59, 0x6C67, 0xCB4C, 0x6C68, 0xA851, 0x6C69, 0xCB53, 0x6C6A, 0xA84C, 0x6C6B, 0xCB4D, 0x6C6D, 0xCB55, + 0x6C6F, 0xCB52, 0x6C70, 0xA84F, 0x6C71, 0xCB51, 0x6C72, 0xA856, 0x6C73, 0xCB5A, 0x6C74, 0xA858, 0x6C76, 0xA85A, 0x6C78, 0xCB4B, + 0x6C7A, 0xA84D, 0x6C7B, 0xCB5C, 0x6C7D, 0xA854, 0x6C7E, 0xA857, 0x6C80, 0xCD45, 0x6C81, 0xA847, 0x6C82, 0xA85E, 0x6C83, 0xA855, + 0x6C84, 0xCB4E, 0x6C85, 0xA84A, 0x6C86, 0xA859, 0x6C87, 0xCB56, 0x6C88, 0xA848, 0x6C89, 0xA849, 0x6C8A, 0xCD43, 0x6C8B, 0xCB4F, + 0x6C8C, 0xA850, 0x6C8D, 0xA85B, 0x6C8E, 0xCB5D, 0x6C8F, 0xCB50, 0x6C90, 0xA84E, 0x6C92, 0xA853, 0x6C93, 0xCCEE, 0x6C94, 0xA85C, + 0x6C95, 0xCB57, 0x6C96, 0xA852, 0x6C98, 0xA85D, 0x6C99, 0xA846, 0x6C9A, 0xCB54, 0x6C9B, 0xA84B, 0x6C9C, 0xCB58, 0x6C9D, 0xCD44, + 0x6CAB, 0xAA6A, 0x6CAC, 0xAA7A, 0x6CAD, 0xCCF5, 0x6CAE, 0xAA71, 0x6CB0, 0xCD4B, 0x6CB1, 0xAA62, 0x6CB3, 0xAA65, 0x6CB4, 0xCD42, + 0x6CB6, 0xCCF3, 0x6CB7, 0xCCF7, 0x6CB8, 0xAA6D, 0x6CB9, 0xAA6F, 0x6CBA, 0xCCFA, 0x6CBB, 0xAA76, 0x6CBC, 0xAA68, 0x6CBD, 0xAA66, + 0x6CBE, 0xAA67, 0x6CBF, 0xAA75, 0x6CC0, 0xCD47, 0x6CC1, 0xAA70, 0x6CC2, 0xCCF9, 0x6CC3, 0xCCFB, 0x6CC4, 0xAA6E, 0x6CC5, 0xAA73, + 0x6CC6, 0xCCFC, 0x6CC7, 0xCD4A, 0x6CC9, 0xAC75, 0x6CCA, 0xAA79, 0x6CCC, 0xAA63, 0x6CCD, 0xCD49, 0x6CCF, 0xCD4D, 0x6CD0, 0xCCF8, + 0x6CD1, 0xCD4F, 0x6CD2, 0xCD40, 0x6CD3, 0xAA6C, 0x6CD4, 0xCCF4, 0x6CD5, 0xAA6B, 0x6CD6, 0xAA7D, 0x6CD7, 0xAA72, 0x6CD9, 0xCCF2, + 0x6CDA, 0xCF75, 0x6CDB, 0xAA78, 0x6CDC, 0xAA7C, 0x6CDD, 0xCD41, 0x6CDE, 0xCD46, 0x6CE0, 0xAA7E, 0x6CE1, 0xAA77, 0x6CE2, 0xAA69, + 0x6CE3, 0xAA5F, 0x6CE5, 0xAA64, 0x6CE7, 0xCCF6, 0x6CE8, 0xAA60, 0x6CE9, 0xCD4E, 0x6CEB, 0xCCF0, 0x6CEC, 0xCCEF, 0x6CED, 0xCCFD, + 0x6CEE, 0xCCF1, 0x6CEF, 0xAA7B, 0x6CF0, 0xAEF5, 0x6CF1, 0xAA74, 0x6CF2, 0xCCFE, 0x6CF3, 0xAA61, 0x6CF5, 0xACA6, 0x6CF9, 0xCD4C, + 0x6D00, 0xCF7C, 0x6D01, 0xCFA1, 0x6D03, 0xCFA4, 0x6D04, 0xCF77, 0x6D07, 0xCFA7, 0x6D08, 0xCFAA, 0x6D09, 0xCFAC, 0x6D0A, 0xCF74, + 0x6D0B, 0xAC76, 0x6D0C, 0xAC7B, 0x6D0D, 0xD249, 0x6D0E, 0xACAD, 0x6D0F, 0xCFA5, 0x6D10, 0xCFAD, 0x6D11, 0xCF7B, 0x6D12, 0xCF73, + 0x6D16, 0xD264, 0x6D17, 0xAC7E, 0x6D18, 0xCFA2, 0x6D19, 0xCF78, 0x6D1A, 0xCF7A, 0x6D1B, 0xACA5, 0x6D1D, 0xCF7D, 0x6D1E, 0xAC7D, + 0x6D1F, 0xCF70, 0x6D20, 0xCFA8, 0x6D22, 0xCFAB, 0x6D25, 0xAC7A, 0x6D27, 0xACA8, 0x6D28, 0xCF6D, 0x6D29, 0xACAA, 0x6D2A, 0xAC78, + 0x6D2B, 0xACAE, 0x6D2C, 0xCFA9, 0x6D2D, 0xCF6F, 0x6D2E, 0xACAB, 0x6D2F, 0xD25E, 0x6D30, 0xCD48, 0x6D31, 0xAC7C, 0x6D32, 0xAC77, + 0x6D33, 0xCF76, 0x6D34, 0xCF6E, 0x6D35, 0xACAC, 0x6D36, 0xACA4, 0x6D37, 0xCFA3, 0x6D38, 0xACA9, 0x6D39, 0xACA7, 0x6D3A, 0xCF79, + 0x6D3B, 0xACA1, 0x6D3C, 0xCF71, 0x6D3D, 0xACA2, 0x6D3E, 0xACA3, 0x6D3F, 0xCF72, 0x6D40, 0xCFA6, 0x6D41, 0xAC79, 0x6D42, 0xCF7E, + 0x6D58, 0xD24C, 0x6D59, 0xAEFD, 0x6D5A, 0xAF43, 0x6D5E, 0xD255, 0x6D5F, 0xD25B, 0x6D60, 0xD257, 0x6D61, 0xD24A, 0x6D62, 0xD24D, + 0x6D63, 0xD246, 0x6D64, 0xD247, 0x6D65, 0xAF4A, 0x6D66, 0xAEFA, 0x6D67, 0xD256, 0x6D68, 0xD25F, 0x6D69, 0xAF45, 0x6D6A, 0xAEF6, + 0x6D6C, 0xAF40, 0x6D6D, 0xD24E, 0x6D6E, 0xAF42, 0x6D6F, 0xD24F, 0x6D70, 0xD259, 0x6D74, 0xAF44, 0x6D75, 0xD268, 0x6D76, 0xD248, + 0x6D77, 0xAEFC, 0x6D78, 0xAEFB, 0x6D79, 0xAF48, 0x6D7A, 0xD245, 0x6D7B, 0xD266, 0x6D7C, 0xD25A, 0x6D7D, 0xD267, 0x6D7E, 0xD261, + 0x6D7F, 0xD253, 0x6D80, 0xD262, 0x6D82, 0xD25C, 0x6D83, 0xD265, 0x6D84, 0xD263, 0x6D85, 0xAF49, 0x6D86, 0xD254, 0x6D87, 0xAEF9, + 0x6D88, 0xAEF8, 0x6D89, 0xAF41, 0x6D8A, 0xAF47, 0x6D8B, 0xD260, 0x6D8C, 0xAF46, 0x6D8D, 0xD251, 0x6D8E, 0xB243, 0x6D90, 0xD269, + 0x6D91, 0xD250, 0x6D92, 0xD24B, 0x6D93, 0xAEFE, 0x6D94, 0xAF4B, 0x6D95, 0xAEF7, 0x6D97, 0xD258, 0x6D98, 0xD25D, 0x6DAA, 0xB265, + 0x6DAB, 0xD5E1, 0x6DAC, 0xD5E5, 0x6DAE, 0xB252, 0x6DAF, 0xB250, 0x6DB2, 0xB247, 0x6DB3, 0xD5E3, 0x6DB4, 0xD5E2, 0x6DB5, 0xB25B, + 0x6DB7, 0xD5E8, 0x6DB8, 0xB255, 0x6DBA, 0xD5FA, 0x6DBB, 0xD647, 0x6DBC, 0xB244, 0x6DBD, 0xD5F7, 0x6DBE, 0xD5F0, 0x6DBF, 0xB267, + 0x6DC0, 0xD5E0, 0x6DC2, 0xD5FC, 0x6DC4, 0xB264, 0x6DC5, 0xB258, 0x6DC6, 0xB263, 0x6DC7, 0xB24E, 0x6DC8, 0xD5EC, 0x6DC9, 0xD5FE, + 0x6DCA, 0xD5F6, 0x6DCB, 0xB24F, 0x6DCC, 0xB249, 0x6DCD, 0xD645, 0x6DCF, 0xD5FD, 0x6DD0, 0xD640, 0x6DD1, 0xB251, 0x6DD2, 0xB259, + 0x6DD3, 0xD642, 0x6DD4, 0xD5EA, 0x6DD5, 0xD5FB, 0x6DD6, 0xD5EF, 0x6DD7, 0xD644, 0x6DD8, 0xB25E, 0x6DD9, 0xB246, 0x6DDA, 0xB25C, + 0x6DDB, 0xD5F4, 0x6DDC, 0xD5F2, 0x6DDD, 0xD5F3, 0x6DDE, 0xB253, 0x6DDF, 0xD5EE, 0x6DE0, 0xD5ED, 0x6DE1, 0xB248, 0x6DE2, 0xD5E7, + 0x6DE3, 0xD646, 0x6DE4, 0xB24A, 0x6DE5, 0xD5F1, 0x6DE6, 0xB268, 0x6DE8, 0xB262, 0x6DE9, 0xD5E6, 0x6DEA, 0xB25F, 0x6DEB, 0xB25D, + 0x6DEC, 0xB266, 0x6DED, 0xD5F8, 0x6DEE, 0xB261, 0x6DEF, 0xD252, 0x6DF0, 0xD5F9, 0x6DF1, 0xB260, 0x6DF2, 0xD641, 0x6DF3, 0xB245, + 0x6DF4, 0xD5F5, 0x6DF5, 0xB257, 0x6DF6, 0xD5E9, 0x6DF7, 0xB256, 0x6DF9, 0xB254, 0x6DFA, 0xB24C, 0x6DFB, 0xB24B, 0x6DFC, 0xD9E7, + 0x6DFD, 0xD643, 0x6E00, 0xD5EB, 0x6E03, 0xD9FC, 0x6E05, 0xB24D, 0x6E19, 0xB541, 0x6E1A, 0xB25A, 0x6E1B, 0xB4EE, 0x6E1C, 0xD9F6, + 0x6E1D, 0xB4FC, 0x6E1F, 0xD9EA, 0x6E20, 0xB4EB, 0x6E21, 0xB4E7, 0x6E22, 0xDA49, 0x6E23, 0xB4ED, 0x6E24, 0xB4F1, 0x6E25, 0xB4EC, + 0x6E26, 0xB4F5, 0x6E27, 0xDA4D, 0x6E28, 0xDA44, 0x6E2B, 0xD9F1, 0x6E2C, 0xB4FA, 0x6E2D, 0xB4F4, 0x6E2E, 0xD9FD, 0x6E2F, 0xB4E4, + 0x6E30, 0xDA4A, 0x6E31, 0xDA43, 0x6E32, 0xB4E8, 0x6E33, 0xD9F7, 0x6E34, 0xB4F7, 0x6E35, 0xDA55, 0x6E36, 0xDA56, 0x6E38, 0xB4E5, + 0x6E39, 0xDA48, 0x6E3A, 0xB4F9, 0x6E3B, 0xD9FB, 0x6E3C, 0xD9ED, 0x6E3D, 0xD9EE, 0x6E3E, 0xB4FD, 0x6E3F, 0xD9F2, 0x6E40, 0xD9F9, + 0x6E41, 0xD9F3, 0x6E43, 0xB4FB, 0x6E44, 0xB544, 0x6E45, 0xD9EF, 0x6E46, 0xD9E8, 0x6E47, 0xD9E9, 0x6E49, 0xD9EB, 0x6E4A, 0xB4EA, + 0x6E4B, 0xD9F8, 0x6E4D, 0xB4F8, 0x6E4E, 0xB542, 0x6E51, 0xD9FA, 0x6E52, 0xDA53, 0x6E53, 0xDA4B, 0x6E54, 0xB4E6, 0x6E55, 0xDA51, + 0x6E56, 0xB4F2, 0x6E58, 0xB4F0, 0x6E5A, 0xDA57, 0x6E5B, 0xB4EF, 0x6E5C, 0xDA41, 0x6E5D, 0xD9F4, 0x6E5E, 0xD9FE, 0x6E5F, 0xB547, + 0x6E60, 0xDA45, 0x6E61, 0xDA42, 0x6E62, 0xD9F0, 0x6E63, 0xB543, 0x6E64, 0xDA4F, 0x6E65, 0xDA4C, 0x6E66, 0xDA54, 0x6E67, 0xB4E9, + 0x6E68, 0xDA40, 0x6E69, 0xB546, 0x6E6B, 0xDA47, 0x6E6E, 0xB4F3, 0x6E6F, 0xB4F6, 0x6E71, 0xDA46, 0x6E72, 0xB545, 0x6E73, 0xD9F5, + 0x6E74, 0xD5E4, 0x6E77, 0xDA50, 0x6E78, 0xDA4E, 0x6E79, 0xDA52, 0x6E88, 0xD9EC, 0x6E89, 0xB540, 0x6E8D, 0xDE61, 0x6E8E, 0xDE60, + 0x6E8F, 0xDE46, 0x6E90, 0xB7BD, 0x6E92, 0xDE5F, 0x6E93, 0xDE49, 0x6E94, 0xDE4A, 0x6E96, 0xB7C7, 0x6E97, 0xDE68, 0x6E98, 0xB7C2, + 0x6E99, 0xDE5E, 0x6E9B, 0xDE43, 0x6E9C, 0xB7C8, 0x6E9D, 0xB7BE, 0x6E9E, 0xDE52, 0x6E9F, 0xDE48, 0x6EA0, 0xDE4B, 0x6EA1, 0xDE63, + 0x6EA2, 0xB7B8, 0x6EA3, 0xDE6A, 0x6EA4, 0xDE62, 0x6EA5, 0xB7C1, 0x6EA6, 0xDE57, 0x6EA7, 0xB7CC, 0x6EAA, 0xB7CB, 0x6EAB, 0xB7C5, + 0x6EAE, 0xDE69, 0x6EAF, 0xB7B9, 0x6EB0, 0xDE55, 0x6EB1, 0xDE4C, 0x6EB2, 0xDE59, 0x6EB3, 0xDE65, 0x6EB4, 0xB7CD, 0x6EB6, 0xB7BB, + 0x6EB7, 0xDE54, 0x6EB9, 0xDE4D, 0x6EBA, 0xB7C4, 0x6EBC, 0xB7C3, 0x6EBD, 0xDE50, 0x6EBE, 0xDE5A, 0x6EBF, 0xDE64, 0x6EC0, 0xDE47, + 0x6EC1, 0xDE51, 0x6EC2, 0xB7BC, 0x6EC3, 0xDE5B, 0x6EC4, 0xB7C9, 0x6EC5, 0xB7C0, 0x6EC6, 0xDE4E, 0x6EC7, 0xB7BF, 0x6EC8, 0xDE45, + 0x6EC9, 0xDE53, 0x6ECA, 0xDE67, 0x6ECB, 0xB4FE, 0x6ECC, 0xBAB0, 0x6ECD, 0xDE56, 0x6ECE, 0xE26C, 0x6ECF, 0xDE58, 0x6ED0, 0xDE66, + 0x6ED1, 0xB7C6, 0x6ED2, 0xDE4F, 0x6ED3, 0xB7BA, 0x6ED4, 0xB7CA, 0x6ED5, 0xBCF0, 0x6ED6, 0xDE44, 0x6ED8, 0xDE5D, 0x6EDC, 0xDE5C, + 0x6EEB, 0xE2AA, 0x6EEC, 0xBAAD, 0x6EED, 0xE27D, 0x6EEE, 0xE2A4, 0x6EEF, 0xBAA2, 0x6EF1, 0xE26E, 0x6EF2, 0xBAAF, 0x6EF4, 0xBA77, + 0x6EF5, 0xE26D, 0x6EF6, 0xE2B0, 0x6EF7, 0xBAB1, 0x6EF8, 0xE271, 0x6EF9, 0xE2A3, 0x6EFB, 0xE273, 0x6EFC, 0xE2B3, 0x6EFD, 0xE2AF, + 0x6EFE, 0xBA75, 0x6EFF, 0xBAA1, 0x6F00, 0xE653, 0x6F01, 0xBAAE, 0x6F02, 0xBA7D, 0x6F03, 0xE26F, 0x6F05, 0xE2AE, 0x6F06, 0xBAA3, + 0x6F07, 0xE2AB, 0x6F08, 0xE2B8, 0x6F09, 0xE275, 0x6F0A, 0xE27E, 0x6F0D, 0xE2B6, 0x6F0E, 0xE2AC, 0x6F0F, 0xBA7C, 0x6F12, 0xE27C, + 0x6F13, 0xBA76, 0x6F14, 0xBA74, 0x6F15, 0xBAA8, 0x6F18, 0xE27A, 0x6F19, 0xE277, 0x6F1A, 0xE278, 0x6F1C, 0xE2B2, 0x6F1E, 0xE2B7, + 0x6F1F, 0xE2B5, 0x6F20, 0xBA7A, 0x6F21, 0xE2B9, 0x6F22, 0xBA7E, 0x6F23, 0xBAA7, 0x6F25, 0xE270, 0x6F26, 0xE5FA, 0x6F27, 0xE279, + 0x6F29, 0xBA78, 0x6F2A, 0xBAAC, 0x6F2B, 0xBAA9, 0x6F2C, 0xBA7B, 0x6F2D, 0xE2A5, 0x6F2E, 0xE274, 0x6F2F, 0xBAAA, 0x6F30, 0xE2A7, + 0x6F31, 0xBAA4, 0x6F32, 0xBAA6, 0x6F33, 0xBA73, 0x6F35, 0xE2A9, 0x6F36, 0xE2A1, 0x6F37, 0xE272, 0x6F38, 0xBAA5, 0x6F39, 0xE2B1, + 0x6F3A, 0xE2B4, 0x6F3B, 0xE27B, 0x6F3C, 0xE2A8, 0x6F3E, 0xBA79, 0x6F3F, 0xBCDF, 0x6F40, 0xE2A6, 0x6F41, 0xE5F9, 0x6F43, 0xE2AD, + 0x6F4E, 0xE276, 0x6F4F, 0xE644, 0x6F50, 0xE64E, 0x6F51, 0xBCE2, 0x6F52, 0xE64D, 0x6F53, 0xE659, 0x6F54, 0xBCE4, 0x6F55, 0xE64B, + 0x6F57, 0xE64F, 0x6F58, 0xBCEF, 0x6F5A, 0xE646, 0x6F5B, 0xBCE7, 0x6F5D, 0xE652, 0x6F5E, 0xE9F0, 0x6F5F, 0xBCF3, 0x6F60, 0xBCF2, + 0x6F61, 0xE654, 0x6F62, 0xE643, 0x6F63, 0xE65E, 0x6F64, 0xBCED, 0x6F66, 0xBCE3, 0x6F67, 0xE657, 0x6F69, 0xE65B, 0x6F6A, 0xE660, + 0x6F6B, 0xE655, 0x6F6C, 0xE649, 0x6F6D, 0xBCE6, 0x6F6E, 0xBCE9, 0x6F6F, 0xBCF1, 0x6F70, 0xBCEC, 0x6F72, 0xE64C, 0x6F73, 0xE2A2, + 0x6F76, 0xE648, 0x6F77, 0xE65F, 0x6F78, 0xBCE8, 0x6F7A, 0xBCEB, 0x6F7B, 0xE661, 0x6F7C, 0xBCE0, 0x6F7D, 0xE656, 0x6F7E, 0xE5FB, + 0x6F7F, 0xE65C, 0x6F80, 0xC0DF, 0x6F82, 0xE64A, 0x6F84, 0xBCE1, 0x6F85, 0xE645, 0x6F86, 0xBCE5, 0x6F87, 0xE5FC, 0x6F88, 0xBAAB, + 0x6F89, 0xE641, 0x6F8B, 0xE65A, 0x6F8C, 0xE642, 0x6F8D, 0xE640, 0x6F8E, 0xBCEA, 0x6F90, 0xE658, 0x6F92, 0xE5FE, 0x6F93, 0xE651, + 0x6F94, 0xE650, 0x6F95, 0xE65D, 0x6F96, 0xE647, 0x6F97, 0xBCEE, 0x6F9E, 0xE9F3, 0x6FA0, 0xBF49, 0x6FA1, 0xBEFE, 0x6FA2, 0xEA40, + 0x6FA3, 0xE9EB, 0x6FA4, 0xBF41, 0x6FA5, 0xE9F7, 0x6FA6, 0xBF48, 0x6FA7, 0xBF43, 0x6FA8, 0xE9F5, 0x6FA9, 0xED4F, 0x6FAA, 0xE9FB, + 0x6FAB, 0xEA42, 0x6FAC, 0xE9FA, 0x6FAD, 0xE9E9, 0x6FAE, 0xE9F8, 0x6FAF, 0xEA44, 0x6FB0, 0xEA46, 0x6FB1, 0xBEFD, 0x6FB2, 0xEA45, + 0x6FB3, 0xBF44, 0x6FB4, 0xBF4A, 0x6FB6, 0xBF47, 0x6FB8, 0xE9FE, 0x6FB9, 0xBF46, 0x6FBA, 0xE9F9, 0x6FBC, 0xE9ED, 0x6FBD, 0xE9F2, + 0x6FBF, 0xE9FD, 0x6FC0, 0xBF45, 0x6FC1, 0xBF42, 0x6FC2, 0xBEFC, 0x6FC3, 0xBF40, 0x6FC4, 0xE9F1, 0x6FC6, 0xE5FD, 0x6FC7, 0xE9EC, + 0x6FC8, 0xE9EF, 0x6FC9, 0xEA41, 0x6FCA, 0xE9F4, 0x6FCB, 0xE9EA, 0x6FCC, 0xED4E, 0x6FCD, 0xEA43, 0x6FCE, 0xE9EE, 0x6FCF, 0xE9FC, + 0x6FD4, 0xED51, 0x6FD5, 0xC0E3, 0x6FD8, 0xC0D7, 0x6FDB, 0xC0DB, 0x6FDC, 0xED53, 0x6FDD, 0xED59, 0x6FDE, 0xED57, 0x6FDF, 0xC0D9, + 0x6FE0, 0xC0DA, 0x6FE1, 0xC0E1, 0x6FE2, 0xED5A, 0x6FE3, 0xED52, 0x6FE4, 0xC0DC, 0x6FE6, 0xED56, 0x6FE7, 0xED55, 0x6FE8, 0xED5B, + 0x6FE9, 0xC0E2, 0x6FEB, 0xC0DD, 0x6FEC, 0xC0E0, 0x6FED, 0xED54, 0x6FEE, 0xC0E4, 0x6FEF, 0xC0DE, 0x6FF0, 0xC0E5, 0x6FF1, 0xC0D8, + 0x6FF2, 0xED58, 0x6FF4, 0xED50, 0x6FF7, 0xEFF7, 0x6FFA, 0xC271, 0x6FFB, 0xEFF4, 0x6FFC, 0xEFF6, 0x6FFE, 0xC26F, 0x6FFF, 0xEFF2, + 0x7000, 0xEFF3, 0x7001, 0xEFEE, 0x7004, 0xE9F6, 0x7005, 0xEFEF, 0x7006, 0xC270, 0x7007, 0xEFEB, 0x7009, 0xC26D, 0x700A, 0xEFF8, + 0x700B, 0xC26E, 0x700C, 0xEFEC, 0x700D, 0xEFED, 0x700E, 0xEFF1, 0x700F, 0xC273, 0x7011, 0xC272, 0x7014, 0xEFF0, 0x7015, 0xC378, + 0x7016, 0xF25F, 0x7017, 0xF265, 0x7018, 0xC379, 0x7019, 0xF25C, 0x701A, 0xC376, 0x701B, 0xC373, 0x701C, 0xF267, 0x701D, 0xC377, + 0x701F, 0xC374, 0x7020, 0xF25E, 0x7021, 0xF261, 0x7022, 0xF262, 0x7023, 0xF263, 0x7024, 0xF266, 0x7026, 0xEFF5, 0x7027, 0xF25D, + 0x7028, 0xC375, 0x7029, 0xF264, 0x702A, 0xF268, 0x702B, 0xF260, 0x702F, 0xF45D, 0x7030, 0xC46A, 0x7031, 0xF460, 0x7032, 0xC46B, + 0x7033, 0xF468, 0x7034, 0xF45F, 0x7035, 0xF45C, 0x7037, 0xF45E, 0x7038, 0xF462, 0x7039, 0xF465, 0x703A, 0xF464, 0x703B, 0xF467, + 0x703C, 0xF45B, 0x703E, 0xC469, 0x703F, 0xF463, 0x7040, 0xF466, 0x7041, 0xF469, 0x7042, 0xF461, 0x7043, 0xF5D3, 0x7044, 0xF5D4, + 0x7045, 0xF5D8, 0x7046, 0xF5D9, 0x7048, 0xF5D6, 0x7049, 0xF5D7, 0x704A, 0xF5D5, 0x704C, 0xC4E9, 0x7051, 0xC578, 0x7052, 0xF6EB, + 0x7055, 0xF6E8, 0x7056, 0xF6E9, 0x7057, 0xF6EA, 0x7058, 0xC579, 0x705A, 0xF7E5, 0x705B, 0xF7E4, 0x705D, 0xF8AF, 0x705E, 0xC5F4, + 0x705F, 0xF8AD, 0x7060, 0xF8B0, 0x7061, 0xF8AE, 0x7062, 0xF8F5, 0x7063, 0xC657, 0x7064, 0xC665, 0x7065, 0xF9A3, 0x7066, 0xF96C, + 0x7068, 0xF9A2, 0x7069, 0xF9D0, 0x706A, 0xF9D1, 0x706B, 0xA4F5, 0x7070, 0xA6C7, 0x7071, 0xCA41, 0x7074, 0xCB5E, 0x7076, 0xA85F, + 0x7078, 0xA862, 0x707A, 0xCB5F, 0x707C, 0xA860, 0x707D, 0xA861, 0x7082, 0xCD58, 0x7083, 0xCD5A, 0x7084, 0xCD55, 0x7085, 0xCD52, + 0x7086, 0xCD54, 0x708A, 0xAAA4, 0x708E, 0xAAA2, 0x7091, 0xCD56, 0x7092, 0xAAA3, 0x7093, 0xCD53, 0x7094, 0xCD50, 0x7095, 0xAAA1, + 0x7096, 0xCD57, 0x7098, 0xCD51, 0x7099, 0xAAA5, 0x709A, 0xCD59, 0x709F, 0xCFAF, 0x70A1, 0xCFB3, 0x70A4, 0xACB7, 0x70A9, 0xCFB6, + 0x70AB, 0xACAF, 0x70AC, 0xACB2, 0x70AD, 0xACB4, 0x70AE, 0xACB6, 0x70AF, 0xACB3, 0x70B0, 0xCFB2, 0x70B1, 0xCFB1, 0x70B3, 0xACB1, + 0x70B4, 0xCFB4, 0x70B5, 0xCFB5, 0x70B7, 0xCFAE, 0x70B8, 0xACB5, 0x70BA, 0xACB0, 0x70BE, 0xCFB0, 0x70C5, 0xD277, 0x70C6, 0xD278, + 0x70C7, 0xD279, 0x70C8, 0xAF50, 0x70CA, 0xAF4C, 0x70CB, 0xD26E, 0x70CD, 0xD276, 0x70CE, 0xD27B, 0x70CF, 0xAF51, 0x70D1, 0xD26C, + 0x70D2, 0xD272, 0x70D3, 0xD26B, 0x70D4, 0xD275, 0x70D7, 0xD271, 0x70D8, 0xAF4D, 0x70D9, 0xAF4F, 0x70DA, 0xD27A, 0x70DC, 0xD26A, + 0x70DD, 0xD26D, 0x70DE, 0xD273, 0x70E0, 0xD274, 0x70E1, 0xD27C, 0x70E2, 0xD270, 0x70E4, 0xAF4E, 0x70EF, 0xB26D, 0x70F0, 0xD64E, + 0x70F3, 0xD650, 0x70F4, 0xD64C, 0x70F6, 0xD658, 0x70F7, 0xD64A, 0x70F8, 0xD657, 0x70F9, 0xB269, 0x70FA, 0xD648, 0x70FB, 0xDA5B, + 0x70FC, 0xD652, 0x70FD, 0xB26C, 0x70FF, 0xD653, 0x7100, 0xD656, 0x7102, 0xD65A, 0x7104, 0xD64F, 0x7106, 0xD654, 0x7109, 0xB26A, + 0x710A, 0xB26B, 0x710B, 0xD659, 0x710C, 0xD64D, 0x710D, 0xD649, 0x710E, 0xD65B, 0x7110, 0xD651, 0x7113, 0xD655, 0x7117, 0xD64B, + 0x7119, 0xB548, 0x711A, 0xB549, 0x711B, 0xDA65, 0x711C, 0xB54F, 0x711E, 0xDA59, 0x711F, 0xDA62, 0x7120, 0xDA58, 0x7121, 0xB54C, + 0x7122, 0xDA60, 0x7123, 0xDA5E, 0x7125, 0xDA5F, 0x7126, 0xB54A, 0x7128, 0xDA63, 0x712E, 0xDA5C, 0x712F, 0xDA5A, 0x7130, 0xB54B, + 0x7131, 0xDA5D, 0x7132, 0xDA61, 0x7136, 0xB54D, 0x713A, 0xDA64, 0x7141, 0xDE70, 0x7142, 0xDE77, 0x7143, 0xDE79, 0x7144, 0xDEA1, + 0x7146, 0xB7DA, 0x7147, 0xDE6B, 0x7149, 0xB7D2, 0x714B, 0xDE7A, 0x714C, 0xB7D7, 0x714D, 0xDEA2, 0x714E, 0xB7CE, 0x7150, 0xDE7D, + 0x7152, 0xDE6D, 0x7153, 0xDE7E, 0x7154, 0xDE6C, 0x7156, 0xB7DC, 0x7158, 0xDE78, 0x7159, 0xB7CF, 0x715A, 0xDEA3, 0x715C, 0xB7D4, + 0x715D, 0xDE71, 0x715E, 0xB7D9, 0x715F, 0xDE7C, 0x7160, 0xDE6F, 0x7161, 0xDE76, 0x7162, 0xDE72, 0x7163, 0xDE6E, 0x7164, 0xB7D1, + 0x7165, 0xB7D8, 0x7166, 0xB7D6, 0x7167, 0xB7D3, 0x7168, 0xB7DB, 0x7169, 0xB7D0, 0x716A, 0xDE75, 0x716C, 0xB7D5, 0x716E, 0xB54E, + 0x7170, 0xDE7B, 0x7172, 0xDE73, 0x7178, 0xDE74, 0x717B, 0xE2C1, 0x717D, 0xBAB4, 0x7180, 0xE2BD, 0x7181, 0xE2C3, 0x7182, 0xE2BF, + 0x7184, 0xBAB6, 0x7185, 0xE2BE, 0x7186, 0xE2C2, 0x7187, 0xE2BA, 0x7189, 0xE2BC, 0x718A, 0xBAB5, 0x718F, 0xE2C0, 0x7190, 0xE2BB, + 0x7192, 0xBAB7, 0x7194, 0xBAB2, 0x7197, 0xE2C4, 0x7199, 0xBAB3, 0x719A, 0xE667, 0x719B, 0xE664, 0x719C, 0xE670, 0x719D, 0xE66A, + 0x719E, 0xE66C, 0x719F, 0xBCF4, 0x71A0, 0xE666, 0x71A1, 0xE66E, 0x71A4, 0xE66D, 0x71A5, 0xE66B, 0x71A7, 0xE671, 0x71A8, 0xBCF7, + 0x71A9, 0xE668, 0x71AA, 0xE66F, 0x71AC, 0xBCF5, 0x71AF, 0xE663, 0x71B0, 0xE665, 0x71B1, 0xBCF6, 0x71B2, 0xE662, 0x71B3, 0xE672, + 0x71B5, 0xE669, 0x71B8, 0xEA4A, 0x71B9, 0xBF51, 0x71BC, 0xEA55, 0x71BD, 0xEA53, 0x71BE, 0xBF4B, 0x71BF, 0xEA49, 0x71C0, 0xEA4C, + 0x71C1, 0xEA4D, 0x71C2, 0xEA48, 0x71C3, 0xBF55, 0x71C4, 0xBF56, 0x71C5, 0xEA47, 0x71C6, 0xEA56, 0x71C7, 0xEA51, 0x71C8, 0xBF4F, + 0x71C9, 0xBF4C, 0x71CA, 0xEA50, 0x71CB, 0xEA4E, 0x71CE, 0xBF52, 0x71CF, 0xEA52, 0x71D0, 0xBF4D, 0x71D2, 0xBF4E, 0x71D4, 0xEA4F, + 0x71D5, 0xBF50, 0x71D6, 0xEA4B, 0x71D8, 0xEA54, 0x71D9, 0xBF53, 0x71DA, 0xEA57, 0x71DB, 0xEA58, 0x71DC, 0xBF54, 0x71DF, 0xC0E7, + 0x71E0, 0xC0EE, 0x71E1, 0xED5C, 0x71E2, 0xED62, 0x71E4, 0xED60, 0x71E5, 0xC0EA, 0x71E6, 0xC0E9, 0x71E7, 0xC0E6, 0x71E8, 0xED5E, + 0x71EC, 0xC0EC, 0x71ED, 0xC0EB, 0x71EE, 0xC0E8, 0x71F0, 0xED61, 0x71F1, 0xED5D, 0x71F2, 0xED5F, 0x71F4, 0xC0ED, 0x71F8, 0xC277, + 0x71F9, 0xEFFB, 0x71FB, 0xC274, 0x71FC, 0xC275, 0x71FD, 0xEFFD, 0x71FE, 0xC276, 0x71FF, 0xEFFA, 0x7201, 0xEFF9, 0x7202, 0xF26C, + 0x7203, 0xEFFC, 0x7205, 0xF26D, 0x7206, 0xC37A, 0x7207, 0xF26B, 0x720A, 0xF26A, 0x720C, 0xF269, 0x720D, 0xC37B, 0x7210, 0xC46C, + 0x7213, 0xF46A, 0x7214, 0xF46B, 0x7219, 0xF5DC, 0x721A, 0xF5DB, 0x721B, 0xC4EA, 0x721D, 0xF5DA, 0x721E, 0xF6EC, 0x721F, 0xF6ED, + 0x7222, 0xF7E6, 0x7223, 0xF8B1, 0x7226, 0xF8F6, 0x7227, 0xF9BC, 0x7228, 0xC679, 0x7229, 0xF9C6, 0x722A, 0xA4F6, 0x722C, 0xAAA6, + 0x722D, 0xAAA7, 0x7230, 0xACB8, 0x7235, 0xC0EF, 0x7236, 0xA4F7, 0x7238, 0xAAA8, 0x7239, 0xAF52, 0x723A, 0xB7DD, 0x723B, 0xA4F8, + 0x723D, 0xB26E, 0x723E, 0xBAB8, 0x723F, 0xC962, 0x7241, 0xCFB7, 0x7242, 0xD27D, 0x7244, 0xE2C5, 0x7246, 0xC0F0, 0x7247, 0xA4F9, + 0x7248, 0xAAA9, 0x7249, 0xCFB8, 0x724A, 0xCFB9, 0x724B, 0xDA66, 0x724C, 0xB550, 0x724F, 0xDEA4, 0x7252, 0xB7DE, 0x7253, 0xE2C6, + 0x7256, 0xBCF8, 0x7258, 0xC37C, 0x7259, 0xA4FA, 0x725A, 0xDA67, 0x725B, 0xA4FB, 0x725D, 0xA6C9, 0x725E, 0xCA42, 0x725F, 0xA6C8, + 0x7260, 0xA865, 0x7261, 0xA864, 0x7262, 0xA863, 0x7263, 0xCB60, 0x7267, 0xAAAA, 0x7269, 0xAAAB, 0x726A, 0xCD5B, 0x726C, 0xCFBA, + 0x726E, 0xCFBD, 0x726F, 0xACBA, 0x7270, 0xCFBB, 0x7272, 0xACB9, 0x7273, 0xCFBC, 0x7274, 0xACBB, 0x7276, 0xD2A2, 0x7277, 0xD2A1, + 0x7278, 0xD27E, 0x7279, 0xAF53, 0x727B, 0xD65D, 0x727C, 0xD65E, 0x727D, 0xB26F, 0x727E, 0xD65C, 0x727F, 0xD65F, 0x7280, 0xB552, + 0x7281, 0xB270, 0x7284, 0xB551, 0x7285, 0xDA6B, 0x7286, 0xDA6A, 0x7288, 0xDA68, 0x7289, 0xDA69, 0x728B, 0xDA6C, 0x728C, 0xDEA6, + 0x728D, 0xDEA5, 0x728E, 0xDEA9, 0x7290, 0xDEA8, 0x7291, 0xDEA7, 0x7292, 0xBAB9, 0x7293, 0xE2C9, 0x7295, 0xE2C8, 0x7296, 0xBABA, + 0x7297, 0xE2C7, 0x7298, 0xE673, 0x729A, 0xE674, 0x729B, 0xBCF9, 0x729D, 0xEA59, 0x729E, 0xEA5A, 0x72A1, 0xF272, 0x72A2, 0xC37D, + 0x72A3, 0xF271, 0x72A4, 0xF270, 0x72A5, 0xF26E, 0x72A6, 0xF26F, 0x72A7, 0xC4EB, 0x72A8, 0xF46C, 0x72A9, 0xF6EE, 0x72AA, 0xF8F7, + 0x72AC, 0xA4FC, 0x72AE, 0xC9A5, 0x72AF, 0xA5C7, 0x72B0, 0xC9A6, 0x72B4, 0xCA43, 0x72B5, 0xCA44, 0x72BA, 0xCB66, 0x72BD, 0xCB62, + 0x72BF, 0xCB61, 0x72C0, 0xAAAC, 0x72C1, 0xCB65, 0x72C2, 0xA867, 0x72C3, 0xCB63, 0x72C4, 0xA866, 0x72C5, 0xCB67, 0x72C6, 0xCB64, + 0x72C9, 0xCD5F, 0x72CA, 0xCFBE, 0x72CB, 0xCD5D, 0x72CC, 0xCD64, 0x72CE, 0xAAAD, 0x72D0, 0xAAB0, 0x72D1, 0xCD65, 0x72D2, 0xCD61, + 0x72D4, 0xCD62, 0x72D6, 0xCD5C, 0x72D7, 0xAAAF, 0x72D8, 0xCD5E, 0x72D9, 0xAAAE, 0x72DA, 0xCD63, 0x72DC, 0xCD60, 0x72DF, 0xCFC2, + 0x72E0, 0xACBD, 0x72E1, 0xACBE, 0x72E3, 0xCFC5, 0x72E4, 0xCFBF, 0x72E6, 0xCFC4, 0x72E8, 0xCFC0, 0x72E9, 0xACBC, 0x72EA, 0xCFC3, + 0x72EB, 0xCFC1, 0x72F3, 0xD2A8, 0x72F4, 0xD2A5, 0x72F6, 0xD2A7, 0x72F7, 0xAF58, 0x72F8, 0xAF57, 0x72F9, 0xAF55, 0x72FA, 0xD2A4, + 0x72FB, 0xD2A9, 0x72FC, 0xAF54, 0x72FD, 0xAF56, 0x72FE, 0xD2A6, 0x72FF, 0xD667, 0x7300, 0xD2A3, 0x7301, 0xD2AA, 0x7307, 0xD662, + 0x7308, 0xD666, 0x730A, 0xD665, 0x730B, 0xDA6E, 0x730C, 0xDA79, 0x730F, 0xD668, 0x7311, 0xD663, 0x7312, 0xDA6D, 0x7313, 0xB274, + 0x7316, 0xB273, 0x7317, 0xD661, 0x7318, 0xD664, 0x7319, 0xB275, 0x731B, 0xB272, 0x731C, 0xB271, 0x731D, 0xD660, 0x731E, 0xD669, + 0x7322, 0xDA70, 0x7323, 0xDA77, 0x7325, 0xB554, 0x7326, 0xDA76, 0x7327, 0xDA73, 0x7329, 0xB556, 0x732D, 0xDA75, 0x7330, 0xDA6F, + 0x7331, 0xDA71, 0x7332, 0xDA74, 0x7333, 0xDA72, 0x7334, 0xB555, 0x7335, 0xDA78, 0x7336, 0xB553, 0x7337, 0xB7DF, 0x733A, 0xDEAD, + 0x733B, 0xDEAC, 0x733C, 0xDEAA, 0x733E, 0xB7E2, 0x733F, 0xB7E1, 0x7340, 0xDEAE, 0x7342, 0xDEAB, 0x7343, 0xE2CA, 0x7344, 0xBABB, + 0x7345, 0xB7E0, 0x7349, 0xDEB0, 0x734A, 0xDEAF, 0x734C, 0xE2CD, 0x734D, 0xE2CB, 0x734E, 0xBCFA, 0x7350, 0xBABC, 0x7351, 0xE2CC, + 0x7352, 0xE676, 0x7357, 0xBCFB, 0x7358, 0xE675, 0x7359, 0xE67E, 0x735A, 0xE67D, 0x735B, 0xE67B, 0x735D, 0xE67A, 0x735E, 0xE677, + 0x735F, 0xE678, 0x7360, 0xE679, 0x7361, 0xE67C, 0x7362, 0xE6A1, 0x7365, 0xEA5F, 0x7366, 0xEA5C, 0x7367, 0xEA5D, 0x7368, 0xBF57, + 0x7369, 0xEA5B, 0x736A, 0xEA61, 0x736B, 0xEA60, 0x736C, 0xEA5E, 0x736E, 0xED64, 0x736F, 0xED65, 0x7370, 0xC0F1, 0x7372, 0xC0F2, + 0x7373, 0xED63, 0x7375, 0xC279, 0x7376, 0xEFFE, 0x7377, 0xC278, 0x7378, 0xC37E, 0x737A, 0xC3A1, 0x737B, 0xC46D, 0x737C, 0xF46E, + 0x737D, 0xF46D, 0x737E, 0xF5DD, 0x737F, 0xF6EF, 0x7380, 0xC57A, 0x7381, 0xF7E8, 0x7382, 0xF7E7, 0x7383, 0xF7E9, 0x7384, 0xA5C8, + 0x7385, 0xCFC6, 0x7386, 0xAF59, 0x7387, 0xB276, 0x7388, 0xD66A, 0x7389, 0xA5C9, 0x738A, 0xC9A7, 0x738B, 0xA4FD, 0x738E, 0xCA45, + 0x7392, 0xCB6C, 0x7393, 0xCB6A, 0x7394, 0xCB6B, 0x7395, 0xCB68, 0x7396, 0xA868, 0x7397, 0xCB69, 0x739D, 0xCD6D, 0x739F, 0xAAB3, + 0x73A0, 0xCD6B, 0x73A1, 0xCD67, 0x73A2, 0xCD6A, 0x73A4, 0xCD66, 0x73A5, 0xAAB5, 0x73A6, 0xCD69, 0x73A8, 0xAAB2, 0x73A9, 0xAAB1, + 0x73AB, 0xAAB4, 0x73AC, 0xCD6C, 0x73AD, 0xCD68, 0x73B2, 0xACC2, 0x73B3, 0xACC5, 0x73B4, 0xCFCE, 0x73B5, 0xCFCD, 0x73B6, 0xCFCC, + 0x73B7, 0xACBF, 0x73B8, 0xCFD5, 0x73B9, 0xCFCB, 0x73BB, 0xACC1, 0x73BC, 0xD2AF, 0x73BE, 0xCFD2, 0x73BF, 0xCFD0, 0x73C0, 0xACC4, + 0x73C2, 0xCFC8, 0x73C3, 0xCFD3, 0x73C5, 0xCFCA, 0x73C6, 0xCFD4, 0x73C7, 0xCFD1, 0x73C8, 0xCFC9, 0x73CA, 0xACC0, 0x73CB, 0xCFD6, + 0x73CC, 0xCFC7, 0x73CD, 0xACC3, 0x73D2, 0xD2B4, 0x73D3, 0xD2AB, 0x73D4, 0xD2B6, 0x73D6, 0xD2AE, 0x73D7, 0xD2B9, 0x73D8, 0xD2BA, + 0x73D9, 0xD2AC, 0x73DA, 0xD2B8, 0x73DB, 0xD2B5, 0x73DC, 0xD2B3, 0x73DD, 0xD2B7, 0x73DE, 0xAF5F, 0x73E0, 0xAF5D, 0x73E3, 0xD2B1, + 0x73E5, 0xD2AD, 0x73E7, 0xD2B0, 0x73E8, 0xD2BB, 0x73E9, 0xD2B2, 0x73EA, 0xAF5E, 0x73EB, 0xCFCF, 0x73ED, 0xAF5A, 0x73EE, 0xAF5C, + 0x73F4, 0xD678, 0x73F5, 0xD66D, 0x73F6, 0xD66B, 0x73F8, 0xD66C, 0x73FA, 0xD673, 0x73FC, 0xD674, 0x73FD, 0xD670, 0x73FE, 0xB27B, + 0x73FF, 0xD675, 0x7400, 0xD672, 0x7401, 0xD66F, 0x7403, 0xB279, 0x7404, 0xD66E, 0x7405, 0xB277, 0x7406, 0xB27A, 0x7407, 0xD671, + 0x7408, 0xD679, 0x7409, 0xAF5B, 0x740A, 0xB278, 0x740B, 0xD677, 0x740C, 0xD676, 0x740D, 0xB27C, 0x7416, 0xDA7E, 0x741A, 0xDAA1, + 0x741B, 0xB560, 0x741D, 0xDAA7, 0x7420, 0xDAA9, 0x7421, 0xDAA2, 0x7422, 0xB55A, 0x7423, 0xDAA6, 0x7424, 0xDAA5, 0x7425, 0xB55B, + 0x7426, 0xB561, 0x7428, 0xB562, 0x7429, 0xDAA8, 0x742A, 0xB558, 0x742B, 0xDA7D, 0x742C, 0xDA7B, 0x742D, 0xDAA3, 0x742E, 0xDA7A, + 0x742F, 0xB55F, 0x7430, 0xDA7C, 0x7431, 0xDAA4, 0x7432, 0xDAAA, 0x7433, 0xB559, 0x7434, 0xB55E, 0x7435, 0xB55C, 0x7436, 0xB55D, + 0x743A, 0xB557, 0x743F, 0xB7E9, 0x7440, 0xDEB7, 0x7441, 0xB7E8, 0x7442, 0xDEBB, 0x7444, 0xDEB1, 0x7446, 0xDEBC, 0x744A, 0xDEB2, + 0x744B, 0xDEB3, 0x744D, 0xDEBD, 0x744E, 0xDEBA, 0x744F, 0xDEB8, 0x7450, 0xDEB9, 0x7451, 0xDEB5, 0x7452, 0xDEB4, 0x7454, 0xDEBE, + 0x7455, 0xB7E5, 0x7457, 0xDEB6, 0x7459, 0xB7EA, 0x745A, 0xB7E4, 0x745B, 0xB7EB, 0x745C, 0xB7EC, 0x745E, 0xB7E7, 0x745F, 0xB7E6, + 0x7462, 0xE2CE, 0x7463, 0xBABE, 0x7464, 0xBABD, 0x7467, 0xE2D3, 0x7469, 0xBCFC, 0x746A, 0xBABF, 0x746D, 0xBAC1, 0x746E, 0xE2D4, + 0x746F, 0xB7E3, 0x7470, 0xBAC0, 0x7471, 0xE2D0, 0x7472, 0xE2D2, 0x7473, 0xE2CF, 0x7475, 0xE2D1, 0x7479, 0xE6AB, 0x747C, 0xE6AA, + 0x747D, 0xE6A7, 0x747E, 0xBD40, 0x747F, 0xEA62, 0x7480, 0xBD41, 0x7481, 0xE6A6, 0x7483, 0xBCFE, 0x7485, 0xE6A8, 0x7486, 0xE6A5, + 0x7487, 0xE6A2, 0x7488, 0xE6A9, 0x7489, 0xE6A3, 0x748A, 0xE6A4, 0x748B, 0xBCFD, 0x7490, 0xED69, 0x7492, 0xEA66, 0x7494, 0xEA65, + 0x7495, 0xEA67, 0x7497, 0xED66, 0x7498, 0xBF5A, 0x749A, 0xEA63, 0x749C, 0xBF58, 0x749E, 0xBF5C, 0x749F, 0xBF5B, 0x74A0, 0xEA64, + 0x74A1, 0xEA68, 0x74A3, 0xBF59, 0x74A5, 0xED6D, 0x74A6, 0xC0F5, 0x74A7, 0xC27A, 0x74A8, 0xC0F6, 0x74A9, 0xC0F3, 0x74AA, 0xED6A, + 0x74AB, 0xED68, 0x74AD, 0xED6B, 0x74AF, 0xED6E, 0x74B0, 0xC0F4, 0x74B1, 0xED6C, 0x74B2, 0xED67, 0x74B5, 0xF042, 0x74B6, 0xF045, + 0x74B7, 0xF275, 0x74B8, 0xF040, 0x74BA, 0xF46F, 0x74BB, 0xF046, 0x74BD, 0xC3A2, 0x74BE, 0xF044, 0x74BF, 0xC27B, 0x74C0, 0xF041, + 0x74C1, 0xF043, 0x74C2, 0xF047, 0x74C3, 0xF276, 0x74C5, 0xF274, 0x74CA, 0xC3A3, 0x74CB, 0xF273, 0x74CF, 0xC46E, 0x74D4, 0xC4ED, + 0x74D5, 0xF6F1, 0x74D6, 0xC4EC, 0x74D7, 0xF6F3, 0x74D8, 0xF6F0, 0x74D9, 0xF6F2, 0x74DA, 0xC5D0, 0x74DB, 0xF8B2, 0x74DC, 0xA5CA, + 0x74DD, 0xCD6E, 0x74DE, 0xD2BC, 0x74DF, 0xD2BD, 0x74E0, 0xB27D, 0x74E1, 0xDEBF, 0x74E2, 0xBF5D, 0x74E3, 0xC3A4, 0x74E4, 0xC57B, + 0x74E5, 0xF8B3, 0x74E6, 0xA5CB, 0x74E8, 0xCD6F, 0x74E9, 0xA260, 0x74EC, 0xCFD7, 0x74EE, 0xCFD8, 0x74F4, 0xD2BE, 0x74F5, 0xD2BF, + 0x74F6, 0xB27E, 0x74F7, 0xB2A1, 0x74FB, 0xDAAB, 0x74FD, 0xDEC2, 0x74FE, 0xDEC1, 0x74FF, 0xDEC0, 0x7500, 0xE2D5, 0x7502, 0xE2D6, + 0x7503, 0xE2D7, 0x7504, 0xBAC2, 0x7507, 0xE6AD, 0x7508, 0xE6AC, 0x750B, 0xEA69, 0x750C, 0xBF5E, 0x750D, 0xBF5F, 0x750F, 0xED72, + 0x7510, 0xED6F, 0x7511, 0xED70, 0x7512, 0xED71, 0x7513, 0xF049, 0x7514, 0xF048, 0x7515, 0xC27C, 0x7516, 0xF277, 0x7517, 0xF5DE, + 0x7518, 0xA5CC, 0x751A, 0xACC6, 0x751C, 0xB2A2, 0x751D, 0xDEC3, 0x751F, 0xA5CD, 0x7521, 0xD2C0, 0x7522, 0xB2A3, 0x7525, 0xB563, + 0x7526, 0xB564, 0x7528, 0xA5CE, 0x7529, 0xA5CF, 0x752A, 0xCA46, 0x752B, 0xA86A, 0x752C, 0xA869, 0x752D, 0xACC7, 0x752E, 0xCFD9, + 0x752F, 0xDAAC, 0x7530, 0xA5D0, 0x7531, 0xA5D1, 0x7532, 0xA5D2, 0x7533, 0xA5D3, 0x7537, 0xA86B, 0x7538, 0xA86C, 0x7539, 0xCB6E, + 0x753A, 0xCB6D, 0x753D, 0xAAB6, 0x753E, 0xCD72, 0x753F, 0xCD70, 0x7540, 0xCD71, 0x7547, 0xCFDA, 0x7548, 0xCFDB, 0x754B, 0xACCB, + 0x754C, 0xACC9, 0x754E, 0xACCA, 0x754F, 0xACC8, 0x7554, 0xAF60, 0x7559, 0xAF64, 0x755A, 0xAF63, 0x755B, 0xD2C1, 0x755C, 0xAF62, + 0x755D, 0xAF61, 0x755F, 0xD2C2, 0x7562, 0xB2A6, 0x7563, 0xD67B, 0x7564, 0xD67A, 0x7565, 0xB2A4, 0x7566, 0xB2A5, 0x756A, 0xB566, + 0x756B, 0xB565, 0x756C, 0xDAAE, 0x756F, 0xDAAD, 0x7570, 0xB2A7, 0x7576, 0xB7ED, 0x7577, 0xDEC5, 0x7578, 0xB7EE, 0x7579, 0xDEC4, + 0x757D, 0xE2D8, 0x757E, 0xE6AE, 0x757F, 0xBD42, 0x7580, 0xEA6A, 0x7584, 0xED73, 0x7586, 0xC3A6, 0x7587, 0xC3A5, 0x758A, 0xC57C, + 0x758B, 0xA5D4, 0x758C, 0xCD73, 0x758F, 0xB2A8, 0x7590, 0xE2D9, 0x7591, 0xBAC3, 0x7594, 0xCB6F, 0x7595, 0xCB70, 0x7598, 0xCD74, + 0x7599, 0xAAB8, 0x759A, 0xAAB9, 0x759D, 0xAAB7, 0x75A2, 0xACCF, 0x75A3, 0xACD0, 0x75A4, 0xACCD, 0x75A5, 0xACCE, 0x75A7, 0xCFDC, + 0x75AA, 0xCFDD, 0x75AB, 0xACCC, 0x75B0, 0xD2C3, 0x75B2, 0xAF68, 0x75B3, 0xAF69, 0x75B5, 0xB2AB, 0x75B6, 0xD2C9, 0x75B8, 0xAF6E, + 0x75B9, 0xAF6C, 0x75BA, 0xD2CA, 0x75BB, 0xD2C5, 0x75BC, 0xAF6B, 0x75BD, 0xAF6A, 0x75BE, 0xAF65, 0x75BF, 0xD2C8, 0x75C0, 0xD2C7, + 0x75C1, 0xD2C4, 0x75C2, 0xAF6D, 0x75C4, 0xD2C6, 0x75C5, 0xAF66, 0x75C7, 0xAF67, 0x75CA, 0xB2AC, 0x75CB, 0xD6A1, 0x75CC, 0xD6A2, + 0x75CD, 0xB2AD, 0x75CE, 0xD67C, 0x75CF, 0xD67E, 0x75D0, 0xD6A4, 0x75D1, 0xD6A3, 0x75D2, 0xD67D, 0x75D4, 0xB2A9, 0x75D5, 0xB2AA, + 0x75D7, 0xDAB6, 0x75D8, 0xB56B, 0x75D9, 0xB56A, 0x75DA, 0xDAB0, 0x75DB, 0xB568, 0x75DD, 0xDAB3, 0x75DE, 0xB56C, 0x75DF, 0xDAB4, + 0x75E0, 0xB56D, 0x75E1, 0xDAB1, 0x75E2, 0xB567, 0x75E3, 0xB569, 0x75E4, 0xDAB5, 0x75E6, 0xDAB2, 0x75E7, 0xDAAF, 0x75ED, 0xDED2, + 0x75EF, 0xDEC7, 0x75F0, 0xB7F0, 0x75F1, 0xB7F3, 0x75F2, 0xB7F2, 0x75F3, 0xB7F7, 0x75F4, 0xB7F6, 0x75F5, 0xDED3, 0x75F6, 0xDED1, + 0x75F7, 0xDECA, 0x75F8, 0xDECE, 0x75F9, 0xDECD, 0x75FA, 0xB7F4, 0x75FB, 0xDED0, 0x75FC, 0xDECC, 0x75FD, 0xDED4, 0x75FE, 0xDECB, + 0x75FF, 0xB7F5, 0x7600, 0xB7EF, 0x7601, 0xB7F1, 0x7603, 0xDEC9, 0x7608, 0xE2DB, 0x7609, 0xBAC7, 0x760A, 0xE2DF, 0x760B, 0xBAC6, + 0x760C, 0xE2DC, 0x760D, 0xBAC5, 0x760F, 0xDEC8, 0x7610, 0xDECF, 0x7611, 0xE2DE, 0x7613, 0xBAC8, 0x7614, 0xE2E0, 0x7615, 0xE2DD, + 0x7616, 0xE2DA, 0x7619, 0xE6B1, 0x761A, 0xE6B5, 0x761B, 0xE6B7, 0x761C, 0xE6B3, 0x761D, 0xE6B2, 0x761E, 0xE6B0, 0x761F, 0xBD45, + 0x7620, 0xBD43, 0x7621, 0xBD48, 0x7622, 0xBD49, 0x7623, 0xE6B4, 0x7624, 0xBD46, 0x7625, 0xE6AF, 0x7626, 0xBD47, 0x7627, 0xBAC4, + 0x7628, 0xE6B6, 0x7629, 0xBD44, 0x762D, 0xEA6C, 0x762F, 0xEA6B, 0x7630, 0xEA73, 0x7631, 0xEA6D, 0x7632, 0xEA72, 0x7633, 0xEA6F, + 0x7634, 0xBF60, 0x7635, 0xEA71, 0x7638, 0xBF61, 0x763A, 0xBF62, 0x763C, 0xEA70, 0x763D, 0xEA6E, 0x7642, 0xC0F8, 0x7643, 0xED74, + 0x7646, 0xC0F7, 0x7647, 0xED77, 0x7648, 0xED75, 0x7649, 0xED76, 0x764C, 0xC0F9, 0x7650, 0xF04D, 0x7652, 0xC2A1, 0x7653, 0xF04E, + 0x7656, 0xC27D, 0x7657, 0xF04F, 0x7658, 0xC27E, 0x7659, 0xF04C, 0x765A, 0xF050, 0x765C, 0xF04A, 0x765F, 0xC3A7, 0x7660, 0xF278, + 0x7661, 0xC3A8, 0x7662, 0xC46F, 0x7664, 0xF04B, 0x7665, 0xC470, 0x7669, 0xC4EE, 0x766A, 0xF5DF, 0x766C, 0xC57E, 0x766D, 0xF6F4, + 0x766E, 0xC57D, 0x7670, 0xF7EA, 0x7671, 0xC5F5, 0x7672, 0xC5F6, 0x7675, 0xF9CC, 0x7678, 0xACD1, 0x7679, 0xCFDE, 0x767B, 0xB56E, + 0x767C, 0xB56F, 0x767D, 0xA5D5, 0x767E, 0xA6CA, 0x767F, 0xCA47, 0x7681, 0xCB71, 0x7682, 0xA86D, 0x7684, 0xAABA, 0x7686, 0xACD2, + 0x7687, 0xACD3, 0x7688, 0xACD4, 0x7689, 0xD6A6, 0x768A, 0xD2CB, 0x768B, 0xAF6F, 0x768E, 0xB2AE, 0x768F, 0xD6A5, 0x7692, 0xDAB8, + 0x7693, 0xB571, 0x7695, 0xDAB7, 0x7696, 0xB570, 0x7699, 0xDED5, 0x769A, 0xBD4A, 0x769B, 0xE6BB, 0x769C, 0xE6B8, 0x769D, 0xE6B9, + 0x769E, 0xE6BA, 0x76A4, 0xED78, 0x76A6, 0xF051, 0x76AA, 0xF471, 0x76AB, 0xF470, 0x76AD, 0xF6F5, 0x76AE, 0xA5D6, 0x76AF, 0xCD75, + 0x76B0, 0xAF70, 0x76B4, 0xB572, 0x76B5, 0xDED6, 0x76B8, 0xE2E1, 0x76BA, 0xBD4B, 0x76BB, 0xEA74, 0x76BD, 0xF052, 0x76BE, 0xF472, + 0x76BF, 0xA5D7, 0x76C2, 0xAABB, 0x76C3, 0xACD7, 0x76C4, 0xCFDF, 0x76C5, 0xACD8, 0x76C6, 0xACD6, 0x76C8, 0xACD5, 0x76C9, 0xD2CC, + 0x76CA, 0xAF71, 0x76CD, 0xAF72, 0x76CE, 0xAF73, 0x76D2, 0xB2B0, 0x76D3, 0xD6A7, 0x76D4, 0xB2AF, 0x76DA, 0xDAB9, 0x76DB, 0xB2B1, + 0x76DC, 0xB573, 0x76DD, 0xDED7, 0x76DE, 0xB7F8, 0x76DF, 0xB7F9, 0x76E1, 0xBAC9, 0x76E3, 0xBACA, 0x76E4, 0xBD4C, 0x76E5, 0xBF64, + 0x76E6, 0xEA75, 0x76E7, 0xBF63, 0x76E9, 0xED79, 0x76EA, 0xC0FA, 0x76EC, 0xF053, 0x76ED, 0xF473, 0x76EE, 0xA5D8, 0x76EF, 0xA86E, + 0x76F0, 0xCD78, 0x76F1, 0xCD77, 0x76F2, 0xAABC, 0x76F3, 0xCD76, 0x76F4, 0xAABD, 0x76F5, 0xCD79, 0x76F7, 0xCFE5, 0x76F8, 0xACDB, + 0x76F9, 0xACDA, 0x76FA, 0xCFE7, 0x76FB, 0xCFE6, 0x76FC, 0xACDF, 0x76FE, 0xACDE, 0x7701, 0xACD9, 0x7703, 0xCFE1, 0x7704, 0xCFE2, + 0x7705, 0xCFE3, 0x7707, 0xACE0, 0x7708, 0xCFE0, 0x7709, 0xACDC, 0x770A, 0xCFE4, 0x770B, 0xACDD, 0x7710, 0xD2CF, 0x7711, 0xD2D3, + 0x7712, 0xD2D1, 0x7713, 0xD2D0, 0x7715, 0xD2D4, 0x7719, 0xD2D5, 0x771A, 0xD2D6, 0x771B, 0xD2CE, 0x771D, 0xD2CD, 0x771F, 0xAF75, + 0x7720, 0xAF76, 0x7722, 0xD2D7, 0x7723, 0xD2D2, 0x7725, 0xD6B0, 0x7727, 0xD2D8, 0x7728, 0xAF77, 0x7729, 0xAF74, 0x772D, 0xD6AA, + 0x772F, 0xD6A9, 0x7731, 0xD6AB, 0x7732, 0xD6AC, 0x7733, 0xD6AE, 0x7734, 0xD6AD, 0x7735, 0xD6B2, 0x7736, 0xB2B5, 0x7737, 0xB2B2, + 0x7738, 0xB2B6, 0x7739, 0xD6A8, 0x773A, 0xB2B7, 0x773B, 0xD6B1, 0x773C, 0xB2B4, 0x773D, 0xD6AF, 0x773E, 0xB2B3, 0x7744, 0xDABC, + 0x7745, 0xDABE, 0x7746, 0xDABA, 0x7747, 0xDABB, 0x774A, 0xDABF, 0x774B, 0xDAC1, 0x774C, 0xDAC2, 0x774D, 0xDABD, 0x774E, 0xDAC0, + 0x774F, 0xB574, 0x7752, 0xDEDB, 0x7754, 0xDEE0, 0x7755, 0xDED8, 0x7756, 0xDEDC, 0x7759, 0xDEE1, 0x775A, 0xDEDD, 0x775B, 0xB7FA, + 0x775C, 0xB843, 0x775E, 0xB7FD, 0x775F, 0xDED9, 0x7760, 0xDEDA, 0x7761, 0xBACE, 0x7762, 0xB846, 0x7763, 0xB7FE, 0x7765, 0xB844, + 0x7766, 0xB7FC, 0x7767, 0xDEDF, 0x7768, 0xB845, 0x7769, 0xDEDE, 0x776A, 0xB841, 0x776B, 0xB7FB, 0x776C, 0xB842, 0x776D, 0xDEE2, + 0x776E, 0xE2E6, 0x776F, 0xE2E8, 0x7779, 0xB840, 0x777C, 0xE2E3, 0x777D, 0xBACC, 0x777E, 0xE2E9, 0x777F, 0xBACD, 0x7780, 0xE2E7, + 0x7781, 0xE2E2, 0x7782, 0xE2E5, 0x7783, 0xE2EA, 0x7784, 0xBACB, 0x7785, 0xE2E4, 0x7787, 0xBD4E, 0x7788, 0xE6BF, 0x7789, 0xE6BE, + 0x778B, 0xBD51, 0x778C, 0xBD4F, 0x778D, 0xE6BC, 0x778E, 0xBD4D, 0x778F, 0xE6BD, 0x7791, 0xBD50, 0x7795, 0xEA7D, 0x7797, 0xEAA1, + 0x7799, 0xEA7E, 0x779A, 0xEA76, 0x779B, 0xEA7A, 0x779C, 0xEA79, 0x779D, 0xEA77, 0x779E, 0xBF66, 0x779F, 0xBF67, 0x77A0, 0xBF65, + 0x77A1, 0xEA78, 0x77A2, 0xEA7B, 0x77A3, 0xEA7C, 0x77A5, 0xBF68, 0x77A7, 0xC140, 0x77A8, 0xEDA3, 0x77AA, 0xC0FC, 0x77AB, 0xED7B, + 0x77AC, 0xC0FE, 0x77AD, 0xC141, 0x77B0, 0xC0FD, 0x77B1, 0xEDA2, 0x77B2, 0xED7C, 0x77B3, 0xC0FB, 0x77B4, 0xEDA1, 0x77B5, 0xED7A, + 0x77B6, 0xED7E, 0x77B7, 0xED7D, 0x77BA, 0xF055, 0x77BB, 0xC2A4, 0x77BC, 0xC2A5, 0x77BD, 0xC2A2, 0x77BF, 0xC2A3, 0x77C2, 0xF054, + 0x77C4, 0xF27B, 0x77C7, 0xC3A9, 0x77C9, 0xF279, 0x77CA, 0xF27A, 0x77CC, 0xF474, 0x77CD, 0xF477, 0x77CE, 0xF475, 0x77CF, 0xF476, + 0x77D0, 0xF5E0, 0x77D3, 0xC4EF, 0x77D4, 0xF7EB, 0x77D5, 0xF8B4, 0x77D7, 0xC5F7, 0x77D8, 0xF8F8, 0x77D9, 0xF8F9, 0x77DA, 0xC666, + 0x77DB, 0xA5D9, 0x77DC, 0xACE1, 0x77DE, 0xDAC3, 0x77E0, 0xDEE3, 0x77E2, 0xA5DA, 0x77E3, 0xA86F, 0x77E5, 0xAABE, 0x77E7, 0xCFE8, + 0x77E8, 0xCFE9, 0x77E9, 0xAF78, 0x77EC, 0xDAC4, 0x77ED, 0xB575, 0x77EE, 0xB847, 0x77EF, 0xC142, 0x77F0, 0xEDA4, 0x77F1, 0xF27C, + 0x77F2, 0xF478, 0x77F3, 0xA5DB, 0x77F7, 0xCDA1, 0x77F8, 0xCD7A, 0x77F9, 0xCD7C, 0x77FA, 0xCD7E, 0x77FB, 0xCD7D, 0x77FC, 0xCD7B, + 0x77FD, 0xAABF, 0x7802, 0xACE2, 0x7803, 0xCFF2, 0x7805, 0xCFED, 0x7806, 0xCFEA, 0x7809, 0xCFF1, 0x780C, 0xACE4, 0x780D, 0xACE5, + 0x780E, 0xCFF0, 0x780F, 0xCFEF, 0x7810, 0xCFEE, 0x7811, 0xCFEB, 0x7812, 0xCFEC, 0x7813, 0xCFF3, 0x7814, 0xACE3, 0x781D, 0xAF7C, + 0x781F, 0xAFA4, 0x7820, 0xAFA3, 0x7821, 0xD2E1, 0x7822, 0xD2DB, 0x7823, 0xD2D9, 0x7825, 0xAFA1, 0x7826, 0xD6B9, 0x7827, 0xAF7A, + 0x7828, 0xD2DE, 0x7829, 0xD2E2, 0x782A, 0xD2E4, 0x782B, 0xD2E0, 0x782C, 0xD2DA, 0x782D, 0xAFA2, 0x782E, 0xD2DF, 0x782F, 0xD2DD, + 0x7830, 0xAF79, 0x7831, 0xD2E5, 0x7832, 0xAFA5, 0x7833, 0xD2E3, 0x7834, 0xAF7D, 0x7835, 0xD2DC, 0x7837, 0xAF7E, 0x7838, 0xAF7B, + 0x7843, 0xB2B9, 0x7845, 0xD6BA, 0x7848, 0xD6B3, 0x7849, 0xD6B5, 0x784A, 0xD6B7, 0x784C, 0xD6B8, 0x784D, 0xD6B6, 0x784E, 0xB2BA, + 0x7850, 0xD6BB, 0x7852, 0xD6B4, 0x785C, 0xDAC8, 0x785D, 0xB576, 0x785E, 0xDAD0, 0x7860, 0xDAC5, 0x7862, 0xDAD1, 0x7864, 0xDAC6, + 0x7865, 0xDAC7, 0x7868, 0xDACF, 0x7869, 0xDACE, 0x786A, 0xDACB, 0x786B, 0xB2B8, 0x786C, 0xB577, 0x786D, 0xDAC9, 0x786E, 0xDACC, + 0x786F, 0xB578, 0x7870, 0xDACD, 0x7871, 0xDACA, 0x7879, 0xDEEE, 0x787B, 0xDEF2, 0x787C, 0xB84E, 0x787E, 0xE2F0, 0x787F, 0xB851, + 0x7880, 0xDEF0, 0x7881, 0xF9D6, 0x7883, 0xDEED, 0x7884, 0xDEE8, 0x7885, 0xDEEA, 0x7886, 0xDEEB, 0x7887, 0xDEE4, 0x7889, 0xB84D, + 0x788C, 0xB84C, 0x788E, 0xB848, 0x788F, 0xDEE7, 0x7891, 0xB84F, 0x7893, 0xB850, 0x7894, 0xDEE6, 0x7895, 0xDEE9, 0x7896, 0xDEF1, + 0x7897, 0xB84A, 0x7898, 0xB84B, 0x7899, 0xDEEF, 0x789A, 0xDEE5, 0x789E, 0xE2F2, 0x789F, 0xBAD0, 0x78A0, 0xE2F4, 0x78A1, 0xDEEC, + 0x78A2, 0xE2F6, 0x78A3, 0xBAD4, 0x78A4, 0xE2F7, 0x78A5, 0xE2F3, 0x78A7, 0xBAD1, 0x78A8, 0xE2EF, 0x78A9, 0xBAD3, 0x78AA, 0xE2EC, + 0x78AB, 0xE2F1, 0x78AC, 0xE2F5, 0x78AD, 0xE2EE, 0x78B0, 0xB849, 0x78B2, 0xE2EB, 0x78B3, 0xBAD2, 0x78B4, 0xE2ED, 0x78BA, 0xBD54, + 0x78BB, 0xE6C1, 0x78BC, 0xBD58, 0x78BE, 0xBD56, 0x78C1, 0xBACF, 0x78C3, 0xE6C8, 0x78C4, 0xE6C9, 0x78C5, 0xBD53, 0x78C8, 0xE6C7, + 0x78C9, 0xE6CA, 0x78CA, 0xBD55, 0x78CB, 0xBD52, 0x78CC, 0xE6C3, 0x78CD, 0xE6C0, 0x78CE, 0xE6C5, 0x78CF, 0xE6C2, 0x78D0, 0xBD59, + 0x78D1, 0xE6C4, 0x78D4, 0xE6C6, 0x78D5, 0xBD57, 0x78DA, 0xBF6A, 0x78DB, 0xEAA8, 0x78DD, 0xEAA2, 0x78DE, 0xEAA6, 0x78DF, 0xEAAC, + 0x78E0, 0xEAAD, 0x78E1, 0xEAA9, 0x78E2, 0xEAAA, 0x78E3, 0xEAA7, 0x78E5, 0xEAA4, 0x78E7, 0xBF6C, 0x78E8, 0xBF69, 0x78E9, 0xEAA3, + 0x78EA, 0xEAA5, 0x78EC, 0xBF6B, 0x78ED, 0xEAAB, 0x78EF, 0xC146, 0x78F2, 0xEDAA, 0x78F3, 0xEDA5, 0x78F4, 0xC145, 0x78F7, 0xC143, + 0x78F9, 0xEDAC, 0x78FA, 0xC144, 0x78FB, 0xEDA8, 0x78FC, 0xEDA9, 0x78FD, 0xEDA6, 0x78FE, 0xEDAD, 0x78FF, 0xF056, 0x7901, 0xC147, + 0x7902, 0xEDA7, 0x7904, 0xEDAE, 0x7905, 0xEDAB, 0x7909, 0xF05A, 0x790C, 0xF057, 0x790E, 0xC2A6, 0x7910, 0xF05B, 0x7911, 0xF05D, + 0x7912, 0xF05C, 0x7913, 0xF058, 0x7914, 0xF059, 0x7917, 0xF2A3, 0x7919, 0xC3AA, 0x791B, 0xF27E, 0x791C, 0xF2A2, 0x791D, 0xF27D, + 0x791E, 0xF2A4, 0x7921, 0xF2A1, 0x7923, 0xF47A, 0x7924, 0xF47D, 0x7925, 0xF479, 0x7926, 0xC471, 0x7927, 0xF47B, 0x7928, 0xF47C, + 0x7929, 0xF47E, 0x792A, 0xC472, 0x792B, 0xC474, 0x792C, 0xC473, 0x792D, 0xF5E1, 0x792F, 0xF5E3, 0x7931, 0xF5E2, 0x7935, 0xF6F6, + 0x7938, 0xF8B5, 0x7939, 0xF8FA, 0x793A, 0xA5DC, 0x793D, 0xCB72, 0x793E, 0xAAC0, 0x793F, 0xCDA3, 0x7940, 0xAAC1, 0x7941, 0xAAC2, + 0x7942, 0xCDA2, 0x7944, 0xCFF8, 0x7945, 0xCFF7, 0x7946, 0xACE6, 0x7947, 0xACE9, 0x7948, 0xACE8, 0x7949, 0xACE7, 0x794A, 0xCFF4, + 0x794B, 0xCFF6, 0x794C, 0xCFF5, 0x794F, 0xD2E8, 0x7950, 0xAFA7, 0x7951, 0xD2EC, 0x7952, 0xD2EB, 0x7953, 0xD2EA, 0x7954, 0xD2E6, + 0x7955, 0xAFA6, 0x7956, 0xAFAA, 0x7957, 0xAFAD, 0x795A, 0xAFAE, 0x795B, 0xD2E7, 0x795C, 0xD2E9, 0x795D, 0xAFAC, 0x795E, 0xAFAB, + 0x795F, 0xAFA9, 0x7960, 0xAFA8, 0x7961, 0xD6C2, 0x7963, 0xD6C0, 0x7964, 0xD6BC, 0x7965, 0xB2BB, 0x7967, 0xD6BD, 0x7968, 0xB2BC, + 0x7969, 0xD6BE, 0x796A, 0xD6BF, 0x796B, 0xD6C1, 0x796D, 0xB2BD, 0x7970, 0xDAD5, 0x7972, 0xDAD4, 0x7973, 0xDAD3, 0x7974, 0xDAD2, + 0x7979, 0xDEF6, 0x797A, 0xB852, 0x797C, 0xDEF3, 0x797D, 0xDEF5, 0x797F, 0xB853, 0x7981, 0xB854, 0x7982, 0xDEF4, 0x7988, 0xE341, + 0x798A, 0xE2F9, 0x798B, 0xE2FA, 0x798D, 0xBAD7, 0x798E, 0xBAD5, 0x798F, 0xBAD6, 0x7990, 0xE343, 0x7992, 0xE342, 0x7993, 0xE2FE, + 0x7994, 0xE2FD, 0x7995, 0xE2FC, 0x7996, 0xE2FB, 0x7997, 0xE340, 0x7998, 0xE2F8, 0x799A, 0xE6CB, 0x799B, 0xE6D0, 0x799C, 0xE6CE, + 0x79A0, 0xE6CD, 0x79A1, 0xE6CC, 0x79A2, 0xE6CF, 0x79A4, 0xEAAE, 0x79A6, 0xBF6D, 0x79A7, 0xC148, 0x79A8, 0xEDB0, 0x79AA, 0xC149, + 0x79AB, 0xEDAF, 0x79AC, 0xF05F, 0x79AD, 0xF05E, 0x79AE, 0xC2A7, 0x79B0, 0xF2A5, 0x79B1, 0xC3AB, 0x79B2, 0xF4A1, 0x79B3, 0xC5A1, + 0x79B4, 0xF6F7, 0x79B6, 0xF8B7, 0x79B7, 0xF8B6, 0x79B8, 0xC9A8, 0x79B9, 0xACEA, 0x79BA, 0xACEB, 0x79BB, 0xD6C3, 0x79BD, 0xB856, + 0x79BE, 0xA5DD, 0x79BF, 0xA872, 0x79C0, 0xA871, 0x79C1, 0xA870, 0x79C5, 0xCDA4, 0x79C8, 0xAAC4, 0x79C9, 0xAAC3, 0x79CB, 0xACEE, + 0x79CD, 0xCFFA, 0x79CE, 0xCFFD, 0x79CF, 0xCFFB, 0x79D1, 0xACEC, 0x79D2, 0xACED, 0x79D5, 0xCFF9, 0x79D6, 0xCFFC, 0x79D8, 0xAFB5, + 0x79DC, 0xD2F3, 0x79DD, 0xD2F5, 0x79DE, 0xD2F4, 0x79DF, 0xAFB2, 0x79E0, 0xD2EF, 0x79E3, 0xAFB0, 0x79E4, 0xAFAF, 0x79E6, 0xAFB3, + 0x79E7, 0xAFB1, 0x79E9, 0xAFB4, 0x79EA, 0xD2F2, 0x79EB, 0xD2ED, 0x79EC, 0xD2EE, 0x79ED, 0xD2F1, 0x79EE, 0xD2F0, 0x79F6, 0xD6C6, + 0x79F7, 0xD6C7, 0x79F8, 0xD6C5, 0x79FA, 0xD6C4, 0x79FB, 0xB2BE, 0x7A00, 0xB57D, 0x7A02, 0xDAD6, 0x7A03, 0xDAD8, 0x7A04, 0xDADA, + 0x7A05, 0xB57C, 0x7A08, 0xB57A, 0x7A0A, 0xDAD7, 0x7A0B, 0xB57B, 0x7A0C, 0xDAD9, 0x7A0D, 0xB579, 0x7A10, 0xDF41, 0x7A11, 0xDEF7, + 0x7A12, 0xDEFA, 0x7A13, 0xDEFE, 0x7A14, 0xB85A, 0x7A15, 0xDEFC, 0x7A17, 0xDEFB, 0x7A18, 0xDEF8, 0x7A19, 0xDEF9, 0x7A1A, 0xB858, + 0x7A1B, 0xDF40, 0x7A1C, 0xB857, 0x7A1E, 0xB85C, 0x7A1F, 0xB85B, 0x7A20, 0xB859, 0x7A22, 0xDEFD, 0x7A26, 0xE349, 0x7A28, 0xE348, + 0x7A2B, 0xE344, 0x7A2E, 0xBAD8, 0x7A2F, 0xE347, 0x7A30, 0xE346, 0x7A31, 0xBAD9, 0x7A37, 0xBD5E, 0x7A39, 0xE6D2, 0x7A3B, 0xBD5F, + 0x7A3C, 0xBD5B, 0x7A3D, 0xBD5D, 0x7A3F, 0xBD5A, 0x7A40, 0xBD5C, 0x7A44, 0xEAAF, 0x7A46, 0xBF70, 0x7A47, 0xEAB1, 0x7A48, 0xEAB0, + 0x7A4A, 0xE345, 0x7A4B, 0xBF72, 0x7A4C, 0xBF71, 0x7A4D, 0xBF6E, 0x7A4E, 0xBF6F, 0x7A54, 0xEDB5, 0x7A56, 0xEDB3, 0x7A57, 0xC14A, + 0x7A58, 0xEDB4, 0x7A5A, 0xEDB6, 0x7A5B, 0xEDB2, 0x7A5C, 0xEDB1, 0x7A5F, 0xF060, 0x7A60, 0xC2AA, 0x7A61, 0xC2A8, 0x7A62, 0xC2A9, + 0x7A67, 0xF2A6, 0x7A68, 0xF2A7, 0x7A69, 0xC3AD, 0x7A6B, 0xC3AC, 0x7A6C, 0xF4A3, 0x7A6D, 0xF4A4, 0x7A6E, 0xF4A2, 0x7A70, 0xF6F8, + 0x7A71, 0xF6F9, 0x7A74, 0xA5DE, 0x7A75, 0xCA48, 0x7A76, 0xA873, 0x7A78, 0xCDA5, 0x7A79, 0xAAC6, 0x7A7A, 0xAAC5, 0x7A7B, 0xCDA6, + 0x7A7E, 0xD040, 0x7A7F, 0xACEF, 0x7A80, 0xCFFE, 0x7A81, 0xACF0, 0x7A84, 0xAFB6, 0x7A85, 0xD2F8, 0x7A86, 0xD2F6, 0x7A87, 0xD2FC, + 0x7A88, 0xAFB7, 0x7A89, 0xD2F7, 0x7A8A, 0xD2FB, 0x7A8B, 0xD2F9, 0x7A8C, 0xD2FA, 0x7A8F, 0xD6C8, 0x7A90, 0xD6CA, 0x7A92, 0xB2BF, + 0x7A94, 0xD6C9, 0x7A95, 0xB2C0, 0x7A96, 0xB5A2, 0x7A97, 0xB5A1, 0x7A98, 0xB57E, 0x7A99, 0xDADB, 0x7A9E, 0xDF44, 0x7A9F, 0xB85D, + 0x7AA0, 0xB85E, 0x7AA2, 0xDF43, 0x7AA3, 0xDF42, 0x7AA8, 0xE34A, 0x7AA9, 0xBADB, 0x7AAA, 0xBADA, 0x7AAB, 0xE34B, 0x7AAC, 0xE34C, + 0x7AAE, 0xBD61, 0x7AAF, 0xBD60, 0x7AB1, 0xEAB5, 0x7AB2, 0xE6D3, 0x7AB3, 0xE6D5, 0x7AB4, 0xE6D4, 0x7AB5, 0xEAB4, 0x7AB6, 0xEAB2, + 0x7AB7, 0xEAB6, 0x7AB8, 0xEAB3, 0x7ABA, 0xBF73, 0x7ABE, 0xEDB7, 0x7ABF, 0xC14B, 0x7AC0, 0xEDB8, 0x7AC1, 0xEDB9, 0x7AC4, 0xC2AB, + 0x7AC5, 0xC2AC, 0x7AC7, 0xC475, 0x7ACA, 0xC5D1, 0x7ACB, 0xA5DF, 0x7AD1, 0xD041, 0x7AD8, 0xD2FD, 0x7AD9, 0xAFB8, 0x7ADF, 0xB3BA, + 0x7AE0, 0xB3B9, 0x7AE3, 0xB5A4, 0x7AE4, 0xDADD, 0x7AE5, 0xB5A3, 0x7AE6, 0xDADC, 0x7AEB, 0xDF45, 0x7AED, 0xBADC, 0x7AEE, 0xE34D, + 0x7AEF, 0xBADD, 0x7AF6, 0xC476, 0x7AF7, 0xF4A5, 0x7AF9, 0xA6CB, 0x7AFA, 0xAAC7, 0x7AFB, 0xCDA7, 0x7AFD, 0xACF2, 0x7AFF, 0xACF1, + 0x7B00, 0xD042, 0x7B01, 0xD043, 0x7B04, 0xD340, 0x7B05, 0xD342, 0x7B06, 0xAFB9, 0x7B08, 0xD344, 0x7B09, 0xD347, 0x7B0A, 0xD345, + 0x7B0E, 0xD346, 0x7B0F, 0xD343, 0x7B10, 0xD2FE, 0x7B11, 0xAFBA, 0x7B12, 0xD348, 0x7B13, 0xD341, 0x7B18, 0xD6D3, 0x7B19, 0xB2C6, + 0x7B1A, 0xD6DC, 0x7B1B, 0xB2C3, 0x7B1D, 0xD6D5, 0x7B1E, 0xB2C7, 0x7B20, 0xB2C1, 0x7B22, 0xD6D0, 0x7B23, 0xD6DD, 0x7B24, 0xD6D1, + 0x7B25, 0xD6CE, 0x7B26, 0xB2C5, 0x7B28, 0xB2C2, 0x7B2A, 0xD6D4, 0x7B2B, 0xD6D7, 0x7B2C, 0xB2C4, 0x7B2D, 0xD6D8, 0x7B2E, 0xB2C8, + 0x7B2F, 0xD6D9, 0x7B30, 0xD6CF, 0x7B31, 0xD6D6, 0x7B32, 0xD6DA, 0x7B33, 0xD6D2, 0x7B34, 0xD6CD, 0x7B35, 0xD6CB, 0x7B38, 0xD6DB, + 0x7B3B, 0xDADF, 0x7B40, 0xDAE4, 0x7B44, 0xDAE0, 0x7B45, 0xDAE6, 0x7B46, 0xB5A7, 0x7B47, 0xD6CC, 0x7B48, 0xDAE1, 0x7B49, 0xB5A5, + 0x7B4A, 0xDADE, 0x7B4B, 0xB5AC, 0x7B4C, 0xDAE2, 0x7B4D, 0xB5AB, 0x7B4E, 0xDAE3, 0x7B4F, 0xB5AD, 0x7B50, 0xB5A8, 0x7B51, 0xB5AE, + 0x7B52, 0xB5A9, 0x7B54, 0xB5AA, 0x7B56, 0xB5A6, 0x7B58, 0xDAE5, 0x7B60, 0xB861, 0x7B61, 0xDF50, 0x7B63, 0xDF53, 0x7B64, 0xDF47, + 0x7B65, 0xDF4C, 0x7B66, 0xDF46, 0x7B67, 0xB863, 0x7B69, 0xDF4A, 0x7B6D, 0xDF48, 0x7B6E, 0xB862, 0x7B70, 0xDF4F, 0x7B71, 0xDF4E, + 0x7B72, 0xDF4B, 0x7B73, 0xDF4D, 0x7B74, 0xDF49, 0x7B75, 0xBAE1, 0x7B76, 0xDF52, 0x7B77, 0xB85F, 0x7B78, 0xDF51, 0x7B82, 0xE35D, + 0x7B84, 0xBAE8, 0x7B85, 0xE358, 0x7B87, 0xBAE7, 0x7B88, 0xE34E, 0x7B8A, 0xE350, 0x7B8B, 0xBAE0, 0x7B8C, 0xE355, 0x7B8D, 0xE354, + 0x7B8E, 0xE357, 0x7B8F, 0xBAE5, 0x7B90, 0xE352, 0x7B91, 0xE351, 0x7B94, 0xBAE4, 0x7B95, 0xBADF, 0x7B96, 0xE353, 0x7B97, 0xBAE2, + 0x7B98, 0xE359, 0x7B99, 0xE35B, 0x7B9B, 0xE356, 0x7B9C, 0xE34F, 0x7B9D, 0xBAE3, 0x7BA0, 0xBD69, 0x7BA1, 0xBADE, 0x7BA4, 0xE35C, + 0x7BAC, 0xE6D9, 0x7BAD, 0xBD62, 0x7BAF, 0xE6DB, 0x7BB1, 0xBD63, 0x7BB4, 0xBD65, 0x7BB5, 0xE6DE, 0x7BB7, 0xE6D6, 0x7BB8, 0xBAE6, + 0x7BB9, 0xE6DC, 0x7BBE, 0xE6D8, 0x7BC0, 0xB860, 0x7BC1, 0xBD68, 0x7BC4, 0xBD64, 0x7BC6, 0xBD66, 0x7BC7, 0xBD67, 0x7BC9, 0xBF76, + 0x7BCA, 0xE6DD, 0x7BCB, 0xE6D7, 0x7BCC, 0xBD6A, 0x7BCE, 0xE6DA, 0x7BD4, 0xEAC0, 0x7BD5, 0xEABB, 0x7BD8, 0xEAC5, 0x7BD9, 0xBF74, + 0x7BDA, 0xEABD, 0x7BDB, 0xBF78, 0x7BDC, 0xEAC3, 0x7BDD, 0xEABA, 0x7BDE, 0xEAB7, 0x7BDF, 0xEAC6, 0x7BE0, 0xC151, 0x7BE1, 0xBF79, + 0x7BE2, 0xEAC2, 0x7BE3, 0xEAB8, 0x7BE4, 0xBF77, 0x7BE5, 0xEABC, 0x7BE6, 0xBF7B, 0x7BE7, 0xEAB9, 0x7BE8, 0xEABE, 0x7BE9, 0xBF7A, + 0x7BEA, 0xEAC1, 0x7BEB, 0xEAC4, 0x7BF0, 0xEDCB, 0x7BF1, 0xEDCC, 0x7BF2, 0xEDBC, 0x7BF3, 0xEDC3, 0x7BF4, 0xEDC1, 0x7BF7, 0xC14F, + 0x7BF8, 0xEDC8, 0x7BF9, 0xEABF, 0x7BFB, 0xEDBF, 0x7BFD, 0xEDC9, 0x7BFE, 0xC14E, 0x7BFF, 0xEDBE, 0x7C00, 0xEDBD, 0x7C01, 0xEDC7, + 0x7C02, 0xEDC4, 0x7C03, 0xEDC6, 0x7C05, 0xEDBA, 0x7C06, 0xEDCA, 0x7C07, 0xC14C, 0x7C09, 0xEDC5, 0x7C0A, 0xEDCE, 0x7C0B, 0xEDC2, + 0x7C0C, 0xC150, 0x7C0D, 0xC14D, 0x7C0E, 0xEDC0, 0x7C0F, 0xEDBB, 0x7C10, 0xEDCD, 0x7C11, 0xBF75, 0x7C19, 0xF063, 0x7C1C, 0xF061, + 0x7C1D, 0xF067, 0x7C1E, 0xC2B0, 0x7C1F, 0xF065, 0x7C20, 0xF064, 0x7C21, 0xC2B2, 0x7C22, 0xF06A, 0x7C23, 0xC2B1, 0x7C25, 0xF06B, + 0x7C26, 0xF068, 0x7C27, 0xC2AE, 0x7C28, 0xF069, 0x7C29, 0xF062, 0x7C2A, 0xC2AF, 0x7C2B, 0xC2AD, 0x7C2C, 0xF2AB, 0x7C2D, 0xF066, + 0x7C30, 0xF06C, 0x7C33, 0xF2A8, 0x7C37, 0xC3B2, 0x7C38, 0xC3B0, 0x7C39, 0xF2AA, 0x7C3B, 0xF2AC, 0x7C3C, 0xF2A9, 0x7C3D, 0xC3B1, + 0x7C3E, 0xC3AE, 0x7C3F, 0xC3AF, 0x7C40, 0xC3B3, 0x7C43, 0xC478, 0x7C45, 0xF4AA, 0x7C47, 0xF4A9, 0x7C48, 0xF4A7, 0x7C49, 0xF4A6, + 0x7C4A, 0xF4A8, 0x7C4C, 0xC477, 0x7C4D, 0xC479, 0x7C50, 0xC4F0, 0x7C53, 0xF5E5, 0x7C54, 0xF5E4, 0x7C57, 0xF6FA, 0x7C59, 0xF6FC, + 0x7C5A, 0xF6FE, 0x7C5B, 0xF6FD, 0x7C5C, 0xF6FB, 0x7C5F, 0xC5A3, 0x7C60, 0xC5A2, 0x7C63, 0xC5D3, 0x7C64, 0xC5D2, 0x7C65, 0xC5D4, + 0x7C66, 0xF7ED, 0x7C67, 0xF7EC, 0x7C69, 0xF8FB, 0x7C6A, 0xF8B8, 0x7C6B, 0xF8FC, 0x7C6C, 0xC658, 0x7C6E, 0xC659, 0x7C6F, 0xF96D, + 0x7C72, 0xC67E, 0x7C73, 0xA6CC, 0x7C75, 0xCDA8, 0x7C78, 0xD045, 0x7C79, 0xD046, 0x7C7A, 0xD044, 0x7C7D, 0xACF3, 0x7C7F, 0xD047, + 0x7C80, 0xD048, 0x7C81, 0xD049, 0x7C84, 0xD349, 0x7C85, 0xD34F, 0x7C88, 0xD34D, 0x7C89, 0xAFBB, 0x7C8A, 0xD34B, 0x7C8C, 0xD34C, + 0x7C8D, 0xD34E, 0x7C91, 0xD34A, 0x7C92, 0xB2C9, 0x7C94, 0xD6DE, 0x7C95, 0xB2CB, 0x7C96, 0xD6E0, 0x7C97, 0xB2CA, 0x7C98, 0xD6DF, + 0x7C9E, 0xDAE8, 0x7C9F, 0xB5AF, 0x7CA1, 0xDAEA, 0x7CA2, 0xDAE7, 0x7CA3, 0xD6E1, 0x7CA5, 0xB5B0, 0x7CA7, 0xF9DB, 0x7CA8, 0xDAE9, + 0x7CAF, 0xDF56, 0x7CB1, 0xB864, 0x7CB2, 0xDF54, 0x7CB3, 0xB865, 0x7CB4, 0xDF55, 0x7CB5, 0xB866, 0x7CB9, 0xBAE9, 0x7CBA, 0xE361, + 0x7CBB, 0xE35E, 0x7CBC, 0xE360, 0x7CBD, 0xBAEA, 0x7CBE, 0xBAEB, 0x7CBF, 0xE35F, 0x7CC5, 0xE6DF, 0x7CC8, 0xE6E0, 0x7CCA, 0xBD6B, + 0x7CCB, 0xE6E2, 0x7CCC, 0xE6E1, 0x7CCE, 0xA261, 0x7CD0, 0xEACA, 0x7CD1, 0xEACB, 0x7CD2, 0xEAC7, 0x7CD4, 0xEAC8, 0x7CD5, 0xBF7C, + 0x7CD6, 0xBF7D, 0x7CD7, 0xEAC9, 0x7CD9, 0xC157, 0x7CDC, 0xC153, 0x7CDD, 0xC158, 0x7CDE, 0xC154, 0x7CDF, 0xC156, 0x7CE0, 0xC152, + 0x7CE2, 0xC155, 0x7CE7, 0xC2B3, 0x7CE8, 0xEDCF, 0x7CEA, 0xF2AE, 0x7CEC, 0xF2AD, 0x7CEE, 0xF4AB, 0x7CEF, 0xC47A, 0x7CF0, 0xC47B, + 0x7CF1, 0xF741, 0x7CF2, 0xF5E6, 0x7CF4, 0xF740, 0x7CF6, 0xF8FD, 0x7CF7, 0xF9A4, 0x7CF8, 0xA6CD, 0x7CFB, 0xA874, 0x7CFD, 0xCDA9, + 0x7CFE, 0xAAC8, 0x7D00, 0xACF6, 0x7D01, 0xD04C, 0x7D02, 0xACF4, 0x7D03, 0xD04A, 0x7D04, 0xACF9, 0x7D05, 0xACF5, 0x7D06, 0xACFA, + 0x7D07, 0xACF8, 0x7D08, 0xD04B, 0x7D09, 0xACF7, 0x7D0A, 0xAFBF, 0x7D0B, 0xAFBE, 0x7D0C, 0xD35A, 0x7D0D, 0xAFC7, 0x7D0E, 0xD353, + 0x7D0F, 0xD359, 0x7D10, 0xAFC3, 0x7D11, 0xD352, 0x7D12, 0xD358, 0x7D13, 0xD356, 0x7D14, 0xAFC2, 0x7D15, 0xAFC4, 0x7D16, 0xD355, + 0x7D17, 0xAFBD, 0x7D18, 0xD354, 0x7D19, 0xAFC8, 0x7D1A, 0xAFC5, 0x7D1B, 0xAFC9, 0x7D1C, 0xAFC6, 0x7D1D, 0xD351, 0x7D1E, 0xD350, + 0x7D1F, 0xD357, 0x7D20, 0xAFC0, 0x7D21, 0xAFBC, 0x7D22, 0xAFC1, 0x7D28, 0xD6F0, 0x7D29, 0xD6E9, 0x7D2B, 0xB5B5, 0x7D2C, 0xD6E8, + 0x7D2E, 0xB2CF, 0x7D2F, 0xB2D6, 0x7D30, 0xB2D3, 0x7D31, 0xB2D9, 0x7D32, 0xB2D8, 0x7D33, 0xB2D4, 0x7D35, 0xD6E2, 0x7D36, 0xD6E5, + 0x7D38, 0xD6E4, 0x7D39, 0xB2D0, 0x7D3A, 0xD6E6, 0x7D3B, 0xD6EF, 0x7D3C, 0xB2D1, 0x7D3D, 0xD6E3, 0x7D3E, 0xD6EC, 0x7D3F, 0xD6ED, + 0x7D40, 0xB2D2, 0x7D41, 0xD6EA, 0x7D42, 0xB2D7, 0x7D43, 0xB2CD, 0x7D44, 0xB2D5, 0x7D45, 0xD6E7, 0x7D46, 0xB2CC, 0x7D47, 0xD6EB, + 0x7D4A, 0xD6EE, 0x7D4E, 0xDAFB, 0x7D4F, 0xDAF2, 0x7D50, 0xB5B2, 0x7D51, 0xDAF9, 0x7D52, 0xDAF6, 0x7D53, 0xDAEE, 0x7D54, 0xDAF7, + 0x7D55, 0xB5B4, 0x7D56, 0xDAEF, 0x7D58, 0xDAEB, 0x7D5B, 0xB86C, 0x7D5C, 0xDAF4, 0x7D5E, 0xB5B1, 0x7D5F, 0xDAFA, 0x7D61, 0xB5B8, + 0x7D62, 0xB5BA, 0x7D63, 0xDAED, 0x7D66, 0xB5B9, 0x7D67, 0xDAF0, 0x7D68, 0xB5B3, 0x7D69, 0xDAF8, 0x7D6A, 0xDAF1, 0x7D6B, 0xDAF5, + 0x7D6D, 0xDAF3, 0x7D6E, 0xB5B6, 0x7D6F, 0xDAEC, 0x7D70, 0xB5BB, 0x7D71, 0xB2CE, 0x7D72, 0xB5B7, 0x7D73, 0xB5BC, 0x7D79, 0xB868, + 0x7D7A, 0xDF5D, 0x7D7B, 0xDF5F, 0x7D7C, 0xDF61, 0x7D7D, 0xDF65, 0x7D7F, 0xDF5B, 0x7D80, 0xDF59, 0x7D81, 0xB86A, 0x7D83, 0xDF60, + 0x7D84, 0xDF64, 0x7D85, 0xDF5C, 0x7D86, 0xDF58, 0x7D88, 0xDF57, 0x7D8C, 0xDF62, 0x7D8D, 0xDF5A, 0x7D8E, 0xDF5E, 0x7D8F, 0xB86B, + 0x7D91, 0xB869, 0x7D92, 0xDF66, 0x7D93, 0xB867, 0x7D94, 0xDF63, 0x7D96, 0xE372, 0x7D9C, 0xBAEE, 0x7D9D, 0xE36A, 0x7D9E, 0xBD78, + 0x7D9F, 0xE374, 0x7DA0, 0xBAF1, 0x7DA1, 0xE378, 0x7DA2, 0xBAF7, 0x7DA3, 0xE365, 0x7DA6, 0xE375, 0x7DA7, 0xE362, 0x7DA9, 0xE377, + 0x7DAA, 0xE366, 0x7DAC, 0xBAFE, 0x7DAD, 0xBAFB, 0x7DAE, 0xE376, 0x7DAF, 0xE370, 0x7DB0, 0xBAED, 0x7DB1, 0xBAF5, 0x7DB2, 0xBAF4, + 0x7DB4, 0xBAF3, 0x7DB5, 0xBAF9, 0x7DB7, 0xE363, 0x7DB8, 0xBAFA, 0x7DB9, 0xE371, 0x7DBA, 0xBAF6, 0x7DBB, 0xBAEC, 0x7DBC, 0xE373, + 0x7DBD, 0xBAEF, 0x7DBE, 0xBAF0, 0x7DBF, 0xBAF8, 0x7DC0, 0xE368, 0x7DC1, 0xE367, 0x7DC2, 0xE364, 0x7DC4, 0xE36C, 0x7DC5, 0xE369, + 0x7DC6, 0xE36D, 0x7DC7, 0xBAFD, 0x7DC9, 0xE379, 0x7DCA, 0xBAF2, 0x7DCB, 0xE36E, 0x7DCC, 0xE36F, 0x7DCE, 0xE36B, 0x7DD2, 0xBAFC, + 0x7DD7, 0xE6E7, 0x7DD8, 0xBD70, 0x7DD9, 0xBD79, 0x7DDA, 0xBD75, 0x7DDB, 0xE6E4, 0x7DDD, 0xBD72, 0x7DDE, 0xBD76, 0x7DDF, 0xE6F0, + 0x7DE0, 0xBD6C, 0x7DE1, 0xE6E8, 0x7DE3, 0xBD74, 0x7DE6, 0xE6EB, 0x7DE7, 0xE6E6, 0x7DE8, 0xBD73, 0x7DE9, 0xBD77, 0x7DEA, 0xE6E5, + 0x7DEC, 0xBD71, 0x7DEE, 0xE6EF, 0x7DEF, 0xBD6E, 0x7DF0, 0xE6EE, 0x7DF1, 0xE6ED, 0x7DF2, 0xBD7A, 0x7DF3, 0xE572, 0x7DF4, 0xBD6D, + 0x7DF6, 0xE6EC, 0x7DF7, 0xE6E3, 0x7DF9, 0xBD7B, 0x7DFA, 0xE6EA, 0x7DFB, 0xBD6F, 0x7E03, 0xE6E9, 0x7E08, 0xBFA2, 0x7E09, 0xBFA7, + 0x7E0A, 0xBF7E, 0x7E0B, 0xEAD8, 0x7E0C, 0xEACF, 0x7E0D, 0xEADB, 0x7E0E, 0xEAD3, 0x7E0F, 0xEAD9, 0x7E10, 0xBFA8, 0x7E11, 0xBFA1, + 0x7E12, 0xEACC, 0x7E13, 0xEAD2, 0x7E14, 0xEADC, 0x7E15, 0xEAD5, 0x7E16, 0xEADA, 0x7E17, 0xEACE, 0x7E1A, 0xEAD6, 0x7E1B, 0xBFA3, + 0x7E1C, 0xEAD4, 0x7E1D, 0xBFA6, 0x7E1E, 0xBFA5, 0x7E1F, 0xEAD0, 0x7E20, 0xEAD1, 0x7E21, 0xEACD, 0x7E22, 0xEAD7, 0x7E23, 0xBFA4, + 0x7E24, 0xEADE, 0x7E25, 0xEADD, 0x7E29, 0xEDDA, 0x7E2A, 0xEDD6, 0x7E2B, 0xC15F, 0x7E2D, 0xEDD0, 0x7E2E, 0xC159, 0x7E2F, 0xC169, + 0x7E30, 0xEDDC, 0x7E31, 0xC161, 0x7E32, 0xC15D, 0x7E33, 0xEDD3, 0x7E34, 0xC164, 0x7E35, 0xC167, 0x7E36, 0xEDDE, 0x7E37, 0xC15C, + 0x7E38, 0xEDD5, 0x7E39, 0xC165, 0x7E3A, 0xEDE0, 0x7E3B, 0xEDDD, 0x7E3C, 0xEDD1, 0x7E3D, 0xC160, 0x7E3E, 0xC15A, 0x7E3F, 0xC168, + 0x7E40, 0xEDD8, 0x7E41, 0xC163, 0x7E42, 0xEDD2, 0x7E43, 0xC15E, 0x7E44, 0xEDDF, 0x7E45, 0xC162, 0x7E46, 0xC15B, 0x7E47, 0xEDD9, + 0x7E48, 0xC166, 0x7E49, 0xEDD7, 0x7E4C, 0xEDDB, 0x7E50, 0xF06E, 0x7E51, 0xF074, 0x7E52, 0xC2B9, 0x7E53, 0xF077, 0x7E54, 0xC2B4, + 0x7E55, 0xC2B5, 0x7E56, 0xF06F, 0x7E57, 0xF076, 0x7E58, 0xF071, 0x7E59, 0xC2BA, 0x7E5A, 0xC2B7, 0x7E5C, 0xF06D, 0x7E5E, 0xC2B6, + 0x7E5F, 0xF073, 0x7E60, 0xF075, 0x7E61, 0xC2B8, 0x7E62, 0xF072, 0x7E63, 0xF070, 0x7E68, 0xF2B8, 0x7E69, 0xC3B7, 0x7E6A, 0xC3B8, + 0x7E6B, 0xC3B4, 0x7E6D, 0xC3B5, 0x7E6F, 0xF2B4, 0x7E70, 0xF2B2, 0x7E72, 0xF2B6, 0x7E73, 0xC3BA, 0x7E74, 0xF2B7, 0x7E75, 0xF2B0, + 0x7E76, 0xF2AF, 0x7E77, 0xF2B3, 0x7E78, 0xF2B1, 0x7E79, 0xC3B6, 0x7E7A, 0xF2B5, 0x7E7B, 0xF4AC, 0x7E7C, 0xC47E, 0x7E7D, 0xC47D, + 0x7E7E, 0xF4AD, 0x7E80, 0xF4AF, 0x7E81, 0xF4AE, 0x7E82, 0xC4A1, 0x7E86, 0xF5EB, 0x7E87, 0xF5E8, 0x7E88, 0xF5E9, 0x7E8A, 0xF5E7, + 0x7E8B, 0xF5EA, 0x7E8C, 0xC4F2, 0x7E8D, 0xF5EC, 0x7E8F, 0xC4F1, 0x7E91, 0xF742, 0x7E93, 0xC5D5, 0x7E94, 0xC5D7, 0x7E95, 0xF7EE, + 0x7E96, 0xC5D6, 0x7E97, 0xF8B9, 0x7E98, 0xF940, 0x7E99, 0xF942, 0x7E9A, 0xF8FE, 0x7E9B, 0xF941, 0x7E9C, 0xC66C, 0x7F36, 0xA6CE, + 0x7F38, 0xACFB, 0x7F39, 0xD26F, 0x7F3A, 0xAFCA, 0x7F3D, 0xB2DA, 0x7F3E, 0xDAFC, 0x7F3F, 0xDAFD, 0x7F43, 0xEADF, 0x7F44, 0xC16A, + 0x7F45, 0xEDE1, 0x7F48, 0xC2BB, 0x7F4A, 0xF2BA, 0x7F4B, 0xF2B9, 0x7F4C, 0xC4A2, 0x7F4D, 0xF5ED, 0x7F4F, 0xF743, 0x7F50, 0xC5F8, + 0x7F51, 0xCA49, 0x7F54, 0xAAC9, 0x7F55, 0xA875, 0x7F58, 0xD04D, 0x7F5B, 0xD360, 0x7F5C, 0xD35B, 0x7F5D, 0xD35F, 0x7F5E, 0xD35D, + 0x7F5F, 0xAFCB, 0x7F60, 0xD35E, 0x7F61, 0xD35C, 0x7F63, 0xD6F1, 0x7F65, 0xDAFE, 0x7F66, 0xDB40, 0x7F67, 0xDF69, 0x7F68, 0xDF6A, + 0x7F69, 0xB86E, 0x7F6A, 0xB86F, 0x7F6B, 0xDF68, 0x7F6C, 0xDF6B, 0x7F6D, 0xDF67, 0x7F6E, 0xB86D, 0x7F70, 0xBB40, 0x7F72, 0xB870, + 0x7F73, 0xE37A, 0x7F75, 0xBD7C, 0x7F76, 0xE6F1, 0x7F77, 0xBD7D, 0x7F79, 0xBFA9, 0x7F7A, 0xEAE2, 0x7F7B, 0xEAE0, 0x7F7C, 0xEAE1, + 0x7F7D, 0xEDE4, 0x7F7E, 0xEDE3, 0x7F7F, 0xEDE2, 0x7F83, 0xF2BB, 0x7F85, 0xC3B9, 0x7F86, 0xF2BC, 0x7F87, 0xF744, 0x7F88, 0xC5F9, + 0x7F89, 0xF8BA, 0x7F8A, 0xA6CF, 0x7F8B, 0xAACB, 0x7F8C, 0xAACA, 0x7F8D, 0xD04F, 0x7F8E, 0xACFC, 0x7F91, 0xD04E, 0x7F92, 0xD362, + 0x7F94, 0xAFCC, 0x7F95, 0xD6F2, 0x7F96, 0xD361, 0x7F9A, 0xB2DC, 0x7F9B, 0xD6F5, 0x7F9C, 0xD6F3, 0x7F9D, 0xD6F4, 0x7F9E, 0xB2DB, + 0x7FA0, 0xDB42, 0x7FA1, 0xDB43, 0x7FA2, 0xDB41, 0x7FA4, 0xB873, 0x7FA5, 0xDF6D, 0x7FA6, 0xDF6C, 0x7FA7, 0xDF6E, 0x7FA8, 0xB872, + 0x7FA9, 0xB871, 0x7FAC, 0xE6F2, 0x7FAD, 0xE6F4, 0x7FAF, 0xBD7E, 0x7FB0, 0xE6F3, 0x7FB1, 0xEAE3, 0x7FB2, 0xBFAA, 0x7FB3, 0xF079, + 0x7FB5, 0xF078, 0x7FB6, 0xC3BB, 0x7FB7, 0xF2BD, 0x7FB8, 0xC3BD, 0x7FB9, 0xC3BC, 0x7FBA, 0xF4B0, 0x7FBB, 0xF5EE, 0x7FBC, 0xC4F3, + 0x7FBD, 0xA6D0, 0x7FBE, 0xD050, 0x7FBF, 0xACFD, 0x7FC0, 0xD365, 0x7FC1, 0xAFCE, 0x7FC2, 0xD364, 0x7FC3, 0xD363, 0x7FC5, 0xAFCD, + 0x7FC7, 0xD6FB, 0x7FC9, 0xD6FD, 0x7FCA, 0xD6F6, 0x7FCB, 0xD6F7, 0x7FCC, 0xB2DD, 0x7FCD, 0xD6F8, 0x7FCE, 0xB2DE, 0x7FCF, 0xD6FC, + 0x7FD0, 0xD6F9, 0x7FD1, 0xD6FA, 0x7FD2, 0xB2DF, 0x7FD4, 0xB5BE, 0x7FD5, 0xB5BF, 0x7FD7, 0xDB44, 0x7FDB, 0xDF6F, 0x7FDC, 0xDF70, + 0x7FDE, 0xE37E, 0x7FDF, 0xBB43, 0x7FE0, 0xBB41, 0x7FE1, 0xBB42, 0x7FE2, 0xE37B, 0x7FE3, 0xE37C, 0x7FE5, 0xE37D, 0x7FE6, 0xE6F9, + 0x7FE8, 0xE6FA, 0x7FE9, 0xBDA1, 0x7FEA, 0xE6F7, 0x7FEB, 0xE6F6, 0x7FEC, 0xE6F8, 0x7FED, 0xE6F5, 0x7FEE, 0xBFAD, 0x7FEF, 0xEAE4, + 0x7FF0, 0xBFAB, 0x7FF1, 0xBFAC, 0x7FF2, 0xEDE6, 0x7FF3, 0xC16B, 0x7FF4, 0xEDE5, 0x7FF5, 0xEFA8, 0x7FF7, 0xF07A, 0x7FF8, 0xF07B, + 0x7FF9, 0xC2BC, 0x7FFB, 0xC2BD, 0x7FFC, 0xC16C, 0x7FFD, 0xF2BE, 0x7FFE, 0xF2BF, 0x7FFF, 0xF4B1, 0x8000, 0xC4A3, 0x8001, 0xA6D1, + 0x8003, 0xA6D2, 0x8004, 0xACFE, 0x8005, 0xAACC, 0x8006, 0xAFCF, 0x8007, 0xD051, 0x800B, 0xB5C0, 0x800C, 0xA6D3, 0x800D, 0xAD41, + 0x800E, 0xD052, 0x800F, 0xD053, 0x8010, 0xAD40, 0x8011, 0xAD42, 0x8012, 0xA6D4, 0x8014, 0xD054, 0x8015, 0xAFD1, 0x8016, 0xD366, + 0x8017, 0xAFD3, 0x8018, 0xAFD0, 0x8019, 0xAFD2, 0x801B, 0xD741, 0x801C, 0xB2E0, 0x801E, 0xD740, 0x801F, 0xD6FE, 0x8021, 0xDF71, + 0x8024, 0xE3A1, 0x8026, 0xBDA2, 0x8028, 0xBFAE, 0x8029, 0xEAE6, 0x802A, 0xEAE5, 0x802C, 0xEDE7, 0x8030, 0xF5EF, 0x8033, 0xA6D5, + 0x8034, 0xCB73, 0x8035, 0xCDAA, 0x8036, 0xAD43, 0x8037, 0xD055, 0x8039, 0xD368, 0x803D, 0xAFD4, 0x803E, 0xD367, 0x803F, 0xAFD5, + 0x8043, 0xD743, 0x8046, 0xB2E2, 0x8047, 0xD742, 0x8048, 0xD744, 0x804A, 0xB2E1, 0x804F, 0xDB46, 0x8050, 0xDB47, 0x8051, 0xDB45, + 0x8052, 0xB5C1, 0x8056, 0xB874, 0x8058, 0xB875, 0x805A, 0xBB45, 0x805C, 0xE3A3, 0x805D, 0xE3A2, 0x805E, 0xBB44, 0x8064, 0xE6FB, + 0x8067, 0xE6FC, 0x806C, 0xEAE7, 0x806F, 0xC170, 0x8070, 0xC16F, 0x8071, 0xC16D, 0x8072, 0xC16E, 0x8073, 0xC171, 0x8075, 0xF07C, + 0x8076, 0xC2BF, 0x8077, 0xC2BE, 0x8078, 0xF2C0, 0x8079, 0xF4B2, 0x807D, 0xC5A5, 0x807E, 0xC5A4, 0x807F, 0xA6D6, 0x8082, 0xD1FB, + 0x8084, 0xB877, 0x8085, 0xB5C2, 0x8086, 0xB876, 0x8087, 0xBB46, 0x8089, 0xA6D7, 0x808A, 0xC9A9, 0x808B, 0xA6D8, 0x808C, 0xA6D9, + 0x808F, 0xCDAB, 0x8090, 0xCB76, 0x8092, 0xCB77, 0x8093, 0xA877, 0x8095, 0xCB74, 0x8096, 0xA876, 0x8098, 0xA879, 0x8099, 0xCB75, + 0x809A, 0xA87B, 0x809B, 0xA87A, 0x809C, 0xCB78, 0x809D, 0xA878, 0x80A1, 0xAAD1, 0x80A2, 0xAACF, 0x80A3, 0xCDAD, 0x80A5, 0xAACE, + 0x80A9, 0xAAD3, 0x80AA, 0xAAD5, 0x80AB, 0xAAD2, 0x80AD, 0xCDB0, 0x80AE, 0xCDAC, 0x80AF, 0xAAD6, 0x80B1, 0xAAD0, 0x80B2, 0xA87C, + 0x80B4, 0xAAD4, 0x80B5, 0xCDAF, 0x80B8, 0xCDAE, 0x80BA, 0xAACD, 0x80C2, 0xD05B, 0x80C3, 0xAD47, 0x80C4, 0xAD48, 0x80C5, 0xD05D, + 0x80C7, 0xD057, 0x80C8, 0xD05A, 0x80C9, 0xD063, 0x80CA, 0xD061, 0x80CC, 0xAD49, 0x80CD, 0xD067, 0x80CE, 0xAD4C, 0x80CF, 0xD064, + 0x80D0, 0xD05C, 0x80D1, 0xD059, 0x80D4, 0xDB49, 0x80D5, 0xD062, 0x80D6, 0xAD44, 0x80D7, 0xD065, 0x80D8, 0xD056, 0x80D9, 0xD05F, + 0x80DA, 0xAD46, 0x80DB, 0xAD4B, 0x80DC, 0xD060, 0x80DD, 0xAD4F, 0x80DE, 0xAD4D, 0x80E0, 0xD058, 0x80E1, 0xAD4A, 0x80E3, 0xD05E, + 0x80E4, 0xAD4E, 0x80E5, 0xAD45, 0x80E6, 0xD066, 0x80ED, 0xAFDA, 0x80EF, 0xAFE3, 0x80F0, 0xAFD8, 0x80F1, 0xAFD6, 0x80F2, 0xD36A, + 0x80F3, 0xAFDE, 0x80F4, 0xAFDB, 0x80F5, 0xD36C, 0x80F8, 0xAFDD, 0x80F9, 0xD36B, 0x80FA, 0xD369, 0x80FB, 0xD36E, 0x80FC, 0xAFE2, + 0x80FD, 0xAFE0, 0x80FE, 0xDB48, 0x8100, 0xD36F, 0x8101, 0xD36D, 0x8102, 0xAFD7, 0x8105, 0xAFD9, 0x8106, 0xAFDC, 0x8108, 0xAFDF, + 0x810A, 0xAFE1, 0x8115, 0xD74E, 0x8116, 0xB2E4, 0x8118, 0xD745, 0x8119, 0xD747, 0x811B, 0xD748, 0x811D, 0xD750, 0x811E, 0xD74C, + 0x811F, 0xD74A, 0x8121, 0xD74D, 0x8122, 0xD751, 0x8123, 0xB2E5, 0x8124, 0xB2E9, 0x8125, 0xD746, 0x8127, 0xD74F, 0x8129, 0xB2E7, + 0x812B, 0xB2E6, 0x812C, 0xD74B, 0x812D, 0xD749, 0x812F, 0xB2E3, 0x8130, 0xB2E8, 0x8139, 0xB5C8, 0x813A, 0xDB51, 0x813D, 0xDB4F, + 0x813E, 0xB5CA, 0x8143, 0xDB4A, 0x8144, 0xDFA1, 0x8146, 0xB5C9, 0x8147, 0xDB4E, 0x814A, 0xDB4B, 0x814B, 0xB5C5, 0x814C, 0xB5CB, + 0x814D, 0xDB50, 0x814E, 0xB5C7, 0x814F, 0xDB4D, 0x8150, 0xBB47, 0x8151, 0xB5C6, 0x8152, 0xDB4C, 0x8153, 0xB5CC, 0x8154, 0xB5C4, + 0x8155, 0xB5C3, 0x815B, 0xDF77, 0x815C, 0xDF75, 0x815E, 0xDF7B, 0x8160, 0xDF73, 0x8161, 0xDFA2, 0x8162, 0xDF78, 0x8164, 0xDF72, + 0x8165, 0xB87B, 0x8166, 0xB8A3, 0x8167, 0xDF7D, 0x8169, 0xDF76, 0x816B, 0xB87E, 0x816E, 0xB87C, 0x816F, 0xDF7E, 0x8170, 0xB879, + 0x8171, 0xB878, 0x8172, 0xDF79, 0x8173, 0xB87D, 0x8174, 0xB5CD, 0x8176, 0xDF7C, 0x8177, 0xDF74, 0x8178, 0xB87A, 0x8179, 0xB8A1, + 0x817A, 0xB8A2, 0x817F, 0xBB4C, 0x8180, 0xBB48, 0x8182, 0xBB4D, 0x8183, 0xE3A6, 0x8186, 0xE3A5, 0x8187, 0xE3A7, 0x8188, 0xBB4A, + 0x8189, 0xE3A4, 0x818A, 0xBB4B, 0x818B, 0xE3AA, 0x818C, 0xE3A9, 0x818D, 0xE3A8, 0x818F, 0xBB49, 0x8195, 0xE741, 0x8197, 0xE744, + 0x8198, 0xBDA8, 0x8199, 0xE743, 0x819A, 0xBDA7, 0x819B, 0xBDA3, 0x819C, 0xBDA4, 0x819D, 0xBDA5, 0x819E, 0xE740, 0x819F, 0xE6FE, + 0x81A0, 0xBDA6, 0x81A2, 0xE742, 0x81A3, 0xE6FD, 0x81A6, 0xEAE9, 0x81A7, 0xEAF3, 0x81A8, 0xBFB1, 0x81A9, 0xBFB0, 0x81AB, 0xEAED, + 0x81AC, 0xEAEF, 0x81AE, 0xEAEA, 0x81B0, 0xEAEE, 0x81B1, 0xEAE8, 0x81B2, 0xEAF1, 0x81B3, 0xBFAF, 0x81B4, 0xEAF0, 0x81B5, 0xEAEC, + 0x81B7, 0xEAF2, 0x81B9, 0xEAEB, 0x81BA, 0xC174, 0x81BB, 0xEDE8, 0x81BC, 0xEDEE, 0x81BD, 0xC178, 0x81BE, 0xC17A, 0x81BF, 0xC177, + 0x81C0, 0xC176, 0x81C2, 0xC175, 0x81C3, 0xC173, 0x81C4, 0xEDE9, 0x81C5, 0xEDEC, 0x81C6, 0xC172, 0x81C7, 0xEDED, 0x81C9, 0xC179, + 0x81CA, 0xEDEB, 0x81CC, 0xEDEA, 0x81CD, 0xC2C0, 0x81CF, 0xC2C1, 0x81D0, 0xF0A1, 0x81D1, 0xF07D, 0x81D2, 0xF07E, 0x81D5, 0xF2C2, + 0x81D7, 0xF2C1, 0x81D8, 0xC3BE, 0x81D9, 0xF4B4, 0x81DA, 0xC4A4, 0x81DB, 0xF4B3, 0x81DD, 0xF5F0, 0x81DE, 0xF745, 0x81DF, 0xC5A6, + 0x81E0, 0xF943, 0x81E1, 0xF944, 0x81E2, 0xC5D8, 0x81E3, 0xA6DA, 0x81E5, 0xAAD7, 0x81E6, 0xDB52, 0x81E7, 0xBB4E, 0x81E8, 0xC17B, + 0x81E9, 0xEDEF, 0x81EA, 0xA6DB, 0x81EC, 0xAFE5, 0x81ED, 0xAFE4, 0x81EE, 0xDB53, 0x81F2, 0xEAF4, 0x81F3, 0xA6DC, 0x81F4, 0xAD50, + 0x81F7, 0xDB54, 0x81F8, 0xDB55, 0x81F9, 0xDB56, 0x81FA, 0xBB4F, 0x81FB, 0xBFB2, 0x81FC, 0xA6DD, 0x81FE, 0xAAD8, 0x81FF, 0xD068, + 0x8200, 0xAFE6, 0x8201, 0xD370, 0x8202, 0xB2EA, 0x8204, 0xDB57, 0x8205, 0xB8A4, 0x8207, 0xBB50, 0x8208, 0xBFB3, 0x8209, 0xC17C, + 0x820A, 0xC2C2, 0x820B, 0xF4B5, 0x820C, 0xA6DE, 0x820D, 0xAAD9, 0x8210, 0xAFE7, 0x8211, 0xD752, 0x8212, 0xB5CE, 0x8214, 0xBB51, + 0x8215, 0xE3AB, 0x8216, 0xE745, 0x821B, 0xA6DF, 0x821C, 0xB5CF, 0x821D, 0xDFA3, 0x821E, 0xBB52, 0x821F, 0xA6E0, 0x8220, 0xCDB1, + 0x8221, 0xD069, 0x8222, 0xAD51, 0x8225, 0xD372, 0x8228, 0xAFEA, 0x822A, 0xAFE8, 0x822B, 0xAFE9, 0x822C, 0xAFEB, 0x822F, 0xD371, + 0x8232, 0xD757, 0x8233, 0xD754, 0x8234, 0xD756, 0x8235, 0xB2EB, 0x8236, 0xB2ED, 0x8237, 0xB2EC, 0x8238, 0xD753, 0x8239, 0xB2EE, + 0x823A, 0xD755, 0x823C, 0xDB58, 0x823D, 0xDB59, 0x823F, 0xDB5A, 0x8240, 0xDFA6, 0x8242, 0xDFA7, 0x8244, 0xDFA5, 0x8245, 0xDFA8, + 0x8247, 0xB8A5, 0x8249, 0xDFA4, 0x824B, 0xBB53, 0x824E, 0xE74A, 0x824F, 0xE746, 0x8250, 0xE749, 0x8251, 0xE74B, 0x8252, 0xE748, + 0x8253, 0xE747, 0x8255, 0xEAF5, 0x8256, 0xEAF6, 0x8257, 0xEAF7, 0x8258, 0xBFB4, 0x8259, 0xBFB5, 0x825A, 0xEDF1, 0x825B, 0xEDF0, + 0x825C, 0xEDF2, 0x825E, 0xF0A3, 0x825F, 0xF0A2, 0x8261, 0xF2C4, 0x8263, 0xF2C5, 0x8264, 0xF2C3, 0x8266, 0xC4A5, 0x8268, 0xF4B6, + 0x8269, 0xF4B7, 0x826B, 0xF746, 0x826C, 0xF7EF, 0x826D, 0xF8BB, 0x826E, 0xA6E1, 0x826F, 0xA87D, 0x8271, 0xC17D, 0x8272, 0xA6E2, + 0x8274, 0xD758, 0x8275, 0xDB5B, 0x8277, 0xC641, 0x8278, 0xCA4A, 0x827C, 0xCA4B, 0x827D, 0xCA4D, 0x827E, 0xA6E3, 0x827F, 0xCA4E, + 0x8280, 0xCA4C, 0x8283, 0xCBA2, 0x8284, 0xCBA3, 0x8285, 0xCB7B, 0x828A, 0xCBA1, 0x828B, 0xA8A1, 0x828D, 0xA8A2, 0x828E, 0xCB7C, + 0x828F, 0xCB7A, 0x8290, 0xCB79, 0x8291, 0xCB7D, 0x8292, 0xA87E, 0x8293, 0xCB7E, 0x8294, 0xD06A, 0x8298, 0xCDB6, 0x8299, 0xAADC, + 0x829A, 0xCDB5, 0x829B, 0xCDB7, 0x829D, 0xAADB, 0x829E, 0xCDBC, 0x829F, 0xAADF, 0x82A0, 0xCDB2, 0x82A1, 0xCDC0, 0x82A2, 0xCDC6, + 0x82A3, 0xAAE6, 0x82A4, 0xCDC3, 0x82A5, 0xAAE3, 0x82A7, 0xCDB9, 0x82A8, 0xCDBF, 0x82A9, 0xCDC1, 0x82AB, 0xCDB4, 0x82AC, 0xAAE2, + 0x82AD, 0xAADD, 0x82AE, 0xCDBA, 0x82AF, 0xAAE4, 0x82B0, 0xAAE7, 0x82B1, 0xAAE1, 0x82B3, 0xAADA, 0x82B4, 0xCDBE, 0x82B5, 0xCDB8, + 0x82B6, 0xCDC5, 0x82B7, 0xAAE9, 0x82B8, 0xAAE5, 0x82B9, 0xAAE0, 0x82BA, 0xCDBD, 0x82BB, 0xAFEC, 0x82BC, 0xCDBB, 0x82BD, 0xAADE, + 0x82BE, 0xAAE8, 0x82C0, 0xCDB3, 0x82C2, 0xCDC2, 0x82C3, 0xCDC4, 0x82D1, 0xAD62, 0x82D2, 0xAD5C, 0x82D3, 0xAD64, 0x82D4, 0xAD61, + 0x82D5, 0xD071, 0x82D6, 0xD074, 0x82D7, 0xAD5D, 0x82D9, 0xD06B, 0x82DB, 0xAD56, 0x82DC, 0xAD60, 0x82DE, 0xAD63, 0x82DF, 0xAD65, + 0x82E0, 0xD0A2, 0x82E1, 0xD077, 0x82E3, 0xAD55, 0x82E4, 0xD0A1, 0x82E5, 0xAD59, 0x82E6, 0xAD57, 0x82E7, 0xAD52, 0x82E8, 0xD06F, + 0x82EA, 0xD07E, 0x82EB, 0xD073, 0x82EC, 0xD076, 0x82ED, 0xD0A5, 0x82EF, 0xAD66, 0x82F0, 0xD07D, 0x82F1, 0xAD5E, 0x82F2, 0xD078, + 0x82F3, 0xD0A4, 0x82F4, 0xD075, 0x82F5, 0xD079, 0x82F6, 0xD07C, 0x82F9, 0xD06D, 0x82FA, 0xD0A3, 0x82FB, 0xD07B, 0x82FE, 0xD06C, + 0x8300, 0xD070, 0x8301, 0xAD5F, 0x8302, 0xAD5A, 0x8303, 0xAD53, 0x8304, 0xAD58, 0x8305, 0xAD54, 0x8306, 0xAD67, 0x8307, 0xD06E, + 0x8308, 0xD3A5, 0x8309, 0xAD5B, 0x830C, 0xD07A, 0x830D, 0xCE41, 0x8316, 0xD3A8, 0x8317, 0xAFFA, 0x8319, 0xD376, 0x831B, 0xD3A3, + 0x831C, 0xD37D, 0x831E, 0xD3B2, 0x8320, 0xD3AA, 0x8322, 0xD37E, 0x8324, 0xD3A9, 0x8325, 0xD378, 0x8326, 0xD37C, 0x8327, 0xD3B5, + 0x8328, 0xAFFD, 0x8329, 0xD3AD, 0x832A, 0xD3A4, 0x832B, 0xAFED, 0x832C, 0xD3B3, 0x832D, 0xD374, 0x832F, 0xD3AC, 0x8331, 0xAFFC, + 0x8332, 0xAFF7, 0x8333, 0xD373, 0x8334, 0xAFF5, 0x8335, 0xAFF4, 0x8336, 0xAFF9, 0x8337, 0xD3AB, 0x8338, 0xAFF1, 0x8339, 0xAFF8, + 0x833A, 0xD072, 0x833B, 0xDB5C, 0x833C, 0xD3A6, 0x833F, 0xD37A, 0x8340, 0xAFFB, 0x8341, 0xD37B, 0x8342, 0xD3A1, 0x8343, 0xAFFE, + 0x8344, 0xD375, 0x8345, 0xD3AF, 0x8347, 0xD3AE, 0x8348, 0xD3B6, 0x8349, 0xAFF3, 0x834A, 0xAFF0, 0x834B, 0xD3B4, 0x834C, 0xD3B0, + 0x834D, 0xD3A7, 0x834E, 0xD3A2, 0x834F, 0xAFF6, 0x8350, 0xAFF2, 0x8351, 0xD377, 0x8352, 0xAFEE, 0x8353, 0xD3B1, 0x8354, 0xAFEF, + 0x8356, 0xD379, 0x8373, 0xD75E, 0x8374, 0xD760, 0x8375, 0xD765, 0x8376, 0xD779, 0x8377, 0xB2FC, 0x8378, 0xB2F2, 0x837A, 0xD75D, + 0x837B, 0xB2FD, 0x837C, 0xB2FE, 0x837D, 0xD768, 0x837E, 0xD76F, 0x837F, 0xD775, 0x8381, 0xD762, 0x8383, 0xD769, 0x8386, 0xB340, + 0x8387, 0xD777, 0x8388, 0xD772, 0x8389, 0xB2FA, 0x838A, 0xB2F8, 0x838B, 0xD76E, 0x838C, 0xD76A, 0x838D, 0xD75C, 0x838E, 0xB2EF, + 0x838F, 0xD761, 0x8390, 0xD759, 0x8392, 0xB2F7, 0x8393, 0xB2F9, 0x8394, 0xD766, 0x8395, 0xD763, 0x8396, 0xB2F4, 0x8397, 0xD773, + 0x8398, 0xB2F1, 0x8399, 0xD764, 0x839A, 0xD77A, 0x839B, 0xD76C, 0x839D, 0xD76B, 0x839E, 0xB2F0, 0x83A0, 0xB2FB, 0x83A2, 0xB2F3, + 0x83A3, 0xD75A, 0x83A4, 0xD75F, 0x83A5, 0xD770, 0x83A6, 0xD776, 0x83A7, 0xB341, 0x83A8, 0xD75B, 0x83A9, 0xD767, 0x83AA, 0xD76D, + 0x83AB, 0xB2F6, 0x83AE, 0xD778, 0x83AF, 0xD771, 0x83B0, 0xD774, 0x83BD, 0xB2F5, 0x83BF, 0xDB6C, 0x83C0, 0xDB60, 0x83C1, 0xB5D7, + 0x83C2, 0xDB7D, 0x83C3, 0xDBA7, 0x83C4, 0xDBAA, 0x83C5, 0xB5D5, 0x83C6, 0xDB68, 0x83C7, 0xDBA3, 0x83C8, 0xDB69, 0x83C9, 0xDB77, + 0x83CA, 0xB5E2, 0x83CB, 0xDB73, 0x83CC, 0xB5DF, 0x83CE, 0xDB74, 0x83CF, 0xDB5D, 0x83D1, 0xDBA4, 0x83D4, 0xB5E8, 0x83D5, 0xDBA1, + 0x83D6, 0xDB75, 0x83D7, 0xDBAC, 0x83D8, 0xDB70, 0x83D9, 0xDFC8, 0x83DB, 0xDBAF, 0x83DC, 0xB5E6, 0x83DD, 0xDB6E, 0x83DE, 0xDB7A, + 0x83DF, 0xB5E9, 0x83E0, 0xB5D4, 0x83E1, 0xDB72, 0x83E2, 0xDBAD, 0x83E3, 0xDB6B, 0x83E4, 0xDB64, 0x83E5, 0xDB6F, 0x83E7, 0xDB63, + 0x83E8, 0xDB61, 0x83E9, 0xB5D0, 0x83EA, 0xDBA5, 0x83EB, 0xDB6A, 0x83EC, 0xDBA8, 0x83EE, 0xDBA9, 0x83EF, 0xB5D8, 0x83F0, 0xB5DD, + 0x83F1, 0xB5D9, 0x83F2, 0xB5E1, 0x83F3, 0xDB7E, 0x83F4, 0xB5DA, 0x83F5, 0xDB76, 0x83F6, 0xDB66, 0x83F8, 0xB5D2, 0x83F9, 0xDB5E, + 0x83FA, 0xDBA2, 0x83FB, 0xDBAB, 0x83FC, 0xDB65, 0x83FD, 0xB5E0, 0x83FE, 0xDBB0, 0x83FF, 0xDB71, 0x8401, 0xDB6D, 0x8403, 0xB5D1, + 0x8404, 0xB5E5, 0x8406, 0xDB7C, 0x8407, 0xB5E7, 0x8409, 0xDB78, 0x840A, 0xB5DC, 0x840B, 0xB5D6, 0x840C, 0xB5DE, 0x840D, 0xB5D3, + 0x840E, 0xB5E4, 0x840F, 0xDB79, 0x8410, 0xDB67, 0x8411, 0xDB7B, 0x8412, 0xDB62, 0x8413, 0xDBA6, 0x841B, 0xDBAE, 0x8423, 0xDB5F, + 0x8429, 0xDFC7, 0x842B, 0xDFDD, 0x842C, 0xB855, 0x842D, 0xDFCC, 0x842F, 0xDFCA, 0x8430, 0xDFB5, 0x8431, 0xB8A9, 0x8432, 0xDFC5, + 0x8433, 0xDFD9, 0x8434, 0xDFC1, 0x8435, 0xB8B1, 0x8436, 0xDFD8, 0x8437, 0xDFBF, 0x8438, 0xB5E3, 0x8439, 0xDFCF, 0x843A, 0xDFC0, + 0x843B, 0xDFD6, 0x843C, 0xB8B0, 0x843D, 0xB8A8, 0x843F, 0xDFAA, 0x8440, 0xDFB2, 0x8442, 0xDFCB, 0x8443, 0xDFC3, 0x8444, 0xDFDC, + 0x8445, 0xDFC6, 0x8446, 0xB8B6, 0x8447, 0xDFD7, 0x8449, 0xB8AD, 0x844B, 0xDFC9, 0x844C, 0xDFD1, 0x844D, 0xDFB6, 0x844E, 0xDFD0, + 0x8450, 0xDFE1, 0x8451, 0xDFB1, 0x8452, 0xDFD2, 0x8454, 0xDFDF, 0x8456, 0xDFAB, 0x8457, 0xB5DB, 0x8459, 0xDFB9, 0x845A, 0xDFB8, + 0x845B, 0xB8AF, 0x845D, 0xDFBC, 0x845E, 0xDFBE, 0x845F, 0xDFCD, 0x8460, 0xDFDE, 0x8461, 0xB8B2, 0x8463, 0xB8B3, 0x8465, 0xDFB0, + 0x8466, 0xB8AB, 0x8467, 0xDFB4, 0x8468, 0xDFDA, 0x8469, 0xB8B4, 0x846B, 0xB8AC, 0x846C, 0xB8AE, 0x846D, 0xB8B5, 0x846E, 0xDFE0, + 0x846F, 0xDFD3, 0x8470, 0xDFCE, 0x8473, 0xDFBB, 0x8474, 0xDFBA, 0x8475, 0xB8AA, 0x8476, 0xDFAC, 0x8477, 0xB8A7, 0x8478, 0xDFC4, + 0x8479, 0xDFAD, 0x847A, 0xDFC2, 0x847D, 0xDFB7, 0x847E, 0xDFDB, 0x8482, 0xB8A6, 0x8486, 0xDFB3, 0x848D, 0xDFAF, 0x848E, 0xDFD5, + 0x848F, 0xDFAE, 0x8490, 0xBB60, 0x8491, 0xE3D3, 0x8494, 0xE3C2, 0x8497, 0xE3AC, 0x8498, 0xE3CA, 0x8499, 0xBB58, 0x849A, 0xE3BB, + 0x849B, 0xE3C5, 0x849C, 0xBB5B, 0x849D, 0xE3BE, 0x849E, 0xBB59, 0x849F, 0xE3AF, 0x84A0, 0xE3CD, 0x84A1, 0xE3AE, 0x84A2, 0xE3C1, + 0x84A4, 0xE3AD, 0x84A7, 0xE3BF, 0x84A8, 0xE3C8, 0x84A9, 0xE3C6, 0x84AA, 0xE3BA, 0x84AB, 0xE3B5, 0x84AC, 0xE3B3, 0x84AE, 0xE3B4, + 0x84AF, 0xE3C7, 0x84B0, 0xE3D2, 0x84B1, 0xE3BC, 0x84B2, 0xBB5A, 0x84B4, 0xE3B7, 0x84B6, 0xE3CB, 0x84B8, 0xBB5D, 0x84B9, 0xE3B6, + 0x84BA, 0xE3B0, 0x84BB, 0xE3C0, 0x84BC, 0xBB61, 0x84BF, 0xBB55, 0x84C0, 0xBB5E, 0x84C1, 0xE3B8, 0x84C2, 0xE3B2, 0x84C4, 0xBB57, + 0x84C5, 0xDFD4, 0x84C6, 0xBB56, 0x84C7, 0xE3C3, 0x84C9, 0xBB54, 0x84CA, 0xBB63, 0x84CB, 0xBB5C, 0x84CC, 0xE3C4, 0x84CD, 0xE3B9, + 0x84CE, 0xE3B1, 0x84CF, 0xE3CC, 0x84D0, 0xE3BD, 0x84D1, 0xBB62, 0x84D2, 0xE3D0, 0x84D3, 0xBB5F, 0x84D4, 0xE3CF, 0x84D6, 0xE3C9, + 0x84D7, 0xE3CE, 0x84DB, 0xE3D1, 0x84E7, 0xE773, 0x84E8, 0xE774, 0x84E9, 0xE767, 0x84EA, 0xE766, 0x84EB, 0xE762, 0x84EC, 0xBDB4, + 0x84EE, 0xBDAC, 0x84EF, 0xE776, 0x84F0, 0xE775, 0x84F1, 0xDFA9, 0x84F2, 0xE75F, 0x84F3, 0xE763, 0x84F4, 0xE75D, 0x84F6, 0xE770, + 0x84F7, 0xE761, 0x84F9, 0xE777, 0x84FA, 0xE75A, 0x84FB, 0xE758, 0x84FC, 0xE764, 0x84FD, 0xE76E, 0x84FE, 0xE769, 0x84FF, 0xBDB6, + 0x8500, 0xE74F, 0x8502, 0xE76D, 0x8506, 0xBDB7, 0x8507, 0xDFBD, 0x8508, 0xE75B, 0x8509, 0xE752, 0x850A, 0xE755, 0x850B, 0xE77B, + 0x850C, 0xE75C, 0x850D, 0xE753, 0x850E, 0xE751, 0x850F, 0xE74E, 0x8511, 0xBDB0, 0x8512, 0xE765, 0x8513, 0xBDAF, 0x8514, 0xBDB3, + 0x8515, 0xE760, 0x8516, 0xE768, 0x8517, 0xBDA9, 0x8518, 0xE778, 0x8519, 0xE77C, 0x851A, 0xBDAB, 0x851C, 0xE757, 0x851D, 0xE76B, + 0x851E, 0xE76F, 0x851F, 0xE754, 0x8520, 0xE779, 0x8521, 0xBDB2, 0x8523, 0xBDB1, 0x8524, 0xE74C, 0x8525, 0xBDB5, 0x8526, 0xE772, + 0x8527, 0xE756, 0x8528, 0xE76A, 0x8529, 0xE750, 0x852A, 0xE75E, 0x852B, 0xE759, 0x852C, 0xBDAD, 0x852D, 0xBDAE, 0x852E, 0xE76C, + 0x852F, 0xE77D, 0x8530, 0xE77A, 0x8531, 0xE771, 0x853B, 0xE74D, 0x853D, 0xBDAA, 0x853E, 0xEB49, 0x8540, 0xEB40, 0x8541, 0xEB43, + 0x8543, 0xBFBB, 0x8544, 0xEB45, 0x8545, 0xEAF9, 0x8546, 0xEB41, 0x8547, 0xEB47, 0x8548, 0xBFB8, 0x8549, 0xBFBC, 0x854A, 0xBFB6, + 0x854D, 0xEAFB, 0x854E, 0xEB4C, 0x8551, 0xEB46, 0x8553, 0xEAFC, 0x8554, 0xEB55, 0x8555, 0xEB4F, 0x8556, 0xEAF8, 0x8557, 0xEE46, + 0x8558, 0xEAFE, 0x8559, 0xBFB7, 0x855B, 0xEB4A, 0x855D, 0xEB54, 0x855E, 0xBFBF, 0x8560, 0xEB51, 0x8561, 0xEAFD, 0x8562, 0xEB44, + 0x8563, 0xEB48, 0x8564, 0xEB42, 0x8565, 0xEB56, 0x8566, 0xEB53, 0x8567, 0xEB50, 0x8568, 0xBFB9, 0x8569, 0xBFBA, 0x856A, 0xBFBE, + 0x856B, 0xEAFA, 0x856C, 0xEB57, 0x856D, 0xBFBD, 0x856E, 0xEB4D, 0x8571, 0xEB4B, 0x8575, 0xEB4E, 0x8576, 0xEE53, 0x8577, 0xEE40, + 0x8578, 0xEE45, 0x8579, 0xEE52, 0x857A, 0xEE44, 0x857B, 0xEDFB, 0x857C, 0xEE41, 0x857E, 0xC1A2, 0x8580, 0xEDF4, 0x8581, 0xEE4D, + 0x8582, 0xEE4F, 0x8583, 0xEDF3, 0x8584, 0xC1A1, 0x8585, 0xEE51, 0x8586, 0xEE49, 0x8587, 0xC1A8, 0x8588, 0xEE50, 0x8589, 0xEE42, + 0x858A, 0xC1AA, 0x858B, 0xEDF9, 0x858C, 0xEB52, 0x858D, 0xEE4A, 0x858E, 0xEE47, 0x858F, 0xEDF5, 0x8590, 0xEE55, 0x8591, 0xC1A4, + 0x8594, 0xC1A5, 0x8595, 0xEDF7, 0x8596, 0xEE48, 0x8598, 0xEE54, 0x8599, 0xEE4B, 0x859A, 0xEDFD, 0x859B, 0xC1A7, 0x859C, 0xC1A3, + 0x859D, 0xEE4C, 0x859E, 0xEDFE, 0x859F, 0xEE56, 0x85A0, 0xEDF8, 0x85A1, 0xEE43, 0x85A2, 0xEE4E, 0x85A3, 0xEDFA, 0x85A4, 0xEDFC, + 0x85A6, 0xC2CB, 0x85A7, 0xEDF6, 0x85A8, 0xC1A9, 0x85A9, 0xC2C4, 0x85AA, 0xC17E, 0x85AF, 0xC1A6, 0x85B0, 0xC2C8, 0x85B1, 0xF0B3, + 0x85B3, 0xF0A9, 0x85B4, 0xF0A4, 0x85B5, 0xF0AA, 0x85B6, 0xF0B4, 0x85B7, 0xF0B8, 0x85B8, 0xF0B7, 0x85B9, 0xC2CA, 0x85BA, 0xC2C9, + 0x85BD, 0xF0AB, 0x85BE, 0xF0B9, 0x85BF, 0xF0AE, 0x85C0, 0xF0A6, 0x85C2, 0xF0A8, 0x85C3, 0xF0A7, 0x85C4, 0xF0AD, 0x85C5, 0xF0B2, + 0x85C6, 0xF0A5, 0x85C7, 0xF0AC, 0x85C8, 0xF0B1, 0x85C9, 0xC2C7, 0x85CB, 0xF0AF, 0x85CD, 0xC2C5, 0x85CE, 0xF0B0, 0x85CF, 0xC2C3, + 0x85D0, 0xC2C6, 0x85D1, 0xF2D5, 0x85D2, 0xF0B5, 0x85D5, 0xC3C2, 0x85D7, 0xF2CD, 0x85D8, 0xF2D1, 0x85D9, 0xF2C9, 0x85DA, 0xF2CC, + 0x85DC, 0xF2D4, 0x85DD, 0xC3C0, 0x85DE, 0xF2D9, 0x85DF, 0xF2D2, 0x85E1, 0xF2CA, 0x85E2, 0xF2DA, 0x85E3, 0xF2D3, 0x85E4, 0xC3C3, + 0x85E5, 0xC3C4, 0x85E6, 0xF2D7, 0x85E8, 0xF2CB, 0x85E9, 0xC3BF, 0x85EA, 0xC3C1, 0x85EB, 0xF2C6, 0x85EC, 0xF2CE, 0x85ED, 0xF2C8, + 0x85EF, 0xF2D8, 0x85F0, 0xF2D6, 0x85F1, 0xF2C7, 0x85F2, 0xF2CF, 0x85F6, 0xF4BE, 0x85F7, 0xC3C5, 0x85F8, 0xF2D0, 0x85F9, 0xC4A7, + 0x85FA, 0xC4A9, 0x85FB, 0xC4A6, 0x85FD, 0xF4C3, 0x85FE, 0xF4BB, 0x85FF, 0xF4B9, 0x8600, 0xF4BD, 0x8601, 0xF4BA, 0x8604, 0xF4BF, + 0x8605, 0xF4C1, 0x8606, 0xC4AA, 0x8607, 0xC4AC, 0x8609, 0xF4C0, 0x860A, 0xC4AD, 0x860B, 0xC4AB, 0x860C, 0xF4C2, 0x8611, 0xC4A8, + 0x8617, 0xC4F4, 0x8618, 0xF5F1, 0x8619, 0xF5F7, 0x861A, 0xC4F6, 0x861B, 0xF4BC, 0x861C, 0xF5F6, 0x861E, 0xF5FD, 0x861F, 0xF5F4, + 0x8620, 0xF5FB, 0x8621, 0xF5FA, 0x8622, 0xF4B8, 0x8623, 0xF5F5, 0x8624, 0xF0B6, 0x8625, 0xF5FE, 0x8626, 0xF5F3, 0x8627, 0xF5F8, + 0x8629, 0xF5FC, 0x862A, 0xF5F2, 0x862C, 0xF74A, 0x862D, 0xC4F5, 0x862E, 0xF5F9, 0x8631, 0xF7F4, 0x8632, 0xF74B, 0x8633, 0xF749, + 0x8634, 0xF747, 0x8635, 0xF748, 0x8636, 0xF74C, 0x8638, 0xC5D9, 0x8639, 0xF7F2, 0x863A, 0xF7F0, 0x863B, 0xF7F5, 0x863C, 0xF7F3, + 0x863E, 0xF7F6, 0x863F, 0xC5DA, 0x8640, 0xF7F1, 0x8643, 0xF8BC, 0x8646, 0xF945, 0x8647, 0xF946, 0x8648, 0xF947, 0x864B, 0xF9C7, + 0x864C, 0xF9BD, 0x864D, 0xCA4F, 0x864E, 0xAAEA, 0x8650, 0xAD68, 0x8652, 0xD3B8, 0x8653, 0xD3B7, 0x8654, 0xB040, 0x8655, 0xB342, + 0x8656, 0xD77C, 0x8659, 0xD77B, 0x865B, 0xB5EA, 0x865C, 0xB8B8, 0x865E, 0xB8B7, 0x865F, 0xB8B9, 0x8661, 0xE3D4, 0x8662, 0xE77E, + 0x8663, 0xEB58, 0x8664, 0xEB5A, 0x8665, 0xEB59, 0x8667, 0xC1AB, 0x8668, 0xEE57, 0x8669, 0xF0BA, 0x866A, 0xF9A5, 0x866B, 0xA6E4, + 0x866D, 0xCDC9, 0x866E, 0xCDCA, 0x866F, 0xCDC8, 0x8670, 0xCDC7, 0x8671, 0xAAEB, 0x8673, 0xD0A9, 0x8674, 0xD0A7, 0x8677, 0xD0A6, + 0x8679, 0xAD69, 0x867A, 0xAD6B, 0x867B, 0xAD6A, 0x867C, 0xD0A8, 0x8685, 0xD3C4, 0x8686, 0xD3C1, 0x8687, 0xD3BF, 0x868A, 0xB041, + 0x868B, 0xD3C2, 0x868C, 0xB046, 0x868D, 0xD3BC, 0x868E, 0xD3CB, 0x8690, 0xD3CD, 0x8691, 0xD3BD, 0x8693, 0xB043, 0x8694, 0xD3CE, + 0x8695, 0xD3C9, 0x8696, 0xD3BB, 0x8697, 0xD3C0, 0x8698, 0xD3CA, 0x8699, 0xD3C6, 0x869A, 0xD3C3, 0x869C, 0xB048, 0x869D, 0xD3CC, + 0x869E, 0xD3BE, 0x86A1, 0xD3C7, 0x86A2, 0xD3B9, 0x86A3, 0xB047, 0x86A4, 0xB044, 0x86A5, 0xD3C5, 0x86A7, 0xD3C8, 0x86A8, 0xD3BA, + 0x86A9, 0xB045, 0x86AA, 0xB042, 0x86AF, 0xB34C, 0x86B0, 0xD7A5, 0x86B1, 0xB34B, 0x86B3, 0xD7A8, 0x86B4, 0xD7AB, 0x86B5, 0xB348, + 0x86B6, 0xB346, 0x86B7, 0xD77E, 0x86B8, 0xD7A9, 0x86B9, 0xD7A7, 0x86BA, 0xD7A4, 0x86BB, 0xD7AC, 0x86BC, 0xD7AD, 0x86BD, 0xD7AF, + 0x86BE, 0xD7B0, 0x86BF, 0xD77D, 0x86C0, 0xB345, 0x86C1, 0xD7A2, 0x86C2, 0xD7A1, 0x86C3, 0xD7AE, 0x86C4, 0xB347, 0x86C5, 0xD7A3, + 0x86C6, 0xB349, 0x86C7, 0xB344, 0x86C8, 0xD7A6, 0x86C9, 0xB34D, 0x86CB, 0xB34A, 0x86CC, 0xD7AA, 0x86D0, 0xB5F1, 0x86D1, 0xDBBF, + 0x86D3, 0xDBB4, 0x86D4, 0xB5EE, 0x86D6, 0xDFE7, 0x86D7, 0xDBBD, 0x86D8, 0xDBB1, 0x86D9, 0xB5EC, 0x86DA, 0xDBB6, 0x86DB, 0xB5EF, + 0x86DC, 0xDBBA, 0x86DD, 0xDBB8, 0x86DE, 0xB5F2, 0x86DF, 0xB5EB, 0x86E2, 0xDBB2, 0x86E3, 0xDBB5, 0x86E4, 0xB5F0, 0x86E6, 0xDBB3, + 0x86E8, 0xDBBE, 0x86E9, 0xDBBC, 0x86EA, 0xDBB7, 0x86EB, 0xDBB9, 0x86EC, 0xDBBB, 0x86ED, 0xB5ED, 0x86F5, 0xDFE8, 0x86F6, 0xDFEE, + 0x86F7, 0xDFE4, 0x86F8, 0xDFEA, 0x86F9, 0xB8BA, 0x86FA, 0xDFE6, 0x86FB, 0xB8C0, 0x86FE, 0xB8BF, 0x8700, 0xB8BE, 0x8701, 0xDFED, + 0x8702, 0xB8C1, 0x8703, 0xB8C2, 0x8704, 0xDFE3, 0x8705, 0xDFF0, 0x8706, 0xB8C3, 0x8707, 0xB8BD, 0x8708, 0xB8BC, 0x8709, 0xDFEC, + 0x870A, 0xB8C4, 0x870B, 0xDFE2, 0x870C, 0xDFE5, 0x870D, 0xDFEF, 0x870E, 0xDFEB, 0x8711, 0xE3F4, 0x8712, 0xE3E9, 0x8713, 0xB8BB, + 0x8718, 0xBB6A, 0x8719, 0xE3DD, 0x871A, 0xE3F2, 0x871B, 0xE3DE, 0x871C, 0xBB65, 0x871E, 0xE3DB, 0x8720, 0xE3E4, 0x8721, 0xE3DC, + 0x8722, 0xBB67, 0x8723, 0xE3D6, 0x8724, 0xE3F1, 0x8725, 0xBB68, 0x8726, 0xE3EE, 0x8727, 0xE3EF, 0x8728, 0xE3D7, 0x8729, 0xBB6D, + 0x872A, 0xE3E6, 0x872C, 0xE3E0, 0x872D, 0xE3E7, 0x872E, 0xE3DA, 0x8730, 0xE3F3, 0x8731, 0xE3EB, 0x8732, 0xE3E5, 0x8733, 0xE3D5, + 0x8734, 0xBB69, 0x8735, 0xE3EC, 0x8737, 0xBB6C, 0x8738, 0xE3F0, 0x873A, 0xE3EA, 0x873B, 0xBB66, 0x873C, 0xE3E8, 0x873E, 0xE3E2, + 0x873F, 0xBB64, 0x8740, 0xE3D9, 0x8741, 0xE3E1, 0x8742, 0xE3ED, 0x8743, 0xE3DF, 0x8746, 0xE3E3, 0x874C, 0xBDC1, 0x874D, 0xDFE9, + 0x874E, 0xE7B2, 0x874F, 0xE7BB, 0x8750, 0xE7B1, 0x8751, 0xE7AD, 0x8752, 0xE7AA, 0x8753, 0xBDC2, 0x8754, 0xE7A8, 0x8755, 0xBB6B, + 0x8756, 0xE7A1, 0x8757, 0xBDC0, 0x8758, 0xE7A7, 0x8759, 0xBDBF, 0x875A, 0xE7AC, 0x875B, 0xE7A9, 0x875C, 0xE7B9, 0x875D, 0xE7B4, + 0x875E, 0xE7AE, 0x875F, 0xE7B3, 0x8760, 0xBDBB, 0x8761, 0xE7AB, 0x8762, 0xE7BE, 0x8763, 0xE7A2, 0x8764, 0xE7A3, 0x8765, 0xE7BA, + 0x8766, 0xBDBC, 0x8767, 0xE7BF, 0x8768, 0xBDBE, 0x8769, 0xE7C0, 0x876A, 0xE7B0, 0x876B, 0xE3D8, 0x876C, 0xE7B6, 0x876D, 0xE7AF, + 0x876E, 0xE7B8, 0x876F, 0xE7B5, 0x8773, 0xE7A6, 0x8774, 0xBDB9, 0x8775, 0xE7BD, 0x8776, 0xBDBA, 0x8777, 0xE7A4, 0x8778, 0xBDBD, + 0x8779, 0xEB64, 0x877A, 0xE7B7, 0x877B, 0xE7BC, 0x8781, 0xEB61, 0x8782, 0xBDB8, 0x8783, 0xBFC0, 0x8784, 0xEB6B, 0x8785, 0xEB67, + 0x8787, 0xEB65, 0x8788, 0xEB60, 0x8789, 0xEB6F, 0x878D, 0xBFC4, 0x878F, 0xEB5C, 0x8790, 0xEB68, 0x8791, 0xEB69, 0x8792, 0xEB5F, + 0x8793, 0xEB5E, 0x8794, 0xEB6C, 0x8796, 0xEB62, 0x8797, 0xEB5D, 0x8798, 0xEB63, 0x879A, 0xEB6E, 0x879B, 0xEB5B, 0x879C, 0xEB6D, + 0x879D, 0xEB6A, 0x879E, 0xBFC2, 0x879F, 0xBFC1, 0x87A2, 0xBFC3, 0x87A3, 0xEB66, 0x87A4, 0xF0CB, 0x87AA, 0xEE59, 0x87AB, 0xC1B1, + 0x87AC, 0xEE5D, 0x87AD, 0xEE5A, 0x87AE, 0xEE61, 0x87AF, 0xEE67, 0x87B0, 0xEE5C, 0x87B2, 0xEE70, 0x87B3, 0xC1AE, 0x87B4, 0xEE6A, + 0x87B5, 0xEE5F, 0x87B6, 0xEE6B, 0x87B7, 0xEE66, 0x87B8, 0xEE6D, 0x87B9, 0xEE5E, 0x87BA, 0xC1B3, 0x87BB, 0xC1B2, 0x87BC, 0xEE60, + 0x87BD, 0xEE6E, 0x87BE, 0xEE58, 0x87BF, 0xEE6C, 0x87C0, 0xC1AC, 0x87C2, 0xEE64, 0x87C3, 0xEE63, 0x87C4, 0xEE68, 0x87C5, 0xEE5B, + 0x87C6, 0xC1B0, 0x87C8, 0xC1B4, 0x87C9, 0xEE62, 0x87CA, 0xEE69, 0x87CB, 0xC1B5, 0x87CC, 0xEE65, 0x87D1, 0xC1AD, 0x87D2, 0xC1AF, + 0x87D3, 0xF0C7, 0x87D4, 0xF0C5, 0x87D7, 0xF0CC, 0x87D8, 0xF0C9, 0x87D9, 0xF0CD, 0x87DB, 0xF0BE, 0x87DC, 0xF0C6, 0x87DD, 0xF0D1, + 0x87DE, 0xEE6F, 0x87DF, 0xF0C2, 0x87E0, 0xC2CF, 0x87E1, 0xE7A5, 0x87E2, 0xF0BD, 0x87E3, 0xF0CA, 0x87E4, 0xF0C4, 0x87E5, 0xF0C1, + 0x87E6, 0xF0BC, 0x87E7, 0xF0BB, 0x87E8, 0xF0D0, 0x87EA, 0xF0C0, 0x87EB, 0xF0BF, 0x87EC, 0xC2CD, 0x87ED, 0xF0C8, 0x87EF, 0xC2CC, + 0x87F2, 0xC2CE, 0x87F3, 0xF0C3, 0x87F4, 0xF0CF, 0x87F6, 0xF2DE, 0x87F7, 0xF2DF, 0x87F9, 0xC3C9, 0x87FA, 0xF2DC, 0x87FB, 0xC3C6, + 0x87FC, 0xF2E4, 0x87FE, 0xC3CA, 0x87FF, 0xF2E6, 0x8800, 0xF2DB, 0x8801, 0xF0CE, 0x8802, 0xF2E8, 0x8803, 0xF2DD, 0x8805, 0xC3C7, + 0x8806, 0xF2E3, 0x8808, 0xF2E5, 0x8809, 0xF2E0, 0x880A, 0xF2E7, 0x880B, 0xF2E2, 0x880C, 0xF2E1, 0x880D, 0xC3C8, 0x8810, 0xF4C5, + 0x8811, 0xF4C6, 0x8813, 0xF4C8, 0x8814, 0xC4AE, 0x8815, 0xC4AF, 0x8816, 0xF4C9, 0x8817, 0xF4C7, 0x8819, 0xF4C4, 0x881B, 0xF642, + 0x881C, 0xF645, 0x881D, 0xF641, 0x881F, 0xC4FA, 0x8820, 0xF643, 0x8821, 0xC4F9, 0x8822, 0xC4F8, 0x8823, 0xC4F7, 0x8824, 0xF644, + 0x8825, 0xF751, 0x8826, 0xF74F, 0x8828, 0xF74E, 0x8829, 0xF640, 0x882A, 0xF750, 0x882B, 0xF646, 0x882C, 0xF74D, 0x882E, 0xF7F9, + 0x882F, 0xF7D7, 0x8830, 0xF7F7, 0x8831, 0xC5DB, 0x8832, 0xF7F8, 0x8833, 0xF7FA, 0x8835, 0xF8BF, 0x8836, 0xC5FA, 0x8837, 0xF8BE, + 0x8838, 0xF8BD, 0x8839, 0xC5FB, 0x883B, 0xC65A, 0x883C, 0xF96E, 0x883D, 0xF9A7, 0x883E, 0xF9A6, 0x883F, 0xF9A8, 0x8840, 0xA6E5, + 0x8841, 0xD0AA, 0x8843, 0xD3CF, 0x8844, 0xD3D0, 0x8848, 0xDBC0, 0x884A, 0xF647, 0x884B, 0xF8C0, 0x884C, 0xA6E6, 0x884D, 0xAD6C, + 0x884E, 0xD0AB, 0x8852, 0xD7B1, 0x8853, 0xB34E, 0x8855, 0xDBC2, 0x8856, 0xDBC1, 0x8857, 0xB5F3, 0x8859, 0xB8C5, 0x885A, 0xE7C1, + 0x885B, 0xBDC3, 0x885D, 0xBDC4, 0x8861, 0xBFC5, 0x8862, 0xC5FC, 0x8863, 0xA6E7, 0x8867, 0xD0AC, 0x8868, 0xAAED, 0x8869, 0xD0AE, + 0x886A, 0xD0AD, 0x886B, 0xAD6D, 0x886D, 0xD3D1, 0x886F, 0xD3D8, 0x8870, 0xB049, 0x8871, 0xD3D6, 0x8872, 0xD3D4, 0x8874, 0xD3DB, + 0x8875, 0xD3D2, 0x8876, 0xD3D3, 0x8877, 0xB04A, 0x8879, 0xB04E, 0x887C, 0xD3DC, 0x887D, 0xB04D, 0x887E, 0xD3DA, 0x887F, 0xD3D7, + 0x8880, 0xD3D5, 0x8881, 0xB04B, 0x8882, 0xB04C, 0x8883, 0xD3D9, 0x8888, 0xB350, 0x8889, 0xD7B2, 0x888B, 0xB355, 0x888C, 0xD7C2, + 0x888D, 0xB354, 0x888E, 0xD7C4, 0x8891, 0xD7B8, 0x8892, 0xB352, 0x8893, 0xD7C3, 0x8895, 0xD7B3, 0x8896, 0xB353, 0x8897, 0xD7BF, + 0x8898, 0xD7BB, 0x8899, 0xD7BD, 0x889A, 0xD7B7, 0x889B, 0xD7BE, 0x889E, 0xB34F, 0x889F, 0xD7BA, 0x88A1, 0xD7B9, 0x88A2, 0xD7B5, + 0x88A4, 0xD7C0, 0x88A7, 0xD7BC, 0x88A8, 0xD7B4, 0x88AA, 0xD7B6, 0x88AB, 0xB351, 0x88AC, 0xD7C1, 0x88B1, 0xB5F6, 0x88B2, 0xDBCD, + 0x88B6, 0xDBC9, 0x88B7, 0xDBCB, 0x88B8, 0xDBC6, 0x88B9, 0xDBC5, 0x88BA, 0xDBC3, 0x88BC, 0xDBCA, 0x88BD, 0xDBCC, 0x88BE, 0xDBC8, + 0x88C0, 0xDBC7, 0x88C1, 0xB5F4, 0x88C2, 0xB5F5, 0x88C9, 0xDBCF, 0x88CA, 0xB8CD, 0x88CB, 0xDFF2, 0x88CC, 0xDFF8, 0x88CD, 0xDFF3, + 0x88CE, 0xDFF4, 0x88CF, 0xF9D8, 0x88D0, 0xDFF9, 0x88D2, 0xB8CF, 0x88D4, 0xB8C7, 0x88D5, 0xB8CE, 0x88D6, 0xDFF1, 0x88D7, 0xDBC4, + 0x88D8, 0xB8CA, 0x88D9, 0xB8C8, 0x88DA, 0xDFF7, 0x88DB, 0xDFF6, 0x88DC, 0xB8C9, 0x88DD, 0xB8CB, 0x88DE, 0xDFF5, 0x88DF, 0xB8C6, + 0x88E1, 0xB8CC, 0x88E7, 0xE3F6, 0x88E8, 0xBB74, 0x88EB, 0xE442, 0x88EC, 0xE441, 0x88EE, 0xE3FB, 0x88EF, 0xBB76, 0x88F0, 0xE440, + 0x88F1, 0xE3F7, 0x88F2, 0xE3F8, 0x88F3, 0xBB6E, 0x88F4, 0xBB70, 0x88F6, 0xE3FD, 0x88F7, 0xE3F5, 0x88F8, 0xBB72, 0x88F9, 0xBB71, + 0x88FA, 0xE3F9, 0x88FB, 0xE3FE, 0x88FC, 0xE3FC, 0x88FD, 0xBB73, 0x88FE, 0xE3FA, 0x8901, 0xDBCE, 0x8902, 0xBB6F, 0x8905, 0xE7C2, + 0x8906, 0xE7C9, 0x8907, 0xBDC6, 0x8909, 0xE7CD, 0x890A, 0xBDCA, 0x890B, 0xE7C5, 0x890C, 0xE7C3, 0x890E, 0xE7CC, 0x8910, 0xBDC5, + 0x8911, 0xE7CB, 0x8912, 0xBDC7, 0x8913, 0xBDC8, 0x8914, 0xE7C4, 0x8915, 0xBDC9, 0x8916, 0xE7CA, 0x8917, 0xE7C6, 0x8918, 0xE7C7, + 0x8919, 0xE7C8, 0x891A, 0xBB75, 0x891E, 0xEB70, 0x891F, 0xEB7C, 0x8921, 0xBFCA, 0x8922, 0xEB77, 0x8923, 0xEB79, 0x8925, 0xBFC8, + 0x8926, 0xEB71, 0x8927, 0xEB75, 0x8929, 0xEB78, 0x892A, 0xBFC6, 0x892B, 0xBFC9, 0x892C, 0xEB7B, 0x892D, 0xEB73, 0x892E, 0xEB74, + 0x892F, 0xEB7A, 0x8930, 0xEB72, 0x8931, 0xEB76, 0x8932, 0xBFC7, 0x8933, 0xEE72, 0x8935, 0xEE71, 0x8936, 0xC1B7, 0x8937, 0xEE77, + 0x8938, 0xC1B9, 0x893B, 0xC1B6, 0x893C, 0xEE73, 0x893D, 0xC1BA, 0x893E, 0xEE74, 0x8941, 0xEE75, 0x8942, 0xEE78, 0x8944, 0xC1B8, + 0x8946, 0xF0D6, 0x8949, 0xF0D9, 0x894B, 0xF0D3, 0x894C, 0xF0D5, 0x894F, 0xF0D4, 0x8950, 0xF0D7, 0x8951, 0xF0D8, 0x8952, 0xEE76, + 0x8953, 0xF0D2, 0x8956, 0xC3CD, 0x8957, 0xF2EC, 0x8958, 0xF2EF, 0x8959, 0xF2F1, 0x895A, 0xF2EA, 0x895B, 0xF2EB, 0x895C, 0xF2EE, + 0x895D, 0xF2F0, 0x895E, 0xC3CE, 0x895F, 0xC3CC, 0x8960, 0xC3CB, 0x8961, 0xF2ED, 0x8962, 0xF2E9, 0x8963, 0xF4CA, 0x8964, 0xC4B0, + 0x8966, 0xF4CB, 0x8969, 0xF649, 0x896A, 0xC4FB, 0x896B, 0xF64B, 0x896C, 0xC4FC, 0x896D, 0xF648, 0x896E, 0xF64A, 0x896F, 0xC5A8, + 0x8971, 0xF752, 0x8972, 0xC5A7, 0x8973, 0xF7FD, 0x8974, 0xF7FC, 0x8976, 0xF7FB, 0x8979, 0xF948, 0x897A, 0xF949, 0x897B, 0xF94B, + 0x897C, 0xF94A, 0x897E, 0xCA50, 0x897F, 0xA6E8, 0x8981, 0xAD6E, 0x8982, 0xD7C5, 0x8983, 0xB5F7, 0x8985, 0xDFFA, 0x8986, 0xC2D0, + 0x8988, 0xF2F2, 0x898B, 0xA8A3, 0x898F, 0xB357, 0x8993, 0xB356, 0x8995, 0xDBD0, 0x8996, 0xB5F8, 0x8997, 0xDBD2, 0x8998, 0xDBD1, + 0x899B, 0xDFFB, 0x899C, 0xB8D0, 0x899D, 0xE443, 0x899E, 0xE446, 0x899F, 0xE445, 0x89A1, 0xE444, 0x89A2, 0xE7CE, 0x89A3, 0xE7D0, + 0x89A4, 0xE7CF, 0x89A6, 0xBFCC, 0x89AA, 0xBFCB, 0x89AC, 0xC1BB, 0x89AD, 0xEE79, 0x89AE, 0xEE7B, 0x89AF, 0xEE7A, 0x89B2, 0xC2D1, + 0x89B6, 0xF2F4, 0x89B7, 0xF2F3, 0x89B9, 0xF4CC, 0x89BA, 0xC4B1, 0x89BD, 0xC4FD, 0x89BE, 0xF754, 0x89BF, 0xF753, 0x89C0, 0xC65B, + 0x89D2, 0xA8A4, 0x89D3, 0xD0AF, 0x89D4, 0xAD6F, 0x89D5, 0xD7C8, 0x89D6, 0xD7C6, 0x89D9, 0xD7C7, 0x89DA, 0xDBD4, 0x89DB, 0xDBD5, + 0x89DC, 0xE043, 0x89DD, 0xDBD3, 0x89DF, 0xDFFC, 0x89E0, 0xE041, 0x89E1, 0xE040, 0x89E2, 0xE042, 0x89E3, 0xB8D1, 0x89E4, 0xDFFE, + 0x89E5, 0xDFFD, 0x89E6, 0xE044, 0x89E8, 0xE449, 0x89E9, 0xE447, 0x89EB, 0xE448, 0x89EC, 0xE7D3, 0x89ED, 0xE7D1, 0x89F0, 0xE7D2, + 0x89F1, 0xEB7D, 0x89F2, 0xEE7C, 0x89F3, 0xEE7D, 0x89F4, 0xC2D2, 0x89F6, 0xF2F5, 0x89F7, 0xF4CD, 0x89F8, 0xC4B2, 0x89FA, 0xF64C, + 0x89FB, 0xF755, 0x89FC, 0xC5A9, 0x89FE, 0xF7FE, 0x89FF, 0xF94C, 0x8A00, 0xA8A5, 0x8A02, 0xAD71, 0x8A03, 0xAD72, 0x8A04, 0xD0B0, + 0x8A07, 0xD0B1, 0x8A08, 0xAD70, 0x8A0A, 0xB054, 0x8A0C, 0xB052, 0x8A0E, 0xB051, 0x8A0F, 0xB058, 0x8A10, 0xB050, 0x8A11, 0xB059, + 0x8A12, 0xD3DD, 0x8A13, 0xB056, 0x8A15, 0xB053, 0x8A16, 0xB057, 0x8A17, 0xB055, 0x8A18, 0xB04F, 0x8A1B, 0xB35F, 0x8A1D, 0xB359, + 0x8A1E, 0xD7CC, 0x8A1F, 0xB35E, 0x8A22, 0xB360, 0x8A23, 0xB35A, 0x8A25, 0xB35B, 0x8A27, 0xD7CA, 0x8A2A, 0xB358, 0x8A2C, 0xD7CB, + 0x8A2D, 0xB35D, 0x8A30, 0xD7C9, 0x8A31, 0xB35C, 0x8A34, 0xB644, 0x8A36, 0xB646, 0x8A39, 0xDBD8, 0x8A3A, 0xB645, 0x8A3B, 0xB5F9, + 0x8A3C, 0xB5FD, 0x8A3E, 0xB8E4, 0x8A3F, 0xE049, 0x8A40, 0xDBDA, 0x8A41, 0xB5FE, 0x8A44, 0xDBDD, 0x8A45, 0xDBDE, 0x8A46, 0xB643, + 0x8A48, 0xDBE0, 0x8A4A, 0xDBE2, 0x8A4C, 0xDBE3, 0x8A4D, 0xDBD7, 0x8A4E, 0xDBD6, 0x8A4F, 0xDBE4, 0x8A50, 0xB642, 0x8A51, 0xDBE1, + 0x8A52, 0xDBDF, 0x8A54, 0xB640, 0x8A55, 0xB5FB, 0x8A56, 0xB647, 0x8A57, 0xDBDB, 0x8A58, 0xDBDC, 0x8A59, 0xDBD9, 0x8A5B, 0xB641, + 0x8A5E, 0xB5FC, 0x8A60, 0xB5FA, 0x8A61, 0xE048, 0x8A62, 0xB8DF, 0x8A63, 0xB8DA, 0x8A66, 0xB8D5, 0x8A68, 0xB8E5, 0x8A69, 0xB8D6, + 0x8A6B, 0xB8D2, 0x8A6C, 0xB8E1, 0x8A6D, 0xB8DE, 0x8A6E, 0xB8E0, 0x8A70, 0xB8D7, 0x8A71, 0xB8DC, 0x8A72, 0xB8D3, 0x8A73, 0xB8D4, + 0x8A74, 0xE050, 0x8A75, 0xE04D, 0x8A76, 0xE045, 0x8A77, 0xE04A, 0x8A79, 0xB8E2, 0x8A7A, 0xE051, 0x8A7B, 0xB8E3, 0x8A7C, 0xB8D9, + 0x8A7F, 0xE047, 0x8A81, 0xE04F, 0x8A82, 0xE04B, 0x8A83, 0xE04E, 0x8A84, 0xE04C, 0x8A85, 0xB8DD, 0x8A86, 0xE046, 0x8A87, 0xB8D8, + 0x8A8B, 0xE44C, 0x8A8C, 0xBB78, 0x8A8D, 0xBB7B, 0x8A8F, 0xE44E, 0x8A91, 0xBBA5, 0x8A92, 0xE44D, 0x8A93, 0xBB7D, 0x8A95, 0xBDCF, + 0x8A96, 0xE44F, 0x8A98, 0xBBA4, 0x8A99, 0xE44B, 0x8A9A, 0xBBA6, 0x8A9E, 0xBB79, 0x8AA0, 0xB8DB, 0x8AA1, 0xBB7C, 0x8AA3, 0xBB7A, + 0x8AA4, 0xBB7E, 0x8AA5, 0xBBA2, 0x8AA6, 0xBB77, 0x8AA7, 0xBBA7, 0x8AA8, 0xBBA3, 0x8AAA, 0xBBA1, 0x8AAB, 0xE44A, 0x8AB0, 0xBDD6, + 0x8AB2, 0xBDD2, 0x8AB6, 0xBDD9, 0x8AB8, 0xE7D6, 0x8AB9, 0xBDDA, 0x8ABA, 0xE7E2, 0x8ABB, 0xE7DB, 0x8ABC, 0xBDCB, 0x8ABD, 0xE7E3, + 0x8ABE, 0xE7DD, 0x8ABF, 0xBDD5, 0x8AC0, 0xE7DE, 0x8AC2, 0xBDD4, 0x8AC3, 0xE7E1, 0x8AC4, 0xBDCE, 0x8AC5, 0xE7DF, 0x8AC6, 0xE7D5, + 0x8AC7, 0xBDCD, 0x8AC8, 0xEBAA, 0x8AC9, 0xBDD3, 0x8ACB, 0xBDD0, 0x8ACD, 0xBDD8, 0x8ACF, 0xE7D4, 0x8AD1, 0xE7D8, 0x8AD2, 0xBDCC, + 0x8AD3, 0xE7D7, 0x8AD4, 0xE7D9, 0x8AD5, 0xE7DA, 0x8AD6, 0xBDD7, 0x8AD7, 0xE7DC, 0x8AD8, 0xE7E0, 0x8AD9, 0xE7E4, 0x8ADB, 0xBDDB, + 0x8ADC, 0xBFD2, 0x8ADD, 0xEBA5, 0x8ADE, 0xEBAB, 0x8ADF, 0xEBA8, 0x8AE0, 0xEB7E, 0x8AE1, 0xEBAC, 0x8AE2, 0xEBA1, 0x8AE4, 0xEBA7, + 0x8AE6, 0xBFCD, 0x8AE7, 0xBFD3, 0x8AE8, 0xEBAD, 0x8AEB, 0xBFCF, 0x8AED, 0xBFD9, 0x8AEE, 0xBFD4, 0x8AEF, 0xEBAF, 0x8AF0, 0xEBA9, + 0x8AF1, 0xBFD0, 0x8AF2, 0xEBA2, 0x8AF3, 0xBFDA, 0x8AF4, 0xEBA3, 0x8AF5, 0xEBA4, 0x8AF6, 0xBFDB, 0x8AF7, 0xBFD8, 0x8AF8, 0xBDD1, + 0x8AFA, 0xBFCE, 0x8AFB, 0xEBB0, 0x8AFC, 0xBFDC, 0x8AFE, 0xBFD5, 0x8AFF, 0xEBAE, 0x8B00, 0xBFD1, 0x8B01, 0xBFD6, 0x8B02, 0xBFD7, + 0x8B04, 0xC1C3, 0x8B05, 0xEEA4, 0x8B06, 0xEEAD, 0x8B07, 0xEEAA, 0x8B08, 0xEEAC, 0x8B0A, 0xC1C0, 0x8B0B, 0xEEA5, 0x8B0D, 0xEEAB, + 0x8B0E, 0xC1BC, 0x8B0F, 0xEEA7, 0x8B10, 0xC1C4, 0x8B11, 0xEEA3, 0x8B12, 0xEEA8, 0x8B13, 0xEEAF, 0x8B14, 0xEBA6, 0x8B15, 0xEEA9, + 0x8B16, 0xEEA2, 0x8B17, 0xC1BD, 0x8B18, 0xEEA1, 0x8B19, 0xC1BE, 0x8B1A, 0xEEB0, 0x8B1B, 0xC1BF, 0x8B1C, 0xEEAE, 0x8B1D, 0xC1C2, + 0x8B1E, 0xEE7E, 0x8B20, 0xC1C1, 0x8B22, 0xEEA6, 0x8B23, 0xF0DC, 0x8B24, 0xF0EA, 0x8B25, 0xF0E5, 0x8B26, 0xF0E7, 0x8B27, 0xF0DB, + 0x8B28, 0xC2D3, 0x8B2A, 0xF0DA, 0x8B2B, 0xC2D6, 0x8B2C, 0xC2D5, 0x8B2E, 0xF0E9, 0x8B2F, 0xF0E1, 0x8B30, 0xF0DE, 0x8B31, 0xF0E4, + 0x8B33, 0xF0DD, 0x8B35, 0xF0DF, 0x8B36, 0xF0E8, 0x8B37, 0xF0E6, 0x8B39, 0xC2D4, 0x8B3A, 0xF0ED, 0x8B3B, 0xF0EB, 0x8B3C, 0xF0E2, + 0x8B3D, 0xF0EC, 0x8B3E, 0xF0E3, 0x8B40, 0xF2F9, 0x8B41, 0xC3CF, 0x8B42, 0xF341, 0x8B45, 0xF64F, 0x8B46, 0xC3D6, 0x8B47, 0xF0E0, + 0x8B48, 0xF2F7, 0x8B49, 0xC3D2, 0x8B4A, 0xF2F8, 0x8B4B, 0xF2FD, 0x8B4E, 0xC3D4, 0x8B4F, 0xC3D5, 0x8B50, 0xF2F6, 0x8B51, 0xF340, + 0x8B52, 0xF342, 0x8B53, 0xF2FA, 0x8B54, 0xF2FC, 0x8B55, 0xF2FE, 0x8B56, 0xF2FB, 0x8B57, 0xF343, 0x8B58, 0xC3D1, 0x8B59, 0xC3D7, + 0x8B5A, 0xC3D3, 0x8B5C, 0xC3D0, 0x8B5D, 0xF4D0, 0x8B5F, 0xC4B7, 0x8B60, 0xF4CE, 0x8B63, 0xF4D2, 0x8B65, 0xF4D3, 0x8B66, 0xC4B5, + 0x8B67, 0xF4D4, 0x8B68, 0xF4D1, 0x8B6A, 0xF4CF, 0x8B6B, 0xC4B8, 0x8B6C, 0xC4B4, 0x8B6D, 0xF4D5, 0x8B6F, 0xC4B6, 0x8B70, 0xC4B3, + 0x8B74, 0xC4FE, 0x8B77, 0xC540, 0x8B78, 0xF64E, 0x8B79, 0xF64D, 0x8B7A, 0xF650, 0x8B7B, 0xF651, 0x8B7D, 0xC541, 0x8B7E, 0xF756, + 0x8B7F, 0xF75B, 0x8B80, 0xC5AA, 0x8B82, 0xF758, 0x8B84, 0xF757, 0x8B85, 0xF75A, 0x8B86, 0xF759, 0x8B88, 0xF843, 0x8B8A, 0xC5DC, + 0x8B8B, 0xF842, 0x8B8C, 0xF840, 0x8B8E, 0xF841, 0x8B92, 0xC5FE, 0x8B93, 0xC5FD, 0x8B94, 0xF8C1, 0x8B95, 0xF8C2, 0x8B96, 0xC640, + 0x8B98, 0xF94D, 0x8B99, 0xF94E, 0x8B9A, 0xC667, 0x8B9C, 0xC66D, 0x8B9E, 0xF9A9, 0x8B9F, 0xF9C8, 0x8C37, 0xA8A6, 0x8C39, 0xD7CD, + 0x8C3B, 0xD7CE, 0x8C3C, 0xE052, 0x8C3D, 0xE450, 0x8C3E, 0xE7E5, 0x8C3F, 0xC1C6, 0x8C41, 0xC1C5, 0x8C42, 0xF0EE, 0x8C43, 0xF344, + 0x8C45, 0xF844, 0x8C46, 0xA8A7, 0x8C47, 0xD3DE, 0x8C48, 0xB05A, 0x8C49, 0xB361, 0x8C4A, 0xE054, 0x8C4B, 0xE053, 0x8C4C, 0xBDDC, + 0x8C4D, 0xE7E6, 0x8C4E, 0xBDDD, 0x8C4F, 0xEEB1, 0x8C50, 0xC2D7, 0x8C54, 0xC676, 0x8C55, 0xA8A8, 0x8C56, 0xCDCB, 0x8C57, 0xD3DF, + 0x8C5A, 0xB362, 0x8C5C, 0xD7CF, 0x8C5D, 0xD7D0, 0x8C5F, 0xDBE5, 0x8C61, 0xB648, 0x8C62, 0xB8E6, 0x8C64, 0xE056, 0x8C65, 0xE055, + 0x8C66, 0xE057, 0x8C68, 0xE451, 0x8C69, 0xE452, 0x8C6A, 0xBBA8, 0x8C6B, 0xBFDD, 0x8C6C, 0xBDDE, 0x8C6D, 0xBFDE, 0x8C6F, 0xEEB5, + 0x8C70, 0xEEB2, 0x8C71, 0xEEB4, 0x8C72, 0xEEB3, 0x8C73, 0xC1C7, 0x8C75, 0xF0EF, 0x8C76, 0xF346, 0x8C77, 0xF345, 0x8C78, 0xCBA4, + 0x8C79, 0xB05C, 0x8C7A, 0xB05B, 0x8C7B, 0xD3E0, 0x8C7D, 0xD7D1, 0x8C80, 0xDBE7, 0x8C81, 0xDBE6, 0x8C82, 0xB649, 0x8C84, 0xE059, + 0x8C85, 0xE05A, 0x8C86, 0xE058, 0x8C89, 0xB8E8, 0x8C8A, 0xB8E7, 0x8C8C, 0xBBAA, 0x8C8D, 0xBBA9, 0x8C8F, 0xE7E7, 0x8C90, 0xEBB3, + 0x8C91, 0xEBB1, 0x8C92, 0xEBB2, 0x8C93, 0xBFDF, 0x8C94, 0xEEB7, 0x8C95, 0xEEB6, 0x8C97, 0xF0F2, 0x8C98, 0xF0F1, 0x8C99, 0xF0F0, + 0x8C9A, 0xF347, 0x8C9C, 0xF9AA, 0x8C9D, 0xA8A9, 0x8C9E, 0xAD73, 0x8CA0, 0xAD74, 0x8CA1, 0xB05D, 0x8CA2, 0xB05E, 0x8CA3, 0xD3E2, + 0x8CA4, 0xD3E1, 0x8CA5, 0xD7D2, 0x8CA7, 0xB368, 0x8CA8, 0xB366, 0x8CA9, 0xB363, 0x8CAA, 0xB367, 0x8CAB, 0xB365, 0x8CAC, 0xB364, + 0x8CAF, 0xB64A, 0x8CB0, 0xDBEA, 0x8CB2, 0xB8ED, 0x8CB3, 0xB64C, 0x8CB4, 0xB651, 0x8CB5, 0xDBEC, 0x8CB6, 0xB653, 0x8CB7, 0xB652, + 0x8CB8, 0xB655, 0x8CB9, 0xDBEB, 0x8CBA, 0xDBE8, 0x8CBB, 0xB64F, 0x8CBC, 0xB64B, 0x8CBD, 0xB64D, 0x8CBE, 0xDBE9, 0x8CBF, 0xB654, + 0x8CC0, 0xB650, 0x8CC1, 0xB64E, 0x8CC2, 0xB8EF, 0x8CC3, 0xB8EE, 0x8CC4, 0xB8EC, 0x8CC5, 0xB8F0, 0x8CC7, 0xB8EA, 0x8CC8, 0xB8EB, + 0x8CCA, 0xB8E9, 0x8CCC, 0xE05B, 0x8CCF, 0xE454, 0x8CD1, 0xBBAC, 0x8CD2, 0xBBAD, 0x8CD3, 0xBBAB, 0x8CD5, 0xE453, 0x8CD7, 0xE455, + 0x8CD9, 0xE7EA, 0x8CDA, 0xE7EC, 0x8CDC, 0xBDE7, 0x8CDD, 0xE7ED, 0x8CDE, 0xBDE0, 0x8CDF, 0xE7E9, 0x8CE0, 0xBDDF, 0x8CE1, 0xBDE9, + 0x8CE2, 0xBDE5, 0x8CE3, 0xBDE6, 0x8CE4, 0xBDE2, 0x8CE5, 0xE7E8, 0x8CE6, 0xBDE1, 0x8CE7, 0xE7EE, 0x8CE8, 0xE7EB, 0x8CEA, 0xBDE8, + 0x8CEC, 0xBDE3, 0x8CED, 0xBDE4, 0x8CEE, 0xEBB5, 0x8CF0, 0xEBB7, 0x8CF1, 0xEBB6, 0x8CF3, 0xEBB8, 0x8CF4, 0xBFE0, 0x8CF5, 0xEBB4, + 0x8CF8, 0xC1CB, 0x8CF9, 0xEEB8, 0x8CFA, 0xC1C8, 0x8CFB, 0xC1CC, 0x8CFC, 0xC1CA, 0x8CFD, 0xC1C9, 0x8CFE, 0xF0F3, 0x8D00, 0xF0F6, + 0x8D02, 0xF0F5, 0x8D04, 0xF0F4, 0x8D05, 0xC2D8, 0x8D06, 0xF348, 0x8D07, 0xF349, 0x8D08, 0xC3D8, 0x8D09, 0xF34A, 0x8D0A, 0xC3D9, + 0x8D0D, 0xC4BA, 0x8D0F, 0xC4B9, 0x8D10, 0xF652, 0x8D13, 0xC542, 0x8D14, 0xF653, 0x8D15, 0xF75C, 0x8D16, 0xC5AB, 0x8D17, 0xC5AC, + 0x8D19, 0xF845, 0x8D1B, 0xC642, 0x8D64, 0xA8AA, 0x8D66, 0xB36A, 0x8D67, 0xB369, 0x8D68, 0xE05C, 0x8D69, 0xE05D, 0x8D6B, 0xBBAE, + 0x8D6C, 0xEBB9, 0x8D6D, 0xBDEA, 0x8D6E, 0xEBBA, 0x8D6F, 0xEEB9, 0x8D70, 0xA8AB, 0x8D72, 0xD0B2, 0x8D73, 0xAD76, 0x8D74, 0xAD75, + 0x8D76, 0xD3E3, 0x8D77, 0xB05F, 0x8D78, 0xD3E4, 0x8D79, 0xD7D5, 0x8D7B, 0xD7D4, 0x8D7D, 0xD7D3, 0x8D80, 0xDBEE, 0x8D81, 0xB658, + 0x8D84, 0xDBED, 0x8D85, 0xB657, 0x8D89, 0xDBEF, 0x8D8A, 0xB656, 0x8D8C, 0xE05F, 0x8D8D, 0xE062, 0x8D8E, 0xE060, 0x8D8F, 0xE061, + 0x8D90, 0xE065, 0x8D91, 0xE05E, 0x8D92, 0xE066, 0x8D93, 0xE063, 0x8D94, 0xE064, 0x8D95, 0xBBB0, 0x8D96, 0xE456, 0x8D99, 0xBBAF, + 0x8D9B, 0xE7F2, 0x8D9C, 0xE7F0, 0x8D9F, 0xBDEB, 0x8DA0, 0xE7EF, 0x8DA1, 0xE7F1, 0x8DA3, 0xBDEC, 0x8DA5, 0xEBBB, 0x8DA7, 0xEBBC, + 0x8DA8, 0xC1CD, 0x8DAA, 0xF34C, 0x8DAB, 0xF34E, 0x8DAC, 0xF34B, 0x8DAD, 0xF34D, 0x8DAE, 0xF4D6, 0x8DAF, 0xF654, 0x8DB2, 0xF96F, + 0x8DB3, 0xA8AC, 0x8DB4, 0xAD77, 0x8DB5, 0xD3E5, 0x8DB6, 0xD3E7, 0x8DB7, 0xD3E6, 0x8DB9, 0xD7D8, 0x8DBA, 0xB36C, 0x8DBC, 0xD7D6, + 0x8DBE, 0xB36B, 0x8DBF, 0xD7D9, 0x8DC1, 0xD7DA, 0x8DC2, 0xD7D7, 0x8DC5, 0xDBFB, 0x8DC6, 0xB660, 0x8DC7, 0xDBF3, 0x8DC8, 0xDBF9, + 0x8DCB, 0xB65B, 0x8DCC, 0xB65E, 0x8DCD, 0xDBF2, 0x8DCE, 0xB659, 0x8DCF, 0xDBF6, 0x8DD0, 0xE06C, 0x8DD1, 0xB65D, 0x8DD3, 0xDBF1, + 0x8DD5, 0xDBF7, 0x8DD6, 0xDBF4, 0x8DD7, 0xDBFA, 0x8DD8, 0xDBF0, 0x8DD9, 0xDBF8, 0x8DDA, 0xB65C, 0x8DDB, 0xB65F, 0x8DDC, 0xDBF5, + 0x8DDD, 0xB65A, 0x8DDF, 0xB8F2, 0x8DE0, 0xE068, 0x8DE1, 0xB8F1, 0x8DE2, 0xE06F, 0x8DE3, 0xE06E, 0x8DE4, 0xB8F8, 0x8DE6, 0xB8F9, + 0x8DE7, 0xE070, 0x8DE8, 0xB8F3, 0x8DE9, 0xE06D, 0x8DEA, 0xB8F7, 0x8DEB, 0xE072, 0x8DEC, 0xE069, 0x8DEE, 0xE06B, 0x8DEF, 0xB8F4, + 0x8DF0, 0xE067, 0x8DF1, 0xE06A, 0x8DF2, 0xE071, 0x8DF3, 0xB8F5, 0x8DF4, 0xE073, 0x8DFA, 0xB8F6, 0x8DFC, 0xBBB1, 0x8DFD, 0xE45B, + 0x8DFE, 0xE461, 0x8DFF, 0xE459, 0x8E00, 0xE462, 0x8E02, 0xE458, 0x8E03, 0xE45D, 0x8E04, 0xE463, 0x8E05, 0xE460, 0x8E06, 0xE45F, + 0x8E07, 0xE45E, 0x8E09, 0xE457, 0x8E0A, 0xE45C, 0x8E0D, 0xE45A, 0x8E0F, 0xBDF1, 0x8E10, 0xBDEE, 0x8E11, 0xE7FB, 0x8E12, 0xE841, + 0x8E13, 0xE843, 0x8E14, 0xE840, 0x8E15, 0xE7F8, 0x8E16, 0xE7FA, 0x8E17, 0xE845, 0x8E18, 0xE842, 0x8E19, 0xE7FC, 0x8E1A, 0xE846, + 0x8E1B, 0xE7F9, 0x8E1C, 0xE844, 0x8E1D, 0xBDEF, 0x8E1E, 0xBDF5, 0x8E1F, 0xBDF3, 0x8E20, 0xE7F3, 0x8E21, 0xBDF4, 0x8E22, 0xBDF0, + 0x8E23, 0xE7F4, 0x8E24, 0xE7F6, 0x8E25, 0xE7F5, 0x8E26, 0xE7FD, 0x8E27, 0xE7FE, 0x8E29, 0xBDF2, 0x8E2B, 0xBDED, 0x8E2E, 0xE7F7, + 0x8E30, 0xEBC6, 0x8E31, 0xBFE2, 0x8E33, 0xEBBD, 0x8E34, 0xBFE3, 0x8E35, 0xBFE6, 0x8E36, 0xEBC2, 0x8E38, 0xEBBF, 0x8E39, 0xBFE5, + 0x8E3C, 0xEBC3, 0x8E3D, 0xEBC4, 0x8E3E, 0xEBBE, 0x8E3F, 0xEBC7, 0x8E40, 0xEBC0, 0x8E41, 0xEBC5, 0x8E42, 0xBFE4, 0x8E44, 0xBFE1, + 0x8E45, 0xEBC1, 0x8E47, 0xEEBF, 0x8E48, 0xC1D0, 0x8E49, 0xC1CE, 0x8E4A, 0xC1D1, 0x8E4B, 0xC1CF, 0x8E4C, 0xEEBE, 0x8E4D, 0xEEBB, + 0x8E4E, 0xEEBA, 0x8E50, 0xEEBD, 0x8E53, 0xEEBC, 0x8E54, 0xF145, 0x8E55, 0xC2DE, 0x8E56, 0xF0FB, 0x8E57, 0xF0FA, 0x8E59, 0xC2D9, + 0x8E5A, 0xF141, 0x8E5B, 0xF140, 0x8E5C, 0xF0F7, 0x8E5D, 0xF143, 0x8E5E, 0xF0FC, 0x8E5F, 0xC2DD, 0x8E60, 0xF0F9, 0x8E61, 0xF142, + 0x8E62, 0xF0F8, 0x8E63, 0xC2DA, 0x8E64, 0xC2DC, 0x8E65, 0xF0FD, 0x8E66, 0xC2DB, 0x8E67, 0xF0FE, 0x8E69, 0xF144, 0x8E6A, 0xF352, + 0x8E6C, 0xC3DE, 0x8E6D, 0xF34F, 0x8E6F, 0xF353, 0x8E72, 0xC3DB, 0x8E73, 0xF351, 0x8E74, 0xC3E0, 0x8E76, 0xC3DD, 0x8E78, 0xF350, + 0x8E7A, 0xC3DF, 0x8E7B, 0xF354, 0x8E7C, 0xC3DA, 0x8E81, 0xC4BC, 0x8E82, 0xC4BE, 0x8E84, 0xF4D9, 0x8E85, 0xC4BD, 0x8E86, 0xF4D7, + 0x8E87, 0xC3DC, 0x8E88, 0xF4D8, 0x8E89, 0xC4BB, 0x8E8A, 0xC543, 0x8E8B, 0xC545, 0x8E8C, 0xF656, 0x8E8D, 0xC544, 0x8E8E, 0xF655, + 0x8E90, 0xF761, 0x8E91, 0xC5AD, 0x8E92, 0xF760, 0x8E93, 0xC5AE, 0x8E94, 0xF75E, 0x8E95, 0xF75D, 0x8E96, 0xF762, 0x8E97, 0xF763, + 0x8E98, 0xF846, 0x8E9A, 0xF75F, 0x8E9D, 0xF8C6, 0x8E9E, 0xF8C3, 0x8E9F, 0xF8C4, 0x8EA0, 0xF8C5, 0x8EA1, 0xC65C, 0x8EA3, 0xF951, + 0x8EA4, 0xF950, 0x8EA5, 0xF94F, 0x8EA6, 0xF970, 0x8EA8, 0xF9BE, 0x8EA9, 0xF9AB, 0x8EAA, 0xC66E, 0x8EAB, 0xA8AD, 0x8EAC, 0xB060, + 0x8EB2, 0xB8FA, 0x8EBA, 0xBDF6, 0x8EBD, 0xEBC8, 0x8EC0, 0xC2DF, 0x8EC2, 0xF355, 0x8EC9, 0xF9AC, 0x8ECA, 0xA8AE, 0x8ECB, 0xAAEE, + 0x8ECC, 0xAD79, 0x8ECD, 0xAD78, 0x8ECF, 0xB063, 0x8ED1, 0xD3E8, 0x8ED2, 0xB061, 0x8ED3, 0xD3E9, 0x8ED4, 0xB062, 0x8ED7, 0xD7DF, + 0x8ED8, 0xD7DB, 0x8EDB, 0xB36D, 0x8EDC, 0xD7DE, 0x8EDD, 0xD7DD, 0x8EDE, 0xD7DC, 0x8EDF, 0xB36E, 0x8EE0, 0xD7E0, 0x8EE1, 0xD7E1, + 0x8EE5, 0xDC43, 0x8EE6, 0xDC41, 0x8EE7, 0xDC45, 0x8EE8, 0xDC46, 0x8EE9, 0xDC4C, 0x8EEB, 0xDC48, 0x8EEC, 0xDC4A, 0x8EEE, 0xDC42, + 0x8EEF, 0xDBFC, 0x8EF1, 0xDC49, 0x8EF4, 0xDC4B, 0x8EF5, 0xDC44, 0x8EF6, 0xDC47, 0x8EF7, 0xDBFD, 0x8EF8, 0xB662, 0x8EF9, 0xDC40, + 0x8EFA, 0xDBFE, 0x8EFB, 0xB661, 0x8EFC, 0xB663, 0x8EFE, 0xB8FD, 0x8EFF, 0xE075, 0x8F00, 0xE077, 0x8F01, 0xE076, 0x8F02, 0xE07B, + 0x8F03, 0xB8FB, 0x8F05, 0xE078, 0x8F06, 0xE074, 0x8F07, 0xE079, 0x8F08, 0xE07A, 0x8F09, 0xB8FC, 0x8F0A, 0xB8FE, 0x8F0B, 0xE07C, + 0x8F0D, 0xE467, 0x8F0E, 0xE466, 0x8F10, 0xE464, 0x8F11, 0xE465, 0x8F12, 0xBBB3, 0x8F13, 0xBBB5, 0x8F14, 0xBBB2, 0x8F15, 0xBBB4, + 0x8F16, 0xE84D, 0x8F17, 0xE84E, 0x8F18, 0xE849, 0x8F1A, 0xE84A, 0x8F1B, 0xBDF8, 0x8F1C, 0xBDFD, 0x8F1D, 0xBDF7, 0x8F1E, 0xBDFE, + 0x8F1F, 0xBDF9, 0x8F20, 0xE84B, 0x8F23, 0xE84C, 0x8F24, 0xE848, 0x8F25, 0xBE40, 0x8F26, 0xBDFB, 0x8F29, 0xBDFA, 0x8F2A, 0xBDFC, + 0x8F2C, 0xE847, 0x8F2E, 0xEBCA, 0x8F2F, 0xBFE8, 0x8F32, 0xEBCC, 0x8F33, 0xBFEA, 0x8F34, 0xEBCF, 0x8F35, 0xEBCB, 0x8F36, 0xEBC9, + 0x8F37, 0xEBCE, 0x8F38, 0xBFE9, 0x8F39, 0xEBCD, 0x8F3B, 0xBFE7, 0x8F3E, 0xC1D3, 0x8F3F, 0xC1D6, 0x8F40, 0xEEC1, 0x8F42, 0xC1D4, + 0x8F43, 0xEEC0, 0x8F44, 0xC1D2, 0x8F45, 0xC1D5, 0x8F46, 0xF146, 0x8F47, 0xF147, 0x8F48, 0xF148, 0x8F49, 0xC2E0, 0x8F4B, 0xF149, + 0x8F4D, 0xC2E1, 0x8F4E, 0xC3E2, 0x8F4F, 0xF358, 0x8F50, 0xF359, 0x8F51, 0xF357, 0x8F52, 0xF356, 0x8F53, 0xF35A, 0x8F54, 0xC3E1, + 0x8F55, 0xF4DD, 0x8F56, 0xF4DB, 0x8F57, 0xF4DC, 0x8F58, 0xF4DE, 0x8F59, 0xF4DA, 0x8F5A, 0xF4DF, 0x8F5B, 0xF658, 0x8F5D, 0xF659, + 0x8F5E, 0xF657, 0x8F5F, 0xC546, 0x8F60, 0xF764, 0x8F61, 0xC5AF, 0x8F62, 0xF765, 0x8F63, 0xF848, 0x8F64, 0xF847, 0x8F9B, 0xA8AF, + 0x8F9C, 0xB664, 0x8F9F, 0xB940, 0x8FA3, 0xBBB6, 0x8FA6, 0xBFEC, 0x8FA8, 0xBFEB, 0x8FAD, 0xC3E3, 0x8FAE, 0xC47C, 0x8FAF, 0xC547, + 0x8FB0, 0xA8B0, 0x8FB1, 0xB064, 0x8FB2, 0xB941, 0x8FB4, 0xF35B, 0x8FBF, 0xCBA6, 0x8FC2, 0xA8B1, 0x8FC4, 0xA8B4, 0x8FC5, 0xA8B3, + 0x8FC6, 0xA8B2, 0x8FC9, 0xCBA5, 0x8FCB, 0xCDCD, 0x8FCD, 0xCDCF, 0x8FCE, 0xAAEF, 0x8FD1, 0xAAF1, 0x8FD2, 0xCDCC, 0x8FD3, 0xCDCE, + 0x8FD4, 0xAAF0, 0x8FD5, 0xCDD1, 0x8FD6, 0xCDD0, 0x8FD7, 0xCDD2, 0x8FE0, 0xD0B6, 0x8FE1, 0xD0B4, 0x8FE2, 0xAD7C, 0x8FE3, 0xD0B3, + 0x8FE4, 0xADA3, 0x8FE5, 0xAD7E, 0x8FE6, 0xAD7B, 0x8FE8, 0xADA4, 0x8FEA, 0xAD7D, 0x8FEB, 0xADA2, 0x8FED, 0xADA1, 0x8FEE, 0xD0B5, + 0x8FF0, 0xAD7A, 0x8FF4, 0xB06A, 0x8FF5, 0xD3EB, 0x8FF6, 0xD3F1, 0x8FF7, 0xB067, 0x8FF8, 0xB06E, 0x8FFA, 0xB069, 0x8FFB, 0xD3EE, + 0x8FFC, 0xD3F0, 0x8FFD, 0xB06C, 0x8FFE, 0xD3EA, 0x8FFF, 0xD3ED, 0x9000, 0xB068, 0x9001, 0xB065, 0x9002, 0xD3EC, 0x9003, 0xB06B, + 0x9004, 0xD3EF, 0x9005, 0xB06D, 0x9006, 0xB066, 0x900B, 0xD7E3, 0x900C, 0xD7E6, 0x900D, 0xB370, 0x900F, 0xB37A, 0x9010, 0xB376, + 0x9011, 0xD7E4, 0x9014, 0xB37E, 0x9015, 0xB377, 0x9016, 0xB37C, 0x9017, 0xB372, 0x9019, 0xB36F, 0x901A, 0xB371, 0x901B, 0xB37D, + 0x901C, 0xD7E5, 0x901D, 0xB375, 0x901E, 0xB378, 0x901F, 0xB374, 0x9020, 0xB379, 0x9021, 0xD7E7, 0x9022, 0xB37B, 0x9023, 0xB373, + 0x9024, 0xD7E2, 0x902D, 0xDC4D, 0x902E, 0xB665, 0x902F, 0xDC4F, 0x9031, 0xB667, 0x9032, 0xB669, 0x9034, 0xDC4E, 0x9035, 0xB666, + 0x9036, 0xB66A, 0x9038, 0xB668, 0x903C, 0xB947, 0x903D, 0xE0A3, 0x903E, 0xB94F, 0x903F, 0xE07E, 0x9041, 0xB950, 0x9042, 0xB945, + 0x9044, 0xE0A1, 0x9047, 0xB94A, 0x9049, 0xE0A2, 0x904A, 0xB943, 0x904B, 0xB942, 0x904D, 0xB94D, 0x904E, 0xB94C, 0x904F, 0xB94B, + 0x9050, 0xB949, 0x9051, 0xB94E, 0x9052, 0xE07D, 0x9053, 0xB944, 0x9054, 0xB946, 0x9055, 0xB948, 0x9058, 0xBBB8, 0x9059, 0xBBBB, + 0x905B, 0xBBBF, 0x905C, 0xBBB9, 0x905D, 0xBBBE, 0x905E, 0xBBBC, 0x9060, 0xBBB7, 0x9062, 0xBBBD, 0x9063, 0xBBBA, 0x9067, 0xE852, + 0x9068, 0xBE43, 0x9069, 0xBE41, 0x906B, 0xE853, 0x906D, 0xBE44, 0x906E, 0xBE42, 0x906F, 0xE851, 0x9070, 0xE850, 0x9072, 0xBFF0, + 0x9073, 0xE84F, 0x9074, 0xBFEE, 0x9075, 0xBFED, 0x9076, 0xEBD0, 0x9077, 0xBE45, 0x9078, 0xBFEF, 0x9079, 0xEBD1, 0x907A, 0xBFF2, + 0x907B, 0xEBD2, 0x907C, 0xBFF1, 0x907D, 0xC1D8, 0x907E, 0xEEC3, 0x907F, 0xC1D7, 0x9080, 0xC1DC, 0x9081, 0xC1DA, 0x9082, 0xC1DB, + 0x9083, 0xC2E3, 0x9084, 0xC1D9, 0x9085, 0xEEC2, 0x9086, 0xEBD3, 0x9087, 0xC2E2, 0x9088, 0xC2E4, 0x908A, 0xC3E4, 0x908B, 0xC3E5, + 0x908D, 0xF4E0, 0x908F, 0xC5DE, 0x9090, 0xC5DD, 0x9091, 0xA8B6, 0x9094, 0xCA55, 0x9095, 0xB06F, 0x9097, 0xCA52, 0x9098, 0xCA53, + 0x9099, 0xCA51, 0x909B, 0xCA54, 0x909E, 0xCBAA, 0x909F, 0xCBA7, 0x90A0, 0xCBAC, 0x90A1, 0xCBA8, 0x90A2, 0xA8B7, 0x90A3, 0xA8BA, + 0x90A5, 0xCBA9, 0x90A6, 0xA8B9, 0x90A7, 0xCBAB, 0x90AA, 0xA8B8, 0x90AF, 0xCDD5, 0x90B0, 0xCDD7, 0x90B1, 0xAAF4, 0x90B2, 0xCDD3, + 0x90B3, 0xCDD6, 0x90B4, 0xCDD4, 0x90B5, 0xAAF2, 0x90B6, 0xAAF5, 0x90B8, 0xAAF3, 0x90BD, 0xD0B8, 0x90BE, 0xD0BC, 0x90BF, 0xD0B9, + 0x90C1, 0xADA7, 0x90C3, 0xADA8, 0x90C5, 0xD0BB, 0x90C7, 0xD0BD, 0x90C8, 0xD0BF, 0x90CA, 0xADA5, 0x90CB, 0xD0BE, 0x90CE, 0xADA6, + 0x90D4, 0xD7EE, 0x90D5, 0xD0BA, 0x90D6, 0xD3F2, 0x90D7, 0xD3FB, 0x90D8, 0xD3F9, 0x90D9, 0xD3F4, 0x90DA, 0xD3F5, 0x90DB, 0xD3FA, + 0x90DC, 0xD3FC, 0x90DD, 0xB071, 0x90DF, 0xD3F7, 0x90E0, 0xD3F3, 0x90E1, 0xB070, 0x90E2, 0xB072, 0x90E3, 0xD3F6, 0x90E4, 0xD3FD, + 0x90E5, 0xD3F8, 0x90E8, 0xB3A1, 0x90E9, 0xD7F1, 0x90EA, 0xD7E9, 0x90EB, 0xD7EF, 0x90EC, 0xD7F0, 0x90ED, 0xB3A2, 0x90EF, 0xD7E8, + 0x90F0, 0xD7EA, 0x90F1, 0xD0B7, 0x90F2, 0xD7EC, 0x90F3, 0xD7ED, 0x90F4, 0xD7EB, 0x90F5, 0xB66C, 0x90F9, 0xDC56, 0x90FA, 0xEBD4, + 0x90FB, 0xDC57, 0x90FC, 0xDC54, 0x90FD, 0xB3A3, 0x90FE, 0xB66E, 0x90FF, 0xDC53, 0x9100, 0xDC59, 0x9101, 0xDC58, 0x9102, 0xB66B, + 0x9103, 0xDC5C, 0x9104, 0xDC52, 0x9105, 0xDC5B, 0x9106, 0xDC50, 0x9107, 0xDC5A, 0x9108, 0xDC55, 0x9109, 0xB66D, 0x910B, 0xE0AA, + 0x910D, 0xE0A5, 0x910E, 0xE0AB, 0x910F, 0xE0A6, 0x9110, 0xE0A4, 0x9111, 0xE0A7, 0x9112, 0xB951, 0x9114, 0xE0A9, 0x9116, 0xE0A8, + 0x9117, 0xB952, 0x9118, 0xBBC1, 0x9119, 0xBBC0, 0x911A, 0xE46E, 0x911B, 0xE471, 0x911C, 0xE469, 0x911D, 0xE46D, 0x911E, 0xBBC2, + 0x911F, 0xE46C, 0x9120, 0xE46A, 0x9121, 0xE470, 0x9122, 0xE46B, 0x9123, 0xE468, 0x9124, 0xE46F, 0x9126, 0xE859, 0x9127, 0xBE48, + 0x9128, 0xF14A, 0x9129, 0xE856, 0x912A, 0xE857, 0x912B, 0xE855, 0x912C, 0xDC51, 0x912D, 0xBE47, 0x912E, 0xE85A, 0x912F, 0xE854, + 0x9130, 0xBE46, 0x9131, 0xBE49, 0x9132, 0xE858, 0x9133, 0xEBD5, 0x9134, 0xBFF3, 0x9135, 0xEBD6, 0x9136, 0xEBD7, 0x9138, 0xEEC4, + 0x9139, 0xC1DD, 0x913A, 0xF14B, 0x913B, 0xF14C, 0x913E, 0xF14D, 0x913F, 0xF35D, 0x9140, 0xF35C, 0x9141, 0xF4E2, 0x9143, 0xF4E1, + 0x9144, 0xF65B, 0x9145, 0xF65C, 0x9146, 0xF65A, 0x9147, 0xF766, 0x9148, 0xC5B0, 0x9149, 0xA8BB, 0x914A, 0xADAA, 0x914B, 0xADA9, + 0x914C, 0xB075, 0x914D, 0xB074, 0x914E, 0xD440, 0x914F, 0xD441, 0x9150, 0xD3FE, 0x9152, 0xB073, 0x9153, 0xD7F5, 0x9155, 0xD7F6, + 0x9156, 0xD7F2, 0x9157, 0xB3A4, 0x9158, 0xD7F3, 0x915A, 0xD7F4, 0x915F, 0xDC5F, 0x9160, 0xDC61, 0x9161, 0xDC5D, 0x9162, 0xDC60, + 0x9163, 0xB66F, 0x9164, 0xDC5E, 0x9165, 0xB670, 0x9168, 0xDD73, 0x9169, 0xB955, 0x916A, 0xB954, 0x916C, 0xB953, 0x916E, 0xE0AC, + 0x916F, 0xE0AD, 0x9172, 0xE473, 0x9173, 0xE475, 0x9174, 0xBBC6, 0x9175, 0xBBC3, 0x9177, 0xBBC5, 0x9178, 0xBBC4, 0x9179, 0xE474, + 0x917A, 0xE472, 0x9180, 0xE861, 0x9181, 0xE85E, 0x9182, 0xE85F, 0x9183, 0xBE4D, 0x9184, 0xE860, 0x9185, 0xE85B, 0x9186, 0xE85C, + 0x9187, 0xBE4A, 0x9189, 0xBE4B, 0x918A, 0xE85D, 0x918B, 0xBE4C, 0x918D, 0xEBDB, 0x918F, 0xEBDC, 0x9190, 0xEBD9, 0x9191, 0xEBDA, + 0x9192, 0xBFF4, 0x9193, 0xEBD8, 0x9199, 0xEEC8, 0x919A, 0xEEC5, 0x919B, 0xEEC7, 0x919C, 0xC1E0, 0x919D, 0xEECB, 0x919E, 0xC1DF, + 0x919F, 0xEEC9, 0x91A0, 0xEECC, 0x91A1, 0xEECA, 0x91A2, 0xEEC6, 0x91A3, 0xC1DE, 0x91A5, 0xF14F, 0x91A7, 0xF150, 0x91A8, 0xF14E, + 0x91AA, 0xF152, 0x91AB, 0xC2E5, 0x91AC, 0xC2E6, 0x91AD, 0xF35F, 0x91AE, 0xC3E7, 0x91AF, 0xF151, 0x91B0, 0xF35E, 0x91B1, 0xC3E6, + 0x91B2, 0xF4E5, 0x91B3, 0xF4E6, 0x91B4, 0xC4BF, 0x91B5, 0xF4E4, 0x91B7, 0xF4E3, 0x91B9, 0xF65D, 0x91BA, 0xC548, 0x91BC, 0xF849, + 0x91BD, 0xF8C8, 0x91BE, 0xF8C7, 0x91C0, 0xC643, 0x91C1, 0xC65D, 0x91C2, 0xF8C9, 0x91C3, 0xF971, 0x91C5, 0xC66F, 0x91C6, 0xA8BC, + 0x91C7, 0xAAF6, 0x91C9, 0xB956, 0x91CB, 0xC4C0, 0x91CC, 0xA8BD, 0x91CD, 0xADAB, 0x91CE, 0xB3A5, 0x91CF, 0xB671, 0x91D0, 0xC2E7, + 0x91D1, 0xAAF7, 0x91D3, 0xD0C1, 0x91D4, 0xD0C0, 0x91D5, 0xD442, 0x91D7, 0xB078, 0x91D8, 0xB076, 0x91D9, 0xB07A, 0x91DA, 0xD444, + 0x91DC, 0xB079, 0x91DD, 0xB077, 0x91E2, 0xD443, 0x91E3, 0xB3A8, 0x91E4, 0xD7FC, 0x91E6, 0xB3A7, 0x91E7, 0xB3A9, 0x91E8, 0xD842, + 0x91E9, 0xB3AB, 0x91EA, 0xD7FE, 0x91EB, 0xD840, 0x91EC, 0xD7F7, 0x91ED, 0xB3AA, 0x91EE, 0xD843, 0x91F1, 0xD7F9, 0x91F3, 0xD7FA, + 0x91F4, 0xD7F8, 0x91F5, 0xB3A6, 0x91F7, 0xD841, 0x91F8, 0xD7FB, 0x91F9, 0xD7FD, 0x91FD, 0xDC6D, 0x91FF, 0xDC6C, 0x9200, 0xDC6A, + 0x9201, 0xDC62, 0x9202, 0xDC71, 0x9203, 0xDC65, 0x9204, 0xDC6F, 0x9205, 0xDC76, 0x9206, 0xDC6E, 0x9207, 0xB679, 0x9209, 0xB675, + 0x920A, 0xDC63, 0x920C, 0xDC69, 0x920D, 0xB677, 0x920F, 0xDC68, 0x9210, 0xB678, 0x9211, 0xB67A, 0x9212, 0xDC6B, 0x9214, 0xB672, + 0x9215, 0xB673, 0x9216, 0xDC77, 0x9217, 0xDC75, 0x9219, 0xDC74, 0x921A, 0xDC66, 0x921C, 0xDC72, 0x921E, 0xB676, 0x9223, 0xB674, + 0x9224, 0xDC73, 0x9225, 0xDC64, 0x9226, 0xDC67, 0x9227, 0xDC70, 0x922D, 0xE4BA, 0x922E, 0xE0B7, 0x9230, 0xE0B0, 0x9231, 0xE0C3, + 0x9232, 0xE0CC, 0x9233, 0xE0B3, 0x9234, 0xB961, 0x9236, 0xE0C0, 0x9237, 0xB957, 0x9238, 0xB959, 0x9239, 0xB965, 0x923A, 0xE0B1, + 0x923D, 0xB95A, 0x923E, 0xB95C, 0x923F, 0xB966, 0x9240, 0xB95B, 0x9245, 0xB964, 0x9246, 0xE0B9, 0x9248, 0xE0AE, 0x9249, 0xB962, + 0x924A, 0xE0B8, 0x924B, 0xB95E, 0x924C, 0xE0CA, 0x924D, 0xB963, 0x924E, 0xE0C8, 0x924F, 0xE0BC, 0x9250, 0xE0C6, 0x9251, 0xB960, + 0x9252, 0xE0AF, 0x9253, 0xE0C9, 0x9254, 0xE0C4, 0x9256, 0xE0CB, 0x9257, 0xB958, 0x925A, 0xB967, 0x925B, 0xB95D, 0x925E, 0xE0B5, + 0x9260, 0xE0BD, 0x9261, 0xE0C1, 0x9263, 0xE0C5, 0x9264, 0xB95F, 0x9265, 0xE0B4, 0x9266, 0xE0B2, 0x9267, 0xE0BE, 0x926C, 0xE0BB, + 0x926D, 0xE0BA, 0x926F, 0xE0BF, 0x9270, 0xE0C2, 0x9272, 0xE0C7, 0x9276, 0xE478, 0x9278, 0xBBC7, 0x9279, 0xE4A4, 0x927A, 0xE47A, + 0x927B, 0xBBCC, 0x927C, 0xBBD0, 0x927D, 0xE4AD, 0x927E, 0xE4B5, 0x927F, 0xE4A6, 0x9280, 0xBBC8, 0x9282, 0xE4AA, 0x9283, 0xE0B6, + 0x9285, 0xBBC9, 0x9286, 0xE4B1, 0x9287, 0xE4B6, 0x9288, 0xE4AE, 0x928A, 0xE4B0, 0x928B, 0xE4B9, 0x928C, 0xE4B2, 0x928D, 0xE47E, + 0x928E, 0xE4A9, 0x9291, 0xBBD1, 0x9293, 0xBBCD, 0x9294, 0xE47C, 0x9295, 0xE4AB, 0x9296, 0xBBCB, 0x9297, 0xE4A5, 0x9298, 0xBBCA, + 0x9299, 0xE4B3, 0x929A, 0xE4A2, 0x929B, 0xE479, 0x929C, 0xBBCE, 0x929D, 0xE4B8, 0x92A0, 0xE47B, 0x92A1, 0xE4AF, 0x92A2, 0xE4AC, + 0x92A3, 0xE4A7, 0x92A4, 0xE477, 0x92A5, 0xE476, 0x92A6, 0xE4A1, 0x92A7, 0xE4B4, 0x92A8, 0xBBCF, 0x92A9, 0xE4B7, 0x92AA, 0xE47D, + 0x92AB, 0xE4A3, 0x92AC, 0xBE52, 0x92B2, 0xBE5A, 0x92B3, 0xBE55, 0x92B4, 0xE8A4, 0x92B5, 0xE8A1, 0x92B6, 0xE867, 0x92B7, 0xBE50, + 0x92B9, 0xF9D7, 0x92BB, 0xBE4F, 0x92BC, 0xBE56, 0x92C0, 0xE865, 0x92C1, 0xBE54, 0x92C2, 0xE871, 0x92C3, 0xE863, 0x92C4, 0xE864, + 0x92C5, 0xBE4E, 0x92C6, 0xE8A3, 0x92C7, 0xBE58, 0x92C8, 0xE874, 0x92C9, 0xE879, 0x92CA, 0xE873, 0x92CB, 0xEBEE, 0x92CC, 0xE86F, + 0x92CD, 0xE877, 0x92CE, 0xE875, 0x92CF, 0xE868, 0x92D0, 0xE862, 0x92D1, 0xE87D, 0x92D2, 0xBE57, 0x92D3, 0xE87E, 0x92D5, 0xE878, + 0x92D7, 0xE86D, 0x92D8, 0xE86B, 0x92D9, 0xE866, 0x92DD, 0xE86E, 0x92DE, 0xE87B, 0x92DF, 0xE86A, 0x92E0, 0xE87A, 0x92E1, 0xE8A2, + 0x92E4, 0xBE53, 0x92E6, 0xE876, 0x92E7, 0xE87C, 0x92E8, 0xE872, 0x92E9, 0xE86C, 0x92EA, 0xBE51, 0x92EE, 0xE4A8, 0x92EF, 0xE870, + 0x92F0, 0xBE59, 0x92F1, 0xE869, 0x92F7, 0xEBF4, 0x92F8, 0xBFF7, 0x92F9, 0xEBF3, 0x92FA, 0xEBF0, 0x92FB, 0xEC44, 0x92FC, 0xBFFB, + 0x92FE, 0xEC41, 0x92FF, 0xEBF8, 0x9300, 0xEC43, 0x9301, 0xEBE9, 0x9302, 0xEBF6, 0x9304, 0xBFFD, 0x9306, 0xEBE1, 0x9308, 0xEBDF, + 0x9309, 0xEC42, 0x930B, 0xEC40, 0x930C, 0xEBFE, 0x930D, 0xEBED, 0x930E, 0xEBEC, 0x930F, 0xEBE2, 0x9310, 0xC040, 0x9312, 0xEBE8, + 0x9313, 0xEBF2, 0x9314, 0xEBFD, 0x9315, 0xC043, 0x9316, 0xEC45, 0x9318, 0xC1E8, 0x9319, 0xC045, 0x931A, 0xBFFE, 0x931B, 0xEBE6, + 0x931D, 0xEBEF, 0x931E, 0xEBDE, 0x931F, 0xEBE0, 0x9320, 0xBFF5, 0x9321, 0xC042, 0x9322, 0xBFFA, 0x9323, 0xEBE7, 0x9324, 0xEBF7, + 0x9325, 0xEBF1, 0x9326, 0xC041, 0x9327, 0xEBDD, 0x9328, 0xC1E3, 0x9329, 0xEBF9, 0x932A, 0xEBFC, 0x932B, 0xBFFC, 0x932D, 0xEBEB, + 0x932E, 0xC044, 0x932F, 0xBFF9, 0x9333, 0xBFF8, 0x9334, 0xEBF5, 0x9335, 0xEBFB, 0x9336, 0xBFF6, 0x9338, 0xEBE4, 0x9339, 0xEBFA, + 0x933C, 0xEBE5, 0x9346, 0xEBEA, 0x9347, 0xEED2, 0x9349, 0xEED7, 0x934A, 0xC1E5, 0x934B, 0xC1E7, 0x934C, 0xEEDD, 0x934D, 0xC1E1, + 0x934E, 0xEEEC, 0x934F, 0xEEE3, 0x9350, 0xEED8, 0x9351, 0xEED9, 0x9352, 0xEEE2, 0x9354, 0xC1EE, 0x9355, 0xEEE1, 0x9356, 0xEED1, + 0x9357, 0xEEE0, 0x9358, 0xEED4, 0x9359, 0xEEED, 0x935A, 0xC1ED, 0x935B, 0xC1EB, 0x935C, 0xEED5, 0x935E, 0xEEE8, 0x9360, 0xEEDA, + 0x9361, 0xEEE7, 0x9363, 0xEEE9, 0x9364, 0xEED0, 0x9365, 0xC1E6, 0x9367, 0xEEEA, 0x936A, 0xEEDE, 0x936C, 0xC1EA, 0x936D, 0xEEDB, + 0x9370, 0xC1EC, 0x9371, 0xEEE4, 0x9375, 0xC1E4, 0x9376, 0xEED6, 0x9377, 0xEEE5, 0x9379, 0xEEDF, 0x937A, 0xEBE3, 0x937B, 0xEEE6, + 0x937C, 0xEED3, 0x937E, 0xC1E9, 0x9380, 0xEEEB, 0x9382, 0xC1E2, 0x9383, 0xEECE, 0x9388, 0xF160, 0x9389, 0xF159, 0x938A, 0xC2E9, + 0x938C, 0xF154, 0x938D, 0xF163, 0x938E, 0xF15B, 0x938F, 0xEEDC, 0x9391, 0xF165, 0x9392, 0xF155, 0x9394, 0xC2E8, 0x9395, 0xF15F, + 0x9396, 0xC2EA, 0x9397, 0xC2F2, 0x9398, 0xC2F0, 0x9399, 0xF161, 0x939A, 0xC2F1, 0x939B, 0xF157, 0x939D, 0xF158, 0x939E, 0xF15D, + 0x939F, 0xF162, 0x93A1, 0xEECD, 0x93A2, 0xC2EB, 0x93A3, 0xF16A, 0x93A4, 0xF167, 0x93A5, 0xF16B, 0x93A6, 0xF15E, 0x93A7, 0xF15A, + 0x93A8, 0xF168, 0x93A9, 0xF36A, 0x93AA, 0xF15C, 0x93AC, 0xC2EE, 0x93AE, 0xC2ED, 0x93AF, 0xEECF, 0x93B0, 0xC2EF, 0x93B1, 0xF164, + 0x93B2, 0xF166, 0x93B3, 0xC2EC, 0x93B4, 0xF169, 0x93B5, 0xF153, 0x93B7, 0xF156, 0x93C0, 0xF373, 0x93C2, 0xF363, 0x93C3, 0xC3EB, + 0x93C4, 0xF371, 0x93C7, 0xF361, 0x93C8, 0xC3EC, 0x93CA, 0xF36C, 0x93CC, 0xF368, 0x93CD, 0xC3F1, 0x93CE, 0xF372, 0x93CF, 0xF362, + 0x93D0, 0xF365, 0x93D1, 0xC3E9, 0x93D2, 0xF374, 0x93D4, 0xF36D, 0x93D5, 0xF370, 0x93D6, 0xC3EF, 0x93D7, 0xC3F4, 0x93D8, 0xC3F2, + 0x93D9, 0xF369, 0x93DA, 0xF364, 0x93DC, 0xC3ED, 0x93DD, 0xC3EE, 0x93DE, 0xF360, 0x93DF, 0xC3EA, 0x93E1, 0xC3E8, 0x93E2, 0xC3F0, + 0x93E3, 0xF36F, 0x93E4, 0xC3F3, 0x93E6, 0xF36B, 0x93E7, 0xF375, 0x93E8, 0xC3F5, 0x93EC, 0xF367, 0x93EE, 0xF36E, 0x93F5, 0xF4F3, + 0x93F6, 0xF542, 0x93F7, 0xF4F5, 0x93F8, 0xF4FC, 0x93F9, 0xF366, 0x93FA, 0xF4FA, 0x93FB, 0xF4E9, 0x93FC, 0xF540, 0x93FD, 0xC4C3, + 0x93FE, 0xF4ED, 0x93FF, 0xF4FE, 0x9400, 0xF4F4, 0x9403, 0xC4C2, 0x9406, 0xF544, 0x9407, 0xF4F6, 0x9409, 0xF4FB, 0x940A, 0xF4FD, + 0x940B, 0xF4E7, 0x940C, 0xF541, 0x940D, 0xF4F2, 0x940E, 0xF4F7, 0x940F, 0xF4EB, 0x9410, 0xF4EF, 0x9411, 0xF543, 0x9412, 0xF4F9, + 0x9413, 0xF4E8, 0x9414, 0xF4EC, 0x9415, 0xF4EE, 0x9416, 0xF4F8, 0x9418, 0xC4C1, 0x9419, 0xF4F1, 0x9420, 0xF4EA, 0x9428, 0xF4F0, + 0x9429, 0xF661, 0x942A, 0xF666, 0x942B, 0xC54F, 0x942C, 0xF668, 0x942E, 0xC549, 0x9430, 0xF664, 0x9431, 0xF66A, 0x9432, 0xC54E, + 0x9433, 0xC54A, 0x9435, 0xC54B, 0x9436, 0xF660, 0x9437, 0xF667, 0x9438, 0xC54D, 0x9439, 0xF665, 0x943A, 0xC54C, 0x943B, 0xF65F, + 0x943C, 0xF663, 0x943D, 0xF662, 0x943F, 0xF65E, 0x9440, 0xF669, 0x9444, 0xC5B1, 0x9445, 0xF76D, 0x9446, 0xF770, 0x9447, 0xF76C, + 0x9448, 0xF76E, 0x9449, 0xF76F, 0x944A, 0xF769, 0x944B, 0xF76A, 0x944C, 0xF767, 0x944F, 0xF76B, 0x9450, 0xF768, 0x9451, 0xC5B2, + 0x9452, 0xC5B3, 0x9455, 0xF84B, 0x9457, 0xF84D, 0x945D, 0xF84C, 0x945E, 0xF84E, 0x9460, 0xC5E0, 0x9462, 0xF84A, 0x9463, 0xC5DF, + 0x9464, 0xC5E1, 0x9468, 0xF8CB, 0x9469, 0xF8CC, 0x946A, 0xC644, 0x946B, 0xF8CA, 0x946D, 0xF953, 0x946E, 0xF952, 0x946F, 0xF954, + 0x9470, 0xC65F, 0x9471, 0xF955, 0x9472, 0xC65E, 0x9473, 0xF956, 0x9474, 0xF972, 0x9475, 0xF975, 0x9476, 0xF974, 0x9477, 0xC668, + 0x9478, 0xF973, 0x947C, 0xC672, 0x947D, 0xC670, 0x947E, 0xC671, 0x947F, 0xC677, 0x9480, 0xF9C0, 0x9481, 0xF9C1, 0x9482, 0xF9BF, + 0x9483, 0xF9C9, 0x9577, 0xAAF8, 0x957A, 0xD844, 0x957B, 0xDC78, 0x957C, 0xE8A5, 0x957D, 0xF376, 0x9580, 0xAAF9, 0x9582, 0xADAC, + 0x9583, 0xB07B, 0x9586, 0xD845, 0x9588, 0xD846, 0x9589, 0xB3AC, 0x958B, 0xB67D, 0x958C, 0xDC7A, 0x958D, 0xDC79, 0x958E, 0xB6A3, + 0x958F, 0xB67C, 0x9590, 0xDC7B, 0x9591, 0xB67E, 0x9592, 0xB6A2, 0x9593, 0xB6A1, 0x9594, 0xB67B, 0x9598, 0xB968, 0x959B, 0xE0D0, + 0x959C, 0xE0CE, 0x959E, 0xE0CF, 0x959F, 0xE0CD, 0x95A1, 0xBBD2, 0x95A3, 0xBBD5, 0x95A4, 0xBBD7, 0x95A5, 0xBBD6, 0x95A8, 0xBBD3, + 0x95A9, 0xBBD4, 0x95AB, 0xE8A7, 0x95AC, 0xE8A6, 0x95AD, 0xBE5B, 0x95AE, 0xE8A8, 0x95B0, 0xE8A9, 0x95B1, 0xBE5C, 0x95B5, 0xEC4D, + 0x95B6, 0xEC4B, 0x95B7, 0xEEF3, 0x95B9, 0xEC49, 0x95BA, 0xEC4A, 0x95BB, 0xC046, 0x95BC, 0xEC46, 0x95BD, 0xEC4E, 0x95BE, 0xEC48, + 0x95BF, 0xEC4C, 0x95C0, 0xEEEF, 0x95C3, 0xEEF1, 0x95C5, 0xEEF2, 0x95C6, 0xC1F3, 0x95C7, 0xEEEE, 0x95C8, 0xC1F2, 0x95C9, 0xEEF0, + 0x95CA, 0xC1EF, 0x95CB, 0xC1F0, 0x95CC, 0xC1F1, 0x95CD, 0xEC47, 0x95D0, 0xC2F5, 0x95D1, 0xF16E, 0x95D2, 0xF16C, 0x95D3, 0xF16D, + 0x95D4, 0xC2F3, 0x95D5, 0xC2F6, 0x95D6, 0xC2F4, 0x95DA, 0xF377, 0x95DB, 0xF378, 0x95DC, 0xC3F6, 0x95DE, 0xF545, 0x95DF, 0xF547, + 0x95E0, 0xF546, 0x95E1, 0xC4C4, 0x95E2, 0xC550, 0x95E3, 0xF66D, 0x95E4, 0xF66C, 0x95E5, 0xF66B, 0x961C, 0xAAFA, 0x961E, 0xC9AA, + 0x9620, 0xCA58, 0x9621, 0xA6E9, 0x9622, 0xCA56, 0x9623, 0xCA59, 0x9624, 0xCA57, 0x9628, 0xCBAE, 0x962A, 0xA8C1, 0x962C, 0xA8C2, + 0x962D, 0xCBB0, 0x962E, 0xA8BF, 0x962F, 0xCBAF, 0x9630, 0xCBAD, 0x9631, 0xA8C0, 0x9632, 0xA8BE, 0x9639, 0xCDD8, 0x963A, 0xCDDB, + 0x963B, 0xAAFD, 0x963C, 0xCDDA, 0x963D, 0xCDD9, 0x963F, 0xAAFC, 0x9640, 0xAAFB, 0x9642, 0xAB40, 0x9643, 0xCDDC, 0x9644, 0xAAFE, + 0x964A, 0xD0C6, 0x964B, 0xADAE, 0x964C, 0xADAF, 0x964D, 0xADB0, 0x964E, 0xD0C7, 0x964F, 0xD0C3, 0x9650, 0xADAD, 0x9651, 0xD0C4, + 0x9653, 0xD0C5, 0x9654, 0xD0C2, 0x9658, 0xB0A4, 0x965B, 0xB0A1, 0x965C, 0xD445, 0x965D, 0xB0A2, 0x965E, 0xB0A5, 0x965F, 0xD446, + 0x9661, 0xB07E, 0x9662, 0xB07C, 0x9663, 0xB07D, 0x9664, 0xB0A3, 0x966A, 0xB3AD, 0x966B, 0xD849, 0x966C, 0xB3B5, 0x966D, 0xD848, + 0x966F, 0xD84B, 0x9670, 0xB3B1, 0x9671, 0xD84A, 0x9672, 0xB6AB, 0x9673, 0xB3AF, 0x9674, 0xB3B2, 0x9675, 0xB3AE, 0x9676, 0xB3B3, + 0x9677, 0xB3B4, 0x9678, 0xB3B0, 0x967C, 0xD847, 0x967D, 0xB6A7, 0x967E, 0xDC7D, 0x9680, 0xDCA3, 0x9683, 0xDCA2, 0x9684, 0xB6AC, + 0x9685, 0xB6A8, 0x9686, 0xB6A9, 0x9687, 0xDC7C, 0x9688, 0xDC7E, 0x9689, 0xDCA1, 0x968A, 0xB6A4, 0x968B, 0xB6A6, 0x968D, 0xB6AA, + 0x968E, 0xB6A5, 0x9691, 0xE0D3, 0x9692, 0xE0D1, 0x9693, 0xE0D2, 0x9694, 0xB96A, 0x9695, 0xB96B, 0x9697, 0xE0D4, 0x9698, 0xB969, + 0x9699, 0xBBD8, 0x969B, 0xBBDA, 0x969C, 0xBBD9, 0x969E, 0xE4BB, 0x96A1, 0xE4BC, 0x96A2, 0xE8AB, 0x96A4, 0xE8AA, 0x96A7, 0xC047, + 0x96A8, 0xC048, 0x96A9, 0xEC4F, 0x96AA, 0xC049, 0x96AC, 0xEEF6, 0x96AE, 0xEEF4, 0x96B0, 0xEEF5, 0x96B1, 0xC1F4, 0x96B3, 0xF16F, + 0x96B4, 0xC3F7, 0x96B8, 0xC1F5, 0x96B9, 0xAB41, 0x96BB, 0xB0A6, 0x96BC, 0xD447, 0x96BF, 0xD84C, 0x96C0, 0xB3B6, 0x96C1, 0xB6AD, + 0x96C2, 0xDCA4, 0x96C3, 0xDCA6, 0x96C4, 0xB6AF, 0x96C5, 0xB6AE, 0x96C6, 0xB6B0, 0x96C7, 0xB6B1, 0x96C8, 0xDCA5, 0x96C9, 0xB96E, + 0x96CA, 0xB96F, 0x96CB, 0xB96D, 0x96CC, 0xBBDB, 0x96CD, 0xB96C, 0x96CE, 0xE0D5, 0x96D2, 0xBBDC, 0x96D3, 0xE8AC, 0x96D4, 0xEC50, + 0x96D5, 0xC04A, 0x96D6, 0xC1F6, 0x96D7, 0xF170, 0x96D8, 0xF174, 0x96D9, 0xC2F9, 0x96DA, 0xF171, 0x96DB, 0xC2FA, 0x96DC, 0xC2F8, + 0x96DD, 0xF175, 0x96DE, 0xC2FB, 0x96DF, 0xF173, 0x96E1, 0xF379, 0x96E2, 0xC2F7, 0x96E3, 0xC3F8, 0x96E5, 0xF8CD, 0x96E8, 0xAB42, + 0x96E9, 0xB3B8, 0x96EA, 0xB3B7, 0x96EF, 0xB6B2, 0x96F0, 0xDCA8, 0x96F1, 0xDCA7, 0x96F2, 0xB6B3, 0x96F5, 0xE0D9, 0x96F6, 0xB973, + 0x96F7, 0xB970, 0x96F8, 0xE0D8, 0x96F9, 0xB972, 0x96FA, 0xE0D6, 0x96FB, 0xB971, 0x96FD, 0xE0D7, 0x96FF, 0xE4BD, 0x9700, 0xBBDD, + 0x9702, 0xE8AF, 0x9704, 0xBE5D, 0x9705, 0xE8AD, 0x9706, 0xBE5E, 0x9707, 0xBE5F, 0x9708, 0xE8AE, 0x9709, 0xBE60, 0x970B, 0xEC51, + 0x970D, 0xC04E, 0x970E, 0xC04B, 0x970F, 0xC050, 0x9710, 0xEC53, 0x9711, 0xC04C, 0x9712, 0xEC52, 0x9713, 0xC04F, 0x9716, 0xC04D, + 0x9718, 0xEEF9, 0x9719, 0xEEFB, 0x971C, 0xC1F7, 0x971D, 0xEEFA, 0x971E, 0xC1F8, 0x971F, 0xEEF8, 0x9720, 0xEEF7, 0x9722, 0xF177, + 0x9723, 0xF176, 0x9724, 0xC2FC, 0x9725, 0xF178, 0x9726, 0xF37E, 0x9727, 0xC3FA, 0x9728, 0xF37D, 0x9729, 0xF37A, 0x972A, 0xC3F9, + 0x972B, 0xF37B, 0x972C, 0xF37C, 0x972E, 0xF548, 0x972F, 0xF549, 0x9730, 0xC4C5, 0x9732, 0xC553, 0x9735, 0xF66E, 0x9738, 0xC551, + 0x9739, 0xC552, 0x973A, 0xF66F, 0x973D, 0xC5B4, 0x973E, 0xC5B5, 0x973F, 0xF771, 0x9742, 0xC645, 0x9743, 0xF8CF, 0x9744, 0xC647, + 0x9746, 0xF8CE, 0x9747, 0xF8D0, 0x9748, 0xC646, 0x9749, 0xF957, 0x974B, 0xF9AD, 0x9752, 0xAB43, 0x9756, 0xB974, 0x9758, 0xE4BE, + 0x975A, 0xE8B0, 0x975B, 0xC051, 0x975C, 0xC052, 0x975E, 0xAB44, 0x9760, 0xBE61, 0x9761, 0xC3FB, 0x9762, 0xADB1, 0x9766, 0xC053, + 0x9768, 0xC5E2, 0x9769, 0xADB2, 0x976A, 0xD84D, 0x976C, 0xDCA9, 0x976E, 0xDCAB, 0x9770, 0xDCAA, 0x9772, 0xE0DD, 0x9773, 0xE0DA, + 0x9774, 0xB975, 0x9776, 0xB976, 0x9777, 0xE0DB, 0x9778, 0xE0DC, 0x977A, 0xE4C0, 0x977B, 0xE4C5, 0x977C, 0xBBDE, 0x977D, 0xE4BF, + 0x977E, 0xE4C1, 0x977F, 0xE4C8, 0x9780, 0xE4C3, 0x9781, 0xE4C7, 0x9782, 0xE4C4, 0x9783, 0xE4C2, 0x9784, 0xE4C6, 0x9785, 0xBBDF, + 0x9788, 0xE8B3, 0x978A, 0xE8B1, 0x978B, 0xBE63, 0x978D, 0xBE62, 0x978E, 0xE8B2, 0x978F, 0xBE64, 0x9794, 0xEC56, 0x9797, 0xEC55, + 0x9798, 0xC054, 0x9799, 0xEC54, 0x979A, 0xEEFC, 0x979C, 0xEEFE, 0x979D, 0xEF41, 0x979E, 0xEF40, 0x97A0, 0xC1F9, 0x97A1, 0xEEFD, + 0x97A2, 0xF1A1, 0x97A3, 0xC2FD, 0x97A4, 0xF17D, 0x97A5, 0xF1A2, 0x97A6, 0xC2FE, 0x97A8, 0xF17B, 0x97AA, 0xF17E, 0x97AB, 0xF17C, + 0x97AC, 0xF179, 0x97AD, 0xC340, 0x97AE, 0xF17A, 0x97B3, 0xF3A1, 0x97B6, 0xF3A3, 0x97B7, 0xF3A2, 0x97B9, 0xF54A, 0x97BB, 0xF54B, + 0x97BF, 0xF670, 0x97C1, 0xC5B7, 0x97C3, 0xC5B6, 0x97C4, 0xF84F, 0x97C5, 0xF850, 0x97C6, 0xC648, 0x97C7, 0xF8D1, 0x97C9, 0xC669, + 0x97CB, 0xADB3, 0x97CC, 0xB6B4, 0x97CD, 0xE4CA, 0x97CE, 0xE4C9, 0x97CF, 0xE8B5, 0x97D0, 0xE8B4, 0x97D3, 0xC1FA, 0x97D4, 0xEF43, + 0x97D5, 0xEF42, 0x97D6, 0xF1A5, 0x97D7, 0xF1A3, 0x97D8, 0xF1A6, 0x97D9, 0xF1A4, 0x97DC, 0xC3FC, 0x97DD, 0xF3A4, 0x97DE, 0xF3A5, + 0x97DF, 0xF3A6, 0x97E1, 0xF671, 0x97E3, 0xF772, 0x97E5, 0xF8D2, 0x97ED, 0xADB4, 0x97F0, 0xEC57, 0x97F1, 0xEF44, 0x97F3, 0xADB5, + 0x97F6, 0xBBE0, 0x97F8, 0xEC58, 0x97F9, 0xC341, 0x97FA, 0xF1A7, 0x97FB, 0xC3FD, 0x97FD, 0xF54C, 0x97FE, 0xF54D, 0x97FF, 0xC554, + 0x9800, 0xF851, 0x9801, 0xADB6, 0x9802, 0xB3BB, 0x9803, 0xB3BC, 0x9804, 0xD84E, 0x9805, 0xB6B5, 0x9806, 0xB6B6, 0x9807, 0xDCAC, + 0x9808, 0xB6B7, 0x980A, 0xB97A, 0x980C, 0xB97C, 0x980D, 0xE0DF, 0x980E, 0xE0E0, 0x980F, 0xE0DE, 0x9810, 0xB977, 0x9811, 0xB978, + 0x9812, 0xB97B, 0x9813, 0xB979, 0x9816, 0xE4CB, 0x9817, 0xBBE1, 0x9818, 0xBBE2, 0x981B, 0xE8BC, 0x981C, 0xBE67, 0x981D, 0xE8B7, + 0x981E, 0xE8B6, 0x9820, 0xE8BB, 0x9821, 0xBE65, 0x9824, 0xC05B, 0x9826, 0xE8B8, 0x9827, 0xE8BD, 0x9828, 0xE8BA, 0x9829, 0xE8B9, + 0x982B, 0xBE66, 0x982D, 0xC059, 0x982F, 0xEC5A, 0x9830, 0xC055, 0x9832, 0xEC5B, 0x9835, 0xEC59, 0x9837, 0xC058, 0x9838, 0xC056, + 0x9839, 0xC05A, 0x983B, 0xC057, 0x9841, 0xEF45, 0x9843, 0xEF4A, 0x9844, 0xEF46, 0x9845, 0xEF49, 0x9846, 0xC1FB, 0x9848, 0xEDD4, + 0x9849, 0xEF48, 0x984A, 0xEF47, 0x984C, 0xC344, 0x984D, 0xC342, 0x984E, 0xC345, 0x984F, 0xC343, 0x9850, 0xF1A8, 0x9851, 0xF1A9, + 0x9852, 0xF1AA, 0x9853, 0xC346, 0x9857, 0xF3AA, 0x9858, 0xC440, 0x9859, 0xF3A8, 0x985B, 0xC441, 0x985C, 0xF3A7, 0x985D, 0xF3A9, + 0x985E, 0xC3FE, 0x985F, 0xF551, 0x9860, 0xF54E, 0x9862, 0xF54F, 0x9863, 0xF550, 0x9864, 0xF672, 0x9865, 0xC556, 0x9867, 0xC555, + 0x9869, 0xF774, 0x986A, 0xF773, 0x986B, 0xC5B8, 0x986F, 0xC5E3, 0x9870, 0xC649, 0x9871, 0xC660, 0x9872, 0xF958, 0x9873, 0xF9AE, + 0x9874, 0xF9AF, 0x98A8, 0xADB7, 0x98A9, 0xDCAD, 0x98AC, 0xE0E1, 0x98AD, 0xE4CC, 0x98AE, 0xE4CD, 0x98AF, 0xBBE3, 0x98B1, 0xBBE4, + 0x98B2, 0xE8BE, 0x98B3, 0xBE68, 0x98B6, 0xC1FC, 0x98B8, 0xF1AB, 0x98BA, 0xC347, 0x98BB, 0xF3AD, 0x98BC, 0xC442, 0x98BD, 0xF3AC, + 0x98BE, 0xF3AE, 0x98BF, 0xF3AB, 0x98C0, 0xF675, 0x98C1, 0xF552, 0x98C2, 0xF553, 0x98C4, 0xC4C6, 0x98C6, 0xF674, 0x98C9, 0xF673, + 0x98CB, 0xF775, 0x98CC, 0xF9B0, 0x98DB, 0xADB8, 0x98DF, 0xADB9, 0x98E2, 0xB0A7, 0x98E3, 0xD448, 0x98E5, 0xD84F, 0x98E7, 0xB6B8, + 0x98E9, 0xB6BB, 0x98EA, 0xB6B9, 0x98EB, 0xDCAE, 0x98ED, 0xB6BD, 0x98EF, 0xB6BA, 0x98F2, 0xB6BC, 0x98F4, 0xB97E, 0x98F6, 0xE0E2, + 0x98F9, 0xE0E3, 0x98FA, 0xE8C0, 0x98FC, 0xB97D, 0x98FD, 0xB9A1, 0x98FE, 0xB9A2, 0x9900, 0xE4CF, 0x9902, 0xE4CE, 0x9903, 0xBBE5, + 0x9905, 0xBBE6, 0x9907, 0xE4D0, 0x9908, 0xE8BF, 0x9909, 0xBBE8, 0x990A, 0xBE69, 0x990C, 0xBBE7, 0x9910, 0xC05C, 0x9911, 0xE8C1, + 0x9912, 0xBE6B, 0x9913, 0xBE6A, 0x9914, 0xE8C2, 0x9915, 0xE8C5, 0x9916, 0xE8C3, 0x9917, 0xE8C4, 0x9918, 0xBE6C, 0x991A, 0xC061, + 0x991B, 0xC05F, 0x991E, 0xC05E, 0x991F, 0xEC5D, 0x9921, 0xC060, 0x9924, 0xEC5C, 0x9925, 0xEF4B, 0x9927, 0xEC5E, 0x9928, 0xC05D, + 0x9929, 0xEC5F, 0x992A, 0xEF4E, 0x992B, 0xEF4C, 0x992C, 0xEF4D, 0x992D, 0xEF52, 0x992E, 0xC34B, 0x992F, 0xEF51, 0x9930, 0xEF54, + 0x9931, 0xEF53, 0x9932, 0xEF50, 0x9933, 0xEF4F, 0x9935, 0xC1FD, 0x993A, 0xF1AE, 0x993C, 0xF1AD, 0x993D, 0xC34A, 0x993E, 0xC348, + 0x993F, 0xC349, 0x9941, 0xF1AC, 0x9943, 0xF3B1, 0x9945, 0xC443, 0x9947, 0xF3B0, 0x9948, 0xF3AF, 0x9949, 0xC444, 0x994B, 0xF558, + 0x994C, 0xF557, 0x994E, 0xF555, 0x9950, 0xF554, 0x9951, 0xC4C8, 0x9952, 0xC4C7, 0x9953, 0xF559, 0x9954, 0xF776, 0x9955, 0xC5B9, + 0x9956, 0xF677, 0x9957, 0xC557, 0x9958, 0xF676, 0x9959, 0xF556, 0x995B, 0xF777, 0x995C, 0xC5E4, 0x995E, 0xC661, 0x995F, 0xF959, + 0x9961, 0xF9B1, 0x9996, 0xADBA, 0x9997, 0xD850, 0x9998, 0xEF55, 0x9999, 0xADBB, 0x999C, 0xE4D2, 0x999D, 0xE4D1, 0x999E, 0xEC60, + 0x99A1, 0xEF57, 0x99A3, 0xEF56, 0x99A5, 0xC34C, 0x99A6, 0xF3B2, 0x99A7, 0xF3B3, 0x99A8, 0xC4C9, 0x99AB, 0xF9B2, 0x99AC, 0xB0A8, + 0x99AD, 0xB6BF, 0x99AE, 0xB6BE, 0x99AF, 0xE0E4, 0x99B0, 0xE0E6, 0x99B1, 0xB9A4, 0x99B2, 0xE0E5, 0x99B3, 0xB9A3, 0x99B4, 0xB9A5, + 0x99B5, 0xE0E7, 0x99B9, 0xE4D4, 0x99BA, 0xE4D6, 0x99BB, 0xE4D5, 0x99BD, 0xE4D8, 0x99C1, 0xBBE9, 0x99C2, 0xE4D7, 0x99C3, 0xE4D3, + 0x99C7, 0xE4D9, 0x99C9, 0xE8CC, 0x99CB, 0xE8CF, 0x99CC, 0xE8D1, 0x99CD, 0xE8C7, 0x99CE, 0xE8CB, 0x99CF, 0xE8C8, 0x99D0, 0xBE6E, + 0x99D1, 0xBE71, 0x99D2, 0xBE73, 0x99D3, 0xE8C9, 0x99D4, 0xE8CA, 0x99D5, 0xBE72, 0x99D6, 0xE8CD, 0x99D7, 0xE8D0, 0x99D8, 0xE8CE, + 0x99D9, 0xBE74, 0x99DB, 0xBE70, 0x99DC, 0xE8C6, 0x99DD, 0xBE6D, 0x99DF, 0xBE6F, 0x99E2, 0xC063, 0x99E3, 0xEC66, 0x99E4, 0xEC64, + 0x99E5, 0xEC63, 0x99E7, 0xEC69, 0x99E9, 0xEC68, 0x99EA, 0xEC67, 0x99EC, 0xEC62, 0x99ED, 0xC062, 0x99EE, 0xEC61, 0x99F0, 0xEC65, + 0x99F1, 0xC064, 0x99F4, 0xEF5A, 0x99F6, 0xEF5E, 0x99F7, 0xEF5B, 0x99F8, 0xEF5D, 0x99F9, 0xEF5C, 0x99FA, 0xEF59, 0x99FB, 0xEF5F, + 0x99FC, 0xEF62, 0x99FD, 0xEF60, 0x99FE, 0xEF61, 0x99FF, 0xC240, 0x9A01, 0xC1FE, 0x9A02, 0xEF58, 0x9A03, 0xEF63, 0x9A04, 0xF1B3, + 0x9A05, 0xF1B6, 0x9A06, 0xF1B8, 0x9A07, 0xF1B7, 0x9A09, 0xF1B1, 0x9A0A, 0xF1B5, 0x9A0B, 0xF1B0, 0x9A0D, 0xF1B2, 0x9A0E, 0xC34D, + 0x9A0F, 0xF1AF, 0x9A11, 0xF1B4, 0x9A14, 0xF3C0, 0x9A15, 0xF3B5, 0x9A16, 0xC445, 0x9A19, 0xC446, 0x9A1A, 0xF3B4, 0x9A1B, 0xF3B9, + 0x9A1C, 0xF3BF, 0x9A1D, 0xF3B7, 0x9A1E, 0xF3BE, 0x9A20, 0xF3BB, 0x9A22, 0xF3BA, 0x9A23, 0xF3BD, 0x9A24, 0xF3B8, 0x9A25, 0xF3B6, + 0x9A27, 0xF3BC, 0x9A29, 0xF560, 0x9A2A, 0xF55E, 0x9A2B, 0xC4CA, 0x9A2C, 0xF55D, 0x9A2D, 0xF563, 0x9A2E, 0xF561, 0x9A30, 0xC4CB, + 0x9A31, 0xF55C, 0x9A32, 0xF55A, 0x9A34, 0xF55B, 0x9A35, 0xC4CD, 0x9A36, 0xF55F, 0x9A37, 0xC4CC, 0x9A38, 0xF562, 0x9A39, 0xF678, + 0x9A3A, 0xF67E, 0x9A3D, 0xF679, 0x9A3E, 0xC55B, 0x9A3F, 0xF6A1, 0x9A40, 0xC55A, 0x9A41, 0xF67D, 0x9A42, 0xF67C, 0x9A43, 0xC559, + 0x9A44, 0xF67B, 0x9A45, 0xC558, 0x9A46, 0xF67A, 0x9A48, 0xF77D, 0x9A49, 0xF7A1, 0x9A4A, 0xF77E, 0x9A4C, 0xF77B, 0x9A4D, 0xC5BB, + 0x9A4E, 0xF778, 0x9A4F, 0xF77C, 0x9A50, 0xF7A3, 0x9A52, 0xF7A2, 0x9A53, 0xF779, 0x9A54, 0xF77A, 0x9A55, 0xC5BA, 0x9A56, 0xF852, + 0x9A57, 0xC5E7, 0x9A59, 0xF853, 0x9A5A, 0xC5E5, 0x9A5B, 0xC5E6, 0x9A5E, 0xF8D3, 0x9A5F, 0xC64A, 0x9A60, 0xF976, 0x9A62, 0xC66A, + 0x9A64, 0xF9B3, 0x9A65, 0xC66B, 0x9A66, 0xF9B4, 0x9A67, 0xF9B5, 0x9A68, 0xF9C3, 0x9A69, 0xF9C2, 0x9A6A, 0xC67A, 0x9A6B, 0xF9CD, + 0x9AA8, 0xB0A9, 0x9AAB, 0xE0E9, 0x9AAD, 0xE0E8, 0x9AAF, 0xBBEA, 0x9AB0, 0xBBEB, 0x9AB1, 0xE4DA, 0x9AB3, 0xE8D2, 0x9AB4, 0xEC6C, + 0x9AB7, 0xBE75, 0x9AB8, 0xC065, 0x9AB9, 0xEC6A, 0x9ABB, 0xEC6D, 0x9ABC, 0xC066, 0x9ABE, 0xEF64, 0x9ABF, 0xEC6B, 0x9AC0, 0xF1B9, + 0x9AC1, 0xC34E, 0x9AC2, 0xF3C1, 0x9AC6, 0xF566, 0x9AC7, 0xF564, 0x9ACA, 0xF565, 0x9ACD, 0xF6A2, 0x9ACF, 0xC55C, 0x9AD0, 0xF7A4, + 0x9AD1, 0xC5EA, 0x9AD2, 0xC5BC, 0x9AD3, 0xC5E8, 0x9AD4, 0xC5E9, 0x9AD5, 0xF8D4, 0x9AD6, 0xC662, 0x9AD8, 0xB0AA, 0x9ADC, 0xF1BA, + 0x9ADF, 0xD449, 0x9AE1, 0xB9A6, 0x9AE3, 0xE4DB, 0x9AE6, 0xBBEC, 0x9AE7, 0xE4DC, 0x9AEB, 0xE8D4, 0x9AEC, 0xE8D3, 0x9AED, 0xC068, + 0x9AEE, 0xBE76, 0x9AEF, 0xBE77, 0x9AF1, 0xE8D7, 0x9AF2, 0xE8D6, 0x9AF3, 0xE8D5, 0x9AF6, 0xEC6E, 0x9AF7, 0xEC71, 0x9AF9, 0xEC70, + 0x9AFA, 0xEC6F, 0x9AFB, 0xC067, 0x9AFC, 0xEF68, 0x9AFD, 0xEF66, 0x9AFE, 0xEF65, 0x9B01, 0xEF67, 0x9B03, 0xC34F, 0x9B04, 0xF1BC, + 0x9B05, 0xF1BD, 0x9B06, 0xC350, 0x9B08, 0xF1BB, 0x9B0A, 0xF3C3, 0x9B0B, 0xF3C2, 0x9B0C, 0xF3C5, 0x9B0D, 0xC447, 0x9B0E, 0xF3C4, + 0x9B10, 0xF567, 0x9B11, 0xF569, 0x9B12, 0xF568, 0x9B15, 0xF6A3, 0x9B16, 0xF6A6, 0x9B17, 0xF6A4, 0x9B18, 0xF6A5, 0x9B19, 0xF7A5, + 0x9B1A, 0xC5BD, 0x9B1E, 0xF854, 0x9B1F, 0xF855, 0x9B20, 0xF856, 0x9B22, 0xC64B, 0x9B23, 0xC663, 0x9B24, 0xF9B6, 0x9B25, 0xB0AB, + 0x9B27, 0xBE78, 0x9B28, 0xC069, 0x9B29, 0xF1BE, 0x9B2B, 0xF7A6, 0x9B2E, 0xF9C4, 0x9B2F, 0xD44A, 0x9B31, 0xC67B, 0x9B32, 0xB0AC, + 0x9B33, 0xEC72, 0x9B35, 0xF1BF, 0x9B37, 0xF3C6, 0x9B3A, 0xF6A7, 0x9B3B, 0xF7A7, 0x9B3C, 0xB0AD, 0x9B3E, 0xE4DD, 0x9B3F, 0xE4DE, + 0x9B41, 0xBBED, 0x9B42, 0xBBEE, 0x9B43, 0xE8D9, 0x9B44, 0xBE7A, 0x9B45, 0xBE79, 0x9B46, 0xE8D8, 0x9B48, 0xEF69, 0x9B4A, 0xF1C0, + 0x9B4B, 0xF1C2, 0x9B4C, 0xF1C1, 0x9B4D, 0xC353, 0x9B4E, 0xC352, 0x9B4F, 0xC351, 0x9B51, 0xC55E, 0x9B52, 0xF6A8, 0x9B54, 0xC55D, + 0x9B55, 0xF7A9, 0x9B56, 0xF7A8, 0x9B58, 0xC64C, 0x9B59, 0xF8D5, 0x9B5A, 0xB3BD, 0x9B5B, 0xE0EA, 0x9B5F, 0xE4E1, 0x9B60, 0xE4DF, + 0x9B61, 0xE4E0, 0x9B64, 0xE8E2, 0x9B66, 0xE8DD, 0x9B67, 0xE8DA, 0x9B68, 0xE8E1, 0x9B6C, 0xE8E3, 0x9B6F, 0xBE7C, 0x9B70, 0xE8E0, + 0x9B71, 0xE8DC, 0x9B74, 0xE8DB, 0x9B75, 0xE8DF, 0x9B76, 0xE8DE, 0x9B77, 0xBE7B, 0x9B7A, 0xEC7D, 0x9B7B, 0xEC78, 0x9B7C, 0xEC76, + 0x9B7D, 0xECA1, 0x9B7E, 0xEC77, 0x9B80, 0xEC73, 0x9B82, 0xEC79, 0x9B85, 0xEC74, 0x9B86, 0xEF72, 0x9B87, 0xEC75, 0x9B88, 0xECA2, + 0x9B90, 0xEC7C, 0x9B91, 0xC06A, 0x9B92, 0xEC7B, 0x9B93, 0xEC7A, 0x9B95, 0xEC7E, 0x9B9A, 0xEF6A, 0x9B9B, 0xEF6D, 0x9B9E, 0xEF6C, + 0x9BA0, 0xEF74, 0x9BA1, 0xEF6F, 0x9BA2, 0xEF73, 0x9BA4, 0xEF71, 0x9BA5, 0xEF70, 0x9BA6, 0xEF6E, 0x9BA8, 0xEF6B, 0x9BAA, 0xC243, + 0x9BAB, 0xC242, 0x9BAD, 0xC244, 0x9BAE, 0xC241, 0x9BAF, 0xEF75, 0x9BB5, 0xF1C8, 0x9BB6, 0xF1CB, 0x9BB8, 0xF1C9, 0x9BB9, 0xF1CD, + 0x9BBD, 0xF1CE, 0x9BBF, 0xF1C6, 0x9BC0, 0xC358, 0x9BC1, 0xF1C7, 0x9BC3, 0xF1C5, 0x9BC4, 0xF1CC, 0x9BC6, 0xF1C4, 0x9BC7, 0xF1C3, + 0x9BC8, 0xC357, 0x9BC9, 0xC355, 0x9BCA, 0xC354, 0x9BD3, 0xF1CA, 0x9BD4, 0xF3CF, 0x9BD5, 0xF3D5, 0x9BD6, 0xC44A, 0x9BD7, 0xF3D0, + 0x9BD9, 0xF3D3, 0x9BDA, 0xF3D7, 0x9BDB, 0xC44B, 0x9BDC, 0xF3D2, 0x9BDE, 0xF3CA, 0x9BE0, 0xF3C9, 0x9BE1, 0xF3D6, 0x9BE2, 0xF3CD, + 0x9BE4, 0xF3CB, 0x9BE5, 0xF3D4, 0x9BE6, 0xF3CC, 0x9BE7, 0xC449, 0x9BE8, 0xC448, 0x9BEA, 0xF3C7, 0x9BEB, 0xF3C8, 0x9BEC, 0xF3D1, + 0x9BF0, 0xF3CE, 0x9BF7, 0xF56C, 0x9BF8, 0xF56F, 0x9BFD, 0xC356, 0x9C05, 0xF56D, 0x9C06, 0xF573, 0x9C07, 0xF571, 0x9C08, 0xF56B, + 0x9C09, 0xF576, 0x9C0B, 0xF56A, 0x9C0D, 0xC4CF, 0x9C0E, 0xF572, 0x9C12, 0xF56E, 0x9C13, 0xC4CE, 0x9C14, 0xF575, 0x9C17, 0xF574, + 0x9C1C, 0xF6AB, 0x9C1D, 0xF6AA, 0x9C21, 0xF6B1, 0x9C23, 0xF6AD, 0x9C24, 0xF6B0, 0x9C25, 0xC560, 0x9C28, 0xF6AE, 0x9C29, 0xF6AF, + 0x9C2B, 0xF6A9, 0x9C2C, 0xF6AC, 0x9C2D, 0xC55F, 0x9C31, 0xC5BF, 0x9C32, 0xF7B4, 0x9C33, 0xF7AF, 0x9C34, 0xF7B3, 0x9C36, 0xF7B6, + 0x9C37, 0xF7B2, 0x9C39, 0xF7AE, 0x9C3B, 0xC5C1, 0x9C3C, 0xF7B1, 0x9C3D, 0xF7B5, 0x9C3E, 0xC5C0, 0x9C3F, 0xF7AC, 0x9C40, 0xF570, + 0x9C41, 0xF7B0, 0x9C44, 0xF7AD, 0x9C46, 0xF7AA, 0x9C48, 0xF7AB, 0x9C49, 0xC5BE, 0x9C4A, 0xF85A, 0x9C4B, 0xF85C, 0x9C4C, 0xF85F, + 0x9C4D, 0xF85B, 0x9C4E, 0xF860, 0x9C50, 0xF859, 0x9C52, 0xF857, 0x9C54, 0xC5EB, 0x9C55, 0xF85D, 0x9C56, 0xC5ED, 0x9C57, 0xC5EC, + 0x9C58, 0xF858, 0x9C59, 0xF85E, 0x9C5E, 0xF8DA, 0x9C5F, 0xC64D, 0x9C60, 0xF8DB, 0x9C62, 0xF8D9, 0x9C63, 0xF8D6, 0x9C66, 0xF8D8, + 0x9C67, 0xF8D7, 0x9C68, 0xF95A, 0x9C6D, 0xF95C, 0x9C6E, 0xF95B, 0x9C71, 0xF979, 0x9C73, 0xF978, 0x9C74, 0xF977, 0x9C75, 0xF97A, + 0x9C77, 0xC673, 0x9C78, 0xC674, 0x9C79, 0xF9CA, 0x9C7A, 0xF9CE, 0x9CE5, 0xB3BE, 0x9CE6, 0xDCAF, 0x9CE7, 0xE0ED, 0x9CE9, 0xB9A7, + 0x9CEA, 0xE0EB, 0x9CED, 0xE0EC, 0x9CF1, 0xE4E2, 0x9CF2, 0xE4E3, 0x9CF3, 0xBBF1, 0x9CF4, 0xBBEF, 0x9CF5, 0xE4E4, 0x9CF6, 0xBBF0, + 0x9CF7, 0xE8E8, 0x9CF9, 0xE8EB, 0x9CFA, 0xE8E5, 0x9CFB, 0xE8EC, 0x9CFC, 0xE8E4, 0x9CFD, 0xE8E6, 0x9CFF, 0xE8E7, 0x9D00, 0xE8EA, + 0x9D03, 0xBEA1, 0x9D04, 0xE8EF, 0x9D05, 0xE8EE, 0x9D06, 0xBE7D, 0x9D07, 0xE8E9, 0x9D08, 0xE8ED, 0x9D09, 0xBE7E, 0x9D10, 0xECAC, + 0x9D12, 0xC06F, 0x9D14, 0xECA7, 0x9D15, 0xC06B, 0x9D17, 0xECA4, 0x9D18, 0xECAA, 0x9D19, 0xECAD, 0x9D1B, 0xC070, 0x9D1D, 0xECA9, + 0x9D1E, 0xECA6, 0x9D1F, 0xECAE, 0x9D20, 0xECA5, 0x9D22, 0xECAB, 0x9D23, 0xC06C, 0x9D25, 0xECA3, 0x9D26, 0xC06D, 0x9D28, 0xC06E, + 0x9D29, 0xECA8, 0x9D2D, 0xEFA9, 0x9D2E, 0xEF7A, 0x9D2F, 0xEF7B, 0x9D30, 0xEF7E, 0x9D31, 0xEF7C, 0x9D33, 0xEF76, 0x9D36, 0xEF79, + 0x9D37, 0xEFA5, 0x9D38, 0xEF7D, 0x9D3B, 0xC245, 0x9D3D, 0xEFA7, 0x9D3E, 0xEFA4, 0x9D3F, 0xC246, 0x9D40, 0xEFA6, 0x9D41, 0xEF77, + 0x9D42, 0xEFA2, 0x9D43, 0xEFA3, 0x9D45, 0xEFA1, 0x9D4A, 0xF1D2, 0x9D4B, 0xF1D4, 0x9D4C, 0xF1D7, 0x9D4F, 0xF1D1, 0x9D51, 0xC359, + 0x9D52, 0xF1D9, 0x9D53, 0xF1D0, 0x9D54, 0xF1DA, 0x9D56, 0xF1D6, 0x9D57, 0xF1D8, 0x9D58, 0xF1DC, 0x9D59, 0xF1D5, 0x9D5A, 0xF1DD, + 0x9D5B, 0xF1D3, 0x9D5C, 0xF1CF, 0x9D5D, 0xC35A, 0x9D5F, 0xF1DB, 0x9D60, 0xC35B, 0x9D61, 0xC44D, 0x9D67, 0xEF78, 0x9D68, 0xF3F1, + 0x9D69, 0xF3E8, 0x9D6A, 0xC44F, 0x9D6B, 0xF3E4, 0x9D6C, 0xC450, 0x9D6F, 0xF3ED, 0x9D70, 0xF3E7, 0x9D71, 0xF3DD, 0x9D72, 0xC44E, + 0x9D73, 0xF3EA, 0x9D74, 0xF3E5, 0x9D75, 0xF3E6, 0x9D77, 0xF3D8, 0x9D78, 0xF3DF, 0x9D79, 0xF3EE, 0x9D7B, 0xF3EB, 0x9D7D, 0xF3E3, + 0x9D7F, 0xF3EF, 0x9D80, 0xF3DE, 0x9D81, 0xF3D9, 0x9D82, 0xF3EC, 0x9D84, 0xF3DB, 0x9D85, 0xF3E9, 0x9D86, 0xF3E0, 0x9D87, 0xF3F0, + 0x9D88, 0xF3DC, 0x9D89, 0xC44C, 0x9D8A, 0xF3DA, 0x9D8B, 0xF3E1, 0x9D8C, 0xF3E2, 0x9D90, 0xF57D, 0x9D92, 0xF57B, 0x9D94, 0xF5A2, + 0x9D96, 0xF5AE, 0x9D97, 0xF5A5, 0x9D98, 0xF57C, 0x9D99, 0xF578, 0x9D9A, 0xF5A7, 0x9D9B, 0xF57E, 0x9D9C, 0xF5A3, 0x9D9D, 0xF57A, + 0x9D9E, 0xF5AA, 0x9D9F, 0xF577, 0x9DA0, 0xF5A1, 0x9DA1, 0xF5A6, 0x9DA2, 0xF5A8, 0x9DA3, 0xF5AB, 0x9DA4, 0xF579, 0x9DA6, 0xF5AF, + 0x9DA7, 0xF5B0, 0x9DA8, 0xF5A9, 0x9DA9, 0xF5AD, 0x9DAA, 0xF5A4, 0x9DAC, 0xF6C1, 0x9DAD, 0xF6C4, 0x9DAF, 0xC561, 0x9DB1, 0xF6C3, + 0x9DB2, 0xF6C8, 0x9DB3, 0xF6C6, 0x9DB4, 0xC562, 0x9DB5, 0xF6BD, 0x9DB6, 0xF6B3, 0x9DB7, 0xF6B2, 0x9DB8, 0xC564, 0x9DB9, 0xF6BF, + 0x9DBA, 0xF6C0, 0x9DBB, 0xF6BC, 0x9DBC, 0xF6B4, 0x9DBE, 0xF6B9, 0x9DBF, 0xF5AC, 0x9DC1, 0xF6B5, 0x9DC2, 0xC563, 0x9DC3, 0xF6BB, + 0x9DC5, 0xF6BA, 0x9DC7, 0xF6B6, 0x9DC8, 0xF6C2, 0x9DCA, 0xF6B7, 0x9DCB, 0xF7BB, 0x9DCC, 0xF6C5, 0x9DCD, 0xF6C7, 0x9DCE, 0xF6BE, + 0x9DCF, 0xF6B8, 0x9DD0, 0xF7BC, 0x9DD1, 0xF7BE, 0x9DD2, 0xF7B8, 0x9DD3, 0xC5C2, 0x9DD5, 0xF7C5, 0x9DD6, 0xF7C3, 0x9DD7, 0xC5C3, + 0x9DD8, 0xF7C2, 0x9DD9, 0xF7C1, 0x9DDA, 0xF7BA, 0x9DDB, 0xF7B7, 0x9DDC, 0xF7BD, 0x9DDD, 0xF7C6, 0x9DDE, 0xF7B9, 0x9DDF, 0xF7BF, + 0x9DE1, 0xF869, 0x9DE2, 0xF86E, 0x9DE3, 0xF864, 0x9DE4, 0xF867, 0x9DE5, 0xC5EE, 0x9DE6, 0xF86B, 0x9DE8, 0xF872, 0x9DE9, 0xF7C0, + 0x9DEB, 0xF865, 0x9DEC, 0xF86F, 0x9DED, 0xF873, 0x9DEE, 0xF86A, 0x9DEF, 0xF863, 0x9DF0, 0xF86D, 0x9DF2, 0xF86C, 0x9DF3, 0xF871, + 0x9DF4, 0xF870, 0x9DF5, 0xF7C4, 0x9DF6, 0xF868, 0x9DF7, 0xF862, 0x9DF8, 0xF866, 0x9DF9, 0xC64E, 0x9DFA, 0xC64F, 0x9DFB, 0xF861, + 0x9DFD, 0xF8E6, 0x9DFE, 0xF8DD, 0x9DFF, 0xF8E5, 0x9E00, 0xF8E2, 0x9E01, 0xF8E3, 0x9E02, 0xF8DC, 0x9E03, 0xF8DF, 0x9E04, 0xF8E7, + 0x9E05, 0xF8E1, 0x9E06, 0xF8E0, 0x9E07, 0xF8DE, 0x9E09, 0xF8E4, 0x9E0B, 0xF95D, 0x9E0D, 0xF95E, 0x9E0F, 0xF960, 0x9E10, 0xF95F, + 0x9E11, 0xF962, 0x9E12, 0xF961, 0x9E13, 0xF97C, 0x9E14, 0xF97B, 0x9E15, 0xF9B7, 0x9E17, 0xF9B8, 0x9E19, 0xF9C5, 0x9E1A, 0xC678, + 0x9E1B, 0xC67C, 0x9E1D, 0xF9CF, 0x9E1E, 0xC67D, 0x9E75, 0xB3BF, 0x9E79, 0xC4D0, 0x9E7A, 0xF6C9, 0x9E7C, 0xC650, 0x9E7D, 0xC651, + 0x9E7F, 0xB3C0, 0x9E80, 0xE0EE, 0x9E82, 0xB9A8, 0x9E83, 0xE8F0, 0x9E86, 0xECB0, 0x9E87, 0xECB1, 0x9E88, 0xECAF, 0x9E89, 0xEFAB, + 0x9E8A, 0xEFAA, 0x9E8B, 0xC247, 0x9E8C, 0xF1DF, 0x9E8D, 0xEFAC, 0x9E8E, 0xF1DE, 0x9E91, 0xF3F3, 0x9E92, 0xC451, 0x9E93, 0xC453, + 0x9E94, 0xF3F2, 0x9E97, 0xC452, 0x9E99, 0xF5B1, 0x9E9A, 0xF5B3, 0x9E9B, 0xF5B2, 0x9E9C, 0xF6CA, 0x9E9D, 0xC565, 0x9E9F, 0xC5EF, + 0x9EA0, 0xF8E8, 0x9EA1, 0xF963, 0x9EA4, 0xF9D2, 0x9EA5, 0xB3C1, 0x9EA7, 0xE4E5, 0x9EA9, 0xBEA2, 0x9EAD, 0xECB3, 0x9EAE, 0xECB2, + 0x9EB0, 0xEFAD, 0x9EB4, 0xC454, 0x9EB5, 0xC4D1, 0x9EB6, 0xF7C7, 0x9EB7, 0xF9CB, 0x9EBB, 0xB3C2, 0x9EBC, 0xBBF2, 0x9EBE, 0xBEA3, + 0x9EC0, 0xF3F4, 0x9EC2, 0xF874, 0x9EC3, 0xB6C0, 0x9EC8, 0xEFAE, 0x9ECC, 0xC664, 0x9ECD, 0xB6C1, 0x9ECE, 0xBEA4, 0x9ECF, 0xC248, + 0x9ED0, 0xF875, 0x9ED1, 0xB6C2, 0x9ED3, 0xE8F1, 0x9ED4, 0xC072, 0x9ED5, 0xECB4, 0x9ED6, 0xECB5, 0x9ED8, 0xC071, 0x9EDA, 0xEFAF, + 0x9EDB, 0xC24C, 0x9EDC, 0xC24A, 0x9EDD, 0xC24B, 0x9EDE, 0xC249, 0x9EDF, 0xF1E0, 0x9EE0, 0xC35C, 0x9EE4, 0xF5B5, 0x9EE5, 0xF5B4, + 0x9EE6, 0xF5B7, 0x9EE7, 0xF5B6, 0x9EE8, 0xC4D2, 0x9EEB, 0xF6CB, 0x9EED, 0xF6CD, 0x9EEE, 0xF6CC, 0x9EEF, 0xC566, 0x9EF0, 0xF7C8, + 0x9EF2, 0xF876, 0x9EF3, 0xF877, 0x9EF4, 0xC5F0, 0x9EF5, 0xF964, 0x9EF6, 0xF97D, 0x9EF7, 0xC675, 0x9EF9, 0xDCB0, 0x9EFA, 0xECB6, + 0x9EFB, 0xEFB0, 0x9EFC, 0xF3F5, 0x9EFD, 0xE0EF, 0x9EFF, 0xEFB1, 0x9F00, 0xF1E2, 0x9F01, 0xF1E1, 0x9F06, 0xF878, 0x9F07, 0xC652, + 0x9F09, 0xF965, 0x9F0A, 0xF97E, 0x9F0E, 0xB9A9, 0x9F0F, 0xE8F2, 0x9F10, 0xE8F3, 0x9F12, 0xECB7, 0x9F13, 0xB9AA, 0x9F15, 0xC35D, + 0x9F16, 0xF1E3, 0x9F18, 0xF6CF, 0x9F19, 0xC567, 0x9F1A, 0xF6D0, 0x9F1B, 0xF6CE, 0x9F1C, 0xF879, 0x9F1E, 0xF8E9, 0x9F20, 0xB9AB, + 0x9F22, 0xEFB4, 0x9F23, 0xEFB3, 0x9F24, 0xEFB2, 0x9F25, 0xF1E4, 0x9F28, 0xF1E8, 0x9F29, 0xF1E7, 0x9F2A, 0xF1E6, 0x9F2B, 0xF1E5, + 0x9F2C, 0xC35E, 0x9F2D, 0xF3F6, 0x9F2E, 0xF5B9, 0x9F2F, 0xC4D3, 0x9F30, 0xF5B8, 0x9F31, 0xF6D1, 0x9F32, 0xF7CB, 0x9F33, 0xF7CA, + 0x9F34, 0xC5C4, 0x9F35, 0xF7C9, 0x9F36, 0xF87C, 0x9F37, 0xF87B, 0x9F38, 0xF87A, 0x9F3B, 0xBBF3, 0x9F3D, 0xECB8, 0x9F3E, 0xC24D, + 0x9F40, 0xF3F7, 0x9F41, 0xF3F8, 0x9F42, 0xF7CC, 0x9F43, 0xF87D, 0x9F46, 0xF8EA, 0x9F47, 0xF966, 0x9F48, 0xF9B9, 0x9F49, 0xF9D4, + 0x9F4A, 0xBBF4, 0x9F4B, 0xC24E, 0x9F4C, 0xF1E9, 0x9F4D, 0xF3F9, 0x9F4E, 0xF6D2, 0x9F4F, 0xF87E, 0x9F52, 0xBEA6, 0x9F54, 0xEFB5, + 0x9F55, 0xF1EA, 0x9F56, 0xF3FA, 0x9F57, 0xF3FB, 0x9F58, 0xF3FC, 0x9F59, 0xF5BE, 0x9F5B, 0xF5BA, 0x9F5C, 0xC568, 0x9F5D, 0xF5BD, + 0x9F5E, 0xF5BC, 0x9F5F, 0xC4D4, 0x9F60, 0xF5BB, 0x9F61, 0xC4D6, 0x9F63, 0xC4D5, 0x9F64, 0xF6D4, 0x9F65, 0xF6D3, 0x9F66, 0xC569, + 0x9F67, 0xC56A, 0x9F6A, 0xC5C6, 0x9F6B, 0xF7CD, 0x9F6C, 0xC5C5, 0x9F6E, 0xF8A3, 0x9F6F, 0xF8A4, 0x9F70, 0xF8A2, 0x9F71, 0xF8A1, + 0x9F72, 0xC654, 0x9F74, 0xF8EB, 0x9F75, 0xF8EC, 0x9F76, 0xF8ED, 0x9F77, 0xC653, 0x9F78, 0xF967, 0x9F79, 0xF96A, 0x9F7A, 0xF969, + 0x9F7B, 0xF968, 0x9F7E, 0xF9D3, 0x9F8D, 0xC073, 0x9F90, 0xC365, 0x9F91, 0xF5BF, 0x9F92, 0xF6D5, 0x9F94, 0xC5C7, 0x9F95, 0xF7CE, + 0x9F98, 0xF9D5, 0x9F9C, 0xC074, 0x9FA0, 0xEFB6, 0x9FA2, 0xF7CF, 0x9FA4, 0xF9A1, 0xFA0C, 0xC94A, 0xFA0D, 0xDDFC, 0xFE30, 0xA14A, + 0xFE31, 0xA157, 0xFE33, 0xA159, 0xFE34, 0xA15B, 0xFE35, 0xA15F, 0xFE36, 0xA160, 0xFE37, 0xA163, 0xFE38, 0xA164, 0xFE39, 0xA167, + 0xFE3A, 0xA168, 0xFE3B, 0xA16B, 0xFE3C, 0xA16C, 0xFE3D, 0xA16F, 0xFE3E, 0xA170, 0xFE3F, 0xA173, 0xFE40, 0xA174, 0xFE41, 0xA177, + 0xFE42, 0xA178, 0xFE43, 0xA17B, 0xFE44, 0xA17C, 0xFE49, 0xA1C6, 0xFE4A, 0xA1C7, 0xFE4B, 0xA1CA, 0xFE4C, 0xA1CB, 0xFE4D, 0xA1C8, + 0xFE4E, 0xA1C9, 0xFE4F, 0xA15C, 0xFE50, 0xA14D, 0xFE51, 0xA14E, 0xFE52, 0xA14F, 0xFE54, 0xA151, 0xFE55, 0xA152, 0xFE56, 0xA153, + 0xFE57, 0xA154, 0xFE59, 0xA17D, 0xFE5A, 0xA17E, 0xFE5B, 0xA1A1, 0xFE5C, 0xA1A2, 0xFE5D, 0xA1A3, 0xFE5E, 0xA1A4, 0xFE5F, 0xA1CC, + 0xFE60, 0xA1CD, 0xFE61, 0xA1CE, 0xFE62, 0xA1DE, 0xFE63, 0xA1DF, 0xFE64, 0xA1E0, 0xFE65, 0xA1E1, 0xFE66, 0xA1E2, 0xFE68, 0xA242, + 0xFE69, 0xA24C, 0xFE6A, 0xA24D, 0xFE6B, 0xA24E, 0xFF01, 0xA149, 0xFF03, 0xA1AD, 0xFF04, 0xA243, 0xFF05, 0xA248, 0xFF06, 0xA1AE, + 0xFF08, 0xA15D, 0xFF09, 0xA15E, 0xFF0A, 0xA1AF, 0xFF0B, 0xA1CF, 0xFF0C, 0xA141, 0xFF0D, 0xA1D0, 0xFF0E, 0xA144, 0xFF0F, 0xA1FE, + 0xFF10, 0xA2AF, 0xFF11, 0xA2B0, 0xFF12, 0xA2B1, 0xFF13, 0xA2B2, 0xFF14, 0xA2B3, 0xFF15, 0xA2B4, 0xFF16, 0xA2B5, 0xFF17, 0xA2B6, + 0xFF18, 0xA2B7, 0xFF19, 0xA2B8, 0xFF1A, 0xA147, 0xFF1B, 0xA146, 0xFF1C, 0xA1D5, 0xFF1D, 0xA1D7, 0xFF1E, 0xA1D6, 0xFF1F, 0xA148, + 0xFF20, 0xA249, 0xFF21, 0xA2CF, 0xFF22, 0xA2D0, 0xFF23, 0xA2D1, 0xFF24, 0xA2D2, 0xFF25, 0xA2D3, 0xFF26, 0xA2D4, 0xFF27, 0xA2D5, + 0xFF28, 0xA2D6, 0xFF29, 0xA2D7, 0xFF2A, 0xA2D8, 0xFF2B, 0xA2D9, 0xFF2C, 0xA2DA, 0xFF2D, 0xA2DB, 0xFF2E, 0xA2DC, 0xFF2F, 0xA2DD, + 0xFF30, 0xA2DE, 0xFF31, 0xA2DF, 0xFF32, 0xA2E0, 0xFF33, 0xA2E1, 0xFF34, 0xA2E2, 0xFF35, 0xA2E3, 0xFF36, 0xA2E4, 0xFF37, 0xA2E5, + 0xFF38, 0xA2E6, 0xFF39, 0xA2E7, 0xFF3A, 0xA2E8, 0xFF3C, 0xA240, 0xFF3F, 0xA1C4, 0xFF41, 0xA2E9, 0xFF42, 0xA2EA, 0xFF43, 0xA2EB, + 0xFF44, 0xA2EC, 0xFF45, 0xA2ED, 0xFF46, 0xA2EE, 0xFF47, 0xA2EF, 0xFF48, 0xA2F0, 0xFF49, 0xA2F1, 0xFF4A, 0xA2F2, 0xFF4B, 0xA2F3, + 0xFF4C, 0xA2F4, 0xFF4D, 0xA2F5, 0xFF4E, 0xA2F6, 0xFF4F, 0xA2F7, 0xFF50, 0xA2F8, 0xFF51, 0xA2F9, 0xFF52, 0xA2FA, 0xFF53, 0xA2FB, + 0xFF54, 0xA2FC, 0xFF55, 0xA2FD, 0xFF56, 0xA2FE, 0xFF57, 0xA340, 0xFF58, 0xA341, 0xFF59, 0xA342, 0xFF5A, 0xA343, 0xFF5B, 0xA161, + 0xFF5C, 0xA155, 0xFF5D, 0xA162, 0xFF5E, 0xA1E3, 0xFFE0, 0xA246, 0xFFE1, 0xA247, 0xFFE3, 0xA1C3, 0xFFE5, 0xA244, 0, 0 +}; + +static +const WCHAR oem2uni950[] = { /* Big5 --> Unicode pairs */ + 0xA140, 0x3000, 0xA141, 0xFF0C, 0xA142, 0x3001, 0xA143, 0x3002, 0xA144, 0xFF0E, 0xA145, 0x2027, 0xA146, 0xFF1B, 0xA147, 0xFF1A, + 0xA148, 0xFF1F, 0xA149, 0xFF01, 0xA14A, 0xFE30, 0xA14B, 0x2026, 0xA14C, 0x2025, 0xA14D, 0xFE50, 0xA14E, 0xFE51, 0xA14F, 0xFE52, + 0xA150, 0x00B7, 0xA151, 0xFE54, 0xA152, 0xFE55, 0xA153, 0xFE56, 0xA154, 0xFE57, 0xA155, 0xFF5C, 0xA156, 0x2013, 0xA157, 0xFE31, + 0xA158, 0x2014, 0xA159, 0xFE33, 0xA15A, 0x2574, 0xA15B, 0xFE34, 0xA15C, 0xFE4F, 0xA15D, 0xFF08, 0xA15E, 0xFF09, 0xA15F, 0xFE35, + 0xA160, 0xFE36, 0xA161, 0xFF5B, 0xA162, 0xFF5D, 0xA163, 0xFE37, 0xA164, 0xFE38, 0xA165, 0x3014, 0xA166, 0x3015, 0xA167, 0xFE39, + 0xA168, 0xFE3A, 0xA169, 0x3010, 0xA16A, 0x3011, 0xA16B, 0xFE3B, 0xA16C, 0xFE3C, 0xA16D, 0x300A, 0xA16E, 0x300B, 0xA16F, 0xFE3D, + 0xA170, 0xFE3E, 0xA171, 0x3008, 0xA172, 0x3009, 0xA173, 0xFE3F, 0xA174, 0xFE40, 0xA175, 0x300C, 0xA176, 0x300D, 0xA177, 0xFE41, + 0xA178, 0xFE42, 0xA179, 0x300E, 0xA17A, 0x300F, 0xA17B, 0xFE43, 0xA17C, 0xFE44, 0xA17D, 0xFE59, 0xA17E, 0xFE5A, 0xA1A1, 0xFE5B, + 0xA1A2, 0xFE5C, 0xA1A3, 0xFE5D, 0xA1A4, 0xFE5E, 0xA1A5, 0x2018, 0xA1A6, 0x2019, 0xA1A7, 0x201C, 0xA1A8, 0x201D, 0xA1A9, 0x301D, + 0xA1AA, 0x301E, 0xA1AB, 0x2035, 0xA1AC, 0x2032, 0xA1AD, 0xFF03, 0xA1AE, 0xFF06, 0xA1AF, 0xFF0A, 0xA1B0, 0x203B, 0xA1B1, 0x00A7, + 0xA1B2, 0x3003, 0xA1B3, 0x25CB, 0xA1B4, 0x25CF, 0xA1B5, 0x25B3, 0xA1B6, 0x25B2, 0xA1B7, 0x25CE, 0xA1B8, 0x2606, 0xA1B9, 0x2605, + 0xA1BA, 0x25C7, 0xA1BB, 0x25C6, 0xA1BC, 0x25A1, 0xA1BD, 0x25A0, 0xA1BE, 0x25BD, 0xA1BF, 0x25BC, 0xA1C0, 0x32A3, 0xA1C1, 0x2105, + 0xA1C2, 0x00AF, 0xA1C3, 0xFFE3, 0xA1C4, 0xFF3F, 0xA1C5, 0x02CD, 0xA1C6, 0xFE49, 0xA1C7, 0xFE4A, 0xA1C8, 0xFE4D, 0xA1C9, 0xFE4E, + 0xA1CA, 0xFE4B, 0xA1CB, 0xFE4C, 0xA1CC, 0xFE5F, 0xA1CD, 0xFE60, 0xA1CE, 0xFE61, 0xA1CF, 0xFF0B, 0xA1D0, 0xFF0D, 0xA1D1, 0x00D7, + 0xA1D2, 0x00F7, 0xA1D3, 0x00B1, 0xA1D4, 0x221A, 0xA1D5, 0xFF1C, 0xA1D6, 0xFF1E, 0xA1D7, 0xFF1D, 0xA1D8, 0x2266, 0xA1D9, 0x2267, + 0xA1DA, 0x2260, 0xA1DB, 0x221E, 0xA1DC, 0x2252, 0xA1DD, 0x2261, 0xA1DE, 0xFE62, 0xA1DF, 0xFE63, 0xA1E0, 0xFE64, 0xA1E1, 0xFE65, + 0xA1E2, 0xFE66, 0xA1E3, 0xFF5E, 0xA1E4, 0x2229, 0xA1E5, 0x222A, 0xA1E6, 0x22A5, 0xA1E7, 0x2220, 0xA1E8, 0x221F, 0xA1E9, 0x22BF, + 0xA1EA, 0x33D2, 0xA1EB, 0x33D1, 0xA1EC, 0x222B, 0xA1ED, 0x222E, 0xA1EE, 0x2235, 0xA1EF, 0x2234, 0xA1F0, 0x2640, 0xA1F1, 0x2642, + 0xA1F2, 0x2295, 0xA1F3, 0x2299, 0xA1F4, 0x2191, 0xA1F5, 0x2193, 0xA1F6, 0x2190, 0xA1F7, 0x2192, 0xA1F8, 0x2196, 0xA1F9, 0x2197, + 0xA1FA, 0x2199, 0xA1FB, 0x2198, 0xA1FC, 0x2225, 0xA1FD, 0x2223, 0xA1FE, 0xFF0F, 0xA240, 0xFF3C, 0xA241, 0x2215, 0xA242, 0xFE68, + 0xA243, 0xFF04, 0xA244, 0xFFE5, 0xA245, 0x3012, 0xA246, 0xFFE0, 0xA247, 0xFFE1, 0xA248, 0xFF05, 0xA249, 0xFF20, 0xA24A, 0x2103, + 0xA24B, 0x2109, 0xA24C, 0xFE69, 0xA24D, 0xFE6A, 0xA24E, 0xFE6B, 0xA24F, 0x33D5, 0xA250, 0x339C, 0xA251, 0x339D, 0xA252, 0x339E, + 0xA253, 0x33CE, 0xA254, 0x33A1, 0xA255, 0x338E, 0xA256, 0x338F, 0xA257, 0x33C4, 0xA258, 0x00B0, 0xA259, 0x5159, 0xA25A, 0x515B, + 0xA25B, 0x515E, 0xA25C, 0x515D, 0xA25D, 0x5161, 0xA25E, 0x5163, 0xA25F, 0x55E7, 0xA260, 0x74E9, 0xA261, 0x7CCE, 0xA262, 0x2581, + 0xA263, 0x2582, 0xA264, 0x2583, 0xA265, 0x2584, 0xA266, 0x2585, 0xA267, 0x2586, 0xA268, 0x2587, 0xA269, 0x2588, 0xA26A, 0x258F, + 0xA26B, 0x258E, 0xA26C, 0x258D, 0xA26D, 0x258C, 0xA26E, 0x258B, 0xA26F, 0x258A, 0xA270, 0x2589, 0xA271, 0x253C, 0xA272, 0x2534, + 0xA273, 0x252C, 0xA274, 0x2524, 0xA275, 0x251C, 0xA276, 0x2594, 0xA277, 0x2500, 0xA278, 0x2502, 0xA279, 0x2595, 0xA27A, 0x250C, + 0xA27B, 0x2510, 0xA27C, 0x2514, 0xA27D, 0x2518, 0xA27E, 0x256D, 0xA2A1, 0x256E, 0xA2A2, 0x2570, 0xA2A3, 0x256F, 0xA2A4, 0x2550, + 0xA2A5, 0x255E, 0xA2A6, 0x256A, 0xA2A7, 0x2561, 0xA2A8, 0x25E2, 0xA2A9, 0x25E3, 0xA2AA, 0x25E5, 0xA2AB, 0x25E4, 0xA2AC, 0x2571, + 0xA2AD, 0x2572, 0xA2AE, 0x2573, 0xA2AF, 0xFF10, 0xA2B0, 0xFF11, 0xA2B1, 0xFF12, 0xA2B2, 0xFF13, 0xA2B3, 0xFF14, 0xA2B4, 0xFF15, + 0xA2B5, 0xFF16, 0xA2B6, 0xFF17, 0xA2B7, 0xFF18, 0xA2B8, 0xFF19, 0xA2B9, 0x2160, 0xA2BA, 0x2161, 0xA2BB, 0x2162, 0xA2BC, 0x2163, + 0xA2BD, 0x2164, 0xA2BE, 0x2165, 0xA2BF, 0x2166, 0xA2C0, 0x2167, 0xA2C1, 0x2168, 0xA2C2, 0x2169, 0xA2C3, 0x3021, 0xA2C4, 0x3022, + 0xA2C5, 0x3023, 0xA2C6, 0x3024, 0xA2C7, 0x3025, 0xA2C8, 0x3026, 0xA2C9, 0x3027, 0xA2CA, 0x3028, 0xA2CB, 0x3029, 0xA2CC, 0x5341, + 0xA2CD, 0x5344, 0xA2CE, 0x5345, 0xA2CF, 0xFF21, 0xA2D0, 0xFF22, 0xA2D1, 0xFF23, 0xA2D2, 0xFF24, 0xA2D3, 0xFF25, 0xA2D4, 0xFF26, + 0xA2D5, 0xFF27, 0xA2D6, 0xFF28, 0xA2D7, 0xFF29, 0xA2D8, 0xFF2A, 0xA2D9, 0xFF2B, 0xA2DA, 0xFF2C, 0xA2DB, 0xFF2D, 0xA2DC, 0xFF2E, + 0xA2DD, 0xFF2F, 0xA2DE, 0xFF30, 0xA2DF, 0xFF31, 0xA2E0, 0xFF32, 0xA2E1, 0xFF33, 0xA2E2, 0xFF34, 0xA2E3, 0xFF35, 0xA2E4, 0xFF36, + 0xA2E5, 0xFF37, 0xA2E6, 0xFF38, 0xA2E7, 0xFF39, 0xA2E8, 0xFF3A, 0xA2E9, 0xFF41, 0xA2EA, 0xFF42, 0xA2EB, 0xFF43, 0xA2EC, 0xFF44, + 0xA2ED, 0xFF45, 0xA2EE, 0xFF46, 0xA2EF, 0xFF47, 0xA2F0, 0xFF48, 0xA2F1, 0xFF49, 0xA2F2, 0xFF4A, 0xA2F3, 0xFF4B, 0xA2F4, 0xFF4C, + 0xA2F5, 0xFF4D, 0xA2F6, 0xFF4E, 0xA2F7, 0xFF4F, 0xA2F8, 0xFF50, 0xA2F9, 0xFF51, 0xA2FA, 0xFF52, 0xA2FB, 0xFF53, 0xA2FC, 0xFF54, + 0xA2FD, 0xFF55, 0xA2FE, 0xFF56, 0xA340, 0xFF57, 0xA341, 0xFF58, 0xA342, 0xFF59, 0xA343, 0xFF5A, 0xA344, 0x0391, 0xA345, 0x0392, + 0xA346, 0x0393, 0xA347, 0x0394, 0xA348, 0x0395, 0xA349, 0x0396, 0xA34A, 0x0397, 0xA34B, 0x0398, 0xA34C, 0x0399, 0xA34D, 0x039A, + 0xA34E, 0x039B, 0xA34F, 0x039C, 0xA350, 0x039D, 0xA351, 0x039E, 0xA352, 0x039F, 0xA353, 0x03A0, 0xA354, 0x03A1, 0xA355, 0x03A3, + 0xA356, 0x03A4, 0xA357, 0x03A5, 0xA358, 0x03A6, 0xA359, 0x03A7, 0xA35A, 0x03A8, 0xA35B, 0x03A9, 0xA35C, 0x03B1, 0xA35D, 0x03B2, + 0xA35E, 0x03B3, 0xA35F, 0x03B4, 0xA360, 0x03B5, 0xA361, 0x03B6, 0xA362, 0x03B7, 0xA363, 0x03B8, 0xA364, 0x03B9, 0xA365, 0x03BA, + 0xA366, 0x03BB, 0xA367, 0x03BC, 0xA368, 0x03BD, 0xA369, 0x03BE, 0xA36A, 0x03BF, 0xA36B, 0x03C0, 0xA36C, 0x03C1, 0xA36D, 0x03C3, + 0xA36E, 0x03C4, 0xA36F, 0x03C5, 0xA370, 0x03C6, 0xA371, 0x03C7, 0xA372, 0x03C8, 0xA373, 0x03C9, 0xA374, 0x3105, 0xA375, 0x3106, + 0xA376, 0x3107, 0xA377, 0x3108, 0xA378, 0x3109, 0xA379, 0x310A, 0xA37A, 0x310B, 0xA37B, 0x310C, 0xA37C, 0x310D, 0xA37D, 0x310E, + 0xA37E, 0x310F, 0xA3A1, 0x3110, 0xA3A2, 0x3111, 0xA3A3, 0x3112, 0xA3A4, 0x3113, 0xA3A5, 0x3114, 0xA3A6, 0x3115, 0xA3A7, 0x3116, + 0xA3A8, 0x3117, 0xA3A9, 0x3118, 0xA3AA, 0x3119, 0xA3AB, 0x311A, 0xA3AC, 0x311B, 0xA3AD, 0x311C, 0xA3AE, 0x311D, 0xA3AF, 0x311E, + 0xA3B0, 0x311F, 0xA3B1, 0x3120, 0xA3B2, 0x3121, 0xA3B3, 0x3122, 0xA3B4, 0x3123, 0xA3B5, 0x3124, 0xA3B6, 0x3125, 0xA3B7, 0x3126, + 0xA3B8, 0x3127, 0xA3B9, 0x3128, 0xA3BA, 0x3129, 0xA3BB, 0x02D9, 0xA3BC, 0x02C9, 0xA3BD, 0x02CA, 0xA3BE, 0x02C7, 0xA3BF, 0x02CB, + 0xA3E1, 0x20AC, 0xA440, 0x4E00, 0xA441, 0x4E59, 0xA442, 0x4E01, 0xA443, 0x4E03, 0xA444, 0x4E43, 0xA445, 0x4E5D, 0xA446, 0x4E86, + 0xA447, 0x4E8C, 0xA448, 0x4EBA, 0xA449, 0x513F, 0xA44A, 0x5165, 0xA44B, 0x516B, 0xA44C, 0x51E0, 0xA44D, 0x5200, 0xA44E, 0x5201, + 0xA44F, 0x529B, 0xA450, 0x5315, 0xA451, 0x5341, 0xA452, 0x535C, 0xA453, 0x53C8, 0xA454, 0x4E09, 0xA455, 0x4E0B, 0xA456, 0x4E08, + 0xA457, 0x4E0A, 0xA458, 0x4E2B, 0xA459, 0x4E38, 0xA45A, 0x51E1, 0xA45B, 0x4E45, 0xA45C, 0x4E48, 0xA45D, 0x4E5F, 0xA45E, 0x4E5E, + 0xA45F, 0x4E8E, 0xA460, 0x4EA1, 0xA461, 0x5140, 0xA462, 0x5203, 0xA463, 0x52FA, 0xA464, 0x5343, 0xA465, 0x53C9, 0xA466, 0x53E3, + 0xA467, 0x571F, 0xA468, 0x58EB, 0xA469, 0x5915, 0xA46A, 0x5927, 0xA46B, 0x5973, 0xA46C, 0x5B50, 0xA46D, 0x5B51, 0xA46E, 0x5B53, + 0xA46F, 0x5BF8, 0xA470, 0x5C0F, 0xA471, 0x5C22, 0xA472, 0x5C38, 0xA473, 0x5C71, 0xA474, 0x5DDD, 0xA475, 0x5DE5, 0xA476, 0x5DF1, + 0xA477, 0x5DF2, 0xA478, 0x5DF3, 0xA479, 0x5DFE, 0xA47A, 0x5E72, 0xA47B, 0x5EFE, 0xA47C, 0x5F0B, 0xA47D, 0x5F13, 0xA47E, 0x624D, + 0xA4A1, 0x4E11, 0xA4A2, 0x4E10, 0xA4A3, 0x4E0D, 0xA4A4, 0x4E2D, 0xA4A5, 0x4E30, 0xA4A6, 0x4E39, 0xA4A7, 0x4E4B, 0xA4A8, 0x5C39, + 0xA4A9, 0x4E88, 0xA4AA, 0x4E91, 0xA4AB, 0x4E95, 0xA4AC, 0x4E92, 0xA4AD, 0x4E94, 0xA4AE, 0x4EA2, 0xA4AF, 0x4EC1, 0xA4B0, 0x4EC0, + 0xA4B1, 0x4EC3, 0xA4B2, 0x4EC6, 0xA4B3, 0x4EC7, 0xA4B4, 0x4ECD, 0xA4B5, 0x4ECA, 0xA4B6, 0x4ECB, 0xA4B7, 0x4EC4, 0xA4B8, 0x5143, + 0xA4B9, 0x5141, 0xA4BA, 0x5167, 0xA4BB, 0x516D, 0xA4BC, 0x516E, 0xA4BD, 0x516C, 0xA4BE, 0x5197, 0xA4BF, 0x51F6, 0xA4C0, 0x5206, + 0xA4C1, 0x5207, 0xA4C2, 0x5208, 0xA4C3, 0x52FB, 0xA4C4, 0x52FE, 0xA4C5, 0x52FF, 0xA4C6, 0x5316, 0xA4C7, 0x5339, 0xA4C8, 0x5348, + 0xA4C9, 0x5347, 0xA4CA, 0x5345, 0xA4CB, 0x535E, 0xA4CC, 0x5384, 0xA4CD, 0x53CB, 0xA4CE, 0x53CA, 0xA4CF, 0x53CD, 0xA4D0, 0x58EC, + 0xA4D1, 0x5929, 0xA4D2, 0x592B, 0xA4D3, 0x592A, 0xA4D4, 0x592D, 0xA4D5, 0x5B54, 0xA4D6, 0x5C11, 0xA4D7, 0x5C24, 0xA4D8, 0x5C3A, + 0xA4D9, 0x5C6F, 0xA4DA, 0x5DF4, 0xA4DB, 0x5E7B, 0xA4DC, 0x5EFF, 0xA4DD, 0x5F14, 0xA4DE, 0x5F15, 0xA4DF, 0x5FC3, 0xA4E0, 0x6208, + 0xA4E1, 0x6236, 0xA4E2, 0x624B, 0xA4E3, 0x624E, 0xA4E4, 0x652F, 0xA4E5, 0x6587, 0xA4E6, 0x6597, 0xA4E7, 0x65A4, 0xA4E8, 0x65B9, + 0xA4E9, 0x65E5, 0xA4EA, 0x66F0, 0xA4EB, 0x6708, 0xA4EC, 0x6728, 0xA4ED, 0x6B20, 0xA4EE, 0x6B62, 0xA4EF, 0x6B79, 0xA4F0, 0x6BCB, + 0xA4F1, 0x6BD4, 0xA4F2, 0x6BDB, 0xA4F3, 0x6C0F, 0xA4F4, 0x6C34, 0xA4F5, 0x706B, 0xA4F6, 0x722A, 0xA4F7, 0x7236, 0xA4F8, 0x723B, + 0xA4F9, 0x7247, 0xA4FA, 0x7259, 0xA4FB, 0x725B, 0xA4FC, 0x72AC, 0xA4FD, 0x738B, 0xA4FE, 0x4E19, 0xA540, 0x4E16, 0xA541, 0x4E15, + 0xA542, 0x4E14, 0xA543, 0x4E18, 0xA544, 0x4E3B, 0xA545, 0x4E4D, 0xA546, 0x4E4F, 0xA547, 0x4E4E, 0xA548, 0x4EE5, 0xA549, 0x4ED8, + 0xA54A, 0x4ED4, 0xA54B, 0x4ED5, 0xA54C, 0x4ED6, 0xA54D, 0x4ED7, 0xA54E, 0x4EE3, 0xA54F, 0x4EE4, 0xA550, 0x4ED9, 0xA551, 0x4EDE, + 0xA552, 0x5145, 0xA553, 0x5144, 0xA554, 0x5189, 0xA555, 0x518A, 0xA556, 0x51AC, 0xA557, 0x51F9, 0xA558, 0x51FA, 0xA559, 0x51F8, + 0xA55A, 0x520A, 0xA55B, 0x52A0, 0xA55C, 0x529F, 0xA55D, 0x5305, 0xA55E, 0x5306, 0xA55F, 0x5317, 0xA560, 0x531D, 0xA561, 0x4EDF, + 0xA562, 0x534A, 0xA563, 0x5349, 0xA564, 0x5361, 0xA565, 0x5360, 0xA566, 0x536F, 0xA567, 0x536E, 0xA568, 0x53BB, 0xA569, 0x53EF, + 0xA56A, 0x53E4, 0xA56B, 0x53F3, 0xA56C, 0x53EC, 0xA56D, 0x53EE, 0xA56E, 0x53E9, 0xA56F, 0x53E8, 0xA570, 0x53FC, 0xA571, 0x53F8, + 0xA572, 0x53F5, 0xA573, 0x53EB, 0xA574, 0x53E6, 0xA575, 0x53EA, 0xA576, 0x53F2, 0xA577, 0x53F1, 0xA578, 0x53F0, 0xA579, 0x53E5, + 0xA57A, 0x53ED, 0xA57B, 0x53FB, 0xA57C, 0x56DB, 0xA57D, 0x56DA, 0xA57E, 0x5916, 0xA5A1, 0x592E, 0xA5A2, 0x5931, 0xA5A3, 0x5974, + 0xA5A4, 0x5976, 0xA5A5, 0x5B55, 0xA5A6, 0x5B83, 0xA5A7, 0x5C3C, 0xA5A8, 0x5DE8, 0xA5A9, 0x5DE7, 0xA5AA, 0x5DE6, 0xA5AB, 0x5E02, + 0xA5AC, 0x5E03, 0xA5AD, 0x5E73, 0xA5AE, 0x5E7C, 0xA5AF, 0x5F01, 0xA5B0, 0x5F18, 0xA5B1, 0x5F17, 0xA5B2, 0x5FC5, 0xA5B3, 0x620A, + 0xA5B4, 0x6253, 0xA5B5, 0x6254, 0xA5B6, 0x6252, 0xA5B7, 0x6251, 0xA5B8, 0x65A5, 0xA5B9, 0x65E6, 0xA5BA, 0x672E, 0xA5BB, 0x672C, + 0xA5BC, 0x672A, 0xA5BD, 0x672B, 0xA5BE, 0x672D, 0xA5BF, 0x6B63, 0xA5C0, 0x6BCD, 0xA5C1, 0x6C11, 0xA5C2, 0x6C10, 0xA5C3, 0x6C38, + 0xA5C4, 0x6C41, 0xA5C5, 0x6C40, 0xA5C6, 0x6C3E, 0xA5C7, 0x72AF, 0xA5C8, 0x7384, 0xA5C9, 0x7389, 0xA5CA, 0x74DC, 0xA5CB, 0x74E6, + 0xA5CC, 0x7518, 0xA5CD, 0x751F, 0xA5CE, 0x7528, 0xA5CF, 0x7529, 0xA5D0, 0x7530, 0xA5D1, 0x7531, 0xA5D2, 0x7532, 0xA5D3, 0x7533, + 0xA5D4, 0x758B, 0xA5D5, 0x767D, 0xA5D6, 0x76AE, 0xA5D7, 0x76BF, 0xA5D8, 0x76EE, 0xA5D9, 0x77DB, 0xA5DA, 0x77E2, 0xA5DB, 0x77F3, + 0xA5DC, 0x793A, 0xA5DD, 0x79BE, 0xA5DE, 0x7A74, 0xA5DF, 0x7ACB, 0xA5E0, 0x4E1E, 0xA5E1, 0x4E1F, 0xA5E2, 0x4E52, 0xA5E3, 0x4E53, + 0xA5E4, 0x4E69, 0xA5E5, 0x4E99, 0xA5E6, 0x4EA4, 0xA5E7, 0x4EA6, 0xA5E8, 0x4EA5, 0xA5E9, 0x4EFF, 0xA5EA, 0x4F09, 0xA5EB, 0x4F19, + 0xA5EC, 0x4F0A, 0xA5ED, 0x4F15, 0xA5EE, 0x4F0D, 0xA5EF, 0x4F10, 0xA5F0, 0x4F11, 0xA5F1, 0x4F0F, 0xA5F2, 0x4EF2, 0xA5F3, 0x4EF6, + 0xA5F4, 0x4EFB, 0xA5F5, 0x4EF0, 0xA5F6, 0x4EF3, 0xA5F7, 0x4EFD, 0xA5F8, 0x4F01, 0xA5F9, 0x4F0B, 0xA5FA, 0x5149, 0xA5FB, 0x5147, + 0xA5FC, 0x5146, 0xA5FD, 0x5148, 0xA5FE, 0x5168, 0xA640, 0x5171, 0xA641, 0x518D, 0xA642, 0x51B0, 0xA643, 0x5217, 0xA644, 0x5211, + 0xA645, 0x5212, 0xA646, 0x520E, 0xA647, 0x5216, 0xA648, 0x52A3, 0xA649, 0x5308, 0xA64A, 0x5321, 0xA64B, 0x5320, 0xA64C, 0x5370, + 0xA64D, 0x5371, 0xA64E, 0x5409, 0xA64F, 0x540F, 0xA650, 0x540C, 0xA651, 0x540A, 0xA652, 0x5410, 0xA653, 0x5401, 0xA654, 0x540B, + 0xA655, 0x5404, 0xA656, 0x5411, 0xA657, 0x540D, 0xA658, 0x5408, 0xA659, 0x5403, 0xA65A, 0x540E, 0xA65B, 0x5406, 0xA65C, 0x5412, + 0xA65D, 0x56E0, 0xA65E, 0x56DE, 0xA65F, 0x56DD, 0xA660, 0x5733, 0xA661, 0x5730, 0xA662, 0x5728, 0xA663, 0x572D, 0xA664, 0x572C, + 0xA665, 0x572F, 0xA666, 0x5729, 0xA667, 0x5919, 0xA668, 0x591A, 0xA669, 0x5937, 0xA66A, 0x5938, 0xA66B, 0x5984, 0xA66C, 0x5978, + 0xA66D, 0x5983, 0xA66E, 0x597D, 0xA66F, 0x5979, 0xA670, 0x5982, 0xA671, 0x5981, 0xA672, 0x5B57, 0xA673, 0x5B58, 0xA674, 0x5B87, + 0xA675, 0x5B88, 0xA676, 0x5B85, 0xA677, 0x5B89, 0xA678, 0x5BFA, 0xA679, 0x5C16, 0xA67A, 0x5C79, 0xA67B, 0x5DDE, 0xA67C, 0x5E06, + 0xA67D, 0x5E76, 0xA67E, 0x5E74, 0xA6A1, 0x5F0F, 0xA6A2, 0x5F1B, 0xA6A3, 0x5FD9, 0xA6A4, 0x5FD6, 0xA6A5, 0x620E, 0xA6A6, 0x620C, + 0xA6A7, 0x620D, 0xA6A8, 0x6210, 0xA6A9, 0x6263, 0xA6AA, 0x625B, 0xA6AB, 0x6258, 0xA6AC, 0x6536, 0xA6AD, 0x65E9, 0xA6AE, 0x65E8, + 0xA6AF, 0x65EC, 0xA6B0, 0x65ED, 0xA6B1, 0x66F2, 0xA6B2, 0x66F3, 0xA6B3, 0x6709, 0xA6B4, 0x673D, 0xA6B5, 0x6734, 0xA6B6, 0x6731, + 0xA6B7, 0x6735, 0xA6B8, 0x6B21, 0xA6B9, 0x6B64, 0xA6BA, 0x6B7B, 0xA6BB, 0x6C16, 0xA6BC, 0x6C5D, 0xA6BD, 0x6C57, 0xA6BE, 0x6C59, + 0xA6BF, 0x6C5F, 0xA6C0, 0x6C60, 0xA6C1, 0x6C50, 0xA6C2, 0x6C55, 0xA6C3, 0x6C61, 0xA6C4, 0x6C5B, 0xA6C5, 0x6C4D, 0xA6C6, 0x6C4E, + 0xA6C7, 0x7070, 0xA6C8, 0x725F, 0xA6C9, 0x725D, 0xA6CA, 0x767E, 0xA6CB, 0x7AF9, 0xA6CC, 0x7C73, 0xA6CD, 0x7CF8, 0xA6CE, 0x7F36, + 0xA6CF, 0x7F8A, 0xA6D0, 0x7FBD, 0xA6D1, 0x8001, 0xA6D2, 0x8003, 0xA6D3, 0x800C, 0xA6D4, 0x8012, 0xA6D5, 0x8033, 0xA6D6, 0x807F, + 0xA6D7, 0x8089, 0xA6D8, 0x808B, 0xA6D9, 0x808C, 0xA6DA, 0x81E3, 0xA6DB, 0x81EA, 0xA6DC, 0x81F3, 0xA6DD, 0x81FC, 0xA6DE, 0x820C, + 0xA6DF, 0x821B, 0xA6E0, 0x821F, 0xA6E1, 0x826E, 0xA6E2, 0x8272, 0xA6E3, 0x827E, 0xA6E4, 0x866B, 0xA6E5, 0x8840, 0xA6E6, 0x884C, + 0xA6E7, 0x8863, 0xA6E8, 0x897F, 0xA6E9, 0x9621, 0xA6EA, 0x4E32, 0xA6EB, 0x4EA8, 0xA6EC, 0x4F4D, 0xA6ED, 0x4F4F, 0xA6EE, 0x4F47, + 0xA6EF, 0x4F57, 0xA6F0, 0x4F5E, 0xA6F1, 0x4F34, 0xA6F2, 0x4F5B, 0xA6F3, 0x4F55, 0xA6F4, 0x4F30, 0xA6F5, 0x4F50, 0xA6F6, 0x4F51, + 0xA6F7, 0x4F3D, 0xA6F8, 0x4F3A, 0xA6F9, 0x4F38, 0xA6FA, 0x4F43, 0xA6FB, 0x4F54, 0xA6FC, 0x4F3C, 0xA6FD, 0x4F46, 0xA6FE, 0x4F63, + 0xA740, 0x4F5C, 0xA741, 0x4F60, 0xA742, 0x4F2F, 0xA743, 0x4F4E, 0xA744, 0x4F36, 0xA745, 0x4F59, 0xA746, 0x4F5D, 0xA747, 0x4F48, + 0xA748, 0x4F5A, 0xA749, 0x514C, 0xA74A, 0x514B, 0xA74B, 0x514D, 0xA74C, 0x5175, 0xA74D, 0x51B6, 0xA74E, 0x51B7, 0xA74F, 0x5225, + 0xA750, 0x5224, 0xA751, 0x5229, 0xA752, 0x522A, 0xA753, 0x5228, 0xA754, 0x52AB, 0xA755, 0x52A9, 0xA756, 0x52AA, 0xA757, 0x52AC, + 0xA758, 0x5323, 0xA759, 0x5373, 0xA75A, 0x5375, 0xA75B, 0x541D, 0xA75C, 0x542D, 0xA75D, 0x541E, 0xA75E, 0x543E, 0xA75F, 0x5426, + 0xA760, 0x544E, 0xA761, 0x5427, 0xA762, 0x5446, 0xA763, 0x5443, 0xA764, 0x5433, 0xA765, 0x5448, 0xA766, 0x5442, 0xA767, 0x541B, + 0xA768, 0x5429, 0xA769, 0x544A, 0xA76A, 0x5439, 0xA76B, 0x543B, 0xA76C, 0x5438, 0xA76D, 0x542E, 0xA76E, 0x5435, 0xA76F, 0x5436, + 0xA770, 0x5420, 0xA771, 0x543C, 0xA772, 0x5440, 0xA773, 0x5431, 0xA774, 0x542B, 0xA775, 0x541F, 0xA776, 0x542C, 0xA777, 0x56EA, + 0xA778, 0x56F0, 0xA779, 0x56E4, 0xA77A, 0x56EB, 0xA77B, 0x574A, 0xA77C, 0x5751, 0xA77D, 0x5740, 0xA77E, 0x574D, 0xA7A1, 0x5747, + 0xA7A2, 0x574E, 0xA7A3, 0x573E, 0xA7A4, 0x5750, 0xA7A5, 0x574F, 0xA7A6, 0x573B, 0xA7A7, 0x58EF, 0xA7A8, 0x593E, 0xA7A9, 0x599D, + 0xA7AA, 0x5992, 0xA7AB, 0x59A8, 0xA7AC, 0x599E, 0xA7AD, 0x59A3, 0xA7AE, 0x5999, 0xA7AF, 0x5996, 0xA7B0, 0x598D, 0xA7B1, 0x59A4, + 0xA7B2, 0x5993, 0xA7B3, 0x598A, 0xA7B4, 0x59A5, 0xA7B5, 0x5B5D, 0xA7B6, 0x5B5C, 0xA7B7, 0x5B5A, 0xA7B8, 0x5B5B, 0xA7B9, 0x5B8C, + 0xA7BA, 0x5B8B, 0xA7BB, 0x5B8F, 0xA7BC, 0x5C2C, 0xA7BD, 0x5C40, 0xA7BE, 0x5C41, 0xA7BF, 0x5C3F, 0xA7C0, 0x5C3E, 0xA7C1, 0x5C90, + 0xA7C2, 0x5C91, 0xA7C3, 0x5C94, 0xA7C4, 0x5C8C, 0xA7C5, 0x5DEB, 0xA7C6, 0x5E0C, 0xA7C7, 0x5E8F, 0xA7C8, 0x5E87, 0xA7C9, 0x5E8A, + 0xA7CA, 0x5EF7, 0xA7CB, 0x5F04, 0xA7CC, 0x5F1F, 0xA7CD, 0x5F64, 0xA7CE, 0x5F62, 0xA7CF, 0x5F77, 0xA7D0, 0x5F79, 0xA7D1, 0x5FD8, + 0xA7D2, 0x5FCC, 0xA7D3, 0x5FD7, 0xA7D4, 0x5FCD, 0xA7D5, 0x5FF1, 0xA7D6, 0x5FEB, 0xA7D7, 0x5FF8, 0xA7D8, 0x5FEA, 0xA7D9, 0x6212, + 0xA7DA, 0x6211, 0xA7DB, 0x6284, 0xA7DC, 0x6297, 0xA7DD, 0x6296, 0xA7DE, 0x6280, 0xA7DF, 0x6276, 0xA7E0, 0x6289, 0xA7E1, 0x626D, + 0xA7E2, 0x628A, 0xA7E3, 0x627C, 0xA7E4, 0x627E, 0xA7E5, 0x6279, 0xA7E6, 0x6273, 0xA7E7, 0x6292, 0xA7E8, 0x626F, 0xA7E9, 0x6298, + 0xA7EA, 0x626E, 0xA7EB, 0x6295, 0xA7EC, 0x6293, 0xA7ED, 0x6291, 0xA7EE, 0x6286, 0xA7EF, 0x6539, 0xA7F0, 0x653B, 0xA7F1, 0x6538, + 0xA7F2, 0x65F1, 0xA7F3, 0x66F4, 0xA7F4, 0x675F, 0xA7F5, 0x674E, 0xA7F6, 0x674F, 0xA7F7, 0x6750, 0xA7F8, 0x6751, 0xA7F9, 0x675C, + 0xA7FA, 0x6756, 0xA7FB, 0x675E, 0xA7FC, 0x6749, 0xA7FD, 0x6746, 0xA7FE, 0x6760, 0xA840, 0x6753, 0xA841, 0x6757, 0xA842, 0x6B65, + 0xA843, 0x6BCF, 0xA844, 0x6C42, 0xA845, 0x6C5E, 0xA846, 0x6C99, 0xA847, 0x6C81, 0xA848, 0x6C88, 0xA849, 0x6C89, 0xA84A, 0x6C85, + 0xA84B, 0x6C9B, 0xA84C, 0x6C6A, 0xA84D, 0x6C7A, 0xA84E, 0x6C90, 0xA84F, 0x6C70, 0xA850, 0x6C8C, 0xA851, 0x6C68, 0xA852, 0x6C96, + 0xA853, 0x6C92, 0xA854, 0x6C7D, 0xA855, 0x6C83, 0xA856, 0x6C72, 0xA857, 0x6C7E, 0xA858, 0x6C74, 0xA859, 0x6C86, 0xA85A, 0x6C76, + 0xA85B, 0x6C8D, 0xA85C, 0x6C94, 0xA85D, 0x6C98, 0xA85E, 0x6C82, 0xA85F, 0x7076, 0xA860, 0x707C, 0xA861, 0x707D, 0xA862, 0x7078, + 0xA863, 0x7262, 0xA864, 0x7261, 0xA865, 0x7260, 0xA866, 0x72C4, 0xA867, 0x72C2, 0xA868, 0x7396, 0xA869, 0x752C, 0xA86A, 0x752B, + 0xA86B, 0x7537, 0xA86C, 0x7538, 0xA86D, 0x7682, 0xA86E, 0x76EF, 0xA86F, 0x77E3, 0xA870, 0x79C1, 0xA871, 0x79C0, 0xA872, 0x79BF, + 0xA873, 0x7A76, 0xA874, 0x7CFB, 0xA875, 0x7F55, 0xA876, 0x8096, 0xA877, 0x8093, 0xA878, 0x809D, 0xA879, 0x8098, 0xA87A, 0x809B, + 0xA87B, 0x809A, 0xA87C, 0x80B2, 0xA87D, 0x826F, 0xA87E, 0x8292, 0xA8A1, 0x828B, 0xA8A2, 0x828D, 0xA8A3, 0x898B, 0xA8A4, 0x89D2, + 0xA8A5, 0x8A00, 0xA8A6, 0x8C37, 0xA8A7, 0x8C46, 0xA8A8, 0x8C55, 0xA8A9, 0x8C9D, 0xA8AA, 0x8D64, 0xA8AB, 0x8D70, 0xA8AC, 0x8DB3, + 0xA8AD, 0x8EAB, 0xA8AE, 0x8ECA, 0xA8AF, 0x8F9B, 0xA8B0, 0x8FB0, 0xA8B1, 0x8FC2, 0xA8B2, 0x8FC6, 0xA8B3, 0x8FC5, 0xA8B4, 0x8FC4, + 0xA8B5, 0x5DE1, 0xA8B6, 0x9091, 0xA8B7, 0x90A2, 0xA8B8, 0x90AA, 0xA8B9, 0x90A6, 0xA8BA, 0x90A3, 0xA8BB, 0x9149, 0xA8BC, 0x91C6, + 0xA8BD, 0x91CC, 0xA8BE, 0x9632, 0xA8BF, 0x962E, 0xA8C0, 0x9631, 0xA8C1, 0x962A, 0xA8C2, 0x962C, 0xA8C3, 0x4E26, 0xA8C4, 0x4E56, + 0xA8C5, 0x4E73, 0xA8C6, 0x4E8B, 0xA8C7, 0x4E9B, 0xA8C8, 0x4E9E, 0xA8C9, 0x4EAB, 0xA8CA, 0x4EAC, 0xA8CB, 0x4F6F, 0xA8CC, 0x4F9D, + 0xA8CD, 0x4F8D, 0xA8CE, 0x4F73, 0xA8CF, 0x4F7F, 0xA8D0, 0x4F6C, 0xA8D1, 0x4F9B, 0xA8D2, 0x4F8B, 0xA8D3, 0x4F86, 0xA8D4, 0x4F83, + 0xA8D5, 0x4F70, 0xA8D6, 0x4F75, 0xA8D7, 0x4F88, 0xA8D8, 0x4F69, 0xA8D9, 0x4F7B, 0xA8DA, 0x4F96, 0xA8DB, 0x4F7E, 0xA8DC, 0x4F8F, + 0xA8DD, 0x4F91, 0xA8DE, 0x4F7A, 0xA8DF, 0x5154, 0xA8E0, 0x5152, 0xA8E1, 0x5155, 0xA8E2, 0x5169, 0xA8E3, 0x5177, 0xA8E4, 0x5176, + 0xA8E5, 0x5178, 0xA8E6, 0x51BD, 0xA8E7, 0x51FD, 0xA8E8, 0x523B, 0xA8E9, 0x5238, 0xA8EA, 0x5237, 0xA8EB, 0x523A, 0xA8EC, 0x5230, + 0xA8ED, 0x522E, 0xA8EE, 0x5236, 0xA8EF, 0x5241, 0xA8F0, 0x52BE, 0xA8F1, 0x52BB, 0xA8F2, 0x5352, 0xA8F3, 0x5354, 0xA8F4, 0x5353, + 0xA8F5, 0x5351, 0xA8F6, 0x5366, 0xA8F7, 0x5377, 0xA8F8, 0x5378, 0xA8F9, 0x5379, 0xA8FA, 0x53D6, 0xA8FB, 0x53D4, 0xA8FC, 0x53D7, + 0xA8FD, 0x5473, 0xA8FE, 0x5475, 0xA940, 0x5496, 0xA941, 0x5478, 0xA942, 0x5495, 0xA943, 0x5480, 0xA944, 0x547B, 0xA945, 0x5477, + 0xA946, 0x5484, 0xA947, 0x5492, 0xA948, 0x5486, 0xA949, 0x547C, 0xA94A, 0x5490, 0xA94B, 0x5471, 0xA94C, 0x5476, 0xA94D, 0x548C, + 0xA94E, 0x549A, 0xA94F, 0x5462, 0xA950, 0x5468, 0xA951, 0x548B, 0xA952, 0x547D, 0xA953, 0x548E, 0xA954, 0x56FA, 0xA955, 0x5783, + 0xA956, 0x5777, 0xA957, 0x576A, 0xA958, 0x5769, 0xA959, 0x5761, 0xA95A, 0x5766, 0xA95B, 0x5764, 0xA95C, 0x577C, 0xA95D, 0x591C, + 0xA95E, 0x5949, 0xA95F, 0x5947, 0xA960, 0x5948, 0xA961, 0x5944, 0xA962, 0x5954, 0xA963, 0x59BE, 0xA964, 0x59BB, 0xA965, 0x59D4, + 0xA966, 0x59B9, 0xA967, 0x59AE, 0xA968, 0x59D1, 0xA969, 0x59C6, 0xA96A, 0x59D0, 0xA96B, 0x59CD, 0xA96C, 0x59CB, 0xA96D, 0x59D3, + 0xA96E, 0x59CA, 0xA96F, 0x59AF, 0xA970, 0x59B3, 0xA971, 0x59D2, 0xA972, 0x59C5, 0xA973, 0x5B5F, 0xA974, 0x5B64, 0xA975, 0x5B63, + 0xA976, 0x5B97, 0xA977, 0x5B9A, 0xA978, 0x5B98, 0xA979, 0x5B9C, 0xA97A, 0x5B99, 0xA97B, 0x5B9B, 0xA97C, 0x5C1A, 0xA97D, 0x5C48, + 0xA97E, 0x5C45, 0xA9A1, 0x5C46, 0xA9A2, 0x5CB7, 0xA9A3, 0x5CA1, 0xA9A4, 0x5CB8, 0xA9A5, 0x5CA9, 0xA9A6, 0x5CAB, 0xA9A7, 0x5CB1, + 0xA9A8, 0x5CB3, 0xA9A9, 0x5E18, 0xA9AA, 0x5E1A, 0xA9AB, 0x5E16, 0xA9AC, 0x5E15, 0xA9AD, 0x5E1B, 0xA9AE, 0x5E11, 0xA9AF, 0x5E78, + 0xA9B0, 0x5E9A, 0xA9B1, 0x5E97, 0xA9B2, 0x5E9C, 0xA9B3, 0x5E95, 0xA9B4, 0x5E96, 0xA9B5, 0x5EF6, 0xA9B6, 0x5F26, 0xA9B7, 0x5F27, + 0xA9B8, 0x5F29, 0xA9B9, 0x5F80, 0xA9BA, 0x5F81, 0xA9BB, 0x5F7F, 0xA9BC, 0x5F7C, 0xA9BD, 0x5FDD, 0xA9BE, 0x5FE0, 0xA9BF, 0x5FFD, + 0xA9C0, 0x5FF5, 0xA9C1, 0x5FFF, 0xA9C2, 0x600F, 0xA9C3, 0x6014, 0xA9C4, 0x602F, 0xA9C5, 0x6035, 0xA9C6, 0x6016, 0xA9C7, 0x602A, + 0xA9C8, 0x6015, 0xA9C9, 0x6021, 0xA9CA, 0x6027, 0xA9CB, 0x6029, 0xA9CC, 0x602B, 0xA9CD, 0x601B, 0xA9CE, 0x6216, 0xA9CF, 0x6215, + 0xA9D0, 0x623F, 0xA9D1, 0x623E, 0xA9D2, 0x6240, 0xA9D3, 0x627F, 0xA9D4, 0x62C9, 0xA9D5, 0x62CC, 0xA9D6, 0x62C4, 0xA9D7, 0x62BF, + 0xA9D8, 0x62C2, 0xA9D9, 0x62B9, 0xA9DA, 0x62D2, 0xA9DB, 0x62DB, 0xA9DC, 0x62AB, 0xA9DD, 0x62D3, 0xA9DE, 0x62D4, 0xA9DF, 0x62CB, + 0xA9E0, 0x62C8, 0xA9E1, 0x62A8, 0xA9E2, 0x62BD, 0xA9E3, 0x62BC, 0xA9E4, 0x62D0, 0xA9E5, 0x62D9, 0xA9E6, 0x62C7, 0xA9E7, 0x62CD, + 0xA9E8, 0x62B5, 0xA9E9, 0x62DA, 0xA9EA, 0x62B1, 0xA9EB, 0x62D8, 0xA9EC, 0x62D6, 0xA9ED, 0x62D7, 0xA9EE, 0x62C6, 0xA9EF, 0x62AC, + 0xA9F0, 0x62CE, 0xA9F1, 0x653E, 0xA9F2, 0x65A7, 0xA9F3, 0x65BC, 0xA9F4, 0x65FA, 0xA9F5, 0x6614, 0xA9F6, 0x6613, 0xA9F7, 0x660C, + 0xA9F8, 0x6606, 0xA9F9, 0x6602, 0xA9FA, 0x660E, 0xA9FB, 0x6600, 0xA9FC, 0x660F, 0xA9FD, 0x6615, 0xA9FE, 0x660A, 0xAA40, 0x6607, + 0xAA41, 0x670D, 0xAA42, 0x670B, 0xAA43, 0x676D, 0xAA44, 0x678B, 0xAA45, 0x6795, 0xAA46, 0x6771, 0xAA47, 0x679C, 0xAA48, 0x6773, + 0xAA49, 0x6777, 0xAA4A, 0x6787, 0xAA4B, 0x679D, 0xAA4C, 0x6797, 0xAA4D, 0x676F, 0xAA4E, 0x6770, 0xAA4F, 0x677F, 0xAA50, 0x6789, + 0xAA51, 0x677E, 0xAA52, 0x6790, 0xAA53, 0x6775, 0xAA54, 0x679A, 0xAA55, 0x6793, 0xAA56, 0x677C, 0xAA57, 0x676A, 0xAA58, 0x6772, + 0xAA59, 0x6B23, 0xAA5A, 0x6B66, 0xAA5B, 0x6B67, 0xAA5C, 0x6B7F, 0xAA5D, 0x6C13, 0xAA5E, 0x6C1B, 0xAA5F, 0x6CE3, 0xAA60, 0x6CE8, + 0xAA61, 0x6CF3, 0xAA62, 0x6CB1, 0xAA63, 0x6CCC, 0xAA64, 0x6CE5, 0xAA65, 0x6CB3, 0xAA66, 0x6CBD, 0xAA67, 0x6CBE, 0xAA68, 0x6CBC, + 0xAA69, 0x6CE2, 0xAA6A, 0x6CAB, 0xAA6B, 0x6CD5, 0xAA6C, 0x6CD3, 0xAA6D, 0x6CB8, 0xAA6E, 0x6CC4, 0xAA6F, 0x6CB9, 0xAA70, 0x6CC1, + 0xAA71, 0x6CAE, 0xAA72, 0x6CD7, 0xAA73, 0x6CC5, 0xAA74, 0x6CF1, 0xAA75, 0x6CBF, 0xAA76, 0x6CBB, 0xAA77, 0x6CE1, 0xAA78, 0x6CDB, + 0xAA79, 0x6CCA, 0xAA7A, 0x6CAC, 0xAA7B, 0x6CEF, 0xAA7C, 0x6CDC, 0xAA7D, 0x6CD6, 0xAA7E, 0x6CE0, 0xAAA1, 0x7095, 0xAAA2, 0x708E, + 0xAAA3, 0x7092, 0xAAA4, 0x708A, 0xAAA5, 0x7099, 0xAAA6, 0x722C, 0xAAA7, 0x722D, 0xAAA8, 0x7238, 0xAAA9, 0x7248, 0xAAAA, 0x7267, + 0xAAAB, 0x7269, 0xAAAC, 0x72C0, 0xAAAD, 0x72CE, 0xAAAE, 0x72D9, 0xAAAF, 0x72D7, 0xAAB0, 0x72D0, 0xAAB1, 0x73A9, 0xAAB2, 0x73A8, + 0xAAB3, 0x739F, 0xAAB4, 0x73AB, 0xAAB5, 0x73A5, 0xAAB6, 0x753D, 0xAAB7, 0x759D, 0xAAB8, 0x7599, 0xAAB9, 0x759A, 0xAABA, 0x7684, + 0xAABB, 0x76C2, 0xAABC, 0x76F2, 0xAABD, 0x76F4, 0xAABE, 0x77E5, 0xAABF, 0x77FD, 0xAAC0, 0x793E, 0xAAC1, 0x7940, 0xAAC2, 0x7941, + 0xAAC3, 0x79C9, 0xAAC4, 0x79C8, 0xAAC5, 0x7A7A, 0xAAC6, 0x7A79, 0xAAC7, 0x7AFA, 0xAAC8, 0x7CFE, 0xAAC9, 0x7F54, 0xAACA, 0x7F8C, + 0xAACB, 0x7F8B, 0xAACC, 0x8005, 0xAACD, 0x80BA, 0xAACE, 0x80A5, 0xAACF, 0x80A2, 0xAAD0, 0x80B1, 0xAAD1, 0x80A1, 0xAAD2, 0x80AB, + 0xAAD3, 0x80A9, 0xAAD4, 0x80B4, 0xAAD5, 0x80AA, 0xAAD6, 0x80AF, 0xAAD7, 0x81E5, 0xAAD8, 0x81FE, 0xAAD9, 0x820D, 0xAADA, 0x82B3, + 0xAADB, 0x829D, 0xAADC, 0x8299, 0xAADD, 0x82AD, 0xAADE, 0x82BD, 0xAADF, 0x829F, 0xAAE0, 0x82B9, 0xAAE1, 0x82B1, 0xAAE2, 0x82AC, + 0xAAE3, 0x82A5, 0xAAE4, 0x82AF, 0xAAE5, 0x82B8, 0xAAE6, 0x82A3, 0xAAE7, 0x82B0, 0xAAE8, 0x82BE, 0xAAE9, 0x82B7, 0xAAEA, 0x864E, + 0xAAEB, 0x8671, 0xAAEC, 0x521D, 0xAAED, 0x8868, 0xAAEE, 0x8ECB, 0xAAEF, 0x8FCE, 0xAAF0, 0x8FD4, 0xAAF1, 0x8FD1, 0xAAF2, 0x90B5, + 0xAAF3, 0x90B8, 0xAAF4, 0x90B1, 0xAAF5, 0x90B6, 0xAAF6, 0x91C7, 0xAAF7, 0x91D1, 0xAAF8, 0x9577, 0xAAF9, 0x9580, 0xAAFA, 0x961C, + 0xAAFB, 0x9640, 0xAAFC, 0x963F, 0xAAFD, 0x963B, 0xAAFE, 0x9644, 0xAB40, 0x9642, 0xAB41, 0x96B9, 0xAB42, 0x96E8, 0xAB43, 0x9752, + 0xAB44, 0x975E, 0xAB45, 0x4E9F, 0xAB46, 0x4EAD, 0xAB47, 0x4EAE, 0xAB48, 0x4FE1, 0xAB49, 0x4FB5, 0xAB4A, 0x4FAF, 0xAB4B, 0x4FBF, + 0xAB4C, 0x4FE0, 0xAB4D, 0x4FD1, 0xAB4E, 0x4FCF, 0xAB4F, 0x4FDD, 0xAB50, 0x4FC3, 0xAB51, 0x4FB6, 0xAB52, 0x4FD8, 0xAB53, 0x4FDF, + 0xAB54, 0x4FCA, 0xAB55, 0x4FD7, 0xAB56, 0x4FAE, 0xAB57, 0x4FD0, 0xAB58, 0x4FC4, 0xAB59, 0x4FC2, 0xAB5A, 0x4FDA, 0xAB5B, 0x4FCE, + 0xAB5C, 0x4FDE, 0xAB5D, 0x4FB7, 0xAB5E, 0x5157, 0xAB5F, 0x5192, 0xAB60, 0x5191, 0xAB61, 0x51A0, 0xAB62, 0x524E, 0xAB63, 0x5243, + 0xAB64, 0x524A, 0xAB65, 0x524D, 0xAB66, 0x524C, 0xAB67, 0x524B, 0xAB68, 0x5247, 0xAB69, 0x52C7, 0xAB6A, 0x52C9, 0xAB6B, 0x52C3, + 0xAB6C, 0x52C1, 0xAB6D, 0x530D, 0xAB6E, 0x5357, 0xAB6F, 0x537B, 0xAB70, 0x539A, 0xAB71, 0x53DB, 0xAB72, 0x54AC, 0xAB73, 0x54C0, + 0xAB74, 0x54A8, 0xAB75, 0x54CE, 0xAB76, 0x54C9, 0xAB77, 0x54B8, 0xAB78, 0x54A6, 0xAB79, 0x54B3, 0xAB7A, 0x54C7, 0xAB7B, 0x54C2, + 0xAB7C, 0x54BD, 0xAB7D, 0x54AA, 0xAB7E, 0x54C1, 0xABA1, 0x54C4, 0xABA2, 0x54C8, 0xABA3, 0x54AF, 0xABA4, 0x54AB, 0xABA5, 0x54B1, + 0xABA6, 0x54BB, 0xABA7, 0x54A9, 0xABA8, 0x54A7, 0xABA9, 0x54BF, 0xABAA, 0x56FF, 0xABAB, 0x5782, 0xABAC, 0x578B, 0xABAD, 0x57A0, + 0xABAE, 0x57A3, 0xABAF, 0x57A2, 0xABB0, 0x57CE, 0xABB1, 0x57AE, 0xABB2, 0x5793, 0xABB3, 0x5955, 0xABB4, 0x5951, 0xABB5, 0x594F, + 0xABB6, 0x594E, 0xABB7, 0x5950, 0xABB8, 0x59DC, 0xABB9, 0x59D8, 0xABBA, 0x59FF, 0xABBB, 0x59E3, 0xABBC, 0x59E8, 0xABBD, 0x5A03, + 0xABBE, 0x59E5, 0xABBF, 0x59EA, 0xABC0, 0x59DA, 0xABC1, 0x59E6, 0xABC2, 0x5A01, 0xABC3, 0x59FB, 0xABC4, 0x5B69, 0xABC5, 0x5BA3, + 0xABC6, 0x5BA6, 0xABC7, 0x5BA4, 0xABC8, 0x5BA2, 0xABC9, 0x5BA5, 0xABCA, 0x5C01, 0xABCB, 0x5C4E, 0xABCC, 0x5C4F, 0xABCD, 0x5C4D, + 0xABCE, 0x5C4B, 0xABCF, 0x5CD9, 0xABD0, 0x5CD2, 0xABD1, 0x5DF7, 0xABD2, 0x5E1D, 0xABD3, 0x5E25, 0xABD4, 0x5E1F, 0xABD5, 0x5E7D, + 0xABD6, 0x5EA0, 0xABD7, 0x5EA6, 0xABD8, 0x5EFA, 0xABD9, 0x5F08, 0xABDA, 0x5F2D, 0xABDB, 0x5F65, 0xABDC, 0x5F88, 0xABDD, 0x5F85, + 0xABDE, 0x5F8A, 0xABDF, 0x5F8B, 0xABE0, 0x5F87, 0xABE1, 0x5F8C, 0xABE2, 0x5F89, 0xABE3, 0x6012, 0xABE4, 0x601D, 0xABE5, 0x6020, + 0xABE6, 0x6025, 0xABE7, 0x600E, 0xABE8, 0x6028, 0xABE9, 0x604D, 0xABEA, 0x6070, 0xABEB, 0x6068, 0xABEC, 0x6062, 0xABED, 0x6046, + 0xABEE, 0x6043, 0xABEF, 0x606C, 0xABF0, 0x606B, 0xABF1, 0x606A, 0xABF2, 0x6064, 0xABF3, 0x6241, 0xABF4, 0x62DC, 0xABF5, 0x6316, + 0xABF6, 0x6309, 0xABF7, 0x62FC, 0xABF8, 0x62ED, 0xABF9, 0x6301, 0xABFA, 0x62EE, 0xABFB, 0x62FD, 0xABFC, 0x6307, 0xABFD, 0x62F1, + 0xABFE, 0x62F7, 0xAC40, 0x62EF, 0xAC41, 0x62EC, 0xAC42, 0x62FE, 0xAC43, 0x62F4, 0xAC44, 0x6311, 0xAC45, 0x6302, 0xAC46, 0x653F, + 0xAC47, 0x6545, 0xAC48, 0x65AB, 0xAC49, 0x65BD, 0xAC4A, 0x65E2, 0xAC4B, 0x6625, 0xAC4C, 0x662D, 0xAC4D, 0x6620, 0xAC4E, 0x6627, + 0xAC4F, 0x662F, 0xAC50, 0x661F, 0xAC51, 0x6628, 0xAC52, 0x6631, 0xAC53, 0x6624, 0xAC54, 0x66F7, 0xAC55, 0x67FF, 0xAC56, 0x67D3, + 0xAC57, 0x67F1, 0xAC58, 0x67D4, 0xAC59, 0x67D0, 0xAC5A, 0x67EC, 0xAC5B, 0x67B6, 0xAC5C, 0x67AF, 0xAC5D, 0x67F5, 0xAC5E, 0x67E9, + 0xAC5F, 0x67EF, 0xAC60, 0x67C4, 0xAC61, 0x67D1, 0xAC62, 0x67B4, 0xAC63, 0x67DA, 0xAC64, 0x67E5, 0xAC65, 0x67B8, 0xAC66, 0x67CF, + 0xAC67, 0x67DE, 0xAC68, 0x67F3, 0xAC69, 0x67B0, 0xAC6A, 0x67D9, 0xAC6B, 0x67E2, 0xAC6C, 0x67DD, 0xAC6D, 0x67D2, 0xAC6E, 0x6B6A, + 0xAC6F, 0x6B83, 0xAC70, 0x6B86, 0xAC71, 0x6BB5, 0xAC72, 0x6BD2, 0xAC73, 0x6BD7, 0xAC74, 0x6C1F, 0xAC75, 0x6CC9, 0xAC76, 0x6D0B, + 0xAC77, 0x6D32, 0xAC78, 0x6D2A, 0xAC79, 0x6D41, 0xAC7A, 0x6D25, 0xAC7B, 0x6D0C, 0xAC7C, 0x6D31, 0xAC7D, 0x6D1E, 0xAC7E, 0x6D17, + 0xACA1, 0x6D3B, 0xACA2, 0x6D3D, 0xACA3, 0x6D3E, 0xACA4, 0x6D36, 0xACA5, 0x6D1B, 0xACA6, 0x6CF5, 0xACA7, 0x6D39, 0xACA8, 0x6D27, + 0xACA9, 0x6D38, 0xACAA, 0x6D29, 0xACAB, 0x6D2E, 0xACAC, 0x6D35, 0xACAD, 0x6D0E, 0xACAE, 0x6D2B, 0xACAF, 0x70AB, 0xACB0, 0x70BA, + 0xACB1, 0x70B3, 0xACB2, 0x70AC, 0xACB3, 0x70AF, 0xACB4, 0x70AD, 0xACB5, 0x70B8, 0xACB6, 0x70AE, 0xACB7, 0x70A4, 0xACB8, 0x7230, + 0xACB9, 0x7272, 0xACBA, 0x726F, 0xACBB, 0x7274, 0xACBC, 0x72E9, 0xACBD, 0x72E0, 0xACBE, 0x72E1, 0xACBF, 0x73B7, 0xACC0, 0x73CA, + 0xACC1, 0x73BB, 0xACC2, 0x73B2, 0xACC3, 0x73CD, 0xACC4, 0x73C0, 0xACC5, 0x73B3, 0xACC6, 0x751A, 0xACC7, 0x752D, 0xACC8, 0x754F, + 0xACC9, 0x754C, 0xACCA, 0x754E, 0xACCB, 0x754B, 0xACCC, 0x75AB, 0xACCD, 0x75A4, 0xACCE, 0x75A5, 0xACCF, 0x75A2, 0xACD0, 0x75A3, + 0xACD1, 0x7678, 0xACD2, 0x7686, 0xACD3, 0x7687, 0xACD4, 0x7688, 0xACD5, 0x76C8, 0xACD6, 0x76C6, 0xACD7, 0x76C3, 0xACD8, 0x76C5, + 0xACD9, 0x7701, 0xACDA, 0x76F9, 0xACDB, 0x76F8, 0xACDC, 0x7709, 0xACDD, 0x770B, 0xACDE, 0x76FE, 0xACDF, 0x76FC, 0xACE0, 0x7707, + 0xACE1, 0x77DC, 0xACE2, 0x7802, 0xACE3, 0x7814, 0xACE4, 0x780C, 0xACE5, 0x780D, 0xACE6, 0x7946, 0xACE7, 0x7949, 0xACE8, 0x7948, + 0xACE9, 0x7947, 0xACEA, 0x79B9, 0xACEB, 0x79BA, 0xACEC, 0x79D1, 0xACED, 0x79D2, 0xACEE, 0x79CB, 0xACEF, 0x7A7F, 0xACF0, 0x7A81, + 0xACF1, 0x7AFF, 0xACF2, 0x7AFD, 0xACF3, 0x7C7D, 0xACF4, 0x7D02, 0xACF5, 0x7D05, 0xACF6, 0x7D00, 0xACF7, 0x7D09, 0xACF8, 0x7D07, + 0xACF9, 0x7D04, 0xACFA, 0x7D06, 0xACFB, 0x7F38, 0xACFC, 0x7F8E, 0xACFD, 0x7FBF, 0xACFE, 0x8004, 0xAD40, 0x8010, 0xAD41, 0x800D, + 0xAD42, 0x8011, 0xAD43, 0x8036, 0xAD44, 0x80D6, 0xAD45, 0x80E5, 0xAD46, 0x80DA, 0xAD47, 0x80C3, 0xAD48, 0x80C4, 0xAD49, 0x80CC, + 0xAD4A, 0x80E1, 0xAD4B, 0x80DB, 0xAD4C, 0x80CE, 0xAD4D, 0x80DE, 0xAD4E, 0x80E4, 0xAD4F, 0x80DD, 0xAD50, 0x81F4, 0xAD51, 0x8222, + 0xAD52, 0x82E7, 0xAD53, 0x8303, 0xAD54, 0x8305, 0xAD55, 0x82E3, 0xAD56, 0x82DB, 0xAD57, 0x82E6, 0xAD58, 0x8304, 0xAD59, 0x82E5, + 0xAD5A, 0x8302, 0xAD5B, 0x8309, 0xAD5C, 0x82D2, 0xAD5D, 0x82D7, 0xAD5E, 0x82F1, 0xAD5F, 0x8301, 0xAD60, 0x82DC, 0xAD61, 0x82D4, + 0xAD62, 0x82D1, 0xAD63, 0x82DE, 0xAD64, 0x82D3, 0xAD65, 0x82DF, 0xAD66, 0x82EF, 0xAD67, 0x8306, 0xAD68, 0x8650, 0xAD69, 0x8679, + 0xAD6A, 0x867B, 0xAD6B, 0x867A, 0xAD6C, 0x884D, 0xAD6D, 0x886B, 0xAD6E, 0x8981, 0xAD6F, 0x89D4, 0xAD70, 0x8A08, 0xAD71, 0x8A02, + 0xAD72, 0x8A03, 0xAD73, 0x8C9E, 0xAD74, 0x8CA0, 0xAD75, 0x8D74, 0xAD76, 0x8D73, 0xAD77, 0x8DB4, 0xAD78, 0x8ECD, 0xAD79, 0x8ECC, + 0xAD7A, 0x8FF0, 0xAD7B, 0x8FE6, 0xAD7C, 0x8FE2, 0xAD7D, 0x8FEA, 0xAD7E, 0x8FE5, 0xADA1, 0x8FED, 0xADA2, 0x8FEB, 0xADA3, 0x8FE4, + 0xADA4, 0x8FE8, 0xADA5, 0x90CA, 0xADA6, 0x90CE, 0xADA7, 0x90C1, 0xADA8, 0x90C3, 0xADA9, 0x914B, 0xADAA, 0x914A, 0xADAB, 0x91CD, + 0xADAC, 0x9582, 0xADAD, 0x9650, 0xADAE, 0x964B, 0xADAF, 0x964C, 0xADB0, 0x964D, 0xADB1, 0x9762, 0xADB2, 0x9769, 0xADB3, 0x97CB, + 0xADB4, 0x97ED, 0xADB5, 0x97F3, 0xADB6, 0x9801, 0xADB7, 0x98A8, 0xADB8, 0x98DB, 0xADB9, 0x98DF, 0xADBA, 0x9996, 0xADBB, 0x9999, + 0xADBC, 0x4E58, 0xADBD, 0x4EB3, 0xADBE, 0x500C, 0xADBF, 0x500D, 0xADC0, 0x5023, 0xADC1, 0x4FEF, 0xADC2, 0x5026, 0xADC3, 0x5025, + 0xADC4, 0x4FF8, 0xADC5, 0x5029, 0xADC6, 0x5016, 0xADC7, 0x5006, 0xADC8, 0x503C, 0xADC9, 0x501F, 0xADCA, 0x501A, 0xADCB, 0x5012, + 0xADCC, 0x5011, 0xADCD, 0x4FFA, 0xADCE, 0x5000, 0xADCF, 0x5014, 0xADD0, 0x5028, 0xADD1, 0x4FF1, 0xADD2, 0x5021, 0xADD3, 0x500B, + 0xADD4, 0x5019, 0xADD5, 0x5018, 0xADD6, 0x4FF3, 0xADD7, 0x4FEE, 0xADD8, 0x502D, 0xADD9, 0x502A, 0xADDA, 0x4FFE, 0xADDB, 0x502B, + 0xADDC, 0x5009, 0xADDD, 0x517C, 0xADDE, 0x51A4, 0xADDF, 0x51A5, 0xADE0, 0x51A2, 0xADE1, 0x51CD, 0xADE2, 0x51CC, 0xADE3, 0x51C6, + 0xADE4, 0x51CB, 0xADE5, 0x5256, 0xADE6, 0x525C, 0xADE7, 0x5254, 0xADE8, 0x525B, 0xADE9, 0x525D, 0xADEA, 0x532A, 0xADEB, 0x537F, + 0xADEC, 0x539F, 0xADED, 0x539D, 0xADEE, 0x53DF, 0xADEF, 0x54E8, 0xADF0, 0x5510, 0xADF1, 0x5501, 0xADF2, 0x5537, 0xADF3, 0x54FC, + 0xADF4, 0x54E5, 0xADF5, 0x54F2, 0xADF6, 0x5506, 0xADF7, 0x54FA, 0xADF8, 0x5514, 0xADF9, 0x54E9, 0xADFA, 0x54ED, 0xADFB, 0x54E1, + 0xADFC, 0x5509, 0xADFD, 0x54EE, 0xADFE, 0x54EA, 0xAE40, 0x54E6, 0xAE41, 0x5527, 0xAE42, 0x5507, 0xAE43, 0x54FD, 0xAE44, 0x550F, + 0xAE45, 0x5703, 0xAE46, 0x5704, 0xAE47, 0x57C2, 0xAE48, 0x57D4, 0xAE49, 0x57CB, 0xAE4A, 0x57C3, 0xAE4B, 0x5809, 0xAE4C, 0x590F, + 0xAE4D, 0x5957, 0xAE4E, 0x5958, 0xAE4F, 0x595A, 0xAE50, 0x5A11, 0xAE51, 0x5A18, 0xAE52, 0x5A1C, 0xAE53, 0x5A1F, 0xAE54, 0x5A1B, + 0xAE55, 0x5A13, 0xAE56, 0x59EC, 0xAE57, 0x5A20, 0xAE58, 0x5A23, 0xAE59, 0x5A29, 0xAE5A, 0x5A25, 0xAE5B, 0x5A0C, 0xAE5C, 0x5A09, + 0xAE5D, 0x5B6B, 0xAE5E, 0x5C58, 0xAE5F, 0x5BB0, 0xAE60, 0x5BB3, 0xAE61, 0x5BB6, 0xAE62, 0x5BB4, 0xAE63, 0x5BAE, 0xAE64, 0x5BB5, + 0xAE65, 0x5BB9, 0xAE66, 0x5BB8, 0xAE67, 0x5C04, 0xAE68, 0x5C51, 0xAE69, 0x5C55, 0xAE6A, 0x5C50, 0xAE6B, 0x5CED, 0xAE6C, 0x5CFD, + 0xAE6D, 0x5CFB, 0xAE6E, 0x5CEA, 0xAE6F, 0x5CE8, 0xAE70, 0x5CF0, 0xAE71, 0x5CF6, 0xAE72, 0x5D01, 0xAE73, 0x5CF4, 0xAE74, 0x5DEE, + 0xAE75, 0x5E2D, 0xAE76, 0x5E2B, 0xAE77, 0x5EAB, 0xAE78, 0x5EAD, 0xAE79, 0x5EA7, 0xAE7A, 0x5F31, 0xAE7B, 0x5F92, 0xAE7C, 0x5F91, + 0xAE7D, 0x5F90, 0xAE7E, 0x6059, 0xAEA1, 0x6063, 0xAEA2, 0x6065, 0xAEA3, 0x6050, 0xAEA4, 0x6055, 0xAEA5, 0x606D, 0xAEA6, 0x6069, + 0xAEA7, 0x606F, 0xAEA8, 0x6084, 0xAEA9, 0x609F, 0xAEAA, 0x609A, 0xAEAB, 0x608D, 0xAEAC, 0x6094, 0xAEAD, 0x608C, 0xAEAE, 0x6085, + 0xAEAF, 0x6096, 0xAEB0, 0x6247, 0xAEB1, 0x62F3, 0xAEB2, 0x6308, 0xAEB3, 0x62FF, 0xAEB4, 0x634E, 0xAEB5, 0x633E, 0xAEB6, 0x632F, + 0xAEB7, 0x6355, 0xAEB8, 0x6342, 0xAEB9, 0x6346, 0xAEBA, 0x634F, 0xAEBB, 0x6349, 0xAEBC, 0x633A, 0xAEBD, 0x6350, 0xAEBE, 0x633D, + 0xAEBF, 0x632A, 0xAEC0, 0x632B, 0xAEC1, 0x6328, 0xAEC2, 0x634D, 0xAEC3, 0x634C, 0xAEC4, 0x6548, 0xAEC5, 0x6549, 0xAEC6, 0x6599, + 0xAEC7, 0x65C1, 0xAEC8, 0x65C5, 0xAEC9, 0x6642, 0xAECA, 0x6649, 0xAECB, 0x664F, 0xAECC, 0x6643, 0xAECD, 0x6652, 0xAECE, 0x664C, + 0xAECF, 0x6645, 0xAED0, 0x6641, 0xAED1, 0x66F8, 0xAED2, 0x6714, 0xAED3, 0x6715, 0xAED4, 0x6717, 0xAED5, 0x6821, 0xAED6, 0x6838, + 0xAED7, 0x6848, 0xAED8, 0x6846, 0xAED9, 0x6853, 0xAEDA, 0x6839, 0xAEDB, 0x6842, 0xAEDC, 0x6854, 0xAEDD, 0x6829, 0xAEDE, 0x68B3, + 0xAEDF, 0x6817, 0xAEE0, 0x684C, 0xAEE1, 0x6851, 0xAEE2, 0x683D, 0xAEE3, 0x67F4, 0xAEE4, 0x6850, 0xAEE5, 0x6840, 0xAEE6, 0x683C, + 0xAEE7, 0x6843, 0xAEE8, 0x682A, 0xAEE9, 0x6845, 0xAEEA, 0x6813, 0xAEEB, 0x6818, 0xAEEC, 0x6841, 0xAEED, 0x6B8A, 0xAEEE, 0x6B89, + 0xAEEF, 0x6BB7, 0xAEF0, 0x6C23, 0xAEF1, 0x6C27, 0xAEF2, 0x6C28, 0xAEF3, 0x6C26, 0xAEF4, 0x6C24, 0xAEF5, 0x6CF0, 0xAEF6, 0x6D6A, + 0xAEF7, 0x6D95, 0xAEF8, 0x6D88, 0xAEF9, 0x6D87, 0xAEFA, 0x6D66, 0xAEFB, 0x6D78, 0xAEFC, 0x6D77, 0xAEFD, 0x6D59, 0xAEFE, 0x6D93, + 0xAF40, 0x6D6C, 0xAF41, 0x6D89, 0xAF42, 0x6D6E, 0xAF43, 0x6D5A, 0xAF44, 0x6D74, 0xAF45, 0x6D69, 0xAF46, 0x6D8C, 0xAF47, 0x6D8A, + 0xAF48, 0x6D79, 0xAF49, 0x6D85, 0xAF4A, 0x6D65, 0xAF4B, 0x6D94, 0xAF4C, 0x70CA, 0xAF4D, 0x70D8, 0xAF4E, 0x70E4, 0xAF4F, 0x70D9, + 0xAF50, 0x70C8, 0xAF51, 0x70CF, 0xAF52, 0x7239, 0xAF53, 0x7279, 0xAF54, 0x72FC, 0xAF55, 0x72F9, 0xAF56, 0x72FD, 0xAF57, 0x72F8, + 0xAF58, 0x72F7, 0xAF59, 0x7386, 0xAF5A, 0x73ED, 0xAF5B, 0x7409, 0xAF5C, 0x73EE, 0xAF5D, 0x73E0, 0xAF5E, 0x73EA, 0xAF5F, 0x73DE, + 0xAF60, 0x7554, 0xAF61, 0x755D, 0xAF62, 0x755C, 0xAF63, 0x755A, 0xAF64, 0x7559, 0xAF65, 0x75BE, 0xAF66, 0x75C5, 0xAF67, 0x75C7, + 0xAF68, 0x75B2, 0xAF69, 0x75B3, 0xAF6A, 0x75BD, 0xAF6B, 0x75BC, 0xAF6C, 0x75B9, 0xAF6D, 0x75C2, 0xAF6E, 0x75B8, 0xAF6F, 0x768B, + 0xAF70, 0x76B0, 0xAF71, 0x76CA, 0xAF72, 0x76CD, 0xAF73, 0x76CE, 0xAF74, 0x7729, 0xAF75, 0x771F, 0xAF76, 0x7720, 0xAF77, 0x7728, + 0xAF78, 0x77E9, 0xAF79, 0x7830, 0xAF7A, 0x7827, 0xAF7B, 0x7838, 0xAF7C, 0x781D, 0xAF7D, 0x7834, 0xAF7E, 0x7837, 0xAFA1, 0x7825, + 0xAFA2, 0x782D, 0xAFA3, 0x7820, 0xAFA4, 0x781F, 0xAFA5, 0x7832, 0xAFA6, 0x7955, 0xAFA7, 0x7950, 0xAFA8, 0x7960, 0xAFA9, 0x795F, + 0xAFAA, 0x7956, 0xAFAB, 0x795E, 0xAFAC, 0x795D, 0xAFAD, 0x7957, 0xAFAE, 0x795A, 0xAFAF, 0x79E4, 0xAFB0, 0x79E3, 0xAFB1, 0x79E7, + 0xAFB2, 0x79DF, 0xAFB3, 0x79E6, 0xAFB4, 0x79E9, 0xAFB5, 0x79D8, 0xAFB6, 0x7A84, 0xAFB7, 0x7A88, 0xAFB8, 0x7AD9, 0xAFB9, 0x7B06, + 0xAFBA, 0x7B11, 0xAFBB, 0x7C89, 0xAFBC, 0x7D21, 0xAFBD, 0x7D17, 0xAFBE, 0x7D0B, 0xAFBF, 0x7D0A, 0xAFC0, 0x7D20, 0xAFC1, 0x7D22, + 0xAFC2, 0x7D14, 0xAFC3, 0x7D10, 0xAFC4, 0x7D15, 0xAFC5, 0x7D1A, 0xAFC6, 0x7D1C, 0xAFC7, 0x7D0D, 0xAFC8, 0x7D19, 0xAFC9, 0x7D1B, + 0xAFCA, 0x7F3A, 0xAFCB, 0x7F5F, 0xAFCC, 0x7F94, 0xAFCD, 0x7FC5, 0xAFCE, 0x7FC1, 0xAFCF, 0x8006, 0xAFD0, 0x8018, 0xAFD1, 0x8015, + 0xAFD2, 0x8019, 0xAFD3, 0x8017, 0xAFD4, 0x803D, 0xAFD5, 0x803F, 0xAFD6, 0x80F1, 0xAFD7, 0x8102, 0xAFD8, 0x80F0, 0xAFD9, 0x8105, + 0xAFDA, 0x80ED, 0xAFDB, 0x80F4, 0xAFDC, 0x8106, 0xAFDD, 0x80F8, 0xAFDE, 0x80F3, 0xAFDF, 0x8108, 0xAFE0, 0x80FD, 0xAFE1, 0x810A, + 0xAFE2, 0x80FC, 0xAFE3, 0x80EF, 0xAFE4, 0x81ED, 0xAFE5, 0x81EC, 0xAFE6, 0x8200, 0xAFE7, 0x8210, 0xAFE8, 0x822A, 0xAFE9, 0x822B, + 0xAFEA, 0x8228, 0xAFEB, 0x822C, 0xAFEC, 0x82BB, 0xAFED, 0x832B, 0xAFEE, 0x8352, 0xAFEF, 0x8354, 0xAFF0, 0x834A, 0xAFF1, 0x8338, + 0xAFF2, 0x8350, 0xAFF3, 0x8349, 0xAFF4, 0x8335, 0xAFF5, 0x8334, 0xAFF6, 0x834F, 0xAFF7, 0x8332, 0xAFF8, 0x8339, 0xAFF9, 0x8336, + 0xAFFA, 0x8317, 0xAFFB, 0x8340, 0xAFFC, 0x8331, 0xAFFD, 0x8328, 0xAFFE, 0x8343, 0xB040, 0x8654, 0xB041, 0x868A, 0xB042, 0x86AA, + 0xB043, 0x8693, 0xB044, 0x86A4, 0xB045, 0x86A9, 0xB046, 0x868C, 0xB047, 0x86A3, 0xB048, 0x869C, 0xB049, 0x8870, 0xB04A, 0x8877, + 0xB04B, 0x8881, 0xB04C, 0x8882, 0xB04D, 0x887D, 0xB04E, 0x8879, 0xB04F, 0x8A18, 0xB050, 0x8A10, 0xB051, 0x8A0E, 0xB052, 0x8A0C, + 0xB053, 0x8A15, 0xB054, 0x8A0A, 0xB055, 0x8A17, 0xB056, 0x8A13, 0xB057, 0x8A16, 0xB058, 0x8A0F, 0xB059, 0x8A11, 0xB05A, 0x8C48, + 0xB05B, 0x8C7A, 0xB05C, 0x8C79, 0xB05D, 0x8CA1, 0xB05E, 0x8CA2, 0xB05F, 0x8D77, 0xB060, 0x8EAC, 0xB061, 0x8ED2, 0xB062, 0x8ED4, + 0xB063, 0x8ECF, 0xB064, 0x8FB1, 0xB065, 0x9001, 0xB066, 0x9006, 0xB067, 0x8FF7, 0xB068, 0x9000, 0xB069, 0x8FFA, 0xB06A, 0x8FF4, + 0xB06B, 0x9003, 0xB06C, 0x8FFD, 0xB06D, 0x9005, 0xB06E, 0x8FF8, 0xB06F, 0x9095, 0xB070, 0x90E1, 0xB071, 0x90DD, 0xB072, 0x90E2, + 0xB073, 0x9152, 0xB074, 0x914D, 0xB075, 0x914C, 0xB076, 0x91D8, 0xB077, 0x91DD, 0xB078, 0x91D7, 0xB079, 0x91DC, 0xB07A, 0x91D9, + 0xB07B, 0x9583, 0xB07C, 0x9662, 0xB07D, 0x9663, 0xB07E, 0x9661, 0xB0A1, 0x965B, 0xB0A2, 0x965D, 0xB0A3, 0x9664, 0xB0A4, 0x9658, + 0xB0A5, 0x965E, 0xB0A6, 0x96BB, 0xB0A7, 0x98E2, 0xB0A8, 0x99AC, 0xB0A9, 0x9AA8, 0xB0AA, 0x9AD8, 0xB0AB, 0x9B25, 0xB0AC, 0x9B32, + 0xB0AD, 0x9B3C, 0xB0AE, 0x4E7E, 0xB0AF, 0x507A, 0xB0B0, 0x507D, 0xB0B1, 0x505C, 0xB0B2, 0x5047, 0xB0B3, 0x5043, 0xB0B4, 0x504C, + 0xB0B5, 0x505A, 0xB0B6, 0x5049, 0xB0B7, 0x5065, 0xB0B8, 0x5076, 0xB0B9, 0x504E, 0xB0BA, 0x5055, 0xB0BB, 0x5075, 0xB0BC, 0x5074, + 0xB0BD, 0x5077, 0xB0BE, 0x504F, 0xB0BF, 0x500F, 0xB0C0, 0x506F, 0xB0C1, 0x506D, 0xB0C2, 0x515C, 0xB0C3, 0x5195, 0xB0C4, 0x51F0, + 0xB0C5, 0x526A, 0xB0C6, 0x526F, 0xB0C7, 0x52D2, 0xB0C8, 0x52D9, 0xB0C9, 0x52D8, 0xB0CA, 0x52D5, 0xB0CB, 0x5310, 0xB0CC, 0x530F, + 0xB0CD, 0x5319, 0xB0CE, 0x533F, 0xB0CF, 0x5340, 0xB0D0, 0x533E, 0xB0D1, 0x53C3, 0xB0D2, 0x66FC, 0xB0D3, 0x5546, 0xB0D4, 0x556A, + 0xB0D5, 0x5566, 0xB0D6, 0x5544, 0xB0D7, 0x555E, 0xB0D8, 0x5561, 0xB0D9, 0x5543, 0xB0DA, 0x554A, 0xB0DB, 0x5531, 0xB0DC, 0x5556, + 0xB0DD, 0x554F, 0xB0DE, 0x5555, 0xB0DF, 0x552F, 0xB0E0, 0x5564, 0xB0E1, 0x5538, 0xB0E2, 0x552E, 0xB0E3, 0x555C, 0xB0E4, 0x552C, + 0xB0E5, 0x5563, 0xB0E6, 0x5533, 0xB0E7, 0x5541, 0xB0E8, 0x5557, 0xB0E9, 0x5708, 0xB0EA, 0x570B, 0xB0EB, 0x5709, 0xB0EC, 0x57DF, + 0xB0ED, 0x5805, 0xB0EE, 0x580A, 0xB0EF, 0x5806, 0xB0F0, 0x57E0, 0xB0F1, 0x57E4, 0xB0F2, 0x57FA, 0xB0F3, 0x5802, 0xB0F4, 0x5835, + 0xB0F5, 0x57F7, 0xB0F6, 0x57F9, 0xB0F7, 0x5920, 0xB0F8, 0x5962, 0xB0F9, 0x5A36, 0xB0FA, 0x5A41, 0xB0FB, 0x5A49, 0xB0FC, 0x5A66, + 0xB0FD, 0x5A6A, 0xB0FE, 0x5A40, 0xB140, 0x5A3C, 0xB141, 0x5A62, 0xB142, 0x5A5A, 0xB143, 0x5A46, 0xB144, 0x5A4A, 0xB145, 0x5B70, + 0xB146, 0x5BC7, 0xB147, 0x5BC5, 0xB148, 0x5BC4, 0xB149, 0x5BC2, 0xB14A, 0x5BBF, 0xB14B, 0x5BC6, 0xB14C, 0x5C09, 0xB14D, 0x5C08, + 0xB14E, 0x5C07, 0xB14F, 0x5C60, 0xB150, 0x5C5C, 0xB151, 0x5C5D, 0xB152, 0x5D07, 0xB153, 0x5D06, 0xB154, 0x5D0E, 0xB155, 0x5D1B, + 0xB156, 0x5D16, 0xB157, 0x5D22, 0xB158, 0x5D11, 0xB159, 0x5D29, 0xB15A, 0x5D14, 0xB15B, 0x5D19, 0xB15C, 0x5D24, 0xB15D, 0x5D27, + 0xB15E, 0x5D17, 0xB15F, 0x5DE2, 0xB160, 0x5E38, 0xB161, 0x5E36, 0xB162, 0x5E33, 0xB163, 0x5E37, 0xB164, 0x5EB7, 0xB165, 0x5EB8, + 0xB166, 0x5EB6, 0xB167, 0x5EB5, 0xB168, 0x5EBE, 0xB169, 0x5F35, 0xB16A, 0x5F37, 0xB16B, 0x5F57, 0xB16C, 0x5F6C, 0xB16D, 0x5F69, + 0xB16E, 0x5F6B, 0xB16F, 0x5F97, 0xB170, 0x5F99, 0xB171, 0x5F9E, 0xB172, 0x5F98, 0xB173, 0x5FA1, 0xB174, 0x5FA0, 0xB175, 0x5F9C, + 0xB176, 0x607F, 0xB177, 0x60A3, 0xB178, 0x6089, 0xB179, 0x60A0, 0xB17A, 0x60A8, 0xB17B, 0x60CB, 0xB17C, 0x60B4, 0xB17D, 0x60E6, + 0xB17E, 0x60BD, 0xB1A1, 0x60C5, 0xB1A2, 0x60BB, 0xB1A3, 0x60B5, 0xB1A4, 0x60DC, 0xB1A5, 0x60BC, 0xB1A6, 0x60D8, 0xB1A7, 0x60D5, + 0xB1A8, 0x60C6, 0xB1A9, 0x60DF, 0xB1AA, 0x60B8, 0xB1AB, 0x60DA, 0xB1AC, 0x60C7, 0xB1AD, 0x621A, 0xB1AE, 0x621B, 0xB1AF, 0x6248, + 0xB1B0, 0x63A0, 0xB1B1, 0x63A7, 0xB1B2, 0x6372, 0xB1B3, 0x6396, 0xB1B4, 0x63A2, 0xB1B5, 0x63A5, 0xB1B6, 0x6377, 0xB1B7, 0x6367, + 0xB1B8, 0x6398, 0xB1B9, 0x63AA, 0xB1BA, 0x6371, 0xB1BB, 0x63A9, 0xB1BC, 0x6389, 0xB1BD, 0x6383, 0xB1BE, 0x639B, 0xB1BF, 0x636B, + 0xB1C0, 0x63A8, 0xB1C1, 0x6384, 0xB1C2, 0x6388, 0xB1C3, 0x6399, 0xB1C4, 0x63A1, 0xB1C5, 0x63AC, 0xB1C6, 0x6392, 0xB1C7, 0x638F, + 0xB1C8, 0x6380, 0xB1C9, 0x637B, 0xB1CA, 0x6369, 0xB1CB, 0x6368, 0xB1CC, 0x637A, 0xB1CD, 0x655D, 0xB1CE, 0x6556, 0xB1CF, 0x6551, + 0xB1D0, 0x6559, 0xB1D1, 0x6557, 0xB1D2, 0x555F, 0xB1D3, 0x654F, 0xB1D4, 0x6558, 0xB1D5, 0x6555, 0xB1D6, 0x6554, 0xB1D7, 0x659C, + 0xB1D8, 0x659B, 0xB1D9, 0x65AC, 0xB1DA, 0x65CF, 0xB1DB, 0x65CB, 0xB1DC, 0x65CC, 0xB1DD, 0x65CE, 0xB1DE, 0x665D, 0xB1DF, 0x665A, + 0xB1E0, 0x6664, 0xB1E1, 0x6668, 0xB1E2, 0x6666, 0xB1E3, 0x665E, 0xB1E4, 0x66F9, 0xB1E5, 0x52D7, 0xB1E6, 0x671B, 0xB1E7, 0x6881, + 0xB1E8, 0x68AF, 0xB1E9, 0x68A2, 0xB1EA, 0x6893, 0xB1EB, 0x68B5, 0xB1EC, 0x687F, 0xB1ED, 0x6876, 0xB1EE, 0x68B1, 0xB1EF, 0x68A7, + 0xB1F0, 0x6897, 0xB1F1, 0x68B0, 0xB1F2, 0x6883, 0xB1F3, 0x68C4, 0xB1F4, 0x68AD, 0xB1F5, 0x6886, 0xB1F6, 0x6885, 0xB1F7, 0x6894, + 0xB1F8, 0x689D, 0xB1F9, 0x68A8, 0xB1FA, 0x689F, 0xB1FB, 0x68A1, 0xB1FC, 0x6882, 0xB1FD, 0x6B32, 0xB1FE, 0x6BBA, 0xB240, 0x6BEB, + 0xB241, 0x6BEC, 0xB242, 0x6C2B, 0xB243, 0x6D8E, 0xB244, 0x6DBC, 0xB245, 0x6DF3, 0xB246, 0x6DD9, 0xB247, 0x6DB2, 0xB248, 0x6DE1, + 0xB249, 0x6DCC, 0xB24A, 0x6DE4, 0xB24B, 0x6DFB, 0xB24C, 0x6DFA, 0xB24D, 0x6E05, 0xB24E, 0x6DC7, 0xB24F, 0x6DCB, 0xB250, 0x6DAF, + 0xB251, 0x6DD1, 0xB252, 0x6DAE, 0xB253, 0x6DDE, 0xB254, 0x6DF9, 0xB255, 0x6DB8, 0xB256, 0x6DF7, 0xB257, 0x6DF5, 0xB258, 0x6DC5, + 0xB259, 0x6DD2, 0xB25A, 0x6E1A, 0xB25B, 0x6DB5, 0xB25C, 0x6DDA, 0xB25D, 0x6DEB, 0xB25E, 0x6DD8, 0xB25F, 0x6DEA, 0xB260, 0x6DF1, + 0xB261, 0x6DEE, 0xB262, 0x6DE8, 0xB263, 0x6DC6, 0xB264, 0x6DC4, 0xB265, 0x6DAA, 0xB266, 0x6DEC, 0xB267, 0x6DBF, 0xB268, 0x6DE6, + 0xB269, 0x70F9, 0xB26A, 0x7109, 0xB26B, 0x710A, 0xB26C, 0x70FD, 0xB26D, 0x70EF, 0xB26E, 0x723D, 0xB26F, 0x727D, 0xB270, 0x7281, + 0xB271, 0x731C, 0xB272, 0x731B, 0xB273, 0x7316, 0xB274, 0x7313, 0xB275, 0x7319, 0xB276, 0x7387, 0xB277, 0x7405, 0xB278, 0x740A, + 0xB279, 0x7403, 0xB27A, 0x7406, 0xB27B, 0x73FE, 0xB27C, 0x740D, 0xB27D, 0x74E0, 0xB27E, 0x74F6, 0xB2A1, 0x74F7, 0xB2A2, 0x751C, + 0xB2A3, 0x7522, 0xB2A4, 0x7565, 0xB2A5, 0x7566, 0xB2A6, 0x7562, 0xB2A7, 0x7570, 0xB2A8, 0x758F, 0xB2A9, 0x75D4, 0xB2AA, 0x75D5, + 0xB2AB, 0x75B5, 0xB2AC, 0x75CA, 0xB2AD, 0x75CD, 0xB2AE, 0x768E, 0xB2AF, 0x76D4, 0xB2B0, 0x76D2, 0xB2B1, 0x76DB, 0xB2B2, 0x7737, + 0xB2B3, 0x773E, 0xB2B4, 0x773C, 0xB2B5, 0x7736, 0xB2B6, 0x7738, 0xB2B7, 0x773A, 0xB2B8, 0x786B, 0xB2B9, 0x7843, 0xB2BA, 0x784E, + 0xB2BB, 0x7965, 0xB2BC, 0x7968, 0xB2BD, 0x796D, 0xB2BE, 0x79FB, 0xB2BF, 0x7A92, 0xB2C0, 0x7A95, 0xB2C1, 0x7B20, 0xB2C2, 0x7B28, + 0xB2C3, 0x7B1B, 0xB2C4, 0x7B2C, 0xB2C5, 0x7B26, 0xB2C6, 0x7B19, 0xB2C7, 0x7B1E, 0xB2C8, 0x7B2E, 0xB2C9, 0x7C92, 0xB2CA, 0x7C97, + 0xB2CB, 0x7C95, 0xB2CC, 0x7D46, 0xB2CD, 0x7D43, 0xB2CE, 0x7D71, 0xB2CF, 0x7D2E, 0xB2D0, 0x7D39, 0xB2D1, 0x7D3C, 0xB2D2, 0x7D40, + 0xB2D3, 0x7D30, 0xB2D4, 0x7D33, 0xB2D5, 0x7D44, 0xB2D6, 0x7D2F, 0xB2D7, 0x7D42, 0xB2D8, 0x7D32, 0xB2D9, 0x7D31, 0xB2DA, 0x7F3D, + 0xB2DB, 0x7F9E, 0xB2DC, 0x7F9A, 0xB2DD, 0x7FCC, 0xB2DE, 0x7FCE, 0xB2DF, 0x7FD2, 0xB2E0, 0x801C, 0xB2E1, 0x804A, 0xB2E2, 0x8046, + 0xB2E3, 0x812F, 0xB2E4, 0x8116, 0xB2E5, 0x8123, 0xB2E6, 0x812B, 0xB2E7, 0x8129, 0xB2E8, 0x8130, 0xB2E9, 0x8124, 0xB2EA, 0x8202, + 0xB2EB, 0x8235, 0xB2EC, 0x8237, 0xB2ED, 0x8236, 0xB2EE, 0x8239, 0xB2EF, 0x838E, 0xB2F0, 0x839E, 0xB2F1, 0x8398, 0xB2F2, 0x8378, + 0xB2F3, 0x83A2, 0xB2F4, 0x8396, 0xB2F5, 0x83BD, 0xB2F6, 0x83AB, 0xB2F7, 0x8392, 0xB2F8, 0x838A, 0xB2F9, 0x8393, 0xB2FA, 0x8389, + 0xB2FB, 0x83A0, 0xB2FC, 0x8377, 0xB2FD, 0x837B, 0xB2FE, 0x837C, 0xB340, 0x8386, 0xB341, 0x83A7, 0xB342, 0x8655, 0xB343, 0x5F6A, + 0xB344, 0x86C7, 0xB345, 0x86C0, 0xB346, 0x86B6, 0xB347, 0x86C4, 0xB348, 0x86B5, 0xB349, 0x86C6, 0xB34A, 0x86CB, 0xB34B, 0x86B1, + 0xB34C, 0x86AF, 0xB34D, 0x86C9, 0xB34E, 0x8853, 0xB34F, 0x889E, 0xB350, 0x8888, 0xB351, 0x88AB, 0xB352, 0x8892, 0xB353, 0x8896, + 0xB354, 0x888D, 0xB355, 0x888B, 0xB356, 0x8993, 0xB357, 0x898F, 0xB358, 0x8A2A, 0xB359, 0x8A1D, 0xB35A, 0x8A23, 0xB35B, 0x8A25, + 0xB35C, 0x8A31, 0xB35D, 0x8A2D, 0xB35E, 0x8A1F, 0xB35F, 0x8A1B, 0xB360, 0x8A22, 0xB361, 0x8C49, 0xB362, 0x8C5A, 0xB363, 0x8CA9, + 0xB364, 0x8CAC, 0xB365, 0x8CAB, 0xB366, 0x8CA8, 0xB367, 0x8CAA, 0xB368, 0x8CA7, 0xB369, 0x8D67, 0xB36A, 0x8D66, 0xB36B, 0x8DBE, + 0xB36C, 0x8DBA, 0xB36D, 0x8EDB, 0xB36E, 0x8EDF, 0xB36F, 0x9019, 0xB370, 0x900D, 0xB371, 0x901A, 0xB372, 0x9017, 0xB373, 0x9023, + 0xB374, 0x901F, 0xB375, 0x901D, 0xB376, 0x9010, 0xB377, 0x9015, 0xB378, 0x901E, 0xB379, 0x9020, 0xB37A, 0x900F, 0xB37B, 0x9022, + 0xB37C, 0x9016, 0xB37D, 0x901B, 0xB37E, 0x9014, 0xB3A1, 0x90E8, 0xB3A2, 0x90ED, 0xB3A3, 0x90FD, 0xB3A4, 0x9157, 0xB3A5, 0x91CE, + 0xB3A6, 0x91F5, 0xB3A7, 0x91E6, 0xB3A8, 0x91E3, 0xB3A9, 0x91E7, 0xB3AA, 0x91ED, 0xB3AB, 0x91E9, 0xB3AC, 0x9589, 0xB3AD, 0x966A, + 0xB3AE, 0x9675, 0xB3AF, 0x9673, 0xB3B0, 0x9678, 0xB3B1, 0x9670, 0xB3B2, 0x9674, 0xB3B3, 0x9676, 0xB3B4, 0x9677, 0xB3B5, 0x966C, + 0xB3B6, 0x96C0, 0xB3B7, 0x96EA, 0xB3B8, 0x96E9, 0xB3B9, 0x7AE0, 0xB3BA, 0x7ADF, 0xB3BB, 0x9802, 0xB3BC, 0x9803, 0xB3BD, 0x9B5A, + 0xB3BE, 0x9CE5, 0xB3BF, 0x9E75, 0xB3C0, 0x9E7F, 0xB3C1, 0x9EA5, 0xB3C2, 0x9EBB, 0xB3C3, 0x50A2, 0xB3C4, 0x508D, 0xB3C5, 0x5085, + 0xB3C6, 0x5099, 0xB3C7, 0x5091, 0xB3C8, 0x5080, 0xB3C9, 0x5096, 0xB3CA, 0x5098, 0xB3CB, 0x509A, 0xB3CC, 0x6700, 0xB3CD, 0x51F1, + 0xB3CE, 0x5272, 0xB3CF, 0x5274, 0xB3D0, 0x5275, 0xB3D1, 0x5269, 0xB3D2, 0x52DE, 0xB3D3, 0x52DD, 0xB3D4, 0x52DB, 0xB3D5, 0x535A, + 0xB3D6, 0x53A5, 0xB3D7, 0x557B, 0xB3D8, 0x5580, 0xB3D9, 0x55A7, 0xB3DA, 0x557C, 0xB3DB, 0x558A, 0xB3DC, 0x559D, 0xB3DD, 0x5598, + 0xB3DE, 0x5582, 0xB3DF, 0x559C, 0xB3E0, 0x55AA, 0xB3E1, 0x5594, 0xB3E2, 0x5587, 0xB3E3, 0x558B, 0xB3E4, 0x5583, 0xB3E5, 0x55B3, + 0xB3E6, 0x55AE, 0xB3E7, 0x559F, 0xB3E8, 0x553E, 0xB3E9, 0x55B2, 0xB3EA, 0x559A, 0xB3EB, 0x55BB, 0xB3EC, 0x55AC, 0xB3ED, 0x55B1, + 0xB3EE, 0x557E, 0xB3EF, 0x5589, 0xB3F0, 0x55AB, 0xB3F1, 0x5599, 0xB3F2, 0x570D, 0xB3F3, 0x582F, 0xB3F4, 0x582A, 0xB3F5, 0x5834, + 0xB3F6, 0x5824, 0xB3F7, 0x5830, 0xB3F8, 0x5831, 0xB3F9, 0x5821, 0xB3FA, 0x581D, 0xB3FB, 0x5820, 0xB3FC, 0x58F9, 0xB3FD, 0x58FA, + 0xB3FE, 0x5960, 0xB440, 0x5A77, 0xB441, 0x5A9A, 0xB442, 0x5A7F, 0xB443, 0x5A92, 0xB444, 0x5A9B, 0xB445, 0x5AA7, 0xB446, 0x5B73, + 0xB447, 0x5B71, 0xB448, 0x5BD2, 0xB449, 0x5BCC, 0xB44A, 0x5BD3, 0xB44B, 0x5BD0, 0xB44C, 0x5C0A, 0xB44D, 0x5C0B, 0xB44E, 0x5C31, + 0xB44F, 0x5D4C, 0xB450, 0x5D50, 0xB451, 0x5D34, 0xB452, 0x5D47, 0xB453, 0x5DFD, 0xB454, 0x5E45, 0xB455, 0x5E3D, 0xB456, 0x5E40, + 0xB457, 0x5E43, 0xB458, 0x5E7E, 0xB459, 0x5ECA, 0xB45A, 0x5EC1, 0xB45B, 0x5EC2, 0xB45C, 0x5EC4, 0xB45D, 0x5F3C, 0xB45E, 0x5F6D, + 0xB45F, 0x5FA9, 0xB460, 0x5FAA, 0xB461, 0x5FA8, 0xB462, 0x60D1, 0xB463, 0x60E1, 0xB464, 0x60B2, 0xB465, 0x60B6, 0xB466, 0x60E0, + 0xB467, 0x611C, 0xB468, 0x6123, 0xB469, 0x60FA, 0xB46A, 0x6115, 0xB46B, 0x60F0, 0xB46C, 0x60FB, 0xB46D, 0x60F4, 0xB46E, 0x6168, + 0xB46F, 0x60F1, 0xB470, 0x610E, 0xB471, 0x60F6, 0xB472, 0x6109, 0xB473, 0x6100, 0xB474, 0x6112, 0xB475, 0x621F, 0xB476, 0x6249, + 0xB477, 0x63A3, 0xB478, 0x638C, 0xB479, 0x63CF, 0xB47A, 0x63C0, 0xB47B, 0x63E9, 0xB47C, 0x63C9, 0xB47D, 0x63C6, 0xB47E, 0x63CD, + 0xB4A1, 0x63D2, 0xB4A2, 0x63E3, 0xB4A3, 0x63D0, 0xB4A4, 0x63E1, 0xB4A5, 0x63D6, 0xB4A6, 0x63ED, 0xB4A7, 0x63EE, 0xB4A8, 0x6376, + 0xB4A9, 0x63F4, 0xB4AA, 0x63EA, 0xB4AB, 0x63DB, 0xB4AC, 0x6452, 0xB4AD, 0x63DA, 0xB4AE, 0x63F9, 0xB4AF, 0x655E, 0xB4B0, 0x6566, + 0xB4B1, 0x6562, 0xB4B2, 0x6563, 0xB4B3, 0x6591, 0xB4B4, 0x6590, 0xB4B5, 0x65AF, 0xB4B6, 0x666E, 0xB4B7, 0x6670, 0xB4B8, 0x6674, + 0xB4B9, 0x6676, 0xB4BA, 0x666F, 0xB4BB, 0x6691, 0xB4BC, 0x667A, 0xB4BD, 0x667E, 0xB4BE, 0x6677, 0xB4BF, 0x66FE, 0xB4C0, 0x66FF, + 0xB4C1, 0x671F, 0xB4C2, 0x671D, 0xB4C3, 0x68FA, 0xB4C4, 0x68D5, 0xB4C5, 0x68E0, 0xB4C6, 0x68D8, 0xB4C7, 0x68D7, 0xB4C8, 0x6905, + 0xB4C9, 0x68DF, 0xB4CA, 0x68F5, 0xB4CB, 0x68EE, 0xB4CC, 0x68E7, 0xB4CD, 0x68F9, 0xB4CE, 0x68D2, 0xB4CF, 0x68F2, 0xB4D0, 0x68E3, + 0xB4D1, 0x68CB, 0xB4D2, 0x68CD, 0xB4D3, 0x690D, 0xB4D4, 0x6912, 0xB4D5, 0x690E, 0xB4D6, 0x68C9, 0xB4D7, 0x68DA, 0xB4D8, 0x696E, + 0xB4D9, 0x68FB, 0xB4DA, 0x6B3E, 0xB4DB, 0x6B3A, 0xB4DC, 0x6B3D, 0xB4DD, 0x6B98, 0xB4DE, 0x6B96, 0xB4DF, 0x6BBC, 0xB4E0, 0x6BEF, + 0xB4E1, 0x6C2E, 0xB4E2, 0x6C2F, 0xB4E3, 0x6C2C, 0xB4E4, 0x6E2F, 0xB4E5, 0x6E38, 0xB4E6, 0x6E54, 0xB4E7, 0x6E21, 0xB4E8, 0x6E32, + 0xB4E9, 0x6E67, 0xB4EA, 0x6E4A, 0xB4EB, 0x6E20, 0xB4EC, 0x6E25, 0xB4ED, 0x6E23, 0xB4EE, 0x6E1B, 0xB4EF, 0x6E5B, 0xB4F0, 0x6E58, + 0xB4F1, 0x6E24, 0xB4F2, 0x6E56, 0xB4F3, 0x6E6E, 0xB4F4, 0x6E2D, 0xB4F5, 0x6E26, 0xB4F6, 0x6E6F, 0xB4F7, 0x6E34, 0xB4F8, 0x6E4D, + 0xB4F9, 0x6E3A, 0xB4FA, 0x6E2C, 0xB4FB, 0x6E43, 0xB4FC, 0x6E1D, 0xB4FD, 0x6E3E, 0xB4FE, 0x6ECB, 0xB540, 0x6E89, 0xB541, 0x6E19, + 0xB542, 0x6E4E, 0xB543, 0x6E63, 0xB544, 0x6E44, 0xB545, 0x6E72, 0xB546, 0x6E69, 0xB547, 0x6E5F, 0xB548, 0x7119, 0xB549, 0x711A, + 0xB54A, 0x7126, 0xB54B, 0x7130, 0xB54C, 0x7121, 0xB54D, 0x7136, 0xB54E, 0x716E, 0xB54F, 0x711C, 0xB550, 0x724C, 0xB551, 0x7284, + 0xB552, 0x7280, 0xB553, 0x7336, 0xB554, 0x7325, 0xB555, 0x7334, 0xB556, 0x7329, 0xB557, 0x743A, 0xB558, 0x742A, 0xB559, 0x7433, + 0xB55A, 0x7422, 0xB55B, 0x7425, 0xB55C, 0x7435, 0xB55D, 0x7436, 0xB55E, 0x7434, 0xB55F, 0x742F, 0xB560, 0x741B, 0xB561, 0x7426, + 0xB562, 0x7428, 0xB563, 0x7525, 0xB564, 0x7526, 0xB565, 0x756B, 0xB566, 0x756A, 0xB567, 0x75E2, 0xB568, 0x75DB, 0xB569, 0x75E3, + 0xB56A, 0x75D9, 0xB56B, 0x75D8, 0xB56C, 0x75DE, 0xB56D, 0x75E0, 0xB56E, 0x767B, 0xB56F, 0x767C, 0xB570, 0x7696, 0xB571, 0x7693, + 0xB572, 0x76B4, 0xB573, 0x76DC, 0xB574, 0x774F, 0xB575, 0x77ED, 0xB576, 0x785D, 0xB577, 0x786C, 0xB578, 0x786F, 0xB579, 0x7A0D, + 0xB57A, 0x7A08, 0xB57B, 0x7A0B, 0xB57C, 0x7A05, 0xB57D, 0x7A00, 0xB57E, 0x7A98, 0xB5A1, 0x7A97, 0xB5A2, 0x7A96, 0xB5A3, 0x7AE5, + 0xB5A4, 0x7AE3, 0xB5A5, 0x7B49, 0xB5A6, 0x7B56, 0xB5A7, 0x7B46, 0xB5A8, 0x7B50, 0xB5A9, 0x7B52, 0xB5AA, 0x7B54, 0xB5AB, 0x7B4D, + 0xB5AC, 0x7B4B, 0xB5AD, 0x7B4F, 0xB5AE, 0x7B51, 0xB5AF, 0x7C9F, 0xB5B0, 0x7CA5, 0xB5B1, 0x7D5E, 0xB5B2, 0x7D50, 0xB5B3, 0x7D68, + 0xB5B4, 0x7D55, 0xB5B5, 0x7D2B, 0xB5B6, 0x7D6E, 0xB5B7, 0x7D72, 0xB5B8, 0x7D61, 0xB5B9, 0x7D66, 0xB5BA, 0x7D62, 0xB5BB, 0x7D70, + 0xB5BC, 0x7D73, 0xB5BD, 0x5584, 0xB5BE, 0x7FD4, 0xB5BF, 0x7FD5, 0xB5C0, 0x800B, 0xB5C1, 0x8052, 0xB5C2, 0x8085, 0xB5C3, 0x8155, + 0xB5C4, 0x8154, 0xB5C5, 0x814B, 0xB5C6, 0x8151, 0xB5C7, 0x814E, 0xB5C8, 0x8139, 0xB5C9, 0x8146, 0xB5CA, 0x813E, 0xB5CB, 0x814C, + 0xB5CC, 0x8153, 0xB5CD, 0x8174, 0xB5CE, 0x8212, 0xB5CF, 0x821C, 0xB5D0, 0x83E9, 0xB5D1, 0x8403, 0xB5D2, 0x83F8, 0xB5D3, 0x840D, + 0xB5D4, 0x83E0, 0xB5D5, 0x83C5, 0xB5D6, 0x840B, 0xB5D7, 0x83C1, 0xB5D8, 0x83EF, 0xB5D9, 0x83F1, 0xB5DA, 0x83F4, 0xB5DB, 0x8457, + 0xB5DC, 0x840A, 0xB5DD, 0x83F0, 0xB5DE, 0x840C, 0xB5DF, 0x83CC, 0xB5E0, 0x83FD, 0xB5E1, 0x83F2, 0xB5E2, 0x83CA, 0xB5E3, 0x8438, + 0xB5E4, 0x840E, 0xB5E5, 0x8404, 0xB5E6, 0x83DC, 0xB5E7, 0x8407, 0xB5E8, 0x83D4, 0xB5E9, 0x83DF, 0xB5EA, 0x865B, 0xB5EB, 0x86DF, + 0xB5EC, 0x86D9, 0xB5ED, 0x86ED, 0xB5EE, 0x86D4, 0xB5EF, 0x86DB, 0xB5F0, 0x86E4, 0xB5F1, 0x86D0, 0xB5F2, 0x86DE, 0xB5F3, 0x8857, + 0xB5F4, 0x88C1, 0xB5F5, 0x88C2, 0xB5F6, 0x88B1, 0xB5F7, 0x8983, 0xB5F8, 0x8996, 0xB5F9, 0x8A3B, 0xB5FA, 0x8A60, 0xB5FB, 0x8A55, + 0xB5FC, 0x8A5E, 0xB5FD, 0x8A3C, 0xB5FE, 0x8A41, 0xB640, 0x8A54, 0xB641, 0x8A5B, 0xB642, 0x8A50, 0xB643, 0x8A46, 0xB644, 0x8A34, + 0xB645, 0x8A3A, 0xB646, 0x8A36, 0xB647, 0x8A56, 0xB648, 0x8C61, 0xB649, 0x8C82, 0xB64A, 0x8CAF, 0xB64B, 0x8CBC, 0xB64C, 0x8CB3, + 0xB64D, 0x8CBD, 0xB64E, 0x8CC1, 0xB64F, 0x8CBB, 0xB650, 0x8CC0, 0xB651, 0x8CB4, 0xB652, 0x8CB7, 0xB653, 0x8CB6, 0xB654, 0x8CBF, + 0xB655, 0x8CB8, 0xB656, 0x8D8A, 0xB657, 0x8D85, 0xB658, 0x8D81, 0xB659, 0x8DCE, 0xB65A, 0x8DDD, 0xB65B, 0x8DCB, 0xB65C, 0x8DDA, + 0xB65D, 0x8DD1, 0xB65E, 0x8DCC, 0xB65F, 0x8DDB, 0xB660, 0x8DC6, 0xB661, 0x8EFB, 0xB662, 0x8EF8, 0xB663, 0x8EFC, 0xB664, 0x8F9C, + 0xB665, 0x902E, 0xB666, 0x9035, 0xB667, 0x9031, 0xB668, 0x9038, 0xB669, 0x9032, 0xB66A, 0x9036, 0xB66B, 0x9102, 0xB66C, 0x90F5, + 0xB66D, 0x9109, 0xB66E, 0x90FE, 0xB66F, 0x9163, 0xB670, 0x9165, 0xB671, 0x91CF, 0xB672, 0x9214, 0xB673, 0x9215, 0xB674, 0x9223, + 0xB675, 0x9209, 0xB676, 0x921E, 0xB677, 0x920D, 0xB678, 0x9210, 0xB679, 0x9207, 0xB67A, 0x9211, 0xB67B, 0x9594, 0xB67C, 0x958F, + 0xB67D, 0x958B, 0xB67E, 0x9591, 0xB6A1, 0x9593, 0xB6A2, 0x9592, 0xB6A3, 0x958E, 0xB6A4, 0x968A, 0xB6A5, 0x968E, 0xB6A6, 0x968B, + 0xB6A7, 0x967D, 0xB6A8, 0x9685, 0xB6A9, 0x9686, 0xB6AA, 0x968D, 0xB6AB, 0x9672, 0xB6AC, 0x9684, 0xB6AD, 0x96C1, 0xB6AE, 0x96C5, + 0xB6AF, 0x96C4, 0xB6B0, 0x96C6, 0xB6B1, 0x96C7, 0xB6B2, 0x96EF, 0xB6B3, 0x96F2, 0xB6B4, 0x97CC, 0xB6B5, 0x9805, 0xB6B6, 0x9806, + 0xB6B7, 0x9808, 0xB6B8, 0x98E7, 0xB6B9, 0x98EA, 0xB6BA, 0x98EF, 0xB6BB, 0x98E9, 0xB6BC, 0x98F2, 0xB6BD, 0x98ED, 0xB6BE, 0x99AE, + 0xB6BF, 0x99AD, 0xB6C0, 0x9EC3, 0xB6C1, 0x9ECD, 0xB6C2, 0x9ED1, 0xB6C3, 0x4E82, 0xB6C4, 0x50AD, 0xB6C5, 0x50B5, 0xB6C6, 0x50B2, + 0xB6C7, 0x50B3, 0xB6C8, 0x50C5, 0xB6C9, 0x50BE, 0xB6CA, 0x50AC, 0xB6CB, 0x50B7, 0xB6CC, 0x50BB, 0xB6CD, 0x50AF, 0xB6CE, 0x50C7, + 0xB6CF, 0x527F, 0xB6D0, 0x5277, 0xB6D1, 0x527D, 0xB6D2, 0x52DF, 0xB6D3, 0x52E6, 0xB6D4, 0x52E4, 0xB6D5, 0x52E2, 0xB6D6, 0x52E3, + 0xB6D7, 0x532F, 0xB6D8, 0x55DF, 0xB6D9, 0x55E8, 0xB6DA, 0x55D3, 0xB6DB, 0x55E6, 0xB6DC, 0x55CE, 0xB6DD, 0x55DC, 0xB6DE, 0x55C7, + 0xB6DF, 0x55D1, 0xB6E0, 0x55E3, 0xB6E1, 0x55E4, 0xB6E2, 0x55EF, 0xB6E3, 0x55DA, 0xB6E4, 0x55E1, 0xB6E5, 0x55C5, 0xB6E6, 0x55C6, + 0xB6E7, 0x55E5, 0xB6E8, 0x55C9, 0xB6E9, 0x5712, 0xB6EA, 0x5713, 0xB6EB, 0x585E, 0xB6EC, 0x5851, 0xB6ED, 0x5858, 0xB6EE, 0x5857, + 0xB6EF, 0x585A, 0xB6F0, 0x5854, 0xB6F1, 0x586B, 0xB6F2, 0x584C, 0xB6F3, 0x586D, 0xB6F4, 0x584A, 0xB6F5, 0x5862, 0xB6F6, 0x5852, + 0xB6F7, 0x584B, 0xB6F8, 0x5967, 0xB6F9, 0x5AC1, 0xB6FA, 0x5AC9, 0xB6FB, 0x5ACC, 0xB6FC, 0x5ABE, 0xB6FD, 0x5ABD, 0xB6FE, 0x5ABC, + 0xB740, 0x5AB3, 0xB741, 0x5AC2, 0xB742, 0x5AB2, 0xB743, 0x5D69, 0xB744, 0x5D6F, 0xB745, 0x5E4C, 0xB746, 0x5E79, 0xB747, 0x5EC9, + 0xB748, 0x5EC8, 0xB749, 0x5F12, 0xB74A, 0x5F59, 0xB74B, 0x5FAC, 0xB74C, 0x5FAE, 0xB74D, 0x611A, 0xB74E, 0x610F, 0xB74F, 0x6148, + 0xB750, 0x611F, 0xB751, 0x60F3, 0xB752, 0x611B, 0xB753, 0x60F9, 0xB754, 0x6101, 0xB755, 0x6108, 0xB756, 0x614E, 0xB757, 0x614C, + 0xB758, 0x6144, 0xB759, 0x614D, 0xB75A, 0x613E, 0xB75B, 0x6134, 0xB75C, 0x6127, 0xB75D, 0x610D, 0xB75E, 0x6106, 0xB75F, 0x6137, + 0xB760, 0x6221, 0xB761, 0x6222, 0xB762, 0x6413, 0xB763, 0x643E, 0xB764, 0x641E, 0xB765, 0x642A, 0xB766, 0x642D, 0xB767, 0x643D, + 0xB768, 0x642C, 0xB769, 0x640F, 0xB76A, 0x641C, 0xB76B, 0x6414, 0xB76C, 0x640D, 0xB76D, 0x6436, 0xB76E, 0x6416, 0xB76F, 0x6417, + 0xB770, 0x6406, 0xB771, 0x656C, 0xB772, 0x659F, 0xB773, 0x65B0, 0xB774, 0x6697, 0xB775, 0x6689, 0xB776, 0x6687, 0xB777, 0x6688, + 0xB778, 0x6696, 0xB779, 0x6684, 0xB77A, 0x6698, 0xB77B, 0x668D, 0xB77C, 0x6703, 0xB77D, 0x6994, 0xB77E, 0x696D, 0xB7A1, 0x695A, + 0xB7A2, 0x6977, 0xB7A3, 0x6960, 0xB7A4, 0x6954, 0xB7A5, 0x6975, 0xB7A6, 0x6930, 0xB7A7, 0x6982, 0xB7A8, 0x694A, 0xB7A9, 0x6968, + 0xB7AA, 0x696B, 0xB7AB, 0x695E, 0xB7AC, 0x6953, 0xB7AD, 0x6979, 0xB7AE, 0x6986, 0xB7AF, 0x695D, 0xB7B0, 0x6963, 0xB7B1, 0x695B, + 0xB7B2, 0x6B47, 0xB7B3, 0x6B72, 0xB7B4, 0x6BC0, 0xB7B5, 0x6BBF, 0xB7B6, 0x6BD3, 0xB7B7, 0x6BFD, 0xB7B8, 0x6EA2, 0xB7B9, 0x6EAF, + 0xB7BA, 0x6ED3, 0xB7BB, 0x6EB6, 0xB7BC, 0x6EC2, 0xB7BD, 0x6E90, 0xB7BE, 0x6E9D, 0xB7BF, 0x6EC7, 0xB7C0, 0x6EC5, 0xB7C1, 0x6EA5, + 0xB7C2, 0x6E98, 0xB7C3, 0x6EBC, 0xB7C4, 0x6EBA, 0xB7C5, 0x6EAB, 0xB7C6, 0x6ED1, 0xB7C7, 0x6E96, 0xB7C8, 0x6E9C, 0xB7C9, 0x6EC4, + 0xB7CA, 0x6ED4, 0xB7CB, 0x6EAA, 0xB7CC, 0x6EA7, 0xB7CD, 0x6EB4, 0xB7CE, 0x714E, 0xB7CF, 0x7159, 0xB7D0, 0x7169, 0xB7D1, 0x7164, + 0xB7D2, 0x7149, 0xB7D3, 0x7167, 0xB7D4, 0x715C, 0xB7D5, 0x716C, 0xB7D6, 0x7166, 0xB7D7, 0x714C, 0xB7D8, 0x7165, 0xB7D9, 0x715E, + 0xB7DA, 0x7146, 0xB7DB, 0x7168, 0xB7DC, 0x7156, 0xB7DD, 0x723A, 0xB7DE, 0x7252, 0xB7DF, 0x7337, 0xB7E0, 0x7345, 0xB7E1, 0x733F, + 0xB7E2, 0x733E, 0xB7E3, 0x746F, 0xB7E4, 0x745A, 0xB7E5, 0x7455, 0xB7E6, 0x745F, 0xB7E7, 0x745E, 0xB7E8, 0x7441, 0xB7E9, 0x743F, + 0xB7EA, 0x7459, 0xB7EB, 0x745B, 0xB7EC, 0x745C, 0xB7ED, 0x7576, 0xB7EE, 0x7578, 0xB7EF, 0x7600, 0xB7F0, 0x75F0, 0xB7F1, 0x7601, + 0xB7F2, 0x75F2, 0xB7F3, 0x75F1, 0xB7F4, 0x75FA, 0xB7F5, 0x75FF, 0xB7F6, 0x75F4, 0xB7F7, 0x75F3, 0xB7F8, 0x76DE, 0xB7F9, 0x76DF, + 0xB7FA, 0x775B, 0xB7FB, 0x776B, 0xB7FC, 0x7766, 0xB7FD, 0x775E, 0xB7FE, 0x7763, 0xB840, 0x7779, 0xB841, 0x776A, 0xB842, 0x776C, + 0xB843, 0x775C, 0xB844, 0x7765, 0xB845, 0x7768, 0xB846, 0x7762, 0xB847, 0x77EE, 0xB848, 0x788E, 0xB849, 0x78B0, 0xB84A, 0x7897, + 0xB84B, 0x7898, 0xB84C, 0x788C, 0xB84D, 0x7889, 0xB84E, 0x787C, 0xB84F, 0x7891, 0xB850, 0x7893, 0xB851, 0x787F, 0xB852, 0x797A, + 0xB853, 0x797F, 0xB854, 0x7981, 0xB855, 0x842C, 0xB856, 0x79BD, 0xB857, 0x7A1C, 0xB858, 0x7A1A, 0xB859, 0x7A20, 0xB85A, 0x7A14, + 0xB85B, 0x7A1F, 0xB85C, 0x7A1E, 0xB85D, 0x7A9F, 0xB85E, 0x7AA0, 0xB85F, 0x7B77, 0xB860, 0x7BC0, 0xB861, 0x7B60, 0xB862, 0x7B6E, + 0xB863, 0x7B67, 0xB864, 0x7CB1, 0xB865, 0x7CB3, 0xB866, 0x7CB5, 0xB867, 0x7D93, 0xB868, 0x7D79, 0xB869, 0x7D91, 0xB86A, 0x7D81, + 0xB86B, 0x7D8F, 0xB86C, 0x7D5B, 0xB86D, 0x7F6E, 0xB86E, 0x7F69, 0xB86F, 0x7F6A, 0xB870, 0x7F72, 0xB871, 0x7FA9, 0xB872, 0x7FA8, + 0xB873, 0x7FA4, 0xB874, 0x8056, 0xB875, 0x8058, 0xB876, 0x8086, 0xB877, 0x8084, 0xB878, 0x8171, 0xB879, 0x8170, 0xB87A, 0x8178, + 0xB87B, 0x8165, 0xB87C, 0x816E, 0xB87D, 0x8173, 0xB87E, 0x816B, 0xB8A1, 0x8179, 0xB8A2, 0x817A, 0xB8A3, 0x8166, 0xB8A4, 0x8205, + 0xB8A5, 0x8247, 0xB8A6, 0x8482, 0xB8A7, 0x8477, 0xB8A8, 0x843D, 0xB8A9, 0x8431, 0xB8AA, 0x8475, 0xB8AB, 0x8466, 0xB8AC, 0x846B, + 0xB8AD, 0x8449, 0xB8AE, 0x846C, 0xB8AF, 0x845B, 0xB8B0, 0x843C, 0xB8B1, 0x8435, 0xB8B2, 0x8461, 0xB8B3, 0x8463, 0xB8B4, 0x8469, + 0xB8B5, 0x846D, 0xB8B6, 0x8446, 0xB8B7, 0x865E, 0xB8B8, 0x865C, 0xB8B9, 0x865F, 0xB8BA, 0x86F9, 0xB8BB, 0x8713, 0xB8BC, 0x8708, + 0xB8BD, 0x8707, 0xB8BE, 0x8700, 0xB8BF, 0x86FE, 0xB8C0, 0x86FB, 0xB8C1, 0x8702, 0xB8C2, 0x8703, 0xB8C3, 0x8706, 0xB8C4, 0x870A, + 0xB8C5, 0x8859, 0xB8C6, 0x88DF, 0xB8C7, 0x88D4, 0xB8C8, 0x88D9, 0xB8C9, 0x88DC, 0xB8CA, 0x88D8, 0xB8CB, 0x88DD, 0xB8CC, 0x88E1, + 0xB8CD, 0x88CA, 0xB8CE, 0x88D5, 0xB8CF, 0x88D2, 0xB8D0, 0x899C, 0xB8D1, 0x89E3, 0xB8D2, 0x8A6B, 0xB8D3, 0x8A72, 0xB8D4, 0x8A73, + 0xB8D5, 0x8A66, 0xB8D6, 0x8A69, 0xB8D7, 0x8A70, 0xB8D8, 0x8A87, 0xB8D9, 0x8A7C, 0xB8DA, 0x8A63, 0xB8DB, 0x8AA0, 0xB8DC, 0x8A71, + 0xB8DD, 0x8A85, 0xB8DE, 0x8A6D, 0xB8DF, 0x8A62, 0xB8E0, 0x8A6E, 0xB8E1, 0x8A6C, 0xB8E2, 0x8A79, 0xB8E3, 0x8A7B, 0xB8E4, 0x8A3E, + 0xB8E5, 0x8A68, 0xB8E6, 0x8C62, 0xB8E7, 0x8C8A, 0xB8E8, 0x8C89, 0xB8E9, 0x8CCA, 0xB8EA, 0x8CC7, 0xB8EB, 0x8CC8, 0xB8EC, 0x8CC4, + 0xB8ED, 0x8CB2, 0xB8EE, 0x8CC3, 0xB8EF, 0x8CC2, 0xB8F0, 0x8CC5, 0xB8F1, 0x8DE1, 0xB8F2, 0x8DDF, 0xB8F3, 0x8DE8, 0xB8F4, 0x8DEF, + 0xB8F5, 0x8DF3, 0xB8F6, 0x8DFA, 0xB8F7, 0x8DEA, 0xB8F8, 0x8DE4, 0xB8F9, 0x8DE6, 0xB8FA, 0x8EB2, 0xB8FB, 0x8F03, 0xB8FC, 0x8F09, + 0xB8FD, 0x8EFE, 0xB8FE, 0x8F0A, 0xB940, 0x8F9F, 0xB941, 0x8FB2, 0xB942, 0x904B, 0xB943, 0x904A, 0xB944, 0x9053, 0xB945, 0x9042, + 0xB946, 0x9054, 0xB947, 0x903C, 0xB948, 0x9055, 0xB949, 0x9050, 0xB94A, 0x9047, 0xB94B, 0x904F, 0xB94C, 0x904E, 0xB94D, 0x904D, + 0xB94E, 0x9051, 0xB94F, 0x903E, 0xB950, 0x9041, 0xB951, 0x9112, 0xB952, 0x9117, 0xB953, 0x916C, 0xB954, 0x916A, 0xB955, 0x9169, + 0xB956, 0x91C9, 0xB957, 0x9237, 0xB958, 0x9257, 0xB959, 0x9238, 0xB95A, 0x923D, 0xB95B, 0x9240, 0xB95C, 0x923E, 0xB95D, 0x925B, + 0xB95E, 0x924B, 0xB95F, 0x9264, 0xB960, 0x9251, 0xB961, 0x9234, 0xB962, 0x9249, 0xB963, 0x924D, 0xB964, 0x9245, 0xB965, 0x9239, + 0xB966, 0x923F, 0xB967, 0x925A, 0xB968, 0x9598, 0xB969, 0x9698, 0xB96A, 0x9694, 0xB96B, 0x9695, 0xB96C, 0x96CD, 0xB96D, 0x96CB, + 0xB96E, 0x96C9, 0xB96F, 0x96CA, 0xB970, 0x96F7, 0xB971, 0x96FB, 0xB972, 0x96F9, 0xB973, 0x96F6, 0xB974, 0x9756, 0xB975, 0x9774, + 0xB976, 0x9776, 0xB977, 0x9810, 0xB978, 0x9811, 0xB979, 0x9813, 0xB97A, 0x980A, 0xB97B, 0x9812, 0xB97C, 0x980C, 0xB97D, 0x98FC, + 0xB97E, 0x98F4, 0xB9A1, 0x98FD, 0xB9A2, 0x98FE, 0xB9A3, 0x99B3, 0xB9A4, 0x99B1, 0xB9A5, 0x99B4, 0xB9A6, 0x9AE1, 0xB9A7, 0x9CE9, + 0xB9A8, 0x9E82, 0xB9A9, 0x9F0E, 0xB9AA, 0x9F13, 0xB9AB, 0x9F20, 0xB9AC, 0x50E7, 0xB9AD, 0x50EE, 0xB9AE, 0x50E5, 0xB9AF, 0x50D6, + 0xB9B0, 0x50ED, 0xB9B1, 0x50DA, 0xB9B2, 0x50D5, 0xB9B3, 0x50CF, 0xB9B4, 0x50D1, 0xB9B5, 0x50F1, 0xB9B6, 0x50CE, 0xB9B7, 0x50E9, + 0xB9B8, 0x5162, 0xB9B9, 0x51F3, 0xB9BA, 0x5283, 0xB9BB, 0x5282, 0xB9BC, 0x5331, 0xB9BD, 0x53AD, 0xB9BE, 0x55FE, 0xB9BF, 0x5600, + 0xB9C0, 0x561B, 0xB9C1, 0x5617, 0xB9C2, 0x55FD, 0xB9C3, 0x5614, 0xB9C4, 0x5606, 0xB9C5, 0x5609, 0xB9C6, 0x560D, 0xB9C7, 0x560E, + 0xB9C8, 0x55F7, 0xB9C9, 0x5616, 0xB9CA, 0x561F, 0xB9CB, 0x5608, 0xB9CC, 0x5610, 0xB9CD, 0x55F6, 0xB9CE, 0x5718, 0xB9CF, 0x5716, + 0xB9D0, 0x5875, 0xB9D1, 0x587E, 0xB9D2, 0x5883, 0xB9D3, 0x5893, 0xB9D4, 0x588A, 0xB9D5, 0x5879, 0xB9D6, 0x5885, 0xB9D7, 0x587D, + 0xB9D8, 0x58FD, 0xB9D9, 0x5925, 0xB9DA, 0x5922, 0xB9DB, 0x5924, 0xB9DC, 0x596A, 0xB9DD, 0x5969, 0xB9DE, 0x5AE1, 0xB9DF, 0x5AE6, + 0xB9E0, 0x5AE9, 0xB9E1, 0x5AD7, 0xB9E2, 0x5AD6, 0xB9E3, 0x5AD8, 0xB9E4, 0x5AE3, 0xB9E5, 0x5B75, 0xB9E6, 0x5BDE, 0xB9E7, 0x5BE7, + 0xB9E8, 0x5BE1, 0xB9E9, 0x5BE5, 0xB9EA, 0x5BE6, 0xB9EB, 0x5BE8, 0xB9EC, 0x5BE2, 0xB9ED, 0x5BE4, 0xB9EE, 0x5BDF, 0xB9EF, 0x5C0D, + 0xB9F0, 0x5C62, 0xB9F1, 0x5D84, 0xB9F2, 0x5D87, 0xB9F3, 0x5E5B, 0xB9F4, 0x5E63, 0xB9F5, 0x5E55, 0xB9F6, 0x5E57, 0xB9F7, 0x5E54, + 0xB9F8, 0x5ED3, 0xB9F9, 0x5ED6, 0xB9FA, 0x5F0A, 0xB9FB, 0x5F46, 0xB9FC, 0x5F70, 0xB9FD, 0x5FB9, 0xB9FE, 0x6147, 0xBA40, 0x613F, + 0xBA41, 0x614B, 0xBA42, 0x6177, 0xBA43, 0x6162, 0xBA44, 0x6163, 0xBA45, 0x615F, 0xBA46, 0x615A, 0xBA47, 0x6158, 0xBA48, 0x6175, + 0xBA49, 0x622A, 0xBA4A, 0x6487, 0xBA4B, 0x6458, 0xBA4C, 0x6454, 0xBA4D, 0x64A4, 0xBA4E, 0x6478, 0xBA4F, 0x645F, 0xBA50, 0x647A, + 0xBA51, 0x6451, 0xBA52, 0x6467, 0xBA53, 0x6434, 0xBA54, 0x646D, 0xBA55, 0x647B, 0xBA56, 0x6572, 0xBA57, 0x65A1, 0xBA58, 0x65D7, + 0xBA59, 0x65D6, 0xBA5A, 0x66A2, 0xBA5B, 0x66A8, 0xBA5C, 0x669D, 0xBA5D, 0x699C, 0xBA5E, 0x69A8, 0xBA5F, 0x6995, 0xBA60, 0x69C1, + 0xBA61, 0x69AE, 0xBA62, 0x69D3, 0xBA63, 0x69CB, 0xBA64, 0x699B, 0xBA65, 0x69B7, 0xBA66, 0x69BB, 0xBA67, 0x69AB, 0xBA68, 0x69B4, + 0xBA69, 0x69D0, 0xBA6A, 0x69CD, 0xBA6B, 0x69AD, 0xBA6C, 0x69CC, 0xBA6D, 0x69A6, 0xBA6E, 0x69C3, 0xBA6F, 0x69A3, 0xBA70, 0x6B49, + 0xBA71, 0x6B4C, 0xBA72, 0x6C33, 0xBA73, 0x6F33, 0xBA74, 0x6F14, 0xBA75, 0x6EFE, 0xBA76, 0x6F13, 0xBA77, 0x6EF4, 0xBA78, 0x6F29, + 0xBA79, 0x6F3E, 0xBA7A, 0x6F20, 0xBA7B, 0x6F2C, 0xBA7C, 0x6F0F, 0xBA7D, 0x6F02, 0xBA7E, 0x6F22, 0xBAA1, 0x6EFF, 0xBAA2, 0x6EEF, + 0xBAA3, 0x6F06, 0xBAA4, 0x6F31, 0xBAA5, 0x6F38, 0xBAA6, 0x6F32, 0xBAA7, 0x6F23, 0xBAA8, 0x6F15, 0xBAA9, 0x6F2B, 0xBAAA, 0x6F2F, + 0xBAAB, 0x6F88, 0xBAAC, 0x6F2A, 0xBAAD, 0x6EEC, 0xBAAE, 0x6F01, 0xBAAF, 0x6EF2, 0xBAB0, 0x6ECC, 0xBAB1, 0x6EF7, 0xBAB2, 0x7194, + 0xBAB3, 0x7199, 0xBAB4, 0x717D, 0xBAB5, 0x718A, 0xBAB6, 0x7184, 0xBAB7, 0x7192, 0xBAB8, 0x723E, 0xBAB9, 0x7292, 0xBABA, 0x7296, + 0xBABB, 0x7344, 0xBABC, 0x7350, 0xBABD, 0x7464, 0xBABE, 0x7463, 0xBABF, 0x746A, 0xBAC0, 0x7470, 0xBAC1, 0x746D, 0xBAC2, 0x7504, + 0xBAC3, 0x7591, 0xBAC4, 0x7627, 0xBAC5, 0x760D, 0xBAC6, 0x760B, 0xBAC7, 0x7609, 0xBAC8, 0x7613, 0xBAC9, 0x76E1, 0xBACA, 0x76E3, + 0xBACB, 0x7784, 0xBACC, 0x777D, 0xBACD, 0x777F, 0xBACE, 0x7761, 0xBACF, 0x78C1, 0xBAD0, 0x789F, 0xBAD1, 0x78A7, 0xBAD2, 0x78B3, + 0xBAD3, 0x78A9, 0xBAD4, 0x78A3, 0xBAD5, 0x798E, 0xBAD6, 0x798F, 0xBAD7, 0x798D, 0xBAD8, 0x7A2E, 0xBAD9, 0x7A31, 0xBADA, 0x7AAA, + 0xBADB, 0x7AA9, 0xBADC, 0x7AED, 0xBADD, 0x7AEF, 0xBADE, 0x7BA1, 0xBADF, 0x7B95, 0xBAE0, 0x7B8B, 0xBAE1, 0x7B75, 0xBAE2, 0x7B97, + 0xBAE3, 0x7B9D, 0xBAE4, 0x7B94, 0xBAE5, 0x7B8F, 0xBAE6, 0x7BB8, 0xBAE7, 0x7B87, 0xBAE8, 0x7B84, 0xBAE9, 0x7CB9, 0xBAEA, 0x7CBD, + 0xBAEB, 0x7CBE, 0xBAEC, 0x7DBB, 0xBAED, 0x7DB0, 0xBAEE, 0x7D9C, 0xBAEF, 0x7DBD, 0xBAF0, 0x7DBE, 0xBAF1, 0x7DA0, 0xBAF2, 0x7DCA, + 0xBAF3, 0x7DB4, 0xBAF4, 0x7DB2, 0xBAF5, 0x7DB1, 0xBAF6, 0x7DBA, 0xBAF7, 0x7DA2, 0xBAF8, 0x7DBF, 0xBAF9, 0x7DB5, 0xBAFA, 0x7DB8, + 0xBAFB, 0x7DAD, 0xBAFC, 0x7DD2, 0xBAFD, 0x7DC7, 0xBAFE, 0x7DAC, 0xBB40, 0x7F70, 0xBB41, 0x7FE0, 0xBB42, 0x7FE1, 0xBB43, 0x7FDF, + 0xBB44, 0x805E, 0xBB45, 0x805A, 0xBB46, 0x8087, 0xBB47, 0x8150, 0xBB48, 0x8180, 0xBB49, 0x818F, 0xBB4A, 0x8188, 0xBB4B, 0x818A, + 0xBB4C, 0x817F, 0xBB4D, 0x8182, 0xBB4E, 0x81E7, 0xBB4F, 0x81FA, 0xBB50, 0x8207, 0xBB51, 0x8214, 0xBB52, 0x821E, 0xBB53, 0x824B, + 0xBB54, 0x84C9, 0xBB55, 0x84BF, 0xBB56, 0x84C6, 0xBB57, 0x84C4, 0xBB58, 0x8499, 0xBB59, 0x849E, 0xBB5A, 0x84B2, 0xBB5B, 0x849C, + 0xBB5C, 0x84CB, 0xBB5D, 0x84B8, 0xBB5E, 0x84C0, 0xBB5F, 0x84D3, 0xBB60, 0x8490, 0xBB61, 0x84BC, 0xBB62, 0x84D1, 0xBB63, 0x84CA, + 0xBB64, 0x873F, 0xBB65, 0x871C, 0xBB66, 0x873B, 0xBB67, 0x8722, 0xBB68, 0x8725, 0xBB69, 0x8734, 0xBB6A, 0x8718, 0xBB6B, 0x8755, + 0xBB6C, 0x8737, 0xBB6D, 0x8729, 0xBB6E, 0x88F3, 0xBB6F, 0x8902, 0xBB70, 0x88F4, 0xBB71, 0x88F9, 0xBB72, 0x88F8, 0xBB73, 0x88FD, + 0xBB74, 0x88E8, 0xBB75, 0x891A, 0xBB76, 0x88EF, 0xBB77, 0x8AA6, 0xBB78, 0x8A8C, 0xBB79, 0x8A9E, 0xBB7A, 0x8AA3, 0xBB7B, 0x8A8D, + 0xBB7C, 0x8AA1, 0xBB7D, 0x8A93, 0xBB7E, 0x8AA4, 0xBBA1, 0x8AAA, 0xBBA2, 0x8AA5, 0xBBA3, 0x8AA8, 0xBBA4, 0x8A98, 0xBBA5, 0x8A91, + 0xBBA6, 0x8A9A, 0xBBA7, 0x8AA7, 0xBBA8, 0x8C6A, 0xBBA9, 0x8C8D, 0xBBAA, 0x8C8C, 0xBBAB, 0x8CD3, 0xBBAC, 0x8CD1, 0xBBAD, 0x8CD2, + 0xBBAE, 0x8D6B, 0xBBAF, 0x8D99, 0xBBB0, 0x8D95, 0xBBB1, 0x8DFC, 0xBBB2, 0x8F14, 0xBBB3, 0x8F12, 0xBBB4, 0x8F15, 0xBBB5, 0x8F13, + 0xBBB6, 0x8FA3, 0xBBB7, 0x9060, 0xBBB8, 0x9058, 0xBBB9, 0x905C, 0xBBBA, 0x9063, 0xBBBB, 0x9059, 0xBBBC, 0x905E, 0xBBBD, 0x9062, + 0xBBBE, 0x905D, 0xBBBF, 0x905B, 0xBBC0, 0x9119, 0xBBC1, 0x9118, 0xBBC2, 0x911E, 0xBBC3, 0x9175, 0xBBC4, 0x9178, 0xBBC5, 0x9177, + 0xBBC6, 0x9174, 0xBBC7, 0x9278, 0xBBC8, 0x9280, 0xBBC9, 0x9285, 0xBBCA, 0x9298, 0xBBCB, 0x9296, 0xBBCC, 0x927B, 0xBBCD, 0x9293, + 0xBBCE, 0x929C, 0xBBCF, 0x92A8, 0xBBD0, 0x927C, 0xBBD1, 0x9291, 0xBBD2, 0x95A1, 0xBBD3, 0x95A8, 0xBBD4, 0x95A9, 0xBBD5, 0x95A3, + 0xBBD6, 0x95A5, 0xBBD7, 0x95A4, 0xBBD8, 0x9699, 0xBBD9, 0x969C, 0xBBDA, 0x969B, 0xBBDB, 0x96CC, 0xBBDC, 0x96D2, 0xBBDD, 0x9700, + 0xBBDE, 0x977C, 0xBBDF, 0x9785, 0xBBE0, 0x97F6, 0xBBE1, 0x9817, 0xBBE2, 0x9818, 0xBBE3, 0x98AF, 0xBBE4, 0x98B1, 0xBBE5, 0x9903, + 0xBBE6, 0x9905, 0xBBE7, 0x990C, 0xBBE8, 0x9909, 0xBBE9, 0x99C1, 0xBBEA, 0x9AAF, 0xBBEB, 0x9AB0, 0xBBEC, 0x9AE6, 0xBBED, 0x9B41, + 0xBBEE, 0x9B42, 0xBBEF, 0x9CF4, 0xBBF0, 0x9CF6, 0xBBF1, 0x9CF3, 0xBBF2, 0x9EBC, 0xBBF3, 0x9F3B, 0xBBF4, 0x9F4A, 0xBBF5, 0x5104, + 0xBBF6, 0x5100, 0xBBF7, 0x50FB, 0xBBF8, 0x50F5, 0xBBF9, 0x50F9, 0xBBFA, 0x5102, 0xBBFB, 0x5108, 0xBBFC, 0x5109, 0xBBFD, 0x5105, + 0xBBFE, 0x51DC, 0xBC40, 0x5287, 0xBC41, 0x5288, 0xBC42, 0x5289, 0xBC43, 0x528D, 0xBC44, 0x528A, 0xBC45, 0x52F0, 0xBC46, 0x53B2, + 0xBC47, 0x562E, 0xBC48, 0x563B, 0xBC49, 0x5639, 0xBC4A, 0x5632, 0xBC4B, 0x563F, 0xBC4C, 0x5634, 0xBC4D, 0x5629, 0xBC4E, 0x5653, + 0xBC4F, 0x564E, 0xBC50, 0x5657, 0xBC51, 0x5674, 0xBC52, 0x5636, 0xBC53, 0x562F, 0xBC54, 0x5630, 0xBC55, 0x5880, 0xBC56, 0x589F, + 0xBC57, 0x589E, 0xBC58, 0x58B3, 0xBC59, 0x589C, 0xBC5A, 0x58AE, 0xBC5B, 0x58A9, 0xBC5C, 0x58A6, 0xBC5D, 0x596D, 0xBC5E, 0x5B09, + 0xBC5F, 0x5AFB, 0xBC60, 0x5B0B, 0xBC61, 0x5AF5, 0xBC62, 0x5B0C, 0xBC63, 0x5B08, 0xBC64, 0x5BEE, 0xBC65, 0x5BEC, 0xBC66, 0x5BE9, + 0xBC67, 0x5BEB, 0xBC68, 0x5C64, 0xBC69, 0x5C65, 0xBC6A, 0x5D9D, 0xBC6B, 0x5D94, 0xBC6C, 0x5E62, 0xBC6D, 0x5E5F, 0xBC6E, 0x5E61, + 0xBC6F, 0x5EE2, 0xBC70, 0x5EDA, 0xBC71, 0x5EDF, 0xBC72, 0x5EDD, 0xBC73, 0x5EE3, 0xBC74, 0x5EE0, 0xBC75, 0x5F48, 0xBC76, 0x5F71, + 0xBC77, 0x5FB7, 0xBC78, 0x5FB5, 0xBC79, 0x6176, 0xBC7A, 0x6167, 0xBC7B, 0x616E, 0xBC7C, 0x615D, 0xBC7D, 0x6155, 0xBC7E, 0x6182, + 0xBCA1, 0x617C, 0xBCA2, 0x6170, 0xBCA3, 0x616B, 0xBCA4, 0x617E, 0xBCA5, 0x61A7, 0xBCA6, 0x6190, 0xBCA7, 0x61AB, 0xBCA8, 0x618E, + 0xBCA9, 0x61AC, 0xBCAA, 0x619A, 0xBCAB, 0x61A4, 0xBCAC, 0x6194, 0xBCAD, 0x61AE, 0xBCAE, 0x622E, 0xBCAF, 0x6469, 0xBCB0, 0x646F, + 0xBCB1, 0x6479, 0xBCB2, 0x649E, 0xBCB3, 0x64B2, 0xBCB4, 0x6488, 0xBCB5, 0x6490, 0xBCB6, 0x64B0, 0xBCB7, 0x64A5, 0xBCB8, 0x6493, + 0xBCB9, 0x6495, 0xBCBA, 0x64A9, 0xBCBB, 0x6492, 0xBCBC, 0x64AE, 0xBCBD, 0x64AD, 0xBCBE, 0x64AB, 0xBCBF, 0x649A, 0xBCC0, 0x64AC, + 0xBCC1, 0x6499, 0xBCC2, 0x64A2, 0xBCC3, 0x64B3, 0xBCC4, 0x6575, 0xBCC5, 0x6577, 0xBCC6, 0x6578, 0xBCC7, 0x66AE, 0xBCC8, 0x66AB, + 0xBCC9, 0x66B4, 0xBCCA, 0x66B1, 0xBCCB, 0x6A23, 0xBCCC, 0x6A1F, 0xBCCD, 0x69E8, 0xBCCE, 0x6A01, 0xBCCF, 0x6A1E, 0xBCD0, 0x6A19, + 0xBCD1, 0x69FD, 0xBCD2, 0x6A21, 0xBCD3, 0x6A13, 0xBCD4, 0x6A0A, 0xBCD5, 0x69F3, 0xBCD6, 0x6A02, 0xBCD7, 0x6A05, 0xBCD8, 0x69ED, + 0xBCD9, 0x6A11, 0xBCDA, 0x6B50, 0xBCDB, 0x6B4E, 0xBCDC, 0x6BA4, 0xBCDD, 0x6BC5, 0xBCDE, 0x6BC6, 0xBCDF, 0x6F3F, 0xBCE0, 0x6F7C, + 0xBCE1, 0x6F84, 0xBCE2, 0x6F51, 0xBCE3, 0x6F66, 0xBCE4, 0x6F54, 0xBCE5, 0x6F86, 0xBCE6, 0x6F6D, 0xBCE7, 0x6F5B, 0xBCE8, 0x6F78, + 0xBCE9, 0x6F6E, 0xBCEA, 0x6F8E, 0xBCEB, 0x6F7A, 0xBCEC, 0x6F70, 0xBCED, 0x6F64, 0xBCEE, 0x6F97, 0xBCEF, 0x6F58, 0xBCF0, 0x6ED5, + 0xBCF1, 0x6F6F, 0xBCF2, 0x6F60, 0xBCF3, 0x6F5F, 0xBCF4, 0x719F, 0xBCF5, 0x71AC, 0xBCF6, 0x71B1, 0xBCF7, 0x71A8, 0xBCF8, 0x7256, + 0xBCF9, 0x729B, 0xBCFA, 0x734E, 0xBCFB, 0x7357, 0xBCFC, 0x7469, 0xBCFD, 0x748B, 0xBCFE, 0x7483, 0xBD40, 0x747E, 0xBD41, 0x7480, + 0xBD42, 0x757F, 0xBD43, 0x7620, 0xBD44, 0x7629, 0xBD45, 0x761F, 0xBD46, 0x7624, 0xBD47, 0x7626, 0xBD48, 0x7621, 0xBD49, 0x7622, + 0xBD4A, 0x769A, 0xBD4B, 0x76BA, 0xBD4C, 0x76E4, 0xBD4D, 0x778E, 0xBD4E, 0x7787, 0xBD4F, 0x778C, 0xBD50, 0x7791, 0xBD51, 0x778B, + 0xBD52, 0x78CB, 0xBD53, 0x78C5, 0xBD54, 0x78BA, 0xBD55, 0x78CA, 0xBD56, 0x78BE, 0xBD57, 0x78D5, 0xBD58, 0x78BC, 0xBD59, 0x78D0, + 0xBD5A, 0x7A3F, 0xBD5B, 0x7A3C, 0xBD5C, 0x7A40, 0xBD5D, 0x7A3D, 0xBD5E, 0x7A37, 0xBD5F, 0x7A3B, 0xBD60, 0x7AAF, 0xBD61, 0x7AAE, + 0xBD62, 0x7BAD, 0xBD63, 0x7BB1, 0xBD64, 0x7BC4, 0xBD65, 0x7BB4, 0xBD66, 0x7BC6, 0xBD67, 0x7BC7, 0xBD68, 0x7BC1, 0xBD69, 0x7BA0, + 0xBD6A, 0x7BCC, 0xBD6B, 0x7CCA, 0xBD6C, 0x7DE0, 0xBD6D, 0x7DF4, 0xBD6E, 0x7DEF, 0xBD6F, 0x7DFB, 0xBD70, 0x7DD8, 0xBD71, 0x7DEC, + 0xBD72, 0x7DDD, 0xBD73, 0x7DE8, 0xBD74, 0x7DE3, 0xBD75, 0x7DDA, 0xBD76, 0x7DDE, 0xBD77, 0x7DE9, 0xBD78, 0x7D9E, 0xBD79, 0x7DD9, + 0xBD7A, 0x7DF2, 0xBD7B, 0x7DF9, 0xBD7C, 0x7F75, 0xBD7D, 0x7F77, 0xBD7E, 0x7FAF, 0xBDA1, 0x7FE9, 0xBDA2, 0x8026, 0xBDA3, 0x819B, + 0xBDA4, 0x819C, 0xBDA5, 0x819D, 0xBDA6, 0x81A0, 0xBDA7, 0x819A, 0xBDA8, 0x8198, 0xBDA9, 0x8517, 0xBDAA, 0x853D, 0xBDAB, 0x851A, + 0xBDAC, 0x84EE, 0xBDAD, 0x852C, 0xBDAE, 0x852D, 0xBDAF, 0x8513, 0xBDB0, 0x8511, 0xBDB1, 0x8523, 0xBDB2, 0x8521, 0xBDB3, 0x8514, + 0xBDB4, 0x84EC, 0xBDB5, 0x8525, 0xBDB6, 0x84FF, 0xBDB7, 0x8506, 0xBDB8, 0x8782, 0xBDB9, 0x8774, 0xBDBA, 0x8776, 0xBDBB, 0x8760, + 0xBDBC, 0x8766, 0xBDBD, 0x8778, 0xBDBE, 0x8768, 0xBDBF, 0x8759, 0xBDC0, 0x8757, 0xBDC1, 0x874C, 0xBDC2, 0x8753, 0xBDC3, 0x885B, + 0xBDC4, 0x885D, 0xBDC5, 0x8910, 0xBDC6, 0x8907, 0xBDC7, 0x8912, 0xBDC8, 0x8913, 0xBDC9, 0x8915, 0xBDCA, 0x890A, 0xBDCB, 0x8ABC, + 0xBDCC, 0x8AD2, 0xBDCD, 0x8AC7, 0xBDCE, 0x8AC4, 0xBDCF, 0x8A95, 0xBDD0, 0x8ACB, 0xBDD1, 0x8AF8, 0xBDD2, 0x8AB2, 0xBDD3, 0x8AC9, + 0xBDD4, 0x8AC2, 0xBDD5, 0x8ABF, 0xBDD6, 0x8AB0, 0xBDD7, 0x8AD6, 0xBDD8, 0x8ACD, 0xBDD9, 0x8AB6, 0xBDDA, 0x8AB9, 0xBDDB, 0x8ADB, + 0xBDDC, 0x8C4C, 0xBDDD, 0x8C4E, 0xBDDE, 0x8C6C, 0xBDDF, 0x8CE0, 0xBDE0, 0x8CDE, 0xBDE1, 0x8CE6, 0xBDE2, 0x8CE4, 0xBDE3, 0x8CEC, + 0xBDE4, 0x8CED, 0xBDE5, 0x8CE2, 0xBDE6, 0x8CE3, 0xBDE7, 0x8CDC, 0xBDE8, 0x8CEA, 0xBDE9, 0x8CE1, 0xBDEA, 0x8D6D, 0xBDEB, 0x8D9F, + 0xBDEC, 0x8DA3, 0xBDED, 0x8E2B, 0xBDEE, 0x8E10, 0xBDEF, 0x8E1D, 0xBDF0, 0x8E22, 0xBDF1, 0x8E0F, 0xBDF2, 0x8E29, 0xBDF3, 0x8E1F, + 0xBDF4, 0x8E21, 0xBDF5, 0x8E1E, 0xBDF6, 0x8EBA, 0xBDF7, 0x8F1D, 0xBDF8, 0x8F1B, 0xBDF9, 0x8F1F, 0xBDFA, 0x8F29, 0xBDFB, 0x8F26, + 0xBDFC, 0x8F2A, 0xBDFD, 0x8F1C, 0xBDFE, 0x8F1E, 0xBE40, 0x8F25, 0xBE41, 0x9069, 0xBE42, 0x906E, 0xBE43, 0x9068, 0xBE44, 0x906D, + 0xBE45, 0x9077, 0xBE46, 0x9130, 0xBE47, 0x912D, 0xBE48, 0x9127, 0xBE49, 0x9131, 0xBE4A, 0x9187, 0xBE4B, 0x9189, 0xBE4C, 0x918B, + 0xBE4D, 0x9183, 0xBE4E, 0x92C5, 0xBE4F, 0x92BB, 0xBE50, 0x92B7, 0xBE51, 0x92EA, 0xBE52, 0x92AC, 0xBE53, 0x92E4, 0xBE54, 0x92C1, + 0xBE55, 0x92B3, 0xBE56, 0x92BC, 0xBE57, 0x92D2, 0xBE58, 0x92C7, 0xBE59, 0x92F0, 0xBE5A, 0x92B2, 0xBE5B, 0x95AD, 0xBE5C, 0x95B1, + 0xBE5D, 0x9704, 0xBE5E, 0x9706, 0xBE5F, 0x9707, 0xBE60, 0x9709, 0xBE61, 0x9760, 0xBE62, 0x978D, 0xBE63, 0x978B, 0xBE64, 0x978F, + 0xBE65, 0x9821, 0xBE66, 0x982B, 0xBE67, 0x981C, 0xBE68, 0x98B3, 0xBE69, 0x990A, 0xBE6A, 0x9913, 0xBE6B, 0x9912, 0xBE6C, 0x9918, + 0xBE6D, 0x99DD, 0xBE6E, 0x99D0, 0xBE6F, 0x99DF, 0xBE70, 0x99DB, 0xBE71, 0x99D1, 0xBE72, 0x99D5, 0xBE73, 0x99D2, 0xBE74, 0x99D9, + 0xBE75, 0x9AB7, 0xBE76, 0x9AEE, 0xBE77, 0x9AEF, 0xBE78, 0x9B27, 0xBE79, 0x9B45, 0xBE7A, 0x9B44, 0xBE7B, 0x9B77, 0xBE7C, 0x9B6F, + 0xBE7D, 0x9D06, 0xBE7E, 0x9D09, 0xBEA1, 0x9D03, 0xBEA2, 0x9EA9, 0xBEA3, 0x9EBE, 0xBEA4, 0x9ECE, 0xBEA5, 0x58A8, 0xBEA6, 0x9F52, + 0xBEA7, 0x5112, 0xBEA8, 0x5118, 0xBEA9, 0x5114, 0xBEAA, 0x5110, 0xBEAB, 0x5115, 0xBEAC, 0x5180, 0xBEAD, 0x51AA, 0xBEAE, 0x51DD, + 0xBEAF, 0x5291, 0xBEB0, 0x5293, 0xBEB1, 0x52F3, 0xBEB2, 0x5659, 0xBEB3, 0x566B, 0xBEB4, 0x5679, 0xBEB5, 0x5669, 0xBEB6, 0x5664, + 0xBEB7, 0x5678, 0xBEB8, 0x566A, 0xBEB9, 0x5668, 0xBEBA, 0x5665, 0xBEBB, 0x5671, 0xBEBC, 0x566F, 0xBEBD, 0x566C, 0xBEBE, 0x5662, + 0xBEBF, 0x5676, 0xBEC0, 0x58C1, 0xBEC1, 0x58BE, 0xBEC2, 0x58C7, 0xBEC3, 0x58C5, 0xBEC4, 0x596E, 0xBEC5, 0x5B1D, 0xBEC6, 0x5B34, + 0xBEC7, 0x5B78, 0xBEC8, 0x5BF0, 0xBEC9, 0x5C0E, 0xBECA, 0x5F4A, 0xBECB, 0x61B2, 0xBECC, 0x6191, 0xBECD, 0x61A9, 0xBECE, 0x618A, + 0xBECF, 0x61CD, 0xBED0, 0x61B6, 0xBED1, 0x61BE, 0xBED2, 0x61CA, 0xBED3, 0x61C8, 0xBED4, 0x6230, 0xBED5, 0x64C5, 0xBED6, 0x64C1, + 0xBED7, 0x64CB, 0xBED8, 0x64BB, 0xBED9, 0x64BC, 0xBEDA, 0x64DA, 0xBEDB, 0x64C4, 0xBEDC, 0x64C7, 0xBEDD, 0x64C2, 0xBEDE, 0x64CD, + 0xBEDF, 0x64BF, 0xBEE0, 0x64D2, 0xBEE1, 0x64D4, 0xBEE2, 0x64BE, 0xBEE3, 0x6574, 0xBEE4, 0x66C6, 0xBEE5, 0x66C9, 0xBEE6, 0x66B9, + 0xBEE7, 0x66C4, 0xBEE8, 0x66C7, 0xBEE9, 0x66B8, 0xBEEA, 0x6A3D, 0xBEEB, 0x6A38, 0xBEEC, 0x6A3A, 0xBEED, 0x6A59, 0xBEEE, 0x6A6B, + 0xBEEF, 0x6A58, 0xBEF0, 0x6A39, 0xBEF1, 0x6A44, 0xBEF2, 0x6A62, 0xBEF3, 0x6A61, 0xBEF4, 0x6A4B, 0xBEF5, 0x6A47, 0xBEF6, 0x6A35, + 0xBEF7, 0x6A5F, 0xBEF8, 0x6A48, 0xBEF9, 0x6B59, 0xBEFA, 0x6B77, 0xBEFB, 0x6C05, 0xBEFC, 0x6FC2, 0xBEFD, 0x6FB1, 0xBEFE, 0x6FA1, + 0xBF40, 0x6FC3, 0xBF41, 0x6FA4, 0xBF42, 0x6FC1, 0xBF43, 0x6FA7, 0xBF44, 0x6FB3, 0xBF45, 0x6FC0, 0xBF46, 0x6FB9, 0xBF47, 0x6FB6, + 0xBF48, 0x6FA6, 0xBF49, 0x6FA0, 0xBF4A, 0x6FB4, 0xBF4B, 0x71BE, 0xBF4C, 0x71C9, 0xBF4D, 0x71D0, 0xBF4E, 0x71D2, 0xBF4F, 0x71C8, + 0xBF50, 0x71D5, 0xBF51, 0x71B9, 0xBF52, 0x71CE, 0xBF53, 0x71D9, 0xBF54, 0x71DC, 0xBF55, 0x71C3, 0xBF56, 0x71C4, 0xBF57, 0x7368, + 0xBF58, 0x749C, 0xBF59, 0x74A3, 0xBF5A, 0x7498, 0xBF5B, 0x749F, 0xBF5C, 0x749E, 0xBF5D, 0x74E2, 0xBF5E, 0x750C, 0xBF5F, 0x750D, + 0xBF60, 0x7634, 0xBF61, 0x7638, 0xBF62, 0x763A, 0xBF63, 0x76E7, 0xBF64, 0x76E5, 0xBF65, 0x77A0, 0xBF66, 0x779E, 0xBF67, 0x779F, + 0xBF68, 0x77A5, 0xBF69, 0x78E8, 0xBF6A, 0x78DA, 0xBF6B, 0x78EC, 0xBF6C, 0x78E7, 0xBF6D, 0x79A6, 0xBF6E, 0x7A4D, 0xBF6F, 0x7A4E, + 0xBF70, 0x7A46, 0xBF71, 0x7A4C, 0xBF72, 0x7A4B, 0xBF73, 0x7ABA, 0xBF74, 0x7BD9, 0xBF75, 0x7C11, 0xBF76, 0x7BC9, 0xBF77, 0x7BE4, + 0xBF78, 0x7BDB, 0xBF79, 0x7BE1, 0xBF7A, 0x7BE9, 0xBF7B, 0x7BE6, 0xBF7C, 0x7CD5, 0xBF7D, 0x7CD6, 0xBF7E, 0x7E0A, 0xBFA1, 0x7E11, + 0xBFA2, 0x7E08, 0xBFA3, 0x7E1B, 0xBFA4, 0x7E23, 0xBFA5, 0x7E1E, 0xBFA6, 0x7E1D, 0xBFA7, 0x7E09, 0xBFA8, 0x7E10, 0xBFA9, 0x7F79, + 0xBFAA, 0x7FB2, 0xBFAB, 0x7FF0, 0xBFAC, 0x7FF1, 0xBFAD, 0x7FEE, 0xBFAE, 0x8028, 0xBFAF, 0x81B3, 0xBFB0, 0x81A9, 0xBFB1, 0x81A8, + 0xBFB2, 0x81FB, 0xBFB3, 0x8208, 0xBFB4, 0x8258, 0xBFB5, 0x8259, 0xBFB6, 0x854A, 0xBFB7, 0x8559, 0xBFB8, 0x8548, 0xBFB9, 0x8568, + 0xBFBA, 0x8569, 0xBFBB, 0x8543, 0xBFBC, 0x8549, 0xBFBD, 0x856D, 0xBFBE, 0x856A, 0xBFBF, 0x855E, 0xBFC0, 0x8783, 0xBFC1, 0x879F, + 0xBFC2, 0x879E, 0xBFC3, 0x87A2, 0xBFC4, 0x878D, 0xBFC5, 0x8861, 0xBFC6, 0x892A, 0xBFC7, 0x8932, 0xBFC8, 0x8925, 0xBFC9, 0x892B, + 0xBFCA, 0x8921, 0xBFCB, 0x89AA, 0xBFCC, 0x89A6, 0xBFCD, 0x8AE6, 0xBFCE, 0x8AFA, 0xBFCF, 0x8AEB, 0xBFD0, 0x8AF1, 0xBFD1, 0x8B00, + 0xBFD2, 0x8ADC, 0xBFD3, 0x8AE7, 0xBFD4, 0x8AEE, 0xBFD5, 0x8AFE, 0xBFD6, 0x8B01, 0xBFD7, 0x8B02, 0xBFD8, 0x8AF7, 0xBFD9, 0x8AED, + 0xBFDA, 0x8AF3, 0xBFDB, 0x8AF6, 0xBFDC, 0x8AFC, 0xBFDD, 0x8C6B, 0xBFDE, 0x8C6D, 0xBFDF, 0x8C93, 0xBFE0, 0x8CF4, 0xBFE1, 0x8E44, + 0xBFE2, 0x8E31, 0xBFE3, 0x8E34, 0xBFE4, 0x8E42, 0xBFE5, 0x8E39, 0xBFE6, 0x8E35, 0xBFE7, 0x8F3B, 0xBFE8, 0x8F2F, 0xBFE9, 0x8F38, + 0xBFEA, 0x8F33, 0xBFEB, 0x8FA8, 0xBFEC, 0x8FA6, 0xBFED, 0x9075, 0xBFEE, 0x9074, 0xBFEF, 0x9078, 0xBFF0, 0x9072, 0xBFF1, 0x907C, + 0xBFF2, 0x907A, 0xBFF3, 0x9134, 0xBFF4, 0x9192, 0xBFF5, 0x9320, 0xBFF6, 0x9336, 0xBFF7, 0x92F8, 0xBFF8, 0x9333, 0xBFF9, 0x932F, + 0xBFFA, 0x9322, 0xBFFB, 0x92FC, 0xBFFC, 0x932B, 0xBFFD, 0x9304, 0xBFFE, 0x931A, 0xC040, 0x9310, 0xC041, 0x9326, 0xC042, 0x9321, + 0xC043, 0x9315, 0xC044, 0x932E, 0xC045, 0x9319, 0xC046, 0x95BB, 0xC047, 0x96A7, 0xC048, 0x96A8, 0xC049, 0x96AA, 0xC04A, 0x96D5, + 0xC04B, 0x970E, 0xC04C, 0x9711, 0xC04D, 0x9716, 0xC04E, 0x970D, 0xC04F, 0x9713, 0xC050, 0x970F, 0xC051, 0x975B, 0xC052, 0x975C, + 0xC053, 0x9766, 0xC054, 0x9798, 0xC055, 0x9830, 0xC056, 0x9838, 0xC057, 0x983B, 0xC058, 0x9837, 0xC059, 0x982D, 0xC05A, 0x9839, + 0xC05B, 0x9824, 0xC05C, 0x9910, 0xC05D, 0x9928, 0xC05E, 0x991E, 0xC05F, 0x991B, 0xC060, 0x9921, 0xC061, 0x991A, 0xC062, 0x99ED, + 0xC063, 0x99E2, 0xC064, 0x99F1, 0xC065, 0x9AB8, 0xC066, 0x9ABC, 0xC067, 0x9AFB, 0xC068, 0x9AED, 0xC069, 0x9B28, 0xC06A, 0x9B91, + 0xC06B, 0x9D15, 0xC06C, 0x9D23, 0xC06D, 0x9D26, 0xC06E, 0x9D28, 0xC06F, 0x9D12, 0xC070, 0x9D1B, 0xC071, 0x9ED8, 0xC072, 0x9ED4, + 0xC073, 0x9F8D, 0xC074, 0x9F9C, 0xC075, 0x512A, 0xC076, 0x511F, 0xC077, 0x5121, 0xC078, 0x5132, 0xC079, 0x52F5, 0xC07A, 0x568E, + 0xC07B, 0x5680, 0xC07C, 0x5690, 0xC07D, 0x5685, 0xC07E, 0x5687, 0xC0A1, 0x568F, 0xC0A2, 0x58D5, 0xC0A3, 0x58D3, 0xC0A4, 0x58D1, + 0xC0A5, 0x58CE, 0xC0A6, 0x5B30, 0xC0A7, 0x5B2A, 0xC0A8, 0x5B24, 0xC0A9, 0x5B7A, 0xC0AA, 0x5C37, 0xC0AB, 0x5C68, 0xC0AC, 0x5DBC, + 0xC0AD, 0x5DBA, 0xC0AE, 0x5DBD, 0xC0AF, 0x5DB8, 0xC0B0, 0x5E6B, 0xC0B1, 0x5F4C, 0xC0B2, 0x5FBD, 0xC0B3, 0x61C9, 0xC0B4, 0x61C2, + 0xC0B5, 0x61C7, 0xC0B6, 0x61E6, 0xC0B7, 0x61CB, 0xC0B8, 0x6232, 0xC0B9, 0x6234, 0xC0BA, 0x64CE, 0xC0BB, 0x64CA, 0xC0BC, 0x64D8, + 0xC0BD, 0x64E0, 0xC0BE, 0x64F0, 0xC0BF, 0x64E6, 0xC0C0, 0x64EC, 0xC0C1, 0x64F1, 0xC0C2, 0x64E2, 0xC0C3, 0x64ED, 0xC0C4, 0x6582, + 0xC0C5, 0x6583, 0xC0C6, 0x66D9, 0xC0C7, 0x66D6, 0xC0C8, 0x6A80, 0xC0C9, 0x6A94, 0xC0CA, 0x6A84, 0xC0CB, 0x6AA2, 0xC0CC, 0x6A9C, + 0xC0CD, 0x6ADB, 0xC0CE, 0x6AA3, 0xC0CF, 0x6A7E, 0xC0D0, 0x6A97, 0xC0D1, 0x6A90, 0xC0D2, 0x6AA0, 0xC0D3, 0x6B5C, 0xC0D4, 0x6BAE, + 0xC0D5, 0x6BDA, 0xC0D6, 0x6C08, 0xC0D7, 0x6FD8, 0xC0D8, 0x6FF1, 0xC0D9, 0x6FDF, 0xC0DA, 0x6FE0, 0xC0DB, 0x6FDB, 0xC0DC, 0x6FE4, + 0xC0DD, 0x6FEB, 0xC0DE, 0x6FEF, 0xC0DF, 0x6F80, 0xC0E0, 0x6FEC, 0xC0E1, 0x6FE1, 0xC0E2, 0x6FE9, 0xC0E3, 0x6FD5, 0xC0E4, 0x6FEE, + 0xC0E5, 0x6FF0, 0xC0E6, 0x71E7, 0xC0E7, 0x71DF, 0xC0E8, 0x71EE, 0xC0E9, 0x71E6, 0xC0EA, 0x71E5, 0xC0EB, 0x71ED, 0xC0EC, 0x71EC, + 0xC0ED, 0x71F4, 0xC0EE, 0x71E0, 0xC0EF, 0x7235, 0xC0F0, 0x7246, 0xC0F1, 0x7370, 0xC0F2, 0x7372, 0xC0F3, 0x74A9, 0xC0F4, 0x74B0, + 0xC0F5, 0x74A6, 0xC0F6, 0x74A8, 0xC0F7, 0x7646, 0xC0F8, 0x7642, 0xC0F9, 0x764C, 0xC0FA, 0x76EA, 0xC0FB, 0x77B3, 0xC0FC, 0x77AA, + 0xC0FD, 0x77B0, 0xC0FE, 0x77AC, 0xC140, 0x77A7, 0xC141, 0x77AD, 0xC142, 0x77EF, 0xC143, 0x78F7, 0xC144, 0x78FA, 0xC145, 0x78F4, + 0xC146, 0x78EF, 0xC147, 0x7901, 0xC148, 0x79A7, 0xC149, 0x79AA, 0xC14A, 0x7A57, 0xC14B, 0x7ABF, 0xC14C, 0x7C07, 0xC14D, 0x7C0D, + 0xC14E, 0x7BFE, 0xC14F, 0x7BF7, 0xC150, 0x7C0C, 0xC151, 0x7BE0, 0xC152, 0x7CE0, 0xC153, 0x7CDC, 0xC154, 0x7CDE, 0xC155, 0x7CE2, + 0xC156, 0x7CDF, 0xC157, 0x7CD9, 0xC158, 0x7CDD, 0xC159, 0x7E2E, 0xC15A, 0x7E3E, 0xC15B, 0x7E46, 0xC15C, 0x7E37, 0xC15D, 0x7E32, + 0xC15E, 0x7E43, 0xC15F, 0x7E2B, 0xC160, 0x7E3D, 0xC161, 0x7E31, 0xC162, 0x7E45, 0xC163, 0x7E41, 0xC164, 0x7E34, 0xC165, 0x7E39, + 0xC166, 0x7E48, 0xC167, 0x7E35, 0xC168, 0x7E3F, 0xC169, 0x7E2F, 0xC16A, 0x7F44, 0xC16B, 0x7FF3, 0xC16C, 0x7FFC, 0xC16D, 0x8071, + 0xC16E, 0x8072, 0xC16F, 0x8070, 0xC170, 0x806F, 0xC171, 0x8073, 0xC172, 0x81C6, 0xC173, 0x81C3, 0xC174, 0x81BA, 0xC175, 0x81C2, + 0xC176, 0x81C0, 0xC177, 0x81BF, 0xC178, 0x81BD, 0xC179, 0x81C9, 0xC17A, 0x81BE, 0xC17B, 0x81E8, 0xC17C, 0x8209, 0xC17D, 0x8271, + 0xC17E, 0x85AA, 0xC1A1, 0x8584, 0xC1A2, 0x857E, 0xC1A3, 0x859C, 0xC1A4, 0x8591, 0xC1A5, 0x8594, 0xC1A6, 0x85AF, 0xC1A7, 0x859B, + 0xC1A8, 0x8587, 0xC1A9, 0x85A8, 0xC1AA, 0x858A, 0xC1AB, 0x8667, 0xC1AC, 0x87C0, 0xC1AD, 0x87D1, 0xC1AE, 0x87B3, 0xC1AF, 0x87D2, + 0xC1B0, 0x87C6, 0xC1B1, 0x87AB, 0xC1B2, 0x87BB, 0xC1B3, 0x87BA, 0xC1B4, 0x87C8, 0xC1B5, 0x87CB, 0xC1B6, 0x893B, 0xC1B7, 0x8936, + 0xC1B8, 0x8944, 0xC1B9, 0x8938, 0xC1BA, 0x893D, 0xC1BB, 0x89AC, 0xC1BC, 0x8B0E, 0xC1BD, 0x8B17, 0xC1BE, 0x8B19, 0xC1BF, 0x8B1B, + 0xC1C0, 0x8B0A, 0xC1C1, 0x8B20, 0xC1C2, 0x8B1D, 0xC1C3, 0x8B04, 0xC1C4, 0x8B10, 0xC1C5, 0x8C41, 0xC1C6, 0x8C3F, 0xC1C7, 0x8C73, + 0xC1C8, 0x8CFA, 0xC1C9, 0x8CFD, 0xC1CA, 0x8CFC, 0xC1CB, 0x8CF8, 0xC1CC, 0x8CFB, 0xC1CD, 0x8DA8, 0xC1CE, 0x8E49, 0xC1CF, 0x8E4B, + 0xC1D0, 0x8E48, 0xC1D1, 0x8E4A, 0xC1D2, 0x8F44, 0xC1D3, 0x8F3E, 0xC1D4, 0x8F42, 0xC1D5, 0x8F45, 0xC1D6, 0x8F3F, 0xC1D7, 0x907F, + 0xC1D8, 0x907D, 0xC1D9, 0x9084, 0xC1DA, 0x9081, 0xC1DB, 0x9082, 0xC1DC, 0x9080, 0xC1DD, 0x9139, 0xC1DE, 0x91A3, 0xC1DF, 0x919E, + 0xC1E0, 0x919C, 0xC1E1, 0x934D, 0xC1E2, 0x9382, 0xC1E3, 0x9328, 0xC1E4, 0x9375, 0xC1E5, 0x934A, 0xC1E6, 0x9365, 0xC1E7, 0x934B, + 0xC1E8, 0x9318, 0xC1E9, 0x937E, 0xC1EA, 0x936C, 0xC1EB, 0x935B, 0xC1EC, 0x9370, 0xC1ED, 0x935A, 0xC1EE, 0x9354, 0xC1EF, 0x95CA, + 0xC1F0, 0x95CB, 0xC1F1, 0x95CC, 0xC1F2, 0x95C8, 0xC1F3, 0x95C6, 0xC1F4, 0x96B1, 0xC1F5, 0x96B8, 0xC1F6, 0x96D6, 0xC1F7, 0x971C, + 0xC1F8, 0x971E, 0xC1F9, 0x97A0, 0xC1FA, 0x97D3, 0xC1FB, 0x9846, 0xC1FC, 0x98B6, 0xC1FD, 0x9935, 0xC1FE, 0x9A01, 0xC240, 0x99FF, + 0xC241, 0x9BAE, 0xC242, 0x9BAB, 0xC243, 0x9BAA, 0xC244, 0x9BAD, 0xC245, 0x9D3B, 0xC246, 0x9D3F, 0xC247, 0x9E8B, 0xC248, 0x9ECF, + 0xC249, 0x9EDE, 0xC24A, 0x9EDC, 0xC24B, 0x9EDD, 0xC24C, 0x9EDB, 0xC24D, 0x9F3E, 0xC24E, 0x9F4B, 0xC24F, 0x53E2, 0xC250, 0x5695, + 0xC251, 0x56AE, 0xC252, 0x58D9, 0xC253, 0x58D8, 0xC254, 0x5B38, 0xC255, 0x5F5D, 0xC256, 0x61E3, 0xC257, 0x6233, 0xC258, 0x64F4, + 0xC259, 0x64F2, 0xC25A, 0x64FE, 0xC25B, 0x6506, 0xC25C, 0x64FA, 0xC25D, 0x64FB, 0xC25E, 0x64F7, 0xC25F, 0x65B7, 0xC260, 0x66DC, + 0xC261, 0x6726, 0xC262, 0x6AB3, 0xC263, 0x6AAC, 0xC264, 0x6AC3, 0xC265, 0x6ABB, 0xC266, 0x6AB8, 0xC267, 0x6AC2, 0xC268, 0x6AAE, + 0xC269, 0x6AAF, 0xC26A, 0x6B5F, 0xC26B, 0x6B78, 0xC26C, 0x6BAF, 0xC26D, 0x7009, 0xC26E, 0x700B, 0xC26F, 0x6FFE, 0xC270, 0x7006, + 0xC271, 0x6FFA, 0xC272, 0x7011, 0xC273, 0x700F, 0xC274, 0x71FB, 0xC275, 0x71FC, 0xC276, 0x71FE, 0xC277, 0x71F8, 0xC278, 0x7377, + 0xC279, 0x7375, 0xC27A, 0x74A7, 0xC27B, 0x74BF, 0xC27C, 0x7515, 0xC27D, 0x7656, 0xC27E, 0x7658, 0xC2A1, 0x7652, 0xC2A2, 0x77BD, + 0xC2A3, 0x77BF, 0xC2A4, 0x77BB, 0xC2A5, 0x77BC, 0xC2A6, 0x790E, 0xC2A7, 0x79AE, 0xC2A8, 0x7A61, 0xC2A9, 0x7A62, 0xC2AA, 0x7A60, + 0xC2AB, 0x7AC4, 0xC2AC, 0x7AC5, 0xC2AD, 0x7C2B, 0xC2AE, 0x7C27, 0xC2AF, 0x7C2A, 0xC2B0, 0x7C1E, 0xC2B1, 0x7C23, 0xC2B2, 0x7C21, + 0xC2B3, 0x7CE7, 0xC2B4, 0x7E54, 0xC2B5, 0x7E55, 0xC2B6, 0x7E5E, 0xC2B7, 0x7E5A, 0xC2B8, 0x7E61, 0xC2B9, 0x7E52, 0xC2BA, 0x7E59, + 0xC2BB, 0x7F48, 0xC2BC, 0x7FF9, 0xC2BD, 0x7FFB, 0xC2BE, 0x8077, 0xC2BF, 0x8076, 0xC2C0, 0x81CD, 0xC2C1, 0x81CF, 0xC2C2, 0x820A, + 0xC2C3, 0x85CF, 0xC2C4, 0x85A9, 0xC2C5, 0x85CD, 0xC2C6, 0x85D0, 0xC2C7, 0x85C9, 0xC2C8, 0x85B0, 0xC2C9, 0x85BA, 0xC2CA, 0x85B9, + 0xC2CB, 0x85A6, 0xC2CC, 0x87EF, 0xC2CD, 0x87EC, 0xC2CE, 0x87F2, 0xC2CF, 0x87E0, 0xC2D0, 0x8986, 0xC2D1, 0x89B2, 0xC2D2, 0x89F4, + 0xC2D3, 0x8B28, 0xC2D4, 0x8B39, 0xC2D5, 0x8B2C, 0xC2D6, 0x8B2B, 0xC2D7, 0x8C50, 0xC2D8, 0x8D05, 0xC2D9, 0x8E59, 0xC2DA, 0x8E63, + 0xC2DB, 0x8E66, 0xC2DC, 0x8E64, 0xC2DD, 0x8E5F, 0xC2DE, 0x8E55, 0xC2DF, 0x8EC0, 0xC2E0, 0x8F49, 0xC2E1, 0x8F4D, 0xC2E2, 0x9087, + 0xC2E3, 0x9083, 0xC2E4, 0x9088, 0xC2E5, 0x91AB, 0xC2E6, 0x91AC, 0xC2E7, 0x91D0, 0xC2E8, 0x9394, 0xC2E9, 0x938A, 0xC2EA, 0x9396, + 0xC2EB, 0x93A2, 0xC2EC, 0x93B3, 0xC2ED, 0x93AE, 0xC2EE, 0x93AC, 0xC2EF, 0x93B0, 0xC2F0, 0x9398, 0xC2F1, 0x939A, 0xC2F2, 0x9397, + 0xC2F3, 0x95D4, 0xC2F4, 0x95D6, 0xC2F5, 0x95D0, 0xC2F6, 0x95D5, 0xC2F7, 0x96E2, 0xC2F8, 0x96DC, 0xC2F9, 0x96D9, 0xC2FA, 0x96DB, + 0xC2FB, 0x96DE, 0xC2FC, 0x9724, 0xC2FD, 0x97A3, 0xC2FE, 0x97A6, 0xC340, 0x97AD, 0xC341, 0x97F9, 0xC342, 0x984D, 0xC343, 0x984F, + 0xC344, 0x984C, 0xC345, 0x984E, 0xC346, 0x9853, 0xC347, 0x98BA, 0xC348, 0x993E, 0xC349, 0x993F, 0xC34A, 0x993D, 0xC34B, 0x992E, + 0xC34C, 0x99A5, 0xC34D, 0x9A0E, 0xC34E, 0x9AC1, 0xC34F, 0x9B03, 0xC350, 0x9B06, 0xC351, 0x9B4F, 0xC352, 0x9B4E, 0xC353, 0x9B4D, + 0xC354, 0x9BCA, 0xC355, 0x9BC9, 0xC356, 0x9BFD, 0xC357, 0x9BC8, 0xC358, 0x9BC0, 0xC359, 0x9D51, 0xC35A, 0x9D5D, 0xC35B, 0x9D60, + 0xC35C, 0x9EE0, 0xC35D, 0x9F15, 0xC35E, 0x9F2C, 0xC35F, 0x5133, 0xC360, 0x56A5, 0xC361, 0x58DE, 0xC362, 0x58DF, 0xC363, 0x58E2, + 0xC364, 0x5BF5, 0xC365, 0x9F90, 0xC366, 0x5EEC, 0xC367, 0x61F2, 0xC368, 0x61F7, 0xC369, 0x61F6, 0xC36A, 0x61F5, 0xC36B, 0x6500, + 0xC36C, 0x650F, 0xC36D, 0x66E0, 0xC36E, 0x66DD, 0xC36F, 0x6AE5, 0xC370, 0x6ADD, 0xC371, 0x6ADA, 0xC372, 0x6AD3, 0xC373, 0x701B, + 0xC374, 0x701F, 0xC375, 0x7028, 0xC376, 0x701A, 0xC377, 0x701D, 0xC378, 0x7015, 0xC379, 0x7018, 0xC37A, 0x7206, 0xC37B, 0x720D, + 0xC37C, 0x7258, 0xC37D, 0x72A2, 0xC37E, 0x7378, 0xC3A1, 0x737A, 0xC3A2, 0x74BD, 0xC3A3, 0x74CA, 0xC3A4, 0x74E3, 0xC3A5, 0x7587, + 0xC3A6, 0x7586, 0xC3A7, 0x765F, 0xC3A8, 0x7661, 0xC3A9, 0x77C7, 0xC3AA, 0x7919, 0xC3AB, 0x79B1, 0xC3AC, 0x7A6B, 0xC3AD, 0x7A69, + 0xC3AE, 0x7C3E, 0xC3AF, 0x7C3F, 0xC3B0, 0x7C38, 0xC3B1, 0x7C3D, 0xC3B2, 0x7C37, 0xC3B3, 0x7C40, 0xC3B4, 0x7E6B, 0xC3B5, 0x7E6D, + 0xC3B6, 0x7E79, 0xC3B7, 0x7E69, 0xC3B8, 0x7E6A, 0xC3B9, 0x7F85, 0xC3BA, 0x7E73, 0xC3BB, 0x7FB6, 0xC3BC, 0x7FB9, 0xC3BD, 0x7FB8, + 0xC3BE, 0x81D8, 0xC3BF, 0x85E9, 0xC3C0, 0x85DD, 0xC3C1, 0x85EA, 0xC3C2, 0x85D5, 0xC3C3, 0x85E4, 0xC3C4, 0x85E5, 0xC3C5, 0x85F7, + 0xC3C6, 0x87FB, 0xC3C7, 0x8805, 0xC3C8, 0x880D, 0xC3C9, 0x87F9, 0xC3CA, 0x87FE, 0xC3CB, 0x8960, 0xC3CC, 0x895F, 0xC3CD, 0x8956, + 0xC3CE, 0x895E, 0xC3CF, 0x8B41, 0xC3D0, 0x8B5C, 0xC3D1, 0x8B58, 0xC3D2, 0x8B49, 0xC3D3, 0x8B5A, 0xC3D4, 0x8B4E, 0xC3D5, 0x8B4F, + 0xC3D6, 0x8B46, 0xC3D7, 0x8B59, 0xC3D8, 0x8D08, 0xC3D9, 0x8D0A, 0xC3DA, 0x8E7C, 0xC3DB, 0x8E72, 0xC3DC, 0x8E87, 0xC3DD, 0x8E76, + 0xC3DE, 0x8E6C, 0xC3DF, 0x8E7A, 0xC3E0, 0x8E74, 0xC3E1, 0x8F54, 0xC3E2, 0x8F4E, 0xC3E3, 0x8FAD, 0xC3E4, 0x908A, 0xC3E5, 0x908B, + 0xC3E6, 0x91B1, 0xC3E7, 0x91AE, 0xC3E8, 0x93E1, 0xC3E9, 0x93D1, 0xC3EA, 0x93DF, 0xC3EB, 0x93C3, 0xC3EC, 0x93C8, 0xC3ED, 0x93DC, + 0xC3EE, 0x93DD, 0xC3EF, 0x93D6, 0xC3F0, 0x93E2, 0xC3F1, 0x93CD, 0xC3F2, 0x93D8, 0xC3F3, 0x93E4, 0xC3F4, 0x93D7, 0xC3F5, 0x93E8, + 0xC3F6, 0x95DC, 0xC3F7, 0x96B4, 0xC3F8, 0x96E3, 0xC3F9, 0x972A, 0xC3FA, 0x9727, 0xC3FB, 0x9761, 0xC3FC, 0x97DC, 0xC3FD, 0x97FB, + 0xC3FE, 0x985E, 0xC440, 0x9858, 0xC441, 0x985B, 0xC442, 0x98BC, 0xC443, 0x9945, 0xC444, 0x9949, 0xC445, 0x9A16, 0xC446, 0x9A19, + 0xC447, 0x9B0D, 0xC448, 0x9BE8, 0xC449, 0x9BE7, 0xC44A, 0x9BD6, 0xC44B, 0x9BDB, 0xC44C, 0x9D89, 0xC44D, 0x9D61, 0xC44E, 0x9D72, + 0xC44F, 0x9D6A, 0xC450, 0x9D6C, 0xC451, 0x9E92, 0xC452, 0x9E97, 0xC453, 0x9E93, 0xC454, 0x9EB4, 0xC455, 0x52F8, 0xC456, 0x56A8, + 0xC457, 0x56B7, 0xC458, 0x56B6, 0xC459, 0x56B4, 0xC45A, 0x56BC, 0xC45B, 0x58E4, 0xC45C, 0x5B40, 0xC45D, 0x5B43, 0xC45E, 0x5B7D, + 0xC45F, 0x5BF6, 0xC460, 0x5DC9, 0xC461, 0x61F8, 0xC462, 0x61FA, 0xC463, 0x6518, 0xC464, 0x6514, 0xC465, 0x6519, 0xC466, 0x66E6, + 0xC467, 0x6727, 0xC468, 0x6AEC, 0xC469, 0x703E, 0xC46A, 0x7030, 0xC46B, 0x7032, 0xC46C, 0x7210, 0xC46D, 0x737B, 0xC46E, 0x74CF, + 0xC46F, 0x7662, 0xC470, 0x7665, 0xC471, 0x7926, 0xC472, 0x792A, 0xC473, 0x792C, 0xC474, 0x792B, 0xC475, 0x7AC7, 0xC476, 0x7AF6, + 0xC477, 0x7C4C, 0xC478, 0x7C43, 0xC479, 0x7C4D, 0xC47A, 0x7CEF, 0xC47B, 0x7CF0, 0xC47C, 0x8FAE, 0xC47D, 0x7E7D, 0xC47E, 0x7E7C, + 0xC4A1, 0x7E82, 0xC4A2, 0x7F4C, 0xC4A3, 0x8000, 0xC4A4, 0x81DA, 0xC4A5, 0x8266, 0xC4A6, 0x85FB, 0xC4A7, 0x85F9, 0xC4A8, 0x8611, + 0xC4A9, 0x85FA, 0xC4AA, 0x8606, 0xC4AB, 0x860B, 0xC4AC, 0x8607, 0xC4AD, 0x860A, 0xC4AE, 0x8814, 0xC4AF, 0x8815, 0xC4B0, 0x8964, + 0xC4B1, 0x89BA, 0xC4B2, 0x89F8, 0xC4B3, 0x8B70, 0xC4B4, 0x8B6C, 0xC4B5, 0x8B66, 0xC4B6, 0x8B6F, 0xC4B7, 0x8B5F, 0xC4B8, 0x8B6B, + 0xC4B9, 0x8D0F, 0xC4BA, 0x8D0D, 0xC4BB, 0x8E89, 0xC4BC, 0x8E81, 0xC4BD, 0x8E85, 0xC4BE, 0x8E82, 0xC4BF, 0x91B4, 0xC4C0, 0x91CB, + 0xC4C1, 0x9418, 0xC4C2, 0x9403, 0xC4C3, 0x93FD, 0xC4C4, 0x95E1, 0xC4C5, 0x9730, 0xC4C6, 0x98C4, 0xC4C7, 0x9952, 0xC4C8, 0x9951, + 0xC4C9, 0x99A8, 0xC4CA, 0x9A2B, 0xC4CB, 0x9A30, 0xC4CC, 0x9A37, 0xC4CD, 0x9A35, 0xC4CE, 0x9C13, 0xC4CF, 0x9C0D, 0xC4D0, 0x9E79, + 0xC4D1, 0x9EB5, 0xC4D2, 0x9EE8, 0xC4D3, 0x9F2F, 0xC4D4, 0x9F5F, 0xC4D5, 0x9F63, 0xC4D6, 0x9F61, 0xC4D7, 0x5137, 0xC4D8, 0x5138, + 0xC4D9, 0x56C1, 0xC4DA, 0x56C0, 0xC4DB, 0x56C2, 0xC4DC, 0x5914, 0xC4DD, 0x5C6C, 0xC4DE, 0x5DCD, 0xC4DF, 0x61FC, 0xC4E0, 0x61FE, + 0xC4E1, 0x651D, 0xC4E2, 0x651C, 0xC4E3, 0x6595, 0xC4E4, 0x66E9, 0xC4E5, 0x6AFB, 0xC4E6, 0x6B04, 0xC4E7, 0x6AFA, 0xC4E8, 0x6BB2, + 0xC4E9, 0x704C, 0xC4EA, 0x721B, 0xC4EB, 0x72A7, 0xC4EC, 0x74D6, 0xC4ED, 0x74D4, 0xC4EE, 0x7669, 0xC4EF, 0x77D3, 0xC4F0, 0x7C50, + 0xC4F1, 0x7E8F, 0xC4F2, 0x7E8C, 0xC4F3, 0x7FBC, 0xC4F4, 0x8617, 0xC4F5, 0x862D, 0xC4F6, 0x861A, 0xC4F7, 0x8823, 0xC4F8, 0x8822, + 0xC4F9, 0x8821, 0xC4FA, 0x881F, 0xC4FB, 0x896A, 0xC4FC, 0x896C, 0xC4FD, 0x89BD, 0xC4FE, 0x8B74, 0xC540, 0x8B77, 0xC541, 0x8B7D, + 0xC542, 0x8D13, 0xC543, 0x8E8A, 0xC544, 0x8E8D, 0xC545, 0x8E8B, 0xC546, 0x8F5F, 0xC547, 0x8FAF, 0xC548, 0x91BA, 0xC549, 0x942E, + 0xC54A, 0x9433, 0xC54B, 0x9435, 0xC54C, 0x943A, 0xC54D, 0x9438, 0xC54E, 0x9432, 0xC54F, 0x942B, 0xC550, 0x95E2, 0xC551, 0x9738, + 0xC552, 0x9739, 0xC553, 0x9732, 0xC554, 0x97FF, 0xC555, 0x9867, 0xC556, 0x9865, 0xC557, 0x9957, 0xC558, 0x9A45, 0xC559, 0x9A43, + 0xC55A, 0x9A40, 0xC55B, 0x9A3E, 0xC55C, 0x9ACF, 0xC55D, 0x9B54, 0xC55E, 0x9B51, 0xC55F, 0x9C2D, 0xC560, 0x9C25, 0xC561, 0x9DAF, + 0xC562, 0x9DB4, 0xC563, 0x9DC2, 0xC564, 0x9DB8, 0xC565, 0x9E9D, 0xC566, 0x9EEF, 0xC567, 0x9F19, 0xC568, 0x9F5C, 0xC569, 0x9F66, + 0xC56A, 0x9F67, 0xC56B, 0x513C, 0xC56C, 0x513B, 0xC56D, 0x56C8, 0xC56E, 0x56CA, 0xC56F, 0x56C9, 0xC570, 0x5B7F, 0xC571, 0x5DD4, + 0xC572, 0x5DD2, 0xC573, 0x5F4E, 0xC574, 0x61FF, 0xC575, 0x6524, 0xC576, 0x6B0A, 0xC577, 0x6B61, 0xC578, 0x7051, 0xC579, 0x7058, + 0xC57A, 0x7380, 0xC57B, 0x74E4, 0xC57C, 0x758A, 0xC57D, 0x766E, 0xC57E, 0x766C, 0xC5A1, 0x79B3, 0xC5A2, 0x7C60, 0xC5A3, 0x7C5F, + 0xC5A4, 0x807E, 0xC5A5, 0x807D, 0xC5A6, 0x81DF, 0xC5A7, 0x8972, 0xC5A8, 0x896F, 0xC5A9, 0x89FC, 0xC5AA, 0x8B80, 0xC5AB, 0x8D16, + 0xC5AC, 0x8D17, 0xC5AD, 0x8E91, 0xC5AE, 0x8E93, 0xC5AF, 0x8F61, 0xC5B0, 0x9148, 0xC5B1, 0x9444, 0xC5B2, 0x9451, 0xC5B3, 0x9452, + 0xC5B4, 0x973D, 0xC5B5, 0x973E, 0xC5B6, 0x97C3, 0xC5B7, 0x97C1, 0xC5B8, 0x986B, 0xC5B9, 0x9955, 0xC5BA, 0x9A55, 0xC5BB, 0x9A4D, + 0xC5BC, 0x9AD2, 0xC5BD, 0x9B1A, 0xC5BE, 0x9C49, 0xC5BF, 0x9C31, 0xC5C0, 0x9C3E, 0xC5C1, 0x9C3B, 0xC5C2, 0x9DD3, 0xC5C3, 0x9DD7, + 0xC5C4, 0x9F34, 0xC5C5, 0x9F6C, 0xC5C6, 0x9F6A, 0xC5C7, 0x9F94, 0xC5C8, 0x56CC, 0xC5C9, 0x5DD6, 0xC5CA, 0x6200, 0xC5CB, 0x6523, + 0xC5CC, 0x652B, 0xC5CD, 0x652A, 0xC5CE, 0x66EC, 0xC5CF, 0x6B10, 0xC5D0, 0x74DA, 0xC5D1, 0x7ACA, 0xC5D2, 0x7C64, 0xC5D3, 0x7C63, + 0xC5D4, 0x7C65, 0xC5D5, 0x7E93, 0xC5D6, 0x7E96, 0xC5D7, 0x7E94, 0xC5D8, 0x81E2, 0xC5D9, 0x8638, 0xC5DA, 0x863F, 0xC5DB, 0x8831, + 0xC5DC, 0x8B8A, 0xC5DD, 0x9090, 0xC5DE, 0x908F, 0xC5DF, 0x9463, 0xC5E0, 0x9460, 0xC5E1, 0x9464, 0xC5E2, 0x9768, 0xC5E3, 0x986F, + 0xC5E4, 0x995C, 0xC5E5, 0x9A5A, 0xC5E6, 0x9A5B, 0xC5E7, 0x9A57, 0xC5E8, 0x9AD3, 0xC5E9, 0x9AD4, 0xC5EA, 0x9AD1, 0xC5EB, 0x9C54, + 0xC5EC, 0x9C57, 0xC5ED, 0x9C56, 0xC5EE, 0x9DE5, 0xC5EF, 0x9E9F, 0xC5F0, 0x9EF4, 0xC5F1, 0x56D1, 0xC5F2, 0x58E9, 0xC5F3, 0x652C, + 0xC5F4, 0x705E, 0xC5F5, 0x7671, 0xC5F6, 0x7672, 0xC5F7, 0x77D7, 0xC5F8, 0x7F50, 0xC5F9, 0x7F88, 0xC5FA, 0x8836, 0xC5FB, 0x8839, + 0xC5FC, 0x8862, 0xC5FD, 0x8B93, 0xC5FE, 0x8B92, 0xC640, 0x8B96, 0xC641, 0x8277, 0xC642, 0x8D1B, 0xC643, 0x91C0, 0xC644, 0x946A, + 0xC645, 0x9742, 0xC646, 0x9748, 0xC647, 0x9744, 0xC648, 0x97C6, 0xC649, 0x9870, 0xC64A, 0x9A5F, 0xC64B, 0x9B22, 0xC64C, 0x9B58, + 0xC64D, 0x9C5F, 0xC64E, 0x9DF9, 0xC64F, 0x9DFA, 0xC650, 0x9E7C, 0xC651, 0x9E7D, 0xC652, 0x9F07, 0xC653, 0x9F77, 0xC654, 0x9F72, + 0xC655, 0x5EF3, 0xC656, 0x6B16, 0xC657, 0x7063, 0xC658, 0x7C6C, 0xC659, 0x7C6E, 0xC65A, 0x883B, 0xC65B, 0x89C0, 0xC65C, 0x8EA1, + 0xC65D, 0x91C1, 0xC65E, 0x9472, 0xC65F, 0x9470, 0xC660, 0x9871, 0xC661, 0x995E, 0xC662, 0x9AD6, 0xC663, 0x9B23, 0xC664, 0x9ECC, + 0xC665, 0x7064, 0xC666, 0x77DA, 0xC667, 0x8B9A, 0xC668, 0x9477, 0xC669, 0x97C9, 0xC66A, 0x9A62, 0xC66B, 0x9A65, 0xC66C, 0x7E9C, + 0xC66D, 0x8B9C, 0xC66E, 0x8EAA, 0xC66F, 0x91C5, 0xC670, 0x947D, 0xC671, 0x947E, 0xC672, 0x947C, 0xC673, 0x9C77, 0xC674, 0x9C78, + 0xC675, 0x9EF7, 0xC676, 0x8C54, 0xC677, 0x947F, 0xC678, 0x9E1A, 0xC679, 0x7228, 0xC67A, 0x9A6A, 0xC67B, 0x9B31, 0xC67C, 0x9E1B, + 0xC67D, 0x9E1E, 0xC67E, 0x7C72, 0xC940, 0x4E42, 0xC941, 0x4E5C, 0xC942, 0x51F5, 0xC943, 0x531A, 0xC944, 0x5382, 0xC945, 0x4E07, + 0xC946, 0x4E0C, 0xC947, 0x4E47, 0xC948, 0x4E8D, 0xC949, 0x56D7, 0xC94A, 0xFA0C, 0xC94B, 0x5C6E, 0xC94C, 0x5F73, 0xC94D, 0x4E0F, + 0xC94E, 0x5187, 0xC94F, 0x4E0E, 0xC950, 0x4E2E, 0xC951, 0x4E93, 0xC952, 0x4EC2, 0xC953, 0x4EC9, 0xC954, 0x4EC8, 0xC955, 0x5198, + 0xC956, 0x52FC, 0xC957, 0x536C, 0xC958, 0x53B9, 0xC959, 0x5720, 0xC95A, 0x5903, 0xC95B, 0x592C, 0xC95C, 0x5C10, 0xC95D, 0x5DFF, + 0xC95E, 0x65E1, 0xC95F, 0x6BB3, 0xC960, 0x6BCC, 0xC961, 0x6C14, 0xC962, 0x723F, 0xC963, 0x4E31, 0xC964, 0x4E3C, 0xC965, 0x4EE8, + 0xC966, 0x4EDC, 0xC967, 0x4EE9, 0xC968, 0x4EE1, 0xC969, 0x4EDD, 0xC96A, 0x4EDA, 0xC96B, 0x520C, 0xC96C, 0x531C, 0xC96D, 0x534C, + 0xC96E, 0x5722, 0xC96F, 0x5723, 0xC970, 0x5917, 0xC971, 0x592F, 0xC972, 0x5B81, 0xC973, 0x5B84, 0xC974, 0x5C12, 0xC975, 0x5C3B, + 0xC976, 0x5C74, 0xC977, 0x5C73, 0xC978, 0x5E04, 0xC979, 0x5E80, 0xC97A, 0x5E82, 0xC97B, 0x5FC9, 0xC97C, 0x6209, 0xC97D, 0x6250, + 0xC97E, 0x6C15, 0xC9A1, 0x6C36, 0xC9A2, 0x6C43, 0xC9A3, 0x6C3F, 0xC9A4, 0x6C3B, 0xC9A5, 0x72AE, 0xC9A6, 0x72B0, 0xC9A7, 0x738A, + 0xC9A8, 0x79B8, 0xC9A9, 0x808A, 0xC9AA, 0x961E, 0xC9AB, 0x4F0E, 0xC9AC, 0x4F18, 0xC9AD, 0x4F2C, 0xC9AE, 0x4EF5, 0xC9AF, 0x4F14, + 0xC9B0, 0x4EF1, 0xC9B1, 0x4F00, 0xC9B2, 0x4EF7, 0xC9B3, 0x4F08, 0xC9B4, 0x4F1D, 0xC9B5, 0x4F02, 0xC9B6, 0x4F05, 0xC9B7, 0x4F22, + 0xC9B8, 0x4F13, 0xC9B9, 0x4F04, 0xC9BA, 0x4EF4, 0xC9BB, 0x4F12, 0xC9BC, 0x51B1, 0xC9BD, 0x5213, 0xC9BE, 0x5209, 0xC9BF, 0x5210, + 0xC9C0, 0x52A6, 0xC9C1, 0x5322, 0xC9C2, 0x531F, 0xC9C3, 0x534D, 0xC9C4, 0x538A, 0xC9C5, 0x5407, 0xC9C6, 0x56E1, 0xC9C7, 0x56DF, + 0xC9C8, 0x572E, 0xC9C9, 0x572A, 0xC9CA, 0x5734, 0xC9CB, 0x593C, 0xC9CC, 0x5980, 0xC9CD, 0x597C, 0xC9CE, 0x5985, 0xC9CF, 0x597B, + 0xC9D0, 0x597E, 0xC9D1, 0x5977, 0xC9D2, 0x597F, 0xC9D3, 0x5B56, 0xC9D4, 0x5C15, 0xC9D5, 0x5C25, 0xC9D6, 0x5C7C, 0xC9D7, 0x5C7A, + 0xC9D8, 0x5C7B, 0xC9D9, 0x5C7E, 0xC9DA, 0x5DDF, 0xC9DB, 0x5E75, 0xC9DC, 0x5E84, 0xC9DD, 0x5F02, 0xC9DE, 0x5F1A, 0xC9DF, 0x5F74, + 0xC9E0, 0x5FD5, 0xC9E1, 0x5FD4, 0xC9E2, 0x5FCF, 0xC9E3, 0x625C, 0xC9E4, 0x625E, 0xC9E5, 0x6264, 0xC9E6, 0x6261, 0xC9E7, 0x6266, + 0xC9E8, 0x6262, 0xC9E9, 0x6259, 0xC9EA, 0x6260, 0xC9EB, 0x625A, 0xC9EC, 0x6265, 0xC9ED, 0x65EF, 0xC9EE, 0x65EE, 0xC9EF, 0x673E, + 0xC9F0, 0x6739, 0xC9F1, 0x6738, 0xC9F2, 0x673B, 0xC9F3, 0x673A, 0xC9F4, 0x673F, 0xC9F5, 0x673C, 0xC9F6, 0x6733, 0xC9F7, 0x6C18, + 0xC9F8, 0x6C46, 0xC9F9, 0x6C52, 0xC9FA, 0x6C5C, 0xC9FB, 0x6C4F, 0xC9FC, 0x6C4A, 0xC9FD, 0x6C54, 0xC9FE, 0x6C4B, 0xCA40, 0x6C4C, + 0xCA41, 0x7071, 0xCA42, 0x725E, 0xCA43, 0x72B4, 0xCA44, 0x72B5, 0xCA45, 0x738E, 0xCA46, 0x752A, 0xCA47, 0x767F, 0xCA48, 0x7A75, + 0xCA49, 0x7F51, 0xCA4A, 0x8278, 0xCA4B, 0x827C, 0xCA4C, 0x8280, 0xCA4D, 0x827D, 0xCA4E, 0x827F, 0xCA4F, 0x864D, 0xCA50, 0x897E, + 0xCA51, 0x9099, 0xCA52, 0x9097, 0xCA53, 0x9098, 0xCA54, 0x909B, 0xCA55, 0x9094, 0xCA56, 0x9622, 0xCA57, 0x9624, 0xCA58, 0x9620, + 0xCA59, 0x9623, 0xCA5A, 0x4F56, 0xCA5B, 0x4F3B, 0xCA5C, 0x4F62, 0xCA5D, 0x4F49, 0xCA5E, 0x4F53, 0xCA5F, 0x4F64, 0xCA60, 0x4F3E, + 0xCA61, 0x4F67, 0xCA62, 0x4F52, 0xCA63, 0x4F5F, 0xCA64, 0x4F41, 0xCA65, 0x4F58, 0xCA66, 0x4F2D, 0xCA67, 0x4F33, 0xCA68, 0x4F3F, + 0xCA69, 0x4F61, 0xCA6A, 0x518F, 0xCA6B, 0x51B9, 0xCA6C, 0x521C, 0xCA6D, 0x521E, 0xCA6E, 0x5221, 0xCA6F, 0x52AD, 0xCA70, 0x52AE, + 0xCA71, 0x5309, 0xCA72, 0x5363, 0xCA73, 0x5372, 0xCA74, 0x538E, 0xCA75, 0x538F, 0xCA76, 0x5430, 0xCA77, 0x5437, 0xCA78, 0x542A, + 0xCA79, 0x5454, 0xCA7A, 0x5445, 0xCA7B, 0x5419, 0xCA7C, 0x541C, 0xCA7D, 0x5425, 0xCA7E, 0x5418, 0xCAA1, 0x543D, 0xCAA2, 0x544F, + 0xCAA3, 0x5441, 0xCAA4, 0x5428, 0xCAA5, 0x5424, 0xCAA6, 0x5447, 0xCAA7, 0x56EE, 0xCAA8, 0x56E7, 0xCAA9, 0x56E5, 0xCAAA, 0x5741, + 0xCAAB, 0x5745, 0xCAAC, 0x574C, 0xCAAD, 0x5749, 0xCAAE, 0x574B, 0xCAAF, 0x5752, 0xCAB0, 0x5906, 0xCAB1, 0x5940, 0xCAB2, 0x59A6, + 0xCAB3, 0x5998, 0xCAB4, 0x59A0, 0xCAB5, 0x5997, 0xCAB6, 0x598E, 0xCAB7, 0x59A2, 0xCAB8, 0x5990, 0xCAB9, 0x598F, 0xCABA, 0x59A7, + 0xCABB, 0x59A1, 0xCABC, 0x5B8E, 0xCABD, 0x5B92, 0xCABE, 0x5C28, 0xCABF, 0x5C2A, 0xCAC0, 0x5C8D, 0xCAC1, 0x5C8F, 0xCAC2, 0x5C88, + 0xCAC3, 0x5C8B, 0xCAC4, 0x5C89, 0xCAC5, 0x5C92, 0xCAC6, 0x5C8A, 0xCAC7, 0x5C86, 0xCAC8, 0x5C93, 0xCAC9, 0x5C95, 0xCACA, 0x5DE0, + 0xCACB, 0x5E0A, 0xCACC, 0x5E0E, 0xCACD, 0x5E8B, 0xCACE, 0x5E89, 0xCACF, 0x5E8C, 0xCAD0, 0x5E88, 0xCAD1, 0x5E8D, 0xCAD2, 0x5F05, + 0xCAD3, 0x5F1D, 0xCAD4, 0x5F78, 0xCAD5, 0x5F76, 0xCAD6, 0x5FD2, 0xCAD7, 0x5FD1, 0xCAD8, 0x5FD0, 0xCAD9, 0x5FED, 0xCADA, 0x5FE8, + 0xCADB, 0x5FEE, 0xCADC, 0x5FF3, 0xCADD, 0x5FE1, 0xCADE, 0x5FE4, 0xCADF, 0x5FE3, 0xCAE0, 0x5FFA, 0xCAE1, 0x5FEF, 0xCAE2, 0x5FF7, + 0xCAE3, 0x5FFB, 0xCAE4, 0x6000, 0xCAE5, 0x5FF4, 0xCAE6, 0x623A, 0xCAE7, 0x6283, 0xCAE8, 0x628C, 0xCAE9, 0x628E, 0xCAEA, 0x628F, + 0xCAEB, 0x6294, 0xCAEC, 0x6287, 0xCAED, 0x6271, 0xCAEE, 0x627B, 0xCAEF, 0x627A, 0xCAF0, 0x6270, 0xCAF1, 0x6281, 0xCAF2, 0x6288, + 0xCAF3, 0x6277, 0xCAF4, 0x627D, 0xCAF5, 0x6272, 0xCAF6, 0x6274, 0xCAF7, 0x6537, 0xCAF8, 0x65F0, 0xCAF9, 0x65F4, 0xCAFA, 0x65F3, + 0xCAFB, 0x65F2, 0xCAFC, 0x65F5, 0xCAFD, 0x6745, 0xCAFE, 0x6747, 0xCB40, 0x6759, 0xCB41, 0x6755, 0xCB42, 0x674C, 0xCB43, 0x6748, + 0xCB44, 0x675D, 0xCB45, 0x674D, 0xCB46, 0x675A, 0xCB47, 0x674B, 0xCB48, 0x6BD0, 0xCB49, 0x6C19, 0xCB4A, 0x6C1A, 0xCB4B, 0x6C78, + 0xCB4C, 0x6C67, 0xCB4D, 0x6C6B, 0xCB4E, 0x6C84, 0xCB4F, 0x6C8B, 0xCB50, 0x6C8F, 0xCB51, 0x6C71, 0xCB52, 0x6C6F, 0xCB53, 0x6C69, + 0xCB54, 0x6C9A, 0xCB55, 0x6C6D, 0xCB56, 0x6C87, 0xCB57, 0x6C95, 0xCB58, 0x6C9C, 0xCB59, 0x6C66, 0xCB5A, 0x6C73, 0xCB5B, 0x6C65, + 0xCB5C, 0x6C7B, 0xCB5D, 0x6C8E, 0xCB5E, 0x7074, 0xCB5F, 0x707A, 0xCB60, 0x7263, 0xCB61, 0x72BF, 0xCB62, 0x72BD, 0xCB63, 0x72C3, + 0xCB64, 0x72C6, 0xCB65, 0x72C1, 0xCB66, 0x72BA, 0xCB67, 0x72C5, 0xCB68, 0x7395, 0xCB69, 0x7397, 0xCB6A, 0x7393, 0xCB6B, 0x7394, + 0xCB6C, 0x7392, 0xCB6D, 0x753A, 0xCB6E, 0x7539, 0xCB6F, 0x7594, 0xCB70, 0x7595, 0xCB71, 0x7681, 0xCB72, 0x793D, 0xCB73, 0x8034, + 0xCB74, 0x8095, 0xCB75, 0x8099, 0xCB76, 0x8090, 0xCB77, 0x8092, 0xCB78, 0x809C, 0xCB79, 0x8290, 0xCB7A, 0x828F, 0xCB7B, 0x8285, + 0xCB7C, 0x828E, 0xCB7D, 0x8291, 0xCB7E, 0x8293, 0xCBA1, 0x828A, 0xCBA2, 0x8283, 0xCBA3, 0x8284, 0xCBA4, 0x8C78, 0xCBA5, 0x8FC9, + 0xCBA6, 0x8FBF, 0xCBA7, 0x909F, 0xCBA8, 0x90A1, 0xCBA9, 0x90A5, 0xCBAA, 0x909E, 0xCBAB, 0x90A7, 0xCBAC, 0x90A0, 0xCBAD, 0x9630, + 0xCBAE, 0x9628, 0xCBAF, 0x962F, 0xCBB0, 0x962D, 0xCBB1, 0x4E33, 0xCBB2, 0x4F98, 0xCBB3, 0x4F7C, 0xCBB4, 0x4F85, 0xCBB5, 0x4F7D, + 0xCBB6, 0x4F80, 0xCBB7, 0x4F87, 0xCBB8, 0x4F76, 0xCBB9, 0x4F74, 0xCBBA, 0x4F89, 0xCBBB, 0x4F84, 0xCBBC, 0x4F77, 0xCBBD, 0x4F4C, + 0xCBBE, 0x4F97, 0xCBBF, 0x4F6A, 0xCBC0, 0x4F9A, 0xCBC1, 0x4F79, 0xCBC2, 0x4F81, 0xCBC3, 0x4F78, 0xCBC4, 0x4F90, 0xCBC5, 0x4F9C, + 0xCBC6, 0x4F94, 0xCBC7, 0x4F9E, 0xCBC8, 0x4F92, 0xCBC9, 0x4F82, 0xCBCA, 0x4F95, 0xCBCB, 0x4F6B, 0xCBCC, 0x4F6E, 0xCBCD, 0x519E, + 0xCBCE, 0x51BC, 0xCBCF, 0x51BE, 0xCBD0, 0x5235, 0xCBD1, 0x5232, 0xCBD2, 0x5233, 0xCBD3, 0x5246, 0xCBD4, 0x5231, 0xCBD5, 0x52BC, + 0xCBD6, 0x530A, 0xCBD7, 0x530B, 0xCBD8, 0x533C, 0xCBD9, 0x5392, 0xCBDA, 0x5394, 0xCBDB, 0x5487, 0xCBDC, 0x547F, 0xCBDD, 0x5481, + 0xCBDE, 0x5491, 0xCBDF, 0x5482, 0xCBE0, 0x5488, 0xCBE1, 0x546B, 0xCBE2, 0x547A, 0xCBE3, 0x547E, 0xCBE4, 0x5465, 0xCBE5, 0x546C, + 0xCBE6, 0x5474, 0xCBE7, 0x5466, 0xCBE8, 0x548D, 0xCBE9, 0x546F, 0xCBEA, 0x5461, 0xCBEB, 0x5460, 0xCBEC, 0x5498, 0xCBED, 0x5463, + 0xCBEE, 0x5467, 0xCBEF, 0x5464, 0xCBF0, 0x56F7, 0xCBF1, 0x56F9, 0xCBF2, 0x576F, 0xCBF3, 0x5772, 0xCBF4, 0x576D, 0xCBF5, 0x576B, + 0xCBF6, 0x5771, 0xCBF7, 0x5770, 0xCBF8, 0x5776, 0xCBF9, 0x5780, 0xCBFA, 0x5775, 0xCBFB, 0x577B, 0xCBFC, 0x5773, 0xCBFD, 0x5774, + 0xCBFE, 0x5762, 0xCC40, 0x5768, 0xCC41, 0x577D, 0xCC42, 0x590C, 0xCC43, 0x5945, 0xCC44, 0x59B5, 0xCC45, 0x59BA, 0xCC46, 0x59CF, + 0xCC47, 0x59CE, 0xCC48, 0x59B2, 0xCC49, 0x59CC, 0xCC4A, 0x59C1, 0xCC4B, 0x59B6, 0xCC4C, 0x59BC, 0xCC4D, 0x59C3, 0xCC4E, 0x59D6, + 0xCC4F, 0x59B1, 0xCC50, 0x59BD, 0xCC51, 0x59C0, 0xCC52, 0x59C8, 0xCC53, 0x59B4, 0xCC54, 0x59C7, 0xCC55, 0x5B62, 0xCC56, 0x5B65, + 0xCC57, 0x5B93, 0xCC58, 0x5B95, 0xCC59, 0x5C44, 0xCC5A, 0x5C47, 0xCC5B, 0x5CAE, 0xCC5C, 0x5CA4, 0xCC5D, 0x5CA0, 0xCC5E, 0x5CB5, + 0xCC5F, 0x5CAF, 0xCC60, 0x5CA8, 0xCC61, 0x5CAC, 0xCC62, 0x5C9F, 0xCC63, 0x5CA3, 0xCC64, 0x5CAD, 0xCC65, 0x5CA2, 0xCC66, 0x5CAA, + 0xCC67, 0x5CA7, 0xCC68, 0x5C9D, 0xCC69, 0x5CA5, 0xCC6A, 0x5CB6, 0xCC6B, 0x5CB0, 0xCC6C, 0x5CA6, 0xCC6D, 0x5E17, 0xCC6E, 0x5E14, + 0xCC6F, 0x5E19, 0xCC70, 0x5F28, 0xCC71, 0x5F22, 0xCC72, 0x5F23, 0xCC73, 0x5F24, 0xCC74, 0x5F54, 0xCC75, 0x5F82, 0xCC76, 0x5F7E, + 0xCC77, 0x5F7D, 0xCC78, 0x5FDE, 0xCC79, 0x5FE5, 0xCC7A, 0x602D, 0xCC7B, 0x6026, 0xCC7C, 0x6019, 0xCC7D, 0x6032, 0xCC7E, 0x600B, + 0xCCA1, 0x6034, 0xCCA2, 0x600A, 0xCCA3, 0x6017, 0xCCA4, 0x6033, 0xCCA5, 0x601A, 0xCCA6, 0x601E, 0xCCA7, 0x602C, 0xCCA8, 0x6022, + 0xCCA9, 0x600D, 0xCCAA, 0x6010, 0xCCAB, 0x602E, 0xCCAC, 0x6013, 0xCCAD, 0x6011, 0xCCAE, 0x600C, 0xCCAF, 0x6009, 0xCCB0, 0x601C, + 0xCCB1, 0x6214, 0xCCB2, 0x623D, 0xCCB3, 0x62AD, 0xCCB4, 0x62B4, 0xCCB5, 0x62D1, 0xCCB6, 0x62BE, 0xCCB7, 0x62AA, 0xCCB8, 0x62B6, + 0xCCB9, 0x62CA, 0xCCBA, 0x62AE, 0xCCBB, 0x62B3, 0xCCBC, 0x62AF, 0xCCBD, 0x62BB, 0xCCBE, 0x62A9, 0xCCBF, 0x62B0, 0xCCC0, 0x62B8, + 0xCCC1, 0x653D, 0xCCC2, 0x65A8, 0xCCC3, 0x65BB, 0xCCC4, 0x6609, 0xCCC5, 0x65FC, 0xCCC6, 0x6604, 0xCCC7, 0x6612, 0xCCC8, 0x6608, + 0xCCC9, 0x65FB, 0xCCCA, 0x6603, 0xCCCB, 0x660B, 0xCCCC, 0x660D, 0xCCCD, 0x6605, 0xCCCE, 0x65FD, 0xCCCF, 0x6611, 0xCCD0, 0x6610, + 0xCCD1, 0x66F6, 0xCCD2, 0x670A, 0xCCD3, 0x6785, 0xCCD4, 0x676C, 0xCCD5, 0x678E, 0xCCD6, 0x6792, 0xCCD7, 0x6776, 0xCCD8, 0x677B, + 0xCCD9, 0x6798, 0xCCDA, 0x6786, 0xCCDB, 0x6784, 0xCCDC, 0x6774, 0xCCDD, 0x678D, 0xCCDE, 0x678C, 0xCCDF, 0x677A, 0xCCE0, 0x679F, + 0xCCE1, 0x6791, 0xCCE2, 0x6799, 0xCCE3, 0x6783, 0xCCE4, 0x677D, 0xCCE5, 0x6781, 0xCCE6, 0x6778, 0xCCE7, 0x6779, 0xCCE8, 0x6794, + 0xCCE9, 0x6B25, 0xCCEA, 0x6B80, 0xCCEB, 0x6B7E, 0xCCEC, 0x6BDE, 0xCCED, 0x6C1D, 0xCCEE, 0x6C93, 0xCCEF, 0x6CEC, 0xCCF0, 0x6CEB, + 0xCCF1, 0x6CEE, 0xCCF2, 0x6CD9, 0xCCF3, 0x6CB6, 0xCCF4, 0x6CD4, 0xCCF5, 0x6CAD, 0xCCF6, 0x6CE7, 0xCCF7, 0x6CB7, 0xCCF8, 0x6CD0, + 0xCCF9, 0x6CC2, 0xCCFA, 0x6CBA, 0xCCFB, 0x6CC3, 0xCCFC, 0x6CC6, 0xCCFD, 0x6CED, 0xCCFE, 0x6CF2, 0xCD40, 0x6CD2, 0xCD41, 0x6CDD, + 0xCD42, 0x6CB4, 0xCD43, 0x6C8A, 0xCD44, 0x6C9D, 0xCD45, 0x6C80, 0xCD46, 0x6CDE, 0xCD47, 0x6CC0, 0xCD48, 0x6D30, 0xCD49, 0x6CCD, + 0xCD4A, 0x6CC7, 0xCD4B, 0x6CB0, 0xCD4C, 0x6CF9, 0xCD4D, 0x6CCF, 0xCD4E, 0x6CE9, 0xCD4F, 0x6CD1, 0xCD50, 0x7094, 0xCD51, 0x7098, + 0xCD52, 0x7085, 0xCD53, 0x7093, 0xCD54, 0x7086, 0xCD55, 0x7084, 0xCD56, 0x7091, 0xCD57, 0x7096, 0xCD58, 0x7082, 0xCD59, 0x709A, + 0xCD5A, 0x7083, 0xCD5B, 0x726A, 0xCD5C, 0x72D6, 0xCD5D, 0x72CB, 0xCD5E, 0x72D8, 0xCD5F, 0x72C9, 0xCD60, 0x72DC, 0xCD61, 0x72D2, + 0xCD62, 0x72D4, 0xCD63, 0x72DA, 0xCD64, 0x72CC, 0xCD65, 0x72D1, 0xCD66, 0x73A4, 0xCD67, 0x73A1, 0xCD68, 0x73AD, 0xCD69, 0x73A6, + 0xCD6A, 0x73A2, 0xCD6B, 0x73A0, 0xCD6C, 0x73AC, 0xCD6D, 0x739D, 0xCD6E, 0x74DD, 0xCD6F, 0x74E8, 0xCD70, 0x753F, 0xCD71, 0x7540, + 0xCD72, 0x753E, 0xCD73, 0x758C, 0xCD74, 0x7598, 0xCD75, 0x76AF, 0xCD76, 0x76F3, 0xCD77, 0x76F1, 0xCD78, 0x76F0, 0xCD79, 0x76F5, + 0xCD7A, 0x77F8, 0xCD7B, 0x77FC, 0xCD7C, 0x77F9, 0xCD7D, 0x77FB, 0xCD7E, 0x77FA, 0xCDA1, 0x77F7, 0xCDA2, 0x7942, 0xCDA3, 0x793F, + 0xCDA4, 0x79C5, 0xCDA5, 0x7A78, 0xCDA6, 0x7A7B, 0xCDA7, 0x7AFB, 0xCDA8, 0x7C75, 0xCDA9, 0x7CFD, 0xCDAA, 0x8035, 0xCDAB, 0x808F, + 0xCDAC, 0x80AE, 0xCDAD, 0x80A3, 0xCDAE, 0x80B8, 0xCDAF, 0x80B5, 0xCDB0, 0x80AD, 0xCDB1, 0x8220, 0xCDB2, 0x82A0, 0xCDB3, 0x82C0, + 0xCDB4, 0x82AB, 0xCDB5, 0x829A, 0xCDB6, 0x8298, 0xCDB7, 0x829B, 0xCDB8, 0x82B5, 0xCDB9, 0x82A7, 0xCDBA, 0x82AE, 0xCDBB, 0x82BC, + 0xCDBC, 0x829E, 0xCDBD, 0x82BA, 0xCDBE, 0x82B4, 0xCDBF, 0x82A8, 0xCDC0, 0x82A1, 0xCDC1, 0x82A9, 0xCDC2, 0x82C2, 0xCDC3, 0x82A4, + 0xCDC4, 0x82C3, 0xCDC5, 0x82B6, 0xCDC6, 0x82A2, 0xCDC7, 0x8670, 0xCDC8, 0x866F, 0xCDC9, 0x866D, 0xCDCA, 0x866E, 0xCDCB, 0x8C56, + 0xCDCC, 0x8FD2, 0xCDCD, 0x8FCB, 0xCDCE, 0x8FD3, 0xCDCF, 0x8FCD, 0xCDD0, 0x8FD6, 0xCDD1, 0x8FD5, 0xCDD2, 0x8FD7, 0xCDD3, 0x90B2, + 0xCDD4, 0x90B4, 0xCDD5, 0x90AF, 0xCDD6, 0x90B3, 0xCDD7, 0x90B0, 0xCDD8, 0x9639, 0xCDD9, 0x963D, 0xCDDA, 0x963C, 0xCDDB, 0x963A, + 0xCDDC, 0x9643, 0xCDDD, 0x4FCD, 0xCDDE, 0x4FC5, 0xCDDF, 0x4FD3, 0xCDE0, 0x4FB2, 0xCDE1, 0x4FC9, 0xCDE2, 0x4FCB, 0xCDE3, 0x4FC1, + 0xCDE4, 0x4FD4, 0xCDE5, 0x4FDC, 0xCDE6, 0x4FD9, 0xCDE7, 0x4FBB, 0xCDE8, 0x4FB3, 0xCDE9, 0x4FDB, 0xCDEA, 0x4FC7, 0xCDEB, 0x4FD6, + 0xCDEC, 0x4FBA, 0xCDED, 0x4FC0, 0xCDEE, 0x4FB9, 0xCDEF, 0x4FEC, 0xCDF0, 0x5244, 0xCDF1, 0x5249, 0xCDF2, 0x52C0, 0xCDF3, 0x52C2, + 0xCDF4, 0x533D, 0xCDF5, 0x537C, 0xCDF6, 0x5397, 0xCDF7, 0x5396, 0xCDF8, 0x5399, 0xCDF9, 0x5398, 0xCDFA, 0x54BA, 0xCDFB, 0x54A1, + 0xCDFC, 0x54AD, 0xCDFD, 0x54A5, 0xCDFE, 0x54CF, 0xCE40, 0x54C3, 0xCE41, 0x830D, 0xCE42, 0x54B7, 0xCE43, 0x54AE, 0xCE44, 0x54D6, + 0xCE45, 0x54B6, 0xCE46, 0x54C5, 0xCE47, 0x54C6, 0xCE48, 0x54A0, 0xCE49, 0x5470, 0xCE4A, 0x54BC, 0xCE4B, 0x54A2, 0xCE4C, 0x54BE, + 0xCE4D, 0x5472, 0xCE4E, 0x54DE, 0xCE4F, 0x54B0, 0xCE50, 0x57B5, 0xCE51, 0x579E, 0xCE52, 0x579F, 0xCE53, 0x57A4, 0xCE54, 0x578C, + 0xCE55, 0x5797, 0xCE56, 0x579D, 0xCE57, 0x579B, 0xCE58, 0x5794, 0xCE59, 0x5798, 0xCE5A, 0x578F, 0xCE5B, 0x5799, 0xCE5C, 0x57A5, + 0xCE5D, 0x579A, 0xCE5E, 0x5795, 0xCE5F, 0x58F4, 0xCE60, 0x590D, 0xCE61, 0x5953, 0xCE62, 0x59E1, 0xCE63, 0x59DE, 0xCE64, 0x59EE, + 0xCE65, 0x5A00, 0xCE66, 0x59F1, 0xCE67, 0x59DD, 0xCE68, 0x59FA, 0xCE69, 0x59FD, 0xCE6A, 0x59FC, 0xCE6B, 0x59F6, 0xCE6C, 0x59E4, + 0xCE6D, 0x59F2, 0xCE6E, 0x59F7, 0xCE6F, 0x59DB, 0xCE70, 0x59E9, 0xCE71, 0x59F3, 0xCE72, 0x59F5, 0xCE73, 0x59E0, 0xCE74, 0x59FE, + 0xCE75, 0x59F4, 0xCE76, 0x59ED, 0xCE77, 0x5BA8, 0xCE78, 0x5C4C, 0xCE79, 0x5CD0, 0xCE7A, 0x5CD8, 0xCE7B, 0x5CCC, 0xCE7C, 0x5CD7, + 0xCE7D, 0x5CCB, 0xCE7E, 0x5CDB, 0xCEA1, 0x5CDE, 0xCEA2, 0x5CDA, 0xCEA3, 0x5CC9, 0xCEA4, 0x5CC7, 0xCEA5, 0x5CCA, 0xCEA6, 0x5CD6, + 0xCEA7, 0x5CD3, 0xCEA8, 0x5CD4, 0xCEA9, 0x5CCF, 0xCEAA, 0x5CC8, 0xCEAB, 0x5CC6, 0xCEAC, 0x5CCE, 0xCEAD, 0x5CDF, 0xCEAE, 0x5CF8, + 0xCEAF, 0x5DF9, 0xCEB0, 0x5E21, 0xCEB1, 0x5E22, 0xCEB2, 0x5E23, 0xCEB3, 0x5E20, 0xCEB4, 0x5E24, 0xCEB5, 0x5EB0, 0xCEB6, 0x5EA4, + 0xCEB7, 0x5EA2, 0xCEB8, 0x5E9B, 0xCEB9, 0x5EA3, 0xCEBA, 0x5EA5, 0xCEBB, 0x5F07, 0xCEBC, 0x5F2E, 0xCEBD, 0x5F56, 0xCEBE, 0x5F86, + 0xCEBF, 0x6037, 0xCEC0, 0x6039, 0xCEC1, 0x6054, 0xCEC2, 0x6072, 0xCEC3, 0x605E, 0xCEC4, 0x6045, 0xCEC5, 0x6053, 0xCEC6, 0x6047, + 0xCEC7, 0x6049, 0xCEC8, 0x605B, 0xCEC9, 0x604C, 0xCECA, 0x6040, 0xCECB, 0x6042, 0xCECC, 0x605F, 0xCECD, 0x6024, 0xCECE, 0x6044, + 0xCECF, 0x6058, 0xCED0, 0x6066, 0xCED1, 0x606E, 0xCED2, 0x6242, 0xCED3, 0x6243, 0xCED4, 0x62CF, 0xCED5, 0x630D, 0xCED6, 0x630B, + 0xCED7, 0x62F5, 0xCED8, 0x630E, 0xCED9, 0x6303, 0xCEDA, 0x62EB, 0xCEDB, 0x62F9, 0xCEDC, 0x630F, 0xCEDD, 0x630C, 0xCEDE, 0x62F8, + 0xCEDF, 0x62F6, 0xCEE0, 0x6300, 0xCEE1, 0x6313, 0xCEE2, 0x6314, 0xCEE3, 0x62FA, 0xCEE4, 0x6315, 0xCEE5, 0x62FB, 0xCEE6, 0x62F0, + 0xCEE7, 0x6541, 0xCEE8, 0x6543, 0xCEE9, 0x65AA, 0xCEEA, 0x65BF, 0xCEEB, 0x6636, 0xCEEC, 0x6621, 0xCEED, 0x6632, 0xCEEE, 0x6635, + 0xCEEF, 0x661C, 0xCEF0, 0x6626, 0xCEF1, 0x6622, 0xCEF2, 0x6633, 0xCEF3, 0x662B, 0xCEF4, 0x663A, 0xCEF5, 0x661D, 0xCEF6, 0x6634, + 0xCEF7, 0x6639, 0xCEF8, 0x662E, 0xCEF9, 0x670F, 0xCEFA, 0x6710, 0xCEFB, 0x67C1, 0xCEFC, 0x67F2, 0xCEFD, 0x67C8, 0xCEFE, 0x67BA, + 0xCF40, 0x67DC, 0xCF41, 0x67BB, 0xCF42, 0x67F8, 0xCF43, 0x67D8, 0xCF44, 0x67C0, 0xCF45, 0x67B7, 0xCF46, 0x67C5, 0xCF47, 0x67EB, + 0xCF48, 0x67E4, 0xCF49, 0x67DF, 0xCF4A, 0x67B5, 0xCF4B, 0x67CD, 0xCF4C, 0x67B3, 0xCF4D, 0x67F7, 0xCF4E, 0x67F6, 0xCF4F, 0x67EE, + 0xCF50, 0x67E3, 0xCF51, 0x67C2, 0xCF52, 0x67B9, 0xCF53, 0x67CE, 0xCF54, 0x67E7, 0xCF55, 0x67F0, 0xCF56, 0x67B2, 0xCF57, 0x67FC, + 0xCF58, 0x67C6, 0xCF59, 0x67ED, 0xCF5A, 0x67CC, 0xCF5B, 0x67AE, 0xCF5C, 0x67E6, 0xCF5D, 0x67DB, 0xCF5E, 0x67FA, 0xCF5F, 0x67C9, + 0xCF60, 0x67CA, 0xCF61, 0x67C3, 0xCF62, 0x67EA, 0xCF63, 0x67CB, 0xCF64, 0x6B28, 0xCF65, 0x6B82, 0xCF66, 0x6B84, 0xCF67, 0x6BB6, + 0xCF68, 0x6BD6, 0xCF69, 0x6BD8, 0xCF6A, 0x6BE0, 0xCF6B, 0x6C20, 0xCF6C, 0x6C21, 0xCF6D, 0x6D28, 0xCF6E, 0x6D34, 0xCF6F, 0x6D2D, + 0xCF70, 0x6D1F, 0xCF71, 0x6D3C, 0xCF72, 0x6D3F, 0xCF73, 0x6D12, 0xCF74, 0x6D0A, 0xCF75, 0x6CDA, 0xCF76, 0x6D33, 0xCF77, 0x6D04, + 0xCF78, 0x6D19, 0xCF79, 0x6D3A, 0xCF7A, 0x6D1A, 0xCF7B, 0x6D11, 0xCF7C, 0x6D00, 0xCF7D, 0x6D1D, 0xCF7E, 0x6D42, 0xCFA1, 0x6D01, + 0xCFA2, 0x6D18, 0xCFA3, 0x6D37, 0xCFA4, 0x6D03, 0xCFA5, 0x6D0F, 0xCFA6, 0x6D40, 0xCFA7, 0x6D07, 0xCFA8, 0x6D20, 0xCFA9, 0x6D2C, + 0xCFAA, 0x6D08, 0xCFAB, 0x6D22, 0xCFAC, 0x6D09, 0xCFAD, 0x6D10, 0xCFAE, 0x70B7, 0xCFAF, 0x709F, 0xCFB0, 0x70BE, 0xCFB1, 0x70B1, + 0xCFB2, 0x70B0, 0xCFB3, 0x70A1, 0xCFB4, 0x70B4, 0xCFB5, 0x70B5, 0xCFB6, 0x70A9, 0xCFB7, 0x7241, 0xCFB8, 0x7249, 0xCFB9, 0x724A, + 0xCFBA, 0x726C, 0xCFBB, 0x7270, 0xCFBC, 0x7273, 0xCFBD, 0x726E, 0xCFBE, 0x72CA, 0xCFBF, 0x72E4, 0xCFC0, 0x72E8, 0xCFC1, 0x72EB, + 0xCFC2, 0x72DF, 0xCFC3, 0x72EA, 0xCFC4, 0x72E6, 0xCFC5, 0x72E3, 0xCFC6, 0x7385, 0xCFC7, 0x73CC, 0xCFC8, 0x73C2, 0xCFC9, 0x73C8, + 0xCFCA, 0x73C5, 0xCFCB, 0x73B9, 0xCFCC, 0x73B6, 0xCFCD, 0x73B5, 0xCFCE, 0x73B4, 0xCFCF, 0x73EB, 0xCFD0, 0x73BF, 0xCFD1, 0x73C7, + 0xCFD2, 0x73BE, 0xCFD3, 0x73C3, 0xCFD4, 0x73C6, 0xCFD5, 0x73B8, 0xCFD6, 0x73CB, 0xCFD7, 0x74EC, 0xCFD8, 0x74EE, 0xCFD9, 0x752E, + 0xCFDA, 0x7547, 0xCFDB, 0x7548, 0xCFDC, 0x75A7, 0xCFDD, 0x75AA, 0xCFDE, 0x7679, 0xCFDF, 0x76C4, 0xCFE0, 0x7708, 0xCFE1, 0x7703, + 0xCFE2, 0x7704, 0xCFE3, 0x7705, 0xCFE4, 0x770A, 0xCFE5, 0x76F7, 0xCFE6, 0x76FB, 0xCFE7, 0x76FA, 0xCFE8, 0x77E7, 0xCFE9, 0x77E8, + 0xCFEA, 0x7806, 0xCFEB, 0x7811, 0xCFEC, 0x7812, 0xCFED, 0x7805, 0xCFEE, 0x7810, 0xCFEF, 0x780F, 0xCFF0, 0x780E, 0xCFF1, 0x7809, + 0xCFF2, 0x7803, 0xCFF3, 0x7813, 0xCFF4, 0x794A, 0xCFF5, 0x794C, 0xCFF6, 0x794B, 0xCFF7, 0x7945, 0xCFF8, 0x7944, 0xCFF9, 0x79D5, + 0xCFFA, 0x79CD, 0xCFFB, 0x79CF, 0xCFFC, 0x79D6, 0xCFFD, 0x79CE, 0xCFFE, 0x7A80, 0xD040, 0x7A7E, 0xD041, 0x7AD1, 0xD042, 0x7B00, + 0xD043, 0x7B01, 0xD044, 0x7C7A, 0xD045, 0x7C78, 0xD046, 0x7C79, 0xD047, 0x7C7F, 0xD048, 0x7C80, 0xD049, 0x7C81, 0xD04A, 0x7D03, + 0xD04B, 0x7D08, 0xD04C, 0x7D01, 0xD04D, 0x7F58, 0xD04E, 0x7F91, 0xD04F, 0x7F8D, 0xD050, 0x7FBE, 0xD051, 0x8007, 0xD052, 0x800E, + 0xD053, 0x800F, 0xD054, 0x8014, 0xD055, 0x8037, 0xD056, 0x80D8, 0xD057, 0x80C7, 0xD058, 0x80E0, 0xD059, 0x80D1, 0xD05A, 0x80C8, + 0xD05B, 0x80C2, 0xD05C, 0x80D0, 0xD05D, 0x80C5, 0xD05E, 0x80E3, 0xD05F, 0x80D9, 0xD060, 0x80DC, 0xD061, 0x80CA, 0xD062, 0x80D5, + 0xD063, 0x80C9, 0xD064, 0x80CF, 0xD065, 0x80D7, 0xD066, 0x80E6, 0xD067, 0x80CD, 0xD068, 0x81FF, 0xD069, 0x8221, 0xD06A, 0x8294, + 0xD06B, 0x82D9, 0xD06C, 0x82FE, 0xD06D, 0x82F9, 0xD06E, 0x8307, 0xD06F, 0x82E8, 0xD070, 0x8300, 0xD071, 0x82D5, 0xD072, 0x833A, + 0xD073, 0x82EB, 0xD074, 0x82D6, 0xD075, 0x82F4, 0xD076, 0x82EC, 0xD077, 0x82E1, 0xD078, 0x82F2, 0xD079, 0x82F5, 0xD07A, 0x830C, + 0xD07B, 0x82FB, 0xD07C, 0x82F6, 0xD07D, 0x82F0, 0xD07E, 0x82EA, 0xD0A1, 0x82E4, 0xD0A2, 0x82E0, 0xD0A3, 0x82FA, 0xD0A4, 0x82F3, + 0xD0A5, 0x82ED, 0xD0A6, 0x8677, 0xD0A7, 0x8674, 0xD0A8, 0x867C, 0xD0A9, 0x8673, 0xD0AA, 0x8841, 0xD0AB, 0x884E, 0xD0AC, 0x8867, + 0xD0AD, 0x886A, 0xD0AE, 0x8869, 0xD0AF, 0x89D3, 0xD0B0, 0x8A04, 0xD0B1, 0x8A07, 0xD0B2, 0x8D72, 0xD0B3, 0x8FE3, 0xD0B4, 0x8FE1, + 0xD0B5, 0x8FEE, 0xD0B6, 0x8FE0, 0xD0B7, 0x90F1, 0xD0B8, 0x90BD, 0xD0B9, 0x90BF, 0xD0BA, 0x90D5, 0xD0BB, 0x90C5, 0xD0BC, 0x90BE, + 0xD0BD, 0x90C7, 0xD0BE, 0x90CB, 0xD0BF, 0x90C8, 0xD0C0, 0x91D4, 0xD0C1, 0x91D3, 0xD0C2, 0x9654, 0xD0C3, 0x964F, 0xD0C4, 0x9651, + 0xD0C5, 0x9653, 0xD0C6, 0x964A, 0xD0C7, 0x964E, 0xD0C8, 0x501E, 0xD0C9, 0x5005, 0xD0CA, 0x5007, 0xD0CB, 0x5013, 0xD0CC, 0x5022, + 0xD0CD, 0x5030, 0xD0CE, 0x501B, 0xD0CF, 0x4FF5, 0xD0D0, 0x4FF4, 0xD0D1, 0x5033, 0xD0D2, 0x5037, 0xD0D3, 0x502C, 0xD0D4, 0x4FF6, + 0xD0D5, 0x4FF7, 0xD0D6, 0x5017, 0xD0D7, 0x501C, 0xD0D8, 0x5020, 0xD0D9, 0x5027, 0xD0DA, 0x5035, 0xD0DB, 0x502F, 0xD0DC, 0x5031, + 0xD0DD, 0x500E, 0xD0DE, 0x515A, 0xD0DF, 0x5194, 0xD0E0, 0x5193, 0xD0E1, 0x51CA, 0xD0E2, 0x51C4, 0xD0E3, 0x51C5, 0xD0E4, 0x51C8, + 0xD0E5, 0x51CE, 0xD0E6, 0x5261, 0xD0E7, 0x525A, 0xD0E8, 0x5252, 0xD0E9, 0x525E, 0xD0EA, 0x525F, 0xD0EB, 0x5255, 0xD0EC, 0x5262, + 0xD0ED, 0x52CD, 0xD0EE, 0x530E, 0xD0EF, 0x539E, 0xD0F0, 0x5526, 0xD0F1, 0x54E2, 0xD0F2, 0x5517, 0xD0F3, 0x5512, 0xD0F4, 0x54E7, + 0xD0F5, 0x54F3, 0xD0F6, 0x54E4, 0xD0F7, 0x551A, 0xD0F8, 0x54FF, 0xD0F9, 0x5504, 0xD0FA, 0x5508, 0xD0FB, 0x54EB, 0xD0FC, 0x5511, + 0xD0FD, 0x5505, 0xD0FE, 0x54F1, 0xD140, 0x550A, 0xD141, 0x54FB, 0xD142, 0x54F7, 0xD143, 0x54F8, 0xD144, 0x54E0, 0xD145, 0x550E, + 0xD146, 0x5503, 0xD147, 0x550B, 0xD148, 0x5701, 0xD149, 0x5702, 0xD14A, 0x57CC, 0xD14B, 0x5832, 0xD14C, 0x57D5, 0xD14D, 0x57D2, + 0xD14E, 0x57BA, 0xD14F, 0x57C6, 0xD150, 0x57BD, 0xD151, 0x57BC, 0xD152, 0x57B8, 0xD153, 0x57B6, 0xD154, 0x57BF, 0xD155, 0x57C7, + 0xD156, 0x57D0, 0xD157, 0x57B9, 0xD158, 0x57C1, 0xD159, 0x590E, 0xD15A, 0x594A, 0xD15B, 0x5A19, 0xD15C, 0x5A16, 0xD15D, 0x5A2D, + 0xD15E, 0x5A2E, 0xD15F, 0x5A15, 0xD160, 0x5A0F, 0xD161, 0x5A17, 0xD162, 0x5A0A, 0xD163, 0x5A1E, 0xD164, 0x5A33, 0xD165, 0x5B6C, + 0xD166, 0x5BA7, 0xD167, 0x5BAD, 0xD168, 0x5BAC, 0xD169, 0x5C03, 0xD16A, 0x5C56, 0xD16B, 0x5C54, 0xD16C, 0x5CEC, 0xD16D, 0x5CFF, + 0xD16E, 0x5CEE, 0xD16F, 0x5CF1, 0xD170, 0x5CF7, 0xD171, 0x5D00, 0xD172, 0x5CF9, 0xD173, 0x5E29, 0xD174, 0x5E28, 0xD175, 0x5EA8, + 0xD176, 0x5EAE, 0xD177, 0x5EAA, 0xD178, 0x5EAC, 0xD179, 0x5F33, 0xD17A, 0x5F30, 0xD17B, 0x5F67, 0xD17C, 0x605D, 0xD17D, 0x605A, + 0xD17E, 0x6067, 0xD1A1, 0x6041, 0xD1A2, 0x60A2, 0xD1A3, 0x6088, 0xD1A4, 0x6080, 0xD1A5, 0x6092, 0xD1A6, 0x6081, 0xD1A7, 0x609D, + 0xD1A8, 0x6083, 0xD1A9, 0x6095, 0xD1AA, 0x609B, 0xD1AB, 0x6097, 0xD1AC, 0x6087, 0xD1AD, 0x609C, 0xD1AE, 0x608E, 0xD1AF, 0x6219, + 0xD1B0, 0x6246, 0xD1B1, 0x62F2, 0xD1B2, 0x6310, 0xD1B3, 0x6356, 0xD1B4, 0x632C, 0xD1B5, 0x6344, 0xD1B6, 0x6345, 0xD1B7, 0x6336, + 0xD1B8, 0x6343, 0xD1B9, 0x63E4, 0xD1BA, 0x6339, 0xD1BB, 0x634B, 0xD1BC, 0x634A, 0xD1BD, 0x633C, 0xD1BE, 0x6329, 0xD1BF, 0x6341, + 0xD1C0, 0x6334, 0xD1C1, 0x6358, 0xD1C2, 0x6354, 0xD1C3, 0x6359, 0xD1C4, 0x632D, 0xD1C5, 0x6347, 0xD1C6, 0x6333, 0xD1C7, 0x635A, + 0xD1C8, 0x6351, 0xD1C9, 0x6338, 0xD1CA, 0x6357, 0xD1CB, 0x6340, 0xD1CC, 0x6348, 0xD1CD, 0x654A, 0xD1CE, 0x6546, 0xD1CF, 0x65C6, + 0xD1D0, 0x65C3, 0xD1D1, 0x65C4, 0xD1D2, 0x65C2, 0xD1D3, 0x664A, 0xD1D4, 0x665F, 0xD1D5, 0x6647, 0xD1D6, 0x6651, 0xD1D7, 0x6712, + 0xD1D8, 0x6713, 0xD1D9, 0x681F, 0xD1DA, 0x681A, 0xD1DB, 0x6849, 0xD1DC, 0x6832, 0xD1DD, 0x6833, 0xD1DE, 0x683B, 0xD1DF, 0x684B, + 0xD1E0, 0x684F, 0xD1E1, 0x6816, 0xD1E2, 0x6831, 0xD1E3, 0x681C, 0xD1E4, 0x6835, 0xD1E5, 0x682B, 0xD1E6, 0x682D, 0xD1E7, 0x682F, + 0xD1E8, 0x684E, 0xD1E9, 0x6844, 0xD1EA, 0x6834, 0xD1EB, 0x681D, 0xD1EC, 0x6812, 0xD1ED, 0x6814, 0xD1EE, 0x6826, 0xD1EF, 0x6828, + 0xD1F0, 0x682E, 0xD1F1, 0x684D, 0xD1F2, 0x683A, 0xD1F3, 0x6825, 0xD1F4, 0x6820, 0xD1F5, 0x6B2C, 0xD1F6, 0x6B2F, 0xD1F7, 0x6B2D, + 0xD1F8, 0x6B31, 0xD1F9, 0x6B34, 0xD1FA, 0x6B6D, 0xD1FB, 0x8082, 0xD1FC, 0x6B88, 0xD1FD, 0x6BE6, 0xD1FE, 0x6BE4, 0xD240, 0x6BE8, + 0xD241, 0x6BE3, 0xD242, 0x6BE2, 0xD243, 0x6BE7, 0xD244, 0x6C25, 0xD245, 0x6D7A, 0xD246, 0x6D63, 0xD247, 0x6D64, 0xD248, 0x6D76, + 0xD249, 0x6D0D, 0xD24A, 0x6D61, 0xD24B, 0x6D92, 0xD24C, 0x6D58, 0xD24D, 0x6D62, 0xD24E, 0x6D6D, 0xD24F, 0x6D6F, 0xD250, 0x6D91, + 0xD251, 0x6D8D, 0xD252, 0x6DEF, 0xD253, 0x6D7F, 0xD254, 0x6D86, 0xD255, 0x6D5E, 0xD256, 0x6D67, 0xD257, 0x6D60, 0xD258, 0x6D97, + 0xD259, 0x6D70, 0xD25A, 0x6D7C, 0xD25B, 0x6D5F, 0xD25C, 0x6D82, 0xD25D, 0x6D98, 0xD25E, 0x6D2F, 0xD25F, 0x6D68, 0xD260, 0x6D8B, + 0xD261, 0x6D7E, 0xD262, 0x6D80, 0xD263, 0x6D84, 0xD264, 0x6D16, 0xD265, 0x6D83, 0xD266, 0x6D7B, 0xD267, 0x6D7D, 0xD268, 0x6D75, + 0xD269, 0x6D90, 0xD26A, 0x70DC, 0xD26B, 0x70D3, 0xD26C, 0x70D1, 0xD26D, 0x70DD, 0xD26E, 0x70CB, 0xD26F, 0x7F39, 0xD270, 0x70E2, + 0xD271, 0x70D7, 0xD272, 0x70D2, 0xD273, 0x70DE, 0xD274, 0x70E0, 0xD275, 0x70D4, 0xD276, 0x70CD, 0xD277, 0x70C5, 0xD278, 0x70C6, + 0xD279, 0x70C7, 0xD27A, 0x70DA, 0xD27B, 0x70CE, 0xD27C, 0x70E1, 0xD27D, 0x7242, 0xD27E, 0x7278, 0xD2A1, 0x7277, 0xD2A2, 0x7276, + 0xD2A3, 0x7300, 0xD2A4, 0x72FA, 0xD2A5, 0x72F4, 0xD2A6, 0x72FE, 0xD2A7, 0x72F6, 0xD2A8, 0x72F3, 0xD2A9, 0x72FB, 0xD2AA, 0x7301, + 0xD2AB, 0x73D3, 0xD2AC, 0x73D9, 0xD2AD, 0x73E5, 0xD2AE, 0x73D6, 0xD2AF, 0x73BC, 0xD2B0, 0x73E7, 0xD2B1, 0x73E3, 0xD2B2, 0x73E9, + 0xD2B3, 0x73DC, 0xD2B4, 0x73D2, 0xD2B5, 0x73DB, 0xD2B6, 0x73D4, 0xD2B7, 0x73DD, 0xD2B8, 0x73DA, 0xD2B9, 0x73D7, 0xD2BA, 0x73D8, + 0xD2BB, 0x73E8, 0xD2BC, 0x74DE, 0xD2BD, 0x74DF, 0xD2BE, 0x74F4, 0xD2BF, 0x74F5, 0xD2C0, 0x7521, 0xD2C1, 0x755B, 0xD2C2, 0x755F, + 0xD2C3, 0x75B0, 0xD2C4, 0x75C1, 0xD2C5, 0x75BB, 0xD2C6, 0x75C4, 0xD2C7, 0x75C0, 0xD2C8, 0x75BF, 0xD2C9, 0x75B6, 0xD2CA, 0x75BA, + 0xD2CB, 0x768A, 0xD2CC, 0x76C9, 0xD2CD, 0x771D, 0xD2CE, 0x771B, 0xD2CF, 0x7710, 0xD2D0, 0x7713, 0xD2D1, 0x7712, 0xD2D2, 0x7723, + 0xD2D3, 0x7711, 0xD2D4, 0x7715, 0xD2D5, 0x7719, 0xD2D6, 0x771A, 0xD2D7, 0x7722, 0xD2D8, 0x7727, 0xD2D9, 0x7823, 0xD2DA, 0x782C, + 0xD2DB, 0x7822, 0xD2DC, 0x7835, 0xD2DD, 0x782F, 0xD2DE, 0x7828, 0xD2DF, 0x782E, 0xD2E0, 0x782B, 0xD2E1, 0x7821, 0xD2E2, 0x7829, + 0xD2E3, 0x7833, 0xD2E4, 0x782A, 0xD2E5, 0x7831, 0xD2E6, 0x7954, 0xD2E7, 0x795B, 0xD2E8, 0x794F, 0xD2E9, 0x795C, 0xD2EA, 0x7953, + 0xD2EB, 0x7952, 0xD2EC, 0x7951, 0xD2ED, 0x79EB, 0xD2EE, 0x79EC, 0xD2EF, 0x79E0, 0xD2F0, 0x79EE, 0xD2F1, 0x79ED, 0xD2F2, 0x79EA, + 0xD2F3, 0x79DC, 0xD2F4, 0x79DE, 0xD2F5, 0x79DD, 0xD2F6, 0x7A86, 0xD2F7, 0x7A89, 0xD2F8, 0x7A85, 0xD2F9, 0x7A8B, 0xD2FA, 0x7A8C, + 0xD2FB, 0x7A8A, 0xD2FC, 0x7A87, 0xD2FD, 0x7AD8, 0xD2FE, 0x7B10, 0xD340, 0x7B04, 0xD341, 0x7B13, 0xD342, 0x7B05, 0xD343, 0x7B0F, + 0xD344, 0x7B08, 0xD345, 0x7B0A, 0xD346, 0x7B0E, 0xD347, 0x7B09, 0xD348, 0x7B12, 0xD349, 0x7C84, 0xD34A, 0x7C91, 0xD34B, 0x7C8A, + 0xD34C, 0x7C8C, 0xD34D, 0x7C88, 0xD34E, 0x7C8D, 0xD34F, 0x7C85, 0xD350, 0x7D1E, 0xD351, 0x7D1D, 0xD352, 0x7D11, 0xD353, 0x7D0E, + 0xD354, 0x7D18, 0xD355, 0x7D16, 0xD356, 0x7D13, 0xD357, 0x7D1F, 0xD358, 0x7D12, 0xD359, 0x7D0F, 0xD35A, 0x7D0C, 0xD35B, 0x7F5C, + 0xD35C, 0x7F61, 0xD35D, 0x7F5E, 0xD35E, 0x7F60, 0xD35F, 0x7F5D, 0xD360, 0x7F5B, 0xD361, 0x7F96, 0xD362, 0x7F92, 0xD363, 0x7FC3, + 0xD364, 0x7FC2, 0xD365, 0x7FC0, 0xD366, 0x8016, 0xD367, 0x803E, 0xD368, 0x8039, 0xD369, 0x80FA, 0xD36A, 0x80F2, 0xD36B, 0x80F9, + 0xD36C, 0x80F5, 0xD36D, 0x8101, 0xD36E, 0x80FB, 0xD36F, 0x8100, 0xD370, 0x8201, 0xD371, 0x822F, 0xD372, 0x8225, 0xD373, 0x8333, + 0xD374, 0x832D, 0xD375, 0x8344, 0xD376, 0x8319, 0xD377, 0x8351, 0xD378, 0x8325, 0xD379, 0x8356, 0xD37A, 0x833F, 0xD37B, 0x8341, + 0xD37C, 0x8326, 0xD37D, 0x831C, 0xD37E, 0x8322, 0xD3A1, 0x8342, 0xD3A2, 0x834E, 0xD3A3, 0x831B, 0xD3A4, 0x832A, 0xD3A5, 0x8308, + 0xD3A6, 0x833C, 0xD3A7, 0x834D, 0xD3A8, 0x8316, 0xD3A9, 0x8324, 0xD3AA, 0x8320, 0xD3AB, 0x8337, 0xD3AC, 0x832F, 0xD3AD, 0x8329, + 0xD3AE, 0x8347, 0xD3AF, 0x8345, 0xD3B0, 0x834C, 0xD3B1, 0x8353, 0xD3B2, 0x831E, 0xD3B3, 0x832C, 0xD3B4, 0x834B, 0xD3B5, 0x8327, + 0xD3B6, 0x8348, 0xD3B7, 0x8653, 0xD3B8, 0x8652, 0xD3B9, 0x86A2, 0xD3BA, 0x86A8, 0xD3BB, 0x8696, 0xD3BC, 0x868D, 0xD3BD, 0x8691, + 0xD3BE, 0x869E, 0xD3BF, 0x8687, 0xD3C0, 0x8697, 0xD3C1, 0x8686, 0xD3C2, 0x868B, 0xD3C3, 0x869A, 0xD3C4, 0x8685, 0xD3C5, 0x86A5, + 0xD3C6, 0x8699, 0xD3C7, 0x86A1, 0xD3C8, 0x86A7, 0xD3C9, 0x8695, 0xD3CA, 0x8698, 0xD3CB, 0x868E, 0xD3CC, 0x869D, 0xD3CD, 0x8690, + 0xD3CE, 0x8694, 0xD3CF, 0x8843, 0xD3D0, 0x8844, 0xD3D1, 0x886D, 0xD3D2, 0x8875, 0xD3D3, 0x8876, 0xD3D4, 0x8872, 0xD3D5, 0x8880, + 0xD3D6, 0x8871, 0xD3D7, 0x887F, 0xD3D8, 0x886F, 0xD3D9, 0x8883, 0xD3DA, 0x887E, 0xD3DB, 0x8874, 0xD3DC, 0x887C, 0xD3DD, 0x8A12, + 0xD3DE, 0x8C47, 0xD3DF, 0x8C57, 0xD3E0, 0x8C7B, 0xD3E1, 0x8CA4, 0xD3E2, 0x8CA3, 0xD3E3, 0x8D76, 0xD3E4, 0x8D78, 0xD3E5, 0x8DB5, + 0xD3E6, 0x8DB7, 0xD3E7, 0x8DB6, 0xD3E8, 0x8ED1, 0xD3E9, 0x8ED3, 0xD3EA, 0x8FFE, 0xD3EB, 0x8FF5, 0xD3EC, 0x9002, 0xD3ED, 0x8FFF, + 0xD3EE, 0x8FFB, 0xD3EF, 0x9004, 0xD3F0, 0x8FFC, 0xD3F1, 0x8FF6, 0xD3F2, 0x90D6, 0xD3F3, 0x90E0, 0xD3F4, 0x90D9, 0xD3F5, 0x90DA, + 0xD3F6, 0x90E3, 0xD3F7, 0x90DF, 0xD3F8, 0x90E5, 0xD3F9, 0x90D8, 0xD3FA, 0x90DB, 0xD3FB, 0x90D7, 0xD3FC, 0x90DC, 0xD3FD, 0x90E4, + 0xD3FE, 0x9150, 0xD440, 0x914E, 0xD441, 0x914F, 0xD442, 0x91D5, 0xD443, 0x91E2, 0xD444, 0x91DA, 0xD445, 0x965C, 0xD446, 0x965F, + 0xD447, 0x96BC, 0xD448, 0x98E3, 0xD449, 0x9ADF, 0xD44A, 0x9B2F, 0xD44B, 0x4E7F, 0xD44C, 0x5070, 0xD44D, 0x506A, 0xD44E, 0x5061, + 0xD44F, 0x505E, 0xD450, 0x5060, 0xD451, 0x5053, 0xD452, 0x504B, 0xD453, 0x505D, 0xD454, 0x5072, 0xD455, 0x5048, 0xD456, 0x504D, + 0xD457, 0x5041, 0xD458, 0x505B, 0xD459, 0x504A, 0xD45A, 0x5062, 0xD45B, 0x5015, 0xD45C, 0x5045, 0xD45D, 0x505F, 0xD45E, 0x5069, + 0xD45F, 0x506B, 0xD460, 0x5063, 0xD461, 0x5064, 0xD462, 0x5046, 0xD463, 0x5040, 0xD464, 0x506E, 0xD465, 0x5073, 0xD466, 0x5057, + 0xD467, 0x5051, 0xD468, 0x51D0, 0xD469, 0x526B, 0xD46A, 0x526D, 0xD46B, 0x526C, 0xD46C, 0x526E, 0xD46D, 0x52D6, 0xD46E, 0x52D3, + 0xD46F, 0x532D, 0xD470, 0x539C, 0xD471, 0x5575, 0xD472, 0x5576, 0xD473, 0x553C, 0xD474, 0x554D, 0xD475, 0x5550, 0xD476, 0x5534, + 0xD477, 0x552A, 0xD478, 0x5551, 0xD479, 0x5562, 0xD47A, 0x5536, 0xD47B, 0x5535, 0xD47C, 0x5530, 0xD47D, 0x5552, 0xD47E, 0x5545, + 0xD4A1, 0x550C, 0xD4A2, 0x5532, 0xD4A3, 0x5565, 0xD4A4, 0x554E, 0xD4A5, 0x5539, 0xD4A6, 0x5548, 0xD4A7, 0x552D, 0xD4A8, 0x553B, + 0xD4A9, 0x5540, 0xD4AA, 0x554B, 0xD4AB, 0x570A, 0xD4AC, 0x5707, 0xD4AD, 0x57FB, 0xD4AE, 0x5814, 0xD4AF, 0x57E2, 0xD4B0, 0x57F6, + 0xD4B1, 0x57DC, 0xD4B2, 0x57F4, 0xD4B3, 0x5800, 0xD4B4, 0x57ED, 0xD4B5, 0x57FD, 0xD4B6, 0x5808, 0xD4B7, 0x57F8, 0xD4B8, 0x580B, + 0xD4B9, 0x57F3, 0xD4BA, 0x57CF, 0xD4BB, 0x5807, 0xD4BC, 0x57EE, 0xD4BD, 0x57E3, 0xD4BE, 0x57F2, 0xD4BF, 0x57E5, 0xD4C0, 0x57EC, + 0xD4C1, 0x57E1, 0xD4C2, 0x580E, 0xD4C3, 0x57FC, 0xD4C4, 0x5810, 0xD4C5, 0x57E7, 0xD4C6, 0x5801, 0xD4C7, 0x580C, 0xD4C8, 0x57F1, + 0xD4C9, 0x57E9, 0xD4CA, 0x57F0, 0xD4CB, 0x580D, 0xD4CC, 0x5804, 0xD4CD, 0x595C, 0xD4CE, 0x5A60, 0xD4CF, 0x5A58, 0xD4D0, 0x5A55, + 0xD4D1, 0x5A67, 0xD4D2, 0x5A5E, 0xD4D3, 0x5A38, 0xD4D4, 0x5A35, 0xD4D5, 0x5A6D, 0xD4D6, 0x5A50, 0xD4D7, 0x5A5F, 0xD4D8, 0x5A65, + 0xD4D9, 0x5A6C, 0xD4DA, 0x5A53, 0xD4DB, 0x5A64, 0xD4DC, 0x5A57, 0xD4DD, 0x5A43, 0xD4DE, 0x5A5D, 0xD4DF, 0x5A52, 0xD4E0, 0x5A44, + 0xD4E1, 0x5A5B, 0xD4E2, 0x5A48, 0xD4E3, 0x5A8E, 0xD4E4, 0x5A3E, 0xD4E5, 0x5A4D, 0xD4E6, 0x5A39, 0xD4E7, 0x5A4C, 0xD4E8, 0x5A70, + 0xD4E9, 0x5A69, 0xD4EA, 0x5A47, 0xD4EB, 0x5A51, 0xD4EC, 0x5A56, 0xD4ED, 0x5A42, 0xD4EE, 0x5A5C, 0xD4EF, 0x5B72, 0xD4F0, 0x5B6E, + 0xD4F1, 0x5BC1, 0xD4F2, 0x5BC0, 0xD4F3, 0x5C59, 0xD4F4, 0x5D1E, 0xD4F5, 0x5D0B, 0xD4F6, 0x5D1D, 0xD4F7, 0x5D1A, 0xD4F8, 0x5D20, + 0xD4F9, 0x5D0C, 0xD4FA, 0x5D28, 0xD4FB, 0x5D0D, 0xD4FC, 0x5D26, 0xD4FD, 0x5D25, 0xD4FE, 0x5D0F, 0xD540, 0x5D30, 0xD541, 0x5D12, + 0xD542, 0x5D23, 0xD543, 0x5D1F, 0xD544, 0x5D2E, 0xD545, 0x5E3E, 0xD546, 0x5E34, 0xD547, 0x5EB1, 0xD548, 0x5EB4, 0xD549, 0x5EB9, + 0xD54A, 0x5EB2, 0xD54B, 0x5EB3, 0xD54C, 0x5F36, 0xD54D, 0x5F38, 0xD54E, 0x5F9B, 0xD54F, 0x5F96, 0xD550, 0x5F9F, 0xD551, 0x608A, + 0xD552, 0x6090, 0xD553, 0x6086, 0xD554, 0x60BE, 0xD555, 0x60B0, 0xD556, 0x60BA, 0xD557, 0x60D3, 0xD558, 0x60D4, 0xD559, 0x60CF, + 0xD55A, 0x60E4, 0xD55B, 0x60D9, 0xD55C, 0x60DD, 0xD55D, 0x60C8, 0xD55E, 0x60B1, 0xD55F, 0x60DB, 0xD560, 0x60B7, 0xD561, 0x60CA, + 0xD562, 0x60BF, 0xD563, 0x60C3, 0xD564, 0x60CD, 0xD565, 0x60C0, 0xD566, 0x6332, 0xD567, 0x6365, 0xD568, 0x638A, 0xD569, 0x6382, + 0xD56A, 0x637D, 0xD56B, 0x63BD, 0xD56C, 0x639E, 0xD56D, 0x63AD, 0xD56E, 0x639D, 0xD56F, 0x6397, 0xD570, 0x63AB, 0xD571, 0x638E, + 0xD572, 0x636F, 0xD573, 0x6387, 0xD574, 0x6390, 0xD575, 0x636E, 0xD576, 0x63AF, 0xD577, 0x6375, 0xD578, 0x639C, 0xD579, 0x636D, + 0xD57A, 0x63AE, 0xD57B, 0x637C, 0xD57C, 0x63A4, 0xD57D, 0x633B, 0xD57E, 0x639F, 0xD5A1, 0x6378, 0xD5A2, 0x6385, 0xD5A3, 0x6381, + 0xD5A4, 0x6391, 0xD5A5, 0x638D, 0xD5A6, 0x6370, 0xD5A7, 0x6553, 0xD5A8, 0x65CD, 0xD5A9, 0x6665, 0xD5AA, 0x6661, 0xD5AB, 0x665B, + 0xD5AC, 0x6659, 0xD5AD, 0x665C, 0xD5AE, 0x6662, 0xD5AF, 0x6718, 0xD5B0, 0x6879, 0xD5B1, 0x6887, 0xD5B2, 0x6890, 0xD5B3, 0x689C, + 0xD5B4, 0x686D, 0xD5B5, 0x686E, 0xD5B6, 0x68AE, 0xD5B7, 0x68AB, 0xD5B8, 0x6956, 0xD5B9, 0x686F, 0xD5BA, 0x68A3, 0xD5BB, 0x68AC, + 0xD5BC, 0x68A9, 0xD5BD, 0x6875, 0xD5BE, 0x6874, 0xD5BF, 0x68B2, 0xD5C0, 0x688F, 0xD5C1, 0x6877, 0xD5C2, 0x6892, 0xD5C3, 0x687C, + 0xD5C4, 0x686B, 0xD5C5, 0x6872, 0xD5C6, 0x68AA, 0xD5C7, 0x6880, 0xD5C8, 0x6871, 0xD5C9, 0x687E, 0xD5CA, 0x689B, 0xD5CB, 0x6896, + 0xD5CC, 0x688B, 0xD5CD, 0x68A0, 0xD5CE, 0x6889, 0xD5CF, 0x68A4, 0xD5D0, 0x6878, 0xD5D1, 0x687B, 0xD5D2, 0x6891, 0xD5D3, 0x688C, + 0xD5D4, 0x688A, 0xD5D5, 0x687D, 0xD5D6, 0x6B36, 0xD5D7, 0x6B33, 0xD5D8, 0x6B37, 0xD5D9, 0x6B38, 0xD5DA, 0x6B91, 0xD5DB, 0x6B8F, + 0xD5DC, 0x6B8D, 0xD5DD, 0x6B8E, 0xD5DE, 0x6B8C, 0xD5DF, 0x6C2A, 0xD5E0, 0x6DC0, 0xD5E1, 0x6DAB, 0xD5E2, 0x6DB4, 0xD5E3, 0x6DB3, + 0xD5E4, 0x6E74, 0xD5E5, 0x6DAC, 0xD5E6, 0x6DE9, 0xD5E7, 0x6DE2, 0xD5E8, 0x6DB7, 0xD5E9, 0x6DF6, 0xD5EA, 0x6DD4, 0xD5EB, 0x6E00, + 0xD5EC, 0x6DC8, 0xD5ED, 0x6DE0, 0xD5EE, 0x6DDF, 0xD5EF, 0x6DD6, 0xD5F0, 0x6DBE, 0xD5F1, 0x6DE5, 0xD5F2, 0x6DDC, 0xD5F3, 0x6DDD, + 0xD5F4, 0x6DDB, 0xD5F5, 0x6DF4, 0xD5F6, 0x6DCA, 0xD5F7, 0x6DBD, 0xD5F8, 0x6DED, 0xD5F9, 0x6DF0, 0xD5FA, 0x6DBA, 0xD5FB, 0x6DD5, + 0xD5FC, 0x6DC2, 0xD5FD, 0x6DCF, 0xD5FE, 0x6DC9, 0xD640, 0x6DD0, 0xD641, 0x6DF2, 0xD642, 0x6DD3, 0xD643, 0x6DFD, 0xD644, 0x6DD7, + 0xD645, 0x6DCD, 0xD646, 0x6DE3, 0xD647, 0x6DBB, 0xD648, 0x70FA, 0xD649, 0x710D, 0xD64A, 0x70F7, 0xD64B, 0x7117, 0xD64C, 0x70F4, + 0xD64D, 0x710C, 0xD64E, 0x70F0, 0xD64F, 0x7104, 0xD650, 0x70F3, 0xD651, 0x7110, 0xD652, 0x70FC, 0xD653, 0x70FF, 0xD654, 0x7106, + 0xD655, 0x7113, 0xD656, 0x7100, 0xD657, 0x70F8, 0xD658, 0x70F6, 0xD659, 0x710B, 0xD65A, 0x7102, 0xD65B, 0x710E, 0xD65C, 0x727E, + 0xD65D, 0x727B, 0xD65E, 0x727C, 0xD65F, 0x727F, 0xD660, 0x731D, 0xD661, 0x7317, 0xD662, 0x7307, 0xD663, 0x7311, 0xD664, 0x7318, + 0xD665, 0x730A, 0xD666, 0x7308, 0xD667, 0x72FF, 0xD668, 0x730F, 0xD669, 0x731E, 0xD66A, 0x7388, 0xD66B, 0x73F6, 0xD66C, 0x73F8, + 0xD66D, 0x73F5, 0xD66E, 0x7404, 0xD66F, 0x7401, 0xD670, 0x73FD, 0xD671, 0x7407, 0xD672, 0x7400, 0xD673, 0x73FA, 0xD674, 0x73FC, + 0xD675, 0x73FF, 0xD676, 0x740C, 0xD677, 0x740B, 0xD678, 0x73F4, 0xD679, 0x7408, 0xD67A, 0x7564, 0xD67B, 0x7563, 0xD67C, 0x75CE, + 0xD67D, 0x75D2, 0xD67E, 0x75CF, 0xD6A1, 0x75CB, 0xD6A2, 0x75CC, 0xD6A3, 0x75D1, 0xD6A4, 0x75D0, 0xD6A5, 0x768F, 0xD6A6, 0x7689, + 0xD6A7, 0x76D3, 0xD6A8, 0x7739, 0xD6A9, 0x772F, 0xD6AA, 0x772D, 0xD6AB, 0x7731, 0xD6AC, 0x7732, 0xD6AD, 0x7734, 0xD6AE, 0x7733, + 0xD6AF, 0x773D, 0xD6B0, 0x7725, 0xD6B1, 0x773B, 0xD6B2, 0x7735, 0xD6B3, 0x7848, 0xD6B4, 0x7852, 0xD6B5, 0x7849, 0xD6B6, 0x784D, + 0xD6B7, 0x784A, 0xD6B8, 0x784C, 0xD6B9, 0x7826, 0xD6BA, 0x7845, 0xD6BB, 0x7850, 0xD6BC, 0x7964, 0xD6BD, 0x7967, 0xD6BE, 0x7969, + 0xD6BF, 0x796A, 0xD6C0, 0x7963, 0xD6C1, 0x796B, 0xD6C2, 0x7961, 0xD6C3, 0x79BB, 0xD6C4, 0x79FA, 0xD6C5, 0x79F8, 0xD6C6, 0x79F6, + 0xD6C7, 0x79F7, 0xD6C8, 0x7A8F, 0xD6C9, 0x7A94, 0xD6CA, 0x7A90, 0xD6CB, 0x7B35, 0xD6CC, 0x7B47, 0xD6CD, 0x7B34, 0xD6CE, 0x7B25, + 0xD6CF, 0x7B30, 0xD6D0, 0x7B22, 0xD6D1, 0x7B24, 0xD6D2, 0x7B33, 0xD6D3, 0x7B18, 0xD6D4, 0x7B2A, 0xD6D5, 0x7B1D, 0xD6D6, 0x7B31, + 0xD6D7, 0x7B2B, 0xD6D8, 0x7B2D, 0xD6D9, 0x7B2F, 0xD6DA, 0x7B32, 0xD6DB, 0x7B38, 0xD6DC, 0x7B1A, 0xD6DD, 0x7B23, 0xD6DE, 0x7C94, + 0xD6DF, 0x7C98, 0xD6E0, 0x7C96, 0xD6E1, 0x7CA3, 0xD6E2, 0x7D35, 0xD6E3, 0x7D3D, 0xD6E4, 0x7D38, 0xD6E5, 0x7D36, 0xD6E6, 0x7D3A, + 0xD6E7, 0x7D45, 0xD6E8, 0x7D2C, 0xD6E9, 0x7D29, 0xD6EA, 0x7D41, 0xD6EB, 0x7D47, 0xD6EC, 0x7D3E, 0xD6ED, 0x7D3F, 0xD6EE, 0x7D4A, + 0xD6EF, 0x7D3B, 0xD6F0, 0x7D28, 0xD6F1, 0x7F63, 0xD6F2, 0x7F95, 0xD6F3, 0x7F9C, 0xD6F4, 0x7F9D, 0xD6F5, 0x7F9B, 0xD6F6, 0x7FCA, + 0xD6F7, 0x7FCB, 0xD6F8, 0x7FCD, 0xD6F9, 0x7FD0, 0xD6FA, 0x7FD1, 0xD6FB, 0x7FC7, 0xD6FC, 0x7FCF, 0xD6FD, 0x7FC9, 0xD6FE, 0x801F, + 0xD740, 0x801E, 0xD741, 0x801B, 0xD742, 0x8047, 0xD743, 0x8043, 0xD744, 0x8048, 0xD745, 0x8118, 0xD746, 0x8125, 0xD747, 0x8119, + 0xD748, 0x811B, 0xD749, 0x812D, 0xD74A, 0x811F, 0xD74B, 0x812C, 0xD74C, 0x811E, 0xD74D, 0x8121, 0xD74E, 0x8115, 0xD74F, 0x8127, + 0xD750, 0x811D, 0xD751, 0x8122, 0xD752, 0x8211, 0xD753, 0x8238, 0xD754, 0x8233, 0xD755, 0x823A, 0xD756, 0x8234, 0xD757, 0x8232, + 0xD758, 0x8274, 0xD759, 0x8390, 0xD75A, 0x83A3, 0xD75B, 0x83A8, 0xD75C, 0x838D, 0xD75D, 0x837A, 0xD75E, 0x8373, 0xD75F, 0x83A4, + 0xD760, 0x8374, 0xD761, 0x838F, 0xD762, 0x8381, 0xD763, 0x8395, 0xD764, 0x8399, 0xD765, 0x8375, 0xD766, 0x8394, 0xD767, 0x83A9, + 0xD768, 0x837D, 0xD769, 0x8383, 0xD76A, 0x838C, 0xD76B, 0x839D, 0xD76C, 0x839B, 0xD76D, 0x83AA, 0xD76E, 0x838B, 0xD76F, 0x837E, + 0xD770, 0x83A5, 0xD771, 0x83AF, 0xD772, 0x8388, 0xD773, 0x8397, 0xD774, 0x83B0, 0xD775, 0x837F, 0xD776, 0x83A6, 0xD777, 0x8387, + 0xD778, 0x83AE, 0xD779, 0x8376, 0xD77A, 0x839A, 0xD77B, 0x8659, 0xD77C, 0x8656, 0xD77D, 0x86BF, 0xD77E, 0x86B7, 0xD7A1, 0x86C2, + 0xD7A2, 0x86C1, 0xD7A3, 0x86C5, 0xD7A4, 0x86BA, 0xD7A5, 0x86B0, 0xD7A6, 0x86C8, 0xD7A7, 0x86B9, 0xD7A8, 0x86B3, 0xD7A9, 0x86B8, + 0xD7AA, 0x86CC, 0xD7AB, 0x86B4, 0xD7AC, 0x86BB, 0xD7AD, 0x86BC, 0xD7AE, 0x86C3, 0xD7AF, 0x86BD, 0xD7B0, 0x86BE, 0xD7B1, 0x8852, + 0xD7B2, 0x8889, 0xD7B3, 0x8895, 0xD7B4, 0x88A8, 0xD7B5, 0x88A2, 0xD7B6, 0x88AA, 0xD7B7, 0x889A, 0xD7B8, 0x8891, 0xD7B9, 0x88A1, + 0xD7BA, 0x889F, 0xD7BB, 0x8898, 0xD7BC, 0x88A7, 0xD7BD, 0x8899, 0xD7BE, 0x889B, 0xD7BF, 0x8897, 0xD7C0, 0x88A4, 0xD7C1, 0x88AC, + 0xD7C2, 0x888C, 0xD7C3, 0x8893, 0xD7C4, 0x888E, 0xD7C5, 0x8982, 0xD7C6, 0x89D6, 0xD7C7, 0x89D9, 0xD7C8, 0x89D5, 0xD7C9, 0x8A30, + 0xD7CA, 0x8A27, 0xD7CB, 0x8A2C, 0xD7CC, 0x8A1E, 0xD7CD, 0x8C39, 0xD7CE, 0x8C3B, 0xD7CF, 0x8C5C, 0xD7D0, 0x8C5D, 0xD7D1, 0x8C7D, + 0xD7D2, 0x8CA5, 0xD7D3, 0x8D7D, 0xD7D4, 0x8D7B, 0xD7D5, 0x8D79, 0xD7D6, 0x8DBC, 0xD7D7, 0x8DC2, 0xD7D8, 0x8DB9, 0xD7D9, 0x8DBF, + 0xD7DA, 0x8DC1, 0xD7DB, 0x8ED8, 0xD7DC, 0x8EDE, 0xD7DD, 0x8EDD, 0xD7DE, 0x8EDC, 0xD7DF, 0x8ED7, 0xD7E0, 0x8EE0, 0xD7E1, 0x8EE1, + 0xD7E2, 0x9024, 0xD7E3, 0x900B, 0xD7E4, 0x9011, 0xD7E5, 0x901C, 0xD7E6, 0x900C, 0xD7E7, 0x9021, 0xD7E8, 0x90EF, 0xD7E9, 0x90EA, + 0xD7EA, 0x90F0, 0xD7EB, 0x90F4, 0xD7EC, 0x90F2, 0xD7ED, 0x90F3, 0xD7EE, 0x90D4, 0xD7EF, 0x90EB, 0xD7F0, 0x90EC, 0xD7F1, 0x90E9, + 0xD7F2, 0x9156, 0xD7F3, 0x9158, 0xD7F4, 0x915A, 0xD7F5, 0x9153, 0xD7F6, 0x9155, 0xD7F7, 0x91EC, 0xD7F8, 0x91F4, 0xD7F9, 0x91F1, + 0xD7FA, 0x91F3, 0xD7FB, 0x91F8, 0xD7FC, 0x91E4, 0xD7FD, 0x91F9, 0xD7FE, 0x91EA, 0xD840, 0x91EB, 0xD841, 0x91F7, 0xD842, 0x91E8, + 0xD843, 0x91EE, 0xD844, 0x957A, 0xD845, 0x9586, 0xD846, 0x9588, 0xD847, 0x967C, 0xD848, 0x966D, 0xD849, 0x966B, 0xD84A, 0x9671, + 0xD84B, 0x966F, 0xD84C, 0x96BF, 0xD84D, 0x976A, 0xD84E, 0x9804, 0xD84F, 0x98E5, 0xD850, 0x9997, 0xD851, 0x509B, 0xD852, 0x5095, + 0xD853, 0x5094, 0xD854, 0x509E, 0xD855, 0x508B, 0xD856, 0x50A3, 0xD857, 0x5083, 0xD858, 0x508C, 0xD859, 0x508E, 0xD85A, 0x509D, + 0xD85B, 0x5068, 0xD85C, 0x509C, 0xD85D, 0x5092, 0xD85E, 0x5082, 0xD85F, 0x5087, 0xD860, 0x515F, 0xD861, 0x51D4, 0xD862, 0x5312, + 0xD863, 0x5311, 0xD864, 0x53A4, 0xD865, 0x53A7, 0xD866, 0x5591, 0xD867, 0x55A8, 0xD868, 0x55A5, 0xD869, 0x55AD, 0xD86A, 0x5577, + 0xD86B, 0x5645, 0xD86C, 0x55A2, 0xD86D, 0x5593, 0xD86E, 0x5588, 0xD86F, 0x558F, 0xD870, 0x55B5, 0xD871, 0x5581, 0xD872, 0x55A3, + 0xD873, 0x5592, 0xD874, 0x55A4, 0xD875, 0x557D, 0xD876, 0x558C, 0xD877, 0x55A6, 0xD878, 0x557F, 0xD879, 0x5595, 0xD87A, 0x55A1, + 0xD87B, 0x558E, 0xD87C, 0x570C, 0xD87D, 0x5829, 0xD87E, 0x5837, 0xD8A1, 0x5819, 0xD8A2, 0x581E, 0xD8A3, 0x5827, 0xD8A4, 0x5823, + 0xD8A5, 0x5828, 0xD8A6, 0x57F5, 0xD8A7, 0x5848, 0xD8A8, 0x5825, 0xD8A9, 0x581C, 0xD8AA, 0x581B, 0xD8AB, 0x5833, 0xD8AC, 0x583F, + 0xD8AD, 0x5836, 0xD8AE, 0x582E, 0xD8AF, 0x5839, 0xD8B0, 0x5838, 0xD8B1, 0x582D, 0xD8B2, 0x582C, 0xD8B3, 0x583B, 0xD8B4, 0x5961, + 0xD8B5, 0x5AAF, 0xD8B6, 0x5A94, 0xD8B7, 0x5A9F, 0xD8B8, 0x5A7A, 0xD8B9, 0x5AA2, 0xD8BA, 0x5A9E, 0xD8BB, 0x5A78, 0xD8BC, 0x5AA6, + 0xD8BD, 0x5A7C, 0xD8BE, 0x5AA5, 0xD8BF, 0x5AAC, 0xD8C0, 0x5A95, 0xD8C1, 0x5AAE, 0xD8C2, 0x5A37, 0xD8C3, 0x5A84, 0xD8C4, 0x5A8A, + 0xD8C5, 0x5A97, 0xD8C6, 0x5A83, 0xD8C7, 0x5A8B, 0xD8C8, 0x5AA9, 0xD8C9, 0x5A7B, 0xD8CA, 0x5A7D, 0xD8CB, 0x5A8C, 0xD8CC, 0x5A9C, + 0xD8CD, 0x5A8F, 0xD8CE, 0x5A93, 0xD8CF, 0x5A9D, 0xD8D0, 0x5BEA, 0xD8D1, 0x5BCD, 0xD8D2, 0x5BCB, 0xD8D3, 0x5BD4, 0xD8D4, 0x5BD1, + 0xD8D5, 0x5BCA, 0xD8D6, 0x5BCE, 0xD8D7, 0x5C0C, 0xD8D8, 0x5C30, 0xD8D9, 0x5D37, 0xD8DA, 0x5D43, 0xD8DB, 0x5D6B, 0xD8DC, 0x5D41, + 0xD8DD, 0x5D4B, 0xD8DE, 0x5D3F, 0xD8DF, 0x5D35, 0xD8E0, 0x5D51, 0xD8E1, 0x5D4E, 0xD8E2, 0x5D55, 0xD8E3, 0x5D33, 0xD8E4, 0x5D3A, + 0xD8E5, 0x5D52, 0xD8E6, 0x5D3D, 0xD8E7, 0x5D31, 0xD8E8, 0x5D59, 0xD8E9, 0x5D42, 0xD8EA, 0x5D39, 0xD8EB, 0x5D49, 0xD8EC, 0x5D38, + 0xD8ED, 0x5D3C, 0xD8EE, 0x5D32, 0xD8EF, 0x5D36, 0xD8F0, 0x5D40, 0xD8F1, 0x5D45, 0xD8F2, 0x5E44, 0xD8F3, 0x5E41, 0xD8F4, 0x5F58, + 0xD8F5, 0x5FA6, 0xD8F6, 0x5FA5, 0xD8F7, 0x5FAB, 0xD8F8, 0x60C9, 0xD8F9, 0x60B9, 0xD8FA, 0x60CC, 0xD8FB, 0x60E2, 0xD8FC, 0x60CE, + 0xD8FD, 0x60C4, 0xD8FE, 0x6114, 0xD940, 0x60F2, 0xD941, 0x610A, 0xD942, 0x6116, 0xD943, 0x6105, 0xD944, 0x60F5, 0xD945, 0x6113, + 0xD946, 0x60F8, 0xD947, 0x60FC, 0xD948, 0x60FE, 0xD949, 0x60C1, 0xD94A, 0x6103, 0xD94B, 0x6118, 0xD94C, 0x611D, 0xD94D, 0x6110, + 0xD94E, 0x60FF, 0xD94F, 0x6104, 0xD950, 0x610B, 0xD951, 0x624A, 0xD952, 0x6394, 0xD953, 0x63B1, 0xD954, 0x63B0, 0xD955, 0x63CE, + 0xD956, 0x63E5, 0xD957, 0x63E8, 0xD958, 0x63EF, 0xD959, 0x63C3, 0xD95A, 0x649D, 0xD95B, 0x63F3, 0xD95C, 0x63CA, 0xD95D, 0x63E0, + 0xD95E, 0x63F6, 0xD95F, 0x63D5, 0xD960, 0x63F2, 0xD961, 0x63F5, 0xD962, 0x6461, 0xD963, 0x63DF, 0xD964, 0x63BE, 0xD965, 0x63DD, + 0xD966, 0x63DC, 0xD967, 0x63C4, 0xD968, 0x63D8, 0xD969, 0x63D3, 0xD96A, 0x63C2, 0xD96B, 0x63C7, 0xD96C, 0x63CC, 0xD96D, 0x63CB, + 0xD96E, 0x63C8, 0xD96F, 0x63F0, 0xD970, 0x63D7, 0xD971, 0x63D9, 0xD972, 0x6532, 0xD973, 0x6567, 0xD974, 0x656A, 0xD975, 0x6564, + 0xD976, 0x655C, 0xD977, 0x6568, 0xD978, 0x6565, 0xD979, 0x658C, 0xD97A, 0x659D, 0xD97B, 0x659E, 0xD97C, 0x65AE, 0xD97D, 0x65D0, + 0xD97E, 0x65D2, 0xD9A1, 0x667C, 0xD9A2, 0x666C, 0xD9A3, 0x667B, 0xD9A4, 0x6680, 0xD9A5, 0x6671, 0xD9A6, 0x6679, 0xD9A7, 0x666A, + 0xD9A8, 0x6672, 0xD9A9, 0x6701, 0xD9AA, 0x690C, 0xD9AB, 0x68D3, 0xD9AC, 0x6904, 0xD9AD, 0x68DC, 0xD9AE, 0x692A, 0xD9AF, 0x68EC, + 0xD9B0, 0x68EA, 0xD9B1, 0x68F1, 0xD9B2, 0x690F, 0xD9B3, 0x68D6, 0xD9B4, 0x68F7, 0xD9B5, 0x68EB, 0xD9B6, 0x68E4, 0xD9B7, 0x68F6, + 0xD9B8, 0x6913, 0xD9B9, 0x6910, 0xD9BA, 0x68F3, 0xD9BB, 0x68E1, 0xD9BC, 0x6907, 0xD9BD, 0x68CC, 0xD9BE, 0x6908, 0xD9BF, 0x6970, + 0xD9C0, 0x68B4, 0xD9C1, 0x6911, 0xD9C2, 0x68EF, 0xD9C3, 0x68C6, 0xD9C4, 0x6914, 0xD9C5, 0x68F8, 0xD9C6, 0x68D0, 0xD9C7, 0x68FD, + 0xD9C8, 0x68FC, 0xD9C9, 0x68E8, 0xD9CA, 0x690B, 0xD9CB, 0x690A, 0xD9CC, 0x6917, 0xD9CD, 0x68CE, 0xD9CE, 0x68C8, 0xD9CF, 0x68DD, + 0xD9D0, 0x68DE, 0xD9D1, 0x68E6, 0xD9D2, 0x68F4, 0xD9D3, 0x68D1, 0xD9D4, 0x6906, 0xD9D5, 0x68D4, 0xD9D6, 0x68E9, 0xD9D7, 0x6915, + 0xD9D8, 0x6925, 0xD9D9, 0x68C7, 0xD9DA, 0x6B39, 0xD9DB, 0x6B3B, 0xD9DC, 0x6B3F, 0xD9DD, 0x6B3C, 0xD9DE, 0x6B94, 0xD9DF, 0x6B97, + 0xD9E0, 0x6B99, 0xD9E1, 0x6B95, 0xD9E2, 0x6BBD, 0xD9E3, 0x6BF0, 0xD9E4, 0x6BF2, 0xD9E5, 0x6BF3, 0xD9E6, 0x6C30, 0xD9E7, 0x6DFC, + 0xD9E8, 0x6E46, 0xD9E9, 0x6E47, 0xD9EA, 0x6E1F, 0xD9EB, 0x6E49, 0xD9EC, 0x6E88, 0xD9ED, 0x6E3C, 0xD9EE, 0x6E3D, 0xD9EF, 0x6E45, + 0xD9F0, 0x6E62, 0xD9F1, 0x6E2B, 0xD9F2, 0x6E3F, 0xD9F3, 0x6E41, 0xD9F4, 0x6E5D, 0xD9F5, 0x6E73, 0xD9F6, 0x6E1C, 0xD9F7, 0x6E33, + 0xD9F8, 0x6E4B, 0xD9F9, 0x6E40, 0xD9FA, 0x6E51, 0xD9FB, 0x6E3B, 0xD9FC, 0x6E03, 0xD9FD, 0x6E2E, 0xD9FE, 0x6E5E, 0xDA40, 0x6E68, + 0xDA41, 0x6E5C, 0xDA42, 0x6E61, 0xDA43, 0x6E31, 0xDA44, 0x6E28, 0xDA45, 0x6E60, 0xDA46, 0x6E71, 0xDA47, 0x6E6B, 0xDA48, 0x6E39, + 0xDA49, 0x6E22, 0xDA4A, 0x6E30, 0xDA4B, 0x6E53, 0xDA4C, 0x6E65, 0xDA4D, 0x6E27, 0xDA4E, 0x6E78, 0xDA4F, 0x6E64, 0xDA50, 0x6E77, + 0xDA51, 0x6E55, 0xDA52, 0x6E79, 0xDA53, 0x6E52, 0xDA54, 0x6E66, 0xDA55, 0x6E35, 0xDA56, 0x6E36, 0xDA57, 0x6E5A, 0xDA58, 0x7120, + 0xDA59, 0x711E, 0xDA5A, 0x712F, 0xDA5B, 0x70FB, 0xDA5C, 0x712E, 0xDA5D, 0x7131, 0xDA5E, 0x7123, 0xDA5F, 0x7125, 0xDA60, 0x7122, + 0xDA61, 0x7132, 0xDA62, 0x711F, 0xDA63, 0x7128, 0xDA64, 0x713A, 0xDA65, 0x711B, 0xDA66, 0x724B, 0xDA67, 0x725A, 0xDA68, 0x7288, + 0xDA69, 0x7289, 0xDA6A, 0x7286, 0xDA6B, 0x7285, 0xDA6C, 0x728B, 0xDA6D, 0x7312, 0xDA6E, 0x730B, 0xDA6F, 0x7330, 0xDA70, 0x7322, + 0xDA71, 0x7331, 0xDA72, 0x7333, 0xDA73, 0x7327, 0xDA74, 0x7332, 0xDA75, 0x732D, 0xDA76, 0x7326, 0xDA77, 0x7323, 0xDA78, 0x7335, + 0xDA79, 0x730C, 0xDA7A, 0x742E, 0xDA7B, 0x742C, 0xDA7C, 0x7430, 0xDA7D, 0x742B, 0xDA7E, 0x7416, 0xDAA1, 0x741A, 0xDAA2, 0x7421, + 0xDAA3, 0x742D, 0xDAA4, 0x7431, 0xDAA5, 0x7424, 0xDAA6, 0x7423, 0xDAA7, 0x741D, 0xDAA8, 0x7429, 0xDAA9, 0x7420, 0xDAAA, 0x7432, + 0xDAAB, 0x74FB, 0xDAAC, 0x752F, 0xDAAD, 0x756F, 0xDAAE, 0x756C, 0xDAAF, 0x75E7, 0xDAB0, 0x75DA, 0xDAB1, 0x75E1, 0xDAB2, 0x75E6, + 0xDAB3, 0x75DD, 0xDAB4, 0x75DF, 0xDAB5, 0x75E4, 0xDAB6, 0x75D7, 0xDAB7, 0x7695, 0xDAB8, 0x7692, 0xDAB9, 0x76DA, 0xDABA, 0x7746, + 0xDABB, 0x7747, 0xDABC, 0x7744, 0xDABD, 0x774D, 0xDABE, 0x7745, 0xDABF, 0x774A, 0xDAC0, 0x774E, 0xDAC1, 0x774B, 0xDAC2, 0x774C, + 0xDAC3, 0x77DE, 0xDAC4, 0x77EC, 0xDAC5, 0x7860, 0xDAC6, 0x7864, 0xDAC7, 0x7865, 0xDAC8, 0x785C, 0xDAC9, 0x786D, 0xDACA, 0x7871, + 0xDACB, 0x786A, 0xDACC, 0x786E, 0xDACD, 0x7870, 0xDACE, 0x7869, 0xDACF, 0x7868, 0xDAD0, 0x785E, 0xDAD1, 0x7862, 0xDAD2, 0x7974, + 0xDAD3, 0x7973, 0xDAD4, 0x7972, 0xDAD5, 0x7970, 0xDAD6, 0x7A02, 0xDAD7, 0x7A0A, 0xDAD8, 0x7A03, 0xDAD9, 0x7A0C, 0xDADA, 0x7A04, + 0xDADB, 0x7A99, 0xDADC, 0x7AE6, 0xDADD, 0x7AE4, 0xDADE, 0x7B4A, 0xDADF, 0x7B3B, 0xDAE0, 0x7B44, 0xDAE1, 0x7B48, 0xDAE2, 0x7B4C, + 0xDAE3, 0x7B4E, 0xDAE4, 0x7B40, 0xDAE5, 0x7B58, 0xDAE6, 0x7B45, 0xDAE7, 0x7CA2, 0xDAE8, 0x7C9E, 0xDAE9, 0x7CA8, 0xDAEA, 0x7CA1, + 0xDAEB, 0x7D58, 0xDAEC, 0x7D6F, 0xDAED, 0x7D63, 0xDAEE, 0x7D53, 0xDAEF, 0x7D56, 0xDAF0, 0x7D67, 0xDAF1, 0x7D6A, 0xDAF2, 0x7D4F, + 0xDAF3, 0x7D6D, 0xDAF4, 0x7D5C, 0xDAF5, 0x7D6B, 0xDAF6, 0x7D52, 0xDAF7, 0x7D54, 0xDAF8, 0x7D69, 0xDAF9, 0x7D51, 0xDAFA, 0x7D5F, + 0xDAFB, 0x7D4E, 0xDAFC, 0x7F3E, 0xDAFD, 0x7F3F, 0xDAFE, 0x7F65, 0xDB40, 0x7F66, 0xDB41, 0x7FA2, 0xDB42, 0x7FA0, 0xDB43, 0x7FA1, + 0xDB44, 0x7FD7, 0xDB45, 0x8051, 0xDB46, 0x804F, 0xDB47, 0x8050, 0xDB48, 0x80FE, 0xDB49, 0x80D4, 0xDB4A, 0x8143, 0xDB4B, 0x814A, + 0xDB4C, 0x8152, 0xDB4D, 0x814F, 0xDB4E, 0x8147, 0xDB4F, 0x813D, 0xDB50, 0x814D, 0xDB51, 0x813A, 0xDB52, 0x81E6, 0xDB53, 0x81EE, + 0xDB54, 0x81F7, 0xDB55, 0x81F8, 0xDB56, 0x81F9, 0xDB57, 0x8204, 0xDB58, 0x823C, 0xDB59, 0x823D, 0xDB5A, 0x823F, 0xDB5B, 0x8275, + 0xDB5C, 0x833B, 0xDB5D, 0x83CF, 0xDB5E, 0x83F9, 0xDB5F, 0x8423, 0xDB60, 0x83C0, 0xDB61, 0x83E8, 0xDB62, 0x8412, 0xDB63, 0x83E7, + 0xDB64, 0x83E4, 0xDB65, 0x83FC, 0xDB66, 0x83F6, 0xDB67, 0x8410, 0xDB68, 0x83C6, 0xDB69, 0x83C8, 0xDB6A, 0x83EB, 0xDB6B, 0x83E3, + 0xDB6C, 0x83BF, 0xDB6D, 0x8401, 0xDB6E, 0x83DD, 0xDB6F, 0x83E5, 0xDB70, 0x83D8, 0xDB71, 0x83FF, 0xDB72, 0x83E1, 0xDB73, 0x83CB, + 0xDB74, 0x83CE, 0xDB75, 0x83D6, 0xDB76, 0x83F5, 0xDB77, 0x83C9, 0xDB78, 0x8409, 0xDB79, 0x840F, 0xDB7A, 0x83DE, 0xDB7B, 0x8411, + 0xDB7C, 0x8406, 0xDB7D, 0x83C2, 0xDB7E, 0x83F3, 0xDBA1, 0x83D5, 0xDBA2, 0x83FA, 0xDBA3, 0x83C7, 0xDBA4, 0x83D1, 0xDBA5, 0x83EA, + 0xDBA6, 0x8413, 0xDBA7, 0x83C3, 0xDBA8, 0x83EC, 0xDBA9, 0x83EE, 0xDBAA, 0x83C4, 0xDBAB, 0x83FB, 0xDBAC, 0x83D7, 0xDBAD, 0x83E2, + 0xDBAE, 0x841B, 0xDBAF, 0x83DB, 0xDBB0, 0x83FE, 0xDBB1, 0x86D8, 0xDBB2, 0x86E2, 0xDBB3, 0x86E6, 0xDBB4, 0x86D3, 0xDBB5, 0x86E3, + 0xDBB6, 0x86DA, 0xDBB7, 0x86EA, 0xDBB8, 0x86DD, 0xDBB9, 0x86EB, 0xDBBA, 0x86DC, 0xDBBB, 0x86EC, 0xDBBC, 0x86E9, 0xDBBD, 0x86D7, + 0xDBBE, 0x86E8, 0xDBBF, 0x86D1, 0xDBC0, 0x8848, 0xDBC1, 0x8856, 0xDBC2, 0x8855, 0xDBC3, 0x88BA, 0xDBC4, 0x88D7, 0xDBC5, 0x88B9, + 0xDBC6, 0x88B8, 0xDBC7, 0x88C0, 0xDBC8, 0x88BE, 0xDBC9, 0x88B6, 0xDBCA, 0x88BC, 0xDBCB, 0x88B7, 0xDBCC, 0x88BD, 0xDBCD, 0x88B2, + 0xDBCE, 0x8901, 0xDBCF, 0x88C9, 0xDBD0, 0x8995, 0xDBD1, 0x8998, 0xDBD2, 0x8997, 0xDBD3, 0x89DD, 0xDBD4, 0x89DA, 0xDBD5, 0x89DB, + 0xDBD6, 0x8A4E, 0xDBD7, 0x8A4D, 0xDBD8, 0x8A39, 0xDBD9, 0x8A59, 0xDBDA, 0x8A40, 0xDBDB, 0x8A57, 0xDBDC, 0x8A58, 0xDBDD, 0x8A44, + 0xDBDE, 0x8A45, 0xDBDF, 0x8A52, 0xDBE0, 0x8A48, 0xDBE1, 0x8A51, 0xDBE2, 0x8A4A, 0xDBE3, 0x8A4C, 0xDBE4, 0x8A4F, 0xDBE5, 0x8C5F, + 0xDBE6, 0x8C81, 0xDBE7, 0x8C80, 0xDBE8, 0x8CBA, 0xDBE9, 0x8CBE, 0xDBEA, 0x8CB0, 0xDBEB, 0x8CB9, 0xDBEC, 0x8CB5, 0xDBED, 0x8D84, + 0xDBEE, 0x8D80, 0xDBEF, 0x8D89, 0xDBF0, 0x8DD8, 0xDBF1, 0x8DD3, 0xDBF2, 0x8DCD, 0xDBF3, 0x8DC7, 0xDBF4, 0x8DD6, 0xDBF5, 0x8DDC, + 0xDBF6, 0x8DCF, 0xDBF7, 0x8DD5, 0xDBF8, 0x8DD9, 0xDBF9, 0x8DC8, 0xDBFA, 0x8DD7, 0xDBFB, 0x8DC5, 0xDBFC, 0x8EEF, 0xDBFD, 0x8EF7, + 0xDBFE, 0x8EFA, 0xDC40, 0x8EF9, 0xDC41, 0x8EE6, 0xDC42, 0x8EEE, 0xDC43, 0x8EE5, 0xDC44, 0x8EF5, 0xDC45, 0x8EE7, 0xDC46, 0x8EE8, + 0xDC47, 0x8EF6, 0xDC48, 0x8EEB, 0xDC49, 0x8EF1, 0xDC4A, 0x8EEC, 0xDC4B, 0x8EF4, 0xDC4C, 0x8EE9, 0xDC4D, 0x902D, 0xDC4E, 0x9034, + 0xDC4F, 0x902F, 0xDC50, 0x9106, 0xDC51, 0x912C, 0xDC52, 0x9104, 0xDC53, 0x90FF, 0xDC54, 0x90FC, 0xDC55, 0x9108, 0xDC56, 0x90F9, + 0xDC57, 0x90FB, 0xDC58, 0x9101, 0xDC59, 0x9100, 0xDC5A, 0x9107, 0xDC5B, 0x9105, 0xDC5C, 0x9103, 0xDC5D, 0x9161, 0xDC5E, 0x9164, + 0xDC5F, 0x915F, 0xDC60, 0x9162, 0xDC61, 0x9160, 0xDC62, 0x9201, 0xDC63, 0x920A, 0xDC64, 0x9225, 0xDC65, 0x9203, 0xDC66, 0x921A, + 0xDC67, 0x9226, 0xDC68, 0x920F, 0xDC69, 0x920C, 0xDC6A, 0x9200, 0xDC6B, 0x9212, 0xDC6C, 0x91FF, 0xDC6D, 0x91FD, 0xDC6E, 0x9206, + 0xDC6F, 0x9204, 0xDC70, 0x9227, 0xDC71, 0x9202, 0xDC72, 0x921C, 0xDC73, 0x9224, 0xDC74, 0x9219, 0xDC75, 0x9217, 0xDC76, 0x9205, + 0xDC77, 0x9216, 0xDC78, 0x957B, 0xDC79, 0x958D, 0xDC7A, 0x958C, 0xDC7B, 0x9590, 0xDC7C, 0x9687, 0xDC7D, 0x967E, 0xDC7E, 0x9688, + 0xDCA1, 0x9689, 0xDCA2, 0x9683, 0xDCA3, 0x9680, 0xDCA4, 0x96C2, 0xDCA5, 0x96C8, 0xDCA6, 0x96C3, 0xDCA7, 0x96F1, 0xDCA8, 0x96F0, + 0xDCA9, 0x976C, 0xDCAA, 0x9770, 0xDCAB, 0x976E, 0xDCAC, 0x9807, 0xDCAD, 0x98A9, 0xDCAE, 0x98EB, 0xDCAF, 0x9CE6, 0xDCB0, 0x9EF9, + 0xDCB1, 0x4E83, 0xDCB2, 0x4E84, 0xDCB3, 0x4EB6, 0xDCB4, 0x50BD, 0xDCB5, 0x50BF, 0xDCB6, 0x50C6, 0xDCB7, 0x50AE, 0xDCB8, 0x50C4, + 0xDCB9, 0x50CA, 0xDCBA, 0x50B4, 0xDCBB, 0x50C8, 0xDCBC, 0x50C2, 0xDCBD, 0x50B0, 0xDCBE, 0x50C1, 0xDCBF, 0x50BA, 0xDCC0, 0x50B1, + 0xDCC1, 0x50CB, 0xDCC2, 0x50C9, 0xDCC3, 0x50B6, 0xDCC4, 0x50B8, 0xDCC5, 0x51D7, 0xDCC6, 0x527A, 0xDCC7, 0x5278, 0xDCC8, 0x527B, + 0xDCC9, 0x527C, 0xDCCA, 0x55C3, 0xDCCB, 0x55DB, 0xDCCC, 0x55CC, 0xDCCD, 0x55D0, 0xDCCE, 0x55CB, 0xDCCF, 0x55CA, 0xDCD0, 0x55DD, + 0xDCD1, 0x55C0, 0xDCD2, 0x55D4, 0xDCD3, 0x55C4, 0xDCD4, 0x55E9, 0xDCD5, 0x55BF, 0xDCD6, 0x55D2, 0xDCD7, 0x558D, 0xDCD8, 0x55CF, + 0xDCD9, 0x55D5, 0xDCDA, 0x55E2, 0xDCDB, 0x55D6, 0xDCDC, 0x55C8, 0xDCDD, 0x55F2, 0xDCDE, 0x55CD, 0xDCDF, 0x55D9, 0xDCE0, 0x55C2, + 0xDCE1, 0x5714, 0xDCE2, 0x5853, 0xDCE3, 0x5868, 0xDCE4, 0x5864, 0xDCE5, 0x584F, 0xDCE6, 0x584D, 0xDCE7, 0x5849, 0xDCE8, 0x586F, + 0xDCE9, 0x5855, 0xDCEA, 0x584E, 0xDCEB, 0x585D, 0xDCEC, 0x5859, 0xDCED, 0x5865, 0xDCEE, 0x585B, 0xDCEF, 0x583D, 0xDCF0, 0x5863, + 0xDCF1, 0x5871, 0xDCF2, 0x58FC, 0xDCF3, 0x5AC7, 0xDCF4, 0x5AC4, 0xDCF5, 0x5ACB, 0xDCF6, 0x5ABA, 0xDCF7, 0x5AB8, 0xDCF8, 0x5AB1, + 0xDCF9, 0x5AB5, 0xDCFA, 0x5AB0, 0xDCFB, 0x5ABF, 0xDCFC, 0x5AC8, 0xDCFD, 0x5ABB, 0xDCFE, 0x5AC6, 0xDD40, 0x5AB7, 0xDD41, 0x5AC0, + 0xDD42, 0x5ACA, 0xDD43, 0x5AB4, 0xDD44, 0x5AB6, 0xDD45, 0x5ACD, 0xDD46, 0x5AB9, 0xDD47, 0x5A90, 0xDD48, 0x5BD6, 0xDD49, 0x5BD8, + 0xDD4A, 0x5BD9, 0xDD4B, 0x5C1F, 0xDD4C, 0x5C33, 0xDD4D, 0x5D71, 0xDD4E, 0x5D63, 0xDD4F, 0x5D4A, 0xDD50, 0x5D65, 0xDD51, 0x5D72, + 0xDD52, 0x5D6C, 0xDD53, 0x5D5E, 0xDD54, 0x5D68, 0xDD55, 0x5D67, 0xDD56, 0x5D62, 0xDD57, 0x5DF0, 0xDD58, 0x5E4F, 0xDD59, 0x5E4E, + 0xDD5A, 0x5E4A, 0xDD5B, 0x5E4D, 0xDD5C, 0x5E4B, 0xDD5D, 0x5EC5, 0xDD5E, 0x5ECC, 0xDD5F, 0x5EC6, 0xDD60, 0x5ECB, 0xDD61, 0x5EC7, + 0xDD62, 0x5F40, 0xDD63, 0x5FAF, 0xDD64, 0x5FAD, 0xDD65, 0x60F7, 0xDD66, 0x6149, 0xDD67, 0x614A, 0xDD68, 0x612B, 0xDD69, 0x6145, + 0xDD6A, 0x6136, 0xDD6B, 0x6132, 0xDD6C, 0x612E, 0xDD6D, 0x6146, 0xDD6E, 0x612F, 0xDD6F, 0x614F, 0xDD70, 0x6129, 0xDD71, 0x6140, + 0xDD72, 0x6220, 0xDD73, 0x9168, 0xDD74, 0x6223, 0xDD75, 0x6225, 0xDD76, 0x6224, 0xDD77, 0x63C5, 0xDD78, 0x63F1, 0xDD79, 0x63EB, + 0xDD7A, 0x6410, 0xDD7B, 0x6412, 0xDD7C, 0x6409, 0xDD7D, 0x6420, 0xDD7E, 0x6424, 0xDDA1, 0x6433, 0xDDA2, 0x6443, 0xDDA3, 0x641F, + 0xDDA4, 0x6415, 0xDDA5, 0x6418, 0xDDA6, 0x6439, 0xDDA7, 0x6437, 0xDDA8, 0x6422, 0xDDA9, 0x6423, 0xDDAA, 0x640C, 0xDDAB, 0x6426, + 0xDDAC, 0x6430, 0xDDAD, 0x6428, 0xDDAE, 0x6441, 0xDDAF, 0x6435, 0xDDB0, 0x642F, 0xDDB1, 0x640A, 0xDDB2, 0x641A, 0xDDB3, 0x6440, + 0xDDB4, 0x6425, 0xDDB5, 0x6427, 0xDDB6, 0x640B, 0xDDB7, 0x63E7, 0xDDB8, 0x641B, 0xDDB9, 0x642E, 0xDDBA, 0x6421, 0xDDBB, 0x640E, + 0xDDBC, 0x656F, 0xDDBD, 0x6592, 0xDDBE, 0x65D3, 0xDDBF, 0x6686, 0xDDC0, 0x668C, 0xDDC1, 0x6695, 0xDDC2, 0x6690, 0xDDC3, 0x668B, + 0xDDC4, 0x668A, 0xDDC5, 0x6699, 0xDDC6, 0x6694, 0xDDC7, 0x6678, 0xDDC8, 0x6720, 0xDDC9, 0x6966, 0xDDCA, 0x695F, 0xDDCB, 0x6938, + 0xDDCC, 0x694E, 0xDDCD, 0x6962, 0xDDCE, 0x6971, 0xDDCF, 0x693F, 0xDDD0, 0x6945, 0xDDD1, 0x696A, 0xDDD2, 0x6939, 0xDDD3, 0x6942, + 0xDDD4, 0x6957, 0xDDD5, 0x6959, 0xDDD6, 0x697A, 0xDDD7, 0x6948, 0xDDD8, 0x6949, 0xDDD9, 0x6935, 0xDDDA, 0x696C, 0xDDDB, 0x6933, + 0xDDDC, 0x693D, 0xDDDD, 0x6965, 0xDDDE, 0x68F0, 0xDDDF, 0x6978, 0xDDE0, 0x6934, 0xDDE1, 0x6969, 0xDDE2, 0x6940, 0xDDE3, 0x696F, + 0xDDE4, 0x6944, 0xDDE5, 0x6976, 0xDDE6, 0x6958, 0xDDE7, 0x6941, 0xDDE8, 0x6974, 0xDDE9, 0x694C, 0xDDEA, 0x693B, 0xDDEB, 0x694B, + 0xDDEC, 0x6937, 0xDDED, 0x695C, 0xDDEE, 0x694F, 0xDDEF, 0x6951, 0xDDF0, 0x6932, 0xDDF1, 0x6952, 0xDDF2, 0x692F, 0xDDF3, 0x697B, + 0xDDF4, 0x693C, 0xDDF5, 0x6B46, 0xDDF6, 0x6B45, 0xDDF7, 0x6B43, 0xDDF8, 0x6B42, 0xDDF9, 0x6B48, 0xDDFA, 0x6B41, 0xDDFB, 0x6B9B, + 0xDDFC, 0xFA0D, 0xDDFD, 0x6BFB, 0xDDFE, 0x6BFC, 0xDE40, 0x6BF9, 0xDE41, 0x6BF7, 0xDE42, 0x6BF8, 0xDE43, 0x6E9B, 0xDE44, 0x6ED6, + 0xDE45, 0x6EC8, 0xDE46, 0x6E8F, 0xDE47, 0x6EC0, 0xDE48, 0x6E9F, 0xDE49, 0x6E93, 0xDE4A, 0x6E94, 0xDE4B, 0x6EA0, 0xDE4C, 0x6EB1, + 0xDE4D, 0x6EB9, 0xDE4E, 0x6EC6, 0xDE4F, 0x6ED2, 0xDE50, 0x6EBD, 0xDE51, 0x6EC1, 0xDE52, 0x6E9E, 0xDE53, 0x6EC9, 0xDE54, 0x6EB7, + 0xDE55, 0x6EB0, 0xDE56, 0x6ECD, 0xDE57, 0x6EA6, 0xDE58, 0x6ECF, 0xDE59, 0x6EB2, 0xDE5A, 0x6EBE, 0xDE5B, 0x6EC3, 0xDE5C, 0x6EDC, + 0xDE5D, 0x6ED8, 0xDE5E, 0x6E99, 0xDE5F, 0x6E92, 0xDE60, 0x6E8E, 0xDE61, 0x6E8D, 0xDE62, 0x6EA4, 0xDE63, 0x6EA1, 0xDE64, 0x6EBF, + 0xDE65, 0x6EB3, 0xDE66, 0x6ED0, 0xDE67, 0x6ECA, 0xDE68, 0x6E97, 0xDE69, 0x6EAE, 0xDE6A, 0x6EA3, 0xDE6B, 0x7147, 0xDE6C, 0x7154, + 0xDE6D, 0x7152, 0xDE6E, 0x7163, 0xDE6F, 0x7160, 0xDE70, 0x7141, 0xDE71, 0x715D, 0xDE72, 0x7162, 0xDE73, 0x7172, 0xDE74, 0x7178, + 0xDE75, 0x716A, 0xDE76, 0x7161, 0xDE77, 0x7142, 0xDE78, 0x7158, 0xDE79, 0x7143, 0xDE7A, 0x714B, 0xDE7B, 0x7170, 0xDE7C, 0x715F, + 0xDE7D, 0x7150, 0xDE7E, 0x7153, 0xDEA1, 0x7144, 0xDEA2, 0x714D, 0xDEA3, 0x715A, 0xDEA4, 0x724F, 0xDEA5, 0x728D, 0xDEA6, 0x728C, + 0xDEA7, 0x7291, 0xDEA8, 0x7290, 0xDEA9, 0x728E, 0xDEAA, 0x733C, 0xDEAB, 0x7342, 0xDEAC, 0x733B, 0xDEAD, 0x733A, 0xDEAE, 0x7340, + 0xDEAF, 0x734A, 0xDEB0, 0x7349, 0xDEB1, 0x7444, 0xDEB2, 0x744A, 0xDEB3, 0x744B, 0xDEB4, 0x7452, 0xDEB5, 0x7451, 0xDEB6, 0x7457, + 0xDEB7, 0x7440, 0xDEB8, 0x744F, 0xDEB9, 0x7450, 0xDEBA, 0x744E, 0xDEBB, 0x7442, 0xDEBC, 0x7446, 0xDEBD, 0x744D, 0xDEBE, 0x7454, + 0xDEBF, 0x74E1, 0xDEC0, 0x74FF, 0xDEC1, 0x74FE, 0xDEC2, 0x74FD, 0xDEC3, 0x751D, 0xDEC4, 0x7579, 0xDEC5, 0x7577, 0xDEC6, 0x6983, + 0xDEC7, 0x75EF, 0xDEC8, 0x760F, 0xDEC9, 0x7603, 0xDECA, 0x75F7, 0xDECB, 0x75FE, 0xDECC, 0x75FC, 0xDECD, 0x75F9, 0xDECE, 0x75F8, + 0xDECF, 0x7610, 0xDED0, 0x75FB, 0xDED1, 0x75F6, 0xDED2, 0x75ED, 0xDED3, 0x75F5, 0xDED4, 0x75FD, 0xDED5, 0x7699, 0xDED6, 0x76B5, + 0xDED7, 0x76DD, 0xDED8, 0x7755, 0xDED9, 0x775F, 0xDEDA, 0x7760, 0xDEDB, 0x7752, 0xDEDC, 0x7756, 0xDEDD, 0x775A, 0xDEDE, 0x7769, + 0xDEDF, 0x7767, 0xDEE0, 0x7754, 0xDEE1, 0x7759, 0xDEE2, 0x776D, 0xDEE3, 0x77E0, 0xDEE4, 0x7887, 0xDEE5, 0x789A, 0xDEE6, 0x7894, + 0xDEE7, 0x788F, 0xDEE8, 0x7884, 0xDEE9, 0x7895, 0xDEEA, 0x7885, 0xDEEB, 0x7886, 0xDEEC, 0x78A1, 0xDEED, 0x7883, 0xDEEE, 0x7879, + 0xDEEF, 0x7899, 0xDEF0, 0x7880, 0xDEF1, 0x7896, 0xDEF2, 0x787B, 0xDEF3, 0x797C, 0xDEF4, 0x7982, 0xDEF5, 0x797D, 0xDEF6, 0x7979, + 0xDEF7, 0x7A11, 0xDEF8, 0x7A18, 0xDEF9, 0x7A19, 0xDEFA, 0x7A12, 0xDEFB, 0x7A17, 0xDEFC, 0x7A15, 0xDEFD, 0x7A22, 0xDEFE, 0x7A13, + 0xDF40, 0x7A1B, 0xDF41, 0x7A10, 0xDF42, 0x7AA3, 0xDF43, 0x7AA2, 0xDF44, 0x7A9E, 0xDF45, 0x7AEB, 0xDF46, 0x7B66, 0xDF47, 0x7B64, + 0xDF48, 0x7B6D, 0xDF49, 0x7B74, 0xDF4A, 0x7B69, 0xDF4B, 0x7B72, 0xDF4C, 0x7B65, 0xDF4D, 0x7B73, 0xDF4E, 0x7B71, 0xDF4F, 0x7B70, + 0xDF50, 0x7B61, 0xDF51, 0x7B78, 0xDF52, 0x7B76, 0xDF53, 0x7B63, 0xDF54, 0x7CB2, 0xDF55, 0x7CB4, 0xDF56, 0x7CAF, 0xDF57, 0x7D88, + 0xDF58, 0x7D86, 0xDF59, 0x7D80, 0xDF5A, 0x7D8D, 0xDF5B, 0x7D7F, 0xDF5C, 0x7D85, 0xDF5D, 0x7D7A, 0xDF5E, 0x7D8E, 0xDF5F, 0x7D7B, + 0xDF60, 0x7D83, 0xDF61, 0x7D7C, 0xDF62, 0x7D8C, 0xDF63, 0x7D94, 0xDF64, 0x7D84, 0xDF65, 0x7D7D, 0xDF66, 0x7D92, 0xDF67, 0x7F6D, + 0xDF68, 0x7F6B, 0xDF69, 0x7F67, 0xDF6A, 0x7F68, 0xDF6B, 0x7F6C, 0xDF6C, 0x7FA6, 0xDF6D, 0x7FA5, 0xDF6E, 0x7FA7, 0xDF6F, 0x7FDB, + 0xDF70, 0x7FDC, 0xDF71, 0x8021, 0xDF72, 0x8164, 0xDF73, 0x8160, 0xDF74, 0x8177, 0xDF75, 0x815C, 0xDF76, 0x8169, 0xDF77, 0x815B, + 0xDF78, 0x8162, 0xDF79, 0x8172, 0xDF7A, 0x6721, 0xDF7B, 0x815E, 0xDF7C, 0x8176, 0xDF7D, 0x8167, 0xDF7E, 0x816F, 0xDFA1, 0x8144, + 0xDFA2, 0x8161, 0xDFA3, 0x821D, 0xDFA4, 0x8249, 0xDFA5, 0x8244, 0xDFA6, 0x8240, 0xDFA7, 0x8242, 0xDFA8, 0x8245, 0xDFA9, 0x84F1, + 0xDFAA, 0x843F, 0xDFAB, 0x8456, 0xDFAC, 0x8476, 0xDFAD, 0x8479, 0xDFAE, 0x848F, 0xDFAF, 0x848D, 0xDFB0, 0x8465, 0xDFB1, 0x8451, + 0xDFB2, 0x8440, 0xDFB3, 0x8486, 0xDFB4, 0x8467, 0xDFB5, 0x8430, 0xDFB6, 0x844D, 0xDFB7, 0x847D, 0xDFB8, 0x845A, 0xDFB9, 0x8459, + 0xDFBA, 0x8474, 0xDFBB, 0x8473, 0xDFBC, 0x845D, 0xDFBD, 0x8507, 0xDFBE, 0x845E, 0xDFBF, 0x8437, 0xDFC0, 0x843A, 0xDFC1, 0x8434, + 0xDFC2, 0x847A, 0xDFC3, 0x8443, 0xDFC4, 0x8478, 0xDFC5, 0x8432, 0xDFC6, 0x8445, 0xDFC7, 0x8429, 0xDFC8, 0x83D9, 0xDFC9, 0x844B, + 0xDFCA, 0x842F, 0xDFCB, 0x8442, 0xDFCC, 0x842D, 0xDFCD, 0x845F, 0xDFCE, 0x8470, 0xDFCF, 0x8439, 0xDFD0, 0x844E, 0xDFD1, 0x844C, + 0xDFD2, 0x8452, 0xDFD3, 0x846F, 0xDFD4, 0x84C5, 0xDFD5, 0x848E, 0xDFD6, 0x843B, 0xDFD7, 0x8447, 0xDFD8, 0x8436, 0xDFD9, 0x8433, + 0xDFDA, 0x8468, 0xDFDB, 0x847E, 0xDFDC, 0x8444, 0xDFDD, 0x842B, 0xDFDE, 0x8460, 0xDFDF, 0x8454, 0xDFE0, 0x846E, 0xDFE1, 0x8450, + 0xDFE2, 0x870B, 0xDFE3, 0x8704, 0xDFE4, 0x86F7, 0xDFE5, 0x870C, 0xDFE6, 0x86FA, 0xDFE7, 0x86D6, 0xDFE8, 0x86F5, 0xDFE9, 0x874D, + 0xDFEA, 0x86F8, 0xDFEB, 0x870E, 0xDFEC, 0x8709, 0xDFED, 0x8701, 0xDFEE, 0x86F6, 0xDFEF, 0x870D, 0xDFF0, 0x8705, 0xDFF1, 0x88D6, + 0xDFF2, 0x88CB, 0xDFF3, 0x88CD, 0xDFF4, 0x88CE, 0xDFF5, 0x88DE, 0xDFF6, 0x88DB, 0xDFF7, 0x88DA, 0xDFF8, 0x88CC, 0xDFF9, 0x88D0, + 0xDFFA, 0x8985, 0xDFFB, 0x899B, 0xDFFC, 0x89DF, 0xDFFD, 0x89E5, 0xDFFE, 0x89E4, 0xE040, 0x89E1, 0xE041, 0x89E0, 0xE042, 0x89E2, + 0xE043, 0x89DC, 0xE044, 0x89E6, 0xE045, 0x8A76, 0xE046, 0x8A86, 0xE047, 0x8A7F, 0xE048, 0x8A61, 0xE049, 0x8A3F, 0xE04A, 0x8A77, + 0xE04B, 0x8A82, 0xE04C, 0x8A84, 0xE04D, 0x8A75, 0xE04E, 0x8A83, 0xE04F, 0x8A81, 0xE050, 0x8A74, 0xE051, 0x8A7A, 0xE052, 0x8C3C, + 0xE053, 0x8C4B, 0xE054, 0x8C4A, 0xE055, 0x8C65, 0xE056, 0x8C64, 0xE057, 0x8C66, 0xE058, 0x8C86, 0xE059, 0x8C84, 0xE05A, 0x8C85, + 0xE05B, 0x8CCC, 0xE05C, 0x8D68, 0xE05D, 0x8D69, 0xE05E, 0x8D91, 0xE05F, 0x8D8C, 0xE060, 0x8D8E, 0xE061, 0x8D8F, 0xE062, 0x8D8D, + 0xE063, 0x8D93, 0xE064, 0x8D94, 0xE065, 0x8D90, 0xE066, 0x8D92, 0xE067, 0x8DF0, 0xE068, 0x8DE0, 0xE069, 0x8DEC, 0xE06A, 0x8DF1, + 0xE06B, 0x8DEE, 0xE06C, 0x8DD0, 0xE06D, 0x8DE9, 0xE06E, 0x8DE3, 0xE06F, 0x8DE2, 0xE070, 0x8DE7, 0xE071, 0x8DF2, 0xE072, 0x8DEB, + 0xE073, 0x8DF4, 0xE074, 0x8F06, 0xE075, 0x8EFF, 0xE076, 0x8F01, 0xE077, 0x8F00, 0xE078, 0x8F05, 0xE079, 0x8F07, 0xE07A, 0x8F08, + 0xE07B, 0x8F02, 0xE07C, 0x8F0B, 0xE07D, 0x9052, 0xE07E, 0x903F, 0xE0A1, 0x9044, 0xE0A2, 0x9049, 0xE0A3, 0x903D, 0xE0A4, 0x9110, + 0xE0A5, 0x910D, 0xE0A6, 0x910F, 0xE0A7, 0x9111, 0xE0A8, 0x9116, 0xE0A9, 0x9114, 0xE0AA, 0x910B, 0xE0AB, 0x910E, 0xE0AC, 0x916E, + 0xE0AD, 0x916F, 0xE0AE, 0x9248, 0xE0AF, 0x9252, 0xE0B0, 0x9230, 0xE0B1, 0x923A, 0xE0B2, 0x9266, 0xE0B3, 0x9233, 0xE0B4, 0x9265, + 0xE0B5, 0x925E, 0xE0B6, 0x9283, 0xE0B7, 0x922E, 0xE0B8, 0x924A, 0xE0B9, 0x9246, 0xE0BA, 0x926D, 0xE0BB, 0x926C, 0xE0BC, 0x924F, + 0xE0BD, 0x9260, 0xE0BE, 0x9267, 0xE0BF, 0x926F, 0xE0C0, 0x9236, 0xE0C1, 0x9261, 0xE0C2, 0x9270, 0xE0C3, 0x9231, 0xE0C4, 0x9254, + 0xE0C5, 0x9263, 0xE0C6, 0x9250, 0xE0C7, 0x9272, 0xE0C8, 0x924E, 0xE0C9, 0x9253, 0xE0CA, 0x924C, 0xE0CB, 0x9256, 0xE0CC, 0x9232, + 0xE0CD, 0x959F, 0xE0CE, 0x959C, 0xE0CF, 0x959E, 0xE0D0, 0x959B, 0xE0D1, 0x9692, 0xE0D2, 0x9693, 0xE0D3, 0x9691, 0xE0D4, 0x9697, + 0xE0D5, 0x96CE, 0xE0D6, 0x96FA, 0xE0D7, 0x96FD, 0xE0D8, 0x96F8, 0xE0D9, 0x96F5, 0xE0DA, 0x9773, 0xE0DB, 0x9777, 0xE0DC, 0x9778, + 0xE0DD, 0x9772, 0xE0DE, 0x980F, 0xE0DF, 0x980D, 0xE0E0, 0x980E, 0xE0E1, 0x98AC, 0xE0E2, 0x98F6, 0xE0E3, 0x98F9, 0xE0E4, 0x99AF, + 0xE0E5, 0x99B2, 0xE0E6, 0x99B0, 0xE0E7, 0x99B5, 0xE0E8, 0x9AAD, 0xE0E9, 0x9AAB, 0xE0EA, 0x9B5B, 0xE0EB, 0x9CEA, 0xE0EC, 0x9CED, + 0xE0ED, 0x9CE7, 0xE0EE, 0x9E80, 0xE0EF, 0x9EFD, 0xE0F0, 0x50E6, 0xE0F1, 0x50D4, 0xE0F2, 0x50D7, 0xE0F3, 0x50E8, 0xE0F4, 0x50F3, + 0xE0F5, 0x50DB, 0xE0F6, 0x50EA, 0xE0F7, 0x50DD, 0xE0F8, 0x50E4, 0xE0F9, 0x50D3, 0xE0FA, 0x50EC, 0xE0FB, 0x50F0, 0xE0FC, 0x50EF, + 0xE0FD, 0x50E3, 0xE0FE, 0x50E0, 0xE140, 0x51D8, 0xE141, 0x5280, 0xE142, 0x5281, 0xE143, 0x52E9, 0xE144, 0x52EB, 0xE145, 0x5330, + 0xE146, 0x53AC, 0xE147, 0x5627, 0xE148, 0x5615, 0xE149, 0x560C, 0xE14A, 0x5612, 0xE14B, 0x55FC, 0xE14C, 0x560F, 0xE14D, 0x561C, + 0xE14E, 0x5601, 0xE14F, 0x5613, 0xE150, 0x5602, 0xE151, 0x55FA, 0xE152, 0x561D, 0xE153, 0x5604, 0xE154, 0x55FF, 0xE155, 0x55F9, + 0xE156, 0x5889, 0xE157, 0x587C, 0xE158, 0x5890, 0xE159, 0x5898, 0xE15A, 0x5886, 0xE15B, 0x5881, 0xE15C, 0x587F, 0xE15D, 0x5874, + 0xE15E, 0x588B, 0xE15F, 0x587A, 0xE160, 0x5887, 0xE161, 0x5891, 0xE162, 0x588E, 0xE163, 0x5876, 0xE164, 0x5882, 0xE165, 0x5888, + 0xE166, 0x587B, 0xE167, 0x5894, 0xE168, 0x588F, 0xE169, 0x58FE, 0xE16A, 0x596B, 0xE16B, 0x5ADC, 0xE16C, 0x5AEE, 0xE16D, 0x5AE5, + 0xE16E, 0x5AD5, 0xE16F, 0x5AEA, 0xE170, 0x5ADA, 0xE171, 0x5AED, 0xE172, 0x5AEB, 0xE173, 0x5AF3, 0xE174, 0x5AE2, 0xE175, 0x5AE0, + 0xE176, 0x5ADB, 0xE177, 0x5AEC, 0xE178, 0x5ADE, 0xE179, 0x5ADD, 0xE17A, 0x5AD9, 0xE17B, 0x5AE8, 0xE17C, 0x5ADF, 0xE17D, 0x5B77, + 0xE17E, 0x5BE0, 0xE1A1, 0x5BE3, 0xE1A2, 0x5C63, 0xE1A3, 0x5D82, 0xE1A4, 0x5D80, 0xE1A5, 0x5D7D, 0xE1A6, 0x5D86, 0xE1A7, 0x5D7A, + 0xE1A8, 0x5D81, 0xE1A9, 0x5D77, 0xE1AA, 0x5D8A, 0xE1AB, 0x5D89, 0xE1AC, 0x5D88, 0xE1AD, 0x5D7E, 0xE1AE, 0x5D7C, 0xE1AF, 0x5D8D, + 0xE1B0, 0x5D79, 0xE1B1, 0x5D7F, 0xE1B2, 0x5E58, 0xE1B3, 0x5E59, 0xE1B4, 0x5E53, 0xE1B5, 0x5ED8, 0xE1B6, 0x5ED1, 0xE1B7, 0x5ED7, + 0xE1B8, 0x5ECE, 0xE1B9, 0x5EDC, 0xE1BA, 0x5ED5, 0xE1BB, 0x5ED9, 0xE1BC, 0x5ED2, 0xE1BD, 0x5ED4, 0xE1BE, 0x5F44, 0xE1BF, 0x5F43, + 0xE1C0, 0x5F6F, 0xE1C1, 0x5FB6, 0xE1C2, 0x612C, 0xE1C3, 0x6128, 0xE1C4, 0x6141, 0xE1C5, 0x615E, 0xE1C6, 0x6171, 0xE1C7, 0x6173, + 0xE1C8, 0x6152, 0xE1C9, 0x6153, 0xE1CA, 0x6172, 0xE1CB, 0x616C, 0xE1CC, 0x6180, 0xE1CD, 0x6174, 0xE1CE, 0x6154, 0xE1CF, 0x617A, + 0xE1D0, 0x615B, 0xE1D1, 0x6165, 0xE1D2, 0x613B, 0xE1D3, 0x616A, 0xE1D4, 0x6161, 0xE1D5, 0x6156, 0xE1D6, 0x6229, 0xE1D7, 0x6227, + 0xE1D8, 0x622B, 0xE1D9, 0x642B, 0xE1DA, 0x644D, 0xE1DB, 0x645B, 0xE1DC, 0x645D, 0xE1DD, 0x6474, 0xE1DE, 0x6476, 0xE1DF, 0x6472, + 0xE1E0, 0x6473, 0xE1E1, 0x647D, 0xE1E2, 0x6475, 0xE1E3, 0x6466, 0xE1E4, 0x64A6, 0xE1E5, 0x644E, 0xE1E6, 0x6482, 0xE1E7, 0x645E, + 0xE1E8, 0x645C, 0xE1E9, 0x644B, 0xE1EA, 0x6453, 0xE1EB, 0x6460, 0xE1EC, 0x6450, 0xE1ED, 0x647F, 0xE1EE, 0x643F, 0xE1EF, 0x646C, + 0xE1F0, 0x646B, 0xE1F1, 0x6459, 0xE1F2, 0x6465, 0xE1F3, 0x6477, 0xE1F4, 0x6573, 0xE1F5, 0x65A0, 0xE1F6, 0x66A1, 0xE1F7, 0x66A0, + 0xE1F8, 0x669F, 0xE1F9, 0x6705, 0xE1FA, 0x6704, 0xE1FB, 0x6722, 0xE1FC, 0x69B1, 0xE1FD, 0x69B6, 0xE1FE, 0x69C9, 0xE240, 0x69A0, + 0xE241, 0x69CE, 0xE242, 0x6996, 0xE243, 0x69B0, 0xE244, 0x69AC, 0xE245, 0x69BC, 0xE246, 0x6991, 0xE247, 0x6999, 0xE248, 0x698E, + 0xE249, 0x69A7, 0xE24A, 0x698D, 0xE24B, 0x69A9, 0xE24C, 0x69BE, 0xE24D, 0x69AF, 0xE24E, 0x69BF, 0xE24F, 0x69C4, 0xE250, 0x69BD, + 0xE251, 0x69A4, 0xE252, 0x69D4, 0xE253, 0x69B9, 0xE254, 0x69CA, 0xE255, 0x699A, 0xE256, 0x69CF, 0xE257, 0x69B3, 0xE258, 0x6993, + 0xE259, 0x69AA, 0xE25A, 0x69A1, 0xE25B, 0x699E, 0xE25C, 0x69D9, 0xE25D, 0x6997, 0xE25E, 0x6990, 0xE25F, 0x69C2, 0xE260, 0x69B5, + 0xE261, 0x69A5, 0xE262, 0x69C6, 0xE263, 0x6B4A, 0xE264, 0x6B4D, 0xE265, 0x6B4B, 0xE266, 0x6B9E, 0xE267, 0x6B9F, 0xE268, 0x6BA0, + 0xE269, 0x6BC3, 0xE26A, 0x6BC4, 0xE26B, 0x6BFE, 0xE26C, 0x6ECE, 0xE26D, 0x6EF5, 0xE26E, 0x6EF1, 0xE26F, 0x6F03, 0xE270, 0x6F25, + 0xE271, 0x6EF8, 0xE272, 0x6F37, 0xE273, 0x6EFB, 0xE274, 0x6F2E, 0xE275, 0x6F09, 0xE276, 0x6F4E, 0xE277, 0x6F19, 0xE278, 0x6F1A, + 0xE279, 0x6F27, 0xE27A, 0x6F18, 0xE27B, 0x6F3B, 0xE27C, 0x6F12, 0xE27D, 0x6EED, 0xE27E, 0x6F0A, 0xE2A1, 0x6F36, 0xE2A2, 0x6F73, + 0xE2A3, 0x6EF9, 0xE2A4, 0x6EEE, 0xE2A5, 0x6F2D, 0xE2A6, 0x6F40, 0xE2A7, 0x6F30, 0xE2A8, 0x6F3C, 0xE2A9, 0x6F35, 0xE2AA, 0x6EEB, + 0xE2AB, 0x6F07, 0xE2AC, 0x6F0E, 0xE2AD, 0x6F43, 0xE2AE, 0x6F05, 0xE2AF, 0x6EFD, 0xE2B0, 0x6EF6, 0xE2B1, 0x6F39, 0xE2B2, 0x6F1C, + 0xE2B3, 0x6EFC, 0xE2B4, 0x6F3A, 0xE2B5, 0x6F1F, 0xE2B6, 0x6F0D, 0xE2B7, 0x6F1E, 0xE2B8, 0x6F08, 0xE2B9, 0x6F21, 0xE2BA, 0x7187, + 0xE2BB, 0x7190, 0xE2BC, 0x7189, 0xE2BD, 0x7180, 0xE2BE, 0x7185, 0xE2BF, 0x7182, 0xE2C0, 0x718F, 0xE2C1, 0x717B, 0xE2C2, 0x7186, + 0xE2C3, 0x7181, 0xE2C4, 0x7197, 0xE2C5, 0x7244, 0xE2C6, 0x7253, 0xE2C7, 0x7297, 0xE2C8, 0x7295, 0xE2C9, 0x7293, 0xE2CA, 0x7343, + 0xE2CB, 0x734D, 0xE2CC, 0x7351, 0xE2CD, 0x734C, 0xE2CE, 0x7462, 0xE2CF, 0x7473, 0xE2D0, 0x7471, 0xE2D1, 0x7475, 0xE2D2, 0x7472, + 0xE2D3, 0x7467, 0xE2D4, 0x746E, 0xE2D5, 0x7500, 0xE2D6, 0x7502, 0xE2D7, 0x7503, 0xE2D8, 0x757D, 0xE2D9, 0x7590, 0xE2DA, 0x7616, + 0xE2DB, 0x7608, 0xE2DC, 0x760C, 0xE2DD, 0x7615, 0xE2DE, 0x7611, 0xE2DF, 0x760A, 0xE2E0, 0x7614, 0xE2E1, 0x76B8, 0xE2E2, 0x7781, + 0xE2E3, 0x777C, 0xE2E4, 0x7785, 0xE2E5, 0x7782, 0xE2E6, 0x776E, 0xE2E7, 0x7780, 0xE2E8, 0x776F, 0xE2E9, 0x777E, 0xE2EA, 0x7783, + 0xE2EB, 0x78B2, 0xE2EC, 0x78AA, 0xE2ED, 0x78B4, 0xE2EE, 0x78AD, 0xE2EF, 0x78A8, 0xE2F0, 0x787E, 0xE2F1, 0x78AB, 0xE2F2, 0x789E, + 0xE2F3, 0x78A5, 0xE2F4, 0x78A0, 0xE2F5, 0x78AC, 0xE2F6, 0x78A2, 0xE2F7, 0x78A4, 0xE2F8, 0x7998, 0xE2F9, 0x798A, 0xE2FA, 0x798B, + 0xE2FB, 0x7996, 0xE2FC, 0x7995, 0xE2FD, 0x7994, 0xE2FE, 0x7993, 0xE340, 0x7997, 0xE341, 0x7988, 0xE342, 0x7992, 0xE343, 0x7990, + 0xE344, 0x7A2B, 0xE345, 0x7A4A, 0xE346, 0x7A30, 0xE347, 0x7A2F, 0xE348, 0x7A28, 0xE349, 0x7A26, 0xE34A, 0x7AA8, 0xE34B, 0x7AAB, + 0xE34C, 0x7AAC, 0xE34D, 0x7AEE, 0xE34E, 0x7B88, 0xE34F, 0x7B9C, 0xE350, 0x7B8A, 0xE351, 0x7B91, 0xE352, 0x7B90, 0xE353, 0x7B96, + 0xE354, 0x7B8D, 0xE355, 0x7B8C, 0xE356, 0x7B9B, 0xE357, 0x7B8E, 0xE358, 0x7B85, 0xE359, 0x7B98, 0xE35A, 0x5284, 0xE35B, 0x7B99, + 0xE35C, 0x7BA4, 0xE35D, 0x7B82, 0xE35E, 0x7CBB, 0xE35F, 0x7CBF, 0xE360, 0x7CBC, 0xE361, 0x7CBA, 0xE362, 0x7DA7, 0xE363, 0x7DB7, + 0xE364, 0x7DC2, 0xE365, 0x7DA3, 0xE366, 0x7DAA, 0xE367, 0x7DC1, 0xE368, 0x7DC0, 0xE369, 0x7DC5, 0xE36A, 0x7D9D, 0xE36B, 0x7DCE, + 0xE36C, 0x7DC4, 0xE36D, 0x7DC6, 0xE36E, 0x7DCB, 0xE36F, 0x7DCC, 0xE370, 0x7DAF, 0xE371, 0x7DB9, 0xE372, 0x7D96, 0xE373, 0x7DBC, + 0xE374, 0x7D9F, 0xE375, 0x7DA6, 0xE376, 0x7DAE, 0xE377, 0x7DA9, 0xE378, 0x7DA1, 0xE379, 0x7DC9, 0xE37A, 0x7F73, 0xE37B, 0x7FE2, + 0xE37C, 0x7FE3, 0xE37D, 0x7FE5, 0xE37E, 0x7FDE, 0xE3A1, 0x8024, 0xE3A2, 0x805D, 0xE3A3, 0x805C, 0xE3A4, 0x8189, 0xE3A5, 0x8186, + 0xE3A6, 0x8183, 0xE3A7, 0x8187, 0xE3A8, 0x818D, 0xE3A9, 0x818C, 0xE3AA, 0x818B, 0xE3AB, 0x8215, 0xE3AC, 0x8497, 0xE3AD, 0x84A4, + 0xE3AE, 0x84A1, 0xE3AF, 0x849F, 0xE3B0, 0x84BA, 0xE3B1, 0x84CE, 0xE3B2, 0x84C2, 0xE3B3, 0x84AC, 0xE3B4, 0x84AE, 0xE3B5, 0x84AB, + 0xE3B6, 0x84B9, 0xE3B7, 0x84B4, 0xE3B8, 0x84C1, 0xE3B9, 0x84CD, 0xE3BA, 0x84AA, 0xE3BB, 0x849A, 0xE3BC, 0x84B1, 0xE3BD, 0x84D0, + 0xE3BE, 0x849D, 0xE3BF, 0x84A7, 0xE3C0, 0x84BB, 0xE3C1, 0x84A2, 0xE3C2, 0x8494, 0xE3C3, 0x84C7, 0xE3C4, 0x84CC, 0xE3C5, 0x849B, + 0xE3C6, 0x84A9, 0xE3C7, 0x84AF, 0xE3C8, 0x84A8, 0xE3C9, 0x84D6, 0xE3CA, 0x8498, 0xE3CB, 0x84B6, 0xE3CC, 0x84CF, 0xE3CD, 0x84A0, + 0xE3CE, 0x84D7, 0xE3CF, 0x84D4, 0xE3D0, 0x84D2, 0xE3D1, 0x84DB, 0xE3D2, 0x84B0, 0xE3D3, 0x8491, 0xE3D4, 0x8661, 0xE3D5, 0x8733, + 0xE3D6, 0x8723, 0xE3D7, 0x8728, 0xE3D8, 0x876B, 0xE3D9, 0x8740, 0xE3DA, 0x872E, 0xE3DB, 0x871E, 0xE3DC, 0x8721, 0xE3DD, 0x8719, + 0xE3DE, 0x871B, 0xE3DF, 0x8743, 0xE3E0, 0x872C, 0xE3E1, 0x8741, 0xE3E2, 0x873E, 0xE3E3, 0x8746, 0xE3E4, 0x8720, 0xE3E5, 0x8732, + 0xE3E6, 0x872A, 0xE3E7, 0x872D, 0xE3E8, 0x873C, 0xE3E9, 0x8712, 0xE3EA, 0x873A, 0xE3EB, 0x8731, 0xE3EC, 0x8735, 0xE3ED, 0x8742, + 0xE3EE, 0x8726, 0xE3EF, 0x8727, 0xE3F0, 0x8738, 0xE3F1, 0x8724, 0xE3F2, 0x871A, 0xE3F3, 0x8730, 0xE3F4, 0x8711, 0xE3F5, 0x88F7, + 0xE3F6, 0x88E7, 0xE3F7, 0x88F1, 0xE3F8, 0x88F2, 0xE3F9, 0x88FA, 0xE3FA, 0x88FE, 0xE3FB, 0x88EE, 0xE3FC, 0x88FC, 0xE3FD, 0x88F6, + 0xE3FE, 0x88FB, 0xE440, 0x88F0, 0xE441, 0x88EC, 0xE442, 0x88EB, 0xE443, 0x899D, 0xE444, 0x89A1, 0xE445, 0x899F, 0xE446, 0x899E, + 0xE447, 0x89E9, 0xE448, 0x89EB, 0xE449, 0x89E8, 0xE44A, 0x8AAB, 0xE44B, 0x8A99, 0xE44C, 0x8A8B, 0xE44D, 0x8A92, 0xE44E, 0x8A8F, + 0xE44F, 0x8A96, 0xE450, 0x8C3D, 0xE451, 0x8C68, 0xE452, 0x8C69, 0xE453, 0x8CD5, 0xE454, 0x8CCF, 0xE455, 0x8CD7, 0xE456, 0x8D96, + 0xE457, 0x8E09, 0xE458, 0x8E02, 0xE459, 0x8DFF, 0xE45A, 0x8E0D, 0xE45B, 0x8DFD, 0xE45C, 0x8E0A, 0xE45D, 0x8E03, 0xE45E, 0x8E07, + 0xE45F, 0x8E06, 0xE460, 0x8E05, 0xE461, 0x8DFE, 0xE462, 0x8E00, 0xE463, 0x8E04, 0xE464, 0x8F10, 0xE465, 0x8F11, 0xE466, 0x8F0E, + 0xE467, 0x8F0D, 0xE468, 0x9123, 0xE469, 0x911C, 0xE46A, 0x9120, 0xE46B, 0x9122, 0xE46C, 0x911F, 0xE46D, 0x911D, 0xE46E, 0x911A, + 0xE46F, 0x9124, 0xE470, 0x9121, 0xE471, 0x911B, 0xE472, 0x917A, 0xE473, 0x9172, 0xE474, 0x9179, 0xE475, 0x9173, 0xE476, 0x92A5, + 0xE477, 0x92A4, 0xE478, 0x9276, 0xE479, 0x929B, 0xE47A, 0x927A, 0xE47B, 0x92A0, 0xE47C, 0x9294, 0xE47D, 0x92AA, 0xE47E, 0x928D, + 0xE4A1, 0x92A6, 0xE4A2, 0x929A, 0xE4A3, 0x92AB, 0xE4A4, 0x9279, 0xE4A5, 0x9297, 0xE4A6, 0x927F, 0xE4A7, 0x92A3, 0xE4A8, 0x92EE, + 0xE4A9, 0x928E, 0xE4AA, 0x9282, 0xE4AB, 0x9295, 0xE4AC, 0x92A2, 0xE4AD, 0x927D, 0xE4AE, 0x9288, 0xE4AF, 0x92A1, 0xE4B0, 0x928A, + 0xE4B1, 0x9286, 0xE4B2, 0x928C, 0xE4B3, 0x9299, 0xE4B4, 0x92A7, 0xE4B5, 0x927E, 0xE4B6, 0x9287, 0xE4B7, 0x92A9, 0xE4B8, 0x929D, + 0xE4B9, 0x928B, 0xE4BA, 0x922D, 0xE4BB, 0x969E, 0xE4BC, 0x96A1, 0xE4BD, 0x96FF, 0xE4BE, 0x9758, 0xE4BF, 0x977D, 0xE4C0, 0x977A, + 0xE4C1, 0x977E, 0xE4C2, 0x9783, 0xE4C3, 0x9780, 0xE4C4, 0x9782, 0xE4C5, 0x977B, 0xE4C6, 0x9784, 0xE4C7, 0x9781, 0xE4C8, 0x977F, + 0xE4C9, 0x97CE, 0xE4CA, 0x97CD, 0xE4CB, 0x9816, 0xE4CC, 0x98AD, 0xE4CD, 0x98AE, 0xE4CE, 0x9902, 0xE4CF, 0x9900, 0xE4D0, 0x9907, + 0xE4D1, 0x999D, 0xE4D2, 0x999C, 0xE4D3, 0x99C3, 0xE4D4, 0x99B9, 0xE4D5, 0x99BB, 0xE4D6, 0x99BA, 0xE4D7, 0x99C2, 0xE4D8, 0x99BD, + 0xE4D9, 0x99C7, 0xE4DA, 0x9AB1, 0xE4DB, 0x9AE3, 0xE4DC, 0x9AE7, 0xE4DD, 0x9B3E, 0xE4DE, 0x9B3F, 0xE4DF, 0x9B60, 0xE4E0, 0x9B61, + 0xE4E1, 0x9B5F, 0xE4E2, 0x9CF1, 0xE4E3, 0x9CF2, 0xE4E4, 0x9CF5, 0xE4E5, 0x9EA7, 0xE4E6, 0x50FF, 0xE4E7, 0x5103, 0xE4E8, 0x5130, + 0xE4E9, 0x50F8, 0xE4EA, 0x5106, 0xE4EB, 0x5107, 0xE4EC, 0x50F6, 0xE4ED, 0x50FE, 0xE4EE, 0x510B, 0xE4EF, 0x510C, 0xE4F0, 0x50FD, + 0xE4F1, 0x510A, 0xE4F2, 0x528B, 0xE4F3, 0x528C, 0xE4F4, 0x52F1, 0xE4F5, 0x52EF, 0xE4F6, 0x5648, 0xE4F7, 0x5642, 0xE4F8, 0x564C, + 0xE4F9, 0x5635, 0xE4FA, 0x5641, 0xE4FB, 0x564A, 0xE4FC, 0x5649, 0xE4FD, 0x5646, 0xE4FE, 0x5658, 0xE540, 0x565A, 0xE541, 0x5640, + 0xE542, 0x5633, 0xE543, 0x563D, 0xE544, 0x562C, 0xE545, 0x563E, 0xE546, 0x5638, 0xE547, 0x562A, 0xE548, 0x563A, 0xE549, 0x571A, + 0xE54A, 0x58AB, 0xE54B, 0x589D, 0xE54C, 0x58B1, 0xE54D, 0x58A0, 0xE54E, 0x58A3, 0xE54F, 0x58AF, 0xE550, 0x58AC, 0xE551, 0x58A5, + 0xE552, 0x58A1, 0xE553, 0x58FF, 0xE554, 0x5AFF, 0xE555, 0x5AF4, 0xE556, 0x5AFD, 0xE557, 0x5AF7, 0xE558, 0x5AF6, 0xE559, 0x5B03, + 0xE55A, 0x5AF8, 0xE55B, 0x5B02, 0xE55C, 0x5AF9, 0xE55D, 0x5B01, 0xE55E, 0x5B07, 0xE55F, 0x5B05, 0xE560, 0x5B0F, 0xE561, 0x5C67, + 0xE562, 0x5D99, 0xE563, 0x5D97, 0xE564, 0x5D9F, 0xE565, 0x5D92, 0xE566, 0x5DA2, 0xE567, 0x5D93, 0xE568, 0x5D95, 0xE569, 0x5DA0, + 0xE56A, 0x5D9C, 0xE56B, 0x5DA1, 0xE56C, 0x5D9A, 0xE56D, 0x5D9E, 0xE56E, 0x5E69, 0xE56F, 0x5E5D, 0xE570, 0x5E60, 0xE571, 0x5E5C, + 0xE572, 0x7DF3, 0xE573, 0x5EDB, 0xE574, 0x5EDE, 0xE575, 0x5EE1, 0xE576, 0x5F49, 0xE577, 0x5FB2, 0xE578, 0x618B, 0xE579, 0x6183, + 0xE57A, 0x6179, 0xE57B, 0x61B1, 0xE57C, 0x61B0, 0xE57D, 0x61A2, 0xE57E, 0x6189, 0xE5A1, 0x619B, 0xE5A2, 0x6193, 0xE5A3, 0x61AF, + 0xE5A4, 0x61AD, 0xE5A5, 0x619F, 0xE5A6, 0x6192, 0xE5A7, 0x61AA, 0xE5A8, 0x61A1, 0xE5A9, 0x618D, 0xE5AA, 0x6166, 0xE5AB, 0x61B3, + 0xE5AC, 0x622D, 0xE5AD, 0x646E, 0xE5AE, 0x6470, 0xE5AF, 0x6496, 0xE5B0, 0x64A0, 0xE5B1, 0x6485, 0xE5B2, 0x6497, 0xE5B3, 0x649C, + 0xE5B4, 0x648F, 0xE5B5, 0x648B, 0xE5B6, 0x648A, 0xE5B7, 0x648C, 0xE5B8, 0x64A3, 0xE5B9, 0x649F, 0xE5BA, 0x6468, 0xE5BB, 0x64B1, + 0xE5BC, 0x6498, 0xE5BD, 0x6576, 0xE5BE, 0x657A, 0xE5BF, 0x6579, 0xE5C0, 0x657B, 0xE5C1, 0x65B2, 0xE5C2, 0x65B3, 0xE5C3, 0x66B5, + 0xE5C4, 0x66B0, 0xE5C5, 0x66A9, 0xE5C6, 0x66B2, 0xE5C7, 0x66B7, 0xE5C8, 0x66AA, 0xE5C9, 0x66AF, 0xE5CA, 0x6A00, 0xE5CB, 0x6A06, + 0xE5CC, 0x6A17, 0xE5CD, 0x69E5, 0xE5CE, 0x69F8, 0xE5CF, 0x6A15, 0xE5D0, 0x69F1, 0xE5D1, 0x69E4, 0xE5D2, 0x6A20, 0xE5D3, 0x69FF, + 0xE5D4, 0x69EC, 0xE5D5, 0x69E2, 0xE5D6, 0x6A1B, 0xE5D7, 0x6A1D, 0xE5D8, 0x69FE, 0xE5D9, 0x6A27, 0xE5DA, 0x69F2, 0xE5DB, 0x69EE, + 0xE5DC, 0x6A14, 0xE5DD, 0x69F7, 0xE5DE, 0x69E7, 0xE5DF, 0x6A40, 0xE5E0, 0x6A08, 0xE5E1, 0x69E6, 0xE5E2, 0x69FB, 0xE5E3, 0x6A0D, + 0xE5E4, 0x69FC, 0xE5E5, 0x69EB, 0xE5E6, 0x6A09, 0xE5E7, 0x6A04, 0xE5E8, 0x6A18, 0xE5E9, 0x6A25, 0xE5EA, 0x6A0F, 0xE5EB, 0x69F6, + 0xE5EC, 0x6A26, 0xE5ED, 0x6A07, 0xE5EE, 0x69F4, 0xE5EF, 0x6A16, 0xE5F0, 0x6B51, 0xE5F1, 0x6BA5, 0xE5F2, 0x6BA3, 0xE5F3, 0x6BA2, + 0xE5F4, 0x6BA6, 0xE5F5, 0x6C01, 0xE5F6, 0x6C00, 0xE5F7, 0x6BFF, 0xE5F8, 0x6C02, 0xE5F9, 0x6F41, 0xE5FA, 0x6F26, 0xE5FB, 0x6F7E, + 0xE5FC, 0x6F87, 0xE5FD, 0x6FC6, 0xE5FE, 0x6F92, 0xE640, 0x6F8D, 0xE641, 0x6F89, 0xE642, 0x6F8C, 0xE643, 0x6F62, 0xE644, 0x6F4F, + 0xE645, 0x6F85, 0xE646, 0x6F5A, 0xE647, 0x6F96, 0xE648, 0x6F76, 0xE649, 0x6F6C, 0xE64A, 0x6F82, 0xE64B, 0x6F55, 0xE64C, 0x6F72, + 0xE64D, 0x6F52, 0xE64E, 0x6F50, 0xE64F, 0x6F57, 0xE650, 0x6F94, 0xE651, 0x6F93, 0xE652, 0x6F5D, 0xE653, 0x6F00, 0xE654, 0x6F61, + 0xE655, 0x6F6B, 0xE656, 0x6F7D, 0xE657, 0x6F67, 0xE658, 0x6F90, 0xE659, 0x6F53, 0xE65A, 0x6F8B, 0xE65B, 0x6F69, 0xE65C, 0x6F7F, + 0xE65D, 0x6F95, 0xE65E, 0x6F63, 0xE65F, 0x6F77, 0xE660, 0x6F6A, 0xE661, 0x6F7B, 0xE662, 0x71B2, 0xE663, 0x71AF, 0xE664, 0x719B, + 0xE665, 0x71B0, 0xE666, 0x71A0, 0xE667, 0x719A, 0xE668, 0x71A9, 0xE669, 0x71B5, 0xE66A, 0x719D, 0xE66B, 0x71A5, 0xE66C, 0x719E, + 0xE66D, 0x71A4, 0xE66E, 0x71A1, 0xE66F, 0x71AA, 0xE670, 0x719C, 0xE671, 0x71A7, 0xE672, 0x71B3, 0xE673, 0x7298, 0xE674, 0x729A, + 0xE675, 0x7358, 0xE676, 0x7352, 0xE677, 0x735E, 0xE678, 0x735F, 0xE679, 0x7360, 0xE67A, 0x735D, 0xE67B, 0x735B, 0xE67C, 0x7361, + 0xE67D, 0x735A, 0xE67E, 0x7359, 0xE6A1, 0x7362, 0xE6A2, 0x7487, 0xE6A3, 0x7489, 0xE6A4, 0x748A, 0xE6A5, 0x7486, 0xE6A6, 0x7481, + 0xE6A7, 0x747D, 0xE6A8, 0x7485, 0xE6A9, 0x7488, 0xE6AA, 0x747C, 0xE6AB, 0x7479, 0xE6AC, 0x7508, 0xE6AD, 0x7507, 0xE6AE, 0x757E, + 0xE6AF, 0x7625, 0xE6B0, 0x761E, 0xE6B1, 0x7619, 0xE6B2, 0x761D, 0xE6B3, 0x761C, 0xE6B4, 0x7623, 0xE6B5, 0x761A, 0xE6B6, 0x7628, + 0xE6B7, 0x761B, 0xE6B8, 0x769C, 0xE6B9, 0x769D, 0xE6BA, 0x769E, 0xE6BB, 0x769B, 0xE6BC, 0x778D, 0xE6BD, 0x778F, 0xE6BE, 0x7789, + 0xE6BF, 0x7788, 0xE6C0, 0x78CD, 0xE6C1, 0x78BB, 0xE6C2, 0x78CF, 0xE6C3, 0x78CC, 0xE6C4, 0x78D1, 0xE6C5, 0x78CE, 0xE6C6, 0x78D4, + 0xE6C7, 0x78C8, 0xE6C8, 0x78C3, 0xE6C9, 0x78C4, 0xE6CA, 0x78C9, 0xE6CB, 0x799A, 0xE6CC, 0x79A1, 0xE6CD, 0x79A0, 0xE6CE, 0x799C, + 0xE6CF, 0x79A2, 0xE6D0, 0x799B, 0xE6D1, 0x6B76, 0xE6D2, 0x7A39, 0xE6D3, 0x7AB2, 0xE6D4, 0x7AB4, 0xE6D5, 0x7AB3, 0xE6D6, 0x7BB7, + 0xE6D7, 0x7BCB, 0xE6D8, 0x7BBE, 0xE6D9, 0x7BAC, 0xE6DA, 0x7BCE, 0xE6DB, 0x7BAF, 0xE6DC, 0x7BB9, 0xE6DD, 0x7BCA, 0xE6DE, 0x7BB5, + 0xE6DF, 0x7CC5, 0xE6E0, 0x7CC8, 0xE6E1, 0x7CCC, 0xE6E2, 0x7CCB, 0xE6E3, 0x7DF7, 0xE6E4, 0x7DDB, 0xE6E5, 0x7DEA, 0xE6E6, 0x7DE7, + 0xE6E7, 0x7DD7, 0xE6E8, 0x7DE1, 0xE6E9, 0x7E03, 0xE6EA, 0x7DFA, 0xE6EB, 0x7DE6, 0xE6EC, 0x7DF6, 0xE6ED, 0x7DF1, 0xE6EE, 0x7DF0, + 0xE6EF, 0x7DEE, 0xE6F0, 0x7DDF, 0xE6F1, 0x7F76, 0xE6F2, 0x7FAC, 0xE6F3, 0x7FB0, 0xE6F4, 0x7FAD, 0xE6F5, 0x7FED, 0xE6F6, 0x7FEB, + 0xE6F7, 0x7FEA, 0xE6F8, 0x7FEC, 0xE6F9, 0x7FE6, 0xE6FA, 0x7FE8, 0xE6FB, 0x8064, 0xE6FC, 0x8067, 0xE6FD, 0x81A3, 0xE6FE, 0x819F, + 0xE740, 0x819E, 0xE741, 0x8195, 0xE742, 0x81A2, 0xE743, 0x8199, 0xE744, 0x8197, 0xE745, 0x8216, 0xE746, 0x824F, 0xE747, 0x8253, + 0xE748, 0x8252, 0xE749, 0x8250, 0xE74A, 0x824E, 0xE74B, 0x8251, 0xE74C, 0x8524, 0xE74D, 0x853B, 0xE74E, 0x850F, 0xE74F, 0x8500, + 0xE750, 0x8529, 0xE751, 0x850E, 0xE752, 0x8509, 0xE753, 0x850D, 0xE754, 0x851F, 0xE755, 0x850A, 0xE756, 0x8527, 0xE757, 0x851C, + 0xE758, 0x84FB, 0xE759, 0x852B, 0xE75A, 0x84FA, 0xE75B, 0x8508, 0xE75C, 0x850C, 0xE75D, 0x84F4, 0xE75E, 0x852A, 0xE75F, 0x84F2, + 0xE760, 0x8515, 0xE761, 0x84F7, 0xE762, 0x84EB, 0xE763, 0x84F3, 0xE764, 0x84FC, 0xE765, 0x8512, 0xE766, 0x84EA, 0xE767, 0x84E9, + 0xE768, 0x8516, 0xE769, 0x84FE, 0xE76A, 0x8528, 0xE76B, 0x851D, 0xE76C, 0x852E, 0xE76D, 0x8502, 0xE76E, 0x84FD, 0xE76F, 0x851E, + 0xE770, 0x84F6, 0xE771, 0x8531, 0xE772, 0x8526, 0xE773, 0x84E7, 0xE774, 0x84E8, 0xE775, 0x84F0, 0xE776, 0x84EF, 0xE777, 0x84F9, + 0xE778, 0x8518, 0xE779, 0x8520, 0xE77A, 0x8530, 0xE77B, 0x850B, 0xE77C, 0x8519, 0xE77D, 0x852F, 0xE77E, 0x8662, 0xE7A1, 0x8756, + 0xE7A2, 0x8763, 0xE7A3, 0x8764, 0xE7A4, 0x8777, 0xE7A5, 0x87E1, 0xE7A6, 0x8773, 0xE7A7, 0x8758, 0xE7A8, 0x8754, 0xE7A9, 0x875B, + 0xE7AA, 0x8752, 0xE7AB, 0x8761, 0xE7AC, 0x875A, 0xE7AD, 0x8751, 0xE7AE, 0x875E, 0xE7AF, 0x876D, 0xE7B0, 0x876A, 0xE7B1, 0x8750, + 0xE7B2, 0x874E, 0xE7B3, 0x875F, 0xE7B4, 0x875D, 0xE7B5, 0x876F, 0xE7B6, 0x876C, 0xE7B7, 0x877A, 0xE7B8, 0x876E, 0xE7B9, 0x875C, + 0xE7BA, 0x8765, 0xE7BB, 0x874F, 0xE7BC, 0x877B, 0xE7BD, 0x8775, 0xE7BE, 0x8762, 0xE7BF, 0x8767, 0xE7C0, 0x8769, 0xE7C1, 0x885A, + 0xE7C2, 0x8905, 0xE7C3, 0x890C, 0xE7C4, 0x8914, 0xE7C5, 0x890B, 0xE7C6, 0x8917, 0xE7C7, 0x8918, 0xE7C8, 0x8919, 0xE7C9, 0x8906, + 0xE7CA, 0x8916, 0xE7CB, 0x8911, 0xE7CC, 0x890E, 0xE7CD, 0x8909, 0xE7CE, 0x89A2, 0xE7CF, 0x89A4, 0xE7D0, 0x89A3, 0xE7D1, 0x89ED, + 0xE7D2, 0x89F0, 0xE7D3, 0x89EC, 0xE7D4, 0x8ACF, 0xE7D5, 0x8AC6, 0xE7D6, 0x8AB8, 0xE7D7, 0x8AD3, 0xE7D8, 0x8AD1, 0xE7D9, 0x8AD4, + 0xE7DA, 0x8AD5, 0xE7DB, 0x8ABB, 0xE7DC, 0x8AD7, 0xE7DD, 0x8ABE, 0xE7DE, 0x8AC0, 0xE7DF, 0x8AC5, 0xE7E0, 0x8AD8, 0xE7E1, 0x8AC3, + 0xE7E2, 0x8ABA, 0xE7E3, 0x8ABD, 0xE7E4, 0x8AD9, 0xE7E5, 0x8C3E, 0xE7E6, 0x8C4D, 0xE7E7, 0x8C8F, 0xE7E8, 0x8CE5, 0xE7E9, 0x8CDF, + 0xE7EA, 0x8CD9, 0xE7EB, 0x8CE8, 0xE7EC, 0x8CDA, 0xE7ED, 0x8CDD, 0xE7EE, 0x8CE7, 0xE7EF, 0x8DA0, 0xE7F0, 0x8D9C, 0xE7F1, 0x8DA1, + 0xE7F2, 0x8D9B, 0xE7F3, 0x8E20, 0xE7F4, 0x8E23, 0xE7F5, 0x8E25, 0xE7F6, 0x8E24, 0xE7F7, 0x8E2E, 0xE7F8, 0x8E15, 0xE7F9, 0x8E1B, + 0xE7FA, 0x8E16, 0xE7FB, 0x8E11, 0xE7FC, 0x8E19, 0xE7FD, 0x8E26, 0xE7FE, 0x8E27, 0xE840, 0x8E14, 0xE841, 0x8E12, 0xE842, 0x8E18, + 0xE843, 0x8E13, 0xE844, 0x8E1C, 0xE845, 0x8E17, 0xE846, 0x8E1A, 0xE847, 0x8F2C, 0xE848, 0x8F24, 0xE849, 0x8F18, 0xE84A, 0x8F1A, + 0xE84B, 0x8F20, 0xE84C, 0x8F23, 0xE84D, 0x8F16, 0xE84E, 0x8F17, 0xE84F, 0x9073, 0xE850, 0x9070, 0xE851, 0x906F, 0xE852, 0x9067, + 0xE853, 0x906B, 0xE854, 0x912F, 0xE855, 0x912B, 0xE856, 0x9129, 0xE857, 0x912A, 0xE858, 0x9132, 0xE859, 0x9126, 0xE85A, 0x912E, + 0xE85B, 0x9185, 0xE85C, 0x9186, 0xE85D, 0x918A, 0xE85E, 0x9181, 0xE85F, 0x9182, 0xE860, 0x9184, 0xE861, 0x9180, 0xE862, 0x92D0, + 0xE863, 0x92C3, 0xE864, 0x92C4, 0xE865, 0x92C0, 0xE866, 0x92D9, 0xE867, 0x92B6, 0xE868, 0x92CF, 0xE869, 0x92F1, 0xE86A, 0x92DF, + 0xE86B, 0x92D8, 0xE86C, 0x92E9, 0xE86D, 0x92D7, 0xE86E, 0x92DD, 0xE86F, 0x92CC, 0xE870, 0x92EF, 0xE871, 0x92C2, 0xE872, 0x92E8, + 0xE873, 0x92CA, 0xE874, 0x92C8, 0xE875, 0x92CE, 0xE876, 0x92E6, 0xE877, 0x92CD, 0xE878, 0x92D5, 0xE879, 0x92C9, 0xE87A, 0x92E0, + 0xE87B, 0x92DE, 0xE87C, 0x92E7, 0xE87D, 0x92D1, 0xE87E, 0x92D3, 0xE8A1, 0x92B5, 0xE8A2, 0x92E1, 0xE8A3, 0x92C6, 0xE8A4, 0x92B4, + 0xE8A5, 0x957C, 0xE8A6, 0x95AC, 0xE8A7, 0x95AB, 0xE8A8, 0x95AE, 0xE8A9, 0x95B0, 0xE8AA, 0x96A4, 0xE8AB, 0x96A2, 0xE8AC, 0x96D3, + 0xE8AD, 0x9705, 0xE8AE, 0x9708, 0xE8AF, 0x9702, 0xE8B0, 0x975A, 0xE8B1, 0x978A, 0xE8B2, 0x978E, 0xE8B3, 0x9788, 0xE8B4, 0x97D0, + 0xE8B5, 0x97CF, 0xE8B6, 0x981E, 0xE8B7, 0x981D, 0xE8B8, 0x9826, 0xE8B9, 0x9829, 0xE8BA, 0x9828, 0xE8BB, 0x9820, 0xE8BC, 0x981B, + 0xE8BD, 0x9827, 0xE8BE, 0x98B2, 0xE8BF, 0x9908, 0xE8C0, 0x98FA, 0xE8C1, 0x9911, 0xE8C2, 0x9914, 0xE8C3, 0x9916, 0xE8C4, 0x9917, + 0xE8C5, 0x9915, 0xE8C6, 0x99DC, 0xE8C7, 0x99CD, 0xE8C8, 0x99CF, 0xE8C9, 0x99D3, 0xE8CA, 0x99D4, 0xE8CB, 0x99CE, 0xE8CC, 0x99C9, + 0xE8CD, 0x99D6, 0xE8CE, 0x99D8, 0xE8CF, 0x99CB, 0xE8D0, 0x99D7, 0xE8D1, 0x99CC, 0xE8D2, 0x9AB3, 0xE8D3, 0x9AEC, 0xE8D4, 0x9AEB, + 0xE8D5, 0x9AF3, 0xE8D6, 0x9AF2, 0xE8D7, 0x9AF1, 0xE8D8, 0x9B46, 0xE8D9, 0x9B43, 0xE8DA, 0x9B67, 0xE8DB, 0x9B74, 0xE8DC, 0x9B71, + 0xE8DD, 0x9B66, 0xE8DE, 0x9B76, 0xE8DF, 0x9B75, 0xE8E0, 0x9B70, 0xE8E1, 0x9B68, 0xE8E2, 0x9B64, 0xE8E3, 0x9B6C, 0xE8E4, 0x9CFC, + 0xE8E5, 0x9CFA, 0xE8E6, 0x9CFD, 0xE8E7, 0x9CFF, 0xE8E8, 0x9CF7, 0xE8E9, 0x9D07, 0xE8EA, 0x9D00, 0xE8EB, 0x9CF9, 0xE8EC, 0x9CFB, + 0xE8ED, 0x9D08, 0xE8EE, 0x9D05, 0xE8EF, 0x9D04, 0xE8F0, 0x9E83, 0xE8F1, 0x9ED3, 0xE8F2, 0x9F0F, 0xE8F3, 0x9F10, 0xE8F4, 0x511C, + 0xE8F5, 0x5113, 0xE8F6, 0x5117, 0xE8F7, 0x511A, 0xE8F8, 0x5111, 0xE8F9, 0x51DE, 0xE8FA, 0x5334, 0xE8FB, 0x53E1, 0xE8FC, 0x5670, + 0xE8FD, 0x5660, 0xE8FE, 0x566E, 0xE940, 0x5673, 0xE941, 0x5666, 0xE942, 0x5663, 0xE943, 0x566D, 0xE944, 0x5672, 0xE945, 0x565E, + 0xE946, 0x5677, 0xE947, 0x571C, 0xE948, 0x571B, 0xE949, 0x58C8, 0xE94A, 0x58BD, 0xE94B, 0x58C9, 0xE94C, 0x58BF, 0xE94D, 0x58BA, + 0xE94E, 0x58C2, 0xE94F, 0x58BC, 0xE950, 0x58C6, 0xE951, 0x5B17, 0xE952, 0x5B19, 0xE953, 0x5B1B, 0xE954, 0x5B21, 0xE955, 0x5B14, + 0xE956, 0x5B13, 0xE957, 0x5B10, 0xE958, 0x5B16, 0xE959, 0x5B28, 0xE95A, 0x5B1A, 0xE95B, 0x5B20, 0xE95C, 0x5B1E, 0xE95D, 0x5BEF, + 0xE95E, 0x5DAC, 0xE95F, 0x5DB1, 0xE960, 0x5DA9, 0xE961, 0x5DA7, 0xE962, 0x5DB5, 0xE963, 0x5DB0, 0xE964, 0x5DAE, 0xE965, 0x5DAA, + 0xE966, 0x5DA8, 0xE967, 0x5DB2, 0xE968, 0x5DAD, 0xE969, 0x5DAF, 0xE96A, 0x5DB4, 0xE96B, 0x5E67, 0xE96C, 0x5E68, 0xE96D, 0x5E66, + 0xE96E, 0x5E6F, 0xE96F, 0x5EE9, 0xE970, 0x5EE7, 0xE971, 0x5EE6, 0xE972, 0x5EE8, 0xE973, 0x5EE5, 0xE974, 0x5F4B, 0xE975, 0x5FBC, + 0xE976, 0x619D, 0xE977, 0x61A8, 0xE978, 0x6196, 0xE979, 0x61C5, 0xE97A, 0x61B4, 0xE97B, 0x61C6, 0xE97C, 0x61C1, 0xE97D, 0x61CC, + 0xE97E, 0x61BA, 0xE9A1, 0x61BF, 0xE9A2, 0x61B8, 0xE9A3, 0x618C, 0xE9A4, 0x64D7, 0xE9A5, 0x64D6, 0xE9A6, 0x64D0, 0xE9A7, 0x64CF, + 0xE9A8, 0x64C9, 0xE9A9, 0x64BD, 0xE9AA, 0x6489, 0xE9AB, 0x64C3, 0xE9AC, 0x64DB, 0xE9AD, 0x64F3, 0xE9AE, 0x64D9, 0xE9AF, 0x6533, + 0xE9B0, 0x657F, 0xE9B1, 0x657C, 0xE9B2, 0x65A2, 0xE9B3, 0x66C8, 0xE9B4, 0x66BE, 0xE9B5, 0x66C0, 0xE9B6, 0x66CA, 0xE9B7, 0x66CB, + 0xE9B8, 0x66CF, 0xE9B9, 0x66BD, 0xE9BA, 0x66BB, 0xE9BB, 0x66BA, 0xE9BC, 0x66CC, 0xE9BD, 0x6723, 0xE9BE, 0x6A34, 0xE9BF, 0x6A66, + 0xE9C0, 0x6A49, 0xE9C1, 0x6A67, 0xE9C2, 0x6A32, 0xE9C3, 0x6A68, 0xE9C4, 0x6A3E, 0xE9C5, 0x6A5D, 0xE9C6, 0x6A6D, 0xE9C7, 0x6A76, + 0xE9C8, 0x6A5B, 0xE9C9, 0x6A51, 0xE9CA, 0x6A28, 0xE9CB, 0x6A5A, 0xE9CC, 0x6A3B, 0xE9CD, 0x6A3F, 0xE9CE, 0x6A41, 0xE9CF, 0x6A6A, + 0xE9D0, 0x6A64, 0xE9D1, 0x6A50, 0xE9D2, 0x6A4F, 0xE9D3, 0x6A54, 0xE9D4, 0x6A6F, 0xE9D5, 0x6A69, 0xE9D6, 0x6A60, 0xE9D7, 0x6A3C, + 0xE9D8, 0x6A5E, 0xE9D9, 0x6A56, 0xE9DA, 0x6A55, 0xE9DB, 0x6A4D, 0xE9DC, 0x6A4E, 0xE9DD, 0x6A46, 0xE9DE, 0x6B55, 0xE9DF, 0x6B54, + 0xE9E0, 0x6B56, 0xE9E1, 0x6BA7, 0xE9E2, 0x6BAA, 0xE9E3, 0x6BAB, 0xE9E4, 0x6BC8, 0xE9E5, 0x6BC7, 0xE9E6, 0x6C04, 0xE9E7, 0x6C03, + 0xE9E8, 0x6C06, 0xE9E9, 0x6FAD, 0xE9EA, 0x6FCB, 0xE9EB, 0x6FA3, 0xE9EC, 0x6FC7, 0xE9ED, 0x6FBC, 0xE9EE, 0x6FCE, 0xE9EF, 0x6FC8, + 0xE9F0, 0x6F5E, 0xE9F1, 0x6FC4, 0xE9F2, 0x6FBD, 0xE9F3, 0x6F9E, 0xE9F4, 0x6FCA, 0xE9F5, 0x6FA8, 0xE9F6, 0x7004, 0xE9F7, 0x6FA5, + 0xE9F8, 0x6FAE, 0xE9F9, 0x6FBA, 0xE9FA, 0x6FAC, 0xE9FB, 0x6FAA, 0xE9FC, 0x6FCF, 0xE9FD, 0x6FBF, 0xE9FE, 0x6FB8, 0xEA40, 0x6FA2, + 0xEA41, 0x6FC9, 0xEA42, 0x6FAB, 0xEA43, 0x6FCD, 0xEA44, 0x6FAF, 0xEA45, 0x6FB2, 0xEA46, 0x6FB0, 0xEA47, 0x71C5, 0xEA48, 0x71C2, + 0xEA49, 0x71BF, 0xEA4A, 0x71B8, 0xEA4B, 0x71D6, 0xEA4C, 0x71C0, 0xEA4D, 0x71C1, 0xEA4E, 0x71CB, 0xEA4F, 0x71D4, 0xEA50, 0x71CA, + 0xEA51, 0x71C7, 0xEA52, 0x71CF, 0xEA53, 0x71BD, 0xEA54, 0x71D8, 0xEA55, 0x71BC, 0xEA56, 0x71C6, 0xEA57, 0x71DA, 0xEA58, 0x71DB, + 0xEA59, 0x729D, 0xEA5A, 0x729E, 0xEA5B, 0x7369, 0xEA5C, 0x7366, 0xEA5D, 0x7367, 0xEA5E, 0x736C, 0xEA5F, 0x7365, 0xEA60, 0x736B, + 0xEA61, 0x736A, 0xEA62, 0x747F, 0xEA63, 0x749A, 0xEA64, 0x74A0, 0xEA65, 0x7494, 0xEA66, 0x7492, 0xEA67, 0x7495, 0xEA68, 0x74A1, + 0xEA69, 0x750B, 0xEA6A, 0x7580, 0xEA6B, 0x762F, 0xEA6C, 0x762D, 0xEA6D, 0x7631, 0xEA6E, 0x763D, 0xEA6F, 0x7633, 0xEA70, 0x763C, + 0xEA71, 0x7635, 0xEA72, 0x7632, 0xEA73, 0x7630, 0xEA74, 0x76BB, 0xEA75, 0x76E6, 0xEA76, 0x779A, 0xEA77, 0x779D, 0xEA78, 0x77A1, + 0xEA79, 0x779C, 0xEA7A, 0x779B, 0xEA7B, 0x77A2, 0xEA7C, 0x77A3, 0xEA7D, 0x7795, 0xEA7E, 0x7799, 0xEAA1, 0x7797, 0xEAA2, 0x78DD, + 0xEAA3, 0x78E9, 0xEAA4, 0x78E5, 0xEAA5, 0x78EA, 0xEAA6, 0x78DE, 0xEAA7, 0x78E3, 0xEAA8, 0x78DB, 0xEAA9, 0x78E1, 0xEAAA, 0x78E2, + 0xEAAB, 0x78ED, 0xEAAC, 0x78DF, 0xEAAD, 0x78E0, 0xEAAE, 0x79A4, 0xEAAF, 0x7A44, 0xEAB0, 0x7A48, 0xEAB1, 0x7A47, 0xEAB2, 0x7AB6, + 0xEAB3, 0x7AB8, 0xEAB4, 0x7AB5, 0xEAB5, 0x7AB1, 0xEAB6, 0x7AB7, 0xEAB7, 0x7BDE, 0xEAB8, 0x7BE3, 0xEAB9, 0x7BE7, 0xEABA, 0x7BDD, + 0xEABB, 0x7BD5, 0xEABC, 0x7BE5, 0xEABD, 0x7BDA, 0xEABE, 0x7BE8, 0xEABF, 0x7BF9, 0xEAC0, 0x7BD4, 0xEAC1, 0x7BEA, 0xEAC2, 0x7BE2, + 0xEAC3, 0x7BDC, 0xEAC4, 0x7BEB, 0xEAC5, 0x7BD8, 0xEAC6, 0x7BDF, 0xEAC7, 0x7CD2, 0xEAC8, 0x7CD4, 0xEAC9, 0x7CD7, 0xEACA, 0x7CD0, + 0xEACB, 0x7CD1, 0xEACC, 0x7E12, 0xEACD, 0x7E21, 0xEACE, 0x7E17, 0xEACF, 0x7E0C, 0xEAD0, 0x7E1F, 0xEAD1, 0x7E20, 0xEAD2, 0x7E13, + 0xEAD3, 0x7E0E, 0xEAD4, 0x7E1C, 0xEAD5, 0x7E15, 0xEAD6, 0x7E1A, 0xEAD7, 0x7E22, 0xEAD8, 0x7E0B, 0xEAD9, 0x7E0F, 0xEADA, 0x7E16, + 0xEADB, 0x7E0D, 0xEADC, 0x7E14, 0xEADD, 0x7E25, 0xEADE, 0x7E24, 0xEADF, 0x7F43, 0xEAE0, 0x7F7B, 0xEAE1, 0x7F7C, 0xEAE2, 0x7F7A, + 0xEAE3, 0x7FB1, 0xEAE4, 0x7FEF, 0xEAE5, 0x802A, 0xEAE6, 0x8029, 0xEAE7, 0x806C, 0xEAE8, 0x81B1, 0xEAE9, 0x81A6, 0xEAEA, 0x81AE, + 0xEAEB, 0x81B9, 0xEAEC, 0x81B5, 0xEAED, 0x81AB, 0xEAEE, 0x81B0, 0xEAEF, 0x81AC, 0xEAF0, 0x81B4, 0xEAF1, 0x81B2, 0xEAF2, 0x81B7, + 0xEAF3, 0x81A7, 0xEAF4, 0x81F2, 0xEAF5, 0x8255, 0xEAF6, 0x8256, 0xEAF7, 0x8257, 0xEAF8, 0x8556, 0xEAF9, 0x8545, 0xEAFA, 0x856B, + 0xEAFB, 0x854D, 0xEAFC, 0x8553, 0xEAFD, 0x8561, 0xEAFE, 0x8558, 0xEB40, 0x8540, 0xEB41, 0x8546, 0xEB42, 0x8564, 0xEB43, 0x8541, + 0xEB44, 0x8562, 0xEB45, 0x8544, 0xEB46, 0x8551, 0xEB47, 0x8547, 0xEB48, 0x8563, 0xEB49, 0x853E, 0xEB4A, 0x855B, 0xEB4B, 0x8571, + 0xEB4C, 0x854E, 0xEB4D, 0x856E, 0xEB4E, 0x8575, 0xEB4F, 0x8555, 0xEB50, 0x8567, 0xEB51, 0x8560, 0xEB52, 0x858C, 0xEB53, 0x8566, + 0xEB54, 0x855D, 0xEB55, 0x8554, 0xEB56, 0x8565, 0xEB57, 0x856C, 0xEB58, 0x8663, 0xEB59, 0x8665, 0xEB5A, 0x8664, 0xEB5B, 0x879B, + 0xEB5C, 0x878F, 0xEB5D, 0x8797, 0xEB5E, 0x8793, 0xEB5F, 0x8792, 0xEB60, 0x8788, 0xEB61, 0x8781, 0xEB62, 0x8796, 0xEB63, 0x8798, + 0xEB64, 0x8779, 0xEB65, 0x8787, 0xEB66, 0x87A3, 0xEB67, 0x8785, 0xEB68, 0x8790, 0xEB69, 0x8791, 0xEB6A, 0x879D, 0xEB6B, 0x8784, + 0xEB6C, 0x8794, 0xEB6D, 0x879C, 0xEB6E, 0x879A, 0xEB6F, 0x8789, 0xEB70, 0x891E, 0xEB71, 0x8926, 0xEB72, 0x8930, 0xEB73, 0x892D, + 0xEB74, 0x892E, 0xEB75, 0x8927, 0xEB76, 0x8931, 0xEB77, 0x8922, 0xEB78, 0x8929, 0xEB79, 0x8923, 0xEB7A, 0x892F, 0xEB7B, 0x892C, + 0xEB7C, 0x891F, 0xEB7D, 0x89F1, 0xEB7E, 0x8AE0, 0xEBA1, 0x8AE2, 0xEBA2, 0x8AF2, 0xEBA3, 0x8AF4, 0xEBA4, 0x8AF5, 0xEBA5, 0x8ADD, + 0xEBA6, 0x8B14, 0xEBA7, 0x8AE4, 0xEBA8, 0x8ADF, 0xEBA9, 0x8AF0, 0xEBAA, 0x8AC8, 0xEBAB, 0x8ADE, 0xEBAC, 0x8AE1, 0xEBAD, 0x8AE8, + 0xEBAE, 0x8AFF, 0xEBAF, 0x8AEF, 0xEBB0, 0x8AFB, 0xEBB1, 0x8C91, 0xEBB2, 0x8C92, 0xEBB3, 0x8C90, 0xEBB4, 0x8CF5, 0xEBB5, 0x8CEE, + 0xEBB6, 0x8CF1, 0xEBB7, 0x8CF0, 0xEBB8, 0x8CF3, 0xEBB9, 0x8D6C, 0xEBBA, 0x8D6E, 0xEBBB, 0x8DA5, 0xEBBC, 0x8DA7, 0xEBBD, 0x8E33, + 0xEBBE, 0x8E3E, 0xEBBF, 0x8E38, 0xEBC0, 0x8E40, 0xEBC1, 0x8E45, 0xEBC2, 0x8E36, 0xEBC3, 0x8E3C, 0xEBC4, 0x8E3D, 0xEBC5, 0x8E41, + 0xEBC6, 0x8E30, 0xEBC7, 0x8E3F, 0xEBC8, 0x8EBD, 0xEBC9, 0x8F36, 0xEBCA, 0x8F2E, 0xEBCB, 0x8F35, 0xEBCC, 0x8F32, 0xEBCD, 0x8F39, + 0xEBCE, 0x8F37, 0xEBCF, 0x8F34, 0xEBD0, 0x9076, 0xEBD1, 0x9079, 0xEBD2, 0x907B, 0xEBD3, 0x9086, 0xEBD4, 0x90FA, 0xEBD5, 0x9133, + 0xEBD6, 0x9135, 0xEBD7, 0x9136, 0xEBD8, 0x9193, 0xEBD9, 0x9190, 0xEBDA, 0x9191, 0xEBDB, 0x918D, 0xEBDC, 0x918F, 0xEBDD, 0x9327, + 0xEBDE, 0x931E, 0xEBDF, 0x9308, 0xEBE0, 0x931F, 0xEBE1, 0x9306, 0xEBE2, 0x930F, 0xEBE3, 0x937A, 0xEBE4, 0x9338, 0xEBE5, 0x933C, + 0xEBE6, 0x931B, 0xEBE7, 0x9323, 0xEBE8, 0x9312, 0xEBE9, 0x9301, 0xEBEA, 0x9346, 0xEBEB, 0x932D, 0xEBEC, 0x930E, 0xEBED, 0x930D, + 0xEBEE, 0x92CB, 0xEBEF, 0x931D, 0xEBF0, 0x92FA, 0xEBF1, 0x9325, 0xEBF2, 0x9313, 0xEBF3, 0x92F9, 0xEBF4, 0x92F7, 0xEBF5, 0x9334, + 0xEBF6, 0x9302, 0xEBF7, 0x9324, 0xEBF8, 0x92FF, 0xEBF9, 0x9329, 0xEBFA, 0x9339, 0xEBFB, 0x9335, 0xEBFC, 0x932A, 0xEBFD, 0x9314, + 0xEBFE, 0x930C, 0xEC40, 0x930B, 0xEC41, 0x92FE, 0xEC42, 0x9309, 0xEC43, 0x9300, 0xEC44, 0x92FB, 0xEC45, 0x9316, 0xEC46, 0x95BC, + 0xEC47, 0x95CD, 0xEC48, 0x95BE, 0xEC49, 0x95B9, 0xEC4A, 0x95BA, 0xEC4B, 0x95B6, 0xEC4C, 0x95BF, 0xEC4D, 0x95B5, 0xEC4E, 0x95BD, + 0xEC4F, 0x96A9, 0xEC50, 0x96D4, 0xEC51, 0x970B, 0xEC52, 0x9712, 0xEC53, 0x9710, 0xEC54, 0x9799, 0xEC55, 0x9797, 0xEC56, 0x9794, + 0xEC57, 0x97F0, 0xEC58, 0x97F8, 0xEC59, 0x9835, 0xEC5A, 0x982F, 0xEC5B, 0x9832, 0xEC5C, 0x9924, 0xEC5D, 0x991F, 0xEC5E, 0x9927, + 0xEC5F, 0x9929, 0xEC60, 0x999E, 0xEC61, 0x99EE, 0xEC62, 0x99EC, 0xEC63, 0x99E5, 0xEC64, 0x99E4, 0xEC65, 0x99F0, 0xEC66, 0x99E3, + 0xEC67, 0x99EA, 0xEC68, 0x99E9, 0xEC69, 0x99E7, 0xEC6A, 0x9AB9, 0xEC6B, 0x9ABF, 0xEC6C, 0x9AB4, 0xEC6D, 0x9ABB, 0xEC6E, 0x9AF6, + 0xEC6F, 0x9AFA, 0xEC70, 0x9AF9, 0xEC71, 0x9AF7, 0xEC72, 0x9B33, 0xEC73, 0x9B80, 0xEC74, 0x9B85, 0xEC75, 0x9B87, 0xEC76, 0x9B7C, + 0xEC77, 0x9B7E, 0xEC78, 0x9B7B, 0xEC79, 0x9B82, 0xEC7A, 0x9B93, 0xEC7B, 0x9B92, 0xEC7C, 0x9B90, 0xEC7D, 0x9B7A, 0xEC7E, 0x9B95, + 0xECA1, 0x9B7D, 0xECA2, 0x9B88, 0xECA3, 0x9D25, 0xECA4, 0x9D17, 0xECA5, 0x9D20, 0xECA6, 0x9D1E, 0xECA7, 0x9D14, 0xECA8, 0x9D29, + 0xECA9, 0x9D1D, 0xECAA, 0x9D18, 0xECAB, 0x9D22, 0xECAC, 0x9D10, 0xECAD, 0x9D19, 0xECAE, 0x9D1F, 0xECAF, 0x9E88, 0xECB0, 0x9E86, + 0xECB1, 0x9E87, 0xECB2, 0x9EAE, 0xECB3, 0x9EAD, 0xECB4, 0x9ED5, 0xECB5, 0x9ED6, 0xECB6, 0x9EFA, 0xECB7, 0x9F12, 0xECB8, 0x9F3D, + 0xECB9, 0x5126, 0xECBA, 0x5125, 0xECBB, 0x5122, 0xECBC, 0x5124, 0xECBD, 0x5120, 0xECBE, 0x5129, 0xECBF, 0x52F4, 0xECC0, 0x5693, + 0xECC1, 0x568C, 0xECC2, 0x568D, 0xECC3, 0x5686, 0xECC4, 0x5684, 0xECC5, 0x5683, 0xECC6, 0x567E, 0xECC7, 0x5682, 0xECC8, 0x567F, + 0xECC9, 0x5681, 0xECCA, 0x58D6, 0xECCB, 0x58D4, 0xECCC, 0x58CF, 0xECCD, 0x58D2, 0xECCE, 0x5B2D, 0xECCF, 0x5B25, 0xECD0, 0x5B32, + 0xECD1, 0x5B23, 0xECD2, 0x5B2C, 0xECD3, 0x5B27, 0xECD4, 0x5B26, 0xECD5, 0x5B2F, 0xECD6, 0x5B2E, 0xECD7, 0x5B7B, 0xECD8, 0x5BF1, + 0xECD9, 0x5BF2, 0xECDA, 0x5DB7, 0xECDB, 0x5E6C, 0xECDC, 0x5E6A, 0xECDD, 0x5FBE, 0xECDE, 0x5FBB, 0xECDF, 0x61C3, 0xECE0, 0x61B5, + 0xECE1, 0x61BC, 0xECE2, 0x61E7, 0xECE3, 0x61E0, 0xECE4, 0x61E5, 0xECE5, 0x61E4, 0xECE6, 0x61E8, 0xECE7, 0x61DE, 0xECE8, 0x64EF, + 0xECE9, 0x64E9, 0xECEA, 0x64E3, 0xECEB, 0x64EB, 0xECEC, 0x64E4, 0xECED, 0x64E8, 0xECEE, 0x6581, 0xECEF, 0x6580, 0xECF0, 0x65B6, + 0xECF1, 0x65DA, 0xECF2, 0x66D2, 0xECF3, 0x6A8D, 0xECF4, 0x6A96, 0xECF5, 0x6A81, 0xECF6, 0x6AA5, 0xECF7, 0x6A89, 0xECF8, 0x6A9F, + 0xECF9, 0x6A9B, 0xECFA, 0x6AA1, 0xECFB, 0x6A9E, 0xECFC, 0x6A87, 0xECFD, 0x6A93, 0xECFE, 0x6A8E, 0xED40, 0x6A95, 0xED41, 0x6A83, + 0xED42, 0x6AA8, 0xED43, 0x6AA4, 0xED44, 0x6A91, 0xED45, 0x6A7F, 0xED46, 0x6AA6, 0xED47, 0x6A9A, 0xED48, 0x6A85, 0xED49, 0x6A8C, + 0xED4A, 0x6A92, 0xED4B, 0x6B5B, 0xED4C, 0x6BAD, 0xED4D, 0x6C09, 0xED4E, 0x6FCC, 0xED4F, 0x6FA9, 0xED50, 0x6FF4, 0xED51, 0x6FD4, + 0xED52, 0x6FE3, 0xED53, 0x6FDC, 0xED54, 0x6FED, 0xED55, 0x6FE7, 0xED56, 0x6FE6, 0xED57, 0x6FDE, 0xED58, 0x6FF2, 0xED59, 0x6FDD, + 0xED5A, 0x6FE2, 0xED5B, 0x6FE8, 0xED5C, 0x71E1, 0xED5D, 0x71F1, 0xED5E, 0x71E8, 0xED5F, 0x71F2, 0xED60, 0x71E4, 0xED61, 0x71F0, + 0xED62, 0x71E2, 0xED63, 0x7373, 0xED64, 0x736E, 0xED65, 0x736F, 0xED66, 0x7497, 0xED67, 0x74B2, 0xED68, 0x74AB, 0xED69, 0x7490, + 0xED6A, 0x74AA, 0xED6B, 0x74AD, 0xED6C, 0x74B1, 0xED6D, 0x74A5, 0xED6E, 0x74AF, 0xED6F, 0x7510, 0xED70, 0x7511, 0xED71, 0x7512, + 0xED72, 0x750F, 0xED73, 0x7584, 0xED74, 0x7643, 0xED75, 0x7648, 0xED76, 0x7649, 0xED77, 0x7647, 0xED78, 0x76A4, 0xED79, 0x76E9, + 0xED7A, 0x77B5, 0xED7B, 0x77AB, 0xED7C, 0x77B2, 0xED7D, 0x77B7, 0xED7E, 0x77B6, 0xEDA1, 0x77B4, 0xEDA2, 0x77B1, 0xEDA3, 0x77A8, + 0xEDA4, 0x77F0, 0xEDA5, 0x78F3, 0xEDA6, 0x78FD, 0xEDA7, 0x7902, 0xEDA8, 0x78FB, 0xEDA9, 0x78FC, 0xEDAA, 0x78F2, 0xEDAB, 0x7905, + 0xEDAC, 0x78F9, 0xEDAD, 0x78FE, 0xEDAE, 0x7904, 0xEDAF, 0x79AB, 0xEDB0, 0x79A8, 0xEDB1, 0x7A5C, 0xEDB2, 0x7A5B, 0xEDB3, 0x7A56, + 0xEDB4, 0x7A58, 0xEDB5, 0x7A54, 0xEDB6, 0x7A5A, 0xEDB7, 0x7ABE, 0xEDB8, 0x7AC0, 0xEDB9, 0x7AC1, 0xEDBA, 0x7C05, 0xEDBB, 0x7C0F, + 0xEDBC, 0x7BF2, 0xEDBD, 0x7C00, 0xEDBE, 0x7BFF, 0xEDBF, 0x7BFB, 0xEDC0, 0x7C0E, 0xEDC1, 0x7BF4, 0xEDC2, 0x7C0B, 0xEDC3, 0x7BF3, + 0xEDC4, 0x7C02, 0xEDC5, 0x7C09, 0xEDC6, 0x7C03, 0xEDC7, 0x7C01, 0xEDC8, 0x7BF8, 0xEDC9, 0x7BFD, 0xEDCA, 0x7C06, 0xEDCB, 0x7BF0, + 0xEDCC, 0x7BF1, 0xEDCD, 0x7C10, 0xEDCE, 0x7C0A, 0xEDCF, 0x7CE8, 0xEDD0, 0x7E2D, 0xEDD1, 0x7E3C, 0xEDD2, 0x7E42, 0xEDD3, 0x7E33, + 0xEDD4, 0x9848, 0xEDD5, 0x7E38, 0xEDD6, 0x7E2A, 0xEDD7, 0x7E49, 0xEDD8, 0x7E40, 0xEDD9, 0x7E47, 0xEDDA, 0x7E29, 0xEDDB, 0x7E4C, + 0xEDDC, 0x7E30, 0xEDDD, 0x7E3B, 0xEDDE, 0x7E36, 0xEDDF, 0x7E44, 0xEDE0, 0x7E3A, 0xEDE1, 0x7F45, 0xEDE2, 0x7F7F, 0xEDE3, 0x7F7E, + 0xEDE4, 0x7F7D, 0xEDE5, 0x7FF4, 0xEDE6, 0x7FF2, 0xEDE7, 0x802C, 0xEDE8, 0x81BB, 0xEDE9, 0x81C4, 0xEDEA, 0x81CC, 0xEDEB, 0x81CA, + 0xEDEC, 0x81C5, 0xEDED, 0x81C7, 0xEDEE, 0x81BC, 0xEDEF, 0x81E9, 0xEDF0, 0x825B, 0xEDF1, 0x825A, 0xEDF2, 0x825C, 0xEDF3, 0x8583, + 0xEDF4, 0x8580, 0xEDF5, 0x858F, 0xEDF6, 0x85A7, 0xEDF7, 0x8595, 0xEDF8, 0x85A0, 0xEDF9, 0x858B, 0xEDFA, 0x85A3, 0xEDFB, 0x857B, + 0xEDFC, 0x85A4, 0xEDFD, 0x859A, 0xEDFE, 0x859E, 0xEE40, 0x8577, 0xEE41, 0x857C, 0xEE42, 0x8589, 0xEE43, 0x85A1, 0xEE44, 0x857A, + 0xEE45, 0x8578, 0xEE46, 0x8557, 0xEE47, 0x858E, 0xEE48, 0x8596, 0xEE49, 0x8586, 0xEE4A, 0x858D, 0xEE4B, 0x8599, 0xEE4C, 0x859D, + 0xEE4D, 0x8581, 0xEE4E, 0x85A2, 0xEE4F, 0x8582, 0xEE50, 0x8588, 0xEE51, 0x8585, 0xEE52, 0x8579, 0xEE53, 0x8576, 0xEE54, 0x8598, + 0xEE55, 0x8590, 0xEE56, 0x859F, 0xEE57, 0x8668, 0xEE58, 0x87BE, 0xEE59, 0x87AA, 0xEE5A, 0x87AD, 0xEE5B, 0x87C5, 0xEE5C, 0x87B0, + 0xEE5D, 0x87AC, 0xEE5E, 0x87B9, 0xEE5F, 0x87B5, 0xEE60, 0x87BC, 0xEE61, 0x87AE, 0xEE62, 0x87C9, 0xEE63, 0x87C3, 0xEE64, 0x87C2, + 0xEE65, 0x87CC, 0xEE66, 0x87B7, 0xEE67, 0x87AF, 0xEE68, 0x87C4, 0xEE69, 0x87CA, 0xEE6A, 0x87B4, 0xEE6B, 0x87B6, 0xEE6C, 0x87BF, + 0xEE6D, 0x87B8, 0xEE6E, 0x87BD, 0xEE6F, 0x87DE, 0xEE70, 0x87B2, 0xEE71, 0x8935, 0xEE72, 0x8933, 0xEE73, 0x893C, 0xEE74, 0x893E, + 0xEE75, 0x8941, 0xEE76, 0x8952, 0xEE77, 0x8937, 0xEE78, 0x8942, 0xEE79, 0x89AD, 0xEE7A, 0x89AF, 0xEE7B, 0x89AE, 0xEE7C, 0x89F2, + 0xEE7D, 0x89F3, 0xEE7E, 0x8B1E, 0xEEA1, 0x8B18, 0xEEA2, 0x8B16, 0xEEA3, 0x8B11, 0xEEA4, 0x8B05, 0xEEA5, 0x8B0B, 0xEEA6, 0x8B22, + 0xEEA7, 0x8B0F, 0xEEA8, 0x8B12, 0xEEA9, 0x8B15, 0xEEAA, 0x8B07, 0xEEAB, 0x8B0D, 0xEEAC, 0x8B08, 0xEEAD, 0x8B06, 0xEEAE, 0x8B1C, + 0xEEAF, 0x8B13, 0xEEB0, 0x8B1A, 0xEEB1, 0x8C4F, 0xEEB2, 0x8C70, 0xEEB3, 0x8C72, 0xEEB4, 0x8C71, 0xEEB5, 0x8C6F, 0xEEB6, 0x8C95, + 0xEEB7, 0x8C94, 0xEEB8, 0x8CF9, 0xEEB9, 0x8D6F, 0xEEBA, 0x8E4E, 0xEEBB, 0x8E4D, 0xEEBC, 0x8E53, 0xEEBD, 0x8E50, 0xEEBE, 0x8E4C, + 0xEEBF, 0x8E47, 0xEEC0, 0x8F43, 0xEEC1, 0x8F40, 0xEEC2, 0x9085, 0xEEC3, 0x907E, 0xEEC4, 0x9138, 0xEEC5, 0x919A, 0xEEC6, 0x91A2, + 0xEEC7, 0x919B, 0xEEC8, 0x9199, 0xEEC9, 0x919F, 0xEECA, 0x91A1, 0xEECB, 0x919D, 0xEECC, 0x91A0, 0xEECD, 0x93A1, 0xEECE, 0x9383, + 0xEECF, 0x93AF, 0xEED0, 0x9364, 0xEED1, 0x9356, 0xEED2, 0x9347, 0xEED3, 0x937C, 0xEED4, 0x9358, 0xEED5, 0x935C, 0xEED6, 0x9376, + 0xEED7, 0x9349, 0xEED8, 0x9350, 0xEED9, 0x9351, 0xEEDA, 0x9360, 0xEEDB, 0x936D, 0xEEDC, 0x938F, 0xEEDD, 0x934C, 0xEEDE, 0x936A, + 0xEEDF, 0x9379, 0xEEE0, 0x9357, 0xEEE1, 0x9355, 0xEEE2, 0x9352, 0xEEE3, 0x934F, 0xEEE4, 0x9371, 0xEEE5, 0x9377, 0xEEE6, 0x937B, + 0xEEE7, 0x9361, 0xEEE8, 0x935E, 0xEEE9, 0x9363, 0xEEEA, 0x9367, 0xEEEB, 0x9380, 0xEEEC, 0x934E, 0xEEED, 0x9359, 0xEEEE, 0x95C7, + 0xEEEF, 0x95C0, 0xEEF0, 0x95C9, 0xEEF1, 0x95C3, 0xEEF2, 0x95C5, 0xEEF3, 0x95B7, 0xEEF4, 0x96AE, 0xEEF5, 0x96B0, 0xEEF6, 0x96AC, + 0xEEF7, 0x9720, 0xEEF8, 0x971F, 0xEEF9, 0x9718, 0xEEFA, 0x971D, 0xEEFB, 0x9719, 0xEEFC, 0x979A, 0xEEFD, 0x97A1, 0xEEFE, 0x979C, + 0xEF40, 0x979E, 0xEF41, 0x979D, 0xEF42, 0x97D5, 0xEF43, 0x97D4, 0xEF44, 0x97F1, 0xEF45, 0x9841, 0xEF46, 0x9844, 0xEF47, 0x984A, + 0xEF48, 0x9849, 0xEF49, 0x9845, 0xEF4A, 0x9843, 0xEF4B, 0x9925, 0xEF4C, 0x992B, 0xEF4D, 0x992C, 0xEF4E, 0x992A, 0xEF4F, 0x9933, + 0xEF50, 0x9932, 0xEF51, 0x992F, 0xEF52, 0x992D, 0xEF53, 0x9931, 0xEF54, 0x9930, 0xEF55, 0x9998, 0xEF56, 0x99A3, 0xEF57, 0x99A1, + 0xEF58, 0x9A02, 0xEF59, 0x99FA, 0xEF5A, 0x99F4, 0xEF5B, 0x99F7, 0xEF5C, 0x99F9, 0xEF5D, 0x99F8, 0xEF5E, 0x99F6, 0xEF5F, 0x99FB, + 0xEF60, 0x99FD, 0xEF61, 0x99FE, 0xEF62, 0x99FC, 0xEF63, 0x9A03, 0xEF64, 0x9ABE, 0xEF65, 0x9AFE, 0xEF66, 0x9AFD, 0xEF67, 0x9B01, + 0xEF68, 0x9AFC, 0xEF69, 0x9B48, 0xEF6A, 0x9B9A, 0xEF6B, 0x9BA8, 0xEF6C, 0x9B9E, 0xEF6D, 0x9B9B, 0xEF6E, 0x9BA6, 0xEF6F, 0x9BA1, + 0xEF70, 0x9BA5, 0xEF71, 0x9BA4, 0xEF72, 0x9B86, 0xEF73, 0x9BA2, 0xEF74, 0x9BA0, 0xEF75, 0x9BAF, 0xEF76, 0x9D33, 0xEF77, 0x9D41, + 0xEF78, 0x9D67, 0xEF79, 0x9D36, 0xEF7A, 0x9D2E, 0xEF7B, 0x9D2F, 0xEF7C, 0x9D31, 0xEF7D, 0x9D38, 0xEF7E, 0x9D30, 0xEFA1, 0x9D45, + 0xEFA2, 0x9D42, 0xEFA3, 0x9D43, 0xEFA4, 0x9D3E, 0xEFA5, 0x9D37, 0xEFA6, 0x9D40, 0xEFA7, 0x9D3D, 0xEFA8, 0x7FF5, 0xEFA9, 0x9D2D, + 0xEFAA, 0x9E8A, 0xEFAB, 0x9E89, 0xEFAC, 0x9E8D, 0xEFAD, 0x9EB0, 0xEFAE, 0x9EC8, 0xEFAF, 0x9EDA, 0xEFB0, 0x9EFB, 0xEFB1, 0x9EFF, + 0xEFB2, 0x9F24, 0xEFB3, 0x9F23, 0xEFB4, 0x9F22, 0xEFB5, 0x9F54, 0xEFB6, 0x9FA0, 0xEFB7, 0x5131, 0xEFB8, 0x512D, 0xEFB9, 0x512E, + 0xEFBA, 0x5698, 0xEFBB, 0x569C, 0xEFBC, 0x5697, 0xEFBD, 0x569A, 0xEFBE, 0x569D, 0xEFBF, 0x5699, 0xEFC0, 0x5970, 0xEFC1, 0x5B3C, + 0xEFC2, 0x5C69, 0xEFC3, 0x5C6A, 0xEFC4, 0x5DC0, 0xEFC5, 0x5E6D, 0xEFC6, 0x5E6E, 0xEFC7, 0x61D8, 0xEFC8, 0x61DF, 0xEFC9, 0x61ED, + 0xEFCA, 0x61EE, 0xEFCB, 0x61F1, 0xEFCC, 0x61EA, 0xEFCD, 0x61F0, 0xEFCE, 0x61EB, 0xEFCF, 0x61D6, 0xEFD0, 0x61E9, 0xEFD1, 0x64FF, + 0xEFD2, 0x6504, 0xEFD3, 0x64FD, 0xEFD4, 0x64F8, 0xEFD5, 0x6501, 0xEFD6, 0x6503, 0xEFD7, 0x64FC, 0xEFD8, 0x6594, 0xEFD9, 0x65DB, + 0xEFDA, 0x66DA, 0xEFDB, 0x66DB, 0xEFDC, 0x66D8, 0xEFDD, 0x6AC5, 0xEFDE, 0x6AB9, 0xEFDF, 0x6ABD, 0xEFE0, 0x6AE1, 0xEFE1, 0x6AC6, + 0xEFE2, 0x6ABA, 0xEFE3, 0x6AB6, 0xEFE4, 0x6AB7, 0xEFE5, 0x6AC7, 0xEFE6, 0x6AB4, 0xEFE7, 0x6AAD, 0xEFE8, 0x6B5E, 0xEFE9, 0x6BC9, + 0xEFEA, 0x6C0B, 0xEFEB, 0x7007, 0xEFEC, 0x700C, 0xEFED, 0x700D, 0xEFEE, 0x7001, 0xEFEF, 0x7005, 0xEFF0, 0x7014, 0xEFF1, 0x700E, + 0xEFF2, 0x6FFF, 0xEFF3, 0x7000, 0xEFF4, 0x6FFB, 0xEFF5, 0x7026, 0xEFF6, 0x6FFC, 0xEFF7, 0x6FF7, 0xEFF8, 0x700A, 0xEFF9, 0x7201, + 0xEFFA, 0x71FF, 0xEFFB, 0x71F9, 0xEFFC, 0x7203, 0xEFFD, 0x71FD, 0xEFFE, 0x7376, 0xF040, 0x74B8, 0xF041, 0x74C0, 0xF042, 0x74B5, + 0xF043, 0x74C1, 0xF044, 0x74BE, 0xF045, 0x74B6, 0xF046, 0x74BB, 0xF047, 0x74C2, 0xF048, 0x7514, 0xF049, 0x7513, 0xF04A, 0x765C, + 0xF04B, 0x7664, 0xF04C, 0x7659, 0xF04D, 0x7650, 0xF04E, 0x7653, 0xF04F, 0x7657, 0xF050, 0x765A, 0xF051, 0x76A6, 0xF052, 0x76BD, + 0xF053, 0x76EC, 0xF054, 0x77C2, 0xF055, 0x77BA, 0xF056, 0x78FF, 0xF057, 0x790C, 0xF058, 0x7913, 0xF059, 0x7914, 0xF05A, 0x7909, + 0xF05B, 0x7910, 0xF05C, 0x7912, 0xF05D, 0x7911, 0xF05E, 0x79AD, 0xF05F, 0x79AC, 0xF060, 0x7A5F, 0xF061, 0x7C1C, 0xF062, 0x7C29, + 0xF063, 0x7C19, 0xF064, 0x7C20, 0xF065, 0x7C1F, 0xF066, 0x7C2D, 0xF067, 0x7C1D, 0xF068, 0x7C26, 0xF069, 0x7C28, 0xF06A, 0x7C22, + 0xF06B, 0x7C25, 0xF06C, 0x7C30, 0xF06D, 0x7E5C, 0xF06E, 0x7E50, 0xF06F, 0x7E56, 0xF070, 0x7E63, 0xF071, 0x7E58, 0xF072, 0x7E62, + 0xF073, 0x7E5F, 0xF074, 0x7E51, 0xF075, 0x7E60, 0xF076, 0x7E57, 0xF077, 0x7E53, 0xF078, 0x7FB5, 0xF079, 0x7FB3, 0xF07A, 0x7FF7, + 0xF07B, 0x7FF8, 0xF07C, 0x8075, 0xF07D, 0x81D1, 0xF07E, 0x81D2, 0xF0A1, 0x81D0, 0xF0A2, 0x825F, 0xF0A3, 0x825E, 0xF0A4, 0x85B4, + 0xF0A5, 0x85C6, 0xF0A6, 0x85C0, 0xF0A7, 0x85C3, 0xF0A8, 0x85C2, 0xF0A9, 0x85B3, 0xF0AA, 0x85B5, 0xF0AB, 0x85BD, 0xF0AC, 0x85C7, + 0xF0AD, 0x85C4, 0xF0AE, 0x85BF, 0xF0AF, 0x85CB, 0xF0B0, 0x85CE, 0xF0B1, 0x85C8, 0xF0B2, 0x85C5, 0xF0B3, 0x85B1, 0xF0B4, 0x85B6, + 0xF0B5, 0x85D2, 0xF0B6, 0x8624, 0xF0B7, 0x85B8, 0xF0B8, 0x85B7, 0xF0B9, 0x85BE, 0xF0BA, 0x8669, 0xF0BB, 0x87E7, 0xF0BC, 0x87E6, + 0xF0BD, 0x87E2, 0xF0BE, 0x87DB, 0xF0BF, 0x87EB, 0xF0C0, 0x87EA, 0xF0C1, 0x87E5, 0xF0C2, 0x87DF, 0xF0C3, 0x87F3, 0xF0C4, 0x87E4, + 0xF0C5, 0x87D4, 0xF0C6, 0x87DC, 0xF0C7, 0x87D3, 0xF0C8, 0x87ED, 0xF0C9, 0x87D8, 0xF0CA, 0x87E3, 0xF0CB, 0x87A4, 0xF0CC, 0x87D7, + 0xF0CD, 0x87D9, 0xF0CE, 0x8801, 0xF0CF, 0x87F4, 0xF0D0, 0x87E8, 0xF0D1, 0x87DD, 0xF0D2, 0x8953, 0xF0D3, 0x894B, 0xF0D4, 0x894F, + 0xF0D5, 0x894C, 0xF0D6, 0x8946, 0xF0D7, 0x8950, 0xF0D8, 0x8951, 0xF0D9, 0x8949, 0xF0DA, 0x8B2A, 0xF0DB, 0x8B27, 0xF0DC, 0x8B23, + 0xF0DD, 0x8B33, 0xF0DE, 0x8B30, 0xF0DF, 0x8B35, 0xF0E0, 0x8B47, 0xF0E1, 0x8B2F, 0xF0E2, 0x8B3C, 0xF0E3, 0x8B3E, 0xF0E4, 0x8B31, + 0xF0E5, 0x8B25, 0xF0E6, 0x8B37, 0xF0E7, 0x8B26, 0xF0E8, 0x8B36, 0xF0E9, 0x8B2E, 0xF0EA, 0x8B24, 0xF0EB, 0x8B3B, 0xF0EC, 0x8B3D, + 0xF0ED, 0x8B3A, 0xF0EE, 0x8C42, 0xF0EF, 0x8C75, 0xF0F0, 0x8C99, 0xF0F1, 0x8C98, 0xF0F2, 0x8C97, 0xF0F3, 0x8CFE, 0xF0F4, 0x8D04, + 0xF0F5, 0x8D02, 0xF0F6, 0x8D00, 0xF0F7, 0x8E5C, 0xF0F8, 0x8E62, 0xF0F9, 0x8E60, 0xF0FA, 0x8E57, 0xF0FB, 0x8E56, 0xF0FC, 0x8E5E, + 0xF0FD, 0x8E65, 0xF0FE, 0x8E67, 0xF140, 0x8E5B, 0xF141, 0x8E5A, 0xF142, 0x8E61, 0xF143, 0x8E5D, 0xF144, 0x8E69, 0xF145, 0x8E54, + 0xF146, 0x8F46, 0xF147, 0x8F47, 0xF148, 0x8F48, 0xF149, 0x8F4B, 0xF14A, 0x9128, 0xF14B, 0x913A, 0xF14C, 0x913B, 0xF14D, 0x913E, + 0xF14E, 0x91A8, 0xF14F, 0x91A5, 0xF150, 0x91A7, 0xF151, 0x91AF, 0xF152, 0x91AA, 0xF153, 0x93B5, 0xF154, 0x938C, 0xF155, 0x9392, + 0xF156, 0x93B7, 0xF157, 0x939B, 0xF158, 0x939D, 0xF159, 0x9389, 0xF15A, 0x93A7, 0xF15B, 0x938E, 0xF15C, 0x93AA, 0xF15D, 0x939E, + 0xF15E, 0x93A6, 0xF15F, 0x9395, 0xF160, 0x9388, 0xF161, 0x9399, 0xF162, 0x939F, 0xF163, 0x938D, 0xF164, 0x93B1, 0xF165, 0x9391, + 0xF166, 0x93B2, 0xF167, 0x93A4, 0xF168, 0x93A8, 0xF169, 0x93B4, 0xF16A, 0x93A3, 0xF16B, 0x93A5, 0xF16C, 0x95D2, 0xF16D, 0x95D3, + 0xF16E, 0x95D1, 0xF16F, 0x96B3, 0xF170, 0x96D7, 0xF171, 0x96DA, 0xF172, 0x5DC2, 0xF173, 0x96DF, 0xF174, 0x96D8, 0xF175, 0x96DD, + 0xF176, 0x9723, 0xF177, 0x9722, 0xF178, 0x9725, 0xF179, 0x97AC, 0xF17A, 0x97AE, 0xF17B, 0x97A8, 0xF17C, 0x97AB, 0xF17D, 0x97A4, + 0xF17E, 0x97AA, 0xF1A1, 0x97A2, 0xF1A2, 0x97A5, 0xF1A3, 0x97D7, 0xF1A4, 0x97D9, 0xF1A5, 0x97D6, 0xF1A6, 0x97D8, 0xF1A7, 0x97FA, + 0xF1A8, 0x9850, 0xF1A9, 0x9851, 0xF1AA, 0x9852, 0xF1AB, 0x98B8, 0xF1AC, 0x9941, 0xF1AD, 0x993C, 0xF1AE, 0x993A, 0xF1AF, 0x9A0F, + 0xF1B0, 0x9A0B, 0xF1B1, 0x9A09, 0xF1B2, 0x9A0D, 0xF1B3, 0x9A04, 0xF1B4, 0x9A11, 0xF1B5, 0x9A0A, 0xF1B6, 0x9A05, 0xF1B7, 0x9A07, + 0xF1B8, 0x9A06, 0xF1B9, 0x9AC0, 0xF1BA, 0x9ADC, 0xF1BB, 0x9B08, 0xF1BC, 0x9B04, 0xF1BD, 0x9B05, 0xF1BE, 0x9B29, 0xF1BF, 0x9B35, + 0xF1C0, 0x9B4A, 0xF1C1, 0x9B4C, 0xF1C2, 0x9B4B, 0xF1C3, 0x9BC7, 0xF1C4, 0x9BC6, 0xF1C5, 0x9BC3, 0xF1C6, 0x9BBF, 0xF1C7, 0x9BC1, + 0xF1C8, 0x9BB5, 0xF1C9, 0x9BB8, 0xF1CA, 0x9BD3, 0xF1CB, 0x9BB6, 0xF1CC, 0x9BC4, 0xF1CD, 0x9BB9, 0xF1CE, 0x9BBD, 0xF1CF, 0x9D5C, + 0xF1D0, 0x9D53, 0xF1D1, 0x9D4F, 0xF1D2, 0x9D4A, 0xF1D3, 0x9D5B, 0xF1D4, 0x9D4B, 0xF1D5, 0x9D59, 0xF1D6, 0x9D56, 0xF1D7, 0x9D4C, + 0xF1D8, 0x9D57, 0xF1D9, 0x9D52, 0xF1DA, 0x9D54, 0xF1DB, 0x9D5F, 0xF1DC, 0x9D58, 0xF1DD, 0x9D5A, 0xF1DE, 0x9E8E, 0xF1DF, 0x9E8C, + 0xF1E0, 0x9EDF, 0xF1E1, 0x9F01, 0xF1E2, 0x9F00, 0xF1E3, 0x9F16, 0xF1E4, 0x9F25, 0xF1E5, 0x9F2B, 0xF1E6, 0x9F2A, 0xF1E7, 0x9F29, + 0xF1E8, 0x9F28, 0xF1E9, 0x9F4C, 0xF1EA, 0x9F55, 0xF1EB, 0x5134, 0xF1EC, 0x5135, 0xF1ED, 0x5296, 0xF1EE, 0x52F7, 0xF1EF, 0x53B4, + 0xF1F0, 0x56AB, 0xF1F1, 0x56AD, 0xF1F2, 0x56A6, 0xF1F3, 0x56A7, 0xF1F4, 0x56AA, 0xF1F5, 0x56AC, 0xF1F6, 0x58DA, 0xF1F7, 0x58DD, + 0xF1F8, 0x58DB, 0xF1F9, 0x5912, 0xF1FA, 0x5B3D, 0xF1FB, 0x5B3E, 0xF1FC, 0x5B3F, 0xF1FD, 0x5DC3, 0xF1FE, 0x5E70, 0xF240, 0x5FBF, + 0xF241, 0x61FB, 0xF242, 0x6507, 0xF243, 0x6510, 0xF244, 0x650D, 0xF245, 0x6509, 0xF246, 0x650C, 0xF247, 0x650E, 0xF248, 0x6584, + 0xF249, 0x65DE, 0xF24A, 0x65DD, 0xF24B, 0x66DE, 0xF24C, 0x6AE7, 0xF24D, 0x6AE0, 0xF24E, 0x6ACC, 0xF24F, 0x6AD1, 0xF250, 0x6AD9, + 0xF251, 0x6ACB, 0xF252, 0x6ADF, 0xF253, 0x6ADC, 0xF254, 0x6AD0, 0xF255, 0x6AEB, 0xF256, 0x6ACF, 0xF257, 0x6ACD, 0xF258, 0x6ADE, + 0xF259, 0x6B60, 0xF25A, 0x6BB0, 0xF25B, 0x6C0C, 0xF25C, 0x7019, 0xF25D, 0x7027, 0xF25E, 0x7020, 0xF25F, 0x7016, 0xF260, 0x702B, + 0xF261, 0x7021, 0xF262, 0x7022, 0xF263, 0x7023, 0xF264, 0x7029, 0xF265, 0x7017, 0xF266, 0x7024, 0xF267, 0x701C, 0xF268, 0x702A, + 0xF269, 0x720C, 0xF26A, 0x720A, 0xF26B, 0x7207, 0xF26C, 0x7202, 0xF26D, 0x7205, 0xF26E, 0x72A5, 0xF26F, 0x72A6, 0xF270, 0x72A4, + 0xF271, 0x72A3, 0xF272, 0x72A1, 0xF273, 0x74CB, 0xF274, 0x74C5, 0xF275, 0x74B7, 0xF276, 0x74C3, 0xF277, 0x7516, 0xF278, 0x7660, + 0xF279, 0x77C9, 0xF27A, 0x77CA, 0xF27B, 0x77C4, 0xF27C, 0x77F1, 0xF27D, 0x791D, 0xF27E, 0x791B, 0xF2A1, 0x7921, 0xF2A2, 0x791C, + 0xF2A3, 0x7917, 0xF2A4, 0x791E, 0xF2A5, 0x79B0, 0xF2A6, 0x7A67, 0xF2A7, 0x7A68, 0xF2A8, 0x7C33, 0xF2A9, 0x7C3C, 0xF2AA, 0x7C39, + 0xF2AB, 0x7C2C, 0xF2AC, 0x7C3B, 0xF2AD, 0x7CEC, 0xF2AE, 0x7CEA, 0xF2AF, 0x7E76, 0xF2B0, 0x7E75, 0xF2B1, 0x7E78, 0xF2B2, 0x7E70, + 0xF2B3, 0x7E77, 0xF2B4, 0x7E6F, 0xF2B5, 0x7E7A, 0xF2B6, 0x7E72, 0xF2B7, 0x7E74, 0xF2B8, 0x7E68, 0xF2B9, 0x7F4B, 0xF2BA, 0x7F4A, + 0xF2BB, 0x7F83, 0xF2BC, 0x7F86, 0xF2BD, 0x7FB7, 0xF2BE, 0x7FFD, 0xF2BF, 0x7FFE, 0xF2C0, 0x8078, 0xF2C1, 0x81D7, 0xF2C2, 0x81D5, + 0xF2C3, 0x8264, 0xF2C4, 0x8261, 0xF2C5, 0x8263, 0xF2C6, 0x85EB, 0xF2C7, 0x85F1, 0xF2C8, 0x85ED, 0xF2C9, 0x85D9, 0xF2CA, 0x85E1, + 0xF2CB, 0x85E8, 0xF2CC, 0x85DA, 0xF2CD, 0x85D7, 0xF2CE, 0x85EC, 0xF2CF, 0x85F2, 0xF2D0, 0x85F8, 0xF2D1, 0x85D8, 0xF2D2, 0x85DF, + 0xF2D3, 0x85E3, 0xF2D4, 0x85DC, 0xF2D5, 0x85D1, 0xF2D6, 0x85F0, 0xF2D7, 0x85E6, 0xF2D8, 0x85EF, 0xF2D9, 0x85DE, 0xF2DA, 0x85E2, + 0xF2DB, 0x8800, 0xF2DC, 0x87FA, 0xF2DD, 0x8803, 0xF2DE, 0x87F6, 0xF2DF, 0x87F7, 0xF2E0, 0x8809, 0xF2E1, 0x880C, 0xF2E2, 0x880B, + 0xF2E3, 0x8806, 0xF2E4, 0x87FC, 0xF2E5, 0x8808, 0xF2E6, 0x87FF, 0xF2E7, 0x880A, 0xF2E8, 0x8802, 0xF2E9, 0x8962, 0xF2EA, 0x895A, + 0xF2EB, 0x895B, 0xF2EC, 0x8957, 0xF2ED, 0x8961, 0xF2EE, 0x895C, 0xF2EF, 0x8958, 0xF2F0, 0x895D, 0xF2F1, 0x8959, 0xF2F2, 0x8988, + 0xF2F3, 0x89B7, 0xF2F4, 0x89B6, 0xF2F5, 0x89F6, 0xF2F6, 0x8B50, 0xF2F7, 0x8B48, 0xF2F8, 0x8B4A, 0xF2F9, 0x8B40, 0xF2FA, 0x8B53, + 0xF2FB, 0x8B56, 0xF2FC, 0x8B54, 0xF2FD, 0x8B4B, 0xF2FE, 0x8B55, 0xF340, 0x8B51, 0xF341, 0x8B42, 0xF342, 0x8B52, 0xF343, 0x8B57, + 0xF344, 0x8C43, 0xF345, 0x8C77, 0xF346, 0x8C76, 0xF347, 0x8C9A, 0xF348, 0x8D06, 0xF349, 0x8D07, 0xF34A, 0x8D09, 0xF34B, 0x8DAC, + 0xF34C, 0x8DAA, 0xF34D, 0x8DAD, 0xF34E, 0x8DAB, 0xF34F, 0x8E6D, 0xF350, 0x8E78, 0xF351, 0x8E73, 0xF352, 0x8E6A, 0xF353, 0x8E6F, + 0xF354, 0x8E7B, 0xF355, 0x8EC2, 0xF356, 0x8F52, 0xF357, 0x8F51, 0xF358, 0x8F4F, 0xF359, 0x8F50, 0xF35A, 0x8F53, 0xF35B, 0x8FB4, + 0xF35C, 0x9140, 0xF35D, 0x913F, 0xF35E, 0x91B0, 0xF35F, 0x91AD, 0xF360, 0x93DE, 0xF361, 0x93C7, 0xF362, 0x93CF, 0xF363, 0x93C2, + 0xF364, 0x93DA, 0xF365, 0x93D0, 0xF366, 0x93F9, 0xF367, 0x93EC, 0xF368, 0x93CC, 0xF369, 0x93D9, 0xF36A, 0x93A9, 0xF36B, 0x93E6, + 0xF36C, 0x93CA, 0xF36D, 0x93D4, 0xF36E, 0x93EE, 0xF36F, 0x93E3, 0xF370, 0x93D5, 0xF371, 0x93C4, 0xF372, 0x93CE, 0xF373, 0x93C0, + 0xF374, 0x93D2, 0xF375, 0x93E7, 0xF376, 0x957D, 0xF377, 0x95DA, 0xF378, 0x95DB, 0xF379, 0x96E1, 0xF37A, 0x9729, 0xF37B, 0x972B, + 0xF37C, 0x972C, 0xF37D, 0x9728, 0xF37E, 0x9726, 0xF3A1, 0x97B3, 0xF3A2, 0x97B7, 0xF3A3, 0x97B6, 0xF3A4, 0x97DD, 0xF3A5, 0x97DE, + 0xF3A6, 0x97DF, 0xF3A7, 0x985C, 0xF3A8, 0x9859, 0xF3A9, 0x985D, 0xF3AA, 0x9857, 0xF3AB, 0x98BF, 0xF3AC, 0x98BD, 0xF3AD, 0x98BB, + 0xF3AE, 0x98BE, 0xF3AF, 0x9948, 0xF3B0, 0x9947, 0xF3B1, 0x9943, 0xF3B2, 0x99A6, 0xF3B3, 0x99A7, 0xF3B4, 0x9A1A, 0xF3B5, 0x9A15, + 0xF3B6, 0x9A25, 0xF3B7, 0x9A1D, 0xF3B8, 0x9A24, 0xF3B9, 0x9A1B, 0xF3BA, 0x9A22, 0xF3BB, 0x9A20, 0xF3BC, 0x9A27, 0xF3BD, 0x9A23, + 0xF3BE, 0x9A1E, 0xF3BF, 0x9A1C, 0xF3C0, 0x9A14, 0xF3C1, 0x9AC2, 0xF3C2, 0x9B0B, 0xF3C3, 0x9B0A, 0xF3C4, 0x9B0E, 0xF3C5, 0x9B0C, + 0xF3C6, 0x9B37, 0xF3C7, 0x9BEA, 0xF3C8, 0x9BEB, 0xF3C9, 0x9BE0, 0xF3CA, 0x9BDE, 0xF3CB, 0x9BE4, 0xF3CC, 0x9BE6, 0xF3CD, 0x9BE2, + 0xF3CE, 0x9BF0, 0xF3CF, 0x9BD4, 0xF3D0, 0x9BD7, 0xF3D1, 0x9BEC, 0xF3D2, 0x9BDC, 0xF3D3, 0x9BD9, 0xF3D4, 0x9BE5, 0xF3D5, 0x9BD5, + 0xF3D6, 0x9BE1, 0xF3D7, 0x9BDA, 0xF3D8, 0x9D77, 0xF3D9, 0x9D81, 0xF3DA, 0x9D8A, 0xF3DB, 0x9D84, 0xF3DC, 0x9D88, 0xF3DD, 0x9D71, + 0xF3DE, 0x9D80, 0xF3DF, 0x9D78, 0xF3E0, 0x9D86, 0xF3E1, 0x9D8B, 0xF3E2, 0x9D8C, 0xF3E3, 0x9D7D, 0xF3E4, 0x9D6B, 0xF3E5, 0x9D74, + 0xF3E6, 0x9D75, 0xF3E7, 0x9D70, 0xF3E8, 0x9D69, 0xF3E9, 0x9D85, 0xF3EA, 0x9D73, 0xF3EB, 0x9D7B, 0xF3EC, 0x9D82, 0xF3ED, 0x9D6F, + 0xF3EE, 0x9D79, 0xF3EF, 0x9D7F, 0xF3F0, 0x9D87, 0xF3F1, 0x9D68, 0xF3F2, 0x9E94, 0xF3F3, 0x9E91, 0xF3F4, 0x9EC0, 0xF3F5, 0x9EFC, + 0xF3F6, 0x9F2D, 0xF3F7, 0x9F40, 0xF3F8, 0x9F41, 0xF3F9, 0x9F4D, 0xF3FA, 0x9F56, 0xF3FB, 0x9F57, 0xF3FC, 0x9F58, 0xF3FD, 0x5337, + 0xF3FE, 0x56B2, 0xF440, 0x56B5, 0xF441, 0x56B3, 0xF442, 0x58E3, 0xF443, 0x5B45, 0xF444, 0x5DC6, 0xF445, 0x5DC7, 0xF446, 0x5EEE, + 0xF447, 0x5EEF, 0xF448, 0x5FC0, 0xF449, 0x5FC1, 0xF44A, 0x61F9, 0xF44B, 0x6517, 0xF44C, 0x6516, 0xF44D, 0x6515, 0xF44E, 0x6513, + 0xF44F, 0x65DF, 0xF450, 0x66E8, 0xF451, 0x66E3, 0xF452, 0x66E4, 0xF453, 0x6AF3, 0xF454, 0x6AF0, 0xF455, 0x6AEA, 0xF456, 0x6AE8, + 0xF457, 0x6AF9, 0xF458, 0x6AF1, 0xF459, 0x6AEE, 0xF45A, 0x6AEF, 0xF45B, 0x703C, 0xF45C, 0x7035, 0xF45D, 0x702F, 0xF45E, 0x7037, + 0xF45F, 0x7034, 0xF460, 0x7031, 0xF461, 0x7042, 0xF462, 0x7038, 0xF463, 0x703F, 0xF464, 0x703A, 0xF465, 0x7039, 0xF466, 0x7040, + 0xF467, 0x703B, 0xF468, 0x7033, 0xF469, 0x7041, 0xF46A, 0x7213, 0xF46B, 0x7214, 0xF46C, 0x72A8, 0xF46D, 0x737D, 0xF46E, 0x737C, + 0xF46F, 0x74BA, 0xF470, 0x76AB, 0xF471, 0x76AA, 0xF472, 0x76BE, 0xF473, 0x76ED, 0xF474, 0x77CC, 0xF475, 0x77CE, 0xF476, 0x77CF, + 0xF477, 0x77CD, 0xF478, 0x77F2, 0xF479, 0x7925, 0xF47A, 0x7923, 0xF47B, 0x7927, 0xF47C, 0x7928, 0xF47D, 0x7924, 0xF47E, 0x7929, + 0xF4A1, 0x79B2, 0xF4A2, 0x7A6E, 0xF4A3, 0x7A6C, 0xF4A4, 0x7A6D, 0xF4A5, 0x7AF7, 0xF4A6, 0x7C49, 0xF4A7, 0x7C48, 0xF4A8, 0x7C4A, + 0xF4A9, 0x7C47, 0xF4AA, 0x7C45, 0xF4AB, 0x7CEE, 0xF4AC, 0x7E7B, 0xF4AD, 0x7E7E, 0xF4AE, 0x7E81, 0xF4AF, 0x7E80, 0xF4B0, 0x7FBA, + 0xF4B1, 0x7FFF, 0xF4B2, 0x8079, 0xF4B3, 0x81DB, 0xF4B4, 0x81D9, 0xF4B5, 0x820B, 0xF4B6, 0x8268, 0xF4B7, 0x8269, 0xF4B8, 0x8622, + 0xF4B9, 0x85FF, 0xF4BA, 0x8601, 0xF4BB, 0x85FE, 0xF4BC, 0x861B, 0xF4BD, 0x8600, 0xF4BE, 0x85F6, 0xF4BF, 0x8604, 0xF4C0, 0x8609, + 0xF4C1, 0x8605, 0xF4C2, 0x860C, 0xF4C3, 0x85FD, 0xF4C4, 0x8819, 0xF4C5, 0x8810, 0xF4C6, 0x8811, 0xF4C7, 0x8817, 0xF4C8, 0x8813, + 0xF4C9, 0x8816, 0xF4CA, 0x8963, 0xF4CB, 0x8966, 0xF4CC, 0x89B9, 0xF4CD, 0x89F7, 0xF4CE, 0x8B60, 0xF4CF, 0x8B6A, 0xF4D0, 0x8B5D, + 0xF4D1, 0x8B68, 0xF4D2, 0x8B63, 0xF4D3, 0x8B65, 0xF4D4, 0x8B67, 0xF4D5, 0x8B6D, 0xF4D6, 0x8DAE, 0xF4D7, 0x8E86, 0xF4D8, 0x8E88, + 0xF4D9, 0x8E84, 0xF4DA, 0x8F59, 0xF4DB, 0x8F56, 0xF4DC, 0x8F57, 0xF4DD, 0x8F55, 0xF4DE, 0x8F58, 0xF4DF, 0x8F5A, 0xF4E0, 0x908D, + 0xF4E1, 0x9143, 0xF4E2, 0x9141, 0xF4E3, 0x91B7, 0xF4E4, 0x91B5, 0xF4E5, 0x91B2, 0xF4E6, 0x91B3, 0xF4E7, 0x940B, 0xF4E8, 0x9413, + 0xF4E9, 0x93FB, 0xF4EA, 0x9420, 0xF4EB, 0x940F, 0xF4EC, 0x9414, 0xF4ED, 0x93FE, 0xF4EE, 0x9415, 0xF4EF, 0x9410, 0xF4F0, 0x9428, + 0xF4F1, 0x9419, 0xF4F2, 0x940D, 0xF4F3, 0x93F5, 0xF4F4, 0x9400, 0xF4F5, 0x93F7, 0xF4F6, 0x9407, 0xF4F7, 0x940E, 0xF4F8, 0x9416, + 0xF4F9, 0x9412, 0xF4FA, 0x93FA, 0xF4FB, 0x9409, 0xF4FC, 0x93F8, 0xF4FD, 0x940A, 0xF4FE, 0x93FF, 0xF540, 0x93FC, 0xF541, 0x940C, + 0xF542, 0x93F6, 0xF543, 0x9411, 0xF544, 0x9406, 0xF545, 0x95DE, 0xF546, 0x95E0, 0xF547, 0x95DF, 0xF548, 0x972E, 0xF549, 0x972F, + 0xF54A, 0x97B9, 0xF54B, 0x97BB, 0xF54C, 0x97FD, 0xF54D, 0x97FE, 0xF54E, 0x9860, 0xF54F, 0x9862, 0xF550, 0x9863, 0xF551, 0x985F, + 0xF552, 0x98C1, 0xF553, 0x98C2, 0xF554, 0x9950, 0xF555, 0x994E, 0xF556, 0x9959, 0xF557, 0x994C, 0xF558, 0x994B, 0xF559, 0x9953, + 0xF55A, 0x9A32, 0xF55B, 0x9A34, 0xF55C, 0x9A31, 0xF55D, 0x9A2C, 0xF55E, 0x9A2A, 0xF55F, 0x9A36, 0xF560, 0x9A29, 0xF561, 0x9A2E, + 0xF562, 0x9A38, 0xF563, 0x9A2D, 0xF564, 0x9AC7, 0xF565, 0x9ACA, 0xF566, 0x9AC6, 0xF567, 0x9B10, 0xF568, 0x9B12, 0xF569, 0x9B11, + 0xF56A, 0x9C0B, 0xF56B, 0x9C08, 0xF56C, 0x9BF7, 0xF56D, 0x9C05, 0xF56E, 0x9C12, 0xF56F, 0x9BF8, 0xF570, 0x9C40, 0xF571, 0x9C07, + 0xF572, 0x9C0E, 0xF573, 0x9C06, 0xF574, 0x9C17, 0xF575, 0x9C14, 0xF576, 0x9C09, 0xF577, 0x9D9F, 0xF578, 0x9D99, 0xF579, 0x9DA4, + 0xF57A, 0x9D9D, 0xF57B, 0x9D92, 0xF57C, 0x9D98, 0xF57D, 0x9D90, 0xF57E, 0x9D9B, 0xF5A1, 0x9DA0, 0xF5A2, 0x9D94, 0xF5A3, 0x9D9C, + 0xF5A4, 0x9DAA, 0xF5A5, 0x9D97, 0xF5A6, 0x9DA1, 0xF5A7, 0x9D9A, 0xF5A8, 0x9DA2, 0xF5A9, 0x9DA8, 0xF5AA, 0x9D9E, 0xF5AB, 0x9DA3, + 0xF5AC, 0x9DBF, 0xF5AD, 0x9DA9, 0xF5AE, 0x9D96, 0xF5AF, 0x9DA6, 0xF5B0, 0x9DA7, 0xF5B1, 0x9E99, 0xF5B2, 0x9E9B, 0xF5B3, 0x9E9A, + 0xF5B4, 0x9EE5, 0xF5B5, 0x9EE4, 0xF5B6, 0x9EE7, 0xF5B7, 0x9EE6, 0xF5B8, 0x9F30, 0xF5B9, 0x9F2E, 0xF5BA, 0x9F5B, 0xF5BB, 0x9F60, + 0xF5BC, 0x9F5E, 0xF5BD, 0x9F5D, 0xF5BE, 0x9F59, 0xF5BF, 0x9F91, 0xF5C0, 0x513A, 0xF5C1, 0x5139, 0xF5C2, 0x5298, 0xF5C3, 0x5297, + 0xF5C4, 0x56C3, 0xF5C5, 0x56BD, 0xF5C6, 0x56BE, 0xF5C7, 0x5B48, 0xF5C8, 0x5B47, 0xF5C9, 0x5DCB, 0xF5CA, 0x5DCF, 0xF5CB, 0x5EF1, + 0xF5CC, 0x61FD, 0xF5CD, 0x651B, 0xF5CE, 0x6B02, 0xF5CF, 0x6AFC, 0xF5D0, 0x6B03, 0xF5D1, 0x6AF8, 0xF5D2, 0x6B00, 0xF5D3, 0x7043, + 0xF5D4, 0x7044, 0xF5D5, 0x704A, 0xF5D6, 0x7048, 0xF5D7, 0x7049, 0xF5D8, 0x7045, 0xF5D9, 0x7046, 0xF5DA, 0x721D, 0xF5DB, 0x721A, + 0xF5DC, 0x7219, 0xF5DD, 0x737E, 0xF5DE, 0x7517, 0xF5DF, 0x766A, 0xF5E0, 0x77D0, 0xF5E1, 0x792D, 0xF5E2, 0x7931, 0xF5E3, 0x792F, + 0xF5E4, 0x7C54, 0xF5E5, 0x7C53, 0xF5E6, 0x7CF2, 0xF5E7, 0x7E8A, 0xF5E8, 0x7E87, 0xF5E9, 0x7E88, 0xF5EA, 0x7E8B, 0xF5EB, 0x7E86, + 0xF5EC, 0x7E8D, 0xF5ED, 0x7F4D, 0xF5EE, 0x7FBB, 0xF5EF, 0x8030, 0xF5F0, 0x81DD, 0xF5F1, 0x8618, 0xF5F2, 0x862A, 0xF5F3, 0x8626, + 0xF5F4, 0x861F, 0xF5F5, 0x8623, 0xF5F6, 0x861C, 0xF5F7, 0x8619, 0xF5F8, 0x8627, 0xF5F9, 0x862E, 0xF5FA, 0x8621, 0xF5FB, 0x8620, + 0xF5FC, 0x8629, 0xF5FD, 0x861E, 0xF5FE, 0x8625, 0xF640, 0x8829, 0xF641, 0x881D, 0xF642, 0x881B, 0xF643, 0x8820, 0xF644, 0x8824, + 0xF645, 0x881C, 0xF646, 0x882B, 0xF647, 0x884A, 0xF648, 0x896D, 0xF649, 0x8969, 0xF64A, 0x896E, 0xF64B, 0x896B, 0xF64C, 0x89FA, + 0xF64D, 0x8B79, 0xF64E, 0x8B78, 0xF64F, 0x8B45, 0xF650, 0x8B7A, 0xF651, 0x8B7B, 0xF652, 0x8D10, 0xF653, 0x8D14, 0xF654, 0x8DAF, + 0xF655, 0x8E8E, 0xF656, 0x8E8C, 0xF657, 0x8F5E, 0xF658, 0x8F5B, 0xF659, 0x8F5D, 0xF65A, 0x9146, 0xF65B, 0x9144, 0xF65C, 0x9145, + 0xF65D, 0x91B9, 0xF65E, 0x943F, 0xF65F, 0x943B, 0xF660, 0x9436, 0xF661, 0x9429, 0xF662, 0x943D, 0xF663, 0x943C, 0xF664, 0x9430, + 0xF665, 0x9439, 0xF666, 0x942A, 0xF667, 0x9437, 0xF668, 0x942C, 0xF669, 0x9440, 0xF66A, 0x9431, 0xF66B, 0x95E5, 0xF66C, 0x95E4, + 0xF66D, 0x95E3, 0xF66E, 0x9735, 0xF66F, 0x973A, 0xF670, 0x97BF, 0xF671, 0x97E1, 0xF672, 0x9864, 0xF673, 0x98C9, 0xF674, 0x98C6, + 0xF675, 0x98C0, 0xF676, 0x9958, 0xF677, 0x9956, 0xF678, 0x9A39, 0xF679, 0x9A3D, 0xF67A, 0x9A46, 0xF67B, 0x9A44, 0xF67C, 0x9A42, + 0xF67D, 0x9A41, 0xF67E, 0x9A3A, 0xF6A1, 0x9A3F, 0xF6A2, 0x9ACD, 0xF6A3, 0x9B15, 0xF6A4, 0x9B17, 0xF6A5, 0x9B18, 0xF6A6, 0x9B16, + 0xF6A7, 0x9B3A, 0xF6A8, 0x9B52, 0xF6A9, 0x9C2B, 0xF6AA, 0x9C1D, 0xF6AB, 0x9C1C, 0xF6AC, 0x9C2C, 0xF6AD, 0x9C23, 0xF6AE, 0x9C28, + 0xF6AF, 0x9C29, 0xF6B0, 0x9C24, 0xF6B1, 0x9C21, 0xF6B2, 0x9DB7, 0xF6B3, 0x9DB6, 0xF6B4, 0x9DBC, 0xF6B5, 0x9DC1, 0xF6B6, 0x9DC7, + 0xF6B7, 0x9DCA, 0xF6B8, 0x9DCF, 0xF6B9, 0x9DBE, 0xF6BA, 0x9DC5, 0xF6BB, 0x9DC3, 0xF6BC, 0x9DBB, 0xF6BD, 0x9DB5, 0xF6BE, 0x9DCE, + 0xF6BF, 0x9DB9, 0xF6C0, 0x9DBA, 0xF6C1, 0x9DAC, 0xF6C2, 0x9DC8, 0xF6C3, 0x9DB1, 0xF6C4, 0x9DAD, 0xF6C5, 0x9DCC, 0xF6C6, 0x9DB3, + 0xF6C7, 0x9DCD, 0xF6C8, 0x9DB2, 0xF6C9, 0x9E7A, 0xF6CA, 0x9E9C, 0xF6CB, 0x9EEB, 0xF6CC, 0x9EEE, 0xF6CD, 0x9EED, 0xF6CE, 0x9F1B, + 0xF6CF, 0x9F18, 0xF6D0, 0x9F1A, 0xF6D1, 0x9F31, 0xF6D2, 0x9F4E, 0xF6D3, 0x9F65, 0xF6D4, 0x9F64, 0xF6D5, 0x9F92, 0xF6D6, 0x4EB9, + 0xF6D7, 0x56C6, 0xF6D8, 0x56C5, 0xF6D9, 0x56CB, 0xF6DA, 0x5971, 0xF6DB, 0x5B4B, 0xF6DC, 0x5B4C, 0xF6DD, 0x5DD5, 0xF6DE, 0x5DD1, + 0xF6DF, 0x5EF2, 0xF6E0, 0x6521, 0xF6E1, 0x6520, 0xF6E2, 0x6526, 0xF6E3, 0x6522, 0xF6E4, 0x6B0B, 0xF6E5, 0x6B08, 0xF6E6, 0x6B09, + 0xF6E7, 0x6C0D, 0xF6E8, 0x7055, 0xF6E9, 0x7056, 0xF6EA, 0x7057, 0xF6EB, 0x7052, 0xF6EC, 0x721E, 0xF6ED, 0x721F, 0xF6EE, 0x72A9, + 0xF6EF, 0x737F, 0xF6F0, 0x74D8, 0xF6F1, 0x74D5, 0xF6F2, 0x74D9, 0xF6F3, 0x74D7, 0xF6F4, 0x766D, 0xF6F5, 0x76AD, 0xF6F6, 0x7935, + 0xF6F7, 0x79B4, 0xF6F8, 0x7A70, 0xF6F9, 0x7A71, 0xF6FA, 0x7C57, 0xF6FB, 0x7C5C, 0xF6FC, 0x7C59, 0xF6FD, 0x7C5B, 0xF6FE, 0x7C5A, + 0xF740, 0x7CF4, 0xF741, 0x7CF1, 0xF742, 0x7E91, 0xF743, 0x7F4F, 0xF744, 0x7F87, 0xF745, 0x81DE, 0xF746, 0x826B, 0xF747, 0x8634, + 0xF748, 0x8635, 0xF749, 0x8633, 0xF74A, 0x862C, 0xF74B, 0x8632, 0xF74C, 0x8636, 0xF74D, 0x882C, 0xF74E, 0x8828, 0xF74F, 0x8826, + 0xF750, 0x882A, 0xF751, 0x8825, 0xF752, 0x8971, 0xF753, 0x89BF, 0xF754, 0x89BE, 0xF755, 0x89FB, 0xF756, 0x8B7E, 0xF757, 0x8B84, + 0xF758, 0x8B82, 0xF759, 0x8B86, 0xF75A, 0x8B85, 0xF75B, 0x8B7F, 0xF75C, 0x8D15, 0xF75D, 0x8E95, 0xF75E, 0x8E94, 0xF75F, 0x8E9A, + 0xF760, 0x8E92, 0xF761, 0x8E90, 0xF762, 0x8E96, 0xF763, 0x8E97, 0xF764, 0x8F60, 0xF765, 0x8F62, 0xF766, 0x9147, 0xF767, 0x944C, + 0xF768, 0x9450, 0xF769, 0x944A, 0xF76A, 0x944B, 0xF76B, 0x944F, 0xF76C, 0x9447, 0xF76D, 0x9445, 0xF76E, 0x9448, 0xF76F, 0x9449, + 0xF770, 0x9446, 0xF771, 0x973F, 0xF772, 0x97E3, 0xF773, 0x986A, 0xF774, 0x9869, 0xF775, 0x98CB, 0xF776, 0x9954, 0xF777, 0x995B, + 0xF778, 0x9A4E, 0xF779, 0x9A53, 0xF77A, 0x9A54, 0xF77B, 0x9A4C, 0xF77C, 0x9A4F, 0xF77D, 0x9A48, 0xF77E, 0x9A4A, 0xF7A1, 0x9A49, + 0xF7A2, 0x9A52, 0xF7A3, 0x9A50, 0xF7A4, 0x9AD0, 0xF7A5, 0x9B19, 0xF7A6, 0x9B2B, 0xF7A7, 0x9B3B, 0xF7A8, 0x9B56, 0xF7A9, 0x9B55, + 0xF7AA, 0x9C46, 0xF7AB, 0x9C48, 0xF7AC, 0x9C3F, 0xF7AD, 0x9C44, 0xF7AE, 0x9C39, 0xF7AF, 0x9C33, 0xF7B0, 0x9C41, 0xF7B1, 0x9C3C, + 0xF7B2, 0x9C37, 0xF7B3, 0x9C34, 0xF7B4, 0x9C32, 0xF7B5, 0x9C3D, 0xF7B6, 0x9C36, 0xF7B7, 0x9DDB, 0xF7B8, 0x9DD2, 0xF7B9, 0x9DDE, + 0xF7BA, 0x9DDA, 0xF7BB, 0x9DCB, 0xF7BC, 0x9DD0, 0xF7BD, 0x9DDC, 0xF7BE, 0x9DD1, 0xF7BF, 0x9DDF, 0xF7C0, 0x9DE9, 0xF7C1, 0x9DD9, + 0xF7C2, 0x9DD8, 0xF7C3, 0x9DD6, 0xF7C4, 0x9DF5, 0xF7C5, 0x9DD5, 0xF7C6, 0x9DDD, 0xF7C7, 0x9EB6, 0xF7C8, 0x9EF0, 0xF7C9, 0x9F35, + 0xF7CA, 0x9F33, 0xF7CB, 0x9F32, 0xF7CC, 0x9F42, 0xF7CD, 0x9F6B, 0xF7CE, 0x9F95, 0xF7CF, 0x9FA2, 0xF7D0, 0x513D, 0xF7D1, 0x5299, + 0xF7D2, 0x58E8, 0xF7D3, 0x58E7, 0xF7D4, 0x5972, 0xF7D5, 0x5B4D, 0xF7D6, 0x5DD8, 0xF7D7, 0x882F, 0xF7D8, 0x5F4F, 0xF7D9, 0x6201, + 0xF7DA, 0x6203, 0xF7DB, 0x6204, 0xF7DC, 0x6529, 0xF7DD, 0x6525, 0xF7DE, 0x6596, 0xF7DF, 0x66EB, 0xF7E0, 0x6B11, 0xF7E1, 0x6B12, + 0xF7E2, 0x6B0F, 0xF7E3, 0x6BCA, 0xF7E4, 0x705B, 0xF7E5, 0x705A, 0xF7E6, 0x7222, 0xF7E7, 0x7382, 0xF7E8, 0x7381, 0xF7E9, 0x7383, + 0xF7EA, 0x7670, 0xF7EB, 0x77D4, 0xF7EC, 0x7C67, 0xF7ED, 0x7C66, 0xF7EE, 0x7E95, 0xF7EF, 0x826C, 0xF7F0, 0x863A, 0xF7F1, 0x8640, + 0xF7F2, 0x8639, 0xF7F3, 0x863C, 0xF7F4, 0x8631, 0xF7F5, 0x863B, 0xF7F6, 0x863E, 0xF7F7, 0x8830, 0xF7F8, 0x8832, 0xF7F9, 0x882E, + 0xF7FA, 0x8833, 0xF7FB, 0x8976, 0xF7FC, 0x8974, 0xF7FD, 0x8973, 0xF7FE, 0x89FE, 0xF840, 0x8B8C, 0xF841, 0x8B8E, 0xF842, 0x8B8B, + 0xF843, 0x8B88, 0xF844, 0x8C45, 0xF845, 0x8D19, 0xF846, 0x8E98, 0xF847, 0x8F64, 0xF848, 0x8F63, 0xF849, 0x91BC, 0xF84A, 0x9462, + 0xF84B, 0x9455, 0xF84C, 0x945D, 0xF84D, 0x9457, 0xF84E, 0x945E, 0xF84F, 0x97C4, 0xF850, 0x97C5, 0xF851, 0x9800, 0xF852, 0x9A56, + 0xF853, 0x9A59, 0xF854, 0x9B1E, 0xF855, 0x9B1F, 0xF856, 0x9B20, 0xF857, 0x9C52, 0xF858, 0x9C58, 0xF859, 0x9C50, 0xF85A, 0x9C4A, + 0xF85B, 0x9C4D, 0xF85C, 0x9C4B, 0xF85D, 0x9C55, 0xF85E, 0x9C59, 0xF85F, 0x9C4C, 0xF860, 0x9C4E, 0xF861, 0x9DFB, 0xF862, 0x9DF7, + 0xF863, 0x9DEF, 0xF864, 0x9DE3, 0xF865, 0x9DEB, 0xF866, 0x9DF8, 0xF867, 0x9DE4, 0xF868, 0x9DF6, 0xF869, 0x9DE1, 0xF86A, 0x9DEE, + 0xF86B, 0x9DE6, 0xF86C, 0x9DF2, 0xF86D, 0x9DF0, 0xF86E, 0x9DE2, 0xF86F, 0x9DEC, 0xF870, 0x9DF4, 0xF871, 0x9DF3, 0xF872, 0x9DE8, + 0xF873, 0x9DED, 0xF874, 0x9EC2, 0xF875, 0x9ED0, 0xF876, 0x9EF2, 0xF877, 0x9EF3, 0xF878, 0x9F06, 0xF879, 0x9F1C, 0xF87A, 0x9F38, + 0xF87B, 0x9F37, 0xF87C, 0x9F36, 0xF87D, 0x9F43, 0xF87E, 0x9F4F, 0xF8A1, 0x9F71, 0xF8A2, 0x9F70, 0xF8A3, 0x9F6E, 0xF8A4, 0x9F6F, + 0xF8A5, 0x56D3, 0xF8A6, 0x56CD, 0xF8A7, 0x5B4E, 0xF8A8, 0x5C6D, 0xF8A9, 0x652D, 0xF8AA, 0x66ED, 0xF8AB, 0x66EE, 0xF8AC, 0x6B13, + 0xF8AD, 0x705F, 0xF8AE, 0x7061, 0xF8AF, 0x705D, 0xF8B0, 0x7060, 0xF8B1, 0x7223, 0xF8B2, 0x74DB, 0xF8B3, 0x74E5, 0xF8B4, 0x77D5, + 0xF8B5, 0x7938, 0xF8B6, 0x79B7, 0xF8B7, 0x79B6, 0xF8B8, 0x7C6A, 0xF8B9, 0x7E97, 0xF8BA, 0x7F89, 0xF8BB, 0x826D, 0xF8BC, 0x8643, + 0xF8BD, 0x8838, 0xF8BE, 0x8837, 0xF8BF, 0x8835, 0xF8C0, 0x884B, 0xF8C1, 0x8B94, 0xF8C2, 0x8B95, 0xF8C3, 0x8E9E, 0xF8C4, 0x8E9F, + 0xF8C5, 0x8EA0, 0xF8C6, 0x8E9D, 0xF8C7, 0x91BE, 0xF8C8, 0x91BD, 0xF8C9, 0x91C2, 0xF8CA, 0x946B, 0xF8CB, 0x9468, 0xF8CC, 0x9469, + 0xF8CD, 0x96E5, 0xF8CE, 0x9746, 0xF8CF, 0x9743, 0xF8D0, 0x9747, 0xF8D1, 0x97C7, 0xF8D2, 0x97E5, 0xF8D3, 0x9A5E, 0xF8D4, 0x9AD5, + 0xF8D5, 0x9B59, 0xF8D6, 0x9C63, 0xF8D7, 0x9C67, 0xF8D8, 0x9C66, 0xF8D9, 0x9C62, 0xF8DA, 0x9C5E, 0xF8DB, 0x9C60, 0xF8DC, 0x9E02, + 0xF8DD, 0x9DFE, 0xF8DE, 0x9E07, 0xF8DF, 0x9E03, 0xF8E0, 0x9E06, 0xF8E1, 0x9E05, 0xF8E2, 0x9E00, 0xF8E3, 0x9E01, 0xF8E4, 0x9E09, + 0xF8E5, 0x9DFF, 0xF8E6, 0x9DFD, 0xF8E7, 0x9E04, 0xF8E8, 0x9EA0, 0xF8E9, 0x9F1E, 0xF8EA, 0x9F46, 0xF8EB, 0x9F74, 0xF8EC, 0x9F75, + 0xF8ED, 0x9F76, 0xF8EE, 0x56D4, 0xF8EF, 0x652E, 0xF8F0, 0x65B8, 0xF8F1, 0x6B18, 0xF8F2, 0x6B19, 0xF8F3, 0x6B17, 0xF8F4, 0x6B1A, + 0xF8F5, 0x7062, 0xF8F6, 0x7226, 0xF8F7, 0x72AA, 0xF8F8, 0x77D8, 0xF8F9, 0x77D9, 0xF8FA, 0x7939, 0xF8FB, 0x7C69, 0xF8FC, 0x7C6B, + 0xF8FD, 0x7CF6, 0xF8FE, 0x7E9A, 0xF940, 0x7E98, 0xF941, 0x7E9B, 0xF942, 0x7E99, 0xF943, 0x81E0, 0xF944, 0x81E1, 0xF945, 0x8646, + 0xF946, 0x8647, 0xF947, 0x8648, 0xF948, 0x8979, 0xF949, 0x897A, 0xF94A, 0x897C, 0xF94B, 0x897B, 0xF94C, 0x89FF, 0xF94D, 0x8B98, + 0xF94E, 0x8B99, 0xF94F, 0x8EA5, 0xF950, 0x8EA4, 0xF951, 0x8EA3, 0xF952, 0x946E, 0xF953, 0x946D, 0xF954, 0x946F, 0xF955, 0x9471, + 0xF956, 0x9473, 0xF957, 0x9749, 0xF958, 0x9872, 0xF959, 0x995F, 0xF95A, 0x9C68, 0xF95B, 0x9C6E, 0xF95C, 0x9C6D, 0xF95D, 0x9E0B, + 0xF95E, 0x9E0D, 0xF95F, 0x9E10, 0xF960, 0x9E0F, 0xF961, 0x9E12, 0xF962, 0x9E11, 0xF963, 0x9EA1, 0xF964, 0x9EF5, 0xF965, 0x9F09, + 0xF966, 0x9F47, 0xF967, 0x9F78, 0xF968, 0x9F7B, 0xF969, 0x9F7A, 0xF96A, 0x9F79, 0xF96B, 0x571E, 0xF96C, 0x7066, 0xF96D, 0x7C6F, + 0xF96E, 0x883C, 0xF96F, 0x8DB2, 0xF970, 0x8EA6, 0xF971, 0x91C3, 0xF972, 0x9474, 0xF973, 0x9478, 0xF974, 0x9476, 0xF975, 0x9475, + 0xF976, 0x9A60, 0xF977, 0x9C74, 0xF978, 0x9C73, 0xF979, 0x9C71, 0xF97A, 0x9C75, 0xF97B, 0x9E14, 0xF97C, 0x9E13, 0xF97D, 0x9EF6, + 0xF97E, 0x9F0A, 0xF9A1, 0x9FA4, 0xF9A2, 0x7068, 0xF9A3, 0x7065, 0xF9A4, 0x7CF7, 0xF9A5, 0x866A, 0xF9A6, 0x883E, 0xF9A7, 0x883D, + 0xF9A8, 0x883F, 0xF9A9, 0x8B9E, 0xF9AA, 0x8C9C, 0xF9AB, 0x8EA9, 0xF9AC, 0x8EC9, 0xF9AD, 0x974B, 0xF9AE, 0x9873, 0xF9AF, 0x9874, + 0xF9B0, 0x98CC, 0xF9B1, 0x9961, 0xF9B2, 0x99AB, 0xF9B3, 0x9A64, 0xF9B4, 0x9A66, 0xF9B5, 0x9A67, 0xF9B6, 0x9B24, 0xF9B7, 0x9E15, + 0xF9B8, 0x9E17, 0xF9B9, 0x9F48, 0xF9BA, 0x6207, 0xF9BB, 0x6B1E, 0xF9BC, 0x7227, 0xF9BD, 0x864C, 0xF9BE, 0x8EA8, 0xF9BF, 0x9482, + 0xF9C0, 0x9480, 0xF9C1, 0x9481, 0xF9C2, 0x9A69, 0xF9C3, 0x9A68, 0xF9C4, 0x9B2E, 0xF9C5, 0x9E19, 0xF9C6, 0x7229, 0xF9C7, 0x864B, + 0xF9C8, 0x8B9F, 0xF9C9, 0x9483, 0xF9CA, 0x9C79, 0xF9CB, 0x9EB7, 0xF9CC, 0x7675, 0xF9CD, 0x9A6B, 0xF9CE, 0x9C7A, 0xF9CF, 0x9E1D, + 0xF9D0, 0x7069, 0xF9D1, 0x706A, 0xF9D2, 0x9EA4, 0xF9D3, 0x9F7E, 0xF9D4, 0x9F49, 0xF9D5, 0x9F98, 0xF9D6, 0x7881, 0xF9D7, 0x92B9, + 0xF9D8, 0x88CF, 0xF9D9, 0x58BB, 0xF9DA, 0x6052, 0xF9DB, 0x7CA7, 0xF9DC, 0x5AFA, 0xF9DD, 0x2554, 0xF9DE, 0x2566, 0xF9DF, 0x2557, + 0xF9E0, 0x2560, 0xF9E1, 0x256C, 0xF9E2, 0x2563, 0xF9E3, 0x255A, 0xF9E4, 0x2569, 0xF9E5, 0x255D, 0xF9E6, 0x2552, 0xF9E7, 0x2564, + 0xF9E8, 0x2555, 0xF9E9, 0x255E, 0xF9EA, 0x256A, 0xF9EB, 0x2561, 0xF9EC, 0x2558, 0xF9ED, 0x2567, 0xF9EE, 0x255B, 0xF9EF, 0x2553, + 0xF9F0, 0x2565, 0xF9F1, 0x2556, 0xF9F2, 0x255F, 0xF9F3, 0x256B, 0xF9F4, 0x2562, 0xF9F5, 0x2559, 0xF9F6, 0x2568, 0xF9F7, 0x255C, + 0xF9F8, 0x2551, 0xF9F9, 0x2550, 0xF9FA, 0x256D, 0xF9FB, 0x256E, 0xF9FC, 0x2570, 0xF9FD, 0x256F, 0xF9FE, 0x2593, 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 437 || FF_CODE_PAGE == 0 +static +const WCHAR uc437[] = { /* CP437(U.S.) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 720 || FF_CODE_PAGE == 0 +static +const WCHAR uc720[] = { /* CP720(Arabic) to Unicode conversion table */ + 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9, 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, + 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 737 || FF_CODE_PAGE == 0 +static +const WCHAR uc737[] = { /* CP737(Greek) to Unicode conversion table */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, + 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, + 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, + 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 771 || FF_CODE_PAGE == 0 +static +const WCHAR uc771[] = { /* CP771(KBL) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x0104, 0x0105, 0x010C, 0x010D, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0118, 0x0119, 0x0116, 0x0117, 0x012E, 0x012F, 0x0160, 0x0161, 0x0172, 0x0173, 0x016A, 0x016B, 0x017D, 0x017E, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 775 || FF_CODE_PAGE == 0 +static +const WCHAR uc775[] = { /* CP775(Baltic) to Unicode conversion table */ + 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, + 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, + 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, + 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 850 || FF_CODE_PAGE == 0 +static +const WCHAR uc850[] = { /* CP850(Latin 1) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 852 || FF_CODE_PAGE == 0 +static +const WCHAR uc852[] = { /* CP852(Latin 2) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, + 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, + 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 855 || FF_CODE_PAGE == 0 +static +const WCHAR uc855[] = { /* CP855(Cyrillic) to Unicode conversion table */ + 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, + 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, + 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, + 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, + 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 857 || FF_CODE_PAGE == 0 +static +const WCHAR uc857[] = { /* CP857(Turkish) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000, 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 860 || FF_CODE_PAGE == 0 +static +const WCHAR uc860[] = { /* CP860(Portuguese) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, + 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 861 || FF_CODE_PAGE == 0 +static +const WCHAR uc861[] = { /* CP861(Icelandic) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 862 || FF_CODE_PAGE == 0 +static +const WCHAR uc862[] = { /* CP862(Hebrew) to Unicode conversion table */ + 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 863 || FF_CODE_PAGE == 0 +static +const WCHAR uc863[] = { /* CP863(Canadian French) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x2017, 0x00C0, + 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, + 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00BB, 0x00B3, 0x00AF, 0x00CE, 0x3210, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2219, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 864 || FF_CODE_PAGE == 0 +static +const WCHAR uc864[] = { /* CP864(Arabic) to Unicode conversion table */ + 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, + 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, 0x00BB, 0xFEF7, 0xFEF8, 0x0000, 0x0000, 0xFEFB, 0xFEFC, 0x0000, + 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0x0000, 0x20AC, 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, + 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, + 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, + 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, + 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, 0x0000 +}; +#endif +#if FF_CODE_PAGE == 865 || FF_CODE_PAGE == 0 +static +const WCHAR uc865[] = { /* CP865(Nordic) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C5, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 866 || FF_CODE_PAGE == 0 +static +const WCHAR uc866[] = { /* CP866(Russian) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 869 || FF_CODE_PAGE == 0 +static +const WCHAR uc869[] = { /* CP869(Greek 2) to Unicode conversion table */ + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x0386, 0x00B7, 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, + 0x038A, 0x03AA, 0x038C, 0x00B7, 0x00B7, 0x038E, 0x03AB, 0x00A9, 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, + 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0A30, 0x03A1, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, + 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, + 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, + 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 +}; +#endif + + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for static code page configuration */ +/* SBCS fixed code page */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE != 0 && FF_CODE_PAGE < 900 +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + WCHAR c = 0; + const WCHAR *p = CVTBL(uc, FF_CODE_PAGE); + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000 && cp == FF_CODE_PAGE) { /* Is it a valid code? */ + for (c = 0; c < 0x80 && uni != p[c]; c++) ; + c = (c + 0x80) & 0xFF; + } + } + + return c; +} + +WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */ + WCHAR oem, /* OEM code to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + WCHAR c = 0; + const WCHAR *p = CVTBL(uc, FF_CODE_PAGE); + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + if (cp == FF_CODE_PAGE) { /* Is it a valid code page? */ + if (oem < 0x100) c = p[oem - 0x80]; + } + } + + return c; +} + +#endif + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for static code page configuration */ +/* DBCS fixed code page */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE >= 900 +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0, uc; + UINT i, n, li, hi; + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000) { /* Is it in BMP? */ + if (cp == FF_CODE_PAGE) { /* Is it a valid code? */ + uc = (WCHAR)uni; + p = CVTBL(uni2oem, FF_CODE_PAGE); + hi = sizeof CVTBL(uni2oem, FF_CODE_PAGE) / 4 - 1; + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (uc == p[i * 2]) break; + if (uc > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + } + + return c; +} + + +WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */ + WCHAR oem, /* OEM code to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0; + UINT i, n, li, hi; + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + if (cp == FF_CODE_PAGE) { /* Is it a valid code page? */ + p = CVTBL(oem2uni, FF_CODE_PAGE); + hi = sizeof CVTBL(oem2uni, FF_CODE_PAGE) / 4 - 1; + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (oem == p[i * 2]) break; + if (oem > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + + return c; +} +#endif + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for dynamic code page configuration */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE == 0 + +static const WORD cp_code[] = { 437, 720, 737, 771, 775, 850, 852, 855, 857, 860, 861, 862, 863, 864, 865, 866, 869, 0}; +static const WCHAR *const cp_table[] = {uc437, uc720, uc737, uc771, uc775, uc850, uc852, uc855, uc857, uc860, uc861, uc862, uc863, uc864, uc865, uc866, uc869, 0}; + + +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0, uc; + UINT i, n, li, hi; + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000) { /* Is it in BMP? */ + uc = (WCHAR)uni; + p = 0; + if (cp < 900) { /* SBCS */ + for (i = 0; cp_code[i] != 0 && cp_code[i] != cp; i++) ; /* Get table */ + p = cp_table[i]; + if (p) { /* Is it a valid CP ? */ + for (c = 0; c < 0x80 && uc != p[c]; c++) ; /* Find OEM code in the table */ + c = (c + 0x80) & 0xFF; + } + } else { /* DBCS */ + switch (cp) { + case 932 : p = uni2oem932; hi = sizeof uni2oem932 / 4 - 1; break; + case 936 : p = uni2oem936; hi = sizeof uni2oem936 / 4 - 1; break; + case 949 : p = uni2oem949; hi = sizeof uni2oem949 / 4 - 1; break; + case 950 : p = uni2oem950; hi = sizeof uni2oem950 / 4 - 1; break; + } + if (p) { /* Is it a valid code page? */ + li = 0; + for (n = 16; n; n--) { /* Find OEM code */ + i = li + (hi - li) / 2; + if (uc == p[i * 2]) break; + if (uc > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + } + } + + return c; +} + + +WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */ + WCHAR oem, /* OEM code to be converted (DBC if >=0x100) */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0; + UINT i, n, li, hi; + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + p = 0; + if (cp < 900) { /* SBCS */ + for (i = 0; cp_code[i] != 0 && cp_code[i] != cp; i++) ; /* Get table */ + p = cp_table[i]; + if (p) { /* Is it a valid CP ? */ + if (oem < 0x100) c = p[oem - 0x80]; + } + } else { /* DBCS */ + switch (cp) { + case 932 : p = oem2uni932; hi = sizeof oem2uni932 / 4 - 1; break; + case 936 : p = oem2uni936; hi = sizeof oem2uni936 / 4 - 1; break; + case 949 : p = oem2uni949; hi = sizeof oem2uni949 / 4 - 1; break; + case 950 : p = oem2uni950; hi = sizeof oem2uni950 / 4 - 1; break; + } + if (p) { + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (oem == p[i * 2]) break; + if (oem > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + } + + return c; +} +#endif + + + +/*------------------------------------------------------------------------*/ +/* Unicode up-case conversion */ +/*------------------------------------------------------------------------*/ + +DWORD ff_wtoupper ( /* Returns up-converted code point */ + DWORD uni /* Unicode code point to be up-converted */ +) +{ + /* Compressed upper conversion table */ + static const WORD cvt1[] = { /* U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, 0x00F8,0x0307, 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, 0x0132,0x0106, 0x0139,0x0110, 0x014A,0x012E, 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, 0x01DD,0x0001,0x018E, 0x01DE,0x0112, 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, 0x01F8,0x0128, + 0x0222,0x0112, 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, 0x03C4,0x0308, 0x03CC,0x0003,0x038C,0x038E,0x038F, 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, 0x0450,0x0710, 0x0460,0x0122, 0x048A,0x0136, 0x04C1,0x010E, 0x04CF,0x0001,0x04C0, 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 + }; + static const WORD cvt2[] = { /* U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, 0x1F10,0x0606, 0x1F20,0x0608, 0x1F30,0x0608, 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, 0x1F90,0x0608, 0x1FA0,0x0608, 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, 0x1FD0,0x0602, 0x1FE0,0x0602, 0x1FE5,0x0001,0x1FEC, 0x1FF3,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 + }; + const WORD *p; + WORD uc, bc, nc, cmd; + + + if (uni < 0x10000) { /* Is it in BMP? */ + uc = (WORD)uni; + p = uc < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get block base */ + if (!bc || uc < bc) break; + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (uc < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: uc = p[uc - bc]; break; /* Table conversion */ + case 1: uc -= (uc - bc) & 1; break; /* Case pairs */ + case 2: uc -= 16; break; /* Shift -16 */ + case 3: uc -= 32; break; /* Shift -32 */ + case 4: uc -= 48; break; /* Shift -48 */ + case 5: uc -= 26; break; /* Shift -26 */ + case 6: uc += 8; break; /* Shift +8 */ + case 7: uc -= 80; break; /* Shift -80 */ + case 8: uc -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (!cmd) p += nc; + } + uni = uc; + } + + return uni; +} + + +#endif /* #if FF_USE_LFN */ diff --git a/extras/fatfs/integer.h b/extras/fatfs/integer.h index 4924373..850dbf1 100644 --- a/extras/fatfs/integer.h +++ b/extras/fatfs/integer.h @@ -2,8 +2,8 @@ /* Integer type definitions for FatFs module */ /*-------------------------------------------*/ -#ifndef _FF_INTEGER -#define _FF_INTEGER +#ifndef FF_INTEGER +#define FF_INTEGER #ifdef _WIN32 /* FatFs development platform */ @@ -11,29 +11,27 @@ #include typedef unsigned __int64 QWORD; + #else /* Embedded platform */ -#include -#include - /* These types MUST be 16-bit or 32-bit */ -typedef int INT; -typedef unsigned int UINT; +typedef int INT; +typedef unsigned int UINT; /* This type MUST be 8-bit */ -typedef uint8_t BYTE; +typedef unsigned char BYTE; /* These types MUST be 16-bit */ -typedef int16_t SHORT; -typedef uint16_t WORD; -typedef uint16_t WCHAR; +typedef short SHORT; +typedef unsigned short WORD; +typedef unsigned short WCHAR; /* These types MUST be 32-bit */ -typedef int32_t LONG; -typedef uint32_t DWORD; +typedef long LONG; +typedef unsigned long DWORD; -/* This type MUST be 64-bit (Remove this for C89 compatibility) */ -typedef uint64_t QWORD; +/* This type MUST be 64-bit (Remove this for ANSI C (C89) compatibility) */ +typedef unsigned long long QWORD; #endif diff --git a/extras/fatfs/syscall.c b/extras/fatfs/syscall.c deleted file mode 100644 index eb54f37..0000000 --- a/extras/fatfs/syscall.c +++ /dev/null @@ -1,77 +0,0 @@ -#include "ff.h" -#include - -#if _USE_LFN == 3 /* LFN with a working buffer on the heap */ -#include -#endif - -#if _FS_REENTRANT - -/* - * Create a Synchronization Object - * This function is called in f_mount() function to create a new - * synchronization object, such as semaphore and mutex. When a 0 is returned, - * the f_mount() function fails with FR_INT_ERR. - */ -int ff_cre_syncobj(BYTE vol, SemaphoreHandle_t *sobj) -{ - int ret; - - *sobj = xSemaphoreCreateMutex(); - ret = (int)(*sobj != NULL); - - return ret; -} - -/* - * Delete a Synchronization Object - * This function is called in f_mount() function to delete a synchronization - * object that created with ff_cre_syncobj() function. When a 0 is returned, - * the f_mount() function fails with FR_INT_ERR. - */ -int ff_del_syncobj(SemaphoreHandle_t sobj) -{ - vSemaphoreDelete(sobj); - return 1; -} - -/* - * Request Grant to Access the Volume - * This function is called on entering file functions to lock the volume. - * When a 0 is returned, the file function fails with FR_TIMEOUT. - */ -int ff_req_grant(SemaphoreHandle_t sobj) -{ - return (int)(xSemaphoreTake(sobj, _FS_TIMEOUT) == pdTRUE); -} - -/* - * Release Grant to Access the Volume - * This function is called on leaving file functions to unlock the volume. - */ -void ff_rel_grant(SemaphoreHandle_t sobj) -{ - xSemaphoreGive(sobj); -} - -#endif - -#if _USE_LFN == 3 /* LFN with a working buffer on the heap */ -/* - * Allocate a memory block - * If a NULL is returned, the file function fails with FR_NOT_ENOUGH_CORE. - */ -void* ff_memalloc(UINT msize) -{ - return malloc(msize); -} - -/* - * Free a memory block - */ -void ff_memfree(void* mblock) -{ - free(mblock); -} - -#endif diff --git a/extras/fatfs/unicode.c b/extras/fatfs/unicode.c deleted file mode 100644 index 185830d..0000000 --- a/extras/fatfs/unicode.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "ff.h" - -#if _USE_LFN != 0 - -#if _CODE_PAGE == 932 /* Japanese Shift_JIS */ -#include "cc932.h" -#elif _CODE_PAGE == 936 /* Simplified Chinese GBK */ -#include "cc936.h" -#elif _CODE_PAGE == 949 /* Korean */ -#include "cc949.h" -#elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */ -#include "cc950.h" -#else /* Single Byte Character-Set */ -#include "ccsbcs.h" -#endif - -#endif From e9d9201527ead3cc9ee3d38fda697d3e0383861f Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 9 Dec 2017 00:45:57 +1100 Subject: [PATCH 250/349] Newlib: implement locks * Dynamically allocate arc4random data. Saves about 1k off the bss. --- FreeRTOS/Source/include/FreeRTOSConfig.h | 3 + core/app_main.c | 3 + core/include/stdout_redirect.h | 2 +- core/newlib_syscalls.c | 126 +- ld/program.ld | 14 - lib/libpp.a | Bin 186122 -> 186122 bytes libc/xtensa-lx106-elf/include/elf.h | 3147 +++++++++++++++++ .../include/machine/_arc4random.h | 33 +- .../xtensa-lx106-elf/include/machine/ieeefp.h | 27 + libc/xtensa-lx106-elf/include/pthread.h | 4 +- libc/xtensa-lx106-elf/include/stdio.h | 4 + libc/xtensa-lx106-elf/include/stdlib.h | 6 +- libc/xtensa-lx106-elf/include/string.h | 6 +- libc/xtensa-lx106-elf/include/strings.h | 8 +- .../include/sys/_default_fcntl.h | 20 +- libc/xtensa-lx106-elf/include/sys/cdefs.h | 2 +- libc/xtensa-lx106-elf/include/sys/features.h | 20 +- libc/xtensa-lx106-elf/include/sys/lock.h | 9 + libc/xtensa-lx106-elf/include/sys/unistd.h | 27 +- libc/xtensa-lx106-elf/include/wchar.h | 8 + libc/xtensa-lx106-elf/lib/libc.a | Bin 6013766 -> 6119524 bytes libc/xtensa-lx106-elf/lib/libg.a | Bin 6013766 -> 6119524 bytes libc/xtensa-lx106-elf/lib/libm.a | Bin 2383486 -> 2403516 bytes open_esplibs/libpp/pp.c | 17 + 24 files changed, 3442 insertions(+), 44 deletions(-) create mode 100644 libc/xtensa-lx106-elf/include/elf.h diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h index 83f5c1d..3600fb6 100644 --- a/FreeRTOS/Source/include/FreeRTOSConfig.h +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h @@ -97,6 +97,9 @@ #ifndef configCHECK_FOR_STACK_OVERFLOW #define configCHECK_FOR_STACK_OVERFLOW 2 #endif +#ifndef configUSE_RECURSIVE_MUTEXES +#define configUSE_RECURSIVE_MUTEXES 1 +#endif #ifndef configUSE_MUTEXES #define configUSE_MUTEXES 1 #endif diff --git a/core/app_main.c b/core/app_main.c index fb72cac..447d78a 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -134,6 +134,8 @@ static void IRAM default_putc(char c) { uart_putc(0, c); } +void init_newlib_locks(void); + // .text+0x258 void IRAM sdk_user_start(void) { uint32_t buf32[sizeof(struct sdk_g_ic_saved_st) / 4]; @@ -223,6 +225,7 @@ void IRAM sdk_user_start(void) { status = sysparam_init(sysparam_addr, 0); } } + init_newlib_locks(); if (status != SYSPARAM_OK) { printf("WARNING: Could not initialize sysparams (%d)!\n", status); } diff --git a/core/include/stdout_redirect.h b/core/include/stdout_redirect.h index 8cc06ed..29410a9 100644 --- a/core/include/stdout_redirect.h +++ b/core/include/stdout_redirect.h @@ -14,7 +14,7 @@ extern "C" { #endif -typedef long _WriteFunction(struct _reent *r, int fd, const char *ptr, int len ); +typedef ssize_t _WriteFunction(struct _reent *r, int fd, const void *ptr, size_t len); /** Set implementation of write syscall for stdout. * diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index a793cec..8fcb49a 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -15,6 +15,10 @@ #include #include #include +#include +#include +#include +#include /* * The file descriptor index space is allocated in blocks. The first block of 3 @@ -32,7 +36,7 @@ extern void *xPortSupervisorStackPointer; -IRAM caddr_t _sbrk_r (struct _reent *r, int incr) +IRAM void *_sbrk_r (struct _reent *r, ptrdiff_t incr) { extern char _heap_start; /* linker script defined */ static char * heap_end; @@ -58,15 +62,15 @@ IRAM caddr_t _sbrk_r (struct _reent *r, int incr) } /* syscall implementation for stdio write to UART */ -__attribute__((weak)) long _write_stdout_r(struct _reent *r, int fd, const char *ptr, int len ) +__attribute__((weak)) ssize_t _write_stdout_r(struct _reent *r, int fd, const void *ptr, size_t len ) { for(int i = 0; i < len; i++) { /* Auto convert CR to CRLF, ignore other LFs (compatible with Espressif SDK behaviour) */ - if(ptr[i] == '\r') + if(((char *)ptr)[i] == '\r') continue; - if(ptr[i] == '\n') + if(((char *)ptr)[i] == '\n') uart_putc(0, '\r'); - uart_putc(0, ptr[i]); + uart_putc(0, ((char *)ptr)[i]); } return len; } @@ -88,13 +92,13 @@ _WriteFunction *get_write_stdout() } /* default implementation, replace in a filesystem */ -__attribute__((weak)) long _write_filesystem_r(struct _reent *r, int fd, const char *ptr, int len ) +__attribute__((weak)) ssize_t _write_filesystem_r(struct _reent *r, int fd, const void *ptr, size_t len) { r->_errno = EBADF; return -1; } -__attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, int len ) +__attribute__((weak)) ssize_t _write_r(struct _reent *r, int fd, const void *ptr, size_t len) { if (fd >= FILE_DESCRIPTOR_OFFSET) { return _write_filesystem_r(r, fd, ptr, len); @@ -110,26 +114,26 @@ __attribute__((weak)) long _write_r(struct _reent *r, int fd, const char *ptr, i } /* syscall implementation for stdio read from UART */ -__attribute__((weak)) long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len) +__attribute__((weak)) ssize_t _read_stdin_r(struct _reent *r, int fd, void *ptr, size_t len) { int ch, i; uart_rxfifo_wait(0, 1); for(i = 0; i < len; i++) { ch = uart_getc_nowait(0); if (ch < 0) break; - ptr[i] = ch; + ((char *)ptr)[i] = ch; } return i; } /* default implementation, replace in a filesystem */ -__attribute__((weak)) long _read_filesystem_r( struct _reent *r, int fd, char *ptr, int len ) +__attribute__((weak)) ssize_t _read_filesystem_r( struct _reent *r, int fd, void *ptr, size_t len ) { r->_errno = EBADF; return -1; } -__attribute__((weak)) long _read_r( struct _reent *r, int fd, char *ptr, int len ) +__attribute__((weak)) ssize_t _read_r( struct _reent *r, int fd, void *ptr, size_t len ) { if (fd >= FILE_DESCRIPTOR_OFFSET) { return _read_filesystem_r(r, fd, ptr, len); @@ -173,10 +177,10 @@ __attribute__((weak, alias("syscall_returns_enosys"))) int _unlink_r(struct _reent *r, const char *path); __attribute__((weak, alias("syscall_returns_enosys"))) -int _fstat_r(struct _reent *r, int fd, void *buf); +int _fstat_r(struct _reent *r, int fd, struct stat *buf); __attribute__((weak, alias("syscall_returns_enosys"))) -int _stat_r(struct _reent *r, const char *pathname, void *buf); +int _stat_r(struct _reent *r, const char *pathname, struct stat *buf); __attribute__((weak, alias("syscall_returns_enosys"))) off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence); @@ -197,3 +201,99 @@ static int syscall_returns_enosys(struct _reent *r) r->_errno=ENOSYS; return -1; } + +int getentropy(void *ptr, size_t n) +{ + hwrand_fill(ptr, n); + return 0; +} + +void _arc4random_getentropy_fail(void) +{ +} + +void _exit(int status) +{ + while(1); +} + +/* + * Newlib lock implementation. Some newlib locks are statically allocated, but + * can not be statically initialized so are set to NULL and initialized at + * startup. The malloc lock is used before it can be initialized so there are + * runtime checks on the functions that use it early. + */ +static int locks_initialized = 0; + +extern _lock_t __arc4random_mutex; +extern _lock_t __at_quick_exit_mutex; +//extern _lock_t __dd_hash_mutex; +extern _lock_t __tz_mutex; + +extern _lock_t __atexit_recursive_mutex; +extern _lock_t __env_recursive_mutex; +extern _lock_t __malloc_recursive_mutex; +extern _lock_t __sfp_recursive_mutex; +extern _lock_t __sinit_recursive_mutex; + +void init_newlib_locks() +{ + _lock_init(&__arc4random_mutex); + _lock_init(&__at_quick_exit_mutex); + //_lock_init(&__dd_hash_mutex); + _lock_init(&__tz_mutex); + + _lock_init_recursive(&__atexit_recursive_mutex); + _lock_init_recursive(&__env_recursive_mutex); + _lock_init_recursive(&__malloc_recursive_mutex); + _lock_init_recursive(&__sfp_recursive_mutex); + _lock_init_recursive(&__sinit_recursive_mutex); + + locks_initialized = 1; +} + +void _lock_init(_lock_t *lock) { + *lock = (_lock_t)xSemaphoreCreateMutex(); +} + +void _lock_init_recursive(_lock_t *lock) { + *lock = (_lock_t)xSemaphoreCreateRecursiveMutex(); +} + +void _lock_close(_lock_t *lock) { + vSemaphoreDelete((QueueHandle_t)*lock); + *lock = 0; +} + +void _lock_close_recursive(_lock_t *lock) { + vSemaphoreDelete((QueueHandle_t)*lock); + *lock = 0; +} + +void _lock_acquire(_lock_t *lock) { + xSemaphoreTake((QueueHandle_t)*lock, portMAX_DELAY); +} + +void _lock_acquire_recursive(_lock_t *lock) { + if (locks_initialized) { + xSemaphoreTakeRecursive((QueueHandle_t)*lock, portMAX_DELAY); + } +} + +int _lock_try_acquire(_lock_t *lock) { + return xSemaphoreTake((QueueHandle_t)*lock, 0); +} + +int _lock_try_acquire_recursive(_lock_t *lock) { + return xSemaphoreTakeRecursive((QueueHandle_t)*lock, 0); +} + +void _lock_release(_lock_t *lock) { + xSemaphoreGive((QueueHandle_t)*lock); +} + +void _lock_release_recursive(_lock_t *lock) { + if (locks_initialized) { + xSemaphoreGiveRecursive((QueueHandle_t)*lock); + } +} diff --git a/ld/program.ld b/ld/program.ld index d040a2f..0718d6f 100644 --- a/ld/program.ld +++ b/ld/program.ld @@ -21,20 +21,6 @@ MEMORY pvPortMalloc = malloc; vPortFree = free; -/* FreeRTOS lock functions. - - Rely on a patch to libc that produces weak linked versions of the - below symbols. Currently treating locking primitives like universal - global critical section rather than individual locks, but this seems - OK from the use cases in newlib. -*/ -_lock_acquire = vPortEnterCritical; -_lock_acquire_recursive = vPortEnterCritical; -_lock_try_acquire = vPortEnterCritical; -_lock_try_acquire_recursive = vPortEnterCritical; -_lock_release = vPortExitCritical; -_lock_release_recursive = vPortExitCritical; - /* SDK compatibility */ ets_printf = printf; diff --git a/lib/libpp.a b/lib/libpp.a index 39631a2fa9240b24b8337a19f26c95e21fb51371..4a6c9420599473ad22ad26810e8b41b896711dfb 100644 GIT binary patch delta 37 tcmeBL$KAD#yI~8XUOv+Yh3y9UjAyOb;tL9@j11bDS21p9Ud6<&3jhfG47mUR delta 37 tcmeBL$KAD#yI~8XUOv+ShV2IVjAyObsuFW@@{`+{S21p9Ud6<&3jhW>4ATGr diff --git a/libc/xtensa-lx106-elf/include/elf.h b/libc/xtensa-lx106-elf/include/elf.h new file mode 100644 index 0000000..79d3b97 --- /dev/null +++ b/libc/xtensa-lx106-elf/include/elf.h @@ -0,0 +1,3147 @@ +/* +From musl include/elf.h + +Copyright © 2005-2014 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef _ELF_H +#define _ELF_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +typedef uint16_t Elf32_Half; +typedef uint16_t Elf64_Half; + +typedef uint32_t Elf32_Word; +typedef int32_t Elf32_Sword; +typedef uint32_t Elf64_Word; +typedef int32_t Elf64_Sword; + +typedef uint64_t Elf32_Xword; +typedef int64_t Elf32_Sxword; +typedef uint64_t Elf64_Xword; +typedef int64_t Elf64_Sxword; + +typedef uint32_t Elf32_Addr; +typedef uint64_t Elf64_Addr; + +typedef uint32_t Elf32_Off; +typedef uint64_t Elf64_Off; + +typedef uint16_t Elf32_Section; +typedef uint16_t Elf64_Section; + +typedef Elf32_Half Elf32_Versym; +typedef Elf64_Half Elf64_Versym; + +#define EI_NIDENT (16) + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +} Elf32_Ehdr; + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +} Elf64_Ehdr; + +#define EI_MAG0 0 +#define ELFMAG0 0x7f + +#define EI_MAG1 1 +#define ELFMAG1 'E' + +#define EI_MAG2 2 +#define ELFMAG2 'L' + +#define EI_MAG3 3 +#define ELFMAG3 'F' + + +#define ELFMAG "\177ELF" +#define SELFMAG 4 + +#define EI_CLASS 4 +#define ELFCLASSNONE 0 +#define ELFCLASS32 1 +#define ELFCLASS64 2 +#define ELFCLASSNUM 3 + +#define EI_DATA 5 +#define ELFDATANONE 0 +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 +#define ELFDATANUM 3 + +#define EI_VERSION 6 + + +#define EI_OSABI 7 +#define ELFOSABI_NONE 0 +#define ELFOSABI_SYSV 0 +#define ELFOSABI_HPUX 1 +#define ELFOSABI_NETBSD 2 +#define ELFOSABI_LINUX 3 +#define ELFOSABI_GNU 3 +#define ELFOSABI_SOLARIS 6 +#define ELFOSABI_AIX 7 +#define ELFOSABI_IRIX 8 +#define ELFOSABI_FREEBSD 9 +#define ELFOSABI_TRU64 10 +#define ELFOSABI_MODESTO 11 +#define ELFOSABI_OPENBSD 12 +#define ELFOSABI_ARM 97 +#define ELFOSABI_STANDALONE 255 + +#define EI_ABIVERSION 8 + +#define EI_PAD 9 + + + +#define ET_NONE 0 +#define ET_REL 1 +#define ET_EXEC 2 +#define ET_DYN 3 +#define ET_CORE 4 +#define ET_NUM 5 +#define ET_LOOS 0xfe00 +#define ET_HIOS 0xfeff +#define ET_LOPROC 0xff00 +#define ET_HIPROC 0xffff + + + +#define EM_NONE 0 +#define EM_M32 1 +#define EM_SPARC 2 +#define EM_386 3 +#define EM_68K 4 +#define EM_88K 5 +#define EM_860 7 +#define EM_MIPS 8 +#define EM_S370 9 +#define EM_MIPS_RS3_LE 10 + +#define EM_PARISC 15 +#define EM_VPP500 17 +#define EM_SPARC32PLUS 18 +#define EM_960 19 +#define EM_PPC 20 +#define EM_PPC64 21 +#define EM_S390 22 + +#define EM_V800 36 +#define EM_FR20 37 +#define EM_RH32 38 +#define EM_RCE 39 +#define EM_ARM 40 +#define EM_FAKE_ALPHA 41 +#define EM_SH 42 +#define EM_SPARCV9 43 +#define EM_TRICORE 44 +#define EM_ARC 45 +#define EM_H8_300 46 +#define EM_H8_300H 47 +#define EM_H8S 48 +#define EM_H8_500 49 +#define EM_IA_64 50 +#define EM_MIPS_X 51 +#define EM_COLDFIRE 52 +#define EM_68HC12 53 +#define EM_MMA 54 +#define EM_PCP 55 +#define EM_NCPU 56 +#define EM_NDR1 57 +#define EM_STARCORE 58 +#define EM_ME16 59 +#define EM_ST100 60 +#define EM_TINYJ 61 +#define EM_X86_64 62 +#define EM_PDSP 63 + +#define EM_FX66 66 +#define EM_ST9PLUS 67 +#define EM_ST7 68 +#define EM_68HC16 69 +#define EM_68HC11 70 +#define EM_68HC08 71 +#define EM_68HC05 72 +#define EM_SVX 73 +#define EM_ST19 74 +#define EM_VAX 75 +#define EM_CRIS 76 +#define EM_JAVELIN 77 +#define EM_FIREPATH 78 +#define EM_ZSP 79 +#define EM_MMIX 80 +#define EM_HUANY 81 +#define EM_PRISM 82 +#define EM_AVR 83 +#define EM_FR30 84 +#define EM_D10V 85 +#define EM_D30V 86 +#define EM_V850 87 +#define EM_M32R 88 +#define EM_MN10300 89 +#define EM_MN10200 90 +#define EM_PJ 91 +#define EM_OR1K 92 +#define EM_OPENRISC 92 +#define EM_ARC_A5 93 +#define EM_ARC_COMPACT 93 +#define EM_XTENSA 94 +#define EM_VIDEOCORE 95 +#define EM_TMM_GPP 96 +#define EM_NS32K 97 +#define EM_TPC 98 +#define EM_SNP1K 99 +#define EM_ST200 100 +#define EM_IP2K 101 +#define EM_MAX 102 +#define EM_CR 103 +#define EM_F2MC16 104 +#define EM_MSP430 105 +#define EM_BLACKFIN 106 +#define EM_SE_C33 107 +#define EM_SEP 108 +#define EM_ARCA 109 +#define EM_UNICORE 110 +#define EM_EXCESS 111 +#define EM_DXP 112 +#define EM_ALTERA_NIOS2 113 +#define EM_CRX 114 +#define EM_XGATE 115 +#define EM_C166 116 +#define EM_M16C 117 +#define EM_DSPIC30F 118 +#define EM_CE 119 +#define EM_M32C 120 +#define EM_TSK3000 131 +#define EM_RS08 132 +#define EM_SHARC 133 +#define EM_ECOG2 134 +#define EM_SCORE7 135 +#define EM_DSP24 136 +#define EM_VIDEOCORE3 137 +#define EM_LATTICEMICO32 138 +#define EM_SE_C17 139 +#define EM_TI_C6000 140 +#define EM_TI_C2000 141 +#define EM_TI_C5500 142 +#define EM_TI_ARP32 143 +#define EM_TI_PRU 144 +#define EM_MMDSP_PLUS 160 +#define EM_CYPRESS_M8C 161 +#define EM_R32C 162 +#define EM_TRIMEDIA 163 +#define EM_QDSP6 164 +#define EM_8051 165 +#define EM_STXP7X 166 +#define EM_NDS32 167 +#define EM_ECOG1X 168 +#define EM_MAXQ30 169 +#define EM_XIMO16 170 +#define EM_MANIK 171 +#define EM_CRAYNV2 172 +#define EM_RX 173 +#define EM_METAG 174 +#define EM_MCST_ELBRUS 175 +#define EM_ECOG16 176 +#define EM_CR16 177 +#define EM_ETPU 178 +#define EM_SLE9X 179 +#define EM_L10M 180 +#define EM_K10M 181 +#define EM_AARCH64 183 +#define EM_AVR32 185 +#define EM_STM8 186 +#define EM_TILE64 187 +#define EM_TILEPRO 188 +#define EM_MICROBLAZE 189 +#define EM_CUDA 190 +#define EM_TILEGX 191 +#define EM_CLOUDSHIELD 192 +#define EM_COREA_1ST 193 +#define EM_COREA_2ND 194 +#define EM_ARC_COMPACT2 195 +#define EM_OPEN8 196 +#define EM_RL78 197 +#define EM_VIDEOCORE5 198 +#define EM_78KOR 199 +#define EM_56800EX 200 +#define EM_BA1 201 +#define EM_BA2 202 +#define EM_XCORE 203 +#define EM_MCHP_PIC 204 +#define EM_KM32 210 +#define EM_KMX32 211 +#define EM_EMX16 212 +#define EM_EMX8 213 +#define EM_KVARC 214 +#define EM_CDP 215 +#define EM_COGE 216 +#define EM_COOL 217 +#define EM_NORC 218 +#define EM_CSR_KALIMBA 219 +#define EM_Z80 220 +#define EM_VISIUM 221 +#define EM_FT32 222 +#define EM_MOXIE 223 +#define EM_AMDGPU 224 +#define EM_RISCV 243 +#define EM_BPF 247 +#define EM_NUM 248 + +#define EM_ALPHA 0x9026 + +#define EV_NONE 0 +#define EV_CURRENT 1 +#define EV_NUM 2 + +typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; +} Elf32_Shdr; + +typedef struct { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +} Elf64_Shdr; + + + +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xff00 +#define SHN_LOPROC 0xff00 +#define SHN_BEFORE 0xff00 + +#define SHN_AFTER 0xff01 + +#define SHN_HIPROC 0xff1f +#define SHN_LOOS 0xff20 +#define SHN_HIOS 0xff3f +#define SHN_ABS 0xfff1 +#define SHN_COMMON 0xfff2 +#define SHN_XINDEX 0xffff +#define SHN_HIRESERVE 0xffff + + + +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_HASH 5 +#define SHT_DYNAMIC 6 +#define SHT_NOTE 7 +#define SHT_NOBITS 8 +#define SHT_REL 9 +#define SHT_SHLIB 10 +#define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_FINI_ARRAY 15 +#define SHT_PREINIT_ARRAY 16 +#define SHT_GROUP 17 +#define SHT_SYMTAB_SHNDX 18 +#define SHT_NUM 19 +#define SHT_LOOS 0x60000000 +#define SHT_GNU_ATTRIBUTES 0x6ffffff5 +#define SHT_GNU_HASH 0x6ffffff6 +#define SHT_GNU_LIBLIST 0x6ffffff7 +#define SHT_CHECKSUM 0x6ffffff8 +#define SHT_LOSUNW 0x6ffffffa +#define SHT_SUNW_move 0x6ffffffa +#define SHT_SUNW_COMDAT 0x6ffffffb +#define SHT_SUNW_syminfo 0x6ffffffc +#define SHT_GNU_verdef 0x6ffffffd +#define SHT_GNU_verneed 0x6ffffffe +#define SHT_GNU_versym 0x6fffffff +#define SHT_HISUNW 0x6fffffff +#define SHT_HIOS 0x6fffffff +#define SHT_LOPROC 0x70000000 +#define SHT_HIPROC 0x7fffffff +#define SHT_LOUSER 0x80000000 +#define SHT_HIUSER 0x8fffffff + +#define SHF_WRITE (1 << 0) +#define SHF_ALLOC (1 << 1) +#define SHF_EXECINSTR (1 << 2) +#define SHF_MERGE (1 << 4) +#define SHF_STRINGS (1 << 5) +#define SHF_INFO_LINK (1 << 6) +#define SHF_LINK_ORDER (1 << 7) +#define SHF_OS_NONCONFORMING (1 << 8) + +#define SHF_GROUP (1 << 9) +#define SHF_TLS (1 << 10) +#define SHF_COMPRESSED (1 << 11) +#define SHF_MASKOS 0x0ff00000 +#define SHF_MASKPROC 0xf0000000 +#define SHF_ORDERED (1 << 30) +#define SHF_EXCLUDE (1U << 31) + +typedef struct { + Elf32_Word ch_type; + Elf32_Word ch_size; + Elf32_Word ch_addralign; +} Elf32_Chdr; + +typedef struct { + Elf64_Word ch_type; + Elf64_Word ch_reserved; + Elf64_Xword ch_size; + Elf64_Xword ch_addralign; +} Elf64_Chdr; + +#define ELFCOMPRESS_ZLIB 1 +#define ELFCOMPRESS_LOOS 0x60000000 +#define ELFCOMPRESS_HIOS 0x6fffffff +#define ELFCOMPRESS_LOPROC 0x70000000 +#define ELFCOMPRESS_HIPROC 0x7fffffff + + +#define GRP_COMDAT 0x1 + +typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Section st_shndx; +} Elf32_Sym; + +typedef struct { + Elf64_Word st_name; + unsigned char st_info; + unsigned char st_other; + Elf64_Section st_shndx; + Elf64_Addr st_value; + Elf64_Xword st_size; +} Elf64_Sym; + +typedef struct { + Elf32_Half si_boundto; + Elf32_Half si_flags; +} Elf32_Syminfo; + +typedef struct { + Elf64_Half si_boundto; + Elf64_Half si_flags; +} Elf64_Syminfo; + +#define SYMINFO_BT_SELF 0xffff +#define SYMINFO_BT_PARENT 0xfffe +#define SYMINFO_BT_LOWRESERVE 0xff00 + +#define SYMINFO_FLG_DIRECT 0x0001 +#define SYMINFO_FLG_PASSTHRU 0x0002 +#define SYMINFO_FLG_COPY 0x0004 +#define SYMINFO_FLG_LAZYLOAD 0x0008 + +#define SYMINFO_NONE 0 +#define SYMINFO_CURRENT 1 +#define SYMINFO_NUM 2 + +#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) + +#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) +#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) + +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STB_NUM 3 +#define STB_LOOS 10 +#define STB_GNU_UNIQUE 10 +#define STB_HIOS 12 +#define STB_LOPROC 13 +#define STB_HIPROC 15 + +#define STT_NOTYPE 0 +#define STT_OBJECT 1 +#define STT_FUNC 2 +#define STT_SECTION 3 +#define STT_FILE 4 +#define STT_COMMON 5 +#define STT_TLS 6 +#define STT_NUM 7 +#define STT_LOOS 10 +#define STT_GNU_IFUNC 10 +#define STT_HIOS 12 +#define STT_LOPROC 13 +#define STT_HIPROC 15 + +#define STN_UNDEF 0 + +#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) +#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) + +#define STV_DEFAULT 0 +#define STV_INTERNAL 1 +#define STV_HIDDEN 2 +#define STV_PROTECTED 3 + + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; +} Elf32_Rel; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; +} Elf64_Rel; + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +} Elf32_Rela; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +} Elf64_Rela; + + + +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) +#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) + + + +typedef struct { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +} Elf32_Phdr; + +typedef struct { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; +} Elf64_Phdr; + + + +#define PT_NULL 0 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define PT_INTERP 3 +#define PT_NOTE 4 +#define PT_SHLIB 5 +#define PT_PHDR 6 +#define PT_TLS 7 +#define PT_NUM 8 +#define PT_LOOS 0x60000000 +#define PT_GNU_EH_FRAME 0x6474e550 +#define PT_GNU_STACK 0x6474e551 +#define PT_GNU_RELRO 0x6474e552 +#define PT_LOSUNW 0x6ffffffa +#define PT_SUNWBSS 0x6ffffffa +#define PT_SUNWSTACK 0x6ffffffb +#define PT_HISUNW 0x6fffffff +#define PT_HIOS 0x6fffffff +#define PT_LOPROC 0x70000000 +#define PT_HIPROC 0x7fffffff + + +#define PN_XNUM 0xffff + + +#define PF_X (1 << 0) +#define PF_W (1 << 1) +#define PF_R (1 << 2) +#define PF_MASKOS 0x0ff00000 +#define PF_MASKPROC 0xf0000000 + + + +#define NT_PRSTATUS 1 +#define NT_FPREGSET 2 +#define NT_PRPSINFO 3 +#define NT_PRXREG 4 +#define NT_TASKSTRUCT 4 +#define NT_PLATFORM 5 +#define NT_AUXV 6 +#define NT_GWINDOWS 7 +#define NT_ASRS 8 +#define NT_PSTATUS 10 +#define NT_PSINFO 13 +#define NT_PRCRED 14 +#define NT_UTSNAME 15 +#define NT_LWPSTATUS 16 +#define NT_LWPSINFO 17 +#define NT_PRFPXREG 20 +#define NT_SIGINFO 0x53494749 +#define NT_FILE 0x46494c45 +#define NT_PRXFPREG 0x46e62b7f +#define NT_PPC_VMX 0x100 +#define NT_PPC_SPE 0x101 +#define NT_PPC_VSX 0x102 +#define NT_386_TLS 0x200 +#define NT_386_IOPERM 0x201 +#define NT_X86_XSTATE 0x202 +#define NT_S390_HIGH_GPRS 0x300 +#define NT_S390_TIMER 0x301 +#define NT_S390_TODCMP 0x302 +#define NT_S390_TODPREG 0x303 +#define NT_S390_CTRS 0x304 +#define NT_S390_PREFIX 0x305 +#define NT_S390_LAST_BREAK 0x306 +#define NT_S390_SYSTEM_CALL 0x307 +#define NT_S390_TDB 0x308 +#define NT_ARM_VFP 0x400 +#define NT_ARM_TLS 0x401 +#define NT_ARM_HW_BREAK 0x402 +#define NT_ARM_HW_WATCH 0x403 +#define NT_ARM_SYSTEM_CALL 0x404 +#define NT_ARM_SVE 0x405 +#define NT_METAG_CBUF 0x500 +#define NT_METAG_RPIPE 0x501 +#define NT_METAG_TLS 0x502 +#define NT_VERSION 1 + + + + +typedef struct { + Elf32_Sword d_tag; + union { + Elf32_Word d_val; + Elf32_Addr d_ptr; + } d_un; +} Elf32_Dyn; + +typedef struct { + Elf64_Sxword d_tag; + union { + Elf64_Xword d_val; + Elf64_Addr d_ptr; + } d_un; +} Elf64_Dyn; + + + +#define DT_NULL 0 +#define DT_NEEDED 1 +#define DT_PLTRELSZ 2 +#define DT_PLTGOT 3 +#define DT_HASH 4 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_RELA 7 +#define DT_RELASZ 8 +#define DT_RELAENT 9 +#define DT_STRSZ 10 +#define DT_SYMENT 11 +#define DT_INIT 12 +#define DT_FINI 13 +#define DT_SONAME 14 +#define DT_RPATH 15 +#define DT_SYMBOLIC 16 +#define DT_REL 17 +#define DT_RELSZ 18 +#define DT_RELENT 19 +#define DT_PLTREL 20 +#define DT_DEBUG 21 +#define DT_TEXTREL 22 +#define DT_JMPREL 23 +#define DT_BIND_NOW 24 +#define DT_INIT_ARRAY 25 +#define DT_FINI_ARRAY 26 +#define DT_INIT_ARRAYSZ 27 +#define DT_FINI_ARRAYSZ 28 +#define DT_RUNPATH 29 +#define DT_FLAGS 30 +#define DT_ENCODING 32 +#define DT_PREINIT_ARRAY 32 +#define DT_PREINIT_ARRAYSZ 33 +#define DT_NUM 34 +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6ffff000 +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7fffffff +#define DT_PROCNUM DT_MIPS_NUM + +#define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_PRELINKED 0x6ffffdf5 +#define DT_GNU_CONFLICTSZ 0x6ffffdf6 +#define DT_GNU_LIBLISTSZ 0x6ffffdf7 +#define DT_CHECKSUM 0x6ffffdf8 +#define DT_PLTPADSZ 0x6ffffdf9 +#define DT_MOVEENT 0x6ffffdfa +#define DT_MOVESZ 0x6ffffdfb +#define DT_FEATURE_1 0x6ffffdfc +#define DT_POSFLAG_1 0x6ffffdfd + +#define DT_SYMINSZ 0x6ffffdfe +#define DT_SYMINENT 0x6ffffdff +#define DT_VALRNGHI 0x6ffffdff +#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) +#define DT_VALNUM 12 + +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 +#define DT_TLSDESC_PLT 0x6ffffef6 +#define DT_TLSDESC_GOT 0x6ffffef7 +#define DT_GNU_CONFLICT 0x6ffffef8 +#define DT_GNU_LIBLIST 0x6ffffef9 +#define DT_CONFIG 0x6ffffefa +#define DT_DEPAUDIT 0x6ffffefb +#define DT_AUDIT 0x6ffffefc +#define DT_PLTPAD 0x6ffffefd +#define DT_MOVETAB 0x6ffffefe +#define DT_SYMINFO 0x6ffffeff +#define DT_ADDRRNGHI 0x6ffffeff +#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) +#define DT_ADDRNUM 11 + + + +#define DT_VERSYM 0x6ffffff0 + +#define DT_RELACOUNT 0x6ffffff9 +#define DT_RELCOUNT 0x6ffffffa + + +#define DT_FLAGS_1 0x6ffffffb +#define DT_VERDEF 0x6ffffffc + +#define DT_VERDEFNUM 0x6ffffffd +#define DT_VERNEED 0x6ffffffe + +#define DT_VERNEEDNUM 0x6fffffff +#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) +#define DT_VERSIONTAGNUM 16 + + + +#define DT_AUXILIARY 0x7ffffffd +#define DT_FILTER 0x7fffffff +#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) +#define DT_EXTRANUM 3 + + +#define DF_ORIGIN 0x00000001 +#define DF_SYMBOLIC 0x00000002 +#define DF_TEXTREL 0x00000004 +#define DF_BIND_NOW 0x00000008 +#define DF_STATIC_TLS 0x00000010 + + + +#define DF_1_NOW 0x00000001 +#define DF_1_GLOBAL 0x00000002 +#define DF_1_GROUP 0x00000004 +#define DF_1_NODELETE 0x00000008 +#define DF_1_LOADFLTR 0x00000010 +#define DF_1_INITFIRST 0x00000020 +#define DF_1_NOOPEN 0x00000040 +#define DF_1_ORIGIN 0x00000080 +#define DF_1_DIRECT 0x00000100 +#define DF_1_TRANS 0x00000200 +#define DF_1_INTERPOSE 0x00000400 +#define DF_1_NODEFLIB 0x00000800 +#define DF_1_NODUMP 0x00001000 +#define DF_1_CONFALT 0x00002000 +#define DF_1_ENDFILTEE 0x00004000 +#define DF_1_DISPRELDNE 0x00008000 +#define DF_1_DISPRELPND 0x00010000 +#define DF_1_NODIRECT 0x00020000 +#define DF_1_IGNMULDEF 0x00040000 +#define DF_1_NOKSYMS 0x00080000 +#define DF_1_NOHDR 0x00100000 +#define DF_1_EDITED 0x00200000 +#define DF_1_NORELOC 0x00400000 +#define DF_1_SYMINTPOSE 0x00800000 +#define DF_1_GLOBAUDIT 0x01000000 +#define DF_1_SINGLETON 0x02000000 + +#define DTF_1_PARINIT 0x00000001 +#define DTF_1_CONFEXP 0x00000002 + + +#define DF_P1_LAZYLOAD 0x00000001 +#define DF_P1_GROUPPERM 0x00000002 + + + + +typedef struct { + Elf32_Half vd_version; + Elf32_Half vd_flags; + Elf32_Half vd_ndx; + Elf32_Half vd_cnt; + Elf32_Word vd_hash; + Elf32_Word vd_aux; + Elf32_Word vd_next; +} Elf32_Verdef; + +typedef struct { + Elf64_Half vd_version; + Elf64_Half vd_flags; + Elf64_Half vd_ndx; + Elf64_Half vd_cnt; + Elf64_Word vd_hash; + Elf64_Word vd_aux; + Elf64_Word vd_next; +} Elf64_Verdef; + + + +#define VER_DEF_NONE 0 +#define VER_DEF_CURRENT 1 +#define VER_DEF_NUM 2 + + +#define VER_FLG_BASE 0x1 +#define VER_FLG_WEAK 0x2 + + +#define VER_NDX_LOCAL 0 +#define VER_NDX_GLOBAL 1 +#define VER_NDX_LORESERVE 0xff00 +#define VER_NDX_ELIMINATE 0xff01 + + + +typedef struct { + Elf32_Word vda_name; + Elf32_Word vda_next; +} Elf32_Verdaux; + +typedef struct { + Elf64_Word vda_name; + Elf64_Word vda_next; +} Elf64_Verdaux; + + + + +typedef struct { + Elf32_Half vn_version; + Elf32_Half vn_cnt; + Elf32_Word vn_file; + Elf32_Word vn_aux; + Elf32_Word vn_next; +} Elf32_Verneed; + +typedef struct { + Elf64_Half vn_version; + Elf64_Half vn_cnt; + Elf64_Word vn_file; + Elf64_Word vn_aux; + Elf64_Word vn_next; +} Elf64_Verneed; + + + +#define VER_NEED_NONE 0 +#define VER_NEED_CURRENT 1 +#define VER_NEED_NUM 2 + + + +typedef struct { + Elf32_Word vna_hash; + Elf32_Half vna_flags; + Elf32_Half vna_other; + Elf32_Word vna_name; + Elf32_Word vna_next; +} Elf32_Vernaux; + +typedef struct { + Elf64_Word vna_hash; + Elf64_Half vna_flags; + Elf64_Half vna_other; + Elf64_Word vna_name; + Elf64_Word vna_next; +} Elf64_Vernaux; + + + +#define VER_FLG_WEAK 0x2 + + + +typedef struct { + uint32_t a_type; + union { + uint32_t a_val; + } a_un; +} Elf32_auxv_t; + +typedef struct { + uint64_t a_type; + union { + uint64_t a_val; + } a_un; +} Elf64_auxv_t; + + + +#define AT_NULL 0 +#define AT_IGNORE 1 +#define AT_EXECFD 2 +#define AT_PHDR 3 +#define AT_PHENT 4 +#define AT_PHNUM 5 +#define AT_PAGESZ 6 +#define AT_BASE 7 +#define AT_FLAGS 8 +#define AT_ENTRY 9 +#define AT_NOTELF 10 +#define AT_UID 11 +#define AT_EUID 12 +#define AT_GID 13 +#define AT_EGID 14 +#define AT_CLKTCK 17 + + +#define AT_PLATFORM 15 +#define AT_HWCAP 16 + + + + +#define AT_FPUCW 18 + + +#define AT_DCACHEBSIZE 19 +#define AT_ICACHEBSIZE 20 +#define AT_UCACHEBSIZE 21 + + + +#define AT_IGNOREPPC 22 + +#define AT_SECURE 23 + +#define AT_BASE_PLATFORM 24 + +#define AT_RANDOM 25 + +#define AT_HWCAP2 26 + +#define AT_EXECFN 31 + + + +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 + + + +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 + + + + +typedef struct { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +} Elf32_Nhdr; + +typedef struct { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +} Elf64_Nhdr; + + + + +#define ELF_NOTE_SOLARIS "SUNW Solaris" + + +#define ELF_NOTE_GNU "GNU" + + + + + +#define ELF_NOTE_PAGESIZE_HINT 1 + + +#define NT_GNU_ABI_TAG 1 +#define ELF_NOTE_ABI NT_GNU_ABI_TAG + + + +#define ELF_NOTE_OS_LINUX 0 +#define ELF_NOTE_OS_GNU 1 +#define ELF_NOTE_OS_SOLARIS2 2 +#define ELF_NOTE_OS_FREEBSD 3 + +#define NT_GNU_BUILD_ID 3 +#define NT_GNU_GOLD_VERSION 4 + + + +typedef struct { + Elf32_Xword m_value; + Elf32_Word m_info; + Elf32_Word m_poffset; + Elf32_Half m_repeat; + Elf32_Half m_stride; +} Elf32_Move; + +typedef struct { + Elf64_Xword m_value; + Elf64_Xword m_info; + Elf64_Xword m_poffset; + Elf64_Half m_repeat; + Elf64_Half m_stride; +} Elf64_Move; + + +#define ELF32_M_SYM(info) ((info) >> 8) +#define ELF32_M_SIZE(info) ((unsigned char) (info)) +#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) + +#define ELF64_M_SYM(info) ELF32_M_SYM (info) +#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) +#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) + +#define EF_CPU32 0x00810000 + +#define R_68K_NONE 0 +#define R_68K_32 1 +#define R_68K_16 2 +#define R_68K_8 3 +#define R_68K_PC32 4 +#define R_68K_PC16 5 +#define R_68K_PC8 6 +#define R_68K_GOT32 7 +#define R_68K_GOT16 8 +#define R_68K_GOT8 9 +#define R_68K_GOT32O 10 +#define R_68K_GOT16O 11 +#define R_68K_GOT8O 12 +#define R_68K_PLT32 13 +#define R_68K_PLT16 14 +#define R_68K_PLT8 15 +#define R_68K_PLT32O 16 +#define R_68K_PLT16O 17 +#define R_68K_PLT8O 18 +#define R_68K_COPY 19 +#define R_68K_GLOB_DAT 20 +#define R_68K_JMP_SLOT 21 +#define R_68K_RELATIVE 22 +#define R_68K_NUM 23 + +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 +#define R_386_32PLT 11 +#define R_386_TLS_TPOFF 14 +#define R_386_TLS_IE 15 +#define R_386_TLS_GOTIE 16 +#define R_386_TLS_LE 17 +#define R_386_TLS_GD 18 +#define R_386_TLS_LDM 19 +#define R_386_16 20 +#define R_386_PC16 21 +#define R_386_8 22 +#define R_386_PC8 23 +#define R_386_TLS_GD_32 24 +#define R_386_TLS_GD_PUSH 25 +#define R_386_TLS_GD_CALL 26 +#define R_386_TLS_GD_POP 27 +#define R_386_TLS_LDM_32 28 +#define R_386_TLS_LDM_PUSH 29 +#define R_386_TLS_LDM_CALL 30 +#define R_386_TLS_LDM_POP 31 +#define R_386_TLS_LDO_32 32 +#define R_386_TLS_IE_32 33 +#define R_386_TLS_LE_32 34 +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 +#define R_386_TLS_TPOFF32 37 +#define R_386_SIZE32 38 +#define R_386_TLS_GOTDESC 39 +#define R_386_TLS_DESC_CALL 40 +#define R_386_TLS_DESC 41 +#define R_386_IRELATIVE 42 +#define R_386_GOT32X 43 +#define R_386_NUM 44 + + + + + +#define STT_SPARC_REGISTER 13 + + + +#define EF_SPARCV9_MM 3 +#define EF_SPARCV9_TSO 0 +#define EF_SPARCV9_PSO 1 +#define EF_SPARCV9_RMO 2 +#define EF_SPARC_LEDATA 0x800000 +#define EF_SPARC_EXT_MASK 0xFFFF00 +#define EF_SPARC_32PLUS 0x000100 +#define EF_SPARC_SUN_US1 0x000200 +#define EF_SPARC_HAL_R1 0x000400 +#define EF_SPARC_SUN_US3 0x000800 + + + +#define R_SPARC_NONE 0 +#define R_SPARC_8 1 +#define R_SPARC_16 2 +#define R_SPARC_32 3 +#define R_SPARC_DISP8 4 +#define R_SPARC_DISP16 5 +#define R_SPARC_DISP32 6 +#define R_SPARC_WDISP30 7 +#define R_SPARC_WDISP22 8 +#define R_SPARC_HI22 9 +#define R_SPARC_22 10 +#define R_SPARC_13 11 +#define R_SPARC_LO10 12 +#define R_SPARC_GOT10 13 +#define R_SPARC_GOT13 14 +#define R_SPARC_GOT22 15 +#define R_SPARC_PC10 16 +#define R_SPARC_PC22 17 +#define R_SPARC_WPLT30 18 +#define R_SPARC_COPY 19 +#define R_SPARC_GLOB_DAT 20 +#define R_SPARC_JMP_SLOT 21 +#define R_SPARC_RELATIVE 22 +#define R_SPARC_UA32 23 + + + +#define R_SPARC_PLT32 24 +#define R_SPARC_HIPLT22 25 +#define R_SPARC_LOPLT10 26 +#define R_SPARC_PCPLT32 27 +#define R_SPARC_PCPLT22 28 +#define R_SPARC_PCPLT10 29 +#define R_SPARC_10 30 +#define R_SPARC_11 31 +#define R_SPARC_64 32 +#define R_SPARC_OLO10 33 +#define R_SPARC_HH22 34 +#define R_SPARC_HM10 35 +#define R_SPARC_LM22 36 +#define R_SPARC_PC_HH22 37 +#define R_SPARC_PC_HM10 38 +#define R_SPARC_PC_LM22 39 +#define R_SPARC_WDISP16 40 +#define R_SPARC_WDISP19 41 +#define R_SPARC_GLOB_JMP 42 +#define R_SPARC_7 43 +#define R_SPARC_5 44 +#define R_SPARC_6 45 +#define R_SPARC_DISP64 46 +#define R_SPARC_PLT64 47 +#define R_SPARC_HIX22 48 +#define R_SPARC_LOX10 49 +#define R_SPARC_H44 50 +#define R_SPARC_M44 51 +#define R_SPARC_L44 52 +#define R_SPARC_REGISTER 53 +#define R_SPARC_UA64 54 +#define R_SPARC_UA16 55 +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 +#define R_SPARC_GOTDATA_HIX22 80 +#define R_SPARC_GOTDATA_LOX10 81 +#define R_SPARC_GOTDATA_OP_HIX22 82 +#define R_SPARC_GOTDATA_OP_LOX10 83 +#define R_SPARC_GOTDATA_OP 84 +#define R_SPARC_H34 85 +#define R_SPARC_SIZE32 86 +#define R_SPARC_SIZE64 87 +#define R_SPARC_GNU_VTINHERIT 250 +#define R_SPARC_GNU_VTENTRY 251 +#define R_SPARC_REV32 252 + +#define R_SPARC_NUM 253 + + + +#define DT_SPARC_REGISTER 0x70000001 +#define DT_SPARC_NUM 2 + + +#define EF_MIPS_NOREORDER 1 +#define EF_MIPS_PIC 2 +#define EF_MIPS_CPIC 4 +#define EF_MIPS_XGOT 8 +#define EF_MIPS_64BIT_WHIRL 16 +#define EF_MIPS_ABI2 32 +#define EF_MIPS_ABI_ON32 64 +#define EF_MIPS_FP64 512 +#define EF_MIPS_NAN2008 1024 +#define EF_MIPS_ARCH 0xf0000000 + + + +#define EF_MIPS_ARCH_1 0x00000000 +#define EF_MIPS_ARCH_2 0x10000000 +#define EF_MIPS_ARCH_3 0x20000000 +#define EF_MIPS_ARCH_4 0x30000000 +#define EF_MIPS_ARCH_5 0x40000000 +#define EF_MIPS_ARCH_32 0x50000000 +#define EF_MIPS_ARCH_64 0x60000000 +#define EF_MIPS_ARCH_32R2 0x70000000 +#define EF_MIPS_ARCH_64R2 0x80000000 + + +#define E_MIPS_ARCH_1 0x00000000 +#define E_MIPS_ARCH_2 0x10000000 +#define E_MIPS_ARCH_3 0x20000000 +#define E_MIPS_ARCH_4 0x30000000 +#define E_MIPS_ARCH_5 0x40000000 +#define E_MIPS_ARCH_32 0x50000000 +#define E_MIPS_ARCH_64 0x60000000 + + + +#define SHN_MIPS_ACOMMON 0xff00 +#define SHN_MIPS_TEXT 0xff01 +#define SHN_MIPS_DATA 0xff02 +#define SHN_MIPS_SCOMMON 0xff03 +#define SHN_MIPS_SUNDEFINED 0xff04 + + + +#define SHT_MIPS_LIBLIST 0x70000000 +#define SHT_MIPS_MSYM 0x70000001 +#define SHT_MIPS_CONFLICT 0x70000002 +#define SHT_MIPS_GPTAB 0x70000003 +#define SHT_MIPS_UCODE 0x70000004 +#define SHT_MIPS_DEBUG 0x70000005 +#define SHT_MIPS_REGINFO 0x70000006 +#define SHT_MIPS_PACKAGE 0x70000007 +#define SHT_MIPS_PACKSYM 0x70000008 +#define SHT_MIPS_RELD 0x70000009 +#define SHT_MIPS_IFACE 0x7000000b +#define SHT_MIPS_CONTENT 0x7000000c +#define SHT_MIPS_OPTIONS 0x7000000d +#define SHT_MIPS_SHDR 0x70000010 +#define SHT_MIPS_FDESC 0x70000011 +#define SHT_MIPS_EXTSYM 0x70000012 +#define SHT_MIPS_DENSE 0x70000013 +#define SHT_MIPS_PDESC 0x70000014 +#define SHT_MIPS_LOCSYM 0x70000015 +#define SHT_MIPS_AUXSYM 0x70000016 +#define SHT_MIPS_OPTSYM 0x70000017 +#define SHT_MIPS_LOCSTR 0x70000018 +#define SHT_MIPS_LINE 0x70000019 +#define SHT_MIPS_RFDESC 0x7000001a +#define SHT_MIPS_DELTASYM 0x7000001b +#define SHT_MIPS_DELTAINST 0x7000001c +#define SHT_MIPS_DELTACLASS 0x7000001d +#define SHT_MIPS_DWARF 0x7000001e +#define SHT_MIPS_DELTADECL 0x7000001f +#define SHT_MIPS_SYMBOL_LIB 0x70000020 +#define SHT_MIPS_EVENTS 0x70000021 +#define SHT_MIPS_TRANSLATE 0x70000022 +#define SHT_MIPS_PIXIE 0x70000023 +#define SHT_MIPS_XLATE 0x70000024 +#define SHT_MIPS_XLATE_DEBUG 0x70000025 +#define SHT_MIPS_WHIRL 0x70000026 +#define SHT_MIPS_EH_REGION 0x70000027 +#define SHT_MIPS_XLATE_OLD 0x70000028 +#define SHT_MIPS_PDR_EXCEPTION 0x70000029 + + + +#define SHF_MIPS_GPREL 0x10000000 +#define SHF_MIPS_MERGE 0x20000000 +#define SHF_MIPS_ADDR 0x40000000 +#define SHF_MIPS_STRINGS 0x80000000 +#define SHF_MIPS_NOSTRIP 0x08000000 +#define SHF_MIPS_LOCAL 0x04000000 +#define SHF_MIPS_NAMES 0x02000000 +#define SHF_MIPS_NODUPE 0x01000000 + + + + + +#define STO_MIPS_DEFAULT 0x0 +#define STO_MIPS_INTERNAL 0x1 +#define STO_MIPS_HIDDEN 0x2 +#define STO_MIPS_PROTECTED 0x3 +#define STO_MIPS_PLT 0x8 +#define STO_MIPS_SC_ALIGN_UNUSED 0xff + + +#define STB_MIPS_SPLIT_COMMON 13 + + + +typedef union { + struct { + Elf32_Word gt_current_g_value; + Elf32_Word gt_unused; + } gt_header; + struct { + Elf32_Word gt_g_value; + Elf32_Word gt_bytes; + } gt_entry; +} Elf32_gptab; + + + +typedef struct { + Elf32_Word ri_gprmask; + Elf32_Word ri_cprmask[4]; + Elf32_Sword ri_gp_value; +} Elf32_RegInfo; + + + +typedef struct { + unsigned char kind; + + unsigned char size; + Elf32_Section section; + + Elf32_Word info; +} Elf_Options; + + + +#define ODK_NULL 0 +#define ODK_REGINFO 1 +#define ODK_EXCEPTIONS 2 +#define ODK_PAD 3 +#define ODK_HWPATCH 4 +#define ODK_FILL 5 +#define ODK_TAGS 6 +#define ODK_HWAND 7 +#define ODK_HWOR 8 + + + +#define OEX_FPU_MIN 0x1f +#define OEX_FPU_MAX 0x1f00 +#define OEX_PAGE0 0x10000 +#define OEX_SMM 0x20000 +#define OEX_FPDBUG 0x40000 +#define OEX_PRECISEFP OEX_FPDBUG +#define OEX_DISMISS 0x80000 + +#define OEX_FPU_INVAL 0x10 +#define OEX_FPU_DIV0 0x08 +#define OEX_FPU_OFLO 0x04 +#define OEX_FPU_UFLO 0x02 +#define OEX_FPU_INEX 0x01 + + + +#define OHW_R4KEOP 0x1 +#define OHW_R8KPFETCH 0x2 +#define OHW_R5KEOP 0x4 +#define OHW_R5KCVTL 0x8 + +#define OPAD_PREFIX 0x1 +#define OPAD_POSTFIX 0x2 +#define OPAD_SYMBOL 0x4 + + + +typedef struct { + Elf32_Word hwp_flags1; + Elf32_Word hwp_flags2; +} Elf_Options_Hw; + + + +#define OHWA0_R4KEOP_CHECKED 0x00000001 +#define OHWA1_R4KEOP_CLEAN 0x00000002 + + + +#define R_MIPS_NONE 0 +#define R_MIPS_16 1 +#define R_MIPS_32 2 +#define R_MIPS_REL32 3 +#define R_MIPS_26 4 +#define R_MIPS_HI16 5 +#define R_MIPS_LO16 6 +#define R_MIPS_GPREL16 7 +#define R_MIPS_LITERAL 8 +#define R_MIPS_GOT16 9 +#define R_MIPS_PC16 10 +#define R_MIPS_CALL16 11 +#define R_MIPS_GPREL32 12 + +#define R_MIPS_SHIFT5 16 +#define R_MIPS_SHIFT6 17 +#define R_MIPS_64 18 +#define R_MIPS_GOT_DISP 19 +#define R_MIPS_GOT_PAGE 20 +#define R_MIPS_GOT_OFST 21 +#define R_MIPS_GOT_HI16 22 +#define R_MIPS_GOT_LO16 23 +#define R_MIPS_SUB 24 +#define R_MIPS_INSERT_A 25 +#define R_MIPS_INSERT_B 26 +#define R_MIPS_DELETE 27 +#define R_MIPS_HIGHER 28 +#define R_MIPS_HIGHEST 29 +#define R_MIPS_CALL_HI16 30 +#define R_MIPS_CALL_LO16 31 +#define R_MIPS_SCN_DISP 32 +#define R_MIPS_REL16 33 +#define R_MIPS_ADD_IMMEDIATE 34 +#define R_MIPS_PJUMP 35 +#define R_MIPS_RELGOT 36 +#define R_MIPS_JALR 37 +#define R_MIPS_TLS_DTPMOD32 38 +#define R_MIPS_TLS_DTPREL32 39 +#define R_MIPS_TLS_DTPMOD64 40 +#define R_MIPS_TLS_DTPREL64 41 +#define R_MIPS_TLS_GD 42 +#define R_MIPS_TLS_LDM 43 +#define R_MIPS_TLS_DTPREL_HI16 44 +#define R_MIPS_TLS_DTPREL_LO16 45 +#define R_MIPS_TLS_GOTTPREL 46 +#define R_MIPS_TLS_TPREL32 47 +#define R_MIPS_TLS_TPREL64 48 +#define R_MIPS_TLS_TPREL_HI16 49 +#define R_MIPS_TLS_TPREL_LO16 50 +#define R_MIPS_GLOB_DAT 51 +#define R_MIPS_COPY 126 +#define R_MIPS_JUMP_SLOT 127 + +#define R_MIPS_NUM 128 + + + +#define PT_MIPS_REGINFO 0x70000000 +#define PT_MIPS_RTPROC 0x70000001 +#define PT_MIPS_OPTIONS 0x70000002 +#define PT_MIPS_ABIFLAGS 0x70000003 + + + +#define PF_MIPS_LOCAL 0x10000000 + + + +#define DT_MIPS_RLD_VERSION 0x70000001 +#define DT_MIPS_TIME_STAMP 0x70000002 +#define DT_MIPS_ICHECKSUM 0x70000003 +#define DT_MIPS_IVERSION 0x70000004 +#define DT_MIPS_FLAGS 0x70000005 +#define DT_MIPS_BASE_ADDRESS 0x70000006 +#define DT_MIPS_MSYM 0x70000007 +#define DT_MIPS_CONFLICT 0x70000008 +#define DT_MIPS_LIBLIST 0x70000009 +#define DT_MIPS_LOCAL_GOTNO 0x7000000a +#define DT_MIPS_CONFLICTNO 0x7000000b +#define DT_MIPS_LIBLISTNO 0x70000010 +#define DT_MIPS_SYMTABNO 0x70000011 +#define DT_MIPS_UNREFEXTNO 0x70000012 +#define DT_MIPS_GOTSYM 0x70000013 +#define DT_MIPS_HIPAGENO 0x70000014 +#define DT_MIPS_RLD_MAP 0x70000016 +#define DT_MIPS_DELTA_CLASS 0x70000017 +#define DT_MIPS_DELTA_CLASS_NO 0x70000018 + +#define DT_MIPS_DELTA_INSTANCE 0x70000019 +#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a + +#define DT_MIPS_DELTA_RELOC 0x7000001b +#define DT_MIPS_DELTA_RELOC_NO 0x7000001c + +#define DT_MIPS_DELTA_SYM 0x7000001d + +#define DT_MIPS_DELTA_SYM_NO 0x7000001e + +#define DT_MIPS_DELTA_CLASSSYM 0x70000020 + +#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 + +#define DT_MIPS_CXX_FLAGS 0x70000022 +#define DT_MIPS_PIXIE_INIT 0x70000023 +#define DT_MIPS_SYMBOL_LIB 0x70000024 +#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 +#define DT_MIPS_LOCAL_GOTIDX 0x70000026 +#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 +#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 +#define DT_MIPS_OPTIONS 0x70000029 +#define DT_MIPS_INTERFACE 0x7000002a +#define DT_MIPS_DYNSTR_ALIGN 0x7000002b +#define DT_MIPS_INTERFACE_SIZE 0x7000002c +#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d + +#define DT_MIPS_PERF_SUFFIX 0x7000002e + +#define DT_MIPS_COMPACT_SIZE 0x7000002f +#define DT_MIPS_GP_VALUE 0x70000030 +#define DT_MIPS_AUX_DYNAMIC 0x70000031 + +#define DT_MIPS_PLTGOT 0x70000032 + +#define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_RLD_MAP_REL 0x70000035 +#define DT_MIPS_NUM 0x36 + + + +#define RHF_NONE 0 +#define RHF_QUICKSTART (1 << 0) +#define RHF_NOTPOT (1 << 1) +#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) +#define RHF_NO_MOVE (1 << 3) +#define RHF_SGI_ONLY (1 << 4) +#define RHF_GUARANTEE_INIT (1 << 5) +#define RHF_DELTA_C_PLUS_PLUS (1 << 6) +#define RHF_GUARANTEE_START_INIT (1 << 7) +#define RHF_PIXIE (1 << 8) +#define RHF_DEFAULT_DELAY_LOAD (1 << 9) +#define RHF_REQUICKSTART (1 << 10) +#define RHF_REQUICKSTARTED (1 << 11) +#define RHF_CORD (1 << 12) +#define RHF_NO_UNRES_UNDEF (1 << 13) +#define RHF_RLD_ORDER_SAFE (1 << 14) + + + +typedef struct { + Elf32_Word l_name; + Elf32_Word l_time_stamp; + Elf32_Word l_checksum; + Elf32_Word l_version; + Elf32_Word l_flags; +} Elf32_Lib; + +typedef struct { + Elf64_Word l_name; + Elf64_Word l_time_stamp; + Elf64_Word l_checksum; + Elf64_Word l_version; + Elf64_Word l_flags; +} Elf64_Lib; + + + + +#define LL_NONE 0 +#define LL_EXACT_MATCH (1 << 0) +#define LL_IGNORE_INT_VER (1 << 1) +#define LL_REQUIRE_MINOR (1 << 2) +#define LL_EXPORTS (1 << 3) +#define LL_DELAY_LOAD (1 << 4) +#define LL_DELTA (1 << 5) + + + +typedef Elf32_Addr Elf32_Conflict; + +typedef struct { + Elf32_Half version; + unsigned char isa_level; + unsigned char isa_rev; + unsigned char gpr_size; + unsigned char cpr1_size; + unsigned char cpr2_size; + unsigned char fp_abi; + Elf32_Word isa_ext; + Elf32_Word ases; + Elf32_Word flags1; + Elf32_Word flags2; +} Elf_MIPS_ABIFlags_v0; + +#define MIPS_AFL_REG_NONE 0x00 +#define MIPS_AFL_REG_32 0x01 +#define MIPS_AFL_REG_64 0x02 +#define MIPS_AFL_REG_128 0x03 + +#define MIPS_AFL_ASE_DSP 0x00000001 +#define MIPS_AFL_ASE_DSPR2 0x00000002 +#define MIPS_AFL_ASE_EVA 0x00000004 +#define MIPS_AFL_ASE_MCU 0x00000008 +#define MIPS_AFL_ASE_MDMX 0x00000010 +#define MIPS_AFL_ASE_MIPS3D 0x00000020 +#define MIPS_AFL_ASE_MT 0x00000040 +#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 +#define MIPS_AFL_ASE_VIRT 0x00000100 +#define MIPS_AFL_ASE_MSA 0x00000200 +#define MIPS_AFL_ASE_MIPS16 0x00000400 +#define MIPS_AFL_ASE_MICROMIPS 0x00000800 +#define MIPS_AFL_ASE_XPA 0x00001000 +#define MIPS_AFL_ASE_MASK 0x00001fff + +#define MIPS_AFL_EXT_XLR 1 +#define MIPS_AFL_EXT_OCTEON2 2 +#define MIPS_AFL_EXT_OCTEONP 3 +#define MIPS_AFL_EXT_LOONGSON_3A 4 +#define MIPS_AFL_EXT_OCTEON 5 +#define MIPS_AFL_EXT_5900 6 +#define MIPS_AFL_EXT_4650 7 +#define MIPS_AFL_EXT_4010 8 +#define MIPS_AFL_EXT_4100 9 +#define MIPS_AFL_EXT_3900 10 +#define MIPS_AFL_EXT_10000 11 +#define MIPS_AFL_EXT_SB1 12 +#define MIPS_AFL_EXT_4111 13 +#define MIPS_AFL_EXT_4120 14 +#define MIPS_AFL_EXT_5400 15 +#define MIPS_AFL_EXT_5500 16 +#define MIPS_AFL_EXT_LOONGSON_2E 17 +#define MIPS_AFL_EXT_LOONGSON_2F 18 + +#define MIPS_AFL_FLAGS1_ODDSPREG 1 + +enum +{ + Val_GNU_MIPS_ABI_FP_ANY = 0, + Val_GNU_MIPS_ABI_FP_DOUBLE = 1, + Val_GNU_MIPS_ABI_FP_SINGLE = 2, + Val_GNU_MIPS_ABI_FP_SOFT = 3, + Val_GNU_MIPS_ABI_FP_OLD_64 = 4, + Val_GNU_MIPS_ABI_FP_XX = 5, + Val_GNU_MIPS_ABI_FP_64 = 6, + Val_GNU_MIPS_ABI_FP_64A = 7, + Val_GNU_MIPS_ABI_FP_MAX = 7 +}; + + + + +#define EF_PARISC_TRAPNIL 0x00010000 +#define EF_PARISC_EXT 0x00020000 +#define EF_PARISC_LSB 0x00040000 +#define EF_PARISC_WIDE 0x00080000 +#define EF_PARISC_NO_KABP 0x00100000 + +#define EF_PARISC_LAZYSWAP 0x00400000 +#define EF_PARISC_ARCH 0x0000ffff + + + +#define EFA_PARISC_1_0 0x020b +#define EFA_PARISC_1_1 0x0210 +#define EFA_PARISC_2_0 0x0214 + + + +#define SHN_PARISC_ANSI_COMMON 0xff00 + +#define SHN_PARISC_HUGE_COMMON 0xff01 + + + +#define SHT_PARISC_EXT 0x70000000 +#define SHT_PARISC_UNWIND 0x70000001 +#define SHT_PARISC_DOC 0x70000002 + + + +#define SHF_PARISC_SHORT 0x20000000 +#define SHF_PARISC_HUGE 0x40000000 +#define SHF_PARISC_SBP 0x80000000 + + + +#define STT_PARISC_MILLICODE 13 + +#define STT_HP_OPAQUE (STT_LOOS + 0x1) +#define STT_HP_STUB (STT_LOOS + 0x2) + + + +#define R_PARISC_NONE 0 +#define R_PARISC_DIR32 1 +#define R_PARISC_DIR21L 2 +#define R_PARISC_DIR17R 3 +#define R_PARISC_DIR17F 4 +#define R_PARISC_DIR14R 6 +#define R_PARISC_PCREL32 9 +#define R_PARISC_PCREL21L 10 +#define R_PARISC_PCREL17R 11 +#define R_PARISC_PCREL17F 12 +#define R_PARISC_PCREL14R 14 +#define R_PARISC_DPREL21L 18 +#define R_PARISC_DPREL14R 22 +#define R_PARISC_GPREL21L 26 +#define R_PARISC_GPREL14R 30 +#define R_PARISC_LTOFF21L 34 +#define R_PARISC_LTOFF14R 38 +#define R_PARISC_SECREL32 41 +#define R_PARISC_SEGBASE 48 +#define R_PARISC_SEGREL32 49 +#define R_PARISC_PLTOFF21L 50 +#define R_PARISC_PLTOFF14R 54 +#define R_PARISC_LTOFF_FPTR32 57 +#define R_PARISC_LTOFF_FPTR21L 58 +#define R_PARISC_LTOFF_FPTR14R 62 +#define R_PARISC_FPTR64 64 +#define R_PARISC_PLABEL32 65 +#define R_PARISC_PLABEL21L 66 +#define R_PARISC_PLABEL14R 70 +#define R_PARISC_PCREL64 72 +#define R_PARISC_PCREL22F 74 +#define R_PARISC_PCREL14WR 75 +#define R_PARISC_PCREL14DR 76 +#define R_PARISC_PCREL16F 77 +#define R_PARISC_PCREL16WF 78 +#define R_PARISC_PCREL16DF 79 +#define R_PARISC_DIR64 80 +#define R_PARISC_DIR14WR 83 +#define R_PARISC_DIR14DR 84 +#define R_PARISC_DIR16F 85 +#define R_PARISC_DIR16WF 86 +#define R_PARISC_DIR16DF 87 +#define R_PARISC_GPREL64 88 +#define R_PARISC_GPREL14WR 91 +#define R_PARISC_GPREL14DR 92 +#define R_PARISC_GPREL16F 93 +#define R_PARISC_GPREL16WF 94 +#define R_PARISC_GPREL16DF 95 +#define R_PARISC_LTOFF64 96 +#define R_PARISC_LTOFF14WR 99 +#define R_PARISC_LTOFF14DR 100 +#define R_PARISC_LTOFF16F 101 +#define R_PARISC_LTOFF16WF 102 +#define R_PARISC_LTOFF16DF 103 +#define R_PARISC_SECREL64 104 +#define R_PARISC_SEGREL64 112 +#define R_PARISC_PLTOFF14WR 115 +#define R_PARISC_PLTOFF14DR 116 +#define R_PARISC_PLTOFF16F 117 +#define R_PARISC_PLTOFF16WF 118 +#define R_PARISC_PLTOFF16DF 119 +#define R_PARISC_LTOFF_FPTR64 120 +#define R_PARISC_LTOFF_FPTR14WR 123 +#define R_PARISC_LTOFF_FPTR14DR 124 +#define R_PARISC_LTOFF_FPTR16F 125 +#define R_PARISC_LTOFF_FPTR16WF 126 +#define R_PARISC_LTOFF_FPTR16DF 127 +#define R_PARISC_LORESERVE 128 +#define R_PARISC_COPY 128 +#define R_PARISC_IPLT 129 +#define R_PARISC_EPLT 130 +#define R_PARISC_TPREL32 153 +#define R_PARISC_TPREL21L 154 +#define R_PARISC_TPREL14R 158 +#define R_PARISC_LTOFF_TP21L 162 +#define R_PARISC_LTOFF_TP14R 166 +#define R_PARISC_LTOFF_TP14F 167 +#define R_PARISC_TPREL64 216 +#define R_PARISC_TPREL14WR 219 +#define R_PARISC_TPREL14DR 220 +#define R_PARISC_TPREL16F 221 +#define R_PARISC_TPREL16WF 222 +#define R_PARISC_TPREL16DF 223 +#define R_PARISC_LTOFF_TP64 224 +#define R_PARISC_LTOFF_TP14WR 227 +#define R_PARISC_LTOFF_TP14DR 228 +#define R_PARISC_LTOFF_TP16F 229 +#define R_PARISC_LTOFF_TP16WF 230 +#define R_PARISC_LTOFF_TP16DF 231 +#define R_PARISC_GNU_VTENTRY 232 +#define R_PARISC_GNU_VTINHERIT 233 +#define R_PARISC_TLS_GD21L 234 +#define R_PARISC_TLS_GD14R 235 +#define R_PARISC_TLS_GDCALL 236 +#define R_PARISC_TLS_LDM21L 237 +#define R_PARISC_TLS_LDM14R 238 +#define R_PARISC_TLS_LDMCALL 239 +#define R_PARISC_TLS_LDO21L 240 +#define R_PARISC_TLS_LDO14R 241 +#define R_PARISC_TLS_DTPMOD32 242 +#define R_PARISC_TLS_DTPMOD64 243 +#define R_PARISC_TLS_DTPOFF32 244 +#define R_PARISC_TLS_DTPOFF64 245 +#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L +#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R +#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L +#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R +#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 +#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 +#define R_PARISC_HIRESERVE 255 + + + +#define PT_HP_TLS (PT_LOOS + 0x0) +#define PT_HP_CORE_NONE (PT_LOOS + 0x1) +#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) +#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) +#define PT_HP_CORE_COMM (PT_LOOS + 0x4) +#define PT_HP_CORE_PROC (PT_LOOS + 0x5) +#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) +#define PT_HP_CORE_STACK (PT_LOOS + 0x7) +#define PT_HP_CORE_SHM (PT_LOOS + 0x8) +#define PT_HP_CORE_MMF (PT_LOOS + 0x9) +#define PT_HP_PARALLEL (PT_LOOS + 0x10) +#define PT_HP_FASTBIND (PT_LOOS + 0x11) +#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) +#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) +#define PT_HP_STACK (PT_LOOS + 0x14) + +#define PT_PARISC_ARCHEXT 0x70000000 +#define PT_PARISC_UNWIND 0x70000001 + + + +#define PF_PARISC_SBP 0x08000000 + +#define PF_HP_PAGE_SIZE 0x00100000 +#define PF_HP_FAR_SHARED 0x00200000 +#define PF_HP_NEAR_SHARED 0x00400000 +#define PF_HP_CODE 0x01000000 +#define PF_HP_MODIFY 0x02000000 +#define PF_HP_LAZYSWAP 0x04000000 +#define PF_HP_SBP 0x08000000 + + + + + + +#define EF_ALPHA_32BIT 1 +#define EF_ALPHA_CANRELAX 2 + + + + +#define SHT_ALPHA_DEBUG 0x70000001 +#define SHT_ALPHA_REGINFO 0x70000002 + + + +#define SHF_ALPHA_GPREL 0x10000000 + + +#define STO_ALPHA_NOPV 0x80 +#define STO_ALPHA_STD_GPLOAD 0x88 + + + +#define R_ALPHA_NONE 0 +#define R_ALPHA_REFLONG 1 +#define R_ALPHA_REFQUAD 2 +#define R_ALPHA_GPREL32 3 +#define R_ALPHA_LITERAL 4 +#define R_ALPHA_LITUSE 5 +#define R_ALPHA_GPDISP 6 +#define R_ALPHA_BRADDR 7 +#define R_ALPHA_HINT 8 +#define R_ALPHA_SREL16 9 +#define R_ALPHA_SREL32 10 +#define R_ALPHA_SREL64 11 +#define R_ALPHA_GPRELHIGH 17 +#define R_ALPHA_GPRELLOW 18 +#define R_ALPHA_GPREL16 19 +#define R_ALPHA_COPY 24 +#define R_ALPHA_GLOB_DAT 25 +#define R_ALPHA_JMP_SLOT 26 +#define R_ALPHA_RELATIVE 27 +#define R_ALPHA_TLS_GD_HI 28 +#define R_ALPHA_TLSGD 29 +#define R_ALPHA_TLS_LDM 30 +#define R_ALPHA_DTPMOD64 31 +#define R_ALPHA_GOTDTPREL 32 +#define R_ALPHA_DTPREL64 33 +#define R_ALPHA_DTPRELHI 34 +#define R_ALPHA_DTPRELLO 35 +#define R_ALPHA_DTPREL16 36 +#define R_ALPHA_GOTTPREL 37 +#define R_ALPHA_TPREL64 38 +#define R_ALPHA_TPRELHI 39 +#define R_ALPHA_TPRELLO 40 +#define R_ALPHA_TPREL16 41 + +#define R_ALPHA_NUM 46 + + +#define LITUSE_ALPHA_ADDR 0 +#define LITUSE_ALPHA_BASE 1 +#define LITUSE_ALPHA_BYTOFF 2 +#define LITUSE_ALPHA_JSR 3 +#define LITUSE_ALPHA_TLS_GD 4 +#define LITUSE_ALPHA_TLS_LDM 5 + + +#define DT_ALPHA_PLTRO (DT_LOPROC + 0) +#define DT_ALPHA_NUM 1 + + + + +#define EF_PPC_EMB 0x80000000 + + +#define EF_PPC_RELOCATABLE 0x00010000 +#define EF_PPC_RELOCATABLE_LIB 0x00008000 + + + +#define R_PPC_NONE 0 +#define R_PPC_ADDR32 1 +#define R_PPC_ADDR24 2 +#define R_PPC_ADDR16 3 +#define R_PPC_ADDR16_LO 4 +#define R_PPC_ADDR16_HI 5 +#define R_PPC_ADDR16_HA 6 +#define R_PPC_ADDR14 7 +#define R_PPC_ADDR14_BRTAKEN 8 +#define R_PPC_ADDR14_BRNTAKEN 9 +#define R_PPC_REL24 10 +#define R_PPC_REL14 11 +#define R_PPC_REL14_BRTAKEN 12 +#define R_PPC_REL14_BRNTAKEN 13 +#define R_PPC_GOT16 14 +#define R_PPC_GOT16_LO 15 +#define R_PPC_GOT16_HI 16 +#define R_PPC_GOT16_HA 17 +#define R_PPC_PLTREL24 18 +#define R_PPC_COPY 19 +#define R_PPC_GLOB_DAT 20 +#define R_PPC_JMP_SLOT 21 +#define R_PPC_RELATIVE 22 +#define R_PPC_LOCAL24PC 23 +#define R_PPC_UADDR32 24 +#define R_PPC_UADDR16 25 +#define R_PPC_REL32 26 +#define R_PPC_PLT32 27 +#define R_PPC_PLTREL32 28 +#define R_PPC_PLT16_LO 29 +#define R_PPC_PLT16_HI 30 +#define R_PPC_PLT16_HA 31 +#define R_PPC_SDAREL16 32 +#define R_PPC_SECTOFF 33 +#define R_PPC_SECTOFF_LO 34 +#define R_PPC_SECTOFF_HI 35 +#define R_PPC_SECTOFF_HA 36 + + +#define R_PPC_TLS 67 +#define R_PPC_DTPMOD32 68 +#define R_PPC_TPREL16 69 +#define R_PPC_TPREL16_LO 70 +#define R_PPC_TPREL16_HI 71 +#define R_PPC_TPREL16_HA 72 +#define R_PPC_TPREL32 73 +#define R_PPC_DTPREL16 74 +#define R_PPC_DTPREL16_LO 75 +#define R_PPC_DTPREL16_HI 76 +#define R_PPC_DTPREL16_HA 77 +#define R_PPC_DTPREL32 78 +#define R_PPC_GOT_TLSGD16 79 +#define R_PPC_GOT_TLSGD16_LO 80 +#define R_PPC_GOT_TLSGD16_HI 81 +#define R_PPC_GOT_TLSGD16_HA 82 +#define R_PPC_GOT_TLSLD16 83 +#define R_PPC_GOT_TLSLD16_LO 84 +#define R_PPC_GOT_TLSLD16_HI 85 +#define R_PPC_GOT_TLSLD16_HA 86 +#define R_PPC_GOT_TPREL16 87 +#define R_PPC_GOT_TPREL16_LO 88 +#define R_PPC_GOT_TPREL16_HI 89 +#define R_PPC_GOT_TPREL16_HA 90 +#define R_PPC_GOT_DTPREL16 91 +#define R_PPC_GOT_DTPREL16_LO 92 +#define R_PPC_GOT_DTPREL16_HI 93 +#define R_PPC_GOT_DTPREL16_HA 94 +#define R_PPC_TLSGD 95 +#define R_PPC_TLSLD 96 + + +#define R_PPC_EMB_NADDR32 101 +#define R_PPC_EMB_NADDR16 102 +#define R_PPC_EMB_NADDR16_LO 103 +#define R_PPC_EMB_NADDR16_HI 104 +#define R_PPC_EMB_NADDR16_HA 105 +#define R_PPC_EMB_SDAI16 106 +#define R_PPC_EMB_SDA2I16 107 +#define R_PPC_EMB_SDA2REL 108 +#define R_PPC_EMB_SDA21 109 +#define R_PPC_EMB_MRKREF 110 +#define R_PPC_EMB_RELSEC16 111 +#define R_PPC_EMB_RELST_LO 112 +#define R_PPC_EMB_RELST_HI 113 +#define R_PPC_EMB_RELST_HA 114 +#define R_PPC_EMB_BIT_FLD 115 +#define R_PPC_EMB_RELSDA 116 + + +#define R_PPC_DIAB_SDA21_LO 180 +#define R_PPC_DIAB_SDA21_HI 181 +#define R_PPC_DIAB_SDA21_HA 182 +#define R_PPC_DIAB_RELSDA_LO 183 +#define R_PPC_DIAB_RELSDA_HI 184 +#define R_PPC_DIAB_RELSDA_HA 185 + + +#define R_PPC_IRELATIVE 248 + + +#define R_PPC_REL16 249 +#define R_PPC_REL16_LO 250 +#define R_PPC_REL16_HI 251 +#define R_PPC_REL16_HA 252 + + + +#define R_PPC_TOC16 255 + + +#define DT_PPC_GOT (DT_LOPROC + 0) +#define DT_PPC_OPT (DT_LOPROC + 1) +#define DT_PPC_NUM 2 + +#define PPC_OPT_TLS 1 + + +#define R_PPC64_NONE R_PPC_NONE +#define R_PPC64_ADDR32 R_PPC_ADDR32 +#define R_PPC64_ADDR24 R_PPC_ADDR24 +#define R_PPC64_ADDR16 R_PPC_ADDR16 +#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO +#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI +#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA +#define R_PPC64_ADDR14 R_PPC_ADDR14 +#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN +#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN +#define R_PPC64_REL24 R_PPC_REL24 +#define R_PPC64_REL14 R_PPC_REL14 +#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN +#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN +#define R_PPC64_GOT16 R_PPC_GOT16 +#define R_PPC64_GOT16_LO R_PPC_GOT16_LO +#define R_PPC64_GOT16_HI R_PPC_GOT16_HI +#define R_PPC64_GOT16_HA R_PPC_GOT16_HA + +#define R_PPC64_COPY R_PPC_COPY +#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT +#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT +#define R_PPC64_RELATIVE R_PPC_RELATIVE + +#define R_PPC64_UADDR32 R_PPC_UADDR32 +#define R_PPC64_UADDR16 R_PPC_UADDR16 +#define R_PPC64_REL32 R_PPC_REL32 +#define R_PPC64_PLT32 R_PPC_PLT32 +#define R_PPC64_PLTREL32 R_PPC_PLTREL32 +#define R_PPC64_PLT16_LO R_PPC_PLT16_LO +#define R_PPC64_PLT16_HI R_PPC_PLT16_HI +#define R_PPC64_PLT16_HA R_PPC_PLT16_HA + +#define R_PPC64_SECTOFF R_PPC_SECTOFF +#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO +#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI +#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA +#define R_PPC64_ADDR30 37 +#define R_PPC64_ADDR64 38 +#define R_PPC64_ADDR16_HIGHER 39 +#define R_PPC64_ADDR16_HIGHERA 40 +#define R_PPC64_ADDR16_HIGHEST 41 +#define R_PPC64_ADDR16_HIGHESTA 42 +#define R_PPC64_UADDR64 43 +#define R_PPC64_REL64 44 +#define R_PPC64_PLT64 45 +#define R_PPC64_PLTREL64 46 +#define R_PPC64_TOC16 47 +#define R_PPC64_TOC16_LO 48 +#define R_PPC64_TOC16_HI 49 +#define R_PPC64_TOC16_HA 50 +#define R_PPC64_TOC 51 +#define R_PPC64_PLTGOT16 52 +#define R_PPC64_PLTGOT16_LO 53 +#define R_PPC64_PLTGOT16_HI 54 +#define R_PPC64_PLTGOT16_HA 55 + +#define R_PPC64_ADDR16_DS 56 +#define R_PPC64_ADDR16_LO_DS 57 +#define R_PPC64_GOT16_DS 58 +#define R_PPC64_GOT16_LO_DS 59 +#define R_PPC64_PLT16_LO_DS 60 +#define R_PPC64_SECTOFF_DS 61 +#define R_PPC64_SECTOFF_LO_DS 62 +#define R_PPC64_TOC16_DS 63 +#define R_PPC64_TOC16_LO_DS 64 +#define R_PPC64_PLTGOT16_DS 65 +#define R_PPC64_PLTGOT16_LO_DS 66 + + +#define R_PPC64_TLS 67 +#define R_PPC64_DTPMOD64 68 +#define R_PPC64_TPREL16 69 +#define R_PPC64_TPREL16_LO 70 +#define R_PPC64_TPREL16_HI 71 +#define R_PPC64_TPREL16_HA 72 +#define R_PPC64_TPREL64 73 +#define R_PPC64_DTPREL16 74 +#define R_PPC64_DTPREL16_LO 75 +#define R_PPC64_DTPREL16_HI 76 +#define R_PPC64_DTPREL16_HA 77 +#define R_PPC64_DTPREL64 78 +#define R_PPC64_GOT_TLSGD16 79 +#define R_PPC64_GOT_TLSGD16_LO 80 +#define R_PPC64_GOT_TLSGD16_HI 81 +#define R_PPC64_GOT_TLSGD16_HA 82 +#define R_PPC64_GOT_TLSLD16 83 +#define R_PPC64_GOT_TLSLD16_LO 84 +#define R_PPC64_GOT_TLSLD16_HI 85 +#define R_PPC64_GOT_TLSLD16_HA 86 +#define R_PPC64_GOT_TPREL16_DS 87 +#define R_PPC64_GOT_TPREL16_LO_DS 88 +#define R_PPC64_GOT_TPREL16_HI 89 +#define R_PPC64_GOT_TPREL16_HA 90 +#define R_PPC64_GOT_DTPREL16_DS 91 +#define R_PPC64_GOT_DTPREL16_LO_DS 92 +#define R_PPC64_GOT_DTPREL16_HI 93 +#define R_PPC64_GOT_DTPREL16_HA 94 +#define R_PPC64_TPREL16_DS 95 +#define R_PPC64_TPREL16_LO_DS 96 +#define R_PPC64_TPREL16_HIGHER 97 +#define R_PPC64_TPREL16_HIGHERA 98 +#define R_PPC64_TPREL16_HIGHEST 99 +#define R_PPC64_TPREL16_HIGHESTA 100 +#define R_PPC64_DTPREL16_DS 101 +#define R_PPC64_DTPREL16_LO_DS 102 +#define R_PPC64_DTPREL16_HIGHER 103 +#define R_PPC64_DTPREL16_HIGHERA 104 +#define R_PPC64_DTPREL16_HIGHEST 105 +#define R_PPC64_DTPREL16_HIGHESTA 106 +#define R_PPC64_TLSGD 107 +#define R_PPC64_TLSLD 108 +#define R_PPC64_TOCSAVE 109 +#define R_PPC64_ADDR16_HIGH 110 +#define R_PPC64_ADDR16_HIGHA 111 +#define R_PPC64_TPREL16_HIGH 112 +#define R_PPC64_TPREL16_HIGHA 113 +#define R_PPC64_DTPREL16_HIGH 114 +#define R_PPC64_DTPREL16_HIGHA 115 + + +#define R_PPC64_JMP_IREL 247 +#define R_PPC64_IRELATIVE 248 +#define R_PPC64_REL16 249 +#define R_PPC64_REL16_LO 250 +#define R_PPC64_REL16_HI 251 +#define R_PPC64_REL16_HA 252 + +#define EF_PPC64_ABI 3 + +#define DT_PPC64_GLINK (DT_LOPROC + 0) +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) +#define DT_PPC64_OPT (DT_LOPROC + 3) +#define DT_PPC64_NUM 4 + +#define PPC64_OPT_TLS 1 +#define PPC64_OPT_MULTI_TOC 2 + +#define STO_PPC64_LOCAL_BIT 5 +#define STO_PPC64_LOCAL_MASK 0xe0 +#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc) + + +#define EF_ARM_RELEXEC 0x01 +#define EF_ARM_HASENTRY 0x02 +#define EF_ARM_INTERWORK 0x04 +#define EF_ARM_APCS_26 0x08 +#define EF_ARM_APCS_FLOAT 0x10 +#define EF_ARM_PIC 0x20 +#define EF_ARM_ALIGN8 0x40 +#define EF_ARM_NEW_ABI 0x80 +#define EF_ARM_OLD_ABI 0x100 +#define EF_ARM_SOFT_FLOAT 0x200 +#define EF_ARM_VFP_FLOAT 0x400 +#define EF_ARM_MAVERICK_FLOAT 0x800 + +#define EF_ARM_ABI_FLOAT_SOFT 0x200 +#define EF_ARM_ABI_FLOAT_HARD 0x400 + + +#define EF_ARM_SYMSARESORTED 0x04 +#define EF_ARM_DYNSYMSUSESEGIDX 0x08 +#define EF_ARM_MAPSYMSFIRST 0x10 +#define EF_ARM_EABIMASK 0XFF000000 + + +#define EF_ARM_BE8 0x00800000 +#define EF_ARM_LE8 0x00400000 + +#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) +#define EF_ARM_EABI_UNKNOWN 0x00000000 +#define EF_ARM_EABI_VER1 0x01000000 +#define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 + + +#define STT_ARM_TFUNC STT_LOPROC +#define STT_ARM_16BIT STT_HIPROC + + +#define SHF_ARM_ENTRYSECT 0x10000000 +#define SHF_ARM_COMDEF 0x80000000 + + + +#define PF_ARM_SB 0x10000000 + +#define PF_ARM_PI 0x20000000 +#define PF_ARM_ABS 0x40000000 + + +#define PT_ARM_EXIDX (PT_LOPROC + 1) + + +#define SHT_ARM_EXIDX (SHT_LOPROC + 1) +#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) +#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) + +#define R_AARCH64_NONE 0 +#define R_AARCH64_P32_ABS32 1 +#define R_AARCH64_P32_COPY 180 +#define R_AARCH64_P32_GLOB_DAT 181 +#define R_AARCH64_P32_JUMP_SLOT 182 +#define R_AARCH64_P32_RELATIVE 183 +#define R_AARCH64_P32_TLS_DTPMOD 184 +#define R_AARCH64_P32_TLS_DTPREL 185 +#define R_AARCH64_P32_TLS_TPREL 186 +#define R_AARCH64_P32_TLSDESC 187 +#define R_AARCH64_P32_IRELATIVE 188 +#define R_AARCH64_ABS64 257 +#define R_AARCH64_ABS32 258 +#define R_AARCH64_ABS16 259 +#define R_AARCH64_PREL64 260 +#define R_AARCH64_PREL32 261 +#define R_AARCH64_PREL16 262 +#define R_AARCH64_MOVW_UABS_G0 263 +#define R_AARCH64_MOVW_UABS_G0_NC 264 +#define R_AARCH64_MOVW_UABS_G1 265 +#define R_AARCH64_MOVW_UABS_G1_NC 266 +#define R_AARCH64_MOVW_UABS_G2 267 +#define R_AARCH64_MOVW_UABS_G2_NC 268 +#define R_AARCH64_MOVW_UABS_G3 269 +#define R_AARCH64_MOVW_SABS_G0 270 +#define R_AARCH64_MOVW_SABS_G1 271 +#define R_AARCH64_MOVW_SABS_G2 272 +#define R_AARCH64_LD_PREL_LO19 273 +#define R_AARCH64_ADR_PREL_LO21 274 +#define R_AARCH64_ADR_PREL_PG_HI21 275 +#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 +#define R_AARCH64_ADD_ABS_LO12_NC 277 +#define R_AARCH64_LDST8_ABS_LO12_NC 278 +#define R_AARCH64_TSTBR14 279 +#define R_AARCH64_CONDBR19 280 +#define R_AARCH64_JUMP26 282 +#define R_AARCH64_CALL26 283 +#define R_AARCH64_LDST16_ABS_LO12_NC 284 +#define R_AARCH64_LDST32_ABS_LO12_NC 285 +#define R_AARCH64_LDST64_ABS_LO12_NC 286 +#define R_AARCH64_MOVW_PREL_G0 287 +#define R_AARCH64_MOVW_PREL_G0_NC 288 +#define R_AARCH64_MOVW_PREL_G1 289 +#define R_AARCH64_MOVW_PREL_G1_NC 290 +#define R_AARCH64_MOVW_PREL_G2 291 +#define R_AARCH64_MOVW_PREL_G2_NC 292 +#define R_AARCH64_MOVW_PREL_G3 293 +#define R_AARCH64_LDST128_ABS_LO12_NC 299 +#define R_AARCH64_MOVW_GOTOFF_G0 300 +#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 +#define R_AARCH64_MOVW_GOTOFF_G1 302 +#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 +#define R_AARCH64_MOVW_GOTOFF_G2 304 +#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 +#define R_AARCH64_MOVW_GOTOFF_G3 306 +#define R_AARCH64_GOTREL64 307 +#define R_AARCH64_GOTREL32 308 +#define R_AARCH64_GOT_LD_PREL19 309 +#define R_AARCH64_LD64_GOTOFF_LO15 310 +#define R_AARCH64_ADR_GOT_PAGE 311 +#define R_AARCH64_LD64_GOT_LO12_NC 312 +#define R_AARCH64_LD64_GOTPAGE_LO15 313 +#define R_AARCH64_TLSGD_ADR_PREL21 512 +#define R_AARCH64_TLSGD_ADR_PAGE21 513 +#define R_AARCH64_TLSGD_ADD_LO12_NC 514 +#define R_AARCH64_TLSGD_MOVW_G1 515 +#define R_AARCH64_TLSGD_MOVW_G0_NC 516 +#define R_AARCH64_TLSLD_ADR_PREL21 517 +#define R_AARCH64_TLSLD_ADR_PAGE21 518 +#define R_AARCH64_TLSLD_ADD_LO12_NC 519 +#define R_AARCH64_TLSLD_MOVW_G1 520 +#define R_AARCH64_TLSLD_MOVW_G0_NC 521 +#define R_AARCH64_TLSLD_LD_PREL19 522 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 +#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 +#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 +#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 +#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 +#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 +#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 +#define R_AARCH64_TLSDESC_LD_PREL19 560 +#define R_AARCH64_TLSDESC_ADR_PREL21 561 +#define R_AARCH64_TLSDESC_ADR_PAGE21 562 +#define R_AARCH64_TLSDESC_LD64_LO12 563 +#define R_AARCH64_TLSDESC_ADD_LO12 564 +#define R_AARCH64_TLSDESC_OFF_G1 565 +#define R_AARCH64_TLSDESC_OFF_G0_NC 566 +#define R_AARCH64_TLSDESC_LDR 567 +#define R_AARCH64_TLSDESC_ADD 568 +#define R_AARCH64_TLSDESC_CALL 569 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 +#define R_AARCH64_COPY 1024 +#define R_AARCH64_GLOB_DAT 1025 +#define R_AARCH64_JUMP_SLOT 1026 +#define R_AARCH64_RELATIVE 1027 +#define R_AARCH64_TLS_DTPMOD 1028 +#define R_AARCH64_TLS_DTPMOD64 1028 +#define R_AARCH64_TLS_DTPREL 1029 +#define R_AARCH64_TLS_DTPREL64 1029 +#define R_AARCH64_TLS_TPREL 1030 +#define R_AARCH64_TLS_TPREL64 1030 +#define R_AARCH64_TLSDESC 1031 + + +#define R_ARM_NONE 0 +#define R_ARM_PC24 1 +#define R_ARM_ABS32 2 +#define R_ARM_REL32 3 +#define R_ARM_PC13 4 +#define R_ARM_ABS16 5 +#define R_ARM_ABS12 6 +#define R_ARM_THM_ABS5 7 +#define R_ARM_ABS8 8 +#define R_ARM_SBREL32 9 +#define R_ARM_THM_PC22 10 +#define R_ARM_THM_PC8 11 +#define R_ARM_AMP_VCALL9 12 +#define R_ARM_TLS_DESC 13 +#define R_ARM_THM_SWI8 14 +#define R_ARM_XPC25 15 +#define R_ARM_THM_XPC22 16 +#define R_ARM_TLS_DTPMOD32 17 +#define R_ARM_TLS_DTPOFF32 18 +#define R_ARM_TLS_TPOFF32 19 +#define R_ARM_COPY 20 +#define R_ARM_GLOB_DAT 21 +#define R_ARM_JUMP_SLOT 22 +#define R_ARM_RELATIVE 23 +#define R_ARM_GOTOFF 24 +#define R_ARM_GOTPC 25 +#define R_ARM_GOT32 26 +#define R_ARM_PLT32 27 +#define R_ARM_CALL 28 +#define R_ARM_JUMP24 29 +#define R_ARM_THM_JUMP24 30 +#define R_ARM_BASE_ABS 31 +#define R_ARM_ALU_PCREL_7_0 32 +#define R_ARM_ALU_PCREL_15_8 33 +#define R_ARM_ALU_PCREL_23_15 34 +#define R_ARM_LDR_SBREL_11_0 35 +#define R_ARM_ALU_SBREL_19_12 36 +#define R_ARM_ALU_SBREL_27_20 37 +#define R_ARM_TARGET1 38 +#define R_ARM_SBREL31 39 +#define R_ARM_V4BX 40 +#define R_ARM_TARGET2 41 +#define R_ARM_PREL31 42 +#define R_ARM_MOVW_ABS_NC 43 +#define R_ARM_MOVT_ABS 44 +#define R_ARM_MOVW_PREL_NC 45 +#define R_ARM_MOVT_PREL 46 +#define R_ARM_THM_MOVW_ABS_NC 47 +#define R_ARM_THM_MOVT_ABS 48 +#define R_ARM_THM_MOVW_PREL_NC 49 +#define R_ARM_THM_MOVT_PREL 50 +#define R_ARM_THM_JUMP19 51 +#define R_ARM_THM_JUMP6 52 +#define R_ARM_THM_ALU_PREL_11_0 53 +#define R_ARM_THM_PC12 54 +#define R_ARM_ABS32_NOI 55 +#define R_ARM_REL32_NOI 56 +#define R_ARM_ALU_PC_G0_NC 57 +#define R_ARM_ALU_PC_G0 58 +#define R_ARM_ALU_PC_G1_NC 59 +#define R_ARM_ALU_PC_G1 60 +#define R_ARM_ALU_PC_G2 61 +#define R_ARM_LDR_PC_G1 62 +#define R_ARM_LDR_PC_G2 63 +#define R_ARM_LDRS_PC_G0 64 +#define R_ARM_LDRS_PC_G1 65 +#define R_ARM_LDRS_PC_G2 66 +#define R_ARM_LDC_PC_G0 67 +#define R_ARM_LDC_PC_G1 68 +#define R_ARM_LDC_PC_G2 69 +#define R_ARM_ALU_SB_G0_NC 70 +#define R_ARM_ALU_SB_G0 71 +#define R_ARM_ALU_SB_G1_NC 72 +#define R_ARM_ALU_SB_G1 73 +#define R_ARM_ALU_SB_G2 74 +#define R_ARM_LDR_SB_G0 75 +#define R_ARM_LDR_SB_G1 76 +#define R_ARM_LDR_SB_G2 77 +#define R_ARM_LDRS_SB_G0 78 +#define R_ARM_LDRS_SB_G1 79 +#define R_ARM_LDRS_SB_G2 80 +#define R_ARM_LDC_SB_G0 81 +#define R_ARM_LDC_SB_G1 82 +#define R_ARM_LDC_SB_G2 83 +#define R_ARM_MOVW_BREL_NC 84 +#define R_ARM_MOVT_BREL 85 +#define R_ARM_MOVW_BREL 86 +#define R_ARM_THM_MOVW_BREL_NC 87 +#define R_ARM_THM_MOVT_BREL 88 +#define R_ARM_THM_MOVW_BREL 89 +#define R_ARM_TLS_GOTDESC 90 +#define R_ARM_TLS_CALL 91 +#define R_ARM_TLS_DESCSEQ 92 +#define R_ARM_THM_TLS_CALL 93 +#define R_ARM_PLT32_ABS 94 +#define R_ARM_GOT_ABS 95 +#define R_ARM_GOT_PREL 96 +#define R_ARM_GOT_BREL12 97 +#define R_ARM_GOTOFF12 98 +#define R_ARM_GOTRELAX 99 +#define R_ARM_GNU_VTENTRY 100 +#define R_ARM_GNU_VTINHERIT 101 +#define R_ARM_THM_PC11 102 +#define R_ARM_THM_PC9 103 +#define R_ARM_TLS_GD32 104 + +#define R_ARM_TLS_LDM32 105 + +#define R_ARM_TLS_LDO32 106 + +#define R_ARM_TLS_IE32 107 + +#define R_ARM_TLS_LE32 108 +#define R_ARM_TLS_LDO12 109 +#define R_ARM_TLS_LE12 110 +#define R_ARM_TLS_IE12GP 111 +#define R_ARM_ME_TOO 128 +#define R_ARM_THM_TLS_DESCSEQ 129 +#define R_ARM_THM_TLS_DESCSEQ16 129 +#define R_ARM_THM_TLS_DESCSEQ32 130 +#define R_ARM_THM_GOT_BREL12 131 +#define R_ARM_IRELATIVE 160 +#define R_ARM_RXPC25 249 +#define R_ARM_RSBREL32 250 +#define R_ARM_THM_RPC22 251 +#define R_ARM_RREL32 252 +#define R_ARM_RABS22 253 +#define R_ARM_RPC24 254 +#define R_ARM_RBASE 255 + +#define R_ARM_NUM 256 + + + + +#define EF_IA_64_MASKOS 0x0000000f +#define EF_IA_64_ABI64 0x00000010 +#define EF_IA_64_ARCH 0xff000000 + + +#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) +#define PT_IA_64_UNWIND (PT_LOPROC + 1) +#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) +#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) +#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) + + +#define PF_IA_64_NORECOV 0x80000000 + + +#define SHT_IA_64_EXT (SHT_LOPROC + 0) +#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) + + +#define SHF_IA_64_SHORT 0x10000000 +#define SHF_IA_64_NORECOV 0x20000000 + + +#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) +#define DT_IA_64_NUM 1 + + +#define R_IA64_NONE 0x00 +#define R_IA64_IMM14 0x21 +#define R_IA64_IMM22 0x22 +#define R_IA64_IMM64 0x23 +#define R_IA64_DIR32MSB 0x24 +#define R_IA64_DIR32LSB 0x25 +#define R_IA64_DIR64MSB 0x26 +#define R_IA64_DIR64LSB 0x27 +#define R_IA64_GPREL22 0x2a +#define R_IA64_GPREL64I 0x2b +#define R_IA64_GPREL32MSB 0x2c +#define R_IA64_GPREL32LSB 0x2d +#define R_IA64_GPREL64MSB 0x2e +#define R_IA64_GPREL64LSB 0x2f +#define R_IA64_LTOFF22 0x32 +#define R_IA64_LTOFF64I 0x33 +#define R_IA64_PLTOFF22 0x3a +#define R_IA64_PLTOFF64I 0x3b +#define R_IA64_PLTOFF64MSB 0x3e +#define R_IA64_PLTOFF64LSB 0x3f +#define R_IA64_FPTR64I 0x43 +#define R_IA64_FPTR32MSB 0x44 +#define R_IA64_FPTR32LSB 0x45 +#define R_IA64_FPTR64MSB 0x46 +#define R_IA64_FPTR64LSB 0x47 +#define R_IA64_PCREL60B 0x48 +#define R_IA64_PCREL21B 0x49 +#define R_IA64_PCREL21M 0x4a +#define R_IA64_PCREL21F 0x4b +#define R_IA64_PCREL32MSB 0x4c +#define R_IA64_PCREL32LSB 0x4d +#define R_IA64_PCREL64MSB 0x4e +#define R_IA64_PCREL64LSB 0x4f +#define R_IA64_LTOFF_FPTR22 0x52 +#define R_IA64_LTOFF_FPTR64I 0x53 +#define R_IA64_LTOFF_FPTR32MSB 0x54 +#define R_IA64_LTOFF_FPTR32LSB 0x55 +#define R_IA64_LTOFF_FPTR64MSB 0x56 +#define R_IA64_LTOFF_FPTR64LSB 0x57 +#define R_IA64_SEGREL32MSB 0x5c +#define R_IA64_SEGREL32LSB 0x5d +#define R_IA64_SEGREL64MSB 0x5e +#define R_IA64_SEGREL64LSB 0x5f +#define R_IA64_SECREL32MSB 0x64 +#define R_IA64_SECREL32LSB 0x65 +#define R_IA64_SECREL64MSB 0x66 +#define R_IA64_SECREL64LSB 0x67 +#define R_IA64_REL32MSB 0x6c +#define R_IA64_REL32LSB 0x6d +#define R_IA64_REL64MSB 0x6e +#define R_IA64_REL64LSB 0x6f +#define R_IA64_LTV32MSB 0x74 +#define R_IA64_LTV32LSB 0x75 +#define R_IA64_LTV64MSB 0x76 +#define R_IA64_LTV64LSB 0x77 +#define R_IA64_PCREL21BI 0x79 +#define R_IA64_PCREL22 0x7a +#define R_IA64_PCREL64I 0x7b +#define R_IA64_IPLTMSB 0x80 +#define R_IA64_IPLTLSB 0x81 +#define R_IA64_COPY 0x84 +#define R_IA64_SUB 0x85 +#define R_IA64_LTOFF22X 0x86 +#define R_IA64_LDXMOV 0x87 +#define R_IA64_TPREL14 0x91 +#define R_IA64_TPREL22 0x92 +#define R_IA64_TPREL64I 0x93 +#define R_IA64_TPREL64MSB 0x96 +#define R_IA64_TPREL64LSB 0x97 +#define R_IA64_LTOFF_TPREL22 0x9a +#define R_IA64_DTPMOD64MSB 0xa6 +#define R_IA64_DTPMOD64LSB 0xa7 +#define R_IA64_LTOFF_DTPMOD22 0xaa +#define R_IA64_DTPREL14 0xb1 +#define R_IA64_DTPREL22 0xb2 +#define R_IA64_DTPREL64I 0xb3 +#define R_IA64_DTPREL32MSB 0xb4 +#define R_IA64_DTPREL32LSB 0xb5 +#define R_IA64_DTPREL64MSB 0xb6 +#define R_IA64_DTPREL64LSB 0xb7 +#define R_IA64_LTOFF_DTPREL22 0xba + + +#define EF_SH_MACH_MASK 0x1f +#define EF_SH_UNKNOWN 0x0 +#define EF_SH1 0x1 +#define EF_SH2 0x2 +#define EF_SH3 0x3 +#define EF_SH_DSP 0x4 +#define EF_SH3_DSP 0x5 +#define EF_SH4AL_DSP 0x6 +#define EF_SH3E 0x8 +#define EF_SH4 0x9 +#define EF_SH2E 0xb +#define EF_SH4A 0xc +#define EF_SH2A 0xd +#define EF_SH4_NOFPU 0x10 +#define EF_SH4A_NOFPU 0x11 +#define EF_SH4_NOMMU_NOFPU 0x12 +#define EF_SH2A_NOFPU 0x13 +#define EF_SH3_NOMMU 0x14 +#define EF_SH2A_SH4_NOFPU 0x15 +#define EF_SH2A_SH3_NOFPU 0x16 +#define EF_SH2A_SH4 0x17 +#define EF_SH2A_SH3E 0x18 + +#define R_SH_NONE 0 +#define R_SH_DIR32 1 +#define R_SH_REL32 2 +#define R_SH_DIR8WPN 3 +#define R_SH_IND12W 4 +#define R_SH_DIR8WPL 5 +#define R_SH_DIR8WPZ 6 +#define R_SH_DIR8BP 7 +#define R_SH_DIR8W 8 +#define R_SH_DIR8L 9 +#define R_SH_SWITCH16 25 +#define R_SH_SWITCH32 26 +#define R_SH_USES 27 +#define R_SH_COUNT 28 +#define R_SH_ALIGN 29 +#define R_SH_CODE 30 +#define R_SH_DATA 31 +#define R_SH_LABEL 32 +#define R_SH_SWITCH8 33 +#define R_SH_GNU_VTINHERIT 34 +#define R_SH_GNU_VTENTRY 35 +#define R_SH_TLS_GD_32 144 +#define R_SH_TLS_LD_32 145 +#define R_SH_TLS_LDO_32 146 +#define R_SH_TLS_IE_32 147 +#define R_SH_TLS_LE_32 148 +#define R_SH_TLS_DTPMOD32 149 +#define R_SH_TLS_DTPOFF32 150 +#define R_SH_TLS_TPOFF32 151 +#define R_SH_GOT32 160 +#define R_SH_PLT32 161 +#define R_SH_COPY 162 +#define R_SH_GLOB_DAT 163 +#define R_SH_JMP_SLOT 164 +#define R_SH_RELATIVE 165 +#define R_SH_GOTOFF 166 +#define R_SH_GOTPC 167 +#define R_SH_GOT20 201 +#define R_SH_GOTOFF20 202 +#define R_SH_GOTFUNCDESC 203 +#define R_SH_GOTFUNCDEST20 204 +#define R_SH_GOTOFFFUNCDESC 205 +#define R_SH_GOTOFFFUNCDEST20 206 +#define R_SH_FUNCDESC 207 +#define R_SH_FUNCDESC_VALUE 208 + +#define R_SH_NUM 256 + + + +#define R_390_NONE 0 +#define R_390_8 1 +#define R_390_12 2 +#define R_390_16 3 +#define R_390_32 4 +#define R_390_PC32 5 +#define R_390_GOT12 6 +#define R_390_GOT32 7 +#define R_390_PLT32 8 +#define R_390_COPY 9 +#define R_390_GLOB_DAT 10 +#define R_390_JMP_SLOT 11 +#define R_390_RELATIVE 12 +#define R_390_GOTOFF32 13 +#define R_390_GOTPC 14 +#define R_390_GOT16 15 +#define R_390_PC16 16 +#define R_390_PC16DBL 17 +#define R_390_PLT16DBL 18 +#define R_390_PC32DBL 19 +#define R_390_PLT32DBL 20 +#define R_390_GOTPCDBL 21 +#define R_390_64 22 +#define R_390_PC64 23 +#define R_390_GOT64 24 +#define R_390_PLT64 25 +#define R_390_GOTENT 26 +#define R_390_GOTOFF16 27 +#define R_390_GOTOFF64 28 +#define R_390_GOTPLT12 29 +#define R_390_GOTPLT16 30 +#define R_390_GOTPLT32 31 +#define R_390_GOTPLT64 32 +#define R_390_GOTPLTENT 33 +#define R_390_PLTOFF16 34 +#define R_390_PLTOFF32 35 +#define R_390_PLTOFF64 36 +#define R_390_TLS_LOAD 37 +#define R_390_TLS_GDCALL 38 + +#define R_390_TLS_LDCALL 39 + +#define R_390_TLS_GD32 40 + +#define R_390_TLS_GD64 41 + +#define R_390_TLS_GOTIE12 42 + +#define R_390_TLS_GOTIE32 43 + +#define R_390_TLS_GOTIE64 44 + +#define R_390_TLS_LDM32 45 + +#define R_390_TLS_LDM64 46 + +#define R_390_TLS_IE32 47 + +#define R_390_TLS_IE64 48 + +#define R_390_TLS_IEENT 49 + +#define R_390_TLS_LE32 50 + +#define R_390_TLS_LE64 51 + +#define R_390_TLS_LDO32 52 + +#define R_390_TLS_LDO64 53 + +#define R_390_TLS_DTPMOD 54 +#define R_390_TLS_DTPOFF 55 +#define R_390_TLS_TPOFF 56 + +#define R_390_20 57 +#define R_390_GOT20 58 +#define R_390_GOTPLT20 59 +#define R_390_TLS_GOTIE20 60 + + +#define R_390_NUM 61 + + + +#define R_CRIS_NONE 0 +#define R_CRIS_8 1 +#define R_CRIS_16 2 +#define R_CRIS_32 3 +#define R_CRIS_8_PCREL 4 +#define R_CRIS_16_PCREL 5 +#define R_CRIS_32_PCREL 6 +#define R_CRIS_GNU_VTINHERIT 7 +#define R_CRIS_GNU_VTENTRY 8 +#define R_CRIS_COPY 9 +#define R_CRIS_GLOB_DAT 10 +#define R_CRIS_JUMP_SLOT 11 +#define R_CRIS_RELATIVE 12 +#define R_CRIS_16_GOT 13 +#define R_CRIS_32_GOT 14 +#define R_CRIS_16_GOTPLT 15 +#define R_CRIS_32_GOTPLT 16 +#define R_CRIS_32_GOTREL 17 +#define R_CRIS_32_PLT_GOTREL 18 +#define R_CRIS_32_PLT_PCREL 19 + +#define R_CRIS_NUM 20 + + + +#define R_X86_64_NONE 0 +#define R_X86_64_64 1 +#define R_X86_64_PC32 2 +#define R_X86_64_GOT32 3 +#define R_X86_64_PLT32 4 +#define R_X86_64_COPY 5 +#define R_X86_64_GLOB_DAT 6 +#define R_X86_64_JUMP_SLOT 7 +#define R_X86_64_RELATIVE 8 +#define R_X86_64_GOTPCREL 9 + +#define R_X86_64_32 10 +#define R_X86_64_32S 11 +#define R_X86_64_16 12 +#define R_X86_64_PC16 13 +#define R_X86_64_8 14 +#define R_X86_64_PC8 15 +#define R_X86_64_DTPMOD64 16 +#define R_X86_64_DTPOFF64 17 +#define R_X86_64_TPOFF64 18 +#define R_X86_64_TLSGD 19 + +#define R_X86_64_TLSLD 20 + +#define R_X86_64_DTPOFF32 21 +#define R_X86_64_GOTTPOFF 22 + +#define R_X86_64_TPOFF32 23 +#define R_X86_64_PC64 24 +#define R_X86_64_GOTOFF64 25 +#define R_X86_64_GOTPC32 26 +#define R_X86_64_GOT64 27 +#define R_X86_64_GOTPCREL64 28 +#define R_X86_64_GOTPC64 29 +#define R_X86_64_GOTPLT64 30 +#define R_X86_64_PLTOFF64 31 +#define R_X86_64_SIZE32 32 +#define R_X86_64_SIZE64 33 + +#define R_X86_64_GOTPC32_TLSDESC 34 +#define R_X86_64_TLSDESC_CALL 35 + +#define R_X86_64_TLSDESC 36 +#define R_X86_64_IRELATIVE 37 +#define R_X86_64_RELATIVE64 38 +#define R_X86_64_GOTPCRELX 41 +#define R_X86_64_REX_GOTPCRELX 42 +#define R_X86_64_NUM 43 + + + +#define R_MN10300_NONE 0 +#define R_MN10300_32 1 +#define R_MN10300_16 2 +#define R_MN10300_8 3 +#define R_MN10300_PCREL32 4 +#define R_MN10300_PCREL16 5 +#define R_MN10300_PCREL8 6 +#define R_MN10300_GNU_VTINHERIT 7 +#define R_MN10300_GNU_VTENTRY 8 +#define R_MN10300_24 9 +#define R_MN10300_GOTPC32 10 +#define R_MN10300_GOTPC16 11 +#define R_MN10300_GOTOFF32 12 +#define R_MN10300_GOTOFF24 13 +#define R_MN10300_GOTOFF16 14 +#define R_MN10300_PLT32 15 +#define R_MN10300_PLT16 16 +#define R_MN10300_GOT32 17 +#define R_MN10300_GOT24 18 +#define R_MN10300_GOT16 19 +#define R_MN10300_COPY 20 +#define R_MN10300_GLOB_DAT 21 +#define R_MN10300_JMP_SLOT 22 +#define R_MN10300_RELATIVE 23 + +#define R_MN10300_NUM 24 + + + +#define R_M32R_NONE 0 +#define R_M32R_16 1 +#define R_M32R_32 2 +#define R_M32R_24 3 +#define R_M32R_10_PCREL 4 +#define R_M32R_18_PCREL 5 +#define R_M32R_26_PCREL 6 +#define R_M32R_HI16_ULO 7 +#define R_M32R_HI16_SLO 8 +#define R_M32R_LO16 9 +#define R_M32R_SDA16 10 +#define R_M32R_GNU_VTINHERIT 11 +#define R_M32R_GNU_VTENTRY 12 + +#define R_M32R_16_RELA 33 +#define R_M32R_32_RELA 34 +#define R_M32R_24_RELA 35 +#define R_M32R_10_PCREL_RELA 36 +#define R_M32R_18_PCREL_RELA 37 +#define R_M32R_26_PCREL_RELA 38 +#define R_M32R_HI16_ULO_RELA 39 +#define R_M32R_HI16_SLO_RELA 40 +#define R_M32R_LO16_RELA 41 +#define R_M32R_SDA16_RELA 42 +#define R_M32R_RELA_GNU_VTINHERIT 43 +#define R_M32R_RELA_GNU_VTENTRY 44 +#define R_M32R_REL32 45 + +#define R_M32R_GOT24 48 +#define R_M32R_26_PLTREL 49 +#define R_M32R_COPY 50 +#define R_M32R_GLOB_DAT 51 +#define R_M32R_JMP_SLOT 52 +#define R_M32R_RELATIVE 53 +#define R_M32R_GOTOFF 54 +#define R_M32R_GOTPC24 55 +#define R_M32R_GOT16_HI_ULO 56 + +#define R_M32R_GOT16_HI_SLO 57 + +#define R_M32R_GOT16_LO 58 +#define R_M32R_GOTPC_HI_ULO 59 + +#define R_M32R_GOTPC_HI_SLO 60 + +#define R_M32R_GOTPC_LO 61 + +#define R_M32R_GOTOFF_HI_ULO 62 + +#define R_M32R_GOTOFF_HI_SLO 63 + +#define R_M32R_GOTOFF_LO 64 +#define R_M32R_NUM 256 + +#define R_MICROBLAZE_NONE 0 +#define R_MICROBLAZE_32 1 +#define R_MICROBLAZE_32_PCREL 2 +#define R_MICROBLAZE_64_PCREL 3 +#define R_MICROBLAZE_32_PCREL_LO 4 +#define R_MICROBLAZE_64 5 +#define R_MICROBLAZE_32_LO 6 +#define R_MICROBLAZE_SRO32 7 +#define R_MICROBLAZE_SRW32 8 +#define R_MICROBLAZE_64_NONE 9 +#define R_MICROBLAZE_32_SYM_OP_SYM 10 +#define R_MICROBLAZE_GNU_VTINHERIT 11 +#define R_MICROBLAZE_GNU_VTENTRY 12 +#define R_MICROBLAZE_GOTPC_64 13 +#define R_MICROBLAZE_GOT_64 14 +#define R_MICROBLAZE_PLT_64 15 +#define R_MICROBLAZE_REL 16 +#define R_MICROBLAZE_JUMP_SLOT 17 +#define R_MICROBLAZE_GLOB_DAT 18 +#define R_MICROBLAZE_GOTOFF_64 19 +#define R_MICROBLAZE_GOTOFF_32 20 +#define R_MICROBLAZE_COPY 21 +#define R_MICROBLAZE_TLS 22 +#define R_MICROBLAZE_TLSGD 23 +#define R_MICROBLAZE_TLSLD 24 +#define R_MICROBLAZE_TLSDTPMOD32 25 +#define R_MICROBLAZE_TLSDTPREL32 26 +#define R_MICROBLAZE_TLSDTPREL64 27 +#define R_MICROBLAZE_TLSGOTTPREL32 28 +#define R_MICROBLAZE_TLSTPREL32 29 + +#define DT_NIOS2_GP 0x70000002 + +#define R_NIOS2_NONE 0 +#define R_NIOS2_S16 1 +#define R_NIOS2_U16 2 +#define R_NIOS2_PCREL16 3 +#define R_NIOS2_CALL26 4 +#define R_NIOS2_IMM5 5 +#define R_NIOS2_CACHE_OPX 6 +#define R_NIOS2_IMM6 7 +#define R_NIOS2_IMM8 8 +#define R_NIOS2_HI16 9 +#define R_NIOS2_LO16 10 +#define R_NIOS2_HIADJ16 11 +#define R_NIOS2_BFD_RELOC_32 12 +#define R_NIOS2_BFD_RELOC_16 13 +#define R_NIOS2_BFD_RELOC_8 14 +#define R_NIOS2_GPREL 15 +#define R_NIOS2_GNU_VTINHERIT 16 +#define R_NIOS2_GNU_VTENTRY 17 +#define R_NIOS2_UJMP 18 +#define R_NIOS2_CJMP 19 +#define R_NIOS2_CALLR 20 +#define R_NIOS2_ALIGN 21 +#define R_NIOS2_GOT16 22 +#define R_NIOS2_CALL16 23 +#define R_NIOS2_GOTOFF_LO 24 +#define R_NIOS2_GOTOFF_HA 25 +#define R_NIOS2_PCREL_LO 26 +#define R_NIOS2_PCREL_HA 27 +#define R_NIOS2_TLS_GD16 28 +#define R_NIOS2_TLS_LDM16 29 +#define R_NIOS2_TLS_LDO16 30 +#define R_NIOS2_TLS_IE16 31 +#define R_NIOS2_TLS_LE16 32 +#define R_NIOS2_TLS_DTPMOD 33 +#define R_NIOS2_TLS_DTPREL 34 +#define R_NIOS2_TLS_TPREL 35 +#define R_NIOS2_COPY 36 +#define R_NIOS2_GLOB_DAT 37 +#define R_NIOS2_JUMP_SLOT 38 +#define R_NIOS2_RELATIVE 39 +#define R_NIOS2_GOTOFF 40 +#define R_NIOS2_CALL26_NOAT 41 +#define R_NIOS2_GOT_LO 42 +#define R_NIOS2_GOT_HA 43 +#define R_NIOS2_CALL_LO 44 +#define R_NIOS2_CALL_HA 45 + +#define R_OR1K_NONE 0 +#define R_OR1K_32 1 +#define R_OR1K_16 2 +#define R_OR1K_8 3 +#define R_OR1K_LO_16_IN_INSN 4 +#define R_OR1K_HI_16_IN_INSN 5 +#define R_OR1K_INSN_REL_26 6 +#define R_OR1K_GNU_VTENTRY 7 +#define R_OR1K_GNU_VTINHERIT 8 +#define R_OR1K_32_PCREL 9 +#define R_OR1K_16_PCREL 10 +#define R_OR1K_8_PCREL 11 +#define R_OR1K_GOTPC_HI16 12 +#define R_OR1K_GOTPC_LO16 13 +#define R_OR1K_GOT16 14 +#define R_OR1K_PLT26 15 +#define R_OR1K_GOTOFF_HI16 16 +#define R_OR1K_GOTOFF_LO16 17 +#define R_OR1K_COPY 18 +#define R_OR1K_GLOB_DAT 19 +#define R_OR1K_JMP_SLOT 20 +#define R_OR1K_RELATIVE 21 +#define R_OR1K_TLS_GD_HI16 22 +#define R_OR1K_TLS_GD_LO16 23 +#define R_OR1K_TLS_LDM_HI16 24 +#define R_OR1K_TLS_LDM_LO16 25 +#define R_OR1K_TLS_LDO_HI16 26 +#define R_OR1K_TLS_LDO_LO16 27 +#define R_OR1K_TLS_IE_HI16 28 +#define R_OR1K_TLS_IE_LO16 29 +#define R_OR1K_TLS_LE_HI16 30 +#define R_OR1K_TLS_LE_LO16 31 +#define R_OR1K_TLS_TPOFF 32 +#define R_OR1K_TLS_DTPOFF 33 +#define R_OR1K_TLS_DTPMOD 34 + +#define R_BPF_NONE 0 +#define R_BPF_MAP_FD 1 + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/libc/xtensa-lx106-elf/include/machine/_arc4random.h b/libc/xtensa-lx106-elf/include/machine/_arc4random.h index 52808d7..d7988a8 100644 --- a/libc/xtensa-lx106-elf/include/machine/_arc4random.h +++ b/libc/xtensa-lx106-elf/include/machine/_arc4random.h @@ -1 +1,32 @@ -/* Use default implementation, see arc4random.h */ +/* + * Copyright (c) 2017 + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +__BEGIN_DECLS + +void _arc4random_getentropy_fail(void); + +#define _ARC4RANDOM_DATA + +#define _ARC4RANDOM_GETENTROPY_FAIL() _arc4random_getentropy_fail() + +#define _ARC4RANDOM_ALLOCATE(rsp, rsxp) \ + do { *rsp = malloc(sizeof(**rsp)); \ + *rsxp = malloc(sizeof(**rsxp)); } \ + while (0) + +__END_DECLS diff --git a/libc/xtensa-lx106-elf/include/machine/ieeefp.h b/libc/xtensa-lx106-elf/include/machine/ieeefp.h index 23c03a7..19cc723 100644 --- a/libc/xtensa-lx106-elf/include/machine/ieeefp.h +++ b/libc/xtensa-lx106-elf/include/machine/ieeefp.h @@ -48,6 +48,23 @@ This represents what type a float arg is passed as. It is used when the type is not promoted to double. + + __OBSOLETE_MATH_DEFAULT + + Default value for __OBSOLETE_MATH if that's not set by the user. + It should be set here based on predefined feature macros. + + __OBSOLETE_MATH + + If set to 1 then some new math code will be disabled and older libm + code will be used instead. This is necessary because the new math + code does not support all targets, it assumes that the toolchain has + ISO C99 support (hexfloat literals, standard fenv semantics), the + target has IEEE-754 conforming binary32 float and binary64 double + (not mixed endian) representation, standard SNaN representation, + double and single precision arithmetics has similar latency and it + has no legacy SVID matherr support, only POSIX errno and fenv + exception based error handling. */ #if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) @@ -61,6 +78,7 @@ # else # define __IEEE_BIG_ENDIAN # endif +# define __OBSOLETE_MATH_DEFAULT 0 #else # define __IEEE_BIG_ENDIAN # ifdef __ARMEL__ @@ -75,6 +93,7 @@ #else #define __IEEE_BIG_ENDIAN #endif +#define __OBSOLETE_MATH_DEFAULT 0 #endif #ifdef __epiphany__ @@ -435,6 +454,14 @@ # endif #endif +#ifndef __OBSOLETE_MATH_DEFAULT +/* Use old math code by default. */ +#define __OBSOLETE_MATH_DEFAULT 1 +#endif +#ifndef __OBSOLETE_MATH +#define __OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT +#endif + #ifndef __IEEE_BIG_ENDIAN #ifndef __IEEE_LITTLE_ENDIAN #error Endianess not declared!! diff --git a/libc/xtensa-lx106-elf/include/pthread.h b/libc/xtensa-lx106-elf/include/pthread.h index 516131d..fb2fa93 100644 --- a/libc/xtensa-lx106-elf/include/pthread.h +++ b/libc/xtensa-lx106-elf/include/pthread.h @@ -171,9 +171,9 @@ int _EXFUN(pthread_setschedprio, (pthread_t thread, int prio)); #endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ #if __GNU_VISIBLE -int pthread_getname_np(pthread_t, char *, size_t) __nonnull(2); +int pthread_getname_np(pthread_t, char *, size_t) __nonnull((2)); -int pthread_setname_np(pthread_t, const char *) __nonnull(2); +int pthread_setname_np(pthread_t, const char *) __nonnull((2)); #endif #if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) diff --git a/libc/xtensa-lx106-elf/include/stdio.h b/libc/xtensa-lx106-elf/include/stdio.h index ee0f612..b648e62 100644 --- a/libc/xtensa-lx106-elf/include/stdio.h +++ b/libc/xtensa-lx106-elf/include/stdio.h @@ -796,4 +796,8 @@ _putchar_unlocked(int _c) _END_STD_C +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _STDIO_H_ */ diff --git a/libc/xtensa-lx106-elf/include/stdlib.h b/libc/xtensa-lx106-elf/include/stdlib.h index c4e6633..02c1faa 100644 --- a/libc/xtensa-lx106-elf/include/stdlib.h +++ b/libc/xtensa-lx106-elf/include/stdlib.h @@ -294,7 +294,7 @@ int _EXFUN(_unsetenv_r,(struct _reent *, const char *__string)); #endif /* !__CYGWIN__ */ #if __POSIX_VISIBLE >= 200112 -int _EXFUN(__nonnull (1) posix_memalign,(void **, size_t, size_t)); +int _EXFUN(__nonnull ((1)) posix_memalign,(void **, size_t, size_t)); #endif char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**)); @@ -346,4 +346,8 @@ _Noreturn void _END_STD_C +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _STDLIB_H_ */ diff --git a/libc/xtensa-lx106-elf/include/string.h b/libc/xtensa-lx106-elf/include/string.h index 9c536f3..b54b833 100644 --- a/libc/xtensa-lx106-elf/include/string.h +++ b/libc/xtensa-lx106-elf/include/string.h @@ -169,11 +169,15 @@ int _EXFUN(strverscmp,(const char *, const char *)); sure here. */ #if __GNU_VISIBLE && !defined(basename) # define basename basename -char *_EXFUN(__nonnull (1) basename,(const char *)) __asm__(__ASMNAME("__gnu_basename")); +char *_EXFUN(__nonnull ((1)) basename,(const char *)) __asm__(__ASMNAME("__gnu_basename")); #endif #include _END_STD_C +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _STRING_H_ */ diff --git a/libc/xtensa-lx106-elf/include/strings.h b/libc/xtensa-lx106-elf/include/strings.h index 122f2fc..7e2e557 100644 --- a/libc/xtensa-lx106-elf/include/strings.h +++ b/libc/xtensa-lx106-elf/include/strings.h @@ -53,11 +53,9 @@ void explicit_bzero(void *, size_t); #if __MISC_VISIBLE || __POSIX_VISIBLE < 200809 || __XSI_VISIBLE >= 700 int ffs(int) __pure2; #endif -#if __GNU_VISIBLE +#if __BSD_VISIBLE int ffsl(long) __pure2; int ffsll(long long) __pure2; -#endif -#if __BSD_VISIBLE int fls(int) __pure2; int flsl(long) __pure2; int flsll(long long) __pure2; @@ -75,4 +73,8 @@ int strncasecmp_l (const char *, const char *, size_t, locale_t); #endif __END_DECLS +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _STRINGS_H_ */ diff --git a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h index ede90c4..006e4ef 100644 --- a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h +++ b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h @@ -52,17 +52,29 @@ extern "C" { #define _FNOFOLLOW 0x100000 #define _FDIRECTORY 0x200000 #define _FEXECSRCH 0x400000 +#define _FTMPFILE 0x800000 +#define _FNOATIME 0x1000000 #define O_BINARY _FBINARY #define O_TEXT _FTEXT -#define O_CLOEXEC _FNOINHERIT -#define O_DIRECT _FDIRECT -#define O_NOFOLLOW _FNOFOLLOW #define O_DSYNC _FSYNC #define O_RSYNC _FSYNC -#define O_DIRECTORY _FDIRECTORY #define O_EXEC _FEXECSRCH #define O_SEARCH _FEXECSRCH + +/* POSIX-1.2008 specific flags */ +#if __POSIX_VISIBLE >= 200809 +#define O_CLOEXEC _FNOINHERIT +#define O_NOFOLLOW _FNOFOLLOW +#define O_DIRECTORY _FDIRECTORY +#endif + +/* Linux-specific flags */ +#if __GNU_VISIBLE +#define O_DIRECT _FDIRECT +#define O_TMPFILE _FTMPFILE +#define O_NOATIME _FNOATIME +#endif #endif #if __MISC_VISIBLE diff --git a/libc/xtensa-lx106-elf/include/sys/cdefs.h b/libc/xtensa-lx106-elf/include/sys/cdefs.h index 8ce14b6..db5f2bf 100644 --- a/libc/xtensa-lx106-elf/include/sys/cdefs.h +++ b/libc/xtensa-lx106-elf/include/sys/cdefs.h @@ -397,7 +397,7 @@ #endif #if __GNUC_PREREQ__(3, 3) -#define __nonnull(x) __attribute__((__nonnull__(x))) +#define __nonnull(x) __attribute__((__nonnull__ x)) #define __nonnull_all __attribute__((__nonnull__)) #else #define __nonnull(x) diff --git a/libc/xtensa-lx106-elf/include/sys/features.h b/libc/xtensa-lx106-elf/include/sys/features.h index c9133af..2900b33 100644 --- a/libc/xtensa-lx106-elf/include/sys/features.h +++ b/libc/xtensa-lx106-elf/include/sys/features.h @@ -100,6 +100,9 @@ extern "C" { * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE) * _DEFAULT_SOURCE (or none of the above) * POSIX-1.2008 with BSD and SVr4 extensions + * + * _FORTIFY_SOURCE = 1 or 2 + * Object Size Checking function wrappers */ #ifdef _GNU_SOURCE @@ -233,9 +236,11 @@ extern "C" { * __GNU_VISIBLE * GNU extensions; enabled with _GNU_SOURCE. * + * __SSP_FORTIFY_LEVEL + * Object Size Checking; defined to 0 (off), 1, or 2. + * * In all cases above, "enabled by default" means either by defining * _DEFAULT_SOURCE, or by not defining any of the public feature test macros. - * Defining _GNU_SOURCE makes all of the above avaliable. */ #ifdef _ATFILE_SOURCE @@ -314,6 +319,17 @@ extern "C" { #define __XSI_VISIBLE 0 #endif +#if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \ + (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) +# if _FORTIFY_SOURCE > 1 +# define __SSP_FORTIFY_LEVEL 2 +# else +# define __SSP_FORTIFY_LEVEL 1 +# endif +#else +# define __SSP_FORTIFY_LEVEL 0 +#endif + /* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ #ifdef __rtems__ @@ -448,7 +464,7 @@ extern "C" { #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L /* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ #define _POSIX_THREADS 200809L -/* #define _POSIX_TIMEOUTS -1 */ +#define _POSIX_TIMEOUTS 200809L #define _POSIX_TIMERS 200809L /* #define _POSIX_TRACE -1 */ /* #define _POSIX_TRACE_EVENT_FILTER -1 */ diff --git a/libc/xtensa-lx106-elf/include/sys/lock.h b/libc/xtensa-lx106-elf/include/sys/lock.h index 0ff3475..02701cb 100644 --- a/libc/xtensa-lx106-elf/include/sys/lock.h +++ b/libc/xtensa-lx106-elf/include/sys/lock.h @@ -22,8 +22,17 @@ typedef _lock_t _LOCK_T; Lock functions all take a pointer to the _lock_t entry, so the value stored there can be manipulated. */ +#if 0 #define __LOCK_INIT(CLASS,NAME) CLASS _lock_t NAME = 0; #define __LOCK_INIT_RECURSIVE(CLASS,NAME) CLASS _lock_t NAME = 0; +#else +/* + * Skip a 'static' class definition, so they are all visible and can + * be initialize at startup. + */ +#define __LOCK_INIT(CLASS,NAME) _lock_t NAME = 0; +#define __LOCK_INIT_RECURSIVE(CLASS,NAME) _lock_t NAME = 0; +#endif void _lock_init(_lock_t *lock); void _lock_init_recursive(_lock_t *lock); diff --git a/libc/xtensa-lx106-elf/include/sys/unistd.h b/libc/xtensa-lx106-elf/include/sys/unistd.h index 75f8a51..0596221 100644 --- a/libc/xtensa-lx106-elf/include/sys/unistd.h +++ b/libc/xtensa-lx106-elf/include/sys/unistd.h @@ -73,13 +73,17 @@ int _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const #if __ATFILE_VISIBLE int _EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags)); #endif -#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 +#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 int _EXFUN(fchdir, (int __fildes)); #endif +#if __POSIX_VISIBLE >= 199309 int _EXFUN(fchmod, (int __fildes, mode_t __mode )); +#endif #if !defined(__INSIDE_CYGWIN__) +#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group )); #endif +#endif #if __ATFILE_VISIBLE int _EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags)); #endif @@ -89,7 +93,9 @@ int _EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] )); pid_t _EXFUN(fork, (void )); long _EXFUN(fpathconf, (int __fd, int __name )); int _EXFUN(fsync, (int __fd)); +#if __POSIX_VISIBLE >= 199309 int _EXFUN(fdatasync, (int __fd)); +#endif #if __GNU_VISIBLE char * _EXFUN(get_current_dir_name, (void)); #endif @@ -113,12 +119,16 @@ char * _EXFUN(getlogin, (void )); #if defined(_POSIX_THREAD_SAFE_FUNCTIONS) int _EXFUN(getlogin_r, (char *name, size_t namesize) ); #endif +#if __BSD_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) char * _EXFUN(getpass, (const char *__prompt)); int _EXFUN(getpagesize, (void)); +#endif #if __BSD_VISIBLE int _EXFUN(getpeereid, (int, uid_t *, gid_t *)); #endif +#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 pid_t _EXFUN(getpgid, (pid_t)); +#endif pid_t _EXFUN(getpgrp, (void )); pid_t _EXFUN(getpid, (void )); pid_t _EXFUN(getppid, (void )); @@ -142,13 +152,17 @@ int _EXFUN(isatty, (int __fildes )); int _EXFUN(issetugid, (void)); #endif #if !defined(__INSIDE_CYGWIN__) +#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group )); #endif +#endif int _EXFUN(link, (const char *__path1, const char *__path2 )); #if __ATFILE_VISIBLE int _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags )); #endif +#if __MISC_VISIBLE || __XSI_VISIBLE int _EXFUN(nice, (int __nice_value )); +#endif #if !defined(__INSIDE_CYGWIN__) off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); #endif @@ -168,8 +182,10 @@ int _EXFUN(pipe, (int __fildes[2] )); #if __GNU_VISIBLE int _EXFUN(pipe2, (int __fildes[2], int flags)); #endif +#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset)); ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset)); +#endif _READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte )); #if __BSD_VISIBLE int _EXFUN(rresvport, (int *__alport)); @@ -179,7 +195,9 @@ int _EXFUN(rmdir, (const char *__path )); #if __BSD_VISIBLE int _EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser)); #endif +#if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) void * _EXFUN(sbrk, (ptrdiff_t __incr)); +#endif #if !defined(__INSIDE_CYGWIN__) #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 int _EXFUN(setegid, (gid_t __gid )); @@ -194,7 +212,9 @@ int _EXFUN(setgroups, (int ngroups, const gid_t *grouplist )); int _EXFUN(sethostname, (const char *, size_t)); #endif int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid )); +#if __SVID_VISIBLE || __XSI_VISIBLE >= 500 int _EXFUN(setpgrp, (void )); +#endif #if (__BSD_VISIBLE || __XSI_VISIBLE >= 4) && !defined(__INSIDE_CYGWIN__) int _EXFUN(setregid, (gid_t __rgid, gid_t __egid)); int _EXFUN(setreuid, (uid_t __ruid, uid_t __euid)); @@ -567,4 +587,9 @@ int _EXFUN(unlinkat, (int, const char *, int)); #ifdef __cplusplus } #endif + +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _SYS_UNISTD_H */ diff --git a/libc/xtensa-lx106-elf/include/wchar.h b/libc/xtensa-lx106-elf/include/wchar.h index 6b4eff9..3d98363 100644 --- a/libc/xtensa-lx106-elf/include/wchar.h +++ b/libc/xtensa-lx106-elf/include/wchar.h @@ -189,6 +189,10 @@ int _EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t)); wchar_t *_EXFUN(wmemcpy, (wchar_t *__restrict, const wchar_t *__restrict, size_t)); wchar_t *_EXFUN(wmemmove, (wchar_t *, const wchar_t *, size_t)); +#if __GNU_VISIBLE +wchar_t *_EXFUN(wmempcpy, (wchar_t *__restrict, const wchar_t *__restrict, + size_t)); +#endif wchar_t *_EXFUN(wmemset, (wchar_t *, wchar_t, size_t)); long _EXFUN(wcstol, (const wchar_t *__restrict, wchar_t **__restrict, int)); @@ -331,4 +335,8 @@ int _EXFUN(_wscanf_r, (struct _reent *, const wchar_t *, ...)); _END_STD_C +#if __SSP_FORTIFY_LEVEL > 0 +#include +#endif + #endif /* _WCHAR_H_ */ diff --git a/libc/xtensa-lx106-elf/lib/libc.a b/libc/xtensa-lx106-elf/lib/libc.a index 2c1132ea04789d3bd0b39042ca743ce7361c3265..d8751295bc241d1837bc12974e50aea58221f38e 100644 GIT binary patch delta 268946 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 KsV@!x$n@XY+1@7r delta 236324 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

        t3iTr0&TLd!HA2#JTtBy*^E#oBz^M4OY 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%0Ad#ww0I#$wF2 zT;E%{S#xgKordwSdHTm;`vQYL!YmX%rFx}ZQ*+lZ!#=7X5;xbhsJ=VA#U{JCbh2#H z6Dao9QMh7mQeCpDJGLBbP@w>S7&XC8WAP(N;Z>lfitp8a)mcVb$!TbF3qk%8JZEu`AE(@!NynoE%nUGt22=-d!ZvhJ^}E_)K&uh` zaWFC4j2l|r(8%olxn&7$#+q7YY$`3ooHe!VGuPi7Fs%Asb1}mwP{P{ROhP2`GLXakCUqBg*o%u<^RuHvu;)OYxR|D zVpZ&NBUQb$t$HO^*baK3dYyJ6F)ck(9hs9CWY!$1jt{PH|JIt`CyrMy z4K>=UwqL+RH&yoqOmv}%C5CzStLlWfdi_SXUKjIn<_(!S&b$u)ay_$_rOnB?;m3^n PY}QiU2Zr46iR1qOqF}^z diff --git a/libc/xtensa-lx106-elf/lib/libg.a b/libc/xtensa-lx106-elf/lib/libg.a index 2c1132ea04789d3bd0b39042ca743ce7361c3265..d8751295bc241d1837bc12974e50aea58221f38e 100644 GIT binary patch delta 268946 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 KsV@!x$n@XY+1@7r delta 236324 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

        t3iTr0&TLd!HA2#JTtBy*^E#oBz^M4OY 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%0Ad#ww0I#$wF2 zT;E%{S#xgKordwSdHTm;`vQYL!YmX%rFx}ZQ*+lZ!#=7X5;xbhsJ=VA#U{JCbh2#H z6Dao9QMh7mQeCpDJGLBbP@w>S7&XC8WAP(N;Z>lfitp8a)mcVb$!TbF3qk%8JZEu`AE(@!NynoE%nUGt22=-d!ZvhJ^}E_)K&uh` zaWFC4j2l|r(8%olxn&7$#+q7YY$`3ooHe!VGuPi7Fs%Asb1}mwP{P{ROhP2`GLXakCUqBg*o%u<^RuHvu;)OYxR|D zVpZ&NBUQb$t$HO^*baK3dYyJ6F)ck(9hs9CWY!$1jt{PH|JIt`CyrMy z4K>=UwqL+RH&yoqOmv}%C5CzStLlWfdi_SXUKjIn<_(!S&b$u)ay_$_rOnB?;m3^n PY}QiU2Zr46iR1qOqF}^z diff --git a/libc/xtensa-lx106-elf/lib/libm.a b/libc/xtensa-lx106-elf/lib/libm.a index 2285786dc75f25cdf40a966ed7b8ec9ee8f14168..b4822ccc99a7be50522c5fdb0e6aebec0a9461d8 100644 GIT binary patch delta 30075 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 QIkoupgtKKaOU Date: Wed, 13 Dec 2017 21:15:41 +1100 Subject: [PATCH 251/349] FreeRTOS v10 fixes. svn r2522: FreeRTOS kernel: Fix extern "C" { in stream_buffer.h. FreeRTOS kernel: Correct tskKERNEL_VERSION_NUMBER and tskKERNEL_VERSION_MAJOR constants for V10. Ensure the currently executing task is printed correctly in vTaskList(). --- FreeRTOS/Source/include/stream_buffer.h | 6 +++++- FreeRTOS/Source/include/task.h | 4 ++-- FreeRTOS/Source/tasks.c | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/FreeRTOS/Source/include/stream_buffer.h b/FreeRTOS/Source/include/stream_buffer.h index 55c6e6e..2ca9c6d 100644 --- a/FreeRTOS/Source/include/stream_buffer.h +++ b/FreeRTOS/Source/include/stream_buffer.h @@ -52,6 +52,10 @@ #ifndef STREAM_BUFFER_H #define STREAM_BUFFER_H +#if defined( __cplusplus ) +extern "C" { +#endif + /** * Type by which stream buffers are referenced. For example, a call to * xStreamBufferCreate() returns an StreamBufferHandle_t variable that can @@ -843,7 +847,7 @@ StreamBufferHandle_t xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, #endif #if defined( __cplusplus ) -extern "C" { +} #endif #endif /* !defined( STREAM_BUFFER_H ) */ diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index ca6866e..ae7097d 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -44,8 +44,8 @@ extern "C" { * MACROS AND DEFINITIONS *----------------------------------------------------------*/ -#define tskKERNEL_VERSION_NUMBER "V9.0.0" -#define tskKERNEL_VERSION_MAJOR 9 +#define tskKERNEL_VERSION_NUMBER "V10.0.0" +#define tskKERNEL_VERSION_MAJOR 10 #define tskKERNEL_VERSION_MINOR 0 #define tskKERNEL_VERSION_BUILD 0 diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c index f191614..5484046 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c @@ -110,6 +110,7 @@ set then don't fill the stack so there is no unnecessary dependency on memset. * /* * Macros used by vListTask to indicate which state a task is in. */ +#define tskRUNNING_CHAR ( 'X' ) #define tskBLOCKED_CHAR ( 'B' ) #define tskREADY_CHAR ( 'R' ) #define tskDELETED_CHAR ( 'D' ) @@ -4209,6 +4210,9 @@ TCB_t *pxTCB; { switch( pxTaskStatusArray[ x ].eCurrentState ) { + case eRunning: cStatus = tskRUNNING_CHAR; + break; + case eReady: cStatus = tskREADY_CHAR; break; From f27bc0f452f7904711fbd55ccf48ae1cc73eb0fc Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 14 Dec 2017 03:29:49 +1100 Subject: [PATCH 252/349] wificfg: remove the AP WEP mode option (#514) * wificfg: remove the AP WEP mode option The WEP mode does not appear to be implement in the sdk for the AP mode, and defaults to open when WEP is requested which is probably not intended. Remove the WEP option from the wifi config interface. * lwip: enable mdns dns queries. * wificfg: support mDNS on the softAP interface. --- extras/wificfg/content/wificfg/ap.html | 5 +- extras/wificfg/content/wificfg/sta.html | 2 +- extras/wificfg/wificfg.c | 143 ++++++++++++++---------- extras/wificfg/wificfg.h | 11 +- lwip/include/lwipopts.h | 6 + 5 files changed, 101 insertions(+), 66 deletions(-) diff --git a/extras/wificfg/content/wificfg/ap.html b/extras/wificfg/content/wificfg/ap.html index 8dbb730..7118c15 100644 --- a/extras/wificfg/content/wificfg/ap.html +++ b/extras/wificfg/content/wificfg/ap.html @@ -49,8 +49,6 @@ "

        " +"
        " +"
        " "" "
         
        " "" diff --git a/extras/wificfg/content/wificfg/sta.html b/extras/wificfg/content/wificfg/sta.html index 0df9e71..d46d4c0 100644 --- a/extras/wificfg/content/wificfg/sta.html +++ b/extras/wificfg/content/wificfg/sta.html @@ -60,7 +60,7 @@ "pattern=\"(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)_*(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)_*){3}\" " "name=\"sta_gateway\" placeholder=\"192.168.1.1\" value=\"", "\">" -"
        " +"
        " "
        " "" diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 60c9b3d..abed4ce 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -76,7 +76,7 @@ static int read_crlf_line(int s, char *buf, size_t len) do { char c; - int r = read(s, &c, 1); + ssize_t r = read(s, &c, 1); /* Expecting a known terminator so fail on EOF. */ if (r <= 0) @@ -101,7 +101,7 @@ static int read_crlf_line(int s, char *buf, size_t len) return num; } -int wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len) +ssize_t wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len) { size_t num = 0; @@ -110,7 +110,7 @@ int wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t le break; char c; - int r = read(s, &c, 1); + ssize_t r = read(s, &c, 1); /* Expecting a known number of characters so fail on EOF. */ if (r <= 0) return -1; @@ -243,7 +243,7 @@ static const struct { static wificfg_method intern_http_method(char *str) { - int i; + size_t i; for (i = 0; i < sizeof(method_table) / sizeof(method_table[0]); i++) { if (!strcmp(str, method_table[i].str)) return method_table[i].method; @@ -274,7 +274,7 @@ static const struct { static http_header intern_http_header(char *str) { - int i; + size_t i; for (i = 0; i < sizeof(http_header_table) / sizeof(http_header_table[0]); i++) { if (!strcmp(str, http_header_table[i].str)) return http_header_table[i].name; @@ -292,7 +292,7 @@ static const struct { static wificfg_content_type intern_http_content_type(char *str) { - int i; + size_t i; for (i = 0; i < sizeof(content_type_table) / sizeof(content_type_table[0]); i++) { if (!strcmp(str, content_type_table[i].str)) return content_type_table[i].type; @@ -318,13 +318,13 @@ static char *skip_to_whitespace(char *string) return string; } -int wificfg_write_string(int s, const char *str) +ssize_t wificfg_write_string(int s, const char *str) { - int res = write(s, str, strlen(str)); + ssize_t res = write(s, str, strlen(str)); return res; } -int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len) +ssize_t wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len) { size_t str_len = strlen(str); @@ -366,7 +366,7 @@ int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len) /* Else too big for the buffer. */ char size_buf[8]; size_t size_len = snprintf(size_buf, sizeof(size_buf), "%x\r\n", str_len); - int res = write(s, size_buf, size_len); + ssize_t res = write(s, size_buf, size_len); if (res != size_len) { return res; } @@ -377,7 +377,7 @@ int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len) return write(s, size_buf + size_len - 2, 2); } -int wificfg_write_chunk_end(int s) +ssize_t wificfg_write_chunk_end(int s) { return wificfg_write_string(s, "0\r\n\r\n"); } @@ -409,6 +409,7 @@ typedef enum { FORM_NAME_AP_NETMASK, FORM_NAME_AP_DHCP_LEASES, FORM_NAME_AP_DNS, + FORM_NAME_AP_MDNS, FORM_NAME_DONE, FORM_NAME_NONE } form_name; @@ -443,17 +444,18 @@ static const struct { {"ap_netmask", FORM_NAME_AP_NETMASK}, {"ap_dhcp_leases", FORM_NAME_AP_DHCP_LEASES}, {"ap_dns", FORM_NAME_AP_DNS}, + {"ap_mdns", FORM_NAME_AP_MDNS}, {"done", FORM_NAME_DONE} }; static form_name intern_form_name(char *str) { - int i; - for (i = 0; i < sizeof(form_name_table) / sizeof(form_name_table[0]); i++) { - if (!strcmp(str, form_name_table[i].str)) - return form_name_table[i].name; - } - return FORM_NAME_NONE; + size_t i; + for (i = 0; i < sizeof(form_name_table) / sizeof(form_name_table[0]); i++) { + if (!strcmp(str, form_name_table[i].str)) + return form_name_table[i].name; + } + return FORM_NAME_NONE; } @@ -838,7 +840,7 @@ static int handle_wificfg_index_post(int s, wificfg_method method, bool valp = false; while (rem > 0) { - int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + ssize_t r = wificfg_form_name_value(s, &valp, &rem, buf, len); if (r < 0) { break; @@ -849,7 +851,7 @@ static int handle_wificfg_index_post(int s, wificfg_method method, form_name name = intern_form_name(buf); if (valp) { - int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + ssize_t r = wificfg_form_name_value(s, NULL, &rem, buf, len); if (r < 0) { break; } @@ -1142,33 +1144,31 @@ static int handle_wifi_ap(int s, wificfg_method method, if (wificfg_write_string_chunk(s, http_wifi_ap_content[8], buf, len) < 0) return -1; - int8_t wifi_ap_authmode = 4; + int8_t wifi_ap_authmode = AUTH_WPA_WPA2_PSK; sysparam_get_int8("wifi_ap_authmode", &wifi_ap_authmode); - if (wifi_ap_authmode == 0 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wifi_ap_authmode == AUTH_OPEN && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; if (wificfg_write_string_chunk(s, http_wifi_ap_content[9], buf, len) < 0) return -1; - if (wifi_ap_authmode == 1 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wifi_ap_authmode == AUTH_WPA_PSK && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; if (wificfg_write_string_chunk(s, http_wifi_ap_content[10], buf, len) < 0) return -1; - if (wifi_ap_authmode == 2 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wifi_ap_authmode == AUTH_WPA2_PSK && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; if (wificfg_write_string_chunk(s, http_wifi_ap_content[11], buf, len) < 0) return -1; - if (wifi_ap_authmode == 3 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; - if (wificfg_write_string_chunk(s, http_wifi_ap_content[12], buf, len) < 0) return -1; - if (wifi_ap_authmode == 4 && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; + if (wifi_ap_authmode == AUTH_WPA_WPA2_PSK && wificfg_write_string_chunk(s, " selected", buf, len) < 0) return -1; - if (wificfg_write_string_chunk(s, http_wifi_ap_content[13], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[12], buf, len) < 0) return -1; int8_t wifi_ap_max_conn = 3; sysparam_get_int8("wifi_ap_max_conn", &wifi_ap_max_conn); snprintf(buf, len, "%u", wifi_ap_max_conn); if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; - if (wificfg_write_string_chunk(s, http_wifi_ap_content[14], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[13], buf, len) < 0) return -1; int32_t wifi_ap_beacon_interval = 100; sysparam_get_int32("wifi_ap_beacon_interval", &wifi_ap_beacon_interval); snprintf(buf, len, "%u", wifi_ap_beacon_interval); if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; - if (wificfg_write_string_chunk(s, http_wifi_ap_content[15], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[14], buf, len) < 0) return -1; char *wifi_ap_ip_addr = NULL; sysparam_get_string("wifi_ap_ip_addr", &wifi_ap_ip_addr); @@ -1178,7 +1178,7 @@ static int handle_wifi_ap(int s, wificfg_method method, if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; } - if (wificfg_write_string_chunk(s, http_wifi_ap_content[16], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[15], buf, len) < 0) return -1; char *wifi_ap_netmask = NULL; sysparam_get_string("wifi_ap_netmask", &wifi_ap_netmask); @@ -1188,18 +1188,25 @@ static int handle_wifi_ap(int s, wificfg_method method, if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; } - if (wificfg_write_string_chunk(s, http_wifi_ap_content[17], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[16], buf, len) < 0) return -1; int8_t wifi_ap_dhcp_leases = 4; sysparam_get_int8("wifi_ap_dhcp_leases", &wifi_ap_dhcp_leases); snprintf(buf, len, "%u", wifi_ap_dhcp_leases); if (wificfg_write_string_chunk(s, buf, buf, len) < 0) return -1; - if (wificfg_write_string_chunk(s, http_wifi_ap_content[18], buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[17], buf, len) < 0) return -1; int8_t wifi_ap_dns = 1; sysparam_get_int8("wifi_ap_dns", &wifi_ap_dns); if (wifi_ap_dns && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + + if (wificfg_write_string_chunk(s, http_wifi_ap_content[18], buf, len) < 0) return -1; + + int8_t wifi_ap_mdns = 1; + sysparam_get_int8("wifi_ap_mdns", &wifi_ap_mdns); + if (wifi_ap_mdns && wificfg_write_string_chunk(s, "checked", buf, len) < 0) return -1; + if (wificfg_write_string_chunk(s, http_wifi_ap_content[19], buf, len) < 0) return -1; if (wificfg_write_chunk_end(s) < 0) return -1; @@ -1228,9 +1235,10 @@ static int handle_wifi_ap_post(int s, wificfg_method method, uint8_t ap_disable_if_sta = 0; uint8_t ssid_hidden = 0; uint8_t dns_enable = 0; + uint8_t mdns_enable = 0; while (rem > 0) { - int r = wificfg_form_name_value(s, &valp, &rem, buf, len); + ssize_t r = wificfg_form_name_value(s, &valp, &rem, buf, len); if (r < 0) { break; @@ -1241,7 +1249,7 @@ static int handle_wifi_ap_post(int s, wificfg_method method, form_name name = intern_form_name(buf); if (valp) { - int r = wificfg_form_name_value(s, NULL, &rem, buf, len); + ssize_t r = wificfg_form_name_value(s, NULL, &rem, buf, len); if (r < 0) { break; } @@ -1281,19 +1289,21 @@ static int handle_wifi_ap_post(int s, wificfg_method method, } case FORM_NAME_AP_AUTHMODE: { uint32_t mode = strtoul(buf, NULL, 10); - if (mode >= 0 && mode <= 5) + if (mode == AUTH_OPEN || mode == AUTH_WPA_PSK || + mode == AUTH_WPA2_PSK || mode == AUTH_WPA_WPA2_PSK) { sysparam_set_int8("wifi_ap_authmode", mode); + } break; } case FORM_NAME_AP_MAX_CONN: { uint32_t max_conn = strtoul(buf, NULL, 10); - if (max_conn >= 0 && max_conn <= 8) + if (max_conn <= 8) sysparam_set_int8("wifi_ap_max_conn", max_conn); break; } case FORM_NAME_AP_BEACON_INTERVAL: { uint32_t interval = strtoul(buf, NULL, 10); - if (interval >= 0 && interval <= 10000) + if (interval <= 10000) sysparam_set_int32("wifi_ap_beacon_interval", interval); break; } @@ -1305,7 +1315,7 @@ static int handle_wifi_ap_post(int s, wificfg_method method, break; case FORM_NAME_AP_DHCP_LEASES: { uint32_t leases = strtoul(buf, NULL, 10); - if (leases >= 0 && leases <= 16) + if (leases <= 16) sysparam_set_int8("wifi_ap_dhcp_leases", leases); break; } @@ -1313,6 +1323,10 @@ static int handle_wifi_ap_post(int s, wificfg_method method, dns_enable = strtoul(buf, NULL, 10) != 0; break; } + case FORM_NAME_AP_MDNS: { + mdns_enable = strtoul(buf, NULL, 10) != 0; + break; + } case FORM_NAME_DONE: done = true; break; @@ -1327,6 +1341,7 @@ static int handle_wifi_ap_post(int s, wificfg_method method, sysparam_set_int8("wifi_ap_disable_if_sta", ap_disable_if_sta); sysparam_set_int8("wifi_ap_ssid_hidden", ssid_hidden); sysparam_set_int8("wifi_ap_dns", dns_enable); + sysparam_set_int8("wifi_ap_mdns", mdns_enable); } return wificfg_write_string(s, http_redirect_header); @@ -1656,10 +1671,8 @@ static void server_task(void *pvParameters) { char *hostname_local = NULL; char *hostname = NULL; - int8_t wifi_sta_mdns = 1; sysparam_get_string("hostname", &hostname); - sysparam_get_int8("wifi_sta_mdns", &wifi_sta_mdns); if (hostname) { size_t len = strlen(hostname) + 6 + 1; hostname_local = (char *)malloc(len); @@ -1667,21 +1680,34 @@ static void server_task(void *pvParameters) snprintf(hostname_local, len, "%s.local", hostname); } - struct netif *netif = sdk_system_get_netif(STATION_IF); - if (wifi_sta_mdns && netif) { + int8_t wifi_sta_mdns = 1; + int8_t wifi_ap_mdns = 1; + sysparam_get_int8("wifi_sta_mdns", &wifi_sta_mdns); + sysparam_get_int8("wifi_ap_mdns", &wifi_ap_mdns); + + struct netif *station_netif = sdk_system_get_netif(STATION_IF); + struct netif *softap_netif = sdk_system_get_netif(SOFTAP_IF); + if ((wifi_sta_mdns && station_netif) || (wifi_ap_mdns && softap_netif)) { +#if LWIP_MDNS_RESPONDER + mdns_resp_init(); +#endif #if EXTRAS_MDNS_RESPONDER mdns_init(); mdns_add_facility(hostname, "_http", NULL, mdns_TCP + mdns_Browsable, 80, 600); -#endif -#if LWIP_MDNS_RESPONDER - mdns_resp_init(); - if (netif) { - mdns_resp_add_netif(netif, hostname, 120); - mdns_resp_add_service(netif, hostname, "_http", - DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); - } #endif } +#if LWIP_MDNS_RESPONDER + if (wifi_sta_mdns && station_netif) { + mdns_resp_add_netif(station_netif, hostname, 120); + mdns_resp_add_service(station_netif, hostname, "_http", + DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + } + if (wifi_ap_mdns && softap_netif) { + mdns_resp_add_netif(softap_netif, hostname, 120); + mdns_resp_add_service(softap_netif, hostname, "_http", + DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + } +#endif free(hostname); } @@ -1851,7 +1877,7 @@ static void server_task(void *pvParameters) size_t len; for (len = 0; len < 4096; len++) { char c; - int res = read(s, &c, 1); + ssize_t res = read(s, &c, 1); if (res != 1) break; } @@ -1912,7 +1938,7 @@ static void dns_task(void *pvParameters) char buffer[96]; struct sockaddr_storage src_addr; socklen_t src_addr_len = sizeof(src_addr); - size_t count = recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&src_addr, &src_addr_len); + ssize_t count = recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&src_addr, &src_addr_len); /* Drop messages that are too large to send a response in the buffer */ if (count > 0 && count <= sizeof(buffer) - 16) { @@ -2097,8 +2123,9 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) /* Read and validate paramenters. */ int8_t wifi_ap_ssid_hidden = 0; sysparam_get_int8("wifi_ap_ssid_hidden", &wifi_ap_ssid_hidden); - if (wifi_ap_ssid_hidden < 0 || wifi_ap_ssid_hidden > 1) + if (wifi_ap_ssid_hidden < 0 || wifi_ap_ssid_hidden > 1) { wifi_ap_ssid_hidden = 1; + } int8_t wifi_ap_channel = 6; sysparam_get_int8("wifi_ap_channel", &wifi_ap_channel); @@ -2119,18 +2146,22 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) int8_t wifi_ap_authmode = AUTH_WPA_WPA2_PSK; sysparam_get_int8("wifi_ap_authmode", &wifi_ap_authmode); - if (wifi_ap_authmode < AUTH_OPEN || wifi_ap_authmode > AUTH_MAX) + if (wifi_ap_authmode != AUTH_OPEN && wifi_ap_authmode != AUTH_WPA_PSK && + wifi_ap_authmode != AUTH_WPA2_PSK && wifi_ap_authmode != AUTH_WPA_WPA2_PSK) { wifi_ap_authmode = AUTH_WPA_WPA2_PSK; + } int8_t wifi_ap_max_conn = 3; sysparam_get_int8("wifi_ap_max_conn", &wifi_ap_max_conn); - if (wifi_ap_max_conn < 1 || wifi_ap_max_conn > 8) + if (wifi_ap_max_conn < 1 || wifi_ap_max_conn > 8) { wifi_ap_max_conn = 3; + } int32_t wifi_ap_beacon_interval = 100; sysparam_get_int32("wifi_ap_beacon_interval", &wifi_ap_beacon_interval); - if (wifi_ap_beacon_interval < 0 || wifi_ap_beacon_interval > 1000) + if (wifi_ap_beacon_interval < 0 || wifi_ap_beacon_interval > 1000) { wifi_ap_beacon_interval = 100; + } /* Default AP IP address and netmask. */ char *wifi_ap_ip_addr = NULL; diff --git a/extras/wificfg/wificfg.h b/extras/wificfg/wificfg.h index 705b2f6..79bac43 100644 --- a/extras/wificfg/wificfg.h +++ b/extras/wificfg/wificfg.h @@ -97,7 +97,7 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch); * is truncated to the buffer length. The number of characters read is limited * to the remainder which is updated. The 'valp' flag is set if a value follows. */ -int wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len); +ssize_t wificfg_form_name_value(int s, bool *valp, size_t *rem, char *buf, size_t len); /* Support for form url-encoding decoder. */ void wificfg_form_url_decode(char *string); @@ -106,20 +106,17 @@ void wificfg_form_url_decode(char *string); void wificfg_html_escape(char *string, char *buf, size_t len); /* Support for writing a string in a response. */ -int wificfg_write_string(int s, const char *str); +ssize_t wificfg_write_string(int s, const char *str); /* Support for writing a string in a response, with chunk transfer encoding. * An optional buffer may be supplied to use to construct a chunk with the * header and trailer, reducing the number of write() calls, and the str may be * at the start of this buffer. */ -int wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len); +ssize_t wificfg_write_string_chunk(int s, const char *str, char *buf, size_t len); /* Write a chunk transfer encoding end marker. */ -int wificfg_write_chunk_end(int s); - -/* Write a chunk offset 4 bytes into the buffer. */ -int wificfg_write_buffer_chunk(int s, char *buf); +ssize_t wificfg_write_chunk_end(int s); /* Write a html title meta data, using the hostname or AP SSI. */ int wificfg_write_html_title(int s, char *buf, size_t len, const char *str); diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index 30282b5..d2c7323 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -297,6 +297,12 @@ #define DNS_MAX_NAME_LENGTH 128 #endif +/** Set this to 1 to enable querying ".local" names via mDNS + * using a One-Shot Multicast DNS Query */ +#ifndef LWIP_DNS_SUPPORT_MDNS_QUERIES +#define LWIP_DNS_SUPPORT_MDNS_QUERIES 1 +#endif + /* --------------------------------- ---------- UDP options ---------- From 724bf797b1e276409265bd9cc7094a654b51d0f8 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 14 Dec 2017 07:42:22 +1100 Subject: [PATCH 253/349] Reuse the startup stack for the dynamic heap. Once scheduling has started, the startup stack is no longer usable, control can never return to that stack. So bump up the heap end in the first task that runs after scheduling has started. This gives back about 1k. --- core/app_main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/app_main.c b/core/app_main.c index fb72cac..da910d8 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -339,10 +339,16 @@ void sdk_wdt_init(void) { sdk_pp_soft_wdt_init(); } +extern void *xPortSupervisorStackPointer; + // .irom0.text+0x474 void sdk_user_init_task(void *params) { int phy_ver, pp_ver; + /* The start up stack is not used after scheduling has started, so all of + * the top area of RAM which was stack can be used for the dynamic heap. */ + xPortSupervisorStackPointer = (void *)0x40000000; + sdk_ets_timer_init(); printf("\nESP-Open-SDK ver: %s compiled @ %s %s\n", OS_VERSION_STR, __DATE__, __TIME__); phy_ver = RTCMEM_BACKUP[RTCMEM_BACKUP_PHY_VER] >> 16; From 8ae8019045b68bc72228c0c7348e5b8822ae98ec Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 14 Dec 2017 07:40:14 +1100 Subject: [PATCH 254/349] wificfg: declare strings 'const' when appropriate. --- extras/wificfg/wificfg.c | 8 ++++---- extras/wificfg/wificfg.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 60c9b3d..ef9f701 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -54,9 +54,9 @@ #endif -char *wificfg_default_ssid = "EOR_%02X%02X%02X"; -char *wificfg_default_password = "esp-open-rtos"; -char *wificfg_default_hostname = "eor-%02x%02x%02x"; +const char *wificfg_default_ssid = "EOR_%02X%02X%02X"; +const char *wificfg_default_password = "esp-open-rtos"; +const char *wificfg_default_hostname = "eor-%02x%02x%02x"; /* The http task stack allocates a single buffer to do much of it's work. */ #define HTTP_BUFFER_SIZE 54 @@ -644,7 +644,7 @@ static int handle_wificfg_index(int s, wificfg_method method, if (wificfg_write_string_chunk(s, "
        Newlib version
        " _NEWLIB_VERSION "
        ", buf, len) < 0) return -1; enum sdk_sleep_type sleep_type = sdk_wifi_get_sleep_type(); - char *sleep_type_str = "??"; + const char *sleep_type_str = "??"; switch (sleep_type) { case WIFI_SLEEP_NONE: sleep_type_str = "None"; diff --git a/extras/wificfg/wificfg.h b/extras/wificfg/wificfg.h index 705b2f6..923d4b4 100644 --- a/extras/wificfg/wificfg.h +++ b/extras/wificfg/wificfg.h @@ -31,20 +31,20 @@ extern "C" { * three bytes of the mac address. This may be NULL to not default the ssid, * but the AP network will not run without a ssid. */ -extern char *wificfg_default_ssid; +extern const char *wificfg_default_ssid; /* * A default password for the AP interface. This may be NULL to not default the * password, but the AP network will not run without a password. The minimum * length is 8 characters. */ -extern char *wificfg_default_password; +extern const char *wificfg_default_password; /* * A default hostname printf format string. This may be NULL to not default the * hostname. */ -extern char *wificfg_default_hostname; +extern const char *wificfg_default_hostname; /* * The web server parses the http method string in these enums. The ANY method From f0d2c34399cae3a7134ef1908fbe28de42a66615 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 14 Dec 2017 08:13:36 +1100 Subject: [PATCH 255/349] sdk_system_print_meminfo: fix and correct heap end. --- open_esplibs/libmain/user_interface.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index a21530d..1fd73b5 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -63,10 +63,10 @@ static void _deep_sleep_phase2(void *timer_arg); static struct netif *_get_netif(uint32_t mode); // Linker-created values used by sdk_system_print_meminfo -extern uint32_t _data_start, _data_end; -extern uint32_t _rodata_start, _rodata_end; -extern uint32_t _bss_start, _bss_end; -extern uint32_t _heap_start; +extern uint8_t _data_start[], _data_end[]; +extern uint8_t _rodata_start[], _rodata_end[]; +extern uint8_t _bss_start[], _bss_end[]; +extern uint8_t _heap_start[]; #define _rom_reset_vector ((void (*)(void))0x40000080) @@ -484,11 +484,14 @@ void sdk_system_station_got_ip_set(struct ip4_addr *ip, struct ip4_addr *mask, s } } +extern void *xPortSupervisorStackPointer; + void sdk_system_print_meminfo(void) { - printf("%s: 0x%x ~ 0x%x, len: %d\n", "data ", _data_start, _data_end, _data_end - _data_start); - printf("%s: 0x%x ~ 0x%x, len: %d\n", "rodata", _rodata_start, _rodata_end, _rodata_end - _rodata_start); - printf("%s: 0x%x ~ 0x%x, len: %d\n", "bss ", _bss_start, _bss_end, _bss_end - _bss_start); - printf("%s: 0x%x ~ 0x%x, len: %d\n", "heap ", _heap_start, 0x3fffc000, 0x3fffc000 - _heap_start); + uint8_t *heap_end = xPortSupervisorStackPointer; + printf("%s: %p ~ %p, len: %d\n", "data ", _data_start, _data_end, _data_end - _data_start); + printf("%s: %p ~ %p, len: %d\n", "rodata", _rodata_start, _rodata_end, _rodata_end - _rodata_start); + printf("%s: %p ~ %p, len: %d\n", "bss ", _bss_start, _bss_end, _bss_end - _bss_start); + printf("%s: %p ~ %p, len: %d\n", "heap ", _heap_start, heap_end, heap_end - _heap_start); } uint32_t sdk_system_get_free_heap_size(void) { From aa0b7f5005bf43e135119ddc5945755f5bf3fd1d Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 16 Dec 2017 13:42:56 +1100 Subject: [PATCH 256/349] Reclaim a chunk of unused dram in the wdev bss area, 8000 bytes. --- core/app_main.c | 12 +++++++++++- core/newlib_syscalls.c | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/core/app_main.c b/core/app_main.c index 447d78a..33699e3 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -135,6 +135,8 @@ static void IRAM default_putc(char c) { } void init_newlib_locks(void); +extern uint8_t sdk_wDevCtrl[]; +void nano_malloc_insert_chunk(void *start, size_t size); // .text+0x258 void IRAM sdk_user_start(void) { @@ -203,6 +205,15 @@ void IRAM sdk_user_start(void) { Cache_Read_Enable(0, 0, 1); zero_bss(); sdk_os_install_putc1(default_putc); + + /* HACK Reclaim a region of unused bss from wdev.o. This would not be + * necessary if the source code to wdev were available, and then it would + * not be a fragmented area, but the extra memory is desparately needed and + * it is in very useful dram. */ + nano_malloc_insert_chunk((void *)(sdk_wDevCtrl + 0x2190), 8000); + + init_newlib_locks(); + if (cksum_magic == 0xffffffff) { // No checksum required } else if ((cksum_magic == 0x55aa55aa) && @@ -225,7 +236,6 @@ void IRAM sdk_user_start(void) { status = sysparam_init(sysparam_addr, 0); } } - init_newlib_locks(); if (status != SYSPARAM_OK) { printf("WARNING: Could not initialize sysparams (%d)!\n", status); } diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 8fcb49a..a09017f 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -61,6 +61,14 @@ IRAM void *_sbrk_r (struct _reent *r, ptrdiff_t incr) return (caddr_t) prev_heap_end; } + +/* Insert a disjoint region into the nano malloc pool. Create a malloc chunk, + * filling the size as newlib nano malloc expects, and then free it. */ +void nano_malloc_insert_chunk(void *start, size_t size) { + *(uint32_t *)start = size; + free(start + sizeof(size_t)); +} + /* syscall implementation for stdio write to UART */ __attribute__((weak)) ssize_t _write_stdout_r(struct _reent *r, int fd, const void *ptr, size_t len ) { From 07f3c08244df52b7bb75ea9db9dfdd787bd13944 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Thu, 21 Dec 2017 18:58:52 +0100 Subject: [PATCH 257/349] - minor changes - changes to use the same source code with ESP8266 (esp-open-rtos) and ESP32 (ESP-IDF) --- examples/bme680/README.md | 12 +- .../bme680_heating_profiles.c | 12 +- .../bme680_one_sensor/bme680_one_sensor.c | 117 ++++++---- .../bme680_two_sensors/bme680_two_sensors.c | 12 +- extras/bme680/README.md | 221 ++++++++++-------- extras/bme680/bme680.c | 127 ++++------ extras/bme680/bme680.h | 19 +- extras/bme680/bme680_platform.h | 112 +++++++++ extras/bme680/bme680_types.h | 19 +- extras/bme680/component.mk | 1 + 10 files changed, 398 insertions(+), 254 deletions(-) create mode 100644 extras/bme680/bme680_platform.h diff --git a/examples/bme680/README.md b/examples/bme680/README.md index d8a1a30..520a0a9 100644 --- a/examples/bme680/README.md +++ b/examples/bme680/README.md @@ -11,8 +11,8 @@ For examples using BME680 sensor as I2C slave, just use GPIO5 (SCL) and GPIO4 (S ``` +-------------------------+ +--------+ | ESP8266 Bus 0 | | BME680 | - | GPIO 5 (SCL) +---->+ SCL | - | GPIO 4 (SDA) +-----+ SDA | + | GPIO 14 (SCL) ------> SCL | + | GPIO 13 (SDA) <-----> SDA | | | +--------+ +-------------------------+ ``` @@ -22,10 +22,10 @@ For examples that are using SPI, BME680 sensor has to be connected to SPI bus 1. ``` +-------------------------+ +----------+ | ESP8266 Bus 1 | | BME680 | - | GPIO 12 (MISO) <-----< SDO | - | GPIO 13 (MOSI) >-----> SDI | - | GPIO 14 (SCK) >-----> SCK | - | GPIO 2 (CS) >-----> CS | + | GPIO 14 (SCK) ------> SCK | + | GPIO 13 (MOSI) ------> SDI | + | GPIO 12 (MISO) <------ SDO | + | GPIO 2 (CS) ------> CS | +-------------------------+ +----------+ ``` diff --git a/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c index 56d7eb5..e56d907 100644 --- a/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c +++ b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c @@ -6,8 +6,8 @@ * * I2C +-------------------------+ +----------+ * | ESP8266 Bus 0 | | BME680 | - * | GPIO 5 (SCL) ------> SCL | - * | GPIO 4 (SDA) ------- SDA | + * | GPIO 14 (SCL) ------> SCL | + * | GPIO 13 (SDA) ------- SDA | * +-------------------------+ +----------+ */ @@ -25,8 +25,8 @@ // define I2C interface for BME680 sensors #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 static bme680_sensor_t* sensor; @@ -91,13 +91,13 @@ void user_init(void) /** -- MANDATORY PART -- */ #ifdef SPI_USED - // Init the sensor connected either to SPI. + // Init the sensor connected to SPI. sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); #else // Init all I2C bus interfaces at which BME680 sensors are connected i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); - // Init the sensor connected either to I2C. + // Init the sensor connected to I2C. sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); #endif diff --git a/examples/bme680/bme680_one_sensor/bme680_one_sensor.c b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c index 65de6f1..b1dde38 100644 --- a/examples/bme680/bme680_one_sensor/bme680_one_sensor.c +++ b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c @@ -4,50 +4,72 @@ * * Harware configuration: * - * I2C +-------------------------+ +----------+ - * | ESP8266 Bus 0 | | BME680 | - * | GPIO 5 (SCL) ------> SCL | - * | GPIO 4 (SDA) ------- SDA | - * +-------------------------+ +----------+ + * I2C * - * SPI +-------------------------+ +----------+ - * | ESP8266 Bus 1 | | BME680 | - * | GPIO 12 (MISO) <-----< SDO | - * | GPIO 13 (MOSI) >-----> SDI | - * | GPIO 14 (SCK) >-----> SCK | - * | GPIO 2 (CS) >-----> CS | - * +-------------------------+ +----------+ + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | BME680 | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * +-----------------+ +----------+ + * + * SPI + * + * +-----------------+ +----------+ +-----------------+ +----------+ + * | ESP8266 | | BME680 | | ESP32 | | BME680 | + * | | | | | | | | + * | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + * | GPIO 13 (MOSI)----> SDI | | GPIO 17 (MOSI)----> SDI | + * | GPIO 12 (MISO)<---- SDO | | GPIO 18 (MISO)<---- SDO | + * | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + * +-----------------+ +---------+ +-----------------+ +----------+ */ -// Uncomment to use SPI +/* -- use following constants to define the example mode ----------- */ + // #define SPI_USED -#include "espressif/esp_common.h" -#include "esp/uart.h" +/* -- includes ----------------------------------------------------- */ -#include "FreeRTOS.h" -#include "task.h" +#include "bme680.h" -// include communication interface driver -#include "esp/spi.h" -#include "i2c/i2c.h" +/* -- platform dependent definitions ------------------------------- */ -// include BME680 driver -#include "bme680/bme680.h" +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 -#ifdef SPI_USED -// define SPI interface for BME680 sensors -#define SPI_BUS 1 -#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used -#else -// define I2C interface for BME680 sensors -#define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 -#endif +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 -static bme680_sensor_t* sensor; +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +/* -- user tasks --------------------------------------------------- */ + +static bme680_sensor_t* sensor = 0; /* * User task that triggers measurements of sensor every seconds. It uses @@ -86,31 +108,38 @@ void user_task(void *pvParameters) } } +/* -- main program ------------------------------------------------- */ void user_init(void) { - // Set UART Parameter + // Set UART Parameter. uart_set_baud(0, 115200); // Give the UART some time to settle - sdk_os_delay_us(500); - + vTaskDelay(1); + /** -- MANDATORY PART -- */ #ifdef SPI_USED - // Init the sensor connected either to SPI. - sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); - #else - // Init all I2C bus interfaces at which BME680 sensors are connected - i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); - // Init the sensor connected either to I2C. + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else // I2C + + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address BME680_I2C_ADDRESS_2 connected to I2C_BUS. sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); - #endif + + #endif // SPI_USED if (sensor) { // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); /** -- OPTIONAL PART -- */ diff --git a/examples/bme680/bme680_two_sensors/bme680_two_sensors.c b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c index 5fa1999..f66e745 100644 --- a/examples/bme680/bme680_two_sensors/bme680_two_sensors.c +++ b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c @@ -8,14 +8,14 @@ * Harware configuration: * * +-------------------------+ +----------+ - * | ESP8266 I2C Bus 0 | | BME680_1 | + * | ESP8266 I2C Bus 1 | | BME680_1 | * | GPIO 5 (SCL) ------> SCL | - * | GPIO 4 (SDA) ------- SDA | + * | GPIO 4 (SDA) <-----> SDA | * | | +----------+ * | SPI Bus 1 | | BME680_2 | - * | GPIO 12 (MISO) <------ SDO | - * | GPIO 13 (MOSI) >-----> SDI | * | GPIO 14 (SCK) >-----> SCK | + * | GPIO 13 (MOSI) >-----> SDI | + * | GPIO 12 (MISO) <------ SDO | * | GPIO 2 (CS) >-----> CS | * +-------------------------+ +----------+ */ @@ -37,7 +37,7 @@ #define SPI_BUS 1 #define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used // define SPI interface for BME680 sensor 2 -#define I2C_BUS 0 +#define I2C_BUS 1 #define I2C_SCL_PIN 5 #define I2C_SDA_PIN 4 @@ -122,7 +122,7 @@ void user_init(void) // Init all I2C bus interfaces at which BME680 sensors are connected i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); - // Init the sensors connected to different I2C buses with same address + // Init the sensors sensor1 = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); sensor2 = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); diff --git a/extras/bme680/README.md b/extras/bme680/README.md index 629322f..8b8853f 100644 --- a/extras/bme680/README.md +++ b/extras/bme680/README.md @@ -1,6 +1,9 @@ # Driver for **BME680** digital **environmental sensor** -This driver is written for usage with the ESP8266 and FreeRTOS. It supports multiple BME680 sensors which are either connected to the SPI or to different I2C interfaces with different addresses. +The driver supports multiple BME680 sensors which are either connected to the SPI or to the same or different I2C interfaces with different addresses. + +It is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). +The driver is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. ## About the sensor @@ -18,9 +21,9 @@ Interface selection is done automatically by the sensor using the SPI CS signal. ## Measurement process -Once the BME680 has been initialized, it can be used for measurements. The BME680 operates in two different modes, the **sleep mode** and the **forced mode**. +Once the BME680 has been initialized, it can be used for measurements. The BME680 operates in two different modes, the **sleep mode** and the **forced mode**. -The sensor starts after power-up automatically in the *sleep mode* where it does not perform any measurement and consumes only 0.15 μA. Measurements are only done in *forced mode*. +The sensor starts after power-up automatically in the *sleep mode* where it does not perform any measurement and consumes only 0.15 μA. Measurements are only done in *forced mode*. **Please note:** There are two further undocumented modes, the *parallel* and the *sequential* mode. They can't be supported by the driver, since it is not clear what they do and how to use them. @@ -81,7 +84,7 @@ if (bme680_measure_float (sensor, &values)) #### Measurement results -Once the sensor has finished the measurement raw data are available at the sensor. Either function ```bme680_get_results_fixed``` or function ```bme680_get_results_float``` can be used to fetch the results. Both functions read raw data from the sensor and converts them into utilizable fixed point or floating point sensor values. +Once the sensor has finished the measurement raw data are available at the sensor. Either function ```bme680_get_results_fixed``` or function ```bme680_get_results_float``` can be used to fetch the results. Both functions read raw data from the sensor and converts them into utilizable fixed point or floating point sensor values. **Please note:** Conversion of raw sensor data into the final sensor values is based on very complex calculations that use a large number of calibration parameters. Therefore, the driver does not provide functions that only return the raw sensor data. @@ -112,7 +115,7 @@ The sensor allows to change a lot of measurement parameters. #### Oversampling rates -To increase the resolution of raw sensor data, the sensor supports oversampling for temperature, pressure, and humidity measurements. Using function ```bme680_set_oversampling_rates```, individual **oversampling rates** can be defined for these measurements. With an oversampling rate *osr*, the resolution of the according raw sensor data can be increased from 16 bit to 16+ld(*osr*) bit. +To increase the resolution of raw sensor data, the sensor supports oversampling for temperature, pressure, and humidity measurements. Using function ```bme680_set_oversampling_rates```, individual **oversampling rates** can be defined for these measurements. With an oversampling rate *osr*, the resolution of the according raw sensor data can be increased from 16 bit to 16+ld(*osr*) bit. Possible oversampling rates are 1x (default by the driver) 2x, 4x, 8x and 16x. It is also possible to define an oversampling rate of 0. This **deactivates** the corresponding measurement and the output values become invalid. @@ -190,7 +193,7 @@ while (1) // measurement duration changes in each cycle uint32_t duration = bme680_get_measurement_duration(sensor); - // trigger the sensor to start one TPHG measurement cycle + // trigger the sensor to start one TPHG measurement cycle if (bme680_force_measurement (sensor)) { vTaskDelay (duration); @@ -216,7 +219,7 @@ bme680_set_ambient_temperature (sensor, ambient); ## Error Handling -Most driver functions return a simple boolean value to indicate whether its execution was successful or an error happened. In the latter case, the member ```error_code``` of the sensor device data structure is set which indicates what error happened. +Most driver functions return a simple boolean value to indicate whether its execution was successful or an error happened. In the latter case, the member ```error_code``` of the sensor device data structure is set which indicates what error happened. There are two different error levels that are ORed into one single *error_code*, errors in the I2C or SPI communication and errors of the BME680 sensor itself. To test for a certain error, first you can AND the *error_code* with one of the error masks, ```BME680_INT_ERROR_MASK``` for I2C or SPI errors and ```BME680_DRV_ERROR_MASK``` for other errors. Then you can test the result for a certain error code. @@ -234,8 +237,8 @@ else switch (sensor->error_code & BME680_INT_ERROR_MASK) { - case BME680_INT_BUSY: ... - case BME680_INT_READ_FAILED: ... + case BME680_I2C_BUSY: ... + case BME680_I2C_READ_FAILED: ... ... } switch (sensor->error_code & BME680_DRV_ERROR_MASK) @@ -258,58 +261,62 @@ The driver supports multiple BME680 sensors at the same time that are connected First figure shows the configuration with only one sensor at I2C bus 0. ``` - +-------------------------+ +--------+ - | ESP8266 Bus 0 | | BME680 | - | GPIO 5 (SCL) +---->+ SCL | - | GPIO 4 (SDA) +-----+ SDA | - | | +--------+ - +-------------------------+ + +------------------+ +----------+ + | ESP8266 / ESP32 | | BME680 | + | | | | + | GPIO 14 (SCL) ----> SCL | + | GPIO 13 (SDA) <---> SDA | + +------------------+ +----------+ ``` -Next figure shows the configuration with only one sensor at SPI bus using GPIO2 as CS signal. +Next figure shows the configuration with only one sensor at SPI bus. ``` - +-------------------------+ +--------+ - | Bus 1 | | BME680 | - | GPIO 12 (MISO) <------ SDO | - | GPIO 13 (MOSI) >-----> SDI | - | GPIO 14 (SCK) >-----> SCK | - | GPIO 2 (CS) >-----> CS | - +-------------------------+ +--------+ + +------------------+ +----------+ +-----------------+ +----------+ + | ESP8266 / ESP32 | | BME680 | | ESP32 | | BME680 | + | | | | | | | | + | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + | GPIO 13 (MOSI) ----> SDI | | GPIO 17 (MOSI)----> SDI | + | GPIO 12 (MISO) <---- SDO | | GPIO 18 (MISO)<---- SDO | + | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + +------------------+ +---------+ +-----------------+ +----------+ ``` **Please note:** 1. Since the system flash memory is connected to SPI bus 0, the sensor has to be connected to SPI bus 1. -2. GPIO15 which is used as CS signal of SPI bus 1 does not work correctly together with the BME680. Therefore, the user has to specify another GPIO pin as CS signal, e.g., GPIO2. +2. GPIO15 which is used as CS signal of SPI bus 1 on ESP8266 does not work correctly together with the BME680. Therefore, the user has to specify another GPIO pin as CS signal, e.g., GPIO2. Next figure shows a possible configuration with two I2C buses. In that case, the sensors can have same or different I2C slave addresses. ``` - +-------------------------+ +----------+ - | ESP8266 Bus 0 | | BME680_1 | - | GPIO 5 (SCL) ------> SCL | - | GPIO 4 (SDA) ------- SDA | - | | +----------+ - | Bus 1 | | BME680_2 | - | GPIO 14 (SCL) ------> SCL | - | GPIO 12 (SDA) ------- SDA | - +-------------------------+ +----------+ + +------------------+ +----------+ + | ESP8266 / ESP32 | | BME680_1 | + | | | | + | GPIO 14 (SCL) ----> SCL | + | GPIO 13 (SDA) <---> SDA | + | | +----------+ + | | | BME680_2 | + | | | | + | GPIO 5 (SCL) ----> SCL | + | GPIO 4 (SDA) <---> SDA | + +------------------+ +----------+ ``` Last figure shows a possible configuration using I2C bus 0 and SPI bus 1 at the same time. ``` - +-------------------------+ +----------+ - | ESP8266 Bus 0 | | BME680_1 | - | GPIO 5 (SCL) ------> SCL | - | GPIO 4 (SDA) ------- SDA | - | | +----------+ - | Bus 1 | | BME680_2 | - | GPIO 12 (MISO) <------ SDO | - | GPIO 13 (MOSI) >-----> SDI | - | GPIO 14 (SCK) >-----> SCK | - | GPIO 2 (CS) >-----> CS | - +-------------------------+ +----------+ + +------------------+ +----------+ +------------------+ +----------+ + | ESP8266 | | BME680_1 | | ESP8266 | | BME680_1 | + | | | | | | | | + | GPIO 5 (SCL) ----> SCL | | GPIO 5 (SCL) ----> SCL | + | GPIO 4 (SDA) <---> SDA | | GPIO 4 (SDA) <---> SDA | + | | +----------+ | | +----------+ + | | | BME680_2 | | | | BME680_2 | + | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + | GPIO 13 (MOSI) ----> SDI | | GPIO 17 (MOSI) ----> SDI | + | GPIO 12 (MISO) <---- SDO | | GPIO 18 (MISO) <---- SDO | + | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + +------------------+ +---------+ +------------------+ +----------+ ``` Further configurations are possible, e.g., two sensors that are connected at the same I2C bus with different slave addresses. @@ -326,13 +333,13 @@ Dependent on the hardware configuration, the communication interface settings ha // define I2C interface for BME680 sensors #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 #endif ``` -### Main program +### Main programm If I2C interfaces are used, they have to be initialized first. @@ -446,38 +453,55 @@ Once the measurement results are available, they can be fetched as fixed point o ## Full Example ``` -// Uncomment to use SPI +/* -- use following constants to define the example mode ----------- */ + // #define SPI_USED -#include "espressif/esp_common.h" -#include "esp/uart.h" +/* -- includes ----------------------------------------------------- */ -#include "FreeRTOS.h" -#include "task.h" +#include "bme680.h" -// include communication interface driver -#include "esp/spi.h" -#include "i2c/i2c.h" +/* -- platform dependent definitions ------------------------------- */ -// include BME680 driver -#include "bme680/bme680.h" +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) -#ifdef SPI_USED -// define SPI interface for BME680 sensors -#define SPI_BUS 1 -#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used -#else -// define I2C interface for BME680 sensors -#define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 -#endif +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 -static bme680_sensor_t* sensor; +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +/* -- user tasks --------------------------------------------------- */ + +static bme680_sensor_t* sensor = 0; /* * User task that triggers measurements of sensor every seconds. It uses - * function *vTaskDelay* to wait for measurement results. Busy waiting + * function *vTaskDelay* to wait for measurement results. Busy wating * alternative is shown in comments */ void user_task(void *pvParameters) @@ -492,51 +516,58 @@ void user_task(void *pvParameters) while (1) { // trigger the sensor to start one TPHG measurement cycle - bme680_force_measurement (sensor); + if (bme680_force_measurement (sensor)) + { + // passive waiting until measurement results are available + vTaskDelay (duration); - // passive waiting until measurement results are available - vTaskDelay (duration); - - // alternatively: busy waiting until measurement results are available - // while (bme680_is_measuring (sensor)) ; - - // get the results and do something with them - if (bme680_get_results_float (sensor, &values)) - printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", - (double)sdk_system_get_time()*1e-3, - values.temperature, values.humidity, - values.pressure, values.gas_resistance); + // alternatively: busy waiting until measurement results are available + // while (bme680_is_measuring (sensor)) ; + // get the results and do something with them + if (bme680_get_results_float (sensor, &values)) + printf("%.3f BME680 Sensor: %.2f °C, %.2f %%, %.2f hPa, %.2f Ohm\n", + (double)sdk_system_get_time()*1e-3, + values.temperature, values.humidity, + values.pressure, values.gas_resistance); + } // passive waiting until 1 second is over vTaskDelayUntil(&last_wakeup, 1000 / portTICK_PERIOD_MS); } } +/* -- main program ------------------------------------------------- */ void user_init(void) { - // Set UART Parameter + // Set UART Parameter. uart_set_baud(0, 115200); // Give the UART some time to settle - sdk_os_delay_us(500); - + vTaskDelay(1); + /** -- MANDATORY PART -- */ #ifdef SPI_USED - // Init the sensor connected either to SPI. - sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); - #else - // Init all I2C bus interfaces at which BME680 sensors are connected - i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); - // Init the sensor connected either to I2C. + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = bme680_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else // I2C + + // Init all I2C bus interfaces at which BME680 sensors are connected + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address BME680_I2C_ADDRESS_2 connected to I2C_BUS. sensor = bme680_init_sensor (I2C_BUS, BME680_I2C_ADDRESS_2, 0); - #endif + + #endif // SPI_USED if (sensor) { // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); /** -- OPTIONAL PART -- */ @@ -550,6 +581,10 @@ void user_init(void) // Change the heater profile 0 to 200 degree Celcius for 100 ms. bme680_set_heater_profile (sensor, 0, 200, 100); bme680_use_heater_profile (sensor, 0); + + // Set ambient temperature to 10 degree Celsius + bme680_set_ambient_temperature (sensor, 10); } } ``` + diff --git a/extras/bme680/bme680.c b/extras/bme680/bme680.c index f2742ee..60b10e5 100644 --- a/extras/bme680/bme680.c +++ b/extras/bme680/bme680.c @@ -1,8 +1,11 @@ /* - * Driver for Bosch Sensortec BME680 digital temperature, humity, pressure and - * gas sensor connected to I2C or SPI + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure + * and gas sensor connected to I2C or SPI * - * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * --------------------------------------------------------------------------- * @@ -46,16 +49,9 @@ */ #include +#include -#include "FreeRTOS.h" -#include "task.h" - -#include "espressif/esp_common.h" -#include "espressif/sdk_private.h" - -#include "esp/spi.h" -#include "i2c/i2c.h" - +#include "bme680_platform.h" #include "bme680.h" #if defined(BME680_DEBUG_LEVEL_2) @@ -276,12 +272,11 @@ static bool bme680_i2c_write (bme680_sensor_t* dev, uint8_t reg, uint8_t *da static bool bme680_spi_read (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); static bool bme680_spi_write (bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); -/** */ - #define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) #define lsb_to_type(t,b,o) (t)(b[o]) bme680_sensor_t* bme680_init_sensor(uint8_t bus, uint8_t addr, uint8_t cs) + { bme680_sensor_t* dev; @@ -291,7 +286,7 @@ bme680_sensor_t* bme680_init_sensor(uint8_t bus, uint8_t addr, uint8_t cs) // init sensor data structure dev->bus = bus; dev->addr = addr; - dev->spi_cs_pin = cs; + dev->cs = cs; dev->meas_started = false; dev->meas_status = 0; dev->settings.ambient_temperature = 0; @@ -303,12 +298,15 @@ bme680_sensor_t* bme680_init_sensor(uint8_t bus, uint8_t addr, uint8_t cs) memset(dev->settings.heater_temperature, 0, sizeof(uint16_t)*10); memset(dev->settings.heater_duration, 0, sizeof(uint16_t)*10); - if (!addr) + // if addr==0 then SPI is used and has to be initialized + if (!addr && !spi_device_init (bus, cs)) { - // SPI interface used - gpio_enable(dev->spi_cs_pin, GPIO_OUTPUT); - gpio_write (dev->spi_cs_pin, true); + error_dev ("Could not initialize SPI interface.", __FUNCTION__, dev); + free (dev); + return NULL; } + if (!addr) + spi_semaphore_init(); // reset the sensor if (!bme680_reset(dev)) @@ -435,7 +433,6 @@ bool bme680_force_measurement (bme680_sensor_t* dev) } dev->meas_started = true; - dev->meas_start_tick = xTaskGetTickCount (); // system time in RTOS ticks dev->meas_status = 0; debug_dev ("Started measurement at %.3f.", __FUNCTION__, dev, @@ -817,10 +814,7 @@ bool bme680_set_ambient_temperature (bme680_sensor_t* dev, int16_t ambient) // set ambient temperature configuration dev->settings.ambient_temperature = ambient; // degree Celsius - // update all valid heater profiles - - // takes 894 us for only one defined profile and 1585 us for 10 defined profiles uint8_t data[10]; for (int i = 0; i < BME680_HEATER_PROFILES; i++) { @@ -830,17 +824,6 @@ bool bme680_set_ambient_temperature (bme680_sensor_t* dev, int16_t ambient) if (!bme680_write_reg(dev, BME680_REG_RES_HEAT_BASE, data, 10)) return false; - /* - // takes 346 us for only one defined profile and 3316 us for 10 defined profiles - for (int i = 0; i < BME680_HEATER_PROFILES; i++) - if (dev->settings.heater_temperature[i]) - { - uint8_t heat_res = bme680_heater_resistance(dev, dev->settings.heater_temperature[i]); - if (!bme680_write_reg(dev, BME680_REG_RES_HEAT_BASE+i, &heat_res, 1)) - return false; - } - */ - debug_dev ("Setting heater ambient temperature done: ambient=%d", __FUNCTION__, dev, dev->settings.ambient_temperature); @@ -1110,16 +1093,16 @@ static bool bme680_get_raw_data(bme680_sensor_t *dev, bme680_raw_data_t* raw_dat return false; } + // test whether there are new data dev->meas_status = raw[0]; - if (dev->meas_status & BME680_MEASURING_BITS) + if (dev->meas_status & BME680_MEASURING_BITS && + !(dev->meas_status & BME680_NEW_DATA_BITS)) { debug_dev ("Measurement is still running.", __FUNCTION__, dev); dev->error_code = BME680_MEAS_STILL_RUNNING; return false; } - - // test whether there are new data - if (!(dev->meas_status & BME680_NEW_DATA_BITS)) + else if (!(dev->meas_status & BME680_NEW_DATA_BITS)) { debug_dev ("No new data.", __FUNCTION__, dev); dev->error_code = BME680_NO_NEW_DATA; @@ -1242,17 +1225,6 @@ static void bme680_delay_ms(uint32_t period) } -#define BME680_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 - -static const spi_settings_t bus_settings = { - .mode = SPI_MODE3, - .freq_divider = SPI_FREQ_DIV_1M, - .msb = true, - .minimal_pins = false, - .endianness = SPI_LITTLE_ENDIAN -}; - - static bool bme680_read_reg(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) { if (!dev || !data) return false; @@ -1270,6 +1242,8 @@ static bool bme680_write_reg(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u : bme680_spi_write (dev, reg, data, len); } +#define BME680_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 + #define BME680_REG_SWITCH_MEM_PAGE BME680_REG_STATUS #define BME680_BIT_SWITCH_MEM_PAGE_0 0x00 #define BME680_BIT_SWITCH_MEM_PAGE_1 0x10 @@ -1288,15 +1262,13 @@ static bool bme680_spi_set_mem_page (bme680_sensor_t* dev, uint8_t reg) return false; } // sdk_os_delay_us (100); - return true; } - static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) { if (!dev || !data) return false; - + if (len >= BME680_SPI_BUF_SIZE) { dev->error_code |= BME680_SPI_BUFFER_OVERFLOW; @@ -1306,19 +1278,20 @@ static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, ui return false; } + spi_semaphore_take (); + // set mem page first if (!bme680_spi_set_mem_page (dev, reg)) { error_dev ("Error on read from SPI slave on bus 1. Could not set mem page.", __FUNCTION__, dev); + spi_semaphore_give (); return false; - } + } reg &= 0x7f; reg |= 0x80; - spi_settings_t old_settings; - static uint8_t mosi[BME680_SPI_BUF_SIZE]; static uint8_t miso[BME680_SPI_BUF_SIZE]; @@ -1326,34 +1299,27 @@ static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, ui memset (miso, 0xff, BME680_SPI_BUF_SIZE); mosi[0] = reg; - - spi_get_settings(dev->bus, &old_settings); - spi_set_settings(dev->bus, &bus_settings); - gpio_write(dev->spi_cs_pin, false); - - size_t transfered = spi_transfer (dev->bus, (const void*)mosi, (void*)miso, len+1, SPI_8BIT); - - gpio_write(dev->spi_cs_pin, true); - spi_set_settings(dev->bus, &old_settings); - - if (!transfered) + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, miso, len+1)) { error_dev ("Could not read data from SPI", __FUNCTION__, dev); dev->error_code |= BME680_SPI_READ_FAILED; + spi_semaphore_give (); return false; } - + spi_semaphore_give (); + // shift data one by left, first byte received while sending register address is invalid for (int i=0; i < len; i++) data[i] = miso[i+1]; -# ifdef BME680_DEBUG_LEVEL_2 + #ifdef BME680_DEBUG_LEVEL_2 printf("BME680 %s: read the following bytes: ", __FUNCTION__); printf("%0x ", reg); for (int i=0; i < len; i++) printf("%0x ", data[i]); printf("\n"); -# endif + #endif return true; } @@ -1374,11 +1340,14 @@ static bool bme680_spi_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u return false; } + spi_semaphore_take (); + // set mem page first if not mem page register is used if (reg != BME680_REG_STATUS && !bme680_spi_set_mem_page (dev, reg)) { error_dev ("Error on write from SPI slave on bus 1. Could not set mem page.", __FUNCTION__, dev); + spi_semaphore_give (); return false; } @@ -1391,34 +1360,26 @@ static bool bme680_spi_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u for (int i = 0; i < len; i++) mosi[i+1] = data[i]; -# ifdef BME680_DEBUG_LEVEL_2 + #ifdef BME680_DEBUG_LEVEL_2 printf("BME680 %s: Write the following bytes: ", __FUNCTION__); for (int i = 0; i < len+1; i++) printf("%0x ", mosi[i]); printf("\n"); -# endif + #endif - spi_settings_t old_settings; - - spi_get_settings(dev->bus, &old_settings); - spi_set_settings(dev->bus, &bus_settings); - gpio_write(dev->spi_cs_pin, false); - - size_t transfered = spi_transfer (dev->bus, (const void*)mosi, NULL, len+1, SPI_8BIT); - - gpio_write(dev->spi_cs_pin, true); - spi_set_settings(dev->bus, &old_settings); - - if (!transfered) + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, NULL, len+1)) { error_dev ("Could not write data to SPI.", __FUNCTION__, dev); dev->error_code |= BME680_SPI_WRITE_FAILED; + spi_semaphore_give (); return false; } + spi_semaphore_give (); return true; } + static bool bme680_i2c_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) { if (!dev || !data) return false; diff --git a/extras/bme680/bme680.h b/extras/bme680/bme680.h index 21658f6..609443b 100644 --- a/extras/bme680/bme680.h +++ b/extras/bme680/bme680.h @@ -1,14 +1,17 @@ /* - * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure and - * gas sensor connected to I2C or SPI + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure + * and gas sensor connected to I2C or SPI * - * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * --------------------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,12 +44,13 @@ #ifndef __BME680_H__ #define __BME680_H__ -#include "bme680/bme680_types.h" - // Uncomment one of the following defines to enable debug output // #define BME680_DEBUG_LEVEL_1 // only error messages // #define BME680_DEBUG_LEVEL_2 // debug and error messages +#include "bme680_types.h" +#include "bme680_platform.h" + // BME680 addresses #define BME680_I2C_ADDRESS_1 0x76 // SDO pin is low #define BME680_I2C_ADDRESS_2 0x77 // SDO pin is high @@ -144,8 +148,7 @@ extern "C" * @param cs SPI CS GPIO, ignored for I2C * @return pointer to sensor data structure, or NULL on error */ -bme680_sensor_t* bme680_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs_pin); - +bme680_sensor_t* bme680_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs); /** * @brief Force one single TPHG measurement diff --git a/extras/bme680/bme680_platform.h b/extras/bme680/bme680_platform.h new file mode 100644 index 0000000..31fa0a5 --- /dev/null +++ b/extras/bme680/bme680_platform.h @@ -0,0 +1,112 @@ +/* + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure + * and gas sensor connected to I2C or SPI + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __BME680_PLATFORM_H__ +#define __BME680_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "esp/spi.h" +#include "i2c/i2c.h" + +// platform specific definitions + +#define spi_semaphore_init() +#define spi_semaphore_take() +#define spi_semaphore_give() + +// platform specific SPI functions + +#define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +inline static bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +inline static size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + +#endif // ESP_OPEN_RTOS + +#endif // __BME680_PLATFORM_H__ diff --git a/extras/bme680/bme680_types.h b/extras/bme680/bme680_types.h index 8234135..6858797 100644 --- a/extras/bme680/bme680_types.h +++ b/extras/bme680/bme680_types.h @@ -1,14 +1,17 @@ /* - * Driver for Bosch Sensortec BME680 digital temperature, humity, pressure and - * gas sensor connected to I2C or SPI + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure + * and gas sensor connected to I2C or SPI * - * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * --------------------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -173,14 +176,14 @@ typedef struct { uint8_t bus; // I2C = x, SPI = 1 uint8_t addr; // I2C = slave address, SPI = 0 - uint8_t spi_cs_pin; // GPIO used as SPI CS + uint8_t cs; // ESP8266, ESP32: GPIO used as SPI CS + // __linux__: device index bool meas_started; // indicates whether measurement started - uint32_t meas_start_tick; // measurement start time in RTOS ticks uint8_t meas_status; // last sensor status (for internal use only) - bme680_settings_t settings; // sensor settings - bme680_calib_data_t calib_data; // calibration data of the sensor + bme680_settings_t settings; // sensor settings + bme680_calib_data_t calib_data; // calibration data of the sensor } bme680_sensor_t; diff --git a/extras/bme680/component.mk b/extras/bme680/component.mk index f890ad0..58623be 100644 --- a/extras/bme680/component.mk +++ b/extras/bme680/component.mk @@ -2,6 +2,7 @@ # expected anyone using bme680 driver includes it as 'bme680/bme680.h' INC_DIRS += $(bme680_ROOT).. +INC_DIRS += $(bme680_ROOT) # args for passing into compile rule generation bme680_SRC_DIR = $(bme680_ROOT) From f0425e7abd4934986e9437b77e24a01b933eea50 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Thu, 21 Dec 2017 19:00:16 +0100 Subject: [PATCH 258/349] - small corrections - changes to use the same source code with ESP8266 (esp-open-rtos) and ESP32 (ESP-IDF) --- examples/ccs811/README.md | 14 +- .../ccs811_one_sensor/ccs811_one_sensor.c | 97 ++++++----- .../ccs811_plus_sht3x/ccs811_plus_sht3x.c | 10 +- .../ccs811_temperature/ccs811_temperature.c | 8 +- extras/ccs811/README.md | 152 ++++++++++-------- extras/ccs811/ccs811.c | 21 +-- extras/ccs811/ccs811.h | 17 +- extras/ccs811/ccs811_platform.h | 69 ++++++++ extras/ccs811/component.mk | 1 + 9 files changed, 251 insertions(+), 138 deletions(-) create mode 100644 extras/ccs811/ccs811_platform.h diff --git a/examples/ccs811/README.md b/examples/ccs811/README.md index 1cb7e12..5ff5b5d 100644 --- a/examples/ccs811/README.md +++ b/examples/ccs811/README.md @@ -9,8 +9,8 @@ Most examples use only one CCS811 sensor. Following figure shows the hardware co ``` +------------------------+ +--------+ | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >----> SCL | - | GPIO 4 (SDA) ------ SDA | + | GPIO 5 (SCL) -----> SCL | + | GPIO 4 (SDA) <----> SDA | | GND -----> /WAKE | +------------------------+ +--------+ ``` @@ -20,8 +20,8 @@ If *nINT* interrupt is used to fetch new data, additionally the interrupt pin ha ``` +------------------------+ +--------+ | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >----> SCL | - | GPIO 4 (SDA) ------ SDA | + | GPIO 5 (SCL) -----> SCL | + | GPIO 4 (SDA) <----> SDA | | GPIO 2 <----- /nINT | | GND -----> /WAKE | +------------------------+ +--------+ @@ -32,13 +32,13 @@ In examples where CCS811 sensor is used in conjunction with a SHT3x sensor, the ``` +------------------------+ +--------+ | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >--+----> SCL | - | GPIO 4 (SDA) ---|-+--- SDA | + | GPIO 5 (SCL) ---+----> SCL | + | GPIO 4 (SDA) <--|-+--> SDA | | GND ---|-|--> /WAKE | | | | | +--------+ | | | | | SHT3x | | | +----> SCL | - | | +--- SDA | + | | +--> SDA | +------------------------+ +--------+ ``` diff --git a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c index 0123dde..a53b8a6 100644 --- a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c +++ b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c @@ -6,40 +6,57 @@ * * Harware configuration: * - * +------------------------+ +--------+ - * | ESP8266 Bus 0 | | CCS811 | - * | GPIO 5 (SCL) >----> SCL | - * | GPIO 4 (SDA) ------ SDA | - * | GPIO 2 <----- /nINT | - * | GND -----> /WAKE | - * +------------------------+ +--------+ + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | CCS811 | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * | GPIO 5 <---- INT1 | + * | GND ----> /WAKE | + * +-----------------+ +----------+ */ -// use following constants to define the demo mode +/* -- use following constants to define the example mode ----------- */ + // #define INT_DATA_RDY_USED // #define INT_THRESHOLD_USED -#include "espressif/esp_common.h" -#include "esp/uart.h" -#include "i2c/i2c.h" +#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +#define INT_USED +#endif -#include "FreeRTOS.h" -#include +/* -- includes ----------------------------------------------------- */ -// include CCS811 driver -#include "ccs811/ccs811.h" +#include "ccs811.h" -// define I2C interfaces at which CCS811 sensors can be connected +/* -- platform dependent definitions ------------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K -// define GPIO for interrupt -#define INT_GPIO 2 +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define nINT_PIN 13 + +/* -- user tasks --------------------------------------------------- */ static ccs811_sensor_t* sensor; -#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +#ifdef INT_USED /** * In this example, the interrupt *nINT* is used. It is triggered every time * new data are available (INT_DATA_RDY_USED) or exceed defined thresholds @@ -73,12 +90,12 @@ void user_task_interrupt (void *pvParameters) // Interrupt handler which resumes user_task_interrupt on interrupt -void nINT_handler (uint8_t gpio) +static void IRAM nINT_handler(uint8_t gpio) { xTaskResumeFromISR (nINT_task); } -#else +#else // !INT_USED /* * In this example, user task fetches the sensor values every seconds. @@ -106,20 +123,21 @@ void user_task_periodic(void *pvParameters) } } -#endif +#endif // INT_USED +/* -- main program ------------------------------------------------- */ void user_init(void) { - // set UART Parameter + // Set UART Parameter. uart_set_baud(0, 115200); - // give the UART some time to settle - sdk_os_delay_us(500); + // Give the UART some time to settle + vTaskDelay(1); /** -- MANDATORY PART -- */ // init all I2C bus interfaces at which CCS811 sensors are connected - i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); // longer clock stretching is required for CCS811 i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); @@ -129,28 +147,29 @@ void user_init(void) if (sensor) { - #if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) + #if !defined (INT_USED) + + // create a periodic task that uses the sensor + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED // create a task that is resumed by interrupt handler to use the sensor - xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, &nINT_task); - // activate the interrupt for INT_GPIO and set the interrupt handler - gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + // activate the interrupt for nINT_PIN and set the interrupt handler + gpio_enable(nINT_PIN, GPIO_INPUT); + gpio_set_interrupt(nINT_PIN, GPIO_INTTYPE_EDGE_NEG, nINT_handler); #ifdef INT_DATA_RDY_USED // enable the data ready interrupt ccs811_enable_interrupt (sensor, true); - #else + #else // INT_THRESHOLD_USED // set threshold parameters and enable threshold interrupt mode ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); #endif - #else - - // create a periodic task that uses the sensor - xTaskCreate(user_task_periodic, "user_task_periodic", 256, NULL, 2, NULL); - - #endif + #endif // !defined(INT_USED) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); diff --git a/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c b/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c index 90976bd..5e32f38 100644 --- a/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c +++ b/examples/ccs811/ccs811_plus_sht3x/ccs811_plus_sht3x.c @@ -6,13 +6,13 @@ * * +------------------------+ +--------+ * | ESP8266 Bus 0 | | CCS811 | - * | GPIO 5 (SCL) >--+----> SCL | - * | GPIO 4 (SDA) ---|-+--- SDA | + * | GPIO 14 (SCL) ---+----> SCL | + * | GPIO 13 (SDA) <--|-+--> SDA | * | GND ---|-|--> /WAKE | * | | | | +--------+ * | | | | | SHT3x | * | | +----> SCL | - * | | +--- SDA | + * | | +--> SDA | * +------------------------+ +--------+ */ @@ -31,8 +31,8 @@ // define I2C interfaces at which CCS811 and SHT3x sensors are connected #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 static ccs811_sensor_t* ccs811; // CCS811 device data structure static sht3x_sensor_t* sht3x; // SHT3x device data structure diff --git a/examples/ccs811/ccs811_temperature/ccs811_temperature.c b/examples/ccs811/ccs811_temperature/ccs811_temperature.c index 56cfaad..6a81c7f 100644 --- a/examples/ccs811/ccs811_temperature/ccs811_temperature.c +++ b/examples/ccs811/ccs811_temperature/ccs811_temperature.c @@ -7,8 +7,8 @@ * * +------------------------+ +--------+ * | ESP8266 Bus 0 | | CCS811 | - * | GPIO 5 (SCL) >----> SCL | - * | GPIO 4 (SDA) ------ SDA | + * | GPIO 14 (SCL) >----> SCL | + * | GPIO 13 (SDA) <----> SDA | * | GND -----> /WAKE | * +------------------------+ +--------+ */ @@ -27,8 +27,8 @@ // define I2C interfaces at which CCS811 sensors can be connected #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 static ccs811_sensor_t* sensor; diff --git a/extras/ccs811/README.md b/extras/ccs811/README.md index d1795f1..fa660ae 100644 --- a/extras/ccs811/README.md +++ b/extras/ccs811/README.md @@ -1,6 +1,8 @@ # Driver for the ams CCS811 digital gas sensor for monitoring indoor air quality. -This driver is written for usage with the ESP8266 and FreeRTOS using the I2C interface driver. +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. ## About the sensor @@ -32,7 +34,7 @@ After power up, the sensor starts automatically in *Idle, Low Current Mode* (``` **Please note:** In *Constant Power Mode* with measurements every 250 ms (```mode_250ms```) only raw data are available. In all other measurement modes, the Indoor Air Quality (IAQ) values are available additionally. The *Constant Power Mode* with measurements every 250 ms (```mode_250ms```) is only intended for systems where an external host system wants to run an algorithm with raw data. -Once the is initialized with function ```ccs811_init_sensor```, function ```ccs811_set_mode``` can be used to start periodic measurements with a given period. +Once the sensor is initialized with function ```ccs811_init_sensor```, function ```ccs811_set_mode``` can be used to start periodic measurements with a given period. ``` static ccs811_sensor_t* sensor; @@ -211,42 +213,46 @@ First, the hardware configuration has to be established. ### Hardware configurations -Following figure shows the hardware configuration if no interrupt is used. +Following figure shows the hardware configuration for ESP8266 and ESP32 if no interrupt is used. ``` - +------------------------+ +--------+ - | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >----> SCL | - | GPIO 4 (SDA) ------ SDA | - | GND -----> /WAKE | - +------------------------+ +--------+ + +------------------+ +--------+ + | ESP8266 / ESP32 | | CCS811 | + | | | | + | GPIO 14 (SCL) >-------> SCL | + | GPIO 13 (SDA) <-------> SDA | + | GND --------> /WAKE | + +------------------+ +--------+ ``` If interrupt signal *nINT* is used to fetch new data, additionally the interrupt pin has to be connected to a GPIO pin. ``` - +------------------------+ +--------+ - | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >----> SCL | - | GPIO 4 (SDA) ------ SDA | - | GPIO 2 <----- /nINT | - | GND -----> /WAKE | - +------------------------+ +--------+ + +------------------+ +--------+ + | ESP8266 / ESP32 | | CCS811 | + | | | | + | GPIO 14 (SCL) >-------> SCL | + | GPIO 13 (SDA) <-------> SDA | + | GPIO 5 <-------- /nINT | + | GND --------> /WAKE | + +------------------+ +--------+ ``` If CCS811 sensor is used in conjunction with another sensor, e.g., a SHT3x sensor, the hardware configuration looks like following: ``` - +------------------------+ +--------+ - | ESP8266 Bus 0 | | CCS811 | - | GPIO 5 (SCL) >--+----> SCL | - | GPIO 4 (SDA) ---|-+--- SDA | - | GND ---|-|--> /WAKE | - | | | | +--------+ - | | | | | SHT3x | - | | +----> SCL | - | | +--- SDA | - +------------------------+ +--------+ + +------------------+ +--------+ + | ESP8266 / ESP32 | | CCS811 | + | | | | + | GPIO 14 (SCL) >--+----> SCL | + | GPIO 13 (SDA) <--|-+--> SDA | + | GND ---|-|--> /WAKE | + | | | | +--------+ + | | | | | SHT3x | + | | | | | | + | | +----> SCL | + | | +--> SDA | + +------------------+ +--------+ ``` ### Communication interface settings @@ -256,12 +262,11 @@ Dependent on the hardware configuration, the communication interface settings ha ``` // define I2C interfaces at which CCS811 sensors can be connected #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 // define GPIO for interrupt -#define INT_GPIO 2 -#include "sht3x/sht3x.h" +#define INT_GPIO 5 ``` ### Main program @@ -272,7 +277,7 @@ Before using the CCS811 driver, function ```i2c_init``` needs to be called for e ``` ... -i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K)); +i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); ... ``` @@ -401,31 +406,47 @@ ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); ## Full Example ``` -// use following constants to define the demo mode +/* -- use following constants to define the example mode ----------- */ + // #define INT_DATA_RDY_USED // #define INT_THRESHOLD_USED -#include "espressif/esp_common.h" -#include "esp/uart.h" -#include "i2c/i2c.h" +#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +#define INT_USED +#endif -#include "FreeRTOS.h" -#include +/* -- includes ----------------------------------------------------- */ -// include CCS811 driver -#include "ccs811/ccs811.h" +#include "ccs811.h" -// define I2C interfaces at which CCS811 sensors can be connected +/* -- platform dependent definitions ------------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 #define I2C_BUS 0 -#define I2C_SCL_PIN 5 -#define I2C_SDA_PIN 4 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K -// define GPIO for interrupt -#define INT_GPIO 2 +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define nINT_PIN 13 + +/* -- user tasks --------------------------------------------------- */ static ccs811_sensor_t* sensor; -#if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) +#ifdef INT_USED /** * In this example, the interrupt *nINT* is used. It is triggered every time * new data are available (INT_DATA_RDY_USED) or exceed defined thresholds @@ -459,12 +480,12 @@ void user_task_interrupt (void *pvParameters) // Interrupt handler which resumes user_task_interrupt on interrupt -void nINT_handler (uint8_t gpio) +static void IRAM nINT_handler(uint8_t gpio) { xTaskResumeFromISR (nINT_task); } -#else +#else // !INT_USED /* * In this example, user task fetches the sensor values every seconds. @@ -492,21 +513,22 @@ void user_task_periodic(void *pvParameters) } } -#endif +#endif // INT_USED +/* -- main program ------------------------------------------------- */ void user_init(void) { - // set UART Parameter + // Set UART Parameter. uart_set_baud(0, 115200); - // give the UART some time to settle - sdk_os_delay_us(500); + // Give the UART some time to settle + vTaskDelay(1); /** -- MANDATORY PART -- */ // init all I2C bus interfaces at which CCS811 sensors are connected - i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); - + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + // longer clock stretching is required for CCS811 i2c_set_clock_stretch (I2C_BUS, CCS811_I2C_CLOCK_STRETCH); @@ -515,33 +537,35 @@ void user_init(void) if (sensor) { - #if defined(INT_DATA_RDY_USED) || defined(INT_THRESHOLD_USED) + #if !defined (INT_USED) + + // create a periodic task that uses the sensor + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED // create a task that is resumed by interrupt handler to use the sensor - xTaskCreate(user_task_interrupt, "user_task_interrupt", 256, NULL, 2, &nINT_task); + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, &nINT_task); - // activate the interrupt for INT_GPIO and set the interrupt handler - gpio_set_interrupt(INT_GPIO, GPIO_INTTYPE_EDGE_NEG, nINT_handler); + // activate the interrupt for nINT_PIN and set the interrupt handler + gpio_enable(nINT_PIN, GPIO_INPUT); + gpio_set_interrupt(nINT_PIN, GPIO_INTTYPE_EDGE_NEG, nINT_handler); #ifdef INT_DATA_RDY_USED // enable the data ready interrupt ccs811_enable_interrupt (sensor, true); - #else + #else // INT_THRESHOLD_USED // set threshold parameters and enable threshold interrupt mode ccs811_set_eco2_thresholds (sensor, 600, 1100, 40); #endif - #else - - // create a periodic task that uses the sensor - xTaskCreate(user_task_periodic, "user_task_periodic", 256, NULL, 2, NULL); - - #endif + #endif // !defined(INT_USED) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); } } + ``` ## Further Examples diff --git a/extras/ccs811/ccs811.c b/extras/ccs811/ccs811.c index b1de154..2087b2a 100644 --- a/extras/ccs811/ccs811.c +++ b/extras/ccs811/ccs811.c @@ -1,14 +1,16 @@ /* - * Driver for ams CCS811 digital temperature, humity, pressure and - * gas sensor connected to I2C or SPI + * Driver for AMS CCS811 digital gas sensor connected to I2C. * - * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * --------------------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,14 +41,7 @@ */ #include - -#include "espressif/esp_common.h" -#include "espressif/sdk_private.h" - -#include "FreeRTOS.h" -#include "task.h" - -#include "i2c/i2c.h" +#include #include "ccs811.h" @@ -239,7 +234,7 @@ bool ccs811_set_mode (ccs811_sensor_t* dev, ccs811_mode_t mode) // check whether setting measurement mode were succesfull if (!ccs811_reg_read(dev, CCS811_REG_MEAS_MODE, (uint8_t*)®, 1) || - !reg.drive_mode == mode) + reg.drive_mode != mode) { error_dev ("Could not set measurement mode to %d", __FUNCTION__, dev, mode); return ccs811_check_error_status (dev); diff --git a/extras/ccs811/ccs811.h b/extras/ccs811/ccs811.h index d4f08e9..d7d3aa5 100644 --- a/extras/ccs811/ccs811.h +++ b/extras/ccs811/ccs811.h @@ -1,13 +1,16 @@ /* - * Driver for AMS CCS811 digital gas sensor connected to I2C + * Driver for AMS CCS811 digital gas sensor connected to I2C. * - * Part of esp-open-rtos [https://github.com/SuperHouse/esp-open-rtos] + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * --------------------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht] + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,13 +43,15 @@ #ifndef CCS811_DRV_H_ #define CCS811_DRV_H_ -#include "stdint.h" -#include "stdbool.h" - // Uncomment one of the following defines to enable debug output // #define CCS811_DEBUG_LEVEL_1 // only error messages // #define CCS811_DEBUG_LEVEL_2 // debug and error messages +#include "stdint.h" +#include "stdbool.h" + +#include "ccs811_platform.h" + // CCS811 I2C addresses #define CCS811_I2C_ADDRESS_1 0x5A // default #define CCS811_I2C_ADDRESS_2 0x5B diff --git a/extras/ccs811/ccs811_platform.h b/extras/ccs811/ccs811_platform.h new file mode 100644 index 0000000..c8a23ab --- /dev/null +++ b/extras/ccs811/ccs811_platform.h @@ -0,0 +1,69 @@ +/* + * Driver for AMS CCS811 digital gas sensor connected to I2C. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __CCS811_PLATFORM_H__ +#define __CCS811_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "i2c/i2c.h" + +#endif // ESP_OPEN_RTOS + +#endif // __CCS811_PLATFORM_H__ diff --git a/extras/ccs811/component.mk b/extras/ccs811/component.mk index b69ad0b..037b122 100644 --- a/extras/ccs811/component.mk +++ b/extras/ccs811/component.mk @@ -2,6 +2,7 @@ # expected anyone using ccs811 driver includes it as 'ccs811/ccs811.h' INC_DIRS += $(ccs811_ROOT).. +INC_DIRS += $(ccs811_ROOT) # args for passing into compile rule generation ccs811_SRC_DIR = $(ccs811_ROOT) From ca0b5da905f98c010d8b3f739c84939c708f9882 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Thu, 21 Dec 2017 19:02:02 +0100 Subject: [PATCH 259/349] - Delaying and repeating i2c operation automatically when i2c interface is busy removed. User has to deal with concurrency using semaphores. - GPIO_ID_PIN macros removed - Soft reset mechanism of SHT3x does not work when sensor is in any measurement mode. Therefore, it does not abort initialization procedure anymore - typos - changes to use the same source code with ESP8266 (esp-open-rtos) and ESP32 (ESP-IDF) --- examples/sht3x/README.md | 36 +++++----- examples/sht3x/sht3x.c | 56 +++++++++------ extras/sht3x/README.md | 128 +++++++++++++++++++++++++++------- extras/sht3x/component.mk | 1 + extras/sht3x/sht3x.c | 48 ++++--------- extras/sht3x/sht3x.h | 25 +++---- extras/sht3x/sht3x_platform.h | 70 +++++++++++++++++++ 7 files changed, 254 insertions(+), 110 deletions(-) create mode 100644 extras/sht3x/sht3x_platform.h diff --git a/examples/sht3x/README.md b/examples/sht3x/README.md index 610894c..453fad4 100644 --- a/examples/sht3x/README.md +++ b/examples/sht3x/README.md @@ -6,29 +6,31 @@ These examples demonstrate the usage of the SHT3x driver with only one and multi There are examples for only one sensor and examples for two sensors. -To run examples with **one sensor**, just use GPIO5 (SCL) and GPIO4 (SDA) to connect to the SHT3x sensor's I2C interface. +To run examples with **one sensor**, just use GPIO14 (SCL) and GPIO13 (SDA) to connect to the SHT3x sensor's I2C interface. ``` - +------------------------+ +--------+ - | ESP8266 Bus 0 | | SHT3x | - | GPIO 5 (SCL) >---- > SCL | - | GPIO 4 (SDA) ------- SDA | - | | +--------+ - +------------------------+ + +-----------------+ +----------+ + | ESP8266 / ESP32 | | SHT3x | + | | | | + | GPIO 14 (SCL) ------> SCL | + | GPIO 13 (SDA) <-----> SDA | + +-----------------+ +----------+ ``` -If you want to run examples with **two sensors**, you could do this with only one bus and different I2C addresses or with two buses and the same or different I2C addresses. In later case, use GPIO14 (SCL) and GPIO12 (SDA) for the second bus to connect to the second SHT3x sensor's I2C interface. +If you want to run examples with **two sensors**, you could do this with only one bus and different I2C addresses or with two buses and the same or different I2C addresses. In later case, use GPIO5 (SCL) and GPIO4 (SDA) for the second bus to connect to the second SHT3x sensor's I2C interface. ``` - +------------------------+ +----------+ - | ESP8266 Bus 0 | | SHT3x_1 | - | GPIO 5 (SCL) >-----> SCL | - | GPIO 4 (SDA) ------- SDA | - | | +----------+ - | Bus 1 | | SHT3x_2 | - | GPIO 14 (SCL) >-----> SCL | - | GPIO 12 (SDA) ------- SDA | - +------------------------+ +----------+ + +-----------------+ +----------+ + | ESP8266 / ESP32 | | SHT3x_1 | + | | | | + | GPIO 14 (SCL) ------> SCL | + | GPIO 13 (SDA) <-----> SDA | + | | +----------+ + | | | SHT3x_2 | + | | | | + | GPIO 5 (SCL) ------> SCL | + | GPIO 4 (SDA) <-----> SDA | + +-----------------+ +----------+ ``` ## Example description diff --git a/examples/sht3x/sht3x.c b/examples/sht3x/sht3x.c index cd5d990..ee304ea 100644 --- a/examples/sht3x/sht3x.c +++ b/examples/sht3x/sht3x.c @@ -10,29 +10,44 @@ * * Harware configuration: * - * +------------------------+ +----------+ - * | ESP8266 Bus 0 | | SHT3x | - * | GPIO 5 (SCL) ------> SCL | - * | GPIO 4 (SDA) ------- SDA | - * +------------------------+ +----------+ + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | SHT3x | + * | | | | + * | GPIO 14 (SCL) ------> SCL | + * | GPIO 13 (SDA) <-----> SDA | + * +-----------------+ +----------+ */ +/* -- use following constants to define the example mode ----------- */ + // #define SINGLE_SHOT_LOW_LEVEL // #define SINGLE_SHOT_HIGH_LEVEL - -#include "espressif/esp_common.h" -#include "esp/uart.h" -#include "FreeRTOS.h" -#include "task.h" +/* -- includes ----------------------------------------------------- */ -// include SHT3x driver -#include "sht3x/sht3x.h" +#include "sht3x.h" -// define I2C interfaces at which SHTx3 sensors are connected +/* -- platform dependent definitions ------------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 #define I2C_BUS 0 -#define I2C_SCL_PIN GPIO_ID_PIN((5)) -#define I2C_SDA_PIN GPIO_ID_PIN((4)) +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +/* -- user tasks --------------------------------------------------- */ static sht3x_sensor_t* sensor; // sensor device data structure @@ -130,23 +145,24 @@ void user_task (void *pvParameters) } #endif +/* -- main program ------------------------------------------------- */ + void user_init(void) { // Set UART Parameter. uart_set_baud(0, 115200); - - // Give the UART some time to settle. - sdk_os_delay_us(500); + // Give the UART some time to settle + vTaskDelay(1); // Init I2C bus interfaces at which SHT3x sensors are connected // (different busses are possible). - i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); // Create the sensors, multiple sensors are possible. if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) { // Create a user task that uses the sensors. - xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, 0); } // That's it. diff --git a/extras/sht3x/README.md b/extras/sht3x/README.md index e303c67..ca236b4 100644 --- a/extras/sht3x/README.md +++ b/extras/sht3x/README.md @@ -1,6 +1,8 @@ # Driver for **SHT3x** digital **temperature and humidity sensor** -This driver is written for usage with the ESP8266 and FreeRTOS using the I2C interface driver. It supports multiple SHT3x sensors connected to the same or different I2C interfaces. +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. ## About the sensor @@ -79,8 +81,8 @@ Before using the SHT3x driver, function ```i2c_init``` needs to be called for ea #include "sht3x/sht3x.h" ... #define I2C_BUS 0 -#define I2C_SCL_PIN GPIO_ID_PIN((5)) -#define I2C_SDA_PIN GPIO_ID_PIN((4)) +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 ... i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K) @@ -232,25 +234,44 @@ if (!sht3x_get_results (sensor, &values)) ## Full Example ``` -#include "espressif/esp_common.h" -#include "esp/uart.h" +/* -- use following constants to define the example mode ----------- */ -#include "FreeRTOS.h" -#include "task.h" +// #define SINGLE_SHOT_LOW_LEVEL +// #define SINGLE_SHOT_HIGH_LEVEL -// include SHT3x driver -#include "sht3x/sht3x.h" +/* -- includes ----------------------------------------------------- */ -// define I2C interfaces at which SHTx3 sensors are connected +#include "sht3x.h" + +/* -- platform dependent definitions ------------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 #define I2C_BUS 0 -#define I2C_SCL_PIN GPIO_ID_PIN((5)) -#define I2C_SDA_PIN GPIO_ID_PIN((4)) +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +/* -- user tasks --------------------------------------------------- */ static sht3x_sensor_t* sensor; // sensor device data structure +#if defined(SINGLE_SHOT_HIGH_LEVEL) /* - * User task that triggers a measurement every 5 seconds. Due to - * power efficiency reasons, it uses the SHT3x *sht3x_single_shot*. + * User task that triggers a measurement every 5 seconds. Due to power + * efficiency reasons it uses *single shot* mode. In this example it uses the + * high level function *sht3x_measure* to perform one measurement in each cycle. */ void user_task (void *pvParameters) { @@ -258,10 +279,36 @@ void user_task (void *pvParameters) float humidity; TickType_t last_wakeup = xTaskGetTickCount(); - + + while (1) + { + // perform one measurement and do something with the results + if (sht3x_measure (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // wait until 5 seconds are over + vTaskDelayUntil(&last_wakeup, 5000 / portTICK_PERIOD_MS); + } +} + +#elif defined(SINGLE_SHOT_LOW_LEVEL) +/* + * User task that triggers a measurement every 5 seconds. Due to power + * efficiency reasons it uses *single shot* mode. In this example it starts the + * measurement, waits for the results and fetches the results using separate + * functions + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + TickType_t last_wakeup = xTaskGetTickCount(); + // get the measurement duration for high repeatability; uint8_t duration = sht3x_get_measurement_duration(sht3x_high); - + while (1) { // Trigger one measurement in single shot mode with high repeatability. @@ -281,29 +328,60 @@ void user_task (void *pvParameters) } } +#else // PERIODIC MODE +/* + * User task that fetches latest measurement results of sensor every 2 + * seconds. It starts the SHT3x in periodic mode with 1 measurements per + * second (*sht3x_periodic_1mps*). + */ +void user_task (void *pvParameters) +{ + float temperature; + float humidity; + + // Start periodic measurements with 1 measurement per second. + sht3x_start_measurement (sensor, sht3x_periodic_1mps, sht3x_high); + + // Wait until first measurement is ready (constant time of at least 30 ms + // or the duration returned from *sht3x_get_measurement_duration*). + vTaskDelay (sht3x_get_measurement_duration(sht3x_high)); + + TickType_t last_wakeup = xTaskGetTickCount(); + + while (1) + { + // Get the values and do something with them. + if (sht3x_get_results (sensor, &temperature, &humidity)) + printf("%.3f SHT3x Sensor: %.2f °C, %.2f %%\n", + (double)sdk_system_get_time()*1e-3, temperature, humidity); + + // Wait until 2 seconds (cycle time) are over. + vTaskDelayUntil(&last_wakeup, 2000 / portTICK_PERIOD_MS); + } +} +#endif + +/* -- main program ------------------------------------------------- */ + void user_init(void) { // Set UART Parameter. uart_set_baud(0, 115200); - - // Give the UART some time to settle. - sdk_os_delay_us(500); + // Give the UART some time to settle + vTaskDelay(1); // Init I2C bus interfaces at which SHT3x sensors are connected // (different busses are possible). - i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ_100K); + i2c_init(I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); - // Create the sensors. + // Create the sensors, multiple sensors are possible. if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) { // Create a user task that uses the sensors. - xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, 0); } // That's it. } ``` -## Further Examples - -See also the examples in the examples directory [examples directory](../../examples/sht3x/README.md). diff --git a/extras/sht3x/component.mk b/extras/sht3x/component.mk index 3d8c544..4502c4b 100644 --- a/extras/sht3x/component.mk +++ b/extras/sht3x/component.mk @@ -2,6 +2,7 @@ # expected anyone using SHT3x driver includes it as 'sht3x/sht3x.h' INC_DIRS += $(sht3x_ROOT).. +INC_DIRS += $(sht3x_ROOT) # args for passing into compile rule generation sht3x_SRC_DIR = $(sht3x_ROOT) diff --git a/extras/sht3x/sht3x.c b/extras/sht3x/sht3x.c index 2a8b38b..1f4b4f2 100644 --- a/extras/sht3x/sht3x.c +++ b/extras/sht3x/sht3x.c @@ -2,13 +2,16 @@ * Driver for Sensirion SHT3x digital temperature and humidity sensor * connected to I2C * - * Part of esp-open-rtos + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * ---------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,23 +41,11 @@ * POSSIBILITY OF SUCH DAMAGE. */ -/** - * Driver for Sensirion SHT3x digital temperature and humity sensor - * connected to I2C - * - * Part of esp-open-rtos - */ - #include +#include #include "sht3x.h" -#include "FreeRTOS.h" -#include "task.h" - -#include "espressif/esp_common.h" -#include "espressif/sdk_private.h" - #define SHT3x_STATUS_CMD 0xF32D #define SHT3x_CLEAR_STATUS_CMD 0x3041 #define SHT3x_RESET_CMD 0x30A2 @@ -139,12 +130,10 @@ sht3x_sensor_t* sht3x_init_sensor(uint8_t bus, uint8_t addr) uint16_t status; - // reset the sensor + // try to reset the sensor if (!sht3x_reset(dev)) { - error_dev ("could not reset the sensor", __FUNCTION__, dev); - free(dev); - return NULL; + debug_dev ("could not reset the sensor", __FUNCTION__, dev); } // check again the status after clear status command @@ -325,13 +314,7 @@ static bool sht3x_send_command(sht3x_sensor_t* dev, uint16_t cmd) debug_dev ("send command MSB=%02x LSB=%02x", __FUNCTION__, dev, data[0], data[1]); - int err; - int count = 10; - - // in case i2c is busy, try to write up to ten ticks (normally 100 ms) - // tested with a task that is disturbing by using i2c bus almost all the time - while ((err=i2c_slave_write(dev->bus, dev->addr, 0, data, 2)) == -EBUSY && count--) - vTaskDelay (1); + int err = i2c_slave_write(dev->bus, dev->addr, 0, data, 2); if (err) { @@ -339,21 +322,14 @@ static bool sht3x_send_command(sht3x_sensor_t* dev, uint16_t cmd) error_dev ("i2c error %d on write command %02x", __FUNCTION__, dev, err, cmd); return false; } - + return true; } - static bool sht3x_read_data(sht3x_sensor_t* dev, uint8_t *data, uint32_t len) { if (!dev) return false; - - int err; - int count = 10; - - // in case i2c is busy, try to read up to ten ticks (normally 100 ms) - while ((err=i2c_slave_read(dev->bus, dev->addr, 0, data, len)) == -EBUSY && count--) - vTaskDelay (1); + int err = i2c_slave_read(dev->bus, dev->addr, 0, data, len); if (err) { @@ -368,7 +344,7 @@ static bool sht3x_read_data(sht3x_sensor_t* dev, uint8_t *data, uint32_t len) for (int i=0; i < len; i++) printf("%02x ", data[i]); printf("\n"); -# endif +# endif // ifdef SHT3x_DEBUG_LEVEL_2 return true; } diff --git a/extras/sht3x/sht3x.h b/extras/sht3x/sht3x.h index 4ec1d35..bf602c5 100644 --- a/extras/sht3x/sht3x.h +++ b/extras/sht3x/sht3x.h @@ -2,13 +2,16 @@ * Driver for Sensirion SHT3x digital temperature and humidity sensor * connected to I2C * - * Part of esp-open-rtos + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. * * ---------------------------------------------------------------- * * The BSD License (3-clause license) * - * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,20 +41,18 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifndef DRIVER_SHT3x_H_ -#define DRIVER_SHT3x_H_ - -#include "stdint.h" -#include "stdbool.h" - -#include "FreeRTOS.h" - -#include "i2c/i2c.h" +#ifndef __SHT3x_H__ +#define __SHT3x_H__ // Uncomment to enable debug output // #define SHT3x_DEBUG_LEVEL_1 // only error messages // #define SHT3x_DEBUG_LEVEL_2 // error and debug messages +#include "stdint.h" +#include "stdbool.h" + +#include "sht3x_platform.h" + #ifdef __cplusplus extern "C" { #endif @@ -276,4 +277,4 @@ bool sht3x_get_results (sht3x_sensor_t* dev, } #endif -#endif /* DRIVER_SHT3x_H_ */ +#endif /* __SHT3x_H__ */ diff --git a/extras/sht3x/sht3x_platform.h b/extras/sht3x/sht3x_platform.h new file mode 100644 index 0000000..64eadaf --- /dev/null +++ b/extras/sht3x/sht3x_platform.h @@ -0,0 +1,70 @@ +/* + * Driver for Sensirion SHT3x digital temperature and humidity sensor + * connected to I2C + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * ---------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __SHT3x_PLATFORM_H__ +#define __SHT3x_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "i2c/i2c.h" + +#endif // ESP_OPEN_RTOS + +#endif // __SHT3x_PLATFORM_H__ From 59a4d85663ae00336c92f8fd29167771f56d7ae5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 22 Dec 2017 20:03:11 +1100 Subject: [PATCH 260/349] FreeRTOS v10.0.1 Mainly some simplifications to the copyright terms. --- FreeRTOS/Source/croutine.c | 5 +- FreeRTOS/Source/event_groups.c | 5 +- FreeRTOS/Source/include/FreeRTOS.h | 5 +- FreeRTOS/Source/include/StackMacros.h | 171 ------------------ FreeRTOS/Source/include/croutine.h | 5 +- .../Source/include/deprecated_definitions.h | 5 +- FreeRTOS/Source/include/event_groups.h | 5 +- FreeRTOS/Source/include/list.h | 5 +- FreeRTOS/Source/include/message_buffer.h | 5 +- FreeRTOS/Source/include/mpu_prototypes.h | 9 +- FreeRTOS/Source/include/mpu_wrappers.h | 5 +- FreeRTOS/Source/include/portable.h | 5 +- FreeRTOS/Source/include/projdefs.h | 5 +- FreeRTOS/Source/include/queue.h | 5 +- FreeRTOS/Source/include/semphr.h | 5 +- FreeRTOS/Source/include/stack_macros.h | 5 +- FreeRTOS/Source/include/stream_buffer.h | 5 +- FreeRTOS/Source/include/task.h | 9 +- FreeRTOS/Source/include/timers.h | 5 +- FreeRTOS/Source/list.c | 5 +- FreeRTOS/Source/queue.c | 5 +- FreeRTOS/Source/stream_buffer.c | 9 +- FreeRTOS/Source/tasks.c | 5 +- FreeRTOS/Source/timers.c | 5 +- 24 files changed, 54 insertions(+), 244 deletions(-) delete mode 100644 FreeRTOS/Source/include/StackMacros.h diff --git a/FreeRTOS/Source/croutine.c b/FreeRTOS/Source/croutine.c index 4efe70b..b715884 100644 --- a/FreeRTOS/Source/croutine.c +++ b/FreeRTOS/Source/croutine.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/event_groups.c b/FreeRTOS/Source/event_groups.c index d942e15..14d7b02 100644 --- a/FreeRTOS/Source/event_groups.c +++ b/FreeRTOS/Source/event_groups.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h index 0a46f4f..71ff1db 100644 --- a/FreeRTOS/Source/include/FreeRTOS.h +++ b/FreeRTOS/Source/include/FreeRTOS.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/StackMacros.h b/FreeRTOS/Source/include/StackMacros.h deleted file mode 100644 index a3f9335..0000000 --- a/FreeRTOS/Source/include/StackMacros.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -#ifndef STACK_MACROS_H -#define STACK_MACROS_H - -/* - * Call the stack overflow hook function if the stack of the task being swapped - * out is currently overflowed, or looks like it might have overflowed in the - * past. - * - * Setting configCHECK_FOR_STACK_OVERFLOW to 1 will cause the macro to check - * the current stack state only - comparing the current top of stack value to - * the stack limit. Setting configCHECK_FOR_STACK_OVERFLOW to greater than 1 - * will also cause the last few stack bytes to be checked to ensure the value - * to which the bytes were set when the task was created have not been - * overwritten. Note this second test does not guarantee that an overflowed - * stack will always be recognised. - */ - -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskCHECK_FOR_STACK_OVERFLOW() \ - { \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \ - { \ - vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskCHECK_FOR_STACK_OVERFLOW() \ - { \ - \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \ - { \ - vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) ) - - #define taskCHECK_FOR_STACK_OVERFLOW() \ - { \ - const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack; \ - const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; \ - \ - if( ( pulStack[ 0 ] != ulCheckValue ) || \ - ( pulStack[ 1 ] != ulCheckValue ) || \ - ( pulStack[ 2 ] != ulCheckValue ) || \ - ( pulStack[ 3 ] != ulCheckValue ) ) \ - { \ - vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) ) - - #define taskCHECK_FOR_STACK_OVERFLOW() \ - { \ - int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack; \ - static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -/* Remove stack overflow macro if not being used. */ -#ifndef taskCHECK_FOR_STACK_OVERFLOW - #define taskCHECK_FOR_STACK_OVERFLOW() -#endif - - - -#endif /* STACK_MACROS_H */ - diff --git a/FreeRTOS/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h index 502045c..f4c54d2 100644 --- a/FreeRTOS/Source/include/croutine.h +++ b/FreeRTOS/Source/include/croutine.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/deprecated_definitions.h b/FreeRTOS/Source/include/deprecated_definitions.h index 113e78b..1125673 100644 --- a/FreeRTOS/Source/include/deprecated_definitions.h +++ b/FreeRTOS/Source/include/deprecated_definitions.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/event_groups.h b/FreeRTOS/Source/include/event_groups.h index 34e6926..69ec2e6 100644 --- a/FreeRTOS/Source/include/event_groups.h +++ b/FreeRTOS/Source/include/event_groups.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/list.h b/FreeRTOS/Source/include/list.h index e3e569f..4a3afa1 100644 --- a/FreeRTOS/Source/include/list.h +++ b/FreeRTOS/Source/include/list.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/message_buffer.h b/FreeRTOS/Source/include/message_buffer.h index cdd050c..91e34fa 100644 --- a/FreeRTOS/Source/include/message_buffer.h +++ b/FreeRTOS/Source/include/message_buffer.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h index 3931ee6..e2c89ab 100644 --- a/FreeRTOS/Source/include/mpu_prototypes.h +++ b/FreeRTOS/Source/include/mpu_prototypes.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS @@ -85,8 +84,8 @@ BaseType_t MPU_xTaskGetSchedulerState( void ); /* MPU versions of queue.h API functions. */ BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ); BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); -BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); -BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ); +BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ); +BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ); UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ); UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ); void MPU_vQueueDelete( QueueHandle_t xQueue ); diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h index e434e3b..eb326e7 100644 --- a/FreeRTOS/Source/include/mpu_wrappers.h +++ b/FreeRTOS/Source/include/mpu_wrappers.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/portable.h b/FreeRTOS/Source/include/portable.h index 95be167..3d0ef0a 100644 --- a/FreeRTOS/Source/include/portable.h +++ b/FreeRTOS/Source/include/portable.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h index f3bada2..27337a8 100644 --- a/FreeRTOS/Source/include/projdefs.h +++ b/FreeRTOS/Source/include/projdefs.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index 916498e..a23fa1e 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h index e48f245..e603b4a 100644 --- a/FreeRTOS/Source/include/semphr.h +++ b/FreeRTOS/Source/include/semphr.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/stack_macros.h b/FreeRTOS/Source/include/stack_macros.h index 99f6502..79a83ea 100644 --- a/FreeRTOS/Source/include/stack_macros.h +++ b/FreeRTOS/Source/include/stack_macros.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/stream_buffer.h b/FreeRTOS/Source/include/stream_buffer.h index 2ca9c6d..5418e05 100644 --- a/FreeRTOS/Source/include/stream_buffer.h +++ b/FreeRTOS/Source/include/stream_buffer.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index ae7097d..d0ee068 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS @@ -44,10 +43,10 @@ extern "C" { * MACROS AND DEFINITIONS *----------------------------------------------------------*/ -#define tskKERNEL_VERSION_NUMBER "V10.0.0" +#define tskKERNEL_VERSION_NUMBER "V10.0.1" #define tskKERNEL_VERSION_MAJOR 10 #define tskKERNEL_VERSION_MINOR 0 -#define tskKERNEL_VERSION_BUILD 0 +#define tskKERNEL_VERSION_BUILD 1 /** * task. h diff --git a/FreeRTOS/Source/include/timers.h b/FreeRTOS/Source/include/timers.h index 084b15a..05eb90f 100644 --- a/FreeRTOS/Source/include/timers.h +++ b/FreeRTOS/Source/include/timers.h @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c index 8e3560a..758523a 100644 --- a/FreeRTOS/Source/list.c +++ b/FreeRTOS/Source/list.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c index 9a46f46..c37d285 100644 --- a/FreeRTOS/Source/queue.c +++ b/FreeRTOS/Source/queue.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/stream_buffer.c b/FreeRTOS/Source/stream_buffer.c index f51a144..c60045f 100644 --- a/FreeRTOS/Source/stream_buffer.c +++ b/FreeRTOS/Source/stream_buffer.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS @@ -40,6 +39,10 @@ task.h is included from an application file. */ #include "task.h" #include "stream_buffer.h" +#if( configUSE_TASK_NOTIFICATIONS != 1 ) + #error configUSE_TASK_NOTIFICATIONS must be set to 1 to build stream_buffer.c +#endif + /* Lint e961 and e750 are suppressed as a MISRA exception justified because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the header files above, but not in this file, in order to generate the correct diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c index 5484046..85f04ec 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/FreeRTOS/Source/timers.c b/FreeRTOS/Source/timers.c index b006385..29d8cb9 100644 --- a/FreeRTOS/Source/timers.c +++ b/FreeRTOS/Source/timers.c @@ -1,5 +1,5 @@ /* - * FreeRTOS Kernel V10.0.0 + * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -10,8 +10,7 @@ * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. If you wish to use our Amazon - * FreeRTOS name, please do so in a fair use way that does not cause confusion. + * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS From 543b4198b29957563c76972e30795955147911a4 Mon Sep 17 00:00:00 2001 From: UncleRus Date: Sun, 24 Dec 2017 18:49:52 +0500 Subject: [PATCH 261/349] Driver for Cypress serial F-RAM --- core/esp_spi.c | 35 ++++++++ core/include/esp/spi.h | 10 +++ extras/fram/component.mk | 9 ++ extras/fram/fram.c | 183 +++++++++++++++++++++++++++++++++++++++ extras/fram/fram.h | 124 ++++++++++++++++++++++++++ 5 files changed, 361 insertions(+) create mode 100644 extras/fram/component.mk create mode 100644 extras/fram/fram.c create mode 100644 extras/fram/fram.h diff --git a/core/esp_spi.c b/core/esp_spi.c index 47dcd66..84b3cb0 100644 --- a/core/esp_spi.c +++ b/core/esp_spi.c @@ -297,6 +297,41 @@ size_t spi_transfer(uint8_t bus, const void *out_data, void *in_data, size_t len return len; } +static void _spi_buf_read(uint8_t bus, uint8_t b, void *in_data, + size_t len, spi_endianness_t e, spi_word_size_t word_size) +{ + _wait(bus); + size_t bytes = len * (uint8_t)word_size; + _set_size(bus, bytes); + uint32_t w = ((uint32_t)b << 24) | ((uint32_t)b << 16) | ((uint32_t)b << 8) | b; + for (uint8_t i = 0; i < _SPI_BUF_SIZE / 4; i ++) + SPI(bus).W[i] = w; + _start(bus); + _wait(bus); + _spi_buf_prepare(bus, len, e, word_size); + memcpy(in_data, (void *)SPI(bus).W, bytes); +} + +void spi_read(uint8_t bus, uint8_t out_byte, void *in_data, size_t len, spi_word_size_t word_size) +{ + spi_endianness_t e = spi_get_endianness(bus); + uint8_t buf_size = _SPI_BUF_SIZE / (uint8_t)word_size; + + size_t blocks = len / buf_size; + for (size_t i = 0; i < blocks; i++) + { + size_t offset = i * _SPI_BUF_SIZE; + _spi_buf_read(bus, out_byte, (uint8_t *)in_data + offset, buf_size, e, word_size); + _rearm_extras_bit(bus, false); + } + + uint8_t tail = len % buf_size; + if (tail) + _spi_buf_read(bus, out_byte, (uint8_t *)in_data + blocks * _SPI_BUF_SIZE, tail, e, word_size); + + if (blocks) _rearm_extras_bit(bus, true); +} + static void _repeat_send(uint8_t bus, uint32_t *dword, int32_t *repeats, spi_word_size_t size) { diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h index ff77c79..9ce68fb 100644 --- a/core/include/esp/spi.h +++ b/core/include/esp/spi.h @@ -400,6 +400,16 @@ void spi_repeat_send_16(uint8_t bus, uint16_t data, int32_t repeats); */ void spi_repeat_send_32(uint8_t bus, uint32_t data, int32_t repeats); +/** + * \brief Repeatedly send byte over SPI and receive data + * \param bus Bus ID: 0 - system, 1 - user + * \param out_byte Byte to send + * \param in_data Receive buffer + * \param len Buffer size in words + * \param word_size Size of the word + */ +void spi_read(uint8_t bus, uint8_t out_byte, void *in_data, size_t len, spi_word_size_t word_size); + #ifdef __cplusplus } #endif diff --git a/extras/fram/component.mk b/extras/fram/component.mk new file mode 100644 index 0000000..3878e09 --- /dev/null +++ b/extras/fram/component.mk @@ -0,0 +1,9 @@ +# Component makefile for extras/fram + +# expected anyone using ADC driver includes it as 'fram/fram.h' +INC_DIRS += $(fram_ROOT).. + +# args for passing into compile rule generation +fram_SRC_DIR = $(fram_ROOT) + +$(eval $(call component_compile_rules,fram)) diff --git a/extras/fram/fram.c b/extras/fram/fram.c new file mode 100644 index 0000000..2192bb1 --- /dev/null +++ b/extras/fram/fram.c @@ -0,0 +1,183 @@ +/** + * Driver for serial nonvolatile ferroelectric random access + * memory or F-RAM. + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#include "fram.h" + +#include + +#define CMD_WRSR 0x01 // 0b00000001 +#define CMD_WRITE 0x02 // 0b00000010 +#define CMD_READ 0x03 // 0b00000011 +#define CMD_WRDI 0x04 // 0b00000100 +#define CMD_RDSR 0x05 // 0b00000101 +#define CMD_WREN 0x06 // 0b00000110 +#define CMD_FSTRD 0x0b // 0b00001011 +#define CMD_RDID 0x9f // 0b10011111 +#define CMD_SLEEP 0xb9 // 0b10111001 +#define CMD_SNR 0xc3 // 0b11000011 + +#define SR_BIT_WEL 1 +#define SR_BIT_BP0 2 +#define SR_BIT_BP1 3 +#define SR_BIT_WPEN 7 + +#define SR_MASK_BP (0x03 << SR_BIT_BP0) + +static const spi_settings_t defaults = { + .endianness = SPI_BIG_ENDIAN, + .msb = true, + .mode = SPI_MODE0, + .minimal_pins = true, + .freq_divider = SPI_FREQ_DIV_40M +}; + +inline static void chip_select(const fram_t *dev) +{ + gpio_write(dev->cs_gpio, false); +} + +inline static void chip_unselect(const fram_t *dev) +{ + gpio_write(dev->cs_gpio, true); +} + +static uint8_t read_status_reg(const fram_t *dev) +{ + chip_select(dev); + spi_transfer_8(dev->spi_bus, CMD_RDSR); + uint8_t res = spi_transfer_8(dev->spi_bus, 0xff); + chip_unselect(dev); + return res; +} + +static void write_status_reg(const fram_t *dev, uint8_t val) +{ + chip_select(dev); + spi_transfer_8(dev->spi_bus, CMD_WREN); + chip_unselect(dev); + + chip_select(dev); + spi_transfer_8(dev->spi_bus, CMD_WRSR); + spi_transfer_8(dev->spi_bus, val); +} + +void fram_init(const fram_t *dev) +{ + gpio_enable(dev->cs_gpio, GPIO_OUTPUT); + gpio_set_pullup(dev->cs_gpio, true, true); + chip_unselect(dev); +} + +static void begin(const fram_t *dev, spi_settings_t *s, spi_settings_t *old) +{ + spi_get_settings(dev->spi_bus, &old); + memcpy(&s, &defaults, sizeof(spi_settings_t)); + s->freq_divider = dev->spi_freq_div; + spi_set_settings(dev->spi_bus, &s); + chip_select(dev); +} + +static void end(const fram_t *dev, spi_settings_t *old) +{ + chip_unselect(dev); + spi_set_settings(dev->spi_bus, &old); +} + +void fram_read(const fram_t *dev, void *to, void *from, size_t size) +{ + spi_settings_t s, old; + begin(dev, &s, &old); + + uint32_t header = ((uint32_t)CMD_READ << 24) | ((uint32_t)from & 0x00ffffff); + spi_transfer_32(dev->spi_bus, header); + + spi_set_endianness(dev->spi_bus, SPI_LITTLE_ENDIAN); + spi_read(dev->spi_bus, 0xff, to, size, SPI_8BIT); + + end(dev, &old); +} + +void fram_write(const fram_t *dev, void *from, void *to, size_t size) +{ + spi_settings_t s, old; + begin(dev, &s, &old); + + spi_transfer_8(dev->spi_bus, CMD_WREN); + chip_unselect(dev); + + chip_select(dev); + uint32_t header = ((uint32_t)CMD_WRITE << 24) | ((uint32_t)to & 0x00ffffff); + spi_transfer_32(dev->spi_bus, header); + + spi_set_endianness(dev->spi_bus, SPI_LITTLE_ENDIAN); + spi_transfer(dev->spi_bus, from, NULL, size, SPI_8BIT); + + end(dev, &old); +} + +void fram_sleep(const fram_t *dev, bool sleep) +{ + if (!sleep) + { + chip_select(dev); + chip_unselect(dev); + return; + } + + spi_settings_t s, old; + begin(dev, &s, &old); + + spi_transfer_8(dev->spi_bus, CMD_SLEEP); + + end(dev, &old); +} + +bool fram_busy(const fram_t *dev) +{ + gpio_enable(dev->cs_gpio, GPIO_INPUT); + bool res = !gpio_read(dev->cs_gpio); + fram_init(dev); + return res; +} + +void fram_id(const fram_t *dev, fram_id_t *id) +{ + spi_settings_t s, old; + begin(dev, &s, &old); + + spi_transfer_8(dev->spi_bus, CMD_RDID); + + for (uint8_t i = 0; i < FRAM_ID_LEN; i ++) + id->data[FRAM_ID_LEN - i - 1] = spi_transfer_8(dev->spi_bus, 0xff); + + end(dev, &old); +} + +void fram_set_wp_mode(const fram_t *dev, fram_wp_mode_t mode) +{ + spi_settings_t s, old; + begin(dev, &s, &old); + + write_status_reg(dev, (read_status_reg(dev) & ~SR_MASK_BP) | ((mode & 0x03) << SR_BIT_BP0)); + + end(dev, &old); +} + +fram_wp_mode_t fram_get_wp_mode(const fram_t *dev) +{ + spi_settings_t s, old; + begin(dev, &s, &old); + + fram_wp_mode_t res = (fram_wp_mode_t)((read_status_reg(dev) & SR_MASK_BP) >> SR_BIT_BP0); + + end(dev, &old); + + return res; +} + + diff --git a/extras/fram/fram.h b/extras/fram/fram.h new file mode 100644 index 0000000..d0eb429 --- /dev/null +++ b/extras/fram/fram.h @@ -0,0 +1,124 @@ +/** + * Driver for serial nonvolatile ferroelectric random access + * memory or F-RAM. + * + * Part of esp-open-rtos + * Copyright (C) 2017 Ruslan V. Uss + * BSD Licensed as described in the file LICENSE + */ +#ifndef EXTRAS_FRAM_H_ +#define EXTRAS_FRAM_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define FRAM_ID_LEN 9 + +/** + * F-RAM device descriptor + */ +typedef struct +{ + uint8_t spi_bus; //!< SPI bus + uint8_t cs_gpio; //!< chip select GPIO + uint32_t spi_freq_div; //!< SPI bus frequency divider +} fram_t; + +/** + * F-RAM device ID + */ +typedef struct +{ + uint8_t data[FRAM_ID_LEN]; + union + { + uint8_t rsvd: 3; + uint8_t rev: 3; + uint8_t sub: 2; + uint8_t density: 5; + uint8_t family: 3; + uint8_t manufacturer[FRAM_ID_LEN - 2]; + }; +} fram_id_t; + + +/** + * Write protection mode + */ +typedef enum +{ + FRAM_WP_NONE = 0, //!< No write protection + FRAM_WP_UPPER_QUARTER,//!< Upper 1/4 write protection + FRAM_WP_UPPER_HALF, //!< Upper 1/2 write protection + FRAM_WP_ALL //!< All memory write protection +} fram_wp_mode_t; + +/** + * Prepare to read/write F-RAM + * @param dev Pointer to device descriptor + */ +void fram_init(const fram_t *dev); + +/** + * Read data from F-RAM + * @param dev Pointer to device descriptor + * @param to Buffer to store data + * @param from F-RAM address + * @param size Bytes to read + */ +void fram_read(const fram_t *dev, void *to, void *from, size_t size); + +/** + * Write data to F-RAM + * @param dev Pointer to device descriptor + * @param from Data buffer + * @param to F-RAM address + * @param size Bytes to write + */ +void fram_write(const fram_t *dev, void *from, void *to, size_t size); + +/** + * Set device to sleep mode or wake up + * @param dev Pointer to device descriptor + * @param sleep Set to sleep mode when true, wake up otherwise + */ +void fram_sleep(const fram_t *dev, bool sleep); + +/** + * Check if F-RAM busy with another SPI master. + * To use this method of sharing F-RAM between two masters + * you'll need to pull up CS GPIO line + * @param dev Pointer to device descriptor + * @return true when device is busy + */ +bool fram_busy(const fram_t *dev); + +/** + * Read the device ID + * @param dev Pointer to device descriptor + * @param id Poiner to device ID structure + */ +void fram_id(const fram_t *dev, fram_id_t *id); + +/** + * Set block write protection mode + * @param dev Pointer to device descriptor + * @param mode Write protection mode + */ +void fram_set_wp_mode(const fram_t *dev, fram_wp_mode_t mode); + +/** + * Get current write protection mode + * @param dev Pointer to device descriptor + * @return Write protection mode + */ +fram_wp_mode_t fram_get_wp_mode(const fram_t *dev); + +#ifdef __cplusplus +} +#endif + +#endif /* EXTRAS_FRAM_H_ */ From 132391752e8e064f5d79356befea6fcbb033ae93 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Wed, 27 Dec 2017 00:33:59 +0500 Subject: [PATCH 262/349] MAX7219 driver fix --- extras/max7219/max7219.h | 1 - 1 file changed, 1 deletion(-) diff --git a/extras/max7219/max7219.h b/extras/max7219/max7219.h index 127d6c0..59756d4 100644 --- a/extras/max7219/max7219.h +++ b/extras/max7219/max7219.h @@ -89,7 +89,6 @@ void max7219_clear(const max7219_display_t *disp); void max7219_draw_text(const max7219_display_t *disp, uint8_t pos, const char *s); #ifdef __cplusplus -extern "C" } #endif From 3b2e0773ca75e968b2100aba1e0e29bd234ec0e4 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 27 Dec 2017 13:45:11 +1100 Subject: [PATCH 263/349] newlib: add an option to combine some locks. The locks are using a bit of the limited ram. It's probably fine to combine some of these to use the same mutex, and this patch does so for the set initialized early. The file locks will still be separate, and dynamically created, so a thread blocking on them will not deadlock all uses of newlib that need a lock. --- core/newlib_syscalls.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 8fcb49a..e33f923 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -239,6 +239,10 @@ extern _lock_t __sinit_recursive_mutex; void init_newlib_locks() { _lock_init(&__arc4random_mutex); + +#if 0 + /* Separate mutex for each lock. + * Each mutex uses about 96 bytes which adds up. */ _lock_init(&__at_quick_exit_mutex); //_lock_init(&__dd_hash_mutex); _lock_init(&__tz_mutex); @@ -248,6 +252,21 @@ void init_newlib_locks() _lock_init_recursive(&__malloc_recursive_mutex); _lock_init_recursive(&__sfp_recursive_mutex); _lock_init_recursive(&__sinit_recursive_mutex); +#else + /* Reuse the same mutex for all these, reducing memory usage. Newlib + * will still allocate other locks dynamically and some of those need + * to be separate such as the file lock where a thread might block with + * them held. */ + __at_quick_exit_mutex = __arc4random_mutex; + //__dd_hash_mutex = __arc4random_mutex; + __tz_mutex = __arc4random_mutex; + + __atexit_recursive_mutex = __arc4random_mutex; + __env_recursive_mutex = __arc4random_mutex; + __malloc_recursive_mutex = __arc4random_mutex; + __sfp_recursive_mutex = __arc4random_mutex; + __sinit_recursive_mutex = __arc4random_mutex; +#endif locks_initialized = 1; } From 3dd347ca5585ab5ed410c9096c1692186c97960e Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 27 Dec 2017 13:54:05 +1100 Subject: [PATCH 264/349] sysparam editor: more stdout flushing. --- examples/sysparam_editor/sysparam_editor.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/sysparam_editor/sysparam_editor.c b/examples/sysparam_editor/sysparam_editor.c index 29bf78e..df31593 100644 --- a/examples/sysparam_editor/sysparam_editor.c +++ b/examples/sysparam_editor/sysparam_editor.c @@ -50,16 +50,25 @@ size_t tty_readline(char *buffer, size_t buf_size, bool echo) { break; } else if (c == '\b' || c == 0x7f) { if (i) { - if (echo) printf("\b \b"); + if (echo) { + printf("\b \b"); + fflush(stdout); + } i--; } } else if (c < 0x20) { /* Ignore other control characters */ } else if (i >= buf_size - 1) { - if (echo) putchar('\a'); + if (echo) { + putchar('\a'); + fflush(stdout); + } } else { buffer[i++] = c; - if (echo) putchar(c); + if (echo) { + putchar(c); + fflush(stdout); + } } } @@ -177,6 +186,7 @@ void sysparam_editor_task(void *pvParameters) { } while (true) { printf("==> "); + fflush(stdout); len = tty_readline(cmd_buffer, CMD_BUF_SIZE, echo); status = 0; if (!len) continue; From 524f8b953f8ff21f1311c2039971c038b4ee61f3 Mon Sep 17 00:00:00 2001 From: Ivan Mikhailov Date: Sat, 30 Dec 2017 09:42:50 +0100 Subject: [PATCH 265/349] Allow html files customization for libesphttpd Modified component.mk to let user customize LIBESPHTTPD_HTML_DIR and LIBESPHTTPD_HTML_FILES --- extras/libesphttpd/component.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extras/libesphttpd/component.mk b/extras/libesphttpd/component.mk index 22e433e..cdc1360 100644 --- a/extras/libesphttpd/component.mk +++ b/extras/libesphttpd/component.mk @@ -5,6 +5,8 @@ INC_DIRS += $(libesphttpd_ROOT)/libesphttpd/include $(libesphttpd_ROOT)/libespht LIBESPHTTPD_MAX_CONNECTIONS ?= 4 LIBESPHTTPD_STACKSIZE ?= 2048 LIBESPHTTPD_OTA_TAGNAME ?= generic +LIBESPHTTPD_HTML_DIR ?= html +LIBESPHTTPD_HTML_FILES ?= $(call rwildcard,$(LIBESPHTTPD_HTML_DIR)/,*) RBOOT_OTA ?= 1 ESP_IP ?= 192.168.4.1 @@ -20,8 +22,6 @@ rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2 LIBESPHTTPD_MKESPFSIMAGE_DIR = $(BUILD_DIR)mkespfsimage LIBESPHTTPD_MKESPFS = $(LIBESPHTTPD_MKESPFSIMAGE_DIR)/mkespfsimage -LIBESPHTTPD_HTML_DIR = html -LIBESPHTTPD_HTML_FILES = $(call rwildcard,$(LIBESPHTTPD_HTML_DIR),*) LIBESPHTTPD_HTML_TINY_DIR = $(BUILD_DIR)html LIBESPHTTPD_HTML_ESPFS = $(BUILD_DIR)web.espfs.bin LIBESPHTTPD_HTML_ESPFS_PATH = $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_HTML_ESPFS) @@ -42,7 +42,7 @@ $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS): $(LIBESPHTTPD_MKESPFSIMAGE_DIR) make -C $(libesphttpd_ROOT)/libesphttpd/espfs/mkespfsimage CC=gcc GZIP_COMPRESSION=yes USE_HEATSHRINK=yes BUILD_DIR=$(PROGRAM_REAL_ROOT)/$(BUILD_DIR) $(LIBESPHTTPD_HTML_ESPFS): $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS) $(LIBESPHTTPD_HTML_FILES) - cd $(LIBESPHTTPD_HTML_DIR) && find . | $< > $(LIBESPHTTPD_HTML_ESPFS_PATH) || rm -f $(LIBESPHTTPD_HTML_ESPFS_PATH) + cd $(LIBESPHTTPD_HTML_DIR) && find $(patsubst $(LIBESPHTTPD_HTML_DIR)/%,%,$(LIBESPHTTPD_HTML_FILES)) | $< > $(LIBESPHTTPD_HTML_ESPFS_PATH) || rm -f $(LIBESPHTTPD_HTML_ESPFS_PATH) $(LIBESPHTTPD_HTML_ESPFS_OBJ): $(LIBESPHTTPD_HTML_ESPFS) $(Q)$(OBJCOPY) -I binary -O $(CROSS_OUTPUT_TARGET) -B $(CROSS_BINARY_ARCH) --rename-section .data=.irom.espfs $^ $@ From c3dbac37ef41d0da193e528bcbdd8e85c17a4642 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 30 Dec 2017 20:51:53 +1100 Subject: [PATCH 266/349] Change the netif default to the station in STATIONAP mode. It seems most common for the connection to the wider internet to be via the station netif even if there is also an AP netif, so set the default to the station netif. The lwip ipv4 route logic will still use the AP netif if the destination is to that subnet. --- core/app_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/app_main.c b/core/app_main.c index 9c6ca9c..cd59c79 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -371,18 +371,18 @@ void sdk_user_init_task(void *params) { user_init(); sdk_user_init_flag = 1; sdk_wifi_mode_set(sdk_g_ic.s.wifi_mode); - if (sdk_g_ic.s.wifi_mode == 1) { + if (sdk_g_ic.s.wifi_mode == STATION_MODE) { sdk_wifi_station_start(); netif_set_default(sdk_g_ic.v.station_netif_info->netif); } - if (sdk_g_ic.s.wifi_mode == 2) { + if (sdk_g_ic.s.wifi_mode == SOFTAP_MODE) { sdk_wifi_softap_start(); netif_set_default(sdk_g_ic.v.softap_netif_info->netif); } - if (sdk_g_ic.s.wifi_mode == 3) { + if (sdk_g_ic.s.wifi_mode == STATIONAP_MODE) { sdk_wifi_station_start(); sdk_wifi_softap_start(); - netif_set_default(sdk_g_ic.v.softap_netif_info->netif); + netif_set_default(sdk_g_ic.v.station_netif_info->netif); } if (sdk_wifi_station_get_auto_connect()) { sdk_wifi_station_connect(); From 7fed013453e7cde3b29f92dafc50e77a32508295 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Sat, 6 Jan 2018 15:34:36 +0100 Subject: [PATCH 267/349] minor changes --- examples/sht3x/sht3x.c | 2 ++ extras/sht3x/README.md | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/sht3x/sht3x.c b/examples/sht3x/sht3x.c index ee304ea..1bf3ed4 100644 --- a/examples/sht3x/sht3x.c +++ b/examples/sht3x/sht3x.c @@ -164,6 +164,8 @@ void user_init(void) // Create a user task that uses the sensors. xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, 0); } + else + printf("Could not initialize SHT3x sensor\n"); // That's it. } diff --git a/extras/sht3x/README.md b/extras/sht3x/README.md index ca236b4..21b25c9 100644 --- a/extras/sht3x/README.md +++ b/extras/sht3x/README.md @@ -102,12 +102,14 @@ if ((sensor = sht3x_init_sensor (I2C_BUS, SHT3x_ADDR_2))) Function ```sht3x_init_sensor``` returns a pointer to the sensor device data structure or NULL in case of error. -Last, the user task that uses the sensor has to be created. +Finally, a user task that uses the sensor has to be created. ``` xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); ``` +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + In **periodic mode**, the user task has to start the periodic measurement only once at the beginning of the task. After that, it has only to wait for the results of the first measurement. In the task loop itself, it simply fetches the next measurement results in each cycle. Thus, in this mode the user task could look like the following: From 39957e62038d63d0421b32e10cf1ee0c2f5a4c16 Mon Sep 17 00:00:00 2001 From: "Ruslan V. Uss" Date: Thu, 18 Jan 2018 12:30:34 +0500 Subject: [PATCH 268/349] Updated FreeRTOS version in reaadme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c18c40..b53b678 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl ## Open Source Components -* [FreeRTOS](http://www.freertos.org/) V9.0.0 +* [FreeRTOS](http://www.freertos.org/) V10.0.1 * [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v2.0.3, with [some modifications](https://github.com/ourairquality/lwip/). * [newlib](https://github.com/ourairquality/newlib) v2.5.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS. From f5bbff8b87afea6d2e7cd324f50d9640fe9d45f9 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 12:59:54 +0100 Subject: [PATCH 269/349] LSM303D e-Compass driver added (#548) --- examples/lsm303d/Makefile | 3 + examples/lsm303d/lsm303d_example.c | 432 +++++++ extras/lsm303d/README.md | 1216 ++++++++++++++++++++ extras/lsm303d/component.mk | 10 + extras/lsm303d/lsm303d.c | 1693 ++++++++++++++++++++++++++++ extras/lsm303d/lsm303d.h | 587 ++++++++++ extras/lsm303d/lsm303d_platform.c | 82 ++ extras/lsm303d/lsm303d_platform.h | 81 ++ extras/lsm303d/lsm303d_types.h | 483 ++++++++ 9 files changed, 4587 insertions(+) create mode 100644 examples/lsm303d/Makefile create mode 100644 examples/lsm303d/lsm303d_example.c create mode 100644 extras/lsm303d/README.md create mode 100644 extras/lsm303d/component.mk create mode 100644 extras/lsm303d/lsm303d.c create mode 100644 extras/lsm303d/lsm303d.h create mode 100644 extras/lsm303d/lsm303d_platform.c create mode 100644 extras/lsm303d/lsm303d_platform.h create mode 100644 extras/lsm303d/lsm303d_types.h diff --git a/examples/lsm303d/Makefile b/examples/lsm303d/Makefile new file mode 100644 index 0000000..2073588 --- /dev/null +++ b/examples/lsm303d/Makefile @@ -0,0 +1,3 @@ +PROGRAM=LSM303D +EXTRA_COMPONENTS = extras/i2c extras/lsm303d +include ../../common.mk diff --git a/examples/lsm303d/lsm303d_example.c b/examples/lsm303d/lsm303d_example.c new file mode 100644 index 0000000..957c027 --- /dev/null +++ b/examples/lsm303d/lsm303d_example.c @@ -0,0 +1,432 @@ +/** + * Simple example with one sensor connected to I2C or SPI. It demonstrates the + * different approaches to fetch the data. Either one of the interrupt signals + * is used or new data are fetched periodically. + * + * Harware configuration: + * + * I2C + * + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | LSM303D | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * | GPIO 5 <---- INT1 | + * | GPIO 4 <---- INT2 | + * +-----------------+ +----------+ + * + * SPI + * + * +-----------------+ +----------+ +-----------------+ +----------+ + * | ESP8266 | | LSM303D | | ESP32 | | LSM303D | + * | | | | | | | | + * | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + * | GPIO 13 (MOSI)----> SDI | | GPIO 17 (MOSI)----> SDI | + * | GPIO 12 (MISO)<---- SDO | | GPIO 18 (MISO)<---- SDO | + * | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + * | GPIO 5 <---- INT1 | | GPIO 5 <---- INT1 | + * | GPIO 4 <---- INT2 | | GPIO 4 <---- INT2 | + * +-----------------+ +---------+ +-----------------+ +----------+ + */ + +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // SPI interface is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define TEMP_USED // temperature sensor used +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // inertial event interrupts used (axis movement or 6D/4D orientation) +// #define INT_CLICK // click detection interrupts used +// #define INT_THRESH // magnetic value exceeds threshold interrupt used + +#if defined(INT_DATA) || defined(INT_EVENT) || defined(INT_CLICK) || defined(INT_THRESH) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lsm303d.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks --------------------------------------------------- */ + +static lsm303d_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + #ifdef FIFO_MODE + + lsm303d_float_a_data_fifo_t fifo; + + // test for new accelerator data data + if (lsm303d_new_a_data (sensor)) + { + // fetch the accelerator data stored in FIFO + uint8_t num = lsm303d_get_float_a_data_fifo (sensor, fifo); + + printf("%.3f LSM303D num=%d\n", (double)sdk_system_get_time()*1e-3, num); + + for (int i=0; i < num; i++) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LSM303D (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + fifo[i].ax, fifo[i].ay, fifo[i].az); + } + + #else + + lsm303d_float_a_data_t a_data; + + // test for new accelerator data and fetch them + if (lsm303d_new_a_data (sensor) && + lsm303d_get_float_a_data (sensor, &a_data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LSM303D (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + a_data.ax, a_data.ay, a_data.az); + + #endif // FIFO_MODE + + lsm303d_float_m_data_t m_data; + + // test for new magnetometer data and fetch them + if (lsm303d_new_m_data (sensor) && + lsm303d_get_float_m_data (sensor, &m_data)) + // max. full scale is +-12 Gs and best resolution is 1 mGs, i.e. 5 digits + printf("%.3f LSM303D (xyz)[Gs] mx=%+7.3f my=%+7.3f mz=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + m_data.mx, m_data.my, m_data.mz); + + #ifdef TEMP_USED + float temp = lsm303d_get_temperature (sensor); + + printf("%.3f LSM303D (tmp)[°C] %+7.3f\n", (double)sdk_system_get_time()*1e-3, temp); + #endif +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio, portMAX_DELAY)) + { + lsm303d_int_data_source_t data_src = {}; + lsm303d_int_event_source_t event_src = {}; + lsm303d_int_click_source_t click_src = {}; + lsm303d_int_m_thresh_source_t thresh_src = {}; + + // get the source of the interrupt that reset *INTx* signals + #ifdef INT_DATA + lsm303d_get_int_data_source (sensor, &data_src); + #endif + #ifdef INT_THRESH + lsm303d_get_int_m_thresh_source(sensor, &thresh_src); + #endif + #ifdef INT_EVENT + lsm303d_get_int_event_source (sensor, &event_src, lsm303d_int_event1_gen); + #endif + #ifdef INT_CLICK + lsm303d_get_int_click_source (sensor, &click_src); + #endif + + // in case of DRDY interrupt + if (data_src.a_data_ready || data_src.m_data_ready) + read_data (); + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_thresh || data_src.fifo_overrun) + read_data (); + + // in case of magnetic threshold interrupt + else if (thresh_src.active) + { + printf("%.3f LSM303D ", (double)sdk_system_get_time()*1e-3); + if (thresh_src.x_pos) printf("x exceeds threshold on positive side\n"); + if (thresh_src.y_pos) printf("y exceeds threshold on positive side\n"); + if (thresh_src.z_pos) printf("z exceeds threshold on positive side\n"); + if (thresh_src.x_neg) printf("x exceeds threshold on negative side\n"); + if (thresh_src.y_neg) printf("y exceeds threshold on negative side\n"); + if (thresh_src.z_neg) printf("z exceeds threshold on negative side\n"); + } + + // in case of event interrupt + else if (event_src.active) + { + printf("%.3f LSM303D ", (double)sdk_system_get_time()*1e-3); + if (event_src.x_low) printf("x is lower than threshold\n"); + if (event_src.y_low) printf("y is lower than threshold\n"); + if (event_src.z_low) printf("z is lower than threshold\n"); + if (event_src.x_high) printf("x is higher than threshold\n"); + if (event_src.y_high) printf("y is higher than threshold\n"); + if (event_src.z_high) printf("z is higher than threshold\n"); + } + + // in case of click detection interrupt + else if (click_src.active) + printf("%.3f LSM303D %s\n", (double)sdk_system_get_time()*1e-3, + click_src.s_click ? "single click" : "double click"); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(200/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the SPI interface at which LMS303D sensors are connected + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lsm303d_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C busses at which LSM303D sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LSM303D_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = lsm303d_init_sensor (I2C_BUS, LSM303D_I2C_ADDRESS_2, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_enable(INT2_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set the type of INTx signals if necessary + // lsm303d_config_int_signals (sensor, lsm303d_push_pull); + + #ifdef INT_DATA + // enable data interrupts on *INT2* (data ready or FIFO overrun and FIFO threshold) + // data ready and FIFO status interrupts must not be enabled at the same time + #ifdef FIFO_MODE + lsm303d_enable_int (sensor, lsm303d_int_fifo_overrun, lsm303d_int2_signal, true); + lsm303d_enable_int (sensor, lsm303d_int_fifo_thresh , lsm303d_int2_signal, true); + #else + lsm303d_enable_int (sensor, lsm303d_int_a_data_ready, lsm303d_int2_signal, true); + lsm303d_enable_int (sensor, lsm303d_int_m_data_ready, lsm303d_int2_signal, true); + #endif // FIFO_MODE + #endif // INT_DATA + + #ifdef INT_THRESH + // enable magnetic threshold interrupts on signal *INT1* + lsm303d_int_m_thresh_config_t m_thresh_config; + + m_thresh_config.threshold = 2000; + m_thresh_config.x_enabled = true; + m_thresh_config.y_enabled = true; + m_thresh_config.z_enabled = true; + m_thresh_config.latch = true; + m_thresh_config.signal_level = lsm303d_high_active; + + lsm303d_set_int_m_thresh_config (sensor, &m_thresh_config); + lsm303d_enable_int (sensor, lsm303d_int_m_thresh, lsm303d_int1_signal, true); + #endif // INT_THRESH + + #ifdef INT_EVENT + // enable inertial event interrupts on *INT1* + lsm303d_int_event_config_t event_config; + + event_config.mode = lsm303d_or; // axes movement wake-up + // event_config.mode = lsm303d_and; // free fall + // event_config.mode = lsm303d_6d_movement; + // event_config.mode = lsm303d_6d_position; + // event_config.mode = lsm303d_4d_movement; + // event_config.mode = lsm303d_4d_position; + event_config.threshold = 50; + event_config.x_low_enabled = false; + event_config.x_high_enabled = true; + event_config.y_low_enabled = false; + event_config.y_high_enabled = true; + event_config.z_low_enabled = false; + event_config.z_high_enabled = true; + event_config.duration = 0; + event_config.latch = true; + + lsm303d_set_int_event_config (sensor, &event_config, lsm303d_int_event1_gen); + lsm303d_enable_int (sensor, lsm303d_int_event1, lsm303d_int1_signal, true); + #endif // INT_EVENT + + #ifdef INT_CLICK + // enable single click interrupt for z-axis on signal *INT1* + lsm303d_int_click_config_t click_config; + + click_config.threshold = 10; + click_config.x_single = false; + click_config.x_double = false; + click_config.y_single = false; + click_config.y_double = false; + click_config.z_single = true; + click_config.z_double = false; + click_config.latch = true; + click_config.time_limit = 1; + click_config.time_latency = 1; + click_config.time_window = 3; + + lsm303d_set_int_click_config (sensor, &click_config); + lsm303d_enable_int (sensor, lsm303d_int_click, lsm303d_int1_signal, true); + #endif // INT_CLICK + + #ifdef FIFO_MODE + // clear the FIFO + lsm303d_set_fifo_mode (sensor, lsm303d_bypass, 0); + + // activate the FIFO with a threshold of 10 samples (max. 31); if + // interrupt *lsm303d_fifo_thresh* is enabled, an interrupt is + // generated when the FIFO content exceeds this threshold, i.e., + // when 11 samples are stored in FIFO + lsm303d_set_fifo_mode (sensor, lsm303d_stream, 10); + #endif + + // configure HPF and implicitly reset the reference by a dummy read + lsm303d_config_a_hpf (sensor, lsm303d_hpf_normal, true, true, true, true); + + #ifdef TEMP_USED + // enable the temperature sensor + lsm303d_enable_temperature (sensor, true); + #endif + + // LAST STEP: Finally set scale and mode to start measurements + lsm303d_set_a_scale(sensor, lsm303d_a_scale_2_g); + lsm303d_set_m_scale(sensor, lsm303d_m_scale_4_Gs); + lsm303d_set_a_mode (sensor, lsm303d_a_odr_12_5, lsm303d_a_aaf_bw_773, true, true, true); + lsm303d_set_m_mode (sensor, lsm303d_m_odr_12_5, lsm303d_m_low_res, lsm303d_m_continuous); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LSM303D sensor\n"); +} + diff --git a/extras/lsm303d/README.md b/extras/lsm303d/README.md new file mode 100644 index 0000000..c5ea142 --- /dev/null +++ b/extras/lsm303d/README.md @@ -0,0 +1,1216 @@ +# Driver for the LSM303D e-Compass 3D accelerometer and 3D magnetometer module + +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). If you can't find it in folder [extras/lsm303d](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras) of original repository, it is not yet merged. Please take a look to branch [lsm303d](https://github.com/gschorcht/esp-open-rtos/tree/lsm303d) of my fork in that case. + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. + +## About the sensor + +LSM303D is a high performance **3D digital linear acceleration and magnetic sensor** connected to **I2C** or **SPI** with a full scale of up to **±16 g** and **±12 Gauss**. + +**Main features** of the sensor are: + +- 3 magnetic field channels +- 3 acceleration channels +- ±2/±4/±8/±12 Gauss dynamically selectable magnetic full-scale +- ±2/±4/±6/±8/±16 g dynamically selectable linear acceleration full-scale +- different measuring rates for accelerator and magnetometer +- 16-bit data output +- embedded temperature sensor +- embedded 32 levels of 16 bit data output FIFO +- integrated high-pass filters +- programmable interrupt generators +- 6D/4D orientation detection +- free-fall detection +- motion detection +- single click and double click detection +- magnetic field detection + +## Sensor operation + +### Sensor modes + +LSM303D provides different operating modes. + +- **Power-down mode** is configured automatically after power up boot sequence. In this mode, almost all internal blocks of the device are switched off. Register content is preserved, but there are no measurements performed. + +- **Normal mode**: is the operation mode in which measurements are performed at a defined output data rate (**ODR**). + +The operation mode can be defined separately for the accelerator and the magnetometer. + +### Output Data Rates + +In normal mode, the accelerator and/or the magnetometer perform measurements with a defined output data rates (ODR). This output data rate can be defined separately for the accelerometer and the magnetometer. + +**Acceleration sensor** supports the following output data rates + +Mode | Output data rate (ODR) | Driver symbol +:------------- |---------:|:--------------- +Power-down | - | ```lsm303d_a_power_down``` +Normal mode | 3.125 Hz | ```lsm303d_a_odr_3_125``` +Normal mode | 6.25 Hz | ```lsm303d_a_odr_6_25``` +Normal mode | 12.5 Hz | ```lsm303d_a_odr_12_5``` +Normal mode | 25 Hz | ```lsm303d_a_odr_25``` +Normal mode | 50 Hz | ```lsm303d_a_odr_50``` +Normal mode | 100 Hz | ```lsm303d_a_odr_100``` +Normal mode | 200 Hz | ```lsm303d_a_odr_200``` +Normal mode | 400 Hz | ```lsm303d_a_odr_400``` +Normal mode | 800 Hz | ```lsm303d_a_odr_800``` +Normal mode | 1600 Hz | ```lsm303d_a_odr_1600``` + +**Magnetic sensor** supports the following output data rates + +Mode | Output data rate (ODR) | Driver symbol +:------------- |---------:|:--------------- +Power-down | - | ```lsm303d_m_do_not_use``` +Normal mode | 3.125 Hz | ```lsm303d_m_odr_3_125``` +Normal mode | 6.25 Hz | ```lsm303d_m_odr_6_25``` +Normal mode | 12.5 Hz | ```lsm303d_m_odr_12_5``` +Normal mode | 25 Hz | ```lsm303d_m_odr_25``` +Normal mode | 50 Hz | ```lsm303d_m_odr_50``` +Normal mode | 100 Hz | ```lsm303d_m_odr_100``` + +**Please note**: An output data rate of 100 Hz is only available for the magnetometer if the output data rate of the accelerometer is greater than 50 Hz or the accelerometer is in power-down mode. + +### Setting operation mode and output data rate + +The **easiest way to use the sensor** is to initialize it with the ```lsm303d_init_sensor``` function and then switch it to any measurement mode to start measurement with a given output data rate (ODR). The acceleration sensor mode is set with the ```lsm303d_set_a_mode``` function and the magnetometer mode is set with lsm303d_set_m_mode function. +``` +... +static lsm303d_sensor_t* sensor = 0; +... +if ((sensor = lsm303d_init_sensor (I2C_BUS, LSM303D_I2C_ADDRESS_2, 0))) +{ + ... + lsm303d_set_a_mode (sensor, lsm303d_a_odr_12_5, lsm303d_a_aaf_bw_773, true, true, true); + lsm303d_set_m_mode (sensor, lsm303d_m_odr_12_5, lsm303d_m_low_res, lsm303d_m_continuous); + ... +} +... + +``` +In this example, the LSM303D sensor is connected to I2C. After its initialization, both the accelerometer and the magnetometer are switched to the normal measuring mode with an output data rate of 12.5 Hz each. + +```lsm303d_set_a_mode``` function requires the bandwidth of the anti-alias filter (AAF) and the activated axes x, y and z as additional parameters. Possible bandwidths of the accelerator anti-alias filter are: + +AAF Bandwidth | Driver symbol +-------------:|:------------- +773 Hz | ```lsm303d_a_aaf_bw_773``` +362 Hz | ```lsm303d_a_aaf_bw_362``` +194 Hz | ```lsm303d_a_aaf_bw_194``` +50 Hz | ```lsm303d_a_aaf_bw_50``` + +```lsm303d_set_m_mode``` function requires the resolution and the measurement mode as additional parameters. It is possible to define + +- low resolution (```lsm303d_m_low_res```) and +- high resolution (```lsm303d_m_low_res```). + +Unfortunately, it is not documented what it exactly means. As measurement mode, the user can select + +- continuous conversion mode (```lsm303d_m_continuous```), +- single conversion mode (```lsm303d_m_single```), or +- power-down mode (```lsm303d_m_power_down```). + +During single-conversion mode, the device performs a single measurement and switches then back to the power-down mode. During continuous-conversion mode, the device continuously performs measurements with defined output data rate. In power-down mode the magnetometer is switched off. + +**Please note:** +- ```lsm303d_init_sensor``` function resets the sensor completely. That is, all sensor registers are reset to their default values and the sensor is switched to the power-down mode. The function returns a pointer to an sensor device data structure on success which is allocated from memory. +- All sensor configurations should be done before calling ```lsm303d_a_set_mode``` or ```lsm303d_a_set_mode``` function. In particular, the interrupt configuration should be performed before to avoid loosing the first interrupt and locking the system. + +## Measurement results + +### Output data format + +The sensor determines periodically the accelerations and/or magnetic values for all axes that are enabled for measurement and produces output data with the selected output data rate (ODR). + +Raw **output data** (**raw data**) are given as 16-bit signed integer values in 2’s complement representation and are always left-aligned. The range and the resolution of raw data depend on the sensitivity of the sensor which is selected by the **full scale** parameter. LSM303D allows to select the following full scales: + +Accelerometer full scale | Resolution | Driver symbol +---------------------:|-----------:|:----------- + ±2 g | 0.061 mg | ```lsm303d_a_scale_2_g``` + ±4 g | 0.122 mg | ```lsm303d_a_scale_4_g``` + ±6 g | 0.183 mg | ```lsm303d_a_scale_6_g``` + ±8 g | 0.244 mg | ```lsm303d_a_scale_8_g``` +±16 g | 0.732 mg | ```lsm303d_a_scale_16_g``` + +Magnetormeter full scale | Resolution | Driver symbol +---------------------:|:-----------|:------ + ±2 Gauss | 0.080 mGauss | ```lsm303d_m_scale_2_Gs``` + ±4 Gauss | 0.160 mGauss | ```lsm303d_m_scale_4_Gs``` + ±8 Gauss | 0.320 mGauss | ```lsm303d_m_scale_8_Gs``` +±12 Gauss | 0.479 mGauss | ```lsm303d_m_scale_12_Gs``` + +By default, a full scale of ±2 g is used for the acceleration and ±2 Gauss for the magnetic measurement. ```lsm303d_set_a_scale``` and ```lsm303d_set_m_scale``` functions can be used to change these values. + +``` +lsm303d_set_a_scale(sensor, lsm303d_a_scale_4_g); +lsm303d_set_m_scale(sensor, lsm303d_m_scale_8_Gs); +``` + +### Fetching output data + +To get the information whether new data are available, the user task can either use + +- the ```lsm303d_new_a_data``` and ```lsm303d_new_m_data``` functions to check periodically whether new output data are available, or +- the data ready interrupt (DRDY) which are thrown as soon as new output data are available (see below). + +Once new new data are available, they can be retrieved either + +- as raw data with the ```lsm303d_get_raw_a_data``` and ```lsm303d_get_raw_m_data``` functions, or +- as floating-point values with the ```lsm303d_get_float_a_data``` and ```lsm303d_get_float_m_data``` functions in g and Gauss, respectively. + +It is recommended to use ```lsm303d_get_a_float_data``` and ```lsm303d_get_float_m_data``` functions since they already converts measurement results to real values according to the selected full scales. + +``` +void user_task_periodic(void *pvParameters) +{ + lsm303d_float_a_data_t a_data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new accelerator data and fetch them + if (lsm303d_new_a_data (sensor) && + lsm303d_get_float_a_data (sensor, &a_data)) + { + // do something with data + ... + } + + lsm303d_float_m_data_t m_data; + + // test for new magnetometer data and fetch them + if (lsm303d_new_m_data (sensor) && + lsm303d_get_float_m_data (sensor, &m_data)) + + { + // do something with data + ... + } + ... + } +} +``` + +**Please note:** +```lsm303d_get_float_a_data```, ```lsm303d_get_raw_a_data```, ```lsm303d_get_float_m_data```, and ```lsm303d_get_raw_m_data``` functions always return the last available results. If these functions are called more often than measurements are taken, some measurement results are retrieved multiple times. If these functions are called too rarely, some measurement results will be lost. + +### High pass filtering + +LSM303D provides embedded high-pass filtering capabilities for acceleration data to improve measurement results. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lsm303d.pdf). + +The high pass filter (HPF) can independently apply to + +- the raw accelerator output data, +- the accelerator data used for click detection, and +- the accelerator data used for inertial interrupt generation like wake-up, free fall or 6D/4D orientation detection. + +The mode of the high pass filter can be configured using ```lsm303d_config_a_hpf``` function. Following HPF modes are available: + +HPF mode | Driver symbol +:--------------|:--------- +Normal mode | ```lsm303d_hpf_normal``` +Reference mode | ```lsm303d_hpf_reference``` +Auto-reset on interrupt | ```lsm303d_hpf_autoreset``` + +The cutoff frequencies of the HPF are fixed and not documented. + +``` +... +// configure HPF and implicitly reset the reference by a dummy read +lsm303d_config_a_hpf (sensor, lsm303d_hpf_normal, true, true, true, true); +... +``` + +If HPF normal mode (```lsm303d_hpf_normal```) is used, ```lsm303d_config_a_hpf``` function implicitly reads the reference registers to reset the reference. + +### FIFO + +In order to limit the rate at which the host processor has to fetch the data, the LSM303D embeds a first-in first-out buffer (FIFO) for accelerator output data. This is in particular helpful at high output data rates. The FIFO buffer can work in different modes and is able to store up to 32 accelerometer samples. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lsm303d.pdf). + +FIFO mode | Driver symbol +--------------|------------------------- +Bypass mode (FIFO is not used) | ```lsm303d_bypass``` +FIFO mode | ```lsm303d_fifo``` +Stream mode | ```lsm303d_stream``` +Stream-to-FIFO mode | ```lsm303d_stream_to_fifo``` +Bypass-to-Stream mode | ```lsm303d_bypass_to_stream``` + +The FIFO mode can be set using function ```lsm303d_set_fifo_mode```. This function takes as parameters + +- the FIFO mode, and +- a threshold value. + +The threshold value is used by the sensor to set a flag and to generate optionally an interrupt when the FIFO content exceeds this value. It can be used to gather a minimum number of axes acceleration samples by the sensor before the data are fetched from the sensor as a single read operation. + +``` +... +// clear FIFO +lsm303d_set_fifo_mode (sensor, lsm303d_bypass, 0); + +// activate FIFO mode +lsm303d_set_fifo_mode (sensor, lsm303d_stream, 10); +... +``` + +In this example an the threshold flag would be set, when 11 acceleration samples are stored in the FIFO. + +**Please note**: +- To clear the FIFO at any time, set the FIFO mode to ```lsm303d_bypass``` and back to the desired FIFO mode. +- When FIFO is used, ```lsm303d_new_a_data``` function can also be used to check whether there are new data stored in the FIFO. It returns true if at least one acceleration data sample is stored in the FIFO. + +To read data from the FIFO, simply use either ```lsm303d_get_raw_a_data_fifo``` or ```lsm303d_get_float_a_data_fifo``` function to all get accelerator output data stored in the FIFO. Both functions clear the FIFO implicitly and return the number of samples read from the FIFO. + +``` +void user_task_periodic (void *pvParameters) +{ + lsm303d_float_a_data_fifo_t fifo; + + while (1) + { + // execute task every 500 ms + vTaskDelay (500/portTICK_PERIOD_MS); + ... + + // test for new accelerator data data + if (lsm303d_new_a_data (sensor)) + { + // fetch the accelerator data stored in FIFO + uint8_t num = lsm303d_get_float_a_data_fifo (sensor, fifo); + + for (int i = 0; i < num; i++) + { + // do something with data[i] ... + } + } + ... +} +``` + +## Interrupts + +The LSM303D supports two dedicated interrupt signals **```INT1```** and **```INT2```** and four different types of interrupts: + +- **data** interrupts (data ready, FIFO status), +- **inertial event** interrupts (axis movement, free fall, 6D/4D orientation detection), +- **click detection** interrupts (single click, double click) +- **magnetic threshold** detection interrupts. + +### Data interrupts (data ready and FIFO status) + +Following sources can generate data interrupts: + +Interrupt source | Interrupt Signals | Driver symbol +:-----------------|:-------------|:---------------- +Accelerator data become ready to read | ```INT1```, ```INT2``` | ```lsm303d_int_a_data_ready``` +Magnetometer data become ready to read | ```INT1```, ```INT2``` | ```lsm303d_int_m_data_ready``` +FIFO becomes empty | ```INT1``` | ```lsm303d_int_fifo_thresh``` +FIFO content exceeds the threshold value | ```INT2``` | ```lsm303d_int_fifo_thresh``` +FIFO is completely filled | ```INT2``` | ```lsm303d_int_fifo_overrun``` + +Each of these interrupt sources can be enabled or disabled separately using the ```lsm303d_enable_int``` function. By default, all interrupt sources are disabled. + +``` +lsm303d_enable_int (sensor, lsm303d_int_a_data_ready, lsm303d_int2_signal, true); +``` + +Whenever a data interrupt is generated at the specified interrupt signal, the ```lsm303d_get_int_data_source``` function can be used to determine the source of the data interrupt. This function returns a data structure of type ```lsm303d_int_data_source_t``` that contain a boolean member for each source that can be tested for true. + +``` +void int2_handler () +{ + lsm303d_int_data_source_t data_src; + + // get the source of the interrupt on *INT2* signal + lsm303d_get_int_data_source (sensor, &data_src); + + // in case of data ready interrupt, get the results and do something with them + if (data_src.a_data_ready) + ... // read accelerator data + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_thresh || data_src.fifo_overrun) + ... // read FIFO data + ... +} +``` + +**Please note:** While FIFO interrupts are reset as soon as the interrupt source is read, the data-ready interrupts are not reset until the data has been read. + +### Inertial event interrupts + +Inertial interrupt generators allow to generate interrupts when certain inertial events occur (event interrupts), that is, the acceleration of defined axes is higher or lower than a defined threshold. If activated, the acceleration of each axis is compared with a defined threshold to check whether it is below or above the threshold. The results of all activated comparisons are then combined OR or AND to generate the interrupt signal. + +The configuration of the threshold, the activated comparisons and the selected AND/OR combination allows to recognize special situations: + +- **Axis movement** refers the special condition that the acceleration measured along any axis is above the defined threshold (```lsm303d_or```). +- **Free fall detection** refers the special condition that the acceleration measured along all the axes goes to zero (```lsm303d_and```). +- **6D/4D orientation detection** refers to the special condition that the measured acceleration along certain axes is above and along the other axes is below the threshold which indicates a particular orientation (```lsm303d_6d_movement```, ```lsm303d_6d_position```, ```lsm303d_4d_movement```, ```lsm303d_4d_position```). + +Inertial event interrupts can be configured with the ```lsm303d_set_int_event_config``` function. This function requires as parameters the configuration of type ```lsm303d_int_event_config_t``` and the interrupt generator to be used for inertial event interrupts. + +Inertial event interrupts have to be enabled or disabled using ```lsm303d_enable_int``` function. The interrupt signal on which the interrupts are generated is given as parameter. + +For example, axis movement detection interrupt generated by inertial interrupt generator 2 on signal ```INT1``` could be configured as following: + +``` +lsm303d_int_event_config_t event_config; + +event_config.mode = lsm303d_or; +event_config.threshold = 50; +event_config.x_low_enabled = false; +event_config.x_high_enabled = true; +event_config.y_low_enabled = false; +event_config.y_high_enabled = true; +event_config.z_low_enabled = false; +event_config.z_high_enabled = true; + +event_config.duration = 0; +event_config.latch = true; + +lsm303d_set_int_event_config (sensor, &event_config, lsm303d_int_event2_gen); +lsm303d_enable_int (sensor, lsm303d_int_event1, lsm303d_int1_signal, true); +``` + +The parameter of type ```lsm303d_int_event_config_t``` also configures + +- whether the interrupt should be latched until the interrupt source is read, and +- which time given in 1/ODR an interrupt condition has to be given before the interrupt is generated. + +As with data ready and FIFO status interrupts, ```lsm303d_get_int_event_source``` function can be used to determine the source of an inertial event interrupt whenever it is generated. This function returns a data structure of type ```lsm303d_int_event_source_t``` which contains a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lsm303d_int_event_source_t event_src; + + // get the source of the interrupt from interrupt generator 2 on *INT1* signal + lsm303d_get_int_event_source (sensor, &event_src, lsm303d_int_event2_gen); + + // in case of inertial event interrupt from interrupt generator 2 + if (event_src.active) + ... // do something + ... +} +``` + +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +**Please note** Activating all threshold comparisons and the OR combination (```lsm303d_or```) is the most flexible way to deal with inertial event interrupts. Functions such as free fall detection and so on can then be realized by suitably combining the various interrupt sources by the user task. Following example realizes the free fall detection in user task. + +``` +lsm303d_int_event_config_t event_config; + +event_config.mode = lsm303d_or; +event_config.threshold = 10; +event_config.x_low_enabled = true; +event_config.x_high_enabled = true; +event_config.y_low_enabled = true; +event_config.y_high_enabled = true; +event_config.z_low_enabled = true; +event_config.z_high_enabled = true; + +event_config.duration = 0; +event_config.latch = true; + +lsm303d_set_int_event_config (sensor, &event_config, lsm303d_int_event2_gen); +lsm303d_enable_int (sensor, lsm303d_int_event1, lsm303d_int1_signal, true); +``` + +``` +void int1_handler () +{ + lsm303d_int_event_source_t event_src; + + // get the source of the interrupt from interrupt generator 2 on *INT1* signal + lsm303d_get_int_event_source (sensor, &event_src, lsm303d_int_event2_gen); + + // test for free fall condition (all accelerations are below the threshold) + if (event_src.x_low && event_src.y_low && event_src.z_low) + ... // do something + ... +} + +``` + +### Click detection interrupts + +A sequence of acceleration values over time measured along certain axes can be used to detect single and double clicks. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lsm303d.pdf). + +Click detection interrupts are configured using the ``` lsm303d_set_int_click_config``` function. This function requires the configuration of type ```lsm303d_int_click_config_t``` as parameter. The interrupt has to be activated or deactivated using the ```lsm303d_enable_int``` function with the interrupt signal on which the interrupts are generated as parameter. + +In following example, the single click detection for z-axis is enabled with a time limit of 1/ODR, a time latency of 1/ODR and a time window of 3/ODR. + +``` +lsm303d_int_click_config_t click_config; + +click_config.threshold = 10; +click_config.x_single = false; +click_config.x_double = false; +click_config.y_single = false; +click_config.y_double = false; +click_config.z_single = true; +click_config.z_double = false; +click_config.latch = true; +click_config.time_limit = 1; +click_config.time_latency = 1; +click_config.time_window = 3; + +lsm303d_set_int_click_config (sensor, &click_config); +lsm303d_enable_int (sensor, lsm303d_int_click, lsm303d_int1_signal, true); +``` + +**Please note:** Because there is no application note for the LSM303D sensor, please refer to the [application note](http://www.st.com/resource/en/application_note/cd00290365.pdf) for the LIS3DH sensor for more information about the configuration parameters that are used in the same way. + +As with other interrupts, the function ```lsm303d_get_int_click_source``` can be used to determine the source of the interrupt signal whenever it is generated. This function returns a data structure of type ```lsm303d_int_click_source_t``` that contains a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lsm303d_int_click_source_t click_src; + + // get the source of the interrupt on *INT1* signal + lsm303d_get_int_click_source (sensor, &click_src); + + // detect single click along z-axis + if (click_src.z_click && click_src.s_click) + ... // do something + ... +} + +``` +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +### Magnetic threshold interrupts + +Magnetic threshold detection of LSM303D allows to generate interrupts whenever measured magnetic data exceed a defined threshold value at positive or negative side. It can be enabled for each axis separately. The defined threshold is valid for all enabled axes. + +Magnetic threshold interrupts can be configured with ```lsm303d_set_int_m_thresh_config``` function . This function requires configuration of type ```lsm303d_int_m_thresh_config_t``` as parameter. The interrupt has to be activated or deactivated using the ```lsm303d_enable_int``` function with the interrupt signal on which the interrupts are generated as parameter. + + +``` +lsm303d_int_m_thresh_config_t m_thresh_config; + +m_thresh_config.threshold = 2000; +m_thresh_config.x_enabled = true; +m_thresh_config.y_enabled = true; +m_thresh_config.z_enabled = true; +m_thresh_config.latch = true; +m_thresh_config.signal_level = lsm303d_high_active; + +lsm303d_set_int_m_thresh_config (sensor, &m_thresh_config); +lsm303d_enable_int (sensor, lsm303d_int_m_thresh, lsm303d_int1_signal, true); + +``` + +In this example, magnetic threshold detection is enabled for all axes and a threshold of 2000 is defined. + +The parameter of type ```lsm303d_int_m_thresh_config_t``` also configures + +- whether the interrupt signal should latched until the interrupt source is read, and +- whether the interrupt signal is high (default) or low active. + +```lsm303d_get_int_m_thresh_source``` function can be used to determine the source of an magnetic threshold interrupt whenever it is generated. This function returns a data structure of type ```lsm303d_int_m_thresh_config_t``` which contains a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lsm303d_int_m_thresh_source_t thresh_src; + + // get the source of the interrupt on signal *INT1* + lsm303d_get_int_m_thresh_source(sensor, &thresh_src); + + // test the source of the interrupt + if (thresh_src.active) + { + if (thresh_srcx_pos || thresh_srcx_neg) ... ; // do something + if (thresh_srcy_pos || thresh_srcy_neg) ... ; // do something + if (thresh_srcz_pos || thresh_srcz_neg) ... ; // do something + } + ... +} +``` + +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +### Interrupt signal properties + +By default, interrupt signals are high active. For magnetic threshold interrupts this can be changed using the configuration. The type of the interrupt outputs can be changed using the ```lsm303d_config_int_signals``` function. + +Type | Driver symbol +:-------------|:------- +Interrupt output is pushed/pulled | ```lsm303d_push_pull``` +Interrupt output is open-drain | ```lsm303d_open_drain``` + + +``` +lsm303d_config_int_signals (sensor, lsm303d_push_pull); +``` + +## Temperature sensor + +The LIS3MDL sensor contains an internal temperature sensor. It can be activated and deactivated with the ```lsm303d_enable_temperature``` function. Using ```lsm303d_get_temperature``` function, the temperature can be determined as a floating point value in degrees. The temperature is measured by the sensor at the same rate as the magnetic data. + +## Low level functions + +The LSM303D is a very complex and flexible sensor with a lot of features. It can be used for a big number of different use cases. Since it is quite impossible to implement a high level interface which is generic enough to cover all the functionality of the sensor for all different use cases, there are two low level interface functions that allow direct read and write access to the registers of the sensor. + +``` +bool lsm303d_reg_read (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +bool lsm303d_reg_write (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +``` + +**Please note** +These functions should only be used to do something special that is not covered by driver's high level interface AND if you exactly know what you do and what it might affect. Please be aware that it might always affect the high level interface. + + +## Usage + +First, the hardware configuration has to be established. + +### Hardware configurations + +Following figure shows a possible hardware configuration for ESP8266 and ESP32 if I2C interface is used to connect the sensor. + +``` + +-----------------+ +----------+ + | ESP8266 / ESP32 | | LSM303D | + | | | | + | GPIO 14 (SCL) >-----> SCL | + | GPIO 13 (SDA) <-----> SDA | + | GPIO 5 <------ INT1 | + | GPIO 4 <------ INT2 | + +-----------------+ +----------+ +``` + +If SPI interface is used, configuration for ESP8266 and ESP32 could look like following. + +``` + +-----------------+ +----------+ +-----------------+ +----------+ + | ESP8266 | | LSM303D | | ESP32 | | LSM303D | + | | | | | | | | + | GPIO 14 (SCK) ------> SCK | | GPIO 16 (SCK) ------> SCK | + | GPIO 13 (MOSI)------> SDI | | GPIO 17 (MOSI)------> SDI | + | GPIO 12 (MISO)<------ SDO | | GPIO 18 (MISO)<------ SDO | + | GPIO 2 (CS) ------> CS | | GPIO 19 (CS) ------> CS | + | GPIO 5 <------ INT1 | | GPIO 5 <------ INT1 | + | GPIO 4 <------ INT2 | | GPIO 4 <------ INT2 | + +-----------------+ +----------+ +-----------------+ +----------+ +``` + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface and interrupt settings have to be defined. In case ESP32 is used, the configuration could look like + +``` +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 +``` + +### Main program + +#### Initialization + +If I2C interfaces are used, they have to be initialized first. + +``` +i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); +``` + +SPI interface has only to be initialized explicitly on ESP32 platform to declare the GPIOs that are used for SPI interface. + +``` +spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); +``` + +Once the interfaces are initialized, function ```lsm303d_init_sensor``` has to be called for each LSM303D sensor in order to initialize the sensor and to check its availability as well as its error state. This function returns a pointer to a sensor device data structure or NULL in case of error. + +The parameter *bus* specifies the ID of the I2C or SPI bus to which the sensor is connected. + +``` +static lsm303d_sensor_t* sensor; +``` + +For sensors connected to an I2C interface, a valid I2C slave address has to be defined as parameter *addr*. In that case parameter *cs* is ignored. + +``` +sensor = lsm303d_init_sensor (I2C_BUS, LSM303D_I2C_ADDRESS_2, 0); + +``` + +If parameter *addr* is 0, the sensor is connected to a SPI bus. In that case, parameter *cs* defines the GPIO used as CS signal. + +``` +sensor = lsm303d_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + +``` + +The remaining of the program is independent on the communication interface. + +#### Configuring the sensor + +Optionally, you could wish to set some measurement parameters. For details see the sections above, the header file of the driver ```lsm303d.h```, and of course the data sheet of the sensor. + +#### Starting measurements + +As last step, the sensor mode has be set to start periodic measurement. The sensor mode can be changed anytime later. + +``` +... +// start periodic measurement with output data rate of 12.5 Hz +lsm303d_set_a_mode (sensor, lsm303d_a_odr_12_5, lsm303d_a_aaf_bw_773, true, true, true); +lsm303d_set_m_mode (sensor, lsm303d_m_odr_12_5, lsm303d_m_low_res, lsm303d_m_continuous); +... +``` + +#### Periodic user task + +Finally, a user task that uses the sensor has to be created. + +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + +The user task can use different approaches to fetch new data. Either new data are fetched periodically or interrupt signals are used when new data are available or a configured event happens. + +If new data are fetched **periodically** the implementation of the user task is quite simple and could look like following. + +``` +void user_task_periodic(void *pvParameters) +{ + lsm303d_float_a_data_t a_data; + lsm303d_float_m_data_t m_data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new accelerator data and fetch them + if (lsm303d_new_a_data (sensor) && + lsm303d_get_float_a_data (sensor, &a_data)) + { + // do something with accelerator data + ... + } + + // test for new magnetometer data and fetch them + if (lsm303d_new_m_data (sensor) && + lsm303d_get_float_m_data (sensor, &m_data)) + { + // do something with magnetometer data + ... + } + + } +} +... +// create a user task that fetches data from sensor periodically +xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); +``` + +The user task simply tests periodically with a rate higher than the output data rate (ODR) of the sensor whether new data are available. If new data are available, it fetches the data. + +#### Interrupt user task + +A different approach is to use one of the **interrupt** signals INT1 or INT2. In this case, the user has to implement an interrupt handler that either fetches the data directly or triggers a task, that is waiting to fetch the data. + +``` +static QueueHandle_t gpio_evt_queue = NULL; + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +// User task that fetches the sensor values + +void user_task_interrupt (void *pvParameters) +{ + uint32_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + // test for new accelerator data and fetch them + if (lsm303d_new_a_data (sensor) && + lsm303d_get_float_a_data (sensor, &a_data)) + { + // do something with accelerator data + ... + } + + // test for new magnetometer data and fetch them + if (lsm303d_new_m_data (sensor) && + lsm303d_get_float_m_data (sensor, &m_data)) + { + // do something with magnetometer data + ... + } + } + } +} +... + +// create a task that is triggered only in case of interrupts to fetch the data + +xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); +... +``` + +In this example, there is + +- a task that is fetching data when it receives an event, and +- an interrupt handler that generates the event on interrupt. + +Finally, interrupt handlers have to be activated for the GPIOs which are connected to the interrupt signals. + +``` +// configure interrupt pins for *INT1* and *INT2* signals and set the interrupt handler +gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +``` + +Furthermore, the interrupts have to be enabled and configured in the LSM303D sensor, see section **Interrupts** above. + +## Full Example + +``` +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // SPI interface is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define TEMP_USED // temperature sensor used +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // inertial event interrupts used (axis movement or 6D/4D orientation) +// #define INT_CLICK // click detection interrupts used +// #define INT_THRESH // magnetic value exceeds threshold interrupt used + +#if defined(INT_DATA) || defined(INT_EVENT) || defined(INT_CLICK) || defined(INT_THRESH) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lsm303d.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks --------------------------------------------------- */ + +static lsm303d_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + #ifdef FIFO_MODE + + lsm303d_float_a_data_fifo_t fifo; + + // test for new accelerator data data + if (lsm303d_new_a_data (sensor)) + { + // fetch the accelerator data stored in FIFO + uint8_t num = lsm303d_get_float_a_data_fifo (sensor, fifo); + + printf("%.3f LSM303D num=%d\n", (double)sdk_system_get_time()*1e-3, num); + + for (int i=0; i < num; i++) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LSM303D (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + fifo[i].ax, fifo[i].ay, fifo[i].az); + } + + #else + + lsm303d_float_a_data_t a_data; + + // test for new accelerator data and fetch them + if (lsm303d_new_a_data (sensor) && + lsm303d_get_float_a_data (sensor, &a_data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LSM303D (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + a_data.ax, a_data.ay, a_data.az); + + #endif // FIFO_MODE + + lsm303d_float_m_data_t m_data; + + // test for new magnetometer data and fetch them + if (lsm303d_new_m_data (sensor) && + lsm303d_get_float_m_data (sensor, &m_data)) + // max. full scale is +-12 Gs and best resolution is 1 mGs, i.e. 5 digits + printf("%.3f LSM303D (xyz)[Gs] mx=%+7.3f my=%+7.3f mz=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + m_data.mx, m_data.my, m_data.mz); + + #ifdef TEMP_USED + float temp = lsm303d_get_temperature (sensor); + + printf("%.3f LSM303D (tmp)[°C] %+7.3f\n", (double)sdk_system_get_time()*1e-3, temp); + #endif +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio, portMAX_DELAY)) + { + lsm303d_int_data_source_t data_src = {}; + lsm303d_int_event_source_t event_src = {}; + lsm303d_int_click_source_t click_src = {}; + lsm303d_int_m_thresh_source_t thresh_src = {}; + + // get the source of the interrupt that reset *INTx* signals + #ifdef INT_DATA + lsm303d_get_int_data_source (sensor, &data_src); + #endif + #ifdef INT_THRESH + lsm303d_get_int_m_thresh_source(sensor, &thresh_src); + #endif + #ifdef INT_EVENT + lsm303d_get_int_event_source (sensor, &event_src, lsm303d_int_event1_gen); + #endif + #ifdef INT_CLICK + lsm303d_get_int_click_source (sensor, &click_src); + #endif + + // in case of DRDY interrupt + if (data_src.a_data_ready || data_src.m_data_ready) + read_data (); + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_thresh || data_src.fifo_overrun) + read_data (); + + // in case of magnetic threshold interrupt + else if (thresh_src.active) + { + printf("%.3f LSM303D ", (double)sdk_system_get_time()*1e-3); + if (thresh_src.x_pos) printf("x exceeds threshold on positive side\n"); + if (thresh_src.y_pos) printf("y exceeds threshold on positive side\n"); + if (thresh_src.z_pos) printf("z exceeds threshold on positive side\n"); + if (thresh_src.x_neg) printf("x exceeds threshold on negative side\n"); + if (thresh_src.y_neg) printf("y exceeds threshold on negative side\n"); + if (thresh_src.z_neg) printf("z exceeds threshold on negative side\n"); + } + + // in case of event interrupt + else if (event_src.active) + { + printf("%.3f LSM303D ", (double)sdk_system_get_time()*1e-3); + if (event_src.x_low) printf("x is lower than threshold\n"); + if (event_src.y_low) printf("y is lower than threshold\n"); + if (event_src.z_low) printf("z is lower than threshold\n"); + if (event_src.x_high) printf("x is higher than threshold\n"); + if (event_src.y_high) printf("y is higher than threshold\n"); + if (event_src.z_high) printf("z is higher than threshold\n"); + } + + // in case of click detection interrupt + else if (click_src.active) + printf("%.3f LSM303D %s\n", (double)sdk_system_get_time()*1e-3, + click_src.s_click ? "single click" : "double click"); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(200/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the SPI interface at which LMS303D sensors are connected + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lsm303d_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C busses at which LSM303D sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LSM303D_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = lsm303d_init_sensor (I2C_BUS, LSM303D_I2C_ADDRESS_2, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_enable(INT2_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set the type of INTx signals if necessary + // lsm303d_config_int_signals (sensor, lsm303d_push_pull); + + #ifdef INT_DATA + // enable data interrupts on *INT2* (data ready or FIFO overrun and FIFO threshold) + // data ready and FIFO status interrupts must not be enabled at the same time + #ifdef FIFO_MODE + lsm303d_enable_int (sensor, lsm303d_int_fifo_overrun, lsm303d_int2_signal, true); + lsm303d_enable_int (sensor, lsm303d_int_fifo_thresh , lsm303d_int2_signal, true); + #else + lsm303d_enable_int (sensor, lsm303d_int_a_data_ready, lsm303d_int2_signal, true); + lsm303d_enable_int (sensor, lsm303d_int_m_data_ready, lsm303d_int2_signal, true); + #endif // FIFO_MODE + #endif // INT_DATA + + #ifdef INT_THRESH + // enable magnetic threshold interrupts on signal *INT1* + lsm303d_int_m_thresh_config_t m_thresh_config; + + m_thresh_config.threshold = 2000; + m_thresh_config.x_enabled = true; + m_thresh_config.y_enabled = true; + m_thresh_config.z_enabled = true; + m_thresh_config.latch = true; + m_thresh_config.signal_level = lsm303d_high_active; + + lsm303d_set_int_m_thresh_config (sensor, &m_thresh_config); + lsm303d_enable_int (sensor, lsm303d_int_m_thresh, lsm303d_int1_signal, true); + #endif // INT_THRESH + + #ifdef INT_EVENT + // enable inertial event interrupts on *INT1* + lsm303d_int_event_config_t event_config; + + event_config.mode = lsm303d_or; // axes movement wake-up + // event_config.mode = lsm303d_and; // free fall + // event_config.mode = lsm303d_6d_movement; + // event_config.mode = lsm303d_6d_position; + // event_config.mode = lsm303d_4d_movement; + // event_config.mode = lsm303d_4d_position; + event_config.threshold = 50; + event_config.x_low_enabled = false; + event_config.x_high_enabled = true; + event_config.y_low_enabled = false; + event_config.y_high_enabled = true; + event_config.z_low_enabled = false; + event_config.z_high_enabled = true; + event_config.duration = 0; + event_config.latch = true; + + lsm303d_set_int_event_config (sensor, &event_config, lsm303d_int_event1_gen); + lsm303d_enable_int (sensor, lsm303d_int_event1, lsm303d_int1_signal, true); + #endif // INT_EVENT + + #ifdef INT_CLICK + // enable single click interrupt for z-axis on signal *INT1* + lsm303d_int_click_config_t click_config; + + click_config.threshold = 10; + click_config.x_single = false; + click_config.x_double = false; + click_config.y_single = false; + click_config.y_double = false; + click_config.z_single = true; + click_config.z_double = false; + click_config.latch = true; + click_config.time_limit = 1; + click_config.time_latency = 1; + click_config.time_window = 3; + + lsm303d_set_int_click_config (sensor, &click_config); + lsm303d_enable_int (sensor, lsm303d_int_click, lsm303d_int1_signal, true); + #endif // INT_CLICK + + #ifdef FIFO_MODE + // clear the FIFO + lsm303d_set_fifo_mode (sensor, lsm303d_bypass, 0); + + // activate the FIFO with a threshold of 10 samples (max. 31); if + // interrupt *lsm303d_fifo_thresh* is enabled, an interrupt is + // generated when the FIFO content exceeds this threshold, i.e., + // when 11 samples are stored in FIFO + lsm303d_set_fifo_mode (sensor, lsm303d_stream, 10); + #endif + + // configure HPF and implicitly reset the reference by a dummy read + lsm303d_config_a_hpf (sensor, lsm303d_hpf_normal, true, true, true, true); + + #ifdef TEMP_USED + // enable the temperature sensor + lsm303d_enable_temperature (sensor, true); + #endif + + // LAST STEP: Finally set scale and mode to start measurements + lsm303d_set_a_scale(sensor, lsm303d_a_scale_2_g); + lsm303d_set_m_scale(sensor, lsm303d_m_scale_4_Gs); + lsm303d_set_a_mode (sensor, lsm303d_a_odr_12_5, lsm303d_a_aaf_bw_773, true, true, true); + lsm303d_set_m_mode (sensor, lsm303d_m_odr_12_5, lsm303d_m_low_res, lsm303d_m_continuous); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LSM303D sensor\n"); +} + +``` diff --git a/extras/lsm303d/component.mk b/extras/lsm303d/component.mk new file mode 100644 index 0000000..40a5202 --- /dev/null +++ b/extras/lsm303d/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/lsm303d + +# expected anyone using LIS3MDL driver includes it as 'lis3mld/lis3mld.h' +INC_DIRS += $(lsm303d_ROOT).. +INC_DIRS += $(lsm303d_ROOT) + +# args for passing into compile rule generation +lsm303d_SRC_DIR = $(lsm303d_ROOT) + +$(eval $(call component_compile_rules,lsm303d)) diff --git a/extras/lsm303d/lsm303d.c b/extras/lsm303d/lsm303d.c new file mode 100644 index 0000000..1e0171f --- /dev/null +++ b/extras/lsm303d/lsm303d.c @@ -0,0 +1,1693 @@ +/* + * Driver for LSM303D 3-axes digital accelerometer and magnetometer connected + * either to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2018 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The information provided is believed to be accurate and reliable. The + * copyright holder assumes no responsibility for the consequences of use + * of such information nor for any infringement of patents or other rights + * of third parties which may result from its use. No license is granted by + * implication or otherwise under any patent or patent rights of the copyright + * holder. + */ + +#include +#include + +#include "lsm303d.h" + +#ifdef debug +#undef debug +#undef debug_dev +#endif + +#ifdef error +#undef error +#undef error_dev +#endif + +#if defined(LSM303D_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "LSM303D", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LSM303D", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(LSM303D_DEBUG_LEVEL_1) || defined(LSM303D_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "LSM303D", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LSM303D", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +// -- register addresses --------------------------- + +#define LSM303D_REG_TEMP_OUT_L 0x05 +#define LSM303D_REG_TEMP_OUT_H 0x06 + +#define LSM303D_REG_STATUS_M 0x07 +#define LSM303D_REG_OUT_X_L_M 0x08 +#define LSM303D_REG_OUT_X_H_M 0x09 +#define LSM303D_REG_OUT_Y_L_M 0x0a +#define LSM303D_REG_OUT_Y_H_M 0x0b +#define LSM303D_REG_OUT_Z_L_M 0x0c +#define LSM303D_REG_OUT_Z_H_M 0x0d + +#define LSM303D_REG_WHO_AM_I 0x0f + +#define LSM303D_REG_INT_CTRL_M 0x12 +#define LSM303D_REG_INT_SRC_M 0x13 +#define LSM303D_REG_INT_THS_L_M 0x14 +#define LSM303D_REG_INT_THS_H_M 0x15 +#define LSM303D_REG_OFFSET_X_L_M 0x16 +#define LSM303D_REG_OFFSET_X_M_M 0x17 +#define LSM303D_REG_OFFSET_Y_L_M 0x18 +#define LSM303D_REG_OFFSET_Y_M_M 0x19 +#define LSM303D_REG_OFFSET_Z_L_M 0x1a +#define LSM303D_REG_OFFSET_Z_M_M 0x1b + +#define LSM303D_REG_REFERENCE_X 0x1c +#define LSM303D_REG_REFERENCE_Y 0x1d +#define LSM303D_REG_REFERENCE_Z 0x1e + +#define LSM303D_REG_CTRL0 0x1f +#define LSM303D_REG_CTRL1 0x20 +#define LSM303D_REG_CTRL2 0x21 +#define LSM303D_REG_CTRL3 0x22 +#define LSM303D_REG_CTRL4 0x23 +#define LSM303D_REG_CTRL5 0x24 +#define LSM303D_REG_CTRL6 0x25 +#define LSM303D_REG_CTRL7 0x26 + +#define LSM303D_REG_STATUS_A 0x27 +#define LSM303D_REG_OUT_X_L_A 0x28 +#define LSM303D_REG_OUT_X_H_A 0x29 +#define LSM303D_REG_OUT_Y_L_A 0x2a +#define LSM303D_REG_OUT_Y_H_A 0x2b +#define LSM303D_REG_OUT_Z_L_A 0x2c +#define LSM303D_REG_OUT_Z_H_A 0x2d + +#define LSM303D_REG_FIFO_CTRL 0x2e +#define LSM303D_REG_FIFO_SRC 0x2f + +#define LSM303D_REG_IG_CFG1 0x30 +#define LSM303D_REG_IG_SRC1 0x31 +#define LSM303D_REG_IG_THS1 0x32 +#define LSM303D_REG_IG_DUR1 0x33 +#define LSM303D_REG_IG_CFG2 0x34 +#define LSM303D_REG_IG_SRC2 0x35 +#define LSM303D_REG_IG_THS2 0x36 +#define LSM303D_REG_IG_DUR2 0x37 +#define LSM303D_REG_CLICK_CFG 0x38 +#define LSM303D_REG_CLICK_SRC 0x39 +#define LSM303D_REG_CLICK_THS 0x3a +#define LSM303D_REG_TIME_LIMIT 0x3b +#define LSM303D_REG_TIME_LATENCY 0x3c +#define LSM303D_REG_TIME_WINDOW 0x3d + +// -- register structure definitions --------------- +// +// ACC = accelerator +// MAG = magnetometer + +// magnetometer data status (LSM303D_REG_STATUS_M = 0x07) +struct lsm303d_reg_status_m +{ + uint8_t XMDA :1; // STATUS_M<0> MAG X axis new data available + uint8_t YMDA :1; // STATUS_M<1> MAG Y axis new data available + uint8_t ZMDA :1; // STATUS_M<2> MAG Z axis new data available + uint8_t ZYXMDA :1; // STATUS_M<3> MAG X, Y and Z axis new data available + uint8_t XMOR :1; // STATUS_M<4> MAG X axis data overrun + uint8_t YMOR :1; // STATUS_M<5> MAG Y axis data overrun + uint8_t ZMOR :1; // STATUS_M<6> MAG Z axis data overrun + uint8_t ZYXMOR :1; // STATUS_M<7> MAG X, Y and Z axis data overrun +}; + +#define LSM303D_ANY_M_DATA_READY 0x07 // LSM303D_REG_STATUS_M<3:0> + +// accelerometer data status (LSM303D_REG_STATUS_A = 0x27) +struct lsm303d_reg_status_a +{ + uint8_t XADA :1; // STATUS_A<0> ACC X axis new data available + uint8_t YADA :1; // STATUS_A<1> ACC Y axis new data available + uint8_t ZADA :1; // STATUS_A<2> ACC Z axis new data available + uint8_t ZYXADA:1; // STATUS_A<3> ACC X, Y and Z axis new data available + uint8_t XAOR :1; // STATUS_A<4> ACC X axis data overrun + uint8_t YAOR :1; // STATUS_A<5> ACC Y axis data overrun + uint8_t ZAOR :1; // STATUS_A<6> ACC Z axis data overrun + uint8_t ZYXAOR:1; // STATUS_A<7> ACC X, Y and Z axis data overrun +}; + +#define LSM303D_ANY_A_DATA_READY 0x07 // LSM303D_REG_STATUS_A<3:0> + +// MAG interrupt control register (LSM303D_REG_INT_CTRL_M = 0x12) +struct lsm303d_reg_int_ctrl_m +{ + uint8_t MIEN :1; // INT_CTRL_M<0> Enable interrupt generation for magnetic data + uint8_t D4D :1; // INT_CTRL_M<1> 4D enable + uint8_t MIEL :1; // INT_CTRL_M<2> Latch interrupt request + uint8_t MIEA :1; // INT_CTRL_M<3> Interrupt polarity + uint8_t PP_OD :1; // INT_CTRL_M<4> Interrupt pin configuration + uint8_t ZMIEN :1; // INT_CTRL_M<5> Enable interrupt recognition for Z axis + uint8_t YMIEN :1; // INT_CTRL_M<6> Enable interrupt recognition for Y axis + uint8_t XMIEN :1; // INT_CTRL_M<7> Enable interrupt recognition for X axis +}; + +// MAG interrupt source register (LSM303D_REG_INT_SRC_M = 0x13) +struct lsm303d_reg_int_src_m +{ + uint8_t MINT :1; // INT_SRC_M<0> MAG interrupt event occurs + uint8_t MROI :1; // INT_SRC_M<1> Internal measurement range overflow + uint8_t M_NTH_Z :1; // INT_SRC_M<2> MAG z value exceeds threshold on negative side + uint8_t M_NTH_Y :1; // INT_SRC_M<3> MAG y value exceeds threshold on negative side + uint8_t M_NTH_X :1; // INT_SRC_M<4> MAG x value exceeds threshold on negative side + uint8_t M_PTH_Z :1; // INT_SRC_M<5> MAG z value exceeds threshold on positive side + uint8_t M_PTH_Y :1; // INT_SRC_M<6> MAG y value exceeds threshold on positive side + uint8_t M_PTH_X :1; // INT_SRC_M<7> MAG x value exceeds threshold on positive side +}; + +// control register 0 (LSM303D_REG_CTRL1 = 0x1f) +struct lsm303d_reg_ctrl0 +{ + uint8_t HPIS2 :1; // CTRL0<0> HPF enabled for interrupt generator 2 + uint8_t HPIS1 :1; // CTRL0<1> HPF enabled for interrupt generator 1 + uint8_t HP_Click:1; // CTRL0<2> HPF enabled for click detection + uint8_t unused :2; // CTRL0<4:3> unused + uint8_t FTH_EN :1; // CTRL0<5> FIFO programmable threshold enable + uint8_t FIFO_EN :1; // CTRL0<6> FIFO enable + uint8_t BOOT :1; // CTRL0<7> Reboot memory content +}; + +// control register 1 (LSM303D_REG_CTRL1 = 0x20) +struct lsm303d_reg_ctrl1 +{ + uint8_t AXEN :1; // CTRL1<0> ACC X axis enable + uint8_t AYEN :1; // CTRL1<1> ACC Y axis enable + uint8_t AZEN :1; // CTRL1<2> ACC Z axis enable + uint8_t BDU :1; // CTRL1<3> ACC and MAG block data update + uint8_t AODR :4; // CTRL1<7:4> ACC data rate selection +}; + +// control register 2 (LSM303D_REG_CTRL2 = 0x21) +struct lsm303d_reg_ctrl2 +{ + uint8_t SIM :1; // CTRL2<0> SPI serial interface mode + uint8_t AST :1; // CTRL2<1> ACC self test enable + uint8_t unused:1; // CTRL2<2> unused + uint8_t AFS :3; // CTRL2<5:3> ACC full scale selection + uint8_t ABW :2; // CTRL2<7:6> ACC anti-alias filter bandwidth selection +}; + +// control register 3 (LSM303D_REG_CTRL3 = 0x22) +struct lsm303d_reg_ctrl3 +{ + uint8_t INT1_EMPTY :1; // CTRL3<0> FIFO empty indication on INT1 enable + uint8_t INT1_DRDY_M :1; // CTRL3<1> MAG data ready signal on INT1 enable + uint8_t INT1_DRDY_A :1; // CTRL3<2> ACC data ready signal on INT1 enable + uint8_t INT1_IGM :1; // CTRL3<3> MAG interrupt generator on INT1 enable + uint8_t INT1_IG2 :1; // CTRL3<4> ACC inertial interrupt generator 2 on INT1 enable + uint8_t INT1_IG1 :1; // CTRL3<5> ACC inertial interrupt generator 1 on INT1 enable + uint8_t INT1_Click :1; // CTRL3<6> CLICK generator interrupt on INT1 enable + uint8_t INT1_BOOT :1; // CTRL3<7> BOOT on INT1 enable +}; + +// control register 4 (LSM303D_REG_CTRL4 = 0x23) +struct lsm303d_reg_ctrl4 +{ + uint8_t INT2_FTH :1; // CTRL4<0> FIFO threshold interrupt on INT2 enable + uint8_t INT2_Overrun:1; // CTRL4<1> FIFO Overrun interrupt on INT2 + uint8_t INT2_DRDY_M :1; // CTRL4<2> MAG data ready signal on INT2 enable + uint8_t INT2_DRDY_A :1; // CTRL4<3> ACC data ready signal on INT2 enable + uint8_t INT2_IGM :1; // CTRL4<4> MAG interrupt generator on INT2 enable + uint8_t INT2_IG2 :1; // CTRL4<5> ACC inertial interrupt generator 2 on INT2 enable + uint8_t INT2_IG1 :1; // CTRL4<6> ACC inertial interrupt generator 1 on INT2 enable + uint8_t INT2_Click :1; // CTRL4<7> CLICK generator interrupt on INT2 enable +}; + +// control register 5 (LSM303D_REG_CTRL5 = 0x24) +struct lsm303d_reg_ctrl5 +{ + uint8_t LIR1 :1; // CTRL5<0> Latch interrupt request on INT1 + uint8_t LIR2 :1; // CTRL5<1> Latch interrupt request on INT2 + uint8_t M_ODR :3; // CTRL5<4:2> MAG data rate selection + uint8_t M_RES :2; // CTRL5<6:5> MAG resolution + uint8_t TEMP_EN :1; // CTRL5<7> Temperature sensor enable +}; + +// control register 6 (LSM303D_REG_CTRL6 = 0x25) +struct lsm303d_reg_ctrl6 +{ + uint8_t unused1 :5; // CTRL6<4:0> unused + uint8_t MFS :2; // CTRL6<6:5> MAG full scale selection + uint8_t unused2 :1; // CTRL6<7> unused +}; + +// control register 7 (LSM303D_REG_CTRL7 = 0x26) +struct lsm303d_reg_ctrl7 +{ + uint8_t MD :2; // CTRL7<1:0> MAG sensor mode + uint8_t MLP :1; // CTRL7<2> MAG data low-power mode + uint8_t unused :1; // CTRL7<3> unused + uint8_t T_ONLY :1; // CTRL7<4> Temperature sensor only mode + uint8_t AFDS :1; // CTRL7<5> ACC data filtered + uint8_t AHPM :2; // CTRL7<7:6> ACC HPF mode +}; + +// FIFO control (LSM303D_REG_FIFO_CTRL = 0x2e) +struct lsm303d_reg_fifo_ctrl +{ + uint8_t FTH :5; // FIFO_CTRL<4:0> FIFO threshold level + uint8_t FM :3; // FIFO_CTRL<7:5> FIFO mode selection +}; + +// FIFO source (LSM303D_REG_FIFO_SRC = 0x2f) +struct lsm303d_reg_fifo_src +{ + uint8_t FFS :5; // FIFO_SRC<4:0> FIFO samples stored + uint8_t EMPTY:1; // FIFO_SRC<5> FIFO is empty + uint8_t OVRN :1; // FIFO_SRC<6> FIFO buffer full + uint8_t FTH :1; // FIFO_SRC<7> FIFO content exceeds watermark +}; + +// ACC interrupt generator IG_CFGx (LSM303D_REG_IG_CFGx = 0x30, 0x34) +struct lsm303d_reg_ig_cfgx +{ + uint8_t XLIE :1; // IG_CFGx<0> ACC x value below threshold enabled + uint8_t XHIE :1; // IG_CFGx<1> ACC x value above threshold enabled + uint8_t YLIE :1; // IG_CFGx<2> ACC y value below threshold enabled + uint8_t YHIE :1; // IG_CFGx<3> ACC y value above threshold enabled + uint8_t ZLIE :1; // IG_CFGx<4> ACC z value below threshold enabled + uint8_t ZHIE :1; // IG_CFGx<5> ACC z value above threshold enabled + uint8_t D6D :1; // IG_CFGx<6> 6D/4D detection detecetion enabled + uint8_t AOI :1; // IG_CFGx<7> AND/OR combination of interrupt events +}; + +// ACC interrupt source IG_SRCx (LSM303D_REG_IG_SRCx = 0x31, 0x35) +struct lsm303d_reg_ig_srcx +{ + uint8_t XL :1; // IG_SRCx<0> ACC x value is below threshold + uint8_t XH :1; // IG_SRCx<1> ACC x value is above threshold + uint8_t YL :1; // IG_SRCx<2> ACC y value is below threshold + uint8_t YH :1; // IG_SRCx<3> ACC y value is above threshold + uint8_t ZL :1; // IG_SRCx<4> ACC z value is below threshold + uint8_t ZH :1; // IG_SRCx<5> ACC z value is above threshold + uint8_t IA :1; // IG_SRCx<6> ACC interrupt active + uint8_t unused:1; // IG_SRCx<7> unused +}; + +// CLICK_CFGx (LSM303D_REG_CLICL_CFG = 0x38) +struct lsm303d_reg_click_cfg +{ + uint8_t XS :1; // CLICK_CFG<0> X axis single click enabled + uint8_t XD :1; // CLICK_CFG<1> X axis double click enabled + uint8_t YS :1; // CLICK_CFG<2> Y axis single click enabled + uint8_t YD :1; // CLICK_CFG<3> Y axis double click enabled + uint8_t ZS :1; // CLICK_CFG<4> Z axis single click enabled + uint8_t ZD :1; // CLICK_CFG<5> Z axis double click enabled + uint8_t unused:2; // CLICK_CFG<7:6> unused +}; + + +/** Forward declaration of functions for internal use */ + +static bool lsm303d_reset (lsm303d_sensor_t* dev); +static bool lsm303d_is_available(lsm303d_sensor_t* dev); + +static bool lsm303d_i2c_read (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lsm303d_i2c_write (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lsm303d_spi_read (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lsm303d_spi_write (lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); + +#define msb_lsb_to_type(t,b,o) (t)(((t)b[o] << 8) | b[o+1]) +#define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) +#define lsb_to_type(t,b,o) (t)(b[o]) + +#define lsm303d_update_reg(dev,addr,type,elem,value) \ + { \ + struct type __reg; \ + if (!lsm303d_reg_read (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + __reg.elem = (value); \ + if (!lsm303d_reg_write (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + } + +lsm303d_sensor_t* lsm303d_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs) +{ + lsm303d_sensor_t* dev; + + if ((dev = malloc (sizeof(lsm303d_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->cs = cs; + + dev->error_code = LSM303D_OK; + dev->a_scale = lsm303d_a_scale_2_g; + dev->m_scale = lsm303d_m_scale_4_Gs; + dev->m_res = lsm303d_m_low_res; + dev->fifo_mode = lsm303d_bypass; + dev->fifo_first = true; + + // if addr==0 then SPI is used and has to be initialized + if (!addr && !spi_device_init (bus, cs)) + { + error_dev ("Could not initialize SPI interface.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // check availability of the sensor + if (!lsm303d_is_available (dev)) + { + error_dev ("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // reset the sensor + if (!lsm303d_reset(dev)) + { + error_dev ("Could not reset the sensor device.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // set block data update as default + lsm303d_update_reg (dev, LSM303D_REG_CTRL1, lsm303d_reg_ctrl1, BDU, 1); + + // not necessary, following values are the defaults + // lsm303d_update_reg (dev, LSM303D_REG_CTRL2, lsm303d_reg_ctrl2, AFS, lsm303d_a_scale_2_g); + // lsm303d_update_reg (dev, LSM303D_REG_CTRL6, lsm303d_reg_ctrl6, MFS, lsm303d_m_scale_4_Gs); + + // clear FIFO + // lsm303d_set_fifo_mode (sensor, lsm303d_bypass, 0); + + return dev; +} + +bool lsm303d_set_a_mode (lsm303d_sensor_t* dev, + lsm303d_a_odr_t odr, lsm303d_a_aaf_bw_t bw, + bool x, bool y, bool z) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_ctrl1 ctrl1; + struct lsm303d_reg_ctrl2 ctrl2; + + // read current register values + if (!lsm303d_reg_read (dev, LSM303D_REG_CTRL1, (uint8_t*)&ctrl1, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_CTRL2, (uint8_t*)&ctrl2, 1)) + return false; + + // set mode + ctrl1.AXEN = x; + ctrl1.AYEN = y; + ctrl1.AZEN = z; + ctrl1.AODR = odr; + + ctrl2.ABW = bw; + + if (!lsm303d_reg_write (dev, LSM303D_REG_CTRL1, (uint8_t*)&ctrl1, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_CTRL2, (uint8_t*)&ctrl2, 1)) + return false; + + // switching times + vTaskDelay (50/portTICK_PERIOD_MS); + + return false; +} + + +bool lsm303d_set_m_mode (lsm303d_sensor_t* dev, + lsm303d_m_odr_t odr, + lsm303d_m_resolution_t res, + lsm303d_m_mode_t mode) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_ctrl5 ctrl5; + struct lsm303d_reg_ctrl7 ctrl7; + + // read current register values + if (!lsm303d_reg_read (dev, LSM303D_REG_CTRL5, (uint8_t*)&ctrl5, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_CTRL7, (uint8_t*)&ctrl7, 1)) + return false; + + // set mode + if (odr == lsm303d_m_low_power) + { + ctrl7.MLP = true; + ctrl5.M_ODR = lsm303d_m_odr_3_125; + } + else + { + ctrl7.MLP = false; + ctrl5.M_ODR = odr; + } + + ctrl7.MD = mode; + ctrl5.M_RES = res; + + // write register values + if (!lsm303d_reg_write (dev, LSM303D_REG_CTRL5, (uint8_t*)&ctrl5, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_CTRL7, (uint8_t*)&ctrl7, 1)) + return false; + + // switching times + vTaskDelay (50/portTICK_PERIOD_MS); + + return false; +} + + +bool lsm303d_set_a_scale (lsm303d_sensor_t* dev, lsm303d_a_scale_t scale) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + dev->a_scale = scale; + + // read CTRL2 register and write scale + lsm303d_update_reg (dev, LSM303D_REG_CTRL2, lsm303d_reg_ctrl2, AFS, scale); + + return true; +} + + +bool lsm303d_set_m_scale (lsm303d_sensor_t* dev, lsm303d_m_scale_t scale) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + dev->m_scale = scale; + + // read CTRL5 register and write scale + lsm303d_update_reg (dev, LSM303D_REG_CTRL6, lsm303d_reg_ctrl6, MFS, scale); + + return true; +} + + +bool lsm303d_set_fifo_mode (lsm303d_sensor_t* dev, lsm303d_fifo_mode_t mode, + uint8_t thresh) +{ + if (!dev) return false; + + if (thresh > 31) + { + error_dev ("FIFO threshold is greate than the maximum of 31.", __FUNCTION__, dev); + dev->error_code = LSM303D_FIFO_THRESHOLD_INVALID; + return false; + } + + dev->error_code = LSM303D_OK; + dev->fifo_mode = mode; + + // read CTRL1 register and write FIFO_EN flag + lsm303d_update_reg (dev, LSM303D_REG_CTRL0, lsm303d_reg_ctrl0, FIFO_EN, mode != lsm303d_bypass); + lsm303d_update_reg (dev, LSM303D_REG_CTRL0, lsm303d_reg_ctrl0, FTH_EN , mode != lsm303d_bypass); + + struct lsm303d_reg_fifo_ctrl fifo_ctrl = { + .FTH = thresh, + .FM = mode, + }; + + // write FIFO_CTRL register + if (!lsm303d_reg_write (dev, LSM303D_REG_FIFO_CTRL, (uint8_t*)&fifo_ctrl, 1)) + return false; + + return true; +} + + +bool lsm303d_new_a_data (lsm303d_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + if (dev->fifo_mode == lsm303d_bypass) + { + struct lsm303d_reg_status_a status; + + if (!lsm303d_reg_read (dev, LSM303D_REG_STATUS_A, (uint8_t*)&status, 1)) + { + error_dev ("Could not get sensor status", __FUNCTION__, dev); + return false; + } + return status.XADA || status.YADA || status.ZADA; + } + else + { + struct lsm303d_reg_fifo_src fifo_src; + + if (!lsm303d_reg_read (dev, LSM303D_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return false; + } + return !fifo_src.EMPTY; + } +} + +bool lsm303d_new_m_data (lsm303d_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_status_m status; + + if (!lsm303d_reg_read (dev, LSM303D_REG_STATUS_M, (uint8_t*)&status, 1)) + { + error_dev ("Could not get sensor status", __FUNCTION__, dev); + return false; + } + return status.XMDA || status.YMDA || status.ZMDA; +} + + +/** + * Scaling factors for the conversion of raw sensor data to floating point g + * values. Scaling factors are from mechanical characteristics in datasheet. + * + * scale/sensitivity resolution + * +-2 g 0.061 mg/LSB + * +-4 g 0.122 mg/LSB + * +-6 g 0.183 mg/LSB + * +-8 g 0.244 mg/LSB + * +-16 g 0.732 mg/LSB + */ +const static double LSM303D_A_SCALES[5] = +{ 0.061/1000, 0.122/1000, 0.183/1000, 0.244/1000, 0.732/1000 }; + +bool lsm303d_get_float_a_data (lsm303d_sensor_t* dev, lsm303d_float_a_data_t* data) +{ + if (!dev || !data) return false; + + lsm303d_raw_a_data_t raw; + + if (!lsm303d_get_raw_a_data (dev, &raw)) + return false; + + data->ax = LSM303D_A_SCALES[dev->a_scale] * raw.ax; + data->ay = LSM303D_A_SCALES[dev->a_scale] * raw.ay; + data->az = LSM303D_A_SCALES[dev->a_scale] * raw.az; + + return true; +} + + +uint8_t lsm303d_get_float_a_data_fifo (lsm303d_sensor_t* dev, lsm303d_float_a_data_fifo_t data) +{ + if (!dev || !data) return false; + + lsm303d_raw_a_data_fifo_t raw; + + uint8_t num = lsm303d_get_raw_a_data_fifo (dev, raw); + + for (int i = 0; i < num; i++) + { + data[i].ax = LSM303D_A_SCALES[dev->a_scale] * raw[i].ax; + data[i].ay = LSM303D_A_SCALES[dev->a_scale] * raw[i].ay; + data[i].az = LSM303D_A_SCALES[dev->a_scale] * raw[i].az; + } + return num; +} + + +/** + * Scaling factors for the conversion of raw sensor data to floating point Gauss + * values. Scaling factors are from sensor characteristics in datasheet. + * + * scale/sensitivity resolution + * +-2 Gauss 0.080 mGauss/LSB + * +-4 Gauss 0.160 mGauss/LSB + * +-8 Gauss 0.320 mGauss/LSB + * +-12 Gauss 0.479 mGauss/LSB + */ +const static double LSM303D_M_SCALES[5] = { 0.080/1000, 0.160/1000, 0.320/1000, 0.479/1000 }; + +bool lsm303d_get_float_m_data (lsm303d_sensor_t* dev, lsm303d_float_m_data_t* data) +{ + if (!dev || !data) return false; + + lsm303d_raw_m_data_t raw; + + if (!lsm303d_get_raw_m_data (dev, &raw)) + return false; + + data->mx = LSM303D_M_SCALES[dev->m_scale] * raw.mx; + data->my = LSM303D_M_SCALES[dev->m_scale] * raw.my; + data->mz = LSM303D_M_SCALES[dev->m_scale] * raw.mz; + + return true; +} + + +bool lsm303d_get_raw_a_data (lsm303d_sensor_t* dev, lsm303d_raw_a_data_t* raw) +{ + if (!dev || !raw) return false; + + dev->error_code = LSM303D_OK; + + // abort if not in bypass mode + if (dev->fifo_mode != lsm303d_bypass) + { + dev->error_code = LSM303D_SENSOR_IN_BYPASS_MODE; + error_dev ("Sensor is in FIFO mode, use lsm303d_get_*_data_fifo to get data", + __FUNCTION__, dev); + return false; + } + + uint8_t buf[6]; + + // read raw data sample + if (!lsm303d_reg_read (dev, LSM303D_REG_OUT_X_L_A, buf, 6)) + { + error_dev ("Could not get raw data sample", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_RAW_A_DATA_FAILED; + return false; + } + + raw->ax = buf[1] << 8 | buf[0]; + raw->ay = buf[3] << 8 | buf[2]; + raw->az = buf[5] << 8 | buf[4]; + + return true; +} + + +uint8_t lsm303d_get_raw_a_data_fifo (lsm303d_sensor_t* dev, lsm303d_raw_a_data_fifo_t raw) +{ + if (!dev) return 0; + + dev->error_code = LSM303D_OK; + + // in bypass mode, use lsm303d_get_raw_data to return one sample + if (dev->fifo_mode == lsm303d_bypass) + return lsm303d_get_raw_a_data (dev, raw) ? 1 : 0; + + struct lsm303d_reg_fifo_src fifo_src; + + // read FIFO state + if (!lsm303d_reg_read (dev, LSM303D_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + dev->error_code |= LSM303D_FIFO_GET_SRC_FAILED; + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return 0; + } + + // if nothing is in the FIFO, just return with 0 + if (fifo_src.EMPTY) + return 0; + + uint8_t samples = fifo_src.FFS + (fifo_src.OVRN ? 1 : 0); + uint8_t buf[6]; + + // read samples from FIFO + for (int i = 0; i < samples; i++) + { + if (!lsm303d_reg_read (dev, LSM303D_REG_OUT_X_L_A, buf, 6)) + { + error_dev ("Could not get raw data samples", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_RAW_A_DATA_FIFO_FAILED; + return i; + } + + raw[i].ax = buf[1] << 8 | buf[0]; + raw[i].ay = buf[3] << 8 | buf[2]; + raw[i].az = buf[5] << 8 | buf[4]; + } + lsm303d_reg_read (dev, LSM303D_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1); + + // if FFS is not 0 after all samples read, ODR is higher than fetching rate + if (fifo_src.FFS) + { + dev->error_code = LSM303D_ODR_TOO_HIGH; + error_dev ("New samples were stored in FIFO while reading, " + "output data rate (ODR) might be too high", __FUNCTION__, dev); + return 0; + } + + if (dev->fifo_mode == lsm303d_fifo && samples == 32) + { + // clean FIFO + lsm303d_update_reg (dev, LSM303D_REG_FIFO_CTRL, lsm303d_reg_fifo_ctrl, FM, lsm303d_bypass); + lsm303d_update_reg (dev, LSM303D_REG_FIFO_CTRL, lsm303d_reg_fifo_ctrl, FM, lsm303d_fifo); + } + + return samples; +} + + +bool lsm303d_get_raw_m_data (lsm303d_sensor_t* dev, lsm303d_raw_m_data_t* raw) +{ + if (!dev || !raw) return false; + + dev->error_code = LSM303D_OK; + + uint8_t buf[6]; + + // read raw data sample + if (!lsm303d_reg_read (dev, LSM303D_REG_OUT_X_L_M, buf, 6)) + { + error_dev ("Could not get raw data sample", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_RAW_M_DATA_FAILED; + return false; + } + + raw->mx = buf[1] << 8 | buf[0]; + raw->my = buf[3] << 8 | buf[2]; + raw->mz = buf[5] << 8 | buf[4]; + + return true; +} + + +bool lsm303d_enable_int (lsm303d_sensor_t* dev, + lsm303d_int_type_t type, + lsm303d_int_signal_t signal, bool value) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_int_ctrl_m int_ctrl_m; + struct lsm303d_reg_ctrl3 ctrl3; + struct lsm303d_reg_ctrl4 ctrl4; + + uint8_t* reg1 = NULL; + uint8_t* reg2 = NULL; + uint8_t addr1 = 0; + uint8_t addr2 = 0; + + // determine the addr of the register to change + if (type == lsm303d_int_m_thresh) + { + reg1 = (uint8_t*)&int_ctrl_m; + addr1 = LSM303D_REG_INT_CTRL_M; + + reg2 = (signal == lsm303d_int1_signal) ? (uint8_t*)&ctrl3 : (uint8_t*)&ctrl4; + addr2 = (signal == lsm303d_int1_signal) ? LSM303D_REG_CTRL3 : LSM303D_REG_CTRL4; + } + else if (type == lsm303d_int_fifo_empty || signal == lsm303d_int1_signal) + { + reg1 = (uint8_t*)&ctrl3; + addr1 = LSM303D_REG_CTRL3; + } + else + { + reg1 = (uint8_t*)&ctrl4; + addr1 = LSM303D_REG_CTRL4; + } + + // read the register + if ((reg1 && !lsm303d_reg_read (dev, addr1, reg1, 1)) || + (reg2 && !lsm303d_reg_read (dev, addr2, reg2, 1))) + { + error_dev ("Could not read interrupt control registers", __FUNCTION__, dev); + dev->error_code |= LSM303D_INT_ENABLE_FAILED; + return false; + } + + // change the register + switch (type) + { + case lsm303d_int_a_data_ready: if (signal == lsm303d_int1_signal) + ctrl3.INT1_DRDY_A = value; + else + ctrl4.INT2_DRDY_A = value; + break; + + case lsm303d_int_m_data_ready: if (signal == lsm303d_int1_signal) + ctrl3.INT1_DRDY_M = value; + else + ctrl4.INT2_DRDY_M = value; + break; + + case lsm303d_int_m_thresh: int_ctrl_m.MIEN = value; + if (signal == lsm303d_int1_signal) + ctrl3.INT1_IGM = value; + else + ctrl4.INT2_IGM = value; + break; + + case lsm303d_int_fifo_empty: ctrl3.INT1_EMPTY = value; + break; + + case lsm303d_int_fifo_thresh: ctrl4.INT2_FTH = value; + break; + + case lsm303d_int_fifo_overrun: ctrl4.INT2_FTH = value; + break; + + case lsm303d_int_event1: if (signal == lsm303d_int1_signal) + ctrl3.INT1_IG1 = value; + else + ctrl4.INT2_IG1 = value; + break; + + case lsm303d_int_event2: if (signal == lsm303d_int1_signal) + ctrl3.INT1_IG2 = value; + else + ctrl4.INT2_IG2 = value; + break; + + case lsm303d_int_click: if (signal == lsm303d_int1_signal) + ctrl3.INT1_Click = value; + else + ctrl4.INT2_Click = value; + break; + + default: error_dev ("Wrong interrupt type in enable function", __FUNCTION__, dev); + dev->error_code |= LSM303D_INT_TYPE_WRONG; + return false; + } + + if ((reg1 && !lsm303d_reg_write (dev, addr1, reg1, 1)) || + (reg2 && !lsm303d_reg_write (dev, addr2, reg2, 1))) + { + error_dev ("Could not enable/disable interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_INT_ENABLE_FAILED; + return false; + } + + return true; +} + + +bool lsm303d_get_int_data_source (lsm303d_sensor_t* dev, + lsm303d_int_data_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = LSM303D_OK; + + uint8_t status_a; + uint8_t status_m; + struct lsm303d_reg_fifo_src fifo_src; + + if (!lsm303d_reg_read (dev, LSM303D_REG_STATUS_A, &status_a, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_STATUS_M, &status_m, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + error_dev ("Could not read source of interrupt INT1/INT2 from sensor", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_INT_DATA_SOURCE_FAILED; + return false; + } + + source->a_data_ready = status_a & LSM303D_ANY_A_DATA_READY; + source->m_data_ready = status_m & LSM303D_ANY_M_DATA_READY; + + source->fifo_empty = fifo_src.EMPTY; + source->fifo_thresh = fifo_src.FTH; + source->fifo_overrun = fifo_src.OVRN; + + return true; +} + + +bool lsm303d_set_int_m_thresh_config (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_int_ctrl_m int_ctrl_m; + + if (!lsm303d_reg_read (dev, LSM303D_REG_INT_CTRL_M, (uint8_t*)&int_ctrl_m, 1)) + { + error_dev ("Could not read configuration of magnetic threshold interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_M_THRESH_CONFIG_FAILED; + return false; + } + + int_ctrl_m.XMIEN = config->x_enabled; + int_ctrl_m.YMIEN = config->y_enabled; + int_ctrl_m.ZMIEN = config->z_enabled; + + int_ctrl_m.MIEL = config->latch; + int_ctrl_m.MIEA = config->signal_level; + + uint8_t int_ths_m [2] = { config->threshold & 0xff, config->threshold >> 8 }; + + if (// write the threshold to registers INT_THS_*_M + !lsm303d_reg_write (dev, LSM303D_REG_INT_THS_L_M, int_ths_m, 2) || + + // write configuration to INT_CTRL_M + !lsm303d_reg_write (dev, LSM303D_REG_INT_CTRL_M, (uint8_t*)&int_ctrl_m, 1)) + { + error_dev ("Could not configure magnetic threshold interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_M_THRESH_CONFIG_FAILED; + return false; + } + + return true; +} + + +bool lsm303d_get_int_m_thresh_config (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_int_ctrl_m int_ctrl_m; + uint8_t int_ths_m [2]; + + if (!lsm303d_reg_read (dev, LSM303D_REG_INT_THS_L_M, int_ths_m, 2) || + !lsm303d_reg_read (dev, LSM303D_REG_INT_CTRL_M , (uint8_t*)&int_ctrl_m, 1)) + { + error_dev ("Could not read configuration of magnetic threshold interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_M_THRESH_CONFIG_FAILED; + return false; + } + + config->x_enabled = int_ctrl_m.XMIEN; + config->y_enabled = int_ctrl_m.YMIEN; + config->z_enabled = int_ctrl_m.ZMIEN; + + config->latch = int_ctrl_m.MIEL; + config->signal_level = int_ctrl_m.MIEA; + + config->threshold = int_ths_m[1] << 8 | int_ths_m[0]; + + return true; +} + + +bool lsm303d_get_int_m_thresh_source (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_int_src_m int_src_m; + struct lsm303d_reg_int_ctrl_m int_ctrl_m; + + if (!lsm303d_reg_read (dev, LSM303D_REG_INT_SRC_M , (uint8_t*)&int_src_m , 1) || + !lsm303d_reg_read (dev, LSM303D_REG_INT_CTRL_M, (uint8_t*)&int_ctrl_m, 1)) + { + error_dev ("Could not read source of interrupt INT from sensor", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_M_THRESH_SOURCE_FAILED; + return false; + } + + source->active = int_src_m.MINT; + + source->x_pos = int_src_m.M_PTH_X & int_ctrl_m.XMIEN; + source->x_neg = int_src_m.M_NTH_X & int_ctrl_m.XMIEN; + + source->y_pos = int_src_m.M_PTH_Y & int_ctrl_m.YMIEN; + source->y_neg = int_src_m.M_NTH_Y & int_ctrl_m.YMIEN; + + source->z_pos = int_src_m.M_PTH_Z & int_ctrl_m.ZMIEN; + source->z_neg = int_src_m.M_NTH_Z & int_ctrl_m.ZMIEN; + + return true; +} + + +bool lsm303d_set_int_event_config (lsm303d_sensor_t* dev, + lsm303d_int_event_config_t* config, + lsm303d_int_event_gen_t gen) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_ig_cfgx ig_cfgx; + + ig_cfgx.XLIE = config->x_low_enabled; + ig_cfgx.XHIE = config->x_high_enabled; + + ig_cfgx.YLIE = config->y_low_enabled; + ig_cfgx.YHIE = config->y_high_enabled; + + ig_cfgx.ZLIE = config->z_low_enabled; + ig_cfgx.ZHIE = config->z_high_enabled; + + bool d4d_int = false; + + switch (config->mode) + { + case lsm303d_or : ig_cfgx.AOI = 0; ig_cfgx.D6D = 0; break; + case lsm303d_and : ig_cfgx.AOI = 1; ig_cfgx.D6D = 0; break; + + case lsm303d_4d_movement : d4d_int = true; + case lsm303d_6d_movement : ig_cfgx.AOI = 0; ig_cfgx.D6D = 1; break; + + case lsm303d_4d_position : d4d_int = true; + case lsm303d_6d_position : ig_cfgx.AOI = 1; ig_cfgx.D6D = 1; break; + } + + uint8_t ig_cfgx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_CFG1 : LSM303D_REG_IG_CFG2; + uint8_t ig_thsx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_THS1 : LSM303D_REG_IG_THS2; + uint8_t ig_durx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_DUR1 : LSM303D_REG_IG_DUR2; + + if (// write the thresholds to registers IG_THSx + !lsm303d_reg_write (dev, ig_thsx_addr, &config->threshold, 1) || + + // write duration configuration to IG_DURx + !lsm303d_reg_write (dev, ig_durx_addr, &config->duration, 1) || + + // write configuration to IG_CFGx + !lsm303d_reg_write (dev, ig_cfgx_addr, (uint8_t*)&ig_cfgx, 1)) + { + error_dev ("Could not configure interrupt INT1", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_EVENT_CONFIG_FAILED; + return false; + } + + if (gen == lsm303d_int_event1_gen) + { + lsm303d_update_reg (dev, LSM303D_REG_CTRL5, lsm303d_reg_ctrl5, LIR1, config->latch); + } + else + { + lsm303d_update_reg (dev, LSM303D_REG_CTRL5, lsm303d_reg_ctrl5, LIR2, config->latch); + } + lsm303d_update_reg (dev, LSM303D_REG_INT_CTRL_M, lsm303d_reg_int_ctrl_m, D4D, d4d_int); + + return true; +} + + +bool lsm303d_get_int_event_config (lsm303d_sensor_t* dev, + lsm303d_int_event_config_t* config, + lsm303d_int_event_gen_t gen) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + uint8_t ig_cfgx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_CFG1 : LSM303D_REG_IG_CFG2; + uint8_t ig_thsx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_THS1 : LSM303D_REG_IG_THS2; + uint8_t ig_durx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_DUR1 : LSM303D_REG_IG_DUR2; + + struct lsm303d_reg_int_ctrl_m int_ctrl_m; + struct lsm303d_reg_ig_cfgx ig_cfgx; + struct lsm303d_reg_ctrl3 ctrl3; + struct lsm303d_reg_ctrl5 ctrl5; + + if (!lsm303d_reg_read (dev, ig_cfgx_addr, (uint8_t*)&ig_cfgx, 1) || + !lsm303d_reg_read (dev, ig_thsx_addr, (uint8_t*)&config->threshold, 1) || + !lsm303d_reg_read (dev, ig_durx_addr, (uint8_t*)&config->duration, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_INT_CTRL_M, (uint8_t*)&int_ctrl_m, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_CTRL3, (uint8_t*)&ctrl3, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_CTRL5, (uint8_t*)&ctrl5, 1)) + { + error_dev ("Could not read interrupt configuration from sensor", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_EVENT_CONFIG_FAILED; + return false; + } + + config->x_low_enabled = ig_cfgx.XLIE; + config->x_high_enabled = ig_cfgx.XHIE; + + config->y_low_enabled = ig_cfgx.YLIE; + config->y_high_enabled = ig_cfgx.YHIE; + + config->z_low_enabled = ig_cfgx.ZLIE; + config->z_high_enabled = ig_cfgx.ZHIE; + + config->latch = (gen == lsm303d_int_event1_gen) ? ctrl5.LIR1 : ctrl5.LIR2; + + bool d4d_int = int_ctrl_m.D4D; + + if (ig_cfgx.AOI) + { + if (ig_cfgx.D6D && d4d_int) + config->mode = lsm303d_4d_position; + else if (ig_cfgx.D6D && !d4d_int) + config->mode = lsm303d_6d_position; + else + config->mode = lsm303d_and; + } + else + { + if (ig_cfgx.D6D && d4d_int) + config->mode = lsm303d_4d_movement; + else if (ig_cfgx.D6D && !d4d_int) + config->mode = lsm303d_6d_movement; + else + config->mode = lsm303d_or; + } + + return true; +} + + +bool lsm303d_get_int_event_source (lsm303d_sensor_t* dev, + lsm303d_int_event_source_t* source, + lsm303d_int_event_gen_t gen) +{ + if (!dev || !source) return false; + + dev->error_code = LSM303D_OK; + + uint8_t ig_cfgx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_CFG1 : LSM303D_REG_IG_CFG2; + uint8_t ig_srcx_addr = (gen == lsm303d_int_event1_gen) ? LSM303D_REG_IG_SRC1 : LSM303D_REG_IG_SRC2; + + struct lsm303d_reg_ig_cfgx ig_cfgx; + struct lsm303d_reg_ig_srcx ig_srcx; + + if (!lsm303d_reg_read (dev, ig_srcx_addr, (uint8_t*)&ig_srcx, 1) || + !lsm303d_reg_read (dev, ig_cfgx_addr, (uint8_t*)&ig_cfgx, 1)) + { + error_dev ("Could not read source of interrupt INT1/INT2 from sensor", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_EVENT_SOURCE_FAILED; + return false; + } + + + source->active = ig_srcx.IA; + source->x_low = ig_srcx.XL & ig_cfgx.XLIE; + source->x_high = ig_srcx.XH & ig_cfgx.XHIE; + source->y_low = ig_srcx.YL & ig_cfgx.YLIE; + source->y_high = ig_srcx.YH & ig_cfgx.YHIE; + source->z_low = ig_srcx.ZL & ig_cfgx.ZLIE; + source->z_high = ig_srcx.ZH & ig_cfgx.ZHIE; + + return true; +} + + +bool lsm303d_set_int_click_config (lsm303d_sensor_t* dev, + lsm303d_int_click_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_click_cfg click_cfg; + + click_cfg.XS = config->x_single; + click_cfg.XD = config->x_double; + + click_cfg.YS = config->y_single; + click_cfg.YD = config->y_double; + + click_cfg.ZS = config->z_single; + click_cfg.ZD = config->z_double; + + uint8_t click_ths = config->threshold | ((config->latch) ? 0x80 : 0x00); + + if (!lsm303d_reg_write (dev, LSM303D_REG_CLICK_CFG , (uint8_t*)&click_cfg, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_CLICK_THS , (uint8_t*)&click_ths, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_TIME_LIMIT , (uint8_t*)&config->time_limit, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_TIME_LATENCY, (uint8_t*)&config->time_latency, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_TIME_WINDOW , (uint8_t*)&config->time_window, 1)) + { + error_dev ("Could not configure click detection interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_CLICK_CONFIG_FAILED; + return false; + } + + return true; +} + +bool lsm303d_get_int_click_config (lsm303d_sensor_t* dev, + lsm303d_int_click_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LSM303D_OK; + + struct lsm303d_reg_click_cfg click_cfg; + uint8_t click_ths; + + if (!lsm303d_reg_read (dev, LSM303D_REG_CLICK_CFG , (uint8_t*)&click_cfg, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_CLICK_THS , (uint8_t*)&click_ths, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_TIME_LIMIT , (uint8_t*)&config->time_limit, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_TIME_LATENCY, (uint8_t*)&config->time_latency, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_TIME_WINDOW , (uint8_t*)&config->time_window, 1)) + { + error_dev ("Could not configure click detection interrupt", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_CLICK_CONFIG_FAILED; + return false; + } + + config->x_single = click_cfg.XS; + config->x_double = click_cfg.XD; + + config->y_single = click_cfg.YS; + config->y_double = click_cfg.YD; + + config->z_single = click_cfg.ZS; + config->z_double = click_cfg.ZD; + + config->threshold= click_ths & 0x7f; + config->latch = click_ths & 0x80; + + return true; +} + +bool lsm303d_get_int_click_source (lsm303d_sensor_t* dev, + lsm303d_int_click_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = LSM303D_OK; + + if (!lsm303d_reg_read (dev, LSM303D_REG_CLICK_SRC, (uint8_t*)source, 1)) + { + error_dev ("Could not read source of click interrupt from sensor", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_CLICK_SOURCE_FAILED; + return false; + } + + return true; +} + + + +bool lsm303d_config_int_signals (lsm303d_sensor_t* dev, + lsm303d_int_signal_type_t type) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + lsm303d_update_reg (dev, LSM303D_REG_INT_CTRL_M, lsm303d_reg_int_ctrl_m, PP_OD, type); + + return true; +} + + +bool lsm303d_config_a_hpf (lsm303d_sensor_t* dev, + lsm303d_hpf_mode_t mode, + bool data, bool click, bool int1, bool int2) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + lsm303d_update_reg (dev, LSM303D_REG_CTRL7, lsm303d_reg_ctrl7, AHPM , mode); + lsm303d_update_reg (dev, LSM303D_REG_CTRL7, lsm303d_reg_ctrl7, AFDS , data); + lsm303d_update_reg (dev, LSM303D_REG_CTRL0, lsm303d_reg_ctrl0, HP_Click, click); + lsm303d_update_reg (dev, LSM303D_REG_CTRL0, lsm303d_reg_ctrl0, HPIS1 , int1); + lsm303d_update_reg (dev, LSM303D_REG_CTRL0, lsm303d_reg_ctrl0, HPIS2 , int2); + + int8_t x_ref; + int8_t y_ref; + int8_t z_ref; + + if (mode == lsm303d_hpf_normal) + lsm303d_get_a_hpf_ref (dev, &x_ref, &y_ref, &z_ref); + + return true; +} + + +bool lsm303d_set_a_hpf_ref (lsm303d_sensor_t* dev, + int8_t x_ref, int8_t y_ref, int8_t z_ref) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + if (!lsm303d_reg_write (dev, LSM303D_REG_REFERENCE_X, (uint8_t*)&x_ref, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_REFERENCE_Y, (uint8_t*)&y_ref, 1) || + !lsm303d_reg_write (dev, LSM303D_REG_REFERENCE_Z, (uint8_t*)&z_ref, 1)) + { + error_dev ("Could not set high pass filter reference", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_HPF_REF_FAILED; + return false; + } + + return true; +} + + +bool lsm303d_get_a_hpf_ref (lsm303d_sensor_t* dev, + int8_t* x_ref, int8_t* y_ref, int8_t* z_ref) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + if (!lsm303d_reg_read (dev, LSM303D_REG_REFERENCE_X, (uint8_t*)x_ref, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_REFERENCE_Y, (uint8_t*)y_ref, 1) || + !lsm303d_reg_read (dev, LSM303D_REG_REFERENCE_Z, (uint8_t*)z_ref, 1)) + { + error_dev ("Could not get high pass filter reference", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_HPF_REF_FAILED; + return false; + } + + return true; +} + + +bool lsm303d_set_m_offset (lsm303d_sensor_t* dev, + int16_t x_off, int16_t y_off, int16_t z_off) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + uint8_t buf [6] = { + x_off & 0xff, x_off >> 8, + y_off & 0xff, y_off >> 8, + z_off & 0xff, z_off >> 8 + }; + + if (!lsm303d_reg_write (dev, LSM303D_REG_OFFSET_X_L_M, buf, 6)) + { + error_dev ("Could not set magnetic offset", __FUNCTION__, dev); + dev->error_code |= LSM303D_SET_M_OFFSET_FAILED; + return false; + } + + return true; +} + + +bool lsm303d_get_m_offset (lsm303d_sensor_t* dev, + int16_t* x_off, int16_t* y_off, int16_t* z_off) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + uint8_t buf [6]; + + if (!lsm303d_reg_read (dev, LSM303D_REG_OFFSET_X_L_M, buf, 6)) + { + error_dev ("Could not get magnetic offset", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_M_OFFSET_FAILED; + return false; + } + + *x_off = buf[1] << 8 | buf[0]; + *y_off = buf[3] << 8 | buf[2]; + *z_off = buf[5] << 8 | buf[4]; + + return true; +} + + +bool lsm303d_enable_temperature (lsm303d_sensor_t* dev, bool enable) +{ + lsm303d_update_reg (dev, LSM303D_REG_CTRL5, lsm303d_reg_ctrl5, TEMP_EN, enable); + + return true; +} + + +float lsm303d_get_temperature (lsm303d_sensor_t* dev) +{ + uint8_t regs[2]; + + // read raw data sample + if (!lsm303d_reg_read (dev, LSM303D_REG_TEMP_OUT_L, regs, 2)) + { + error_dev ("Could not get temperature data sample", __FUNCTION__, dev); + dev->error_code |= LSM303D_GET_RAW_T_DATA_FAILED; + return false; + } + + return (int16_t)(regs[1] << 8 | regs[0]) / 8.0 + 25.0; +} + + +/** Functions for internal use only */ + +/** + * @brief Check the chip ID to test whether sensor is available + */ +static bool lsm303d_is_available (lsm303d_sensor_t* dev) +{ + uint8_t chip_id; + + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + if (!lsm303d_reg_read (dev, LSM303D_REG_WHO_AM_I, &chip_id, 1)) + return false; + + if (chip_id != LSM303D_CHIP_ID) + { + error_dev ("Chip id %02x is wrong, should be %02x.", + __FUNCTION__, dev, chip_id, LSM303D_CHIP_ID); + dev->error_code = LSM303D_WRONG_CHIP_ID; + return false; + } + + return true; +} + +static bool lsm303d_reset (lsm303d_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LSM303D_OK; + + uint8_t int_ctrl_m = 0x08; // 0xe8 + uint8_t ctrl_regs[] = { 0x00, 0x00 /*0x07*/, 0x00, 0x00, 0x00, 0x18, 0x20, 0x01 }; + uint8_t null_regs[11] = { 0 }; + + // initialize sensor completely including setting in power down mode + lsm303d_reg_write (dev, LSM303D_REG_INT_CTRL_M , &int_ctrl_m, 1 ); + lsm303d_reg_write (dev, LSM303D_REG_INT_THS_L_M, null_regs , 11); + lsm303d_reg_write (dev, LSM303D_REG_CTRL0 , ctrl_regs , 8 ); + lsm303d_reg_write (dev, LSM303D_REG_FIFO_CTRL , null_regs , 1 ); + lsm303d_reg_write (dev, LSM303D_REG_IG_CFG1 , null_regs , 1 ); + lsm303d_reg_write (dev, LSM303D_REG_IG_THS1 , null_regs , 2 ); + lsm303d_reg_write (dev, LSM303D_REG_IG_CFG2 , null_regs , 1 ); + lsm303d_reg_write (dev, LSM303D_REG_IG_THS2 , null_regs , 2 ); + lsm303d_reg_write (dev, LSM303D_REG_CLICK_CFG , null_regs , 1 ); + lsm303d_reg_write (dev, LSM303D_REG_CLICK_THS , null_regs , 4 ); + + return true; +} + + +bool lsm303d_reg_read(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lsm303d_i2c_read (dev, reg, data, len) + : lsm303d_spi_read (dev, reg, data, len); +} + + +bool lsm303d_reg_write(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lsm303d_i2c_write (dev, reg, data, len) + : lsm303d_spi_write (dev, reg, data, len); +} + + +#define LSM303D_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 + +#define LSM303D_SPI_READ_FLAG 0x80 +#define LSM303D_SPI_WRITE_FLAG 0x00 +#define LSM303D_SPI_AUTO_INC_FLAG 0x40 + +static bool lsm303d_spi_read(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + if (len >= LSM303D_SPI_BUF_SIZE) + { + dev->error_code |= LSM303D_SPI_BUFFER_OVERFLOW; + error_dev ("Error on read from SPI slave on bus 1. Tried to transfer " + "more than %d byte in one read operation.", + __FUNCTION__, dev, LSM303D_SPI_BUF_SIZE); + return false; + } + + uint8_t addr = (reg & 0x3f) | LSM303D_SPI_READ_FLAG | LSM303D_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LSM303D_SPI_BUF_SIZE]; + static uint8_t miso[LSM303D_SPI_BUF_SIZE]; + + memset (mosi, 0xff, LSM303D_SPI_BUF_SIZE); + memset (miso, 0xff, LSM303D_SPI_BUF_SIZE); + + mosi[0] = addr; + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, miso, len+1)) + { + error_dev ("Could not read data from SPI", __FUNCTION__, dev); + dev->error_code |= LSM303D_SPI_READ_FAILED; + return false; + } + + // shift data one by left, first byte received while sending register address is invalid + for (int i=0; i < len; i++) + data[i] = miso[i+1]; + + #ifdef LSM303D_DEBUG_LEVEL_2 + printf("LSM303D %s: read the following bytes from reg %02x: ", __FUNCTION__, reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); + #endif + + return true; +} + + +static bool lsm303d_spi_write(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + uint8_t addr = (reg & 0x3f) | LSM303D_SPI_WRITE_FLAG | LSM303D_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LSM303D_SPI_BUF_SIZE]; + + if (len >= LSM303D_SPI_BUF_SIZE) + { + dev->error_code |= LSM303D_SPI_BUFFER_OVERFLOW; + error_dev ("Error on write to SPI slave on bus 1. Tried to transfer more" + "than %d byte in one write operation.", + __FUNCTION__, dev, LSM303D_SPI_BUF_SIZE); + + return false; + } + + reg &= 0x7f; + + // first byte in output is the register address + mosi[0] = addr; + + // shift data one byte right, first byte in output is the register address + for (int i = 0; i < len; i++) + mosi[i+1] = data[i]; + + #ifdef LSM303D_DEBUG_LEVEL_2 + printf("LSM303D %s: Write the following bytes to reg %02x: ", __FUNCTION__, reg); + for (int i = 1; i < len+1; i++) + printf("%02x ", mosi[i]); + printf("\n"); + #endif + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, NULL, len+1)) + { + error_dev ("Could not write data to SPI.", __FUNCTION__, dev); + dev->error_code |= LSM303D_SPI_WRITE_FAILED; + return false; + } + + return true; +} + + +#define I2C_AUTO_INCREMENT (0x80) + +static bool lsm303d_i2c_read(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LSM303D_I2C_BUSY : LSM303D_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LSM303D_DEBUG_LEVEL_2 + printf("LSM303D %s: Read following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool lsm303d_i2c_write(lsm303d_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LSM303D_I2C_BUSY : LSM303D_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LSM303D_DEBUG_LEVEL_2 + printf("LSM303D %s: Wrote the following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} diff --git a/extras/lsm303d/lsm303d.h b/extras/lsm303d/lsm303d.h new file mode 100644 index 0000000..514469a --- /dev/null +++ b/extras/lsm303d/lsm303d.h @@ -0,0 +1,587 @@ +/** + * Driver for LSM303D 3-axes digital accelerometer and magnetometer connected + * either to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2018 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LSM303D_H__ +#define __LSM303D_H__ + +// Uncomment one of the following defines to enable debug output +// #define LSM303D_DEBUG_LEVEL_1 // only error messages +// #define LSM303D_DEBUG_LEVEL_2 // debug and error messages + +// LSM303D addresses +#define LSM303D_I2C_ADDRESS_1 0x1e // SDO pin is low +#define LSM303D_I2C_ADDRESS_2 0x1d // SDO pin is high + +// LSM303D chip id +#define LSM303D_CHIP_ID 0x49 // LSM303D_REG_WHO_AM_I<7:0> + +// Definition of error codes +#define LSM303D_OK 0 +#define LSM303D_NOK -1 + +#define LSM303D_INT_ERROR_MASK 0x000f +#define LSM303D_DRV_ERROR_MASK 0xfff0 + +// Error codes for I2C and SPI interfaces ORed with LSM303D driver error codes +#define LSM303D_I2C_READ_FAILED 1 +#define LSM303D_I2C_WRITE_FAILED 2 +#define LSM303D_I2C_BUSY 3 +#define LSM303D_SPI_WRITE_FAILED 4 +#define LSM303D_SPI_READ_FAILED 5 +#define LSM303D_SPI_BUFFER_OVERFLOW 6 + +// LSM303D driver error codes ORed with error codes for I2C and SPI interfaces +#define LSM303D_WRONG_CHIP_ID ( 1 << 8) +#define LSM303D_WRONG_BANDWIDTH ( 2 << 8) +#define LSM303D_GET_RAW_A_DATA_FAILED ( 3 << 8) +#define LSM303D_GET_RAW_A_DATA_FIFO_FAILED ( 4 << 8) +#define LSM303D_GET_RAW_M_DATA_FAILED ( 5 << 8) +#define LSM303D_GET_RAW_T_DATA_FAILED ( 6 << 8) +#define LSM303D_INT_TYPE_WRONG ( 8 << 8) +#define LSM303D_INT_ENABLE_FAILED ( 9 << 8) +#define LSM303D_CONFIG_INT_SIGNALS_FAILED (10 << 8) +#define LSM303D_GET_INT_DATA_SOURCE_FAILED (11 << 8) +#define LSM303D_SET_M_THRESH_CONFIG_FAILED (12 << 8) +#define LSM303D_GET_M_THRESH_CONFIG_FAILED (13 << 8) +#define LSM303D_GET_M_THRESH_SOURCE_FAILED (14 << 8) +#define LSM303D_SET_EVENT_CONFIG_FAILED (15 << 8) +#define LSM303D_GET_EVENT_CONFIG_FAILED (16 << 8) +#define LSM303D_GET_EVENT_SOURCE_FAILED (17 << 8) +#define LSM303D_SET_CLICK_CONFIG_FAILED (18 << 8) +#define LSM303D_GET_CLICK_CONFIG_FAILED (19 << 8) +#define LSM303D_GET_CLICK_SOURCE_FAILED (20 << 8) +#define LSM303D_CONFIG_HPF_FAILED (21 << 8) +#define LSM303D_SET_HPF_REF_FAILED (22 << 8) +#define LSM303D_GET_HPF_REF_FAILED (23 << 8) +#define LSM303D_SET_M_OFFSET_FAILED (24 << 8) +#define LSM303D_GET_M_OFFSET_FAILED (25 << 8) +#define LSM303D_GET_ADC_DATA_FAILED (26 << 8) +#define LSM303D_SENSOR_IN_BYPASS_MODE (27 << 8) +#define LSM303D_SENSOR_IN_FIFO_MODE (28 << 8) +#define LSM303D_ODR_TOO_HIGH (29 << 8) +#define LSM303D_FIFO_THRESHOLD_INVALID (30 << 8) +#define LSM303D_FIFO_GET_SRC_FAILED (31 << 8) + +#include "lsm303d_platform.h" +#include "lsm303d_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Initialize the sensor + * + * Reset the sensor and switch to power down mode. All registers are reset to + * default values. FIFO is cleared. + * + * @param bus I2C or SPI bus at which LSM303D sensor is connected + * @param addr I2C addr of the LSM303D sensor, 0 for using SPI + * @param cs SPI CS GPIO, ignored for I2C + * @return pointer to sensor data structure, or NULL on error + */ +lsm303d_sensor_t* lsm303d_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs); + + +/** + * @brief Set accelerator sensor mode + * + * @param dev pointer to the sensor device data structure + * @param odr accelerator output data rate (ODR) + * @param bw accelerator anti-alias filter bandwidth + * @param x true enable x-axis, false disable x-axis + * @param y true enable y-axis, false disable y-axis + * @param z true enable z-axis, false disable z-axis + * @return true on success, false on error + */ +bool lsm303d_set_a_mode (lsm303d_sensor_t* dev, + lsm303d_a_odr_t odr, lsm303d_a_aaf_bw_t bw, + bool x, bool y, bool z); + +/** + * @brief Set magnetometer sensor mode + * + * @param dev pointer to the sensor device data structure + * @param odr magnetometer output data rate (ODR) + * @param res magnetometer resolution + * @param mode magnetometer mode (ODR) + * @return true on success, false on error + */ +bool lsm303d_set_m_mode (lsm303d_sensor_t* dev, + lsm303d_m_odr_t odr, + lsm303d_m_resolution_t res, + lsm303d_m_mode_t mode); + +/** + * @brief Set accelerator scale (full scale) + * + * @param dev pointer to the sensor device data structure + * @param scale full scale (default 2 g) + * @return true on success, false on error + */ +bool lsm303d_set_a_scale (lsm303d_sensor_t* dev, lsm303d_a_scale_t scale); + + +/** + * @brief Set magnetometer scale (full scale) + * + * @param dev pointer to the sensor device data structure + * @param scale full scale (default 4 Gauss) + * @return true on success, false on error + */ +bool lsm303d_set_m_scale (lsm303d_sensor_t* dev, lsm303d_m_scale_t scale); + + +/** + * @brief Test whether new acceleration data samples are available + * + * When the FIFO is used, it returns true if at least one acceleration + * data sample is stored in the FIFO. Otherwise it returns true when new + * acceleration data are available in the output registers. + * + * @param dev pointer to the sensor device data structure + * @return true on new data, otherwise false + */ +bool lsm303d_new_a_data (lsm303d_sensor_t* dev); + + +/** + * @brief Test whether new magnetometer data samples are available + * + * @param dev pointer to the sensor device data structure + * @return true on new data, otherwise false + */ +bool lsm303d_new_m_data (lsm303d_sensor_t* dev); + + +/** + * @brief Get one acceleration data sample as floating point values (unit g) + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *lsm303d_get_a_float_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param data pointer to float data structure filled with g values + * @return true on success, false on error + */ +bool lsm303d_get_float_a_data (lsm303d_sensor_t* dev, + lsm303d_float_a_data_t* data); + + +/** + * @brief Get all samples of acceleration data stored in the FIFO (unit g) + * + * In bypass mode, it returns only one sensor data sample. + * + * @param dev pointer to the sensor device data structure + * @param data array of 32 float data structures filled with g values + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t lsm303d_get_float_a_data_fifo (lsm303d_sensor_t* dev, + lsm303d_float_a_data_fifo_t data); + + +/** + * @brief Get one magnetic data sample as floating point values (unit Gauss) + * + * @param dev pointer to the sensor device data structure + * @param data pointer to float data structure filled with magnetic values + * @return true on success, false on error + */ +bool lsm303d_get_float_m_data (lsm303d_sensor_t* dev, + lsm303d_float_m_data_t* data); + + +/** + * @brief Get one sample of raw acceleration data as 16 bit two's complements + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *lsm303d_get_a_raw_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param raw pointer to raw data structure filled with values + * @return true on success, false on error + */ +bool lsm303d_get_raw_a_data (lsm303d_sensor_t* dev, lsm303d_raw_a_data_t* raw); + + +/** + * @brief Get all samples of raw sensor data stored in the FIFO + * + * In bypass mode, it returns only one raw data sample. + * + * @param dev pointer to the sensor device data structure + * @param raw array of 32 raw data structures + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t lsm303d_get_raw_a_data_fifo (lsm303d_sensor_t* dev, + lsm303d_raw_a_data_fifo_t raw); + + +/** + * @brief Get one sample of raw magnetic data as 16 bit two's complements + * + * @param dev pointer to the sensor device data structure + * @param raw pointer to raw data structure filled with values + * @return true on success, false on error + */ +bool lsm303d_get_raw_m_data (lsm303d_sensor_t* dev, lsm303d_raw_m_data_t* raw); + + +/** + * @brief Set FIFO mode (for acceleration data only) + * + * FIFO threshold can be used to generate an interrupt when FIFO content + * exceeds the value. It is ignored in bypass mode. + * + * @param dev pointer to the sensor device data structure + * @param mode FIFO mode + * @param thresh FIFO threshold (ignored in bypass mode) + * @return true on success, false on error + */ +bool lsm303d_set_fifo_mode (lsm303d_sensor_t* dev, lsm303d_fifo_mode_t mode, + uint8_t thresh); + + +/** + * @brief Enable / disable an interrupt on signal INT1 or INT2 + * + * @param dev pointer to the sensor device data structure + * @param type interrupt to be enabled or disabled + * @param signal interrupt signal that is activated for the interrupt + * @param value true to enable or false to disable the interrupt + * @return true on success, false on error + */ +bool lsm303d_enable_int (lsm303d_sensor_t* dev, + lsm303d_int_type_t type, + lsm303d_int_signal_t signal, bool value); + + +/** + * @brief Get the source of data ready and FIFO interrupts on INT1 or INT2 + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lsm303d_get_int_data_source (lsm303d_sensor_t* dev, + lsm303d_int_data_source_t* source); + +/** + * @brief Set the configuration of the magnetic threshold interrupt generator + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lsm303d_set_int_m_thresh_config (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_config_t* config); + + +/** + * @brief Get the configuration of the magnetic threshold interrupt generator + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lsm303d_get_int_m_thresh_config (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_config_t* config); + + +/** + * @brief Get the source of the magnetic threshold interrupt on INT/INT2 + * + * Returns a byte with flags that indicate the value(s) that triggered + * the interrupt signal (see INT_SRC_M register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lsm303d_get_int_m_thresh_source (lsm303d_sensor_t* dev, + lsm303d_int_m_thresh_source_t* source); + + +/** + * @brief Set the configuration of an inertial event interrupt generator + * + * Inertial interrupt generators produce interrupts when certain inertial event + * occures (event interrupts), that is, the acceleration of defined axes is + * higher or lower than a defined threshold and one of the following event is + * recognized: axis movement or 6D/4D orientation detection. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lsm303d_set_int_event_config (lsm303d_sensor_t* dev, + lsm303d_int_event_config_t* config, + lsm303d_int_event_gen_t gen); + + +/** + * @brief Get the configuration of an inertial interrupt generator + * + * Inertial interrupt generators produce interrupts when certain inertial event + * occures (event interrupts), that is, the acceleration of defined axes is + * higher or lower than a defined threshold and one of the following event is + * recognized: axis movement or 6D/4D orientation detection. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lsm303d_get_int_event_config (lsm303d_sensor_t* dev, + lsm303d_int_event_config_t* config, + lsm303d_int_event_gen_t gen); + + +/** + * @brief Get the source of an inertial event interrupt on signal INT1/INT2 + * + * Returns a byte with flags that indicate the event that triggered + * the interrupt signal (see IG_SRCx register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source data structure + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lsm303d_get_int_event_source (lsm303d_sensor_t* dev, + lsm303d_int_event_source_t* source, + lsm303d_int_event_gen_t gen); + + +/** + * @brief Set the configuration of the click detection interrupt generator + * + * Set the configuration for interrupts that are generated when single or + * double clicks are detected. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lsm303d_set_int_click_config (lsm303d_sensor_t* dev, + lsm303d_int_click_config_t* config); + +/** + * @brief Get the configuration of the click detection interrupt generator + * + * Set the configuration for interrupts that are generated when single or + * double clicks are detected. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lsm303d_get_int_click_config (lsm303d_sensor_t* dev, + lsm303d_int_click_config_t* config); + + +/** + * @brief Get the source of the click detection interrupt on signal INT1/INT2 + * + * Returns a byte with flags that indicate the activity which triggered + * the interrupt signal (see CLICK_SRC register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lsm303d_get_int_click_source (lsm303d_sensor_t* dev, + lsm303d_int_click_source_t* source); + + +/** + * @brief Set signal configuration for INT1 and INT2 signals + * + * @param dev pointer to the sensor device data structure + * @param type define interrupt signal as pushed/pulled or open drain + * @return true on success, false on error + */ +bool lsm303d_config_int_signals (lsm303d_sensor_t* dev, + lsm303d_int_signal_type_t type); + + +/** + * @brief Configure HPF (high pass filter) for acceleration data + * + * The function resets implicitly reset the reference by a dummy read. + * + * @param dev pointer to the sensor device data structure + * @param mode filter mode + * @param data if true, use filtered data as sensor output + * @param click if true, use filtered data for CLICK function + * @param int1 if true, use filtered data for interrupt generator INT1 + * @param int2 if true, use filtered data for interrupt generator INT2 + * @return true on success, false on error + */ +bool lsm303d_config_a_hpf (lsm303d_sensor_t* dev, + lsm303d_hpf_mode_t mode, + bool data, bool click, bool int1, bool int2); + + +/** + * @brief Set HPF (high pass filter) reference for acceleration data + * + * Used to set the reference of HPF in reference mode *lsm303d_hpf_reference*. + * Used to reset the HPF in autoreset mode *lsm303d_hpf_autoreset*. + * Reference is given as two's complement. + * + * @param dev pointer to the sensor device data structure + * @param x_ref x reference *lsm303d_hpf_reference* mode, otherwise ignored + * @param y_ref y reference *lsm303d_hpf_reference* mode, otherwise ignored + * @param z_ref z reference *lsm303d_hpf_reference* mode, otherwise ignored + * @return true on success, false on error + */ +bool lsm303d_set_a_hpf_ref (lsm303d_sensor_t* dev, + int8_t x_ref, int8_t y_ref, int8_t z_ref); + + +/** + * @brief Get HPF (high pass filter) reference + * + * Used to reset the HPF in normal mode *lsm303d_hpf_normal*. + * + * @param dev pointer to the sensor device data structure + * @param x_ref pointer to variable filled with x reference + * @param y_ref pointer to variable filled with y reference + * @param z_ref pointer to variable filled with z reference + * @return true on success, false on error + */ +bool lsm303d_get_a_hpf_ref (lsm303d_sensor_t* dev, + int8_t* x_ref, int8_t* y_ref, int8_t* z_ref); + + +/** + * @brief Set magnetic offset + * + * @param dev pointer to the sensor device data structure + * @param x magnetic offset for x axis + * @param y magnetic offset for y axis + * @param z magnetic offset for z axis + * @return true on success, false on error + */ +bool lsm303d_set_m_offset (lsm303d_sensor_t* dev, + int16_t x, int16_t y, int16_t z); + + +/** + * @brief Get magnetic offset + * + * @param dev pointer to the sensor device data structure + * @param x magnetic offset for x axis + * @param y magnetic offset for y axis + * @param z magnetic offset for z axis + * @return true on success, false on error + */ +bool lsm303d_get_m_offset (lsm303d_sensor_t* dev, + int16_t* x, int16_t* y, int16_t* z); + + +/** + * @brief Enable/Disable temperature sensor + * + * @param dev pointer to the sensor device data structure + * @param enable if true, temperature sensor is enabled + * @return true on success, false on error + */ +bool lsm303d_enable_temperature (lsm303d_sensor_t* dev, bool enable); + + +/** + * @brief Get temperature + * + * @param dev pointer to the sensor device data structure + * @return temperature in degree + */ +float lsm303d_get_temperature (lsm303d_sensor_t* dev); + + +// ---- Low level interface functions ----------------------------- + +/** + * @brief Direct write to register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be changed + * @param data pointer to the data to be written to the register + * @param len number of bytes to be written to the register + * @return true on success, false on error + */ +bool lsm303d_reg_write (lsm303d_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +/** + * @brief Direct read from register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be read + * @param data pointer to the data to be read from the register + * @param len number of bytes to be read from the register + * @return true on success, false on error + */ +bool lsm303d_reg_read (lsm303d_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LSM303D_H__ */ diff --git a/extras/lsm303d/lsm303d_platform.c b/extras/lsm303d/lsm303d_platform.c new file mode 100644 index 0000000..118d295 --- /dev/null +++ b/extras/lsm303d/lsm303d_platform.c @@ -0,0 +1,82 @@ +/** + * Driver for LSM303D 3-axes digital accelerometer and magnetometer connected + * either to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#include "lsm303d_platform.h" + +// platform specific SPI functions + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + diff --git a/extras/lsm303d/lsm303d_platform.h b/extras/lsm303d/lsm303d_platform.h new file mode 100644 index 0000000..7daac4e --- /dev/null +++ b/extras/lsm303d/lsm303d_platform.h @@ -0,0 +1,81 @@ +/** + * Driver for LSM303D 3-axes digital accelerometer and magnetometer connected + * either to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __LSM303D_PLATFORM_H__ +#define __LSM303D_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "esp/spi.h" +#include "i2c/i2c.h" + +// platform specific SPI functions + +#define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 + +extern bool spi_device_init (uint8_t bus, uint8_t cs); +extern size_t spi_transfer_pf (uint8_t bus, uint8_t cs, + const uint8_t *mosi, uint8_t *miso, + uint16_t len); + +#endif // ESP_OPEN_RTOS + +#endif // __LSM303D_PLATFORM_H__ diff --git a/extras/lsm303d/lsm303d_types.h b/extras/lsm303d/lsm303d_types.h new file mode 100644 index 0000000..8b6787f --- /dev/null +++ b/extras/lsm303d/lsm303d_types.h @@ -0,0 +1,483 @@ +/** + * Driver for LSM303D 3-axes digital accelerometer and magnetometer connected + * either to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2018 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO Activity SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LSM303D_TYPES_H__ +#define __LSM303D_TYPES_H__ + +#include "stdint.h" +#include "stdbool.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Accelerator output data rates (A_ODR) + */ +typedef enum { + + lsm303d_a_power_down = 0, // power down mode (default) + lsm303d_a_odr_3_125, // normal power mode 3.125 Hz + lsm303d_a_odr_6_25, // normal power mode 6.25 Hz + lsm303d_a_odr_12_5, // normal power mode 12.5 Hz + lsm303d_a_odr_25, // normal power mode 25 Hz + lsm303d_a_odr_50, // normal power mode 50 Hz + lsm303d_a_odr_100, // normal power mode 100 Hz + lsm303d_a_odr_200, // normal power mode 200 Hz + lsm303d_a_odr_400, // normal power mode 400 Hz + lsm303d_a_odr_800, // normal power mode 800 Hz + lsm303d_a_odr_1600, // normal power mode 1.6 kHz + +} lsm303d_a_odr_t; + +/** + * @brief Accelerator anti-alias filter (A_AAF) bandwidth (BW) in Hz + */ +typedef enum { + + lsm303d_a_aaf_bw_773 = 0, // default + lsm303d_a_aaf_bw_194, + lsm303d_a_aaf_bw_362, + lsm303d_a_aaf_bw_50 + +} lsm303d_a_aaf_bw_t; + +/** + * @brief Accelerator full scale ranges (A_SCALE) in g + */ +typedef enum { + + lsm303d_a_scale_2_g = 0, // default + lsm303d_a_scale_4_g, + lsm303d_a_scale_6_g, + lsm303d_a_scale_8_g, + lsm303d_a_scale_16_g + +} lsm303d_a_scale_t; + +/** + * @brief Magnetometer output data rates (M_ODR) + */ +typedef enum { + + lsm303d_m_odr_3_125 = 0, // normal power mode at 3.125 Hz + lsm303d_m_odr_6_25, // normal power mode at 6.25 Hz + lsm303d_m_odr_12_5, // normal power mode at 12.5 Hz + lsm303d_m_odr_25, // normal power mode at 25 Hz + lsm303d_m_odr_50, // normal power mode at 50 Hz + lsm303d_m_odr_100, // normal power mode at 100 Hz + lsm303d_m_do_not_use, // power down mode (default) + lsm303d_m_low_power // low power mode at 3.125 Hz + +} lsm303d_m_odr_t; + +/** + * @brief Magnetometer sensor mode (M_MODE) + */ +typedef enum { + + lsm303d_m_continuous = 0, // continuous conversion mode + lsm303d_m_single, // single conversion mode (default) + lsm303d_m_power_down // power-down mode + +} lsm303d_m_mode_t; + + +/** + * @brief Magnetometer resolution selection + */ +typedef enum { + + lsm303d_m_low_res, // low resolution (default) + lsm303d_m_high_res // high resolution + +} lsm303d_m_resolution_t; + +/** + * @brief Magnetometer full scale ranges (M_SCALE) in Gauss (Gs) + */ +typedef enum { + + lsm303d_m_scale_2_Gs = 0, + lsm303d_m_scale_4_Gs, // default + lsm303d_m_scale_8_Gs, + lsm303d_m_scale_12_Gs + +} lsm303d_m_scale_t; + +/** + * @brief FIFO mode for accelerator data + */ +typedef enum { + + lsm303d_bypass = 0, // default + lsm303d_fifo, + lsm303d_stream, + lsm303d_stream_to_fifo, + lsm303d_bypass_to_stream + +} lsm303d_fifo_mode_t; + +/** + * @brief Interrupt signals + */ +typedef enum { + + lsm303d_int1_signal = 0, + lsm303d_int2_signal = 1 + +} lsm303d_int_signal_t; + + +/** + * @brief INT1, INT2 signal type + */ +typedef enum { + + lsm303d_push_pull = 0, + lsm303d_open_drain + +} lsm303d_int_signal_type_t; + + +/** + * @brief Inertial event interrupt generators + */ +typedef enum { + + lsm303d_int_event1_gen = 0, + lsm303d_int_event2_gen = 1 + +} lsm303d_int_event_gen_t; + + +/** + * @brief Interrupt types for interrupt signals INT1/INT2 + */ +typedef enum { + + lsm303d_int_a_data_ready, // acceleration data ready for read interrupt + lsm303d_int_m_data_ready, // magnetic data ready for read interrupt + + lsm303d_int_fifo_empty, // FIFO is empty (only INT1) + lsm303d_int_fifo_thresh, // FIFO exceeds the threshold (only INT2) + lsm303d_int_fifo_overrun, // FIFO is completely filled (only INT2) + + lsm303d_int_event1, // inertial event interrupt 1 + lsm303d_int_event2, // inertial event interrupt 2 + + lsm303d_int_click, // click detection interrupt + + lsm303d_int_m_thresh // magnetic threshold interrupt + +} lsm303d_int_type_t; + + +/** + * @brief Data ready and FIFO interrupt source for INT1/INT2 + */ +typedef struct { + + bool a_data_ready; // true when acceleration data are ready to read + bool m_data_ready; // true when magnetic data are ready to read + + bool fifo_empty; // true when FIFO is empty + bool fifo_thresh; // true when FIFO exceeds the FIFO threshold + bool fifo_overrun; // true when FIFO is completely filled + +} lsm303d_int_data_source_t; + + +/** + * @brief Magnetic threshold interrupt configuration for INT1/INT2 signals + */ +typedef struct { + + uint16_t threshold; // threshold used for interrupt generation + + bool x_enabled; // true - x exceeds threshold on positive side + bool y_enabled; // true - y exceeds threshold on positive side + bool z_enabled; // true - z exceeds threshold on positive side + + bool latch; // true - latch the interrupt until the interrupt + // source has been read + enum + { + lsm303d_low_active = 0, + lsm303d_high_active = 1 + + } signal_level; // level of interrupt signal + +} lsm303d_int_m_thresh_config_t; + + +/** + * @brief Magnetic threshold interrupt source of INT1/INT2 signals + */ +typedef struct { + + bool x_pos :1; // true - x exceeds threshold on positive side + bool y_pos :1; // true - y exceeds threshold on positive side + bool z_pos :1; // true - z exceeds threshold on positive side + + bool x_neg :1; // true - x exceeds threshold on negative side + bool y_neg :1; // true - y exceeds threshold on negative side + bool z_neg :1; // true - z exceeds threshold on negative side + + bool mroi :1; // true - internal measurement range overflow + bool active:1; // true - interrupt event occured + +} lsm303d_int_m_thresh_source_t; + + +/** + * @brief Inertial interrupt generator configuration for INT1/INT2 + * + * Inertial events are: axis movement and 6D/4D detection. + */ +typedef struct { + + enum // interrupt mode + { // AOI (IG_CFGx), 6D (IG_CFGx), 4D (INT_CTRL_M) + + lsm303d_or, // AOI = 0, 6D = 0, 4D = X + lsm303d_and, // AOI = 1, 6D = 0, 4D = X + + lsm303d_6d_movement, // AOI = 0, 6D = 1, 4D = 0 + lsm303d_6d_position, // AOI = 1, 6D = 1, 4D = 0 + + lsm303d_4d_movement, // AOI = 0, 6D = 1, 4D = 1 + lsm303d_4d_position, // AOI = 1, 6D = 1, 4D = 1 + + } mode; + + uint8_t threshold; // threshold used for comparison for all axes + + bool x_low_enabled; // x lower than threshold interrupt enabled + bool x_high_enabled; // x higher than threshold interrupt enabled + + bool y_low_enabled; // y lower than threshold interrupt enabled + bool y_high_enabled; // y higher than threshold interrupt enabled + + bool z_low_enabled; // z lower than threshold interrupt enabled + bool z_high_enabled; // z higher than threshold interrupt enabled + + bool latch; // latch the interrupt when true until the + // interrupt source has been read + + uint8_t duration; // duration in 1/ODR an interrupt condition has + // to be given before the interrupt is generated + +} lsm303d_int_event_config_t; + + +/** + * @brief Inertial event source type for interrupt generator INT1/INT2 + */ +typedef struct { + + bool active:1; // true - one ore more events occured + + bool x_low :1; // true - x is lower than threshold event + bool x_high:1; // true - x is higher than threshold event + + bool y_low :1; // true - z is lower than threshold event + bool y_high:1; // true - z is higher than threshold event + + bool z_low :1; // true - z is lower than threshold event + bool z_high:1; // true - z is higher than threshold event + +} lsm303d_int_event_source_t; + + +/** + * @brief Click interrupt configuration for interrupt signals INT1/INT2 + */ +typedef struct { + + bool x_single; // x-axis single tap interrupt enabled + bool x_double; // x-axis double tap interrupt enabled + + bool y_single; // y-axis single tap interrupt enabled + bool y_double; // y-axis double tap interrupt enabled + + bool z_single; // z-axis single tap interrupt enabled + bool z_double; // z-axis double tap interrupt enabled + + uint8_t threshold; // threshold used for comparison for all axes + + bool latch; // latch the interrupt when true until the + // interrupt source has been read + + uint8_t time_limit; // maximum time interval between the start and the + // end of a cick (accel increases and falls back) + uint8_t time_latency; // click detection is disabled for that time after + // a was click detected (in 1/ODR) + uint8_t time_window; // time interval in which the second click has to + // to be detected in double clicks (in 1/ODR) + +} lsm303d_int_click_config_t; + + +/** + * @brief Click interrupt source for interrupt signals INT1/INT2 + */ +typedef struct { + + bool x_click:1; // click detected in x direction + bool y_click:1; // click detected in y direction + bool z_click:1; // click detected in z direction + + bool sign :1; // click sign (0 - posisitive, 1 - negative) + + bool s_click:1; // single click detected + bool d_click:1; // double click detected + + bool active :1; // true - one ore more event occured + +} lsm303d_int_click_source_t; + + +/** + * @brief HPF (high pass filter) modes for acceleration data + */ +typedef enum { + + lsm303d_hpf_normal = 0, // normal mode (reset by reading references) + lsm303d_hpf_reference, // reference signal used for filtering + lsm303d_hpf_normal_x, // normal mode + lsm303d_hpf_autoreset // autoreset on interrupt event + +} lsm303d_hpf_mode_t; + + +/** + * @brief Raw accelerations data set of as two complements + */ +typedef struct { + + int16_t ax; // acceleration on x axis + int16_t ay; // acceleration on y axis + int16_t az; // acceleration on z axis + +} lsm303d_raw_a_data_t; + + +/** + * @brief Raw acceleration data FIFO type + */ +typedef lsm303d_raw_a_data_t lsm303d_raw_a_data_fifo_t[32]; + + +/** + * @brief Floating point accelerations output value set in g + */ +typedef struct { + + float ax; // acceleration on x axis + float ay; // acceleration on y axis + float az; // acceleration on z axis + +} lsm303d_float_a_data_t; + + +/** + * @brief Floating point accelerations output value FIFO type + */ +typedef lsm303d_float_a_data_t lsm303d_float_a_data_fifo_t[32]; + + +/** + * @brief Raw magnetic data set as two's complements + */ +typedef struct { + + int16_t mx; // magnetic value on x axis + int16_t my; // magnetic value on y axis + int16_t mz; // magnetic value on z axis + +} lsm303d_raw_m_data_t; + + +/** + * @brief Floating point magnetic output value set in Gauss + */ +typedef struct { + + float mx; // magnetic value on x axis + float my; // magnetic value on y axis + float mz; // magnetic value on z axis + +} lsm303d_float_m_data_t; + + +/** + * @brief LSM303D sensor device data structure type + */ +typedef struct { + + int error_code; // error code of last operation + + uint8_t bus; // I2C = x, SPI = 1 + uint8_t addr; // I2C = slave address, SPI = 0 + + uint8_t cs; // ESP8266, ESP32: GPIO used as SPI CS + // __linux__: device index + + lsm303d_a_scale_t a_scale; // acceleration full scale (default 2 g) + lsm303d_m_scale_t m_scale; // magnetic full scale (default 4 Gauss) + lsm303d_m_resolution_t m_res; // magnetic resolution (default low) + + lsm303d_fifo_mode_t fifo_mode; // FIFO operation mode (default bypass) + bool fifo_first; // first FIFO access + +} lsm303d_sensor_t; + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LSM303D_TYPES_H__ */ From 812794f7d91db4114b9b6e2ca3c9be5fdfea4097 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 13:00:35 +0100 Subject: [PATCH 270/349] LIS3MDL 3-axes magnetometer driver added (#547) --- examples/lis3mdl/Makefile | 3 + examples/lis3mdl/lis3mdl_example.c | 268 +++++++++++ extras/lis3mdl/README.md | 694 +++++++++++++++++++++++++++ extras/lis3mdl/component.mk | 10 + extras/lis3mdl/lis3mdl.c | 738 +++++++++++++++++++++++++++++ extras/lis3mdl/lis3mdl.h | 248 ++++++++++ extras/lis3mdl/lis3mdl_platform.c | 81 ++++ extras/lis3mdl/lis3mdl_platform.h | 80 ++++ extras/lis3mdl/lis3mdl_types.h | 178 +++++++ 9 files changed, 2300 insertions(+) create mode 100644 examples/lis3mdl/Makefile create mode 100644 examples/lis3mdl/lis3mdl_example.c create mode 100644 extras/lis3mdl/README.md create mode 100644 extras/lis3mdl/component.mk create mode 100644 extras/lis3mdl/lis3mdl.c create mode 100644 extras/lis3mdl/lis3mdl.h create mode 100644 extras/lis3mdl/lis3mdl_platform.c create mode 100644 extras/lis3mdl/lis3mdl_platform.h create mode 100644 extras/lis3mdl/lis3mdl_types.h diff --git a/examples/lis3mdl/Makefile b/examples/lis3mdl/Makefile new file mode 100644 index 0000000..a1f22da --- /dev/null +++ b/examples/lis3mdl/Makefile @@ -0,0 +1,3 @@ +PROGRAM=LIS3MDL +EXTRA_COMPONENTS = extras/i2c extras/lis3mdl +include ../../common.mk diff --git a/examples/lis3mdl/lis3mdl_example.c b/examples/lis3mdl/lis3mdl_example.c new file mode 100644 index 0000000..29e5ec1 --- /dev/null +++ b/examples/lis3mdl/lis3mdl_example.c @@ -0,0 +1,268 @@ +/** + * Simple example with one sensor connected to I2C or SPI. It demonstrates the + * different approaches to fetch the data. Either one of the interrupt signals + * is used or new data are fetched periodically. + * + * Harware configuration: + * + * I2C + * + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | LIS3MDL | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * | GPIO 5 <---- INT | + * | GPIO 4 <---- DRDY | + * +-----------------+ +----------+ + * + * SPI + * + * +-----------------+ +----------+ +-----------------+ +----------+ + * | ESP8266 | | LIS3MDL | | ESP32 | | LIS3MDL | + * | | | | | | | | + * | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + * | GPIO 13 (MOSI)----> SDI | | GPIO 17 (MOSI)----> SDI | + * | GPIO 12 (MISO)<---- SDO | | GPIO 18 (MISO)<---- SDO | + * | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + * | GPIO 5 <---- INT | | GPIO 5 <---- INT | + * | GPIO 4 <---- DRDY | | GPIO 4 <---- DRDY | + * +-----------------+ +---------+ +-----------------+ +----------+ + */ + +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // if defined SPI is used, otherwise I2C +// #define INT_DATA // data ready interrupt used +// #define INT_THRESH // threshold interrupt used + +#if defined(INT_DATA) || defined(INT_THRESH) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lis3mdl.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define PIN_INT 5 +#define PIN_DRDY 4 + +/* -- user tasks --------------------------------------------------- */ + +static lis3mdl_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + lis3mdl_float_data_t data; + + if (lis3mdl_new_data (sensor) && + lis3mdl_get_float_data (sensor, &data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3MDL (xyz)[Gs] mx=%+7.3f my=%+7.3f mz=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + data.mx, data.my, data.mz); +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + if (gpio_num == PIN_DRDY) + { + read_data (); + } + else if (gpio_num == PIN_INT) + { + lis3mdl_int_source_t int_src; + + // get the source of the interrupt and reset INT signals + lis3mdl_get_int_source (sensor, &int_src); + + // in case of DRDY interrupt or activity interrupt read one data sample + if (int_src.active) + read_data (); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lis3mdl_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C bus interfaces at which LIS3MDL sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LIS3MDL_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = lis3mdl_init_sensor (I2C_BUS, LIS3MDL_I2C_ADDRESS_2, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT* and *DRDY* signals and set the interrupt handler + gpio_enable(PIN_INT , GPIO_INPUT); + gpio_enable(PIN_DRDY, GPIO_INPUT); + gpio_set_interrupt(PIN_INT , GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(PIN_DRDY, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // !defined(INT_USED) + + // -- SENSOR CONFIGURATION PART --- + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode + + #ifdef INT_THRESH + // enable threshold interrupts on INT1 + lis3mdl_int_config_t int_config; + + int_config.threshold = 1000; + int_config.x_enabled = true; + int_config.y_enabled = true; + int_config.z_enabled = true; + int_config.latch = true; + int_config.signal_level= lis3mdl_high_active; + + lis3mdl_set_int_config (sensor, &int_config); + #endif // INT_THRESH + + // LAST STEP: Finally set scale and mode to start measurements + lis3mdl_set_scale(sensor, lis3mdl_scale_4_Gs); + lis3mdl_set_mode (sensor, lis3mdl_lpm_10); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LIS3MDL sensor\n"); +} + diff --git a/extras/lis3mdl/README.md b/extras/lis3mdl/README.md new file mode 100644 index 0000000..268c97c --- /dev/null +++ b/extras/lis3mdl/README.md @@ -0,0 +1,694 @@ +# Driver for the LIS3MDL 3-axes digital output magnetometer + +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). If you can't find it in folder [extras/lis3mdl](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras) of original repository, it is not yet merged. Please take a look to branch [lis3mdl](https://github.com/gschorcht/esp-open-rtos/tree/lis3mdl) of my fork in that case. + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. + +## About the sensor + +The LIS3MDL is an ultra-low-power high-performance three-axis magnetic sensor connected to **I2C** or **SPI** with a full scale of up to **±16 Gauss**. It supports different measuring rates. + +**Main features** of the sensor are: + +- 4 selectable full scales of ±4, ±8, ±12, and ±16 Gauss +- 12 different measuring rates from 0.625 Hz up to 1 kHz +- 16 bit magnetic data output +- interrupt generators for magnetic thresholds +- embedded temperature sensor +- I2C and SPI digital output interface + +## Sensor operation + +### Sensor operation modes + +LIS3MDL provides different operating modes (OM): + +- **Power Down mode** is configured automatically after power up boot sequence. In this mode, almost all internal blocks of the device are switched off. Register content is preserved, but there are no measurements performed. + +- **Measurement modes** are a set of operation modes in which measurements are performed with a different output data rates (**ODR**) and different power consumtions. + +### Output Data Rates + +In measurement modes, measurements are performed at a defined output rate. Following output data rates (ODR) are supported in the different modes operation modes (OM): + + Power Mode | Output data rate (ODR) | Driver symbol +:------------- |---------:|:--------------- +Power-down mode| - | ```lis3mdl_power_down``` +Low-power mode | 0.625 Hz | ```lis3mdl_lpm_0_625```, ```lis3mdl_low_power``` +Low-power mode | 1.25 Hz | ```lis3mdl_lpm_1_25``` +Low-power mode | 2.5 Hz | ```lis3mdl_lpm_2_5``` +Low-power mode | 5 Hz | ```lis3mdl_lpm_5``` +Low-power mode | 10 Hz | ```lis3mdl_lpm_10``` +Low-power mode | 20 Hz | ```lis3mdl_lpm_20``` +Low-power mode | 40 Hz | ```lis3mdl_lpm_40``` +Low-power mode | 80 Hz | ```lis3mdl_lpm_80``` +Low-power mode | 1000 Hz | ```lis3mdl_lpm_1000``` +Medium-performance mode | 560 Hz | ```lis3mdl_mpm_560``` +High-performance mode | 300 Hz | ```lis3mdl_hpm_300``` +Ultra-high-performance mode | 155 Hz | ```lis3mdl_uhpm_155``` + +The **easiest way to use the sensor** is to initialize it with the ```lis3mdl_init_sensor``` function and then switch it to any measurement mode with the ```lis3mdl_set_mode``` function to start measurements with the given output data rate (ODR). + +``` +... +static lis3mdl_sensor_t* sensor = 0; +... +if ((sensor = lis3mdl_init_sensor (I2C_BUS, LIS3MDL_I2C_ADDRESS_2, 0))) +{ + ... + lis3mdl_set_mode (sensor, lis3mdl_lpm_10); + ... +} +... + +``` +In this example, a LIS3MDL sensor is connected to I2C bus. It is initialized and set to low-power measurement mode with an output data rate (ODR) of 10 Hz to start the measurements. + +**Please note:** +- ```lis3mdl_init_sensor``` function resets the sensor completely. That is, all sensor registers are reset to their default values and the sensor is switched to the power-down mode. The function returns a pointer to an sensor device data structure on success which is allocated from memory. +- All sensor configurations should be done before calling ```lis3mdl_set_mode``` function. In particular, the interrupt configuration should be performed before to avoid loosing the first interrupt and locking the system. + +## Measurement results + +### Output data format + +The sensor determines periodically the magnetic values for all axes and produces output data with the selected output data rate (ODR). + +Raw **output data** (**raw data**) are given as 16-bit signed integer values in 2’s complement representation and are always left-aligned. The range and the resolution of raw data depend on the sensitivity of the sensor which is selected by the **full scale** parameter. The LIS3MDL allows to select the following full scales: + +Full Scale | Resolution | Driver symbol +---------------------:|:-----------|:------ + ±4 Gauss | 1/6.842 mGauss | ```lis3mdl_scale_4_Gs``` + ±8 Gauss | 1/3.421 mGauss | ```lis3mdl_scale_8_Gs``` +±12 Gauss | 1/2.281 mGauss | ```lis3mdl_scale_12_Gs``` +±16 Gauss | 1/1.711 mGauss | ```lis3mdl_scale_16_Gs``` + +By default, a full scale of ±4 Gauss is used. ```lis3mdl_set_scale``` function can be used to change it. + +``` +lis3mdl_set_scale(sensor, lis3mdl_scale_4_Gs); +``` + +### Fetching output data + +To get the information whether new data are available, the user task can either use + +- the ```lis3mdl_new_data``` function to **check periodically** whether new output data are available, or +- the **data ready interrupt** on ```DRDY``` signal which becomes active as soon as complete sample of new output data are available (see below). + +Last measurement results can then be fetched either + +- as **raw data** using ```lis3mdl_get_raw_data``` function or +- as **floating point values in Gauss (Gs)** using ```lis3mdl_get_float_data``` function. + +It is recommended to use ```lis3mdl_get_float_data``` function since it already converts measurement results to real values according to the selected full scale. + +``` +void user_task_periodic(void *pvParameters) +{ + lis3mdl_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!lis3mdl_new_data (sensor)) + continue; + + // fetch new data + if (lis3mdl_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +``` + +**Please note:** +```lis3mdl_get_float_data``` and ```lis3mdl_get_raw_data``` functions always return the last available results. If these functions are called more often than measurements are taken, some measurement results are retrieved multiple times. If these functions are called too rarely, some measurement results will be lost. + +## Interrupts + +The LIS3MDL supports two dedicated interrupt signals for two different types of interrupts: + +- **data ready** interrupts on the **```DRDY```** signal, and +- **magnetic threshold** interrupts on the **```INT```** signal. + +While magnetic threshold interrupts can be configured as well as enabled or disabled, data-ready interrupts are always enabled and can not be explicitly configured. + +### Data ready interrupts + +Whenever an interrupt is generated at interrupt signal ```DRDY```, new data are available and can be read with ```lis3mdl_get_float_data``` function or ```lis3mdl_get_raw_data``` function. + +``` +void drdy_handler () +{ + // fetch new data + if (lis3mdl_get_float_data (sensor, &data)) + { + // do something with data + ... + } +} +``` + +### Magnetic threshold interrupts + +Magnetic threshold detection of LIS3MDL allows to generate interrupts on ```INT``` signal whenever measured magnetic data exceed a defined threshold value at positive or negative side. It can be enabled for each axis separatly. The defined threshhold is valid for all enabled axes. + +Magnetic threshold interrupts can be configured with ```lis3mdl_get_int_config``` function . This function requires configuration of type ```lis3mdl_int_config_t``` as paramater. + +``` +lis3mdl_int_config_t int_config; + +int_config.threshold = 1000; +int_config.x_enabled = true; +int_config.y_enabled = true; +int_config.z_enabled = true; +int_config.latch = true; +int_config.signal_level= lis3mdl_high_active; + +lis3mdl_set_int_config (sensor, &int_config); +``` + +In this example, magnetic threshold detection is enabled for all axes and a threshold of 1000 is defined. + +The parameter of type ```lis3mdl_int_config_t``` also configures + +- whether the interrupt signal should latched until the interrupt source is read, and +- whether the interrupt signal is high (default) or low active. + +```lis3mdl_get_int_source``` function can be used to determine the source of an magnetic threshold interrupt whenever it is generated. This function returns a data structure of type ```lis3mdl_int_source_t``` which contains a boolean member for each source that can be tested for true. + +``` +void int_handler () +{ + lis3mdl_int_source_t int_src; + + // get the source of the interrupt and reset the INT signal + lis3mdl_get_int_source (sensor, &int_src); + + // test the source of the interrupt + if (int_src.active) + { + if (int_src.x_pos || int_src.x_neg) ... ; // do something + if (int_src.y_pos || int_src.y_neg) ... ; // do something + if (int_src.z_pos || int_src.z_neg) ... ; // do something + } + ... +} +``` +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +## Temperature sensor + +The LIS3MDL sensor contains an internal temperature sensor. It can be activated and deactivated with the ```lis3mdl_enable_temperature``` function. Using ```lis3mdl_get_temperature``` function, the temperature can be determined as a floating point value in degrees. The temperature is measured by the sensor at the same rate as the magnetic data. + +## Low level functions + +The LIS3MDL is a very complex and flexible sensor with a lot of features. It can be used for a big number of different use cases. Since it is quite impossible to implement a high level interface which is generic enough to cover all the functionality of the sensor for all different use cases, there are two low level interface functions that allow direct read and write access to the registers of the sensor. + +``` +bool lis3mdl_reg_read (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +bool lis3mdl_reg_write (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +``` + +**Please note** +These functions should only be used to do something special that is not covered by drivers's high level interface AND if you exactly know what you do and what it might affect. Please be aware that it might always affect the high level interface. + + +## Usage + +First, the hardware configuration has to be established. + +### Hardware configurations + +Following figure shows a possible hardware configuration for ESP8266 and ESP32 if I2C interface is used to connect the sensor. + +``` + +-----------------+ +----------+ + | ESP8266 / ESP32 | | LIS3MDL | + | | | | + | GPIO 14 (SCL) >-----> SCL | + | GPIO 13 (SDA) <-----> SDA | + | GPIO 5 <------ INT | + | GPIO 4 <------ DRDY | + +-----------------+ +----------+ +``` + +If SPI interface is used, configuration for ESP8266 and ESP32 could look like following. + +``` + +-----------------+ +----------+ +-----------------+ +----------+ + | ESP8266 | | LIS3MDL | | ESP32 | | LIS3MDL | + | | | | | | | | + | GPIO 14 (SCK) ------> SCK | | GPIO 16 (SCK) ------> SCK | + | GPIO 13 (MOSI)------> SDI | | GPIO 17 (MOSI)------> SDI | + | GPIO 12 (MISO)<------ SDO | | GPIO 18 (MISO)<------ SDO | + | GPIO 2 (CS) ------> CS | | GPIO 19 (CS) ------> CS | + | GPIO 5 <------ INT | | GPIO 5 <------ INT | + | GPIO 4 <------ DRDY | | GPIO 4 <------ DRDY | + +-----------------+ +----------+ +-----------------+ +----------+ +``` + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface and interrupt settings have to be defined. In case ESP32 is used, the configuration could look like + +``` +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define PIN_INT 5 +#define PIN_DRDY 4 + +``` + +### Main program + +#### Initialization + +If I2C interfaces are used, they have to be initialized first. + +``` +i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); +``` + +SPI interface has only to be initialized explicitly on ESP32 platform to declare the GPIOs that are used for SPI interface. + +``` +spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); +``` + +Once the interfaces are initialized, function ```lis3mdl_init_sensor``` has to be called for each LIS3MDL sensor in order to initialize the sensor and to check its availability as well as its error state. This function returns a pointer to a sensor device data structure or NULL in case of error. + +The parameter *bus* specifies the ID of the I2C or SPI bus to which the sensor is connected. + +``` +static lis3mdl_sensor_t* sensor; +``` + +For sensors connected to an I2C interface, a valid I2C slave address has to be defined as parameter *addr*. In that case parameter *cs* is ignored. + +``` +sensor = lis3mdl_init_sensor (I2C_BUS, LIS3MDL_I2C_ADDRESS_2, 0); + +``` + +If parameter *addr* is 0, the sensor is connected to a SPI bus. In that case, parameter *cs* defines the GPIO used as CS signal. + +``` +sensor = lis3mdl_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + +``` + +The remaining of the program is independent on the communication interface. + +#### Configuring the sensor + +Optionally, you could wish to set some measurement parameters. For details see the sections above, the header file of the driver ```lis3mdl.h```, and of course the data sheet of the sensor. + +#### Starting measurements + +As last step, the sensor mode has be set to start periodic measurement. The sensor mode can be changed anytime later. + +``` +... +// start periodic measurement with output data rate of 10 Hz +lis3mdl_set_mode (sensor, lis3mdl_lpm_10); +... +``` + +#### Periodic user task + +Finally, a user task that uses the sensor has to be created. + +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + +The user task can use different approaches to fetch new data. Either new data are fetched periodically or interrupt signals are used when new data are available or a configured event happens. + +If new data are fetched **periodically** the implementation of the user task is quite simple and could look like following. + +``` +void user_task_periodic(void *pvParameters) +{ + lis3mdl_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!lis3mdl_new_data (sensor)) + continue; + + // fetch new data + if (lis3mdl_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +... +// create a user task that fetches data from sensor periodically +xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); +``` + +The user task simply tests periodically with a rate higher than the output data rate (ODR) of the sensor whether new data are available. If new data are available, it fetches the data. + +#### Interrupt user task + +A different approach is to use one of the **interrupt signals** ```INT``` or ```DRDY```. In this case, the user has to implement an interrupt handler that either fetches the data directly or triggers a task, that is waiting to fetch the data. + +``` +static QueueHandle_t gpio_evt_queue = NULL; + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +// User task that fetches the sensor values + +void user_task_interrupt (void *pvParameters) +{ + uint32_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + // test for new data + if (!lis3mdl_new_data (sensor)) + continue; + + // fetch new data + if (lis3mdl_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } + } +} +... + +// create a task that is triggered only in case of interrupts to fetch the data + +xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); +... +``` + +In this example, there is + +- a task that is fetching data when it receives an event, and +- an interrupt handler that generates the event on interrupt. + +Finally, interrupt handlers have to be activated for the GPIOs which are connected to the interrupt signals. + +``` +// configure interrupt pins for *INT1* and *INT2* signals and set the interrupt handler +gpio_set_interrupt(PIN_INT , GPIO_INTTYPE_EDGE_POS, int_signal_handler); +gpio_set_interrupt(PIN_DRDY, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +``` + +Furthermore, the interrupts have to be enabled and configured in the LIS3MDL sensor, see section **Interrupts** above. + +## Full Example + +``` +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // if defined SPI is used, otherwise I2C +// #define INT_DATA // data ready interrupt used +// #define INT_THRESH // threshold interrupt used + +#if defined(INT_DATA) || defined(INT_THRESH) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lis3mdl.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define PIN_INT 5 +#define PIN_DRDY 4 + +/* -- user tasks --------------------------------------------------- */ + +static lis3mdl_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + lis3mdl_float_data_t data; + + if (lis3mdl_new_data (sensor) && + lis3mdl_get_float_data (sensor, &data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3MDL (xyz)[Gs] mx=%+7.3f my=%+7.3f mz=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + data.mx, data.my, data.mz); +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + if (gpio_num == PIN_DRDY) + { + read_data (); + } + else if (gpio_num == PIN_INT) + { + lis3mdl_int_source_t int_src; + + // get the source of the interrupt and reset INT signals + lis3mdl_get_int_source (sensor, &int_src); + + // in case of DRDY interrupt or activity interrupt read one data sample + if (int_src.active) + read_data (); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lis3mdl_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C bus interfaces at which LIS3MDL sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LIS3MDL_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = lis3mdl_init_sensor (I2C_BUS, LIS3MDL_I2C_ADDRESS_2, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT* and *DRDY* signals and set the interrupt handler + gpio_enable(PIN_INT , GPIO_INPUT); + gpio_enable(PIN_DRDY, GPIO_INPUT); + gpio_set_interrupt(PIN_INT , GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(PIN_DRDY, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // !defined(INT_USED) + + // -- SENSOR CONFIGURATION PART --- + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode + + #ifdef INT_THRESH + // enable threshold interrupts on INT1 + lis3mdl_int_config_t int_config; + + int_config.threshold = 1000; + int_config.x_enabled = true; + int_config.y_enabled = true; + int_config.z_enabled = true; + int_config.latch = true; + int_config.signal_level= lis3mdl_high_active; + + lis3mdl_set_int_config (sensor, &int_config); + #endif // INT_THRESH + + // LAST STEP: Finally set scale and mode to start measurements + lis3mdl_set_scale(sensor, lis3mdl_scale_4_Gs); + lis3mdl_set_mode (sensor, lis3mdl_lpm_10); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LIS3MDL sensor\n"); +} + +``` diff --git a/extras/lis3mdl/component.mk b/extras/lis3mdl/component.mk new file mode 100644 index 0000000..df5aec0 --- /dev/null +++ b/extras/lis3mdl/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/lis3mdl + +# expected anyone using LIS3MDL driver includes it as 'lis3mld/lis3mld.h' +INC_DIRS += $(lis3mdl_ROOT).. +INC_DIRS += $(lis3mdl_ROOT) + +# args for passing into compile rule generation +lis3mdl_SRC_DIR = $(lis3mdl_ROOT) + +$(eval $(call component_compile_rules,lis3mdl)) diff --git a/extras/lis3mdl/lis3mdl.c b/extras/lis3mdl/lis3mdl.c new file mode 100644 index 0000000..affe259 --- /dev/null +++ b/extras/lis3mdl/lis3mdl.c @@ -0,0 +1,738 @@ +/* + * Driver for LIS3MDL 3-axes digital magnetometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The information provided is believed to be accurate and reliable. The + * copyright holder assumes no responsibility for the consequences of use + * of such information nor for any infringement of patents or other rights + * of third parties which may result from its use. No license is granted by + * implication or otherwise under any patent or patent rights of the copyright + * holder. + */ + +#include +#include + +#include "lis3mdl.h" + +#if defined(LIS3MDL_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "LIS3MDL", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LIS3MDL", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(LIS3MDL_DEBUG_LEVEL_1) || defined(LIS3MDL_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "LIS3MDL", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LIS3MDL", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +// register addresses +#define LIS3MDL_REG_WHO_AM_I 0x0f +#define LIS3MDL_REG_CTRL1 0x20 +#define LIS3MDL_REG_CTRL2 0x21 +#define LIS3MDL_REG_CTRL3 0x22 +#define LIS3MDL_REG_CTRL4 0x23 +#define LIS3MDL_REG_CTRL5 0x24 +#define LIS3MDL_REG_STATUS 0x27 +#define LIS3MDL_REG_OUT_X_L 0x28 +#define LIS3MDL_REG_OUT_X_H 0x29 +#define LIS3MDL_REG_OUT_Y_L 0x2a +#define LIS3MDL_REG_OUT_Y_H 0x2b +#define LIS3MDL_REG_OUT_Z_L 0x2c +#define LIS3MDL_REG_OUT_Z_H 0x2d +#define LIS3MDL_REG_TEMP_OUT_L 0x2e +#define LIS3MDL_REG_TEMP_OUT_H 0x2f +#define LIS3MDL_REG_INT_CFG 0x30 +#define LIS3MDL_REG_INT_SRC 0x31 +#define LIS3MDL_REG_INT_THS_L 0x32 +#define LIS3MDL_REG_INT_THS_H 0x33 + +// register structure definitions +struct lis3mdl_reg_status +{ + uint8_t XDA :1; // STATUS<0> X axis new data available + uint8_t YDA :1; // STATUS<1> Y axis new data available + uint8_t ZDA :1; // STATUS<2> Z axis new data available + uint8_t ZYXDA :1; // STATUS<3> X, Y and Z axis new data available + uint8_t XOR :1; // STATUS<4> X axis data overrun + uint8_t YOR :1; // STATUS<5> Y axis data overrun + uint8_t ZOR :1; // STATUS<6> Z axis data overrun + uint8_t ZYXOR :1; // STATUS<7> X, Y and Z axis data overrun +}; + +#define LIS3MDL_ANY_DATA_READY 0x0f // LIS3MDL_REG_STATUS<3:0> + +struct lis3mdl_reg_ctrl1 +{ + uint8_t ST :1; // CTRL1<0> Self-test enable + uint8_t FAST_ODR :1; // CTRL1<1> Data rates higher 80 Hz enabled + uint8_t DO :3; // CTRL1<4:2> Output data rate + uint8_t OM :2; // CTRL1<6:5> X and Y axes operative mode + uint8_t TEMP_EN :1; // CTRL1<7> Temperature sensor enabled +}; + +struct lis3mdl_reg_ctrl2 +{ + uint8_t unused1 :2; // CTRL2<1:0> unused + uint8_t SOFT_RST :1; // CTRL2<2> configuration and user regs reset + uint8_t REBOOT :1; // CTRL2<3> Reboot memory content + uint8_t unused2 :1; // CTRL2<4> unused + uint8_t FS :2; // CTRL2<6:5> + uint8_t unused3 :1; // CTRL2<7> unused +}; + +struct lis3mdl_reg_ctrl3 +{ + uint8_t MD :2; // CTRL3<1:0> Operation mode selection + uint8_t SIM :1; // CTRL3<2> SPI serial interface mode selection + uint8_t unused1 :2; // CTRL3<4:3> unused + uint8_t LP :1; // CTRL3<5> Low power mode configuration + uint8_t unused2 :2; // CTRL3<7:6> unused +}; + +struct lis3mdl_reg_ctrl4 +{ + uint8_t unused1 :1; // CTRL4<0> unused + uint8_t BLE :1; // CTRL4<1> Big/litle endian data selection + uint8_t OMZ :2; // CTRL4<3:2> Z axis operative mode + uint8_t unused2 :4; // CTRL4<7:4> unused +}; + +struct lis3mdl_reg_ctrl5 +{ + uint8_t unused :6; // CTRL5<5:0> unused + uint8_t BDU :1; // CTRL5<6> Block data update + uint8_t FAST_READ:1; // CTRL5<7> Fast read enabled +}; + + +struct lis3mdl_reg_int_cfg +{ + uint8_t IEN :1; // INT_CFG<0> Interrupt enabled + uint8_t LIR :1; // INT_CFG<1> Latch interrupt request + uint8_t IEA :1; // INT_CFG<2> Interrupt active + uint8_t unused :2; // INT_CFG<4:3> unused + uint8_t ZIEN :1; // INT_CFG<5> Z axis threshold interrupt enabled + uint8_t YIEN :1; // INT_CFG<6> Y axis threshold interrupt enabled + uint8_t XIEN :1; // INT_CFG<7> X axis threshold interrupt enabled +}; + +struct lis3mdl_reg_int_src +{ + uint8_t PTH_X :1; // INT_SRC<0> X exceeds threshold on positive side + uint8_t PTH_Y :1; // INT_SRC<1> Y exceeds threshold on positive side + uint8_t PTH_Z :1; // INT_SRC<2> Z exceeds threshold on positive side + uint8_t NTH_X :1; // INT_SRC<3> X exceeds threshold on negative side + uint8_t NTH_Y :1; // INT_SRC<4> Y exceeds threshold on negative side + uint8_t NTH_Z :1; // INT_SRC<5> Z exceeds threshold on negative side + uint8_t MROI :1; // INT_SRC<6> Internal measurement range overflow + uint8_t INT :1; // INT_SRC<7> Interrupt event occurs +}; + +/** Forward declaration of functions for internal use */ + +static bool lis3mdl_reset (lis3mdl_sensor_t* dev); +static bool lis3mdl_is_available(lis3mdl_sensor_t* dev); + +static bool lis3mdl_i2c_read (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3mdl_i2c_write (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3mdl_spi_read (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3mdl_spi_write (lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); + +#define msb_lsb_to_type(t,b,o) (t)(((t)b[o] << 8) | b[o+1]) +#define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) +#define lsb_to_type(t,b,o) (t)(b[o]) + +#define lis3mdl_update_reg(dev,addr,type,elem,value) \ + { \ + struct type __reg; \ + if (!lis3mdl_reg_read (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + __reg.elem = (value); \ + if (!lis3mdl_reg_write (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + } + +lis3mdl_sensor_t* lis3mdl_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs) +{ + lis3mdl_sensor_t* dev; + + if ((dev = malloc (sizeof(lis3mdl_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->cs = cs; + + dev->error_code = LIS3MDL_OK; + dev->scale = lis3mdl_scale_4_Gs; + + // if addr==0 then SPI is used and has to be initialized + if (!addr && !spi_device_init (bus, cs)) + { + error_dev ("Could not initialize SPI interface.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // check availability of the sensor + if (!lis3mdl_is_available (dev)) + { + error_dev ("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // reset the sensor + if (!lis3mdl_reset(dev)) + { + error_dev ("Could not reset the sensor device.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + lis3mdl_update_reg (dev, LIS3MDL_REG_CTRL2, lis3mdl_reg_ctrl2, FS, lis3mdl_scale_4_Gs); + lis3mdl_update_reg (dev, LIS3MDL_REG_CTRL5, lis3mdl_reg_ctrl5, BDU, 1); + + return dev; +} + +// switching times +// LP 0.90 +// MP 1.65 +// HP 3.23 +// UHP 6.40 + +bool lis3mdl_set_mode (lis3mdl_sensor_t* dev, lis3mdl_mode_t mode) +{ + if (!dev) return false; + + dev->error_code = LIS3MDL_OK; + + struct lis3mdl_reg_ctrl1 ctrl1; + struct lis3mdl_reg_ctrl3 ctrl3; + struct lis3mdl_reg_ctrl4 ctrl4; + + // read current register values + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_CTRL1, (uint8_t*)&ctrl1, 1) || + !lis3mdl_reg_read (dev, LIS3MDL_REG_CTRL3, (uint8_t*)&ctrl3, 1) || + !lis3mdl_reg_read (dev, LIS3MDL_REG_CTRL4, (uint8_t*)&ctrl4, 1)) + return false; + + if (mode < lis3mdl_lpm_1000) + { + ctrl1.FAST_ODR = 0; + + ctrl3.MD = 0; // continuous measurement + ctrl3.LP = 0; + + ctrl1.DO = mode; + ctrl1.OM = 0; + ctrl4.OMZ = ctrl1.OM; + } + else if (mode < lis3mdl_low_power) + { + ctrl1.FAST_ODR = 1; + + ctrl3.MD = 0; // continuous measurement + ctrl3.LP = 0; + + ctrl1.DO = 0; + ctrl1.OM = mode - lis3mdl_lpm_1000; + ctrl4.OMZ = ctrl1.OM; + } + else if (mode == lis3mdl_low_power) + { + ctrl1.FAST_ODR = 0; + + ctrl3.MD = 0; // continuous measurement + ctrl3.LP = 1; // at lowest data rate 0.625 Hz + + ctrl1.DO = 0; + ctrl1.OM = 0; + ctrl4.OMZ = ctrl1.OM; + } + else // lis3mdl_power_down + { + ctrl3.MD = 3; + } + + if (!lis3mdl_reg_write (dev, LIS3MDL_REG_CTRL1, (uint8_t*)&ctrl1, 1) || + !lis3mdl_reg_write (dev, LIS3MDL_REG_CTRL3, (uint8_t*)&ctrl3, 1) || + !lis3mdl_reg_write (dev, LIS3MDL_REG_CTRL4, (uint8_t*)&ctrl4, 1)) + return false; + + // wait until mode switch happened + vTaskDelay (50/portTICK_PERIOD_MS); + + // dummy read last data register set + lis3mdl_raw_data_t raw; + lis3mdl_get_raw_data (dev, &raw); + + return false; +} + + +bool lis3mdl_set_scale (lis3mdl_sensor_t* dev, lis3mdl_scale_t scale) +{ + if (!dev) return false; + + dev->error_code = LIS3MDL_OK; + dev->scale = scale; + + // read CTRL2 register and write scale + lis3mdl_update_reg (dev, LIS3MDL_REG_CTRL2, lis3mdl_reg_ctrl2, FS, scale); + + return true; +} + + +bool lis3mdl_new_data (lis3mdl_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LIS3MDL_OK; + + struct lis3mdl_reg_status status; + + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_STATUS, (uint8_t*)&status, 1)) + { + error_dev ("Could not get sensor status", __FUNCTION__, dev); + return false; + } + return status.ZYXDA; +} + +/** + * Scaling factors for the conversion of raw sensor data to floating point _Gs + * values. Scaling factors are from mechanical characteristics in datasheet. + * + * scale/sensitivity resolution sensitivity + * +-4 gauss 6842 LSB/gauss 1.461561e-4 + * +-8 gauss 3421 LSB/gauss 2,923122e-4 + * +-12 gauss 2281 LSB/gauss 4,384042e-4 + * +-16 gauss 1711 LSB/gauss 5,844535e-4 + */ +const static double LIS3MDL_SCALES[4] = { 1.0/6842, 1.0/3421, 1.0/2281, 1.0/1711 }; + +bool lis3mdl_get_float_data (lis3mdl_sensor_t* dev, lis3mdl_float_data_t* data) +{ + if (!dev || !data) return false; + + lis3mdl_raw_data_t raw; + + if (!lis3mdl_get_raw_data (dev, &raw)) + return false; + + data->mx = LIS3MDL_SCALES[dev->scale] * raw.mx; + data->my = LIS3MDL_SCALES[dev->scale] * raw.my; + data->mz = LIS3MDL_SCALES[dev->scale] * raw.mz; + + return true; +} + + +bool lis3mdl_get_raw_data (lis3mdl_sensor_t* dev, lis3mdl_raw_data_t* raw) +{ + if (!dev || !raw) return false; + + dev->error_code = LIS3MDL_OK; + + uint8_t regs[6]; + + // read raw data sample + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_OUT_X_L, regs, 6)) + { + error_dev ("Could not get raw data sample", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_GET_RAW_DATA_FAILED; + return false; + } + + raw->mx = ((uint16_t)regs[1] << 8) | regs[0]; + raw->my = ((uint16_t)regs[3] << 8) | regs[2]; + raw->mz = ((uint16_t)regs[5] << 8) | regs[4]; + + return true; +} + + +bool lis3mdl_set_int_config (lis3mdl_sensor_t* dev, + lis3mdl_int_config_t* cfg) +{ + if (!dev || !cfg) return false; + + dev->error_code = LIS3MDL_OK; + + struct lis3mdl_reg_int_cfg int_cfg; + + int_cfg.unused = 0; + + int_cfg.XIEN = cfg->x_enabled; + int_cfg.YIEN = cfg->y_enabled; + int_cfg.ZIEN = cfg->z_enabled; + + int_cfg.LIR = cfg->latch; + int_cfg.IEA = cfg->signal_level; + int_cfg.IEN = cfg->x_enabled | cfg->y_enabled | cfg->z_enabled; + + if (// write the threshold to registers INT_THS_* + !lis3mdl_reg_write (dev, LIS3MDL_REG_INT_THS_L, (uint8_t*)&cfg->threshold, 2) || + + // write configuration to INT_CFG + !lis3mdl_reg_write (dev, LIS3MDL_REG_INT_CFG, (uint8_t*)&int_cfg, 1)) + { + error_dev ("Could not configure interrupt INT", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_CONFIG_INT_FAILED; + return false; + } + + return true; +} + + +bool lis3mdl_get_int_config (lis3mdl_sensor_t* dev, + lis3mdl_int_config_t* cfg) +{ + if (!dev || !cfg) return false; + + dev->error_code = LIS3MDL_OK; + + struct lis3mdl_reg_int_cfg int_cfg; + + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_INT_THS_L, (uint8_t*)&cfg->threshold, 2) || + !lis3mdl_reg_read (dev, LIS3MDL_REG_INT_CFG , (uint8_t*)&int_cfg, 1)) + { + error_dev ("Could not read configuration of interrupt INT from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_CONFIG_INT_FAILED; + return false; + } + + cfg->x_enabled = int_cfg.XIEN; + cfg->y_enabled = int_cfg.YIEN; + cfg->z_enabled = int_cfg.ZIEN; + + cfg->latch = int_cfg.LIR; + cfg->signal_level = int_cfg.IEA; + + return true; +} + + +bool lis3mdl_get_int_source (lis3mdl_sensor_t* dev, + lis3mdl_int_source_t* src) +{ + if (!dev || !src) return false; + + dev->error_code = LIS3MDL_OK; + + struct lis3mdl_reg_int_src int_src; + struct lis3mdl_reg_int_cfg int_cfg; + + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_INT_SRC, (uint8_t*)&int_src, 1) || + !lis3mdl_reg_read (dev, LIS3MDL_REG_INT_CFG, (uint8_t*)&int_cfg, 1)) + { + error_dev ("Could not read source of interrupt INT from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_INT_SOURCE_FAILED; + return false; + } + + src->active = int_src.INT; + + src->x_pos = int_src.PTH_X & int_cfg.XIEN; + src->x_neg = int_src.NTH_X & int_cfg.XIEN; + + src->y_pos = int_src.PTH_Y & int_cfg.YIEN; + src->y_neg = int_src.NTH_Y & int_cfg.YIEN; + + src->z_pos = int_src.PTH_Z & int_cfg.ZIEN; + src->z_neg = int_src.NTH_Z & int_cfg.ZIEN; + + return true; +} + + +bool lis3mdl_enable_temperature (lis3mdl_sensor_t* dev, bool enable) +{ + lis3mdl_update_reg (dev, LIS3MDL_REG_CTRL1, lis3mdl_reg_ctrl1, TEMP_EN, enable); + + return true; +} + +float lis3mdl_get_temperature (lis3mdl_sensor_t* dev) +{ + uint8_t regs[2]; + + // read raw data sample + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_TEMP_OUT_L, regs, 2)) + { + error_dev ("Could not get temperature data sample", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_GET_RAW_DATA_FAILED; + return false; + } + + return (((int16_t)((regs[1] << 8) | regs[0])) >> 3) + 25.0; +} + +/** Functions for internal use only */ + +/** + * @brief Check the chip ID to test whether sensor is available + */ +static bool lis3mdl_is_available (lis3mdl_sensor_t* dev) +{ + uint8_t chip_id; + + if (!dev) return false; + + dev->error_code = LIS3MDL_OK; + + if (!lis3mdl_reg_read (dev, LIS3MDL_REG_WHO_AM_I, &chip_id, 1)) + return false; + + if (chip_id != LIS3MDL_CHIP_ID) + { + error_dev ("Chip id %02x is wrong, should be %02x.", + __FUNCTION__, dev, chip_id, LIS3MDL_CHIP_ID); + dev->error_code = LIS3MDL_WRONG_CHIP_ID; + return false; + } + + return true; +} + +static bool lis3mdl_reset (lis3mdl_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LIS3MDL_OK; + + uint8_t ctrl_regs[5] = { 0x10, 0x00, 0x03, 0x00, 0x00 }; + uint8_t int_cfg = 0x00; + + // initialize sensor completely including setting in power down mode + lis3mdl_reg_write (dev, LIS3MDL_REG_CTRL1 , ctrl_regs, 5); + lis3mdl_reg_write (dev, LIS3MDL_REG_INT_CFG, &int_cfg , 1); + + return true; +} + + +bool lis3mdl_reg_read(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lis3mdl_i2c_read (dev, reg, data, len) + : lis3mdl_spi_read (dev, reg, data, len); +} + + +bool lis3mdl_reg_write(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lis3mdl_i2c_write (dev, reg, data, len) + : lis3mdl_spi_write (dev, reg, data, len); +} + + +#define LIS3MDL_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 + +#define LIS3MDL_SPI_READ_FLAG 0x80 +#define LIS3MDL_SPI_WRITE_FLAG 0x00 +#define LIS3MDL_SPI_AUTO_INC_FLAG 0x40 + +static bool lis3mdl_spi_read(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + if (len >= LIS3MDL_SPI_BUF_SIZE) + { + dev->error_code |= LIS3MDL_SPI_BUFFER_OVERFLOW; + error_dev ("Error on read from SPI slave on bus 1. Tried to transfer " + "more than %d byte in one read operation.", + __FUNCTION__, dev, LIS3MDL_SPI_BUF_SIZE); + return false; + } + + uint8_t addr = (reg & 0x3f) | LIS3MDL_SPI_READ_FLAG | LIS3MDL_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LIS3MDL_SPI_BUF_SIZE]; + static uint8_t miso[LIS3MDL_SPI_BUF_SIZE]; + + memset (mosi, 0xff, LIS3MDL_SPI_BUF_SIZE); + memset (miso, 0xff, LIS3MDL_SPI_BUF_SIZE); + + mosi[0] = addr; + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, miso, len+1)) + { + error_dev ("Could not read data from SPI", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_SPI_READ_FAILED; + return false; + } + + // shift data one by left, first byte received while sending register address is invalid + for (int i=0; i < len; i++) + data[i] = miso[i+1]; + + #ifdef LIS3MDL_DEBUG_LEVEL_2 + printf("LIS3MDL %s: read the following bytes from reg %02x: ", __FUNCTION__, reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); + #endif + + return true; +} + + +static bool lis3mdl_spi_write(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + uint8_t addr = (reg & 0x3f) | LIS3MDL_SPI_WRITE_FLAG | LIS3MDL_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LIS3MDL_SPI_BUF_SIZE]; + + if (len >= LIS3MDL_SPI_BUF_SIZE) + { + dev->error_code |= LIS3MDL_SPI_BUFFER_OVERFLOW; + error_dev ("Error on write to SPI slave on bus 1. Tried to transfer more" + "than %d byte in one write operation.", + __FUNCTION__, dev, LIS3MDL_SPI_BUF_SIZE); + + return false; + } + + reg &= 0x7f; + + // first byte in output is the register address + mosi[0] = addr; + + // shift data one byte right, first byte in output is the register address + for (int i = 0; i < len; i++) + mosi[i+1] = data[i]; + + #ifdef LIS3MDL_DEBUG_LEVEL_2 + printf("LIS3MDL %s: Write the following bytes to reg %02x: ", __FUNCTION__, reg); + for (int i = 1; i < len+1; i++) + printf("%02x ", mosi[i]); + printf("\n"); + #endif + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, NULL, len+1)) + { + error_dev ("Could not write data to SPI.", __FUNCTION__, dev); + dev->error_code |= LIS3MDL_SPI_WRITE_FAILED; + return false; + } + + return true; +} + + +#define I2C_AUTO_INCREMENT (0x80) + +static bool lis3mdl_i2c_read(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LIS3MDL_I2C_BUSY : LIS3MDL_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LIS3MDL_DEBUG_LEVEL_2 + printf("LIS3MDL %s: Read following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool lis3mdl_i2c_write(lis3mdl_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LIS3MDL_I2C_BUSY : LIS3MDL_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LIS3MDL_DEBUG_LEVEL_2 + printf("LIS3MDL %s: Wrote the following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} diff --git a/extras/lis3mdl/lis3mdl.h b/extras/lis3mdl/lis3mdl.h new file mode 100644 index 0000000..c21b725 --- /dev/null +++ b/extras/lis3mdl/lis3mdl.h @@ -0,0 +1,248 @@ +/** + * Driver for LIS3MDL 3-axes digital magnetometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LIS3MDL_H__ +#define __LIS3MDL_H__ + +// Uncomment one of the following defines to enable debug output +// #define LIS3MDL_DEBUG_LEVEL_1 // only error messages +// #define LIS3MDL_DEBUG_LEVEL_2 // debug and error messages + +// LIS3MDL addresses +#define LIS3MDL_I2C_ADDRESS_1 0x1c // SDO pin is low +#define LIS3MDL_I2C_ADDRESS_2 0x1e // SDO pin is high + +// LIS3MDL chip id +#define LIS3MDL_CHIP_ID 0x3d // LIS3MDL_REG_WHO_AM_I<7:0> + +// Definition of error codes +#define LIS3MDL_OK 0 +#define LIS3MDL_NOK -1 + +#define LIS3MDL_INT_ERROR_MASK 0x000f +#define LIS3MDL_DRV_ERROR_MASK 0xfff0 + +// Error codes for I2C and SPI interfaces ORed with LIS3MDL driver error codes +#define LIS3MDL_I2C_READ_FAILED 1 +#define LIS3MDL_I2C_WRITE_FAILED 2 +#define LIS3MDL_I2C_BUSY 3 +#define LIS3MDL_SPI_WRITE_FAILED 4 +#define LIS3MDL_SPI_READ_FAILED 5 +#define LIS3MDL_SPI_BUFFER_OVERFLOW 6 + +// LIS3MDL driver error codes ORed with error codes for I2C and SPI interfaces +#define LIS3MDL_WRONG_CHIP_ID ( 1 << 8) +#define LIS3MDL_GET_RAW_DATA_FAILED ( 2 << 8) +#define LIS3MDL_CONFIG_INT_FAILED ( 3 << 8) +#define LIS3MDL_INT_SOURCE_FAILED ( 4 << 8) +#define LIS3MDL_GET_ADC_DATA_FAILED ( 5 << 8) + +#include "lis3mdl_platform.h" +#include "lis3mdl_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Initialize the sensor + * + * Reset the sensor and switch to power down mode. All registers are reset to + * default values. + * + * @param bus I2C or SPI bus at which LIS3MDL sensor is connected + * @param addr I2C addr of the LIS3MDL sensor, 0 for using SPI + * @param cs SPI CS GPIO, ignored for I2C + * @return pointer to sensor data structure, or NULL on error + */ +lis3mdl_sensor_t* lis3mdl_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs); + + +/** + * @brief Set sensor operation mode (OM) and output data rate (ODR) + * + * @param dev pointer to the sensor device data structure + * @param mode sensor operation mode (OM) at output data rate (ODR) + * @return true on success, false on error + */ +bool lis3mdl_set_mode (lis3mdl_sensor_t* dev, lis3mdl_mode_t mode); + + +/** + * @brief Set scale (full scale range) + * + * @param dev pointer to the sensor device data structure + * @param scale full range scale + * @return true on success, false on error + */ +bool lis3mdl_set_scale (lis3mdl_sensor_t* dev, lis3mdl_scale_t scale); + + +/** + * @brief Test whether new data samples are available + * + * @param dev pointer to the sensor device data structure + * @return true on new data, otherwise false + */ +bool lis3mdl_new_data (lis3mdl_sensor_t* dev); + + +/** + * @brief Get one sample of sensor data as floating point values (unit Gauss) + * + * @param dev pointer to the sensor device data structure + * @param data pointer to float data structure filled with g values + * @return true on success, false on error + */ +bool lis3mdl_get_float_data (lis3mdl_sensor_t* dev, + lis3mdl_float_data_t* data); + + +/** + * @brief Get one sample of raw sensor data as 16 bit two's complements + * + * @param dev pointer to the sensor device data structure + * @param raw pointer to raw data structure filled with values + * @return true on success, false on error + */ +bool lis3mdl_get_raw_data (lis3mdl_sensor_t* dev, lis3mdl_raw_data_t* raw); + + +/** + * @brief Set configuration for threshold interrupt signal INT + * + * The function enables the interrupt signal if one of the possible sources + * is enabled for interrupts. + * + * @param dev pointer to the sensor device data structure + * @param config configuration for the specified interrupt signal + * @return true on success, false on error + */ +bool lis3mdl_set_int_config (lis3mdl_sensor_t* dev, + lis3mdl_int_config_t* config); + + +/** + * @brief Get configuration for threshold interrupt signal INT + * + * @param dev pointer to the sensor device data structure + * @param config configuration for the specified interrupt signal + * @return true on success, false on error + */ +bool lis3mdl_get_int_config (lis3mdl_sensor_t* dev, + lis3mdl_int_config_t* config); + + +/** + * @brief Get the source of the threshold interrupt signal INT + * + * Returns a byte with flags that indicate the value(s) that triggered + * the interrupt signal (see INT_SRC register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lis3mdl_get_int_source (lis3mdl_sensor_t* dev, + lis3mdl_int_source_t* source); + +/** + * @brief Enable/Disable temperature sensor + * + * @param dev pointer to the sensor device data structure + * @param enable if true, temperature sensor is enabled + * @return true on success, false on error + */ +bool lis3mdl_enable_temperature (lis3mdl_sensor_t* dev, bool enable); + + +/** + * @brief Get temperature + * + * @param dev pointer to the sensor device data structure + * @return temperature in degree + */ +float lis3mdl_get_temperature (lis3mdl_sensor_t* dev); + +// ---- Low level interface functions ----------------------------- + +/** + * @brief Direct write to register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be changed + * @param data pointer to the data to be written to the register + * @param len number of bytes to be written to the register + * @return true on success, false on error + */ +bool lis3mdl_reg_write (lis3mdl_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +/** + * @brief Direct read from register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be read + * @param data pointer to the data to be read from the register + * @param len number of bytes to be read from the register + * @return true on success, false on error + */ +bool lis3mdl_reg_read (lis3mdl_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LIS3MDL_H__ */ diff --git a/extras/lis3mdl/lis3mdl_platform.c b/extras/lis3mdl/lis3mdl_platform.c new file mode 100644 index 0000000..734b8ae --- /dev/null +++ b/extras/lis3mdl/lis3mdl_platform.c @@ -0,0 +1,81 @@ +/** + * Driver for LIS3MDL 3-axes digital magnetometer to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#include "lis3mdl_platform.h" + +// platform specific SPI functions + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + diff --git a/extras/lis3mdl/lis3mdl_platform.h b/extras/lis3mdl/lis3mdl_platform.h new file mode 100644 index 0000000..686c9ac --- /dev/null +++ b/extras/lis3mdl/lis3mdl_platform.h @@ -0,0 +1,80 @@ +/** + * Driver for LIS3MDL 3-axes digital magnetometer to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __LIS3MDL_PLATFORM_H__ +#define __LIS3MDL_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "esp/spi.h" +#include "i2c/i2c.h" + +// platform specific SPI functions + +#define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 + +extern bool spi_device_init (uint8_t bus, uint8_t cs); +extern size_t spi_transfer_pf (uint8_t bus, uint8_t cs, + const uint8_t *mosi, uint8_t *miso, + uint16_t len); + +#endif // ESP_OPEN_RTOS + +#endif // __LIS3MDL_PLATFORM_H__ diff --git a/extras/lis3mdl/lis3mdl_types.h b/extras/lis3mdl/lis3mdl_types.h new file mode 100644 index 0000000..d5cef93 --- /dev/null +++ b/extras/lis3mdl/lis3mdl_types.h @@ -0,0 +1,178 @@ +/** + * Driver for LIS3MDL 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO Activity SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LIS3MDL_TYPES_H__ +#define __LIS3MDL_TYPES_H__ + +#include "stdint.h" +#include "stdbool.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Operation mode (OM) and output data rates (ODR) + */ +typedef enum { + + lis3mdl_lpm_0_625 = 0, // low power mode at 0.625 Hz + lis3mdl_lpm_1_25, // low power mode at 1.25 Hz + lis3mdl_lpm_2_5, // low power mode at 2.5 Hz + lis3mdl_lpm_5, // low power mode at 5 Hz + lis3mdl_lpm_10, // low power mode at 10 Hz + lis3mdl_lpm_20, // low power mode at 20 Hz + lis3mdl_lpm_40, // low power mode at 40 Hz + lis3mdl_lpm_80, // low power mode at 80 Hz + lis3mdl_lpm_1000, // low power mode at 1000 Hz + lis3mdl_mpm_560, // medium performance mode at 560 Hz + lis3mdl_hpm_300, // high performance mode at 300 Hz + lis3mdl_uhpm_155, // ultra high performance mode at 155 Hz + lis3mdl_low_power, // low power mode at 0.625 Hz + lis3mdl_power_down // power down mode + +} lis3mdl_mode_t; + + +/** + * @brief Full scale measurement range in Gauss + */ +typedef enum { + + lis3mdl_scale_4_Gs = 0, // default + lis3mdl_scale_8_Gs, + lis3mdl_scale_12_Gs, + lis3mdl_scale_16_Gs + +} lis3mdl_scale_t; + +/** + * @brief Magnetic threshold interrupt configuration for INT signal + */ +typedef struct { + + uint16_t threshold; // threshold used for interrupt generation + + bool x_enabled; // true - x exceeds threshold on positive side + bool y_enabled; // true - y exceeds threshold on positive side + bool z_enabled; // true - z exceeds threshold on positive side + + bool latch; // true - latch the interrupt until the interrupt + // source has been read + enum + { + lis3mdl_low_active = 0, + lis3mdl_high_active = 1 + + } signal_level; // level of interrupt signal + +} lis3mdl_int_config_t; + + +/** + * @brief Magnetic threshold interrupt source of INT signal + */ +typedef struct { + + bool x_pos :1; // true - x exceeds threshold on positive side + bool y_pos :1; // true - y exceeds threshold on positive side + bool z_pos :1; // true - z exceeds threshold on positive side + + bool x_neg :1; // true - x exceeds threshold on negative side + bool y_neg :1; // true - y exceeds threshold on negative side + bool z_neg :1; // true - z exceeds threshold on negative side + + bool mroi :1; // true - internal measurement range overflow + bool active:1; // true - interrupt event occured + +} lis3mdl_int_source_t; + + +/** + * @brief Raw data set as two's complements + */ +typedef struct { + + int16_t mx; // magnetic value on x axis + int16_t my; // magnetic value on y axis + int16_t mz; // magnetic value on z axis + +} lis3mdl_raw_data_t; + + +/** + * @brief Floating point output value set in Gauss + */ +typedef struct { + + float mx; // magnetic value on x axis + float my; // magnetic value on y axis + float mz; // magnetic value on z axis + +} lis3mdl_float_data_t; + + +/** + * @brief LIS3MDL sensor device data structure type + */ +typedef struct { + + int error_code; // error code of last operation + + uint8_t bus; // I2C = x, SPI = 1 + uint8_t addr; // I2C = slave address, SPI = 0 + + uint8_t cs; // ESP8266, ESP32: GPIO used as SPI CS + // __linux__: device index + + lis3mdl_scale_t scale; // full range scale (default 4 Gauss) + +} lis3mdl_sensor_t; + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LIS3MDL_TYPES_H__ */ From a4de9dd4f1dd896fd9e61b948f58cb2da09d3502 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 13:01:38 +0100 Subject: [PATCH 271/349] LIS3DH 3-axes accelerometer driver added (#546) --- examples/lis3dh/Makefile | 3 + examples/lis3dh/lis3dh_example.c | 367 +++++++++ extras/lis3dh/README.md | 1039 ++++++++++++++++++++++++ extras/lis3dh/component.mk | 10 + extras/lis3dh/lis3dh.c | 1274 ++++++++++++++++++++++++++++++ extras/lis3dh/lis3dh.h | 456 +++++++++++ extras/lis3dh/lis3dh_platform.c | 81 ++ extras/lis3dh/lis3dh_platform.h | 80 ++ extras/lis3dh/lis3dh_types.h | 355 +++++++++ 9 files changed, 3665 insertions(+) create mode 100644 examples/lis3dh/Makefile create mode 100644 examples/lis3dh/lis3dh_example.c create mode 100644 extras/lis3dh/README.md create mode 100644 extras/lis3dh/component.mk create mode 100644 extras/lis3dh/lis3dh.c create mode 100644 extras/lis3dh/lis3dh.h create mode 100644 extras/lis3dh/lis3dh_platform.c create mode 100644 extras/lis3dh/lis3dh_platform.h create mode 100644 extras/lis3dh/lis3dh_types.h diff --git a/examples/lis3dh/Makefile b/examples/lis3dh/Makefile new file mode 100644 index 0000000..99a893a --- /dev/null +++ b/examples/lis3dh/Makefile @@ -0,0 +1,3 @@ +PROGRAM=LIS3DH +EXTRA_COMPONENTS = extras/i2c extras/lis3dh +include ../../common.mk diff --git a/examples/lis3dh/lis3dh_example.c b/examples/lis3dh/lis3dh_example.c new file mode 100644 index 0000000..29534ce --- /dev/null +++ b/examples/lis3dh/lis3dh_example.c @@ -0,0 +1,367 @@ +/** + * Simple example with one sensor connected to I2C or SPI. It demonstrates the + * different approaches to fetch the data. Either one of the interrupt signals + * is used or new data are fetched periodically. + * + * Harware configuration: + * + * I2C + * + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | LIS3DH | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * | GPIO 5 <---- INT1 | + * +-----------------+ +----------+ + * + * SPI + * + * +-----------------+ +----------+ +-----------------+ +----------+ + * | ESP8266 | | LIS3DH | | ESP32 | | LIS3DH | + * | | | | | | | | + * | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + * | GPIO 13 (MOSI)----> SDI | | GPIO 17 (MOSI)----> SDI | + * | GPIO 12 (MISO)<---- SDO | | GPIO 18 (MISO)<---- SDO | + * | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + * | GPIO 5 <---- INT1 | | GPIO 5 <---- INT1 | + * +-----------------+ +---------+ +-----------------+ +----------+ + */ + +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // SPI interface is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // inertial event interrupts used (wake-up, free fall or 6D/4D orientation) +// #define INT_CLICK // click detection interrupts used + +#if defined(INT_DATA) || defined(INT_EVENT) || defined(INT_CLICK) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lis3dh.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks --------------------------------------------------- */ + +static lis3dh_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + #ifdef FIFO_MODE + + lis3dh_float_data_fifo_t fifo; + + if (lis3dh_new_data (sensor)) + { + uint8_t num = lis3dh_get_float_data_fifo (sensor, fifo); + + printf("%.3f LIS3DH num=%d\n", (double)sdk_system_get_time()*1e-3, num); + + for (int i=0; i < num; i++) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3DH (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + fifo[i].ax, fifo[i].ay, fifo[i].az); + } + + #else + + lis3dh_float_data_t data; + + if (lis3dh_new_data (sensor) && + lis3dh_get_float_data (sensor, &data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3DH (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + data.ax, data.ay, data.az); + + #endif // FIFO_MODE +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + lis3dh_int_data_source_t data_src = {}; + lis3dh_int_event_source_t event_src = {}; + lis3dh_int_click_source_t click_src = {}; + + // get the source of the interrupt and reset *INTx* signals + #ifdef INT_DATA + lis3dh_get_int_data_source (sensor, &data_src); + #endif + #ifdef INT_EVENT + lis3dh_get_int_event_source (sensor, &event_src, lis3dh_int_event1_gen); + #endif + #ifdef INT_CLICK + lis3dh_get_int_click_source (sensor, &click_src); + #endif + + // in case of DRDY interrupt or inertial event interrupt read one data sample + if (data_src.data_ready) + read_data (); + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_watermark || data_src.fifo_overrun) + read_data (); + + // in case of event interrupt + else if (event_src.active) + { + printf("%.3f LIS3DH ", (double)sdk_system_get_time()*1e-3); + if (event_src.x_low) printf("x is lower than threshold\n"); + if (event_src.y_low) printf("y is lower than threshold\n"); + if (event_src.z_low) printf("z is lower than threshold\n"); + if (event_src.x_high) printf("x is higher than threshold\n"); + if (event_src.y_high) printf("y is higher than threshold\n"); + if (event_src.z_high) printf("z is higher than threshold\n"); + } + + // in case of click detection interrupt + else if (click_src.active) + printf("%.3f LIS3DH %s\n", (double)sdk_system_get_time()*1e-3, + click_src.s_click ? "single click" : "double click"); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lis3dh_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C bus interfaces at which LIS3DH sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LIS3DH_I2C_ADDRESS_1 connected to I2C_BUS. + sensor = lis3dh_init_sensor (I2C_BUS, LIS3DH_I2C_ADDRESS_1, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set polarity of INT signals if necessary + // lis3dh_config_int_signals (sensor, lis3dh_high_active); + + #ifdef INT_DATA + // enable data interrupts on INT1 (data ready or FIFO status interrupts) + // data ready and FIFO status interrupts must not be enabled at the same time + #ifdef FIFO_MODE + lis3dh_enable_int (sensor, lis3dh_int_fifo_overrun , lis3dh_int1_signal, true); + lis3dh_enable_int (sensor, lis3dh_int_fifo_watermark, lis3dh_int1_signal, true); + #else + lis3dh_enable_int (sensor, lis3dh_int_data_ready, lis3dh_int1_signal, true); + #endif // FIFO_MODE + #endif // INT_DATA + + #ifdef INT_EVENT + // enable data interrupts on INT1 + lis3dh_int_event_config_t event_config; + + event_config.mode = lis3dh_wake_up; + // event_config.mode = lis3dh_free_fall; + // event_config.mode = lis3dh_6d_movement; + // event_config.mode = lis3dh_6d_position; + // event_config.mode = lis3dh_4d_movement; + // event_config.mode = lis3dh_4d_position; + event_config.threshold = 10; + event_config.x_low_enabled = false; + event_config.x_high_enabled = true; + event_config.y_low_enabled = false; + event_config.y_high_enabled = true; + event_config.z_low_enabled = false; + event_config.z_high_enabled = true; + event_config.duration = 0; + event_config.latch = true; + + lis3dh_set_int_event_config (sensor, &event_config, lis3dh_int_event1_gen); + lis3dh_enable_int (sensor, lis3dh_int_event1, lis3dh_int1_signal, true); + #endif // INT_EVENT + + #ifdef INT_CLICK + // enable click interrupt on INT1 + lis3dh_int_click_config_t click_config; + + click_config.threshold = 10; + click_config.x_single = false; + click_config.x_double = false; + click_config.y_single = false; + click_config.y_double = false; + click_config.z_single = true; + click_config.z_double = false; + click_config.latch = true; + click_config.time_limit = 1; + click_config.time_latency = 1; + click_config.time_window = 3; + + lis3dh_set_int_click_config (sensor, &click_config); + lis3dh_enable_int (sensor, lis3dh_int_click, lis3dh_int1_signal, true); + #endif // INT_CLICK + + #ifdef FIFO_MODE + // clear FIFO and activate FIFO mode if needed + lis3dh_set_fifo_mode (sensor, lis3dh_bypass, 0, lis3dh_int1_signal); + lis3dh_set_fifo_mode (sensor, lis3dh_stream, 10, lis3dh_int1_signal); + #endif + + // configure HPF and reset the reference by dummy read + lis3dh_config_hpf (sensor, lis3dh_hpf_normal, 0, true, true, true, true); + lis3dh_get_hpf_ref (sensor); + + // enable ADC inputs and temperature sensor for ADC input 3 + lis3dh_enable_adc (sensor, true, true); + + // LAST STEP: Finally set scale and mode to start measurements + lis3dh_set_scale(sensor, lis3dh_scale_2_g); + lis3dh_set_mode (sensor, lis3dh_odr_10, lis3dh_high_res, true, true, true); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LIS3DH sensor\n"); +} + diff --git a/extras/lis3dh/README.md b/extras/lis3dh/README.md new file mode 100644 index 0000000..352ec95 --- /dev/null +++ b/extras/lis3dh/README.md @@ -0,0 +1,1039 @@ +# Driver for the LIS3DH 3-axes digital output accelerometer + +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). If you can't find it in folder [extras/lis3dh](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras) of original repository, it is not yet merged. Please take a look to branch [lis3dh](https://github.com/gschorcht/esp-open-rtos/tree/lis3dh) of my fork in that case. + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. + +The driver can also be used with LIS3DE, LIS2DH, LIS2DH12, LIS2DE, and LIS2DE12 + +## About the sensor + +LIS3DH is a low-power high performance **3-axis accelerometer sensor** connected to **I2C** or **SPI** with a full scale of up to **±16 g**. It supports different measuring rates. + +**Main features** of the sensor are: + +- 4 selectable full scales of ±2 g, ±4 g, ±8 g, and ±16 g +- 9 measuring rates from 1 Hz to 5 kHz +- 16 bit accelerometer value data output +- 2 independent programmable interrupt generators for free-fall and motion detection +- integrated high-pass filters with 3 modes and 4 different cut off frequencies +- embedded temperature sensor +- embedded 32 levels of 16 bit data output FIFO +- 6D/4D orientation detection +- Free-fall detection +- Motion detection +- click/double click recognition +- I2C and SPI digital output interface + +## Sensor operation + +### Sensor modes + +LIS3DH provides different operating modes. + +- **Power Down mode** is configured automatically after power up boot sequence. In this mode, almost all internal blocks of the device are switched off. Register content is preserved, but there are no measurements performed. + +- **Normal mode** is the standard measurement mode. In this mode measurements are performed with a resolution of **10 bit** at the defined output data rate (**ODR**). + +- **Low-power mode** is the measurement mode with reduced power consumption. Measurements are performed with a resolution of only **8 bit** at the defined output data rate (**ODR**). + +- **High-resolution mode** is the measurement mode where measurements are performed with a resolution of 12 bit at the defined output data rate (**ODR**). Only output data rates (ODR) up to 400 Hz are available. + +Switching from any mode to any another mode with the exception of high-resolution mode takes only 1/ODR. Switching from any mode to the high-resolution mode takes 7/ODRs. + +### Output Data Rates + +In normal, low-power and high-resolution modes, measurements are performed at a defined output rate. Following output data rates (ODR) are supported in the different modes: + +Driver symbol | Normal mode
        ```lis3dh_normal``` | Low-power mode
        ```lis3dh_low_power``` | High-resolution mode
        ```lis3dh_high_res``` +:---------------------- |:------------:|:---------------:|:--------------------: +```lis3dh_power_down``` | Power down | Power down | Power down +```lis3dh_normal_1``` | 1 Hz | 1 Hz | 1 Hz +```lis3dh_normal_10``` | 10 Hz | 10 Hz | 10 Hz +```lis3dh_normal_25``` | 25 Hz | 25 Hz | 25 Hz +```lis3dh_normal_50``` | 50 Hz | 50 Hz | 50 Hz +```lis3dh_normal_100``` | 100 Hz | 100 Hz | 100 Hz +```lis3dh_normal_200``` | 200 Hz | 200 Hz | 200 Hz +```lis3dh_normal_400``` | 400 Hz | 400 Hz | 400 Hz +```lis3dh_normal_1600```| - | 1600 Hz | - +```lis3dh_normal_5000```| 1250 Hz | 5000 Hz | - + +The **easiest way to use the sensor** is simply to initialize it with function ```lis3dh_init_sensor``` and then set it to any measurement mode with function ```lis3dh_set_mode``` to start measurements with the given output data rate (ODR). + +``` +... +static lis3dh_sensor_t* sensor = 0; +... +if ((sensor = lis3dh_init_sensor (I2C_BUS, LIS3DH_I2C_ADDRESS_2, 0))) +{ + ... + lis3dh_set_mode (sensor, lis3dh_odr_10, lis3dh_high_res, true, true, true) + ... +} +... + +``` +In this example, a LIS3DH sensor connected to I2C is initialized and set to high-resolution mode to start measurements for all three axes with an output data rate (ODR) of 10 Hz. + +**Please note:** +- ```lis3dh_init_sensor``` function resets the sensor completely, switches it to the power down mode, and returns a pointer to a sensor device data structure on success. All registers are reset to default values and the embedded FIFO is cleared. +- All sensor configurations should be done before calling function ```lis3dh_set_mode```. In particular, the interrupt configuration should be performed before to avoid loosing the first interrupt and locking the system. + +## Measurement results + +### Output data format + +The sensor determines periodically the accelerations for all axes that are enabled for measurement and produces output data with the selected output data rate (ODR). + +Raw **output data** (**raw data**) are given as 16-bit signed integer values in 2’s complement representation and are always left-aligned. The resolution depends on the selected operation mode and the selected full scale. For example, in low power mode with 8-bit resolution only the high byte is used. LIS3DH allows to select the following full scales: + +Full Scale | Driver symbol | Resolution 12 bit
        ```lis3dh_high_res``` | Resolution 10 bit
        ```lis3dh_normal``` | Resolution 8 bit
        ```lis3dh_low_power``` +---------------------:|:-----------:|-----------:|---------------:|-----: + ±2 g | ```lis3dh_scale_2_g``` | 1 mg | 4 mg | 16 mg + ±4 g | ```lis3dh_scale_4_g``` | 2 mg | 8 mg | 32 mg + ±8 g | ```lis3dh_scale_8_g``` | 4 mg | 16 mg | 64 mg +±16 g | ```lis3dh_scale_16_g``` | 12 mg | 48 mg | 192 mg + +By default, a full scale of ±2 g is used. Function ```lis3dh_set_scale``` can be used to change it. + +``` +lis3dh_set_scale(sensor, lis3dh_scale_4_g); +``` + +### Fetching output data + +To get the information whether new data are available, the user task can either use + +- the function ```lis3dh_new_data``` to check periodically whether new output data are available, or +- the data ready interrupt (DRDY) which is thrown as soon as new output data are available (see below). + +Last measurement results can then be fetched either + +- as raw data using function ```lis3dh_get_raw_data``` or +- as floating point values in g using function ```lis3dh_get_float_data```. + +It is recommended to use function ```lis3dh_get_float_data``` since it already converts measurement results to real values according to the selected full scale. + +``` +void user_task_periodic(void *pvParameters) +{ + lis3dh_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!lis3dh_new_data (sensor)) + continue; + + // fetch new data + if (lis3dh_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +``` + +**Please note:** +Functions ```lis3dh_get_float_data``` and ```lis3dh_get_raw_data``` always return the last available results. If these functions are called more often than measurements are taken, some measurement results are retrieved multiple times. If these functions are called too rarely, some measurement results will be lost. + +### High pass filtering + +LIS3DH provides embedded high-pass filtering capabilities to improve measurement results. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lis3dh.pdf) or [application note](http://www.st.com/resource/en/application_note/cd00290365.pdf) for more details. + +The high pass filter can independently apply to + +- the raw output data, +- the data used for click detection, and +- the data used for inertial interrupt generation like wake-up, free fall or 6D/4D orientation detection. + +The mode and the cutoff frequency of the high pass filter can be configured using function ```lis3dh_config_hpf```. Following HPF modes are available: + +Driver symbol | HPF mode +:--------------|:--------- +```lis3dh_hpf_normal``` | Normal mode +```lis3dh_hpf_reference``` | Reference mode +```lis3dh_hpf_autoreset``` | Auto-reset on interrupt + +For each output data rate (ODR), 4 different HPF cutoff frequencies can be used. Furthermore, a number of boolean parameters indicate to which data the HPF is applied. + +``` +... +// configure HPF +lis3dh_config_hpf (sensor, lis3dh_hpf_normal, 0, true, true, true, true); + +// reset the reference by dummy read +lis3dh_get_hpf_ref (sensor); +... +``` + +### FIFO + +In order to limit the rate at which the host processor has to fetch the data, the LIS3DH embeds a first-in first-out buffer (FIFO). This is in particular helpful at high output data rates. The FIFO buffer can work in four different modes and is able to store up to 32 accelerometer samples. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lis3dh.pdf) or [application note](http://www.st.com/resource/en/application_note/cd00290365.pdf) for more details. + +Driver symbol | FIFO mode +--------------|------------------------- +```lis3dh_bypass``` | Bypass mode (FIFO is not used) +```lis3dh_fifo``` | FIFO mode +```lis3dh_stream``` | Stream mode +```lis3dh_stream_to_fifo``` | Stream-to-FIFO mode + +The FIFO mode can be set using function ```lis3dh_set_fifo_mode```. This function takes three parameters + +- the FIFO mode, +- a threshold value which defines a watermark level, and +- an interrupt source that is used in Stream-to-FIFO mode. + +The watermark level is used by the sensor to set a watermark flag and to generate optionally an interrupt when the FIFO content exceeds this level. They can be used to gather a minimum number of axes acceleration samples with the sensor before the data are fetched as a single read operation from the sensor. + +``` +... +// clear FIFO +lis3dh_set_fifo_mode (sensor, lis3dh_bypass, 0, lis3dh_int1_signal); + +// activate FIFO mode +lis3dh_set_fifo_mode (sensor, lis3dh_stream, 10, lis3dh_int1_signal); +... +``` + +**Please note**: To clear the FIFO at any time, set the FIFO mode to ```lis3dh_bypass``` and back to the desired FIFO mode. + +To read data from the FIFO, simply use either + +- the function ```lis3dh_get_raw_data_fifo``` to all get raw output data stored in FIFO or +- the function ```lis3dh_get_float_data_fifo``` to get all data stored in FIFO and converted to real values in g. + +Both functions clear the FIFO and return the number of samples read from the FIFO. + +``` +void user_task_periodic (void *pvParameters) +{ + lis3dh_float_data_fifo_t data; + + while (1) + { + // execute task every 500 ms + vTaskDelay (500/portTICK_PERIOD_MS); + ... + // test for new data + if (!lis3dh_new_data (sensor)) + continue; + + // fetch data from fifo + uint8_t num = lis3dh_get_float_data_fifo (sensor, data); + + for (int i = 0; i < num; i++) + { + // do something with data[i] ... + } +} +``` + +## Interrupts + +The LIS3DH supports two dedicated interrupt signals **```INT1```** and **```INT2```** and three different types of interrupts: + +- **data** interrupts (data ready and FIFO status), +- **inertial event** interrupts (axis movement, wake-up, free fall, and 6D/4D orientation detection), and +- **click detection** interrupts. + +While inertial event interrupts and click detection interrupts can be configured for both interrupt signals, data ready and FIFO status interrupts can be configured only for interrupt signal ```INT1```. + +### Data interrupts (data ready and FIFO status) + +Following sources can generate an interrupt on signal ```INT1```: + +Interrupt source | Driver symbol +:-----------------|:------------- +Output data become ready to read | ```lis3dh_int_data_ready``` +FIFO content exceeds the watermark level | ```lis3dh_int_fifo_watermark``` +FIFO is completely filled | ```lis3dh_int_fifo_overrun``` + +Each of these interrupt sources can be enabled or disabled separately with function ```lis3dh_enable_int```. By default all interrupt sources are disabled. + +``` +lis3dh_enable_int (sensor, lis3dh_int_data_ready, lis3dh_int1_signal, true); +``` + +Whenever an interrupt is generated at interrupt signal ```INT1```, the function ```lis3dh_get_int_data_source``` can be used to determine the source of the interrupt. This function returns a data structure of type ```lis3dh_int_data_source_t``` that contain a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lis3dh_int_data_source_t data_src; + + // get the source of the interrupt on *INT1* signal + lis3dh_get_int_data_source (sensor, &data_src); + + // in case of data ready interrupt, get the results and do something with them + if (data_src.data_ready) + ... // read data + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_watermark || data_src.fifo_overrun) + ... // read FIFO data + ... +} +``` + +### Inertial event interrupts + +Inertial interrupt generators allow to generate interrupts when certain inertial event occures (event interrupts), that is, the acceleration of defined axes is higher or lower than a defined threshold. If activated, the acceleration of each axis is compared with a defined threshold to check whether it is below or above the threshold. The results of all activated comparisons are then combined OR or AND to generate the interrupt signal. + +The configuration of the threshold valid for all axes, the activated comparisons and the selected AND/OR combination allows to recognize special situations: + +- **Wake-up detection** refers the special condition that the acceleration measured along any axis is above the defined threshold (```lis3dh_wake_up```). +- **Free fall detection** refers the special condition that the acceleration measured along all the axes goes to zero (```lis3dh_free_fall```). +- **6D/4D orientation detection** refers to the special condition that the measured acceleration along certain axes is above and along the other axes is below the threshold which indicates a particular orientation (```lis3dh_6d_movement```, ```lis3dh_6d_position```, ```lis3dh_4d_movement```, ```lis3dh_4d_position```). + +Inertial event interrupts can be configured with the function ```lis3dh_get_int_event_config```. This function requires as parameters the configuration of type ```lis3dh_int_event_config_t``` and the interrupt generator to be used for inertial event interrupts. + +Inertial event interrupts have to be enabled or disabled using function ```lis3dh_enable_int```. The interrupt signal on which the interrupts are generated is given as parameter. + +For example, axis movement detection interrupt generated by inertial interrupt generator 2 on signal ```INT1``` could be configured as following: + +``` +lis3dh_int_event_config_t event_config; + +event_config.mode = lis3dh_wake_up; +event_config.threshold = 10; +event_config.x_low_enabled = false; +event_config.x_high_enabled = true; +event_config.y_low_enabled = false; +event_config.y_high_enabled = true; +event_config.z_low_enabled = false; +event_config.z_high_enabled = true; + +event_config.duration = 0; +event_config.latch = true; + +lis3dh_set_int_event_config (sensor, &event_config, lis3dh_int_event2_gen); +lis3dh_enable_int (sensor, lis3dh_int_event1, lis3dh_int1_signal, true); +``` + +The parameter of type ```lis3dh_int_event_config_t``` also configures + +- whether the interrupt should be latched until the interrupt source is read, and +- which time given in 1/ODR an interrupt condition has to be given before the interrupt is generated. + +As with data ready and FIFO status interrupts, function ```lis3dh_get_int_event_source``` can be used to determine the source of an inertial event interrupt whenever it is generated. This function returns a data structure of type ```lis3dh_int_event_source_t``` which contains a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lis3dh_int_data_source_t data_src; + lis3dh_int_event_source_t event_src; + + // get the source of the interrupt on *INT1* signal + lis3dh_get_int_data_source (sensor, &data_src); + lis3dh_get_int_event_source (sensor, &event_src, lis3dh_int_event2_gen); + + // in case of data ready interrupt, get the results and do something with them + if (data_src.data_ready) + ... // read data + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_watermark || data_src.fifo_overrun) + ... // read FIFO data + + // in case of inertial event interrupt + else if (event_src.active) + ... // read data + ... +} +``` + +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +**Please note** Activating all threshold comparisons and the OR combination (```lis3dh_wake_up```) is the most flexible way to deal with inertial event interrupts. Functions such as free fall detection and so on can then be realized by suitably combining the various interrupt sources by the user task. Following example realizes the free fall detection in user task. + +``` +lis3dh_int_event_config_t event_config; + +event_config.mode = lis3dh_wake_up; +event_config.threshold = 10; +event_config.x_low_enabled = true; +event_config.x_high_enabled = true; +event_config.y_low_enabled = true; +event_config.y_high_enabled = true; +event_config.z_low_enabled = true; +event_config.z_high_enabled = true; + +event_config.duration = 0; +event_config.latch = true; + +lis3dh_set_int_event_config (sensor, &event_config, lis3dh_int_event2_gen); +lis3dh_enable_int (sensor, lis3dh_int_event1, lis3dh_int1_signal, true); +``` + +``` +void int1_handler () +{ + lis3dh_int_event_source_t event_src; + + // get the source of the interrupt from interrupt generator 2 on *INT1* signal + lis3dh_get_int_event_source (sensor, &event_src, lis3dh_int_event2_gen); + + // test for free fall condition (all accelerations are below the threshold) + if (event_src.x_low && event_src.y_low && event_src.z_low) + ... // do something + ... +} + +``` + +### Click detection interrupts + +A sequence of acceleration values over time measured along certain axes can be used to detect single and double clicks. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/lis3dh.pdf) or [application note](http://www.st.com/resource/en/application_note/cd00290365.pdf) for more information. + +Click detection interrupts are configured using the ``` lis3dh_set_int_click_config``` function. This function requires the configuration of type ```lis3dh_int_click_config_t``` as parameter. The interrupt has to be activated or deactivated using the ```lis3dh_enable_int``` function with the interrupt signal on which the interrupts are generated as parameter. + +In following example, the single click detection for z-axis is enabled with a time limit of 1/ODR, a time latency of 1/ODR and a time window of 3/ODR. + +``` +lis3dh_int_click_config_t click_config; + +click_config.threshold = 10; +click_config.x_single = false; +click_config.x_double = false; +click_config.y_single = false; +click_config.y_double = false; +click_config.z_single = true; +click_config.z_double = false; +click_config.latch = true; +click_config.time_limit = 1; +click_config.time_latency = 1; +click_config.time_window = 3; + +lis3dh_set_int_click_config (sensor, &click_config); +lis3dh_enable_int (sensor, lis3dh_int_click, lis3dh_int1_signal, true); +``` + +Please refer the [application note](http://www.st.com/resource/en/application_note/cd00290365.pdf) for more information about the configuration parameters. + +As with other interrupts, the function ```lis3dh_get_int_click_source``` can be used to determine the source of the interrupt signal whenever it is generated. This function returns a data structure of type ```lis3dh_int_click_source_t``` that contains a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + lis3dh_int_click_source_t click_src; + + // get the source of the interrupt on *INT1* signal + lis3dh_get_int_click_source (sensor, &click_src); + + // detect single click along z-axis + if (click_src.z_click && click_src.s_click) + ... // do something + ... +} + +``` +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +### Interrupt signal properties + +By default, interrupt signals are high active. Using function ```lis3dh_config_int_signals```, the level of the interrupt signal can be changed. + +Driver symbol | Meaning +:-------------|:------- +```lis3dh_high_active``` | Interrupt signal is high active (default) +```lis3dh_low_active``` | Interrupt signal is low active + + +## Analog inputs and temperature sensor + +The LIS3DH sensor contains an auxiliary ADC with 3 separate dedicated inputs ADC1, ADC2, and ADC3. ADC3 can be connected to the internal temperatur sensor. The input range is 1200 ± 400 mV. The resolution of the A/D converter is 10 bit in normal and high-resolution mode, but only 8 bit in low-power mode. + +ADC inputs can be activated and deactivated (default) with function ```lis3dh_enable_adc```. If parameter ```temp``` is true, ADC3 is connected to the internal temperature sensor and provides the temperature in degrees. + +ADC sampling rate is the same the output data rate (ODR). Results are given as left-aligned 16-bit signed integer values in 2’s complement. Function ```lis3dh_get_adc``` can be used to get the results. + +## Low level functions + +The LIS3DH is a very complex and flexible sensor with a lot of features. It can be used for a big number of different use cases. Since it is quite impossible to implement a high level interface which is generic enough to cover all the functionality of the sensor for all different use cases, there are two low level interface functions that allow direct read and write access to the registers of the sensor. + +``` +bool lis3dh_reg_read (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +bool lis3dh_reg_write (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +``` + +**Please note** +These functions should only be used to do something special that is not covered by drivers's high level interface AND if you exactly know what you do and what it might affect. Please be aware that it might always affect the high level interface. + + +## Usage + +First, the hardware configuration has to be established. + +### Hardware configurations + +Following figure shows a possible hardware configuration for ESP8266 and ESP32 if I2C interface is used to connect the sensor. + +``` + +-----------------+ +----------+ + | ESP8266 / ESP32 | | LIS3DH | + | | | | + | GPIO 14 (SCL) >-----> SCL | + | GPIO 13 (SDA) <-----> SDA | + | GPIO 5 <------ INT1 | + | GPIO 4 <------ INT2 | + +-----------------+ +----------+ +``` + +If SPI interface is used, configuration for ESP8266 and ESP32 could look like following. + +``` + +-----------------+ +----------+ +-----------------+ +----------+ + | ESP8266 | | LIS3DH | | ESP32 | | LIS3DH | + | | | | | | | | + | GPIO 14 (SCK) ------> SCK | | GPIO 16 (SCK) ------> SCK | + | GPIO 13 (MOSI)------> SDI | | GPIO 17 (MOSI)------> SDI | + | GPIO 12 (MISO)<------ SDO | | GPIO 18 (MISO)<------ SDO | + | GPIO 2 (CS) ------> CS | | GPIO 19 (CS) ------> CS | + | GPIO 5 <------ INT1 | | GPIO 5 <------ INT1 | + | GPIO 4 <------ INT2 | | GPIO 5 <------ INT2 | + +-----------------+ +----------+ +-----------------+ +----------+ +``` + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface and interrupt settings have to be defined. In case ESP32 is used, the configuration could look like + +``` +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 +``` + +### Main program + +#### Initialization + +If I2C interfaces are used, they have to be initialized first. + +``` +i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); +``` + +SPI interface has only to be initialized explicitly on ESP32 platform to declare the GPIOs that are used for SPI interface. + +``` +spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); +``` + +Once the interfaces are initialized, function ```lis3dh_init_sensor``` has to be called for each LIS3DH sensor in order to initialize the sensor and to check its availability as well as its error state. This function returns a pointer to a sensor device data structure or NULL in case of error. + +The parameter *bus* specifies the ID of the I2C or SPI bus to which the sensor is connected. + +``` +static lis3dh_sensor_t* sensor; +``` + +For sensors connected to an I2C interface, a valid I2C slave address has to be defined as parameter *addr*. In that case parameter *cs* is ignored. + +``` +sensor = lis3dh_init_sensor (I2C_BUS, LIS3DH_I2C_ADDRESS_1, 0); + +``` + +If parameter *addr* is 0, the sensor is connected to a SPI bus. In that case, parameter *cs* defines the GPIO used as CS signal. + +``` +sensor = lis3dh_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + +``` + +The remaining of the program is independent on the communication interface. + +#### Configuring the sensor + +Optionally, you could wish to set some measurement parameters. For details see the sections above, the header file of the driver ```lis3dh.h```, and of course the data sheet of the sensor. + +#### Starting measurements + +As last step, the sensor mode has be set to start periodic measurement. The sensor mode can be changed anytime later. + +``` +... +// start periodic measurement with output data rate of 10 Hz +lis3dh_set_mode (sensor, lis3dh_odr_10, lis3dh_high_res, true, true, true); +... +``` + +#### Periodic user task + +Finally, a user task that uses the sensor has to be created. + +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + +The user task can use different approaches to fetch new data. Either new data are fetched periodically or interrupt signals are used when new data are available or a configured event happens. + +If new data are fetched **periodically** the implementation of the user task is quite simple and could look like following. + +``` +void user_task_periodic(void *pvParameters) +{ + lis3dh_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!lis3dh_new_data (sensor)) + continue; + + // fetch new data + if (lis3dh_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +... +// create a user task that fetches data from sensor periodically +xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); +``` + +The user task simply tests periodically with a rate higher than the output data rate (ODR) of the sensor whether new data are available. If new data are available, it fetches the data. + +#### Interrupt user task + +A different approach is to use one of the **interrupts** INT1 or INT2. In this case, the user has to implement an interrupt handler that either fetches the data directly or triggers a task, that is waiting to fetch the data. + +``` +static QueueHandle_t gpio_evt_queue = NULL; + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +// User task that fetches the sensor values + +void user_task_interrupt (void *pvParameters) +{ + uint32_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + // test for new data + if (!lis3dh_new_data (sensor)) + continue; + + // fetch new data + if (lis3dh_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } + } +} +... + +// create a task that is triggered only in case of interrupts to fetch the data + +xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); +... +``` + +In this example, there is + +- a task that is fetching data when it receives an event, and +- an interrupt handler that generates the event on interrupt. + +Finally, interrupt handlers have to be activated for the GPIOs which are connected to the interrupt signals. + +``` +// configure interrupt pins for *INT1* and *INT2* signals and set the interrupt handler +gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +``` + +Furthermore, the interrupts have to be enabled and configured in the LIS3DH sensor, see section **Interrupts** above. + +## Full Example + +``` +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // SPI interface is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // inertial event interrupts used (wake-up, free fall or 6D/4D orientation) +// #define INT_CLICK // click detection interrupts used + +#if defined(INT_DATA) || defined(INT_EVENT) || defined(INT_CLICK) +#define INT_USED +#endif + +/* -- includes ----------------------------------------------------- */ + +#include "lis3dh.h" + +/** -- platform dependent definitions ------------------------------ */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks --------------------------------------------------- */ + +static lis3dh_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data () +{ + #ifdef FIFO_MODE + + lis3dh_float_data_fifo_t fifo; + + if (lis3dh_new_data (sensor)) + { + uint8_t num = lis3dh_get_float_data_fifo (sensor, fifo); + + printf("%.3f LIS3DH num=%d\n", (double)sdk_system_get_time()*1e-3, num); + + for (int i=0; i < num; i++) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3DH (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + fifo[i].ax, fifo[i].ay, fifo[i].az); + } + + #else + + lis3dh_float_data_t data; + + if (lis3dh_new_data (sensor) && + lis3dh_get_float_data (sensor, &data)) + // max. full scale is +-16 g and best resolution is 1 mg, i.e. 5 digits + printf("%.3f LIS3DH (xyz)[g] ax=%+7.3f ay=%+7.3f az=%+7.3f\n", + (double)sdk_system_get_time()*1e-3, + data.ax, data.ay, data.az); + + #endif // FIFO_MODE +} + + +#ifdef INT_USED +/** + * In this case, any of the possible interrupts on interrupt signal *INT1* is + * used to fetch the data. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + lis3dh_int_data_source_t data_src = {}; + lis3dh_int_event_source_t event_src = {}; + lis3dh_int_click_source_t click_src = {}; + + // get the source of the interrupt and reset *INTx* signals + #ifdef INT_DATA + lis3dh_get_int_data_source (sensor, &data_src); + #endif + #ifdef INT_EVENT + lis3dh_get_int_event_source (sensor, &event_src, lis3dh_int_event1_gen); + #endif + #ifdef INT_CLICK + lis3dh_get_int_click_source (sensor, &click_src); + #endif + + // in case of DRDY interrupt or inertial event interrupt read one data sample + if (data_src.data_ready) + read_data (); + + // in case of FIFO interrupts read the whole FIFO + else if (data_src.fifo_watermark || data_src.fifo_overrun) + read_data (); + + // in case of event interrupt + else if (event_src.active) + { + printf("%.3f LIS3DH ", (double)sdk_system_get_time()*1e-3); + if (event_src.x_low) printf("x is lower than threshold\n"); + if (event_src.y_low) printf("y is lower than threshold\n"); + if (event_src.z_low) printf("z is lower than threshold\n"); + if (event_src.x_high) printf("x is higher than threshold\n"); + if (event_src.y_high) printf("y is higher than threshold\n"); + if (event_src.z_high) printf("z is higher than threshold\n"); + } + + // in case of click detection interrupt + else if (click_src.active) + printf("%.3f LIS3DH %s\n", (double)sdk_system_get_time()*1e-3, + click_src.s_click ? "single click" : "double click"); + } + } +} + +// Interrupt handler which resumes user_task_interrupt on interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this example, user task fetches the sensor values every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay(100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ------------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = lis3dh_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else + + // init all I2C bus interfaces at which LIS3DH sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address LIS3DH_I2C_ADDRESS_1 connected to I2C_BUS. + sensor = lis3dh_init_sensor (I2C_BUS, LIS3DH_I2C_ADDRESS_1, 0); + + #endif + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set polarity of INT signals if necessary + // lis3dh_config_int_signals (sensor, lis3dh_high_active); + + #ifdef INT_DATA + // enable data interrupts on INT1 (data ready or FIFO status interrupts) + // data ready and FIFO status interrupts must not be enabled at the same time + #ifdef FIFO_MODE + lis3dh_enable_int (sensor, lis3dh_int_fifo_overrun , lis3dh_int1_signal, true); + lis3dh_enable_int (sensor, lis3dh_int_fifo_watermark, lis3dh_int1_signal, true); + #else + lis3dh_enable_int (sensor, lis3dh_int_data_ready, lis3dh_int1_signal, true); + #endif // FIFO_MODE + #endif // INT_DATA + + #ifdef INT_EVENT + // enable data interrupts on INT1 + lis3dh_int_event_config_t event_config; + + event_config.mode = lis3dh_wake_up; + // event_config.mode = lis3dh_free_fall; + // event_config.mode = lis3dh_6d_movement; + // event_config.mode = lis3dh_6d_position; + // event_config.mode = lis3dh_4d_movement; + // event_config.mode = lis3dh_4d_position; + event_config.threshold = 10; + event_config.x_low_enabled = false; + event_config.x_high_enabled = true; + event_config.y_low_enabled = false; + event_config.y_high_enabled = true; + event_config.z_low_enabled = false; + event_config.z_high_enabled = true; + event_config.duration = 0; + event_config.latch = true; + + lis3dh_set_int_event_config (sensor, &event_config, lis3dh_int_event1_gen); + lis3dh_enable_int (sensor, lis3dh_int_event1, lis3dh_int1_signal, true); + #endif // INT_EVENT + + #ifdef INT_CLICK + // enable click interrupt on INT1 + lis3dh_int_click_config_t click_config; + + click_config.threshold = 10; + click_config.x_single = false; + click_config.x_double = false; + click_config.y_single = false; + click_config.y_double = false; + click_config.z_single = true; + click_config.z_double = false; + click_config.latch = true; + click_config.time_limit = 1; + click_config.time_latency = 1; + click_config.time_window = 3; + + lis3dh_set_int_click_config (sensor, &click_config); + lis3dh_enable_int (sensor, lis3dh_int_click, lis3dh_int1_signal, true); + #endif // INT_CLICK + + #ifdef FIFO_MODE + // clear FIFO and activate FIFO mode if needed + lis3dh_set_fifo_mode (sensor, lis3dh_bypass, 0, lis3dh_int1_signal); + lis3dh_set_fifo_mode (sensor, lis3dh_stream, 10, lis3dh_int1_signal); + #endif + + // configure HPF and reset the reference by dummy read + lis3dh_config_hpf (sensor, lis3dh_hpf_normal, 0, true, true, true, true); + lis3dh_get_hpf_ref (sensor); + + // enable ADC inputs and temperature sensor for ADC input 3 + lis3dh_enable_adc (sensor, true, true); + + // LAST STEP: Finally set scale and mode to start measurements + lis3dh_set_scale(sensor, lis3dh_scale_2_g); + lis3dh_set_mode (sensor, lis3dh_odr_10, lis3dh_high_res, true, true, true); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize LIS3DH sensor\n"); +} + +``` diff --git a/extras/lis3dh/component.mk b/extras/lis3dh/component.mk new file mode 100644 index 0000000..0b732ad --- /dev/null +++ b/extras/lis3dh/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/lis3dh + +# expected anyone using SHT3x driver includes it as 'lis3dh/lis3dh.h' +INC_DIRS += $(lis3dh_ROOT).. +INC_DIRS += $(lis3dh_ROOT) + +# args for passing into compile rule generation +lis3dh_SRC_DIR = $(lis3dh_ROOT) + +$(eval $(call component_compile_rules,lis3dh)) diff --git a/extras/lis3dh/lis3dh.c b/extras/lis3dh/lis3dh.c new file mode 100644 index 0000000..b9def12 --- /dev/null +++ b/extras/lis3dh/lis3dh.c @@ -0,0 +1,1274 @@ +/* + * Driver for LIS3DH 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The information provided is believed to be accurate and reliable. The + * copyright holder assumes no responsibility for the consequences of use + * of such information nor for any infringement of patents or other rights + * of third parties which may result from its use. No license is granted by + * implication or otherwise under any patent or patent rights of the copyright + * holder. + */ + +#include +#include + +#include "lis3dh.h" + +#if defined(LIS3DH_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "LIS3DH", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LIS3DH", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(LIS3DH_DEBUG_LEVEL_1) || defined(LIS3DH_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "LIS3DH", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "LIS3DH", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +// register addresses +#define LIS3DH_REG_STATUS_AUX 0x07 +#define LIS3DH_REG_OUT_ADC1_L 0x08 +#define LIS3DH_REG_OUT_ADC1_H 0x09 +#define LIS3DH_REG_OUT_ADC2_L 0x0a +#define LIS3DH_REG_OUT_ADC2_H 0x0b +#define LIS3DH_REG_OUT_ADC3_L 0x0c +#define LIS3DH_REG_OUT_ADC3_H 0x0d +#define LIS3DH_REG_INT_COUNTER 0x0e +#define LIS3DH_REG_WHO_AM_I 0x0f +#define LIS3DH_REG_TEMP_CFG 0x1f +#define LIS3DH_REG_CTRL1 0x20 +#define LIS3DH_REG_CTRL2 0x21 +#define LIS3DH_REG_CTRL3 0x22 +#define LIS3DH_REG_CTRL4 0x23 +#define LIS3DH_REG_CTRL5 0x24 +#define LIS3DH_REG_CTRL6 0x25 +#define LIS3DH_REG_REFERENCE 0x26 +#define LIS3DH_REG_STATUS 0x27 +#define LIS3DH_REG_OUT_X_L 0x28 +#define LIS3DH_REG_OUT_X_H 0x29 +#define LIS3DH_REG_OUT_Y_L 0x2a +#define LIS3DH_REG_OUT_Y_H 0x2b +#define LIS3DH_REG_OUT_Z_L 0x2c +#define LIS3DH_REG_OUT_Z_H 0x2d +#define LIS3DH_REG_FIFO_CTRL 0x2e +#define LIS3DH_REG_FIFO_SRC 0x2f +#define LIS3DH_REG_INT1_CFG 0x30 +#define LIS3DH_REG_INT1_SRC 0x31 +#define LIS3DH_REG_INT1_THS 0x32 +#define LIS3DH_REG_INT1_DUR 0x33 +#define LIS3DH_REG_INT2_CFG 0x34 +#define LIS3DH_REG_INT2_SRC 0x35 +#define LIS3DH_REG_INT2_THS 0x36 +#define LIS3DH_REG_INT2_DUR 0x37 +#define LIS3DH_REG_CLICK_CFG 0x38 +#define LIS3DH_REG_CLICK_SRC 0x39 +#define LIS3DH_REG_CLICK_THS 0x3a +#define LIS3DH_REG_TIME_LIMIT 0x3b +#define LIS3DH_REG_TIME_LATENCY 0x3c +#define LIS3DH_REG_TIME_WINDOW 0x3d + +// register structure definitions +struct lis3dh_reg_status +{ + uint8_t XDA :1; // STATUS<0> X axis new data available + uint8_t YDA :1; // STATUS<1> Y axis new data available + uint8_t ZDA :1; // STATUS<2> Z axis new data available + uint8_t ZYXDA :1; // STATUS<3> X, Y and Z axis new data available + uint8_t XOR :1; // STATUS<4> X axis data overrun + uint8_t YOR :1; // STATUS<5> Y axis data overrun + uint8_t ZOR :1; // STATUS<6> Z axis data overrun + uint8_t ZYXOR :1; // STATUS<7> X, Y and Z axis data overrun +}; + +#define LIS3DH_ANY_DATA_READY 0x0f // LIS3DH_REG_STATUS<3:0> + +struct lis3dh_reg_ctrl1 +{ + uint8_t Xen :1; // CTRL1<0> X axis enable + uint8_t Yen :1; // CTRL1<1> Y axis enable + uint8_t Zen :1; // CTRL1<2> Z axis enable + uint8_t LPen :1; // CTRL1<3> Low power mode enable + uint8_t ODR :4; // CTRL1<7:4> Data rate selection +}; + +struct lis3dh_reg_ctrl2 +{ + uint8_t HPIS1 :1; // CTRL2<0> HPF enabled for AOI on INT2 + uint8_t HPIS2 :1; // CTRL2<1> HPF enabled for AOI on INT2 + uint8_t HPCLICK :1; // CTRL2<2> HPF enabled for CLICK + uint8_t FDS :1; // CTRL2<3> Filter data selection + uint8_t HPCF :2; // CTRL2<5:4> HPF cutoff frequency + uint8_t HPM :2; // CTRL2<7:6> HPF mode +}; + +struct lis3dh_reg_ctrl3 +{ + uint8_t unused :1; // CTRL3<0> unused + uint8_t I1_OVERRUN :1; // CTRL3<1> FIFO Overrun interrupt on INT1 + uint8_t I1_WTM1 :1; // CTRL3<2> FIFO Watermark interrupt on INT1 + uint8_t IT_DRDY2 :1; // CTRL3<3> DRDY2 (ZYXDA) interrupt on INT1 + uint8_t IT_DRDY1 :1; // CTRL3<4> DRDY1 (321DA) interrupt on INT1 + uint8_t I1_AOI2 :1; // CTRL3<5> AOI2 interrupt on INT1 + uint8_t I1_AOI1 :1; // CTRL3<6> AOI1 interrupt on INT1 + uint8_t I1_CLICK :1; // CTRL3<7> CLICK interrupt on INT1 +}; + +struct lis3dh_reg_ctrl4 +{ + uint8_t SIM :1; // CTRL4<0> SPI serial interface selection + uint8_t ST :2; // CTRL4<2:1> Self test enable + uint8_t HR :1; // CTRL4<3> High resolution output mode + uint8_t FS :2; // CTRL4<5:4> Full scale selection + uint8_t BLE :1; // CTRL4<6> Big/litle endian data selection + uint8_t BDU :1; // CTRL4<7> Block data update +}; + +struct lis3dh_reg_ctrl5 +{ + uint8_t D4D_INT2 :1; // CTRL5<0> 4D detection enabled on INT1 + uint8_t LIR_INT2 :1; // CTRL5<1> Latch interrupt request on INT1 + uint8_t D4D_INT1 :1; // CTRL5<2> 4D detection enabled on INT2 + uint8_t LIR_INT1 :1; // CTRL5<3> Latch interrupt request on INT1 + uint8_t unused :2; // CTRL5<5:4> unused + uint8_t FIFO_EN :1; // CTRL5<6> FIFO enabled + uint8_t BOOT :1; // CTRL5<7> Reboot memory content +}; + +struct lis3dh_reg_ctrl6 +{ + uint8_t unused1 :1; // CTRL6<0> unused + uint8_t H_LACTIVE:1; // CTRL6<1> Interrupt polarity + uint8_t unused2 :1; // CTRL6<2> unused + uint8_t I2_ACT :1; // CTRL6<3> ? + uint8_t I2_BOOT :1; // CTRL6<4> ? + uint8_t I2_AOI2 :1; // CTRL6<5> AOI2 interrupt on INT1 + uint8_t I2_AOI1 :1; // CTRL6<6> AOI1 interrupt on INT1 + uint8_t I2_CLICK :1; // CTRL6<7> CLICK interrupt on INT2 +}; + +struct lis3dh_reg_fifo_ctrl +{ + uint8_t FTH :5; // FIFO_CTRL<4:0> FIFO threshold + uint8_t TR :1; // FIFO_CTRL<5> Trigger selection INT1 / INT2 + uint8_t FM :2; // FIFO_CTRL<7:6> FIFO mode +}; + +struct lis3dh_reg_fifo_src +{ + uint8_t FFS :5; // FIFO_SRC<4:0> FIFO samples stored + uint8_t EMPTY :1; // FIFO_SRC<5> FIFO is empty + uint8_t OVRN_FIFO :1; // FIFO_SRC<6> FIFO buffer full + uint8_t WTM :1; // FIFO_SRC<7> FIFO content exceeds watermark +}; + +struct lis3dh_reg_intx_cfg +{ + uint8_t XLIE :1; // INTx_CFG<0> X axis below threshold enabled + uint8_t XHIE :1; // INTx_CFG<1> X axis above threshold enabled + uint8_t YLIE :1; // INTx_CFG<2> Y axis below threshold enabled + uint8_t YHIE :1; // INTx_CFG<3> Y axis above threshold enabled + uint8_t ZLIE :1; // INTx_CFG<4> Z axis below threshold enabled + uint8_t ZHIE :1; // INTx_CFG<5> Z axis above threshold enabled + uint8_t SIXD :1; // INTx_CFG<6> 6D/4D orientation detecetion enabled + uint8_t AOI :1; // INTx_CFG<7> AND/OR combination of interrupt events +}; + +struct lis3dh_reg_intx_src +{ + uint8_t XL :1; // INTx_SRC<0> X axis below threshold enabled + uint8_t XH :1; // INTx_SRC<1> X axis above threshold enabled + uint8_t YL :1; // INTx_SRC<2> Y axis below threshold enabled + uint8_t YH :1; // INTx_SRC<3> Y axis above threshold enabled + uint8_t ZL :1; // INTx_SRC<4> Z axis below threshold enabled + uint8_t ZH :1; // INTx_SRC<5> Z axis above threshold enabled + uint8_t IA :1; // INTx_SRC<6> Interrupt active + uint8_t unused:1; // INTx_SRC<7> unused +}; + + +struct lis3dh_reg_click_cfg +{ + uint8_t XS :1; // CLICK_CFG<0> X axis single click enabled + uint8_t XD :1; // CLICK_CFG<1> X axis double click enabled + uint8_t YS :1; // CLICK_CFG<2> Y axis single click enabled + uint8_t YD :1; // CLICK_CFG<3> Y axis double click enabled + uint8_t ZS :1; // CLICK_CFG<4> Z axis single click enabled + uint8_t ZD :1; // CLICK_CFG<5> Z axis double click enabled + uint8_t unused:2; // CLICK_CFG<7:6> unused +}; + + +/** Forward declaration of functions for internal use */ + +static bool lis3dh_reset (lis3dh_sensor_t* dev); +static bool lis3dh_is_available(lis3dh_sensor_t* dev); + +static bool lis3dh_i2c_read (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3dh_i2c_write (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3dh_spi_read (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool lis3dh_spi_write (lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); + +#define msb_lsb_to_type(t,b,o) (t)(((t)b[o] << 8) | b[o+1]) +#define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) +#define lsb_to_type(t,b,o) (t)(b[o]) + +#define lis3dh_update_reg(dev,addr,type,elem,value) \ + { \ + struct type __reg; \ + if (!lis3dh_reg_read (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + __reg.elem = (value); \ + if (!lis3dh_reg_write (dev, (addr), (uint8_t*)&__reg, 1)) \ + return false; \ + } + +lis3dh_sensor_t* lis3dh_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs) +{ + lis3dh_sensor_t* dev; + + if ((dev = malloc (sizeof(lis3dh_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->cs = cs; + + dev->error_code = LIS3DH_OK; + dev->scale = lis3dh_scale_2_g; + dev->fifo_mode = lis3dh_bypass; + dev->fifo_first = true; + + // if addr==0 then SPI is used and has to be initialized + if (!addr && !spi_device_init (bus, cs)) + { + error_dev ("Could not initialize SPI interface.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // check availability of the sensor + if (!lis3dh_is_available (dev)) + { + error_dev ("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // reset the sensor + if (!lis3dh_reset(dev)) + { + error_dev ("Could not reset the sensor device.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + lis3dh_update_reg (dev, LIS3DH_REG_CTRL4, lis3dh_reg_ctrl4, FS, lis3dh_scale_2_g); + lis3dh_update_reg (dev, LIS3DH_REG_CTRL4, lis3dh_reg_ctrl4, BDU, 1); + + return dev; +} + +bool lis3dh_set_mode (lis3dh_sensor_t* dev, + lis3dh_odr_mode_t odr, lis3dh_resolution_t res, + bool x, bool y, bool z) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + dev->res = res; + + struct lis3dh_reg_ctrl1 reg; + uint8_t old_odr; + + // read current register values + if (!lis3dh_reg_read (dev, LIS3DH_REG_CTRL1, (uint8_t*)®, 1)) + return false; + + old_odr = reg.ODR; + + // set mode + reg.Xen = x; + reg.Yen = y; + reg.Zen = z; + reg.ODR = odr; + reg.LPen = (res == lis3dh_low_power); + + lis3dh_update_reg (dev, LIS3DH_REG_CTRL4, lis3dh_reg_ctrl4, + HR, (res == lis3dh_high_res)); + + if (!lis3dh_reg_write (dev, LIS3DH_REG_CTRL1, (uint8_t*)®, 1)) + return false; + + // if sensor was in power down mode it takes at least 100 ms to start in another mode + if (old_odr == lis3dh_power_down && odr != lis3dh_power_down) + vTaskDelay (15); + + return false; +} + + +bool lis3dh_set_scale (lis3dh_sensor_t* dev, lis3dh_scale_t scale) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + dev->scale = scale; + + // read CTRL4 register and write scale + lis3dh_update_reg (dev, LIS3DH_REG_CTRL4, lis3dh_reg_ctrl4, FS, scale); + + return true; +} + + +bool lis3dh_set_fifo_mode (lis3dh_sensor_t* dev, lis3dh_fifo_mode_t mode, + uint8_t thresh, lis3dh_int_signal_t trigger) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + dev->fifo_mode = mode; + + // read CTRL5 register and write FIFO_EN flag + lis3dh_update_reg (dev, LIS3DH_REG_CTRL5, lis3dh_reg_ctrl5, FIFO_EN, mode != lis3dh_bypass); + + struct lis3dh_reg_fifo_ctrl fifo_ctrl = { + .FTH = thresh, + .TR = trigger, + .FM = mode, + }; + + // write FIFO_CTRL register + if (!lis3dh_reg_write (dev, LIS3DH_REG_FIFO_CTRL, (uint8_t*)&fifo_ctrl, 1)) + return false; + + return true; +} + + +bool lis3dh_new_data (lis3dh_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + if (dev->fifo_mode == lis3dh_bypass) + { + struct lis3dh_reg_status status; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_STATUS, (uint8_t*)&status, 1)) + { + error_dev ("Could not get sensor status", __FUNCTION__, dev); + return false; + } + return status.ZYXDA; + } + else + { + struct lis3dh_reg_fifo_src fifo_src; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return false; + } + return !fifo_src.EMPTY; + } +} + +/** + * Scaling factors for the conversion of raw sensor data to floating point g + * values. Scaling factors are from mechanical characteristics in datasheet. + * + * scale/sensitivity resolution + * +-1g 1 mg/digit + * +-2g 2 mg/digit + * +-4g 4 mg/digit + * +-16g 12 mg/digit + */ +const static double LIS3DH_SCALES[4] = { 0.001, 0.002, 0.004, 0.012 }; + +bool lis3dh_get_float_data (lis3dh_sensor_t* dev, lis3dh_float_data_t* data) +{ + if (!dev || !data) return false; + + lis3dh_raw_data_t raw; + + if (!lis3dh_get_raw_data (dev, &raw)) + return false; + + data->ax = LIS3DH_SCALES[dev->scale] * (raw.ax >> 4); + data->ay = LIS3DH_SCALES[dev->scale] * (raw.ay >> 4); + data->az = LIS3DH_SCALES[dev->scale] * (raw.az >> 4); + + return true; +} + + +uint8_t lis3dh_get_float_data_fifo (lis3dh_sensor_t* dev, lis3dh_float_data_fifo_t data) +{ + if (!dev || !data) return false; + + lis3dh_raw_data_fifo_t raw; + + uint8_t num = lis3dh_get_raw_data_fifo (dev, raw); + + for (int i = 0; i < num; i++) + { + data[i].ax = LIS3DH_SCALES[dev->scale] * (raw[i].ax >> 4); + data[i].ay = LIS3DH_SCALES[dev->scale] * (raw[i].ay >> 4); + data[i].az = LIS3DH_SCALES[dev->scale] * (raw[i].az >> 4); + } + return num; +} + + +bool lis3dh_get_raw_data (lis3dh_sensor_t* dev, lis3dh_raw_data_t* raw) +{ + if (!dev || !raw) return false; + + dev->error_code = LIS3DH_OK; + + // abort if not in bypass mode + if (dev->fifo_mode != lis3dh_bypass) + { + dev->error_code = LIS3DH_SENSOR_IN_BYPASS_MODE; + error_dev ("Sensor is in FIFO mode, use lis3dh_get_*_data_fifo to get data", + __FUNCTION__, dev); + return false; + } + + // read raw data sample + if (!lis3dh_reg_read (dev, LIS3DH_REG_OUT_X_L, (uint8_t*)raw, 6)) + { + error_dev ("Could not get raw data sample", __FUNCTION__, dev); + dev->error_code |= LIS3DH_GET_RAW_DATA_FAILED; + return false; + } + + return true; +} + + +uint8_t lis3dh_get_raw_data_fifo (lis3dh_sensor_t* dev, lis3dh_raw_data_fifo_t raw) +{ + if (!dev) return 0; + + dev->error_code = LIS3DH_OK; + + // in bypass mode, use lis3dh_get_raw_data to return one sample + if (dev->fifo_mode == lis3dh_bypass) + return lis3dh_get_raw_data (dev, raw) ? 1 : 0; + + struct lis3dh_reg_fifo_src fifo_src; + + // read FIFO state + if (!lis3dh_reg_read (dev, LIS3DH_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return 0; + } + + // if nothing is in the FIFO, just return with 0 + if (fifo_src.EMPTY) + return 0; + + uint8_t samples = fifo_src.FFS + (fifo_src.OVRN_FIFO ? 1 : 0); + + // read samples from FIFO + for (int i = 0; i < samples; i++) + if (!lis3dh_reg_read (dev, LIS3DH_REG_OUT_X_L, (uint8_t*)&raw[i], 6)) + { + error_dev ("Could not get raw data samples", __FUNCTION__, dev); + dev->error_code |= LIS3DH_GET_RAW_DATA_FIFO_FAILED; + return i; + } + + lis3dh_reg_read (dev, LIS3DH_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1); + + // if FFS is not 0 after all samples read, ODR is higher than fetching rate + if (fifo_src.FFS) + { + dev->error_code = LIS3DH_ODR_TOO_HIGH; + error_dev ("New samples stored in FIFO while reading, " + "output data rate (ODR) too high", __FUNCTION__, dev); + return 0; + } + + if (dev->fifo_mode == lis3dh_fifo && samples == 32) + { + // clean FIFO (see app note) + lis3dh_update_reg (dev, LIS3DH_REG_FIFO_CTRL, lis3dh_reg_fifo_ctrl, FM, lis3dh_bypass); + lis3dh_update_reg (dev, LIS3DH_REG_FIFO_CTRL, lis3dh_reg_fifo_ctrl, FM, lis3dh_fifo); + } + + return samples; +} + + +bool lis3dh_enable_int (lis3dh_sensor_t* dev, + lis3dh_int_type_t type, + lis3dh_int_signal_t signal, bool value) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_ctrl3 ctrl3; + struct lis3dh_reg_ctrl6 ctrl6; + + uint8_t* reg = NULL; + uint8_t addr; + + // determine the addr of the register to change + if (type == lis3dh_int_data_ready || + type == lis3dh_int_fifo_watermark || + type == lis3dh_int_fifo_overrun) + { + reg = (uint8_t*)&ctrl3; + addr = LIS3DH_REG_CTRL3; + } + else if (signal == lis3dh_int1_signal) + { + reg = (uint8_t*)&ctrl3; + addr = LIS3DH_REG_CTRL3; + } + else + { + reg = (uint8_t*)&ctrl6; + addr = LIS3DH_REG_CTRL6; + } + + // read the register + if (!lis3dh_reg_read (dev, addr, reg, 1)) + { + error_dev ("Could not read interrupt control registers", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_INT_FAILED; + return false; + } + + // change the register + switch (type) + { + case lis3dh_int_data_ready: ctrl3.IT_DRDY1 = value; + break; + + case lis3dh_int_fifo_watermark: ctrl3.I1_WTM1 = value; + break; + + case lis3dh_int_fifo_overrun: ctrl3.I1_OVERRUN = value; + break; + + case lis3dh_int_event1: if (signal == lis3dh_int1_signal) + ctrl3.I1_AOI1 = value; + else + ctrl6.I2_AOI1 = value; + break; + + case lis3dh_int_event2: if (signal == lis3dh_int1_signal) + ctrl3.I1_AOI2 = value; + else + ctrl6.I2_AOI2 = value; + break; + + case lis3dh_int_click: if (signal == lis3dh_int1_signal) + ctrl3.I1_CLICK = value; + else + ctrl6.I2_CLICK = value; + break; + + default: dev->error_code = LIS3DH_WRONG_INT_TYPE; + error_dev ("Wrong interrupt type", __FUNCTION__, dev); + return false; + } + + if (!lis3dh_reg_write (dev, addr, reg, 1)) + { + error_dev ("Could not enable/disable interrupt", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_INT_FAILED; + return false; + } + + return true; +} + + +bool lis3dh_get_int_data_source (lis3dh_sensor_t* dev, + lis3dh_int_data_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_ctrl3 ctrl3; + struct lis3dh_reg_status status; + struct lis3dh_reg_fifo_src fifo_src; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_CTRL3 , (uint8_t*)&ctrl3 , 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_STATUS , (uint8_t*)&status , 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_FIFO_SRC, (uint8_t*)&fifo_src, 1)) + { + error_dev ("Could not read source of interrupt INT2 from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3DH_INT_SOURCE_FAILED; + return false; + } + + source->data_ready = status.ZYXDA & ctrl3.IT_DRDY1; + source->fifo_watermark = fifo_src.WTM & ctrl3.I1_WTM1; + source->fifo_overrun = fifo_src.OVRN_FIFO & ctrl3.I1_OVERRUN; + + return true; +} + + +bool lis3dh_set_int_event_config (lis3dh_sensor_t* dev, + lis3dh_int_event_config_t* config, + lis3dh_int_event_gen_t gen) +{ + if (!dev || !config) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_intx_cfg intx_cfg; + + intx_cfg.XLIE = config->x_low_enabled; + intx_cfg.XHIE = config->x_high_enabled; + + intx_cfg.YLIE = config->y_low_enabled; + intx_cfg.YHIE = config->y_high_enabled; + + intx_cfg.ZLIE = config->z_low_enabled; + intx_cfg.ZHIE = config->z_high_enabled; + + bool d4d_int = false; + + switch (config->mode) + { + case lis3dh_wake_up : intx_cfg.AOI = 0; intx_cfg.SIXD = 0; break; + case lis3dh_free_fall : intx_cfg.AOI = 1; intx_cfg.SIXD = 0; break; + + case lis3dh_4d_movement : d4d_int = true; + case lis3dh_6d_movement : intx_cfg.AOI = 0; intx_cfg.SIXD = 1; break; + + case lis3dh_4d_position : d4d_int = true; + case lis3dh_6d_position : intx_cfg.AOI = 1; intx_cfg.SIXD = 1; break; + } + + uint8_t intx_cfg_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_CFG : LIS3DH_REG_INT2_CFG; + uint8_t intx_ths_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_THS : LIS3DH_REG_INT2_THS; + uint8_t intx_dur_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_DUR : LIS3DH_REG_INT2_DUR; + + if (// write the thresholds to registers IG_THS_* + !lis3dh_reg_write (dev, intx_ths_addr, &config->threshold, 1) || + + // write duration configuration to IG_DURATION + !lis3dh_reg_write (dev, intx_dur_addr, &config->duration, 1) || + + // write INT1 configuration to IG_CFG + !lis3dh_reg_write (dev, intx_cfg_addr, (uint8_t*)&intx_cfg, 1)) + { + error_dev ("Could not configure interrupt INT1", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_INT_FAILED; + return false; + } + + if (gen == lis3dh_int_event1_gen) + { + lis3dh_update_reg (dev, LIS3DH_REG_CTRL5, lis3dh_reg_ctrl5, LIR_INT1, config->latch); + lis3dh_update_reg (dev, LIS3DH_REG_CTRL5, lis3dh_reg_ctrl5, D4D_INT1, d4d_int); + } + else + { + lis3dh_update_reg (dev, LIS3DH_REG_CTRL5, lis3dh_reg_ctrl5, LIR_INT2, config->latch); + lis3dh_update_reg (dev, LIS3DH_REG_CTRL5, lis3dh_reg_ctrl5, D4D_INT2, d4d_int); + } + + return true; +} + + +bool lis3dh_get_int_event_config (lis3dh_sensor_t* dev, + lis3dh_int_event_config_t* config, + lis3dh_int_event_gen_t gen) +{ + if (!dev || !config) return false; + + dev->error_code = LIS3DH_OK; + + uint8_t intx_cfg_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_CFG : LIS3DH_REG_INT2_CFG; + uint8_t intx_ths_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_THS : LIS3DH_REG_INT2_THS; + uint8_t intx_dur_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_DUR : LIS3DH_REG_INT2_DUR; + + struct lis3dh_reg_intx_cfg intx_cfg; + struct lis3dh_reg_ctrl5 ctrl5; + + if (!lis3dh_reg_read (dev, intx_cfg_addr, (uint8_t*)&intx_cfg, 1) || + !lis3dh_reg_read (dev, intx_ths_addr, (uint8_t*)&config->threshold, 1) || + !lis3dh_reg_read (dev, intx_dur_addr, (uint8_t*)&config->duration, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_CTRL5, (uint8_t*)&ctrl5, 1)) + { + error_dev ("Could not read interrupt configuration from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_INT_FAILED; + return false; + } + + config->x_low_enabled = intx_cfg.XLIE; + config->x_high_enabled = intx_cfg.XHIE; + + config->y_low_enabled = intx_cfg.YLIE; + config->y_high_enabled = intx_cfg.YHIE; + + config->z_low_enabled = intx_cfg.ZLIE; + config->z_high_enabled = intx_cfg.ZHIE; + + bool d4d_int = false; + + if (gen == lis3dh_int_event1_gen) + { + config->latch = ctrl5.LIR_INT1; + d4d_int = ctrl5.D4D_INT1; + } + else + { + config->latch = ctrl5.LIR_INT2; + d4d_int = ctrl5.D4D_INT2; + } + + if (intx_cfg.AOI) + { + if (intx_cfg.SIXD && d4d_int) + config->mode = lis3dh_4d_position; + else if (intx_cfg.SIXD && !d4d_int) + config->mode = lis3dh_6d_position; + else + config->mode = lis3dh_free_fall; + } + else + { + if (intx_cfg.SIXD && d4d_int) + config->mode = lis3dh_4d_movement; + else if (intx_cfg.SIXD && !d4d_int) + config->mode = lis3dh_6d_movement; + else + config->mode = lis3dh_wake_up; + } + + return true; +} + + +bool lis3dh_get_int_event_source (lis3dh_sensor_t* dev, + lis3dh_int_event_source_t* source, + lis3dh_int_event_gen_t gen) +{ + if (!dev || !source) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_intx_cfg intx_cfg; + struct lis3dh_reg_intx_src intx_src; + + uint8_t intx_cfg_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_CFG : LIS3DH_REG_INT2_CFG; + uint8_t intx_src_addr = (gen == lis3dh_int_event1_gen) ? LIS3DH_REG_INT1_SRC : LIS3DH_REG_INT2_SRC; + + if (!lis3dh_reg_read (dev, intx_src_addr, (uint8_t*)&intx_src, 1) || + !lis3dh_reg_read (dev, intx_cfg_addr, (uint8_t*)&intx_cfg, 1)) + { + error_dev ("Could not read source of interrupt INT1/INT2 from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3DH_INT_SOURCE_FAILED; + return false; + } + + source->active = intx_src.IA; + source->x_low = intx_src.XL & intx_cfg.XLIE; + source->x_high = intx_src.XH & intx_cfg.XHIE; + source->y_low = intx_src.YL & intx_cfg.YLIE; + source->y_high = intx_src.YH & intx_cfg.YHIE; + source->z_low = intx_src.ZL & intx_cfg.ZLIE; + source->z_high = intx_src.ZH & intx_cfg.ZHIE; + + return true; +} + + +bool lis3dh_set_int_click_config (lis3dh_sensor_t* dev, + lis3dh_int_click_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_click_cfg click_cfg; + + click_cfg.XS = config->x_single; + click_cfg.XD = config->x_double; + + click_cfg.YS = config->y_single; + click_cfg.YD = config->y_double; + + click_cfg.ZS = config->z_single; + click_cfg.ZD = config->z_double; + + uint8_t click_ths = config->threshold | ((config->latch) ? 0x80 : 0x00); + + if (!lis3dh_reg_write (dev, LIS3DH_REG_CLICK_CFG , (uint8_t*)&click_cfg, 1) || + !lis3dh_reg_write (dev, LIS3DH_REG_CLICK_THS , (uint8_t*)&click_ths, 1) || + !lis3dh_reg_write (dev, LIS3DH_REG_TIME_LIMIT , (uint8_t*)&config->time_limit, 1) || + !lis3dh_reg_write (dev, LIS3DH_REG_TIME_LATENCY, (uint8_t*)&config->time_latency, 1) || + !lis3dh_reg_write (dev, LIS3DH_REG_TIME_WINDOW , (uint8_t*)&config->time_window, 1)) + { + error_dev ("Could not configure click detection interrupt", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_CLICK_FAILED; + return false; + } + + return true; +} + +bool lis3dh_get_int_click_config (lis3dh_sensor_t* dev, + lis3dh_int_click_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_click_cfg click_cfg; + uint8_t click_ths; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_CLICK_CFG , (uint8_t*)&click_cfg, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_CLICK_THS , (uint8_t*)&click_ths, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_TIME_LIMIT , (uint8_t*)&config->time_limit, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_TIME_LATENCY, (uint8_t*)&config->time_latency, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_TIME_WINDOW , (uint8_t*)&config->time_window, 1)) + { + error_dev ("Could not configure click detection interrupt", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_CLICK_FAILED; + return false; + } + + config->x_single = click_cfg.XS; + config->x_double = click_cfg.XD; + + config->y_single = click_cfg.YS; + config->y_double = click_cfg.YD; + + config->z_single = click_cfg.ZS; + config->z_double = click_cfg.ZD; + + config->threshold= click_ths & 0x7f; + config->latch = click_ths & 0x80; + + return true; +} + +bool lis3dh_get_int_click_source (lis3dh_sensor_t* dev, + lis3dh_int_click_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = LIS3DH_OK; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_CLICK_SRC, (uint8_t*)source, 1)) + { + error_dev ("Could not read source of click interrupt from sensor", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CLICK_SOURCE_FAILED; + return false; + } + + return true; +} + + + +bool lis3dh_config_int_signals (lis3dh_sensor_t* dev, lis3dh_int_signal_level_t level) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + lis3dh_update_reg (dev, LIS3DH_REG_CTRL6, lis3dh_reg_ctrl6, H_LACTIVE, level); + + return true; +} + + +bool lis3dh_config_hpf (lis3dh_sensor_t* dev, + lis3dh_hpf_mode_t mode, uint8_t cutoff, + bool data, bool click, bool int1, bool int2) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + struct lis3dh_reg_ctrl2 reg; + + reg.HPM = mode; + reg.HPCF = cutoff; + reg.FDS = data; + reg.HPCLICK = click; + reg.HPIS1 = int1; + reg.HPIS2 = int2; + + if (!lis3dh_reg_write (dev, LIS3DH_REG_CTRL2, (uint8_t*)®, 1)) + { + error_dev ("Could not configure high pass filter", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_HPF_FAILED; + return false; + } + + return true; +} + + +bool lis3dh_set_hpf_ref (lis3dh_sensor_t* dev, int8_t ref) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + if (!lis3dh_reg_write (dev, LIS3DH_REG_REFERENCE, (uint8_t*)&ref, 1)) + { + error_dev ("Could not set high pass filter reference", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_HPF_FAILED; + return false; + } + + return true; +} + + +int8_t lis3dh_get_hpf_ref (lis3dh_sensor_t* dev) +{ + if (!dev) return 0; + + dev->error_code = LIS3DH_OK; + + int8_t ref; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_REFERENCE, (uint8_t*)&ref, 1)) + { + error_dev ("Could not get high pass filter reference", __FUNCTION__, dev); + dev->error_code |= LIS3DH_CONFIG_HPF_FAILED; + return 0; + } + + return ref; +} + +int8_t lis3dh_enable_adc (lis3dh_sensor_t* dev, bool adc, bool tmp) +{ + if (!dev) return 0; + + dev->error_code = LIS3DH_OK; + + uint8_t reg = 0; + + reg |= (adc) ? 0x80 : 0; + reg |= (tmp) ? 0x40 : 0; + + return lis3dh_reg_write (dev, LIS3DH_REG_TEMP_CFG, (uint8_t*)®, 1); +} + + +bool lis3dh_get_adc (lis3dh_sensor_t* dev, + uint16_t* adc1, uint16_t* adc2, uint16_t* adc3) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + uint8_t data[6]; + uint8_t temp_cfg; + struct lis3dh_reg_ctrl1 ctrl1; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_OUT_ADC1_L, data, 6) || + !lis3dh_reg_read (dev, LIS3DH_REG_CTRL1, (uint8_t*)&ctrl1, 1) || + !lis3dh_reg_read (dev, LIS3DH_REG_TEMP_CFG, &temp_cfg, 1)) + { + error_dev ("Could not get adc data", __FUNCTION__, dev); + dev->error_code |= LIS3DH_GET_ADC_DATA_FAILED; + return false; + } + + if (adc1) *adc1 = lsb_msb_to_type ( int16_t, data, 0) >> (ctrl1.LPen ? 8 : 6); + if (adc2) *adc2 = lsb_msb_to_type ( int16_t, data, 2) >> (ctrl1.LPen ? 8 : 6); + + // temperature is always 8 bit + if (adc3 && temp_cfg & 0x40) + *adc3 = (lsb_msb_to_type ( int16_t, data, 4) >> 8) + 25; + else if (adc3) + *adc3 = lsb_msb_to_type ( int16_t, data, 4) >> (ctrl1.LPen ? 8 : 6); + + return true; +} + + +/** Functions for internal use only */ + +/** + * @brief Check the chip ID to test whether sensor is available + */ +static bool lis3dh_is_available (lis3dh_sensor_t* dev) +{ + uint8_t chip_id; + + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + if (!lis3dh_reg_read (dev, LIS3DH_REG_WHO_AM_I, &chip_id, 1)) + return false; + + if (chip_id != LIS3DH_CHIP_ID) + { + error_dev ("Chip id %02x is wrong, should be %02x.", + __FUNCTION__, dev, chip_id, LIS3DH_CHIP_ID); + dev->error_code = LIS3DH_WRONG_CHIP_ID; + return false; + } + + return true; +} + +static bool lis3dh_reset (lis3dh_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = LIS3DH_OK; + + uint8_t reg[8] = { 0 }; + + // initialize sensor completely including setting in power down mode + lis3dh_reg_write (dev, LIS3DH_REG_TEMP_CFG , reg, 8); + lis3dh_reg_write (dev, LIS3DH_REG_FIFO_CTRL, reg, 1); + lis3dh_reg_write (dev, LIS3DH_REG_INT1_CFG , reg, 1); + lis3dh_reg_write (dev, LIS3DH_REG_INT1_THS , reg, 2); + lis3dh_reg_write (dev, LIS3DH_REG_INT2_CFG , reg, 1); + lis3dh_reg_write (dev, LIS3DH_REG_INT2_THS , reg, 2); + lis3dh_reg_write (dev, LIS3DH_REG_CLICK_CFG, reg, 1); + lis3dh_reg_write (dev, LIS3DH_REG_CLICK_THS, reg, 4); + + return true; +} + + +bool lis3dh_reg_read(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lis3dh_i2c_read (dev, reg, data, len) + : lis3dh_spi_read (dev, reg, data, len); +} + + +bool lis3dh_reg_write(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? lis3dh_i2c_write (dev, reg, data, len) + : lis3dh_spi_write (dev, reg, data, len); +} + + +#define LIS3DH_SPI_BUF_SIZE 64 // SPI register data buffer size of ESP866 + +#define LIS3DH_SPI_READ_FLAG 0x80 +#define LIS3DH_SPI_WRITE_FLAG 0x00 +#define LIS3DH_SPI_AUTO_INC_FLAG 0x40 + +static bool lis3dh_spi_read(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + if (len >= LIS3DH_SPI_BUF_SIZE) + { + dev->error_code |= LIS3DH_SPI_BUFFER_OVERFLOW; + error_dev ("Error on read from SPI slave on bus 1. Tried to transfer " + "more than %d byte in one read operation.", + __FUNCTION__, dev, LIS3DH_SPI_BUF_SIZE); + return false; + } + + uint8_t addr = (reg & 0x3f) | LIS3DH_SPI_READ_FLAG | LIS3DH_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LIS3DH_SPI_BUF_SIZE]; + static uint8_t miso[LIS3DH_SPI_BUF_SIZE]; + + memset (mosi, 0xff, LIS3DH_SPI_BUF_SIZE); + memset (miso, 0xff, LIS3DH_SPI_BUF_SIZE); + + mosi[0] = addr; + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, miso, len+1)) + { + error_dev ("Could not read data from SPI", __FUNCTION__, dev); + dev->error_code |= LIS3DH_SPI_READ_FAILED; + return false; + } + + // shift data one by left, first byte received while sending register address is invalid + for (int i=0; i < len; i++) + data[i] = miso[i+1]; + + #ifdef LIS3DH_DEBUG_LEVEL_2 + printf("LIS3DH %s: read the following bytes from reg %02x: ", __FUNCTION__, reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); + #endif + + return true; +} + + +static bool lis3dh_spi_write(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + uint8_t addr = (reg & 0x3f) | LIS3DH_SPI_WRITE_FLAG | LIS3DH_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[LIS3DH_SPI_BUF_SIZE]; + + if (len >= LIS3DH_SPI_BUF_SIZE) + { + dev->error_code |= LIS3DH_SPI_BUFFER_OVERFLOW; + error_dev ("Error on write to SPI slave on bus 1. Tried to transfer more" + "than %d byte in one write operation.", + __FUNCTION__, dev, LIS3DH_SPI_BUF_SIZE); + + return false; + } + + reg &= 0x7f; + + // first byte in output is the register address + mosi[0] = addr; + + // shift data one byte right, first byte in output is the register address + for (int i = 0; i < len; i++) + mosi[i+1] = data[i]; + + #ifdef LIS3DH_DEBUG_LEVEL_2 + printf("LIS3DH %s: Write the following bytes to reg %02x: ", __FUNCTION__, reg); + for (int i = 1; i < len+1; i++) + printf("%02x ", mosi[i]); + printf("\n"); + #endif + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, NULL, len+1)) + { + error_dev ("Could not write data to SPI.", __FUNCTION__, dev); + dev->error_code |= LIS3DH_SPI_WRITE_FAILED; + return false; + } + + return true; +} + + +#define I2C_AUTO_INCREMENT (0x80) + +static bool lis3dh_i2c_read(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LIS3DH_I2C_BUSY : LIS3DH_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LIS3DH_DEBUG_LEVEL_2 + printf("LIS3DH %s: Read following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool lis3dh_i2c_write(lis3dh_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? LIS3DH_I2C_BUSY : LIS3DH_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef LIS3DH_DEBUG_LEVEL_2 + printf("LIS3DH %s: Wrote the following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} diff --git a/extras/lis3dh/lis3dh.h b/extras/lis3dh/lis3dh.h new file mode 100644 index 0000000..c1fd52e --- /dev/null +++ b/extras/lis3dh/lis3dh.h @@ -0,0 +1,456 @@ +/** + * Driver for LIS3DH 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LIS3DH_H__ +#define __LIS3DH_H__ + +// Uncomment one of the following defines to enable debug output +// #define LIS3DH_DEBUG_LEVEL_1 // only error messages +// #define LIS3DH_DEBUG_LEVEL_2 // debug and error messages + +// LIS3DH addresses (also used for LIS2DH, LIS2DH12 and LIS2DE12) +#define LIS3DH_I2C_ADDRESS_1 0x18 // SDO pin is low +#define LIS3DH_I2C_ADDRESS_2 0x19 // SDO pin is high + +// LIS3DE addresse (also used for LIS2DE) +#define LIS3DE_I2C_ADDRESS_1 0x28 // SDO pin is low +#define LIS3DE_I2C_ADDRESS_2 0x29 // SDO pin is high + +// LIS3DH chip id +#define LIS3DH_CHIP_ID 0x33 // LIS3DH_REG_WHO_AM_I<7:0> + +// Definition of error codes +#define LIS3DH_OK 0 +#define LIS3DH_NOK -1 + +#define LIS3DH_INT_ERROR_MASK 0x000f +#define LIS3DH_DRV_ERROR_MASK 0xfff0 + +// Error codes for I2C and SPI interfaces ORed with LIS3DH driver error codes +#define LIS3DH_I2C_READ_FAILED 1 +#define LIS3DH_I2C_WRITE_FAILED 2 +#define LIS3DH_I2C_BUSY 3 +#define LIS3DH_SPI_WRITE_FAILED 4 +#define LIS3DH_SPI_READ_FAILED 5 +#define LIS3DH_SPI_BUFFER_OVERFLOW 6 + +// LIS3DH driver error codes ORed with error codes for I2C and SPI interfaces +#define LIS3DH_WRONG_CHIP_ID ( 1 << 8) +#define LIS3DH_WRONG_BANDWIDTH ( 2 << 8) +#define LIS3DH_GET_RAW_DATA_FAILED ( 3 << 8) +#define LIS3DH_GET_RAW_DATA_FIFO_FAILED ( 4 << 8) +#define LIS3DH_WRONG_INT_TYPE ( 5 << 8) +#define LIS3DH_CONFIG_INT_SIGNALS_FAILED ( 6 << 8) +#define LIS3DH_CONFIG_INT_FAILED ( 7 << 8) +#define LIS3DH_INT_SOURCE_FAILED ( 8 << 8) +#define LIS3DH_CONFIG_HPF_FAILED ( 9 << 8) +#define LIS3DH_ENABLE_HPF_FAILED (10 << 8) +#define LIS3DH_CONFIG_CLICK_FAILED (11 << 8) +#define LIS3DH_CLICK_SOURCE_FAILED (12 << 8) +#define LIS3DH_GET_ADC_DATA_FAILED (13 << 8) +#define LIS3DH_SENSOR_IN_BYPASS_MODE (14 << 8) +#define LIS3DH_SENSOR_IN_FIFO_MODE (15 << 8) +#define LIS3DH_ODR_TOO_HIGH (16 << 8) + +#include "lis3dh_platform.h" +#include "lis3dh_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Initialize the sensor + * + * Reset the sensor and switch to power down mode. All registers are reset to + * default values. FIFO is cleared. + * + * @param bus I2C or SPI bus at which LIS3DH sensor is connected + * @param addr I2C addr of the LIS3DH sensor, 0 for using SPI + * @param cs SPI CS GPIO, ignored for I2C + * @return pointer to sensor data structure, or NULL on error + */ +lis3dh_sensor_t* lis3dh_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs); + + +/** + * @brief Set sensor mode + * + * @param dev pointer to the sensor device data structure + * @param odr sensor output data rate (ODR) + * @param res sensor resolution + * @param x true enable x-axis, false disable x-axis + * @param y true enable y-axis, false disable y-axis + * @param z true enable z-axis, false disable z-axis + * @return true on success, false on error + */ +bool lis3dh_set_mode (lis3dh_sensor_t* dev, + lis3dh_odr_mode_t odr, lis3dh_resolution_t res, + bool x, bool y, bool z); + + +/** + * @brief Set scale (full scale range) + * + * @param dev pointer to the sensor device data structure + * @param scale full range scale + * @return true on success, false on error + */ +bool lis3dh_set_scale (lis3dh_sensor_t* dev, lis3dh_scale_t scale); + + +/** + * @brief Set FIFO mode + * + * FIFO watermark can be used to generate an interrupt when FIFO content + * exceeds the value. It is ignored in bypass mode. + * + * + * @param dev pointer to the sensor device data structure + * @param mode FIFO mode + * @param thresh FIFO watermark (ignored in bypass mode) + * @param trigger interrupt signal used as trigger (only in Stream-to-FIFO) + * @return true on success, false on error + */ +bool lis3dh_set_fifo_mode (lis3dh_sensor_t* dev, lis3dh_fifo_mode_t mode, + uint8_t thresh, lis3dh_int_signal_t trigger); + + +/** + * @brief Test whether new data samples are available + * + * @param dev pointer to the sensor device data structure + * @return true on new data, otherwise false + */ +bool lis3dh_new_data (lis3dh_sensor_t* dev); + + +/** + * @brief Get one sample of sensor data as floating point values (unit g) + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *lis3dh_get_float_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param data pointer to float data structure filled with g values + * @return true on success, false on error + */ +bool lis3dh_get_float_data (lis3dh_sensor_t* dev, + lis3dh_float_data_t* data); + + +/** + * @brief Get all samples of sensor data stored in the FIFO (unit g) + * + * In bypass mode, it returns only one sensor data sample. + * + * @param dev pointer to the sensor device data structure + * @param data array of 32 float data structures filled with g values + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t lis3dh_get_float_data_fifo (lis3dh_sensor_t* dev, + lis3dh_float_data_fifo_t data); + + +/** + * @brief Get one sample of raw sensor data as 16 bit two's complements + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *lis3dh_get_raw_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param raw pointer to raw data structure filled with values + * @return true on success, false on error + */ +bool lis3dh_get_raw_data (lis3dh_sensor_t* dev, lis3dh_raw_data_t* raw); + + +/** + * @brief Get all samples of raw sensor data stored in the FIFO + * + * In bypass mode, it returns only one raw data sample. + * + * @param dev pointer to the sensor device data structure + * @param raw array of 32 raw data structures + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t lis3dh_get_raw_data_fifo (lis3dh_sensor_t* dev, + lis3dh_raw_data_fifo_t raw); + + +/** + * @brief Enable / disable an interrupt on signal INT1 or INT2 + * + * @param dev pointer to the sensor device data structure + * @param type interrupt to be enabled or disabled + * @param signal interrupt signal that is activated for the interrupt + * @param value true to enable or false to disable the interrupt + * @return true on success, false on error + */ +bool lis3dh_enable_int (lis3dh_sensor_t* dev, + lis3dh_int_type_t type, + lis3dh_int_signal_t signal, bool value); + + +/** + * @brief Get the source of data ready and FIFO interrupts on INT1 + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lis3dh_get_int_data_source (lis3dh_sensor_t* dev, + lis3dh_int_data_source_t* source); + + +/** + * @brief Set the configuration of an inertial event interrupt generator + * + * Inertial interrupt generators produce interrupts when certain inertial event + * occures (event interrupts), that is, the acceleration of defined axes is + * higher or lower than a defined threshold and one of the following event is + * recognized: axis movement / wake up, free fall, 6D/4D orientation detection. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lis3dh_set_int_event_config (lis3dh_sensor_t* dev, + lis3dh_int_event_config_t* config, + lis3dh_int_event_gen_t gen); + + +/** + * @brief Get the configuration of an inertial event interrupt generator + * + * Inertial interrupt generators produce interrupts when certain inertial event + * occures (event interrupts), that is, the acceleration of defined axes is + * higher or lower than a defined threshold and one of the following event is + * recognized: axis movement / wake up, free fall, 6D/4D orientation detection. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lis3dh_get_int_event_config (lis3dh_sensor_t* dev, + lis3dh_int_event_config_t* config, + lis3dh_int_event_gen_t gen); + + +/** + * @brief Get the source of an inertial event interrupt INT1/INT2 + * + * Returns a byte with flags that indicate the event which triggered + * the interrupt signal (see INTx_SRC register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source data structure + * @param gen interrupt generator to which the function is applied + * @return true on success, false on error + */ +bool lis3dh_get_int_event_source (lis3dh_sensor_t* dev, + lis3dh_int_event_source_t* source, + lis3dh_int_event_gen_t gen); + + +/** + * @brief Set the configuration of the click detection interrupt generator + * + * Set the configuration for interrupts that are generated when single or + * double clicks are detected. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lis3dh_set_int_click_config (lis3dh_sensor_t* dev, + lis3dh_int_click_config_t* config); + +/** + * @brief Get the configuration of the click detection interrupt generator + * + * Set the configuration for interrupts that are generated when single or + * double clicks are detected. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool lis3dh_get_int_click_config (lis3dh_sensor_t* dev, + lis3dh_int_click_config_t* config); + + +/** + * @brief Get the source of the click detection interrupt on signal INT1/INT2 + * + * Returns a byte with flags that indicate the activity which triggered + * the interrupt signal (see CLICK_SRC register in datasheet for details) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool lis3dh_get_int_click_source (lis3dh_sensor_t* dev, + lis3dh_int_click_source_t* source); + + +/** + * @brief Set signal configuration for INT1 and INT2 signals + * + * @param dev pointer to the sensor device data structure + * @param level define interrupt signal as low or high active + * @return true on success, false on error + */ +bool lis3dh_config_int_signals (lis3dh_sensor_t* dev, + lis3dh_int_signal_level_t level); + + +/** + * @brief Config HPF (high pass filter) + * + * @param dev pointer to the sensor device data structure + * @param mode filter mode + * @param cutoff filter cutoff frequency (depends on ODR) [0 ... 3] + * @param data if true, use filtered data as sensor output + * @param click if true, use filtered data for CLICK function + * @param int1 if true, use filtered data for interrupt INT1 generation + * @param int2 if true, use filtered data for interrupt INT2 generation + * @return true on success, false on error + */ +bool lis3dh_config_hpf (lis3dh_sensor_t* dev, + lis3dh_hpf_mode_t mode, uint8_t cutoff, + bool data, bool click, bool int1, bool int2); + + +/** + * @brief Set HPF (high pass filter) reference + * + * Used to set the reference of HPF in reference mode *lis3dh_hpf_reference*. + * Used to reset the HPF in autoreset mode *lis3dh_hpf_autoreset*. + * Reference is given as two's complement. + * + * @param dev pointer to the sensor device data structure + * @param ref reference *lis3dh_hpf_reference* mode, otherwise ignored + * @return true on success, false on error + */ +bool lis3dh_set_hpf_ref (lis3dh_sensor_t* dev, int8_t ref); + + +/** + * @brief Get HPF (high pass filter) reference + * + * Used to reset the HPF in normal mode *lis3dh_hpf_normal*. + * + * @param dev pointer to the sensor device data structure + * @return HPF reference as two's complement + */ +int8_t lis3dh_get_hpf_ref (lis3dh_sensor_t* dev); + +/** + * @brief Enable / disable ADC or temperature sensor + * + * @param dev pointer to the sensor device data structure + * @param enable if true, ADC inputs are enabled + * @param temp if true, ADC input 3 is the output of temperature sensor + * @return true on success, false on error + */ +int8_t lis3dh_enable_adc (lis3dh_sensor_t* dev, bool enable, bool temp); + + +/** + * @brief Get ADC input or temperature + * + * @param dev pointer to the sensor device data structure + * @param adc1 ADC input 1 + * @param adc2 ADC input 2 + * @param adc3 ADC input 3 or temperature in degree if enabled + * @return true on success, false on error + */ +bool lis3dh_get_adc (lis3dh_sensor_t* dev, + uint16_t* adc1, uint16_t* adc2, uint16_t* adc3); + + +// ---- Low level interface functions ----------------------------- + +/** + * @brief Direct write to register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be changed + * @param data pointer to the data to be written to the register + * @param len number of bytes to be written to the register + * @return true on success, false on error + */ +bool lis3dh_reg_write (lis3dh_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +/** + * @brief Direct read from register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be read + * @param data pointer to the data to be read from the register + * @param len number of bytes to be read from the register + * @return true on success, false on error + */ +bool lis3dh_reg_read (lis3dh_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LIS3DH_H__ */ diff --git a/extras/lis3dh/lis3dh_platform.c b/extras/lis3dh/lis3dh_platform.c new file mode 100644 index 0000000..17eabf8 --- /dev/null +++ b/extras/lis3dh/lis3dh_platform.c @@ -0,0 +1,81 @@ +/** + * Driver for LIS3DH 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#include "lis3dh_platform.h" + +// platform specific SPI functions + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + diff --git a/extras/lis3dh/lis3dh_platform.h b/extras/lis3dh/lis3dh_platform.h new file mode 100644 index 0000000..0903533 --- /dev/null +++ b/extras/lis3dh/lis3dh_platform.h @@ -0,0 +1,80 @@ +/** + * Driver for LIS3DH 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __LIS3DH_PLATFORM_H__ +#define __LIS3DH_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "esp/spi.h" +#include "i2c/i2c.h" + +// platform specific SPI functions + +#define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 + +extern bool spi_device_init (uint8_t bus, uint8_t cs); +extern size_t spi_transfer_pf (uint8_t bus, uint8_t cs, + const uint8_t *mosi, uint8_t *miso, + uint16_t len); + +#endif // ESP_OPEN_RTOS + +#endif // __LIS3DH_PLATFORM_H__ diff --git a/extras/lis3dh/lis3dh_types.h b/extras/lis3dh/lis3dh_types.h new file mode 100644 index 0000000..122075e --- /dev/null +++ b/extras/lis3dh/lis3dh_types.h @@ -0,0 +1,355 @@ +/** + * Driver for LIS3DH 3-axes digital accelerometer connected to I2C or SPI. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO Activity SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LIS3DH_TYPES_H__ +#define __LIS3DH_TYPES_H__ + +#include "stdint.h" +#include "stdbool.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Output data rates (ODR), related to resolution modes + */ +typedef enum { + + lis3dh_power_down = 0, // power down mode + lis3dh_odr_1, // high resolution / normal / low power 1 Hz + lis3dh_odr_10, // high resolution / normal / low power 10 Hz + lis3dh_odr_25, // high resolution / normal / low power 25 Hz + lis3dh_odr_50, // high resolution / normal / low power 50 Hz + lis3dh_odr_100, // high resolution / normal / low power 100 Hz + lis3dh_odr_200, // high resolution / normal / low power 200 Hz + lis3dh_odr_400, // high resolution / normal / low power 400 Hz + lis3dh_odr_1600, // low power mode 1.6 kHz + lis3dh_odr_5000, // normal 1.25 kHz / low power 5 kHz + +} lis3dh_odr_mode_t; + +/** + * @brief Resolution modes, related to output data rates (ODR) + */ +typedef enum { + + lis3dh_low_power, // low power mode resolution ( 8 bit data) + lis3dh_normal, // normal mode resolution (10 bit data) + lis3dh_high_res // high resolution mode (12 bit data) + +} lis3dh_resolution_t; + +/** + * @brief Full scale measurement range + */ +typedef enum { + + lis3dh_scale_2_g = 0, // default + lis3dh_scale_4_g, + lis3dh_scale_8_g, + lis3dh_scale_16_g + +} lis3dh_scale_t; + + +/** + * @brief FIFO mode + */ +typedef enum { + + lis3dh_bypass = 0, // default + lis3dh_fifo = 1, + lis3dh_stream = 2, + lis3dh_trigger= 3 + +} lis3dh_fifo_mode_t; + + +/** + * @brief Interrupt signals + */ +typedef enum { + + lis3dh_int1_signal = 0, + lis3dh_int2_signal = 1 + +} lis3dh_int_signal_t; + + +/** + * @brief Inertial event interrupt generators + */ +typedef enum { + + lis3dh_int_event1_gen = 0, + lis3dh_int_event2_gen = 1 + +} lis3dh_int_event_gen_t; + + +/** + * @brief Interrupt types for interrupt signals INT1/INT2 + */ +typedef enum { + + lis3dh_int_data_ready, // data ready for read interrupt (only INT1) + + lis3dh_int_fifo_watermark, // FIFO exceeds the threshold (only INT1) + lis3dh_int_fifo_overrun, // FIFO is completely filled (only INT1) + + lis3dh_int_event1, // inertial event interrupt 1 + lis3dh_int_event2, // inertial event interrupt 2 + + lis3dh_int_click // click detection interrupt + +} lis3dh_int_type_t; + + +/** + * @brief Data ready and FIFO status interrupt source for INT1 + */ +typedef struct { + + bool data_ready; // true when acceleration data are ready to read + + bool fifo_watermark; // true when FIFO exceeds the FIFO threshold + bool fifo_overrun; // true when FIFO is completely filled + +} lis3dh_int_data_source_t; + + +/** + * @brief Inertial interrupt generator configuration for INT1/INT2 + * + * Inertial events are: wake-up, free-fall, 6D/4D detection. + */ +typedef struct { + + enum { // interrupt mode + + lis3dh_wake_up, // AOI = 0, 6D = 0 + lis3dh_free_fall, // AOI = 1, 6D = 0 + + lis3dh_6d_movement, // AOI = 0, 6D = 1, D4D = 0 + lis3dh_6d_position, // AOI = 1, 6D = 1, D4D = 0 + + lis3dh_4d_movement, // AOI = 0, 6D = 1, D4D = 1 + lis3dh_4d_position, // AOI = 1, 6D = 1, D4D = 1 + + } mode; + + uint8_t threshold; // threshold used for comparison for all axes + + bool x_low_enabled; // x lower than threshold interrupt enabled + bool x_high_enabled; // x higher than threshold interrupt enabled + + bool y_low_enabled; // y lower than threshold interrupt enabled + bool y_high_enabled; // y higher than threshold interrupt enabled + + bool z_low_enabled; // z lower than threshold interrupt enabled + bool z_high_enabled; // z higher than threshold interrupt enabled + + bool latch; // latch the interrupt when true until the + // interrupt source has been read + + uint8_t duration; // duration in 1/ODR an interrupt condition has + // to be given before the interrupt is generated +} lis3dh_int_event_config_t; + + +/** + * @brief Inertial event source type for interrupt generator INT1/INT2 + */ +typedef struct { + + bool active:1; // true - one ore more events occured + + bool x_low :1; // true - x lower than threshold event + bool x_high:1; // true - x higher than threshold event + + bool y_low :1; // true - z lower than threshold event + bool y_high:1; // true - z higher than threshold event + + bool z_low :1; // true - z lower than threshold event + bool z_high:1; // true - z higher than threshold event + +} lis3dh_int_event_source_t; + + +/** + * @brief Click interrupt configuration for interrupt signals INT1/INT2 + */ +typedef struct { + + bool x_single; // x-axis single tap interrupt enabled + bool x_double; // x-axis double tap interrupt enabled + + bool y_single; // y-axis single tap interrupt enabled + bool y_double; // y-axis double tap interrupt enabled + + bool z_single; // z-axis single tap interrupt enabled + bool z_double; // z-axis double tap interrupt enabled + + uint8_t threshold; // threshold used for comparison for all axes + + bool latch; // latch the interrupt when true until the + // interrupt source has been read + + uint8_t time_limit; // maximum time interval between the start and the + // end of a cick (accel increases and falls back) + uint8_t time_latency; // click detection is disabled for that time after + // a was click detected (in 1/ODR) + uint8_t time_window; // time interval in which the second click has to + // to be detected in double clicks (in 1/ODR) + +} lis3dh_int_click_config_t; + + +/** + * @brief Click interrupt source for interrupt signals INT1/INT2 + */ +typedef struct { + + bool x_click:1; // click detected in x direction + bool y_click:1; // click detected in y direction + bool z_click:1; // click detected in z direction + + bool sign :1; // click sign (0 - posisitive, 1 - negative) + + bool s_click:1; // single click detected + bool d_click:1; // double click detected + + bool active :1; // true - one ore more event occured + +} lis3dh_int_click_source_t; + + +/** + * @brief INT1, INT2 signal activity level + */ +typedef enum { + + lis3dh_high_active = 0, + lis3dh_low_active + +} lis3dh_int_signal_level_t; + + +/** + * @brief Raw data set as two complements + */ +typedef struct { + + int16_t ax; // acceleration on x axis + int16_t ay; // acceleration on y axis + int16_t az; // acceleration on z axis + +} lis3dh_raw_data_t; + + +/** + * @brief Raw data FIFO type + */ +typedef lis3dh_raw_data_t lis3dh_raw_data_fifo_t[32]; + + +/** + * @brief Floating point output value set in g + */ +typedef struct { + + float ax; // acceleration on x axis + float ay; // acceleration on y axis + float az; // acceleration on z axis + +} lis3dh_float_data_t; + + +/** + * @brief Floating point output value FIFO type + */ +typedef lis3dh_float_data_t lis3dh_float_data_fifo_t[32]; + + +/** + * @brief HPF (high pass filter) modes + */ +typedef enum { + + lis3dh_hpf_normal = 0, // normal mode (reset by reading reference) + lis3dh_hpf_reference, // reference signal for filtering + lis3dh_hpf_normal_x, // normal mode + lis3dh_hpf_autoreset // autoreset on interrupt Activity + +} lis3dh_hpf_mode_t; + + +/** + * @brief LIS3DH sensor device data structure type + */ +typedef struct { + + int error_code; // error code of last operation + + uint8_t bus; // I2C = x, SPI = 1 + uint8_t addr; // I2C = slave address, SPI = 0 + + uint8_t cs; // ESP8266, ESP32: GPIO used as SPI CS + // __linux__: device index + + lis3dh_scale_t scale; // full range scale (default 2 g) + lis3dh_resolution_t res; // resolution used + + lis3dh_fifo_mode_t fifo_mode; // FIFO operation mode (default bypass) + bool fifo_first; // first FIFO access + +} lis3dh_sensor_t; + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __LIS3DH_TYPES_H__ */ From 37230b2de6c2941d819c734ce468eb7163032f2b Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 13:01:59 +0100 Subject: [PATCH 272/349] L3GD20H 3-axes gyroscope driver (#545) --- examples/l3gd20h/Makefile | 3 + examples/l3gd20h/l3gd20h_example.c | 334 +++++++++ extras/l3gd20h/README.md | 983 +++++++++++++++++++++++++ extras/l3gd20h/component.mk | 10 + extras/l3gd20h/l3gd20h.c | 1091 ++++++++++++++++++++++++++++ extras/l3gd20h/l3gd20h.h | 408 +++++++++++ extras/l3gd20h/l3gd20h_platform.c | 82 +++ extras/l3gd20h/l3gd20h_platform.h | 81 +++ extras/l3gd20h/l3gd20h_types.h | 310 ++++++++ 9 files changed, 3302 insertions(+) create mode 100644 examples/l3gd20h/Makefile create mode 100644 examples/l3gd20h/l3gd20h_example.c create mode 100644 extras/l3gd20h/README.md create mode 100644 extras/l3gd20h/component.mk create mode 100644 extras/l3gd20h/l3gd20h.c create mode 100644 extras/l3gd20h/l3gd20h.h create mode 100644 extras/l3gd20h/l3gd20h_platform.c create mode 100644 extras/l3gd20h/l3gd20h_platform.h create mode 100644 extras/l3gd20h/l3gd20h_types.h diff --git a/examples/l3gd20h/Makefile b/examples/l3gd20h/Makefile new file mode 100644 index 0000000..2940d3f --- /dev/null +++ b/examples/l3gd20h/Makefile @@ -0,0 +1,3 @@ +PROGRAM=L3GD20H +EXTRA_COMPONENTS = extras/i2c extras/l3gd20h +include ../../common.mk diff --git a/examples/l3gd20h/l3gd20h_example.c b/examples/l3gd20h/l3gd20h_example.c new file mode 100644 index 0000000..179e60c --- /dev/null +++ b/examples/l3gd20h/l3gd20h_example.c @@ -0,0 +1,334 @@ +/** + * Simple example with one sensor connected to I2C or SPI. It demonstrates the + * different approaches to fetch the data. Either one of the interrupt signals + * for axis movement wake up *INT1* and data ready interrupt *INT2* is used + * or the new data are fetched periodically. + * + * Harware configuration: + * + * I2C + * + * +-----------------+ +----------+ + * | ESP8266 / ESP32 | | L3GD20H | + * | | | | + * | GPIO 14 (SCL) ----> SCL | + * | GPIO 13 (SDA) <---> SDA | + * | GPIO 5 <---- INT1 | + * | GPIO 4 <---- DRDY/INT2| + * +-----------------+ +----------+ + * + * SPI + * + * +---------------+ +----------+ +---------------+ +----------+ + * | ESP8266 | | L3GD20H | | ESP32 | | L3GD20H | + * | | | | | | | | + * | GPIO 14 (SCK) ----> SCK | | GPIO 16 (SCK) ----> SCK | + * | GPIO 13 (MOSI)----> SDI | | GPIO 17 (MOSI)----> SDI | + * | GPIO 12 (MISO)<---- SDO | | GPIO 18 (MISO)<---- SDO | + * | GPIO 2 (CS) ----> CS | | GPIO 19 (CS) ----> CS | + * | GPIO 5 <---- INT1 | | GPIO 5 <---- INT1 | + * | GPIO 4 <---- DRDY/INT2| | GPIO 4 <---- DRDY/INT2| + * +---------------+ +---------+ +---------------+ +----------+ + */ + +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // if defined SPI is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // event interrupts used (axis movement and wake up) + +#if defined(INT_EVENT) || defined(INT_DATA) +#define INT_USED +#endif + +/* -- includes -------------------------------------------------- */ + +#include "l3gd20h.h" + +/* -- platform dependent definitions ---------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth +#define TASK_STACK_DEPTH 2048 + +// define SPI interface for L3GD20H sensors +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth +#define TASK_STACK_DEPTH 256 + +// define SPI interface for L3GD20H sensors +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// define I2C interfaces for L3GD20H sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// define GPIOs for interrupt +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks ---------------------------------------------- */ + +static l3gd20h_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data (void) +{ + #ifdef FIFO_MODE + + l3gd20h_float_data_fifo_t data; + + if (l3gd20h_new_data (sensor)) + { + uint8_t num = l3gd20h_get_float_data_fifo (sensor, data); + printf("%.3f L3GD20H num=%d\n", (double)sdk_system_get_time()*1e-3, num); + for (int i = 0; i < num; i++) + // max. full scale is +-2000 dps and best sensitivity is 1 mdps, i.e. 7 digits + printf("%.3f L3GD20H (xyz)[dps]: %+9.3f %+9.3f %+9.3f\n", + (double)sdk_system_get_time()*1e-3, data[i].x, data[i].y, data[i].z); + } + + #else // !FIFO_MODE + + l3gd20h_float_data_t data; + + if (l3gd20h_new_data (sensor) && + l3gd20h_get_float_data (sensor, &data)) + // max. full scale is +-2000 dps and best sensitivity is 1 mdps, i.e. 7 digits + printf("%.3f L3GD20H (xyz)[dps]: %+9.3f %+9.3f %+9.3f\n", + (double)sdk_system_get_time()*1e-3, data.x, data.y, data.z); + + #endif // FIFO_MODE +} + + +#ifdef INT_USED +/** + * In this case, axes movement wake up interrupt *INT1* and/or data ready + * interrupt *INT2* are used. While data ready interrupt *INT2* is generated + * every time new data are available or the FIFO status changes, the axes + * movement wake up interrupt *INT1* is triggered when output data across + * defined thresholds. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + if (gpio_num == INT1_PIN) + { + l3gd20h_int_event_source_t source; + + // get the source of INT1 reset INT1 signal + l3gd20h_get_int_event_source (sensor, &source); + + // in case of data ready interrupt, get the results and do something with them + if (source.active) + read_data (); + } + else if (gpio_num == INT2_PIN) + { + l3gd20h_int_data_source_t source; + + // get the source of INT2 + l3gd20h_get_int_data_source (sensor, &source); + + // if data ready interrupt, get the results and do something with them + read_data(); + } + } + } +} + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this case, no interrupts are used and the user task fetches the sensor + * values periodically every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay (100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ---------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = l3gd20h_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else // I2C + + // init all I2C bus interfaces at which L3GD20H sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address L3GD20H_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = l3gd20h_init_sensor (I2C_BUS, L3GD20H_I2C_ADDRESS_2, 0); + + #endif // SPI_USED + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the + // interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_enable(INT2_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set type and polarity of INT signals if necessary + // l3gd20h_config_int_signals (dev, l3gd20h_push_pull, l3gd20h_high_active); + + #ifdef INT_EVENT + // enable event interrupts (axis movement and wake up) + l3gd20h_int_event_config_t int_cfg; + + l3gd20h_get_int_event_config (sensor, &int_cfg); + + int_cfg.x_high_enabled = true; + int_cfg.y_high_enabled = true; + int_cfg.z_high_enabled = true; + int_cfg.x_low_enabled = false; + int_cfg.y_low_enabled = false; + int_cfg.z_low_enabled = false; + int_cfg.x_threshold = 1000; + int_cfg.y_threshold = 1000; + int_cfg.z_threshold = 1000; + + int_cfg.filter = l3gd20h_hpf_only; + int_cfg.and_or = false; + int_cfg.duration = 0; + int_cfg.latch = true; + + l3gd20h_set_int_event_config (sensor, &int_cfg); + l3gd20h_enable_int (sensor, l3gd20h_int_event, true); + + #endif // INT_EVENT + + #ifdef INT_DATA + // enable data ready (DRDY) and FIFO interrupt signal *INT2* + // NOTE: DRDY and FIFO interrupts must not be enabled at the same time + #ifdef FIFO_MODE + l3gd20h_enable_int (sensor, l3gd20h_int_fifo_overrun, true); + l3gd20h_enable_int (sensor, l3gd20h_int_fifo_threshold, true); + #else + l3gd20h_enable_int (sensor, l3gd20h_int_data_ready, true); + #endif + #endif // INT_DATA + + #ifdef FIFO_MODE + // clear FIFO and activate FIFO mode if needed + l3gd20h_set_fifo_mode (sensor, l3gd20h_bypass, 0); + l3gd20h_set_fifo_mode (sensor, l3gd20h_stream, 10); + #endif + + // select LPF/HPF, configure HPF and reset the reference by dummy read + l3gd20h_select_output_filter (sensor, l3gd20h_hpf_only); + l3gd20h_config_hpf (sensor, l3gd20h_hpf_normal, 0); + l3gd20h_get_hpf_ref (sensor); + + // LAST STEP: Finally set scale and sensor mode to start measurements + l3gd20h_set_scale(sensor, l3gd20h_scale_245_dps); + l3gd20h_set_mode (sensor, l3gd20h_normal_odr_12_5, 3, true, true, true); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize L3GD20H sensor\n"); +} + diff --git a/extras/l3gd20h/README.md b/extras/l3gd20h/README.md new file mode 100644 index 0000000..211d37a --- /dev/null +++ b/extras/l3gd20h/README.md @@ -0,0 +1,983 @@ +# Driver for the L3GD20H 3-axes digital output gyroscope + +The driver is for the usage with the ESP8266 and [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos). If you can't find it in folder [extras/l3gd20h](https://github.com/SuperHouse/esp-open-rtos/tree/master/extras) of original repository, it is not yet merged. Please take a look to branch [l3gd20h](https://github.com/gschorcht/esp-open-rtos/tree/l3gd20h) of my fork in that case. + +It is also working with ESP32 and [ESP-IDF](https://github.com/espressif/esp-idf.git) using a wrapper component for ESP8266 functions, see folder ```components/esp8266_wrapper```, as well as Linux based systems using a wrapper library. + +The driver can also be used with L3GD20 and L3G4200D. + +## About the sensor + +L3GD20H is a low-power **3-axis angular rate sensor** connected to **I2C** or **SPI** with a full scale of up to **2000 dps**. It supports different measuring rates with a user selectable bandwidth. + +**Main features** of the sensor are: + +- 3 selectable full scales of ±245, ±500, and ±2000 dps +- 7 measuring rates from 12.5 Hz to 800 Hz with 4 bandwidths +- 16 bit angular rate value data output +- 8 bit temperature data output +- 2 dedicated interrupt signals for data and event interrupts +- integrated high-pass filters with 3 modes and 10 different cut off frequencies +- embedded temperature sensor +- embedded 32 levels of 16 bit data output FIFO +- I2C and SPI digital output interface +- embedded power-down and sleep mode with fast turn-on and wake-up + +## Sensor operation + +### Sensor modes + +L3GD20H provides different operating modes. + +- **Power Down mode** is configured automatically after power up boot sequence. In this mode, all gyros are switched off. Therefore, it takes up to 100 ms to switch to another mode. + +- **Normal mode** is the normal measurement mode. All gyros are switched on and at least one axis is enabled for measurements. Measurements are performed at a defined output data rate (**ODR**). + +- **Sleep mode** is the normal mode when no axis is enabled for measurement. In this modes, all gyros are kept switched on. Therefore, it only takes 1/ODR to switch to normal mode if low pass filtering is disabled or 6/ODR if low pass filtering is enabled. + +### Output Data Rates + +In normal mode, measurements are performed at a defined output rate with a user selectable bandwidth. Following output data rates (ODR) are supported. + +Mode | Output Data Rate (ODR) | Driver symbol +:---- |:----------------------:|:------------------ +Power down | - | ```l3gd20h_power_down``` +Normal mode | 12.5 Hz | ```l3gd20h_normal_12_5``` +Normal mode | 25 Hz | ```l3gd20h_normal_25``` +Normal mode | 50 Hz | ```l3gd20h_normal_50``` +Normal mode | 100 Hz | ```l3gd20h_normal_100``` +Normal mode | 200 Hz | ```l3gd20h_normal_200``` +Normal mode | 400 Hz | ```l3gd20h_normal_400``` +Normal mode | 800 Hz | ```l3gd20h_normal_800``` + +Output data rates (ODR) of less than 100 Hz are called Low Data Rates. + +For each ODR, one of the four bandwidths 0...3 can be selected that defines the cutoff frequency (please refer datasheet) of an embedded low pass filter for the measurement results. + +The **easiest way to use the sensor** is simply to initialize it with function ```l3gd20h_init_sensor``` and then set it to the normal mode with function ```l3gd20h_set_mode``` to start measurements with the given output data rate (ODR). The bandwidth of the embedded low-pass filter and the axes x, y and z that are activated for measurements are also given as parameters. + +``` +... +static l3gd20h_sensor_t* sensor = 0; +... +if ((sensor = l3gd20h_init_sensor (I2C_BUS, L3GD20H_I2C_ADDRESS_2, 0))) +{ + ... + l3gd20h_set_mode (sensor, l3gd20h_normal_odr_200, 3, true, true, true); + ... +} +... + +``` +In this example, a L3GD20H sensor connected to I2C is initialized and set to normal mode to start measurements for all three axes with an output data rate (ODR) of 200 Hz and bandwidth 3 (please refer datasheet). + +**Please note:** +- Function ```l3gd20h_init_sensor``` resets the sensor completely, switches it to the power down mode, and returns a pointer to a sensor device data structure on success. All registers are reset to default values and the embedded FIFO is cleared. +- All sensor configurations should be done before calling function ```l3gd20h_set_mode```. In particular, the interrupt configuration should be performed before to avoid loosing the first interrupt and locking the system. + +## Measurement results + +### Output data format + +In normal mode, sensor determines periodically the angular rate for all axes that are enabled for measurement and produces output data with the selected output data rate (ODR). + +Function ```l3gd20h_new_data``` or the data ready interrupt (see below) can be used to determine when new data are available. + +Raw **output data** (**raw data**) are given as 16-bit signed integer values in 2’s complement representation. The range and the resolution of these data depend on the sensitivity of the sensor which is selected by the **full scale** value. The L3GD20H allows to select the following full scales: + +Full Scale | Resolution | Driver symbol +-----------:|-----------:|:--------------- +±245 dps | 2 mdps | ```l3gd20h_scale_245_dps``` +±500 dps | 4 mdps | ```l3gd20h_scale_500_dps``` +±2000 dps | 16 mdps | ```l3gd20h_scale_2000_dps``` + +By default, a full scale of ±245 dps is used. Function ```l3gd20h_set_scale``` can be used to change it. + +``` +l3gd20h_set_scale(sensor, l3gd20h_scale_500_dps); +``` + +### Fetching output data + +To get the information whether new data are available, the user task can either use + +- the function ```l3gd20h_new_data``` to check periodically whether new output data are available, or +- the data ready interrupt (DRDY) which is thrown as soon as new output data are available (see below). + +Last measurement results can then be fetched either + +- as raw data using function ```l3gd20h_get_raw_data``` or +- as floating point values in dps (degrees per second) using function ```l3gd20h_get_float_data```. + +It is recommended to use function ```l3gd20h_get_float_data``` since it already converts measurement results to real values according to the selected full scale. + +``` +void user_task_periodic(void *pvParameters) +{ + l3gd20h_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!l3gd20h_new_data (sensor)) + continue; + + // fetch new data + if (l3gd20h_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +``` + +**Please note:** +The functions ```l3gd20h_get_float_data``` and ```l3gd20h_get_raw_data``` always return the last available results. If these functions are called more often than measurements are performed, some measurement results are retrieved multiple times. If these functions are called too rarely, some measurement results will be lost. + +### Filters + +L3GD20H provides embedded low-pass as well as high-pass filtering capabilities to improve measurement results. +It is possible to independently apply the filters on the output data and/or on the data used for event interrupt generation (selective axis movement and wake up, see below) separately. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/l3gd20.pdf) or [application note](http://www.st.com/resource/en/application_note/dm00119036.pdf) for more details. + +The filters applied to the output data are selected with function ```l3gd20h_select_output_filter```. Following selections are possible: + +Driver symbol | Low pass filter (LPF2) used | High pass filter (HPF) used +:--------------|:-----------------------------:|:---------------------: +```l3gd20h_no_filter``` | - | - +```l3gd20h_hpf_only``` | x | - +```l3gd20h_lpf2_only``` | - | x +```l3gd20h_hpf_and_lpf2``` | x | x + +These filters can also be applied to data used for event interrupt generation (selective axis movement and wake up). The filter mode is defined by member ```filter``` in the settings of interrupt generator configuration, see function ```l3gd20h_set_int_event_config```. + +While the cutoff frequency of the low pass filter (LPF2) is fixed and depends only on the output data rate (ODR), the mode and the cutoff frequency of the high pass filter can be configured using function ```l3gd20h_config_hpf```. Following HPF modes are available: + +Driver symbol | HPF mode +:--------------|:--------- +```l3gd20h_hpf_normal``` | Normal mode +```l3gd20h_hpf_reference``` | Reference mode +```l3gd20h_hpf_autoreset``` | Auto-reset on interrupt + +For each output data rate (ODR), 10 different HPF cutoff frequencies can be used. + +``` +... +// select LPF/HPF +l3gd20h_select_output_filter (sensor, l3gd20h_hpf_only); + +// configure HPF in normal mode with cutoff frequency 0 +l3gd20h_config_hpf (sensor, l3gd20h_hpf_normal, 2); + +// reset the reference by a dummy read +l3gd20h_get_hpf_ref (sensor); +... +``` + +**Please note:** Since same filters are used for the output data as well as the data used for event interrupt generation (selective axes movement / wake up), the configuration of the filters always affects both data. + + +### FIFO + +In order to limit the rate at which the host processor has to fetch the data, the L3GD20H embeds a first-in first-out buffer (FIFO). This is in particular helpful at high output data rates. The FIFO buffer can work in seven different modes and is able to store up to 32 angular rate samples. Please refer the [datasheet](http://www.st.com/resource/en/datasheet/l3gd20.pdf) or [application note](http://www.st.com/resource/en/application_note/dm00119036.pdf) for more details. + +Driver symbol | FIFO mode +--------------|------------------------- +```l3gd20h_bypass``` | Bypass mode (FIFO is not used) +```l3gd20h_fifo``` | FIFO mode +```l3gd20h_stream``` | Stream mode +```l3gd20h_stream_to_fifo``` | Stream-to-FIFO mode +```l3gd20h_bypass_to_stream``` | Bypass-to-Stream mode +```l3gd20h_dynamic_stream``` | Dynamic Stream mode +```l3gd20h_bypass_to_fifo``` | Bypass to FIFO mode + +The FIFO mode can be set using function ```l3gd20h_set_fifo_mode```. This function takes two parameters, the FIFO mode and a threshold value which defines a watermark level. When the FIFO content exceeds this level, a watermark flag is set and an interrupt can be generated. They can be used to gather a minimum number of axes angular rate samples with the sensor before the data are fetched as a single read operation from the sensor. + +``` +... +// clear FIFO +l3gd20h_set_fifo_mode (sensor, l3gd20h_bypass, 0); + +// activate FIFO mode +l3gd20h_set_fifo_mode (sensor, l3gd20h_stream, 10); +... +``` + +**Please note**: To clear the FIFO at any time, set the FIFO mode to ```l3gd20h_bypass``` and back to the desired FIFO mode. + +To read data from the FIFO, simply use either + +- the function ```l3gd20h_get_raw_data_fifo``` to all get raw output data stored in FIFO or +- the function ```l3gd20h_get_float_data_fifo``` to get all data stored in FIFO and converted to real values in dps (degrees per second). + +Both functions clear the FIFO and return the number of samples read from the FIFO. + +``` +void user_task_periodic (void *pvParameters) +{ + l3gd20h_float_data_fifo_t data; + + while (1) + { + // execute task every 500 ms + vTaskDelay (500/portTICK_PERIOD_MS); + ... + // test for new data + if (!l3gd20h_new_data (sensor)) + continue; + + // fetch data from fifo + uint8_t num = l3gd20h_get_float_data_fifo (sensor, data); + + for (int i = 0; i < num; i++) + { + // do something with data[i] ... + } +} +``` + +## Interrupts + +The L3GD20H allows to activate interrupts on two dedicated interrupt signals + +- for data interrupts (data ready and FIFO status) on signal **```DRDY/INT2```**, and +- for event interrupts (axis movement and wake up) on signal **```INT1```**. + +### Data interrupts (data ready and FIFO status) on signal **```DRDY/INT2```** + +Interrupts on signal ```DRDY/INT2``` can be generated by following sources: + +Interrupt source | Driver symbol +:-----------------|:------------- +Output data become ready to read | ```l3gd20h_int_data_ready``` +FIFO content exceeds the watermark level | ```l3gd20h_int_fifo_threshold``` +FIFO is completely filled | ```l3gd20h_int_fifo_overrun``` +FIFO becomes empty | ```l3gd20h_int_fifo_empty``` + +Each of these interrupt sources can be enabled or disabled separately with function ```l3gd20h_enable_int```. By default all interrupt sources are disabled. + +``` +l3gd20h_enable_int (sensor, l3gd20h_int_data_ready, true); +``` + +Whenever the interrupt signal ```DRDY/INT2``` is generated, function ```l3gd20h_get_int_data_source``` can be used to determine the source of the interrupt signal. This function returns a data structure of type ```l3gd20h_int_data_source_t``` that contains a boolean member for each source that can be tested for true. + +``` +void int2_handler () +{ + l3gd20h_int_data_source_t source; + + // get the interrupt source of INT2 + l3gd20h_get_int_data_source (sensor, &source); + + // in case of data ready interrupt, get the results and do something with them + if (source.data_ready) + { + l3gd20h_get_float_data (sensor, &data) + + // do something with data + ... + } +} +``` + +### Event interrupts (Axes movement and wake up) on signal **```INT1```** + +This interrupt signal allows to recognize independent rotations of the x, y and z axes. For this purpose, a separate threshold can be defined for each axis. If activated, the angular rate of each axis is compared with its threshold to check whether it is below or above the threshold. The results of all activated comparisons are combined OR or AND to generate the interrupt signal. + +The configuration of the thresholds, the activated comparisons and selected AND/OR combination allows to recognize special situations like selective axis movement (SA) or axes movement wakeup (WU). + +- **Selective axis movement recognition (SA)** means that only one axis is rotating. This is the case if the angular rate of selected axis is above its threshold AND angular rates of all other axes are below their thresholds. + +- **Axis movement wake up (WU)** means that the angular rate of any axis is above its threshold (OR). + +To configure event interrupts, the function ```l3gd20h_set_int_event_config``` has to be used with a parameter of structured data type ```l3gd20h_int_event_config_t``` which contains the configuration. For example, selective axis movement recognition (SA) for the z-axis could be configured as following: + +``` +l3gd20h_int_event_config_t int_cfg; + +// thresholds +int_cfg.x_threshold = 100; +int_cfg.y_threshold = 100; +int_cfg.z_threshold = 1000; + +// x axis below threshold +int_cfg.x_low_enabled = false; +int_cfg.x_high_enabled = true; + +// y axis below threshold +int_cfg.y_low_enabled = true; +int_cfg.y_high_enabled = false; + +// z axis below threshold +int_cfg.z_low_enabled = false; +int_cfg.z_high_enabled = true; + +// AND combination of all conditions +int_cfg.and_or = true; + +// further parameters +int_cfg.filter = l3gd20h_hpf_only; +int_cfg.latch = true; +int_cfg.duration = 0; +int_cfg.wait = false; + +// set the configuration and enable the interrupt +l3gd20h_set_int_cfg (sensor, &int_cfg); +l3gd20h_enable_int (sensor, l3gd20h_int_event, true); +``` + +Furthermore, with this data structure it is also configured + +- whether the interrupt signal should latched until the interrupt source is read, +- which filters are applied to data used for interrupt generation, +- which time in 1/ODR an interrupt condition has to be given before the interrupt is generated, and +- whether this time is also used when interrupt condition in no longer given before interrupt signal is reset. + +Function ```l3gd20h_enable_int``` is used to enable or disable the event interrupt generation. + +As with data ready and FIFO interrupts, function ```l3gd20h_get_int1_source``` can be used to determine the source of the interrupt signal whenever it is generated. This function returns a data structure of type ```l3gd20h_int1_source_t``` that contain a boolean member for each source that can be tested for true. + +``` +void int1_handler () +{ + l3gd20h_int_event_source_t source; + + // get the source of INT1 reset INT1 signal + l3gd20h_get_int_event_source (sensor, &source); + + // if all conditions where true interrupt + if (source.active) + { + l3gd20h_get_float_data (sensor, &data) + + // do something with data + ... + } +} +``` +**Please note:** If the interrupt is configured to be latched, the interrupt signal is active until the interrupt source is read. Otherwise the interrupt signal is only active as long as the interrupt condition is satisfied. + +**Please note** Activating all threshold comparisons and the OR combination is the most flexible way, functions like selective axis movement can then be realized combining the different interrupt sources. Following example realizes also the selective axis movement recognition (SA) for the z-axis. + +``` +l3gd20h_int_event_config_t int_cfg; + +// thresholds +int_cfg.x_threshold = 100; +int_cfg.y_threshold = 100; +int_cfg.z_threshold = 100; + +// x axis +int_cfg.x_low_enabled = true; +int_cfg.x_high_enabled = true; + +// y axis +int_cfg.y_low_enabled = true; +int_cfg.y_high_enabled = true; + +// z axis +int_cfg.z_low_enabled = true; +int_cfg.z_high_enabled = true; + +// OR combination of all conditions +int_cfg.and_or = false; +... +// set the configuration and enable the interrupt +l3gd20h_set_int_cfg (sensor, &int_cfg); +l3gd20h_enable_int (sensor, l3gd20h_int_event, true); +``` + +``` +void int1_handler () +{ + l3gd20h_int1_source_t source; + + // get the interrupt source of INT1 + l3gd20h_get_int1_source (sensor, &source); + + // if all conditions where true interrupt + if (source.y_low && source.y_low && source.z_high) + { + // selective axis movement of z-axis + ... + } +} +``` + +### Interrupt signal properties + +By default, interrupt signals are high active. Using function ```l3gd20h_config_int_signals```, the level of the interrupt signal and the type of the interrupt outputs can be changed. + +Driver symbol | Meaning +:-------------|:------- +```l3gd20h_high_active``` | Interrupt signal is high active (default) +```l3gd20h_low_active``` | Interrupt signal is low active + +Driver symbol | Meaning +:-------------|:------- +```l3gd20h_push_pull``` | Interrupt output is pushed/pulled +```l3gd20h_open_drain``` | Interrupt output is open-drain + +## Temperature sensor + +The L3GD20H contains a temperature sensor. Function ```l3gd20h_get_temperature``` can be used to get the temperature. The temperature is given as 8-bit signed integer values in 2’s complement. + +## Low level functions + +The L3GD20H is a very complex and flexible sensor with a lot of features. It can be used for a big number of different use cases. Since it is quite impossible to implement a high level interface which is generic enough to cover all the functionality of the sensor for all different use cases, there are two low level interface functions that allow direct read and write access to the registers of the sensor. + +``` +bool l3gd20h_reg_read (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +bool l3gd20h_reg_write (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +``` +**Please note** +These functions should only be used to do something special that is not covered by the high level interface AND if you exactly know what you do and what it might affect. Please be aware that it might affect the high level interface. + + +## Usage + +First, the hardware configuration has to be established. + +### Hardware configurations + +Following figure shows a possible hardware configuration for ESP8266 and ESP32 if I2C interface is used to connect the sensor. + +``` + +-----------------+ +----------+ + | ESP8266 / ESP32 | | L3GD20H | + | | | | + | GPIO 14 (SCL) >-----> SCL | + | GPIO 13 (SDA) <-----> SDA | + | GPIO 5 <------ INT1 | + | GPIO 4 <------ DRDY/INT2| + +-----------------+ +----------+ +``` + +If SPI interface is used, configuration for ESP8266 and ESP32 could look like following. + +``` + +-----------------+ +----------+ +-----------------+ +----------+ + | ESP8266 | | L3GD20H | | ESP32 | | L3GD20H | + | | | | | | | | + | GPIO 14 (SCK) ------> SCK | | GPIO 16 (SCK) ------> SCK | + | GPIO 13 (MOSI)------> SDI | | GPIO 17 (MOSI)------> SDI | + | GPIO 12 (MISO)<------ SDO | | GPIO 18 (MISO)<------ SDO | + | GPIO 2 (CS) ------> CS | | GPIO 19 (CS) ------> CS | + | GPIO 5 <------ INT1 | | GPIO 5 <------ INT1 | + | GPIO 4 <------ DRDY/INT2| | GPIO 4 <------ DRDY/INT2| + +-----------------+ +----------+ +-----------------+ +----------+ +``` + +### Communication interface settings + +Dependent on the hardware configuration, the communication interface and interrupt settings have to be defined. In case ESP32 is used, the configuration could look like + +``` +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth for ESP32 +#define TASK_STACK_DEPTH 2048 + +// SPI interface definitions for ESP32 +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth for ESP8266 +#define TASK_STACK_DEPTH 256 + +// SPI interface definitions for ESP8266 +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// I2C interface defintions for ESP32 and ESP8266 +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// interrupt GPIOs defintions for ESP8266 and ESP32 +#define INT1_PIN 5 +#define INT2_PIN 4 +``` + +### Main program + +#### Initialization + +If I2C interfaces are used, they have to be initialized first. + +``` +i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); +``` + +SPI interface has only to be initialized explicitly on ESP32 platform to declare the GPIOs that are used for SPI interface. + +``` +#ifdef ESP_PLATFORM +spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); +#endif +``` + +Once the interfaces are initialized, function ```l3gd20h_init_sensor``` has to be called for each L3GD20H sensor in order to initialize the sensor and to check its availability as well as its error state. This function returns a pointer to a sensor device data structure or NULL in case of error. + +The parameter *bus* specifies the ID of the I2C or SPI bus to which the sensor is connected. + +``` +static l3gd20h_sensor_t* sensor; +``` + +For sensors connected to an I2C interface, a valid I2C slave address has to be defined as parameter *addr*. In that case parameter *cs* is ignored. + +``` +sensor = l3gd20h_init_sensor (I2C_BUS, L3GD20H_I2C_ADDRESS_2, 0); + +``` + +If parameter *addr* is 0, the sensor is connected to a SPI bus. In that case, parameter *cs* defines the GPIO used as CS signal. + +``` +sensor = l3gd20h_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + +``` + +The remaining of the program is independent on the communication interface. + +#### Configuring the sensor + +Optionally, you could wish to set some measurement parameters. For details see the sections above, the header file of the driver ```l3gd20h.h```, and of course the data sheet of the sensor. + +#### Starting measurements + +As last step, the sensor mode has be set to start periodic measurement. The sensor mode can be changed anytime later. + +``` +... +// start periodic measurement with output data rate of 12.5 Hz +l3gd20h_set_mode (sensor, l3gd20h_normal_odr_12_5, 3, true, true, true); +... +``` + +#### Periodic user task + +Finally, a user task that uses the sensor has to be created. + +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + +The user task can use different approaches to fetch new data. Either new data are fetched periodically or interrupt signals are used when new data are available or a configured event happens. + +If new data are fetched **periodically** the implementation of the user task is quite simple and could look like following. + +``` +void user_task_periodic(void *pvParameters) +{ + l3gd20h_float_data_t data; + + while (1) + { + // execute task every 10 ms + vTaskDelay (10/portTICK_PERIOD_MS); + ... + // test for new data + if (!l3gd20h_new_data (sensor)) + continue; + + // fetch new data + if (l3gd20h_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } +} +... +// create a user task that fetches data from sensor periodically +xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); +``` + +The user task simply tests periodically with a higher rate than the output data rate (ODR) of the sensor whether new data are available. If new data are available, it fetches the data. + +#### Interrupt user task + +A different approach is to use one of the **interrupts** INT1 or INT2. + +- **```DRDY/INT2```** is triggered when new data become available or the FIFO queue status changes. +- **```INT1```** is triggered when configured axis movements are recognized. + +In both cases, the user has to implement an interrupt handler that either fetches the data directly or triggers a task, that is waiting to fetch the data. + +``` +static QueueHandle_t gpio_evt_queue = NULL; + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +// User task that fetches the sensor values + +void user_task_interrupt (void *pvParameters) +{ + uint32_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + // test for new data + if (!l3gd20h_new_data (sensor)) + continue; + + // fetch new data + if (l3gd20h_get_float_data (sensor, &data)) + { + // do something with data + ... + } + } + } +} +... + +// create a task that is triggered only in case of interrupts to fetch the data + +xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); +... +``` + +In this example, there is + +- a task that is fetching data when it receives an event, and +- an interrupt handler that generates the event on interrupt. + +Finally, interrupt handlers have to be activated for the GPIOs which are connected to the interrupt signals. + +``` +// configure interrupt pins for *INT1* and *INT2* signals and set the interrupt handler +gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); +``` + +Furthermore, the interrupts have to be enabled and configured in the L3GD20H sensor, see section **Interrupts** above. + +## Full Example + +``` +/* -- use following constants to define the example mode ----------- */ + +// #define SPI_USED // if defined SPI is used, otherwise I2C +// #define FIFO_MODE // multiple sample read mode +// #define INT_DATA // data interrupts used (data ready and FIFO status) +// #define INT_EVENT // event interrupts used (axis movement and wake up) + +#if defined(INT_EVENT) || defined(INT_DATA) +#define INT_USED +#endif + +/* -- includes -------------------------------------------------- */ + +#include "l3gd20h.h" + +/* -- platform dependent definitions ---------------------------- */ + +#ifdef ESP_PLATFORM // ESP32 (ESP-IDF) + +// user task stack depth +#define TASK_STACK_DEPTH 2048 + +// define SPI interface for L3GD20H sensors +#define SPI_BUS HSPI_HOST +#define SPI_SCK_GPIO 16 +#define SPI_MOSI_GPIO 17 +#define SPI_MISO_GPIO 18 +#define SPI_CS_GPIO 19 + +#else // ESP8266 (esp-open-rtos) + +// user task stack depth +#define TASK_STACK_DEPTH 256 + +// define SPI interface for L3GD20H sensors +#define SPI_BUS 1 +#define SPI_SCK_GPIO 14 +#define SPI_MOSI_GPIO 13 +#define SPI_MISO_GPIO 12 +#define SPI_CS_GPIO 2 // GPIO 15, the default CS of SPI bus 1, can't be used + +#endif // ESP_PLATFORM + +// define I2C interfaces for L3GD20H sensors +#define I2C_BUS 0 +#define I2C_SCL_PIN 14 +#define I2C_SDA_PIN 13 +#define I2C_FREQ I2C_FREQ_100K + +// define GPIOs for interrupt +#define INT1_PIN 5 +#define INT2_PIN 4 + +/* -- user tasks ---------------------------------------------- */ + +static l3gd20h_sensor_t* sensor; + +/** + * Common function used to get sensor data. + */ +void read_data (void) +{ + #ifdef FIFO_MODE + + l3gd20h_float_data_fifo_t data; + + if (l3gd20h_new_data (sensor)) + { + uint8_t num = l3gd20h_get_float_data_fifo (sensor, data); + printf("%.3f L3GD20H num=%d\n", (double)sdk_system_get_time()*1e-3, num); + for (int i = 0; i < num; i++) + // max. full scale is +-2000 dps and best sensitivity is 1 mdps, i.e. 7 digits + printf("%.3f L3GD20H (xyz)[dps]: %+9.3f %+9.3f %+9.3f\n", + (double)sdk_system_get_time()*1e-3, data[i].x, data[i].y, data[i].z); + } + + #else // !FIFO_MODE + + l3gd20h_float_data_t data; + + if (l3gd20h_new_data (sensor) && + l3gd20h_get_float_data (sensor, &data)) + // max. full scale is +-2000 dps and best sensitivity is 1 mdps, i.e. 7 digits + printf("%.3f L3GD20H (xyz)[dps]: %+9.3f %+9.3f %+9.3f\n", + (double)sdk_system_get_time()*1e-3, data.x, data.y, data.z); + + #endif // FIFO_MODE +} + + +#ifdef INT_USED +/** + * In this case, axes movement wake up interrupt *INT1* and/or data ready + * interrupt *INT2* are used. While data ready interrupt *INT2* is generated + * every time new data are available or the FIFO status changes, the axes + * movement wake up interrupt *INT1* is triggered when output data across + * defined thresholds. + * + * When interrupts are used, the user has to define interrupt handlers that + * either fetches the data directly or triggers a task which is waiting to + * fetch the data. In this example, the interrupt handler sends an event to + * a waiting task to trigger the data gathering. + */ + +static QueueHandle_t gpio_evt_queue = NULL; + +// User task that fetches the sensor values. + +void user_task_interrupt (void *pvParameters) +{ + uint8_t gpio_num; + + while (1) + { + if (xQueueReceive(gpio_evt_queue, &gpio_num, portMAX_DELAY)) + { + if (gpio_num == INT1_PIN) + { + l3gd20h_int_event_source_t source; + + // get the source of INT1 reset INT1 signal + l3gd20h_get_int_event_source (sensor, &source); + + // in case of data ready interrupt, get the results and do something with them + if (source.active) + read_data (); + } + else if (gpio_num == INT2_PIN) + { + l3gd20h_int_data_source_t source; + + // get the source of INT2 + l3gd20h_get_int_data_source (sensor, &source); + + // if data ready interrupt, get the results and do something with them + read_data(); + } + } + } +} + +// Interrupt handler which resumes sends an event to the waiting user_task_interrupt + +void IRAM int_signal_handler (uint8_t gpio) +{ + // send an event with GPIO to the interrupt user task + xQueueSendFromISR(gpio_evt_queue, &gpio, NULL); +} + +#else // !INT_USED + +/* + * In this case, no interrupts are used and the user task fetches the sensor + * values periodically every seconds. + */ + +void user_task_periodic(void *pvParameters) +{ + vTaskDelay (100/portTICK_PERIOD_MS); + + while (1) + { + // read sensor data + read_data (); + + // passive waiting until 1 second is over + vTaskDelay (100/portTICK_PERIOD_MS); + } +} + +#endif // INT_USED + +/* -- main program ---------------------------------------------- */ + +void user_init(void) +{ + // Set UART Parameter. + uart_set_baud(0, 115200); + // Give the UART some time to settle + vTaskDelay(1); + + /** -- MANDATORY PART -- */ + + #ifdef SPI_USED + + // init the sensor connnected to SPI + spi_bus_init (SPI_BUS, SPI_SCK_GPIO, SPI_MISO_GPIO, SPI_MOSI_GPIO); + + // init the sensor connected to SPI_BUS with SPI_CS_GPIO as chip select. + sensor = l3gd20h_init_sensor (SPI_BUS, 0, SPI_CS_GPIO); + + #else // I2C + + // init all I2C bus interfaces at which L3GD20H sensors are connected + i2c_init (I2C_BUS, I2C_SCL_PIN, I2C_SDA_PIN, I2C_FREQ); + + // init the sensor with slave address L3GD20H_I2C_ADDRESS_2 connected to I2C_BUS. + sensor = l3gd20h_init_sensor (I2C_BUS, L3GD20H_I2C_ADDRESS_2, 0); + + #endif // SPI_USED + + if (sensor) + { + #ifdef INT_USED + + /** --- INTERRUPT CONFIGURATION PART ---- */ + + // Interrupt configuration has to be done before the sensor is set + // into measurement mode to avoid losing interrupts + + // create an event queue to send interrupt events from interrupt + // handler to the interrupt task + gpio_evt_queue = xQueueCreate(10, sizeof(uint8_t)); + + // configure interupt pins for *INT1* and *INT2* signals and set the + // interrupt handler + gpio_enable(INT1_PIN, GPIO_INPUT); + gpio_enable(INT2_PIN, GPIO_INPUT); + gpio_set_interrupt(INT1_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + gpio_set_interrupt(INT2_PIN, GPIO_INTTYPE_EDGE_POS, int_signal_handler); + + #endif // INT_USED + + /** -- SENSOR CONFIGURATION PART --- */ + + // set type and polarity of INT signals if necessary + // l3gd20h_config_int_signals (dev, l3gd20h_push_pull, l3gd20h_high_active); + + #ifdef INT_EVENT + // enable event interrupts (axis movement and wake up) + l3gd20h_int_event_config_t int_cfg; + + l3gd20h_get_int_event_config (sensor, &int_cfg); + + int_cfg.x_high_enabled = true; + int_cfg.y_high_enabled = true; + int_cfg.z_high_enabled = true; + int_cfg.x_low_enabled = false; + int_cfg.y_low_enabled = false; + int_cfg.z_low_enabled = false; + int_cfg.x_threshold = 1000; + int_cfg.y_threshold = 1000; + int_cfg.z_threshold = 1000; + + int_cfg.filter = l3gd20h_hpf_only; + int_cfg.and_or = false; + int_cfg.duration = 0; + int_cfg.latch = true; + + l3gd20h_set_int_event_config (sensor, &int_cfg); + l3gd20h_enable_int (sensor, l3gd20h_int_event, true); + + #endif // INT_EVENT + + #ifdef INT_DATA + // enable data ready (DRDY) and FIFO interrupt signal *INT2* + // NOTE: DRDY and FIFO interrupts must not be enabled at the same time + #ifdef FIFO_MODE + l3gd20h_enable_int (sensor, l3gd20h_int_fifo_overrun, true); + l3gd20h_enable_int (sensor, l3gd20h_int_fifo_threshold, true); + #else + l3gd20h_enable_int (sensor, l3gd20h_int_data_ready, true); + #endif + #endif // INT_DATA + + #ifdef FIFO_MODE + // clear FIFO and activate FIFO mode if needed + l3gd20h_set_fifo_mode (sensor, l3gd20h_bypass, 0); + l3gd20h_set_fifo_mode (sensor, l3gd20h_stream, 10); + #endif + + // select LPF/HPF, configure HPF and reset the reference by dummy read + l3gd20h_select_output_filter (sensor, l3gd20h_hpf_only); + l3gd20h_config_hpf (sensor, l3gd20h_hpf_normal, 0); + l3gd20h_get_hpf_ref (sensor); + + // LAST STEP: Finally set scale and sensor mode to start measurements + l3gd20h_set_scale(sensor, l3gd20h_scale_245_dps); + l3gd20h_set_mode (sensor, l3gd20h_normal_odr_12_5, 3, true, true, true); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + #ifdef INT_USED + + // create a task that is triggered only in case of interrupts to fetch the data + xTaskCreate(user_task_interrupt, "user_task_interrupt", TASK_STACK_DEPTH, NULL, 2, NULL); + + #else // INT_USED + + // create a user task that fetches data from sensor periodically + xTaskCreate(user_task_periodic, "user_task_periodic", TASK_STACK_DEPTH, NULL, 2, NULL); + + #endif + } + else + printf("Could not initialize L3GD20H sensor\n"); +} +``` + diff --git a/extras/l3gd20h/component.mk b/extras/l3gd20h/component.mk new file mode 100644 index 0000000..a7e6b4a --- /dev/null +++ b/extras/l3gd20h/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/l3gd20h + +# expected anyone using L3GD20H driver includes it as 'l3gd20h/l3gd20h.h' +INC_DIRS += $(l3gd20h_ROOT).. +INC_DIRS += $(l3gd20h_ROOT) + +# args for passing into compile rule generation +l3gd20h_SRC_DIR = $(l3gd20h_ROOT) + +$(eval $(call component_compile_rules,l3gd20h)) diff --git a/extras/l3gd20h/l3gd20h.c b/extras/l3gd20h/l3gd20h.c new file mode 100644 index 0000000..4960e24 --- /dev/null +++ b/extras/l3gd20h/l3gd20h.c @@ -0,0 +1,1091 @@ +/* + * Driver for L3GD20H 3-axes digital output gyroscope connected to I2C or SPI. + * It can also be used with L3GD20 and L3G4200D. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The information provided is believed to be accurate and reliable. The + * copyright holder assumes no responsibility for the consequences of use + * of such information nor for any infringement of patents or other rights + * of third parties which may result from its use. No license is granted by + * implication or otherwise under any patent or patent rights of the copyright + * holder. + */ + +#include +#include + +#include "l3gd20h.h" + +#ifdef debug +#undef debug +#undef debug_dev +#endif + +#ifdef error +#undef error +#undef error_dev +#endif + +#if defined(L3GD20H_DEBUG_LEVEL_2) +#define debug(s, f, ...) printf("%s %s: " s "\n", "L3GD20H", f, ## __VA_ARGS__) +#define debug_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "L3GD20H", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define debug(s, f, ...) +#define debug_dev(s, f, d, ...) +#endif + +#if defined(L3GD20H_DEBUG_LEVEL_1) || defined(L3GD20H_DEBUG_LEVEL_2) +#define error(s, f, ...) printf("%s %s: " s "\n", "L3GD20H", f, ## __VA_ARGS__) +#define error_dev(s, f, d, ...) printf("%s %s: bus %d, addr %02x - " s "\n", "L3GD20H", f, d->bus, d->addr, ## __VA_ARGS__) +#else +#define error(s, f, ...) +#define error_dev(s, f, d, ...) +#endif + +// register addresses +#define L3GD20H_REG_WHO_AM_I 0x0f +#define L3GD20H_REG_CTRL1 0x20 +#define L3GD20H_REG_CTRL2 0x21 +#define L3GD20H_REG_CTRL3 0x22 +#define L3GD20H_REG_CTRL4 0x23 +#define L3GD20H_REG_CTRL5 0x24 +#define L3GD20H_REG_REFERENCE 0x25 +#define L3GD20H_REG_OUT_TEMP 0x26 +#define L3GD20H_REG_STATUS 0x27 +#define L3GD20H_REG_OUT_X_L 0x28 +#define L3GD20H_REG_OUT_X_H 0x29 +#define L3GD20H_REG_OUT_Y_L 0x2a +#define L3GD20H_REG_OUT_Y_H 0x2b +#define L3GD20H_REG_OUT_Z_L 0x2c +#define L3GD20H_REG_OUT_Z_H 0x2d +#define L3GD20H_REG_FIFO_CTRL 0x2e +#define L3GD20H_REG_FIFO_SRC 0x2f +#define L3GD20H_REG_IG_CFG 0x30 +#define L3GD20H_REG_IG_SRC 0x31 +#define L3GD20H_REG_IG_THS_XH 0x32 +#define L3GD20H_REG_IG_THS_XL 0x33 +#define L3GD20H_REG_IG_THS_YH 0x34 +#define L3GD20H_REG_IG_THS_YL 0x35 +#define L3GD20H_REG_IG_THS_ZH 0x36 +#define L3GD20H_REG_IG_THS_ZL 0x37 +#define L3GD20H_REG_IG_DURATION 0x38 +#define L3GD20H_REG_LOW_ODR 0x39 + +// register structure definitions +#define L3GD20H_ZYXOR 0x80 // L3GD20H_REG_STATUS<7> +#define L3GD20H_ZOR 0x40 // L3GD20H_REG_STATUS<6> +#define L3GD20H_YOR 0x20 // L3GD20H_REG_STATUS<5> +#define L3GD20H_XOR 0x10 // L3GD20H_REG_STATUS<4> +#define L3GD20H_ZYXDA 0x08 // L3GD20H_REG_STATUS<3> +#define L3GD20H_ZDA 0x04 // L3GD20H_REG_STATUS<2> +#define L3GD20H_YDA 0x02 // L3GD20H_REG_STATUS<1> +#define L3GD20H_XDA 0x01 // L3GD20H_REG_STATUS<0> + +#define L3GD20H_ANY_DATA_READY 0x07 // L3GD20H_REG_STATUS<2:0> + +#define L3GD20H_ODR 0xc0 // L3GD20H_REG_CTRL1<7:6> +#define L3GD20H_BW 0x30 // L3GD20H_REG_CTRL1<5:4> +#define L3GD20H_POWER_MODE 0x08 // L3GD20H_REG_CTRL1<3> +#define L3GD20H_Z_ENABLED 0x04 // L3GD20H_REG_CTRL1<2> +#define L3GD20H_Y_ENABLED 0x02 // L3GD20H_REG_CTRL1<1> +#define L3GD20H_X_ENABLED 0x01 // L3GD20H_REG_CTRL1<0> + +#define L3GD20H_HPF_MODE 0x30 // L3GD20H_REG_CTRL2<5:4> +#define L3GD20H_HPF_CUTOFF 0x0f // L3GD20H_REG_CTRL2<3:0> + +#define L3GD20H_INT1_IG 0x80 // L3GD20H_REG_CTRL3<7> +#define L3GD20H_INT1_BOOT 0x40 // L3GD20H_REG_CTRL3<6> +#define L3GD20H_HL_ACTIVE 0x20 // L3GD20H_REG_CTRL3<5> +#define L3GD20H_PP_OD 0x10 // L3GD20H_REG_CTRL3<4> +#define L3GD20H_INT2_DRDY 0x08 // L3GD20H_REG_CTRL3<3> +#define L3GD20H_INT2_FTH 0x04 // L3GD20H_REG_CTRL3<2> +#define L3GD20H_INT2_ORUN 0x02 // L3GD20H_REG_CTRL3<1> +#define L3GD20H_INT2_EMPTY 0x01 // L3GD20H_REG_CTRL3<0> + +#define L3GD20H_BLOCK_DATA_UPDATE 0x80 // L3GD20H_REG_CTRL4<7> +#define L3GD20H_BIG_LITTLE_ENDIAN 0x40 // L3GD20H_REG_CTRL4<6> +#define L3GD20H_FULL_SCALE 0x30 // L3GD20H_REG_CTRL4<5:4> + +#define L3GD20H_BOOT 0x80 // L3GD20H_REG_CTRL5<7> +#define L3GD20H_FIFO_EN 0x40 // L3GD20H_REG_CTRL5<6> +#define L3GD20H_STOP_ON_FTH 0x20 // L3GD20H_REG_CTRL5<5> +#define L3GD20H_HP_ENABLED 0x10 // L3GD20H_REG_CTRL5<4> +#define L3GD20H_IG_SEL 0x0c // L3GD20H_REG_CTRL5<3:2> +#define L3GD20H_OUT_SEL 0x03 // L3GD20H_REG_CTRL5<1:0> + +#define L3GD20H_FIFO_MODE 0xe0 // L3GD20H_REG_FIFO_CTRL<7:5> +#define L3GD20H_FIFO_THRESH 0x1f // L3GD20H_REG_FIFO_CTRL<4:0> + +#define L3GD20H_FIFO_THS 0x80 // L3GD20H_REG_FIFO_SRC<7> +#define L3GD20H_FIFO_OVR 0x40 // L3GD20H_REG_FIFO_SRC<6> +#define L3GD20H_FIFO_EMPTY 0x20 // L3GD20H_REG_FIFO_SRC<5> +#define L3GD20H_FIFO_FFS 0x1f // L3GD20H_REG_FIFO_SRC<4:0> + +#define L3GD20H_INT1_AND_OR 0x80 // L3GD20H_REG_IG_CFG<7> +#define L3GD20H_INT1_LATCH 0x40 // L3GD20H_REG_IG_CFG<6> +#define L3GD20H_INT1_Z_HIGH 0x20 // L3GD20H_REG_IG_CFG<5>, L3GD20H_REG_IG_SRC<5> +#define L3GD20H_INT1_Z_LOW 0x10 // L3GD20H_REG_IG_CFG<4>, L3GD20H_REG_IG_SRC<4> +#define L3GD20H_INT1_Y_HIGH 0x08 // L3GD20H_REG_IG_CFG<3>, L3GD20H_REG_IG_SRC<3> +#define L3GD20H_INT1_Y_LOW 0x04 // L3GD20H_REG_IG_CFG<2>, L3GD20H_REG_IG_SRC<2> +#define L3GD20H_INT1_X_HIGH 0x02 // L3GD20H_REG_IG_CFG<1>, L3GD20H_REG_IG_SRC<1> +#define L3GD20H_INT1_X_LOW 0x01 // L3GD20H_REG_IG_CFG<0>, L3GD20H_REG_IG_SRC<0> + +#define L3GD20H_INT1_ACTIVE 0x40 // L3GD20H_REG_IG_SRC<7> + +#define L3GD20H_INT1_WAIT 0x80 // L3GD20H_REG_IG_DURATION<7> +#define L3GD20H_INT1_DURATION 0x3f // L3GD20H_REG_IG_DURATION<6:0> + +#define L3GD20H_DRDY_HL 0x20 // L3GD20H_REG_LOW_ODR<5> +#define L3GD20H_SW_RESET 0x04 // L3GD20H_REG_LOW_ODR<2> +#define L3GD20H_LOW_ODR 0x01 // L3GD20H_REG_LOW_ODR<0> + +/** Forward declaration of functions for internal use */ + +static bool l3gd20h_reset (l3gd20h_sensor_t* dev); +static bool l3gd20h_is_available(l3gd20h_sensor_t* dev); + +static bool l3gd20h_update_reg (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t mask, uint8_t val); + +static uint8_t l3gd20h_get_reg_bit (uint8_t byte, uint8_t mask); +static void l3gd20h_set_reg_bit (uint8_t* byte, uint8_t mask, uint8_t bit); + +static bool l3gd20h_i2c_read (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool l3gd20h_i2c_write (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool l3gd20h_spi_read (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); +static bool l3gd20h_spi_write (l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len); + +#define msb_lsb_to_type(t,b,o) (t)(((t)b[o] << 8) | b[o+1]) +#define lsb_msb_to_type(t,b,o) (t)(((t)b[o+1] << 8) | b[o]) +#define lsb_to_type(t,b,o) (t)(b[o]) + +l3gd20h_sensor_t* l3gd20h_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs) +{ + l3gd20h_sensor_t* dev; + + if ((dev = malloc (sizeof(l3gd20h_sensor_t))) == NULL) + return NULL; + + // init sensor data structure + dev->bus = bus; + dev->addr = addr; + dev->cs = cs; + + dev->error_code = L3GD20H_OK; + dev->scale = l3gd20h_scale_245_dps; + dev->fifo_mode = l3gd20h_bypass; + + // if addr==0 then SPI is used and has to be initialized + if (!addr && !spi_device_init (bus, cs)) + { + error_dev ("Could not initialize SPI interface.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // check availability of the sensor + if (!l3gd20h_is_available (dev)) + { + error_dev ("Sensor is not available.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + // reset the sensor + if (!l3gd20h_reset(dev)) + { + error_dev ("Could not reset the sensor device.", __FUNCTION__, dev); + free (dev); + return NULL; + } + + l3gd20h_update_reg (dev, L3GD20H_REG_CTRL4, L3GD20H_FULL_SCALE, l3gd20h_scale_245_dps); + l3gd20h_update_reg (dev, L3GD20H_REG_CTRL4, L3GD20H_BLOCK_DATA_UPDATE, 1); + + return dev; +} + + +bool l3gd20h_set_mode (l3gd20h_sensor_t* dev, l3gd20h_mode_t mode, uint8_t bw, + bool x, bool y, bool z) +{ + if (!dev) return false; + + if (bw > 3) + { + error_dev ("Bandwidth value %d not in range 0 ... 3", __FUNCTION__, dev, bw); + dev->error_code = L3GD20H_WRONG_BANDWIDTH; + return false; + } + + if (dev->mode != l3gd20h && mode != l3gd20h_power_down && mode < l3gd20h_normal_odr_100) + { + error_dev ("Low ODRs are not available for this sensor", __FUNCTION__, dev); + dev->error_code = L3GD20H_ODR_NOT_AVAILABLE; + return false; + } + + dev->error_code = L3GD20H_OK; + + uint8_t reg1 = 0; + uint8_t reg2 = 0; + + if (mode != l3gd20h_power_down) + { + // read current register values + if (!l3gd20h_reg_read (dev, L3GD20H_REG_CTRL1, ®1, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_LOW_ODR, ®2, 1)) + return false; + + // if sensor is in power mode it takes at least 100 ms to start in another mode + if (!l3gd20h_get_reg_bit (reg1, L3GD20H_POWER_MODE)) + vTaskDelay (200/portTICK_PERIOD_MS); + + if (mode >= l3gd20h_normal_odr_100) + { + // high output data rate + l3gd20h_set_reg_bit (®2, L3GD20H_LOW_ODR, 0); + l3gd20h_set_reg_bit (®1, L3GD20H_ODR, mode - l3gd20h_normal_odr_100); + } + else + { + // low output data rate + l3gd20h_set_reg_bit (®2, L3GD20H_LOW_ODR, 1); + l3gd20h_set_reg_bit (®1, L3GD20H_ODR, mode - l3gd20h_normal_odr_12_5); + } + + l3gd20h_set_reg_bit (®1, L3GD20H_POWER_MODE, 1); + l3gd20h_set_reg_bit (®1, L3GD20H_BW, bw); + l3gd20h_set_reg_bit (®1, L3GD20H_X_ENABLED, x); + l3gd20h_set_reg_bit (®1, L3GD20H_Y_ENABLED, y); + l3gd20h_set_reg_bit (®1, L3GD20H_Z_ENABLED, z); + + if (dev->mode == l3gd20h && + !l3gd20h_reg_write (dev, L3GD20H_REG_LOW_ODR, ®2, 1)) + return false; + } + else + l3gd20h_set_reg_bit (®1, L3GD20H_POWER_MODE, 0); + + if (!l3gd20h_reg_write (dev, L3GD20H_REG_CTRL1, ®1, 1)) + return false; + + return true; +} + + +bool l3gd20h_set_scale (l3gd20h_sensor_t* dev, l3gd20h_scale_t scale) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + dev->scale = scale; + + // read CTRL4 register and write scale + return l3gd20h_update_reg (dev, L3GD20H_REG_CTRL4, L3GD20H_FULL_SCALE, scale); +} + + +bool l3gd20h_set_fifo_mode (l3gd20h_sensor_t* dev, l3gd20h_fifo_mode_t mode, + uint8_t thresh) +{ + if (!dev) return false; + + if (dev->mode != l3gd20h && mode > l3gd20h_bypass_to_stream) + { + error_dev ("FIFO mode is not available for this sensor", __FUNCTION__, dev); + dev->error_code = L3GD20H_FIFO_MODE_NOT_AVAILABLE; + return false; + } + + dev->error_code = L3GD20H_OK; + dev->fifo_mode = mode; + + // read CTRL5 register and write FIFO_EN flag + if (!l3gd20h_update_reg (dev, L3GD20H_REG_CTRL5, L3GD20H_FIFO_EN, (mode != l3gd20h_bypass))) + return false; + + // read FIFO_CTRL register and write FIFO mode + if (!l3gd20h_update_reg (dev, L3GD20H_REG_FIFO_CTRL, L3GD20H_FIFO_THRESH, thresh) || + !l3gd20h_update_reg (dev, L3GD20H_REG_FIFO_CTRL, L3GD20H_FIFO_MODE, mode)) + return false; + + return true; +} + + +bool l3gd20h_select_output_filter (l3gd20h_sensor_t* dev, + l3gd20h_filter_t filter) +{ + if (!dev) return 0; + + dev->error_code = L3GD20H_OK; + + if (// try to set the register OUT_SEL in any case + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL5, L3GD20H_OUT_SEL, filter) || + // try to set HPen in case LPF2 and HPF is used + (filter == l3gd20h_hpf_and_lpf2 && + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL5, L3GD20H_HP_ENABLED, 1))) + { + error_dev ("Could not select filters for output data", __FUNCTION__, dev); + dev->error_code |= L3GD20H_SEL_OUT_FILTER_FAILED; + return false; + } + + return true; +} + + +bool l3gd20h_new_data (l3gd20h_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + uint8_t reg; + + if (dev->fifo_mode == l3gd20h_bypass) + { + if (!l3gd20h_reg_read (dev, L3GD20H_REG_STATUS, ®, 1)) + { + error_dev ("Could not get sensor status", __FUNCTION__, dev); + return false; + } + return l3gd20h_get_reg_bit (reg, L3GD20H_ANY_DATA_READY); + } + else + { + if (!l3gd20h_reg_read (dev, L3GD20H_REG_FIFO_SRC, ®, 1)) + { + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return false; + } + return l3gd20h_get_reg_bit (reg, L3GD20H_FIFO_FFS); + } +} + +// scale factors for conversion of raw sensor data to degree for possible +// sensitivities according to mechanical characteristics in datasheet +const static float L3GD20H_SCALES[3] = { (0.00875F), (0.0175F), (0.070F) }; + + +bool l3gd20h_get_float_data (l3gd20h_sensor_t* dev, l3gd20h_float_data_t* data) +{ + if (!dev || !data) return false; + + l3gd20h_raw_data_t raw; + + if (!l3gd20h_get_raw_data (dev, &raw)) + return false; + + data->x = raw.x * L3GD20H_SCALES[dev->scale]; + data->y = raw.y * L3GD20H_SCALES[dev->scale]; + data->z = raw.z * L3GD20H_SCALES[dev->scale]; + + return true; +} + + +uint8_t l3gd20h_get_float_data_fifo (l3gd20h_sensor_t* dev, l3gd20h_float_data_fifo_t data) +{ + if (!dev) return 0; + + l3gd20h_raw_data_fifo_t raw; + + uint8_t num = l3gd20h_get_raw_data_fifo (dev, raw); + + for (int i = 0; i < num; i++) + { + data[i].x = raw[i].x * L3GD20H_SCALES[dev->scale]; + data[i].y = raw[i].y * L3GD20H_SCALES[dev->scale]; + data[i].z = raw[i].z * L3GD20H_SCALES[dev->scale]; + } + + return num; +} + + +bool l3gd20h_get_raw_data (l3gd20h_sensor_t* dev, l3gd20h_raw_data_t* raw) +{ + if (!dev || !raw) return false; + + dev->error_code = L3GD20H_OK; + + // abort if not in bypass mode + if (dev->fifo_mode != l3gd20h_bypass) + { + dev->error_code = L3GD20H_SENSOR_IN_BYPASS_MODE; + error_dev ("Sensor is in FIFO mode, use l3gd20h_get_*_data_fifo to get data", + __FUNCTION__, dev); + return false; + } + + // read raw data sample + if (!l3gd20h_reg_read (dev, L3GD20H_REG_OUT_X_L, (uint8_t*)raw, 6)) + { + error_dev ("Could not get raw data", __FUNCTION__, dev); + dev->error_code |= L3GD20H_GET_RAW_DATA_FAILED; + return false; + } + + return true; +} + +uint8_t l3gd20h_get_raw_data_fifo (l3gd20h_sensor_t* dev, l3gd20h_raw_data_fifo_t raw) +{ + if (!dev) return 0; + + dev->error_code = L3GD20H_OK; + + // in bypass mode, use lis3dh_get_raw_data to return one sample + if (dev->fifo_mode == l3gd20h_bypass) + return l3gd20h_get_raw_data (dev, raw) ? 1 : 0; + + uint8_t reg; + + // read FIFO state + if (!l3gd20h_reg_read (dev, L3GD20H_REG_FIFO_SRC, ®, 1)) + { + error_dev ("Could not get fifo source register data", __FUNCTION__, dev); + return 0; + } + + // if nothing is in the FIFO, just return with 0 + if (reg & L3GD20H_FIFO_EMPTY) + return 0; + + // read samples from FIFO + uint8_t samples = (reg & L3GD20H_FIFO_FFS) + (reg & L3GD20H_FIFO_OVR ? 1 : 0); + + // read samples from FIFO + for (int i = 0; i < samples; i++) + if (!l3gd20h_reg_read (dev, L3GD20H_REG_OUT_X_L, (uint8_t*)&raw[i], 6)) + { + error_dev ("Could not get raw data", __FUNCTION__, dev); + dev->error_code |= L3GD20H_GET_RAW_DATA_FIFO_FAILED; + return i; + } + + l3gd20h_reg_read (dev, L3GD20H_REG_FIFO_SRC, ®, 1); + + if (reg & L3GD20H_FIFO_FFS) + { + dev->error_code = L3GD20H_ODR_TOO_HIGH; + error_dev ("New samples stored in FIFO while reading, " + "output data rate (ODR) too high", __FUNCTION__, dev); + } + + if (dev->fifo_mode == l3gd20h_fifo && samples == 32) + { + // clean FIFO (see app note) + l3gd20h_update_reg (dev, L3GD20H_REG_FIFO_CTRL, L3GD20H_FIFO_MODE, l3gd20h_bypass); + l3gd20h_update_reg (dev, L3GD20H_REG_FIFO_CTRL, L3GD20H_FIFO_MODE, l3gd20h_fifo); + } + + return samples; +} + + +bool l3gd20h_enable_int (l3gd20h_sensor_t* dev, + l3gd20h_int_types_t type, bool value) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + uint8_t mask; + + switch (type) + { + case l3gd20h_int_data_ready: mask = L3GD20H_INT2_DRDY; break; + case l3gd20h_int_fifo_threshold: mask = L3GD20H_INT2_FTH; break; + case l3gd20h_int_fifo_overrun: mask = L3GD20H_INT2_ORUN; break; + case l3gd20h_int_fifo_empty: mask = L3GD20H_INT2_EMPTY; break; + case l3gd20h_int_event: mask = L3GD20H_INT1_IG; break; + default: dev->error_code = L3GD20H_WRONG_INT_TYPE; + error_dev ("Wrong interrupt type", __FUNCTION__, dev); + return false; + } + + if (!l3gd20h_update_reg (dev, L3GD20H_REG_CTRL3, mask, value)) + { + error_dev ("Could not %s interrupt INT2", __FUNCTION__, dev, value ? "enable" : "disable"); + dev->error_code |= L3GD20H_CONFIG_INT2_FAILED; + return false; + } + + return true; +} + + +bool l3gd20h_set_int_event_config (l3gd20h_sensor_t* dev, + l3gd20h_int_event_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = L3GD20H_OK; + + uint8_t ig_cfg = 0; + uint8_t ig_dur = 0; + uint8_t ig_ths[6] = { 0 }; + + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_X_LOW , config->x_low_enabled); + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_X_HIGH, config->x_high_enabled); + + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_Y_LOW , config->y_low_enabled); + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_Y_HIGH, config->y_high_enabled); + + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_Z_LOW , config->z_low_enabled); + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_Z_HIGH, config->z_high_enabled); + + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_LATCH , config->latch); + l3gd20h_set_reg_bit (&ig_cfg, L3GD20H_INT1_AND_OR, config->and_or); + + l3gd20h_set_reg_bit (&ig_dur, L3GD20H_INT1_WAIT , config->wait); + l3gd20h_set_reg_bit (&ig_dur, L3GD20H_INT1_DURATION, config->duration); + + ig_ths[0] = (config->x_threshold >> 8) & 0x7f; + ig_ths[1] = (config->x_threshold & 0xff); + ig_ths[2] = (config->y_threshold >> 8) & 0x7f; + ig_ths[3] = (config->y_threshold & 0xff); + ig_ths[4] = (config->z_threshold >> 8) & 0x7f; + ig_ths[5] = (config->z_threshold & 0xff); + + if (// write the thresholds to registers IG_THS_* + !l3gd20h_reg_write (dev, L3GD20H_REG_IG_THS_XH, ig_ths, 6) || + + // write duration configuration to IG_DURATION + !l3gd20h_reg_write (dev, L3GD20H_REG_IG_DURATION, &ig_dur, 1) || + + // write INT1 configuration to IG_CFG + !l3gd20h_reg_write (dev, L3GD20H_REG_IG_CFG, &ig_cfg, 1)) + { + error_dev ("Could not configure interrupt INT1", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_INT1_FAILED; + return false; + } + + + if (// ouput value selection used for threshold comparison for INT1 generation + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL5, L3GD20H_IG_SEL, config->filter) || + + // try to set HPen in case LPF2 and HPF is used + (config->filter == l3gd20h_hpf_and_lpf2 && + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL5, L3GD20H_HP_ENABLED, 1))) + { + error_dev ("Could not configure interrupt INT1", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_INT1_FAILED; + return false; + } + + return true; +} + + +bool l3gd20h_get_int_event_config (l3gd20h_sensor_t* dev, + l3gd20h_int_event_config_t* config) +{ + if (!dev || !config) return false; + + dev->error_code = L3GD20H_OK; + + uint8_t ig_cfg; + uint8_t ig_dur; + uint8_t ig_ths[6]; + uint8_t ctrl3; + uint8_t ctrl5; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_IG_THS_XH, ig_ths, 6) || + !l3gd20h_reg_read (dev, L3GD20H_REG_IG_CFG, &ig_cfg, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_IG_DURATION, &ig_dur, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_CTRL3, &ctrl3, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_CTRL5, &ctrl5, 1)) + { + dev->error_code |= L3GD20H_CONFIG_INT1_FAILED; + error_dev ("Could not read configuration for interrupt INT1 from sensor", + __FUNCTION__, dev); + return false; + } + + config->x_low_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_X_LOW); + config->x_high_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_X_HIGH); + + config->y_low_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_Y_LOW); + config->y_high_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_Y_HIGH); + + config->z_low_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_Z_LOW); + config->z_high_enabled = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_Z_HIGH); + + config->x_threshold = msb_lsb_to_type(uint16_t, ig_ths, 0); + config->y_threshold = msb_lsb_to_type(uint16_t, ig_ths, 2); + config->z_threshold = msb_lsb_to_type(uint16_t, ig_ths, 4); + + config->filter = l3gd20h_get_reg_bit (ctrl5, L3GD20H_IG_SEL); + + config->and_or = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_AND_OR); + config->latch = l3gd20h_get_reg_bit (ig_cfg, L3GD20H_INT1_LATCH); + + config->wait = l3gd20h_get_reg_bit (ig_dur, L3GD20H_INT1_WAIT); + config->duration = l3gd20h_get_reg_bit (ig_dur, L3GD20H_INT1_DURATION); + + config->counter_mode = 0; + + return true; +} + + +bool l3gd20h_get_int_event_source (l3gd20h_sensor_t* dev, l3gd20h_int_event_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = L3GD20H_OK; + + l3gd20h_int_event_source_t ig_cfg; + l3gd20h_int_event_source_t ig_src; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_IG_CFG, (uint8_t*)&ig_cfg, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_IG_SRC, (uint8_t*)&ig_src, 1)) + { + error_dev ("Could not read source of interrupt INT1 from sensor", __FUNCTION__, dev); + dev->error_code |= L3GD20H_INT1_SOURCE_FAILED; + return false; + } + + source->active = ig_src.active; + source->x_low = ig_src.x_low & ig_cfg.x_low; + source->x_high = ig_src.x_high & ig_cfg.x_high; + source->y_low = ig_src.y_low & ig_cfg.y_low; + source->y_high = ig_src.y_high & ig_cfg.y_high; + source->z_low = ig_src.z_low & ig_cfg.z_low; + source->z_high = ig_src.z_high & ig_cfg.z_high; + + return true; +} + + +bool l3gd20h_get_int_data_source (l3gd20h_sensor_t* dev, l3gd20h_int_data_source_t* source) +{ + if (!dev || !source) return false; + + dev->error_code = L3GD20H_OK; + + uint8_t fifo_src; + uint8_t status; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_STATUS, &status, 1) || + !l3gd20h_reg_read (dev, L3GD20H_REG_FIFO_SRC, &fifo_src, 1)) + { + error_dev ("Could not read source of interrupt INT2 from sensor", __FUNCTION__, dev); + dev->error_code |= L3GD20H_INT2_SOURCE_FAILED; + return false; + } + + source->data_ready = l3gd20h_get_reg_bit (status, L3GD20H_ANY_DATA_READY); + source->fifo_threshold = l3gd20h_get_reg_bit (fifo_src, L3GD20H_FIFO_THS); + source->fifo_overrun = l3gd20h_get_reg_bit (fifo_src, L3GD20H_FIFO_OVR); + source->fifo_empty = l3gd20h_get_reg_bit (fifo_src, L3GD20H_FIFO_EMPTY); + + return true; +} + + +bool l3gd20h_config_int_signals (l3gd20h_sensor_t* dev, + l3gd20h_signal_type_t type, + l3gd20h_signal_level_t level) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + if (!l3gd20h_update_reg (dev, L3GD20H_REG_CTRL3, L3GD20H_HL_ACTIVE, level) || + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL3, L3GD20H_PP_OD, type) || + !l3gd20h_update_reg (dev, L3GD20H_REG_LOW_ODR, L3GD20H_DRDY_HL, level)) + { + error_dev ("Could not configure interrupt signals", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_INT_SIGNALS_FAILED; + return false; + } + + return true; +} + + +bool l3gd20h_config_hpf (l3gd20h_sensor_t* dev, l3gd20h_hpf_mode_t mode, + uint8_t cutoff) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + if (!l3gd20h_update_reg (dev, L3GD20H_REG_CTRL2, L3GD20H_HPF_MODE, mode) || + !l3gd20h_update_reg (dev, L3GD20H_REG_CTRL2, L3GD20H_HPF_CUTOFF, cutoff)) + { + error_dev ("Could not configure high pass filter", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_HPF_FAILED; + return false; + } + + return true; +} + + +bool l3gd20h_set_hpf_ref (l3gd20h_sensor_t* dev, int8_t ref) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + if (!l3gd20h_reg_write (dev, L3GD20H_REG_REFERENCE, (uint8_t*)&ref, 1)) + { + error_dev ("Could not set high pass filter reference", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_HPF_FAILED; + return false; + } + + return true; +} + +int8_t l3gd20h_get_hpf_ref (l3gd20h_sensor_t* dev) +{ + if (!dev) return 0; + + dev->error_code = L3GD20H_OK; + + int8_t ref = 0; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_REFERENCE, (uint8_t*)&ref, 1)) + { + error_dev ("Could not get high pass filter reference", __FUNCTION__, dev); + dev->error_code |= L3GD20H_CONFIG_HPF_FAILED; + return 0; + } + + return ref; +} + + +int8_t l3gd20h_get_temperature (l3gd20h_sensor_t* dev) +{ + if (!dev) return 0; + + dev->error_code = L3GD20H_OK; + + int8_t reg; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_OUT_TEMP, (uint8_t*)(®), 1)) + { + error_dev ("Could not get temperature", __FUNCTION__, dev); + return false; + } + + return reg; +} + + +/** Functions for internal use only */ + +/** + * @brief Check the chip ID to test whether sensor is available + */ +static bool l3gd20h_is_available (l3gd20h_sensor_t* dev) +{ + uint8_t chip_id; + + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + if (!l3gd20h_reg_read (dev, L3GD20H_REG_WHO_AM_I, &chip_id, 1)) + return false; + + switch (chip_id) + { + case L3GD20H_CHIP_ID: dev->mode = l3gd20h ; break; + case L3GD20_CHIP_ID: dev->mode = l3gd20 ; break; + case L3G4200D_CHIP_ID: dev->mode = l3g4200d; break; + default: error_dev ("Chip id %02x is wrong, should be %02x.", + __FUNCTION__, dev, chip_id, L3GD20H_CHIP_ID); + dev->error_code = L3GD20H_WRONG_CHIP_ID; + return false; + } + + return true; +} + + +static bool l3gd20h_reset (l3gd20h_sensor_t* dev) +{ + if (!dev) return false; + + dev->error_code = L3GD20H_OK; + + if (!l3gd20h_update_reg (dev, L3GD20H_REG_LOW_ODR, L3GD20H_SW_RESET, 1)) + return false; + + vTaskDelay(100/portTICK_PERIOD_MS); + + uint8_t reg[6] = { 0 }; + + // initialize sensor completely including setting in power down mode + l3gd20h_reg_write (dev, L3GD20H_REG_CTRL1 , reg, 6); + l3gd20h_reg_write (dev, L3GD20H_REG_FIFO_CTRL, reg, 1); + l3gd20h_reg_write (dev, L3GD20H_REG_IG_CFG , reg, 1); + l3gd20h_reg_write (dev, L3GD20H_REG_IG_THS_XH, reg, 6); + + return true; +} + + +static bool l3gd20h_update_reg(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t mask, uint8_t val) +{ + if (!dev) return false; + + uint8_t reg_val; + uint8_t shift = 0; + + while (!((mask >> shift) & 0x01)) shift++; + + // read current register value + if (!l3gd20h_reg_read (dev, reg, ®_val, 1)) + return false; + + // set masked bits to the given value + reg_val = (reg_val & ~mask) | ((val << shift) & mask); + + // write back new register value + if (!l3gd20h_reg_write (dev, reg, ®_val, 1)) + return false; + + return true; +} + +bool l3gd20h_reg_read(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? l3gd20h_i2c_read (dev, reg, data, len) + : l3gd20h_spi_read (dev, reg, data, len); +} + + +bool l3gd20h_reg_write(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + return (dev->addr) ? l3gd20h_i2c_write (dev, reg, data, len) + : l3gd20h_spi_write (dev, reg, data, len); +} + + +static void l3gd20h_set_reg_bit (uint8_t* byte, uint8_t mask, uint8_t bit) +{ + if (byte) + { + uint8_t shift = 0; + while (!((mask >> shift) & 0x01)) shift++; + *byte = ((*byte & ~mask) | ((bit << shift) & mask)); + } +} + + +static uint8_t l3gd20h_get_reg_bit(uint8_t byte, uint8_t mask) +{ + uint8_t shift = 0; + while (!((mask >> shift) & 0x01)) shift++; + return (byte & mask) >> shift; +} + + +#define L3GD20H_SPI_BUF_SIZE 64 // SPI register data buffer size + +#define L3GD20H_SPI_READ_FLAG 0x80 +#define L3GD20H_SPI_WRITE_FLAG 0x00 +#define L3GD20H_SPI_AUTO_INC_FLAG 0x40 + +static bool l3gd20h_spi_read(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + if (len >= L3GD20H_SPI_BUF_SIZE) + { + dev->error_code |= L3GD20H_SPI_BUFFER_OVERFLOW; + error_dev ("Error on read from SPI slave on bus 1. Tried to transfer " + "more than %d byte in one read operation.", + __FUNCTION__, dev, L3GD20H_SPI_BUF_SIZE); + return false; + } + + uint8_t addr = (reg & 0x3f) | L3GD20H_SPI_READ_FLAG | L3GD20H_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[L3GD20H_SPI_BUF_SIZE]; + static uint8_t miso[L3GD20H_SPI_BUF_SIZE]; + + memset (mosi, 0xff, L3GD20H_SPI_BUF_SIZE); + memset (miso, 0xff, L3GD20H_SPI_BUF_SIZE); + + mosi[0] = addr; + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, miso, len+1)) + { + error_dev ("Could not read data from SPI", __FUNCTION__, dev); + dev->error_code |= L3GD20H_SPI_READ_FAILED; + return false; + } + + // shift data one by left, first byte received while sending register address is invalid + for (int i=0; i < len; i++) + data[i] = miso[i+1]; + + #ifdef L3GD20H_DEBUG_LEVEL_2 + printf("L3GD20H %s: read the following bytes from reg %02x: ", __FUNCTION__, reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); + #endif + + return true; +} + + +static bool l3gd20h_spi_write(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + uint8_t addr = (reg & 0x3f) | L3GD20H_SPI_WRITE_FLAG | L3GD20H_SPI_AUTO_INC_FLAG; + + static uint8_t mosi[L3GD20H_SPI_BUF_SIZE]; + + if (len >= L3GD20H_SPI_BUF_SIZE) + { + dev->error_code |= L3GD20H_SPI_BUFFER_OVERFLOW; + error_dev ("Error on write to SPI slave on bus 1. Tried to transfer more" + "than %d byte in one write operation.", __FUNCTION__, dev, L3GD20H_SPI_BUF_SIZE); + + return false; + } + + reg &= 0x7f; + + // first byte in output is the register address + mosi[0] = addr; + + // shift data one byte right, first byte in output is the register address + for (int i = 0; i < len; i++) + mosi[i+1] = data[i]; + + #ifdef L3GD20H_DEBUG_LEVEL_2 + printf("L3GD20H %s: Write the following bytes to reg %02x: ", __FUNCTION__, reg); + for (int i = 1; i < len+1; i++) + printf("%02x ", mosi[i]); + printf("\n"); + #endif + + if (!spi_transfer_pf (dev->bus, dev->cs, mosi, NULL, len+1)) + { + error_dev ("Could not write data to SPI.", __FUNCTION__, dev); + dev->error_code |= L3GD20H_SPI_WRITE_FAILED; + return false; + } + + return true; +} + + +#define I2C_AUTO_INCREMENT (0x80) + +static bool l3gd20h_i2c_read(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Read %d byte from i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_read(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? L3GD20H_I2C_BUSY : L3GD20H_I2C_READ_FAILED; + error_dev ("Error %d on read %d byte from I2C slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef L3GD20H_DEBUG_LEVEL_2 + printf("L3GD20H %s: Read following bytes: ", __FUNCTION__); + printf("%02x: ", reg & 0x7f); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} + + +static bool l3gd20h_i2c_write(l3gd20h_sensor_t* dev, uint8_t reg, uint8_t *data, uint16_t len) +{ + if (!dev || !data) return false; + + debug_dev ("Write %d byte to i2c slave register %02x.", __FUNCTION__, dev, len, reg); + + if (len > 1) + reg |= I2C_AUTO_INCREMENT; + + int result = i2c_slave_write(dev->bus, dev->addr, ®, data, len); + + if (result) + { + dev->error_code |= (result == -EBUSY) ? L3GD20H_I2C_BUSY : L3GD20H_I2C_WRITE_FAILED; + error_dev ("Error %d on write %d byte to i2c slave register %02x.", + __FUNCTION__, dev, result, len, reg); + return false; + } + +# ifdef L3GD20H_DEBUG_LEVEL_2 + printf("L3GD20H %s: Wrote the following bytes: ", __FUNCTION__); + printf("%02x: ", reg); + for (int i=0; i < len; i++) + printf("%02x ", data[i]); + printf("\n"); +# endif + + return true; +} diff --git a/extras/l3gd20h/l3gd20h.h b/extras/l3gd20h/l3gd20h.h new file mode 100644 index 0000000..d9cd216 --- /dev/null +++ b/extras/l3gd20h/l3gd20h.h @@ -0,0 +1,408 @@ +/** + * Driver for L3GD20H 3-axes digital output gyroscope connected to I2C or SPI. + * It can also be used with L3GD20 and L3G4200D. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __L3GD20H_H__ +#define __L3GD20H_H__ + +// Uncomment one of the following defines to enable debug output +// #define L3GD20H_DEBUG_LEVEL_1 // only error messages +// #define L3GD20H_DEBUG_LEVEL_2 // debug and error messages + +// L3GD20H addresses +#define L3GD20H_I2C_ADDRESS_1 0x6a // SDO pin is low +#define L3GD20H_I2C_ADDRESS_2 0x6b // SDO pin is high + +// L3GD20 addresses +#define L3GD20_I2C_ADDRESS_1 0x6a // SDO pin is low +#define L3GD20_I2C_ADDRESS_2 0x6b // SDO pin is high + +// L3G4200D addresses +#define L3G4200D_I2C_ADDRESS_1 0x68 // SDO pin is low +#define L3G4200D_I2C_ADDRESS_2 0x69 // SDO pin is high + +// L3GD20H chip id +#define L3GD20H_CHIP_ID 0xd7 // L3GD20H_REG_WHO_AM_I<7:0> + +// L3GD20 chip id +#define L3GD20_CHIP_ID 0xd4 // L3GD20H_REG_WHO_AM_I<7:0> + +// L3G4200D chip id +#define L3G4200D_CHIP_ID 0xd3 // L3GD20H_REG_WHO_AM_I<7:0> + +// Definition of error codes +#define L3GD20H_OK 0 +#define L3GD20H_NOK -1 + +#define L3GD20H_INT_ERROR_MASK 0x000f +#define L3GD20H_DRV_ERROR_MASK 0xfff0 + +// Error codes for I2C and SPI interfaces ORed with L3GD20H driver error codes +#define L3GD20H_I2C_READ_FAILED 1 +#define L3GD20H_I2C_WRITE_FAILED 2 +#define L3GD20H_I2C_BUSY 3 +#define L3GD20H_SPI_WRITE_FAILED 4 +#define L3GD20H_SPI_READ_FAILED 5 +#define L3GD20H_SPI_BUFFER_OVERFLOW 6 +#define L3GD20H_SPI_SET_PAGE_FAILED 7 + +// L3GD20H driver error codes ORed with error codes for I2C and SPI interfaces +#define L3GD20H_WRONG_CHIP_ID ( 1 << 8) +#define L3GD20H_WRONG_BANDWIDTH ( 2 << 8) +#define L3GD20H_GET_RAW_DATA_FAILED ( 3 << 8) +#define L3GD20H_GET_RAW_DATA_FIFO_FAILED ( 4 << 8) +#define L3GD20H_WRONG_INT_TYPE ( 5 << 8) +#define L3GD20H_CONFIG_INT_SIGNALS_FAILED ( 6 << 8) +#define L3GD20H_CONFIG_INT1_FAILED ( 7 << 8) +#define L3GD20H_CONFIG_INT2_FAILED ( 8 << 8) +#define L3GD20H_INT1_SOURCE_FAILED ( 9 << 8) +#define L3GD20H_INT2_SOURCE_FAILED (10 << 8) +#define L3GD20H_SEL_OUT_FILTER_FAILED (11 << 8) +#define L3GD20H_CONFIG_HPF_FAILED (12 << 8) +#define L3GD20H_ENABLE_HPF_FAILED (13 << 8) +#define L3GD20H_SENSOR_IN_BYPASS_MODE (14 << 8) +#define L3GD20H_SENSOR_IN_FIFO_MODE (15 << 8) +#define L3GD20H_ODR_TOO_HIGH (16 << 8) +#define L3GD20H_ODR_NOT_AVAILABLE (17 << 8) +#define L3GD20H_FIFO_MODE_NOT_AVAILABLE (18 << 8) + +#include "l3gd20h_platform.h" +#include "l3gd20h_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Initialize the sensor + * + * Reset the sensor and switch to power down mode. All registers are reset to + * default values. FIFO is cleared. + * + * @param bus I2C or SPI bus at which L3GD20H sensor is connected + * @param addr I2C addr of the L3GD20H sensor, 0 for using SPI + * @param cs SPI CS GPIO, ignored for I2C + * @return pointer to sensor data structure, or NULL on error + */ +l3gd20h_sensor_t* l3gd20h_init_sensor (uint8_t bus, uint8_t addr, uint8_t cs); + + +/** + * @brief Set sensor mode + * + * @param dev pointer to the sensor device data structure + * @param mode sensor mode with certain output data rate + * @param bw bandwidth + * @param x true enable x-axis, false disable x-axis + * @param y true enable y-axis, false disable y-axis + * @param z true enable z-axis, false disable z-axis + * @return true on success, false on error + */ +bool l3gd20h_set_mode (l3gd20h_sensor_t* dev, l3gd20h_mode_t mode, uint8_t bw, + bool x, bool y, bool z); + + +/** + * @brief Set scale (full range range) + * + * @param dev pointer to the sensor device data structure + * @param scale range setting + * @return true on success, false on error + */ +bool l3gd20h_set_scale (l3gd20h_sensor_t* dev, l3gd20h_scale_t sens); + + +/** + * @brief Set FIFO mode + * + * @param dev pointer to the sensor device data structure + * @param mode FIFO mode + * @param thresh FIFO watermark (ignored in bypass mode) + * @return true on success, false on error + */ +bool l3gd20h_set_fifo_mode (l3gd20h_sensor_t* dev, + l3gd20h_fifo_mode_t mode, uint8_t thresh); + + +/** + * @brief Filter selection for raw data output values + * + * High pass filter (HPF) is configured with function *l3gd20h_config_hpf*. If + * HPF is selected, it is enabled implicitly. + * + * @param dev pointer to the sensor device data structure + * @param filter selected filters for output values + * @return true on success, false on error + */ +bool l3gd20h_select_output_filter (l3gd20h_sensor_t* dev, + l3gd20h_filter_t filter); + + +/** + * @brief Test whether new sets of data are available + * + * @param dev pointer to the sensor device data structure + * @return true on new data, otherwise false + */ +bool l3gd20h_new_data (l3gd20h_sensor_t* dev); + + +/** + * @brief Get one sample of floating point sensor data (unit degree) + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *l3gd20h_get_float_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param data pointer to float data structure filled with values + * @return true on success, false on error + */ +bool l3gd20h_get_float_data (l3gd20h_sensor_t* dev, + l3gd20h_float_data_t* data); + + +/** + * @brief Get all samples of sensor data stored in the FIFO (unit dps) + * + * In bypass mode, it returns only one sensor data sample. + * + * @param dev pointer to the sensor device data structure + * @param data array of 32 float data structures + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t l3gd20h_get_float_data_fifo (l3gd20h_sensor_t* dev, + l3gd20h_float_data_fifo_t data); + + +/** + * @brief Get one sample of raw sensor data as 16 bit two's complements + * + * Function works only in bypass mode and fails in FIFO modes. In FIFO modes, + * function *l3gd20h_get_raw_data_fifo* has to be used instead to get data. + * + * @param dev pointer to the sensor device data structure + * @param raw pointer to raw data structure filled with values + * @return true on success, false on error + */ +bool l3gd20h_get_raw_data (l3gd20h_sensor_t* dev, + l3gd20h_raw_data_t* raw); + + +/** + * @brief Get all samples of raw sensor data stored in the FIFO + * + * In bypass mode, it returns only one raw data sample. + * + * @param dev pointer to the sensor device data structure + * @param raw array of 32 raw data structures + * @return number of data sets read from fifo on success or 0 on error + */ +uint8_t l3gd20h_get_raw_data_fifo (l3gd20h_sensor_t* dev, + l3gd20h_raw_data_fifo_t raw); + + +/** + * @brief Enable / disable data or event interrupts on signal INT1/INT2 + * + * @param dev pointer to the sensor device data structure + * @param type type of the interrupt to be enabled/disabled + * @param value true to enable or false to disable the interrupt + * @return true on success, false on error + */ +bool l3gd20h_enable_int (l3gd20h_sensor_t* dev, + l3gd20h_int_types_t type, bool value); + + + +/** + * @brief Set the configuration of the event interrupt generator + * + * The event interrupt generator produces interrupts (axis movement and wake up) + * on signal INT1 whenever the angular rate of one or more axes becomes higher + * or lower than defined thresholds. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool l3gd20h_set_int_event_config (l3gd20h_sensor_t* dev, + l3gd20h_int_event_config_t* config); + + +/** + * @brief Get the configuration of the event interrupt generator + * + * The event interrupt generator produces interrupts (axis movement and wake up) + * on signal INT1 whenever the angular rate of one or more axes becomes higher + * or lower than defined thresholds. + * + * @param dev pointer to the sensor device data structure + * @param config pointer to the interrupt generator configuration + * @return true on success, false on error + */ +bool l3gd20h_get_int_event_config (l3gd20h_sensor_t* dev, + l3gd20h_int_event_config_t* config); + + +/** + * @brief Get the source of an event interrupt (axis movement and wake up) + * + * @param dev pointer to the sensor device data structure + * @param type pointer to the interrupt source + * @return true on success, false on error + */ +bool l3gd20h_get_int_event_source (l3gd20h_sensor_t* dev, + l3gd20h_int_event_source_t* source); + + +/** + * @brief Get the source of a data interrupt (data ready or FIFO status) + * + * @param dev pointer to the sensor device data structure + * @param source pointer to the interrupt source + * @return true on success, false on error + */ +bool l3gd20h_get_int_data_source (l3gd20h_sensor_t* dev, + l3gd20h_int_data_source_t* source); + + +/** + * @brief Set signal configuration for INT1 and INT2 signals + * + * @param dev pointer to the sensor device data structure + * @param type define interrupt signal as pushed/pulled or open drain + * @return true on success, false on error + */ +bool l3gd20h_config_int_signals (l3gd20h_sensor_t* dev, + l3gd20h_signal_type_t type, + l3gd20h_signal_level_t level); + + +/** + * @brief Config HPF (high pass filter) + * + * @param dev pointer to the sensor device data structure + * @param mode high pass filter mode + * @param cutoff cutoff frequency (depends on output data rate) [0 ... 15] + * @return true on success, false on error + */ +bool l3gd20h_config_hpf (l3gd20h_sensor_t* dev, + l3gd20h_hpf_mode_t mode, uint8_t cutoff); + + +/** + * @brief Set HPF (high pass filter) reference + * + * Used to set the reference of HPF in reference mode *l3gd20h_hpf_reference*. + * Used to reset the HPF in autoreset mode *l3gd20h_hpf_autoreset*. + * Reference is given as two's complement. + * + * @param dev pointer to the sensor device data structure + * @param ref reference *l3gd20h_hpf_reference* mode, otherwise ignored + * @return true on success, false on error + */ +bool l3gd20h_set_hpf_ref (l3gd20h_sensor_t* dev, int8_t ref); + + +/** + * @brief Get HPF (high pass filter) reference + * + * Used to reset the HPF in normal mode *l3gd20h_hpf_normal*. + * + * @param dev pointer to the sensor device data structure + * @return HPF reference as two's complement + */ +int8_t l3gd20h_get_hpf_ref (l3gd20h_sensor_t* dev); + + +/** + * @brief Get temperature + * + * @param dev pointer to the sensor device data structure + * @return temperature in degree as two's complement + */ +int8_t l3gd20h_get_temperature (l3gd20h_sensor_t* dev); + + +// ---- Low level interface functions ----------------------------- + +/** + * @brief Direct write to register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be changed + * @param data pointer to the data to be written to the register + * @param len number of bytes to be written to the register + * @return true on success, false on error + */ +bool l3gd20h_reg_write (l3gd20h_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +/** + * @brief Direct read from register + * + * PLEASE NOTE: This function should only be used to do something special that + * is not covered by the high level interface AND if you exactly know what you + * do and what effects it might have. Please be aware that it might affect the + * high level interface. + * + * @param dev pointer to the sensor device data structure + * @param reg address of the first register to be read + * @param data pointer to the data to be read from the register + * @param len number of bytes to be read from the register + * @return true on success, false on error + */ +bool l3gd20h_reg_read (l3gd20h_sensor_t* dev, + uint8_t reg, uint8_t *data, uint16_t len); + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __L3GD20H_H__ */ diff --git a/extras/l3gd20h/l3gd20h_platform.c b/extras/l3gd20h/l3gd20h_platform.c new file mode 100644 index 0000000..d1db563 --- /dev/null +++ b/extras/l3gd20h/l3gd20h_platform.c @@ -0,0 +1,82 @@ +/** + * Driver for L3GD20H 3-axes digital output gyroscope connected to I2C or SPI. + * It can also be used with L3GD20 and L3G4200D. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#include "l3gd20h_platform.h" + +// platform specific SPI functions + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + diff --git a/extras/l3gd20h/l3gd20h_platform.h b/extras/l3gd20h/l3gd20h_platform.h new file mode 100644 index 0000000..9293bad --- /dev/null +++ b/extras/l3gd20h/l3gd20h_platform.h @@ -0,0 +1,81 @@ +/** + * Driver for L3GD20H 3-axes digital output gyroscope connected to I2C or SPI. + * It can also be used with L3GD20 and L3G4200D. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#ifndef __L3GD20H_PLATFORM_H__ +#define __L3GD20H_PLATFORM_H__ + +#if !defined(ESP_OPEN_RTOS) +#define ESP_OPEN_RTOS 1 +#endif + +#ifdef ESP_OPEN_RTOS // ESP8266 + +// platform specific includes + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +#include "espressif/esp_common.h" +#include "espressif/sdk_private.h" + +#include "esp/uart.h" +#include "esp/spi.h" +#include "i2c/i2c.h" + +// platform specific SPI functions + +#define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 + +extern bool spi_device_init (uint8_t bus, uint8_t cs); +extern size_t spi_transfer_pf(uint8_t bus, uint8_t cs, + const uint8_t *mosi, uint8_t *miso, + uint16_t len); + +#endif // ESP_OPEN_RTOS + +#endif // __L3GD20H_PLATFORM_H__ diff --git a/extras/l3gd20h/l3gd20h_types.h b/extras/l3gd20h/l3gd20h_types.h new file mode 100644 index 0000000..cadb740 --- /dev/null +++ b/extras/l3gd20h/l3gd20h_types.h @@ -0,0 +1,310 @@ +/** + * Driver for L3GD20H 3-axes digital output gyroscope connected to I2C or SPI. + * It can also be used with L3GD20 and L3G4200D. + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __L3GD20H_TYPES_H__ +#define __L3GD20H_TYPES_H__ + +#include "stdint.h" +#include "stdbool.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Output data rates (ODR) + */ +typedef enum +{ + l3gd20h_power_down = 0, // power down mode + l3gd20h_normal_odr_12_5, // normal mode with low output data rate 12.5 Hz + l3gd20h_normal_odr_25, // normal mode with low output data rate 25 Hz + l3gd20h_normal_odr_50, // normal mode with low output data rate 50 Hz + l3gd20h_normal_odr_100, // normal mode with high output data rate 100 Hz + l3gd20h_normal_odr_200, // normal mode with high output data rate 200 Hz + l3gd20h_normal_odr_400, // normal mode with high output data rate 400 Hz + l3gd20h_normal_odr_800, // normal mode with high output data rate 800 Hz + +} l3gd20h_mode_t; + +#define l3gd20_normal_odr_95 l3gd20h_normal_odr_100 +#define l3gd20_normal_odr_190 l3gd20h_normal_odr_200 +#define l3gd20_normal_odr_380 l3gd20h_normal_odr_400 +#define l3gd20_normal_odr_760 l3gd20h_normal_odr_800 + +/** + * @brief Sensitivity level + */ +typedef enum +{ + l3gd20h_scale_245_dps = 0, // default + l3gd20h_scale_500_dps, + l3gd20h_scale_2000_dps + +} l3gd20h_scale_t; + +#define l3gd20_scale_250_dps l3gd20h_scale_245_dps +#define l3gd20_scale_500_dps l3gd20h_scale_500_dps +#define l3gd20_scale_2000_dps l3gd20h_scale_2000_dps + +/** + * @brief FIFO mode + */ +typedef enum +{ + l3gd20h_bypass = 0, // default + l3gd20h_fifo = 1, + l3gd20h_stream = 2, + l3gd20h_stream_to_fifo = 3, + l3gd20h_bypass_to_stream = 5, + l3gd20h_dynamic_stream = 6, + l3gd20h_bypass_to_fifo = 7 + +} l3gd20h_fifo_mode_t; + + +/** + * @brief High pass filter (HPF) and low pass filter 2 (LPF2) modes + */ +typedef enum +{ + l3gd20h_no_filter = 0, // HPF not used, LPF2 not used + l3gd20h_hpf_only, // HPF used, LPF2 not used + l3gd20h_lpf2_only, // HPF not used, LPF2 used + l3gd20h_hpf_and_lpf2 // HPF used, LPF2 used + +} l3gd20h_filter_t; + + +/** + * @brief Interrupt types + */ +typedef enum { + + l3gd20h_int_data_ready, // data are ready to read (INT2) + + l3gd20h_int_fifo_threshold, // FIFO filling exceds FTH level (INT2) + l3gd20h_int_fifo_overrun, // FIFO is completely filled (INT2) + l3gd20h_int_fifo_empty, // FIFO becomes empty (INT2) + + l3gd20h_int_event // angular rate of one or more axes becomes + // lower or higher than threshold (INT1) +} l3gd20h_int_types_t; + + +/** + * @brief Event interrupt generator configuration (axis movement and wake up) + * + * memset to 0 to disable all interrupt conditions (default) + */ +typedef struct +{ + bool x_low_enabled; // x lower than threshold interrupt enabled + bool x_high_enabled; // x higher than threshold interrupt enabled + uint16_t x_threshold; // x threshold value + + bool y_low_enabled; // y lower than threshold interrupt enabled + bool y_high_enabled; // y higher than threshold interrupt enabled + uint16_t y_threshold; // y threshold value + + bool z_low_enabled; // z lower than threshold interrupt enabled + bool z_high_enabled; // z higher than threshold interrupt enabled + uint16_t z_threshold; // z threshold value + + l3gd20h_filter_t filter; // HPF and LPF2 mode used for threshold comparison + + bool and_or; // interrupt combination true - AND, false - OR + // AND - all enabled axes passed the treshold + // OR - at least one axes passed the threshold + + bool latch; // latch the interrupt when true until the + // interrupt source has been read + + uint8_t duration; // duration in 1/ODR an interrupt condition has + // to be given before the interrupt is generated + + bool wait; // when true, duration is also used when interrupt + // condition in no longer given before interrupt + // signal is reset + + bool counter_mode; // DCRM is not documented and not used therefore + +} l3gd20h_int_event_config_t; + + +/** + * @brief Event interrupt source (axis movement and wake up) + */ +typedef struct { + + bool x_low :1; // true - x is lower event occured + bool x_high:1; // true - x is higher event occured + + bool y_low :1; // true - z is lower event occured + bool y_high:1; // true - z is higher event occured + + bool z_low :1; // true - z is lower event occured + bool z_high:1; // true - z is higher event occured + + bool active:1; // true - one ore more have been generated + +} l3gd20h_int_event_source_t; + + +/** + * @brief Data interrupt source type (data ready and FIFO status) + */ +typedef struct { + + bool data_ready; // true when data are ready to read + + bool fifo_threshold; // true when FIFO filling >= FTH level + bool fifo_overrun; // true when FIFO is completely filled + bool fifo_empty; // true when FIFO is empty + +} l3gd20h_int_data_source_t; + + +/** + * @brief INT1, INT2 signal activity level + */ +typedef enum { + + l3gd20h_high_active = 0, + l3gd20h_low_active + +} l3gd20h_signal_level_t; + + +/** + * @brief INT1, INT2 signal type + */ +typedef enum { + + l3gd20h_push_pull = 0, + l3gd20h_open_drain + +} l3gd20h_signal_type_t; + + +/** + * @brief Raw data set as two complements + */ +typedef struct { + + int16_t x; + int16_t y; + int16_t z; + +} l3gd20h_raw_data_t; + + +/** + * @brief Raw data FIFO type + */ +typedef l3gd20h_raw_data_t l3gd20h_raw_data_fifo_t[32]; + + +/** + * @brief Floating point output value set in degree + */ +typedef struct { + + float x; + float y; + float z; + +} l3gd20h_float_data_t; + + +/** + * @brief Floating point output value FIFO type + */ +typedef l3gd20h_float_data_t l3gd20h_float_data_fifo_t[32]; + + +/** + * @brief HPF (high pass filter) modes + */ +typedef enum { + + l3gd20h_hpf_normal = 0, + l3gd20h_hpf_reference, + l3gd20h_hpf_normal_x, + l3gd20h_hpf_autoreset + +} l3gd20h_hpf_mode_t; + + +/** + * @brief L3GD20H sensor device data structure type + */ +typedef struct { + + int error_code; // contains the error code of last operation + + uint8_t bus; // I2C = x, SPI = 1 + uint8_t addr; // I2C = slave address, SPI = 0 + + uint8_t cs; // ESP8266, ESP32: GPIO used as SPI CS + // __linux__: device index + + l3gd20h_scale_t scale; // fill range scale (default 245 dps) + l3gd20h_fifo_mode_t fifo_mode; // FIFO operation mode (default bypass) + + enum { + l3gd20h, + l3gd20, + l3g4200d + } mode; + +} l3gd20h_sensor_t; + + +#ifdef __cplusplus +} +#endif /* End of CPP guard */ + +#endif /* __L3GD20H_TYPES_H__ */ From 8325bb87c55a7d6ecd6161b3f52961d287939e41 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 13:02:31 +0100 Subject: [PATCH 273/349] Minor changes in CCS811 driver (#542) --- examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c | 2 ++ extras/ccs811/README.md | 6 +++++- extras/ccs811/ccs811.c | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c index a53b8a6..df71104 100644 --- a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c +++ b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c @@ -174,5 +174,7 @@ void user_init(void) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); } + else + printf("Could not initialize the CCS811 sensor\n"); } diff --git a/extras/ccs811/README.md b/extras/ccs811/README.md index fa660ae..3d39ae5 100644 --- a/extras/ccs811/README.md +++ b/extras/ccs811/README.md @@ -305,12 +305,14 @@ ccs811_set_mode (sensor, ccs811_mode_1s); ... ``` -Last, the user task that uses the sensor has to be created. +Finally, a user task that uses the sensor has to be created. ``` xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); ``` +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + The user task can use different approaches to fetch new data. Either new data are fetched periodically or the interrupt signal *nINT* is used when new data are available or eCO2 value exceeds defined thresholds. If new data are fetched **periodically** the implementation of the user task is quite simply and could look like following. @@ -564,6 +566,8 @@ void user_init(void) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); } + else + printf("Could not initialize CCS811 sensor\n"); } ``` diff --git a/extras/ccs811/ccs811.c b/extras/ccs811/ccs811.c index 2087b2a..5bf60d8 100644 --- a/extras/ccs811/ccs811.c +++ b/extras/ccs811/ccs811.c @@ -494,7 +494,8 @@ static bool ccs811_reg_read(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, ui } # ifdef CCS811_DEBUG_LEVEL_2 - printf("CCS811 %s: Read following bytes: ", __FUNCTION__); + printf("CCS811 %s: bus %d, addr %02x - Read following bytes: ", + __FUNCTION__, dev->bus, dev->addr); printf("%0x: ", reg); for (int i=0; i < len; i++) printf("%0x ", data[i]); @@ -514,7 +515,8 @@ static bool ccs811_reg_write(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, u # ifdef CCS811_DEBUG_LEVEL_2 if (data && len) { - printf("CCS811 %s: Write following bytes starting at reg addr %02x: ", __FUNCTION__, reg); + printf("CCS811 %s: bus %d, addr %02x - Write following bytes: ", + __FUNCTION__, dev->bus, dev->addr); for (int i=0; i < len; i++) printf("%02x ", data[i]); printf("\n"); From 13db675ac6141c613d9a46d76736a334e7950e43 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <31932013+gschorcht@users.noreply.github.com> Date: Sat, 20 Jan 2018 13:02:53 +0100 Subject: [PATCH 274/349] Minor changes in BME680 driver (#543) --- .../bme680_heating_profiles.c | 15 +++- .../bme680_one_sensor/bme680_one_sensor.c | 15 +++- .../bme680_two_sensors/bme680_two_sensors.c | 19 +++-- extras/bme680/README.md | 32 ++++++-- extras/bme680/bme680.c | 13 --- extras/bme680/bme680_platform.c | 82 +++++++++++++++++++ extras/bme680/bme680_platform.h | 40 +-------- 7 files changed, 142 insertions(+), 74 deletions(-) create mode 100644 extras/bme680/bme680_platform.c diff --git a/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c index e56d907..97105bd 100644 --- a/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c +++ b/examples/bme680/bme680_heating_profiles/bme680_heating_profiles.c @@ -103,10 +103,7 @@ void user_init(void) if (sensor) { - // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); - - /** -- OPTIONAL PART -- */ + /** -- SENSOR CONFIGURATION PART (optional) --- */ // Changes the oversampling rates to 4x oversampling for temperature // and 2x oversampling for humidity. Pressure measurement is skipped. @@ -121,5 +118,15 @@ void user_init(void) bme680_set_heater_profile (sensor, 2, 300, 140); bme680_set_heater_profile (sensor, 3, 350, 160); bme680_set_heater_profile (sensor, 4, 400, 180); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); } + else + printf("Could not initialize BME680 sensor\n"); } diff --git a/examples/bme680/bme680_one_sensor/bme680_one_sensor.c b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c index b1dde38..2ead95d 100644 --- a/examples/bme680/bme680_one_sensor/bme680_one_sensor.c +++ b/examples/bme680/bme680_one_sensor/bme680_one_sensor.c @@ -138,10 +138,7 @@ void user_init(void) if (sensor) { - // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); - - /** -- OPTIONAL PART -- */ + /** -- SENSOR CONFIGURATION PART (optional) --- */ // Changes the oversampling rates to 4x oversampling for temperature // and 2x oversampling for humidity. Pressure measurement is skipped. @@ -156,5 +153,15 @@ void user_init(void) // Set ambient temperature to 10 degree Celsius bme680_set_ambient_temperature (sensor, 10); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); } + else + printf("Could not initialize BME680 sensor\n"); } diff --git a/examples/bme680/bme680_two_sensors/bme680_two_sensors.c b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c index f66e745..6960dcd 100644 --- a/examples/bme680/bme680_two_sensors/bme680_two_sensors.c +++ b/examples/bme680/bme680_two_sensors/bme680_two_sensors.c @@ -1,7 +1,7 @@ /** * Simple example with two sensors, one sensor connected to I2C bus 0 and * one sensor connected to SPI. It defines two different user tasks, one for - * each sensor. It demonstrate the possible approaches to wait for measurement + * each sensor. It demonstrates the possible approaches to wait for measurement * results, active busy waiting using ```bme680_is_measuring``` and passive * waiting using *vTaskDelay*. * @@ -128,13 +128,7 @@ void user_init(void) if (sensor1 && sensor2) { - // Create the tasks that use the sensors - xTaskCreate(user_task_sensor1, "user_task_sensor1", 256, NULL, 2, 0); - xTaskCreate(user_task_sensor2, "user_task_sensor2", 256, NULL, 2, 0); - - // That's it. - - /** -- OPTIONAL PART -- */ + /** -- SENSOR CONFIGURATION PART (optional) --- */ // Changes the oversampling rates for both sensor to different values bme680_set_oversampling_rates(sensor1, osr_4x, osr_2x, osr_1x); @@ -151,5 +145,14 @@ void user_init(void) // Activate the heater profile 0 bme680_use_heater_profile (sensor1, 0); bme680_use_heater_profile (sensor2, 0); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + // Create the tasks that use the sensors + xTaskCreate(user_task_sensor1, "user_task_sensor1", 256, NULL, 2, 0); + xTaskCreate(user_task_sensor2, "user_task_sensor2", 256, NULL, 2, 0); } } diff --git a/extras/bme680/README.md b/extras/bme680/README.md index 8b8853f..56eab72 100644 --- a/extras/bme680/README.md +++ b/extras/bme680/README.md @@ -378,10 +378,7 @@ Optionally, you could wish to set some measurement parameters. For details see t ``` if (sensor) { - // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", 256, NULL, 2, NULL); - - /** -- OPTIONAL PART -- */ + /** -- SENSOR CONFIGURATION PART (optional) --- */ // Changes the oversampling rates to 4x oversampling for temperature // and 2x oversampling for humidity. Pressure measurement is skipped. @@ -394,11 +391,21 @@ if (sensor) bme680_set_heater_profile (sensor, 0, 200, 100); bme680_use_heater_profile (sensor, 0); + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); + ... } ``` -Last, the user task that uses the sensor has to be created. +Finally, a user task that uses the sensor has to be created. + +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. ### User task @@ -566,10 +573,7 @@ void user_init(void) if (sensor) { - // Create a task that uses the sensor - xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); - - /** -- OPTIONAL PART -- */ + /** -- SENSOR CONFIGURATION PART (optional) --- */ // Changes the oversampling rates to 4x oversampling for temperature // and 2x oversampling for humidity. Pressure measurement is skipped. @@ -584,7 +588,17 @@ void user_init(void) // Set ambient temperature to 10 degree Celsius bme680_set_ambient_temperature (sensor, 10); + + /** -- TASK CREATION PART --- */ + + // must be done last to avoid concurrency situations with the sensor + // configuration part + + // Create a task that uses the sensor + xTaskCreate(user_task, "user_task", TASK_STACK_DEPTH, NULL, 2, NULL); } + else + printf("Could not initialize BME680 sensor\n"); } ``` diff --git a/extras/bme680/bme680.c b/extras/bme680/bme680.c index 60b10e5..0255d94 100644 --- a/extras/bme680/bme680.c +++ b/extras/bme680/bme680.c @@ -305,8 +305,6 @@ bme680_sensor_t* bme680_init_sensor(uint8_t bus, uint8_t addr, uint8_t cs) free (dev); return NULL; } - if (!addr) - spi_semaphore_init(); // reset the sensor if (!bme680_reset(dev)) @@ -1278,14 +1276,11 @@ static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, ui return false; } - spi_semaphore_take (); - // set mem page first if (!bme680_spi_set_mem_page (dev, reg)) { error_dev ("Error on read from SPI slave on bus 1. Could not set mem page.", __FUNCTION__, dev); - spi_semaphore_give (); return false; } @@ -1304,11 +1299,8 @@ static bool bme680_spi_read(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, ui { error_dev ("Could not read data from SPI", __FUNCTION__, dev); dev->error_code |= BME680_SPI_READ_FAILED; - spi_semaphore_give (); return false; } - spi_semaphore_give (); - // shift data one by left, first byte received while sending register address is invalid for (int i=0; i < len; i++) data[i] = miso[i+1]; @@ -1340,14 +1332,11 @@ static bool bme680_spi_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u return false; } - spi_semaphore_take (); - // set mem page first if not mem page register is used if (reg != BME680_REG_STATUS && !bme680_spi_set_mem_page (dev, reg)) { error_dev ("Error on write from SPI slave on bus 1. Could not set mem page.", __FUNCTION__, dev); - spi_semaphore_give (); return false; } @@ -1371,10 +1360,8 @@ static bool bme680_spi_write(bme680_sensor_t* dev, uint8_t reg, uint8_t *data, u { error_dev ("Could not write data to SPI.", __FUNCTION__, dev); dev->error_code |= BME680_SPI_WRITE_FAILED; - spi_semaphore_give (); return false; } - spi_semaphore_give (); return true; } diff --git a/extras/bme680/bme680_platform.c b/extras/bme680/bme680_platform.c new file mode 100644 index 0000000..00cb8cf --- /dev/null +++ b/extras/bme680/bme680_platform.c @@ -0,0 +1,82 @@ +/* + * Driver for Bosch Sensortec BME680 digital temperature, humidity, pressure + * and gas sensor connected to I2C or SPI + * + * This driver is for the usage with the ESP8266 and FreeRTOS (esp-open-rtos) + * [https://github.com/SuperHouse/esp-open-rtos]. It is also working with ESP32 + * and ESP-IDF [https://github.com/espressif/esp-idf.git] as well as Linux + * based systems using a wrapper library for ESP8266 functions. + * + * --------------------------------------------------------------------------- + * + * The BSD License (3-clause license) + * + * Copyright (c) 2017 Gunar Schorcht (https://github.com/gschorcht) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Platform file: platform specific definitions, includes and functions + */ + +#include "bme680_platform.h" + +// platform specific SPI functions + +static const spi_settings_t bus_settings = { + .mode = SPI_MODE0, + .freq_divider = SPI_FREQ_DIV_1M, + .msb = true, + .minimal_pins = false, + .endianness = SPI_LITTLE_ENDIAN +}; + +bool spi_device_init (uint8_t bus, uint8_t cs) +{ + gpio_enable(cs, GPIO_OUTPUT); + gpio_write (cs, true); + return true; +} + +size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) +{ + spi_settings_t old_settings; + + spi_get_settings(bus, &old_settings); + spi_set_settings(bus, &bus_settings); + gpio_write(cs, false); + + size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); + + gpio_write(cs, true); + spi_set_settings(bus, &old_settings); + + return transfered; +} + diff --git a/extras/bme680/bme680_platform.h b/extras/bme680/bme680_platform.h index 31fa0a5..9f47c2e 100644 --- a/extras/bme680/bme680_platform.h +++ b/extras/bme680/bme680_platform.h @@ -66,46 +66,14 @@ #include "esp/spi.h" #include "i2c/i2c.h" -// platform specific definitions - -#define spi_semaphore_init() -#define spi_semaphore_take() -#define spi_semaphore_give() - // platform specific SPI functions #define spi_bus_init(bus,sck,miso,mosi) // not needed on ESP8266 -static const spi_settings_t bus_settings = { - .mode = SPI_MODE0, - .freq_divider = SPI_FREQ_DIV_1M, - .msb = true, - .minimal_pins = false, - .endianness = SPI_LITTLE_ENDIAN -}; - -inline static bool spi_device_init (uint8_t bus, uint8_t cs) -{ - gpio_enable(cs, GPIO_OUTPUT); - gpio_write (cs, true); - return true; -} - -inline static size_t spi_transfer_pf(uint8_t bus, uint8_t cs, const uint8_t *mosi, uint8_t *miso, uint16_t len) -{ - spi_settings_t old_settings; - - spi_get_settings(bus, &old_settings); - spi_set_settings(bus, &bus_settings); - gpio_write(cs, false); - - size_t transfered = spi_transfer (bus, (const void*)mosi, (void*)miso, len, SPI_8BIT); - - gpio_write(cs, true); - spi_set_settings(bus, &old_settings); - - return transfered; -} +extern bool spi_device_init (uint8_t bus, uint8_t cs); +extern size_t spi_transfer_pf (uint8_t bus, uint8_t cs, + const uint8_t *mosi, uint8_t *miso, + uint16_t len); #endif // ESP_OPEN_RTOS From 63af6f4cc4deac8103b06559a660bc0017f21363 Mon Sep 17 00:00:00 2001 From: Andrew Clink Date: Thu, 25 Jan 2018 09:16:31 -0700 Subject: [PATCH 275/349] Add makefile flash hooks --- common.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common.mk b/common.mk index 4ece70a..f94752d 100644 --- a/common.mk +++ b/common.mk @@ -244,11 +244,15 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) $(Q) $(ESPTOOL) elf2image --version=2 $(ESPTOOL_ARGS) $< -o $(FW_FILE) flash: all + $(if will_flash, $(call will_flash, "flash")) $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) + $(if did_flash, $(call did_flash, "flash")) erase_flash: + $(if will_flash, $(call will_flash, "erase")) $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) erase_flash + $(if did_flash, $(call did_flash, "erase")) size: $(PROGRAM_OUT) $(Q) $(CROSS)size --format=sysv $(PROGRAM_OUT) From c3eaaa70431f7d9010e0d635d8869dbc4a9ce613 Mon Sep 17 00:00:00 2001 From: Wouter Date: Sat, 27 Jan 2018 23:54:36 +0100 Subject: [PATCH 276/349] Update FreeRTOS license. FreeRTOS is under MIT license and copyrighted by Amazon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b53b678..798d1c2 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Some binary libraries appear to contain unattributed open source code: * BSD license (as described in LICENSE) applies to original source files, [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki). lwIP is Copyright (C) Swedish Institute of Computer Science. -* FreeRTOS is provided under the GPL with the FreeRTOS linking exception, allowing non-GPL firmwares to be produced using FreeRTOS as the RTOS core. License details in files under FreeRTOS dir. FreeRTOS is Copyright (C) Real Time Engineers Ltd. +* FreeRTOS (since v10) is provided under the MIT license. License details in files under FreeRTOS dir. FreeRTOS is Copyright (C) Amazon. * Source & binary components from the [Espressif IOT RTOS SDK](https://github.com/espressif/esp_iot_rtos_sdk) were released under the MIT license. Source code components are relicensed here under the BSD license. The original parts are Copyright (C) Espressif Systems. From 6b43a1caa1fc7a8f746b04194fba194c641e66a7 Mon Sep 17 00:00:00 2001 From: Jeff Kletsky Date: Fri, 9 Feb 2018 00:02:01 -0800 Subject: [PATCH 277/349] Improve extras/sntp -- Issue #562 (#563) --- extras/sntp/component.mk | 5 +++ extras/sntp/sntp_fun.c | 79 +++++++++++++++++++++++++++++++++------- 2 files changed, 71 insertions(+), 13 deletions(-) diff --git a/extras/sntp/component.mk b/extras/sntp/component.mk index 155537a..dc0ee5c 100644 --- a/extras/sntp/component.mk +++ b/extras/sntp/component.mk @@ -5,4 +5,9 @@ INC_DIRS += $(sntp_ROOT) # args for passing into compile rule generation sntp_SRC_DIR = $(sntp_ROOT) +# For SNTP logging, either supply own SNTP_LOGD +# or define SNTP_LOGD_WITH_PRINTF (see sntp_fun.c) + +# sntp_CFLAGS = $(CFLAGS) -DSNTP_LOGD_WITH_PRINTF + $(eval $(call component_compile_rules,sntp)) diff --git a/extras/sntp/sntp_fun.c b/extras/sntp/sntp_fun.c index e007ff7..66956ca 100644 --- a/extras/sntp/sntp_fun.c +++ b/extras/sntp/sntp_fun.c @@ -8,11 +8,22 @@ #include #include #include +#include #include #include #include #include + +#ifdef SNTP_LOGD_WITH_PRINTF +#define SNTP_LOGD(FMT, ...) printf(FMT "\n", ##__VA_ARGS__) +#endif + +#ifndef SNTP_LOGD +#define SNTP_LOGD(...) +#define SKIP_DIAGNOSTICS +#endif + #define TIMER_COUNT RTC.COUNTER // daylight settings @@ -20,9 +31,14 @@ #define sntp_base (*((uint64_t*)RTC.SCRATCH)) // Timer value when base was obtained #define tim_ref (RTC.SCRATCH[2]) -// Calibration value +// Calibration value -- ( microseconds / RTC tick ) * 2^12 #define cal (RTC.SCRATCH[3]) +#ifndef SKIP_DIAGNOSTICS +// Keep the last time SNTP updated the time +static struct timeval last_update_time = {0, 0}; +#endif + // Timezone related data. static struct timezone stz; @@ -50,7 +66,7 @@ void sntp_initialize(const struct timezone *tz) { } sntp_base = 0; // To avoid div by 0 exceptions if requesting time before SNTP config - cal = 1; + cal = sdk_system_rtc_clock_cali_proc(); tim_ref = TIMER_COUNT; sntp_init(); } @@ -63,7 +79,7 @@ static inline void sntp_check_timer_wrap(uint32_t current_value) { // Timer wrap has occurred, compensate by subtracting 2^32 to ref. sntp_base -= 1LLU<<32; // DEBUG - printf("\nTIMER WRAPPED!\n"); + SNTP_LOGD("SNTP RTC counter wrapped"); } } @@ -77,9 +93,9 @@ inline time_t sntp_get_rtc_time(int32_t *us) { // Check for timer wrap sntp_check_timer_wrap(tim); base = sntp_base + tim - tim_ref; - secs = base * cal / (1000000U<<12); + secs = (base * cal) / (1000000U<<12); if (us) { - *us = base * cal % (1000000U<<12); + *us = ((base * cal) % (1000000U<<12)) >>12; } return secs; } @@ -97,16 +113,53 @@ int _gettimeofday_r(struct _reent *r, struct timeval *tp, void *tzp) { // Update RTC timer. Called by SNTP module each time it receives an update. void sntp_update_rtc(time_t t, uint32_t us) { - // Apply daylight and timezone correction - t += (stz.tz_minuteswest + stz.tz_dsttime * 60) * 60; - // DEBUG: Compute and print drift - int64_t sntp_current = sntp_base + TIMER_COUNT - tim_ref; - int64_t sntp_correct = (((uint64_t)us + (uint64_t)t * 1000000U)<<12) / cal; - printf("\nRTC Adjust: drift = %lld ticks, cal = %d\n", (time_t)(sntp_correct - sntp_current), (uint32_t)cal); - tim_ref = TIMER_COUNT; + uint32_t now_rtc = TIMER_COUNT; + + // Apply daylight and timezone correction + t += (stz.tz_minuteswest + stz.tz_dsttime * 60) * 60; + +#ifndef SKIP_DIAGNOSTICS + + int64_t sntp_reference_time, local_clock_time, clock_difference; + struct timeval this_update_time, elapsed_since_update; + double ppm; + + // Calculate in diagnostics in microseconds + sntp_reference_time = (uint64_t)us + (uint64_t)t * 1000000U; + local_clock_time = ((sntp_base + now_rtc - tim_ref) * cal) / (1U<<12); + clock_difference = sntp_reference_time - local_clock_time; + + this_update_time.tv_sec = t; + this_update_time.tv_usec = us; + + timersub(&this_update_time, &last_update_time, &elapsed_since_update); + + // If over a day since last update, don't trust the last_update_time + if (elapsed_since_update.tv_sec < 24 * 60 * 60 ) { + ppm = ((double)clock_difference / + ((double)elapsed_since_update.tv_sec * 1000000 + + elapsed_since_update.tv_usec)) + * 1000000; + SNTP_LOGD("SNTP RTC adjust: %0.3Lf s; %0.3f ppm over %0.3f s; cal: %u\n", + ((long double)clock_difference)/1000000, + ppm, + (double)elapsed_since_update.tv_sec + + ((double)elapsed_since_update.tv_usec)/1000000, + cal); + } else { + SNTP_LOGD("SNTP RTC adjust: %0.3Lf s; cal: %u\n", + ((long double)clock_difference)/1000000, cal); + } + + last_update_time.tv_sec = t; + last_update_time.tv_usec = us; + +#endif // SKIP_DIAGNOSTICS + cal = sdk_system_rtc_clock_cali_proc(); + tim_ref = now_rtc; + sntp_base = (((uint64_t)us + (uint64_t)t * 1000000U) <<12) / cal; - sntp_base = (((uint64_t)us + (uint64_t)t * 1000000U)<<12) / cal; } From 3c81f7d5875c699112da9f01decda755384c3052 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 24 Jan 2018 14:56:24 +1100 Subject: [PATCH 278/349] lwip update * The mdns responder has been reworked to lower stack and memory usage. This is a variation on the upstream code, it use malloc whereas the upstream code uses pools. The high stack usage of the mdns responder was problem for esp-open-rtos, so we might have to maintain the differences for now. * Improved lwip core locking, and lock checking. Upstream improvements, that need some added support from esp-open-rtos specific code. More core lock is performed when calling from the esp-open-rtos code now, so a little safer. The checking is not enforced, but projects might see warning messages and might want to look into them. * The esp-open-rtos lwip support has been sync'ed with the new freertos port included with lwip. There are still some minor differences. * A few lwip timer bugs have been resolved. This might help resolve some issues. * Plus it picks up all the other upstream fixes and improvements. * The default lwip stack has been lowered from 768 words to 480 words, due to the reduced stack usage by the mdns responder. --- core/app_main.c | 6 + extras/wificfg/wificfg.c | 12 +- lwip/include/arch/cc.h | 8 +- lwip/include/arch/sys_arch.h | 120 ++++----- lwip/include/lwipopts.h | 80 +++++- lwip/lwip | 2 +- lwip/sys_arch.c | 273 ++++++++++++-------- open_esplibs/libmain/user_interface.c | 12 +- open_esplibs/libnet80211/ieee80211_hostap.c | 6 + open_esplibs/libnet80211/ieee80211_sta.c | 5 +- open_esplibs/libnet80211/wl_cnx.c | 2 + open_esplibs/libwpa/wpa_main.c | 4 + 12 files changed, 345 insertions(+), 185 deletions(-) diff --git a/core/app_main.c b/core/app_main.c index cd59c79..9c3918c 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -373,16 +373,22 @@ void sdk_user_init_task(void *params) { sdk_wifi_mode_set(sdk_g_ic.s.wifi_mode); if (sdk_g_ic.s.wifi_mode == STATION_MODE) { sdk_wifi_station_start(); + LOCK_TCPIP_CORE(); netif_set_default(sdk_g_ic.v.station_netif_info->netif); + UNLOCK_TCPIP_CORE(); } if (sdk_g_ic.s.wifi_mode == SOFTAP_MODE) { sdk_wifi_softap_start(); + LOCK_TCPIP_CORE(); netif_set_default(sdk_g_ic.v.softap_netif_info->netif); + UNLOCK_TCPIP_CORE(); } if (sdk_g_ic.s.wifi_mode == STATIONAP_MODE) { sdk_wifi_station_start(); sdk_wifi_softap_start(); + LOCK_TCPIP_CORE(); netif_set_default(sdk_g_ic.v.station_netif_info->netif); + UNLOCK_TCPIP_CORE(); } if (sdk_wifi_station_get_auto_connect()) { sdk_wifi_station_connect(); diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c index 430740c..804adad 100644 --- a/extras/wificfg/wificfg.c +++ b/extras/wificfg/wificfg.c @@ -1689,7 +1689,9 @@ static void server_task(void *pvParameters) struct netif *softap_netif = sdk_system_get_netif(SOFTAP_IF); if ((wifi_sta_mdns && station_netif) || (wifi_ap_mdns && softap_netif)) { #if LWIP_MDNS_RESPONDER + LOCK_TCPIP_CORE(); mdns_resp_init(); + UNLOCK_TCPIP_CORE(); #endif #if EXTRAS_MDNS_RESPONDER mdns_init(); @@ -1697,16 +1699,22 @@ static void server_task(void *pvParameters) #endif } #if LWIP_MDNS_RESPONDER + LOCK_TCPIP_CORE(); if (wifi_sta_mdns && station_netif) { + LOCK_TCPIP_CORE(); mdns_resp_add_netif(station_netif, hostname, 120); mdns_resp_add_service(station_netif, hostname, "_http", DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + UNLOCK_TCPIP_CORE(); } if (wifi_ap_mdns && softap_netif) { + LOCK_TCPIP_CORE(); mdns_resp_add_netif(softap_netif, hostname, 120); mdns_resp_add_service(softap_netif, hostname, "_http", DNSSD_PROTO_TCP, 80, 3600, NULL, NULL); + UNLOCK_TCPIP_CORE(); } + UNLOCK_TCPIP_CORE(); #endif free(hostname); @@ -2233,10 +2241,6 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch) params->dispatch = dispatch; size_t stack_size = 464; -#if LWIP_MDNS_RESPONDER - /* Uses a lot of stack space, so allocate extra. */ - stack_size += 128; -#endif xTaskCreate(server_task, "WiFi Cfg HTTP", stack_size, params, 2, NULL); } } diff --git a/lwip/include/arch/cc.h b/lwip/include/arch/cc.h index 5787157..a88c413 100644 --- a/lwip/include/arch/cc.h +++ b/lwip/include/arch/cc.h @@ -87,14 +87,9 @@ typedef int sys_prot_t; } while(0) #define LWIP_PLATFORM_ASSERT(x) do { printf("Assertion \"%s\" failed at line %d in %s\n", \ x, __LINE__, __FILE__); abort(); } while(0) - -#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ - printf("Assertion \"%s\" failed at line %d in %s\n", message, __LINE__, __FILE__); \ - handler;} } while(0) #else #define LWIP_PLATFORM_DIAG(x) #define LWIP_PLATFORM_ASSERT(x) -#define LWIP_ERROR(m,e,h) #endif #define LWIP_PLATFORM_BYTESWAP 1 @@ -104,4 +99,7 @@ typedef int sys_prot_t; #define LWIP_RAND() hwrand() +/* Newlib includes this definition so use it. */ +#define lwip_strnstr(buffer, token, n) strnstr(buffer, token, n) + #endif /* __ARCH_CC_H__ */ diff --git a/lwip/include/arch/sys_arch.h b/lwip/include/arch/sys_arch.h index 0dfa482..00f7957 100644 --- a/lwip/include/arch/sys_arch.h +++ b/lwip/include/arch/sys_arch.h @@ -1,58 +1,62 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __ARCH_SYS_ARCH_H__ -#define __ARCH_SYS_ARCH_H__ - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" - -/* MBOX primitives */ - -#define SYS_MBOX_NULL ( ( QueueHandle_t ) NULL ) -#define SYS_SEM_NULL ( ( SemaphoreHandle_t ) NULL ) -#define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE - -typedef SemaphoreHandle_t sys_sem_t; -typedef SemaphoreHandle_t sys_mutex_t; -typedef QueueHandle_t sys_mbox_t; -typedef TaskHandle_t sys_thread_t; - -#define sys_mbox_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) -#define sys_mbox_set_invalid( x ) ( ( *x ) = NULL ) -#define sys_sem_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) -#define sys_sem_set_invalid( x ) ( ( *x ) = NULL ) - - -#endif /* __ARCH_SYS_ARCH_H__ */ - +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef __ARCH_SYS_ARCH_H__ +#define __ARCH_SYS_ARCH_H__ + +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" + +/* MBOX primitives */ + +#define SYS_MBOX_NULL ( ( QueueHandle_t ) NULL ) +#define SYS_SEM_NULL ( ( SemaphoreHandle_t ) NULL ) +#define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE + +typedef SemaphoreHandle_t sys_sem_t; +typedef SemaphoreHandle_t sys_mutex_t; +typedef QueueHandle_t sys_mbox_t; +typedef TaskHandle_t sys_thread_t; + +#define sys_mbox_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) +#define sys_mbox_set_invalid( x ) ( ( *x ) = NULL ) +#define sys_sem_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) +#define sys_sem_set_invalid( x ) ( ( *x ) = NULL ) + +#define sys_jiffies() xTaskGetTickCount() + +void sys_arch_msleep(uint32_t ms); +#define sys_msleep(ms) sys_arch_msleep(ms) + +#endif /* __ARCH_SYS_ARCH_H__ */ + diff --git a/lwip/include/lwipopts.h b/lwip/include/lwipopts.h index d2c7323..57c6f05 100644 --- a/lwip/include/lwipopts.h +++ b/lwip/include/lwipopts.h @@ -81,7 +81,9 @@ * UNLOCK_TCPIP_CORE(). * Your system should provide mutexes supporting priority inversion to use this. */ +#ifndef LWIP_TCPIP_CORE_LOCKING #define LWIP_TCPIP_CORE_LOCKING 1 +#endif /** * LWIP_TCPIP_CORE_LOCKING_INPUT: when LWIP_TCPIP_CORE_LOCKING is enabled, @@ -95,6 +97,48 @@ #define LWIP_TCPIP_CORE_LOCKING_INPUT 0 #endif +/** + * Macro/function to check whether lwIP's threading/locking + * requirements are satisfied during current function call. + * This macro usually calls a function that is implemented in the OS-dependent + * sys layer and performs the following checks: + * - Not in ISR + * - If @ref LWIP_TCPIP_CORE_LOCKING = 1: TCPIP core lock is held + * - If @ref LWIP_TCPIP_CORE_LOCKING = 0: function is called from TCPIP thread + * @see @ref multithreading + */ +#ifndef LWIP_ASSERT_CORE_LOCKED +void sys_check_core_locking(void); +#define LWIP_ASSERT_CORE_LOCKED() sys_check_core_locking() +#endif + +/** + * Called as first thing in the lwIP TCPIP thread. Can be used in conjunction + * with @ref LWIP_ASSERT_CORE_LOCKED to check core locking. + * @see @ref multithreading + */ +#ifndef LWIP_MARK_TCPIP_THREAD +void sys_mark_tcpip_thread(void); +#define LWIP_MARK_TCPIP_THREAD() sys_mark_tcpip_thread() +#endif + +#if LWIP_TCPIP_CORE_LOCKING + +#ifndef LOCK_TCPIP_CORE +void sys_lock_tcpip_core(void); +#define LOCK_TCPIP_CORE() sys_lock_tcpip_core() +#endif + +#ifndef UNLOCK_TCPIP_CORE +void sys_unlock_tcpip_core(void); +#define UNLOCK_TCPIP_CORE() sys_unlock_tcpip_core() +#endif + +#else +#define LOCK_TCPIP_CORE() +#define UNLOCK_TCPIP_CORE() +#endif /* LWIP_TCPIP_CORE_LOCKING */ + /* ------------------------------------ ---------- Memory options ---------- @@ -483,6 +527,21 @@ #define LWIP_NETIF_HOSTNAME 1 #endif +/** + * LWIP_NETIF_API==1: Support netif api (in netifapi.c) + */ +#ifndef LWIP_NETIF_API +#define LWIP_NETIF_API 0 +#endif + +/** + * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface + * changes its up/down status (i.e., due to DHCP IP acquisition) + */ +#ifndef LWIP_NETIF_STATUS_CALLBACK +#define LWIP_NETIF_STATUS_CALLBACK 0 +#endif + /** * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP *tries* to put all data * to be sent into one single pbuf. This is for compatibility with DMA-enabled @@ -515,7 +574,7 @@ * sys_thread_new() when the thread is created. */ #ifndef TCPIP_THREAD_STACKSIZE -#define TCPIP_THREAD_STACKSIZE 768 +#define TCPIP_THREAD_STACKSIZE 480 #endif /** @@ -672,6 +731,20 @@ --------------------------------------- */ +/* + --------------------------------------- + ---------- mDNS options --------------- + --------------------------------------- +*/ + +/** + * LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS==1: Unsolicited announcements are + * queued and run from a timer callback. + */ +#ifndef LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS +#define LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS 1 +#endif + /* --------------------------------------- ---------- Debugging options ---------- @@ -855,6 +928,11 @@ */ #define IP6_DEBUG LWIP_DBG_OFF +/** + * MDNS_DEBUG: Enable debugging for multicast DNS. + */ +#define MDNS_DEBUG LWIP_DBG_OFF + /* -------------------------------------------------- ---------- Performance tracking options ---------- diff --git a/lwip/lwip b/lwip/lwip index 4e87c66..9f70dbe 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 4e87c66bff75fbd02be86522de0f0bcf40a11f34 +Subproject commit 9f70dbe91a68df81c6bbcb48306a590359a41d3f diff --git a/lwip/sys_arch.c b/lwip/sys_arch.c index 1a9c5f9..36a6eae 100644 --- a/lwip/sys_arch.c +++ b/lwip/sys_arch.c @@ -48,6 +48,11 @@ #include "lwip/sys.h" #include "lwip/mem.h" #include "lwip/stats.h" +#include "lwip/tcpip.h" + +#if configUSE_16_BIT_TICKS == 1 +#error This port requires 32 bit ticks or timer overflow will fail +#endif /*---------------------------------------------------------------------------* * Routine: sys_sem_new @@ -62,24 +67,23 @@ * Outputs: * sys_sem_t -- Created semaphore or 0 if could not create. *---------------------------------------------------------------------------*/ -err_t sys_sem_new(sys_sem_t *pxSemaphore, u8_t ucCount) +err_t sys_sem_new(sys_sem_t *pxSemaphore, u8_t initial_count) { - err_t xReturn = ERR_MEM; + LWIP_ASSERT("initial_count invalid (not 0 or 1)", + (initial_count == 0) || (initial_count == 1)); - vSemaphoreCreateBinary(*pxSemaphore); - - if (*pxSemaphore != NULL) { - if (ucCount == 0U) { - xSemaphoreTake(*pxSemaphore, 1UL); - } - - xReturn = ERR_OK; - SYS_STATS_INC_USED(sem); - } else { + *pxSemaphore = xSemaphoreCreateBinary(); + if (*pxSemaphore == NULL) { SYS_STATS_INC(sem.err); + return ERR_MEM; } + SYS_STATS_INC_USED(sem); - return xReturn; + if (initial_count == 1) { + BaseType_t ret = xSemaphoreGive(*pxSemaphore); + LWIP_ASSERT("sys_sem_new: initial give failed", ret == pdTRUE); + } + return ERR_OK; } /*---------------------------------------------------------------------------* @@ -93,7 +97,8 @@ err_t sys_sem_new(sys_sem_t *pxSemaphore, u8_t ucCount) void sys_sem_free(sys_sem_t *pxSemaphore) { SYS_STATS_DEC(sem.used); - vQueueDelete(*pxSemaphore); + vSemaphoreDelete(*pxSemaphore); + *pxSemaphore = NULL; } /*---------------------------------------------------------------------------* @@ -131,22 +136,19 @@ void sys_sem_signal(sys_sem_t *pxSemaphore) * Outputs: * u32_t -- SYS_ARCH_TIMEOUT on timeout, any other value on success *---------------------------------------------------------------------------*/ -u32_t sys_arch_sem_wait(sys_sem_t *pxSemaphore, u32_t ulTimeout) +u32_t sys_arch_sem_wait(sys_sem_t *pxSemaphore, u32_t timeout_ms) { - u32_t ulReturn; - - if (ulTimeout != 0UL) { - if (xSemaphoreTake(*pxSemaphore, ulTimeout / portTICK_PERIOD_MS) == pdTRUE) { - ulReturn = 0; - } else { - ulReturn = SYS_ARCH_TIMEOUT; - } - } else { + if (timeout_ms == 0) { + /* Wait infinite */ while (xSemaphoreTake(*pxSemaphore, portMAX_DELAY) != pdTRUE); - ulReturn = 0; + return 0; } - return ulReturn; + if (xSemaphoreTake(*pxSemaphore, timeout_ms / portTICK_PERIOD_MS) == pdTRUE) { + return 0; + } else { + return SYS_ARCH_TIMEOUT; + } } /** Create a new mutex @@ -154,33 +156,30 @@ u32_t sys_arch_sem_wait(sys_sem_t *pxSemaphore, u32_t ulTimeout) * @return a new mutex */ err_t sys_mutex_new(sys_mutex_t *pxMutex) { - err_t xReturn; + *pxMutex = xSemaphoreCreateRecursiveMutex(); - *pxMutex = xSemaphoreCreateMutex(); - - if (*pxMutex != NULL) { - xReturn = ERR_OK; - SYS_STATS_INC_USED(mutex); - } else { - xReturn = ERR_MEM; + if (*pxMutex == NULL) { SYS_STATS_INC(mutex.err); + return ERR_MEM; } - return xReturn; + SYS_STATS_INC_USED(mutex); + return ERR_OK; } /** Lock a mutex * @param mutex the mutex to lock */ void sys_mutex_lock(sys_mutex_t *pxMutex) { - while (xSemaphoreTake(*pxMutex, portMAX_DELAY) != pdPASS); + while (xSemaphoreTakeRecursive(*pxMutex, portMAX_DELAY) != pdTRUE); } /** Unlock a mutex * @param mutex the mutex to unlock */ void sys_mutex_unlock(sys_mutex_t *pxMutex) { - xSemaphoreGive(*pxMutex); + BaseType_t ret = xSemaphoreGiveRecursive(*pxMutex); + LWIP_ASSERT("failed to give the mutex", ret == pdTRUE); } @@ -189,7 +188,8 @@ void sys_mutex_unlock(sys_mutex_t *pxMutex) void sys_mutex_free(sys_mutex_t *pxMutex) { SYS_STATS_DEC(mutex.used); - vQueueDelete(*pxMutex); + vSemaphoreDelete(*pxMutex); + *pxMutex = NULL; } /*---------------------------------------------------------------------------* @@ -202,21 +202,21 @@ void sys_mutex_free(sys_mutex_t *pxMutex) * Outputs: * sys_mbox_t -- Handle to new mailbox *---------------------------------------------------------------------------*/ -err_t sys_mbox_new(sys_mbox_t *pxMailBox, int iSize) +err_t sys_mbox_new(sys_mbox_t *mbox, int size) { - err_t xReturn = ERR_MEM; + LWIP_ASSERT("size > 0", size > 0); - *pxMailBox = xQueueCreate(iSize, sizeof(void *)); + *mbox = xQueueCreate(size, sizeof(void *)); - if (*pxMailBox != NULL) { - xReturn = ERR_OK; - SYS_STATS_INC_USED(mbox); + if (*mbox == NULL) { + SYS_STATS_INC(mbox.err); + return ERR_MEM; } - return xReturn; + SYS_STATS_INC_USED(mbox); + return ERR_OK; } - /*---------------------------------------------------------------------------* * Routine: sys_mbox_free *---------------------------------------------------------------------------* @@ -229,24 +229,21 @@ err_t sys_mbox_new(sys_mbox_t *pxMailBox, int iSize) * Outputs: * sys_mbox_t -- Handle to new mailbox *---------------------------------------------------------------------------*/ -void sys_mbox_free(sys_mbox_t *pxMailBox) +void sys_mbox_free(sys_mbox_t *mbox) { - unsigned long ulMessagesWaiting; + UBaseType_t msgs_waiting; - ulMessagesWaiting = uxQueueMessagesWaiting(*pxMailBox); - configASSERT(ulMessagesWaiting == 0); + msgs_waiting = uxQueueMessagesWaiting(*mbox); + configASSERT(msgs_waiting == 0); - #if SYS_STATS - { - if (ulMessagesWaiting != 0UL) { - SYS_STATS_INC(mbox.err); - } - - SYS_STATS_DEC(mbox.used); +#if SYS_STATS + if (msgs_waiting != 0) { + SYS_STATS_INC(mbox.err); } - #endif /* SYS_STATS */ + SYS_STATS_DEC(mbox.used); +#endif /* SYS_STATS */ - vQueueDelete(*pxMailBox); + vQueueDelete(*mbox); } /*---------------------------------------------------------------------------* @@ -258,9 +255,9 @@ void sys_mbox_free(sys_mbox_t *pxMailBox) * sys_mbox_t mbox -- Handle of mailbox * void *data -- Pointer to data to post *---------------------------------------------------------------------------*/ -void sys_mbox_post(sys_mbox_t *pxMailBox, void *pxMessageToPost) +void sys_mbox_post(sys_mbox_t *mbox, void *msg) { - while (xQueueSendToBack(*pxMailBox, &pxMessageToPost, portMAX_DELAY) != pdTRUE); + while (xQueueSendToBack(*mbox, &msg, portMAX_DELAY) != pdTRUE); } /*---------------------------------------------------------------------------* @@ -276,19 +273,15 @@ void sys_mbox_post(sys_mbox_t *pxMailBox, void *pxMessageToPost) * err_t -- ERR_OK if message posted, else ERR_MEM * if not. *---------------------------------------------------------------------------*/ -err_t sys_mbox_trypost(sys_mbox_t *pxMailBox, void *pxMessageToPost) +err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg) { - err_t xReturn; - - if (xQueueSend(*pxMailBox, &pxMessageToPost, 0)) { - xReturn = ERR_OK; - } else { - /* The queue was already full. */ - xReturn = ERR_MEM; - SYS_STATS_INC( mbox.err ); + if (xQueueSendToBack(*mbox, &msg, 0) == pdTRUE) { + return ERR_OK; } - return xReturn; + /* The queue was already full. */ + SYS_STATS_INC(mbox.err); + return ERR_MEM; } /*---------------------------------------------------------------------------* @@ -315,29 +308,26 @@ err_t sys_mbox_trypost(sys_mbox_t *pxMailBox, void *pxMessageToPost) * Outputs: * u32_t -- SYS_ARCH_TIMEOUT on timeout, any other value if a message has been received *---------------------------------------------------------------------------*/ -u32_t sys_arch_mbox_fetch(sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut) +u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout) { - void *pvDummy; - unsigned long ulReturn; + void *msg_dummy; - if (ppvBuffer == NULL) { - ppvBuffer = &pvDummy; + if (msg == NULL) { + msg = &msg_dummy; } - if (ulTimeOut != 0UL) { - if (xQueueReceive(*pxMailBox, &(*ppvBuffer), ulTimeOut / portTICK_PERIOD_MS) == pdTRUE) { - ulReturn = 0; - } else { - /* Timed out. */ - *ppvBuffer = NULL; - ulReturn = SYS_ARCH_TIMEOUT; - } - } else { - while (xQueueReceive(*pxMailBox, &(*ppvBuffer), portMAX_DELAY) != pdTRUE); - ulReturn = 0; + if (timeout == 0) { + while (xQueueReceive(*mbox, &(*msg), portMAX_DELAY) != pdTRUE); + return 0; } - return ulReturn; + if (xQueueReceive(*mbox, &(*msg), timeout / portTICK_PERIOD_MS) == pdTRUE) { + return 0; + } + + /* Timed out. */ + *msg = NULL; + return SYS_ARCH_TIMEOUT; } /*---------------------------------------------------------------------------* @@ -354,22 +344,20 @@ u32_t sys_arch_mbox_fetch(sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeO * u32_t -- SYS_MBOX_EMPTY if no messages. Otherwise, * return ERR_OK. *---------------------------------------------------------------------------*/ -u32_t sys_arch_mbox_tryfetch(sys_mbox_t *pxMailBox, void **ppvBuffer) +u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg) { - void *pvDummy; - unsigned long ulReturn; + void *msg_dummy; - if (ppvBuffer== NULL) { - ppvBuffer = &pvDummy; + if (msg == NULL) { + msg = &msg_dummy; } - if (xQueueReceive(*pxMailBox, &(*ppvBuffer), 0UL) == pdPASS) { - ulReturn = ERR_OK; - } else { - ulReturn = SYS_MBOX_EMPTY; + if (xQueueReceive(*mbox, &(*msg), 0) == pdTRUE) { + return ERR_OK; } - return ulReturn; + *msg = NULL; + return SYS_MBOX_EMPTY; } /*---------------------------------------------------------------------------* @@ -387,6 +375,12 @@ u32_t sys_now(void) return xTaskGetTickCount() * portTICK_PERIOD_MS; } +void sys_arch_msleep(u32_t delay_ms) +{ + TickType_t delay_ticks = delay_ms / portTICK_PERIOD_MS; + vTaskDelay(delay_ticks); +} + /*---------------------------------------------------------------------------* * Routine: sys_thread_new *---------------------------------------------------------------------------* @@ -405,21 +399,19 @@ u32_t sys_now(void) * Outputs: * sys_thread_t -- Pointer to per-thread timeouts. *---------------------------------------------------------------------------*/ -sys_thread_t sys_thread_new(const char *pcName, void(*pxThread)(void *pvParameters), void *pvArg, int iStackSize, int iPriority) +sys_thread_t sys_thread_new(const char *pcName, void(*pxThread)(void *pvParameters), void *pvArg, int stacksize, int iPriority) { TaskHandle_t xCreatedTask; - portBASE_TYPE xResult; - sys_thread_t xReturn; + BaseType_t xResult; - xResult = xTaskCreate(pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask); + xResult = xTaskCreate(pxThread, pcName, stacksize, pvArg, iPriority, &xCreatedTask); + LWIP_ASSERT("task creation failed", xResult == pdPASS); if (xResult == pdPASS) { - xReturn = xCreatedTask; - } else { - xReturn = NULL; + return xCreatedTask; } - return xReturn; + return NULL; } /*---------------------------------------------------------------------------* @@ -441,12 +433,13 @@ sys_thread_t sys_thread_new(const char *pcName, void(*pxThread)(void *pvParamete * Outputs: * sys_prot_t -- Previous protection level (not used here) *---------------------------------------------------------------------------*/ -static uint32_t my_nesting = 0; +static sys_prot_t critical_nesting; sys_prot_t sys_arch_protect(void) { + sys_prot_t prev; taskENTER_CRITICAL(); - uint32_t prev = my_nesting; - my_nesting++; + prev = critical_nesting; + critical_nesting++; return prev; //return (sys_prot_t)1; } @@ -462,16 +455,70 @@ sys_prot_t sys_arch_protect(void) * Inputs: * sys_prot_t -- Previous protection level (not used here) *---------------------------------------------------------------------------*/ -void sys_arch_unprotect(sys_prot_t xValue) +void sys_arch_unprotect(sys_prot_t pval) { //(void) xValue; - my_nesting--; - if (xValue != my_nesting) { - printf("lwip nesting %d\n", my_nesting); + critical_nesting--; + //LWIP_ASSERT("unexpected critical_nestion", pval == critical_nesting); + if (pval != critical_nesting) { + printf("lwip nesting %d\n", critical_nesting); } taskEXIT_CRITICAL(); } +#if LWIP_TCPIP_CORE_LOCKING + +/** Flag the core lock held. A counter for recusive locks. */ +u8_t lwip_core_lock_count; +TaskHandle_t lwip_core_lock_holder_thread; +void sys_lock_tcpip_core(void) +{ + sys_mutex_lock(&lock_tcpip_core); + if (lwip_core_lock_count == 0) { + lwip_core_lock_holder_thread = xTaskGetCurrentTaskHandle(); + } + lwip_core_lock_count++; +} + +void sys_unlock_tcpip_core(void) +{ + lwip_core_lock_count--; + if (lwip_core_lock_count == 0) { + lwip_core_lock_holder_thread = 0; + } + sys_mutex_unlock(&lock_tcpip_core); +} + +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +TaskHandle_t lwip_tcpip_thread; +void sys_mark_tcpip_thread(void) +{ + lwip_tcpip_thread = xTaskGetCurrentTaskHandle(); +} + +void sys_check_core_locking(void) +{ + /* Embedded systems should check we are NOT in an interrupt context here */ + + if (lwip_tcpip_thread != 0) { + TaskHandle_t current_thread = xTaskGetCurrentTaskHandle(); + +#if LWIP_TCPIP_CORE_LOCKING + if (current_thread != lwip_core_lock_holder_thread || + lwip_core_lock_count == 0) { + printf("Function called without core lock\n"); + } + //LWIP_ASSERT("Function called without core lock", current_thread == lwip_core_lock_holder_thread && lwip_core_lock_count > 0); +#else + if (current_thread != lwip_tcpip_thread) { + printf("Function called from wrong thread\n"); + } + //LWIP_ASSERT("Function called from wrong thread", current_thread == lwip_tcpip_thread); +#endif /* LWIP_TCPIP_CORE_LOCKING */ + } +} + /*-------------------------------------------------------------------------* * End of File: sys_arch.c *-------------------------------------------------------------------------*/ diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c index 1fd73b5..4483e5d 100644 --- a/open_esplibs/libmain/user_interface.c +++ b/open_esplibs/libmain/user_interface.c @@ -546,10 +546,13 @@ bool sdk_wifi_station_dhcpc_start(void) { sdk_info.sta_ipaddr.addr = 0; sdk_info.sta_netmask.addr = 0; sdk_info.sta_gw.addr = 0; + LOCK_TCPIP_CORE(); netif_set_addr(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw); if (dhcp_start(netif)) { + UNLOCK_TCPIP_CORE(); return false; } + UNLOCK_TCPIP_CORE(); } sdk_dhcpc_flag = DHCP_STARTED; return true; @@ -561,9 +564,11 @@ bool sdk_wifi_station_dhcpc_stop(void) { return false; } if (netif && sdk_dhcpc_flag == DHCP_STARTED) { + LOCK_TCPIP_CORE(); dhcp_stop(netif); + sdk_dhcpc_flag = DHCP_STOPPED; + UNLOCK_TCPIP_CORE(); } - sdk_dhcpc_flag = DHCP_STOPPED; return true; } @@ -616,8 +621,11 @@ bool sdk_wifi_set_ip_info(uint8_t if_index, struct ip_info *info) { } struct netif *netif = _get_netif(if_index); - if (netif) + if (netif) { + LOCK_TCPIP_CORE(); netif_set_addr(netif, &info->ip, &info->netmask, &info->gw); + UNLOCK_TCPIP_CORE(); + } return true; } diff --git a/open_esplibs/libnet80211/ieee80211_hostap.c b/open_esplibs/libnet80211/ieee80211_hostap.c index 74f9675..fec4801 100644 --- a/open_esplibs/libnet80211/ieee80211_hostap.c +++ b/open_esplibs/libnet80211/ieee80211_hostap.c @@ -216,13 +216,17 @@ bool sdk_wifi_softap_start() { struct netif *netif = (struct netif *)malloc(sizeof(struct netif)); netif_info->netif = netif; memcpy(&netif->hwaddr, mac_addr, 6); + LOCK_TCPIP_CORE(); netif_add(netif, &sdk_info.softap_ipaddr, &sdk_info.softap_netmask, &sdk_info.softap_gw, netif_info, ethernetif_init, tcpip_input); + UNLOCK_TCPIP_CORE(); } sdk_ic_set_vif(1, 1, mac_addr, 1, 0); + LOCK_TCPIP_CORE(); netif_set_up(netif_info->netif); + UNLOCK_TCPIP_CORE(); if (sdk_wifi_get_opmode() != 3 || !sdk_g_ic.v.station_netif_info || @@ -293,7 +297,9 @@ bool sdk_wifi_softap_stop() { } while (count < end); } + LOCK_TCPIP_CORE(); netif_set_down(netif_info->netif); + UNLOCK_TCPIP_CORE(); sdk_TmpSTAAPCloseAP = 1; sdk_ets_timer_disarm(&hostap_timer); sdk_ic_bss_info_update(1, &sdk_info.softap_mac_addr, 2, 0); diff --git a/open_esplibs/libnet80211/ieee80211_sta.c b/open_esplibs/libnet80211/ieee80211_sta.c index 3e7f695..7c405cb 100644 --- a/open_esplibs/libnet80211/ieee80211_sta.c +++ b/open_esplibs/libnet80211/ieee80211_sta.c @@ -42,7 +42,10 @@ bool sdk_wifi_station_start() { struct netif *netif = (struct netif *)malloc(sizeof(struct netif)); netif_info->netif = netif; memcpy(&netif->hwaddr, &sdk_info.sta_mac_addr, 6); - netif_add(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw, netif_info, ethernetif_init, tcpip_input); + LOCK_TCPIP_CORE(); + netif_add(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, + &sdk_info.sta_gw, netif_info, ethernetif_init, tcpip_input); + UNLOCK_TCPIP_CORE(); sdk_wpa_attach(&sdk_g_ic); } sdk_ic_set_vif(0, 1, &sdk_info.sta_mac_addr, 0, 0); diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c index 2d29960..bb5ec12 100644 --- a/open_esplibs/libnet80211/wl_cnx.c +++ b/open_esplibs/libnet80211/wl_cnx.c @@ -24,8 +24,10 @@ extern void *sdk_g_cnx_probe_rc_list_cb; */ void dhcp_if_down(struct netif *netif) { + LOCK_TCPIP_CORE(); dhcp_release_and_stop(netif); netif_set_down(netif); + UNLOCK_TCPIP_CORE(); } struct sdk_cnx_node *sdk_cnx_rc_search(uint8_t *hwaddr) { diff --git a/open_esplibs/libwpa/wpa_main.c b/open_esplibs/libwpa/wpa_main.c index e13e3b6..1c5646e 100644 --- a/open_esplibs/libwpa/wpa_main.c +++ b/open_esplibs/libwpa/wpa_main.c @@ -97,8 +97,10 @@ void sdk_eagle_auth_done() { if (sdk_dhcpc_flag != DHCP_STOPPED) { printf("dhcp client start...\n"); + LOCK_TCPIP_CORE(); netif_set_up(netif); dhcp_start(netif); + UNLOCK_TCPIP_CORE(); return; } @@ -107,8 +109,10 @@ void sdk_eagle_auth_done() { return; } + LOCK_TCPIP_CORE(); netif_set_addr(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw); netif_set_up(netif); + UNLOCK_TCPIP_CORE(); sdk_system_station_got_ip_set(ip_2_ip4(&netif->ip_addr), ip_2_ip4(&netif->netmask), ip_2_ip4(&netif->gw)); From 5750b9d91ff01642eb96792955974e98b9743b02 Mon Sep 17 00:00:00 2001 From: andrewclink Date: Tue, 13 Feb 2018 04:38:51 -0700 Subject: [PATCH 279/349] Allow overriding bootloader flash arguments (#565) --- common.mk | 2 +- parameters.mk | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/common.mk b/common.mk index f94752d..82a6cc1 100644 --- a/common.mk +++ b/common.mk @@ -246,7 +246,7 @@ $(FW_FILE): $(PROGRAM_OUT) $(FIRMWARE_DIR) flash: all $(if will_flash, $(call will_flash, "flash")) $(ESPTOOL) -p $(ESPPORT) --baud $(ESPBAUD) write_flash $(ESPTOOL_ARGS) \ - 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) + $(RBOOT_ARGS) 0x2000 $(FW_FILE) $(SPIFFS_ESPTOOL_ARGS) $(if did_flash, $(call did_flash, "flash")) erase_flash: diff --git a/parameters.mk b/parameters.mk index 4dede4e..d133ef5 100644 --- a/parameters.mk +++ b/parameters.mk @@ -130,6 +130,7 @@ CPPFLAGS += -DGITSHORTREV=$(GITSHORTREV) LINKER_SCRIPTS += $(ROOT)ld/program.ld $(ROOT)ld/rom.ld # rboot firmware binary paths for flashing +RBOOT_ARGS ?= 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) RBOOT_BIN = $(ROOT)bootloader/firmware/rboot.bin RBOOT_PREBUILT_BIN = $(ROOT)bootloader/firmware_prebuilt/rboot.bin RBOOT_CONF = $(ROOT)bootloader/firmware_prebuilt/blank_config.bin From 4b6513f5a196dd02de2d85ef65357b3dec502855 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 14 Feb 2018 10:40:46 +1100 Subject: [PATCH 280/349] lwip add and stub for sys_mbox_trypost_fromisr() This is not supported on esp-open-rtos, but add a stub to quieten linker warnings. --- lwip/sys_arch.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lwip/sys_arch.c b/lwip/sys_arch.c index 36a6eae..52f5330 100644 --- a/lwip/sys_arch.c +++ b/lwip/sys_arch.c @@ -284,6 +284,12 @@ err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg) return ERR_MEM; } +err_t sys_mbox_trypost_fromisr(sys_mbox_t *q, void *msg) +{ + /* Quietly fail - not implemented. */ + return ERR_MEM; +} + /*---------------------------------------------------------------------------* * Routine: sys_arch_mbox_fetch *---------------------------------------------------------------------------* From 875aaabebe465b9b4b33498e757357ce6828053b Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 17 Feb 2018 00:43:18 +1100 Subject: [PATCH 281/349] Newlib: update to version 3.0.0 --- README.md | 2 +- core/newlib_syscalls.c | 6 +- libc/README.md | 10 +- libc/xtensa-lx106-elf/include/_ansi.h | 60 +- .../include/_newlib_version.h | 6 +- libc/xtensa-lx106-elf/include/alloca.h | 2 +- libc/xtensa-lx106-elf/include/assert.h | 8 +- libc/xtensa-lx106-elf/include/ctype.h | 34 +- libc/xtensa-lx106-elf/include/envlock.h | 4 +- libc/xtensa-lx106-elf/include/getopt.h | 28 +- libc/xtensa-lx106-elf/include/iconv.h | 16 +- libc/xtensa-lx106-elf/include/ieeefp.h | 16 +- libc/xtensa-lx106-elf/include/langinfo.h | 3 + libc/xtensa-lx106-elf/include/libgen.h | 4 +- libc/xtensa-lx106-elf/include/locale.h | 8 +- .../include/machine/fastmath.h | 2 - .../xtensa-lx106-elf/include/machine/ieeefp.h | 4 +- .../xtensa-lx106-elf/include/machine/setjmp.h | 4 +- libc/xtensa-lx106-elf/include/malloc.h | 54 +- libc/xtensa-lx106-elf/include/math.h | 440 ++++++------ libc/xtensa-lx106-elf/include/pthread.h | 342 +++++---- libc/xtensa-lx106-elf/include/reent.h | 50 +- libc/xtensa-lx106-elf/include/setjmp.h | 8 +- libc/xtensa-lx106-elf/include/signal.h | 10 +- libc/xtensa-lx106-elf/include/spawn.h | 81 +-- libc/xtensa-lx106-elf/include/stdio.h | 652 +++++++++--------- libc/xtensa-lx106-elf/include/stdio_ext.h | 18 +- libc/xtensa-lx106-elf/include/stdlib.h | 278 ++++---- libc/xtensa-lx106-elf/include/string.h | 104 +-- .../include/sys/_default_fcntl.h | 18 +- libc/xtensa-lx106-elf/include/sys/cdefs.h | 2 +- libc/xtensa-lx106-elf/include/sys/errno.h | 4 +- libc/xtensa-lx106-elf/include/sys/iconvnls.h | 28 +- libc/xtensa-lx106-elf/include/sys/reent.h | 42 +- libc/xtensa-lx106-elf/include/sys/resource.h | 2 +- libc/xtensa-lx106-elf/include/sys/select.h | 11 - libc/xtensa-lx106-elf/include/sys/signal.h | 49 +- libc/xtensa-lx106-elf/include/sys/stat.h | 42 +- libc/xtensa-lx106-elf/include/sys/stdio.h | 4 +- libc/xtensa-lx106-elf/include/sys/time.h | 24 +- libc/xtensa-lx106-elf/include/sys/timeb.h | 2 +- libc/xtensa-lx106-elf/include/sys/times.h | 4 +- libc/xtensa-lx106-elf/include/sys/unistd.h | 268 +++---- libc/xtensa-lx106-elf/include/time.h | 85 ++- libc/xtensa-lx106-elf/include/unctrl.h | 4 +- libc/xtensa-lx106-elf/include/wchar.h | 308 ++++----- libc/xtensa-lx106-elf/include/wctype.h | 36 +- libc/xtensa-lx106-elf/lib/libc.a | Bin 6119524 -> 6146748 bytes libc/xtensa-lx106-elf/lib/libg.a | Bin 6119524 -> 6146748 bytes libc/xtensa-lx106-elf/lib/libm.a | Bin 2403516 -> 2403176 bytes 50 files changed, 1536 insertions(+), 1651 deletions(-) diff --git a/README.md b/README.md index 798d1c2..e2fd083 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl * [FreeRTOS](http://www.freertos.org/) V10.0.1 * [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v2.0.3, with [some modifications](https://github.com/ourairquality/lwip/). -* [newlib](https://github.com/ourairquality/newlib) v2.5.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS. +* [newlib](https://github.com/ourairquality/newlib) v3.0.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS. For details of how third party libraries are integrated, [see the wiki page](https://github.com/SuperHouse/esp-open-rtos/wiki/Third-Party-Libraries). diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index b8b062b..452e51d 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -194,9 +194,9 @@ __attribute__((weak, alias("syscall_returns_enosys"))) off_t _lseek_r(struct _reent *r, int fd, off_t offset, int whence); __attribute__((weak, alias("_gettimeofday_r"))) -int _gettimeofday_r _PARAMS ((struct _reent *r, struct timeval *now, void *p)) { - now->tv_sec = 0; - now->tv_usec = 0; +int _gettimeofday_r (struct _reent *ptr, struct timeval *ptimeval, void *ptimezone) { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; errno = ENOSYS; return -1; } diff --git a/libc/README.md b/libc/README.md index f4d8199..4869531 100644 --- a/libc/README.md +++ b/libc/README.md @@ -1 +1,9 @@ -Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit 7bcbbff5f7e3600806f352e88ec23ae0300edc29 +Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit 7558d27f9dba58ba0e51e37a2aa3ea6be7214799 + +The build commands were: + +mkdir build +cd build +../configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf --target=xtensa-lx106-elf --enable-newlib-nano-malloc --enable-newlib-nano-formatted-io --enable-newlib-reent-small --disable-newlib-mb --prefix=/tmp/libc +env CROSS_CFLAGS="-DSIGNAL_PROVIDED -DABORT_PROVIDED" make +make install diff --git a/libc/xtensa-lx106-elf/include/_ansi.h b/libc/xtensa-lx106-elf/include/_ansi.h index 5fb9907..6c7497e 100644 --- a/libc/xtensa-lx106-elf/include/_ansi.h +++ b/libc/xtensa-lx106-elf/include/_ansi.h @@ -1,11 +1,6 @@ /* Provide support for both ANSI and non-ANSI environments. */ -/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be - relied upon to have it's intended meaning. Therefore we must use our own - concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib - sources! - - To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will +/* To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header files aren't affected). */ @@ -15,14 +10,6 @@ #include #include -/* First try to figure out whether we really are in an ANSI C environment. */ -/* FIXME: This probably needs some work. Perhaps sys/config.h can be - prevailed upon to give us a clue. */ - -#ifdef __STDC__ -#define _HAVE_STDC -#endif - /* ISO C++. */ #ifdef __cplusplus @@ -46,54 +33,9 @@ #define _NOTHROW #endif -#ifdef _HAVE_STDC -#define _PTR void * -#define _AND , -#define _NOARGS void -#define _CONST const -#define _VOLATILE volatile -#define _SIGNED signed -#define _DOTS , ... -#define _VOID void -#ifdef __CYGWIN__ -#define _EXFUN_NOTHROW(name, proto) __cdecl name proto _NOTHROW -#define _EXFUN(name, proto) __cdecl name proto -#define _EXPARM(name, proto) (* __cdecl name) proto -#define _EXFNPTR(name, proto) (__cdecl * name) proto -#else -#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW -#define _EXFUN(name, proto) name proto -#define _EXPARM(name, proto) (* name) proto -#define _EXFNPTR(name, proto) (* name) proto -#endif -#define _DEFUN(name, arglist, args) name(args) -#define _DEFUN_VOID(name) name(_NOARGS) -#define _CAST_VOID (void) #ifndef _LONG_DOUBLE #define _LONG_DOUBLE long double #endif -#ifndef _PARAMS -#define _PARAMS(paramlist) paramlist -#endif -#else -#define _PTR char * -#define _AND ; -#define _NOARGS -#define _CONST -#define _VOLATILE -#define _SIGNED -#define _DOTS -#define _VOID void -#define _EXFUN(name, proto) name() -#define _EXFUN_NOTHROW(name, proto) name() -#define _DEFUN(name, arglist, args) name arglist args; -#define _DEFUN_VOID(name) name() -#define _CAST_VOID -#define _LONG_DOUBLE double -#ifndef _PARAMS -#define _PARAMS(paramlist) () -#endif -#endif /* Support gcc's __attribute__ facility. */ diff --git a/libc/xtensa-lx106-elf/include/_newlib_version.h b/libc/xtensa-lx106-elf/include/_newlib_version.h index 73b527e..5250a84 100644 --- a/libc/xtensa-lx106-elf/include/_newlib_version.h +++ b/libc/xtensa-lx106-elf/include/_newlib_version.h @@ -3,9 +3,9 @@ #ifndef _NEWLIB_VERSION_H__ #define _NEWLIB_VERSION_H__ 1 -#define _NEWLIB_VERSION "2.5.0" -#define __NEWLIB__ 2 -#define __NEWLIB_MINOR__ 5 +#define _NEWLIB_VERSION "3.0.0" +#define __NEWLIB__ 3 +#define __NEWLIB_MINOR__ 0 #define __NEWLIB_PATCHLEVEL__ 0 #endif /* !_NEWLIB_VERSION_H__ */ diff --git a/libc/xtensa-lx106-elf/include/alloca.h b/libc/xtensa-lx106-elf/include/alloca.h index 2ea0fd9..5d36318 100644 --- a/libc/xtensa-lx106-elf/include/alloca.h +++ b/libc/xtensa-lx106-elf/include/alloca.h @@ -15,7 +15,7 @@ #ifdef __GNUC__ #define alloca(size) __builtin_alloca(size) #else -void * _EXFUN(alloca,(size_t)); +void * alloca (size_t); #endif #endif diff --git a/libc/xtensa-lx106-elf/include/assert.h b/libc/xtensa-lx106-elf/include/assert.h index 91bb040..b9e5e9b 100644 --- a/libc/xtensa-lx106-elf/include/assert.h +++ b/libc/xtensa-lx106-elf/include/assert.h @@ -36,10 +36,10 @@ extern "C" { # endif /* !__ASSERT_FUNC */ #endif /* !NDEBUG */ -void _EXFUN(__assert, (const char *, int, const char *) - _ATTRIBUTE ((__noreturn__))); -void _EXFUN(__assert_func, (const char *, int, const char *, const char *) - _ATTRIBUTE ((__noreturn__))); +void __assert (const char *, int, const char *) + _ATTRIBUTE ((__noreturn__)); +void __assert_func (const char *, int, const char *, const char *) + _ATTRIBUTE ((__noreturn__)); #if __STDC_VERSION__ >= 201112L && !defined __cplusplus # define static_assert _Static_assert diff --git a/libc/xtensa-lx106-elf/include/ctype.h b/libc/xtensa-lx106-elf/include/ctype.h index 06458cb..f74b349 100644 --- a/libc/xtensa-lx106-elf/include/ctype.h +++ b/libc/xtensa-lx106-elf/include/ctype.h @@ -10,27 +10,27 @@ _BEGIN_STD_C -int _EXFUN(isalnum, (int __c)); -int _EXFUN(isalpha, (int __c)); -int _EXFUN(iscntrl, (int __c)); -int _EXFUN(isdigit, (int __c)); -int _EXFUN(isgraph, (int __c)); -int _EXFUN(islower, (int __c)); -int _EXFUN(isprint, (int __c)); -int _EXFUN(ispunct, (int __c)); -int _EXFUN(isspace, (int __c)); -int _EXFUN(isupper, (int __c)); -int _EXFUN(isxdigit,(int __c)); -int _EXFUN(tolower, (int __c)); -int _EXFUN(toupper, (int __c)); +int isalnum (int __c); +int isalpha (int __c); +int iscntrl (int __c); +int isdigit (int __c); +int isgraph (int __c); +int islower (int __c); +int isprint (int __c); +int ispunct (int __c); +int isspace (int __c); +int isupper (int __c); +int isxdigit (int __c); +int tolower (int __c); +int toupper (int __c); #if __ISO_C_VISIBLE >= 1999 -int _EXFUN(isblank, (int __c)); +int isblank (int __c); #endif #if __MISC_VISIBLE || __XSI_VISIBLE -int _EXFUN(isascii, (int __c)); -int _EXFUN(toascii, (int __c)); +int isascii (int __c); +int toascii (int __c); #define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a') #define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A') #endif @@ -162,7 +162,7 @@ const char *__locale_ctype_ptr_l (locale_t); #endif /* !__cplusplus */ /* For C++ backward-compatibility only. */ -extern __IMPORT _CONST char _ctype_[]; +extern __IMPORT const char _ctype_[]; _END_STD_C diff --git a/libc/xtensa-lx106-elf/include/envlock.h b/libc/xtensa-lx106-elf/include/envlock.h index 9bb6a81..799cf7f 100644 --- a/libc/xtensa-lx106-elf/include/envlock.h +++ b/libc/xtensa-lx106-elf/include/envlock.h @@ -9,7 +9,7 @@ #define ENV_LOCK __env_lock(reent_ptr) #define ENV_UNLOCK __env_unlock(reent_ptr) -void _EXFUN(__env_lock,(struct _reent *reent)); -void _EXFUN(__env_unlock,(struct _reent *reent)); +void __env_lock (struct _reent *reent); +void __env_unlock (struct _reent *reent); #endif /* _INCLUDE_ENVLOCK_H_ */ diff --git a/libc/xtensa-lx106-elf/include/getopt.h b/libc/xtensa-lx106-elf/include/getopt.h index e12d253..9bced42 100644 --- a/libc/xtensa-lx106-elf/include/getopt.h +++ b/libc/xtensa-lx106-elf/include/getopt.h @@ -153,31 +153,25 @@ extern "C" extern int optopt; /* function prototypes */ - int _EXFUN (getopt, - (int __argc, char *const __argv[], const char *__optstring)); + int getopt (int __argc, char *const __argv[], const char *__optstring); - int _EXFUN (getopt_long, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind)); + int getopt_long (int __argc, char *const __argv[], const char *__shortopts, + const struct option * __longopts, int *__longind); - int _EXFUN (getopt_long_only, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind)); + int getopt_long_only (int __argc, char *const __argv[], const char *__shortopts, + const struct option * __longopts, int *__longind); #ifdef __need_getopt_newlib - int _EXFUN (__getopt_r, - (int __argc, char *const __argv[], const char *__optstring, - struct getopt_data * __data)); + int __getopt_r (int __argc, char *const __argv[], const char *__optstring, + struct getopt_data * __data); - int _EXFUN (__getopt_long_r, - (int __argc, char *const __argv[], const char *__shortopts, + int __getopt_long_r (int __argc, char *const __argv[], const char *__shortopts, const struct option * __longopts, int *__longind, - struct getopt_data * __data)); + struct getopt_data * __data); - int _EXFUN (__getopt_long_only_r, - (int __argc, char *const __argv[], const char *__shortopts, + int __getopt_long_only_r (int __argc, char *const __argv[], const char *__shortopts, const struct option * __longopts, int *__longind, - struct getopt_data * __data)); + struct getopt_data * __data); #endif /* __need_getopt_newlib */ #ifdef __cplusplus diff --git a/libc/xtensa-lx106-elf/include/iconv.h b/libc/xtensa-lx106-elf/include/iconv.h index 4c023e9..37feb88 100644 --- a/libc/xtensa-lx106-elf/include/iconv.h +++ b/libc/xtensa-lx106-elf/include/iconv.h @@ -38,25 +38,25 @@ _BEGIN_STD_C #ifndef _REENT_ONLY iconv_t -_EXFUN(iconv_open, (_CONST char *, _CONST char *)); +iconv_open (const char *, const char *); size_t -_EXFUN(iconv, (iconv_t, char **__restrict, size_t *__restrict, - char **__restrict, size_t *__restrict)); +iconv (iconv_t, char **__restrict, size_t *__restrict, + char **__restrict, size_t *__restrict); int -_EXFUN(iconv_close, (iconv_t)); +iconv_close (iconv_t); #endif iconv_t -_EXFUN(_iconv_open_r, (struct _reent *, _CONST char *, _CONST char *)); +_iconv_open_r (struct _reent *, const char *, const char *); size_t -_EXFUN(_iconv_r, (struct _reent *, iconv_t, _CONST char **, - size_t *, char **, size_t *)); +_iconv_r (struct _reent *, iconv_t, const char **, + size_t *, char **, size_t *); int -_EXFUN(_iconv_close_r, (struct _reent *, iconv_t)); +_iconv_close_r (struct _reent *, iconv_t); _END_STD_C diff --git a/libc/xtensa-lx106-elf/include/ieeefp.h b/libc/xtensa-lx106-elf/include/ieeefp.h index 2c04284..2d6421a 100644 --- a/libc/xtensa-lx106-elf/include/ieeefp.h +++ b/libc/xtensa-lx106-elf/include/ieeefp.h @@ -215,8 +215,8 @@ typedef int fp_rnd; #define FP_RP 2 /* Round up */ #define FP_RZ 3 /* Round to zero (trunate) */ -fp_rnd _EXFUN(fpgetround,(void)); -fp_rnd _EXFUN(fpsetround, (fp_rnd)); +fp_rnd fpgetround (void); +fp_rnd fpsetround (fp_rnd); /* EXCEPTIONS */ @@ -227,10 +227,10 @@ typedef int fp_except; #define FP_X_UFL 0x02 /* Underflow exception */ #define FP_X_IMP 0x01 /* imprecise exception */ -fp_except _EXFUN(fpgetmask,(void)); -fp_except _EXFUN(fpsetmask,(fp_except)); -fp_except _EXFUN(fpgetsticky,(void)); -fp_except _EXFUN(fpsetsticky, (fp_except)); +fp_except fpgetmask (void); +fp_except fpsetmask (fp_except); +fp_except fpgetsticky (void); +fp_except fpsetsticky (fp_except); /* INTEGER ROUNDING */ @@ -238,8 +238,8 @@ typedef int fp_rdi; #define FP_RDI_TOZ 0 /* Round to Zero */ #define FP_RDI_RD 1 /* Follow float mode */ -fp_rdi _EXFUN(fpgetroundtoi,(void)); -fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi)); +fp_rdi fpgetroundtoi (void); +fp_rdi fpsetroundtoi (fp_rdi); #define __IEEE_DBL_EXPBIAS 1023 #define __IEEE_FLT_EXPBIAS 127 diff --git a/libc/xtensa-lx106-elf/include/langinfo.h b/libc/xtensa-lx106-elf/include/langinfo.h index 59381d6..458b925 100644 --- a/libc/xtensa-lx106-elf/include/langinfo.h +++ b/libc/xtensa-lx106-elf/include/langinfo.h @@ -36,7 +36,10 @@ #include #endif +#ifndef _NL_ITEM_DECLARED typedef int nl_item; +#define _NL_ITEM_DECLARED +#endif enum __nl_item { diff --git a/libc/xtensa-lx106-elf/include/libgen.h b/libc/xtensa-lx106-elf/include/libgen.h index 3c717c5..414b5aa 100644 --- a/libc/xtensa-lx106-elf/include/libgen.h +++ b/libc/xtensa-lx106-elf/include/libgen.h @@ -26,8 +26,8 @@ extern "C" { sure here. */ #undef basename #define basename __xpg_basename -char *_EXFUN(basename, (char *)) __asm__(__ASMNAME("basename")); -char *_EXFUN(dirname, (char *)); +char *basename (char *) __asm__(__ASMNAME("basename")); +char *dirname (char *); #ifdef __cplusplus } diff --git a/libc/xtensa-lx106-elf/include/locale.h b/libc/xtensa-lx106-elf/include/locale.h index 8ba88a9..d11eb00 100644 --- a/libc/xtensa-lx106-elf/include/locale.h +++ b/libc/xtensa-lx106-elf/include/locale.h @@ -68,8 +68,8 @@ struct lconv }; struct _reent; -char *_EXFUN(_setlocale_r,(struct _reent *, int, const char *)); -struct lconv *_EXFUN(_localeconv_r,(struct _reent *)); +char *_setlocale_r (struct _reent *, int, const char *); +struct lconv *_localeconv_r (struct _reent *); struct __locale_t *_newlocale_r (struct _reent *, int, const char *, struct __locale_t *); @@ -79,8 +79,8 @@ struct __locale_t *_uselocale_r (struct _reent *, struct __locale_t *); #ifndef _REENT_ONLY -char *_EXFUN(setlocale,(int, const char *)); -struct lconv *_EXFUN(localeconv,(void)); +char *setlocale (int, const char *); +struct lconv *localeconv (void); #if __POSIX_VISIBLE >= 200809 locale_t newlocale (int, const char *, locale_t); diff --git a/libc/xtensa-lx106-elf/include/machine/fastmath.h b/libc/xtensa-lx106-elf/include/machine/fastmath.h index b13befa..d13ab3b 100644 --- a/libc/xtensa-lx106-elf/include/machine/fastmath.h +++ b/libc/xtensa-lx106-elf/include/machine/fastmath.h @@ -46,7 +46,6 @@ double EXFUN(fast_loge,(double)); #define log2(x) fast_log2(x) #define loge(x) fast_loge(x) -#ifdef _HAVE_STDC /* These functions are in assembler, they really do take floats. This can only be used with a real ANSI compiler */ @@ -94,7 +93,6 @@ float EXFUN(fast_logef,(float)); #define log10f(x) fast_log10f(x) #define log2f(x) fast_log2f(x) #define logef(x) fast_logef(x) -#endif /* Override the functions defined in math.h */ #endif /* __sysvnecv70_target */ diff --git a/libc/xtensa-lx106-elf/include/machine/ieeefp.h b/libc/xtensa-lx106-elf/include/machine/ieeefp.h index 19cc723..4780b1b 100644 --- a/libc/xtensa-lx106-elf/include/machine/ieeefp.h +++ b/libc/xtensa-lx106-elf/include/machine/ieeefp.h @@ -78,7 +78,9 @@ # else # define __IEEE_BIG_ENDIAN # endif -# define __OBSOLETE_MATH_DEFAULT 0 +# if __ARM_FP & 0x8 +# define __OBSOLETE_MATH_DEFAULT 0 +# endif #else # define __IEEE_BIG_ENDIAN # ifdef __ARMEL__ diff --git a/libc/xtensa-lx106-elf/include/machine/setjmp.h b/libc/xtensa-lx106-elf/include/machine/setjmp.h index d93636b..5366c4f 100644 --- a/libc/xtensa-lx106-elf/include/machine/setjmp.h +++ b/libc/xtensa-lx106-elf/include/machine/setjmp.h @@ -386,7 +386,9 @@ _BEGIN_STD_C #endif #ifdef __riscv -#define _JBTYPE long +/* _JBTYPE using long long to make sure the alignment is align to 8 byte, + otherwise in rv32imafd, store/restore FPR may mis-align. */ +#define _JBTYPE long long #ifdef __riscv_32e #define _JBLEN ((4*sizeof(long))/sizeof(long)) #else diff --git a/libc/xtensa-lx106-elf/include/malloc.h b/libc/xtensa-lx106-elf/include/malloc.h index 41b5efd..e12a132 100644 --- a/libc/xtensa-lx106-elf/include/malloc.h +++ b/libc/xtensa-lx106-elf/include/malloc.h @@ -34,113 +34,113 @@ struct mallinfo { /* The routines. */ -extern _PTR malloc _PARAMS ((size_t)); +extern void *malloc (size_t); #ifdef __CYGWIN__ #undef _malloc_r #define _malloc_r(r, s) malloc (s) #else -extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t)); +extern void *_malloc_r (struct _reent *, size_t); #endif -extern _VOID free _PARAMS ((_PTR)); +extern void free (void *); #ifdef __CYGWIN__ #undef _free_r #define _free_r(r, p) free (p) #else -extern _VOID _free_r _PARAMS ((struct _reent *, _PTR)); +extern void _free_r (struct _reent *, void *); #endif -extern _PTR realloc _PARAMS ((_PTR, size_t)); +extern void *realloc (void *, size_t); #ifdef __CYGWIN__ #undef _realloc_r #define _realloc_r(r, p, s) realloc (p, s) #else -extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t)); +extern void *_realloc_r (struct _reent *, void *, size_t); #endif -extern _PTR calloc _PARAMS ((size_t, size_t)); +extern void *calloc (size_t, size_t); #ifdef __CYGWIN__ #undef _calloc_r #define _calloc_r(r, s1, s2) calloc (s1, s2); #else -extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t)); +extern void *_calloc_r (struct _reent *, size_t, size_t); #endif -extern _PTR memalign _PARAMS ((size_t, size_t)); +extern void *memalign (size_t, size_t); #ifdef __CYGWIN__ #undef _memalign_r #define _memalign_r(r, s1, s2) memalign (s1, s2); #else -extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t)); +extern void *_memalign_r (struct _reent *, size_t, size_t); #endif -extern struct mallinfo mallinfo _PARAMS ((void)); +extern struct mallinfo mallinfo (void); #ifdef __CYGWIN__ #undef _mallinfo_r #define _mallinfo_r(r) mallinfo () #else -extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *)); +extern struct mallinfo _mallinfo_r (struct _reent *); #endif -extern void malloc_stats _PARAMS ((void)); +extern void malloc_stats (void); #ifdef __CYGWIN__ #undef _malloc_stats_r #define _malloc_stats_r(r) malloc_stats () #else -extern void _malloc_stats_r _PARAMS ((struct _reent *)); +extern void _malloc_stats_r (struct _reent *); #endif -extern int mallopt _PARAMS ((int, int)); +extern int mallopt (int, int); #ifdef __CYGWIN__ #undef _mallopt_r #define _mallopt_r(i1, i2) mallopt (i1, i2) #else -extern int _mallopt_r _PARAMS ((struct _reent *, int, int)); +extern int _mallopt_r (struct _reent *, int, int); #endif -extern size_t malloc_usable_size _PARAMS ((_PTR)); +extern size_t malloc_usable_size (void *); #ifdef __CYGWIN__ #undef _malloc_usable_size_r #define _malloc_usable_size_r(r, p) malloc_usable_size (p) #else -extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR)); +extern size_t _malloc_usable_size_r (struct _reent *, void *); #endif /* These aren't too useful on an embedded system, but we define them anyhow. */ -extern _PTR valloc _PARAMS ((size_t)); +extern void *valloc (size_t); #ifdef __CYGWIN__ #undef _valloc_r #define _valloc_r(r, s) valloc (s) #else -extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t)); +extern void *_valloc_r (struct _reent *, size_t); #endif -extern _PTR pvalloc _PARAMS ((size_t)); +extern void *pvalloc (size_t); #ifdef __CYGWIN__ #undef _pvalloc_r #define _pvalloc_r(r, s) pvalloc (s) #else -extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t)); +extern void *_pvalloc_r (struct _reent *, size_t); #endif -extern int malloc_trim _PARAMS ((size_t)); +extern int malloc_trim (size_t); #ifdef __CYGWIN__ #undef _malloc_trim_r #define _malloc_trim_r(r, s) malloc_trim (s) #else -extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t)); +extern int _malloc_trim_r (struct _reent *, size_t); #endif /* A compatibility routine for an earlier version of the allocator. */ -extern _VOID mstats _PARAMS ((char *)); +extern void mstats (char *); #ifdef __CYGWIN__ #undef _mstats_r #define _mstats_r(r, p) mstats (p) #else -extern _VOID _mstats_r _PARAMS ((struct _reent *, char *)); +extern void _mstats_r (struct _reent *, char *); #endif /* SVID2/XPG mallopt options */ @@ -159,7 +159,7 @@ extern _VOID _mstats_r _PARAMS ((struct _reent *, char *)); #ifndef __CYGWIN__ /* Some systems provide this, so do too for compatibility. */ -extern void cfree _PARAMS ((_PTR)); +extern void cfree (void *); #endif /* __CYGWIN__ */ #ifdef __cplusplus diff --git a/libc/xtensa-lx106-elf/include/math.h b/libc/xtensa-lx106-elf/include/math.h index 2a322ee..893a5d0 100644 --- a/libc/xtensa-lx106-elf/include/math.h +++ b/libc/xtensa-lx106-elf/include/math.h @@ -83,54 +83,54 @@ _BEGIN_STD_C /* Reentrant ANSI C functions. */ #ifndef __math_68881 -extern double atan _PARAMS((double)); -extern double cos _PARAMS((double)); -extern double sin _PARAMS((double)); -extern double tan _PARAMS((double)); -extern double tanh _PARAMS((double)); -extern double frexp _PARAMS((double, int *)); -extern double modf _PARAMS((double, double *)); -extern double ceil _PARAMS((double)); -extern double fabs _PARAMS((double)); -extern double floor _PARAMS((double)); +extern double atan (double); +extern double cos (double); +extern double sin (double); +extern double tan (double); +extern double tanh (double); +extern double frexp (double, int *); +extern double modf (double, double *); +extern double ceil (double); +extern double fabs (double); +extern double floor (double); #endif /* ! defined (__math_68881) */ /* Non reentrant ANSI C functions. */ #ifndef _REENT_ONLY #ifndef __math_68881 -extern double acos _PARAMS((double)); -extern double asin _PARAMS((double)); -extern double atan2 _PARAMS((double, double)); -extern double cosh _PARAMS((double)); -extern double sinh _PARAMS((double)); -extern double exp _PARAMS((double)); -extern double ldexp _PARAMS((double, int)); -extern double log _PARAMS((double)); -extern double log10 _PARAMS((double)); -extern double pow _PARAMS((double, double)); -extern double sqrt _PARAMS((double)); -extern double fmod _PARAMS((double, double)); +extern double acos (double); +extern double asin (double); +extern double atan2 (double, double); +extern double cosh (double); +extern double sinh (double); +extern double exp (double); +extern double ldexp (double, int); +extern double log (double); +extern double log10 (double); +extern double pow (double, double); +extern double sqrt (double); +extern double fmod (double, double); #endif /* ! defined (__math_68881) */ #endif /* ! defined (_REENT_ONLY) */ #if __MISC_VISIBLE -extern int finite _PARAMS((double)); -extern int finitef _PARAMS((float)); -extern int finitel _PARAMS((long double)); -extern int isinff _PARAMS((float)); -extern int isnanf _PARAMS((float)); +extern int finite (double); +extern int finitef (float); +extern int finitel (long double); +extern int isinff (float); +extern int isnanf (float); #ifdef __CYGWIN__ /* not implemented in newlib yet */ -extern int isinfl _PARAMS((long double)); -extern int isnanl _PARAMS((long double)); +extern int isinfl (long double); +extern int isnanl (long double); #endif #if !defined(__cplusplus) || __cplusplus < 201103L -extern int isinf _PARAMS((double)); +extern int isinf (double); #endif #endif /* __MISC_VISIBLE */ #if (__MISC_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 600)) \ && (!defined(__cplusplus) || __cplusplus < 201103L) -extern int isnan _PARAMS((double)); +extern int isnan (double); #endif #if __ISO_C_VISIBLE >= 1999 @@ -287,128 +287,128 @@ extern int __signbitd (double x); /* Non ANSI double precision functions. */ -extern double infinity _PARAMS((void)); -extern double nan _PARAMS((const char *)); -extern double copysign _PARAMS((double, double)); -extern double logb _PARAMS((double)); -extern int ilogb _PARAMS((double)); +extern double infinity (void); +extern double nan (const char *); +extern double copysign (double, double); +extern double logb (double); +extern int ilogb (double); -extern double asinh _PARAMS((double)); -extern double cbrt _PARAMS((double)); -extern double nextafter _PARAMS((double, double)); -extern double rint _PARAMS((double)); -extern double scalbn _PARAMS((double, int)); +extern double asinh (double); +extern double cbrt (double); +extern double nextafter (double, double); +extern double rint (double); +extern double scalbn (double, int); -extern double exp2 _PARAMS((double)); -extern double scalbln _PARAMS((double, long int)); -extern double tgamma _PARAMS((double)); -extern double nearbyint _PARAMS((double)); -extern long int lrint _PARAMS((double)); -extern long long int llrint _PARAMS((double)); -extern double round _PARAMS((double)); -extern long int lround _PARAMS((double)); -extern long long int llround _PARAMS((double)); -extern double trunc _PARAMS((double)); -extern double remquo _PARAMS((double, double, int *)); -extern double fdim _PARAMS((double, double)); -extern double fmax _PARAMS((double, double)); -extern double fmin _PARAMS((double, double)); -extern double fma _PARAMS((double, double, double)); +extern double exp2 (double); +extern double scalbln (double, long int); +extern double tgamma (double); +extern double nearbyint (double); +extern long int lrint (double); +extern long long int llrint (double); +extern double round (double); +extern long int lround (double); +extern long long int llround (double); +extern double trunc (double); +extern double remquo (double, double, int *); +extern double fdim (double, double); +extern double fmax (double, double); +extern double fmin (double, double); +extern double fma (double, double, double); #ifndef __math_68881 -extern double log1p _PARAMS((double)); -extern double expm1 _PARAMS((double)); +extern double log1p (double); +extern double expm1 (double); #endif /* ! defined (__math_68881) */ #ifndef _REENT_ONLY -extern double acosh _PARAMS((double)); -extern double atanh _PARAMS((double)); -extern double remainder _PARAMS((double, double)); -extern double gamma _PARAMS((double)); -extern double lgamma _PARAMS((double)); -extern double erf _PARAMS((double)); -extern double erfc _PARAMS((double)); -extern double log2 _PARAMS((double)); +extern double acosh (double); +extern double atanh (double); +extern double remainder (double, double); +extern double gamma (double); +extern double lgamma (double); +extern double erf (double); +extern double erfc (double); +extern double log2 (double); #if !defined(__cplusplus) #define log2(x) (log (x) / _M_LN2) #endif #ifndef __math_68881 -extern double hypot _PARAMS((double, double)); +extern double hypot (double, double); #endif #endif /* ! defined (_REENT_ONLY) */ /* Single precision versions of ANSI functions. */ -extern float atanf _PARAMS((float)); -extern float cosf _PARAMS((float)); -extern float sinf _PARAMS((float)); -extern float tanf _PARAMS((float)); -extern float tanhf _PARAMS((float)); -extern float frexpf _PARAMS((float, int *)); -extern float modff _PARAMS((float, float *)); -extern float ceilf _PARAMS((float)); -extern float fabsf _PARAMS((float)); -extern float floorf _PARAMS((float)); +extern float atanf (float); +extern float cosf (float); +extern float sinf (float); +extern float tanf (float); +extern float tanhf (float); +extern float frexpf (float, int *); +extern float modff (float, float *); +extern float ceilf (float); +extern float fabsf (float); +extern float floorf (float); #ifndef _REENT_ONLY -extern float acosf _PARAMS((float)); -extern float asinf _PARAMS((float)); -extern float atan2f _PARAMS((float, float)); -extern float coshf _PARAMS((float)); -extern float sinhf _PARAMS((float)); -extern float expf _PARAMS((float)); -extern float ldexpf _PARAMS((float, int)); -extern float logf _PARAMS((float)); -extern float log10f _PARAMS((float)); -extern float powf _PARAMS((float, float)); -extern float sqrtf _PARAMS((float)); -extern float fmodf _PARAMS((float, float)); +extern float acosf (float); +extern float asinf (float); +extern float atan2f (float, float); +extern float coshf (float); +extern float sinhf (float); +extern float expf (float); +extern float ldexpf (float, int); +extern float logf (float); +extern float log10f (float); +extern float powf (float, float); +extern float sqrtf (float); +extern float fmodf (float, float); #endif /* ! defined (_REENT_ONLY) */ /* Other single precision functions. */ -extern float exp2f _PARAMS((float)); -extern float scalblnf _PARAMS((float, long int)); -extern float tgammaf _PARAMS((float)); -extern float nearbyintf _PARAMS((float)); -extern long int lrintf _PARAMS((float)); -extern long long int llrintf _PARAMS((float)); -extern float roundf _PARAMS((float)); -extern long int lroundf _PARAMS((float)); -extern long long int llroundf _PARAMS((float)); -extern float truncf _PARAMS((float)); -extern float remquof _PARAMS((float, float, int *)); -extern float fdimf _PARAMS((float, float)); -extern float fmaxf _PARAMS((float, float)); -extern float fminf _PARAMS((float, float)); -extern float fmaf _PARAMS((float, float, float)); +extern float exp2f (float); +extern float scalblnf (float, long int); +extern float tgammaf (float); +extern float nearbyintf (float); +extern long int lrintf (float); +extern long long int llrintf (float); +extern float roundf (float); +extern long int lroundf (float); +extern long long int llroundf (float); +extern float truncf (float); +extern float remquof (float, float, int *); +extern float fdimf (float, float); +extern float fmaxf (float, float); +extern float fminf (float, float); +extern float fmaf (float, float, float); -extern float infinityf _PARAMS((void)); -extern float nanf _PARAMS((const char *)); -extern float copysignf _PARAMS((float, float)); -extern float logbf _PARAMS((float)); -extern int ilogbf _PARAMS((float)); +extern float infinityf (void); +extern float nanf (const char *); +extern float copysignf (float, float); +extern float logbf (float); +extern int ilogbf (float); -extern float asinhf _PARAMS((float)); -extern float cbrtf _PARAMS((float)); -extern float nextafterf _PARAMS((float, float)); -extern float rintf _PARAMS((float)); -extern float scalbnf _PARAMS((float, int)); -extern float log1pf _PARAMS((float)); -extern float expm1f _PARAMS((float)); +extern float asinhf (float); +extern float cbrtf (float); +extern float nextafterf (float, float); +extern float rintf (float); +extern float scalbnf (float, int); +extern float log1pf (float); +extern float expm1f (float); #ifndef _REENT_ONLY -extern float acoshf _PARAMS((float)); -extern float atanhf _PARAMS((float)); -extern float remainderf _PARAMS((float, float)); -extern float gammaf _PARAMS((float)); -extern float lgammaf _PARAMS((float)); -extern float erff _PARAMS((float)); -extern float erfcf _PARAMS((float)); -extern float log2f _PARAMS((float)); -extern float hypotf _PARAMS((float, float)); +extern float acoshf (float); +extern float atanhf (float); +extern float remainderf (float, float); +extern float gammaf (float); +extern float lgammaf (float); +extern float erff (float); +extern float erfcf (float); +extern float log2f (float); +extern float hypotf (float, float); #endif /* ! defined (_REENT_ONLY) */ /* Newlib doesn't fully support long double math functions so far. @@ -419,141 +419,141 @@ extern float hypotf _PARAMS((float, float)); #if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__) /* Reentrant ANSI C functions. */ #ifndef __math_68881 -extern long double atanl _PARAMS((long double)); -extern long double cosl _PARAMS((long double)); -extern long double sinl _PARAMS((long double)); -extern long double tanl _PARAMS((long double)); -extern long double tanhl _PARAMS((long double)); -extern long double frexpl _PARAMS((long double, int *)); -extern long double modfl _PARAMS((long double, long double *)); -extern long double ceill _PARAMS((long double)); -extern long double fabsl _PARAMS((long double)); -extern long double floorl _PARAMS((long double)); -extern long double log1pl _PARAMS((long double)); -extern long double expm1l _PARAMS((long double)); +extern long double atanl (long double); +extern long double cosl (long double); +extern long double sinl (long double); +extern long double tanl (long double); +extern long double tanhl (long double); +extern long double frexpl (long double, int *); +extern long double modfl (long double, long double *); +extern long double ceill (long double); +extern long double fabsl (long double); +extern long double floorl (long double); +extern long double log1pl (long double); +extern long double expm1l (long double); #endif /* ! defined (__math_68881) */ /* Non reentrant ANSI C functions. */ #ifndef _REENT_ONLY #ifndef __math_68881 -extern long double acosl _PARAMS((long double)); -extern long double asinl _PARAMS((long double)); -extern long double atan2l _PARAMS((long double, long double)); -extern long double coshl _PARAMS((long double)); -extern long double sinhl _PARAMS((long double)); -extern long double expl _PARAMS((long double)); -extern long double ldexpl _PARAMS((long double, int)); -extern long double logl _PARAMS((long double)); -extern long double log10l _PARAMS((long double)); -extern long double powl _PARAMS((long double, long double)); -extern long double sqrtl _PARAMS((long double)); -extern long double fmodl _PARAMS((long double, long double)); -extern long double hypotl _PARAMS((long double, long double)); +extern long double acosl (long double); +extern long double asinl (long double); +extern long double atan2l (long double, long double); +extern long double coshl (long double); +extern long double sinhl (long double); +extern long double expl (long double); +extern long double ldexpl (long double, int); +extern long double logl (long double); +extern long double log10l (long double); +extern long double powl (long double, long double); +extern long double sqrtl (long double); +extern long double fmodl (long double, long double); +extern long double hypotl (long double, long double); #endif /* ! defined (__math_68881) */ #endif /* ! defined (_REENT_ONLY) */ -extern long double copysignl _PARAMS((long double, long double)); -extern long double nanl _PARAMS((const char *)); -extern int ilogbl _PARAMS((long double)); -extern long double asinhl _PARAMS((long double)); -extern long double cbrtl _PARAMS((long double)); -extern long double nextafterl _PARAMS((long double, long double)); -extern float nexttowardf _PARAMS((float, long double)); -extern double nexttoward _PARAMS((double, long double)); -extern long double nexttowardl _PARAMS((long double, long double)); -extern long double logbl _PARAMS((long double)); -extern long double log2l _PARAMS((long double)); -extern long double rintl _PARAMS((long double)); -extern long double scalbnl _PARAMS((long double, int)); -extern long double exp2l _PARAMS((long double)); -extern long double scalblnl _PARAMS((long double, long)); -extern long double tgammal _PARAMS((long double)); -extern long double nearbyintl _PARAMS((long double)); -extern long int lrintl _PARAMS((long double)); -extern long long int llrintl _PARAMS((long double)); -extern long double roundl _PARAMS((long double)); -extern long lroundl _PARAMS((long double)); -extern long long int llroundl _PARAMS((long double)); -extern long double truncl _PARAMS((long double)); -extern long double remquol _PARAMS((long double, long double, int *)); -extern long double fdiml _PARAMS((long double, long double)); -extern long double fmaxl _PARAMS((long double, long double)); -extern long double fminl _PARAMS((long double, long double)); -extern long double fmal _PARAMS((long double, long double, long double)); +extern long double copysignl (long double, long double); +extern long double nanl (const char *); +extern int ilogbl (long double); +extern long double asinhl (long double); +extern long double cbrtl (long double); +extern long double nextafterl (long double, long double); +extern float nexttowardf (float, long double); +extern double nexttoward (double, long double); +extern long double nexttowardl (long double, long double); +extern long double logbl (long double); +extern long double log2l (long double); +extern long double rintl (long double); +extern long double scalbnl (long double, int); +extern long double exp2l (long double); +extern long double scalblnl (long double, long); +extern long double tgammal (long double); +extern long double nearbyintl (long double); +extern long int lrintl (long double); +extern long long int llrintl (long double); +extern long double roundl (long double); +extern long lroundl (long double); +extern long long int llroundl (long double); +extern long double truncl (long double); +extern long double remquol (long double, long double, int *); +extern long double fdiml (long double, long double); +extern long double fmaxl (long double, long double); +extern long double fminl (long double, long double); +extern long double fmal (long double, long double, long double); #ifndef _REENT_ONLY -extern long double acoshl _PARAMS((long double)); -extern long double atanhl _PARAMS((long double)); -extern long double remainderl _PARAMS((long double, long double)); -extern long double lgammal _PARAMS((long double)); -extern long double erfl _PARAMS((long double)); -extern long double erfcl _PARAMS((long double)); +extern long double acoshl (long double); +extern long double atanhl (long double); +extern long double remainderl (long double, long double); +extern long double lgammal (long double); +extern long double erfl (long double); +extern long double erfcl (long double); #endif /* ! defined (_REENT_ONLY) */ #else /* !_LDBL_EQ_DBL && !__CYGWIN__ */ -extern long double hypotl _PARAMS((long double, long double)); -extern long double sqrtl _PARAMS((long double)); +extern long double hypotl (long double, long double); +extern long double sqrtl (long double); #ifdef __i386__ /* Other long double precision functions. */ -extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE)); -extern long int lrintl _PARAMS((_LONG_DOUBLE)); -extern long long int llrintl _PARAMS((_LONG_DOUBLE)); +extern _LONG_DOUBLE rintl (_LONG_DOUBLE); +extern long int lrintl (_LONG_DOUBLE); +extern long long int llrintl (_LONG_DOUBLE); #endif /* __i386__ */ #endif /* !_LDBL_EQ_DBL && !__CYGWIN__ */ #endif /* __ISO_C_VISIBLE >= 1999 */ #if __MISC_VISIBLE -extern double drem _PARAMS((double, double)); -extern float dremf _PARAMS((float, float)); +extern double drem (double, double); +extern float dremf (float, float); #ifdef __CYGWIN__ -extern float dreml _PARAMS((long double, long double)); +extern float dreml (long double, long double); #endif /* __CYGWIN__ */ -extern double gamma_r _PARAMS((double, int *)); -extern double lgamma_r _PARAMS((double, int *)); -extern float gammaf_r _PARAMS((float, int *)); -extern float lgammaf_r _PARAMS((float, int *)); +extern double gamma_r (double, int *); +extern double lgamma_r (double, int *); +extern float gammaf_r (float, int *); +extern float lgammaf_r (float, int *); #endif #if __MISC_VISIBLE || __XSI_VISIBLE -extern double y0 _PARAMS((double)); -extern double y1 _PARAMS((double)); -extern double yn _PARAMS((int, double)); -extern double j0 _PARAMS((double)); -extern double j1 _PARAMS((double)); -extern double jn _PARAMS((int, double)); +extern double y0 (double); +extern double y1 (double); +extern double yn (int, double); +extern double j0 (double); +extern double j1 (double); +extern double jn (int, double); #endif #if __MISC_VISIBLE || __XSI_VISIBLE >= 600 -extern float y0f _PARAMS((float)); -extern float y1f _PARAMS((float)); -extern float ynf _PARAMS((int, float)); -extern float j0f _PARAMS((float)); -extern float j1f _PARAMS((float)); -extern float jnf _PARAMS((int, float)); +extern float y0f (float); +extern float y1f (float); +extern float ynf (int, float); +extern float j0f (float); +extern float j1f (float); +extern float jnf (int, float); #endif /* GNU extensions */ #if __GNU_VISIBLE -extern void sincos _PARAMS((double, double *, double *)); -extern void sincosf _PARAMS((float, float *, float *)); +extern void sincos (double, double *, double *); +extern void sincosf (float, float *, float *); #ifdef __CYGWIN__ -extern void sincosl _PARAMS((long double, long double *, long double *)); +extern void sincosl (long double, long double *, long double *); #endif /* __CYGWIN__ */ # ifndef exp10 -extern double exp10 _PARAMS((double)); +extern double exp10 (double); # endif # ifndef pow10 -extern double pow10 _PARAMS((double)); +extern double pow10 (double); # endif # ifndef exp10f -extern float exp10f _PARAMS((float)); +extern float exp10f (float); # endif # ifndef pow10f -extern float pow10f _PARAMS((float)); +extern float pow10f (float); # endif #ifdef __CYGWIN__ # ifndef exp10l -extern float exp10l _PARAMS((float)); +extern float exp10l (float); # endif # ifndef pow10l -extern float pow10l _PARAMS((float)); +extern float pow10l (float); # endif #endif /* __CYGWIN__ */ #endif /* __GNU_VISIBLE */ @@ -562,7 +562,7 @@ extern float pow10l _PARAMS((float)); /* The gamma functions use a global variable, signgam. */ #ifndef _REENT_ONLY #define signgam (*__signgam()) -extern int *__signgam _PARAMS((void)); +extern int *__signgam (void); #endif /* ! defined (_REENT_ONLY) */ #define __signgam_r(ptr) _REENT_SIGNGAM(ptr) @@ -587,9 +587,9 @@ struct exception }; #ifdef __cplusplus -extern int matherr _PARAMS((struct __exception *e)); +extern int matherr (struct __exception *e); #else -extern int matherr _PARAMS((struct exception *e)); +extern int matherr (struct exception *e); #endif /* Values for the type field of struct exception. */ diff --git a/libc/xtensa-lx106-elf/include/pthread.h b/libc/xtensa-lx106-elf/include/pthread.h index fb2fa93..3dee1c9 100644 --- a/libc/xtensa-lx106-elf/include/pthread.h +++ b/libc/xtensa-lx106-elf/include/pthread.h @@ -39,34 +39,32 @@ struct _pthread_cleanup_context { }; /* Register Fork Handlers */ -int _EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void), - void (*child)(void))); +int pthread_atfork (void (*prepare)(void), void (*parent)(void), + void (*child)(void)); /* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ -int _EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutexattr_getpshared, - (_CONST pthread_mutexattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_mutexattr_setpshared, - (pthread_mutexattr_t *__attr, int __pshared)); +int pthread_mutexattr_init (pthread_mutexattr_t *__attr); +int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr); +int pthread_mutexattr_getpshared (const pthread_mutexattr_t *__attr, + int *__pshared); +int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, + int __pshared); #if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) /* Single UNIX Specification 2 Mutex Attributes types */ -int _EXFUN(pthread_mutexattr_gettype, - (_CONST pthread_mutexattr_t *__attr, int *__kind)); -int _EXFUN(pthread_mutexattr_settype, - (pthread_mutexattr_t *__attr, int __kind)); +int pthread_mutexattr_gettype (const pthread_mutexattr_t *__attr, int *__kind); +int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind); #endif /* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ -int _EXFUN(pthread_mutex_init, - (pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex)); +int pthread_mutex_init (pthread_mutex_t *__mutex, + const pthread_mutexattr_t *__attr); +int pthread_mutex_destroy (pthread_mutex_t *__mutex); /* This is used to statically initialize a pthread_mutex_t. Example: @@ -78,38 +76,36 @@ int _EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex)); /* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ -int _EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex)); -int _EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex)); -int _EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex)); +int pthread_mutex_lock (pthread_mutex_t *__mutex); +int pthread_mutex_trylock (pthread_mutex_t *__mutex); +int pthread_mutex_unlock (pthread_mutex_t *__mutex); #if defined(_POSIX_TIMEOUTS) -int _EXFUN(pthread_mutex_timedlock, - (pthread_mutex_t *__mutex, _CONST struct timespec *__timeout)); +int pthread_mutex_timedlock (pthread_mutex_t *__mutex, + const struct timespec *__timeout); #endif /* _POSIX_TIMEOUTS */ /* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ -int _EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr)); -int _EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr)); +int pthread_condattr_init (pthread_condattr_t *__attr); +int pthread_condattr_destroy (pthread_condattr_t *__attr); -int _EXFUN(pthread_condattr_getclock, - (const pthread_condattr_t *__restrict __attr, - clockid_t *__restrict __clock_id)); -int _EXFUN(pthread_condattr_setclock, - (pthread_condattr_t *__attr, clockid_t __clock_id)); +int pthread_condattr_getclock (const pthread_condattr_t *__restrict __attr, + clockid_t *__restrict __clock_id); +int pthread_condattr_setclock (pthread_condattr_t *__attr, + clockid_t __clock_id); -int _EXFUN(pthread_condattr_getpshared, - (_CONST pthread_condattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_condattr_setpshared, - (pthread_condattr_t *__attr, int __pshared)); +int pthread_condattr_getpshared (const pthread_condattr_t *__attr, + int *__pshared); +int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared); /* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ -int _EXFUN(pthread_cond_init, - (pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr)); -int _EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex)); +int pthread_cond_init (pthread_cond_t *__cond, + const pthread_condattr_t *__attr); +int pthread_cond_destroy (pthread_cond_t *__mutex); /* This is used to statically initialize a pthread_cond_t. Example: @@ -120,53 +116,50 @@ int _EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex)); /* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ -int _EXFUN(pthread_cond_signal, (pthread_cond_t *__cond)); -int _EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond)); +int pthread_cond_signal (pthread_cond_t *__cond); +int pthread_cond_broadcast (pthread_cond_t *__cond); /* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ -int _EXFUN(pthread_cond_wait, - (pthread_cond_t *__cond, pthread_mutex_t *__mutex)); +int pthread_cond_wait (pthread_cond_t *__cond, pthread_mutex_t *__mutex); -int _EXFUN(pthread_cond_timedwait, - (pthread_cond_t *__cond, pthread_mutex_t *__mutex, - _CONST struct timespec *__abstime)); +int pthread_cond_timedwait (pthread_cond_t *__cond, + pthread_mutex_t *__mutex, + const struct timespec *__abstime); #if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) /* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ -int _EXFUN(pthread_attr_setscope, - (pthread_attr_t *__attr, int __contentionscope)); -int _EXFUN(pthread_attr_getscope, - (_CONST pthread_attr_t *__attr, int *__contentionscope)); -int _EXFUN(pthread_attr_setinheritsched, - (pthread_attr_t *__attr, int __inheritsched)); -int _EXFUN(pthread_attr_getinheritsched, - (_CONST pthread_attr_t *__attr, int *__inheritsched)); -int _EXFUN(pthread_attr_setschedpolicy, - (pthread_attr_t *__attr, int __policy)); -int _EXFUN(pthread_attr_getschedpolicy, - (_CONST pthread_attr_t *__attr, int *__policy)); +int pthread_attr_setscope (pthread_attr_t *__attr, int __contentionscope); +int pthread_attr_getscope (const pthread_attr_t *__attr, + int *__contentionscope); +int pthread_attr_setinheritsched (pthread_attr_t *__attr, + int __inheritsched); +int pthread_attr_getinheritsched (const pthread_attr_t *__attr, + int *__inheritsched); +int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy); +int pthread_attr_getschedpolicy (const pthread_attr_t *__attr, + int *__policy); #endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ -int _EXFUN(pthread_attr_setschedparam, - (pthread_attr_t *__attr, _CONST struct sched_param *__param)); -int _EXFUN(pthread_attr_getschedparam, - (_CONST pthread_attr_t *__attr, struct sched_param *__param)); +int pthread_attr_setschedparam (pthread_attr_t *__attr, + const struct sched_param *__param); +int pthread_attr_getschedparam (const pthread_attr_t *__attr, + struct sched_param *__param); #if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) /* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ -int _EXFUN(pthread_getschedparam, - (pthread_t __pthread, int *__policy, struct sched_param *__param)); -int _EXFUN(pthread_setschedparam, - (pthread_t __pthread, int __policy, struct sched_param *__param)); +int pthread_getschedparam (pthread_t __pthread, int *__policy, + struct sched_param *__param); +int pthread_setschedparam (pthread_t __pthread, int __policy, + struct sched_param *__param); /* Set Scheduling Priority of a Thread */ -int _EXFUN(pthread_setschedprio, (pthread_t thread, int prio)); +int pthread_setschedprio (pthread_t thread, int prio); #endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ @@ -180,14 +173,14 @@ int pthread_setname_np(pthread_t, const char *) __nonnull((2)); /* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ -int _EXFUN(pthread_mutexattr_setprotocol, - (pthread_mutexattr_t *__attr, int __protocol)); -int _EXFUN(pthread_mutexattr_getprotocol, - (_CONST pthread_mutexattr_t *__attr, int *__protocol)); -int _EXFUN(pthread_mutexattr_setprioceiling, - (pthread_mutexattr_t *__attr, int __prioceiling)); -int _EXFUN(pthread_mutexattr_getprioceiling, - (_CONST pthread_mutexattr_t *__attr, int *__prioceiling)); +int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, + int __protocol); +int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *__attr, + int *__protocol); +int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, + int __prioceiling); +int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *__attr, + int *__prioceiling); #endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ @@ -195,37 +188,33 @@ int _EXFUN(pthread_mutexattr_getprioceiling, /* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ -int _EXFUN(pthread_mutex_setprioceiling, - (pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling)); -int _EXFUN(pthread_mutex_getprioceiling, - (pthread_mutex_t *__mutex, int *__prioceiling)); +int pthread_mutex_setprioceiling (pthread_mutex_t *__mutex, + int __prioceiling, int *__old_ceiling); +int pthread_mutex_getprioceiling (pthread_mutex_t *__mutex, + int *__prioceiling); #endif /* _POSIX_THREAD_PRIO_PROTECT */ /* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ -int _EXFUN(pthread_attr_init, (pthread_attr_t *__attr)); -int _EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr)); -int _EXFUN(pthread_attr_setstack, (pthread_attr_t *attr, - void *__stackaddr, size_t __stacksize)); -int _EXFUN(pthread_attr_getstack, (_CONST pthread_attr_t *attr, - void **__stackaddr, size_t *__stacksize)); -int _EXFUN(pthread_attr_getstacksize, - (_CONST pthread_attr_t *__attr, size_t *__stacksize)); -int _EXFUN(pthread_attr_setstacksize, - (pthread_attr_t *__attr, size_t __stacksize)); -int _EXFUN(pthread_attr_getstackaddr, - (_CONST pthread_attr_t *__attr, void **__stackaddr)); -int _EXFUN(pthread_attr_setstackaddr, - (pthread_attr_t *__attr, void *__stackaddr)); -int _EXFUN(pthread_attr_getdetachstate, - (_CONST pthread_attr_t *__attr, int *__detachstate)); -int _EXFUN(pthread_attr_setdetachstate, - (pthread_attr_t *__attr, int __detachstate)); -int _EXFUN(pthread_attr_getguardsize, - (_CONST pthread_attr_t *__attr, size_t *__guardsize)); -int _EXFUN(pthread_attr_setguardsize, - (pthread_attr_t *__attr, size_t __guardsize)); +int pthread_attr_init (pthread_attr_t *__attr); +int pthread_attr_destroy (pthread_attr_t *__attr); +int pthread_attr_setstack (pthread_attr_t *attr, + void *__stackaddr, size_t __stacksize); +int pthread_attr_getstack (const pthread_attr_t *attr, + void **__stackaddr, size_t *__stacksize); +int pthread_attr_getstacksize (const pthread_attr_t *__attr, + size_t *__stacksize); +int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize); +int pthread_attr_getstackaddr (const pthread_attr_t *__attr, + void **__stackaddr); +int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr); +int pthread_attr_getdetachstate (const pthread_attr_t *__attr, + int *__detachstate); +int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate); +int pthread_attr_getguardsize (const pthread_attr_t *__attr, + size_t *__guardsize); +int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize); /* POSIX thread APIs beyond the POSIX standard but provided * in GNU/Linux. They may be provided by other OSes for @@ -233,59 +222,55 @@ int _EXFUN(pthread_attr_setguardsize, */ #if __GNU_VISIBLE #if defined(__rtems__) -int _EXFUN(pthread_attr_setaffinity_np, - (pthread_attr_t *__attr, size_t __cpusetsize, - const cpu_set_t *__cpuset)); -int _EXFUN(pthread_attr_getaffinity_np, - (const pthread_attr_t *__attr, size_t __cpusetsize, - cpu_set_t *__cpuset)); +int pthread_attr_setaffinity_np (pthread_attr_t *__attr, + size_t __cpusetsize, + const cpu_set_t *__cpuset); +int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, + size_t __cpusetsize, cpu_set_t *__cpuset); -int _EXFUN(pthread_setaffinity_np, - (pthread_t __id, size_t __cpusetsize, const cpu_set_t *__cpuset)); -int _EXFUN(pthread_getaffinity_np, - (const pthread_t __id, size_t __cpusetsize, cpu_set_t *__cpuset)); +int pthread_setaffinity_np (pthread_t __id, size_t __cpusetsize, + const cpu_set_t *__cpuset); +int pthread_getaffinity_np (const pthread_t __id, size_t __cpusetsize, + cpu_set_t *__cpuset); -int _EXFUN(pthread_getattr_np, - (pthread_t __id, pthread_attr_t *__attr)); +int pthread_getattr_np (pthread_t __id, pthread_attr_t *__attr); #endif /* defined(__rtems__) */ #endif /* __GNU_VISIBLE */ /* Thread Creation, P1003.1c/Draft 10, p. 144 */ -int _EXFUN(pthread_create, - (pthread_t *__pthread, _CONST pthread_attr_t *__attr, - void *(*__start_routine)( void * ), void *__arg)); +int pthread_create (pthread_t *__pthread, const pthread_attr_t *__attr, + void *(*__start_routine)(void *), void *__arg); /* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ -int _EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr)); +int pthread_join (pthread_t __pthread, void **__value_ptr); /* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ -int _EXFUN(pthread_detach, (pthread_t __pthread)); +int pthread_detach (pthread_t __pthread); /* Thread Termination, p1003.1c/Draft 10, p. 150 */ -void _EXFUN(pthread_exit, (void *__value_ptr)) __dead2; +void pthread_exit (void *__value_ptr) __dead2; /* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ -pthread_t _EXFUN(pthread_self, (void)); +pthread_t pthread_self (void); /* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ -int _EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2)); +int pthread_equal (pthread_t __t1, pthread_t __t2); /* Retrieve ID of a Thread's CPU Time Clock */ -int _EXFUN(pthread_getcpuclockid, - (pthread_t thread, clockid_t *clock_id)); +int pthread_getcpuclockid (pthread_t thread, clockid_t *clock_id); /* Get/Set Current Thread's Concurrency Level */ -int _EXFUN(pthread_setconcurrency, (int new_level)); -int _EXFUN(pthread_getconcurrency, (void)); +int pthread_setconcurrency (int new_level); +int pthread_getconcurrency (void); #if __BSD_VISIBLE || __GNU_VISIBLE -void _EXFUN(pthread_yield, (void)); +void pthread_yield (void); #endif /* Dynamic Package Initialization */ @@ -298,23 +283,22 @@ void _EXFUN(pthread_yield, (void)); #define PTHREAD_ONCE_INIT _PTHREAD_ONCE_INIT -int _EXFUN(pthread_once, - (pthread_once_t *__once_control, void (*__init_routine)(void))); +int pthread_once (pthread_once_t *__once_control, + void (*__init_routine)(void)); /* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ -int _EXFUN(pthread_key_create, - (pthread_key_t *__key, void (*__destructor)( void * ))); +int pthread_key_create (pthread_key_t *__key, + void (*__destructor)(void *)); /* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ -int _EXFUN(pthread_setspecific, - (pthread_key_t __key, _CONST void *__value)); -void * _EXFUN(pthread_getspecific, (pthread_key_t __key)); +int pthread_setspecific (pthread_key_t __key, const void *__value); +void * pthread_getspecific (pthread_key_t __key); /* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ -int _EXFUN(pthread_key_delete, (pthread_key_t __key)); +int pthread_key_delete (pthread_key_t __key); /* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ @@ -326,23 +310,21 @@ int _EXFUN(pthread_key_delete, (pthread_key_t __key)); #define PTHREAD_CANCELED ((void *) -1) -int _EXFUN(pthread_cancel, (pthread_t __pthread)); +int pthread_cancel (pthread_t __pthread); /* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ -int _EXFUN(pthread_setcancelstate, (int __state, int *__oldstate)); -int _EXFUN(pthread_setcanceltype, (int __type, int *__oldtype)); -void _EXFUN(pthread_testcancel, (void)); +int pthread_setcancelstate (int __state, int *__oldstate); +int pthread_setcanceltype (int __type, int *__oldtype); +void pthread_testcancel (void); /* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ -void _EXFUN(_pthread_cleanup_push, - (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg)); +void _pthread_cleanup_push (struct _pthread_cleanup_context *_context, + void (*_routine)(void *), void *_arg); -void _EXFUN(_pthread_cleanup_pop, - (struct _pthread_cleanup_context *_context, - int _execute)); +void _pthread_cleanup_pop (struct _pthread_cleanup_context *_context, + int _execute); /* It is intentional to open and close the scope in two different macros */ #define pthread_cleanup_push(_routine, _arg) \ @@ -355,13 +337,11 @@ void _EXFUN(_pthread_cleanup_pop, } while (0) #if __GNU_VISIBLE -void _EXFUN(_pthread_cleanup_push_defer, - (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg)); +void _pthread_cleanup_push_defer (struct _pthread_cleanup_context *_context, + void (*_routine)(void *), void *_arg); -void _EXFUN(_pthread_cleanup_pop_restore, - (struct _pthread_cleanup_context *_context, - int _execute)); +void _pthread_cleanup_pop_restore (struct _pthread_cleanup_context *_context, + int _execute); /* It is intentional to open and close the scope in two different macros */ #define pthread_cleanup_push_defer_np(_routine, _arg) \ @@ -378,8 +358,7 @@ void _EXFUN(_pthread_cleanup_pop_restore, /* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ -int _EXFUN(pthread_getcpuclockid, - (pthread_t __pthread_id, clockid_t *__clock_id)); +int pthread_getcpuclockid (pthread_t __pthread_id, clockid_t *__clock_id); #endif /* defined(_POSIX_THREAD_CPUTIME) */ @@ -388,31 +367,30 @@ int _EXFUN(pthread_getcpuclockid, #if defined(_POSIX_BARRIERS) -int _EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr)); -int _EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr)); -int _EXFUN(pthread_barrierattr_getpshared, - (_CONST pthread_barrierattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_barrierattr_setpshared, - (pthread_barrierattr_t *__attr, int __pshared)); +int pthread_barrierattr_init (pthread_barrierattr_t *__attr); +int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr); +int pthread_barrierattr_getpshared (const pthread_barrierattr_t *__attr, + int *__pshared); +int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, + int __pshared); #define PTHREAD_BARRIER_SERIAL_THREAD -1 -int _EXFUN(pthread_barrier_init, - (pthread_barrier_t *__barrier, - _CONST pthread_barrierattr_t *__attr, unsigned __count)); -int _EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier)); -int _EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier)); +int pthread_barrier_init (pthread_barrier_t *__barrier, + const pthread_barrierattr_t *__attr, + unsigned __count); +int pthread_barrier_destroy (pthread_barrier_t *__barrier); +int pthread_barrier_wait (pthread_barrier_t *__barrier); #endif /* defined(_POSIX_BARRIERS) */ #if defined(_POSIX_SPIN_LOCKS) -int _EXFUN(pthread_spin_init, - (pthread_spinlock_t *__spinlock, int __pshared)); -int _EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock)); +int pthread_spin_init (pthread_spinlock_t *__spinlock, int __pshared); +int pthread_spin_destroy (pthread_spinlock_t *__spinlock); +int pthread_spin_lock (pthread_spinlock_t *__spinlock); +int pthread_spin_trylock (pthread_spinlock_t *__spinlock); +int pthread_spin_unlock (pthread_spinlock_t *__spinlock); #endif /* defined(_POSIX_SPIN_LOCKS) */ @@ -425,25 +403,25 @@ int _EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock)); #define PTHREAD_RWLOCK_INITIALIZER _PTHREAD_RWLOCK_INITIALIZER -int _EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlockattr_getpshared, - (_CONST pthread_rwlockattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_rwlockattr_setpshared, - (pthread_rwlockattr_t *__attr, int __pshared)); +int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr); +int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr); +int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *__attr, + int *__pshared); +int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, + int __pshared); -int _EXFUN(pthread_rwlock_init, - (pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_timedrdlock, - (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); -int _EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_timedwrlock, - (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); +int pthread_rwlock_init (pthread_rwlock_t *__rwlock, + const pthread_rwlockattr_t *__attr); +int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock); +int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock); +int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock); +int pthread_rwlock_timedrdlock (pthread_rwlock_t *__rwlock, + const struct timespec *__abstime); +int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); +int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock); +int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock); +int pthread_rwlock_timedwrlock (pthread_rwlock_t *__rwlock, + const struct timespec *__abstime); #endif /* defined(_POSIX_READER_WRITER_LOCKS) */ diff --git a/libc/xtensa-lx106-elf/include/reent.h b/libc/xtensa-lx106-elf/include/reent.h index b7664b0..2b01fbe 100644 --- a/libc/xtensa-lx106-elf/include/reent.h +++ b/libc/xtensa-lx106-elf/include/reent.h @@ -136,29 +136,29 @@ struct timezone; #else /* Reentrant versions of system calls. */ -extern int _close_r _PARAMS ((struct _reent *, int)); -extern int _execve_r _PARAMS ((struct _reent *, const char *, char *const *, char *const *)); -extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int)); -extern int _fork_r _PARAMS ((struct _reent *)); -extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *)); -extern int _getpid_r _PARAMS ((struct _reent *)); -extern int _isatty_r _PARAMS ((struct _reent *, int)); -extern int _kill_r _PARAMS ((struct _reent *, int, int)); -extern int _link_r _PARAMS ((struct _reent *, const char *, const char *)); -extern _off_t _lseek_r _PARAMS ((struct _reent *, int, _off_t, int)); -extern int _mkdir_r _PARAMS ((struct _reent *, const char *, int)); -extern int _open_r _PARAMS ((struct _reent *, const char *, int, int)); -extern _ssize_t _read_r _PARAMS ((struct _reent *, int, void *, size_t)); -extern int _rename_r _PARAMS ((struct _reent *, const char *, const char *)); -extern void *_sbrk_r _PARAMS ((struct _reent *, ptrdiff_t)); -extern int _stat_r _PARAMS ((struct _reent *, const char *, struct stat *)); -extern _CLOCK_T_ _times_r _PARAMS ((struct _reent *, struct tms *)); -extern int _unlink_r _PARAMS ((struct _reent *, const char *)); -extern int _wait_r _PARAMS ((struct _reent *, int *)); -extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t)); +extern int _close_r (struct _reent *, int); +extern int _execve_r (struct _reent *, const char *, char *const *, char *const *); +extern int _fcntl_r (struct _reent *, int, int, int); +extern int _fork_r (struct _reent *); +extern int _fstat_r (struct _reent *, int, struct stat *); +extern int _getpid_r (struct _reent *); +extern int _isatty_r (struct _reent *, int); +extern int _kill_r (struct _reent *, int, int); +extern int _link_r (struct _reent *, const char *, const char *); +extern _off_t _lseek_r (struct _reent *, int, _off_t, int); +extern int _mkdir_r (struct _reent *, const char *, int); +extern int _open_r (struct _reent *, const char *, int, int); +extern _ssize_t _read_r (struct _reent *, int, void *, size_t); +extern int _rename_r (struct _reent *, const char *, const char *); +extern void *_sbrk_r (struct _reent *, ptrdiff_t); +extern int _stat_r (struct _reent *, const char *, struct stat *); +extern _CLOCK_T_ _times_r (struct _reent *, struct tms *); +extern int _unlink_r (struct _reent *, const char *); +extern int _wait_r (struct _reent *, int *); +extern _ssize_t _write_r (struct _reent *, int, const void *, size_t); /* This one is not guaranteed to be available on all targets. */ -extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *__tp, void *__tzp)); +extern int _gettimeofday_r (struct _reent *, struct timeval *__tp, void *__tzp); #ifdef __LARGE64_FILES @@ -168,10 +168,10 @@ extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *__tp, void #endif struct stat64; -extern _off64_t _lseek64_r _PARAMS ((struct _reent *, int, _off64_t, int)); -extern int _fstat64_r _PARAMS ((struct _reent *, int, struct stat64 *)); -extern int _open64_r _PARAMS ((struct _reent *, const char *, int, int)); -extern int _stat64_r _PARAMS ((struct _reent *, const char *, struct stat64 *)); +extern _off64_t _lseek64_r (struct _reent *, int, _off64_t, int); +extern int _fstat64_r (struct _reent *, int, struct stat64 *); +extern int _open64_r (struct _reent *, const char *, int, int); +extern int _stat64_r (struct _reent *, const char *, struct stat64 *); /* Don't pollute namespace if not building newlib. */ #if defined (__CYGWIN__) && !defined (_COMPILING_NEWLIB) diff --git a/libc/xtensa-lx106-elf/include/setjmp.h b/libc/xtensa-lx106-elf/include/setjmp.h index 3d815d9..a2830b2 100644 --- a/libc/xtensa-lx106-elf/include/setjmp.h +++ b/libc/xtensa-lx106-elf/include/setjmp.h @@ -12,14 +12,12 @@ _BEGIN_STD_C #ifdef __GNUC__ -void _EXFUN(longjmp,(jmp_buf __jmpb, int __retval)) +void longjmp (jmp_buf __jmpb, int __retval) __attribute__ ((__noreturn__)); #else -void _EXFUN(longjmp,(jmp_buf __jmpb, int __retval)); +void longjmp (jmp_buf __jmpb, int __retval); #endif -int _EXFUN(setjmp,(jmp_buf __jmpb)); -#define setjmp(env) setjmp(env) - +int setjmp (jmp_buf __jmpb); _END_STD_C diff --git a/libc/xtensa-lx106-elf/include/signal.h b/libc/xtensa-lx106-elf/include/signal.h index 0324ae7..23a9863 100644 --- a/libc/xtensa-lx106-elf/include/signal.h +++ b/libc/xtensa-lx106-elf/include/signal.h @@ -21,13 +21,13 @@ typedef _sig_func_ptr sighandler_t; /* glibc naming */ struct _reent; -_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr)); -int _EXFUN(_raise_r, (struct _reent *, int)); +_sig_func_ptr _signal_r (struct _reent *, int, _sig_func_ptr); +int _raise_r (struct _reent *, int); #ifndef _REENT_ONLY -_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr)); -int _EXFUN(raise, (int)); -void _EXFUN(psignal, (int, const char *)); +_sig_func_ptr signal (int, _sig_func_ptr); +int raise (int); +void psignal (int, const char *); #endif _END_STD_C diff --git a/libc/xtensa-lx106-elf/include/spawn.h b/libc/xtensa-lx106-elf/include/spawn.h index 5a6692f..d172177 100644 --- a/libc/xtensa-lx106-elf/include/spawn.h +++ b/libc/xtensa-lx106-elf/include/spawn.h @@ -53,67 +53,52 @@ _BEGIN_STD_C * XXX both arrays should be __restrict, but this does not work when GCC * is invoked with -std=c99. */ -int _EXFUN(posix_spawn, (pid_t * __restrict, const char * __restrict, +int posix_spawn (pid_t * __restrict, const char * __restrict, const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []) -); -int _EXFUN(posix_spawnp, (pid_t * __restrict, const char * __restrict, + char * const [], char * const []); +int posix_spawnp (pid_t * __restrict, const char * __restrict, const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []) -); + char * const [], char * const []); /* * File descriptor actions */ -int _EXFUN(posix_spawn_file_actions_init, (posix_spawn_file_actions_t *)); -int _EXFUN(posix_spawn_file_actions_destroy, (posix_spawn_file_actions_t *)); +int posix_spawn_file_actions_init (posix_spawn_file_actions_t *); +int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *); -int _EXFUN(posix_spawn_file_actions_addopen, - (posix_spawn_file_actions_t * __restrict, int, const char * __restrict, int, mode_t) -); -int _EXFUN(posix_spawn_file_actions_adddup2, - (posix_spawn_file_actions_t *, int, int) -); -int _EXFUN(posix_spawn_file_actions_addclose, - (posix_spawn_file_actions_t *, int) -); +int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t * __restrict, + int, const char * __restrict, int, mode_t); +int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *, int, int); +int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *, int); /* * Spawn attributes */ -int _EXFUN(posix_spawnattr_init, (posix_spawnattr_t *)); -int _EXFUN(posix_spawnattr_destroy, (posix_spawnattr_t *)); +int posix_spawnattr_init (posix_spawnattr_t *); +int posix_spawnattr_destroy (posix_spawnattr_t *); -int _EXFUN(posix_spawnattr_getflags, - (const posix_spawnattr_t * __restrict, short * __restrict) -); -int _EXFUN(posix_spawnattr_getpgroup, - (const posix_spawnattr_t * __restrict, pid_t * __restrict)); -int _EXFUN(posix_spawnattr_getschedparam, - (const posix_spawnattr_t * __restrict, struct sched_param * __restrict) -); -int _EXFUN(posix_spawnattr_getschedpolicy, - (const posix_spawnattr_t * __restrict, int * __restrict) -); -int _EXFUN(posix_spawnattr_getsigdefault, - (const posix_spawnattr_t * __restrict, sigset_t * __restrict) -); -int _EXFUN(posix_spawnattr_getsigmask, - (const posix_spawnattr_t * __restrict, sigset_t * __restrict) -); +int posix_spawnattr_getflags (const posix_spawnattr_t * __restrict, + short * __restrict); +int posix_spawnattr_getpgroup (const posix_spawnattr_t * __restrict, + pid_t * __restrict); +int posix_spawnattr_getschedparam (const posix_spawnattr_t * __restrict, + struct sched_param * __restrict); +int posix_spawnattr_getschedpolicy (const posix_spawnattr_t * __restrict, + int * __restrict); +int posix_spawnattr_getsigdefault (const posix_spawnattr_t * __restrict, + sigset_t * __restrict); +int posix_spawnattr_getsigmask (const posix_spawnattr_t * __restrict, + sigset_t * __restrict); -int _EXFUN(posix_spawnattr_setflags, (posix_spawnattr_t *, short)); -int _EXFUN(posix_spawnattr_setpgroup, (posix_spawnattr_t *, pid_t)); -int _EXFUN(posix_spawnattr_setschedparam, - (posix_spawnattr_t * __restrict, const struct sched_param * __restrict) -); -int _EXFUN(posix_spawnattr_setschedpolicy, (posix_spawnattr_t *, int)); -int _EXFUN(posix_spawnattr_setsigdefault, - (posix_spawnattr_t * __restrict, const sigset_t * __restrict) -); -int _EXFUN(posix_spawnattr_setsigmask, - (posix_spawnattr_t * __restrict, const sigset_t * __restrict) -); +int posix_spawnattr_setflags (posix_spawnattr_t *, short); +int posix_spawnattr_setpgroup (posix_spawnattr_t *, pid_t); +int posix_spawnattr_setschedparam (posix_spawnattr_t * __restrict, + const struct sched_param * __restrict); +int posix_spawnattr_setschedpolicy (posix_spawnattr_t *, int); +int posix_spawnattr_setsigdefault (posix_spawnattr_t * __restrict, + const sigset_t * __restrict); +int posix_spawnattr_setsigmask (posix_spawnattr_t * __restrict, + const sigset_t * __restrict); _END_STD_C #endif /* !_SPAWN_H_ */ diff --git a/libc/xtensa-lx106-elf/include/stdio.h b/libc/xtensa-lx106-elf/include/stdio.h index b648e62..cbc0fa9 100644 --- a/libc/xtensa-lx106-elf/include/stdio.h +++ b/libc/xtensa-lx106-elf/include/stdio.h @@ -178,155 +178,155 @@ typedef _fpos64_t fpos64_t; #endif #if __POSIX_VISIBLE -char * _EXFUN(ctermid, (char *)); +char * ctermid (char *); #endif #if __XSI_VISIBLE && __XSI_VISIBLE < 600 -char * _EXFUN(cuserid, (char *)); +char * cuserid (char *); #endif -FILE * _EXFUN(tmpfile, (void)); -char * _EXFUN(tmpnam, (char *)); +FILE * tmpfile (void); +char * tmpnam (char *); #if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -char * _EXFUN(tempnam, (const char *, const char *)); +char * tempnam (const char *, const char *); #endif -int _EXFUN(fclose, (FILE *)); -int _EXFUN(fflush, (FILE *)); -FILE * _EXFUN(freopen, (const char *__restrict, const char *__restrict, FILE *__restrict)); -void _EXFUN(setbuf, (FILE *__restrict, char *__restrict)); -int _EXFUN(setvbuf, (FILE *__restrict, char *__restrict, int, size_t)); -int _EXFUN(fprintf, (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(fscanf, (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(printf, (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2)))); -int _EXFUN(scanf, (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2)))); -int _EXFUN(sscanf, (const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(vfprintf, (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vprintf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0)))); -int _EXFUN(vsprintf, (char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(fgetc, (FILE *)); -char * _EXFUN(fgets, (char *__restrict, int, FILE *__restrict)); -int _EXFUN(fputc, (int, FILE *)); -int _EXFUN(fputs, (const char *__restrict, FILE *__restrict)); -int _EXFUN(getc, (FILE *)); -int _EXFUN(getchar, (void)); -char * _EXFUN(gets, (char *)); -int _EXFUN(putc, (int, FILE *)); -int _EXFUN(putchar, (int)); -int _EXFUN(puts, (const char *)); -int _EXFUN(ungetc, (int, FILE *)); -size_t _EXFUN(fread, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(fwrite, (const _PTR __restrict , size_t _size, size_t _n, FILE *)); +int fclose (FILE *); +int fflush (FILE *); +FILE * freopen (const char *__restrict, const char *__restrict, FILE *__restrict); +void setbuf (FILE *__restrict, char *__restrict); +int setvbuf (FILE *__restrict, char *__restrict, int, size_t); +int fprintf (FILE *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int fscanf (FILE *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +int printf (const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 1, 2))); +int scanf (const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); +int sscanf (const char *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +int vfprintf (FILE *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int vprintf (const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 1, 0))); +int vsprintf (char *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int fgetc (FILE *); +char * fgets (char *__restrict, int, FILE *__restrict); +int fputc (int, FILE *); +int fputs (const char *__restrict, FILE *__restrict); +int getc (FILE *); +int getchar (void); +char * gets (char *); +int putc (int, FILE *); +int putchar (int); +int puts (const char *); +int ungetc (int, FILE *); +size_t fread (void *__restrict, size_t _size, size_t _n, FILE *__restrict); +size_t fwrite (const void *__restrict , size_t _size, size_t _n, FILE *); #ifdef _COMPILING_NEWLIB -int _EXFUN(fgetpos, (FILE *, _fpos_t *)); +int fgetpos (FILE *, _fpos_t *); #else -int _EXFUN(fgetpos, (FILE *__restrict, fpos_t *__restrict)); +int fgetpos (FILE *__restrict, fpos_t *__restrict); #endif -int _EXFUN(fseek, (FILE *, long, int)); +int fseek (FILE *, long, int); #ifdef _COMPILING_NEWLIB -int _EXFUN(fsetpos, (FILE *, const _fpos_t *)); +int fsetpos (FILE *, const _fpos_t *); #else -int _EXFUN(fsetpos, (FILE *, const fpos_t *)); +int fsetpos (FILE *, const fpos_t *); #endif -long _EXFUN(ftell, ( FILE *)); -void _EXFUN(rewind, (FILE *)); -void _EXFUN(clearerr, (FILE *)); -int _EXFUN(feof, (FILE *)); -int _EXFUN(ferror, (FILE *)); -void _EXFUN(perror, (const char *)); +long ftell ( FILE *); +void rewind (FILE *); +void clearerr (FILE *); +int feof (FILE *); +int ferror (FILE *); +void perror (const char *); #ifndef _REENT_ONLY -FILE * _EXFUN(fopen, (const char *__restrict _name, const char *__restrict _type)); -int _EXFUN(sprintf, (char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(remove, (const char *)); -int _EXFUN(rename, (const char *, const char *)); +FILE * fopen (const char *__restrict _name, const char *__restrict _type); +int sprintf (char *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int remove (const char *); +int rename (const char *, const char *); #ifdef _COMPILING_NEWLIB -int _EXFUN(_rename, (const char *, const char *)); +int _rename (const char *, const char *); #endif #endif #if __LARGEFILE_VISIBLE || __POSIX_VISIBLE >= 200112 #ifdef _COMPILING_NEWLIB -int _EXFUN(fseeko, (FILE *, _off_t, int)); -_off_t _EXFUN(ftello, ( FILE *)); +int fseeko (FILE *, _off_t, int); +_off_t ftello (FILE *); #else -int _EXFUN(fseeko, (FILE *, off_t, int)); -off_t _EXFUN(ftello, ( FILE *)); +int fseeko (FILE *, off_t, int); +off_t ftello (FILE *); #endif #endif #if __GNU_VISIBLE -int _EXFUN(fcloseall, (_VOID)); +int fcloseall (void); #endif #ifndef _REENT_ONLY #if __ISO_C_VISIBLE >= 1999 -int _EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(vscanf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); -int _EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); +int snprintf (char *__restrict, size_t, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int vsnprintf (char *__restrict, size_t, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int vfscanf (FILE *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); +int vscanf (const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); +int vsscanf (const char *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); #endif #if __GNU_VISIBLE -int _EXFUN(asprintf, (char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(vasprintf, (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); +int asprintf (char **__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int vasprintf (char **, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); #endif #if __MISC_VISIBLE /* Newlib-specific */ -int _EXFUN(asiprintf, (char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -char * _EXFUN(asniprintf, (char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -char * _EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); +int asiprintf (char **, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +char * asniprintf (char *, size_t *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +char * asnprintf (char *__restrict, size_t *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); #ifndef diprintf -int _EXFUN(diprintf, (int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); +int diprintf (int, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); #endif -int _EXFUN(fiprintf, (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(fiscanf, (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(iprintf, (const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2)))); -int _EXFUN(iscanf, (const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2)))); -int _EXFUN(siprintf, (char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(siscanf, (const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(sniprintf, (char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(vasiprintf, (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -char * _EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -char * _EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vdiprintf, (int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vfiprintf, (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vfiscanf, (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(viprintf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0)))); -int _EXFUN(viscanf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); -int _EXFUN(vsiprintf, (char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vsiscanf, (const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); +int fiprintf (FILE *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int fiscanf (FILE *, const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +int iprintf (const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 1, 2))); +int iscanf (const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 1, 2))); +int siprintf (char *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int siscanf (const char *, const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +int sniprintf (char *, size_t, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int vasiprintf (char **, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +char * vasniprintf (char *, size_t *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +char * vasnprintf (char *, size_t *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int vdiprintf (int, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int vfiprintf (FILE *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int vfiscanf (FILE *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); +int viprintf (const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 1, 0))); +int viscanf (const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 1, 0))); +int vsiprintf (char *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int vsiscanf (const char *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); +int vsniprintf (char *, size_t, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); #endif /* __MISC_VISIBLE */ #endif /* !_REENT_ONLY */ @@ -336,32 +336,32 @@ int _EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST) #if __POSIX_VISIBLE #ifndef _REENT_ONLY -FILE * _EXFUN(fdopen, (int, const char *)); +FILE * fdopen (int, const char *); #endif -int _EXFUN(fileno, (FILE *)); +int fileno (FILE *); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE >= 199209 -int _EXFUN(pclose, (FILE *)); -FILE * _EXFUN(popen, (const char *, const char *)); +int pclose (FILE *); +FILE * popen (const char *, const char *); #endif #if __BSD_VISIBLE -void _EXFUN(setbuffer, (FILE *, char *, int)); -int _EXFUN(setlinebuf, (FILE *)); +void setbuffer (FILE *, char *, int); +int setlinebuf (FILE *); #endif #if __MISC_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -int _EXFUN(getw, (FILE *)); -int _EXFUN(putw, (int, FILE *)); +int getw (FILE *); +int putw (int, FILE *); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE -int _EXFUN(getc_unlocked, (FILE *)); -int _EXFUN(getchar_unlocked, (void)); -void _EXFUN(flockfile, (FILE *)); -int _EXFUN(ftrylockfile, (FILE *)); -void _EXFUN(funlockfile, (FILE *)); -int _EXFUN(putc_unlocked, (int, FILE *)); -int _EXFUN(putchar_unlocked, (int)); +int getc_unlocked (FILE *); +int getchar_unlocked (void); +void flockfile (FILE *); +int ftrylockfile (FILE *); +void funlockfile (FILE *); +int putc_unlocked (int, FILE *); +int putchar_unlocked (int); #endif /* @@ -371,21 +371,21 @@ int _EXFUN(putchar_unlocked, (int)); #if __POSIX_VISIBLE >= 200809 # ifndef _REENT_ONLY # ifndef dprintf -int _EXFUN(dprintf, (int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); +int dprintf (int, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); # endif -FILE * _EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict)); +FILE * fmemopen (void *__restrict, size_t, const char *__restrict); /* getdelim - see __getdelim for now */ /* getline - see __getline for now */ -FILE * _EXFUN(open_memstream, (char **, size_t *)); -int _EXFUN(vdprintf, (int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); +FILE * open_memstream (char **, size_t *); +int vdprintf (int, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); # endif #endif #if __ATFILE_VISIBLE -int _EXFUN(renameat, (int, const char *, int, const char *)); +int renameat (int, const char *, int, const char *); # ifdef __CYGWIN__ -int _EXFUN(renameat2, (int, const char *, int, const char *, unsigned int)); +int renameat2 (int, const char *, int, const char *, unsigned int); # endif #endif @@ -393,180 +393,180 @@ int _EXFUN(renameat2, (int, const char *, int, const char *, unsigned int)); * Recursive versions of the above. */ -int _EXFUN(_asiprintf_r, (struct _reent *, char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -char * _EXFUN(_asniprintf_r, (struct _reent *, char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -char * _EXFUN(_asnprintf_r, (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_asprintf_r, (struct _reent *, char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_diprintf_r, (struct _reent *, int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_dprintf_r, (struct _reent *, int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fclose_r, (struct _reent *, FILE *)); -int _EXFUN(_fcloseall_r, (struct _reent *)); -FILE * _EXFUN(_fdopen_r, (struct _reent *, int, const char *)); -int _EXFUN(_fflush_r, (struct _reent *, FILE *)); -int _EXFUN(_fgetc_r, (struct _reent *, FILE *)); -int _EXFUN(_fgetc_unlocked_r, (struct _reent *, FILE *)); -char * _EXFUN(_fgets_r, (struct _reent *, char *__restrict, int, FILE *__restrict)); -char * _EXFUN(_fgets_unlocked_r, (struct _reent *, char *__restrict, int, FILE *__restrict)); +int _asiprintf_r (struct _reent *, char **, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +char * _asniprintf_r (struct _reent *, char *, size_t *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 4, 5))); +char * _asnprintf_r (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 4, 5))); +int _asprintf_r (struct _reent *, char **__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _diprintf_r (struct _reent *, int, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _dprintf_r (struct _reent *, int, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _fclose_r (struct _reent *, FILE *); +int _fcloseall_r (struct _reent *); +FILE * _fdopen_r (struct _reent *, int, const char *); +int _fflush_r (struct _reent *, FILE *); +int _fgetc_r (struct _reent *, FILE *); +int _fgetc_unlocked_r (struct _reent *, FILE *); +char * _fgets_r (struct _reent *, char *__restrict, int, FILE *__restrict); +char * _fgets_unlocked_r (struct _reent *, char *__restrict, int, FILE *__restrict); #ifdef _COMPILING_NEWLIB -int _EXFUN(_fgetpos_r, (struct _reent *, FILE *__restrict, _fpos_t *__restrict)); -int _EXFUN(_fsetpos_r, (struct _reent *, FILE *, const _fpos_t *)); +int _fgetpos_r (struct _reent *, FILE *__restrict, _fpos_t *__restrict); +int _fsetpos_r (struct _reent *, FILE *, const _fpos_t *); #else -int _EXFUN(_fgetpos_r, (struct _reent *, FILE *, fpos_t *)); -int _EXFUN(_fsetpos_r, (struct _reent *, FILE *, const fpos_t *)); +int _fgetpos_r (struct _reent *, FILE *, fpos_t *); +int _fsetpos_r (struct _reent *, FILE *, const fpos_t *); #endif -int _EXFUN(_fiprintf_r, (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fiscanf_r, (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -FILE * _EXFUN(_fmemopen_r, (struct _reent *, void *__restrict, size_t, const char *__restrict)); -FILE * _EXFUN(_fopen_r, (struct _reent *, const char *__restrict, const char *__restrict)); -FILE * _EXFUN(_freopen_r, (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict)); -int _EXFUN(_fprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fpurge_r, (struct _reent *, FILE *)); -int _EXFUN(_fputc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_fputc_unlocked_r, (struct _reent *, int, FILE *)); -int _EXFUN(_fputs_r, (struct _reent *, const char *__restrict, FILE *__restrict)); -int _EXFUN(_fputs_unlocked_r, (struct _reent *, const char *__restrict, FILE *__restrict)); -size_t _EXFUN(_fread_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(_fread_unlocked_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -int _EXFUN(_fscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -int _EXFUN(_fseek_r, (struct _reent *, FILE *, long, int)); -int _EXFUN(_fseeko_r,(struct _reent *, FILE *, _off_t, int)); -long _EXFUN(_ftell_r, (struct _reent *, FILE *)); -_off_t _EXFUN(_ftello_r,(struct _reent *, FILE *)); -void _EXFUN(_rewind_r, (struct _reent *, FILE *)); -size_t _EXFUN(_fwrite_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(_fwrite_unlocked_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -int _EXFUN(_getc_r, (struct _reent *, FILE *)); -int _EXFUN(_getc_unlocked_r, (struct _reent *, FILE *)); -int _EXFUN(_getchar_r, (struct _reent *)); -int _EXFUN(_getchar_unlocked_r, (struct _reent *)); -char * _EXFUN(_gets_r, (struct _reent *, char *)); -int _EXFUN(_iprintf_r, (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(_iscanf_r, (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -FILE * _EXFUN(_open_memstream_r, (struct _reent *, char **, size_t *)); -void _EXFUN(_perror_r, (struct _reent *, const char *)); -int _EXFUN(_printf_r, (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(_putc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_putc_unlocked_r, (struct _reent *, int, FILE *)); -int _EXFUN(_putchar_unlocked_r, (struct _reent *, int)); -int _EXFUN(_putchar_r, (struct _reent *, int)); -int _EXFUN(_puts_r, (struct _reent *, const char *)); -int _EXFUN(_remove_r, (struct _reent *, const char *)); -int _EXFUN(_rename_r, (struct _reent *, - const char *_old, const char *_new)); -int _EXFUN(_scanf_r, (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(_siprintf_r, (struct _reent *, char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_siscanf_r, (struct _reent *, const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -int _EXFUN(_sniprintf_r, (struct _reent *, char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_snprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_sprintf_r, (struct _reent *, char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_sscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -char * _EXFUN(_tempnam_r, (struct _reent *, const char *, const char *)); -FILE * _EXFUN(_tmpfile_r, (struct _reent *)); -char * _EXFUN(_tmpnam_r, (struct _reent *, char *)); -int _EXFUN(_ungetc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_vasiprintf_r, (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -char * _EXFUN(_vasniprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -char * _EXFUN(_vasnprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vasprintf_r, (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vdprintf_r, (struct _reent *, int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfiprintf_r, (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfiscanf_r, (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_vfprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_viprintf_r, (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(_viscanf_r, (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(_vprintf_r, (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(_vscanf_r, (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(_vsiprintf_r, (struct _reent *, char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vsiscanf_r, (struct _reent *, const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_vsniprintf_r, (struct _reent *, char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vsnprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vsprintf_r, (struct _reent *, char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vsscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); +int _fiprintf_r (struct _reent *, FILE *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _fiscanf_r (struct _reent *, FILE *, const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); +FILE * _fmemopen_r (struct _reent *, void *__restrict, size_t, const char *__restrict); +FILE * _fopen_r (struct _reent *, const char *__restrict, const char *__restrict); +FILE * _freopen_r (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict); +int _fprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _fpurge_r (struct _reent *, FILE *); +int _fputc_r (struct _reent *, int, FILE *); +int _fputc_unlocked_r (struct _reent *, int, FILE *); +int _fputs_r (struct _reent *, const char *__restrict, FILE *__restrict); +int _fputs_unlocked_r (struct _reent *, const char *__restrict, FILE *__restrict); +size_t _fread_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); +size_t _fread_unlocked_r (struct _reent *, void *__restrict, size_t _size, size_t _n, FILE *__restrict); +int _fscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); +int _fseek_r (struct _reent *, FILE *, long, int); +int _fseeko_r (struct _reent *, FILE *, _off_t, int); +long _ftell_r (struct _reent *, FILE *); +_off_t _ftello_r (struct _reent *, FILE *); +void _rewind_r (struct _reent *, FILE *); +size_t _fwrite_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); +size_t _fwrite_unlocked_r (struct _reent *, const void *__restrict, size_t _size, size_t _n, FILE *__restrict); +int _getc_r (struct _reent *, FILE *); +int _getc_unlocked_r (struct _reent *, FILE *); +int _getchar_r (struct _reent *); +int _getchar_unlocked_r (struct _reent *); +char * _gets_r (struct _reent *, char *); +int _iprintf_r (struct _reent *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int _iscanf_r (struct _reent *, const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +FILE * _open_memstream_r (struct _reent *, char **, size_t *); +void _perror_r (struct _reent *, const char *); +int _printf_r (struct _reent *, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 2, 3))); +int _putc_r (struct _reent *, int, FILE *); +int _putc_unlocked_r (struct _reent *, int, FILE *); +int _putchar_unlocked_r (struct _reent *, int); +int _putchar_r (struct _reent *, int); +int _puts_r (struct _reent *, const char *); +int _remove_r (struct _reent *, const char *); +int _rename_r (struct _reent *, + const char *_old, const char *_new); +int _scanf_r (struct _reent *, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 2, 3))); +int _siprintf_r (struct _reent *, char *, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _siscanf_r (struct _reent *, const char *, const char *, ...) + _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); +int _sniprintf_r (struct _reent *, char *, size_t, const char *, ...) + _ATTRIBUTE ((__format__ (__printf__, 4, 5))); +int _snprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 4, 5))); +int _sprintf_r (struct _reent *, char *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__printf__, 3, 4))); +int _sscanf_r (struct _reent *, const char *__restrict, const char *__restrict, ...) + _ATTRIBUTE ((__format__ (__scanf__, 3, 4))); +char * _tempnam_r (struct _reent *, const char *, const char *); +FILE * _tmpfile_r (struct _reent *); +char * _tmpnam_r (struct _reent *, char *); +int _ungetc_r (struct _reent *, int, FILE *); +int _vasiprintf_r (struct _reent *, char **, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +char * _vasniprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 4, 0))); +char * _vasnprintf_r (struct _reent*, char *, size_t *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 4, 0))); +int _vasprintf_r (struct _reent *, char **, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vdiprintf_r (struct _reent *, int, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vdprintf_r (struct _reent *, int, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vfiprintf_r (struct _reent *, FILE *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vfiscanf_r (struct _reent *, FILE *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); +int _vfprintf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vfscanf_r (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); +int _viprintf_r (struct _reent *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int _viscanf_r (struct _reent *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); +int _vprintf_r (struct _reent *, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 2, 0))); +int _vscanf_r (struct _reent *, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 2, 0))); +int _vsiprintf_r (struct _reent *, char *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vsiscanf_r (struct _reent *, const char *, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); +int _vsniprintf_r (struct _reent *, char *, size_t, const char *, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 4, 0))); +int _vsnprintf_r (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 4, 0))); +int _vsprintf_r (struct _reent *, char *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__printf__, 3, 0))); +int _vsscanf_r (struct _reent *, const char *__restrict, const char *__restrict, __VALIST) + _ATTRIBUTE ((__format__ (__scanf__, 3, 0))); /* Other extensions. */ -int _EXFUN(fpurge, (FILE *)); -ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *)); -ssize_t _EXFUN(__getline, (char **, size_t *, FILE *)); +int fpurge (FILE *); +ssize_t __getdelim (char **, size_t *, int, FILE *); +ssize_t __getline (char **, size_t *, FILE *); #if __MISC_VISIBLE -void _EXFUN(clearerr_unlocked, (FILE *)); -int _EXFUN(feof_unlocked, (FILE *)); -int _EXFUN(ferror_unlocked, (FILE *)); -int _EXFUN(fileno_unlocked, (FILE *)); -int _EXFUN(fflush_unlocked, (FILE *)); -int _EXFUN(fgetc_unlocked, (FILE *)); -int _EXFUN(fputc_unlocked, (int, FILE *)); -size_t _EXFUN(fread_unlocked, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(fwrite_unlocked, (const _PTR __restrict , size_t _size, size_t _n, FILE *)); +void clearerr_unlocked (FILE *); +int feof_unlocked (FILE *); +int ferror_unlocked (FILE *); +int fileno_unlocked (FILE *); +int fflush_unlocked (FILE *); +int fgetc_unlocked (FILE *); +int fputc_unlocked (int, FILE *); +size_t fread_unlocked (void *__restrict, size_t _size, size_t _n, FILE *__restrict); +size_t fwrite_unlocked (const void *__restrict , size_t _size, size_t _n, FILE *); #endif #if __GNU_VISIBLE -char * _EXFUN(fgets_unlocked, (char *__restrict, int, FILE *__restrict)); -int _EXFUN(fputs_unlocked, (const char *__restrict, FILE *__restrict)); +char * fgets_unlocked (char *__restrict, int, FILE *__restrict); +int fputs_unlocked (const char *__restrict, FILE *__restrict); #endif #ifdef __LARGE64_FILES #if !defined(__CYGWIN__) || defined(_COMPILING_NEWLIB) -FILE * _EXFUN(fdopen64, (int, const char *)); -FILE * _EXFUN(fopen64, (const char *, const char *)); -FILE * _EXFUN(freopen64, (_CONST char *, _CONST char *, FILE *)); -_off64_t _EXFUN(ftello64, (FILE *)); -_off64_t _EXFUN(fseeko64, (FILE *, _off64_t, int)); -int _EXFUN(fgetpos64, (FILE *, _fpos64_t *)); -int _EXFUN(fsetpos64, (FILE *, const _fpos64_t *)); -FILE * _EXFUN(tmpfile64, (void)); +FILE * fdopen64 (int, const char *); +FILE * fopen64 (const char *, const char *); +FILE * freopen64 (const char *, const char *, FILE *); +_off64_t ftello64 (FILE *); +_off64_t fseeko64 (FILE *, _off64_t, int); +int fgetpos64 (FILE *, _fpos64_t *); +int fsetpos64 (FILE *, const _fpos64_t *); +FILE * tmpfile64 (void); -FILE * _EXFUN(_fdopen64_r, (struct _reent *, int, const char *)); -FILE * _EXFUN(_fopen64_r, (struct _reent *,const char *, const char *)); -FILE * _EXFUN(_freopen64_r, (struct _reent *, _CONST char *, _CONST char *, FILE *)); -_off64_t _EXFUN(_ftello64_r, (struct _reent *, FILE *)); -_off64_t _EXFUN(_fseeko64_r, (struct _reent *, FILE *, _off64_t, int)); -int _EXFUN(_fgetpos64_r, (struct _reent *, FILE *, _fpos64_t *)); -int _EXFUN(_fsetpos64_r, (struct _reent *, FILE *, const _fpos64_t *)); -FILE * _EXFUN(_tmpfile64_r, (struct _reent *)); +FILE * _fdopen64_r (struct _reent *, int, const char *); +FILE * _fopen64_r (struct _reent *,const char *, const char *); +FILE * _freopen64_r (struct _reent *, const char *, const char *, FILE *); +_off64_t _ftello64_r (struct _reent *, FILE *); +_off64_t _fseeko64_r (struct _reent *, FILE *, _off64_t, int); +int _fgetpos64_r (struct _reent *, FILE *, _fpos64_t *); +int _fsetpos64_r (struct _reent *, FILE *, const _fpos64_t *); +FILE * _tmpfile64_r (struct _reent *); #endif /* !__CYGWIN__ */ #endif /* __LARGE64_FILES */ @@ -574,8 +574,8 @@ FILE * _EXFUN(_tmpfile64_r, (struct _reent *)); * Routines internal to the implementation. */ -int _EXFUN(__srget_r, (struct _reent *, FILE *)); -int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *)); +int __srget_r (struct _reent *, FILE *); +int __swbuf_r (struct _reent *, int, FILE *); /* * Stdio function-access interface. @@ -583,35 +583,35 @@ int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *)); #if __BSD_VISIBLE # ifdef __LARGE64_FILES -FILE *_EXFUN(funopen,(const _PTR __cookie, - int (*__readfn)(_PTR __c, char *__buf, +FILE *funopen (const void *__cookie, + int (*__readfn)(void *__c, char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __c, const char *__buf, + int (*__writefn)(void *__c, const char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence), - int (*__closefn)(_PTR __c))); -FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie, - int (*__readfn)(_PTR __c, char *__buf, + _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), + int (*__closefn)(void *__c)); +FILE *_funopen_r (struct _reent *, const void *__cookie, + int (*__readfn)(void *__c, char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __c, const char *__buf, + int (*__writefn)(void *__c, const char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence), - int (*__closefn)(_PTR __c))); + _fpos64_t (*__seekfn)(void *__c, _fpos64_t __off, int __whence), + int (*__closefn)(void *__c)); # else -FILE *_EXFUN(funopen,(const _PTR __cookie, - int (*__readfn)(_PTR __cookie, char *__buf, +FILE *funopen (const void *__cookie, + int (*__readfn)(void *__cookie, char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __cookie, const char *__buf, + int (*__writefn)(void *__cookie, const char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence), - int (*__closefn)(_PTR __cookie))); -FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie, - int (*__readfn)(_PTR __cookie, char *__buf, + fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), + int (*__closefn)(void *__cookie)); +FILE *_funopen_r (struct _reent *, const void *__cookie, + int (*__readfn)(void *__cookie, char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __cookie, const char *__buf, + int (*__writefn)(void *__cookie, const char *__buf, _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence), - int (*__closefn)(_PTR __cookie))); + fpos_t (*__seekfn)(void *__cookie, fpos_t __off, int __whence), + int (*__closefn)(void *__cookie)); # endif /* !__LARGE64_FILES */ # define fropen(__cookie, __fn) funopen(__cookie, __fn, (int (*)())0, \ @@ -640,10 +640,10 @@ typedef struct cookie_seek_function_t *seek; cookie_close_function_t *close; } cookie_io_functions_t; -FILE *_EXFUN(fopencookie,(void *__cookie, - const char *__mode, cookie_io_functions_t __functions)); -FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie, - const char *__mode, cookie_io_functions_t __functions)); +FILE *fopencookie (void *__cookie, + const char *__mode, cookie_io_functions_t __functions); +FILE *_fopencookie_r (struct _reent *, void *__cookie, + const char *__mode, cookie_io_functions_t __functions); #endif /* __GNU_VISIBLE */ #ifndef __CUSTOM_FILE_IO__ diff --git a/libc/xtensa-lx106-elf/include/stdio_ext.h b/libc/xtensa-lx106-elf/include/stdio_ext.h index 029ab02..231262d 100644 --- a/libc/xtensa-lx106-elf/include/stdio_ext.h +++ b/libc/xtensa-lx106-elf/include/stdio_ext.h @@ -19,8 +19,8 @@ _BEGIN_STD_C -void _EXFUN(__fpurge,(FILE *)); -int _EXFUN(__fsetlocking,(FILE *, int)); +void __fpurge (FILE *); +int __fsetlocking (FILE *, int); /* TODO: @@ -52,13 +52,13 @@ __fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; } #else -size_t _EXFUN(__fbufsize,(FILE *)); -int _EXFUN(__freading,(FILE *)); -int _EXFUN(__fwriting,(FILE *)); -int _EXFUN(__freadable,(FILE *)); -int _EXFUN(__fwritable,(FILE *)); -int _EXFUN(__flbf,(FILE *)); -size_t _EXFUN(__fpending,(FILE *)); +size_t __fbufsize (FILE *); +int __freading (FILE *); +int __fwriting (FILE *); +int __freadable (FILE *); +int __fwritable (FILE *); +int __flbf (FILE *); +size_t __fpending (FILE *); #ifndef __cplusplus diff --git a/libc/xtensa-lx106-elf/include/stdlib.h b/libc/xtensa-lx106-elf/include/stdlib.h index 02c1faa..5417ac0 100644 --- a/libc/xtensa-lx106-elf/include/stdlib.h +++ b/libc/xtensa-lx106-elf/include/stdlib.h @@ -54,7 +54,7 @@ typedef struct #ifndef __compar_fn_t_defined #define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const _PTR, const _PTR); +typedef int (*__compar_fn_t) (const void *, const void *); #endif #ifndef NULL @@ -66,110 +66,102 @@ typedef int (*__compar_fn_t) (const _PTR, const _PTR); #define RAND_MAX __RAND_MAX -int _EXFUN(__locale_mb_cur_max,(_VOID)); +int __locale_mb_cur_max (void); #define MB_CUR_MAX __locale_mb_cur_max() -_VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__))); -int _EXFUN(abs,(int)); +void abort (void) _ATTRIBUTE ((__noreturn__)); +int abs (int); #if __BSD_VISIBLE -__uint32_t _EXFUN(arc4random, (void)); -__uint32_t _EXFUN(arc4random_uniform, (__uint32_t)); -void _EXFUN(arc4random_buf, (void *, size_t)); +__uint32_t arc4random (void); +__uint32_t arc4random_uniform (__uint32_t); +void arc4random_buf (void *, size_t); #endif -int _EXFUN(atexit,(_VOID (*__func)(_VOID))); -double _EXFUN(atof,(const char *__nptr)); +int atexit (void (*__func)(void)); +double atof (const char *__nptr); #if __MISC_VISIBLE -float _EXFUN(atoff,(const char *__nptr)); +float atoff (const char *__nptr); #endif -int _EXFUN(atoi,(const char *__nptr)); -int _EXFUN(_atoi_r,(struct _reent *, const char *__nptr)); -long _EXFUN(atol,(const char *__nptr)); -long _EXFUN(_atol_r,(struct _reent *, const char *__nptr)); -_PTR _EXFUN(bsearch,(const _PTR __key, - const _PTR __base, +int atoi (const char *__nptr); +int _atoi_r (struct _reent *, const char *__nptr); +long atol (const char *__nptr); +long _atol_r (struct _reent *, const char *__nptr); +void * bsearch (const void *__key, + const void *__base, size_t __nmemb, size_t __size, - __compar_fn_t _compar)); -_PTR _EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size)); -div_t _EXFUN(div,(int __numer, int __denom)); -_VOID _EXFUN(exit,(int __status) _ATTRIBUTE ((__noreturn__))); -_VOID _EXFUN_NOTHROW(free,(_PTR)); -char * _EXFUN(getenv,(const char *__string)); -char * _EXFUN(_getenv_r,(struct _reent *, const char *__string)); -char * _EXFUN(_findenv,(_CONST char *, int *)); -char * _EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *)); + __compar_fn_t _compar); +void * calloc (size_t __nmemb, size_t __size) _NOTHROW; +div_t div (int __numer, int __denom); +void exit (int __status) _ATTRIBUTE ((__noreturn__)); +void free (void *) _NOTHROW; +char * getenv (const char *__string); +char * _getenv_r (struct _reent *, const char *__string); +char * _findenv (const char *, int *); +char * _findenv_r (struct _reent *, const char *, int *); #if __POSIX_VISIBLE >= 200809 extern char *suboptarg; /* getsubopt(3) external variable */ -int _EXFUN(getsubopt,(char **, char * const *, char **)); +int getsubopt (char **, char * const *, char **); #endif -long _EXFUN(labs,(long)); -ldiv_t _EXFUN(ldiv,(long __numer, long __denom)); -_PTR _EXFUN_NOTHROW(malloc,(size_t __size)); -int _EXFUN(mblen,(const char *, size_t)); -int _EXFUN(_mblen_r,(struct _reent *, const char *, size_t, _mbstate_t *)); -int _EXFUN(mbtowc,(wchar_t *__restrict, const char *__restrict, size_t)); -int _EXFUN(_mbtowc_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *)); -int _EXFUN(wctomb,(char *, wchar_t)); -int _EXFUN(_wctomb_r,(struct _reent *, char *, wchar_t, _mbstate_t *)); -size_t _EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t)); -size_t _EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *)); -size_t _EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t)); -size_t _EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *)); +long labs (long); +ldiv_t ldiv (long __numer, long __denom); +void * malloc (size_t __size) _NOTHROW; +int mblen (const char *, size_t); +int _mblen_r (struct _reent *, const char *, size_t, _mbstate_t *); +int mbtowc (wchar_t *__restrict, const char *__restrict, size_t); +int _mbtowc_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); +int wctomb (char *, wchar_t); +int _wctomb_r (struct _reent *, char *, wchar_t, _mbstate_t *); +size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t); +size_t _mbstowcs_r (struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *); +size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t); +size_t _wcstombs_r (struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *); #ifndef _REENT_ONLY #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -char * _EXFUN(mkdtemp,(char *)); +char * mkdtemp (char *); #endif #if __GNU_VISIBLE -int _EXFUN(mkostemp,(char *, int)); -int _EXFUN(mkostemps,(char *, int, int)); +int mkostemp (char *, int); +int mkostemps (char *, int, int); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -int _EXFUN(mkstemp,(char *)); +int mkstemp (char *); #endif #if __MISC_VISIBLE -int _EXFUN(mkstemps,(char *, int)); +int mkstemps (char *, int); #endif -#if (__GNUC__ < 4) || defined(__XTENSA__) -char * _EXFUN(mktemp,(char *)); -#else #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -char * _EXFUN(mktemp,(char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead")))); -#endif +char * mktemp (char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); #endif #endif /* !_REENT_ONLY */ -char * _EXFUN(_mkdtemp_r, (struct _reent *, char *)); -int _EXFUN(_mkostemp_r, (struct _reent *, char *, int)); -int _EXFUN(_mkostemps_r, (struct _reent *, char *, int, int)); -int _EXFUN(_mkstemp_r, (struct _reent *, char *)); -int _EXFUN(_mkstemps_r, (struct _reent *, char *, int)); -#if (__GNUC__ < 4) || defined(__XTENSA__) -char * _EXFUN(_mktemp_r, (struct _reent *, char *)); -#else -char * _EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead")))); -#endif -_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar)); -int _EXFUN(rand,(_VOID)); -_PTR _EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size)); +char * _mkdtemp_r (struct _reent *, char *); +int _mkostemp_r (struct _reent *, char *, int); +int _mkostemps_r (struct _reent *, char *, int, int); +int _mkstemp_r (struct _reent *, char *); +int _mkstemps_r (struct _reent *, char *, int); +char * _mktemp_r (struct _reent *, char *) _ATTRIBUTE ((__deprecated__("the use of `mktemp' is dangerous; use `mkstemp' instead"))); +void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t _compar); +int rand (void); +void * realloc (void *__r, size_t __size) _NOTHROW; #if __BSD_VISIBLE void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_size(2) __alloc_size(3); -_PTR _EXFUN(reallocf,(_PTR __r, size_t __size)); +void * reallocf (void *__r, size_t __size); #endif #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -char * _EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path)); +char * realpath (const char *__restrict path, char *__restrict resolved_path); #endif #if __BSD_VISIBLE -int _EXFUN(rpmatch, (const char *response)); +int rpmatch (const char *response); #endif #if __XSI_VISIBLE -_VOID _EXFUN(setkey, (const char *__key)); +void setkey (const char *__key); #endif -_VOID _EXFUN(srand,(unsigned __seed)); -double _EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR)); -double _EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR)); +void srand (unsigned __seed); +double strtod (const char *__restrict __n, char **__restrict __end_PTR); +double _strtod_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR); #if __ISO_C_VISIBLE >= 1999 -float _EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR)); +float strtof (const char *__restrict __n, char **__restrict __end_PTR); #endif #if __MISC_VISIBLE /* the following strtodf interface is deprecated...use strtof instead */ @@ -177,10 +169,10 @@ float _EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR)); # define strtodf strtof # endif #endif -long _EXFUN(strtol,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -long _EXFUN(_strtol_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base)); -unsigned long _EXFUN(strtoul,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base)); +long strtol (const char *__restrict __n, char **__restrict __end_PTR, int __base); +long _strtol_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); +unsigned long strtoul (const char *__restrict __n, char **__restrict __end_PTR, int __base); +unsigned long _strtoul_r (struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base); #if __GNU_VISIBLE double strtod_l (const char *__restrict, char **__restrict, locale_t); @@ -197,130 +189,130 @@ unsigned long long strtoull_l (const char *__restrict, char **__restrict, int, locale_t __loc); #endif -int _EXFUN(system,(const char *__string)); +int system (const char *__string); #if __SVID_VISIBLE || __XSI_VISIBLE >= 4 -long _EXFUN(a64l,(const char *__input)); -char * _EXFUN(l64a,(long __input)); -char * _EXFUN(_l64a_r,(struct _reent *,long __input)); +long a64l (const char *__input); +char * l64a (long __input); +char * _l64a_r (struct _reent *,long __input); #endif #if __MISC_VISIBLE -int _EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg)); +int on_exit (void (*__func)(int, void *),void *__arg); #endif #if __ISO_C_VISIBLE >= 1999 -_VOID _EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__))); +void _Exit (int __status) _ATTRIBUTE ((__noreturn__)); #endif #if __SVID_VISIBLE || __XSI_VISIBLE -int _EXFUN(putenv,(char *__string)); +int putenv (char *__string); #endif -int _EXFUN(_putenv_r,(struct _reent *, char *__string)); -_PTR _EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t)); +int _putenv_r (struct _reent *, char *__string); +void * _reallocf_r (struct _reent *, void *, size_t); #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int _EXFUN(setenv,(const char *__string, const char *__value, int __overwrite)); +int setenv (const char *__string, const char *__value, int __overwrite); #endif -int _EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite)); +int _setenv_r (struct _reent *, const char *__string, const char *__value, int __overwrite); #if __XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112 -char * _EXFUN(gcvt,(double,int,char *)); -char * _EXFUN(gcvtf,(float,int,char *)); -char * _EXFUN(fcvt,(double,int,int *,int *)); -char * _EXFUN(fcvtf,(float,int,int *,int *)); -char * _EXFUN(ecvt,(double,int,int *,int *)); -char * _EXFUN(ecvtbuf,(double, int, int*, int*, char *)); -char * _EXFUN(fcvtbuf,(double, int, int*, int*, char *)); -char * _EXFUN(ecvtf,(float,int,int *,int *)); +char * gcvt (double,int,char *); +char * gcvtf (float,int,char *); +char * fcvt (double,int,int *,int *); +char * fcvtf (float,int,int *,int *); +char * ecvt (double,int,int *,int *); +char * ecvtbuf (double, int, int*, int*, char *); +char * fcvtbuf (double, int, int*, int*, char *); +char * ecvtf (float,int,int *,int *); #endif -char * _EXFUN(__itoa,(int, char *, int)); -char * _EXFUN(__utoa,(unsigned, char *, int)); +char * __itoa (int, char *, int); +char * __utoa (unsigned, char *, int); #if __MISC_VISIBLE -char * _EXFUN(itoa,(int, char *, int)); -char * _EXFUN(utoa,(unsigned, char *, int)); +char * itoa (int, char *, int); +char * utoa (unsigned, char *, int); #endif #if __POSIX_VISIBLE -int _EXFUN(rand_r,(unsigned *__seed)); +int rand_r (unsigned *__seed); #endif #if __SVID_VISIBLE || __XSI_VISIBLE -double _EXFUN(drand48,(_VOID)); -double _EXFUN(_drand48_r,(struct _reent *)); -double _EXFUN(erand48,(unsigned short [3])); -double _EXFUN(_erand48_r,(struct _reent *, unsigned short [3])); -long _EXFUN(jrand48,(unsigned short [3])); -long _EXFUN(_jrand48_r,(struct _reent *, unsigned short [3])); -_VOID _EXFUN(lcong48,(unsigned short [7])); -_VOID _EXFUN(_lcong48_r,(struct _reent *, unsigned short [7])); -long _EXFUN(lrand48,(_VOID)); -long _EXFUN(_lrand48_r,(struct _reent *)); -long _EXFUN(mrand48,(_VOID)); -long _EXFUN(_mrand48_r,(struct _reent *)); -long _EXFUN(nrand48,(unsigned short [3])); -long _EXFUN(_nrand48_r,(struct _reent *, unsigned short [3])); +double drand48 (void); +double _drand48_r (struct _reent *); +double erand48 (unsigned short [3]); +double _erand48_r (struct _reent *, unsigned short [3]); +long jrand48 (unsigned short [3]); +long _jrand48_r (struct _reent *, unsigned short [3]); +void lcong48 (unsigned short [7]); +void _lcong48_r (struct _reent *, unsigned short [7]); +long lrand48 (void); +long _lrand48_r (struct _reent *); +long mrand48 (void); +long _mrand48_r (struct _reent *); +long nrand48 (unsigned short [3]); +long _nrand48_r (struct _reent *, unsigned short [3]); unsigned short * - _EXFUN(seed48,(unsigned short [3])); + seed48 (unsigned short [3]); unsigned short * - _EXFUN(_seed48_r,(struct _reent *, unsigned short [3])); -_VOID _EXFUN(srand48,(long)); -_VOID _EXFUN(_srand48_r,(struct _reent *, long)); + _seed48_r (struct _reent *, unsigned short [3]); +void srand48 (long); +void _srand48_r (struct _reent *, long); #endif /* __SVID_VISIBLE || __XSI_VISIBLE */ #if __SVID_VISIBLE || __XSI_VISIBLE >= 4 || __BSD_VISIBLE -char * _EXFUN(initstate,(unsigned, char *, size_t)); -long _EXFUN(random,(_VOID)); -char * _EXFUN(setstate,(char *)); -_VOID _EXFUN(srandom,(unsigned)); +char * initstate (unsigned, char *, size_t); +long random (void); +char * setstate (char *); +void srandom (unsigned); #endif #if __ISO_C_VISIBLE >= 1999 -long long _EXFUN(atoll,(const char *__nptr)); +long long atoll (const char *__nptr); #endif -long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr)); +long long _atoll_r (struct _reent *, const char *__nptr); #if __ISO_C_VISIBLE >= 1999 -long long _EXFUN(llabs,(long long)); -lldiv_t _EXFUN(lldiv,(long long __numer, long long __denom)); -long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); +long long llabs (long long); +lldiv_t lldiv (long long __numer, long long __denom); +long long strtoll (const char *__restrict __n, char **__restrict __end_PTR, int __base); #endif -long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); +long long _strtoll_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); #if __ISO_C_VISIBLE >= 1999 -unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); +unsigned long long strtoull (const char *__restrict __n, char **__restrict __end_PTR, int __base); #endif -unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); +unsigned long long _strtoull_r (struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base); #ifndef __CYGWIN__ #if __MISC_VISIBLE -_VOID _EXFUN(cfree,(_PTR)); +void cfree (void *); #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int _EXFUN(unsetenv,(const char *__string)); +int unsetenv (const char *__string); #endif -int _EXFUN(_unsetenv_r,(struct _reent *, const char *__string)); +int _unsetenv_r (struct _reent *, const char *__string); #endif /* !__CYGWIN__ */ #if __POSIX_VISIBLE >= 200112 -int _EXFUN(__nonnull ((1)) posix_memalign,(void **, size_t, size_t)); +int __nonnull ((1)) posix_memalign (void **, size_t, size_t); #endif -char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**)); +char * _dtoa_r (struct _reent *, double, int, int, int *, int*, char**); #ifndef __CYGWIN__ -_PTR _EXFUN_NOTHROW(_malloc_r,(struct _reent *, size_t)); -_PTR _EXFUN_NOTHROW(_calloc_r,(struct _reent *, size_t, size_t)); -_VOID _EXFUN_NOTHROW(_free_r,(struct _reent *, _PTR)); -_PTR _EXFUN_NOTHROW(_realloc_r,(struct _reent *, _PTR, size_t)); -_VOID _EXFUN(_mstats_r,(struct _reent *, char *)); +void * _malloc_r (struct _reent *, size_t) _NOTHROW; +void * _calloc_r (struct _reent *, size_t, size_t) _NOTHROW; +void _free_r (struct _reent *, void *) _NOTHROW; +void * _realloc_r (struct _reent *, void *, size_t) _NOTHROW; +void _mstats_r (struct _reent *, char *); #endif -int _EXFUN(_system_r,(struct _reent *, const char *)); +int _system_r (struct _reent *, const char *); -_VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *)); +void __eprintf (const char *, const char *, unsigned int, const char *); /* There are two common qsort_r variants. If you request _BSD_SOURCE, you get the BSD version; otherwise you get the GNU version. We want that #undef qsort_r will still let you invoke the underlying function, but that requires gcc support. */ #if __GNU_VISIBLE -_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk)); +void qsort_r (void *__base, size_t __nmemb, size_t __size, int (*_compar)(const void *, const void *, void *), void *__thunk); #elif __BSD_VISIBLE # ifdef __GNUC__ -_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))) +void qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)) __asm__ (__ASMNAME ("__bsd_qsort_r")); # else -_VOID _EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))); +void __bsd_qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int (*_compar)(void *, const void *, const void *)); # define qsort_r __bsd_qsort_r # endif #endif diff --git a/libc/xtensa-lx106-elf/include/string.h b/libc/xtensa-lx106-elf/include/string.h index b54b833..37febad 100644 --- a/libc/xtensa-lx106-elf/include/string.h +++ b/libc/xtensa-lx106-elf/include/string.h @@ -26,30 +26,30 @@ _BEGIN_STD_C -_PTR _EXFUN(memchr,(const _PTR, int, size_t)); -int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); -_PTR _EXFUN(memcpy,(_PTR __restrict, const _PTR __restrict, size_t)); -_PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memset,(_PTR, int, size_t)); -char *_EXFUN(strcat,(char *__restrict, const char *__restrict)); -char *_EXFUN(strchr,(const char *, int)); -int _EXFUN(strcmp,(const char *, const char *)); -int _EXFUN(strcoll,(const char *, const char *)); -char *_EXFUN(strcpy,(char *__restrict, const char *__restrict)); -size_t _EXFUN(strcspn,(const char *, const char *)); -char *_EXFUN(strerror,(int)); -size_t _EXFUN(strlen,(const char *)); -char *_EXFUN(strncat,(char *__restrict, const char *__restrict, size_t)); -int _EXFUN(strncmp,(const char *, const char *, size_t)); -char *_EXFUN(strncpy,(char *__restrict, const char *__restrict, size_t)); -char *_EXFUN(strpbrk,(const char *, const char *)); -char *_EXFUN(strrchr,(const char *, int)); -size_t _EXFUN(strspn,(const char *, const char *)); -char *_EXFUN(strstr,(const char *, const char *)); +void * memchr (const void *, int, size_t); +int memcmp (const void *, const void *, size_t); +void * memcpy (void *__restrict, const void *__restrict, size_t); +void * memmove (void *, const void *, size_t); +void * memset (void *, int, size_t); +char *strcat (char *__restrict, const char *__restrict); +char *strchr (const char *, int); +int strcmp (const char *, const char *); +int strcoll (const char *, const char *); +char *strcpy (char *__restrict, const char *__restrict); +size_t strcspn (const char *, const char *); +char *strerror (int); +size_t strlen (const char *); +char *strncat (char *__restrict, const char *__restrict, size_t); +int strncmp (const char *, const char *, size_t); +char *strncpy (char *__restrict, const char *__restrict, size_t); +char *strpbrk (const char *, const char *); +char *strrchr (const char *, int); +size_t strspn (const char *, const char *); +char *strstr (const char *, const char *); #ifndef _REENT_ONLY -char *_EXFUN(strtok,(char *__restrict, const char *__restrict)); +char *strtok (char *__restrict, const char *__restrict); #endif -size_t _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t)); +size_t strxfrm (char *__restrict, const char *__restrict, size_t); #if __POSIX_VISIBLE >= 200809 int strcoll_l (const char *, const char *, locale_t); @@ -57,89 +57,89 @@ char *strerror_l (int, locale_t); size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE -char *_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict)); +char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); #endif #if __BSD_VISIBLE -int _EXFUN(timingsafe_bcmp,(const void *, const void *, size_t)); -int _EXFUN(timingsafe_memcmp,(const void *, const void *, size_t)); +int timingsafe_bcmp (const void *, const void *, size_t); +int timingsafe_memcmp (const void *, const void *, size_t); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE -_PTR _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t)); +void * memccpy (void *__restrict, const void *__restrict, int, size_t); #endif #if __GNU_VISIBLE -_PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t)); -_PTR _EXFUN(memrchr,(const _PTR, int, size_t)); -_PTR _EXFUN(rawmemchr,(const _PTR, int)); +void * mempcpy (void *, const void *, size_t); +void * memmem (const void *, size_t, const void *, size_t); +void * memrchr (const void *, int, size_t); +void * rawmemchr (const void *, int); #endif #if __POSIX_VISIBLE >= 200809 -char *_EXFUN(stpcpy,(char *__restrict, const char *__restrict)); -char *_EXFUN(stpncpy,(char *__restrict, const char *__restrict, size_t)); +char *stpcpy (char *__restrict, const char *__restrict); +char *stpncpy (char *__restrict, const char *__restrict, size_t); #endif #if __GNU_VISIBLE -char *_EXFUN(strcasestr,(const char *, const char *)); -char *_EXFUN(strchrnul,(const char *, int)); +char *strcasestr (const char *, const char *); +char *strchrnul (const char *, int); #endif #if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -char *_EXFUN(strdup,(const char *)); +char *strdup (const char *); #endif -char *_EXFUN(_strdup_r,(struct _reent *, const char *)); +char *_strdup_r (struct _reent *, const char *); #if __POSIX_VISIBLE >= 200809 -char *_EXFUN(strndup,(const char *, size_t)); +char *strndup (const char *, size_t); #endif -char *_EXFUN(_strndup_r,(struct _reent *, const char *, size_t)); +char *_strndup_r (struct _reent *, const char *, size_t); /* There are two common strerror_r variants. If you request _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX version. POSIX requires that #undef strerror_r will still let you invoke the underlying function, but that requires gcc support. */ #if __GNU_VISIBLE -char *_EXFUN(strerror_r,(int, char *, size_t)); +char *strerror_r (int, char *, size_t); #elif __POSIX_VISIBLE >= 200112 # ifdef __GNUC__ -int _EXFUN(strerror_r,(int, char *, size_t)) +int strerror_r (int, char *, size_t) #ifdef __ASMNAME __asm__ (__ASMNAME ("__xpg_strerror_r")) #endif ; # else -int _EXFUN(__xpg_strerror_r,(int, char *, size_t)); +int __xpg_strerror_r (int, char *, size_t); # define strerror_r __xpg_strerror_r # endif #endif /* Reentrant version of strerror. */ -char * _EXFUN(_strerror_r, (struct _reent *, int, int, int *)); +char * _strerror_r (struct _reent *, int, int, int *); #if __BSD_VISIBLE -size_t _EXFUN(strlcat,(char *, const char *, size_t)); -size_t _EXFUN(strlcpy,(char *, const char *, size_t)); +size_t strlcat (char *, const char *, size_t); +size_t strlcpy (char *, const char *, size_t); #endif #if __POSIX_VISIBLE >= 200809 -size_t _EXFUN(strnlen,(const char *, size_t)); +size_t strnlen (const char *, size_t); #endif #if __BSD_VISIBLE -char *_EXFUN(strsep,(char **, const char *)); +char *strsep (char **, const char *); #endif #if __BSD_VISIBLE char *strnstr(const char *, const char *, size_t) __pure; #endif #if __MISC_VISIBLE -char *_EXFUN(strlwr,(char *)); -char *_EXFUN(strupr,(char *)); +char *strlwr (char *); +char *strupr (char *); #endif #ifndef DEFS_H /* Kludge to work around problem compiling in gdb */ -char *_EXFUN(strsignal, (int __signo)); +char *strsignal (int __signo); #endif #ifdef __CYGWIN__ -int _EXFUN(strtosigno, (const char *__name)); +int strtosigno (const char *__name); #endif #if __GNU_VISIBLE -int _EXFUN(strverscmp,(const char *, const char *)); +int strverscmp (const char *, const char *); #endif #if __GNU_VISIBLE && defined(__GNUC__) @@ -169,7 +169,7 @@ int _EXFUN(strverscmp,(const char *, const char *)); sure here. */ #if __GNU_VISIBLE && !defined(basename) # define basename basename -char *_EXFUN(__nonnull ((1)) basename,(const char *)) __asm__(__ASMNAME("__gnu_basename")); +char *__nonnull ((1)) basename (const char *) __asm__(__ASMNAME("__gnu_basename")); #endif #include diff --git a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h index 006e4ef..33b4622 100644 --- a/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h +++ b/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h @@ -199,27 +199,27 @@ struct eflock { #include #include /* sigh. for the mode bits for open/creat */ -extern int open _PARAMS ((const char *, int, ...)); +extern int open (const char *, int, ...); #if __ATFILE_VISIBLE -extern int openat _PARAMS ((int, const char *, int, ...)); +extern int openat (int, const char *, int, ...); #endif -extern int creat _PARAMS ((const char *, mode_t)); -extern int fcntl _PARAMS ((int, int, ...)); +extern int creat (const char *, mode_t); +extern int fcntl (int, int, ...); #if __BSD_VISIBLE -extern int flock _PARAMS ((int, int)); +extern int flock (int, int); #endif #if __GNU_VISIBLE #include -extern int futimesat _PARAMS ((int, const char *, const struct timeval *)); +extern int futimesat (int, const char *, const struct timeval *); #endif /* Provide _ prototypes for functions provided by some versions of newlib. */ #ifdef _COMPILING_NEWLIB -extern int _open _PARAMS ((const char *, int, ...)); -extern int _fcntl _PARAMS ((int, int, ...)); +extern int _open (const char *, int, ...); +extern int _fcntl (int, int, ...); #ifdef __LARGE64_FILES -extern int _open64 _PARAMS ((const char *, int, ...)); +extern int _open64 (const char *, int, ...); #endif #endif diff --git a/libc/xtensa-lx106-elf/include/sys/cdefs.h b/libc/xtensa-lx106-elf/include/sys/cdefs.h index db5f2bf..fc564a5 100644 --- a/libc/xtensa-lx106-elf/include/sys/cdefs.h +++ b/libc/xtensa-lx106-elf/include/sys/cdefs.h @@ -385,7 +385,7 @@ #endif #if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800) -#define __always_inline __attribute__((__always_inline__)) +#define __always_inline __inline__ __attribute__((__always_inline__)) #else #define __always_inline #endif diff --git a/libc/xtensa-lx106-elf/include/sys/errno.h b/libc/xtensa-lx106-elf/include/sys/errno.h index a72c373..025b461 100644 --- a/libc/xtensa-lx106-elf/include/sys/errno.h +++ b/libc/xtensa-lx106-elf/include/sys/errno.h @@ -12,12 +12,12 @@ extern "C" { #ifndef _REENT_ONLY #define errno (*__errno()) -extern int *__errno _PARAMS ((void)); +extern int *__errno (void); #endif /* Please don't use these variables directly. Use strerror instead. */ -extern __IMPORT _CONST char * _CONST _sys_errlist[]; +extern __IMPORT const char * const _sys_errlist[]; extern __IMPORT int _sys_nerr; #ifdef __CYGWIN__ extern __IMPORT const char * const sys_errlist[]; diff --git a/libc/xtensa-lx106-elf/include/sys/iconvnls.h b/libc/xtensa-lx106-elf/include/sys/iconvnls.h index 09ea183..d4ee0b7 100644 --- a/libc/xtensa-lx106-elf/include/sys/iconvnls.h +++ b/libc/xtensa-lx106-elf/include/sys/iconvnls.h @@ -44,34 +44,34 @@ #define ICONV_NLS_FROM 0 #define ICONV_NLS_TO 1 -_VOID -_EXFUN(_iconv_nls_get_state, (iconv_t cd, mbstate_t *ps, int direction)); +void +_iconv_nls_get_state (iconv_t cd, mbstate_t *ps, int direction); int -_EXFUN(_iconv_nls_set_state, (iconv_t cd, mbstate_t *ps, int direction)); +_iconv_nls_set_state (iconv_t cd, mbstate_t *ps, int direction); int -_EXFUN(_iconv_nls_is_stateful, (iconv_t cd, int direction)); +_iconv_nls_is_stateful (iconv_t cd, int direction); int -_EXFUN(_iconv_nls_get_mb_cur_max, (iconv_t cd, int direction)); +_iconv_nls_get_mb_cur_max (iconv_t cd, int direction); size_t -_EXFUN(_iconv_nls_conv, (struct _reent *rptr, iconv_t cd, - _CONST char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft)); +_iconv_nls_conv (struct _reent *rptr, iconv_t cd, + const char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft); -_CONST char * -_EXFUN(_iconv_nls_construct_filename, (struct _reent *rptr, _CONST char *file, - _CONST char *dir, _CONST char *ext)); +const char * +_iconv_nls_construct_filename (struct _reent *rptr, const char *file, + const char *dir, const char *ext); int -_EXFUN(_iconv_nls_open, (struct _reent *rptr, _CONST char *encoding, - iconv_t *towc, iconv_t *fromwc, int flag)); +_iconv_nls_open (struct _reent *rptr, const char *encoding, + iconv_t *towc, iconv_t *fromwc, int flag); char * -_EXFUN(_iconv_resolve_encoding_name, (struct _reent *rptr, _CONST char *ca)); +_iconv_resolve_encoding_name (struct _reent *rptr, const char *ca); #endif /* __SYS_ICONVNLS_H__ */ diff --git a/libc/xtensa-lx106-elf/include/sys/reent.h b/libc/xtensa-lx106-elf/include/sys/reent.h index c045ca5..1ef2261 100644 --- a/libc/xtensa-lx106-elf/include/sys/reent.h +++ b/libc/xtensa-lx106-elf/include/sys/reent.h @@ -165,7 +165,7 @@ struct __sFILE_fake { /* Following is needed both in libc/stdio and libc/stdlib so we put it * here instead of libc/stdio/local.h where it was previously. */ -extern _VOID _EXFUN(__sinit,(struct _reent *)); +extern void __sinit (struct _reent *); # define _REENT_SMALL_CHECK_INIT(ptr) \ do \ @@ -192,15 +192,15 @@ struct __sFILE { #endif /* operations */ - _PTR _cookie; /* cookie passed to io functions */ + void * _cookie; /* cookie passed to io functions */ - _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR, - char *, _READ_WRITE_BUFSIZE_TYPE)); - _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR, + _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, + char *, _READ_WRITE_BUFSIZE_TYPE); + _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, const char *, - _READ_WRITE_BUFSIZE_TYPE)); - _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int)); - int _EXFNPTR(_close, (struct _reent *, _PTR)); + _READ_WRITE_BUFSIZE_TYPE); + _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); + int (*_close) (struct _reent *, void *); /* separate buffer for long sequences of ungetc() */ struct __sbuf _ub; /* ungetc buffer */ @@ -248,15 +248,15 @@ struct __sFILE64 { struct _reent *_data; /* operations */ - _PTR _cookie; /* cookie passed to io functions */ + void * _cookie; /* cookie passed to io functions */ - _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR, - char *, _READ_WRITE_BUFSIZE_TYPE)); - _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR, + _READ_WRITE_RETURN_TYPE (*_read) (struct _reent *, void *, + char *, _READ_WRITE_BUFSIZE_TYPE); + _READ_WRITE_RETURN_TYPE (*_write) (struct _reent *, void *, const char *, - _READ_WRITE_BUFSIZE_TYPE)); - _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int)); - int _EXFNPTR(_close, (struct _reent *, _PTR)); + _READ_WRITE_BUFSIZE_TYPE); + _fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int); + int (*_close) (struct _reent *, void *); /* separate buffer for long sequences of ungetc() */ struct __sbuf _ub; /* ungetc buffer */ @@ -275,7 +275,7 @@ struct __sFILE64 { int _flags2; /* for future use */ _off64_t _offset; /* current lseek offset */ - _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int)); + _fpos64_t (*_seek64) (struct _reent *, void *, _fpos64_t, int); #ifndef __SINGLE_THREAD__ _flock_t _lock; /* for thread-safety locking */ @@ -391,7 +391,7 @@ struct _reent struct _mprec *_mp; - void _EXFNPTR(__cleanup, (struct _reent *)); + void (*__cleanup) (struct _reent *); int _gamma_signgam; @@ -584,7 +584,7 @@ struct _reent int __sdidinit; /* 1 means stdio has been init'd */ - void _EXFNPTR(__cleanup, (struct _reent *)); + void (*__cleanup) (struct _reent *); /* used by mprec routines */ struct _Bigint *_result; @@ -773,15 +773,15 @@ extern __FILE __sf[3]; #endif extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; -extern struct _reent *_CONST _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__; +extern struct _reent *const _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__; -void _reclaim_reent _PARAMS ((struct _reent *)); +void _reclaim_reent (struct _reent *); /* #define _REENT_ONLY define this to get only reentrant routines */ #if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__) #ifndef __getreent - struct _reent * _EXFUN(__getreent, (void)); + struct _reent * __getreent (void); #endif # define _REENT (__getreent()) #else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ diff --git a/libc/xtensa-lx106-elf/include/sys/resource.h b/libc/xtensa-lx106-elf/include/sys/resource.h index c35ac2a..b99506b 100644 --- a/libc/xtensa-lx106-elf/include/sys/resource.h +++ b/libc/xtensa-lx106-elf/include/sys/resource.h @@ -11,7 +11,7 @@ struct rusage { struct timeval ru_stime; /* system time used */ }; -int _EXFUN(getrusage, (int, struct rusage*)); +int getrusage (int, struct rusage*); #endif diff --git a/libc/xtensa-lx106-elf/include/sys/select.h b/libc/xtensa-lx106-elf/include/sys/select.h index f5dc586..1e5d895 100644 --- a/libc/xtensa-lx106-elf/include/sys/select.h +++ b/libc/xtensa-lx106-elf/include/sys/select.h @@ -1,14 +1,3 @@ -/* select.h - Copyright 1998, 1999, 2000, 2001, 2005, 2009 Red Hat, Inc. - - Written by Geoffrey Noer - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - #ifndef _SYS_SELECT_H #define _SYS_SELECT_H diff --git a/libc/xtensa-lx106-elf/include/sys/signal.h b/libc/xtensa-lx106-elf/include/sys/signal.h index ab35718..7d0c594 100644 --- a/libc/xtensa-lx106-elf/include/sys/signal.h +++ b/libc/xtensa-lx106-elf/include/sys/signal.h @@ -161,36 +161,34 @@ typedef struct sigaltstack { #define SIG_BLOCK 1 /* set of signals to block */ #define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ -int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset)); +int sigprocmask (int how, const sigset_t *set, sigset_t *oset); #endif #if __POSIX_VISIBLE >= 199506 -int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset)); +int pthread_sigmask (int how, const sigset_t *set, sigset_t *oset); #endif -#if defined(__CYGWIN__) || defined(__rtems__) #ifdef _COMPILING_NEWLIB -int _EXFUN(_kill, (pid_t, int)); +int _kill (pid_t, int); #endif /* _COMPILING_NEWLIB */ -#endif /* __CYGWIN__ || __rtems__ */ #if __POSIX_VISIBLE -int _EXFUN(kill, (pid_t, int)); +int kill (pid_t, int); #endif #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -int _EXFUN(killpg, (pid_t, int)); +int killpg (pid_t, int); #endif #if __POSIX_VISIBLE -int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *)); -int _EXFUN(sigaddset, (sigset_t *, const int)); -int _EXFUN(sigdelset, (sigset_t *, const int)); -int _EXFUN(sigismember, (const sigset_t *, int)); -int _EXFUN(sigfillset, (sigset_t *)); -int _EXFUN(sigemptyset, (sigset_t *)); -int _EXFUN(sigpending, (sigset_t *)); -int _EXFUN(sigsuspend, (const sigset_t *)); -int _EXFUN(sigwait, (const sigset_t *set, int *sig)); +int sigaction (int, const struct sigaction *, struct sigaction *); +int sigaddset (sigset_t *, const int); +int sigdelset (sigset_t *, const int); +int sigismember (const sigset_t *, int); +int sigfillset (sigset_t *); +int sigemptyset (sigset_t *); +int sigpending (sigset_t *); +int sigsuspend (const sigset_t *); +int sigwait (const sigset_t *set, int *sig); #if !defined(__CYGWIN__) && !defined(__rtems__) /* These depend upon the type of sigset_t, which right now @@ -211,21 +209,21 @@ int _EXFUN(sigwait, (const sigset_t *set, int *sig)); value. */ #if __XSI_VISIBLE && !defined(__INSIDE_CYGWIN__) # ifdef __GNUC__ -int _EXFUN(sigpause, (int)) __asm__ (__ASMNAME ("__xpg_sigpause")); +int sigpause (int) __asm__ (__ASMNAME ("__xpg_sigpause")); # else -int _EXFUN(__xpg_sigpause, (int)); +int __xpg_sigpause (int); # define sigpause __xpg_sigpause # endif #elif __BSD_VISIBLE -int _EXFUN(sigpause, (int)); +int sigpause (int); #endif #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict)); +int sigaltstack (const stack_t *__restrict, stack_t *__restrict); #endif #if __POSIX_VISIBLE >= 199506 -int _EXFUN(pthread_kill, (pthread_t thread, int sig)); +int pthread_kill (pthread_t thread, int sig); #endif #if __POSIX_VISIBLE >= 199309 @@ -233,12 +231,11 @@ int _EXFUN(pthread_kill, (pthread_t thread, int sig)); /* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ -int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info)); -int _EXFUN(sigtimedwait, - (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) -); +int sigwaitinfo (const sigset_t *set, siginfo_t *info); +int sigtimedwait (const sigset_t *set, siginfo_t *info, + const struct timespec *timeout); /* 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ -int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); +int sigqueue (pid_t pid, int signo, const union sigval value); #endif /* __POSIX_VISIBLE >= 199309 */ diff --git a/libc/xtensa-lx106-elf/include/sys/stat.h b/libc/xtensa-lx106-elf/include/sys/stat.h index 94a90c0..eee98db 100644 --- a/libc/xtensa-lx106-elf/include/sys/stat.h +++ b/libc/xtensa-lx106-elf/include/sys/stat.h @@ -144,41 +144,41 @@ struct stat #define UTIME_OMIT -1L #endif -int _EXFUN(chmod,( const char *__path, mode_t __mode )); -int _EXFUN(fchmod,(int __fd, mode_t __mode)); -int _EXFUN(fstat,( int __fd, struct stat *__sbuf )); -int _EXFUN(mkdir,( const char *_path, mode_t __mode )); -int _EXFUN(mkfifo,( const char *__path, mode_t __mode )); -int _EXFUN(stat,( const char *__restrict __path, struct stat *__restrict __sbuf )); -mode_t _EXFUN(umask,( mode_t __mask )); +int chmod (const char *__path, mode_t __mode ); +int fchmod (int __fd, mode_t __mode); +int fstat (int __fd, struct stat *__sbuf ); +int mkdir (const char *_path, mode_t __mode ); +int mkfifo (const char *__path, mode_t __mode ); +int stat (const char *__restrict __path, struct stat *__restrict __sbuf ); +mode_t umask (mode_t __mask ); #if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf )); -int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev )); +int lstat (const char *__restrict __path, struct stat *__restrict __buf ); +int mknod (const char *__path, mode_t __mode, dev_t __dev ); #endif #if __ATFILE_VISIBLE && !defined(__INSIDE_CYGWIN__) -int _EXFUN(fchmodat, (int, const char *, mode_t, int)); -int _EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int)); -int _EXFUN(mkdirat, (int, const char *, mode_t)); -int _EXFUN(mkfifoat, (int, const char *, mode_t)); -int _EXFUN(mknodat, (int, const char *, mode_t, dev_t)); -int _EXFUN(utimensat, (int, const char *, const struct timespec *, int)); +int fchmodat (int, const char *, mode_t, int); +int fstatat (int, const char *__restrict , struct stat *__restrict, int); +int mkdirat (int, const char *, mode_t); +int mkfifoat (int, const char *, mode_t); +int mknodat (int, const char *, mode_t, dev_t); +int utimensat (int, const char *, const struct timespec *, int); #endif #if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__) -int _EXFUN(futimens, (int, const struct timespec *)); +int futimens (int, const struct timespec *); #endif /* Provide prototypes for most of the _ names that are provided in newlib for some compilers. */ #ifdef _COMPILING_NEWLIB -int _EXFUN(_fstat,( int __fd, struct stat *__sbuf )); -int _EXFUN(_stat,( const char *__restrict __path, struct stat *__restrict __sbuf )); -int _EXFUN(_mkdir,( const char *_path, mode_t __mode )); +int _fstat (int __fd, struct stat *__sbuf ); +int _stat (const char *__restrict __path, struct stat *__restrict __sbuf ); +int _mkdir (const char *_path, mode_t __mode ); #ifdef __LARGE64_FILES struct stat64; -int _EXFUN(_stat64,( const char *__restrict __path, struct stat64 *__restrict __sbuf )); -int _EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf )); +int _stat64 (const char *__restrict __path, struct stat64 *__restrict __sbuf ); +int _fstat64 (int __fd, struct stat64 *__sbuf ); #endif #endif diff --git a/libc/xtensa-lx106-elf/include/sys/stdio.h b/libc/xtensa-lx106-elf/include/sys/stdio.h index 0918fe1..91a2745 100644 --- a/libc/xtensa-lx106-elf/include/sys/stdio.h +++ b/libc/xtensa-lx106-elf/include/sys/stdio.h @@ -12,7 +12,7 @@ #ifndef __SINGLE_THREAD__ # define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock)) #else -# define _flockfile(fp) (_CAST_VOID 0) +# define _flockfile(fp) ((void) 0) #endif #endif @@ -20,7 +20,7 @@ #ifndef __SINGLE_THREAD__ # define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock)) #else -# define _funlockfile(fp) (_CAST_VOID 0) +# define _funlockfile(fp) ((void) 0) #endif #endif diff --git a/libc/xtensa-lx106-elf/include/sys/time.h b/libc/xtensa-lx106-elf/include/sys/time.h index 5fdb667..ce2e667 100644 --- a/libc/xtensa-lx106-elf/include/sys/time.h +++ b/libc/xtensa-lx106-elf/include/sys/time.h @@ -268,30 +268,30 @@ struct itimerval { #include __BEGIN_DECLS -int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp)); +int utimes (const char *__path, const struct timeval *__tvp); #if __BSD_VISIBLE -int _EXFUN(adjtime, (const struct timeval *, struct timeval *)); -int _EXFUN(futimes, (int, const struct timeval *)); -int _EXFUN(lutimes, (const char *, const struct timeval *)); -int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); +int adjtime (const struct timeval *, struct timeval *); +int futimes (int, const struct timeval *); +int lutimes (const char *, const struct timeval *); +int settimeofday (const struct timeval *, const struct timezone *); #endif #if __MISC_VISIBLE || __XSI_VISIBLE -int _EXFUN(getitimer, (int __which, struct itimerval *__value)); -int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value, - struct itimerval *__restrict __ovalue)); +int getitimer (int __which, struct itimerval *__value); +int setitimer (int __which, const struct itimerval *__restrict __value, + struct itimerval *__restrict __ovalue); #endif -int _EXFUN(gettimeofday, (struct timeval *__restrict __p, - void *__restrict __tz)); +int gettimeofday (struct timeval *__restrict __p, + void *__restrict __tz); #if __GNU_VISIBLE -int _EXFUN(futimesat, (int, const char *, const struct timeval [2])); +int futimesat (int, const char *, const struct timeval [2]); #endif #ifdef _COMPILING_NEWLIB -int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz)); +int _gettimeofday (struct timeval *__p, void *__tz); #endif __END_DECLS diff --git a/libc/xtensa-lx106-elf/include/sys/timeb.h b/libc/xtensa-lx106-elf/include/sys/timeb.h index 793b481..ccf6649 100644 --- a/libc/xtensa-lx106-elf/include/sys/timeb.h +++ b/libc/xtensa-lx106-elf/include/sys/timeb.h @@ -31,7 +31,7 @@ struct timeb short dstflag; }; -extern int ftime _PARAMS ((struct timeb *)); +extern int ftime (struct timeb *); #ifdef __cplusplus } diff --git a/libc/xtensa-lx106-elf/include/sys/times.h b/libc/xtensa-lx106-elf/include/sys/times.h index b1f1dc6..05b2547 100644 --- a/libc/xtensa-lx106-elf/include/sys/times.h +++ b/libc/xtensa-lx106-elf/include/sys/times.h @@ -21,9 +21,9 @@ struct tms { clock_t tms_cstime; /* system time, children */ }; -clock_t _EXFUN(times,(struct tms *)); +clock_t times (struct tms *); #ifdef _COMPILING_NEWLIB -clock_t _EXFUN(_times,(struct tms *)); +clock_t _times (struct tms *); #endif #ifdef __cplusplus diff --git a/libc/xtensa-lx106-elf/include/sys/unistd.h b/libc/xtensa-lx106-elf/include/sys/unistd.h index 0596221..5386bd4 100644 --- a/libc/xtensa-lx106-elf/include/sys/unistd.h +++ b/libc/xtensa-lx106-elf/include/sys/unistd.h @@ -15,234 +15,234 @@ extern "C" { extern char **environ; -void _EXFUN(_exit, (int __status ) _ATTRIBUTE ((__noreturn__))); +void _exit (int __status) _ATTRIBUTE ((__noreturn__)); -int _EXFUN(access,(const char *__path, int __amode )); -unsigned _EXFUN(alarm, (unsigned __secs )); -int _EXFUN(chdir, (const char *__path )); -int _EXFUN(chmod, (const char *__path, mode_t __mode )); +int access (const char *__path, int __amode); +unsigned alarm (unsigned __secs); +int chdir (const char *__path); +int chmod (const char *__path, mode_t __mode); #if !defined(__INSIDE_CYGWIN__) -int _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group )); +int chown (const char *__path, uid_t __owner, gid_t __group); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -int _EXFUN(chroot, (const char *__path )); +int chroot (const char *__path); #endif -int _EXFUN(close, (int __fildes )); +int close (int __fildes); #if __POSIX_VISIBLE >= 199209 -size_t _EXFUN(confstr, (int __name, char *__buf, size_t __len)); +size_t confstr (int __name, char *__buf, size_t __len); #endif #if __XSI_VISIBLE -char * _EXFUN(crypt, (const char *__key, const char *__salt)); +char * crypt (const char *__key, const char *__salt); #endif #if __XSI_VISIBLE && __XSI_VISIBLE < 700 -char * _EXFUN(ctermid, (char *__s )); +char * ctermid (char *__s); #endif #if __XSI_VISIBLE && __XSI_VISIBLE < 600 -char * _EXFUN(cuserid, (char *__s )); +char * cuserid (char *__s); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int _EXFUN(daemon, (int nochdir, int noclose)); +int daemon (int nochdir, int noclose); #endif -int _EXFUN(dup, (int __fildes )); -int _EXFUN(dup2, (int __fildes, int __fildes2 )); +int dup (int __fildes); +int dup2 (int __fildes, int __fildes2); #if __GNU_VISIBLE -int _EXFUN(dup3, (int __fildes, int __fildes2, int flags)); -int _EXFUN(eaccess, (const char *__path, int __mode)); +int dup3 (int __fildes, int __fildes2, int flags); +int eaccess (const char *__path, int __mode); #endif #if __XSI_VISIBLE -void _EXFUN(encrypt, (char *__block, int __edflag)); +void encrypt (char *__block, int __edflag); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void _EXFUN(endusershell, (void)); +void endusershell (void); #endif #if __GNU_VISIBLE -int _EXFUN(euidaccess, (const char *__path, int __mode)); +int euidaccess (const char *__path, int __mode); #endif -int _EXFUN(execl, (const char *__path, const char *, ... )); -int _EXFUN(execle, (const char *__path, const char *, ... )); -int _EXFUN(execlp, (const char *__file, const char *, ... )); +int execl (const char *__path, const char *, ...); +int execle (const char *__path, const char *, ...); +int execlp (const char *__file, const char *, ...); #if __MISC_VISIBLE -int _EXFUN(execlpe, (const char *__file, const char *, ... )); +int execlpe (const char *__file, const char *, ...); #endif -int _EXFUN(execv, (const char *__path, char * const __argv[] )); -int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] )); -int _EXFUN(execvp, (const char *__file, char * const __argv[] )); +int execv (const char *__path, char * const __argv[]); +int execve (const char *__path, char * const __argv[], char * const __envp[]); +int execvp (const char *__file, char * const __argv[]); #if __GNU_VISIBLE -int _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] )); +int execvpe (const char *__file, char * const __argv[], char * const __envp[]); #endif #if __ATFILE_VISIBLE -int _EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags)); +int faccessat (int __dirfd, const char *__path, int __mode, int __flags); #endif #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int _EXFUN(fchdir, (int __fildes)); +int fchdir (int __fildes); #endif #if __POSIX_VISIBLE >= 199309 -int _EXFUN(fchmod, (int __fildes, mode_t __mode )); +int fchmod (int __fildes, mode_t __mode); #endif #if !defined(__INSIDE_CYGWIN__) #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group )); +int fchown (int __fildes, uid_t __owner, gid_t __group); #endif #endif #if __ATFILE_VISIBLE -int _EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags)); +int fchownat (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags); #endif #if __POSIX_VISIBLE >= 200809 -int _EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] )); +int fexecve (int __fd, char * const __argv[], char * const __envp[]); #endif -pid_t _EXFUN(fork, (void )); -long _EXFUN(fpathconf, (int __fd, int __name )); -int _EXFUN(fsync, (int __fd)); +pid_t fork (void); +long fpathconf (int __fd, int __name); +int fsync (int __fd); #if __POSIX_VISIBLE >= 199309 -int _EXFUN(fdatasync, (int __fd)); +int fdatasync (int __fd); #endif #if __GNU_VISIBLE -char * _EXFUN(get_current_dir_name, (void)); +char * get_current_dir_name (void); #endif -char * _EXFUN(getcwd, (char *__buf, size_t __size )); +char * getcwd (char *__buf, size_t __size); #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int _EXFUN(getdomainname ,(char *__name, size_t __len)); +int getdomainname (char *__name, size_t __len); #endif #if __BSD_VISIBLE -int _EXFUN(getentropy, (void *, size_t)); +int getentropy (void *, size_t); #endif #if !defined(__INSIDE_CYGWIN__) -gid_t _EXFUN(getegid, (void )); -uid_t _EXFUN(geteuid, (void )); -gid_t _EXFUN(getgid, (void )); +gid_t getegid (void); +uid_t geteuid (void); +gid_t getgid (void); #endif -int _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] )); +int getgroups (int __gidsetsize, gid_t __grouplist[]); #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 -long _EXFUN(gethostid, (void)); +long gethostid (void); #endif -char * _EXFUN(getlogin, (void )); +char * getlogin (void); #if defined(_POSIX_THREAD_SAFE_FUNCTIONS) -int _EXFUN(getlogin_r, (char *name, size_t namesize) ); +int getlogin_r (char *name, size_t namesize) ; #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112) -char * _EXFUN(getpass, (const char *__prompt)); -int _EXFUN(getpagesize, (void)); +char * getpass (const char *__prompt); +int getpagesize (void); #endif #if __BSD_VISIBLE -int _EXFUN(getpeereid, (int, uid_t *, gid_t *)); +int getpeereid (int, uid_t *, gid_t *); #endif #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t _EXFUN(getpgid, (pid_t)); +pid_t getpgid (pid_t); #endif -pid_t _EXFUN(getpgrp, (void )); -pid_t _EXFUN(getpid, (void )); -pid_t _EXFUN(getppid, (void )); +pid_t getpgrp (void); +pid_t getpid (void); +pid_t getppid (void); #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4 -pid_t _EXFUN(getsid, (pid_t)); +pid_t getsid (pid_t); #endif #if !defined(__INSIDE_CYGWIN__) -uid_t _EXFUN(getuid, (void )); +uid_t getuid (void); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -char * _EXFUN(getusershell, (void)); +char * getusershell (void); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -char * _EXFUN(getwd, (char *__buf )); +char * getwd (char *__buf); #endif #if __BSD_VISIBLE -int _EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser)); +int iruserok (unsigned long raddr, int superuser, const char *ruser, const char *luser); #endif -int _EXFUN(isatty, (int __fildes )); +int isatty (int __fildes); #if __BSD_VISIBLE -int _EXFUN(issetugid, (void)); +int issetugid (void); #endif #if !defined(__INSIDE_CYGWIN__) #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 -int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group )); +int lchown (const char *__path, uid_t __owner, gid_t __group); #endif #endif -int _EXFUN(link, (const char *__path1, const char *__path2 )); +int link (const char *__path1, const char *__path2); #if __ATFILE_VISIBLE -int _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags )); +int linkat (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags); #endif #if __MISC_VISIBLE || __XSI_VISIBLE -int _EXFUN(nice, (int __nice_value )); +int nice (int __nice_value); #endif #if !defined(__INSIDE_CYGWIN__) -off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); +off_t lseek (int __fildes, off_t __offset, int __whence); #endif #if __MISC_VISIBLE || __XSI_VISIBLE >= 4 #define F_ULOCK 0 #define F_LOCK 1 #define F_TLOCK 2 #define F_TEST 3 -int _EXFUN(lockf, (int __fd, int __cmd, off_t __len)); +int lockf (int __fd, int __cmd, off_t __len); #endif -long _EXFUN(pathconf, (const char *__path, int __name )); -int _EXFUN(pause, (void )); +long pathconf (const char *__path, int __name); +int pause (void); #if __POSIX_VISIBLE >= 199506 -int _EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void))); +int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); #endif -int _EXFUN(pipe, (int __fildes[2] )); +int pipe (int __fildes[2]); #if __GNU_VISIBLE -int _EXFUN(pipe2, (int __fildes[2], int flags)); +int pipe2 (int __fildes[2], int flags); #endif #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset)); -ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset)); +ssize_t pread (int __fd, void *__buf, size_t __nbytes, off_t __offset); +ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, off_t __offset); #endif -_READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte )); +_READ_WRITE_RETURN_TYPE read (int __fd, void *__buf, size_t __nbyte); #if __BSD_VISIBLE -int _EXFUN(rresvport, (int *__alport)); -int _EXFUN(revoke, (char *__path)); +int rresvport (int *__alport); +int revoke (char *__path); #endif -int _EXFUN(rmdir, (const char *__path )); +int rmdir (const char *__path); #if __BSD_VISIBLE -int _EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser)); +int ruserok (const char *rhost, int superuser, const char *ruser, const char *luser); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112) -void * _EXFUN(sbrk, (ptrdiff_t __incr)); +void * sbrk (ptrdiff_t __incr); #endif #if !defined(__INSIDE_CYGWIN__) #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 -int _EXFUN(setegid, (gid_t __gid )); -int _EXFUN(seteuid, (uid_t __uid )); +int setegid (gid_t __gid); +int seteuid (uid_t __uid); #endif -int _EXFUN(setgid, (gid_t __gid )); +int setgid (gid_t __gid); #endif #if __BSD_VISIBLE -int _EXFUN(setgroups, (int ngroups, const gid_t *grouplist )); +int setgroups (int ngroups, const gid_t *grouplist); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -int _EXFUN(sethostname, (const char *, size_t)); +int sethostname (const char *, size_t); #endif -int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid )); +int setpgid (pid_t __pid, pid_t __pgid); #if __SVID_VISIBLE || __XSI_VISIBLE >= 500 -int _EXFUN(setpgrp, (void )); +int setpgrp (void); #endif #if (__BSD_VISIBLE || __XSI_VISIBLE >= 4) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(setregid, (gid_t __rgid, gid_t __egid)); -int _EXFUN(setreuid, (uid_t __ruid, uid_t __euid)); +int setregid (gid_t __rgid, gid_t __egid); +int setreuid (uid_t __ruid, uid_t __euid); #endif -pid_t _EXFUN(setsid, (void )); +pid_t setsid (void); #if !defined(__INSIDE_CYGWIN__) -int _EXFUN(setuid, (uid_t __uid )); +int setuid (uid_t __uid); #endif #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) -void _EXFUN(setusershell, (void)); +void setusershell (void); #endif -unsigned _EXFUN(sleep, (unsigned int __seconds )); +unsigned sleep (unsigned int __seconds); #if __XSI_VISIBLE -void _EXFUN(swab, (const void *__restrict, void *__restrict, ssize_t)); +void swab (const void *__restrict, void *__restrict, ssize_t); #endif -long _EXFUN(sysconf, (int __name )); -pid_t _EXFUN(tcgetpgrp, (int __fildes )); -int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id )); -char * _EXFUN(ttyname, (int __fildes )); -int _EXFUN(ttyname_r, (int, char *, size_t)); -int _EXFUN(unlink, (const char *__path )); +long sysconf (int __name); +pid_t tcgetpgrp (int __fildes); +int tcsetpgrp (int __fildes, pid_t __pgrp_id); +char * ttyname (int __fildes); +int ttyname_r (int, char *, size_t); +int unlink (const char *__path); #if __XSI_VISIBLE >= 500 && __POSIX_VISIBLE < 200809 || __BSD_VISIBLE -int _EXFUN(usleep, (useconds_t __useconds)); +int usleep (useconds_t __useconds); #endif #if __BSD_VISIBLE -int _EXFUN(vhangup, (void )); +int vhangup (void); #endif -_READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte )); +_READ_WRITE_RETURN_TYPE write (int __fd, const void *__buf, size_t __nbyte); #ifdef __CYGWIN__ # define __UNISTD_GETOPT__ @@ -256,69 +256,69 @@ extern int optreset; /* getopt(3) external variable */ #endif #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809) -pid_t _EXFUN(vfork, (void )); +pid_t vfork (void); #endif #ifdef _COMPILING_NEWLIB /* Provide prototypes for most of the _ names that are provided in newlib for some compilers. */ -int _EXFUN(_close, (int __fildes )); -pid_t _EXFUN(_fork, (void )); -pid_t _EXFUN(_getpid, (void )); -int _EXFUN(_isatty, (int __fildes )); -int _EXFUN(_link, (const char *__path1, const char *__path2 )); -_off_t _EXFUN(_lseek, (int __fildes, _off_t __offset, int __whence )); +int _close (int __fildes); +pid_t _fork (void); +pid_t _getpid (void); +int _isatty (int __fildes); +int _link (const char *__path1, const char *__path2); +_off_t _lseek (int __fildes, _off_t __offset, int __whence); #ifdef __LARGE64_FILES -_off64_t _EXFUN(_lseek64, (int __filedes, _off64_t __offset, int __whence )); +_off64_t _lseek64 (int __filedes, _off64_t __offset, int __whence); #endif -_READ_WRITE_RETURN_TYPE _EXFUN(_read, (int __fd, void *__buf, size_t __nbyte )); -void * _EXFUN(_sbrk, (ptrdiff_t __incr)); -int _EXFUN(_unlink, (const char *__path )); -_READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nbyte )); -int _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] )); +_READ_WRITE_RETURN_TYPE _read (int __fd, void *__buf, size_t __nbyte); +void * _sbrk (ptrdiff_t __incr); +int _unlink (const char *__path); +_READ_WRITE_RETURN_TYPE _write (int __fd, const void *__buf, size_t __nbyte); +int _execve (const char *__path, char * const __argv[], char * const __envp[]); #endif #if !defined(__INSIDE_CYGWIN__) #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -int _EXFUN(ftruncate, (int __fd, off_t __length)); +int ftruncate (int __fd, off_t __length); #endif #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -int _EXFUN(truncate, (const char *, off_t __length)); +int truncate (const char *, off_t __length); #endif #endif #if __BSD_VISIBLE || __POSIX_VISIBLE < 200112 -int _EXFUN(getdtablesize, (void)); +int getdtablesize (void); #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 -useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval)); +useconds_t ualarm (useconds_t __useconds, useconds_t __interval); #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 #if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) /* winsock[2].h defines as __stdcall, and with int as 2nd arg */ - int _EXFUN(gethostname, (char *__name, size_t __len)); + int gethostname (char *__name, size_t __len); #endif #endif #if __MISC_VISIBLE -int _EXFUN(setdtablesize, (int)); +int setdtablesize (int); #endif #if __BSD_VISIBLE || __XSI_VISIBLE >= 500 -void _EXFUN(sync, (void)); +void sync (void); #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4 -ssize_t _EXFUN(readlink, (const char *__restrict __path, - char *__restrict __buf, size_t __buflen)); -int _EXFUN(symlink, (const char *__name1, const char *__name2)); +ssize_t readlink (const char *__restrict __path, + char *__restrict __buf, size_t __buflen); +int symlink (const char *__name1, const char *__name2); #endif #if __ATFILE_VISIBLE -ssize_t _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path, - char *__restrict __buf, size_t __buflen)); -int _EXFUN(symlinkat, (const char *, int, const char *)); -int _EXFUN(unlinkat, (int, const char *, int)); +ssize_t readlinkat (int __dirfd1, const char *__restrict __path, + char *__restrict __buf, size_t __buflen); +int symlinkat (const char *, int, const char *); +int unlinkat (int, const char *, int); #endif #define F_OK 0 @@ -582,6 +582,10 @@ int _EXFUN(unlinkat, (int, const char *, int)); #define _CS_POSIX_V7_THREADS_LDFLAGS 19 #define _CS_V7_ENV 20 #define _CS_V6_ENV _CS_V7_ENV +#define _CS_LFS_CFLAGS 21 +#define _CS_LFS_LDFLAGS 22 +#define _CS_LFS_LIBS 23 +#define _CS_LFS_LINTFLAGS 24 #endif #ifdef __cplusplus diff --git a/libc/xtensa-lx106-elf/include/time.h b/libc/xtensa-lx106-elf/include/time.h index 8806b98..a2efcc1 100644 --- a/libc/xtensa-lx106-elf/include/time.h +++ b/libc/xtensa-lx106-elf/include/time.h @@ -53,19 +53,19 @@ struct tm #endif }; -clock_t _EXFUN(clock, (void)); -double _EXFUN(difftime, (time_t _time2, time_t _time1)); -time_t _EXFUN(mktime, (struct tm *_timeptr)); -time_t _EXFUN(time, (time_t *_timer)); +clock_t clock (void); +double difftime (time_t _time2, time_t _time1); +time_t mktime (struct tm *_timeptr); +time_t time (time_t *_timer); #ifndef _REENT_ONLY -char *_EXFUN(asctime, (const struct tm *_tblock)); -char *_EXFUN(ctime, (const time_t *_time)); -struct tm *_EXFUN(gmtime, (const time_t *_timer)); -struct tm *_EXFUN(localtime,(const time_t *_timer)); +char *asctime (const struct tm *_tblock); +char *ctime (const time_t *_time); +struct tm *gmtime (const time_t *_timer); +struct tm *localtime (const time_t *_timer); #endif -size_t _EXFUN(strftime, (char *__restrict _s, +size_t strftime (char *__restrict _s, size_t _maxsize, const char *__restrict _fmt, - const struct tm *__restrict _t)); + const struct tm *__restrict _t); #if __POSIX_VISIBLE >= 200809 extern size_t strftime_l (char *__restrict _s, size_t _maxsize, @@ -73,13 +73,13 @@ extern size_t strftime_l (char *__restrict _s, size_t _maxsize, const struct tm *__restrict _t, locale_t _l); #endif -char *_EXFUN(asctime_r, (const struct tm *__restrict, - char *__restrict)); -char *_EXFUN(ctime_r, (const time_t *, char *)); -struct tm *_EXFUN(gmtime_r, (const time_t *__restrict, - struct tm *__restrict)); -struct tm *_EXFUN(localtime_r, (const time_t *__restrict, - struct tm *__restrict)); +char *asctime_r (const struct tm *__restrict, + char *__restrict); +char *ctime_r (const time_t *, char *); +struct tm *gmtime_r (const time_t *__restrict, + struct tm *__restrict); +struct tm *localtime_r (const time_t *__restrict, + struct tm *__restrict); _END_STD_C @@ -88,9 +88,9 @@ extern "C" { #endif #if __XSI_VISIBLE -char *_EXFUN(strptime, (const char *__restrict, +char *strptime (const char *__restrict, const char *__restrict, - struct tm *__restrict)); + struct tm *__restrict); #endif #if __GNU_VISIBLE char *strptime_l (const char *__restrict, const char *__restrict, @@ -98,9 +98,9 @@ char *strptime_l (const char *__restrict, const char *__restrict, #endif #if __POSIX_VISIBLE -_VOID _EXFUN(tzset, (_VOID)); +void tzset (void); #endif -_VOID _EXFUN(_tzset_r, (struct _reent *)); +void _tzset_r (struct _reent *); typedef struct __tzrule_struct { @@ -120,7 +120,7 @@ typedef struct __tzinfo_struct __tzrule_type __tzrule[2]; } __tzinfo_type; -__tzinfo_type *_EXFUN (__gettzinfo, (_VOID)); +__tzinfo_type *__gettzinfo (void); /* getdate functions */ @@ -128,9 +128,9 @@ __tzinfo_type *_EXFUN (__gettzinfo, (_VOID)); #if __XSI_VISIBLE >= 4 #ifndef _REENT_ONLY #define getdate_err (*__getdate_err()) -int *_EXFUN(__getdate_err,(_VOID)); +int *__getdate_err (void); -struct tm * _EXFUN(getdate, (const char *)); +struct tm * getdate (const char *); /* getdate_err is set to one of the following values to indicate the error. 1 the DATEMSK environment variable is null or undefined, 2 the template file cannot be opened for reading, @@ -145,7 +145,7 @@ struct tm * _EXFUN(getdate, (const char *)); #if __GNU_VISIBLE /* getdate_r returns the error code as above */ -int _EXFUN(getdate_r, (const char *, struct tm *)); +int getdate_r (const char *, struct tm *); #endif /* __GNU_VISIBLE */ #endif /* HAVE_GETDATE */ @@ -183,33 +183,31 @@ extern "C" { /* Clocks, P1003.1b-1993, p. 263 */ -int _EXFUN(clock_settime, (clockid_t clock_id, const struct timespec *tp)); -int _EXFUN(clock_gettime, (clockid_t clock_id, struct timespec *tp)); -int _EXFUN(clock_getres, (clockid_t clock_id, struct timespec *res)); +int clock_settime (clockid_t clock_id, const struct timespec *tp); +int clock_gettime (clockid_t clock_id, struct timespec *tp); +int clock_getres (clockid_t clock_id, struct timespec *res); /* Create a Per-Process Timer, P1003.1b-1993, p. 264 */ -int _EXFUN(timer_create, - (clockid_t clock_id, +int timer_create (clockid_t clock_id, struct sigevent *__restrict evp, - timer_t *__restrict timerid)); + timer_t *__restrict timerid); /* Delete a Per_process Timer, P1003.1b-1993, p. 266 */ -int _EXFUN(timer_delete, (timer_t timerid)); +int timer_delete (timer_t timerid); /* Per-Process Timers, P1003.1b-1993, p. 267 */ -int _EXFUN(timer_settime, - (timer_t timerid, int flags, +int timer_settime (timer_t timerid, int flags, const struct itimerspec *__restrict value, - struct itimerspec *__restrict ovalue)); -int _EXFUN(timer_gettime, (timer_t timerid, struct itimerspec *value)); -int _EXFUN(timer_getoverrun, (timer_t timerid)); + struct itimerspec *__restrict ovalue); +int timer_gettime (timer_t timerid, struct itimerspec *value); +int timer_getoverrun (timer_t timerid); /* High Resolution Sleep, P1003.1b-1993, p. 269 */ -int _EXFUN(nanosleep, (const struct timespec *rqtp, struct timespec *rmtp)); +int nanosleep (const struct timespec *rqtp, struct timespec *rmtp); #ifdef __cplusplus } @@ -222,9 +220,8 @@ int _EXFUN(nanosleep, (const struct timespec *rqtp, struct timespec *rmtp)); extern "C" { #endif -int _EXFUN(clock_nanosleep, - (clockid_t clock_id, int flags, const struct timespec *rqtp, - struct timespec *rmtp)); +int clock_nanosleep (clockid_t clock_id, int flags, + const struct timespec *rqtp, struct timespec *rmtp); #ifdef __cplusplus } @@ -297,7 +294,7 @@ extern "C" { /* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ -int _EXFUN(clock_getcpuclockid, (pid_t pid, clockid_t *clock_id)); +int clock_getcpuclockid (pid_t pid, clockid_t *clock_id); #endif /* _POSIX_CPUTIME */ @@ -305,8 +302,8 @@ int _EXFUN(clock_getcpuclockid, (pid_t pid, clockid_t *clock_id)); /* CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 */ -int _EXFUN(clock_setenable_attr, (clockid_t clock_id, int attr)); -int _EXFUN(clock_getenable_attr, (clockid_t clock_id, int *attr)); +int clock_setenable_attr (clockid_t clock_id, int attr); +int clock_getenable_attr (clockid_t clock_id, int *attr); #endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */ diff --git a/libc/xtensa-lx106-elf/include/unctrl.h b/libc/xtensa-lx106-elf/include/unctrl.h index 0040752..010812f 100644 --- a/libc/xtensa-lx106-elf/include/unctrl.h +++ b/libc/xtensa-lx106-elf/include/unctrl.h @@ -40,7 +40,7 @@ #define unctrl(c) __unctrl[(c) & 0xff] #define unctrllen(ch) __unctrllen[(ch) & 0xff] -extern __IMPORT _CONST char * _CONST __unctrl[256]; /* Control strings. */ -extern __IMPORT _CONST char __unctrllen[256]; /* Control strings length. */ +extern __IMPORT const char * const __unctrl[256]; /* Control strings. */ +extern __IMPORT const char __unctrllen[256]; /* Control strings length. */ #endif /* _UNCTRL_H_ */ diff --git a/libc/xtensa-lx106-elf/include/wchar.h b/libc/xtensa-lx106-elf/include/wchar.h index 3d98363..accbb8c 100644 --- a/libc/xtensa-lx106-elf/include/wchar.h +++ b/libc/xtensa-lx106-elf/include/wchar.h @@ -86,93 +86,89 @@ struct tm; typedef _mbstate_t mbstate_t; #endif /* _MBSTATE_T */ -wint_t _EXFUN(btowc, (int)); -int _EXFUN(wctob, (wint_t)); -size_t _EXFUN(mbrlen, (const char *__restrict, size_t, mbstate_t *__restrict)); -size_t _EXFUN(mbrtowc, (wchar_t *__restrict, const char *__restrict, size_t, - mbstate_t *__restrict)); -size_t _EXFUN(_mbrtowc_r, (struct _reent *, wchar_t * , const char * , - size_t, mbstate_t *)); -int _EXFUN(mbsinit, (const mbstate_t *)); +wint_t btowc (int); +int wctob (wint_t); +size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); +size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, + mbstate_t *__restrict); +size_t _mbrtowc_r (struct _reent *, wchar_t * , const char * , + size_t, mbstate_t *); +int mbsinit (const mbstate_t *); #if __POSIX_VISIBLE >= 200809 -size_t _EXFUN(mbsnrtowcs, (wchar_t *__restrict, const char **__restrict, - size_t, size_t, mbstate_t *__restrict)); +size_t mbsnrtowcs (wchar_t *__restrict, const char **__restrict, + size_t, size_t, mbstate_t *__restrict); #endif -size_t _EXFUN(_mbsnrtowcs_r, (struct _reent *, wchar_t * , const char ** , - size_t, size_t, mbstate_t *)); -size_t _EXFUN(mbsrtowcs, (wchar_t *__restrict, const char **__restrict, size_t, - mbstate_t *__restrict)); -size_t _EXFUN(_mbsrtowcs_r, (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *)); -size_t _EXFUN(wcrtomb, (char *__restrict, wchar_t, mbstate_t *__restrict)); -size_t _EXFUN(_wcrtomb_r, (struct _reent *, char * , wchar_t, mbstate_t *)); +size_t _mbsnrtowcs_r (struct _reent *, wchar_t * , const char ** , + size_t, size_t, mbstate_t *); +size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, + mbstate_t *__restrict); +size_t _mbsrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *); +size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); +size_t _wcrtomb_r (struct _reent *, char * , wchar_t, mbstate_t *); #if __POSIX_VISIBLE >= 200809 -size_t _EXFUN(wcsnrtombs, (char *__restrict, const wchar_t **__restrict, - size_t, size_t, mbstate_t *__restrict)); +size_t wcsnrtombs (char *__restrict, const wchar_t **__restrict, + size_t, size_t, mbstate_t *__restrict); #endif -size_t _EXFUN(_wcsnrtombs_r, (struct _reent *, char * , const wchar_t ** , - size_t, size_t, mbstate_t *)); -size_t _EXFUN(wcsrtombs, (char *__restrict, const wchar_t **__restrict, - size_t, mbstate_t *__restrict)); -size_t _EXFUN(_wcsrtombs_r, (struct _reent *, char * , const wchar_t ** , - size_t, mbstate_t *)); +size_t _wcsnrtombs_r (struct _reent *, char * , const wchar_t ** , + size_t, size_t, mbstate_t *); +size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, + size_t, mbstate_t *__restrict); +size_t _wcsrtombs_r (struct _reent *, char * , const wchar_t ** , + size_t, mbstate_t *); #if __POSIX_VISIBLE >= 200809 -int _EXFUN(wcscasecmp, (const wchar_t *, const wchar_t *)); +int wcscasecmp (const wchar_t *, const wchar_t *); #endif -wchar_t *_EXFUN(wcscat, (wchar_t *__restrict, const wchar_t *__restrict)); -wchar_t *_EXFUN(wcschr, (const wchar_t *, wchar_t)); -int _EXFUN(wcscmp, (const wchar_t *, const wchar_t *)); -int _EXFUN(wcscoll, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcscpy, (wchar_t *__restrict, const wchar_t *__restrict)); +wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); +wchar_t *wcschr (const wchar_t *, wchar_t); +int wcscmp (const wchar_t *, const wchar_t *); +int wcscoll (const wchar_t *, const wchar_t *); +wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); #if __POSIX_VISIBLE >= 200809 -wchar_t *_EXFUN(wcpcpy, (wchar_t *__restrict, - const wchar_t *__restrict)); -wchar_t *_EXFUN(wcsdup, (const wchar_t *)); +wchar_t *wcpcpy (wchar_t *__restrict, + const wchar_t *__restrict); +wchar_t *wcsdup (const wchar_t *); #endif -wchar_t *_EXFUN(_wcsdup_r, (struct _reent *, const wchar_t * )); -size_t _EXFUN(wcscspn, (const wchar_t *, const wchar_t *)); -size_t _EXFUN(wcsftime, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, const struct tm *__restrict)); +wchar_t *_wcsdup_r (struct _reent *, const wchar_t * ); +size_t wcscspn (const wchar_t *, const wchar_t *); +size_t wcsftime (wchar_t *__restrict, size_t, + const wchar_t *__restrict, const struct tm *__restrict); #if __GNU_VISIBLE size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t); #endif -size_t _EXFUN(wcslcat, (wchar_t *, const wchar_t *, size_t)); -size_t _EXFUN(wcslcpy, (wchar_t *, const wchar_t *, size_t)); -size_t _EXFUN(wcslen, (const wchar_t *)); +size_t wcslcat (wchar_t *, const wchar_t *, size_t); +size_t wcslcpy (wchar_t *, const wchar_t *, size_t); +size_t wcslen (const wchar_t *); #if __POSIX_VISIBLE >= 200809 -int _EXFUN(wcsncasecmp, (const wchar_t *, const wchar_t *, size_t)); +int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); #endif -wchar_t *_EXFUN(wcsncat, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); -int _EXFUN(wcsncmp, (const wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wcsncpy, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); +wchar_t *wcsncat (wchar_t *__restrict, + const wchar_t *__restrict, size_t); +int wcsncmp (const wchar_t *, const wchar_t *, size_t); +wchar_t *wcsncpy (wchar_t *__restrict, + const wchar_t *__restrict, size_t); #if __POSIX_VISIBLE >= 200809 -wchar_t *_EXFUN(wcpncpy, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); -size_t _EXFUN(wcsnlen, (const wchar_t *, size_t)); +wchar_t *wcpncpy (wchar_t *__restrict, + const wchar_t *__restrict, size_t); +size_t wcsnlen (const wchar_t *, size_t); #endif -wchar_t *_EXFUN(wcspbrk, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcsrchr, (const wchar_t *, wchar_t)); -size_t _EXFUN(wcsspn, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcsstr, (const wchar_t *__restrict, - const wchar_t *__restrict)); -wchar_t *_EXFUN(wcstok, (wchar_t *__restrict, const wchar_t *__restrict, - wchar_t **__restrict)); -double _EXFUN(wcstod, (const wchar_t *__restrict, wchar_t **__restrict)); -double _EXFUN(_wcstod_r, (struct _reent *, const wchar_t *, wchar_t **)); +wchar_t *wcspbrk (const wchar_t *, const wchar_t *); +wchar_t *wcsrchr (const wchar_t *, wchar_t); +size_t wcsspn (const wchar_t *, const wchar_t *); +wchar_t *wcsstr (const wchar_t *__restrict, + const wchar_t *__restrict); +wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, + wchar_t **__restrict); +double wcstod (const wchar_t *__restrict, wchar_t **__restrict); +double _wcstod_r (struct _reent *, const wchar_t *, wchar_t **); #if __ISO_C_VISIBLE >= 1999 -float _EXFUN(wcstof, (const wchar_t *__restrict, wchar_t **__restrict)); +float wcstof (const wchar_t *__restrict, wchar_t **__restrict); #endif -float _EXFUN(_wcstof_r, (struct _reent *, const wchar_t *, wchar_t **)); -#ifdef _LDBL_EQ_DBL -long double _EXFUN(wcstold, (const wchar_t *, wchar_t **)); -#endif /* _LDBL_EQ_DBL */ #if __XSI_VISIBLE -int _EXFUN(wcswidth, (const wchar_t *, size_t)); +int wcswidth (const wchar_t *, size_t); #endif -size_t _EXFUN(wcsxfrm, (wchar_t *__restrict, const wchar_t *__restrict, - size_t)); +size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, + size_t); #if __POSIX_VISIBLE >= 200809 extern int wcscasecmp_l (const wchar_t *, const wchar_t *, locale_t); extern int wcsncasecmp_l (const wchar_t *, const wchar_t *, size_t, locale_t); @@ -182,36 +178,36 @@ extern size_t wcsxfrm_l (wchar_t *__restrict, const wchar_t *__restrict, size_t, #endif #if __XSI_VISIBLE -int _EXFUN(wcwidth, (const wchar_t)); +int wcwidth (const wchar_t); #endif -wchar_t *_EXFUN(wmemchr, (const wchar_t *, wchar_t, size_t)); -int _EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wmemcpy, (wchar_t *__restrict, const wchar_t *__restrict, - size_t)); -wchar_t *_EXFUN(wmemmove, (wchar_t *, const wchar_t *, size_t)); +wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); +int wmemcmp (const wchar_t *, const wchar_t *, size_t); +wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, + size_t); +wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); #if __GNU_VISIBLE -wchar_t *_EXFUN(wmempcpy, (wchar_t *__restrict, const wchar_t *__restrict, - size_t)); +wchar_t *wmempcpy (wchar_t *__restrict, const wchar_t *__restrict, + size_t); #endif -wchar_t *_EXFUN(wmemset, (wchar_t *, wchar_t, size_t)); +wchar_t *wmemset (wchar_t *, wchar_t, size_t); -long _EXFUN(wcstol, (const wchar_t *__restrict, wchar_t **__restrict, int)); +long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); #if __ISO_C_VISIBLE >= 1999 -long long _EXFUN(wcstoll, (const wchar_t *__restrict, wchar_t **__restrict, - int)); +long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, + int); #endif -unsigned long _EXFUN(wcstoul, (const wchar_t *__restrict, wchar_t **__restrict, - int)); +unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, + int); #if __ISO_C_VISIBLE >= 1999 -unsigned long long _EXFUN(wcstoull, (const wchar_t *__restrict, - wchar_t **__restrict, int)); +unsigned long long wcstoull (const wchar_t *__restrict, + wchar_t **__restrict, int); #endif -long _EXFUN(_wcstol_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -long long _EXFUN(_wcstoll_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -unsigned long _EXFUN(_wcstoul_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -unsigned long long _EXFUN(_wcstoull_r, (struct _reent *, const wchar_t *, wchar_t **, int)); +long _wcstol_r (struct _reent *, const wchar_t *, wchar_t **, int); +long long _wcstoll_r (struct _reent *, const wchar_t *, wchar_t **, int); +unsigned long _wcstoul_r (struct _reent *, const wchar_t *, wchar_t **, int); +unsigned long long _wcstoull_r (struct _reent *, const wchar_t *, wchar_t **, int); #if __ISO_C_VISIBLE >= 1999 -long double _EXFUN(wcstold, (const wchar_t *, wchar_t **)); +long double wcstold (const wchar_t *, wchar_t **); #endif #if __GNU_VISIBLE @@ -227,53 +223,53 @@ float wcstof_l (const wchar_t *, wchar_t **, locale_t); long double wcstold_l (const wchar_t *, wchar_t **, locale_t); #endif -wint_t _EXFUN(fgetwc, (__FILE *)); -wchar_t *_EXFUN(fgetws, (wchar_t *__restrict, int, __FILE *__restrict)); -wint_t _EXFUN(fputwc, (wchar_t, __FILE *)); -int _EXFUN(fputws, (const wchar_t *__restrict, __FILE *__restrict)); +wint_t fgetwc (__FILE *); +wchar_t *fgetws (wchar_t *__restrict, int, __FILE *__restrict); +wint_t fputwc (wchar_t, __FILE *); +int fputws (const wchar_t *__restrict, __FILE *__restrict); #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int _EXFUN (fwide, (__FILE *, int)); +int fwide (__FILE *, int); #endif -wint_t _EXFUN (getwc, (__FILE *)); -wint_t _EXFUN (getwchar, (void)); -wint_t _EXFUN(putwc, (wchar_t, __FILE *)); -wint_t _EXFUN(putwchar, (wchar_t)); -wint_t _EXFUN (ungetwc, (wint_t wc, __FILE *)); +wint_t getwc (__FILE *); +wint_t getwchar (void); +wint_t putwc (wchar_t, __FILE *); +wint_t putwchar (wchar_t); +wint_t ungetwc (wint_t wc, __FILE *); -wint_t _EXFUN(_fgetwc_r, (struct _reent *, __FILE *)); -wint_t _EXFUN(_fgetwc_unlocked_r, (struct _reent *, __FILE *)); -wchar_t *_EXFUN(_fgetws_r, (struct _reent *, wchar_t *, int, __FILE *)); -wchar_t *_EXFUN(_fgetws_unlocked_r, (struct _reent *, wchar_t *, int, __FILE *)); -wint_t _EXFUN(_fputwc_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_fputwc_unlocked_r, (struct _reent *, wchar_t, __FILE *)); -int _EXFUN(_fputws_r, (struct _reent *, const wchar_t *, __FILE *)); -int _EXFUN(_fputws_unlocked_r, (struct _reent *, const wchar_t *, __FILE *)); -int _EXFUN (_fwide_r, (struct _reent *, __FILE *, int)); -wint_t _EXFUN (_getwc_r, (struct _reent *, __FILE *)); -wint_t _EXFUN (_getwc_unlocked_r, (struct _reent *, __FILE *)); -wint_t _EXFUN (_getwchar_r, (struct _reent *ptr)); -wint_t _EXFUN (_getwchar_unlocked_r, (struct _reent *ptr)); -wint_t _EXFUN(_putwc_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_putwc_unlocked_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_putwchar_r, (struct _reent *, wchar_t)); -wint_t _EXFUN(_putwchar_unlocked_r, (struct _reent *, wchar_t)); -wint_t _EXFUN (_ungetwc_r, (struct _reent *, wint_t wc, __FILE *)); +wint_t _fgetwc_r (struct _reent *, __FILE *); +wint_t _fgetwc_unlocked_r (struct _reent *, __FILE *); +wchar_t *_fgetws_r (struct _reent *, wchar_t *, int, __FILE *); +wchar_t *_fgetws_unlocked_r (struct _reent *, wchar_t *, int, __FILE *); +wint_t _fputwc_r (struct _reent *, wchar_t, __FILE *); +wint_t _fputwc_unlocked_r (struct _reent *, wchar_t, __FILE *); +int _fputws_r (struct _reent *, const wchar_t *, __FILE *); +int _fputws_unlocked_r (struct _reent *, const wchar_t *, __FILE *); +int _fwide_r (struct _reent *, __FILE *, int); +wint_t _getwc_r (struct _reent *, __FILE *); +wint_t _getwc_unlocked_r (struct _reent *, __FILE *); +wint_t _getwchar_r (struct _reent *ptr); +wint_t _getwchar_unlocked_r (struct _reent *ptr); +wint_t _putwc_r (struct _reent *, wchar_t, __FILE *); +wint_t _putwc_unlocked_r (struct _reent *, wchar_t, __FILE *); +wint_t _putwchar_r (struct _reent *, wchar_t); +wint_t _putwchar_unlocked_r (struct _reent *, wchar_t); +wint_t _ungetwc_r (struct _reent *, wint_t wc, __FILE *); #if __GNU_VISIBLE -wint_t _EXFUN(fgetwc_unlocked, (__FILE *)); -wchar_t *_EXFUN(fgetws_unlocked, (wchar_t *__restrict, int, __FILE *__restrict)); -wint_t _EXFUN(fputwc_unlocked, (wchar_t, __FILE *)); -int _EXFUN(fputws_unlocked, (const wchar_t *__restrict, __FILE *__restrict)); -wint_t _EXFUN(getwc_unlocked, (__FILE *)); -wint_t _EXFUN(getwchar_unlocked, (void)); -wint_t _EXFUN(putwc_unlocked, (wchar_t, __FILE *)); -wint_t _EXFUN(putwchar_unlocked, (wchar_t)); +wint_t fgetwc_unlocked (__FILE *); +wchar_t *fgetws_unlocked (wchar_t *__restrict, int, __FILE *__restrict); +wint_t fputwc_unlocked (wchar_t, __FILE *); +int fputws_unlocked (const wchar_t *__restrict, __FILE *__restrict); +wint_t getwc_unlocked (__FILE *); +wint_t getwchar_unlocked (void); +wint_t putwc_unlocked (wchar_t, __FILE *); +wint_t putwchar_unlocked (wchar_t); #endif #if __POSIX_VISIBLE >= 200809 -__FILE *_EXFUN (open_wmemstream, (wchar_t **, size_t *)); +__FILE *open_wmemstream (wchar_t **, size_t *); #endif -__FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *)); +__FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *); #ifndef __VALIST #ifdef __GNUC__ @@ -284,42 +280,42 @@ __FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *)); #endif #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int _EXFUN(fwprintf, (__FILE *__restrict, const wchar_t *__restrict, ...)); -int _EXFUN(swprintf, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, ...)); -int _EXFUN(vfwprintf, (__FILE *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vswprintf, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, __VALIST)); -int _EXFUN(vwprintf, (const wchar_t *__restrict, __VALIST)); -int _EXFUN(wprintf, (const wchar_t *__restrict, ...)); +int fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...); +int swprintf (wchar_t *__restrict, size_t, + const wchar_t *__restrict, ...); +int vfwprintf (__FILE *__restrict, const wchar_t *__restrict, + __VALIST); +int vswprintf (wchar_t *__restrict, size_t, + const wchar_t *__restrict, __VALIST); +int vwprintf (const wchar_t *__restrict, __VALIST); +int wprintf (const wchar_t *__restrict, ...); #endif -int _EXFUN(_fwprintf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); -int _EXFUN(_swprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, ...)); -int _EXFUN(_vfwprintf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); -int _EXFUN(_vswprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST)); -int _EXFUN(_vwprintf_r, (struct _reent *, const wchar_t *, __VALIST)); -int _EXFUN(_wprintf_r, (struct _reent *, const wchar_t *, ...)); +int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...); +int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...); +int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); +int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST); +int _vwprintf_r (struct _reent *, const wchar_t *, __VALIST); +int _wprintf_r (struct _reent *, const wchar_t *, ...); #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500 -int _EXFUN(fwscanf, (__FILE *__restrict, const wchar_t *__restrict, ...)); -int _EXFUN(swscanf, (const wchar_t *__restrict, - const wchar_t *__restrict, ...)); -int _EXFUN(vfwscanf, (__FILE *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vswscanf, (const wchar_t *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vwscanf, (const wchar_t *__restrict, __VALIST)); -int _EXFUN(wscanf, (const wchar_t *__restrict, ...)); +int fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...); +int swscanf (const wchar_t *__restrict, + const wchar_t *__restrict, ...); +int vfwscanf (__FILE *__restrict, const wchar_t *__restrict, + __VALIST); +int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, + __VALIST); +int vwscanf (const wchar_t *__restrict, __VALIST); +int wscanf (const wchar_t *__restrict, ...); #endif -int _EXFUN(_fwscanf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); -int _EXFUN(_swscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, ...)); -int _EXFUN(_vfwscanf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); -int _EXFUN(_vswscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, __VALIST)); -int _EXFUN(_vwscanf_r, (struct _reent *, const wchar_t *, __VALIST)); -int _EXFUN(_wscanf_r, (struct _reent *, const wchar_t *, ...)); +int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...); +int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...); +int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST); +int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, __VALIST); +int _vwscanf_r (struct _reent *, const wchar_t *, __VALIST); +int _wscanf_r (struct _reent *, const wchar_t *, ...); #define getwc(fp) fgetwc(fp) #define putwc(wc,fp) fputwc((wc), (fp)) diff --git a/libc/xtensa-lx106-elf/include/wctype.h b/libc/xtensa-lx106-elf/include/wctype.h index 3d36d5a..9b71090 100644 --- a/libc/xtensa-lx106-elf/include/wctype.h +++ b/libc/xtensa-lx106-elf/include/wctype.h @@ -27,26 +27,26 @@ typedef int wctype_t; typedef int wctrans_t; #endif -int _EXFUN(iswalpha, (wint_t)); -int _EXFUN(iswalnum, (wint_t)); +int iswalpha (wint_t); +int iswalnum (wint_t); #if __ISO_C_VISIBLE >= 1999 -int _EXFUN(iswblank, (wint_t)); +int iswblank (wint_t); #endif -int _EXFUN(iswcntrl, (wint_t)); -int _EXFUN(iswctype, (wint_t, wctype_t)); -int _EXFUN(iswdigit, (wint_t)); -int _EXFUN(iswgraph, (wint_t)); -int _EXFUN(iswlower, (wint_t)); -int _EXFUN(iswprint, (wint_t)); -int _EXFUN(iswpunct, (wint_t)); -int _EXFUN(iswspace, (wint_t)); -int _EXFUN(iswupper, (wint_t)); -int _EXFUN(iswxdigit, (wint_t)); -wint_t _EXFUN(towctrans, (wint_t, wctrans_t)); -wint_t _EXFUN(towupper, (wint_t)); -wint_t _EXFUN(towlower, (wint_t)); -wctrans_t _EXFUN(wctrans, (const char *)); -wctype_t _EXFUN(wctype, (const char *)); +int iswcntrl (wint_t); +int iswctype (wint_t, wctype_t); +int iswdigit (wint_t); +int iswgraph (wint_t); +int iswlower (wint_t); +int iswprint (wint_t); +int iswpunct (wint_t); +int iswspace (wint_t); +int iswupper (wint_t); +int iswxdigit (wint_t); +wint_t towctrans (wint_t, wctrans_t); +wint_t towupper (wint_t); +wint_t towlower (wint_t); +wctrans_t wctrans (const char *); +wctype_t wctype (const char *); #if __POSIX_VISIBLE >= 200809 extern int iswalpha_l (wint_t, locale_t); diff --git a/libc/xtensa-lx106-elf/lib/libc.a b/libc/xtensa-lx106-elf/lib/libc.a index d8751295bc241d1837bc12974e50aea58221f38e..4dffe9f456a2a399908e4d4a10e4bc39052d1d2a 100644 GIT binary patch delta 134358 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

        Nd1S5rFvydT}PEVO*&rlpN`xjLQXqS% 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 H1L6M*VZY|f diff --git a/libc/xtensa-lx106-elf/lib/libg.a b/libc/xtensa-lx106-elf/lib/libg.a index d8751295bc241d1837bc12974e50aea58221f38e..4dffe9f456a2a399908e4d4a10e4bc39052d1d2a 100644 GIT binary patch delta 134358 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

        Nd1S5rFvydT}PEVO*&rlpN`xjLQXqS% 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 H1L6M*VZY|f diff --git a/libc/xtensa-lx106-elf/lib/libm.a b/libc/xtensa-lx106-elf/lib/libm.a index b4822ccc99a7be50522c5fdb0e6aebec0a9461d8..99786744b753b428409d926fb250bd0745452186 100644 GIT binary patch delta 11507 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 delta 11789 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 Date: Sun, 18 Feb 2018 16:25:59 +1100 Subject: [PATCH 282/349] lwip: update and fix compilation with timer debug enabled. --- lwip/lwip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lwip/lwip b/lwip/lwip index 9f70dbe..d74e9ad 160000 --- a/lwip/lwip +++ b/lwip/lwip @@ -1 +1 @@ -Subproject commit 9f70dbe91a68df81c6bbcb48306a590359a41d3f +Subproject commit d74e9ad2f7c9db996fb398cd41bf59ef463ae6fe From dccf3fc7b9535f4677dc792b0841335977104847 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Fri, 23 Feb 2018 22:56:19 +1100 Subject: [PATCH 283/349] newlib lock support: uses a separate mutex and recursive mutex. In trying to save memory had incorrectly shared a non-recursive mutex with recursive mutex uses. Initialize one non-recursive mutex too. --- core/newlib_syscalls.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index 452e51d..e304d36 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -246,11 +246,10 @@ extern _lock_t __sinit_recursive_mutex; void init_newlib_locks() { - _lock_init(&__arc4random_mutex); - #if 0 - /* Separate mutex for each lock. + /* Used a separate mutex for each lock. * Each mutex uses about 96 bytes which adds up. */ + _lock_init(&__arc4random_mutex); _lock_init(&__at_quick_exit_mutex); //_lock_init(&__dd_hash_mutex); _lock_init(&__tz_mutex); @@ -261,19 +260,20 @@ void init_newlib_locks() _lock_init_recursive(&__sfp_recursive_mutex); _lock_init_recursive(&__sinit_recursive_mutex); #else - /* Reuse the same mutex for all these, reducing memory usage. Newlib - * will still allocate other locks dynamically and some of those need - * to be separate such as the file lock where a thread might block with - * them held. */ + /* Reuse one mutex and one recursive mutex for this set, reducing memory + * usage. Newlib will still allocate other locks dynamically and some of + * those need to be separate such as the file lock where a thread might + * block with them held. */ + _lock_init(&__arc4random_mutex); __at_quick_exit_mutex = __arc4random_mutex; //__dd_hash_mutex = __arc4random_mutex; __tz_mutex = __arc4random_mutex; - __atexit_recursive_mutex = __arc4random_mutex; - __env_recursive_mutex = __arc4random_mutex; - __malloc_recursive_mutex = __arc4random_mutex; - __sfp_recursive_mutex = __arc4random_mutex; - __sinit_recursive_mutex = __arc4random_mutex; + _lock_init_recursive(&__atexit_recursive_mutex); + __env_recursive_mutex = __atexit_recursive_mutex; + __malloc_recursive_mutex = __atexit_recursive_mutex; + __sfp_recursive_mutex = __atexit_recursive_mutex; + __sinit_recursive_mutex = __atexit_recursive_mutex; #endif locks_initialized = 1; From 8d4b4aa7a3615df712b9ed42f358e05dfb9fb3c0 Mon Sep 17 00:00:00 2001 From: Sashka Date: Fri, 23 Feb 2018 12:29:42 -0500 Subject: [PATCH 284/349] Multi-Channel Soft PWM library (#579) --- .gitmodules | 3 ++ examples/multipwm/Makefile | 4 +++ examples/multipwm/multipwm_test.c | 50 +++++++++++++++++++++++++++++++ extras/multipwm | 1 + 4 files changed, 58 insertions(+) create mode 100644 examples/multipwm/Makefile create mode 100644 examples/multipwm/multipwm_test.c create mode 160000 extras/multipwm diff --git a/.gitmodules b/.gitmodules index 6790fd5..2ebfb8a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -34,3 +34,6 @@ [submodule "extras/libesphttpd/libesphttpd/lib/heatshrink"] path = extras/libesphttpd/libesphttpd/lib/heatshrink url = https://github.com/atomicobject/heatshrink +[submodule "extras/multipwm"] + path = extras/multipwm + url = https://github.com/nochkin/multipwm diff --git a/examples/multipwm/Makefile b/examples/multipwm/Makefile new file mode 100644 index 0000000..4138f8b --- /dev/null +++ b/examples/multipwm/Makefile @@ -0,0 +1,4 @@ +# Simple makefile for multipwm example +PROGRAM=multipwm_test +EXTRA_COMPONENTS = extras/multipwm +include ../../common.mk diff --git a/examples/multipwm/multipwm_test.c b/examples/multipwm/multipwm_test.c new file mode 100644 index 0000000..46ddce8 --- /dev/null +++ b/examples/multipwm/multipwm_test.c @@ -0,0 +1,50 @@ +/* An example for the multipwm library + * Connect LEDs to pins 12, 13, 15 to see the light changes + * + * Part of esp-open-rtos + * Copyright (c) Sashka Nochkin (https://github.com/nochkin) + * MIT Licensed + */ + +#include "espressif/esp_common.h" +#include "esp/uart.h" +#include "FreeRTOS.h" +#include "task.h" + +#include "multipwm.h" + +void multipwm_task(void *pvParameters) +{ + uint32_t counts[] = {500, 2100, 3000}; + int32_t steps[] = {100, 300, 200}; + uint8_t pins[] = { 12, 13, 15}; + + pwm_info_t pwm_info; + pwm_info.channels = 3; + + multipwm_init(&pwm_info); + for (uint8_t ii=0; ii= 10000) || (counts[ii] == 0)) { + steps[ii] = -steps[ii]; + } + } + multipwm_start(&pwm_info); + vTaskDelay(1); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + xTaskCreate(multipwm_task, "multipwm", 256, NULL, 2, NULL); +} diff --git a/extras/multipwm b/extras/multipwm new file mode 160000 index 0000000..44ecea5 --- /dev/null +++ b/extras/multipwm @@ -0,0 +1 @@ +Subproject commit 44ecea5757bee0112c65f33eadb44e91a8923535 From 4a1b600be41042c29c1abe89a4079e5e38c9cb2e Mon Sep 17 00:00:00 2001 From: Sakari Kapanen Date: Tue, 27 Feb 2018 01:00:14 +0200 Subject: [PATCH 285/349] i2c: improve timing Look-up tables were used for determining the delay loop counts before. Based on these hand-tuned values, the loop overhead was estimated for each option -- 80 and 160 MHz, fast and slow GPIO access. Instead of the great number of tunable parameters one now only has to tune the overhead values if the code is changed. Functions were added to the API which allow setting an arbitrary frequency. API backward compatibility is retained. i2c: fix potential overflow situation --- extras/i2c/i2c.c | 104 ++++++++++++++++++++++++++++++++--------------- extras/i2c/i2c.h | 22 ++++++++-- 2 files changed, 90 insertions(+), 36 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index f0b8972..204bc98 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -37,29 +37,18 @@ #define debug(fmt, ...) #endif -// The following array contains delay values for different frequencies. -// These were tuned to match the specified SCL frequency on average. -// The tuning was done using GCC 5.2.0 with -O2 optimization. -const static uint8_t i2c_freq_array[][2] = { +// Delay loop takes four CPU clock cycles per round +#define DELAY_LOOPS_PER_US_160MHZ 40 +// The value for 80 MHz is half the above +// Constant overhead per I2C clock cycle in terms of delay loop rounds. +// If timing is changed by some code change, these will require tuning. #if I2C_USE_GPIO16 == 1 - [I2C_FREQ_80K] = {230, 107}, - [I2C_FREQ_100K] = {180, 82}, - [I2C_FREQ_400K] = {30, 7}, - [I2C_FREQ_500K] = {20, 1}, - [I2C_FREQ_600K] = {13, 0}, - [I2C_FREQ_800K] = {5, 0}, - [I2C_FREQ_1000K] = {1, 0} + #define DELAY_OVERHEAD_80MHZ 18 + #define DELAY_OVERHEAD_160MHZ 20 #else - [I2C_FREQ_80K] = {235, 112}, - [I2C_FREQ_100K] = {185, 88}, - [I2C_FREQ_400K] = {36, 13}, - [I2C_FREQ_500K] = {25, 8}, - [I2C_FREQ_600K] = {20, 5}, - [I2C_FREQ_800K] = {11, 1}, - [I2C_FREQ_1000K] = {5, 0}, - [I2C_FREQ_1300K] = {1, 0} + #define DELAY_OVERHEAD_80MHZ 12 + #define DELAY_OVERHEAD_160MHZ 14 #endif -}; // Bus settings typedef struct i2c_bus_description @@ -71,7 +60,8 @@ typedef struct i2c_bus_description uint32_t g_scl_mask; // SCL pin mask uint32_t g_sda_mask; // SDA pin mask #endif - i2c_freq_t frequency; // Frequency + uint8_t delay_80; + uint8_t delay_160; uint8_t delay; bool started; bool flag; @@ -86,7 +76,28 @@ inline bool i2c_status(uint8_t bus) return i2c_bus[bus].started; } +static uint32_t freq_t_to_hz(i2c_freq_t freq) +{ + switch (freq) + { + case I2C_FREQ_80K: return 80000; + case I2C_FREQ_100K: return 100000; + case I2C_FREQ_400K: return 400000; + case I2C_FREQ_500K: return 500000; + case I2C_FREQ_600K: return 600000; + case I2C_FREQ_800K: return 800000; + case I2C_FREQ_1000K: return 1000000; + case I2C_FREQ_1300K: return 1300000; + } + return 80000; +} + int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) +{ + return i2c_init_hz(bus, scl_pin, sda_pin, freq_t_to_hz(freq)); +} + +int i2c_init_hz(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint32_t freq) { if (bus >= I2C_MAX_BUS) { debug("Invalid bus"); @@ -115,8 +126,6 @@ int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) i2c_bus[bus].g_scl_mask = BIT(scl_pin); i2c_bus[bus].g_sda_mask = BIT(sda_pin); #endif - - i2c_bus[bus].frequency = freq; i2c_bus[bus].clk_stretch = I2C_DEFAULT_CLK_STRETCH; // Just to prevent these pins floating too much if not connected. @@ -130,19 +139,48 @@ int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq) gpio_write(scl_pin, 1); gpio_write(sda_pin, 1); - // Prevent user, if frequency is high - if (sdk_system_get_cpu_freq() == SYS_CPU_80MHZ) - if (i2c_freq_array[i2c_bus[bus].frequency][1] == 0) { - debug("Frequency not supported"); - return -ENOTSUP; - } + // Inform user if the desired frequency is not supported. + if (i2c_set_frequency_hz(bus, freq) != 0) { + debug("Frequency not supported"); + return -ENOTSUP; + } return 0; } -void i2c_set_frequency(uint8_t bus, i2c_freq_t freq) +int i2c_set_frequency(uint8_t bus, i2c_freq_t freq) { - i2c_bus[bus].frequency = freq; + return i2c_set_frequency_hz(bus, freq_t_to_hz(freq)); +} + +int i2c_set_frequency_hz(uint8_t bus, uint32_t freq) +{ + if (freq == 0) return -EINVAL; + + uint32_t tick_count = (1000000UL * DELAY_LOOPS_PER_US_160MHZ) / (2 * freq); + + bool not_ok = false; + + int32_t delay_80 = tick_count / 2 - DELAY_OVERHEAD_80MHZ; + if (delay_80 > 255) { + delay_80 = 255; + not_ok = true; + } else if (delay_80 < 0) { + delay_80 = 0; + not_ok = true; + } + int32_t delay_160 = tick_count - DELAY_OVERHEAD_160MHZ; + if (delay_160 > 255) { + delay_160 = 255; + not_ok = true; + } else if (delay_160 < 0) { + delay_160 = 0; + not_ok = true; + } + i2c_bus[bus].delay_80 = delay_80; + i2c_bus[bus].delay_160 = delay_160; + + return not_ok ? -EINVAL : 0; } void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch) @@ -219,9 +257,9 @@ static inline void set_sda(uint8_t bus) void i2c_start(uint8_t bus) { if (sdk_system_get_cpu_freq() == SYS_CPU_160MHZ) - i2c_bus[bus].delay = i2c_freq_array[i2c_bus[bus].frequency][0]; + i2c_bus[bus].delay = i2c_bus[bus].delay_160; else - i2c_bus[bus].delay = i2c_freq_array[i2c_bus[bus].frequency][1]; + i2c_bus[bus].delay = i2c_bus[bus].delay_80; if (i2c_bus[bus].started) { // if started, do a restart cond // Set SDA to 1 diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index c9c4085..46f8468 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -66,9 +66,7 @@ typedef enum I2C_FREQ_600K, I2C_FREQ_800K, I2C_FREQ_1000K, -#if I2C_USE_GPIO16 == 0 I2C_FREQ_1300K -#endif } i2c_freq_t; /** @@ -93,12 +91,30 @@ typedef struct i2c_dev */ int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq); +/** + * Init bitbanging I2C driver on given pins + * @param bus Bus i2c selection + * @param scl_pin SCL pin for I2C + * @param sda_pin SDA pin for I2C + * @param freq frequency of bus in hertz + * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH would be good in most cases + * @return Non-zero if error occured + */ +int i2c_init_hz(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint32_t freq); + /** * Change bus frequency * @param bus Bus i2c selection * @param freq frequency of bus (ex : I2C_FREQ_400K) */ -void i2c_set_frequency(uint8_t bus, i2c_freq_t freq); +int i2c_set_frequency(uint8_t bus, i2c_freq_t freq); + +/** + * Change bus frequency + * @param bus Bus i2c selection + * @param freq frequency of bus in hertz + */ +int i2c_set_frequency_hz(uint8_t bus, uint32_t freq); /** * Change clock stretch From f9ae521710e38ca6ab57afe12e1bc08f8aa063f9 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Wed, 28 Feb 2018 23:38:04 +1100 Subject: [PATCH 286/349] newlib: rebuild with the global stdio streams enabled. This change means that there is only one set of global stdin, stdout, and stderr FILE streams shared by all the threads. This reduces memory usage and avoids having to close these streams before threads exit. These streams still have a lock to synchronise access. --- core/app_main.c | 2 -- libc/README.md | 4 +-- libc/xtensa-lx106-elf/include/malloc.h | 4 +++ libc/xtensa-lx106-elf/include/newlib.h | 2 +- libc/xtensa-lx106-elf/include/sys/reent.h | 41 +++++++++++++++++++++- libc/xtensa-lx106-elf/lib/libc.a | Bin 6146748 -> 6098914 bytes libc/xtensa-lx106-elf/lib/libg.a | Bin 6146748 -> 6098914 bytes libc/xtensa-lx106-elf/lib/libm.a | Bin 2403176 -> 2403176 bytes 8 files changed, 47 insertions(+), 6 deletions(-) diff --git a/core/app_main.c b/core/app_main.c index 9c3918c..8b27f94 100644 --- a/core/app_main.c +++ b/core/app_main.c @@ -431,8 +431,6 @@ static __attribute__((noinline)) void user_start_phase2(void) { memcpy(&phy_info, &default_phy_info, sizeof(sdk_phy_info_t)); } - // Disable default buffering on stdout - setbuf(stdout, NULL); // Wait for UARTs to finish sending anything in their queues. uart_flush_txfifo(0); uart_flush_txfifo(1); diff --git a/libc/README.md b/libc/README.md index 4869531..e3c84cb 100644 --- a/libc/README.md +++ b/libc/README.md @@ -1,9 +1,9 @@ -Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit 7558d27f9dba58ba0e51e37a2aa3ea6be7214799 +Newlib from git://sourceware.org/git/newlib-cygwin.git with xtensa & locking patches see https://github.com/ourairquality/newlib and built from commit 984b749fb223daab954060c04720933290584f00 The build commands were: mkdir build cd build -../configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf --target=xtensa-lx106-elf --enable-newlib-nano-malloc --enable-newlib-nano-formatted-io --enable-newlib-reent-small --disable-newlib-mb --prefix=/tmp/libc +../configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf --target=xtensa-lx106-elf --enable-newlib-nano-malloc --enable-newlib-nano-formatted-io --enable-newlib-reent-small --disable-newlib-mb --enable-newlib-global-stdio-streams --prefix=/tmp/libc env CROSS_CFLAGS="-DSIGNAL_PROVIDED -DABORT_PROVIDED" make make install diff --git a/libc/xtensa-lx106-elf/include/malloc.h b/libc/xtensa-lx106-elf/include/malloc.h index e12a132..a9dc5bc 100644 --- a/libc/xtensa-lx106-elf/include/malloc.h +++ b/libc/xtensa-lx106-elf/include/malloc.h @@ -133,6 +133,10 @@ extern int malloc_trim (size_t); extern int _malloc_trim_r (struct _reent *, size_t); #endif +extern void __malloc_lock(struct _reent *); + +extern void __malloc_unlock(struct _reent *); + /* A compatibility routine for an earlier version of the allocator. */ extern void mstats (char *); diff --git a/libc/xtensa-lx106-elf/include/newlib.h b/libc/xtensa-lx106-elf/include/newlib.h index f4dd838..b947cbf 100644 --- a/libc/xtensa-lx106-elf/include/newlib.h +++ b/libc/xtensa-lx106-elf/include/newlib.h @@ -83,7 +83,7 @@ /* Define to move the stdio stream FILE objects out of struct _reent and make them global. The stdio stream pointers of struct _reent are initialized to point to the global stdio FILE stream objects. */ -/* #undef _WANT_REENT_GLOBAL_STDIO_STREAMS */ +#define _WANT_REENT_GLOBAL_STDIO_STREAMS 1 /* Define if small footprint nano-formatted-IO implementation used. */ #define _NANO_FORMATTED_IO 1 diff --git a/libc/xtensa-lx106-elf/include/sys/reent.h b/libc/xtensa-lx106-elf/include/sys/reent.h index 1ef2261..0f21c68 100644 --- a/libc/xtensa-lx106-elf/include/sys/reent.h +++ b/libc/xtensa-lx106-elf/include/sys/reent.h @@ -144,7 +144,7 @@ struct __sbuf { * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. */ -#ifdef _REENT_SMALL +#if defined(_REENT_SMALL) && !defined(_REENT_GLOBAL_STDIO_STREAMS) /* * struct __sFILE_fake is the start of a struct __sFILE, with only the * minimal fields allocated. In __sinit() we really allocate the 3 @@ -418,6 +418,43 @@ struct _reent char *_signal_buf; /* strsignal */ }; +#ifdef _REENT_GLOBAL_STDIO_STREAMS +extern __FILE __sf[3]; + +# define _REENT_INIT(var) \ + { 0, \ + &__sf[0], \ + &__sf[1], \ + &__sf[2], \ + 0, \ + _NULL, \ + 0, \ + 0, \ + _NULL, \ + _NULL, \ + _NULL, \ + 0, \ + 0, \ + _NULL, \ + _NULL, \ + _NULL, \ + _NULL, \ + _NULL, \ + _REENT_INIT_ATEXIT \ + {_NULL, 0, _NULL}, \ + _NULL, \ + _NULL, \ + _NULL \ + } + +#define _REENT_INIT_PTR_ZEROED(var) \ + { (var)->_stdin = &__sf[0]; \ + (var)->_stdout = &__sf[1]; \ + (var)->_stderr = &__sf[2]; \ + } + +#else + extern const struct __sFILE_fake __sf_fake_stdin; extern const struct __sFILE_fake __sf_fake_stdout; extern const struct __sFILE_fake __sf_fake_stderr; @@ -454,6 +491,8 @@ extern const struct __sFILE_fake __sf_fake_stderr; (var)->_stderr = (__FILE *)&__sf_fake_stderr; \ } +#endif + /* Only add assert() calls if we are specified to debug. */ #ifdef _REENT_CHECK_DEBUG #include diff --git a/libc/xtensa-lx106-elf/lib/libc.a b/libc/xtensa-lx106-elf/lib/libc.a index 4dffe9f456a2a399908e4d4a10e4bc39052d1d2a..457de255a83b9e1cd41c031b24f4a6f2067eccfe 100644 GIT binary patch delta 831111 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

        O~4e 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

        s9;4hGouZ&YP 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

        sUF&St2 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≤= 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%0Dq0>0 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%0Aj|E4H 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 diff --git a/libc/xtensa-lx106-elf/lib/libg.a b/libc/xtensa-lx106-elf/lib/libg.a index 4dffe9f456a2a399908e4d4a10e4bc39052d1d2a..457de255a83b9e1cd41c031b24f4a6f2067eccfe 100644 GIT binary patch delta 831111 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

        O~4e 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

        s9;4hGouZ&YP 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%0Aj|E4H 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 diff --git a/libc/xtensa-lx106-elf/lib/libm.a b/libc/xtensa-lx106-elf/lib/libm.a index 99786744b753b428409d926fb250bd0745452186..e7c096974fce58f8664ae31c804c558d24c750b4 100644 GIT binary patch delta 16973 zcmeHPd3Y4Xwx6C%PbN&3$xJ6RlT4CXvay9-5@ZPxL4pE7*&!HZku5+js|o=GRAf_- zx~QOlYm_BMEKxyRz~xGW>k~yG3WB0Sd<}4DfqW4HM$_bZJT!a`PJbqenaj^>TmE=)yz*B7soX<^*J%|yuhkg z&reZnwp?+OFj-xnQ&qF4$0(s7^@__^({;eyhK@Cp%4A$p_g%uan!BeAlU}>a6(3m| ztL&?JYwkBf4bi=1XsWWhX7sXGVr3@K1bHV{IaK3&V4E+f(@3-8a0j7TUHgQu=J;2ynibxfS1(p2iny34g+!}G|1e1kNe&R1urZ*J;9_A! zR?P7GXn9BFUOC?J8JeGFlqjpD6^mXwO8H8tD5wsK5{B{9ZF7~s$}n|xi9R}(D7~d> z-ZRl&x_`TJoKJK|!Ww(;-QP7f?-O%lqy zjn%XU$}>`Yw6vS`u$w#5t^=&oJiJ6|cSiYW?HFr^hAL9J$I+c8jJ0-9=wENOj+4W_ z;W3|&rZ2M&6cJ&ry!74;R;$#&T3ov_J%(OaZ5<>hqb>*9dTqCLZwJvlsQmPa^VZhw zxQc>G5hViI`slC2qOO+tZ5@;Dr#F{JT@dXN>?TP+lUllVaz;F^C5bnYbE1hH@^s1#8m%ph*Ftu%$tiM~pf?y|L! zL%|l##|LaJ8>zBS*g`@@VMOnig9$^vT$BjZ!3FG6$4eEAub+C-)HmcX)wNO^FW2&` z)IV6R`9oCGa%E}m9U@8eDuE0 z)Wgk%)x6tMy!7r^``5`0Rrf~hgS3V!HQ(N|k!t+4_Ii;QExpmc%iGYWV79&3q{5rY z#+CMSa;~~|YvQBNK5h4R5{?_j27UDFllFCOg(@Bs-{gy4-a@F@9p$>Kqw8g?+F8)! zVP((g)i2(_U{ych2Vq1h4WPn;c`>a}9-|G>u~Vs*sPa z80jbw%ZozG#~L&Wx1=?WX>yp^EW$16sAd$MdEMQ@wpl zOzk+XqM+J)Jui{G7kqwtM`n}fWH!*JF|s?X>DOj8IVqZ^TbDMu?sgFY`s*e8pYrsf zqobXpq8sSxv3O_OLZO1yQbb4ebM`Z>7M#v^yS33RB;2Lbs2Gf(LVjPOWge( zxevQBRnLeEFXS4WV57sGFT|NT%+}(Izs0RD;HDIwND{ZOP>XxTPe|bPOcOUazG^1d z(B1pvzZdr^tS8{HnvOma|Dnj2xefg$K6^2DBkVd{KQ*D57+G4oB;lzHVE`pBIl4XA zobGu%;k&TVvuEb$cM?p`Oi01FaZdjz!F=NcR7R(Mks#p{1^6WUM*(mx7fF)32h)7? z0hen|lxPf-plvi)g;a5?^$H#3cO6k0+MY>wZB*#Rfa`rbzM5hr+KCzba!i4qU;s}M)h4?C#4GdT}2o5b$u=-j+T!w4+R)(ppQ&+ zeJc#uQlzjHH#P_Z!0awpBfttsH$Yz?F4IiFdiBxpW3DW*XbFQuV_$bImiH!hImCSG zYBod+Dnn=kIwocbghuD}PyD`}Fkn9SE=ueg~Xo8m7iNJ79|h9 z+C^E|r+0$>YjxPBC>BeUO&wo8-D0&xr+|^w8od&K6#F5tvMP=P;AOR{C-BFizJ*Fh zbbt7<-3ZQBXA2Z}V{PncthA{S(AzeFCaT4)7E8Rv_P7n?3Xm=8-$_Y=+Y|dPG!gYA z0ZnucnVR5En=lvbn>eC2Uj&_V5js4EkuA<;C|7L;(PpvPvGDX^EbPYAw@m>t)&{vx zgotsr3`|LJ>;N-coC@tFyFnBG9(?)KR*T@r`3b2EMUvyDfQi}`n{YT^AmzbOK~@xm z$W%Le;K%t2RHy}d1}~y%C)Q7A{n~KE8@~jSRlA_Z&R6RaPEqQ%(_ z<-vOMHQ=ERc^vc(r-N(^g<8d305^v^;}p7`B8ibmT9f!haJfa@;j@wckx*uQJM`Mw z4}!%y=UPdg$DQ0|CY02dF{;m*h4L$eB{c zoW-mV(0Y(*;gJ7|Yf-mU*&7WV&_2Wn%a}n6?PiRhm{bd|B-e9I;1|r`f@^> zg+3dVdI)ezdm4Qr%*$tVo)*R3(pOhFaq9dzqmy{ywa^ zTebfU!(}M-5XjRX9Ae@68w9OtYz<{G*`nQr?PRk~+O#^7H#3}_I}eAXPowlRiv)}pniR z6PZ=6wh3(2NvzOXTZT20Ss`C*jWy-0P^fhy(`JR!luEL4RyYaAsWv;*uD8wh6y)bQ z44LQJi>!kkkWh1QvtMo17u+3CWAACjskdp{z}DW&ngs?9%>fzNuVDq3b_%}jq`zH)<&PH@> zu3*4bScifocPV_?Gnw{@8`9lD+vu|CWu!bWbR&JKtNXkXGj{x>F_!YO$zw?2f^Z~{S#Z=(qVpK)@e6oLTFrCD7h|Hps zd$_MGZWDk}Q{u2$XxJndn&fLu@(}XN3b%LQRFmppXIc@|b`rFo-71hD;z$zu9x0 z^a0$vjfN^bjR*q@gu!6ZDq|XH?g~?6!g4Eo$dnsSDtr3#Z)|y1mcF~+7grHz) zbstS~u!uqd;1AUf31CX$75ch7u?W~q-1@k-ph2pBnz}=qEmaK9SHG@Z3<^gU`Rx~yF7YIdOyYjbNNJi>x`=CV0*BE(TasRpyo3|03RA>AZ^MIRZh`U++nNOwhXQ#f|KI z-`|{`ekl1%@%F|z#edW!zauHUJUhHkeY`h$f2ByWZ`+h->5Vl+9S)CU18+5RA-QvE5rDC;^>k{`EEQ zP+>(&4|*qyUbFsu^|kk+oGjqQ{WR*I-dr&l%&521mo79E7H3P73$jf+oB6H~<3x~M zr}5o=GlUPD@{J|FU!A;fpedrKM*7~A!^C=3JJDAr^3}W0_g0_mg09+kmv3Yvt0LkX zC{z@NLo%Hd2$j8pOVQuU6W{k0NfwLI1QlQV+7$5o^c%>l5r5-JTi)DnnlwfQ4`}Bv z6O@_mc(CX19AO?!j_leg8|2RxbN~hReutPGJ^>~xA+*^y{#}yw1SZ%|qc8YR%lU!D zGl=%Lr+7t@6u40niw{d*PJuCig(=U=bt~8N$!k(f>zQ$Z!}_PBiA$EkJMF!4MX{St z%llGZlb1PTSK?|?YURkYG5u*@$^dbh6XrPnL`rsuPb^!CTh!F@Mk7*?l=_8ikliu5 zwn$ABw>Eu3CKsnp5QHhMD@|=FuQ!%a(`l)Fg@L|U*Dg+#6bv+9MgMC}>Lt0I6Pr>^ zi~@TI^xdACB{Kz;pRRr-)z?7fqwmzFCN@%CJesPSRJi8?n-TZRbm4jJr|`XzzhBB(xY1Md$kk?W07 z9v7bpbPy|vFb1~ozCagwowA#2)n|c&a#gbS*PRKh5baa2N)l@nMt1`}2)k7uD^2^MGw(A63M)&}b=Vv7@#xHE z|n94~_jP<@Q?bEt2k(h)rbery%++G$XIRcOSi zzA)%*D=@M__1y=rCYIuV2GutkWlr^-!>BsdcK}*3 zQGI_%f)zV_?gvz8yN%HympXs_z}rX+p4|(gh(n)wdfu$f-VLDmm46 z2K86sTerix6UJ2SjB>2A0utloUku7!QLj0JXwwa4pYvnX8)V=x)OSZckbytLk3(@7 zY~U`P4SWk*u+Q2JVHvayBqYX9JO@-WrFj6@P zJq$K*Ey@NPco)hB8>nI*3^wp0M&)ea%}^oOK*ou1Hn2Oob2jiw^wA3r?Xawg)v`$! zAp279!1Op9ScI){Hn6qM2IixVvw>e>1kMItg|RssxB_c98#p$KESnVcRT8w|Y+x}? zE@uOA&IB8{5Y0Fnh%B^V1AoK;=4{|#^x0 z;cVbL$Oih!l&nx(?gShcP6=+q0;dFzVu4eF@r)9zY!1B=l;EQnlT(6rEQ~Pd#^-R1 zMl!O{p*?~LHX;cRLTo`2zJv{Nl92JnoFv?i<2H_we6hgIT1f2FpttB-wC8l;HXLV8 z7j8s*P8V*#8crAHV-2SZd+BuHoo2eQL$3v3@7W365M*IHa1vx8lDvW}d=UBsWZ`)r z;T+m=$Op(mEV#5=NpVgnCFf_*39=CPB`O2gKzvK!KKN1sQ{WrO!ii+?wBX17CDs@oik+E6Do{&+b}ZDP~p|67&7DH44H9phFn4q zt_rua(i@ite{^tYsiUJAYlFoS0Whct+r;S+VZ~KXS?Ozsf-}Th5$*b8aBr3{V@D+- zX`%0x%I&a*l~u6XEU!1k(ErfKmPz?40EtH^xffk0M%+bR87*$6LyP$Ow zTF8fp0xc{A9~;v723n{ETaFeEF|^?C3?>{cP^i}BSZ8OlH56%C`3tBng&gigH)E5~ zj2vFZ#th_eJtWDI!w--aM-JW5#y}1)p^bqY5XoHzIaKM$0oPw+y3Rx zytFuScosWm>?2xr_!3*-h@uBHArQrF z*xn@(MK1bqM6nM8>xEb?T1OP4u>p=KA{d7wibRGeD%q2YBZ@;9fg_667@H%C+pvZs ziidE1?^FH;kBWS42^Ll>2cgheTZBFwV@$*vjxlg{1;#-5u49beu;qApkkJF3ILMfd zPL~H6WP4VG?Jiz&xA9$!WZ;WFke9$0Y^8C0F%X;J_yV@PIlgGx2S<+Mivw8T_~KVA zaD4G?6e&q^2T~gVjC(OC2N>UxBUvGT=LMKfBQ$XiA_+8sH*0|=E~2$S6QoUc$ltFF z2X{Q%pA2ZYks`3fLpW8J#1i*l&Hn&Pl!LtoH|;NtCHg~+z!La86<7i{c?6ai$FM{Y zpD6-M z2|mxZ19en!xLqjP`5!!iPtSi(JOR{2eveQuNxTAe;-?Sy37wXxg6&2DA<>nd8XGcE zPGIVzDKkR92vZ8&TnAAi>?~(RRcK3VfioC0)8&)U1Zl;%*uCF}_DRZ%Z3|Rs;W9x{ z>#Se1tnk&+k;PixEu1a66Gp5a92~wVI4qKv9`Vy}CWlpPkOo&1esbXo z#19;K8VjOCHh9DE9qmqBvdzFF-c6_~TIVC=fsLglAn0Wb-7}a%7VNdfPJ4 zaAbq9%0M=c>d0mTG+`i{ppI+7_o0%wcWOEjy>d5A0OkEy%>H-l3vUwPM zYzc6s8^~rq*m7iZR7W-lm^iX|9;!LAxk^ViKZA-Ro9Cg=oD-=6Ae-|LRB|Fu>B#0Rw#qq?HaaIV2O@A}!`?>? zWYZLF4NjyQJ7ypoMMpNr!HpxEPmL2&{{)>0*)&5hgA?gzAe+mbkg}q!!HJwk*+4e2 z*gpf=u%k5wvUx~HHh5@_Bb(cGWYZVD4X%U%0|VJiM!kV-qOflUvN;D6E|3j^CxLAK zidG!i6reljN?M{1M>dQw;>adbKRLx7p&Z%Z>y$t?c{;MW0(BhOe1Nezvgv@aIkNc+ z)^KFA8RwTHo8?&G$mVYJ;mD=}YdEsO*%ioUI+`)|1d$D+q4;5{Z*d?weNu)_9NEl8 zr~fUo`3fT$$YucKC6EnUX&l)M!zMVgc}qV>bqfv<2Q?pJfrAo5YRQ5XQ{(C1H`x>^mnd+?Z>06z^*T_IEy;Ab7!ic?oj zAR}?=YLtHJDid@9{B(dqWuOppwFK~#lQ?yiLvEfOuJYq4QjUR!U@!v%T_o9a!Wqps zfunt93viqf!%s_P?Z9+KWr1?3P-dSXQ|E+J6*pZrCp?E!F0CSWD&#~r_m!k}et7gB zAf^J+zHOu@J-i^?+bR(gJ3B?;>{Kf&O?V<4Qpjg-goC7TGyGLVi@U-H?Ee8%FbV&5 zVCvZ>0^zVdKG?A=x_?z>Yts5c&`q-+3Req^LhGIjk1=ftJ{R`Un?4NpmMUOo;EyVP z3YTW`pcFt%y0sEXaRr}bNPghwviPM0ECIhDZ6fi@m*55X1)p)3$1fjXZ3FzW6EqyZ z?1F2@z%QTc_~j5ZVc?fi9lxvrdx2jbL~@8d9H)Y!*4Mp9hvf~-yu;!>Ce8D)W4@W^%_WUDwrL3)!T6nu&0 z2!-uS7zkxC>iMpXj!=wE8v~$xhfOpBD33#64p2VBdIO*gLfHT)N1$UIpmfs#N&-|j z1}M3py9_|N^S?R5Z3ZY_7$6Q%3b5M-KzW)h@VKv34wGFTcck*q0Fl<%2Lp(-!AP89 zK`vDQk-cbjNgy%?GvPqwEDiz(A|*Ny*@{6q5Sff|IK?tt-?X_IbsUJW-6#%3CS&YN z0ueaEJ<09%RlbTA9CpmWx#h3}=S;v3+^iIvHkU^oxZ^2M2R<_X0CoI{BizZ@F#~!G zgxm!5U~7m&kNdD44n4ltp~wB`$)U%`Sm4luk(?ZQ6fo$K+5mdgVmJ;x(ugZ3;_v)7 z>{lb4fqNGMXMBN8aGZhMn#37+f;+n?1&8+k14itD)I489&Xp5pc6169}1U*5l6@?xsj^$YV4-5A2S?-888C3(4#k#=5xX+EiQ>A&SOrEu|$HE zOal)cOiZ`Z5iKH4PQA2>l>QO*l1l?^BNH!$A%-{k4_d&-$hro%E1){|M2yI8-%*W*4paC@le?=U~H2sx6J7iMVF>{^p oqrld5kwgtUu?1(GX2_P|3=RBg+`P0tm<+kR`|}`w|G7vLpf@$f6;DfQquo zQtAi_h>lT~7_`6z5yb_E0OP2L5QG5-5phKYXXLxL-m9vYHhyRP<2z^mm_CPow{G2g z>(=sK|K6`ET>R)^*P&m4COn}vfjy*2yy zHjB_SdT&yMX4NOHg=SstGv1nWU%X*dcxv9bUX>`~Vxklhtrq>mBq=00NMypsfI@=H zgb`Ua$LFQxZIrcgyyG)eAI%u3tdUkMdhJ-{3!$Q*Ixb2W#z%KmD38c6b#;keI+-ZF zrE1~x(H?qaw{lLOXqa5q*wMfIrm=;e8XGIWWNeIu8FNjs`9=3Z<)urK%sXV{l6LV` z^s^Rb!x|{hNb%B=&gM^C+>v$~WS;5fB~rUD%1dh}nOoOak&*-Ut~6n?xwS$cSzx|h z4*TZqUN235$UH*O5`T$ozIrO83zTeYDBK=v(u-BL&B2r4O|4qdnh^?$DMS5WLG@+-jfHifbqgrC}7) z*95(E)fjs_vAig>e70Vr@JL#3pDBl#%_2OKP8+5S`!w!;{^w&d< zJnQa5Cq_HQM%UBRv+<6?EEjXv|O>%5amsY5HV5!5ECR8}4^yMv% z3t~{Up1t;wqo_<+vCgJ-k6kg9tLV<1u~WwL5@EmXJLfx>(^nJYQpE#=)@8)`MEmsD zj&U2>a3A(ys-6=UTEaCr!Fq=~{2XWKFk6c+--z4Pj+;{WMUuFMg<94#erf`*XPUTS z@l|(m4c&hv{;GIZVLbtlb#&sX_>V=t%x%P%@!89`8)5h1rWpx&Vq|IU@`PtIgaMR1 zmWk2#(5qeNqv1Z|-@XGs;e+N992KIbW=zU^1(&MgYP?stCp+lsqn5Ed6~H!CzF z(|JPL8lu(xs`+nrfr(GmuSCco)iCZA30 zc8EFS%o{ESl_9i2Z4$EtLZb@@BwlSP44BW_rHMU8auo%i#ljpHnwKv8Ik87_3=>-v$@U1aLMxnxgm`*2Yf6N{clc^p-84iE6sQWQsRgwp&1+1+vL{oD58Gxntjl zCZhgKKogxuW+b@MrrrbgjqFj|u7l2TFFI_;$R@{wC|7L*(PFY#vG5#bW_bfs-*qR5 zu@=a^93sY9GB72@z6Z=Ku~uj=*#(;TzrvT-+I%To94AR-Fq|A$4kp$@Y{Kq%g=`Im z+hy4xM5eWk8!nE6P+@JSWv~xTZ)W{;e7i9e_GB-EWUU=h<89DTy7)4W}!u#VUyNkaftDXm%3ohoWe5 zbV7NU*7{4}VIBT7=CKeK>v9P z1~93&V1No`v<=2bEdd|BU{?>znpm|R={!5+OWlZFyO+6o)gc&X87uhJZscfY*mqMO z)U8ksMVm~y>Pd|75Ho11PR7`)S)o9!#F{mV4=%0LMP`zo74}xXgcj?WvWq$g2aYJ` zAW(M|N5c9i1-su%&4RS8k1G?PaI2b(fu2x;kp2nv7p!@b_2s;J7y4{bu0Vi`Y88gw z%0gd;MR5g+@lHtf4(p2(p`nDaGoUe==t_&f2?Ory50PRWU92Sje?rL}=VRPgwMkro zkzU7f^gH6w_Dv^z2OK}5d}s*-%X9>>>36C@&ULIKuZ6?yl?&urI2`UZ60J^Rqydim zQ2ul=$b%j8Q9fsd@8J$F4&ixR^`jj=jC29*Cz_J+f(>|DS;+3JaL5eTCo_Z1@Om^e z$jVQsuI8SRYHU5sxJ)hTPO!E0G-pADU5$o}Y`s{) zsZJvcbHgb)LC{%jOUxAz$6pAAO8>3kY4UG`FU3CU@J)}dg^T?t>dOs0KiaJnlHT{?TxyeYE_$h7?6IJ&o!>jx!%R;#wA z^3t+Nrm+)CXP1)I3j%)nLP5}DCW9t~TqLTSt1N2rl;*4L?$e^E{_{>V{Zo(UWcm0n-E=C?S4%* zhRM@W2i*S@k!eY-yO}hAfv6&j%&L`kJ?%D2J-&C)(l6aRMPv;{=6~-tph)zl;2kX; zvB%^}|BU4XFla1oo2VX@ZG*jJ5J`C|uv>M_)Hv~uLhucN0ITLF z9U_F_V`+6CRT8oYNdfJTP(KnVmBRaU-+ZwM*i0;VT3uW(RUb`#QJp7M4BS`0sa_8V zM;7_L^XerLnY|Jnk4oAo^WHx%-Ak9dlg1=*KW3yfPAXZ-H8_DI>46q&NSnygm@av&J9w`#X%px_5I z()rheo)N-|mK^t#iC(k*d~wNhT}~E|l--|rn0 zVO2!DLxhULa7fyd0=sfZ5G&eCdg2G(B1vg6&S2IhZ;N(3KkWhXM%WiQX)Bxf43oxq z;Xy5ZrGh`x9FO<-jU&vX!I9lNr9*w$f*YVf<-aHmkdsBi-Yb|yB+bm8~fM?bic zY7uLQ*2VcR#PEUAemKs0{B?2+7$<-FCjWA;umYM6n9KhDiGr)6SC;#Gi=f)L4cXvd zF4r65KdwLTZ!K05VRUT2xBVUEeaarLRiF8f%T>wRfAlN=D$za#t0b{TVRSdsi|({( zLZhvKnZdM>SOM(UhQP1QI6Amnnw$un8n%HkWnh{Cg0M&R*^;y$JMcbJ;IpzMcZa

        #k*-jmWgl6&NU;;WqKn{=q;ig9m=)7OG#``@7P3XK|8;$oH4fcZfn~DxP?>7r&&ih@)s2cD0 z0kmS^{rW*f!TbFQd@N_-OXvO0gDvO%c4@pHqp@_}?+CehYM@;u5`LWbdjmSidA}zy zkk0#kgZlRP25xukgE6&sKsnYi9TMYApdDqM2@If(&IJAq^pjYDt>%fh3gO|wZU@)!H zJqBC^H@F`CIXBoH18{Dz6O4)A22aVFST%q?m5iNnsv+osbulA!RJ8*8$?3ulXvXQn zJS;3%c1DwrGsB7f3$e&)!^;?)(}q2;Sxy_S#TrfDRVmG^B6a)q)r#cp{-6AMxkD(3l(frrwbS0Kpg%MdehV~n{;)#nk(nY+UbFC zuMz02Q-_bDtW$>%qO4PgH!zY;9bUs0{xEfT0VC+tVIE{5s6)2MICVG!V{_{8Eu;>8 z@hjzvvR^~(MfVlVBDnL5*M*H$b0&S^NPOuU$O_`2e$s z1*cj;igSV~IY^lbW)Z2!N`D{7$K>AtUy6Sgd;_yMi42<=IO$u29ny%y%mT30iNmb% zq>CtLl~W>s~DZ9%Z$#`Wk%=eGNbc!nbCQ=%;-E_wvcZzBgWq8D#qUF zG9&MFnUQz8Je(e16KZLu<5mWKvU4n|!KpbL1H}?DFl-5%%;{la#Z}Lm>A{ZzbHr;D z?etUNP?j)b2Q9*B!K+H;E?CpbY8a>+AmAqv*C>1dUf{D>!V3==0KAxp7XdFG2NQr7 zyYW&VUW|u0I=oncwe{ddIY!pu1w#nhw&G?DUOWO#=(Q@Zuu28UZgxK?DvjKE!$* zUN}(J;l+#4R}L?%8oYQ5+#=ycH*gW~g8jTT2rrsoUo@;?SKq_XS|L`oVVe!YiwW3I z4lhDz#^D9-?HS+&+fw83;u8$c;YCYqmcxsMSi|8(U##Kq;z1lm4lnK{yWB2c369Yp zg%{n>hr)( zU9S3&VmW%~kYXOnI;3ELK!+5cW28R}Dc;9E>yTmqjH7@QY+-RoF$QCENKqvrMdMpcC++85APm16i6AJnNf`{nl~AP>iB&IA*;9yPLsc<)Q&Mgw536 zBsez8h#q|AhJXX^8NOu}JB9RQ%b?BiU!3rtixYsuXxly5Q!=o?q4?+%eS()IT438! zz)WN$G(34%&;mT&&?osc>urYRSTBVx&k{yb{ifm!5NZcvR?}Mw* zweF6^>@VFdPRmSFt~w9C-;{IXSWkbBn+> zKSM(T+nmEzIkrj00>?Jb;dpX#q2$S^=MwO^)88*T3PBIoa-XWL?$2*T>1WuPQ zILYzOzjYMrVaVNG1^pC=r`}O4M7jd;;7h+aiWLJHiKAHKwWC;J&NVP2@phi6MU@EL=_bl`K1WX}&}G}#W0w!4~wdBa3UHl1v_y0(?m~S0cNs;BOex8Tk2K7 zk;_(;Idbu1K|?N=phpJeG7lmOBEpq zR!0ce5OO(&ZXCJbaqd3IMRAgPO+euj#E~kzCKRT_i%KW@*NsSz!an_ zIZQc&^*YHi1Z5qjoWWk`Fr`R?De+Jp2~$>rPQaA6(7!>Lat926fGOW&Xbw{bXfS05 z_Lakw=@^H@l#v=t8IL*+Q`ja3hbe4Nph1|zwoy2fvH?em!;}M<4~HoWu!h4F9GgE3 zQ&yrAhbj1kj)W=5-2M(sxupS^vK~V;08>&>ufvqK*rpCss&H_0nDW$bVan2fAEq?N zNIFbGlKhXulq8Ix!xY?N6flLYG!9c9!=7-M@`DCb*cKp%DW6~%4pSJ>$qARX45p;k zgDFQa9ET|Z;>-#AI^cG3BqsRUz)b@8 z7tn!*@yBYY5%}W}*b4lCe^nBRKe9n5@JAacG>AVwC9mg(tI}~Zfa8yG7)-|>dC+9^ zHqvB%D5YtGAmn?@DH4RZ%w#5bXeea1nT~E6b{L47=HZeCi5i3<*)**%Jgor)GOE#k zvBrNQ*0?Q->|Pb5Ic- Date: Wed, 28 Feb 2018 16:01:40 -0800 Subject: [PATCH 287/349] extras/timekeeping -- provide POSIX-like interface (#578) --- extras/timekeeping/LICENSE | 30 + extras/timekeeping/README.timekeeping.md | 213 ++++ extras/timekeeping/component.mk | 8 + extras/timekeeping/tests/quick/Makefile | 6 + .../tests/quick/timekeeping_quick_tests.c | 364 +++++++ extras/timekeeping/tests/slew/Makefile | 6 + .../tests/slew/timekeeping_slew_tests.c | 199 ++++ extras/timekeeping/tests/sntp-run/Makefile | 20 + extras/timekeeping/tests/sntp-run/lwipopts.h | 996 ++++++++++++++++++ extras/timekeeping/tests/sntp-run/sntp_impl.c | 113 ++ extras/timekeeping/tests/sntp-run/sntp_impl.h | 42 + .../tests/sntp-run/timekeeping_sntp_run.c | 136 +++ extras/timekeeping/tests/wrap/Makefile | 6 + .../tests/wrap/timekeeping_wrap_test.c | 129 +++ extras/timekeeping/timekeeping.c | 323 ++++++ 15 files changed, 2591 insertions(+) create mode 100644 extras/timekeeping/LICENSE create mode 100644 extras/timekeeping/README.timekeeping.md create mode 100644 extras/timekeeping/component.mk create mode 100644 extras/timekeeping/tests/quick/Makefile create mode 100644 extras/timekeeping/tests/quick/timekeeping_quick_tests.c create mode 100644 extras/timekeeping/tests/slew/Makefile create mode 100644 extras/timekeeping/tests/slew/timekeeping_slew_tests.c create mode 100644 extras/timekeeping/tests/sntp-run/Makefile create mode 100644 extras/timekeeping/tests/sntp-run/lwipopts.h create mode 100644 extras/timekeeping/tests/sntp-run/sntp_impl.c create mode 100644 extras/timekeeping/tests/sntp-run/sntp_impl.h create mode 100644 extras/timekeeping/tests/sntp-run/timekeeping_sntp_run.c create mode 100644 extras/timekeeping/tests/wrap/Makefile create mode 100644 extras/timekeeping/tests/wrap/timekeeping_wrap_test.c create mode 100644 extras/timekeeping/timekeeping.c diff --git a/extras/timekeeping/LICENSE b/extras/timekeeping/LICENSE new file mode 100644 index 0000000..c924453 --- /dev/null +++ b/extras/timekeeping/LICENSE @@ -0,0 +1,30 @@ +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/extras/timekeeping/README.timekeeping.md b/extras/timekeeping/README.timekeeping.md new file mode 100644 index 0000000..77277e7 --- /dev/null +++ b/extras/timekeeping/README.timekeeping.md @@ -0,0 +1,213 @@ +# Overview +`timekeeping` provides an implementation of a clock that can provide monotonic time with microsecond resolution and supports many of the common time-of-day functions in a POSIX-like manner through `gettimeofday()`. It does not supply a clock *discipline*, such as NTP or SNTP, but does implement `settimeofday()` and `adjtime()` to allow implementation of clock discipline. + +The system clock is used to as the time reference. Time is available from boot or wake, referenced to the system clock's "zero" until `settimeofday()` is called. + +Timezone functionality is provided through `tzset()`, with the assumption that the `timekeeping` internal clock is set to UTC. + +**Important Note** + +This code does not alter OS-level behavior related to "ticks". For example, `vTaskDelay(const TickType_t xTicksToDelay)` will continue to result in a delay of `xTicksToDelay` *ticks,* which may not be the same length of time as indicated by calls to `gettimeofday()` or related functions. + +# Supported Functionality +## Standard C Library Calls +### Implemented or Updated + + #include + + int + gettimeofday(struct timeval *restrict tp, void *restrict tzp); + + int + settimeofday(const struct timeval *tp, const struct timezone *tzp); + + int + adjtime(const struct timeval *delta, struct timeval *olddelta); + +### Existing, Unmodified + + #include + + int + setenv(const char *name, const char *value, int overwrite); +
        + + #include + + void + tzset(void); + +Note that POSIX-style clock selection and timers have not been modified at this time. + +## Implementation-specific Details + +See [notes below](#managing-system-clock-wrap) on the need to call `gettimeofday()` or `adjtime()` at least once an hour to detect and compensate for clock "wrap". + +Note that, in keeping with current practice, calls to `settimeofday()` and `gettimeofday()` do not utilize incoming values in the timezone argument to modify the value referenced by the time argument. In this implementation, the time argument for `gettimeofday()` and `settimeofday()` is *always* relative to the internal clock's datum (assumed by this implementation to be UTC). + +With the prototypes in ``, it is either not possible (`const`) or unsafe (`void`) to modify the timezone argument. As a result, this implementation ignores any value passes in the timezone argument entirely. This implementation does not consider it an error to pass a non-null value for the timezone argument. + +It is suggested that time-critical functions be executed from high-priority threads to reduce the likelihood of timing errors that may occur if the thread is swapped out of execution during the calls. + +# Examples + +## Set Time of Day (UTC) + + struct timeval tv; + tv->tv_sec = 1518798027; /* 2018-02-16T16:20:27+00:00 */ + tv->tv_usec = 0; + settimeofday(&tv, NULL); +## Get Time of Day (UTC) + struct timeval tv; + gettimeofday(&tv, NULL); +## Slew Time + struct timeval tv; + tv->tv_sec = 0; + tv->tv_usec = -50 * 1000; /* -50 ms */ + adjtime(&tv, NULL); +## Set Local Time Zone to US Pacific + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + tzset(); +## Set Local Time Zone to UTC + setenv("TZ", "UTC0UTC0", 1); + tzset(); + + +# Timezone Management + +As newlib is typically compiled and supplied with for esp-open-rtos, the timezone can be managed through `setenv()` and `tzset()` using POSIX-style timezone strings. + +For example + + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + tzset(); + +will set United States' Pacific Time rules (as of 2018) for both standard and daylight savings time. As only two rules are implemented in newlib, calculations across changes in timezone rules, or localities that have more than two changes per year are not directly supported by newlib itself. + +Although the source code of `setenv()` appears to call `tzset()` when `TZ` is set, the combination of empirical experience and the POSIX description of `tzset()` +> However, portable applications should call `tzset()` explicitly before using `ctime_r()` or `localtime_r()` because setting timezone information is optional for those functions. + +strongly suggest an explicit call to `tzset()` after changing `TZ`. + +Note that `unsetenv("TZ")` will not "reset" all the internal variables related to timezone implementation. One approach to setting a zero-offset timezone is + + setenv("TZ", "UTC0UTC0"); + tzset(); + +While the timezone rules will still be populated, the global `_daylight` is set to `0` (`DST_NONE`) so that the rules should not be consulted by "compliant" code. Further, the offset in the two rules is set to `0` so that even if the rules are consulted by other code that does not respect the `_daylight` setting there is no offset applied. + +Direct manipulation of the timezone-related variables is not recommended due to multi-threading issues. + +# Implementation Approach +## Hardware Clock +The system clock is used as the underlying clock. A discussion of why the ESP8266 RTC is *not* used may be found in an [appendix](#why-not-the-rtc). Espressif specifies a 15-ppm or better crystal, so the system clock should be accurate to better than 1 ms per minute, or 1.3 seconds per day. For comparison, color-burst crystals are typically in the 30-100 ppm range. + +The system clock is a 32-bit value with one-microsecond resolution. As a result, it will "wrap" every hour and a few minutes. This 32-bit limitation is accommodated for in software. The system clock is allowed to free run; all compensation and adjustments are done in software. + +## Hardware Clock to Internal Clock Conversion + +The "internal clock" is the system's estimate of microseconds since the epoch. As the ESP8266 is a self-contained system and the only consumer of the clock, there is no implementation of a "wall-time CMOS" functionality. + +The value of the internal clock is referred to as `internal_clock` and `system_clock` refers to the current value that would be read using `sdk_system_get_time()`. + +
        +### Without `adjtime()` Slew in Process +When there is not a pending slew from a call to `adjtime()`, the internal clock is calculated as + + internal_clock = system_clock + clock_offset + +`clock_offset` is a 64-bit, signed integer in units of microseconds and should not overflow until well past the useful lifespan of the ESP8266. `clock_offset` includes the aggregated offset specified by calls to `settimeofday()`, `adjtime()`, as well as the overflow from the [system clock wrapping](#managing-system-clock-wrap). + +### `adjtime()` Implementation + +`adjtime()` is generally used after the initial clock set to slowly slew the time, rather than step it. The reference implementation of NTPv4 limits its slew rate requests to 500 us/s (500 ppm). This rate of slew should be sufficient for the crystal-controlled system clock of the ESP8266. + +The slew rate of the current implementation is fixed 500 us/s by the macro `ADJTIME_SLEW_PERIOD`, measured in units of us of elapsed time per us of slew. By defining it in this way, integer arithmetic can be used, providing significant speed advantages over floating-point calculations. + +When a call to `adjtime()` is made, the current time is captured in `slew_start_time`. The elapsed time in microseconds to slew the requested amount is calculated, added to the current `internal_clock`, and saved as `slew_complete_time`. Until `system_clock + clock_offset` passes `slew_complete_time` there is slew in process and the internal clock is calculated as + + internal_clock = (system_clock + clock_offset) + + ( (system_clock + clock_offset) + - slew_start_time ) + / SIGNED_ADJTIME_SLEW_PERIOD + +where `SIGNED_ADJTIME_SLEW_PERIOD` adopts the sign of the requested `delta`. Use of the un-slewed clock is intentional as it simplifies calculations. + +Once the slew is complete, the amount of slew is added to `clock_offset` and calculation of `internal_clock` resumes as described in the [previous section](#without-adjtime-slew-in-process). See [*Managing System-clock Wrap*](#managing-system-clock-wrap) for how and when this adjustment is made. + +Note that `settimeofday()` is implemented as a "hard set" of the internal clock and will abort any in-progress clock slew. + +Any remaining slew from prior calls to `adjtime()` can be returned by the call in its second argument, *but are overridden by the new value, not added to them.* The remaining slew is calculated as + + olddelta_in_us = (slew_complete_time - (system_clock + clock_offset)) + / SIGNED_ADJTIME_SLEW_PERIOD + +and returned in `struct timeval *olddelta` in normalized form. `adjtime()` can be called with a NULL `delta` and will not modify the slew in that case. + +Note that the magnitude of `delta` cannot exceed `ADJTIME_MAX_SECS_ALLOWED`, presently defined as 2000 (seconds). This is significantly greater than the 128-ms limit within the NTPv4 reference implementation, small enough to prevent overflow of the 32-bit `adjtime_delta` internal, and hopefully larger than any rational use of `adjtime()`. + + +### Managing System-clock Wrap +As previously discussed, the system clock wraps in a little bit more than hour (232 microseconds, ~ 71 minutes). This needs to be detected and accounted for prior to any call to obtain internal time, as well as before it wraps a second time. the internal `_check_system_clock()` manages this, as well as the incorporation of completed slew into `clock_offset`. It is called within the implementations of `settimeofday()`, `adjtime()`, and `gettimeofday()`. + +`_check_system_clock()` operates by recording the last value of the system clock and comparing it to the current value. If the current value is less than the last value, then it is assumed that a single wrap has occurred and the value of `clock_offset` is increased by 232. It also checks to see if there is a completed clock slew. If so, adds the (signed) value of the slew in microseconds to `clock_offset` and resets the internal state variables associated with slew. + +In many situations either or both `adjtime()` or `getttimeofday()` are called at least once an hour. If this is not the case, `gettimeofday(NULL, NULL)` should be called once an hour, using a repeating timer or other appropriate method. + + +# License + +All files in this directory + + Copyright (c) 2018, Jeff Kletsky + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the copyright holder nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Some files may have additional copyright and/or licenses. Consult those files for details. At a minimum, this includes: + +* `lwipopts.h` -- Copyright (c) 2001-2003 Swedish Institute of Computer Science. + +# Appendix + +## Why Not the RTC? + +While the ESP8266 RTC seems a plausible choice for time keeping, it has several chip-level implementation details that make it less desirable than the system clock. + +One issue is resolution. The RTC has only a nominal 6-ms resolution, compared to the 1-ms resolution of the system clock. + +A second issue is stability. It is believed that the ESP8266 RTC is a simple RC oscillator. As such, it is likely to be highly temperature sensitive. + +Accuracy is another concern. While the SDK can provide an estimate of the RTC's period, it is likely measured with respect to the system clock and, as such, can be no better than the accuracy of the system clock. Further, it is a very noisy estimate, with values showing short-term standard deviation in the 500-1000 ppm range, compared to the system clock crystal which is spec-ed by Espressif to be 15 ppm or better. As the system clock crystal is likely used to derive the RF, units that have been FCC certified are likely to meet this specification or better (10 ppm is a common value). + +Finally, according to the Espressif SDK documentation, the RTC is reset under many situations that one would have hoped a "true" RTC would maintain time keeping. It notes that "CHIP_EN (including the deep-sleep wakeup)" results in "RTC memory is random value, RTC timer starts from zero". + +While the RTC's longer period means that counter wrap occurs less frequently (~7 hours for the RTC, compared to a little over an hour for the system clock), this is not deemed a significant advantage. + +As a result, the system clock (or an external RTC) is preferred over the ESP8266 internal RTC. + +Normal memory is used for all state variables, rather than the internal RTC memory. If clock-state information needs to be preserved during sleep, it can be obtained through `gettimeofday(&tv, NULL)` and, if desired, any outstanding slew obtained through `adjtime(NULL, &olddelta)`. No accessors to internal `timekeeping` data are believed required. \ No newline at end of file diff --git a/extras/timekeeping/component.mk b/extras/timekeeping/component.mk new file mode 100644 index 0000000..512c3cc --- /dev/null +++ b/extras/timekeeping/component.mk @@ -0,0 +1,8 @@ +# Component makefile for extras/timekeeping + +INC_DIRS += $(timekeeping_ROOT) + +# args for passing into compile rule generation +timekeeping_SRC_DIR = $(timekeeping_ROOT) + +$(eval $(call component_compile_rules,timekeeping)) diff --git a/extras/timekeeping/tests/quick/Makefile b/extras/timekeeping/tests/quick/Makefile new file mode 100644 index 0000000..6aaf49f --- /dev/null +++ b/extras/timekeeping/tests/quick/Makefile @@ -0,0 +1,6 @@ + +PROGRAM=timekeeping_quick_tests + +EXTRA_COMPONENTS = extras/timekeeping + +include ../../../../common.mk diff --git a/extras/timekeeping/tests/quick/timekeeping_quick_tests.c b/extras/timekeeping/tests/quick/timekeeping_quick_tests.c new file mode 100644 index 0000000..4b4b1fe --- /dev/null +++ b/extras/timekeeping/tests/quick/timekeeping_quick_tests.c @@ -0,0 +1,364 @@ +/* + * Tests of functionality within extras/timekeeping + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include + +#include +#include + +/* espressif/esp_system.h uses "bool" but fails to #include */ +#include +#include +#include +#include + +/* Not defined in espressif/esp_wifi.h */ +extern bool +sdk_wifi_set_opmode_current(uint8_t opmode); + +/* For sdk_system_restart_in_nmi() */ +#include + +#include +#include + + +#define BLUE_LED 2 +#define LED_ON 0 +#define LED_OFF 1 + +#define WAIT_FOR_UART_SECS 5 /* 2 might be OK */ + +#define TV2LD(TV) ((long double)TV.tv_sec + (long double)TV.tv_usec * 1.e-6) + +void +dump_tzglobals(void) { + + /* + * Defined in newlib-xtensa/newlib/libc/include/time.h + * implemented in newlib-xtensa/newlib/libc/time/tzvars.c + */ + + printf("_timezone = %li\n", _timezone); + printf("_daylight = %i\n", _daylight); + printf("_tzname[0] = %s\n", _tzname[0]); + printf("_tzname[1] = %s\n", _tzname[1]); +} + +void +dump_tzinfo(void) { + + __tzinfo_type *tzinfo; + __tzrule_type tzrule; + + tzinfo = __gettzinfo(); + printf("{%i, %i,\n", tzinfo->__tznorth, tzinfo->__tzyear); + tzrule = tzinfo->__tzrule[0]; + printf("{%c, %i, %i, %i, %i, %li, %li},\n", + tzrule.ch, tzrule.m, tzrule.n, tzrule.d, tzrule.s, (long)tzrule.change, (long)tzrule.offset); + tzrule = tzinfo->__tzrule[1]; + printf("{%c, %i, %i, %i, %i, %li, %li}}\n", + tzrule.ch, tzrule.m, tzrule.n, tzrule.d, tzrule.s, (long)tzrule.change, (long)tzrule.offset); +} + +void +dump_both(void) { + dump_tzglobals(); + dump_tzinfo(); +} + + +void +testTask(void *pvParameters) +{ + char *env_value; + struct timeval tv; + time_t time_secs; + long num_runs; + long idx; + TickType_t base_ticks; + TickType_t increment_ticks; + int seconds_per_report; + int retval; + uint32_t t0; + uint32_t t1; + + /* These variables for calculation-speed tests */ + int64_t internal_clock; + int64_t system_plus_offset; + int64_t slew_start_time; + int64_t seemingly_useful = 0; +#define ADJTIME_SLEW_PERIOD 2000 +#define ADJTIME_SLEW_RATE 500.e-6 + + + gpio_enable(BLUE_LED, GPIO_OUTPUT); + gpio_write(BLUE_LED, LED_OFF); + + vTaskDelay(WAIT_FOR_UART_SECS * 1000 / portTICK_PERIOD_MS); + + gpio_write(BLUE_LED, LED_ON); + + printf("\n"); + printf("===> setenv/getenv test; expect TEST ='test value'\n"); + + setenv("TEST", "test value", 1); + env_value = getenv("TEST"); + printf("TEST = '%s'\n", env_value); + + printf("\n"); + printf("===> Dump tzinfo before change:\n"); + dump_both(); + + + /* "Full" POSIX TZ spec in 2018 is TZ=PST8PDT7,M3.1.0/02:00:00,M11.1.0/02:00:00 */ + + printf("\n"); + printf("===> Change TZ to PST8PDT7,M3.1.0,M11.1.0\n"); + + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + dump_both(); + + printf("\n"); + printf("===> Call tzset() just in case that's the reason it's not working\n"); + tzset(); + dump_both(); + + + printf("\n"); + printf("===> unsetenv TZ and confirm\n"); + unsetenv("TZ"); + env_value = getenv("TZ"); + if (env_value) { + printf("TZ = %s\n", env_value); + } else { + printf("TZ not found (expected)\n"); + } + tzset(); + dump_both(); + printf("##### NOTE: tzset() only changes the globals if TZ is unset\n"); + + printf("\n"); + printf("===> Change TZ to PST8PDT7,M3.1.0,M11.1.0\n"); + + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + tzset(); + dump_both(); + + printf("\n"); + printf("===> Change TZ to UTC (not terribly useful without zoneinfo\n"); + + setenv("TZ", "UTC", 1); + tzset(); + dump_both(); + printf("##### NOTE: just changes name, not any values; 'UTC0UTC0' better\n"); + + + printf("\n"); + printf("===> Change TZ to UTC0\n"); + + setenv("TZ", "UTC0", 1); + tzset(); + dump_both(); + + printf("\n"); + printf("===> Change TZ to UTC0UTC0\n"); + + setenv("TZ", "UTC0UTC0", 1); + tzset(); + dump_both(); + + printf("\n"); + printf("===> Change TZ to UTC0UTC0,0,0\n"); + + setenv("TZ", "UTC0UTC0,0,0", 1); + tzset(); + dump_both(); + + printf("\n"); + printf("===> Change TZ to UTC0UTC0,J0/0,J0/0\n"); + + setenv("TZ", "UTC0UTC0,J0/0,J0/0", 1); + tzset(); + dump_both(); + + + printf("\n"); + printf("===> Change TZ to PST8PDT7,M3.1.0,M11.1.0\n"); + printf("===> PST: 1518754387 Thursday, February 15, 2018 8:13:07 PM GMT-08:00\n"); + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + tzset(); + time_secs = 1518754387; + printf("%s", ctime(&time_secs)); + printf("===> PDT: 1526469187 Wednesday, May 16, 2018 4:13:07 AM GMT-07:00\n"); + time_secs = 1526469187; + printf("%s", ctime(&time_secs)); + + printf("\n"); + printf("===> back-to-back printf of sdk_system_get_time() then look at gettimeofday()\n"); + printf("System clock: %0.6Lf seconds\n", ((long double)sdk_system_get_time())*1e-6); + printf("System clock: %0.6Lf seconds\n", ((long double)sdk_system_get_time())*1e-6); + gettimeofday(&tv, NULL); + printf("now: %0.6Lf seconds\n", TV2LD(tv)); + + setenv("TZ", "UTC0UTC0,0,0", 1); + tzset(); + printf("UTC: %s", ctime(&tv.tv_sec)); /* ctime() includes \n */ + + setenv("TZ", "PST8PDT7,M3.1.0,M11.1.0", 1); + tzset(); + printf("PxT: %s", ctime(&tv.tv_sec)); + + printf("\n"); + printf("===> settimeofday to 1518768000, Friday, February 16, 2018 12:00:00 AM GMT-08:00\n"); + tv.tv_sec = 1518768000; + tv.tv_usec = 0; + settimeofday(&tv, NULL); + tv.tv_sec = 0; + tv.tv_usec = 0; + gettimeofday(&tv, NULL); + printf("PST: %s", ctime(&tv.tv_sec)); + + + num_runs = 1e3; + + printf("\n===== Calculation speed tests, %ld runs each, results in us =====\n", num_runs); + + system_plus_offset = 1518768000; + slew_start_time = system_plus_offset; + + t0 = sdk_system_get_time(); + for (idx = 0; idx < num_runs; idx++) { + internal_clock = + (int64_t)(system_plus_offset + + (system_plus_offset + - slew_start_time) + / ADJTIME_SLEW_PERIOD); + seemingly_useful = seemingly_useful + internal_clock; + system_plus_offset++; /* It's hard to keep this loop from being optimized out! */ + } + t1 = sdk_system_get_time(); + if (seemingly_useful != 0) + printf("internal clock with / ADJTIME_SLEW_PERIOD: %ld for %ld runs\n", (long)t1 - (long)t0, idx); + + t0 = sdk_system_get_time(); + for (idx = 0; idx < num_runs; idx++) { + internal_clock = + (int64_t)(system_plus_offset + + (double)(system_plus_offset + - slew_start_time) + * ADJTIME_SLEW_RATE); + seemingly_useful = seemingly_useful + internal_clock; + system_plus_offset++; + } + t1 = sdk_system_get_time(); + if (seemingly_useful != 0) + printf("internal clock with (double) * ADJTIME_SLEW_RATE: %ld for %ld runs\n", (long)t1 - (long)t0, idx); + + + t0 = sdk_system_get_time(); + for (idx = 0; idx < num_runs; idx++) { + internal_clock = + (int64_t)(system_plus_offset + + (int64_t)((double)(system_plus_offset + - slew_start_time) + * ADJTIME_SLEW_RATE)); + seemingly_useful = seemingly_useful + internal_clock; + system_plus_offset++; + } + t1 = sdk_system_get_time(); + if (seemingly_useful != 0) + printf("internal clock with (unint64_t) and (double) * ADJTIME_SLEW_RATE: %ld for %ld runs\n", (long)t1 - (long)t0, idx); + + printf("\n===== time-display run =====\n"); + + num_runs = 10; + + seconds_per_report = 1; + + increment_ticks = (seconds_per_report * 1000) / portTICK_PERIOD_MS; + + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + printf("%20.6Lf at %ld ticks\n", TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + printf("\n===== other tests =====\n"); + printf("===> confirm time() function works\n"); + printf("%li from time(NULL)\n", (long)time(NULL)); + printf("%li and %li from time(&time_secs)\n", (long)time(&time_secs), (long)time_secs); + + printf("\n===> Confirm that too-large slew is rejected\n"); + + tv.tv_sec = 10000; + tv.tv_usec = 0; + retval = adjtime(&tv, NULL); + if (retval == 0) { + printf("adjtime with +10000 s FAILED TO FAIL\n"); + } else { + printf("adjtime with +10000 s properly rejected the change, errno: %d\n", errno); + } + tv.tv_sec = -10000; + tv.tv_usec = 0; + retval = adjtime(&tv, NULL); + if (retval == 0) { + printf("adjtime with -10000 s FAILED TO FAIL\n"); + } else { + printf("adjtime with -10000 s properly rejected the change, errno: %d\n", errno); + } + + + printf("\n"); + printf("All done; reboot imminent\n"); + + gpio_write(BLUE_LED, LED_OFF); + + sdk_system_restart_in_nmi(); +} + + + +void +user_init(void) +{ + uart_set_baud(0, 115200); + sdk_wifi_set_opmode_current(NULL_MODE); /* Temporarily disable */ + xTaskCreate(testTask, "testTask", 512, NULL, 2, NULL); +} diff --git a/extras/timekeeping/tests/slew/Makefile b/extras/timekeeping/tests/slew/Makefile new file mode 100644 index 0000000..9c6aafe --- /dev/null +++ b/extras/timekeeping/tests/slew/Makefile @@ -0,0 +1,6 @@ + +PROGRAM=timekeeping_slew_tests + +EXTRA_COMPONENTS = extras/timekeeping + +include ../../../../common.mk diff --git a/extras/timekeeping/tests/slew/timekeeping_slew_tests.c b/extras/timekeeping/tests/slew/timekeeping_slew_tests.c new file mode 100644 index 0000000..5cb6ed8 --- /dev/null +++ b/extras/timekeeping/tests/slew/timekeeping_slew_tests.c @@ -0,0 +1,199 @@ +/* + * Tests of functionality within extras/timekeeping + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include + +#include +#include + +/* espressif/esp_system.h uses "bool" but fails to #include */ +#include +#include +#include +#include + +/* Not defined in espressif/esp_wifi.h */ +extern bool +sdk_wifi_set_opmode_current(uint8_t opmode); + +/* For sdk_system_restart_in_nmi() */ +#include + +#include +#include + + +#define BLUE_LED 2 +#define LED_ON 0 +#define LED_OFF 1 + +#define WAIT_FOR_UART_SECS 5 /* 2 might be OK */ + +#define TV2LD(TV) ((long double)TV.tv_sec + (long double)TV.tv_usec * 1.e-6) + +void +testTask(void *pvParameters) +{ + struct timeval tv; + long num_runs; + long idx; + TickType_t base_ticks; + TickType_t increment_ticks; + int seconds_per_report; + struct timeval delta; + struct timeval olddelta; + + + gpio_enable(BLUE_LED, GPIO_OUTPUT); + gpio_write(BLUE_LED, LED_OFF); + + vTaskDelay(WAIT_FOR_UART_SECS * 1000 / portTICK_PERIOD_MS); + + gpio_write(BLUE_LED, LED_ON); + + printf("\n"); + printf("settimeofday to 1000000000\n"); + tv.tv_sec = 1000000000; + tv.tv_usec = 0; + settimeofday(&tv, NULL); + + + printf("\n===== time-display runs =====\n"); + + num_runs = 10; + seconds_per_report = 1; + + increment_ticks = (seconds_per_report * 1000) / portTICK_PERIOD_MS; + + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + printf("%20.6Lf at %ld ticks\n", TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + + num_runs = 15; + seconds_per_report = 1; + increment_ticks = (seconds_per_report * 1000) / portTICK_PERIOD_MS; + + delta.tv_sec = 0; + delta.tv_usec = 5000; /* 5 ms -- should take 10 seconds */ + + printf("\n"); + printf("with +5 ms slew requested\n"); + adjtime(&delta, NULL); + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + adjtime(NULL, &olddelta); + printf("%20.6Lf at %ld ticks; %0.6Lf olddelta\n", + TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks), TV2LD(olddelta)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + delta.tv_sec = 0; + delta.tv_usec = -5000; /* -5 ms -- should take 10 seconds */ + + printf("\n"); + printf("with -5 ms slew requested\n"); + adjtime(&delta, NULL); + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + adjtime(NULL, &olddelta); + printf("%20.6Lf at %ld ticks; %0.6Lf olddelta\n", + TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks), TV2LD(olddelta)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + num_runs = 15; + seconds_per_report = 20; + increment_ticks = (seconds_per_report * 1000) / portTICK_PERIOD_MS; + + delta.tv_sec = 0; + delta.tv_usec = 130 * 1000; /* 130 ms -- 128 ms needed for NTP */ + + printf("\n"); + printf("with 130 ms slew requested (20-s reporting period)\n"); + adjtime(&delta, NULL); + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + adjtime(NULL, &olddelta); + printf("%20.6Lf at %ld ticks; %0.6Lf olddelta\n", + TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks), TV2LD(olddelta)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + delta.tv_sec = 0; + delta.tv_usec = -130 * 1000; /* -130 ms -- 128 ms needed for NTP */ + + printf("\n"); + printf("with -130 ms slew requested\n"); + adjtime(&delta, NULL); + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + adjtime(NULL, &olddelta); + printf("%20.6Lf at %ld ticks; %0.6Lf olddelta\n", + TV2LD(tv), (long)(xTaskGetTickCount() - base_ticks), TV2LD(olddelta)); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + printf("\n"); + printf("All done; reboot imminent\n"); + + gpio_write(BLUE_LED, LED_OFF); + + sdk_system_restart_in_nmi(); +} + + + +void +user_init(void) +{ + uart_set_baud(0, 115200); + sdk_wifi_set_opmode_current(NULL_MODE); /* Temporarily disable */ + xTaskCreate(testTask, "testTask", 512, NULL, 2, NULL); +} diff --git a/extras/timekeeping/tests/sntp-run/Makefile b/extras/timekeeping/tests/sntp-run/Makefile new file mode 100644 index 0000000..6098b35 --- /dev/null +++ b/extras/timekeeping/tests/sntp-run/Makefile @@ -0,0 +1,20 @@ + +PROGRAM=timekeeping_sntp_run + +# Test the use of extras/timekeeping with LWIP SNTP + +EXTRA_COMPONENTS = extras/timekeeping + +# Can work for broadcast or poll +# (assuming you have NTP broadcast already configured on the network) + +# Broadcast / poll and hosts for poll set in timekeeping_sntp_run.c +# SNTP parameters set at the top of lwipopts.h + + +# To set then only log time difference (rather than correct the clock) +# define TIMEKEEPING_SET_AND_MEASURE_ONLY + +# PROGRAM_CFLAGS = $(CFLAGS) -DTIMEKEEPING_SET_AND_MEASURE_ONLY + +include ../../../../common.mk diff --git a/extras/timekeeping/tests/sntp-run/lwipopts.h b/extras/timekeeping/tests/sntp-run/lwipopts.h new file mode 100644 index 0000000..24c718e --- /dev/null +++ b/extras/timekeeping/tests/sntp-run/lwipopts.h @@ -0,0 +1,996 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Simon Goldschmidt + * + */ +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + + + + +/* + * Local settings and linkage for use of LWIP SNTP + * Additions to original: esp-open-rtos/lwip/include/lwipopts.h + */ + +/* #define SNTP_DEBUG LWIP_DBG_ON */ + +#define SNTP_SERVER_DNS 1 + +/* + * 0 -- off + * 1 -- enables address/port check + * 2 -- adds timestamp check against that sent + * Rest not yet implemented as of 2018-02-08; upstream commit 010b0210 + * 3 -- will add field-level checks + * 4 -- will add root delay/dispersion tests + */ +#define SNTP_CHECK_RESPONSE 2 + +#define SNTP_COMP_ROUNDTRIP 1 + +#define SNTP_STARTUP_DELAY 0 + +/* 60 seconds is lower threshold by NTPv4 spec */ +#define SNTP_UPDATE_DELAY (64 * 1000) + +/* + * Getter has to be a inline #define + * as it modifies arguments in place + * u32_t in lwip/apps/sntp.c + * lwip/include/arch/cc.h:typedef uint32_t u32_t; + */ +#include +#define SNTP_GET_SYSTEM_TIME(S, F) do { \ + struct timeval _tv; \ + gettimeofday(&_tv, NULL); \ + S = (uint32_t)_tv.tv_sec; \ + F = (uint32_t)_tv.tv_usec; \ +} while (0) + +#define SNTP_SET_SYSTEM_TIME_US(S, F) sntp_impl_set_system_time_us(S, F) + +#include "sntp_impl.h" + +/* + * END local settings and linkage for SNTP + */ + + + + +#define ESP_OPEN_RTOS 1 + +/* See tcp.c tcp_alloc(). */ +#ifndef ESP_TIMEWAIT_THRESHOLD +#define ESP_TIMEWAIT_THRESHOLD 10000 +#endif + +/** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided + * by your system, set this to 0 and include in cc.h */ +#define LWIP_TIMEVAL_PRIVATE 0 + +/* + ----------------------------------------------- + ---------- Platform specific locking ---------- + ----------------------------------------------- +*/ +/** + * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain + * critical regions during buffer allocation, deallocation and memory + * allocation and deallocation. + */ +#define SYS_LIGHTWEIGHT_PROT 1 + +/** + * MEMCPY: override this if you have a faster implementation at hand than the + * one included in your C library + */ +#define MEMCPY(dst,src,len) memcpy(dst,src,len) + +/** + * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a + * call to memcpy() if the length is known at compile time and is small. + */ +#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +/* + ------------------------------------ + ----------- Core locking ----------- + ------------------------------------ +*/ + +/** + * LWIP_TCPIP_CORE_LOCKING + * Creates a global mutex that is held during TCPIP thread operations. + * Can be locked by client code to perform lwIP operations without changing + * into TCPIP thread using callbacks. See LOCK_TCPIP_CORE() and + * UNLOCK_TCPIP_CORE(). + * Your system should provide mutexes supporting priority inversion to use this. + */ +#ifndef LWIP_TCPIP_CORE_LOCKING +#define LWIP_TCPIP_CORE_LOCKING 1 +#endif + +/** + * LWIP_TCPIP_CORE_LOCKING_INPUT: when LWIP_TCPIP_CORE_LOCKING is enabled, + * this lets tcpip_input() grab the mutex for input packets as well, + * instead of allocating a message and passing it to tcpip_thread. + * + * ATTENTION: this does not work when tcpip_input() is called from + * interrupt context! + */ +#ifndef LWIP_TCPIP_CORE_LOCKING_INPUT +#define LWIP_TCPIP_CORE_LOCKING_INPUT 0 +#endif + +/** + * Macro/function to check whether lwIP's threading/locking + * requirements are satisfied during current function call. + * This macro usually calls a function that is implemented in the OS-dependent + * sys layer and performs the following checks: + * - Not in ISR + * - If @ref LWIP_TCPIP_CORE_LOCKING = 1: TCPIP core lock is held + * - If @ref LWIP_TCPIP_CORE_LOCKING = 0: function is called from TCPIP thread + * @see @ref multithreading + */ +#ifndef LWIP_ASSERT_CORE_LOCKED +void sys_check_core_locking(void); +#define LWIP_ASSERT_CORE_LOCKED() sys_check_core_locking() +#endif + +/** + * Called as first thing in the lwIP TCPIP thread. Can be used in conjunction + * with @ref LWIP_ASSERT_CORE_LOCKED to check core locking. + * @see @ref multithreading + */ +#ifndef LWIP_MARK_TCPIP_THREAD +void sys_mark_tcpip_thread(void); +#define LWIP_MARK_TCPIP_THREAD() sys_mark_tcpip_thread() +#endif + +#if LWIP_TCPIP_CORE_LOCKING + +#ifndef LOCK_TCPIP_CORE +void sys_lock_tcpip_core(void); +#define LOCK_TCPIP_CORE() sys_lock_tcpip_core() +#endif + +#ifndef UNLOCK_TCPIP_CORE +void sys_unlock_tcpip_core(void); +#define UNLOCK_TCPIP_CORE() sys_unlock_tcpip_core() +#endif + +#else +#define LOCK_TCPIP_CORE() +#define UNLOCK_TCPIP_CORE() +#endif /* LWIP_TCPIP_CORE_LOCKING */ + +/* + ------------------------------------ + ---------- Memory options ---------- + ------------------------------------ +*/ +/** + * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library + * instead of the lwip internal allocator. Can save code size if you + * already use it. + */ +#define MEM_LIBC_MALLOC 1 + +/** + * MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator. + * Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution + * speed (heap alloc can be much slower than pool alloc) and usage from interrupts + * (especially if your netif driver allocates PBUF_POOL pbufs for received frames + * from interrupt)! + * ATTENTION: Currently, this uses the heap for ALL pools (also for private pools, + * not only for internal pools defined in memp_std.h)! + */ +#define MEMP_MEM_MALLOC 1 + +/** + * MEM_ALIGNMENT: should be set to the alignment of the CPU + * 4 byte alignment -> \#define MEM_ALIGNMENT 4 + * 2 byte alignment -> \#define MEM_ALIGNMENT 2 + */ +#define MEM_ALIGNMENT 4 + +/** + * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable + * amount of bytes before and after each memp element in every pool and fills + * it with a prominent default value. + * MEMP_OVERFLOW_CHECK == 0 no checking + * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed + * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time + * memp_malloc() or memp_free() is called (useful but slow!) + */ +#ifndef MEMP_OVERFLOW_CHECK +#define MEMP_OVERFLOW_CHECK 0 +#endif + +/* + ------------------------------------------------ + ---------- Internal Memory Pool Sizes ---------- + ------------------------------------------------ +*/ + +/** + * MEMP_NUM_NETCONN: the number of struct netconns. + * (only needed if you use the sequential API, like api_lib.c) + * This also sets the number of lwip socket descriptors. + */ +#ifndef MEMP_NUM_NETCONN +#define MEMP_NUM_NETCONN 12 +#endif + +/* + -------------------------------- + ---------- ARP options ------- + -------------------------------- +*/ + +/** + * LWIP_ARP==1: Enable ARP functionality. + */ +#ifndef LWIP_ARP +#define LWIP_ARP 1 +#endif + +/** + * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address + * resolution. By default, only the most recent packet is queued per IP address. + * This is sufficient for most protocols and mainly reduces TCP connection + * startup time. Set this to 1 if you know your application sends more than one + * packet in a row to an IP address that is not in the ARP cache. + */ +#ifndef ARP_QUEUEING +#define ARP_QUEUEING 1 +#endif + +/* + -------------------------------- + ---------- IP options ---------- + -------------------------------- +*/ +/** + * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that + * this option does not affect outgoing packet sizes, which can be controlled + * via IP_FRAG. + */ +#ifndef IP_REASSEMBLY +#define IP_REASSEMBLY 1 +#endif + +/** + * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note + * that this option does not affect incoming packet sizes, which can be + * controlled via IP_REASSEMBLY. + */ +#ifndef IP_FRAG +#define IP_FRAG 1 +#endif + +/** + * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) + * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived + * in this time, the whole packet is discarded. + */ +#ifndef IP_REASS_MAXAGE +#define IP_REASS_MAXAGE 3 +#endif + +/** + * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. + * Since the received pbufs are enqueued, be sure to configure + * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive + * packets even if the maximum amount of fragments is enqueued for reassembly! + */ +#ifndef IP_REASS_MAX_PBUFS +#define IP_REASS_MAX_PBUFS 2 +#endif + +/* + ---------------------------------- + ---------- ICMP options ---------- + ---------------------------------- +*/ + +/* + --------------------------------- + ---------- RAW options ---------- + --------------------------------- +*/ + +/* + ---------------------------------- + ---------- DHCP options ---------- + ---------------------------------- +*/ +/** + * LWIP_DHCP==1: Enable DHCP module. + */ +#ifndef LWIP_DHCP +#define LWIP_DHCP 1 +#endif + +/** + * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. + */ +#ifndef DHCP_DOES_ARP_CHECK +#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) +#endif + +#define LWIP_DHCP_BOOTP_FILE 0 + +/* + ------------------------------------ + ---------- AUTOIP options ---------- + ------------------------------------ +*/ +/* + ---------------------------------- + ----- SNMP MIB2 support ----- + ---------------------------------- +*/ +/* + ---------------------------------- + ----- Multicast/IGMP options ----- + ---------------------------------- +*/ +/** + * LWIP_IGMP==1: Turn on IGMP module. + */ +#ifndef LWIP_IGMP +#define LWIP_IGMP 1 +#endif + +/* + ---------------------------------- + ---------- DNS options ----------- + ---------------------------------- +*/ +/** + * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS + * transport. + */ +#ifndef LWIP_DNS +#define LWIP_DNS 1 +#endif + +/** DNS maximum number of entries to maintain locally. */ +#ifndef DNS_TABLE_SIZE +#define DNS_TABLE_SIZE 1 +#endif + +/** DNS maximum host name length supported in the name table. */ +#ifndef DNS_MAX_NAME_LENGTH +#define DNS_MAX_NAME_LENGTH 128 +#endif + +/** Set this to 1 to enable querying ".local" names via mDNS + * using a One-Shot Multicast DNS Query */ +#ifndef LWIP_DNS_SUPPORT_MDNS_QUERIES +#define LWIP_DNS_SUPPORT_MDNS_QUERIES 1 +#endif + +/* + --------------------------------- + ---------- UDP options ---------- + --------------------------------- +*/ +/* + --------------------------------- + ---------- TCP options ---------- + --------------------------------- +*/ +/** + * TCP_MAXRTX: Maximum number of retransmissions of data segments. + */ +#ifndef TCP_MAXRTX +#define TCP_MAXRTX 6 +#endif + +/** + * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. + */ +#ifndef TCP_SYNMAXRTX +#define TCP_SYNMAXRTX 3 +#endif + +/** + * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. + * Define to 0 if your device is low on memory. + */ +#ifndef TCP_QUEUE_OOSEQ +#define TCP_QUEUE_OOSEQ 1 +#endif + +/** + * LWIP_TCP_SACK_OUT==1: TCP will support sending selective acknowledgements (SACKs). + */ +#ifndef LWIP_TCP_SACK_OUT +#define LWIP_TCP_SACK_OUT 1 +#endif + +/** + * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default, + * you might want to increase this.) + * For the receive side, this MSS is advertised to the remote side + * when opening a connection. For the transmit size, this MSS sets + * an upper limit on the MSS advertised by the remote host. + */ +#ifndef TCP_MSS +#define TCP_MSS 1460 +#endif + +/** + * TCP_OOSEQ_MAX_BYTES: The default maximum number of bytes queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. + */ +#ifndef TCP_OOSEQ_MAX_BYTES +#define TCP_OOSEQ_MAX_BYTES (2 * TCP_MSS) +#endif + +/** + * TCP_OOSEQ_BYTES_LIMIT(ooseq): Return the maximum number of bytes to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1. + */ +#if !defined TCP_OOSEQ_BYTES_LIMIT +#define TCP_OOSEQ_BYTES_LIMIT(ooseq) ooseq_bytes_limit(ooseq) +#endif + +/** + * TCP_OOSEQ_MAX_PBUFS: The default maximum number of pbufs queued on ooseq per + * pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). + * Only valid for TCP_QUEUE_OOSEQ==1. + */ +#ifndef TCP_OOSEQ_MAX_PBUFS +#define TCP_OOSEQ_MAX_PBUFS 2 +#endif + +/** + * TCP_OOSEQ_PBUFS_LIMIT(ooseq): Return the maximum number of pbufs to be queued + * on ooseq per pcb, given the pcb. Only valid for TCP_QUEUE_OOSEQ==1. + */ +#ifndef TCP_OOSEQ_PBUFS_LIMIT +#define TCP_OOSEQ_PBUFS_LIMIT(ooseq) ooseq_pbufs_limit(ooseq) +#endif + +/** + * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. + */ +#ifndef TCP_LISTEN_BACKLOG +#define TCP_LISTEN_BACKLOG 1 +#endif + +/** + * The maximum allowed backlog for TCP listen netconns. + * This backlog is used unless another is explicitly specified. + * 0xff is the maximum (u8_t). + */ +#ifndef TCP_DEFAULT_LISTEN_BACKLOG +#define TCP_DEFAULT_LISTEN_BACKLOG 2 +#endif + +/** + * TCP_OVERSIZE: The maximum number of bytes that tcp_write may + * allocate ahead of time in an attempt to create shorter pbuf chains + * for transmission. The meaningful range is 0 to TCP_MSS. Some + * suggested values are: + * + * 0: Disable oversized allocation. Each tcp_write() allocates a new + pbuf (old behaviour). + * 1: Allocate size-aligned pbufs with minimal excess. Use this if your + * scatter-gather DMA requires aligned fragments. + * 128: Limit the pbuf/memory overhead to 20%. + * TCP_MSS: Try to create unfragmented TCP packets. + * TCP_MSS/4: Try to create 4 fragments or less per TCP packet. + */ +#ifndef TCP_OVERSIZE +#define TCP_OVERSIZE TCP_MSS +#endif + +/** + * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. + * The timestamp option is currently only used to help remote hosts, it is not + * really used locally. Therefore, it is only enabled when a TS option is + * received in the initial SYN packet from a remote host. + */ +#ifndef LWIP_TCP_TIMESTAMPS +#define LWIP_TCP_TIMESTAMPS 1 +#endif + +/** + * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an + * explicit window update + */ +#ifndef TCP_WND_UPDATE_THRESHOLD +#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4)) +#endif + +/* + ---------------------------------- + ---------- Pbuf options ---------- + ---------------------------------- +*/ + +/** + * PBUF_LINK_ENCAPSULATION_HLEN: the number of bytes that should be allocated + * for an additional encapsulation header before ethernet headers (e.g. 802.11) + * + * 1. LINK_HLEN 14Byte will be remove in WLAN layer + * 2. IEEE80211_HDR_MAX_LEN needs 40 bytes. + * 3. encryption needs exra 4 bytes ahead of actual data payload, and require + * DAddr and SAddr to be 4-byte aligned. + * 4. TRANSPORT and IP are all 20, 4 bytes aligned, nice... + * 5. LCC add 6 bytes more, We don't consider WAPI yet... + * 6. define LWIP_MEM_ALIGN to be 4 Byte aligned, pbuf struct is 16B, Only thing may be + * matter is ether_hdr is not 4B aligned. + * + * So, we need extra (40 + 4 - 14) = 30 and it's happen to be 4-Byte aligned + * + * 1. lwip + * | empty 30B | eth_hdr (14B) | payload ...| + * total: 44B ahead payload + * 2. net80211 + * | max 80211 hdr, 32B | ccmp/tkip iv (8B) | sec rsv(4B) | payload ...| + * total: 40B ahead sec_rsv and 44B ahead payload + * + */ +#define PBUF_LINK_ENCAPSULATION_HLEN 36 + +/* + ------------------------------------------------ + ---------- Network Interfaces options ---------- + ------------------------------------------------ +*/ +/** + * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname + * field. + */ +#ifndef LWIP_NETIF_HOSTNAME +#define LWIP_NETIF_HOSTNAME 1 +#endif + +/** + * LWIP_NETIF_API==1: Support netif api (in netifapi.c) + */ +#ifndef LWIP_NETIF_API +#define LWIP_NETIF_API 0 +#endif + +/** + * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface + * changes its up/down status (i.e., due to DHCP IP acquisition) + */ +#ifndef LWIP_NETIF_STATUS_CALLBACK +#define LWIP_NETIF_STATUS_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP *tries* to put all data + * to be sent into one single pbuf. This is for compatibility with DMA-enabled + * MACs that do not support scatter-gather. + * Beware that this might involve CPU-memcpy before transmitting that would not + * be needed without this flag! Use this only if you need to! + */ +#define LWIP_NETIF_TX_SINGLE_PBUF 1 + +/* + ------------------------------------ + ---------- LOOPIF options ---------- + ------------------------------------ +*/ + +/* + ------------------------------------ + ---------- SLIPIF options ---------- + ------------------------------------ +*/ + +/* + ------------------------------------ + ---------- Thread options ---------- + ------------------------------------ +*/ +/** + * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef TCPIP_THREAD_STACKSIZE +#define TCPIP_THREAD_STACKSIZE 480 +#endif + +/** + * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#define TCPIP_THREAD_PRIO (configMAX_PRIORITIES-5) + +/** + * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when tcpip_init is called. + */ +#define TCPIP_MBOX_SIZE 16 + +/** + * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#define DEFAULT_UDP_RECVMBOX_SIZE 6 + +/** + * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#define DEFAULT_TCP_RECVMBOX_SIZE 6 + +/** + * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when the acceptmbox is created. + */ +#define DEFAULT_ACCEPTMBOX_SIZE 6 + +/* + ---------------------------------------------- + ---------- Sequential layer options ---------- + ---------------------------------------------- +*/ + +/* + ------------------------------------ + ---------- Socket options ---------- + ------------------------------------ +*/ + +/** + * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. + * Disable this option if you use a POSIX operating system that uses the same + * names (read, write & close). (only used if you use sockets.c) + */ +#define LWIP_POSIX_SOCKETS_IO_NAMES 0 + +/** + * LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. + * This can be useful when there are multiple APIs which create file descriptors. + * When they all start with a different offset and you won't make them overlap you can + * re implement read/write/close/ioctl/fnctl to send the requested action to the right + * library (sharing select will need more work though). + */ +#ifndef LWIP_SOCKET_OFFSET +#define LWIP_SOCKET_OFFSET 3 +#endif + +/** + * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and + * SO_SNDTIMEO processing. + */ +#ifndef LWIP_SO_SNDTIMEO +#define LWIP_SO_SNDTIMEO 1 +#endif + +/** + * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and + * SO_RCVTIMEO processing. + */ +#ifndef LWIP_SO_RCVTIMEO +#define LWIP_SO_RCVTIMEO 1 +#endif + +/** + * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT + * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set + * in seconds. (does not require sockets.c, and will affect tcp.c) + */ +#ifndef LWIP_TCP_KEEPALIVE +#define LWIP_TCP_KEEPALIVE 1 +#endif + +/** + * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. + */ +#ifndef LWIP_SO_RCVBUF +#define LWIP_SO_RCVBUF 0 +#endif + +/** + * SO_REUSE==1: Enable SO_REUSEADDR option. + */ +#ifndef SO_REUSE +#define SO_REUSE 1 +#endif + +/* + ---------------------------------------- + ---------- Statistics options ---------- + ---------------------------------------- +*/ + +/** + * LWIP_STATS==1: Enable statistics collection in lwip_stats. + */ +#ifndef LWIP_STATS +#define LWIP_STATS 0 +#endif + +/** + * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. + */ +#ifndef LWIP_STATS_DISPLAY +#define LWIP_STATS_DISPLAY 0 +#endif + +/* + --------------------------------- + ---------- PPP options ---------- + --------------------------------- +*/ + +/* + -------------------------------------- + ---------- Checksum options ---------- + -------------------------------------- +*/ + +/* + --------------------------------------- + ---------- IPv6 options --------------- + --------------------------------------- +*/ +/** + * LWIP_IPV6==1: Enable IPv6 + */ +#ifndef LWIP_IPV6 +#define LWIP_IPV6 0 +#endif + +/* + --------------------------------------- + ---------- Hook options --------------- + --------------------------------------- +*/ + +/* + --------------------------------------- + ---------- mDNS options --------------- + --------------------------------------- +*/ + +/** + * LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS==1: Unsolicited announcements are + * queued and run from a timer callback. + */ +#ifndef LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS +#define LWIP_MDNS_RESPONDER_QUEUE_ANNOUNCEMENTS 1 +#endif + +/* + --------------------------------------- + ---------- Debugging options ---------- + --------------------------------------- +*/ + +// Uncomment this line, and set the individual debug options you want, for IP stack debug output +//#define LWIP_DEBUG + +/** + * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is + * compared against this value. If it is smaller, then debugging + * messages are written. + */ +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_WARNING + +/** + * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable + * debug messages of certain types. + */ +#define LWIP_DBG_TYPES_ON LWIP_DBG_ON + +/** + * ETHARP_DEBUG: Enable debugging in etharp.c. + */ +#define ETHARP_DEBUG LWIP_DBG_OFF + +/** + * NETIF_DEBUG: Enable debugging in netif.c. + */ +#define NETIF_DEBUG LWIP_DBG_OFF + +/** + * PBUF_DEBUG: Enable debugging in pbuf.c. + */ +#define PBUF_DEBUG LWIP_DBG_OFF + +/** + * API_LIB_DEBUG: Enable debugging in api_lib.c. + */ +#define API_LIB_DEBUG LWIP_DBG_OFF + +/** + * API_MSG_DEBUG: Enable debugging in api_msg.c. + */ +#define API_MSG_DEBUG LWIP_DBG_OFF + +/** + * SOCKETS_DEBUG: Enable debugging in sockets.c. + */ +#define SOCKETS_DEBUG LWIP_DBG_OFF + +/** + * ICMP_DEBUG: Enable debugging in icmp.c. + */ +#define ICMP_DEBUG LWIP_DBG_OFF + +/** + * IGMP_DEBUG: Enable debugging in igmp.c. + */ +#define IGMP_DEBUG LWIP_DBG_OFF + +/** + * INET_DEBUG: Enable debugging in inet.c. + */ +#define INET_DEBUG LWIP_DBG_OFF + +/** + * IP_DEBUG: Enable debugging for IP. + */ +#define IP_DEBUG LWIP_DBG_OFF + +/** + * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. + */ +#define IP_REASS_DEBUG LWIP_DBG_OFF + +/** + * RAW_DEBUG: Enable debugging in raw.c. + */ +#define RAW_DEBUG LWIP_DBG_OFF + +/** + * MEM_DEBUG: Enable debugging in mem.c. + */ +#define MEM_DEBUG LWIP_DBG_OFF + +/** + * MEMP_DEBUG: Enable debugging in memp.c. + */ +#define MEMP_DEBUG LWIP_DBG_OFF + +/** + * SYS_DEBUG: Enable debugging in sys.c. + */ +#define SYS_DEBUG LWIP_DBG_OFF + +/** + * TIMERS_DEBUG: Enable debugging in timers.c. + */ +#define TIMERS_DEBUG LWIP_DBG_OFF + +/** + * TCP_DEBUG: Enable debugging for TCP. + */ +#define TCP_DEBUG LWIP_DBG_OFF + +/** + * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. + */ +#define TCP_INPUT_DEBUG LWIP_DBG_OFF + +/** + * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. + */ +#define TCP_FR_DEBUG LWIP_DBG_OFF + +/** + * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit + * timeout. + */ +#define TCP_RTO_DEBUG LWIP_DBG_OFF + +/** + * TCP_CWND_DEBUG: Enable debugging for TCP congestion window. + */ +#define TCP_CWND_DEBUG LWIP_DBG_OFF + +/** + * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. + */ +#define TCP_WND_DEBUG LWIP_DBG_OFF + +/** + * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. + */ +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF + +/** + * TCP_RST_DEBUG: Enable debugging for TCP with the RST message. + */ +#define TCP_RST_DEBUG LWIP_DBG_OFF + +/** + * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. + */ +#define TCP_QLEN_DEBUG LWIP_DBG_OFF + +/** + * UDP_DEBUG: Enable debugging in UDP. + */ +#define UDP_DEBUG LWIP_DBG_OFF + +/** + * TCPIP_DEBUG: Enable debugging in tcpip.c. + */ +#define TCPIP_DEBUG LWIP_DBG_OFF + +/** + * SLIP_DEBUG: Enable debugging in slipif.c. + */ +#define SLIP_DEBUG LWIP_DBG_OFF + +/** + * DHCP_DEBUG: Enable debugging in dhcp.c. + */ +#define DHCP_DEBUG LWIP_DBG_OFF + +/** + * AUTOIP_DEBUG: Enable debugging in autoip.c. + */ +#define AUTOIP_DEBUG LWIP_DBG_OFF + +/** + * DNS_DEBUG: Enable debugging for DNS. + */ +#define DNS_DEBUG LWIP_DBG_OFF + +/** + * IP6_DEBUG: Enable debugging for IPv6. + */ +#define IP6_DEBUG LWIP_DBG_OFF + +/** + * MDNS_DEBUG: Enable debugging for multicast DNS. + */ +#define MDNS_DEBUG LWIP_DBG_OFF + +/* + -------------------------------------------------- + ---------- Performance tracking options ---------- + -------------------------------------------------- +*/ + +#endif /* __LWIPOPTS_H__ */ diff --git a/extras/timekeeping/tests/sntp-run/sntp_impl.c b/extras/timekeeping/tests/sntp-run/sntp_impl.c new file mode 100644 index 0000000..afcc763 --- /dev/null +++ b/extras/timekeeping/tests/sntp-run/sntp_impl.c @@ -0,0 +1,113 @@ +/* + * Test implementation of callback for LWIP SNTP + * + * Production code would likely decide how to handle + * various magnitude changes, be robust to outliers, + * and be brisk about it all + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include + +#include + +#include "sntp_impl.h" + +/********************************************************** + * IMPORTANT: THIS IS A TEST HARNESS, NOT PRODUCTION CODE * + ********************************************************** + * + * Spikes in delay of over 200 ms have been observed in testing. + * Such spikes would likely cause both a forward and a backward jump + * in time using this simplistic approach. Increasing the threshold to, + * for example, 250 ms would require 2000 * 250 ms = 500 sec ~ 10 min + * for the time to slew back after a "bad set" or series of "bad" packets. + * + * PRODUCTION CODE SHOULD USE AN APPLICATION-APPROPRIATE CLOCK DISCIPLINE + */ +#ifndef SNTP_IMPL_STEP_THRESHOLD +#define SNTP_IMPL_STEP_THRESHOLD 125000 +#endif + + +#define TV2LD(TV) ((long double)TV.tv_sec + (long double)TV.tv_usec * 1.e-6) +#include + + +/* + * Called by lwip/apps/sntp.c through + * #define SNTP_SET_SYSTEM_TIME_US(S, F) sntp_impl_set_system_time_us(S, F) + * u32_t matches lwip/apps/sntp.c + */ +void +sntp_impl_set_system_time_us(uint32_t secs, uint32_t us) { + + struct timeval new; + struct timeval old; + struct timeval dt; + +#ifdef TIMEKEEPING_SET_AND_MEASURE_ONLY + static long double time_has_been_set_at; +#endif + + gettimeofday(&old, NULL); + + new.tv_sec = secs; + new.tv_usec = us; + + timersub(&new, &old, &dt); + +#ifdef TIMEKEEPING_SET_AND_MEASURE_ONLY + + if (time_has_been_set_at == 0) { + settimeofday(&new, NULL); + time_has_been_set_at = TV2LD(new); + } + + printf("SNTP: %20.6Lf delta: %10.3Lf ms %3.1Lf ppm\n", + TV2LD(new), TV2LD(dt)*1e3, (TV2LD(dt) / (TV2LD(new) - time_has_been_set_at))*1e6); + +#else /* Normal operation */ + + if (secs || abs(us) > SNTP_IMPL_STEP_THRESHOLD) { + settimeofday(&new, NULL); + } else { + adjtime(&dt, NULL); + } + + printf("SNTP: %20.6Lf delta: %7.3Lf ms\n", + TV2LD(new), TV2LD(dt)*1e3); + +#endif +} diff --git a/extras/timekeeping/tests/sntp-run/sntp_impl.h b/extras/timekeeping/tests/sntp-run/sntp_impl.h new file mode 100644 index 0000000..4a7628b --- /dev/null +++ b/extras/timekeeping/tests/sntp-run/sntp_impl.h @@ -0,0 +1,42 @@ +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef EXTRAS_TIMEKEEPING_SNTP_IMPL_H +#define EXTRAS_TIMEKEEPING_SNTP_IMPL_H + +#include + +void +sntp_impl_set_system_time_us(uint32_t secs, uint32_t frac); + +/* See lwipopts.h for #define statements to couple with LWIP SNTP */ + +#endif /* EXTRAS_TIMEKEEPING_SNTP_IMPL_H */ diff --git a/extras/timekeeping/tests/sntp-run/timekeeping_sntp_run.c b/extras/timekeeping/tests/sntp-run/timekeeping_sntp_run.c new file mode 100644 index 0000000..a8195d0 --- /dev/null +++ b/extras/timekeeping/tests/sntp-run/timekeeping_sntp_run.c @@ -0,0 +1,136 @@ +/* + * Simple test using LWIP SNTP + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include + +#include +#include + +/* espressif/esp_system.h uses "bool" but fails to #include */ +#include +#include +#include + +/* For sdk_system_restart_in_nmi() */ +#include + +#include +#include + +#include + + +#define BLUE_LED 2 +#define LED_ON 0 +#define LED_OFF 1 + +#define WAIT_FOR_UART_SECS 5 /* 2 might be OK */ + +#define TV2LD(TV) ((long double)TV.tv_sec + (long double)TV.tv_usec * 1.e-6) + +void +sntp_task(void *pvParameters) { + + while (sdk_wifi_station_get_connect_status() != STATION_GOT_IP) { + vTaskDelay(10); + }; + + /* + * Set one of SNTP_OPMODE_LISTENONLY or SNTP_OPMODE_POLL + */ + + + /* + * SNTP_OPMODE_LISTENONLY + * just needs the mode set, no server names required + * (requires broadcast NTP on your network) + */ + + sntp_setoperatingmode(SNTP_OPMODE_LISTENONLY); + + /* + * SNTP_OPMODE_POLL + * Needs one or more server names set + * additional servers are "fail over" + * Can use a DNS name or an address literal + * LWIP can also be configured with SNTP_GET_SERVERS_FROM_DHCP + * (DHCP-specified SNTP servers untested at this time) + * + * NOTE: Early testing with polling shows higher deviations + * than seen with broadcast, even with RTT compensation + * Cause unknown at this time, but believed to be within SNTP + * amd not part of timekeeping itself. + */ + +/* + sntp_setoperatingmode(SNTP_OPMODE_POLL); + sntp_setservername(0, "ntp_a.example.com"); + sntp_setservername(1, "ntp_b.example.com"); + sntp_setservername(2, "ntp_c.example.com"); +*/ + + /* Once set up, this is all it takes */ + sntp_init(); + + /* + * Have high-priority thread "parked", might as well use it + * Show calling gettimeofday() once an hour to check for timer wrap + * (the SNTP process itself, if connected, should be sufficient) + */ + while (1) { + vTaskDelay(60 * 60 * (1000 / portTICK_PERIOD_MS)); + printf("gettimeofday(NULL, NULL)\n"); + gettimeofday(NULL, NULL); + } +} + + + +void +user_init(void) +{ + uart_set_baud(0, 115200); + sdk_wifi_set_opmode(STATION_MODE); + /* + * Run at a high enough priority so that the initial time-set doesn't get interrupted + * Later calls and listen-only mode calls run in the high-priority "tcpip_thread" (LWIP) + * + * While 196 heap seemed sufficient for many tests, use of an NTP pool + * with DNS caused heap errors/warnings on starting NTP at 256 heap + */ + xTaskCreate(sntp_task, "SNTP task", 288, NULL, 6, NULL); +} diff --git a/extras/timekeeping/tests/wrap/Makefile b/extras/timekeeping/tests/wrap/Makefile new file mode 100644 index 0000000..0f0a4f9 --- /dev/null +++ b/extras/timekeeping/tests/wrap/Makefile @@ -0,0 +1,6 @@ + +PROGRAM=timekeeping_wrap_test + +EXTRA_COMPONENTS = extras/timekeeping + +include ../../../../common.mk diff --git a/extras/timekeeping/tests/wrap/timekeeping_wrap_test.c b/extras/timekeeping/tests/wrap/timekeeping_wrap_test.c new file mode 100644 index 0000000..70df3e3 --- /dev/null +++ b/extras/timekeeping/tests/wrap/timekeeping_wrap_test.c @@ -0,0 +1,129 @@ +/* + * Tests of functionality within extras/timekeeping + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +#include +#include + +#include +#include + +#include +#include + +/* espressif/esp_system.h uses "bool" but fails to #include */ +#include +#include + + +#define BLUE_LED 2 +#define LED_ON 0 +#define LED_OFF 1 + +#define WAIT_FOR_UART_SECS 5 /* 2 might be OK */ + +/* For sdk_system_restart_in_nmi() */ +#include + +/* Not defined in espressif/esp_wifi.h */ +extern bool +sdk_wifi_set_opmode_current(uint8_t opmode); + +#define TV2LD(TV) ((long double)TV.tv_sec + (long double)TV.tv_usec * 1.e-6) + + +void +testTask(void *pvParameters) +{ + struct timeval tv; + TickType_t base_ticks; + TickType_t increment_ticks; + int idx; + long num_runs; + int seconds_per_report; + + gpio_enable(BLUE_LED, GPIO_OUTPUT); + gpio_write(BLUE_LED, LED_OFF); + + vTaskDelay(WAIT_FOR_UART_SECS * 1000 / portTICK_PERIOD_MS); + + gpio_write(BLUE_LED, LED_ON); + + + printf("\n"); + printf("settimeofday to 1000000000\n"); + tv.tv_sec = 1000000000; + tv.tv_usec = 0; + settimeofday(&tv, NULL); + + tv.tv_sec = 0; + tv.tv_usec = 0; + + printf("\n===== 4500-second (75 min) time-display run =====\n"); + printf(" 2^32 = 4294967296; ~4295 seconds\n"); + + num_runs = 450; + seconds_per_report = 10; + + increment_ticks = (seconds_per_report * 1000) / portTICK_PERIOD_MS; + + base_ticks = xTaskGetTickCount(); + + for (idx = 0; idx <= num_runs; idx++) { + gettimeofday(&tv, NULL); + printf("%20.6Lf at %8.3lf sec elapsed; %10lu system clock\n", + TV2LD(tv), (double)(xTaskGetTickCount() - base_ticks)/100, (long unsigned int)sdk_system_get_time()); + vTaskDelay((base_ticks - xTaskGetTickCount()) + (increment_ticks * (idx + 1))); + } + + printf("\n"); + printf("All done; reboot imminent\n"); + + gpio_write(BLUE_LED, LED_OFF); + + sdk_system_restart_in_nmi(); +} + + + +void +user_init(void) +{ + uart_set_baud(0, 115200); + sdk_wifi_set_opmode_current(NULL_MODE); /* Temporarily disable */ + xTaskCreate(testTask, "testTask", 512, NULL, 2, NULL); +} diff --git a/extras/timekeeping/timekeeping.c b/extras/timekeeping/timekeeping.c new file mode 100644 index 0000000..1fb65fd --- /dev/null +++ b/extras/timekeeping/timekeeping.c @@ -0,0 +1,323 @@ +/* + * Basic timekeeping functions + * + * Independent of clock discipline + */ + +/*- + * Copyright (c) 2018, Jeff Kletsky + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +#include +#include + +/* espressif/esp_system.h uses "bool" but fails to #include */ +#include +#include + +#include + + +/* #define here for easier use of other system clocks */ +#define GET_SYSTEM_CLOCK_US() sdk_system_get_time() + +typedef uint32_t system_clock_t; +#define SYSTEM_CLOCK_WRAP_US 0x100000000LL + +/* + * Define the slew rate in terms of microseconds of time to slew 1 microsecond + * This allows the use of integer arithmetic + * 2000 us to slew 1 us is 500 us of slew per sec, consistent with NTP usage + */ +#define ADJTIME_SLEW_PERIOD 2000 + +/* + * Try to prevent gross errors in calls to adjtime(), + * such as calling with the desired time + * NTP typically won't try to slew more than 128 ms + * At 500 ppm, can slew 1.8 seconds/hour + * A little less than what an int32_t can represent should be more than enough + * (2**31)/1e6 < 2147 + */ +#define ADJTIME_MAX_SECS_ALLOWED 2000 + + +/* + * Assume that newlib was compiled to implement tz locking + * See newlib-xtensa/newlib/libc/time/local.h + * + * __tz_lock is implemented by newlib and calls + * __tz_lock() calls __lock_acquire() which calls + * xSemaphoreTake() -- NOT RECURSIVE + * Use of __tz_lock() in applications may result in deadlock + * + * As that local.h is not available within esp-open-rtos + * replicate the definitions and provide proto here + */ +#define TZ_LOCK __tz_lock() +#define TZ_UNLOCK __tz_unlock() + +extern void __tz_lock(void); +extern void __tz_unlock(void); + + +/* + * Multi-threading considerations + * + * While the calls related to timekeeping are generally "tight" + * there is the possiblity that the calling process will be swapped out. + * Selection of proper task priority should mitigate this + * + * taskENTER_CRITICAL() and taskEXIT_CRITICAL() might be useful + * for specialized requirements. Before considering their use + * determine if configMAX_SYSCALL_INTERRUPT_PRIORITY is enabled + * and is at a level that permits at least ticks. + * See also configMAX_API_CALL_INTERRUPT_PRIORITY + * + * TIMEKEEPING_LOCK_USE_CRITICAL doesn't make much sense + * if it prevents interrupts related to ticks! + * + * TIMEKEEPING_LOCK_USE_CRITICAL is UNTESTED + */ + +#ifdef TIMEKEEPING_LOCK_USE_CRITICAL +#define TIMEKEEPING_LOCK() do {TZ_LOCK; taskENTER_CRITICAL();} while (0) +#define TIMEKEEPING_UNLOCK() do {taskEXIT_CRITICAL(); TZ_UNLOCK;} while (0) +#else +#define TIMEKEEPING_LOCK() TZ_LOCK +#define TIMEKEEPING_UNLOCK() TZ_UNLOCK +#endif + +#define SIGNED_ADJTIME_SLEW_PERIOD (timekeeping_state.adjtime_delta < 0 \ + ? -ADJTIME_SLEW_PERIOD : ADJTIME_SLEW_PERIOD) + +#define UNUSED_PARAM(X) ((void)X) + +/* + * All units in timekeeping_state are microseconds + * Intentionally *signed* values as, for example, might want to reset to zero + * for a time other than when the system clock started ticking + */ +static struct +{ + int64_t clock_offset; + system_clock_t last_system_clock_value; + int32_t adjtime_delta; + int64_t slew_start_time; + int64_t slew_complete_time; +} timekeeping_state; + + +static inline void +_reset_adjtime_state() { + + /* This should only be called under TIMEKEEPING_LOCK */ + + timekeeping_state.adjtime_delta = 0; + timekeeping_state.slew_start_time = 0; + timekeeping_state.slew_complete_time = 0; +} + +static void +_check_system_clock(void) { + + /* This should only be called under TIMEKEEPING_LOCK */ + + system_clock_t current_system_clock; + + current_system_clock = GET_SYSTEM_CLOCK_US(); + + if (current_system_clock < timekeeping_state.last_system_clock_value) { + timekeeping_state.clock_offset = + timekeeping_state.clock_offset + SYSTEM_CLOCK_WRAP_US; + } + + timekeeping_state.last_system_clock_value = current_system_clock; + + if (timekeeping_state.slew_complete_time + && ((GET_SYSTEM_CLOCK_US() + timekeeping_state.clock_offset) + >= timekeeping_state.slew_complete_time)) { + timekeeping_state.clock_offset = + timekeeping_state.clock_offset + timekeeping_state.adjtime_delta; + _reset_adjtime_state(); + } +} + + +int +_settimeofday_r(struct _reent *r, const struct timeval *tv, const struct timezone *tz) { + + UNUSED_PARAM(tz); + + int retval = 0; + system_clock_t current_system_clock; + int64_t desired_internal_clock; + + /* Effectively a system call, be picky */ + if (tv && (tv->tv_usec < 0 || tv->tv_usec >= 1000000 || tv->tv_sec < 0)) { + retval = -1; + r->_errno = EINVAL; + } + + TIMEKEEPING_LOCK(); + + _check_system_clock(); + + if (tv && !retval) { + + current_system_clock = GET_SYSTEM_CLOCK_US(); + desired_internal_clock = ((int64_t) tv->tv_sec * 1000000) + tv->tv_usec; + + timekeeping_state.clock_offset = + desired_internal_clock - current_system_clock; + + _reset_adjtime_state(); + + } + + TIMEKEEPING_UNLOCK(); + + return (retval); +} + + +/* "Override" the newlib definition used for gettimeofday and variants */ +int +_gettimeofday_r(struct _reent *r, struct timeval *tv, void *tz) { + + UNUSED_PARAM(r); + UNUSED_PARAM(tz); + + system_clock_t current_system_clock; + int64_t system_plus_offset; + int64_t internal_clock; + + current_system_clock = GET_SYSTEM_CLOCK_US(); + + TIMEKEEPING_LOCK(); + + _check_system_clock(); + + if (tv) { + + system_plus_offset = + current_system_clock + timekeeping_state.clock_offset; + if (!timekeeping_state.slew_complete_time) { + internal_clock = system_plus_offset; + } else { + internal_clock = + (int64_t)(system_plus_offset + + (system_plus_offset + - timekeeping_state.slew_start_time) + / SIGNED_ADJTIME_SLEW_PERIOD); + } + + tv->tv_sec = internal_clock / 1000000; + tv->tv_usec = internal_clock % 1000000; + + } + + TIMEKEEPING_UNLOCK(); + + return (0); +} + + +int +_adjtime_r(struct _reent *r, const struct timeval *delta, struct timeval *olddelta) { + + int retval = 0; + system_clock_t current_system_clock; + int64_t system_plus_offset; + int32_t slew; + + current_system_clock = GET_SYSTEM_CLOCK_US(); + + /* Effectively a system call, be picky */ + if (delta && (delta->tv_usec <= -1000000 || delta->tv_usec >= 1000000 + || delta->tv_sec > ADJTIME_MAX_SECS_ALLOWED + || delta->tv_sec < -ADJTIME_MAX_SECS_ALLOWED)) { + retval = -1; + r->_errno = EINVAL; + } + + TIMEKEEPING_LOCK(); + + _check_system_clock(); + + if (!retval) { + + system_plus_offset = + current_system_clock + timekeeping_state.clock_offset; + + if (olddelta) { + if (timekeeping_state.slew_complete_time) { + slew = (int32_t)((timekeeping_state.slew_complete_time + - system_plus_offset) + / SIGNED_ADJTIME_SLEW_PERIOD); + olddelta->tv_sec = slew / 1000000; + olddelta->tv_usec = slew % 1000000; + } else { + olddelta->tv_sec = 0; + olddelta->tv_usec = 0; + } + } + + if (delta) { + timekeeping_state.adjtime_delta = delta->tv_sec * 1000000 + delta->tv_usec; + timekeeping_state.slew_start_time = system_plus_offset; + timekeeping_state.slew_complete_time = + timekeeping_state.slew_start_time + + (int64_t) timekeeping_state.adjtime_delta + * SIGNED_ADJTIME_SLEW_PERIOD; + } + + } /* if (!retval) */ + + TIMEKEEPING_UNLOCK(); + + return (retval); +} + + + +int +settimeofday(const struct timeval *tv, const struct timezone *tz) { + + return _settimeofday_r(_REENT, tv, tz); +} + +int +adjtime(const struct timeval *delta, struct timeval *olddelta) { + + return _adjtime_r(_REENT, delta, olddelta); +} From b77380bad1150470751810d712e14b9d6f345512 Mon Sep 17 00:00:00 2001 From: Andrea Greco Date: Thu, 1 Mar 2018 01:03:44 +0100 Subject: [PATCH 288/349] Http client OTA (#553) --- examples/http_client_ota/Makefile | 4 + examples/http_client_ota/http_get.c | 134 +++++++++ examples/http_client_ota/test_file/blink.bin | Bin 0 -> 245392 bytes .../http_client_ota/test_file/blink.sha256 | 1 + extras/http_client_ota/component.mk | 10 + extras/http_client_ota/http_buffered_client.c | 219 +++++++++++++++ extras/http_client_ota/http_buffered_client.h | 29 ++ extras/http_client_ota/http_client_ota.c | 259 ++++++++++++++++++ extras/http_client_ota/http_client_ota.h | 56 ++++ 9 files changed, 712 insertions(+) create mode 100644 examples/http_client_ota/Makefile create mode 100644 examples/http_client_ota/http_get.c create mode 100644 examples/http_client_ota/test_file/blink.bin create mode 100644 examples/http_client_ota/test_file/blink.sha256 create mode 100644 extras/http_client_ota/component.mk create mode 100644 extras/http_client_ota/http_buffered_client.c create mode 100644 extras/http_client_ota/http_buffered_client.h create mode 100644 extras/http_client_ota/http_client_ota.c create mode 100644 extras/http_client_ota/http_client_ota.h diff --git a/examples/http_client_ota/Makefile b/examples/http_client_ota/Makefile new file mode 100644 index 0000000..8cbd731 --- /dev/null +++ b/examples/http_client_ota/Makefile @@ -0,0 +1,4 @@ +PROGRAM=http_ota +EXTRA_COMPONENTS=extras/rboot-ota extras/mbedtls extras/http_client_ota + +include ../../common.mk \ No newline at end of file diff --git a/examples/http_client_ota/http_get.c b/examples/http_client_ota/http_get.c new file mode 100644 index 0000000..6b1798a --- /dev/null +++ b/examples/http_client_ota/http_get.c @@ -0,0 +1,134 @@ +#include "espressif/esp_common.h" +#include "esp/uart.h" + +#include + +#include "FreeRTOS.h" +#include "task.h" + +#include "http_client_ota.h" +#include "ssid_config.h" + +#define vTaskDelayMs(ms) vTaskDelay((ms) / portTICK_PERIOD_MS) + +/* + * How to test + * cd test_file + * python -m SimpleHTTPServer 8080 + * fill missing define SERVER and PORT, in your private_ssid_config.h + * Ready for test. + */ + + +#define BINARY_PATH "/blink.bin" +#define SHA256_PATH "/blink.sha256" + +// Default +#define SERVER "192.168.1.30" +#define PORT "8080" + +#ifndef SERVER + #error "Server address is not defined define it:`192.168.X.X`" +#endif + +#ifndef PORT + #error "Port is not defined example:`8080`" +#endif + +static inline void ota_error_handling(OTA_err err) { + printf("Error:"); + + switch(err) { + case OTA_DNS_LOOKUP_FALLIED: + printf("DNS lookup has fallied\n"); + break; + case OTA_SOCKET_ALLOCATION_FALLIED: + printf("Impossible allocate required socket\n"); + break; + case OTA_SOCKET_CONNECTION_FALLIED: + printf("Server unreachable, impossible connect\n"); + break; + case OTA_SHA_DONT_MATCH: + printf("Sha256 sum does not fit downloaded sha256\n"); + break; + case OTA_REQUEST_SEND_FALLIED: + printf("Impossible send HTTP request\n"); + break; + case OTA_DOWLOAD_SIZE_NOT_MATCH: + printf("Dowload size don't match with server declared size\n"); + break; + case OTA_ONE_SLOT_ONLY: + printf("rboot has only one slot configured, impossible switch it\n"); + break; + case OTA_FAIL_SET_NEW_SLOT: + printf("rboot cannot switch between rom\n"); + break; + case OTA_IMAGE_VERIFY_FALLIED: + printf("Dowloaded image binary checsum is fallied\n"); + break; + case OTA_UPDATE_DONE: + printf("Ota has completed upgrade process, all ready for system software reset\n"); + break; + case OTA_HTTP_OK: + printf("HTTP server has response 200, Ok\n"); + break; + case OTA_HTTP_NOTFOUND: + printf("HTTP server has response 404, file not found\n"); + break; + } +} + +static void ota_task(void *PvParameter) +{ + // Wait until we have joined AP and are assigned an IP * + while (sdk_wifi_station_get_connect_status() != STATION_GOT_IP) + vTaskDelayMs(100); + + while (1) { + OTA_err err; + // Remake this task until ota work + err = ota_update((ota_info *) PvParameter); + + ota_error_handling(err); + + if(err != OTA_UPDATE_DONE) { + vTaskDelayMs(1000); + printf("\n\n\n"); + continue; + } + + vTaskDelayMs(1000); + printf("Delay 1\n"); + vTaskDelayMs(1000); + printf("Delay 2\n"); + vTaskDelayMs(1000); + printf("Delay 3\n"); + + printf("Reset\n"); + sdk_system_restart(); + } +} + +static ota_info info = { + .server = SERVER, + .port = PORT, + .binary_path = BINARY_PATH, + .sha256_path = SHA256_PATH, +}; + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + struct sdk_station_config config = { + .ssid = WIFI_SSID, + .password = WIFI_PASS, + }; + + /* required to call wifi_set_opmode before station_set_config */ + sdk_wifi_set_opmode(STATION_MODE); + sdk_wifi_station_set_config(&config); + + xTaskCreate(ota_task, "get_task", 4096, &info, 2, NULL); +} diff --git a/examples/http_client_ota/test_file/blink.bin b/examples/http_client_ota/test_file/blink.bin new file mode 100644 index 0000000000000000000000000000000000000000..cb12f1ebccebdbd73f90b22f6487ac169c7ba052 GIT binary patch literal 245392 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

        ?Jr21H z|2M;0DLM3K*H{tf0aEu~iu{^BL(ZoycA}O9oZUBYf5}^D~#pf7Vj} zmokpFTwpMbian1B zzpI`45uIPhWTw51j1&8`)Gm7yQ}*#NZk`b8y66}OP3{lrwUcK*x(vAgbJp&*xZb;m zZ~IVwdstTv0c69Fz@sU>1U?cWl0%%mNj!3R*t3iFXoP;=UF=-;Ouvo|BN+g=QdU%1 zW;pfN;rxP#b6#&jq-ayHGle#&;y|}vB@%nrLTsJZ1PYD5T&rgnu@w~-5sv!6T|$1Q z1gA81loB*xl=lt?_Ta3Zt9rx3R!;eS=Xsihz#Wf~*gU(7-x!hl5kG2ynPC><(B(Ce zo#+Y?uJbm$#>f#J8Jr^{S>8H~m9wuLS?~T&o0nprK*A0;;hrQ(qLnIcnz?nku{f0!we*>O_I!wKgIk=q= zK59zXJCYT}2Il(SFd|N|jTqeuX`w;l+|*;X6>6@nF>R^)5el@L$rQDx%BzRn=QXhv zEmJ+qPQ3BVB8Gf^_}%DL;{m?9Uaxfwe8n`e3>@iTdZ%9u70TH`yg0*4UX+NbeW-&LgV4* z`5r@8zkDa1QWZPb>i-TR2LV>@zJfqgJ13V@OjohN1~#@%f713KMo@BR<%r5jq$0f} zlTO#?r5U9x$Crg-cDk|E%w!i%$u6H%VZ<~N?WIp8ob)Z5rOz#KZ>%0ATsEr}D;wb& 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

        fAR^F9C z9fx@u2i1x=s3YUfm|y3(dr?rUj`T-CT|~*&s*1ph{--mXjykJ%!%ygD-iZLk0BQ>T zxEQ~E_@R98hhPq&@`DAV_tNMX+ds~xS1Hp8Z(ok_{z))LjcE|! zNetn%%X_$Cb^a36IiQIPmiRY1awRt7oMM} zIc#-&U6uE@Z>--*c2%{gbPt=}HHuY>L@;z8AwG8|(OQh9yEPZs<_vkOymoLyxB6jX zTJkRF@sx>1^Bf&(=uSz=B$1YWbl&`K+r{2R+#Hzy<2#j;naK!CJ5}cy8gj^r_wrt; z{HSEs5mCq3b*xjTaOsr0{TH_ARQPC$Jd5Tmq}3H302&4MgmSs=94=W@Tglq#XN>5@ zH9}+KemwnN@d1GYP~%Y?POte2D3Waq)moi+LDOb z8;~ti-Cq*o92xOTz%R}`G|mMk=H(eRx|X*AkZqjnoeacZT@TH9J?19=lazH^%Ky>N zUz1?HbmB66h~%{e49k7OOL-4vZUX;dP~3BIPVdVL)`gu~1@Q3F#olEaHAD8t3M+_D zGq9nqpfGeT>&w0gWN5xAtsqd3mwnZLP4Tj54bo7@6#T~hf9smRQuiQ8GJ?E424&4IzV^tEIZ^R3I0cBn#C( z-v11(Hd)?8TLV$7*gA4V@p$UPskx7ZPomLgD-m(+u|y_k(2RWyH%)*DeOWN}2&cdl z8$^N;huo;n7r-eJ>8Yg?}r#A|g&Sk{=tnURf))WWBfUJ3G* zZ?aOW^A#w4Mao3IZz+@w9ZU7CMf#rUde%4wx>D-kIZf$Xtb|8pJ@ELZ8+}WZKKTT0 zF313!2U?Pui_z+`8GGG92%zw&FE_ST250HN58yN0*W2qn{r7)8E^yyBONp1=EragSMfzgM zoouq+k(iexQ@z|aF;~HIqJ~<+8Yc*IucEL7K24u(n#0&2Ph5-v#6mU0Ae||bFCN6H zY6h`>OP@FWNfKxgREvS92clr2Mv;hkw}eyUy(f7}ri1r(&`+fCV2z^$uaj0=*T52Itv-hcFr1$sq~&^Vm*=zDrh%yF7` z6CwuaxgT{3`0dvu##@fFROdkwhfd>OmwGKQb-;kfeGdoKJF9lF~ z0=eV32}mBe9;6NBAbO5RBB+CV=`^3_f6AvpzMl^jT3TSq2$wKb2)Bwg#zhZ8PL8$R zLsBP%1d~EZdbyuSb?y3whgTS6io!AYK+_ZFvApgZI1z>8m{s(|c^og#_)*|{H8oU*EAjDTPm+ng+jPxX`83k^r5OXXruDDok z33JxZ!O20Gdkl}E^W}+kSJmbQjn@hartKtL0aRMuVFznWxLA(DFs7XY(-Lo6&y7Mc zy32v_^E5KhDsa=ed@Nd4c~F(mM64uWBV#$I<(Edxm%s`mc%PPwSi(JzVh7_p4zES# zf#gw0lsk!j9GBGpdE9g)=hJVd-?sK&l4(0_sEU~5Fixc>bB~ujMuBylF~|Fxckc1! z|3ZQoa|{a^J(+t9M>K~op!A)4EV@ReIh)LQ7OTKlbIHswV8T}eEyF?v2fEh|B+IP=2vcJ`9ixPF&;crU5Asi^`SX!V*SxXxZ{CTr z!X$ln`5}kUt~DlI3;5io!p-}@pTS#WZ#2YCnLHur;)(9o8HOw4h8v5L^8?Ki%gtwOelAN(zFLkZaA^qYg9zsXcgHgs z@}Ru$Zl${aZWK43dGP0VWvOdX#>V^BRxDyv<;%^N*YJi!KbAKxFh}Tk8Mr+iiSi)Q z{7;GZ=bS(AIL&#Nj36fhddMJGaw2uZ{ByUPKG+#H(OOA$m3F@g;PI zJ&yuT2{&rB(6=*|A8{pfL>Fq0{~y{(I?Uo7&fNo5ep z`ZcL6Az4ombunq4Pbv{<(?Qg~A;3zhoJFzU&vr9e?$0YskN_qwB!vV>e)nXA(c;(tTm+BL(~VJuU<5V(>6gf;cu zZ+p6rt}Ou?fu2zUL10qg&36pilDrQ3<<<>-=Gd#S$i=yN-qoL3hD}sX96AwBLLGIek%bj9Y^&Rso_Pb(o2u(KS>QQNR@x2 zM|G{#uuQ6aQ+i$TnKncF$B?PPHC9+ANV;H5&)Gkk@lGq#+$rJZ?5=N?$BI@a3kch| z@;?5UzXUq_^eAfPJ>4mTlZ2HRFic(5UrQ3`!cIbViA7e9F7lU zoyBn$Lfo=jUdigfabNS-61j=Bw*dR1*hu$8Sh}@4)FjGsIB)s2BkXAfKhDoZ!fM5m znxbW=>SVoh1_wD2bM^|R!5p0<$qymCvcfyh1ed$PW(8!RYnZa{B-JHM4jWYEfO_sH zn@it;K7E`2QL7)?T8Pj)8ey{l_|Xz`CYe#H;Y3xfI*TDTfq}%z5#=vCfz@>$ z7m;^GGC|k3f#4O1`pNK~g980L-l1YyN3g$GJ>&TxAh0M@@6pEre5e}AH1cYeM-O62 z4B9H|Fj3W}YL2KTZlH;eovX7+x7cxOu zD&VPP`W^;d)ei}_N)Sqm%?;t6Cz!ipN=cG#VC1m)rQo~+f1~mDANU)NALqCkAY1We z)I{c_DesluwzlI9(|YlGan$X?07W(bHhl|L)8x#6B^@OLla^>XVNoWiV!`{A59{;= zseH*vTL0wCeiWibnR%U(6@MpykLkv8WC^&}Ki$oLEiqryTU*9-8Fz#O^_8AK z-L;&S;Yz4QR2zCyT+0czr#tEToq)G+0(NZ5q=AvcrRnH@)Qjdaqf)qoN`V7Lm!N`4 zHYCt{R2=XhH>UUB7>mE+yOK#4*fd%L{1rOD21t)r@S$@d8wY6|FY|)Ty1oMP!A~0O zqNk_!+5-XDec=Xm;GLwWoGN>_!OG65W*M`ZGm8->I;`Wl)@ zi=qs&;9ZKKCR;IfIWCLd)ZCZ&Gg{|oIRj+}67S}uiO{0nGy5ZCq+fD8*%$pdzl^pXtLT!ZiBpuu0)zp8uHV7rQKJkU+9*k<1k95Cnd+1U&P;vq!R;mKY<}gzwJc-TrN4GiO4== z&3j$4K1&wNp%)xi%xeQ?1@R`aK5 z?(>NU1nyUyAuwxIw~!t7Gssj{+xv9Ou+v3z{>2UsCfSRVl|U6ZO}6c0g##Vid~CbV zw>*_Q#>F-LB$Z5y-ZzKk;^4#jlXT^Gy>r+jVedVfp2tRqkgQDlu3VP!#A3`S&kukbMiSnV1$Eu`{a3evYd)eMn7e8!i?K^doj$1Z*cZ}OH8JYLQxN-c5osv35n6&P4M?9V|KBqJ~l*U{d zl7l*0JT<-H!`nuu^2H*fN@;vv`64kc#^EV4i=<48#RUf#X9%MJm=N8XD^#OR;!|)9 zOw8QH5IZ31a(yvY*fH74!WUM(ptt0%DlA;Jke|s|Ca=OQ$kt=Yv=4~zU~tQEBE6yu zbT&V5k6s2MC~H(j+Ac#XW2L#{#v3-aQxK_XaMI~SJS zcGVFHJK)5Iga($6jE6htJH$|$5MnVbPJmyHVSa)W%ImJtE?=)lNIhFy03<;^?Q|Wonpku}&G-3O4I27`>ejcdusLt4(WoX7vwvvTgEh z%6-6mnHG&88fjNVxDCS#U?HH^$N%+XR!Dj}YKC&qQ2hB4q~OEinj+)q29zbJH|> z>_ZudBQ7}faXD<|zrhY5lVFE`5ZE1I%QJ?t?Hf`&OFp;M5pDl6wnEE9=VaKl(% zV9*9ILb*-8Y9DqQXe12Z+SXrB^}i&JYj#RGT%|*5^cHeg1xL8LP>NQeGp)C8nPbnv z5*_E}c~G0)L%Ia0K%=)bsnY2PuY3XzF3TD0a)dYMfv@=#bISr<80Z2T-o750z12e-LSNae?Qe*y13;XSi1#=?JIG@iMnCLYg{}UuU{N|I`AwCx%c>A zd_fHp9?&_Dc5|?Gq6T}F!305Q=Q2ZfU;tp{nVTF+;CL{Cd|wv=qmgUOV;|y%w!!VB zxwqvjx%^7-YK7N=8Wu9k)@~|aT~=LPE&hVItEw%(tbaTU(owO1)K0Shg7AOG=v)-K zjA8bDFBekGaJS!iE2Jo2yZa-laSCZxkZ#AY7IzEdJ7ns(%8~+nT_HAH)?12dvEF6;>{|rFPF5zOWfc_ombr|c zeg(+-`K_X!nRbgaYiZ;%td#*_?mf{MAw)qS*MN?rS0Znb!l~-DAAq>?9^QTHOi*27 zS$etMp}*L6vf;9(?fF~wAmwC7m1nymz1-_n<$pWE+9O?g_?BtWEew{s(iy4-!J-h> zSl0nEzj4t}R3n8fE4?d~Z?5+4S9&)nKi=&9Ncr(n?+5hYJs17&HXCi=X6(a?`Km+rO}&h~!18R?tpdKGb!N)rew|vRYqS zy4AhZ`(i5YR@8M=$l22AGp@QbuKufGEoMH7v%%cZ_d8#H_titYPc(G5-8`eMlfgN1 z)sWxL2#4I(ce3H|?x4COEWhU_im(f3b7%565rq!RWW=zR(>eobtZ;?|@wvnoWJ0o2 zxKUWlFQgI}yKpnNfS*Z~n}Tp_`4Ri)eiCL1;)%-A`p;_1Z%jtx?nEv_m8=ZNZ4>j- ztp$9xNlrOUWwBEg#d&Gg(Q%KbF4%*h6jOBp(QRThfSC0Q%TPq&v!;a(`2ksYo47W; zyuguNCa1Inidelit$cLC*OrIsS;vu0ql5l@MI9`BNNy{BE^bvdL*qIHvxCxxr3ES~VaRZZj>nQ<} zX(4nHcktkZk-jRgIrNeA-4%z9BFddHp(1)NlSH#_+RY@~dQ%8F?VDKr(4%st9!e1& zGv-gd!ExDjGHn_BLrCW2x_sqzW&;EXft9Uco!p%A;>NW}y;$GQ9RCIdCS-JAOlMHV zm2Q?_*UoDOz`p4w9j$dLNOaSrKP$O|l`NUGUFAB^L)%wV zTI6$zWQBH80<%KNMLk|KZ0qAI;gaFCEG}K`tC&oR=6$Q{c?tdh1jfNc{0P`CbP0t9 zZM|4Wg()Z39)>O25%$V;DNrBRKfbd6X_h%`Qhyg+xM{2Po6g;q1%;l+{9@Stmdv6O z)>F%#0U*F|6R2p_OhSJfkADE*zyxdh!l%rWhJFGh-vW+=Ps$$vbZ%@f2R2+)&@Z5b#zp> zKdDBD6D$yg(^D`bgc#}WvLKL%PWnK(sGDuq<1U`B$og>f4kLVdY9%(_68F#ShIY%Z?Uol++x`P-03&=4 zJGYZvaO&6lC$g232tVbfz}mS%?sm$t;JU|Muy29pWPw2e_Z2k+z0} zUQBe(*~rcApGz{W>%%mDpn`dre#_{Im|qFIA+l&q1$uu)Mkq6$rZd0j9ep}b5I3mu zOZfH_aZ-xpyOH$xl`(kPJo+-Hc=u&dC$5rWuxntTuJ0Vn2lsL-1=iV->I=L$k%6`z z#dFh`;k0-P2i*+(e)|1T+VK86T&lo6b2opFKyw=fFBTiUT+cA>tlLP}M;NiT%6C!K zV7aP4+!?59)-h>6l*BAr=*i0c5(?*3G7!as7;hyQdzjXp4vpXlI-D0|y;XkF(e}-q zK31F2@Yi0VROROepLzPaHne}O$KSwOFGSOYzG-(KPBIuS%JVQ{+udE~S&sXk7y03I zDlejN6$m}kzi1z$rOWgk{+il+cW7habS(bz|A(=+fs3lj|Hse0FvB1hoI%A3s(Y{U zDAdeghOTZiBM_PxGbv%K+svTj!{P>$r53Hj7^JPWfIVodHG^elRzhuU&od~bt!_YV zK9WE_U_J!obL#!S&%FcEe)so!{e8V0&OP@$pL@>voX^Aillc$LB=h%@b)4h?qG*^g zztWihw6V}^%=H-I*JTFbVTL$KttMInZ}AcFRh(S-o^1928V`XAsa3udwH62TRhH^^rt^y|_uK)=q1me}6i#=g5O zLIgJ`Llu$8WMIOSq_Gsu7P^ZE&4skI+R;TJe^7Ia;_JqEeb2t{sSs-4CEook=tZP( zkDdi#gGXV}&Yk7>?i!bfXyfRj8_4f-L5&coc1aTJVM&>ZmTXKe^7?%vf4q~g9__y@ zmCBwIoXN9%E^W07Ml$q1?3_Ofkh=(2l0h%f7|VR6CTI4D`(ElGaeZHpuBceh=5arnS|L_{QGK9o+d8%)W* z#W2?&!de2?VB7IiXUwn{XQ=UN^Ws>IxgTG zS@ZsyYUUkO&hl|+Kl8R6yg4Hp4~~z(XsH5F17T;UV;4UsMby1%3H01s7mrQ3>Zl}c zNdK!XB2ndTytLHUAScT`FY%V@sbo--at}(R2(m!P$G+sfd`<0n?E8wgHwE`PP}aAN zv|hV%Calr78_-^Yc3q?09IzBk79y(^V@0MeD{U4ssI@kjl zyv!RJe-KfcgXLYgdLR@@AE9{ReRo@3S`ioZvA=dsI*5`PWNx*$kQA7fO!2$2&md9F z>*upR9#5|hV(P9`dO_$*ZMkg5-+z8wemd|eE$!ov{UF{!xu))dFGw0#xGPxG1{)AR z9{SQfd48_TG}dR?c`ZH@Y({0%%h6xQTV~Dq{eBBywCxAxOI*}Qdv*TMl-8_ZQGL_B z(qS=Ymt@%pb(VYUSaA-)z2~b}e_&Re4=!&*-jtT|AEB^`(0+evOZ>H-mL&)LuKZ^a z;duP~Dq;192rV0o4X<3mh~u$BcXk zQzpC1Kow`{X2cf?Cf?2CI%9MYYCG!Sh-Wi`$_8obEL4_0H_QqQ0GL$MX8HCH6a@iofAaMaAL7i>EC=uFdPa{Pfe(C}_u+F59Z7|CB0G8hNsS9NTz1@>fD_)+vY zokEkPops$hr2L&WGifuk%}BrZdg0nA=73}*D~#Ci;OxZAu%v=Dvu#X>rFy(P-N+DB zD+??_RQ9CMAw8Cs$}+@5sO4N5QDbvp&|c-ag#^A5AES4OD?IOIQfcCYtp7`C$gAd- zbAaHt%e%FA^g*nakZ$4JgYs2x0Tegsx3cg%`J$KgUFg2{o#G2TqzqlR_gdl9^UPal zzgKSmO1b?{L%D_4dY#r9MQg385)pF5XLS3HG%zPGYxJo?a_LaRiObN)HSS2A zAU3VOmLixpwW5B@=nW(1CPL%^*WnLJs_kJM+hiw9$vF)X4qc|Jp_Z*>Ffrq{cu9@+Mjt(QAf%P3bOcwUP1v)se&VSDuH&*z2{ zcnwW>H|h1vfL|>w#03Zh%}4bYkk~$rA=R| zCk<`kgJ9s37GF=hj@hHMM7K|5n{x>0B*MHTH{&L`8PJVKLq;eKfi2x;r6Kzb8AEeg z(G)~Q(U*q5!&4Qbp}{6=U!O26?e}U1ka2*37~d%eNbfD!;A^ml<)~>hn&^088LXD)vGD9B>X;#5MnZ!>Lcc|g?EmyBuu~Y z_`rz5r=pbX98erP{=GIgjqr~IB9d73eG~_z=N_JM%2Ni%tLIT>Dm+&)U2;f=VRb9L zxx}RCa(2?*3}yDymxlSYH~*o*rtH4vEfRl!U>}g(?j|Ua@H~?rD)bwgq@Cv5OGB6| zGc%`uu2f$t1GGaf(ngC6&|u{~ea#VD&Wg*k35HX#+0k>(E7(v87b@ zN~jQLyXw1JEsM8Y>f9fs?7V{Lp1niiFn}A{?3U!|%3Uk%4a?n+iz4N_3z51#HmX!y z6-$l-_tZ^{zPZ~Qp_#*QbPOOb*p$I}0+fBvXlM+#iMg9LZ?nj%AA@WNORte(=r*>8 z@yI(Fk{(Y`5wp-tw?1l`X7USMVw*j^%&P4S7z+LYn&ggveM(T3vImSfK zdroa}o~}dUNOFsbc>ICYG_lv|Ptp!|@!?!0h&dx11iw8;t^dPHdI?C}{8@BKxM^B7 zbgf8^pGJktb#5w;+MJ+0{#kVSiPG|FTEk<0G>y{~xP`#7wMbKPi`!XO@#HUGy{-NJ zFiALBy`dVMYb2wEM3mo*B<=+}zS^pNd0X_v9r}sY)M{-|6$=_etumoiHneI+!Q7S6 zYMNV1Tcx&_RMS422DR$v|7uf#(k5aP0!6e%LJce0I<1nF(_4r%9^6okv=Cc|A*~h(X?(;y) zRzHV_@}r=e0QAQ3xvMFEf$seblkv-8F@X-Skv|&JZm}O#hm(>Ew1NCl_=BJU`%$y~ z5^R~o@P}~!RcN-#l>_#zGM&PJg$O#O>Bv>6o?VfCBdQrrd6FwU6`u`{TxV{62se(a zAjKKbxWA$)H{q{G8rmZfo+XiSYzi4)llI=b}f>-T(x^T=^Ts-Jtoth#JH^9`sEdaFI) z@V@5}e(q}xP)!mLICe#L=%k!f_>|ZlQZ}3%lu6n;u_droyIoNbbGFogB@L?0`G>N9 z(SY0ekYj$mT+R&K*J!{w1HX;_YF2Ef0cUf4qvUUtb7g!Ab4TBL9`Ut{KP~%$MmjUP zLbe2pyDZ_vva=VFM$zUO&{lKWm|dHK@6*H$;#Bw?4k$i{om2hq(a3de$`x~cTl#!j zplH3p-ga6o?*$TuA(|Brn}}8)>fGVr%e2)E8CybyE#BhaDAjDF<$1+fH^>s_tTN|S z$2uBs5oam86%9LQ84Bx}wKTp_d{DnfOZL!iH98-x|C{9h8;!3OXWZznJSuLV$19JD z+u6+J(qhD&kR{Q8bEjdY#H>`xJ3Oeo!}Tj9{|cqN-Gj>8UGbz;_9TsWiiLwZTxeb@ z8J5y`R{VBQkG~B*D%C$qM~uIqudGn= zrqv?sUR2A?!(U6<+R*)c5#2w;MPK2UP5TN58VxM^svanCnCY!33xC&dEnmkaBVbEf zjaxT0!$a7$y8I~qilcfIRS=mcFBbO%uusH7-GnMGay#kMfEuI!Y5Hiy%Te^@Ts+ZS zGPA{TG0VtgNFV(&(&$@ZPM56dQUVl90QSpWXObmh)2~Y{((Tec9TG9!j%R|k|2BRkss6I$54&KvKo^iW>iBk1 z>r)CZK8~2$Q73LpMDdA=v#>VZj(F#&V>iB@;$zm6l49zH5(fCfV)60%W0GGs2&^5| zJ*b@SicZPxCvrJ`gUac%z2}*>L}|$2V$cQhB)ty}MaxMHL$&D$`5_Eu5MkI)&6i;_ zCx&~Op?h88NSkk=^Su{Ph>>4#gBfIBU<_ZGG>mm+rg674y!RR2*YXQ)w8_4pyc=QTg%Ns;wgw5l{(M0;YRVU=mt_OawCL%HPAjs_I{t^slCNmpzZD&Zje@8O1P2;{O*(zdBQw8rz2p}EJ#3n;`^ ze9Xejtt~zd=aq;Ni%-DIgXzgou?j5*cQ8=Ytiokzz;)j?)JK-lJ+!0Ip^7vM5qp`x z&;hWBFXPuJzJyKTwYC0q%@v3Pd zWB8>vBkaD+$~Q^y!1=t1^UuZL5Pb4#+0geEOa$v<;l!Ldbvl9jl-cIWf{%@1VRVxKJTvE6@4ksg7@wAC8~+c zx``iM4(FVeXRhLdto(p&asnEXd15d6(7ZA3 zdd?0eYvMa`wj9K#VWXJ2aJmgU3( zoMymUg=j#V_CTj|0eI?GYIg}I%+v+5s7f{_>NtQ^!j%r3 zx4fG*k&6XOZ~R1+<9f}-pRI?ab&)pJ9q8wV5&hjmUb%x+;Ws)+&xg2WR&);vzTaKt zsARNa^fgQRqgZ;!JE!0XcOP>4KklhbYbn>00XNc%T9A4A5xg^4_M|Xkab<*4CHj1o(~gAhT!efc zTB|w+?m2;Pzt%?nvYT*%N}@o# zKH@dKkkf?)1lM^vkB0RZybI-ijsJV_pHtTey%qq$MtXM#EK>+T#(rH6v~}YYHf?jf zt8NHemlGC0bLopcb0YoUT!k6?xcHgzE=!oslB08n4flM&Jdth58Ey<436!u2pEl%- zeDlSFb0T2_14wms1A9wD-fRmSZ^@gJmTP1a8rWO)`WbLCPO;aD?nFu9w^?#{&seI6 zeY}`mIu{l4X}Pq@P80*9UA58>u`XwHs3B#oH1@-IS3^`vLr$6;%gr>hdSjlsfi*Pb zJzB>a>++V=vYEAckGa{g?!3pH>|M^hr51LaC2yILz1x_#yn)SX$a|uWHPz)kS<9Mh z^UB?<#mP=CEu8@vI&2@#qI)cCwk6MFWOIyp6%8z|ueqL28AZVo-Gy!y?qYRC=2~`& zo6UpV*aMGM%M36X@vPSYs=-}^0;f9jsx0h%i&fOqLf)zibD72A&b(E%?0wZQjIPal z*3I5mx-{IKx5mj%v)jiy^PZW17c)m~%X_AlohBz)?PjORN&f0&^W`MZTiAS4Hi~=B z$WAxr{jGt$zag)>jxDImtEpwJwRyE}*5=Mz>tr8r=DlEHXIS!HG_o^|c`r4vg$;Qx z*Rc=Q<*ln_i)!=MyV+UpyjPs;L(aUvTi8EX@-`UR*~Yw$4eXqTyjSbkKi1{FR?9wI zo9A=0c6XlN$vT{Qbr#lX$=hUPi;a1&H?VUX^4_Rp=hfwHu4P@dd2hPe`R=?ePIiGa z?=1_v(2}>+$SyMGz1_h6sUdG$9i-}c@5tDKrNl$e4%R^(bd>i6mwe4!IEz&Q?FpRl zI15Uq;6zgFs&J{n!BaAsGgdazAQ#~-DZpQMiM5y=t;~mGCX0_{{&m&{)8~+>OfnLnc&z6V3m2>Ep{>l)X#~{2OW{i|4XtS= z=U*(AwUJC`NyCQ8F0BS9ry8U;P#*0`vEi^_J=@RRkjIBG!3)Ce=g?qL4Ev1#s80_o z2j&MlRz^NI`B8dITlid4exhsi2&?!t9&L%Mo|zYkc1-LA+|%!R`_Jkp&;|zo!s$Q! zL4c8VNKz<@DZ3;YzCLS-SYf>&B@JJYG#Y?tuCy=|i-A5#+#N&cxnSD4M3t5KXhEi>9Jp!IX7QFl`$t znl9o0jGIK$Kl4S?o{NGhMJ1YsLk}?DvZnNr}TTMzCwoWYR?U@waBMfK{=u&oEa z?mbECVu#{8uqEbjY(c?jThsM|(JRHt8%~or+bxD8K(u=@ZU^P%i5aiKqJ*CuD16}- zkgTdICzK=%|Ngmg$2sGUN48Z8|N5B=&-vkMJ}Z_i6|9#aPj0_j^XS!O6DwLI2-=?+ z8O9BHYa*>}q*+hL%Q?CY8xIZ4ZIfj##?ftx(4`(KD!U|qvsCewRQ8qR*dc@Q9yY#q2Vc;!?rwW%JbF^c`S zaxKB3Mim#Km_EXGKj}7Kvc?7>>!Y(#CT*hwneiG}TD&r-i(jjHS>i@eBfWEgc*0^! zvJ6jZh)fuDcdRxc``*|v>hXp%(gN^bjP6;}mlUf?5@V8#VF`#zupk=$6Yz>y@IB!R zI$*eLRp2VlglX8lED2K;c4&Hco)O@zdZ-u+Nqs8MXJZ7x`2fNfm>UV_=u0xAJc8mWss#&tk}Ls zYudwigg9{(%_>rzOE2ABVukOl)^wIHILp&VX9Wx_$dY~4HHu+Y|1L!c1`X|*0s(QP zZf{u5G0A-KtO?S=Sk^d=h_QfP=TpqUVED|0=^h2&iOl>nkjny5E6*^XuMct@uNcPh ze_v5Z4~3J1?;v(~k~kvC7?)%jX=(fw9{X&jQ7bXoUHD&z|6creD|)!hcq>KzxNJUY zxCY?6wqaCA+_HOgi+-#J^QJMhd>7u*UafDhZfRMvSzGSP*Rp|2W7_e=PRDsilWf-h z{zCa}u)@ZTD@Fmx;7MT6>)T!B9hGw&xXRK1{}r8=?u%nrr)bfWJEH1+&4bKI|&qdKs3jS!PrW;OLsFn z2Un3}R_gt7aO7|5Rkcb=6PlVOjTJ$|#Iu0OdEj^QEaF_DhIG`q0$6hp9UO2(nopLE z7sl&4x1JskXe%xj24>U3Xf@F=h>Ou|7yVgyif{kAQGvU0<#$u%wRl-0T4UbtxNqX8 z>D^_!tol*!^P>dRGcckk1l{*S`SdGltxTQyQOzHBP@5Wzv`%BQf>2w5wa97)!@?30 zsZ&AKE`}q0zDL}Qc0mxwTB}zLZ%B+&4J>Da`>WgCX068+P^P@+ah><8%d6|%UtJ;~ zwMz}l{YC~Tw~AuJkTBM)9nu^c-#ei|C7QJhd+~jGrZMd-mq0ZyI`6%cfh9#};Lf$G zvr2D*WN=xG>M?SKMXT~0%79&16F$`h#h{|Hd{x97Og>OKNXtZ@$z#ut37LQ0!Q^X9 z1xv8|ilc(0pT#E@2W7p-6C2(fd|K#fGw?4RTy3eRCjD)@m%+B|_7nZm0O0GH-LS#f z%QBkN*593WTmWd|68ln}eJr;AT0ICWx$`p?8MJkT2Ll9T7S@n6kIm{RbXmxiDW2+(25li1-qE*~*qSqB92MR=; zUT+{{S2B|~APd{5B`SfHXdYtO~m^A8pMFD#fU}C1VX^sUiB&fvK4$QHOGH zmDU^dD8Wceur+E6W(u}^X3dK4|40f7>aZHRWfPtMcfW|6*h=B~5+M9a| zNomdNOuK8Uou24WGDP_inYEF&8K=7gfau*Y1$})`a&1%&UI1n=m z-Q;Dh4kd!h!ZnklT^^)22_mnVDb*W)RH5*a2vibJ8nd3gk6S9j;?$rrB}=+ z-PZj$CZM)}^@?u-5{?f2S{|EOqa(5pz8hK>8m0)56$kt$>*3})Lc^}t5k^($yXjJ^ z%ytUSIF%3%DUpgoTB%W|%*C3=xilPQU?n1v5(yJ#K*MpVj)6#7)|E=TPD6@Ta*9B$ zPr9$92vjFI#|?ChkWMlJJ@S^UaJ#5QbO;V30wu_i32>l;$fSPGXNtkiWKSA8#@xr4 z=EN)>+SDS0Z74f?e-0cN8g3byn!KDIKFb_R`R7p3JX(;8MwW#tMI^Ah6r;BO0tTw2 z?cn+>3|p?HGoNRO7!CLy3lj#N;|x-w70oQ2Mk8h6;B7*m{9b-3n!|u`ipVu*i_B}@ z(BpeXVp)l8%@N@hiOHfd6%i* z)Z4LvfgkwJbLZ;+O7{rw9qYEQ()w2MA&Kdq*QG}wx@fZ^h@7>#JRC;u*oyA>8zhl> zc@q-<{5SU9818mNx81Rxv}=20mB?K+ZGT>WDY)O?U9YK-cW}=+sv{4cRNqdMhVy)b zk1Y*aDQL3cla`cd&;5+&k2>@Yn^qA;53tN6snJ#6$@G!ziwnq;Q%?h$EhZTJX=%@0 zGU5ubR44#RE*$sI=8Vy1!_4i5Qf8Tdqv zj89R;D0j?#GV>msdrkq{QzP~_R5VJH5k11eq(FhmC{Xk*fS**zS&)eqCG*miTIUXw z&pm^Z`kV4UQjP^A<8R>R05L;hE)hAdzhC{?2O=rco{CVVcIDL!rP-n7CAWzZIU25= zMHy%((lb|1nV-Gxgd@U9;S(G8HAGt9`g>NmY*YE!hY3FhGIV0&0p^!ikhEn|58tw+ zZTi%XQ99i3xV4OF8KNCkr;1`gIE~3RSp>`U`yjTO6$7xXgvl)#z80}sZ0uuxr1{l9 zW8P-mE1Gb+QH64f?FW>lgQq5Ouy%m13A6u{I{<06Zj&9;7<*EiDXihD8Egh@#@=1b3CcKnH-#G{1yy^9+phMux5xw?YQ~@cEKua zgz~i@Njs8jNY-X>-`%Ud!yV|esYh{aY2r%o-bFP}rxu@>=ll_^|=hN~$iIi%A zd!L(T2&P}44O0R>O%}qj!RkK8O{`-$Gzo2vSf}IWM#qRQ$H+EETzmMLu;4F0VG%Z_ z@2AA-uAIsVlIR$Qfhq6f)Ac+*I+vm{Op0kbF7-b7OXspvC1HSch-P8On?B?r8_su| ziewDwpeVfoTpw_8xO+4+DLk@sLCoE0RBzf#JFxHZnn5ecaE&(t{&T;pR1q;i32bFx$g~b=>mVIN@_xwC4q#uaUCzCyQE3%YA^WLSMZx z)7{BIN{GpZ)za;j_5{z<=xG0Pf(0w5EH z1us^6$|;XIerCt|>e|Sea3rGGD=mGC*&FG~X}2Ey_3K7u&y0I6GCjLxLqJLJ^6OD( znK*(pY&x3!yO`r|J!u(13@<_j`<8n%9}$DRVb8A#mDMu?HZxzTlbkWj-3)JjUJ{yr z4Lld{?z#!Q1!MSBv>P-6?)zv2cJk7qz(X#ok+n4Ng!E9RbNX^)_Ecj~5 z2qItQNROwHTPV@kg)RA;KYLmPd*JaObt`QFOOk1Mny-z3;>Bp zc4`>R#EgIxm?McX%iG9Q44`uI;7f&gsz>znWCo1Wmx0AzDIoOsG{hdEu<+aPH72g}NT^*?bE=F`r! z{RfzaDDpA1PikYPQ<6%?ky>xSu-WZ)-zp#d5>kRpbDu(zuQr2iv^zw>!|AD;eh|4| zNW}d0O%WUiI_2|Gezbrkaot;~}6-FWN8 zb4~=EiQkp2>yx3LRPKoI!hPXhGCkGt;WD;rG%-B?Q&fs&t=hOYVhWV?1BxNpU)Q5U z8gm-KPF5YsYX#o$d@nK472EX3s~L>pM6Y?sFGY?8)~3%S_y{m~`fyGErCXdFE}Xdz zvY(wQlYk2Sx7j^HW{P2;S@Yy(L1(`Cpj2BO$+bPxz~=6g40C?+r1-?f-AFxN(2u8` zfN|SHa%v%sRDQME?&C|V=S05~h4C`_M>>-_ zP0q1K4v*=hOJeg9~4CTvs zb?PTvudJGyIRXApC_e@e9iGy2J=MDE>T^rSt2~|-Y`ehJv0=iNj#HH;1?V#?77&d? z;YL8Ee4>u|1^;{SUy{Oz-UPrZFbXJ}0JOE48wS(tr@LXA9i3{Rj29NukZ71{+n=tkROeA&h&5X3m&siUs-sR z%5iJczvbeqUxT{`J)T574Jj41{M#!xq;6DQ`GrUno=2)wk-q z#{fLO$8wH#zfZt`P_AcpP!kQ8J#uVEmmK?Bcy{y4luAx9WSK1`-*!zVeUq6DeKl*P zj=wOae`6eCAKu!M)>qHedH|;}liu2GuJ!+I1_Va`Uu}S*(a-Dv-;Q$Zawxmbq&FP@ z5yz}@HqpD*2iQYe@SlsIRu;0gSfq8gW1)XaCr)dM_r$5;#NgTqc#Q`!H~_Da4}WNs z$HiPc0bjvPsxDQ)R7X(Iq*&Tj4opTyJF9+t5bUj?>-?N%&9tP1NLTt0?(v27%}8+( zV_5(7`t_~eDI|XDTfLucOG>!amHt2ob(!fnA;XAMvRkH}ZvZkg2Ty=AxXxB6dL1|KSehd@VjuxMIFXmbd zNQ7bfN!5W#YhfLg*DJH_Te1U%!!L9p!&%`UQeNvM&Js?T3x|}<;W$ILEdF!ms@%2-JxCYZnj5wnXuA!62g(gvr#-#+~+#~v6 z#~amQAKmf5@B=kQo!-LCrTAPUrudDH;cdPZ1v9I;82ij>5H7QN>x2>O>Kh!fTi0*t zgza;Drjq>BGZ#0D;;6%nHMtf-a3HtNA|Q`3QDItXH;hhPfje_peIr?Mv3U_QqrkJwvWV!X_$k#E{SO4;yCnPQrXspr|>3ZyRq&HG_!fn7K3t zH%KiPQDpe1dBV)J`%I-PKl%V}4?hooM^#{7xl|qYIpK!n554T@asZ?a%eKxjyumS| z<8Ou@lxy`m02e@u=@Lft3Bz&EzyyykORbPAm`2}d%Jd|VRl#oxy!k#8MM~3jKpKnD z-fQydE0~X|pfrmC&!eale1Z6ElUXqFcF2#5ta%P`GVHbFlE%}Ll+r0)h1?QmERCEH zotFL;pk+vY%$%XS7?j&44CD0`fIMRAXz4b_t{`m1yX+3ZPV6n}mFzTT+dN@C-RTVn zj_2u=j|$g0!;H6egjf~Pm$VP}1wl6Q6Vs$!Vfmjt; zfuX(}q@1zcHI!r8T6?^YnX%r1Yp|fj^05iAST;_x)@FuhC89OK@e<1vMRwxWo!ZI` zpEDGkQ}}L4$F}wR2_jghMhFgi`8xv2Ie|79gE}sJ&QQgp!tXOUM1h$I-w7J%Md1Mx zljX26Ixp&BwA{^*9C(FT`@*%T)iX1&sV}S_R7~$Kh*zdm-%qqin)is$kT1a>OF3b}4>y4^+ z=qw%RJlVUv0(-Ek&!LSB?rwEDhNW7kP~IMxgz8}O@j3^P9%~)3;70Zd!%*f8zU3JZ zR0Dj=5Pq1nj;v+0UPjlkKG3o%;CW_k^~-B(&04P+qme8-5zug50v?6~z7^d7 zall371LBYhy&&=8WQo_L7`#idE~{_`0d1%&s(~EojOsD~d6oA@Xq=88Hw!h^b2>HC&s3S<}jtG9*o{-MvPDD+*dj0Pr!2`ON-Kg`q9;r>sYg zVYMqwe%h9}-=ROjY&qssKLWVA0z2-g&{)F3q7a{UT_StHJ)nH|j`3 zN>D$DryoR0=&!=17yfz?%nH??FAs3%TdU|WcLhslpKHt5Kau4$Tx4Ub)VN1m>o9s9 znWE#amKJ;4{g1Tmy&X&i&+Q6f((-z(WsEI$LirIx^>kg9L;Qfm6sF^EmKjsl?Q7 za5^$=LgqsS3OR0j*y9w8CRN~Y9I@-{cEjeRNN!|QmDgc#JB)5Y&#_Lyz^w*(6CJ6@ zVCSbY(P}h_usT8vtRr>JMKI)z!nnnRu^q&)utF;Pu*dKcbV-c@c?U9GFvWdC_BUImc<V5cRnVyJ^-8Uv^s4_wHJC`G&2eX8J zKPn{xkNBKMbM!Om(-nZ)k2d;#wEz-PFK;-xh5;;2-4pgbxOUG;SX~lN*KfHX)-+xT8tmmhR`?lX|3?uvAe^8cj{WJ}v|Gu$(Y_Mkt zJ`YbbG^`vGB0e9_jj*sQ#8%0q4~UIgQ+|L?uZD24uXcr4>(Sq}5{Ns>Wz!^jnXxaT z1*|Y34fwFrqO1-e*YLV@s4~>FyKqIhFH@#{9Lo-?7UYOZCOb)|oT6t_DA6+YCZ@EQk`=cgj2+ z3N9m51W|wieu!Rg!!Be!FHN-+Wa}~b;0wWl6_e;jYoHTPAK~;yq>miewyE2==>&5d zeTv^>dEJf-`!<~7IOC=RwoS7OFn1%BcZeOt@DY8F8XCStjbd>V9p@5^u|WMZVti#k zJhHF%g>;O$TWT6;=e((v5P{Jw6zm_WvpLLYI@t0}DA~KP5@~}4v=RaDuC9xE8gWoWB>KB?v(W~u@%O9D;HOYxcb3xznNU1EMmTb`>X_?INIu2?O^ z<#^dEzZ^?n-Z-P=vi7V6cE%oh#^UwPcpjN0{axX+BvoSuC+4j4i|F zQ*niqiC`%);rL0|iN;#pKbcia3}{!^%#xlWF+z1{8k;&G+*O zbL&xLG93Bw|KiRwZ~iEo(EJ8^-T{nCT)j%NZ&*Zo-wRl8rbFXS%!O$luRuP{%Ppse zttD|0%u@6rg}+7g8`R^RCg6BFu1hIu7n^AP&%ex9B@mcM4kI265};XJ!>Cc4D82|j zHJ|cWs#@0Rg*lH})`KY^9=fLBpXFC6Ndy2n7Y2WTIo%RQmLbPjGS9^;vF9a7d~$)m zNRzyDRCT;x6*`pvqMV<_%TrR$Q8|Cl(NKOGdrX4=37VfiR2@~p8AXWdN$Ft7L_Unn z^>9jAP4Jhp?~A0^G26Vtk)tqwu(0zs3`-h46ssJavDqhwvN~j?XQzEKI#bp|-?pJ8^b0fiQ1%L(Mg#@xKZZDFX+h3U4X&U@$d-}S68u%j<++VN+|nLv9cD$ z+_KA3vfFAk&sBRxOWUWTHfP-j&_J$G^PH$AA#C53#9Ngu*gC! zU=XtX*8GKIbB{{Ut7Ki`oz`0=QN^5g3gz;sh*S0Y;d?eAk42nnG7XO#D?v1ku@R?Y zV4OM7e5x>>FeLxzD5dGWu56Ia7;l%=n)U($HkZk~iE_aQFnh6RqI)tkp%pIO12rY- zs{fi~P&YZ`@3YQzspg7Q5l+Y0owV@=!kKF$CfWQ1{p7`@jW<@HYh(TLe_PVVLAE{{&8umoII5ywLQ{cxH{W*@Lr)>8+3>r9JzpkiA5YRh znq(?XDp)LUt!&99rrmEiyc2mF(l=6TdIU-~`e)H5)uwOsDdL=xjTMT4fBHtORlIVS zY;-iqpJ)2Uev^ldX2(Dq=){P{6$8s%3?G*R5jE!HnPFJPY~MZb-KLx;Z4UONfgUK8 zs>2-Dc}Z%$B=vqoTf}BOO~}~7?SvL~=Q%!oY+N5UGgcLLcoIkHmveW2u}>lD2eyB@ zrVP@Fo*n#B)*A8Lr z%QmDrR}aCZ5^dLsALVx0{%5Z_5CmkazZZ>DzIaAr5E=m>9gftyugNyb7^5a(r=Pl**DOQrrtw9 zS1BYHZ}g$5XP^(No8!A)18_Lm!lH=Q0RTy^?TRTH&JFQwkV zF%+O9SO?h)1+|>0Uk%f{gy~)A3oBasMMxGEOth!zTnVbC*CiaWN$IR>4XfHB8Q9aD zXq`lN88(rc!|}3KKRd6oe#vP>)+JVk9I4E!tohuB7;j=_NHu3(W!X)VL!<|uC2`{* zFoTVihoz>S5@A5^{l<}117EUz95HEi#8fbXnDm*%WRCxGgEuLb zPZCp-jQS)?mdmCQ6xX|RFF|4)hJuVVWW979K^qMM2M|Fg4VK9^CT<$6fZIs4mIkpz zfau{FtL&YMIy~;jVAL_EuE`{euJ8btQmOoh(NP{s& zpo0-1{;82=)TVA2x$rJ{2WmQ0=j-)uBZzkVt8?A=p8l_T z{r7HP4`PeHAK36_eUA){hbq68n(C#)XZ)M53G=SQRIq_1hljZ0V_N;!+F)aUt12n| z$)tp3zq$CEzdXkLrPHvTHW=iKvR_(!VTyv%Meyf;L%QIez_>eQx3eGM!f5k(0>FiS zRWhINvidrKug=Q4K&l;AMc=NRj}Mjo+_fO0!=+sq0atQ0E3SEcr0isu*FxM8b0HWi zEekI^0c-N`oNpvy6#y4WP62XK`^ZiSt{uQWwth=d44m@{Xana_0?snegkR&lYgr;E|6W1m!)!PigUN$&{R5CAx>@ z%$IVO;#xU3XQpJh%||Ouw}fU5Mr2~sUnSMwB<2h*Qru&5PE&ouMg$s4%=opGSp4;L zJFP33T$4ky*Op{+dHCxs$(7&Jutg?EEhSbsd&Hx=#O9D~s+=Vc$ZrerYb$wB{-qy= zrDT@;`;h!QNB*_TzjNi^dGfDI{+%!XE|7m0$-jS+e@o=w#RDss5Z+|xE$?T9(*oZP1}Kap*K9{K*w&K zhU^X3w6s&*-S~DPLT-V0aZ)s&Brt!dK`hYasW@3+Iz{mkjh#tjnXfw_VhW@tAUx<6 zCzp+q8}Sym3VzsL76}}Me-=KZCELV(p_ALW&)h&`jN(2RLeqeA-{EuxH$(g`bl^L` zYlf9wf|k1l32MdfLRNLo?*@(U|6dtxS!)Lhu_SkxECvK@$(;o@8mLR|^3~BmL-LQ_ z9oM%v(6BT4;()-WHu)05id+W)ck<=x^R~O!(3xgqw zQO7n?wFmWtJzLjTudn|4(>k4Mmv!r^>Q7r5Y*hCFnr>bwHJIg_D``=@>I{a?{C${Pv4(^k5HopjM2y#hrbDcu@3RDrfrq_{ z4jk7(_9_gyB9%#!V}6O@&$LF{s3WBVlu+@J5OB_sep2!Xt)IKuT1?Y=6OZ(trbqOp zN4b=arMjBa5^kU!UIy=-crSnAAv3~xM-XXAJo3`h1cAE5Bi}EQXnEDRrzcPhOhvxi z&h8C^5)Pa#Hq@KzH^*yG9M!gu4<{XcW0GY_K zRV<0ZVQ7LJ56{~zx?2hYMxDkyHB(e!+6NizfOWo;gC=!oPh_qff!v2)lW{eEii(1s zf>61f8^)YFk}v}-45(l$%=E$EIxPe4xBJUD`Tr{8N2QDrw2U~EJ*W&v@{Y3P9Vh{- z^lanOVj&`Sa`L!4o&exJ^KdoND%{#!K$`W1cJ+u@A$eSnoT8AXsJbATNA5_NJXK_D z^!Zm&-6wHfRlnd`NPIFcq@~}d&n(CCib%Mba5i3Ndg!#c`3|BsVZ9*i<$pxjl{#Ggz^fk zXNbL8vvO61o6)m*%!ZeXYV!QT7t#X8Q%Y49637KY-xenFESN|BXgK!?^Ee$G zaa6W)F5ukDp}NqNGRTILKRS`4Py&MBbPZ<~9pOgcBT>`%WW?V%e?#BKhiyY9UggUJ zP~B+8LWFHKo$pkx{z=LD`OT61jg$k&2UC;4O)*30;;0iv^*+- za#PJFDrC!}?$yMBC+bkmIPhfXf1=I40lxucWP;Pl{K%32C;s-iz{8DbFN)NJcAxtR_p9IT~SYGQ9> zm5F2{-|NZLLdrU*lHT6{b76kX-|oZWz4b^^>|IHsE6Hd@@izV}E|xT4KZ{=@|8wYA zwNndgk?##{toGijFoGB-(ueS*&NBOeJc?1EM|J2!`tLl@{r+vCSn=|?M(wl|OLBN< zVL$7mQjBY1Oe0FnU^LZZ3@DQu4*MOP802;n5&f{*F8MYZ4DOP3m!KR{h9jS%dfTW=We;vFaF|P7TDR}2a(Zy%pxRDf7GDY-A#d~_ zA#ccMuL0T~O5VKx&Z}e#DTN{%Ek`UyHhe4SmyFST(hNhH@Zj@5#EBsR=*}BP1QFF3>ONs{$tdK}JVJC77L@HY!H9ZEu{PVynWiO~kBI7mEh7CWehA+21C?CfJ%tjVni{Sv`SY;=Uuc=6SR}yDb?yVC zYA(rj61AN)&mmQRAi1-M`a#k>gH+i_ZUIqGC(ZYfpdm=6Q)wNEF%@R3iVPFC$Bl@a z{o(9`vwv*xJ>K=+O1O2O-2`{&aOIv!YQC3Ro~wqBDh*M?;W>;QjHKC1a#xV5Cy6?f zsF#uEM@jP|B)5cmk4FpC4zdL%3tNV?{NVHXY9fC69V4}8fr83F`^V3rBoevJ#0}5V z*%;Q%FixmiEu~h$AYQ1MMs!LT$@b%GObvr5V_kH0_4!&eSrzSBW%in(N&&*eX$Ck? zz0u6DX124toxKAL%q*?Iqi8uiZhr-WfC$=mkea+^aMa*c_OTEhH5=R#rzpEAuliYb zh8}W_u0Ac<%!Il|f5{1N=G{{8SO5~V;D`?O`%-XtM^!!jRd1Jq!#b+orN8QTq+o1E z6XL0v}`T)68x)Ne{bZATScxNAGquS>z99aVKwLR`rr+k2mOy;lRb^AnRN z#!n3Ax}W)ctgu3A*;t*n-WPep<$Ug4r0Oo&&AdjoEEz-8V@VbCl@UmnUCu{1-`jIW zJx3iK^Lh9rRels}mR-(AU`(RJEbzeoPwJYzBw&1RXYM~}u*=L$^W?$_8@dRG?ZYkb z{{9{m?2r*r=n34w53#-Xg$)J$D%H_}P#m`BZl+JN!*-jQAR8RE=lbbTHJF+7(yCXb z=omaq%ypWX+`mhU!_L5;{5vuEQFVAeETM@iG%y170Mu;~6k6tlMGyHryt!3=fFlB$ zBKP0Y$tOgUJyO|Ig#+f@hLhI4*m+t@+w)Z?%jQ4^2v_es@78HCwUby)8Ak83v3~I9 zH&ky8jb5{js23CUBBGv8)bf|8{v%QUfvAg!dL~ih?fpbOjkNg|b@?@M+VJ|-6uqut z%!cufk*7vbRCz;K1*Vb$+WXHn-4J!=jFhSQ=DZ;Qps)JJ(uG&Lu$dnxg1%y=a;xE znzlWC<^ST?mN6^o8aK8^Y~VQNPS{A`wlSWue$#FKrkhEk&s61&8BIgVa~5O$y88@k z{;E4g$J|Qe^SL?EOacuB(@rP>Mzx_s{{ms*e}NGuZb0k0(zozuwfeI>QD7KKw(K|W zGIU!*pzfSE_XnxGOWiJ&*ES!Ly8MxCb)D*eAfRdUwKg{>fvZ*95n$Wk<^Ej+m^S|d z>TU8X|6iKlLLk1)zqRU3smmv|!Q=fKh>32iW7V4wK!JBO`;@>#_;zT?b1d1lZE zN-y?D&=%W#{~Q!U+cWzggCd@$dFUtCpXUV{p&AtNx?G5If+_WUK$AR%B!l`?v7y~F zSJ&~V&hF%&O~#x%odNvX#K6msX%KKDaPa~HA}-zhV=|3^A&3;17Y}R5EF89@7wS-C z9#f>#P&a#^jd^{2L3V(PjnAg&*rGp5gk}ar?{el!oo9)z<}d9a^C|+*mAWat*RfLf zN(!w^uG@(!AE$NKB5?VFOkd1m7V4G@yUhozCmpzBKYkcGNTfXsweO`mak6Ikh*iu2 zfhj$_3``mdyzTPCCs_O{beh~`A~XGni<((}5usAtg>2dkXc+T~9?~xJerva*-={J9 z$2tgv9$-PvdlQxWW-4&d9m>#jWqI%AzT5_<>|1{lfmV*>C_r^U4Tr-JZ ztMkK7C8fiy!=wlWhqpg1UmC7ciZH~(3PH~5NxyU`))CQu#_y^E1(QwqCZ;Q1P!e_FYiaic(y(r=~p z^r1+DqD+!5J8uP#I64*IY&uv-C>T!xS9oA)cpxu4RTp?5oHP1n>Uy$uV3@SHz>gb) z{!S4BOTxE9p9+NYV@ON`l!#s!j=2J_UNJo3j9C8Bd5q2f6+}SD87LUt0`07U_rL_m z6WsnvER*QKpT>rYmsvUkiRfn-`UtsU{Jq0bJO+)QH@w4zfeXykG5ZbwMG4mAV!fa8W=SBgv-4!Tgw-78n6p33lonocgoEwXfqAATj zhxGD&oTcyReO#u|={t*W1%3Sg*n9W5sOtQG{QW+2mjliqjyJS9M?^3%W)ww}oH+xC z1qG8Kwpz@9qZPI=*`}@S4x=57O(S=olvT6Wt3#mkDNR*Iz?l6fgDG&3*2 z`90rfK;6sd^Zh=4|NeeFn3;3l_v`EZdcUrozNF#T8w~&4P=4Y6RK79<|1Zl2J$oCY zXMel}bEVKU*rb7yfgJ?wGdw&~zfu?+YJju3;q%2qQ?G|XjR}2VoRC|t2To%Nug?o& z`_IbwuavVgd`4^t=S2BD9}ao-KSEwnLW-5+GDbOBe!3yeJ4#3hAvYW?OsW`{GBz>L zliqJ&RVspA5Y8;VR$L@Mk!1$2n>C+R5E(v?c?RgaI0u=`t`;_Px+4ouID>eTFi{EoCewPyed^mpp=SPyG=;0$sEaou4 zMGvv(bT}lTUnozJ^i%eGmJ9!iIh3W^do5L4U#cDKmnz@vvM=UvryTuveftUvu7n5N zI+r`*0S7ef4Ec%H-R{e^rz>&>=0r7b`V#tZ;Vl611BgLy-v8oPW=~{n4zFJ+(3ihd z_88m59bpB!Aj<%8ScF_xpo=_jTcjw^!ISx-&l2i2nlJSNWKFP4rR2}}!S=f}kafeG zb?G_}0wPkp#-hJ1H*Z(JX}HoI_9FO8B7JjU!sZdge}!qvKz!uG@6!$6Z3#PP zuibxciK&`)KpDH5A?^RWDqM zOfx|2awA!>niZD7YX#U%y}L<>+3nu<(_(%MKfn)FRQK=(_b{mDA7~&g4diljW8-3y zx_Zj7t>?zcP%=0#M7o4w9(Qcl&p}r!g`N-4DwlgCn5H&iq&{jyjy+#sO7EBt2Lr^s zD;%Dyge&u;go}bX^XtP{l2JBch~6$Wv)h{}3|$`(-h`?=yx63EiV)#-In9xsPi^c4 zW~@kpgB1#ySh3~8&cuW_`5k)FB#a2Y9)u?F zKGC%AbrXqTh1^&IOjPbA!GFAsGTKa`ko6GuL1b{i+hiYe8(UC!wvH(f4TdhzVzu29 zqm10}$GuDg*gd%B9q3~5d0P^+d=Z-1pLnnKfQ}9=Ze2XOXe>IQOvg?&yNMj*Eh+#wQfY^lO%q z`FlN8e+jA&etkI;PbP6#w{TZ~xnfGQqMf;P|LJl@5N=*`*x-N_4$#RG&MK5p;KE^i zlwrja_E|De-Zc^VgkuNXL(EM^KJs+EPZ*-8{4I2uY;$U7ZnnA2W$;`6NDM5$Dc;H# zFFgm9qJh=Tb%OEB>VTdE+%b#|=Z+SIfi`p^30Lb7XVHPNhe}{ILeFC=p#=iPBLw^p zY9MJ0{EEBLtR2DN56b^WlF9N868v%Xc zv}PVBVnU({ZJ`U=+0Cc#>Rh6{Oz2Rc6?NmS&*B!nPl<_9)DHUr3N37hY8i!UnSky^ zL-8E49&C&yn#ZR?3GspYIh!T7vF4-rkp^$_0RFM1^=u9(eqHaJF}JH=C^D?yO{cYA*E?rXu#p;$ilM3h7DcUS^M7ibzr#+> zDC*sd+}Y<&zNPAk+Pz=VE!i2vRUMH#p=SQEunC|ldq17WQf(R;(PREG(wl7SZ^iKI z4P3JSUt2NgdMlKuQ~NJ9?@Kn3XuAUI^uYND0Szc|GpLBC2NrNYP@OWiVc17icxk=^ z;C$Qx!Gxj{B10hNNA7^d)P5!QCC$8c3COw7tY;X1U!xSg`wNGbG(){ziBuRf{gLzO z*+Yt6d^7Te_2U1#dOQ8*(6tc`_w5sQLbCOxV&*F9FYlju4t)81L+$D2!<&!&^VmA; zQ7)P3qd1r~IRCIq=ahBZy#LVuXbn!_u4`3Z)0Hg07RUg80w@q+(0{`*+V!u;=)c;5 zgEr?FAh7Xln=zd6Jhj)n2>dP0LB9w7Lb`r!5d~mi+QNL;g3G0qU00AC%XY*i0nz;` zifROESQ%Ob_FH?qaLstvCDyFIv|xt+hu-21jnE-wl4kREW@u*P8+nQgve(|=6P6he z;2ZzUb*buypW$OXe~m)0ZTz~T3C1von7?3qc%4WIY{-dB2TsTQRhLG?R9r5J{Yi2V zznV&vnZ^z4Dvyn$$?9Cyi58m6Ne=3dW0_7EGf7I(lw(y!vP%`Z)MpybKadI||Jl(^ zEwV+>GAYypSw|$Lho_#?tck z?h4#p!q63+&8{dshNgtA{orolS13M(R_m=F&D11Brm%$!TUvxDDkQjz?iMcRGl+fI zdR7HflU+3{)pvPYW z(2NZ_2~k=#;PI?*2E}U(!t|z7jza_g6%Jox8}DpL3d7;5?_~a_>u1Q9VWMftK^Uff(6-2kA+WLO&$i)O00??@>879Ipt2gELd zwYY%0sAz9r)6_0ChSNZM8&;$uu}YKC-mv!e0od__f+uS-gVxaAj>KiAne`z|C3Byu zy;Pr;j|)hPlN^u;^C{A2gR%xNrwDgNtP>_|pO}Bzs#us)<4jY1=!Iq!{do@xJ?!2T z)f34_emU*SyP%h0QxW03Y@ZOKKd@K@>K^*bF`>Ado@N2c8sML$uN?#ryH5y4hj4v9 z9~rySQ%_uP5$hKR8{T?6r6+jtj{{&NTO{OmaR*1fw7f2g-0%N^FJj3GL3a)tr}LKP zJjFOSd;WE^Qs47`ZeaxL8O^UsU*OKWP`wX=t5&G!CST)RiGb5iq z4*AETtLT`Iou0r==%Rzr)F#(WS>8aL@7A5ea*#Lb-AU|$+c-a%0{O}n&pI#SR* zWbc3-zan1eZ+4kQ9WnEkGfi{`BU;gpCigkH{Iil$J*W{Ne^~tfusn5(1Zl zxvcw%_wHr8;*r^0I`qunXrfYcbCdgkT>iKInwwB_pVKi`bDhPnJAHCjd>U#+lc&TV zIe^gocbcRz{!-|p8L#se{B*EVYYo#+r~dh9L3QksoTWn(YOD)CM*Y)?x43NAB#eZ) z)OcnqH7NDhH@TbS^5^>NZ$bTSj8NI4^c>C6eSdP-q}>oj$wnJ&Ix=(8k)IInUftx1 z_m}EGi{^*)TMzQn3m(>U2l{;G6Vxe!lmY1~Sn7{vG7pIq^?uKi(B(~iWBp%ibpKH< zFDu!l-EB=>RBc(wffo(0wTA%6Bb;nCn-ZycMQq)+UUOos*IAkX8EuT@ zcs7#xIq+0K&N%4@tR6JOdUum+G@JM^DZZFZmNeS0JKmWul~mj(qaj1rJ?7Dnr9%rY zjzr|<8UJ;qY-HtS{TfT7zrJWzpEacf0N~6Z`eI*wj>%1~I5y?s`bw1g;#hs<@g=pA zTunD7zP7{%zlVthznD=Uy}1dKSISvFF!Ir1|5Qyyep;i{cQ=+oe|;BASbZ^l^)2tO zZ^Zvt-++?Zcvjz(aD7t>eqp+Qbl`ujuS}_LGLg1jE?6ANhLqn<4=Yt(Dwfd247#AN zO4_^GhZbv~euMIS%KGzQ{hjEvo-M97$ZP3)w{Kka8&f}-ESb0^$0YDOH?23c{{fJeUf25e6*eq#CsS0)8&eG7%&819B1eJiY$sUwC zU8wWhlll9KYtQten+9}KLslA&Jc$$-Qa&1T=GO-_jg{2zO(3+TcX|*o$hZwUlbd>{ z7roOv-Lh5j6~SyR>^5C?92TYx+<#GSz9{pfU`-U;>Scb=?f1`#os*OuGc%`iuJ&+^ z<`B#b#2wf>^!%q64nEVvKYecIv*l;xrA)@HI=^8kX{sk({oY^?*MO1cY$zlvV^=2e z!|LX0_f)UUX+6+aM8ps8<#YA?fDg9jpBVKq|Frchd5Rn5WV<~vBuCffHHNu=N-=kP zW|5h(Gn3#_1I1*_%*p(uub3t7h#!1AbC$YKjB4iZR1z0gwq2{^#HjE2hxfP2O2i|Y zJuG6+(TE>Tj5_o0Cx{>80XhB<9H5V8L{%IhA&=?7d!~$$GI<1)DdW}Ua#N1+YE?6F zM-+aNLpi3~MZSctcVoPn_48~~X17dY?fDmEevqgkWI}z4XkkRqOrqKJ9UgXBnMi{X zWm><7@LRF9TQ{*C9 zSBbT`|2;~1cYGAiYs(17J77hKm1WBa$6No_pPr2j@TVYaHW=6j3<@+(F!QQP_LKQH zRXQ#Kyt;C^>W1_1S%uEmp8?(x(s>%Tslp+-y49~j)*t0Isr4O|#tXh{AIl|(e4CWK z9R^_zOsX(5>adBc_Kr3Smsu(1zG;AnXzMpJZnoY*No8W;UV&$$oxVN42p})P9kl+F3bS97$K_ zYK$g}hEx5E7$4b%cJIR{q_iJvio#El%T3JBsd82694}@*sM2D5VuqwREf$*vdX$+D zsDRtiR@MvPW0jq<@S{vy*lQmofliWeMoy#jLnX~+oKeglK>19^ocyKk)AfgIcULgU z{j=IFUQOj!a+aF3y{-95PL53H@md9o6<^664_hQbU6{WF!f)x398EFM*2l0;AQM-u z3KNBynM|-Y!h0cex$4@ghEZkgLta?@59*cu0O(;56Lyq0M^+29;ed8xdjFm#xy2lr1h+~7c8 zli9pW^}N#23QnGcHzlD4FFw4?Qi}LR7Ea0ha+?GPFyN_ZKH@Y7xW4r|&H(noL#w3v z`}ya9`tk2tkII1tvU1SM(LQIS&&hl4)_d;Ox$Yhy-5n*~J&VeVjK44rln zSoi021eYQf}@4@OF&$)%=T27$e&3`##@2^Z1?Q>3;JuKXyADvJArlPdf30?OPq z#Axrc#Q;}$46mRx^cl0rFi#8a<^y9<23y0BCdR`*!&+krqLLrLIXo4%(Om0~S6hF& zdYuPa2;LJvTdJ7j*eEu$mL zOuUw1OpHxogNi{ti!X=sL<&7fwBs~vS17}9N_MFs_eZ>gBg7yPGf3tym+&flBYQaF zHFKQQ&wExXp_Ple%QbBK6r7}`5!gZXk&SiZ{7{|dNA&B7`{}P)*{JL@RvE2FV~=@_ zE0Nkt8^zI;e2l$M@VFA55H-`V_kyg^)<{INq@TTp^6GQe1 zfw2?#K>Q$|+5Csc#=eUQV4ClkNVu6FB&kz*&hChlw)ZH`d{CAVV;75096m|-%)*E9 z@01xjEbKPz|E+8ZEk2SY!2KysXTs$kr$_Hcd#m83D;hRF#N6Y;53mK!!obdqPtvsH zegg)kEwXdxplEOG0O32C?qjihQaay~+bNusX&ZZo16TSF_Hcvzk5B|gr^Fo>xz30T z`{>oI?F-SScC@JozeOMPPOrvq27XuJ7wrrSFJX7>{W z+{~(AVM1KI%_N+atv|?8!&LeP3)jlH@}ILthn6N*01E2+{y7tDe*a) z_?mR@hhxRa)Y%@PxdVraCaYZv{@oUtn#@CvK1U65jx9G8-2ay}Q`MLwo$Z29!~flpUqopF(qY{7FFh|ckT$anF} zfmevRspdvQ;k>lH9h#8t?V0C;B`{bKdE1CK{h~Qfq?82iy?f5QJWFWo7S({?EM4@= zdOR@TR zZn0F3Z^yAbUKzb@B@Zf`hf(afCv>l97en+(Hk3GCFp`-o_K$mH$-1#b@7kY1-}mPshhu&>yI#am@~=H#^u~*SZ0`OC^f8aD2-_< z9n`>2Tvcs^{o>lsWq-8^wuqp5%R*Ky_P^(7%1MPKi@KbN{_4g43dfT=4vuWD4Fp+> zKBI%eNQ^8_TTV(7uF8qDviFd6Xs=C`I{TZb)(5z@KmxVZU%>i3f2jYa6^09oF<#bi z83){|FzN`zxDm_0wG76D&5|B4c)zAMNd>Sd1;6eC6S=9GmktSCaD>n)MW(tUr{buf z9@c4BWNMxxuHbVGf6@~?S2Um9jy$=kX%rw_8f0wAwM+BjY}i@`5!$+6HHUu$i&cw(NpL$rm?JHRY1SKl<6?`Ec~iB^Y|eN!k6QzIG%W7 z7xM#0c+by$#4~qsXQav%$;~w7-M8F+PhgHP5AKv?9Q8Bqu!Zw)_Rt2xtQhash+-3{*a4ZXAVUy`EPe?g~*?&U6cnGl$fHkZiv6ZMeqHE_`L%BwLYE6}|F+M| z%{P5xc}H#jpfhu$oV8Lm-_i*$uzw*{RSedcf3McODpxI+@gSV+Y2A6~0G|rKh336q zSH2=wJ;Bo0_@B{u^8^hnU5G6d-7!b2fic?bH1j)GWI?o+sGb{Fwo>J z*3T{)T-m_Pjxe(L6D()nVN&_BT-7aKK%V2*@(t|IHz;OyN0QLgV{Ph@UJ1}&vwYY| z0{mf@vS;Cq9_t&3s-q9|MP=SA*Bk(XL`zse=HtqZ>37!zHnw=AA?Pf9M8e!ICjsw7CEBK>Mb)-Wj@6M5`Z z7ON?fvwo19FvGzpaSwfWLWF3?MUA#PNEU8a(Kb8LI7rpESOgaII}QD}NS1KFh4zV5hnLo(|V*0 zaa>M1y)ZYN8PB->GLJaC9j9Vz3`h6NZ7sZ7%1N(0EQ9++2=QQq(eE8}L29_)Bom5k z-{1o3vXe?H(H>)|@HY{CUor~#_^$|=Jd}{<1%_*37?{MV!PH#d4NEgz>?2cPt(lwq z2>pz;;y~;p=8rUD?BeuDYGFVuw%w9)fp3^>6S$;7jx)0RjI5iea|L(Zo98MW#3jY} z8VYrj)Q^|>N@FI!#}d_kD{uZ*)@{`_yp{HPut7;AzPVBNfqI-pERBKJnYoL%Bpb46 z&Em@6ur;f>TfSjQ5Ifqf>?sf`DyJ)$@+Q_aYi2hvBT+RO3)P#)#RoXAUG(N@B-P~j z6*2L4lhE01{ia*mu#g7(1{9X)y5!2O?bnexj0>&o#-rN8RNy@11Fl2W~v zh)TCiXLsXONbL3+#{suu=*Hb9VNbWU4P`H(EBnfxQ3OYRQ`m;Mbsd zn=5L1YX8tv-yxTGUghJY8J!KY&2+Uh5~UzJfyx((Ppl?l}aK zfVB<8%|_nr0~=E_ht4szttD@@ z%bBhnKFB)auSVAHkRI;C5BbvV8FE3}+lX+_w?8k!KD=%$z7 zL{MyHcE!SS&#Va7tN}R&F6hsW0kCaSs~Q_iNZ2?`hN>a>cLWC1s^B$3UxvyTWV#eC zwd%S>jtrGs|6%^eGQw>!6#f?R;EN%OX1Xyito}ZWq@*xTplueAjLf>;w2B;{{)@PZ zdwYcVUp=8ukXBMn{Evkd?q6?OQi+6ou@vm83qBLjX@MgGgx3Xo0yDG;l@H9|ICaIn zSAnBumn)Z9^^(f8+V^zyFLGmWR^t{2)3rEy^ffkSS%1NPayYJrDI_>_A5qUPp|ZccteO2W79%sJ!+(jh243XI59^&j5^ zq>q0or;3#$28o9DWn^2F>_Zylgh|=mrsknn0cF^IDjgRU`Z&vgL&wEWCH4|2Cv|p- z?aa@J0IkgMmURn#(_ah3BMu;#fzO(V<^o;Y&o=KngkN0#@mD zP#cavbj3zeXBV6J5*w0y&W_188*jwjkjL@7xG#AM&gdf;w>ID`XTswLy|P_bb_=j) zx|cKiHS}p#I%tl}6fvn;MW15tu+lh?j7R}Jl|ISdHE;DM(zZH=6y3z$6R6Q@aeODY zcyMTvgvD@>oOL)pdM6`l4N(e+zIIMuK)vK%zzKX5+M=3g7G{`43_C9~ryV|~d!ziN zEBj}3iwkaR*=tOv%Ps&I4LR(M{vGaCU2>X=a;#82)f01NkcZ9I7M-wMa)>M2s{iQ_~0cDqeYV52&N9BDub7qT$EDOlzA zSlIi+etHKhE_0~d`ciMgdT6=QOcoFjNbM#$kO0KW@6(fr$9&m@+F1-Eu6%hf9)L){ zKngtFAd;B5?grlI9sWK)qA5qvoaqG#j80&w6R7o1asoG1#Bjs@G)DLqrI7bzx{DP; z-B*C|&Mxw^GG| zla&sN4i^nC8=Q;MuWxKo4$@tNN3B;6-p~v(7k6dg<|w8`A@MN-ewCLGw*IA;AJu$H zu8}%(5^%Zb7!TGD&Aj^a{xz4Nt(bXH=7QwdIeAO62A9N(qlbzwojSlL+D3)NZs@(g zLxXrSHd({vB;sf~kdxSY;pfg4?m$um$R{10!ib}t64x0`5~9_; zMN*vR?bj3gjq>z-X15xM;%-x+W-qs?)x%MoZ$)0mdM$a(5kDlE_)AVykFDc$3r-8R z*r8n$Otx)PQ&KKK#0st*d1_}A!fUi5ew+5P?EgD>AGa9oU6UA(B>~i51+)w-fq3 zBT!_v%OJ02{UkSqy3N0hu!XLge=^3Gos>eC%%2Oc&@bknEuPRtvv;sB^s{;AaBr|J zFpwPCMJKbxiQNN1yNXMk`P7+58*lI}U5=}`kSx7Hb;|=QiE*9Dpd5>d{ z?1`MkYe34B7A``S~H>^@LgX zo>D(GvsP$7k;Q@J44g;wwJCr$g)NdQZStW_Cr<)U4rGAx%^Lw_0HwN6s=4EuJu;L^ zSvj}~6p^fV*_uSg0?gx;IS57ul-JQ`m6mlGtAbza6`cbfq(wjVfla+w8JMSL|5)-L8DnU5$CKiJx zpd+4O*Q#t|(L$ql#Z1U5@ym(Ufw&+s5j|4GAJj;}(2O;MNYO0o@E#@7$Rf3fBv}qU z9lMw>jFyH(6b`m$IHXL-IYaj0`RYzYdQaTC)I?Uzs(81zzIktTTJU8{@O60HvaHj1 z5@sjDTb*a&>@D6X;WL?9Snm>q!T?n6S;0F_$=-v($2$IO{k8;+PMLVE(K~)YCmFvg z7X6H4eYG3yanp?UyvauUw5djW%oN6>>^Llh4GqK4Vqh<4BU+KDQzph)EECte;%$RA z*bIEk29K6kGt_2cvhpKNjy8cSX*~@N*01Q*LbM6U9N0>&-zm(cm*6w2WB>V$$4=ZE zA(@{wxuVFCRyvEdovqAde^+>ADolUK0AOV%l&00tLu_^eNL-C%b>Q|7@9MXAS_f`_ z1}gx-=M$C;zkAs)uW>xkThOU%h$3f((_8!M;7~`{Xt7d96YBW>q~m^&9&(KlHe zsw~7CJ$4~0Sxc5o^jE0Msv83dGj{7eT2^q8TV3XDw0URn+>XJ(A$}3o%k)h)Y;~w; zH;wFTHJaHK7BEy=-GEkqcM=_aj#bivq%~+$C&tCt^@Fj`LI}pCmzBgv|C=z6vaad+ zUc_BHD9Uf@<%cer>LA%zAAH5qkmVO2xGT)F zJ#`n>Odg|aE5-!&atYCCIa8wbHJp)1v05mH%;*@9mK5fhLp{&79dbDrDCA85#cdWO z0g4)tF-J^@g=#2;Jzq9?{3Drxo@)ol++hm8oUKJ>uwXAoXWx6wvvHHnM#zzGXe;Yr zDTmGjU$lg!>=XnO7^m*|Nti2$1Thb3%$+(#IM$ncX8-XXefmNI3wb~<^L|Dbid?NX ztr=rz9Ag@1S>h>}tVwGUxwwM2)yhKO!WR0LYYTmmve4uCK%RebQQ2aCFtcd!Sa9Kx zWtU*i!Vhy6ux2|X8-i>=cxOVQk5#{;Q{I$Rn|LpL<{fzrt!)5y8v*MK;I@awPl4U8 zzHzepCZ@fpU|x4ZM*-Juvt$*#bXBrs7i3)Bl$3A2*QFsxUO`bF6s0TkGI>s~g}tLF zzfu&Jbw*x=vsZWlG6)9jXr`qU)=^sLUIs}vO*Y8UASt}p9-uG61aMR$-4`m_2T9Uy zdni=Y(st9DZf;@9y_0MzKlB|_n531lh!1j>yAmjRMQeMI8PZ(jw)!rZ_B?8Y+OJC> zt}%LP4Do2xcCBOQ1#AA-GTeTmy+tLC2k!wbeak)Y63MH|56iq3u(xvcC0rohWYYVYzWo$8i&vAA9UMRr@0{Y!qQC$&1tmW{R`$>m8W<80 z*wr1F9kFCAh9NM7!W%Xo>W1KAV5xm_8DnqNIFQ8ef5#p+!G|>7{xn`o?bUbL)jT|k zvq@1AJGAo~WzTGi#+!dWQ~##S8-RNx&@{KEuqW#+nGo_z2fGUJzuM}CcWw}6HDAbd z@az_g?qsP>w9q?5&4{kB?9rushUYO#je;jKd2)v8b_Rb&uPgV+nUjg7#bWm84~S}y zNcYT}W9B0DHO7;xjxkZ7Nf-D2@+Hxpajuc--QgbJ2Ygn!~EH0$I3Z~^v38Q&$V6Fe#0cc`m&u?vbn<9GWBP0 zz4{k47j0fU9p?n@6|NvekM^~=;osK4xmBm#m&*_5^Pe77orlBLE$F#8)r$^u8*Bp96o#7c^P zhN~Jytf#ttDyw&h8V)I)R$)p{X4=8ZAA8r=RdVur$$Gv!zoVOv5nCrpnPF^JlXUQ6 zQaO_m`((frq4h1Yur@t1(F>w7R;w=((B;<0e7Qv9?=g#p0$C6Bf5-viWQnByDo4Q* zH8&DV>Yc1Xq~QLm2^HSXMx@xrQrIGCqA6vPqd=vXMpC=|otbopfb!Ul?};9s3tO$Z zRL)F>fDgxwRM|#?sLId;qQ77h^zm=2r)g%dj|{>dfa87KFjJf&*ko5H>W1Q>Ml_Z!X_ zX&%c|sz#|mZtY>HuAss;;Hux86b=>UKhj;8%8j|*Agnj?`h{hl`M0-uef0^CKkA!* z$I7xg7&ceHEO6ry_I{b$2H?h1!|mB+y4C_#lhATw8~(xCaLfOp4OtTz)j`NfZW!}-G+QHXeKmTOe4s+ z(K9`gG#27+u9l&5d|v-49(GatqCC=AmlTIMujR~46=+UHt5WiUGY5BhO;hu3jW3FS zdjvr&)X{Dh#mpG5{U}d7^+QuEjglve3(*H%F2H1#{d=i6M=HL(u0ADDpYVs}e_CBv zoEs>Y3xT>VH85506O3j(;5GW12~2T0UK;@?DZg<(9{LkO=Xdm3XQ_d@BF8bT*t;W`Gzo?XZ`)S!DaMK%jsqa3m4-|Sh z64?+9Va16x`{Ip8Td3E(999*2%qyaKJ6m1;0k1c>A~r|V{HyYsQ0ZD5N}7_>`gR z^8}&CD)cyZ%GAcj1qgC1srpoQY*}H8j!1~UeL_OC~hTm);$nfFs~D`vm8nh_Ym?;8s5i&y%3A{!LTeHO~}eW6SDnILY7Y? zFfUGsV>k>N40jIgaIljTkH#j33oKd1vEjl%#Q!6^-J!1+qRxhdd$GvItD;QU*_`C-8MQNVd5 z;5-^|9uGLb4LHvPoM!{h3jycP0cUr>+0)=mYH%huI13t_ziDtj-QZl);QXY)c~Er5 ziOw;i^FGn}JJDGsI(K-A&9356wa>|Q#m4-#vU`o}DHdJDakYO!NJ{>C+5IPkOmY>c z2`gpCld@DCBNoRxo|c8D<@zV(hT`F3ae`DF5B|gEfb6K1>;HhjB&m36Q*pFdeB0(K zx!f=NiY-mWMT-}# z1_hoNZ!_9Ie-iv`e1hpl`(pgs5yq$S@L1mEhKDj~Fe6vtma&%;#UXWYsVM2K40aOIJk$&6LMK*p8d1_=Q$?fKOj{Jt;qZ&#j?!L{d?Yw(NGot5AB6CWEpxuF7=hK{^i-FzX9@+Aj? zOF~DRzdR)F9iAxAr)Og(^cC6V6(EcbTi?WlZGW7FFg~&>n%H*2?aq>r*!=i`sbZpl zD@Jl8nNm;gwscIexC%KCPHn*@^z;T~XvzIef>OaklV_fh(t8k=&NG_GSFAj}b(bSK z@|3$BTvA|W1P9Sea3lhCl8qRjP3YHq_^{y?c3bIHd9Rw8c9B-iq*4r-X|mgEbtRck zVX&5jGWOptiY-ivOhIeT9Ke9DrOPh4pJpm8{1Eb3z01t`A4{o*VLGF$fGevu2IdgD zm9>M3$9yZ(E$sQaj*Ht5d19ZLdnyZK=ZXPClE5M&vZAGE6JwkolnJ*A>}AlAHIJWk z1(!&;5t-~MMW7U6{vxE5pKvuR5?08zZ8zmj2uu}ul_Hs}&~TWrEZB0b@@Z?RWmOAL z&ZgD*L^81(cdBr-5S7C#+MsDwA5~k;auB|%3aZbIkJpy9ycZ|y{003mb$ovMFMt2~_q9E81zdzhyn^%8H@czE zTw`&A`!eJ6x<)tPF3%o{8~7FY6-U3^FPr`{e=7nSM!(W`(=L9c?k%SJwj=>6@c3Pt z;CYL{e5VDPfGXfDzEaN*vU`Hb`cVthv9}>N?K_30J&Oc!%ZUJkKlNYb!6y7~}A0=KobL&pz+| zF?gs{gcKaT^!Sq!1 zN*bpAGzY5SLiV0^3m}_$p7t1g7XxP-Nr0Rwf`RNcFp`9>G5Y7Rw)#c_GkeFbAZ;F8 z)Re0`lHtaFovJ>s@80g2M?w2(XYjr~x!~+&{XjJH6WIgigHG5ZH-wU!LJ3=esY)&O zFuf2hiaPDD3&nNj(RF3}x6AxY)(j(my%~9YAn0c;AtTDlN^t#R&-M`>MKZxfM)WO0 z`v?fKAj(EYV1wd8+MDOv04$sELu~dDVkjkNIqV{aCMHLM>HAmK#!CbFg@L=&n={$9 zrMyA*Jrs1m!e-O+(2Mv!@K8g31ABEn1SK~%7`B`J;j(QH`4etIfcQ{A|0#aChn9EV zrNKkzLo1rsusqOp4)uAF^8cH>C^6dde)9qT9KAC5_tyExkzOiheH4o;l<$DDW|iZ} z_o_}9$r|VpU+5z?d0r@GxUwX^(8u2OykKpqL>%J!^m{aDVN z#@IiZ7i7&vx%Ou{|KdhO)vI2vd$5X6z@u->Kl^5A{y*J+WNnhhRA7U%hxrwKYn(*r zh>q70$JpaFbyg@fqLvcKPe7s>k0N^{%Pv>wX8Tksmx_8+1a>8`!96O#dA0;G4&`GO zAjEzAr4Mb$iUM;5lf)IA8vY~nLSS#&nf zGg(@I*a68Z>+5e+a!hH>E9z@zC9Bfam0&rC?<~k7!NWm#Ts*Z^m*r(wD)tnV|LDy> zCA;5x$sDaklBW3Dyf6XUTic{k)u|}dfc;R(&al*BC_Z49 zsHHKk;{!V2gZI~^G@?5C{$qc745@t!D~Q<+YXzhpZxx4SU&3+{hCd6JuQe?ZE{-;B zh>xm$taq(p)#_mNX}{mH@^rdR*e7Q@#*LvLx&UPQW?YtUlFN6)PKcc!y6iHku3uH1 zfZx zgE;TqH{)3x<1Y&j`+UDLv7Y%AN@NtvKc)h5SnOdw^SH_G_wZ;WtZOUh-T-5oWmkX? zub!vlwE#hU5mXQ%^j&$9=^_r|&E>zm&X>%jh*oF9i%b^3n9+Z9VSh2$T?W=edM_2SMhGN!A z$73t3UtbGXR+JKs=BsdCe-#K4;k#A->K|d;_58uTSTwFN#6YD?&1N(72H(sN z^Nq$dknpmf-+-Dtx@C;{b6X#dG-s3?rClQT=7>{{%(V3>?{4V z{z^Yg#JZFr(r-Q9v+PouiXVc_yt%2>+&Q4W^&a8b&f2N6`!&{jSNtpeHY8qgKt&M) zdGmgIcvU{Me_1MPK|FjYvNlWJDtrgLYc`)|37fo1v%OE3e=#4gJ}=v`uEc&G&I8J5 zB>IElZYZx!i4~SG2zr2xMj){w>_R*6Kt*}_$1Hn%L%)sX28a+lHJCepJ|&Ki=G*F% zn6b3-ZYY=*V)IVrZ*KC8Z1MO8Rl&lsO)tjCi$hqHM`*gVOS zYyPsIY@SHQP~VwIj}UmVZ@nrXlz@$AK|YJ>JNW2CEtW>JrX7*)Xj@C~ zIQsmbzrp?Cx=1`9z2hoF8&BsOgqanG9hcp^tv%|9ZEIjtD{_u05q-2B34N9M_mV5fj$jO~*lKALBJ5 z1BQDfCuy4)F=6cLvr3&wKaG9cFzwl~6V+nNzQ`_DuxRYx26%$rv6B$+T4Yy_ZtS~; zoP}f4@Cql0Ofr$pFO$&&$%7-9sYJS_4vH#}j*{1KR8K>YFc2-*B>gapkRD^Omd=DF zqstD(mJxSU)uUejEFT56!~V%uk(=AZTr%Q^5l2tHc;Y|qdBp#_*O%|aDYTDQWCWNu zDi{N#6qplR!cSTGjEdhpqq4e4RRW!-Bfe7QvB7M~L(z7I~Ii9}ONHY!-mLQqu&kP@YmiR22t(5nlb> z-BKo*63I;FBuBByk7j(n#7N|SlO;^&&vMz3^vgUvFNx%}-#zA;L7?bi3yPg>6q0R~ zzdK<*e}`*wB#_k97aBF9@y&;-cIKeP03NMqhPR6XKS{^W}Fv>wzx+n52SCfc6fxFHpFMQ zd>X@#WD+~%z@rwMEw*O66pW!SvgFAFxn_HvaMOsRK8`@V0yd`~ zOYvcgiaYDh99s7Q&$S4{4+tYVh1m1LNLz3fCk&ekYq!hJLvoDm$Hvo}4Hb#|ryQGk z&gC{!CistG2!V)aFag`ieetUqrvMcX}7@*B1OnHwVwV2l?Dlo$hGP zJ+Q@XJm5Cjw_A>CI1M?g)fEj-*4%vYf#%EmVShIB;OF}NV3#n#uhXbGJ|;ST*1%*< z>*t?y+^G>HixT{CpBSLC*6HRuKc#J@$x)fduWHA^s@YIjfc7Tcf>BR92CGFb)=Ugw z+A)3wScCM=@Owh|-AHd|?|?T*ZxfJ}(T?pNnoTitLJy<-Bu`(YIwSBp(_0WWbF5e%LA6***lE zVJ;?in|5(Wx%KN|NBE}8Ii008X6{1sD&>-F1zo+n_=1{VF zoxlXSsIZiY3c8SBU%yJP$%yR3xp-WGN2@sZ;1;(TgPO9^6!R&2?^wM2yK$^{!Z_8ryC_cm1Tta^ehovN`!onzPJe;pBPHaYis~Ku3vGFsh zUoNp`l)C2=uHM*PYkg)#2m-9y6V$tczvSf^aocuDeyLcStkOJ5z0q*-rd6@jT7JmV zng>c-E3Yq(@X<#gkgc+L<||{@w~{z9dM{Vg2y<`nh8i(p%0#gg1Mn+)SlM(*ZhDA4 zU?jd^zt>iq(hmb&e?SUexLxAZem-kRQ51BK`WlwuuYz#o<$fYO0bhgJ&x(;eg*MNv ztO2P1h7+nK#Xu91)(4cyUO{)UF~x{RV+*FyJ#CZM9}6QC*JXrRetO!GH>U)7}AE^RDcE<=!@_YgL>#@#UhojIW(rFmM=`RJ1;YUm*&EZS{{% zo%VuAA7q2RAv%zDuHX@kO@KeK?r}*kOqg;k^IN&Vr7rj*ATT_)k4sA2uQ@K855%YC z*tT6PxI12KD@F1owQZY;&S8a^qsJudcLo10MQu+zhMP|g)E+F-o!cvs?dX7rMP_rP zZ!g@z4~Leg&**)jw)0EkZ`t1^V%w zXqCQJ+Iz(u_g#BEUsd#Lli$l}+Hy0pn~E|R%k7RTSx2cHF=&QrGI!?&1i|3sf8gsfy;!pL_Ot9?Pr56(WvOddpS zNA$+#hKExy8Ibj|XRhvAr*2fN1_tijzVwV#YJ8v@7oVjpJ5CTM)t1Qb&5ih=;DvUy z+C06<0pGZM+L@D;f?X_>iAs{Wob)+ zP7XkLv~7H9%_GwINt#5Jxv5hbou}ojI~d0uEmM|M;^r47Xtv8-ebNBFt!J9LeRDE_ z-swH8MOiA+zL{4|QzsMJt3Vz$7|rsI59GE#_AS564`IcNYfEu`MkS5TqtW^^n2T3@ zdo&uChIv84Ggh3rWY3-ny444(ZdP!pRW7&L;~t{mioFnrJ$Ckvf6Ee z8HXW8$EFN!^CXRgbMdxV6-{JvqLMHet^$-}aM}scJ&Xh9BE-NlRjqp21^AnQw+9|@ ztt?Odl12SeGKo|H(DlI?06(M6<24+}Ov25i?*OZQT9)yTJbvI>hI68O6r5Ce+_6h5 z!uS?&ucIoPF#0Tj!^FKRHp0`SwqD*3l=i%PD7nu#XTP~51&*%GTna3KH}Bpoep;M( zj4oj3Pn|Fd=(Cv2$3y3nPm=_(>C^igH!hakgW)eDOqqReYlFl!NhBaqF1a|k(cugA z!eO#YQWtJ+kW_g;SZW{yqZb~?wfta-x9Dwx5Q5zI50=gxZAYOad%r73(^j%@CI%Kr zo-et?=N=*oLn=qAEbw=kqr-D+tV+z$1B@PeI0D~wK~k5atIN@I!EUkMa=t#swl~h^ z9)6`~T=IZOpz&~jAqpd0!tnHglIE&Mb0s{#9?j+chf8>HeL*qNQl{FT4S{iu@~u_A zb^Hq2oQwX$1ffS520tY}VYsXHf^R3J#D>FH$%5zplC0&Ix0+>!YzxC)NJ5Uku^jyH zx}y|wb~7~%Gnu^IOfCD;)d{gRThk3<8x$ev8!TbX-_r+*Z4TsnmA$@Kkyf!O;=J(x z5cmFZQC!#G_{{7Nc5xOKP&5&fol$YY#SDu^AYzska1lsg6ATzN%$lrdObT0gL~Ghz z6oX1zz$Ou6+l92&&>umPC)Jp=3kIWPO;^$+Xrx8bBx(|aR3jQ;p7)&vG;KfM&*%BR zzOUE!4|Hed-h1vn_uO;OJ@@>W^5xyUe@)sXD>sd9CLcf|Os)f`J0@4$J`b|)lxXXu zXoT_QCex#Y$VM1H5kyAF?_=3ivWHY{Bvox4bw6`()9kPGt^Xc!SG%}LjQ35~JEPGH zr&Mz=@*IgiFgZqZSKrInH!66hEu{Uh=gM2^6;-ZxXz z=pT@0V3wPVp2juP8_9D5ZBkg9siI~FH#zfwI)Qw)<~j&Eb4B_?(z$1!=Ijag`JY2) zd&n~^6V2SDJhteZ!(Tvnb3)gr3~MgflWRspg{-njh4t2z{o$^(5$1d(`#6q^D+#RL zb5G90LL&mGhJJ*+G2We?CM7PGtPdceiunQE7d)c$6$JZfM?bk}dsn&rF;!;a7l8gM zfquIrPI7}>Cb>Zz93Q>?FFZGm-Ad>E2&HglW8DVIXE5xJ>xh?jNm&aKW=@qQEqA=j z^5%rc*%r;M(sCLnxge0Fbp0jnp&j|^C;*g9xA&ex7sp*i4-Zc7g#&ADZasQH`m(F7a4K-h}T-_brhARurvtOwk5coDY5mzoSfK7s5lNjHO*RfRKAge2= zEh9M26C(L07mYz3htSXG8#JP~qAf-tMAi&@@zBLOEce13#{Ufy#Zb_}24T=WT#v#`bN1;!A;N=4Kq5Ci2MovtB8 zS>>*ktlCJ#@Q@UmRj8&($&mVC(_!7PD37iAA%-QZx5s5ya-V;iLtIA%(dcE}g_FqZ zGwrPYn<2Q*1Ejc%D%6M(!`bNhJgG&6&v{w zt6}eGs@t&v5m#DFk#*h4F^7^S9XXr?Ihfh7Lc1?liEct{-f&;M2_kth>22&P5(Eso zUX!8bFQ7%bhZ~n6wOfu2!ShyqgV4vcM~I#9YY;SpM$RW9Sp7+c4dcC|b>C0UU2)bQ zg$-}TS*y-x$k0<@XL-J&4Ht6jDjj&^)I0KgE>q;dQ~J8Kdtz!+Ce`jpX-v3xU_+$y z4rXA(BgC3#appzo!kc_TGW{tz;(b@h1>jYTmS**JNk(gIB(l<7S(a&5x*gupk|aF^ z^SBJRQMGG<7FywTzs{UIF0Qk4>XMSJu`{O-4BD+KxdI{tkYte7O!p=$in}lqXg}zW zP?w~!#tKu+-Ycn#c!iso*C6;9iHyfDaR)J&l#(kWP)iV~fwsuH;lAv;<3YtMa3!}z zl*-5zH8bg?;%opH9Spx=zIj6uk<&6Grs!dNgV;?L>0=c1QLzbFf`5l|l z_)1?)PD_WLS;p|o6z$7sXw|ICROV$$-t+`JHFiiDJ3v1}nH0NLIy$0ltlUNG+eJ0| zn3xi1Sco_h;_&BMy|plVRTx>VoQVW;^#|$rDNTo*w4fh)34_akh0lmeVWz=6=Lv|7 z|5V0)0INsS%6w)&1aeG%0cxFUP_bBdB*3sS_yLYYK!69^S&2|QdwDd@# zPIP(y%+|`vsmVB;1y5!;s1YqSPJ!M!9He*MtlOHL>)fi0H>s6WyvfSAgF!FI3bVR* z1ZG0H$!Ug3&Ua$q!}O; z!?87iHk%%`npUb>;YzJ0EvQHf%Ok&KsW;oW@7-h-rb@=Mf@5*0ms{Y#2m{ zy*YSFqk{`$M$d)_%=~lYUC)O5{?pNq)gQY+_zC+wp~tmR6ZGivj+S9vPA!wyGlIWijAbirl3x{hhdjRrf56Q1Jy;GbvAl}J{Q_n{--YbNXz!w_zp@d5YnSupO zArmO7dK2R0+36cMy}ADpW_u2iARz4AN%lUZr!uV>GED9g7d1Do^n@$sN^|=L#0V#!j$Ptuvmvr=AmZXb2HvyT9=3`x`<6h(m!_m2 z`W8(--^21ytaTWS4ql8#tO7urVi%*V;$#Tw+qKkymvVWpR6}(1BI#ZWq)0KkT8!De zh1Ix1+|}ZgvPz{(jDowsAo9OOwsSFO_&3^j9qFIDn+_wA#0V4Js79(TWNb?%n7)zr zyD(@9I}jhl#l`e+(Fw2;Pkc>c($fQh$vx?ou3y6Q6$hj*;L9^PjRl!kb5X9Bj$50L zw{TP1x#*uWgH1jodpP1{&b@SZ6a7rM>PHeb=3Qh7cXHEuxH|^8JBPUGkWUzHDiKhy z7n1}OS`nK-8#{wwKP1SNbHSAfjV9>>GFN6cDD9@jSjE~eqd!pbrpLS1BTO*9NA2YjFy1f3)TZ+?-EaG(hdX#XoRwl|KLX<4Fy*17|RXrOX*-i+sxMR+;<10H&{2>#QJ1ua;aM(n|f-#|h zqO`-jWsKix9H1Z{tLSRD6&KIgQddp1X_8$#d6Uq9Lu@Mt;}qlhpr| ziuTpjkS7(wVhf)jF1Fa-^ zuOjnZDXT|1^kwvYA&g1CJfJq-jILIbFI|VFWA94bXW3u`;MiaURxf*o;*UlRR014+BY5J@%xN7gVUh;y_B^_N_z3Rs8(h@Y8kulr;@+3VS9U@2~yp|Gl2N3p$b&-#|eP1dCD~>vW<$sS<6XfRq-=- z@$?k3=)Pj2t!f7sk=QwEdkO)%($g)L$<}l%ajf&IRb38wMPqZqR&QMO6%~rm1}@WL z`%6CSOYZ(gpTm1#{ZmG^EOToU4ORCuVYN@Ca62NfpQVFz);QxsaE94UxJM@!)x%95 z;HEHKq^z97I-0^7!JX}~Goygd^$x4r9puhL^_At`VQ1AYK62ea-P!|@dr~JgHKjTn zk?T6`j$+t_PGOVfx=H`BF6!;D->O&K0uJbiyd{5;b$B+w^DE9)YgYcQK2~ofo*`>O zoWc~DQecwK5XGO;(OH*Dwi6N5XPbQOO1bDX(Ooe zjsrLSXWBuPyU16>xP|TO{(P z{Kse!%$K)(!%_zIOArE}Ss_*p6qO4tEwsodIJseeDG}4n&RFf*VpEQ*i_mnKy$@n@-SNQf{I z{hOOLgOXa#uLMZJGgx$cNRRi*nI1;xX8Ec8Pn*3Xu(L5x1}4uvr+-d0f{eQL)p_nJ z@Xsn(G&$CqyIw>9XnX{lu6bYnSuz8`r0VPSji|G3E{<1~qd}kTu}%`{U3G;N4e5XR z0DB;`CEmRJ#`R;c`e(APN|g1LK07&Il1S5}V=FNs_9Y?qCAfBjsR0`)d(^15%w%#E z=3HfRnrfJamnok+$xvEpD7z}Ft3qA5T1T$t3sZ7JCe5s*w#;NzF#Y3mS>y-uReK%B z5fD~aHG_={Sv!@DbR3^-wnZ|w2)j+s-q~V{s+vJ$VrJ^v@aa5sHcS?6&SDy~6gkd) z?Yu3_(3{?43-`tP+B-+vb8$U0K?L&E8G7H3i!)rGolYe8_g|@4irj51f{6x`r{MG8 zFG{g|@}kTy>1bZZ=Y<$-m4^JQhSGFLp4y(LvgRp&n~+@B^)*Cm_Ri>`&}xYJ*V(xN zyO+1;dD^O&cV~yJodOMcm!8RF8#8s)nPDxN;Z-rD>k88Kq(&=UO|*gv#!BVz z(cf3ICt$le&72u3ppDE)rTf}jsFH14ZEv<6GFW!)KIE_8V`$s4yV^>*q4l%UbNPMm z)zY1vkvo6C}K!_rJ(1H7-XbF?v!{*IXlPV(PkQ^Ezf5aH_- zIYu-Phx#6opX!*BV@ji~UN@_P^T+d@$~$|Eq|1GDh$9N0bat;hknUTNk@ibmTJjTtyCLAo?;Td}{K-o;1;3()vaJ zlm5EDq=hGtT*3Run=^h5O%hWju*2!(h=(%`PIlKXYY(12b)w_KIb=pq_Av>neSQ00 z-S>}uT}3n4dmM1bh;keYl-$2nr&w5XC)=_er&UlG==yj^@2T_WhA(Rl%I7Uc)WkJA zXHHL0CO7BNsvppC4apIR!*qfM<#1icX_&)WW*NxGn#SPA$jo;TMGd~U@6c5Zd${E< z+^Eevl=#9lCCeZCTsn}@7OMZ_P9<>g)Lk+pOp5b9s5#(u}3pqKrqEJRn0E!07wL2-rfbepoj7)CC)So{J9v~&ZzuzSZsu^ zuU%NpFpZ4D!6;!u>UKuBYiZn%idQ6fy}JtyYo9}$DYbK&9wB@DFUKic7JvSqJ0X~xVCl%9|d^G=1Hes6@17W zb&3|9iqXM%H9-+47N?ta@H)p)#y|{~k_<3?m9IxDZh9H-C!vTsyk&s;0XRoH^&>O& zL(35ZLp_7b22$vfq5p^hcNP9`;W^d3`pj8usXDrQDUecn>U>AtF{7AVU`t;Wrureh z+^SB1=8*jdT}F_Gqc$;7`!gx~BnNGCb5ZId`UrXa;(@AiyJ=flX+`gpva$+dhUGLk z3e?s@)xHrxpwY%bQZO&?e8b^q94u^Ffr zw?c7aH<=EV=Wp9>J18U@Se0e#Zg!hRV=%aPyAPzd{&`<`3}#cJpI22Y-0nvwWemIs2pNc<|o%ah>9gvO1 zvfmg*Vp|Cz{O{87bG?@}r)2g6K4q(BnP8AXV1^MVnZ;0ts6Bn^!nqS2V@y;T=h^pB zaIB6Fy{ls~te1+*?Ol)M=U-7>K}wwEt`O`6cTo4mC41Oe_a)JJq=)RbWRJ1n(IoUZ zn>^dfOA9PT>GrHu$pzLWtBnO|I==HU+Dg79Hy8^{%8z;ae)5zD^S+|yDiQe>_oO$` zwFRQ(H`T}Uc0@q>fMtQqLdO{BfdU!N_GS%lD$ZYxOVCk+jN#gXeC&P@PN7VH`wxX)Qu~fMoergm&bY57~P%T>bIS zs`uth!ZZ-D+HuL7#&d3)T*OW-Sd47MXl5PiOa+6`#t4zKg|0 zpXnhsgpHPo)v+PLwZY`z^e&UVn9hzUx}2xO;o>awaheI5%wFiT&SjxB*eXD62AiIm zGjt~x*~1~*CbqnMH|7%7AhIlqaD?NMaBs*=f;VDM$?%ycnOJ>EtU>E^FJO~msACjm zqS%>ijn$veE_XHW;hVR_n>KH8Y}g8u*@$9#T_UuQ(bneG%W_p`hyg4p2zeMyh0!n2 z2=PHu@F-O`l&jeE&v0ljBubRb>u|}rb+f>h#_}<-)v>HLb|5i!NI{HD*`7JOmF&@_ zGZV;@^XTyYx3BI{v3wS|{i|Q>f9*UT%yDYM8J!P(y#L|eCKVfnzT&@!60|AmAg>&R zd6HG6VXCC%z#kfGE@G~B07J%z-!aLU8Ke}NqUxr3(^6$;EqU(E&$K_awP?`+c8^KpcSc7y(T5Y+=#&U8mlm4YMSbX? zA)qR$(irj~_`2&T^?daxuy?BW+?cADTE!$N>eiTNXU1aJ2SPBHK^vb7>10m>#VQtM z@GVA|kkE7pA=uXwY&|ED;^3ns3!mn-Ulb5#s~wVBa-4h8ziEBfgehuhGny6X00C21M16s7{F> z*}=3NZpHXVPcnWt&#&~GaV9xP59`h+_`ml50gB$`pQxbgUA|4V@6UL$n^x^h(#+7( zA3K`8XHi?`hbR2VOG=X(zLFr^qY;OQO%5} z!tx*wCP!4It)jY+VnacVzbTqgl~!{_0C!eZ zLURVgn~H4(P9BD5j*K7|gu3CrS@$hQ9`V0t0ymE?HWskkz_ibjr_zE!nPuAwlFtog ztgd_2SdbS^*!Ew^*F31_ippbjZV}#u6gyAC>v6Ha(k5Njy;i z=M#)^8w{~KNmF2k$%)9zlSXd`zb%E9rO#Vvh;FM!@%-htMkcyNO^=XNteL0lN)T! ztHNsDk)Ch)M$Tu9c)-sOT?Mh}l1~+#Lq9bxzpyD{2hE0bokez=E9xHNOGlzn!fL#E zWhhS4jNYw{SX-jX+%GL>V5X?)`UT7wD4xHcX z*;h>)jC@u*IQj)Ai){eLi|mxpMKwRbqL^T4@F2Shm@wkjGGb_t$euWe!;j*m8aeA| z)eKrwU~H(5$;t&>4=PMGse$qP$UIUYuOFO&2b**EY<6EFAw>LVQ*kR zso^=zQ#zi{QoSH8=datElN&4d5L10ON|9-KVELO}7bFtVijC@8Mh6oX4j&v#SqK^V)+z&J#%kbr z{hM%xHmtI~eNC30<0AHzj4iD$x8!fJMeLi*HmcTA&{5*dKQ0dhR~%9d;RJydm$?bp zkwaUO`Lz?ldlK}Cr^`=>*$o#!EMGyL)N?csRvJ3Gir}3$CH!uHSR8_?_@LZuYc4tn z`tz5?rPmyQX;7LD-#*Dg;b=z)0wAN3ms;*pm`$eWPnfZ~QKT;K7YNTG)m6WiPhhC| z0jXIBBaLIB=y|kV!dCD%*$@zYc!cx;R;bu>qRbo8<4t&Hm)|kR#oqGs9uf)(=d9#( zv<)>mwATst4W?Wroh_G&RQJiWe49+fD^@Xz)nhC)!35s9+@XR$L|7%Q^Wsu#Pbw#Wj(ho<$0qPg<}vF>(WWvilz!TYROS8d%YquWcu(QVyK+PnA#vp7cp?hfP6y&C2?U~mTa&`UG8k0}Z*V5@=C^MeN-GTG zhu5`9`jzL`9-73kN*obi(9elA%wic_ejlLg_CBS9xDl2dQG@IXk^d5+jb+xshCSzI zT6ott$UmZDSalF{RA5%@jF8v_@ZGE->D&jBd0wV->!jEOjdfmD?6&g@`#-hMOV@h# zsa`ZCBKpua`q3t?cS>S{wYtt>ce0MVe=!Y5f2}Na|kB(?Qi1My|@Kk5$-%_J4stFDuRzJmAv8NKNzr0MLLWQ4hv zNm=ugo5$2t=E(py_C(#%f=kw?*!2BYQ;2oeCe@*vUGD|b*p5QU1gj_dNzw_Es<`g9 z`xF^7VlFTPD86C4N2KML=F|pebOdWN`@Dx)L^LQ4Vny}|*Hy0n=lnxi7 zhSTNRf(xD#BC()jDVV+wcQ|J%ohNB6b7J1R^OBp{$F+CSxdgQF;Pt2DR`c)04sa2e z?J#;NdAo`T)XlboE>3@eJ`FDr$-zaf;~2xUrRn&LMJscY;ReD_u-hZA3Fj&Xwvu`v}0XpE$)DmNn`q{1UB(Y zax_(wU;WSHm;Myo01!Ns_lClNN7WTVaaTv>22SIKjzkYrW-3VO4@haB1 zrg6{J^_+xo^2DcUti2CN8@xz6cTeK}ETM<=sZpMz`H~gm3kEt_27fC2C5}i?&pHsU zjZp*_tAn8^glcrs(6nKhFMLk+IxR1{=J}_z@j0jr+`7SM@sigKHavTS4SivX?%-Dv z-%PdrZ(mzH5{$Cdn5D$rYyVBVQ^ME~&)+1Lch~sbb4WdMPf9^=%n;o%{#5wGLE*n? zXRLpZ-|!6mTmLRe|7HJ*Zv4;MMW|HG#wl#W87YRTf6iBLBt6C0<@xKsUO?_NNd^jX z6L2!93s%ypM3`g4Vd=!PTT|{znHLwPU3~q4>rY=_ef@`T*1ev4uT@7OyynklICQkj zKf3Yx$lhLqq891bBi!!9*lAO?3A{rWrDaOAfB zJ1V2%bgA^NBGKS9th?*lbDy)}Xeeur+|Xi|jzk62*%go2} zOJmmS(w0v3|CYA29D5auygwL0iufCSXHGsKe3Z;c++AACM%+A@{XU?5TDw~N!{{#| z)ISR4x7FLXba%R4M?3tZYoAMY=~Rt6riILml7c%gh7S$kMuX@0bp$nsj{MmdCb#H9 z8g*(o`{E5QH0tXUWA7mIh6}^n(x1xnwyO{4hLho+J;Yv{IFlMI7{SEBC;?Z2PQSyn8y|L(itU{`?3?*)-vR8V@?^g?;oiVGh3<)aGQyY2e(a7RpBa7um_M7yWZx?1|V!|JQ-lkjn>~020 z^|thEe+Q_4Zc96^dYmzVEse0U+0vQSi7CML4L%gmHpE70*Lh%J0ilG3c1K_H4lL{u z)LC#t?DFdMqCvHhUOqH}6O?S%>eBrXt;L> z$M0tH8@DY`RmtCeE`JM?zwITzaY*0{5GulGmbBE=xIqQ6&zOq={44XbPSjO>7v2LCUlEy>2wI ze)Jf&4E#QEHSy*!vgU=XIZ+^vCO$iQjD!-T*kN{u3)kLiG|olpk{Yk;(1c1HBZ7_A|KzUo@bLc! zcbx|&8oB+h^XaSqZ|*vuAO63)>#Qb%-2bn4oiQ61{;`71u70JDjoLDIWhfk=+O0~n zRaI@J%vRzHWM!(YAc7q$@Z%vQGA zs*Bw=%Q-8Cjl=QX`Kf-Q#45%1Z=~4QXUlgBlZSty&nDbd1w%o$9dCG1XX0F^??#V|fdRKAVkNG>LQ*{YH-&_FK8H zA=Or8yH(X_f*!e8n zjHM~bJx{Tf&vY7C7jKKB6STN&A_Ay3^YdUhBe{<7kOAy}K-9W87AhW*7}55gJIQEH zu?$SC=;=?bE2uerjox(sqy*|K?`L^4k}c+$Jip{Z&%8BX{+@XJ>#QIyc%whPX1kig z+q$P<6XKPbC%&pDz9#5MM1U!cDD5=G(nr3A??3bt-umPM^C~KyTnEQn@bNpYGR{Sa zef9PBE0P=y;4gIB*V{?jHOgQ%a1Y-P37Y4X5Xy~=N_&2MqcMAZ6K98$47cq5JQhY@ zZ=dIE_p>wYUY|RcxG<`kF5V{G2W4@l2kb%{Ylw*z?uadkjIvX)rSDXh%!;RIItzUwZ&V2G~9e#DC1=u?djx4T*nQ{)SA#)D5*rrt( zH7vv@gtDaWS@@aBs84)s$yqD(!TbJ6azQr{Kt{Ia)ahe5efyMVpXObQ>eIg%S=GxQ z-a5hbsBUOPI&S^y(#D z*GIXUC2UgWk?Z62QSby;&2J+~C;CEiR4#8|v&%S5tNwzKon|8_m`Q2r{Mw5A`ihni zcZ)R)^19g?4sMPGB->L()crLLXYV`}y^9P2*DHA{s1_AC<>9eTcS2{B?Wo2L95LH= zQQ;6_60g#V*)WexiD1pMPf@N{#^;}EpA(Mx1Fh*E>!7V^8( zKRl`LqhJ2P%!Tt@m>~K1PATr3lld7ctF|*bdKYK*?zfVlEDL`YHK+c{xPEyeGKwr` zLtil@YH+3B34N+~p*#h)45)|mnKD5ISnm^FlE&IPcFl`x4j?x&CwD{_qv-0CFV~Lo z)UL~M=Sn+pOC7T5RPn*-&UFpd9NWo-?w?lJ$mtF=Oh1jR;+LUuC7q9u>xaXNbsHT< zejCrF(Rp;2kAY5%pjaapVAI0e!{GAT_Lk88KnSfMFL(Jhm#6oI{QNaIiu2qgGlvj7 zaR-+rrJQm)>Wt^Q-eNGuf?n}_`LKs9bfOTc_6873$1EoBqKOe__lR>k#n=JSnBQfv z{KHW4p@H$f7D_w3ZR^F?A7|9FD3>@Zms!|8B~8snuA=j(E{6&sj6pwM>Vp^PR2g^j>Xz`r7GpDa775WwI2 z4q*B%0u>-vc1{36nE%h~2f;Pb6dG}O^=K_Oq`E_2ElzfcF?Ml^L!6PRfVFpQ4>xCk zL(;YY!_5xb2R@_zIl@y15KBt5cT971#59#7&15j_G!)iYAN6K28m>0*ya~G9;6@1+ zQVDd8l0tN%eGkCtByh=_Kqu>LtV%`Y_;dO`|M}N&eNLmHbs{#2V?HGC9)VXm+N5V@ zuHEt5lV6XXePhr6df2Q-9JKTiso+})GCOF>y2-wdDUQtMQy^rcZx=*uVw~qh`ssq} z<$cN#XcCN8&0~h|KWv!amhxaAZ}yy571Js0W6LbrkG**9`lT@5NN2i@s zXmZW3xGBZMp(ZNBXSPn`JMZ{r+YB(mf08{}zWAJiLomz?w$WdcS84^06pJcQn*M@3 z<8;Ortt`!TY?y4{Fr@}r4}<=y3rG)O5kfo}5+_mJu9T1*{xkiRTl+%QuhxIG{EzRP z|G3OB>(YB~b-WV3R6oUjED9 za!PWJd{g%3pZ|31hc6m$%xS(@BYgc=)r?wYO5m@jKW+N>v*9f*cR#WGcW-C#aaUfD z;+Onp=Ffhc;@y4oXz`;@H2T?}K6B-3>C~!iH4pyq!1ww;GmTDOLci1;p?RSChYwv_ zFqHb%k)Ds@8{Xgk1@;tuwx#s@wucVPtWxa3mQ~A>bX2Fg>*>8wmk&wD&F2|6D^Oa{ zt`Hg$dg;cc{!5XU0HD zH!fY?C%I1xGQi=j7cT_G*^2N-Y*YY-l+Bc zNf?LKc1Yj$C*h6P0c%$f79btk4M=^vH#rVeIjg9T^XPQoZU-A_RXPSE7A0JzOu|9vLu!0J` zL_Z}JeG*D=>DCGtFHm97NDH9^i>1M_VPNCX#)kI+pgAO8m~f`H_n+g?D2<*9BNdxY zt&}uTXPSbbax54ZsRx7+Xv?MEH8Qk|7wW?VQb`+xRv_t@1~J+F9tIIOEl#k@Pv1{|G5{0#ffk0SmnV zP03xaJvDy9DWEKs&9?!=)aDOniyB_*0GTVQTXks zK6f02`b>*FU%|<`I*J(%E--nngfnEKE|2Oh-ECaZ9)D60QoBo`K!sd+Vq-H zz*<&oiwe%qci{af2oKO~AhFwkZ63u?mt6|jCdOuYz+lN1mQkU8x?(htErj|tYh?Zd zXqH@qtv<|ZyE+K2^U+3(_3qs z?W5=UR>G2+3r49N%g(x;mjb;1H+%i+CFS4_Nq?Km=wweguKFNLMNg!s{Z7 zZwbOB(`VT^qqXBl(=!lWo|sywrw}tx8TjwN1DyW$K0pT8|11ZWpb>``*4RcO2OFxz zX)e)V7w>S0-1Ll^a7e=OJ>1*@&SduXGh7^zg#V))oO!z(>_!|ImpBFP=a7aW3iDzN zWMcTC_o<1W!$~De4RJ9{Iz``?hR)rAd@83Krt^pqlTr}p>ER4;;%kl`QN;)>>&x@O zCwys}k;s(nd^?QCxhX(g_eO*y`_djGRMU_%Cr_`fPNzOv6vzst(umHT6htXkhX6|g zf*_dmm^%c7<3XUCZk~RfVC6Q68(!OHFY($Q_XTpB#i@)qtw+2Q5flf+>Ep7zYChcq zUv|jyQ*X)g3+M@1J|>Os!eI@v{2e{qok+GVH#;rZEciOqGx(=zQ}v4GFHS#w_RZ-( z{jkH)ZEY4T5x!g;HD@ql%t@SW=^v9Gc8Z*MRWim@MGT3CA~yZ9X$Wk^7c!TAV9y@IQRS#^O21JWy5lWW5;BhyR?`0c3mW_JKYB98Xpfqub z_wO;GG?gL-z#}p7=RvBbDzT^&}^{C4D?h@GZvl z^;8fVTFWo=3|=yjhJ2m@aWP5@FL_YN-KrOoJSc#G^Imwki)s146@-m~_xJihpU3-K z0aaT6(B0bF6zCFsKK=Tp`s*HFmw*PkkKXVbT0Cf>`v_Vx@SgQYNJG5d%Nr=lLyZW$ zxCr%)1#Rzo2CwS}M@Y3`m0$&wMGY_;)ZoSYS~ybtMk~M-9vADq;K%v1(FwiROKSRV zdN4NB1dFlwNzJw+o?*v4<^?k$Tf!}*jbMPLI8=&w* z@<6;nP2j^Ik(xtd3eTnHe=BtJt^DAKe(+l%o?1^CJwVid>@7hHPipdFatoIdm@SYF z8w`5GY@xMjeba#kU7g{-1Z zZcz(&&-y0cB>{UPmgj&t54Ay5fvW_};Gll+D%LkJbmJ203~}=>9$9~6fV*$7Rp>_+ zTV6=~cob`m7ZZXcMg5r6bMMf*e=O{Dwe9lk+=zNW%;v)Ng)T1D!6lUW1z)S+b_$)` zylO5P1lb~*P#XvU%Bs1fGN;fMCxE-4rT7~_4MEBf=HNk#jE|JmKGIu)nnY|eGIr*o z0ldT#9O6>)gE;ywg65VuJ@Hg3j53 zbNApiIJP_|7yAadI7|#$8{qD}g&Jt0f~bi_OXH}S{~u8kJAsUlR38foF?<CD%E&(4`a4pm)y2iPHl-3I$TiZvuLxyW+CLHGd76%Tgb>n5z4}ca zVS$jEx;ZKJ2=Hs>;?P1_l2HEch)_$;Hk*%Bi&oUY`0E8hkSnFuw%tc~Rch_d!p&fr zu^8Wvi_>zv%cKG6 z6){c%3&>t99MK0Bkd&vC;CbUvDh?3{&e_h*MgzhTp>3m(_|p+EYf`nTQH%hNdJv`a zEj>X~lZWavpdiC#1Pb+Sg@zvPu6E9{;*q_Dhv`Oc$qK5SOFNvHO4+&l(JJmniX+;& zR6Domu*h(W+qs2W?q#^sws4ttE`{OlJKWIJpe-maZ|CM8?yz(BGF-COQ{3FnCEB^9 z!3ZT}&&y!C25mY<$Z&BN(hncpbZ~&XTMLl<;SPq2H5?JN%{!VIF1^hu zU|nf1w{zCRY|GTnY&la;ihjvU6DjB#=6+RU+LZ0`OJMO%o(S zOZ`uK;Gqd5VF?KD7<|X|Lt+wI5UvsNF(`v|7vhov8~6Ic{(l-A-1Pn={fdmiYx)9V zM34+-Zs`sGiVVvYcwG?k$If1hXzd+wBZhl~?po|?;NWJCY-+rS{omX_&tn-tm_GPy zlW9U^(~Exhc|u@V!5as-tWIun{}%$aQs^%f&P^S`da;X%s18nWaU*KD=j+`{1I6g! zupIhnV)zIUTNdI8CEF^)C0)eIMxYofROpukYHV>6;v!V0F_aDKDW!gpG7ND90ija9 z$`dNdRn0f}RDOt?inA|v#{g=}%eJkL)b14T0pd_2f1y4<#6W3e@P0FwXkbX^L;c+u z3}?f+L!bmm0XTk^_ytO46%4l&Ens>umcb<9^1w~Bb0fo|^cb!hfJsybw$0*vlrk*P z17SeyjZrgq4^H5~W)_O0o-awT3>iA!zd3kS-(Bn05U_H+1*m5+>j#qzz!5eu6i=1R zToP(;45F%gqp(;ABnf5LaK2kGUT-1l5p33afJ#(CiuBOF8+~3i?PIhq zlu)E9BmzUc0KSB(jF{R20X;;IAl|?W6O@3RXPoOZ+GMO?o9fQ6{MAFLNmXzFp1T)S z88I2P+f;h+98?8htgRcZXCSHzmXGz8Zw;-r-L);;QeX)k^EP2HHunKfJx`ixfus>wAQA*gtQvD`=Hl=6w|%YJxgEq8;p!pa$hlkvkZQ#hZKscz}Jl? zl!hRMdW8Vh$j$FAgdhhA3-Tsv3^oY>TsCY#GI}tgMll8T%JvXs)ysWuglzR2148gh z-UE7`yYI%4?j!lv^nZ*qhOvVQ7V@V}>;A13kA2zGFmQ?015> zll@@`GZWlbB+_^EtnE3W{sqA@%d>Yc8i{Yhd;xiTYf%hX18kH5J{r<*8vMfETDQ?- zc~Pi;j*J!i)ZSml69H}S#zq-87)X7R&~Psy+Pxdg=6Kvc6Y5_iWkGy<_sL~}lD&oa z4)m581;Z=>2&i`o4RJT)XYMV`e~ysqUOxT^Sk^ikZS&mx;A+CO=D&cMy{~=`Qq&80 zKS492uqe zNWH7yx@QR&!J^U(b5ReN7^|0hu~4qJuu;4p^?-~O3-h)&9!rgT>DwR??RCa)EPKJT*NIAv-2Is6 z^@Z_;+6D)=xG6n|N~%dHX(Cn2N`;cgh4mD8(RvEy9b87}5s)jxaq&k^G_NZ_c_75+ z6b5BcKmVG1{pD}_)^md#C$NOOGvYH&9}HXq1}rFzQTOBIfc5gJ(Em9^UCTc_7yD2Y zdoCvFOl^E^Q%8L(88$}iO(I1tzZJZ{hC%=wMP8v8>fVj<8`qseA&e5kLLn@Vz0UD* zp^IctC(fY+NTaNmlnDG4w^sQdc+QZXK`_Bm>OK-rPB|%;hp7XEQS7mx+|H)9Cp~Yp zzO2WWCd>K^ES6F-TS%U_*|{@mS<*VeW=Mr{1csdSb!tUMHa0c`E`oQZ_@KYyX7J4d z!^Ox}s1!ALuIDJZ!_FHn$Qc&1hs$lltY(K}hkX+R1t*_vPO;+FTecY^7me8>iNvF& zzhX3w5#`{j*+x4IEe!8JY`CW_ZuQc3a+&?~nFm+o7eD>_U(-?wa@jNU_|BMs-v|4X zx9&v;62i>y#i+VRk^DLk@LhW=BDo+TtUIae_^5n2ZMl~ARdNAxk3kv8b|?8B^vMm- ze;{@L#rXPR*f$l)Hcp7$ayp&(%w8y9sV$=?6@3g;ev$q8LVo^alheWx&$4P| zb@MRNKUFvTo_ztq{)q8M7iuBDPrp~78qVoqoNJoz6S_di**-5lvQGg}180TU1$J=&j%Atv}*DG^r}2 zNagib<`-3zRaLYds;F=E9td?G@wzv9-G$yFRaMBLN!|k$SPpLT1=m}kRLJ2$eVDgU zKpyF0Du-HI|Duj{HvZ(6F`W;-JQ$Ofj(wFl*)dcagLJ1gmnH62){_2`nU;ec(kdii z^_^rK3fiU6Rx84^+;uTKf<)^nPV7-A1{9O53Tl|wFtBWgmkTkei*#quIGW?wO!Wy4 zg@#cmhZG@hipGX0d%*}uC+JeZDn9~y3=gL#c*pQ`886`U=u(7ME7WchmImji2p1B6 zQbcsb8%7b1bEu_Huq`UNMEE6Yv-U|m#@k<1IapTN@2;RqD+1oiL7{@Guk5!~v}JhP zn!IgE-nLe6o73A?>uuZUZ3`l=R#U1z5SpymqqQl)VSqmHjBKJ-4A?5b15z5$FdDEa z!Ey(aE6@tcfX5^&PzKy%M>B!!t_0T4Zvd|G6#!~AXojk)M49{y9E-eFAyj^a3{#T} zZjpb9Oc1JDuz6bKqqK$ebFj7&K!;bNo=sVnB*;xwd2rGvtjs9{YAbuU;AN-Z01)8k zIA0>qc!SUf2LPdr5~`ZDbeSZSNJ6x%hb1_%RQ8uu1WGF?p>oh&(Z7cvhoAyD0V;qN z-~#-mO_k+ z48*3yN4&u3@jZ}V5$LUyn{Vs$V*I^2g0)MY{yt&wd?lJcABOS*cIe~^h*85a6y7Fz zlNIu(;D7)S0<-s$(98B;5ZrwNDxWu@bs!UHq+|rzl$u4PACv$Ycl##dKt(^e5UV<_ zJTXtQ;^_wq@DwPm?AKHVEER*m$)SpVZ{;4^SYD5nS5{eHThZF`MtiDxnKhKzS-sh{ z-m$`NS5fOco6hZMsIRXGxGMuy75ya@>m8e22zRx!dT(P>^I)K2a8Ko#p8nyAy^RAp z>c-GeIMvI#r3fs8Aq|C zFRQ;=cA&Dw#x~k?Wh4$z7+o)K3%6xfBzAN%PpNrx!hoMuSiNoXOS+rP#JDl#Q;1y& zPp=bP5x;#Y z2d9?2^_RT$es6tWkY)Gkj2RkDKc3y3=4>_rt=GgWrH$5KHv$u7t;MJiPEK@leF z<1EK3(G?U1+~X|DU}u1c2vHNIz;M7s@Uhm4M$rj;FLew;DbQ&c7TcTxdTQ|o_ZYk- zUB?+YNr*1d2Qh&$Odz8qzp`YwLR(&DsdQ^9>oa6T038#!0Cva@b|5r}kRsJ^IG8Nu z)lk6|N^oMS#OP}o^aDhSHUz4|rWAkzQVb|aR*=JKE$KXZj6R_faDeg{xuzViAw>p9 z8yqX%kk)aswvj%`dp%BCsw4Ehmct|!+ zph5iu=@5On*V)U^e}14WztVl6vcy&)^jCm7$oymEz=BK^WbSQBFv<*l|M?2|v0?R{ zYky#{Ro`Ez_ZAZRwSWucC;~-bLszXiv^|GHm&@`i2uWpl$=b|e4n*3N$JvrVC1|Tx z=R013uq%T|q>C$xKD}_9Kt0Z)A3CsZhr(M3v_1CuXlsGT1nF~hRWo|sqxNQb0%31RN^kxo}+Ea(O3}YF(>qZ znanJD0`S85$`Yyq(*`V@57SUsUX-SS!U^Y+UPDGdTyQ>pypQ4Iebn{ju*4Tr?ps*U z0-LZ3E-u3PD$9G@=)V(o9Y+&4H8lep0=i2{@f^i)u;?dV>O?k%45K>oZ~P{hn1TL1 z;Zbngeu6Y~OZuUx63DKe2OcQTeL!5}L?Z{ckJuFog#2t&P^50Bf~K!YgrQ_a{MKv1 z&gPHsfn7kJLXi-=LTy#3Iu%MPBf{+m*NMn)5^%mlk*3H_#iT|>s9mA8Dl}9fg5}V} z1=TN4yI(lLTNUA*im*n7&JMu`@fyLh(0B%E9Fvi4wwW8{9GOkDMX11%2483^^tSoQ zcAcy^&K9W%EfkXeSdLfV{c*M|N$>XSeM!P`210bcUl9C4QDibt`eP;SCJDv%6bDvD zii_{m|E7NL?Z~iM?EEZ8)TDCDCwrm}Os$$)d&g#{x7Ihka>pHxhbEb{^{*LRj#*}Y z_9K6!rzf#0vtu>_AvyTjE&MFIjcKOp-{a4{+uaLXVB=+?px%2y zUKDg2m}rvQWC(@^QxHsRn}}#wxKy;L<_yH5LMY$T8f0pw1!!t%HPN9KmSFi77UCP4 zCgQum?*BXktZ(1%@9)Q5?tR{0&U2pgoO7OY(uIl-BnGjlRxCCnyf2mI$Wr$)2C=Z* zUIN3pX0^Nu5kT=*{m`AU4ZvbheSZ{;%EhQkOqs<5V0u9LWjRcB{vD>Q8tzlTAQO8d z*N#rz#uSVe7px<y|~JI18Q`U^M(ZGyT>El?3b!Dl2i6 zbD`gCD=Szw)bxSNqrg*q!mT7{)X)7{(OFv0O~T zu-1x&Fsx{wJT?CgjI41V10!3#jj3tn*AYvDKJ&!G3q<@sM^{4B!ss$fl_VFI8<;7R zFw@^(pEDhyeU7<-w5;}jk8WZsj~ZfVL82eR;{!0cp|!*flWPM3Cf7M&Al3x}PzDuE z+e-u$fC+Q+5Suv^M$bBDnK_w+T(#T~ykme6B$)sJtx86^WcS5Nm^T9#R^rF`c`gae z4agia@BQ@!p#8u(mIiWDJn=YENJvr?cJeBuDE!~m&9}F=x3sjJ_u%;l=)nWSVjn9yL5$5P4UV>`gQR#QTgX}rM% zTw1LcQH3uE1Z~TCbeE>i5v`4c7eRY$tE&YD1C7>yxPC*>4?w5xpw2F}iIGi%YA4{k z9s7wL^tQSyWv2|RW_va+o`yo~_JwDM){>B5{fCh0?9o;lwdzo93KGBHQV-BCr9Jj9 z?o0Ut#IFAcr;AhrI!?h!q0U+g?EE?$3x7BUA8^dyr>xbZpmg!-BUtlC*Tjx*WfRnu z49RMHHGlr@`KPmH)xTL-_+VW@!C&vZ`szKejt>6Y7hX77^U_PdPjxz1r7D$1K*i)| zbLRZ?+OT06{avmr=2NG>y8QX)lh!X@d|m&;5ASWX*#>Kl9$mTOwbvd6JbHBV&#bK4 zqZ1~)>)GDkd40zY?VMkJ+1XuH_58Ijztn%fVMECMO`E2ywpcDc>u`Knw`b3y;O_48 zUsP1Y&kGAnnf}BRdD?N~UMKJ0zxzx>!}1xivAK6X{WLB1(j~Z@bL(Nnf(5NFpFaKh z6qU+6E+AkiEfh)&hYx=+J0v9Wxq}BcMg#^bD_5@`(U#(w1LMj$}KjG^e`k~bt z6yMtVN7$c#9-A8;KKWQ}?HeC2T68T)D)s$n`SO7aqoOj04;T;|9TfCL?Tarq|22L3 zu1>rC*?R`Vrb$mex!82_qeXBg1G0cXeGjQd6_^#-BHR9zMJ(B1z%0 zH{Niyr>5Ey#*SU`&Bq@Pxv+KX)3?*os$8FZGSdO;@2&UVqjr>+kK4a-BbyW#moL0~ z_tqc#_s=@8dw0R2vuD4Y#j-l3OvVi0`AgonZ+FjcYWhCq*s*2)G#xn7&o6Am_3H=E zKmYu9RcqFaY)D8b8Qrhn@M(t*Rdj6Gl5Ttb^{xr=@vm&p&OUNw=FD$~_3y9#;N_Pu z+l@xY+GWf7H$L;sM{hJYf0Dy-39kTbnmeJG^Vx%W3uXYeL%Eek?q9u5!b|g>CHM z!B3rg`svlp-+pTh=_al?)!Rs z2Y+HR)jdCQ#ygoDlYDqdEmgh@PPxzeErc!;c@5BpYeO};Ln|F*A9!3 z%ej4X=Qib^IrG`dci$CndH?;G-5-7!%?%nfwtU5k0Osn|qsc%0w1Q7h-?k(oBK4I& z{`mC0(o(^L%E~P3%9YZ7US0#ve*gV!)#b~l>UFv|_vYpvKd9B(s@JWHEQpStF8A>n z^ka4Pt6fv4Zaukg-~2HOMO5mRJ84s9YhOROso#Lr&xMcq@rBQyyrthb`18z1+baYY zo=$(HWbVyhykphkhLRyEjGWt&oN(mm zyYp7oEn2el-8(NlmAUTRg0I7OKXd-OemhFqbG9=_ca8b!wZMsg%(AHlTr$R_trcopMc)@dNvKPO7 z_!j$Ayy)EOFQ})^C4PH((pT?HT}912wBV&*L_$6w)fn2jw*Q)|-=1t3uUT2}(V02l z>e{MH-d-t=d$#|T-~KwXbb?1=rCe z@9sIf>H8hyE^ZtXsB zzfJPF zyp+9zqYk{0Hak&x?YWIJN0t&VFI@3xxYo0C`oK9m4Nbq5$7IN^`b{`FztnVU{VR0k zsCWGzWUUyM@l<6iDaU;2}O;P;~rzkKc3{VC6G z>wez!{e!xaT#W)L9M=RM10O_rIMyHbVP>7r%hmI{NpW zv}D7@U8lu881r`q7Y#6u2O0iDr*Et;P+&Vvc``INw{3D2;*kS zxUyt$BI!2erj<3qD1eQ!3vjGga@BDvyPLq)w(t`w*#9o@&VBRe_p`UE&hVP?47hB7 z!X*Tlgu~^?SVnC}csRTWO(TT=M-5;OMHs=l6ZVeP{C|DF_OI`E{`I}_U*9|a_5JO? zzK{Lu``o|2Z~W`K`ybz-Fc*02QIj9h&G(l@GNYBr8cmZRxo^&kcqCIp0t`P0u`Zsu z;s<>%`V}3oaE+4ztid(I&vD$}|JuiezSCPS1jb z2N*gokwZTusz5D_Ko1njkJLA+XD=y2eA55ic{$q6{6cYWwFGdx_^rY-aVqbROV_j)9aq&Q}@Bz>C`K z3(urHu;b7ZFgmX%y6~VfR`xi7E=r{Sf`<_H7hJSDPeh#H9dKN4!cPc^+mL5rLU4x2 z4a844P*QWG5{zhhwL7ioz*s&{0C5pC%s);;yFbLO*Xps^V6+7IEOB7pLo$xhOpRqU zEZEYs1C+IJ9LgWXOcKu&&nKh{mSXN96dg~7`BLm1zQ{yH5T!cew!6Lsz1AieK&Y^4 z;D<*V-mRFGVB|l3$>o4?mgw;qV;drmcx@-{OJD%N)NG5iC`;nh?bc!{aG1)-7>!lkegZZjc#uuDG#at3TdG+`=KWA9JB1 z+FPQ+!`Mdjv8ZLd+sA#o6t3|*ry~MvaKIcy^F%a$Nm~wPHevX=*)kT&1&E{Ip&o)V zX7S)JmiC9Qx*;;>W>l1g*c-e=#YD-DuziIe8Sid0AhkLZ3AzbIQxOs9uE3uM8wL;D z?EiH)q!1UCq{}54=|0_?66ihNJDg+osr58E@3qGBIt+XVwMM;Qg!==Q@bu06^`SR)41q1z4%SyfKq0bl*h3~Tcuvm9r7D5M2RitN z3%bdO8Rll<%&I0X^y;#?a%oM^s(Ov&22O5!#*=e!a_%`#_{fz9aoo(woap?1juTy= z2kJzv$D5SLkHgjpwuiyCFn-3npZZFgvX~I@2cD{2c~jzrB?Q+@Hu)w5zZ_iaS&*-; zID6vk?`lyK=QTh*X<&md=N071agzqXy5pjz)HMr;Mw}O{_;Qo_aVcKx5kBrch>Rd3 z$47$k%*fY?A8>+W z=y)_kY;%|Ge#VoI6b6TF!D01Ke;RBJ3bP*dGs_AO0bRpEM8|<8xuy-@noG@i0cEV@X%k_V@hX5 z3y5}i-`wc158q(^wi_1pEy6y4gWdC}2`^vi0%fZfJF-4CC`A9ekjd0Cn!8NgA}$3P zQV3lNsZJ4aCe(C{sA~{j+4!4e0c=^O(;!=PuUW>M9~TNgC?EFBE*LH@3T4!y1D$*X z-Aoo!Fs}OVN$~7UkMg~G;4ZHRli=WE9ps6EK8(otLK*N2hH}`tZXidR)u0#!?Cyr0 z8Z%NoDR0#7bd&|JrU<<6o5wKhll{}>7kQwoKc^^8GLGYQSHG=NL`kTvoFy5NUER!uw@Lll=#yDgVS?CUO%;1# zy3Ra;O#6}79_3RrFtM106P5@)rzllg>ms>ljQI=Rm@7-2#yDc+5H(k*OveT0j?jL` z#}k@Fna2H{H6r+s^95c_V9Uz^(LTx{6<`=!cd$Dm{>kOf##~E~y=<3Z^%YPXlQW?< znTpYUl5aLO+f3&yrr!;wKb&*GgZLlOK9i_;pP~UsTgkIq`0!X?b~E3DvCM39j%aW_ z%!BF^{z-!}-H~e02BmA#?a@Aw!lx6az5hUThi5nPkT6`~$^FztY{cM_2zS`ob8x;V z*5gkz`}>^o^JzvGS9v;~fJO`*LVSQDBI4s|hO1^89H0lVst3?=dQ_=|3gZ^^Ea6AeAN#RiG z2I4-P1~ezvN+dntZQC&rQD3)d0>vyzYZ_R|U(;Az02k%ZE*kTi+)4|x^fJR(UD zPs5rO{`q*VHJJ!>oM}4NEjz%#c`X{-xpLEpLMyBV_$^698YE-zxkidLLZPWSt;1;& zm?+@DrY9{Jr{zKr6S1g;lPh&rT_~wZSfpyl`w+1d_epz$PZDYvp+=>p{d>+GL>n)0 z6G;eZG;qd&9)b=B?ES|`c3#)R1rKy*Rz=h21o1vsmq}}G2#FS4&^1u}81+3_{{#yE z$VmIv#{!VF^P>rPs7(Yrql=hXpbrlZn7>XkYgIy~xA^^`Ge6ofvLedTI z5g61Xec%z{lVRaof9kQ`rD^_M)CPw;m7;rW$7uG}$6Z&{YuJ;#>J*QOQW1g1c3e@H zwP^flUs|A1SG4G~Y<$<4gk%*lwx@pUa6$?C7aWtM>aG8HJktVZ@a|wD47WkmMO?vY z|J8>2qx^sE{xB|Qz+K711=5^OLwVRl%#Xaazul> zp=5Thsz@n>BN>~kQq&P=qkeeGd5I6=6|E0hq6@4h>Lxaf`uIu`;mCI2$VnpS1t^t$ z)Jb%9LdSp=0H+LnGf%z8OKPHh{!P)Ku?W;Tpl`q`XfjD#O%mKen!W+_`Z?j@3bI~_ zoFzQbh6_8q5%*Sgq4VsBIKS|nWPKPKTYF0F594T$5Y|3`DC>nO>X22zICjs_v*qdPSW84+o@4v$$ z(?*+;7i2A)yJ~6W%9?ctK5P8?yiy=go8U;GX8j`4lmfpvQ__OWWx1=CRF>4NJ+QTL z@A)IQz_k=E5*@$BXlVG0X)-VP3E}4rKOgu3>jL%c)Cgf*h*c^;8`J%dfG6G?1@Oc9 zao)asI1I=C|MKI!xGr2Ty`ksa0-Z<4KXHxQf0NZ;+zBal z(KF!Wi(lr?P*>s!R?mNyeF7IkMnB6S23|OOHaY*<9ySVmnxki|F2+D$iJozC4i85; zcn7vC7d?Xn&H^VZ)r85!Va&Lwni#1Y6_{b#X?5u z7!^xn{y0-MhGRmsk-?9(!h)9rsRrIMNNR;AH^M*kd2^*DEj!HJR65;nQyOc_Jvv z7HTz?;L>f`R(M)Mt>PZ>n`<<7_lhQpClGE#3dHdHu8}htb09=FJ%YhEV^9^CNUm9@8b=9c}cAZd; zc}UA42BFg#tfmEiZX%O_Qw+&S;n>k|9OzTkBVK2}Q4}f!7BsMD)OG>&oFES9Z5drv zlp*LdL5tjZ5wNi!FH_Dy-fO(-Pssbg$@Jxw%JkEL`1f#56ZAn5&gW(?^ab!dhH9Wt zVOvhE=QOmW%5JUs5g1y>dwj;60jFi>1Pw85B+O{*FsXUC&@#xA94;{o@>q-1GQlh9 z;8n;%%axj=o z78xBVd6y1|KI8$1mgJd!>~%duyTq&Lgb9Xfx3VTMQf z1`kq3X(nhV0z2FR{CL<}$r+wV>JUdrpd?EQX5o+-1hmp-M;wD_3Q8}pL}hB(c4{S{ zl({u4%z+$|Py@-_nkAKzcS}}5Bj7j_rUkK*ZWB4d=E-DGicbTX3MwNxkfstz#O$Op zwe-;H=@m7#{MtcP3Ziv`2Z+Go#tA5gSFe-pRi!ET>grvJc*TJaU2DulLmce|O=(ng zDt7uSO8ixy@|OqE;Gn^}upy}xNp^pSFUJ5jw)4t&n6g&JTFgY#EhQMzY_s>kvugG? zW<;xDf^y`_vRDl$dVa{<+et)=ja6{l6(=m8y%*v+`-*!zNl^@<-`b1XROG>StR(9Q zt=>;nzfv(@+|s~Ywi2|(*u+@R5yu;F&brxO!^Wpt#A=oLQna5*F6O%z8@RlI=YvS0^1T+bBkg0kSC4n_}iVhf)pvxdITqa({zByVrlTdA<;D*>4R!Uq| z<)QPnu5-d;R9el$Ng}vDl5D!Zi0X8?NeJ6;E9yaWFIr&~EyFRIOESf!rEPu~p@qbz zGhlkA+Q`|Put|DKO^WJtl2K!Yr*;aDdDZDeIs*_fc)NhCHapx7!R8(C=ZjYTeODbz zU=wc`fdJz`U3U*qiuQXKurh_W|^54FYzZOSKLHO!|i2Rz+@-*l1BEnoA$PJ13H`(4JMnbi*3k z2CyqFr2Chrcq!hZYH3gK&|2!*pi=|xS}yFF;vye{1Z{FgqA&}RkS0SbzSFU1V z+$<^h`~>%hRXs&eAM&CO9%x9|Z6Ttl65P#!KVYy(eu1q2)9q&ppa+Imd61z#;9*dn zbE%$(j&5*%i#y6b;{tyRz>Pv|rc0Fx5g+UK_l|%8bTR9csiD0 zcIunnG!iQjP&6aDZZvz)PO`J0;v)V zmGej7!%8INDWmLgix-fjc-=n$c54RN^{-2*uu-Z!@Y;cafSr6M+%amW6X1TpgU9y+ z=EJEIcGzeEEsGasE>5xqrDrWB6MXc}zll7YLJk8dA;V_L*{*I?cek#pP5)`%aNChV zCpR+^DUl?~BKIsD!ikVtB!qS;W3|J;fXhN>2l%s#TaGCXvr-+aUqQg39#+b^Zk>oS zP+l6%)M>GvbSNDVkMw`>&{ymLJ02B*d`IpkHFcyHO_e67b)E*D7xcxwW-xq^q$jML z?LeE;G}=H$&=IztF>$tnuriSV+{FNxDOw3UkosAu7q-$PYv)b z)TMaVKg7Z@eB}X3K1P-rfv1<^3FQEw7TxFBnr@Dh7F~c(`ag1GAD&X;sGQi^4W1~< zq-4YR~JaNN7EiIJ7c1K8aG06l9opcU|n4=rw4J4N8l5oBSkLR z0cWe0ex>TTjfx8@_Tz3aMWg#c!(?)HUAJl-ggf-5z2RiEhdElBk?QU* z9ji-`JEwqf4&XAyw|D?jTqZ1x#1am2qx_{*{>Tb_4sWBqBQ|F26;mgXXb@UUD~?Lo z<=v{~Q0@t5ac{Xfsr@B8pj{a)9_*{#szQi-ohs^$WDB}g1rYL$b9rw_s~wSc)G^sHN!EPpz!I7`tK0)QI^IcWzy(vTugra|-t z%{C@Bf)hT8nL~#c58y~46RO?pD>utL4Kfe)K(R61IxVF9vidzK4VVr(TiUN9#nZiJ z5^(nX;sd-bTB?Yn${9&{B=ov$9aT26LOm%e-n-~5#yVR!enva1$kr5jM~W}_4cq~~ zZh_@2qX!lL%-2RsfkCC{6oUtC1=o*_?^eY_qYe5+xY3xOZV;*&Nt{4Ano^ASjV6Yv zp4PsdMzxZetYk-$Tw+zr3BZN9c$pespfVD@XpyrH0So7!Cig+u4mY{IiyC=o2DCs& z3pv~vs-C9@(I{~T-)w;dKHyDDO?#I5K_6*vdXp~2S46qF7=Ramc|VB$6{H#|azhFn zd?nT;Xivcqs9cTyxfrQ$P@L-T#aJ|%sK3mcy}WF+obJaV3W!h5RO__mb7DQ?KsHK; zQeW|jzw_ltROLm(%^e2ZlC7S)Wi+_chS*sBPQLymZ$?66w$@xv7>x^^yO28C%Jz3CUe>~~F;H8=NPCUrFOHL@-!6!QSTx&F)E4qP< zb15T0>yy0XT?sm63_RQt5KZfyIKv@65}M-tj=w=B9)SIYIt*|1-{JEb&?2ypG?~a& zlK?wybG}6$Blqj*!Sy0^yk#NyktkXL9u&Z=e_=Zss6itt5!m?v*41&NsTe4rR@3&b9*QN7Y!#5-J&bx97fmehvXD{^dBuyv_jm-2Qm5b# zz{}w~WgIOs(2^kYv|3N_y#RR5LW?aaqS|PQ4I$2xs@rv#IBz>R>VT#HcnheP7*rz#YZcO>X=yU(6>I&Kmt02>J!j^V~* zK=jjZ;S+E1253=$oK5ahB|~$b*T?lv0>&M5A}k^pVDPT)h9OL!ktWy?ypNIB^I>C9 z>=Y=h5SlQAUn3&GVbc=Aj3fmLkv@iy&=M=R!BZy_sNH8sO^idyS-BaW zfGzb&zz-o3FYr*2^Bs(h)Zhv<1_F`jcN|z$%B!PL#H_gGMFmhWj#UAV2G;91IM@UH z8b}YkX`NvkJ3C#Dcg5?56=01$$ucj&`wAb+J>osYXAzcSbl)LTx89S_v-NBiCl|qIDvXSwz82 zL}LP+0H;pdB?P><-E0FunQQSv2c6CiH+v5ntcIo1slW_&YjP4rtI}O7Tw+nP5qg>wo8gm{Zks!cf8z zWXNhIV^?!1;{sx9J5@U&*Ey#z&egl*cXXm|4hhtAWM?76KA0XX^EY5Hb)^dg$z!mk*iL1x1?we_NWK^|HmXd zXzX$N=4iFE#ArARw% z6IXCyur-xYYNp!VUg$N-shUJ>euB)N0LpF5Xc443Y@At6%X3Cgs}c$Ao3xw9OxF6q zCGn{SSO|6o)>>-yRN!NjZPw;*la-aZSKm6ON+h!Hlf%-4yPleDGFYHhi4?wUnkY)L ztrOJ>DTCdSx=&V{;PxOz{phNtMYW*drFX&k-om2bdvpL$WBEA_B+@XN8o+VDR49^y zYTRSq9v~X`@Zl*uMmp$ z{an;^diAmBK-uQJxcNho!v zK=YSC=@2lDf|c^6APLISCZ|O%7!8trtltSIs43m6+Ig@Ok<;Iwu-h=XUlO#)$p#RsRpaPgBv9AjP?@^g4I6=k=sm7a&ysDhSen3OUT-?l%cI@T7x`L-ifc`GLX)H>F39X-2WT zZB1?+I?_ZC33p*{0Jfm^QFC?CAKk!OF+^MQM7^x<`Bn(fMO(!eFF{j^K6GUm$OWVB zf~k(?0*J9eQfXO~56@YJLTxYau!9*e9cd z;dG6^A^F+v!dAEd%b7r!Akm)YVed?eJ!SDxhh`W;rv=4$rW>-Ssk1ZE`rie1QS&0m zW`<(K`8hJWUw#fQ#ysCzbg~<81;--l0M`D%H|-yTFuG?Ormf?XVyg}E=?Q9Kctmz{ z#fI`sTPBrjS#eiBH=C9;JYhK$xOCx4OCp}_Qp;M~TIq_VJ?wMHKS*2Kmp>wVgD)-4 zv}9#Bj5Hq#oV#$TrN>hm$jEJ`t-MZ%a-Y!XV(+~vuTGFpOw7#AvNVje)CDhH7@6(W zuC@0Sq)q^q63Ic~Bpio%^TE^Iym=`B8wcn`b@93_ zZ|XnqMLeofo~#RwgG=hVkf*aOkwS9T)4j`4TgL&SFM553QO2CD?l~Rxy7-^s(V4qO~D&_2C(Lp3-(saY> zh_6c3$4D5b(%lj{i2wTZSER&|*)&pYaOD=xoeksZ3|zVhfPl;s>!@0l_pKX>u^YfZ#LKqM(MHs9V}37~KfdwS*-9GX(P0pr0!}8ytsZj*H5c z<3_OG@R;ad?Ik?UETnGo8w|vgd>a9tYW`}P>|Y%(AEWFTA5jcSXLs?L;h9Qoz~V1i z;!PmOF<61_PZ|a-n4o{1BUT^lh9aF;`G$_3^Ty3e1jc9@WTLw~!SQjpj+mzL{-Vox z5A6>#p$g`utRx0h*+IYE15EGuCn*r6(P&nQFOrE2s{T~I&2ICEpaqH~ap8l#^VAa~ zy7n!VXAw!?M5?;{3m=vcbUzfRDN&$;N-$oNUm{zn$b{o~e!46R6}^ZeRGCEK1A^pp z`-y3+Pn{x5odve5WE!Or6fYj@My=k7Jk07ue+la*zf+aQ z)PKaD^mEle;1L}}ODeCspd*;d+&V@|*caI){Z4yi$b{QID3|&psphz2mH2v$mlXBa zRAH zsdF8xGX$x~K}*aIhIFt-(N07xghbUw`Mi0y#0Yib5M5#@m-x6t^*``dw6OR`zVI%1 za!H-(E+*Asb`CK(!;Bd_X;Eq#>qTuYB1z{XgxqDNJ{}zNe+*9j9^hG3cbL4IOrF4} zI9drR>Zfi4&h|!)zdUGe(Z7jtHlXM{s!zabg#b0+>65vVyIf=Nh6 zG9W_qWqL%2fPrn@IvA}OC20AB0i22eqQE6l9#4@Yy1Ii&Og^u8$^YR3t}>7osEvt3 z8O}K2n2%zx?}ImJ(cD6VH+s0B`75fhyNBN&-N)~D?;I9r#g!}SD3LBoq82Q6)3_pr z73ze-)TyBwO|0`bUgr(S->3O~XkFjVLo2{q1OA5AE$NQ9MK%QI*!nFk5xb$T<@do8c^UuqsNzRL7Qkpq71d6Jr29;Snkz^j6oicqa1Aczr{#ysnvclCz@nZP zVityR#0}K?4Ehgm@jzr;?6LPAaD!@+GC51jXgS_-9<8;v~w^!i*CN;v5$J zl$179krMAP2c>g3GVUlKA!$E|NEsvs%_jgBG6`)hh3n$A_V+-#SUypdTWSyqE%tUm zHFQCKI%7x#`QZ^2#u$JbD>nFI%(>Xx!(u;8Id!FbYM z=MUe%b-07d0JWk9Guy#C!^j8%oXe<#hiS%FX9}~(B>!YzGr(I2(3rbzVwy6{7=}rK z8N-?{gBF86zIUPjFToy_#h3e_jL)#Vu4=fo_RE&)ZL(TB7+1q1SoNZn8rzMvCJzV= zAPSH2C*ayr-@Tzmo*G0#LzCpRpJ#&R#PW>%yOb z>znYKn#yRZCo&qdomjA{19}d+a?tr6xX;5jTz;ok8pdwl~Q(NAV00`1@kq*R8<{Om4q_p z;7-><;rnF9KH`>&?xxo@p6j{?N2RA=$gg*>O?;6Lu#v!f_L>czT(m!N91p?0x<4r$ zuQ0ekY*=STq?w>ODylp2A{-nD7%Q*_b(9?K3+dyD9zAp|#U)`J_3?sdb!y1BCK$qw@{0pwzGthHgH?H}g89U)rL5yB~`IN}vce*T?? z-`MnSRYte=58g>&%5>Bob?q>5#?##vlOSU+9+$Mp`??|cRDqAZ7#4K1t@n=31SB-AP2^UFanIgMQVy`3WQ^IYvgHH5LyLu2bGf zQVJ(Cafhs+)e8djptDq(NZ=fB9DtQ?kO>&$n`Jrj)YNR)TnwoK4vd)udx92+I@kjk zbg3~`rSc9Xf@QU&^oX3B1}KJEtc(vOB4nfxj zj$9mxZz%$G?tX`Oln>`D&>e+uRW~S>QcA9j^F^4S+cKI+miNFXsKrNWw}# zC#N?J4cT2v1PhO-CZ_DB4nb z0|sK($kqPqv6e>Ps8_A9SZ-qD8NPc>9$QoC)G`k(^3s~l;Y7^77Gy4xly zJoID?rT}}YLrSw_lv)ri@@n@C!}Wg=FVozs9is&$B6Zos7`p%^DiCN{*88G*2@*+A zu^iR=pn3`=dZA)ZR4>JWi2?+(QZK*~PR`Ev9F%A?{MEsagC9OT8Q`aepD+Au@GFO3 z6;!(2H_W$R7#A3(_6jq2hnaoCEW*D_!MSk`$O*H|REiPIg@Fr%gRkB*xhlClxmBlA z=yd&bI+5C}fK+ZwdWJnJKL;1KsBWH&3e--zr$!zeO`VMy#RVOYE<*;pAukXhQ9|fK zt;zdOv%RNphAShZ1^|B-aMEUXNjfeN#MD9p3=YK(ODdOEO~h7-%kRyKycYuohX8Zx zL;x`)DH87%f`I+8V74diFa)aJ5Q$j=3rU>_P(Qr6OIFm1NiI;4Do&arem_66738+9 z27ymbz;kBO-)4U!{BklWkkVqSkuc_}Rw$kr|I^#^DI z?hjnR5zl&_1Ma<<%E(9TP2Tx65y6&r>1cnF7SG8RXOe4XlOh613_v0rk&`+}Z`UBx z8skvR(TG4COG5ccWZGW17=n3osR>LkZ;pfu_QY8}@iL!wmLElVn4|g;XZTWus1;zR ze{l;;SdxGiX?AN5-x*4aZ35xiDb_c&Wt+=%9z;;iD+}}U7Zz;wEw#X?&6!P(`cuYv zAa10jI_A-ec4h`!C$-FX}>y2b}j?TZFkq`K};uI~EdXfS~m z{5ZGh4~V|N)m?lXU3`|O-|WkscnYE)aCHwKN7py;yQ_K{COQt0ce%QIk0asu6)b$5 z_XtF{b9J{KN7o7ds&OGFNxyakOYZPhaeduHOsM9bDb*$I*$q9@ku4^Y5BL z9gKclbp2-#eUGcV|99R`0d77nCXn3$@GgxVaByMTn6hFjyB zqP;*jCvF32pQWhqO1ho~7w45!_(-x|jm|WmzsW~zPx3C~zq5I)RuUcqBAm;Q0%Y!SnD8y!OGD=aogBOpX z+NF+K-x^Fd?L$+eBV~&DYc7>tU{1@K!-V7=djL zz`hqy>+4zN>rwtm+c(>`L_Q7$Ndy$4uG&8j@;?qO_w}^-dRR6Y*O#mae;lgz^{n;v zsM<7O%)UKCdqZIlYAFG@bln;U8pD~CE&x>p5C9swbYuAC#l; zSsStr-b+SeeqTf)ptp3QDjnsf@6~@jBvL>558KALZ~UuY*an|f!#-!gQY*Z?@VQqzV`E^Mz@dh= z%q67k8ST}ybJPvtN_kN@DB3jGz~j3&MImUH>Sv$?Bsv!8Od<}B6v;#4LauV7eVYuT zIKR=lcyG@BJ(Nm%3xF3A?S)?_3#eN#srn_Z9<%tp1itKGkB+w-ZlkI|lZyl;`DlTJ ziT471gBx&#FWxJHaF+iE$9X=vpo5=;#ZFQplT&TyBM!$2vJTT!Rv4I3)F1~rUKlT; zw)LIh9;|}#hC6t%Yj9mHI*bG;DSQ4S{*1QG`=P0A_)%5cpksm#Z}B;@{kBjq=mt4j z2MDt(SjDHb+1aHi_Odu1C{D?2%&edin{gJXi2Buoik4qF^E@38w65Ivd}SfO)uUAi%(Q@m0l$}QcKZsy z8Rg7#xJS={5e2IFC=W^!VJE(s;jzV!47;!m`VCk4LD*D$jjv^lpgmIiBT;KKIv4S9 z0)rC23!-8t|eD<8`x(B162|W5MP~8jn@eFfn5So4k2QO<4~#-@Y!; zCw93RYvw2`ATP*f&a=YP5M>o#x)Q;{X0Xg{R>T}(gJ4Uh6HXh-Z!Od@|IidodmWXnAmPb_l-Ny2Nws9v;nY*j<%bqsY_O-G0|7>H? z6Mwg{4RDux;epj4U|~g|QeOwzx6lColpff6jsV_-aBroPPlffJnu;`epy&ZoLhwhN zcGU!zwNymmZD@#ru_}8mfw+&va6%SeymCu(d%<7)s&d{eMqIKLCVB#bv~?p&nrFbB zBrRMJHa%F7_7;ziB38Fh5TeNul{nE$D-RdSSplyS@VZS|PVe4zA(ihb1OiHbhu;E! zeVw;?T7ziWs60P<{HRiI=i8{M5*=@riST8f-gku+wN|1lrDV}-NO1$-_#%FBv8!Ap zqBw4a!s-Vhs&`$jAw}?_eU8_KVx*@IDbDx{Ocl9Q7hJkcuNH}L3o?f{Q|#|9)$b5g zsHb`x1*y&60;4h8n4`tY5+_}%laSywy`VP%yVn)LDb&FeXfngl1;;~tdvG|TV@ax-U$Dt#4$p!S zos+d-HGf#Fh>+*4WTIlr%59II!&E_J6j5_7@&cTXrJool++J&oGV~z__aO)TGQey(>${d^18YfUGofb7Dignk_64FYpu6UIzVbP~x`@N!?BBii3iI_`d_*s8z_v!kQ{~R;+uHP zV0xHER5Sj@>@EDyvC7<$2e$fSHP!EHu;K&3lr*j{>18hFwyy$1AsD^fDsyv=Oj6!x zwr7egxwqi_42%qXPi|5|OhwKHxGk(d&=*bZBHGXDeRG|*}20ydi>>7NI?>WCZAMorI7ZYWN z6a5i+5b*W_d(kOkhvPChxUbFZ!gXtd+EtP6ppa@XTY=+dRYOD}_zsLs<8X|5$aZUv ztXJ$kdwbp?Xy*c^V>)iCIrM5@+peaaZ-)?d=v81tk*x7dna1h-g7J&d*g}qlo+#&z3yK8}q zvP%2seVG|(j8A&d|`p$qT2?~P{`r#+JoTR86E_e#(hkNn{bNv9rHIH^hJar=m~J&n&Jl0?r}_;u4fCNUC17X=3{ zWe~jC^VNn5ZKI~PQR}adLDtp7Gqy~*Y=@*CZZiwmg-3=(!N>CLd8hA|u*-na5!C>x z9O@};!2cal4Zee?nYp8Wc#uZQjc4ce^Rhvas|X=|WsPs;+j3}%-dGkMv&*=nbLwNW zaTG5L4|!GEl~eGxZ@;9^>B?bn$MIHPe~jLU>>VM@4tz3s_WW~?J)<|6p80D3uP8B! zhUbVF;(d|meD06Gp#;6h@H|%Vqu%xVd9zHPqZ{lmoCFqdS?<|`SRD=B zUBlz#EO&%3{j=XX-27)cP;{KI?@eOxv-GNLZgPKQjBrcve7zCFY%BBI3DCz9ggy;2z+9NR>OD8tn_ku>D<_~ugV zDZ3ma=@}*4a%OQ99i@ZbQ378xkDBI2k0g0@*=S z9mPSjAKM|R0QlowNZ!BUJhn(q>~Y6$lA3-uJYIH5eu+Zb5p$xoEq;fUz~2~iqM>1L zV;=RpVm{iaf@_cIub{Wagq(Z*w|_1VgVv8E4dQKKWN{cscx8GLE|M_@T{43wx@{CD z%io_BhU-G#J!%rGntZ`;|3f1^T#ungYvvdhFXQH0CO_p%VlBNL(5m;vJ!&hx2dm(^ z7A_}vIeqX5%LJb5gpAyR5u6|fMoa@E)@Pjyn<)nEtfsMj$j0GSQ2+##8#aVM$`_o* zo)s|pTh`90ib-kl8cRVl`JzD$LE<%Qrhm~nh1-$Jsmm{yg{hzlYuVMuGPu)TN}7ii z)~$UHy`Yc94u^8q{X;`c3Y`vEvGCuD4QG1iqIpvk|2E00DtMos$FRXA`JK1DeA@K_ zG2xXs@D=&(rjNkjip%RRHnWG~C@yyx+MwN^dYoQM}+u znyr0^4PvZ80k}HDM|Oy|LUPZX9WeQ*j~JxlNhu#|DGHWZ;AXWO{xh7~b|9J=UT;6~tL585yLTbNlR-)+&6!8>%~;oP1uZl;;@ zeS5?>Pc^xA+E?Dq7B|DY-P*~`I5Q{W#L=Vl1Z@o-+jKp6`4C<)aQ>!c5LjviIKKRBr%*4_`F5)N)iQKX#E2bx7%-AJerZVg97Ev|(_d4kJ+i@8_Ju9{|T*NECsan*G3 z$b3ek^$D*HLm~}j#3uJ;5PQ(VB+tlp^VdJ}5ZhC_XAr)Rha_6cLB>dn53HI>XQtK% zGqd2mORSb5WUmH?!XGQgNErk-F-G)_=~KmAfB+T!`a}rX%<@99(Nz2|k;a@0lJpm8 z(JNDO(mSa#uz61=m|3IP3H3MDgYE*A+Y>w%OL)GR7Vgahfb`4)qw+eO5WuKpb1r(I z=&wM5%7*zWV_9c}2&w_F!1RKHmlNhQ5%}^#T6P8vCCumO7Z?B=2Tmn@anPTS++sAo zM3apCOU4DJpdml#TX90CYdLK2JZKPm-tCSDE35p%?LPZw$R;aLpcCTmhqB_n$t}#$ z5UB=v8zezG2t7ok_3{D@Yyj-;^SmUj3Xw*Z2~zK0dFjUbTO z-)M)d&Qw9FS3{=}te-}Z(qW$l+=f^|dJu5hQ6>fTCBn9pg-B1srXaot?(&-jsoWw+ z&|L$4Rp4cy2v+uK!nxAq{lrFS+M8F?x+jcFqueiakU7EL^6927{_7B`2x{ORzl*

        AADO6)5dz0d3e%@asM zo3Bo*S2Y8Fx^TS~&qYJX5ue2H0-w=Clc-(|98sFy9fq#5U~H=29foF3cF8SWsJu5M zp-nZ&X;jE$OzFgCri?v@&vh_pgL)RR_6CYCTw0RCM}-*8ox3BG@$)*xNnD18ko^xp zwOB#N_Zd*Z(9VgKN(n7)1U-5<&Wwp8(0xN6{YLB4C9@~k$!Y#w2S#+<>=gdMQ($;g zi11UW6I;dh<|Szlv-nz(uur>~yVa1eBPbCHm7!{e(`&H^6C|sf!|{zJd{K&~B|cSk zXavf~X6L>6(9}Y1C3KL@&Rg`*+(H%g>L%*LoBas6ZJ&lB4!6~)v1rjloRZ8TS&RK$ zruJ~S2Rjg-xJFl-r_GqWLcSZ#?qU5+y0arLZDZ3(w`sXsf7WaxraZT$zzwloQ?5HV zA0F0}o@N9#^=+jB|db zZMmA;<>XxM%~a6kO?ElLCQolC$|9-&*lZtwH+T5ySTn5v zde6391780_;4wcsJ&5#RjeFDoya!|5cJ$DLE#$#77DMZ3<6*J&|aV}80Jp^-flMG~{laOFis?D}Ba4Ymcvq<)K8$C9~ZxyHBw70@t-~G%*Vg{(_i| zXFCZoYc=BYcZ1Au9Kb0=EYfKF2`#jg7GfTt`hsY=-hsrdINzq%-4ul07Xku>On=s3 z(aIA!Uw8I%15S466aK?Dm=hCpTw*9R4Q-_*b%vv2r{19BKI-d-OtQv@)|bWdk+h;s z7p_wy349f*^o%a5|Bv6jLgC)*!Bs1_13itEWT2AmY~i=@qExX;KgFs`a zK28_(vqs(AdxJXdofUHnG#3sXbem^*akWZ=ZqL=v0>-Y_8N8#N>htT9qcJ5x9$j+G z1v!$HV+Z6Yn>^JnPjkuB@kC$xhTmYHsZ0BKM_f>rk9wzD&*`&z8!4OJbm7pwgk-V$ zA_L0>i|m~FnO-@8^6!W;5s$^Y{?rm)Ai9UvckW)a$`>D7Quyo%c3JC^XLP^s zwhLO9Fry4|5H6z2t#M(ps!?ikN5rNJ5e0(~kJN__3Imq30eSLy_h^O+yP+Ymlgf5S zJ;~$!40CI~Sq&wm+;W?&WrnHhvqZ)wXbWtki%L`mRxw8$*KS>6x69MlL}^4}+97NQW200Ct0+$wg{f9y`mG`~OzYT(twe7^D)vu$6DKOw zM&xVgRV;Sa5&01AK^x2mjwbB=T5p2aFc7Fd8bZ&%HtOkfJni%Aw9n{qn>ci#Gm9m& zBxr@b#6;xtb9sF4#e0>PN4e67Z_Spe%*!BW*Ri9?xU(7sB%h1l|K6Op}lQdqGBSax0h7Hu^nuUmDQJ<@6fNm2_ zVy={-+H?VGhB6prqJlH55DSXy5@Py<=m8<>f)MFpx1=x%OOwATFn>kVv0sz&(lyZ& zjX8BO4+ZN~5w;a7vlY9@I)GuCX^mI+T=c&FNj=jQIZgQT%$OEAY;i`RaADNtnJu??``O3^a!jAfUrMj|CH>DFHaWwW<>PuQWmco3+ zZ_t3|g?RXxODSl-??A9POY_KppZIPe-9$d|J%R~#l{i;*R(Yh(%%SaR+e7o(SJb z=?5?97y2w|ee&c}ejZ+c&G8MqAlSnTE>Ycb{}{Yr)qjc?(ETjlQu%s$0k{Ut4Gc$= znN!^(lph2`2?hAU?`gjkesFSt@`IU_ADp55V2+m`{9y$A;B(3kUZ8ow51t?S0e*11 zp)q3`s?2?HB#r|=0QpjW&`!%J{NTB3;vc8+H}ZpwyWI+51zw?)rn@Lrt-*y;ty`B% zDUg<%-hAP2u!z@Kp=RW_K98$@uGT@N$;r){)WGb3RsNNJ(Eo|o!DD)Z6)tjE;M7N0 z?7*!y-xchNuoa@sK5d0{g>8jBRV{WEaa);2+E8KBh@VN{2Ip{#ez$Pfh<+da*X!Lf zo9-M@zj^{Z;W^o$!(Y~Jsn!_}YdO{zLzl4 z`>j%T`_cD92W0Y*`*A@mPGxwee|V@vE&OYb-K4(IoGZEqx5UJPVF3^YQ4G6(W(P_D~quIRrbGOdG z?Zif?=`*)3g?q}{&O*uNptA{blFHF+tc$=Z^u1EG&!cRgtcHM8_j$K4aioXUISXv` zp<(w$XbwL9<=LJ&x|vup``R?SU+d~E4-}7yZe1|c-A>@ry3e@vc;Vk-I}@zP665I? zb}$pLWrM-)zQ~sg!^X1DIZf;>R2$uR%q;d6^>h7(er>yij5%VF<^c7pi zP8hdSjtf47MIAT_w(pLEXpP!j|FKHg(SoWo^4#@y97^+h+Kgo>XXy4bJA8 z=o}dbl@O{2xYQpGywq?AQ}>#?BpUJm*rffPzWrZMpNhM?GxG(Bb~6~BCg<3ke~NivhHT!$X@g_H`jm0_6W=-JM+m6sB0PyAIw0Ff;)z7?eGRIlYVaJio^0~RRt7#2T2X3+rEsX}h2O7El#ap{trMk#uw=a`#lyC55TzIIgxw@c+RZ2r z8}(CBDu#U!R&_UA*dEvs*un;shuyvf?SLJDO>ac~uzO)A-hVqDZn{9#e5D9BkXC720I2!?eE>5TO! zL-0RJ^-{njV^)7cK7iYS*}M)!K*=EGikpIvQ3=r$15&OH2eR~!sK<0g;}+f%c43OL zK_0&Y)0g%4_=_;L*q5YwIw@c32YEzN}K>N0*(&PDXD42l$!7PP*cs%uc-G zpTvfH{KbS!WWzlEd_uy<{Ahm|8|sOdu$I85^yL;pLdN{&AJ>=v&i0^g1rMPtZ3X<^ z_9%X|hZ-u!Oj@sUAj(~Eyi_brFI^rforI8G<-wDZzr__c(gITJ{i$`w9#A-w{~M~ouiVk zkzH~n?{K-QF-A4z8&_9Ul~vPx0c%!Ql<>9kdPga5M8x>8iH7af)pfilcfi8DoVaB* zj;gr4^d2FYuEC%b#lpCz8bZZIjcADy7G!O<@^S@&f(%KW!Ku& zXy-b`Jd_fRU)=^ngw~?=|tARhmvfPrD%-5E#UF~wLsQ?09t4qo&YSzzRO`BdO)9xbQ zx{BrGHj8a(=F&yUd|LH7XDMH$AgiLTLUvZ%>EMBV1@pDMF1l1Npk)%u(V@iLQwE$m zlwRoAQ~!U&QZN~Eo$TZt^(Bs)x{B&5rJiIyfJE1(8tbEtiS?+{QBy*PgSraE!d1or zrPj-(rJxAVC?b_S^(B-Tl>B*)lIkivQ@O5+>XMRmE{u0YRc%G7PHJ=w+7(>`0zwn7`=^Yb&5QV2(4cJeF0 zapqDb7_GED&tg+T6hJ_R%i-V`J7ii%X#iPW4)1CZm8*`AuHo&jwY&#ElpY+e^%b?% zF21(rN@PtO%@SS8+c(xZK+_f2A1h{{NVvXR~Za zWwmP~FFT#pC9*Ah;3{OPWhtqWtLO@BGS7>@d457-lEs>qzA$54glsP~_D6iACoKH8;avA4lW&-Fy6zJ$-E{^Pb)HLFC2Eq||4>Ngti? zYxCoew7l#0`+tf~tKMCz)0Bs1R+Uv$K_L-YDla8zBxhM(W+4GhduUBzgsZqvn(;&Jj3|i;th=}Q{Je(`^2(I>pW10lzj~$ zQIaRT!sAN6@VMI#c--4BDQ?5oITiwQG^|8%w|@AD;yR8Tp)S9=owdR}vwm>`bvquM zUI|zFyv^7Fw{_;heaGO&$9%h%OB-t^X+Pd{Tl{+bO4rggmHVGhBdHG*e^z)ZO=@|i ze#Q%v(sRxY9Q$nglJp%PWNY3XYDm9$>!~-{xL4BmKHk4Et^UjO$T;IoJSlf(5l7jY zg&B*`j4`95W-M^k-5zqSq1$VZ@y1&eXA6=0*lseYa Iu-DlB4WQpoe*gdg literal 0 HcmV?d00001 diff --git a/examples/http_client_ota/test_file/blink.sha256 b/examples/http_client_ota/test_file/blink.sha256 new file mode 100644 index 0000000..5c05557 --- /dev/null +++ b/examples/http_client_ota/test_file/blink.sha256 @@ -0,0 +1 @@ +57dda900027355de85f0de9e6c966e3c4c16741d8eed134d209c0fb6304cf852 diff --git a/extras/http_client_ota/component.mk b/extras/http_client_ota/component.mk new file mode 100644 index 0000000..4cebd16 --- /dev/null +++ b/extras/http_client_ota/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/http_client_ota + +# Expected anyone using http_client_ota includes it as 'http_client_ota/ota' +INC_DIRS += $(http_client_ota_ROOT) + +# args for passing into compile rule generation +http_client_ota_INC_DIR = $(http_client_ota_ROOT) +http_client_ota_SRC_DIR = $(http_client_ota_ROOT) + +$(eval $(call component_compile_rules,http_client_ota)) diff --git a/extras/http_client_ota/http_buffered_client.c b/extras/http_client_ota/http_buffered_client.c new file mode 100644 index 0000000..a0d79bf --- /dev/null +++ b/extras/http_client_ota/http_buffered_client.c @@ -0,0 +1,219 @@ +#include +#include +#include +#include +#include +#include + +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" + +#include "http_buffered_client.h" + +#define MAX_REQUEST_SIZE (152 / sizeof(uint32_t)) +#define vTaskDelayMs(ms) vTaskDelay((ms) / portTICK_PERIOD_MS) + +typedef void (*handle_http_token)(char *); + +struct http_token_table { + char * token; + handle_http_token http_tock_cb; +}; + +// Response struct +struct HTTP_response { + unsigned int response_code; + unsigned int length; +}; + +/** + * \addtogroup http_buffer_client_internal + * Http Request + */ +const char *req = + "GET %s HTTP/1.1\r\n" + "Host: %s \r\n" + "User-Agent: esp-open-rtos/0.1 esp8266\r\n" + "Connection: close\r\n" + "\r\n"; + +static uint32_t request[MAX_REQUEST_SIZE]; + +static const struct addrinfo hints = { + .ai_family = AF_UNSPEC, + .ai_socktype = SOCK_STREAM, +}; + +static struct HTTP_response http_reponse; + +// HTTP Header Token, add here function and then register it in HTTP Table callback +static void http_handle_cb_ContentLength(char *token) +{ + token += 16; // strlen("Content-Length:"), skip useless part + while (*token) { + if (isdigit((int) *token)) + http_reponse.length = (unsigned int) strtol(token, &token, 10); + else + token++; + } +} + +static inline void parse_http_header_HTTP_STATUS(char *token) +{ + token += 8; // Skip HTTP/1.0 + + while (*token) { + if (isdigit((int) *token)) + http_reponse.response_code = (unsigned int) strtol(token, &token, 10); + else + token++; + } +} + +// HTTP Token Hanling callback +struct http_token_table HTTP_HEADER_TOKEN[] = { + { .token = "Content-Length", .http_tock_cb = http_handle_cb_ContentLength }, +}; + +static inline void parse_http_header(char *header) +{ + char *str1, *str2, *token, *subtoken, *saveptr1, *saveptr2; + const char line_split[] = "\r\n", sub_chart[] = ":"; + unsigned int j, i; + + for (j = 1, str1 = header;; j++, str1 = NULL) { + token = strtok_r(str1, line_split, &saveptr1); + if (token == NULL) + break; + + str2 = token; + subtoken = strtok_r(str2, sub_chart, &saveptr2); + if (subtoken == NULL) + break; + + if (j == 1) { + // Is HTTP Header, response, HTTP Version and status + parse_http_header_HTTP_STATUS(token); + continue; + } + + for (i = 0; i < sizeof(HTTP_HEADER_TOKEN) / sizeof(struct http_token_table); i++) + if (!strcmp(subtoken, HTTP_HEADER_TOKEN[i].token)) + HTTP_HEADER_TOKEN[i].http_tock_cb(token); + + } +} + +HTTP_Client_State HttpClient_dowload(Http_client_info *info) +{ + struct addrinfo *res; + unsigned int tot_http_pdu_rd, read_byte, full; + int err, sock; + char *wrt_ptr; + + err = getaddrinfo(info->server, info->port, &hints, &res); + + if (err != 0 || res == NULL) { + if (res) + freeaddrinfo(res); + return HTTP_DNS_LOOKUP_FALLIED; + } + + sock = socket(res->ai_family, res->ai_socktype, 0); + if (sock < 0) { + freeaddrinfo(res); + return HTTP_SOCKET_ALLOCATION_FALLIED; + } + + if (connect(sock, res->ai_addr, res->ai_addrlen) != 0) { + close(sock); + freeaddrinfo(res); + return HTTP_SOCKET_CONNECTION_FALLIED; + } + + // Release address memory + freeaddrinfo(res); + + // Alloc memory for request + sprintf((char *) request, req, info->path, info->server); + if (write(sock, (char *) request, strlen((char *) request)) < 0) { + close(sock); + return HTTP_REQUEST_SEND_FALLIED; + } + + tot_http_pdu_rd = 0; + wrt_ptr = info->buffer; + full = 0; + + // Ping wdog + vTaskDelayMs(250); + do { + int free_buff_space; + + free_buff_space = info->buffer_size - full; + read_byte = read(sock, wrt_ptr, free_buff_space); + + // Update buffer property + wrt_ptr += read_byte; + full += read_byte; + + if (tot_http_pdu_rd == 0) { + // Is fist chunk, then it contains http header, parse it. + unsigned int header_len, pdu_size; + char *header, *pdu; + + pdu = strstr(info->buffer, "\r\n\r\n"); + + if (pdu != NULL) + pdu += 4; // Offset by 4 bytes to start of content + else // Not all HTTP Header has been read, then continue read + continue; + + header_len = pdu - info->buffer + 4; + + header = malloc(header_len + 1); // NULL string terminator + + memset(header, 0, header_len + 1); + memcpy(header, info->buffer, header_len); + + parse_http_header(header); + // Release useless memory + free(header); + + // Move memory + pdu_size = wrt_ptr - pdu; + + memmove(info->buffer, pdu, pdu_size); + wrt_ptr = (info->buffer + pdu_size); + + full = pdu_size; + tot_http_pdu_rd = pdu_size; + + if (http_reponse.response_code != HTTP_OK) + goto err_label; + + continue; + } + tot_http_pdu_rd += read_byte; + + if (full == info->buffer_size) { + info->buffer_full_cb(info->buffer, full); + + memset(info->buffer, 0, info->buffer_size); + wrt_ptr = info->buffer; + full = 0; + vTaskDelayMs(50); + } + } while (read_byte > 0); + + info->final_cb(info->buffer, full); + if (tot_http_pdu_rd != http_reponse.length) + http_reponse.response_code = HTTP_DOWLOAD_SIZE_NOT_MATCH; + +err_label: + close(sock); + return http_reponse.response_code; +} /* HttpClient_dowload */ diff --git a/extras/http_client_ota/http_buffered_client.h b/extras/http_client_ota/http_buffered_client.h new file mode 100644 index 0000000..cfeb8da --- /dev/null +++ b/extras/http_client_ota/http_buffered_client.h @@ -0,0 +1,29 @@ +#ifndef HTTP_BUFFERED_CLIENT +#define HTTP_BUFFERED_CLIENT + +typedef unsigned int (*http_final_cb)(char *buff, uint16_t size); + +typedef enum { + HTTP_DNS_LOOKUP_FALLIED = 1, + HTTP_SOCKET_ALLOCATION_FALLIED = 2, + HTTP_SOCKET_CONNECTION_FALLIED = 3, + HTTP_SHA_DONT_MATCH = 4, + HTTP_REQUEST_SEND_FALLIED = 5, + HTTP_DOWLOAD_SIZE_NOT_MATCH = 6, + HTTP_OK = 200, + HTTP_NOTFOUND = 404, +} HTTP_Client_State; + +typedef struct { + char * server; + char * port; + char * path; + char * buffer; + uint16_t buffer_size; + http_final_cb buffer_full_cb; + http_final_cb final_cb; +} Http_client_info; + +HTTP_Client_State HttpClient_dowload(Http_client_info *info); + +#endif // ifndef HTTP_BUFFERED_CLIENT diff --git a/extras/http_client_ota/http_client_ota.c b/extras/http_client_ota/http_client_ota.c new file mode 100644 index 0000000..f7a2be9 --- /dev/null +++ b/extras/http_client_ota/http_client_ota.c @@ -0,0 +1,259 @@ +#include +#include +#include +#include +#include +#include "arch/cc.h" +#include "lwip/err.h" +#include "lwip/sockets.h" +#include "lwip/sys.h" +#include "lwip/netdb.h" +#include "lwip/dns.h" +#include +#include +#include +#include +#include "mbedtls/sha256.h" +#include "http_client_ota.h" +#include "rboot-api.h" +#include "rboot.h" +#define MODULE "OTA" + +#if defined(DEBUG) +# ifndef MODULE +# error "Module not define" +# endif + + # define DEBUG_PRINT(fmt, args ...) \ + printf("[%s]\t" fmt "\n", MODULE, ## args) +#else + # define DEBUG_PRINT(fmt, args ...) /* Don't do anything in release builds */ +#endif + +#define MAX_IMAGE_SIZE 0x100000 /*1MB images max at the moment */ +#define READ_BUFFER_LEN 512 + +#define SHA256_SIZE_BIN 32 +#define SHA256_SIZE_STR SHA256_SIZE_BIN * 2 +#define SHA256_CONV_STEP_SIZE 4 + +#if SECTOR_SIZE % READ_BUFFER_LEN != 0 +# error "Incompatible SECTOR SIZE, with you current READ_BUFFER" +#endif + +#define SECTOR_BUFFER_SIZE (SECTOR_SIZE) +#define vTaskDelayMs(ms) vTaskDelay((ms) / portTICK_PERIOD_MS) + +static ota_info *ota_inf; +static mbedtls_sha256_context *sha256_ctx; + +static uint32_t flash_offset; +static uint32_t flash_limits; + +static unsigned char *SHA256_output; +static uint16_t *SHA256_dowload; +static char *SHA256_str; +static char *SHA256_wrt_ptr; + +/** + * CallBack called from Http Buffered client, for ota firmaware + */ +static unsigned int ota_firmaware_dowload_callback(char *buf, uint16_t size) +{ + if (ota_inf->sha256_path != NULL) + mbedtls_sha256_update(sha256_ctx, (const unsigned char *) buf, size); + + if (flash_offset + size > flash_limits) { + DEBUG_PRINT("Flash Limits override"); + return -1; + } + + // Ready for flash device, the erase NANDFLASH Block + if (flash_offset % SECTOR_SIZE == 0) { + unsigned int sector; + + sector = flash_offset / SECTOR_SIZE; + sdk_spi_flash_erase_sector(sector); + } + + // Write into Flash + sdk_spi_flash_write(flash_offset, (uint32_t *) buf, size); + flash_offset += size; + return 1; +} + +static unsigned int SHA256_check_callback(char *buf, uint16_t size) +{ + int Current_SHA_Size; + + // Check that str does not contains other streing with SHA256 + if (size > SHA256_SIZE_STR) + size = SHA256_SIZE_STR; + + Current_SHA_Size = SHA256_wrt_ptr - (char *) SHA256_str; + + if (!(Current_SHA_Size > SHA256_SIZE_STR)) { + memcpy(SHA256_wrt_ptr, buf, size); + SHA256_wrt_ptr += size; + } + return 1; +} + +static void convert_SHA256_Str_TO_uint32(char *str, uint16_t *final_sha_bin) +{ + char tmp[SHA256_CONV_STEP_SIZE + 1]; + char *wrt_ptr; + int i; + + wrt_ptr = str; + for (i = 0; i < SHA256_SIZE_STR / SHA256_CONV_STEP_SIZE; i++) { + uint16_t val; + memset(tmp, 0, sizeof(tmp)); + memcpy(tmp, wrt_ptr, SHA256_CONV_STEP_SIZE); + + val = strtol(tmp, NULL, 16); + + final_sha_bin[i] = LWIP_PLATFORM_HTONS(val); + + wrt_ptr += SHA256_CONV_STEP_SIZE; + } +} + +OTA_err ota_update(ota_info *ota_info_par) +{ + Http_client_info http_inf; + rboot_config rboot_config; + HTTP_Client_State err; + int slot; + + ota_inf = ota_info_par; + + // Malloc memory for work + http_inf.buffer = malloc(SECTOR_BUFFER_SIZE); + http_inf.buffer_size = SECTOR_BUFFER_SIZE; + http_inf.server = ota_inf->server; + http_inf.port = ota_inf->port; + + // Check memory alignement, must be aligned + if ((unsigned int) http_inf.buffer % sizeof(unsigned int)) { + DEBUG_PRINT("Malloc return Unaligned memory"); + free(http_inf.buffer); + } + + if (ota_inf->sha256_path != NULL) { + sha256_ctx = malloc(sizeof(mbedtls_sha256_context)); + SHA256_output = malloc(SHA256_SIZE_BIN); + SHA256_dowload = malloc(SHA256_SIZE_BIN); + SHA256_str = malloc(SHA256_SIZE_STR + 1); + SHA256_wrt_ptr = SHA256_str; + SHA256_str[SHA256_SIZE_STR] = '\0'; + mbedtls_sha256_init(sha256_ctx); + } + + DEBUG_PRINT("HTTP client task starting"); + + rboot_config = rboot_get_config(); + slot = (rboot_config.current_rom + 1) % rboot_config.count; + + DEBUG_PRINT("Image will be saved in OTA slot %d", slot); + if (slot == rboot_config.current_rom) { + DEBUG_PRINT("Only one OTA slot is configured!"); + err = OTA_ONE_SLOT_ONLY; + goto dealloc_all; + } + + /* Validate the OTA slot parameter */ + if (rboot_config.current_rom == slot || rboot_config.count <= slot) + DEBUG_PRINT("Current rom set to unknow value:%d", rboot_config.current_rom); + + // Calculate room limits + flash_offset = rboot_config.roms[slot]; + flash_limits = flash_offset + MAX_IMAGE_SIZE; + + if (ota_inf->sha256_path != NULL) { + // Setup for dowload sha256 + http_inf.path = ota_inf->sha256_path; + http_inf.final_cb = SHA256_check_callback; + http_inf.buffer_full_cb = SHA256_check_callback; + + memset(SHA256_dowload, 0, SHA256_SIZE_BIN); + memset(SHA256_str, 0, SHA256_SIZE_STR); + + err = HttpClient_dowload(&http_inf); + + // Check if dowload success + if (err != HTTP_OK) + goto dealloc_all; + + convert_SHA256_Str_TO_uint32(SHA256_str, SHA256_dowload); + } + + // Ping Wdog + vTaskDelayMs(250); + + // Dowload Firmaware + http_inf.path = ota_inf->binary_path; + http_inf.final_cb = ota_firmaware_dowload_callback; + http_inf.buffer_full_cb = ota_firmaware_dowload_callback; + if (ota_inf->sha256_path != NULL) + mbedtls_sha256_starts(sha256_ctx, 0); // Start SHA256, not SHA224 + + err = HttpClient_dowload(&http_inf); + + if (err != HTTP_OK) + goto dealloc_all; + + if (ota_inf->sha256_path != NULL) { + char com_res; + mbedtls_sha256_finish(sha256_ctx, SHA256_output); + mbedtls_sha256_free(sha256_ctx); + + com_res = !memcmp((void *) SHA256_output, (void *) SHA256_dowload, SHA256_SIZE_BIN); + if (!com_res) { + DEBUG_PRINT("SHA256 is not equal"); + err = HTTP_SHA_DONT_MATCH; + goto dealloc_all; + } + } + // Ping watch DOG + vTaskDelayMs(500); + { + #define MESSAGE_MAX 120 + unsigned int Rboot_verified, boot_dimension; + char error_message[MESSAGE_MAX]; + + memset(error_message, 0, sizeof(error_message)); + // Start verify + Rboot_verified = rboot_verify_image(rboot_config.roms[slot], &boot_dimension, (const char **) &error_message); + if (Rboot_verified) { + // Rom OK, call final callback for let inform user that all is ready for switch and reset. + + vPortEnterCritical(); + if (!rboot_set_current_rom(slot)) { + vPortExitCritical(); + err = OTA_FAIL_SET_NEW_SLOT; + goto dealloc_all; + } + vPortExitCritical(); + + // Update success, software return HTTP_200 + err = OTA_UPDATE_DONE; + goto dealloc_all; + } else { + DEBUG_PRINT("%s", error_message); + err = OTA_IMAGE_VERIFY_FALLIED; + goto dealloc_all; + } + } + +dealloc_all: + free(http_inf.buffer); + + if (ota_inf->sha256_path != NULL) { + free(sha256_ctx); + free(SHA256_str); + free(SHA256_output); + free(SHA256_dowload); + } + return err; +} /* ota_update */ diff --git a/extras/http_client_ota/http_client_ota.h b/extras/http_client_ota/http_client_ota.h new file mode 100644 index 0000000..56c7ea0 --- /dev/null +++ b/extras/http_client_ota/http_client_ota.h @@ -0,0 +1,56 @@ +#ifndef HTTP_OTA_H +#define HTTP_OTA_H + +/** + * @file ota_update.h + * @author Andrea Greco + * @brief File containing struct and function ota update + * File containing struct and function ota update. + * Ota use remote HTTP server in internet, for dowload Firmaware and sha256 file. + * Firmaware is compiled file stripped, contained in folder firmaware. + * Sha256 is a file that contains a sha256, of Firmaware. + * If enabled 256 is checked during firmaware download. + */ +#include "http_buffered_client.h" + +typedef enum { + // Keep this aligned with \ref HTTP_Client_State + OTA_DNS_LOOKUP_FALLIED = HTTP_DNS_LOOKUP_FALLIED,/**< DNS lookup has fallied */ + OTA_SOCKET_ALLOCATION_FALLIED = HTTP_SOCKET_ALLOCATION_FALLIED,/**< Impossible allocate required socket */ + OTA_SOCKET_CONNECTION_FALLIED = HTTP_SOCKET_CONNECTION_FALLIED,/**< Server unreachable, impossible connect */ + OTA_SHA_DONT_MATCH = HTTP_SHA_DONT_MATCH,/** Sha256 sum does not fit downloaded sha256 */ + OTA_REQUEST_SEND_FALLIED = HTTP_REQUEST_SEND_FALLIED,/**< Impossible send HTTP request */ + OTA_DOWLOAD_SIZE_NOT_MATCH = HTTP_DOWLOAD_SIZE_NOT_MATCH, /**< Dowload size don't match with server declared size */ + + // Ota error + OTA_ONE_SLOT_ONLY = 20,/**< rboot has only one slot configured, impossible switch it */ + OTA_FAIL_SET_NEW_SLOT = 21,/**< rboot cannot switch between rom */ + OTA_IMAGE_VERIFY_FALLIED = 22,/**< Dowloaded image binary checsum is fallied */ + OTA_UPDATE_DONE = 23, /**< Ota has completed upgrade process, all ready for system software reset */ + + OTA_HTTP_OK = 200,/** HTTP server has response 200, Ok */ + OTA_HTTP_NOTFOUND = 404,/** HTTP server has response 404, file not found */ +} OTA_err; + + +/** + * \brief Create ota info. + * Struct that contains all info for start ota. + */ +typedef struct { + char *server; /**< Server domain */ + char *port; /**< Server port */ + char *binary_path; /**< Server Path dowload new update binary */ + char *sha256_path; /**< Server Path of SHA256 sum for check binary, could be NULL, check will be skipped */ +} ota_info; + +/** + * \brief Start ota update. + * Start Ota update. + * Ota_info contains all information about file to download, port, server. + * \param ota_info_par ptr to ota info. + * In case of success, and ota update is right done, \ref finish_cb is called before ESP8266 reset. + * \return http server return Code, check out \ref HTTP_Client_State for all code. + */ +OTA_err ota_update(ota_info *ota_info_par); +#endif // ifndef HTTP_OTA_H From 4bc6032fa65fd9da136f9a261c3742c9924d9cec Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 3 Mar 2018 09:47:42 +1100 Subject: [PATCH 289/349] newlib: skip locking when within the NMI Irq. NMI Irq error paths call into printf which will use the newlib locks but these can not be used within the NMI, a task switch can not occur here. This case would be a terminal error path that is attempting to write some debug message in the process, so just bail out of the locking in this case. As a warning a ':' character is emitted and this will typically prefix lines emitted in this context - it would be an error for this path to be take in normal operation. --- core/newlib_syscalls.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/newlib_syscalls.c b/core/newlib_syscalls.c index e304d36..50d0d30 100644 --- a/core/newlib_syscalls.c +++ b/core/newlib_syscalls.c @@ -303,6 +303,10 @@ void _lock_acquire(_lock_t *lock) { void _lock_acquire_recursive(_lock_t *lock) { if (locks_initialized) { + if (sdk_NMIIrqIsOn) { + uart_putc(0, ':'); + return; + } xSemaphoreTakeRecursive((QueueHandle_t)*lock, portMAX_DELAY); } } @@ -321,6 +325,9 @@ void _lock_release(_lock_t *lock) { void _lock_release_recursive(_lock_t *lock) { if (locks_initialized) { + if (sdk_NMIIrqIsOn) { + return; + } xSemaphoreGiveRecursive((QueueHandle_t)*lock); } } From 7707f4f9055bd3291c1e0ed437950d9fc8c91b34 Mon Sep 17 00:00:00 2001 From: Maxim Kulkin Date: Sun, 11 Mar 2018 22:56:10 -0700 Subject: [PATCH 290/349] extras/dhcpserver - Fix memory leak on stop --- extras/dhcpserver/dhcpserver.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c index 6b9655c..a9a6f93 100644 --- a/extras/dhcpserver/dhcpserver.c +++ b/extras/dhcpserver/dhcpserver.c @@ -99,6 +99,7 @@ void dhcpserver_start(const ip4_addr_t *first_client_addr, uint8_t max_leases) dhcpserver_stop(); state = malloc(sizeof(server_state_t)); + memset(state, 0, sizeof(*state)); state->max_leases = max_leases; state->leases = calloc(max_leases, sizeof(dhcp_lease_t)); bzero(state->leases, max_leases * sizeof(dhcp_lease_t)); @@ -116,8 +117,13 @@ void dhcpserver_stop(void) { if (dhcpserver_task_handle) { vTaskDelete(dhcpserver_task_handle); - free(state); dhcpserver_task_handle = NULL; + + if (state->nc) + netconn_delete(state->nc); + free(state->leases); + free(state); + state = NULL; } } From 5c18d42c8d2a18dacb985cd8aca04a39b49add1e Mon Sep 17 00:00:00 2001 From: tkremeyer Date: Tue, 13 Mar 2018 14:31:19 +0100 Subject: [PATCH 291/349] UART: Add ability to configure stopbits and parity bit (#590) --- core/include/esp/uart.h | 36 +++++++++++ core/include/esp/uart_regs.h | 14 ++++- examples/uart_config/Makefile | 3 + examples/uart_config/uart_config.c | 96 ++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+), 1 deletion(-) create mode 100755 examples/uart_config/Makefile create mode 100755 examples/uart_config/uart_config.c diff --git a/core/include/esp/uart.h b/core/include/esp/uart.h index 9d72dc3..5104f80 100644 --- a/core/include/esp/uart.h +++ b/core/include/esp/uart.h @@ -124,4 +124,40 @@ static inline int uart_get_baud(int uart_num) return APB_CLK_FREQ / FIELD2VAL(UART_CLOCK_DIVIDER_VALUE, UART(uart_num).CLOCK_DIVIDER); } +/* Set uart stop bit count to the desired value */ +static inline void uart_set_stopbits(int uart_num, UART_StopBits stop_bits) { + UART(uart_num).CONF0 = SET_FIELD(UART(uart_num).CONF0, UART_CONF0_STOP_BITS, stop_bits); +} + +/* Returns the current stopbit count for the UART */ +static inline UART_StopBits uart_get_stopbits(int uart_num) { + return (UART_StopBits)(FIELD2VAL(UART_CONF0_STOP_BITS, UART(uart_num).CONF0)); +} + +/* Set if uart parity bit should be enabled */ +static inline void uart_set_parity_enabled(int uart_num, bool enable) { + if(enable) + UART(uart_num).CONF0 = SET_MASK_BITS(UART(uart_num).CONF0, UART_CONF0_PARITY_ENABLE); + else + UART(uart_num).CONF0 = CLEAR_MASK_BITS(UART(uart_num).CONF0, UART_CONF0_PARITY_ENABLE); +} + +/* Set uart parity bit type */ +static inline void uart_set_parity(int uart_num, UART_Parity parity) { + if(parity == UART_PARITY_EVEN) + UART(uart_num).CONF0 = CLEAR_MASK_BITS(UART(uart_num).CONF0, UART_CONF0_PARITY); + else + UART(uart_num).CONF0 = SET_MASK_BITS(UART(uart_num).CONF0, UART_CONF0_PARITY); +} + +/* Returns if parity bit is currently enabled for UART uart_num */ +static inline bool uart_get_parity_enabled(int uart_num) { + return ((UART(uart_num).CONF0 & UART_CONF0_PARITY_ENABLE) != 0); +} + +/* Returns the current parity bit type for UART uart_num (also if parity bit is not enabled) */ +static inline UART_Parity uart_get_parity(int uart_num) { + return (UART_Parity)((UART(uart_num).CONF0 & UART_CONF0_PARITY) != 0); +} + #endif /* _ESP_UART_H */ diff --git a/core/include/esp/uart_regs.h b/core/include/esp/uart_regs.h index 671754d..9f50245 100644 --- a/core/include/esp/uart_regs.h +++ b/core/include/esp/uart_regs.h @@ -50,6 +50,18 @@ struct UART_REGS { _Static_assert(sizeof(struct UART_REGS) == 0x80, "UART_REGS is the wrong size"); +typedef enum { + UART_STOPBITS_0 = 0b00, + UART_STOPBITS_1 = 0b01, + UART_STOPBITS_1_5 = 0b10, + UART_STOPBITS_2 = 0b11 +} UART_StopBits; + +typedef enum { + UART_PARITY_EVEN = 0b0, + UART_PARITY_ODD = 0b1 +} UART_Parity; + /* Details for FIFO register */ #define UART_FIFO_DATA_M 0x000000ff @@ -153,7 +165,7 @@ _Static_assert(sizeof(struct UART_REGS) == 0x80, "UART_REGS is the wrong size"); #define UART_CONF0_BYTE_LEN_M 0x00000003 #define UART_CONF0_BYTE_LEN_S 2 #define UART_CONF0_PARITY_ENABLE BIT(1) -#define UART_CONF0_PARITY BIT(0) //FIXME: does this indicate odd or even? +#define UART_CONF0_PARITY BIT(0) //where 0 means even /* Details for CONF1 register */ diff --git a/examples/uart_config/Makefile b/examples/uart_config/Makefile new file mode 100755 index 0000000..f414a7d --- /dev/null +++ b/examples/uart_config/Makefile @@ -0,0 +1,3 @@ +PROGRAM=uart_config + +include ../../common.mk diff --git a/examples/uart_config/uart_config.c b/examples/uart_config/uart_config.c new file mode 100755 index 0000000..573b9a4 --- /dev/null +++ b/examples/uart_config/uart_config.c @@ -0,0 +1,96 @@ +/* A basic example that demonstrates how UART can be configured. + Outputs some test data with 100baud, 1.5 stopbits, even parity bit to UART1 + (GPIO2; D4 for NodeMCU boards) + + This sample code is in the public domain. + */ + +#include +#include +#include +#include + +#include +#include + +void uart_send_data(void *pvParameters){ + /* Activate UART for GPIO2 */ + gpio_set_iomux_function(2, IOMUX_GPIO2_FUNC_UART1_TXD); + + /* Set baud rate of UART1 to 100 (so it's easier to measure) */ + uart_set_baud(1, 100); + + /* Set to 1.5 stopbits */ + uart_set_stopbits(1, UART_STOPBITS_1_5); + + /* Enable parity bit */ + uart_set_parity_enabled(1, true); + + /* Set parity bit to even */ + uart_set_parity(1, UART_PARITY_EVEN); + + /* Repeatedly send some example packets */ + for(;;) + { + uart_putc(1, 0B00000000); + uart_putc(1, 0B00000001); + uart_putc(1, 0B10101010); + uart_flush_txfifo(1); + } +} + +void uart_print_config(void *pvParameters){ + for(;;) + { + /* Get data */ + int baud = uart_get_baud(1); + UART_StopBits stopbits = uart_get_stopbits(1); + bool parity_enabled = uart_get_parity_enabled(1); + UART_Parity parity = uart_get_parity(1); + + /* Print to UART0 */ + printf("Baud: %d ", baud); + + switch(stopbits){ + case UART_STOPBITS_0: + printf("Stopbits: 0 "); + break; + case UART_STOPBITS_1: + printf("Stopbits: 1 "); + break; + case UART_STOPBITS_1_5: + printf("Stopbits: 1.5 "); + break; + case UART_STOPBITS_2: + printf("Stopbits: 2"); + break; + default: + printf("Stopbits: Error"); + } + + printf("Parity bit enabled: %d ", parity_enabled); + + switch(parity){ + case UART_PARITY_EVEN: + printf("Parity: Even"); + break; + case UART_PARITY_ODD: + printf("Parity: Odd"); + break; + default: + printf("Parity: Error"); + } + + printf("\n"); + + vTaskDelay(1000.0 / portTICK_PERIOD_MS); + } +} + +void user_init(void){ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + xTaskCreate(uart_send_data, "tsk1", 256, NULL, 2, NULL); + xTaskCreate(uart_print_config, "tsk2", 256, NULL, 3, NULL); +} From 6dde352842bcd6ec20c831353021dc2d175ad10a Mon Sep 17 00:00:00 2001 From: Zaltora Date: Tue, 27 Mar 2018 10:56:46 +0200 Subject: [PATCH 292/349] prevent multiple initialization memory allocation and inform user if allocation was fail --- extras/ws2812_i2s/ws2812_i2s.c | 24 +++++++++++++++++++----- extras/ws2812_i2s/ws2812_i2s.h | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/extras/ws2812_i2s/ws2812_i2s.c b/extras/ws2812_i2s/ws2812_i2s.c index 62dc496..88caf27 100644 --- a/extras/ws2812_i2s/ws2812_i2s.c +++ b/extras/ws2812_i2s/ws2812_i2s.c @@ -117,7 +117,7 @@ static inline void init_descriptors_list(uint8_t *buf, uint32_t total_dma_data_s } } -void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type) +int ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type) { dma_buffer_size = pixels_number * type; dma_block_list_size = dma_buffer_size / MAX_DMA_BLOCK_SIZE; @@ -130,11 +130,24 @@ void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type) debug("allocating %d dma blocks\n", dma_block_list_size); - dma_block_list = (dma_descriptor_t*)malloc( - dma_block_list_size * sizeof(dma_descriptor_t)); - + if(!dma_block_list) + { + dma_block_list = (dma_descriptor_t*)malloc( + dma_block_list_size * sizeof(dma_descriptor_t)); + if(!dma_block_list) + { + return -1; + } + } debug("allocating %d bytes for DMA buffer\n", dma_buffer_size); - dma_buffer = malloc(dma_buffer_size); + if(!dma_buffer) + { + dma_buffer = malloc(dma_buffer_size); + if(!dma_buffer) + { + return -1; + } + } memset(dma_buffer, 0xFA, dma_buffer_size); init_descriptors_list(dma_buffer, dma_buffer_size); @@ -146,6 +159,7 @@ void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type) clock_div.bclk_div, clock_div.clkm_div); i2s_dma_init(dma_isr_handler, NULL, clock_div, i2s_pins); + return 0; } const IRAM_DATA int16_t bitpatterns[16] = diff --git a/extras/ws2812_i2s/ws2812_i2s.h b/extras/ws2812_i2s/ws2812_i2s.h index ffb2701..c6c8df5 100644 --- a/extras/ws2812_i2s/ws2812_i2s.h +++ b/extras/ws2812_i2s/ws2812_i2s.h @@ -53,7 +53,7 @@ typedef enum { * * @param pixels_number Number of pixels in the strip. */ -void ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type); +int ws2812_i2s_init(uint32_t pixels_number, pixeltype_t type); /** * Update ws2812 pixels. From 8cb769d55d04ed97a3835748fdd37d4b235203b5 Mon Sep 17 00:00:00 2001 From: Jean-Nicolas Graux Date: Sun, 25 Mar 2018 21:48:14 +0200 Subject: [PATCH 293/349] uart: add ability to configure byte length Signed-off-by: Jean-Nicolas Graux --- core/include/esp/uart.h | 10 ++++++++++ core/include/esp/uart_regs.h | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/core/include/esp/uart.h b/core/include/esp/uart.h index 5104f80..166de29 100644 --- a/core/include/esp/uart.h +++ b/core/include/esp/uart.h @@ -160,4 +160,14 @@ static inline UART_Parity uart_get_parity(int uart_num) { return (UART_Parity)((UART(uart_num).CONF0 & UART_CONF0_PARITY) != 0); } +/* Set uart data bits length to the desired value */ +static inline void uart_set_byte_length(int uart_num, UART_ByteLength byte_length) { + UART(uart_num).CONF0 = SET_FIELD(UART(uart_num).CONF0, UART_CONF0_BYTE_LEN, byte_length); +} + +/* Returns the current data bits length for the UART */ +static inline UART_ByteLength uart_get_byte_length(int uart_num) { + return (UART_ByteLength)(FIELD2VAL(UART_CONF0_BYTE_LEN, UART(uart_num).CONF0)); +} + #endif /* _ESP_UART_H */ diff --git a/core/include/esp/uart_regs.h b/core/include/esp/uart_regs.h index 9f50245..66f14ae 100644 --- a/core/include/esp/uart_regs.h +++ b/core/include/esp/uart_regs.h @@ -62,6 +62,13 @@ typedef enum { UART_PARITY_ODD = 0b1 } UART_Parity; +typedef enum { + UART_BYTELENGTH_5 = 0b00, + UART_BYTELENGTH_6 = 0b01, + UART_BYTELENGTH_7 = 0b10, + UART_BYTELENGTH_8 = 0b11, +} UART_ByteLength; + /* Details for FIFO register */ #define UART_FIFO_DATA_M 0x000000ff From e43329cbc7c7c5cf28c9513ed9d9fbffd081b7b5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 31 Mar 2018 21:29:26 +1100 Subject: [PATCH 294/349] Skip calling wrappers from a number of the ROM functions. A number of the ROM functions were pointing to wrappers that saved and restored the $a0 register, but the functions they called either did not use $a0 or saved and restored $a0 as needed anyway. --- ld/rom.ld | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ld/rom.ld b/ld/rom.ld index 95c2666..3fcb04d 100644 --- a/ld/rom.ld +++ b/ld/rom.ld @@ -57,18 +57,18 @@ PROVIDE ( __umoddi3 = 0x4000d770 ); PROVIDE ( __umodsi3 = 0x4000e268 ); PROVIDE ( __umulsidi3 = 0x4000dcf0 ); -PROVIDE ( bzero = 0x40002ae8 ); -PROVIDE ( memcmp = 0x400018d4 ); -PROVIDE ( memcpy = 0x400018b4 ); -PROVIDE ( memmove = 0x400018c4 ); -PROVIDE ( memset = 0x400018a4 ); +PROVIDE ( bzero = 0x4000de84 ); +PROVIDE ( memcmp = 0x4000dea8 ); +PROVIDE ( memcpy = 0x4000df48 ); +PROVIDE ( memmove = 0x4000e04c ); +PROVIDE ( memset = 0x4000e190 ); -PROVIDE ( strcmp = 0x40002aa8 ); -PROVIDE ( strcpy = 0x40002a88 ); -PROVIDE ( strlen = 0x40002ac8 ); -PROVIDE ( strncmp = 0x40002ab8 ); -PROVIDE ( strncpy = 0x40002a98 ); -PROVIDE ( strstr = 0x40002ad8 ); +PROVIDE ( strcmp = 0x4000bdc8 ); +PROVIDE ( strcpy = 0x4000bec8 ); +PROVIDE ( strlen = 0x4000bf4c ); +PROVIDE ( strncmp = 0x4000bfa8 ); +PROVIDE ( strncpy = 0x4000c0a0 ); +PROVIDE ( strstr = 0x4000e1e0 ); PROVIDE ( ETS_INTR_LOCK = 0x40000f74 ); PROVIDE ( ETS_INTR_UNLOCK = 0x40000f80 ); From a6fa0ee497936191eb82ed701fbb39b142091472 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 31 Mar 2018 23:28:49 +1100 Subject: [PATCH 295/349] FreeRTOS: Update to r2536. * Introduce sbBYTES_TO_STORE_MESSAGE_LENGTH * Fix bug in ucStreamBufferGetStreamBufferType() - which is only used by the Percepio trace tool. * Update the line within vTaskStartScheduler() that was setting xTickCount to 0 to instead set it to configINITIAL_TICK_COUNT. * Introduce xMessageBufferNextLengthBytes() and tests for the same. * Add call to traceTASK_SWITCHED_IN() in vTaskStartScheduler() so trace tools can see the first task to run. * Correct definition of StaticTask_t in the case that portUSE_MPU_WRAPPERS is set to 1. * prvTaskCheckFreeStackSpace() now returns configSTACK_DEPTH_TYPE to allow return values greater than max uint16_t value if required. * xStreamBufferSend() and xStreamBufferReceive() no longer clear task notification bits - clearing was unnecessary as only the task notification state is used. * Correct out of date comment in tasks.c. * Fix typo in comment in queue.h. --- FreeRTOS/Source/include/FreeRTOS.h | 9 +++- FreeRTOS/Source/include/message_buffer.h | 19 ++++++++ FreeRTOS/Source/include/mpu_prototypes.h | 1 + FreeRTOS/Source/include/mpu_wrappers.h | 1 + FreeRTOS/Source/include/queue.h | 2 +- FreeRTOS/Source/include/stream_buffer.h | 2 + FreeRTOS/Source/include/task.h | 2 +- FreeRTOS/Source/list.c | 2 +- FreeRTOS/Source/queue.c | 20 ++++++-- FreeRTOS/Source/stream_buffer.c | 59 ++++++++++++++++++++++-- FreeRTOS/Source/tasks.c | 16 +++++-- 11 files changed, 116 insertions(+), 17 deletions(-) diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h index 71ff1db..1cde3ce 100644 --- a/FreeRTOS/Source/include/FreeRTOS.h +++ b/FreeRTOS/Source/include/FreeRTOS.h @@ -826,6 +826,13 @@ extern "C" { #define configSTACK_DEPTH_TYPE uint16_t #endif +#ifndef configMESSAGE_BUFFER_LENGTH_TYPE + /* Defaults to size_t for backward compatibility, but can be overridden + in FreeRTOSConfig.h if lengths will always be less than the number of bytes + in a size_t. */ + #define configMESSAGE_BUFFER_LENGTH_TYPE size_t +#endif + /* Sanity check the configuration. */ #if( configUSE_TICKLESS_IDLE != 0 ) #if( INCLUDE_vTaskSuspend != 1 ) @@ -1019,7 +1026,7 @@ typedef struct xSTATIC_TCB uint32_t ulDummy18; uint8_t ucDummy19; #endif - #if( ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) || ( portUSING_MPU_WRAPPERS == 1 ) ) + #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) uint8_t uxDummy20; #endif diff --git a/FreeRTOS/Source/include/message_buffer.h b/FreeRTOS/Source/include/message_buffer.h index 91e34fa..396cffd 100644 --- a/FreeRTOS/Source/include/message_buffer.h +++ b/FreeRTOS/Source/include/message_buffer.h @@ -693,6 +693,25 @@ size_t xMessageBufferSpaceAvailable( MessageBufferHandle_t xMessageBuffer ) ); */ #define xMessageBufferSpaceAvailable( xMessageBuffer ) xStreamBufferSpacesAvailable( ( StreamBufferHandle_t ) xMessageBuffer ) +/** + * message_buffer.h +

        + size_t xMessageBufferNextLengthBytes( MessageBufferHandle_t xMessageBuffer ) );
        + 
        + * Returns the length (in bytes) of the next message in a message buffer. + * Useful if xMessageBufferReceive() returned 0 because the size of the buffer + * passed into xMessageBufferReceive() was too small to hold the next message. + * + * @param xMessageBuffer The handle of the message buffer being queried. + * + * @return The length (in bytes) of the next message in the message buffer, or 0 + * if the message buffer is empty. + * + * \defgroup xMessageBufferNextLengthBytes xMessageBufferNextLengthBytes + * \ingroup MessageBufferManagement + */ +#define xMessageBufferNextLengthBytes( xMessageBuffer ) xStreamBufferNextMessageLengthBytes( ( StreamBufferHandle_t ) xMessageBuffer ) PRIVILEGED_FUNCTION; + /** * message_buffer.h * diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h index e2c89ab..118988b 100644 --- a/FreeRTOS/Source/include/mpu_prototypes.h +++ b/FreeRTOS/Source/include/mpu_prototypes.h @@ -138,6 +138,7 @@ UBaseType_t MPU_uxEventGroupGetNumber( void* xEventGroup ); size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait ); size_t MPU_xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ); size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait ); +size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ); size_t MPU_xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ); void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ); BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ); diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h index eb326e7..f7c97c3 100644 --- a/FreeRTOS/Source/include/mpu_wrappers.h +++ b/FreeRTOS/Source/include/mpu_wrappers.h @@ -142,6 +142,7 @@ only for ports that are using the MPU. */ #define xStreamBufferSend MPU_xStreamBufferSend #define xStreamBufferSendFromISR MPU_xStreamBufferSendFromISR #define xStreamBufferReceive MPU_xStreamBufferReceive + #define xStreamBufferNextMessageLengthBytes MPU_xStreamBufferNextMessageLengthBytes #define xStreamBufferReceiveFromISR MPU_xStreamBufferReceiveFromISR #define vStreamBufferDelete MPU_vStreamBufferDelete #define xStreamBufferIsFull MPU_xStreamBufferIsFull diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index a23fa1e..abfb7ae 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -233,7 +233,7 @@ typedef void * QueueSetMemberHandle_t; /** * queue. h *
        - BaseType_t xQueueSendToToFront(
        + BaseType_t xQueueSendToFront(
         								   QueueHandle_t	xQueue,
         								   const void		*pvItemToQueue,
         								   TickType_t		xTicksToWait
        diff --git a/FreeRTOS/Source/include/stream_buffer.h b/FreeRTOS/Source/include/stream_buffer.h
        index 5418e05..8f91968 100644
        --- a/FreeRTOS/Source/include/stream_buffer.h
        +++ b/FreeRTOS/Source/include/stream_buffer.h
        @@ -839,6 +839,8 @@ StreamBufferHandle_t xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,
         													   uint8_t * const pucStreamBufferStorageArea,
         													   StaticStreamBuffer_t * const pxStaticStreamBuffer ) PRIVILEGED_FUNCTION;
         
        +size_t xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
        +
         #if( configUSE_TRACE_FACILITY == 1 )
         	void vStreamBufferSetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer, UBaseType_t uxStreamBufferNumber ) PRIVILEGED_FUNCTION;
         	UBaseType_t uxStreamBufferGetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer ) PRIVILEGED_FUNCTION;
        diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h
        index d0ee068..b559a4e 100644
        --- a/FreeRTOS/Source/include/task.h
        +++ b/FreeRTOS/Source/include/task.h
        @@ -135,7 +135,7 @@ typedef struct xTASK_STATUS
         	UBaseType_t uxBasePriority;		/* The priority to which the task will return if the task's current priority has been inherited to avoid unbounded priority inversion when obtaining a mutex.  Only valid if configUSE_MUTEXES is defined as 1 in FreeRTOSConfig.h. */
         	uint32_t ulRunTimeCounter;		/* The total run time allocated to the task so far, as defined by the run time stats clock.  See http://www.freertos.org/rtos-run-time-stats.html.  Only valid when configGENERATE_RUN_TIME_STATS is defined as 1 in FreeRTOSConfig.h. */
         	StackType_t *pxStackBase;		/* Points to the lowest address of the task's stack area. */
        -	uint16_t usStackHighWaterMark;	/* The minimum amount of stack space that has remained for the task since the task was created.  The closer this value is to zero the closer the task has come to overflowing its stack. */
        +	configSTACK_DEPTH_TYPE usStackHighWaterMark;	/* The minimum amount of stack space that has remained for the task since the task was created.  The closer this value is to zero the closer the task has come to overflowing its stack. */
         } TaskStatus_t;
         
         /* Possible return values for eTaskConfirmSleepModeStatus(). */
        diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c
        index 758523a..1412776 100644
        --- a/FreeRTOS/Source/list.c
        +++ b/FreeRTOS/Source/list.c
        @@ -114,7 +114,7 @@ const TickType_t xValueOfInsertion = pxNewListItem->xItemValue;
         	/* Insert the new list item into the list, sorted in xItemValue order.
         
         	If the list already contains a list item with the same item value then the
        -	new list item should be placed after it.  This ensures that TCB's which are
        +	new list item should be placed after it.  This ensures that TCBs which are
         	stored in ready lists (all of which have the same xItemValue value) get a
         	share of the CPU.  However, if the xItemValue is the same as the back marker
         	the iteration loop below will not end.  Therefore the value is checked
        diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c
        index c37d285..829faf2 100644
        --- a/FreeRTOS/Source/queue.c
        +++ b/FreeRTOS/Source/queue.c
        @@ -301,7 +301,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
         
         	QueueHandle_t xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType )
         	{
        -	Queue_t *pxNewQueue;
        +	Queue_t *pxNewQueue = NULL;
         
         		configASSERT( uxQueueLength > ( UBaseType_t ) 0 );
         
        @@ -345,6 +345,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
         		else
         		{
         			traceQUEUE_CREATE_FAILED( ucQueueType );
        +			mtCOVERAGE_TEST_MARKER();
         		}
         
         		return pxNewQueue;
        @@ -397,6 +398,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
         		else
         		{
         			traceQUEUE_CREATE_FAILED( ucQueueType );
        +			mtCOVERAGE_TEST_MARKER();
         		}
         
         		return pxNewQueue;
        @@ -752,13 +754,23 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
         			if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
         			{
         				traceQUEUE_SEND( pxQueue );
        -				xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );
         
         				#if ( configUSE_QUEUE_SETS == 1 )
         				{
        +				UBaseType_t uxPreviousMessagesWaiting = pxQueue->uxMessagesWaiting;
        +
        +					xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );
        +
         					if( pxQueue->pxQueueSetContainer != NULL )
         					{
        -						if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) != pdFALSE )
        +						if( ( xCopyPosition == queueOVERWRITE ) && ( uxPreviousMessagesWaiting != ( UBaseType_t ) 0 ) )
        +						{
        +							/* Do not notify the queue set as an existing item
        +							was overwritten in the queue so the number of items
        +							in the queue has not changed. */
        +							mtCOVERAGE_TEST_MARKER();
        +						}
        +						else if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) != pdFALSE )
         						{
         							/* The queue is a member of a queue set, and posting
         							to the queue set caused a higher priority task to
        @@ -805,6 +817,8 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
         				}
         				#else /* configUSE_QUEUE_SETS */
         				{
        +					xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );
        +
         					/* If there was a task waiting for data to arrive on the
         					queue then unblock it now. */
         					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
        diff --git a/FreeRTOS/Source/stream_buffer.c b/FreeRTOS/Source/stream_buffer.c
        index c60045f..73b7c64 100644
        --- a/FreeRTOS/Source/stream_buffer.c
        +++ b/FreeRTOS/Source/stream_buffer.c
        @@ -129,7 +129,7 @@ that uses task notifications. */
         /*lint -restore (9026) */
         
         /* The number of bytes used to hold the length of a message in the buffer. */
        -#define sbBYTES_TO_STORE_MESSAGE_LENGTH ( sizeof( size_t ) )
        +#define sbBYTES_TO_STORE_MESSAGE_LENGTH ( sizeof( configMESSAGE_BUFFER_LENGTH_TYPE ) )
         
         /* Bits stored in the ucFlags field of the stream buffer. */
         #define sbFLAGS_IS_MESSAGE_BUFFER		( ( uint8_t ) 1 ) /* Set if the stream buffer was created as a message buffer, in which case it holds discrete messages rather than a stream. */
        @@ -504,6 +504,9 @@ TimeOut_t xTimeOut;
         	if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 )
         	{
         		xRequiredSpace += sbBYTES_TO_STORE_MESSAGE_LENGTH;
        +
        +		/* Overflow? */
        +		configASSERT( xRequiredSpace > xDataLengthBytes );
         	}
         	else
         	{
        @@ -540,7 +543,7 @@ TimeOut_t xTimeOut;
         			taskEXIT_CRITICAL();
         
         			traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer );
        -			( void ) xTaskNotifyWait( ( uint32_t ) 0, UINT32_MAX, NULL, xTicksToWait );
        +			( void ) xTaskNotifyWait( ( uint32_t ) 0, ( uint32_t ) 0, NULL, xTicksToWait );
         			pxStreamBuffer->xTaskWaitingToSend = NULL;
         
         		} while( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE );
        @@ -746,7 +749,7 @@ size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength;
         		{
         			/* Wait for data to be available. */
         			traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer );
        -			( void ) xTaskNotifyWait( ( uint32_t ) 0, UINT32_MAX, NULL, xTicksToWait );
        +			( void ) xTaskNotifyWait( ( uint32_t ) 0, ( uint32_t ) 0, NULL, xTicksToWait );
         			pxStreamBuffer->xTaskWaitingToReceive = NULL;
         
         			/* Recheck the data available after blocking. */
        @@ -792,6 +795,50 @@ size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength;
         }
         /*-----------------------------------------------------------*/
         
        +size_t xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer )
        +{
        +StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */
        +size_t xReturn, xBytesAvailable, xOriginalTail;
        +configMESSAGE_BUFFER_LENGTH_TYPE xTempReturn;
        +
        +	configASSERT( pxStreamBuffer );
        +
        +	/* Ensure the stream buffer is being used as a message buffer. */
        +	if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 )
        +	{
        +		xBytesAvailable = prvBytesInBuffer( pxStreamBuffer );
        +		if( xBytesAvailable > sbBYTES_TO_STORE_MESSAGE_LENGTH )
        +		{
        +			/* The number of bytes available is greater than the number of bytes
        +			required to hold the length of the next message, so another message
        +			is available.  Return its length without removing the length bytes
        +			from the buffer.  A copy of the tail is stored so the buffer can be
        +			returned to its prior state as the message is not actually being
        +			removed from the buffer. */
        +			xOriginalTail = pxStreamBuffer->xTail;
        +			( void ) prvReadBytesFromBuffer( pxStreamBuffer, ( uint8_t * ) &xTempReturn, sbBYTES_TO_STORE_MESSAGE_LENGTH, xBytesAvailable );
        +			xReturn = ( size_t ) xTempReturn;
        +			pxStreamBuffer->xTail = xOriginalTail;
        +		}
        +		else
        +		{
        +			/* The minimum amount of bytes in a message buffer is
        +			( sbBYTES_TO_STORE_MESSAGE_LENGTH + 1 ), so if xBytesAvailable is
        +			less than sbBYTES_TO_STORE_MESSAGE_LENGTH the only other valid
        +			value is 0. */
        +			configASSERT( xBytesAvailable == 0 );
        +			xReturn = 0;
        +		}
        +	}
        +	else
        +	{
        +		xReturn = 0;
        +	}
        +
        +	return xReturn;
        +}
        +/*-----------------------------------------------------------*/
        +
         size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer,
         									void *pvRxData,
         									size_t xBufferLengthBytes,
        @@ -856,6 +903,7 @@ static size_t prvReadMessageFromBuffer( StreamBuffer_t *pxStreamBuffer,
         										size_t xBytesToStoreMessageLength )
         {
         size_t xOriginalTail, xReceivedLength, xNextMessageLength;
        +configMESSAGE_BUFFER_LENGTH_TYPE xTempNextMessageLength;
         
         	if( xBytesToStoreMessageLength != ( size_t ) 0 )
         	{
        @@ -864,7 +912,8 @@ size_t xOriginalTail, xReceivedLength, xNextMessageLength;
         		returned to its prior state if the length of the message is too
         		large for the provided buffer. */
         		xOriginalTail = pxStreamBuffer->xTail;
        -		( void ) prvReadBytesFromBuffer( pxStreamBuffer, ( uint8_t * ) &xNextMessageLength, xBytesToStoreMessageLength, xBytesAvailable );
        +		( void ) prvReadBytesFromBuffer( pxStreamBuffer, ( uint8_t * ) &xTempNextMessageLength, xBytesToStoreMessageLength, xBytesAvailable );
        +		xNextMessageLength = ( size_t ) xTempNextMessageLength;
         
         		/* Reduce the number of bytes available by the number of bytes just
         		read out. */
        @@ -1192,7 +1241,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer,
         
         	uint8_t ucStreamBufferGetStreamBufferType( StreamBufferHandle_t xStreamBuffer )
         	{
        -		return ( ( StreamBuffer_t * )xStreamBuffer )->ucFlags | sbFLAGS_IS_MESSAGE_BUFFER;
        +		return ( ( StreamBuffer_t * )xStreamBuffer )->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER;
         	}
         
         #endif /* configUSE_TRACE_FACILITY */
        diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c
        index 85f04ec..f25e8b3 100644
        --- a/FreeRTOS/Source/tasks.c
        +++ b/FreeRTOS/Source/tasks.c
        @@ -509,7 +509,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseT
          */
         #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
         
        -	static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) PRIVILEGED_FUNCTION;
        +	static configSTACK_DEPTH_TYPE prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) PRIVILEGED_FUNCTION;
         
         #endif
         
        @@ -846,6 +846,8 @@ UBaseType_t x;
         		uxPriority &= ~portPRIVILEGE_BIT;
         	#endif /* portUSING_MPU_WRAPPERS == 1 */
         
        +	configASSERT( pcName );
        +
         	/* Avoid dependency on memset() if it is not required. */
         	#if( tskSET_NEW_STACKS_TO_KNOWN_VALUE == 1 )
         	{
        @@ -1982,7 +1984,7 @@ BaseType_t xReturn;
         
         		xNextTaskUnblockTime = portMAX_DELAY;
         		xSchedulerRunning = pdTRUE;
        -		xTickCount = ( TickType_t ) 0U;
        +		xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT;
         
         		/* If configGENERATE_RUN_TIME_STATS is defined then the following
         		macro must be defined to configure the timer/counter used to generate
        @@ -1992,6 +1994,8 @@ BaseType_t xReturn;
         		FreeRTOSConfig.h file. */
         		portCONFIGURE_TIMER_FOR_RUN_TIME_STATS();
         
        +		traceTASK_SWITCHED_IN();
        +
         		/* Setting up the timer tick is hardware specific and thus in the
         		portable interface. */
         		if( xPortStartScheduler() != pdFALSE )
        @@ -2778,7 +2782,9 @@ BaseType_t xSwitchRequired = pdFALSE;
         		/* Save the hook function in the TCB.  A critical section is required as
         		the value can be accessed from an interrupt. */
         		taskENTER_CRITICAL();
        +		{
         			xTCB->pxTaskTag = pxHookFunction;
        +		}
         		taskEXIT_CRITICAL();
         	}
         
        @@ -3474,7 +3480,7 @@ static void prvCheckTasksWaitingTermination( void )
         	{
         		TCB_t *pxTCB;
         
        -		/* uxDeletedTasksWaitingCleanUp is used to prevent vTaskSuspendAll()
        +		/* uxDeletedTasksWaitingCleanUp is used to prevent taskENTER_CRITICAL()
         		being called too often in the idle task. */
         		while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U )
         		{
        @@ -3625,7 +3631,7 @@ static void prvCheckTasksWaitingTermination( void )
         
         #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
         
        -	static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte )
        +	static configSTACK_DEPTH_TYPE prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte )
         	{
         	uint32_t ulCount = 0U;
         
        @@ -3637,7 +3643,7 @@ static void prvCheckTasksWaitingTermination( void )
         
         		ulCount /= ( uint32_t ) sizeof( StackType_t ); /*lint !e961 Casting is not redundant on smaller architectures. */
         
        -		return ( uint16_t ) ulCount;
        +		return ( configSTACK_DEPTH_TYPE ) ulCount;
         	}
         
         #endif /* ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) */
        
        From 9277bea8c950ae529dbec8c31da7f409bc147ce0 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Thu, 1 Mar 2018 20:48:09 +1100
        Subject: [PATCH 296/349] mbedtls: update and integrate upstream fixes.
        
        ---
         extras/mbedtls/component.mk |   2 +-
         extras/mbedtls/mbedtls      |   2 +-
         extras/mbedtls/net_lwip.c   | 199 ++++++++++++++++++++++++++++--------
         3 files changed, 157 insertions(+), 46 deletions(-)
        
        diff --git a/extras/mbedtls/component.mk b/extras/mbedtls/component.mk
        index c392471..5b7d658 100644
        --- a/extras/mbedtls/component.mk
        +++ b/extras/mbedtls/component.mk
        @@ -26,7 +26,7 @@ OBJS_CRYPTO=	aes.o		aesni.o		arc4.o		\
         		padlock.o	pem.o		pk.o		\
         		pk_wrap.o	pkcs12.o	pkcs5.o		\
         		pkparse.o	pkwrite.o	platform.o	\
        -		ripemd160.o	rsa.o		sha1.o		\
        +		ripemd160.o	rsa.o		rsa_internal.o	sha1.o		\
         		sha256.o	sha512.o	threading.o	\
         		timing.o	version.o			\
         		version_features.o		xtea.o
        diff --git a/extras/mbedtls/mbedtls b/extras/mbedtls/mbedtls
        index f2a597f..1bf6123 160000
        --- a/extras/mbedtls/mbedtls
        +++ b/extras/mbedtls/mbedtls
        @@ -1 +1 @@
        -Subproject commit f2a597fa3dd1c7b15e0fee62f6932b253295803d
        +Subproject commit 1bf6123fca97a9a35c2f403ab0c96495f9580db6
        diff --git a/extras/mbedtls/net_lwip.c b/extras/mbedtls/net_lwip.c
        index 3101380..3926458 100644
        --- a/extras/mbedtls/net_lwip.c
        +++ b/extras/mbedtls/net_lwip.c
        @@ -1,6 +1,7 @@
         /*
          *  TCP/IP or UDP/IP networking functions
        - *  modified for LWIP support on ESP8266
        + *  Based on mbedtls/library/net_sockets.c
        + *  Modified for LWIP support on ESP8266
          *
          *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
          *  Additions Copyright (C) 2015 Angus Gratton
        @@ -21,7 +22,6 @@
          *  This file is part of mbed TLS (https://tls.mbed.org)
          */
         
        -#include 
         #if !defined(MBEDTLS_CONFIG_FILE)
         #include "mbedtls/config.h"
         #else
        @@ -30,18 +30,74 @@
         
         #if defined(MBEDTLS_NET_C)
         
        +#define ESP_OPEN_RTOS 1
        +#define _SOCKLEN_T_DECLARED 1
        +
        +#if !defined(unix) && !defined(__unix__) && !defined(__unix) &&         \
        +    !defined(__APPLE__) && !defined(_WIN32) && !defined(ESP_OPEN_RTOS)
        +#error "This module only works on Unix and Windows, see MBEDTLS_NET_C in config.h"
        +#endif
        +
        +#if defined(MBEDTLS_PLATFORM_C)
        +#include "mbedtls/platform.h"
        +#else
        +#include 
        +#endif
        +
         #include "mbedtls/net_sockets.h"
         
         #include 
         
        +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \
        +    !defined(EFI32)
        +
        +#ifdef _WIN32_WINNT
        +#undef _WIN32_WINNT
        +#endif
        +/* Enables getaddrinfo() & Co */
        +#define _WIN32_WINNT 0x0501
        +#include 
        +
        +#include 
        +#include 
        +
        +#if defined(_MSC_VER)
        +#if defined(_WIN32_WCE)
        +#pragma comment( lib, "ws2.lib" )
        +#else
        +#pragma comment( lib, "ws2_32.lib" )
        +#endif
        +#endif /* _MSC_VER */
        +
        +#define read(fd,buf,len)        recv( fd, (char*)( buf ), (int)( len ), 0 )
        +#define write(fd,buf,len)       send( fd, (char*)( buf ), (int)( len ), 0 )
        +#define close(fd)               closesocket(fd)
        +
        +static int wsa_init_done = 0;
        +
        +#else /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */
        +
         #include 
         #include 
        +//#include 
        +#include 
         #include 
         #include 
        +#include 
        +#include 
         #include 
         #include 
         
        -#include 
        +#endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */
        +
        +/* Some MS functions want int and MSVC warns if we pass size_t,
        + * but the standard functions use socklen_t, so cast only for MSVC */
        +#if defined(_MSC_VER)
        +#define MSVC_INT_CAST   (int)
        +#else
        +#define MSVC_INT_CAST
        +#endif
        +
         #include 
         
         #include 
        @@ -65,6 +121,9 @@ static int net_prepare( void )
                 wsa_init_done = 1;
             }
         #else
        +#if !defined(EFIX64) && !defined(EFI32) && !defined(ESP_OPEN_RTOS)
        +    signal( SIGPIPE, SIG_IGN );
        +#endif
         #endif
             return( 0 );
         }
        @@ -80,7 +139,8 @@ void mbedtls_net_init( mbedtls_net_context *ctx )
         /*
          * Initiate a TCP connection with host:port and the given protocol
          */
        -int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char *port, int proto )
        +int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host,
        +                         const char *port, int proto )
         {
             int ret;
             struct addrinfo hints, *addr_list, *cur;
        @@ -109,7 +169,11 @@ int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char
                     continue;
                 }
         
        -        if( connect( ctx->fd, cur->ai_addr, cur->ai_addrlen ) == 0 )
        +        const struct timeval timeout = { 60, 0 }; /* 60 second timeout */
        +        setsockopt( ctx->fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout) );
        +        setsockopt( ctx->fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout) );
        +
        +        if( connect( ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) == 0 )
                 {
                     ret = 0;
                     break;
        @@ -130,14 +194,7 @@ int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char
         int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto )
         {
             int n, ret;
        -    struct addrinfo *addr_list, *cur;
        -
        -    /* Only request desired protocol */
        -    const struct addrinfo hints = {
        -        .ai_family = AF_UNSPEC,
        -        .ai_socktype = (proto == MBEDTLS_NET_PROTO_UDP ? SOCK_DGRAM : SOCK_STREAM),
        -        .ai_protocol = (proto == MBEDTLS_NET_PROTO_UDP ? IPPROTO_UDP : IPPROTO_TCP),
        -    };
        +    struct addrinfo hints, *addr_list, *cur;
         
             struct sockaddr_in sockaddr_ipaddr_any = {
                 .sin_len = sizeof(struct sockaddr_in),
        @@ -148,8 +205,8 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char
         
             struct addrinfo all_interfaces_addr = {
                 .ai_family = AF_INET,
        -        .ai_socktype = hints.ai_socktype,
        -        .ai_protocol = hints.ai_protocol,
        +        .ai_socktype = (proto == MBEDTLS_NET_PROTO_UDP ? SOCK_DGRAM : SOCK_STREAM),
        +        .ai_protocol = (proto == MBEDTLS_NET_PROTO_UDP ? IPPROTO_UDP : IPPROTO_TCP),
                 .ai_addrlen = sizeof(struct sockaddr_in),
                 .ai_addr = (struct sockaddr *)&sockaddr_ipaddr_any,
             };
        @@ -157,14 +214,22 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char
             if( ( ret = net_prepare() ) != 0 )
                 return( ret );
         
        -    if(bind_ip == NULL) {
        +    /* Bind to IPv6 and/or IPv4, but only in the desired protocol */
        +    memset( &hints, 0, sizeof( hints ) );
        +    hints.ai_family = AF_UNSPEC;
        +    hints.ai_socktype = proto == MBEDTLS_NET_PROTO_UDP ? SOCK_DGRAM : SOCK_STREAM;
        +    hints.ai_protocol = proto == MBEDTLS_NET_PROTO_UDP ? IPPROTO_UDP : IPPROTO_TCP;
        +    if( bind_ip == NULL )
        +        hints.ai_flags = AI_PASSIVE;
        +
        +    if( bind_ip == NULL ) {
                 /* mbedTLS docs specify bind_ip == NULL means all interfaces, but lwip getaddrinfo() assumes NULL
                    means localhost. So we swap in a precreated IPADDR_ANY addrinfo result here. */
                 addr_list = &all_interfaces_addr;
             }
        -    else if( getaddrinfo( bind_ip, port, &hints, &addr_list ) != 0 ) {
        +    else
        +    if( getaddrinfo( bind_ip, port, &hints, &addr_list ) != 0 )
                 return( MBEDTLS_ERR_NET_UNKNOWN_HOST );
        -    }
         
             /* Try the sockaddrs until a binding succeeds */
             ret = MBEDTLS_ERR_NET_UNKNOWN_HOST;
        @@ -187,7 +252,7 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char
                     continue;
                 }
         
        -        if( bind( ctx->fd, cur->ai_addr, cur->ai_addrlen ) != 0 )
        +        if( bind( ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) != 0 )
                 {
                     close( ctx->fd );
                     ret = MBEDTLS_ERR_NET_BIND_FAILED;
        @@ -205,12 +270,12 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char
                     }
                 }
         
        -        /* I we ever get there, it's a success */
        +        /* Bind was successful */
                 ret = 0;
                 break;
             }
         
        -    if(bind_ip != NULL) {
        +    if( bind_ip != NULL ) {
                 freeaddrinfo( addr_list );
             }
         
        @@ -218,14 +283,18 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char
         
         }
         
        -static int socket_errno( const mbedtls_net_context *ctx )
        +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \
        +    !defined(EFI32)
        +/*
        + * Check if the requested operation would be blocking on a non-blocking socket
        + * and thus 'failed' with a negative return value.
        + */
        +static int net_would_block( const mbedtls_net_context *ctx )
         {
        -    int sock_errno = 0;
        -    u32_t optlen = sizeof(sock_errno);
        -    lwip_getsockopt(ctx->fd, SOL_SOCKET, SO_ERROR, &sock_errno, &optlen);
        -    return sock_errno;
        +    ((void) ctx);
        +    return( WSAGetLastError() == WSAEWOULDBLOCK );
         }
        -
        +#else
         /*
          * Check if the requested operation would be blocking on a non-blocking socket
          * and thus 'failed' with a negative return value.
        @@ -234,14 +303,18 @@ static int socket_errno( const mbedtls_net_context *ctx )
          */
         static int net_would_block( const mbedtls_net_context *ctx )
         {
        +    int err = errno;
        +
             /*
              * Never return 'WOULD BLOCK' on a non-blocking socket
              */
             if( ( fcntl( ctx->fd, F_GETFL, 0) & O_NONBLOCK ) != O_NONBLOCK )
        +    {
        +        errno = err;
                 return( 0 );
        +    }
         
        -
        -    switch( socket_errno(ctx) )
        +    switch( errno = err )
             {
         #if defined EAGAIN
                 case EAGAIN:
        @@ -253,6 +326,7 @@ static int net_would_block( const mbedtls_net_context *ctx )
             }
             return( 0 );
         }
        +#endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */
         
         /*
          * Accept a connection from a remote client
        @@ -264,14 +338,20 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
             int ret;
             int type;
         
        -    struct sockaddr_in client_addr;
        +    struct sockaddr_storage client_addr;
         
        +#if defined(__socklen_t_defined) || defined(_SOCKLEN_T) ||  \
        +    defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t)
             socklen_t n = (socklen_t) sizeof( client_addr );
             socklen_t type_len = (socklen_t) sizeof( type );
        +#else
        +    int n = (int) sizeof( client_addr );
        +    int type_len = (int) sizeof( type );
        +#endif
         
             /* Is this a TCP or UDP socket? */
             if( getsockopt( bind_ctx->fd, SOL_SOCKET, SO_TYPE,
        -                    (void *) &type, (socklen_t *) &type_len ) != 0 ||
        +                    (void *) &type, &type_len ) != 0 ||
                 ( type != SOCK_STREAM && type != SOCK_DGRAM ) )
             {
                 return( MBEDTLS_ERR_NET_ACCEPT_FAILED );
        @@ -288,7 +368,7 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
                 /* UDP: wait for a message, but keep it in the queue */
                 char buf[1] = { 0 };
         
        -        ret = recvfrom( bind_ctx->fd, buf, sizeof( buf ), MSG_PEEK,
        +        ret = (int) recvfrom( bind_ctx->fd, buf, sizeof( buf ), MSG_PEEK,
                                 (struct sockaddr *) &client_addr, &n );
         
         #if defined(_WIN32)
        @@ -313,7 +393,7 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
              * then bind a new socket to accept new connections */
             if( type != SOCK_STREAM )
             {
        -        struct sockaddr_in local_addr;
        +        struct sockaddr_storage local_addr;
                 int one = 1;
         
                 if( connect( bind_ctx->fd, (struct sockaddr *) &client_addr, n ) != 0 )
        @@ -322,10 +402,10 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
                 client_ctx->fd = bind_ctx->fd;
                 bind_ctx->fd   = -1; /* In case we exit early */
         
        -        n = sizeof( struct sockaddr_in );
        +        n = sizeof( struct sockaddr_storage );
                 if( getsockname( client_ctx->fd,
                                  (struct sockaddr *) &local_addr, &n ) != 0 ||
        -            ( bind_ctx->fd = (int) socket( AF_INET,
        +            ( bind_ctx->fd = (int) socket( local_addr.ss_family,
                                                    SOCK_DGRAM, IPPROTO_UDP ) ) < 0 ||
                     setsockopt( bind_ctx->fd, SOL_SOCKET, SO_REUSEADDR,
                                 (const char *) &one, sizeof( one ) ) != 0 )
        @@ -341,6 +421,8 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
         
             if( client_ip != NULL )
             {
        +        if( client_addr.ss_family == AF_INET )
        +        {
                     struct sockaddr_in *addr4 = (struct sockaddr_in *) &client_addr;
                     *ip_len = sizeof( addr4->sin_addr.s_addr );
         
        @@ -348,6 +430,19 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
                         return( MBEDTLS_ERR_NET_BUFFER_TOO_SMALL );
         
                     memcpy( client_ip, &addr4->sin_addr.s_addr, *ip_len );
        +        }
        +        else
        +        {
        +#if LWIP_IPV6
        +            struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *) &client_addr;
        +            *ip_len = sizeof( addr6->sin6_addr.s6_addr );
        +
        +            if( buf_size < *ip_len )
        +                return( MBEDTLS_ERR_NET_BUFFER_TOO_SMALL );
        +
        +            memcpy( client_ip, &addr6->sin6_addr.s6_addr, *ip_len);
        +#endif
        +        }
             }
         
             return( 0 );
        @@ -398,7 +493,9 @@ void mbedtls_net_usleep( unsigned long usec )
         #endif
         }
         
        -/* Read at most 'len' characters */
        +/*
        + * Read at most 'len' characters
        + */
         int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len )
         {
             int ret;
        @@ -414,13 +511,17 @@ int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len )
                 if( net_would_block( ctx ) != 0 )
                     return( MBEDTLS_ERR_SSL_WANT_READ );
         
        -        int sock_errno = socket_errno(ctx);
        -
        -        if( sock_errno == EPIPE || sock_errno == ECONNRESET )
        +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \
        +    !defined(EFI32)
        +        if( WSAGetLastError() == WSAECONNRESET )
        +            return( MBEDTLS_ERR_NET_CONN_RESET );
        +#else
        +        if( errno == EPIPE || errno == ECONNRESET )
                     return( MBEDTLS_ERR_NET_CONN_RESET );
         
        -        if( sock_errno == EINTR )
        +        if( errno == EINTR )
                     return( MBEDTLS_ERR_SSL_WANT_READ );
        +#endif
         
                 return( MBEDTLS_ERR_NET_RECV_FAILED );
             }
        @@ -456,8 +557,14 @@ int mbedtls_net_recv_timeout( void *ctx, unsigned char *buf, size_t len,
         
             if( ret < 0 )
             {
        +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \
        +    !defined(EFI32)
        +        if( WSAGetLastError() == WSAEINTR )
        +            return( MBEDTLS_ERR_SSL_WANT_READ );
        +#else
                 if( errno == EINTR )
                     return( MBEDTLS_ERR_SSL_WANT_READ );
        +#endif
         
                 return( MBEDTLS_ERR_NET_RECV_FAILED );
             }
        @@ -484,13 +591,17 @@ int mbedtls_net_send( void *ctx, const unsigned char *buf, size_t len )
                 if( net_would_block( ctx ) != 0 )
                     return( MBEDTLS_ERR_SSL_WANT_WRITE );
         
        -        int sock_errno = socket_errno(ctx);
        -
        -        if( sock_errno == EPIPE || sock_errno == ECONNRESET )
        +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \
        +    !defined(EFI32)
        +        if( WSAGetLastError() == WSAECONNRESET )
        +            return( MBEDTLS_ERR_NET_CONN_RESET );
        +#else
        +        if( errno == EPIPE || errno == ECONNRESET )
                     return( MBEDTLS_ERR_NET_CONN_RESET );
         
        -        if( sock_errno == EINTR )
        +        if( errno == EINTR )
                     return( MBEDTLS_ERR_SSL_WANT_WRITE );
        +#endif
         
                 return( MBEDTLS_ERR_NET_SEND_FAILED );
             }
        
        From de426c08b6afda91432a1b31df10570835a0a0fa Mon Sep 17 00:00:00 2001
        From: Flavio Bayer 
        Date: Fri, 13 Apr 2018 16:08:03 -0300
        Subject: [PATCH 297/349] bugfix/ets_timer.c: race condition while disarming
        
        If `sdk_ets_timer_arm_ms_us` is called right after `vPortExitCritical` inside `sdk_ets_timer_disarm` on line 247 (by an ISR for example, which was my case), execution will loop forever on line 196, since `timer->next!=ETS_TIMER_NOT_ARMED`, which was supposed to be changed in line 248.
        By delaying the IRS or context switch until `sdk_ets_timer_disarm` the problem is fixed.
        ---
         open_esplibs/libmain/ets_timer.c | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/open_esplibs/libmain/ets_timer.c b/open_esplibs/libmain/ets_timer.c
        index 44b3196..7b3ca36 100644
        --- a/open_esplibs/libmain/ets_timer.c
        +++ b/open_esplibs/libmain/ets_timer.c
        @@ -244,9 +244,9 @@ void sdk_ets_timer_disarm(ets_timer_t *timer)
                 prev = curr;
                 curr = curr->next;
             }
        -    vPortExitCritical();
             timer->next = ETS_TIMER_NOT_ARMED;
             timer->period_ticks = 0;
        +    vPortExitCritical();
         }
         
         /**
        
        From b43c3cee2d92416919439b5ed485bee96ed834cb Mon Sep 17 00:00:00 2001
        From: Robert Fancsik 
        Date: Mon, 16 Apr 2018 11:22:38 +0200
        Subject: [PATCH 298/349] Fix for sdio_write_sectors
        
        The issue was found by using f_mkdir("directory_name").
        The function always returned FR_DISK_ERR due to an unhadled case in sdio_write_sectors().
        According to this documentation: http://www.convict.lu/pdf/ProdManualSDCardv1.9.pdf#page=92 stop transmission command should be sent after writing multiple blocks.
        This patch fixes this bug also adds a test case for it.
        ---
         examples/fatfs/main.c | 14 ++++++++++++++
         extras/sdio/sdio.c    | 22 +++++++++-------------
         2 files changed, 23 insertions(+), 13 deletions(-)
        
        diff --git a/examples/fatfs/main.c b/examples/fatfs/main.c
        index cb0dda8..6bf2c44 100644
        --- a/examples/fatfs/main.c
        +++ b/examples/fatfs/main.c
        @@ -12,6 +12,7 @@
         
         #define CS_GPIO_PIN 2
         #define TEST_FILENAME "/test_loooong_filename.txt"
        +#define TEST_DIRECTORYNAME "my_directory"
         #define TEST_CONTENTS "Hello! It's FatFs on esp8266 with ESP Open RTOS!"
         #define READBUF_SIZE 256
         #define DELAY_MS 3000
        @@ -69,6 +70,19 @@ void check_fatfs()
             if (failed(f_chdrive(vol)))
                 return;
         
        +    // Create a directory if it not exists
        +    FILINFO info;
        +    if (failed(f_stat(TEST_DIRECTORYNAME, &info)) && info.fattrib & AM_DIR)
        +    {
        +      printf("f_mkdir (\"%s\")\n", TEST_DIRECTORYNAME);
        +      if (failed(f_mkdir(TEST_DIRECTORYNAME)))
        +          return;
        +    }
        +    else
        +    {
        +      printf("\"%s\" directory already exists\n", TEST_DIRECTORYNAME);
        +    }
        +
             FIL f;
             // Create test file
             printf("f_open(&f, \"%s\", FA_WRITE | FA_CREATE_ALWAYS)", TEST_FILENAME);
        diff --git a/extras/sdio/sdio.c b/extras/sdio/sdio.c
        index e601416..1f273fa 100644
        --- a/extras/sdio/sdio.c
        +++ b/extras/sdio/sdio.c
        @@ -394,16 +394,10 @@ sdio_error_t sdio_write_sectors(sdio_card_t *card, uint32_t sector, uint8_t *src
             if (card->type != SDIO_TYPE_SDHC)
                 sector <<= 9;
         
        -    if (count == 1)
        -    {
        -        // single block
        -        if (command(card, CMD24, sector))
        -            return set_error(card, SDIO_ERR_IO);
        -        return set_error(card, write_data_block(card, TOKEN_SINGLE_TRAN, src));
        -    }
        +    bool multi = count != 1;
         
             // send pre-erase count
        -    if ((card->type == SDIO_TYPE_SD1
        +    if (multi && (card->type == SDIO_TYPE_SD1
                 || card->type == SDIO_TYPE_SD2
                 || card->type == SDIO_TYPE_SDHC)
                 && app_command(card, ACMD23, count))
        @@ -411,16 +405,19 @@ sdio_error_t sdio_write_sectors(sdio_card_t *card, uint32_t sector, uint8_t *src
                 return set_error(card, SDIO_ERR_IO);
             }
         
        -    if (command(card, CMD25, sector))
        +    if (command(card, multi ? CMD25 : CMD24, sector))
                 return set_error(card, SDIO_ERR_IO);
         
             while (count--)
             {
        -        if (write_data_block(card, TOKEN_MULTI_TRAN, src) != SDIO_ERR_NONE)
        -            return card->error;
        +        if (write_data_block(card, multi ? TOKEN_MULTI_TRAN : TOKEN_SINGLE_TRAN, src) != SDIO_ERR_NONE){
        +          return card->error;
        +        }
                 src += SDIO_BLOCK_SIZE;
             }
        -    spi_transfer_8(BUS, TOKEN_STOP_TRAN);
        +
        +    if (multi && command(card, CMD12, 0))
        +        return set_error(card, SDIO_ERR_IO);
         
             return set_error(card, SDIO_ERR_NONE);
         }
        @@ -449,4 +446,3 @@ sdio_error_t sdio_erase_sectors(sdio_card_t *card, uint32_t first, uint32_t last
         
             return set_error(card, wait() ? SDIO_ERR_NONE : SDIO_ERR_TIMEOUT);
         }
        -
        
        From 3b5510dce1e02e174c3ca831e16fe3f5c9210029 Mon Sep 17 00:00:00 2001
        From: Robert Fancsik 
        Date: Fri, 20 Apr 2018 19:50:32 +0200
        Subject: [PATCH 299/349] Fix SDIO send_command
        
        This patch fixes the problem, while receiving R1b type of response from the card.
        In case of R1b response the continuous stream that the card sends must be checked whether the signal indicates busy status and wait until a non zero response.
        ---
         extras/sdio/sdio.c | 23 +++++++++++++++++++----
         1 file changed, 19 insertions(+), 4 deletions(-)
        
        diff --git a/extras/sdio/sdio.c b/extras/sdio/sdio.c
        index 1f273fa..a721442 100644
        --- a/extras/sdio/sdio.c
        +++ b/extras/sdio/sdio.c
        @@ -182,10 +182,6 @@ static uint8_t command(sdio_card_t *card, uint8_t cmd, uint32_t arg)
             wait();
             spi_transfer(BUS, buf, NULL, 6, SPI_8BIT);
         
        -    // R1b response
        -    if (cmd == CMD12 || cmd == CMD28 || cmd == CMD29)
        -        spi_read_byte();
        -
             uint8_t res;
             for (uint8_t i = 0; i < MAX_ERR_COUNT; i ++)
             {
        @@ -193,6 +189,25 @@ static uint8_t command(sdio_card_t *card, uint8_t cmd, uint32_t arg)
                 if (!(res & BV(R1_BUSY)))
                     break;
             }
        +
        +    /** If the response is a "busy" type (R1B), then there’s some
        +     * special handling that needs to be done. The card will
        +     * output a continuous stream of zeros, so the end of the BUSY
        +     * state is signaled by any nonzero response.
        +     */
        +    if (cmd == CMD12 || cmd == CMD28 || cmd == CMD29)
        +    {
        +      for (uint8_t i = 0; i < MAX_ERR_COUNT; i ++)
        +      {
        +          res = spi_read_byte();
        +          if (res != 0)
        +          {
        +            spi_transfer_8(BUS, 0xFF);
        +            return SDIO_ERR_NONE;
        +          }
        +      }
        +    }
        +    
             return res;
         }
         
        
        From cec6b7c19fa0ce54c8a1d2a776b92766900d4907 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Wed, 25 Apr 2018 13:05:25 +1000
        Subject: [PATCH 300/349] sdk_os_delay_us: rewrite to avoid hal.h
        
        Seems to fail to compile recently, missing xthal_get_ccount(), so
        avoid using hal.h which is outside esp-open-rtos.
        ---
         open_esplibs/libmain/misc.c | 11 ++++++++---
         1 file changed, 8 insertions(+), 3 deletions(-)
        
        diff --git a/open_esplibs/libmain/misc.c b/open_esplibs/libmain/misc.c
        index f11d4fd..eb2e459 100644
        --- a/open_esplibs/libmain/misc.c
        +++ b/open_esplibs/libmain/misc.c
        @@ -11,7 +11,7 @@
         #include "esp/gpio_regs.h"
         #include "esp/rtc_regs.h"
         #include "sdk_internal.h"
        -#include "xtensa/hal.h"
        +#include "xtensa_ops.h"
         
         static int cpu_freq = 80;
         
        @@ -28,9 +28,14 @@ void sdk_os_update_cpu_frequency(int freq) {
         void sdk_ets_update_cpu_frequency(int freq) __attribute__ (( alias ("sdk_os_update_cpu_frequency") ));
         
         void sdk_os_delay_us(uint16_t us) {
        -    uint32_t start_ccount = xthal_get_ccount();
        +    uint32_t start_ccount, ccount;
             uint32_t delay_ccount = cpu_freq * us;
        -    while (xthal_get_ccount() - start_ccount < delay_ccount) {}
        +
        +    RSR(start_ccount, ccount);
        +
        +    do {
        +        RSR(ccount, ccount);
        +    } while (ccount - start_ccount < delay_ccount);
         }
         
         void sdk_ets_delay_us(uint16_t us) __attribute__ (( alias ("sdk_os_delay_us") ));
        
        From 46559496c610d09bd393d099486ebf6c33e7c294 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Wed, 25 Apr 2018 23:03:31 +1000
        Subject: [PATCH 301/349] Recognise some new flash size codes.
        
        This at least recognises the 2MB-c1, 4MB-c1, 8MB, and 16MB flash
        size codes.
        ---
         core/app_main.c | 23 +++++++++++++++--------
         1 file changed, 15 insertions(+), 8 deletions(-)
        
        diff --git a/core/app_main.c b/core/app_main.c
        index 8b27f94..f854dce 100644
        --- a/core/app_main.c
        +++ b/core/app_main.c
        @@ -174,25 +174,32 @@ void IRAM sdk_user_start(void) {
             }
             switch (buf8[3] >> 4) {
                 case 0x0:   // 4 Mbit (512 KByte)
        -            flash_sectors = 128;
        +            flash_size = 524288;
                     break;
                 case 0x1:  // 2 Mbit (256 Kbyte)
        -            flash_sectors = 64;
        +            flash_size = 262144;
                     break;
                 case 0x2:  // 8 Mbit (1 Mbyte)
        -            flash_sectors = 256;
        +            flash_size = 1048576;
                     break;
                 case 0x3:  // 16 Mbit (2 Mbyte)
        -            flash_sectors = 512;
        +        case 0x5:  // 16 Mbit (2 Mbyte)
        +            flash_size = 2097152;
                     break;
                 case 0x4:  // 32 Mbit (4 Mbyte)
        -            flash_sectors = 1024;
        +        case 0x6:  // 32 Mbit (4 Mbyte)
        +            flash_size = 4194304;
        +            break;
        +        case 0x8:  // 64 Mbit (8 Mbyte)
        +            flash_size = 8388608;
        +            break;
        +        case 0x9:  // 128 Mbit (16 Mbyte)
        +            flash_size = 16777216;
                     break;
                 default:   // Invalid -- Assume 4 Mbit (512 KByte)
        -            flash_sectors = 128;
        +            flash_size = 524288;
             }
        -    //FIXME: we should probably calculate flash_sectors by starting with flash_size and dividing by sdk_flashchip.sector_size instead of vice-versa.
        -    flash_size = flash_sectors * 4096;
        +    flash_sectors = flash_size / sdk_flashchip.sector_size;
             sdk_flashchip.chip_size = flash_size;
             set_spi0_divisor(flash_speed_divisor);
             sdk_SPIRead(flash_size - 4096, buf32, BOOT_INFO_SIZE);
        
        From c183804aa27e2abb86b5fc4ba1cfc2280441ec18 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Wed, 25 Apr 2018 23:27:01 +1000
        Subject: [PATCH 302/349] rboot: update to 1.4.2
        
        ---
         bootloader/c_types.h | 10 ++++++++++
         bootloader/rboot     |  2 +-
         2 files changed, 11 insertions(+), 1 deletion(-)
         create mode 100644 bootloader/c_types.h
        
        diff --git a/bootloader/c_types.h b/bootloader/c_types.h
        new file mode 100644
        index 0000000..9989e1d
        --- /dev/null
        +++ b/bootloader/c_types.h
        @@ -0,0 +1,10 @@
        +/* rboot type definitions */
        +
        +
        +typedef int int32;
        +typedef unsigned short uint16;
        +typedef unsigned int uint32;
        +typedef unsigned char uint8;
        +
        +#define TRUE 1
        +#define FALSE 0
        diff --git a/bootloader/rboot b/bootloader/rboot
        index 30afbaa..3b067a8 160000
        --- a/bootloader/rboot
        +++ b/bootloader/rboot
        @@ -1 +1 @@
        -Subproject commit 30afbaa777e00abf9d7d469fb3345f118c4975c1
        +Subproject commit 3b067a8686a07474c5f722953d3b2f0e71db681f
        
        From 6db5525fbbf614003d99f8899e8dd2593ee7be22 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Mon, 30 Apr 2018 14:06:08 +1000
        Subject: [PATCH 303/349] sdk_wifi_station_dhcpc_stop: ensure the client is
         flagged as stopped.
        
        Need to flag the dhcp client as stopped, even if the netif is not yet
        initialized, because the flag is used to control the starting of the
        dhcpc.
        ---
         open_esplibs/libmain/user_interface.c | 6 +++---
         1 file changed, 3 insertions(+), 3 deletions(-)
        
        diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c
        index 4483e5d..e81f175 100644
        --- a/open_esplibs/libmain/user_interface.c
        +++ b/open_esplibs/libmain/user_interface.c
        @@ -563,12 +563,12 @@ bool sdk_wifi_station_dhcpc_stop(void) {
             if (sdk_wifi_get_opmode() == 2) {
                 return false;
             }
        +    LOCK_TCPIP_CORE();
             if (netif && sdk_dhcpc_flag == DHCP_STARTED) {
        -        LOCK_TCPIP_CORE();
                 dhcp_stop(netif);
        -        sdk_dhcpc_flag = DHCP_STOPPED;
        -        UNLOCK_TCPIP_CORE();
             }
        +    sdk_dhcpc_flag = DHCP_STOPPED;
        +    UNLOCK_TCPIP_CORE();
             return true;
         }
         
        
        From efff445a03ef1c859824725bd071f5196349f437 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Sat, 5 May 2018 12:56:21 +1000
        Subject: [PATCH 304/349] stdin_uart_interrupt: add support for nonblock and a
         timeout.
        
        ---
         .../stdin_uart_interrupt.c                    | 32 ++++++++++++++++++-
         .../stdin_uart_interrupt.h                    | 12 ++++++-
         2 files changed, 42 insertions(+), 2 deletions(-)
        
        diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        index 194fdda..71d2efc 100644
        --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        @@ -43,6 +43,8 @@
         static SemaphoreHandle_t uart0_sem = NULL;
         static bool inited = false;
         static void uart0_rx_init(void);
        +static int uart0_nonblock;
        +static TickType_t uart0_vtime;
         
         IRAM void uart0_rx_handler(void *arg)
         {
        @@ -75,6 +77,20 @@ uint32_t uart0_num_char(void)
             return count;
         }
         
        +int uart0_set_nonblock(int nonblock)
        +{
        +    int current = uart0_nonblock;
        +    uart0_nonblock = nonblock;
        +    return current;
        +}
        +
        +TickType_t uart0_set_vtime(TickType_t ticks)
        +{
        +    TickType_t current = uart0_vtime;
        +    uart0_vtime = ticks;
        +    return current;
        +}
        +
         // _read_stdin_r in core/newlib_syscalls.c will be skipped by the linker in favour
         // of this function
         long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len)
        @@ -83,7 +99,21 @@ long _read_stdin_r(struct _reent *r, int fd, char *ptr, int len)
             for(int i = 0; i < len; i++) {
                 if (!(UART(UART0).STATUS & (UART_STATUS_RXFIFO_COUNT_M << UART_STATUS_RXFIFO_COUNT_S))) {
                     _xt_isr_unmask(1 << INUM_UART);
        -            if (!xSemaphoreTake(uart0_sem, portMAX_DELAY)) {
        +            if (uart0_nonblock) {
        +                if (i > 0) {
        +                    return i;
        +                }
        +                r->_errno = EAGAIN;
        +                return -1;
        +            }
        +            if (uart0_vtime) {
        +                if (!xSemaphoreTake(uart0_sem, uart0_vtime)) {
        +                    if (i > 0) {
        +                        return i;
        +                    }
        +                    return 0;
        +                }
        +            } else if (!xSemaphoreTake(uart0_sem, portMAX_DELAY)) {
                         printf("\nFailed to get sem\n");
                     }
                 }
        diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        index 05652bb..b15278b 100644
        --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        @@ -27,6 +27,16 @@
         
         #include 
         
        -// Return number of characters waiting in UART0
        +/* Return number of characters waiting in UART0. */
         uint32_t uart0_num_char(void);
        +
        +/* Set UART0 input to nonblocking or blocking, returning the old state. */
        +int uart0_set_nonblock(int);
        +
        +/* Set the UART0 input wait time in ticks, or zero to wait indefinitely,
        + * returning the old wait time. The wait time is only used when the input is
        + * blocking.
        + */
        +TickType_t uart0_set_vtime(TickType_t ticks);
        +
         #endif
        
        From ee001e0231f94e6a206fe1367ec8f4412c7c05e2 Mon Sep 17 00:00:00 2001
        From: Joost Nieuwenhuijse 
        Date: Wed, 16 May 2018 17:53:17 +0200
        Subject: [PATCH 305/349] Move  large lib_a-svfwprintf to flash
        
        lib_a-svfwprintf may get included when linking against libstdc++
        This will overflow IRAM
        
        https://github.com/SuperHouse/esp-open-rtos/issues/623
        ---
         ld/program.ld | 6 +++++-
         1 file changed, 5 insertions(+), 1 deletion(-)
        
        diff --git a/ld/program.ld b/ld/program.ld
        index 0718d6f..5b9031f 100644
        --- a/ld/program.ld
        +++ b/ld/program.ld
        @@ -113,7 +113,11 @@ SECTIONS
             *libc.a:*bzero.o(.literal .text .literal.* .text.*)
             *libc.a:*lock.o(.literal .text .literal.* .text.*)
         
        -    *libc.a:*printf.o(.literal .text .literal.* .text.*)
        +    *libc.a:*-printf.o(.literal .text .literal.* .text.*)
        +    *libc.a:*-sprintf.o(.literal .text .literal.* .text.*)
        +    *libc.a:*-fprintf.o(.literal .text .literal.* .text.*)
        +    *libc.a:*-svfprintf.o(.literal .text .literal.* .text.*)
        +    *libc.a:*-vfprintf.o(.literal .text .literal.* .text.*)
             *libc.a:*findfp.o(.literal .text .literal.* .text.*)
             *libc.a:*fputwc.o(.literal .text .literal.* .text.*)
         
        
        From 233f9a6a313a697071de8c3fe08dd3630e3e9785 Mon Sep 17 00:00:00 2001
        From: Joost Nieuwenhuijse 
        Date: Wed, 16 May 2018 17:54:56 +0200
        Subject: [PATCH 306/349] Change linker script to support C++ exceptions
        
        See:
        https://github.com/espressif/esp-idf/issues/459
        https://github.com/jcmvbkbc/crosstool-NG/issues/54
        ---
         ld/program.ld | 7 +++++--
         1 file changed, 5 insertions(+), 2 deletions(-)
        
        diff --git a/ld/program.ld b/ld/program.ld
        index 5b9031f..e169abd 100644
        --- a/ld/program.ld
        +++ b/ld/program.ld
        @@ -253,10 +253,13 @@ SECTIONS
             *(.gnu.linkonce.r.*)
             __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
             *(.xt_except_table)
        -    *(.gcc_except_table)
        +    *(.gcc_except_table .gcc_except_table.*)
             *(.gnu.linkonce.e.*)
             *(.gnu.version_r)
        -    *(.eh_frame)
        +    . = (. + 3) & ~ 3;
        +    __eh_frame = ABSOLUTE(.);
        +    KEEP(*(.eh_frame))
        +    . = (. + 7) & ~ 3;
             . = ALIGN(4);
             *(.dynamic)
             *(.gnu.version_d)
        
        From 2985d1d11ef28804fb1777e147aeefc2b7e5f8ca Mon Sep 17 00:00:00 2001
        From: Joost Nieuwenhuijse 
        Date: Wed, 16 May 2018 17:56:15 +0200
        Subject: [PATCH 307/349] Make operator new / delete weak
        
        so you can implement your own, e.g. if you need a throwing operator new.
        ---
         core/cplusplus_operators.cpp | 8 ++++----
         1 file changed, 4 insertions(+), 4 deletions(-)
        
        diff --git a/core/cplusplus_operators.cpp b/core/cplusplus_operators.cpp
        index 86f4477..b263838 100644
        --- a/core/cplusplus_operators.cpp
        +++ b/core/cplusplus_operators.cpp
        @@ -4,22 +4,22 @@
         #include 
         #include 
         
        -void *operator new(size_t size)
        +void * __attribute__((weak)) operator new(size_t size)
         {
             return malloc(size);
         }
         
        -void *operator new[](size_t size)
        +void * __attribute__((weak)) operator new[](size_t size)
         {
             return malloc(size);
         }
         
        -void operator delete(void * ptr)
        +void __attribute__((weak)) operator delete(void * ptr)
         {
             free(ptr);
         }
         
        -void operator delete[](void * ptr)
        +void __attribute__((weak)) operator delete[](void * ptr)
         {
             free(ptr);
         }
        
        From 4dc7d825bc2f7d8de2fa5500ec13f307a15b44e7 Mon Sep 17 00:00:00 2001
        From: Zaltora 
        Date: Sat, 19 May 2018 23:47:29 +0200
        Subject: [PATCH 308/349] Initial HW PWM (Delta-Sigma) (#609)
        
        ---
         core/include/esp/gpio_regs.h |  22 +++----
         examples/dsm_test/Makefile   |   4 ++
         examples/dsm_test/dsm_test.c |  67 +++++++++++++++++++++
         extras/dsm/component.mk      |   9 +++
         extras/dsm/dsm.c             | 111 +++++++++++++++++++++++++++++++++++
         extras/dsm/dsm.h             |  36 ++++++++++++
         6 files changed, 238 insertions(+), 11 deletions(-)
         create mode 100644 examples/dsm_test/Makefile
         create mode 100644 examples/dsm_test/dsm_test.c
         create mode 100644 extras/dsm/component.mk
         create mode 100644 extras/dsm/dsm.c
         create mode 100644 extras/dsm/dsm.h
        
        diff --git a/core/include/esp/gpio_regs.h b/core/include/esp/gpio_regs.h
        index c5a446c..167a4d1 100644
        --- a/core/include/esp/gpio_regs.h
        +++ b/core/include/esp/gpio_regs.h
        @@ -70,7 +70,7 @@ struct GPIO_REGS {
             uint32_t volatile STATUS_SET;       // 0x20
             uint32_t volatile STATUS_CLEAR;     // 0x24
             uint32_t volatile CONF[16];         // 0x28 - 0x64
        -    uint32_t volatile PWM;              // 0x68
        +    uint32_t volatile DSM;              // 0x68
             uint32_t volatile RTC_CALIB;        // 0x6c
             uint32_t volatile RTC_CALIB_RESULT; // 0x70
         };
        @@ -117,9 +117,9 @@ _Static_assert(sizeof(struct GPIO_REGS) == 0x74, "GPIO_REGS is the wrong size");
          *     GPIO_CONF_OPEN_DRAIN does not appear to work on all pins.
          *
          *
        - * GPIO_CONF_SOURCE_PWM (boolean)
        - *     When set, GPIO pin output will be connected to the sigma-delta PWM
        - *     generator (controlled by the GPIO.PWM register).  When cleared, pin
        + * GPIO_CONF_SOURCE_DSM (boolean)
        + *     When set, GPIO pin output will be connected to the sigma-delta
        + *     generator (controlled by the GPIO.DSM register).  When cleared, pin
          *     output will function as a normal GPIO output (controlled by the
          *     GPIO.OUT* registers).
          */
        @@ -130,7 +130,7 @@ _Static_assert(sizeof(struct GPIO_REGS) == 0x74, "GPIO_REGS is the wrong size");
         #define GPIO_CONF_INTTYPE_M      0x00000007
         #define GPIO_CONF_INTTYPE_S      7
         #define GPIO_CONF_OPEN_DRAIN     BIT(2)
        -#define GPIO_CONF_SOURCE_PWM     BIT(0)
        +#define GPIO_CONF_SOURCE_DSM     BIT(0)
         
         /* Valid values for the GPIO_CONF_INTTYPE field */
         typedef enum {
        @@ -142,13 +142,13 @@ typedef enum {
             GPIO_INTTYPE_LEVEL_HIGH = 5,
         } gpio_inttype_t;
         
        -/* Details for PWM register */
        +/* Details for DSM register */
         
        -#define GPIO_PWM_ENABLE          BIT(16)
        -#define GPIO_PWM_PRESCALER_M     0x000000ff
        -#define GPIO_PWM_PRESCALER_S     8
        -#define GPIO_PWM_TARGET_M        0x000000ff
        -#define GPIO_PWM_TARGET_S        0
        +#define GPIO_DSM_ENABLE          BIT(16)
        +#define GPIO_DSM_PRESCALER_M     0x000000ff
        +#define GPIO_DSM_PRESCALER_S     8
        +#define GPIO_DSM_TARGET_M        0x000000ff
        +#define GPIO_DSM_TARGET_S        0
         
         /* Details for RTC_CALIB register */
         
        diff --git a/examples/dsm_test/Makefile b/examples/dsm_test/Makefile
        new file mode 100644
        index 0000000..8438f41
        --- /dev/null
        +++ b/examples/dsm_test/Makefile
        @@ -0,0 +1,4 @@
        +# Simple makefile for simple example
        +PROGRAM=dsm_test
        +EXTRA_COMPONENTS = extras/dsm
        +include ../../common.mk
        diff --git a/examples/dsm_test/dsm_test.c b/examples/dsm_test/dsm_test.c
        new file mode 100644
        index 0000000..234a66b
        --- /dev/null
        +++ b/examples/dsm_test/dsm_test.c
        @@ -0,0 +1,67 @@
        +/* Very basic example to test the dsm library
        + * Led intensity from module will change over time.
        + *
        + * Part of esp-open-rtos
        + * Copyright (C) 2018 zaltora (https://github.com/Zaltora)
        + * BSD Licensed as described in the file LICENSE
        + */
        +#include "espressif/esp_common.h"
        +#include "esp/uart.h"
        +#include "FreeRTOS.h"
        +#include "task.h"
        +#include "dsm.h"
        +
        +#define TEST_WITH_160MHZ (0)
        +#define DSM_PIN          (2)
        +
        +void task1(void *pvParameters)
        +{
        +    uint32_t const init_count = 0;
        +    uint32_t count = init_count;
        +    while(1)
        +    {
        +        vTaskDelay(100/portTICK_PERIOD_MS);
        +        printf("Target set to %3u, ", count);
        +        //Freq = (80,000,000/prescale) * (target / 256) HZ           (0   < target < 128)
        +        //Freq = (80,000,000/prescale) * ((256 - target) / 256)  HZ  (128 < target < 256)
        +        if (count < 128)
        +        {
        +           printf("Freqency: %.1f Hz\r\n", (80000000.0/255.0 * (count/ 256.0)));
        +        }
        +        else
        +        {
        +            printf("Freqency: %.1f Hz\r\n", 80000000.0/255.0 * ((256.0-count)/ 256.0));
        +        }
        +        dsm_set_target(count);
        +        count++;
        +        if (count > UINT8_MAX)
        +            count = init_count;
        +    }
        +}
        +
        +void user_init(void)
        +{
        +    uint8_t pins[1];
        +    uart_set_baud(0, 115200);
        +
        +#if (TEST_WITH_160MHZ)
        +    sdk_system_update_cpu_freq(160);
        +#endif
        +
        +    printf("SDK version:%s\r\n", sdk_system_get_sdk_version());
        +
        +    pins[0] = DSM_PIN;
        +
        +    /* register pin to use with DSM */
        +    dsm_init(1, pins);
        +    /* Set prescale to FF to get a proper signal */
        +    dsm_set_prescale(0xFF);
        +    /* Target initial */
        +    dsm_set_target(0);
        +    /* start dsm to pin */
        +    dsm_start();
        +
        +    printf("dsm start\r\n");
        +
        +    xTaskCreate(task1, "tsk1", 256, NULL, 2, NULL);
        +}
        diff --git a/extras/dsm/component.mk b/extras/dsm/component.mk
        new file mode 100644
        index 0000000..06e56b1
        --- /dev/null
        +++ b/extras/dsm/component.mk
        @@ -0,0 +1,9 @@
        +# Component makefile for extras/dsm
        +
        +INC_DIRS += $(ROOT)extras/dsm
        +
        +# args for passing into compile rule generation
        +extras/dsm_INC_DIR =  $(ROOT)extras/dsm
        +extras/dsm_SRC_DIR =  $(ROOT)extras/dsm
        +
        +$(eval $(call component_compile_rules,extras/dsm))
        diff --git a/extras/dsm/dsm.c b/extras/dsm/dsm.c
        new file mode 100644
        index 0000000..dd54fc4
        --- /dev/null
        +++ b/extras/dsm/dsm.c
        @@ -0,0 +1,111 @@
        +/* Implementation of Delta-Sigma modulator support.
        + *
        + * Part of esp-open-rtos
        + * Copyright (C) 2018 ourairquality (https://github.com/ourairquality)
        + * Copyright (C) 2018 Zaltora (https://github.com/Zaltora)
        + * BSD Licensed as described in the file LICENSE
        + */
        +#include "dsm.h"
        +
        +#include 
        +#include 
        +
        +
        +#if (DSM_DEBUG)
        +#define debug(fmt, ...) printf("%s: " fmt "\n", "DSM", ## __VA_ARGS__)
        +#else
        +#define debug(fmt, ...)
        +#endif
        +
        +typedef struct dsmInfoDefinition
        +{
        +    uint8_t running;
        +    uint8_t preScale;
        +    uint8_t target;
        +    bool output;
        +
        +    /* private */
        +    uint8_t usedPins;
        +    uint8_t pins[8];
        +} DSMInfo;
        +
        +static DSMInfo dsmInfo;
        +
        +void dsm_init(uint8_t npins, const uint8_t* pins)
        +{
        +    /* Assert number of pins is correct */
        +    if (npins > MAX_DSM_PINS)
        +    {
        +        debug("Incorrect number of DSM pins (%d)\n", npins);
        +        return;
        +    }
        +
        +    /* Save pins information */
        +    dsmInfo.usedPins = npins;
        +
        +    for (uint8_t i = 0 ; i < npins; ++i)
        +    {
        +        dsmInfo.pins[i] = pins[i];
        +        /* configure GPIOs */
        +        gpio_enable(pins[i], GPIO_OUTPUT);
        +    }
        +
        +    /* Set output to LOW */
        +    dsm_stop();
        +
        +    /* Flag not running */
        +    dsmInfo.running = 0;
        +}
        +
        +void dsm_set_prescale(uint8_t prescale)
        +{
        +    //TODO: Add a freq/prescale converter
        +    dsmInfo.preScale = prescale;
        +    debug("Set Prescale: %u",dsmInfo.preScale);
        +}
        +
        +void dsm_set_target(uint8_t target)
        +{
        +    dsmInfo.target = target;
        +    if (target == 0 || target == UINT8_MAX)
        +    {
        +      dsmInfo.output = (target == UINT8_MAX);
        +    }
        +    debug("Duty set at %u",dsmInfo.target);
        +    if (dsmInfo.running)
        +    {
        +        dsm_start();
        +    }
        +}
        +
        +void dsm_start()
        +{
        +    if (dsmInfo.target > 0 && dsmInfo.target < UINT8_MAX)
        +    {
        +        for (uint8_t i = 0; i < dsmInfo.usedPins; ++i)
        +        {
        +            SET_MASK_BITS(GPIO.CONF[dsmInfo.pins[i]], GPIO_CONF_SOURCE_DSM);
        +        }
        +        GPIO.DSM = GPIO_DSM_ENABLE | (dsmInfo.preScale << 8) | dsmInfo.target;
        +    }
        +    else
        +    {
        +      for (uint8_t i = 0; i < dsmInfo.usedPins; ++i)
        +      {
        +        gpio_write(dsmInfo.pins[i], dsmInfo.output );
        +      }       
        +    }
        +    debug("start");
        +    dsmInfo.running = 1;
        +}
        +
        +void dsm_stop()
        +{
        +    for (uint8_t i = 0; i < dsmInfo.usedPins; ++i)
        +    {
        +      CLEAR_MASK_BITS(GPIO.CONF[dsmInfo.pins[i]], GPIO_CONF_SOURCE_DSM);
        +      gpio_write(dsmInfo.pins[i], false);
        +    }       
        +    debug("stop");
        +    dsmInfo.running = 0;
        +}
        diff --git a/extras/dsm/dsm.h b/extras/dsm/dsm.h
        new file mode 100644
        index 0000000..8190f7e
        --- /dev/null
        +++ b/extras/dsm/dsm.h
        @@ -0,0 +1,36 @@
        +/* Implementation of Delta-Sigma modulator support.
        + *
        + * Part of esp-open-rtos
        + * Copyright (C) 2018 ourairquality (https://github.com/ourairquality)
        + * Copyright (C) 2018 Zaltora (https://github.com/Zaltora)
        + * BSD Licensed as described in the file LICENSE
        + */
        +#ifndef EXTRAS_DSM_H_
        +#define EXTRAS_DSM_H_
        +
        +#ifdef __cplusplus
        +extern "C" {
        +#endif
        +
        +#include 
        +
        +#define MAX_DSM_PINS    (8)
        +#define DSM_DEBUG       (0)
        +
        +/*
        + * Freq = (80,000,000/prescale) * (target / 256) HZ           (0   < target < 128)
        + * Freq = (80,000,000/prescale) * ((256 - target) / 256)  HZ  (128 < target < 256)
        + */
        +
        +void dsm_init(uint8_t npins, const uint8_t* pins);
        +void dsm_set_prescale(uint8_t prescale);
        +void dsm_set_target(uint8_t target);
        +
        +void dsm_start();
        +void dsm_stop();
        +
        +#ifdef __cplusplus
        +}
        +#endif
        +
        +#endif /* EXTRAS_DSM_H_ */
        
        From 6be0b6b20e571f0377025fbfa9546cc206c36b26 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Thu, 31 May 2018 14:14:50 +1000
        Subject: [PATCH 309/349] stdin_uart: rewrite to use a FreeRTOS queue.
        
        Rewrite to have the IRQ handler read the character and place it in a
        FreeRTOS queue.
        ---
         .../stdin_uart_interrupt.c                    | 108 +++++++++++-------
         1 file changed, 68 insertions(+), 40 deletions(-)
        
        diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        index 71d2efc..ba0ce4f 100644
        --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.c
        @@ -40,32 +40,55 @@
         
         #define UART0_RX_SIZE  (128) // ESP8266 UART HW FIFO size
         
        -static SemaphoreHandle_t uart0_sem = NULL;
        +static QueueHandle_t uart0_queue;
         static bool inited = false;
        -static void uart0_rx_init(void);
        +static bool uart0_rx_init(void);
         static int uart0_nonblock;
        -static TickType_t uart0_vtime;
        +static TickType_t uart0_vtime = portMAX_DELAY;
        +
        +uint32_t uart0_parity_errors;
        +uint32_t uart0_framing_errors;
        +uint32_t uart0_breaks_detected;
         
         IRAM void uart0_rx_handler(void *arg)
         {
             // TODO: Handle UART1, see reg 0x3ff20020, bit2, bit0 represents uart1 and uart0 respectively
        -    if (!UART(UART0).INT_STATUS & UART_INT_STATUS_RXFIFO_FULL) {
        -        return;
        -    }
        -//    printf(" [%08x (%d)]\n", READ_PERI_REG(UART_INT_ST(UART0)), READ_PERI_REG(UART_STATUS(UART0)) & (UART_RXFIFO_CNT << UART_RXFIFO_CNT_S));
        -    if (UART(UART0).INT_STATUS & UART_INT_STATUS_RXFIFO_FULL) {
        -        UART(UART0).INT_CLEAR = UART_INT_CLEAR_RXFIFO_FULL;
        -        if (UART(UART0).STATUS & (UART_STATUS_RXFIFO_COUNT_M << UART_STATUS_RXFIFO_COUNT_S)) {
        -            long int xHigherPriorityTaskWoken;
        -            _xt_isr_mask(1 << INUM_UART);
        -            _xt_clear_ints(1< 0) {
        -                    return i;
        -                }
        +
        +    for(size_t i = 0; i < len; i++, ptr++) {
        +        if (xQueueReceive(uart0_queue, (void*)ptr, vtime) == pdFALSE) {
        +            if (i > 0) {
        +                return i;
        +            }
        +            if (nonblock) {
                         r->_errno = EAGAIN;
                         return -1;
                     }
        -            if (uart0_vtime) {
        -                if (!xSemaphoreTake(uart0_sem, uart0_vtime)) {
        -                    if (i > 0) {
        -                        return i;
        -                    }
        -                    return 0;
        -                }
        -            } else if (!xSemaphoreTake(uart0_sem, portMAX_DELAY)) {
        -                printf("\nFailed to get sem\n");
        -            }
        +            return 0;
                 }
        -        ptr[i] = UART(UART0).FIFO & (UART_FIFO_DATA_M << UART_FIFO_DATA_S);
             }
             return len;
         }
         
        -static void uart0_rx_init(void)
        +static bool uart0_rx_init(void)
         {
        +    uart0_queue = xQueueCreate(64, sizeof(char));
        +
        +    if (!uart0_queue) {
        +        return false;
        +    }
        +
             int trig_lvl = 1;
        -    uart0_sem = xSemaphoreCreateCounting(UART0_RX_SIZE, 0);
         
             _xt_isr_attach(INUM_UART, uart0_rx_handler, NULL);
             _xt_isr_unmask(1 << INUM_UART);
        @@ -142,7 +167,10 @@ static void uart0_rx_init(void)
             UART(UART0).INT_CLEAR = 0x1ff;
         
             // enable rx_interrupt
        -    UART(UART0).INT_ENABLE = UART_INT_ENABLE_RXFIFO_FULL;
        +    UART(UART0).INT_ENABLE = UART_INT_ENABLE_RXFIFO_FULL | UART_INT_ENABLE_PARITY_ERR |
        +        UART_INT_ENABLE_FRAMING_ERR | UART_INT_ENABLE_BREAK_DETECTED;
         
             inited = true;
        +
        +    return true;
         }
        
        From 182258e2c3907b3f79f0e1ffdd75d157bb73d8d7 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Mon, 28 May 2018 00:26:12 +1000
        Subject: [PATCH 310/349] FreeRTOS: update to svn r2541.
        
        ---
         FreeRTOS/Source/include/FreeRTOS.h |  7 +++--
         FreeRTOS/Source/stream_buffer.c    |  2 +-
         FreeRTOS/Source/tasks.c            | 47 ++++++++++++++++++++----------
         3 files changed, 36 insertions(+), 20 deletions(-)
        
        diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h
        index 1cde3ce..e2c780b 100644
        --- a/FreeRTOS/Source/include/FreeRTOS.h
        +++ b/FreeRTOS/Source/include/FreeRTOS.h
        @@ -1129,13 +1129,14 @@ typedef struct xSTATIC_TIMER
         	StaticListItem_t	xDummy2;
         	TickType_t			xDummy3;
         	UBaseType_t			uxDummy4;
        -	void 				*pvDummy5[ 2 ];
        +	void 				*pvDummy5;
        +	TaskFunction_t		pvDummy6;
         	#if( configUSE_TRACE_FACILITY == 1 )
        -		UBaseType_t		uxDummy6;
        +		UBaseType_t		uxDummy7;
         	#endif
         
         	#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
        -		uint8_t 		ucDummy7;
        +		uint8_t 		ucDummy8;
         	#endif
         
         } StaticTimer_t;
        diff --git a/FreeRTOS/Source/stream_buffer.c b/FreeRTOS/Source/stream_buffer.c
        index 73b7c64..f72bc5f 100644
        --- a/FreeRTOS/Source/stream_buffer.c
        +++ b/FreeRTOS/Source/stream_buffer.c
        @@ -200,7 +200,7 @@ static size_t prvWriteMessageToBuffer(  StreamBuffer_t * const pxStreamBuffer,
         static size_t prvReadBytesFromBuffer( StreamBuffer_t *pxStreamBuffer,
         									  uint8_t *pucData,
         									  size_t xMaxCount,
        -									  size_t xBytesAvailable ); PRIVILEGED_FUNCTION
        +									  size_t xBytesAvailable ) PRIVILEGED_FUNCTION;
         
         /*
          * Called by both pxStreamBufferCreate() and pxStreamBufferCreateStatic() to
        diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c
        index f25e8b3..b7af046 100644
        --- a/FreeRTOS/Source/tasks.c
        +++ b/FreeRTOS/Source/tasks.c
        @@ -1364,11 +1364,30 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
         				else if( pxStateList == &xSuspendedTaskList )
         				{
         					/* The task being queried is referenced from the suspended
        -					list.  Is it genuinely suspended or is it block
        +					list.  Is it genuinely suspended or is it blocked
         					indefinitely? */
         					if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL )
         					{
        -						eReturn = eSuspended;
        +						#if( configUSE_TASK_NOTIFICATIONS == 1 )
        +						{
        +							/* The task does not appear on the event list item of
        +							and of the RTOS objects, but could still be in the
        +							blocked state if it is waiting on its notification
        +							rather than waiting on an object. */
        +							if( pxTCB->ucNotifyState == taskWAITING_NOTIFICATION )
        +							{
        +								eReturn = eBlocked;
        +							}
        +							else
        +							{
        +								eReturn = eSuspended;
        +							}
        +						}
        +						#else
        +						{
        +							eReturn = eSuspended;
        +						}
        +						#endif
         					}
         					else
         					{
        @@ -4772,13 +4791,11 @@ TickType_t uxReturn;
         					{
         						*pxHigherPriorityTaskWoken = pdTRUE;
         					}
        -					else
        -					{
        -						/* Mark that a yield is pending in case the user is not
        -						using the "xHigherPriorityTaskWoken" parameter to an ISR
        -						safe FreeRTOS function. */
        -						xYieldPending = pdTRUE;
        -					}
        +
        +					/* Mark that a yield is pending in case the user is not
        +					using the "xHigherPriorityTaskWoken" parameter to an ISR
        +					safe FreeRTOS function. */
        +					xYieldPending = pdTRUE;
         				}
         				else
         				{
        @@ -4862,13 +4879,11 @@ TickType_t uxReturn;
         					{
         						*pxHigherPriorityTaskWoken = pdTRUE;
         					}
        -					else
        -					{
        -						/* Mark that a yield is pending in case the user is not
        -						using the "xHigherPriorityTaskWoken" parameter in an ISR
        -						safe FreeRTOS function. */
        -						xYieldPending = pdTRUE;
        -					}
        +
        +					/* Mark that a yield is pending in case the user is not
        +					using the "xHigherPriorityTaskWoken" parameter in an ISR
        +					safe FreeRTOS function. */
        +					xYieldPending = pdTRUE;
         				}
         				else
         				{
        
        From 090db8da5e087171766cf53fef71e4f8eb9d5482 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Tue, 5 Jun 2018 22:21:35 +1000
        Subject: [PATCH 311/349] sysparam: always create the semaphore on init.
        
        Otherwise when initialization was not successful it may fail with an
        assertion in FreeRTOS rather than returning SYSPARAM_ERR_NOINIT.
        ---
         core/sysparam.c | 4 ++--
         1 file changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/core/sysparam.c b/core/sysparam.c
        index 27471a0..19e5ada 100644
        --- a/core/sysparam.c
        +++ b/core/sysparam.c
        @@ -505,6 +505,8 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) {
             struct sysparam_context ctx;
             uint16_t num_sectors;
         
        +    _sysparam_info.sem = xSemaphoreCreateMutex();
        +
             // Make sure we're starting at the beginning of the sector
             base_addr -= (base_addr % sdk_flashchip.sector_size);
         
        @@ -584,8 +586,6 @@ sysparam_status_t sysparam_init(uint32_t base_addr, uint32_t top_addr) {
                 _sysparam_info.end_addr = ctx.addr;
             }
         
        -    _sysparam_info.sem = xSemaphoreCreateMutex();
        -
             return SYSPARAM_OK;
         }
         
        
        From c3b7a0189196c39a92e2efa14e6ce107cd4fe6eb Mon Sep 17 00:00:00 2001
        From: Alex Demenchuk 
        Date: Tue, 5 Jun 2018 16:17:26 -0400
        Subject: [PATCH 312/349] Add SPI3 SUPPORT preprocessor macro to CFLAGS
        
        ---
         extras/ssd1306/component.mk | 4 +++-
         extras/ssd1306/ssd1306.c    | 2 ++
         2 files changed, 5 insertions(+), 1 deletion(-)
        
        diff --git a/extras/ssd1306/component.mk b/extras/ssd1306/component.mk
        index f12a292..2cfb14d 100644
        --- a/extras/ssd1306/component.mk
        +++ b/extras/ssd1306/component.mk
        @@ -7,11 +7,13 @@ INC_DIRS += $(ssd1306_ROOT)..
         SSD1306_I2C_SUPPORT ?= 1
         # SPI4 support is on by default
         SSD1306_SPI4_SUPPORT ?= 1
        +# SPI3 support is on by default
        +SSD1306_SPI3_SUPPORT ?= 1
         
         # args for passing into compile rule generation
         ssd1306_SRC_DIR = $(ssd1306_ROOT)
         
        -ssd1306_CFLAGS = -DSSD1306_I2C_SUPPORT=${SSD1306_I2C_SUPPORT} -DSSD1306_SPI4_SUPPORT=${SSD1306_SPI4_SUPPORT} $(CFLAGS)
        +ssd1306_CFLAGS = -DSSD1306_I2C_SUPPORT=${SSD1306_I2C_SUPPORT} -DSSD1306_SPI4_SUPPORT=${SSD1306_SPI4_SUPPORT} -DSSD1306_SPI3_SUPPORT=${SSD1306_SPI3_SUPPORT} $(CFLAGS)
         
         
         $(eval $(call component_compile_rules,ssd1306))
        diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c
        index 6ce2c74..df188c5 100644
        --- a/extras/ssd1306/ssd1306.c
        +++ b/extras/ssd1306/ssd1306.c
        @@ -236,7 +236,9 @@ static int sh1106_go_coordinate(const ssd1306_t *dev, uint8_t x, uint8_t y)
         int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[])
         {
             uint16_t i;
        +#if (SSD1306_SPI3_SUPPORT)
             uint8_t j;
        +#endif
         #if (SSD1306_I2C_SUPPORT)
             uint8_t tab[16] = { 0 };
         #endif
        
        From b4271792b919e1d178ccea87807a3069cbc86d28 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Fri, 8 Jun 2018 11:06:35 +1000
        Subject: [PATCH 313/349] i2c: include stdio.h for debugging.
        
        ---
         extras/i2c/i2c.c | 1 +
         1 file changed, 1 insertion(+)
        
        diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c
        index 204bc98..527b3ac 100644
        --- a/extras/i2c/i2c.c
        +++ b/extras/i2c/i2c.c
        @@ -32,6 +32,7 @@
         //#define I2C_DEBUG true
         
         #ifdef I2C_DEBUG
        +#include 
         #define debug(fmt, ...) printf("%s: " fmt "\n", "I2C", ## __VA_ARGS__)
         #else
         #define debug(fmt, ...)
        
        From fdd3b6e20c063049da9c222d6b28a9953958be85 Mon Sep 17 00:00:00 2001
        From: Joost Nieuwenhuijse 
        Date: Fri, 8 Jun 2018 22:09:15 +0200
        Subject: [PATCH 314/349] Turn off mdnsresponder debugging by default
        
        Currently mdnsresponder outputs debug info by default. Make this
        optional by defining:
        
        #define MDNS_RESPONDER_DEBUGGING=1
        ---
         extras/mdnsresponder/mdnsresponder.c | 6 ++++++
         extras/mdnsresponder/mdnsresponder.h | 5 +++++
         2 files changed, 11 insertions(+)
        
        diff --git a/extras/mdnsresponder/mdnsresponder.c b/extras/mdnsresponder/mdnsresponder.c
        index 0a8781d..2288867 100644
        --- a/extras/mdnsresponder/mdnsresponder.c
        +++ b/extras/mdnsresponder/mdnsresponder.c
        @@ -38,9 +38,11 @@
         #error "LWIP_IGMP needs to be defined in lwipopts.h"
         #endif
         
        +#if MDNS_RESPONDER_DEBUGGING
         #define qDebugLog             // Log activity generally
         #define qLogIncoming          // Log all arriving multicast packets
         #define qLogAllTraffic        // Log and decode all mDNS packets
        +#endif
         
         //-------------------------------------------------------------------
         
        @@ -776,9 +778,13 @@ static void mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_a
         
             // Sanity checks on size
             if (plen > MDNS_RESPONDER_REPLY_SIZE) {
        +#ifdef qDebugLog
                 printf(">>> mdns_recv: pbuf too big\n");
        +#endif
             } else if (plen < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + 1 + SIZEOF_DNS_ANSWER + 1)) {
        +#ifdef qDebugLog
                 printf(">>> mdns_recv: pbuf too small\n");
        +#endif
             } else {
                 mdns_payload = malloc(plen);
                 if (!mdns_payload) {
        diff --git a/extras/mdnsresponder/mdnsresponder.h b/extras/mdnsresponder/mdnsresponder.h
        index 01c6dd2..257ce7b 100644
        --- a/extras/mdnsresponder/mdnsresponder.h
        +++ b/extras/mdnsresponder/mdnsresponder.h
        @@ -21,6 +21,11 @@
         #define MDNS_RESPONDER_REPLY_SIZE      320
         #endif
         
        +#ifndef MDNS_RESPONDER_DEBUGGING
        +#define MDNS_RESPONDER_DEBUGGING      0
        +#endif
        +
        +
         // Starts the mDNS responder task, call first
         void mdns_init();
         
        
        From c8c7f972900e573ae2f05fffc93b7421afeffa09 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Fri, 15 Jun 2018 08:22:29 +1000
        Subject: [PATCH 315/349] i2c: increase the default clock strech timeout to
         250msec.
        
        This also redefines the timeout in FreeRTOS clock ticks, and implements a two
        stage wait: firstly spinning sampling frequently, and then falling back to a
        longer wait while sampling less frequently and yielding.
        ---
         extras/i2c/i2c.c | 54 ++++++++++++++++++++++++++++++++----------------
         extras/i2c/i2c.h | 11 +++++-----
         2 files changed, 42 insertions(+), 23 deletions(-)
        
        diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c
        index 204bc98..faa245a 100644
        --- a/extras/i2c/i2c.c
        +++ b/extras/i2c/i2c.c
        @@ -66,7 +66,7 @@ typedef struct i2c_bus_description
           bool started;
           bool flag;
           bool force;
        -  uint32_t clk_stretch;
        +  TickType_t clk_stretch;
         } i2c_bus_description_t;
         
         static i2c_bus_description_t i2c_bus[I2C_MAX_BUS];
        @@ -183,7 +183,7 @@ int i2c_set_frequency_hz(uint8_t bus, uint32_t freq)
             return not_ok ? -EINVAL : 0;
         }
         
        -void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch)
        +void i2c_set_clock_stretch(uint8_t bus, TickType_t clk_stretch)
         {
             i2c_bus[bus].clk_stretch = clk_stretch;
         }
        @@ -235,13 +235,46 @@ static inline void clear_sda(uint8_t bus)
         #endif
         }
         
        -static inline void set_scl(uint8_t bus)
        +#define I2C_CLK_STRETCH_SPIN 1024
        +
        +static void set_scl(uint8_t bus)
         {
         #if I2C_USE_GPIO16 == 1
             gpio_write(i2c_bus[bus].g_scl_pin, 1);
         #else
             GPIO.OUT_SET = i2c_bus[bus].g_scl_mask;
         #endif
        +
        +    // Clock stretching.
        +
        +    // Spin sampling frequently.
        +    uint32_t clk_stretch_spin = I2C_CLK_STRETCH_SPIN;
        +    do {
        +        if (read_scl(bus)) {
        +            return;
        +        }
        +
        +        clk_stretch_spin--;
        +    } while (clk_stretch_spin);
        +
        +    // Fall back to a longer wait, sampling less frequently.
        +    TickType_t clk_stretch = i2c_bus[bus].clk_stretch;
        +    TickType_t start = xTaskGetTickCount();
        +
        +    do {
        +        vTaskDelay(20 / portTICK_PERIOD_MS);
        +
        +        if (read_scl(bus)) {
        +            return;
        +        }
        +
        +        TickType_t elapsed = xTaskGetTickCount() - start;
        +        if (elapsed > clk_stretch) {
        +            break;
        +        }
        +    } while (1);
        +
        +    debug("bus %u clock stretch timeout", bus);
         }
         
         static inline void set_sda(uint8_t bus)
        @@ -265,10 +298,7 @@ void i2c_start(uint8_t bus)
                 // Set SDA to 1
                 set_sda(bus);
                 i2c_delay(bus);
        -        uint32_t clk_stretch = i2c_bus[bus].clk_stretch;
                 set_scl(bus);
        -        while (read_scl(bus) == 0 && clk_stretch--)
        -            ;
                 // Repeated start setup time, minimum 4.7us
                 i2c_delay(bus);
             }
        @@ -286,14 +316,10 @@ void i2c_start(uint8_t bus)
         // Output stop condition
         bool i2c_stop(uint8_t bus)
         {
        -    uint32_t clk_stretch = i2c_bus[bus].clk_stretch;
             // Set SDA to 0
             clear_sda(bus);
             i2c_delay(bus);
        -    // Clock stretching
             set_scl(bus);
        -    while (read_scl(bus) == 0 && clk_stretch--)
        -        ;
             // Stop bit setup time, minimum 4us
             i2c_delay(bus);
             // SCL is high, set SDA from 0 to 1
        @@ -315,17 +341,13 @@ bool i2c_stop(uint8_t bus)
         // Write a bit to I2C bus
         static void i2c_write_bit(uint8_t bus, bool bit)
         {
        -    uint32_t clk_stretch = i2c_bus[bus].clk_stretch;
             if (bit) {
                 set_sda(bus);
             } else {
                 clear_sda(bus);
             }
             i2c_delay(bus);
        -    // Clock stretching
             set_scl(bus);
        -    while (read_scl(bus) == 0 && clk_stretch--)
        -        ;
             // SCL is high, now data is valid
             // If SDA is high, check that nobody else is driving SDA
             if (bit && read_sda(bus) == 0) {
        @@ -338,15 +360,11 @@ static void i2c_write_bit(uint8_t bus, bool bit)
         // Read a bit from I2C bus
         static bool i2c_read_bit(uint8_t bus)
         {
        -    uint32_t clk_stretch = i2c_bus[bus].clk_stretch;
             bool bit;
             // Let the slave drive data
             set_sda(bus);
             i2c_delay(bus);
             set_scl(bus);
        -    // Clock stretching
        -    while (read_scl(bus) == 0 && clk_stretch--)
        -        ;
             // SCL is high, now data is valid
             bit = read_sda(bus);
             i2c_delay(bus);
        diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h
        index 46f8468..9cd55f2 100644
        --- a/extras/i2c/i2c.h
        +++ b/extras/i2c/i2c.h
        @@ -32,6 +32,8 @@
         #include 
         #include 
         #include 
        +#include 
        +#include 
         
         #ifdef	__cplusplus
         extern "C" {
        @@ -51,7 +53,8 @@ extern "C" {
             #define I2C_USE_GPIO16 0
         #endif
         
        -#define I2C_DEFAULT_CLK_STRETCH (10)
        +/* Default clock strech waiting time, 250 msec. */
        +#define I2C_DEFAULT_CLK_STRETCH (250 / portTICK_PERIOD_MS)
         
         /* SCL speed settings. 160 MHz sysclk frequency will result in improved
          * timing accuracy. Greater bitrates will have poorer accuracy. 1000K is the
        @@ -86,7 +89,6 @@ typedef struct i2c_dev
          * @param scl_pin SCL pin for I2C
          * @param sda_pin SDA pin for I2C
          * @param freq frequency of bus (ex : I2C_FREQ_400K)
        - * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH would be good in most cases
          * @return Non-zero if error occured
          */
         int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq);
        @@ -97,7 +99,6 @@ int i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq);
          * @param scl_pin SCL pin for I2C
          * @param sda_pin SDA pin for I2C
          * @param freq frequency of bus in hertz
        - * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH would be good in most cases
          * @return Non-zero if error occured
          */
         int i2c_init_hz(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint32_t freq);
        @@ -119,9 +120,9 @@ int i2c_set_frequency_hz(uint8_t bus, uint32_t freq);
         /**
          * Change clock stretch
          * @param bus I2C bus
        - * @param clk_stretch I2C clock stretch. I2C_DEFAULT_CLK_STRETCH by default
        + * @param clk_stretch I2C clock stretch, in ticks. I2C_DEFAULT_CLK_STRETCH by default
          */
        -void i2c_set_clock_stretch(uint8_t bus, uint32_t clk_stretch);
        +void i2c_set_clock_stretch(uint8_t bus, TickType_t clk_stretch);
         
         /**
          * Write a byte to I2C bus.
        
        From 5fb2e94fed796cdba456eec9d0b14fec1a8fec43 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Sun, 17 Jun 2018 16:04:34 +1000
        Subject: [PATCH 316/349] wificfg: add shutdown hooks, and add support to wait
         until connected.
        
        Remove the wificfg_got_sta_connect() function and replace it with
        wificfg_wait_until_sta_connected(). This replaces a probe function with a wait
        function, and this better fits the wifi layer using an event model - the wait
        function can wait on a station connection event before returning.
        
        The shutdown hooks are call when the wificfg restart function is used. It can
        be used to implement a cleaner restart, for example blocking further i2c and
        flash operations.
        ---
         extras/wificfg/wificfg.c | 43 ++++++++++++++++++++++++++++++++++++++++
         extras/wificfg/wificfg.h | 10 +++++-----
         2 files changed, 48 insertions(+), 5 deletions(-)
        
        diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c
        index 804adad..da866d5 100644
        --- a/extras/wificfg/wificfg.c
        +++ b/extras/wificfg/wificfg.c
        @@ -1375,6 +1375,45 @@ void wificfg_got_sta_connect()
             }
         }
         
        +void wificfg_wait_until_sta_connected()
        +{
        +    while (1) {
        +        uint8_t connect_status = sdk_wifi_station_get_connect_status();
        +        if (connect_status == STATION_GOT_IP)
        +            break;
        +        vTaskDelay(1000 / portTICK_PERIOD_MS);
        +    }
        +
        +    /*
        +     * Notifty wificfg to disable the AP interface on the next restart
        +     * if that option is enabled.
        +     */
        +    wificfg_got_sta_connect();
        +}
        +
        +struct shutdown_hook {
        +  struct shutdown_hook *next;
        +  void (*fn)(void *);
        +  void *arg;
        +};
        +
        +static struct shutdown_hook *shutdown_hooks;
        +
        +bool wificfg_add_shutdown_hook(void (*fn)(void *), void *arg)
        +{
        +  struct shutdown_hook *hook = malloc(sizeof(struct shutdown_hook));
        +
        +  if (!hook) {
        +    return false;
        +  }
        +
        +  hook->next = shutdown_hooks;
        +  hook->fn = fn;
        +  hook->arg = arg;
        +  shutdown_hooks = hook;
        +  return true;
        +}
        +
         static int handle_restart_post(int s, wificfg_method method,
                                        uint32_t content_length,
                                        wificfg_content_type content_type,
        @@ -1382,6 +1421,10 @@ static int handle_restart_post(int s, wificfg_method method,
         {
             wificfg_write_string(s, http_redirect_header);
             close(s);
        +    struct shutdown_hook *hook;
        +    for (hook = shutdown_hooks; hook; hook = hook->next) {
        +      hook->fn(hook->arg);
        +    }
             vTaskDelay(2000 / portTICK_PERIOD_MS);
             sdk_system_restart();
             return 0;
        diff --git a/extras/wificfg/wificfg.h b/extras/wificfg/wificfg.h
        index d71eaf6..3461c7a 100644
        --- a/extras/wificfg/wificfg.h
        +++ b/extras/wificfg/wificfg.h
        @@ -121,11 +121,11 @@ ssize_t wificfg_write_chunk_end(int s);
         /* Write a html title meta data, using the hostname or AP SSI. */
         int wificfg_write_html_title(int s, char *buf, size_t len, const char *str);
         
        -/* Callback to notify the wificfg logic that a station connection has been
        - * successfully established. It might use this to disable the AP interface after
        - * a restart.
        - */
        -void wificfg_got_sta_connect(void);
        +/* Wait until the station interface has connected to an access point,
        + * and obtained an IP address. */
        +void wificfg_wait_until_sta_connected(void);
        +
        +bool wificfg_add_shutdown_hook(void (*fn)(void *), void *arg);
         
         #ifdef __cplusplus
         }
        
        From 024fbd0cf2ac55f6c3c48c17460840031c66c53c Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Sun, 17 Jun 2018 16:30:24 +1000
        Subject: [PATCH 317/349] wificfg: default the hostname in all modes.
        
        A hostname is also useful in AP mode, so also default it in AP mode -
        it was previously only defaulted in station mode.
        
        Correct the host redirection logic, to work when no hostname is defined.
        ---
         extras/wificfg/wificfg.c | 37 ++++++++++++++++++++-----------------
         1 file changed, 20 insertions(+), 17 deletions(-)
        
        diff --git a/extras/wificfg/wificfg.c b/extras/wificfg/wificfg.c
        index 804adad..c763052 100644
        --- a/extras/wificfg/wificfg.c
        +++ b/extras/wificfg/wificfg.c
        @@ -1841,8 +1841,11 @@ static void server_task(void *pvParameters)
                                 value = skip_whitespace(value);
                                 switch (header) {
                                 case HTTP_HEADER_HOST:
        -                            if (hostname_local && host_is_name(value) &&
        -                                strcmp(value, hostname_local)) {
        +                            if (!host_is_name(value)) {
        +                                break;
        +                            }
        +                            if (!hostname_local ||
        +                                (hostname_local && strcmp(value, hostname_local))) {
                                         host_redirect = true;
                                     }
                                     break;
        @@ -2006,6 +2009,21 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch)
                 return;
             }
         
        +    /* Default a hostname. */
        +    char *hostname = NULL;
        +    sysparam_get_string("hostname", &hostname);
        +    if (!hostname && wificfg_default_hostname) {
        +        uint8_t macaddr[6];
        +        char name[32];
        +        sdk_wifi_get_macaddr(1, macaddr);
        +        snprintf(name, sizeof(name), wificfg_default_hostname, macaddr[3],
        +                 macaddr[4], macaddr[5]);
        +        sysparam_set_string("hostname", name);
        +    }
        +    if (hostname) {
        +        free(hostname);
        +    }
        +
             sysparam_get_string("wifi_ap_ssid", &wifi_ap_ssid);
             sysparam_get_string("wifi_ap_password", &wifi_ap_password);
             sysparam_get_string("wifi_sta_ssid", &wifi_sta_ssid);
        @@ -2077,21 +2095,6 @@ void wificfg_init(uint32_t port, const wificfg_dispatch *dispatch)
             sdk_wifi_set_opmode(wifi_mode);
         
             if (wifi_sta_enable) {
        -        /* Default a hostname. */
        -        char *hostname = NULL;
        -        sysparam_get_string("hostname", &hostname);
        -        if (!hostname && wificfg_default_hostname) {
        -            uint8_t macaddr[6];
        -            char name[32];
        -            sdk_wifi_get_macaddr(1, macaddr);
        -            snprintf(name, sizeof(name), wificfg_default_hostname, macaddr[3],
        -                     macaddr[4], macaddr[5]);
        -            sysparam_set_string("hostname", name);
        -        }
        -        if (hostname) {
        -            free(hostname);
        -        }
        -
                 struct sdk_station_config config;
                 strcpy((char *)config.ssid, wifi_sta_ssid);
                 strcpy((char *)config.password, wifi_sta_password);
        
        From 7a8ee567b6d18bc29c1605655dbffb7bdc2cbed6 Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Sun, 17 Jun 2018 20:08:58 +1000
        Subject: [PATCH 318/349] libmain: add a compile option to avoid saving wifi
         params to flash
        
        Add source code for sdk_wifi_param_save_protect() and a compile time,
        WIFI_PARAM_SAVE, option to skip writing the wifi state to flash. This
        avoids wear on the flash and does not appear to be necessary when the
        app initializes the state anyway.
        
        Define WIFI_PARAM_SAVE to 0 for the wificfg example.
        ---
         examples/wificfg/Makefile             |  9 +++--
         open_esplibs/libmain/user_interface.c | 50 +++++++++++++++++++++++++++
         2 files changed, 56 insertions(+), 3 deletions(-)
        
        diff --git a/examples/wificfg/Makefile b/examples/wificfg/Makefile
        index 586b087..51b177f 100644
        --- a/examples/wificfg/Makefile
        +++ b/examples/wificfg/Makefile
        @@ -3,10 +3,13 @@ PROGRAM=wificfg
         EXTRA_COMPONENTS=extras/dhcpserver extras/wificfg
         
         # For the mDNS responder included under extras:
        -# EXTRA_COMPONENTS+=extras/mdnsresponder
        -# EXTRA_CFLAGS=-DEXTRAS_MDNS_RESPONDER
        +# EXTRA_COMPONENTS += extras/mdnsresponder
        +# EXTRA_CFLAGS += -DEXTRAS_MDNS_RESPONDER
         
         # For the mDNS responder included with lwip:
        -EXTRA_CFLAGS=-DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 -DLWIP_NETIF_EXT_STATUS_CALLBACK=1
        +EXTRA_CFLAGS += -DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 -DLWIP_NETIF_EXT_STATUS_CALLBACK=1
        +
        +# Avoid writing the wifi state to flash when using wificfg.
        +EXTRA_CFLAGS += -DWIFI_PARAM_SAVE=0
         
         include ../../common.mk
        diff --git a/open_esplibs/libmain/user_interface.c b/open_esplibs/libmain/user_interface.c
        index e81f175..cc0ffbe 100644
        --- a/open_esplibs/libmain/user_interface.c
        +++ b/open_esplibs/libmain/user_interface.c
        @@ -576,6 +576,56 @@ enum sdk_dhcp_status sdk_wifi_station_dhcpc_status(void) {
             return sdk_dhcpc_flag;
         }
         
        +
        +#ifndef WIFI_PARAM_SAVE
        +#define WIFI_PARAM_SAVE 1
        +#endif
        +
        +#if WIFI_PARAM_SAVE
        +static void wifi_save_protect(uint32_t sector, uint32_t sector_size, uint32_t *arg2, size_t size) {
        +    uint32_t *buffer = malloc(size);
        +    uint32_t offset = sector * sector_size;
        +
        +    do  {
        +        sdk_spi_flash_erase_sector(sector);
        +        sdk_spi_flash_write(offset, arg2, size);
        +        sdk_spi_flash_read(offset, buffer, size);
        +        if (memcmp(buffer, arg2, size) == 0) {
        +            break;
        +        }
        +        printf("[W]sec %d error\n", sector);
        +    } while (1);
        +
        +    free(buffer);
        +}
        +#endif
        +
        +void sdk_wifi_param_save_protect(struct sdk_g_ic_saved_st *params) {
        +#if WIFI_PARAM_SAVE
        +    uint32_t sector_size = sdk_flashchip.sector_size;
        +    uint32_t sectors = sdk_flashchip.chip_size / sector_size;
        +
        +    uint32_t dir_sector = sectors - 1;
        +    struct param_dir_st dir;
        +    sdk_spi_flash_read(dir_sector * sector_size, (uint32_t *)&dir, sizeof(dir));
        +    uint8_t current_sector = dir.current_sector ? 1 : 0;
        +    dir.current_sector = current_sector;
        +
        +    uint32_t param_sector_start = sectors - 3;
        +    wifi_save_protect(param_sector_start + current_sector, sector_size,
        +                      (uint32_t *)params, sizeof(struct sdk_g_ic_saved_st));
        +
        +    dir.cksum_magic = 0x55AA55AA;
        +    uint32_t save_count = dir.save_count + 1;
        +    dir.save_count = (save_count) ? save_count : 1;
        +    dir.cksum_len[current_sector] = sizeof(dir);
        +    uint32_t checksum = sdk_system_get_checksum((uint8_t *)params, sizeof(dir));
        +    dir.cksum_value[current_sector] = checksum;
        +    wifi_save_protect(dir_sector, sector_size, (uint32_t *)&dir, sizeof(dir));
        +#endif
        +}
        +
        +
         uint8_t sdk_wifi_station_get_connect_status() {
             if (sdk_wifi_get_opmode() == 2) // ESPCONN_AP
                 return 0xff;
        
        From 4d072e20ed49d56e25350733d2feca26f67d1bab Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Sun, 17 Jun 2018 20:31:11 +1000
        Subject: [PATCH 319/349] sysparam editor: avoid saving any wifi params to
         flash
        
        ---
         examples/sysparam_editor/Makefile | 5 ++++-
         1 file changed, 4 insertions(+), 1 deletion(-)
        
        diff --git a/examples/sysparam_editor/Makefile b/examples/sysparam_editor/Makefile
        index f63e4e5..2773185 100644
        --- a/examples/sysparam_editor/Makefile
        +++ b/examples/sysparam_editor/Makefile
        @@ -1,7 +1,10 @@
         PROGRAM=sysparam_editor
         
         # Setting this to 1..3 will add extra debugging output to stdout
        -EXTRA_CFLAGS=-DSYSPARAM_DEBUG=0
        +EXTRA_CFLAGS = -DSYSPARAM_DEBUG=0
        +
        +# Avoid writing the wifi state to flash when using wificfg.
        +EXTRA_CFLAGS += -DWIFI_PARAM_SAVE=0
         
         include ../../common.mk
         
        
        From 8bec6e0e810edb93ce8ef0ccceed341afb3d302a Mon Sep 17 00:00:00 2001
        From: Philippe Kehl 
        Date: Sun, 17 Jun 2018 13:59:18 +0200
        Subject: [PATCH 320/349] improve http_get_bearssl example documentation
        
        Add text explaining how to build the 'brssl' tool, how to use it and how
        to obtain the server certificate for an exiting https host.
        ---
         examples/http_get_bearssl/http_get_bearssl.c | 15 ++++++++++++++-
         1 file changed, 14 insertions(+), 1 deletion(-)
        
        diff --git a/examples/http_get_bearssl/http_get_bearssl.c b/examples/http_get_bearssl/http_get_bearssl.c
        index 3fe123c..92451ea 100644
        --- a/examples/http_get_bearssl/http_get_bearssl.c
        +++ b/examples/http_get_bearssl/http_get_bearssl.c
        @@ -88,13 +88,26 @@ sock_write(void *ctx, const unsigned char *buf, size_t len)
          * cert-root-ec.pem.
          *
          * C code for hardcoded trust anchors can be generated with the "brssl"
        - * command-line tool (with the "ta" command).
        + * command-line tool (with the "ta" command). To build that tool run:
        + *
        + * $ cd /path/to/esp-open-rtos/extras/bearssl/BearSSL
        + * $ make build/brssl
          *
          * Below is the imported "Let's Encrypt" root certificate, as howsmyssl
          * is depending on it:
          *
          * https://letsencrypt.org/certs/letsencryptauthorityx3.pem
          *
        + * The generate the trust anchor code below, run:
        + *
        + * $ /path/to/esp-open-rtos/extras/bearssl/BearSSL/build/brssl \
        + *   ta letsencryptauthorityx3.pem
        + *
        + * To get the server certificate for a given https host:
        + *
        + * $ openssl s_client -showcerts -servername www.howsmyssl.com \
        + *   -connect www.howsmyssl.com:443 < /dev/null | \
        + *   openssl x509 -outform pem > server.pem
          */
         
         static const unsigned char TA0_DN[] = {
        
        From 81fb2d4cae892e7598c5e1a94aab13095b4d4813 Mon Sep 17 00:00:00 2001
        From: Johan Kanflo 
        Date: Sat, 30 Jun 2018 20:32:11 +0200
        Subject: [PATCH 321/349] Added missing include
        
        ---
         extras/stdin_uart_interrupt/stdin_uart_interrupt.h | 1 +
         1 file changed, 1 insertion(+)
        
        diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        index b15278b..3308131 100644
        --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        @@ -25,6 +25,7 @@
         #ifndef __STDIN_UART_INTERRUPT_H__
         #define __STDIN_UART_INTERRUPT_H__
         
        +//#include "FreeRTOS.h"
         #include 
         
         /* Return number of characters waiting in UART0. */
        
        From b80a00065b8764f0c11a5e8a0e035e2fb54bef84 Mon Sep 17 00:00:00 2001
        From: Johan Kanflo 
        Date: Sat, 30 Jun 2018 20:50:57 +0200
        Subject: [PATCH 322/349] Really added missing include
        
        ---
         extras/stdin_uart_interrupt/stdin_uart_interrupt.h | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        index 3308131..3a7e9ca 100644
        --- a/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        +++ b/extras/stdin_uart_interrupt/stdin_uart_interrupt.h
        @@ -25,7 +25,7 @@
         #ifndef __STDIN_UART_INTERRUPT_H__
         #define __STDIN_UART_INTERRUPT_H__
         
        -//#include "FreeRTOS.h"
        +#include "FreeRTOS.h"
         #include 
         
         /* Return number of characters waiting in UART0. */
        
        From e104409d525e64f23d5a087f02e564485e84845b Mon Sep 17 00:00:00 2001
        From: UncleRus 
        Date: Thu, 2 Aug 2018 19:05:42 +0500
        Subject: [PATCH 323/349] CMD25 workaround for SDIO
        
        ---
         extras/sdio/component.mk |  5 +++++
         extras/sdio/sdio.c       | 24 ++++++++++++++++++++----
         2 files changed, 25 insertions(+), 4 deletions(-)
        
        diff --git a/extras/sdio/component.mk b/extras/sdio/component.mk
        index 5ed3ce0..f8fd0ec 100644
        --- a/extras/sdio/component.mk
        +++ b/extras/sdio/component.mk
        @@ -4,4 +4,9 @@ INC_DIRS += $(sdio_ROOT)..
         # args for passing into compile rule generation
         sdio_SRC_DIR = $(sdio_ROOT)
         
        +# Workaround unsupported CMD25 for very old SD cards
        +SDIO_CMD25_WORKAROUND ?= 0
        +
        +sdio_CFLAGS = $(CFLAGS) -DSDIO_CMD25_WORKAROUND=$(SDIO_CMD25_WORKAROUND)
        +
         $(eval $(call component_compile_rules,sdio))
        \ No newline at end of file
        diff --git a/extras/sdio/sdio.c b/extras/sdio/sdio.c
        index a721442..48a05da 100644
        --- a/extras/sdio/sdio.c
        +++ b/extras/sdio/sdio.c
        @@ -49,6 +49,11 @@
         #define WRITE_RES_OK       0x05
         
         
        +#ifndef SDIO_CMD25_WORKAROUND
        +    #define SDIO_CMD25_WORKAROUND 0
        +#endif
        +
        +
         #define CMD0   0x00 // GO_IDLE_STATE - Resets the SD Memory Card
         #define CMD1   0x01 // SEND_OP_COND - Sends host capacity support information
                             // and activates the card's initialization process.
        @@ -420,19 +425,30 @@ sdio_error_t sdio_write_sectors(sdio_card_t *card, uint32_t sector, uint8_t *src
                 return set_error(card, SDIO_ERR_IO);
             }
         
        +#if SDIO_CMD25_WORKAROUND
        +    // Workaround for very old cards that don't support CMD25
        +    while (count--)
        +    {
        +        // single block
        +        if (command(card, CMD24, sector))
        +            return set_error(card, SDIO_ERR_IO);
        +        if (write_data_block(card, TOKEN_SINGLE_TRAN, src) != SDIO_ERR_NONE)
        +            return card->error;
        +        src += SDIO_BLOCK_SIZE;
        +    }
        +#else
             if (command(card, multi ? CMD25 : CMD24, sector))
                 return set_error(card, SDIO_ERR_IO);
         
             while (count--)
             {
        -        if (write_data_block(card, multi ? TOKEN_MULTI_TRAN : TOKEN_SINGLE_TRAN, src) != SDIO_ERR_NONE){
        -          return card->error;
        -        }
        +        if (write_data_block(card, multi ? TOKEN_MULTI_TRAN : TOKEN_SINGLE_TRAN, src) != SDIO_ERR_NONE)
        +            return card->error;
                 src += SDIO_BLOCK_SIZE;
             }
        -
             if (multi && command(card, CMD12, 0))
                 return set_error(card, SDIO_ERR_IO);
        +#endif
         
             return set_error(card, SDIO_ERR_NONE);
         }
        
        From d848620975557f2d3e8224921360cd54cccd0f54 Mon Sep 17 00:00:00 2001
        From: Alex Demenchuk 
        Date: Tue, 7 Aug 2018 15:59:07 -0400
        Subject: [PATCH 324/349] Shrink gpio<>iomux maps
        
        ---
         core/esp_iomux.c | 4 ++--
         1 file changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/core/esp_iomux.c b/core/esp_iomux.c
        index 414da19..7a4a95f 100644
        --- a/core/esp_iomux.c
        +++ b/core/esp_iomux.c
        @@ -7,8 +7,8 @@
         #include "esp/iomux.h"
         #include "common_macros.h"
         
        -const static IRAM_DATA uint32_t IOMUX_TO_GPIO[] = { 12, 13, 14, 15, 3, 1, 6, 7, 8, 9, 10, 11, 0, 2, 4, 5 };
        -const static IRAM_DATA uint32_t GPIO_TO_IOMUX[] = { 12, 5, 13, 4, 14, 15, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3 };
        +const static IRAM_DATA uint8_t IOMUX_TO_GPIO[] = { 12, 13, 14, 15, 3, 1, 6, 7, 8, 9, 10, 11, 0, 2, 4, 5 };
        +const static IRAM_DATA uint8_t GPIO_TO_IOMUX[] = { 12, 5, 13, 4, 14, 15, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3 };
         
         uint8_t IRAM gpio_to_iomux(const uint8_t gpio_number)
         {
        
        From 13d78403fdd585a142a974af34cba5af9b4f4d0e Mon Sep 17 00:00:00 2001
        From: Alex Demenchuk 
        Date: Tue, 21 Aug 2018 15:21:45 -0400
        Subject: [PATCH 325/349] Fixed sysparams flash area address calculation
        
        ---
         core/sysparam.c | 4 ++--
         1 file changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/core/sysparam.c b/core/sysparam.c
        index 19e5ada..f54ec31 100644
        --- a/core/sysparam.c
        +++ b/core/sysparam.c
        @@ -606,9 +606,9 @@ sysparam_status_t sysparam_create_area(uint32_t base_addr, uint16_t num_sectors,
             if (!force) {
                 // First, scan through the area and make sure it's actually empty and
                 // we're not going to be clobbering something else important.
        -        for (addr = base_addr; addr < base_addr + region_size * 2; addr += SCAN_BUFFER_SIZE) {
        +        for (addr = base_addr; addr < base_addr + region_size * 2; addr += SCAN_BUFFER_SIZE * sizeof(uint32_t)) {
                     debug(3, "read %d words @ 0x%08x", SCAN_BUFFER_SIZE, addr);
        -            CHECK_FLASH_OP(spiflash_read(addr, (uint8_t*)buffer, SCAN_BUFFER_SIZE * 4));
        +            CHECK_FLASH_OP(spiflash_read(addr, (uint8_t*)buffer, SCAN_BUFFER_SIZE * sizeof(uint32_t)));
                     for (i = 0; i < SCAN_BUFFER_SIZE; i++) {
                         if (buffer[i] != 0xffffffff) {
                             // Uh oh, not empty.
        
        From d627251a3299d81de7c350b6b490f8528a7211d3 Mon Sep 17 00:00:00 2001
        From: "Ruslan V. Uss" 
        Date: Wed, 22 Aug 2018 17:39:50 +0500
        Subject: [PATCH 326/349] Revert "Shrink gpio<>iomux maps"
        
        ---
         core/esp_iomux.c | 4 ++--
         1 file changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/core/esp_iomux.c b/core/esp_iomux.c
        index 7a4a95f..414da19 100644
        --- a/core/esp_iomux.c
        +++ b/core/esp_iomux.c
        @@ -7,8 +7,8 @@
         #include "esp/iomux.h"
         #include "common_macros.h"
         
        -const static IRAM_DATA uint8_t IOMUX_TO_GPIO[] = { 12, 13, 14, 15, 3, 1, 6, 7, 8, 9, 10, 11, 0, 2, 4, 5 };
        -const static IRAM_DATA uint8_t GPIO_TO_IOMUX[] = { 12, 5, 13, 4, 14, 15, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3 };
        +const static IRAM_DATA uint32_t IOMUX_TO_GPIO[] = { 12, 13, 14, 15, 3, 1, 6, 7, 8, 9, 10, 11, 0, 2, 4, 5 };
        +const static IRAM_DATA uint32_t GPIO_TO_IOMUX[] = { 12, 5, 13, 4, 14, 15, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3 };
         
         uint8_t IRAM gpio_to_iomux(const uint8_t gpio_number)
         {
        
        From b5b05286e974a9d6e529a32ff47aa4ecf5c45aa9 Mon Sep 17 00:00:00 2001
        From: Korn <20152583+k-korn@users.noreply.github.com>
        Date: Wed, 22 Aug 2018 19:04:18 +0300
        Subject: [PATCH 327/349] Add ADS1015 support to ads111x lib.
        
        ---
         extras/ads111x/ads111x.c | 12 ++++++++++++
         extras/ads111x/ads111x.h | 17 +++++++++++++++++
         2 files changed, 29 insertions(+)
        
        diff --git a/extras/ads111x/ads111x.c b/extras/ads111x/ads111x.c
        index f2724bb..24bae20 100644
        --- a/extras/ads111x/ads111x.c
        +++ b/extras/ads111x/ads111x.c
        @@ -93,6 +93,18 @@ int16_t ads111x_get_value(i2c_dev_t *dev)
             return read_reg(dev, REG_CONVERSION);
         }
         
        +int16_t ads101x_get_value(i2c_dev_t *dev)
        +{
        +	uint16_t res = read_reg(dev, REG_CONVERSION) >> 4;
        +	if (res > 0x07FF)
        +	{
        +		// negative number - extend the sign to 16th bit
        +		res |= 0xF000;
        +	}
        +	return (int16_t)res;
        +}
        +
        +
         ads111x_gain_t ads111x_get_gain(i2c_dev_t *dev)
         {
             return read_conf_bits(dev, PGA_OFFSET, PGA_MASK);
        diff --git a/extras/ads111x/ads111x.h b/extras/ads111x/ads111x.h
        index b9eb673..905fa31 100644
        --- a/extras/ads111x/ads111x.h
        +++ b/extras/ads111x/ads111x.h
        @@ -22,6 +22,16 @@ extern "C" {
         #define ADS111X_ADDR_SCL 0x4b
         
         #define ADS111X_MAX_VALUE 0x7fff
        +#define ADS101X_MAX_VALUE 0x7ff
        +
        +// ADS101X overrides
        +#define ADS101X_DATA_RATE_128  	ADS111X_DATA_RATE_8 
        +#define ADS101X_DATA_RATE_250  	ADS111X_DATA_RATE_16
        +#define ADS101X_DATA_RATE_490  	ADS111X_DATA_RATE_32
        +#define ADS101X_DATA_RATE_920  	ADS111X_DATA_RATE_64
        +#define ADS101X_DATA_RATE_1600	ADS111X_DATA_RATE_128
        +#define ADS101X_DATA_RATE_2400	ADS111X_DATA_RATE_250
        +#define ADS101X_DATA_RATE_3300	ADS111X_DATA_RATE_475
         
         /**
          * Gain amplifier
        @@ -140,6 +150,13 @@ void ads111x_start_conversion(i2c_dev_t *dev);
          */
         int16_t ads111x_get_value(i2c_dev_t *dev);
         
        +/**
        + * Read last conversion result for 101x
        + * @param addr
        + * @return Last conversion result
        + */
        +int16_t ads101x_get_value(i2c_dev_t *dev);
        +
         /**
          * Read the programmable gain amplifier configuration
          * (ADS1114 and ADS1115 only).
        
        From 1a348179dd38d9c68fe9650e9f9a020ab1f5c824 Mon Sep 17 00:00:00 2001
        From: Alex Demenchuk 
        Date: Thu, 11 Oct 2018 17:44:35 -0400
        Subject: [PATCH 328/349] Fixed command and address in LSB mode
        
        ---
         core/include/esp/spi.h | 24 ++++++++++++++++++++----
         1 file changed, 20 insertions(+), 4 deletions(-)
        
        diff --git a/core/include/esp/spi.h b/core/include/esp/spi.h
        index 9ce68fb..8c7620d 100644
        --- a/core/include/esp/spi.h
        +++ b/core/include/esp/spi.h
        @@ -293,9 +293,18 @@ static inline void spi_set_command(uint8_t bus, uint8_t bits, uint16_t data)
         {
             if (!bits) return;
         
        -    SPI(bus).USER0 |= SPI_USER0_COMMAND;                           //enable COMMAND function in SPI module
        -    uint16_t command = data << (16 - bits);                        //align command data to high bits
        -    command = ((command >> 8) & 0xff) | ((command << 8) & 0xff00); //swap byte order
        +    SPI(bus).USER0 |= SPI_USER0_COMMAND;                                //enable COMMAND function in SPI module
        +    uint16_t command;
        +    // Commands are always sent using little endian byte order
        +    if (!spi_get_msb(bus)) {
        +        // "data" are natively little endian, with LSB bit order
        +        // this makes all bits of the command ready to be sent as-is
        +        command = data;
        +    } else {
        +        // MSB
        +        command = data << (16 - bits);                                 //align command data to high bits
        +        command = ((command >> 8) & 0xff) | ((command << 8) & 0xff00); //swap byte order
        +    }
             SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_BITLEN, --bits);
             SPI(bus).USER2 = SET_FIELD(SPI(bus).USER2, SPI_USER2_COMMAND_VALUE, command);
         }
        @@ -320,7 +329,14 @@ static inline void spi_set_address(uint8_t bus, uint8_t bits, uint32_t data)
             if (!bits) return;
         
             SPI(bus).USER0 |= SPI_USER0_ADDR; //enable ADDRess function in SPI module
        -    SPI(bus).ADDR = data << (32 - bits); //align address data to high bits
        +    // addresses are always sent using big endian byte order
        +    if (spi_get_msb(bus)) {
        +        SPI(bus).ADDR = data << (32 - bits); //align address data to high bits
        +    } else {
        +        // swap bytes from native little to command's big endian order
        +        // bits in each byte are already arranged properly for LSB
        +        SPI(bus).ADDR = (data & 0xff) << 24 | (data & 0xff00) << 8 | ((data >> 8) & 0xff00) | ((data >> 24) & 0xff);
        +    }
             SPI(bus).USER1 = SET_FIELD(SPI(bus).USER1, SPI_USER1_ADDR_BITLEN, --bits);
         }
         
        
        From d70e48eb2499a12f2f917ffcd71d3b90a707d51f Mon Sep 17 00:00:00 2001
        From: "Sascha Schade (strongly-typed)" 
        Date: Tue, 4 Dec 2018 16:18:53 +0100
        Subject: [PATCH 329/349] http_get example: Make compatible with IPv4
        
        ipv6.google.com is not available from an IPv4-only network.
        httpbin.org gives nice answers to many requests.
        ---
         examples/http_get/http_get.c | 8 ++++----
         1 file changed, 4 insertions(+), 4 deletions(-)
        
        diff --git a/examples/http_get/http_get.c b/examples/http_get/http_get.c
        index 7b6fad6..8e38412 100644
        --- a/examples/http_get/http_get.c
        +++ b/examples/http_get/http_get.c
        @@ -21,9 +21,9 @@
         
         #include "ssid_config.h"
         
        -#define WEB_SERVER "ipv6.google.com"
        -#define WEB_PORT 80
        -#define WEB_PATH "/"
        +#define WEB_SERVER "httpbin.org"
        +#define WEB_PORT "80"
        +#define WEB_PATH "/get"
         
         void http_get_task(void *pvParameters)
         {
        @@ -38,7 +38,7 @@ void http_get_task(void *pvParameters)
                 struct addrinfo *res;
         
                 printf("Running DNS lookup for %s...\r\n", WEB_SERVER);
        -        int err = getaddrinfo(WEB_SERVER, "80", &hints, &res);
        +        int err = getaddrinfo(WEB_SERVER, WEB_PORT, &hints, &res);
         
                 if (err != 0 || res == NULL) {
                     printf("DNS lookup failed err=%d res=%p\r\n", err, res);
        
        From b6b0e5da1385478db04f5def1cdb870dd628aceb Mon Sep 17 00:00:00 2001
        From: Radoslaw Olko 
        Date: Wed, 16 Jan 2019 22:50:47 +0100
        Subject: [PATCH 330/349] added lease time option to dhcpserver's DHCPOFFER
        
        ---
         extras/dhcpserver/dhcpserver.c | 3 +++
         1 file changed, 3 insertions(+)
        
        diff --git a/extras/dhcpserver/dhcpserver.c b/extras/dhcpserver/dhcpserver.c
        index a9a6f93..428ec8e 100644
        --- a/extras/dhcpserver/dhcpserver.c
        +++ b/extras/dhcpserver/dhcpserver.c
        @@ -254,6 +254,9 @@ static void handle_dhcp_discover(struct dhcp_msg *dhcpmsg)
                 opt = add_dhcp_option_bytes(opt, DHCP_OPTION_DNS_SERVER, &state->dns, 4);
             }
         
        +    uint32_t expiry = htonl(DHCPSERVER_LEASE_TIME);
        +    opt = add_dhcp_option_bytes(opt, DHCP_OPTION_LEASE_TIME, &expiry, 4);
        +
             opt = add_dhcp_option_bytes(opt, DHCP_OPTION_END, NULL, 0);
         
             struct netbuf *netbuf = netbuf_new();
        
        From d0373af5c072a5c75e3e895cfb1ae5333036a0eb Mon Sep 17 00:00:00 2001
        From: Zaltora 
        Date: Tue, 26 Feb 2019 21:58:15 +0100
        Subject: [PATCH 331/349] LVGL: Open-source Embedded GUI Library (#669)
        
        * Add lvgl as main component
        
        * update dev5.2 lvgl branch
        
        * update lvgl 5.2 +update example + update configuration
        
        * Update submodule and example
        
        * update lv_drivers (fix) and example
        
        * fix problem when merge
        ---
         .gitmodules                         |   9 +
         examples/lvgl_ssd1306/Makefile      |   4 +
         examples/lvgl_ssd1306/lv_conf.h     | 316 +++++++++++++++
         examples/lvgl_ssd1306/lv_drv_conf.h | 578 ++++++++++++++++++++++++++++
         examples/lvgl_ssd1306/main.c        | 220 +++++++++++
         lvgl/component.mk                   |  37 ++
         lvgl/lv_conf.h                      |   3 +
         lvgl/lv_drivers                     |   1 +
         lvgl/lv_drv_conf.h                  |   3 +
         lvgl/lv_examples                    |   1 +
         lvgl/lvgl                           |   1 +
         11 files changed, 1173 insertions(+)
         create mode 100644 examples/lvgl_ssd1306/Makefile
         create mode 100644 examples/lvgl_ssd1306/lv_conf.h
         create mode 100644 examples/lvgl_ssd1306/lv_drv_conf.h
         create mode 100644 examples/lvgl_ssd1306/main.c
         create mode 100644 lvgl/component.mk
         create mode 100644 lvgl/lv_conf.h
         create mode 160000 lvgl/lv_drivers
         create mode 100644 lvgl/lv_drv_conf.h
         create mode 160000 lvgl/lv_examples
         create mode 160000 lvgl/lvgl
        
        diff --git a/.gitmodules b/.gitmodules
        index 2ebfb8a..5647056 100644
        --- a/.gitmodules
        +++ b/.gitmodules
        @@ -37,3 +37,12 @@
         [submodule "extras/multipwm"]
         	path = extras/multipwm
         	url = https://github.com/nochkin/multipwm
        +[submodule "lvgl/lvgl"]
        +	path = lvgl/lvgl
        +	url = https://github.com/littlevgl/lvgl.git
        +[submodule "lvgl/lv_drivers"]
        +	path = lvgl/lv_drivers
        +	url = https://github.com/littlevgl/lv_drivers.git
        +[submodule "lvgl/lv_examples"]
        +	path = lvgl/lv_examples
        +	url = https://github.com/littlevgl/lv_examples.git
        diff --git a/examples/lvgl_ssd1306/Makefile b/examples/lvgl_ssd1306/Makefile
        new file mode 100644
        index 0000000..b11bbb5
        --- /dev/null
        +++ b/examples/lvgl_ssd1306/Makefile
        @@ -0,0 +1,4 @@
        +PROGRAM = LVGL_SSD1306
        +EXTRA_COMPONENTS = lvgl extras/i2c
        +
        +include ../../common.mk
        diff --git a/examples/lvgl_ssd1306/lv_conf.h b/examples/lvgl_ssd1306/lv_conf.h
        new file mode 100644
        index 0000000..48235dd
        --- /dev/null
        +++ b/examples/lvgl_ssd1306/lv_conf.h
        @@ -0,0 +1,316 @@
        +/**
        + * @file lv_conf.h
        + *
        + */
        +#ifndef LV_CONF_H
        +#define LV_CONF_H
        +
        +//include complement to LV_TICK_CUSTOM_INCLUDE.
        +#include "FreeRTOS.h"
        +
        +/*===================
        +   Dynamic memory
        + *===================*/
        +
        +/* Memory size which will be used by the library
        + * to store the graphical objects and other data */
        +#define LV_MEM_CUSTOM      1                /*1: use custom malloc/free, 0: use the built-in lv_mem_alloc/lv_mem_free*/
        +#if LV_MEM_CUSTOM == 0
        +#define LV_MEM_SIZE    (32U * 1024U)        /*Size memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
        +#define LV_MEM_ATTR                         /*Complier prefix for big array declaration*/
        +#define LV_MEM_AUTO_DEFRAG  1               /*Automatically defrag on free*/
        +#else       /*LV_MEM_CUSTOM*/
        +#define LV_MEM_CUSTOM_INCLUDE    /*Header for the dynamic memory function*/
        +#define LV_MEM_CUSTOM_ALLOC   malloc       /*Wrapper to malloc*/
        +#define LV_MEM_CUSTOM_FREE    free         /*Wrapper to free*/
        +#endif     /*LV_MEM_CUSTOM*/
        +
        +/*===================
        +   Graphical settings
        + *===================*/
        +
        +/* Horizontal and vertical resolution of the library.*/
        +#define LV_HOR_RES          (128)
        +#define LV_VER_RES          (64)
        +#define LV_DPI              (72)
        +
        +/* Size of VDB (Virtual Display Buffer: the internal graphics buffer).
        + * Required for buffered drawing, opacity and anti-aliasing
        + * VDB makes the double buffering, you don't need to deal with it!
        + * Typical size: ~1/10 screen */
        +#define LV_VDB_SIZE         (LV_VER_RES * LV_HOR_RES / 2)  /*Size of VDB in pixel count (1/10 screen size is good for first)*/
        +#define LV_VDB_PX_BPP       1     /*Bit-per-pixel of VDB. Useful for monochrome or non-standard color format displays. (Set `disp_drv->vdb_wr` and `disp_drv->vdb_rd` too)*/
        +#define LV_VDB_ADR          0                 /*Place VDB to a specific address (e.g. in external RAM) (0: allocate automatically into RAM; LV_VDB_ADR_INV: to replace it later with `lv_vdb_set_adr()`)*/
        +
        +/* Use two Virtual Display buffers (VDB) parallelize rendering and flushing (optional)
        + * The flushing should use DMA to write the frame buffer in the background*/
        +#define LV_VDB_DOUBLE       0       /*1: Enable the use of 2 VDBs*/
        +#define LV_VDB2_ADR         0       /*Place VDB2 to a specific address (e.g. in external RAM) (0: allocate automatically into RAM; LV_VDB_ADR_INV: to replace it later with `lv_vdb_set_adr()`)*/
        +
        +/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
        +#define LV_ANTIALIAS        0       /*1: Enable anti-aliasing*/
        +
        +/*Screen refresh settings*/
        +#define LV_REFR_PERIOD      50    /*Screen refresh period in milliseconds*/
        +#define LV_INV_FIFO_SIZE    32    /*The average count of objects on a screen */
        +
        +/*=================
        +   Misc. setting
        + *=================*/
        +
        +/*Input device settings*/
        +#define LV_INDEV_READ_PERIOD            50                     /*Input device read period in milliseconds*/
        +#define LV_INDEV_POINT_MARKER           0                      /*Mark the pressed points  (required: USE_LV_REAL_DRAW = 1)*/
        +#define LV_INDEV_DRAG_LIMIT             10                     /*Drag threshold in pixels */
        +#define LV_INDEV_DRAG_THROW             20                     /*Drag throw slow-down in [%]. Greater value means faster slow-down */
        +#define LV_INDEV_LONG_PRESS_TIME        400                    /*Long press time in milliseconds*/
        +#define LV_INDEV_LONG_PRESS_REP_TIME    100                    /*Repeated trigger period in long press [ms] */
        +
        +/*Color settings*/
        +#define LV_COLOR_DEPTH     1                     /*Color depth: 1/8/16/32*/
        +#define LV_COLOR_16_SWAP   0                      /*Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)*/
        +#define LV_COLOR_SCREEN_TRANSP        0           /*1: Enable screen transparency. Useful for OSD or other overlapping GUIs. Requires ARGB8888 colors*/
        +#define LV_COLOR_TRANSP    LV_COLOR_LIME          /*Images pixels with this color will not be drawn (with chroma keying)*/
        +
        +/*Text settings*/
        +#define LV_TXT_UTF8             0                /*Enable UTF-8 coded Unicode character usage */
        +#define LV_TXT_BREAK_CHARS     " ,.;:-_"         /*Can break texts on these chars*/
        +
        +/*Graphics feature usage*/
        +#define USE_LV_ANIMATION        1               /*1: Enable all animations*/
        +#define USE_LV_SHADOW           0               /*1: Enable shadows*/
        +#define USE_LV_GROUP            1               /*1: Enable object groups (for keyboards)*/
        +#define USE_LV_GPU              0               /*1: Enable GPU interface*/
        +#define USE_LV_REAL_DRAW        1               /*1: Enable function which draw directly to the frame buffer instead of VDB (required if LV_VDB_SIZE = 0)*/
        +#define USE_LV_FILESYSTEM       1               /*1: Enable file system (required by images*/
        +
        +/*Compiler settings*/
        +#define LV_ATTRIBUTE_TICK_INC     		__attribute__((section(".iram1.text")))    /* Define a custom attribute to `lv_tick_inc` function */
        +#define LV_ATTRIBUTE_TASK_HANDLER  		__attribute__((section(".iram1.text")))    /* Define a custom attribute to `lv_task_handler` function */
        +#define LV_COMPILER_VLA_SUPPORTED            0  /* 1: Variable length array is supported*/
        +#define LV_COMPILER_NON_CONST_INIT_SUPPORTED 0  /* 1: Initialization with non constant values are supported */
        +
        +/*HAL settings*/
        +#define LV_TICK_CUSTOM     1                        /*1: use a custom tick source (removing the need to manually update the tick with `lv_tick_inc`) */
        +#if LV_TICK_CUSTOM == 1
        +#define LV_TICK_CUSTOM_INCLUDE "task.h"
        +#define LV_TICK_CUSTOM_SYS_TIME_EXPR (xTaskGetTickCount()*10)     /*Expression evaluating to current systime in ms*/
        +#endif     /*LV_TICK_CUSTOM*/
        +
        +
        +/*Log settings*/
        +#define USE_LV_LOG      0   /*Enable/disable the log module*/
        +#if USE_LV_LOG
        +/* How important log should be added:
        + * LV_LOG_LEVEL_TRACE       A lot of logs to give detailed information
        + * LV_LOG_LEVEL_INFO        Log important events
        + * LV_LOG_LEVEL_WARN        Log if something unwanted happened but didn't caused problem
        + * LV_LOG_LEVEL_ERROR       Only critical issue, when the system may fail
        + */
        +#define LV_LOG_LEVEL    LV_LOG_LEVEL_INFO
        +/* 1: Print the log with 'printf'; 0: user need to register a callback*/
        +
        +#define LV_LOG_PRINTF   0
        +#endif  /*USE_LV_LOG*/
        +
        +/*================
        + *  THEME USAGE
        + *================*/
        +#define LV_THEME_LIVE_UPDATE    0       /*1: Allow theme switching at run time. Uses 8..10 kB of RAM*/
        +
        +#define USE_LV_THEME_TEMPL      0       /*Just for test*/
        +#define USE_LV_THEME_DEFAULT    0       /*Built mainly from the built-in styles. Consumes very few RAM*/
        +#define USE_LV_THEME_ALIEN      0       /*Dark futuristic theme*/
        +#define USE_LV_THEME_NIGHT      0       /*Dark elegant theme*/
        +#define USE_LV_THEME_MONO       0       /*Mono color theme for monochrome displays*/
        +#define USE_LV_THEME_MATERIAL   0       /*Flat theme with bold colors and light shadows*/
        +#define USE_LV_THEME_ZEN        0       /*Peaceful, mainly light theme */
        +#define USE_LV_THEME_NEMO       0       /*Water-like theme based on the movie "Finding Nemo"*/
        +
        +/*==================
        + *    FONT USAGE
        + *===================*/
        +
        +/* More info about fonts: https://littlevgl.com/basics#fonts
        + * To enable a built-in font use 1,2,4 or 8 values
        + * which will determine the bit-per-pixel */
        +#define USE_LV_FONT_DEJAVU_10              1
        +#define USE_LV_FONT_DEJAVU_10_LATIN_SUP    0
        +#define USE_LV_FONT_DEJAVU_10_CYRILLIC     0
        +#define USE_LV_FONT_SYMBOL_10              1
        +
        +#define USE_LV_FONT_DEJAVU_20              1
        +#define USE_LV_FONT_DEJAVU_20_LATIN_SUP    0
        +#define USE_LV_FONT_DEJAVU_20_CYRILLIC     0
        +#define USE_LV_FONT_SYMBOL_20              1
        +
        +#define USE_LV_FONT_DEJAVU_30              1
        +#define USE_LV_FONT_DEJAVU_30_LATIN_SUP    0
        +#define USE_LV_FONT_DEJAVU_30_CYRILLIC     0
        +#define USE_LV_FONT_SYMBOL_30              1
        +
        +#define USE_LV_FONT_DEJAVU_40              0
        +#define USE_LV_FONT_DEJAVU_40_LATIN_SUP    0
        +#define USE_LV_FONT_DEJAVU_40_CYRILLIC     0
        +#define USE_LV_FONT_SYMBOL_40              0
        +
        +#define USE_LV_FONT_MONOSPACE_8            0
        +
        +/* Optionally declare your custom fonts here.
        + * You can use these fonts as default font too
        + * and they will be available globally. E.g.
        + * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
        + *                                LV_FONT_DECLARE(my_font_2) \
        + */
        +#define LV_FONT_CUSTOM_DECLARE
        +
        +#define LV_FONT_DEFAULT        &lv_font_dejavu_10     /*Always set a default font from the built-in fonts*/
        +
        +/*===================
        + *  LV_OBJ SETTINGS
        + *==================*/
        +#define LV_OBJ_FREE_NUM_TYPE    uint32_t    /*Type of free number attribute (comment out disable free number)*/
        +#define LV_OBJ_FREE_PTR         1           /*Enable the free pointer attribute*/
        +
        +/*==================
        + *  LV OBJ X USAGE
        + *================*/
        +/*
        + * Documentation of the object types: https://littlevgl.com/object-types
        + */
        +
        +/*****************
        + * Simple object
        + *****************/
        +
        +/*Label (dependencies: -*/
        +#define USE_LV_LABEL    1
        +#if USE_LV_LABEL != 0
        +#define LV_LABEL_SCROLL_SPEED       25     /*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_SCROLL/ROLL' mode*/
        +#endif
        +
        +/*Image (dependencies: lv_label*/
        +#define USE_LV_IMG      1
        +#if USE_LV_IMG != 0
        +#define LV_IMG_CF_INDEXED   1       /*Enable indexed (palette) images*/
        +#define LV_IMG_CF_ALPHA     1       /*Enable alpha indexed images*/
        +#endif
        +
        +/*Line (dependencies: -*/
        +#define USE_LV_LINE     1
        +
        +/*Arc (dependencies: -)*/
        +#define USE_LV_ARC      1
        +
        +/*******************
        + * Container objects
        + *******************/
        +
        +/*Container (dependencies: -*/
        +#define USE_LV_CONT     1
        +
        +/*Page (dependencies: lv_cont)*/
        +#define USE_LV_PAGE     1
        +
        +/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
        +#define USE_LV_WIN      1
        +
        +/*Tab (dependencies: lv_page, lv_btnm)*/
        +#define USE_LV_TABVIEW      1
        +#if USE_LV_TABVIEW != 0
        +#define LV_TABVIEW_ANIM_TIME    300     /*Time of slide animation [ms] (0: no animation)*/
        +#endif
        +
        +/*************************
        + * Data visualizer objects
        + *************************/
        +
        +/*Bar (dependencies: -)*/
        +#define USE_LV_BAR      1
        +
        +/*Line meter (dependencies: *;)*/
        +#define USE_LV_LMETER   1
        +
        +/*Gauge (dependencies:bar, lmeter)*/
        +#define USE_LV_GAUGE    1
        +
        +/*Chart (dependencies: -)*/
        +#define USE_LV_CHART    1
        +
        +/*LED (dependencies: -)*/
        +#define USE_LV_LED      1
        +
        +/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
        +#define USE_LV_MBOX     1
        +
        +/*Text area (dependencies: lv_label, lv_page)*/
        +#define USE_LV_TA       1
        +#if USE_LV_TA != 0
        +#define LV_TA_CURSOR_BLINK_TIME 400     /*ms*/
        +#define LV_TA_PWD_SHOW_TIME     1500    /*ms*/
        +#endif
        +
        +/*Calendar (dependencies: -)*/
        +#define USE_LV_CALENDAR 1
        +
        +/*Preload (dependencies: arc)*/
        +#define USE_LV_PRELOAD      1
        +#if USE_LV_PRELOAD != 0
        +#define LV_PRELOAD_DEF_ARC_LENGTH   60      /*[deg]*/
        +#define LV_PRELOAD_DEF_SPIN_TIME    1000    /*[ms]*/
        +#endif
        +
        +/*************************
        + * User input objects
        + *************************/
        +
        +/*Button (dependencies: lv_cont*/
        +#define USE_LV_BTN      1
        +#if USE_LV_BTN != 0
        +#define LV_BTN_INK_EFFECT   1       /*Enable button-state animations - draw a circle on click (dependencies: USE_LV_ANIMATION)*/
        +#endif
        +
        +/*Image Button (dependencies: lv_btn*/
        +#define USE_LV_IMGBTN   1
        +
        +/*Button matrix (dependencies: -)*/
        +#define USE_LV_BTNM     1
        +
        +/*Keyboard (dependencies: lv_btnm)*/
        +#define USE_LV_KB       1
        +
        +/*Check box (dependencies: lv_btn, lv_label)*/
        +#define USE_LV_CB       1
        +
        +/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
        +#define USE_LV_LIST     1
        +#if USE_LV_LIST != 0
        +#define LV_LIST_FOCUS_TIME  100 /*Default animation time of focusing to a list element [ms] (0: no animation)  */
        +#endif
        +
        +/*Drop down list (dependencies: lv_page, lv_label)*/
        +#define USE_LV_DDLIST    1
        +#if USE_LV_DDLIST != 0
        +#define LV_DDLIST_ANIM_TIME     200     /*Open and close default animation time [ms] (0: no animation)*/
        +#endif
        +
        +/*Roller (dependencies: lv_ddlist)*/
        +#define USE_LV_ROLLER    1
        +#if USE_LV_ROLLER != 0
        +#define LV_ROLLER_ANIM_TIME     200     /*Focus animation time [ms] (0: no animation)*/
        +#endif
        +
        +/*Slider (dependencies: lv_bar)*/
        +#define USE_LV_SLIDER    1
        +
        +/*Switch (dependencies: lv_slider)*/
        +#define USE_LV_SW       1
        +
        +/*************************
        + * Non-user section
        + *************************/
        +#ifdef _MSC_VER                               /* Disable warnings for Visual Studio*/
        +# define _CRT_SECURE_NO_WARNINGS
        +#endif
        +
        +#endif /*LV_CONF_H*/
        diff --git a/examples/lvgl_ssd1306/lv_drv_conf.h b/examples/lvgl_ssd1306/lv_drv_conf.h
        new file mode 100644
        index 0000000..00788c7
        --- /dev/null
        +++ b/examples/lvgl_ssd1306/lv_drv_conf.h
        @@ -0,0 +1,578 @@
        +/**
        + * @file lv_drv_conf.h
        + *
        + */
        +
        +#if 1 /*Remove this to enable the content*/
        +
        +#ifndef LV_DRV_CONF_H
        +#define LV_DRV_CONF_H
        +
        +#include "lv_conf.h"
        +
        +/*********************
        + *      INCLUDES
        + *********************/
        +/* Add specific sdk include here */
        +#include 
        +#include 
        +#include 
        +#include 
        +
        +#include 
        +#include 
        +#include 
        +/*********************
        + *       DEFINES
        + *********************/
        +/* Disable with 0 if driver don't use an specific api */
        +#define LV_DRIVER_ENABLE_COMMON 1
        +#define LV_DRIVER_ENABLE_DELAY 1
        +#define LV_DRIVER_ENABLE_I2C 1
        +#define LV_DRIVER_ENABLE_SPI 1
        +#define LV_DRIVER_ENABLE_PAR 1
        +
        +/* use this macro if you want ignore a gpio write/read. e.g: spi.cs = LV_DRIVER_NOPIN */
        +#define LV_DRIVER_NOPIN (0xFF)
        +
        +/* use this macro to add specific attribute to function call into an interupt routines */
        +#define INTERUPT_ATTRIBUTE __attribute__((section(".iram1.text")))
        +
        +/**********************
        + *      TYPEDEFS
        + **********************/
        +/* You can use a pointer handler or just a id number to reder to a device
        + * e.g: typedef const uint8_t lv_gpio_handle_t if you need just a bus id
        + * You can use device descriptor from your sdk too.
        + */
        +//typedef const void* lv_gpio_handle_t ;
        +//typedef const void* lv_i2c_handle_t ;
        +//typedef const void* lv_spi_handle_t ;
        +typedef const void* lv_par_handle_t ;
        +typedef const void* lv_uart_handle_t ;
        +
        +typedef struct {
        +    uint8_t bus;
        +    uint8_t cs;
        +    uint8_t dc;
        +    spi_settings_t *s; //XXX:experimental for multi spi device
        +    SemaphoreHandle_t* mutex; //XXX:experimental for multi spi device
        +} lv_spi_dev_t, *lv_spi_handle_t;
        +
        +typedef const i2c_dev_t *lv_i2c_handle_t ;
        +typedef uint8_t lv_gpio_handle_t ;
        +
        +/*********************
        + * 	HAL INTERFACE
        + *********************/
        +/*
        + * All used peripherals must be initialized in user application, library only
        + * manipulate them.
        + * You can use a device descriptor from your SDK or  do your own in this file too.
        + * example:
        + * typedef struct lv_spi_dev_t { .... };
        + */
        +
        +/*------------
        + *  Delay
        + *------------*/
        +#if LV_DRIVER_ENABLE_DELAY
        +
        +/**
        + * Delay the given number of microseconds
        + * @param us Time to wait in us
        + */
        +static inline void lv_delay_us(const uint32_t us)
        +{
        +   	sdk_os_delay_us(us);
        +}
        +
        +/**
        + * Delay the given number of milliseconds
        + * @param ms Time to wait in ms
        + */
        +static inline void lv_delay_ms(const uint32_t ms)
        +{
        +    if (ms/portTICK_PERIOD_MS) //if we wait more than a tick, use vTaskDelay
        +    {
        +        vTaskDelay(((ms-1)/portTICK_PERIOD_MS)+1); //Round superior
        +        return;
        +    }
        +	for (uint32_t x = 0 ; x < ms ; x++)
        +	{
        +		sdk_os_delay_us(1000);
        +	}
        +}
        +
        +/**
        + * Return system time
        + * @return system time (ms)
        + */
        +static inline uint32_t lv_get_ms()
        +{
        +    return xTaskGetTickCount()*portTICK_PERIOD_MS;
        +}
        +
        +#endif
        +/*------------
        + *  Common
        + *------------*/
        +#if LV_DRIVER_ENABLE_COMMON
        +
        +/**
        + * Change a pin level
        + * @param pin gpio Number
        + * @param val Level to set
        + */
        +static inline void lv_gpio_write(lv_gpio_handle_t gpio, const uint8_t val)
        +{
        +    gpio_write(gpio, val);
        +}
        +
        +/**
        + * Read current level gpio
        + * @param pin gpio to read
        + * @return gpio value
        + */
        +static inline uint8_t lv_gpio_read(lv_gpio_handle_t gpio)
        +{
        +	return gpio_read(gpio);
        +}
        +
        +#endif
        +
        +/*---------
        + *  UART
        + *---------*/
        +/**
        + * Do a uart write transmission.
        + * @param uart_dev Pointer to uart device
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to send
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_uart_write(lv_uart_handle_t uart_dev, const void* data_out, uint16_t datalen)
        +{
        +    return -1;
        +}
        +
        +/**
        + * Do a uart read transmission
        + * @param uart_dev Pointer to uart device
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to read
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_uart_read(lv_uart_handle_t uart_dev, void* data_in, uint16_t datalen)
        +{
        +    return -1;
        +}
        +
        +/*---------
        + *  I2C
        + *---------*/
        +#if LV_DRIVER_ENABLE_I2C
        +
        +/**
        + * Do a I2C write transmission on 8 bits register device.
        + * @param i2c_dev Pointer to i2c device
        + * @param reg Pointer to register address to send if non-null
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to send
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_i2c_write(lv_i2c_handle_t i2c_dev, const uint8_t* reg, const void* data_out, uint16_t datalen)
        +{
        +    return i2c_slave_write(i2c_dev->bus, i2c_dev->addr, reg, (uint8_t*)data_out, datalen);
        +}
        +
        +/**
        + * Do a I2C read transmission on 8 bits register device.
        + * @param i2c_dev Pointer to i2c device
        + * @param reg Pointer to register address to send if non-null
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to send
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_i2c_read(lv_i2c_handle_t i2c_dev, const uint8_t* reg, void* data_in, uint16_t datalen)
        +{
        +    return i2c_slave_read(i2c_dev->bus, i2c_dev->addr, reg, (uint8_t*)data_in, datalen);
        +}
        +
        +/**
        + * Do a I2C write transmissionon 16 bits register device
        + * @param i2c_dev Pointer to i2c device
        + * @param reg Pointer to register address to send if non-null
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to send
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_i2c_write16(lv_i2c_handle_t i2c_dev, const uint16_t* reg, const void* data_out, uint16_t datalen)
        +{
        +    return -1;
        +}
        +
        +/**
        + * Do a I2C write transmissionon 16 bits register device.
        + * @param i2c_dev Pointer to i2c device
        + * @param reg Pointer to register address to send if non-null
        + * @param data_out Pointer to data buffer to send if non-null
        + * @param datalen Number of data byte to send
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_i2c_read16(lv_i2c_handle_t i2c_dev, const uint16_t* reg, void* data_in, uint16_t datalen)
        +{
        +    return -1;
        +}
        +
        +#endif
        +/*---------
        + *  SPI
        + *---------*/
        +#if LV_DRIVER_ENABLE_SPI
        +
        +typedef enum {
        +  LV_SPI_COMMAND,
        +  LV_SPI_ADDRESS,
        +  LV_SPI_DUMMY,
        +} lv_spi_reg_t;
        +
        +/**
        + * Control SPI cs pin.
        + * @param spi_dev Pointer to spi device
        + * @param lvl Gpio Level
        + */
        +static inline void lv_spi_wr_cs(lv_spi_handle_t spi_dev, uint8_t lvl)
        +{
        +    gpio_write(spi_dev->cs, lvl);
        +}
        +
        +/**
        + * Control SPI dc pin.
        + * @param spi_dev Pointer to spi device
        + * @param lvl Gpio Level
        + */
        +static inline void lv_spi_wr_dc(lv_spi_handle_t spi_dev, uint8_t lvl)
        +{
        +    gpio_write(spi_dev->dc, lvl);
        +}
        +
        +/**
        + * Do a SPI transaction .
        + * @param spi_dev Pointer to spi device
        + * @param data_in Receive buffer. If NULL, received data will be lost.
        + * @param data_out Data to send buffer. If NULL, it will only receive data.
        + * @param len Buffer size in words
        + * @param word_size Size of the word in byte
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_spi_transaction(lv_spi_handle_t spi_dev, void* data_in, const void* data_out, uint16_t len, uint8_t word_size)
        +{
        +    spi_transfer(spi_dev->bus, data_out, data_in, len, word_size);
        +	return 0;
        +}
        +
        +/**
        + * Do a SPI repeat send.
        + * @param spi_dev Pointer to spi device
        + * @param template Pointer toTemplate to send throw spi.
        + * @param repeats Copy number
        + * @param template_size Size of the template in byte
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_spi_repeat(lv_spi_handle_t spi_dev, const void* template, uint32_t repeats, uint8_t template_size)
        +{
        +	uint32_t data = 0;
        +	if(!template)
        +	{
        +		template = (void*)&data ;
        +	}
        +	switch (template_size)
        +	{
        +	case 1:
        +		spi_repeat_send_8(spi_dev->bus,*(uint8_t*)template,repeats);
        +		break;
        +	case 2:
        +        spi_repeat_send_16(spi_dev->bus,*(uint16_t*)template,repeats);
        +		break;
        +	case 4:
        +		spi_repeat_send_32(spi_dev->bus,*(uint32_t*)template,repeats);
        +		break;
        +	default:
        +		return -1;
        +		break;
        +	}
        +	return 0;
        +}
        +
        +/**
        + * Set command to send for spi transaction
        + * @param spi_dev Pointer to spi device
        + * @param reg SPI register to set (dummy/command/address)
        + * @param value Value
        + * @param bits Bits number
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_spi_set_preemble(lv_spi_handle_t spi_dev, lv_spi_reg_t reg, uint32_t value, uint8_t bits)
        +{
        +    switch(reg) {
        +        case LV_SPI_COMMAND:
        +            spi_set_command(spi_dev->bus, bits, value);
        +            break;
        +        case LV_SPI_ADDRESS:
        +            spi_set_address(spi_dev->bus, bits, value);
        +            break;
        +        case LV_SPI_DUMMY:
        +            spi_set_dummy_bits(spi_dev->bus,  bits, false);
        +            break;
        +        default:
        +            return -1;
        +            break;
        +    }
        +	return 0;
        +}
        +
        +/**
        + * Clear spi bus command
        + * @param spi_dev Pointer to spi device
        + * @param reg SPI register to clear (dummy/command/address)
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_spi_clr_preemble(lv_spi_handle_t spi_dev, lv_spi_reg_t reg)
        +{
        +    switch(reg) {
        +        case LV_SPI_COMMAND:
        +            spi_clear_command(spi_dev->bus);
        +            break;
        +        case LV_SPI_ADDRESS:
        +            spi_clear_address(spi_dev->bus);
        +            break;
        +        case LV_SPI_DUMMY:
        +            spi_clear_dummy(spi_dev->bus);
        +            break;
        +        default:
        +            return -1;
        +            break;
        +    }
        +	return 0;
        +}
        +
        +#endif
        +/*------------------
        + *  Parallel port
        + *-----------------*/
        +#if LV_DRIVER_ENABLE_PAR
        +/**
        + * Control Parallel cs pin.
        + * @param par_dev Pointer to parallel device
        + * @param lvl Gpio Level
        + */
        +static inline void lv_par_wr_cs(lv_par_handle_t par_dev, uint8_t lvl)
        +{
        +    return;
        +}
        +
        +/**
        + * Control Parallel dc pin.
        + * @param par_dev Pointer to parallel device
        + * @param lvl Gpio Level
        + */
        +static inline void lv_par_wr_dc(lv_par_handle_t par_dev, uint8_t lvl)
        +{
        +    return;
        +}
        +
        +/**
        + * Do a Parallel port write.
        + * @param par_dev Pointer to parallel port device
        + * @param data_out Pointer to data buffer to send
        + * @param len Buffer size in words
        + * @param word_size Size of the word in byte
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_par_write(lv_par_handle_t par_dev, const void* data_out, uint16_t len, uint8_t word_size)
        +{
        +    return -1;
        +}
        +
        +/**
        + * Do a Parallel port read.
        + * @param par_dev Pointer to parallel port device
        + * @param data_in Pointer to data buffer to read
        + * @param len Buffer size in words
        + * @param word_size Size of the word in byte
        + * @return Non-Zero if error occured
        + */
        +static inline int lv_par_read(lv_par_handle_t par_dev, void* data_in, uint16_t len, uint8_t word_size)
        +{
        +  return -1;
        +}
        +
        +#endif
        +/*********************
        + *  DISPLAY DRIVERS
        + *********************/
        +
        +/*-------------------
        + *  Monitor of PC
        + *-------------------*/
        +#define USE_MONITOR         0
        +#if USE_MONITOR
        +#define MONITOR_HOR_RES     LV_HOR_RES
        +#define MONITOR_VER_RES     LV_HOR_VER
        +#endif
        +
        +/*----------------
        + *    SSD1963
        + *--------------*/
        +#define USE_SSD1963         0
        +#if USE_SSD1963
        +#define SSD1963_HOR_RES     LV_HOR_RES
        +#define SSD1963_VER_RES     LV_VER_RES
        +#define SSD1963_HDP         479
        +#define SSD1963_HT          531
        +#define SSD1963_HPS         43
        +#define SSD1963_LPS         8
        +#define SSD1963_HPW         10
        +#define SSD1963_VDP         271
        +#define SSD1963_VT          288
        +#define SSD1963_VPS         12
        +#define SSD1963_FPS         4
        +#define SSD1963_VPW         10
        +#define SSD1963_HS_NEG      0   /*Negative hsync*/
        +#define SSD1963_VS_NEG      0   /*Negative vsync*/
        +#define SSD1963_ORI         0   /*0, 90, 180, 270*/
        +#define SSD1963_COLOR_DEPTH 16
        +#endif
        +
        +/*----------------
        + *    ILI9341
        + *--------------*/
        +#define USE_ILI9341        0
        +#if USE_ILI9341
        +#define ILI9341_DEBUG 0
        +#define ILI9341_ERR_CHECK 1
        +#define ILI9341_PAR_SUPPORT 1
        +#define ILI9341_SPI4WIRE_SUPPORT 1
        +#define ILI9341_SPI3WIRE_SUPPORT 1
        +#define ILI9341_EXTC_SUPPORT (0)
        +#define ILI9341_COLOR      (65) //Color Mode : 65K or 262K
        +#define ILI9341_MAX_SAMPLE (32) //Buffer spi is 64, so select 32 for 2byte per pixel
        +#define ILI9341_SERIAL_BYTESWAP   (0)  // { 0 : None, 1: CPU Swap, 2: ILI9341 swap }
        +#endif
        +
        +/*----------------
        + *    SSD1306
        + *--------------*/
        +#define USE_SSD1306        1
        +#if USE_SSD1306
        +#define SSD1306_HOR_RES     LV_HOR_RES
        +#define SSD1306_VER_RES     LV_VER_RES
        +#define SSD1306_DEBUG    0
        +#define SSD1306_ERR_CHECK 0
        +#define SSD1306_I2C_SUPPORT  1
        +#define SSD1306_SPI_4_WIRE_SUPPORT 1
        +#define SSD1306_SPI_3_WIRE_SUPPORT 1
        +#endif
        +
        +/*----------------
        + *    R61581
        + *--------------*/
        +#define USE_R61581          0
        +#if USE_R61581 != 0
        +#define R61581_HOR_RES      LV_HOR_RES
        +#define R61581_VER_RES      LV_VER_RES
        +#define R61581_HDP          479
        +#define R61581_HT           531
        +#define R61581_HPS          43
        +#define R61581_LPS          8
        +#define R61581_HPW          10
        +#define R61581_VDP          271
        +#define R61581_VT           319
        +#define R61581_VPS          12
        +#define R61581_FPS          4
        +#define R61581_VPW          10
        +#define R61581_HS_NEG       0       /*Negative hsync*/
        +#define R61581_VS_NEG       0       /*Negative vsync*/
        +#define R61581_ORI          180     /*0, 90, 180, 270*/
        +#define R61581_LV_COLOR_DEPTH 16
        +#endif
        +
        +/*------------------------------
        + *  ST7565 (Monochrome, low res.)
        + *-----------------------------*/
        +#define USE_ST7565          0
        +#if USE_ST7565 != 0
        +/*No settings*/
        +#endif  /*USE_ST7565*/
        +
        +/*-----------------------------------------
        + *  Linux frame buffer device (/dev/fbx)
        + *-----------------------------------------*/
        +#define USE_FBDEV           0
        +#if USE_FBDEV != 0
        +#define FBDEV_PATH          "/dev/fb0"
        +#endif
        +
        +/*====================
        + * Input devices
        + *===================*/
        +
        +/*--------------
        + *    AR1000
        + *--------------*/
        +#define USE_AR10XX (1)
        +#if (USE_AR10XX != 0)
        +#define AR10XX_SPI_SUPPORT (1)
        +#define AR10XX_I2C_SUPPORT (1)
        +#define AR10XX_UART_SUPPORT (0)
        +#define AR10XX_DEBUG (1)
        +#define AR10XX_ERR_CHECK (0)
        +#define AR10XX_VERIFY_ANSWER (1)
        +#define AR10XX_USE_IRQ (0)
        +#define AR10XX_COMPONENT (21) // Version of XX (10, 11, 20 , 21)
        +#endif
        +
        +/*--------------
        + *    XPT2046
        + *--------------*/
        +#define USE_XPT2046         0
        +#if USE_XPT2046 != 0
        +#define XPT2046_HOR_RES     480
        +#define XPT2046_VER_RES     320
        +#define XPT2046_X_MIN       200
        +#define XPT2046_Y_MIN       200
        +#define XPT2046_X_MAX       3800
        +#define XPT2046_Y_MAX       3800
        +#define XPT2046_AVG         4
        +#define XPT2046_INV         0
        +#endif
        +
        +/*-----------------
        + *    FT5406EE8
        + *-----------------*/
        +#define USE_FT5406EE8       0
        +#if USE_FT5406EE8
        +#define FT5406EE8_I2C_ADR   0x38                  /*7 bit address*/
        +#endif
        +
        +/*-------------------------------
        + *    Mouse or touchpad on PC
        + *------------------------------*/
        +#define USE_MOUSE           0
        +#if USE_MOUSE
        +/*No settings*/
        +#endif
        +
        +
        +/*-------------------------------
        + *   Keyboard of a PC
        + *------------------------------*/
        +#define USE_KEYBOARD        0
        +#if USE_KEYBOARD
        +/*No settings*/
        +#endif
        +
        +#endif  /*LV_DRV_CONF_H*/
        +
        +#endif /*Remove this to enable the content*/
        diff --git a/examples/lvgl_ssd1306/main.c b/examples/lvgl_ssd1306/main.c
        new file mode 100644
        index 0000000..8ebd57e
        --- /dev/null
        +++ b/examples/lvgl_ssd1306/main.c
        @@ -0,0 +1,220 @@
        +#include 
        +#include 
        +#include 
        +#include 
        +#include 
        +#include 
        +#include 
        +#include "lv_conf.h"
        +#include "lvgl/lvgl.h"
        +#include "lv_drivers/display/SSD1306.h"
        +
        +#define I2C_CONNECTION false
        +#define TICK_HANDLER   false
        +#define OVERCLOCK      false
        +
        +#define TICK_INC_MS (10)
        +#define RST_PIN (LV_DRIVER_NOPIN)
        +#define SECOND (1000 / portTICK_PERIOD_MS)
        +
        +#if (I2C_CONNECTION)
        +#include 
        +#endif
        +
        +#if (I2C_CONNECTION)
        +#define PROTOCOL SSD1306_PROTO_I2C
        +#define ADDR     SSD1306_I2C_ADDR_0
        +#define I2C_BUS  0
        +#define SCL_PIN  5
        +#define SDA_PIN  4
        +
        +const static i2c_dev_t i2c_dev =
        +{
        +    .bus = I2C_BUS,
        +    .addr = ADDR
        +};
        +#else
        +#define PROTOCOL SSD1306_PROTO_SPI3
        +#define SPI_BUS  1
        +#define CS_PIN   15
        +#define DC_PIN   4
        +/*Delare bus descriptor */
        +const static lv_spi_dev_t spi_dev =
        +{
        +    .bus = SPI_BUS,
        +    .cs = CS_PIN,
        +    .dc = DC_PIN,
        +};
        +#endif
        +
        +/* Declare device descriptor */
        +static ssd1306_t dev;
        +
        +TimerHandle_t fps_timer_handle = NULL; // Timer handler
        +TimerHandle_t font_timer_handle = NULL;
        +TimerHandle_t lvgl_timer_handle = NULL;
        +
        +static lv_style_t style;
        +static lv_obj_t * label;
        +
        +static void ssd1306_task(void *pvParameters)
        +{
        +    printf("%s: Started user interface task\n", __FUNCTION__);
        +    vTaskDelay(SECOND);
        +    ssd1306_set_whole_display_lighting(&dev, false);
        +
        +    //Set a style for the obj
        +    lv_style_copy(&style, &lv_style_transp);
        +    style.text.font = &lv_font_dejavu_10;   /*Unicode and symbol fonts already assigned by the library*/
        +    style.text.color.full = 1;
        +    style.text.opa = 255;
        +
        +    style.body.main_color.full = 0;
        +    style.body.grad_color.full = 0;
        +    style.body.shadow.color.full = 0;
        +    style.body.border.color.full = 0;
        +    style.body.empty = 1;
        +
        +    style.image.color.full = 1;
        +    style.image.intense = 255;
        +    style.image.opa = 255;
        +
        +    style.line.color.full = 1;
        +    style.line.opa = 255;
        +    style.line.width = 1;
        +    style.line.rounded = false;
        +
        +    //Create main screen obj
        +    lv_obj_t * scr = lv_obj_create(NULL, NULL);
        +    lv_scr_load(scr);
        +    lv_obj_set_style(scr, &style);
        +
        +    //Create a simple label
        +    label = lv_label_create(lv_scr_act(), NULL);
        +    lv_obj_set_style(label, &style);
        +
        +    lv_obj_align(label, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 0, 0);
        +    lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
        +    lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
        +    lv_label_set_text(label, "lvgl work with esp-open-rtos");
        +    lv_obj_set_width(label, LV_HOR_RES);
        +
        +    while (1) {
        +        /*draw system call */
        +        lv_task_handler();
        +        vTaskDelay(1);
        +    }
        +}
        +
        +
        +void font_timer(TimerHandle_t h)
        +{
        +    static uint8_t index = 0;
        +    if (index >= 2)
        +        index=0;
        +    else
        +        index++;
        +
        +    switch (index) {
        +    case 0:
        +        style.text.font = &lv_font_dejavu_10;
        +        break;
        +    case 1:
        +        style.text.font = &lv_font_dejavu_20;
        +        break;
        +    case 2:
        +        style.text.font = &lv_font_dejavu_30;
        +        break;
        +    default:
        +        break;
        +    }
        +    lv_label_set_style(label, &style);
        +    printf("Selected builtin font %d\n", index);
        +}
        +
        +
        +#if (!LV_TICK_CUSTOM)
        +#if (TICK_HANDLER)
        +void IRAM vApplicationTickHook(void) {
        +    lv_tick_inc(portTICK_PERIOD_MS);
        +}
        +#else
        +void lvgl_timer(TimerHandle_t xTimerHandle)
        +{
        +    lv_tick_inc(TICK_INC_MS);
        +}
        +#endif
        +#endif
        +
        +void user_init(void)
        +{
        +#if (OVERCLOCK)
        +    sdk_system_update_cpu_freq(160);
        +#endif
        +
        +    // Setup HW
        +    uart_set_baud(0, 115200);
        +    printf("SDK version:%s\n", sdk_system_get_sdk_version());
        +
        +#if (I2C_CONNECTION)
        +    i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K);
        +#else
        +#if (CS_PIN == 15)
        +    spi_init(SPI_BUS, SPI_MODE0, SPI_FREQ_DIV_8M, true, SPI_LITTLE_ENDIAN, false);
        +#else
        +    spi_init(SPI_BUS, SPI_MODE0, SPI_FREQ_DIV_8M, true, SPI_LITTLE_ENDIAN, true);
        +    gpio_enable(CS_PIN, GPIO_OUTPUT);
        +#endif
        +#endif
        +#if (RST_PIN != LV_DRIVER_NOPIN)
        +    gpio_enable(RST_PIN, GPIO_OUTPUT);
        +#endif
        +
        +    /*Gui initialization*/
        +    lv_init();
        +
        +    /*Screen initialization*/
        +#if (I2C_CONNECTION)
        +    dev.i2c_dev = (lv_i2c_handle_t)&i2c_dev;
        +#else
        +    dev.spi_dev = (lv_spi_handle_t)&spi_dev;
        +#endif
        +    dev.protocol = PROTOCOL ; //SSD1306_PROTO_SPI3;
        +    dev.screen   = SH1106_SCREEN; //SSD1306_SCREEN,  SH1106_SCREEN
        +    dev.width    = LV_HOR_RES;
        +    dev.height   = LV_VER_RES;
        +    dev.rst_pin  = RST_PIN; //No RST PIN USED
        +
        +    while (ssd1306_init(&dev) != 0) {
        +        printf("%s: failed to init SSD1306 lcd\n", __func__);
        +        vTaskDelay(SECOND);
        +    }
        +
        +    ssd1306_set_whole_display_lighting(&dev, true);
        +
        +    /*inverse screen (180°) */
        +    ssd1306_set_scan_direction_fwd(&dev,true);
        +    ssd1306_set_segment_remapping_enabled(&dev, false);
        +    vTaskDelay(SECOND);
        +
        +    /*lvgl screen registration */
        +    lv_disp_drv_t disp_drv;
        +    lv_disp_drv_init(&disp_drv);
        +    /*Set up the functions to access to your display*/
        +    disp_drv.disp_flush = ssd1306_flush; /*Used in buffered mode (LV_VDB_SIZE != 0  in lv_conf.h)*/
        +    disp_drv.disp_fill = NULL;//ex_disp_fill;   /*Used in unbuffered mode (LV_VDB_SIZE == 0  in lv_conf.h)*/
        +    disp_drv.disp_map = NULL;//ex_disp_map;    /*Used in unbuffered mode (LV_VDB_SIZE == 0  in lv_conf.h)*/
        +    disp_drv.vdb_wr = ssd1306_vdb_wr;
        +    lv_disp_drv_register(&disp_drv);
        +
        +    /* Create user interface task */
        +    xTaskCreate(ssd1306_task, "ssd1306_task", 512, NULL, 2, NULL);
        +
        +    font_timer_handle = xTimerCreate("font_timer", 5 * SECOND, pdTRUE, NULL, font_timer);
        +    xTimerStart(font_timer_handle, 0);
        +
        +#if (!TICK_HANDLER && !LV_TICK_CUSTOM)
        +    lvgl_timer_handle = xTimerCreate("lvgl_timer", TICK_INC_MS/portTICK_PERIOD_MS, pdTRUE, NULL, lvgl_timer);
        +    xTimerStart(lvgl_timer_handle, 0);
        +#endif
        +}
        diff --git a/lvgl/component.mk b/lvgl/component.mk
        new file mode 100644
        index 0000000..2c294e4
        --- /dev/null
        +++ b/lvgl/component.mk
        @@ -0,0 +1,37 @@
        +# Component makefile for lvgl/lvgl
        +
        +# expected anyone using this driver includes it as 'lvgl/lvgl.h'
        +INC_DIRS += $(lvgl_ROOT)
        +
        +# args for passing into compile rule generation
        +lvgl_SRC_DIR = $(lvgl_ROOT) \
        +        $(lvgl_ROOT)/lvgl \
        +	$(lvgl_ROOT)/lvgl/lv_core \
        +	$(lvgl_ROOT)/lvgl/lv_draw \
        +	$(lvgl_ROOT)/lvgl/lv_hal \
        +	$(lvgl_ROOT)/lvgl/lv_misc \
        +	$(lvgl_ROOT)/lvgl/lv_fonts \
        +	$(lvgl_ROOT)/lvgl/lv_objx \
        +	$(lvgl_ROOT)/lvgl/lv_themes \
        +	$(lvgl_ROOT)/lv_drivers/display \
        +	$(lvgl_ROOT)/lv_drivers/indev
        +
        +LVGL_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
        +
        +#EXTRA_CFLAGS += -DLV_CONF_INCLUDE_SIMPLE=1
        +
        +#include $(LVGL_DIR)defaults.mk
        +#
        +#fonts_CFLAGS = $(CFLAGS) \
        +	-DLV_HOR_RES=$(LV_HOR_RES) \
        +	-DLV_VER_RES=$(LV_VER_RES) \
        +	-DLV_DPI=$(LV_DPI) \
        +	-DLV_VDB_SIZE=$(LV_VDB_SIZE) \
        +	-DLV_VDB_ADR=$(LV_VDB_ADR) \
        +	-DLV_VDB_DOUBLE=$(LV_VDB_DOUBLE) \
        +	-DLV_VDB2_ADR=$(LV_VDB2_ADR) \
        +	-DLV_ANTIALIAS=$(LV_ANTIALIAS) \
        +	-DLV_FONT_ANTIALIAS=$(LV_FONT_ANTIALIAS) \
        +	-DLV_REFR_PERIOD=$(LV_REFR_PERIOD)
        +
        +$(eval $(call component_compile_rules,lvgl))
        diff --git a/lvgl/lv_conf.h b/lvgl/lv_conf.h
        new file mode 100644
        index 0000000..180c1c9
        --- /dev/null
        +++ b/lvgl/lv_conf.h
        @@ -0,0 +1,3 @@
        +
        +/* Use the defaults for everything else */
        +#include_next 
        diff --git a/lvgl/lv_drivers b/lvgl/lv_drivers
        new file mode 160000
        index 0000000..8fe0804
        --- /dev/null
        +++ b/lvgl/lv_drivers
        @@ -0,0 +1 @@
        +Subproject commit 8fe0804ceb875193a37106a2e25d07c106650a86
        diff --git a/lvgl/lv_drv_conf.h b/lvgl/lv_drv_conf.h
        new file mode 100644
        index 0000000..b69f377
        --- /dev/null
        +++ b/lvgl/lv_drv_conf.h
        @@ -0,0 +1,3 @@
        +
        +/* Use the defaults for everything else */
        +#include_next 
        diff --git a/lvgl/lv_examples b/lvgl/lv_examples
        new file mode 160000
        index 0000000..c3afbc9
        --- /dev/null
        +++ b/lvgl/lv_examples
        @@ -0,0 +1 @@
        +Subproject commit c3afbc9819f5492a7fe7e7e18a37df95fb60f449
        diff --git a/lvgl/lvgl b/lvgl/lvgl
        new file mode 160000
        index 0000000..41695bf
        --- /dev/null
        +++ b/lvgl/lvgl
        @@ -0,0 +1 @@
        +Subproject commit 41695bf9ac758ae3276424e06308e1bb89c4c019
        
        From bceb096e69c716a3e7c9b62c8424e8e01abc945a Mon Sep 17 00:00:00 2001
        From: Our Air Quality 
        Date: Fri, 5 Apr 2019 21:45:00 +1100
        Subject: [PATCH 332/349] FreeRTOS: update to v10.2.0
        
        ---
         FreeRTOS/License/license.txt                  |   5 +-
         FreeRTOS/Source/croutine.c                    |   6 +-
         FreeRTOS/Source/event_groups.c                |  75 ++-
         FreeRTOS/Source/include/FreeRTOS.h            | 130 ++++-
         FreeRTOS/Source/include/FreeRTOSConfig.h      |   4 +-
         FreeRTOS/Source/include/croutine.h            |   4 +-
         .../Source/include/deprecated_definitions.h   |   4 +-
         FreeRTOS/Source/include/event_groups.h        |   9 +-
         FreeRTOS/Source/include/list.h                |  13 +-
         FreeRTOS/Source/include/message_buffer.h      |   4 +-
         FreeRTOS/Source/include/mpu_prototypes.h      | 211 +++----
         FreeRTOS/Source/include/mpu_wrappers.h        |  12 +-
         FreeRTOS/Source/include/portable.h            |  24 +-
         FreeRTOS/Source/include/projdefs.h            |   4 +-
         FreeRTOS/Source/include/queue.h               |  22 +-
         FreeRTOS/Source/include/semphr.h              |   4 +-
         FreeRTOS/Source/include/stack_macros.h        |  12 +-
         FreeRTOS/Source/include/stream_buffer.h       |  11 +-
         FreeRTOS/Source/include/task.h                | 119 +++-
         FreeRTOS/Source/include/timers.h              |  24 +-
         FreeRTOS/Source/list.c                        |  32 +-
         FreeRTOS/Source/portable/esp8266/port.c       |   4 +-
         FreeRTOS/Source/portable/esp8266/portmacro.h  |   5 +-
         FreeRTOS/Source/queue.c                       | 266 +++++----
         FreeRTOS/Source/stream_buffer.c               | 155 ++---
         FreeRTOS/Source/tasks.c                       | 531 +++++++++++-------
         FreeRTOS/Source/timers.c                      | 176 +++---
         27 files changed, 1155 insertions(+), 711 deletions(-)
        
        diff --git a/FreeRTOS/License/license.txt b/FreeRTOS/License/license.txt
        index 83e25ea..2977d52 100644
        --- a/FreeRTOS/License/license.txt
        +++ b/FreeRTOS/License/license.txt
        @@ -17,7 +17,7 @@ source file.
         License text:
         -------------
         
        -Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        +Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
         Permission is hereby granted, free of charge, to any person obtaining a copy of
         this software and associated documentation files (the "Software"), to deal in
         the Software without restriction, including without limitation the rights to
        @@ -26,8 +26,7 @@ the Software, and to permit persons to whom the Software is furnished to do so,
         subject to the following conditions:
         
         The above copyright notice and this permission notice shall be included in all
        -copies or substantial portions of the Software. If you wish to use our Amazon
        -FreeRTOS name, please do so in a fair use way that does not cause confusion.
        +copies or substantial portions of the Software.
         
         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
        diff --git a/FreeRTOS/Source/croutine.c b/FreeRTOS/Source/croutine.c
        index b715884..33d4fb3 100644
        --- a/FreeRTOS/Source/croutine.c
        +++ b/FreeRTOS/Source/croutine.c
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -260,7 +260,7 @@ CRCB_t *pxCRCB;
         				( void ) uxListRemove( &( pxCRCB->xGenericListItem ) );
         
         				/* Is the co-routine waiting on an event also? */
        -				if( pxCRCB->xEventListItem.pvContainer )
        +				if( pxCRCB->xEventListItem.pxContainer )
         				{
         					( void ) uxListRemove( &( pxCRCB->xEventListItem ) );
         				}
        diff --git a/FreeRTOS/Source/event_groups.c b/FreeRTOS/Source/event_groups.c
        index 14d7b02..f23047c 100644
        --- a/FreeRTOS/Source/event_groups.c
        +++ b/FreeRTOS/Source/event_groups.c
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -39,11 +39,11 @@ task.h is included from an application file. */
         #include "timers.h"
         #include "event_groups.h"
         
        -/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
        -MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the
        -header files above, but not in this file, in order to generate the correct
        -privileged Vs unprivileged linkage and placement. */
        -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */
        +/* Lint e961, e750 and e9021 are suppressed as a MISRA exception justified
        +because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined
        +for the header files above, but not in this file, in order to generate the
        +correct privileged Vs unprivileged linkage and placement. */
        +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021 See comment above. */
         
         /* The following bit fields convey control information in a task's event list
         item value.  It is important they don't clash with the
        @@ -60,7 +60,7 @@ taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */
         	#define eventEVENT_BITS_CONTROL_BYTES	0xff000000UL
         #endif
         
        -typedef struct xEventGroupDefinition
        +typedef struct EventGroupDef_t
         {
         	EventBits_t uxEventBits;
         	List_t xTasksWaitingForBits;		/*< List of tasks waiting for a bit to be set. */
        @@ -104,11 +104,11 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co
         			event group structure. */
         			volatile size_t xSize = sizeof( StaticEventGroup_t );
         			configASSERT( xSize == sizeof( EventGroup_t ) );
        -		}
        +		} /*lint !e529 xSize is referenced if configASSERT() is defined. */
         		#endif /* configASSERT_DEFINED */
         
         		/* The user has provided a statically allocated event group - use it. */
        -		pxEventBits = ( EventGroup_t * ) pxEventGroupBuffer; /*lint !e740 EventGroup_t and StaticEventGroup_t are guaranteed to have the same size and alignment requirement - checked by configASSERT(). */
        +		pxEventBits = ( EventGroup_t * ) pxEventGroupBuffer; /*lint !e740 !e9087 EventGroup_t and StaticEventGroup_t are deliberately aliased for data hiding purposes and guaranteed to have the same size and alignment requirement - checked by configASSERT(). */
         
         		if( pxEventBits != NULL )
         		{
        @@ -128,10 +128,13 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co
         		}
         		else
         		{
        +			/* xEventGroupCreateStatic should only ever be called with
        +			pxEventGroupBuffer pointing to a pre-allocated (compile time
        +			allocated) StaticEventGroup_t variable. */
         			traceEVENT_GROUP_CREATE_FAILED();
         		}
         
        -		return ( EventGroupHandle_t ) pxEventBits;
        +		return pxEventBits;
         	}
         
         #endif /* configSUPPORT_STATIC_ALLOCATION */
        @@ -143,8 +146,20 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co
         	{
         	EventGroup_t *pxEventBits;
         
        -		/* Allocate the event group. */
        -		pxEventBits = ( EventGroup_t * ) pvPortMalloc( sizeof( EventGroup_t ) );
        +		/* Allocate the event group.  Justification for MISRA deviation as
        +		follows:  pvPortMalloc() always ensures returned memory blocks are
        +		aligned per the requirements of the MCU stack.  In this case
        +		pvPortMalloc() must return a pointer that is guaranteed to meet the
        +		alignment requirements of the EventGroup_t structure - which (if you
        +		follow it through) is the alignment requirements of the TickType_t type
        +		(EventBits_t being of TickType_t itself).  Therefore, whenever the
        +		stack alignment requirements are greater than or equal to the
        +		TickType_t alignment requirements the cast is safe.  In other cases,
        +		where the natural word size of the architecture is less than
        +		sizeof( TickType_t ), the TickType_t variables will be accessed in two
        +		or more reads operations, and the alignment requirements is only that
        +		of each individual read. */
        +		pxEventBits = ( EventGroup_t * ) pvPortMalloc( sizeof( EventGroup_t ) ); /*lint !e9087 !e9079 see comment above. */
         
         		if( pxEventBits != NULL )
         		{
        @@ -164,10 +179,10 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co
         		}
         		else
         		{
        -			traceEVENT_GROUP_CREATE_FAILED();
        +			traceEVENT_GROUP_CREATE_FAILED(); /*lint !e9063 Else branch only exists to allow tracing and does not generate code if trace macros are not defined. */
         		}
         
        -		return ( EventGroupHandle_t ) pxEventBits;
        +		return pxEventBits;
         	}
         
         #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
        @@ -176,7 +191,7 @@ static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, co
         EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait )
         {
         EventBits_t uxOriginalBitValue, uxReturn;
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t *pxEventBits = xEventGroup;
         BaseType_t xAlreadyYielded;
         BaseType_t xTimeoutOccurred = pdFALSE;
         
        @@ -295,7 +310,7 @@ BaseType_t xTimeoutOccurred = pdFALSE;
         
         EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait )
         {
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t *pxEventBits = xEventGroup;
         EventBits_t uxReturn, uxControlBits = 0;
         BaseType_t xWaitConditionMet, xAlreadyYielded;
         BaseType_t xTimeoutOccurred = pdFALSE;
        @@ -445,7 +460,7 @@ BaseType_t xTimeoutOccurred = pdFALSE;
         
         EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear )
         {
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t *pxEventBits = xEventGroup;
         EventBits_t uxReturn;
         
         	/* Check the user is not attempting to clear the bits used by the kernel
        @@ -477,7 +492,7 @@ EventBits_t uxReturn;
         		BaseType_t xReturn;
         
         		traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear );
        -		xReturn = xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL );
        +		xReturn = xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL ); /*lint !e9087 Can't avoid cast to void* as a generic callback function not specific to this use case. Callback casts back to original type so safe. */
         
         		return xReturn;
         	}
        @@ -488,7 +503,7 @@ EventBits_t uxReturn;
         EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup )
         {
         UBaseType_t uxSavedInterruptStatus;
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t const * const pxEventBits = xEventGroup;
         EventBits_t uxReturn;
         
         	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
        @@ -498,16 +513,16 @@ EventBits_t uxReturn;
         	portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
         
         	return uxReturn;
        -}
        +} /*lint !e818 EventGroupHandle_t is a typedef used in other functions to so can't be pointer to const. */
         /*-----------------------------------------------------------*/
         
         EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet )
         {
         ListItem_t *pxListItem, *pxNext;
         ListItem_t const *pxListEnd;
        -List_t *pxList;
        +List_t const * pxList;
         EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits;
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t *pxEventBits = xEventGroup;
         BaseType_t xMatchFound = pdFALSE;
         
         	/* Check the user is not attempting to set the bits used by the kernel
        @@ -516,7 +531,7 @@ BaseType_t xMatchFound = pdFALSE;
         	configASSERT( ( uxBitsToSet & eventEVENT_BITS_CONTROL_BYTES ) == 0 );
         
         	pxList = &( pxEventBits->xTasksWaitingForBits );
        -	pxListEnd = listGET_END_MARKER( pxList ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
        +	pxListEnd = listGET_END_MARKER( pxList ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
         	vTaskSuspendAll();
         	{
         		traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet );
        @@ -597,7 +612,7 @@ BaseType_t xMatchFound = pdFALSE;
         
         void vEventGroupDelete( EventGroupHandle_t xEventGroup )
         {
        -EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +EventGroup_t *pxEventBits = xEventGroup;
         const List_t *pxTasksWaitingForBits = &( pxEventBits->xTasksWaitingForBits );
         
         	vTaskSuspendAll();
        @@ -641,7 +656,7 @@ const List_t *pxTasksWaitingForBits = &( pxEventBits->xTasksWaitingForBits );
         an interrupt. */
         void vEventGroupSetBitsCallback( void *pvEventGroup, const uint32_t ulBitsToSet )
         {
        -	( void ) xEventGroupSetBits( pvEventGroup, ( EventBits_t ) ulBitsToSet );
        +	( void ) xEventGroupSetBits( pvEventGroup, ( EventBits_t ) ulBitsToSet ); /*lint !e9079 Can't avoid cast to void* as a generic timer callback prototype. Callback casts back to original type so safe. */
         }
         /*-----------------------------------------------------------*/
         
        @@ -649,7 +664,7 @@ void vEventGroupSetBitsCallback( void *pvEventGroup, const uint32_t ulBitsToSet
         an interrupt. */
         void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToClear )
         {
        -	( void ) xEventGroupClearBits( pvEventGroup, ( EventBits_t ) ulBitsToClear );
        +	( void ) xEventGroupClearBits( pvEventGroup, ( EventBits_t ) ulBitsToClear ); /*lint !e9079 Can't avoid cast to void* as a generic timer callback prototype. Callback casts back to original type so safe. */
         }
         /*-----------------------------------------------------------*/
         
        @@ -695,7 +710,7 @@ BaseType_t xWaitConditionMet = pdFALSE;
         	BaseType_t xReturn;
         
         		traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet );
        -		xReturn = xTimerPendFunctionCallFromISR( vEventGroupSetBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToSet, pxHigherPriorityTaskWoken );
        +		xReturn = xTimerPendFunctionCallFromISR( vEventGroupSetBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToSet, pxHigherPriorityTaskWoken ); /*lint !e9087 Can't avoid cast to void* as a generic callback function not specific to this use case. Callback casts back to original type so safe. */
         
         		return xReturn;
         	}
        @@ -708,7 +723,7 @@ BaseType_t xWaitConditionMet = pdFALSE;
         	UBaseType_t uxEventGroupGetNumber( void* xEventGroup )
         	{
         	UBaseType_t xReturn;
        -	EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;
        +	EventGroup_t const *pxEventBits = ( EventGroup_t * ) xEventGroup; /*lint !e9087 !e9079 EventGroupHandle_t is a pointer to an EventGroup_t, but EventGroupHandle_t is kept opaque outside of this file for data hiding purposes. */
         
         		if( xEventGroup == NULL )
         		{
        @@ -729,7 +744,7 @@ BaseType_t xWaitConditionMet = pdFALSE;
         
         	void vEventGroupSetNumber( void * xEventGroup, UBaseType_t uxEventGroupNumber )
         	{
        -		( ( EventGroup_t * ) xEventGroup )->uxEventGroupNumber = uxEventGroupNumber;
        +		( ( EventGroup_t * ) xEventGroup )->uxEventGroupNumber = uxEventGroupNumber; /*lint !e9087 !e9079 EventGroupHandle_t is a pointer to an EventGroup_t, but EventGroupHandle_t is kept opaque outside of this file for data hiding purposes. */
         	}
         
         #endif /* configUSE_TRACE_FACILITY */
        diff --git a/FreeRTOS/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h
        index e2c780b..3336b20 100644
        --- a/FreeRTOS/Source/include/FreeRTOS.h
        +++ b/FreeRTOS/Source/include/FreeRTOS.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -156,6 +156,10 @@ extern "C" {
         	#define INCLUDE_uxTaskGetStackHighWaterMark 0
         #endif
         
        +#ifndef INCLUDE_uxTaskGetStackHighWaterMark2
        +	#define INCLUDE_uxTaskGetStackHighWaterMark2 0
        +#endif
        +
         #ifndef INCLUDE_eTaskGetState
         	#define INCLUDE_eTaskGetState 0
         #endif
        @@ -758,8 +762,8 @@ extern "C" {
         	#define portTASK_USES_FLOATING_POINT()
         #endif
         
        -#ifndef portTASK_CALLS_SECURE_FUNCTIONS
        -	#define portTASK_CALLS_SECURE_FUNCTIONS()
        +#ifndef portALLOCATE_SECURE_CONTEXT
        +	#define portALLOCATE_SECURE_CONTEXT( ulSecureStackSize )
         #endif
         
         #ifndef configUSE_TIME_SLICING
        @@ -806,6 +810,10 @@ extern "C" {
         	#define configUSE_TASK_NOTIFICATIONS 1
         #endif
         
        +#ifndef configUSE_POSIX_ERRNO
        +	#define configUSE_POSIX_ERRNO 0
        +#endif
        +
         #ifndef portTICK_TYPE_IS_ATOMIC
         	#define portTICK_TYPE_IS_ATOMIC 0
         #endif
        @@ -928,6 +936,10 @@ V8 if desired. */
         	#define pdTASK_CODE TaskFunction_t
         	#define xListItem ListItem_t
         	#define xList List_t
        +
        +	/* For libraries that break the list data hiding, and access list structure
        +	members directly (which is not supposed to be done). */
        +	#define pxContainer pvContainer
         #endif /* configENABLE_BACKWARD_COMPATIBILITY */
         
         #if( configUSE_ALTERNATIVE_API != 0 )
        @@ -942,6 +954,75 @@ point support. */
         	#define configUSE_TASK_FPU_SUPPORT 1
         #endif
         
        +/* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is
        +currently used in ARMv8M ports. */
        +#ifndef configENABLE_MPU
        +	#define configENABLE_MPU 0
        +#endif
        +
        +/* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is
        +currently used in ARMv8M ports. */
        +#ifndef configENABLE_FPU
        +	#define configENABLE_FPU 1
        +#endif
        +
        +/* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it.
        +This is currently used in ARMv8M ports. */
        +#ifndef configENABLE_TRUSTZONE
        +	#define configENABLE_TRUSTZONE 1
        +#endif
        +
        +/* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on
        +the Secure Side only. */
        +#ifndef configRUN_FREERTOS_SECURE_ONLY
        +	#define configRUN_FREERTOS_SECURE_ONLY 0
        +#endif
        +
        +/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
        + * dynamically allocated RAM, in which case when any task is deleted it is known
        + * that both the task's stack and TCB need to be freed.  Sometimes the
        + * FreeRTOSConfig.h settings only allow a task to be created using statically
        + * allocated RAM, in which case when any task is deleted it is known that neither
        + * the task's stack or TCB should be freed.  Sometimes the FreeRTOSConfig.h
        + * settings allow a task to be created using either statically or dynamically
        + * allocated RAM, in which case a member of the TCB is used to record whether the
        + * stack and/or TCB were allocated statically or dynamically, so when a task is
        + * deleted the RAM that was allocated dynamically is freed again and no attempt is
        + * made to free the RAM that was allocated statically.
        + * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
        + * task to be created using either statically or dynamically allocated RAM.  Note
        + * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
        + * a statically allocated stack and a dynamically allocated TCB.
        + *
        + * The following table lists various combinations of portUSING_MPU_WRAPPERS,
        + * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and
        + * when it is possible to have both static and dynamic allocation:
        + *  +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
        + * | MPU | Dynamic | Static |     Available Functions     |       Possible Allocations        | Both Dynamic and | Need Free |
        + * |     |         |        |                             |                                   | Static Possible  |           |
        + * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
        + * | 0   | 0       | 1      | xTaskCreateStatic           | TCB - Static, Stack - Static      | No               | No        |
        + * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
        + * | 0   | 1       | 0      | xTaskCreate                 | TCB - Dynamic, Stack - Dynamic    | No               | Yes       |
        + * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
        + * | 0   | 1       | 1      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
        + * |     |         |        | xTaskCreateStatic           | 2. TCB - Static, Stack - Static   |                  |           |
        + * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
        + * | 1   | 0       | 1      | xTaskCreateStatic,          | TCB - Static, Stack - Static      | No               | No        |
        + * |     |         |        | xTaskCreateRestrictedStatic |                                   |                  |           |
        + * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
        + * | 1   | 1       | 0      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
        + * |     |         |        | xTaskCreateRestricted       | 2. TCB - Dynamic, Stack - Static  |                  |           |
        + * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
        + * | 1   | 1       | 1      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
        + * |     |         |        | xTaskCreateStatic,          | 2. TCB - Dynamic, Stack - Static  |                  |           |
        + * |     |         |        | xTaskCreateRestricted,      | 3. TCB - Static, Stack - Static   |                  |           |
        + * |     |         |        | xTaskCreateRestrictedStatic |                                   |                  |           |
        + * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
        + */
        +#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE	( ( ( portUSING_MPU_WRAPPERS == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) || \
        +													  ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) )
        +
         /*
          * In line with software engineering best practice, FreeRTOS implements a strict
          * data hiding policy, so the real structures used by FreeRTOS to maintain the
        @@ -954,25 +1035,40 @@ point support. */
          */
         struct xSTATIC_LIST_ITEM
         {
        -	TickType_t xDummy1;
        -	void *pvDummy2[ 4 ];
        +	#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
        +		TickType_t xDummy1;
        +	#endif
        +	TickType_t xDummy2;
        +	void *pvDummy3[ 4 ];
        +	#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
        +		TickType_t xDummy4;
        +	#endif
         };
         typedef struct xSTATIC_LIST_ITEM StaticListItem_t;
         
         /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
         struct xSTATIC_MINI_LIST_ITEM
         {
        -	TickType_t xDummy1;
        -	void *pvDummy2[ 2 ];
        +	#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
        +		TickType_t xDummy1;
        +	#endif
        +	TickType_t xDummy2;
        +	void *pvDummy3[ 2 ];
         };
         typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
         
         /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
         typedef struct xSTATIC_LIST
         {
        -	UBaseType_t uxDummy1;
        -	void *pvDummy2;
        -	StaticMiniListItem_t xDummy3;
        +	#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
        +		TickType_t xDummy1;
        +	#endif
        +	UBaseType_t uxDummy2;
        +	void *pvDummy3;
        +	StaticMiniListItem_t xDummy4;
        +	#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
        +		TickType_t xDummy5;
        +	#endif
         } StaticList_t;
         
         /*
        @@ -1026,14 +1122,16 @@ typedef struct xSTATIC_TCB
         		uint32_t 		ulDummy18;
         		uint8_t 		ucDummy19;
         	#endif
        -	#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
        +	#if ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
         		uint8_t			uxDummy20;
         	#endif
         
         	#if( INCLUDE_xTaskAbortDelay == 1 )
         		uint8_t ucDummy21;
         	#endif
        -
        +	#if ( configUSE_POSIX_ERRNO == 1 )
        +		int				iDummy22;
        +	#endif
         } StaticTask_t;
         
         /*
        @@ -1128,16 +1226,12 @@ typedef struct xSTATIC_TIMER
         	void				*pvDummy1;
         	StaticListItem_t	xDummy2;
         	TickType_t			xDummy3;
        -	UBaseType_t			uxDummy4;
         	void 				*pvDummy5;
         	TaskFunction_t		pvDummy6;
         	#if( configUSE_TRACE_FACILITY == 1 )
         		UBaseType_t		uxDummy7;
         	#endif
        -
        -	#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
        -		uint8_t 		ucDummy8;
        -	#endif
        +	uint8_t 			ucDummy8;
         
         } StaticTimer_t;
         
        diff --git a/FreeRTOS/Source/include/FreeRTOSConfig.h b/FreeRTOS/Source/include/FreeRTOSConfig.h
        index 3600fb6..6b4f84f 100644
        --- a/FreeRTOS/Source/include/FreeRTOSConfig.h
        +++ b/FreeRTOS/Source/include/FreeRTOSConfig.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.0
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h
        index f4c54d2..a70491e 100644
        --- a/FreeRTOS/Source/include/croutine.h
        +++ b/FreeRTOS/Source/include/croutine.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/deprecated_definitions.h b/FreeRTOS/Source/include/deprecated_definitions.h
        index 1125673..cfee927 100644
        --- a/FreeRTOS/Source/include/deprecated_definitions.h
        +++ b/FreeRTOS/Source/include/deprecated_definitions.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/event_groups.h b/FreeRTOS/Source/include/event_groups.h
        index 69ec2e6..7beb0ac 100644
        --- a/FreeRTOS/Source/include/event_groups.h
        +++ b/FreeRTOS/Source/include/event_groups.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -78,7 +78,8 @@ extern "C" {
          * \defgroup EventGroupHandle_t EventGroupHandle_t
          * \ingroup EventGroup
          */
        -typedef void * EventGroupHandle_t;
        +struct EventGroupDef_t;
        +typedef struct EventGroupDef_t * EventGroupHandle_t;
         
         /*
          * The type that holds event bits always matches TickType_t - therefore the
        @@ -404,7 +405,7 @@ EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBit
          * \ingroup EventGroup
          */
         #if( configUSE_TRACE_FACILITY == 1 )
        -	BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) PRIVILEGED_FUNCTION;
        +	BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) PRIVILEGED_FUNCTION;
         #else
         	#define xEventGroupClearBitsFromISR( xEventGroup, uxBitsToClear ) xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL )
         #endif
        diff --git a/FreeRTOS/Source/include/list.h b/FreeRTOS/Source/include/list.h
        index 4a3afa1..48ad64d 100644
        --- a/FreeRTOS/Source/include/list.h
        +++ b/FreeRTOS/Source/include/list.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -136,6 +136,7 @@ use of FreeRTOS.*/
         /*
          * Definition of the only type of object that a list can contain.
          */
        +struct xLIST;
         struct xLIST_ITEM
         {
         	listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE			/*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
        @@ -143,7 +144,7 @@ struct xLIST_ITEM
         	struct xLIST_ITEM * configLIST_VOLATILE pxNext;		/*< Pointer to the next ListItem_t in the list. */
         	struct xLIST_ITEM * configLIST_VOLATILE pxPrevious;	/*< Pointer to the previous ListItem_t in the list. */
         	void * pvOwner;										/*< Pointer to the object (normally a TCB) that contains the list item.  There is therefore a two way link between the object containing the list item and the list item itself. */
        -	void * configLIST_VOLATILE pvContainer;				/*< Pointer to the list in which this list item is placed (if any). */
        +	struct xLIST * configLIST_VOLATILE pxContainer;		/*< Pointer to the list in which this list item is placed (if any). */
         	listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE			/*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
         };
         typedef struct xLIST_ITEM ListItem_t;					/* For some reason lint wants this as two separate definitions. */
        @@ -246,7 +247,7 @@ typedef struct xLIST
          * \page listLIST_IS_EMPTY listLIST_IS_EMPTY
          * \ingroup LinkedList
          */
        -#define listLIST_IS_EMPTY( pxList )	( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) )
        +#define listLIST_IS_EMPTY( pxList )	( ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? pdTRUE : pdFALSE )
         
         /*
          * Access macro to return the number of items in the list.
        @@ -314,7 +315,7 @@ List_t * const pxConstList = ( pxList );													\
          * @param pxListItem The list item we want to know if is in the list.
          * @return pdTRUE if the list item is in the list, otherwise pdFALSE.
          */
        -#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) )
        +#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( ( pxListItem )->pxContainer == ( pxList ) ) ? ( pdTRUE ) : ( pdFALSE ) )
         
         /*
          * Return the list a list item is contained within (referenced from).
        @@ -322,7 +323,7 @@ List_t * const pxConstList = ( pxList );													\
          * @param pxListItem The list item being queried.
          * @return A pointer to the List_t object that references the pxListItem
          */
        -#define listLIST_ITEM_CONTAINER( pxListItem ) ( ( pxListItem )->pvContainer )
        +#define listLIST_ITEM_CONTAINER( pxListItem ) ( ( pxListItem )->pxContainer )
         
         /*
          * This provides a crude means of knowing if a list has been initialised, as
        diff --git a/FreeRTOS/Source/include/message_buffer.h b/FreeRTOS/Source/include/message_buffer.h
        index 396cffd..8ec2be3 100644
        --- a/FreeRTOS/Source/include/message_buffer.h
        +++ b/FreeRTOS/Source/include/message_buffer.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/mpu_prototypes.h b/FreeRTOS/Source/include/mpu_prototypes.h
        index 118988b..8105038 100644
        --- a/FreeRTOS/Source/include/mpu_prototypes.h
        +++ b/FreeRTOS/Source/include/mpu_prototypes.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -38,117 +38,118 @@
         #define MPU_PROTOTYPES_H
         
         /* MPU versions of tasks.h API functions. */
        -BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask );
        -TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer );
        -BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask );
        -BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask );
        -void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions );
        -void MPU_vTaskDelete( TaskHandle_t xTaskToDelete );
        -void MPU_vTaskDelay( const TickType_t xTicksToDelay );
        -void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement );
        -BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask );
        -UBaseType_t MPU_uxTaskPriorityGet( TaskHandle_t xTask );
        -eTaskState MPU_eTaskGetState( TaskHandle_t xTask );
        -void MPU_vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState );
        -void MPU_vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority );
        -void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend );
        -void MPU_vTaskResume( TaskHandle_t xTaskToResume );
        -void MPU_vTaskStartScheduler( void );
        -void MPU_vTaskSuspendAll( void );
        -BaseType_t MPU_xTaskResumeAll( void );
        -TickType_t MPU_xTaskGetTickCount( void );
        -UBaseType_t MPU_uxTaskGetNumberOfTasks( void );
        -char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery );
        -TaskHandle_t MPU_xTaskGetHandle( const char *pcNameToQuery );
        -UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask );
        -void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction );
        -TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask );
        -void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue );
        -void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex );
        -BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter );
        -TaskHandle_t MPU_xTaskGetIdleTaskHandle( void );
        -UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime );
        -void MPU_vTaskList( char * pcWriteBuffer );
        -void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer );
        -BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue );
        -BaseType_t MPU_xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait );
        -uint32_t MPU_ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait );
        -BaseType_t MPU_xTaskNotifyStateClear( TaskHandle_t xTask );
        -BaseType_t MPU_xTaskIncrementTick( void );
        -TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void );
        -void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut );
        -BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait );
        -void MPU_vTaskMissedYield( void );
        -BaseType_t MPU_xTaskGetSchedulerState( void );
        +BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const pxRegions ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskDelete( TaskHandle_t xTaskToDelete ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskResume( TaskHandle_t xTaskToResume ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskStartScheduler( void ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskSuspendAll( void ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskResumeAll( void ) FREERTOS_SYSTEM_CALL;
        +TickType_t MPU_xTaskGetTickCount( void ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) FREERTOS_SYSTEM_CALL;
        +char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xTaskGetHandle( const char *pcNameToQuery ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction ) FREERTOS_SYSTEM_CALL;
        +TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ) FREERTOS_SYSTEM_CALL;
        +void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime ) FREERTOS_SYSTEM_CALL;
        +TickType_t MPU_xTaskGetIdleRunTimeCounter( void ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskList( char * pcWriteBuffer ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +uint32_t MPU_ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskNotifyStateClear( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskIncrementTick( void ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTaskMissedYield( void ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTaskGetSchedulerState( void ) FREERTOS_SYSTEM_CALL;
         
         /* MPU versions of queue.h API functions. */
        -BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition );
        -BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait );
        -BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait );
        -BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait );
        -UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue );
        -UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue );
        -void MPU_vQueueDelete( QueueHandle_t xQueue );
        -QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType );
        -QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue );
        -QueueHandle_t MPU_xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount );
        -QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue );
        -void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore );
        -BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait );
        -BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex );
        -void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName );
        -void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue );
        -const char * MPU_pcQueueGetName( QueueHandle_t xQueue );
        -QueueHandle_t MPU_xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType );
        -QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType );
        -QueueSetHandle_t MPU_xQueueCreateSet( const UBaseType_t uxEventQueueLength );
        -BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );
        -BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );
        -QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait );
        -BaseType_t MPU_xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue );
        -void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber );
        -UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue );
        -uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue );
        +BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +void MPU_vQueueDelete( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) FREERTOS_SYSTEM_CALL;
        +void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ) FREERTOS_SYSTEM_CALL;
        +void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;
        +QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;
        +QueueSetHandle_t MPU_xQueueCreateSet( const UBaseType_t uxEventQueueLength ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;
        +QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) FREERTOS_SYSTEM_CALL;
        +void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
        +uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
         
         /* MPU versions of timers.h API functions. */
        -TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction );
        -TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer );
        -void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer );
        -void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID );
        -BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer );
        -TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void );
        -BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait );
        -const char * MPU_pcTimerGetName( TimerHandle_t xTimer );
        -TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer );
        -TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer );
        -BaseType_t MPU_xTimerCreateTimerTask( void );
        -BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait );
        +TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ) FREERTOS_SYSTEM_CALL;
        +TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer ) FREERTOS_SYSTEM_CALL;
        +void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
        +TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
        +void MPU_vTimerSetReloadMode( TimerHandle_t xTimer, const UBaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL;
        +TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
        +TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTimerCreateTimerTask( void ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
         
         /* MPU versions of event_group.h API functions. */
        -EventGroupHandle_t MPU_xEventGroupCreate( void );
        -EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer );
        -EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait );
        -EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear );
        -EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet );
        -EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait );
        -void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup );
        -UBaseType_t MPU_uxEventGroupGetNumber( void* xEventGroup );
        +EventGroupHandle_t MPU_xEventGroupCreate( void ) FREERTOS_SYSTEM_CALL;
        +EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer ) FREERTOS_SYSTEM_CALL;
        +EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) FREERTOS_SYSTEM_CALL;
        +EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) FREERTOS_SYSTEM_CALL;
        +EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) FREERTOS_SYSTEM_CALL;
        +UBaseType_t MPU_uxEventGroupGetNumber( void* xEventGroup ) FREERTOS_SYSTEM_CALL;
         
         /* MPU versions of message/stream_buffer.h API functions. */
        -size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait );
        -size_t MPU_xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken );
        -size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait );
        -size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer );
        -size_t MPU_xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken );
        -void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer );
        -BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer );
        -BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer );
        -BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer );
        -size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer );
        -size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer );
        -BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel );
        -StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer );
        -StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer, uint8_t * const pucStreamBufferStorageArea, StaticStreamBuffer_t * const pxStaticStreamBuffer );
        +size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
        +size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
        +BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ) FREERTOS_SYSTEM_CALL;
        +StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer ) FREERTOS_SYSTEM_CALL;
        +StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer, uint8_t * const pucStreamBufferStorageArea, StaticStreamBuffer_t * const pxStaticStreamBuffer ) FREERTOS_SYSTEM_CALL;
         
         
         
        diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h
        index f7c97c3..465e586 100644
        --- a/FreeRTOS/Source/include/mpu_wrappers.h
        +++ b/FreeRTOS/Source/include/mpu_wrappers.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -67,6 +67,7 @@ only for ports that are using the MPU. */
         		#define pcTaskGetName							MPU_pcTaskGetName
         		#define xTaskGetHandle							MPU_xTaskGetHandle
         		#define uxTaskGetStackHighWaterMark				MPU_uxTaskGetStackHighWaterMark
        +		#define uxTaskGetStackHighWaterMark2			MPU_uxTaskGetStackHighWaterMark2
         		#define vTaskSetApplicationTaskTag				MPU_vTaskSetApplicationTaskTag
         		#define xTaskGetApplicationTaskTag				MPU_xTaskGetApplicationTaskTag
         		#define vTaskSetThreadLocalStoragePointer		MPU_vTaskSetThreadLocalStoragePointer
        @@ -76,6 +77,7 @@ only for ports that are using the MPU. */
         		#define uxTaskGetSystemState					MPU_uxTaskGetSystemState
         		#define vTaskList								MPU_vTaskList
         		#define vTaskGetRunTimeStats					MPU_vTaskGetRunTimeStats
        +		#define xTaskGetIdleRunTimeCounter				MPU_xTaskGetIdleRunTimeCounter
         		#define xTaskGenericNotify						MPU_xTaskGenericNotify
         		#define xTaskNotifyWait							MPU_xTaskNotifyWait
         		#define ulTaskNotifyTake						MPU_ulTaskNotifyTake
        @@ -124,6 +126,7 @@ only for ports that are using the MPU. */
         		#define xTimerGetTimerDaemonTaskHandle			MPU_xTimerGetTimerDaemonTaskHandle
         		#define xTimerPendFunctionCall					MPU_xTimerPendFunctionCall
         		#define pcTimerGetName							MPU_pcTimerGetName
        +		#define vTimerSetReloadMode						MPU_vTimerSetReloadMode
         		#define xTimerGetPeriod							MPU_xTimerGetPeriod
         		#define xTimerGetExpiryTime						MPU_xTimerGetExpiryTime
         		#define xTimerGenericCommand					MPU_xTimerGenericCommand
        @@ -140,10 +143,8 @@ only for ports that are using the MPU. */
         		/* Map standard message/stream_buffer.h API functions to the MPU
         		equivalents. */
         		#define xStreamBufferSend						MPU_xStreamBufferSend
        -		#define xStreamBufferSendFromISR				MPU_xStreamBufferSendFromISR
         		#define xStreamBufferReceive					MPU_xStreamBufferReceive
         		#define xStreamBufferNextMessageLengthBytes		MPU_xStreamBufferNextMessageLengthBytes
        -		#define xStreamBufferReceiveFromISR				MPU_xStreamBufferReceiveFromISR
         		#define vStreamBufferDelete						MPU_vStreamBufferDelete
         		#define xStreamBufferIsFull						MPU_xStreamBufferIsFull
         		#define xStreamBufferIsEmpty					MPU_xStreamBufferIsEmpty
        @@ -160,12 +161,14 @@ only for ports that are using the MPU. */
         		(useful when using statically allocated objects). */
         		#define PRIVILEGED_FUNCTION
         		#define PRIVILEGED_DATA __attribute__((section("privileged_data")))
        +		#define FREERTOS_SYSTEM_CALL
         
         	#else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
         
         		/* Ensure API functions go in the privileged execution section. */
         		#define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))
         		#define PRIVILEGED_DATA __attribute__((section("privileged_data")))
        +		#define FREERTOS_SYSTEM_CALL __attribute__((section( "freertos_system_calls")))
         
         	#endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */
         
        @@ -173,6 +176,7 @@ only for ports that are using the MPU. */
         
         	#define PRIVILEGED_FUNCTION
         	#define PRIVILEGED_DATA
        +	#define FREERTOS_SYSTEM_CALL
         	#define portUSING_MPU_WRAPPERS 0
         
         #endif /* portUSING_MPU_WRAPPERS */
        diff --git a/FreeRTOS/Source/include/portable.h b/FreeRTOS/Source/include/portable.h
        index 3d0ef0a..1b99ed1 100644
        --- a/FreeRTOS/Source/include/portable.h
        +++ b/FreeRTOS/Source/include/portable.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -84,6 +84,14 @@ must be set in the compiler's include path. */
         	#define portNUM_CONFIGURABLE_REGIONS 1
         #endif
         
        +#ifndef portHAS_STACK_OVERFLOW_CHECKING
        +	#define portHAS_STACK_OVERFLOW_CHECKING 0
        +#endif
        +
        +#ifndef portARCH_NAME
        +	#define portARCH_NAME NULL
        +#endif
        +
         #ifdef __cplusplus
         extern "C" {
         #endif
        @@ -97,9 +105,17 @@ extern "C" {
          *
          */
         #if( portUSING_MPU_WRAPPERS == 1 )
        -	StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters, BaseType_t xRunPrivileged ) PRIVILEGED_FUNCTION;
        +	#if( portHAS_STACK_OVERFLOW_CHECKING == 1 )
        +		StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, StackType_t *pxEndOfStack, TaskFunction_t pxCode, void *pvParameters, BaseType_t xRunPrivileged ) PRIVILEGED_FUNCTION;
        +	#else
        +		StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters, BaseType_t xRunPrivileged ) PRIVILEGED_FUNCTION;
        +	#endif
         #else
        -	StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) PRIVILEGED_FUNCTION;
        +	#if( portHAS_STACK_OVERFLOW_CHECKING == 1 )
        +		StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, StackType_t *pxEndOfStack, TaskFunction_t pxCode, void *pvParameters ) PRIVILEGED_FUNCTION;
        +	#else
        +		StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) PRIVILEGED_FUNCTION;
        +	#endif
         #endif
         
         /* Used by heap_5.c. */
        diff --git a/FreeRTOS/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h
        index 27337a8..155b90e 100644
        --- a/FreeRTOS/Source/include/projdefs.h
        +++ b/FreeRTOS/Source/include/projdefs.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h
        index abfb7ae..d596b0f 100644
        --- a/FreeRTOS/Source/include/queue.h
        +++ b/FreeRTOS/Source/include/queue.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -37,27 +37,29 @@
         extern "C" {
         #endif
         
        +#include "task.h"
         
         /**
          * Type by which queues are referenced.  For example, a call to xQueueCreate()
          * returns an QueueHandle_t variable that can then be used as a parameter to
          * xQueueSend(), xQueueReceive(), etc.
          */
        -typedef void * QueueHandle_t;
        +struct QueueDefinition; /* Using old naming convention so as not to break kernel aware debuggers. */
        +typedef struct QueueDefinition * QueueHandle_t;
         
         /**
          * Type by which queue sets are referenced.  For example, a call to
          * xQueueCreateSet() returns an xQueueSet variable that can then be used as a
          * parameter to xQueueSelectFromSet(), xQueueAddToSet(), etc.
          */
        -typedef void * QueueSetHandle_t;
        +typedef struct QueueDefinition * QueueSetHandle_t;
         
         /**
          * Queue sets can contain both queues and semaphores, so the
          * QueueSetMemberHandle_t is defined as a type to be used where a parameter or
          * return value can be either an QueueHandle_t or an SemaphoreHandle_t.
          */
        -typedef void * QueueSetMemberHandle_t;
        +typedef struct QueueDefinition * QueueSetMemberHandle_t;
         
         /* For internal use only. */
         #define	queueSEND_TO_BACK		( ( BaseType_t ) 0 )
        @@ -233,7 +235,7 @@ typedef void * QueueSetMemberHandle_t;
         /**
          * queue. h
          * 
        - BaseType_t xQueueSendToFront(
        + BaseType_t xQueueSendToToFront(
         								   QueueHandle_t	xQueue,
         								   const void		*pvItemToQueue,
         								   TickType_t		xTicksToWait
        @@ -1414,15 +1416,15 @@ QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t
         QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) PRIVILEGED_FUNCTION;
         QueueHandle_t xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION;
         BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
        -void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
        -void* xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
        +TaskHandle_t xQueueGetMutexHolder( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
        +TaskHandle_t xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
         
         /*
          * For internal use only.  Use xSemaphoreTakeMutexRecursive() or
          * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.
          */
         BaseType_t xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
        -BaseType_t xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) PRIVILEGED_FUNCTION;
        +BaseType_t xQueueGiveMutexRecursive( QueueHandle_t xMutex ) PRIVILEGED_FUNCTION;
         
         /*
          * Reset a queue back to its original empty state.  The return value is now
        @@ -1453,7 +1455,7 @@ BaseType_t xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) PRIVILEGED_FUNCTION
          * preferably in ROM/Flash), not on the stack.
          */
         #if( configQUEUE_REGISTRY_SIZE > 0 )
        -	void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
        +	void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcQueueName ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
         #endif
         
         /*
        diff --git a/FreeRTOS/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h
        index e603b4a..9e9e83f 100644
        --- a/FreeRTOS/Source/include/semphr.h
        +++ b/FreeRTOS/Source/include/semphr.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        diff --git a/FreeRTOS/Source/include/stack_macros.h b/FreeRTOS/Source/include/stack_macros.h
        index 79a83ea..e7e259c 100644
        --- a/FreeRTOS/Source/include/stack_macros.h
        +++ b/FreeRTOS/Source/include/stack_macros.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -82,10 +82,10 @@
         		const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack;							\
         		const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5;											\
         																										\
        -		if( ( pulStack[ 0 ] != ulCheckValue ) ||												\
        -			( pulStack[ 1 ] != ulCheckValue ) ||												\
        -			( pulStack[ 2 ] != ulCheckValue ) ||												\
        -			( pulStack[ 3 ] != ulCheckValue ) )												\
        +		if( ( pulStack[ 0 ] != ulCheckValue ) ||														\
        +			( pulStack[ 1 ] != ulCheckValue ) ||														\
        +			( pulStack[ 2 ] != ulCheckValue ) ||														\
        +			( pulStack[ 3 ] != ulCheckValue ) )															\
         		{																								\
         			vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName );	\
         		}																								\
        diff --git a/FreeRTOS/Source/include/stream_buffer.h b/FreeRTOS/Source/include/stream_buffer.h
        index 8f91968..022d5e1 100644
        --- a/FreeRTOS/Source/include/stream_buffer.h
        +++ b/FreeRTOS/Source/include/stream_buffer.h
        @@ -1,6 +1,6 @@
         /*
        - * FreeRTOS Kernel V10.0.1
        - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
        + * FreeRTOS Kernel V10.2.0
        + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
          *
          * Permission is hereby granted, free of charge, to any person obtaining a copy of
          * this software and associated documentation files (the "Software"), to deal in
        @@ -61,7 +61,8 @@ extern "C" {
          * then be used as a parameter to xStreamBufferSend(), xStreamBufferReceive(),
          * etc.
          */
        -typedef void * StreamBufferHandle_t;
        +struct StreamBufferDef_t;
        +typedef struct StreamBufferDef_t * StreamBufferHandle_t;
         
         
         /**
        @@ -220,7 +221,7 @@ size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
                                   const void *pvTxData,
                                   size_t xDataLengthBytes,
                                   TickType_t xTicksToWait );
        -
        +
        * * Sends bytes to a stream buffer. The bytes are copied into the stream buffer. * @@ -317,7 +318,7 @@ size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t *pxHigherPriorityTaskWoken ); -
        +
        * * Interrupt safe version of the API function that sends a stream of bytes to * the stream buffer. diff --git a/FreeRTOS/Source/include/task.h b/FreeRTOS/Source/include/task.h index b559a4e..8c8653a 100644 --- a/FreeRTOS/Source/include/task.h +++ b/FreeRTOS/Source/include/task.h @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -43,10 +43,18 @@ extern "C" { * MACROS AND DEFINITIONS *----------------------------------------------------------*/ -#define tskKERNEL_VERSION_NUMBER "V10.0.1" +#define tskKERNEL_VERSION_NUMBER "V10.2.0" #define tskKERNEL_VERSION_MAJOR 10 -#define tskKERNEL_VERSION_MINOR 0 -#define tskKERNEL_VERSION_BUILD 1 +#define tskKERNEL_VERSION_MINOR 2 +#define tskKERNEL_VERSION_BUILD 0 + +/* MPU region parameters passed in ulParameters + * of MemoryRegion_t struct. */ +#define tskMPU_REGION_READ_ONLY ( 1UL << 0UL ) +#define tskMPU_REGION_READ_WRITE ( 1UL << 1UL ) +#define tskMPU_REGION_EXECUTE_NEVER ( 1UL << 2UL ) +#define tskMPU_REGION_NORMAL_MEMORY ( 1UL << 3UL ) +#define tskMPU_REGION_DEVICE_MEMORY ( 1UL << 4UL ) /** * task. h @@ -58,7 +66,8 @@ extern "C" { * \defgroup TaskHandle_t TaskHandle_t * \ingroup Tasks */ -typedef void * TaskHandle_t; +struct tskTaskControlBlock; /* The old naming convention is used to prevent breaking kernel aware debuggers. */ +typedef struct tskTaskControlBlock* TaskHandle_t; /* * Defines the prototype to which the application task hook function must @@ -74,7 +83,7 @@ typedef enum eBlocked, /* The task being queried is in the Blocked state. */ eSuspended, /* The task being queried is in the Suspended state, or is in the Blocked state with an infinite time out. */ eDeleted, /* The task being queried has been deleted, but its TCB has not yet been freed. */ - eInvalid /* Used as an 'invalid state' value. */ + eInvalid /* Used as an 'invalid state' value. */ } eTaskState; /* Actions that can be performed when vTaskNotify() is called. */ @@ -113,7 +122,7 @@ typedef struct xTASK_PARAMETERS { TaskFunction_t pvTaskCode; const char * const pcName; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ - uint16_t usStackDepth; + configSTACK_DEPTH_TYPE usStackDepth; void *pvParameters; UBaseType_t uxPriority; StackType_t *puxStackBuffer; @@ -375,9 +384,9 @@ is used in assert() statements. */ * memory to be allocated dynamically. * * @return If neither pxStackBuffer or pxTaskBuffer are NULL, then the task will - * be created and pdPASS is returned. If either pxStackBuffer or pxTaskBuffer - * are NULL then the task will not be created and - * errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY is returned. + * be created and a handle to the created task is returned. If either + * pxStackBuffer or pxTaskBuffer are NULL then the task will not be created and + * NULL is returned. * * Example usage:
        @@ -834,7 +843,7 @@ BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;
         
         /**
          * task. h
        - * 
        UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask );
        + *
        UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask );
        * * INCLUDE_uxTaskPriorityGet must be defined as 1 for this function to be available. * See the configuration section for more information. @@ -877,15 +886,15 @@ BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; * \defgroup uxTaskPriorityGet uxTaskPriorityGet * \ingroup TaskCtrl */ -UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; +UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION; /** * task. h - *
        UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask );
        + *
        UBaseType_t uxTaskPriorityGetFromISR( const TaskHandle_t xTask );
        * * A version of uxTaskPriorityGet() that can be used from an ISR. */ -UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; +UBaseType_t uxTaskPriorityGetFromISR( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION; /** * task. h @@ -1412,6 +1421,12 @@ TaskHandle_t xTaskGetHandle( const char *pcNameToQuery ) PRIVILEGED_FUNCTION; /* * a value of 1 means 4 bytes) since the task started. The smaller the returned * number the closer the task has come to overflowing its stack. * + * uxTaskGetStackHighWaterMark() and uxTaskGetStackHighWaterMark2() are the + * same except for their return type. Using configSTACK_DEPTH_TYPE allows the + * user to determine the return type. It gets around the problem of the value + * overflowing on 8-bit types without breaking backward compatibility for + * applications that expect an 8-bit return type. + * * @param xTask Handle of the task associated with the stack to be checked. * Set xTask to NULL to check the stack of the calling task. * @@ -1421,6 +1436,33 @@ TaskHandle_t xTaskGetHandle( const char *pcNameToQuery ) PRIVILEGED_FUNCTION; /* */ UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; +/** + * task.h + *
        configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2( TaskHandle_t xTask );
        + * + * INCLUDE_uxTaskGetStackHighWaterMark2 must be set to 1 in FreeRTOSConfig.h for + * this function to be available. + * + * Returns the high water mark of the stack associated with xTask. That is, + * the minimum free stack space there has been (in words, so on a 32 bit machine + * a value of 1 means 4 bytes) since the task started. The smaller the returned + * number the closer the task has come to overflowing its stack. + * + * uxTaskGetStackHighWaterMark() and uxTaskGetStackHighWaterMark2() are the + * same except for their return type. Using configSTACK_DEPTH_TYPE allows the + * user to determine the return type. It gets around the problem of the value + * overflowing on 8-bit types without breaking backward compatibility for + * applications that expect an 8-bit return type. + * + * @param xTask Handle of the task associated with the stack to be checked. + * Set xTask to NULL to check the stack of the calling task. + * + * @return The smallest amount of free stack space there has been (in words, so + * actual spaces on the stack rather than bytes) since the task referenced by + * xTask was created. + */ +configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; + /* When using trace macros it is sometimes necessary to include task.h before FreeRTOS.h. When this is done TaskHookFunction_t will not yet have been defined, so the following two prototypes will cause a compilation error. This can be @@ -1443,9 +1485,20 @@ constant. */ * task.h *
        void xTaskGetApplicationTaskTag( TaskHandle_t xTask );
        * - * Returns the pxHookFunction value assigned to the task xTask. + * Returns the pxHookFunction value assigned to the task xTask. Do not + * call from an interrupt service routine - call + * xTaskGetApplicationTaskTagFromISR() instead. */ TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; + + /** + * task.h + *
        void xTaskGetApplicationTaskTagFromISR( TaskHandle_t xTask );
        + * + * Returns the pxHookFunction value assigned to the task xTask. Can + * be called from an interrupt service routine. + */ + TaskHookFunction_t xTaskGetApplicationTaskTagFromISR( TaskHandle_t xTask ) PRIVILEGED_FUNCTION; #endif /* configUSE_APPLICATION_TASK_TAG ==1 */ #endif /* ifdef configUSE_APPLICATION_TASK_TAG */ @@ -1683,6 +1736,36 @@ void vTaskList( char * pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unquali */ void vTaskGetRunTimeStats( char *pcWriteBuffer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +/** +* task. h +*
        TickType_t xTaskGetIdleRunTimeCounter( void );
        +* +* configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS +* must both be defined as 1 for this function to be available. The application +* must also then provide definitions for +* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE() +* to configure a peripheral timer/counter and return the timers current count +* value respectively. The counter should be at least 10 times the frequency of +* the tick count. +* +* Setting configGENERATE_RUN_TIME_STATS to 1 will result in a total +* accumulated execution time being stored for each task. The resolution +* of the accumulated time value depends on the frequency of the timer +* configured by the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() macro. +* While uxTaskGetSystemState() and vTaskGetRunTimeStats() writes the total +* execution time of each task into a buffer, xTaskGetIdleRunTimeCounter() +* returns the total execution time of just the idle task. +* +* @return The total run time of the idle task. This is the amount of time the +* idle task has actually been executing. The unit of time is dependent on the +* frequency configured using the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and +* portGET_RUN_TIME_COUNTER_VALUE() macros. +* +* \defgroup xTaskGetIdleRunTimeCounter xTaskGetIdleRunTimeCounter +* \ingroup TaskUtils +*/ +TickType_t xTaskGetIdleRunTimeCounter( void ) PRIVILEGED_FUNCTION; + /** * task. h *
        BaseType_t xTaskNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction );
        @@ -2301,7 +2384,7 @@ void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) PRIVIL void vTaskStepTick( const TickType_t xTicksToJump ) PRIVILEGED_FUNCTION; /* - * Only avilable when configUSE_TICKLESS_IDLE is set to 1. + * Only available when configUSE_TICKLESS_IDLE is set to 1. * Provided for use within portSUPPRESS_TICKS_AND_SLEEP() to allow the port * specific sleep function to determine if it is ok to proceed with the sleep, * and if it is ok to proceed, if it is ok to sleep indefinitely. @@ -2320,7 +2403,7 @@ eSleepModeStatus eTaskConfirmSleepModeStatus( void ) PRIVILEGED_FUNCTION; * For internal use only. Increment the mutex held count when a mutex is * taken and return the handle of the task that has taken the mutex. */ -void *pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION; +TaskHandle_t pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION; /* * For internal use only. Same as vTaskSetTimeOutState(), but without a critial diff --git a/FreeRTOS/Source/include/timers.h b/FreeRTOS/Source/include/timers.h index 05eb90f..c372bfb 100644 --- a/FreeRTOS/Source/include/timers.h +++ b/FreeRTOS/Source/include/timers.h @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -73,7 +73,8 @@ or interrupt version of the queue send function should be used. */ * reference the subject timer in calls to other software timer API functions * (for example, xTimerStart(), xTimerReset(), etc.). */ -typedef void * TimerHandle_t; +struct tmrTimerControl; /* The old naming convention is used to prevent breaking kernel aware debuggers. */ +typedef struct tmrTimerControl * TimerHandle_t; /* * Defines the prototype to which timer callback functions must conform. @@ -1230,6 +1231,23 @@ BaseType_t xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvPar */ const char * pcTimerGetName( TimerHandle_t xTimer ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ +/** + * void vTimerSetReloadMode( TimerHandle_t xTimer, const UBaseType_t uxAutoReload ); + * + * Updates a timer to be either an autoreload timer, in which case the timer + * automatically resets itself each time it expires, or a one shot timer, in + * which case the timer will only expire once unless it is manually restarted. + * + * @param xTimer The handle of the timer being updated. + * + * @param uxAutoReload If uxAutoReload is set to pdTRUE then the timer will + * expire repeatedly with a frequency set by the timer's period (see the + * xTimerPeriodInTicks parameter of the xTimerCreate() API function). If + * uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and + * enter the dormant state after it expires. + */ +void vTimerSetReloadMode( TimerHandle_t xTimer, const UBaseType_t uxAutoReload ) PRIVILEGED_FUNCTION; + /** * TickType_t xTimerGetPeriod( TimerHandle_t xTimer ); * diff --git a/FreeRTOS/Source/list.c b/FreeRTOS/Source/list.c index 1412776..bc02c0c 100644 --- a/FreeRTOS/Source/list.c +++ b/FreeRTOS/Source/list.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -39,7 +39,7 @@ void vListInitialise( List_t * const pxList ) /* The list structure contains a list item which is used to mark the end of the list. To initialise the list the list end is inserted as the only list entry. */ - pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ /* The list end value is the highest possible value in the list to ensure it remains at the end of the list. */ @@ -47,8 +47,8 @@ void vListInitialise( List_t * const pxList ) /* The list end next and previous pointers point to itself so we know when the list is empty. */ - pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ - pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ pxList->uxNumberOfItems = ( UBaseType_t ) 0U; @@ -62,7 +62,7 @@ void vListInitialise( List_t * const pxList ) void vListInitialiseItem( ListItem_t * const pxItem ) { /* Make sure the list item is not recorded as being on a list. */ - pxItem->pvContainer = NULL; + pxItem->pxContainer = NULL; /* Write known values into the list item if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ @@ -94,7 +94,7 @@ ListItem_t * const pxIndex = pxList->pxIndex; pxIndex->pxPrevious = pxNewListItem; /* Remember which list the item is in. */ - pxNewListItem->pvContainer = ( void * ) pxList; + pxNewListItem->pxContainer = pxList; ( pxList->uxNumberOfItems )++; } @@ -127,18 +127,18 @@ const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; { /* *** NOTE *********************************************************** If you find your application is crashing here then likely causes are - listed below. In addition see http://www.freertos.org/FAQHelp.html for + listed below. In addition see https://www.freertos.org/FAQHelp.html for more tips, and ensure configASSERT() is defined! - http://www.freertos.org/a00110.html#configASSERT + https://www.freertos.org/a00110.html#configASSERT 1) Stack overflow - - see http://www.freertos.org/Stacks-and-stack-overflow-checking.html + see https://www.freertos.org/Stacks-and-stack-overflow-checking.html 2) Incorrect interrupt priority assignment, especially on Cortex-M parts where numerically high priority values denote low actual interrupt priorities, which can seem counter intuitive. See - http://www.freertos.org/RTOS-Cortex-M3-M4.html and the definition + https://www.freertos.org/RTOS-Cortex-M3-M4.html and the definition of configMAX_SYSCALL_INTERRUPT_PRIORITY on - http://www.freertos.org/a00110.html + https://www.freertos.org/a00110.html 3) Calling an API function from within a critical section or when the scheduler is suspended, or calling an API function that does not end in "FromISR" from an interrupt. @@ -147,7 +147,7 @@ const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; before vTaskStartScheduler() has been called?). **********************************************************************/ - for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ + for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. *//*lint !e440 The iterator moves to a different value, not xValueOfInsertion. */ { /* There is nothing to do here, just iterating to the wanted insertion position. */ @@ -161,7 +161,7 @@ const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; /* Remember which list the item is in. This allows fast removal of the item later. */ - pxNewListItem->pvContainer = ( void * ) pxList; + pxNewListItem->pxContainer = pxList; ( pxList->uxNumberOfItems )++; } @@ -171,7 +171,7 @@ UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) { /* The list item knows which list it is in. Obtain the list from the list item. */ -List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer; +List_t * const pxList = pxItemToRemove->pxContainer; pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; @@ -189,7 +189,7 @@ List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer; mtCOVERAGE_TEST_MARKER(); } - pxItemToRemove->pvContainer = NULL; + pxItemToRemove->pxContainer = NULL; ( pxList->uxNumberOfItems )--; return pxList->uxNumberOfItems; diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c index b11a1c5..39cdce8 100644 --- a/FreeRTOS/Source/portable/esp8266/port.c +++ b/FreeRTOS/Source/portable/esp8266/port.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.0 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/FreeRTOS/Source/portable/esp8266/portmacro.h b/FreeRTOS/Source/portable/esp8266/portmacro.h index f1ecf07..66f029f 100644 --- a/FreeRTOS/Source/portable/esp8266/portmacro.h +++ b/FreeRTOS/Source/portable/esp8266/portmacro.h @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.0 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -66,6 +66,7 @@ typedef uint32_t TickType_t; #define portMAX_DELAY ( TickType_t ) 0xffffffffUL /* Architecture specifics. */ +#define portARCH_NAME "ESP8266" #define portSTACK_GROWTH ( -1 ) #define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) #define portBYTE_ALIGNMENT 8 diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c index 829faf2..9b60797 100644 --- a/FreeRTOS/Source/queue.c +++ b/FreeRTOS/Source/queue.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -41,11 +41,11 @@ task.h is included from an application file. */ #include "croutine.h" #endif -/* Lint e961 and e750 are suppressed as a MISRA exception justified because the -MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -header files above, but not in this file, in order to generate the correct -privileged Vs unprivileged linkage and placement. */ -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ +/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified +because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined +for the header files above, but not in this file, in order to generate the +correct privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021. */ /* Constants used with the cRxLock and cTxLock structure members. */ @@ -56,17 +56,26 @@ privileged Vs unprivileged linkage and placement. */ pcTail members are used as pointers into the queue storage area. When the Queue_t structure is used to represent a mutex pcHead and pcTail pointers are not necessary, and the pcHead pointer is set to NULL to indicate that the -pcTail pointer actually points to the mutex holder (if any). Map alternative -names to the pcHead and pcTail structure members to ensure the readability of -the code is maintained despite this dual use of two structure members. An -alternative implementation would be to use a union, but use of a union is -against the coding standard (although an exception to the standard has been -permitted where the dual use also significantly changes the type of the -structure member). */ -#define pxMutexHolder pcTail +structure instead holds a pointer to the mutex holder (if any). Map alternative +names to the pcHead and structure member to ensure the readability of the code +is maintained. The QueuePointers_t and SemaphoreData_t types are used to form +a union as their usage is mutually exclusive dependent on what the queue is +being used for. */ #define uxQueueType pcHead #define queueQUEUE_IS_MUTEX NULL +typedef struct QueuePointers +{ + int8_t *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ + int8_t *pcReadFrom; /*< Points to the last place that a queued item was read from when the structure is used as a queue. */ +} QueuePointers_t; + +typedef struct SemaphoreData +{ + TaskHandle_t xMutexHolder; /*< The handle of the task that holds the mutex. */ + UBaseType_t uxRecursiveCallCount;/*< Maintains a count of the number of times a recursive mutex has been recursively 'taken' when the structure is used as a mutex. */ +} SemaphoreData_t; + /* Semaphores do not actually store or copy data, so have an item size of zero. */ #define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( UBaseType_t ) 0 ) @@ -83,18 +92,17 @@ zero. */ /* * Definition of the queue used by the scheduler. * Items are queued by copy, not reference. See the following link for the - * rationale: http://www.freertos.org/Embedded-RTOS-Queues.html + * rationale: https://www.freertos.org/Embedded-RTOS-Queues.html */ -typedef struct QueueDefinition +typedef struct QueueDefinition /* The old naming convention is used to prevent breaking kernel aware debuggers. */ { int8_t *pcHead; /*< Points to the beginning of the queue storage area. */ - int8_t *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ int8_t *pcWriteTo; /*< Points to the free next place in the storage area. */ - union /* Use of a union is an exception to the coding standard to ensure two mutually exclusive structure members don't appear simultaneously (wasting RAM). */ + union { - int8_t *pcReadFrom; /*< Points to the last place that a queued item was read from when the structure is used as a queue. */ - UBaseType_t uxRecursiveCallCount;/*< Maintains a count of the number of times a recursive mutex has been recursively 'taken' when the structure is used as a mutex. */ + QueuePointers_t xQueue; /*< Data required exclusively when this structure is used as a queue. */ + SemaphoreData_t xSemaphore; /*< Data required exclusively when this structure is used as a semaphore. */ } u; List_t xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ @@ -246,16 +254,16 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) { -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); taskENTER_CRITICAL(); { - pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); + pxQueue->u.xQueue.pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U; pxQueue->pcWriteTo = pxQueue->pcHead; - pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize ); + pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - 1U ) * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ pxQueue->cRxLock = queueUNLOCKED; pxQueue->cTxLock = queueUNLOCKED; @@ -301,7 +309,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; QueueHandle_t xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) { - Queue_t *pxNewQueue = NULL; + Queue_t *pxNewQueue; configASSERT( uxQueueLength > ( UBaseType_t ) 0 ); @@ -321,13 +329,14 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; the real queue and semaphore structures. */ volatile size_t xSize = sizeof( StaticQueue_t ); configASSERT( xSize == sizeof( Queue_t ) ); + ( void ) xSize; /* Keeps lint quiet when configASSERT() is not defined. */ } #endif /* configASSERT_DEFINED */ /* The address of a statically allocated queue was passed in, use it. The address of a statically allocated storage area was also passed in but is already set. */ - pxNewQueue = ( Queue_t * ) pxStaticQueue; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + pxNewQueue = ( Queue_t * ) pxStaticQueue; /*lint !e740 !e9087 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ if( pxNewQueue != NULL ) { @@ -376,13 +385,23 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ } - pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); + /* Allocate the queue and storage area. Justification for MISRA + deviation as follows: pvPortMalloc() always ensures returned memory + blocks are aligned per the requirements of the MCU stack. In this case + pvPortMalloc() must return a pointer that is guaranteed to meet the + alignment requirements of the Queue_t structure - which in this case + is an int8_t *. Therefore, whenever the stack alignment requirements + are greater than or equal to the pointer to char requirements the cast + is safe. In other cases alignment requirements are not strict (one or + two bytes). */ + pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); /*lint !e9087 !e9079 see comment above. */ if( pxNewQueue != NULL ) { /* Jump past the queue structure to find the location of the queue storage area. */ - pucQueueStorage = ( ( uint8_t * ) pxNewQueue ) + sizeof( Queue_t ); + pucQueueStorage = ( uint8_t * ) pxNewQueue; + pucQueueStorage += sizeof( Queue_t ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { @@ -459,11 +478,11 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT correctly for a generic queue, but this function is creating a mutex. Overwrite those members that need to be set differently - in particular the information required for priority inheritance. */ - pxNewQueue->pxMutexHolder = NULL; + pxNewQueue->u.xSemaphore.xMutexHolder = NULL; pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; /* In case this is a recursive mutex. */ - pxNewQueue->u.uxRecursiveCallCount = 0; + pxNewQueue->u.xSemaphore.uxRecursiveCallCount = 0; traceCREATE_MUTEX( pxNewQueue ); @@ -483,13 +502,13 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) { - Queue_t *pxNewQueue; + QueueHandle_t xNewQueue; const UBaseType_t uxMutexLength = ( UBaseType_t ) 1, uxMutexSize = ( UBaseType_t ) 0; - pxNewQueue = ( Queue_t * ) xQueueGenericCreate( uxMutexLength, uxMutexSize, ucQueueType ); - prvInitialiseMutex( pxNewQueue ); + xNewQueue = xQueueGenericCreate( uxMutexLength, uxMutexSize, ucQueueType ); + prvInitialiseMutex( ( Queue_t * ) xNewQueue ); - return pxNewQueue; + return xNewQueue; } #endif /* configUSE_MUTEXES */ @@ -499,17 +518,17 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) { - Queue_t *pxNewQueue; + QueueHandle_t xNewQueue; const UBaseType_t uxMutexLength = ( UBaseType_t ) 1, uxMutexSize = ( UBaseType_t ) 0; /* Prevent compiler warnings about unused parameters if configUSE_TRACE_FACILITY does not equal 1. */ ( void ) ucQueueType; - pxNewQueue = ( Queue_t * ) xQueueGenericCreateStatic( uxMutexLength, uxMutexSize, NULL, pxStaticQueue, ucQueueType ); - prvInitialiseMutex( pxNewQueue ); + xNewQueue = xQueueGenericCreateStatic( uxMutexLength, uxMutexSize, NULL, pxStaticQueue, ucQueueType ); + prvInitialiseMutex( ( Queue_t * ) xNewQueue ); - return pxNewQueue; + return xNewQueue; } #endif /* configUSE_MUTEXES */ @@ -517,9 +536,10 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) - void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) + TaskHandle_t xQueueGetMutexHolder( QueueHandle_t xSemaphore ) { - void *pxReturn; + TaskHandle_t pxReturn; + Queue_t * const pxSemaphore = ( Queue_t * ) xSemaphore; /* This function is called by xSemaphoreGetMutexHolder(), and should not be called directly. Note: This is a good way of determining if the @@ -528,9 +548,9 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT following critical section exiting and the function returning. */ taskENTER_CRITICAL(); { - if( ( ( Queue_t * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX ) + if( pxSemaphore->uxQueueType == queueQUEUE_IS_MUTEX ) { - pxReturn = ( void * ) ( ( Queue_t * ) xSemaphore )->pxMutexHolder; + pxReturn = pxSemaphore->u.xSemaphore.xMutexHolder; } else { @@ -547,9 +567,9 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) - void* xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) + TaskHandle_t xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) { - void *pxReturn; + TaskHandle_t pxReturn; configASSERT( xSemaphore ); @@ -558,7 +578,7 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT not required here. */ if( ( ( Queue_t * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX ) { - pxReturn = ( void * ) ( ( Queue_t * ) xSemaphore )->pxMutexHolder; + pxReturn = ( ( Queue_t * ) xSemaphore )->u.xSemaphore.xMutexHolder; } else { @@ -580,25 +600,25 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT configASSERT( pxMutex ); - /* If this is the task that holds the mutex then pxMutexHolder will not + /* If this is the task that holds the mutex then xMutexHolder will not change outside of this task. If this task does not hold the mutex then pxMutexHolder can never coincidentally equal the tasks handle, and as this is the only condition we are interested in it does not matter if pxMutexHolder is accessed simultaneously by another task. Therefore no mutual exclusion is required to test the pxMutexHolder variable. */ - if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Not a redundant cast as TaskHandle_t is a typedef. */ + if( pxMutex->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle() ) { traceGIVE_MUTEX_RECURSIVE( pxMutex ); - /* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to + /* uxRecursiveCallCount cannot be zero if xMutexHolder is equal to the task handle, therefore no underflow check is required. Also, uxRecursiveCallCount is only modified by the mutex holder, and as there can only be one, no mutual exclusion is required to modify the uxRecursiveCallCount member. */ - ( pxMutex->u.uxRecursiveCallCount )--; + ( pxMutex->u.xSemaphore.uxRecursiveCallCount )--; /* Has the recursive call count unwound to 0? */ - if( pxMutex->u.uxRecursiveCallCount == ( UBaseType_t ) 0 ) + if( pxMutex->u.xSemaphore.uxRecursiveCallCount == ( UBaseType_t ) 0 ) { /* Return the mutex. This will automatically unblock any other task that might be waiting to access the mutex. */ @@ -640,9 +660,9 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT traceTAKE_MUTEX_RECURSIVE( pxMutex ); - if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ + if( pxMutex->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle() ) { - ( pxMutex->u.uxRecursiveCallCount )++; + ( pxMutex->u.xSemaphore.uxRecursiveCallCount )++; xReturn = pdPASS; } else @@ -654,7 +674,7 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength, const UBaseT before reaching here. */ if( xReturn != pdFAIL ) { - ( pxMutex->u.uxRecursiveCallCount )++; + ( pxMutex->u.xSemaphore.uxRecursiveCallCount )++; } else { @@ -728,7 +748,7 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQ { BaseType_t xEntryTimeSet = pdFALSE, xYieldRequired; TimeOut_t xTimeOut; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); @@ -740,9 +760,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; #endif - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ + /*lint -save -e904 This function relaxes the coding standard somewhat to + allow return statements within the function itself. This is done in the + interest of execution time efficiency. */ for( ;; ) { taskENTER_CRITICAL(); @@ -930,7 +950,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; traceQUEUE_SEND_FAILED( pxQueue ); return errQUEUE_FULL; } - } + } /*lint -restore */ } /*-----------------------------------------------------------*/ @@ -938,7 +958,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pv { BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); @@ -1089,7 +1109,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherP { BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; /* Similar to xQueueGenericSendFromISR() but used with semaphores where the item size is 0. Don't directly wake a task that was blocked on a queue @@ -1106,7 +1126,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* Normally a mutex would not be given from an interrupt, especially if there is a mutex holder, as priority inheritance makes no sense for an interrupts, only tasks. */ - configASSERT( !( ( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) && ( pxQueue->pxMutexHolder != NULL ) ) ); + configASSERT( !( ( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) && ( pxQueue->u.xSemaphore.xMutexHolder != NULL ) ) ); /* RTOS ports that support interrupt nesting have the concept of a maximum system call (or maximum API call) interrupt priority. Interrupts that are @@ -1254,7 +1274,7 @@ BaseType_t xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_ { BaseType_t xEntryTimeSet = pdFALSE; TimeOut_t xTimeOut; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; /* Check the pointer is not NULL. */ configASSERT( ( pxQueue ) ); @@ -1271,10 +1291,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; #endif - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - + /*lint -save -e904 This function relaxes the coding standard somewhat to + allow return statements within the function itself. This is done in the + interest of execution time efficiency. */ for( ;; ) { taskENTER_CRITICAL(); @@ -1388,7 +1407,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; mtCOVERAGE_TEST_MARKER(); } } - } + } /*lint -restore */ } /*-----------------------------------------------------------*/ @@ -1396,7 +1415,7 @@ BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) { BaseType_t xEntryTimeSet = pdFALSE; TimeOut_t xTimeOut; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; #if( configUSE_MUTEXES == 1 ) BaseType_t xInheritanceOccurred = pdFALSE; @@ -1417,10 +1436,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; #endif - /* This function relaxes the coding standard somewhat to allow return + /*lint -save -e904 This function relaxes the coding standard somewhat to allow return statements within the function itself. This is done in the interest of execution time efficiency. */ - for( ;; ) { taskENTER_CRITICAL(); @@ -1445,7 +1463,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; { /* Record the information required to implement priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ + pxQueue->u.xSemaphore.xMutexHolder = pvTaskIncrementMutexHeldCount(); } else { @@ -1533,7 +1551,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; { taskENTER_CRITICAL(); { - xInheritanceOccurred = xTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); + xInheritanceOccurred = xTaskPriorityInherit( pxQueue->u.xSemaphore.xMutexHolder ); } taskEXIT_CRITICAL(); } @@ -1592,7 +1610,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; again, but only as low as the next highest priority task that is waiting for the same mutex. */ uxHighestWaitingPriority = prvGetDisinheritPriorityAfterTimeout( pxQueue ); - vTaskPriorityDisinheritAfterTimeout( ( void * ) pxQueue->pxMutexHolder, uxHighestWaitingPriority ); + vTaskPriorityDisinheritAfterTimeout( pxQueue->u.xSemaphore.xMutexHolder, uxHighestWaitingPriority ); } taskEXIT_CRITICAL(); } @@ -1607,7 +1625,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; mtCOVERAGE_TEST_MARKER(); } } - } + } /*lint -restore */ } /*-----------------------------------------------------------*/ @@ -1616,7 +1634,7 @@ BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t x BaseType_t xEntryTimeSet = pdFALSE; TimeOut_t xTimeOut; int8_t *pcOriginalReadPosition; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; /* Check the pointer is not NULL. */ configASSERT( ( pxQueue ) ); @@ -1633,10 +1651,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; #endif - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - + /*lint -save -e904 This function relaxes the coding standard somewhat to + allow return statements within the function itself. This is done in the + interest of execution time efficiency. */ for( ;; ) { taskENTER_CRITICAL(); @@ -1650,13 +1667,13 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* Remember the read position so it can be reset after the data is read from the queue as this function is only peeking the data, not removing it. */ - pcOriginalReadPosition = pxQueue->u.pcReadFrom; + pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; prvCopyDataFromQueue( pxQueue, pvBuffer ); traceQUEUE_PEEK( pxQueue ); /* The data is not being removed, so reset the read pointer. */ - pxQueue->u.pcReadFrom = pcOriginalReadPosition; + pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; /* The data is being left in the queue, so see if there are any other tasks waiting for the data. */ @@ -1757,7 +1774,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; mtCOVERAGE_TEST_MARKER(); } } - } + } /*lint -restore */ } /*-----------------------------------------------------------*/ @@ -1765,7 +1782,7 @@ BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, Ba { BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); @@ -1857,7 +1874,7 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; int8_t *pcOriginalReadPosition; -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); @@ -1888,9 +1905,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; /* Remember the read position so it can be reset as nothing is actually being removed from the queue. */ - pcOriginalReadPosition = pxQueue->u.pcReadFrom; + pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; prvCopyDataFromQueue( pxQueue, pvBuffer ); - pxQueue->u.pcReadFrom = pcOriginalReadPosition; + pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; xReturn = pdPASS; } @@ -1925,9 +1942,8 @@ UBaseType_t uxReturn; UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue ) { UBaseType_t uxReturn; -Queue_t *pxQueue; +Queue_t * const pxQueue = xQueue; - pxQueue = ( Queue_t * ) xQueue; configASSERT( pxQueue ); taskENTER_CRITICAL(); @@ -1943,10 +1959,10 @@ Queue_t *pxQueue; UBaseType_t uxQueueMessagesWaitingFromISR( const QueueHandle_t xQueue ) { UBaseType_t uxReturn; +Queue_t * const pxQueue = xQueue; - configASSERT( xQueue ); - - uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting; + configASSERT( pxQueue ); + uxReturn = pxQueue->uxMessagesWaiting; return uxReturn; } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ @@ -1954,7 +1970,7 @@ UBaseType_t uxReturn; void vQueueDelete( QueueHandle_t xQueue ) { -Queue_t * const pxQueue = ( Queue_t * ) xQueue; +Queue_t * const pxQueue = xQueue; configASSERT( pxQueue ); traceQUEUE_DELETE( pxQueue ); @@ -2036,9 +2052,9 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue; other tasks that are waiting for the same mutex. For this purpose, return the priority of the highest priority task that is waiting for the mutex. */ - if( listCURRENT_LIST_LENGTH( &( pxQueue->xTasksWaitingToReceive ) ) > 0 ) + if( listCURRENT_LIST_LENGTH( &( pxQueue->xTasksWaitingToReceive ) ) > 0U ) { - uxHighestPriorityOfWaitingTasks = configMAX_PRIORITIES - listGET_ITEM_VALUE_OF_HEAD_ENTRY( &( pxQueue->xTasksWaitingToReceive ) ); + uxHighestPriorityOfWaitingTasks = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) listGET_ITEM_VALUE_OF_HEAD_ENTRY( &( pxQueue->xTasksWaitingToReceive ) ); } else { @@ -2067,8 +2083,8 @@ UBaseType_t uxMessagesWaiting; if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) { /* The mutex is no longer being held. */ - xReturn = xTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); - pxQueue->pxMutexHolder = NULL; + xReturn = xTaskPriorityDisinherit( pxQueue->u.xSemaphore.xMutexHolder ); + pxQueue->u.xSemaphore.xMutexHolder = NULL; } else { @@ -2079,9 +2095,9 @@ UBaseType_t uxMessagesWaiting; } else if( xPosition == queueSEND_TO_BACK ) { - ( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. */ - pxQueue->pcWriteTo += pxQueue->uxItemSize; - if( pxQueue->pcWriteTo >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ + ( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 !e9087 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. */ + pxQueue->pcWriteTo += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ + if( pxQueue->pcWriteTo >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ { pxQueue->pcWriteTo = pxQueue->pcHead; } @@ -2092,11 +2108,11 @@ UBaseType_t uxMessagesWaiting; } else { - ( void ) memcpy( ( void * ) pxQueue->u.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ - pxQueue->u.pcReadFrom -= pxQueue->uxItemSize; - if( pxQueue->u.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ + ( void ) memcpy( ( void * ) pxQueue->u.xQueue.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e9087 !e418 MISRA exception as the casts are only redundant for some ports. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. Assert checks null pointer only used when length is 0. */ + pxQueue->u.xQueue.pcReadFrom -= pxQueue->uxItemSize; + if( pxQueue->u.xQueue.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ { - pxQueue->u.pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize ); + pxQueue->u.xQueue.pcReadFrom = ( pxQueue->u.xQueue.pcTail - pxQueue->uxItemSize ); } else { @@ -2134,16 +2150,16 @@ static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer { if( pxQueue->uxItemSize != ( UBaseType_t ) 0 ) { - pxQueue->u.pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ + pxQueue->u.xQueue.pcReadFrom += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ + if( pxQueue->u.xQueue.pcReadFrom >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ { - pxQueue->u.pcReadFrom = pxQueue->pcHead; + pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead; } else { mtCOVERAGE_TEST_MARKER(); } - ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports. Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. */ + ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.xQueue.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 !e9087 MISRA exception as the casts are only redundant for some ports. Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. */ } } /*-----------------------------------------------------------*/ @@ -2292,9 +2308,10 @@ BaseType_t xReturn; BaseType_t xQueueIsQueueEmptyFromISR( const QueueHandle_t xQueue ) { BaseType_t xReturn; +Queue_t * const pxQueue = xQueue; - configASSERT( xQueue ); - if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( UBaseType_t ) 0 ) + configASSERT( pxQueue ); + if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) { xReturn = pdTRUE; } @@ -2331,9 +2348,10 @@ BaseType_t xReturn; BaseType_t xQueueIsQueueFullFromISR( const QueueHandle_t xQueue ) { BaseType_t xReturn; +Queue_t * const pxQueue = xQueue; - configASSERT( xQueue ); - if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( ( Queue_t * ) xQueue )->uxLength ) + configASSERT( pxQueue ); + if( pxQueue->uxMessagesWaiting == pxQueue->uxLength ) { xReturn = pdTRUE; } @@ -2351,7 +2369,7 @@ BaseType_t xReturn; BaseType_t xQueueCRSend( QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait ) { BaseType_t xReturn; - Queue_t * const pxQueue = ( Queue_t * ) xQueue; + Queue_t * const pxQueue = xQueue; /* If the queue is already full we may have to block. A critical section is required to prevent an interrupt removing something from the queue @@ -2428,7 +2446,7 @@ BaseType_t xReturn; BaseType_t xQueueCRReceive( QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait ) { BaseType_t xReturn; - Queue_t * const pxQueue = ( Queue_t * ) xQueue; + Queue_t * const pxQueue = xQueue; /* If the queue is already empty we may have to block. A critical section is required to prevent an interrupt adding something to the queue @@ -2465,17 +2483,17 @@ BaseType_t xReturn; if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* Data is available from the queue. */ - pxQueue->u.pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) + pxQueue->u.xQueue.pcReadFrom += pxQueue->uxItemSize; + if( pxQueue->u.xQueue.pcReadFrom >= pxQueue->u.xQueue.pcTail ) { - pxQueue->u.pcReadFrom = pxQueue->pcHead; + pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead; } else { mtCOVERAGE_TEST_MARKER(); } --( pxQueue->uxMessagesWaiting ); - ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); + ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.xQueue.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); xReturn = pdPASS; @@ -2517,7 +2535,7 @@ BaseType_t xReturn; BaseType_t xQueueCRSendFromISR( QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken ) { - Queue_t * const pxQueue = ( Queue_t * ) xQueue; + Queue_t * const pxQueue = xQueue; /* Cannot block within an ISR so if there is no space on the queue then exit without doing anything. */ @@ -2566,24 +2584,24 @@ BaseType_t xReturn; BaseType_t xQueueCRReceiveFromISR( QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxCoRoutineWoken ) { BaseType_t xReturn; - Queue_t * const pxQueue = ( Queue_t * ) xQueue; + Queue_t * const pxQueue = xQueue; /* We cannot block from an ISR, so check there is data available. If not then just leave without doing anything. */ if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) { /* Copy the data from the queue. */ - pxQueue->u.pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) + pxQueue->u.xQueue.pcReadFrom += pxQueue->uxItemSize; + if( pxQueue->u.xQueue.pcReadFrom >= pxQueue->u.xQueue.pcTail ) { - pxQueue->u.pcReadFrom = pxQueue->pcHead; + pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead; } else { mtCOVERAGE_TEST_MARKER(); } --( pxQueue->uxMessagesWaiting ); - ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); + ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.xQueue.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); if( ( *pxCoRoutineWoken ) == pdFALSE ) { @@ -2714,7 +2732,7 @@ BaseType_t xReturn; void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) { - Queue_t * const pxQueue = ( Queue_t * ) xQueue; + Queue_t * const pxQueue = xQueue; /* This function should not be called by application code hence the 'Restricted' in its name. It is not part of the public API. It is diff --git a/FreeRTOS/Source/stream_buffer.c b/FreeRTOS/Source/stream_buffer.c index f72bc5f..134c741 100644 --- a/FreeRTOS/Source/stream_buffer.c +++ b/FreeRTOS/Source/stream_buffer.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -43,11 +43,11 @@ task.h is included from an application file. */ #error configUSE_TASK_NOTIFICATIONS must be set to 1 to build stream_buffer.c #endif -/* Lint e961 and e750 are suppressed as a MISRA exception justified because the -MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -header files above, but not in this file, in order to generate the correct -privileged Vs unprivileged linkage and placement. */ -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ +/* Lint e961, e9021 and e750 are suppressed as a MISRA exception justified +because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined +for the header files above, but not in this file, in order to generate the +correct privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021. */ /* If the user has not provided application specific Rx notification macros, or #defined the notification macros away, them provide default implementations @@ -138,7 +138,7 @@ that uses task notifications. */ /*-----------------------------------------------------------*/ /* Structure that hold state information on the buffer. */ -typedef struct xSTREAM_BUFFER /*lint !e9058 Style convention uses tag. */ +typedef struct StreamBufferDef_t /*lint !e9058 Style convention uses tag. */ { volatile size_t xTail; /* Index to the next item to read within the buffer. */ volatile size_t xHead; /* Index to the next item to write within the buffer. */ @@ -210,7 +210,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, uint8_t * const pucBuffer, size_t xBufferSizeBytes, size_t xTriggerLevelBytes, - BaseType_t xIsMessageBuffer ) PRIVILEGED_FUNCTION; + uint8_t ucFlags ) PRIVILEGED_FUNCTION; /*-----------------------------------------------------------*/ @@ -219,19 +219,31 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, StreamBufferHandle_t xStreamBufferGenericCreate( size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer ) { uint8_t *pucAllocatedMemory; + uint8_t ucFlags; /* In case the stream buffer is going to be used as a message buffer (that is, it will hold discrete messages with a little meta data that says how big the next message is) check the buffer will be large enough to hold at least one message. */ - configASSERT( xBufferSizeBytes > sbBYTES_TO_STORE_MESSAGE_LENGTH ); + if( xIsMessageBuffer == pdTRUE ) + { + /* Is a message buffer but not statically allocated. */ + ucFlags = sbFLAGS_IS_MESSAGE_BUFFER; + configASSERT( xBufferSizeBytes > sbBYTES_TO_STORE_MESSAGE_LENGTH ); + } + else + { + /* Not a message buffer and not statically allocated. */ + ucFlags = 0; + configASSERT( xBufferSizeBytes > 0 ); + } configASSERT( xTriggerLevelBytes <= xBufferSizeBytes ); /* A trigger level of 0 would cause a waiting task to unblock even when the buffer was empty. */ if( xTriggerLevelBytes == ( size_t ) 0 ) { - xTriggerLevelBytes = ( size_t ) 1; /*lint !e9044 Parameter modified to ensure it doesn't have a dangerous value. */ + xTriggerLevelBytes = ( size_t ) 1; } /* A stream buffer requires a StreamBuffer_t structure and a buffer. @@ -251,7 +263,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, pucAllocatedMemory + sizeof( StreamBuffer_t ), /* Storage area follows. */ /*lint !e9016 Indexing past structure valid for uint8_t pointer, also storage area has no alignment requirement. */ xBufferSizeBytes, xTriggerLevelBytes, - xIsMessageBuffer ); + ucFlags ); traceSTREAM_BUFFER_CREATE( ( ( StreamBuffer_t * ) pucAllocatedMemory ), xIsMessageBuffer ); } @@ -260,7 +272,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ); } - return ( StreamBufferHandle_t * ) pucAllocatedMemory; /*lint !e9087 !e826 Safe cast as allocated memory is aligned. */ + return ( StreamBufferHandle_t ) pucAllocatedMemory; /*lint !e9087 !e826 Safe cast as allocated memory is aligned. */ } #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ @@ -276,6 +288,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, { StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) pxStaticStreamBuffer; /*lint !e740 !e9087 Safe cast as StaticStreamBuffer_t is opaque Streambuffer_t. */ StreamBufferHandle_t xReturn; + uint8_t ucFlags; configASSERT( pucStreamBufferStorageArea ); configASSERT( pxStaticStreamBuffer ); @@ -285,7 +298,18 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, the buffer was empty. */ if( xTriggerLevelBytes == ( size_t ) 0 ) { - xTriggerLevelBytes = ( size_t ) 1; /*lint !e9044 Function parameter deliberately modified to ensure it is in range. */ + xTriggerLevelBytes = ( size_t ) 1; + } + + if( xIsMessageBuffer != pdFALSE ) + { + /* Statically allocated message buffer. */ + ucFlags = sbFLAGS_IS_MESSAGE_BUFFER | sbFLAGS_IS_STATICALLY_ALLOCATED; + } + else + { + /* Statically allocated stream buffer. */ + ucFlags = sbFLAGS_IS_STATICALLY_ALLOCATED; } /* In case the stream buffer is going to be used as a message buffer @@ -301,7 +325,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, message buffer structure. */ volatile size_t xSize = sizeof( StaticStreamBuffer_t ); configASSERT( xSize == sizeof( StreamBuffer_t ) ); - } + } /*lint !e529 xSize is referenced is configASSERT() is defined. */ #endif /* configASSERT_DEFINED */ if( ( pucStreamBufferStorageArea != NULL ) && ( pxStaticStreamBuffer != NULL ) ) @@ -310,7 +334,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, pucStreamBufferStorageArea, xBufferSizeBytes, xTriggerLevelBytes, - xIsMessageBuffer ); + ucFlags ); /* Remember this was statically allocated in case it is ever deleted again. */ @@ -334,7 +358,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, void vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) { -StreamBuffer_t * pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * pxStreamBuffer = xStreamBuffer; configASSERT( pxStreamBuffer ); @@ -360,15 +384,15 @@ StreamBuffer_t * pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9 { /* The structure and buffer were not allocated dynamically and cannot be freed - just scrub the structure so future use will assert. */ - memset( pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); + ( void ) memset( pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); } } /*-----------------------------------------------------------*/ BaseType_t xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ -BaseType_t xReturn = pdFAIL, xIsMessageBuffer; +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; +BaseType_t xReturn = pdFAIL; #if( configUSE_TRACE_FACILITY == 1 ) UBaseType_t uxStreamBufferNumber; @@ -385,35 +409,30 @@ BaseType_t xReturn = pdFAIL, xIsMessageBuffer; #endif /* Can only reset a message buffer if there are no tasks blocked on it. */ - if( pxStreamBuffer->xTaskWaitingToReceive == NULL ) + taskENTER_CRITICAL(); { - if( pxStreamBuffer->xTaskWaitingToSend == NULL ) + if( pxStreamBuffer->xTaskWaitingToReceive == NULL ) { - if( ( pxStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ) != ( uint8_t ) 0 ) + if( pxStreamBuffer->xTaskWaitingToSend == NULL ) { - xIsMessageBuffer = pdTRUE; - } - else - { - xIsMessageBuffer = pdFALSE; - } + prvInitialiseNewStreamBuffer( pxStreamBuffer, + pxStreamBuffer->pucBuffer, + pxStreamBuffer->xLength, + pxStreamBuffer->xTriggerLevelBytes, + pxStreamBuffer->ucFlags ); + xReturn = pdPASS; - prvInitialiseNewStreamBuffer( pxStreamBuffer, - pxStreamBuffer->pucBuffer, - pxStreamBuffer->xLength, - pxStreamBuffer->xTriggerLevelBytes, - xIsMessageBuffer ); - xReturn = pdPASS; + #if( configUSE_TRACE_FACILITY == 1 ) + { + pxStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; + } + #endif - #if( configUSE_TRACE_FACILITY == 1 ) - { - pxStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; + traceSTREAM_BUFFER_RESET( xStreamBuffer ); } - #endif - - traceSTREAM_BUFFER_RESET( xStreamBuffer ); } } + taskEXIT_CRITICAL(); return xReturn; } @@ -421,7 +440,7 @@ BaseType_t xReturn = pdFAIL, xIsMessageBuffer; BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; BaseType_t xReturn; configASSERT( pxStreamBuffer ); @@ -429,7 +448,7 @@ BaseType_t xReturn; /* It is not valid for the trigger level to be 0. */ if( xTriggerLevel == ( size_t ) 0 ) { - xTriggerLevel = ( size_t ) 1; /*lint !e9044 Parameter modified to ensure it doesn't have a dangerous value. */ + xTriggerLevel = ( size_t ) 1; } /* The trigger level is the number of bytes that must be in the stream @@ -450,7 +469,7 @@ BaseType_t xReturn; size_t xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) { -const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +const StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xSpace; configASSERT( pxStreamBuffer ); @@ -474,7 +493,7 @@ size_t xSpace; size_t xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) { -const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +const StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReturn; configASSERT( pxStreamBuffer ); @@ -489,7 +508,7 @@ size_t xStreamBufferSend( StreamBufferHandle_t xStreamBuffer, size_t xDataLengthBytes, TickType_t xTicksToWait ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReturn, xSpace = 0; size_t xRequiredSpace = xDataLengthBytes; TimeOut_t xTimeOut; @@ -593,7 +612,7 @@ size_t xStreamBufferSendFromISR( StreamBufferHandle_t xStreamBuffer, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReturn, xSpace; size_t xRequiredSpace = xDataLengthBytes; @@ -660,7 +679,7 @@ static size_t prvWriteMessageToBuffer( StreamBuffer_t * const pxStreamBuffer, stream of bytes rather than discrete messages. Write as many bytes as possible. */ xShouldWrite = pdTRUE; - xDataLengthBytes = configMIN( xDataLengthBytes, xSpace ); /*lint !e9044 Function parameter modified to ensure it is capped to available space. */ + xDataLengthBytes = configMIN( xDataLengthBytes, xSpace ); } else if( xSpace >= xRequiredSpace ) { @@ -696,7 +715,7 @@ size_t xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer, size_t xBufferLengthBytes, TickType_t xTicksToWait ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength; configASSERT( pvRxData ); @@ -797,7 +816,7 @@ size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength; size_t xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReturn, xBytesAvailable, xOriginalTail; configMESSAGE_BUFFER_LENGTH_TYPE xTempReturn; @@ -844,7 +863,7 @@ size_t xStreamBufferReceiveFromISR( StreamBufferHandle_t xStreamBuffer, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; size_t xReceivedLength = 0, xBytesAvailable, xBytesToStoreMessageLength; configASSERT( pvRxData ); @@ -950,7 +969,7 @@ configMESSAGE_BUFFER_LENGTH_TYPE xTempNextMessageLength; BaseType_t xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) { -const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +const StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; BaseType_t xReturn; size_t xTail; @@ -975,7 +994,7 @@ BaseType_t xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) { BaseType_t xReturn; size_t xBytesToStoreMessageLength; -const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +const StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; configASSERT( pxStreamBuffer ); @@ -1008,7 +1027,7 @@ const StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; @@ -1038,7 +1057,7 @@ UBaseType_t uxSavedInterruptStatus; BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken ) { -StreamBuffer_t * const pxStreamBuffer = ( StreamBuffer_t * ) xStreamBuffer; /*lint !e9087 !e9079 Safe cast as StreamBufferHandle_t is opaque Streambuffer_t. */ +StreamBuffer_t * const pxStreamBuffer = xStreamBuffer; BaseType_t xReturn; UBaseType_t uxSavedInterruptStatus; @@ -1081,7 +1100,7 @@ size_t xNextHead, xFirstLength; /* Write as many bytes as can be written in the first write. */ configASSERT( ( xNextHead + xFirstLength ) <= pxStreamBuffer->xLength ); - memcpy( ( void* ) ( &( pxStreamBuffer->pucBuffer[ xNextHead ] ) ), ( const void * ) pucData, xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + ( void ) memcpy( ( void* ) ( &( pxStreamBuffer->pucBuffer[ xNextHead ] ) ), ( const void * ) pucData, xFirstLength ); /*lint !e9087 memcpy() requires void *. */ /* If the number of bytes written was less than the number that could be written in the first write... */ @@ -1089,7 +1108,7 @@ size_t xNextHead, xFirstLength; { /* ...then write the remaining bytes to the start of the buffer. */ configASSERT( ( xCount - xFirstLength ) <= pxStreamBuffer->xLength ); - memcpy( ( void * ) pxStreamBuffer->pucBuffer, ( const void * ) &( pucData[ xFirstLength ] ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + ( void ) memcpy( ( void * ) pxStreamBuffer->pucBuffer, ( const void * ) &( pucData[ xFirstLength ] ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ } else { @@ -1132,7 +1151,7 @@ size_t xCount, xFirstLength, xNextTail; read. Asserts check bounds of read and write. */ configASSERT( xFirstLength <= xMaxCount ); configASSERT( ( xNextTail + xFirstLength ) <= pxStreamBuffer->xLength ); - memcpy( ( void * ) pucData, ( const void * ) &( pxStreamBuffer->pucBuffer[ xNextTail ] ), xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + ( void ) memcpy( ( void * ) pucData, ( const void * ) &( pxStreamBuffer->pucBuffer[ xNextTail ] ), xFirstLength ); /*lint !e9087 memcpy() requires void *. */ /* If the total number of wanted bytes is greater than the number that could be read in the first read... */ @@ -1140,7 +1159,7 @@ size_t xCount, xFirstLength, xNextTail; { /*...then read the remaining bytes from the start of the buffer. */ configASSERT( xCount <= xMaxCount ); - memcpy( ( void * ) &( pucData[ xFirstLength ] ), ( void * ) ( pxStreamBuffer->pucBuffer ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ + ( void ) memcpy( ( void * ) &( pucData[ xFirstLength ] ), ( void * ) ( pxStreamBuffer->pucBuffer ), xCount - xFirstLength ); /*lint !e9087 memcpy() requires void *. */ } else { @@ -1191,7 +1210,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, uint8_t * const pucBuffer, size_t xBufferSizeBytes, size_t xTriggerLevelBytes, - BaseType_t xIsMessageBuffer ) + uint8_t ucFlags ) { /* Assert here is deliberately writing to the entire buffer to ensure it can be written to without generating exceptions, and is setting the buffer to a @@ -1203,25 +1222,21 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, result in confusion as to what is actually being observed. */ const BaseType_t xWriteValue = 0x55; configASSERT( memset( pucBuffer, ( int ) xWriteValue, xBufferSizeBytes ) == pucBuffer ); - } + } /*lint !e529 !e438 xWriteValue is only used if configASSERT() is defined. */ #endif - memset( ( void * ) pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); /*lint !e9087 memset() requires void *. */ + ( void ) memset( ( void * ) pxStreamBuffer, 0x00, sizeof( StreamBuffer_t ) ); /*lint !e9087 memset() requires void *. */ pxStreamBuffer->pucBuffer = pucBuffer; pxStreamBuffer->xLength = xBufferSizeBytes; pxStreamBuffer->xTriggerLevelBytes = xTriggerLevelBytes; - - if( xIsMessageBuffer != pdFALSE ) - { - pxStreamBuffer->ucFlags |= sbFLAGS_IS_MESSAGE_BUFFER; - } + pxStreamBuffer->ucFlags = ucFlags; } #if ( configUSE_TRACE_FACILITY == 1 ) UBaseType_t uxStreamBufferGetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer ) { - return ( ( StreamBuffer_t * ) xStreamBuffer )->uxStreamBufferNumber; + return xStreamBuffer->uxStreamBufferNumber; } #endif /* configUSE_TRACE_FACILITY */ @@ -1231,7 +1246,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, void vStreamBufferSetStreamBufferNumber( StreamBufferHandle_t xStreamBuffer, UBaseType_t uxStreamBufferNumber ) { - ( ( StreamBuffer_t * ) xStreamBuffer )->uxStreamBufferNumber = uxStreamBufferNumber; + xStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; } #endif /* configUSE_TRACE_FACILITY */ @@ -1241,7 +1256,7 @@ static void prvInitialiseNewStreamBuffer( StreamBuffer_t * const pxStreamBuffer, uint8_t ucStreamBufferGetStreamBufferType( StreamBufferHandle_t xStreamBuffer ) { - return ( ( StreamBuffer_t * )xStreamBuffer )->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER; + return ( xStreamBuffer->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER ); } #endif /* configUSE_TRACE_FACILITY */ diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c index b7af046..ff65773 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -40,11 +40,11 @@ task.h is included from an application file. */ #include "timers.h" #include "stack_macros.h" -/* Lint e961 and e750 are suppressed as a MISRA exception justified because the -MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -header files above, but not in this file, in order to generate the correct -privileged Vs unprivileged linkage and placement. */ -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ +/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified +because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined +for the header files above, but not in this file, in order to generate the +correct privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750 !e9021. */ /* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting functions but without including stdio.h here. */ @@ -75,24 +75,7 @@ functions but without including stdio.h here. */ */ #define tskSTACK_FILL_BYTE ( 0xa5U ) -/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using -dynamically allocated RAM, in which case when any task is deleted it is known -that both the task's stack and TCB need to be freed. Sometimes the -FreeRTOSConfig.h settings only allow a task to be created using statically -allocated RAM, in which case when any task is deleted it is known that neither -the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h -settings allow a task to be created using either statically or dynamically -allocated RAM, in which case a member of the TCB is used to record whether the -stack and/or TCB were allocated statically or dynamically, so when a task is -deleted the RAM that was allocated dynamically is freed again and no attempt is -made to free the RAM that was allocated statically. -tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a -task to be created using either statically or dynamically allocated RAM. Note -that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with -a statically allocated stack and a dynamically allocated TCB. -!!!NOTE!!! If the definition of tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is -changed then the definition of StaticTask_t must also be updated. */ -#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) +/* Bits used to recored how a task's stack and TCB were allocated. */ #define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 ) #define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 ) #define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 ) @@ -100,7 +83,7 @@ changed then the definition of StaticTask_t must also be updated. */ /* If any of the following are set then task stacks are filled with a known value so the high water mark can be determined. If none of the following are set then don't fill the stack so there is no unnecessary dependency on memset. */ -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) +#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) ) #define tskSET_NEW_STACKS_TO_KNOWN_VALUE 1 #else #define tskSET_NEW_STACKS_TO_KNOWN_VALUE 0 @@ -245,7 +228,7 @@ count overflows. */ * task should be used in place of the parameter. This macro simply checks to * see if the parameter is NULL and returns a pointer to the appropriate TCB. */ -#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) ) +#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? pxCurrentTCB : ( pxHandle ) ) /* The item value of the event list item is normally used to hold the priority of the task to which it belongs (coded to allow it to be held in reverse @@ -266,7 +249,7 @@ to its original value when it is released. */ * and stores task state information, including a pointer to the task's context * (the task's run time environment, including register values) */ -typedef struct tskTaskControlBlock +typedef struct tskTaskControlBlock /* The old naming convention is used to prevent breaking kernel aware debuggers. */ { volatile StackType_t *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */ @@ -326,9 +309,9 @@ typedef struct tskTaskControlBlock volatile uint8_t ucNotifyState; #endif - /* See the comments above the definition of + /* See the comments in FreeRTOS.h with the definition of tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE. */ - #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */ + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 !e9029 Macro has been consolidated for readability reasons. */ uint8_t ucStaticallyAllocated; /*< Set to pdTRUE if the task is a statically allocated to ensure no attempt is made to free the memory. */ #endif @@ -336,6 +319,10 @@ typedef struct tskTaskControlBlock uint8_t ucDelayAborted; #endif + #if( configUSE_POSIX_ERRNO == 1 ) + int iTaskErrno; + #endif + } tskTCB; /* The old tskTCB name is maintained above then typedefed to the new TCB_t name @@ -344,10 +331,12 @@ typedef tskTCB TCB_t; /*lint -save -e956 A manual analysis and inspection has been used to determine which static variables must be declared volatile. */ - PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL; -/* Lists for ready and blocked tasks. --------------------*/ +/* Lists for ready and blocked tasks. -------------------- +xDelayedTaskList1 and xDelayedTaskList2 could be move to function scople but +doing so breaks some kernel aware debuggers and debuggers that rely on removing +the static qualifier. */ PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ];/*< Prioritised ready tasks. */ PRIVILEGED_DATA static List_t xDelayedTaskList1; /*< Delayed tasks. */ PRIVILEGED_DATA static List_t xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ @@ -368,6 +357,12 @@ PRIVILEGED_DATA static List_t xPendingReadyList; /*< Tasks that have been r #endif +/* Global POSIX errno. Its value is changed upon context switching to match +the errno of the currently running task. */ +#if ( configUSE_POSIX_ERRNO == 1 ) + int FreeRTOS_errno = 0; +#endif + /* Other file private variables. --------------------------------*/ PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType_t ) 0U; PRIVILEGED_DATA static volatile TickType_t xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT; @@ -392,6 +387,8 @@ PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t #if ( configGENERATE_RUN_TIME_STATS == 1 ) + /* Do not move these variables to function scope as doing so prevents the + code working with debuggers that need to remove the static qualifier. */ PRIVILEGED_DATA static uint32_t ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ PRIVILEGED_DATA static uint32_t ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */ @@ -410,13 +407,13 @@ PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t #if( configUSE_TICK_HOOK > 0 ) - extern void vApplicationTickHook( void ); + extern void vApplicationTickHook( void ); /*lint !e526 Symbol not defined as it is an application callback. */ #endif #if( configSUPPORT_STATIC_ALLOCATION == 1 ) - extern void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize ); + extern void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize ); /*lint !e526 Symbol not defined as it is an application callback. */ #endif @@ -507,7 +504,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseT * This function determines the 'high water mark' of the task stack by * determining how much of the stack remains at the original preset value. */ -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) +#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) ) static configSTACK_DEPTH_TYPE prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) PRIVILEGED_FUNCTION; @@ -599,6 +596,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; structure. */ volatile size_t xSize = sizeof( StaticTask_t ); configASSERT( xSize == sizeof( TCB_t ) ); + ( void ) xSize; /* Prevent lint warning when configASSERT() is not used. */ } #endif /* configASSERT_DEFINED */ @@ -607,16 +605,16 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; { /* The memory used for the task's TCB and stack are passed into this function - use them. */ - pxNewTCB = ( TCB_t * ) pxTaskBuffer; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + pxNewTCB = ( TCB_t * ) pxTaskBuffer; /*lint !e740 !e9087 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ pxNewTCB->pxStack = ( StackType_t * ) puxStackBuffer; - #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */ + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 !e9029 Macro has been consolidated for readability reasons. */ { /* Tasks can be created statically or dynamically, so note this task was created statically in case the task is later deleted. */ pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_AND_TCB; } - #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + #endif /* tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE */ prvInitialiseNewTask( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, &xReturn, pxNewTCB, NULL ); prvAddNewTaskToReadyList( pxNewTCB ); @@ -658,7 +656,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; task was created statically in case the task is later deleted. */ pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_AND_TCB; } - #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + #endif /* tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE */ prvInitialiseNewTask( pxTaskDefinition->pvTaskCode, pxTaskDefinition->pcName, @@ -699,14 +697,14 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; /* Store the stack location in the TCB. */ pxNewTCB->pxStack = pxTaskDefinition->puxStackBuffer; - #if( configSUPPORT_STATIC_ALLOCATION == 1 ) + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) { /* Tasks can be created statically or dynamically, so note this task had a statically allocated stack in case it is later deleted. The TCB was allocated dynamically. */ pxNewTCB->ucStaticallyAllocated = tskSTATICALLY_ALLOCATED_STACK_ONLY; } - #endif + #endif /* tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE */ prvInitialiseNewTask( pxTaskDefinition->pvTaskCode, pxTaskDefinition->pcName, @@ -769,12 +767,12 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; StackType_t *pxStack; /* Allocate space for the stack used by the task being created. */ - pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ + pxStack = pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation is the stack. */ if( pxStack != NULL ) { /* Allocate space for the TCB. */ - pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); /*lint !e961 MISRA exception as the casts are only redundant for some paths. */ + pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); /*lint !e9087 !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack, and the first member of TCB_t is always a pointer to the task's stack. */ if( pxNewTCB != NULL ) { @@ -797,13 +795,13 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) PRIVILEGED_FUNCTION; if( pxNewTCB != NULL ) { - #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */ + #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e9029 !e731 Macro has been consolidated for readability reasons. */ { /* Tasks can be created statically or dynamically, so note this task was created dynamically in case it is later deleted. */ pxNewTCB->ucStaticallyAllocated = tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB; } - #endif /* configSUPPORT_STATIC_ALLOCATION */ + #endif /* tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE */ prvInitialiseNewTask( pxTaskCode, pcName, ( uint32_t ) usStackDepth, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, NULL ); prvAddNewTaskToReadyList( pxNewTCB ); @@ -846,8 +844,6 @@ UBaseType_t x; uxPriority &= ~portPRIVILEGE_BIT; #endif /* portUSING_MPU_WRAPPERS == 1 */ - configASSERT( pcName ); - /* Avoid dependency on memset() if it is not required. */ #if( tskSET_NEW_STACKS_TO_KNOWN_VALUE == 1 ) { @@ -862,8 +858,8 @@ UBaseType_t x; by the port. */ #if( portSTACK_GROWTH < 0 ) { - pxTopOfStack = pxNewTCB->pxStack + ( ulStackDepth - ( uint32_t ) 1 ); - pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); /*lint !e923 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. */ + pxTopOfStack = &( pxNewTCB->pxStack[ ulStackDepth - ( uint32_t ) 1 ] ); + pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); /*lint !e923 !e9033 !e9078 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. Checked by assert(). */ /* Check the alignment of the calculated top of stack is correct. */ configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); @@ -890,26 +886,35 @@ UBaseType_t x; #endif /* portSTACK_GROWTH */ /* Store the task name in the TCB. */ - for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) + if( pcName != NULL ) { - pxNewTCB->pcTaskName[ x ] = pcName[ x ]; + for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) + { + pxNewTCB->pcTaskName[ x ] = pcName[ x ]; - /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than - configMAX_TASK_NAME_LEN characters just in case the memory after the - string is not accessible (extremely unlikely). */ - if( pcName[ x ] == 0x00 ) - { - break; - } - else - { - mtCOVERAGE_TEST_MARKER(); + /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than + configMAX_TASK_NAME_LEN characters just in case the memory after the + string is not accessible (extremely unlikely). */ + if( pcName[ x ] == ( char ) 0x00 ) + { + break; + } + else + { + mtCOVERAGE_TEST_MARKER(); + } } + + /* Ensure the name string is terminated in the case that the string length + was greater or equal to configMAX_TASK_NAME_LEN. */ + pxNewTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0'; + } + else + { + /* The task has not been given a name, so just ensure there is a NULL + terminator when it is read out. */ + pxNewTCB->pcTaskName[ 0 ] = 0x00; } - - /* Ensure the name string is terminated in the case that the string length - was greater or equal to configMAX_TASK_NAME_LEN. */ - pxNewTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0'; /* This is used as an array index so must ensure it's not too large. First remove the privilege bit if one is present. */ @@ -1005,15 +1010,53 @@ UBaseType_t x; the top of stack variable is updated. */ #if( portUSING_MPU_WRAPPERS == 1 ) { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); + /* If the port has capability to detect stack overflow, + pass the stack end address to the stack initialization + function as well. */ + #if( portHAS_STACK_OVERFLOW_CHECKING == 1 ) + { + #if( portSTACK_GROWTH < 0 ) + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxNewTCB->pxStack, pxTaskCode, pvParameters, xRunPrivileged ); + } + #else /* portSTACK_GROWTH */ + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxNewTCB->pxEndOfStack, pxTaskCode, pvParameters, xRunPrivileged ); + } + #endif /* portSTACK_GROWTH */ + } + #else /* portHAS_STACK_OVERFLOW_CHECKING */ + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); + } + #endif /* portHAS_STACK_OVERFLOW_CHECKING */ } #else /* portUSING_MPU_WRAPPERS */ { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); + /* If the port has capability to detect stack overflow, + pass the stack end address to the stack initialization + function as well. */ + #if( portHAS_STACK_OVERFLOW_CHECKING == 1 ) + { + #if( portSTACK_GROWTH < 0 ) + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxNewTCB->pxStack, pxTaskCode, pvParameters ); + } + #else /* portSTACK_GROWTH */ + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxNewTCB->pxEndOfStack, pxTaskCode, pvParameters ); + } + #endif /* portSTACK_GROWTH */ + } + #else /* portHAS_STACK_OVERFLOW_CHECKING */ + { + pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); + } + #endif /* portHAS_STACK_OVERFLOW_CHECKING */ } #endif /* portUSING_MPU_WRAPPERS */ - if( ( void * ) pxCreatedTask != NULL ) + if( pxCreatedTask != NULL ) { /* Pass the handle out in an anonymous way. The handle can be used to change the created task's priority, delete the created task, etc.*/ @@ -1330,13 +1373,13 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) #endif /* INCLUDE_vTaskDelay */ /*-----------------------------------------------------------*/ -#if( ( INCLUDE_eTaskGetState == 1 ) || ( configUSE_TRACE_FACILITY == 1 ) ) +#if( ( INCLUDE_eTaskGetState == 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_xTaskAbortDelay == 1 ) ) eTaskState eTaskGetState( TaskHandle_t xTask ) { eTaskState eReturn; - List_t *pxStateList; - const TCB_t * const pxTCB = ( TCB_t * ) xTask; + List_t const * pxStateList, *pxDelayedList, *pxOverflowedDelayedList; + const TCB_t * const pxTCB = xTask; configASSERT( pxTCB ); @@ -1349,11 +1392,13 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) { taskENTER_CRITICAL(); { - pxStateList = ( List_t * ) listLIST_ITEM_CONTAINER( &( pxTCB->xStateListItem ) ); + pxStateList = listLIST_ITEM_CONTAINER( &( pxTCB->xStateListItem ) ); + pxDelayedList = pxDelayedTaskList; + pxOverflowedDelayedList = pxOverflowDelayedTaskList; } taskEXIT_CRITICAL(); - if( ( pxStateList == pxDelayedTaskList ) || ( pxStateList == pxOverflowDelayedTaskList ) ) + if( ( pxStateList == pxDelayedList ) || ( pxStateList == pxOverflowedDelayedList ) ) { /* The task being queried is referenced from one of the Blocked lists. */ @@ -1422,15 +1467,15 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) #if ( INCLUDE_uxTaskPriorityGet == 1 ) - UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask ) + UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask ) { - TCB_t *pxTCB; + TCB_t const *pxTCB; UBaseType_t uxReturn; taskENTER_CRITICAL(); { - /* If null is passed in here then it is the priority of the that - called uxTaskPriorityGet() that is being queried. */ + /* If null is passed in here then it is the priority of the task + that called uxTaskPriorityGet() that is being queried. */ pxTCB = prvGetTCBFromHandle( xTask ); uxReturn = pxTCB->uxPriority; } @@ -1444,9 +1489,9 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) #if ( INCLUDE_uxTaskPriorityGet == 1 ) - UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask ) + UBaseType_t uxTaskPriorityGetFromISR( const TaskHandle_t xTask ) { - TCB_t *pxTCB; + TCB_t const *pxTCB; UBaseType_t uxReturn, uxSavedInterruptState; /* RTOS ports that support interrupt nesting have the concept of a @@ -1464,7 +1509,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) separate interrupt safe API to ensure interrupt entry is as fast and as simple as possible. More information (albeit Cortex-M specific) is provided on the following link: - http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + https://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); uxSavedInterruptState = portSET_INTERRUPT_MASK_FROM_ISR(); @@ -1724,7 +1769,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) /* The scheduler is not running, but the task that was pointed to by pxCurrentTCB has just been suspended and pxCurrentTCB must be adjusted to point to a different task. */ - if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == uxCurrentNumberOfTasks ) + if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == uxCurrentNumberOfTasks ) /*lint !e931 Right has no side effect, just volatile. */ { /* No other tasks are ready, so set pxCurrentTCB back to NULL so when the next task is created pxCurrentTCB will @@ -1752,7 +1797,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) { BaseType_t xReturn = pdFALSE; - const TCB_t * const pxTCB = ( TCB_t * ) xTask; + const TCB_t * const pxTCB = xTask; /* Accesses xPendingReadyList so must be called from a critical section. */ @@ -1797,14 +1842,14 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) void vTaskResume( TaskHandle_t xTaskToResume ) { - TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; + TCB_t * const pxTCB = xTaskToResume; /* It does not make sense to resume the calling task. */ configASSERT( xTaskToResume ); /* The parameter cannot be NULL as it is impossible to resume the currently executing task. */ - if( ( pxTCB != NULL ) && ( pxTCB != pxCurrentTCB ) ) + if( ( pxTCB != pxCurrentTCB ) && ( pxTCB != NULL ) ) { taskENTER_CRITICAL(); { @@ -1852,7 +1897,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) { BaseType_t xYieldRequired = pdFALSE; - TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; + TCB_t * const pxTCB = xTaskToResume; UBaseType_t uxSavedInterruptStatus; configASSERT( xTaskToResume ); @@ -1872,7 +1917,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB ) separate interrupt safe API to ensure interrupt entry is as fast and as simple as possible. More information (albeit Cortex-M specific) is provided on the following link: - http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + https://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); @@ -1937,7 +1982,7 @@ BaseType_t xReturn; configIDLE_TASK_NAME, ulIdleTaskStackSize, ( void * ) NULL, /*lint !e961. The cast is not redundant for all compilers. */ - ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), + portPRIVILEGE_BIT, /* In effect ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), but tskIDLE_PRIORITY is zero. */ pxIdleTaskStackBuffer, pxIdleTaskTCBBuffer ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ @@ -1957,7 +2002,7 @@ BaseType_t xReturn; configIDLE_TASK_NAME, configMINIMAL_STACK_SIZE, ( void * ) NULL, - ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), + portPRIVILEGE_BIT, /* In effect ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), but tskIDLE_PRIORITY is zero. */ &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ } #endif /* configSUPPORT_STATIC_ALLOCATION */ @@ -2151,7 +2196,7 @@ BaseType_t xAlreadyYielded = pdFALSE; appropriate ready list. */ while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) { - pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); + pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); prvAddTaskToReadyList( pxTCB ); @@ -2268,7 +2313,7 @@ UBaseType_t uxSavedInterruptStatus; system call interrupt priority. FreeRTOS maintains a separate interrupt safe API to ensure interrupt entry is as fast and as simple as possible. More information (albeit Cortex-M specific) is provided on the following - link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ + link: https://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); uxSavedInterruptStatus = portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR(); @@ -2308,19 +2353,21 @@ TCB_t *pxTCB; TCB_t *pxNextTCB, *pxFirstTCB, *pxReturn = NULL; UBaseType_t x; char cNextChar; + BaseType_t xBreakLoop; /* This function is called with the scheduler suspended. */ if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 ) { - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); + listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ do { - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); + listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ /* Check each character in the name looking for a match or mismatch. */ + xBreakLoop = pdFALSE; for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) { cNextChar = pxNextTCB->pcTaskName[ x ]; @@ -2328,19 +2375,24 @@ TCB_t *pxTCB; if( cNextChar != pcNameToQuery[ x ] ) { /* Characters didn't match. */ - break; + xBreakLoop = pdTRUE; } - else if( cNextChar == 0x00 ) + else if( cNextChar == ( char ) 0x00 ) { /* Both strings terminated, a match must have been found. */ pxReturn = pxNextTCB; - break; + xBreakLoop = pdTRUE; } else { mtCOVERAGE_TEST_MARKER(); } + + if( xBreakLoop != pdFALSE ) + { + break; + } } if( pxReturn != NULL ) @@ -2421,7 +2473,7 @@ TCB_t *pxTCB; } ( void ) xTaskResumeAll(); - return ( TaskHandle_t ) pxTCB; + return pxTCB; } #endif /* INCLUDE_xTaskGetHandle */ @@ -2537,7 +2589,7 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) { - TCB_t *pxTCB = ( TCB_t * ) xTask; + TCB_t *pxTCB = xTask; BaseType_t xReturn; configASSERT( pxTCB ); @@ -2662,7 +2714,7 @@ BaseType_t xSwitchRequired = pdFALSE; item at the head of the delayed list. This is the time at which the task at the head of the delayed list must be removed from the Blocked state. */ - pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); + pxTCB = listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xStateListItem ) ); if( xConstTickCount < xItemValue ) @@ -2673,7 +2725,7 @@ BaseType_t xSwitchRequired = pdFALSE; state - so record the item value in xNextTaskUnblockTime. */ xNextTaskUnblockTime = xItemValue; - break; + break; /*lint !e9011 Code structure here is deedmed easier to understand with multiple breaks. */ } else { @@ -2795,7 +2847,7 @@ BaseType_t xSwitchRequired = pdFALSE; } else { - xTCB = ( TCB_t * ) xTask; + xTCB = xTask; } /* Save the hook function in the TCB. A critical section is required as @@ -2814,24 +2866,17 @@ BaseType_t xSwitchRequired = pdFALSE; TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) { - TCB_t *xTCB; + TCB_t *pxTCB; TaskHookFunction_t xReturn; - /* If xTask is NULL then we are setting our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( TCB_t * ) pxCurrentTCB; - } - else - { - xTCB = ( TCB_t * ) xTask; - } + /* If xTask is NULL then set the calling task's hook. */ + pxTCB = prvGetTCBFromHandle( xTask ); /* Save the hook function in the TCB. A critical section is required as the value can be accessed from an interrupt. */ taskENTER_CRITICAL(); { - xReturn = xTCB->pxTaskTag; + xReturn = pxTCB->pxTaskTag; } taskEXIT_CRITICAL(); @@ -2841,6 +2886,31 @@ BaseType_t xSwitchRequired = pdFALSE; #endif /* configUSE_APPLICATION_TASK_TAG */ /*-----------------------------------------------------------*/ +#if ( configUSE_APPLICATION_TASK_TAG == 1 ) + + TaskHookFunction_t xTaskGetApplicationTaskTagFromISR( TaskHandle_t xTask ) + { + TCB_t *pxTCB; + TaskHookFunction_t xReturn; + UBaseType_t uxSavedInterruptStatus; + + /* If xTask is NULL then set the calling task's hook. */ + pxTCB = prvGetTCBFromHandle( xTask ); + + /* Save the hook function in the TCB. A critical section is required as + the value can be accessed from an interrupt. */ + uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); + { + xReturn = pxTCB->pxTaskTag; + } + portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); + + return xReturn; + } + +#endif /* configUSE_APPLICATION_TASK_TAG */ +/*-----------------------------------------------------------*/ + #if ( configUSE_APPLICATION_TASK_TAG == 1 ) BaseType_t xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) @@ -2851,11 +2921,11 @@ BaseType_t xSwitchRequired = pdFALSE; /* If xTask is NULL then we are calling our own task hook. */ if( xTask == NULL ) { - xTCB = ( TCB_t * ) pxCurrentTCB; + xTCB = pxCurrentTCB; } else { - xTCB = ( TCB_t * ) xTask; + xTCB = xTask; } if( xTCB->pxTaskTag != NULL ) @@ -2888,39 +2958,53 @@ void vTaskSwitchContext( void ) #if ( configGENERATE_RUN_TIME_STATS == 1 ) { - #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE - portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime ); - #else - ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); - #endif + #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE + portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime ); + #else + ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); + #endif - /* Add the amount of time the task has been running to the - accumulated time so far. The time the task started running was - stored in ulTaskSwitchedInTime. Note that there is no overflow - protection here so count values are only valid until the timer - overflows. The guard against negative values is to protect - against suspect run time stat counter implementations - which - are provided by the application, not the kernel. */ - if( ulTotalRunTime > ulTaskSwitchedInTime ) - { - pxCurrentTCB->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime ); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - ulTaskSwitchedInTime = ulTotalRunTime; + /* Add the amount of time the task has been running to the + accumulated time so far. The time the task started running was + stored in ulTaskSwitchedInTime. Note that there is no overflow + protection here so count values are only valid until the timer + overflows. The guard against negative values is to protect + against suspect run time stat counter implementations - which + are provided by the application, not the kernel. */ + if( ulTotalRunTime > ulTaskSwitchedInTime ) + { + pxCurrentTCB->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime ); + } + else + { + mtCOVERAGE_TEST_MARKER(); + } + ulTaskSwitchedInTime = ulTotalRunTime; } #endif /* configGENERATE_RUN_TIME_STATS */ /* Check for stack overflow, if configured. */ taskCHECK_FOR_STACK_OVERFLOW(); + /* Before the currently running task is switched out, save its errno. */ + #if( configUSE_POSIX_ERRNO == 1 ) + { + pxCurrentTCB->iTaskErrno = FreeRTOS_errno; + } + #endif + /* Select a new task to run using either the generic C or port optimised asm code. */ - taskSELECT_HIGHEST_PRIORITY_TASK(); + taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ traceTASK_SWITCHED_IN(); + /* After the new task is switched in, update the global errno. */ + #if( configUSE_POSIX_ERRNO == 1 ) + { + FreeRTOS_errno = pxCurrentTCB->iTaskErrno; + } + #endif + #if ( configUSE_NEWLIB_REENTRANT == 1 ) { /* Switch Newlib's _impure_ptr variable to point to the _reent @@ -3024,7 +3108,7 @@ BaseType_t xReturn; This function assumes that a check has already been made to ensure that pxEventList is not empty. */ - pxUnblockedTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); + pxUnblockedTCB = listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ configASSERT( pxUnblockedTCB ); ( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) ); @@ -3032,6 +3116,20 @@ BaseType_t xReturn; { ( void ) uxListRemove( &( pxUnblockedTCB->xStateListItem ) ); prvAddTaskToReadyList( pxUnblockedTCB ); + + #if( configUSE_TICKLESS_IDLE != 0 ) + { + /* If a task is blocked on a kernel object then xNextTaskUnblockTime + might be set to the blocked task's time out time. If the task is + unblocked for a reason other than a timeout xNextTaskUnblockTime is + normally left unchanged, because it is automatically reset to a new + value when the tick count equals xNextTaskUnblockTime. However if + tickless idling is used it might be more important to enter sleep mode + at the earliest possible time - so reset xNextTaskUnblockTime here to + ensure it is updated at the earliest possible time. */ + prvResetNextTaskUnblockTime(); + } + #endif } else { @@ -3056,20 +3154,6 @@ BaseType_t xReturn; xReturn = pdFALSE; } - #if( configUSE_TICKLESS_IDLE != 0 ) - { - /* If a task is blocked on a kernel object then xNextTaskUnblockTime - might be set to the blocked task's time out time. If the task is - unblocked for a reason other than a timeout xNextTaskUnblockTime is - normally left unchanged, because it is automatically reset to a new - value when the tick count equals xNextTaskUnblockTime. However if - tickless idling is used it might be more important to enter sleep mode - at the earliest possible time - so reset xNextTaskUnblockTime here to - ensure it is updated at the earliest possible time. */ - prvResetNextTaskUnblockTime(); - } - #endif - return xReturn; } /*-----------------------------------------------------------*/ @@ -3087,7 +3171,7 @@ TCB_t *pxUnblockedTCB; /* Remove the event list form the event flag. Interrupts do not access event flags. */ - pxUnblockedTCB = ( TCB_t * ) listGET_LIST_ITEM_OWNER( pxEventListItem ); + pxUnblockedTCB = listGET_LIST_ITEM_OWNER( pxEventListItem ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ configASSERT( pxUnblockedTCB ); ( void ) uxListRemove( pxEventListItem ); @@ -3142,7 +3226,7 @@ BaseType_t xReturn; const TickType_t xElapsedTime = xConstTickCount - pxTimeOut->xTimeOnEntering; #if( INCLUDE_xTaskAbortDelay == 1 ) - if( pxCurrentTCB->ucDelayAborted != pdFALSE ) + if( pxCurrentTCB->ucDelayAborted != ( uint8_t ) pdFALSE ) { /* The delay was aborted, which is not the same as a time out, but has the same result. */ @@ -3202,11 +3286,11 @@ void vTaskMissedYield( void ) UBaseType_t uxTaskGetTaskNumber( TaskHandle_t xTask ) { UBaseType_t uxReturn; - TCB_t *pxTCB; + TCB_t const *pxTCB; if( xTask != NULL ) { - pxTCB = ( TCB_t * ) xTask; + pxTCB = xTask; uxReturn = pxTCB->uxTaskNumber; } else @@ -3224,11 +3308,11 @@ void vTaskMissedYield( void ) void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) { - TCB_t *pxTCB; + TCB_t * pxTCB; if( xTask != NULL ) { - pxTCB = ( TCB_t * ) xTask; + pxTCB = xTask; pxTCB->uxTaskNumber = uxHandle; } } @@ -3257,7 +3341,7 @@ static portTASK_FUNCTION( prvIdleTask, pvParameters ) /* In case a task that has a secure context deletes itself, in which case the idle task is responsible for deleting the task's secure context, if any. */ - portTASK_CALLS_SECURE_FUNCTIONS(); + portALLOCATE_SECURE_CONTEXT( configMINIMAL_SECURE_STACK_SIZE ); for( ;; ) { @@ -3505,7 +3589,7 @@ static void prvCheckTasksWaitingTermination( void ) { taskENTER_CRITICAL(); { - pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); + pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); --uxCurrentNumberOfTasks; --uxDeletedTasksWaitingCleanUp; @@ -3624,7 +3708,7 @@ static void prvCheckTasksWaitingTermination( void ) if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 ) { - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); + listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ /* Populate an TaskStatus_t structure within the pxTaskStatusArray array for each task that is referenced from @@ -3632,7 +3716,7 @@ static void prvCheckTasksWaitingTermination( void ) meaning of each TaskStatus_t structure member. */ do { - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); + listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ vTaskGetInfo( ( TaskHandle_t ) pxNextTCB, &( pxTaskStatusArray[ uxTask ] ), pdTRUE, eState ); uxTask++; } while( pxNextTCB != pxFirstTCB ); @@ -3648,7 +3732,7 @@ static void prvCheckTasksWaitingTermination( void ) #endif /* configUSE_TRACE_FACILITY */ /*-----------------------------------------------------------*/ -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) +#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) ) static configSTACK_DEPTH_TYPE prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) { @@ -3665,7 +3749,47 @@ static void prvCheckTasksWaitingTermination( void ) return ( configSTACK_DEPTH_TYPE ) ulCount; } -#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) */ +#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) ) */ +/*-----------------------------------------------------------*/ + +#if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) + + /* uxTaskGetStackHighWaterMark() and uxTaskGetStackHighWaterMark2() are the + same except for their return type. Using configSTACK_DEPTH_TYPE allows the + user to determine the return type. It gets around the problem of the value + overflowing on 8-bit types without breaking backward compatibility for + applications that expect an 8-bit return type. */ + configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) + { + TCB_t *pxTCB; + uint8_t *pucEndOfStack; + configSTACK_DEPTH_TYPE uxReturn; + + /* uxTaskGetStackHighWaterMark() and uxTaskGetStackHighWaterMark2() are + the same except for their return type. Using configSTACK_DEPTH_TYPE + allows the user to determine the return type. It gets around the + problem of the value overflowing on 8-bit types without breaking + backward compatibility for applications that expect an 8-bit return + type. */ + + pxTCB = prvGetTCBFromHandle( xTask ); + + #if portSTACK_GROWTH < 0 + { + pucEndOfStack = ( uint8_t * ) pxTCB->pxStack; + } + #else + { + pucEndOfStack = ( uint8_t * ) pxTCB->pxEndOfStack; + } + #endif + + uxReturn = prvTaskCheckFreeStackSpace( pucEndOfStack ); + + return uxReturn; + } + +#endif /* INCLUDE_uxTaskGetStackHighWaterMark2 */ /*-----------------------------------------------------------*/ #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) @@ -3720,7 +3844,7 @@ static void prvCheckTasksWaitingTermination( void ) vPortFree( pxTCB->pxStack ); vPortFree( pxTCB ); } - #elif( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 Macro has been consolidated for readability reasons. */ + #elif( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) /*lint !e731 !e9029 Macro has been consolidated for readability reasons. */ { /* The task could have been allocated statically or dynamically, so check what was statically allocated before trying to free the @@ -3770,7 +3894,7 @@ TCB_t *pxTCB; the item at the head of the delayed list. This is the time at which the task at the head of the delayed list should be removed from the Blocked state. */ - ( pxTCB ) = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); + ( pxTCB ) = listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( ( pxTCB )->xStateListItem ) ); } } @@ -3825,7 +3949,7 @@ TCB_t *pxTCB; BaseType_t xTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) { - TCB_t * const pxMutexHolderTCB = ( TCB_t * ) pxMutexHolder; + TCB_t * const pxMutexHolderTCB = pxMutexHolder; BaseType_t xReturn = pdFALSE; /* If the mutex was given back by an interrupt while the queue was @@ -3912,7 +4036,7 @@ TCB_t *pxTCB; BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) { - TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; + TCB_t * const pxTCB = pxMutexHolder; BaseType_t xReturn = pdFALSE; if( pxMutexHolder != NULL ) @@ -3992,7 +4116,7 @@ TCB_t *pxTCB; void vTaskPriorityDisinheritAfterTimeout( TaskHandle_t const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask ) { - TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; + TCB_t * const pxTCB = pxMutexHolder; UBaseType_t uxPriorityUsedOnEntry, uxPriorityToUse; const UBaseType_t uxOnlyOneMutexHeld = ( UBaseType_t ) 1; @@ -4170,7 +4294,7 @@ TCB_t *pxTCB; } /* Terminate. */ - pcBuffer[ x ] = 0x00; + pcBuffer[ x ] = ( char ) 0x00; /* Return the new end of string. */ return &( pcBuffer[ x ] ); @@ -4184,7 +4308,7 @@ TCB_t *pxTCB; void vTaskList( char * pcWriteBuffer ) { TaskStatus_t *pxTaskStatusArray; - volatile UBaseType_t uxArraySize, x; + UBaseType_t uxArraySize, x; char cStatus; /* @@ -4213,7 +4337,7 @@ TCB_t *pxTCB; /* Make sure the write buffer does not contain a string. */ - *pcWriteBuffer = 0x00; + *pcWriteBuffer = ( char ) 0x00; /* Take a snapshot of the number of tasks in case it changes while this function is executing. */ @@ -4222,7 +4346,7 @@ TCB_t *pxTCB; /* Allocate an array index for each task. NOTE! if configSUPPORT_DYNAMIC_ALLOCATION is set to 0 then pvPortMalloc() will equate to NULL. */ - pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); + pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation allocates a struct that has the alignment requirements of a pointer. */ if( pxTaskStatusArray != NULL ) { @@ -4249,9 +4373,10 @@ TCB_t *pxTCB; case eDeleted: cStatus = tskDELETED_CHAR; break; + case eInvalid: /* Fall through. */ default: /* Should not get here, but it is included to prevent static checking errors. */ - cStatus = 0x00; + cStatus = ( char ) 0x00; break; } @@ -4260,8 +4385,8 @@ TCB_t *pxTCB; pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); /* Write the rest of the string. */ - sprintf( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); - pcWriteBuffer += strlen( pcWriteBuffer ); + sprintf( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */ + pcWriteBuffer += strlen( pcWriteBuffer ); /*lint !e9016 Pointer arithmetic ok on char pointers especially as in this case where it best denotes the intent of the code. */ } /* Free the array again. NOTE! If configSUPPORT_DYNAMIC_ALLOCATION @@ -4282,7 +4407,7 @@ TCB_t *pxTCB; void vTaskGetRunTimeStats( char *pcWriteBuffer ) { TaskStatus_t *pxTaskStatusArray; - volatile UBaseType_t uxArraySize, x; + UBaseType_t uxArraySize, x; uint32_t ulTotalTime, ulStatsAsPercentage; #if( configUSE_TRACE_FACILITY != 1 ) @@ -4317,7 +4442,7 @@ TCB_t *pxTCB; */ /* Make sure the write buffer does not contain a string. */ - *pcWriteBuffer = 0x00; + *pcWriteBuffer = ( char ) 0x00; /* Take a snapshot of the number of tasks in case it changes while this function is executing. */ @@ -4326,7 +4451,7 @@ TCB_t *pxTCB; /* Allocate an array index for each task. NOTE! If configSUPPORT_DYNAMIC_ALLOCATION is set to 0 then pvPortMalloc() will equate to NULL. */ - pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); + pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation allocates a struct that has the alignment requirements of a pointer. */ if( pxTaskStatusArray != NULL ) { @@ -4337,7 +4462,7 @@ TCB_t *pxTCB; ulTotalTime /= 100UL; /* Avoid divide by zero errors. */ - if( ulTotalTime > 0 ) + if( ulTotalTime > 0UL ) { /* Create a human readable table from the binary data. */ for( x = 0; x < uxArraySize; x++ ) @@ -4362,7 +4487,7 @@ TCB_t *pxTCB; { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - sprintf( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */ } #endif } @@ -4378,12 +4503,12 @@ TCB_t *pxTCB; { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - sprintf( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */ } #endif } - pcWriteBuffer += strlen( pcWriteBuffer ); + pcWriteBuffer += strlen( pcWriteBuffer ); /*lint !e9016 Pointer arithmetic ok on char pointers especially as in this case where it best denotes the intent of the code. */ } } else @@ -4420,7 +4545,7 @@ TickType_t uxReturn; #if ( configUSE_MUTEXES == 1 ) - void *pvTaskIncrementMutexHeldCount( void ) + TaskHandle_t pvTaskIncrementMutexHeldCount( void ) { /* If xSemaphoreCreateMutex() is called before any tasks have been created then pxCurrentTCB will be NULL. */ @@ -4592,7 +4717,7 @@ TickType_t uxReturn; uint8_t ucOriginalNotifyState; configASSERT( xTaskToNotify ); - pxTCB = ( TCB_t * ) xTaskToNotify; + pxTCB = xTaskToNotify; taskENTER_CRITICAL(); { @@ -4635,6 +4760,14 @@ TickType_t uxReturn; /* The task is being notified without its notify value being updated. */ break; + + default: + /* Should not get here if all enums are handled. + Artificially force an assert by testing a value the + compiler can't assume is const. */ + configASSERT( pxTCB->ulNotifiedValue == ~0UL ); + + break; } traceTASK_NOTIFY(); @@ -4718,7 +4851,7 @@ TickType_t uxReturn; http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); - pxTCB = ( TCB_t * ) xTaskToNotify; + pxTCB = xTaskToNotify; uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { @@ -4760,6 +4893,13 @@ TickType_t uxReturn; /* The task is being notified without its notify value being updated. */ break; + + default: + /* Should not get here if all enums are handled. + Artificially force an assert by testing a value the + compiler can't assume is const. */ + configASSERT( pxTCB->ulNotifiedValue == ~0UL ); + break; } traceTASK_NOTIFY_FROM_ISR(); @@ -4839,7 +4979,7 @@ TickType_t uxReturn; http://www.freertos.org/RTOS-Cortex-M3-M4.html */ portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); - pxTCB = ( TCB_t * ) xTaskToNotify; + pxTCB = xTaskToNotify; uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); { @@ -4929,6 +5069,13 @@ TickType_t uxReturn; #endif /* configUSE_TASK_NOTIFICATIONS */ /*-----------------------------------------------------------*/ +#if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) + TickType_t xTaskGetIdleRunTimeCounter( void ) + { + return xIdleTaskHandle->ulRunTimeCounter; + } +#endif +/*-----------------------------------------------------------*/ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely ) { @@ -4950,7 +5097,7 @@ const TickType_t xConstTickCount = xTickCount; { /* The current task must be in a ready list, so there is no need to check, and the port reset macro can be called directly. */ - portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); + portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); /*lint !e931 pxCurrentTCB cannot change as it is the calling task. pxCurrentTCB->uxPriority and uxTopReadyPriority cannot change as called with scheduler suspended or in a critical section. */ } else { @@ -5054,11 +5201,13 @@ when performing module tests). */ #include "freertos_tasks_c_additions.h" - static void freertos_tasks_c_additions_init( void ) - { - #ifdef FREERTOS_TASKS_C_ADDITIONS_INIT + #ifdef FREERTOS_TASKS_C_ADDITIONS_INIT + static void freertos_tasks_c_additions_init( void ) + { FREERTOS_TASKS_C_ADDITIONS_INIT(); - #endif - } + } + #endif #endif + + diff --git a/FreeRTOS/Source/timers.c b/FreeRTOS/Source/timers.c index 29d8cb9..b97e70d 100644 --- a/FreeRTOS/Source/timers.c +++ b/FreeRTOS/Source/timers.c @@ -1,6 +1,6 @@ /* - * FreeRTOS Kernel V10.0.1 - * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * FreeRTOS Kernel V10.2.0 + * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -42,11 +42,11 @@ task.h is included from an application file. */ #error configUSE_TIMERS must be set to 1 to make the xTimerPendFunctionCall() function available. #endif -/* Lint e961 and e750 are suppressed as a MISRA exception justified because the -MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -header files above, but not in this file, in order to generate the correct -privileged Vs unprivileged linkage and placement. */ -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ +/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified +because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined +for the header files above, but not in this file, in order to generate the +correct privileged Vs unprivileged linkage and placement. */ +#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e9021 !e961 !e750. */ /* This entire source file will be skipped if the application is not configured @@ -64,22 +64,23 @@ defining trmTIMER_SERVICE_TASK_NAME in FreeRTOSConfig.h. */ #define configTIMER_SERVICE_TASK_NAME "Tmr Svc" #endif +/* Bit definitions used in the ucStatus member of a timer structure. */ +#define tmrSTATUS_IS_ACTIVE ( ( uint8_t ) 0x01 ) +#define tmrSTATUS_IS_STATICALLY_ALLOCATED ( ( uint8_t ) 0x02 ) +#define tmrSTATUS_IS_AUTORELOAD ( ( uint8_t ) 0x04 ) + /* The definition of the timers themselves. */ -typedef struct tmrTimerControl +typedef struct tmrTimerControl /* The old naming convention is used to prevent breaking kernel aware debuggers. */ { const char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ ListItem_t xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ TickType_t xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ - UBaseType_t uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one-shot timer. */ void *pvTimerID; /*<< An ID to identify the timer. This allows the timer to be identified when the same callback is used for multiple timers. */ TimerCallbackFunction_t pxCallbackFunction; /*<< The function that will be called when the timer expires. */ #if( configUSE_TRACE_FACILITY == 1 ) UBaseType_t uxTimerNumber; /*<< An ID assigned by trace tools such as FreeRTOS+Trace */ #endif - - #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) - uint8_t ucStaticallyAllocated; /*<< Set to pdTRUE if the timer was created statically so no attempt is made to free the memory again if the timer is later deleted. */ - #endif + uint8_t ucStatus; /*<< Holds bits to say if the timer was statically allocated or not, and if it is active or not. */ } xTIMER; /* The old xTIMER name is maintained above then typedefed to the new Timer_t @@ -127,7 +128,10 @@ which static variables must be declared volatile. */ /* The list in which active timers are stored. Timers are referenced in expire time order, with the nearest expiry time at the front of the list. Only the -timer service task is allowed to access these lists. */ +timer service task is allowed to access these lists. +xActiveTimerList1 and xActiveTimerList2 could be at function scope but that +breaks some kernel aware debuggers, and debuggers that reply on removing the +static qualifier. */ PRIVILEGED_DATA static List_t xActiveTimerList1; PRIVILEGED_DATA static List_t xActiveTimerList2; PRIVILEGED_DATA static List_t *pxCurrentTimerList; @@ -162,7 +166,7 @@ static void prvCheckForValidListAndQueue( void ) PRIVILEGED_FUNCTION; * task. Other tasks communicate with the timer service task using the * xTimerQueue queue. */ -static void prvTimerTask( void *pvParameters ) PRIVILEGED_FUNCTION; +static portTASK_FUNCTION_PROTO( prvTimerTask, pvParameters ) PRIVILEGED_FUNCTION; /* * Called by the timer service task to interpret and process a command it @@ -283,26 +287,21 @@ BaseType_t xReturn = pdFAIL; { Timer_t *pxNewTimer; - pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); + pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); /*lint !e9087 !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack, and the first member of Timer_t is always a pointer to the timer's mame. */ if( pxNewTimer != NULL ) { + /* Status is thus far zero as the timer is not created statically + and has not been started. The autoreload bit may get set in + prvInitialiseNewTimer. */ + pxNewTimer->ucStatus = 0x00; prvInitialiseNewTimer( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxNewTimer ); - - #if( configSUPPORT_STATIC_ALLOCATION == 1 ) - { - /* Timers can be created statically or dynamically, so note this - timer was created dynamically in case the timer is later - deleted. */ - pxNewTimer->ucStaticallyAllocated = pdFALSE; - } - #endif /* configSUPPORT_STATIC_ALLOCATION */ } return pxNewTimer; } -#endif /* configSUPPORT_STATIC_ALLOCATION */ +#endif /* configSUPPORT_DYNAMIC_ALLOCATION */ /*-----------------------------------------------------------*/ #if( configSUPPORT_STATIC_ALLOCATION == 1 ) @@ -323,24 +322,22 @@ BaseType_t xReturn = pdFAIL; structure. */ volatile size_t xSize = sizeof( StaticTimer_t ); configASSERT( xSize == sizeof( Timer_t ) ); + ( void ) xSize; /* Keeps lint quiet when configASSERT() is not defined. */ } #endif /* configASSERT_DEFINED */ /* A pointer to a StaticTimer_t structure MUST be provided, use it. */ configASSERT( pxTimerBuffer ); - pxNewTimer = ( Timer_t * ) pxTimerBuffer; /*lint !e740 Unusual cast is ok as the structures are designed to have the same alignment, and the size is checked by an assert. */ + pxNewTimer = ( Timer_t * ) pxTimerBuffer; /*lint !e740 !e9087 StaticTimer_t is a pointer to a Timer_t, so guaranteed to be aligned and sized correctly (checked by an assert()), so this is safe. */ if( pxNewTimer != NULL ) { - prvInitialiseNewTimer( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxNewTimer ); + /* Timers can be created statically or dynamically so note this + timer was created statically in case it is later deleted. The + autoreload bit may get set in prvInitialiseNewTimer(). */ + pxNewTimer->ucStatus = tmrSTATUS_IS_STATICALLY_ALLOCATED; - #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) - { - /* Timers can be created statically or dynamically so note this - timer was created statically in case it is later deleted. */ - pxNewTimer->ucStaticallyAllocated = pdTRUE; - } - #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ + prvInitialiseNewTimer( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxNewTimer ); } return pxNewTimer; @@ -369,10 +366,13 @@ static void prvInitialiseNewTimer( const char * const pcTimerName, /*lint !e97 parameters. */ pxNewTimer->pcTimerName = pcTimerName; pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; - pxNewTimer->uxAutoReload = uxAutoReload; pxNewTimer->pvTimerID = pvTimerID; pxNewTimer->pxCallbackFunction = pxCallbackFunction; vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); + if( uxAutoReload != pdFALSE ) + { + pxNewTimer->ucStatus |= tmrSTATUS_IS_AUTORELOAD; + } traceTIMER_CREATE( pxNewTimer ); } } @@ -392,7 +392,7 @@ DaemonTaskMessage_t xMessage; /* Send a command to the timer service task to start the xTimer timer. */ xMessage.xMessageID = xCommandID; xMessage.u.xTimerParameters.xMessageValue = xOptionalValue; - xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer; + xMessage.u.xTimerParameters.pxTimer = xTimer; if( xCommandID < tmrFIRST_FROM_ISR_COMMAND ) { @@ -432,16 +432,36 @@ TaskHandle_t xTimerGetTimerDaemonTaskHandle( void ) TickType_t xTimerGetPeriod( TimerHandle_t xTimer ) { -Timer_t *pxTimer = ( Timer_t * ) xTimer; +Timer_t *pxTimer = xTimer; configASSERT( xTimer ); return pxTimer->xTimerPeriodInTicks; } /*-----------------------------------------------------------*/ +void vTimerSetReloadMode( TimerHandle_t xTimer, const UBaseType_t uxAutoReload ) +{ +Timer_t * pxTimer = xTimer; + + configASSERT( xTimer ); + taskENTER_CRITICAL(); + { + if( uxAutoReload != pdFALSE ) + { + pxTimer->ucStatus |= tmrSTATUS_IS_AUTORELOAD; + } + else + { + pxTimer->ucStatus &= ~tmrSTATUS_IS_AUTORELOAD; + } + } + taskEXIT_CRITICAL(); +} +/*-----------------------------------------------------------*/ + TickType_t xTimerGetExpiryTime( TimerHandle_t xTimer ) { -Timer_t * pxTimer = ( Timer_t * ) xTimer; +Timer_t * pxTimer = xTimer; TickType_t xReturn; configASSERT( xTimer ); @@ -452,7 +472,7 @@ TickType_t xReturn; const char * pcTimerGetName( TimerHandle_t xTimer ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { -Timer_t *pxTimer = ( Timer_t * ) xTimer; +Timer_t *pxTimer = xTimer; configASSERT( xTimer ); return pxTimer->pcTimerName; @@ -462,7 +482,7 @@ Timer_t *pxTimer = ( Timer_t * ) xTimer; static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow ) { BaseType_t xResult; -Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); +Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /*lint !e9087 !e9079 void * is used as this macro is used with tasks and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ /* Remove the timer from the list of active timers. A check has already been performed to ensure the list is not empty. */ @@ -471,7 +491,7 @@ Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTi /* If the timer is an auto reload timer then calculate the next expiry time and re-insert the timer in the list of active timers. */ - if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) + if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) != 0 ) { /* The timer is inserted into a list using a time relative to anything other than the current time. It will therefore be inserted into the @@ -491,6 +511,7 @@ Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTi } else { + pxTimer->ucStatus &= ~tmrSTATUS_IS_ACTIVE; mtCOVERAGE_TEST_MARKER(); } @@ -499,7 +520,7 @@ Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTi } /*-----------------------------------------------------------*/ -static void prvTimerTask( void *pvParameters ) +static portTASK_FUNCTION( prvTimerTask, pvParameters ) { TickType_t xNextExpireTime; BaseType_t xListWasEmpty; @@ -747,11 +768,12 @@ TickType_t xTimeNow; switch( xMessage.xMessageID ) { case tmrCOMMAND_START : - case tmrCOMMAND_START_FROM_ISR : - case tmrCOMMAND_RESET : - case tmrCOMMAND_RESET_FROM_ISR : + case tmrCOMMAND_START_FROM_ISR : + case tmrCOMMAND_RESET : + case tmrCOMMAND_RESET_FROM_ISR : case tmrCOMMAND_START_DONT_TRACE : /* Start or restart a timer. */ + pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; if( prvInsertTimerInActiveList( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) != pdFALSE ) { /* The timer expired before it was added to the active @@ -759,7 +781,7 @@ TickType_t xTimeNow; pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); traceTIMER_EXPIRED( pxTimer ); - if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) + if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) != 0 ) { xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); configASSERT( xResult ); @@ -778,12 +800,13 @@ TickType_t xTimeNow; case tmrCOMMAND_STOP : case tmrCOMMAND_STOP_FROM_ISR : - /* The timer has already been removed from the active list. - There is nothing to do here. */ + /* The timer has already been removed from the active list. */ + pxTimer->ucStatus &= ~tmrSTATUS_IS_ACTIVE; break; case tmrCOMMAND_CHANGE_PERIOD : case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR : + pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue; configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); @@ -797,29 +820,28 @@ TickType_t xTimeNow; break; case tmrCOMMAND_DELETE : - /* The timer has already been removed from the active list, - just free up the memory if the memory was dynamically - allocated. */ - #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) ) + #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) { - /* The timer can only have been allocated dynamically - - free it again. */ - vPortFree( pxTimer ); - } - #elif( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) - { - /* The timer could have been allocated statically or - dynamically, so check before attempting to free the - memory. */ - if( pxTimer->ucStaticallyAllocated == ( uint8_t ) pdFALSE ) + /* The timer has already been removed from the active list, + just free up the memory if the memory was dynamically + allocated. */ + if( ( pxTimer->ucStatus & tmrSTATUS_IS_STATICALLY_ALLOCATED ) == ( uint8_t ) 0 ) { vPortFree( pxTimer ); } else { - mtCOVERAGE_TEST_MARKER(); + pxTimer->ucStatus &= ~tmrSTATUS_IS_ACTIVE; } } + #else + { + /* If dynamic allocation is not enabled, the memory + could not have been dynamically allocated. So there is + no need to free the memory - just mark the timer as + "not active". */ + pxTimer->ucStatus &= ~tmrSTATUS_IS_ACTIVE; + } #endif /* configSUPPORT_DYNAMIC_ALLOCATION */ break; @@ -848,7 +870,7 @@ BaseType_t xResult; xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); /* Remove the timer from the list. */ - pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); + pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /*lint !e9087 !e9079 void * is used as this macro is used with tasks and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); traceTIMER_EXPIRED( pxTimer ); @@ -857,7 +879,7 @@ BaseType_t xResult; have not yet been switched. */ pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); - if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) + if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) != 0 ) { /* Calculate the reload value, and if the reload value results in the timer going into the same timer list then it has already expired @@ -944,28 +966,32 @@ static void prvCheckForValidListAndQueue( void ) BaseType_t xTimerIsTimerActive( TimerHandle_t xTimer ) { -BaseType_t xTimerIsInActiveList; -Timer_t *pxTimer = ( Timer_t * ) xTimer; +BaseType_t xReturn; +Timer_t *pxTimer = xTimer; configASSERT( xTimer ); /* Is the timer in the list of active timers? */ taskENTER_CRITICAL(); { - /* Checking to see if it is in the NULL list in effect checks to see if - it is referenced from either the current or the overflow timer lists in - one go, but the logic has to be reversed, hence the '!'. */ - xTimerIsInActiveList = ( BaseType_t ) !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); /*lint !e961. Cast is only redundant when NULL is passed into the macro. */ + if( ( pxTimer->ucStatus & tmrSTATUS_IS_ACTIVE ) == 0 ) + { + xReturn = pdFALSE; + } + else + { + xReturn = pdTRUE; + } } taskEXIT_CRITICAL(); - return xTimerIsInActiveList; + return xReturn; } /*lint !e818 Can't be pointer to const due to the typedef. */ /*-----------------------------------------------------------*/ void *pvTimerGetTimerID( const TimerHandle_t xTimer ) { -Timer_t * const pxTimer = ( Timer_t * ) xTimer; +Timer_t * const pxTimer = xTimer; void *pvReturn; configASSERT( xTimer ); @@ -982,7 +1008,7 @@ void *pvReturn; void vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) { -Timer_t * const pxTimer = ( Timer_t * ) xTimer; +Timer_t * const pxTimer = xTimer; configASSERT( xTimer ); From 2d9c701c3753bd34ecdbcf6be1c7ed5622f8ada5 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 6 Apr 2019 11:30:53 +1100 Subject: [PATCH 333/349] Fix compiler warnings over const losses. --- examples/experiments/unaligned_load/unaligned_load.c | 2 +- examples/http_server/http_server.c | 6 +++--- examples/sntp/sntp_example.c | 2 +- examples/upnp/httpd.c | 4 ++-- examples/upnp/upnp.c | 2 +- extras/http_client_ota/http_buffered_client.c | 2 +- extras/http_client_ota/http_buffered_client.h | 6 +++--- extras/http_client_ota/http_client_ota.h | 8 ++++---- extras/rboot-ota/rboot-api.c | 2 +- extras/sntp/sntp.c | 4 ++-- extras/sntp/sntp.h | 2 +- extras/ssd1306/ssd1306.c | 2 +- extras/ssd1306/ssd1306.h | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) diff --git a/examples/experiments/unaligned_load/unaligned_load.c b/examples/experiments/unaligned_load/unaligned_load.c index 9f02162..aa26a81 100644 --- a/examples/experiments/unaligned_load/unaligned_load.c +++ b/examples/experiments/unaligned_load/unaligned_load.c @@ -184,7 +184,7 @@ uint32_t IRAM run_test(const char *string, test_with_fn_t testfn, const char *te return instructions; } -void test_string(const char *string, char *label, bool evict_cache) +void test_string(const char *string, const char *label, bool evict_cache) { printf("Testing %s (%p) '%s'\r\n", label, string, string); printf("Formats as: '"); diff --git a/examples/http_server/http_server.c b/examples/http_server/http_server.c index 985732e..cbe9a58 100644 --- a/examples/http_server/http_server.c +++ b/examples/http_server/http_server.c @@ -43,7 +43,7 @@ int32_t ssi_handler(int32_t iIndex, char *pcInsert, int32_t iInsertLen) return (strlen(pcInsert)); } -char *gpio_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) +const char *gpio_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) { for (int i = 0; i < iNumParams; i++) { if (strcmp(pcParam[i], "on") == 0) { @@ -63,12 +63,12 @@ char *gpio_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValu return "/index.ssi"; } -char *about_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) +const char *about_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) { return "/about.html"; } -char *websocket_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) +const char *websocket_cgi_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[]) { return "/websockets.html"; } diff --git a/examples/sntp/sntp_example.c b/examples/sntp/sntp_example.c index 0a933a2..fd16766 100644 --- a/examples/sntp/sntp_example.c +++ b/examples/sntp/sntp_example.c @@ -32,7 +32,7 @@ void sntp_tsk(void *pvParameters) { - char *servers[] = {SNTP_SERVERS}; + const char *servers[] = {SNTP_SERVERS}; UNUSED_ARG(pvParameters); /* Wait until we have joined AP and are assigned an IP */ diff --git a/examples/upnp/httpd.c b/examples/upnp/httpd.c index 9db2465..ea543d4 100644 --- a/examples/upnp/httpd.c +++ b/examples/upnp/httpd.c @@ -19,7 +19,7 @@ void httpd_task(void *pvParameters) if ((err = netconn_recv(client, &nb)) == ERR_OK) { struct sdk_station_config config; sdk_wifi_station_get_config(&config); - char * buf = + const char * buf = "\ \ \ @@ -50,4 +50,4 @@ void httpd_task(void *pvParameters) netconn_close(client); netconn_delete(client); } -} \ No newline at end of file +} diff --git a/examples/upnp/upnp.c b/examples/upnp/upnp.c index bb34cae..0b85855 100644 --- a/examples/upnp/upnp.c +++ b/examples/upnp/upnp.c @@ -25,7 +25,7 @@ static const char* get_my_ip(void) * @param recv the lwip UDP callback * @retval udp_pcb* or NULL if joining failed */ -static struct udp_pcb* mcast_join_group(char *group_ip, uint16_t group_port, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)) +static struct udp_pcb* mcast_join_group(const char *group_ip, uint16_t group_port, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)) { bool status = false; struct udp_pcb *upcb; diff --git a/extras/http_client_ota/http_buffered_client.c b/extras/http_client_ota/http_buffered_client.c index a0d79bf..ef792a6 100644 --- a/extras/http_client_ota/http_buffered_client.c +++ b/extras/http_client_ota/http_buffered_client.c @@ -19,7 +19,7 @@ typedef void (*handle_http_token)(char *); struct http_token_table { - char * token; + const char * token; handle_http_token http_tock_cb; }; diff --git a/extras/http_client_ota/http_buffered_client.h b/extras/http_client_ota/http_buffered_client.h index cfeb8da..aa30da3 100644 --- a/extras/http_client_ota/http_buffered_client.h +++ b/extras/http_client_ota/http_buffered_client.h @@ -15,9 +15,9 @@ typedef enum { } HTTP_Client_State; typedef struct { - char * server; - char * port; - char * path; + const char * server; + const char * port; + const char * path; char * buffer; uint16_t buffer_size; http_final_cb buffer_full_cb; diff --git a/extras/http_client_ota/http_client_ota.h b/extras/http_client_ota/http_client_ota.h index 56c7ea0..f6841e6 100644 --- a/extras/http_client_ota/http_client_ota.h +++ b/extras/http_client_ota/http_client_ota.h @@ -38,10 +38,10 @@ typedef enum { * Struct that contains all info for start ota. */ typedef struct { - char *server; /**< Server domain */ - char *port; /**< Server port */ - char *binary_path; /**< Server Path dowload new update binary */ - char *sha256_path; /**< Server Path of SHA256 sum for check binary, could be NULL, check will be skipped */ + const char *server; /**< Server domain */ + const char *port; /**< Server port */ + const char *binary_path; /**< Server Path dowload new update binary */ + const char *sha256_path; /**< Server Path of SHA256 sum for check binary, could be NULL, check will be skipped */ } ota_info; /** diff --git a/extras/rboot-ota/rboot-api.c b/extras/rboot-ota/rboot-api.c index 85b459d..755e397 100644 --- a/extras/rboot-ota/rboot-api.c +++ b/extras/rboot-ota/rboot-api.c @@ -239,7 +239,7 @@ typedef struct __attribute__((packed)) { bool rboot_verify_image(uint32_t initial_offset, uint32_t *image_length, const char **error_message) { uint32_t offset = initial_offset; - char *error = NULL; + const char *error = NULL; RBOOT_DEBUG("rboot_verify_image: verifying image at 0x%08x\n", initial_offset); if(offset % 4) { error = "Unaligned flash offset"; diff --git a/extras/sntp/sntp.c b/extras/sntp/sntp.c index 274c7cd..26ac110 100644 --- a/extras/sntp/sntp.c +++ b/extras/sntp/sntp.c @@ -690,7 +690,7 @@ sntp_request(void *arg) void sntp_init(void) { - char *def_addr[] = {SNTP_SERVER_ADDRESS}; + const char *def_addr[] = {SNTP_SERVER_ADDRESS}; sntp_num_servers = 0; sntp_set_servers(def_addr, sizeof(def_addr) / sizeof(char*)); @@ -715,7 +715,7 @@ sntp_init(void) /** * Set the NTP servers */ -int sntp_set_servers(char *server_url[], int num_servers) +int sntp_set_servers(const char *server_url[], int num_servers) { int i; diff --git a/extras/sntp/sntp.h b/extras/sntp/sntp.h index dd25cf0..4fde486 100644 --- a/extras/sntp/sntp.h +++ b/extras/sntp/sntp.h @@ -52,7 +52,7 @@ void sntp_set_timezone(const struct timezone *tz); * Returns 0 if OK, less than 0 if error. * NOTE: This function must NOT be called before sntp_initialize(). */ -int sntp_set_servers(char *server_url[], int num_servers); +int sntp_set_servers(const char *server_url[], int num_servers); /* * Sets the update delay in ms. If requested value is less than 15s, diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index df188c5..4c1fc28 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -1007,7 +1007,7 @@ int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font return d->width; } -int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char *str, +int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, const char *str, ssd1306_color_t foreground, ssd1306_color_t background) { uint8_t t = x; diff --git a/extras/ssd1306/ssd1306.h b/extras/ssd1306/ssd1306.h index 86abaab..045d86f 100644 --- a/extras/ssd1306/ssd1306.h +++ b/extras/ssd1306/ssd1306.h @@ -493,7 +493,7 @@ int ssd1306_draw_char(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font * @param background Background color * @return Width of the string or negative value if error occured */ -int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, char *str, ssd1306_color_t foreground, ssd1306_color_t background); +int ssd1306_draw_string(const ssd1306_t *dev, uint8_t *fb, const font_info_t *font, uint8_t x, uint8_t y, const char *str, ssd1306_color_t foreground, ssd1306_color_t background); /** * Stop scrolling (the ram data needs to be rewritten) From c2267a1d55bf343334e0606963b9071109d32d67 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 6 Apr 2019 11:33:00 +1100 Subject: [PATCH 334/349] onewire: fix some variable declarations that should have been signed. --- extras/onewire/onewire.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/onewire/onewire.c b/extras/onewire/onewire.c index 5508684..5111271 100644 --- a/extras/onewire/onewire.c +++ b/extras/onewire/onewire.c @@ -216,7 +216,7 @@ onewire_addr_t onewire_search_next(onewire_search_t *search, int pin) { uint8_t id_bit_number; uint8_t last_zero, search_result; int rom_byte_number; - uint8_t id_bit, cmp_id_bit; + int8_t id_bit, cmp_id_bit; onewire_addr_t addr; unsigned char rom_byte_mask; bool search_direction; From 71b6354cd0737aefa791265d87187a6cae3651fc Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 6 Apr 2019 11:34:12 +1100 Subject: [PATCH 335/349] tsl2561: fix a variable declaration the should have been signed. --- extras/tsl2561/tsl2561.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/tsl2561/tsl2561.c b/extras/tsl2561/tsl2561.c index d17c074..b4dc9b5 100644 --- a/extras/tsl2561/tsl2561.c +++ b/extras/tsl2561/tsl2561.c @@ -362,7 +362,7 @@ bool tsl2561_read_lux(tsl2561_t *device, uint32_t *lux) break; } - uint32_t temp; + int32_t temp; temp = ((channel0 * b) - (channel1 * m)); // Do not allow negative lux value From 6c459dc7468b3f110401d76ef72df9dec3253a9c Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Sat, 6 Apr 2019 13:09:14 +1100 Subject: [PATCH 336/349] examples: add a clean-examples target, to clean all of the examples. --- examples/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index 2f816e5..f19c189 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -2,6 +2,7 @@ EXAMPLES = $(shell find $(dir $(lastword $(MAKEFILE_LIST))) -mindepth 2 -name Ma # Generate some dummy .dummybuild/.dummyrebuild target files EXAMPLES_BUILD = $(patsubst %,%.dummybuild,$(EXAMPLES)) EXAMPLES_REBUILD = $(patsubst %,%.dummyrebuild,$(EXAMPLES)) +EXAMPLES_CLEAN = $(patsubst %,%.dummyclean,$(EXAMPLES)) warning: @echo "******************************************************" @@ -21,12 +22,17 @@ build-examples: $(EXAMPLES_BUILD) rebuild-examples: $(EXAMPLES_REBUILD) +clean-examples: $(EXAMPLES_CLEAN) + %.dummybuild: $(MAKE) -C $(dir $@) %.dummyrebuild: $(MAKE) -C $(dir $@) rebuild -.PHONY: warning rebuild-examples build-examples +%.dummyclean: + $(MAKE) -C $(dir $@) clean + +.PHONY: warning rebuild-examples build-examples clean-examples .NOTPARALLEL: .ONESHELL: From b4e9ceabd530646b32d95ae71b6b7496cf0f8f83 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 9 Apr 2019 20:19:24 +1000 Subject: [PATCH 337/349] mactimer: add MAC NMI timer support. Support for using the MAC timer, a NMI with a higher priority than the maskable interrupts, but with similar practical limitations to the MAC layer handler. --- extras/mactimer/component.mk | 10 +++ extras/mactimer/mactimer.c | 167 +++++++++++++++++++++++++++++++++++ extras/mactimer/mactimer.h | 35 ++++++++ 3 files changed, 212 insertions(+) create mode 100644 extras/mactimer/component.mk create mode 100644 extras/mactimer/mactimer.c create mode 100644 extras/mactimer/mactimer.h diff --git a/extras/mactimer/component.mk b/extras/mactimer/component.mk new file mode 100644 index 0000000..9575109 --- /dev/null +++ b/extras/mactimer/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/mactimer + +# Expected anyone using mactimer includes it as 'mactimer/mactimer.h' +INC_DIRS += $(mactimer_ROOT).. + +# args for passing into compile rule generation +mactimer_INC_DIR = +mactimer_SRC_DIR = $(mactimer_ROOT) + +$(eval $(call component_compile_rules,mactimer)) diff --git a/extras/mactimer/mactimer.c b/extras/mactimer/mactimer.c new file mode 100644 index 0000000..febebf9 --- /dev/null +++ b/extras/mactimer/mactimer.c @@ -0,0 +1,167 @@ +/* + * MAC NMI interrupt based timer support. + * + * Copyright (C) 2018 to 2019 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#include +#include +#include +#include +#include "esp/dport_regs.h" +#include "mactimer/mactimer.h" + +/* The MAC timer handler offers a higher priority timer interrupt, but comes + * with some significant practical limitations. + */ + +static mactimer_t* timer_list = 0; + +void mactimer_setfn(mactimer_t *timer, mactimer_func_t *func, void *parg) +{ + timer->callback = func; + timer->timer_arg = parg; + timer->trigger_usec = 0; + timer->next = NULL; +} + +/* Return the Mac timer count, a 64 bit value. + * This can be called without the NMI interrupt disabled. */ +uint64_t IRAM mactime_get_count(void) { + uint32_t high1 = *(uint32_t volatile *)0x3FF21008; + uint32_t low = *(uint32_t volatile *)0x3FF21004; + uint32_t high2 = *(uint32_t volatile *)0x3FF21008; + + if (high1 != high2) { + /* The high word just clocked over, so resample the low value to + * match. It will not change for some time now so the new low word + * matches high2. */ + low = *(uint32_t volatile *)0x3FF21004; + } + + return ((uint64_t)high2 << 32UL) | (uint32_t)low; +} + +/* Set the Mac timer to trigger at the given absolute count. This is expected + * to be called with the NMI disabled, such as from a handler. */ +static void IRAM mactime_set_trigger(uint64_t count) { + *(uint32_t volatile *)0x3FF2109C = (uint32_t)count; + *(uint32_t volatile *)0x3FF210A0 = (uint32_t)(count >> 32UL); + *(uint32_t volatile *)0x3FF21098 |= 0x80000000; +} + +/* Insert the timer into the queue to trigger at the given absolute + * count. This does not actually set the timer trigger, and the caller is + * expected to do so. This is typically called from a handler to set the next + * trigger time, and the MAC timer handler sets the next trigger count if + * necessary before returning. */ +void IRAM mactime_add_pending(mactimer_t *timer, uint64_t count) +{ + mactimer_t *prev = NULL; + mactimer_t *curr = timer_list; + while (curr) { + if (((int64_t)count - (int64_t)curr->trigger_usec) < 1) { + break; + } + prev = curr; + curr = curr->next; + } + + timer->next = curr; + timer->trigger_usec = count; + + if (prev != NULL) { + prev->next = timer; + } else { + timer_list = timer; + } +} + +/* This is called outside the NMI context, with the NMI enabled, and it + * disables the NMI to synchronize access to the data structures. If a MAC + * timer handler wishes to set another timeout, such as for a periodic timer, + * then it need only call mactime_add_pending() before returning. + */ +void mactimer_arm(mactimer_t *timer, uint64_t count) +{ + /* Guard against being called withing the NMI handler. */ + if (sdk_NMIIrqIsOn == 0) { + /* Disable the maskable interrupts. */ + vPortEnterCritical(); + /* Disable the NMI. */ + do { + DPORT.DPORT0 &= 0xFFFFFFE0; + } while (DPORT.DPORT0 & 1); + } + + mactime_add_pending(timer, mactime_get_count() + count); + mactime_set_trigger(timer_list->trigger_usec); + + if (sdk_NMIIrqIsOn == 0) { + /* Reenable the NMI. */ + DPORT.DPORT0 = (DPORT.DPORT0 & 0xFFFFFFE0) | 1; + /* Enable the maskable interrupts. */ + vPortExitCritical(); + } +} + +/* + * NMI handler. The callbacks are called in this NMI context. If there are + * pending timers remaining when done then a new timeout is set. + * + * This is a fragile context that can be called even when processor interrupts + * are masked, so it can not touch data synchronized by disabling maskable + * interrupts. So don't expect to be able call into the FreeRTOS functions or + * the C library etc. + * + * It can be called with a flash operation in progress, so that the flash is + * not readable, so handlers can not depend on code or data stored in + * flash. Keep handlers in IRAM, and watch our for constant data that might be + * linked into flash. + * + * It might delay handling of MAC interrupts which could compromise the Wifi + * handling, so keep any handlers as quick as possible. + */ +static IRAM void mactimer_handler() +{ + while (timer_list) { + if (((int64_t)timer_list->trigger_usec - (int64_t)mactime_get_count()) > 10) { + /* Nothing remaining to handle now. */ + break; + } + + mactimer_t *timer = timer_list; + timer_list = timer->next; + timer->next = NULL; + timer->callback(timer->timer_arg); + } + + if (timer_list) { + /* Reset the trigger. */ + mactime_set_trigger(timer_list->trigger_usec); + } +} + +extern void IRAM sdk_wDev_MacTimSetFunc(void * arg0); + +void mactimer_init() +{ + timer_list = NULL; + + sdk_wDev_MacTimSetFunc(mactimer_handler); +} diff --git a/extras/mactimer/mactimer.h b/extras/mactimer/mactimer.h new file mode 100644 index 0000000..1475ec3 --- /dev/null +++ b/extras/mactimer/mactimer.h @@ -0,0 +1,35 @@ +/* + * MAC NMI interrupt based timer support. + * + * Copyright (C) 2018 to 2019 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +typedef void mactimer_func_t(void *); + +typedef struct mactimer_st { + struct mactimer_st *next; + mactimer_func_t *callback; + uint64_t trigger_usec; + void *timer_arg; +} mactimer_t; + +void mactimer_setfn(mactimer_t *timer, mactimer_func_t *func, void *parg); +uint64_t mactime_get_count(void); +void mactime_add_pending(mactimer_t *timer, uint64_t count); +void mactimer_arm(mactimer_t *timer, uint64_t count); +void mactimer_init(void); From 25e155be4e5fa99c3d939ac9f72e2d3083afb100 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Tue, 9 Apr 2019 22:17:06 +1000 Subject: [PATCH 338/349] README: update FreeRTOS version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2fd083..f6bb40a 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Current status is alpha quality, actively developed. AP STATION mode (ie wifi cl ## Open Source Components -* [FreeRTOS](http://www.freertos.org/) V10.0.1 +* [FreeRTOS](http://www.freertos.org/) V10.2.0 * [lwIP](http://lwip.wikia.com/wiki/LwIP_Wiki) v2.0.3, with [some modifications](https://github.com/ourairquality/lwip/). * [newlib](https://github.com/ourairquality/newlib) v3.0.0, with patches for xtensa support and locking stubs for thread-safe operation on FreeRTOS. From 05da9151eef7a42963551336346572be42f2281a Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 11 Apr 2019 22:09:22 +1000 Subject: [PATCH 339/349] mactimer: add mactimer_disarm to remove a pending timer. --- extras/mactimer/mactimer.c | 42 ++++++++++++++++++++++++++++++++++++-- extras/mactimer/mactimer.h | 1 + 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/extras/mactimer/mactimer.c b/extras/mactimer/mactimer.c index febebf9..a323b7d 100644 --- a/extras/mactimer/mactimer.c +++ b/extras/mactimer/mactimer.c @@ -59,7 +59,7 @@ uint64_t IRAM mactime_get_count(void) { /* Set the Mac timer to trigger at the given absolute count. This is expected * to be called with the NMI disabled, such as from a handler. */ -static void IRAM mactime_set_trigger(uint64_t count) { +static inline void IRAM mactime_set_trigger(uint64_t count) { *(uint32_t volatile *)0x3FF2109C = (uint32_t)count; *(uint32_t volatile *)0x3FF210A0 = (uint32_t)(count >> 32UL); *(uint32_t volatile *)0x3FF21098 |= 0x80000000; @@ -120,6 +120,44 @@ void mactimer_arm(mactimer_t *timer, uint64_t count) } } +/* This is called outside the NMI context, with the NMI enabled, and it + * disables the NMI to synchronize access to the data structures. + */ +void mactimer_disarm(mactimer_t *timer) +{ + /* Guard against being called withing the NMI handler. */ + if (sdk_NMIIrqIsOn == 0) { + /* Disable the maskable interrupts. */ + vPortEnterCritical(); + /* Disable the NMI. */ + do { + DPORT.DPORT0 &= 0xFFFFFFE0; + } while (DPORT.DPORT0 & 1); + } + + /* Remove timer from the timer_list. */ + mactimer_t *timers = timer_list; + if (timers == timer) { + timer_list = timers->next; + } else { + while (timers) { + mactimer_t *next = timers->next; + if (next == timer) { + timers->next = next->next; + break; + } + timers = next; + } + } + + if (sdk_NMIIrqIsOn == 0) { + /* Reenable the NMI. */ + DPORT.DPORT0 = (DPORT.DPORT0 & 0xFFFFFFE0) | 1; + /* Enable the maskable interrupts. */ + vPortExitCritical(); + } +} + /* * NMI handler. The callbacks are called in this NMI context. If there are * pending timers remaining when done then a new timeout is set. @@ -140,7 +178,7 @@ void mactimer_arm(mactimer_t *timer, uint64_t count) static IRAM void mactimer_handler() { while (timer_list) { - if (((int64_t)timer_list->trigger_usec - (int64_t)mactime_get_count()) > 10) { + if (((int64_t)timer_list->trigger_usec - (int64_t)mactime_get_count()) > 0) { /* Nothing remaining to handle now. */ break; } diff --git a/extras/mactimer/mactimer.h b/extras/mactimer/mactimer.h index 1475ec3..0a7ad31 100644 --- a/extras/mactimer/mactimer.h +++ b/extras/mactimer/mactimer.h @@ -32,4 +32,5 @@ void mactimer_setfn(mactimer_t *timer, mactimer_func_t *func, void *parg); uint64_t mactime_get_count(void); void mactime_add_pending(mactimer_t *timer, uint64_t count); void mactimer_arm(mactimer_t *timer, uint64_t count); +void mactimer_disarm(mactimer_t *timer); void mactimer_init(void); From 5ab0d0576822557b2304ab2fcf437681ce053b40 Mon Sep 17 00:00:00 2001 From: Our Air Quality Date: Thu, 11 Apr 2019 23:13:25 +1000 Subject: [PATCH 340/349] tsoftuart: add a softare timer base UART driver, and example. --- examples/tsoftuart/.gitignore | 1 + examples/tsoftuart/FreeRTOSConfig.h | 7 + examples/tsoftuart/Makefile | 13 ++ examples/tsoftuart/local.mk | 1 + examples/tsoftuart/tsoftuart.c | 75 +++++++++++ extras/tsoftuart/component.mk | 10 ++ extras/tsoftuart/tsoftuart.c | 195 ++++++++++++++++++++++++++++ extras/tsoftuart/tsoftuart.h | 47 +++++++ 8 files changed, 349 insertions(+) create mode 100644 examples/tsoftuart/.gitignore create mode 100644 examples/tsoftuart/FreeRTOSConfig.h create mode 100644 examples/tsoftuart/Makefile create mode 100644 examples/tsoftuart/local.mk create mode 100644 examples/tsoftuart/tsoftuart.c create mode 100644 extras/tsoftuart/component.mk create mode 100644 extras/tsoftuart/tsoftuart.c create mode 100644 extras/tsoftuart/tsoftuart.h diff --git a/examples/tsoftuart/.gitignore b/examples/tsoftuart/.gitignore new file mode 100644 index 0000000..e067149 --- /dev/null +++ b/examples/tsoftuart/.gitignore @@ -0,0 +1 @@ +!local.mk diff --git a/examples/tsoftuart/FreeRTOSConfig.h b/examples/tsoftuart/FreeRTOSConfig.h new file mode 100644 index 0000000..baf25a4 --- /dev/null +++ b/examples/tsoftuart/FreeRTOSConfig.h @@ -0,0 +1,7 @@ +#define configUSE_TRACE_FACILITY 1 +#define configGENERATE_RUN_TIME_STATS 1 +#define portGET_RUN_TIME_COUNTER_VALUE() (RTC.COUNTER) +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() {} + +/* Use the defaults for everything else */ +#include_next diff --git a/examples/tsoftuart/Makefile b/examples/tsoftuart/Makefile new file mode 100644 index 0000000..a37e702 --- /dev/null +++ b/examples/tsoftuart/Makefile @@ -0,0 +1,13 @@ +# Makefile for tsfotuart example +PROGRAM=tsoftuart +EXTRA_COMPONENTS=extras/dhcpserver extras/wificfg extras/mactimer extras/tsoftuart + +# For the mDNS responder included with lwip: +EXTRA_CFLAGS += -DLWIP_MDNS_RESPONDER=1 -DLWIP_NUM_NETIF_CLIENT_DATA=1 -DLWIP_NETIF_EXT_STATUS_CALLBACK=1 + +# Avoid writing the wifi state to flash when using wificfg. +EXTRA_CFLAGS += -DWIFI_PARAM_SAVE=0 + +EXTRA_CFLAGS += -DWIFICFG_CLIENT_TASK=1 -DWIFICFG_IRAM_TEST=1 + +include ../../common.mk diff --git a/examples/tsoftuart/local.mk b/examples/tsoftuart/local.mk new file mode 100644 index 0000000..c6c3129 --- /dev/null +++ b/examples/tsoftuart/local.mk @@ -0,0 +1 @@ +FLASH_SIZE ?= 32 diff --git a/examples/tsoftuart/tsoftuart.c b/examples/tsoftuart/tsoftuart.c new file mode 100644 index 0000000..44dee02 --- /dev/null +++ b/examples/tsoftuart/tsoftuart.c @@ -0,0 +1,75 @@ +/* + * Example timer based software UART drive. + * + * Copyright (C) 2019 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include "lwip/sockets.h" + +#include "wificfg/wificfg.h" +#include "tsoftuart/tsoftuart.h" + +static void tsoftuart_task(void *pvParameters) +{ + /* Initialize the UART Tx. */ + uint32_t tx_pin = *(uint32_t *)pvParameters; + struct tsoftuart *uart = tsoftuart_init(tx_pin, 9600); + + for (;;) { + /* Reset the timing error records. */ + uart->output_queue_error_low = 0; + uart->output_queue_error_high = 0; + + char str[] = "Hello 0123456789 abcdefghijklmnopqrstuvwxyz\r\n"; + for (size_t i = 0; i < strlen(str); i++) { + tsoftuart_putc(uart, str[i]); + } + + /* Check the timing error. */ + if (uart->output_queue_error_high > 2 || uart->output_queue_error_low < -2) { + tsoftuart_write(uart, "X\r\n", 3); + } + + vTaskDelay(200 / portTICK_PERIOD_MS); + } +} + +void user_init(void) +{ + uart_set_baud(0, 115200); + printf("SDK version:%s\n", sdk_system_get_sdk_version()); + + wificfg_init(80, NULL); + + /* Start two tasks writing to different pins. */ + + static uint32_t tx_pin1 = 1; + xTaskCreate(&tsoftuart_task, "tsoftuart1", 256, &tx_pin1, 1, NULL); + + static uint32_t tx_pin2 = 2; + xTaskCreate(&tsoftuart_task, "tsoftuart2", 256, &tx_pin2, 1, NULL); +} diff --git a/extras/tsoftuart/component.mk b/extras/tsoftuart/component.mk new file mode 100644 index 0000000..f8c0b70 --- /dev/null +++ b/extras/tsoftuart/component.mk @@ -0,0 +1,10 @@ +# Component makefile for extras/tsoftuart + +# Expected anyone using tsoftuart includes it as 'tsoftuart/tsoftuart.h' +INC_DIRS += $(tsoftuart_ROOT).. + +# args for passing into compile rule generation +tsoftuart_INC_DIR = +tsoftuart_SRC_DIR = $(tsoftuart_ROOT) + +$(eval $(call component_compile_rules,tsoftuart)) diff --git a/extras/tsoftuart/tsoftuart.c b/extras/tsoftuart/tsoftuart.c new file mode 100644 index 0000000..dbcc7cf --- /dev/null +++ b/extras/tsoftuart/tsoftuart.c @@ -0,0 +1,195 @@ +/* + * Software timer based UART driver. + * + * Copyright (C) 2018 to 2019 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "tsoftuart/tsoftuart.h" + + +/* + * The design builds a sequence of UART output transitions - the delay between + * each toggling of the output. This sequence is then followed by a timer and + * the timer handler toggles the state and resets the timer for the next + * transition until done. This design avoids the code having to spin to + * implement delays, and avoid having to disable interrupts for more reliable + * timing. + * + * The MAC timer interrupt is used here as it has a high priority which helps + * keep accurate output transition times. The MAC timer interrupt is a NMI and + * the handler needs to take care not to interact widely. The handler only + * accesses the timer queue, which has already been initialized. + * + * This software UART is not completely reliable, but might suit debug output + * or communication that has an error detection layer, and it is more reliable + * at lower baud rates. While it can run up to 115200 baud it is not very + * reliable at these higher rates. It is not uncommon for the MAC timer + * handler to be delayed 20us, so at UART baud rates above 19200 errors are + * expected. This driver attempts to measure the timing errors and this can be + * used to help detect when timing errors have occurred. + */ + +static void IRAM output_handler(void *arg) +{ + tsoftuart_t *uart = arg; + uint32_t tail = uart->output_queue_tail; + + do { + uint32_t state = uart->output_queue_state ^ 1; + uint64_t current = mactime_get_count(); + gpio_write(uart->tx_pin, state); + uart->output_queue_state = state; + + if (tail == 0) { + // First transition. + uart->output_start_time = current; + uart->output_expected_time = current; + } + + /* The difference can be negative because the delay is skipped + * if very short, see below. */ + int32_t err = current - uart->output_expected_time; + if (err > uart->output_queue_error_high) { + uart->output_queue_error_high = err; + } + if (err < uart->output_queue_error_low) { + uart->output_queue_error_low = err; + } + + if (tail >= uart->output_queue_head) { + // Done. + uart->output_queue_tail = tail; + uart->output_done = 1; + return; + } + + /* Offset from the start. */ + uint32_t next = uart->output_queue[tail++]; + uint64_t target = uart->output_start_time + next; + uart->output_expected_time = target; + /* Target an earlier time, that would not give an error if + * actually met, to give more room for the response delay. */ + target -= 4; + int64_t diff = target - current; + if (diff >= 0) { + uart->output_queue_tail = tail; + mactime_add_pending(&uart->output_mactimer, target); + break; + } + } while(1); +} + +void tsoftuart_putc(tsoftuart_t *uart, uint8_t ch) +{ + uart->output_queue_state = 1; + gpio_write(uart->tx_pin, uart->output_queue_state); + + uart->output_queue_head = 0; + uart->output_queue_tail = 0; + + uart->output_queue_error_high = 0; + uart->output_queue_error_low = 0; + + uart->output_done = 0; + + uint32_t state = 0; + uint32_t count = 1; + size_t head = 0; + uint32_t cumulative = 0; + uint32_t td = uart->td; + + + for (size_t i = 0; i < 8; i++) { + if ((ch & 1) == state) { + /* No change */ + count++; + } else { + cumulative += count * td; + uart->output_queue[head++] = (cumulative + 128) >> 8; + state ^= 1; + count = 1; + } + ch >>= 1; + } + + if (state == 0) { + cumulative += count * td; + uart->output_queue[head++] = (cumulative + 128) >> 8; + state ^= 1; + count = 1; + } + + uart->output_queue_head = head; + + /* Trigger the first transition in the future. */ + mactimer_arm(&uart->output_mactimer, 20); + + /* Wait until the transmittions is expected to have completed. */ + uint32_t delay = (td * 11 + 128) >> 8; + vTaskDelay(((delay / 1000) + portTICK_PERIOD_MS) / portTICK_PERIOD_MS); + + /* Double check that it is done. There is a possibility that the timer has + * failed to trigger, and this needed to be detected and the timer removed + * from the pending list before retrying. */ + size_t i; + for (i = 0; uart->output_done == 0 && i < 10; i++) { + vTaskDelay(1); + } + + if (uart->output_done == 0) { + /* Remove the timer. */ + mactimer_disarm(&uart->output_mactimer); + /* Set the output high */ + gpio_write(uart->tx_pin, 1); + } +} + +ssize_t tsoftuart_write(tsoftuart_t *uart, const void *ptr, size_t len) +{ + for(int i = 0; i < len; i++) { + tsoftuart_putc(uart, ((char *)ptr)[i]); + } + return len; +} + +tsoftuart_t *tsoftuart_init(uint8_t tx_pin, uint32_t baud_rate) +{ + tsoftuart_t *uart = malloc(sizeof(tsoftuart_t)); + + if (uart) { + uart->tx_pin = tx_pin; + uart->td = 256000000 / baud_rate; + gpio_enable(tx_pin, GPIO_OUTPUT); + gpio_set_pullup(tx_pin, true, false); + gpio_write(tx_pin, 1); + mactimer_init(); + mactimer_setfn(&uart->output_mactimer, output_handler, uart); + } + + return uart; +} + diff --git a/extras/tsoftuart/tsoftuart.h b/extras/tsoftuart/tsoftuart.h new file mode 100644 index 0000000..e1a9250 --- /dev/null +++ b/extras/tsoftuart/tsoftuart.h @@ -0,0 +1,47 @@ +/* + * Software timer based UART driver. + * + * Copyright (C) 2018 to 2019 OurAirQuality.org + * + * Licensed under the Apache License, Version 2.0, January 2004 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.apache.org/licenses/ + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + * + */ + +#ifndef _TSOFTUART_H +#define _TSOFTUART_H + +#include "mactimer/mactimer.h" + +typedef struct tsoftuart { + uint32_t tx_pin; + /* Bit time period in usec * 256 */ + uint32_t td; + mactimer_t output_mactimer; + uint32_t output_queue[16]; + volatile uint64_t output_start_time; + volatile size_t output_queue_head; + volatile size_t output_queue_tail; + size_t output_queue_state; + uint64_t output_expected_time; + int32_t output_queue_error_high; + int32_t output_queue_error_low; + uint32_t output_done; +} tsoftuart_t; + +void tsoftuart_putc(tsoftuart_t *uart, uint8_t ch); +ssize_t tsoftuart_write(tsoftuart_t *uart, const void *ptr, size_t len); +tsoftuart_t *tsoftuart_init(uint8_t tx_pin, uint32_t baud_rate); + +#endif /* _TSOFTUART_H */ From d02b40dce8d188b3dfdfa3ec2f9932da14adbc07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAnio=20Teixeira?= Date: Sun, 23 Jun 2019 03:22:59 -0300 Subject: [PATCH 341/349] Http download issue when connection lost (#723) * Fix bug when read returns -1 When the socket down the "read" function returns -1. Then the while(read_byte > 0) only works for signed types. * Remove printf debug line --- extras/http_client_ota/http_buffered_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extras/http_client_ota/http_buffered_client.c b/extras/http_client_ota/http_buffered_client.c index ef792a6..2d6e276 100644 --- a/extras/http_client_ota/http_buffered_client.c +++ b/extras/http_client_ota/http_buffered_client.c @@ -110,7 +110,8 @@ static inline void parse_http_header(char *header) HTTP_Client_State HttpClient_dowload(Http_client_info *info) { struct addrinfo *res; - unsigned int tot_http_pdu_rd, read_byte, full; + unsigned int tot_http_pdu_rd, full; + ssize_t read_byte; int err, sock; char *wrt_ptr; From 92fc3e8bcba948e7ef02c9a7831cdf3765ae46ee Mon Sep 17 00:00:00 2001 From: UncleRus Date: Mon, 22 Jul 2019 02:21:27 +0500 Subject: [PATCH 342/349] Support for Itead Si7021 --- extras/dht/dht.c | 6 +++--- extras/dht/dht.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/extras/dht/dht.c b/extras/dht/dht.c index dee04f2..34e7a07 100644 --- a/extras/dht/dht.c +++ b/extras/dht/dht.c @@ -81,14 +81,14 @@ static bool dht_await_pin_state(uint8_t pin, uint32_t timeout, * The function call should be protected from task switching. * Return false if error occurred. */ -static inline bool dht_fetch_data(uint8_t pin, bool bits[DHT_DATA_BITS]) +static inline bool dht_fetch_data(dht_sensor_type_t sensor_type, uint8_t pin, bool bits[DHT_DATA_BITS]) { uint32_t low_duration; uint32_t high_duration; // Phase 'A' pulling signal low to initiate read sequence gpio_write(pin, 0); - sdk_os_delay_us(20000); + sdk_os_delay_us(sensor_type == DHT_TYPE_SI7021 ? 500 : 20000); gpio_write(pin, 1); // Step through Phase 'B', 40us @@ -155,7 +155,7 @@ bool dht_read_data(dht_sensor_type_t sensor_type, uint8_t pin, int16_t *humidity gpio_enable(pin, GPIO_OUT_OPEN_DRAIN); taskENTER_CRITICAL(); - result = dht_fetch_data(pin, bits); + result = dht_fetch_data(sensor_type, pin, bits); taskEXIT_CRITICAL(); if (!result) { diff --git a/extras/dht/dht.h b/extras/dht/dht.h index 664e95c..3236902 100644 --- a/extras/dht/dht.h +++ b/extras/dht/dht.h @@ -21,7 +21,8 @@ extern "C" { typedef enum { DHT_TYPE_DHT11 = 0, //!< DHT11 - DHT_TYPE_DHT22 //!< DHT22 + DHT_TYPE_DHT22, //!< DHT22 + DHT_TYPE_SI7021 //!< Itead SI7021 } dht_sensor_type_t; /** From dbef6a2c939cb791607c853abd24ad979b84265a Mon Sep 17 00:00:00 2001 From: Ernest Toth Date: Tue, 4 Feb 2020 19:08:26 +0000 Subject: [PATCH 343/349] Added support for OLED with size 64x48 --- extras/ssd1306/ssd1306.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index 4c1fc28..d830f44 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -143,6 +143,7 @@ int ssd1306_init(const ssd1306_t *dev) case 32: pin_cfg = 0x02; break; + case 48: case 64: pin_cfg = 0x12; break; @@ -244,7 +245,10 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) #endif size_t len = dev->width * dev->height / 8; if (dev->screen == SSD1306_SCREEN) { - ssd1306_set_column_addr(dev, 0, dev->width - 1); + if (dev->width == 64 && dev->height == 48) + ssd1306_set_column_addr(dev, 32, 32 + dev->width -1); + else + ssd1306_set_column_addr(dev, 0, dev->width - 1); ssd1306_set_page_addr(dev, 0, dev->height / 8 - 1); } From 4b2ca1d0b9346bf001f584f69a60c7b407f4c403 Mon Sep 17 00:00:00 2001 From: Olli Asikainen Date: Fri, 24 Apr 2020 16:27:11 +0300 Subject: [PATCH 344/349] fix ssd1306 roboto fonts --- extras/fonts/data/font_roboto_10pt.h | 8 ++++---- extras/fonts/data/font_roboto_8pt.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extras/fonts/data/font_roboto_10pt.h b/extras/fonts/data/font_roboto_10pt.h index 2630543..685d86f 100644 --- a/extras/fonts/data/font_roboto_10pt.h +++ b/extras/fonts/data/font_roboto_10pt.h @@ -1619,10 +1619,10 @@ const font_char_desc_t _fonts_roboto_10pt_descriptors[] = // Font information for Roboto 10pt const font_info_t _fonts_roboto_10pt_info = { - .height = 14, // Character height - .c = '!', // Start character - .char_start = '~', // End character - .char_end = 2, // Width, in pixels, of space character + .height = 14, // Character height + .char_start = '!', // Start character + .char_end = '~', // End character + .c = 2, // Width, in pixels, of space character .char_descriptors = _fonts_roboto_10pt_descriptors, // Character descriptor array .bitmap = _fonts_roboto_10pt_bitmaps, // Character bitmap array }; diff --git a/extras/fonts/data/font_roboto_8pt.h b/extras/fonts/data/font_roboto_8pt.h index c67924e..7204f0e 100644 --- a/extras/fonts/data/font_roboto_8pt.h +++ b/extras/fonts/data/font_roboto_8pt.h @@ -1338,9 +1338,9 @@ const font_char_desc_t _fonts_roboto_8pt_descriptors[] = const font_info_t _fonts_roboto_8pt_info = { .height = 11, // Character height - .c = '!', // Start character - .char_start = '~', // End character - .char_end = 2, // Width, in pixels, of space character + .char_start = '!', // Start character + .char_end = '~', // End character + .c = 2, // Width, in pixels, of space character .char_descriptors = _fonts_roboto_8pt_descriptors, // Character descriptor array .bitmap = _fonts_roboto_8pt_bitmaps, // Character bitmap array }; From cc24111c0519ad7eedbe96e173671a017774b786 Mon Sep 17 00:00:00 2001 From: Olli Asikainen Date: Fri, 24 Apr 2020 16:31:05 +0300 Subject: [PATCH 345/349] optimize ssd1306_fill_rectangle --- extras/ssd1306/ssd1306.c | 58 +++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index d830f44..1d49f7c 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -692,12 +692,58 @@ int ssd1306_draw_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y int ssd1306_fill_rectangle(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t w, uint8_t h, ssd1306_color_t color) { - // Can be optimized? - uint8_t i; - int err = 0; - for (i = x; i < x + w; ++i) - if ((err = ssd1306_draw_vline(dev, fb, i, y, h, color))) - return err; + uint16_t index; + uint8_t fill, mask, mod, t; + + // boundary check + if ((x >= dev->width) || (x < 0) || (y >= dev->height) || (y < 0)) + return -EINVAL; + if (w == 0 || h == 0) + return -EINVAL; + if (x + w > dev->width) + w = dev->width - x; + if (y + h > dev->height) + h = dev->height - y; + + do { + mod = y & 7; + fill = 8 - mod; + + if (fill > h) + fill = h; + + t = w; + index = x + (y / 8) * dev->width; + mask = ((1 << fill) - 1) << mod; + switch (color) { + case OLED_COLOR_WHITE: + while (t--) { + fb[index] |= mask; + ++index; + } + break; + case OLED_COLOR_BLACK: + mask = ~mask; + while (t--) { + fb[index] &= mask; + ++index; + } + break; + case OLED_COLOR_INVERT: + while (t--) { + fb[index] ^= mask; + ++index; + } + break; + default: + break; + } + + y += fill; + h -= fill; + + } while(h > 0); + return 0; } From 15d224e417916c798204e6453ca5a2f91bfbd020 Mon Sep 17 00:00:00 2001 From: Olli Asikainen Date: Fri, 24 Apr 2020 16:33:36 +0300 Subject: [PATCH 346/349] optimize ssd1306_draw_vline --- extras/ssd1306/ssd1306.c | 79 ++++++++-------------------------------- 1 file changed, 15 insertions(+), 64 deletions(-) diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index d830f44..8db1fd6 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -588,7 +588,7 @@ int ssd1306_draw_hline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, uint8_t h, ssd1306_color_t color) { uint16_t index; - uint8_t mask, mod, t; + uint8_t fill, mask, mod; // boundary check if ((x >= dev->width) || (x < 0) || (y >= dev->height) || (y < 0)) @@ -598,17 +598,15 @@ int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui if (y + h > dev->height) h = dev->height - y; - t = h; - index = x + (y / 8) * dev->width; - mod = y & 7; - if (mod) // partial line that does not fit into byte at top - { - // Magic from Adafruit - mod = 8 - mod; - static const uint8_t premask[8] = { 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE }; - mask = premask[mod]; - if (t < mod) - mask &= (0xFF >> (mod - t)); + do { + mod = y & 7; + fill = 8 - mod; + + if (fill > h) + fill = h; + + index = x + (y / 8) * dev->width; + mask = ((1 << fill) - 1) << mod; switch (color) { case OLED_COLOR_WHITE: fb[index] |= mask; @@ -623,58 +621,11 @@ int ssd1306_draw_vline(const ssd1306_t *dev, uint8_t *fb, int8_t x, int8_t y, ui break; } - if (t < mod) - return 0; - t -= mod; - index += dev->width; - } - if (t >= 8) // byte aligned line at middle - { - switch (color) { - case OLED_COLOR_WHITE: - do { - fb[index] = 0xff; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - case OLED_COLOR_BLACK: - do { - fb[index] = 0x00; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - case OLED_COLOR_INVERT: - do { - fb[index] = ~fb[index]; - index += dev->width; - t -= 8; - } while (t >= 8); - break; - default: - break; - } - } - if (t) // partial line at bottom - { - mod = t & 7; - static const uint8_t postmask[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; - mask = postmask[mod]; - switch (color) { - case OLED_COLOR_WHITE: - fb[index] |= mask; - break; - case OLED_COLOR_BLACK: - fb[index] &= ~mask; - break; - case OLED_COLOR_INVERT: - fb[index] ^= mask; - break; - default: - break; - } - } + y += fill; + h -= fill; + + } while(h > 0); + return 0; } From b9879e1a9871d40d1cde417c4d9a39c4e923f27d Mon Sep 17 00:00:00 2001 From: "Basti (EliteBook)" Date: Thu, 4 Jun 2020 09:29:51 +0200 Subject: [PATCH 347/349] Fix typo --- extras/bme680/component.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/bme680/component.mk b/extras/bme680/component.mk index 58623be..cbbd51d 100644 --- a/extras/bme680/component.mk +++ b/extras/bme680/component.mk @@ -1,4 +1,4 @@ -# Component makefile for extras/bme60 +# Component makefile for extras/bme680 # expected anyone using bme680 driver includes it as 'bme680/bme680.h' INC_DIRS += $(bme680_ROOT).. From 6c993f96fb3586c15aa75a7ed4a8ae09b0a435eb Mon Sep 17 00:00:00 2001 From: Denis Colesnicov Date: Thu, 18 Jun 2020 11:48:20 +0200 Subject: [PATCH 348/349] Support for TTF font --- extras/fonts/tools/create_font.py | 14 +++++++++++--- extras/fonts/tools/template.c | 6 +++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/extras/fonts/tools/create_font.py b/extras/fonts/tools/create_font.py index a001f66..1bb50fb 100755 --- a/extras/fonts/tools/create_font.py +++ b/extras/fonts/tools/create_font.py @@ -44,9 +44,14 @@ def gen_char(index, c, im): def main(args): - fnt = ImageFont.load(args.font) - size = fnt.getsize('A') + if args.truetype == 0: + fnt = ImageFont.load(args.font) + else: + # use a truetype font + fnt = ImageFont.truetype(args.font, args.size) + size = fnt.getsize('A') + im = Image.new('RGB', size) draw = ImageDraw.Draw(im) @@ -62,6 +67,7 @@ def main(args): env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__))), finalize=lambda x: '' if x is None else x) print(env.get_template(args.template).render({ 'font': { + 'path': os.path.basename(args.font), 'name': args.name, 'size': size, 'charset': args.charset, @@ -82,9 +88,11 @@ if __name__ == "__main__": parser=argparse.ArgumentParser(description='Fixed fonts converter') parser.add_argument('-f', '--font', type=str, required=True, help='PIL font filename') parser.add_argument('-n', '--name', type=clean_str, required=True, help='Font name') - parser.add_argument('-c', '--charset', type=clean_str, required=True, help='Charset') + parser.add_argument('-c', '--charset', type=clean_str, help='Charset (default=unic)', default="unic") parser.add_argument('--first', type=int, help='First character', default=1) parser.add_argument('--last', type=int, help='Last character', default=255) + parser.add_argument('-s', '--size', type=int, help='Height for glyphs (default=8)', default=8) + parser.add_argument('-ttf', '--truetype', type=int, required=True, help='TrueType font (0=no|1=yes)') parser.add_argument('-t', '--template', type=str, help='Template filename', default='template.c') main(parser.parse_args(sys.argv[1:])) diff --git a/extras/fonts/tools/template.c b/extras/fonts/tools/template.c index 49938f6..763511a 100644 --- a/extras/fonts/tools/template.c +++ b/extras/fonts/tools/template.c @@ -8,7 +8,8 @@ _EXTRAS_FONTS_FONT_{{ font.name|upper }}_{{ font.size[0] }}X{{ font.size[1] }}_{ _fonts_{{ font.name|lower }}_{{ font_size }}_{{ font.charset|lower }} {%- endset -%} /** - * This file contains generated binary font data. + * This file contains generated binary font data. * + * Generated from file: ({{ font.path }}) * * Font: {{ font.name }} * Size: {{ font_size }} @@ -22,6 +23,9 @@ _fonts_{{ font.name|lower }}_{{ font_size }}_{{ font.charset|lower }} #ifndef {{ header_id }} #define {{ header_id }} +#include +//#include // Uncomment this if you get error 'unknown type 'font_info_t'".. + static const uint8_t {{ font_prefix }}_bitmaps[] = { {%- for char in chars %} From acfd46aa60f27c8a2e4025e452f8ed5650fdc44f Mon Sep 17 00:00:00 2001 From: Michael Killough Date: Sun, 16 Aug 2020 12:19:32 +0100 Subject: [PATCH 349/349] Fix full on/off in pca9685. It's currently not possible to toggle between full off and full on, as switching to full on leaves the full off control bit set. The full off control bit takes precedence according to the datasheet, which means the signal remains off. The 'normal' branch does correctly clear full off/full on, as it writes 0s to the `LEDn_ON` registers unconditionally and writes 0 to the control bit in `LEDn_OFF`. --- extras/pca9685/pca9685.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extras/pca9685/pca9685.c b/extras/pca9685/pca9685.c index b115170..8b8605a 100644 --- a/extras/pca9685/pca9685.c +++ b/extras/pca9685/pca9685.c @@ -185,6 +185,7 @@ void pca9685_set_pwm_value(i2c_dev_t *dev, uint8_t channel, uint16_t val) if (val == 0) { // Full off + // Takes precedence over full on. write_reg(dev, reg + OFFS_REG_LED_OFF, LED_FULL_ON_OFF); } else if (val < 4096) @@ -195,6 +196,8 @@ void pca9685_set_pwm_value(i2c_dev_t *dev, uint8_t channel, uint16_t val) } else { + // Clear full off, as it takes precedence over full on. + write_reg(dev, reg + OFFS_REG_LED_OFF, 0); // Full on write_reg(dev, reg + OFFS_REG_LED_ON, LED_FULL_ON_OFF); }

        sUF&St2 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≤= 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%0Dq0>0 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

  • 2Z@-RtZHX5XRK;xVH>ro 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